ZGlmZiAtLWdpdCBhL0FuZHJvaWQubWsgYi9BbmRyb2lkLm1rCmluZGV4IGQyYjBkOTkuLmI5MDM1ZmYgMTAwNjQ0Ci0tLSBhL0FuZHJvaWQubWsKKysrIGIvQW5kcm9pZC5tawpAQCAtMzEsNiArMzEsMTAgQEAKICMgU28gd2UgZmlyc3QgYnVpbGQgdGhlIGZyYW1ld29yayBhcyBhIG1vbm9saXRoaWMgc3RhdGljIGxpYnJhcnkgdGhlbiBzcGxpdCBpdAogIyB1cCBpbnRvIHNtYWxsZXIgcGllY2VzLgogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyBlbWJlZGRlZCBidWlsZHMgdXNlIG5vdGhpbmcgaW4gZnJhbWV3b3Jrcy9iYXNlCitpZm5lcSAoJChBTkRST0lEX0JVSUxEX0VNQkVEREVEKSx0cnVlKQorCiBpbmNsdWRlICQoQ0xFQVJfVkFSUykKIAogIyBGUkFNRVdPUktTX0JBU0VfU1VCRElSUyBjb21lcyBmcm9tIGJ1aWxkL2NvcmUvcGF0aG1hcC5tawpAQCAtMTA1LDkgKzEwOSw5IEBACiAJY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9JSW50ZW50UmVjZWl2ZXIuYWlkbCBcCiAJY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9JSW50ZW50U2VuZGVyLmFpZGwgXAogCWNvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvSU9uUHJpbWFyeUNsaXBDaGFuZ2VkTGlzdGVuZXIuYWlkbCBcCi0JY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9JQW5vbnltb3VzU3luY0FkYXB0ZXIuYWlkbCBcCiAJY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9JU3luY0FkYXB0ZXIuYWlkbCBcCiAJY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9JU3luY0NvbnRleHQuYWlkbCBcCisJY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9JU3luY1NlcnZpY2VBZGFwdGVyLmFpZGwgXAogCWNvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvSVN5bmNTdGF0dXNPYnNlcnZlci5haWRsIFwKIAljb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L3BtL0lQYWNrYWdlRGF0YU9ic2VydmVyLmFpZGwgXAogCWNvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvcG0vSVBhY2thZ2VEZWxldGVPYnNlcnZlci5haWRsIFwKQEAgLTI4Niw3ICsyOTAsNyBAQAogCiBMT0NBTF9NT0RVTEUgOj0gZnJhbWV3b3JrLWJhc2UKIAotTE9DQUxfSkFSX0VYQ0xVREVfRklMRVMgOj0gbm9uZQorTE9DQUxfUk1UWVBFREVGUyA6PSB0cnVlCiAKIGluY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQogCkBAIC05NDMsMyArOTQ3LDUgQEAKIGlmZXEgKCwkKE9ORV9TSE9UX01BS0VGSUxFKSkKIGluY2x1ZGUgJChjYWxsIGZpcnN0LW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQogZW5kaWYKKworZW5kaWYgIyBBTkRST0lEX0JVSUxEX0VNQkVEREVECmRpZmYgLS1naXQgYS9DbGVhblNwZWMubWsgYi9DbGVhblNwZWMubWsKaW5kZXggY2ZhOGJlOS4uMmZhMTk1YyAxMDA2NDQKLS0tIGEvQ2xlYW5TcGVjLm1rCisrKyBiL0NsZWFuU3BlYy5tawpAQCAtMTcxLDYgKzE3MSw3IEBACiAkKGNhbGwgYWRkLWNsZWFuLXN0ZXAsIHJtIC1yZiAkKE9VVF9ESVIpL3RhcmdldC9jb21tb24vb2JqL0pBVkFfTElCUkFSSUVTL2ZyYW1ld29yay1iYXNlX2ludGVybWVkaWF0ZXMvc3JjL2NvcmUvamF2YS9hbmRyb2lkL3ByaW50LykKICQoY2FsbCBhZGQtY2xlYW4tc3RlcCwgcm0gLXJmICQoT1VUX0RJUikvdGFyZ2V0L2NvbW1vbi9vYmovSkFWQV9MSUJSQVJJRVMvZnJhbWV3b3JrLWJhc2VfaW50ZXJtZWRpYXRlcy9zcmMvY29yZS9qYXZhL2FuZHJvaWQvcHJpbnRzZXJ2aWNlLykKICQoY2FsbCBhZGQtY2xlYW4tc3RlcCwgcm0gLXJmICQoT1VUX0RJUikvdGFyZ2V0L2NvbW1vbi9vYmovSkFWQV9MSUJSQVJJRVMvZnJhbWV3b3JrLWJhc2VfaW50ZXJtZWRpYXRlcy9zcmMvcGFja2FnZXMvc2VydmljZXMvUHJveHkvKQorJChjYWxsIGFkZC1jbGVhbi1zdGVwLCBybSAtcmYgJChPVVRfRElSKS90YXJnZXQvY29tbW9uL29iai9KQVZBX0xJQlJBUklFUy9mcmFtZXdvcmstYmFzZV9pbnRlcm1lZGlhdGVzKQogJChjYWxsIGFkZC1jbGVhbi1zdGVwLCBybSAtcmYgJChPVVRfRElSKS90YXJnZXQvY29tbW9uL29iai9KQVZBX0xJQlJBUklFUy9mcmFtZXdvcmstYmFzZV9pbnRlcm1lZGlhdGVzL3NyYy9jb3JlL2phdmEvYW5kcm9pZC9wcmludC9JUHJpbnRlckRpc2NvdmVyeVNlc3Npb25PYnNlcnZlci4qKQogJChjYWxsIGFkZC1jbGVhbi1zdGVwLCBybSAtcmYgJChPVVRfRElSKS90YXJnZXQvY29tbW9uL29iai9KQVZBX0xJQlJBUklFUy9mcmFtZXdvcmstYmFzZV9pbnRlcm1lZGlhdGVzL3NyYy9jb3JlL2phdmEvYW5kcm9pZC9wcmludC9JUHJpbnRlckRpc2NvdmVyeVNlc3Npb25DbGllbnQuKikKICQoY2FsbCBhZGQtY2xlYW4tc3RlcCwgcm0gLXJmICQoT1VUX0RJUikvdGFyZ2V0L2NvbW1vbi9vYmovSkFWQV9MSUJSQVJJRVMvZnJhbWV3b3JrLWJhc2VfaW50ZXJtZWRpYXRlcy9zcmMvY29yZS9qYXZhL2FuZHJvaWQvb3MvSUJhdHRlcnkqKQpkaWZmIC0tZ2l0IGEvYXBpL2N1cnJlbnQudHh0IGIvYXBpL2N1cnJlbnQudHh0CmluZGV4IDhlNjk1OTIuLjdlNzU3YjUgMTAwNjQ0Ci0tLSBhL2FwaS9jdXJyZW50LnR4dAorKysgYi9hcGkvY3VycmVudC50eHQKQEAgLTksNiArOSw3IEBACiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIEFDQ0VTU19DSEVDS0lOX1BST1BFUlRJRVMgPSAiYW5kcm9pZC5wZXJtaXNzaW9uLkFDQ0VTU19DSEVDS0lOX1BST1BFUlRJRVMiOwogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBBQ0NFU1NfQ09BUlNFX0xPQ0FUSU9OID0gImFuZHJvaWQucGVybWlzc2lvbi5BQ0NFU1NfQ09BUlNFX0xPQ0FUSU9OIjsKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgQUNDRVNTX0ZJTkVfTE9DQVRJT04gPSAiYW5kcm9pZC5wZXJtaXNzaW9uLkFDQ0VTU19GSU5FX0xPQ0FUSU9OIjsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgQUNDRVNTX0lOUFVUX0ZMSU5HRVIgPSAiYW5kcm9pZC5wZXJtaXNzaW9uLkFDQ0VTU19JTlBVVF9GTElOR0VSIjsKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgQUNDRVNTX0xPQ0FUSU9OX0VYVFJBX0NPTU1BTkRTID0gImFuZHJvaWQucGVybWlzc2lvbi5BQ0NFU1NfTE9DQVRJT05fRVhUUkFfQ09NTUFORFMiOwogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBBQ0NFU1NfTU9DS19MT0NBVElPTiA9ICJhbmRyb2lkLnBlcm1pc3Npb24uQUNDRVNTX01PQ0tfTE9DQVRJT04iOwogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBBQ0NFU1NfTkVUV09SS19TVEFURSA9ICJhbmRyb2lkLnBlcm1pc3Npb24uQUNDRVNTX05FVFdPUktfU1RBVEUiOwpAQCAtNDk3LDYgKzQ5OCw3IEBACiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgZmFzdFNjcm9sbE92ZXJsYXlQb3NpdGlvbiA9IDE2ODQzNTc4OyAvLyAweDEwMTAzM2EKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBmYXN0U2Nyb2xsUHJldmlld0JhY2tncm91bmRMZWZ0ID0gMTY4NDM1NzU7IC8vIDB4MTAxMDMzNwogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGZhc3RTY3JvbGxQcmV2aWV3QmFja2dyb3VuZFJpZ2h0ID0gMTY4NDM1NzY7IC8vIDB4MTAxMDMzOAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGZhc3RTY3JvbGxTdHlsZSA9IDE2ODQzNzYzOyAvLyAweDEwMTAzZjMKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBmYXN0U2Nyb2xsVGV4dENvbG9yID0gMTY4NDM2MDk7IC8vIDB4MTAxMDM1OQogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGZhc3RTY3JvbGxUaHVtYkRyYXdhYmxlID0gMTY4NDM1NzQ7IC8vIDB4MTAxMDMzNgogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGZhc3RTY3JvbGxUcmFja0RyYXdhYmxlID0gMTY4NDM1Nzc7IC8vIDB4MTAxMDMzOQpAQCAtNTIyLDYgKzUyNCw3IEBACiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgZm9ybWF0MTJIb3VyID0gMTY4NDM3MjI7IC8vIDB4MTAxMDNjYQogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGZvcm1hdDI0SG91ciA9IDE2ODQzNzIzOyAvLyAweDEwMTAzY2IKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBmcmFnbWVudCA9IDE2ODQzNDkxOyAvLyAweDEwMTAyZTMKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBmcmFnbWVudEJyZWFkQ3J1bWJzU3R5bGUgPSAxNjg0Mzc2MjsgLy8gMHgxMDEwM2YyCiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgZnJhZ21lbnRDbG9zZUVudGVyQW5pbWF0aW9uID0gMTY4NDM0OTU7IC8vIDB4MTAxMDJlNwogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGZyYWdtZW50Q2xvc2VFeGl0QW5pbWF0aW9uID0gMTY4NDM0OTY7IC8vIDB4MTAxMDJlOAogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGZyYWdtZW50RmFkZUVudGVyQW5pbWF0aW9uID0gMTY4NDM0OTc7IC8vIDB4MTAxMDJlOQpAQCAtMTIwNCw2ICsxMjA3LDggQEAKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCB3aW5kb3dCYWNrZ3JvdW5kID0gMTY4NDI4MzY7IC8vIDB4MTAxMDA1NAogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IHdpbmRvd0Nsb3NlT25Ub3VjaE91dHNpZGUgPSAxNjg0MzYxMTsgLy8gMHgxMDEwMzViCiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgd2luZG93Q29udGVudE92ZXJsYXkgPSAxNjg0Mjg0MTsgLy8gMHgxMDEwMDU5CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgd2luZG93Q29udGVudFRyYW5zaXRpb25NYW5hZ2VyID0gMTY4NDM3NjU7IC8vIDB4MTAxMDNmNQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IHdpbmRvd0NvbnRlbnRUcmFuc2l0aW9ucyA9IDE2ODQzNzY0OyAvLyAweDEwMTAzZjQKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCB3aW5kb3dEaXNhYmxlUHJldmlldyA9IDE2ODQzMjk4OyAvLyAweDEwMTAyMjIKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCB3aW5kb3dFbmFibGVTcGxpdFRvdWNoID0gMTY4NDM1NDM7IC8vIDB4MTAxMDMxNwogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IHdpbmRvd0VudGVyQW5pbWF0aW9uID0gMTY4NDI5MzI7IC8vIDB4MTAxMDBiNApAQCAtMTgwNyw2ICsxODEyLDcgQEAKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUaGVtZV9Ob1RpdGxlQmFyX0Z1bGxzY3JlZW4gPSAxNjk3MzgzMTsgLy8gMHgxMDMwMDA3CiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVGhlbWVfTm9UaXRsZUJhcl9PdmVybGF5QWN0aW9uTW9kZXMgPSAxNjk3MzkzMDsgLy8gMHgxMDMwMDZhCiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVGhlbWVfUGFuZWwgPSAxNjk3MzkxMzsgLy8gMHgxMDMwMDU5CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVGhlbWVfUXVhbnR1bSA9IDE2OTc0MzE4OyAvLyAweDEwMzAxZWUKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUaGVtZV9UcmFuc2x1Y2VudCA9IDE2OTczODM5OyAvLyAweDEwMzAwMGYKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUaGVtZV9UcmFuc2x1Y2VudF9Ob1RpdGxlQmFyID0gMTY5NzM4NDA7IC8vIDB4MTAzMDAxMAogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRoZW1lX1RyYW5zbHVjZW50X05vVGl0bGVCYXJfRnVsbHNjcmVlbiA9IDE2OTczODQxOyAvLyAweDEwMzAwMTEKQEAgLTE4NjMsNiArMTg2OSw4IEBACiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0RldmljZURlZmF1bHRfRHJvcERvd25JdGVtX1NwaW5uZXIgPSAxNjk3NDE3ODsgLy8gMHgxMDMwMTYyCiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0RldmljZURlZmF1bHRfRWRpdFRleHQgPSAxNjk3NDE1NDsgLy8gMHgxMDMwMTRhCiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0RldmljZURlZmF1bHRfRXhwYW5kYWJsZUxpc3RWaWV3ID0gMTY5NzQxNTU7IC8vIDB4MTAzMDE0YgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdpZGdldF9EZXZpY2VEZWZhdWx0X0Zhc3RTY3JvbGwgPSAxNjk3NDMxNjsgLy8gMHgxMDMwMWVjCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0RldmljZURlZmF1bHRfRnJhZ21lbnRCcmVhZENydW1icyA9IDE2OTc0MzExOyAvLyAweDEwMzAxZTcKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXaWRnZXRfRGV2aWNlRGVmYXVsdF9HcmlkVmlldyA9IDE2OTc0MTU2OyAvLyAweDEwMzAxNGMKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXaWRnZXRfRGV2aWNlRGVmYXVsdF9Ib3Jpem9udGFsU2Nyb2xsVmlldyA9IDE2OTc0MTcxOyAvLyAweDEwMzAxNWIKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXaWRnZXRfRGV2aWNlRGVmYXVsdF9JbWFnZUJ1dHRvbiA9IDE2OTc0MTU3OyAvLyAweDEwMzAxNGQKQEAgLTE4OTYsNiArMTkwNCw4IEBACiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0RldmljZURlZmF1bHRfTGlnaHRfRHJvcERvd25JdGVtX1NwaW5uZXIgPSAxNjk3NDIzMzsgLy8gMHgxMDMwMTk5CiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0RldmljZURlZmF1bHRfTGlnaHRfRWRpdFRleHQgPSAxNjk3NDIwNjsgLy8gMHgxMDMwMTdlCiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0RldmljZURlZmF1bHRfTGlnaHRfRXhwYW5kYWJsZUxpc3RWaWV3ID0gMTY5NzQyMDc7IC8vIDB4MTAzMDE3ZgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdpZGdldF9EZXZpY2VEZWZhdWx0X0xpZ2h0X0Zhc3RTY3JvbGwgPSAxNjk3NDMxNzsgLy8gMHgxMDMwMWVkCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0RldmljZURlZmF1bHRfTGlnaHRfRnJhZ21lbnRCcmVhZENydW1icyA9IDE2OTc0MzEyOyAvLyAweDEwMzAxZTgKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXaWRnZXRfRGV2aWNlRGVmYXVsdF9MaWdodF9HcmlkVmlldyA9IDE2OTc0MjA4OyAvLyAweDEwMzAxODAKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXaWRnZXRfRGV2aWNlRGVmYXVsdF9MaWdodF9Ib3Jpem9udGFsU2Nyb2xsVmlldyA9IDE2OTc0MjI2OyAvLyAweDEwMzAxOTIKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXaWRnZXRfRGV2aWNlRGVmYXVsdF9MaWdodF9JbWFnZUJ1dHRvbiA9IDE2OTc0MjA5OyAvLyAweDEwMzAxODEKQEAgLTE5NTIsNiArMTk2Miw3IEBACiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0Ryb3BEb3duSXRlbV9TcGlubmVyID0gMTY5NzM4Njg7IC8vIDB4MTAzMDAyYwogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdpZGdldF9FZGl0VGV4dCA9IDE2OTczODU5OyAvLyAweDEwMzAwMjMKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXaWRnZXRfRXhwYW5kYWJsZUxpc3RWaWV3ID0gMTY5NzM4NjA7IC8vIDB4MTAzMDAyNAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdpZGdldF9GYXN0U2Nyb2xsID0gMTY5NzQzMTM7IC8vIDB4MTAzMDFlOQogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdpZGdldF9GcmFnbWVudEJyZWFkQ3J1bWJzID0gMTY5NzM5NjE7IC8vIDB4MTAzMDA4OQogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdpZGdldF9HYWxsZXJ5ID0gMTY5NzM4Nzc7IC8vIDB4MTAzMDAzNQogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdpZGdldF9HcmlkVmlldyA9IDE2OTczODc0OyAvLyAweDEwMzAwMzIKQEAgLTE5ODMsNiArMTk5NCw4IEBACiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0hvbG9fRHJvcERvd25JdGVtX1NwaW5uZXIgPSAxNjk3Mzk5NTsgLy8gMHgxMDMwMGFiCiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0hvbG9fRWRpdFRleHQgPSAxNjk3Mzk3MTsgLy8gMHgxMDMwMDkzCiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0hvbG9fRXhwYW5kYWJsZUxpc3RWaWV3ID0gMTY5NzM5NzI7IC8vIDB4MTAzMDA5NAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdpZGdldF9Ib2xvX0Zhc3RTY3JvbGwgPSAxNjk3NDMxNDsgLy8gMHgxMDMwMWVhCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0hvbG9fRnJhZ21lbnRCcmVhZENydW1icyA9IDE2OTc0MzA5OyAvLyAweDEwMzAxZTUKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXaWRnZXRfSG9sb19HcmlkVmlldyA9IDE2OTczOTczOyAvLyAweDEwMzAwOTUKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXaWRnZXRfSG9sb19Ib3Jpem9udGFsU2Nyb2xsVmlldyA9IDE2OTczOTg4OyAvLyAweDEwMzAwYTQKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXaWRnZXRfSG9sb19JbWFnZUJ1dHRvbiA9IDE2OTczOTc0OyAvLyAweDEwMzAwOTYKQEAgLTIwMTYsNiArMjAyOSw4IEBACiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0hvbG9fTGlnaHRfRHJvcERvd25JdGVtX1NwaW5uZXIgPSAxNjk3NDA0MTsgLy8gMHgxMDMwMGQ5CiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0hvbG9fTGlnaHRfRWRpdFRleHQgPSAxNjk3NDAxNDsgLy8gMHgxMDMwMGJlCiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0hvbG9fTGlnaHRfRXhwYW5kYWJsZUxpc3RWaWV3ID0gMTY5NzQwMTU7IC8vIDB4MTAzMDBiZgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdpZGdldF9Ib2xvX0xpZ2h0X0Zhc3RTY3JvbGwgPSAxNjk3NDMxNTsgLy8gMHgxMDMwMWViCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV2lkZ2V0X0hvbG9fTGlnaHRfRnJhZ21lbnRCcmVhZENydW1icyA9IDE2OTc0MzEwOyAvLyAweDEwMzAxZTYKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXaWRnZXRfSG9sb19MaWdodF9HcmlkVmlldyA9IDE2OTc0MDE2OyAvLyAweDEwMzAwYzAKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXaWRnZXRfSG9sb19MaWdodF9Ib3Jpem9udGFsU2Nyb2xsVmlldyA9IDE2OTc0MDM0OyAvLyAweDEwMzAwZDIKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXaWRnZXRfSG9sb19MaWdodF9JbWFnZUJ1dHRvbiA9IDE2OTc0MDE3OyAvLyAweDEwMzAwYzEKQEAgLTI0MzQsMTEgKzI0NDksMjMgQEAKICAgICBtZXRob2QgcHVibGljIGphdmEubGFuZy5PYmplY3QgZXZhbHVhdGUoZmxvYXQsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpOwogICB9CiAKKyAgcHVibGljIGNsYXNzIEZsb2F0QXJyYXlFdmFsdWF0b3IgaW1wbGVtZW50cyBhbmRyb2lkLmFuaW1hdGlvbi5UeXBlRXZhbHVhdG9yIHsKKyAgICBjdG9yIHB1YmxpYyBGbG9hdEFycmF5RXZhbHVhdG9yKCk7CisgICAgY3RvciBwdWJsaWMgRmxvYXRBcnJheUV2YWx1YXRvcihmbG9hdFtdKTsKKyAgICBtZXRob2QgcHVibGljIGZsb2F0W10gZXZhbHVhdGUoZmxvYXQsIGZsb2F0W10sIGZsb2F0W10pOworICB9CisKICAgcHVibGljIGNsYXNzIEZsb2F0RXZhbHVhdG9yIGltcGxlbWVudHMgYW5kcm9pZC5hbmltYXRpb24uVHlwZUV2YWx1YXRvciB7CiAgICAgY3RvciBwdWJsaWMgRmxvYXRFdmFsdWF0b3IoKTsKICAgICBtZXRob2QgcHVibGljIGphdmEubGFuZy5GbG9hdCBldmFsdWF0ZShmbG9hdCwgamF2YS5sYW5nLk51bWJlciwgamF2YS5sYW5nLk51bWJlcik7CiAgIH0KIAorICBwdWJsaWMgY2xhc3MgSW50QXJyYXlFdmFsdWF0b3IgaW1wbGVtZW50cyBhbmRyb2lkLmFuaW1hdGlvbi5UeXBlRXZhbHVhdG9yIHsKKyAgICBjdG9yIHB1YmxpYyBJbnRBcnJheUV2YWx1YXRvcigpOworICAgIGN0b3IgcHVibGljIEludEFycmF5RXZhbHVhdG9yKGludFtdKTsKKyAgICBtZXRob2QgcHVibGljIGludFtdIGV2YWx1YXRlKGZsb2F0LCBpbnRbXSwgaW50W10pOworICB9CisKICAgcHVibGljIGNsYXNzIEludEV2YWx1YXRvciBpbXBsZW1lbnRzIGFuZHJvaWQuYW5pbWF0aW9uLlR5cGVFdmFsdWF0b3IgewogICAgIGN0b3IgcHVibGljIEludEV2YWx1YXRvcigpOwogICAgIG1ldGhvZCBwdWJsaWMgamF2YS5sYW5nLkludGVnZXIgZXZhbHVhdGUoZmxvYXQsIGphdmEubGFuZy5JbnRlZ2VyLCBqYXZhLmxhbmcuSW50ZWdlcik7CkBAIC0yNTA3LDEyICsyNTM0LDE5IEBACiAgICAgY3RvciBwdWJsaWMgT2JqZWN0QW5pbWF0b3IoKTsKICAgICBtZXRob2QgcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0UHJvcGVydHlOYW1lKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IGdldFRhcmdldCgpOworICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLk9iamVjdEFuaW1hdG9yIG9mQXJnYihqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQuLi4pOworICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLk9iamVjdEFuaW1hdG9yIG9mQXJnYihULCBhbmRyb2lkLnV0aWwuUHJvcGVydHk8VCwgamF2YS5sYW5nLkludGVnZXI+LCBpbnQuLi4pOwogICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLk9iamVjdEFuaW1hdG9yIG9mRmxvYXQoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgZmxvYXQuLi4pOwogICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLk9iamVjdEFuaW1hdG9yIG9mRmxvYXQoVCwgYW5kcm9pZC51dGlsLlByb3BlcnR5PFQsIGphdmEubGFuZy5GbG9hdD4sIGZsb2F0Li4uKTsKICAgICBtZXRob2QgcHVibGljIHN0YXRpYyBhbmRyb2lkLmFuaW1hdGlvbi5PYmplY3RBbmltYXRvciBvZkludChqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQuLi4pOwogICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLk9iamVjdEFuaW1hdG9yIG9mSW50KFQsIGFuZHJvaWQudXRpbC5Qcm9wZXJ0eTxULCBqYXZhLmxhbmcuSW50ZWdlcj4sIGludC4uLik7CisgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5hbmltYXRpb24uT2JqZWN0QW5pbWF0b3Igb2ZNdWx0aUZsb2F0KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcsIGZsb2F0W11bXSk7CisgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5hbmltYXRpb24uT2JqZWN0QW5pbWF0b3Igb2ZNdWx0aUZsb2F0KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcsIGFuZHJvaWQuYW5pbWF0aW9uLlR5cGVDb252ZXJ0ZXI8VCwgZmxvYXRbXT4sIGFuZHJvaWQuYW5pbWF0aW9uLlR5cGVFdmFsdWF0b3I8VD4sIFQuLi4pOworICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLk9iamVjdEFuaW1hdG9yIG9mTXVsdGlJbnQoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgaW50W11bXSk7CisgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5hbmltYXRpb24uT2JqZWN0QW5pbWF0b3Igb2ZNdWx0aUludChqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nLCBhbmRyb2lkLmFuaW1hdGlvbi5UeXBlQ29udmVydGVyPFQsIGludFtdPiwgYW5kcm9pZC5hbmltYXRpb24uVHlwZUV2YWx1YXRvcjxUPiwgVC4uLik7CiAgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5hbmltYXRpb24uT2JqZWN0QW5pbWF0b3Igb2ZPYmplY3QoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgYW5kcm9pZC5hbmltYXRpb24uVHlwZUV2YWx1YXRvciwgamF2YS5sYW5nLk9iamVjdC4uLik7CiAgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5hbmltYXRpb24uT2JqZWN0QW5pbWF0b3Igb2ZPYmplY3QoVCwgYW5kcm9pZC51dGlsLlByb3BlcnR5PFQsIFY+LCBhbmRyb2lkLmFuaW1hdGlvbi5UeXBlRXZhbHVhdG9yPFY+LCBWLi4uKTsKKyAgICBtZXRob2QgcHVibGljIHN0YXRpYyBhbmRyb2lkLmFuaW1hdGlvbi5PYmplY3RBbmltYXRvciBvZk9iamVjdChULCBhbmRyb2lkLnV0aWwuUHJvcGVydHk8VCwgUD4sIGFuZHJvaWQuYW5pbWF0aW9uLlR5cGVDb252ZXJ0ZXI8ViwgUD4sIGFuZHJvaWQuYW5pbWF0aW9uLlR5cGVFdmFsdWF0b3I8Vj4sIFYuLi4pOwogICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLk9iamVjdEFuaW1hdG9yIG9mUHJvcGVydHlWYWx1ZXNIb2xkZXIoamF2YS5sYW5nLk9iamVjdCwgYW5kcm9pZC5hbmltYXRpb24uUHJvcGVydHlWYWx1ZXNIb2xkZXIuLi4pOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRBdXRvQ2FuY2VsKGJvb2xlYW4pOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRQcm9wZXJ0eShhbmRyb2lkLnV0aWwuUHJvcGVydHkpOwpAQCAtMjUyOCw4ICsyNTYyLDE2IEBACiAgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5hbmltYXRpb24uUHJvcGVydHlWYWx1ZXNIb2xkZXIgb2ZJbnQoYW5kcm9pZC51dGlsLlByb3BlcnR5PD8sIGphdmEubGFuZy5JbnRlZ2VyPiwgaW50Li4uKTsKICAgICBtZXRob2QgcHVibGljIHN0YXRpYyBhbmRyb2lkLmFuaW1hdGlvbi5Qcm9wZXJ0eVZhbHVlc0hvbGRlciBvZktleWZyYW1lKGphdmEubGFuZy5TdHJpbmcsIGFuZHJvaWQuYW5pbWF0aW9uLktleWZyYW1lLi4uKTsKICAgICBtZXRob2QgcHVibGljIHN0YXRpYyBhbmRyb2lkLmFuaW1hdGlvbi5Qcm9wZXJ0eVZhbHVlc0hvbGRlciBvZktleWZyYW1lKGFuZHJvaWQudXRpbC5Qcm9wZXJ0eSwgYW5kcm9pZC5hbmltYXRpb24uS2V5ZnJhbWUuLi4pOworICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLlByb3BlcnR5VmFsdWVzSG9sZGVyIG9mTXVsdGlGbG9hdChqYXZhLmxhbmcuU3RyaW5nLCBmbG9hdFtdW10pOworICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLlByb3BlcnR5VmFsdWVzSG9sZGVyIG9mTXVsdGlGbG9hdChqYXZhLmxhbmcuU3RyaW5nLCBhbmRyb2lkLmFuaW1hdGlvbi5UeXBlQ29udmVydGVyPFYsIGZsb2F0W10+LCBhbmRyb2lkLmFuaW1hdGlvbi5UeXBlRXZhbHVhdG9yPFY+LCBWLi4uKTsKKyAgICBtZXRob2QgcHVibGljIHN0YXRpYyBhbmRyb2lkLmFuaW1hdGlvbi5Qcm9wZXJ0eVZhbHVlc0hvbGRlciBvZk11bHRpRmxvYXQoamF2YS5sYW5nLlN0cmluZywgYW5kcm9pZC5hbmltYXRpb24uVHlwZUNvbnZlcnRlcjxULCBmbG9hdFtdPiwgYW5kcm9pZC5hbmltYXRpb24uVHlwZUV2YWx1YXRvcjxUPiwgYW5kcm9pZC5hbmltYXRpb24uS2V5ZnJhbWUuLi4pOworICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLlByb3BlcnR5VmFsdWVzSG9sZGVyIG9mTXVsdGlJbnQoamF2YS5sYW5nLlN0cmluZywgaW50W11bXSk7CisgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5hbmltYXRpb24uUHJvcGVydHlWYWx1ZXNIb2xkZXIgb2ZNdWx0aUludChqYXZhLmxhbmcuU3RyaW5nLCBhbmRyb2lkLmFuaW1hdGlvbi5UeXBlQ29udmVydGVyPFYsIGludFtdPiwgYW5kcm9pZC5hbmltYXRpb24uVHlwZUV2YWx1YXRvcjxWPiwgVi4uLik7CisgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5hbmltYXRpb24uUHJvcGVydHlWYWx1ZXNIb2xkZXIgb2ZNdWx0aUludChqYXZhLmxhbmcuU3RyaW5nLCBhbmRyb2lkLmFuaW1hdGlvbi5UeXBlQ29udmVydGVyPFQsIGludFtdPiwgYW5kcm9pZC5hbmltYXRpb24uVHlwZUV2YWx1YXRvcjxUPiwgYW5kcm9pZC5hbmltYXRpb24uS2V5ZnJhbWUuLi4pOwogICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLlByb3BlcnR5VmFsdWVzSG9sZGVyIG9mT2JqZWN0KGphdmEubGFuZy5TdHJpbmcsIGFuZHJvaWQuYW5pbWF0aW9uLlR5cGVFdmFsdWF0b3IsIGphdmEubGFuZy5PYmplY3QuLi4pOwogICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLlByb3BlcnR5VmFsdWVzSG9sZGVyIG9mT2JqZWN0KGFuZHJvaWQudXRpbC5Qcm9wZXJ0eSwgYW5kcm9pZC5hbmltYXRpb24uVHlwZUV2YWx1YXRvcjxWPiwgVi4uLik7CisgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5hbmltYXRpb24uUHJvcGVydHlWYWx1ZXNIb2xkZXIgb2ZPYmplY3QoYW5kcm9pZC51dGlsLlByb3BlcnR5PD8sIFY+LCBhbmRyb2lkLmFuaW1hdGlvbi5UeXBlQ29udmVydGVyPFQsIFY+LCBhbmRyb2lkLmFuaW1hdGlvbi5UeXBlRXZhbHVhdG9yPFQ+LCBULi4uKTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0Q29udmVydGVyKGFuZHJvaWQuYW5pbWF0aW9uLlR5cGVDb252ZXJ0ZXIpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRFdmFsdWF0b3IoYW5kcm9pZC5hbmltYXRpb24uVHlwZUV2YWx1YXRvcik7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldEZsb2F0VmFsdWVzKGZsb2F0Li4uKTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0SW50VmFsdWVzKGludC4uLik7CkBAIC0yNTQxLDYgKzI1ODMsNyBAQAogCiAgIHB1YmxpYyBjbGFzcyBSZWN0RXZhbHVhdG9yIGltcGxlbWVudHMgYW5kcm9pZC5hbmltYXRpb24uVHlwZUV2YWx1YXRvciB7CiAgICAgY3RvciBwdWJsaWMgUmVjdEV2YWx1YXRvcigpOworICAgIGN0b3IgcHVibGljIFJlY3RFdmFsdWF0b3IoYW5kcm9pZC5ncmFwaGljcy5SZWN0KTsKICAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuZ3JhcGhpY3MuUmVjdCBldmFsdWF0ZShmbG9hdCwgYW5kcm9pZC5ncmFwaGljcy5SZWN0LCBhbmRyb2lkLmdyYXBoaWNzLlJlY3QpOwogICB9CiAKQEAgLTI1NTcsNiArMjYwMCwxMiBAQAogICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3QgZmxvYXQgZ2V0SW50ZXJwb2xhdGlvbihmbG9hdCk7CiAgIH0KIAorICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVHlwZUNvbnZlcnRlciB7CisgICAgY3RvciBwdWJsaWMgVHlwZUNvbnZlcnRlcihqYXZhLmxhbmcuQ2xhc3M8VD4sIGphdmEubGFuZy5DbGFzczxWPik7CisgICAgbWV0aG9kIHB1YmxpYyBhYnN0cmFjdCBWIGNvbnZlcnQoVCk7CisgICAgbWV0aG9kIHB1YmxpYyBUIGNvbnZlcnRCYWNrKFYpOworICB9CisKICAgcHVibGljIGFic3RyYWN0IGludGVyZmFjZSBUeXBlRXZhbHVhdG9yIHsKICAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IFQgZXZhbHVhdGUoZmxvYXQsIFQsIFQpOwogICB9CkBAIC0yNTc1LDYgKzI2MjQsNyBAQAogICAgIG1ldGhvZCBwdWJsaWMgbG9uZyBnZXRTdGFydERlbGF5KCk7CiAgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLmFuaW1hdGlvbi5Qcm9wZXJ0eVZhbHVlc0hvbGRlcltdIGdldFZhbHVlcygpOwogICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiBpc1J1bm5pbmcoKTsKKyAgICBtZXRob2QgcHVibGljIHN0YXRpYyBhbmRyb2lkLmFuaW1hdGlvbi5WYWx1ZUFuaW1hdG9yIG9mQXJnYihpbnQuLi4pOwogICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLlZhbHVlQW5pbWF0b3Igb2ZGbG9hdChmbG9hdC4uLik7CiAgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5hbmltYXRpb24uVmFsdWVBbmltYXRvciBvZkludChpbnQuLi4pOwogICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuYW5pbWF0aW9uLlZhbHVlQW5pbWF0b3Igb2ZPYmplY3QoYW5kcm9pZC5hbmltYXRpb24uVHlwZUV2YWx1YXRvciwgamF2YS5sYW5nLk9iamVjdC4uLik7CkBAIC0yNjA3LDYgKzI2NTcsMTIgQEAKIAogcGFja2FnZSBhbmRyb2lkLmFubm90YXRpb24gewogCisgIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBOb25OdWxsIGltcGxlbWVudHMgamF2YS5sYW5nLmFubm90YXRpb24uQW5ub3RhdGlvbiB7CisgIH0KKworICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTnVsbGFibGUgaW1wbGVtZW50cyBqYXZhLmxhbmcuYW5ub3RhdGlvbi5Bbm5vdGF0aW9uIHsKKyAgfQorCiAgIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBTdXBwcmVzc0xpbnQgaW1wbGVtZW50cyBqYXZhLmxhbmcuYW5ub3RhdGlvbi5Bbm5vdGF0aW9uIHsKICAgfQogCkBAIC0zNjAwLDYgKzM2NTYsNyBAQAogICAgIGN0b3IgcHVibGljIEZyYWdtZW50QnJlYWRDcnVtYnMoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIEZyYWdtZW50QnJlYWRDcnVtYnMoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIEZyYWdtZW50QnJlYWRDcnVtYnMoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgRnJhZ21lbnRCcmVhZENydW1icyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBvbkJhY2tTdGFja0NoYW5nZWQoKTsKICAgICBtZXRob2QgcHJvdGVjdGVkIHZvaWQgb25MYXlvdXQoYm9vbGVhbiwgaW50LCBpbnQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0QWN0aXZpdHkoYW5kcm9pZC5hcHAuQWN0aXZpdHkpOwpAQCAtMzg4Niw2ICszOTQzLDcgQEAKICAgICBjdG9yIHB1YmxpYyBNZWRpYVJvdXRlQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBNZWRpYVJvdXRlQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBNZWRpYVJvdXRlQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIE1lZGlhUm91dGVCdXR0b24oYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRSb3V0ZVR5cGVzKCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIG9uQXR0YWNoZWRUb1dpbmRvdygpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBvbkRldGFjaGVkRnJvbVdpbmRvdygpOwpAQCAtNTc1Myw2ICs1ODExLDggQEAKICAgICBtZXRob2QgcHVibGljIGZpbmFsIGFuZHJvaWQub3MuQnVuZGxlIGNhbGwoYW5kcm9pZC5uZXQuVXJpLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBhbmRyb2lkLm9zLkJ1bmRsZSk7CiAgICAgbWV0aG9kIHB1YmxpYyBkZXByZWNhdGVkIHZvaWQgY2FuY2VsU3luYyhhbmRyb2lkLm5ldC5VcmkpOwogICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIHZvaWQgY2FuY2VsU3luYyhhbmRyb2lkLmFjY291bnRzLkFjY291bnQsIGphdmEubGFuZy5TdHJpbmcpOworICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIHZvaWQgY2FuY2VsU3luYyhhbmRyb2lkLmNvbnRlbnQuQ29tcG9uZW50TmFtZSk7CisgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgdm9pZCBjYW5jZWxTeW5jKGFuZHJvaWQuY29udGVudC5TeW5jUmVxdWVzdCk7CiAgICAgbWV0aG9kIHB1YmxpYyBmaW5hbCBhbmRyb2lkLm5ldC5VcmkgY2Fub25pY2FsaXplKGFuZHJvaWQubmV0LlVyaSk7CiAgICAgbWV0aG9kIHB1YmxpYyBmaW5hbCBpbnQgZGVsZXRlKGFuZHJvaWQubmV0LlVyaSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZ1tdKTsKICAgICBtZXRob2QgcHVibGljIHN0YXRpYyBkZXByZWNhdGVkIGFuZHJvaWQuY29udGVudC5TeW5jSW5mbyBnZXRDdXJyZW50U3luYygpOwpAQCAtNTc2MSwxNCArNTgyMSwxOCBAQAogICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZ2V0TWFzdGVyU3luY0F1dG9tYXRpY2FsbHkoKTsKICAgICBtZXRob2QgcHVibGljIGphdmEudXRpbC5MaXN0PGFuZHJvaWQuY29udGVudC5VcmlQZXJtaXNzaW9uPiBnZXRPdXRnb2luZ1BlcnNpc3RlZFVyaVBlcm1pc3Npb25zKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgamF2YS51dGlsLkxpc3Q8YW5kcm9pZC5jb250ZW50LlBlcmlvZGljU3luYz4gZ2V0UGVyaW9kaWNTeW5jcyhhbmRyb2lkLmFjY291bnRzLkFjY291bnQsIGphdmEubGFuZy5TdHJpbmcpOworICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGphdmEudXRpbC5MaXN0PGFuZHJvaWQuY29udGVudC5QZXJpb2RpY1N5bmM+IGdldFBlcmlvZGljU3luY3MoYW5kcm9pZC5jb250ZW50LkNvbXBvbmVudE5hbWUpOwogICAgIG1ldGhvZCBwdWJsaWMgamF2YS51dGlsLkxpc3Q8YW5kcm9pZC5jb250ZW50LlVyaVBlcm1pc3Npb24+IGdldFBlcnNpc3RlZFVyaVBlcm1pc3Npb25zKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nW10gZ2V0U3RyZWFtVHlwZXMoYW5kcm9pZC5uZXQuVXJpLCBqYXZhLmxhbmcuU3RyaW5nKTsKICAgICBtZXRob2QgcHVibGljIHN0YXRpYyBhbmRyb2lkLmNvbnRlbnQuU3luY0FkYXB0ZXJUeXBlW10gZ2V0U3luY0FkYXB0ZXJUeXBlcygpOwogICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZ2V0U3luY0F1dG9tYXRpY2FsbHkoYW5kcm9pZC5hY2NvdW50cy5BY2NvdW50LCBqYXZhLmxhbmcuU3RyaW5nKTsKICAgICBtZXRob2QgcHVibGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgZ2V0VHlwZShhbmRyb2lkLm5ldC5VcmkpOwogICAgIG1ldGhvZCBwdWJsaWMgZmluYWwgYW5kcm9pZC5uZXQuVXJpIGluc2VydChhbmRyb2lkLm5ldC5VcmksIGFuZHJvaWQuY29udGVudC5Db250ZW50VmFsdWVzKTsKKyAgICBtZXRob2QgcHVibGljIHN0YXRpYyBib29sZWFuIGlzU2VydmljZUFjdGl2ZShhbmRyb2lkLmNvbnRlbnQuQ29tcG9uZW50TmFtZSk7CiAgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1N5bmNBY3RpdmUoYW5kcm9pZC5hY2NvdW50cy5BY2NvdW50LCBqYXZhLmxhbmcuU3RyaW5nKTsKKyAgICBtZXRob2QgcHVibGljIHN0YXRpYyBib29sZWFuIGlzU3luY0FjdGl2ZShhbmRyb2lkLmNvbnRlbnQuQ29tcG9uZW50TmFtZSk7CiAgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1N5bmNQZW5kaW5nKGFuZHJvaWQuYWNjb3VudHMuQWNjb3VudCwgamF2YS5sYW5nLlN0cmluZyk7CisgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1N5bmNQZW5kaW5nKGFuZHJvaWQuY29udGVudC5Db21wb25lbnROYW1lKTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgbm90aWZ5Q2hhbmdlKGFuZHJvaWQubmV0LlVyaSwgYW5kcm9pZC5kYXRhYmFzZS5Db250ZW50T2JzZXJ2ZXIpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBub3RpZnlDaGFuZ2UoYW5kcm9pZC5uZXQuVXJpLCBhbmRyb2lkLmRhdGFiYXNlLkNvbnRlbnRPYnNlcnZlciwgYm9vbGVhbik7CiAgICAgbWV0aG9kIHB1YmxpYyBmaW5hbCBhbmRyb2lkLmNvbnRlbnQucmVzLkFzc2V0RmlsZURlc2NyaXB0b3Igb3BlbkFzc2V0RmlsZURlc2NyaXB0b3IoYW5kcm9pZC5uZXQuVXJpLCBqYXZhLmxhbmcuU3RyaW5nKSB0aHJvd3MgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb247CkBAIC01NzkwLDYgKzU4NTQsNyBAQAogICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIHZvaWQgcmVxdWVzdFN5bmMoYW5kcm9pZC5jb250ZW50LlN5bmNSZXF1ZXN0KTsKICAgICBtZXRob2QgcHVibGljIHN0YXRpYyB2b2lkIHNldElzU3luY2FibGUoYW5kcm9pZC5hY2NvdW50cy5BY2NvdW50LCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIHZvaWQgc2V0TWFzdGVyU3luY0F1dG9tYXRpY2FsbHkoYm9vbGVhbik7CisgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgdm9pZCBzZXRTZXJ2aWNlQWN0aXZlKGFuZHJvaWQuY29udGVudC5Db21wb25lbnROYW1lLCBib29sZWFuKTsKICAgICBtZXRob2QgcHVibGljIHN0YXRpYyB2b2lkIHNldFN5bmNBdXRvbWF0aWNhbGx5KGFuZHJvaWQuYWNjb3VudHMuQWNjb3VudCwgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbik7CiAgICAgbWV0aG9kIHB1YmxpYyBkZXByZWNhdGVkIHZvaWQgc3RhcnRTeW5jKGFuZHJvaWQubmV0LlVyaSwgYW5kcm9pZC5vcy5CdW5kbGUpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCB0YWtlUGVyc2lzdGFibGVVcmlQZXJtaXNzaW9uKGFuZHJvaWQubmV0LlVyaSwgaW50KTsKQEAgLTU5NzYsNiArNjA0MSw3IEBACiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklORF9OT1RfRk9SRUdST1VORCA9IDQ7IC8vIDB4NAogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJJTkRfV0FJVkVfUFJJT1JJVFkgPSAzMjsgLy8gMHgyMAogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBCTFVFVE9PVEhfU0VSVklDRSA9ICJibHVldG9vdGgiOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBDQU1FUkFfU0VSVklDRSA9ICJjYW1lcmEiOwogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBDQVBUSU9OSU5HX1NFUlZJQ0UgPSAiY2FwdGlvbmluZyI7CiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIENMSVBCT0FSRF9TRVJWSUNFID0gImNsaXBib2FyZCI7CiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIENPTk5FQ1RJVklUWV9TRVJWSUNFID0gImNvbm5lY3Rpdml0eSI7CkBAIC02NzMzLDcgKzY3OTksOSBAQAogICAgIGZpZWxkIHB1YmxpYyBmaW5hbCBhbmRyb2lkLmFjY291bnRzLkFjY291bnQgYWNjb3VudDsKICAgICBmaWVsZCBwdWJsaWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBhdXRob3JpdHk7CiAgICAgZmllbGQgcHVibGljIGZpbmFsIGFuZHJvaWQub3MuQnVuZGxlIGV4dHJhczsKKyAgICBmaWVsZCBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc1NlcnZpY2U7CiAgICAgZmllbGQgcHVibGljIGZpbmFsIGxvbmcgcGVyaW9kOworICAgIGZpZWxkIHB1YmxpYyBmaW5hbCBhbmRyb2lkLmNvbnRlbnQuQ29tcG9uZW50TmFtZSBzZXJ2aWNlOwogICB9CiAKICAgcHVibGljIGNsYXNzIFJlY2VpdmVyQ2FsbE5vdEFsbG93ZWRFeGNlcHRpb24gZXh0ZW5kcyBhbmRyb2lkLnV0aWwuQW5kcm9pZFJ1bnRpbWVFeGNlcHRpb24gewpAQCAtNjg0OSwxMSArNjkxNywxMyBAQAogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCB3cml0ZVRvUGFyY2VsKGFuZHJvaWQub3MuUGFyY2VsLCBpbnQpOwogICAgIGZpZWxkIHB1YmxpYyBmaW5hbCBhbmRyb2lkLmFjY291bnRzLkFjY291bnQgYWNjb3VudDsKICAgICBmaWVsZCBwdWJsaWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBhdXRob3JpdHk7CisgICAgZmllbGQgcHVibGljIGZpbmFsIGFuZHJvaWQuY29udGVudC5Db21wb25lbnROYW1lIHNlcnZpY2U7CiAgICAgZmllbGQgcHVibGljIGZpbmFsIGxvbmcgc3RhcnRUaW1lOwogICB9CiAKICAgcHVibGljIGNsYXNzIFN5bmNSZXF1ZXN0IGltcGxlbWVudHMgYW5kcm9pZC5vcy5QYXJjZWxhYmxlIHsKICAgICBtZXRob2QgcHVibGljIGludCBkZXNjcmliZUNvbnRlbnRzKCk7CisgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGlzRXhwZWRpdGVkKCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHdyaXRlVG9QYXJjZWwoYW5kcm9pZC5vcy5QYXJjZWwsIGludCk7CiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLm9zLlBhcmNlbGFibGUuQ3JlYXRvciBDUkVBVE9SOwogICB9CkBAIC02ODY4LDcgKzY5MzgsMTAgQEAKICAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuY29udGVudC5TeW5jUmVxdWVzdC5CdWlsZGVyIHNldElnbm9yZVNldHRpbmdzKGJvb2xlYW4pOwogICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5jb250ZW50LlN5bmNSZXF1ZXN0LkJ1aWxkZXIgc2V0TWFudWFsKGJvb2xlYW4pOwogICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5jb250ZW50LlN5bmNSZXF1ZXN0LkJ1aWxkZXIgc2V0Tm9SZXRyeShib29sZWFuKTsKKyAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuY29udGVudC5TeW5jUmVxdWVzdC5CdWlsZGVyIHNldFByaW9yaXR5KGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLmNvbnRlbnQuU3luY1JlcXVlc3QuQnVpbGRlciBzZXRTeW5jQWRhcHRlcihhbmRyb2lkLmFjY291bnRzLkFjY291bnQsIGphdmEubGFuZy5TdHJpbmcpOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5jb250ZW50LlN5bmNSZXF1ZXN0LkJ1aWxkZXIgc2V0U3luY0FkYXB0ZXIoYW5kcm9pZC5jb250ZW50LkNvbXBvbmVudE5hbWUpOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5jb250ZW50LlN5bmNSZXF1ZXN0LkJ1aWxkZXIgc2V0VHJhbnNmZXJTaXplKGxvbmcsIGxvbmcpOwogICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5jb250ZW50LlN5bmNSZXF1ZXN0LkJ1aWxkZXIgc3luY09uY2UoKTsKICAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuY29udGVudC5TeW5jUmVxdWVzdC5CdWlsZGVyIHN5bmNQZXJpb2RpYyhsb25nLCBsb25nKTsKICAgfQpAQCAtNjg5Niw2ICs2OTY5LDEzIEBACiAgICAgZmllbGQgcHVibGljIGJvb2xlYW4gdG9vTWFueVJldHJpZXM7CiAgIH0KIAorICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgU3luY1NlcnZpY2UgZXh0ZW5kcyBhbmRyb2lkLmFwcC5TZXJ2aWNlIHsKKyAgICBjdG9yIHB1YmxpYyBTeW5jU2VydmljZSgpOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5vcy5JQmluZGVyIG9uQmluZChhbmRyb2lkLmNvbnRlbnQuSW50ZW50KTsKKyAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IHZvaWQgb25QZXJmb3JtU3luYyhhbmRyb2lkLm9zLkJ1bmRsZSwgYW5kcm9pZC5jb250ZW50LlN5bmNSZXN1bHQpOworICAgIG1ldGhvZCBwcm90ZWN0ZWQgYm9vbGVhbiBwYXJhbGxlbFN5bmNzRW5hYmxlZCgpOworICB9CisKICAgcHVibGljIGNsYXNzIFN5bmNTdGF0cyBpbXBsZW1lbnRzIGFuZHJvaWQub3MuUGFyY2VsYWJsZSB7CiAgICAgY3RvciBwdWJsaWMgU3luY1N0YXRzKCk7CiAgICAgY3RvciBwdWJsaWMgU3luY1N0YXRzKGFuZHJvaWQub3MuUGFyY2VsKTsKQEAgLTc1NTksNiArNzYzOSw3IEBACiAgICAgbWV0aG9kIHB1YmxpYyBpbnQgZGVzY3JpYmVDb250ZW50cygpOwogICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldENvbG9yRm9yU3RhdGUoaW50W10sIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0RGVmYXVsdENvbG9yKCk7CisgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGlzT3BhcXVlKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGlzU3RhdGVmdWwoKTsKICAgICBtZXRob2QgcHVibGljIHN0YXRpYyBhbmRyb2lkLmNvbnRlbnQucmVzLkNvbG9yU3RhdGVMaXN0IHZhbHVlT2YoaW50KTsKICAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuY29udGVudC5yZXMuQ29sb3JTdGF0ZUxpc3Qgd2l0aEFscGhhKGludCk7CkBAIC04NzQ4LDYgKzg4MjksNyBAQAogICAgIGN0b3IgcHVibGljIEdlc3R1cmVPdmVybGF5VmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgR2VzdHVyZU92ZXJsYXlWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBHZXN0dXJlT3ZlcmxheVZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgR2VzdHVyZU92ZXJsYXlWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGFkZE9uR2VzdHVyZUxpc3RlbmVyKGFuZHJvaWQuZ2VzdHVyZS5HZXN0dXJlT3ZlcmxheVZpZXcuT25HZXN0dXJlTGlzdGVuZXIpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBhZGRPbkdlc3R1cmVQZXJmb3JtZWRMaXN0ZW5lcihhbmRyb2lkLmdlc3R1cmUuR2VzdHVyZU92ZXJsYXlWaWV3Lk9uR2VzdHVyZVBlcmZvcm1lZExpc3RlbmVyKTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgYWRkT25HZXN0dXJpbmdMaXN0ZW5lcihhbmRyb2lkLmdlc3R1cmUuR2VzdHVyZU92ZXJsYXlWaWV3Lk9uR2VzdHVyaW5nTGlzdGVuZXIpOwpAQCAtOTIxNiw2ICs5Mjk4LDkgQEAKICAgcHVibGljIGNsYXNzIENvbG9yTWF0cml4Q29sb3JGaWx0ZXIgZXh0ZW5kcyBhbmRyb2lkLmdyYXBoaWNzLkNvbG9yRmlsdGVyIHsKICAgICBjdG9yIHB1YmxpYyBDb2xvck1hdHJpeENvbG9yRmlsdGVyKGFuZHJvaWQuZ3JhcGhpY3MuQ29sb3JNYXRyaXgpOwogICAgIGN0b3IgcHVibGljIENvbG9yTWF0cml4Q29sb3JGaWx0ZXIoZmxvYXRbXSk7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLmdyYXBoaWNzLkNvbG9yTWF0cml4IGdldENvbG9yTWF0cml4KCk7CisgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldENvbG9yTWF0cml4KGFuZHJvaWQuZ3JhcGhpY3MuQ29sb3JNYXRyaXgpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRDb2xvck1hdHJpeChmbG9hdFtdKTsKICAgfQogCiAgIHB1YmxpYyBjbGFzcyBDb21wb3NlUGF0aEVmZmVjdCBleHRlbmRzIGFuZHJvaWQuZ3JhcGhpY3MuUGF0aEVmZmVjdCB7CkBAIC05MjUzLDYgKzkzMzgsNyBAQAogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpQRUcgPSAyNTY7IC8vIDB4MTAwCiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlYxNiA9IDE2OyAvLyAweDEwCiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlYyMSA9IDE3OyAvLyAweDExCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFXX1NFTlNPUiA9IDMyOyAvLyAweDIwCiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkdCXzU2NSA9IDQ7IC8vIDB4NAogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOS05PV04gPSAwOyAvLyAweDAKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZVVZfNDIwXzg4OCA9IDM1OyAvLyAweDIzCkBAIC05MjkwLDYgKzkzNzYsMTAgQEAKIAogICBwdWJsaWMgY2xhc3MgTGlnaHRpbmdDb2xvckZpbHRlciBleHRlbmRzIGFuZHJvaWQuZ3JhcGhpY3MuQ29sb3JGaWx0ZXIgewogICAgIGN0b3IgcHVibGljIExpZ2h0aW5nQ29sb3JGaWx0ZXIoaW50LCBpbnQpOworICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldENvbG9yQWRkKCk7CisgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0Q29sb3JNdWx0aXBseSgpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRDb2xvckFkZChpbnQpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRDb2xvck11bHRpcGx5KGludCk7CiAgIH0KIAogICBwdWJsaWMgY2xhc3MgTGluZWFyR3JhZGllbnQgZXh0ZW5kcyBhbmRyb2lkLmdyYXBoaWNzLlNoYWRlciB7CkBAIC05NzY0LDYgKzk4NTQsMTAgQEAKIAogICBwdWJsaWMgY2xhc3MgUG9ydGVyRHVmZkNvbG9yRmlsdGVyIGV4dGVuZHMgYW5kcm9pZC5ncmFwaGljcy5Db2xvckZpbHRlciB7CiAgICAgY3RvciBwdWJsaWMgUG9ydGVyRHVmZkNvbG9yRmlsdGVyKGludCwgYW5kcm9pZC5ncmFwaGljcy5Qb3J0ZXJEdWZmLk1vZGUpOworICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldENvbG9yKCk7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLmdyYXBoaWNzLlBvcnRlckR1ZmYuTW9kZSBnZXRNb2RlKCk7CisgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldENvbG9yKGludCk7CisgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldE1vZGUoYW5kcm9pZC5ncmFwaGljcy5Qb3J0ZXJEdWZmLk1vZGUpOwogICB9CiAKICAgcHVibGljIGNsYXNzIFBvcnRlckR1ZmZYZmVybW9kZSBleHRlbmRzIGFuZHJvaWQuZ3JhcGhpY3MuWGZlcm1vZGUgewpAQCAtMTAxOTEsOCArMTAyODUsMTAgQEAKICAgICBtZXRob2QgcHVibGljIHZvaWQgZHJhdyhhbmRyb2lkLmdyYXBoaWNzLkNhbnZhcyk7CiAgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0T3BhY2l0eSgpOwogICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS5HcmFkaWVudERyYXdhYmxlLk9yaWVudGF0aW9uIGdldE9yaWVudGF0aW9uKCk7CisgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIG9uU3RhdGVDaGFuZ2UoaW50W10pOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRBbHBoYShpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRDb2xvcihpbnQpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRDb2xvcihhbmRyb2lkLmNvbnRlbnQucmVzLkNvbG9yU3RhdGVMaXN0KTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0Q29sb3JGaWx0ZXIoYW5kcm9pZC5ncmFwaGljcy5Db2xvckZpbHRlcik7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldENvbG9ycyhpbnRbXSk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldENvcm5lclJhZGlpKGZsb2F0W10pOwpAQCAtMTAyMDQsNyArMTAzMDAsOSBAQAogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRTaGFwZShpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRTaXplKGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0U3Ryb2tlKGludCwgaW50KTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0U3Ryb2tlKGludCwgYW5kcm9pZC5jb250ZW50LnJlcy5Db2xvclN0YXRlTGlzdCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldFN0cm9rZShpbnQsIGludCwgZmxvYXQsIGZsb2F0KTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0U3Ryb2tlKGludCwgYW5kcm9pZC5jb250ZW50LnJlcy5Db2xvclN0YXRlTGlzdCwgZmxvYXQsIGZsb2F0KTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0VXNlTGV2ZWwoYm9vbGVhbik7CiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTElORSA9IDI7IC8vIDB4MgogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExJTkVBUl9HUkFESUVOVCA9IDA7IC8vIDB4MApAQCAtMTA4NjAsNiArMTA5NTgsNDAyIEBACiAKIH0KIAorcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIgeworCisgIHB1YmxpYyBjbGFzcyBDYW1lcmFBY2Nlc3NFeGNlcHRpb24gZXh0ZW5kcyBhbmRyb2lkLnV0aWwuQW5kcm9pZEV4Y2VwdGlvbiB7CisgICAgY3RvciBwdWJsaWMgQ2FtZXJhQWNjZXNzRXhjZXB0aW9uKGludCk7CisgICAgY3RvciBwdWJsaWMgQ2FtZXJhQWNjZXNzRXhjZXB0aW9uKGludCwgamF2YS5sYW5nLlN0cmluZyk7CisgICAgY3RvciBwdWJsaWMgQ2FtZXJhQWNjZXNzRXhjZXB0aW9uKGludCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlRocm93YWJsZSk7CisgICAgY3RvciBwdWJsaWMgQ2FtZXJhQWNjZXNzRXhjZXB0aW9uKGludCwgamF2YS5sYW5nLlRocm93YWJsZSk7CisgICAgbWV0aG9kIHB1YmxpYyBmaW5hbCBpbnQgZ2V0UmVhc29uKCk7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0FNRVJBX0RJU0FCTEVEID0gMTsgLy8gMHgxCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0FNRVJBX0RJU0NPTk5FQ1RFRCA9IDI7IC8vIDB4MgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENBTUVSQV9FUlJPUiA9IDM7IC8vIDB4MworICB9CisKKyAgcHVibGljIGZpbmFsIGNsYXNzIENhbWVyYUNoYXJhY3RlcmlzdGljcyBleHRlbmRzIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YSB7CisgICAgbWV0aG9kIHB1YmxpYyBUIGdldChhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5PFQ+KTsKKyAgICBtZXRob2QgcHVibGljIGphdmEudXRpbC5MaXN0PGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXk8Pz4+IGdldEF2YWlsYWJsZUNhcHR1cmVSZXF1ZXN0S2V5cygpOworICAgIG1ldGhvZCBwdWJsaWMgamF2YS51dGlsLkxpc3Q8YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleTw/Pj4gZ2V0QXZhaWxhYmxlQ2FwdHVyZVJlc3VsdEtleXMoKTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgQ09OVFJPTF9BRV9BVkFJTEFCTEVfQU5USUJBTkRJTkdfTU9ERVM7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfQUVfQVZBSUxBQkxFX1RBUkdFVF9GUFNfUkFOR0VTOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX0FFX0NPTVBFTlNBVElPTl9SQU5HRTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgQ09OVFJPTF9BRV9DT01QRU5TQVRJT05fU1RFUDsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgQ09OVFJPTF9BRl9BVkFJTEFCTEVfTU9ERVM7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfQVZBSUxBQkxFX0VGRkVDVFM7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfQVZBSUxBQkxFX1NDRU5FX01PREVTOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX0FWQUlMQUJMRV9WSURFT19TVEFCSUxJWkFUSU9OX01PREVTOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX0FXQl9BVkFJTEFCTEVfTU9ERVM7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfTUFYX1JFR0lPTlM7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IEZMQVNIX0lORk9fQVZBSUxBQkxFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBJTkZPX1NVUFBPUlRFRF9IQVJEV0FSRV9MRVZFTDsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgSlBFR19BVkFJTEFCTEVfVEhVTUJOQUlMX1NJWkVTOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBMRU5TX0ZBQ0lORzsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgTEVOU19JTkZPX0FWQUlMQUJMRV9BUEVSVFVSRVM7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IExFTlNfSU5GT19BVkFJTEFCTEVfRklMVEVSX0RFTlNJVElFUzsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgTEVOU19JTkZPX0FWQUlMQUJMRV9GT0NBTF9MRU5HVEhTOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBMRU5TX0lORk9fQVZBSUxBQkxFX09QVElDQUxfU1RBQklMSVpBVElPTjsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgTEVOU19JTkZPX0hZUEVSRk9DQUxfRElTVEFOQ0U7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IExFTlNfSU5GT19NSU5JTVVNX0ZPQ1VTX0RJU1RBTkNFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBMRU5TX0lORk9fU0hBRElOR19NQVBfU0laRTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgUkVRVUVTVF9NQVhfTlVNX09VVFBVVF9TVFJFQU1TOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBTQ0FMRVJfQVZBSUxBQkxFX0ZPUk1BVFM7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IFNDQUxFUl9BVkFJTEFCTEVfSlBFR19NSU5fRFVSQVRJT05TOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBTQ0FMRVJfQVZBSUxBQkxFX0pQRUdfU0laRVM7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IFNDQUxFUl9BVkFJTEFCTEVfTUFYX0RJR0lUQUxfWk9PTTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU0NBTEVSX0FWQUlMQUJMRV9QUk9DRVNTRURfTUlOX0RVUkFUSU9OUzsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU0NBTEVSX0FWQUlMQUJMRV9QUk9DRVNTRURfU0laRVM7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IFNFTlNPUl9CQVNFX0dBSU5fRkFDVE9SOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBTRU5TT1JfSU5GT19BQ1RJVkVfQVJSQVlfU0laRTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU0VOU09SX0lORk9fRVhQT1NVUkVfVElNRV9SQU5HRTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU0VOU09SX0lORk9fTUFYX0ZSQU1FX0RVUkFUSU9OOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBTRU5TT1JfSU5GT19QSFlTSUNBTF9TSVpFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBTRU5TT1JfSU5GT19TRU5TSVRJVklUWV9SQU5HRTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU0VOU09SX01BWF9BTkFMT0dfU0VOU0lUSVZJVFk7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IFNFTlNPUl9PUklFTlRBVElPTjsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU1RBVElTVElDU19JTkZPX0FWQUlMQUJMRV9GQUNFX0RFVEVDVF9NT0RFUzsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU1RBVElTVElDU19JTkZPX01BWF9GQUNFX0NPVU5UOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBUT05FTUFQX01BWF9DVVJWRV9QT0lOVFM7CisgIH0KKworICBwdWJsaWMgYWJzdHJhY3QgaW50ZXJmYWNlIENhbWVyYURldmljZSBpbXBsZW1lbnRzIGphdmEubGFuZy5BdXRvQ2xvc2VhYmxlIHsKKyAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IGludCBjYXB0dXJlKGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYXB0dXJlUmVxdWVzdCwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYURldmljZS5DYXB0dXJlTGlzdGVuZXIsIGFuZHJvaWQub3MuSGFuZGxlcikgdGhyb3dzIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFBY2Nlc3NFeGNlcHRpb247CisgICAgbWV0aG9kIHB1YmxpYyBhYnN0cmFjdCBpbnQgY2FwdHVyZUJ1cnN0KGphdmEudXRpbC5MaXN0PGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYXB0dXJlUmVxdWVzdD4sIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFEZXZpY2UuQ2FwdHVyZUxpc3RlbmVyLCBhbmRyb2lkLm9zLkhhbmRsZXIpIHRocm93cyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhQWNjZXNzRXhjZXB0aW9uOworICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBjbG9zZSgpOworICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBjb25maWd1cmVPdXRwdXRzKGphdmEudXRpbC5MaXN0PGFuZHJvaWQudmlldy5TdXJmYWNlPikgdGhyb3dzIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFBY2Nlc3NFeGNlcHRpb247CisgICAgbWV0aG9kIHB1YmxpYyBhYnN0cmFjdCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FwdHVyZVJlcXVlc3QuQnVpbGRlciBjcmVhdGVDYXB0dXJlUmVxdWVzdChpbnQpIHRocm93cyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhQWNjZXNzRXhjZXB0aW9uOworICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBmbHVzaCgpIHRocm93cyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhQWNjZXNzRXhjZXB0aW9uOworICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3QgamF2YS5sYW5nLlN0cmluZyBnZXRJZCgpOworICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3QgaW50IHNldFJlcGVhdGluZ0J1cnN0KGphdmEudXRpbC5MaXN0PGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYXB0dXJlUmVxdWVzdD4sIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFEZXZpY2UuQ2FwdHVyZUxpc3RlbmVyLCBhbmRyb2lkLm9zLkhhbmRsZXIpIHRocm93cyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhQWNjZXNzRXhjZXB0aW9uOworICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3QgaW50IHNldFJlcGVhdGluZ1JlcXVlc3QoYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhcHR1cmVSZXF1ZXN0LCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhRGV2aWNlLkNhcHR1cmVMaXN0ZW5lciwgYW5kcm9pZC5vcy5IYW5kbGVyKSB0aHJvd3MgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYUFjY2Vzc0V4Y2VwdGlvbjsKKyAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IHZvaWQgc3RvcFJlcGVhdGluZygpIHRocm93cyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhQWNjZXNzRXhjZXB0aW9uOworICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3Qgdm9pZCB3YWl0VW50aWxJZGxlKCkgdGhyb3dzIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFBY2Nlc3NFeGNlcHRpb247CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVNUExBVEVfUFJFVklFVyA9IDE7IC8vIDB4MQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFTVBMQVRFX1JFQ09SRCA9IDM7IC8vIDB4MworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFTVBMQVRFX1NUSUxMX0NBUFRVUkUgPSAyOyAvLyAweDIKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURU1QTEFURV9WSURFT19TTkFQU0hPVCA9IDQ7IC8vIDB4NAorICB9CisKKyAgcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBDYW1lcmFEZXZpY2UuQ2FwdHVyZUxpc3RlbmVyIHsKKyAgICBjdG9yIHB1YmxpYyBDYW1lcmFEZXZpY2UuQ2FwdHVyZUxpc3RlbmVyKCk7CisgICAgbWV0aG9kIHB1YmxpYyB2b2lkIG9uQ2FwdHVyZUNvbXBsZXRlZChhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhRGV2aWNlLCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FwdHVyZVJlcXVlc3QsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYXB0dXJlUmVzdWx0KTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgb25DYXB0dXJlRmFpbGVkKGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFEZXZpY2UsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYXB0dXJlUmVxdWVzdCwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhcHR1cmVGYWlsdXJlKTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgb25DYXB0dXJlU2VxdWVuY2VDb21wbGV0ZWQoYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYURldmljZSwgaW50LCBpbnQpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBvbkNhcHR1cmVTdGFydGVkKGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFEZXZpY2UsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYXB0dXJlUmVxdWVzdCwgbG9uZyk7CisgIH0KKworICBwdWJsaWMgc3RhdGljIGFic3RyYWN0IGNsYXNzIENhbWVyYURldmljZS5TdGF0ZUxpc3RlbmVyIHsKKyAgICBjdG9yIHB1YmxpYyBDYW1lcmFEZXZpY2UuU3RhdGVMaXN0ZW5lcigpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBvbkFjdGl2ZShhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhRGV2aWNlKTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgb25CdXN5KGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFEZXZpY2UpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBvbkNsb3NlZChhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhRGV2aWNlKTsKKyAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IHZvaWQgb25EaXNjb25uZWN0ZWQoYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYURldmljZSk7CisgICAgbWV0aG9kIHB1YmxpYyBhYnN0cmFjdCB2b2lkIG9uRXJyb3IoYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYURldmljZSwgaW50KTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgb25JZGxlKGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFEZXZpY2UpOworICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBvbk9wZW5lZChhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhRGV2aWNlKTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgb25VbmNvbmZpZ3VyZWQoYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYURldmljZSk7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVJST1JfQ0FNRVJBX0RFVklDRSA9IDQ7IC8vIDB4NAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVSUk9SX0NBTUVSQV9ESVNBQkxFRCA9IDM7IC8vIDB4MworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVSUk9SX0NBTUVSQV9JTl9VU0UgPSAxOyAvLyAweDEKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUlJPUl9DQU1FUkFfU0VSVklDRSA9IDU7IC8vIDB4NQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVSUk9SX01BWF9DQU1FUkFTX0lOX1VTRSA9IDI7IC8vIDB4MgorICB9CisKKyAgcHVibGljIGZpbmFsIGNsYXNzIENhbWVyYU1hbmFnZXIgeworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBhZGRBdmFpbGFiaWxpdHlMaXN0ZW5lcihhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWFuYWdlci5BdmFpbGFiaWxpdHlMaXN0ZW5lciwgYW5kcm9pZC5vcy5IYW5kbGVyKTsKKyAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFDaGFyYWN0ZXJpc3RpY3MgZ2V0Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzKGphdmEubGFuZy5TdHJpbmcpIHRocm93cyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhQWNjZXNzRXhjZXB0aW9uOworICAgIG1ldGhvZCBwdWJsaWMgamF2YS5sYW5nLlN0cmluZ1tdIGdldENhbWVyYUlkTGlzdCgpIHRocm93cyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhQWNjZXNzRXhjZXB0aW9uOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBvcGVuQ2FtZXJhKGphdmEubGFuZy5TdHJpbmcsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFEZXZpY2UuU3RhdGVMaXN0ZW5lciwgYW5kcm9pZC5vcy5IYW5kbGVyKSB0aHJvd3MgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYUFjY2Vzc0V4Y2VwdGlvbjsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgcmVtb3ZlQXZhaWxhYmlsaXR5TGlzdGVuZXIoYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1hbmFnZXIuQXZhaWxhYmlsaXR5TGlzdGVuZXIpOworICB9CisKKyAgcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBDYW1lcmFNYW5hZ2VyLkF2YWlsYWJpbGl0eUxpc3RlbmVyIHsKKyAgICBjdG9yIHB1YmxpYyBDYW1lcmFNYW5hZ2VyLkF2YWlsYWJpbGl0eUxpc3RlbmVyKCk7CisgICAgbWV0aG9kIHB1YmxpYyB2b2lkIG9uQ2FtZXJhQXZhaWxhYmxlKGphdmEubGFuZy5TdHJpbmcpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBvbkNhbWVyYVVuYXZhaWxhYmxlKGphdmEubGFuZy5TdHJpbmcpOworICB9CisKKyAgcHVibGljIGFic3RyYWN0IGNsYXNzIENhbWVyYU1ldGFkYXRhIHsKKyAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IFQgZ2V0KGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXk8VD4pOworICAgIG1ldGhvZCBwdWJsaWMgamF2YS51dGlsLkxpc3Q8YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleTw/Pj4gZ2V0S2V5cygpOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTE9SX0NPUlJFQ1RJT05fTU9ERV9GQVNUID0gMTsgLy8gMHgxCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09MT1JfQ09SUkVDVElPTl9NT0RFX0hJR0hfUVVBTElUWSA9IDI7IC8vIDB4MgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTE9SX0NPUlJFQ1RJT05fTU9ERV9UUkFOU0ZPUk1fTUFUUklYID0gMDsgLy8gMHgwCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9BRV9BTlRJQkFORElOR19NT0RFXzUwSFogPSAxOyAvLyAweDEKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FFX0FOVElCQU5ESU5HX01PREVfNjBIWiA9IDI7IC8vIDB4MgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQUVfQU5USUJBTkRJTkdfTU9ERV9BVVRPID0gMzsgLy8gMHgzCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9BRV9BTlRJQkFORElOR19NT0RFX09GRiA9IDA7IC8vIDB4MAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQUVfTU9ERV9PRkYgPSAwOyAvLyAweDAKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FFX01PREVfT04gPSAxOyAvLyAweDEKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FFX01PREVfT05fQUxXQVlTX0ZMQVNIID0gMzsgLy8gMHgzCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9BRV9NT0RFX09OX0FVVE9fRkxBU0ggPSAyOyAvLyAweDIKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FFX01PREVfT05fQVVUT19GTEFTSF9SRURFWUUgPSA0OyAvLyAweDQKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FFX1BSRUNBUFRVUkVfVFJJR0dFUl9JRExFID0gMDsgLy8gMHgwCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVJfU1RBUlQgPSAxOyAvLyAweDEKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FFX1NUQVRFX0NPTlZFUkdFRCA9IDI7IC8vIDB4MgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQUVfU1RBVEVfRkxBU0hfUkVRVUlSRUQgPSA0OyAvLyAweDQKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FFX1NUQVRFX0lOQUNUSVZFID0gMDsgLy8gMHgwCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9BRV9TVEFURV9MT0NLRUQgPSAzOyAvLyAweDMKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FFX1NUQVRFX1BSRUNBUFRVUkUgPSA1OyAvLyAweDUKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FFX1NUQVRFX1NFQVJDSElORyA9IDE7IC8vIDB4MQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQUZfTU9ERV9BVVRPID0gMTsgLy8gMHgxCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9BRl9NT0RFX0NPTlRJTlVPVVNfUElDVFVSRSA9IDQ7IC8vIDB4NAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQUZfTU9ERV9DT05USU5VT1VTX1ZJREVPID0gMzsgLy8gMHgzCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9BRl9NT0RFX0VET0YgPSA1OyAvLyAweDUKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FGX01PREVfTUFDUk8gPSAyOyAvLyAweDIKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FGX01PREVfT0ZGID0gMDsgLy8gMHgwCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9BRl9TVEFURV9BQ1RJVkVfU0NBTiA9IDM7IC8vIDB4MworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQUZfU1RBVEVfRk9DVVNFRF9MT0NLRUQgPSA0OyAvLyAweDQKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FGX1NUQVRFX0lOQUNUSVZFID0gMDsgLy8gMHgwCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9BRl9TVEFURV9OT1RfRk9DVVNFRF9MT0NLRUQgPSA1OyAvLyAweDUKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FGX1NUQVRFX1BBU1NJVkVfRk9DVVNFRCA9IDI7IC8vIDB4MgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQUZfU1RBVEVfUEFTU0lWRV9TQ0FOID0gMTsgLy8gMHgxCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9BRl9TVEFURV9QQVNTSVZFX1VORk9DVVNFRCA9IDY7IC8vIDB4NgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQUZfVFJJR0dFUl9DQU5DRUwgPSAyOyAvLyAweDIKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FGX1RSSUdHRVJfSURMRSA9IDA7IC8vIDB4MAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQUZfVFJJR0dFUl9TVEFSVCA9IDE7IC8vIDB4MQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQVdCX01PREVfQVVUTyA9IDE7IC8vIDB4MQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQVdCX01PREVfQ0xPVURZX0RBWUxJR0hUID0gNjsgLy8gMHg2CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9BV0JfTU9ERV9EQVlMSUdIVCA9IDU7IC8vIDB4NQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQVdCX01PREVfRkxVT1JFU0NFTlQgPSAzOyAvLyAweDMKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FXQl9NT0RFX0lOQ0FOREVTQ0VOVCA9IDI7IC8vIDB4MgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQVdCX01PREVfT0ZGID0gMDsgLy8gMHgwCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9BV0JfTU9ERV9TSEFERSA9IDg7IC8vIDB4OAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQVdCX01PREVfVFdJTElHSFQgPSA3OyAvLyAweDcKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FXQl9NT0RFX1dBUk1fRkxVT1JFU0NFTlQgPSA0OyAvLyAweDQKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FXQl9TVEFURV9DT05WRVJHRUQgPSAyOyAvLyAweDIKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0FXQl9TVEFURV9JTkFDVElWRSA9IDA7IC8vIDB4MAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQVdCX1NUQVRFX0xPQ0tFRCA9IDM7IC8vIDB4MworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQVdCX1NUQVRFX1NFQVJDSElORyA9IDE7IC8vIDB4MQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfQ0FQVFVSRV9JTlRFTlRfQ1VTVE9NID0gMDsgLy8gMHgwCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9DQVBUVVJFX0lOVEVOVF9QUkVWSUVXID0gMTsgLy8gMHgxCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9DQVBUVVJFX0lOVEVOVF9TVElMTF9DQVBUVVJFID0gMjsgLy8gMHgyCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9DQVBUVVJFX0lOVEVOVF9WSURFT19SRUNPUkQgPSAzOyAvLyAweDMKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0NBUFRVUkVfSU5URU5UX1ZJREVPX1NOQVBTSE9UID0gNDsgLy8gMHg0CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9DQVBUVVJFX0lOVEVOVF9aRVJPX1NIVVRURVJfTEFHID0gNTsgLy8gMHg1CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9FRkZFQ1RfTU9ERV9BUVVBID0gODsgLy8gMHg4CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9FRkZFQ1RfTU9ERV9CTEFDS0JPQVJEID0gNzsgLy8gMHg3CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9FRkZFQ1RfTU9ERV9NT05PID0gMTsgLy8gMHgxCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9FRkZFQ1RfTU9ERV9ORUdBVElWRSA9IDI7IC8vIDB4MgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfRUZGRUNUX01PREVfT0ZGID0gMDsgLy8gMHgwCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9FRkZFQ1RfTU9ERV9QT1NURVJJWkUgPSA1OyAvLyAweDUKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX0VGRkVDVF9NT0RFX1NFUElBID0gNDsgLy8gMHg0CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9FRkZFQ1RfTU9ERV9TT0xBUklaRSA9IDM7IC8vIDB4MworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfRUZGRUNUX01PREVfV0hJVEVCT0FSRCA9IDY7IC8vIDB4NgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfTU9ERV9BVVRPID0gMTsgLy8gMHgxCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9NT0RFX09GRiA9IDA7IC8vIDB4MAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfTU9ERV9VU0VfU0NFTkVfTU9ERSA9IDI7IC8vIDB4MgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfU0NFTkVfTU9ERV9BQ1RJT04gPSAyOyAvLyAweDIKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX1NDRU5FX01PREVfQkFSQ09ERSA9IDE2OyAvLyAweDEwCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9TQ0VORV9NT0RFX0JFQUNIID0gODsgLy8gMHg4CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9TQ0VORV9NT0RFX0NBTkRMRUxJR0hUID0gMTU7IC8vIDB4ZgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfU0NFTkVfTU9ERV9GQUNFX1BSSU9SSVRZID0gMTsgLy8gMHgxCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9TQ0VORV9NT0RFX0ZJUkVXT1JLUyA9IDEyOyAvLyAweGMKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX1NDRU5FX01PREVfTEFORFNDQVBFID0gNDsgLy8gMHg0CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9TQ0VORV9NT0RFX05JR0hUID0gNTsgLy8gMHg1CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9TQ0VORV9NT0RFX05JR0hUX1BPUlRSQUlUID0gNjsgLy8gMHg2CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9TQ0VORV9NT0RFX1BBUlRZID0gMTQ7IC8vIDB4ZQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfU0NFTkVfTU9ERV9QT1JUUkFJVCA9IDM7IC8vIDB4MworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfU0NFTkVfTU9ERV9TTk9XID0gOTsgLy8gMHg5CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9TQ0VORV9NT0RFX1NQT1JUUyA9IDEzOyAvLyAweGQKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX1NDRU5FX01PREVfU1RFQURZUEhPVE8gPSAxMTsgLy8gMHhiCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTF9TQ0VORV9NT0RFX1NVTlNFVCA9IDEwOyAvLyAweGEKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05UUk9MX1NDRU5FX01PREVfVEhFQVRSRSA9IDc7IC8vIDB4NworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfU0NFTkVfTU9ERV9VTlNVUFBPUlRFRCA9IDA7IC8vIDB4MAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVER0VfTU9ERV9GQVNUID0gMTsgLy8gMHgxCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRURHRV9NT0RFX0hJR0hfUVVBTElUWSA9IDI7IC8vIDB4MgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVER0VfTU9ERV9PRkYgPSAwOyAvLyAweDAKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGTEFTSF9NT0RFX09GRiA9IDA7IC8vIDB4MAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZMQVNIX01PREVfU0lOR0xFID0gMTsgLy8gMHgxCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRkxBU0hfTU9ERV9UT1JDSCA9IDI7IC8vIDB4MgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZMQVNIX1NUQVRFX0NIQVJHSU5HID0gMTsgLy8gMHgxCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRkxBU0hfU1RBVEVfRklSRUQgPSAzOyAvLyAweDMKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGTEFTSF9TVEFURV9SRUFEWSA9IDI7IC8vIDB4MgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZMQVNIX1NUQVRFX1VOQVZBSUxBQkxFID0gMDsgLy8gMHgwCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5GT19TVVBQT1JURURfSEFSRFdBUkVfTEVWRUxfRlVMTCA9IDE7IC8vIDB4MQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElORk9fU1VQUE9SVEVEX0hBUkRXQVJFX0xFVkVMX0xJTUlURUQgPSAwOyAvLyAweDAKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRU5TX0ZBQ0lOR19CQUNLID0gMTsgLy8gMHgxCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOU19GQUNJTkdfRlJPTlQgPSAwOyAvLyAweDAKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRU5TX09QVElDQUxfU1RBQklMSVpBVElPTl9NT0RFX09GRiA9IDA7IC8vIDB4MAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTlNfT1BUSUNBTF9TVEFCSUxJWkFUSU9OX01PREVfT04gPSAxOyAvLyAweDEKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRU5TX1NUQVRFX01PVklORyA9IDE7IC8vIDB4MQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTlNfU1RBVEVfU1RBVElPTkFSWSA9IDA7IC8vIDB4MAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PSVNFX1JFRFVDVElPTl9NT0RFX0ZBU1QgPSAxOyAvLyAweDEKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT0lTRV9SRURVQ1RJT05fTU9ERV9ISUdIX1FVQUxJVFkgPSAyOyAvLyAweDIKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT0lTRV9SRURVQ1RJT05fTU9ERV9PRkYgPSAwOyAvLyAweDAKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVEFUSVNUSUNTX0ZBQ0VfREVURUNUX01PREVfRlVMTCA9IDI7IC8vIDB4MgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUQVRJU1RJQ1NfRkFDRV9ERVRFQ1RfTU9ERV9PRkYgPSAwOyAvLyAweDAKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVEFUSVNUSUNTX0ZBQ0VfREVURUNUX01PREVfU0lNUExFID0gMTsgLy8gMHgxCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1RBVElTVElDU19MRU5TX1NIQURJTkdfTUFQX01PREVfT0ZGID0gMDsgLy8gMHgwCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1RBVElTVElDU19MRU5TX1NIQURJTkdfTUFQX01PREVfT04gPSAxOyAvLyAweDEKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVEFUSVNUSUNTX1NDRU5FX0ZMSUNLRVJfNTBIWiA9IDE7IC8vIDB4MQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUQVRJU1RJQ1NfU0NFTkVfRkxJQ0tFUl82MEhaID0gMjsgLy8gMHgyCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1RBVElTVElDU19TQ0VORV9GTElDS0VSX05PTkUgPSAwOyAvLyAweDAKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUT05FTUFQX01PREVfQ09OVFJBU1RfQ1VSVkUgPSAwOyAvLyAweDAKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUT05FTUFQX01PREVfRkFTVCA9IDE7IC8vIDB4MQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRPTkVNQVBfTU9ERV9ISUdIX1FVQUxJVFkgPSAyOyAvLyAweDIKKyAgfQorCisgIHB1YmxpYyBzdGF0aWMgY2xhc3MgQ2FtZXJhTWV0YWRhdGEuS2V5IHsKKyAgICBtZXRob2QgcHVibGljIGZpbmFsIGJvb2xlYW4gZXF1YWxzKGphdmEubGFuZy5PYmplY3QpOworICAgIG1ldGhvZCBwdWJsaWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBnZXROYW1lKCk7CisgICAgbWV0aG9kIHB1YmxpYyBmaW5hbCBpbnQgaGFzaENvZGUoKTsKKyAgfQorCisgIHB1YmxpYyBjbGFzcyBDYXB0dXJlRmFpbHVyZSB7CisgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0RnJhbWVOdW1iZXIoKTsKKyAgICBtZXRob2QgcHVibGljIGludCBnZXRSZWFzb24oKTsKKyAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYXB0dXJlUmVxdWVzdCBnZXRSZXF1ZXN0KCk7CisgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0U2VxdWVuY2VJZCgpOworICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiB3YXNJbWFnZUNhcHR1cmVkKCk7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkVBU09OX0VSUk9SID0gMDsgLy8gMHgwCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkVBU09OX0ZMVVNIRUQgPSAxOyAvLyAweDEKKyAgfQorCisgIHB1YmxpYyBmaW5hbCBjbGFzcyBDYXB0dXJlUmVxdWVzdCBleHRlbmRzIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YSBpbXBsZW1lbnRzIGFuZHJvaWQub3MuUGFyY2VsYWJsZSB7CisgICAgbWV0aG9kIHB1YmxpYyBpbnQgZGVzY3JpYmVDb250ZW50cygpOworICAgIG1ldGhvZCBwdWJsaWMgVCBnZXQoYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleTxUPik7CisgICAgbWV0aG9kIHB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IGdldFRhZygpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCB3cml0ZVRvUGFyY2VsKGFuZHJvaWQub3MuUGFyY2VsLCBpbnQpOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBCTEFDS19MRVZFTF9MT0NLOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT0xPUl9DT1JSRUNUSU9OX0dBSU5TOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT0xPUl9DT1JSRUNUSU9OX01PREU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTE9SX0NPUlJFQ1RJT05fVFJBTlNGT1JNOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX0FFX0FOVElCQU5ESU5HX01PREU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfQUVfRVhQT1NVUkVfQ09NUEVOU0FUSU9OOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX0FFX0xPQ0s7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfQUVfTU9ERTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVI7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfQUVfUkVHSU9OUzsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgQ09OVFJPTF9BRV9UQVJHRVRfRlBTX1JBTkdFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX0FGX01PREU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfQUZfUkVHSU9OUzsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgQ09OVFJPTF9BRl9UUklHR0VSOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX0FXQl9MT0NLOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX0FXQl9NT0RFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX0FXQl9SRUdJT05TOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX0NBUFRVUkVfSU5URU5UOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX0VGRkVDVF9NT0RFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX01PREU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfU0NFTkVfTU9ERTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgQ09OVFJPTF9WSURFT19TVEFCSUxJWkFUSU9OX01PREU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLm9zLlBhcmNlbGFibGUuQ3JlYXRvciBDUkVBVE9SOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBFREdFX01PREU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IEZMQVNIX01PREU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IEpQRUdfR1BTX0NPT1JESU5BVEVTOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBKUEVHX0dQU19QUk9DRVNTSU5HX01FVEhPRDsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgSlBFR19HUFNfVElNRVNUQU1QOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBKUEVHX09SSUVOVEFUSU9OOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBKUEVHX1FVQUxJVFk7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IEpQRUdfVEhVTUJOQUlMX1FVQUxJVFk7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IEpQRUdfVEhVTUJOQUlMX1NJWkU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IExFTlNfQVBFUlRVUkU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IExFTlNfRklMVEVSX0RFTlNJVFk7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IExFTlNfRk9DQUxfTEVOR1RIOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBMRU5TX0ZPQ1VTX0RJU1RBTkNFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBMRU5TX09QVElDQUxfU1RBQklMSVpBVElPTl9NT0RFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBOT0lTRV9SRURVQ1RJT05fTU9ERTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU0NBTEVSX0NST1BfUkVHSU9OOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBTRU5TT1JfRVhQT1NVUkVfVElNRTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU0VOU09SX0ZSQU1FX0RVUkFUSU9OOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBTRU5TT1JfU0VOU0lUSVZJVFk7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IFNUQVRJU1RJQ1NfRkFDRV9ERVRFQ1RfTU9ERTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU1RBVElTVElDU19MRU5TX1NIQURJTkdfTUFQX01PREU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IFRPTkVNQVBfQ1VSVkVfQkxVRTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgVE9ORU1BUF9DVVJWRV9HUkVFTjsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgVE9ORU1BUF9DVVJWRV9SRUQ7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IFRPTkVNQVBfTU9ERTsKKyAgfQorCisgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgQ2FwdHVyZVJlcXVlc3QuQnVpbGRlciB7CisgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGFkZFRhcmdldChhbmRyb2lkLnZpZXcuU3VyZmFjZSk7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FwdHVyZVJlcXVlc3QgYnVpbGQoKTsKKyAgICBtZXRob2QgcHVibGljIFQgZ2V0KGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXk8VD4pOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCByZW1vdmVUYXJnZXQoYW5kcm9pZC52aWV3LlN1cmZhY2UpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXQoYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleTxUPiwgVCk7CisgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldFRhZyhqYXZhLmxhbmcuT2JqZWN0KTsKKyAgfQorCisgIHB1YmxpYyBmaW5hbCBjbGFzcyBDYXB0dXJlUmVzdWx0IGV4dGVuZHMgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhIHsKKyAgICBtZXRob2QgcHVibGljIFQgZ2V0KGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXk8VD4pOworICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldEZyYW1lTnVtYmVyKCk7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FwdHVyZVJlcXVlc3QgZ2V0UmVxdWVzdCgpOworICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldFNlcXVlbmNlSWQoKTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgQkxBQ0tfTEVWRUxfTE9DSzsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgQ09MT1JfQ09SUkVDVElPTl9HQUlOUzsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgQ09MT1JfQ09SUkVDVElPTl9UUkFOU0ZPUk07CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfQUVfUkVHSU9OUzsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgQ09OVFJPTF9BRV9TVEFURTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgQ09OVFJPTF9BRl9NT0RFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX0FGX1JFR0lPTlM7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfQUZfU1RBVEU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfQVdCX01PREU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfQVdCX1JFR0lPTlM7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IENPTlRST0xfQVdCX1NUQVRFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBDT05UUk9MX01PREU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IEVER0VfTU9ERTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgRkxBU0hfTU9ERTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgRkxBU0hfU1RBVEU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IEpQRUdfR1BTX0NPT1JESU5BVEVTOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBKUEVHX0dQU19QUk9DRVNTSU5HX01FVEhPRDsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgSlBFR19HUFNfVElNRVNUQU1QOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBKUEVHX09SSUVOVEFUSU9OOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBKUEVHX1FVQUxJVFk7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IEpQRUdfVEhVTUJOQUlMX1FVQUxJVFk7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IEpQRUdfVEhVTUJOQUlMX1NJWkU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IExFTlNfQVBFUlRVUkU7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IExFTlNfRklMVEVSX0RFTlNJVFk7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IExFTlNfRk9DQUxfTEVOR1RIOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBMRU5TX0ZPQ1VTX0RJU1RBTkNFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBMRU5TX0ZPQ1VTX1JBTkdFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBMRU5TX09QVElDQUxfU1RBQklMSVpBVElPTl9NT0RFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBMRU5TX1NUQVRFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBOT0lTRV9SRURVQ1RJT05fTU9ERTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgUkVRVUVTVF9GUkFNRV9DT1VOVDsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU0NBTEVSX0NST1BfUkVHSU9OOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBTRU5TT1JfRVhQT1NVUkVfVElNRTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU0VOU09SX0ZSQU1FX0RVUkFUSU9OOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBTRU5TT1JfU0VOU0lUSVZJVFk7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IFNFTlNPUl9URU1QRVJBVFVSRTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU0VOU09SX1RJTUVTVEFNUDsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU1RBVElTVElDU19GQUNFUzsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgU1RBVElTVElDU19GQUNFX0RFVEVDVF9NT0RFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBTVEFUSVNUSUNTX0xFTlNfU0hBRElOR19NQVA7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IFNUQVRJU1RJQ1NfUFJFRElDVEVEX0NPTE9SX0dBSU5TOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBTVEFUSVNUSUNTX1BSRURJQ1RFRF9DT0xPUl9UUkFOU0ZPUk07CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWV0YWRhdGEuS2V5IFNUQVRJU1RJQ1NfU0NFTkVfRkxJQ0tFUjsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgVE9ORU1BUF9DVVJWRV9CTFVFOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBUT05FTUFQX0NVUlZFX0dSRUVOOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYU1ldGFkYXRhLktleSBUT05FTUFQX0NVUlZFX1JFRDsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFNZXRhZGF0YS5LZXkgVE9ORU1BUF9NT0RFOworICB9CisKKyAgcHVibGljIGZpbmFsIGNsYXNzIEZhY2UgeworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5ncmFwaGljcy5SZWN0IGdldEJvdW5kcygpOworICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldElkKCk7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLmdyYXBoaWNzLlBvaW50IGdldExlZnRFeWVQb3NpdGlvbigpOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5ncmFwaGljcy5Qb2ludCBnZXRNb3V0aFBvc2l0aW9uKCk7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLmdyYXBoaWNzLlBvaW50IGdldFJpZ2h0RXllUG9zaXRpb24oKTsKKyAgICBtZXRob2QgcHVibGljIGludCBnZXRTY29yZSgpOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElEX1VOU1VQUE9SVEVEID0gLTE7IC8vIDB4ZmZmZmZmZmYKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTQ09SRV9NQVggPSAxMDA7IC8vIDB4NjQKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTQ09SRV9NSU4gPSAxOyAvLyAweDEKKyAgfQorCisgIHB1YmxpYyBmaW5hbCBjbGFzcyBSYXRpb25hbCB7CisgICAgY3RvciBwdWJsaWMgUmF0aW9uYWwoaW50LCBpbnQpOworICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldERlbm9taW5hdG9yKCk7CisgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0TnVtZXJhdG9yKCk7CisgIH0KKworICBwdWJsaWMgZmluYWwgY2xhc3MgU2l6ZSB7CisgICAgY3RvciBwdWJsaWMgU2l6ZShpbnQsIGludCk7CisgICAgbWV0aG9kIHB1YmxpYyBmaW5hbCBpbnQgZ2V0SGVpZ2h0KCk7CisgICAgbWV0aG9kIHB1YmxpYyBmaW5hbCBpbnQgZ2V0V2lkdGgoKTsKKyAgfQorCit9CisKIHBhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kaXNwbGF5IHsKIAogICBwdWJsaWMgZmluYWwgY2xhc3MgRGlzcGxheU1hbmFnZXIgewpAQCAtMTExMzcsNiArMTE2MzEsNyBAQAogICAgIGN0b3IgcHVibGljIEV4dHJhY3RFZGl0VGV4dChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgRXh0cmFjdEVkaXRUZXh0KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBFeHRyYWN0RWRpdFRleHQoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgRXh0cmFjdEVkaXRUZXh0KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGZpbmlzaEludGVybmFsQ2hhbmdlcygpOwogICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiBoYXNWZXJ0aWNhbFNjcm9sbEJhcigpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzdGFydEludGVybmFsQ2hhbmdlcygpOwpAQCAtMTExNTEsNiArMTE2NDYsNyBAQAogICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC52aWV3LmlucHV0bWV0aG9kLklucHV0Q29ubmVjdGlvbiBnZXRDdXJyZW50SW5wdXRDb25uZWN0aW9uKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLnZpZXcuaW5wdXRtZXRob2QuRWRpdG9ySW5mbyBnZXRDdXJyZW50SW5wdXRFZGl0b3JJbmZvKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGdldEN1cnJlbnRJbnB1dFN0YXJ0ZWQoKTsKKyAgICBtZXRob2QgcHVibGljIGludCBnZXRJbnB1dE1ldGhvZFdpbmRvd1JlY29tbWVuZGVkSGVpZ2h0KCk7CiAgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLnZpZXcuTGF5b3V0SW5mbGF0ZXIgZ2V0TGF5b3V0SW5mbGF0ZXIoKTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRNYXhXaWR0aCgpOwogICAgIG1ldGhvZCBwdWJsaWMgamF2YS5sYW5nLkNoYXJTZXF1ZW5jZSBnZXRUZXh0Rm9ySW1lQWN0aW9uKGludCk7CkBAIC0xMTMzMyw2ICsxMTgyOSw3IEBACiAgIHB1YmxpYyBjbGFzcyBLZXlib2FyZFZpZXcgZXh0ZW5kcyBhbmRyb2lkLnZpZXcuVmlldyBpbXBsZW1lbnRzIGFuZHJvaWQudmlldy5WaWV3Lk9uQ2xpY2tMaXN0ZW5lciB7CiAgICAgY3RvciBwdWJsaWMgS2V5Ym9hcmRWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBLZXlib2FyZFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgS2V5Ym9hcmRWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGNsb3NpbmcoKTsKICAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuaW5wdXRtZXRob2RzZXJ2aWNlLktleWJvYXJkIGdldEtleWJvYXJkKCk7CiAgICAgbWV0aG9kIHByb3RlY3RlZCBhbmRyb2lkLmlucHV0bWV0aG9kc2VydmljZS5LZXlib2FyZFZpZXcuT25LZXlib2FyZEFjdGlvbkxpc3RlbmVyIGdldE9uS2V5Ym9hcmRBY3Rpb25MaXN0ZW5lcigpOwpAQCAtMTg0MzAsMTMgKzE4OTI3LDE2IEBACiAKICAgcHVibGljIGNsYXNzIENoZWNrQm94UHJlZmVyZW5jZSBleHRlbmRzIGFuZHJvaWQucHJlZmVyZW5jZS5Ud29TdGF0ZVByZWZlcmVuY2UgewogICAgIGN0b3IgcHVibGljIENoZWNrQm94UHJlZmVyZW5jZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKKyAgICBjdG9yIHB1YmxpYyBDaGVja0JveFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBjdG9yIHB1YmxpYyBDaGVja0JveFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIENoZWNrQm94UHJlZmVyZW5jZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgIH0KIAogICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRGlhbG9nUHJlZmVyZW5jZSBleHRlbmRzIGFuZHJvaWQucHJlZmVyZW5jZS5QcmVmZXJlbmNlIGltcGxlbWVudHMgYW5kcm9pZC5jb250ZW50LkRpYWxvZ0ludGVyZmFjZS5PbkNsaWNrTGlzdGVuZXIgYW5kcm9pZC5jb250ZW50LkRpYWxvZ0ludGVyZmFjZS5PbkRpc21pc3NMaXN0ZW5lciBhbmRyb2lkLnByZWZlcmVuY2UuUHJlZmVyZW5jZU1hbmFnZXIuT25BY3Rpdml0eURlc3Ryb3lMaXN0ZW5lciB7CisgICAgY3RvciBwdWJsaWMgRGlhbG9nUHJlZmVyZW5jZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIGN0b3IgcHVibGljIERpYWxvZ1ByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CiAgICAgY3RvciBwdWJsaWMgRGlhbG9nUHJlZmVyZW5jZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CisgICAgY3RvciBwdWJsaWMgRGlhbG9nUHJlZmVyZW5jZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLmFwcC5EaWFsb2cgZ2V0RGlhbG9nKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLmdyYXBoaWNzLmRyYXdhYmxlLkRyYXdhYmxlIGdldERpYWxvZ0ljb24oKTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXREaWFsb2dMYXlvdXRSZXNvdXJjZSgpOwpAQCAtMTg0NjYsNiArMTg5NjYsNyBAQAogICB9CiAKICAgcHVibGljIGNsYXNzIEVkaXRUZXh0UHJlZmVyZW5jZSBleHRlbmRzIGFuZHJvaWQucHJlZmVyZW5jZS5EaWFsb2dQcmVmZXJlbmNlIHsKKyAgICBjdG9yIHB1YmxpYyBFZGl0VGV4dFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBjdG9yIHB1YmxpYyBFZGl0VGV4dFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CiAgICAgY3RvciBwdWJsaWMgRWRpdFRleHRQcmVmZXJlbmNlKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBFZGl0VGV4dFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwpAQCAtMTg0NzYsNiArMTg5NzcsOCBAQAogICB9CiAKICAgcHVibGljIGNsYXNzIExpc3RQcmVmZXJlbmNlIGV4dGVuZHMgYW5kcm9pZC5wcmVmZXJlbmNlLkRpYWxvZ1ByZWZlcmVuY2UgeworICAgIGN0b3IgcHVibGljIExpc3RQcmVmZXJlbmNlKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CisgICAgY3RvciBwdWJsaWMgTGlzdFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CiAgICAgY3RvciBwdWJsaWMgTGlzdFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIExpc3RQcmVmZXJlbmNlKGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBtZXRob2QgcHVibGljIGludCBmaW5kSW5kZXhPZlZhbHVlKGphdmEubGFuZy5TdHJpbmcpOwpAQCAtMTg0OTIsNiArMTg5OTUsOCBAQAogICB9CiAKICAgcHVibGljIGNsYXNzIE11bHRpU2VsZWN0TGlzdFByZWZlcmVuY2UgZXh0ZW5kcyBhbmRyb2lkLnByZWZlcmVuY2UuRGlhbG9nUHJlZmVyZW5jZSB7CisgICAgY3RvciBwdWJsaWMgTXVsdGlTZWxlY3RMaXN0UHJlZmVyZW5jZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOworICAgIGN0b3IgcHVibGljIE11bHRpU2VsZWN0TGlzdFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CiAgICAgY3RvciBwdWJsaWMgTXVsdGlTZWxlY3RMaXN0UHJlZmVyZW5jZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgTXVsdGlTZWxlY3RMaXN0UHJlZmVyZW5jZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgbWV0aG9kIHB1YmxpYyBpbnQgZmluZEluZGV4T2ZWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKTsKQEAgLTE4NTA2LDYgKzE5MDExLDcgQEAKICAgfQogCiAgIHB1YmxpYyBjbGFzcyBQcmVmZXJlbmNlIGltcGxlbWVudHMgamF2YS5sYW5nLkNvbXBhcmFibGUgeworICAgIGN0b3IgcHVibGljIFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBjdG9yIHB1YmxpYyBQcmVmZXJlbmNlKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOwogICAgIGN0b3IgcHVibGljIFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwpAQCAtMTg2NzEsNiArMTkxNzcsNyBAQAogICB9CiAKICAgcHVibGljIGNsYXNzIFByZWZlcmVuY2VDYXRlZ29yeSBleHRlbmRzIGFuZHJvaWQucHJlZmVyZW5jZS5QcmVmZXJlbmNlR3JvdXAgeworICAgIGN0b3IgcHVibGljIFByZWZlcmVuY2VDYXRlZ29yeShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIGN0b3IgcHVibGljIFByZWZlcmVuY2VDYXRlZ29yeShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKICAgICBjdG9yIHB1YmxpYyBQcmVmZXJlbmNlQ2F0ZWdvcnkoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIFByZWZlcmVuY2VDYXRlZ29yeShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CkBAIC0xODY5Miw2ICsxOTE5OSw3IEBACiAgIH0KIAogICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUHJlZmVyZW5jZUdyb3VwIGV4dGVuZHMgYW5kcm9pZC5wcmVmZXJlbmNlLlByZWZlcmVuY2UgeworICAgIGN0b3IgcHVibGljIFByZWZlcmVuY2VHcm91cChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIGN0b3IgcHVibGljIFByZWZlcmVuY2VHcm91cChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKICAgICBjdG9yIHB1YmxpYyBQcmVmZXJlbmNlR3JvdXAoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBhZGRJdGVtRnJvbUluZmxhdGVyKGFuZHJvaWQucHJlZmVyZW5jZS5QcmVmZXJlbmNlKTsKQEAgLTE4NzQ2LDYgKzE5MjU0LDcgQEAKICAgfQogCiAgIHB1YmxpYyBjbGFzcyBSaW5ndG9uZVByZWZlcmVuY2UgZXh0ZW5kcyBhbmRyb2lkLnByZWZlcmVuY2UuUHJlZmVyZW5jZSBpbXBsZW1lbnRzIGFuZHJvaWQucHJlZmVyZW5jZS5QcmVmZXJlbmNlTWFuYWdlci5PbkFjdGl2aXR5UmVzdWx0TGlzdGVuZXIgeworICAgIGN0b3IgcHVibGljIFJpbmd0b25lUHJlZmVyZW5jZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIGN0b3IgcHVibGljIFJpbmd0b25lUHJlZmVyZW5jZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKICAgICBjdG9yIHB1YmxpYyBSaW5ndG9uZVByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIFJpbmd0b25lUHJlZmVyZW5jZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CkBAIC0xODc2Miw2ICsxOTI3MSw3IEBACiAgIH0KIAogICBwdWJsaWMgY2xhc3MgU3dpdGNoUHJlZmVyZW5jZSBleHRlbmRzIGFuZHJvaWQucHJlZmVyZW5jZS5Ud29TdGF0ZVByZWZlcmVuY2UgeworICAgIGN0b3IgcHVibGljIFN3aXRjaFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBjdG9yIHB1YmxpYyBTd2l0Y2hQcmVmZXJlbmNlKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOwogICAgIGN0b3IgcHVibGljIFN3aXRjaFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIFN3aXRjaFByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwpAQCAtMTg3NzQsNiArMTkyODQsNyBAQAogICB9CiAKICAgcHVibGljIGFic3RyYWN0IGNsYXNzIFR3b1N0YXRlUHJlZmVyZW5jZSBleHRlbmRzIGFuZHJvaWQucHJlZmVyZW5jZS5QcmVmZXJlbmNlIHsKKyAgICBjdG9yIHB1YmxpYyBUd29TdGF0ZVByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBjdG9yIHB1YmxpYyBUd29TdGF0ZVByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CiAgICAgY3RvciBwdWJsaWMgVHdvU3RhdGVQcmVmZXJlbmNlKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBUd29TdGF0ZVByZWZlcmVuY2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwpAQCAtMjI1MTQsNiArMjMwMjUsOSBAQAogICB9CiAKICAgcHVibGljIGNsYXNzIFR5cGUgZXh0ZW5kcyBhbmRyb2lkLnJlbmRlcnNjcmlwdC5CYXNlT2JqIHsKKyAgICBtZXRob2QgcHVibGljIHN0YXRpYyBhbmRyb2lkLnJlbmRlcnNjcmlwdC5UeXBlIGNyZWF0ZVgoYW5kcm9pZC5yZW5kZXJzY3JpcHQuUmVuZGVyU2NyaXB0LCBhbmRyb2lkLnJlbmRlcnNjcmlwdC5FbGVtZW50LCBpbnQpOworICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQucmVuZGVyc2NyaXB0LlR5cGUgY3JlYXRlWFkoYW5kcm9pZC5yZW5kZXJzY3JpcHQuUmVuZGVyU2NyaXB0LCBhbmRyb2lkLnJlbmRlcnNjcmlwdC5FbGVtZW50LCBpbnQsIGludCk7CisgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5yZW5kZXJzY3JpcHQuVHlwZSBjcmVhdGVYWVooYW5kcm9pZC5yZW5kZXJzY3JpcHQuUmVuZGVyU2NyaXB0LCBhbmRyb2lkLnJlbmRlcnNjcmlwdC5FbGVtZW50LCBpbnQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRDb3VudCgpOwogICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5yZW5kZXJzY3JpcHQuRWxlbWVudCBnZXRFbGVtZW50KCk7CiAgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0WCgpOwpAQCAtMjI5MDEsMTEgKzIzNDE1LDUyIEBACiAKIHBhY2thZ2UgYW5kcm9pZC5zcGVlY2gudHRzIHsKIAorICBwdWJsaWMgZmluYWwgY2xhc3MgUmVxdWVzdENvbmZpZyB7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLm9zLkJ1bmRsZSBnZXRBdWRpb1BhcmFtcygpOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5zcGVlY2gudHRzLlZvaWNlSW5mbyBnZXRWb2ljZSgpOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5vcy5CdW5kbGUgZ2V0Vm9pY2VQYXJhbXMoKTsKKyAgfQorCisgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgUmVxdWVzdENvbmZpZy5CdWlsZGVyIHsKKyAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuc3BlZWNoLnR0cy5SZXF1ZXN0Q29uZmlnIGJ1aWxkKCk7CisgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5zcGVlY2gudHRzLlJlcXVlc3RDb25maWcuQnVpbGRlciBuZXdCdWlsZGVyKCk7CisgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5zcGVlY2gudHRzLlJlcXVlc3RDb25maWcuQnVpbGRlciBuZXdCdWlsZGVyKGFuZHJvaWQuc3BlZWNoLnR0cy5SZXF1ZXN0Q29uZmlnKTsKKyAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuc3BlZWNoLnR0cy5SZXF1ZXN0Q29uZmlnLkJ1aWxkZXIgc2V0QXVkaW9QYXJhbShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0QXVkaW9QYXJhbVBhbihmbG9hdCk7CisgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldEF1ZGlvUGFyYW1TdHJlYW0oaW50KTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0QXVkaW9QYXJhbVZvbHVtZShmbG9hdCk7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLnNwZWVjaC50dHMuUmVxdWVzdENvbmZpZy5CdWlsZGVyIHNldFZvaWNlKGFuZHJvaWQuc3BlZWNoLnR0cy5Wb2ljZUluZm8pOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5zcGVlY2gudHRzLlJlcXVlc3RDb25maWcuQnVpbGRlciBzZXRWb2ljZVBhcmFtKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpOworICB9CisKKyAgcHVibGljIGZpbmFsIGNsYXNzIFJlcXVlc3RDb25maWdIZWxwZXIgeworICAgIG1ldGhvZCBwdWJsaWMgc3RhdGljIGFuZHJvaWQuc3BlZWNoLnR0cy5SZXF1ZXN0Q29uZmlnIGhpZ2hlc3RRdWFsaXR5KGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuRW5naW5lU3RhdHVzLCBib29sZWFuLCBhbmRyb2lkLnNwZWVjaC50dHMuUmVxdWVzdENvbmZpZ0hlbHBlci5Wb2ljZVNjb3Jlcik7CisgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC5zcGVlY2gudHRzLlJlcXVlc3RDb25maWcgaGlnaGVzdFF1YWxpdHkoYW5kcm9pZC5zcGVlY2gudHRzLlRleHRUb1NwZWVjaENsaWVudC5FbmdpbmVTdGF0dXMsIGJvb2xlYW4pOworICB9CisKKyAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBSZXF1ZXN0Q29uZmlnSGVscGVyLkV4YWN0TG9jYWxlTWF0Y2hlciBpbXBsZW1lbnRzIGFuZHJvaWQuc3BlZWNoLnR0cy5SZXF1ZXN0Q29uZmlnSGVscGVyLlZvaWNlU2NvcmVyIHsKKyAgICBjdG9yIHB1YmxpYyBSZXF1ZXN0Q29uZmlnSGVscGVyLkV4YWN0TG9jYWxlTWF0Y2hlcihqYXZhLnV0aWwuTG9jYWxlKTsKKyAgICBtZXRob2QgcHVibGljIGludCBzY29yZVZvaWNlKGFuZHJvaWQuc3BlZWNoLnR0cy5Wb2ljZUluZm8pOworICB9CisKKyAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBSZXF1ZXN0Q29uZmlnSGVscGVyLkxhbmd1YWdlTWF0Y2hlciBpbXBsZW1lbnRzIGFuZHJvaWQuc3BlZWNoLnR0cy5SZXF1ZXN0Q29uZmlnSGVscGVyLlZvaWNlU2NvcmVyIHsKKyAgICBjdG9yIHB1YmxpYyBSZXF1ZXN0Q29uZmlnSGVscGVyLkxhbmd1YWdlTWF0Y2hlcihqYXZhLnV0aWwuTG9jYWxlKTsKKyAgICBtZXRob2QgcHVibGljIGludCBzY29yZVZvaWNlKGFuZHJvaWQuc3BlZWNoLnR0cy5Wb2ljZUluZm8pOworICB9CisKKyAgcHVibGljIHN0YXRpYyBhYnN0cmFjdCBpbnRlcmZhY2UgUmVxdWVzdENvbmZpZ0hlbHBlci5Wb2ljZVNjb3JlciB7CisgICAgbWV0aG9kIHB1YmxpYyBhYnN0cmFjdCBpbnQgc2NvcmVWb2ljZShhbmRyb2lkLnNwZWVjaC50dHMuVm9pY2VJbmZvKTsKKyAgfQorCiAgIHB1YmxpYyBhYnN0cmFjdCBpbnRlcmZhY2UgU3ludGhlc2lzQ2FsbGJhY2sgewogICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3QgaW50IGF1ZGlvQXZhaWxhYmxlKGJ5dGVbXSwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3QgaW50IGRvbmUoKTsKICAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IHZvaWQgZXJyb3IoKTsKKyAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IHZvaWQgZXJyb3IoaW50KTsKKyAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IGludCBmYWxsYmFjaygpOwogICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3QgaW50IGdldE1heEJ1ZmZlclNpemUoKTsKKyAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gaGFzRmluaXNoZWQoKTsKKyAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gaGFzU3RhcnRlZCgpOwogICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3QgaW50IHN0YXJ0KGludCwgaW50LCBpbnQpOwogICB9CiAKQEAgLTIyOTIxLDcgKzIzNDc2LDE3IEBACiAgICAgbWV0aG9kIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldFZhcmlhbnQoKTsKICAgfQogCi0gIHB1YmxpYyBjbGFzcyBUZXh0VG9TcGVlY2ggeworICBwdWJsaWMgZmluYWwgY2xhc3MgU3ludGhlc2lzUmVxdWVzdFYyIGltcGxlbWVudHMgYW5kcm9pZC5vcy5QYXJjZWxhYmxlIHsKKyAgICBtZXRob2QgcHVibGljIGludCBkZXNjcmliZUNvbnRlbnRzKCk7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLm9zLkJ1bmRsZSBnZXRBdWRpb1BhcmFtcygpOworICAgIG1ldGhvZCBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXRUZXh0KCk7CisgICAgbWV0aG9kIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldFV0dGVyYW5jZUlkKCk7CisgICAgbWV0aG9kIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldFZvaWNlTmFtZSgpOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5vcy5CdW5kbGUgZ2V0Vm9pY2VQYXJhbXMoKTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgd3JpdGVUb1BhcmNlbChhbmRyb2lkLm9zLlBhcmNlbCwgaW50KTsKKyAgfQorCisgIHB1YmxpYyBkZXByZWNhdGVkIGNsYXNzIFRleHRUb1NwZWVjaCB7CiAgICAgY3RvciBwdWJsaWMgVGV4dFRvU3BlZWNoKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnNwZWVjaC50dHMuVGV4dFRvU3BlZWNoLk9uSW5pdExpc3RlbmVyKTsKICAgICBjdG9yIHB1YmxpYyBUZXh0VG9TcGVlY2goYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2guT25Jbml0TGlzdGVuZXIsIGphdmEubGFuZy5TdHJpbmcpOwogICAgIG1ldGhvZCBwdWJsaWMgaW50IGFkZEVhcmNvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQpOwpAQCAtMjMwMDYsOCArMjM1NzEsODAgQEAKICAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IHZvaWQgb25VdHRlcmFuY2VDb21wbGV0ZWQoamF2YS5sYW5nLlN0cmluZyk7CiAgIH0KIAorICBwdWJsaWMgZmluYWwgY2xhc3MgVGV4dFRvU3BlZWNoQ2xpZW50IHsKKyAgICBjdG9yIHB1YmxpYyBUZXh0VG9TcGVlY2hDbGllbnQoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4sIGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuUmVxdWVzdENhbGxiYWNrcywgYW5kcm9pZC5zcGVlY2gudHRzLlRleHRUb1NwZWVjaENsaWVudC5Db25uZWN0aW9uQ2FsbGJhY2tzKTsKKyAgICBjdG9yIHB1YmxpYyBUZXh0VG9TcGVlY2hDbGllbnQoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuUmVxdWVzdENhbGxiYWNrcywgYW5kcm9pZC5zcGVlY2gudHRzLlRleHRUb1NwZWVjaENsaWVudC5Db25uZWN0aW9uQ2FsbGJhY2tzKTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgY29ubmVjdCgpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBkaXNjb25uZWN0KCk7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLnNwZWVjaC50dHMuVGV4dFRvU3BlZWNoQ2xpZW50LkVuZ2luZVN0YXR1cyBnZXRFbmdpbmVTdGF0dXMoKTsKKyAgICBtZXRob2QgcHVibGljIGJvb2xlYW4gaXNDb25uZWN0ZWQoKTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgcXVldWVBdWRpbyhhbmRyb2lkLm5ldC5VcmksIGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuVXR0ZXJhbmNlSWQsIGFuZHJvaWQuc3BlZWNoLnR0cy5SZXF1ZXN0Q29uZmlnLCBhbmRyb2lkLnNwZWVjaC50dHMuVGV4dFRvU3BlZWNoQ2xpZW50LlJlcXVlc3RDYWxsYmFja3MpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBxdWV1ZVNpbGVuY2UobG9uZywgYW5kcm9pZC5zcGVlY2gudHRzLlRleHRUb1NwZWVjaENsaWVudC5VdHRlcmFuY2VJZCwgYW5kcm9pZC5zcGVlY2gudHRzLlRleHRUb1NwZWVjaENsaWVudC5SZXF1ZXN0Q2FsbGJhY2tzKTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgcXVldWVTcGVhayhqYXZhLmxhbmcuU3RyaW5nLCBhbmRyb2lkLnNwZWVjaC50dHMuVGV4dFRvU3BlZWNoQ2xpZW50LlV0dGVyYW5jZUlkLCBhbmRyb2lkLnNwZWVjaC50dHMuUmVxdWVzdENvbmZpZywgYW5kcm9pZC5zcGVlY2gudHRzLlRleHRUb1NwZWVjaENsaWVudC5SZXF1ZXN0Q2FsbGJhY2tzKTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgcXVldWVTeW50aGVzaXplVG9GaWxlKGphdmEubGFuZy5TdHJpbmcsIGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuVXR0ZXJhbmNlSWQsIGphdmEuaW8uRmlsZSwgYW5kcm9pZC5zcGVlY2gudHRzLlJlcXVlc3RDb25maWcsIGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuUmVxdWVzdENhbGxiYWNrcyk7CisgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHN0b3AoKTsKKyAgfQorCisgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgaW50ZXJmYWNlIFRleHRUb1NwZWVjaENsaWVudC5Db25uZWN0aW9uQ2FsbGJhY2tzIHsKKyAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IHZvaWQgb25Db25uZWN0aW9uRmFpbHVyZSgpOworICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBvbkNvbm5lY3Rpb25TdWNjZXNzKCk7CisgICAgbWV0aG9kIHB1YmxpYyBhYnN0cmFjdCB2b2lkIG9uRW5naW5lU3RhdHVzQ2hhbmdlKGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuRW5naW5lU3RhdHVzKTsKKyAgICBtZXRob2QgcHVibGljIGFic3RyYWN0IHZvaWQgb25TZXJ2aWNlRGlzY29ubmVjdGVkKCk7CisgIH0KKworICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFRleHRUb1NwZWVjaENsaWVudC5FbmdpbmVTdGF0dXMgeworICAgIG1ldGhvZCBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXRFbmdpbmVQYWNrYWdlKCk7CisgICAgbWV0aG9kIHB1YmxpYyBqYXZhLnV0aWwuTGlzdDxhbmRyb2lkLnNwZWVjaC50dHMuVm9pY2VJbmZvPiBnZXRWb2ljZXMoKTsKKyAgfQorCisgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgVGV4dFRvU3BlZWNoQ2xpZW50LlBhcmFtcyB7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIEFVRElPX1BBUkFNX1BBTiA9ICJwYW4iOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBBVURJT19QQVJBTV9TVFJFQU0gPSAic3RyZWFtVHlwZSI7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIEFVRElPX1BBUkFNX1ZPTFVNRSA9ICJ2b2x1bWUiOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBGQUxMQkFDS19WT0lDRV9OQU1FID0gImZhbGxiYWNrVm9pY2VOYW1lIjsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgTkVUV09SS19SRVRSSUVTX0NPVU5UID0gIm5ldHdvcmtSZXRyaWVzQ291bnQiOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBORVRXT1JLX1RJTUVPVVRfTVMgPSAibmV0d29ya1RpbWVvdXRNcyI7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIFNQRUVDSF9QSVRDSCA9ICJzcGVlY2hQaXRjaCI7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIFNQRUVDSF9TUEVFRCA9ICJzcGVlY2hTcGVlZCI7CisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIFRSQUNLX1NVQlVUVEVSQU5DRV9QUk9HUkVTUyA9ICJ0cmFja1N1YnV0dGVyYW5jZVByb2dyZXNzIjsKKyAgfQorCisgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgVGV4dFRvU3BlZWNoQ2xpZW50LlJlcXVlc3RDYWxsYmFja3MgeworICAgIGN0b3IgcHVibGljIFRleHRUb1NwZWVjaENsaWVudC5SZXF1ZXN0Q2FsbGJhY2tzKCk7CisgICAgbWV0aG9kIHB1YmxpYyB2b2lkIG9uU3ludGhlc2lzRmFpbHVyZShhbmRyb2lkLnNwZWVjaC50dHMuVGV4dFRvU3BlZWNoQ2xpZW50LlV0dGVyYW5jZUlkLCBpbnQpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBvblN5bnRoZXNpc0ZhbGxiYWNrKGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuVXR0ZXJhbmNlSWQpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBvblN5bnRoZXNpc1Byb2dyZXNzKGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuVXR0ZXJhbmNlSWQsIGludCwgaW50KTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgb25TeW50aGVzaXNTdGFydChhbmRyb2lkLnNwZWVjaC50dHMuVGV4dFRvU3BlZWNoQ2xpZW50LlV0dGVyYW5jZUlkKTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgb25TeW50aGVzaXNTdG9wKGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuVXR0ZXJhbmNlSWQpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBvblN5bnRoZXNpc1N1Y2Nlc3MoYW5kcm9pZC5zcGVlY2gudHRzLlRleHRUb1NwZWVjaENsaWVudC5VdHRlcmFuY2VJZCk7CisgIH0KKworICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMgeworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVSUk9SX0RPV05MT0FESU5HX0FERElUSU9OQUxfREFUQSA9IDE3OyAvLyAweDExCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVJST1JfSU5WQUxJRF9SRVFVRVNUID0gMTU7IC8vIDB4ZgorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVSUk9SX05FVFdPUksgPSAxMzsgLy8gMHhkCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVJST1JfTkVUV09SS19USU1FT1VUID0gMTQ7IC8vIDB4ZQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVSUk9SX05PTl9VTklRVUVfVVRURVJBTkNFX0lEID0gMTY7IC8vIDB4MTAKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUlJPUl9PVVRQVVQgPSAxMjsgLy8gMHhjCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVJST1JfU0VSVklDRSA9IDExOyAvLyAweGIKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUlJPUl9TWU5USEVTSVMgPSAxMDsgLy8gMHhhCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVJST1JfVU5LTk9XTiA9IC0xOyAvLyAweGZmZmZmZmZmCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1RPUFBFRCA9IDEwMDsgLy8gMHg2NAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVQ0NFU1MgPSAwOyAvLyAweDAKKyAgfQorCisgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgVGV4dFRvU3BlZWNoQ2xpZW50LlV0dGVyYW5jZUlkIHsKKyAgICBjdG9yIHB1YmxpYyBUZXh0VG9TcGVlY2hDbGllbnQuVXR0ZXJhbmNlSWQoKTsKKyAgICBjdG9yIHB1YmxpYyBUZXh0VG9TcGVlY2hDbGllbnQuVXR0ZXJhbmNlSWQoamF2YS5sYW5nLlN0cmluZyk7CisgICAgbWV0aG9kIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvVW5pcXVlU3RyaW5nKCk7CisgIH0KKwogICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVGV4dFRvU3BlZWNoU2VydmljZSBleHRlbmRzIGFuZHJvaWQuYXBwLlNlcnZpY2UgewogICAgIGN0b3IgcHVibGljIFRleHRUb1NwZWVjaFNlcnZpY2UoKTsKKyAgICBtZXRob2QgcHJvdGVjdGVkIGphdmEudXRpbC5MaXN0PGFuZHJvaWQuc3BlZWNoLnR0cy5Wb2ljZUluZm8+IGNoZWNrVm9pY2VzSW5mbygpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBmb3JjZVZvaWNlc0luZm9DaGVjaygpOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5zcGVlY2gudHRzLlZvaWNlSW5mbyBnZXRWb2ljZXNJbmZvV2l0aE5hbWUoamF2YS5sYW5nLlN0cmluZyk7CisgICAgbWV0aG9kIHByb3RlY3RlZCBib29sZWFuIGltcGxlbWVudHNWMkFQSSgpOwogICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5vcy5JQmluZGVyIG9uQmluZChhbmRyb2lkLmNvbnRlbnQuSW50ZW50KTsKICAgICBtZXRob2QgcHJvdGVjdGVkIGphdmEudXRpbC5TZXQ8amF2YS5sYW5nLlN0cmluZz4gb25HZXRGZWF0dXJlc0Zvckxhbmd1YWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpOwogICAgIG1ldGhvZCBwcm90ZWN0ZWQgYWJzdHJhY3QgamF2YS5sYW5nLlN0cmluZ1tdIG9uR2V0TGFuZ3VhZ2UoKTsKQEAgLTIzMDE1LDYgKzIzNjUyLDggQEAKICAgICBtZXRob2QgcHJvdGVjdGVkIGFic3RyYWN0IGludCBvbkxvYWRMYW5ndWFnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKTsKICAgICBtZXRob2QgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgb25TdG9wKCk7CiAgICAgbWV0aG9kIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIG9uU3ludGhlc2l6ZVRleHQoYW5kcm9pZC5zcGVlY2gudHRzLlN5bnRoZXNpc1JlcXVlc3QsIGFuZHJvaWQuc3BlZWNoLnR0cy5TeW50aGVzaXNDYWxsYmFjayk7CisgICAgbWV0aG9kIHByb3RlY3RlZCB2b2lkIG9uU3ludGhlc2l6ZVRleHRWMihhbmRyb2lkLnNwZWVjaC50dHMuU3ludGhlc2lzUmVxdWVzdFYyLCBhbmRyb2lkLnNwZWVjaC50dHMuVm9pY2VJbmZvLCBhbmRyb2lkLnNwZWVjaC50dHMuU3ludGhlc2lzQ2FsbGJhY2spOworICAgIG1ldGhvZCBwcm90ZWN0ZWQgdm9pZCBvblZvaWNlc0luZm9DaGFuZ2UoKTsKICAgfQogCiAgIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBVdHRlcmFuY2VQcm9ncmVzc0xpc3RlbmVyIHsKQEAgLTIzMDI0LDYgKzIzNjYzLDQ0IEBACiAgICAgbWV0aG9kIHB1YmxpYyBhYnN0cmFjdCB2b2lkIG9uU3RhcnQoamF2YS5sYW5nLlN0cmluZyk7CiAgIH0KIAorICBwdWJsaWMgZmluYWwgY2xhc3MgVm9pY2VJbmZvIGltcGxlbWVudHMgYW5kcm9pZC5vcy5QYXJjZWxhYmxlIHsKKyAgICBtZXRob2QgcHVibGljIGludCBkZXNjcmliZUNvbnRlbnRzKCk7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLm9zLkJ1bmRsZSBnZXRBZGRpdGlvbmFsRmVhdHVyZXMoKTsKKyAgICBtZXRob2QgcHVibGljIGludCBnZXRMYXRlbmN5KCk7CisgICAgbWV0aG9kIHB1YmxpYyBqYXZhLnV0aWwuTG9jYWxlIGdldExvY2FsZSgpOworICAgIG1ldGhvZCBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBnZXROYW1lKCk7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLm9zLkJ1bmRsZSBnZXRQYXJhbXNXaXRoRGVmYXVsdHMoKTsKKyAgICBtZXRob2QgcHVibGljIGludCBnZXRRdWFsaXR5KCk7CisgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGdldFJlcXVpcmVzTmV0d29ya0Nvbm5lY3Rpb24oKTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgd3JpdGVUb1BhcmNlbChhbmRyb2lkLm9zLlBhcmNlbCwgaW50KTsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgRkVBVFVSRV9NQVlfQVVUT0lOU1RBTEwgPSAibWF5QXV0b0luc3RhbGwiOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBGRUFUVVJFX1NQRUFLRVJfR0VOREVSID0gInNwZWFrZXJHZW5kZXIiOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBGRUFUVVJFX1dPUkRTX1BFUl9NSU5VVEUgPSAid29yZHNQZXJNaW51dGUiOworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVEVOQ1lfSElHSCA9IDQwMDsgLy8gMHgxOTAKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRFTkNZX0xPVyA9IDIwMDsgLy8gMHhjOAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVEVOQ1lfTk9STUFMID0gMzAwOyAvLyAweDEyYworICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVEVOQ1lfVkVSWV9ISUdIID0gNTAwOyAvLyAweDFmNAorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVEVOQ1lfVkVSWV9MT1cgPSAxMDA7IC8vIDB4NjQKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRVUFMSVRZX0hJR0ggPSA0MDA7IC8vIDB4MTkwCisgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUVVBTElUWV9MT1cgPSAyMDA7IC8vIDB4YzgKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRVUFMSVRZX05PUk1BTCA9IDMwMDsgLy8gMHgxMmMKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRVUFMSVRZX1ZFUllfSElHSCA9IDUwMDsgLy8gMHgxZjQKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRVUFMSVRZX1ZFUllfTE9XID0gMTAwOyAvLyAweDY0CisgIH0KKworICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFZvaWNlSW5mby5CdWlsZGVyIHsKKyAgICBjdG9yIHB1YmxpYyBWb2ljZUluZm8uQnVpbGRlcigpOworICAgIGN0b3IgcHVibGljIFZvaWNlSW5mby5CdWlsZGVyKGFuZHJvaWQuc3BlZWNoLnR0cy5Wb2ljZUluZm8pOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5zcGVlY2gudHRzLlZvaWNlSW5mbyBidWlsZCgpOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5zcGVlY2gudHRzLlZvaWNlSW5mby5CdWlsZGVyIHNldEFkZGl0aW9uYWxGZWF0dXJlcyhhbmRyb2lkLm9zLkJ1bmRsZSk7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLnNwZWVjaC50dHMuVm9pY2VJbmZvLkJ1aWxkZXIgc2V0TGF0ZW5jeShpbnQpOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5zcGVlY2gudHRzLlZvaWNlSW5mby5CdWlsZGVyIHNldExvY2FsZShqYXZhLnV0aWwuTG9jYWxlKTsKKyAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuc3BlZWNoLnR0cy5Wb2ljZUluZm8uQnVpbGRlciBzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5zcGVlY2gudHRzLlZvaWNlSW5mby5CdWlsZGVyIHNldFBhcmFtc1dpdGhEZWZhdWx0cyhhbmRyb2lkLm9zLkJ1bmRsZSk7CisgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLnNwZWVjaC50dHMuVm9pY2VJbmZvLkJ1aWxkZXIgc2V0UXVhbGl0eShpbnQpOworICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5zcGVlY2gudHRzLlZvaWNlSW5mby5CdWlsZGVyIHNldFJlcXVpcmVzTmV0d29ya0Nvbm5lY3Rpb24oYm9vbGVhbik7CisgIH0KKwogfQogCiBwYWNrYWdlIGFuZHJvaWQudGVsZXBob255IHsKQEAgLTI1NTc3LDcgKzI2MjU0LDggQEAKIAogICBwdWJsaWMgZmluYWwgY2xhc3MgU2NlbmUgewogICAgIGN0b3IgcHVibGljIFNjZW5lKGFuZHJvaWQudmlldy5WaWV3R3JvdXApOwotICAgIGN0b3IgcHVibGljIFNjZW5lKGFuZHJvaWQudmlldy5WaWV3R3JvdXAsIGFuZHJvaWQudmlldy5WaWV3R3JvdXApOworICAgIGN0b3IgcHVibGljIFNjZW5lKGFuZHJvaWQudmlldy5WaWV3R3JvdXAsIGFuZHJvaWQudmlldy5WaWV3KTsKKyAgICBjdG9yIHB1YmxpYyBkZXByZWNhdGVkIFNjZW5lKGFuZHJvaWQudmlldy5WaWV3R3JvdXAsIGFuZHJvaWQudmlldy5WaWV3R3JvdXApOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBlbnRlcigpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBleGl0KCk7CiAgICAgbWV0aG9kIHB1YmxpYyBzdGF0aWMgYW5kcm9pZC50cmFuc2l0aW9uLlNjZW5lIGdldFNjZW5lRm9yTGF5b3V0KGFuZHJvaWQudmlldy5WaWV3R3JvdXAsIGludCwgYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwpAQCAtMjY0NzIsNiArMjcxNTAsNyBAQAogICB9CiAKICAgcHVibGljIGNsYXNzIEhhcHRpY0ZlZWRiYWNrQ29uc3RhbnRzIHsKKyAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDTE9DS19USUNLID0gNDsgLy8gMHg0CiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRkxBR19JR05PUkVfR0xPQkFMX1NFVFRJTkcgPSAyOyAvLyAweDIKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGTEFHX0lHTk9SRV9WSUVXX1NFVFRJTkcgPSAxOyAvLyAweDEKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLRVlCT0FSRF9UQVAgPSAzOyAvLyAweDMKQEAgLTI3NDIyLDYgKzI4MTAxLDcgQEAKICAgICBjdG9yIHB1YmxpYyBTdXJmYWNlVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgU3VyZmFjZVZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIFN1cmZhY2VWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIFN1cmZhY2VWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGdhdGhlclRyYW5zcGFyZW50UmVnaW9uKGFuZHJvaWQuZ3JhcGhpY3MuUmVnaW9uKTsKICAgICBtZXRob2QgcHVibGljIGFuZHJvaWQudmlldy5TdXJmYWNlSG9sZGVyIGdldEhvbGRlcigpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRTZWN1cmUoYm9vbGVhbik7CkBAIC0yNzQzMyw2ICsyODExMyw3IEBACiAgICAgY3RvciBwdWJsaWMgVGV4dHVyZVZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIFRleHR1cmVWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBUZXh0dXJlVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKKyAgICBjdG9yIHB1YmxpYyBUZXh0dXJlVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgZmluYWwgdm9pZCBkcmF3KGFuZHJvaWQuZ3JhcGhpY3MuQ2FudmFzKTsKICAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwIGdldEJpdG1hcCgpOwogICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXAgZ2V0Qml0bWFwKGludCwgaW50KTsKQEAgLTI3NDg0LDYgKzI4MTY1LDcgQEAKICAgICBjdG9yIHB1YmxpYyBWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgYWRkQ2hpbGRyZW5Gb3JBY2Nlc3NpYmlsaXR5KGphdmEudXRpbC5BcnJheUxpc3Q8YW5kcm9pZC52aWV3LlZpZXc+KTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgYWRkRm9jdXNhYmxlcyhqYXZhLnV0aWwuQXJyYXlMaXN0PGFuZHJvaWQudmlldy5WaWV3PiwgaW50KTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgYWRkRm9jdXNhYmxlcyhqYXZhLnV0aWwuQXJyYXlMaXN0PGFuZHJvaWQudmlldy5WaWV3PiwgaW50LCBpbnQpOwpAQCAtMjgyMjIsNiArMjg5MDQsNyBAQAogICAgIGN0b3IgcHVibGljIFZpZXdHcm91cChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgVmlld0dyb3VwKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBWaWV3R3JvdXAoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgVmlld0dyb3VwKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGFkZFN0YXRlc0Zyb21DaGlsZHJlbigpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBhZGRWaWV3KGFuZHJvaWQudmlldy5WaWV3KTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgYWRkVmlldyhhbmRyb2lkLnZpZXcuVmlldywgaW50KTsKQEAgLTI4NDczLDYgKzI5MTU2LDcgQEAKICAgICBjdG9yIHB1YmxpYyBWaWV3U3R1YihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgaW50KTsKICAgICBjdG9yIHB1YmxpYyBWaWV3U3R1YihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgVmlld1N0dWIoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgVmlld1N0dWIoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRJbmZsYXRlZElkKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLnZpZXcuTGF5b3V0SW5mbGF0ZXIgZ2V0TGF5b3V0SW5mbGF0ZXIoKTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRMYXlvdXRSZXNvdXJjZSgpOwpAQCAtMjg2MzEsNiArMjkzMTUsNyBAQAogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZFQVRVUkVfQUNUSU9OX0JBUiA9IDg7IC8vIDB4OAogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZFQVRVUkVfQUNUSU9OX0JBUl9PVkVSTEFZID0gOTsgLy8gMHg5CiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRkVBVFVSRV9BQ1RJT05fTU9ERV9PVkVSTEFZID0gMTA7IC8vIDB4YQorICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZFQVRVUkVfQ09OVEVOVF9UUkFOU0lUSU9OUyA9IDExOyAvLyAweGIKICAgICBmaWVsZCBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGRUFUVVJFX0NPTlRFWFRfTUVOVSA9IDY7IC8vIDB4NgogICAgIGZpZWxkIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZFQVRVUkVfQ1VTVE9NX1RJVExFID0gNzsgLy8gMHg3CiAgICAgZmllbGQgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRkVBVFVSRV9JTkRFVEVSTUlOQVRFX1BST0dSRVNTID0gNTsgLy8gMHg1CkBAIC0yODk4MSw2ICsyOTY2Niw5IEBACiAgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIHBlcmZvcm1BY3Rpb24oaW50LCBhbmRyb2lkLm9zLkJ1bmRsZSk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHJlY3ljbGUoKTsKICAgICBtZXRob2QgcHVibGljIGJvb2xlYW4gcmVmcmVzaCgpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCByZW1vdmVBY3Rpb24oaW50KTsKKyAgICBtZXRob2QgcHVibGljIGJvb2xlYW4gcmVtb3ZlQ2hpbGQoYW5kcm9pZC52aWV3LlZpZXcpOworICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiByZW1vdmVDaGlsZChhbmRyb2lkLnZpZXcuVmlldywgaW50KTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0QWNjZXNzaWJpbGl0eUZvY3VzZWQoYm9vbGVhbik7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldEJvdW5kc0luUGFyZW50KGFuZHJvaWQuZ3JhcGhpY3MuUmVjdCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldEJvdW5kc0luU2NyZWVuKGFuZHJvaWQuZ3JhcGhpY3MuUmVjdCk7CkBAIC0zMDIzNCw2ICszMDkyMiw3IEBACiAgICAgY3RvciBwdWJsaWMgV2ViVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgV2ViVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgV2ViVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKKyAgICBjdG9yIHB1YmxpYyBXZWJWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgY3RvciBwdWJsaWMgZGVwcmVjYXRlZCBXZWJWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGJvb2xlYW4pOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBhZGRKYXZhc2NyaXB0SW50ZXJmYWNlKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpOwogICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiBjYW5Hb0JhY2soKTsKQEAgLTMwNDA4LDYgKzMxMDk3LDcgQEAKICAgICBjdG9yIHB1YmxpYyBBYnNMaXN0VmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgQWJzTGlzdFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIEFic0xpc3RWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIEFic0xpc3RWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGFmdGVyVGV4dENoYW5nZWQoYW5kcm9pZC50ZXh0LkVkaXRhYmxlKTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgYmVmb3JlVGV4dENoYW5nZWQoamF2YS5sYW5nLkNoYXJTZXF1ZW5jZSwgaW50LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGNhblNjcm9sbExpc3QoaW50KTsKQEAgLTMwNDU5LDYgKzMxMTQ5LDcgQEAKICAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0RHJhd1NlbGVjdG9yT25Ub3AoYm9vbGVhbik7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldEZhc3RTY3JvbGxBbHdheXNWaXNpYmxlKGJvb2xlYW4pOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRGYXN0U2Nyb2xsRW5hYmxlZChib29sZWFuKTsKKyAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0RmFzdFNjcm9sbFN0eWxlKGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldEZpbHRlclRleHQoamF2YS5sYW5nLlN0cmluZyk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldEZyaWN0aW9uKGZsb2F0KTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0SXRlbUNoZWNrZWQoaW50LCBib29sZWFuKTsKQEAgLTMwNTIxLDYgKzMxMjEyLDcgQEAKICAgICBjdG9yIHB1YmxpYyBBYnNTZWVrQmFyKGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBBYnNTZWVrQmFyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBBYnNTZWVrQmFyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIEFic1NlZWtCYXIoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRLZXlQcm9ncmVzc0luY3JlbWVudCgpOwogICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS5EcmF3YWJsZSBnZXRUaHVtYigpOwogICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldFRodW1iT2Zmc2V0KCk7CkBAIC0zMDUzMyw2ICszMTIyNSw3IEBACiAgICAgY3RvciBwdWJsaWMgQWJzU3Bpbm5lcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgQWJzU3Bpbm5lcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgQWJzU3Bpbm5lcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKKyAgICBjdG9yIHB1YmxpYyBBYnNTcGlubmVyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLndpZGdldC5TcGlubmVyQWRhcHRlciBnZXRBZGFwdGVyKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLnZpZXcuVmlldyBnZXRTZWxlY3RlZFZpZXcoKTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgb25SZXN0b3JlSW5zdGFuY2VTdGF0ZShhbmRyb2lkLm9zLlBhcmNlbGFibGUpOwpAQCAtMzA1NDcsNiArMzEyNDAsNyBAQAogICAgIGN0b3IgcHVibGljIEFic29sdXRlTGF5b3V0KGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBBYnNvbHV0ZUxheW91dChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgQWJzb2x1dGVMYXlvdXQoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgQWJzb2x1dGVMYXlvdXQoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHJvdGVjdGVkIHZvaWQgb25MYXlvdXQoYm9vbGVhbiwgaW50LCBpbnQsIGludCwgaW50KTsKICAgfQogCkBAIC0zMDU3OCw2ICszMTI3Miw3IEBACiAgICAgY3RvciBwdWJsaWMgQWRhcHRlclZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIEFkYXB0ZXJWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBBZGFwdGVyVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKKyAgICBjdG9yIHB1YmxpYyBBZGFwdGVyVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgYWJzdHJhY3QgVCBnZXRBZGFwdGVyKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0Q291bnQoKTsKICAgICBtZXRob2QgcHVibGljIGFuZHJvaWQudmlldy5WaWV3IGdldEVtcHR5VmlldygpOwpAQCAtMzA2MzEsNiArMzEzMjYsNyBAQAogICAgIGN0b3IgcHVibGljIEFkYXB0ZXJWaWV3QW5pbWF0b3IoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIEFkYXB0ZXJWaWV3QW5pbWF0b3IoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIEFkYXB0ZXJWaWV3QW5pbWF0b3IoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgQWRhcHRlclZpZXdBbmltYXRvcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBhZHZhbmNlKCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGRlZmVyTm90aWZ5RGF0YVNldENoYW5nZWQoKTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgZnlpV2lsbEJlQWR2YW5jZWRCeUhvc3RLVGh4KCk7CkBAIC0zMDY2MCw2ICszMTM1Niw4IEBACiAgIHB1YmxpYyBjbGFzcyBBZGFwdGVyVmlld0ZsaXBwZXIgZXh0ZW5kcyBhbmRyb2lkLndpZGdldC5BZGFwdGVyVmlld0FuaW1hdG9yIHsKICAgICBjdG9yIHB1YmxpYyBBZGFwdGVyVmlld0ZsaXBwZXIoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIEFkYXB0ZXJWaWV3RmxpcHBlcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CisgICAgY3RvciBwdWJsaWMgQWRhcHRlclZpZXdGbGlwcGVyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIEFkYXB0ZXJWaWV3RmxpcHBlcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldEZsaXBJbnRlcnZhbCgpOwogICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiBpc0F1dG9TdGFydCgpOwogICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiBpc0ZsaXBwaW5nKCk7CkBAIC0zMDY5MCw2ICszMTM4OCw3IEBACiAgICAgY3RvciBwdWJsaWMgQW5hbG9nQ2xvY2soYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIEFuYWxvZ0Nsb2NrKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBBbmFsb2dDbG9jayhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKKyAgICBjdG9yIHB1YmxpYyBBbmFsb2dDbG9jayhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICB9CiAKICAgcHVibGljIGNsYXNzIEFycmF5QWRhcHRlciBleHRlbmRzIGFuZHJvaWQud2lkZ2V0LkJhc2VBZGFwdGVyIGltcGxlbWVudHMgYW5kcm9pZC53aWRnZXQuRmlsdGVyYWJsZSB7CkBAIC0zMDcyMiw2ICszMTQyMSw3IEBACiAgICAgY3RvciBwdWJsaWMgQXV0b0NvbXBsZXRlVGV4dFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIEF1dG9Db21wbGV0ZVRleHRWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBBdXRvQ29tcGxldGVUZXh0VmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKKyAgICBjdG9yIHB1YmxpYyBBdXRvQ29tcGxldGVUZXh0VmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBjbGVhckxpc3RTZWxlY3Rpb24oKTsKICAgICBtZXRob2QgcHJvdGVjdGVkIGphdmEubGFuZy5DaGFyU2VxdWVuY2UgY29udmVydFNlbGVjdGlvblRvU3RyaW5nKGphdmEubGFuZy5PYmplY3QpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBkaXNtaXNzRHJvcERvd24oKTsKQEAgLTMwODE0LDEyICszMTUxNCwxNCBAQAogICAgIGN0b3IgcHVibGljIEJ1dHRvbihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBCdXR0b24oYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgIH0KIAogICBwdWJsaWMgY2xhc3MgQ2FsZW5kYXJWaWV3IGV4dGVuZHMgYW5kcm9pZC53aWRnZXQuRnJhbWVMYXlvdXQgewogICAgIGN0b3IgcHVibGljIENhbGVuZGFyVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgQ2FsZW5kYXJWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBDYWxlbmRhclZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgQ2FsZW5kYXJWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBsb25nIGdldERhdGUoKTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXREYXRlVGV4dEFwcGVhcmFuY2UoKTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRGaXJzdERheU9mV2VlaygpOwpAQCAtMzA4NjEsNiArMzE1NjMsNyBAQAogICAgIGN0b3IgcHVibGljIENoZWNrQm94KGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBDaGVja0JveChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgQ2hlY2tCb3goYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgQ2hlY2tCb3goYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgfQogCiAgIHB1YmxpYyBhYnN0cmFjdCBpbnRlcmZhY2UgQ2hlY2thYmxlIHsKQEAgLTMwODczLDYgKzMxNTc2LDcgQEAKICAgICBjdG9yIHB1YmxpYyBDaGVja2VkVGV4dFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIENoZWNrZWRUZXh0VmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgQ2hlY2tlZFRleHRWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIENoZWNrZWRUZXh0VmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS5EcmF3YWJsZSBnZXRDaGVja01hcmtEcmF3YWJsZSgpOwogICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiBpc0NoZWNrZWQoKTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0Q2hlY2tNYXJrRHJhd2FibGUoaW50KTsKQEAgLTMwODg1LDYgKzMxNTg5LDcgQEAKICAgICBjdG9yIHB1YmxpYyBDaHJvbm9tZXRlcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgQ2hyb25vbWV0ZXIoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIENocm9ub21ldGVyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIENocm9ub21ldGVyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBsb25nIGdldEJhc2UoKTsKICAgICBtZXRob2QgcHVibGljIGphdmEubGFuZy5TdHJpbmcgZ2V0Rm9ybWF0KCk7CiAgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLndpZGdldC5DaHJvbm9tZXRlci5PbkNocm9ub21ldGVyVGlja0xpc3RlbmVyIGdldE9uQ2hyb25vbWV0ZXJUaWNrTGlzdGVuZXIoKTsKQEAgLTMwOTAzLDYgKzMxNjA4LDcgQEAKICAgICBjdG9yIHB1YmxpYyBDb21wb3VuZEJ1dHRvbihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgQ29tcG91bmRCdXR0b24oYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIENvbXBvdW5kQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIENvbXBvdW5kQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGlzQ2hlY2tlZCgpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRCdXR0b25EcmF3YWJsZShpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRCdXR0b25EcmF3YWJsZShhbmRyb2lkLmdyYXBoaWNzLmRyYXdhYmxlLkRyYXdhYmxlKTsKQEAgLTMwOTc0LDYgKzMxNjgwLDcgQEAKICAgICBjdG9yIHB1YmxpYyBEYXRlUGlja2VyKGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBEYXRlUGlja2VyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBEYXRlUGlja2VyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIERhdGVQaWNrZXIoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGFuZHJvaWQud2lkZ2V0LkNhbGVuZGFyVmlldyBnZXRDYWxlbmRhclZpZXcoKTsKICAgICBtZXRob2QgcHVibGljIGJvb2xlYW4gZ2V0Q2FsZW5kYXJWaWV3U2hvd24oKTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXREYXlPZk1vbnRoKCk7CkBAIC0zMTAzNyw2ICszMTc0NCw3IEBACiAgICAgY3RvciBwdWJsaWMgRWRpdFRleHQoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIEVkaXRUZXh0KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBFZGl0VGV4dChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKKyAgICBjdG9yIHB1YmxpYyBFZGl0VGV4dChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBleHRlbmRTZWxlY3Rpb24oaW50KTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvbihpbnQsIGludCk7CkBAIC0zMTA2OCw2ICszMTc3Niw3IEBACiAgICAgY3RvciBwdWJsaWMgRXhwYW5kYWJsZUxpc3RWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBFeHBhbmRhYmxlTGlzdFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIEV4cGFuZGFibGVMaXN0VmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKKyAgICBjdG9yIHB1YmxpYyBFeHBhbmRhYmxlTGlzdFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGJvb2xlYW4gY29sbGFwc2VHcm91cChpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiBleHBhbmRHcm91cChpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiBleHBhbmRHcm91cChpbnQsIGJvb2xlYW4pOwpAQCAtMzExNTcsNiArMzE4NjYsNyBAQAogICAgIGN0b3IgcHVibGljIEZyYW1lTGF5b3V0KGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBGcmFtZUxheW91dChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgRnJhbWVMYXlvdXQoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgRnJhbWVMYXlvdXQoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGRlcHJlY2F0ZWQgYm9vbGVhbiBnZXRDb25zaWRlckdvbmVDaGlsZHJlbldoZW5NZWFzdXJpbmcoKTsKICAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuRHJhd2FibGUgZ2V0Rm9yZWdyb3VuZCgpOwogICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldEZvcmVncm91bmRHcmF2aXR5KCk7CkBAIC0zMTE4MSw2ICszMTg5MSw3IEBACiAgICAgY3RvciBwdWJsaWMgR2FsbGVyeShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgR2FsbGVyeShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgR2FsbGVyeShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKKyAgICBjdG9yIHB1YmxpYyBHYWxsZXJ5KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIG9uRG93bihhbmRyb2lkLnZpZXcuTW90aW9uRXZlbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiBvbkZsaW5nKGFuZHJvaWQudmlldy5Nb3Rpb25FdmVudCwgYW5kcm9pZC52aWV3Lk1vdGlvbkV2ZW50LCBmbG9hdCwgZmxvYXQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBvbkxvbmdQcmVzcyhhbmRyb2lkLnZpZXcuTW90aW9uRXZlbnQpOwpAQCAtMzEyMDEsOSArMzE5MTIsMTAgQEAKICAgfQogCiAgIHB1YmxpYyBjbGFzcyBHcmlkTGF5b3V0IGV4dGVuZHMgYW5kcm9pZC52aWV3LlZpZXdHcm91cCB7Ci0gICAgY3RvciBwdWJsaWMgR3JpZExheW91dChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKLSAgICBjdG9yIHB1YmxpYyBHcmlkTGF5b3V0KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBHcmlkTGF5b3V0KGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKKyAgICBjdG9yIHB1YmxpYyBHcmlkTGF5b3V0KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKKyAgICBjdG9yIHB1YmxpYyBHcmlkTGF5b3V0KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIEdyaWRMYXlvdXQoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRBbGlnbm1lbnRNb2RlKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0Q29sdW1uQ291bnQoKTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRPcmllbnRhdGlvbigpOwpAQCAtMzEyNjEsNiArMzE5NzMsNyBAQAogICAgIGN0b3IgcHVibGljIEdyaWRWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBHcmlkVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgR3JpZFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgR3JpZFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGFuZHJvaWQud2lkZ2V0Lkxpc3RBZGFwdGVyIGdldEFkYXB0ZXIoKTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRDb2x1bW5XaWR0aCgpOwogICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldEdyYXZpdHkoKTsKQEAgLTMxMzE4LDYgKzMyMDMxLDcgQEAKICAgICBjdG9yIHB1YmxpYyBIb3Jpem9udGFsU2Nyb2xsVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgSG9yaXpvbnRhbFNjcm9sbFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIEhvcml6b250YWxTY3JvbGxWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIEhvcml6b250YWxTY3JvbGxWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGFycm93U2Nyb2xsKGludCk7CiAgICAgbWV0aG9kIHByb3RlY3RlZCBpbnQgY29tcHV0ZVNjcm9sbERlbHRhVG9HZXRDaGlsZFJlY3RPblNjcmVlbihhbmRyb2lkLmdyYXBoaWNzLlJlY3QpOwogICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiBleGVjdXRlS2V5RXZlbnQoYW5kcm9pZC52aWV3LktleUV2ZW50KTsKQEAgLTMxMzM3LDYgKzMyMDUxLDcgQEAKICAgICBjdG9yIHB1YmxpYyBJbWFnZUJ1dHRvbihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgSW1hZ2VCdXR0b24oYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIEltYWdlQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIEltYWdlQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgIH0KIAogICBwdWJsaWMgY2xhc3MgSW1hZ2VTd2l0Y2hlciBleHRlbmRzIGFuZHJvaWQud2lkZ2V0LlZpZXdTd2l0Y2hlciB7CkBAIC0zMTM1MSw2ICszMjA2Niw3IEBACiAgICAgY3RvciBwdWJsaWMgSW1hZ2VWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBJbWFnZVZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIEltYWdlVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKKyAgICBjdG9yIHB1YmxpYyBJbWFnZVZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGZpbmFsIHZvaWQgY2xlYXJDb2xvckZpbHRlcigpOwogICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiBnZXRBZGp1c3RWaWV3Qm91bmRzKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGdldEJhc2VsaW5lQWxpZ25Cb3R0b20oKTsKQEAgLTMxNDAyLDYgKzMyMTE4LDcgQEAKICAgICBjdG9yIHB1YmxpYyBMaW5lYXJMYXlvdXQoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIExpbmVhckxheW91dChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgTGluZWFyTGF5b3V0KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIExpbmVhckxheW91dChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldEJhc2VsaW5lQWxpZ25lZENoaWxkSW5kZXgoKTsKICAgICBtZXRob2QgcHVibGljIGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuRHJhd2FibGUgZ2V0RGl2aWRlckRyYXdhYmxlKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0RGl2aWRlclBhZGRpbmcoKTsKQEAgLTMxNTEyLDYgKzMyMjI5LDcgQEAKICAgICBjdG9yIHB1YmxpYyBMaXN0VmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgTGlzdFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIExpc3RWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIExpc3RWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGFkZEZvb3RlclZpZXcoYW5kcm9pZC52aWV3LlZpZXcsIGphdmEubGFuZy5PYmplY3QsIGJvb2xlYW4pOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBhZGRGb290ZXJWaWV3KGFuZHJvaWQudmlldy5WaWV3KTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgYWRkSGVhZGVyVmlldyhhbmRyb2lkLnZpZXcuVmlldywgamF2YS5sYW5nLk9iamVjdCwgYm9vbGVhbik7CkBAIC0zMTU4NCw2ICszMjMwMiw3IEBACiAgICAgY3RvciBwdWJsaWMgTXVsdGlBdXRvQ29tcGxldGVUZXh0VmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgTXVsdGlBdXRvQ29tcGxldGVUZXh0VmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgTXVsdGlBdXRvQ29tcGxldGVUZXh0VmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKKyAgICBjdG9yIHB1YmxpYyBNdWx0aUF1dG9Db21wbGV0ZVRleHRWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHByb3RlY3RlZCB2b2lkIHBlcmZvcm1GaWx0ZXJpbmcoamF2YS5sYW5nLkNoYXJTZXF1ZW5jZSwgaW50LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldFRva2VuaXplcihhbmRyb2lkLndpZGdldC5NdWx0aUF1dG9Db21wbGV0ZVRleHRWaWV3LlRva2VuaXplcik7CiAgIH0KQEAgLTMxNjA1LDYgKzMyMzI0LDcgQEAKICAgICBjdG9yIHB1YmxpYyBOdW1iZXJQaWNrZXIoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIE51bWJlclBpY2tlcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgTnVtYmVyUGlja2VyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIE51bWJlclBpY2tlcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgamF2YS5sYW5nLlN0cmluZ1tdIGdldERpc3BsYXllZFZhbHVlcygpOwogICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldE1heFZhbHVlKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0TWluVmFsdWUoKTsKQEAgLTMxNzUwLDYgKzMyNDcwLDcgQEAKICAgICBjdG9yIHB1YmxpYyBQcm9ncmVzc0JhcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgUHJvZ3Jlc3NCYXIoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIFByb2dyZXNzQmFyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIFByb2dyZXNzQmFyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLmdyYXBoaWNzLmRyYXdhYmxlLkRyYXdhYmxlIGdldEluZGV0ZXJtaW5hdGVEcmF3YWJsZSgpOwogICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC52aWV3LmFuaW1hdGlvbi5JbnRlcnBvbGF0b3IgZ2V0SW50ZXJwb2xhdG9yKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IGdldE1heCgpOwpAQCAtMzE3NjMsMTEgKzMyNDg0LDEzIEBACiAgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLm9zLlBhcmNlbGFibGUgb25TYXZlSW5zdGFuY2VTdGF0ZSgpOwogICAgIG1ldGhvZCBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgc2V0SW5kZXRlcm1pbmF0ZShib29sZWFuKTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0SW5kZXRlcm1pbmF0ZURyYXdhYmxlKGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuRHJhd2FibGUpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRJbmRldGVybWluYXRlRHJhd2FibGVUaWxlZChhbmRyb2lkLmdyYXBoaWNzLmRyYXdhYmxlLkRyYXdhYmxlKTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgc2V0SW50ZXJwb2xhdG9yKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRJbnRlcnBvbGF0b3IoYW5kcm9pZC52aWV3LmFuaW1hdGlvbi5JbnRlcnBvbGF0b3IpOwogICAgIG1ldGhvZCBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgc2V0TWF4KGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBzZXRQcm9ncmVzcyhpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRQcm9ncmVzc0RyYXdhYmxlKGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuRHJhd2FibGUpOworICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRQcm9ncmVzc0RyYXdhYmxlVGlsZWQoYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS5EcmF3YWJsZSk7CiAgICAgbWV0aG9kIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBzZXRTZWNvbmRhcnlQcm9ncmVzcyhpbnQpOwogICB9CiAKQEAgLTMxNzc1LDYgKzMyNDk4LDcgQEAKICAgICBjdG9yIHB1YmxpYyBRdWlja0NvbnRhY3RCYWRnZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgUXVpY2tDb250YWN0QmFkZ2UoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIFF1aWNrQ29udGFjdEJhZGdlKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIFF1aWNrQ29udGFjdEJhZGdlKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGFzc2lnbkNvbnRhY3RGcm9tRW1haWwoamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbik7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGFzc2lnbkNvbnRhY3RGcm9tRW1haWwoamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbiwgYW5kcm9pZC5vcy5CdW5kbGUpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBhc3NpZ25Db250YWN0RnJvbVBob25lKGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pOwpAQCAtMzE3OTEsNiArMzI1MTUsNyBAQAogICAgIGN0b3IgcHVibGljIFJhZGlvQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBSYWRpb0J1dHRvbihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgUmFkaW9CdXR0b24oYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgUmFkaW9CdXR0b24oYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgfQogCiAgIHB1YmxpYyBjbGFzcyBSYWRpb0dyb3VwIGV4dGVuZHMgYW5kcm9pZC53aWRnZXQuTGluZWFyTGF5b3V0IHsKQEAgLTMxODE2LDYgKzMyNTQxLDcgQEAKIAogICBwdWJsaWMgY2xhc3MgUmF0aW5nQmFyIGV4dGVuZHMgYW5kcm9pZC53aWRnZXQuQWJzU2Vla0JhciB7CiAgICAgY3RvciBwdWJsaWMgUmF0aW5nQmFyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIFJhdGluZ0JhcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIGN0b3IgcHVibGljIFJhdGluZ0JhcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgUmF0aW5nQmFyKGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXROdW1TdGFycygpOwpAQCAtMzE4MzgsNiArMzI1NjQsNyBAQAogICAgIGN0b3IgcHVibGljIFJlbGF0aXZlTGF5b3V0KGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBSZWxhdGl2ZUxheW91dChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgUmVsYXRpdmVMYXlvdXQoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgUmVsYXRpdmVMYXlvdXQoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRHcmF2aXR5KCk7CiAgICAgbWV0aG9kIHByb3RlY3RlZCB2b2lkIG9uTGF5b3V0KGJvb2xlYW4sIGludCwgaW50LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIHNldEdyYXZpdHkoaW50KTsKQEAgLTMxOTg2LDYgKzMyNzEzLDcgQEAKICAgICBjdG9yIHB1YmxpYyBTY3JvbGxWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBTY3JvbGxWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBTY3JvbGxWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIFNjcm9sbFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGJvb2xlYW4gYXJyb3dTY3JvbGwoaW50KTsKICAgICBtZXRob2QgcHJvdGVjdGVkIGludCBjb21wdXRlU2Nyb2xsRGVsdGFUb0dldENoaWxkUmVjdE9uU2NyZWVuKGFuZHJvaWQuZ3JhcGhpY3MuUmVjdCk7CiAgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGV4ZWN1dGVLZXlFdmVudChhbmRyb2lkLnZpZXcuS2V5RXZlbnQpOwpAQCAtMzIwMzAsNiArMzI3NTgsOCBAQAogICBwdWJsaWMgY2xhc3MgU2VhcmNoVmlldyBleHRlbmRzIGFuZHJvaWQud2lkZ2V0LkxpbmVhckxheW91dCBpbXBsZW1lbnRzIGFuZHJvaWQudmlldy5Db2xsYXBzaWJsZUFjdGlvblZpZXcgewogICAgIGN0b3IgcHVibGljIFNlYXJjaFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIFNlYXJjaFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOworICAgIGN0b3IgcHVibGljIFNlYXJjaFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgU2VhcmNoVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldEltZU9wdGlvbnMoKTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRJbnB1dFR5cGUoKTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRNYXhXaWR0aCgpOwpAQCAtMzIwODQsNiArMzI4MTQsNyBAQAogICAgIGN0b3IgcHVibGljIFNlZWtCYXIoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIFNlZWtCYXIoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOwogICAgIGN0b3IgcHVibGljIFNlZWtCYXIoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgU2Vla0JhcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRPblNlZWtCYXJDaGFuZ2VMaXN0ZW5lcihhbmRyb2lkLndpZGdldC5TZWVrQmFyLk9uU2Vla0JhckNoYW5nZUxpc3RlbmVyKTsKICAgfQogCkBAIC0zMjE4NSw2ICszMjkxNiw3IEBACiAgIHB1YmxpYyBkZXByZWNhdGVkIGNsYXNzIFNsaWRpbmdEcmF3ZXIgZXh0ZW5kcyBhbmRyb2lkLnZpZXcuVmlld0dyb3VwIHsKICAgICBjdG9yIHB1YmxpYyBTbGlkaW5nRHJhd2VyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBTbGlkaW5nRHJhd2VyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIFNsaWRpbmdEcmF3ZXIoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgYW5pbWF0ZUNsb3NlKCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGFuaW1hdGVPcGVuKCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGFuaW1hdGVUb2dnbGUoKTsKQEAgLTMyMjE5LDYgKzMyOTUxLDcgQEAKICAgfQogCiAgIHB1YmxpYyBmaW5hbCBjbGFzcyBTcGFjZSBleHRlbmRzIGFuZHJvaWQudmlldy5WaWV3IHsKKyAgICBjdG9yIHB1YmxpYyBTcGFjZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIGN0b3IgcHVibGljIFNwYWNlKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOwogICAgIGN0b3IgcHVibGljIFNwYWNlKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBTcGFjZShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CkBAIC0zMjIzMCw2ICszMjk2Myw3IEBACiAgICAgY3RvciBwdWJsaWMgU3Bpbm5lcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgU3Bpbm5lcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKICAgICBjdG9yIHB1YmxpYyBTcGlubmVyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CisgICAgY3RvciBwdWJsaWMgU3Bpbm5lcihhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0RHJvcERvd25Ib3Jpem9udGFsT2Zmc2V0KCk7CiAgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0RHJvcERvd25WZXJ0aWNhbE9mZnNldCgpOwogICAgIG1ldGhvZCBwdWJsaWMgaW50IGdldERyb3BEb3duV2lkdGgoKTsKQEAgLTMyMjU3LDEyICszMjk5MSwxNCBAQAogICAgIGN0b3IgcHVibGljIFN0YWNrVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgU3RhY2tWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBTdGFja1ZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgU3RhY2tWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgIH0KIAogICBwdWJsaWMgY2xhc3MgU3dpdGNoIGV4dGVuZHMgYW5kcm9pZC53aWRnZXQuQ29tcG91bmRCdXR0b24gewogICAgIGN0b3IgcHVibGljIFN3aXRjaChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgU3dpdGNoKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBTd2l0Y2goYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgU3dpdGNoKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0U3dpdGNoTWluV2lkdGgoKTsKICAgICBtZXRob2QgcHVibGljIGludCBnZXRTd2l0Y2hQYWRkaW5nKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBqYXZhLmxhbmcuQ2hhclNlcXVlbmNlIGdldFRleHRPZmYoKTsKQEAgLTMyMjg4LDYgKzMzMDI0LDggQEAKICAgcHVibGljIGNsYXNzIFRhYkhvc3QgZXh0ZW5kcyBhbmRyb2lkLndpZGdldC5GcmFtZUxheW91dCBpbXBsZW1lbnRzIGFuZHJvaWQudmlldy5WaWV3VHJlZU9ic2VydmVyLk9uVG91Y2hNb2RlQ2hhbmdlTGlzdGVuZXIgewogICAgIGN0b3IgcHVibGljIFRhYkhvc3QoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIFRhYkhvc3QoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQpOworICAgIGN0b3IgcHVibGljIFRhYkhvc3QoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgVGFiSG9zdChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBhZGRUYWIoYW5kcm9pZC53aWRnZXQuVGFiSG9zdC5UYWJTcGVjKTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgY2xlYXJBbGxUYWJzKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBpbnQgZ2V0Q3VycmVudFRhYigpOwpAQCAtMzIzMjcsNiArMzMwNjUsNyBAQAogICAgIGN0b3IgcHVibGljIFRhYldpZGdldChhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgVGFiV2lkZ2V0KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBUYWJXaWRnZXQoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgVGFiV2lkZ2V0KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGRpc3BhdGNoRHJhdyhhbmRyb2lkLmdyYXBoaWNzLkNhbnZhcyk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGZvY3VzQ3VycmVudFRhYihpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC52aWV3LlZpZXcgZ2V0Q2hpbGRUYWJWaWV3QXQoaW50KTsKQEAgLTMyMzg5LDYgKzMzMTI4LDcgQEAKICAgICBjdG9yIHB1YmxpYyBUZXh0Q2xvY2soYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIFRleHRDbG9jayhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCk7CiAgICAgY3RvciBwdWJsaWMgVGV4dENsb2NrKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIFRleHRDbG9jayhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgamF2YS5sYW5nLkNoYXJTZXF1ZW5jZSBnZXRGb3JtYXQxMkhvdXIoKTsKICAgICBtZXRob2QgcHVibGljIGphdmEubGFuZy5DaGFyU2VxdWVuY2UgZ2V0Rm9ybWF0MjRIb3VyKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIGdldFRpbWVab25lKCk7CkBAIC0zMjQxMSw2ICszMzE1MSw3IEBACiAgICAgY3RvciBwdWJsaWMgVGV4dFZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwogICAgIGN0b3IgcHVibGljIFRleHRWaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBUZXh0VmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50KTsKKyAgICBjdG9yIHB1YmxpYyBUZXh0VmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCwgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldCwgaW50LCBpbnQpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBhZGRUZXh0Q2hhbmdlZExpc3RlbmVyKGFuZHJvaWQudGV4dC5UZXh0V2F0Y2hlcik7CiAgICAgbWV0aG9kIHB1YmxpYyBmaW5hbCB2b2lkIGFwcGVuZChqYXZhLmxhbmcuQ2hhclNlcXVlbmNlKTsKICAgICBtZXRob2QgcHVibGljIHZvaWQgYXBwZW5kKGphdmEubGFuZy5DaGFyU2VxdWVuY2UsIGludCwgaW50KTsKQEAgLTMyNjE4LDYgKzMzMzU5LDcgQEAKICAgICBjdG9yIHB1YmxpYyBUaW1lUGlja2VyKGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBUaW1lUGlja2VyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBUaW1lUGlja2VyKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIFRpbWVQaWNrZXIoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGphdmEubGFuZy5JbnRlZ2VyIGdldEN1cnJlbnRIb3VyKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBqYXZhLmxhbmcuSW50ZWdlciBnZXRDdXJyZW50TWludXRlKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGlzMjRIb3VyVmlldygpOwpAQCAtMzI2NTUsNiArMzMzOTcsNyBAQAogICB9CiAKICAgcHVibGljIGNsYXNzIFRvZ2dsZUJ1dHRvbiBleHRlbmRzIGFuZHJvaWQud2lkZ2V0LkNvbXBvdW5kQnV0dG9uIHsKKyAgICBjdG9yIHB1YmxpYyBUb2dnbGVCdXR0b24oYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBjdG9yIHB1YmxpYyBUb2dnbGVCdXR0b24oYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CiAgICAgY3RvciBwdWJsaWMgVG9nZ2xlQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBUb2dnbGVCdXR0b24oYW5kcm9pZC5jb250ZW50LkNvbnRleHQpOwpAQCAtMzI2NjgsNiArMzM0MTEsNyBAQAogICAgIGN0b3IgcHVibGljIFR3b0xpbmVMaXN0SXRlbShhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgVHdvTGluZUxpc3RJdGVtKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBUd29MaW5lTGlzdEl0ZW0oYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgVHdvTGluZUxpc3RJdGVtKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBhbmRyb2lkLndpZGdldC5UZXh0VmlldyBnZXRUZXh0MSgpOwogICAgIG1ldGhvZCBwdWJsaWMgYW5kcm9pZC53aWRnZXQuVGV4dFZpZXcgZ2V0VGV4dDIoKTsKICAgfQpAQCAtMzI2NzYsNiArMzM0MjAsNyBAQAogICAgIGN0b3IgcHVibGljIFZpZGVvVmlldyhhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCk7CiAgICAgY3RvciBwdWJsaWMgVmlkZW9WaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBWaWRlb1ZpZXcoYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCk7CisgICAgY3RvciBwdWJsaWMgVmlkZW9WaWV3KGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyB2b2lkIGFkZFN1YnRpdGxlU291cmNlKGphdmEuaW8uSW5wdXRTdHJlYW0sIGFuZHJvaWQubWVkaWEuTWVkaWFGb3JtYXQpOwogICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiBjYW5QYXVzZSgpOwogICAgIG1ldGhvZCBwdWJsaWMgYm9vbGVhbiBjYW5TZWVrQmFja3dhcmQoKTsKQEAgLTMyNzUwLDYgKzMzNDk1LDcgQEAKICAgICBjdG9yIHB1YmxpYyBab29tQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0KTsKICAgICBjdG9yIHB1YmxpYyBab29tQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0KTsKICAgICBjdG9yIHB1YmxpYyBab29tQnV0dG9uKGFuZHJvaWQuY29udGVudC5Db250ZXh0LCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0LCBpbnQpOworICAgIGN0b3IgcHVibGljIFpvb21CdXR0b24oYW5kcm9pZC5jb250ZW50LkNvbnRleHQsIGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQsIGludCwgaW50KTsKICAgICBtZXRob2QgcHVibGljIGJvb2xlYW4gb25Mb25nQ2xpY2soYW5kcm9pZC52aWV3LlZpZXcpOwogICAgIG1ldGhvZCBwdWJsaWMgdm9pZCBzZXRab29tU3BlZWQobG9uZyk7CiAgIH0KQEAgLTQyNzE2LDExICs0MzQ2MiwxMSBAQAogICB9CiAKICAgcHVibGljIGNsYXNzIENvbmN1cnJlbnRIYXNoTWFwIGV4dGVuZHMgamF2YS51dGlsLkFic3RyYWN0TWFwIGltcGxlbWVudHMgamF2YS51dGlsLmNvbmN1cnJlbnQuQ29uY3VycmVudE1hcCBqYXZhLmlvLlNlcmlhbGl6YWJsZSB7Ci0gICAgY3RvciBwdWJsaWMgQ29uY3VycmVudEhhc2hNYXAoaW50LCBmbG9hdCwgaW50KTsKLSAgICBjdG9yIHB1YmxpYyBDb25jdXJyZW50SGFzaE1hcChpbnQsIGZsb2F0KTsKLSAgICBjdG9yIHB1YmxpYyBDb25jdXJyZW50SGFzaE1hcChpbnQpOwogICAgIGN0b3IgcHVibGljIENvbmN1cnJlbnRIYXNoTWFwKCk7CisgICAgY3RvciBwdWJsaWMgQ29uY3VycmVudEhhc2hNYXAoaW50KTsKICAgICBjdG9yIHB1YmxpYyBDb25jdXJyZW50SGFzaE1hcChqYXZhLnV0aWwuTWFwPD8gZXh0ZW5kcyBLLCA/IGV4dGVuZHMgVj4pOworICAgIGN0b3IgcHVibGljIENvbmN1cnJlbnRIYXNoTWFwKGludCwgZmxvYXQpOworICAgIGN0b3IgcHVibGljIENvbmN1cnJlbnRIYXNoTWFwKGludCwgZmxvYXQsIGludCk7CiAgICAgbWV0aG9kIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGphdmEubGFuZy5PYmplY3QpOwogICAgIG1ldGhvZCBwdWJsaWMgamF2YS51dGlsLkVudW1lcmF0aW9uPFY+IGVsZW1lbnRzKCk7CiAgICAgbWV0aG9kIHB1YmxpYyBqYXZhLnV0aWwuU2V0PGphdmEudXRpbC5NYXAuRW50cnk8SywgVj4+IGVudHJ5U2V0KCk7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9hbmltYXRpb24vQW5pbWF0b3JJbmZsYXRlci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvYW5pbWF0aW9uL0FuaW1hdG9ySW5mbGF0ZXIuamF2YQppbmRleCBkNzUzZTMyLi4yMDIzNmFhIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9hbmltYXRpb24vQW5pbWF0b3JJbmZsYXRlci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9BbmltYXRvckluZmxhdGVyLmphdmEKQEAgLTIxNSw3ICsyMTUsNyBAQAogICAgICAgICAgICAgICAgICh0b1R5cGUgPD0gVHlwZWRWYWx1ZS5UWVBFX0xBU1RfQ09MT1JfSU5UKSkpIHsKICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZSBmb3IgY29sb3JzOiBpZ25vcmUgdmFsdWVUeXBlIGFuZCBnZXQgaW50cwogICAgICAgICAgICAgZ2V0RmxvYXRzID0gZmFsc2U7Ci0gICAgICAgICAgICBhbmltLnNldEV2YWx1YXRvcihuZXcgQXJnYkV2YWx1YXRvcigpKTsKKyAgICAgICAgICAgIGV2YWx1YXRvciA9IEFyZ2JFdmFsdWF0b3IuZ2V0SW5zdGFuY2UoKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChnZXRGbG9hdHMpIHsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9BcmdiRXZhbHVhdG9yLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9hbmltYXRpb24vQXJnYkV2YWx1YXRvci5qYXZhCmluZGV4IDcxN2EzZDkuLmVkMDcxOTUgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9BcmdiRXZhbHVhdG9yLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvYW5pbWF0aW9uL0FyZ2JFdmFsdWF0b3IuamF2YQpAQCAtMjEsNiArMjEsMTkgQEAKICAqIHZhbHVlcyB0aGF0IHJlcHJlc2VudCBBUkdCIGNvbG9ycy4KICAqLwogcHVibGljIGNsYXNzIEFyZ2JFdmFsdWF0b3IgaW1wbGVtZW50cyBUeXBlRXZhbHVhdG9yIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBcmdiRXZhbHVhdG9yIHNJbnN0YW5jZSA9IG5ldyBBcmdiRXZhbHVhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIDxjb2RlPkFyZ2JFdmFsdWF0b3I8L2NvZGU+IHRoYXQgbWF5IGJlIHVzZWQgaW4KKyAgICAgKiB7QGxpbmsgVmFsdWVBbmltYXRvciNzZXRFdmFsdWF0b3IoVHlwZUV2YWx1YXRvcil9LiBUaGUgc2FtZSBpbnN0YW5jZSBtYXkKKyAgICAgKiBiZSB1c2VkIGluIG11bHRpcGxlIDxjb2RlPkFuaW1hdG9yPC9jb2RlPnMgYmVjYXVzZSBpdCBob2xkcyBubyBzdGF0ZS4KKyAgICAgKiBAcmV0dXJuIEFuIGluc3RhbmNlIG9mIDxjb2RlPkFyZ2JFdmFsdXRvcjwvY29kZT4uCisgICAgICoKKyAgICAgKiBAaGlkZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQXJnYkV2YWx1YXRvciBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIHNJbnN0YW5jZTsKKyAgICB9CiAKICAgICAvKioKICAgICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGNhbGN1bGF0ZWQgaW4tYmV0d2VlbiB2YWx1ZSBmb3IgYSBjb2xvcgpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYW5pbWF0aW9uL0Zsb2F0QXJyYXlFdmFsdWF0b3IuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9GbG9hdEFycmF5RXZhbHVhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFlMTE5NwotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9GbG9hdEFycmF5RXZhbHVhdG9yLmphdmEKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5hbmltYXRpb247CisKKy8qKgorICogVGhpcyBldmFsdWF0b3IgY2FuIGJlIHVzZWQgdG8gcGVyZm9ybSB0eXBlIGludGVycG9sYXRpb24gYmV0d2VlbiA8Y29kZT5mbG9hdFtdPC9jb2RlPiB2YWx1ZXMuCisgKiBFYWNoIGluZGV4IGludG8gdGhlIGFycmF5IGlzIHRyZWF0ZWQgYXMgYSBzZXBhcmF0ZSB2YWx1ZSB0byBpbnRlcnBvbGF0ZS4gRm9yIGV4YW1wbGUsCisgKiBldmFsdWF0aW5nIDxjb2RlPnsxMDAsIDIwMH08L2NvZGU+IGFuZCA8Y29kZT57MzAwLCA0MDB9PC9jb2RlPiB3aWxsIGludGVycG9sYXRlIHRoZSB2YWx1ZSBhdAorICogdGhlIGZpcnN0IGluZGV4IGJldHdlZW4gMTAwIGFuZCAzMDAgYW5kIHRoZSB2YWx1ZSBhdCB0aGUgc2Vjb25kIGluZGV4IHZhbHVlIGJldHdlZW4gMjAwIGFuZCA0MDAuCisgKi8KK3B1YmxpYyBjbGFzcyBGbG9hdEFycmF5RXZhbHVhdG9yIGltcGxlbWVudHMgVHlwZUV2YWx1YXRvcjxmbG9hdFtdPiB7CisKKyAgICBwcml2YXRlIGZsb2F0W10gbUFycmF5OworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgRmxvYXRBcnJheUV2YWx1YXRvciB0aGF0IGRvZXMgbm90IHJldXNlIHRoZSBhbmltYXRlZCB2YWx1ZS4gQ2FyZSBtdXN0IGJlIHRha2VuCisgICAgICogd2hlbiB1c2luZyB0aGlzIG9wdGlvbiBiZWNhdXNlIG9uIGV2ZXJ5IGV2YWx1YXRpb24gYSBuZXcgPGNvZGU+ZmxvYXRbXTwvY29kZT4gd2lsbCBiZQorICAgICAqIGFsbG9jYXRlZC4KKyAgICAgKgorICAgICAqIEBzZWUgI0Zsb2F0QXJyYXlFdmFsdWF0b3IoZmxvYXRbXSkKKyAgICAgKi8KKyAgICBwdWJsaWMgRmxvYXRBcnJheUV2YWx1YXRvcigpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBGbG9hdEFycmF5RXZhbHVhdG9yIHRoYXQgcmV1c2VzIDxjb2RlPnJldXNlQXJyYXk8L2NvZGU+IGZvciBldmVyeSBldmFsdWF0ZSgpIGNhbGwuCisgICAgICogQ2F1dGlvbiBtdXN0IGJlIHRha2VuIHRvIGVuc3VyZSB0aGF0IHRoZSB2YWx1ZSByZXR1cm5lZCBmcm9tCisgICAgICoge0BsaW5rIGFuZHJvaWQuYW5pbWF0aW9uLlZhbHVlQW5pbWF0b3IjZ2V0QW5pbWF0ZWRWYWx1ZSgpfSBpcyBub3QgY2FjaGVkLCBtb2RpZmllZCwgb3IKKyAgICAgKiB1c2VkIGFjcm9zcyB0aHJlYWRzLiBUaGUgdmFsdWUgd2lsbCBiZSBtb2RpZmllZCBvbiBlYWNoIDxjb2RlPmV2YWx1YXRlKCk8L2NvZGU+IGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmV1c2VBcnJheSBUaGUgYXJyYXkgdG8gbW9kaWZ5IGFuZCByZXR1cm4gZnJvbSA8Y29kZT5ldmFsdWF0ZTwvY29kZT4uCisgICAgICovCisgICAgcHVibGljIEZsb2F0QXJyYXlFdmFsdWF0b3IoZmxvYXRbXSByZXVzZUFycmF5KSB7CisgICAgICAgIG1BcnJheSA9IHJldXNlQXJyYXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJwb2xhdGVzIHRoZSB2YWx1ZSBhdCBlYWNoIGluZGV4IGJ5IHRoZSBmcmFjdGlvbi4gSWYKKyAgICAgKiB7QGxpbmsgI0Zsb2F0QXJyYXlFdmFsdWF0b3IoZmxvYXRbXSl9IHdhcyB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzIG9iamVjdCwKKyAgICAgKiA8Y29kZT5yZXVzZUFycmF5PC9jb2RlPiB3aWxsIGJlIHJldHVybmVkLCBvdGhlcndpc2UgYSBuZXcgPGNvZGU+ZmxvYXRbXTwvY29kZT4KKyAgICAgKiB3aWxsIGJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGZyYWN0aW9uICAgVGhlIGZyYWN0aW9uIGZyb20gdGhlIHN0YXJ0aW5nIHRvIHRoZSBlbmRpbmcgdmFsdWVzCisgICAgICogQHBhcmFtIHN0YXJ0VmFsdWUgVGhlIHN0YXJ0IHZhbHVlLgorICAgICAqIEBwYXJhbSBlbmRWYWx1ZSAgIFRoZSBlbmQgdmFsdWUuCisgICAgICogQHJldHVybiBBIDxjb2RlPmZsb2F0W108L2NvZGU+IHdoZXJlIGVhY2ggZWxlbWVudCBpcyBhbiBpbnRlcnBvbGF0aW9uIGJldHdlZW4KKyAgICAgKiAgICAgICAgIHRoZSBzYW1lIGluZGV4IGluIHN0YXJ0VmFsdWUgYW5kIGVuZFZhbHVlLgorICAgICAqLworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBmbG9hdFtdIGV2YWx1YXRlKGZsb2F0IGZyYWN0aW9uLCBmbG9hdFtdIHN0YXJ0VmFsdWUsIGZsb2F0W10gZW5kVmFsdWUpIHsKKyAgICAgICAgZmxvYXRbXSBhcnJheSA9IG1BcnJheTsKKyAgICAgICAgaWYgKGFycmF5ID09IG51bGwpIHsKKyAgICAgICAgICAgIGFycmF5ID0gbmV3IGZsb2F0W3N0YXJ0VmFsdWUubGVuZ3RoXTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGZsb2F0IHN0YXJ0ID0gc3RhcnRWYWx1ZVtpXTsKKyAgICAgICAgICAgIGZsb2F0IGVuZCA9IGVuZFZhbHVlW2ldOworICAgICAgICAgICAgYXJyYXlbaV0gPSBzdGFydCArIChmcmFjdGlvbiAqIChlbmQgLSBzdGFydCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9hbmltYXRpb24vSW50QXJyYXlFdmFsdWF0b3IuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9JbnRBcnJheUV2YWx1YXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3ZjEwZjMKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9hbmltYXRpb24vSW50QXJyYXlFdmFsdWF0b3IuamF2YQpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmFuaW1hdGlvbjsKKworLyoqCisgKiBUaGlzIGV2YWx1YXRvciBjYW4gYmUgdXNlZCB0byBwZXJmb3JtIHR5cGUgaW50ZXJwb2xhdGlvbiBiZXR3ZWVuIDxjb2RlPmludFtdPC9jb2RlPiB2YWx1ZXMuCisgKiBFYWNoIGluZGV4IGludG8gdGhlIGFycmF5IGlzIHRyZWF0ZWQgYXMgYSBzZXBhcmF0ZSB2YWx1ZSB0byBpbnRlcnBvbGF0ZS4gRm9yIGV4YW1wbGUsCisgKiBldmFsdWF0aW5nIDxjb2RlPnsxMDAsIDIwMH08L2NvZGU+IGFuZCA8Y29kZT57MzAwLCA0MDB9PC9jb2RlPiB3aWxsIGludGVycG9sYXRlIHRoZSB2YWx1ZSBhdAorICogdGhlIGZpcnN0IGluZGV4IGJldHdlZW4gMTAwIGFuZCAzMDAgYW5kIHRoZSB2YWx1ZSBhdCB0aGUgc2Vjb25kIGluZGV4IHZhbHVlIGJldHdlZW4gMjAwIGFuZCA0MDAuCisgKi8KK3B1YmxpYyBjbGFzcyBJbnRBcnJheUV2YWx1YXRvciBpbXBsZW1lbnRzIFR5cGVFdmFsdWF0b3I8aW50W10+IHsKKworICAgIHByaXZhdGUgaW50W10gbUFycmF5OworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIEludEFycmF5RXZhbHVhdG9yIHRoYXQgZG9lcyBub3QgcmV1c2UgdGhlIGFuaW1hdGVkIHZhbHVlLiBDYXJlIG11c3QgYmUgdGFrZW4KKyAgICAgKiB3aGVuIHVzaW5nIHRoaXMgb3B0aW9uIGJlY2F1c2Ugb24gZXZlcnkgZXZhbHVhdGlvbiBhIG5ldyA8Y29kZT5pbnRbXTwvY29kZT4gd2lsbCBiZQorICAgICAqIGFsbG9jYXRlZC4KKyAgICAgKgorICAgICAqIEBzZWUgI0ludEFycmF5RXZhbHVhdG9yKGludFtdKQorICAgICAqLworICAgIHB1YmxpYyBJbnRBcnJheUV2YWx1YXRvcigpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gSW50QXJyYXlFdmFsdWF0b3IgdGhhdCByZXVzZXMgPGNvZGU+cmV1c2VBcnJheTwvY29kZT4gZm9yIGV2ZXJ5IGV2YWx1YXRlKCkgY2FsbC4KKyAgICAgKiBDYXV0aW9uIG11c3QgYmUgdGFrZW4gdG8gZW5zdXJlIHRoYXQgdGhlIHZhbHVlIHJldHVybmVkIGZyb20KKyAgICAgKiB7QGxpbmsgYW5kcm9pZC5hbmltYXRpb24uVmFsdWVBbmltYXRvciNnZXRBbmltYXRlZFZhbHVlKCl9IGlzIG5vdCBjYWNoZWQsIG1vZGlmaWVkLCBvcgorICAgICAqIHVzZWQgYWNyb3NzIHRocmVhZHMuIFRoZSB2YWx1ZSB3aWxsIGJlIG1vZGlmaWVkIG9uIGVhY2ggPGNvZGU+ZXZhbHVhdGUoKTwvY29kZT4gY2FsbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZXVzZUFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkgYW5kIHJldHVybiBmcm9tIDxjb2RlPmV2YWx1YXRlPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwdWJsaWMgSW50QXJyYXlFdmFsdWF0b3IoaW50W10gcmV1c2VBcnJheSkgeworICAgICAgICBtQXJyYXkgPSByZXVzZUFycmF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVycG9sYXRlcyB0aGUgdmFsdWUgYXQgZWFjaCBpbmRleCBieSB0aGUgZnJhY3Rpb24uIElmIHtAbGluayAjSW50QXJyYXlFdmFsdWF0b3IoaW50W10pfQorICAgICAqIHdhcyB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzIG9iamVjdCwgPGNvZGU+cmV1c2VBcnJheTwvY29kZT4gd2lsbCBiZSByZXR1cm5lZCwgb3RoZXJ3aXNlCisgICAgICogYSBuZXcgPGNvZGU+aW50W108L2NvZGU+IHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZnJhY3Rpb24gICBUaGUgZnJhY3Rpb24gZnJvbSB0aGUgc3RhcnRpbmcgdG8gdGhlIGVuZGluZyB2YWx1ZXMKKyAgICAgKiBAcGFyYW0gc3RhcnRWYWx1ZSBUaGUgc3RhcnQgdmFsdWUuCisgICAgICogQHBhcmFtIGVuZFZhbHVlICAgVGhlIGVuZCB2YWx1ZS4KKyAgICAgKiBAcmV0dXJuIEFuIDxjb2RlPmludFtdPC9jb2RlPiB3aGVyZSBlYWNoIGVsZW1lbnQgaXMgYW4gaW50ZXJwb2xhdGlvbiBiZXR3ZWVuCisgICAgICogICAgICAgICB0aGUgc2FtZSBpbmRleCBpbiBzdGFydFZhbHVlIGFuZCBlbmRWYWx1ZS4KKyAgICAgKi8KKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgaW50W10gZXZhbHVhdGUoZmxvYXQgZnJhY3Rpb24sIGludFtdIHN0YXJ0VmFsdWUsIGludFtdIGVuZFZhbHVlKSB7CisgICAgICAgIGludFtdIGFycmF5ID0gbUFycmF5OworICAgICAgICBpZiAoYXJyYXkgPT0gbnVsbCkgeworICAgICAgICAgICAgYXJyYXkgPSBuZXcgaW50W3N0YXJ0VmFsdWUubGVuZ3RoXTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBzdGFydFZhbHVlW2ldOworICAgICAgICAgICAgaW50IGVuZCA9IGVuZFZhbHVlW2ldOworICAgICAgICAgICAgYXJyYXlbaV0gPSAoaW50KSAoc3RhcnQgKyAoZnJhY3Rpb24gKiAoZW5kIC0gc3RhcnQpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9PYmplY3RBbmltYXRvci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvYW5pbWF0aW9uL09iamVjdEFuaW1hdG9yLmphdmEKaW5kZXggOWM4OGNjZi4uM2FkYmYwOCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvYW5pbWF0aW9uL09iamVjdEFuaW1hdG9yLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvYW5pbWF0aW9uL09iamVjdEFuaW1hdG9yLmphdmEKQEAgLTE5MSw3ICsxOTEsNyBAQAogCiAgICAgLyoqCiAgICAgICogQ29uc3RydWN0cyBhbmQgcmV0dXJucyBhbiBPYmplY3RBbmltYXRvciB0aGF0IGFuaW1hdGVzIGJldHdlZW4gaW50IHZhbHVlcy4gQSBzaW5nbGUKLSAgICAgKiB2YWx1ZSBpbXBsaWVzIHRoYXQgdGhhdCB2YWx1ZSBpcyB0aGUgb25lIGJlaW5nIGFuaW1hdGVkIHRvLiBUd28gdmFsdWVzIGltcGx5IGEgc3RhcnRpbmcKKyAgICAgKiB2YWx1ZSBpbXBsaWVzIHRoYXQgdGhhdCB2YWx1ZSBpcyB0aGUgb25lIGJlaW5nIGFuaW1hdGVkIHRvLiBUd28gdmFsdWVzIGltcGx5IHN0YXJ0aW5nCiAgICAgICogYW5kIGVuZGluZyB2YWx1ZXMuIE1vcmUgdGhhbiB0d28gdmFsdWVzIGltcGx5IGEgc3RhcnRpbmcgdmFsdWUsIHZhbHVlcyB0byBhbmltYXRlIHRocm91Z2gKICAgICAgKiBhbG9uZyB0aGUgd2F5LCBhbmQgYW4gZW5kaW5nIHZhbHVlICh0aGVzZSB2YWx1ZXMgd2lsbCBiZSBkaXN0cmlidXRlZCBldmVubHkgYWNyb3NzCiAgICAgICogdGhlIGR1cmF0aW9uIG9mIHRoZSBhbmltYXRpb24pLgpAQCAtMjExLDcgKzIxMSw3IEBACiAKICAgICAvKioKICAgICAgKiBDb25zdHJ1Y3RzIGFuZCByZXR1cm5zIGFuIE9iamVjdEFuaW1hdG9yIHRoYXQgYW5pbWF0ZXMgYmV0d2VlbiBpbnQgdmFsdWVzLiBBIHNpbmdsZQotICAgICAqIHZhbHVlIGltcGxpZXMgdGhhdCB0aGF0IHZhbHVlIGlzIHRoZSBvbmUgYmVpbmcgYW5pbWF0ZWQgdG8uIFR3byB2YWx1ZXMgaW1wbHkgYSBzdGFydGluZworICAgICAqIHZhbHVlIGltcGxpZXMgdGhhdCB0aGF0IHZhbHVlIGlzIHRoZSBvbmUgYmVpbmcgYW5pbWF0ZWQgdG8uIFR3byB2YWx1ZXMgaW1wbHkgc3RhcnRpbmcKICAgICAgKiBhbmQgZW5kaW5nIHZhbHVlcy4gTW9yZSB0aGFuIHR3byB2YWx1ZXMgaW1wbHkgYSBzdGFydGluZyB2YWx1ZSwgdmFsdWVzIHRvIGFuaW1hdGUgdGhyb3VnaAogICAgICAqIGFsb25nIHRoZSB3YXksIGFuZCBhbiBlbmRpbmcgdmFsdWUgKHRoZXNlIHZhbHVlcyB3aWxsIGJlIGRpc3RyaWJ1dGVkIGV2ZW5seSBhY3Jvc3MKICAgICAgKiB0aGUgZHVyYXRpb24gb2YgdGhlIGFuaW1hdGlvbikuCkBAIC0yMjgsOCArMjI4LDk0IEBACiAgICAgfQogCiAgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbmQgcmV0dXJucyBhbiBPYmplY3RBbmltYXRvciB0aGF0IGFuaW1hdGVzIG92ZXIgaW50IHZhbHVlcyBmb3IgYSBtdWx0aXBsZQorICAgICAqIHBhcmFtZXRlcnMgc2V0dGVyLiBPbmx5IHB1YmxpYyBtZXRob2RzIHRoYXQgdGFrZSBvbmx5IGludCBwYXJhbWV0ZXJzIGFyZSBzdXBwb3J0ZWQuCisgICAgICogRWFjaCA8Y29kZT5pbnRbXTwvY29kZT4gY29udGFpbnMgYSBjb21wbGV0ZSBzZXQgb2YgcGFyYW1ldGVycyB0byB0aGUgc2V0dGVyIG1ldGhvZC4KKyAgICAgKiBBdCBsZWFzdCB0d28gPGNvZGU+aW50W108L2NvZGU+IHZhbHVlcyBtdXN0IGJlIHByb3ZpZGVkLCBhIHN0YXJ0IGFuZCBlbmQuIE1vcmUgdGhhbiB0d28KKyAgICAgKiB2YWx1ZXMgaW1wbHkgYSBzdGFydGluZyB2YWx1ZSwgdmFsdWVzIHRvIGFuaW1hdGUgdGhyb3VnaCBhbG9uZyB0aGUgd2F5LCBhbmQgYW4gZW5kaW5nCisgICAgICogdmFsdWUgKHRoZXNlIHZhbHVlcyB3aWxsIGJlIGRpc3RyaWJ1dGVkIGV2ZW5seSBhY3Jvc3MgdGhlIGR1cmF0aW9uIG9mIHRoZSBhbmltYXRpb24pLgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCBUaGUgb2JqZWN0IHdob3NlIHByb3BlcnR5IGlzIHRvIGJlIGFuaW1hdGVkLiBUaGlzIG9iamVjdCBtYXkKKyAgICAgKiBoYXZlIGEgcHVibGljIG1ldGhvZCBvbiBpdCBjYWxsZWQgPGNvZGU+c2V0TmFtZSgpPC9jb2RlPiwgd2hlcmUgPGNvZGU+bmFtZTwvY29kZT4gaXMKKyAgICAgKiB0aGUgdmFsdWUgb2YgdGhlIDxjb2RlPnByb3BlcnR5TmFtZTwvY29kZT4gcGFyYW1ldGVyLiA8Y29kZT5wcm9wZXJ0eU5hbWU8L2NvZGU+IG1heSBhbHNvCisgICAgICogYmUgdGhlIGNhc2Utc2Vuc2l0aXZlIGNvbXBsZXRlIG5hbWUgb2YgdGhlIHB1YmxpYyBzZXR0ZXIgbWV0aG9kLgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGJlaW5nIGFuaW1hdGVkIG9yIHRoZSBuYW1lIG9mIHRoZSBzZXR0ZXIgbWV0aG9kLgorICAgICAqIEBwYXJhbSB2YWx1ZXMgQSBzZXQgb2YgdmFsdWVzIHRoYXQgdGhlIGFuaW1hdGlvbiB3aWxsIGFuaW1hdGUgYmV0d2VlbiBvdmVyIHRpbWUuCisgICAgICogQHJldHVybiBBbiBPYmplY3RBbmltYXRvciBvYmplY3QgdGhhdCBpcyBzZXQgdXAgdG8gYW5pbWF0ZSBiZXR3ZWVuIHRoZSBnaXZlbiB2YWx1ZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBPYmplY3RBbmltYXRvciBvZk11bHRpSW50KE9iamVjdCB0YXJnZXQsIFN0cmluZyBwcm9wZXJ0eU5hbWUsIGludFtdW10gdmFsdWVzKSB7CisgICAgICAgIFByb3BlcnR5VmFsdWVzSG9sZGVyIHB2aCA9IFByb3BlcnR5VmFsdWVzSG9sZGVyLm9mTXVsdGlJbnQocHJvcGVydHlOYW1lLCB2YWx1ZXMpOworICAgICAgICByZXR1cm4gb2ZQcm9wZXJ0eVZhbHVlc0hvbGRlcih0YXJnZXQsIHB2aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbmQgcmV0dXJucyBhbiBPYmplY3RBbmltYXRvciB0aGF0IGFuaW1hdGVzIG92ZXIgdmFsdWVzIGZvciBhIG11bHRpcGxlIGludAorICAgICAqIHBhcmFtZXRlcnMgc2V0dGVyLiBPbmx5IHB1YmxpYyBtZXRob2RzIHRoYXQgdGFrZSBvbmx5IGludCBwYXJhbWV0ZXJzIGFyZSBzdXBwb3J0ZWQuCisgICAgICogPHA+QXQgbGVhc3QgdHdvIHZhbHVlcyBtdXN0IGJlIHByb3ZpZGVkLCBhIHN0YXJ0IGFuZCBlbmQuIE1vcmUgdGhhbiB0d28KKyAgICAgKiB2YWx1ZXMgaW1wbHkgYSBzdGFydGluZyB2YWx1ZSwgdmFsdWVzIHRvIGFuaW1hdGUgdGhyb3VnaCBhbG9uZyB0aGUgd2F5LCBhbmQgYW4gZW5kaW5nCisgICAgICogdmFsdWUgKHRoZXNlIHZhbHVlcyB3aWxsIGJlIGRpc3RyaWJ1dGVkIGV2ZW5seSBhY3Jvc3MgdGhlIGR1cmF0aW9uIG9mIHRoZSBhbmltYXRpb24pLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIG9iamVjdCB3aG9zZSBwcm9wZXJ0eSBpcyB0byBiZSBhbmltYXRlZC4gVGhpcyBvYmplY3QgbWF5CisgICAgICogaGF2ZSBhIHB1YmxpYyBtZXRob2Qgb24gaXQgY2FsbGVkIDxjb2RlPnNldE5hbWUoKTwvY29kZT4sIHdoZXJlIDxjb2RlPm5hbWU8L2NvZGU+IGlzCisgICAgICogdGhlIHZhbHVlIG9mIHRoZSA8Y29kZT5wcm9wZXJ0eU5hbWU8L2NvZGU+IHBhcmFtZXRlci4gPGNvZGU+cHJvcGVydHlOYW1lPC9jb2RlPiBtYXkgYWxzbworICAgICAqIGJlIHRoZSBjb21wbGV0ZSBuYW1lIG9mIHRoZSBwdWJsaWMgbWV0aG9kLgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGJlaW5nIGFuaW1hdGVkIG9yIHRoZSBuYW1lIG9mIHRoZSBzZXR0ZXIgbWV0aG9kLgorICAgICAqIEBwYXJhbSBjb252ZXJ0ZXIgQ29udmVydHMgVCBvYmplY3RzIGludG8gaW50IHBhcmFtZXRlcnMgZm9yIHRoZSBtdWx0aS12YWx1ZSBzZXR0ZXIuCisgICAgICogQHBhcmFtIGV2YWx1YXRvciBBIFR5cGVFdmFsdWF0b3IgdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiBlYWNoIGFuaW1hdGlvbiBmcmFtZSB0bworICAgICAqIHByb3ZpZGUgdGhlIG5lY2Vzc2FyeSBpbnRlcnBvbGF0aW9uIGJldHdlZW4gdGhlIE9iamVjdCB2YWx1ZXMgdG8gZGVyaXZlIHRoZSBhbmltYXRlZAorICAgICAqIHZhbHVlLgorICAgICAqIEBwYXJhbSB2YWx1ZXMgQSBzZXQgb2YgdmFsdWVzIHRoYXQgdGhlIGFuaW1hdGlvbiB3aWxsIGFuaW1hdGUgYmV0d2VlbiBvdmVyIHRpbWUuCisgICAgICogQHJldHVybiBBbiBPYmplY3RBbmltYXRvciBvYmplY3QgdGhhdCBpcyBzZXQgdXAgdG8gYW5pbWF0ZSBiZXR3ZWVuIHRoZSBnaXZlbiB2YWx1ZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyA8VD4gT2JqZWN0QW5pbWF0b3Igb2ZNdWx0aUludChPYmplY3QgdGFyZ2V0LCBTdHJpbmcgcHJvcGVydHlOYW1lLAorICAgICAgICAgICAgVHlwZUNvbnZlcnRlcjxULCBpbnRbXT4gY29udmVydGVyLCBUeXBlRXZhbHVhdG9yPFQ+IGV2YWx1YXRvciwgVC4uLiB2YWx1ZXMpIHsKKyAgICAgICAgUHJvcGVydHlWYWx1ZXNIb2xkZXIgcHZoID0gUHJvcGVydHlWYWx1ZXNIb2xkZXIub2ZNdWx0aUludChwcm9wZXJ0eU5hbWUsIGNvbnZlcnRlciwKKyAgICAgICAgICAgICAgICBldmFsdWF0b3IsIHZhbHVlcyk7CisgICAgICAgIHJldHVybiBPYmplY3RBbmltYXRvci5vZlByb3BlcnR5VmFsdWVzSG9sZGVyKHRhcmdldCwgcHZoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuZCByZXR1cm5zIGFuIE9iamVjdEFuaW1hdG9yIHRoYXQgYW5pbWF0ZXMgYmV0d2VlbiBjb2xvciB2YWx1ZXMuIEEgc2luZ2xlCisgICAgICogdmFsdWUgaW1wbGllcyB0aGF0IHRoYXQgdmFsdWUgaXMgdGhlIG9uZSBiZWluZyBhbmltYXRlZCB0by4gVHdvIHZhbHVlcyBpbXBseSBzdGFydGluZworICAgICAqIGFuZCBlbmRpbmcgdmFsdWVzLiBNb3JlIHRoYW4gdHdvIHZhbHVlcyBpbXBseSBhIHN0YXJ0aW5nIHZhbHVlLCB2YWx1ZXMgdG8gYW5pbWF0ZSB0aHJvdWdoCisgICAgICogYWxvbmcgdGhlIHdheSwgYW5kIGFuIGVuZGluZyB2YWx1ZSAodGhlc2UgdmFsdWVzIHdpbGwgYmUgZGlzdHJpYnV0ZWQgZXZlbmx5IGFjcm9zcworICAgICAqIHRoZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0aW9uKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIG9iamVjdCB3aG9zZSBwcm9wZXJ0eSBpcyB0byBiZSBhbmltYXRlZC4gVGhpcyBvYmplY3Qgc2hvdWxkCisgICAgICogaGF2ZSBhIHB1YmxpYyBtZXRob2Qgb24gaXQgY2FsbGVkIDxjb2RlPnNldE5hbWUoKTwvY29kZT4sIHdoZXJlIDxjb2RlPm5hbWU8L2NvZGU+IGlzCisgICAgICogdGhlIHZhbHVlIG9mIHRoZSA8Y29kZT5wcm9wZXJ0eU5hbWU8L2NvZGU+IHBhcmFtZXRlci4KKyAgICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBiZWluZyBhbmltYXRlZC4KKyAgICAgKiBAcGFyYW0gdmFsdWVzIEEgc2V0IG9mIHZhbHVlcyB0aGF0IHRoZSBhbmltYXRpb24gd2lsbCBhbmltYXRlIGJldHdlZW4gb3ZlciB0aW1lLgorICAgICAqIEByZXR1cm4gQW4gT2JqZWN0QW5pbWF0b3Igb2JqZWN0IHRoYXQgaXMgc2V0IHVwIHRvIGFuaW1hdGUgYmV0d2VlbiB0aGUgZ2l2ZW4gdmFsdWVzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgT2JqZWN0QW5pbWF0b3Igb2ZBcmdiKE9iamVjdCB0YXJnZXQsIFN0cmluZyBwcm9wZXJ0eU5hbWUsIGludC4uLiB2YWx1ZXMpIHsKKyAgICAgICAgT2JqZWN0QW5pbWF0b3IgYW5pbWF0b3IgPSBvZkludCh0YXJnZXQsIHByb3BlcnR5TmFtZSwgdmFsdWVzKTsKKyAgICAgICAgYW5pbWF0b3Iuc2V0RXZhbHVhdG9yKEFyZ2JFdmFsdWF0b3IuZ2V0SW5zdGFuY2UoKSk7CisgICAgICAgIHJldHVybiBhbmltYXRvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuZCByZXR1cm5zIGFuIE9iamVjdEFuaW1hdG9yIHRoYXQgYW5pbWF0ZXMgYmV0d2VlbiBjb2xvciB2YWx1ZXMuIEEgc2luZ2xlCisgICAgICogdmFsdWUgaW1wbGllcyB0aGF0IHRoYXQgdmFsdWUgaXMgdGhlIG9uZSBiZWluZyBhbmltYXRlZCB0by4gVHdvIHZhbHVlcyBpbXBseSBzdGFydGluZworICAgICAqIGFuZCBlbmRpbmcgdmFsdWVzLiBNb3JlIHRoYW4gdHdvIHZhbHVlcyBpbXBseSBhIHN0YXJ0aW5nIHZhbHVlLCB2YWx1ZXMgdG8gYW5pbWF0ZSB0aHJvdWdoCisgICAgICogYWxvbmcgdGhlIHdheSwgYW5kIGFuIGVuZGluZyB2YWx1ZSAodGhlc2UgdmFsdWVzIHdpbGwgYmUgZGlzdHJpYnV0ZWQgZXZlbmx5IGFjcm9zcworICAgICAqIHRoZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0aW9uKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIG9iamVjdCB3aG9zZSBwcm9wZXJ0eSBpcyB0byBiZSBhbmltYXRlZC4KKyAgICAgKiBAcGFyYW0gcHJvcGVydHkgVGhlIHByb3BlcnR5IGJlaW5nIGFuaW1hdGVkLgorICAgICAqIEBwYXJhbSB2YWx1ZXMgQSBzZXQgb2YgdmFsdWVzIHRoYXQgdGhlIGFuaW1hdGlvbiB3aWxsIGFuaW1hdGUgYmV0d2VlbiBvdmVyIHRpbWUuCisgICAgICogQHJldHVybiBBbiBPYmplY3RBbmltYXRvciBvYmplY3QgdGhhdCBpcyBzZXQgdXAgdG8gYW5pbWF0ZSBiZXR3ZWVuIHRoZSBnaXZlbiB2YWx1ZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyA8VD4gT2JqZWN0QW5pbWF0b3Igb2ZBcmdiKFQgdGFyZ2V0LCBQcm9wZXJ0eTxULCBJbnRlZ2VyPiBwcm9wZXJ0eSwKKyAgICAgICAgICAgIGludC4uLiB2YWx1ZXMpIHsKKyAgICAgICAgT2JqZWN0QW5pbWF0b3IgYW5pbWF0b3IgPSBvZkludCh0YXJnZXQsIHByb3BlcnR5LCB2YWx1ZXMpOworICAgICAgICBhbmltYXRvci5zZXRFdmFsdWF0b3IoQXJnYkV2YWx1YXRvci5nZXRJbnN0YW5jZSgpKTsKKyAgICAgICAgcmV0dXJuIGFuaW1hdG9yOworICAgIH0KKworICAgIC8qKgogICAgICAqIENvbnN0cnVjdHMgYW5kIHJldHVybnMgYW4gT2JqZWN0QW5pbWF0b3IgdGhhdCBhbmltYXRlcyBiZXR3ZWVuIGZsb2F0IHZhbHVlcy4gQSBzaW5nbGUKLSAgICAgKiB2YWx1ZSBpbXBsaWVzIHRoYXQgdGhhdCB2YWx1ZSBpcyB0aGUgb25lIGJlaW5nIGFuaW1hdGVkIHRvLiBUd28gdmFsdWVzIGltcGx5IGEgc3RhcnRpbmcKKyAgICAgKiB2YWx1ZSBpbXBsaWVzIHRoYXQgdGhhdCB2YWx1ZSBpcyB0aGUgb25lIGJlaW5nIGFuaW1hdGVkIHRvLiBUd28gdmFsdWVzIGltcGx5IHN0YXJ0aW5nCiAgICAgICogYW5kIGVuZGluZyB2YWx1ZXMuIE1vcmUgdGhhbiB0d28gdmFsdWVzIGltcGx5IGEgc3RhcnRpbmcgdmFsdWUsIHZhbHVlcyB0byBhbmltYXRlIHRocm91Z2gKICAgICAgKiBhbG9uZyB0aGUgd2F5LCBhbmQgYW4gZW5kaW5nIHZhbHVlICh0aGVzZSB2YWx1ZXMgd2lsbCBiZSBkaXN0cmlidXRlZCBldmVubHkgYWNyb3NzCiAgICAgICogdGhlIGR1cmF0aW9uIG9mIHRoZSBhbmltYXRpb24pLgpAQCAtMjQ5LDcgKzMzNSw3IEBACiAKICAgICAvKioKICAgICAgKiBDb25zdHJ1Y3RzIGFuZCByZXR1cm5zIGFuIE9iamVjdEFuaW1hdG9yIHRoYXQgYW5pbWF0ZXMgYmV0d2VlbiBmbG9hdCB2YWx1ZXMuIEEgc2luZ2xlCi0gICAgICogdmFsdWUgaW1wbGllcyB0aGF0IHRoYXQgdmFsdWUgaXMgdGhlIG9uZSBiZWluZyBhbmltYXRlZCB0by4gVHdvIHZhbHVlcyBpbXBseSBhIHN0YXJ0aW5nCisgICAgICogdmFsdWUgaW1wbGllcyB0aGF0IHRoYXQgdmFsdWUgaXMgdGhlIG9uZSBiZWluZyBhbmltYXRlZCB0by4gVHdvIHZhbHVlcyBpbXBseSBzdGFydGluZwogICAgICAqIGFuZCBlbmRpbmcgdmFsdWVzLiBNb3JlIHRoYW4gdHdvIHZhbHVlcyBpbXBseSBhIHN0YXJ0aW5nIHZhbHVlLCB2YWx1ZXMgdG8gYW5pbWF0ZSB0aHJvdWdoCiAgICAgICogYWxvbmcgdGhlIHdheSwgYW5kIGFuIGVuZGluZyB2YWx1ZSAodGhlc2UgdmFsdWVzIHdpbGwgYmUgZGlzdHJpYnV0ZWQgZXZlbmx5IGFjcm9zcwogICAgICAqIHRoZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0aW9uKS4KQEAgLTI2Nyw4ICszNTMsNTYgQEAKICAgICB9CiAKICAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuZCByZXR1cm5zIGFuIE9iamVjdEFuaW1hdG9yIHRoYXQgYW5pbWF0ZXMgb3ZlciBmbG9hdCB2YWx1ZXMgZm9yIGEgbXVsdGlwbGUKKyAgICAgKiBwYXJhbWV0ZXJzIHNldHRlci4gT25seSBwdWJsaWMgbWV0aG9kcyB0aGF0IHRha2Ugb25seSBmbG9hdCBwYXJhbWV0ZXJzIGFyZSBzdXBwb3J0ZWQuCisgICAgICogRWFjaCA8Y29kZT5mbG9hdFtdPC9jb2RlPiBjb250YWlucyBhIGNvbXBsZXRlIHNldCBvZiBwYXJhbWV0ZXJzIHRvIHRoZSBzZXR0ZXIgbWV0aG9kLgorICAgICAqIEF0IGxlYXN0IHR3byA8Y29kZT5mbG9hdFtdPC9jb2RlPiB2YWx1ZXMgbXVzdCBiZSBwcm92aWRlZCwgYSBzdGFydCBhbmQgZW5kLiBNb3JlIHRoYW4gdHdvCisgICAgICogdmFsdWVzIGltcGx5IGEgc3RhcnRpbmcgdmFsdWUsIHZhbHVlcyB0byBhbmltYXRlIHRocm91Z2ggYWxvbmcgdGhlIHdheSwgYW5kIGFuIGVuZGluZworICAgICAqIHZhbHVlICh0aGVzZSB2YWx1ZXMgd2lsbCBiZSBkaXN0cmlidXRlZCBldmVubHkgYWNyb3NzIHRoZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0aW9uKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0YXJnZXQgVGhlIG9iamVjdCB3aG9zZSBwcm9wZXJ0eSBpcyB0byBiZSBhbmltYXRlZC4gVGhpcyBvYmplY3QgbWF5CisgICAgICogaGF2ZSBhIHB1YmxpYyBtZXRob2Qgb24gaXQgY2FsbGVkIDxjb2RlPnNldE5hbWUoKTwvY29kZT4sIHdoZXJlIDxjb2RlPm5hbWU8L2NvZGU+IGlzCisgICAgICogdGhlIHZhbHVlIG9mIHRoZSA8Y29kZT5wcm9wZXJ0eU5hbWU8L2NvZGU+IHBhcmFtZXRlci4gPGNvZGU+cHJvcGVydHlOYW1lPC9jb2RlPiBtYXkgYWxzbworICAgICAqIGJlIHRoZSBjb21wbGV0ZSBuYW1lIG9mIHRoZSBwdWJsaWMgbWV0aG9kLgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGJlaW5nIGFuaW1hdGVkIG9yIHRoZSBuYW1lIG9mIHRoZSBzZXR0ZXIgbWV0aG9kLgorICAgICAqIEBwYXJhbSB2YWx1ZXMgQSBzZXQgb2YgdmFsdWVzIHRoYXQgdGhlIGFuaW1hdGlvbiB3aWxsIGFuaW1hdGUgYmV0d2VlbiBvdmVyIHRpbWUuCisgICAgICogQHJldHVybiBBbiBPYmplY3RBbmltYXRvciBvYmplY3QgdGhhdCBpcyBzZXQgdXAgdG8gYW5pbWF0ZSBiZXR3ZWVuIHRoZSBnaXZlbiB2YWx1ZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBPYmplY3RBbmltYXRvciBvZk11bHRpRmxvYXQoT2JqZWN0IHRhcmdldCwgU3RyaW5nIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIGZsb2F0W11bXSB2YWx1ZXMpIHsKKyAgICAgICAgUHJvcGVydHlWYWx1ZXNIb2xkZXIgcHZoID0gUHJvcGVydHlWYWx1ZXNIb2xkZXIub2ZNdWx0aUZsb2F0KHByb3BlcnR5TmFtZSwgdmFsdWVzKTsKKyAgICAgICAgcmV0dXJuIG9mUHJvcGVydHlWYWx1ZXNIb2xkZXIodGFyZ2V0LCBwdmgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW5kIHJldHVybnMgYW4gT2JqZWN0QW5pbWF0b3IgdGhhdCBhbmltYXRlcyBvdmVyIHZhbHVlcyBmb3IgYSBtdWx0aXBsZSBmbG9hdAorICAgICAqIHBhcmFtZXRlcnMgc2V0dGVyLiBPbmx5IHB1YmxpYyBtZXRob2RzIHRoYXQgdGFrZSBvbmx5IGZsb2F0IHBhcmFtZXRlcnMgYXJlIHN1cHBvcnRlZC4KKyAgICAgKiA8cD5BdCBsZWFzdCB0d28gdmFsdWVzIG11c3QgYmUgcHJvdmlkZWQsIGEgc3RhcnQgYW5kIGVuZC4gTW9yZSB0aGFuIHR3bworICAgICAqIHZhbHVlcyBpbXBseSBhIHN0YXJ0aW5nIHZhbHVlLCB2YWx1ZXMgdG8gYW5pbWF0ZSB0aHJvdWdoIGFsb25nIHRoZSB3YXksIGFuZCBhbiBlbmRpbmcKKyAgICAgKiB2YWx1ZSAodGhlc2UgdmFsdWVzIHdpbGwgYmUgZGlzdHJpYnV0ZWQgZXZlbmx5IGFjcm9zcyB0aGUgZHVyYXRpb24gb2YgdGhlIGFuaW1hdGlvbikuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCBUaGUgb2JqZWN0IHdob3NlIHByb3BlcnR5IGlzIHRvIGJlIGFuaW1hdGVkLiBUaGlzIG9iamVjdCBtYXkKKyAgICAgKiBoYXZlIGEgcHVibGljIG1ldGhvZCBvbiBpdCBjYWxsZWQgPGNvZGU+c2V0TmFtZSgpPC9jb2RlPiwgd2hlcmUgPGNvZGU+bmFtZTwvY29kZT4gaXMKKyAgICAgKiB0aGUgdmFsdWUgb2YgdGhlIDxjb2RlPnByb3BlcnR5TmFtZTwvY29kZT4gcGFyYW1ldGVyLiA8Y29kZT5wcm9wZXJ0eU5hbWU8L2NvZGU+IG1heSBhbHNvCisgICAgICogYmUgdGhlIGNhc2Utc2Vuc2l0aXZlIGNvbXBsZXRlIG5hbWUgb2YgdGhlIHB1YmxpYyBzZXR0ZXIgbWV0aG9kLgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGJlaW5nIGFuaW1hdGVkIG9yIHRoZSBuYW1lIG9mIHRoZSBzZXR0ZXIgbWV0aG9kLgorICAgICAqIEBwYXJhbSBjb252ZXJ0ZXIgQ29udmVydHMgVCBvYmplY3RzIGludG8gZmxvYXQgcGFyYW1ldGVycyBmb3IgdGhlIG11bHRpLXZhbHVlIHNldHRlci4KKyAgICAgKiBAcGFyYW0gZXZhbHVhdG9yIEEgVHlwZUV2YWx1YXRvciB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uIGVhY2ggYW5pbWF0aW9uIGZyYW1lIHRvCisgICAgICogcHJvdmlkZSB0aGUgbmVjZXNzYXJ5IGludGVycG9sYXRpb24gYmV0d2VlbiB0aGUgT2JqZWN0IHZhbHVlcyB0byBkZXJpdmUgdGhlIGFuaW1hdGVkCisgICAgICogdmFsdWUuCisgICAgICogQHBhcmFtIHZhbHVlcyBBIHNldCBvZiB2YWx1ZXMgdGhhdCB0aGUgYW5pbWF0aW9uIHdpbGwgYW5pbWF0ZSBiZXR3ZWVuIG92ZXIgdGltZS4KKyAgICAgKiBAcmV0dXJuIEFuIE9iamVjdEFuaW1hdG9yIG9iamVjdCB0aGF0IGlzIHNldCB1cCB0byBhbmltYXRlIGJldHdlZW4gdGhlIGdpdmVuIHZhbHVlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIDxUPiBPYmplY3RBbmltYXRvciBvZk11bHRpRmxvYXQoT2JqZWN0IHRhcmdldCwgU3RyaW5nIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIFR5cGVDb252ZXJ0ZXI8VCwgZmxvYXRbXT4gY29udmVydGVyLCBUeXBlRXZhbHVhdG9yPFQ+IGV2YWx1YXRvciwgVC4uLiB2YWx1ZXMpIHsKKyAgICAgICAgUHJvcGVydHlWYWx1ZXNIb2xkZXIgcHZoID0gUHJvcGVydHlWYWx1ZXNIb2xkZXIub2ZNdWx0aUZsb2F0KHByb3BlcnR5TmFtZSwgY29udmVydGVyLAorICAgICAgICAgICAgICAgIGV2YWx1YXRvciwgdmFsdWVzKTsKKyAgICAgICAgcmV0dXJuIE9iamVjdEFuaW1hdG9yLm9mUHJvcGVydHlWYWx1ZXNIb2xkZXIodGFyZ2V0LCBwdmgpOworICAgIH0KKworICAgIC8qKgogICAgICAqIENvbnN0cnVjdHMgYW5kIHJldHVybnMgYW4gT2JqZWN0QW5pbWF0b3IgdGhhdCBhbmltYXRlcyBiZXR3ZWVuIE9iamVjdCB2YWx1ZXMuIEEgc2luZ2xlCi0gICAgICogdmFsdWUgaW1wbGllcyB0aGF0IHRoYXQgdmFsdWUgaXMgdGhlIG9uZSBiZWluZyBhbmltYXRlZCB0by4gVHdvIHZhbHVlcyBpbXBseSBhIHN0YXJ0aW5nCisgICAgICogdmFsdWUgaW1wbGllcyB0aGF0IHRoYXQgdmFsdWUgaXMgdGhlIG9uZSBiZWluZyBhbmltYXRlZCB0by4gVHdvIHZhbHVlcyBpbXBseSBzdGFydGluZwogICAgICAqIGFuZCBlbmRpbmcgdmFsdWVzLiBNb3JlIHRoYW4gdHdvIHZhbHVlcyBpbXBseSBhIHN0YXJ0aW5nIHZhbHVlLCB2YWx1ZXMgdG8gYW5pbWF0ZSB0aHJvdWdoCiAgICAgICogYWxvbmcgdGhlIHdheSwgYW5kIGFuIGVuZGluZyB2YWx1ZSAodGhlc2UgdmFsdWVzIHdpbGwgYmUgZGlzdHJpYnV0ZWQgZXZlbmx5IGFjcm9zcwogICAgICAqIHRoZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0aW9uKS4KQEAgLTI5Myw3ICs0MjcsNyBAQAogCiAgICAgLyoqCiAgICAgICogQ29uc3RydWN0cyBhbmQgcmV0dXJucyBhbiBPYmplY3RBbmltYXRvciB0aGF0IGFuaW1hdGVzIGJldHdlZW4gT2JqZWN0IHZhbHVlcy4gQSBzaW5nbGUKLSAgICAgKiB2YWx1ZSBpbXBsaWVzIHRoYXQgdGhhdCB2YWx1ZSBpcyB0aGUgb25lIGJlaW5nIGFuaW1hdGVkIHRvLiBUd28gdmFsdWVzIGltcGx5IGEgc3RhcnRpbmcKKyAgICAgKiB2YWx1ZSBpbXBsaWVzIHRoYXQgdGhhdCB2YWx1ZSBpcyB0aGUgb25lIGJlaW5nIGFuaW1hdGVkIHRvLiBUd28gdmFsdWVzIGltcGx5IHN0YXJ0aW5nCiAgICAgICogYW5kIGVuZGluZyB2YWx1ZXMuIE1vcmUgdGhhbiB0d28gdmFsdWVzIGltcGx5IGEgc3RhcnRpbmcgdmFsdWUsIHZhbHVlcyB0byBhbmltYXRlIHRocm91Z2gKICAgICAgKiBhbG9uZyB0aGUgd2F5LCBhbmQgYW4gZW5kaW5nIHZhbHVlICh0aGVzZSB2YWx1ZXMgd2lsbCBiZSBkaXN0cmlidXRlZCBldmVubHkgYWNyb3NzCiAgICAgICogdGhlIGR1cmF0aW9uIG9mIHRoZSBhbmltYXRpb24pLgpAQCAtMzE1LDYgKzQ0OSwzMiBAQAogICAgIH0KIAogICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW5kIHJldHVybnMgYW4gT2JqZWN0QW5pbWF0b3IgdGhhdCBhbmltYXRlcyBiZXR3ZWVuIE9iamVjdCB2YWx1ZXMuIEEgc2luZ2xlCisgICAgICogdmFsdWUgaW1wbGllcyB0aGF0IHRoYXQgdmFsdWUgaXMgdGhlIG9uZSBiZWluZyBhbmltYXRlZCB0by4gVHdvIHZhbHVlcyBpbXBseSBzdGFydGluZworICAgICAqIGFuZCBlbmRpbmcgdmFsdWVzLiBNb3JlIHRoYW4gdHdvIHZhbHVlcyBpbXBseSBhIHN0YXJ0aW5nIHZhbHVlLCB2YWx1ZXMgdG8gYW5pbWF0ZSB0aHJvdWdoCisgICAgICogYWxvbmcgdGhlIHdheSwgYW5kIGFuIGVuZGluZyB2YWx1ZSAodGhlc2UgdmFsdWVzIHdpbGwgYmUgZGlzdHJpYnV0ZWQgZXZlbmx5IGFjcm9zcworICAgICAqIHRoZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0aW9uKS4gVGhpcyB2YXJpYW50IHN1cHBsaWVzIGEgPGNvZGU+VHlwZUNvbnZlcnRlcjwvY29kZT4gdG8KKyAgICAgKiBjb252ZXJ0IGZyb20gdGhlIGFuaW1hdGVkIHZhbHVlcyB0byB0aGUgdHlwZSBvZiB0aGUgcHJvcGVydHkuIElmIG9ubHkgb25lIHZhbHVlIGlzCisgICAgICogc3VwcGxpZWQsIHRoZSA8Y29kZT5UeXBlQ29udmVydGVyPC9jb2RlPiBtdXN0IGltcGxlbWVudAorICAgICAqIHtAbGluayBUeXBlQ29udmVydGVyI2NvbnZlcnRCYWNrKE9iamVjdCl9IHRvIHJldHJpZXZlIHRoZSBjdXJyZW50IHZhbHVlLgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCBUaGUgb2JqZWN0IHdob3NlIHByb3BlcnR5IGlzIHRvIGJlIGFuaW1hdGVkLgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSBUaGUgcHJvcGVydHkgYmVpbmcgYW5pbWF0ZWQuCisgICAgICogQHBhcmFtIGNvbnZlcnRlciBDb252ZXJ0cyB0aGUgYW5pbWF0ZWQgb2JqZWN0IHRvIHRoZSBQcm9wZXJ0eSB0eXBlLgorICAgICAqIEBwYXJhbSBldmFsdWF0b3IgQSBUeXBlRXZhbHVhdG9yIHRoYXQgd2lsbCBiZSBjYWxsZWQgb24gZWFjaCBhbmltYXRpb24gZnJhbWUgdG8KKyAgICAgKiBwcm92aWRlIHRoZSBuZWNlc3NhcnkgaW50ZXJwb2xhdGlvbiBiZXR3ZWVuIHRoZSBPYmplY3QgdmFsdWVzIHRvIGRlcml2ZSB0aGUgYW5pbWF0ZWQKKyAgICAgKiB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gdmFsdWVzIEEgc2V0IG9mIHZhbHVlcyB0aGF0IHRoZSBhbmltYXRpb24gd2lsbCBhbmltYXRlIGJldHdlZW4gb3ZlciB0aW1lLgorICAgICAqIEByZXR1cm4gQW4gT2JqZWN0QW5pbWF0b3Igb2JqZWN0IHRoYXQgaXMgc2V0IHVwIHRvIGFuaW1hdGUgYmV0d2VlbiB0aGUgZ2l2ZW4gdmFsdWVzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgPFQsIFYsIFA+IE9iamVjdEFuaW1hdG9yIG9mT2JqZWN0KFQgdGFyZ2V0LCBQcm9wZXJ0eTxULCBQPiBwcm9wZXJ0eSwKKyAgICAgICAgICAgIFR5cGVDb252ZXJ0ZXI8ViwgUD4gY29udmVydGVyLCBUeXBlRXZhbHVhdG9yPFY+IGV2YWx1YXRvciwgVi4uLiB2YWx1ZXMpIHsKKyAgICAgICAgUHJvcGVydHlWYWx1ZXNIb2xkZXIgcHZoID0gUHJvcGVydHlWYWx1ZXNIb2xkZXIub2ZPYmplY3QocHJvcGVydHksIGNvbnZlcnRlciwgZXZhbHVhdG9yLAorICAgICAgICAgICAgICAgIHZhbHVlcyk7CisgICAgICAgIHJldHVybiBvZlByb3BlcnR5VmFsdWVzSG9sZGVyKHRhcmdldCwgcHZoKTsKKyAgICB9CisKKyAgICAvKioKICAgICAgKiBDb25zdHJ1Y3RzIGFuZCByZXR1cm5zIGFuIE9iamVjdEFuaW1hdG9yIHRoYXQgYW5pbWF0ZXMgYmV0d2VlbiB0aGUgc2V0cyBvZiB2YWx1ZXMgc3BlY2lmaWVkCiAgICAgICogaW4gPGNvZGU+UHJvcGVydHlWYWx1ZUhvbGRlcjwvY29kZT4gb2JqZWN0cy4gVGhpcyB2YXJpYW50IHNob3VsZCBiZSB1c2VkIHdoZW4gYW5pbWF0aW5nCiAgICAgICogc2V2ZXJhbCBwcm9wZXJ0aWVzIGF0IG9uY2Ugd2l0aCB0aGUgc2FtZSBPYmplY3RBbmltYXRvciwgc2luY2UgUHJvcGVydHlWYWx1ZXNIb2xkZXIgYWxsb3dzCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9hbmltYXRpb24vUHJvcGVydHlWYWx1ZXNIb2xkZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9Qcm9wZXJ0eVZhbHVlc0hvbGRlci5qYXZhCmluZGV4IDQzMDE0YWQuLmMyOTE5NzAgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9Qcm9wZXJ0eVZhbHVlc0hvbGRlci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9Qcm9wZXJ0eVZhbHVlc0hvbGRlci5qYXZhCkBAIC0xMjQsNiArMTI0LDExIEBACiAgICAgcHJpdmF0ZSBPYmplY3QgbUFuaW1hdGVkVmFsdWU7CiAKICAgICAvKioKKyAgICAgKiBDb252ZXJ0cyBmcm9tIHRoZSBzb3VyY2UgT2JqZWN0IHR5cGUgdG8gdGhlIHNldHRlciBPYmplY3QgdHlwZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFR5cGVDb252ZXJ0ZXIgbUNvbnZlcnRlcjsKKworICAgIC8qKgogICAgICAqIEludGVybmFsIHV0aWxpdHkgY29uc3RydWN0b3IsIHVzZWQgYnkgdGhlIGZhY3RvcnkgbWV0aG9kcyB0byBzZXQgdGhlIHByb3BlcnR5IG5hbWUuCiAgICAgICogQHBhcmFtIHByb3BlcnR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgZm9yIHRoaXMgaG9sZGVyLgogICAgICAqLwpAQCAtMTY2LDYgKzE3MSw4NCBAQAogCiAgICAgLyoqCiAgICAgICogQ29uc3RydWN0cyBhbmQgcmV0dXJucyBhIFByb3BlcnR5VmFsdWVzSG9sZGVyIHdpdGggYSBnaXZlbiBwcm9wZXJ0eSBuYW1lIGFuZAorICAgICAqIHNldCBvZiA8Y29kZT5pbnRbXTwvY29kZT4gdmFsdWVzLiBBdCBsZWFzdCB0d28gPGNvZGU+aW50W108L2NvZGU+IHZhbHVlcyBtdXN0IGJlIHN1cHBsaWVkLAorICAgICAqIGEgc3RhcnQgYW5kIGVuZCB2YWx1ZS4gSWYgbW9yZSB2YWx1ZXMgYXJlIHN1cHBsaWVkLCB0aGUgdmFsdWVzIHdpbGwgYmUgYW5pbWF0ZWQgZnJvbSB0aGUKKyAgICAgKiBzdGFydCwgdGhyb3VnaCBhbGwgaW50ZXJtZWRpYXRlIHZhbHVlcyB0byB0aGUgZW5kIHZhbHVlLiBXaGVuIHVzZWQgd2l0aCBPYmplY3RBbmltYXRvciwKKyAgICAgKiB0aGUgZWxlbWVudHMgb2YgdGhlIGFycmF5IHJlcHJlc2VudCB0aGUgcGFyYW1ldGVycyBvZiB0aGUgc2V0dGVyIGZ1bmN0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgYmVpbmcgYW5pbWF0ZWQuIENhbiBhbHNvIGJlIHRoZSBuYW1lIG9mIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgZW50aXJlIHNldHRlciBtZXRob2QuIFNob3VsZCBub3QgYmUgbnVsbC4KKyAgICAgKiBAcGFyYW0gdmFsdWVzIFRoZSB2YWx1ZXMgdGhhdCB0aGUgcHJvcGVydHkgd2lsbCBhbmltYXRlIGJldHdlZW4uCisgICAgICogQHJldHVybiBQcm9wZXJ0eVZhbHVlc0hvbGRlciBUaGUgY29uc3RydWN0ZWQgUHJvcGVydHlWYWx1ZXNIb2xkZXIgb2JqZWN0LgorICAgICAqIEBzZWUgSW50QXJyYXlFdmFsdWF0b3IjSW50QXJyYXlFdmFsdWF0b3IoaW50W10pCisgICAgICogQHNlZSBPYmplY3RBbmltYXRvciNvZk11bHRpSW50KE9iamVjdCwgU3RyaW5nLCBUeXBlQ29udmVydGVyLCBUeXBlRXZhbHVhdG9yLCBPYmplY3RbXSkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFByb3BlcnR5VmFsdWVzSG9sZGVyIG9mTXVsdGlJbnQoU3RyaW5nIHByb3BlcnR5TmFtZSwgaW50W11bXSB2YWx1ZXMpIHsKKyAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPCAyKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJBdCBsZWFzdCAyIHZhbHVlcyBtdXN0IGJlIHN1cHBsaWVkIik7CisgICAgICAgIH0KKyAgICAgICAgaW50IG51bVBhcmFtZXRlcnMgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKHZhbHVlc1tpXSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidmFsdWVzIG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBsZW5ndGggPSB2YWx1ZXNbaV0ubGVuZ3RoOworICAgICAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICAgIG51bVBhcmFtZXRlcnMgPSBsZW5ndGg7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGxlbmd0aCAhPSBudW1QYXJhbWV0ZXJzKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVmFsdWVzIG11c3QgYWxsIGhhdmUgdGhlIHNhbWUgbGVuZ3RoIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgSW50QXJyYXlFdmFsdWF0b3IgZXZhbHVhdG9yID0gbmV3IEludEFycmF5RXZhbHVhdG9yKG5ldyBpbnRbbnVtUGFyYW1ldGVyc10pOworICAgICAgICByZXR1cm4gbmV3IE11bHRpSW50VmFsdWVzSG9sZGVyKHByb3BlcnR5TmFtZSwgbnVsbCwgZXZhbHVhdG9yLCAoT2JqZWN0W10pIHZhbHVlcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbmQgcmV0dXJucyBhIFByb3BlcnR5VmFsdWVzSG9sZGVyIHdpdGggYSBnaXZlbiBwcm9wZXJ0eSBhbmQKKyAgICAgKiBzZXQgb2YgT2JqZWN0IHZhbHVlcyBmb3IgdXNlIHdpdGggT2JqZWN0QW5pbWF0b3IgbXVsdGktdmFsdWUgc2V0dGVycy4gVGhlIE9iamVjdAorICAgICAqIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIDxjb2RlPmludFtdPC9jb2RlPiB1c2luZyB0aGUgY29udmVydGVyLgorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5TmFtZSBUaGUgcHJvcGVydHkgYmVpbmcgYW5pbWF0ZWQgb3IgY29tcGxldGUgbmFtZSBvZiB0aGUgc2V0dGVyLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgU2hvdWxkIG5vdCBiZSBudWxsLgorICAgICAqIEBwYXJhbSBjb252ZXJ0ZXIgVXNlZCB0byBjb252ZXJ0IHRoZSBhbmltYXRlZCB2YWx1ZSB0byBzZXR0ZXIgcGFyYW1ldGVycy4KKyAgICAgKiBAcGFyYW0gZXZhbHVhdG9yIEEgVHlwZUV2YWx1YXRvciB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uIGVhY2ggYW5pbWF0aW9uIGZyYW1lIHRvCisgICAgICogcHJvdmlkZSB0aGUgbmVjZXNzYXJ5IGludGVycG9sYXRpb24gYmV0d2VlbiB0aGUgT2JqZWN0IHZhbHVlcyB0byBkZXJpdmUgdGhlIGFuaW1hdGVkCisgICAgICogdmFsdWUuCisgICAgICogQHBhcmFtIHZhbHVlcyBUaGUgdmFsdWVzIHRoYXQgdGhlIHByb3BlcnR5IHdpbGwgYW5pbWF0ZSBiZXR3ZWVuLgorICAgICAqIEByZXR1cm4gUHJvcGVydHlWYWx1ZXNIb2xkZXIgVGhlIGNvbnN0cnVjdGVkIFByb3BlcnR5VmFsdWVzSG9sZGVyIG9iamVjdC4KKyAgICAgKiBAc2VlIE9iamVjdEFuaW1hdG9yI29mTXVsdGlJbnQoT2JqZWN0LCBTdHJpbmcsIFR5cGVDb252ZXJ0ZXIsIFR5cGVFdmFsdWF0b3IsIE9iamVjdFtdKQorICAgICAqIEBzZWUgT2JqZWN0QW5pbWF0b3Ijb2ZQcm9wZXJ0eVZhbHVlc0hvbGRlcihPYmplY3QsIFByb3BlcnR5VmFsdWVzSG9sZGVyLi4uKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgPFY+IFByb3BlcnR5VmFsdWVzSG9sZGVyIG9mTXVsdGlJbnQoU3RyaW5nIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIFR5cGVDb252ZXJ0ZXI8ViwgaW50W10+IGNvbnZlcnRlciwgVHlwZUV2YWx1YXRvcjxWPiBldmFsdWF0b3IsIFYuLi4gdmFsdWVzKSB7CisgICAgICAgIHJldHVybiBuZXcgTXVsdGlJbnRWYWx1ZXNIb2xkZXIocHJvcGVydHlOYW1lLCBjb252ZXJ0ZXIsIGV2YWx1YXRvciwgdmFsdWVzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuZCByZXR1cm5zIGEgUHJvcGVydHlWYWx1ZXNIb2xkZXIgb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBuYW1lIG9yCisgICAgICogc2V0dGVyIG5hbWUgZm9yIHVzZSBpbiBhIG11bHRpLWludCBzZXR0ZXIgZnVuY3Rpb24gdXNpbmcgT2JqZWN0QW5pbWF0b3IuIFRoZSB2YWx1ZXMgY2FuIGJlCisgICAgICogb2YgYW55IHR5cGUsIGJ1dCB0aGUgdHlwZSBzaG91bGQgYmUgY29uc2lzdGVudCBzbyB0aGF0IHRoZSBzdXBwbGllZAorICAgICAqIHtAbGluayBhbmRyb2lkLmFuaW1hdGlvbi5UeXBlRXZhbHVhdG9yfSBjYW4gYmUgdXNlZCB0byB0byBldmFsdWF0ZSB0aGUgYW5pbWF0ZWQgdmFsdWUuIFRoZQorICAgICAqIDxjb2RlPmNvbnZlcnRlcjwvY29kZT4gY29udmVydHMgdGhlIHZhbHVlcyB0byBwYXJhbWV0ZXJzIGluIHRoZSBzZXR0ZXIgZnVuY3Rpb24uCisgICAgICoKKyAgICAgKiA8cD5BdCBsZWFzdCB0d28gdmFsdWVzIG11c3QgYmUgc3VwcGxpZWQsIGEgc3RhcnQgYW5kIGFuIGVuZCB2YWx1ZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgc2V0IG9mIHZhbHVlcy4gVGhpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgbWF5IGFsc28gYmUgdGhlIGNvbXBsZXRlIG5hbWUgb2YgYSBzZXR0ZXIgZnVuY3Rpb24uCisgICAgICogQHBhcmFtIGNvbnZlcnRlciAgICBDb252ZXJ0cyA8Y29kZT52YWx1ZXM8L2NvZGU+IGludG8gaW50IHBhcmFtZXRlcnMgZm9yIHRoZSBzZXR0ZXIuCisgICAgICogICAgICAgICAgICAgICAgICAgICBDYW4gYmUgbnVsbCBpZiB0aGUgS2V5ZnJhbWVzIGhhdmUgaW50W10gdmFsdWVzLgorICAgICAqIEBwYXJhbSBldmFsdWF0b3IgICAgVXNlZCB0byBpbnRlcnBvbGF0ZSBiZXR3ZWVuIHZhbHVlcy4KKyAgICAgKiBAcGFyYW0gdmFsdWVzICAgICAgIFRoZSB2YWx1ZXMgYXQgc3BlY2lmaWMgZnJhY3Rpb25hbCB0aW1lcyB0byBldmFsdWF0ZSBiZXR3ZWVuCisgICAgICogQHJldHVybiBBIFByb3BlcnR5VmFsdWVzSG9sZGVyIGZvciBhIG11bHRpLWludCBwYXJhbWV0ZXIgc2V0dGVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IFByb3BlcnR5VmFsdWVzSG9sZGVyIG9mTXVsdGlJbnQoU3RyaW5nIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIFR5cGVDb252ZXJ0ZXI8VCwgaW50W10+IGNvbnZlcnRlciwgVHlwZUV2YWx1YXRvcjxUPiBldmFsdWF0b3IsIEtleWZyYW1lLi4uIHZhbHVlcykgeworICAgICAgICBLZXlmcmFtZVNldCBrZXlmcmFtZVNldCA9IEtleWZyYW1lU2V0Lm9mS2V5ZnJhbWUodmFsdWVzKTsKKyAgICAgICAgcmV0dXJuIG5ldyBNdWx0aUludFZhbHVlc0hvbGRlcihwcm9wZXJ0eU5hbWUsIGNvbnZlcnRlciwgZXZhbHVhdG9yLCBrZXlmcmFtZVNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbmQgcmV0dXJucyBhIFByb3BlcnR5VmFsdWVzSG9sZGVyIHdpdGggYSBnaXZlbiBwcm9wZXJ0eSBuYW1lIGFuZAogICAgICAqIHNldCBvZiBmbG9hdCB2YWx1ZXMuCiAgICAgICogQHBhcmFtIHByb3BlcnR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgYmVpbmcgYW5pbWF0ZWQuCiAgICAgICogQHBhcmFtIHZhbHVlcyBUaGUgdmFsdWVzIHRoYXQgdGhlIG5hbWVkIHByb3BlcnR5IHdpbGwgYW5pbWF0ZSBiZXR3ZWVuLgpAQCAtMTg4LDYgKzI3MSw4MyBAQAogCiAgICAgLyoqCiAgICAgICogQ29uc3RydWN0cyBhbmQgcmV0dXJucyBhIFByb3BlcnR5VmFsdWVzSG9sZGVyIHdpdGggYSBnaXZlbiBwcm9wZXJ0eSBuYW1lIGFuZAorICAgICAqIHNldCBvZiA8Y29kZT5mbG9hdFtdPC9jb2RlPiB2YWx1ZXMuIEF0IGxlYXN0IHR3byA8Y29kZT5mbG9hdFtdPC9jb2RlPiB2YWx1ZXMgbXVzdCBiZSBzdXBwbGllZCwKKyAgICAgKiBhIHN0YXJ0IGFuZCBlbmQgdmFsdWUuIElmIG1vcmUgdmFsdWVzIGFyZSBzdXBwbGllZCwgdGhlIHZhbHVlcyB3aWxsIGJlIGFuaW1hdGVkIGZyb20gdGhlCisgICAgICogc3RhcnQsIHRocm91Z2ggYWxsIGludGVybWVkaWF0ZSB2YWx1ZXMgdG8gdGhlIGVuZCB2YWx1ZS4gV2hlbiB1c2VkIHdpdGggT2JqZWN0QW5pbWF0b3IsCisgICAgICogdGhlIGVsZW1lbnRzIG9mIHRoZSBhcnJheSByZXByZXNlbnQgdGhlIHBhcmFtZXRlcnMgb2YgdGhlIHNldHRlciBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGJlaW5nIGFuaW1hdGVkLiBDYW4gYWxzbyBiZSB0aGUgbmFtZSBvZiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGVudGlyZSBzZXR0ZXIgbWV0aG9kLiBTaG91bGQgbm90IGJlIG51bGwuCisgICAgICogQHBhcmFtIHZhbHVlcyBUaGUgdmFsdWVzIHRoYXQgdGhlIHByb3BlcnR5IHdpbGwgYW5pbWF0ZSBiZXR3ZWVuLgorICAgICAqIEByZXR1cm4gUHJvcGVydHlWYWx1ZXNIb2xkZXIgVGhlIGNvbnN0cnVjdGVkIFByb3BlcnR5VmFsdWVzSG9sZGVyIG9iamVjdC4KKyAgICAgKiBAc2VlIEZsb2F0QXJyYXlFdmFsdWF0b3IjRmxvYXRBcnJheUV2YWx1YXRvcihmbG9hdFtdKQorICAgICAqIEBzZWUgT2JqZWN0QW5pbWF0b3Ijb2ZNdWx0aUZsb2F0KE9iamVjdCwgU3RyaW5nLCBUeXBlQ29udmVydGVyLCBUeXBlRXZhbHVhdG9yLCBPYmplY3RbXSkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFByb3BlcnR5VmFsdWVzSG9sZGVyIG9mTXVsdGlGbG9hdChTdHJpbmcgcHJvcGVydHlOYW1lLCBmbG9hdFtdW10gdmFsdWVzKSB7CisgICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoIDwgMikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQXQgbGVhc3QgMiB2YWx1ZXMgbXVzdCBiZSBzdXBwbGllZCIpOworICAgICAgICB9CisgICAgICAgIGludCBudW1QYXJhbWV0ZXJzID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZXNbaV0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInZhbHVlcyBtdXN0IG5vdCBiZSBudWxsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gdmFsdWVzW2ldLmxlbmd0aDsKKyAgICAgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgICAgICBudW1QYXJhbWV0ZXJzID0gbGVuZ3RoOworICAgICAgICAgICAgfSBlbHNlIGlmIChsZW5ndGggIT0gbnVtUGFyYW1ldGVycykgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlZhbHVlcyBtdXN0IGFsbCBoYXZlIHRoZSBzYW1lIGxlbmd0aCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEZsb2F0QXJyYXlFdmFsdWF0b3IgZXZhbHVhdG9yID0gbmV3IEZsb2F0QXJyYXlFdmFsdWF0b3IobmV3IGZsb2F0W251bVBhcmFtZXRlcnNdKTsKKyAgICAgICAgcmV0dXJuIG5ldyBNdWx0aUZsb2F0VmFsdWVzSG9sZGVyKHByb3BlcnR5TmFtZSwgbnVsbCwgZXZhbHVhdG9yLCAoT2JqZWN0W10pIHZhbHVlcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbmQgcmV0dXJucyBhIFByb3BlcnR5VmFsdWVzSG9sZGVyIHdpdGggYSBnaXZlbiBwcm9wZXJ0eSBhbmQKKyAgICAgKiBzZXQgb2YgT2JqZWN0IHZhbHVlcyBmb3IgdXNlIHdpdGggT2JqZWN0QW5pbWF0b3IgbXVsdGktdmFsdWUgc2V0dGVycy4gVGhlIE9iamVjdAorICAgICAqIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIDxjb2RlPmZsb2F0W108L2NvZGU+IHVzaW5nIHRoZSBjb252ZXJ0ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIFRoZSBwcm9wZXJ0eSBiZWluZyBhbmltYXRlZCBvciBjb21wbGV0ZSBuYW1lIG9mIHRoZSBzZXR0ZXIuCisgICAgICogICAgICAgICAgICAgICAgICAgICBTaG91bGQgbm90IGJlIG51bGwuCisgICAgICogQHBhcmFtIGNvbnZlcnRlciBVc2VkIHRvIGNvbnZlcnQgdGhlIGFuaW1hdGVkIHZhbHVlIHRvIHNldHRlciBwYXJhbWV0ZXJzLgorICAgICAqIEBwYXJhbSBldmFsdWF0b3IgQSBUeXBlRXZhbHVhdG9yIHRoYXQgd2lsbCBiZSBjYWxsZWQgb24gZWFjaCBhbmltYXRpb24gZnJhbWUgdG8KKyAgICAgKiBwcm92aWRlIHRoZSBuZWNlc3NhcnkgaW50ZXJwb2xhdGlvbiBiZXR3ZWVuIHRoZSBPYmplY3QgdmFsdWVzIHRvIGRlcml2ZSB0aGUgYW5pbWF0ZWQKKyAgICAgKiB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gdmFsdWVzIFRoZSB2YWx1ZXMgdGhhdCB0aGUgcHJvcGVydHkgd2lsbCBhbmltYXRlIGJldHdlZW4uCisgICAgICogQHJldHVybiBQcm9wZXJ0eVZhbHVlc0hvbGRlciBUaGUgY29uc3RydWN0ZWQgUHJvcGVydHlWYWx1ZXNIb2xkZXIgb2JqZWN0LgorICAgICAqIEBzZWUgT2JqZWN0QW5pbWF0b3Ijb2ZNdWx0aUZsb2F0KE9iamVjdCwgU3RyaW5nLCBUeXBlQ29udmVydGVyLCBUeXBlRXZhbHVhdG9yLCBPYmplY3RbXSkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIDxWPiBQcm9wZXJ0eVZhbHVlc0hvbGRlciBvZk11bHRpRmxvYXQoU3RyaW5nIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIFR5cGVDb252ZXJ0ZXI8ViwgZmxvYXRbXT4gY29udmVydGVyLCBUeXBlRXZhbHVhdG9yPFY+IGV2YWx1YXRvciwgVi4uLiB2YWx1ZXMpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBNdWx0aUZsb2F0VmFsdWVzSG9sZGVyKHByb3BlcnR5TmFtZSwgY29udmVydGVyLCBldmFsdWF0b3IsIHZhbHVlcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbmQgcmV0dXJucyBhIFByb3BlcnR5VmFsdWVzSG9sZGVyIG9iamVjdCB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgbmFtZSBvcgorICAgICAqIHNldHRlciBuYW1lIGZvciB1c2UgaW4gYSBtdWx0aS1mbG9hdCBzZXR0ZXIgZnVuY3Rpb24gdXNpbmcgT2JqZWN0QW5pbWF0b3IuIFRoZSB2YWx1ZXMgY2FuIGJlCisgICAgICogb2YgYW55IHR5cGUsIGJ1dCB0aGUgdHlwZSBzaG91bGQgYmUgY29uc2lzdGVudCBzbyB0aGF0IHRoZSBzdXBwbGllZAorICAgICAqIHtAbGluayBhbmRyb2lkLmFuaW1hdGlvbi5UeXBlRXZhbHVhdG9yfSBjYW4gYmUgdXNlZCB0byB0byBldmFsdWF0ZSB0aGUgYW5pbWF0ZWQgdmFsdWUuIFRoZQorICAgICAqIDxjb2RlPmNvbnZlcnRlcjwvY29kZT4gY29udmVydHMgdGhlIHZhbHVlcyB0byBwYXJhbWV0ZXJzIGluIHRoZSBzZXR0ZXIgZnVuY3Rpb24uCisgICAgICoKKyAgICAgKiA8cD5BdCBsZWFzdCB0d28gdmFsdWVzIG11c3QgYmUgc3VwcGxpZWQsIGEgc3RhcnQgYW5kIGFuIGVuZCB2YWx1ZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgc2V0IG9mIHZhbHVlcy4gVGhpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgbWF5IGFsc28gYmUgdGhlIGNvbXBsZXRlIG5hbWUgb2YgYSBzZXR0ZXIgZnVuY3Rpb24uCisgICAgICogQHBhcmFtIGNvbnZlcnRlciAgICBDb252ZXJ0cyA8Y29kZT52YWx1ZXM8L2NvZGU+IGludG8gZmxvYXQgcGFyYW1ldGVycyBmb3IgdGhlIHNldHRlci4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIENhbiBiZSBudWxsIGlmIHRoZSBLZXlmcmFtZXMgaGF2ZSBmbG9hdFtdIHZhbHVlcy4KKyAgICAgKiBAcGFyYW0gZXZhbHVhdG9yICAgIFVzZWQgdG8gaW50ZXJwb2xhdGUgYmV0d2VlbiB2YWx1ZXMuCisgICAgICogQHBhcmFtIHZhbHVlcyAgICAgICBUaGUgdmFsdWVzIGF0IHNwZWNpZmljIGZyYWN0aW9uYWwgdGltZXMgdG8gZXZhbHVhdGUgYmV0d2VlbgorICAgICAqIEByZXR1cm4gQSBQcm9wZXJ0eVZhbHVlc0hvbGRlciBmb3IgYSBtdWx0aS1mbG9hdCBwYXJhbWV0ZXIgc2V0dGVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgPFQ+IFByb3BlcnR5VmFsdWVzSG9sZGVyIG9mTXVsdGlGbG9hdChTdHJpbmcgcHJvcGVydHlOYW1lLAorICAgICAgICAgICAgVHlwZUNvbnZlcnRlcjxULCBmbG9hdFtdPiBjb252ZXJ0ZXIsIFR5cGVFdmFsdWF0b3I8VD4gZXZhbHVhdG9yLCBLZXlmcmFtZS4uLiB2YWx1ZXMpIHsKKyAgICAgICAgS2V5ZnJhbWVTZXQga2V5ZnJhbWVTZXQgPSBLZXlmcmFtZVNldC5vZktleWZyYW1lKHZhbHVlcyk7CisgICAgICAgIHJldHVybiBuZXcgTXVsdGlGbG9hdFZhbHVlc0hvbGRlcihwcm9wZXJ0eU5hbWUsIGNvbnZlcnRlciwgZXZhbHVhdG9yLCBrZXlmcmFtZVNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbmQgcmV0dXJucyBhIFByb3BlcnR5VmFsdWVzSG9sZGVyIHdpdGggYSBnaXZlbiBwcm9wZXJ0eSBuYW1lIGFuZAogICAgICAqIHNldCBvZiBPYmplY3QgdmFsdWVzLiBUaGlzIHZhcmlhbnQgYWxzbyB0YWtlcyBhIFR5cGVFdmFsdWF0b3IgYmVjYXVzZSB0aGUgc3lzdGVtCiAgICAgICogY2Fubm90IGF1dG9tYXRpY2FsbHkgaW50ZXJwb2xhdGUgYmV0d2VlbiBvYmplY3RzIG9mIHVua25vd24gdHlwZS4KICAgICAgKgpAQCAtMjI3LDYgKzM4NywzNCBAQAogICAgIH0KIAogICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW5kIHJldHVybnMgYSBQcm9wZXJ0eVZhbHVlc0hvbGRlciB3aXRoIGEgZ2l2ZW4gcHJvcGVydHkgYW5kCisgICAgICogc2V0IG9mIE9iamVjdCB2YWx1ZXMuIFRoaXMgdmFyaWFudCBhbHNvIHRha2VzIGEgVHlwZUV2YWx1YXRvciBiZWNhdXNlIHRoZSBzeXN0ZW0KKyAgICAgKiBjYW5ub3QgYXV0b21hdGljYWxseSBpbnRlcnBvbGF0ZSBiZXR3ZWVuIG9iamVjdHMgb2YgdW5rbm93biB0eXBlLiBUaGlzIHZhcmlhbnQgYWxzbworICAgICAqIHRha2VzIGEgPGNvZGU+VHlwZUNvbnZlcnRlcjwvY29kZT4gdG8gY29udmVydCBmcm9tIGFuaW1hdGVkIHZhbHVlcyB0byB0aGUgdHlwZQorICAgICAqIG9mIHRoZSBwcm9wZXJ0eS4gSWYgb25seSBvbmUgdmFsdWUgaXMgc3VwcGxpZWQsIHRoZSA8Y29kZT5UeXBlQ29udmVydGVyPC9jb2RlPgorICAgICAqIG11c3QgaW1wbGVtZW50IHtAbGluayBUeXBlQ29udmVydGVyI2NvbnZlcnRCYWNrKE9iamVjdCl9IHRvIHJldHJpZXZlIHRoZSBjdXJyZW50CisgICAgICogdmFsdWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHkgVGhlIHByb3BlcnR5IGJlaW5nIGFuaW1hdGVkLiBTaG91bGQgbm90IGJlIG51bGwuCisgICAgICogQHBhcmFtIGNvbnZlcnRlciBDb252ZXJ0cyB0aGUgYW5pbWF0ZWQgb2JqZWN0IHRvIHRoZSBQcm9wZXJ0eSB0eXBlLgorICAgICAqIEBwYXJhbSBldmFsdWF0b3IgQSBUeXBlRXZhbHVhdG9yIHRoYXQgd2lsbCBiZSBjYWxsZWQgb24gZWFjaCBhbmltYXRpb24gZnJhbWUgdG8KKyAgICAgKiBwcm92aWRlIHRoZSBuZWNlc3NhcnkgaW50ZXJwb2xhdGlvbiBiZXR3ZWVuIHRoZSBPYmplY3QgdmFsdWVzIHRvIGRlcml2ZSB0aGUgYW5pbWF0ZWQKKyAgICAgKiB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gdmFsdWVzIFRoZSB2YWx1ZXMgdGhhdCB0aGUgcHJvcGVydHkgd2lsbCBhbmltYXRlIGJldHdlZW4uCisgICAgICogQHJldHVybiBQcm9wZXJ0eVZhbHVlc0hvbGRlciBUaGUgY29uc3RydWN0ZWQgUHJvcGVydHlWYWx1ZXNIb2xkZXIgb2JqZWN0LgorICAgICAqIEBzZWUgI3NldENvbnZlcnRlcihUeXBlQ29udmVydGVyKQorICAgICAqIEBzZWUgVHlwZUNvbnZlcnRlcgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgPFQsIFY+IFByb3BlcnR5VmFsdWVzSG9sZGVyIG9mT2JqZWN0KFByb3BlcnR5PD8sIFY+IHByb3BlcnR5LAorICAgICAgICAgICAgVHlwZUNvbnZlcnRlcjxULCBWPiBjb252ZXJ0ZXIsIFR5cGVFdmFsdWF0b3I8VD4gZXZhbHVhdG9yLCBULi4uIHZhbHVlcykgeworICAgICAgICBQcm9wZXJ0eVZhbHVlc0hvbGRlciBwdmggPSBuZXcgUHJvcGVydHlWYWx1ZXNIb2xkZXIocHJvcGVydHkpOworICAgICAgICBwdmguc2V0Q29udmVydGVyKGNvbnZlcnRlcik7CisgICAgICAgIHB2aC5zZXRPYmplY3RWYWx1ZXModmFsdWVzKTsKKyAgICAgICAgcHZoLnNldEV2YWx1YXRvcihldmFsdWF0b3IpOworICAgICAgICByZXR1cm4gcHZoOworICAgIH0KKworICAgIC8qKgogICAgICAqIENvbnN0cnVjdHMgYW5kIHJldHVybnMgYSBQcm9wZXJ0eVZhbHVlc0hvbGRlciBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG5hbWUgYW5kIHNldAogICAgICAqIG9mIHZhbHVlcy4gVGhlc2UgdmFsdWVzIGNhbiBiZSBvZiBhbnkgdHlwZSwgYnV0IHRoZSB0eXBlIHNob3VsZCBiZSBjb25zaXN0ZW50IHNvIHRoYXQKICAgICAgKiBhbiBhcHByb3ByaWF0ZSB7QGxpbmsgYW5kcm9pZC5hbmltYXRpb24uVHlwZUV2YWx1YXRvcn0gY2FuIGJlIGZvdW5kIHRoYXQgbWF0Y2hlcwpAQCAtMzYxLDYgKzU0OSwxNCBAQAogICAgIH0KIAogICAgIC8qKgorICAgICAqIFNldHMgdGhlIGNvbnZlcnRlciB0byBjb252ZXJ0IGZyb20gdGhlIHZhbHVlcyB0eXBlIHRvIHRoZSBzZXR0ZXIncyBwYXJhbWV0ZXIgdHlwZS4KKyAgICAgKiBAcGFyYW0gY29udmVydGVyIFRoZSBjb252ZXJ0ZXIgdG8gdXNlIHRvIGNvbnZlcnQgdmFsdWVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbnZlcnRlcihUeXBlQ29udmVydGVyIGNvbnZlcnRlcikgeworICAgICAgICBtQ29udmVydGVyID0gY29udmVydGVyOworICAgIH0KKworICAgIC8qKgogICAgICAqIERldGVybWluZSB0aGUgc2V0dGVyIG9yIGdldHRlciBmdW5jdGlvbiB1c2luZyB0aGUgSmF2YUJlYW5zIGNvbnZlbnRpb24gb2Ygc2V0Rm9vIG9yCiAgICAgICogZ2V0Rm9vIGZvciBhIHByb3BlcnR5IG5hbWVkICdmb28nLiBUaGlzIGZ1bmN0aW9uIGZpZ3VyZXMgb3V0IHdoYXQgdGhlIG5hbWUgb2YgdGhlCiAgICAgICogZnVuY3Rpb24gc2hvdWxkIGJlIGFuZCB1c2VzIHJlZmxlY3Rpb24gdG8gZmluZCB0aGUgTWV0aG9kIHdpdGggdGhhdCBuYW1lIG9uIHRoZQpAQCAtMzg5LDIyICs1ODUsMjQgQEAKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGFyZ3MgPSBuZXcgQ2xhc3NbMV07CiAgICAgICAgICAgICBDbGFzcyB0eXBlVmFyaWFudHNbXTsKLSAgICAgICAgICAgIGlmIChtVmFsdWVUeXBlLmVxdWFscyhGbG9hdC5jbGFzcykpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZVR5cGUuZXF1YWxzKEZsb2F0LmNsYXNzKSkgewogICAgICAgICAgICAgICAgIHR5cGVWYXJpYW50cyA9IEZMT0FUX1ZBUklBTlRTOwotICAgICAgICAgICAgfSBlbHNlIGlmIChtVmFsdWVUeXBlLmVxdWFscyhJbnRlZ2VyLmNsYXNzKSkgeworICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVR5cGUuZXF1YWxzKEludGVnZXIuY2xhc3MpKSB7CiAgICAgICAgICAgICAgICAgdHlwZVZhcmlhbnRzID0gSU5URUdFUl9WQVJJQU5UUzsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobVZhbHVlVHlwZS5lcXVhbHMoRG91YmxlLmNsYXNzKSkgeworICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVR5cGUuZXF1YWxzKERvdWJsZS5jbGFzcykpIHsKICAgICAgICAgICAgICAgICB0eXBlVmFyaWFudHMgPSBET1VCTEVfVkFSSUFOVFM7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHR5cGVWYXJpYW50cyA9IG5ldyBDbGFzc1sxXTsKLSAgICAgICAgICAgICAgICB0eXBlVmFyaWFudHNbMF0gPSBtVmFsdWVUeXBlOworICAgICAgICAgICAgICAgIHR5cGVWYXJpYW50c1swXSA9IHZhbHVlVHlwZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciAoQ2xhc3MgdHlwZVZhcmlhbnQgOiB0eXBlVmFyaWFudHMpIHsKICAgICAgICAgICAgICAgICBhcmdzWzBdID0gdHlwZVZhcmlhbnQ7CiAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsID0gdGFyZ2V0Q2xhc3MuZ2V0TWV0aG9kKG1ldGhvZE5hbWUsIGFyZ3MpOwotICAgICAgICAgICAgICAgICAgICAvLyBjaGFuZ2UgdGhlIHZhbHVlIHR5cGUgdG8gc3VpdAotICAgICAgICAgICAgICAgICAgICBtVmFsdWVUeXBlID0gdHlwZVZhcmlhbnQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChtQ29udmVydGVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoYW5nZSB0aGUgdmFsdWUgdHlwZSB0byBzdWl0CisgICAgICAgICAgICAgICAgICAgICAgICBtVmFsdWVUeXBlID0gdHlwZVZhcmlhbnQ7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldHVyblZhbDsKICAgICAgICAgICAgICAgICB9IGNhdGNoIChOb1N1Y2hNZXRob2RFeGNlcHRpb24gZSkgewogICAgICAgICAgICAgICAgICAgICAvLyBTd2FsbG93IHRoZSBlcnJvciBhbmQga2VlcCB0cnlpbmcgb3RoZXIgdmFyaWFudHMKQEAgLTQxNSw3ICs2MTMsNyBAQAogCiAgICAgICAgIGlmIChyZXR1cm5WYWwgPT0gbnVsbCkgewogICAgICAgICAgICAgTG9nLncoIlByb3BlcnR5VmFsdWVzSG9sZGVyIiwgIk1ldGhvZCAiICsKLSAgICAgICAgICAgICAgICAgICAgZ2V0TWV0aG9kTmFtZShwcmVmaXgsIG1Qcm9wZXJ0eU5hbWUpICsgIigpIHdpdGggdHlwZSAiICsgbVZhbHVlVHlwZSArCisgICAgICAgICAgICAgICAgICAgIGdldE1ldGhvZE5hbWUocHJlZml4LCBtUHJvcGVydHlOYW1lKSArICIoKSB3aXRoIHR5cGUgIiArIHZhbHVlVHlwZSArCiAgICAgICAgICAgICAgICAgICAgICIgbm90IGZvdW5kIG9uIHRhcmdldCBjbGFzcyAiICsgdGFyZ2V0Q2xhc3MpOwogICAgICAgICB9CiAKQEAgLTQ2NSw3ICs2NjMsOCBAQAogICAgICAqIEBwYXJhbSB0YXJnZXRDbGFzcyBUaGUgQ2xhc3Mgb24gd2hpY2ggdGhlIHJlcXVlc3RlZCBtZXRob2Qgc2hvdWxkIGV4aXN0LgogICAgICAqLwogICAgIHZvaWQgc2V0dXBTZXR0ZXIoQ2xhc3MgdGFyZ2V0Q2xhc3MpIHsKLSAgICAgICAgbVNldHRlciA9IHNldHVwU2V0dGVyT3JHZXR0ZXIodGFyZ2V0Q2xhc3MsIHNTZXR0ZXJQcm9wZXJ0eU1hcCwgInNldCIsIG1WYWx1ZVR5cGUpOworICAgICAgICBDbGFzczw/PiBwcm9wZXJ0eVR5cGUgPSBtQ29udmVydGVyID09IG51bGwgPyBtVmFsdWVUeXBlIDogbUNvbnZlcnRlci5nZXRUYXJnZXRUeXBlKCk7CisgICAgICAgIG1TZXR0ZXIgPSBzZXR1cFNldHRlck9yR2V0dGVyKHRhcmdldENsYXNzLCBzU2V0dGVyUHJvcGVydHlNYXAsICJzZXQiLCBwcm9wZXJ0eVR5cGUpOwogICAgIH0KIAogICAgIC8qKgpAQCAtNDg5LDEwICs2ODgsMTMgQEAKICAgICAgICAgaWYgKG1Qcm9wZXJ0eSAhPSBudWxsKSB7CiAgICAgICAgICAgICAvLyBjaGVjayB0byBtYWtlIHN1cmUgdGhhdCBtUHJvcGVydHkgaXMgb24gdGhlIGNsYXNzIG9mIHRhcmdldAogICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBPYmplY3QgdGVzdFZhbHVlID0gbVByb3BlcnR5LmdldCh0YXJnZXQpOworICAgICAgICAgICAgICAgIE9iamVjdCB0ZXN0VmFsdWUgPSBudWxsOwogICAgICAgICAgICAgICAgIGZvciAoS2V5ZnJhbWUga2YgOiBtS2V5ZnJhbWVTZXQubUtleWZyYW1lcykgewogICAgICAgICAgICAgICAgICAgICBpZiAoIWtmLmhhc1ZhbHVlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGtmLnNldFZhbHVlKG1Qcm9wZXJ0eS5nZXQodGFyZ2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVzdFZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0VmFsdWUgPSBjb252ZXJ0QmFjayhtUHJvcGVydHkuZ2V0KHRhcmdldCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAga2Yuc2V0VmFsdWUodGVzdFZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC01MTYsNyArNzE4LDggQEAKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICBrZi5zZXRWYWx1ZShtR2V0dGVyLmludm9rZSh0YXJnZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gY29udmVydEJhY2sobUdldHRlci5pbnZva2UodGFyZ2V0KSk7CisgICAgICAgICAgICAgICAgICAgIGtmLnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgICAgICAgICB9IGNhdGNoIChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgICAgICAgICAgTG9nLmUoIlByb3BlcnR5VmFsdWVzSG9sZGVyIiwgZS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKQEAgLTUyNiw2ICs3MjksMTggQEAKICAgICAgICAgfQogICAgIH0KIAorICAgIHByaXZhdGUgT2JqZWN0IGNvbnZlcnRCYWNrKE9iamVjdCB2YWx1ZSkgeworICAgICAgICBpZiAobUNvbnZlcnRlciAhPSBudWxsKSB7CisgICAgICAgICAgICB2YWx1ZSA9IG1Db252ZXJ0ZXIuY29udmVydEJhY2sodmFsdWUpOworICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb252ZXJ0ZXIgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBtQ29udmVydGVyLmdldENsYXNzKCkuZ2V0TmFtZSgpCisgICAgICAgICAgICAgICAgICAgICAgICArICIgbXVzdCBpbXBsZW1lbnQgY29udmVydEJhY2sgYW5kIG5vdCByZXR1cm4gbnVsbC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCiAgICAgLyoqCiAgICAgICogVXRpbGl0eSBmdW5jdGlvbiB0byBzZXQgdGhlIHZhbHVlIHN0b3JlZCBpbiBhIHBhcnRpY3VsYXIgS2V5ZnJhbWUuIFRoZSB2YWx1ZSB1c2VkIGlzCiAgICAgICogd2hhdGV2ZXIgdGhlIHZhbHVlIGlzIGZvciB0aGUgcHJvcGVydHkgbmFtZSBzcGVjaWZpZWQgaW4gdGhlIGtleWZyYW1lIG9uIHRoZSB0YXJnZXQgb2JqZWN0LgpAQCAtNTM1LDcgKzc1MCw4IEBACiAgICAgICovCiAgICAgcHJpdmF0ZSB2b2lkIHNldHVwVmFsdWUoT2JqZWN0IHRhcmdldCwgS2V5ZnJhbWUga2YpIHsKICAgICAgICAgaWYgKG1Qcm9wZXJ0eSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBrZi5zZXRWYWx1ZShtUHJvcGVydHkuZ2V0KHRhcmdldCkpOworICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gY29udmVydEJhY2sobVByb3BlcnR5LmdldCh0YXJnZXQpKTsKKyAgICAgICAgICAgIGtmLnNldFZhbHVlKHZhbHVlKTsKICAgICAgICAgfQogICAgICAgICB0cnkgewogICAgICAgICAgICAgaWYgKG1HZXR0ZXIgPT0gbnVsbCkgewpAQCAtNTQ2LDcgKzc2Miw4IEBACiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBrZi5zZXRWYWx1ZShtR2V0dGVyLmludm9rZSh0YXJnZXQpKTsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGNvbnZlcnRCYWNrKG1HZXR0ZXIuaW52b2tlKHRhcmdldCkpOworICAgICAgICAgICAga2Yuc2V0VmFsdWUodmFsdWUpOwogICAgICAgICB9IGNhdGNoIChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgIExvZy5lKCJQcm9wZXJ0eVZhbHVlc0hvbGRlciIsIGUudG9TdHJpbmcoKSk7CiAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgewpAQCAtNjU3LDcgKzg3NCw4IEBACiAgICAgICogQHBhcmFtIGZyYWN0aW9uIFRoZSBlbGFwc2VkLCBpbnRlcnBvbGF0ZWQgZnJhY3Rpb24gb2YgdGhlIGFuaW1hdGlvbi4KICAgICAgKi8KICAgICB2b2lkIGNhbGN1bGF0ZVZhbHVlKGZsb2F0IGZyYWN0aW9uKSB7Ci0gICAgICAgIG1BbmltYXRlZFZhbHVlID0gbUtleWZyYW1lU2V0LmdldFZhbHVlKGZyYWN0aW9uKTsKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gbUtleWZyYW1lU2V0LmdldFZhbHVlKGZyYWN0aW9uKTsKKyAgICAgICAgbUFuaW1hdGVkVmFsdWUgPSBtQ29udmVydGVyID09IG51bGwgPyB2YWx1ZSA6IG1Db252ZXJ0ZXIuY29udmVydCh2YWx1ZSk7CiAgICAgfQogCiAgICAgLyoqCkBAIC0xMDE1LDggKzEyMzMsMjI3IEBACiAKICAgICB9CiAKKyAgICBzdGF0aWMgY2xhc3MgTXVsdGlGbG9hdFZhbHVlc0hvbGRlciBleHRlbmRzIFByb3BlcnR5VmFsdWVzSG9sZGVyIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbUpuaVNldHRlcjsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSGFzaE1hcDxDbGFzcywgSGFzaE1hcDxTdHJpbmcsIEludGVnZXI+PiBzSk5JU2V0dGVyUHJvcGVydHlNYXAgPQorICAgICAgICAgICAgICAgIG5ldyBIYXNoTWFwPENsYXNzLCBIYXNoTWFwPFN0cmluZywgSW50ZWdlcj4+KCk7CisKKyAgICAgICAgcHVibGljIE11bHRpRmxvYXRWYWx1ZXNIb2xkZXIoU3RyaW5nIHByb3BlcnR5TmFtZSwgVHlwZUNvbnZlcnRlciBjb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAgVHlwZUV2YWx1YXRvciBldmFsdWF0b3IsIE9iamVjdC4uLiB2YWx1ZXMpIHsKKyAgICAgICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZSk7CisgICAgICAgICAgICBzZXRDb252ZXJ0ZXIoY29udmVydGVyKTsKKyAgICAgICAgICAgIHNldE9iamVjdFZhbHVlcyh2YWx1ZXMpOworICAgICAgICAgICAgc2V0RXZhbHVhdG9yKGV2YWx1YXRvcik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgTXVsdGlGbG9hdFZhbHVlc0hvbGRlcihTdHJpbmcgcHJvcGVydHlOYW1lLCBUeXBlQ29udmVydGVyIGNvbnZlcnRlciwKKyAgICAgICAgICAgICAgICBUeXBlRXZhbHVhdG9yIGV2YWx1YXRvciwgS2V5ZnJhbWVTZXQga2V5ZnJhbWVTZXQpIHsKKyAgICAgICAgICAgIHN1cGVyKHByb3BlcnR5TmFtZSk7CisgICAgICAgICAgICBzZXRDb252ZXJ0ZXIoY29udmVydGVyKTsKKyAgICAgICAgICAgIG1LZXlmcmFtZVNldCA9IGtleWZyYW1lU2V0OworICAgICAgICAgICAgc2V0RXZhbHVhdG9yKGV2YWx1YXRvcik7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSW50ZXJuYWwgZnVuY3Rpb24gdG8gc2V0IHRoZSB2YWx1ZSBvbiB0aGUgdGFyZ2V0IG9iamVjdCwgdXNpbmcgdGhlIHNldHRlciBzZXQgdXAKKyAgICAgICAgICogZWFybGllciBvbiB0aGlzIFByb3BlcnR5VmFsdWVzSG9sZGVyIG9iamVjdC4gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgT2JqZWN0QW5pbWF0b3IKKyAgICAgICAgICogdG8gaGFuZGxlIHR1cm5pbmcgdGhlIHZhbHVlIGNhbGN1bGF0ZWQgYnkgVmFsdWVBbmltYXRvciBpbnRvIGEgdmFsdWUgc2V0IG9uIHRoZSBvYmplY3QKKyAgICAgICAgICogYWNjb3JkaW5nIHRvIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eS4KKyAgICAgICAgICoKKyAgICAgICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdCBvbiB3aGljaCB0aGUgdmFsdWUgaXMgc2V0CisgICAgICAgICAqLworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgdm9pZCBzZXRBbmltYXRlZFZhbHVlKE9iamVjdCB0YXJnZXQpIHsKKyAgICAgICAgICAgIGZsb2F0W10gdmFsdWVzID0gKGZsb2F0W10pIGdldEFuaW1hdGVkVmFsdWUoKTsKKyAgICAgICAgICAgIGludCBudW1QYXJhbWV0ZXJzID0gdmFsdWVzLmxlbmd0aDsKKyAgICAgICAgICAgIGlmIChtSm5pU2V0dGVyICE9IDApIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKG51bVBhcmFtZXRlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgbkNhbGxGbG9hdE1ldGhvZCh0YXJnZXQsIG1KbmlTZXR0ZXIsIHZhbHVlc1swXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgbkNhbGxUd29GbG9hdE1ldGhvZCh0YXJnZXQsIG1KbmlTZXR0ZXIsIHZhbHVlc1swXSwgdmFsdWVzWzFdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgICAgICAgICBuQ2FsbEZvdXJGbG9hdE1ldGhvZCh0YXJnZXQsIG1KbmlTZXR0ZXIsIHZhbHVlc1swXSwgdmFsdWVzWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbMl0sIHZhbHVlc1szXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogeworICAgICAgICAgICAgICAgICAgICAgICAgbkNhbGxNdWx0aXBsZUZsb2F0TWV0aG9kKHRhcmdldCwgbUpuaVNldHRlciwgdmFsdWVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEludGVybmFsIGZ1bmN0aW9uIChjYWxsZWQgZnJvbSBPYmplY3RBbmltYXRvcikgdG8gc2V0IHVwIHRoZSBzZXR0ZXIgYW5kIGdldHRlcgorICAgICAgICAgKiBwcmlvciB0byBydW5uaW5nIHRoZSBhbmltYXRpb24uIE5vIGdldHRlciBjYW4gYmUgdXNlZCBmb3IgbXVsdGlwbGUgcGFyYW1ldGVycy4KKyAgICAgICAgICoKKyAgICAgICAgICogQHBhcmFtIHRhcmdldCBUaGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzZXR0ZXIgZXhpc3RzLgorICAgICAgICAgKi8KKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHZvaWQgc2V0dXBTZXR0ZXJBbmRHZXR0ZXIoT2JqZWN0IHRhcmdldCkgeworICAgICAgICAgICAgc2V0dXBTZXR0ZXIodGFyZ2V0LmdldENsYXNzKCkpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHZvaWQgc2V0dXBTZXR0ZXIoQ2xhc3MgdGFyZ2V0Q2xhc3MpIHsKKyAgICAgICAgICAgIGlmIChtSm5pU2V0dGVyICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG1Qcm9wZXJ0eU1hcExvY2sud3JpdGVMb2NrKCkubG9jaygpOworICAgICAgICAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBJbnRlZ2VyPiBwcm9wZXJ0eU1hcCA9IHNKTklTZXR0ZXJQcm9wZXJ0eU1hcC5nZXQodGFyZ2V0Q2xhc3MpOworICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eU1hcCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIEludGVnZXIgam5pU2V0dGVySW50ZWdlciA9IHByb3BlcnR5TWFwLmdldChtUHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGpuaVNldHRlckludGVnZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbUpuaVNldHRlciA9IGpuaVNldHRlckludGVnZXI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1KbmlTZXR0ZXIgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbWV0aG9kTmFtZSA9IGdldE1ldGhvZE5hbWUoInNldCIsIG1Qcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVWYWx1ZSgwZik7CisgICAgICAgICAgICAgICAgICAgIGZsb2F0W10gdmFsdWVzID0gKGZsb2F0W10pIGdldEFuaW1hdGVkVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IG51bVBhcmFtcyA9IHZhbHVlcy5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtSm5pU2V0dGVyID0gbkdldE11bHRpcGxlRmxvYXRNZXRob2QodGFyZ2V0Q2xhc3MsIG1ldGhvZE5hbWUsIG51bVBhcmFtcyk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE5vU3VjaE1ldGhvZEVycm9yIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyeSB3aXRob3V0IHRoZSAnc2V0JyBwcmVmaXgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1KbmlTZXR0ZXIgPSBuR2V0TXVsdGlwbGVGbG9hdE1ldGhvZCh0YXJnZXRDbGFzcywgbVByb3BlcnR5TmFtZSwgbnVtUGFyYW1zKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobUpuaVNldHRlciAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHlNYXAgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TWFwID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBJbnRlZ2VyPigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNKTklTZXR0ZXJQcm9wZXJ0eU1hcC5wdXQodGFyZ2V0Q2xhc3MsIHByb3BlcnR5TWFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TWFwLnB1dChtUHJvcGVydHlOYW1lLCBtSm5pU2V0dGVyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgbVByb3BlcnR5TWFwTG9jay53cml0ZUxvY2soKS51bmxvY2soKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBNdWx0aUludFZhbHVlc0hvbGRlciBleHRlbmRzIFByb3BlcnR5VmFsdWVzSG9sZGVyIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbUpuaVNldHRlcjsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSGFzaE1hcDxDbGFzcywgSGFzaE1hcDxTdHJpbmcsIEludGVnZXI+PiBzSk5JU2V0dGVyUHJvcGVydHlNYXAgPQorICAgICAgICAgICAgICAgIG5ldyBIYXNoTWFwPENsYXNzLCBIYXNoTWFwPFN0cmluZywgSW50ZWdlcj4+KCk7CisKKyAgICAgICAgcHVibGljIE11bHRpSW50VmFsdWVzSG9sZGVyKFN0cmluZyBwcm9wZXJ0eU5hbWUsIFR5cGVDb252ZXJ0ZXIgY29udmVydGVyLAorICAgICAgICAgICAgICAgIFR5cGVFdmFsdWF0b3IgZXZhbHVhdG9yLCBPYmplY3QuLi4gdmFsdWVzKSB7CisgICAgICAgICAgICBzdXBlcihwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgc2V0Q29udmVydGVyKGNvbnZlcnRlcik7CisgICAgICAgICAgICBzZXRPYmplY3RWYWx1ZXModmFsdWVzKTsKKyAgICAgICAgICAgIHNldEV2YWx1YXRvcihldmFsdWF0b3IpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE11bHRpSW50VmFsdWVzSG9sZGVyKFN0cmluZyBwcm9wZXJ0eU5hbWUsIFR5cGVDb252ZXJ0ZXIgY29udmVydGVyLAorICAgICAgICAgICAgICAgIFR5cGVFdmFsdWF0b3IgZXZhbHVhdG9yLCBLZXlmcmFtZVNldCBrZXlmcmFtZVNldCkgeworICAgICAgICAgICAgc3VwZXIocHJvcGVydHlOYW1lKTsKKyAgICAgICAgICAgIHNldENvbnZlcnRlcihjb252ZXJ0ZXIpOworICAgICAgICAgICAgbUtleWZyYW1lU2V0ID0ga2V5ZnJhbWVTZXQ7CisgICAgICAgICAgICBzZXRFdmFsdWF0b3IoZXZhbHVhdG9yKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbnRlcm5hbCBmdW5jdGlvbiB0byBzZXQgdGhlIHZhbHVlIG9uIHRoZSB0YXJnZXQgb2JqZWN0LCB1c2luZyB0aGUgc2V0dGVyIHNldCB1cAorICAgICAgICAgKiBlYXJsaWVyIG9uIHRoaXMgUHJvcGVydHlWYWx1ZXNIb2xkZXIgb2JqZWN0LiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBPYmplY3RBbmltYXRvcgorICAgICAgICAgKiB0byBoYW5kbGUgdHVybmluZyB0aGUgdmFsdWUgY2FsY3VsYXRlZCBieSBWYWx1ZUFuaW1hdG9yIGludG8gYSB2YWx1ZSBzZXQgb24gdGhlIG9iamVjdAorICAgICAgICAgKiBhY2NvcmRpbmcgdG8gdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LgorICAgICAgICAgKgorICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgb2JqZWN0IG9uIHdoaWNoIHRoZSB2YWx1ZSBpcyBzZXQKKyAgICAgICAgICovCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICB2b2lkIHNldEFuaW1hdGVkVmFsdWUoT2JqZWN0IHRhcmdldCkgeworICAgICAgICAgICAgaW50W10gdmFsdWVzID0gKGludFtdKSBnZXRBbmltYXRlZFZhbHVlKCk7CisgICAgICAgICAgICBpbnQgbnVtUGFyYW1ldGVycyA9IHZhbHVlcy5sZW5ndGg7CisgICAgICAgICAgICBpZiAobUpuaVNldHRlciAhPSAwKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChudW1QYXJhbWV0ZXJzKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5DYWxsSW50TWV0aG9kKHRhcmdldCwgbUpuaVNldHRlciwgdmFsdWVzWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICBuQ2FsbFR3b0ludE1ldGhvZCh0YXJnZXQsIG1KbmlTZXR0ZXIsIHZhbHVlc1swXSwgdmFsdWVzWzFdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgICAgICAgICBuQ2FsbEZvdXJJbnRNZXRob2QodGFyZ2V0LCBtSm5pU2V0dGVyLCB2YWx1ZXNbMF0sIHZhbHVlc1sxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzWzJdLCB2YWx1ZXNbM10pOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5DYWxsTXVsdGlwbGVJbnRNZXRob2QodGFyZ2V0LCBtSm5pU2V0dGVyLCB2YWx1ZXMpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSW50ZXJuYWwgZnVuY3Rpb24gKGNhbGxlZCBmcm9tIE9iamVjdEFuaW1hdG9yKSB0byBzZXQgdXAgdGhlIHNldHRlciBhbmQgZ2V0dGVyCisgICAgICAgICAqIHByaW9yIHRvIHJ1bm5pbmcgdGhlIGFuaW1hdGlvbi4gTm8gZ2V0dGVyIGNhbiBiZSB1c2VkIGZvciBtdWx0aXBsZSBwYXJhbWV0ZXJzLgorICAgICAgICAgKgorICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNldHRlciBleGlzdHMuCisgICAgICAgICAqLworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgdm9pZCBzZXR1cFNldHRlckFuZEdldHRlcihPYmplY3QgdGFyZ2V0KSB7CisgICAgICAgICAgICBzZXR1cFNldHRlcih0YXJnZXQuZ2V0Q2xhc3MoKSk7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgdm9pZCBzZXR1cFNldHRlcihDbGFzcyB0YXJnZXRDbGFzcykgeworICAgICAgICAgICAgaWYgKG1KbmlTZXR0ZXIgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbVByb3BlcnR5TWFwTG9jay53cml0ZUxvY2soKS5sb2NrKCk7CisgICAgICAgICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIEludGVnZXI+IHByb3BlcnR5TWFwID0gc0pOSVNldHRlclByb3BlcnR5TWFwLmdldCh0YXJnZXRDbGFzcyk7CisgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5TWFwICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgSW50ZWdlciBqbmlTZXR0ZXJJbnRlZ2VyID0gcHJvcGVydHlNYXAuZ2V0KG1Qcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgICAgICAgICBpZiAoam5pU2V0dGVySW50ZWdlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtSm5pU2V0dGVyID0gam5pU2V0dGVySW50ZWdlcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobUpuaVNldHRlciA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZXRob2ROYW1lID0gZ2V0TWV0aG9kTmFtZSgic2V0IiwgbVByb3BlcnR5TmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZVZhbHVlKDBmKTsKKyAgICAgICAgICAgICAgICAgICAgaW50W10gdmFsdWVzID0gKGludFtdKSBnZXRBbmltYXRlZFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGludCBudW1QYXJhbXMgPSB2YWx1ZXMubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgbUpuaVNldHRlciA9IG5HZXRNdWx0aXBsZUludE1ldGhvZCh0YXJnZXRDbGFzcywgbWV0aG9kTmFtZSwgbnVtUGFyYW1zKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoTm9TdWNoTWV0aG9kRXJyb3IgZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJ5IHdpdGhvdXQgdGhlICdzZXQnIHByZWZpeAorICAgICAgICAgICAgICAgICAgICAgICAgbUpuaVNldHRlciA9IG5HZXRNdWx0aXBsZUludE1ldGhvZCh0YXJnZXRDbGFzcywgbVByb3BlcnR5TmFtZSwgbnVtUGFyYW1zKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobUpuaVNldHRlciAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHlNYXAgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TWFwID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBJbnRlZ2VyPigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNKTklTZXR0ZXJQcm9wZXJ0eU1hcC5wdXQodGFyZ2V0Q2xhc3MsIHByb3BlcnR5TWFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TWFwLnB1dChtUHJvcGVydHlOYW1lLCBtSm5pU2V0dGVyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgbVByb3BlcnR5TWFwTG9jay53cml0ZUxvY2soKS51bmxvY2soKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAgIG5hdGl2ZSBzdGF0aWMgcHJpdmF0ZSBpbnQgbkdldEludE1ldGhvZChDbGFzcyB0YXJnZXRDbGFzcywgU3RyaW5nIG1ldGhvZE5hbWUpOwogICAgIG5hdGl2ZSBzdGF0aWMgcHJpdmF0ZSBpbnQgbkdldEZsb2F0TWV0aG9kKENsYXNzIHRhcmdldENsYXNzLCBTdHJpbmcgbWV0aG9kTmFtZSk7CisgICAgbmF0aXZlIHN0YXRpYyBwcml2YXRlIGludCBuR2V0TXVsdGlwbGVJbnRNZXRob2QoQ2xhc3MgdGFyZ2V0Q2xhc3MsIFN0cmluZyBtZXRob2ROYW1lLAorICAgICAgICAgICAgaW50IG51bVBhcmFtcyk7CisgICAgbmF0aXZlIHN0YXRpYyBwcml2YXRlIGludCBuR2V0TXVsdGlwbGVGbG9hdE1ldGhvZChDbGFzcyB0YXJnZXRDbGFzcywgU3RyaW5nIG1ldGhvZE5hbWUsCisgICAgICAgICAgICBpbnQgbnVtUGFyYW1zKTsKICAgICBuYXRpdmUgc3RhdGljIHByaXZhdGUgdm9pZCBuQ2FsbEludE1ldGhvZChPYmplY3QgdGFyZ2V0LCBpbnQgbWV0aG9kSUQsIGludCBhcmcpOwogICAgIG5hdGl2ZSBzdGF0aWMgcHJpdmF0ZSB2b2lkIG5DYWxsRmxvYXRNZXRob2QoT2JqZWN0IHRhcmdldCwgaW50IG1ldGhvZElELCBmbG9hdCBhcmcpOworICAgIG5hdGl2ZSBzdGF0aWMgcHJpdmF0ZSB2b2lkIG5DYWxsVHdvSW50TWV0aG9kKE9iamVjdCB0YXJnZXQsIGludCBtZXRob2RJRCwgaW50IGFyZzEsIGludCBhcmcyKTsKKyAgICBuYXRpdmUgc3RhdGljIHByaXZhdGUgdm9pZCBuQ2FsbEZvdXJJbnRNZXRob2QoT2JqZWN0IHRhcmdldCwgaW50IG1ldGhvZElELCBpbnQgYXJnMSwgaW50IGFyZzIsCisgICAgICAgICAgICBpbnQgYXJnMywgaW50IGFyZzQpOworICAgIG5hdGl2ZSBzdGF0aWMgcHJpdmF0ZSB2b2lkIG5DYWxsTXVsdGlwbGVJbnRNZXRob2QoT2JqZWN0IHRhcmdldCwgaW50IG1ldGhvZElELCBpbnRbXSBhcmdzKTsKKyAgICBuYXRpdmUgc3RhdGljIHByaXZhdGUgdm9pZCBuQ2FsbFR3b0Zsb2F0TWV0aG9kKE9iamVjdCB0YXJnZXQsIGludCBtZXRob2RJRCwgZmxvYXQgYXJnMSwKKyAgICAgICAgICAgIGZsb2F0IGFyZzIpOworICAgIG5hdGl2ZSBzdGF0aWMgcHJpdmF0ZSB2b2lkIG5DYWxsRm91ckZsb2F0TWV0aG9kKE9iamVjdCB0YXJnZXQsIGludCBtZXRob2RJRCwgZmxvYXQgYXJnMSwKKyAgICAgICAgICAgIGZsb2F0IGFyZzIsIGZsb2F0IGFyZzMsIGZsb2F0IGFyZzQpOworICAgIG5hdGl2ZSBzdGF0aWMgcHJpdmF0ZSB2b2lkIG5DYWxsTXVsdGlwbGVGbG9hdE1ldGhvZChPYmplY3QgdGFyZ2V0LCBpbnQgbWV0aG9kSUQsIGZsb2F0W10gYXJncyk7CiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYW5pbWF0aW9uL1JlY3RFdmFsdWF0b3IuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9SZWN0RXZhbHVhdG9yLmphdmEKaW5kZXggMjhkNDk2Yi4uMjNlYjc2NiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvYW5pbWF0aW9uL1JlY3RFdmFsdWF0b3IuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9hbmltYXRpb24vUmVjdEV2YWx1YXRvci5qYXZhCkBAIC0yMywxMiArMjMsNDUgQEAKIHB1YmxpYyBjbGFzcyBSZWN0RXZhbHVhdG9yIGltcGxlbWVudHMgVHlwZUV2YWx1YXRvcjxSZWN0PiB7CiAKICAgICAvKioKKyAgICAgKiBXaGVuIG51bGwsIGEgbmV3IFJlY3QgaXMgcmV0dXJuZWQgb24gZXZlcnkgZXZhbHVhdGUgY2FsbC4gV2hlbiBub24tbnVsbCwKKyAgICAgKiBtUmVjdCB3aWxsIGJlIG1vZGlmaWVkIGFuZCByZXR1cm5lZCBvbiBldmVyeSBldmFsdWF0ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFJlY3QgbVJlY3Q7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBSZWN0RXZhbHVhdG9yIHRoYXQgcmV0dXJucyBhIG5ldyBSZWN0IG9uIGV2ZXJ5IGV2YWx1YXRlIGNhbGwuCisgICAgICogVG8gYXZvaWQgY3JlYXRpbmcgYW4gb2JqZWN0IGZvciBlYWNoIGV2YWx1YXRlIGNhbGwsCisgICAgICoge0BsaW5rIFJlY3RFdmFsdWF0b3IjUmVjdEV2YWx1YXRvcihhbmRyb2lkLmdyYXBoaWNzLlJlY3QpfSBzaG91bGQgYmUgdXNlZAorICAgICAqIHdoZW5ldmVyIHBvc3NpYmxlLgorICAgICAqLworICAgIHB1YmxpYyBSZWN0RXZhbHVhdG9yKCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBSZWN0RXZhbHVhdG9yIHRoYXQgbW9kaWZpZXMgYW5kIHJldHVybnMgPGNvZGU+cmV1c2VSZWN0PC9jb2RlPgorICAgICAqIGluIHtAbGluayAjZXZhbHVhdGUoZmxvYXQsIGFuZHJvaWQuZ3JhcGhpY3MuUmVjdCwgYW5kcm9pZC5ncmFwaGljcy5SZWN0KX0gY2FsbHMuCisgICAgICogVGhlIHZhbHVlIHJldHVybmVkIGZyb20KKyAgICAgKiB7QGxpbmsgI2V2YWx1YXRlKGZsb2F0LCBhbmRyb2lkLmdyYXBoaWNzLlJlY3QsIGFuZHJvaWQuZ3JhcGhpY3MuUmVjdCl9IHNob3VsZAorICAgICAqIG5vdCBiZSBjYWNoZWQgYmVjYXVzZSBpdCB3aWxsIGNoYW5nZSBvdmVyIHRpbWUgYXMgdGhlIG9iamVjdCBpcyByZXVzZWQgb24gZWFjaAorICAgICAqIGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmV1c2VSZWN0IEEgUmVjdCB0byBiZSBtb2RpZmllZCBhbmQgcmV0dXJuZWQgYnkgZXZhbHVhdGUuCisgICAgICovCisgICAgcHVibGljIFJlY3RFdmFsdWF0b3IoUmVjdCByZXVzZVJlY3QpIHsKKyAgICAgICAgbVJlY3QgPSByZXVzZVJlY3Q7CisgICAgfQorCisgICAgLyoqCiAgICAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSByZXN1bHQgb2YgbGluZWFybHkgaW50ZXJwb2xhdGluZyB0aGUgc3RhcnQgYW5kCiAgICAgICogZW5kIFJlY3QgdmFsdWVzLCB3aXRoIDxjb2RlPmZyYWN0aW9uPC9jb2RlPiByZXByZXNlbnRpbmcgdGhlIHByb3BvcnRpb24KICAgICAgKiBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgZW5kIHZhbHVlcy4gVGhlIGNhbGN1bGF0aW9uIGlzIGEgc2ltcGxlIHBhcmFtZXRyaWMKICAgICAgKiBjYWxjdWxhdGlvbiBvbiBlYWNoIG9mIHRoZSBzZXBhcmF0ZSBjb21wb25lbnRzIGluIHRoZSBSZWN0IG9iamVjdHMKICAgICAgKiAobGVmdCwgdG9wLCByaWdodCwgYW5kIGJvdHRvbSkuCiAgICAgICoKKyAgICAgKiA8cD5JZiB7QGxpbmsgI1JlY3RFdmFsdWF0b3IoYW5kcm9pZC5ncmFwaGljcy5SZWN0KX0gd2FzIHVzZWQgdG8gY29uc3RydWN0CisgICAgICogdGhpcyBSZWN0RXZhbHVhdG9yLCB0aGUgb2JqZWN0IHJldHVybmVkIHdpbGwgYmUgdGhlIDxjb2RlPnJldXNlUmVjdDwvY29kZT4KKyAgICAgKiBwYXNzZWQgaW50byB0aGUgY29uc3RydWN0b3IuPC9wPgorICAgICAqCiAgICAgICogQHBhcmFtIGZyYWN0aW9uICAgVGhlIGZyYWN0aW9uIGZyb20gdGhlIHN0YXJ0aW5nIHRvIHRoZSBlbmRpbmcgdmFsdWVzCiAgICAgICogQHBhcmFtIHN0YXJ0VmFsdWUgVGhlIHN0YXJ0IFJlY3QKICAgICAgKiBAcGFyYW0gZW5kVmFsdWUgICBUaGUgZW5kIFJlY3QKQEAgLTM3LDkgKzcwLDE1IEBACiAgICAgICovCiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIFJlY3QgZXZhbHVhdGUoZmxvYXQgZnJhY3Rpb24sIFJlY3Qgc3RhcnRWYWx1ZSwgUmVjdCBlbmRWYWx1ZSkgewotICAgICAgICByZXR1cm4gbmV3IFJlY3Qoc3RhcnRWYWx1ZS5sZWZ0ICsgKGludCkoKGVuZFZhbHVlLmxlZnQgLSBzdGFydFZhbHVlLmxlZnQpICogZnJhY3Rpb24pLAotICAgICAgICAgICAgICAgIHN0YXJ0VmFsdWUudG9wICsgKGludCkoKGVuZFZhbHVlLnRvcCAtIHN0YXJ0VmFsdWUudG9wKSAqIGZyYWN0aW9uKSwKLSAgICAgICAgICAgICAgICBzdGFydFZhbHVlLnJpZ2h0ICsgKGludCkoKGVuZFZhbHVlLnJpZ2h0IC0gc3RhcnRWYWx1ZS5yaWdodCkgKiBmcmFjdGlvbiksCi0gICAgICAgICAgICAgICAgc3RhcnRWYWx1ZS5ib3R0b20gKyAoaW50KSgoZW5kVmFsdWUuYm90dG9tIC0gc3RhcnRWYWx1ZS5ib3R0b20pICogZnJhY3Rpb24pKTsKKyAgICAgICAgaW50IGxlZnQgPSBzdGFydFZhbHVlLmxlZnQgKyAoaW50KSAoKGVuZFZhbHVlLmxlZnQgLSBzdGFydFZhbHVlLmxlZnQpICogZnJhY3Rpb24pOworICAgICAgICBpbnQgdG9wID0gc3RhcnRWYWx1ZS50b3AgKyAoaW50KSAoKGVuZFZhbHVlLnRvcCAtIHN0YXJ0VmFsdWUudG9wKSAqIGZyYWN0aW9uKTsKKyAgICAgICAgaW50IHJpZ2h0ID0gc3RhcnRWYWx1ZS5yaWdodCArIChpbnQpICgoZW5kVmFsdWUucmlnaHQgLSBzdGFydFZhbHVlLnJpZ2h0KSAqIGZyYWN0aW9uKTsKKyAgICAgICAgaW50IGJvdHRvbSA9IHN0YXJ0VmFsdWUuYm90dG9tICsgKGludCkgKChlbmRWYWx1ZS5ib3R0b20gLSBzdGFydFZhbHVlLmJvdHRvbSkgKiBmcmFjdGlvbik7CisgICAgICAgIGlmIChtUmVjdCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFJlY3QobGVmdCwgdG9wLCByaWdodCwgYm90dG9tKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1SZWN0LnNldChsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pOworICAgICAgICAgICAgcmV0dXJuIG1SZWN0OworICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYW5pbWF0aW9uL1R5cGVDb252ZXJ0ZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9UeXBlQ29udmVydGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDNiM2ViNQotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9UeXBlQ29udmVydGVyLmphdmEKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5hbmltYXRpb247CisKKy8qKgorICogQWJzdHJhY3QgYmFzZSBjbGFzcyB1c2VkIGNvbnZlcnQgdHlwZSBUIHRvIGFub3RoZXIgdHlwZSBWLiBUaGlzCisgKiBpcyBuZWNlc3Nhcnkgd2hlbiB0aGUgdmFsdWUgdHlwZXMgb2YgaW4gYW5pbWF0aW9uIGFyZSBkaWZmZXJlbnQKKyAqIGZyb20gdGhlIHByb3BlcnR5IHR5cGUuCisgKiBAc2VlIFByb3BlcnR5VmFsdWVzSG9sZGVyI3NldENvbnZlcnRlcihUeXBlQ29udmVydGVyKQorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVHlwZUNvbnZlcnRlcjxULCBWPiB7CisgICAgcHJpdmF0ZSBDbGFzczxUPiBtRnJvbUNsYXNzOworICAgIHByaXZhdGUgQ2xhc3M8Vj4gbVRvQ2xhc3M7CisKKyAgICBwdWJsaWMgVHlwZUNvbnZlcnRlcihDbGFzczxUPiBmcm9tQ2xhc3MsIENsYXNzPFY+IHRvQ2xhc3MpIHsKKyAgICAgICAgbUZyb21DbGFzcyA9IGZyb21DbGFzczsKKyAgICAgICAgbVRvQ2xhc3MgPSB0b0NsYXNzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHRhcmdldCBjb252ZXJ0ZWQgdHlwZS4gVXNlZCBieSB0aGUgYW5pbWF0aW9uIHN5c3RlbSB0byBkZXRlcm1pbmUKKyAgICAgKiB0aGUgcHJvcGVyIHNldHRlciBmdW5jdGlvbiB0byBjYWxsLgorICAgICAqIEByZXR1cm4gVGhlIENsYXNzIHRvIGNvbnZlcnQgdGhlIGlucHV0IHRvLgorICAgICAqLworICAgIENsYXNzPFY+IGdldFRhcmdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiBtVG9DbGFzczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzb3VyY2UgY29udmVyc2lvbiB0eXBlLgorICAgICAqLworICAgIENsYXNzPFQ+IGdldFNvdXJjZVR5cGUoKSB7CisgICAgICAgIHJldHVybiBtRnJvbUNsYXNzOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnRzIGEgdmFsdWUgZnJvbSBvbmUgdHlwZSB0byBhbm90aGVyLgorICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgT2JqZWN0IHRvIGNvbnZlcnQuCisgICAgICogQHJldHVybiBBIHZhbHVlIG9mIHR5cGUgViwgY29udmVydGVkIGZyb20gPGNvZGU+dmFsdWU8L2NvZGU+LgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBWIGNvbnZlcnQoVCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBEb2VzIGEgY29udmVyc2lvbiBmcm9tIHRoZSB0YXJnZXQgdHlwZSBiYWNrIHRvIHRoZSBzb3VyY2UgdHlwZS4gVGhlIHN1YmNsYXNzCisgICAgICogbXVzdCBpbXBsZW1lbnQgdGhpcyB3aGVuIGEgVHlwZUNvbnZlcnRlciBpcyB1c2VkIGluIGFuaW1hdGlvbnMgYW5kIGN1cnJlbnQKKyAgICAgKiB2YWx1ZXMgd2lsbCBuZWVkIHRvIGJlIHJlYWQgZm9yIGFuIGFuaW1hdGlvbi4gQnkgZGVmYXVsdCwgdGhpcyB3aWxsIHJldHVybiBudWxsLAorICAgICAqIGluZGljYXRpbmcgdGhhdCBiYWNrLWNvbnZlcnNpb24gaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIE9iamVjdCB0byBjb252ZXJ0LgorICAgICAqIEByZXR1cm4gQSB2YWx1ZSBvZiB0eXBlIFQsIGNvbnZlcnRlZCBmcm9tIDxjb2RlPnZhbHVlPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwdWJsaWMgVCBjb252ZXJ0QmFjayhWIHZhbHVlKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9WYWx1ZUFuaW1hdG9yLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9hbmltYXRpb24vVmFsdWVBbmltYXRvci5qYXZhCmluZGV4IDg2ZGE2NzMuLjc4ODBmMzkgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL2FuaW1hdGlvbi9WYWx1ZUFuaW1hdG9yLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvYW5pbWF0aW9uL1ZhbHVlQW5pbWF0b3IuamF2YQpAQCAtMjgwLDYgKzI4MCwyNCBAQAogICAgIH0KIAogICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW5kIHJldHVybnMgYSBWYWx1ZUFuaW1hdG9yIHRoYXQgYW5pbWF0ZXMgYmV0d2VlbiBjb2xvciB2YWx1ZXMuIEEgc2luZ2xlCisgICAgICogdmFsdWUgaW1wbGllcyB0aGF0IHRoYXQgdmFsdWUgaXMgdGhlIG9uZSBiZWluZyBhbmltYXRlZCB0by4gSG93ZXZlciwgdGhpcyBpcyBub3QgdHlwaWNhbGx5CisgICAgICogdXNlZnVsIGluIGEgVmFsdWVBbmltYXRvciBvYmplY3QgYmVjYXVzZSB0aGVyZSBpcyBubyB3YXkgZm9yIHRoZSBvYmplY3QgdG8gZGV0ZXJtaW5lIHRoZQorICAgICAqIHN0YXJ0aW5nIHZhbHVlIGZvciB0aGUgYW5pbWF0aW9uICh1bmxpa2UgT2JqZWN0QW5pbWF0b3IsIHdoaWNoIGNhbiBkZXJpdmUgdGhhdCB2YWx1ZQorICAgICAqIGZyb20gdGhlIHRhcmdldCBvYmplY3QgYW5kIHByb3BlcnR5IGJlaW5nIGFuaW1hdGVkKS4gVGhlcmVmb3JlLCB0aGVyZSBzaG91bGQgdHlwaWNhbGx5CisgICAgICogYmUgdHdvIG9yIG1vcmUgdmFsdWVzLgorICAgICAqCisgICAgICogQHBhcmFtIHZhbHVlcyBBIHNldCBvZiB2YWx1ZXMgdGhhdCB0aGUgYW5pbWF0aW9uIHdpbGwgYW5pbWF0ZSBiZXR3ZWVuIG92ZXIgdGltZS4KKyAgICAgKiBAcmV0dXJuIEEgVmFsdWVBbmltYXRvciBvYmplY3QgdGhhdCBpcyBzZXQgdXAgdG8gYW5pbWF0ZSBiZXR3ZWVuIHRoZSBnaXZlbiB2YWx1ZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBWYWx1ZUFuaW1hdG9yIG9mQXJnYihpbnQuLi4gdmFsdWVzKSB7CisgICAgICAgIFZhbHVlQW5pbWF0b3IgYW5pbSA9IG5ldyBWYWx1ZUFuaW1hdG9yKCk7CisgICAgICAgIGFuaW0uc2V0SW50VmFsdWVzKHZhbHVlcyk7CisgICAgICAgIGFuaW0uc2V0RXZhbHVhdG9yKEFyZ2JFdmFsdWF0b3IuZ2V0SW5zdGFuY2UoKSk7CisgICAgICAgIHJldHVybiBhbmltOworICAgIH0KKworICAgIC8qKgogICAgICAqIENvbnN0cnVjdHMgYW5kIHJldHVybnMgYSBWYWx1ZUFuaW1hdG9yIHRoYXQgYW5pbWF0ZXMgYmV0d2VlbiBmbG9hdCB2YWx1ZXMuIEEgc2luZ2xlCiAgICAgICogdmFsdWUgaW1wbGllcyB0aGF0IHRoYXQgdmFsdWUgaXMgdGhlIG9uZSBiZWluZyBhbmltYXRlZCB0by4gSG93ZXZlciwgdGhpcyBpcyBub3QgdHlwaWNhbGx5CiAgICAgICogdXNlZnVsIGluIGEgVmFsdWVBbmltYXRvciBvYmplY3QgYmVjYXVzZSB0aGVyZSBpcyBubyB3YXkgZm9yIHRoZSBvYmplY3QgdG8gZGV0ZXJtaW5lIHRoZQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYW5ub3RhdGlvbi9JbnREZWYuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2Fubm90YXRpb24vSW50RGVmLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM0ZTVhNQotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2Fubm90YXRpb24vSW50RGVmLmphdmEKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuYW5ub3RhdGlvbjsKKworaW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb25Qb2xpY3k7CitpbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uVGFyZ2V0OworCitpbXBvcnQgc3RhdGljIGphdmEubGFuZy5hbm5vdGF0aW9uLkVsZW1lbnRUeXBlLkFOTk9UQVRJT05fVFlQRTsKK2ltcG9ydCBzdGF0aWMgamF2YS5sYW5nLmFubm90YXRpb24uRWxlbWVudFR5cGUuRklFTEQ7CitpbXBvcnQgc3RhdGljIGphdmEubGFuZy5hbm5vdGF0aW9uLkVsZW1lbnRUeXBlLk1FVEhPRDsKK2ltcG9ydCBzdGF0aWMgamF2YS5sYW5nLmFubm90YXRpb24uRWxlbWVudFR5cGUuUEFSQU1FVEVSOworaW1wb3J0IHN0YXRpYyBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb25Qb2xpY3kuQ0xBU1M7CitpbXBvcnQgc3RhdGljIGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvblBvbGljeS5TT1VSQ0U7CisKKy8qKgorICogRGVub3RlcyB0aGF0IHRoZSBhbm5vdGF0ZWQgZWxlbWVudCBvZiBpbnRlZ2VyIHR5cGUsIHJlcHJlc2VudHMKKyAqIGEgbG9naWNhbCB0eXBlIGFuZCB0aGF0IGl0cyB2YWx1ZSBzaG91bGQgYmUgb25lIG9mIHRoZSBleHBsaWNpdGx5CisgKiBuYW1lZCBjb25zdGFudHMuIElmIHRoZSB7QGxpbmsgI2ZsYWcoKX0gYXR0cmlidXRlIGlzIHNldCB0byB0cnVlLAorICogbXVsdGlwbGUgY29uc3RhbnRzIGNhbiBiZSBjb21iaW5lZC4KKyAqIDxwPgorICogRXhhbXBsZToKKyAqIDxwcmU+e0Bjb2RlCisgKiAgJiM2NDtSZXRlbnRpb24oQ0xBU1MpCisgKiAgJiM2NDtJbnREZWYoJiMxMjM7TkFWSUdBVElPTl9NT0RFX1NUQU5EQVJELCBOQVZJR0FUSU9OX01PREVfTElTVCwgTkFWSUdBVElPTl9NT0RFX1RBQlMmIzEyNTspCisgKiAgcHVibGljICYjNjQ7aW50ZXJmYWNlIE5hdmlnYXRpb25Nb2RlICYjMTIzOyYjMTI1OworICogIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5BVklHQVRJT05fTU9ERV9TVEFOREFSRCA9IDA7CisgKiAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkFWSUdBVElPTl9NT0RFX0xJU1QgPSAxOworICogIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5BVklHQVRJT05fTU9ERV9UQUJTID0gMjsKKyAqICAuLi4KKyAqICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXROYXZpZ2F0aW9uTW9kZSgmIzY0O05hdmlnYXRpb25Nb2RlIGludCBtb2RlKTsKKyAqICAmIzY0O05hdmlnYXRpb25Nb2RlCisgKiAgcHVibGljIGFic3RyYWN0IGludCBnZXROYXZpZ2F0aW9uTW9kZSgpOworICogfTwvcHJlPgorICogRm9yIGEgZmxhZywgc2V0IHRoZSBmbGFnIGF0dHJpYnV0ZToKKyAqIDxwcmU+e0Bjb2RlCisgKiAgJiM2NDtJbnREZWYoCisgKiAgICAgIGZsYWcgPSB0cnVlCisgKiAgICAgIHZhbHVlID0gJiMxMjM7TkFWSUdBVElPTl9NT0RFX1NUQU5EQVJELCBOQVZJR0FUSU9OX01PREVfTElTVCwgTkFWSUdBVElPTl9NT0RFX1RBQlMmIzEyNTspCisgKiB9PC9wcmU+CisgKgorICogQGhpZGUKKyAqLworQFJldGVudGlvbihDTEFTUykKK0BUYXJnZXQoe0FOTk9UQVRJT05fVFlQRX0pCitwdWJsaWMgQGludGVyZmFjZSBJbnREZWYgeworICAgIC8qKiBEZWZpbmVzIHRoZSBhbGxvd2VkIGNvbnN0YW50cyBmb3IgdGhpcyBlbGVtZW50ICovCisgICAgbG9uZ1tdIHZhbHVlKCkgZGVmYXVsdCB7fTsKKworICAgIC8qKiBEZWZpbmVzIHdoZXRoZXIgdGhlIGNvbnN0YW50cyBjYW4gYmUgdXNlZCBhcyBhIGZsYWcsIG9yIGp1c3QgYXMgYW4gZW51bSAodGhlIGRlZmF1bHQpICovCisgICAgYm9vbGVhbiBmbGFnKCkgZGVmYXVsdCBmYWxzZTsKK30KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL2Fubm90YXRpb24vTm9uTnVsbC5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvYW5ub3RhdGlvbi9Ob25OdWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU2MDRmMAotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2Fubm90YXRpb24vTm9uTnVsbC5qYXZhCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmFubm90YXRpb247CisKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb247CitpbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uVGFyZ2V0OworCitpbXBvcnQgc3RhdGljIGphdmEubGFuZy5hbm5vdGF0aW9uLkVsZW1lbnRUeXBlLkZJRUxEOworaW1wb3J0IHN0YXRpYyBqYXZhLmxhbmcuYW5ub3RhdGlvbi5FbGVtZW50VHlwZS5NRVRIT0Q7CitpbXBvcnQgc3RhdGljIGphdmEubGFuZy5hbm5vdGF0aW9uLkVsZW1lbnRUeXBlLlBBUkFNRVRFUjsKK2ltcG9ydCBzdGF0aWMgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uUG9saWN5LlNPVVJDRTsKKworLyoqCisgKiBEZW5vdGVzIHRoYXQgYSBwYXJhbWV0ZXIsIGZpZWxkIG9yIG1ldGhvZCByZXR1cm4gdmFsdWUgY2FuIG5ldmVyIGJlIG51bGwuCisgKiA8cD4KKyAqIFRoaXMgaXMgYSBtYXJrZXIgYW5ub3RhdGlvbiBhbmQgaXQgaGFzIG5vIHNwZWNpZmljIGF0dHJpYnV0ZXMuCisgKi8KK0BSZXRlbnRpb24oU09VUkNFKQorQFRhcmdldCh7TUVUSE9ELCBQQVJBTUVURVIsIEZJRUxEfSkKK3B1YmxpYyBAaW50ZXJmYWNlIE5vbk51bGwgeworfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYW5ub3RhdGlvbi9OdWxsYWJsZS5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvYW5ub3RhdGlvbi9OdWxsYWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkYmEyZjYKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9hbm5vdGF0aW9uL051bGxhYmxlLmphdmEKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuYW5ub3RhdGlvbjsKKworaW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5UYXJnZXQ7CisKK2ltcG9ydCBzdGF0aWMgamF2YS5sYW5nLmFubm90YXRpb24uRWxlbWVudFR5cGUuRklFTEQ7CitpbXBvcnQgc3RhdGljIGphdmEubGFuZy5hbm5vdGF0aW9uLkVsZW1lbnRUeXBlLk1FVEhPRDsKK2ltcG9ydCBzdGF0aWMgamF2YS5sYW5nLmFubm90YXRpb24uRWxlbWVudFR5cGUuUEFSQU1FVEVSOworaW1wb3J0IHN0YXRpYyBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb25Qb2xpY3kuU09VUkNFOworCisvKioKKyAqIERlbm90ZXMgdGhhdCBhIHBhcmFtZXRlciwgZmllbGQgb3IgbWV0aG9kIHJldHVybiB2YWx1ZSBjYW4gYmUgbnVsbC4KKyAqIDxwPgorICogV2hlbiBkZWNvcmF0aW5nIGEgbWV0aG9kIGNhbGwgcGFyYW1ldGVyLCB0aGlzIGRlbm90ZXMgdGhhdCB0aGUgcGFyYW1ldGVyIGNhbgorICogbGVnaXRpbWF0ZWx5IGJlIG51bGwgYW5kIHRoZSBtZXRob2Qgd2lsbCBncmFjZWZ1bGx5IGRlYWwgd2l0aCBpdC4gVHlwaWNhbGx5CisgKiB1c2VkIG9uIG9wdGlvbmFsIHBhcmFtZXRlcnMuCisgKiA8cD4KKyAqIFdoZW4gZGVjb3JhdGluZyBhIG1ldGhvZCwgdGhpcyBkZW5vdGVzIHRoZSBtZXRob2QgbWlnaHQgbGVnaXRpbWF0ZWx5IHJldHVybgorICogbnVsbC4KKyAqIDxwPgorICogVGhpcyBpcyBhIG1hcmtlciBhbm5vdGF0aW9uIGFuZCBpdCBoYXMgbm8gc3BlY2lmaWMgYXR0cmlidXRlcy4KKyAqLworQFJldGVudGlvbihTT1VSQ0UpCitAVGFyZ2V0KHtNRVRIT0QsIFBBUkFNRVRFUiwgRklFTER9KQorcHVibGljIEBpbnRlcmZhY2UgTnVsbGFibGUgeworfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYW5ub3RhdGlvbi9TdHJpbmdEZWYuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2Fubm90YXRpb24vU3RyaW5nRGVmLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI5ZGZmNAotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2Fubm90YXRpb24vU3RyaW5nRGVmLmphdmEKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuYW5ub3RhdGlvbjsKKworaW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5UYXJnZXQ7CisKK2ltcG9ydCBzdGF0aWMgamF2YS5sYW5nLmFubm90YXRpb24uRWxlbWVudFR5cGUuQU5OT1RBVElPTl9UWVBFOworaW1wb3J0IHN0YXRpYyBqYXZhLmxhbmcuYW5ub3RhdGlvbi5FbGVtZW50VHlwZS5GSUVMRDsKK2ltcG9ydCBzdGF0aWMgamF2YS5sYW5nLmFubm90YXRpb24uRWxlbWVudFR5cGUuTUVUSE9EOworaW1wb3J0IHN0YXRpYyBqYXZhLmxhbmcuYW5ub3RhdGlvbi5FbGVtZW50VHlwZS5QQVJBTUVURVI7CitpbXBvcnQgc3RhdGljIGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvblBvbGljeS5DTEFTUzsKK2ltcG9ydCBzdGF0aWMgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uUG9saWN5LlNPVVJDRTsKKworLyoqCisgKiBEZW5vdGVzIHRoYXQgdGhlIGFubm90YXRlZCBTdHJpbmcgZWxlbWVudCwgcmVwcmVzZW50cyBhIGxvZ2ljYWwKKyAqIHR5cGUgYW5kIHRoYXQgaXRzIHZhbHVlIHNob3VsZCBiZSBvbmUgb2YgdGhlIGV4cGxpY2l0bHkgbmFtZWQgY29uc3RhbnRzLgorICogPHA+CisgKiBFeGFtcGxlOgorICogPHByZT57QGNvZGUKKyAqICAmIzY0O1JldGVudGlvbihTT1VSQ0UpCisgKiAgJiM2NDtTdHJpbmdEZWYoJiMxMjM7CisgKiAgICAgUE9XRVJfU0VSVklDRSwKKyAqICAgICBXSU5ET1dfU0VSVklDRSwKKyAqICAgICBMQVlPVVRfSU5GTEFURVJfU0VSVklDRQorICogICYjMTI1OykKKyAqICBwdWJsaWMgJiM2NDtpbnRlcmZhY2UgU2VydmljZU5hbWUgJiMxMjM7JiMxMjU7CisgKiAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUE9XRVJfU0VSVklDRSA9ICJwb3dlciI7CisgKiAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgV0lORE9XX1NFUlZJQ0UgPSAid2luZG93IjsKKyAqICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMQVlPVVRfSU5GTEFURVJfU0VSVklDRSA9ICJsYXlvdXRfaW5mbGF0ZXIiOworICogIC4uLgorICogIHB1YmxpYyBhYnN0cmFjdCBPYmplY3QgZ2V0U3lzdGVtU2VydmljZSgmIzY0O1NlcnZpY2VOYW1lIFN0cmluZyBuYW1lKTsKKyAqIH08L3ByZT4KKyAqCisgKiBAaGlkZQorICovCitAUmV0ZW50aW9uKENMQVNTKQorQFRhcmdldCh7QU5OT1RBVElPTl9UWVBFfSkKK3B1YmxpYyBAaW50ZXJmYWNlIFN0cmluZ0RlZiB7CisgICAgLyoqIERlZmluZXMgdGhlIGFsbG93ZWQgY29uc3RhbnRzIGZvciB0aGlzIGVsZW1lbnQgKi8KKyAgICBTdHJpbmdbXSB2YWx1ZSgpIGRlZmF1bHQge307Cit9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9hcHAvQWN0aW9uQmFyLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9hcHAvQWN0aW9uQmFyLmphdmEKaW5kZXggYzRkZGYxZi4uZmJlODk4NyAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL0FjdGlvbkJhci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2FwcC9BY3Rpb25CYXIuamF2YQpAQCAtMTYsNiArMTYsOSBAQAogCiBwYWNrYWdlIGFuZHJvaWQuYXBwOwogCitpbXBvcnQgYW5kcm9pZC5hbm5vdGF0aW9uLkludERlZjsKK2ltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uTm9uTnVsbDsKK2ltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uTnVsbGFibGU7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5UeXBlZEFycmF5OwogaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuRHJhd2FibGU7CkBAIC0yOCw2ICszMSw5IEBACiBpbXBvcnQgYW5kcm9pZC52aWV3LldpbmRvdzsKIGltcG9ydCBhbmRyb2lkLndpZGdldC5TcGlubmVyQWRhcHRlcjsKIAoraW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb25Qb2xpY3k7CisKIC8qKgogICogQSB3aW5kb3cgZmVhdHVyZSBhdCB0aGUgdG9wIG9mIHRoZSBhY3Rpdml0eSB0aGF0IG1heSBkaXNwbGF5IHRoZSBhY3Rpdml0eSB0aXRsZSwgbmF2aWdhdGlvbgogICogbW9kZXMsIGFuZCBvdGhlciBpbnRlcmFjdGl2ZSBpdGVtcy4KQEAgLTU3LDYgKzYzLDExIEBACiAgKiA8L2Rpdj4KICAqLwogcHVibGljIGFic3RyYWN0IGNsYXNzIEFjdGlvbkJhciB7CisgICAgLyoqIEBoaWRlICovCisgICAgQFJldGVudGlvbihSZXRlbnRpb25Qb2xpY3kuU09VUkNFKQorICAgIEBJbnREZWYoe05BVklHQVRJT05fTU9ERV9TVEFOREFSRCwgTkFWSUdBVElPTl9NT0RFX0xJU1QsIE5BVklHQVRJT05fTU9ERV9UQUJTfSkKKyAgICBwdWJsaWMgQGludGVyZmFjZSBOYXZpZ2F0aW9uTW9kZSB7fQorCiAgICAgLyoqCiAgICAgICogU3RhbmRhcmQgbmF2aWdhdGlvbiBtb2RlLiBDb25zaXN0cyBvZiBlaXRoZXIgYSBsb2dvIG9yIGljb24KICAgICAgKiBhbmQgdGl0bGUgdGV4dCB3aXRoIGFuIG9wdGlvbmFsIHN1YnRpdGxlLiBDbGlja2luZyBhbnkgb2YgdGhlc2UgZWxlbWVudHMKQEAgLTc4LDYgKzg5LDE5IEBACiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkFWSUdBVElPTl9NT0RFX1RBQlMgPSAyOwogCisgICAgLyoqIEBoaWRlICovCisgICAgQFJldGVudGlvbihSZXRlbnRpb25Qb2xpY3kuU09VUkNFKQorICAgIEBJbnREZWYoZmxhZyA9IHRydWUsCisgICAgICAgICAgICB2YWx1ZSA9IHsKKyAgICAgICAgICAgICAgICAgICAgRElTUExBWV9VU0VfTE9HTywKKyAgICAgICAgICAgICAgICAgICAgRElTUExBWV9TSE9XX0hPTUUsCisgICAgICAgICAgICAgICAgICAgIERJU1BMQVlfSE9NRV9BU19VUCwKKyAgICAgICAgICAgICAgICAgICAgRElTUExBWV9TSE9XX1RJVExFLAorICAgICAgICAgICAgICAgICAgICBESVNQTEFZX1NIT1dfQ1VTVE9NLAorICAgICAgICAgICAgICAgICAgICBESVNQTEFZX1RJVExFX01VTFRJUExFX0xJTkVTCisgICAgICAgICAgICB9KQorICAgIHB1YmxpYyBAaW50ZXJmYWNlIERpc3BsYXlPcHRpb25zIHt9CisKICAgICAvKioKICAgICAgKiBVc2UgbG9nbyBpbnN0ZWFkIG9mIGljb24gaWYgYXZhaWxhYmxlLiBUaGlzIGZsYWcgd2lsbCBjYXVzZSBhcHByb3ByaWF0ZQogICAgICAqIG5hdmlnYXRpb24gbW9kZXMgdG8gdXNlIGEgd2lkZXIgbG9nbyBpbiBwbGFjZSBvZiB0aGUgc3RhbmRhcmQgaWNvbi4KQEAgLTM0MSw3ICszNjUsNyBAQAogICAgICAqIEBwYXJhbSBvcHRpb25zIEEgY29tYmluYXRpb24gb2YgdGhlIGJpdHMgZGVmaW5lZCBieSB0aGUgRElTUExBWV8gY29uc3RhbnRzCiAgICAgICogICAgICAgICAgICAgICAgZGVmaW5lZCBpbiBBY3Rpb25CYXIuCiAgICAgICovCi0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0RGlzcGxheU9wdGlvbnMoaW50IG9wdGlvbnMpOworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldERpc3BsYXlPcHRpb25zKEBEaXNwbGF5T3B0aW9ucyBpbnQgb3B0aW9ucyk7CiAgICAgCiAgICAgLyoqCiAgICAgICogU2V0IHNlbGVjdGVkIGRpc3BsYXkgb3B0aW9ucy4gT25seSB0aGUgb3B0aW9ucyBzcGVjaWZpZWQgYnkgbWFzayB3aWxsIGJlIGNoYW5nZWQuCkBAIC0zNTYsNyArMzgwLDcgQEAKICAgICAgKiAgICAgICAgICAgICAgICBkZWZpbmVkIGluIEFjdGlvbkJhci4KICAgICAgKiBAcGFyYW0gbWFzayBBIGJpdCBtYXNrIGRlY2xhcmluZyB3aGljaCBkaXNwbGF5IG9wdGlvbnMgc2hvdWxkIGJlIGNoYW5nZWQuCiAgICAgICovCi0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0RGlzcGxheU9wdGlvbnMoaW50IG9wdGlvbnMsIGludCBtYXNrKTsKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXREaXNwbGF5T3B0aW9ucyhARGlzcGxheU9wdGlvbnMgaW50IG9wdGlvbnMsIEBEaXNwbGF5T3B0aW9ucyBpbnQgbWFzayk7CiAKICAgICAvKioKICAgICAgKiBTZXQgd2hldGhlciB0byBkaXNwbGF5IHRoZSBhY3Rpdml0eSBsb2dvIHJhdGhlciB0aGFuIHRoZSBhY3Rpdml0eSBpY29uLgpAQCAtNDMxLDcgKzQ1NSw3IEBACiAgICAgICogQHNlZSAjc2V0U3RhY2tlZEJhY2tncm91bmREcmF3YWJsZShEcmF3YWJsZSkKICAgICAgKiBAc2VlICNzZXRTcGxpdEJhY2tncm91bmREcmF3YWJsZShEcmF3YWJsZSkKICAgICAgKi8KLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRCYWNrZ3JvdW5kRHJhd2FibGUoRHJhd2FibGUgZCk7CisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0QmFja2dyb3VuZERyYXdhYmxlKEBOdWxsYWJsZSBEcmF3YWJsZSBkKTsKIAogICAgIC8qKgogICAgICAqIFNldCB0aGUgQWN0aW9uQmFyJ3Mgc3RhY2tlZCBiYWNrZ3JvdW5kLiBUaGlzIHdpbGwgYXBwZWFyCkBAIC00ODQsNiArNTA4LDcgQEAKICAgICAgKgogICAgICAqIEByZXR1cm4gVGhlIGN1cnJlbnQgbmF2aWdhdGlvbiBtb2RlLgogICAgICAqLworICAgIEBOYXZpZ2F0aW9uTW9kZQogICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0TmF2aWdhdGlvbk1vZGUoKTsKIAogICAgIC8qKgpAQCAtNDk0LDcgKzUxOSw3IEBACiAgICAgICogQHNlZSAjTkFWSUdBVElPTl9NT0RFX0xJU1QKICAgICAgKiBAc2VlICNOQVZJR0FUSU9OX01PREVfVEFCUwogICAgICAqLwotICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldE5hdmlnYXRpb25Nb2RlKGludCBtb2RlKTsKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXROYXZpZ2F0aW9uTW9kZShATmF2aWdhdGlvbk1vZGUgaW50IG1vZGUpOwogCiAgICAgLyoqCiAgICAgICogQHJldHVybiBUaGUgY3VycmVudCBzZXQgb2YgZGlzcGxheSBvcHRpb25zLiAKQEAgLTEwMjQsNyArMTA0OSw3IEBACiAgICAgICAgIH0pCiAgICAgICAgIHB1YmxpYyBpbnQgZ3Jhdml0eSA9IEdyYXZpdHkuTk9fR1JBVklUWTsKIAotICAgICAgICBwdWJsaWMgTGF5b3V0UGFyYW1zKENvbnRleHQgYywgQXR0cmlidXRlU2V0IGF0dHJzKSB7CisgICAgICAgIHB1YmxpYyBMYXlvdXRQYXJhbXMoQE5vbk51bGwgQ29udGV4dCBjLCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKICAgICAgICAgICAgIHN1cGVyKGMsIGF0dHJzKTsKIAogICAgICAgICAgICAgVHlwZWRBcnJheSBhID0gYy5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLApkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL0FjdGl2aXR5LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9hcHAvQWN0aXZpdHkuamF2YQppbmRleCBkNmRiOGMyLi44NjI4ZmY3IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9hcHAvQWN0aXZpdHkuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9hcHAvQWN0aXZpdHkuamF2YQpAQCAtMTYsMTEgKzE2LDE0IEBACiAKIHBhY2thZ2UgYW5kcm9pZC5hcHA7CiAKK2ltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uTm9uTnVsbDsKIGltcG9ydCBhbmRyb2lkLnV0aWwuQXJyYXlNYXA7CiBpbXBvcnQgYW5kcm9pZC51dGlsLlN1cGVyTm90Q2FsbGVkRXhjZXB0aW9uOwogaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLmFwcC5BY3Rpb25CYXJJbXBsOwogaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLnBvbGljeS5Qb2xpY3lNYW5hZ2VyOwogCitpbXBvcnQgYW5kcm9pZC5hbm5vdGF0aW9uLkludERlZjsKK2ltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uTnVsbGFibGU7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbXBvbmVudENhbGxiYWNrczI7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbXBvbmVudE5hbWU7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRlbnRSZXNvbHZlcjsKQEAgLTg0LDYgKzg3LDggQEAKIAogaW1wb3J0IGphdmEuaW8uRmlsZURlc2NyaXB0b3I7CiBpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb247CitpbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uUG9saWN5OwogaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CiBpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CiAKQEAgLTg1Miw2ICs4NTcsNyBAQAogICAgICAqIEBzZWUgI2dldFdpbmRvdwogICAgICAqIEBzZWUgYW5kcm9pZC52aWV3LldpbmRvdyNnZXRDdXJyZW50Rm9jdXMKICAgICAgKi8KKyAgICBATnVsbGFibGUKICAgICBwdWJsaWMgVmlldyBnZXRDdXJyZW50Rm9jdXMoKSB7CiAgICAgICAgIHJldHVybiBtV2luZG93ICE9IG51bGwgPyBtV2luZG93LmdldEN1cnJlbnRGb2N1cygpIDogbnVsbDsKICAgICB9CkBAIC04ODIsNyArODg4LDcgQEAKICAgICAgKiBAc2VlICNvblJlc3RvcmVJbnN0YW5jZVN0YXRlCiAgICAgICogQHNlZSAjb25Qb3N0Q3JlYXRlCiAgICAgICovCi0gICAgcHJvdGVjdGVkIHZvaWQgb25DcmVhdGUoQnVuZGxlIHNhdmVkSW5zdGFuY2VTdGF0ZSkgeworICAgIHByb3RlY3RlZCB2b2lkIG9uQ3JlYXRlKEBOdWxsYWJsZSBCdW5kbGUgc2F2ZWRJbnN0YW5jZVN0YXRlKSB7CiAgICAgICAgIGlmIChERUJVR19MSUZFQ1lDTEUpIFNsb2cudihUQUcsICJvbkNyZWF0ZSAiICsgdGhpcyArICI6ICIgKyBzYXZlZEluc3RhbmNlU3RhdGUpOwogICAgICAgICBpZiAobUxhc3ROb25Db25maWd1cmF0aW9uSW5zdGFuY2VzICE9IG51bGwpIHsKICAgICAgICAgICAgIG1BbGxMb2FkZXJNYW5hZ2VycyA9IG1MYXN0Tm9uQ29uZmlndXJhdGlvbkluc3RhbmNlcy5sb2FkZXJzOwpAQCAtMTAxMCw3ICsxMDE2LDcgQEAKICAgICAgKiAgICAgcmVjZW50bHkgc3VwcGxpZWQgaW4ge0BsaW5rICNvblNhdmVJbnN0YW5jZVN0YXRlfS4gIDxiPjxpPk5vdGU6IE90aGVyd2lzZSBpdCBpcyBudWxsLjwvaT48L2I+CiAgICAgICogQHNlZSAjb25DcmVhdGUKICAgICAgKi8KLSAgICBwcm90ZWN0ZWQgdm9pZCBvblBvc3RDcmVhdGUoQnVuZGxlIHNhdmVkSW5zdGFuY2VTdGF0ZSkgeworICAgIHByb3RlY3RlZCB2b2lkIG9uUG9zdENyZWF0ZShATnVsbGFibGUgQnVuZGxlIHNhdmVkSW5zdGFuY2VTdGF0ZSkgewogICAgICAgICBpZiAoIWlzQ2hpbGQoKSkgewogICAgICAgICAgICAgbVRpdGxlUmVhZHkgPSB0cnVlOwogICAgICAgICAgICAgb25UaXRsZUNoYW5nZWQoZ2V0VGl0bGUoKSwgZ2V0VGl0bGVDb2xvcigpKTsKQEAgLTEzNDcsNiArMTM1Myw3IEBACiAgICAgICogQHNlZSAjb25TYXZlSW5zdGFuY2VTdGF0ZQogICAgICAqIEBzZWUgI29uUGF1c2UKICAgICAgKi8KKyAgICBATnVsbGFibGUKICAgICBwdWJsaWMgQ2hhclNlcXVlbmNlIG9uQ3JlYXRlRGVzY3JpcHRpb24oKSB7CiAgICAgICAgIHJldHVybiBudWxsOwogICAgIH0KQEAgLTE1NTEsNiArMTU1OCw3IEBACiAgICAgICoge0BsaW5rIEZyYWdtZW50I3NldFJldGFpbkluc3RhbmNlKGJvb2xlYW4pfSBpbnN0ZWFkOyB0aGlzIGlzIGFsc28KICAgICAgKiBhdmFpbGFibGUgb24gb2xkZXIgcGxhdGZvcm1zIHRocm91Z2ggdGhlIEFuZHJvaWQgY29tcGF0aWJpbGl0eSBwYWNrYWdlLgogICAgICAqLworICAgIEBOdWxsYWJsZQogICAgIEBEZXByZWNhdGVkCiAgICAgcHVibGljIE9iamVjdCBnZXRMYXN0Tm9uQ29uZmlndXJhdGlvbkluc3RhbmNlKCkgewogICAgICAgICByZXR1cm4gbUxhc3ROb25Db25maWd1cmF0aW9uSW5zdGFuY2VzICE9IG51bGwKQEAgLTE2MzAsNiArMTYzOCw3IEBACiAgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBvYmplY3QgcHJldmlvdXNseSByZXR1cm5lZCBieQogICAgICAqIHtAbGluayAjb25SZXRhaW5Ob25Db25maWd1cmF0aW9uQ2hpbGRJbnN0YW5jZXMoKX0KICAgICAgKi8KKyAgICBATnVsbGFibGUKICAgICBIYXNoTWFwPFN0cmluZywgT2JqZWN0PiBnZXRMYXN0Tm9uQ29uZmlndXJhdGlvbkNoaWxkSW5zdGFuY2VzKCkgewogICAgICAgICByZXR1cm4gbUxhc3ROb25Db25maWd1cmF0aW9uSW5zdGFuY2VzICE9IG51bGwKICAgICAgICAgICAgICAgICA/IG1MYXN0Tm9uQ29uZmlndXJhdGlvbkluc3RhbmNlcy5jaGlsZHJlbiA6IG51bGw7CkBAIC0xNjQyLDYgKzE2NTEsNyBAQAogICAgICAqIHNldCBvZiBjaGlsZCBhY3Rpdml0aWVzLCBzdWNoIGFzIEFjdGl2aXR5R3JvdXAuICBUaGUgc2FtZSBndWFyYW50ZWVzIGFuZCByZXN0cmljdGlvbnMgYXBwbHkKICAgICAgKiBhcyBmb3Ige0BsaW5rICNvblJldGFpbk5vbkNvbmZpZ3VyYXRpb25JbnN0YW5jZSgpfS4gIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgbnVsbC4KICAgICAgKi8KKyAgICBATnVsbGFibGUKICAgICBIYXNoTWFwPFN0cmluZyxPYmplY3Q+IG9uUmV0YWluTm9uQ29uZmlndXJhdGlvbkNoaWxkSW5zdGFuY2VzKCkgewogICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CkBAIC0xODg5LDYgKzE4OTksNyBAQAogICAgICAqCiAgICAgICogQHJldHVybiBUaGUgQWN0aXZpdHkncyBBY3Rpb25CYXIsIG9yIG51bGwgaWYgaXQgZG9lcyBub3QgaGF2ZSBvbmUuCiAgICAgICovCisgICAgQE51bGxhYmxlCiAgICAgcHVibGljIEFjdGlvbkJhciBnZXRBY3Rpb25CYXIoKSB7CiAgICAgICAgIGluaXRBY3Rpb25CYXIoKTsKICAgICAgICAgcmV0dXJuIG1BY3Rpb25CYXI7CkBAIC0xOTg1LDcgKzE5OTYsMTcgQEAKICAgICBwdWJsaWMgdm9pZCBzZXRGaW5pc2hPblRvdWNoT3V0c2lkZShib29sZWFuIGZpbmlzaCkgewogICAgICAgICBtV2luZG93LnNldENsb3NlT25Ub3VjaE91dHNpZGUoZmluaXNoKTsKICAgICB9Ci0gICAgCisKKyAgICAvKiogQGhpZGUgKi8KKyAgICBASW50RGVmKHsKKyAgICAgICAgICAgIERFRkFVTFRfS0VZU19ESVNBQkxFLAorICAgICAgICAgICAgREVGQVVMVF9LRVlTX0RJQUxFUiwKKyAgICAgICAgICAgIERFRkFVTFRfS0VZU19TSE9SVENVVCwKKyAgICAgICAgICAgIERFRkFVTFRfS0VZU19TRUFSQ0hfTE9DQUwsCisgICAgICAgICAgICBERUZBVUxUX0tFWVNfU0VBUkNIX0dMT0JBTH0pCisgICAgQFJldGVudGlvbihSZXRlbnRpb25Qb2xpY3kuU09VUkNFKQorICAgIEBpbnRlcmZhY2UgRGVmYXVsdEtleU1vZGUge30KKwogICAgIC8qKgogICAgICAqIFVzZSB3aXRoIHtAbGluayAjc2V0RGVmYXVsdEtleU1vZGV9IHRvIHR1cm4gb2ZmIGRlZmF1bHQgaGFuZGxpbmcgb2YKICAgICAgKiBrZXlzLgpAQCAtMjA1NSw3ICsyMDc2LDcgQEAKICAgICAgKiBAc2VlICNERUZBVUxUX0tFWVNfU0VBUkNIX0dMT0JBTAogICAgICAqIEBzZWUgI29uS2V5RG93bgogICAgICAqLwotICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldERlZmF1bHRLZXlNb2RlKGludCBtb2RlKSB7CisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0RGVmYXVsdEtleU1vZGUoQERlZmF1bHRLZXlNb2RlIGludCBtb2RlKSB7CiAgICAgICAgIG1EZWZhdWx0S2V5TW9kZSA9IG1vZGU7CiAgICAgICAgIAogICAgICAgICAvLyBTb21lIG1vZGVzIHVzZSBhIFNwYW5uYWJsZVN0cmluZ0J1aWxkZXIgdG8gdHJhY2sgJiBkaXNwYXRjaCBpbnB1dCBldmVudHMKQEAgLTI1MjEsNiArMjU0Miw3IEBACiAgICAgICogc2ltcGx5IHJldHVybnMgbnVsbCBzbyB0aGF0IGFsbCBwYW5lbCBzdWItd2luZG93cyB3aWxsIGhhdmUgdGhlIGRlZmF1bHQKICAgICAgKiBtZW51IGJlaGF2aW9yLgogICAgICAqLworICAgIEBOdWxsYWJsZQogICAgIHB1YmxpYyBWaWV3IG9uQ3JlYXRlUGFuZWxWaWV3KGludCBmZWF0dXJlSWQpIHsKICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQpAQCAtMzAxOCw2ICszMDQwLDcgQEAKICAgICAgKiB7QGxpbmsgRnJhZ21lbnRNYW5hZ2VyfSBpbnN0ZWFkOyB0aGlzIGlzIGFsc28KICAgICAgKiBhdmFpbGFibGUgb24gb2xkZXIgcGxhdGZvcm1zIHRocm91Z2ggdGhlIEFuZHJvaWQgY29tcGF0aWJpbGl0eSBwYWNrYWdlLgogICAgICAqLworICAgIEBOdWxsYWJsZQogICAgIEBEZXByZWNhdGVkCiAgICAgcHJvdGVjdGVkIERpYWxvZyBvbkNyZWF0ZURpYWxvZyhpbnQgaWQsIEJ1bmRsZSBhcmdzKSB7CiAgICAgICAgIHJldHVybiBvbkNyZWF0ZURpYWxvZyhpZCk7CkBAIC0zMTA1LDYgKzMxMjgsNyBAQAogICAgICAqIHtAbGluayBGcmFnbWVudE1hbmFnZXJ9IGluc3RlYWQ7IHRoaXMgaXMgYWxzbwogICAgICAqIGF2YWlsYWJsZSBvbiBvbGRlciBwbGF0Zm9ybXMgdGhyb3VnaCB0aGUgQW5kcm9pZCBjb21wYXRpYmlsaXR5IHBhY2thZ2UuCiAgICAgICovCisgICAgQE51bGxhYmxlCiAgICAgQERlcHJlY2F0ZWQKICAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBzaG93RGlhbG9nKGludCBpZCwgQnVuZGxlIGFyZ3MpIHsKICAgICAgICAgaWYgKG1NYW5hZ2VkRGlhbG9ncyA9PSBudWxsKSB7CkBAIC0zMjI2LDEzICszMjUwLDEzIEBACiAgICAgICogPHA+SXQgaXMgdHlwaWNhbGx5IGNhbGxlZCBmcm9tIG9uU2VhcmNoUmVxdWVzdGVkKCksIGVpdGhlciBkaXJlY3RseSBmcm9tIAogICAgICAqIEFjdGl2aXR5Lm9uU2VhcmNoUmVxdWVzdGVkKCkgb3IgZnJvbSBhbiBvdmVycmlkZGVuIHZlcnNpb24gaW4gYW55IGdpdmVuIAogICAgICAqIEFjdGl2aXR5LiAgSWYgeW91ciBnb2FsIGlzIHNpbXBseSB0byBhY3RpdmF0ZSBzZWFyY2gsIGl0IGlzIHByZWZlcnJlZCB0byBjYWxsCi0gICAgICogb25TZWFyY2hSZXF1ZXN0ZWQoKSwgd2hpY2ggbWF5IGhhdmUgYmVlbiBvdmVycmlkZW4gZWxzZXdoZXJlIGluIHlvdXIgQWN0aXZpdHkuICBJZiB5b3VyIGdvYWwKKyAgICAgKiBvblNlYXJjaFJlcXVlc3RlZCgpLCB3aGljaCBtYXkgaGF2ZSBiZWVuIG92ZXJyaWRkZW4gZWxzZXdoZXJlIGluIHlvdXIgQWN0aXZpdHkuICBJZiB5b3VyIGdvYWwKICAgICAgKiBpcyB0byBpbmplY3Qgc3BlY2lmaWMgZGF0YSBzdWNoIGFzIGNvbnRleHQgZGF0YSwgaXQgaXMgcHJlZmVycmVkIHRvIDxpPm92ZXJyaWRlPC9pPgogICAgICAqIG9uU2VhcmNoUmVxdWVzdGVkKCksIHNvIHRoYXQgYW55IGNhbGxlcnMgdG8gaXQgd2lsbCBiZW5lZml0IGZyb20gdGhlIG92ZXJyaWRlLgogICAgICAqIAogICAgICAqIEBwYXJhbSBpbml0aWFsUXVlcnkgQW55IG5vbi1udWxsIG5vbi1lbXB0eSBzdHJpbmcgd2lsbCBiZSBpbnNlcnRlZCBhcyAKICAgICAgKiBwcmUtZW50ZXJlZCB0ZXh0IGluIHRoZSBzZWFyY2ggcXVlcnkgYm94LgotICAgICAqIEBwYXJhbSBzZWxlY3RJbml0aWFsUXVlcnkgSWYgdHJ1ZSwgdGhlIGludGlhbCBxdWVyeSB3aWxsIGJlIHByZXNlbGVjdGVkLCB3aGljaCBtZWFucyB0aGF0CisgICAgICogQHBhcmFtIHNlbGVjdEluaXRpYWxRdWVyeSBJZiB0cnVlLCB0aGUgaW5pdGlhbCBxdWVyeSB3aWxsIGJlIHByZXNlbGVjdGVkLCB3aGljaCBtZWFucyB0aGF0CiAgICAgICogYW55IGZ1cnRoZXIgdHlwaW5nIHdpbGwgcmVwbGFjZSBpdC4gIFRoaXMgaXMgdXNlZnVsIGZvciBjYXNlcyB3aGVyZSBhbiBlbnRpcmUgcHJlLWZvcm1lZAogICAgICAqIHF1ZXJ5IGlzIGJlaW5nIGluc2VydGVkLiAgSWYgZmFsc2UsIHRoZSBzZWxlY3Rpb24gcG9pbnQgd2lsbCBiZSBwbGFjZWQgYXQgdGhlIGVuZCBvZiB0aGUKICAgICAgKiBpbnNlcnRlZCBxdWVyeS4gIFRoaXMgaXMgdXNlZnVsIHdoZW4gdGhlIGluc2VydGVkIHF1ZXJ5IGlzIHRleHQgdGhhdCB0aGUgdXNlciBlbnRlcmVkLApAQCAtMzI1MCw4ICszMjc0LDggQEAKICAgICAgKiBAc2VlIGFuZHJvaWQuYXBwLlNlYXJjaE1hbmFnZXIKICAgICAgKiBAc2VlICNvblNlYXJjaFJlcXVlc3RlZAogICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHN0YXJ0U2VhcmNoKFN0cmluZyBpbml0aWFsUXVlcnksIGJvb2xlYW4gc2VsZWN0SW5pdGlhbFF1ZXJ5LCAKLSAgICAgICAgICAgIEJ1bmRsZSBhcHBTZWFyY2hEYXRhLCBib29sZWFuIGdsb2JhbFNlYXJjaCkgeworICAgIHB1YmxpYyB2b2lkIHN0YXJ0U2VhcmNoKEBOdWxsYWJsZSBTdHJpbmcgaW5pdGlhbFF1ZXJ5LCBib29sZWFuIHNlbGVjdEluaXRpYWxRdWVyeSwKKyAgICAgICAgICAgIEBOdWxsYWJsZSBCdW5kbGUgYXBwU2VhcmNoRGF0YSwgYm9vbGVhbiBnbG9iYWxTZWFyY2gpIHsKICAgICAgICAgZW5zdXJlU2VhcmNoTWFuYWdlcigpOwogICAgICAgICBtU2VhcmNoTWFuYWdlci5zdGFydFNlYXJjaChpbml0aWFsUXVlcnksIHNlbGVjdEluaXRpYWxRdWVyeSwgZ2V0Q29tcG9uZW50TmFtZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgYXBwU2VhcmNoRGF0YSwgZ2xvYmFsU2VhcmNoKTsgCkBAIC0zMjY3LDcgKzMyOTEsNyBAQAogICAgICAqIHNlYXJjaGVzLiAgVGhpcyBkYXRhIHdpbGwgYmUgcmV0dXJuZWQgd2l0aCBTRUFSQ0ggaW50ZW50KHMpLiAgTnVsbCBpZgogICAgICAqIG5vIGV4dHJhIGRhdGEgaXMgcmVxdWlyZWQuCiAgICAgICovCi0gICAgcHVibGljIHZvaWQgdHJpZ2dlclNlYXJjaChTdHJpbmcgcXVlcnksIEJ1bmRsZSBhcHBTZWFyY2hEYXRhKSB7CisgICAgcHVibGljIHZvaWQgdHJpZ2dlclNlYXJjaChTdHJpbmcgcXVlcnksIEBOdWxsYWJsZSBCdW5kbGUgYXBwU2VhcmNoRGF0YSkgewogICAgICAgICBlbnN1cmVTZWFyY2hNYW5hZ2VyKCk7CiAgICAgICAgIG1TZWFyY2hNYW5hZ2VyLnRyaWdnZXJTZWFyY2gocXVlcnksIGdldENvbXBvbmVudE5hbWUoKSwgYXBwU2VhcmNoRGF0YSk7CiAgICAgfQpAQCAtMzMzNCw2ICszMzU4LDcgQEAKICAgICAgKiBDb252ZW5pZW5jZSBmb3IgY2FsbGluZwogICAgICAqIHtAbGluayBhbmRyb2lkLnZpZXcuV2luZG93I2dldExheW91dEluZmxhdGVyfS4KICAgICAgKi8KKyAgICBATm9uTnVsbAogICAgIHB1YmxpYyBMYXlvdXRJbmZsYXRlciBnZXRMYXlvdXRJbmZsYXRlcigpIHsKICAgICAgICAgcmV0dXJuIGdldFdpbmRvdygpLmdldExheW91dEluZmxhdGVyKCk7CiAgICAgfQpAQCAtMzM0MSw2ICszMzY2LDcgQEAKICAgICAvKioKICAgICAgKiBSZXR1cm5zIGEge0BsaW5rIE1lbnVJbmZsYXRlcn0gd2l0aCB0aGlzIGNvbnRleHQuCiAgICAgICovCisgICAgQE5vbk51bGwKICAgICBwdWJsaWMgTWVudUluZmxhdGVyIGdldE1lbnVJbmZsYXRlcigpIHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgYWN0aW9uIHZpZXdzIGNhbiBnZXQgYW4gYXBwcm9wcmlhdGUgdGhlbWUuCiAgICAgICAgIGlmIChtTWVudUluZmxhdGVyID09IG51bGwpIHsKQEAgLTM0MTksNyArMzQ0NSw3IEBACiAgICAgICoKICAgICAgKiBAc2VlICNzdGFydEFjdGl2aXR5IAogICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHN0YXJ0QWN0aXZpdHlGb3JSZXN1bHQoSW50ZW50IGludGVudCwgaW50IHJlcXVlc3RDb2RlLCBCdW5kbGUgb3B0aW9ucykgeworICAgIHB1YmxpYyB2b2lkIHN0YXJ0QWN0aXZpdHlGb3JSZXN1bHQoSW50ZW50IGludGVudCwgaW50IHJlcXVlc3RDb2RlLCBATnVsbGFibGUgQnVuZGxlIG9wdGlvbnMpIHsKICAgICAgICAgaWYgKG1QYXJlbnQgPT0gbnVsbCkgewogICAgICAgICAgICAgSW5zdHJ1bWVudGF0aW9uLkFjdGl2aXR5UmVzdWx0IGFyID0KICAgICAgICAgICAgICAgICBtSW5zdHJ1bWVudGF0aW9uLmV4ZWNTdGFydEFjdGl2aXR5KApAQCAtMzQ5OCw3ICszNTI0LDcgQEAKICAgICAgKiBAcGFyYW0gZXh0cmFGbGFncyBBbHdheXMgc2V0IHRvIDAuCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc3RhcnRJbnRlbnRTZW5kZXJGb3JSZXN1bHQoSW50ZW50U2VuZGVyIGludGVudCwgaW50IHJlcXVlc3RDb2RlLAotICAgICAgICAgICAgSW50ZW50IGZpbGxJbkludGVudCwgaW50IGZsYWdzTWFzaywgaW50IGZsYWdzVmFsdWVzLCBpbnQgZXh0cmFGbGFncykKKyAgICAgICAgICAgIEBOdWxsYWJsZSBJbnRlbnQgZmlsbEluSW50ZW50LCBpbnQgZmxhZ3NNYXNrLCBpbnQgZmxhZ3NWYWx1ZXMsIGludCBleHRyYUZsYWdzKQogICAgICAgICAgICAgdGhyb3dzIEludGVudFNlbmRlci5TZW5kSW50ZW50RXhjZXB0aW9uIHsKICAgICAgICAgc3RhcnRJbnRlbnRTZW5kZXJGb3JSZXN1bHQoaW50ZW50LCByZXF1ZXN0Q29kZSwgZmlsbEluSW50ZW50LCBmbGFnc01hc2ssCiAgICAgICAgICAgICAgICAgZmxhZ3NWYWx1ZXMsIGV4dHJhRmxhZ3MsIG51bGwpOwpAQCAtMzUzMCw3ICszNTU2LDcgQEAKICAgICAgKiBvdmVycmlkZSBhbnkgdGhhdCBjb25mbGljdCB3aXRoIHRob3NlIGdpdmVuIGJ5IHRoZSBJbnRlbnRTZW5kZXIuCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc3RhcnRJbnRlbnRTZW5kZXJGb3JSZXN1bHQoSW50ZW50U2VuZGVyIGludGVudCwgaW50IHJlcXVlc3RDb2RlLAotICAgICAgICAgICAgSW50ZW50IGZpbGxJbkludGVudCwgaW50IGZsYWdzTWFzaywgaW50IGZsYWdzVmFsdWVzLCBpbnQgZXh0cmFGbGFncywKKyAgICAgICAgICAgIEBOdWxsYWJsZSBJbnRlbnQgZmlsbEluSW50ZW50LCBpbnQgZmxhZ3NNYXNrLCBpbnQgZmxhZ3NWYWx1ZXMsIGludCBleHRyYUZsYWdzLAogICAgICAgICAgICAgQnVuZGxlIG9wdGlvbnMpIHRocm93cyBJbnRlbnRTZW5kZXIuU2VuZEludGVudEV4Y2VwdGlvbiB7CiAgICAgICAgIGlmIChtUGFyZW50ID09IG51bGwpIHsKICAgICAgICAgICAgIHN0YXJ0SW50ZW50U2VuZGVyRm9yUmVzdWx0SW5uZXIoaW50ZW50LCByZXF1ZXN0Q29kZSwgZmlsbEluSW50ZW50LApAQCAtMzYxOCw3ICszNjQ0LDcgQEAKICAgICAgKiBAc2VlICNzdGFydEFjdGl2aXR5Rm9yUmVzdWx0IAogICAgICAqLwogICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHN0YXJ0QWN0aXZpdHkoSW50ZW50IGludGVudCwgQnVuZGxlIG9wdGlvbnMpIHsKKyAgICBwdWJsaWMgdm9pZCBzdGFydEFjdGl2aXR5KEludGVudCBpbnRlbnQsIEBOdWxsYWJsZSBCdW5kbGUgb3B0aW9ucykgewogICAgICAgICBpZiAob3B0aW9ucyAhPSBudWxsKSB7CiAgICAgICAgICAgICBzdGFydEFjdGl2aXR5Rm9yUmVzdWx0KGludGVudCwgLTEsIG9wdGlvbnMpOwogICAgICAgICB9IGVsc2UgewpAQCAtMzY2Nyw3ICszNjkzLDcgQEAKICAgICAgKiBAc2VlICNzdGFydEFjdGl2aXR5Rm9yUmVzdWx0CiAgICAgICovCiAgICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc3RhcnRBY3Rpdml0aWVzKEludGVudFtdIGludGVudHMsIEJ1bmRsZSBvcHRpb25zKSB7CisgICAgcHVibGljIHZvaWQgc3RhcnRBY3Rpdml0aWVzKEludGVudFtdIGludGVudHMsIEBOdWxsYWJsZSBCdW5kbGUgb3B0aW9ucykgewogICAgICAgICBtSW5zdHJ1bWVudGF0aW9uLmV4ZWNTdGFydEFjdGl2aXRpZXModGhpcywgbU1haW5UaHJlYWQuZ2V0QXBwbGljYXRpb25UaHJlYWQoKSwKICAgICAgICAgICAgICAgICBtVG9rZW4sIHRoaXMsIGludGVudHMsIG9wdGlvbnMpOwogICAgIH0KQEAgLTM2ODYsNyArMzcxMiw3IEBACiAgICAgICogQHBhcmFtIGV4dHJhRmxhZ3MgQWx3YXlzIHNldCB0byAwLgogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIHN0YXJ0SW50ZW50U2VuZGVyKEludGVudFNlbmRlciBpbnRlbnQsCi0gICAgICAgICAgICBJbnRlbnQgZmlsbEluSW50ZW50LCBpbnQgZmxhZ3NNYXNrLCBpbnQgZmxhZ3NWYWx1ZXMsIGludCBleHRyYUZsYWdzKQorICAgICAgICAgICAgQE51bGxhYmxlIEludGVudCBmaWxsSW5JbnRlbnQsIGludCBmbGFnc01hc2ssIGludCBmbGFnc1ZhbHVlcywgaW50IGV4dHJhRmxhZ3MpCiAgICAgICAgICAgICB0aHJvd3MgSW50ZW50U2VuZGVyLlNlbmRJbnRlbnRFeGNlcHRpb24gewogICAgICAgICBzdGFydEludGVudFNlbmRlcihpbnRlbnQsIGZpbGxJbkludGVudCwgZmxhZ3NNYXNrLCBmbGFnc1ZhbHVlcywKICAgICAgICAgICAgICAgICBleHRyYUZsYWdzLCBudWxsKTsKQEAgLTM3MTMsNyArMzczOSw3IEBACiAgICAgICogb3ZlcnJpZGUgYW55IHRoYXQgY29uZmxpY3Qgd2l0aCB0aG9zZSBnaXZlbiBieSB0aGUgSW50ZW50U2VuZGVyLgogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIHN0YXJ0SW50ZW50U2VuZGVyKEludGVudFNlbmRlciBpbnRlbnQsCi0gICAgICAgICAgICBJbnRlbnQgZmlsbEluSW50ZW50LCBpbnQgZmxhZ3NNYXNrLCBpbnQgZmxhZ3NWYWx1ZXMsIGludCBleHRyYUZsYWdzLAorICAgICAgICAgICAgQE51bGxhYmxlIEludGVudCBmaWxsSW5JbnRlbnQsIGludCBmbGFnc01hc2ssIGludCBmbGFnc1ZhbHVlcywgaW50IGV4dHJhRmxhZ3MsCiAgICAgICAgICAgICBCdW5kbGUgb3B0aW9ucykgdGhyb3dzIEludGVudFNlbmRlci5TZW5kSW50ZW50RXhjZXB0aW9uIHsKICAgICAgICAgaWYgKG9wdGlvbnMgIT0gbnVsbCkgewogICAgICAgICAgICAgc3RhcnRJbnRlbnRTZW5kZXJGb3JSZXN1bHQoaW50ZW50LCAtMSwgZmlsbEluSW50ZW50LCBmbGFnc01hc2ssCkBAIC0zNzQxLDcgKzM3NjcsNyBAQAogICAgICAqIEBzZWUgI3N0YXJ0QWN0aXZpdHkKICAgICAgKiBAc2VlICNzdGFydEFjdGl2aXR5Rm9yUmVzdWx0CiAgICAgICovCi0gICAgcHVibGljIGJvb2xlYW4gc3RhcnRBY3Rpdml0eUlmTmVlZGVkKEludGVudCBpbnRlbnQsIGludCByZXF1ZXN0Q29kZSkgeworICAgIHB1YmxpYyBib29sZWFuIHN0YXJ0QWN0aXZpdHlJZk5lZWRlZChATm9uTnVsbCBJbnRlbnQgaW50ZW50LCBpbnQgcmVxdWVzdENvZGUpIHsKICAgICAgICAgcmV0dXJuIHN0YXJ0QWN0aXZpdHlJZk5lZWRlZChpbnRlbnQsIHJlcXVlc3RDb2RlLCBudWxsKTsKICAgICB9CiAKQEAgLTM3NzUsNyArMzgwMSw4IEBACiAgICAgICogQHNlZSAjc3RhcnRBY3Rpdml0eQogICAgICAqIEBzZWUgI3N0YXJ0QWN0aXZpdHlGb3JSZXN1bHQKICAgICAgKi8KLSAgICBwdWJsaWMgYm9vbGVhbiBzdGFydEFjdGl2aXR5SWZOZWVkZWQoSW50ZW50IGludGVudCwgaW50IHJlcXVlc3RDb2RlLCBCdW5kbGUgb3B0aW9ucykgeworICAgIHB1YmxpYyBib29sZWFuIHN0YXJ0QWN0aXZpdHlJZk5lZWRlZChATm9uTnVsbCBJbnRlbnQgaW50ZW50LCBpbnQgcmVxdWVzdENvZGUsCisgICAgICAgICAgICBATnVsbGFibGUgQnVuZGxlIG9wdGlvbnMpIHsKICAgICAgICAgaWYgKG1QYXJlbnQgPT0gbnVsbCkgewogICAgICAgICAgICAgaW50IHJlc3VsdCA9IEFjdGl2aXR5TWFuYWdlci5TVEFSVF9SRVRVUk5fSU5URU5UX1RPX0NBTExFUjsKICAgICAgICAgICAgIHRyeSB7CkBAIC0zODI0LDcgKzM4NTEsNyBAQAogICAgICAqIHdhc24ndC4gIEluIGdlbmVyYWwsIGlmIHRydWUgaXMgcmV0dXJuZWQgeW91IHdpbGwgdGhlbiB3YW50IHRvIGNhbGwKICAgICAgKiBmaW5pc2goKSBvbiB5b3Vyc2VsZi4KICAgICAgKi8KLSAgICBwdWJsaWMgYm9vbGVhbiBzdGFydE5leHRNYXRjaGluZ0FjdGl2aXR5KEludGVudCBpbnRlbnQpIHsKKyAgICBwdWJsaWMgYm9vbGVhbiBzdGFydE5leHRNYXRjaGluZ0FjdGl2aXR5KEBOb25OdWxsIEludGVudCBpbnRlbnQpIHsKICAgICAgICAgcmV0dXJuIHN0YXJ0TmV4dE1hdGNoaW5nQWN0aXZpdHkoaW50ZW50LCBudWxsKTsKICAgICB9CiAKQEAgLTM4NDcsNyArMzg3NCw3IEBACiAgICAgICogd2Fzbid0LiAgSW4gZ2VuZXJhbCwgaWYgdHJ1ZSBpcyByZXR1cm5lZCB5b3Ugd2lsbCB0aGVuIHdhbnQgdG8gY2FsbAogICAgICAqIGZpbmlzaCgpIG9uIHlvdXJzZWxmLgogICAgICAqLwotICAgIHB1YmxpYyBib29sZWFuIHN0YXJ0TmV4dE1hdGNoaW5nQWN0aXZpdHkoSW50ZW50IGludGVudCwgQnVuZGxlIG9wdGlvbnMpIHsKKyAgICBwdWJsaWMgYm9vbGVhbiBzdGFydE5leHRNYXRjaGluZ0FjdGl2aXR5KEBOb25OdWxsIEludGVudCBpbnRlbnQsIEBOdWxsYWJsZSBCdW5kbGUgb3B0aW9ucykgewogICAgICAgICBpZiAobVBhcmVudCA9PSBudWxsKSB7CiAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgIGludGVudC5taWdyYXRlRXh0cmFTdHJlYW1Ub0NsaXBEYXRhKCk7CkBAIC0zODc3LDcgKzM5MDQsNyBAQAogICAgICAqIEBzZWUgI3N0YXJ0QWN0aXZpdHkKICAgICAgKiBAc2VlICNzdGFydEFjdGl2aXR5Rm9yUmVzdWx0CiAgICAgICovCi0gICAgcHVibGljIHZvaWQgc3RhcnRBY3Rpdml0eUZyb21DaGlsZChBY3Rpdml0eSBjaGlsZCwgSW50ZW50IGludGVudCwKKyAgICBwdWJsaWMgdm9pZCBzdGFydEFjdGl2aXR5RnJvbUNoaWxkKEBOb25OdWxsIEFjdGl2aXR5IGNoaWxkLCBJbnRlbnQgaW50ZW50LAogICAgICAgICAgICAgaW50IHJlcXVlc3RDb2RlKSB7CiAgICAgICAgIHN0YXJ0QWN0aXZpdHlGcm9tQ2hpbGQoY2hpbGQsIGludGVudCwgcmVxdWVzdENvZGUsIG51bGwpOwogICAgIH0KQEAgLTM5MDEsOCArMzkyOCw4IEBACiAgICAgICogQHNlZSAjc3RhcnRBY3Rpdml0eSAKICAgICAgKiBAc2VlICNzdGFydEFjdGl2aXR5Rm9yUmVzdWx0IAogICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHN0YXJ0QWN0aXZpdHlGcm9tQ2hpbGQoQWN0aXZpdHkgY2hpbGQsIEludGVudCBpbnRlbnQsIAotICAgICAgICAgICAgaW50IHJlcXVlc3RDb2RlLCBCdW5kbGUgb3B0aW9ucykgeworICAgIHB1YmxpYyB2b2lkIHN0YXJ0QWN0aXZpdHlGcm9tQ2hpbGQoQE5vbk51bGwgQWN0aXZpdHkgY2hpbGQsIEludGVudCBpbnRlbnQsCisgICAgICAgICAgICBpbnQgcmVxdWVzdENvZGUsIEBOdWxsYWJsZSBCdW5kbGUgb3B0aW9ucykgewogICAgICAgICBJbnN0cnVtZW50YXRpb24uQWN0aXZpdHlSZXN1bHQgYXIgPQogICAgICAgICAgICAgbUluc3RydW1lbnRhdGlvbi5leGVjU3RhcnRBY3Rpdml0eSgKICAgICAgICAgICAgICAgICB0aGlzLCBtTWFpblRocmVhZC5nZXRBcHBsaWNhdGlvblRocmVhZCgpLCBtVG9rZW4sIGNoaWxkLApAQCAtMzkyNyw3ICszOTU0LDcgQEAKICAgICAgKiBAc2VlIEZyYWdtZW50I3N0YXJ0QWN0aXZpdHkKICAgICAgKiBAc2VlIEZyYWdtZW50I3N0YXJ0QWN0aXZpdHlGb3JSZXN1bHQKICAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzdGFydEFjdGl2aXR5RnJvbUZyYWdtZW50KEZyYWdtZW50IGZyYWdtZW50LCBJbnRlbnQgaW50ZW50LCAKKyAgICBwdWJsaWMgdm9pZCBzdGFydEFjdGl2aXR5RnJvbUZyYWdtZW50KEBOb25OdWxsIEZyYWdtZW50IGZyYWdtZW50LCBJbnRlbnQgaW50ZW50LAogICAgICAgICAgICAgaW50IHJlcXVlc3RDb2RlKSB7CiAgICAgICAgIHN0YXJ0QWN0aXZpdHlGcm9tRnJhZ21lbnQoZnJhZ21lbnQsIGludGVudCwgcmVxdWVzdENvZGUsIG51bGwpOwogICAgIH0KQEAgLTM5NTIsOCArMzk3OSw4IEBACiAgICAgICogQHNlZSBGcmFnbWVudCNzdGFydEFjdGl2aXR5IAogICAgICAqIEBzZWUgRnJhZ21lbnQjc3RhcnRBY3Rpdml0eUZvclJlc3VsdCAKICAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzdGFydEFjdGl2aXR5RnJvbUZyYWdtZW50KEZyYWdtZW50IGZyYWdtZW50LCBJbnRlbnQgaW50ZW50LCAKLSAgICAgICAgICAgIGludCByZXF1ZXN0Q29kZSwgQnVuZGxlIG9wdGlvbnMpIHsKKyAgICBwdWJsaWMgdm9pZCBzdGFydEFjdGl2aXR5RnJvbUZyYWdtZW50KEBOb25OdWxsIEZyYWdtZW50IGZyYWdtZW50LCBJbnRlbnQgaW50ZW50LAorICAgICAgICAgICAgaW50IHJlcXVlc3RDb2RlLCBATnVsbGFibGUgQnVuZGxlIG9wdGlvbnMpIHsKICAgICAgICAgSW5zdHJ1bWVudGF0aW9uLkFjdGl2aXR5UmVzdWx0IGFyID0KICAgICAgICAgICAgIG1JbnN0cnVtZW50YXRpb24uZXhlY1N0YXJ0QWN0aXZpdHkoCiAgICAgICAgICAgICAgICAgdGhpcywgbU1haW5UaHJlYWQuZ2V0QXBwbGljYXRpb25UaHJlYWQoKSwgbVRva2VuLCBmcmFnbWVudCwKQEAgLTM5ODUsNyArNDAxMiw3IEBACiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc3RhcnRJbnRlbnRTZW5kZXJGcm9tQ2hpbGQoQWN0aXZpdHkgY2hpbGQsIEludGVudFNlbmRlciBpbnRlbnQsCiAgICAgICAgICAgICBpbnQgcmVxdWVzdENvZGUsIEludGVudCBmaWxsSW5JbnRlbnQsIGludCBmbGFnc01hc2ssIGludCBmbGFnc1ZhbHVlcywKLSAgICAgICAgICAgIGludCBleHRyYUZsYWdzLCBCdW5kbGUgb3B0aW9ucykKKyAgICAgICAgICAgIGludCBleHRyYUZsYWdzLCBATnVsbGFibGUgQnVuZGxlIG9wdGlvbnMpCiAgICAgICAgICAgICB0aHJvd3MgSW50ZW50U2VuZGVyLlNlbmRJbnRlbnRFeGNlcHRpb24gewogICAgICAgICBzdGFydEludGVudFNlbmRlckZvclJlc3VsdElubmVyKGludGVudCwgcmVxdWVzdENvZGUsIGZpbGxJbkludGVudCwKICAgICAgICAgICAgICAgICBmbGFnc01hc2ssIGZsYWdzVmFsdWVzLCBjaGlsZCwgb3B0aW9ucyk7CkBAIC00MDg0LDYgKzQxMTEsNyBAQAogICAgICAqIEByZXR1cm4gVGhlIHBhY2thZ2Ugb2YgdGhlIGFjdGl2aXR5IHRoYXQgd2lsbCByZWNlaXZlIHlvdXIKICAgICAgKiAgICAgICAgIHJlcGx5LCBvciBudWxsIGlmIG5vbmUuCiAgICAgICovCisgICAgQE51bGxhYmxlCiAgICAgcHVibGljIFN0cmluZyBnZXRDYWxsaW5nUGFja2FnZSgpIHsKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIHJldHVybiBBY3Rpdml0eU1hbmFnZXJOYXRpdmUuZ2V0RGVmYXVsdCgpLmdldENhbGxpbmdQYWNrYWdlKG1Ub2tlbik7CkBAIC00MTA2LDYgKzQxMzQsNyBAQAogICAgICAqIEByZXR1cm4gVGhlIENvbXBvbmVudE5hbWUgb2YgdGhlIGFjdGl2aXR5IHRoYXQgd2lsbCByZWNlaXZlIHlvdXIKICAgICAgKiAgICAgICAgIHJlcGx5LCBvciBudWxsIGlmIG5vbmUuCiAgICAgICovCisgICAgQE51bGxhYmxlCiAgICAgcHVibGljIENvbXBvbmVudE5hbWUgZ2V0Q2FsbGluZ0FjdGl2aXR5KCkgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgcmV0dXJuIEFjdGl2aXR5TWFuYWdlck5hdGl2ZS5nZXREZWZhdWx0KCkuZ2V0Q2FsbGluZ0FjdGl2aXR5KG1Ub2tlbik7CkBAIC00Mjk4LDcgKzQzMjcsNyBAQAogICAgICAqIEBwYXJhbSByZXF1ZXN0Q29kZSBSZXF1ZXN0IGNvZGUgdGhhdCBoYWQgYmVlbiB1c2VkIHRvIHN0YXJ0IHRoZQogICAgICAqICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eS4KICAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBmaW5pc2hBY3Rpdml0eUZyb21DaGlsZChBY3Rpdml0eSBjaGlsZCwgaW50IHJlcXVlc3RDb2RlKSB7CisgICAgcHVibGljIHZvaWQgZmluaXNoQWN0aXZpdHlGcm9tQ2hpbGQoQE5vbk51bGwgQWN0aXZpdHkgY2hpbGQsIGludCByZXF1ZXN0Q29kZSkgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgQWN0aXZpdHlNYW5hZ2VyTmF0aXZlLmdldERlZmF1bHQoKQogICAgICAgICAgICAgICAgIC5maW5pc2hTdWJBY3Rpdml0eShtVG9rZW4sIGNoaWxkLm1FbWJlZGRlZElELCByZXF1ZXN0Q29kZSk7CkBAIC00MzU5LDggKzQzODgsOCBAQAogICAgICAqIAogICAgICAqIEBzZWUgUGVuZGluZ0ludGVudAogICAgICAqLwotICAgIHB1YmxpYyBQZW5kaW5nSW50ZW50IGNyZWF0ZVBlbmRpbmdSZXN1bHQoaW50IHJlcXVlc3RDb2RlLCBJbnRlbnQgZGF0YSwKLSAgICAgICAgICAgIGludCBmbGFncykgeworICAgIHB1YmxpYyBQZW5kaW5nSW50ZW50IGNyZWF0ZVBlbmRpbmdSZXN1bHQoaW50IHJlcXVlc3RDb2RlLCBATm9uTnVsbCBJbnRlbnQgZGF0YSwKKyAgICAgICAgICAgIEBQZW5kaW5nSW50ZW50LkZsYWdzIGludCBmbGFncykgewogICAgICAgICBTdHJpbmcgcGFja2FnZU5hbWUgPSBnZXRQYWNrYWdlTmFtZSgpOwogICAgICAgICB0cnkgewogICAgICAgICAgICAgZGF0YS5wcmVwYXJlVG9MZWF2ZVByb2Nlc3MoKTsKQEAgLTQzODcsNyArNDQxNiw3IEBACiAgICAgICogQHBhcmFtIHJlcXVlc3RlZE9yaWVudGF0aW9uIEFuIG9yaWVudGF0aW9uIGNvbnN0YW50IGFzIHVzZWQgaW4KICAgICAgKiB7QGxpbmsgQWN0aXZpdHlJbmZvI3NjcmVlbk9yaWVudGF0aW9uIEFjdGl2aXR5SW5mby5zY3JlZW5PcmllbnRhdGlvbn0uCiAgICAgICovCi0gICAgcHVibGljIHZvaWQgc2V0UmVxdWVzdGVkT3JpZW50YXRpb24oaW50IHJlcXVlc3RlZE9yaWVudGF0aW9uKSB7CisgICAgcHVibGljIHZvaWQgc2V0UmVxdWVzdGVkT3JpZW50YXRpb24oQEFjdGl2aXR5SW5mby5TY3JlZW5PcmllbnRhdGlvbiBpbnQgcmVxdWVzdGVkT3JpZW50YXRpb24pIHsKICAgICAgICAgaWYgKG1QYXJlbnQgPT0gbnVsbCkgewogICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICBBY3Rpdml0eU1hbmFnZXJOYXRpdmUuZ2V0RGVmYXVsdCgpLnNldFJlcXVlc3RlZE9yaWVudGF0aW9uKApAQCAtNDQwOSw2ICs0NDM4LDcgQEAKICAgICAgKiBAcmV0dXJuIFJldHVybnMgYW4gb3JpZW50YXRpb24gY29uc3RhbnQgYXMgdXNlZCBpbgogICAgICAqIHtAbGluayBBY3Rpdml0eUluZm8jc2NyZWVuT3JpZW50YXRpb24gQWN0aXZpdHlJbmZvLnNjcmVlbk9yaWVudGF0aW9ufS4KICAgICAgKi8KKyAgICBAQWN0aXZpdHlJbmZvLlNjcmVlbk9yaWVudGF0aW9uCiAgICAgcHVibGljIGludCBnZXRSZXF1ZXN0ZWRPcmllbnRhdGlvbigpIHsKICAgICAgICAgaWYgKG1QYXJlbnQgPT0gbnVsbCkgewogICAgICAgICAgICAgdHJ5IHsKQEAgLTQ0ODAsNiArNDUxMCw3IEBACiAgICAgICogCiAgICAgICogQHJldHVybiBUaGUgbG9jYWwgY2xhc3MgbmFtZS4KICAgICAgKi8KKyAgICBATm9uTnVsbAogICAgIHB1YmxpYyBTdHJpbmcgZ2V0TG9jYWxDbGFzc05hbWUoKSB7CiAgICAgICAgIGZpbmFsIFN0cmluZyBwa2cgPSBnZXRQYWNrYWdlTmFtZSgpOwogICAgICAgICBmaW5hbCBTdHJpbmcgY2xzID0gbUNvbXBvbmVudC5nZXRDbGFzc05hbWUoKTsKQEAgLTQ1MjUsOSArNDU1Niw5IEBACiAgICAgICAgIAogICAgICAgICBtU2VhcmNoTWFuYWdlciA9IG5ldyBTZWFyY2hNYW5hZ2VyKHRoaXMsIG51bGwpOwogICAgIH0KLSAgICAKKwogICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBPYmplY3QgZ2V0U3lzdGVtU2VydmljZShTdHJpbmcgbmFtZSkgeworICAgIHB1YmxpYyBPYmplY3QgZ2V0U3lzdGVtU2VydmljZShAU2VydmljZU5hbWUgQE5vbk51bGwgU3RyaW5nIG5hbWUpIHsKICAgICAgICAgaWYgKGdldEJhc2VDb250ZXh0KCkgPT0gbnVsbCkgewogICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigKICAgICAgICAgICAgICAgICAgICAgIlN5c3RlbSBzZXJ2aWNlcyBub3QgYXZhaWxhYmxlIHRvIEFjdGl2aXRpZXMgYmVmb3JlIG9uQ3JlYXRlKCkiKTsKQEAgLTQ2ODksNyArNDcyMCw3IEBACiAKICAgICAvKioKICAgICAgKiBHZXRzIHRoZSBzdWdnZXN0ZWQgYXVkaW8gc3RyZWFtIHdob3NlIHZvbHVtZSBzaG91bGQgYmUgY2hhbmdlZCBieSB0aGUKLSAgICAgKiBoYXJ3ZGFyZSB2b2x1bWUgY29udHJvbHMuCisgICAgICogaGFyZHdhcmUgdm9sdW1lIGNvbnRyb2xzLgogICAgICAqIAogICAgICAqIEByZXR1cm4gVGhlIHN1Z2dlc3RlZCBhdWRpbyBzdHJlYW0gdHlwZSB3aG9zZSB2b2x1bWUgc2hvdWxkIGJlIGNoYW5nZWQgYnkKICAgICAgKiAgICAgICAgIHRoZSBoYXJkd2FyZSB2b2x1bWUgY29udHJvbHMuCkBAIC00NzI1LDYgKzQ3NTYsNyBAQAogICAgICAqIEBzZWUgYW5kcm9pZC52aWV3LkxheW91dEluZmxhdGVyI2NyZWF0ZVZpZXcKICAgICAgKiBAc2VlIGFuZHJvaWQudmlldy5XaW5kb3cjZ2V0TGF5b3V0SW5mbGF0ZXIKICAgICAgKi8KKyAgICBATnVsbGFibGUKICAgICBwdWJsaWMgVmlldyBvbkNyZWF0ZVZpZXcoU3RyaW5nIG5hbWUsIENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7CiAgICAgICAgIHJldHVybiBudWxsOwogICAgIH0KQEAgLTQ5ODMsNiArNTAxNSw3IEBACiAgICAgICoKICAgICAgKiBAc2VlIEFjdGlvbk1vZGUKICAgICAgKi8KKyAgICBATnVsbGFibGUKICAgICBwdWJsaWMgQWN0aW9uTW9kZSBzdGFydEFjdGlvbk1vZGUoQWN0aW9uTW9kZS5DYWxsYmFjayBjYWxsYmFjaykgewogICAgICAgICByZXR1cm4gbVdpbmRvdy5nZXREZWNvclZpZXcoKS5zdGFydEFjdGlvbk1vZGUoY2FsbGJhY2spOwogICAgIH0KQEAgLTQ5OTgsNiArNTAzMSw3IEBACiAgICAgICogQHJldHVybiBUaGUgbmV3IGFjdGlvbiBtb2RlLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgYWN0aXZpdHkgZG9lcyBub3Qgd2FudCB0bwogICAgICAqICAgICAgICAgcHJvdmlkZSBzcGVjaWFsIGhhbmRsaW5nIGZvciB0aGlzIGFjdGlvbiBtb2RlLiAoSXQgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBzeXN0ZW0uKQogICAgICAqLworICAgIEBOdWxsYWJsZQogICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyBBY3Rpb25Nb2RlIG9uV2luZG93U3RhcnRpbmdBY3Rpb25Nb2RlKEFjdGlvbk1vZGUuQ2FsbGJhY2sgY2FsbGJhY2spIHsKICAgICAgICAgaW5pdEFjdGlvbkJhcigpOwpAQCAtNTE0MSw2ICs1MTc1LDcgQEAKICAgICAgKiBAcmV0dXJuIGEgbmV3IEludGVudCB0YXJnZXRpbmcgdGhlIGRlZmluZWQgcGFyZW50IG9mIHRoaXMgYWN0aXZpdHkgb3IgbnVsbCBpZgogICAgICAqICAgICAgICAgdGhlcmUgaXMgbm8gdmFsaWQgcGFyZW50LgogICAgICAqLworICAgIEBOdWxsYWJsZQogICAgIHB1YmxpYyBJbnRlbnQgZ2V0UGFyZW50QWN0aXZpdHlJbnRlbnQoKSB7CiAgICAgICAgIGZpbmFsIFN0cmluZyBwYXJlbnROYW1lID0gbUFjdGl2aXR5SW5mby5wYXJlbnRBY3Rpdml0eU5hbWU7CiAgICAgICAgIGlmIChUZXh0VXRpbHMuaXNFbXB0eShwYXJlbnROYW1lKSkgewpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL0FjdGl2aXR5T3B0aW9ucy5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvYXBwL0FjdGl2aXR5T3B0aW9ucy5qYXZhCmluZGV4IDg3YjFlMjQuLjQ0ZjY4NTkgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL2FwcC9BY3Rpdml0eU9wdGlvbnMuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9hcHAvQWN0aXZpdHlPcHRpb25zLmphdmEKQEAgLTkwLDYgKzkwLDM1IEBACiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgS0VZX0FOSU1fU1RBUlRfTElTVEVORVIgPSAiYW5kcm9pZDphbmltU3RhcnRMaXN0ZW5lciI7CiAKKyAgICAvKioKKyAgICAgKiBBIHN0cmluZyBhcnJheSBvZiBuYW1lcyBmb3IgdGhlIGRlc3RpbmF0aW9uIHNjZW5lLiBUaGlzIGRlZmluZXMgYW4gQVBJIGluIHRoZSBzYW1lCisgICAgICogd2F5IHRoYXQgaW50ZW50IGFjdGlvbiBvciBleHRyYSBuYW1lcyBkbyBhbmQgc2hvdWxkIGZvbGxvdyBhIHNpbWlsYXIgY29udmVudGlvbjoKKyAgICAgKiAiY29tLmV4YW1wbGUuc2NlbmUuRk9PIgorICAgICAqCisgICAgICogQGhpZGUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBLRVlfREVTVF9TQ0VORV9OQU1FUyA9ICJhbmRyb2lkOmRlc3RTY2VuZU5hbWVzIjsKKworICAgIC8qKgorICAgICAqIEEgc3RyaW5nIGluZGljYXRpbmcgdGhlIGRlc3RpbmF0aW9uIHNjZW5lIG5hbWUgdGhhdCB3YXMgY2hvc2VuIGJ5IHRoZSB0YXJnZXQuCisgICAgICogVXNlZCBieSB7QGxpbmsgT25TY2VuZVRyYW5zaXRpb25TdGFydGVkTGlzdGVuZXJ9LgorICAgICAqIEBoaWRlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgS0VZX0RFU1RfU0NFTkVfTkFNRV9DSE9TRU4gPSAiYW5kcm9pZDpkZXN0U2NlbmVOYW1lQ2hvc2VuIjsKKworICAgIC8qKgorICAgICAqIENhbGxiYWNrIGZvciB3aGVuIHNjZW5lIHRyYW5zaXRpb24gaXMgc3RhcnRlZC4KKyAgICAgKiBAaGlkZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEtFWV9TQ0VORV9UUkFOU0lUSU9OX1NUQVJUX0xJU1RFTkVSID0KKyAgICAgICAgICAgICJhbmRyb2lkOnNjZW5lVHJhbnNpdGlvblN0YXJ0TGlzdGVuZXIiOworCisgICAgLyoqCisgICAgICogQXJndW1lbnRzIGZvciB0aGUgc2NlbmUgdHJhbnNpdGlvbiBhYm91dCB0byBiZWdpbi4KKyAgICAgKiBAaGlkZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEtFWV9TQ0VORV9UUkFOU0lUSU9OX0FSR1MgPSAiYW5kcm9pZDpzY2VuZVRyYW5zaXRpb25BcmdzIjsKKwogICAgIC8qKiBAaGlkZSAqLwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFOSU1fTk9ORSA9IDA7CiAgICAgLyoqIEBoaWRlICovCkBAIC0xMDAsNiArMTI5LDggQEAKICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTklNX1RIVU1CTkFJTF9TQ0FMRV9VUCA9IDM7CiAgICAgLyoqIEBoaWRlICovCiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQU5JTV9USFVNQk5BSUxfU0NBTEVfRE9XTiA9IDQ7CisgICAgLyoqIEBoaWRlICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQU5JTV9TQ0VORV9UUkFOU0lUSU9OID0gNTsKIAogICAgIHByaXZhdGUgU3RyaW5nIG1QYWNrYWdlTmFtZTsKICAgICBwcml2YXRlIGludCBtQW5pbWF0aW9uVHlwZSA9IEFOSU1fTk9ORTsKQEAgLTExMCw3ICsxNDEsMTAgQEAKICAgICBwcml2YXRlIGludCBtU3RhcnRZOwogICAgIHByaXZhdGUgaW50IG1TdGFydFdpZHRoOwogICAgIHByaXZhdGUgaW50IG1TdGFydEhlaWdodDsKKyAgICBwcml2YXRlIFN0cmluZ1tdIG1EZXN0U2NlbmVOYW1lczsKKyAgICBwcml2YXRlIEJ1bmRsZSBtVHJhbnNpdGlvbkFyZ3M7CiAgICAgcHJpdmF0ZSBJUmVtb3RlQ2FsbGJhY2sgbUFuaW1hdGlvblN0YXJ0ZWRMaXN0ZW5lcjsKKyAgICBwcml2YXRlIElSZW1vdGVDYWxsYmFjayBtU2NlbmVUcmFuc2l0aW9uU3RhcnRlZExpc3RlbmVyOwogCiAgICAgLyoqCiAgICAgICogQ3JlYXRlIGFuIEFjdGl2aXR5T3B0aW9ucyBzcGVjaWZ5aW5nIGEgY3VzdG9tIGFuaW1hdGlvbiB0byBydW4gd2hlbgpAQCAtMTU2LDExICsxOTAsMTIgQEAKICAgICAgICAgb3B0cy5tQW5pbWF0aW9uVHlwZSA9IEFOSU1fQ1VTVE9NOwogICAgICAgICBvcHRzLm1DdXN0b21FbnRlclJlc0lkID0gZW50ZXJSZXNJZDsKICAgICAgICAgb3B0cy5tQ3VzdG9tRXhpdFJlc0lkID0gZXhpdFJlc0lkOwotICAgICAgICBvcHRzLnNldExpc3RlbmVyKGhhbmRsZXIsIGxpc3RlbmVyKTsKKyAgICAgICAgb3B0cy5zZXRPbkFuaW1hdGlvblN0YXJ0ZWRMaXN0ZW5lcihoYW5kbGVyLCBsaXN0ZW5lcik7CiAgICAgICAgIHJldHVybiBvcHRzOwogICAgIH0KIAotICAgIHByaXZhdGUgdm9pZCBzZXRMaXN0ZW5lcihIYW5kbGVyIGhhbmRsZXIsIE9uQW5pbWF0aW9uU3RhcnRlZExpc3RlbmVyIGxpc3RlbmVyKSB7CisgICAgcHJpdmF0ZSB2b2lkIHNldE9uQW5pbWF0aW9uU3RhcnRlZExpc3RlbmVyKEhhbmRsZXIgaGFuZGxlciwKKyAgICAgICAgICAgIE9uQW5pbWF0aW9uU3RhcnRlZExpc3RlbmVyIGxpc3RlbmVyKSB7CiAgICAgICAgIGlmIChsaXN0ZW5lciAhPSBudWxsKSB7CiAgICAgICAgICAgICBmaW5hbCBIYW5kbGVyIGggPSBoYW5kbGVyOwogICAgICAgICAgICAgZmluYWwgT25BbmltYXRpb25TdGFydGVkTGlzdGVuZXIgZmluYWxMaXN0ZW5lciA9IGxpc3RlbmVyOwpAQCAtMTc2LDYgKzIxMSwyNCBAQAogICAgICAgICB9CiAgICAgfQogCisgICAgcHJpdmF0ZSB2b2lkIHNldE9uU2NlbmVUcmFuc2l0aW9uU3RhcnRlZExpc3RlbmVyKEhhbmRsZXIgaGFuZGxlciwKKyAgICAgICAgICAgIE9uU2NlbmVUcmFuc2l0aW9uU3RhcnRlZExpc3RlbmVyIGxpc3RlbmVyKSB7CisgICAgICAgIGlmIChsaXN0ZW5lciAhPSBudWxsKSB7CisgICAgICAgICAgICBmaW5hbCBIYW5kbGVyIGggPSBoYW5kbGVyOworICAgICAgICAgICAgZmluYWwgT25TY2VuZVRyYW5zaXRpb25TdGFydGVkTGlzdGVuZXIgbCA9IGxpc3RlbmVyOworICAgICAgICAgICAgbVNjZW5lVHJhbnNpdGlvblN0YXJ0ZWRMaXN0ZW5lciA9IG5ldyBJUmVtb3RlQ2FsbGJhY2suU3R1YigpIHsKKyAgICAgICAgICAgICAgICBAT3ZlcnJpZGUgcHVibGljIHZvaWQgc2VuZFJlc3VsdChmaW5hbCBCdW5kbGUgZGF0YSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7CisgICAgICAgICAgICAgICAgICAgIGgucG9zdChuZXcgUnVubmFibGUoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbC5vblNjZW5lVHJhbnNpdGlvblN0YXJ0ZWQoZGF0YSAhPSBudWxsID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuZ2V0U3RyaW5nKEtFWV9ERVNUX1NDRU5FX05BTUVfQ0hPU0VOKSA6IG51bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgfQorCiAgICAgLyoqCiAgICAgICogQ2FsbGJhY2sgZm9yIHVzZSB3aXRoIHtAbGluayBBY3Rpdml0eU9wdGlvbnMjbWFrZVRodW1ibmFpbFNjYWxlVXBBbmltYXRpb259CiAgICAgICogdG8gZmluZCBvdXQgd2hlbiB0aGUgZ2l2ZW4gYW5pbWF0aW9uIGhhcyBzdGFydGVkIHJ1bm5pbmcuCkBAIC0xODYsNiArMjM5LDE1IEBACiAgICAgfQogCiAgICAgLyoqCisgICAgICogQ2FsbGJhY2sgZm9yIHVzZSB3aXRoIHtAbGluayBBY3Rpdml0eU9wdGlvbnMjbWFrZVNjZW5lVHJhbnNpdGlvbkFuaW1hdGlvbn0KKyAgICAgKiB0byBmaW5kIG91dCB3aGVuIGEgdHJhbnNpdGlvbiBpcyBhYm91dCB0byBiZWdpbi4KKyAgICAgKiBAaGlkZQorICAgICAqLworICAgIHB1YmxpYyBpbnRlcmZhY2UgT25TY2VuZVRyYW5zaXRpb25TdGFydGVkTGlzdGVuZXIgeworICAgICAgICB2b2lkIG9uU2NlbmVUcmFuc2l0aW9uU3RhcnRlZChTdHJpbmcgZGVzdFNjZW5lTmFtZSk7CisgICAgfQorCisgICAgLyoqCiAgICAgICogQ3JlYXRlIGFuIEFjdGl2aXR5T3B0aW9ucyBzcGVjaWZ5aW5nIGFuIGFuaW1hdGlvbiB3aGVyZSB0aGUgbmV3CiAgICAgICogYWN0aXZpdHkgaXMgc2NhbGVkIGZyb20gYSBzbWFsbCBvcmlnaW5hdGluZyBhcmVhIG9mIHRoZSBzY3JlZW4gdG8KICAgICAgKiBpdHMgZmluYWwgZnVsbCByZXByZXNlbnRhdGlvbi4KQEAgLTI5OCw3ICszNjAsMjMgQEAKICAgICAgICAgc291cmNlLmdldExvY2F0aW9uT25TY3JlZW4ocHRzKTsKICAgICAgICAgb3B0cy5tU3RhcnRYID0gcHRzWzBdICsgc3RhcnRYOwogICAgICAgICBvcHRzLm1TdGFydFkgPSBwdHNbMV0gKyBzdGFydFk7Ci0gICAgICAgIG9wdHMuc2V0TGlzdGVuZXIoc291cmNlLmdldEhhbmRsZXIoKSwgbGlzdGVuZXIpOworICAgICAgICBvcHRzLnNldE9uQW5pbWF0aW9uU3RhcnRlZExpc3RlbmVyKHNvdXJjZS5nZXRIYW5kbGVyKCksIGxpc3RlbmVyKTsKKyAgICAgICAgcmV0dXJuIG9wdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIEFjdGl2aXR5T3B0aW9ucyBzcGVjaWZ5aW5nIGFuIGFuaW1hdGlvbiB3aGVyZSBhbiBhY3Rpdml0eSB3aW5kb3cgaXMgYXNrZWQKKyAgICAgKiB0byBwZXJmb3JtIGFuaW1hdGlvbnMgd2l0aGluIHRoZSB3aW5kb3cgY29udGVudC4KKyAgICAgKgorICAgICAqIEBoaWRlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBBY3Rpdml0eU9wdGlvbnMgbWFrZVNjZW5lVHJhbnNpdGlvbkFuaW1hdGlvbihTdHJpbmdbXSBkZXN0U2NlbmVOYW1lcywKKyAgICAgICAgICAgIEJ1bmRsZSBhcmdzLCBPblNjZW5lVHJhbnNpdGlvblN0YXJ0ZWRMaXN0ZW5lciBsaXN0ZW5lciwgSGFuZGxlciBoYW5kbGVyKSB7CisgICAgICAgIEFjdGl2aXR5T3B0aW9ucyBvcHRzID0gbmV3IEFjdGl2aXR5T3B0aW9ucygpOworICAgICAgICBvcHRzLm1BbmltYXRpb25UeXBlID0gQU5JTV9TQ0VORV9UUkFOU0lUSU9OOworICAgICAgICBvcHRzLm1EZXN0U2NlbmVOYW1lcyA9IGRlc3RTY2VuZU5hbWVzOworICAgICAgICBvcHRzLm1UcmFuc2l0aW9uQXJncyA9IGFyZ3M7CisgICAgICAgIG9wdHMuc2V0T25TY2VuZVRyYW5zaXRpb25TdGFydGVkTGlzdGVuZXIoaGFuZGxlciwgbGlzdGVuZXIpOwogICAgICAgICByZXR1cm4gb3B0czsKICAgICB9CiAKQEAgLTMwOSwyMyArMzg3LDM2IEBACiAgICAgcHVibGljIEFjdGl2aXR5T3B0aW9ucyhCdW5kbGUgb3B0cykgewogICAgICAgICBtUGFja2FnZU5hbWUgPSBvcHRzLmdldFN0cmluZyhLRVlfUEFDS0FHRV9OQU1FKTsKICAgICAgICAgbUFuaW1hdGlvblR5cGUgPSBvcHRzLmdldEludChLRVlfQU5JTV9UWVBFKTsKLSAgICAgICAgaWYgKG1BbmltYXRpb25UeXBlID09IEFOSU1fQ1VTVE9NKSB7Ci0gICAgICAgICAgICBtQ3VzdG9tRW50ZXJSZXNJZCA9IG9wdHMuZ2V0SW50KEtFWV9BTklNX0VOVEVSX1JFU19JRCwgMCk7Ci0gICAgICAgICAgICBtQ3VzdG9tRXhpdFJlc0lkID0gb3B0cy5nZXRJbnQoS0VZX0FOSU1fRVhJVF9SRVNfSUQsIDApOwotICAgICAgICAgICAgbUFuaW1hdGlvblN0YXJ0ZWRMaXN0ZW5lciA9IElSZW1vdGVDYWxsYmFjay5TdHViLmFzSW50ZXJmYWNlKAotICAgICAgICAgICAgICAgICAgICBvcHRzLmdldElCaW5kZXIoS0VZX0FOSU1fU1RBUlRfTElTVEVORVIpKTsKLSAgICAgICAgfSBlbHNlIGlmIChtQW5pbWF0aW9uVHlwZSA9PSBBTklNX1NDQUxFX1VQKSB7Ci0gICAgICAgICAgICBtU3RhcnRYID0gb3B0cy5nZXRJbnQoS0VZX0FOSU1fU1RBUlRfWCwgMCk7Ci0gICAgICAgICAgICBtU3RhcnRZID0gb3B0cy5nZXRJbnQoS0VZX0FOSU1fU1RBUlRfWSwgMCk7Ci0gICAgICAgICAgICBtU3RhcnRXaWR0aCA9IG9wdHMuZ2V0SW50KEtFWV9BTklNX1NUQVJUX1dJRFRILCAwKTsKLSAgICAgICAgICAgIG1TdGFydEhlaWdodCA9IG9wdHMuZ2V0SW50KEtFWV9BTklNX1NUQVJUX0hFSUdIVCwgMCk7Ci0gICAgICAgIH0gZWxzZSBpZiAobUFuaW1hdGlvblR5cGUgPT0gQU5JTV9USFVNQk5BSUxfU0NBTEVfVVAgfHwKLSAgICAgICAgICAgICAgICBtQW5pbWF0aW9uVHlwZSA9PSBBTklNX1RIVU1CTkFJTF9TQ0FMRV9ET1dOKSB7Ci0gICAgICAgICAgICBtVGh1bWJuYWlsID0gKEJpdG1hcClvcHRzLmdldFBhcmNlbGFibGUoS0VZX0FOSU1fVEhVTUJOQUlMKTsKLSAgICAgICAgICAgIG1TdGFydFggPSBvcHRzLmdldEludChLRVlfQU5JTV9TVEFSVF9YLCAwKTsKLSAgICAgICAgICAgIG1TdGFydFkgPSBvcHRzLmdldEludChLRVlfQU5JTV9TVEFSVF9ZLCAwKTsKLSAgICAgICAgICAgIG1BbmltYXRpb25TdGFydGVkTGlzdGVuZXIgPSBJUmVtb3RlQ2FsbGJhY2suU3R1Yi5hc0ludGVyZmFjZSgKLSAgICAgICAgICAgICAgICAgICAgb3B0cy5nZXRJQmluZGVyKEtFWV9BTklNX1NUQVJUX0xJU1RFTkVSKSk7CisgICAgICAgIHN3aXRjaCAobUFuaW1hdGlvblR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgQU5JTV9DVVNUT006CisgICAgICAgICAgICAgICAgbUN1c3RvbUVudGVyUmVzSWQgPSBvcHRzLmdldEludChLRVlfQU5JTV9FTlRFUl9SRVNfSUQsIDApOworICAgICAgICAgICAgICAgIG1DdXN0b21FeGl0UmVzSWQgPSBvcHRzLmdldEludChLRVlfQU5JTV9FWElUX1JFU19JRCwgMCk7CisgICAgICAgICAgICAgICAgbUFuaW1hdGlvblN0YXJ0ZWRMaXN0ZW5lciA9IElSZW1vdGVDYWxsYmFjay5TdHViLmFzSW50ZXJmYWNlKAorICAgICAgICAgICAgICAgICAgICAgICAgb3B0cy5nZXRCaW5kZXIoS0VZX0FOSU1fU1RBUlRfTElTVEVORVIpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBBTklNX1NDQUxFX1VQOgorICAgICAgICAgICAgICAgIG1TdGFydFggPSBvcHRzLmdldEludChLRVlfQU5JTV9TVEFSVF9YLCAwKTsKKyAgICAgICAgICAgICAgICBtU3RhcnRZID0gb3B0cy5nZXRJbnQoS0VZX0FOSU1fU1RBUlRfWSwgMCk7CisgICAgICAgICAgICAgICAgbVN0YXJ0V2lkdGggPSBvcHRzLmdldEludChLRVlfQU5JTV9TVEFSVF9XSURUSCwgMCk7CisgICAgICAgICAgICAgICAgbVN0YXJ0SGVpZ2h0ID0gb3B0cy5nZXRJbnQoS0VZX0FOSU1fU1RBUlRfSEVJR0hULCAwKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBBTklNX1RIVU1CTkFJTF9TQ0FMRV9VUDoKKyAgICAgICAgICAgIGNhc2UgQU5JTV9USFVNQk5BSUxfU0NBTEVfRE9XTjoKKyAgICAgICAgICAgICAgICBtVGh1bWJuYWlsID0gKEJpdG1hcClvcHRzLmdldFBhcmNlbGFibGUoS0VZX0FOSU1fVEhVTUJOQUlMKTsKKyAgICAgICAgICAgICAgICBtU3RhcnRYID0gb3B0cy5nZXRJbnQoS0VZX0FOSU1fU1RBUlRfWCwgMCk7CisgICAgICAgICAgICAgICAgbVN0YXJ0WSA9IG9wdHMuZ2V0SW50KEtFWV9BTklNX1NUQVJUX1ksIDApOworICAgICAgICAgICAgICAgIG1BbmltYXRpb25TdGFydGVkTGlzdGVuZXIgPSBJUmVtb3RlQ2FsbGJhY2suU3R1Yi5hc0ludGVyZmFjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMuZ2V0QmluZGVyKEtFWV9BTklNX1NUQVJUX0xJU1RFTkVSKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgQU5JTV9TQ0VORV9UUkFOU0lUSU9OOgorICAgICAgICAgICAgICAgIG1EZXN0U2NlbmVOYW1lcyA9IG9wdHMuZ2V0U3RyaW5nQXJyYXkoS0VZX0RFU1RfU0NFTkVfTkFNRVMpOworICAgICAgICAgICAgICAgIG1UcmFuc2l0aW9uQXJncyA9IG9wdHMuZ2V0QnVuZGxlKEtFWV9TQ0VORV9UUkFOU0lUSU9OX0FSR1MpOworICAgICAgICAgICAgICAgIG1TY2VuZVRyYW5zaXRpb25TdGFydGVkTGlzdGVuZXIgPSBJUmVtb3RlQ2FsbGJhY2suU3R1Yi5hc0ludGVyZmFjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMuZ2V0QmluZGVyKEtFWV9TQ0VORV9UUkFOU0lUSU9OX1NUQVJUX0xJU1RFTkVSKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM3NSwxMSArNDY2LDI2IEBACiAgICAgfQogCiAgICAgLyoqIEBoaWRlICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldERlc3RTY2VuZU5hbWVzKCkgeworICAgICAgICByZXR1cm4gbURlc3RTY2VuZU5hbWVzOworICAgIH0KKworICAgIC8qKiBAaGlkZSAqLworICAgIHB1YmxpYyBCdW5kbGUgZ2V0U2NlbmVUcmFuc2l0aW9uQXJncygpIHsKKyAgICAgICAgcmV0dXJuIG1UcmFuc2l0aW9uQXJnczsKKyAgICB9CisKKyAgICAvKiogQGhpZGUgKi8KICAgICBwdWJsaWMgSVJlbW90ZUNhbGxiYWNrIGdldE9uQW5pbWF0aW9uU3RhcnRMaXN0ZW5lcigpIHsKICAgICAgICAgcmV0dXJuIG1BbmltYXRpb25TdGFydGVkTGlzdGVuZXI7CiAgICAgfQogCiAgICAgLyoqIEBoaWRlICovCisgICAgcHVibGljIElSZW1vdGVDYWxsYmFjayBnZXRPblNjZW5lVHJhbnNpdGlvblN0YXJ0ZWRMaXN0ZW5lcigpIHsKKyAgICAgICAgcmV0dXJuIG1TY2VuZVRyYW5zaXRpb25TdGFydGVkTGlzdGVuZXI7CisgICAgfQorCisgICAgLyoqIEBoaWRlICovCiAgICAgcHVibGljIHZvaWQgYWJvcnQoKSB7CiAgICAgICAgIGlmIChtQW5pbWF0aW9uU3RhcnRlZExpc3RlbmVyICE9IG51bGwpIHsKICAgICAgICAgICAgIHRyeSB7CkBAIC00MTEsMTMgKzUxNywxNiBAQAogICAgICAgICAgICAgICAgIG1DdXN0b21FbnRlclJlc0lkID0gb3RoZXJPcHRpb25zLm1DdXN0b21FbnRlclJlc0lkOwogICAgICAgICAgICAgICAgIG1DdXN0b21FeGl0UmVzSWQgPSBvdGhlck9wdGlvbnMubUN1c3RvbUV4aXRSZXNJZDsKICAgICAgICAgICAgICAgICBtVGh1bWJuYWlsID0gbnVsbDsKLSAgICAgICAgICAgICAgICBpZiAob3RoZXJPcHRpb25zLm1BbmltYXRpb25TdGFydGVkTGlzdGVuZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChtQW5pbWF0aW9uU3RhcnRlZExpc3RlbmVyICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyT3B0aW9ucy5tQW5pbWF0aW9uU3RhcnRlZExpc3RlbmVyLnNlbmRSZXN1bHQobnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBtQW5pbWF0aW9uU3RhcnRlZExpc3RlbmVyLnNlbmRSZXN1bHQobnVsbCk7CiAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFJlbW90ZUV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgbUFuaW1hdGlvblN0YXJ0ZWRMaXN0ZW5lciA9IG90aGVyT3B0aW9ucy5tQW5pbWF0aW9uU3RhcnRlZExpc3RlbmVyOworICAgICAgICAgICAgICAgIG1TY2VuZVRyYW5zaXRpb25TdGFydGVkTGlzdGVuZXIgPSBudWxsOworICAgICAgICAgICAgICAgIG1UcmFuc2l0aW9uQXJncyA9IG51bGw7CisgICAgICAgICAgICAgICAgbURlc3RTY2VuZU5hbWVzID0gbnVsbDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQU5JTV9TQ0FMRV9VUDoKICAgICAgICAgICAgICAgICBtQW5pbWF0aW9uVHlwZSA9IG90aGVyT3B0aW9ucy5tQW5pbWF0aW9uVHlwZTsKQEAgLTQyNSwxMyArNTM0LDE2IEBACiAgICAgICAgICAgICAgICAgbVN0YXJ0WSA9IG90aGVyT3B0aW9ucy5tU3RhcnRZOwogICAgICAgICAgICAgICAgIG1TdGFydFdpZHRoID0gb3RoZXJPcHRpb25zLm1TdGFydFdpZHRoOwogICAgICAgICAgICAgICAgIG1TdGFydEhlaWdodCA9IG90aGVyT3B0aW9ucy5tU3RhcnRIZWlnaHQ7Ci0gICAgICAgICAgICAgICAgaWYgKG90aGVyT3B0aW9ucy5tQW5pbWF0aW9uU3RhcnRlZExpc3RlbmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAobUFuaW1hdGlvblN0YXJ0ZWRMaXN0ZW5lciAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBvdGhlck9wdGlvbnMubUFuaW1hdGlvblN0YXJ0ZWRMaXN0ZW5lci5zZW5kUmVzdWx0KG51bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgbUFuaW1hdGlvblN0YXJ0ZWRMaXN0ZW5lci5zZW5kUmVzdWx0KG51bGwpOwogICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChSZW1vdGVFeGNlcHRpb24gZSkgewogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIG1BbmltYXRpb25TdGFydGVkTGlzdGVuZXIgPSBudWxsOworICAgICAgICAgICAgICAgIG1TY2VuZVRyYW5zaXRpb25TdGFydGVkTGlzdGVuZXIgPSBudWxsOworICAgICAgICAgICAgICAgIG1UcmFuc2l0aW9uQXJncyA9IG51bGw7CisgICAgICAgICAgICAgICAgbURlc3RTY2VuZU5hbWVzID0gbnVsbDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQU5JTV9USFVNQk5BSUxfU0NBTEVfVVA6CiAgICAgICAgICAgICBjYXNlIEFOSU1fVEhVTUJOQUlMX1NDQUxFX0RPV046CkBAIC00MzksMTMgKzU1MSwyOCBAQAogICAgICAgICAgICAgICAgIG1UaHVtYm5haWwgPSBvdGhlck9wdGlvbnMubVRodW1ibmFpbDsKICAgICAgICAgICAgICAgICBtU3RhcnRYID0gb3RoZXJPcHRpb25zLm1TdGFydFg7CiAgICAgICAgICAgICAgICAgbVN0YXJ0WSA9IG90aGVyT3B0aW9ucy5tU3RhcnRZOwotICAgICAgICAgICAgICAgIGlmIChvdGhlck9wdGlvbnMubUFuaW1hdGlvblN0YXJ0ZWRMaXN0ZW5lciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKG1BbmltYXRpb25TdGFydGVkTGlzdGVuZXIgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJPcHRpb25zLm1BbmltYXRpb25TdGFydGVkTGlzdGVuZXIuc2VuZFJlc3VsdChudWxsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1BbmltYXRpb25TdGFydGVkTGlzdGVuZXIuc2VuZFJlc3VsdChudWxsKTsKICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoUmVtb3RlRXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBtQW5pbWF0aW9uU3RhcnRlZExpc3RlbmVyID0gb3RoZXJPcHRpb25zLm1BbmltYXRpb25TdGFydGVkTGlzdGVuZXI7CisgICAgICAgICAgICAgICAgbVNjZW5lVHJhbnNpdGlvblN0YXJ0ZWRMaXN0ZW5lciA9IG51bGw7CisgICAgICAgICAgICAgICAgbVRyYW5zaXRpb25BcmdzID0gbnVsbDsKKyAgICAgICAgICAgICAgICBtRGVzdFNjZW5lTmFtZXMgPSBudWxsOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBBTklNX1NDRU5FX1RSQU5TSVRJT046CisgICAgICAgICAgICAgICAgbUFuaW1hdGlvblR5cGUgPSBvdGhlck9wdGlvbnMubUFuaW1hdGlvblR5cGU7CisgICAgICAgICAgICAgICAgaWYgKG1TY2VuZVRyYW5zaXRpb25TdGFydGVkTGlzdGVuZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgbVNjZW5lVHJhbnNpdGlvblN0YXJ0ZWRMaXN0ZW5lci5zZW5kUmVzdWx0KG51bGwpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChSZW1vdGVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1TY2VuZVRyYW5zaXRpb25TdGFydGVkTGlzdGVuZXIgPSBvdGhlck9wdGlvbnMubVNjZW5lVHJhbnNpdGlvblN0YXJ0ZWRMaXN0ZW5lcjsKKyAgICAgICAgICAgICAgICBtRGVzdFNjZW5lTmFtZXMgPSBvdGhlck9wdGlvbnMubURlc3RTY2VuZU5hbWVzOworICAgICAgICAgICAgICAgIG1BbmltYXRpb25TdGFydGVkTGlzdGVuZXIgPSBudWxsOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL0FwcE9wc01hbmFnZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2FwcC9BcHBPcHNNYW5hZ2VyLmphdmEKaW5kZXggYWVjZTQ2Mi4uZTcxZDQ3ZCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL0FwcE9wc01hbmFnZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9hcHAvQXBwT3BzTWFuYWdlci5qYXZhCkBAIC0zNiw3ICszNiw3IEBACiAgKiBBUEkgZm9yIGludGVyYWN0aW5nIHdpdGggImFwcGxpY2F0aW9uIG9wZXJhdGlvbiIgdHJhY2tpbmcuCiAgKgogICogPHA+VGhpcyBBUEkgaXMgbm90IGdlbmVyYWxseSBpbnRlbmRlZCBmb3IgdGhpcmQgcGFydHkgYXBwbGljYXRpb24gZGV2ZWxvcGVyczsgbW9zdAotICogZmVhdHVyZXMgYXJlIG9ubHkgYXZhaWxhYmxlIHRvIHN5c3RlbSBhcHBsaWNhdGlucy4gIE9idGFpbiBhbiBpbnN0YW5jZSBvZiBpdCB0aHJvdWdoCisgKiBmZWF0dXJlcyBhcmUgb25seSBhdmFpbGFibGUgdG8gc3lzdGVtIGFwcGxpY2F0aW9ucy4gIE9idGFpbiBhbiBpbnN0YW5jZSBvZiBpdCB0aHJvdWdoCiAgKiB7QGxpbmsgQ29udGV4dCNnZXRTeXN0ZW1TZXJ2aWNlKFN0cmluZykgQ29udGV4dC5nZXRTeXN0ZW1TZXJ2aWNlfSB3aXRoCiAgKiB7QGxpbmsgQ29udGV4dCNBUFBfT1BTX1NFUlZJQ0UgQ29udGV4dC5BUFBfT1BTX1NFUlZJQ0V9LjwvcD4KICAqLwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL0ZyYWdtZW50LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9hcHAvRnJhZ21lbnQuamF2YQppbmRleCBkNjI2ZTVmLi5jMDlkYTg3IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9hcHAvRnJhZ21lbnQuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9hcHAvRnJhZ21lbnQuamF2YQpAQCAtMTcsNiArMTcsNyBAQAogcGFja2FnZSBhbmRyb2lkLmFwcDsKIAogaW1wb3J0IGFuZHJvaWQuYW5pbWF0aW9uLkFuaW1hdG9yOworaW1wb3J0IGFuZHJvaWQuYW5ub3RhdGlvbi5OdWxsYWJsZTsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29tcG9uZW50Q2FsbGJhY2tzMjsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuSW50ZW50OwpAQCAtNTc1LDcgKzU3Niw3IEBACiAgICAgICogdGhlIGdpdmVuIGZyYWdtZW50IGNsYXNzLiAgVGhpcyBpcyBhIHJ1bnRpbWUgZXhjZXB0aW9uOyBpdCBpcyBub3QKICAgICAgKiBub3JtYWxseSBleHBlY3RlZCB0byBoYXBwZW4uCiAgICAgICovCi0gICAgcHVibGljIHN0YXRpYyBGcmFnbWVudCBpbnN0YW50aWF0ZShDb250ZXh0IGNvbnRleHQsIFN0cmluZyBmbmFtZSwgQnVuZGxlIGFyZ3MpIHsKKyAgICBwdWJsaWMgc3RhdGljIEZyYWdtZW50IGluc3RhbnRpYXRlKENvbnRleHQgY29udGV4dCwgU3RyaW5nIGZuYW1lLCBATnVsbGFibGUgQnVuZGxlIGFyZ3MpIHsKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIENsYXNzPD8+IGNsYXp6ID0gc0NsYXNzTWFwLmdldChmbmFtZSk7CiAgICAgICAgICAgICBpZiAoY2xhenogPT0gbnVsbCkgewpAQCAtMTIxMyw3ICsxMjE0LDggQEAKICAgICAgKiAKICAgICAgKiBAcmV0dXJuIFJldHVybiB0aGUgVmlldyBmb3IgdGhlIGZyYWdtZW50J3MgVUksIG9yIG51bGwuCiAgICAgICovCi0gICAgcHVibGljIFZpZXcgb25DcmVhdGVWaWV3KExheW91dEluZmxhdGVyIGluZmxhdGVyLCBWaWV3R3JvdXAgY29udGFpbmVyLAorICAgIEBOdWxsYWJsZQorICAgIHB1YmxpYyBWaWV3IG9uQ3JlYXRlVmlldyhMYXlvdXRJbmZsYXRlciBpbmZsYXRlciwgQE51bGxhYmxlIFZpZXdHcm91cCBjb250YWluZXIsCiAgICAgICAgICAgICBCdW5kbGUgc2F2ZWRJbnN0YW5jZVN0YXRlKSB7CiAgICAgICAgIHJldHVybiBudWxsOwogICAgIH0KQEAgLTEyMjgsNyArMTIzMCw3IEBACiAgICAgICogQHBhcmFtIHNhdmVkSW5zdGFuY2VTdGF0ZSBJZiBub24tbnVsbCwgdGhpcyBmcmFnbWVudCBpcyBiZWluZyByZS1jb25zdHJ1Y3RlZAogICAgICAqIGZyb20gYSBwcmV2aW91cyBzYXZlZCBzdGF0ZSBhcyBnaXZlbiBoZXJlLgogICAgICAqLwotICAgIHB1YmxpYyB2b2lkIG9uVmlld0NyZWF0ZWQoVmlldyB2aWV3LCBCdW5kbGUgc2F2ZWRJbnN0YW5jZVN0YXRlKSB7CisgICAgcHVibGljIHZvaWQgb25WaWV3Q3JlYXRlZChWaWV3IHZpZXcsIEBOdWxsYWJsZSBCdW5kbGUgc2F2ZWRJbnN0YW5jZVN0YXRlKSB7CiAgICAgfQogICAgIAogICAgIC8qKgpAQCAtMTIzNyw2ICsxMjM5LDcgQEAKICAgICAgKiAKICAgICAgKiBAcmV0dXJuIFRoZSBmcmFnbWVudCdzIHJvb3Qgdmlldywgb3IgbnVsbCBpZiBpdCBoYXMgbm8gbGF5b3V0LgogICAgICAqLworICAgIEBOdWxsYWJsZQogICAgIHB1YmxpYyBWaWV3IGdldFZpZXcoKSB7CiAgICAgICAgIHJldHVybiBtVmlldzsKICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9hcHAvRnJhZ21lbnRCcmVhZENydW1icy5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvYXBwL0ZyYWdtZW50QnJlYWRDcnVtYnMuamF2YQppbmRleCBiODEwYjg5Li5lNGRlN2FmIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9hcHAvRnJhZ21lbnRCcmVhZENydW1icy5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2FwcC9GcmFnbWVudEJyZWFkQ3J1bWJzLmphdmEKQEAgLTgxLDE0ICs4MSwxOSBAQAogICAgIH0KIAogICAgIHB1YmxpYyBGcmFnbWVudEJyZWFkQ3J1bWJzKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGFuZHJvaWQuUi5zdHlsZS5XaWRnZXRfRnJhZ21lbnRCcmVhZENydW1icyk7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci5mcmFnbWVudEJyZWFkQ3J1bWJzU3R5bGUpOwogICAgIH0KIAotICAgIHB1YmxpYyBGcmFnbWVudEJyZWFkQ3J1bWJzKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgRnJhZ21lbnRCcmVhZENydW1icyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KIAotICAgICAgICBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCi0gICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuRnJhZ21lbnRCcmVhZENydW1icywgZGVmU3R5bGUsIDApOworICAgIHB1YmxpYyBGcmFnbWVudEJyZWFkQ3J1bWJzKAorICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAorICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkZyYWdtZW50QnJlYWRDcnVtYnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIG1HcmF2aXR5ID0gYS5nZXRJbnQoY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuRnJhZ21lbnRCcmVhZENydW1ic19ncmF2aXR5LAogICAgICAgICAgICAgICAgIERFRkFVTFRfR1JBVklUWSk7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9hcHAvTWVkaWFSb3V0ZUJ1dHRvbi5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvYXBwL01lZGlhUm91dGVCdXR0b24uamF2YQppbmRleCA5YjFmZjkzLi5lNzVkYzI5IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9hcHAvTWVkaWFSb3V0ZUJ1dHRvbi5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2FwcC9NZWRpYVJvdXRlQnV0dG9uLmphdmEKQEAgLTc1LDEyICs3NSwxNyBAQAogICAgIH0KIAogICAgIHB1YmxpYyBNZWRpYVJvdXRlQnV0dG9uKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIpOworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBNZWRpYVJvdXRlQnV0dG9uKAorICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgbVJvdXRlciA9IChNZWRpYVJvdXRlciljb250ZXh0LmdldFN5c3RlbVNlcnZpY2UoQ29udGV4dC5NRURJQV9ST1VURVJfU0VSVklDRSk7CiAKLSAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAotICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLk1lZGlhUm91dGVCdXR0b24sIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKKyAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5NZWRpYVJvdXRlQnV0dG9uLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgc2V0UmVtb3RlSW5kaWNhdG9yRHJhd2FibGUoYS5nZXREcmF3YWJsZSgKICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5NZWRpYVJvdXRlQnV0dG9uX2V4dGVybmFsUm91dGVFbmFibGVkRHJhd2FibGUpKTsKICAgICAgICAgbU1pbldpZHRoID0gYS5nZXREaW1lbnNpb25QaXhlbFNpemUoCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9hcHAvTm90aWZpY2F0aW9uLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9hcHAvTm90aWZpY2F0aW9uLmphdmEKaW5kZXggYzYzZTU4Ni4uZWQzYmI5MiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL05vdGlmaWNhdGlvbi5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2FwcC9Ob3RpZmljYXRpb24uamF2YQpAQCAtMTgsNiArMTgsNyBAQAogCiBpbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwuUjsKIAoraW1wb3J0IGFuZHJvaWQuYW5ub3RhdGlvbi5JbnREZWY7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkludGVudDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLlJlc291cmNlczsKQEAgLTM3LDYgKzM4LDggQEAKIGltcG9ydCBhbmRyb2lkLndpZGdldC5Qcm9ncmVzc0JhcjsKIGltcG9ydCBhbmRyb2lkLndpZGdldC5SZW1vdGVWaWV3czsKIAoraW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb25Qb2xpY3k7CiBpbXBvcnQgamF2YS50ZXh0Lk51bWJlckZvcm1hdDsKIGltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwogCkBAIC0zNTAsNiArMzUzLDExIEBACiAKICAgICBwdWJsaWMgaW50IGZsYWdzOwogCisgICAgLyoqIEBoaWRlICovCisgICAgQEludERlZih7UFJJT1JJVFlfREVGQVVMVCxQUklPUklUWV9MT1csUFJJT1JJVFlfTUlOLFBSSU9SSVRZX0hJR0gsUFJJT1JJVFlfTUFYfSkKKyAgICBAUmV0ZW50aW9uKFJldGVudGlvblBvbGljeS5TT1VSQ0UpCisgICAgcHVibGljIEBpbnRlcmZhY2UgUHJpb3JpdHkge30KKwogICAgIC8qKgogICAgICAqIERlZmF1bHQgbm90aWZpY2F0aW9uIHtAbGluayAjcHJpb3JpdHl9LiBJZiB5b3VyIGFwcGxpY2F0aW9uIGRvZXMgbm90IHByaW9yaXRpemUgaXRzIG93bgogICAgICAqIG5vdGlmaWNhdGlvbnMsIHVzZSB0aGlzIHZhbHVlIGZvciBhbGwgbm90aWZpY2F0aW9ucy4KQEAgLTM5MSw2ICszOTksNyBAQAogICAgICAqIHN5c3RlbSB3aWxsIG1ha2UgYSBkZXRlcm1pbmF0aW9uIGFib3V0IGhvdyB0byBpbnRlcnByZXQgdGhpcyBwcmlvcml0eSB3aGVuIHByZXNlbnRpbmcKICAgICAgKiB0aGUgbm90aWZpY2F0aW9uLgogICAgICAqLworICAgIEBQcmlvcml0eQogICAgIHB1YmxpYyBpbnQgcHJpb3JpdHk7CiAKICAgICAvKioKQEAgLTE1NTAsNyArMTU1OSw3IEBACiAgICAgICAgICAqCiAgICAgICAgICAqIEBzZWUgTm90aWZpY2F0aW9uI3ByaW9yaXR5CiAgICAgICAgICAqLwotICAgICAgICBwdWJsaWMgQnVpbGRlciBzZXRQcmlvcml0eShpbnQgcHJpKSB7CisgICAgICAgIHB1YmxpYyBCdWlsZGVyIHNldFByaW9yaXR5KEBQcmlvcml0eSBpbnQgcHJpKSB7CiAgICAgICAgICAgICBtUHJpb3JpdHkgPSBwcmk7CiAgICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL1BlbmRpbmdJbnRlbnQuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2FwcC9QZW5kaW5nSW50ZW50LmphdmEKaW5kZXggYmRkMGFkYi4uYTAzZTViNiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL1BlbmRpbmdJbnRlbnQuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9hcHAvUGVuZGluZ0ludGVudC5qYXZhCkBAIC0xNiw2ICsxNiw5IEBACiAKIHBhY2thZ2UgYW5kcm9pZC5hcHA7CiAKK2ltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uSW50RGVmOworaW1wb3J0IGFuZHJvaWQuYW5ub3RhdGlvbi5Ob25OdWxsOworaW1wb3J0IGFuZHJvaWQuYW5ub3RhdGlvbi5OdWxsYWJsZTsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuSW50ZW50OwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5JSW50ZW50UmVjZWl2ZXI7CkBAIC0zMCw2ICszMyw5IEBACiBpbXBvcnQgYW5kcm9pZC5vcy5Vc2VySGFuZGxlOwogaW1wb3J0IGFuZHJvaWQudXRpbC5BbmRyb2lkRXhjZXB0aW9uOwogCitpbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uOworaW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvblBvbGljeTsKKwogLyoqCiAgKiBBIGRlc2NyaXB0aW9uIG9mIGFuIEludGVudCBhbmQgdGFyZ2V0IGFjdGlvbiB0byBwZXJmb3JtIHdpdGggaXQuICBJbnN0YW5jZXMKICAqIG9mIHRoaXMgY2xhc3MgYXJlIGNyZWF0ZWQgd2l0aCB7QGxpbmsgI2dldEFjdGl2aXR5fSwge0BsaW5rICNnZXRBY3Rpdml0aWVzfSwKQEAgLTg2LDYgKzkyLDI2IEBACiBwdWJsaWMgZmluYWwgY2xhc3MgUGVuZGluZ0ludGVudCBpbXBsZW1lbnRzIFBhcmNlbGFibGUgewogICAgIHByaXZhdGUgZmluYWwgSUludGVudFNlbmRlciBtVGFyZ2V0OwogCisgICAgLyoqIEBoaWRlICovCisgICAgQEludERlZihmbGFnID0gdHJ1ZSwKKyAgICAgICAgICAgIHZhbHVlID0geworICAgICAgICAgICAgICAgICAgICBGTEFHX09ORV9TSE9ULAorICAgICAgICAgICAgICAgICAgICBGTEFHX05PX0NSRUFURSwKKyAgICAgICAgICAgICAgICAgICAgRkxBR19DQU5DRUxfQ1VSUkVOVCwKKyAgICAgICAgICAgICAgICAgICAgRkxBR19VUERBVEVfQ1VSUkVOVCwKKworICAgICAgICAgICAgICAgICAgICBJbnRlbnQuRklMTF9JTl9BQ1RJT04sCisgICAgICAgICAgICAgICAgICAgIEludGVudC5GSUxMX0lOX0RBVEEsCisgICAgICAgICAgICAgICAgICAgIEludGVudC5GSUxMX0lOX0NBVEVHT1JJRVMsCisgICAgICAgICAgICAgICAgICAgIEludGVudC5GSUxMX0lOX0NPTVBPTkVOVCwKKyAgICAgICAgICAgICAgICAgICAgSW50ZW50LkZJTExfSU5fUEFDS0FHRSwKKyAgICAgICAgICAgICAgICAgICAgSW50ZW50LkZJTExfSU5fU09VUkNFX0JPVU5EUywKKyAgICAgICAgICAgICAgICAgICAgSW50ZW50LkZJTExfSU5fU0VMRUNUT1IsCisgICAgICAgICAgICAgICAgICAgIEludGVudC5GSUxMX0lOX0NMSVBfREFUQQorICAgICAgICAgICAgfSkKKyAgICBAUmV0ZW50aW9uKFJldGVudGlvblBvbGljeS5TT1VSQ0UpCisgICAgcHVibGljIEBpbnRlcmZhY2UgRmxhZ3Mge30KKwogICAgIC8qKgogICAgICAqIEZsYWcgZm9yIHVzZSB3aXRoIHtAbGluayAjZ2V0QWN0aXZpdHl9LCB7QGxpbmsgI2dldEJyb2FkY2FzdH0sIGFuZAogICAgICAqIHtAbGluayAjZ2V0U2VydmljZX06IHRoaXMKQEAgLTIyMCw3ICsyNDYsNyBAQAogICAgICAqIHN1cHBsaWVkLgogICAgICAqLwogICAgIHB1YmxpYyBzdGF0aWMgUGVuZGluZ0ludGVudCBnZXRBY3Rpdml0eShDb250ZXh0IGNvbnRleHQsIGludCByZXF1ZXN0Q29kZSwKLSAgICAgICAgICAgIEludGVudCBpbnRlbnQsIGludCBmbGFncykgeworICAgICAgICAgICAgSW50ZW50IGludGVudCwgQEZsYWdzIGludCBmbGFncykgewogICAgICAgICByZXR1cm4gZ2V0QWN0aXZpdHkoY29udGV4dCwgcmVxdWVzdENvZGUsIGludGVudCwgZmxhZ3MsIG51bGwpOwogICAgIH0KIApAQCAtMjUzLDcgKzI3OSw3IEBACiAgICAgICogc3VwcGxpZWQuCiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBQZW5kaW5nSW50ZW50IGdldEFjdGl2aXR5KENvbnRleHQgY29udGV4dCwgaW50IHJlcXVlc3RDb2RlLAotICAgICAgICAgICAgSW50ZW50IGludGVudCwgaW50IGZsYWdzLCBCdW5kbGUgb3B0aW9ucykgeworICAgICAgICAgICAgQE5vbk51bGwgSW50ZW50IGludGVudCwgQEZsYWdzIGludCBmbGFncywgQE51bGxhYmxlIEJ1bmRsZSBvcHRpb25zKSB7CiAgICAgICAgIFN0cmluZyBwYWNrYWdlTmFtZSA9IGNvbnRleHQuZ2V0UGFja2FnZU5hbWUoKTsKICAgICAgICAgU3RyaW5nIHJlc29sdmVkVHlwZSA9IGludGVudCAhPSBudWxsID8gaW50ZW50LnJlc29sdmVUeXBlSWZOZWVkZWQoCiAgICAgICAgICAgICAgICAgY29udGV4dC5nZXRDb250ZW50UmVzb2x2ZXIoKSkgOiBudWxsOwpAQCAtMjc4LDcgKzMwNCw3IEBACiAgICAgICogYWN0aXZpdHkgaXMgc3RhcnRlZCwgbm90IHdoZW4gdGhlIHBlbmRpbmcgaW50ZW50IGlzIGNyZWF0ZWQuCiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBQZW5kaW5nSW50ZW50IGdldEFjdGl2aXR5QXNVc2VyKENvbnRleHQgY29udGV4dCwgaW50IHJlcXVlc3RDb2RlLAotICAgICAgICAgICAgSW50ZW50IGludGVudCwgaW50IGZsYWdzLCBCdW5kbGUgb3B0aW9ucywgVXNlckhhbmRsZSB1c2VyKSB7CisgICAgICAgICAgICBATm9uTnVsbCBJbnRlbnQgaW50ZW50LCBpbnQgZmxhZ3MsIEJ1bmRsZSBvcHRpb25zLCBVc2VySGFuZGxlIHVzZXIpIHsKICAgICAgICAgU3RyaW5nIHBhY2thZ2VOYW1lID0gY29udGV4dC5nZXRQYWNrYWdlTmFtZSgpOwogICAgICAgICBTdHJpbmcgcmVzb2x2ZWRUeXBlID0gaW50ZW50ICE9IG51bGwgPyBpbnRlbnQucmVzb2x2ZVR5cGVJZk5lZWRlZCgKICAgICAgICAgICAgICAgICBjb250ZXh0LmdldENvbnRlbnRSZXNvbHZlcigpKSA6IG51bGw7CkBAIC0zNDMsNyArMzY5LDcgQEAKICAgICAgKiBzdXBwbGllZC4KICAgICAgKi8KICAgICBwdWJsaWMgc3RhdGljIFBlbmRpbmdJbnRlbnQgZ2V0QWN0aXZpdGllcyhDb250ZXh0IGNvbnRleHQsIGludCByZXF1ZXN0Q29kZSwKLSAgICAgICAgICAgIEludGVudFtdIGludGVudHMsIGludCBmbGFncykgeworICAgICAgICAgICAgQE5vbk51bGwgSW50ZW50W10gaW50ZW50cywgQEZsYWdzIGludCBmbGFncykgewogICAgICAgICByZXR1cm4gZ2V0QWN0aXZpdGllcyhjb250ZXh0LCByZXF1ZXN0Q29kZSwgaW50ZW50cywgZmxhZ3MsIG51bGwpOwogICAgIH0KIApAQCAtMzkzLDcgKzQxOSw3IEBACiAgICAgICogc3VwcGxpZWQuCiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBQZW5kaW5nSW50ZW50IGdldEFjdGl2aXRpZXMoQ29udGV4dCBjb250ZXh0LCBpbnQgcmVxdWVzdENvZGUsCi0gICAgICAgICAgICBJbnRlbnRbXSBpbnRlbnRzLCBpbnQgZmxhZ3MsIEJ1bmRsZSBvcHRpb25zKSB7CisgICAgICAgICAgICBATm9uTnVsbCBJbnRlbnRbXSBpbnRlbnRzLCBARmxhZ3MgaW50IGZsYWdzLCBATnVsbGFibGUgQnVuZGxlIG9wdGlvbnMpIHsKICAgICAgICAgU3RyaW5nIHBhY2thZ2VOYW1lID0gY29udGV4dC5nZXRQYWNrYWdlTmFtZSgpOwogICAgICAgICBTdHJpbmdbXSByZXNvbHZlZFR5cGVzID0gbmV3IFN0cmluZ1tpbnRlbnRzLmxlbmd0aF07CiAgICAgICAgIGZvciAoaW50IGk9MDsgaTxpbnRlbnRzLmxlbmd0aDsgaSsrKSB7CkBAIC00MTksNyArNDQ1LDcgQEAKICAgICAgKiBhY3Rpdml0eSBpcyBzdGFydGVkLCBub3Qgd2hlbiB0aGUgcGVuZGluZyBpbnRlbnQgaXMgY3JlYXRlZC4KICAgICAgKi8KICAgICBwdWJsaWMgc3RhdGljIFBlbmRpbmdJbnRlbnQgZ2V0QWN0aXZpdGllc0FzVXNlcihDb250ZXh0IGNvbnRleHQsIGludCByZXF1ZXN0Q29kZSwKLSAgICAgICAgICAgIEludGVudFtdIGludGVudHMsIGludCBmbGFncywgQnVuZGxlIG9wdGlvbnMsIFVzZXJIYW5kbGUgdXNlcikgeworICAgICAgICAgICAgQE5vbk51bGwgSW50ZW50W10gaW50ZW50cywgaW50IGZsYWdzLCBCdW5kbGUgb3B0aW9ucywgVXNlckhhbmRsZSB1c2VyKSB7CiAgICAgICAgIFN0cmluZyBwYWNrYWdlTmFtZSA9IGNvbnRleHQuZ2V0UGFja2FnZU5hbWUoKTsKICAgICAgICAgU3RyaW5nW10gcmVzb2x2ZWRUeXBlcyA9IG5ldyBTdHJpbmdbaW50ZW50cy5sZW5ndGhdOwogICAgICAgICBmb3IgKGludCBpPTA7IGk8aW50ZW50cy5sZW5ndGg7IGkrKykgewpAQCAtNDYzLDcgKzQ4OSw3IEBACiAgICAgICogc3VwcGxpZWQuCiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBQZW5kaW5nSW50ZW50IGdldEJyb2FkY2FzdChDb250ZXh0IGNvbnRleHQsIGludCByZXF1ZXN0Q29kZSwKLSAgICAgICAgICAgIEludGVudCBpbnRlbnQsIGludCBmbGFncykgeworICAgICAgICAgICAgSW50ZW50IGludGVudCwgQEZsYWdzIGludCBmbGFncykgewogICAgICAgICByZXR1cm4gZ2V0QnJvYWRjYXN0QXNVc2VyKGNvbnRleHQsIHJlcXVlc3RDb2RlLCBpbnRlbnQsIGZsYWdzLAogICAgICAgICAgICAgICAgIG5ldyBVc2VySGFuZGxlKFVzZXJIYW5kbGUubXlVc2VySWQoKSkpOwogICAgIH0KQEAgLTUxNyw3ICs1NDMsNyBAQAogICAgICAqIHN1cHBsaWVkLgogICAgICAqLwogICAgIHB1YmxpYyBzdGF0aWMgUGVuZGluZ0ludGVudCBnZXRTZXJ2aWNlKENvbnRleHQgY29udGV4dCwgaW50IHJlcXVlc3RDb2RlLAotICAgICAgICAgICAgSW50ZW50IGludGVudCwgaW50IGZsYWdzKSB7CisgICAgICAgICAgICBATm9uTnVsbCBJbnRlbnQgaW50ZW50LCBARmxhZ3MgaW50IGZsYWdzKSB7CiAgICAgICAgIFN0cmluZyBwYWNrYWdlTmFtZSA9IGNvbnRleHQuZ2V0UGFja2FnZU5hbWUoKTsKICAgICAgICAgU3RyaW5nIHJlc29sdmVkVHlwZSA9IGludGVudCAhPSBudWxsID8gaW50ZW50LnJlc29sdmVUeXBlSWZOZWVkZWQoCiAgICAgICAgICAgICAgICAgY29udGV4dC5nZXRDb250ZW50UmVzb2x2ZXIoKSkgOiBudWxsOwpAQCAtNzQ3LDYgKzc3Myw3IEBACiAgICAgICogQHJldHVybiBUaGUgcGFja2FnZSBuYW1lIG9mIHRoZSBQZW5kaW5nSW50ZW50LCBvciBudWxsIGlmIHRoZXJlIGlzCiAgICAgICogbm9uZSBhc3NvY2lhdGVkIHdpdGggaXQuCiAgICAgICovCisgICAgQE51bGxhYmxlCiAgICAgcHVibGljIFN0cmluZyBnZXRDcmVhdG9yUGFja2FnZSgpIHsKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIHJldHVybiBBY3Rpdml0eU1hbmFnZXJOYXRpdmUuZ2V0RGVmYXVsdCgpCkBAIC04MDUsNiArODMyLDcgQEAKICAgICAgKiBAcmV0dXJuIFRoZSB1c2VyIGhhbmRsZSBvZiB0aGUgUGVuZGluZ0ludGVudCwgb3IgbnVsbCBpZiB0aGVyZSBpcwogICAgICAqIG5vbmUgYXNzb2NpYXRlZCB3aXRoIGl0LgogICAgICAqLworICAgIEBOdWxsYWJsZQogICAgIHB1YmxpYyBVc2VySGFuZGxlIGdldENyZWF0b3JVc2VySGFuZGxlKCkgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgaW50IHVpZCA9IEFjdGl2aXR5TWFuYWdlck5hdGl2ZS5nZXREZWZhdWx0KCkKQEAgLTkyMCw4ICs5NDgsOCBAQAogICAgICAqIEBwYXJhbSBzZW5kZXIgVGhlIFBlbmRpbmdJbnRlbnQgdG8gd3JpdGUsIG9yIG51bGwuCiAgICAgICogQHBhcmFtIG91dCBXaGVyZSB0byB3cml0ZSB0aGUgUGVuZGluZ0ludGVudC4KICAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVQZW5kaW5nSW50ZW50T3JOdWxsVG9QYXJjZWwoUGVuZGluZ0ludGVudCBzZW5kZXIsCi0gICAgICAgICAgICBQYXJjZWwgb3V0KSB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIHdyaXRlUGVuZGluZ0ludGVudE9yTnVsbFRvUGFyY2VsKEBOdWxsYWJsZSBQZW5kaW5nSW50ZW50IHNlbmRlciwKKyAgICAgICAgICAgIEBOb25OdWxsIFBhcmNlbCBvdXQpIHsKICAgICAgICAgb3V0LndyaXRlU3Ryb25nQmluZGVyKHNlbmRlciAhPSBudWxsID8gc2VuZGVyLm1UYXJnZXQuYXNCaW5kZXIoKQogICAgICAgICAgICAgICAgIDogbnVsbCk7CiAgICAgfQpAQCAtOTM2LDcgKzk2NCw4IEBACiAgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBNZXNzZW5nZXIgcmVhZCBmcm9tIHRoZSBQYXJjZWwsIG9yIG51bGwgaWYgbnVsbCBoYWQKICAgICAgKiBiZWVuIHdyaXR0ZW4uCiAgICAgICovCi0gICAgcHVibGljIHN0YXRpYyBQZW5kaW5nSW50ZW50IHJlYWRQZW5kaW5nSW50ZW50T3JOdWxsRnJvbVBhcmNlbChQYXJjZWwgaW4pIHsKKyAgICBATnVsbGFibGUKKyAgICBwdWJsaWMgc3RhdGljIFBlbmRpbmdJbnRlbnQgcmVhZFBlbmRpbmdJbnRlbnRPck51bGxGcm9tUGFyY2VsKEBOb25OdWxsIFBhcmNlbCBpbikgewogICAgICAgICBJQmluZGVyIGIgPSBpbi5yZWFkU3Ryb25nQmluZGVyKCk7CiAgICAgICAgIHJldHVybiBiICE9IG51bGwgPyBuZXcgUGVuZGluZ0ludGVudChiKSA6IG51bGw7CiAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL1Rhc2tTdGFja0J1aWxkZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2FwcC9UYXNrU3RhY2tCdWlsZGVyLmphdmEKaW5kZXggM2UwYWM3ZS4uMDA3N2RiMSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL1Rhc2tTdGFja0J1aWxkZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9hcHAvVGFza1N0YWNrQnVpbGRlci5qYXZhCkBAIC0xNiw2ICsxNiw3IEBACiAKIHBhY2thZ2UgYW5kcm9pZC5hcHA7CiAKK2ltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uTm9uTnVsbDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29tcG9uZW50TmFtZTsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuSW50ZW50OwpAQCAtMjQ0LDcgKzI0NSw3IEBACiAgICAgICoKICAgICAgKiBAcmV0dXJuIFRoZSBvYnRhaW5lZCBQZW5kaW5nSW50ZW50CiAgICAgICovCi0gICAgcHVibGljIFBlbmRpbmdJbnRlbnQgZ2V0UGVuZGluZ0ludGVudChpbnQgcmVxdWVzdENvZGUsIGludCBmbGFncykgeworICAgIHB1YmxpYyBQZW5kaW5nSW50ZW50IGdldFBlbmRpbmdJbnRlbnQoaW50IHJlcXVlc3RDb2RlLCBAUGVuZGluZ0ludGVudC5GbGFncyBpbnQgZmxhZ3MpIHsKICAgICAgICAgcmV0dXJuIGdldFBlbmRpbmdJbnRlbnQocmVxdWVzdENvZGUsIGZsYWdzLCBudWxsKTsKICAgICB9CiAKQEAgLTI2Myw3ICsyNjQsOCBAQAogICAgICAqCiAgICAgICogQHJldHVybiBUaGUgb2J0YWluZWQgUGVuZGluZ0ludGVudAogICAgICAqLwotICAgIHB1YmxpYyBQZW5kaW5nSW50ZW50IGdldFBlbmRpbmdJbnRlbnQoaW50IHJlcXVlc3RDb2RlLCBpbnQgZmxhZ3MsIEJ1bmRsZSBvcHRpb25zKSB7CisgICAgcHVibGljIFBlbmRpbmdJbnRlbnQgZ2V0UGVuZGluZ0ludGVudChpbnQgcmVxdWVzdENvZGUsIEBQZW5kaW5nSW50ZW50LkZsYWdzIGludCBmbGFncywKKyAgICAgICAgICAgIEJ1bmRsZSBvcHRpb25zKSB7CiAgICAgICAgIGlmIChtSW50ZW50cy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oCiAgICAgICAgICAgICAgICAgICAgICJObyBpbnRlbnRzIGFkZGVkIHRvIFRhc2tTdGFja0J1aWxkZXI7IGNhbm5vdCBnZXRQZW5kaW5nSW50ZW50Iik7CkBAIC0yOTQsNiArMjk2LDcgQEAKICAgICAgKgogICAgICAqIEByZXR1cm4gQW4gYXJyYXkgY29udGFpbmluZyB0aGUgaW50ZW50cyBhZGRlZCB0byB0aGlzIGJ1aWxkZXIuCiAgICAgICovCisgICAgQE5vbk51bGwKICAgICBwdWJsaWMgSW50ZW50W10gZ2V0SW50ZW50cygpIHsKICAgICAgICAgSW50ZW50W10gaW50ZW50cyA9IG5ldyBJbnRlbnRbbUludGVudHMuc2l6ZSgpXTsKICAgICAgICAgaWYgKGludGVudHMubGVuZ3RoID09IDApIHJldHVybiBpbnRlbnRzOwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL1RpbWVQaWNrZXJEaWFsb2cuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2FwcC9UaW1lUGlja2VyRGlhbG9nLmphdmEKaW5kZXggOTUyMjI3Zi4uYTg1YzYxZiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL1RpbWVQaWNrZXJEaWFsb2cuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9hcHAvVGltZVBpY2tlckRpYWxvZy5qYXZhCkBAIC0xNiwxNyArMTYsMTkgQEAKIAogcGFja2FnZSBhbmRyb2lkLmFwcDsKIAotaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLlI7Ci0KIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuRGlhbG9nSW50ZXJmYWNlOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5EaWFsb2dJbnRlcmZhY2UuT25DbGlja0xpc3RlbmVyOwogaW1wb3J0IGFuZHJvaWQub3MuQnVuZGxlOworaW1wb3J0IGFuZHJvaWQudXRpbC5UeXBlZFZhbHVlOwogaW1wb3J0IGFuZHJvaWQudmlldy5MYXlvdXRJbmZsYXRlcjsKIGltcG9ydCBhbmRyb2lkLnZpZXcuVmlldzsKIGltcG9ydCBhbmRyb2lkLndpZGdldC5UaW1lUGlja2VyOwogaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlRpbWVQaWNrZXIuT25UaW1lQ2hhbmdlZExpc3RlbmVyOwogCitpbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwuUjsKKworCiAvKioKICAqIEEgZGlhbG9nIHRoYXQgcHJvbXB0cyB0aGUgdXNlciBmb3IgdGhlIHRpbWUgb2YgZGF5IHVzaW5nIGEge0BsaW5rIFRpbWVQaWNrZXJ9LgogICoKQEAgLTM4LDcgKzQwLDcgQEAKIAogICAgIC8qKgogICAgICAqIFRoZSBjYWxsYmFjayBpbnRlcmZhY2UgdXNlZCB0byBpbmRpY2F0ZSB0aGUgdXNlciBpcyBkb25lIGZpbGxpbmcgaW4KLSAgICAgKiB0aGUgdGltZSAodGhleSBjbGlja2VkIG9uIHRoZSAnU2V0JyBidXR0b24pLgorICAgICAqIHRoZSB0aW1lICh0aGV5IGNsaWNrZWQgb24gdGhlICdEb25lJyBidXR0b24pLgogICAgICAqLwogICAgIHB1YmxpYyBpbnRlcmZhY2UgT25UaW1lU2V0TGlzdGVuZXIgewogCkBAIC01NSw3ICs1Nyw3IEBACiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElTXzI0X0hPVVIgPSAiaXMyNGhvdXIiOwogCiAgICAgcHJpdmF0ZSBmaW5hbCBUaW1lUGlja2VyIG1UaW1lUGlja2VyOwotICAgIHByaXZhdGUgZmluYWwgT25UaW1lU2V0TGlzdGVuZXIgbUNhbGxiYWNrOworICAgIHByaXZhdGUgZmluYWwgT25UaW1lU2V0TGlzdGVuZXIgbVRpbWVTZXRDYWxsYmFjazsKIAogICAgIGludCBtSW5pdGlhbEhvdXJPZkRheTsKICAgICBpbnQgbUluaXRpYWxNaW51dGU7CkBAIC03NCw2ICs3NiwxNiBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIDAsIGNhbGxCYWNrLCBob3VyT2ZEYXksIG1pbnV0ZSwgaXMyNEhvdXJWaWV3KTsKICAgICB9CiAKKyAgICBzdGF0aWMgaW50IHJlc29sdmVEaWFsb2dUaGVtZShDb250ZXh0IGNvbnRleHQsIGludCByZXNpZCkgeworICAgICAgICBpZiAocmVzaWQgPT0gMCkgeworICAgICAgICAgICAgVHlwZWRWYWx1ZSBvdXRWYWx1ZSA9IG5ldyBUeXBlZFZhbHVlKCk7CisgICAgICAgICAgICBjb250ZXh0LmdldFRoZW1lKCkucmVzb2x2ZUF0dHJpYnV0ZShSLmF0dHIudGltZVBpY2tlckRpYWxvZ1RoZW1lLCBvdXRWYWx1ZSwgdHJ1ZSk7CisgICAgICAgICAgICByZXR1cm4gb3V0VmFsdWUucmVzb3VyY2VJZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiByZXNpZDsKKyAgICAgICAgfQorICAgIH0KKwogICAgIC8qKgogICAgICAqIEBwYXJhbSBjb250ZXh0IFBhcmVudC4KICAgICAgKiBAcGFyYW0gdGhlbWUgdGhlIHRoZW1lIHRvIGFwcGx5IHRvIHRoaXMgZGlhbG9nCkBAIC04NiwxNyArOTgsMTMgQEAKICAgICAgICAgICAgIGludCB0aGVtZSwKICAgICAgICAgICAgIE9uVGltZVNldExpc3RlbmVyIGNhbGxCYWNrLAogICAgICAgICAgICAgaW50IGhvdXJPZkRheSwgaW50IG1pbnV0ZSwgYm9vbGVhbiBpczI0SG91clZpZXcpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgdGhlbWUpOwotICAgICAgICBtQ2FsbGJhY2sgPSBjYWxsQmFjazsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgcmVzb2x2ZURpYWxvZ1RoZW1lKGNvbnRleHQsIHRoZW1lKSk7CisgICAgICAgIG1UaW1lU2V0Q2FsbGJhY2sgPSBjYWxsQmFjazsKICAgICAgICAgbUluaXRpYWxIb3VyT2ZEYXkgPSBob3VyT2ZEYXk7CiAgICAgICAgIG1Jbml0aWFsTWludXRlID0gbWludXRlOwogICAgICAgICBtSXMyNEhvdXJWaWV3ID0gaXMyNEhvdXJWaWV3OwogCi0gICAgICAgIHNldEljb24oMCk7Ci0gICAgICAgIHNldFRpdGxlKFIuc3RyaW5nLnRpbWVfcGlja2VyX2RpYWxvZ190aXRsZSk7Ci0KICAgICAgICAgQ29udGV4dCB0aGVtZUNvbnRleHQgPSBnZXRDb250ZXh0KCk7Ci0gICAgICAgIHNldEJ1dHRvbihCVVRUT05fUE9TSVRJVkUsIHRoZW1lQ29udGV4dC5nZXRUZXh0KFIuc3RyaW5nLmRhdGVfdGltZV9kb25lKSwgdGhpcyk7CiAKICAgICAgICAgTGF5b3V0SW5mbGF0ZXIgaW5mbGF0ZXIgPQogICAgICAgICAgICAgICAgIChMYXlvdXRJbmZsYXRlcikgdGhlbWVDb250ZXh0LmdldFN5c3RlbVNlcnZpY2UoQ29udGV4dC5MQVlPVVRfSU5GTEFURVJfU0VSVklDRSk7CkBAIC0xMDQsNyArMTEyLDE4IEBACiAgICAgICAgIHNldFZpZXcodmlldyk7CiAgICAgICAgIG1UaW1lUGlja2VyID0gKFRpbWVQaWNrZXIpIHZpZXcuZmluZFZpZXdCeUlkKFIuaWQudGltZVBpY2tlcik7CiAKLSAgICAgICAgLy8gaW5pdGlhbGl6ZSBzdGF0ZQorICAgICAgICAvLyBJbml0aWFsaXplIHN0YXRlCisgICAgICAgIG1UaW1lUGlja2VyLnNldExlZ2FjeU1vZGUoZmFsc2UgLyogd2lsbCBzaG93IG5ldyBVSSAqLyk7CisgICAgICAgIG1UaW1lUGlja2VyLnNldFNob3dEb25lQnV0dG9uKHRydWUpOworICAgICAgICBtVGltZVBpY2tlci5zZXREaXNtaXNzQ2FsbGJhY2sobmV3IFRpbWVQaWNrZXIuVGltZVBpY2tlckRpc21pc3NDYWxsYmFjaygpIHsKKyAgICAgICAgICAgIEBPdmVycmlkZQorICAgICAgICAgICAgcHVibGljIHZvaWQgZGlzbWlzcyhUaW1lUGlja2VyIHZpZXcsIGJvb2xlYW4gaXNDYW5jZWwsIGludCBob3VyT2ZEYXksIGludCBtaW51dGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzQ2FuY2VsKSB7CisgICAgICAgICAgICAgICAgICAgIG1UaW1lU2V0Q2FsbGJhY2sub25UaW1lU2V0KHZpZXcsIGhvdXJPZkRheSwgbWludXRlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVGltZVBpY2tlckRpYWxvZy50aGlzLmRpc21pc3MoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CiAgICAgICAgIG1UaW1lUGlja2VyLnNldElzMjRIb3VyVmlldyhtSXMyNEhvdXJWaWV3KTsKICAgICAgICAgbVRpbWVQaWNrZXIuc2V0Q3VycmVudEhvdXIobUluaXRpYWxIb3VyT2ZEYXkpOwogICAgICAgICBtVGltZVBpY2tlci5zZXRDdXJyZW50TWludXRlKG1Jbml0aWFsTWludXRlKTsKQEAgLTEyNSw5ICsxNDQsOSBAQAogICAgIH0KIAogICAgIHByaXZhdGUgdm9pZCB0cnlOb3RpZnlUaW1lU2V0KCkgewotICAgICAgICBpZiAobUNhbGxiYWNrICE9IG51bGwpIHsKKyAgICAgICAgaWYgKG1UaW1lU2V0Q2FsbGJhY2sgIT0gbnVsbCkgewogICAgICAgICAgICAgbVRpbWVQaWNrZXIuY2xlYXJGb2N1cygpOwotICAgICAgICAgICAgbUNhbGxiYWNrLm9uVGltZVNldChtVGltZVBpY2tlciwgbVRpbWVQaWNrZXIuZ2V0Q3VycmVudEhvdXIoKSwKKyAgICAgICAgICAgIG1UaW1lU2V0Q2FsbGJhY2sub25UaW1lU2V0KG1UaW1lUGlja2VyLCBtVGltZVBpY2tlci5nZXRDdXJyZW50SG91cigpLAogICAgICAgICAgICAgICAgICAgICBtVGltZVBpY2tlci5nZXRDdXJyZW50TWludXRlKCkpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL1dhbGxwYXBlck1hbmFnZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2FwcC9XYWxscGFwZXJNYW5hZ2VyLmphdmEKaW5kZXggY2VkNzJmOC4uOTllZWNiMCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvYXBwL1dhbGxwYXBlck1hbmFnZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9hcHAvV2FsbHBhcGVyTWFuYWdlci5qYXZhCkBAIC0yMjEsMjQgKzIyMSw5IEBACiAgICAgICAgIAogICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTVNHX0NMRUFSX1dBTExQQVBFUiA9IDE7CiAgICAgICAgIAotICAgICAgICBwcml2YXRlIGZpbmFsIEhhbmRsZXIgbUhhbmRsZXI7Ci0gICAgICAgIAogICAgICAgICBHbG9iYWxzKExvb3BlciBsb29wZXIpIHsKICAgICAgICAgICAgIElCaW5kZXIgYiA9IFNlcnZpY2VNYW5hZ2VyLmdldFNlcnZpY2UoQ29udGV4dC5XQUxMUEFQRVJfU0VSVklDRSk7CiAgICAgICAgICAgICBtU2VydmljZSA9IElXYWxscGFwZXJNYW5hZ2VyLlN0dWIuYXNJbnRlcmZhY2UoYik7Ci0gICAgICAgICAgICBtSGFuZGxlciA9IG5ldyBIYW5kbGVyKGxvb3BlcikgewotICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZSBtc2cpIHsKLSAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChtc2cud2hhdCkgewotICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBNU0dfQ0xFQVJfV0FMTFBBUEVSOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtV2FsbHBhcGVyID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbURlZmF1bHRXYWxscGFwZXIgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH07CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHB1YmxpYyB2b2lkIG9uV2FsbHBhcGVyQ2hhbmdlZCgpIHsKQEAgLTI0Nyw3ICsyMzIsMTAgQEAKICAgICAgICAgICAgICAqIHRvIG51bGwgc28gaWYgdGhlIHVzZXIgcmVxdWVzdHMgdGhlIHdhbGxwYXBlciBhZ2FpbiB0aGVuIHdlJ2xsCiAgICAgICAgICAgICAgKiBmZXRjaCBpdC4KICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgbUhhbmRsZXIuc2VuZEVtcHR5TWVzc2FnZShNU0dfQ0xFQVJfV0FMTFBBUEVSKTsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeworICAgICAgICAgICAgICAgIG1XYWxscGFwZXIgPSBudWxsOworICAgICAgICAgICAgICAgIG1EZWZhdWx0V2FsbHBhcGVyID0gbnVsbDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIHB1YmxpYyBCaXRtYXAgcGVla1dhbGxwYXBlckJpdG1hcChDb250ZXh0IGNvbnRleHQsIGJvb2xlYW4gcmV0dXJuRGVmYXVsdCkgewpAQCAtMjgwLDcgKzI2OCw2IEBACiAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMpIHsKICAgICAgICAgICAgICAgICBtV2FsbHBhcGVyID0gbnVsbDsKICAgICAgICAgICAgICAgICBtRGVmYXVsdFdhbGxwYXBlciA9IG51bGw7Ci0gICAgICAgICAgICAgICAgbUhhbmRsZXIucmVtb3ZlTWVzc2FnZXMoTVNHX0NMRUFSX1dBTExQQVBFUik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvYmx1ZXRvb3RoL0JsdWV0b290aFRldGhlcmluZ0RhdGFUcmFja2VyLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9ibHVldG9vdGgvQmx1ZXRvb3RoVGV0aGVyaW5nRGF0YVRyYWNrZXIuamF2YQppbmRleCBhOWI3MTc2Li5jYTc3NDlkIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9ibHVldG9vdGgvQmx1ZXRvb3RoVGV0aGVyaW5nRGF0YVRyYWNrZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9ibHVldG9vdGgvQmx1ZXRvb3RoVGV0aGVyaW5nRGF0YVRyYWNrZXIuamF2YQpAQCAtMTQzLDExICsxNDMsNiBAQAogICAgIH0KIAogICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGNhcHRpdmVQb3J0YWxDaGVja0NvbXBsZXRlKCkgewotICAgICAgICAvLyBub3QgaW1wbGVtZW50ZWQKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCBjYXB0aXZlUG9ydGFsQ2hlY2tDb21wbGV0ZWQoYm9vbGVhbiBpc0NhcHRpdmVQb3J0YWwpIHsKICAgICAgICAgLy8gbm90IGltcGxlbWVudGVkCiAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9Bc3luY1Rhc2tMb2FkZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvQXN5bmNUYXNrTG9hZGVyLmphdmEKaW5kZXggZWI3NDI2ZS4uNzI0MWUwZCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9Bc3luY1Rhc2tMb2FkZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L0FzeW5jVGFza0xvYWRlci5qYXZhCkBAIC0yMCw3ICsyMCw3IEBACiBpbXBvcnQgYW5kcm9pZC5vcy5IYW5kbGVyOwogaW1wb3J0IGFuZHJvaWQub3MuT3BlcmF0aW9uQ2FuY2VsZWRFeGNlcHRpb247CiBpbXBvcnQgYW5kcm9pZC5vcy5TeXN0ZW1DbG9jazsKLWltcG9ydCBhbmRyb2lkLnV0aWwuU2xvZzsKK2ltcG9ydCBhbmRyb2lkLnV0aWwuTG9nOwogaW1wb3J0IGFuZHJvaWQudXRpbC5UaW1lVXRpbHM7CiAKIGltcG9ydCBqYXZhLmlvLkZpbGVEZXNjcmlwdG9yOwpAQCAtNjQsMTAgKzY0LDEwIEBACiAgICAgICAgIC8qIFJ1bnMgb24gYSB3b3JrZXIgdGhyZWFkICovCiAgICAgICAgIEBPdmVycmlkZQogICAgICAgICBwcm90ZWN0ZWQgRCBkb0luQmFja2dyb3VuZChWb2lkLi4uIHBhcmFtcykgewotICAgICAgICAgICAgaWYgKERFQlVHKSBTbG9nLnYoVEFHLCB0aGlzICsgIiA+Pj4gZG9JbkJhY2tncm91bmQiKTsKKyAgICAgICAgICAgIGlmIChERUJVRykgTG9nLnYoVEFHLCB0aGlzICsgIiA+Pj4gZG9JbkJhY2tncm91bmQiKTsKICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgRCBkYXRhID0gQXN5bmNUYXNrTG9hZGVyLnRoaXMub25Mb2FkSW5CYWNrZ3JvdW5kKCk7Ci0gICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTbG9nLnYoVEFHLCB0aGlzICsgIiAgPDw8IGRvSW5CYWNrZ3JvdW5kIik7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBMb2cudihUQUcsIHRoaXMgKyAiICA8PDwgZG9JbkJhY2tncm91bmQiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZGF0YTsKICAgICAgICAgICAgIH0gY2F0Y2ggKE9wZXJhdGlvbkNhbmNlbGVkRXhjZXB0aW9uIGV4KSB7CiAgICAgICAgICAgICAgICAgaWYgKCFpc0NhbmNlbGxlZCgpKSB7CkBAIC03OSw3ICs3OSw3IEBACiAgICAgICAgICAgICAgICAgICAgIC8vIFNvIHdlIHRyZWF0IHRoaXMgY2FzZSBhcyBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uLgogICAgICAgICAgICAgICAgICAgICB0aHJvdyBleDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTbG9nLnYoVEFHLCB0aGlzICsgIiAgPDw8IGRvSW5CYWNrZ3JvdW5kICh3YXMgY2FuY2VsZWQpIiwgZXgpOworICAgICAgICAgICAgICAgIGlmIChERUJVRykgTG9nLnYoVEFHLCB0aGlzICsgIiAgPDw8IGRvSW5CYWNrZ3JvdW5kICh3YXMgY2FuY2VsZWQpIiwgZXgpOwogICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC04Nyw3ICs4Nyw3IEBACiAgICAgICAgIC8qIFJ1bnMgb24gdGhlIFVJIHRocmVhZCAqLwogICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgcHJvdGVjdGVkIHZvaWQgb25Qb3N0RXhlY3V0ZShEIGRhdGEpIHsKLSAgICAgICAgICAgIGlmIChERUJVRykgU2xvZy52KFRBRywgdGhpcyArICIgb25Qb3N0RXhlY3V0ZSIpOworICAgICAgICAgICAgaWYgKERFQlVHKSBMb2cudihUQUcsIHRoaXMgKyAiIG9uUG9zdEV4ZWN1dGUiKTsKICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgQXN5bmNUYXNrTG9hZGVyLnRoaXMuZGlzcGF0Y2hPbkxvYWRDb21wbGV0ZSh0aGlzLCBkYXRhKTsKICAgICAgICAgICAgIH0gZmluYWxseSB7CkBAIC05OCw3ICs5OCw3IEBACiAgICAgICAgIC8qIFJ1bnMgb24gdGhlIFVJIHRocmVhZCAqLwogICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgcHJvdGVjdGVkIHZvaWQgb25DYW5jZWxsZWQoRCBkYXRhKSB7Ci0gICAgICAgICAgICBpZiAoREVCVUcpIFNsb2cudihUQUcsIHRoaXMgKyAiIG9uQ2FuY2VsbGVkIik7CisgICAgICAgICAgICBpZiAoREVCVUcpIExvZy52KFRBRywgdGhpcyArICIgb25DYW5jZWxsZWQiKTsKICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgQXN5bmNUYXNrTG9hZGVyLnRoaXMuZGlzcGF0Y2hPbkNhbmNlbGxlZCh0aGlzLCBkYXRhKTsKICAgICAgICAgICAgIH0gZmluYWxseSB7CkBAIC0xNjIsMTggKzE2MiwxOCBAQAogICAgICAgICBzdXBlci5vbkZvcmNlTG9hZCgpOwogICAgICAgICBjYW5jZWxMb2FkKCk7CiAgICAgICAgIG1UYXNrID0gbmV3IExvYWRUYXNrKCk7Ci0gICAgICAgIGlmIChERUJVRykgU2xvZy52KFRBRywgIlByZXBhcmluZyBsb2FkOiBtVGFzaz0iICsgbVRhc2spOworICAgICAgICBpZiAoREVCVUcpIExvZy52KFRBRywgIlByZXBhcmluZyBsb2FkOiBtVGFzaz0iICsgbVRhc2spOwogICAgICAgICBleGVjdXRlUGVuZGluZ1Rhc2soKTsKICAgICB9CiAKICAgICBAT3ZlcnJpZGUKICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBvbkNhbmNlbExvYWQoKSB7Ci0gICAgICAgIGlmIChERUJVRykgU2xvZy52KFRBRywgIm9uQ2FuY2VsTG9hZDogbVRhc2s9IiArIG1UYXNrKTsKKyAgICAgICAgaWYgKERFQlVHKSBMb2cudihUQUcsICJvbkNhbmNlbExvYWQ6IG1UYXNrPSIgKyBtVGFzayk7CiAgICAgICAgIGlmIChtVGFzayAhPSBudWxsKSB7CiAgICAgICAgICAgICBpZiAobUNhbmNlbGxpbmdUYXNrICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAvLyBUaGVyZSB3YXMgYSBwZW5kaW5nIHRhc2sgYWxyZWFkeSB3YWl0aW5nIGZvciBhIHByZXZpb3VzCiAgICAgICAgICAgICAgICAgLy8gb25lIGJlaW5nIGNhbmNlbGVkOyBqdXN0IGRyb3AgaXQuCi0gICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTbG9nLnYoVEFHLAorICAgICAgICAgICAgICAgIGlmIChERUJVRykgTG9nLnYoVEFHLAogICAgICAgICAgICAgICAgICAgICAgICAgImNhbmNlbExvYWQ6IHN0aWxsIHdhaXRpbmcgZm9yIGNhbmNlbGxlZCB0YXNrOyBkcm9wcGluZyBuZXh0Iik7CiAgICAgICAgICAgICAgICAgaWYgKG1UYXNrLndhaXRpbmcpIHsKICAgICAgICAgICAgICAgICAgICAgbVRhc2sud2FpdGluZyA9IGZhbHNlOwpAQCAtMTg0LDE0ICsxODQsMTQgQEAKICAgICAgICAgICAgIH0gZWxzZSBpZiAobVRhc2sud2FpdGluZykgewogICAgICAgICAgICAgICAgIC8vIFRoZXJlIGlzIGEgdGFzaywgYnV0IGl0IGlzIHdhaXRpbmcgZm9yIHRoZSB0aW1lIGl0IHNob3VsZAogICAgICAgICAgICAgICAgIC8vIGV4ZWN1dGUuICBXZSBjYW4ganVzdCB0b3NzIGl0LgotICAgICAgICAgICAgICAgIGlmIChERUJVRykgU2xvZy52KFRBRywgImNhbmNlbExvYWQ6IHRhc2sgaXMgd2FpdGluZywgZHJvcHBpbmcgaXQiKTsKKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIExvZy52KFRBRywgImNhbmNlbExvYWQ6IHRhc2sgaXMgd2FpdGluZywgZHJvcHBpbmcgaXQiKTsKICAgICAgICAgICAgICAgICBtVGFzay53YWl0aW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgbUhhbmRsZXIucmVtb3ZlQ2FsbGJhY2tzKG1UYXNrKTsKICAgICAgICAgICAgICAgICBtVGFzayA9IG51bGw7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBib29sZWFuIGNhbmNlbGxlZCA9IG1UYXNrLmNhbmNlbChmYWxzZSk7Ci0gICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTbG9nLnYoVEFHLCAiY2FuY2VsTG9hZDogY2FuY2VsbGVkPSIgKyBjYW5jZWxsZWQpOworICAgICAgICAgICAgICAgIGlmIChERUJVRykgTG9nLnYoVEFHLCAiY2FuY2VsTG9hZDogY2FuY2VsbGVkPSIgKyBjYW5jZWxsZWQpOwogICAgICAgICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHsKICAgICAgICAgICAgICAgICAgICAgbUNhbmNlbGxpbmdUYXNrID0gbVRhc2s7CiAgICAgICAgICAgICAgICAgICAgIGNhbmNlbExvYWRJbkJhY2tncm91bmQoKTsKQEAgLTIyMyw3ICsyMjMsNyBAQAogICAgICAgICAgICAgICAgIGxvbmcgbm93ID0gU3lzdGVtQ2xvY2sudXB0aW1lTWlsbGlzKCk7CiAgICAgICAgICAgICAgICAgaWYgKG5vdyA8IChtTGFzdExvYWRDb21wbGV0ZVRpbWUrbVVwZGF0ZVRocm90dGxlKSkgewogICAgICAgICAgICAgICAgICAgICAvLyBOb3QgeWV0IHRpbWUgdG8gZG8gYW5vdGhlciBsb2FkLgotICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFNsb2cudihUQUcsICJXYWl0aW5nIHVudGlsICIKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBMb2cudihUQUcsICJXYWl0aW5nIHVudGlsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtTGFzdExvYWRDb21wbGV0ZVRpbWUrbVVwZGF0ZVRocm90dGxlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiB0byBleGVjdXRlOiAiICsgbVRhc2spOwogICAgICAgICAgICAgICAgICAgICBtVGFzay53YWl0aW5nID0gdHJ1ZTsKQEAgLTIzMSw3ICsyMzEsNyBAQAogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKERFQlVHKSBTbG9nLnYoVEFHLCAiRXhlY3V0aW5nOiAiICsgbVRhc2spOworICAgICAgICAgICAgaWYgKERFQlVHKSBMb2cudihUQUcsICJFeGVjdXRpbmc6ICIgKyBtVGFzayk7CiAgICAgICAgICAgICBtVGFzay5leGVjdXRlT25FeGVjdXRvcihtRXhlY3V0b3IsIChWb2lkW10pIG51bGwpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjM5LDExICsyMzksMTEgQEAKICAgICB2b2lkIGRpc3BhdGNoT25DYW5jZWxsZWQoTG9hZFRhc2sgdGFzaywgRCBkYXRhKSB7CiAgICAgICAgIG9uQ2FuY2VsZWQoZGF0YSk7CiAgICAgICAgIGlmIChtQ2FuY2VsbGluZ1Rhc2sgPT0gdGFzaykgewotICAgICAgICAgICAgaWYgKERFQlVHKSBTbG9nLnYoVEFHLCAiQ2FuY2VsbGVkIHRhc2sgaXMgbm93IGNhbmNlbGVkISIpOworICAgICAgICAgICAgaWYgKERFQlVHKSBMb2cudihUQUcsICJDYW5jZWxsZWQgdGFzayBpcyBub3cgY2FuY2VsZWQhIik7CiAgICAgICAgICAgICByb2xsYmFja0NvbnRlbnRDaGFuZ2VkKCk7CiAgICAgICAgICAgICBtTGFzdExvYWRDb21wbGV0ZVRpbWUgPSBTeXN0ZW1DbG9jay51cHRpbWVNaWxsaXMoKTsKICAgICAgICAgICAgIG1DYW5jZWxsaW5nVGFzayA9IG51bGw7Ci0gICAgICAgICAgICBpZiAoREVCVUcpIFNsb2cudihUQUcsICJEZWxpdmVyaW5nIGNhbmNlbGxhdGlvbiIpOworICAgICAgICAgICAgaWYgKERFQlVHKSBMb2cudihUQUcsICJEZWxpdmVyaW5nIGNhbmNlbGxhdGlvbiIpOwogICAgICAgICAgICAgZGVsaXZlckNhbmNlbGxhdGlvbigpOwogICAgICAgICAgICAgZXhlY3V0ZVBlbmRpbmdUYXNrKCk7CiAgICAgICAgIH0KQEAgLTI1MSw3ICsyNTEsNyBAQAogCiAgICAgdm9pZCBkaXNwYXRjaE9uTG9hZENvbXBsZXRlKExvYWRUYXNrIHRhc2ssIEQgZGF0YSkgewogICAgICAgICBpZiAobVRhc2sgIT0gdGFzaykgewotICAgICAgICAgICAgaWYgKERFQlVHKSBTbG9nLnYoVEFHLCAiTG9hZCBjb21wbGV0ZSBvZiBvbGQgdGFzaywgdHJ5aW5nIHRvIGNhbmNlbCIpOworICAgICAgICAgICAgaWYgKERFQlVHKSBMb2cudihUQUcsICJMb2FkIGNvbXBsZXRlIG9mIG9sZCB0YXNrLCB0cnlpbmcgdG8gY2FuY2VsIik7CiAgICAgICAgICAgICBkaXNwYXRjaE9uQ2FuY2VsbGVkKHRhc2ssIGRhdGEpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKGlzQWJhbmRvbmVkKCkpIHsKQEAgLTI2MSw3ICsyNjEsNyBAQAogICAgICAgICAgICAgICAgIGNvbW1pdENvbnRlbnRDaGFuZ2VkKCk7CiAgICAgICAgICAgICAgICAgbUxhc3RMb2FkQ29tcGxldGVUaW1lID0gU3lzdGVtQ2xvY2sudXB0aW1lTWlsbGlzKCk7CiAgICAgICAgICAgICAgICAgbVRhc2sgPSBudWxsOwotICAgICAgICAgICAgICAgIGlmIChERUJVRykgU2xvZy52KFRBRywgIkRlbGl2ZXJpbmcgcmVzdWx0Iik7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBMb2cudihUQUcsICJEZWxpdmVyaW5nIHJlc3VsdCIpOwogICAgICAgICAgICAgICAgIGRlbGl2ZXJSZXN1bHQoZGF0YSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvQ29udGVudFJlc29sdmVyLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L0NvbnRlbnRSZXNvbHZlci5qYXZhCmluZGV4IDRlNmNjOTIuLjAxOGU0YzUgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvQ29udGVudFJlc29sdmVyLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9Db250ZW50UmVzb2x2ZXIuamF2YQpAQCAtMTQxLDcgKzE0MSw3IEBACiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1lOQ19FWFRSQVNfUFJJT1JJVFkgPSAic3luY19wcmlvcml0eSI7CiAKICAgICAvKioge0BoaWRlfSBGbGFnIHRvIGFsbG93IHN5bmMgdG8gb2NjdXIgb24gbWV0ZXJlZCBuZXR3b3JrLiAqLwotICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNZTkNfRVhUUkFTX0RJU0FMTE9XX01FVEVSRUQgPSAiZGlzYWxsb3dfbWV0ZXJlZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1lOQ19FWFRSQVNfRElTQUxMT1dfTUVURVJFRCA9ICJhbGxvd19tZXRlcmVkIjsKIAogICAgIC8qKgogICAgICAqIFNldCBieSB0aGUgU3luY01hbmFnZXIgdG8gcmVxdWVzdCB0aGF0IHRoZSBTeW5jQWRhcHRlciBpbml0aWFsaXplIGl0c2VsZiBmb3IKQEAgLTM2OCw5ICszNjgsNyBAQAogICAgIH0KIAogICAgIC8qKgotICAgICAqIDxwPgogICAgICAqIFF1ZXJ5IHRoZSBnaXZlbiBVUkksIHJldHVybmluZyBhIHtAbGluayBDdXJzb3J9IG92ZXIgdGhlIHJlc3VsdCBzZXQuCi0gICAgICogPC9wPgogICAgICAqIDxwPgogICAgICAqIEZvciBiZXN0IHBlcmZvcm1hbmNlLCB0aGUgY2FsbGVyIHNob3VsZCBmb2xsb3cgdGhlc2UgZ3VpZGVsaW5lczoKICAgICAgKiA8dWw+CkBAIC00MDUsOSArNDAzLDggQEAKICAgICB9CiAKICAgICAvKioKLSAgICAgKiA8cD4KLSAgICAgKiBRdWVyeSB0aGUgZ2l2ZW4gVVJJLCByZXR1cm5pbmcgYSB7QGxpbmsgQ3Vyc29yfSBvdmVyIHRoZSByZXN1bHQgc2V0LgotICAgICAqIDwvcD4KKyAgICAgKiBRdWVyeSB0aGUgZ2l2ZW4gVVJJLCByZXR1cm5pbmcgYSB7QGxpbmsgQ3Vyc29yfSBvdmVyIHRoZSByZXN1bHQgc2V0CisgICAgICogd2l0aCBvcHRpb25hbCBzdXBwb3J0IGZvciBjYW5jZWxsYXRpb24uCiAgICAgICogPHA+CiAgICAgICogRm9yIGJlc3QgcGVyZm9ybWFuY2UsIHRoZSBjYWxsZXIgc2hvdWxkIGZvbGxvdyB0aGVzZSBndWlkZWxpbmVzOgogICAgICAqIDx1bD4KQEAgLTE3NTEsNyArMTc0OCw3IEBACiAgICAgICAgICAgICBuZXcgU3luY1JlcXVlc3QuQnVpbGRlcigpCiAgICAgICAgICAgICAgICAgLnNldFN5bmNBZGFwdGVyKGFjY291bnQsIGF1dGhvcml0eSkKICAgICAgICAgICAgICAgICAuc2V0RXh0cmFzKGV4dHJhcykKLSAgICAgICAgICAgICAgICAuc3luY09uY2UoKQorICAgICAgICAgICAgICAgIC5zeW5jT25jZSgpICAgICAvLyBJbW1lZGlhdGUgc3luYy4KICAgICAgICAgICAgICAgICAuYnVpbGQoKTsKICAgICAgICAgcmVxdWVzdFN5bmMocmVxdWVzdCk7CiAgICAgfQpAQCAtMTc1OSw5ICsxNzU2LDYgQEAKICAgICAvKioKICAgICAgKiBSZWdpc3RlciBhIHN5bmMgd2l0aCB0aGUgU3luY01hbmFnZXIuIFRoZXNlIHJlcXVlc3RzIGFyZSBidWlsdCB1c2luZyB0aGUKICAgICAgKiB7QGxpbmsgU3luY1JlcXVlc3QuQnVpbGRlcn0uCi0gICAgICoKLSAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgaW1tdXRhYmxlIFN5bmNSZXF1ZXN0IG9iamVjdCBjb250YWluaW5nIHRoZSBzeW5jIHBhcmFtZXRlcnMuIFVzZQotICAgICAqIHtAbGluayBTeW5jUmVxdWVzdC5CdWlsZGVyfSB0byBjb25zdHJ1Y3QgdGhlc2UuCiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlcXVlc3RTeW5jKFN5bmNSZXF1ZXN0IHJlcXVlc3QpIHsKICAgICAgICAgdHJ5IHsKQEAgLTE4MjksMTIgKzE4MjMsMjUgQEAKICAgICAgKi8KICAgICBwdWJsaWMgc3RhdGljIHZvaWQgY2FuY2VsU3luYyhBY2NvdW50IGFjY291bnQsIFN0cmluZyBhdXRob3JpdHkpIHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGdldENvbnRlbnRTZXJ2aWNlKCkuY2FuY2VsU3luYyhhY2NvdW50LCBhdXRob3JpdHkpOworICAgICAgICAgICAgZ2V0Q29udGVudFNlcnZpY2UoKS5jYW5jZWxTeW5jKGFjY291bnQsIGF1dGhvcml0eSwgbnVsbCk7CiAgICAgICAgIH0gY2F0Y2ggKFJlbW90ZUV4Y2VwdGlvbiBlKSB7CiAgICAgICAgIH0KICAgICB9CiAKICAgICAvKioKKyAgICAgKiBDYW5jZWwgYW55IGFjdGl2ZSBvciBwZW5kaW5nIHN5bmNzIHRoYXQgYXJlIHJ1bm5pbmcgb24gdGhpcyBzZXJ2aWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGNuYW1lIHRoZSBzZXJ2aWNlIGZvciB3aGljaCB0byBjYW5jZWwgYWxsIGFjdGl2ZS9wZW5kaW5nIG9wZXJhdGlvbnMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGNhbmNlbFN5bmMoQ29tcG9uZW50TmFtZSBjbmFtZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgZ2V0Q29udGVudFNlcnZpY2UoKS5jYW5jZWxTeW5jKG51bGwsIG51bGwsIGNuYW1lKTsKKyAgICAgICAgfSBjYXRjaCAoUmVtb3RlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCiAgICAgICogR2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBTeW5jQWRhcHRlcnMgdGhhdCBhcmUga25vd24gdG8gdGhlIHN5c3RlbS4KICAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIFN5bmNBZGFwdGVycyB0aGF0IGhhdmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBzeXN0ZW0KICAgICAgKi8KQEAgLTE4OTcsMTIgKzE5MDQsMTMgQEAKICAgICAgKiB7QGxpbmsgI1NZTkNfRVhUUkFTX0lOSVRJQUxJWkV9LCB7QGxpbmsgI1NZTkNfRVhUUkFTX0ZPUkNFfSwKICAgICAgKiB7QGxpbmsgI1NZTkNfRVhUUkFTX0VYUEVESVRFRH0sIHtAbGluayAjU1lOQ19FWFRSQVNfTUFOVUFMfSBzZXQgdG8gdHJ1ZS4KICAgICAgKiBJZiBhbnkgYXJlIHN1cHBsaWVkIHRoZW4gYW4ge0BsaW5rIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbn0gd2lsbCBiZSB0aHJvd24uCi0gICAgICogPHA+QXMgb2YgQVBJIGxldmVsIDE5IHRoaXMgZnVuY3Rpb24gaW50cm9kdWNlcyBhIGRlZmF1bHQgZmxleGliaWxpdHkgb2YgfjQlICh1cCB0byBhIG1heGltdW0KLSAgICAgKiBvZiBvbmUgaG91ciBpbiB0aGUgZGF5KSBpbnRvIHRoZSByZXF1ZXN0ZWQgcGVyaW9kLiBVc2UKLSAgICAgKiB7QGxpbmsgU3luY1JlcXVlc3QuQnVpbGRlciNzeW5jUGVyaW9kaWMobG9uZywgbG9uZyl9IHRvIHNldCB0aGlzIGZsZXhpYmlsaXR5IG1hbnVhbGx5LgogICAgICAqCiAgICAgICogPHA+VGhpcyBtZXRob2QgcmVxdWlyZXMgdGhlIGNhbGxlciB0byBob2xkIHRoZSBwZXJtaXNzaW9uCiAgICAgICoge0BsaW5rIGFuZHJvaWQuTWFuaWZlc3QucGVybWlzc2lvbiNXUklURV9TWU5DX1NFVFRJTkdTfS4KKyAgICAgKiA8cD5UaGUgYnVuZGxlIGZvciBhIHBlcmlvZGljIHN5bmMgY2FuIGJlIHF1ZXJpZWQgYnkgYXBwbGljYXRpb25zIHdpdGggdGhlIGNvcnJlY3QKKyAgICAgKiBwZXJtaXNzaW9ucyB1c2luZworICAgICAqIHtAbGluayBDb250ZW50UmVzb2x2ZXIjZ2V0UGVyaW9kaWNTeW5jcyhBY2NvdW50IGFjY291bnQsIFN0cmluZyBwcm92aWRlcil9LCBzbyBubworICAgICAqIHNlbnNpdGl2ZSBkYXRhIHNob3VsZCBiZSB0cmFuc2ZlcnJlZCBoZXJlLgogICAgICAqCiAgICAgICogQHBhcmFtIGFjY291bnQgdGhlIGFjY291bnQgdG8gc3BlY2lmeSBpbiB0aGUgc3luYwogICAgICAqIEBwYXJhbSBhdXRob3JpdHkgdGhlIHByb3ZpZGVyIHRvIHNwZWNpZnkgaW4gdGhlIHN5bmMgcmVxdWVzdApAQCAtMTkzMiw2ICsxOTQwLDI2IEBACiAgICAgfQogCiAgICAgLyoqCisgICAgICoge0BoaWRlfQorICAgICAqIEhlbHBlciBmdW5jdGlvbiB0byB0aHJvdyBhbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGlmIGFueSBpbGxlZ2FsCisgICAgICogZXh0cmFzIHdlcmUgc2V0IGZvciBhIHBlcmlvZGljIHN5bmMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXh0cmFzIGJ1bmRsZSB0byB2YWxpZGF0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaW52YWxpZFBlcmlvZGljRXh0cmFzKEJ1bmRsZSBleHRyYXMpIHsKKyAgICAgICAgaWYgKGV4dHJhcy5nZXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19NQU5VQUwsIGZhbHNlKQorICAgICAgICAgICAgICAgIHx8IGV4dHJhcy5nZXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19ET19OT1RfUkVUUlksIGZhbHNlKQorICAgICAgICAgICAgICAgIHx8IGV4dHJhcy5nZXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19JR05PUkVfQkFDS09GRiwgZmFsc2UpCisgICAgICAgICAgICAgICAgfHwgZXh0cmFzLmdldEJvb2xlYW4oQ29udGVudFJlc29sdmVyLlNZTkNfRVhUUkFTX0lHTk9SRV9TRVRUSU5HUywgZmFsc2UpCisgICAgICAgICAgICAgICAgfHwgZXh0cmFzLmdldEJvb2xlYW4oQ29udGVudFJlc29sdmVyLlNZTkNfRVhUUkFTX0lOSVRJQUxJWkUsIGZhbHNlKQorICAgICAgICAgICAgICAgIHx8IGV4dHJhcy5nZXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19GT1JDRSwgZmFsc2UpCisgICAgICAgICAgICAgICAgfHwgZXh0cmFzLmdldEJvb2xlYW4oQ29udGVudFJlc29sdmVyLlNZTkNfRVhUUkFTX0VYUEVESVRFRCwgZmFsc2UpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCiAgICAgICogUmVtb3ZlIGEgcGVyaW9kaWMgc3luYy4gSGFzIG5vIGFmZmVjdCBpZiBhY2NvdW50LCBhdXRob3JpdHkgYW5kIGV4dHJhcyBkb24ndCBtYXRjaAogICAgICAqIGFuIGV4aXN0aW5nIHBlcmlvZGljIHN5bmMuCiAgICAgICogPHA+VGhpcyBtZXRob2QgcmVxdWlyZXMgdGhlIGNhbGxlciB0byBob2xkIHRoZSBwZXJtaXNzaW9uCkBAIC0xOTUxLDYgKzE5NzksMzEgQEAKICAgICB9CiAKICAgICAvKioKKyAgICAgKiBSZW1vdmUgdGhlIHNwZWNpZmllZCBzeW5jLiBUaGlzIHdpbGwgY2FuY2VsIGFueSBwZW5kaW5nIG9yIGFjdGl2ZSBzeW5jcy4gSWYgdGhlIHJlcXVlc3QgaXMKKyAgICAgKiBmb3IgYSBwZXJpb2RpYyBzeW5jLCB0aGlzIGNhbGwgd2lsbCByZW1vdmUgYW55IGZ1dHVyZSBvY2N1cnJlbmNlcy4KKyAgICAgKiA8cD5JZiBhIHBlcmlvZGljIHN5bmMgaXMgc3BlY2lmaWVkLCB0aGUgY2FsbGVyIG11c3QgaG9sZCB0aGUgcGVybWlzc2lvbgorICAgICAqIHtAbGluayBhbmRyb2lkLk1hbmlmZXN0LnBlcm1pc3Npb24jV1JJVEVfU1lOQ19TRVRUSU5HU30uIElmIHRoaXMgU3luY1JlcXVlc3QgdGFyZ2V0cyBhCisgICAgICogU3luY1NlcnZpY2UgYWRhcHRlcix0aGUgY2FsbGluZyBhcHBsaWNhdGlvbiBtdXN0IGJlIHNpZ25lZCB3aXRoIHRoZSBzYW1lIGNlcnRpZmljYXRlIGFzIHRoZQorICAgICAqIGFkYXB0ZXIuCisgICAgICo8L3A+SXQgaXMgcG9zc2libGUgdG8gY2FuY2VsIGEgc3luYyB1c2luZyBhIFN5bmNSZXF1ZXN0IG9iamVjdCB0aGF0IGlzIG5vdCB0aGUgc2FtZSBvYmplY3QKKyAgICAgKiB3aXRoIHdoaWNoIHlvdSByZXF1ZXN0ZWQgdGhlIHN5bmMuIERvIHNvIGJ5IGJ1aWxkaW5nIGEgU3luY1JlcXVlc3Qgd2l0aCB0aGUgc2FtZQorICAgICAqIHNlcnZpY2UvYWRhcHRlciwgZnJlcXVlbmN5LCA8Yj5hbmQ8L2I+IGV4dHJhcyBidW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBTeW5jUmVxdWVzdCBvYmplY3QgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCBzeW5jIHRvIGNhbmNlbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgY2FuY2VsU3luYyhTeW5jUmVxdWVzdCByZXF1ZXN0KSB7CisgICAgICAgIGlmIChyZXF1ZXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJlcXVlc3QgY2Fubm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgZ2V0Q29udGVudFNlcnZpY2UoKS5jYW5jZWxSZXF1ZXN0KHJlcXVlc3QpOworICAgICAgICB9IGNhdGNoIChSZW1vdGVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gZXhjZXB0aW9uIGlnbm9yZWQ7IGlmIHRoaXMgaXMgdGhyb3duIHRoZW4gaXQgbWVhbnMgdGhlIHJ1bnRpbWUgaXMgaW4gdGhlIG1pZHN0IG9mCisgICAgICAgICAgICAvLyBiZWluZyByZXN0YXJ0ZWQKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgogICAgICAqIEdldCB0aGUgbGlzdCBvZiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGVyaW9kaWMgc3luY3MgZm9yIHRoZSBnaXZlbiBhY2NvdW50IGFuZCBhdXRob3JpdHkuCiAgICAgICogPHA+VGhpcyBtZXRob2QgcmVxdWlyZXMgdGhlIGNhbGxlciB0byBob2xkIHRoZSBwZXJtaXNzaW9uCiAgICAgICoge0BsaW5rIGFuZHJvaWQuTWFuaWZlc3QucGVybWlzc2lvbiNSRUFEX1NZTkNfU0VUVElOR1N9LgpAQCAtMTk2MSw3ICsyMDE0LDIzIEBACiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBMaXN0PFBlcmlvZGljU3luYz4gZ2V0UGVyaW9kaWNTeW5jcyhBY2NvdW50IGFjY291bnQsIFN0cmluZyBhdXRob3JpdHkpIHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHJldHVybiBnZXRDb250ZW50U2VydmljZSgpLmdldFBlcmlvZGljU3luY3MoYWNjb3VudCwgYXV0aG9yaXR5KTsKKyAgICAgICAgICAgIHJldHVybiBnZXRDb250ZW50U2VydmljZSgpLmdldFBlcmlvZGljU3luY3MoYWNjb3VudCwgYXV0aG9yaXR5LCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoUmVtb3RlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJ0aGUgQ29udGVudFNlcnZpY2Ugc2hvdWxkIGFsd2F5cyBiZSByZWFjaGFibGUiLCBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBwZXJpb2RpYyBzeW5jcyBhc3NvY2lhdGVkIHdpdGggdGhlIHByb3ZpZGVkIGNvbXBvbmVudC4KKyAgICAgKiA8cD5UaGUgY2FsbGluZyBhcHBsaWNhdGlvbiBtdXN0IGJlIHNpZ25lZCB3aXRoIHRoZSBzYW1lIGNlcnRpZmljYXRlIGFzIHRoZSB0YXJnZXQgY29tcG9uZW50LAorICAgICAqIG90aGVyd2lzZSB0aGlzIGNhbGwgd2lsbCBmYWlsLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTGlzdDxQZXJpb2RpY1N5bmM+IGdldFBlcmlvZGljU3luY3MoQ29tcG9uZW50TmFtZSBjbmFtZSkgeworICAgICAgICBpZiAoY25hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ29tcG9uZW50IG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGdldENvbnRlbnRTZXJ2aWNlKCkuZ2V0UGVyaW9kaWNTeW5jcyhudWxsLCBudWxsLCBjbmFtZSk7CiAgICAgICAgIH0gY2F0Y2ggKFJlbW90ZUV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigidGhlIENvbnRlbnRTZXJ2aWNlIHNob3VsZCBhbHdheXMgYmUgcmVhY2hhYmxlIiwgZSk7CiAgICAgICAgIH0KQEAgLTE5OTcsNiArMjA2NiwzOCBAQAogICAgIH0KIAogICAgIC8qKgorICAgICAqIFNldCB3aGV0aGVyIHRoZSBwcm92aWRlZCB7QGxpbmsgU3luY1NlcnZpY2V9IGlzIGF2YWlsYWJsZSB0byBwcm9jZXNzIHdvcmsuCisgICAgICogPHA+VGhpcyBtZXRob2QgcmVxdWlyZXMgdGhlIGNhbGxlciB0byBob2xkIHRoZSBwZXJtaXNzaW9uCisgICAgICoge0BsaW5rIGFuZHJvaWQuTWFuaWZlc3QucGVybWlzc2lvbiNXUklURV9TWU5DX1NFVFRJTkdTfS4KKyAgICAgKiA8cD5UaGUgY2FsbGluZyBhcHBsaWNhdGlvbiBtdXN0IGJlIHNpZ25lZCB3aXRoIHRoZSBzYW1lIGNlcnRpZmljYXRlIGFzIHRoZSB0YXJnZXQgY29tcG9uZW50LAorICAgICAqIG90aGVyd2lzZSB0aGlzIGNhbGwgd2lsbCBmYWlsLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzZXRTZXJ2aWNlQWN0aXZlKENvbXBvbmVudE5hbWUgY25hbWUsIGJvb2xlYW4gYWN0aXZlKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBnZXRDb250ZW50U2VydmljZSgpLnNldFNlcnZpY2VBY3RpdmUoY25hbWUsIGFjdGl2ZSk7CisgICAgICAgIH0gY2F0Y2ggKFJlbW90ZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBleGNlcHRpb24gaWdub3JlZDsgaWYgdGhpcyBpcyB0aHJvd24gdGhlbiBpdCBtZWFucyB0aGUgcnVudGltZSBpcyBpbiB0aGUgbWlkc3Qgb2YKKyAgICAgICAgICAgIC8vIGJlaW5nIHJlc3RhcnRlZAorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUXVlcnkgdGhlIHN0YXRlIG9mIHRoaXMgc3luYyBzZXJ2aWNlLgorICAgICAqIDxwPlNldCB3aXRoIHtAbGluayAjc2V0U2VydmljZUFjdGl2ZShDb21wb25lbnROYW1lIGNuYW1lLCBib29sZWFuIGFjdGl2ZSl9LgorICAgICAqIDxwPlRoZSBjYWxsaW5nIGFwcGxpY2F0aW9uIG11c3QgYmUgc2lnbmVkIHdpdGggdGhlIHNhbWUgY2VydGlmaWNhdGUgYXMgdGhlIHRhcmdldCBjb21wb25lbnQsCisgICAgICogb3RoZXJ3aXNlIHRoaXMgY2FsbCB3aWxsIGZhaWwuCisgICAgICogQHBhcmFtIGNuYW1lIENvbXBvbmVudE5hbWUgcmVmZXJyaW5nIHRvIGEge0BsaW5rIFN5bmNTZXJ2aWNlfQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBqb2JzIHdpbGwgYmUgcnVuIG9uIHRoaXMgc2VydmljZSwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1NlcnZpY2VBY3RpdmUoQ29tcG9uZW50TmFtZSBjbmFtZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGdldENvbnRlbnRTZXJ2aWNlKCkuaXNTZXJ2aWNlQWN0aXZlKGNuYW1lKTsKKyAgICAgICAgfSBjYXRjaCAoUmVtb3RlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJ0aGUgQ29udGVudFNlcnZpY2Ugc2hvdWxkIGFsd2F5cyBiZSByZWFjaGFibGUiLCBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgogICAgICAqIEdldHMgdGhlIG1hc3RlciBhdXRvLXN5bmMgc2V0dGluZyB0aGF0IGFwcGxpZXMgdG8gYWxsIHRoZSBwcm92aWRlcnMgYW5kIGFjY291bnRzLgogICAgICAqIElmIHRoaXMgaXMgZmFsc2UgdGhlbiB0aGUgcGVyLXByb3ZpZGVyIGF1dG8tc3luYyBzZXR0aW5nIGlzIGlnbm9yZWQuCiAgICAgICogPHA+VGhpcyBtZXRob2QgcmVxdWlyZXMgdGhlIGNhbGxlciB0byBob2xkIHRoZSBwZXJtaXNzaW9uCkBAIC0yMDMwLDggKzIxMzEsOCBAQAogICAgIH0KIAogICAgIC8qKgotICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBjdXJyZW50bHkgYSBzeW5jIG9wZXJhdGlvbiBmb3IgdGhlIGdpdmVuCi0gICAgICogYWNjb3VudCBvciBhdXRob3JpdHkgaW4gdGhlIHBlbmRpbmcgbGlzdCwgb3IgYWN0aXZlbHkgYmVpbmcgcHJvY2Vzc2VkLgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBjdXJyZW50bHkgYSBzeW5jIG9wZXJhdGlvbiBmb3IgdGhlIGdpdmVuIGFjY291bnQgb3IgYXV0aG9yaXR5CisgICAgICogYWN0aXZlbHkgYmVpbmcgcHJvY2Vzc2VkLgogICAgICAqIDxwPlRoaXMgbWV0aG9kIHJlcXVpcmVzIHRoZSBjYWxsZXIgdG8gaG9sZCB0aGUgcGVybWlzc2lvbgogICAgICAqIHtAbGluayBhbmRyb2lkLk1hbmlmZXN0LnBlcm1pc3Npb24jUkVBRF9TWU5DX1NUQVRTfS4KICAgICAgKiBAcGFyYW0gYWNjb3VudCB0aGUgYWNjb3VudCB3aG9zZSBzZXR0aW5nIHdlIGFyZSBxdWVyeWluZwpAQCAtMjAzOSw4ICsyMTQwLDI2IEBACiAgICAgICogQHJldHVybiB0cnVlIGlmIGEgc3luYyBpcyBhY3RpdmUgZm9yIHRoZSBnaXZlbiBhY2NvdW50IG9yIGF1dGhvcml0eS4KICAgICAgKi8KICAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNTeW5jQWN0aXZlKEFjY291bnQgYWNjb3VudCwgU3RyaW5nIGF1dGhvcml0eSkgeworICAgICAgICBpZiAoYWNjb3VudCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJhY2NvdW50IG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYXV0aG9yaXR5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImF1dGhvcml0eSBtdXN0IG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKwogICAgICAgICB0cnkgewotICAgICAgICAgICAgcmV0dXJuIGdldENvbnRlbnRTZXJ2aWNlKCkuaXNTeW5jQWN0aXZlKGFjY291bnQsIGF1dGhvcml0eSk7CisgICAgICAgICAgICByZXR1cm4gZ2V0Q29udGVudFNlcnZpY2UoKS5pc1N5bmNBY3RpdmUoYWNjb3VudCwgYXV0aG9yaXR5LCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoUmVtb3RlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJ0aGUgQ29udGVudFNlcnZpY2Ugc2hvdWxkIGFsd2F5cyBiZSByZWFjaGFibGUiLCBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1N5bmNBY3RpdmUoQ29tcG9uZW50TmFtZSBjbmFtZSkgeworICAgICAgICBpZiAoY25hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiY29tcG9uZW50IG5hbWUgbXVzdCBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0Q29udGVudFNlcnZpY2UoKS5pc1N5bmNBY3RpdmUobnVsbCwgbnVsbCwgY25hbWUpOwogICAgICAgICB9IGNhdGNoIChSZW1vdGVFeGNlcHRpb24gZSkgewogICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oInRoZSBDb250ZW50U2VydmljZSBzaG91bGQgYWx3YXlzIGJlIHJlYWNoYWJsZSIsIGUpOwogICAgICAgICB9CkBAIC0yMDk4LDcgKzIyMTcsNyBAQAogICAgICAqLwogICAgIHB1YmxpYyBzdGF0aWMgU3luY1N0YXR1c0luZm8gZ2V0U3luY1N0YXR1cyhBY2NvdW50IGFjY291bnQsIFN0cmluZyBhdXRob3JpdHkpIHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHJldHVybiBnZXRDb250ZW50U2VydmljZSgpLmdldFN5bmNTdGF0dXMoYWNjb3VudCwgYXV0aG9yaXR5KTsKKyAgICAgICAgICAgIHJldHVybiBnZXRDb250ZW50U2VydmljZSgpLmdldFN5bmNTdGF0dXMoYWNjb3VudCwgYXV0aG9yaXR5LCBudWxsKTsKICAgICAgICAgfSBjYXRjaCAoUmVtb3RlRXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJ0aGUgQ29udGVudFNlcnZpY2Ugc2hvdWxkIGFsd2F5cyBiZSByZWFjaGFibGUiLCBlKTsKICAgICAgICAgfQpAQCAtMjExNCw3ICsyMjMzLDE1IEBACiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzU3luY1BlbmRpbmcoQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgYXV0aG9yaXR5KSB7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICByZXR1cm4gZ2V0Q29udGVudFNlcnZpY2UoKS5pc1N5bmNQZW5kaW5nKGFjY291bnQsIGF1dGhvcml0eSk7CisgICAgICAgICAgICByZXR1cm4gZ2V0Q29udGVudFNlcnZpY2UoKS5pc1N5bmNQZW5kaW5nKGFjY291bnQsIGF1dGhvcml0eSwgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKFJlbW90ZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigidGhlIENvbnRlbnRTZXJ2aWNlIHNob3VsZCBhbHdheXMgYmUgcmVhY2hhYmxlIiwgZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNTeW5jUGVuZGluZyhDb21wb25lbnROYW1lIGNuYW1lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0Q29udGVudFNlcnZpY2UoKS5pc1N5bmNQZW5kaW5nKG51bGwsIG51bGwsIGNuYW1lKTsKICAgICAgICAgfSBjYXRjaCAoUmVtb3RlRXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJ0aGUgQ29udGVudFNlcnZpY2Ugc2hvdWxkIGFsd2F5cyBiZSByZWFjaGFibGUiLCBlKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9Db250ZXh0LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L0NvbnRleHQuamF2YQppbmRleCAyZTRlMjA5Li4zMmI5NWMyIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L0NvbnRleHQuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L0NvbnRleHQuamF2YQpAQCAtMTYsNiArMTYsMTAgQEAKIAogcGFja2FnZSBhbmRyb2lkLmNvbnRlbnQ7CiAKK2ltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uSW50RGVmOworaW1wb3J0IGFuZHJvaWQuYW5ub3RhdGlvbi5Ob25OdWxsOworaW1wb3J0IGFuZHJvaWQuYW5ub3RhdGlvbi5OdWxsYWJsZTsKK2ltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uU3RyaW5nRGVmOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5wbS5BcHBsaWNhdGlvbkluZm87CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LnBtLlBhY2thZ2VNYW5hZ2VyOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuQXNzZXRNYW5hZ2VyOwpAQCAtNDcsNiArNTEsOCBAQAogaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKIGltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwogaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uOworaW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvblBvbGljeTsKIAogLyoqCiAgKiBJbnRlcmZhY2UgdG8gZ2xvYmFsIGluZm9ybWF0aW9uIGFib3V0IGFuIGFwcGxpY2F0aW9uIGVudmlyb25tZW50LiAgVGhpcyBpcwpAQCAtMTMyLDYgKzEzOCwyMCBAQAogICAgICAqLwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1PREVfRU5BQkxFX1dSSVRFX0FIRUFEX0xPR0dJTkcgPSAweDAwMDg7CiAKKyAgICAvKiogQGhpZGUgKi8KKyAgICBASW50RGVmKGZsYWcgPSB0cnVlLAorICAgICAgICAgICAgdmFsdWUgPSB7CisgICAgICAgICAgICAgICAgQklORF9BVVRPX0NSRUFURSwKKyAgICAgICAgICAgICAgICBCSU5EX0FVVE9fQ1JFQVRFLAorICAgICAgICAgICAgICAgIEJJTkRfREVCVUdfVU5CSU5ELAorICAgICAgICAgICAgICAgIEJJTkRfTk9UX0ZPUkVHUk9VTkQsCisgICAgICAgICAgICAgICAgQklORF9BQk9WRV9DTElFTlQsCisgICAgICAgICAgICAgICAgQklORF9BTExPV19PT01fTUFOQUdFTUVOVCwKKyAgICAgICAgICAgICAgICBCSU5EX1dBSVZFX1BSSU9SSVRZCisgICAgICAgICAgICB9KQorICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlNPVVJDRSkKKyAgICBwdWJsaWMgQGludGVyZmFjZSBCaW5kU2VydmljZUZsYWdzIHt9CisKICAgICAvKioKICAgICAgKiBGbGFnIGZvciB7QGxpbmsgI2JpbmRTZXJ2aWNlfTogYXV0b21hdGljYWxseSBjcmVhdGUgdGhlIHNlcnZpY2UgYXMgbG9uZwogICAgICAqIGFzIHRoZSBiaW5kaW5nIGV4aXN0cy4gIE5vdGUgdGhhdCB3aGlsZSB0aGlzIHdpbGwgY3JlYXRlIHRoZSBzZXJ2aWNlLApAQCAtNDk1LDcgKzUxNSw3IEBACiAgICAgICogYW5kIHtAbGluayAjTU9ERV9XT1JMRF9XUklURUFCTEV9IHRvIGNvbnRyb2wgcGVybWlzc2lvbnMuICBUaGUgYml0CiAgICAgICoge0BsaW5rICNNT0RFX01VTFRJX1BST0NFU1N9IGNhbiBhbHNvIGJlIHVzZWQgaWYgbXVsdGlwbGUgcHJvY2Vzc2VzCiAgICAgICogYXJlIG11dGF0aW5nIHRoZSBzYW1lIFNoYXJlZFByZWZlcmVuY2VzIGZpbGUuICB7QGxpbmsgI01PREVfTVVMVElfUFJPQ0VTU30KLSAgICAgKiBpcyBhbHdheXMgb24gaW4gYXBwcyB0YXJnZXR0aW5nIEdpbmdlcmJyZWFkIChBbmRyb2lkIDIuMykgYW5kIGJlbG93LCBhbmQKKyAgICAgKiBpcyBhbHdheXMgb24gaW4gYXBwcyB0YXJnZXRpbmcgR2luZ2VyYnJlYWQgKEFuZHJvaWQgMi4zKSBhbmQgYmVsb3csIGFuZAogICAgICAqIG9mZiBieSBkZWZhdWx0IGluIGxhdGVyIHZlcnNpb25zLgogICAgICAqCiAgICAgICogQHJldHVybiBUaGUgc2luZ2xlIHtAbGluayBTaGFyZWRQcmVmZXJlbmNlc30gaW5zdGFuY2UgdGhhdCBjYW4gYmUgdXNlZApAQCAtNjc0LDcgKzY5NCw4IEBACiAgICAgICogQHNlZSAjZ2V0RmlsZXNEaXIKICAgICAgKiBAc2VlIGFuZHJvaWQub3MuRW52aXJvbm1lbnQjZ2V0RXh0ZXJuYWxTdG9yYWdlUHVibGljRGlyZWN0b3J5CiAgICAgICovCi0gICAgcHVibGljIGFic3RyYWN0IEZpbGUgZ2V0RXh0ZXJuYWxGaWxlc0RpcihTdHJpbmcgdHlwZSk7CisgICAgQE51bGxhYmxlCisgICAgcHVibGljIGFic3RyYWN0IEZpbGUgZ2V0RXh0ZXJuYWxGaWxlc0RpcihATnVsbGFibGUgU3RyaW5nIHR5cGUpOwogCiAgICAgLyoqCiAgICAgICogUmV0dXJucyBhYnNvbHV0ZSBwYXRocyB0byBhcHBsaWNhdGlvbi1zcGVjaWZpYyBkaXJlY3RvcmllcyBvbiBhbGwKQEAgLTg0MCw2ICs4NjEsNyBAQAogICAgICAqCiAgICAgICogQHNlZSAjZ2V0Q2FjaGVEaXIKICAgICAgKi8KKyAgICBATnVsbGFibGUKICAgICBwdWJsaWMgYWJzdHJhY3QgRmlsZSBnZXRFeHRlcm5hbENhY2hlRGlyKCk7CiAKICAgICAvKioKQEAgLTk2MCw3ICs5ODIsOCBAQAogICAgICAqIEBzZWUgI2RlbGV0ZURhdGFiYXNlCiAgICAgICovCiAgICAgcHVibGljIGFic3RyYWN0IFNRTGl0ZURhdGFiYXNlIG9wZW5PckNyZWF0ZURhdGFiYXNlKFN0cmluZyBuYW1lLAotICAgICAgICAgICAgaW50IG1vZGUsIEN1cnNvckZhY3RvcnkgZmFjdG9yeSwgRGF0YWJhc2VFcnJvckhhbmRsZXIgZXJyb3JIYW5kbGVyKTsKKyAgICAgICAgICAgIGludCBtb2RlLCBDdXJzb3JGYWN0b3J5IGZhY3RvcnksCisgICAgICAgICAgICBATnVsbGFibGUgRGF0YWJhc2VFcnJvckhhbmRsZXIgZXJyb3JIYW5kbGVyKTsKIAogICAgIC8qKgogICAgICAqIERlbGV0ZSBhbiBleGlzdGluZyBwcml2YXRlIFNRTGl0ZURhdGFiYXNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIENvbnRleHQncwpAQCAtMTEwNiw3ICsxMTI5LDcgQEAKICAgICAgKiBAc2VlICNzdGFydEFjdGl2aXR5KEludGVudCkKICAgICAgKiBAc2VlIFBhY2thZ2VNYW5hZ2VyI3Jlc29sdmVBY3Rpdml0eQogICAgICAqLwotICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHN0YXJ0QWN0aXZpdHkoSW50ZW50IGludGVudCwgQnVuZGxlIG9wdGlvbnMpOworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHN0YXJ0QWN0aXZpdHkoSW50ZW50IGludGVudCwgQE51bGxhYmxlIEJ1bmRsZSBvcHRpb25zKTsKIAogICAgIC8qKgogICAgICAqIFZlcnNpb24gb2Yge0BsaW5rICNzdGFydEFjdGl2aXR5KEludGVudCwgQnVuZGxlKX0gdGhhdCBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlCkBAIC0xMTIyLDcgKzExNDUsNyBAQAogICAgICAqIEB0aHJvd3MgQWN0aXZpdHlOb3RGb3VuZEV4Y2VwdGlvbiAmbmJzcDsKICAgICAgKiBAaGlkZQogICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHN0YXJ0QWN0aXZpdHlBc1VzZXIoSW50ZW50IGludGVudCwgQnVuZGxlIG9wdGlvbnMsIFVzZXJIYW5kbGUgdXNlcklkKSB7CisgICAgcHVibGljIHZvaWQgc3RhcnRBY3Rpdml0eUFzVXNlcihJbnRlbnQgaW50ZW50LCBATnVsbGFibGUgQnVuZGxlIG9wdGlvbnMsIFVzZXJIYW5kbGUgdXNlcklkKSB7CiAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQuIE11c3Qgb3ZlcnJpZGUgaW4gYSBzdWJjbGFzcy4iKTsKICAgICB9CiAKQEAgLTEyNDEsNyArMTI2NCw3IEBACiAgICAgICogQHNlZSAjc3RhcnRJbnRlbnRTZW5kZXIoSW50ZW50U2VuZGVyLCBJbnRlbnQsIGludCwgaW50LCBpbnQpCiAgICAgICovCiAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc3RhcnRJbnRlbnRTZW5kZXIoSW50ZW50U2VuZGVyIGludGVudCwKLSAgICAgICAgICAgIEludGVudCBmaWxsSW5JbnRlbnQsIGludCBmbGFnc01hc2ssIGludCBmbGFnc1ZhbHVlcywgaW50IGV4dHJhRmxhZ3MsCisgICAgICAgICAgICBATnVsbGFibGUgSW50ZW50IGZpbGxJbkludGVudCwgaW50IGZsYWdzTWFzaywgaW50IGZsYWdzVmFsdWVzLCBpbnQgZXh0cmFGbGFncywKICAgICAgICAgICAgIEJ1bmRsZSBvcHRpb25zKSB0aHJvd3MgSW50ZW50U2VuZGVyLlNlbmRJbnRlbnRFeGNlcHRpb247CiAKICAgICAvKioKQEAgLTEyOTEsMTEgKzEzMTQsMTEgQEAKICAgICAgKiBAc2VlICNzZW5kT3JkZXJlZEJyb2FkY2FzdChJbnRlbnQsIFN0cmluZywgQnJvYWRjYXN0UmVjZWl2ZXIsIEhhbmRsZXIsIGludCwgU3RyaW5nLCBCdW5kbGUpCiAgICAgICovCiAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2VuZEJyb2FkY2FzdChJbnRlbnQgaW50ZW50LAotICAgICAgICAgICAgU3RyaW5nIHJlY2VpdmVyUGVybWlzc2lvbik7CisgICAgICAgICAgICBATnVsbGFibGUgU3RyaW5nIHJlY2VpdmVyUGVybWlzc2lvbik7CiAKICAgICAvKioKICAgICAgKiBMaWtlIHtAbGluayAjc2VuZEJyb2FkY2FzdChJbnRlbnQsIFN0cmluZyl9LCBidXQgYWxzbyBhbGxvd3Mgc3BlY2lmaWNhdGlvbgotICAgICAqIG9mIGFuIGFzc29jYXRlZCBhcHAgb3AgYXMgcGVyIHtAbGluayBhbmRyb2lkLmFwcC5BcHBPcHNNYW5hZ2VyfS4KKyAgICAgKiBvZiBhbiBhc3NvY2lhdGVkIGFwcCBvcCBhcyBwZXIge0BsaW5rIGFuZHJvaWQuYXBwLkFwcE9wc01hbmFnZXJ9LgogICAgICAqIEBoaWRlCiAgICAgICovCiAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2VuZEJyb2FkY2FzdChJbnRlbnQgaW50ZW50LApAQCAtMTMyMiw3ICsxMzQ1LDcgQEAKICAgICAgKiBAc2VlICNzZW5kT3JkZXJlZEJyb2FkY2FzdChJbnRlbnQsIFN0cmluZywgQnJvYWRjYXN0UmVjZWl2ZXIsIEhhbmRsZXIsIGludCwgU3RyaW5nLCBCdW5kbGUpCiAgICAgICovCiAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2VuZE9yZGVyZWRCcm9hZGNhc3QoSW50ZW50IGludGVudCwKLSAgICAgICAgICAgIFN0cmluZyByZWNlaXZlclBlcm1pc3Npb24pOworICAgICAgICAgICAgQE51bGxhYmxlIFN0cmluZyByZWNlaXZlclBlcm1pc3Npb24pOwogCiAgICAgLyoqCiAgICAgICogVmVyc2lvbiBvZiB7QGxpbmsgI3NlbmRCcm9hZGNhc3QoSW50ZW50KX0gdGhhdCBhbGxvd3MgeW91IHRvCkBAIC0xMzY2LDE1ICsxMzg5LDE1IEBACiAgICAgICogQHNlZSAjcmVnaXN0ZXJSZWNlaXZlcgogICAgICAqIEBzZWUgYW5kcm9pZC5hcHAuQWN0aXZpdHkjUkVTVUxUX09LCiAgICAgICovCi0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2VuZE9yZGVyZWRCcm9hZGNhc3QoSW50ZW50IGludGVudCwKLSAgICAgICAgICAgIFN0cmluZyByZWNlaXZlclBlcm1pc3Npb24sIEJyb2FkY2FzdFJlY2VpdmVyIHJlc3VsdFJlY2VpdmVyLAotICAgICAgICAgICAgSGFuZGxlciBzY2hlZHVsZXIsIGludCBpbml0aWFsQ29kZSwgU3RyaW5nIGluaXRpYWxEYXRhLAotICAgICAgICAgICAgQnVuZGxlIGluaXRpYWxFeHRyYXMpOworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNlbmRPcmRlcmVkQnJvYWRjYXN0KEBOb25OdWxsIEludGVudCBpbnRlbnQsCisgICAgICAgICAgICBATnVsbGFibGUgU3RyaW5nIHJlY2VpdmVyUGVybWlzc2lvbiwgQnJvYWRjYXN0UmVjZWl2ZXIgcmVzdWx0UmVjZWl2ZXIsCisgICAgICAgICAgICBATnVsbGFibGUgSGFuZGxlciBzY2hlZHVsZXIsIGludCBpbml0aWFsQ29kZSwgQE51bGxhYmxlIFN0cmluZyBpbml0aWFsRGF0YSwKKyAgICAgICAgICAgIEBOdWxsYWJsZSBCdW5kbGUgaW5pdGlhbEV4dHJhcyk7CiAKICAgICAvKioKICAgICAgKiBMaWtlIHtAbGluayAjc2VuZE9yZGVyZWRCcm9hZGNhc3QoSW50ZW50LCBTdHJpbmcsIEJyb2FkY2FzdFJlY2VpdmVyLCBhbmRyb2lkLm9zLkhhbmRsZXIsCiAgICAgICogaW50LCBTdHJpbmcsIGFuZHJvaWQub3MuQnVuZGxlKX0sIGJ1dCBhbHNvIGFsbG93cyBzcGVjaWZpY2F0aW9uCi0gICAgICogb2YgYW4gYXNzb2NhdGVkIGFwcCBvcCBhcyBwZXIge0BsaW5rIGFuZHJvaWQuYXBwLkFwcE9wc01hbmFnZXJ9LgorICAgICAqIG9mIGFuIGFzc29jaWF0ZWQgYXBwIG9wIGFzIHBlciB7QGxpbmsgYW5kcm9pZC5hcHAuQXBwT3BzTWFuYWdlcn0uCiAgICAgICogQGhpZGUKICAgICAgKi8KICAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZW5kT3JkZXJlZEJyb2FkY2FzdChJbnRlbnQgaW50ZW50LApAQCAtMTQwOSw3ICsxNDMyLDcgQEAKICAgICAgKiBAc2VlICNzZW5kQnJvYWRjYXN0KEludGVudCwgU3RyaW5nKQogICAgICAqLwogICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNlbmRCcm9hZGNhc3RBc1VzZXIoSW50ZW50IGludGVudCwgVXNlckhhbmRsZSB1c2VyLAotICAgICAgICAgICAgU3RyaW5nIHJlY2VpdmVyUGVybWlzc2lvbik7CisgICAgICAgICAgICBATnVsbGFibGUgU3RyaW5nIHJlY2VpdmVyUGVybWlzc2lvbik7CiAKICAgICAvKioKICAgICAgKiBWZXJzaW9uIG9mCkBAIC0xNDQyLDggKzE0NjUsOSBAQAogICAgICAqIEBzZWUgI3NlbmRPcmRlcmVkQnJvYWRjYXN0KEludGVudCwgU3RyaW5nLCBCcm9hZGNhc3RSZWNlaXZlciwgSGFuZGxlciwgaW50LCBTdHJpbmcsIEJ1bmRsZSkKICAgICAgKi8KICAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZW5kT3JkZXJlZEJyb2FkY2FzdEFzVXNlcihJbnRlbnQgaW50ZW50LCBVc2VySGFuZGxlIHVzZXIsCi0gICAgICAgICAgICBTdHJpbmcgcmVjZWl2ZXJQZXJtaXNzaW9uLCBCcm9hZGNhc3RSZWNlaXZlciByZXN1bHRSZWNlaXZlciwgSGFuZGxlciBzY2hlZHVsZXIsCi0gICAgICAgICAgICBpbnQgaW5pdGlhbENvZGUsIFN0cmluZyBpbml0aWFsRGF0YSwgQnVuZGxlIGluaXRpYWxFeHRyYXMpOworICAgICAgICAgICAgQE51bGxhYmxlIFN0cmluZyByZWNlaXZlclBlcm1pc3Npb24sIEJyb2FkY2FzdFJlY2VpdmVyIHJlc3VsdFJlY2VpdmVyLAorICAgICAgICAgICAgQE51bGxhYmxlIEhhbmRsZXIgc2NoZWR1bGVyLCBpbnQgaW5pdGlhbENvZGUsIEBOdWxsYWJsZSBTdHJpbmcgaW5pdGlhbERhdGEsCisgICAgICAgICAgICBATnVsbGFibGUgIEJ1bmRsZSBpbml0aWFsRXh0cmFzKTsKIAogICAgIC8qKgogICAgICAqIFBlcmZvcm0gYSB7QGxpbmsgI3NlbmRCcm9hZGNhc3QoSW50ZW50KX0gdGhhdCBpcyAic3RpY2t5LCIgbWVhbmluZyB0aGUKQEAgLTE1MDgsOCArMTUzMiw4IEBACiAgICAgICovCiAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2VuZFN0aWNreU9yZGVyZWRCcm9hZGNhc3QoSW50ZW50IGludGVudCwKICAgICAgICAgICAgIEJyb2FkY2FzdFJlY2VpdmVyIHJlc3VsdFJlY2VpdmVyLAotICAgICAgICAgICAgSGFuZGxlciBzY2hlZHVsZXIsIGludCBpbml0aWFsQ29kZSwgU3RyaW5nIGluaXRpYWxEYXRhLAotICAgICAgICAgICAgQnVuZGxlIGluaXRpYWxFeHRyYXMpOworICAgICAgICAgICAgQE51bGxhYmxlIEhhbmRsZXIgc2NoZWR1bGVyLCBpbnQgaW5pdGlhbENvZGUsIEBOdWxsYWJsZSBTdHJpbmcgaW5pdGlhbERhdGEsCisgICAgICAgICAgICBATnVsbGFibGUgQnVuZGxlIGluaXRpYWxFeHRyYXMpOwogCiAgICAgLyoqCiAgICAgICogUmVtb3ZlIHRoZSBkYXRhIHByZXZpb3VzbHkgc2VudCB3aXRoIHtAbGluayAjc2VuZFN0aWNreUJyb2FkY2FzdH0sCkBAIC0xNTY5LDggKzE1OTMsOCBAQAogICAgICAqLwogICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNlbmRTdGlja3lPcmRlcmVkQnJvYWRjYXN0QXNVc2VyKEludGVudCBpbnRlbnQsCiAgICAgICAgICAgICBVc2VySGFuZGxlIHVzZXIsIEJyb2FkY2FzdFJlY2VpdmVyIHJlc3VsdFJlY2VpdmVyLAotICAgICAgICAgICAgSGFuZGxlciBzY2hlZHVsZXIsIGludCBpbml0aWFsQ29kZSwgU3RyaW5nIGluaXRpYWxEYXRhLAotICAgICAgICAgICAgQnVuZGxlIGluaXRpYWxFeHRyYXMpOworICAgICAgICAgICAgQE51bGxhYmxlIEhhbmRsZXIgc2NoZWR1bGVyLCBpbnQgaW5pdGlhbENvZGUsIEBOdWxsYWJsZSBTdHJpbmcgaW5pdGlhbERhdGEsCisgICAgICAgICAgICBATnVsbGFibGUgQnVuZGxlIGluaXRpYWxFeHRyYXMpOwogCiAgICAgLyoqCiAgICAgICogVmVyc2lvbiBvZiB7QGxpbmsgI3JlbW92ZVN0aWNreUJyb2FkY2FzdChJbnRlbnQpfSB0aGF0IGFsbG93cyB5b3UgdG8gc3BlY2lmeSB0aGUKQEAgLTE2MzcsNyArMTY2MSw4IEBACiAgICAgICogQHNlZSAjc2VuZEJyb2FkY2FzdAogICAgICAqIEBzZWUgI3VucmVnaXN0ZXJSZWNlaXZlcgogICAgICAqLwotICAgIHB1YmxpYyBhYnN0cmFjdCBJbnRlbnQgcmVnaXN0ZXJSZWNlaXZlcihCcm9hZGNhc3RSZWNlaXZlciByZWNlaXZlciwKKyAgICBATnVsbGFibGUKKyAgICBwdWJsaWMgYWJzdHJhY3QgSW50ZW50IHJlZ2lzdGVyUmVjZWl2ZXIoQE51bGxhYmxlIEJyb2FkY2FzdFJlY2VpdmVyIHJlY2VpdmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlbnRGaWx0ZXIgZmlsdGVyKTsKIAogICAgIC8qKgpAQCAtMTY3MSw4ICsxNjk2LDEwIEBACiAgICAgICogQHNlZSAjc2VuZEJyb2FkY2FzdAogICAgICAqIEBzZWUgI3VucmVnaXN0ZXJSZWNlaXZlcgogICAgICAqLworICAgIEBOdWxsYWJsZQogICAgIHB1YmxpYyBhYnN0cmFjdCBJbnRlbnQgcmVnaXN0ZXJSZWNlaXZlcihCcm9hZGNhc3RSZWNlaXZlciByZWNlaXZlciwKLSAgICAgICAgICAgIEludGVudEZpbHRlciBmaWx0ZXIsIFN0cmluZyBicm9hZGNhc3RQZXJtaXNzaW9uLCBIYW5kbGVyIHNjaGVkdWxlcik7CisgICAgICAgICAgICBJbnRlbnRGaWx0ZXIgZmlsdGVyLCBATnVsbGFibGUgU3RyaW5nIGJyb2FkY2FzdFBlcm1pc3Npb24sCisgICAgICAgICAgICBATnVsbGFibGUgSGFuZGxlciBzY2hlZHVsZXIpOwogCiAgICAgLyoqCiAgICAgICogQGhpZGUKQEAgLTE2OTgsOSArMTcyNSwxMCBAQAogICAgICAqIEBzZWUgI3NlbmRCcm9hZGNhc3QKICAgICAgKiBAc2VlICN1bnJlZ2lzdGVyUmVjZWl2ZXIKICAgICAgKi8KKyAgICBATnVsbGFibGUKICAgICBwdWJsaWMgYWJzdHJhY3QgSW50ZW50IHJlZ2lzdGVyUmVjZWl2ZXJBc1VzZXIoQnJvYWRjYXN0UmVjZWl2ZXIgcmVjZWl2ZXIsCi0gICAgICAgICAgICBVc2VySGFuZGxlIHVzZXIsIEludGVudEZpbHRlciBmaWx0ZXIsIFN0cmluZyBicm9hZGNhc3RQZXJtaXNzaW9uLAotICAgICAgICAgICAgSGFuZGxlciBzY2hlZHVsZXIpOworICAgICAgICAgICAgVXNlckhhbmRsZSB1c2VyLCBJbnRlbnRGaWx0ZXIgZmlsdGVyLCBATnVsbGFibGUgU3RyaW5nIGJyb2FkY2FzdFBlcm1pc3Npb24sCisgICAgICAgICAgICBATnVsbGFibGUgSGFuZGxlciBzY2hlZHVsZXIpOwogCiAgICAgLyoqCiAgICAgICogVW5yZWdpc3RlciBhIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBCcm9hZGNhc3RSZWNlaXZlci4gIDxlbT5BbGw8L2VtPgpAQCAtMTc1OSw2ICsxNzg3LDcgQEAKICAgICAgKiBAc2VlICNzdG9wU2VydmljZQogICAgICAqIEBzZWUgI2JpbmRTZXJ2aWNlCiAgICAgICovCisgICAgQE51bGxhYmxlCiAgICAgcHVibGljIGFic3RyYWN0IENvbXBvbmVudE5hbWUgc3RhcnRTZXJ2aWNlKEludGVudCBzZXJ2aWNlKTsKIAogICAgIC8qKgpAQCAtMTg0Niw4ICsxODc1LDggQEAKICAgICAgKiBAc2VlICNCSU5EX0RFQlVHX1VOQklORAogICAgICAqIEBzZWUgI0JJTkRfTk9UX0ZPUkVHUk9VTkQKICAgICAgKi8KLSAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBiaW5kU2VydmljZShJbnRlbnQgc2VydmljZSwgU2VydmljZUNvbm5lY3Rpb24gY29ubiwKLSAgICAgICAgICAgIGludCBmbGFncyk7CisgICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gYmluZFNlcnZpY2UoSW50ZW50IHNlcnZpY2UsIEBOb25OdWxsIFNlcnZpY2VDb25uZWN0aW9uIGNvbm4sCisgICAgICAgICAgICBAQmluZFNlcnZpY2VGbGFncyBpbnQgZmxhZ3MpOwogCiAgICAgLyoqCiAgICAgICogU2FtZSBhcyB7QGxpbmsgI2JpbmRTZXJ2aWNlKEludGVudCwgU2VydmljZUNvbm5lY3Rpb24sIGludCl9LCBidXQgd2l0aCBhbiBleHBsaWNpdCB1c2VySGFuZGxlCkBAIC0xODY4LDcgKzE4OTcsNyBAQAogICAgICAqCiAgICAgICogQHNlZSAjYmluZFNlcnZpY2UKICAgICAgKi8KLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCB1bmJpbmRTZXJ2aWNlKFNlcnZpY2VDb25uZWN0aW9uIGNvbm4pOworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHVuYmluZFNlcnZpY2UoQE5vbk51bGwgU2VydmljZUNvbm5lY3Rpb24gY29ubik7CiAKICAgICAvKioKICAgICAgKiBTdGFydCBleGVjdXRpbmcgYW4ge0BsaW5rIGFuZHJvaWQuYXBwLkluc3RydW1lbnRhdGlvbn0gY2xhc3MuICBUaGUgZ2l2ZW4KQEAgLTE4OTMsOCArMTkyMiw2NCBAQAogICAgICAqIEByZXR1cm4ge0Bjb2RlIHRydWV9IGlmIHRoZSBpbnN0cnVtZW50YXRpb24gd2FzIHN1Y2Nlc3NmdWxseSBzdGFydGVkLAogICAgICAqIGVsc2Uge0Bjb2RlIGZhbHNlfSBpZiBpdCBjb3VsZCBub3QgYmUgZm91bmQuCiAgICAgICovCi0gICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gc3RhcnRJbnN0cnVtZW50YXRpb24oQ29tcG9uZW50TmFtZSBjbGFzc05hbWUsCi0gICAgICAgICAgICBTdHJpbmcgcHJvZmlsZUZpbGUsIEJ1bmRsZSBhcmd1bWVudHMpOworICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuIHN0YXJ0SW5zdHJ1bWVudGF0aW9uKEBOb25OdWxsIENvbXBvbmVudE5hbWUgY2xhc3NOYW1lLAorICAgICAgICAgICAgQE51bGxhYmxlIFN0cmluZyBwcm9maWxlRmlsZSwgQE51bGxhYmxlIEJ1bmRsZSBhcmd1bWVudHMpOworCisgICAgLyoqIEBoaWRlICovCisgICAgQFN0cmluZ0RlZih7CisgICAgICAgICAgICBQT1dFUl9TRVJWSUNFLAorICAgICAgICAgICAgV0lORE9XX1NFUlZJQ0UsCisgICAgICAgICAgICBMQVlPVVRfSU5GTEFURVJfU0VSVklDRSwKKyAgICAgICAgICAgIEFDQ09VTlRfU0VSVklDRSwKKyAgICAgICAgICAgIEFDVElWSVRZX1NFUlZJQ0UsCisgICAgICAgICAgICBBTEFSTV9TRVJWSUNFLAorICAgICAgICAgICAgTk9USUZJQ0FUSU9OX1NFUlZJQ0UsCisgICAgICAgICAgICBBQ0NFU1NJQklMSVRZX1NFUlZJQ0UsCisgICAgICAgICAgICBDQVBUSU9OSU5HX1NFUlZJQ0UsCisgICAgICAgICAgICBLRVlHVUFSRF9TRVJWSUNFLAorICAgICAgICAgICAgTE9DQVRJT05fU0VSVklDRSwKKyAgICAgICAgICAgIC8vQGhpZGU6IENPVU5UUllfREVURUNUT1IsCisgICAgICAgICAgICBTRUFSQ0hfU0VSVklDRSwKKyAgICAgICAgICAgIFNFTlNPUl9TRVJWSUNFLAorICAgICAgICAgICAgU1RPUkFHRV9TRVJWSUNFLAorICAgICAgICAgICAgV0FMTFBBUEVSX1NFUlZJQ0UsCisgICAgICAgICAgICBWSUJSQVRPUl9TRVJWSUNFLAorICAgICAgICAgICAgLy9AaGlkZTogU1RBVFVTX0JBUl9TRVJWSUNFLAorICAgICAgICAgICAgQ09OTkVDVElWSVRZX1NFUlZJQ0UsCisgICAgICAgICAgICAvL0BoaWRlOiBVUERBVEVfTE9DS19TRVJWSUNFLAorICAgICAgICAgICAgLy9AaGlkZTogTkVUV09SS01BTkFHRU1FTlRfU0VSVklDRSwKKyAgICAgICAgICAgIC8vQGhpZGU6IE5FVFdPUktfU1RBVFNfU0VSVklDRSwKKyAgICAgICAgICAgIC8vQGhpZGU6IE5FVFdPUktfUE9MSUNZX1NFUlZJQ0UsCisgICAgICAgICAgICBXSUZJX1NFUlZJQ0UsCisgICAgICAgICAgICBXSUZJX1AyUF9TRVJWSUNFLAorICAgICAgICAgICAgTlNEX1NFUlZJQ0UsCisgICAgICAgICAgICBBVURJT19TRVJWSUNFLAorICAgICAgICAgICAgTUVESUFfUk9VVEVSX1NFUlZJQ0UsCisgICAgICAgICAgICBURUxFUEhPTllfU0VSVklDRSwKKyAgICAgICAgICAgIENMSVBCT0FSRF9TRVJWSUNFLAorICAgICAgICAgICAgSU5QVVRfTUVUSE9EX1NFUlZJQ0UsCisgICAgICAgICAgICBURVhUX1NFUlZJQ0VTX01BTkFHRVJfU0VSVklDRSwKKyAgICAgICAgICAgIC8vQGhpZGU6IEFQUFdJREdFVF9TRVJWSUNFLAorICAgICAgICAgICAgLy9AaGlkZTogQkFDS1VQX1NFUlZJQ0UsCisgICAgICAgICAgICBEUk9QQk9YX1NFUlZJQ0UsCisgICAgICAgICAgICBERVZJQ0VfUE9MSUNZX1NFUlZJQ0UsCisgICAgICAgICAgICBVSV9NT0RFX1NFUlZJQ0UsCisgICAgICAgICAgICBET1dOTE9BRF9TRVJWSUNFLAorICAgICAgICAgICAgTkZDX1NFUlZJQ0UsCisgICAgICAgICAgICBCTFVFVE9PVEhfU0VSVklDRSwKKyAgICAgICAgICAgIC8vQGhpZGU6IFNJUF9TRVJWSUNFLAorICAgICAgICAgICAgVVNCX1NFUlZJQ0UsCisgICAgICAgICAgICAvL0BoaWRlOiBTRVJJQUxfU0VSVklDRSwKKyAgICAgICAgICAgIElOUFVUX1NFUlZJQ0UsCisgICAgICAgICAgICBESVNQTEFZX1NFUlZJQ0UsCisgICAgICAgICAgICAvL0BoaWRlOiBTQ0hFRFVMSU5HX1BPTElDWV9TRVJWSUNFLAorICAgICAgICAgICAgVVNFUl9TRVJWSUNFLAorICAgICAgICAgICAgLy9AaGlkZTogQVBQX09QU19TRVJWSUNFCisgICAgICAgICAgICBDQU1FUkFfU0VSVklDRSwKKyAgICAgICAgICAgIFBSSU5UX1NFUlZJQ0UKKyAgICB9KQorICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlNPVVJDRSkKKyAgICBwdWJsaWMgQGludGVyZmFjZSBTZXJ2aWNlTmFtZSB7fQogCiAgICAgLyoqCiAgICAgICogUmV0dXJuIHRoZSBoYW5kbGUgdG8gYSBzeXN0ZW0tbGV2ZWwgc2VydmljZSBieSBuYW1lLiBUaGUgY2xhc3Mgb2YgdGhlCkBAIC0xOTk1LDcgKzIwODAsNyBAQAogICAgICAqIEBzZWUgI0RPV05MT0FEX1NFUlZJQ0UKICAgICAgKiBAc2VlIGFuZHJvaWQuYXBwLkRvd25sb2FkTWFuYWdlcgogICAgICAqLwotICAgIHB1YmxpYyBhYnN0cmFjdCBPYmplY3QgZ2V0U3lzdGVtU2VydmljZShTdHJpbmcgbmFtZSk7CisgICAgcHVibGljIGFic3RyYWN0IE9iamVjdCBnZXRTeXN0ZW1TZXJ2aWNlKEBTZXJ2aWNlTmFtZSBATm9uTnVsbCBTdHJpbmcgbmFtZSk7CiAKICAgICAvKioKICAgICAgKiBVc2Ugd2l0aCB7QGxpbmsgI2dldFN5c3RlbVNlcnZpY2V9IHRvIHJldHJpZXZlIGEKQEAgLTI0MzEsNyArMjUxNiw2IEBACiAgICAgICoKICAgICAgKiBAc2VlICNnZXRTeXN0ZW1TZXJ2aWNlCiAgICAgICogQHNlZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhTWFuYWdlcgotICAgICAqIEBoaWRlCiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FNRVJBX1NFUlZJQ0UgPSAiY2FtZXJhIjsKIApAQCAtMjQ3MCw3ICsyNTU0LDggQEAKICAgICAgKiBAc2VlIFBhY2thZ2VNYW5hZ2VyI2NoZWNrUGVybWlzc2lvbihTdHJpbmcsIFN0cmluZykKICAgICAgKiBAc2VlICNjaGVja0NhbGxpbmdQZXJtaXNzaW9uCiAgICAgICovCi0gICAgcHVibGljIGFic3RyYWN0IGludCBjaGVja1Blcm1pc3Npb24oU3RyaW5nIHBlcm1pc3Npb24sIGludCBwaWQsIGludCB1aWQpOworICAgIEBQYWNrYWdlTWFuYWdlci5QZXJtaXNzaW9uUmVzdWx0CisgICAgcHVibGljIGFic3RyYWN0IGludCBjaGVja1Blcm1pc3Npb24oQE5vbk51bGwgU3RyaW5nIHBlcm1pc3Npb24sIGludCBwaWQsIGludCB1aWQpOwogCiAgICAgLyoqCiAgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNhbGxpbmcgcHJvY2VzcyBvZiBhbiBJUEMgeW91IGFyZSBoYW5kbGluZyBoYXMgYmVlbgpAQCAtMjQ5Myw3ICsyNTc4LDggQEAKICAgICAgKiBAc2VlICNjaGVja1Blcm1pc3Npb24KICAgICAgKiBAc2VlICNjaGVja0NhbGxpbmdPclNlbGZQZXJtaXNzaW9uCiAgICAgICovCi0gICAgcHVibGljIGFic3RyYWN0IGludCBjaGVja0NhbGxpbmdQZXJtaXNzaW9uKFN0cmluZyBwZXJtaXNzaW9uKTsKKyAgICBAUGFja2FnZU1hbmFnZXIuUGVybWlzc2lvblJlc3VsdAorICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY2hlY2tDYWxsaW5nUGVybWlzc2lvbihATm9uTnVsbCBTdHJpbmcgcGVybWlzc2lvbik7CiAKICAgICAvKioKICAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgY2FsbGluZyBwcm9jZXNzIG9mIGFuIElQQyA8ZW0+b3IgeW91PC9lbT4gaGF2ZSBiZWVuCkBAIC0yNTExLDcgKzI1OTcsOCBAQAogICAgICAqIEBzZWUgI2NoZWNrUGVybWlzc2lvbgogICAgICAqIEBzZWUgI2NoZWNrQ2FsbGluZ1Blcm1pc3Npb24KICAgICAgKi8KLSAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGNoZWNrQ2FsbGluZ09yU2VsZlBlcm1pc3Npb24oU3RyaW5nIHBlcm1pc3Npb24pOworICAgIEBQYWNrYWdlTWFuYWdlci5QZXJtaXNzaW9uUmVzdWx0CisgICAgcHVibGljIGFic3RyYWN0IGludCBjaGVja0NhbGxpbmdPclNlbGZQZXJtaXNzaW9uKEBOb25OdWxsIFN0cmluZyBwZXJtaXNzaW9uKTsKIAogICAgIC8qKgogICAgICAqIElmIHRoZSBnaXZlbiBwZXJtaXNzaW9uIGlzIG5vdCBhbGxvd2VkIGZvciBhIHBhcnRpY3VsYXIgcHJvY2VzcwpAQCAtMjUyNiw3ICsyNjEzLDcgQEAKICAgICAgKiBAc2VlICNjaGVja1Blcm1pc3Npb24oU3RyaW5nLCBpbnQsIGludCkKICAgICAgKi8KICAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBlbmZvcmNlUGVybWlzc2lvbigKLSAgICAgICAgICAgIFN0cmluZyBwZXJtaXNzaW9uLCBpbnQgcGlkLCBpbnQgdWlkLCBTdHJpbmcgbWVzc2FnZSk7CisgICAgICAgICAgICBATm9uTnVsbCBTdHJpbmcgcGVybWlzc2lvbiwgaW50IHBpZCwgaW50IHVpZCwgQE51bGxhYmxlIFN0cmluZyBtZXNzYWdlKTsKIAogICAgIC8qKgogICAgICAqIElmIHRoZSBjYWxsaW5nIHByb2Nlc3Mgb2YgYW4gSVBDIHlvdSBhcmUgaGFuZGxpbmcgaGFzIG5vdCBiZWVuCkBAIC0yNTQ3LDcgKzI2MzQsNyBAQAogICAgICAqIEBzZWUgI2NoZWNrQ2FsbGluZ1Blcm1pc3Npb24oU3RyaW5nKQogICAgICAqLwogICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGVuZm9yY2VDYWxsaW5nUGVybWlzc2lvbigKLSAgICAgICAgICAgIFN0cmluZyBwZXJtaXNzaW9uLCBTdHJpbmcgbWVzc2FnZSk7CisgICAgICAgICAgICBATm9uTnVsbCBTdHJpbmcgcGVybWlzc2lvbiwgQE51bGxhYmxlIFN0cmluZyBtZXNzYWdlKTsKIAogICAgIC8qKgogICAgICAqIElmIG5laXRoZXIgeW91IG5vciB0aGUgY2FsbGluZyBwcm9jZXNzIG9mIGFuIElQQyB5b3UgYXJlCkBAIC0yNTYzLDcgKzI2NTAsNyBAQAogICAgICAqIEBzZWUgI2NoZWNrQ2FsbGluZ09yU2VsZlBlcm1pc3Npb24oU3RyaW5nKQogICAgICAqLwogICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGVuZm9yY2VDYWxsaW5nT3JTZWxmUGVybWlzc2lvbigKLSAgICAgICAgICAgIFN0cmluZyBwZXJtaXNzaW9uLCBTdHJpbmcgbWVzc2FnZSk7CisgICAgICAgICAgICBATm9uTnVsbCBTdHJpbmcgcGVybWlzc2lvbiwgQE51bGxhYmxlIFN0cmluZyBtZXNzYWdlKTsKIAogICAgIC8qKgogICAgICAqIEdyYW50IHBlcm1pc3Npb24gdG8gYWNjZXNzIGEgc3BlY2lmaWMgVXJpIHRvIGFub3RoZXIgcGFja2FnZSwgcmVnYXJkbGVzcwpAQCAtMjU5OSw3ICsyNjg2LDcgQEAKICAgICAgKiBAc2VlICNyZXZva2VVcmlQZXJtaXNzaW9uCiAgICAgICovCiAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgZ3JhbnRVcmlQZXJtaXNzaW9uKFN0cmluZyB0b1BhY2thZ2UsIFVyaSB1cmksCi0gICAgICAgICAgICBpbnQgbW9kZUZsYWdzKTsKKyAgICAgICAgICAgIEBJbnRlbnQuR3JhbnRVcmlNb2RlIGludCBtb2RlRmxhZ3MpOwogCiAgICAgLyoqCiAgICAgICogUmVtb3ZlIGFsbCBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgYSBwYXJ0aWN1bGFyIGNvbnRlbnQgcHJvdmlkZXIgVXJpCkBAIC0yNjE4LDcgKzI3MDUsNyBAQAogICAgICAqCiAgICAgICogQHNlZSAjZ3JhbnRVcmlQZXJtaXNzaW9uCiAgICAgICovCi0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmV2b2tlVXJpUGVybWlzc2lvbihVcmkgdXJpLCBpbnQgbW9kZUZsYWdzKTsKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXZva2VVcmlQZXJtaXNzaW9uKFVyaSB1cmksIEBJbnRlbnQuR3JhbnRVcmlNb2RlIGludCBtb2RlRmxhZ3MpOwogCiAgICAgLyoqCiAgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgYSBwYXJ0aWN1bGFyIHByb2Nlc3MgYW5kIHVzZXIgSUQgaGFzIGJlZW4gZ3JhbnRlZApAQCAtMjY0MSw3ICsyNzI4LDggQEAKICAgICAgKgogICAgICAqIEBzZWUgI2NoZWNrQ2FsbGluZ1VyaVBlcm1pc3Npb24KICAgICAgKi8KLSAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGNoZWNrVXJpUGVybWlzc2lvbihVcmkgdXJpLCBpbnQgcGlkLCBpbnQgdWlkLCBpbnQgbW9kZUZsYWdzKTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGNoZWNrVXJpUGVybWlzc2lvbihVcmkgdXJpLCBpbnQgcGlkLCBpbnQgdWlkLAorICAgICAgICAgICAgQEludGVudC5HcmFudFVyaU1vZGUgaW50IG1vZGVGbGFncyk7CiAKICAgICAvKioKICAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgY2FsbGluZyBwcm9jZXNzIGFuZCB1c2VyIElEIGhhcyBiZWVuCkBAIC0yNjY0LDcgKzI3NTIsNyBAQAogICAgICAqCiAgICAgICogQHNlZSAjY2hlY2tVcmlQZXJtaXNzaW9uKFVyaSwgaW50LCBpbnQsIGludCkKICAgICAgKi8KLSAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGNoZWNrQ2FsbGluZ1VyaVBlcm1pc3Npb24oVXJpIHVyaSwgaW50IG1vZGVGbGFncyk7CisgICAgcHVibGljIGFic3RyYWN0IGludCBjaGVja0NhbGxpbmdVcmlQZXJtaXNzaW9uKFVyaSB1cmksIEBJbnRlbnQuR3JhbnRVcmlNb2RlIGludCBtb2RlRmxhZ3MpOwogCiAgICAgLyoqCiAgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNhbGxpbmcgcHJvY2VzcyBvZiBhbiBJUEMgPGVtPm9yIHlvdTwvZW0+IGhhcyBiZWVuIGdyYW50ZWQKQEAgLTI2ODMsNyArMjc3MSw4IEBACiAgICAgICoKICAgICAgKiBAc2VlICNjaGVja0NhbGxpbmdVcmlQZXJtaXNzaW9uCiAgICAgICovCi0gICAgcHVibGljIGFic3RyYWN0IGludCBjaGVja0NhbGxpbmdPclNlbGZVcmlQZXJtaXNzaW9uKFVyaSB1cmksIGludCBtb2RlRmxhZ3MpOworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY2hlY2tDYWxsaW5nT3JTZWxmVXJpUGVybWlzc2lvbihVcmkgdXJpLAorICAgICAgICAgICAgQEludGVudC5HcmFudFVyaU1vZGUgaW50IG1vZGVGbGFncyk7CiAKICAgICAvKioKICAgICAgKiBDaGVjayBib3RoIGEgVXJpIGFuZCBub3JtYWwgcGVybWlzc2lvbi4gIFRoaXMgYWxsb3dzIHlvdSB0byBwZXJmb3JtCkBAIC0yNjk1LDcgKzI3ODQsNyBAQAogICAgICAqIEBwYXJhbSByZWFkUGVybWlzc2lvbiBUaGUgcGVybWlzc2lvbiB0aGF0IHByb3ZpZGVzIG92ZXJhbGwgcmVhZCBhY2Nlc3MsCiAgICAgICogb3IgbnVsbCB0byBub3QgZG8gdGhpcyBjaGVjay4KICAgICAgKiBAcGFyYW0gd3JpdGVQZXJtaXNzaW9uIFRoZSBwZXJtaXNzaW9uIHRoYXQgcHJvdmlkZXMgb3ZlcmFsbCB3cml0ZQotICAgICAqIGFjZXNzLCBvciBudWxsIHRvIG5vdCBkbyB0aGlzIGNoZWNrLgorICAgICAqIGFjY2Vzcywgb3IgbnVsbCB0byBub3QgZG8gdGhpcyBjaGVjay4KICAgICAgKiBAcGFyYW0gcGlkIFRoZSBwcm9jZXNzIElEIGJlaW5nIGNoZWNrZWQgYWdhaW5zdC4gIE11c3QgYmUgJmd0OyAwLgogICAgICAqIEBwYXJhbSB1aWQgVGhlIHVzZXIgSUQgYmVpbmcgY2hlY2tlZCBhZ2FpbnN0LiAgQSB1aWQgb2YgMCBpcyB0aGUgcm9vdAogICAgICAqIHVzZXIsIHdoaWNoIHdpbGwgcGFzcyBldmVyeSBwZXJtaXNzaW9uIGNoZWNrLgpAQCAtMjcwNyw4ICsyNzk2LDkgQEAKICAgICAgKiBpcyBhbGxvd2VkIHRvIGFjY2VzcyB0aGF0IHVyaSBvciBob2xkcyBvbmUgb2YgdGhlIGdpdmVuIHBlcm1pc3Npb25zLCBvcgogICAgICAqIHtAbGluayBQYWNrYWdlTWFuYWdlciNQRVJNSVNTSU9OX0RFTklFRH0gaWYgaXQgaXMgbm90LgogICAgICAqLwotICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY2hlY2tVcmlQZXJtaXNzaW9uKFVyaSB1cmksIFN0cmluZyByZWFkUGVybWlzc2lvbiwKLSAgICAgICAgICAgIFN0cmluZyB3cml0ZVBlcm1pc3Npb24sIGludCBwaWQsIGludCB1aWQsIGludCBtb2RlRmxhZ3MpOworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY2hlY2tVcmlQZXJtaXNzaW9uKEBOdWxsYWJsZSBVcmkgdXJpLCBATnVsbGFibGUgU3RyaW5nIHJlYWRQZXJtaXNzaW9uLAorICAgICAgICAgICAgQE51bGxhYmxlIFN0cmluZyB3cml0ZVBlcm1pc3Npb24sIGludCBwaWQsIGludCB1aWQsCisgICAgICAgICAgICBASW50ZW50LkdyYW50VXJpTW9kZSBpbnQgbW9kZUZsYWdzKTsKIAogICAgIC8qKgogICAgICAqIElmIGEgcGFydGljdWxhciBwcm9jZXNzIGFuZCB1c2VyIElEIGhhcyBub3QgYmVlbiBncmFudGVkCkBAIC0yNzMwLDcgKzI4MjAsNyBAQAogICAgICAqIEBzZWUgI2NoZWNrVXJpUGVybWlzc2lvbihVcmksIGludCwgaW50LCBpbnQpCiAgICAgICovCiAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgZW5mb3JjZVVyaVBlcm1pc3Npb24oCi0gICAgICAgICAgICBVcmkgdXJpLCBpbnQgcGlkLCBpbnQgdWlkLCBpbnQgbW9kZUZsYWdzLCBTdHJpbmcgbWVzc2FnZSk7CisgICAgICAgICAgICBVcmkgdXJpLCBpbnQgcGlkLCBpbnQgdWlkLCBASW50ZW50LkdyYW50VXJpTW9kZSBpbnQgbW9kZUZsYWdzLCBTdHJpbmcgbWVzc2FnZSk7CiAKICAgICAvKioKICAgICAgKiBJZiB0aGUgY2FsbGluZyBwcm9jZXNzIGFuZCB1c2VyIElEIGhhcyBub3QgYmVlbiBncmFudGVkCkBAIC0yNzUyLDcgKzI4NDIsNyBAQAogICAgICAqIEBzZWUgI2NoZWNrQ2FsbGluZ1VyaVBlcm1pc3Npb24oVXJpLCBpbnQpCiAgICAgICovCiAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgZW5mb3JjZUNhbGxpbmdVcmlQZXJtaXNzaW9uKAotICAgICAgICAgICAgVXJpIHVyaSwgaW50IG1vZGVGbGFncywgU3RyaW5nIG1lc3NhZ2UpOworICAgICAgICAgICAgVXJpIHVyaSwgQEludGVudC5HcmFudFVyaU1vZGUgaW50IG1vZGVGbGFncywgU3RyaW5nIG1lc3NhZ2UpOwogCiAgICAgLyoqCiAgICAgICogSWYgdGhlIGNhbGxpbmcgcHJvY2VzcyBvZiBhbiBJUEMgPGVtPm9yIHlvdTwvZW0+IGhhcyBub3QgYmVlbgpAQCAtMjc3MSw3ICsyODYxLDcgQEAKICAgICAgKiBAc2VlICNjaGVja0NhbGxpbmdPclNlbGZVcmlQZXJtaXNzaW9uKFVyaSwgaW50KQogICAgICAqLwogICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGVuZm9yY2VDYWxsaW5nT3JTZWxmVXJpUGVybWlzc2lvbigKLSAgICAgICAgICAgIFVyaSB1cmksIGludCBtb2RlRmxhZ3MsIFN0cmluZyBtZXNzYWdlKTsKKyAgICAgICAgICAgIFVyaSB1cmksIEBJbnRlbnQuR3JhbnRVcmlNb2RlIGludCBtb2RlRmxhZ3MsIFN0cmluZyBtZXNzYWdlKTsKIAogICAgIC8qKgogICAgICAqIEVuZm9yY2UgYm90aCBhIFVyaSBhbmQgbm9ybWFsIHBlcm1pc3Npb24uICBUaGlzIGFsbG93cyB5b3UgdG8gcGVyZm9ybQpAQCAtMjc4Myw3ICsyODczLDcgQEAKICAgICAgKiBAcGFyYW0gcmVhZFBlcm1pc3Npb24gVGhlIHBlcm1pc3Npb24gdGhhdCBwcm92aWRlcyBvdmVyYWxsIHJlYWQgYWNjZXNzLAogICAgICAqIG9yIG51bGwgdG8gbm90IGRvIHRoaXMgY2hlY2suCiAgICAgICogQHBhcmFtIHdyaXRlUGVybWlzc2lvbiBUaGUgcGVybWlzc2lvbiB0aGF0IHByb3ZpZGVzIG92ZXJhbGwgd3JpdGUKLSAgICAgKiBhY2Vzcywgb3IgbnVsbCB0byBub3QgZG8gdGhpcyBjaGVjay4KKyAgICAgKiBhY2Nlc3MsIG9yIG51bGwgdG8gbm90IGRvIHRoaXMgY2hlY2suCiAgICAgICogQHBhcmFtIHBpZCBUaGUgcHJvY2VzcyBJRCBiZWluZyBjaGVja2VkIGFnYWluc3QuICBNdXN0IGJlICZndDsgMC4KICAgICAgKiBAcGFyYW0gdWlkIFRoZSB1c2VyIElEIGJlaW5nIGNoZWNrZWQgYWdhaW5zdC4gIEEgdWlkIG9mIDAgaXMgdGhlIHJvb3QKICAgICAgKiB1c2VyLCB3aGljaCB3aWxsIHBhc3MgZXZlcnkgcGVybWlzc2lvbiBjaGVjay4KQEAgLTI3OTUsOCArMjg4NSwxNSBAQAogICAgICAqIEBzZWUgI2NoZWNrVXJpUGVybWlzc2lvbihVcmksIFN0cmluZywgU3RyaW5nLCBpbnQsIGludCwgaW50KQogICAgICAqLwogICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGVuZm9yY2VVcmlQZXJtaXNzaW9uKAotICAgICAgICAgICAgVXJpIHVyaSwgU3RyaW5nIHJlYWRQZXJtaXNzaW9uLCBTdHJpbmcgd3JpdGVQZXJtaXNzaW9uLAotICAgICAgICAgICAgaW50IHBpZCwgaW50IHVpZCwgaW50IG1vZGVGbGFncywgU3RyaW5nIG1lc3NhZ2UpOworICAgICAgICAgICAgQE51bGxhYmxlIFVyaSB1cmksIEBOdWxsYWJsZSBTdHJpbmcgcmVhZFBlcm1pc3Npb24sCisgICAgICAgICAgICBATnVsbGFibGUgU3RyaW5nIHdyaXRlUGVybWlzc2lvbiwgaW50IHBpZCwgaW50IHVpZCwgQEludGVudC5HcmFudFVyaU1vZGUgaW50IG1vZGVGbGFncywKKyAgICAgICAgICAgIEBOdWxsYWJsZSBTdHJpbmcgbWVzc2FnZSk7CisKKyAgICAvKiogQGhpZGUgKi8KKyAgICBASW50RGVmKGZsYWcgPSB0cnVlLAorICAgICAgICAgICAgdmFsdWUgPSB7Q09OVEVYVF9JTkNMVURFX0NPREUsIENPTlRFWFRfSUdOT1JFX1NFQ1VSSVRZLCBDT05URVhUX1JFU1RSSUNURUR9KQorICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlNPVVJDRSkKKyAgICBwdWJsaWMgQGludGVyZmFjZSBDcmVhdGVQYWNrYWdlT3B0aW9ucyB7fQogCiAgICAgLyoqCiAgICAgICogRmxhZyBmb3IgdXNlIHdpdGgge0BsaW5rICNjcmVhdGVQYWNrYWdlQ29udGV4dH06IGluY2x1ZGUgdGhlIGFwcGxpY2F0aW9uCkBAIC0yODU0LDcgKzI5NTEsNyBAQAogICAgICAqIHRoZSBnaXZlbiBwYWNrYWdlIG5hbWUuCiAgICAgICovCiAgICAgcHVibGljIGFic3RyYWN0IENvbnRleHQgY3JlYXRlUGFja2FnZUNvbnRleHQoU3RyaW5nIHBhY2thZ2VOYW1lLAotICAgICAgICAgICAgaW50IGZsYWdzKSB0aHJvd3MgUGFja2FnZU1hbmFnZXIuTmFtZU5vdEZvdW5kRXhjZXB0aW9uOworICAgICAgICAgICAgQENyZWF0ZVBhY2thZ2VPcHRpb25zIGludCBmbGFncykgdGhyb3dzIFBhY2thZ2VNYW5hZ2VyLk5hbWVOb3RGb3VuZEV4Y2VwdGlvbjsKIAogICAgIC8qKgogICAgICAqIFNpbWlsYXIgdG8ge0BsaW5rICNjcmVhdGVQYWNrYWdlQ29udGV4dChTdHJpbmcsIGludCl9LCBidXQgd2l0aCBhCkBAIC0yODkwLDcgKzI5ODcsOCBAQAogICAgICAqCiAgICAgICogQHJldHVybiBBIHtAbGluayBDb250ZXh0fSB3aXRoIHRoZSBnaXZlbiBjb25maWd1cmF0aW9uIG92ZXJyaWRlLgogICAgICAqLwotICAgIHB1YmxpYyBhYnN0cmFjdCBDb250ZXh0IGNyZWF0ZUNvbmZpZ3VyYXRpb25Db250ZXh0KENvbmZpZ3VyYXRpb24gb3ZlcnJpZGVDb25maWd1cmF0aW9uKTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgQ29udGV4dCBjcmVhdGVDb25maWd1cmF0aW9uQ29udGV4dCgKKyAgICAgICAgICAgIEBOb25OdWxsIENvbmZpZ3VyYXRpb24gb3ZlcnJpZGVDb25maWd1cmF0aW9uKTsKIAogICAgIC8qKgogICAgICAqIFJldHVybiBhIG5ldyBDb250ZXh0IG9iamVjdCBmb3IgdGhlIGN1cnJlbnQgQ29udGV4dCBidXQgd2hvc2UgcmVzb3VyY2VzCkBAIC0yOTEwLDcgKzMwMDgsNyBAQAogICAgICAqCiAgICAgICogQHJldHVybiBBIHtAbGluayBDb250ZXh0fSBmb3IgdGhlIGRpc3BsYXkuCiAgICAgICovCi0gICAgcHVibGljIGFic3RyYWN0IENvbnRleHQgY3JlYXRlRGlzcGxheUNvbnRleHQoRGlzcGxheSBkaXNwbGF5KTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgQ29udGV4dCBjcmVhdGVEaXNwbGF5Q29udGV4dChATm9uTnVsbCBEaXNwbGF5IGRpc3BsYXkpOwogCiAgICAgLyoqCiAgICAgICogR2V0cyB0aGUgZGlzcGxheSBhZGp1c3RtZW50cyBob2xkZXIgZm9yIHRoaXMgY29udGV4dC4gIFRoaXMgaW5mb3JtYXRpb24KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvSUFub255bW91c1N5bmNBZGFwdGVyLmFpZGwgYi9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L0lBbm9ueW1vdXNTeW5jQWRhcHRlci5haWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhODBjZWEzLi4wMDAwMDAwCi0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvSUFub255bW91c1N5bmNBZGFwdGVyLmFpZGwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmNvbnRlbnQ7Ci1pbXBvcnQgYW5kcm9pZC5vcy5CdW5kbGU7Ci1pbXBvcnQgYW5kcm9pZC5jb250ZW50LklTeW5jQ29udGV4dDsKLQotLyoqCi0gKiBJbnRlcmZhY2UgdG8gZGVmaW5lIGFuIGFub255bW91cyBzZXJ2aWNlIHRoYXQgaXMgZXh0ZW5kZWQgYnkgZGV2ZWxvcGVycwotICogaW4gb3JkZXIgdG8gcGVyZm9ybSBhbm9ueW1vdXMgc3luY3MgKHN5bmNzIHdpdGhvdXQgYW4gQWNjb3VudCBvciBDb250ZW50Ci0gKiBQcm92aWRlciBzcGVjaWZpZWQpLiBTZWUge0BsaW5rIGFuZHJvaWQuY29udGVudC5BYnN0cmFjdFRocmVhZGVkU3luY0FkYXB0ZXJ9LgotICoge0BoaWRlfQotICovCi1vbmV3YXkgaW50ZXJmYWNlIElBbm9ueW1vdXNTeW5jQWRhcHRlciB7Ci0KLSAgICAvKioKLSAgICAgKiBJbml0aWF0ZSBhIHN5bmMuIFN5bmNBZGFwdGVyLXNwZWNpZmljIHBhcmFtZXRlcnMgbWF5IGJlIHNwZWNpZmllZCBpbgotICAgICAqIGV4dHJhcywgd2hpY2ggaXMgZ3VhcmFudGVlZCB0byBub3QgYmUgbnVsbC4KLSAgICAgKgotICAgICAqIEBwYXJhbSBzeW5jQ29udGV4dCB0aGUgSVN5bmNDb250ZXh0IHVzZWQgdG8gaW5kaWNhdGUgdGhlIHByb2dyZXNzIG9mIHRoZSBzeW5jLiBXaGVuCi0gICAgICogICB0aGUgc3luYyBpcyBmaW5pc2hlZCAoc3VjY2Vzc2Z1bGx5IG9yIG5vdCkgSVN5bmNDb250ZXh0Lm9uRmluaXNoZWQoKSBtdXN0IGJlIGNhbGxlZC4KLSAgICAgKiBAcGFyYW0gZXh0cmFzIFN5bmNBZGFwdGVyLXNwZWNpZmljIHBhcmFtZXRlcnMuCi0gICAgICoKLSAgICAgKi8KLSAgICB2b2lkIHN0YXJ0U3luYyhJU3luY0NvbnRleHQgc3luY0NvbnRleHQsIGluIEJ1bmRsZSBleHRyYXMpOwotCi0gICAgLyoqCi0gICAgICogQ2FuY2VsIHRoZSBjdXJyZW50bHkgb25nb2luZyBzeW5jLgotICAgICAqLwotICAgIHZvaWQgY2FuY2VsU3luYyhJU3luY0NvbnRleHQgc3luY0NvbnRleHQpOwotCi19CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L0lDb250ZW50U2VydmljZS5haWRsIGIvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9JQ29udGVudFNlcnZpY2UuYWlkbAppbmRleCA5YWQ1YTE5Li43M2E3NmU4IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L0lDb250ZW50U2VydmljZS5haWRsCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvSUNvbnRlbnRTZXJ2aWNlLmFpZGwKQEAgLTE3LDYgKzE3LDcgQEAKIHBhY2thZ2UgYW5kcm9pZC5jb250ZW50OwogCiBpbXBvcnQgYW5kcm9pZC5hY2NvdW50cy5BY2NvdW50OworaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db21wb25lbnROYW1lOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5TeW5jSW5mbzsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuSVN5bmNTdGF0dXNPYnNlcnZlcjsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuU3luY0FkYXB0ZXJUeXBlOwpAQCAtNTUsOCArNTYsMTQgQEAKICAgICAgICAgICAgIGludCB1c2VySGFuZGxlKTsKIAogICAgIHZvaWQgcmVxdWVzdFN5bmMoaW4gQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgYXV0aG9yaXR5LCBpbiBCdW5kbGUgZXh0cmFzKTsKKyAgICAvKioKKyAgICAgKiBTdGFydCBhIHN5bmMgZ2l2ZW4gYSByZXF1ZXN0LgorICAgICAqLwogICAgIHZvaWQgc3luYyhpbiBTeW5jUmVxdWVzdCByZXF1ZXN0KTsKLSAgICB2b2lkIGNhbmNlbFN5bmMoaW4gQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgYXV0aG9yaXR5KTsKKyAgICB2b2lkIGNhbmNlbFN5bmMoaW4gQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgYXV0aG9yaXR5LCBpbiBDb21wb25lbnROYW1lIGNuYW1lKTsKKworICAgIC8qKiBDYW5jZWwgYSBzeW5jLCBwcm92aWRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN5bmMgdG8gYmUgY2FuY2VsbGVkLiAqLworICAgICB2b2lkIGNhbmNlbFJlcXVlc3QoaW4gU3luY1JlcXVlc3QgcmVxdWVzdCk7CiAKICAgICAvKioKICAgICAgKiBDaGVjayBpZiB0aGUgcHJvdmlkZXIgc2hvdWxkIGJlIHN5bmNlZCB3aGVuIGEgbmV0d29yayB0aWNrbGUgaXMgcmVjZWl2ZWQKQEAgLTc0LDEyICs4MSwxNCBAQAogICAgIHZvaWQgc2V0U3luY0F1dG9tYXRpY2FsbHkoaW4gQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgcHJvdmlkZXJOYW1lLCBib29sZWFuIHN5bmMpOwogCiAgICAgLyoqCi0gICAgICogR2V0IHRoZSBmcmVxdWVuY3kgb2YgdGhlIHBlcmlvZGljIHBvbGwsIGlmIGFueS4KLSAgICAgKiBAcGFyYW0gcHJvdmlkZXJOYW1lIHRoZSBwcm92aWRlciB3aG9zZSBzZXR0aW5nIHdlIGFyZSBxdWVyeWluZwotICAgICAqIEByZXR1cm4gdGhlIGZyZXF1ZW5jeSBvZiB0aGUgcGVyaW9kaWMgc3luYyBpbiBzZWNvbmRzLiBJZiAwIHRoZW4gbm8gcGVyaW9kaWMgc3luY3MKLSAgICAgKiB3aWxsIHRha2UgcGxhY2UuCisgICAgICogR2V0IGEgbGlzdCBvZiBwZXJpb2RpYyBvcGVyYXRpb25zIGZvciBhIHNwZWNpZmllZCBhdXRob3JpdHksIG9yIHNlcnZpY2UuCisgICAgICogQHBhcmFtIGFjY291bnQgYWNjb3VudCBmb3IgYXV0aG9yaXR5LCBtdXN0IGJlIG51bGwgaWYgY25hbWUgaXMgbm9uLW51bGwuCisgICAgICogQHBhcmFtIHByb3ZpZGVyTmFtZSBuYW1lIG9mIHByb3ZpZGVyLCBtdXN0IGJlIG51bGwgaWYgY25hbWUgaXMgbm9uLW51bGwuCisgICAgICogQHBhcmFtIGNuYW1lIGNvbXBvbmVudCB0byBpZGVudGlmeSBzeW5jIHNlcnZpY2UsIG11c3QgYmUgbnVsbCBpZiBhY2NvdW50L3Byb3ZpZGVyTmFtZSBhcmUKKyAgICAgKiBub24tbnVsbC4KICAgICAgKi8KLSAgICBMaXN0PFBlcmlvZGljU3luYz4gZ2V0UGVyaW9kaWNTeW5jcyhpbiBBY2NvdW50IGFjY291bnQsIFN0cmluZyBwcm92aWRlck5hbWUpOworICAgIExpc3Q8UGVyaW9kaWNTeW5jPiBnZXRQZXJpb2RpY1N5bmNzKGluIEFjY291bnQgYWNjb3VudCwgU3RyaW5nIHByb3ZpZGVyTmFtZSwKKyAgICAgICAgaW4gQ29tcG9uZW50TmFtZSBjbmFtZSk7CiAKICAgICAvKioKICAgICAgKiBTZXQgd2hldGhlciBvciBub3QgdGhlIHByb3ZpZGVyIGlzIHRvIGJlIHN5bmNlZCBvbiBhIHBlcmlvZGljIGJhc2lzLgpAQCAtMTEyLDE2ICsxMjEsMjMgQEAKICAgICAgKi8KICAgICB2b2lkIHNldElzU3luY2FibGUoaW4gQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgcHJvdmlkZXJOYW1lLCBpbnQgc3luY2FibGUpOwogCisgICAgLyoqCisgICAgICogQ29ycmVzcG9uZHMgcm91Z2hseSB0byBzZXRJc1N5bmNhYmxlKFN0cmluZyBhY2NvdW50LCBTdHJpbmcgcHJvdmlkZXIpIGZvciBzeW5jcyB0aGF0IGJpbmQKKyAgICAgKiB0byBhIFN5bmNTZXJ2aWNlLgorICAgICAqLworICAgIHZvaWQgc2V0U2VydmljZUFjdGl2ZShpbiBDb21wb25lbnROYW1lIGNuYW1lLCBib29sZWFuIGFjdGl2ZSk7CisKKyAgICAvKioKKyAgICAgKiBDb3JyZXNwb25kcyByb3VnaGx5IHRvIGdldElzU3luY2FibGUoU3RyaW5nIGFjY291bnQsIFN0cmluZyBwcm92aWRlcikgZm9yIHN5bmNzIHRoYXQgYmluZAorICAgICAqIHRvIGEgU3luY1NlcnZpY2UuCisgICAgICogQHJldHVybiAwIGlmIHRoaXMgU3luY1NlcnZpY2UgaXMgbm90IGVuYWJsZWQsIDEgaWYgZW5hYmxlZCwgPDAgaWYgdW5rbm93bi4KKyAgICAgKi8KKyAgICBib29sZWFuIGlzU2VydmljZUFjdGl2ZShpbiBDb21wb25lbnROYW1lIGNuYW1lKTsKKwogICAgIHZvaWQgc2V0TWFzdGVyU3luY0F1dG9tYXRpY2FsbHkoYm9vbGVhbiBmbGFnKTsKIAogICAgIGJvb2xlYW4gZ2V0TWFzdGVyU3luY0F1dG9tYXRpY2FsbHkoKTsKIAotICAgIC8qKgotICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBjdXJyZW50bHkgYSBzeW5jIG9wZXJhdGlvbiBmb3IgdGhlIGdpdmVuCi0gICAgICogYWNjb3VudCBvciBhdXRob3JpdHkgaW4gdGhlIHBlbmRpbmcgbGlzdCwgb3IgYWN0aXZlbHkgYmVpbmcgcHJvY2Vzc2VkLgotICAgICAqLwotICAgIGJvb2xlYW4gaXNTeW5jQWN0aXZlKGluIEFjY291bnQgYWNjb3VudCwgU3RyaW5nIGF1dGhvcml0eSk7Ci0KICAgICBMaXN0PFN5bmNJbmZvPiBnZXRDdXJyZW50U3luY3MoKTsKIAogICAgIC8qKgpAQCAtMTMxLDE3ICsxNDcsMzMgQEAKICAgICBTeW5jQWRhcHRlclR5cGVbXSBnZXRTeW5jQWRhcHRlclR5cGVzKCk7CiAKICAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgY3VycmVudGx5IGEgb3BlcmF0aW9uIGZvciB0aGUgZ2l2ZW4gYWNjb3VudC9hdXRob3JpdHkgb3Igc2VydmljZQorICAgICAqIGFjdGl2ZWx5IGJlaW5nIHByb2Nlc3NlZC4KKyAgICAgKiBAcGFyYW0gYWNjb3VudCBhY2NvdW50IGZvciBhdXRob3JpdHksIG11c3QgYmUgbnVsbCBpZiBjbmFtZSBpcyBub24tbnVsbC4KKyAgICAgKiBAcGFyYW0gcHJvdmlkZXJOYW1lIG5hbWUgb2YgcHJvdmlkZXIsIG11c3QgYmUgbnVsbCBpZiBjbmFtZSBpcyBub24tbnVsbC4KKyAgICAgKiBAcGFyYW0gY25hbWUgY29tcG9uZW50IHRvIGlkZW50aWZ5IHN5bmMgc2VydmljZSwgbXVzdCBiZSBudWxsIGlmIGFjY291bnQvcHJvdmlkZXJOYW1lIGFyZQorICAgICAqIG5vbi1udWxsLgorICAgICAqLworICAgIGJvb2xlYW4gaXNTeW5jQWN0aXZlKGluIEFjY291bnQgYWNjb3VudCwgU3RyaW5nIGF1dGhvcml0eSwgaW4gQ29tcG9uZW50TmFtZSBjbmFtZSk7CisKKyAgICAvKioKICAgICAgKiBSZXR1cm5zIHRoZSBzdGF0dXMgdGhhdCBtYXRjaGVzIHRoZSBhdXRob3JpdHkuIElmIHRoZXJlIGFyZSBtdWx0aXBsZXMgYWNjb3VudHMgZm9yCiAgICAgICogdGhlIGF1dGhvcml0eSwgdGhlIG9uZSB3aXRoIHRoZSBsYXRlc3QgImxhc3RTdWNjZXNzVGltZSIgc3RhdHVzIGlzIHJldHVybmVkLgotICAgICAqIEBwYXJhbSBhdXRob3JpdHkgdGhlIGF1dGhvcml0eSB3aG9zZSByb3cgc2hvdWxkIGJlIHNlbGVjdGVkCi0gICAgICogQHJldHVybiB0aGUgU3luY1N0YXR1c0luZm8gZm9yIHRoZSBhdXRob3JpdHksIG9yIG51bGwgaWYgbm9uZSBleGlzdHMKKyAgICAgKiBAcGFyYW0gYWNjb3VudCBhY2NvdW50IGZvciBhdXRob3JpdHksIG11c3QgYmUgbnVsbCBpZiBjbmFtZSBpcyBub24tbnVsbC4KKyAgICAgKiBAcGFyYW0gcHJvdmlkZXJOYW1lIG5hbWUgb2YgcHJvdmlkZXIsIG11c3QgYmUgbnVsbCBpZiBjbmFtZSBpcyBub24tbnVsbC4KKyAgICAgKiBAcGFyYW0gY25hbWUgY29tcG9uZW50IHRvIGlkZW50aWZ5IHN5bmMgc2VydmljZSwgbXVzdCBiZSBudWxsIGlmIGFjY291bnQvcHJvdmlkZXJOYW1lIGFyZQorICAgICAqIG5vbi1udWxsLgogICAgICAqLwotICAgIFN5bmNTdGF0dXNJbmZvIGdldFN5bmNTdGF0dXMoaW4gQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgYXV0aG9yaXR5KTsKKyAgICBTeW5jU3RhdHVzSW5mbyBnZXRTeW5jU3RhdHVzKGluIEFjY291bnQgYWNjb3VudCwgU3RyaW5nIGF1dGhvcml0eSwgaW4gQ29tcG9uZW50TmFtZSBjbmFtZSk7CiAKICAgICAvKioKICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcGVuZGluZyBzdGF0dXMgaXMgdHJ1ZSBvZiBhbnkgbWF0Y2hpbmcgYXV0aG9yaXRpZXMuCisgICAgICogQHBhcmFtIGFjY291bnQgYWNjb3VudCBmb3IgYXV0aG9yaXR5LCBtdXN0IGJlIG51bGwgaWYgY25hbWUgaXMgbm9uLW51bGwuCisgICAgICogQHBhcmFtIHByb3ZpZGVyTmFtZSBuYW1lIG9mIHByb3ZpZGVyLCBtdXN0IGJlIG51bGwgaWYgY25hbWUgaXMgbm9uLW51bGwuCisgICAgICogQHBhcmFtIGNuYW1lIGNvbXBvbmVudCB0byBpZGVudGlmeSBzeW5jIHNlcnZpY2UsIG11c3QgYmUgbnVsbCBpZiBhY2NvdW50L3Byb3ZpZGVyTmFtZSBhcmUKKyAgICAgKiBub24tbnVsbC4KICAgICAgKi8KLSAgICBib29sZWFuIGlzU3luY1BlbmRpbmcoaW4gQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgYXV0aG9yaXR5KTsKKyAgICBib29sZWFuIGlzU3luY1BlbmRpbmcoaW4gQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgYXV0aG9yaXR5LCBpbiBDb21wb25lbnROYW1lIGNuYW1lKTsKIAogICAgIHZvaWQgYWRkU3RhdHVzQ2hhbmdlTGlzdGVuZXIoaW50IG1hc2ssIElTeW5jU3RhdHVzT2JzZXJ2ZXIgY2FsbGJhY2spOwogCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L0lTeW5jU2VydmljZUFkYXB0ZXIuYWlkbCBiL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvSVN5bmNTZXJ2aWNlQWRhcHRlci5haWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MTkzMDcKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L0lTeW5jU2VydmljZUFkYXB0ZXIuYWlkbApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmNvbnRlbnQ7CitpbXBvcnQgYW5kcm9pZC5vcy5CdW5kbGU7CitpbXBvcnQgYW5kcm9pZC5jb250ZW50LklTeW5jQ29udGV4dDsKKworLyoqCisgKiBJbnRlcmZhY2UgdG8gZGVmaW5lIGFuIGFub255bW91cyBzZXJ2aWNlIHRoYXQgaXMgZXh0ZW5kZWQgYnkgZGV2ZWxvcGVycworICogaW4gb3JkZXIgdG8gcGVyZm9ybSBhbm9ueW1vdXMgc3luY3MgKHN5bmNzIHdpdGhvdXQgYW4gQWNjb3VudCBvciBDb250ZW50CisgKiBQcm92aWRlciBzcGVjaWZpZWQpLiBTZWUge0BsaW5rIGFuZHJvaWQuY29udGVudC5BYnN0cmFjdFRocmVhZGVkU3luY0FkYXB0ZXJ9LgorICoge0BoaWRlfQorICovCitvbmV3YXkgaW50ZXJmYWNlIElTeW5jU2VydmljZUFkYXB0ZXIgeworCisgICAgLyoqCisgICAgICogSW5pdGlhdGUgYSBzeW5jLiBTeW5jQWRhcHRlci1zcGVjaWZpYyBwYXJhbWV0ZXJzIG1heSBiZSBzcGVjaWZpZWQgaW4KKyAgICAgKiBleHRyYXMsIHdoaWNoIGlzIGd1YXJhbnRlZWQgdG8gbm90IGJlIG51bGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3luY0NvbnRleHQgdGhlIElTeW5jQ29udGV4dCB1c2VkIHRvIGluZGljYXRlIHRoZSBwcm9ncmVzcyBvZiB0aGUgc3luYy4gV2hlbgorICAgICAqICAgdGhlIHN5bmMgaXMgZmluaXNoZWQgKHN1Y2Nlc3NmdWxseSBvciBub3QpIElTeW5jQ29udGV4dC5vbkZpbmlzaGVkKCkgbXVzdCBiZSBjYWxsZWQuCisgICAgICogQHBhcmFtIGV4dHJhcyBTeW5jQWRhcHRlci1zcGVjaWZpYyBwYXJhbWV0ZXJzLgorICAgICAqCisgICAgICovCisgICAgdm9pZCBzdGFydFN5bmMoSVN5bmNDb250ZXh0IHN5bmNDb250ZXh0LCBpbiBCdW5kbGUgZXh0cmFzKTsKKworICAgIC8qKgorICAgICAqIENhbmNlbCB0aGUgY3VycmVudGx5IG9uZ29pbmcgc3luYy4KKyAgICAgKi8KKyAgICB2b2lkIGNhbmNlbFN5bmMoSVN5bmNDb250ZXh0IHN5bmNDb250ZXh0KTsKKworfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9JbnRlbnQuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvSW50ZW50LmphdmEKaW5kZXggYTI4OTY0OS4uODViMzE0MSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9JbnRlbnQuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L0ludGVudC5qYXZhCkBAIC0yMSw2ICsyMSw3IEBACiBpbXBvcnQgb3JnLnhtbHB1bGwudjEuWG1sUHVsbFBhcnNlcjsKIGltcG9ydCBvcmcueG1scHVsbC52MS5YbWxQdWxsUGFyc2VyRXhjZXB0aW9uOwogCitpbXBvcnQgYW5kcm9pZC5hbm5vdGF0aW9uLkludERlZjsKIGltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uU2RrQ29uc3RhbnQ7CiBpbXBvcnQgYW5kcm9pZC5hbm5vdGF0aW9uLlNka0NvbnN0YW50LlNka0NvbnN0YW50VHlwZTsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQucG0uQWN0aXZpdHlJbmZvOwpAQCAtNDUsNiArNDYsOCBAQAogCiBpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKIGltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb247CitpbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uUG9saWN5OwogaW1wb3J0IGphdmEubmV0LlVSSVN5bnRheEV4Y2VwdGlvbjsKIGltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwogaW1wb3J0IGphdmEudXRpbC5MaXN0OwpAQCAtMzMzNSw2ICszMzM4LDEyIEBACiAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgLy8gSW50ZW50IGZsYWdzIChzZWUgbUZsYWdzIHZhcmlhYmxlKS4KIAorICAgIC8qKiBAaGlkZSAqLworICAgIEBJbnREZWYoZmxhZyA9IHRydWUsCisgICAgICAgICAgICB2YWx1ZSA9IHtGTEFHX0dSQU5UX1JFQURfVVJJX1BFUk1JU1NJT04sIEZMQUdfR1JBTlRfV1JJVEVfVVJJX1BFUk1JU1NJT059KQorICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlNPVVJDRSkKKyAgICBwdWJsaWMgQGludGVyZmFjZSBHcmFudFVyaU1vZGUge30KKwogICAgIC8qKgogICAgICAqIElmIHNldCwgdGhlIHJlY2lwaWVudCBvZiB0aGlzIEludGVudCB3aWxsIGJlIGdyYW50ZWQgcGVybWlzc2lvbiB0bwogICAgICAqIHBlcmZvcm0gcmVhZCBvcGVyYXRpb25zIG9uIHRoZSBVUkkgaW4gdGhlIEludGVudCdzIGRhdGEgYW5kIGFueSBVUklzCkBAIC02Mzc0LDYgKzYzODMsMjEgQEAKICAgICAgICAgfQogICAgIH0KIAorICAgIC8qKiBAaGlkZSAqLworICAgIEBJbnREZWYoZmxhZyA9IHRydWUsCisgICAgICAgICAgICB2YWx1ZSA9IHsKKyAgICAgICAgICAgICAgICAgICAgRklMTF9JTl9BQ1RJT04sCisgICAgICAgICAgICAgICAgICAgIEZJTExfSU5fREFUQSwKKyAgICAgICAgICAgICAgICAgICAgRklMTF9JTl9DQVRFR09SSUVTLAorICAgICAgICAgICAgICAgICAgICBGSUxMX0lOX0NPTVBPTkVOVCwKKyAgICAgICAgICAgICAgICAgICAgRklMTF9JTl9QQUNLQUdFLAorICAgICAgICAgICAgICAgICAgICBGSUxMX0lOX1NPVVJDRV9CT1VORFMsCisgICAgICAgICAgICAgICAgICAgIEZJTExfSU5fU0VMRUNUT1IsCisgICAgICAgICAgICAgICAgICAgIEZJTExfSU5fQ0xJUF9EQVRBCisgICAgICAgICAgICB9KQorICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlNPVVJDRSkKKyAgICBwdWJsaWMgQGludGVyZmFjZSBGaWxsSW5GbGFncyB7fQorCiAgICAgLyoqCiAgICAgICogVXNlIHdpdGgge0BsaW5rICNmaWxsSW59IHRvIGFsbG93IHRoZSBjdXJyZW50IGFjdGlvbiB2YWx1ZSB0byBiZQogICAgICAqIG92ZXJ3cml0dGVuLCBldmVuIGlmIGl0IGlzIGFscmVhZHkgc2V0LgpAQCAtNjQ2NywxMCArNjQ5MSwxMiBAQAogICAgICAqCiAgICAgICogQHJldHVybiBSZXR1cm5zIGEgYml0IG1hc2sgb2Yge0BsaW5rICNGSUxMX0lOX0FDVElPTn0sCiAgICAgICoge0BsaW5rICNGSUxMX0lOX0RBVEF9LCB7QGxpbmsgI0ZJTExfSU5fQ0FURUdPUklFU30sIHtAbGluayAjRklMTF9JTl9QQUNLQUdFfSwKLSAgICAgKiB7QGxpbmsgI0ZJTExfSU5fQ09NUE9ORU5UfSwge0BsaW5rICNGSUxMX0lOX1NPVVJDRV9CT1VORFN9LCBhbmQKLSAgICAgKiB7QGxpbmsgI0ZJTExfSU5fU0VMRUNUT1J9IGluZGljYXRpbmcgd2hpY2ggZmllbGRzIHdlcmUgY2hhbmdlZC4KKyAgICAgKiB7QGxpbmsgI0ZJTExfSU5fQ09NUE9ORU5UfSwge0BsaW5rICNGSUxMX0lOX1NPVVJDRV9CT1VORFN9LAorICAgICAqIHtAbGluayAjRklMTF9JTl9TRUxFQ1RPUn0gYW5kIHtAbGluayAjRklMTF9JTl9DTElQX0RBVEEgaW5kaWNhdGluZyB3aGljaCBmaWVsZHMgd2VyZQorICAgICAqIGNoYW5nZWQuCiAgICAgICovCi0gICAgcHVibGljIGludCBmaWxsSW4oSW50ZW50IG90aGVyLCBpbnQgZmxhZ3MpIHsKKyAgICBARmlsbEluRmxhZ3MKKyAgICBwdWJsaWMgaW50IGZpbGxJbihJbnRlbnQgb3RoZXIsIEBGaWxsSW5GbGFncyBpbnQgZmxhZ3MpIHsKICAgICAgICAgaW50IGNoYW5nZXMgPSAwOwogICAgICAgICBpZiAob3RoZXIubUFjdGlvbiAhPSBudWxsCiAgICAgICAgICAgICAgICAgJiYgKG1BY3Rpb24gPT0gbnVsbCB8fCAoZmxhZ3MmRklMTF9JTl9BQ1RJT04pICE9IDApKSB7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L0xvYWRlci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9Mb2FkZXIuamF2YQppbmRleCA5MTFlNDljLi5mMzgyOGIwIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L0xvYWRlci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvTG9hZGVyLmphdmEKQEAgLTQxMyw3ICs0MTMsNyBAQAogICAgICAqIHtAbGluayAjb25SZXNldCgpfSBoYXBwZW5zLiAgWW91IGNhbiByZXRyaWV2ZSB0aGUgY3VycmVudCBhYmFuZG9uZWQKICAgICAgKiBzdGF0ZSB3aXRoIHtAbGluayAjaXNBYmFuZG9uZWR9LgogICAgICAqLwotICAgIHByb3RlY3RlZCB2b2lkIG9uQWJhbmRvbigpIHsgICAgICAgIAorICAgIHByb3RlY3RlZCB2b2lkIG9uQWJhbmRvbigpIHsKICAgICB9CiAgICAgCiAgICAgLyoqCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L1BlcmlvZGljU3luYy5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9QZXJpb2RpY1N5bmMuamF2YQppbmRleCBiNTg2ZWVjLi44MzZjNmY4IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L1BlcmlvZGljU3luYy5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvUGVyaW9kaWNTeW5jLmphdmEKQEAgLTI5LDEzICsyOSwxNyBAQAogICAgIHB1YmxpYyBmaW5hbCBBY2NvdW50IGFjY291bnQ7CiAgICAgLyoqIFRoZSBhdXRob3JpdHkgb2YgdGhlIHN5bmMuIENhbiBiZSBudWxsLiAqLwogICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgYXV0aG9yaXR5OworICAgIC8qKiBUaGUgc2VydmljZSBmb3Igc3luY2luZywgaWYgdGhpcyBpcyBhbiBhbm9ueW1vdXMgc3luYy4gQ2FuIGJlIG51bGwuKi8KKyAgICBwdWJsaWMgZmluYWwgQ29tcG9uZW50TmFtZSBzZXJ2aWNlOwogICAgIC8qKiBBbnkgZXh0cmFzIHRoYXQgcGFyYW1ldGVycyB0aGF0IGFyZSB0byBiZSBwYXNzZWQgdG8gdGhlIHN5bmMgYWRhcHRlci4gKi8KICAgICBwdWJsaWMgZmluYWwgQnVuZGxlIGV4dHJhczsKICAgICAvKiogSG93IGZyZXF1ZW50bHkgdGhlIHN5bmMgc2hvdWxkIGJlIHNjaGVkdWxlZCwgaW4gc2Vjb25kcy4gS2VwdCBhcm91bmQgZm9yIEFQSSBwdXJwb3Nlcy4gKi8KICAgICBwdWJsaWMgZmluYWwgbG9uZyBwZXJpb2Q7CisgICAgLyoqIFdoZXRoZXIgdGhpcyBwZXJpb2RpYyBzeW5jIHJ1bnMgb24gYSB7QGxpbmsgU3luY1NlcnZpY2V9LiAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGlzU2VydmljZTsKICAgICAvKioKLSAgICAgKiB7QGhpZGV9CiAgICAgICogSG93IG11Y2ggZmxleGliaWxpdHkgY2FuIGJlIHRha2VuIGluIHNjaGVkdWxpbmcgdGhlIHN5bmMsIGluIHNlY29uZHMuCisgICAgICoge0BoaWRlfQogICAgICAqLwogICAgIHB1YmxpYyBmaW5hbCBsb25nIGZsZXhUaW1lOwogCkBAIC00OCw0NCArNTIsNzQgQEAKICAgICBwdWJsaWMgUGVyaW9kaWNTeW5jKEFjY291bnQgYWNjb3VudCwgU3RyaW5nIGF1dGhvcml0eSwgQnVuZGxlIGV4dHJhcywgbG9uZyBwZXJpb2RJblNlY29uZHMpIHsKICAgICAgICAgdGhpcy5hY2NvdW50ID0gYWNjb3VudDsKICAgICAgICAgdGhpcy5hdXRob3JpdHkgPSBhdXRob3JpdHk7CisgICAgICAgIHRoaXMuc2VydmljZSA9IG51bGw7CisgICAgICAgIHRoaXMuaXNTZXJ2aWNlID0gZmFsc2U7CiAgICAgICAgIGlmIChleHRyYXMgPT0gbnVsbCkgewogICAgICAgICAgICAgdGhpcy5leHRyYXMgPSBuZXcgQnVuZGxlKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB0aGlzLmV4dHJhcyA9IG5ldyBCdW5kbGUoZXh0cmFzKTsKICAgICAgICAgfQogICAgICAgICB0aGlzLnBlcmlvZCA9IHBlcmlvZEluU2Vjb25kczsKLSAgICAgICAgLy8gSW5pdGlhbGlzZSB0byBhIHNhbmUgdmFsdWUuCisgICAgICAgIC8vIE9sZCBBUEkgdXNlcyBkZWZhdWx0IGZsZXggdGltZS4gTm8tb25lIHNob3VsZCBiZSB1c2luZyB0aGlzIGN0b3IgYW55d2F5LgogICAgICAgICB0aGlzLmZsZXhUaW1lID0gMEw7CiAgICAgfQogCiAgICAgLyoqCi0gICAgICoge0BoaWRlfQogICAgICAqIENyZWF0ZSBhIGNvcHkgb2YgYSBwZXJpb2RpYyBzeW5jLgorICAgICAqIHtAaGlkZX0KICAgICAgKi8KICAgICBwdWJsaWMgUGVyaW9kaWNTeW5jKFBlcmlvZGljU3luYyBvdGhlcikgewogICAgICAgICB0aGlzLmFjY291bnQgPSBvdGhlci5hY2NvdW50OwogICAgICAgICB0aGlzLmF1dGhvcml0eSA9IG90aGVyLmF1dGhvcml0eTsKKyAgICAgICAgdGhpcy5zZXJ2aWNlID0gb3RoZXIuc2VydmljZTsKKyAgICAgICAgdGhpcy5pc1NlcnZpY2UgPSBvdGhlci5pc1NlcnZpY2U7CiAgICAgICAgIHRoaXMuZXh0cmFzID0gbmV3IEJ1bmRsZShvdGhlci5leHRyYXMpOwogICAgICAgICB0aGlzLnBlcmlvZCA9IG90aGVyLnBlcmlvZDsKICAgICAgICAgdGhpcy5mbGV4VGltZSA9IG90aGVyLmZsZXhUaW1lOwogICAgIH0KIAogICAgIC8qKgotICAgICAqIHtAaGlkZX0KICAgICAgKiBBIFBlcmlvZGljU3luYyBmb3IgYSBzeW5jIHdpdGggYSBzcGVjaWZpZWQgcHJvdmlkZXIuCisgICAgICoge0BoaWRlfQogICAgICAqLwogICAgIHB1YmxpYyBQZXJpb2RpY1N5bmMoQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgYXV0aG9yaXR5LCBCdW5kbGUgZXh0cmFzLAogICAgICAgICAgICAgbG9uZyBwZXJpb2QsIGxvbmcgZmxleFRpbWUpIHsKICAgICAgICAgdGhpcy5hY2NvdW50ID0gYWNjb3VudDsKICAgICAgICAgdGhpcy5hdXRob3JpdHkgPSBhdXRob3JpdHk7CisgICAgICAgIHRoaXMuc2VydmljZSA9IG51bGw7CisgICAgICAgIHRoaXMuaXNTZXJ2aWNlID0gZmFsc2U7CisgICAgICAgIHRoaXMuZXh0cmFzID0gbmV3IEJ1bmRsZShleHRyYXMpOworICAgICAgICB0aGlzLnBlcmlvZCA9IHBlcmlvZDsKKyAgICAgICAgdGhpcy5mbGV4VGltZSA9IGZsZXhUaW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIEEgUGVyaW9kaWNTeW5jIGZvciBhIHN5bmMgd2l0aCBhIHNwZWNpZmllZCBTeW5jU2VydmljZS4KKyAgICAgKiB7QGhpZGV9CisgICAgICovCisgICAgcHVibGljIFBlcmlvZGljU3luYyhDb21wb25lbnROYW1lIHNlcnZpY2UsIEJ1bmRsZSBleHRyYXMsCisgICAgICAgICAgICBsb25nIHBlcmlvZCwKKyAgICAgICAgICAgIGxvbmcgZmxleFRpbWUpIHsKKyAgICAgICAgdGhpcy5hY2NvdW50ID0gbnVsbDsKKyAgICAgICAgdGhpcy5hdXRob3JpdHkgPSBudWxsOworICAgICAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlOworICAgICAgICB0aGlzLmlzU2VydmljZSA9IHRydWU7CiAgICAgICAgIHRoaXMuZXh0cmFzID0gbmV3IEJ1bmRsZShleHRyYXMpOwogICAgICAgICB0aGlzLnBlcmlvZCA9IHBlcmlvZDsKICAgICAgICAgdGhpcy5mbGV4VGltZSA9IGZsZXhUaW1lOwogICAgIH0KIAogICAgIHByaXZhdGUgUGVyaW9kaWNTeW5jKFBhcmNlbCBpbikgewotICAgICAgICB0aGlzLmFjY291bnQgPSBpbi5yZWFkUGFyY2VsYWJsZShudWxsKTsKLSAgICAgICAgdGhpcy5hdXRob3JpdHkgPSBpbi5yZWFkU3RyaW5nKCk7CisgICAgICAgIHRoaXMuaXNTZXJ2aWNlID0gKGluLnJlYWRJbnQoKSAhPSAwKTsKKyAgICAgICAgaWYgKHRoaXMuaXNTZXJ2aWNlKSB7CisgICAgICAgICAgICB0aGlzLnNlcnZpY2UgPSBpbi5yZWFkUGFyY2VsYWJsZShudWxsKTsKKyAgICAgICAgICAgIHRoaXMuYWNjb3VudCA9IG51bGw7CisgICAgICAgICAgICB0aGlzLmF1dGhvcml0eSA9IG51bGw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aGlzLmFjY291bnQgPSBpbi5yZWFkUGFyY2VsYWJsZShudWxsKTsKKyAgICAgICAgICAgIHRoaXMuYXV0aG9yaXR5ID0gaW4ucmVhZFN0cmluZygpOworICAgICAgICAgICAgdGhpcy5zZXJ2aWNlID0gbnVsbDsKKyAgICAgICAgfQogICAgICAgICB0aGlzLmV4dHJhcyA9IGluLnJlYWRCdW5kbGUoKTsKICAgICAgICAgdGhpcy5wZXJpb2QgPSBpbi5yZWFkTG9uZygpOwogICAgICAgICB0aGlzLmZsZXhUaW1lID0gaW4ucmVhZExvbmcoKTsKQEAgLTk4LDggKzEzMiwxMyBAQAogCiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIHZvaWQgd3JpdGVUb1BhcmNlbChQYXJjZWwgZGVzdCwgaW50IGZsYWdzKSB7Ci0gICAgICAgIGRlc3Qud3JpdGVQYXJjZWxhYmxlKGFjY291bnQsIGZsYWdzKTsKLSAgICAgICAgZGVzdC53cml0ZVN0cmluZyhhdXRob3JpdHkpOworICAgICAgICBkZXN0LndyaXRlSW50KGlzU2VydmljZSA/IDEgOiAwKTsKKyAgICAgICAgaWYgKGFjY291bnQgPT0gbnVsbCAmJiBhdXRob3JpdHkgPT0gbnVsbCkgeworICAgICAgICAgICAgZGVzdC53cml0ZVBhcmNlbGFibGUoc2VydmljZSwgZmxhZ3MpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVzdC53cml0ZVBhcmNlbGFibGUoYWNjb3VudCwgZmxhZ3MpOworICAgICAgICAgICAgZGVzdC53cml0ZVN0cmluZyhhdXRob3JpdHkpOworICAgICAgICB9CiAgICAgICAgIGRlc3Qud3JpdGVCdW5kbGUoZXh0cmFzKTsKICAgICAgICAgZGVzdC53cml0ZUxvbmcocGVyaW9kKTsKICAgICAgICAgZGVzdC53cml0ZUxvbmcoZmxleFRpbWUpOwpAQCAtMTI2LDE0ICsxNjUsMjQgQEAKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBmaW5hbCBQZXJpb2RpY1N5bmMgb3RoZXIgPSAoUGVyaW9kaWNTeW5jKSBvOwotICAgICAgICByZXR1cm4gYWNjb3VudC5lcXVhbHMob3RoZXIuYWNjb3VudCkKLSAgICAgICAgICAgICYmIGF1dGhvcml0eS5lcXVhbHMob3RoZXIuYXV0aG9yaXR5KQorICAgICAgICBpZiAodGhpcy5pc1NlcnZpY2UgIT0gb3RoZXIuaXNTZXJ2aWNlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBlcXVhbCA9IGZhbHNlOworICAgICAgICBpZiAodGhpcy5pc1NlcnZpY2UpIHsKKyAgICAgICAgICAgIGVxdWFsID0gc2VydmljZS5lcXVhbHMob3RoZXIuc2VydmljZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcXVhbCA9IGFjY291bnQuZXF1YWxzKG90aGVyLmFjY291bnQpCisgICAgICAgICAgICAgICAgICAgICYmIGF1dGhvcml0eS5lcXVhbHMob3RoZXIuYXV0aG9yaXR5KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXF1YWwKICAgICAgICAgICAgICYmIHBlcmlvZCA9PSBvdGhlci5wZXJpb2QKICAgICAgICAgICAgICYmIHN5bmNFeHRyYXNFcXVhbHMoZXh0cmFzLCBvdGhlci5leHRyYXMpOwogICAgIH0KIAogICAgIC8qKgotICAgICAqIFBlcmlvZGljIHN5bmMgZXh0cmEgY29tcGFyaXNvbiBmdW5jdGlvbi4KKyAgICAgKiBQZXJpb2RpYyBzeW5jIGV4dHJhIGNvbXBhcmlzb24gZnVuY3Rpb24uIER1cGxpY2F0ZWQgZnJvbQorICAgICAqIHtAbGluayBjb20uYW5kcm9pZC5zZXJ2ZXIuY29udGVudC5TeW5jTWFuYWdlciNzeW5jRXh0cmFzRXF1YWxzKEJ1bmRsZSBiMSwgQnVuZGxlIGIyKX0KICAgICAgKiB7QGhpZGV9CiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBib29sZWFuIHN5bmNFeHRyYXNFcXVhbHMoQnVuZGxlIGIxLCBCdW5kbGUgYjIpIHsKQEAgLTE1OCw2ICsyMDcsNyBAQAogICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CiAgICAgICAgIHJldHVybiAiYWNjb3VudDogIiArIGFjY291bnQgKwogICAgICAgICAgICAgICAgIiwgYXV0aG9yaXR5OiAiICsgYXV0aG9yaXR5ICsKKyAgICAgICAgICAgICAgICIsIHNlcnZpY2U6ICIgKyBzZXJ2aWNlICsKICAgICAgICAgICAgICAgICIuIHBlcmlvZDogIiArIHBlcmlvZCArICJzICIgKwogICAgICAgICAgICAgICAgIiwgZmxleDogIiArIGZsZXhUaW1lOwogICAgIH0KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvU3luY0luZm8uamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvU3luY0luZm8uamF2YQppbmRleCAwMjg0ODgyLi42MWIxMWMyIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L1N5bmNJbmZvLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9TeW5jSW5mby5qYXZhCkBAIC0xNyw2ICsxNyw3IEBACiBwYWNrYWdlIGFuZHJvaWQuY29udGVudDsKIAogaW1wb3J0IGFuZHJvaWQuYWNjb3VudHMuQWNjb3VudDsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQucG0uUmVnaXN0ZXJlZFNlcnZpY2VzQ2FjaGU7CiBpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWw7CiBpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWxhYmxlOwogaW1wb3J0IGFuZHJvaWQub3MuUGFyY2VsYWJsZS5DcmVhdG9yOwpAQCAtMjksMTYgKzMwLDI0IEBACiAgICAgcHVibGljIGZpbmFsIGludCBhdXRob3JpdHlJZDsKIAogICAgIC8qKgotICAgICAqIFRoZSB7QGxpbmsgQWNjb3VudH0gdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgc3luY2VkLgorICAgICAqIFRoZSB7QGxpbmsgQWNjb3VudH0gdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgc3luY2VkLiBXaWxsIGJlIG51bGwgaWYgdGhpcyBzeW5jIGlzIHJ1bm5pbmcgdmlhCisgICAgICogYSB7QGxpbmsgU3luY1NlcnZpY2V9LgogICAgICAqLwogICAgIHB1YmxpYyBmaW5hbCBBY2NvdW50IGFjY291bnQ7CiAKICAgICAvKioKLSAgICAgKiBUaGUgYXV0aG9yaXR5IG9mIHRoZSBwcm92aWRlciB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBzeW5jZWQuCisgICAgICogVGhlIGF1dGhvcml0eSBvZiB0aGUgcHJvdmlkZXIgdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgc3luY2VkLiBXaWxsIGJlIG51bGwgaWYgdGhpcyBzeW5jCisgICAgICogaXMgcnVubmluZyB2aWEgYSB7QGxpbmsgU3luY1NlcnZpY2V9LgogICAgICAqLwogICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgYXV0aG9yaXR5OwogCiAgICAgLyoqCisgICAgICogVGhlIHtAbGluayBTeW5jU2VydmljZX0gdGhhdCBpcyB0YXJnZXRlZCBieSB0aGlzIG9wZXJhdGlvbi4gTnVsbCBpZiB0aGlzIHN5bmMgaXMgcnVubmluZyB2aWEKKyAgICAgKiBhIHtAbGluayBBYnN0cmFjdFRocmVhZGVkU3luY0FkYXB0ZXJ9LiAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgQ29tcG9uZW50TmFtZSBzZXJ2aWNlOworCisgICAgLyoqCiAgICAgICogVGhlIHN0YXJ0IHRpbWUgb2YgdGhlIGN1cnJlbnQgc3luYyBvcGVyYXRpb24gaW4gbWlsbGlzZWNvbmRzIHNpbmNlIGJvb3QuCiAgICAgICogVGhpcyBpcyByZXByZXNlbnRlZCBpbiBlbGFwc2VkIHJlYWwgdGltZS4KICAgICAgKiBTZWUge0BsaW5rIGFuZHJvaWQub3MuU3lzdGVtQ2xvY2sjZWxhcHNlZFJlYWx0aW1lKCl9LgpAQCAtNDYsMTIgKzU1LDEzIEBACiAgICAgcHVibGljIGZpbmFsIGxvbmcgc3RhcnRUaW1lOwogCiAgICAgLyoqIEBoaWRlICovCi0gICAgcHVibGljIFN5bmNJbmZvKGludCBhdXRob3JpdHlJZCwgQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgYXV0aG9yaXR5LAorICAgIHB1YmxpYyBTeW5jSW5mbyhpbnQgYXV0aG9yaXR5SWQsIEFjY291bnQgYWNjb3VudCwgU3RyaW5nIGF1dGhvcml0eSwgQ29tcG9uZW50TmFtZSBzZXJ2aWNlLAogICAgICAgICAgICAgbG9uZyBzdGFydFRpbWUpIHsKICAgICAgICAgdGhpcy5hdXRob3JpdHlJZCA9IGF1dGhvcml0eUlkOwogICAgICAgICB0aGlzLmFjY291bnQgPSBhY2NvdW50OwogICAgICAgICB0aGlzLmF1dGhvcml0eSA9IGF1dGhvcml0eTsKICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBzdGFydFRpbWU7CisgICAgICAgIHRoaXMuc2VydmljZSA9IHNlcnZpY2U7CiAgICAgfQogCiAgICAgLyoqIEBoaWRlICovCkBAIC02MiwxNyArNzIsMjAgQEAKICAgICAvKiogQGhpZGUgKi8KICAgICBwdWJsaWMgdm9pZCB3cml0ZVRvUGFyY2VsKFBhcmNlbCBwYXJjZWwsIGludCBmbGFncykgewogICAgICAgICBwYXJjZWwud3JpdGVJbnQoYXV0aG9yaXR5SWQpOwotICAgICAgICBhY2NvdW50LndyaXRlVG9QYXJjZWwocGFyY2VsLCAwKTsKKyAgICAgICAgcGFyY2VsLndyaXRlUGFyY2VsYWJsZShhY2NvdW50LCBmbGFncyk7CiAgICAgICAgIHBhcmNlbC53cml0ZVN0cmluZyhhdXRob3JpdHkpOwogICAgICAgICBwYXJjZWwud3JpdGVMb25nKHN0YXJ0VGltZSk7CisgICAgICAgIHBhcmNlbC53cml0ZVBhcmNlbGFibGUoc2VydmljZSwgZmxhZ3MpOworICAgICAgICAKICAgICB9CiAKICAgICAvKiogQGhpZGUgKi8KICAgICBTeW5jSW5mbyhQYXJjZWwgcGFyY2VsKSB7CiAgICAgICAgIGF1dGhvcml0eUlkID0gcGFyY2VsLnJlYWRJbnQoKTsKLSAgICAgICAgYWNjb3VudCA9IG5ldyBBY2NvdW50KHBhcmNlbCk7CisgICAgICAgIGFjY291bnQgPSBwYXJjZWwucmVhZFBhcmNlbGFibGUoQWNjb3VudC5jbGFzcy5nZXRDbGFzc0xvYWRlcigpKTsKICAgICAgICAgYXV0aG9yaXR5ID0gcGFyY2VsLnJlYWRTdHJpbmcoKTsKICAgICAgICAgc3RhcnRUaW1lID0gcGFyY2VsLnJlYWRMb25nKCk7CisgICAgICAgIHNlcnZpY2UgPSBwYXJjZWwucmVhZFBhcmNlbGFibGUoQ29tcG9uZW50TmFtZS5jbGFzcy5nZXRDbGFzc0xvYWRlcigpKTsKICAgICB9CiAKICAgICAvKiogQGhpZGUgKi8KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvU3luY1JlcXVlc3QuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvU3luY1JlcXVlc3QuamF2YQppbmRleCA2Y2EyODNkLi45ODk0YWFkIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L1N5bmNSZXF1ZXN0LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9TeW5jUmVxdWVzdC5qYXZhCkBAIC0yMCwxOCArMjAsMTkgQEAKIGltcG9ydCBhbmRyb2lkLm9zLkJ1bmRsZTsKIGltcG9ydCBhbmRyb2lkLm9zLlBhcmNlbDsKIGltcG9ydCBhbmRyb2lkLm9zLlBhcmNlbGFibGU7CitpbXBvcnQgYW5kcm9pZC51dGlsLlBhaXI7CiAKIHB1YmxpYyBjbGFzcyBTeW5jUmVxdWVzdCBpbXBsZW1lbnRzIFBhcmNlbGFibGUgewogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUQUcgPSAiU3luY1JlcXVlc3QiOwotICAgIC8qKiBBY2NvdW50IHRvIHBhc3MgdG8gdGhlIHN5bmMgYWRhcHRlci4gTWF5IGJlIG51bGwuICovCisgICAgLyoqIEFjY291bnQgdG8gcGFzcyB0byB0aGUgc3luYyBhZGFwdGVyLiBDYW4gYmUgbnVsbC4gKi8KICAgICBwcml2YXRlIGZpbmFsIEFjY291bnQgbUFjY291bnRUb1N5bmM7CiAgICAgLyoqIEF1dGhvcml0eSBzdHJpbmcgdGhhdCBjb3JyZXNwb25kcyB0byBhIENvbnRlbnRQcm92aWRlci4gKi8KICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtQXV0aG9yaXR5OwotICAgIC8qKiBTeW5jIHNlcnZpY2UgaWRlbnRpZmllci4gTWF5IGJlIG51bGwuKi8KKyAgICAvKioge0BsaW5rIFN5bmNTZXJ2aWNlfSBpZGVudGlmaWVyLiAqLwogICAgIHByaXZhdGUgZmluYWwgQ29tcG9uZW50TmFtZSBtQ29tcG9uZW50SW5mbzsKICAgICAvKiogQnVuZGxlIGNvbnRhaW5pbmcgdXNlciBpbmZvIGFzIHdlbGwgYXMgc3luYyBzZXR0aW5ncy4gKi8KICAgICBwcml2YXRlIGZpbmFsIEJ1bmRsZSBtRXh0cmFzOwotICAgIC8qKiBEaXNhbGxvdyB0aGlzIHN5bmMgcmVxdWVzdCBvbiBtZXRlcmVkIG5ldHdvcmtzLiAqLworICAgIC8qKiBEb24ndCBhbGxvdyB0aGlzIHN5bmMgcmVxdWVzdCBvbiBtZXRlcmVkIG5ldHdvcmtzLiAqLwogICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBtRGlzYWxsb3dNZXRlcmVkOwogICAgIC8qKgogICAgICAqIEFudGljaXBhdGVkIHVwbG9hZCBzaXplIGluIGJ5dGVzLgpAQCAtNjksMTggKzcwLDE0IEBACiAgICAgICAgIHJldHVybiBtSXNQZXJpb2RpYzsKICAgICB9CiAKLSAgICAvKioKLSAgICAgKiB7QGhpZGV9Ci0gICAgICogQHJldHVybiB3aGV0aGVyIHRoaXMgaXMgYW4gZXhwZWRpdGVkIHN5bmMuCi0gICAgICovCiAgICAgcHVibGljIGJvb2xlYW4gaXNFeHBlZGl0ZWQoKSB7CiAgICAgICAgIHJldHVybiBtSXNFeHBlZGl0ZWQ7CiAgICAgfQogCiAgICAgLyoqCiAgICAgICoge0BoaWRlfQotICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIHN5bmMgdXNlcyBhbiBhY2NvdW50L2F1dGhvcml0eSBwYWlyLCBvciBmYWxzZSBpZiB0aGlzIHN5bmMgaXMgYm91bmQgdG8KLSAgICAgKiBhIFN5bmMgU2VydmljZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBzeW5jIHVzZXMgYW4gYWNjb3VudC9hdXRob3JpdHkgcGFpciwgb3IgZmFsc2UgaWYKKyAgICAgKiAgICAgICAgIHRoaXMgaXMgYW4gYW5vbnltb3VzIHN5bmMgYm91bmQgdG8gYW4gQGxpbmsgQW5vbnltb3VzU3luY1NlcnZpY2UuCiAgICAgICovCiAgICAgcHVibGljIGJvb2xlYW4gaGFzQXV0aG9yaXR5KCkgewogICAgICAgICByZXR1cm4gbUlzQXV0aG9yaXR5OwpAQCAtODgsMzQgKzg1LDUxIEBACiAKICAgICAvKioKICAgICAgKiB7QGhpZGV9CisgICAgICoKICAgICAgKiBAcmV0dXJuIGFjY291bnQgb2JqZWN0IGZvciB0aGlzIHN5bmMuCi0gICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIGEgcmVxdWVzdCB0aGF0IGRvZXMgbm90Ci0gICAgICogc3BlY2lmeSBhbiBhY2NvdW50L3Byb3ZpZGVyIGF1dGhvcml0eS4KKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgYSByZXF1ZXN0IHRoYXQgdGFyZ2V0cyBhCisgICAgICogc3luYyBzZXJ2aWNlLgogICAgICAqLwogICAgIHB1YmxpYyBBY2NvdW50IGdldEFjY291bnQoKSB7CiAgICAgICAgIGlmICghaGFzQXV0aG9yaXR5KCkpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbm5vdCBnZXRBY2NvdW50KCkgZm9yIGEgc3luYyB0aGF0IGRvZXMgbm90IgotICAgICAgICAgICAgICAgICAgICArICJzcGVjaWZ5IGFuIGF1dGhvcml0eS4iKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbm5vdCBnZXRBY2NvdW50KCkgZm9yIGEgc3luYyB0aGF0IHRhcmdldHMgYSBzeW5jIgorICAgICAgICAgICAgICAgICAgICArICJzZXJ2aWNlLiIpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtQWNjb3VudFRvU3luYzsKICAgICB9CiAKICAgICAvKioKICAgICAgKiB7QGhpZGV9CisgICAgICoKICAgICAgKiBAcmV0dXJuIHByb3ZpZGVyIGZvciB0aGlzIHN5bmMuCi0gICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIGEgcmVxdWVzdCB0aGF0IGRvZXMgbm90Ci0gICAgICogc3BlY2lmeSBhbiBhY2NvdW50L3Byb3ZpZGVyIGF1dGhvcml0eS4KKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgYSByZXF1ZXN0IHRoYXQgdGFyZ2V0cyBhCisgICAgICogc3luYyBzZXJ2aWNlLgogICAgICAqLwogICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJvdmlkZXIoKSB7CiAgICAgICAgIGlmICghaGFzQXV0aG9yaXR5KCkpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbm5vdCBnZXRQcm92aWRlcigpIGZvciBhIHN5bmMgdGhhdCBkb2VzIG5vdCIKLSAgICAgICAgICAgICAgICAgICAgKyAic3BlY2lmeSBhIHByb3ZpZGVyLiIpOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2Fubm90IGdldFByb3ZpZGVyKCkgZm9yIGEgc3luYyB0aGF0IHRhcmdldHMgYSIKKyAgICAgICAgICAgICAgICAgICAgKyAic3luYyBzZXJ2aWNlLiIpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtQXV0aG9yaXR5OwogICAgIH0KIAogICAgIC8qKgogICAgICAqIHtAaGlkZX0KKyAgICAgKiBUaHJvd3MgYSBydW50aW1lIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgYQorICAgICAqIFN5bmNSZXF1ZXN0IHRoYXQgaXMgYm91bmQgdG8gYW4gYWNjb3VudC9wcm92aWRlci4KKyAgICAgKgorICAgICAqIEByZXR1cm4gQ29tcG9uZW50TmFtZSBmb3IgdGhlIHNlcnZpY2UgdGhhdCB0aGlzIHN5bmMgd2lsbCBiaW5kIHRvLgorICAgICAqLworICAgIHB1YmxpYyBDb21wb25lbnROYW1lIGdldFNlcnZpY2UoKSB7CisgICAgICAgIGlmIChoYXNBdXRob3JpdHkoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCBnZXRBbm9ueW1vdXNTZXJ2aWNlKCkgZm9yIGEgc3luYyB0aGF0IGhhcyBzcGVjaWZpZWQgYSBwcm92aWRlci4iKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbUNvbXBvbmVudEluZm87CisgICAgfQorCisgICAgLyoqCisgICAgICoge0BoaWRlfQogICAgICAqIFJldHJpZXZlIGJ1bmRsZSBmb3IgdGhpcyBTeW5jUmVxdWVzdC4gV2lsbCBub3QgYmUgbnVsbC4KICAgICAgKi8KICAgICBwdWJsaWMgQnVuZGxlIGdldEJ1bmRsZSgpIHsKQEAgLTEyOSw3ICsxNDMsNiBAQAogICAgIHB1YmxpYyBsb25nIGdldFN5bmNGbGV4VGltZSgpIHsKICAgICAgICAgcmV0dXJuIG1TeW5jRmxleFRpbWVTZWNzOwogICAgIH0KLQogICAgIC8qKgogICAgICAqIHtAaGlkZX0KICAgICAgKiBAcmV0dXJuIHRoZSBsYXN0IHBvaW50IGluIHRpbWUgYXQgd2hpY2ggdGhpcyBzeW5jIG11c3Qgc2NoZWR1bGVkLgpAQCAtMjE2LDcgKzIyOSw3IEBACiAgICAgfQogCiAgICAgLyoqCi0gICAgICogQnVpbGRlciBjbGFzcyBmb3IgYSB7QGxpbmsgU3luY1JlcXVlc3R9LiBBcyB5b3UgYnVpbGQgeW91ciBTeW5jUmVxdWVzdCB0aGlzIGNsYXNzIHdpbGwgYWxzbworICAgICAqIEJ1aWxkZXIgY2xhc3MgZm9yIGEgQGxpbmsgU3luY1JlcXVlc3QuIEFzIHlvdSBidWlsZCB5b3VyIFN5bmNSZXF1ZXN0IHRoaXMgY2xhc3Mgd2lsbCBhbHNvCiAgICAgICogcGVyZm9ybSB2YWxpZGF0aW9uLgogICAgICAqLwogICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgQnVpbGRlciB7CkBAIC0yMzIsOSArMjQ1LDEyIEBACiAgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTWU5DX1RBUkdFVF9TRVJWSUNFID0gMTsKICAgICAgICAgLyoqIFNwZWNpZnkgdGhhdCB0aGlzIGlzIGEgc3luYyB3aXRoIGEgcHJvdmlkZXIuICovCiAgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTWU5DX1RBUkdFVF9BREFQVEVSID0gMjsKLSAgICAgICAgLyoqIEVhcmxpZXN0IHBvaW50IG9mIGRpc3BsYWNlbWVudCBpbnRvIHRoZSBmdXR1cmUgYXQgd2hpY2ggdGhpcyBzeW5jIGNhbiBvY2N1ci4gKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEVhcmxpZXN0IHBvaW50IG9mIGRpc3BsYWNlbWVudCBpbnRvIHRoZSBmdXR1cmUgYXQgd2hpY2ggdGhpcyBzeW5jIGNhbgorICAgICAgICAgKiBvY2N1ci4KKyAgICAgICAgICovCiAgICAgICAgIHByaXZhdGUgbG9uZyBtU3luY0ZsZXhUaW1lU2VjczsKLSAgICAgICAgLyoqIExhdGVzdCBwb2ludCBvZiBkaXNwbGFjZW1lbnQgaW50byB0aGUgZnV0dXJlIGF0IHdoaWNoIHRoaXMgc3luYyBtdXN0IG9jY3VyLiAqLworICAgICAgICAvKiogRGlzcGxhY2VtZW50IGludG8gdGhlIGZ1dHVyZSBhdCB3aGljaCB0aGlzIHN5bmMgbXVzdCBvY2N1ci4gKi8KICAgICAgICAgcHJpdmF0ZSBsb25nIG1TeW5jUnVuVGltZVNlY3M7CiAgICAgICAgIC8qKgogICAgICAgICAgKiBTeW5jIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gLSBjdXN0b20gdXNlciBkYXRhIGV4cGxpY2l0bHkgcHJvdmlkZWQgYnkgdGhlIGRldmVsb3Blci4KQEAgLTI4Myw4ICsyOTksOSBAQAogICAgICAgICBwcml2YXRlIGJvb2xlYW4gbUV4cGVkaXRlZDsKIAogICAgICAgICAvKioKLSAgICAgICAgICogVGhlIHN5bmMgY29tcG9uZW50IHRoYXQgY29udGFpbnMgdGhlIHN5bmMgbG9naWMgaWYgdGhpcyBpcyBhIHByb3ZpZGVyLWxlc3Mgc3luYywKLSAgICAgICAgICogb3RoZXJ3aXNlIG51bGwuCisgICAgICAgICAqIFRoZSB7QGxpbmsgU3luY1NlcnZpY2V9IGNvbXBvbmVudCB0aGF0CisgICAgICAgICAqIGNvbnRhaW5zIHRoZSBzeW5jIGxvZ2ljIGlmIHRoaXMgaXMgYSBwcm92aWRlci1sZXNzIHN5bmMsIG90aGVyd2lzZQorICAgICAgICAgKiBudWxsLgogICAgICAgICAgKi8KICAgICAgICAgcHJpdmF0ZSBDb21wb25lbnROYW1lIG1Db21wb25lbnROYW1lOwogICAgICAgICAvKioKQEAgLTMyMCwxMSArMzM3LDE1IEBACiAKICAgICAgICAgLyoqCiAgICAgICAgICAqIEJ1aWxkIGEgcGVyaW9kaWMgc3luYy4gRWl0aGVyIHRoaXMgb3Igc3luY09uY2UoKSA8Yj5tdXN0PC9iPiBiZSBjYWxsZWQgZm9yIHRoaXMgYnVpbGRlci4KLSAgICAgICAgICogU3luY3MgYXJlIGlkZW50aWZpZWQgYnkgdGFyZ2V0IHtAbGluayBhbmRyb2lkLnByb3ZpZGVyfS97QGxpbmsgYW5kcm9pZC5hY2NvdW50cy5BY2NvdW50fQotICAgICAgICAgKiBhbmQgYnkgdGhlIGNvbnRlbnRzIG9mIHRoZSBleHRyYXMgYnVuZGxlLgotICAgICAgICAgKiBZb3UgY2Fubm90IHJldXNlIHRoZSBzYW1lIGJ1aWxkZXIgZm9yIG9uZS10aW1lIHN5bmNzIChieSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24pIGFmdGVyCi0gICAgICAgICAqIGhhdmluZyBzcGVjaWZpZWQgYSBwZXJpb2RpYyBzeW5jLiBJZiB5b3UgZG8sIGFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4KKyAgICAgICAgICogU3luY3MgYXJlIGlkZW50aWZpZWQgYnkgdGFyZ2V0IHtAbGluayBTeW5jU2VydmljZX0ve0BsaW5rIGFuZHJvaWQucHJvdmlkZXJ9IGFuZCBieSB0aGUKKyAgICAgICAgICogY29udGVudHMgb2YgdGhlIGV4dHJhcyBidW5kbGUuCisgICAgICAgICAqIFlvdSBjYW5ub3QgcmV1c2UgdGhlIHNhbWUgYnVpbGRlciBmb3Igb25lLXRpbWUgc3luY3MgYWZ0ZXIgaGF2aW5nIHNwZWNpZmllZCBhIHBlcmlvZGljCisgICAgICAgICAqIHN5bmMgKGJ5IGNhbGxpbmcgdGhpcyBmdW5jdGlvbikuIElmIHlvdSBkbywgYW4gPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPgogICAgICAgICAgKiB3aWxsIGJlIHRocm93bi4KKyAgICAgICAgICogPHA+VGhlIGJ1bmRsZSBmb3IgYSBwZXJpb2RpYyBzeW5jIGNhbiBiZSBxdWVyaWVkIGJ5IGFwcGxpY2F0aW9ucyB3aXRoIHRoZSBjb3JyZWN0CisgICAgICAgICAqIHBlcm1pc3Npb25zIHVzaW5nCisgICAgICAgICAqIHtAbGluayBDb250ZW50UmVzb2x2ZXIjZ2V0UGVyaW9kaWNTeW5jcyhBY2NvdW50IGFjY291bnQsIFN0cmluZyBwcm92aWRlcil9LCBzbyBubworICAgICAgICAgKiBzZW5zaXRpdmUgZGF0YSBzaG91bGQgYmUgdHJhbnNmZXJyZWQgaGVyZS4KICAgICAgICAgICoKICAgICAgICAgICogRXhhbXBsZSB1c2FnZS4KICAgICAgICAgICoKQEAgLTM3NSw3ICszOTYsNiBAQAogICAgICAgICB9CiAKICAgICAgICAgLyoqCi0gICAgICAgICAqIHtAaGlkZX0KICAgICAgICAgICogRGV2ZWxvcGVyIGNhbiBwcm92aWRlIGluc2lnaHQgaW50byB0aGVpciBwYXlsb2FkIHNpemU7IG9wdGlvbmFsLiAtMSBzcGVjaWZpZXMgdW5rbm93biwKICAgICAgICAgICogc28gdGhhdCB5b3UgYXJlIG5vdCByZXN0cmljdGVkIHRvIGRlZmluaW5nIGJvdGggZmllbGRzLgogICAgICAgICAgKgpAQCAtMzg5LDIwICs0MDksMjggQEAKICAgICAgICAgfQogCiAgICAgICAgIC8qKgotICAgICAgICAgKiBAc2VlIGFuZHJvaWQubmV0LkNvbm5lY3Rpdml0eU1hbmFnZXIjaXNBY3RpdmVOZXR3b3JrTWV0ZXJlZCgpCi0gICAgICAgICAqIEBwYXJhbSBkaXNhbGxvdyB0cnVlIHRvIGVuZm9yY2UgdGhhdCB0aGlzIHRyYW5zZmVyIG5vdCBvY2N1ciBvbiBtZXRlcmVkIG5ldHdvcmtzLgotICAgICAgICAgKiAgICAgICAgICAgICAgICAgRGVmYXVsdCBmYWxzZS4KKyAgICAgICAgICogV2lsbCB0aHJvdyBhbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGlmIGNhbGxlZCBhbmQKKyAgICAgICAgICoge0BsaW5rICNzZXRJZ25vcmVTZXR0aW5ncyhib29sZWFuIGlnbm9yZVNldHRpbmdzKX0gaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQuCisgICAgICAgICAqIEBwYXJhbSBkaXNhbGxvdyB0cnVlIHRvIGFsbG93IHRoaXMgdHJhbnNmZXIgb24gbWV0ZXJlZCBuZXR3b3Jrcy4gRGVmYXVsdCBmYWxzZS4KKyAgICAgICAgICogCiAgICAgICAgICAqLwogICAgICAgICBwdWJsaWMgQnVpbGRlciBzZXREaXNhbGxvd01ldGVyZWQoYm9vbGVhbiBkaXNhbGxvdykgeworICAgICAgICAgICAgaWYgKG1JZ25vcmVTZXR0aW5ncyAmJiBkaXNhbGxvdykgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInNldERpc2FsbG93TWV0ZXJlZCh0cnVlKSBhZnRlciBoYXZpbmciCisgICAgICAgICAgICAgICAgICAgICAgICArICJzcGVjaWZpZWQgdGhhdCBzZXR0aW5ncyBhcmUgaWdub3JlZC4iKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIG1EaXNhbGxvd01ldGVyZWQgPSBkaXNhbGxvdzsKICAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgICB9CiAKICAgICAgICAgLyoqCi0gICAgICAgICAqIFNwZWNpZnkgYW4gYXV0aG9yaXR5IGFuZCBhY2NvdW50IGZvciB0aGlzIHRyYW5zZmVyLgorICAgICAgICAgKiBTcGVjaWZ5IGFuIGF1dGhvcml0eSBhbmQgYWNjb3VudCBmb3IgdGhpcyB0cmFuc2Zlci4gQ2Fubm90IGJlIHVzZWQgd2l0aAorICAgICAgICAgKiB7QGxpbmsgI3NldFN5bmNBZGFwdGVyKENvbXBvbmVudE5hbWUgY25hbWUpfS4KICAgICAgICAgICoKLSAgICAgICAgICogQHBhcmFtIGF1dGhvcml0eSBTdHJpbmcgaWRlbnRpZnlpbmcgd2hpY2ggY29udGVudCBwcm92aWRlciB0byBzeW5jLgotICAgICAgICAgKiBAcGFyYW0gYWNjb3VudCBBY2NvdW50IHRvIHN5bmMuIENhbiBiZSBudWxsIHVubGVzcyB0aGlzIGlzIGEgcGVyaW9kaWMgc3luYy4KKyAgICAgICAgICogQHBhcmFtIGF1dGhvcml0eQorICAgICAgICAgKiBAcGFyYW0gYWNjb3VudCBBY2NvdW50IHRvIHN5bmMuIENhbiBiZSBudWxsIHVubGVzcyB0aGlzIGlzIGEgcGVyaW9kaWMKKyAgICAgICAgICogICAgICAgICAgICBzeW5jLCBmb3Igd2hpY2ggdmVyaWZpY2F0aW9uIGJ5IHRoZSBDb250ZW50UmVzb2x2ZXIgd2lsbAorICAgICAgICAgKiAgICAgICAgICAgIGZhaWwuIElmIGEgc3luYyBpcyBwZXJmb3JtZWQgd2l0aG91dCBhbiBhY2NvdW50LCB0aGUKICAgICAgICAgICovCiAgICAgICAgIHB1YmxpYyBCdWlsZGVyIHNldFN5bmNBZGFwdGVyKEFjY291bnQgYWNjb3VudCwgU3RyaW5nIGF1dGhvcml0eSkgewogICAgICAgICAgICAgaWYgKG1TeW5jVGFyZ2V0ICE9IFNZTkNfVEFSR0VUX1VOS05PV04pIHsKQEAgLTQxOSwxMCArNDQ3LDI2IEBACiAgICAgICAgIH0KIAogICAgICAgICAvKioKLSAgICAgICAgICogT3B0aW9uYWwgZGV2ZWxvcGVyLXByb3ZpZGVkIGV4dHJhcyBoYW5kZWQgYmFjayBpbgotICAgICAgICAgKiB7QGxpbmsgQWJzdHJhY3RUaHJlYWRlZFN5bmNBZGFwdGVyI29uUGVyZm9ybVN5bmMoQWNjb3VudCwgQnVuZGxlLCBTdHJpbmcsCi0gICAgICAgICAqIENvbnRlbnRQcm92aWRlckNsaWVudCwgU3luY1Jlc3VsdCl9IG9jY3Vycy4gVGhpcyBidW5kbGUgaXMgY29waWVkIGludG8gdGhlIFN5bmNSZXF1ZXN0Ci0gICAgICAgICAqIHJldHVybmVkIGJ5IHtAbGluayAjYnVpbGQoKX0uCisgICAgICAgICAqIFNwZWNpZnkgdGhlIHtAbGluayBTeW5jU2VydmljZX0gY29tcG9uZW50IGZvciB0aGlzIHN5bmMuIFRoaXMgaXMgbm90IHZhbGlkYXRlZCB1bnRpbAorICAgICAgICAgKiBzeW5jIHRpbWUgc28gcHJvdmlkaW5nIGFuIGluY29ycmVjdCBjb21wb25lbnQgbmFtZSBoZXJlIHdpbGwgbm90IGZhaWwuIENhbm5vdCBiZSB1c2VkCisgICAgICAgICAqIHdpdGgge0BsaW5rICNzZXRTeW5jQWRhcHRlcihBY2NvdW50IGFjY291bnQsIFN0cmluZyBhdXRob3JpdHkpfS4KKyAgICAgICAgICoKKyAgICAgICAgICogQHBhcmFtIGNuYW1lIENvbXBvbmVudE5hbWUgdG8gaWRlbnRpZnkgeW91ciBBbm9ueW1vdXMgc2VydmljZQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEJ1aWxkZXIgc2V0U3luY0FkYXB0ZXIoQ29tcG9uZW50TmFtZSBjbmFtZSkgeworICAgICAgICAgICAgaWYgKG1TeW5jVGFyZ2V0ICE9IFNZTkNfVEFSR0VUX1VOS05PV04pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJTeW5jIHRhcmdldCBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtU3luY1RhcmdldCA9IFNZTkNfVEFSR0VUX1NFUlZJQ0U7CisgICAgICAgICAgICBtQ29tcG9uZW50TmFtZSA9IGNuYW1lOworICAgICAgICAgICAgbUFjY291bnQgPSBudWxsOworICAgICAgICAgICAgbUF1dGhvcml0eSA9IG51bGw7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZXZlbG9wZXItcHJvdmlkZWQgZXh0cmFzIGhhbmRlZCBiYWNrIHdoZW4gc3luYyBhY3R1YWxseSBvY2N1cnMuIFRoaXMgYnVuZGxlIGlzIGNvcGllZAorICAgICAgICAgKiBpbnRvIHRoZSBTeW5jUmVxdWVzdCByZXR1cm5lZCBieSB7QGxpbmsgI2J1aWxkKCl9LgogICAgICAgICAgKgogICAgICAgICAgKiBFeGFtcGxlOgogICAgICAgICAgKiA8cHJlPgpAQCAtNDM2LDcgKzQ4MCw3IEBACiAgICAgICAgICAqICAgICBCdW5kbGUgZXh0cmFzID0gbmV3IEJ1bmRsZSgpOwogICAgICAgICAgKiAgICAgZXh0cmFzLnNldFN0cmluZygiZGF0YSIsIHN5bmNEYXRhKTsKICAgICAgICAgICogICAgIGJ1aWxkZXIuc2V0RXh0cmFzKGV4dHJhcyk7Ci0gICAgICAgICAqICAgICBDb250ZW50UmVzb2x2ZXIuc3luYyhidWlsZGVyLmJ1aWxkKCkpOyAvLyBFYWNoIHN5bmMoKSByZXF1ZXN0IGlzIGZvciBhIHVuaXF1ZSBzeW5jLgorICAgICAgICAgKiAgICAgQ29udGVudFJlc29sdmVyLnN5bmMoYnVpbGRlci5idWlsZCgpKTsgLy8gRWFjaCBzeW5jKCkgcmVxdWVzdCBjcmVhdGVzIGEgdW5pcXVlIHN5bmMuCiAgICAgICAgICAqICAgfQogICAgICAgICAgKiA8L3ByZT4KICAgICAgICAgICogT25seSB2YWx1ZXMgb2YgdGhlIGZvbGxvd2luZyB0eXBlcyBtYXkgYmUgdXNlZCBpbiB0aGUgZXh0cmFzIGJ1bmRsZToKQEAgLTQ3NywxMyArNTIxLDE5IEBACiAgICAgICAgIC8qKgogICAgICAgICAgKiBDb252ZW5pZW5jZSBmdW5jdGlvbiBmb3Igc2V0dGluZyB7QGxpbmsgQ29udGVudFJlc29sdmVyI1NZTkNfRVhUUkFTX0lHTk9SRV9TRVRUSU5HU30uCiAgICAgICAgICAqCi0gICAgICAgICAqIEEgc3luYyBjYW4gc3BlY2lmeSB0aGF0IHN5c3RlbSBzeW5jIHNldHRpbmdzIGJlIGlnbm9yZWQgKHVzZXIgaGFzIHR1cm5lZCBzeW5jIG9mZikuIE5vdAotICAgICAgICAgKiB2YWxpZCBmb3IgcGVyaW9kaWMgc3luYyBhbmQgd2lsbCB0aHJvdyBhbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGluCisgICAgICAgICAqIE5vdCB2YWxpZCBmb3IgcGVyaW9kaWMgc3luYyBhbmQgd2lsbCB0aHJvdyBhbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGluCiAgICAgICAgICAqIHtAbGluayAjYnVpbGQoKX0uCisgICAgICAgICAqIDxwPlRocm93cyA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGlmIGNhbGxlZCBhbmQKKyAgICAgICAgICoge0BsaW5rICNzZXREaXNhbGxvd01ldGVyZWQoYm9vbGVhbil9IGhhcyBiZWVuIHNldC4KKyAgICAgICAgICogCiAgICAgICAgICAqCiAgICAgICAgICAqIEBwYXJhbSBpZ25vcmVTZXR0aW5ncyB0cnVlIHRvIGlnbm9yZSB0aGUgc3luYyBhdXRvbWF0aWNhbGx5IHNldHRpbmdzLiBEZWZhdWx0IGZhbHNlLgogICAgICAgICAgKi8KICAgICAgICAgcHVibGljIEJ1aWxkZXIgc2V0SWdub3JlU2V0dGluZ3MoYm9vbGVhbiBpZ25vcmVTZXR0aW5ncykgeworICAgICAgICAgICAgaWYgKG1EaXNhbGxvd01ldGVyZWQgJiYgaWdub3JlU2V0dGluZ3MpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzZXRJZ25vcmVTZXR0aW5ncyh0cnVlKSBhZnRlciBoYXZpbmcgc3BlY2lmaWVkIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHN5bmMgc2V0dGluZ3Mgd2l0aCB0aGlzIGJ1aWxkZXIuIik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBtSWdub3JlU2V0dGluZ3MgPSBpZ25vcmVTZXR0aW5nczsKICAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgICB9CkBAIC00OTEsMTMgKzU0MSwxMyBAQAogICAgICAgICAvKioKICAgICAgICAgICogQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIHNldHRpbmcge0BsaW5rIENvbnRlbnRSZXNvbHZlciNTWU5DX0VYVFJBU19JR05PUkVfQkFDS09GRn0uCiAgICAgICAgICAqCi0gICAgICAgICAqIEZvcmNlIHRoZSBzeW5jIHNjaGVkdWxpbmcgcHJvY2VzcyB0byBpZ25vcmUgYW55IGJhY2stb2ZmIHRoYXQgd2FzIHRoZSByZXN1bHQgb2YgYSBmYWlsZWQKLSAgICAgICAgICogc3luYywgYXMgd2VsbCBhcyB0byBpbnZhbGlkYXRlIGFueSB7QGxpbmsgU3luY1Jlc3VsdCNkZWxheVVudGlsfSB2YWx1ZSB0aGF0IG1heSBoYXZlCi0gICAgICAgICAqIGJlZW4gc2V0IGJ5IHRoZSBhZGFwdGVyLiBTdWNjZXNzaXZlIGZhaWx1cmVzIHdpbGwgbm90IGhvbm9yIHRoaXMgZmxhZy4gTm90IHZhbGlkIGZvcgotICAgICAgICAgKiBwZXJpb2RpYyBzeW5jIGFuZCB3aWxsIHRocm93IGFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaW4KLSAgICAgICAgICoge0BsaW5rICNidWlsZCgpfS4KKyAgICAgICAgICogSWdub3JpbmcgYmFjay1vZmYgd2lsbCBmb3JjZSB0aGUgc3luYyBzY2hlZHVsaW5nIHByb2Nlc3MgdG8gaWdub3JlIGFueSBiYWNrLW9mZiB0aGF0IHdhcworICAgICAgICAgKiB0aGUgcmVzdWx0IG9mIGEgZmFpbGVkIHN5bmMsIGFzIHdlbGwgYXMgdG8gaW52YWxpZGF0ZSBhbnkge0BsaW5rIFN5bmNSZXN1bHQjZGVsYXlVbnRpbH0KKyAgICAgICAgICogdmFsdWUgdGhhdCBtYXkgaGF2ZSBiZWVuIHNldCBieSB0aGUgYWRhcHRlci4gU3VjY2Vzc2l2ZSBmYWlsdXJlcyB3aWxsIG5vdCBob25vciB0aGlzCisgICAgICAgICAqIGZsYWcuIE5vdCB2YWxpZCBmb3IgcGVyaW9kaWMgc3luYyBhbmQgd2lsbCB0aHJvdyBhbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+CisgICAgICAgICAqIGluIHtAbGluayAjYnVpbGQoKX0uCiAgICAgICAgICAqCi0gICAgICAgICAqIEBwYXJhbSBpZ25vcmVCYWNrb2ZmIGlnbm9yZSBiYWNrLW9mZiBzZXR0aW5ncy4gRGVmYXVsdCBmYWxzZS4KKyAgICAgICAgICogQHBhcmFtIGlnbm9yZUJhY2tvZmYgaWdub3JlIGJhY2sgb2ZmIHNldHRpbmdzLiBEZWZhdWx0IGZhbHNlLgogICAgICAgICAgKi8KICAgICAgICAgcHVibGljIEJ1aWxkZXIgc2V0SWdub3JlQmFja29mZihib29sZWFuIGlnbm9yZUJhY2tvZmYpIHsKICAgICAgICAgICAgIG1JZ25vcmVCYWNrb2ZmID0gaWdub3JlQmFja29mZjsKQEAgLTUwNyw5ICs1NTcsOCBAQAogICAgICAgICAvKioKICAgICAgICAgICogQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIHNldHRpbmcge0BsaW5rIENvbnRlbnRSZXNvbHZlciNTWU5DX0VYVFJBU19NQU5VQUx9LgogICAgICAgICAgKgotICAgICAgICAgKiBBIG1hbnVhbCBzeW5jIGlzIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvIGNhbGxpbmcge0BsaW5rICNzZXRJZ25vcmVCYWNrb2ZmKGJvb2xlYW4pfQotICAgICAgICAgKiBhbmQge0BsaW5rICNzZXRJZ25vcmVTZXR0aW5ncyhib29sZWFuKX0uIE5vdCB2YWxpZCBmb3IgcGVyaW9kaWMgc3luYyBhbmQgd2lsbCB0aHJvdyBhbgotICAgICAgICAgKiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGluIHtAbGluayAjYnVpbGQoKX0uCisgICAgICAgICAqIE5vdCB2YWxpZCBmb3IgcGVyaW9kaWMgc3luYyBhbmQgd2lsbCB0aHJvdyBhbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGluCisgICAgICAgICAqIHtAbGluayAjYnVpbGQoKX0uCiAgICAgICAgICAqCiAgICAgICAgICAqIEBwYXJhbSBpc01hbnVhbCBVc2VyLWluaXRpYXRlZCBzeW5jIG9yIG5vdC4gRGVmYXVsdCBmYWxzZS4KICAgICAgICAgICovCkBAIC01MTksNyArNTY4LDcgQEAKICAgICAgICAgfQogCiAgICAgICAgIC8qKgotICAgICAgICAgKiBBbiBleHBlZGl0ZWQgc3luYyBydW5zIGltbWVkaWF0ZWx5IGFuZCB3aWxsIHByZWVtcHQgYW5vdGhlciBub24tZXhwZWRpdGVkIHJ1bm5pbmcgc3luYy4KKyAgICAgICAgICogQW4gZXhwZWRpdGVkIHN5bmMgcnVucyBpbW1lZGlhdGVseSBhbmQgY2FuIHByZWVtcHQgb3RoZXIgbm9uLWV4cGVkaXRlZCBydW5uaW5nIHN5bmNzLgogICAgICAgICAgKgogICAgICAgICAgKiBOb3QgdmFsaWQgZm9yIHBlcmlvZGljIHN5bmMgYW5kIHdpbGwgdGhyb3cgYW4gPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiBpbgogICAgICAgICAgKiB7QGxpbmsgI2J1aWxkKCl9LgpAQCAtNTMyLDcgKzU4MSw2IEBACiAgICAgICAgIH0KIAogICAgICAgICAvKioKLSAgICAgICAgICoge0BoaWRlfQogICAgICAgICAgKiBAcGFyYW0gcHJpb3JpdHkgdGhlIHByaW9yaXR5IG9mIHRoaXMgcmVxdWVzdCBhbW9uZyBhbGwgcmVxdWVzdHMgZnJvbSB0aGUgY2FsbGluZyBhcHAuCiAgICAgICAgICAqIFJhbmdlIG9mIFstMiwyXSBzaW1pbGFyIHRvIGhvdyB0aGlzIGlzIGRvbmUgd2l0aCBub3RpZmljYXRpb25zLgogICAgICAgICAgKi8KQEAgLTU1MiwxMSArNjAwLDExIEBACiAgICAgICAgICAqICAgICAgICAgYnVpbGRlci4KICAgICAgICAgICovCiAgICAgICAgIHB1YmxpYyBTeW5jUmVxdWVzdCBidWlsZCgpIHsKKyAgICAgICAgICAgIC8vIFZhbGlkYXRlIHRoZSBleHRyYXMgYnVuZGxlCisgICAgICAgICAgICBDb250ZW50UmVzb2x2ZXIudmFsaWRhdGVTeW5jRXh0cmFzQnVuZGxlKG1DdXN0b21FeHRyYXMpOwogICAgICAgICAgICAgaWYgKG1DdXN0b21FeHRyYXMgPT0gbnVsbCkgewogICAgICAgICAgICAgICAgIG1DdXN0b21FeHRyYXMgPSBuZXcgQnVuZGxlKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgZXh0cmFzIGJ1bmRsZQotICAgICAgICAgICAgQ29udGVudFJlc29sdmVyLnZhbGlkYXRlU3luY0V4dHJhc0J1bmRsZShtQ3VzdG9tRXh0cmFzKTsKICAgICAgICAgICAgIC8vIENvbWJpbmUgYnVpbGRlciBleHRyYSBmbGFncyBpbnRvIHRoZSBjb25maWcgYnVuZGxlLgogICAgICAgICAgICAgbVN5bmNDb25maWdFeHRyYXMgPSBuZXcgQnVuZGxlKCk7CiAgICAgICAgICAgICBpZiAobUlnbm9yZUJhY2tvZmYpIHsKQEAgLTU3NSw1MSArNjIzLDMzIEBACiAgICAgICAgICAgICAgICAgbVN5bmNDb25maWdFeHRyYXMucHV0Qm9vbGVhbihDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfRVhQRURJVEVELCB0cnVlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChtSXNNYW51YWwpIHsKLSAgICAgICAgICAgICAgICBtU3luY0NvbmZpZ0V4dHJhcy5wdXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19NQU5VQUwsIHRydWUpOworICAgICAgICAgICAgICAgIG1TeW5jQ29uZmlnRXh0cmFzLnB1dEJvb2xlYW4oQ29udGVudFJlc29sdmVyLlNZTkNfRVhUUkFTX0lHTk9SRV9CQUNLT0ZGLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBtU3luY0NvbmZpZ0V4dHJhcy5wdXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19JR05PUkVfU0VUVElOR1MsIHRydWUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbVN5bmNDb25maWdFeHRyYXMucHV0TG9uZyhDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfRVhQRUNURURfVVBMT0FELCBtVHhCeXRlcyk7CiAgICAgICAgICAgICBtU3luY0NvbmZpZ0V4dHJhcy5wdXRMb25nKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19FWFBFQ1RFRF9ET1dOTE9BRCwgbVJ4Qnl0ZXMpOwogICAgICAgICAgICAgbVN5bmNDb25maWdFeHRyYXMucHV0SW50KENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19QUklPUklUWSwgbVByaW9yaXR5KTsKICAgICAgICAgICAgIGlmIChtU3luY1R5cGUgPT0gU1lOQ19UWVBFX1BFUklPRElDKSB7CiAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHBlcmlvZGljIHN5bmMgZW5zdXJlIHRoYW4gaW52YWxpZCBleHRyYXMgd2VyZSBub3Qgc2V0LgotICAgICAgICAgICAgICAgIHZhbGlkYXRlUGVyaW9kaWNFeHRyYXMobUN1c3RvbUV4dHJhcyk7Ci0gICAgICAgICAgICAgICAgdmFsaWRhdGVQZXJpb2RpY0V4dHJhcyhtU3luY0NvbmZpZ0V4dHJhcyk7Ci0gICAgICAgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgYWNjb3VudCBhbmQgcHJvdmlkZXIgYXJlIG5vdCBudWxsLgotICAgICAgICAgICAgICAgIGlmIChtQWNjb3VudCA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkFjY291bnQgbXVzdCBub3QgYmUgbnVsbCBmb3IgcGVyaW9kaWMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHN5bmMuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChtQXV0aG9yaXR5ID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQXV0aG9yaXR5IG11c3Qgbm90IGJlIG51bGwgZm9yIHBlcmlvZGljIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBzeW5jLiIpOworICAgICAgICAgICAgICAgIGlmIChDb250ZW50UmVzb2x2ZXIuaW52YWxpZFBlcmlvZGljRXh0cmFzKG1DdXN0b21FeHRyYXMpIHx8IAorICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFJlc29sdmVyLmludmFsaWRQZXJpb2RpY0V4dHJhcyhtU3luY0NvbmZpZ0V4dHJhcykpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBleHRyYXMgd2VyZSBzZXQiKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKG1TeW5jVHlwZSA9PSBTWU5DX1RZUEVfVU5LTk9XTikgewogICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk11c3QgY2FsbCBlaXRoZXIgc3luY09uY2UoKSBvciBzeW5jUGVyaW9kaWMoKSIpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1TeW5jVGFyZ2V0ID09IFNZTkNfVEFSR0VUX1NFUlZJQ0UpIHsKKyAgICAgICAgICAgICAgICBpZiAobVN5bmNDb25maWdFeHRyYXMuZ2V0Qm9vbGVhbihDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfSU5JVElBTElaRSwgZmFsc2UpKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbm5vdCBzcGVjaWZ5IGFuIGluaXRpYWxpc2F0aW9uIHN5bmMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHRoYXQgdGFyZ2V0cyBhIHNlcnZpY2UuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICAgICAgLy8gRW5zdXJlIHRoYXQgYSB0YXJnZXQgZm9yIHRoZSBzeW5jIGhhcyBiZWVuIHNldC4KICAgICAgICAgICAgIGlmIChtU3luY1RhcmdldCA9PSBTWU5DX1RBUkdFVF9VTktOT1dOKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTXVzdCBzcGVjaWZ5IGFuIGFkYXB0ZXIgd2l0aCAiCi0gICAgICAgICAgICAgICAgICAgICAgICArICJzZXRTeW5jQWRhcHRlcihBY2NvdW50LCBTdHJpbmciKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJNdXN0IHNwZWNpZnkgYW4gYWRhcHRlciB3aXRoIG9uZSBvZiIKKyAgICAgICAgICAgICAgICAgICAgKyAic2V0U3luY0FkYXB0ZXIoQ29tcG9uZW50TmFtZSkgb3Igc2V0U3luY0FkYXB0ZXIoQWNjb3VudCwgU3RyaW5nIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gbmV3IFN5bmNSZXF1ZXN0KHRoaXMpOwogICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIEhlbHBlciBmdW5jdGlvbiB0byB0aHJvdyBhbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGlmIGFueSBpbGxlZ2FsCi0gICAgICAgICAqIGV4dHJhcyB3ZXJlIHNldCBmb3IgYSBwZXJpb2RpYyBzeW5jLgotICAgICAgICAgKgotICAgICAgICAgKiBAcGFyYW0gZXh0cmFzIGJ1bmRsZSB0byB2YWxpZGF0ZS4KLSAgICAgICAgICovCi0gICAgICAgIHByaXZhdGUgdm9pZCB2YWxpZGF0ZVBlcmlvZGljRXh0cmFzKEJ1bmRsZSBleHRyYXMpIHsKLSAgICAgICAgICAgIGlmIChleHRyYXMuZ2V0Qm9vbGVhbihDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfTUFOVUFMLCBmYWxzZSkKLSAgICAgICAgICAgICAgICAgICAgfHwgZXh0cmFzLmdldEJvb2xlYW4oQ29udGVudFJlc29sdmVyLlNZTkNfRVhUUkFTX0RPX05PVF9SRVRSWSwgZmFsc2UpCi0gICAgICAgICAgICAgICAgICAgIHx8IGV4dHJhcy5nZXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19JR05PUkVfQkFDS09GRiwgZmFsc2UpCi0gICAgICAgICAgICAgICAgICAgIHx8IGV4dHJhcy5nZXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19JR05PUkVfU0VUVElOR1MsIGZhbHNlKQotICAgICAgICAgICAgICAgICAgICB8fCBleHRyYXMuZ2V0Qm9vbGVhbihDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfSU5JVElBTElaRSwgZmFsc2UpCi0gICAgICAgICAgICAgICAgICAgIHx8IGV4dHJhcy5nZXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19GT1JDRSwgZmFsc2UpCi0gICAgICAgICAgICAgICAgICAgIHx8IGV4dHJhcy5nZXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19FWFBFRElURUQsIGZhbHNlKSkgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgZXh0cmFzIHdlcmUgc2V0Iik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9CisgICAgfSAgIAogfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9TeW5jU2VydmljZS5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9TeW5jU2VydmljZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2ZmM4N2YKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L1N5bmNTZXJ2aWNlLmphdmEKQEAgLTAsMCArMSwyMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuY29udGVudDsKKworaW1wb3J0IGFuZHJvaWQuYXBwLlNlcnZpY2U7CitpbXBvcnQgYW5kcm9pZC5vcy5CdW5kbGU7CitpbXBvcnQgYW5kcm9pZC5vcy5JQmluZGVyOworaW1wb3J0IGFuZHJvaWQub3MuUHJvY2VzczsKK2ltcG9ydCBhbmRyb2lkLm9zLlRyYWNlOworaW1wb3J0IGFuZHJvaWQudXRpbC5BcnJheU1hcDsKK2ltcG9ydCBhbmRyb2lkLnV0aWwuU3BhcnNlQXJyYXk7CitpbXBvcnQgYW5kcm9pZC51dGlsLkxvZzsKKworaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLmFubm90YXRpb25zLkd1YXJkZWRCeTsKKworLyoqCisgKiBTaW1wbGlmaWVkIEBsaW5rIGFuZHJvaWQuY29udGVudC5BYnN0cmFjdFRocmVhZGVkU3luY0FkYXB0ZXIuIEZvbGRzIHRoYXQKKyAqIGJlaGF2aW91ciBpbnRvIGEgc2VydmljZSB0byB3aGljaCB0aGUgc3lzdGVtIGNhbiBiaW5kIHdoZW4gcmVxdWVzdGluZyBhbgorICogYW5vbnltb3VzIChwcm92aWRlcmxlc3MvYWNjb3VudGxlc3MpIHN5bmMuCisgKiA8cD4KKyAqIEluIG9yZGVyIHRvIHBlcmZvcm0gYW4gYW5vbnltb3VzIHN5bmMgb3BlcmF0aW9uIHlvdSBtdXN0IGV4dGVuZCB0aGlzIHNlcnZpY2UsIGltcGxlbWVudGluZyB0aGUKKyAqIGFic3RyYWN0IG1ldGhvZHMuIFRoaXMgc2VydmljZSBtdXN0IGJlIGRlY2xhcmVkIGluIHRoZSBhcHBsaWNhdGlvbidzIG1hbmlmZXN0IGFzIHVzdWFsLiBZb3UKKyAqIGNhbiB1c2UgdGhpcyBzZXJ2aWNlIGZvciBvdGhlciB3b3JrLCBob3dldmVyIHlvdSA8Yj4gbXVzdCBub3QgPC9iPiBvdmVycmlkZSB0aGUgb25CaW5kKCkgbWV0aG9kCisgKiB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UncmUgZG9pbmcsIHdoaWNoIGxpbWl0cyB0aGUgdXNlZnVsbmVzcyBvZiB0aGlzIHNlcnZpY2UgZm9yIG90aGVyIHdvcmsuCisgKiA8cD5BIHtAbGluayBTeW5jU2VydmljZX0gY2FuIGVpdGhlciBiZSBhY3RpdmUgb3IgaW5hY3RpdmUuIERpZmZlcmVudCB0byBhbgorICoge0BsaW5rIEFic3RyYWN0VGhyZWFkZWRTeW5jQWRhcHRlcn0sIHRoZXJlIGlzIG5vCisgKiB7QGxpbmsgQ29udGVudFJlc29sdmVyI3NldFN5bmNBdXRvbWF0aWNhbGx5KGFuZHJvaWQuYWNjb3VudHMuQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgcHJvdmlkZXIsIGJvb2xlYW4gc3luYyl9LAorICogYXMgd2VsbCBhcyBubyBjb25jZXB0IG9mIGluaXRpYWxpc2F0aW9uICh5b3UgY2FuIGhhbmRsZSB5b3VyIG93biBpZiBuZWVkZWQpLgorICoKKyAqIDxwcmU+CisgKiAmbHQ7c2VydmljZSBhbmRyb2lkOm5hbWU9Ii5NeVN5bmNTZXJ2aWNlIi8mZ3Q7CisgKiA8L3ByZT4KKyAqIExpa2UgQGxpbmsgYW5kcm9pZC5jb250ZW50LkFic3RyYWN0VGhyZWFkZWRTeW5jQWRhcHRlciB0aGlzIHNlcnZpY2Ugc3VwcG9ydHMKKyAqIG11bHRpcGxlIHN5bmNzIGF0IHRoZSBzYW1lIHRpbWUuIEVhY2ggaW5jb21pbmcgc3RhcnRTeW5jKCkgd2l0aCBhIHVuaXF1ZSB0YWcKKyAqIHdpbGwgc3Bhd24gYSB0aHJlYWQgdG8gZG8gdGhlIHdvcmsgb2YgdGhhdCBzeW5jLiBJZiBzdGFydFN5bmMoKSBpcyBjYWxsZWQKKyAqIHdpdGggYSB0YWcgdGhhdCBhbHJlYWR5IGV4aXN0cywgYSBTeW5jUmVzdWx0LkFMUkVBRFlfSU5fUFJPR1JFU1MgaXMgcmV0dXJuZWQuCisgKiBSZW1lbWJlciB0aGF0IHlvdXIgc2VydmljZSB3aWxsIHNwYXduIG11bHRpcGxlIHRocmVhZHMgaWYgeW91IHNjaGVkdWxlIG11bHRpcGxlIHN5bmNzCisgKiBhdCBvbmNlLCBzbyBpZiB5b3UgbXV0YXRlIGxvY2FsIG9iamVjdHMgeW91IG11c3QgZW5zdXJlIHN5bmNocm9uaXphdGlvbi4KKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIFN5bmNTZXJ2aWNlIGV4dGVuZHMgU2VydmljZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRBRyA9ICJTeW5jU2VydmljZSI7CisKKyAgICBwcml2YXRlIGZpbmFsIFN5bmNBZGFwdGVySW1wbCBtU3luY0FkYXB0ZXIgPSBuZXcgU3luY0FkYXB0ZXJJbXBsKCk7CisKKyAgICAvKiogS2VlcCB0cmFjayBvZiBvbi1nb2luZyBzeW5jcywga2V5ZWQgYnkgYnVuZGxlLiAqLworICAgIEBHdWFyZGVkQnkoIm1TeW5jVGhyZWFkTG9jayIpCisgICAgcHJpdmF0ZSBmaW5hbCBTcGFyc2VBcnJheTxTeW5jVGhyZWFkPgorICAgICAgICAgICAgbVN5bmNUaHJlYWRzID0gbmV3IFNwYXJzZUFycmF5PFN5bmNUaHJlYWQ+KCk7CisgICAgLyoqIExvY2sgb2JqZWN0IGZvciBhY2Nlc3NpbmcgdGhlIFN5bmNUaHJlYWRzIEhhc2hNYXAuICovCisgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3QgbVN5bmNUaHJlYWRMb2NrID0gbmV3IE9iamVjdCgpOworICAgIC8qKgorICAgICAqIERlZmF1bHQga2V5IGZvciBpZiB0aGlzIHN5bmMgc2VydmljZSBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIG9wZXJhdGlvbnMuIEN1cnJlbnRseSBub3QKKyAgICAgKiBzdXJlIGlmIG51bGwga2V5cyB3aWxsIG1ha2UgaXQgaW50byB0aGUgQXJyYXlNYXAgZm9yIEtMUCwgc28ga2VlcGluZyBvdXIgZGVmYXVsdCBmb3Igbm93LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBLRVlfREVGQVVMVCA9IDA7CisgICAgLyoqIElkZW50aWZpZXIgZm9yIHRoaXMgc3luYyBzZXJ2aWNlLiAqLworICAgIHByaXZhdGUgQ29tcG9uZW50TmFtZSBtU2VydmljZUNvbXBvbmVudDsKKworICAgIC8qKiB7QGhpZGV9ICovCisgICAgcHVibGljIElCaW5kZXIgb25CaW5kKEludGVudCBpbnRlbnQpIHsKKyAgICAgICAgbVNlcnZpY2VDb21wb25lbnQgPSBuZXcgQ29tcG9uZW50TmFtZSh0aGlzLCBnZXRDbGFzcygpKTsKKyAgICAgICAgcmV0dXJuIG1TeW5jQWRhcHRlci5hc0JpbmRlcigpOworICAgIH0KKworICAgIC8qKiB7QGhpZGV9ICovCisgICAgcHJpdmF0ZSBjbGFzcyBTeW5jQWRhcHRlckltcGwgZXh0ZW5kcyBJU3luY1NlcnZpY2VBZGFwdGVyLlN0dWIgeworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgc3RhcnRTeW5jKElTeW5jQ29udGV4dCBzeW5jQ29udGV4dCwgQnVuZGxlIGV4dHJhcykgeworICAgICAgICAgICAgLy8gV3JhcCB0aGUgcHJvdmlkZWQgU3luYyBDb250ZXh0IGJlY2F1c2UgaXQgbWF5IGdvIGF3YXkgYnkgdGhlIHRpbWUKKyAgICAgICAgICAgIC8vIHdlIGNhbGwgaXQuCisgICAgICAgICAgICBmaW5hbCBTeW5jQ29udGV4dCBzeW5jQ29udGV4dENsaWVudCA9IG5ldyBTeW5jQ29udGV4dChzeW5jQ29udGV4dCk7CisgICAgICAgICAgICBib29sZWFuIGFscmVhZHlJblByb2dyZXNzID0gZmFsc2U7CisgICAgICAgICAgICBmaW5hbCBpbnQgZXh0cmFzQXNLZXkgPSBleHRyYXNUb0tleShleHRyYXMpOworICAgICAgICAgICAgc3luY2hyb25pemVkIChtU3luY1RocmVhZExvY2spIHsKKyAgICAgICAgICAgICAgICBpZiAobVN5bmNUaHJlYWRzLmdldChleHRyYXNBc0tleSkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgInN0YXJ0aW5nIHN5bmMgZm9yIDogIiArIG1TZXJ2aWNlQ29tcG9uZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBTdGFydCBzeW5jLgorICAgICAgICAgICAgICAgICAgICBTeW5jVGhyZWFkIHN5bmNUaHJlYWQgPSBuZXcgU3luY1RocmVhZChzeW5jQ29udGV4dENsaWVudCwgZXh0cmFzKTsKKyAgICAgICAgICAgICAgICAgICAgbVN5bmNUaHJlYWRzLnB1dChleHRyYXNBc0tleSwgc3luY1RocmVhZCk7CisgICAgICAgICAgICAgICAgICAgIHN5bmNUaHJlYWQuc3RhcnQoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCB3YW50IHRvIGNhbGwgYmFjayB0byBTeW5jTWFuYWdlciB3aGlsZSBzdGlsbAorICAgICAgICAgICAgICAgICAgICAvLyBob2xkaW5nIGxvY2suCisgICAgICAgICAgICAgICAgICAgIGFscmVhZHlJblByb2dyZXNzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYWxyZWFkeUluUHJvZ3Jlc3MpIHsKKyAgICAgICAgICAgICAgICBzeW5jQ29udGV4dENsaWVudC5vbkZpbmlzaGVkKFN5bmNSZXN1bHQuQUxSRUFEWV9JTl9QUk9HUkVTUyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVXNlZCBieSB0aGUgU00gdG8gY2FuY2VsIGEgc3BlY2lmaWMgc3luYyB1c2luZyB0aGUKKyAgICAgICAgICogY29tLmFuZHJvaWQuc2VydmVyLmNvbnRlbnQuU3luY01hbmFnZXIuQWN0aXZlU3luY0NvbnRleHQgYXMgYSBoYW5kbGUuCisgICAgICAgICAqLworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgY2FuY2VsU3luYyhJU3luY0NvbnRleHQgc3luY0NvbnRleHQpIHsKKyAgICAgICAgICAgIFN5bmNUaHJlYWQgcnVubmluZ1N5bmMgPSBudWxsOworICAgICAgICAgICAgc3luY2hyb25pemVkIChtU3luY1RocmVhZExvY2spIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1TeW5jVGhyZWFkcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBTeW5jVGhyZWFkIHRocmVhZCA9IG1TeW5jVGhyZWFkcy52YWx1ZUF0KGkpOworICAgICAgICAgICAgICAgICAgICBpZiAodGhyZWFkLm1TeW5jQ29udGV4dC5nZXRTeW5jQ29udGV4dEJpbmRlcigpID09IHN5bmNDb250ZXh0LmFzQmluZGVyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bm5pbmdTeW5jID0gdGhyZWFkOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocnVubmluZ1N5bmMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJ1bm5pbmdTeW5jLmludGVycnVwdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogCisgICAgICogQHBhcmFtIGV4dHJhcyBCdW5kbGUgZm9yIHdoaWNoIHRvIGNvbXB1dGUgaGFzaAorICAgICAqIEByZXR1cm4gYW4gaW50ZWdlciBoYXNoIHRoYXQgaXMgZXF1YWwgdG8gdGhhdCBvZiBhbm90aGVyIGJ1bmRsZSBpZiB0aGV5IGJvdGggY29udGFpbiB0aGUKKyAgICAgKiBzYW1lIGtleSAtPiB2YWx1ZSBtYXBwaW5ncywgaG93ZXZlciwgbm90IG5lY2Vzc2FyaWx5IGluIG9yZGVyLgorICAgICAqIEJhc2VkIG9uIHRoZSB0b1N0cmluZygpIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSBtYXBwZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZXh0cmFzVG9LZXkoQnVuZGxlIGV4dHJhcykgeworICAgICAgICBpbnQgaGFzaCA9IEtFWV9ERUZBVUxUOyAvLyBFbXB0eSBidW5kbGUsIG9yIG5vIHBhcmFsbGVsIG9wZXJhdGlvbnMgZW5hYmxlZC4KKyAgICAgICAgaWYgKHBhcmFsbGVsU3luY3NFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIGZvciAoU3RyaW5nIGtleSA6IGV4dHJhcy5rZXlTZXQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBtYXBwaW5nID0ga2V5ICsgIiAiICsgZXh0cmFzLmdldChrZXkpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgaGFzaCArPSBtYXBwaW5nLmhhc2hDb2RlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGhhc2g7CisgICAgfQorCisgICAgLyoqCisgICAgICoge0BoaWRlfQorICAgICAqIFNpbWlsYXIgdG8ge0BsaW5rIGFuZHJvaWQuY29udGVudC5BYnN0cmFjdFRocmVhZGVkU3luY0FkYXB0ZXIuU3luY1RocmVhZH0uIEhvd2V2ZXIgd2hpbGUKKyAgICAgKiB0aGUgQVRTQSBjb25zaWRlcnMgYW4gYWxyZWFkeSBpbi1wcm9ncmVzcyBzeW5jIHRvIGJlIGlmIHRoZSBhY2NvdW50IHByb3ZpZGVkIGlzIGN1cnJlbnRseQorICAgICAqIHN5bmNpbmcsIHRoaXMgYW5vbnltb3VzIHN5bmMgaGFzIG5vIG5vdGlvbiBvZiBhY2NvdW50IGFuZCBjb25zaWRlcnMgYSBzeW5jIHVuaXF1ZSBpZiB0aGUKKyAgICAgKiBwcm92aWRlZCBidW5kbGUgaXMgZGlmZmVyZW50LgorICAgICAqLworICAgIHByaXZhdGUgY2xhc3MgU3luY1RocmVhZCBleHRlbmRzIFRocmVhZCB7CisgICAgICAgIHByaXZhdGUgZmluYWwgU3luY0NvbnRleHQgbVN5bmNDb250ZXh0OworICAgICAgICBwcml2YXRlIGZpbmFsIEJ1bmRsZSBtRXh0cmFzOworICAgICAgICBwcml2YXRlIGZpbmFsIGludCBtVGhyZWFkc0tleTsKKworICAgICAgICBwdWJsaWMgU3luY1RocmVhZChTeW5jQ29udGV4dCBzeW5jQ29udGV4dCwgQnVuZGxlIGV4dHJhcykgeworICAgICAgICAgICAgbVN5bmNDb250ZXh0ID0gc3luY0NvbnRleHQ7CisgICAgICAgICAgICBtRXh0cmFzID0gZXh0cmFzOworICAgICAgICAgICAgbVRocmVhZHNLZXkgPSBleHRyYXNUb0tleShleHRyYXMpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgIFByb2Nlc3Muc2V0VGhyZWFkUHJpb3JpdHkoUHJvY2Vzcy5USFJFQURfUFJJT1JJVFlfQkFDS0dST1VORCk7CisKKyAgICAgICAgICAgIFRyYWNlLnRyYWNlQmVnaW4oVHJhY2UuVFJBQ0VfVEFHX1NZTkNfTUFOQUdFUiwgZ2V0QXBwbGljYXRpb24oKS5nZXRQYWNrYWdlTmFtZSgpKTsKKworICAgICAgICAgICAgU3luY1Jlc3VsdCBzeW5jUmVzdWx0ID0gbmV3IFN5bmNSZXN1bHQoKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKGlzQ2FuY2VsbGVkKCkpIHJldHVybjsKKyAgICAgICAgICAgICAgICAvLyBSdW4gdGhlIHN5bmMuCisgICAgICAgICAgICAgICAgU3luY1NlcnZpY2UudGhpcy5vblBlcmZvcm1TeW5jKG1FeHRyYXMsIHN5bmNSZXN1bHQpOworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICBUcmFjZS50cmFjZUVuZChUcmFjZS5UUkFDRV9UQUdfU1lOQ19NQU5BR0VSKTsKKyAgICAgICAgICAgICAgICBpZiAoIWlzQ2FuY2VsbGVkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbVN5bmNDb250ZXh0Lm9uRmluaXNoZWQoc3luY1Jlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIFN5bmNocm9uaXplIHNvIHRoYXQgdGhlIGFzc2lnbm1lbnQgd2lsbCBiZSBzZWVuIGJ5IG90aGVyCisgICAgICAgICAgICAgICAgLy8gdGhyZWFkcyB0aGF0IGFsc28gc3luY2hyb25pemUgYWNjZXNzZXMgdG8gbVN5bmNUaHJlYWRzLgorICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAobVN5bmNUaHJlYWRMb2NrKSB7CisgICAgICAgICAgICAgICAgICAgIG1TeW5jVGhyZWFkcy5yZW1vdmUobVRocmVhZHNLZXkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc0NhbmNlbGxlZCgpIHsKKyAgICAgICAgICAgIHJldHVybiBUaHJlYWQuY3VycmVudFRocmVhZCgpLmlzSW50ZXJydXB0ZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYXRlIGFuIGFub255bW91cyBzeW5jIHVzaW5nIHRoaXMgc2VydmljZS4gU3luY0FkYXB0ZXItc3BlY2lmaWMKKyAgICAgKiBwYXJhbWV0ZXJzIG1heSBiZSBzcGVjaWZpZWQgaW4gZXh0cmFzLCB3aGljaCBpcyBndWFyYW50ZWVkIHRvIG5vdCBiZQorICAgICAqIG51bGwuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgb25QZXJmb3JtU3luYyhCdW5kbGUgZXh0cmFzLCBTeW5jUmVzdWx0IHN5bmNSZXN1bHQpOworCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBpbmRpY2F0ZWQgd2hldGhlciB5b3Ugd2FudCB0byBzdXBwb3J0IHBhcmFsbGVsIHN5bmNzLgorICAgICAqIDxwPklmIHlvdSBvdmVycmlkZSBhbmQgcmV0dXJuIHRydWUgbXVsdGlwbGUgdGhyZWFkcyB3aWxsIGJlIHNwYXduZWQgd2l0aGluIHlvdXIgU2VydmljZSB0bworICAgICAqIGhhbmRsZSBlYWNoIGNvbmN1cnJlbnQgc3luYyByZXF1ZXN0LgorICAgICAqCisgICAgICogQHJldHVybiBmYWxzZSB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgc2VydmljZSBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIG9wZXJhdGlvbnMgYnkgZGVmYXVsdC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBwYXJhbGxlbFN5bmNzRW5hYmxlZCgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvcG0vQWN0aXZpdHlJbmZvLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L3BtL0FjdGl2aXR5SW5mby5qYXZhCmluZGV4IGI4YWMzYmYuLjQwMjc1ZDggMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvcG0vQWN0aXZpdHlJbmZvLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9wbS9BY3Rpdml0eUluZm8uamF2YQpAQCAtMTYsMTEgKzE2LDE1IEBACiAKIHBhY2thZ2UgYW5kcm9pZC5jb250ZW50LnBtOwogCitpbXBvcnQgYW5kcm9pZC5hbm5vdGF0aW9uLkludERlZjsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLkNvbmZpZ3VyYXRpb247CiBpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWw7CiBpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWxhYmxlOwogaW1wb3J0IGFuZHJvaWQudXRpbC5QcmludGVyOwogCitpbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uOworaW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvblBvbGljeTsKKwogLyoqCiAgKiBJbmZvcm1hdGlvbiB5b3UgY2FuIHJldHJpZXZlIGFib3V0IGEgcGFydGljdWxhciBhcHBsaWNhdGlvbgogICogYWN0aXZpdHkgb3IgcmVjZWl2ZXIuIFRoaXMgY29ycmVzcG9uZHMgdG8gaW5mb3JtYXRpb24gY29sbGVjdGVkCkBAIC0yMTIsNiArMjE2LDI4IEBACiAgICAgICovCiAgICAgcHVibGljIGludCBmbGFnczsKIAorICAgIC8qKiBAaGlkZSAqLworICAgIEBJbnREZWYoeworICAgICAgICAgICAgU0NSRUVOX09SSUVOVEFUSU9OX1VOU1BFQ0lGSUVELAorICAgICAgICAgICAgU0NSRUVOX09SSUVOVEFUSU9OX0xBTkRTQ0FQRSwKKyAgICAgICAgICAgIFNDUkVFTl9PUklFTlRBVElPTl9QT1JUUkFJVCwKKyAgICAgICAgICAgIFNDUkVFTl9PUklFTlRBVElPTl9VU0VSLAorICAgICAgICAgICAgU0NSRUVOX09SSUVOVEFUSU9OX0JFSElORCwKKyAgICAgICAgICAgIFNDUkVFTl9PUklFTlRBVElPTl9TRU5TT1IsCisgICAgICAgICAgICBTQ1JFRU5fT1JJRU5UQVRJT05fTk9TRU5TT1IsCisgICAgICAgICAgICBTQ1JFRU5fT1JJRU5UQVRJT05fU0VOU09SX0xBTkRTQ0FQRSwKKyAgICAgICAgICAgIFNDUkVFTl9PUklFTlRBVElPTl9TRU5TT1JfUE9SVFJBSVQsCisgICAgICAgICAgICBTQ1JFRU5fT1JJRU5UQVRJT05fUkVWRVJTRV9MQU5EU0NBUEUsCisgICAgICAgICAgICBTQ1JFRU5fT1JJRU5UQVRJT05fUkVWRVJTRV9QT1JUUkFJVCwKKyAgICAgICAgICAgIFNDUkVFTl9PUklFTlRBVElPTl9GVUxMX1NFTlNPUiwKKyAgICAgICAgICAgIFNDUkVFTl9PUklFTlRBVElPTl9VU0VSX0xBTkRTQ0FQRSwKKyAgICAgICAgICAgIFNDUkVFTl9PUklFTlRBVElPTl9VU0VSX1BPUlRSQUlULAorICAgICAgICAgICAgU0NSRUVOX09SSUVOVEFUSU9OX0ZVTExfVVNFUiwKKyAgICAgICAgICAgIFNDUkVFTl9PUklFTlRBVElPTl9MT0NLRUQKKyAgICB9KQorICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlNPVVJDRSkKKyAgICBwdWJsaWMgQGludGVyZmFjZSBTY3JlZW5PcmllbnRhdGlvbiB7fQorCiAgICAgLyoqCiAgICAgICogQ29uc3RhbnQgY29ycmVzcG9uZGluZyB0byA8Y29kZT51bnNwZWNpZmllZDwvY29kZT4gaW4KICAgICAgKiB0aGUge0BsaW5rIGFuZHJvaWQuUi5hdHRyI3NjcmVlbk9yaWVudGF0aW9ufSBhdHRyaWJ1dGUuCkBAIC0zMjMsNiArMzQ5LDcgQEAKICAgICAgKiB7QGxpbmsgI1NDUkVFTl9PUklFTlRBVElPTl9GVUxMX1VTRVJ9LAogICAgICAqIHtAbGluayAjU0NSRUVOX09SSUVOVEFUSU9OX0xPQ0tFRH0sCiAgICAgICovCisgICAgQFNjcmVlbk9yaWVudGF0aW9uCiAgICAgcHVibGljIGludCBzY3JlZW5PcmllbnRhdGlvbiA9IFNDUkVFTl9PUklFTlRBVElPTl9VTlNQRUNJRklFRDsKICAgICAKICAgICAvKioKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvcG0vUGFja2FnZU1hbmFnZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvcG0vUGFja2FnZU1hbmFnZXIuamF2YQppbmRleCBjOTdjMmI4Li4wMTkyYTMwIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L3BtL1BhY2thZ2VNYW5hZ2VyLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9wbS9QYWNrYWdlTWFuYWdlci5qYXZhCkBAIC0xNiw2ICsxNiw3IEBACiAKIHBhY2thZ2UgYW5kcm9pZC5jb250ZW50LnBtOwogCitpbXBvcnQgYW5kcm9pZC5hbm5vdGF0aW9uLkludERlZjsKIGltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uU2RrQ29uc3RhbnQ7CiBpbXBvcnQgYW5kcm9pZC5hbm5vdGF0aW9uLlNka0NvbnN0YW50LlNka0NvbnN0YW50VHlwZTsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29tcG9uZW50TmFtZTsKQEAgLTMzLDYgKzM0LDggQEAKIGltcG9ydCBhbmRyb2lkLnV0aWwuRGlzcGxheU1ldHJpY3M7CiAKIGltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uOworaW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvblBvbGljeTsKIGltcG9ydCBqYXZhLnV0aWwuTGlzdDsKIAogLyoqCkBAIC0xOTAsNiArMTkzLDExIEBACiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFUQ0hfREVGQVVMVF9PTkxZICAgPSAweDAwMDEwMDAwOwogCisgICAgLyoqIEBoaWRlICovCisgICAgQEludERlZih7UEVSTUlTU0lPTl9HUkFOVEVELCBQRVJNSVNTSU9OX0RFTklFRH0pCisgICAgQFJldGVudGlvbihSZXRlbnRpb25Qb2xpY3kuU09VUkNFKQorICAgIHB1YmxpYyBAaW50ZXJmYWNlIFBlcm1pc3Npb25SZXN1bHQge30KKwogICAgIC8qKgogICAgICAqIFBlcm1pc3Npb24gY2hlY2sgcmVzdWx0OiB0aGlzIGlzIHJldHVybmVkIGJ5IHtAbGluayAjY2hlY2tQZXJtaXNzaW9ufQogICAgICAqIGlmIHRoZSBwZXJtaXNzaW9uIGhhcyBiZWVuIGdyYW50ZWQgdG8gdGhlIGdpdmVuIHBhY2thZ2UuCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L3Jlcy9Db2xvclN0YXRlTGlzdC5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvY29udGVudC9yZXMvQ29sb3JTdGF0ZUxpc3QuamF2YQppbmRleCBiZDIzZGI0Li40MzEyMjZhIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9jb250ZW50L3Jlcy9Db2xvclN0YXRlTGlzdC5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL2NvbnRlbnQvcmVzL0NvbG9yU3RhdGVMaXN0LmphdmEKQEAgLTE2LDYgKzE2LDcgQEAKIAogcGFja2FnZSBhbmRyb2lkLmNvbnRlbnQucmVzOwogCitpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5Db2xvcjsKIGltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC51dGlsLkFycmF5VXRpbHM7CiAKIGltcG9ydCBvcmcueG1scHVsbC52MS5YbWxQdWxsUGFyc2VyOwpAQCAtMjU5LDcgKzI2MCwxNyBAQAogICAgIHB1YmxpYyBib29sZWFuIGlzU3RhdGVmdWwoKSB7CiAgICAgICAgIHJldHVybiBtU3RhdGVTcGVjcy5sZW5ndGggPiAxOwogICAgIH0KLSAgICAKKworICAgIHB1YmxpYyBib29sZWFuIGlzT3BhcXVlKCkgeworICAgICAgICBmaW5hbCBpbnQgbiA9IG1Db2xvcnMubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgeworICAgICAgICAgICAgaWYgKENvbG9yLmFscGhhKG1Db2xvcnNbaV0pICE9IDB4RkYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgLyoqCiAgICAgICogUmV0dXJuIHRoZSBjb2xvciBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIHNldCBvZiB7QGxpbmsgYW5kcm9pZC52aWV3LlZpZXd9IHN0YXRlcy4KICAgICAgKgpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvZ2VzdHVyZS9HZXN0dXJlT3ZlcmxheVZpZXcuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2dlc3R1cmUvR2VzdHVyZU92ZXJsYXlWaWV3LmphdmEKaW5kZXggMmQ0N2YyOC4uNmUzYTAwZiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvZ2VzdHVyZS9HZXN0dXJlT3ZlcmxheVZpZXcuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9nZXN0dXJlL0dlc3R1cmVPdmVybGF5Vmlldy5qYXZhCkBAIC0xMzQsMTEgKzEzNCwxNiBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIuZ2VzdHVyZU92ZXJsYXlWaWV3U3R5bGUpOwogICAgIH0KIAotICAgIHB1YmxpYyBHZXN0dXJlT3ZlcmxheVZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgIHB1YmxpYyBHZXN0dXJlT3ZlcmxheVZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CiAKLSAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAotICAgICAgICAgICAgICAgIFIuc3R5bGVhYmxlLkdlc3R1cmVPdmVybGF5VmlldywgZGVmU3R5bGUsIDApOworICAgIHB1YmxpYyBHZXN0dXJlT3ZlcmxheVZpZXcoCisgICAgICAgICAgICBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIFIuc3R5bGVhYmxlLkdlc3R1cmVPdmVybGF5VmlldywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgbUdlc3R1cmVTdHJva2VXaWR0aCA9IGEuZ2V0RmxvYXQoUi5zdHlsZWFibGUuR2VzdHVyZU92ZXJsYXlWaWV3X2dlc3R1cmVTdHJva2VXaWR0aCwKICAgICAgICAgICAgICAgICBtR2VzdHVyZVN0cm9rZVdpZHRoKTsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FwdHVyZVJlc3VsdC5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYXB0dXJlUmVzdWx0LmphdmEKaW5kZXggZGJkMDQ1Ny4uZTI0YmU5ZiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYXB0dXJlUmVzdWx0LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYXB0dXJlUmVzdWx0LmphdmEKQEAgLTc1OCw2ICs3NTgsOCBAQAogICAgICAqIDxwPgogICAgICAqIE9ubHkgYXZhaWxhYmxlIGlmIGZhY2VEZXRlY3RNb2RlID09IEZVTEwKICAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAaGlkZQogICAgICAqLwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgS2V5PGludFtdPiBTVEFUSVNUSUNTX0ZBQ0VfSURTID0KICAgICAgICAgICAgIG5ldyBLZXk8aW50W10+KCJhbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUlkcyIsIGludFtdLmNsYXNzKTsKQEAgLTc3MCw2ICs3NzIsOCBAQAogICAgICAqIDxwPgogICAgICAqIE9ubHkgYXZhaWxhYmxlIGlmIGZhY2VEZXRlY3RNb2RlID09IEZVTEwKICAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAaGlkZQogICAgICAqLwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgS2V5PGludFtdPiBTVEFUSVNUSUNTX0ZBQ0VfTEFORE1BUktTID0KICAgICAgICAgICAgIG5ldyBLZXk8aW50W10+KCJhbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUxhbmRtYXJrcyIsIGludFtdLmNsYXNzKTsKQEAgLTc4Miw2ICs3ODYsOCBAQAogICAgICAqIDxwPgogICAgICAqIE9ubHkgYXZhaWxhYmxlIGlmIGZhY2VEZXRlY3RNb2RlICE9IE9GRgogICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBoaWRlCiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBLZXk8YW5kcm9pZC5ncmFwaGljcy5SZWN0W10+IFNUQVRJU1RJQ1NfRkFDRV9SRUNUQU5HTEVTID0KICAgICAgICAgICAgIG5ldyBLZXk8YW5kcm9pZC5ncmFwaGljcy5SZWN0W10+KCJhbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVJlY3RhbmdsZXMiLCBhbmRyb2lkLmdyYXBoaWNzLlJlY3RbXS5jbGFzcyk7CkBAIC03OTUsNiArODAxLDggQEAKICAgICAgKiBPbmx5IGF2YWlsYWJsZSBpZiBmYWNlRGV0ZWN0TW9kZSAhPSBPRkYuIFRoZSB2YWx1ZSBzaG91bGQgYmUKICAgICAgKiBtZWFuaW5nZnVsIChmb3IgZXhhbXBsZSwgc2V0dGluZyAxMDAgYXQgYWxsIHRpbWVzIGlzIGlsbGVnYWwpLgogICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBoaWRlCiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBLZXk8Ynl0ZVtdPiBTVEFUSVNUSUNTX0ZBQ0VfU0NPUkVTID0KICAgICAgICAgICAgIG5ldyBLZXk8Ynl0ZVtdPigiYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VTY29yZXMiLCBieXRlW10uY2xhc3MpOwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYWNrYWdlLmh0bWwgYi9jb3JlL2phdmEvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhY2thZ2UuaHRtbAppbmRleCBjNjE5OTg0Li45ZjZjMmE5IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhY2thZ2UuaHRtbAorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhY2thZ2UuaHRtbApAQCAtODAsNyArODAsNSBAQAogYXN5bmNocm9ub3VzbHkgcmVsYXRpdmUgdG8gdGhlIG91dHB1dCBDYXB0dXJlUmVzdWx0LCBzb21ldGltZXMKIHN1YnN0YW50aWFsbHkgbGF0ZXIuPC9wPgogCi17QGhpZGV9Ci0KIDwvQk9EWT4KIDwvSFRNTD4KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL2lucHV0bWV0aG9kc2VydmljZS9FeHRyYWN0QnV0dG9uLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9pbnB1dG1ldGhvZHNlcnZpY2UvRXh0cmFjdEJ1dHRvbi5qYXZhCmluZGV4IGI2Yjc1OTUuLmZlNjNjMWUgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL2lucHV0bWV0aG9kc2VydmljZS9FeHRyYWN0QnV0dG9uLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvaW5wdXRtZXRob2RzZXJ2aWNlL0V4dHJhY3RCdXR0b24uamF2YQpAQCAtMzIsOCArMzIsMTIgQEAKICAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci5idXR0b25TdHlsZSk7CiAgICAgfQogCi0gICAgcHVibGljIEV4dHJhY3RCdXR0b24oQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgIHB1YmxpYyBFeHRyYWN0QnV0dG9uKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIEV4dHJhY3RCdXR0b24oQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgfQogICAgIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvaW5wdXRtZXRob2RzZXJ2aWNlL0V4dHJhY3RFZGl0VGV4dC5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvaW5wdXRtZXRob2RzZXJ2aWNlL0V4dHJhY3RFZGl0VGV4dC5qYXZhCmluZGV4IDIzYWUyMWIuLjQ4YjYwNGMgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL2lucHV0bWV0aG9kc2VydmljZS9FeHRyYWN0RWRpdFRleHQuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9pbnB1dG1ldGhvZHNlcnZpY2UvRXh0cmFjdEVkaXRUZXh0LmphdmEKQEAgLTM4LDggKzM4LDEyIEBACiAgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIuZWRpdFRleHRTdHlsZSk7CiAgICAgfQogCi0gICAgcHVibGljIEV4dHJhY3RFZGl0VGV4dChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIEV4dHJhY3RFZGl0VGV4dChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBFeHRyYWN0RWRpdFRleHQoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgfQogICAgIAogICAgIHZvaWQgc2V0SU1FKElucHV0TWV0aG9kU2VydmljZSBpbWUpIHsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL2lucHV0bWV0aG9kc2VydmljZS9JbnB1dE1ldGhvZFNlcnZpY2UuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL2lucHV0bWV0aG9kc2VydmljZS9JbnB1dE1ldGhvZFNlcnZpY2UuamF2YQppbmRleCAxYjdkOWVhLi44MWFkMjhiIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9pbnB1dG1ldGhvZHNlcnZpY2UvSW5wdXRNZXRob2RTZXJ2aWNlLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvaW5wdXRtZXRob2RzZXJ2aWNlL0lucHV0TWV0aG9kU2VydmljZS5qYXZhCkBAIC0yMzIyLDYgKzIzMjIsMjEgQEAKICAgICB9CiAKICAgICAvKioKKyAgICAgKiBAcmV0dXJuIFRoZSByZWNvbW1lbmRlZCBoZWlnaHQgb2YgdGhlIGlucHV0IG1ldGhvZCB3aW5kb3cuCisgICAgICogQW4gSU1FIGF1dGhvciBjYW4gZ2V0IHRoZSBsYXN0IGlucHV0IG1ldGhvZCdzIGhlaWdodCBhcyB0aGUgcmVjb21tZW5kZWQgaGVpZ2h0CisgICAgICogYnkgY2FsbGluZyB0aGlzIGluCisgICAgICoge0BsaW5rIGFuZHJvaWQuaW5wdXRtZXRob2RzZXJ2aWNlLklucHV0TWV0aG9kU2VydmljZSNvblN0YXJ0SW5wdXRWaWV3KEVkaXRvckluZm8sIGJvb2xlYW4pfS4KKyAgICAgKiBJZiB5b3UgZG9uJ3QgbmVlZCB0byB1c2UgYSBwcmVkZWZpbmVkIGZpeGVkIGhlaWdodCwgeW91IGNhbiBhdm9pZCB0aGUgd2luZG93LXJlc2l6aW5nIG9mIElNRQorICAgICAqIHN3aXRjaGluZyBieSB1c2luZyB0aGlzIHZhbHVlIGFzIGEgdmlzaWJsZSBpbnNldCBoZWlnaHQuIEl0J3MgZWZmaWNpZW50IGZvciB0aGUgc21vb3RoCisgICAgICogdHJhbnNpdGlvbiBiZXR3ZWVuIGRpZmZlcmVudCBJTUVzLiBIb3dldmVyLCBub3RlIHRoYXQgdGhpcyBtYXkgcmV0dXJuIDAgKG9yIHBvc3NpYmx5CisgICAgICogdW5leHBlY3RlZGx5IGxvdyBoZWlnaHQpLiBZb3Ugc2hvdWxkIHRodXMgYXZvaWQgcmVseWluZyBvbiB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoaXMgbWV0aG9kCisgICAgICogYWxsIHRoZSB0aW1lLiBQbGVhc2UgbWFrZSBzdXJlIHRvIHVzZSBhIHJlYXNvbmFibGUgaGVpZ2h0IGZvciB0aGUgSU1FLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5wdXRNZXRob2RXaW5kb3dSZWNvbW1lbmRlZEhlaWdodCgpIHsKKyAgICAgICAgcmV0dXJuIG1JbW0uZ2V0SW5wdXRNZXRob2RXaW5kb3dWaXNpYmxlSGVpZ2h0KCk7CisgICAgfQorCisgICAgLyoqCiAgICAgICogUGVyZm9ybXMgYSBkdW1wIG9mIHRoZSBJbnB1dE1ldGhvZFNlcnZpY2UncyBpbnRlcm5hbCBzdGF0ZS4gIE92ZXJyaWRlCiAgICAgICogdG8gYWRkIHlvdXIgb3duIGluZm9ybWF0aW9uIHRvIHRoZSBkdW1wLgogICAgICAqLwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvaW5wdXRtZXRob2RzZXJ2aWNlL0tleWJvYXJkVmlldy5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvaW5wdXRtZXRob2RzZXJ2aWNlL0tleWJvYXJkVmlldy5qYXZhCmluZGV4IDQ5MTYyNDQuLmFmNzVhMGEgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL2lucHV0bWV0aG9kc2VydmljZS9LZXlib2FyZFZpZXcuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9pbnB1dG1ldGhvZHNlcnZpY2UvS2V5Ym9hcmRWaWV3LmphdmEKQEAgLTI3OSwxMiArMjc5LDE1IEBACiAgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci5rZXlib2FyZFZpZXdTdHlsZSk7CiAgICAgfQogCi0gICAgcHVibGljIEtleWJvYXJkVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIEtleWJvYXJkVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KIAotICAgICAgICBUeXBlZEFycmF5IGEgPQotICAgICAgICAgICAgY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAotICAgICAgICAgICAgICAgIGF0dHJzLCBhbmRyb2lkLlIuc3R5bGVhYmxlLktleWJvYXJkVmlldywgZGVmU3R5bGUsIDApOworICAgIHB1YmxpYyBLZXlib2FyZFZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBhbmRyb2lkLlIuc3R5bGVhYmxlLktleWJvYXJkVmlldywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgTGF5b3V0SW5mbGF0ZXIgaW5mbGF0ZSA9CiAgICAgICAgICAgICAgICAgKExheW91dEluZmxhdGVyKSBjb250ZXh0CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9uZXQvQmFzZU5ldHdvcmtTdGF0ZVRyYWNrZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL25ldC9CYXNlTmV0d29ya1N0YXRlVHJhY2tlci5qYXZhCmluZGV4IDQ3NmZlZmUuLjgwNGY4ZWUgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL25ldC9CYXNlTmV0d29ya1N0YXRlVHJhY2tlci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL25ldC9CYXNlTmV0d29ya1N0YXRlVHJhY2tlci5qYXZhCkBAIC0yMCwxMCArMjAsMTAgQEAKIGltcG9ydCBhbmRyb2lkLm9zLkhhbmRsZXI7CiBpbXBvcnQgYW5kcm9pZC5vcy5NZXNzZW5nZXI7CiAKLWltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC51dGlsLlByZWNvbmRpdGlvbnM7Ci0KIGltcG9ydCBqYXZhLnV0aWwuY29uY3VycmVudC5hdG9taWMuQXRvbWljQm9vbGVhbjsKIAoraW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLnV0aWwuUHJlY29uZGl0aW9uczsKKwogLyoqCiAgKiBJbnRlcmZhY2UgdG8gY29udHJvbCBhbmQgb2JzZXJ2ZSBzdGF0ZSBvZiBhIHNwZWNpZmljIG5ldHdvcmssIGhpZGluZwogICogbmV0d29yay1zcGVjaWZpYyBkZXRhaWxzIGZyb20ge0BsaW5rIENvbm5lY3Rpdml0eU1hbmFnZXJ9LiBTdXJmYWNlcyBldmVudHMKQEAgLTEwOCwxMSArMTA4LDYgQEAKICAgICB9CiAKICAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBjYXB0aXZlUG9ydGFsQ2hlY2tDb21wbGV0ZSgpIHsKLSAgICAgICAgLy8gbm90IGltcGxlbWVudGVkCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCiAgICAgcHVibGljIHZvaWQgY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGVkKGJvb2xlYW4gaXNDYXB0aXZlUG9ydGFsKSB7CiAgICAgICAgIC8vIG5vdCBpbXBsZW1lbnRlZAogICAgIH0KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL25ldC9DYXB0aXZlUG9ydGFsVHJhY2tlci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvbmV0L0NhcHRpdmVQb3J0YWxUcmFja2VyLmphdmEKaW5kZXggZDY3OGYxZS4uMzFiMjA3YyAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvbmV0L0NhcHRpdmVQb3J0YWxUcmFja2VyLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvbmV0L0NhcHRpdmVQb3J0YWxUcmFja2VyLmphdmEKQEAgLTg0LDEzICs4NCwxMiBAQAogICAgIHByaXZhdGUgU3RyaW5nIG1TZXJ2ZXI7CiAgICAgcHJpdmF0ZSBTdHJpbmcgbVVybDsKICAgICBwcml2YXRlIGJvb2xlYW4gbUlzQ2FwdGl2ZVBvcnRhbENoZWNrRW5hYmxlZCA9IGZhbHNlOwotICAgIHByaXZhdGUgSUNvbm5lY3Rpdml0eU1hbmFnZXIgbUNvbm5TZXJ2aWNlOwotICAgIHByaXZhdGUgVGVsZXBob255TWFuYWdlciBtVGVsZXBob255TWFuYWdlcjsKLSAgICBwcml2YXRlIFdpZmlNYW5hZ2VyIG1XaWZpTWFuYWdlcjsKLSAgICBwcml2YXRlIENvbnRleHQgbUNvbnRleHQ7CisgICAgcHJpdmF0ZSBmaW5hbCBJQ29ubmVjdGl2aXR5TWFuYWdlciBtQ29ublNlcnZpY2U7CisgICAgcHJpdmF0ZSBmaW5hbCBUZWxlcGhvbnlNYW5hZ2VyIG1UZWxlcGhvbnlNYW5hZ2VyOworICAgIHByaXZhdGUgZmluYWwgV2lmaU1hbmFnZXIgbVdpZmlNYW5hZ2VyOworICAgIHByaXZhdGUgZmluYWwgQ29udGV4dCBtQ29udGV4dDsKICAgICBwcml2YXRlIE5ldHdvcmtJbmZvIG1OZXR3b3JrSW5mbzsKIAotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDTURfREVURUNUX1BPUlRBTCAgICAgICAgICA9IDA7CiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENNRF9DT05ORUNUSVZJVFlfQ0hBTkdFICAgID0gMTsKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ01EX0RFTEFZRURfQ0FQVElWRV9DSEVDSyAgPSAyOwogCkBAIC05OCwxNCArOTcsMTUgQEAKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVMQVlFRF9DSEVDS19JTlRFUlZBTF9NUyA9IDEwMDAwOwogICAgIHByaXZhdGUgaW50IG1EZWxheWVkQ2hlY2tUb2tlbiA9IDA7CiAKLSAgICBwcml2YXRlIFN0YXRlIG1EZWZhdWx0U3RhdGUgPSBuZXcgRGVmYXVsdFN0YXRlKCk7Ci0gICAgcHJpdmF0ZSBTdGF0ZSBtTm9BY3RpdmVOZXR3b3JrU3RhdGUgPSBuZXcgTm9BY3RpdmVOZXR3b3JrU3RhdGUoKTsKLSAgICBwcml2YXRlIFN0YXRlIG1BY3RpdmVOZXR3b3JrU3RhdGUgPSBuZXcgQWN0aXZlTmV0d29ya1N0YXRlKCk7Ci0gICAgcHJpdmF0ZSBTdGF0ZSBtRGVsYXllZENhcHRpdmVDaGVja1N0YXRlID0gbmV3IERlbGF5ZWRDYXB0aXZlQ2hlY2tTdGF0ZSgpOworICAgIHByaXZhdGUgZmluYWwgU3RhdGUgbURlZmF1bHRTdGF0ZSA9IG5ldyBEZWZhdWx0U3RhdGUoKTsKKyAgICBwcml2YXRlIGZpbmFsIFN0YXRlIG1Ob0FjdGl2ZU5ldHdvcmtTdGF0ZSA9IG5ldyBOb0FjdGl2ZU5ldHdvcmtTdGF0ZSgpOworICAgIHByaXZhdGUgZmluYWwgU3RhdGUgbUFjdGl2ZU5ldHdvcmtTdGF0ZSA9IG5ldyBBY3RpdmVOZXR3b3JrU3RhdGUoKTsKKyAgICBwcml2YXRlIGZpbmFsIFN0YXRlIG1EZWxheWVkQ2FwdGl2ZUNoZWNrU3RhdGUgPSBuZXcgRGVsYXllZENhcHRpdmVDaGVja1N0YXRlKCk7CiAKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUVVBfV0laQVJEX1BBQ0tBR0UgPSAiY29tLmdvb2dsZS5hbmRyb2lkLnNldHVwd2l6YXJkIjsKICAgICBwcml2YXRlIGJvb2xlYW4gbURldmljZVByb3Zpc2lvbmVkID0gZmFsc2U7Ci0gICAgcHJpdmF0ZSBQcm92aXNpb25pbmdPYnNlcnZlciBtUHJvdmlzaW9uaW5nT2JzZXJ2ZXI7CisgICAgQFN1cHByZXNzV2FybmluZ3MoInVudXNlZCIpCisgICAgcHJpdmF0ZSBmaW5hbCBQcm92aXNpb25pbmdPYnNlcnZlciBtUHJvdmlzaW9uaW5nT2JzZXJ2ZXI7CiAKICAgICBwcml2YXRlIENhcHRpdmVQb3J0YWxUcmFja2VyKENvbnRleHQgY29udGV4dCwgSUNvbm5lY3Rpdml0eU1hbmFnZXIgY3MpIHsKICAgICAgICAgc3VwZXIoVEFHKTsKQEAgLTE3NCwyOSArMTc0LDExIEBACiAgICAgICAgIHJldHVybiBjYXB0aXZlUG9ydGFsOwogICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIGRldGVjdENhcHRpdmVQb3J0YWwoTmV0d29ya0luZm8gaW5mbykgewotICAgICAgICBzZW5kTWVzc2FnZShvYnRhaW5NZXNzYWdlKENNRF9ERVRFQ1RfUE9SVEFMLCBpbmZvKSk7Ci0gICAgfQotCiAgICAgcHJpdmF0ZSBjbGFzcyBEZWZhdWx0U3RhdGUgZXh0ZW5kcyBTdGF0ZSB7CiAKICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgIHB1YmxpYyBib29sZWFuIHByb2Nlc3NNZXNzYWdlKE1lc3NhZ2UgbWVzc2FnZSkgewotICAgICAgICAgICAgaWYgKERCRykgbG9nKGdldE5hbWUoKSArIG1lc3NhZ2UudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICBzd2l0Y2ggKG1lc3NhZ2Uud2hhdCkgewotICAgICAgICAgICAgICAgIGNhc2UgQ01EX0RFVEVDVF9QT1JUQUw6Ci0gICAgICAgICAgICAgICAgICAgIE5ldHdvcmtJbmZvIGluZm8gPSAoTmV0d29ya0luZm8pIG1lc3NhZ2Uub2JqOwotICAgICAgICAgICAgICAgICAgICAvLyBDaGVja2luZyBvbiBhIHNlY29uZGFyeSBjb25uZWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKLSAgICAgICAgICAgICAgICAgICAgLy8geWV0Ci0gICAgICAgICAgICAgICAgICAgIG5vdGlmeVBvcnRhbENoZWNrQ29tcGxldGUoaW5mbyk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgQ01EX0NPTk5FQ1RJVklUWV9DSEFOR0U6Ci0gICAgICAgICAgICAgICAgY2FzZSBDTURfREVMQVlFRF9DQVBUSVZFX0NIRUNLOgotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICBsb2dlKCJJZ25vcmluZyAiICsgbWVzc2FnZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nZSgiSWdub3JpbmcgIiArIG1lc3NhZ2UpOwogICAgICAgICAgICAgcmV0dXJuIEhBTkRMRUQ7CiAgICAgICAgIH0KICAgICB9CkBAIC0zMTYsMTkgKzI5OCw2IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwcml2YXRlIHZvaWQgbm90aWZ5UG9ydGFsQ2hlY2tDb21wbGV0ZShOZXR3b3JrSW5mbyBpbmZvKSB7Ci0gICAgICAgIGlmIChpbmZvID09IG51bGwpIHsKLSAgICAgICAgICAgIGxvZ2UoIm5vdGlmeVBvcnRhbENoZWNrQ29tcGxldGUgb24gbnVsbCIpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBpZiAoREJHKSBsb2coIm5vdGlmeVBvcnRhbENoZWNrQ29tcGxldGU6IG5pPSIgKyBpbmZvKTsKLSAgICAgICAgICAgIG1Db25uU2VydmljZS5jYXB0aXZlUG9ydGFsQ2hlY2tDb21wbGV0ZShpbmZvKTsKLSAgICAgICAgfSBjYXRjaChSZW1vdGVFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIHByaXZhdGUgdm9pZCBub3RpZnlQb3J0YWxDaGVja0NvbXBsZXRlZChOZXR3b3JrSW5mbyBpbmZvLCBib29sZWFuIGlzQ2FwdGl2ZVBvcnRhbCkgewogICAgICAgICBpZiAoaW5mbyA9PSBudWxsKSB7CiAgICAgICAgICAgICBsb2dlKCJub3RpZnlQb3J0YWxDaGVja0NvbXBsZXRlIG9uIG51bGwiKTsKQEAgLTQ2NCw3ICs0MzMsNiBAQAogICAgICAgICAgICAgICAgIGxhdGVuY3lCcm9hZGNhc3QucHV0RXh0cmEoRVhUUkFfTkVUV09SS19UWVBFLCBtVGVsZXBob255TWFuYWdlci5nZXROZXR3b3JrVHlwZSgpKTsKICAgICAgICAgICAgICAgICBMaXN0PENlbGxJbmZvPiBpbmZvID0gbVRlbGVwaG9ueU1hbmFnZXIuZ2V0QWxsQ2VsbEluZm8oKTsKICAgICAgICAgICAgICAgICBpZiAoaW5mbyA9PSBudWxsKSByZXR1cm47Ci0gICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHVuaXF1ZUNlbGxJZCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKICAgICAgICAgICAgICAgICBpbnQgbnVtUmVnaXN0ZXJlZENlbGxJbmZvID0gMDsKICAgICAgICAgICAgICAgICBmb3IgKENlbGxJbmZvIGNlbGxJbmZvIDogaW5mbykgewogICAgICAgICAgICAgICAgICAgICBpZiAoY2VsbEluZm8uaXNSZWdpc3RlcmVkKCkpIHsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL25ldC9Db25uZWN0aXZpdHlNYW5hZ2VyLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9uZXQvQ29ubmVjdGl2aXR5TWFuYWdlci5qYXZhCmluZGV4IGM3OGE5NzMuLjBmOGRjN2EgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL25ldC9Db25uZWN0aXZpdHlNYW5hZ2VyLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvbmV0L0Nvbm5lY3Rpdml0eU1hbmFnZXIuamF2YQpAQCAtMTMzMCwyNCArMTMzMCw2IEBACiAKICAgICAvKioKICAgICAgKiBTaWduYWwgdGhhdCB0aGUgY2FwdGl2ZSBwb3J0YWwgY2hlY2sgb24gdGhlIGluZGljYXRlZCBuZXR3b3JrCi0gICAgICogaXMgY29tcGxldGUgYW5kIHdlIGNhbiB0dXJuIHRoZSBuZXR3b3JrIG9uIGZvciBnZW5lcmFsIHVzZS4KLSAgICAgKgotICAgICAqIEBwYXJhbSBpbmZvIHRoZSB7QGxpbmsgTmV0d29ya0luZm99IG9iamVjdCBmb3IgdGhlIG5ldHdvcmtUeXBlCi0gICAgICogICAgICAgIGluIHF1ZXN0aW9uLgotICAgICAqCi0gICAgICogPHA+VGhpcyBtZXRob2QgcmVxdWlyZXMgdGhlIGNhbGwgdG8gaG9sZCB0aGUgcGVybWlzc2lvbgotICAgICAqIHtAbGluayBhbmRyb2lkLk1hbmlmZXN0LnBlcm1pc3Npb24jQ09OTkVDVElWSVRZX0lOVEVSTkFMfS4KLSAgICAgKiB7QGhpZGV9Ci0gICAgICovCi0gICAgcHVibGljIHZvaWQgY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGUoTmV0d29ya0luZm8gaW5mbykgewotICAgICAgICB0cnkgewotICAgICAgICAgICAgbVNlcnZpY2UuY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGUoaW5mbyk7Ci0gICAgICAgIH0gY2F0Y2ggKFJlbW90ZUV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBTaWduYWwgdGhhdCB0aGUgY2FwdGl2ZSBwb3J0YWwgY2hlY2sgb24gdGhlIGluZGljYXRlZCBuZXR3b3JrCiAgICAgICogaXMgY29tcGxldGUgYW5kIHdoZXRoZXIgaXRzIGEgY2FwdGl2ZSBwb3J0YWwgb3Igbm90LgogICAgICAqCiAgICAgICogQHBhcmFtIGluZm8gdGhlIHtAbGluayBOZXR3b3JrSW5mb30gb2JqZWN0IGZvciB0aGUgbmV0d29ya1R5cGUKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL25ldC9EdW1teURhdGFTdGF0ZVRyYWNrZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL25ldC9EdW1teURhdGFTdGF0ZVRyYWNrZXIuamF2YQppbmRleCA1MWExMTkxLi5hNWQwNTllIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9uZXQvRHVtbXlEYXRhU3RhdGVUcmFja2VyLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvbmV0L0R1bW15RGF0YVN0YXRlVHJhY2tlci5qYXZhCkBAIC0xMTcsMTEgKzExNyw2IEBACiAgICAgfQogCiAgICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGUoKSB7Ci0gICAgICAgIC8vIG5vdCBpbXBsZW1lbnRlZAotICAgIH0KLQotICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyB2b2lkIGNhcHRpdmVQb3J0YWxDaGVja0NvbXBsZXRlZChib29sZWFuIGlzQ2FwdGl2ZVBvcnRhbCkgewogICAgICAgICAvLyBub3QgaW1wbGVtZW50ZWQKICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9uZXQvRXRoZXJuZXREYXRhVHJhY2tlci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvbmV0L0V0aGVybmV0RGF0YVRyYWNrZXIuamF2YQppbmRleCA1MDE0ODRjLi5jN2U5OGM1IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9uZXQvRXRoZXJuZXREYXRhVHJhY2tlci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL25ldC9FdGhlcm5ldERhdGFUcmFja2VyLmphdmEKQEAgLTI3MCwxMSArMjcwLDYgQEAKICAgICB9CiAKICAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBjYXB0aXZlUG9ydGFsQ2hlY2tDb21wbGV0ZSgpIHsKLSAgICAgICAgLy8gbm90IGltcGxlbWVudGVkCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCiAgICAgcHVibGljIHZvaWQgY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGVkKGJvb2xlYW4gaXNDYXB0aXZlUG9ydGFsKSB7CiAgICAgICAgIC8vIG5vdCBpbXBsZW1lbnRlZAogICAgIH0KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL25ldC9JQ29ubmVjdGl2aXR5TWFuYWdlci5haWRsIGIvY29yZS9qYXZhL2FuZHJvaWQvbmV0L0lDb25uZWN0aXZpdHlNYW5hZ2VyLmFpZGwKaW5kZXggYzFkYTJlMy4uYjMyMTdlYiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvbmV0L0lDb25uZWN0aXZpdHlNYW5hZ2VyLmFpZGwKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvbmV0L0lDb25uZWN0aXZpdHlNYW5hZ2VyLmFpZGwKQEAgLTEyOSw4ICsxMjksNiBAQAogCiAgICAgYm9vbGVhbiB1cGRhdGVMb2NrZG93blZwbigpOwogCi0gICAgdm9pZCBjYXB0aXZlUG9ydGFsQ2hlY2tDb21wbGV0ZShpbiBOZXR3b3JrSW5mbyBpbmZvKTsKLQogICAgIHZvaWQgY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGVkKGluIE5ldHdvcmtJbmZvIGluZm8sIGJvb2xlYW4gaXNDYXB0aXZlUG9ydGFsKTsKIAogICAgIHZvaWQgc3VwcGx5TWVzc2VuZ2VyKGludCBuZXR3b3JrVHlwZSwgaW4gTWVzc2VuZ2VyIG1lc3Nlbmdlcik7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9uZXQvTW9iaWxlRGF0YVN0YXRlVHJhY2tlci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvbmV0L01vYmlsZURhdGFTdGF0ZVRyYWNrZXIuamF2YQppbmRleCBjMTA2NTE0Li5kOWMzNWMwIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9uZXQvTW9iaWxlRGF0YVN0YXRlVHJhY2tlci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL25ldC9Nb2JpbGVEYXRhU3RhdGVUcmFja2VyLmphdmEKQEAgLTQ2MCwxMSArNDYwLDYgQEAKICAgICB9CiAKICAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBjYXB0aXZlUG9ydGFsQ2hlY2tDb21wbGV0ZSgpIHsKLSAgICAgICAgLy8gbm90IGltcGxlbWVudGVkCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCiAgICAgcHVibGljIHZvaWQgY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGVkKGJvb2xlYW4gaXNDYXB0aXZlUG9ydGFsKSB7CiAgICAgICAgIGlmIChtSXNDYXB0aXZlUG9ydGFsLmdldEFuZFNldChpc0NhcHRpdmVQb3J0YWwpICE9IGlzQ2FwdGl2ZVBvcnRhbCkgewogICAgICAgICAgICAgLy8gQ2FwdGl2ZSBwb3J0YWwgY2hhbmdlIGVuYWJsZS9kaXNhYmxlIGZhaWxpbmcgZmFzdApkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvbmV0L05ldHdvcmtJbmZvLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9uZXQvTmV0d29ya0luZm8uamF2YQppbmRleCA0ZDJhNzBkLi41M2IxMzA4IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9uZXQvTmV0d29ya0luZm8uamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9uZXQvTmV0d29ya0luZm8uamF2YQpAQCAtMTU2LDE4ICsxNTYsMjAgQEAKICAgICAvKioge0BoaWRlfSAqLwogICAgIHB1YmxpYyBOZXR3b3JrSW5mbyhOZXR3b3JrSW5mbyBzb3VyY2UpIHsKICAgICAgICAgaWYgKHNvdXJjZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBtTmV0d29ya1R5cGUgPSBzb3VyY2UubU5ldHdvcmtUeXBlOwotICAgICAgICAgICAgbVN1YnR5cGUgPSBzb3VyY2UubVN1YnR5cGU7Ci0gICAgICAgICAgICBtVHlwZU5hbWUgPSBzb3VyY2UubVR5cGVOYW1lOwotICAgICAgICAgICAgbVN1YnR5cGVOYW1lID0gc291cmNlLm1TdWJ0eXBlTmFtZTsKLSAgICAgICAgICAgIG1TdGF0ZSA9IHNvdXJjZS5tU3RhdGU7Ci0gICAgICAgICAgICBtRGV0YWlsZWRTdGF0ZSA9IHNvdXJjZS5tRGV0YWlsZWRTdGF0ZTsKLSAgICAgICAgICAgIG1SZWFzb24gPSBzb3VyY2UubVJlYXNvbjsKLSAgICAgICAgICAgIG1FeHRyYUluZm8gPSBzb3VyY2UubUV4dHJhSW5mbzsKLSAgICAgICAgICAgIG1Jc0ZhaWxvdmVyID0gc291cmNlLm1Jc0ZhaWxvdmVyOwotICAgICAgICAgICAgbUlzUm9hbWluZyA9IHNvdXJjZS5tSXNSb2FtaW5nOwotICAgICAgICAgICAgbUlzQXZhaWxhYmxlID0gc291cmNlLm1Jc0F2YWlsYWJsZTsKLSAgICAgICAgICAgIG1Jc0Nvbm5lY3RlZFRvUHJvdmlzaW9uaW5nTmV0d29yayA9IHNvdXJjZS5tSXNDb25uZWN0ZWRUb1Byb3Zpc2lvbmluZ05ldHdvcms7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHNvdXJjZSkgeworICAgICAgICAgICAgICAgIG1OZXR3b3JrVHlwZSA9IHNvdXJjZS5tTmV0d29ya1R5cGU7CisgICAgICAgICAgICAgICAgbVN1YnR5cGUgPSBzb3VyY2UubVN1YnR5cGU7CisgICAgICAgICAgICAgICAgbVR5cGVOYW1lID0gc291cmNlLm1UeXBlTmFtZTsKKyAgICAgICAgICAgICAgICBtU3VidHlwZU5hbWUgPSBzb3VyY2UubVN1YnR5cGVOYW1lOworICAgICAgICAgICAgICAgIG1TdGF0ZSA9IHNvdXJjZS5tU3RhdGU7CisgICAgICAgICAgICAgICAgbURldGFpbGVkU3RhdGUgPSBzb3VyY2UubURldGFpbGVkU3RhdGU7CisgICAgICAgICAgICAgICAgbVJlYXNvbiA9IHNvdXJjZS5tUmVhc29uOworICAgICAgICAgICAgICAgIG1FeHRyYUluZm8gPSBzb3VyY2UubUV4dHJhSW5mbzsKKyAgICAgICAgICAgICAgICBtSXNGYWlsb3ZlciA9IHNvdXJjZS5tSXNGYWlsb3ZlcjsKKyAgICAgICAgICAgICAgICBtSXNSb2FtaW5nID0gc291cmNlLm1Jc1JvYW1pbmc7CisgICAgICAgICAgICAgICAgbUlzQXZhaWxhYmxlID0gc291cmNlLm1Jc0F2YWlsYWJsZTsKKyAgICAgICAgICAgICAgICBtSXNDb25uZWN0ZWRUb1Byb3Zpc2lvbmluZ05ldHdvcmsgPSBzb3VyY2UubUlzQ29ubmVjdGVkVG9Qcm92aXNpb25pbmdOZXR3b3JrOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9uZXQvTmV0d29ya1N0YXRlVHJhY2tlci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvbmV0L05ldHdvcmtTdGF0ZVRyYWNrZXIuamF2YQppbmRleCAxY2E5MjU1Li5jNDliMWQxIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9uZXQvTmV0d29ya1N0YXRlVHJhY2tlci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL25ldC9OZXR3b3JrU3RhdGVUcmFja2VyLmphdmEKQEAgLTE0NCwxMSArMTQ0LDYgQEAKICAgICBwdWJsaWMgYm9vbGVhbiByZWNvbm5lY3QoKTsKIAogICAgIC8qKgotICAgICAqIFJlYWR5IHRvIHN3aXRjaCBvbiB0byB0aGUgbmV0d29yayBhZnRlciBjYXB0aXZlIHBvcnRhbCBjaGVjawotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIGNhcHRpdmVQb3J0YWxDaGVja0NvbXBsZXRlKCk7Ci0KLSAgICAvKioKICAgICAgKiBDYXB0aXZlIHBvcnRhbCBjaGVjayBoYXMgY29tcGxldGVkCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGVkKGJvb2xlYW4gaXNDYXB0aXZlKTsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL25ldC9TU0xDZXJ0aWZpY2F0ZVNvY2tldEZhY3RvcnkuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL25ldC9TU0xDZXJ0aWZpY2F0ZVNvY2tldEZhY3RvcnkuamF2YQppbmRleCBiMDI3OGQzLi4xMmU4NzkxIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9uZXQvU1NMQ2VydGlmaWNhdGVTb2NrZXRGYWN0b3J5LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvbmV0L1NTTENlcnRpZmljYXRlU29ja2V0RmFjdG9yeS5qYXZhCkBAIC0xMzUsNyArMTM1LDggQEAKICAgICAgKiBkaXNhYmxlZCwgdXNpbmcgYW4gb3B0aW9uYWwgaGFuZHNoYWtlIHRpbWVvdXQgYW5kIFNTTCBzZXNzaW9uIGNhY2hlLgogICAgICAqCiAgICAgICogPHAgY2xhc3M9ImNhdXRpb24iPjxiPldhcm5pbmc6PC9iPiBTb2NrZXRzIGNyZWF0ZWQgdXNpbmcgdGhpcyBmYWN0b3J5Ci0gICAgICogYXJlIHZ1bG5lcmFibGUgdG8gbWFuLWluLXRoZS1taWRkbGUgYXR0YWNrcyE8L3A+CisgICAgICogYXJlIHZ1bG5lcmFibGUgdG8gbWFuLWluLXRoZS1taWRkbGUgYXR0YWNrcyE8L3A+LiBUaGUgY2FsbGVyIG11c3QgaW1wbGVtZW50CisgICAgICogaXRzIG93biB2ZXJpZmljYXRpb24uCiAgICAgICoKICAgICAgKiBAcGFyYW0gaGFuZHNoYWtlVGltZW91dE1pbGxpcyB0byB1c2UgZm9yIFNTTCBjb25uZWN0aW9uIGhhbmRzaGFrZSwgb3IgMAogICAgICAqICAgICAgICAgZm9yIG5vbmUuICBUaGUgc29ja2V0IHRpbWVvdXQgaXMgcmVzZXQgdG8gMCBhZnRlciB0aGUgaGFuZHNoYWtlLgpAQCAtMjIzLDggKzIyNCw2IEBACiAgICAgICAgICAgICBpZiAobUluc2VjdXJlRmFjdG9yeSA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgaWYgKG1TZWN1cmUpIHsKICAgICAgICAgICAgICAgICAgICAgTG9nLncoVEFHLCAiKioqIEJZUEFTU0lORyBTU0wgU0VDVVJJVFkgQ0hFQ0tTIChzb2NrZXQucmVsYXhzc2xjaGVjaz15ZXMpICoqKiIpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIExvZy53KFRBRywgIkJ5cGFzc2luZyBTU0wgc2VjdXJpdHkgY2hlY2tzIGF0IGNhbGxlcidzIHJlcXVlc3QiKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgbUluc2VjdXJlRmFjdG9yeSA9IG1ha2VTb2NrZXRGYWN0b3J5KG1LZXlNYW5hZ2VycywgSU5TRUNVUkVfVFJVU1RfTUFOQUdFUik7CiAgICAgICAgICAgICB9CkBAIC00MzEsNiArNDMwLDcgQEAKICAgICAgICAgcy5zZXRBbHBuUHJvdG9jb2xzKG1BbHBuUHJvdG9jb2xzKTsKICAgICAgICAgcy5zZXRIYW5kc2hha2VUaW1lb3V0KG1IYW5kc2hha2VUaW1lb3V0TWlsbGlzKTsKICAgICAgICAgcy5zZXRDaGFubmVsSWRQcml2YXRlS2V5KG1DaGFubmVsSWRQcml2YXRlS2V5KTsKKyAgICAgICAgcy5zZXRIb3N0bmFtZShob3N0KTsKICAgICAgICAgaWYgKG1TZWN1cmUpIHsKICAgICAgICAgICAgIHZlcmlmeUhvc3RuYW1lKHMsIGhvc3QpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9uZXQvU1NMU2Vzc2lvbkNhY2hlLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9uZXQvU1NMU2Vzc2lvbkNhY2hlLmphdmEKaW5kZXggMTU0MjFkZS4uNjVkYjJjMyAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvbmV0L1NTTFNlc3Npb25DYWNoZS5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL25ldC9TU0xTZXNzaW9uQ2FjaGUuamF2YQpAQCAtMTksMTIgKzE5LDE2IEBACiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7CiBpbXBvcnQgYW5kcm9pZC51dGlsLkxvZzsKIAoraW1wb3J0IGNvbS5hbmRyb2lkLm9yZy5jb25zY3J5cHQuQ2xpZW50U2Vzc2lvbkNvbnRleHQ7CiBpbXBvcnQgY29tLmFuZHJvaWQub3JnLmNvbnNjcnlwdC5GaWxlQ2xpZW50U2Vzc2lvbkNhY2hlOwogaW1wb3J0IGNvbS5hbmRyb2lkLm9yZy5jb25zY3J5cHQuU1NMQ2xpZW50U2Vzc2lvbkNhY2hlOwogCiBpbXBvcnQgamF2YS5pby5GaWxlOwogaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CiAKK2ltcG9ydCBqYXZheC5uZXQuc3NsLlNTTENvbnRleHQ7CitpbXBvcnQgamF2YXgubmV0LnNzbC5TU0xTZXNzaW9uQ29udGV4dDsKKwogLyoqCiAgKiBGaWxlLWJhc2VkIGNhY2hlIG9mIGVzdGFibGlzaGVkIFNTTCBzZXNzaW9ucy4gIFdoZW4gcmUtZXN0YWJsaXNoaW5nIGEKICAqIGNvbm5lY3Rpb24gdG8gdGhlIHNhbWUgc2VydmVyLCB1c2luZyBhbiBTU0wgc2Vzc2lvbiBjYWNoZSBjYW4gc2F2ZSBzb21lIHRpbWUsCkBAIC0zOCw2ICs0Miw0MCBAQAogICAgIC8qIHBhY2thZ2UgKi8gZmluYWwgU1NMQ2xpZW50U2Vzc2lvbkNhY2hlIG1TZXNzaW9uQ2FjaGU7CiAKICAgICAvKioKKyAgICAgKiBJbnN0YWxscyBhIHtAbGluayBTU0xTZXNzaW9uQ2FjaGV9IG9uIGEge0BsaW5rIFNTTENvbnRleHR9LiBUaGUgY2FjaGUgd2lsbAorICAgICAqIGJlIHVzZWQgb24gYWxsIHNvY2tldCBmYWN0b3JpZXMgY3JlYXRlZCBieSB0aGlzIGNvbnRleHQgKGluY2x1ZGluZyBmYWN0b3JpZXMKKyAgICAgKiBjcmVhdGVkIGJlZm9yZSB0aGlzIGNhbGwpLgorICAgICAqCisgICAgICogQHBhcmFtIGNhY2hlIHRoZSBjYWNoZSBpbnN0YW5jZSB0byBpbnN0YWxsLCBvciB7QGNvZGUgbnVsbH0gdG8gdW5pbnN0YWxsIGFueQorICAgICAqICAgICAgICAgZXhpc3RpbmcgY2FjaGUuCisgICAgICogQHBhcmFtIGNvbnRleHQgdGhlIGNvbnRleHQgdG8gaW5zdGFsbCBpdCBvbi4KKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgY29udGV4dCBkb2VzIG5vdCBzdXBwb3J0IGEgc2Vzc2lvbgorICAgICAqICAgICAgICAgY2FjaGUuCisgICAgICoKKyAgICAgKiBAaGlkZSBjYW5kaWRhdGUgZm9yIHB1YmxpYyBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgaW5zdGFsbChTU0xTZXNzaW9uQ2FjaGUgY2FjaGUsIFNTTENvbnRleHQgY29udGV4dCkgeworICAgICAgICBTU0xTZXNzaW9uQ29udGV4dCBjbGllbnRDb250ZXh0ID0gY29udGV4dC5nZXRDbGllbnRTZXNzaW9uQ29udGV4dCgpOworICAgICAgICBpZiAoY2xpZW50Q29udGV4dCBpbnN0YW5jZW9mIENsaWVudFNlc3Npb25Db250ZXh0KSB7CisgICAgICAgICAgICAoKENsaWVudFNlc3Npb25Db250ZXh0KSBjbGllbnRDb250ZXh0KS5zZXRQZXJzaXN0ZW50Q2FjaGUoCisgICAgICAgICAgICAgICAgICAgIGNhY2hlID09IG51bGwgPyBudWxsIDogY2FjaGUubVNlc3Npb25DYWNoZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbmNvbXBhdGlibGUgU1NMQ29udGV4dDogIiArIGNvbnRleHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTk9URTogVGhpcyBuZWVkcyB0byBiZSBPYmplY3QgKGFuZCBub3QgU1NMQ2xpZW50U2Vzc2lvbkNhY2hlKSBiZWNhdXNlIGFwcHMKKyAgICAgKiB0aGF0IGJ1aWxkIGRpcmVjdGx5IGFnYWluc3QgdGhlIGZyYW1ld29yayAoYW5kIG5vdCB0aGUgU0RLKSBtaWdodCBub3QgZGVjbGFyZQorICAgICAqIGEgZGVwZW5kZW5jeSBvbiBjb25zY3J5cHQuIEphdmFjIHdpbGwgdGhlbiBoYXMgZmFpbCB3aGlsZSByZXNvbHZpbmcgY29uc3RydWN0b3JzLgorICAgICAqCisgICAgICogQGhpZGUgRm9yIHVuaXQgdGVzdCB1c2Ugb25seQorICAgICAqLworICAgIHB1YmxpYyBTU0xTZXNzaW9uQ2FjaGUoT2JqZWN0IGNhY2hlKSB7CisgICAgICAgIG1TZXNzaW9uQ2FjaGUgPSAoU1NMQ2xpZW50U2Vzc2lvbkNhY2hlKSBjYWNoZTsKKyAgICB9CisKKyAgICAvKioKICAgICAgKiBDcmVhdGUgYSBzZXNzaW9uIGNhY2hlIHVzaW5nIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5LgogICAgICAqIEluZGl2aWR1YWwgc2Vzc2lvbiBlbnRyaWVzIHdpbGwgYmUgZmlsZXMgd2l0aGluIHRoZSBkaXJlY3RvcnkuCiAgICAgICogTXVsdGlwbGUgaW5zdGFuY2VzIGZvciB0aGUgc2FtZSBkaXJlY3Rvcnkgc2hhcmUgZGF0YSBpbnRlcm5hbGx5LgpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvb3MvQmF0dGVyeVByb3BlcnRpZXMuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL29zL0JhdHRlcnlQcm9wZXJ0aWVzLmphdmEKaW5kZXggNWRmNTIxNC4uMmQ2NzI2NCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvb3MvQmF0dGVyeVByb3BlcnRpZXMuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9vcy9CYXR0ZXJ5UHJvcGVydGllcy5qYXZhCkBAIC0zMCw4ICszMCw2IEBACiAgICAgcHVibGljIGJvb2xlYW4gYmF0dGVyeVByZXNlbnQ7CiAgICAgcHVibGljIGludCBiYXR0ZXJ5TGV2ZWw7CiAgICAgcHVibGljIGludCBiYXR0ZXJ5Vm9sdGFnZTsKLSAgICBwdWJsaWMgaW50IGJhdHRlcnlDdXJyZW50Tm93OwotICAgIHB1YmxpYyBpbnQgYmF0dGVyeUNoYXJnZUNvdW50ZXI7CiAgICAgcHVibGljIGludCBiYXR0ZXJ5VGVtcGVyYXR1cmU7CiAgICAgcHVibGljIFN0cmluZyBiYXR0ZXJ5VGVjaG5vbG9neTsKIApAQCAtNDksOCArNDcsNiBAQAogICAgICAgICBiYXR0ZXJ5UHJlc2VudCA9IHAucmVhZEludCgpID09IDEgPyB0cnVlIDogZmFsc2U7CiAgICAgICAgIGJhdHRlcnlMZXZlbCA9IHAucmVhZEludCgpOwogICAgICAgICBiYXR0ZXJ5Vm9sdGFnZSA9IHAucmVhZEludCgpOwotICAgICAgICBiYXR0ZXJ5Q3VycmVudE5vdyA9IHAucmVhZEludCgpOwotICAgICAgICBiYXR0ZXJ5Q2hhcmdlQ291bnRlciA9IHAucmVhZEludCgpOwogICAgICAgICBiYXR0ZXJ5VGVtcGVyYXR1cmUgPSBwLnJlYWRJbnQoKTsKICAgICAgICAgYmF0dGVyeVRlY2hub2xvZ3kgPSBwLnJlYWRTdHJpbmcoKTsKICAgICB9CkBAIC02NCw4ICs2MCw2IEBACiAgICAgICAgIHAud3JpdGVJbnQoYmF0dGVyeVByZXNlbnQgPyAxIDogMCk7CiAgICAgICAgIHAud3JpdGVJbnQoYmF0dGVyeUxldmVsKTsKICAgICAgICAgcC53cml0ZUludChiYXR0ZXJ5Vm9sdGFnZSk7Ci0gICAgICAgIHAud3JpdGVJbnQoYmF0dGVyeUN1cnJlbnROb3cpOwotICAgICAgICBwLndyaXRlSW50KGJhdHRlcnlDaGFyZ2VDb3VudGVyKTsKICAgICAgICAgcC53cml0ZUludChiYXR0ZXJ5VGVtcGVyYXR1cmUpOwogICAgICAgICBwLndyaXRlU3RyaW5nKGJhdHRlcnlUZWNobm9sb2d5KTsKICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9vcy9CYXR0ZXJ5UHJvcGVydHkuYWlkbCBiL2NvcmUvamF2YS9hbmRyb2lkL29zL0JhdHRlcnlQcm9wZXJ0eS5haWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzZjJlYzMKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9vcy9CYXR0ZXJ5UHJvcGVydHkuYWlkbApAQCAtMCwwICsxLDE5IEBACisvKgorKiogQ29weXJpZ2h0IDIwMTMsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisKK3BhY2thZ2UgYW5kcm9pZC5vczsKKworcGFyY2VsYWJsZSBCYXR0ZXJ5UHJvcGVydHk7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9vcy9CYXR0ZXJ5UHJvcGVydHkuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL29zL0JhdHRlcnlQcm9wZXJ0eS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0NmY1ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9vcy9CYXR0ZXJ5UHJvcGVydHkuamF2YQpAQCAtMCwwICsxLDcwIEBACisvKiBDb3B5cmlnaHQgMjAxMywgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKworcGFja2FnZSBhbmRyb2lkLm9zOworCitpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWw7CitpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWxhYmxlOworCisvKioKKyAqIHtAaGlkZX0KKyAqLworcHVibGljIGNsYXNzIEJhdHRlcnlQcm9wZXJ0eSBpbXBsZW1lbnRzIFBhcmNlbGFibGUgeworICAgIC8qCisgICAgICogQmF0dGVyeSBwcm9wZXJ0eSBpZGVudGlmaWVycy4gIFRoZXNlIG11c3QgbWF0Y2ggdGhlIHZhbHVlcyBpbgorICAgICAqIGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvYmF0dGVyeXNlcnZpY2UvQmF0dGVyeVNlcnZpY2UuaAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJBVFRFUllfUFJPUF9DSEFSR0VfQ09VTlRFUiA9IDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFUVEVSWV9QUk9QX0NVUlJFTlRfTk9XID0gMjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQVRURVJZX1BST1BfQ1VSUkVOVF9BVkcgPSAzOworCisgICAgcHVibGljIGludCB2YWx1ZUludDsKKworICAgIHB1YmxpYyBCYXR0ZXJ5UHJvcGVydHkoKSB7CisgICAgICAgIHZhbHVlSW50ID0gSW50ZWdlci5NSU5fVkFMVUU7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBQYXJjZWwgcmVhZC93cml0ZSBjb2RlIG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGgKKyAgICAgKiBmcmFtZXdvcmtzL25hdGl2ZS9zZXJ2aWNlcy9iYXR0ZXJ5c2VydmljZS9CYXR0ZXJ5UHJvcGVydHkuY3BwCisgICAgICovCisKKyAgICBwcml2YXRlIEJhdHRlcnlQcm9wZXJ0eShQYXJjZWwgcCkgeworICAgICAgICByZWFkRnJvbVBhcmNlbChwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWFkRnJvbVBhcmNlbChQYXJjZWwgcCkgeworICAgICAgICB2YWx1ZUludCA9IHAucmVhZEludCgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlVG9QYXJjZWwoUGFyY2VsIHAsIGludCBmbGFncykgeworICAgICAgICBwLndyaXRlSW50KHZhbHVlSW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFBhcmNlbGFibGUuQ3JlYXRvcjxCYXR0ZXJ5UHJvcGVydHk+IENSRUFUT1IKKyAgICAgICAgPSBuZXcgUGFyY2VsYWJsZS5DcmVhdG9yPEJhdHRlcnlQcm9wZXJ0eT4oKSB7CisgICAgICAgIHB1YmxpYyBCYXR0ZXJ5UHJvcGVydHkgY3JlYXRlRnJvbVBhcmNlbChQYXJjZWwgcCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBCYXR0ZXJ5UHJvcGVydHkocCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQmF0dGVyeVByb3BlcnR5W10gbmV3QXJyYXkoaW50IHNpemUpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQmF0dGVyeVByb3BlcnR5W3NpemVdOworICAgICAgICB9CisgICAgfTsKKworICAgIHB1YmxpYyBpbnQgZGVzY3JpYmVDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvb3MvSUJhdHRlcnlQcm9wZXJ0aWVzUmVnaXN0cmFyLmFpZGwgYi9jb3JlL2phdmEvYW5kcm9pZC9vcy9JQmF0dGVyeVByb3BlcnRpZXNSZWdpc3RyYXIuYWlkbAppbmRleCAzNzZmNmM5Li5mZDAxODAyIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9vcy9JQmF0dGVyeVByb3BlcnRpZXNSZWdpc3RyYXIuYWlkbAorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9vcy9JQmF0dGVyeVByb3BlcnRpZXNSZWdpc3RyYXIuYWlkbApAQCAtMTcsNiArMTcsNyBAQAogcGFja2FnZSBhbmRyb2lkLm9zOwogCiBpbXBvcnQgYW5kcm9pZC5vcy5JQmF0dGVyeVByb3BlcnRpZXNMaXN0ZW5lcjsKK2ltcG9ydCBhbmRyb2lkLm9zLkJhdHRlcnlQcm9wZXJ0eTsKIAogLyoqCiAgKiB7QGhpZGV9CkBAIC0yNSw0ICsyNiw1IEBACiBpbnRlcmZhY2UgSUJhdHRlcnlQcm9wZXJ0aWVzUmVnaXN0cmFyIHsKICAgICB2b2lkIHJlZ2lzdGVyTGlzdGVuZXIoSUJhdHRlcnlQcm9wZXJ0aWVzTGlzdGVuZXIgbGlzdGVuZXIpOwogICAgIHZvaWQgdW5yZWdpc3Rlckxpc3RlbmVyKElCYXR0ZXJ5UHJvcGVydGllc0xpc3RlbmVyIGxpc3RlbmVyKTsKKyAgICBpbnQgZ2V0UHJvcGVydHkoaW4gaW50IGlkLCBvdXQgQmF0dGVyeVByb3BlcnR5IHByb3ApOwogfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvb3MvTWVzc2FnZVF1ZXVlLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9vcy9NZXNzYWdlUXVldWUuamF2YQppbmRleCA3OTlkZTVjLi5lOTBhNDU3IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9vcy9NZXNzYWdlUXVldWUuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9vcy9NZXNzYWdlUXVldWUuamF2YQpAQCAtMTI2LDYgKzEyNiwxNCBAQAogICAgIH0KIAogICAgIE1lc3NhZ2UgbmV4dCgpIHsKKyAgICAgICAgLy8gUmV0dXJuIGhlcmUgaWYgdGhlIG1lc3NhZ2UgbG9vcCBoYXMgYWxyZWFkeSBxdWl0IGFuZCBiZWVuIGRpc3Bvc2VkLgorICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIGFwcGxpY2F0aW9uIHRyaWVzIHRvIHJlc3RhcnQgYSBsb29wZXIgYWZ0ZXIgcXVpdAorICAgICAgICAvLyB3aGljaCBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICBmaW5hbCBpbnQgcHRyID0gbVB0cjsKKyAgICAgICAgaWYgKHB0ciA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCiAgICAgICAgIGludCBwZW5kaW5nSWRsZUhhbmRsZXJDb3VudCA9IC0xOyAvLyAtMSBvbmx5IGR1cmluZyBmaXJzdCBpdGVyYXRpb24KICAgICAgICAgaW50IG5leHRQb2xsVGltZW91dE1pbGxpcyA9IDA7CiAgICAgICAgIGZvciAoOzspIHsKQEAgLTEzMyw5ICsxNDEsNyBAQAogICAgICAgICAgICAgICAgIEJpbmRlci5mbHVzaFBlbmRpbmdDb21tYW5kcygpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAvLyBXZSBjYW4gYXNzdW1lIG1QdHIgIT0gMCBiZWNhdXNlIHRoZSBsb29wIGlzIG9idmlvdXNseSBzdGlsbCBydW5uaW5nLgotICAgICAgICAgICAgLy8gVGhlIGxvb3BlciB3aWxsIG5vdCBjYWxsIHRoaXMgbWV0aG9kIGFmdGVyIHRoZSBsb29wIHF1aXRzLgotICAgICAgICAgICAgbmF0aXZlUG9sbE9uY2UobVB0ciwgbmV4dFBvbGxUaW1lb3V0TWlsbGlzKTsKKyAgICAgICAgICAgIG5hdGl2ZVBvbGxPbmNlKHB0ciwgbmV4dFBvbGxUaW1lb3V0TWlsbGlzKTsKIAogICAgICAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7CiAgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHJldHJpZXZlIHRoZSBuZXh0IG1lc3NhZ2UuICBSZXR1cm4gaWYgZm91bmQuCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9vcy9QYXJjZWxGaWxlRGVzY3JpcHRvci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvb3MvUGFyY2VsRmlsZURlc2NyaXB0b3IuamF2YQppbmRleCA1MjczYzIwLi44NmRjOGI0IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9vcy9QYXJjZWxGaWxlRGVzY3JpcHRvci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL29zL1BhcmNlbEZpbGVEZXNjcmlwdG9yLmphdmEKQEAgLTg3Miw2ICs4NzIsOCBAQAogICAgICAqLwogICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyB2b2lkIHdyaXRlVG9QYXJjZWwoUGFyY2VsIG91dCwgaW50IGZsYWdzKSB7CisgICAgICAgIC8vIFdBUk5JTkc6IFRoaXMgbXVzdCBzdGF5IGluIHN5bmMgd2l0aCBQYXJjZWw6OnJlYWRQYXJjZWxGaWxlRGVzY3JpcHRvcigpCisgICAgICAgIC8vIGluIGZyYW1ld29ya3MvbmF0aXZlL2xpYnMvYmluZGVyL1BhcmNlbC5jcHAKICAgICAgICAgaWYgKG1XcmFwcGVkICE9IG51bGwpIHsKICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgbVdyYXBwZWQud3JpdGVUb1BhcmNlbChvdXQsIGZsYWdzKTsKQEAgLTg5Nyw2ICs4OTksOCBAQAogICAgICAgICAgICAgPSBuZXcgUGFyY2VsYWJsZS5DcmVhdG9yPFBhcmNlbEZpbGVEZXNjcmlwdG9yPigpIHsKICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgIHB1YmxpYyBQYXJjZWxGaWxlRGVzY3JpcHRvciBjcmVhdGVGcm9tUGFyY2VsKFBhcmNlbCBpbikgeworICAgICAgICAgICAgLy8gV0FSTklORzogVGhpcyBtdXN0IHN0YXkgaW4gc3luYyB3aXRoIFBhcmNlbDo6d3JpdGVQYXJjZWxGaWxlRGVzY3JpcHRvcigpCisgICAgICAgICAgICAvLyBpbiBmcmFtZXdvcmtzL25hdGl2ZS9saWJzL2JpbmRlci9QYXJjZWwuY3BwCiAgICAgICAgICAgICBmaW5hbCBGaWxlRGVzY3JpcHRvciBmZCA9IGluLnJlYWRSYXdGaWxlRGVzY3JpcHRvcigpOwogICAgICAgICAgICAgRmlsZURlc2NyaXB0b3IgY29tbUNoYW5uZWwgPSBudWxsOwogICAgICAgICAgICAgaWYgKGluLnJlYWRJbnQoKSAhPSAwKSB7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9vcy9Qcm9jZXNzLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9vcy9Qcm9jZXNzLmphdmEKaW5kZXggNjMxZWRkNi4uMDU3ZjUxNiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvb3MvUHJvY2Vzcy5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL29zL1Byb2Nlc3MuamF2YQpAQCAtODkyLDE5ICs4OTIsNiBAQAogICAgIH0KIAogICAgIC8qKgotICAgICAqIFNldCB0aGUgb3V0LW9mLW1lbW9yeSBiYWRuZXNzIGFkanVzdG1lbnQgZm9yIGEgcHJvY2Vzcy4KLSAgICAgKiAKLSAgICAgKiBAcGFyYW0gcGlkIFRoZSBwcm9jZXNzIGlkZW50aWZpZXIgdG8gc2V0LgotICAgICAqIEBwYXJhbSBhbXQgQWRqdXN0bWVudCB2YWx1ZSAtLSBsaW51eCBhbGxvd3MgLTE2IHRvICsxNS4KLSAgICAgKiAKLSAgICAgKiBAcmV0dXJuIFJldHVybnMgdHJ1ZSBpZiB0aGUgdW5kZXJseWluZyBzeXN0ZW0gc3VwcG9ydHMgdGhpcwotICAgICAqICAgICAgICAgZmVhdHVyZSwgZWxzZSBmYWxzZS4KLSAgICAgKiAgICAgICAgIAotICAgICAqIHtAaGlkZX0KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIGZpbmFsIG5hdGl2ZSBib29sZWFuIHNldE9vbUFkaihpbnQgcGlkLCBpbnQgYW10KTsKLQotICAgIC8qKgogICAgICAqIEFkanVzdCB0aGUgc3dhcHBpbmVzcyBsZXZlbCBmb3IgYSBwcm9jZXNzLgogICAgICAqCiAgICAgICogQHBhcmFtIHBpZCBUaGUgcHJvY2VzcyBpZGVudGlmaWVyIHRvIHNldC4KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvQ2hlY2tCb3hQcmVmZXJlbmNlLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL0NoZWNrQm94UHJlZmVyZW5jZS5qYXZhCmluZGV4IDE1MzY3NjAuLjFjZTk4YjggMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvQ2hlY2tCb3hQcmVmZXJlbmNlLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9DaGVja0JveFByZWZlcmVuY2UuamF2YQpAQCAtMzQsMTEgKzM0LDE2IEBACiAgKi8KIHB1YmxpYyBjbGFzcyBDaGVja0JveFByZWZlcmVuY2UgZXh0ZW5kcyBUd29TdGF0ZVByZWZlcmVuY2UgewogCi0gICAgcHVibGljIENoZWNrQm94UHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7Ci0gICAgICAgIAotICAgICAgICBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCi0gICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuQ2hlY2tCb3hQcmVmZXJlbmNlLCBkZWZTdHlsZSwgMCk7CisgICAgcHVibGljIENoZWNrQm94UHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBDaGVja0JveFByZWZlcmVuY2UoCisgICAgICAgICAgICBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCisgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuQ2hlY2tCb3hQcmVmZXJlbmNlLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgc2V0U3VtbWFyeU9uKGEuZ2V0U3RyaW5nKGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkNoZWNrQm94UHJlZmVyZW5jZV9zdW1tYXJ5T24pKTsKICAgICAgICAgc2V0U3VtbWFyeU9mZihhLmdldFN0cmluZyhjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5DaGVja0JveFByZWZlcmVuY2Vfc3VtbWFyeU9mZikpOwogICAgICAgICBzZXREaXNhYmxlRGVwZW5kZW50c1N0YXRlKGEuZ2V0Qm9vbGVhbigKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvRGlhbG9nUHJlZmVyZW5jZS5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9EaWFsb2dQcmVmZXJlbmNlLmphdmEKaW5kZXggYTY0M2M4YS4uNTI3NWJjMCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9EaWFsb2dQcmVmZXJlbmNlLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9EaWFsb2dQcmVmZXJlbmNlLmphdmEKQEAgLTY0LDEyICs2NCwxMyBAQAogCiAgICAgLyoqIFdoaWNoIGJ1dHRvbiB3YXMgY2xpY2tlZC4gKi8KICAgICBwcml2YXRlIGludCBtV2hpY2hCdXR0b25DbGlja2VkOwotICAgIAotICAgIHB1YmxpYyBEaWFsb2dQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKLSAgICAgICAgCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5EaWFsb2dQcmVmZXJlbmNlLCBkZWZTdHlsZSwgMCk7CisKKyAgICBwdWJsaWMgRGlhbG9nUHJlZmVyZW5jZSgKKyAgICAgICAgICAgIENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworCisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKKyAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5EaWFsb2dQcmVmZXJlbmNlLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgbURpYWxvZ1RpdGxlID0gYS5nZXRTdHJpbmcoY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuRGlhbG9nUHJlZmVyZW5jZV9kaWFsb2dUaXRsZSk7CiAgICAgICAgIGlmIChtRGlhbG9nVGl0bGUgPT0gbnVsbCkgewogICAgICAgICAgICAgLy8gRmFsbGJhY2sgb24gdGhlIHJlZ3VsYXIgdGl0bGUgb2YgdGhlIHByZWZlcmVuY2UKQEAgLTgzLDEzICs4NCwyMCBAQAogICAgICAgICBtRGlhbG9nTGF5b3V0UmVzSWQgPSBhLmdldFJlc291cmNlSWQoY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuRGlhbG9nUHJlZmVyZW5jZV9kaWFsb2dMYXlvdXQsCiAgICAgICAgICAgICAgICAgbURpYWxvZ0xheW91dFJlc0lkKTsKICAgICAgICAgYS5yZWN5Y2xlKCk7Ci0gICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyBEaWFsb2dQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CiAgICAgfQogCiAgICAgcHVibGljIERpYWxvZ1ByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5hdHRyLmRpYWxvZ1ByZWZlcmVuY2VTdHlsZSk7CiAgICAgfQotICAgIAorCisgICAgcHVibGljIERpYWxvZ1ByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0KSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgbnVsbCk7CisgICAgfQorCiAgICAgLyoqCiAgICAgICogU2V0cyB0aGUgdGl0bGUgb2YgdGhlIGRpYWxvZy4gVGhpcyB3aWxsIGJlIHNob3duIG9uIHN1YnNlcXVlbnQgZGlhbG9ncy4KICAgICAgKiAKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvRWRpdFRleHRQcmVmZXJlbmNlLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL0VkaXRUZXh0UHJlZmVyZW5jZS5qYXZhCmluZGV4IGFhMjc2MjcuLmZmMzcwNDIgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvRWRpdFRleHRQcmVmZXJlbmNlLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9FZGl0VGV4dFByZWZlcmVuY2UuamF2YQpAQCAtNDksOSArNDksOSBAQAogICAgIHByaXZhdGUgRWRpdFRleHQgbUVkaXRUZXh0OwogICAgIAogICAgIHByaXZhdGUgU3RyaW5nIG1UZXh0OwotICAgIAotICAgIHB1YmxpYyBFZGl0VGV4dFByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworCisgICAgcHVibGljIEVkaXRUZXh0UHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgCiAgICAgICAgIG1FZGl0VGV4dCA9IG5ldyBFZGl0VGV4dChjb250ZXh0LCBhdHRycyk7CiAgICAgICAgIApAQCAtNjcsNiArNjcsMTAgQEAKICAgICAgICAgbUVkaXRUZXh0LnNldEVuYWJsZWQodHJ1ZSk7CiAgICAgfQogCisgICAgcHVibGljIEVkaXRUZXh0UHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKwogICAgIHB1YmxpYyBFZGl0VGV4dFByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5hdHRyLmVkaXRUZXh0UHJlZmVyZW5jZVN0eWxlKTsKICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL0xpc3RQcmVmZXJlbmNlLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL0xpc3RQcmVmZXJlbmNlLmphdmEKaW5kZXggOWVkZjExMi4uODA4MWE1NCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9MaXN0UHJlZmVyZW5jZS5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvTGlzdFByZWZlcmVuY2UuamF2YQpAQCAtNDIsMTIgKzQyLDEyIEBACiAgICAgcHJpdmF0ZSBTdHJpbmcgbVN1bW1hcnk7CiAgICAgcHJpdmF0ZSBpbnQgbUNsaWNrZWREaWFsb2dFbnRyeUluZGV4OwogICAgIHByaXZhdGUgYm9vbGVhbiBtVmFsdWVTZXQ7Ci0gICAgCi0gICAgcHVibGljIExpc3RQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzKTsKLSAgICAgICAgCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5MaXN0UHJlZmVyZW5jZSwgMCwgMCk7CisKKyAgICBwdWJsaWMgTGlzdFByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5MaXN0UHJlZmVyZW5jZSwgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIG1FbnRyaWVzID0gYS5nZXRUZXh0QXJyYXkoY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuTGlzdFByZWZlcmVuY2VfZW50cmllcyk7CiAgICAgICAgIG1FbnRyeVZhbHVlcyA9IGEuZ2V0VGV4dEFycmF5KGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkxpc3RQcmVmZXJlbmNlX2VudHJ5VmFsdWVzKTsKICAgICAgICAgYS5yZWN5Y2xlKCk7CkBAIC01NiwxMSArNTYsMTkgQEAKICAgICAgICAgICogaW4gdGhlIFByZWZlcmVuY2UgY2xhc3MuCiAgICAgICAgICAqLwogICAgICAgICBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAotICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlByZWZlcmVuY2UsIDAsIDApOworICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlByZWZlcmVuY2UsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgICAgICBtU3VtbWFyeSA9IGEuZ2V0U3RyaW5nKGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlByZWZlcmVuY2Vfc3VtbWFyeSk7CiAgICAgICAgIGEucmVjeWNsZSgpOwogICAgIH0KIAorICAgIHB1YmxpYyBMaXN0UHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBMaXN0UHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIuZGlhbG9nUHJlZmVyZW5jZVN0eWxlKTsKKyAgICB9CisKICAgICBwdWJsaWMgTGlzdFByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0KSB7CiAgICAgICAgIHRoaXMoY29udGV4dCwgbnVsbCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9NdWx0aUNoZWNrUHJlZmVyZW5jZS5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9NdWx0aUNoZWNrUHJlZmVyZW5jZS5qYXZhCmluZGV4IDY5NTMwNzUuLjU3YzkwNmQgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvTXVsdGlDaGVja1ByZWZlcmVuY2UuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL011bHRpQ2hlY2tQcmVmZXJlbmNlLmphdmEKQEAgLTQwLDEyICs0MCwxMyBAQAogICAgIHByaXZhdGUgYm9vbGVhbltdIG1TZXRWYWx1ZXM7CiAgICAgcHJpdmF0ZSBib29sZWFuW10gbU9yaWdWYWx1ZXM7CiAgICAgcHJpdmF0ZSBTdHJpbmcgbVN1bW1hcnk7Ci0gICAgCi0gICAgcHVibGljIE11bHRpQ2hlY2tQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzKTsKLSAgICAgICAgCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5MaXN0UHJlZmVyZW5jZSwgMCwgMCk7CisKKyAgICBwdWJsaWMgTXVsdGlDaGVja1ByZWZlcmVuY2UoCisgICAgICAgICAgICBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKworICAgICAgICBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkxpc3RQcmVmZXJlbmNlLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgbUVudHJpZXMgPSBhLmdldFRleHRBcnJheShjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5MaXN0UHJlZmVyZW5jZV9lbnRyaWVzKTsKICAgICAgICAgaWYgKG1FbnRyaWVzICE9IG51bGwpIHsKICAgICAgICAgICAgIHNldEVudHJpZXMobUVudHJpZXMpOwpAQCAtNjMsNiArNjQsMTQgQEAKICAgICAgICAgYS5yZWN5Y2xlKCk7CiAgICAgfQogCisgICAgcHVibGljIE11bHRpQ2hlY2tQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIE11bHRpQ2hlY2tQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci5kaWFsb2dQcmVmZXJlbmNlU3R5bGUpOworICAgIH0KKwogICAgIHB1YmxpYyBNdWx0aUNoZWNrUHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQpIHsKICAgICAgICAgdGhpcyhjb250ZXh0LCBudWxsKTsKICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL011bHRpU2VsZWN0TGlzdFByZWZlcmVuY2UuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvTXVsdGlTZWxlY3RMaXN0UHJlZmVyZW5jZS5qYXZhCmluZGV4IDU1M2NlODAuLjZjNGMyMGYgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvTXVsdGlTZWxlY3RMaXN0UHJlZmVyZW5jZS5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvTXVsdGlTZWxlY3RMaXN0UHJlZmVyZW5jZS5qYXZhCkBAIC00NCwxNiArNDQsMjYgQEAKICAgICBwcml2YXRlIFNldDxTdHJpbmc+IG1WYWx1ZXMgPSBuZXcgSGFzaFNldDxTdHJpbmc+KCk7CiAgICAgcHJpdmF0ZSBTZXQ8U3RyaW5nPiBtTmV3VmFsdWVzID0gbmV3IEhhc2hTZXQ8U3RyaW5nPigpOwogICAgIHByaXZhdGUgYm9vbGVhbiBtUHJlZmVyZW5jZUNoYW5nZWQ7Ci0gICAgCi0gICAgcHVibGljIE11bHRpU2VsZWN0TGlzdFByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMpOwotICAgICAgICAKLSAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAotICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLk11bHRpU2VsZWN0TGlzdFByZWZlcmVuY2UsIDAsIDApOworCisgICAgcHVibGljIE11bHRpU2VsZWN0TGlzdFByZWZlcmVuY2UoCisgICAgICAgICAgICBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCisgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuTXVsdGlTZWxlY3RMaXN0UHJlZmVyZW5jZSwgZGVmU3R5bGVBdHRyLAorICAgICAgICAgICAgICAgIGRlZlN0eWxlUmVzKTsKICAgICAgICAgbUVudHJpZXMgPSBhLmdldFRleHRBcnJheShjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5NdWx0aVNlbGVjdExpc3RQcmVmZXJlbmNlX2VudHJpZXMpOwogICAgICAgICBtRW50cnlWYWx1ZXMgPSBhLmdldFRleHRBcnJheShjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5NdWx0aVNlbGVjdExpc3RQcmVmZXJlbmNlX2VudHJ5VmFsdWVzKTsKICAgICAgICAgYS5yZWN5Y2xlKCk7CiAgICAgfQorCisgICAgcHVibGljIE11bHRpU2VsZWN0TGlzdFByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgTXVsdGlTZWxlY3RMaXN0UHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIuZGlhbG9nUHJlZmVyZW5jZVN0eWxlKTsKKyAgICB9CiAgICAgCiAgICAgcHVibGljIE11bHRpU2VsZWN0TGlzdFByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0KSB7CiAgICAgICAgIHRoaXMoY29udGV4dCwgbnVsbCk7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL1ByZWZlcmVuY2UuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvUHJlZmVyZW5jZS5qYXZhCmluZGV4IDM3YTgxMDIuLjlhYmQ3ZWYgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvUHJlZmVyZW5jZS5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvUHJlZmVyZW5jZS5qYXZhCkBAIC0xODgsMzAgKzE4OCwzMyBAQAogCiAgICAgLyoqCiAgICAgICogUGVyZm9ybSBpbmZsYXRpb24gZnJvbSBYTUwgYW5kIGFwcGx5IGEgY2xhc3Mtc3BlY2lmaWMgYmFzZSBzdHlsZS4gVGhpcwotICAgICAqIGNvbnN0cnVjdG9yIG9mIFByZWZlcmVuY2UgYWxsb3dzIHN1YmNsYXNzZXMgdG8gdXNlIHRoZWlyIG93biBiYXNlCi0gICAgICogc3R5bGUgd2hlbiB0aGV5IGFyZSBpbmZsYXRpbmcuIEZvciBleGFtcGxlLCBhIHtAbGluayBDaGVja0JveFByZWZlcmVuY2V9CisgICAgICogY29uc3RydWN0b3Igb2YgUHJlZmVyZW5jZSBhbGxvd3Mgc3ViY2xhc3NlcyB0byB1c2UgdGhlaXIgb3duIGJhc2Ugc3R5bGUKKyAgICAgKiB3aGVuIHRoZXkgYXJlIGluZmxhdGluZy4gRm9yIGV4YW1wbGUsIGEge0BsaW5rIENoZWNrQm94UHJlZmVyZW5jZX0KICAgICAgKiBjb25zdHJ1Y3RvciBjYWxscyB0aGlzIHZlcnNpb24gb2YgdGhlIHN1cGVyIGNsYXNzIGNvbnN0cnVjdG9yIGFuZAotICAgICAqIHN1cHBsaWVzIHtAY29kZSBhbmRyb2lkLlIuYXR0ci5jaGVja0JveFByZWZlcmVuY2VTdHlsZX0gZm9yIDx2YXI+ZGVmU3R5bGU8L3Zhcj4uCi0gICAgICogVGhpcyBhbGxvd3MgdGhlIHRoZW1lJ3MgY2hlY2tib3ggcHJlZmVyZW5jZSBzdHlsZSB0byBtb2RpZnkgYWxsIG9mIHRoZSBiYXNlCi0gICAgICogcHJlZmVyZW5jZSBhdHRyaWJ1dGVzIGFzIHdlbGwgYXMgdGhlIHtAbGluayBDaGVja0JveFByZWZlcmVuY2V9IGNsYXNzJ3MKLSAgICAgKiBhdHRyaWJ1dGVzLgotICAgICAqIAorICAgICAqIHN1cHBsaWVzIHtAY29kZSBhbmRyb2lkLlIuYXR0ci5jaGVja0JveFByZWZlcmVuY2VTdHlsZX0gZm9yCisgICAgICogPHZhcj5kZWZTdHlsZUF0dHI8L3Zhcj4uIFRoaXMgYWxsb3dzIHRoZSB0aGVtZSdzIGNoZWNrYm94IHByZWZlcmVuY2UKKyAgICAgKiBzdHlsZSB0byBtb2RpZnkgYWxsIG9mIHRoZSBiYXNlIHByZWZlcmVuY2UgYXR0cmlidXRlcyBhcyB3ZWxsIGFzIHRoZQorICAgICAqIHtAbGluayBDaGVja0JveFByZWZlcmVuY2V9IGNsYXNzJ3MgYXR0cmlidXRlcy4KKyAgICAgKgogICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBDb250ZXh0IHRoaXMgaXMgYXNzb2NpYXRlZCB3aXRoLCB0aHJvdWdoIHdoaWNoIGl0IGNhbgotICAgICAqICAgICAgICAgICAgYWNjZXNzIHRoZSBjdXJyZW50IHRoZW1lLCByZXNvdXJjZXMsIHtAbGluayBTaGFyZWRQcmVmZXJlbmNlc30sCi0gICAgICogICAgICAgICAgICBldGMuCi0gICAgICogQHBhcmFtIGF0dHJzIFRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBYTUwgdGFnIHRoYXQgaXMgaW5mbGF0aW5nIHRoZSBwcmVmZXJlbmNlLgotICAgICAqIEBwYXJhbSBkZWZTdHlsZSBUaGUgZGVmYXVsdCBzdHlsZSB0byBhcHBseSB0byB0aGlzIHByZWZlcmVuY2UuIElmIDAsIG5vIHN0eWxlCi0gICAgICogICAgICAgICAgICB3aWxsIGJlIGFwcGxpZWQgKGJleW9uZCB3aGF0IGlzIGluY2x1ZGVkIGluIHRoZSB0aGVtZSkuIFRoaXMKLSAgICAgKiAgICAgICAgICAgIG1heSBlaXRoZXIgYmUgYW4gYXR0cmlidXRlIHJlc291cmNlLCB3aG9zZSB2YWx1ZSB3aWxsIGJlCi0gICAgICogICAgICAgICAgICByZXRyaWV2ZWQgZnJvbSB0aGUgY3VycmVudCB0aGVtZSwgb3IgYW4gZXhwbGljaXQgc3R5bGUKLSAgICAgKiAgICAgICAgICAgIHJlc291cmNlLgorICAgICAqICAgICAgICAgICAgYWNjZXNzIHRoZSBjdXJyZW50IHRoZW1lLCByZXNvdXJjZXMsCisgICAgICogICAgICAgICAgICB7QGxpbmsgU2hhcmVkUHJlZmVyZW5jZXN9LCBldGMuCisgICAgICogQHBhcmFtIGF0dHJzIFRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBYTUwgdGFnIHRoYXQgaXMgaW5mbGF0aW5nIHRoZQorICAgICAqICAgICAgICAgICAgcHJlZmVyZW5jZS4KKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVBdHRyIEFuIGF0dHJpYnV0ZSBpbiB0aGUgY3VycmVudCB0aGVtZSB0aGF0IGNvbnRhaW5zIGEKKyAgICAgKiAgICAgICAgICAgIHJlZmVyZW5jZSB0byBhIHN0eWxlIHJlc291cmNlIHRoYXQgc3VwcGxpZXMgZGVmYXVsdCB2YWx1ZXMgZm9yCisgICAgICogICAgICAgICAgICB0aGUgdmlldy4gQ2FuIGJlIDAgdG8gbm90IGxvb2sgZm9yIGRlZmF1bHRzLgorICAgICAqIEBwYXJhbSBkZWZTdHlsZVJlcyBBIHJlc291cmNlIGlkZW50aWZpZXIgb2YgYSBzdHlsZSByZXNvdXJjZSB0aGF0CisgICAgICogICAgICAgICAgICBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIHZpZXcsIHVzZWQgb25seSBpZgorICAgICAqICAgICAgICAgICAgZGVmU3R5bGVBdHRyIGlzIDAgb3IgY2FuIG5vdCBiZSBmb3VuZCBpbiB0aGUgdGhlbWUuIENhbiBiZSAwCisgICAgICogICAgICAgICAgICB0byBub3QgbG9vayBmb3IgZGVmYXVsdHMuCiAgICAgICogQHNlZSAjUHJlZmVyZW5jZShDb250ZXh0LCBBdHRyaWJ1dGVTZXQpCiAgICAgICovCi0gICAgcHVibGljIFByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgeworICAgIHB1YmxpYyBQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKICAgICAgICAgbUNvbnRleHQgPSBjb250ZXh0OwogCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5QcmVmZXJlbmNlLCBkZWZTdHlsZSwgMCk7CisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuUHJlZmVyZW5jZSwgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIGZvciAoaW50IGkgPSBhLmdldEluZGV4Q291bnQoKTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICAgICAgIGludCBhdHRyID0gYS5nZXRJbmRleChpKTsgCiAgICAgICAgICAgICBzd2l0Y2ggKGF0dHIpIHsKQEAgLTI4MSw2ICsyODQsMzAgQEAKICAgICAgICAgICAgIG1DYW5SZWN5Y2xlTGF5b3V0ID0gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGluZmxhdGlvbiBmcm9tIFhNTCBhbmQgYXBwbHkgYSBjbGFzcy1zcGVjaWZpYyBiYXNlIHN0eWxlLiBUaGlzCisgICAgICogY29uc3RydWN0b3Igb2YgUHJlZmVyZW5jZSBhbGxvd3Mgc3ViY2xhc3NlcyB0byB1c2UgdGhlaXIgb3duIGJhc2Ugc3R5bGUKKyAgICAgKiB3aGVuIHRoZXkgYXJlIGluZmxhdGluZy4gRm9yIGV4YW1wbGUsIGEge0BsaW5rIENoZWNrQm94UHJlZmVyZW5jZX0KKyAgICAgKiBjb25zdHJ1Y3RvciBjYWxscyB0aGlzIHZlcnNpb24gb2YgdGhlIHN1cGVyIGNsYXNzIGNvbnN0cnVjdG9yIGFuZAorICAgICAqIHN1cHBsaWVzIHtAY29kZSBhbmRyb2lkLlIuYXR0ci5jaGVja0JveFByZWZlcmVuY2VTdHlsZX0gZm9yCisgICAgICogPHZhcj5kZWZTdHlsZUF0dHI8L3Zhcj4uIFRoaXMgYWxsb3dzIHRoZSB0aGVtZSdzIGNoZWNrYm94IHByZWZlcmVuY2UKKyAgICAgKiBzdHlsZSB0byBtb2RpZnkgYWxsIG9mIHRoZSBiYXNlIHByZWZlcmVuY2UgYXR0cmlidXRlcyBhcyB3ZWxsIGFzIHRoZQorICAgICAqIHtAbGluayBDaGVja0JveFByZWZlcmVuY2V9IGNsYXNzJ3MgYXR0cmlidXRlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBDb250ZXh0IHRoaXMgaXMgYXNzb2NpYXRlZCB3aXRoLCB0aHJvdWdoIHdoaWNoIGl0IGNhbgorICAgICAqICAgICAgICAgICAgYWNjZXNzIHRoZSBjdXJyZW50IHRoZW1lLCByZXNvdXJjZXMsCisgICAgICogICAgICAgICAgICB7QGxpbmsgU2hhcmVkUHJlZmVyZW5jZXN9LCBldGMuCisgICAgICogQHBhcmFtIGF0dHJzIFRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBYTUwgdGFnIHRoYXQgaXMgaW5mbGF0aW5nIHRoZQorICAgICAqICAgICAgICAgICAgcHJlZmVyZW5jZS4KKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVBdHRyIEFuIGF0dHJpYnV0ZSBpbiB0aGUgY3VycmVudCB0aGVtZSB0aGF0IGNvbnRhaW5zIGEKKyAgICAgKiAgICAgICAgICAgIHJlZmVyZW5jZSB0byBhIHN0eWxlIHJlc291cmNlIHRoYXQgc3VwcGxpZXMgZGVmYXVsdCB2YWx1ZXMgZm9yCisgICAgICogICAgICAgICAgICB0aGUgdmlldy4gQ2FuIGJlIDAgdG8gbm90IGxvb2sgZm9yIGRlZmF1bHRzLgorICAgICAqIEBzZWUgI1ByZWZlcmVuY2UoQ29udGV4dCwgQXR0cmlidXRlU2V0KQorICAgICAqLworICAgIHB1YmxpYyBQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQogICAgIAogICAgIC8qKgogICAgICAqIENvbnN0cnVjdG9yIHRoYXQgaXMgY2FsbGVkIHdoZW4gaW5mbGF0aW5nIGEgUHJlZmVyZW5jZSBmcm9tIFhNTC4gVGhpcyBpcwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9QcmVmZXJlbmNlQ2F0ZWdvcnkuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvUHJlZmVyZW5jZUNhdGVnb3J5LmphdmEKaW5kZXggMjI5YTk2YS4uOWM5YjM2ZSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9QcmVmZXJlbmNlQ2F0ZWdvcnkuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL1ByZWZlcmVuY2VDYXRlZ29yeS5qYXZhCkBAIC0zNCw5ICszNCwxNCBAQAogICovCiBwdWJsaWMgY2xhc3MgUHJlZmVyZW5jZUNhdGVnb3J5IGV4dGVuZHMgUHJlZmVyZW5jZUdyb3VwIHsKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEFHID0gIlByZWZlcmVuY2VDYXRlZ29yeSI7Ci0gICAgCi0gICAgcHVibGljIFByZWZlcmVuY2VDYXRlZ29yeShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisKKyAgICBwdWJsaWMgUHJlZmVyZW5jZUNhdGVnb3J5KAorICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisgICAgfQorCisgICAgcHVibGljIFByZWZlcmVuY2VDYXRlZ29yeShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOwogICAgIH0KIAogICAgIHB1YmxpYyBQcmVmZXJlbmNlQ2F0ZWdvcnkoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvUHJlZmVyZW5jZUZyYW1lTGF5b3V0LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL1ByZWZlcmVuY2VGcmFtZUxheW91dC5qYXZhCmluZGV4IDc1MzcyYWEuLjMyMTA5OTggMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvUHJlZmVyZW5jZUZyYW1lTGF5b3V0LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9QcmVmZXJlbmNlRnJhbWVMYXlvdXQuamF2YQpAQCAtNDUsMTAgKzQ1LDE1IEBACiAgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci5wcmVmZXJlbmNlRnJhbWVMYXlvdXRTdHlsZSk7CiAgICAgfQogCi0gICAgcHVibGljIFByZWZlcmVuY2VGcmFtZUxheW91dChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7Ci0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5QcmVmZXJlbmNlRnJhbWVMYXlvdXQsIGRlZlN0eWxlLCAwKTsKKyAgICBwdWJsaWMgUHJlZmVyZW5jZUZyYW1lTGF5b3V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIFByZWZlcmVuY2VGcmFtZUxheW91dCgKKyAgICAgICAgICAgIENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCisgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuUHJlZmVyZW5jZUZyYW1lTGF5b3V0LCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICBmbG9hdCBkZW5zaXR5ID0gY29udGV4dC5nZXRSZXNvdXJjZXMoKS5nZXREaXNwbGF5TWV0cmljcygpLmRlbnNpdHk7CiAgICAgICAgIGludCBkZWZhdWx0Qm9yZGVyVG9wID0gKGludCkgKGRlbnNpdHkgKiBERUZBVUxUX0JPUkRFUl9UT1AgKyAwLjVmKTsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvUHJlZmVyZW5jZUdyb3VwLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL1ByZWZlcmVuY2VHcm91cC5qYXZhCmluZGV4IDVmOGM3OGQuLjJkMzViMWIgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvUHJlZmVyZW5jZUdyb3VwLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9QcmVmZXJlbmNlR3JvdXAuamF2YQpAQCAtNTUsMTkgKzU1LDIzIEBACiAgICAgcHJpdmF0ZSBpbnQgbUN1cnJlbnRQcmVmZXJlbmNlT3JkZXIgPSAwOwogCiAgICAgcHJpdmF0ZSBib29sZWFuIG1BdHRhY2hlZFRvQWN0aXZpdHkgPSBmYWxzZTsKLSAgICAKLSAgICBwdWJsaWMgUHJlZmVyZW5jZUdyb3VwKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKworICAgIHB1YmxpYyBQcmVmZXJlbmNlR3JvdXAoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgbVByZWZlcmVuY2VMaXN0ID0gbmV3IEFycmF5TGlzdDxQcmVmZXJlbmNlPigpOwogCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5QcmVmZXJlbmNlR3JvdXAsIGRlZlN0eWxlLCAwKTsKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5QcmVmZXJlbmNlR3JvdXAsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgICAgICBtT3JkZXJpbmdBc0FkZGVkID0gYS5nZXRCb29sZWFuKGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlByZWZlcmVuY2VHcm91cF9vcmRlcmluZ0Zyb21YbWwsCiAgICAgICAgICAgICAgICAgbU9yZGVyaW5nQXNBZGRlZCk7CiAgICAgICAgIGEucmVjeWNsZSgpOwogICAgIH0KIAorICAgIHB1YmxpYyBQcmVmZXJlbmNlR3JvdXAoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKICAgICBwdWJsaWMgUHJlZmVyZW5jZUdyb3VwKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7CiAgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIDApOwogICAgIH0KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvUmluZ3RvbmVQcmVmZXJlbmNlLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL1Jpbmd0b25lUHJlZmVyZW5jZS5qYXZhCmluZGV4IDJlYmYyOTQuLjQ4OGEwYzQgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvUmluZ3RvbmVQcmVmZXJlbmNlLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9SaW5ndG9uZVByZWZlcmVuY2UuamF2YQpAQCAtNTAsMTEgKzUwLDExIEBACiAgICAgCiAgICAgcHJpdmF0ZSBpbnQgbVJlcXVlc3RDb2RlOwogCi0gICAgcHVibGljIFJpbmd0b25lUHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7Ci0gICAgICAgIAotICAgICAgICBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCi0gICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuUmluZ3RvbmVQcmVmZXJlbmNlLCBkZWZTdHlsZSwgMCk7CisgICAgcHVibGljIFJpbmd0b25lUHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCisgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuUmluZ3RvbmVQcmVmZXJlbmNlLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgbVJpbmd0b25lVHlwZSA9IGEuZ2V0SW50KGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlJpbmd0b25lUHJlZmVyZW5jZV9yaW5ndG9uZVR5cGUsCiAgICAgICAgICAgICAgICAgUmluZ3RvbmVNYW5hZ2VyLlRZUEVfUklOR1RPTkUpOwogICAgICAgICBtU2hvd0RlZmF1bHQgPSBhLmdldEJvb2xlYW4oY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuUmluZ3RvbmVQcmVmZXJlbmNlX3Nob3dEZWZhdWx0LApAQCAtNjQsNiArNjQsMTAgQEAKICAgICAgICAgYS5yZWN5Y2xlKCk7CiAgICAgfQogCisgICAgcHVibGljIFJpbmd0b25lUHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKwogICAgIHB1YmxpYyBSaW5ndG9uZVByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5hdHRyLnJpbmd0b25lUHJlZmVyZW5jZVN0eWxlKTsKICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL1NlZWtCYXJEaWFsb2dQcmVmZXJlbmNlLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL1NlZWtCYXJEaWFsb2dQcmVmZXJlbmNlLmphdmEKaW5kZXggMGU4OWIxNi4uOWEwODgyNyAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9TZWVrQmFyRGlhbG9nUHJlZmVyZW5jZS5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvU2Vla0JhckRpYWxvZ1ByZWZlcmVuY2UuamF2YQpAQCAtMzIsOCArMzIsOSBAQAogCiAgICAgcHJpdmF0ZSBEcmF3YWJsZSBtTXlJY29uOwogCi0gICAgcHVibGljIFNlZWtCYXJEaWFsb2dQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzKTsKKyAgICBwdWJsaWMgU2Vla0JhckRpYWxvZ1ByZWZlcmVuY2UoCisgICAgICAgICAgICBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICBzZXREaWFsb2dMYXlvdXRSZXNvdXJjZShjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmxheW91dC5zZWVrYmFyX2RpYWxvZyk7CiAgICAgICAgIGNyZWF0ZUFjdGlvbkJ1dHRvbnMoKTsKQEAgLTQzLDYgKzQ0LDE4IEBACiAgICAgICAgIHNldERpYWxvZ0ljb24obnVsbCk7CiAgICAgfQogCisgICAgcHVibGljIFNlZWtCYXJEaWFsb2dQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIFNlZWtCYXJEaWFsb2dQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci5kaWFsb2dQcmVmZXJlbmNlU3R5bGUpOworICAgIH0KKworICAgIHB1YmxpYyBTZWVrQmFyRGlhbG9nUHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBudWxsKTsKKyAgICB9CisKICAgICAvLyBBbGxvdyBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlIHRoZSBhY3Rpb24gYnV0dG9ucwogICAgIHB1YmxpYyB2b2lkIGNyZWF0ZUFjdGlvbkJ1dHRvbnMoKSB7CiAgICAgICAgIHNldFBvc2l0aXZlQnV0dG9uVGV4dChhbmRyb2lkLlIuc3RyaW5nLm9rKTsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvU2Vla0JhclByZWZlcmVuY2UuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvU2Vla0JhclByZWZlcmVuY2UuamF2YQppbmRleCA3MTMzZDNhLi5lMzI4OTBkIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL1NlZWtCYXJQcmVmZXJlbmNlLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9TZWVrQmFyUHJlZmVyZW5jZS5qYXZhCkBAIC0zNywxNSArMzcsMjAgQEAKICAgICBwcml2YXRlIGJvb2xlYW4gbVRyYWNraW5nVG91Y2g7CiAKICAgICBwdWJsaWMgU2Vla0JhclByZWZlcmVuY2UoCi0gICAgICAgICAgICBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7Ci0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5Qcm9ncmVzc0JhciwgZGVmU3R5bGUsIDApOworICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5Qcm9ncmVzc0JhciwgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIHNldE1heChhLmdldEludChjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5Qcm9ncmVzc0Jhcl9tYXgsIG1NYXgpKTsKICAgICAgICAgYS5yZWN5Y2xlKCk7CiAgICAgICAgIHNldExheW91dFJlc291cmNlKGNvbS5hbmRyb2lkLmludGVybmFsLlIubGF5b3V0LnByZWZlcmVuY2Vfd2lkZ2V0X3NlZWtiYXIpOwogICAgIH0KIAorICAgIHB1YmxpYyBTZWVrQmFyUHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKwogICAgIHB1YmxpYyBTZWVrQmFyUHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgewogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCAwKTsKICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL1N3aXRjaFByZWZlcmVuY2UuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvU3dpdGNoUHJlZmVyZW5jZS5qYXZhCmluZGV4IDhiYWM2YmQuLjc2ZWY1NDQgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvU3dpdGNoUHJlZmVyZW5jZS5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvU3dpdGNoUHJlZmVyZW5jZS5qYXZhCkBAIC02MCwxMyArNjAsMTkgQEAKICAgICAgKgogICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBDb250ZXh0IHRoYXQgd2lsbCBzdHlsZSB0aGlzIHByZWZlcmVuY2UKICAgICAgKiBAcGFyYW0gYXR0cnMgU3R5bGUgYXR0cmlidXRlcyB0aGF0IGRpZmZlciBmcm9tIHRoZSBkZWZhdWx0Ci0gICAgICogQHBhcmFtIGRlZlN0eWxlIFRoZW1lIGF0dHJpYnV0ZSBkZWZpbmluZyB0aGUgZGVmYXVsdCBzdHlsZSBvcHRpb25zCisgICAgICogQHBhcmFtIGRlZlN0eWxlQXR0ciBBbiBhdHRyaWJ1dGUgaW4gdGhlIGN1cnJlbnQgdGhlbWUgdGhhdCBjb250YWlucyBhCisgICAgICogICAgICAgIHJlZmVyZW5jZSB0byBhIHN0eWxlIHJlc291cmNlIHRoYXQgc3VwcGxpZXMgZGVmYXVsdCB2YWx1ZXMgZm9yCisgICAgICogICAgICAgIHRoZSB2aWV3LiBDYW4gYmUgMCB0byBub3QgbG9vayBmb3IgZGVmYXVsdHMuCisgICAgICogQHBhcmFtIGRlZlN0eWxlUmVzIEEgcmVzb3VyY2UgaWRlbnRpZmllciBvZiBhIHN0eWxlIHJlc291cmNlIHRoYXQKKyAgICAgKiAgICAgICAgc3VwcGxpZXMgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSB2aWV3LCB1c2VkIG9ubHkgaWYKKyAgICAgKiAgICAgICAgZGVmU3R5bGVBdHRyIGlzIDAgb3IgY2FuIG5vdCBiZSBmb3VuZCBpbiB0aGUgdGhlbWUuIENhbiBiZSAwCisgICAgICogICAgICAgIHRvIG5vdCBsb29rIGZvciBkZWZhdWx0cy4KICAgICAgKi8KLSAgICBwdWJsaWMgU3dpdGNoUHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIFN3aXRjaFByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAotICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlN3aXRjaFByZWZlcmVuY2UsIGRlZlN0eWxlLCAwKTsKKyAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5Td2l0Y2hQcmVmZXJlbmNlLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgc2V0U3VtbWFyeU9uKGEuZ2V0U3RyaW5nKGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlN3aXRjaFByZWZlcmVuY2Vfc3VtbWFyeU9uKSk7CiAgICAgICAgIHNldFN1bW1hcnlPZmYoYS5nZXRTdHJpbmcoY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuU3dpdGNoUHJlZmVyZW5jZV9zdW1tYXJ5T2ZmKSk7CiAgICAgICAgIHNldFN3aXRjaFRleHRPbihhLmdldFN0cmluZygKQEAgLTgzLDYgKzg5LDE5IEBACiAgICAgICoKICAgICAgKiBAcGFyYW0gY29udGV4dCBUaGUgQ29udGV4dCB0aGF0IHdpbGwgc3R5bGUgdGhpcyBwcmVmZXJlbmNlCiAgICAgICogQHBhcmFtIGF0dHJzIFN0eWxlIGF0dHJpYnV0ZXMgdGhhdCBkaWZmZXIgZnJvbSB0aGUgZGVmYXVsdAorICAgICAqIEBwYXJhbSBkZWZTdHlsZUF0dHIgQW4gYXR0cmlidXRlIGluIHRoZSBjdXJyZW50IHRoZW1lIHRoYXQgY29udGFpbnMgYQorICAgICAqICAgICAgICByZWZlcmVuY2UgdG8gYSBzdHlsZSByZXNvdXJjZSB0aGF0IHN1cHBsaWVzIGRlZmF1bHQgdmFsdWVzIGZvcgorICAgICAqICAgICAgICB0aGUgdmlldy4gQ2FuIGJlIDAgdG8gbm90IGxvb2sgZm9yIGRlZmF1bHRzLgorICAgICAqLworICAgIHB1YmxpYyBTd2l0Y2hQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IFN3aXRjaFByZWZlcmVuY2Ugd2l0aCB0aGUgZ2l2ZW4gc3R5bGUgb3B0aW9ucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBDb250ZXh0IHRoYXQgd2lsbCBzdHlsZSB0aGlzIHByZWZlcmVuY2UKKyAgICAgKiBAcGFyYW0gYXR0cnMgU3R5bGUgYXR0cmlidXRlcyB0aGF0IGRpZmZlciBmcm9tIHRoZSBkZWZhdWx0CiAgICAgICovCiAgICAgcHVibGljIFN3aXRjaFByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5hdHRyLnN3aXRjaFByZWZlcmVuY2VTdHlsZSk7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL1R3b1N0YXRlUHJlZmVyZW5jZS5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvcHJlZmVyZW5jZS9Ud29TdGF0ZVByZWZlcmVuY2UuamF2YQppbmRleCBhZjgzOTUzLi42ZjhiZTFmIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL1R3b1N0YXRlUHJlZmVyZW5jZS5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvVHdvU3RhdGVQcmVmZXJlbmNlLmphdmEKQEAgLTQyLDkgKzQyLDEzIEBACiAgICAgcHJpdmF0ZSBib29sZWFuIG1TZW5kQ2xpY2tBY2Nlc3NpYmlsaXR5RXZlbnQ7CiAgICAgcHJpdmF0ZSBib29sZWFuIG1EaXNhYmxlRGVwZW5kZW50c1N0YXRlOwogCisgICAgcHVibGljIFR3b1N0YXRlUHJlZmVyZW5jZSgKKyAgICAgICAgICAgIENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworICAgIH0KIAotICAgIHB1YmxpYyBUd29TdGF0ZVByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgIHB1YmxpYyBUd29TdGF0ZVByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKICAgICB9CiAKICAgICBwdWJsaWMgVHdvU3RhdGVQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9wcmVmZXJlbmNlL1ZvbHVtZVByZWZlcmVuY2UuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvVm9sdW1lUHJlZmVyZW5jZS5qYXZhCmluZGV4IGRjNjgzYTYuLjI5ZjI1NDUgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvVm9sdW1lUHJlZmVyZW5jZS5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ByZWZlcmVuY2UvVm9sdW1lUHJlZmVyZW5jZS5qYXZhCkBAIC01MSwxNSArNTEsMjQgQEAKICAgICAvKiogTWF5IGJlIG51bGwgaWYgdGhlIGRpYWxvZyBpc24ndCB2aXNpYmxlLiAqLwogICAgIHByaXZhdGUgU2Vla0JhclZvbHVtaXplciBtU2Vla0JhclZvbHVtaXplcjsKIAotICAgIHB1YmxpYyBWb2x1bWVQcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzKTsKKyAgICBwdWJsaWMgVm9sdW1lUHJlZmVyZW5jZSgKKyAgICAgICAgICAgIENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5Wb2x1bWVQcmVmZXJlbmNlLCAwLCAwKTsKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAorICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlZvbHVtZVByZWZlcmVuY2UsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgICAgICBtU3RyZWFtVHlwZSA9IGEuZ2V0SW50KGFuZHJvaWQuUi5zdHlsZWFibGUuVm9sdW1lUHJlZmVyZW5jZV9zdHJlYW1UeXBlLCAwKTsKICAgICAgICAgYS5yZWN5Y2xlKCk7CiAgICAgfQogCisgICAgcHVibGljIFZvbHVtZVByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVm9sdW1lUHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCAwKTsKKyAgICB9CisKICAgICBwdWJsaWMgdm9pZCBzZXRTdHJlYW1UeXBlKGludCBzdHJlYW1UeXBlKSB7CiAgICAgICAgIG1TdHJlYW1UeXBlID0gc3RyZWFtVHlwZTsKICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9wcm92aWRlci9TZXR0aW5ncy5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvcHJvdmlkZXIvU2V0dGluZ3MuamF2YQppbmRleCA3ZjI0NTM5Li5hOTYwYmJhIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9wcm92aWRlci9TZXR0aW5ncy5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3Byb3ZpZGVyL1NldHRpbmdzLmphdmEKQEAgLTM3NTksNiArMzc1OSw5NyBAQAogICAgICAgICAgICAgICAgICJhY2Nlc3NpYmlsaXR5X2NhcHRpb25pbmdfZm9udF9zY2FsZSI7CiAKICAgICAgICAgLyoqCisgICAgICAgICAqIFNldHRpbmcgdGhhdCBzcGVjaWZpZXMgd2hldGhlciB0aGUgcXVpY2sgc2V0dGluZyB0aWxlIGZvciBkaXNwbGF5CisgICAgICAgICAqIGNvbG9yIGludmVyc2lvbiBpcyBlbmFibGVkLgorICAgICAgICAgKgorICAgICAgICAgKiBAaGlkZQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUNDRVNTSUJJTElUWV9ESVNQTEFZX0lOVkVSU0lPTl9RVUlDS19TRVRUSU5HX0VOQUJMRUQgPQorICAgICAgICAgICAgICAgICJhY2Nlc3NpYmlsaXR5X2Rpc3BsYXlfaW52ZXJzaW9uX3F1aWNrX3NldHRpbmdfZW5hYmxlZCI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHRpbmcgdGhhdCBzcGVjaWZpZXMgd2hldGhlciBkaXNwbGF5IGNvbG9yIGludmVyc2lvbiBpcyBlbmFibGVkLgorICAgICAgICAgKgorICAgICAgICAgKiBAaGlkZQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUNDRVNTSUJJTElUWV9ESVNQTEFZX0lOVkVSU0lPTl9FTkFCTEVEID0KKyAgICAgICAgICAgICAgICAiYWNjZXNzaWJpbGl0eV9kaXNwbGF5X2ludmVyc2lvbl9lbmFibGVkIjsKKworICAgICAgICAvKioKKyAgICAgICAgICogSW50ZWdlciBwcm9wZXJ0eSB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBjb2xvciBpbnZlcnNpb24gdG8KKyAgICAgICAgICogcGVyZm9ybS4gVmFsaWQgdmFsdWVzIGFyZSBkZWZpbmVkIGluIEFjY2Vzc2liaWxpdHlNYW5hZ2VyLgorICAgICAgICAgKgorICAgICAgICAgKiBAaGlkZQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUNDRVNTSUJJTElUWV9ESVNQTEFZX0lOVkVSU0lPTiA9CisgICAgICAgICAgICAgICAgImFjY2Vzc2liaWxpdHlfZGlzcGxheV9pbnZlcnNpb24iOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXR0aW5nIHRoYXQgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIHF1aWNrIHNldHRpbmcgdGlsZSBmb3IgZGlzcGxheQorICAgICAgICAgKiBjb2xvciBzcGFjZSBhZGp1c3RtZW50IGlzIGVuYWJsZWQuCisgICAgICAgICAqCisgICAgICAgICAqIEBoaWRlCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBQ0NFU1NJQklMSVRZX0RJU1BMQVlfREFMVE9OSVpFUl9RVUlDS19TRVRUSU5HX0VOQUJMRUQgPQorICAgICAgICAgICAgICAgICJhY2Nlc3NpYmlsaXR5X2Rpc3BsYXlfZGFsdG9uaXplcl9xdWlja19zZXR0aW5nX2VuYWJsZWQiOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXR0aW5nIHRoYXQgc3BlY2lmaWVzIHdoZXRoZXIgZGlzcGxheSBjb2xvciBzcGFjZSBhZGp1c3RtZW50IGlzCisgICAgICAgICAqIGVuYWJsZWQuCisgICAgICAgICAqCisgICAgICAgICAqIEBoaWRlCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBQ0NFU1NJQklMSVRZX0RJU1BMQVlfREFMVE9OSVpFUl9FTkFCTEVEID0KKyAgICAgICAgICAgICAgICAiYWNjZXNzaWJpbGl0eV9kaXNwbGF5X2RhbHRvbml6ZXJfZW5hYmxlZCI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEludGVnZXIgcHJvcGVydHkgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgY29sb3Igc3BhY2UgYWRqdXN0bWVudCB0bworICAgICAgICAgKiBwZXJmb3JtLiBWYWxpZCB2YWx1ZXMgYXJlIGRlZmluZWQgaW4gQWNjZXNzaWJpbGl0eU1hbmFnZXIuCisgICAgICAgICAqCisgICAgICAgICAqIEBoaWRlCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBQ0NFU1NJQklMSVRZX0RJU1BMQVlfREFMVE9OSVpFUiA9CisgICAgICAgICAgICAgICAgImFjY2Vzc2liaWxpdHlfZGlzcGxheV9kYWx0b25pemVyIjsKKworICAgICAgICAvKioKKyAgICAgICAgICogU2V0dGluZyB0aGF0IHNwZWNpZmllcyB3aGV0aGVyIHRoZSBxdWljayBzZXR0aW5nIHRpbGUgZm9yIGRpc3BsYXkKKyAgICAgICAgICogY29udHJhc3QgZW5oYW5jZW1lbnQgaXMgZW5hYmxlZC4KKyAgICAgICAgICoKKyAgICAgICAgICogQGhpZGUKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEFDQ0VTU0lCSUxJVFlfRElTUExBWV9DT05UUkFTVF9RVUlDS19TRVRUSU5HX0VOQUJMRUQgPQorICAgICAgICAgICAgICAgICJhY2Nlc3NpYmlsaXR5X2Rpc3BsYXlfY29udHJhc3RfcXVpY2tfc2V0dGluZ19lbmFibGVkIjsKKworICAgICAgICAvKioKKyAgICAgICAgICogU2V0dGluZyB0aGF0IHNwZWNpZmllcyB3aGV0aGVyIGRpc3BsYXkgY29udHJhc3QgZW5oYW5jZW1lbnQgaXMKKyAgICAgICAgICogZW5hYmxlZC4KKyAgICAgICAgICoKKyAgICAgICAgICogQGhpZGUKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEFDQ0VTU0lCSUxJVFlfRElTUExBWV9DT05UUkFTVF9FTkFCTEVEID0KKyAgICAgICAgICAgICAgICAiYWNjZXNzaWJpbGl0eV9kaXNwbGF5X2NvbnRyYXN0X2VuYWJsZWQiOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBGbG9hdGluZyBwb2ludCBwcm9wZXJ0eSB0aGF0IHNwZWNpZmllcyBkaXNwbGF5IGNvbnRyYXN0IGFkanVzdG1lbnQuCisgICAgICAgICAqIFZhbGlkIHJhbmdlIGlzIFswLCAuLi5dIHdoZXJlIDAgaXMgZ3JheSwgMSBpcyBub3JtYWwsIGFuZCBoaWdoZXIKKyAgICAgICAgICogdmFsdWVzIGluZGljYXRlIGVuaGFuY2VkIGNvbnRyYXN0LgorICAgICAgICAgKgorICAgICAgICAgKiBAaGlkZQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUNDRVNTSUJJTElUWV9ESVNQTEFZX0NPTlRSQVNUID0KKyAgICAgICAgICAgICAgICAiYWNjZXNzaWJpbGl0eV9kaXNwbGF5X2NvbnRyYXN0IjsKKworICAgICAgICAvKioKKyAgICAgICAgICogRmxvYXRpbmcgcG9pbnQgcHJvcGVydHkgdGhhdCBzcGVjaWZpZXMgZGlzcGxheSBicmlnaHRuZXNzIGFkanVzdG1lbnQuCisgICAgICAgICAqIFZhbGlkIHJhbmdlIGlzIFstMSwgMV0gd2hlcmUgLTEgaXMgYmxhY2ssIDAgaXMgZGVmYXVsdCwgYW5kIDEgaXMKKyAgICAgICAgICogd2hpdGUuCisgICAgICAgICAqCisgICAgICAgICAqIEBoaWRlCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBQ0NFU1NJQklMSVRZX0RJU1BMQVlfQlJJR0hUTkVTUyA9CisgICAgICAgICAgICAgICAgImFjY2Vzc2liaWxpdHlfZGlzcGxheV9icmlnaHRuZXNzIjsKKworICAgICAgICAvKioKICAgICAgICAgICogVGhlIHRpbW91dCBmb3IgY29uc2lkZXJpbmcgYSBwcmVzcyB0byBiZSBhIGxvbmcgcHJlc3MgaW4gbWlsbGlzZWNvbmRzLgogICAgICAgICAgKiBAaGlkZQogICAgICAgICAgKi8KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvQWJzdHJhY3RFdmVudExvZ2dlci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9BYnN0cmFjdEV2ZW50TG9nZ2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzdmODY1NgotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvQWJzdHJhY3RFdmVudExvZ2dlci5qYXZhCkBAIC0wLDAgKzEsMTI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QKKyAqIHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQKKyAqIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZQorICogTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIKKyAqIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuc3BlZWNoLnR0czsKKworaW1wb3J0IGFuZHJvaWQub3MuU3lzdGVtQ2xvY2s7CisKKy8qKgorICogQmFzZSBjbGFzcyBmb3Igc3RvcmluZyBkYXRhIGFib3V0IGEgZ2l2ZW4gc3BlZWNoIHN5bnRoZXNpcyByZXF1ZXN0IHRvIHRoZQorICogZXZlbnQgbG9ncy4gVGhlIGRhdGEgdGhhdCBpcyBsb2dnZWQgZGVwZW5kcyBvbiBhY3R1YWwgaW1wbGVtZW50YXRpb24uIE5vdGUKKyAqIHRoYXQge0BsaW5rIEFic3RyYWN0RXZlbnRMb2dnZXIjb25BdWRpb0RhdGFXcml0dGVuKCl9IGFuZAorICoge0BsaW5rIEFic3RyYWN0RXZlbnRMb2dnZXIjb25FbmdpbmVDb21wbGV0ZSgpfSBtdXN0IGJlIGNhbGxlZCBmcm9tIGEgc2luZ2xlCisgKiB0aHJlYWQgKHVzdWFsbHkgdGhlIGF1ZGlvIHBsYXliYWNrIHRocmVhZH0uCisgKi8KK2Fic3RyYWN0IGNsYXNzIEFic3RyYWN0RXZlbnRMb2dnZXIgeworICAgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgbVNlcnZpY2VBcHA7CisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBtQ2FsbGVyVWlkOworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgbUNhbGxlclBpZDsKKyAgICBwcm90ZWN0ZWQgZmluYWwgbG9uZyBtUmVjZWl2ZWRUaW1lOworICAgIHByb3RlY3RlZCBsb25nIG1QbGF5YmFja1N0YXJ0VGltZSA9IC0xOworCisgICAgcHJpdmF0ZSB2b2xhdGlsZSBsb25nIG1SZXF1ZXN0UHJvY2Vzc2luZ1N0YXJ0VGltZSA9IC0xOworICAgIHByaXZhdGUgdm9sYXRpbGUgbG9uZyBtRW5naW5lU3RhcnRUaW1lID0gLTE7CisgICAgcHJpdmF0ZSB2b2xhdGlsZSBsb25nIG1FbmdpbmVDb21wbGV0ZVRpbWUgPSAtMTsKKworICAgIHByaXZhdGUgYm9vbGVhbiBtTG9nV3JpdHRlbiA9IGZhbHNlOworCisgICAgQWJzdHJhY3RFdmVudExvZ2dlcihpbnQgY2FsbGVyVWlkLCBpbnQgY2FsbGVyUGlkLCBTdHJpbmcgc2VydmljZUFwcCkgeworICAgICAgICBtQ2FsbGVyVWlkID0gY2FsbGVyVWlkOworICAgICAgICBtQ2FsbGVyUGlkID0gY2FsbGVyUGlkOworICAgICAgICBtU2VydmljZUFwcCA9IHNlcnZpY2VBcHA7CisgICAgICAgIG1SZWNlaXZlZFRpbWUgPSBTeXN0ZW1DbG9jay5lbGFwc2VkUmVhbHRpbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3RpZmllcyB0aGUgbG9nZ2VyIHRoYXQgdGhpcyByZXF1ZXN0IGhhcyBiZWVuIHNlbGVjdGVkIGZyb20KKyAgICAgKiB0aGUgcHJvY2Vzc2luZyBxdWV1ZSBmb3IgcHJvY2Vzc2luZy4gRW5naW5lIGxhdGVuY3kgLyB0b3RhbCB0aW1lCisgICAgICogaXMgbWVhc3VyZWQgZnJvbSB0aGlzIGJhc2VsaW5lLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIG9uUmVxdWVzdFByb2Nlc3NpbmdTdGFydCgpIHsKKyAgICAgICAgbVJlcXVlc3RQcm9jZXNzaW5nU3RhcnRUaW1lID0gU3lzdGVtQ2xvY2suZWxhcHNlZFJlYWx0aW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdGhlIGxvZ2dlciB0aGF0IGEgY2h1bmsgb2YgZGF0YSBoYXMgYmVlbiByZWNlaXZlZCBmcm9tCisgICAgICogdGhlIGVuZ2luZS4gTWlnaHQgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIG9uRW5naW5lRGF0YVJlY2VpdmVkKCkgeworICAgICAgICBpZiAobUVuZ2luZVN0YXJ0VGltZSA9PSAtMSkgeworICAgICAgICAgICAgbUVuZ2luZVN0YXJ0VGltZSA9IFN5c3RlbUNsb2NrLmVsYXBzZWRSZWFsdGltZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdGhlIGxvZ2dlciB0aGF0IHRoZSBlbmdpbmUgaGFzIGZpbmlzaGVkIHByb2Nlc3NpbmcgZGF0YS4KKyAgICAgKiBXaWxsIGJlIGNhbGxlZCBleGFjdGx5IG9uY2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgb25FbmdpbmVDb21wbGV0ZSgpIHsKKyAgICAgICAgbUVuZ2luZUNvbXBsZXRlVGltZSA9IFN5c3RlbUNsb2NrLmVsYXBzZWRSZWFsdGltZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoZSBsb2dnZXIgdGhhdCBhdWRpbyBwbGF5YmFjayBoYXMgc3RhcnRlZCBmb3Igc29tZSBzZWN0aW9uCisgICAgICogb2YgdGhlIHN5bnRoZXNpcy4gVGhpcyBpcyBub3JtYWxseSBzb21lIGFtb3VudCBvZiB0aW1lIGFmdGVyIHRoZSBlbmdpbmUKKyAgICAgKiBoYXMgc3ludGhlc2l6ZWQgZGF0YSBhbmQgdmFyaWVzIGRlcGVuZGluZyBvbiB1dHRlcmFuY2VzIGFuZAorICAgICAqIG90aGVyIGF1ZGlvIGN1cnJlbnRseSBpbiB0aGUgcXVldWUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgb25BdWRpb0RhdGFXcml0dGVuKCkgeworICAgICAgICAvLyBGb3Igbm93LCBrZWVwIHRyYWNrIG9mIG9ubHkgdGhlIGZpcnN0IGNodW5rIG9mIGF1ZGlvCisgICAgICAgIC8vIHRoYXQgd2FzIHBsYXllZC4KKyAgICAgICAgaWYgKG1QbGF5YmFja1N0YXJ0VGltZSA9PSAtMSkgeworICAgICAgICAgICAgbVBsYXliYWNrU3RhcnRUaW1lID0gU3lzdGVtQ2xvY2suZWxhcHNlZFJlYWx0aW1lKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3RpZmllcyB0aGUgbG9nZ2VyIHRoYXQgdGhlIGN1cnJlbnQgc3ludGhlc2lzIGhhcyBjb21wbGV0ZWQuCisgICAgICogQWxsIGF2YWlsYWJsZSBkYXRhIGlzIG5vdCBsb2dnZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgb25Db21wbGV0ZWQoaW50IHN0YXR1c0NvZGUpIHsKKyAgICAgICAgaWYgKG1Mb2dXcml0dGVuKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtTG9nV3JpdHRlbiA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBsb25nIGNvbXBsZXRpb25UaW1lID0gU3lzdGVtQ2xvY2suZWxhcHNlZFJlYWx0aW1lKCk7CisKKyAgICAgICAgLy8gV2UgZG9uJ3QgcmVwb3J0IGxhdGVuY3kgZm9yIHN0b3BwZWQgc3ludGhlc2VzIGJlY2F1c2UgdGhlaXIgb3ZlcmFsbAorICAgICAgICAvLyB0b3RhbCB0aW1lIHNwZW50IHdpbGwgYmUgaW5hY2N1cmF0ZSAod2lsbCBub3QgY29ycmVsYXRlIHdpdGgKKyAgICAgICAgLy8gdGhlIGxlbmd0aCBvZiB0aGUgdXR0ZXJhbmNlKS4KKworICAgICAgICAvLyBvbkF1ZGlvRGF0YVdyaXR0ZW4oKSBzaG91bGQgbm9ybWFsbHkgYWx3YXlzIGJlIGNhbGxlZCwgYW5kIGhlbmNlIG1QbGF5YmFja1N0YXJ0VGltZQorICAgICAgICAvLyBzaG91bGQgYmUgc2V0LCBpZiBhbiBlcnJvciBkb2VzIG5vdCBvY2N1ci4KKyAgICAgICAgaWYgKHN0YXR1c0NvZGUgIT0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5TVUNDRVNTCisgICAgICAgICAgICAgICAgfHwgbVBsYXliYWNrU3RhcnRUaW1lID09IC0xIHx8IG1FbmdpbmVDb21wbGV0ZVRpbWUgPT0gLTEpIHsKKyAgICAgICAgICAgIGxvZ0ZhaWx1cmUoc3RhdHVzQ29kZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBsb25nIGF1ZGlvTGF0ZW5jeSA9IG1QbGF5YmFja1N0YXJ0VGltZSAtIG1SZWNlaXZlZFRpbWU7CisgICAgICAgIGZpbmFsIGxvbmcgZW5naW5lTGF0ZW5jeSA9IG1FbmdpbmVTdGFydFRpbWUgLSBtUmVxdWVzdFByb2Nlc3NpbmdTdGFydFRpbWU7CisgICAgICAgIGZpbmFsIGxvbmcgZW5naW5lVG90YWwgPSBtRW5naW5lQ29tcGxldGVUaW1lIC0gbVJlcXVlc3RQcm9jZXNzaW5nU3RhcnRUaW1lOworICAgICAgICBsb2dTdWNjZXNzKGF1ZGlvTGF0ZW5jeSwgZW5naW5lTGF0ZW5jeSwgZW5naW5lVG90YWwpOworICAgIH0KKworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGxvZ0ZhaWx1cmUoaW50IHN0YXR1c0NvZGUpOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGxvZ1N1Y2Nlc3MobG9uZyBhdWRpb0xhdGVuY3ksIGxvbmcgZW5naW5lTGF0ZW5jeSwKKyAgICAgICAgICAgIGxvbmcgZW5naW5lVG90YWwpOworCisKK30KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvQWJzdHJhY3RTeW50aGVzaXNDYWxsYmFjay5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9BYnN0cmFjdFN5bnRoZXNpc0NhbGxiYWNrLmphdmEKaW5kZXggYzdhNGFmMC4uOTFlMTE5YiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9BYnN0cmFjdFN5bnRoZXNpc0NhbGxiYWNrLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9BYnN0cmFjdFN5bnRoZXNpc0NhbGxiYWNrLmphdmEKQEAgLTE1LDE1ICsxNSwyOCBAQAogICovCiBwYWNrYWdlIGFuZHJvaWQuc3BlZWNoLnR0czsKIAorCiAvKioKICAqIERlZmluZXMgYWRkaXRpb25hbCBtZXRob2RzIHRoZSBzeW50aGVzaXMgY2FsbGJhY2sgbXVzdCBpbXBsZW1lbnQgdGhhdAogICogYXJlIHByaXZhdGUgdG8gdGhlIFRUUyBzZXJ2aWNlIGltcGxlbWVudGF0aW9uLgorICoKKyAqIEFsbCBvZiB0aGVzZSBjbGFzcyBtZXRob2RzICh3aXRoIHRoZSBleGNlcHRpb24gb2Yge0BsaW5rICNzdG9wKCl9KSBjYW4gYmUgb25seSBjYWxsZWQgb24gdGhlCisgKiBzeW50aGVzaXMgdGhyZWFkLCB3aGlsZSBpbnNpZGUKKyAqIHtAbGluayBUZXh0VG9TcGVlY2hTZXJ2aWNlI29uU3ludGhlc2l6ZVRleHR9IG9yIHtAbGluayBUZXh0VG9TcGVlY2hTZXJ2aWNlI29uU3ludGhlc2l6ZVRleHRWMn0uCisgKiB7QGxpbmsgI3N0b3AoKX0gaXMgdGhlIGV4Y2VwdGlvbiwgaXQgbWF5IGJlIGNhbGxlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCiAgKi8KIGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3ludGhlc2lzQ2FsbGJhY2sgaW1wbGVtZW50cyBTeW50aGVzaXNDYWxsYmFjayB7CisgICAgLyoqIElmIHRydWUsIHJlcXVlc3QgY29tZXMgZnJvbSBWMiBUVFMgaW50ZXJmYWNlICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGJvb2xlYW4gbUNsaWVudElzVXNpbmdWMjsKKwogICAgIC8qKgotICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBzeW50aGVzaXMgcmVxdWVzdCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqIEBwYXJhbSBjbGllbnRJc1VzaW5nVjIgSWYgdHJ1ZSwgdGhpcyBjYWxsYmFjayB3aWxsIGJlIHVzZWQgaW5zaWRlCisgICAgICogICAgICAgICB7QGxpbmsgVGV4dFRvU3BlZWNoU2VydmljZSNvblN5bnRoZXNpemVUZXh0VjJ9IG1ldGhvZC4KICAgICAgKi8KLSAgICBhYnN0cmFjdCBib29sZWFuIGlzRG9uZSgpOworICAgIEFic3RyYWN0U3ludGhlc2lzQ2FsbGJhY2soYm9vbGVhbiBjbGllbnRJc1VzaW5nVjIpIHsKKyAgICAgICAgbUNsaWVudElzVXNpbmdWMiA9IGNsaWVudElzVXNpbmdWMjsKKyAgICB9CiAKICAgICAvKioKICAgICAgKiBBYm9ydHMgdGhlIHNwZWVjaCByZXF1ZXN0LgpAQCAtMzEsNCArNDQsMTYgQEAKICAgICAgKiBDYW4gYmUgY2FsbGVkIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KICAgICAgKi8KICAgICBhYnN0cmFjdCB2b2lkIHN0b3AoKTsKKworICAgIC8qKgorICAgICAqIEdldCBzdGF0dXMgY29kZSBmb3IgYSAic3RvcCIuCisgICAgICoKKyAgICAgKiBWMiBDbGllbnRzIHdpbGwgcmVjZWl2ZSBzcGVjaWFsIHN0YXR1cywgVjEgY2xpZW50cyB3aWxsIHJlY2VpdmUgc3RhbmRhcmQgZXJyb3IuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSBjYWxsZWQgb24gdGhlIHN5bnRoZXNpcyB0aHJlYWQsCisgICAgICogd2hpbGUgaW4ge0BsaW5rIFRleHRUb1NwZWVjaFNlcnZpY2Ujb25TeW50aGVzaXplVGV4dH0uCisgICAgICovCisgICAgaW50IGVycm9yQ29kZU9uU3RvcCgpIHsKKyAgICAgICAgcmV0dXJuIG1DbGllbnRJc1VzaW5nVjIgPyBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNUT1BQRUQgOiBUZXh0VG9TcGVlY2guRVJST1I7CisgICAgfQogfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9BdWRpb1BsYXliYWNrSGFuZGxlci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9BdWRpb1BsYXliYWNrSGFuZGxlci5qYXZhCmluZGV4IGQ2M2Y2MDUuLmRjZjQ5YjAgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvQXVkaW9QbGF5YmFja0hhbmRsZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL0F1ZGlvUGxheWJhY2tIYW5kbGVyLmphdmEKQEAgLTQzLDcgKzQzLDcgQEAKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGl0ZW0uc3RvcChmYWxzZSk7CisgICAgICAgIGl0ZW0uc3RvcChUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNUT1BQRUQpOwogICAgIH0KIAogICAgIHB1YmxpYyB2b2lkIGVucXVldWUoUGxheWJhY2tRdWV1ZUl0ZW0gaXRlbSkgewpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9BdWRpb1BsYXliYWNrUXVldWVJdGVtLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL0F1ZGlvUGxheWJhY2tRdWV1ZUl0ZW0uamF2YQppbmRleCAxYTFmZGE4MS4uYzUxNDYzOSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9BdWRpb1BsYXliYWNrUXVldWVJdGVtLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9BdWRpb1BsYXliYWNrUXVldWVJdGVtLmphdmEKQEAgLTUzLDcgKzUzLDcgQEAKICAgICAgICAgZGlzcGF0Y2hlci5kaXNwYXRjaE9uU3RhcnQoKTsKICAgICAgICAgbVBsYXllciA9IE1lZGlhUGxheWVyLmNyZWF0ZShtQ29udGV4dCwgbVVyaSk7CiAgICAgICAgIGlmIChtUGxheWVyID09IG51bGwpIHsKLSAgICAgICAgICAgIGRpc3BhdGNoZXIuZGlzcGF0Y2hPbkVycm9yKCk7CisgICAgICAgICAgICBkaXNwYXRjaGVyLmRpc3BhdGNoT25FcnJvcihUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLkVSUk9SX09VVFBVVCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtODMsOSArODMsOSBAQAogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1GaW5pc2hlZCkgewotICAgICAgICAgICAgZGlzcGF0Y2hlci5kaXNwYXRjaE9uRG9uZSgpOworICAgICAgICAgICAgZGlzcGF0Y2hlci5kaXNwYXRjaE9uU3VjY2VzcygpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZGlzcGF0Y2hlci5kaXNwYXRjaE9uRXJyb3IoKTsKKyAgICAgICAgICAgIGRpc3BhdGNoZXIuZGlzcGF0Y2hPblN0b3AoKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtOTksNyArOTksNyBAQAogICAgIH0KIAogICAgIEBPdmVycmlkZQotICAgIHZvaWQgc3RvcChib29sZWFuIGlzRXJyb3IpIHsKKyAgICB2b2lkIHN0b3AoaW50IGVycm9yQ29kZSkgewogICAgICAgICBtRG9uZS5vcGVuKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9FdmVudExvZ1RhZ3MubG9ndGFncyBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvRXZlbnRMb2dUYWdzLmxvZ3RhZ3MKaW5kZXggZjg2NTRhZC4uZTIwOWEyOCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9FdmVudExvZ1RhZ3MubG9ndGFncworKysgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL0V2ZW50TG9nVGFncy5sb2d0YWdzCkBAIC00LDMgKzQsNiBAQAogCiA3NjAwMSB0dHNfc3BlYWtfc3VjY2VzcyAoZW5naW5lfDMpLChjYWxsZXJfdWlkfDEpLChjYWxsZXJfcGlkfDEpLChsZW5ndGh8MSksKGxvY2FsZXwzKSwocmF0ZXwxKSwocGl0Y2h8MSksKGVuZ2luZV9sYXRlbmN5fDJ8MyksKGVuZ2luZV90b3RhbHwyfDMpLChhdWRpb19sYXRlbmN5fDJ8MykKIDc2MDAyIHR0c19zcGVha19mYWlsdXJlIChlbmdpbmV8MyksKGNhbGxlcl91aWR8MSksKGNhbGxlcl9waWR8MSksKGxlbmd0aHwxKSwobG9jYWxlfDMpLChyYXRlfDEpLChwaXRjaHwxKQorCis3NjAwMyB0dHNfdjJfc3BlYWtfc3VjY2VzcyAoZW5naW5lfDMpLChjYWxsZXJfdWlkfDEpLChjYWxsZXJfcGlkfDEpLChsZW5ndGh8MSksKHJlcXVlc3RfY29uZmlnfDMpLChlbmdpbmVfbGF0ZW5jeXwyfDMpLChlbmdpbmVfdG90YWx8MnwzKSwoYXVkaW9fbGF0ZW5jeXwyfDMpCis3NjAwNCB0dHNfdjJfc3BlYWtfZmFpbHVyZSAoZW5naW5lfDMpLChjYWxsZXJfdWlkfDEpLChjYWxsZXJfcGlkfDEpLChsZW5ndGh8MSksKHJlcXVlc3RfY29uZmlnfDMpLCAoc3RhdHVzQ29kZXwxKQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9FdmVudExvZ2dlci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9FdmVudExvZ2dlci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MmVkNGRkLi4wMDAwMDAwCi0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvRXZlbnRMb2dnZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE3OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QKLSAqIHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mCi0gKiB0aGUgTGljZW5zZSBhdAotICoKLSAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQKLSAqIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZQotICogTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIKLSAqIHRoZSBMaWNlbnNlLgotICovCi1wYWNrYWdlIGFuZHJvaWQuc3BlZWNoLnR0czsKLQotaW1wb3J0IGFuZHJvaWQub3MuU3lzdGVtQ2xvY2s7Ci1pbXBvcnQgYW5kcm9pZC50ZXh0LlRleHRVdGlsczsKLWltcG9ydCBhbmRyb2lkLnV0aWwuTG9nOwotCi0vKioKLSAqIFdyaXRlcyBkYXRhIGFib3V0IGEgZ2l2ZW4gc3BlZWNoIHN5bnRoZXNpcyByZXF1ZXN0IHRvIHRoZSBldmVudCBsb2dzLgotICogVGhlIGRhdGEgdGhhdCBpcyBsb2dnZWQgaW5jbHVkZXMgdGhlIGNhbGxpbmcgYXBwLCBsZW5ndGggb2YgdGhlIHV0dGVyYW5jZSwKLSAqIHNwZWVjaCByYXRlIC8gcGl0Y2ggYW5kIHRoZSBsYXRlbmN5IGFuZCBvdmVyYWxsIHRpbWUgdGFrZW4uCi0gKgotICogTm90ZSB0aGF0IHtAbGluayBFdmVudExvZ2dlciNvblN0b3BwZWQoKX0gYW5kIHtAbGluayBFdmVudExvZ2dlciNvbkVycm9yKCl9Ci0gKiBtaWdodCBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkLCBidXQgb24ge0BsaW5rIEV2ZW50TG9nZ2VyI29uQXVkaW9EYXRhV3JpdHRlbigpfSBhbmQKLSAqIHtAbGluayBFdmVudExvZ2dlciNvbkNvbXBsZXRlKCl9IG11c3QgYmUgY2FsbGVkIGZyb20gYSBzaW5nbGUgdGhyZWFkCi0gKiAodXN1YWxseSB0aGUgYXVkaW8gcGxheWJhY2sgdGhyZWFkfQotICovCi1jbGFzcyBFdmVudExvZ2dlciB7Ci0gICAgcHJpdmF0ZSBmaW5hbCBTeW50aGVzaXNSZXF1ZXN0IG1SZXF1ZXN0OwotICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG1TZXJ2aWNlQXBwOwotICAgIHByaXZhdGUgZmluYWwgaW50IG1DYWxsZXJVaWQ7Ci0gICAgcHJpdmF0ZSBmaW5hbCBpbnQgbUNhbGxlclBpZDsKLSAgICBwcml2YXRlIGZpbmFsIGxvbmcgbVJlY2VpdmVkVGltZTsKLSAgICBwcml2YXRlIGxvbmcgbVBsYXliYWNrU3RhcnRUaW1lID0gLTE7Ci0gICAgcHJpdmF0ZSB2b2xhdGlsZSBsb25nIG1SZXF1ZXN0UHJvY2Vzc2luZ1N0YXJ0VGltZSA9IC0xOwotICAgIHByaXZhdGUgdm9sYXRpbGUgbG9uZyBtRW5naW5lU3RhcnRUaW1lID0gLTE7Ci0gICAgcHJpdmF0ZSB2b2xhdGlsZSBsb25nIG1FbmdpbmVDb21wbGV0ZVRpbWUgPSAtMTsKLQotICAgIHByaXZhdGUgdm9sYXRpbGUgYm9vbGVhbiBtRXJyb3IgPSBmYWxzZTsKLSAgICBwcml2YXRlIHZvbGF0aWxlIGJvb2xlYW4gbVN0b3BwZWQgPSBmYWxzZTsKLSAgICBwcml2YXRlIGJvb2xlYW4gbUxvZ1dyaXR0ZW4gPSBmYWxzZTsKLQotICAgIEV2ZW50TG9nZ2VyKFN5bnRoZXNpc1JlcXVlc3QgcmVxdWVzdCwgaW50IGNhbGxlclVpZCwgaW50IGNhbGxlclBpZCwgU3RyaW5nIHNlcnZpY2VBcHApIHsKLSAgICAgICAgbVJlcXVlc3QgPSByZXF1ZXN0OwotICAgICAgICBtQ2FsbGVyVWlkID0gY2FsbGVyVWlkOwotICAgICAgICBtQ2FsbGVyUGlkID0gY2FsbGVyUGlkOwotICAgICAgICBtU2VydmljZUFwcCA9IHNlcnZpY2VBcHA7Ci0gICAgICAgIG1SZWNlaXZlZFRpbWUgPSBTeXN0ZW1DbG9jay5lbGFwc2VkUmVhbHRpbWUoKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBOb3RpZmllcyB0aGUgbG9nZ2VyIHRoYXQgdGhpcyByZXF1ZXN0IGhhcyBiZWVuIHNlbGVjdGVkIGZyb20KLSAgICAgKiB0aGUgcHJvY2Vzc2luZyBxdWV1ZSBmb3IgcHJvY2Vzc2luZy4gRW5naW5lIGxhdGVuY3kgLyB0b3RhbCB0aW1lCi0gICAgICogaXMgbWVhc3VyZWQgZnJvbSB0aGlzIGJhc2VsaW5lLgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIG9uUmVxdWVzdFByb2Nlc3NpbmdTdGFydCgpIHsKLSAgICAgICAgbVJlcXVlc3RQcm9jZXNzaW5nU3RhcnRUaW1lID0gU3lzdGVtQ2xvY2suZWxhcHNlZFJlYWx0aW1lKCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogTm90aWZpZXMgdGhlIGxvZ2dlciB0aGF0IGEgY2h1bmsgb2YgZGF0YSBoYXMgYmVlbiByZWNlaXZlZCBmcm9tCi0gICAgICogdGhlIGVuZ2luZS4gTWlnaHQgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIG9uRW5naW5lRGF0YVJlY2VpdmVkKCkgewotICAgICAgICBpZiAobUVuZ2luZVN0YXJ0VGltZSA9PSAtMSkgewotICAgICAgICAgICAgbUVuZ2luZVN0YXJ0VGltZSA9IFN5c3RlbUNsb2NrLmVsYXBzZWRSZWFsdGltZSgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogTm90aWZpZXMgdGhlIGxvZ2dlciB0aGF0IHRoZSBlbmdpbmUgaGFzIGZpbmlzaGVkIHByb2Nlc3NpbmcgZGF0YS4KLSAgICAgKiBXaWxsIGJlIGNhbGxlZCBleGFjdGx5IG9uY2UuCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgb25FbmdpbmVDb21wbGV0ZSgpIHsKLSAgICAgICAgbUVuZ2luZUNvbXBsZXRlVGltZSA9IFN5c3RlbUNsb2NrLmVsYXBzZWRSZWFsdGltZSgpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIE5vdGlmaWVzIHRoZSBsb2dnZXIgdGhhdCBhdWRpbyBwbGF5YmFjayBoYXMgc3RhcnRlZCBmb3Igc29tZSBzZWN0aW9uCi0gICAgICogb2YgdGhlIHN5bnRoZXNpcy4gVGhpcyBpcyBub3JtYWxseSBzb21lIGFtb3VudCBvZiB0aW1lIGFmdGVyIHRoZSBlbmdpbmUKLSAgICAgKiBoYXMgc3ludGhlc2l6ZWQgZGF0YSBhbmQgdmFyaWVzIGRlcGVuZGluZyBvbiB1dHRlcmFuY2VzIGFuZAotICAgICAqIG90aGVyIGF1ZGlvIGN1cnJlbnRseSBpbiB0aGUgcXVldWUuCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgb25BdWRpb0RhdGFXcml0dGVuKCkgewotICAgICAgICAvLyBGb3Igbm93LCBrZWVwIHRyYWNrIG9mIG9ubHkgdGhlIGZpcnN0IGNodW5rIG9mIGF1ZGlvCi0gICAgICAgIC8vIHRoYXQgd2FzIHBsYXllZC4KLSAgICAgICAgaWYgKG1QbGF5YmFja1N0YXJ0VGltZSA9PSAtMSkgewotICAgICAgICAgICAgbVBsYXliYWNrU3RhcnRUaW1lID0gU3lzdGVtQ2xvY2suZWxhcHNlZFJlYWx0aW1lKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBOb3RpZmllcyB0aGUgbG9nZ2VyIHRoYXQgdGhlIGN1cnJlbnQgc3ludGhlc2lzIHdhcyBzdG9wcGVkLgotICAgICAqIExhdGVuY3kgbnVtYmVycyBhcmUgbm90IHJlcG9ydGVkIGZvciBzdG9wcGVkIHN5bnRoZXNlcy4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBvblN0b3BwZWQoKSB7Ci0gICAgICAgIG1TdG9wcGVkID0gZmFsc2U7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogTm90aWZpZXMgdGhlIGxvZ2dlciB0aGF0IHRoZSBjdXJyZW50IHN5bnRoZXNpcyByZXN1bHRlZCBpbgotICAgICAqIGFuIGVycm9yLiBUaGlzIGlzIGxvZ2dlZCB1c2luZyB7QGxpbmsgRXZlbnRMb2dUYWdzI3dyaXRlVHRzU3BlYWtGYWlsdXJlfS4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBvbkVycm9yKCkgewotICAgICAgICBtRXJyb3IgPSB0cnVlOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIE5vdGlmaWVzIHRoZSBsb2dnZXIgdGhhdCB0aGUgY3VycmVudCBzeW50aGVzaXMgaGFzIGNvbXBsZXRlZC4KLSAgICAgKiBBbGwgYXZhaWxhYmxlIGRhdGEgaXMgbm90IGxvZ2dlZC4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBvbldyaXRlRGF0YSgpIHsKLSAgICAgICAgaWYgKG1Mb2dXcml0dGVuKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtTG9nV3JpdHRlbiA9IHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBsb25nIGNvbXBsZXRpb25UaW1lID0gU3lzdGVtQ2xvY2suZWxhcHNlZFJlYWx0aW1lKCk7Ci0gICAgICAgIC8vIG9uQXVkaW9EYXRhV3JpdHRlbigpIHNob3VsZCBub3JtYWxseSBhbHdheXMgYmUgY2FsbGVkIGlmIGFuCi0gICAgICAgIC8vIGVycm9yIGRvZXMgbm90IG9jY3VyLgotICAgICAgICBpZiAobUVycm9yIHx8IG1QbGF5YmFja1N0YXJ0VGltZSA9PSAtMSB8fCBtRW5naW5lQ29tcGxldGVUaW1lID09IC0xKSB7Ci0gICAgICAgICAgICBFdmVudExvZ1RhZ3Mud3JpdGVUdHNTcGVha0ZhaWx1cmUobVNlcnZpY2VBcHAsIG1DYWxsZXJVaWQsIG1DYWxsZXJQaWQsCi0gICAgICAgICAgICAgICAgICAgIGdldFV0dGVyYW5jZUxlbmd0aCgpLCBnZXRMb2NhbGVTdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgbVJlcXVlc3QuZ2V0U3BlZWNoUmF0ZSgpLCBtUmVxdWVzdC5nZXRQaXRjaCgpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFdlIGRvbid0IHJlcG9ydCBzdG9wcGVkIHN5bnRoZXNlcyBiZWNhdXNlIHRoZWlyIG92ZXJhbGwKLSAgICAgICAgLy8gdG90YWwgdGltZSBzcGVudCB3aWxsIGJlIGlubmFjdXJhdGUgKHdpbGwgbm90IGNvcnJlbGF0ZSB3aXRoCi0gICAgICAgIC8vIHRoZSBsZW5ndGggb2YgdGhlIHV0dGVyYW5jZSkuCi0gICAgICAgIGlmIChtU3RvcHBlZCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgZmluYWwgbG9uZyBhdWRpb0xhdGVuY3kgPSBtUGxheWJhY2tTdGFydFRpbWUgLSBtUmVjZWl2ZWRUaW1lOwotICAgICAgICBmaW5hbCBsb25nIGVuZ2luZUxhdGVuY3kgPSBtRW5naW5lU3RhcnRUaW1lIC0gbVJlcXVlc3RQcm9jZXNzaW5nU3RhcnRUaW1lOwotICAgICAgICBmaW5hbCBsb25nIGVuZ2luZVRvdGFsID0gbUVuZ2luZUNvbXBsZXRlVGltZSAtIG1SZXF1ZXN0UHJvY2Vzc2luZ1N0YXJ0VGltZTsKLQotICAgICAgICBFdmVudExvZ1RhZ3Mud3JpdGVUdHNTcGVha1N1Y2Nlc3MobVNlcnZpY2VBcHAsIG1DYWxsZXJVaWQsIG1DYWxsZXJQaWQsCi0gICAgICAgICAgICAgICAgZ2V0VXR0ZXJhbmNlTGVuZ3RoKCksIGdldExvY2FsZVN0cmluZygpLAotICAgICAgICAgICAgICAgIG1SZXF1ZXN0LmdldFNwZWVjaFJhdGUoKSwgbVJlcXVlc3QuZ2V0UGl0Y2goKSwKLSAgICAgICAgICAgICAgICBlbmdpbmVMYXRlbmN5LCBlbmdpbmVUb3RhbCwgYXVkaW9MYXRlbmN5KTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHV0dGVyYW5jZSBmb3IgdGhlIGdpdmVuIHN5bnRoZXNpcywgMAotICAgICAqICAgICAgICAgIGlmIHRoZSB1dHRlcmFuY2Ugd2FzIHtAY29kZSBudWxsfS4KLSAgICAgKi8KLSAgICBwcml2YXRlIGludCBnZXRVdHRlcmFuY2VMZW5ndGgoKSB7Ci0gICAgICAgIGZpbmFsIFN0cmluZyB1dHRlcmFuY2UgPSBtUmVxdWVzdC5nZXRUZXh0KCk7Ci0gICAgICAgIHJldHVybiB1dHRlcmFuY2UgPT0gbnVsbCA/IDAgOiB1dHRlcmFuY2UubGVuZ3RoKCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyBhIGZvcm1hdHRlZCBsb2NhbGUgc3RyaW5nIGZyb20gdGhlIHN5bnRoZXNpcyBwYXJhbXMgb2YgdGhlCi0gICAgICogZm9ybSBsYW5nLWNvdW50cnktdmFyaWFudC4KLSAgICAgKi8KLSAgICBwcml2YXRlIFN0cmluZyBnZXRMb2NhbGVTdHJpbmcoKSB7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcihtUmVxdWVzdC5nZXRMYW5ndWFnZSgpKTsKLSAgICAgICAgaWYgKCFUZXh0VXRpbHMuaXNFbXB0eShtUmVxdWVzdC5nZXRDb3VudHJ5KCkpKSB7Ci0gICAgICAgICAgICBzYi5hcHBlbmQoJy0nKTsKLSAgICAgICAgICAgIHNiLmFwcGVuZChtUmVxdWVzdC5nZXRDb3VudHJ5KCkpOwotCi0gICAgICAgICAgICBpZiAoIVRleHRVdGlscy5pc0VtcHR5KG1SZXF1ZXN0LmdldFZhcmlhbnQoKSkpIHsKLSAgICAgICAgICAgICAgICBzYi5hcHBlbmQoJy0nKTsKLSAgICAgICAgICAgICAgICBzYi5hcHBlbmQobVJlcXVlc3QuZ2V0VmFyaWFudCgpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBzYi50b1N0cmluZygpOwotICAgIH0KLQotfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9FdmVudExvZ2dlclYxLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL0V2ZW50TG9nZ2VyVjEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDg0MzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9FdmVudExvZ2dlclYxLmphdmEKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90CisgKiB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUCisgKiBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUKKyAqIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyCisgKiB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLnNwZWVjaC50dHM7CisKK2ltcG9ydCBhbmRyb2lkLnRleHQuVGV4dFV0aWxzOworCisvKioKKyAqIFdyaXRlcyBkYXRhIGFib3V0IGEgZ2l2ZW4gc3BlZWNoIHN5bnRoZXNpcyByZXF1ZXN0IGZvciBWMSBBUEkgdG8gdGhlIGV2ZW50CisgKiBsb2dzLiBUaGUgZGF0YSB0aGF0IGlzIGxvZ2dlZCBpbmNsdWRlcyB0aGUgY2FsbGluZyBhcHAsIGxlbmd0aCBvZiB0aGUKKyAqIHV0dGVyYW5jZSwgc3BlZWNoIHJhdGUgLyBwaXRjaCwgdGhlIGxhdGVuY3ksIGFuZCBvdmVyYWxsIHRpbWUgdGFrZW4uCisgKi8KK2NsYXNzIEV2ZW50TG9nZ2VyVjEgZXh0ZW5kcyBBYnN0cmFjdEV2ZW50TG9nZ2VyIHsKKyAgICBwcml2YXRlIGZpbmFsIFN5bnRoZXNpc1JlcXVlc3QgbVJlcXVlc3Q7CisKKyAgICBFdmVudExvZ2dlclYxKFN5bnRoZXNpc1JlcXVlc3QgcmVxdWVzdCwgaW50IGNhbGxlclVpZCwgaW50IGNhbGxlclBpZCwgU3RyaW5nIHNlcnZpY2VBcHApIHsKKyAgICAgICAgc3VwZXIoY2FsbGVyVWlkLCBjYWxsZXJQaWQsIHNlcnZpY2VBcHApOworICAgICAgICBtUmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHJvdGVjdGVkIHZvaWQgbG9nRmFpbHVyZShpbnQgc3RhdHVzQ29kZSkgeworICAgICAgICAvLyBXZSBkb24ndCByZXBvcnQgc3RvcHBlZCBzeW50aGVzZXMgYmVjYXVzZSB0aGVpciBvdmVyYWxsCisgICAgICAgIC8vIHRvdGFsIHRpbWUgc3BlbnQgd2lsbCBiZSBpbmFjY3VyYXRlICh3aWxsIG5vdCBjb3JyZWxhdGUgd2l0aAorICAgICAgICAvLyB0aGUgbGVuZ3RoIG9mIHRoZSB1dHRlcmFuY2UpLgorICAgICAgICBpZiAoc3RhdHVzQ29kZSAhPSBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNUT1BQRUQpIHsKKyAgICAgICAgICAgIEV2ZW50TG9nVGFncy53cml0ZVR0c1NwZWFrRmFpbHVyZShtU2VydmljZUFwcCwgbUNhbGxlclVpZCwgbUNhbGxlclBpZCwKKyAgICAgICAgICAgICAgICAgICAgZ2V0VXR0ZXJhbmNlTGVuZ3RoKCksIGdldExvY2FsZVN0cmluZygpLAorICAgICAgICAgICAgICAgICAgICBtUmVxdWVzdC5nZXRTcGVlY2hSYXRlKCksIG1SZXF1ZXN0LmdldFBpdGNoKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHJvdGVjdGVkIHZvaWQgbG9nU3VjY2Vzcyhsb25nIGF1ZGlvTGF0ZW5jeSwgbG9uZyBlbmdpbmVMYXRlbmN5LCBsb25nIGVuZ2luZVRvdGFsKSB7CisgICAgICAgIEV2ZW50TG9nVGFncy53cml0ZVR0c1NwZWFrU3VjY2VzcyhtU2VydmljZUFwcCwgbUNhbGxlclVpZCwgbUNhbGxlclBpZCwKKyAgICAgICAgICAgICAgICBnZXRVdHRlcmFuY2VMZW5ndGgoKSwgZ2V0TG9jYWxlU3RyaW5nKCksCisgICAgICAgICAgICAgICAgbVJlcXVlc3QuZ2V0U3BlZWNoUmF0ZSgpLCBtUmVxdWVzdC5nZXRQaXRjaCgpLAorICAgICAgICAgICAgICAgIGVuZ2luZUxhdGVuY3ksIGVuZ2luZVRvdGFsLCBhdWRpb0xhdGVuY3kpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdXR0ZXJhbmNlIGZvciB0aGUgZ2l2ZW4gc3ludGhlc2lzLCAwCisgICAgICogICAgICAgICAgaWYgdGhlIHV0dGVyYW5jZSB3YXMge0Bjb2RlIG51bGx9LgorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldFV0dGVyYW5jZUxlbmd0aCgpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIHV0dGVyYW5jZSA9IG1SZXF1ZXN0LmdldFRleHQoKTsKKyAgICAgICAgcmV0dXJuIHV0dGVyYW5jZSA9PSBudWxsID8gMCA6IHV0dGVyYW5jZS5sZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZm9ybWF0dGVkIGxvY2FsZSBzdHJpbmcgZnJvbSB0aGUgc3ludGhlc2lzIHBhcmFtcyBvZiB0aGUKKyAgICAgKiBmb3JtIGxhbmctY291bnRyeS12YXJpYW50LgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGdldExvY2FsZVN0cmluZygpIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKG1SZXF1ZXN0LmdldExhbmd1YWdlKCkpOworICAgICAgICBpZiAoIVRleHRVdGlscy5pc0VtcHR5KG1SZXF1ZXN0LmdldENvdW50cnkoKSkpIHsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgnLScpOworICAgICAgICAgICAgc2IuYXBwZW5kKG1SZXF1ZXN0LmdldENvdW50cnkoKSk7CisKKyAgICAgICAgICAgIGlmICghVGV4dFV0aWxzLmlzRW1wdHkobVJlcXVlc3QuZ2V0VmFyaWFudCgpKSkgeworICAgICAgICAgICAgICAgIHNiLmFwcGVuZCgnLScpOworICAgICAgICAgICAgICAgIHNiLmFwcGVuZChtUmVxdWVzdC5nZXRWYXJpYW50KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9FdmVudExvZ2dlclYyLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL0V2ZW50TG9nZ2VyVjIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGU0ZGFlCi0tLSAvZGV2L251bGwKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9FdmVudExvZ2dlclYyLmphdmEKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90CisgKiB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZgorICogdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUCisgKiBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUKKyAqIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyCisgKiB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLnNwZWVjaC50dHM7CisKKworCisvKioKKyAqIFdyaXRlcyBkYXRhIGFib3V0IGEgZ2l2ZW4gc3BlZWNoIHN5bnRoZXNpcyByZXF1ZXN0IGZvciBWMiBBUEkgdG8gdGhlIGV2ZW50IGxvZ3MuCisgKiBUaGUgZGF0YSB0aGF0IGlzIGxvZ2dlZCBpbmNsdWRlcyB0aGUgY2FsbGluZyBhcHAsIGxlbmd0aCBvZiB0aGUgdXR0ZXJhbmNlLAorICogc3ludGhlc2lzIHJlcXVlc3QgY29uZmlndXJhdGlvbiBhbmQgdGhlIGxhdGVuY3kgYW5kIG92ZXJhbGwgdGltZSB0YWtlbi4KKyAqLworY2xhc3MgRXZlbnRMb2dnZXJWMiBleHRlbmRzIEFic3RyYWN0RXZlbnRMb2dnZXIgeworICAgIHByaXZhdGUgZmluYWwgU3ludGhlc2lzUmVxdWVzdFYyIG1SZXF1ZXN0OworCisgICAgRXZlbnRMb2dnZXJWMihTeW50aGVzaXNSZXF1ZXN0VjIgcmVxdWVzdCwgaW50IGNhbGxlclVpZCwgaW50IGNhbGxlclBpZCwgU3RyaW5nIHNlcnZpY2VBcHApIHsKKyAgICAgICAgc3VwZXIoY2FsbGVyVWlkLCBjYWxsZXJQaWQsIHNlcnZpY2VBcHApOworICAgICAgICBtUmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHJvdGVjdGVkIHZvaWQgbG9nRmFpbHVyZShpbnQgc3RhdHVzQ29kZSkgeworICAgICAgICAvLyBXZSBkb24ndCByZXBvcnQgc3RvcHBlZCBzeW50aGVzZXMgYmVjYXVzZSB0aGVpciBvdmVyYWxsCisgICAgICAgIC8vIHRvdGFsIHRpbWUgc3BlbnQgd2lsbCBiZSBpbmFjY3VyYXRlICh3aWxsIG5vdCBjb3JyZWxhdGUgd2l0aAorICAgICAgICAvLyB0aGUgbGVuZ3RoIG9mIHRoZSB1dHRlcmFuY2UpLgorICAgICAgICBpZiAoc3RhdHVzQ29kZSAhPSBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNUT1BQRUQpIHsKKyAgICAgICAgICAgIEV2ZW50TG9nVGFncy53cml0ZVR0c1YyU3BlYWtGYWlsdXJlKG1TZXJ2aWNlQXBwLAorICAgICAgICAgICAgICAgICAgICBtQ2FsbGVyVWlkLCBtQ2FsbGVyUGlkLCBnZXRVdHRlcmFuY2VMZW5ndGgoKSwgZ2V0UmVxdWVzdENvbmZpZ1N0cmluZygpLCBzdGF0dXNDb2RlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHByb3RlY3RlZCB2b2lkIGxvZ1N1Y2Nlc3MobG9uZyBhdWRpb0xhdGVuY3ksIGxvbmcgZW5naW5lTGF0ZW5jeSwgbG9uZyBlbmdpbmVUb3RhbCkgeworICAgICAgICBFdmVudExvZ1RhZ3Mud3JpdGVUdHNWMlNwZWFrU3VjY2VzcyhtU2VydmljZUFwcCwKKyAgICAgICAgICAgICAgICBtQ2FsbGVyVWlkLCBtQ2FsbGVyUGlkLCBnZXRVdHRlcmFuY2VMZW5ndGgoKSwgZ2V0UmVxdWVzdENvbmZpZ1N0cmluZygpLAorICAgICAgICAgICAgICAgIGVuZ2luZUxhdGVuY3ksIGVuZ2luZVRvdGFsLCBhdWRpb0xhdGVuY3kpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdXR0ZXJhbmNlIGZvciB0aGUgZ2l2ZW4gc3ludGhlc2lzLCAwCisgICAgICogICAgICAgICAgaWYgdGhlIHV0dGVyYW5jZSB3YXMge0Bjb2RlIG51bGx9LgorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldFV0dGVyYW5jZUxlbmd0aCgpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIHV0dGVyYW5jZSA9IG1SZXF1ZXN0LmdldFRleHQoKTsKKyAgICAgICAgcmV0dXJuIHV0dGVyYW5jZSA9PSBudWxsID8gMCA6IHV0dGVyYW5jZS5sZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzeW50aGVzaXMgcmVxdWVzdCBjb25maWd1cmF0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGdldFJlcXVlc3RDb25maWdTdHJpbmcoKSB7CisgICAgICAgIC8vIEVuc3VyZSB0aGUgYnVuZGxlcyBhcmUgdW5wYXJjZWxlZC4KKyAgICAgICAgbVJlcXVlc3QuZ2V0Vm9pY2VQYXJhbXMoKS5zaXplKCk7CisgICAgICAgIG1SZXF1ZXN0LmdldEF1ZGlvUGFyYW1zKCkuc2l6ZSgpOworCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVpbGRlcig2NCkuYXBwZW5kKCJWb2ljZU5hbWU6ICIpLmFwcGVuZChtUmVxdWVzdC5nZXRWb2ljZU5hbWUoKSkKKyAgICAgICAgICAgIC5hcHBlbmQoIiAsVm9pY2VQYXJhbXM6ICIpLmFwcGVuZChtUmVxdWVzdC5nZXRWb2ljZVBhcmFtcygpKQorICAgICAgICAgICAgLmFwcGVuZCgiICxTeXN0ZW1QYXJhbXM6ICIpLmFwcGVuZChtUmVxdWVzdC5nZXRBdWRpb1BhcmFtcygpKQorICAgICAgICAgICAgLmFwcGVuZCgiXSIpLnRvU3RyaW5nKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9GaWxlU3ludGhlc2lzQ2FsbGJhY2suamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvRmlsZVN5bnRoZXNpc0NhbGxiYWNrLmphdmEKaW5kZXggYWI4ZjgyZi4uODU5NjA2YSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9GaWxlU3ludGhlc2lzQ2FsbGJhY2suamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL0ZpbGVTeW50aGVzaXNDYWxsYmFjay5qYXZhCkBAIC0xNyw2ICsxNyw3IEBACiAKIGltcG9ydCBhbmRyb2lkLm1lZGlhLkF1ZGlvRm9ybWF0OwogaW1wb3J0IGFuZHJvaWQub3MuRmlsZVV0aWxzOworaW1wb3J0IGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hTZXJ2aWNlLlV0dGVyYW5jZVByb2dyZXNzRGlzcGF0Y2hlcjsKIGltcG9ydCBhbmRyb2lkLnV0aWwuTG9nOwogCiBpbXBvcnQgamF2YS5pby5GaWxlOwpAQCAtNDgsMTkgKzQ5LDM5IEBACiAKICAgICBwcml2YXRlIEZpbGVDaGFubmVsIG1GaWxlQ2hhbm5lbDsKIAorICAgIHByaXZhdGUgZmluYWwgVXR0ZXJhbmNlUHJvZ3Jlc3NEaXNwYXRjaGVyIG1EaXNwYXRjaGVyOworICAgIHByaXZhdGUgZmluYWwgT2JqZWN0IG1DYWxsZXJJZGVudGl0eTsKKwogICAgIHByaXZhdGUgYm9vbGVhbiBtU3RhcnRlZCA9IGZhbHNlOwotICAgIHByaXZhdGUgYm9vbGVhbiBtU3RvcHBlZCA9IGZhbHNlOwogICAgIHByaXZhdGUgYm9vbGVhbiBtRG9uZSA9IGZhbHNlOwogCi0gICAgRmlsZVN5bnRoZXNpc0NhbGxiYWNrKEZpbGVDaGFubmVsIGZpbGVDaGFubmVsKSB7CisgICAgLyoqIFN0YXR1cyBjb2RlIG9mIHN5bnRoZXNpcyAqLworICAgIHByb3RlY3RlZCBpbnQgbVN0YXR1c0NvZGU7CisKKyAgICBGaWxlU3ludGhlc2lzQ2FsbGJhY2soRmlsZUNoYW5uZWwgZmlsZUNoYW5uZWwsIFV0dGVyYW5jZVByb2dyZXNzRGlzcGF0Y2hlciBkaXNwYXRjaGVyLAorICAgICAgICAgICAgT2JqZWN0IGNhbGxlcklkZW50aXR5LCBib29sZWFuIGNsaWVudElzVXNpbmdWMikgeworICAgICAgICBzdXBlcihjbGllbnRJc1VzaW5nVjIpOwogICAgICAgICBtRmlsZUNoYW5uZWwgPSBmaWxlQ2hhbm5lbDsKKyAgICAgICAgbURpc3BhdGNoZXIgPSBkaXNwYXRjaGVyOworICAgICAgICBtQ2FsbGVySWRlbnRpdHkgPSBjYWxsZXJJZGVudGl0eTsKKyAgICAgICAgbVN0YXR1c0NvZGUgPSBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNVQ0NFU1M7CiAgICAgfQogCiAgICAgQE92ZXJyaWRlCiAgICAgdm9pZCBzdG9wKCkgewogICAgICAgICBzeW5jaHJvbml6ZWQgKG1TdGF0ZUxvY2spIHsKLSAgICAgICAgICAgIG1TdG9wcGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChtRG9uZSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtU3RhdHVzQ29kZSA9PSBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNUT1BQRUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1TdGF0dXNDb2RlID0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5TVE9QUEVEOwogICAgICAgICAgICAgY2xlYW5VcCgpOworICAgICAgICAgICAgaWYgKG1EaXNwYXRjaGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtRGlzcGF0Y2hlci5kaXNwYXRjaE9uU3RvcCgpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCkBAIC03NSwxNCArOTYsOCBAQAogICAgICAqIE11c3QgYmUgY2FsbGVkIHdoaWxlIGhvbGRpbmcgdGhlIG1vbml0b3Igb24ge0BsaW5rICNtU3RhdGVMb2NrfS4KICAgICAgKi8KICAgICBwcml2YXRlIHZvaWQgY2xvc2VGaWxlKCkgewotICAgICAgICB0cnkgewotICAgICAgICAgICAgaWYgKG1GaWxlQ2hhbm5lbCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgbUZpbGVDaGFubmVsLmNsb3NlKCk7Ci0gICAgICAgICAgICAgICAgbUZpbGVDaGFubmVsID0gbnVsbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZXgpIHsKLSAgICAgICAgICAgIExvZy5lKFRBRywgIkZhaWxlZCB0byBjbG9zZSBvdXRwdXQgZmlsZSBkZXNjcmlwdG9yIiwgZXgpOwotICAgICAgICB9CisgICAgICAgIC8vIEZpbGUgd2lsbCBiZSBjbG9zZWQgYnkgdGhlIFNwZWVjaEl0ZW0gaW4gdGhlIHNwZWVjaCBzZXJ2aWNlLgorICAgICAgICBtRmlsZUNoYW5uZWwgPSBudWxsOwogICAgIH0KIAogICAgIEBPdmVycmlkZQpAQCAtOTEsMzggKzEwNiw0NiBAQAogICAgIH0KIAogICAgIEBPdmVycmlkZQotICAgIGJvb2xlYW4gaXNEb25lKCkgewotICAgICAgICByZXR1cm4gbURvbmU7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCiAgICAgcHVibGljIGludCBzdGFydChpbnQgc2FtcGxlUmF0ZUluSHosIGludCBhdWRpb0Zvcm1hdCwgaW50IGNoYW5uZWxDb3VudCkgewogICAgICAgICBpZiAoREJHKSB7CiAgICAgICAgICAgICBMb2cuZChUQUcsICJGaWxlU3ludGhlc2lzUmVxdWVzdC5zdGFydCgiICsgc2FtcGxlUmF0ZUluSHogKyAiLCIgKyBhdWRpb0Zvcm1hdAogICAgICAgICAgICAgICAgICAgICArICIsIiArIGNoYW5uZWxDb3VudCArICIpIik7CiAgICAgICAgIH0KKyAgICAgICAgRmlsZUNoYW5uZWwgZmlsZUNoYW5uZWwgPSBudWxsOwogICAgICAgICBzeW5jaHJvbml6ZWQgKG1TdGF0ZUxvY2spIHsKLSAgICAgICAgICAgIGlmIChtU3RvcHBlZCkgeworICAgICAgICAgICAgaWYgKG1TdGF0dXNDb2RlID09IFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMuU1RPUFBFRCkgewogICAgICAgICAgICAgICAgIGlmIChEQkcpIExvZy5kKFRBRywgIlJlcXVlc3QgaGFzIGJlZW4gYWJvcnRlZC4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3JDb2RlT25TdG9wKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobVN0YXR1c0NvZGUgIT0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5TVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAiRXJyb3Igd2FzIHJhaXNlZCIpOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAobVN0YXJ0ZWQpIHsKLSAgICAgICAgICAgICAgICBjbGVhblVwKCk7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRmlsZVN5bnRoZXNpc1JlcXVlc3Quc3RhcnQoKSBjYWxsZWQgdHdpY2UiKTsKKyAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJTdGFydCBjYWxsZWQgdHdpY2UiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLkVSUk9SOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbVN0YXJ0ZWQgPSB0cnVlOwogICAgICAgICAgICAgbVNhbXBsZVJhdGVJbkh6ID0gc2FtcGxlUmF0ZUluSHo7CiAgICAgICAgICAgICBtQXVkaW9Gb3JtYXQgPSBhdWRpb0Zvcm1hdDsKICAgICAgICAgICAgIG1DaGFubmVsQ291bnQgPSBjaGFubmVsQ291bnQ7CiAKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgbUZpbGVDaGFubmVsLndyaXRlKEJ5dGVCdWZmZXIuYWxsb2NhdGUoV0FWX0hFQURFUl9MRU5HVEgpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLlNVQ0NFU1M7Ci0gICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBleCkgewotICAgICAgICAgICAgICAgIExvZy5lKFRBRywgIkZhaWxlZCB0byB3cml0ZSB3YXYgaGVhZGVyIHRvIG91dHB1dCBmaWxlIGRlc2NyaXB0b3IiICsgZXgpOwotICAgICAgICAgICAgICAgIGNsZWFuVXAoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLkVSUk9SOworICAgICAgICAgICAgaWYgKG1EaXNwYXRjaGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtRGlzcGF0Y2hlci5kaXNwYXRjaE9uU3RhcnQoKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbGVDaGFubmVsID0gbUZpbGVDaGFubmVsOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbGVDaGFubmVsLndyaXRlKEJ5dGVCdWZmZXIuYWxsb2NhdGUoV0FWX0hFQURFUl9MRU5HVEgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLlNVQ0NFU1M7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBMb2cuZShUQUcsICJGYWlsZWQgdG8gd3JpdGUgd2F2IGhlYWRlciB0byBvdXRwdXQgZmlsZSBkZXNjcmlwdG9yIiwgZXgpOworICAgICAgICAgICAgc3luY2hyb25pemVkIChtU3RhdGVMb2NrKSB7CisgICAgICAgICAgICAgICAgY2xlYW5VcCgpOworICAgICAgICAgICAgICAgIG1TdGF0dXNDb2RlID0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5FUlJPUl9PVVRQVVQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLkVSUk9SOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMzIsNjYgKzE1NSwxMjggQEAKICAgICAgICAgICAgIExvZy5kKFRBRywgIkZpbGVTeW50aGVzaXNSZXF1ZXN0LmF1ZGlvQXZhaWxhYmxlKCIgKyBidWZmZXIgKyAiLCIgKyBvZmZzZXQKICAgICAgICAgICAgICAgICAgICAgKyAiLCIgKyBsZW5ndGggKyAiKSIpOwogICAgICAgICB9CisgICAgICAgIEZpbGVDaGFubmVsIGZpbGVDaGFubmVsID0gbnVsbDsKICAgICAgICAgc3luY2hyb25pemVkIChtU3RhdGVMb2NrKSB7Ci0gICAgICAgICAgICBpZiAobVN0b3BwZWQpIHsKKyAgICAgICAgICAgIGlmIChtU3RhdHVzQ29kZSA9PSBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNUT1BQRUQpIHsKICAgICAgICAgICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJSZXF1ZXN0IGhhcyBiZWVuIGFib3J0ZWQuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yQ29kZU9uU3RvcCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1TdGF0dXNDb2RlICE9IFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMuU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGlmIChEQkcpIExvZy5kKFRBRywgIkVycm9yIHdhcyByYWlzZWQiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLkVSUk9SOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKG1GaWxlQ2hhbm5lbCA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiRmlsZSBub3Qgb3BlbiIpOworICAgICAgICAgICAgICAgIG1TdGF0dXNDb2RlID0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5FUlJPUl9PVVRQVVQ7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRleHRUb1NwZWVjaC5FUlJPUjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgbUZpbGVDaGFubmVsLndyaXRlKEJ5dGVCdWZmZXIud3JhcChidWZmZXIsICBvZmZzZXQsICBsZW5ndGgpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLlNVQ0NFU1M7Ci0gICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBleCkgewotICAgICAgICAgICAgICAgIExvZy5lKFRBRywgIkZhaWxlZCB0byB3cml0ZSB0byBvdXRwdXQgZmlsZSBkZXNjcmlwdG9yIiwgZXgpOworICAgICAgICAgICAgaWYgKCFtU3RhcnRlZCkgeworICAgICAgICAgICAgICAgIExvZy5lKFRBRywgIlN0YXJ0IG1ldGhvZCB3YXMgbm90IGNhbGxlZCIpOworICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmaWxlQ2hhbm5lbCA9IG1GaWxlQ2hhbm5lbDsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaWxlQ2hhbm5lbC53cml0ZShCeXRlQnVmZmVyLndyYXAoYnVmZmVyLCAgb2Zmc2V0LCAgbGVuZ3RoKSk7CisgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLlNVQ0NFU1M7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBMb2cuZShUQUcsICJGYWlsZWQgdG8gd3JpdGUgdG8gb3V0cHV0IGZpbGUgZGVzY3JpcHRvciIsIGV4KTsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAobVN0YXRlTG9jaykgewogICAgICAgICAgICAgICAgIGNsZWFuVXAoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLkVSUk9SOworICAgICAgICAgICAgICAgIG1TdGF0dXNDb2RlID0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5FUlJPUl9PVVRQVVQ7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLkVSUk9SOwogICAgICAgICB9CiAgICAgfQogCiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIGludCBkb25lKCkgewogICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJGaWxlU3ludGhlc2lzUmVxdWVzdC5kb25lKCkiKTsKKyAgICAgICAgRmlsZUNoYW5uZWwgZmlsZUNoYW5uZWwgPSBudWxsOworCisgICAgICAgIGludCBzYW1wbGVSYXRlSW5IeiA9IDA7CisgICAgICAgIGludCBhdWRpb0Zvcm1hdCA9IDA7CisgICAgICAgIGludCBjaGFubmVsQ291bnQgPSAwOworCiAgICAgICAgIHN5bmNocm9uaXplZCAobVN0YXRlTG9jaykgewogICAgICAgICAgICAgaWYgKG1Eb25lKSB7Ci0gICAgICAgICAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAiRHVwbGljYXRlIGNhbGwgdG8gZG9uZSgpIik7Ci0gICAgICAgICAgICAgICAgLy8gVGhpcyBwcmVzZXJ2ZXMgZXhpc3RpbmcgYmVoYXZpb3VyLiBFYXJsaWVyLCBpZiBkb25lIHdhcyBjYWxsZWQgdHdpY2UKLSAgICAgICAgICAgICAgICAvLyB3ZSdkIHJldHVybiBFUlJPUiBiZWNhdXNlIG1GaWxlID09IG51bGwgYW5kIHdlJ2QgYWRkIHRvIGxvZ3NwYW0uCisgICAgICAgICAgICAgICAgTG9nLncoVEFHLCAiRHVwbGljYXRlIGNhbGwgdG8gZG9uZSgpIik7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBub3QgYW4gZXJyb3IgdGhhdCB3b3VsZCBwcmV2ZW50IHN5bnRoZXNpcy4gSGVuY2Ugbm8KKyAgICAgICAgICAgICAgICAvLyBzZXRTdGF0dXNDb2RlIGlzIHNldC4KICAgICAgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLkVSUk9SOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG1TdG9wcGVkKSB7CisgICAgICAgICAgICBpZiAobVN0YXR1c0NvZGUgPT0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5TVE9QUEVEKSB7CiAgICAgICAgICAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAiUmVxdWVzdCBoYXMgYmVlbiBhYm9ydGVkLiIpOworICAgICAgICAgICAgICAgIHJldHVybiBlcnJvckNvZGVPblN0b3AoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtRGlzcGF0Y2hlciAhPSBudWxsICYmIG1TdGF0dXNDb2RlICE9IFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMuU1VDQ0VTUyAmJgorICAgICAgICAgICAgICAgICAgICBtU3RhdHVzQ29kZSAhPSBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNUT1BQRUQpIHsKKyAgICAgICAgICAgICAgICBtRGlzcGF0Y2hlci5kaXNwYXRjaE9uRXJyb3IobVN0YXR1c0NvZGUpOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAobUZpbGVDaGFubmVsID09IG51bGwpIHsKICAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJGaWxlIG5vdCBvcGVuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFRleHRUb1NwZWVjaC5FUlJPUjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgLy8gV3JpdGUgV0FWIGhlYWRlciBhdCBzdGFydCBvZiBmaWxlCi0gICAgICAgICAgICAgICAgbUZpbGVDaGFubmVsLnBvc2l0aW9uKDApOwotICAgICAgICAgICAgICAgIGludCBkYXRhTGVuZ3RoID0gKGludCkgKG1GaWxlQ2hhbm5lbC5zaXplKCkgLSBXQVZfSEVBREVSX0xFTkdUSCk7Ci0gICAgICAgICAgICAgICAgbUZpbGVDaGFubmVsLndyaXRlKAotICAgICAgICAgICAgICAgICAgICAgICAgbWFrZVdhdkhlYWRlcihtU2FtcGxlUmF0ZUluSHosIG1BdWRpb0Zvcm1hdCwgbUNoYW5uZWxDb3VudCwgZGF0YUxlbmd0aCkpOworICAgICAgICAgICAgbURvbmUgPSB0cnVlOworICAgICAgICAgICAgZmlsZUNoYW5uZWwgPSBtRmlsZUNoYW5uZWw7CisgICAgICAgICAgICBzYW1wbGVSYXRlSW5IeiA9IG1TYW1wbGVSYXRlSW5IejsKKyAgICAgICAgICAgIGF1ZGlvRm9ybWF0ID0gbUF1ZGlvRm9ybWF0OworICAgICAgICAgICAgY2hhbm5lbENvdW50ID0gbUNoYW5uZWxDb3VudDsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBXcml0ZSBXQVYgaGVhZGVyIGF0IHN0YXJ0IG9mIGZpbGUKKyAgICAgICAgICAgIGZpbGVDaGFubmVsLnBvc2l0aW9uKDApOworICAgICAgICAgICAgaW50IGRhdGFMZW5ndGggPSAoaW50KSAoZmlsZUNoYW5uZWwuc2l6ZSgpIC0gV0FWX0hFQURFUl9MRU5HVEgpOworICAgICAgICAgICAgZmlsZUNoYW5uZWwud3JpdGUoCisgICAgICAgICAgICAgICAgICAgIG1ha2VXYXZIZWFkZXIoc2FtcGxlUmF0ZUluSHosIGF1ZGlvRm9ybWF0LCBjaGFubmVsQ291bnQsIGRhdGFMZW5ndGgpKTsKKworICAgICAgICAgICAgc3luY2hyb25pemVkIChtU3RhdGVMb2NrKSB7CiAgICAgICAgICAgICAgICAgY2xvc2VGaWxlKCk7Ci0gICAgICAgICAgICAgICAgbURvbmUgPSB0cnVlOworICAgICAgICAgICAgICAgIGlmIChtRGlzcGF0Y2hlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIG1EaXNwYXRjaGVyLmRpc3BhdGNoT25TdWNjZXNzKCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guU1VDQ0VTUzsKLSAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGV4KSB7Ci0gICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiRmFpbGVkIHRvIHdyaXRlIHRvIG91dHB1dCBmaWxlIGRlc2NyaXB0b3IiLCBleCk7Ci0gICAgICAgICAgICAgICAgY2xlYW5VcCgpOwotICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CiAgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBMb2cuZShUQUcsICJGYWlsZWQgdG8gd3JpdGUgdG8gb3V0cHV0IGZpbGUgZGVzY3JpcHRvciIsIGV4KTsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAobVN0YXRlTG9jaykgeworICAgICAgICAgICAgICAgIGNsZWFuVXAoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCBlcnJvcigpIHsKKyAgICAgICAgZXJyb3IoVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5FUlJPUl9TWU5USEVTSVMpOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIGVycm9yKGludCBlcnJvckNvZGUpIHsKICAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAiRmlsZVN5bnRoZXNpc1JlcXVlc3QuZXJyb3IoKSIpOwogICAgICAgICBzeW5jaHJvbml6ZWQgKG1TdGF0ZUxvY2spIHsKKyAgICAgICAgICAgIGlmIChtRG9uZSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNsZWFuVXAoKTsKKyAgICAgICAgICAgIG1TdGF0dXNDb2RlID0gZXJyb3JDb2RlOworICAgICAgICB9CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIGJvb2xlYW4gaGFzU3RhcnRlZCgpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChtU3RhdGVMb2NrKSB7CisgICAgICAgICAgICByZXR1cm4gbVN0YXJ0ZWQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNGaW5pc2hlZCgpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChtU3RhdGVMb2NrKSB7CisgICAgICAgICAgICByZXR1cm4gbURvbmU7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTIyNSw0ICszMTAsMTYgQEAKICAgICAgICAgcmV0dXJuIGhlYWRlcjsKICAgICB9CiAKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgaW50IGZhbGxiYWNrKCkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKG1TdGF0ZUxvY2spIHsKKyAgICAgICAgICAgIGlmIChoYXNTdGFydGVkKCkgfHwgaGFzRmluaXNoZWQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1EaXNwYXRjaGVyLmRpc3BhdGNoT25GYWxsYmFjaygpOworICAgICAgICAgICAgbVN0YXR1c0NvZGUgPSBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNVQ0NFU1M7CisgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5TVUNDRVNTOworICAgICAgICB9CisgICAgfQogfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9JVGV4dFRvU3BlZWNoQ2FsbGJhY2suYWlkbCBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvSVRleHRUb1NwZWVjaENhbGxiYWNrLmFpZGwKaW5kZXggZjAyODdkNC4uM2M4MDhmZiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9JVGV4dFRvU3BlZWNoQ2FsbGJhY2suYWlkbAorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL0lUZXh0VG9TcGVlY2hDYWxsYmFjay5haWRsCkBAIC0xNSwxMyArMTUsNTMgQEAKICAqLwogcGFja2FnZSBhbmRyb2lkLnNwZWVjaC50dHM7CiAKK2ltcG9ydCBhbmRyb2lkLnNwZWVjaC50dHMuVm9pY2VJbmZvOworCiAvKioKICAqIEludGVyZmFjZSBmb3IgY2FsbGJhY2tzIGZyb20gVGV4dFRvU3BlZWNoU2VydmljZQogICoKICAqIHtAaGlkZX0KICAqLwogb25ld2F5IGludGVyZmFjZSBJVGV4dFRvU3BlZWNoQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIFRlbGxzIHRoZSBjbGllbnQgdGhhdCB0aGUgc3ludGhlc2lzIGhhcyBzdGFydGVkLgorICAgICAqCisgICAgICogQHBhcmFtIHV0dGVyYW5jZUlkIFVuaXF1ZSBpZCBpZGVudGlmeWluZyBzeW50aGVzaXMgcmVxdWVzdC4KKyAgICAgKi8KICAgICB2b2lkIG9uU3RhcnQoU3RyaW5nIHV0dGVyYW5jZUlkKTsKLSAgICB2b2lkIG9uRG9uZShTdHJpbmcgdXR0ZXJhbmNlSWQpOwotICAgIHZvaWQgb25FcnJvcihTdHJpbmcgdXR0ZXJhbmNlSWQpOworCisgICAgLyoqCisgICAgICogVGVsbHMgdGhlIGNsaWVudCB0aGF0IHRoZSBzeW50aGVzaXMgaGFzIGZpbmlzaGVkLgorICAgICAqCisgICAgICogQHBhcmFtIHV0dGVyYW5jZUlkIFVuaXF1ZSBpZCBpZGVudGlmeWluZyBzeW50aGVzaXMgcmVxdWVzdC4KKyAgICAgKi8KKyAgICB2b2lkIG9uU3VjY2VzcyhTdHJpbmcgdXR0ZXJhbmNlSWQpOworCisgICAgLyoqCisgICAgICogVGVsbHMgdGhlIGNsaWVudCB0aGF0IHRoZSBzeW50aGVzaXMgd2FzIHN0b3BwZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdXR0ZXJhbmNlSWQgVW5pcXVlIGlkIGlkZW50aWZ5aW5nIHN5bnRoZXNpcyByZXF1ZXN0LgorICAgICAqLworICAgIHZvaWQgb25TdG9wKFN0cmluZyB1dHRlcmFuY2VJZCk7CisKKyAgICAvKioKKyAgICAgKiBUZWxscyB0aGUgY2xpZW50IHRoYXQgdGhlIHN5bnRoZXNpcyBmYWlsZWQsIGFuZCBmYWxsYmFjayBzeW50aGVzaXMgd2lsbCBiZSBhdHRlbXB0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdXR0ZXJhbmNlSWQgVW5pcXVlIGlkIGlkZW50aWZ5aW5nIHN5bnRoZXNpcyByZXF1ZXN0LgorICAgICAqLworICAgIHZvaWQgb25GYWxsYmFjayhTdHJpbmcgdXR0ZXJhbmNlSWQpOworCisgICAgLyoqCisgICAgICogVGVsbHMgdGhlIGNsaWVudCB0aGF0IHRoZSBzeW50aGVzaXMgaGFzIGZhaWxlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1dHRlcmFuY2VJZCBVbmlxdWUgaWQgaWRlbnRpZnlpbmcgc3ludGhlc2lzIHJlcXVlc3QuCisgICAgICogQHBhcmFtIGVycm9yQ29kZSBPbmUgb2YgdGhlIHZhbHVlcyBmcm9tCisgICAgICogICAgICAgIHtAbGluayBhbmRyb2lkLnNwZWVjaC50dHMudjIuVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1c30uCisgICAgICovCisgICAgdm9pZCBvbkVycm9yKFN0cmluZyB1dHRlcmFuY2VJZCwgaW50IGVycm9yQ29kZSk7CisKKyAgICAvKioKKyAgICAgKiBJbmZvcm0gdGhlIGNsaWVudCB0aGF0IHNldCBvZiBhdmFpbGFibGUgdm9pY2VzIGNoYW5nZWQuCisgICAgICovCisgICAgdm9pZCBvblZvaWNlc0luZm9DaGFuZ2UoaW4gTGlzdDxWb2ljZUluZm8+IHZvaWNlcyk7CiB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL0lUZXh0VG9TcGVlY2hTZXJ2aWNlLmFpZGwgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL0lUZXh0VG9TcGVlY2hTZXJ2aWNlLmFpZGwKaW5kZXggYjdiYzcwYy4uOWNmNDlmZiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9JVGV4dFRvU3BlZWNoU2VydmljZS5haWRsCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvSVRleHRUb1NwZWVjaFNlcnZpY2UuYWlkbApAQCAtMjAsNiArMjAsOCBAQAogaW1wb3J0IGFuZHJvaWQub3MuQnVuZGxlOwogaW1wb3J0IGFuZHJvaWQub3MuUGFyY2VsRmlsZURlc2NyaXB0b3I7CiBpbXBvcnQgYW5kcm9pZC5zcGVlY2gudHRzLklUZXh0VG9TcGVlY2hDYWxsYmFjazsKK2ltcG9ydCBhbmRyb2lkLnNwZWVjaC50dHMuVm9pY2VJbmZvOworaW1wb3J0IGFuZHJvaWQuc3BlZWNoLnR0cy5TeW50aGVzaXNSZXF1ZXN0VjI7CiAKIC8qKgogICogSW50ZXJmYWNlIGZvciBUZXh0VG9TcGVlY2ggdG8gdGFsayB0byBUZXh0VG9TcGVlY2hTZXJ2aWNlLgpAQCAtNzAsOSArNzIsMTAgQEAKICAgICAgKiAgICAgICAgVGV4dFRvU3BlZWNoIG9iamVjdC4KICAgICAgKiBAcGFyYW0gZHVyYXRpb24gTnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBvZiBzaWxlbmNlIHRvIHBsYXkuCiAgICAgICogQHBhcmFtIHF1ZXVlTW9kZSBEZXRlcm1pbmVzIHdoYXQgdG8gZG8gdG8gcmVxdWVzdHMgYWxyZWFkeSBpbiB0aGUgcXVldWUuCi0gICAgICogQHBhcmFtIHBhcmFtIFJlcXVlc3QgcGFyYW1ldGVycy4KKyAgICAgKiBAcGFyYW0gdXR0ZXJhbmNlSWQgVW5pcXVlIGlkIHVzZWQgdG8gaWRlbnRpZnkgdGhpcyByZXF1ZXN0IGluIGNhbGxiYWNrcy4KICAgICAgKi8KLSAgICBpbnQgcGxheVNpbGVuY2UoaW4gSUJpbmRlciBjYWxsaW5nSW5zdGFuY2UsIGluIGxvbmcgZHVyYXRpb24sIGluIGludCBxdWV1ZU1vZGUsIGluIEJ1bmRsZSBwYXJhbXMpOworICAgIGludCBwbGF5U2lsZW5jZShpbiBJQmluZGVyIGNhbGxpbmdJbnN0YW5jZSwgaW4gbG9uZyBkdXJhdGlvbiwgaW4gaW50IHF1ZXVlTW9kZSwKKyAgICAgICAgaW4gU3RyaW5nIHV0dGVyYW5jZUlkKTsKIAogICAgIC8qKgogICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBzZXJ2aWNlIGlzIGN1cnJlbnRseSBwbGF5aW5nIHNvbWUgYXVkaW8uCkBAIC05MCw3ICs5Myw2IEBACiAKICAgICAvKioKICAgICAgKiBSZXR1cm5zIHRoZSBsYW5ndWFnZSwgY291bnRyeSBhbmQgdmFyaWFudCBjdXJyZW50bHkgYmVpbmcgdXNlZCBieSB0aGUgVFRTIGVuZ2luZS4KLSAgICAgKgogICAgICAqIENhbiBiZSBjYWxsZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLgogICAgICAqCiAgICAgICogQHJldHVybiBBIDMtZWxlbWVudCBhcnJheSwgY29udGFpbmluZyBsYW5ndWFnZSAoSVNPIDMtbGV0dGVyIGNvZGUpLApAQCAtOTksNyArMTAxLDcgQEAKICAgICAgKiAgICAgICAgIGJlIGVtcHR5IHRvby4KICAgICAgKi8KICAgICBTdHJpbmdbXSBnZXRMYW5ndWFnZSgpOwotICAgIAorCiAgICAgLyoqCiAgICAgICogUmV0dXJucyBhIGRlZmF1bHQgVFRTIGxhbmd1YWdlLCBjb3VudHJ5IGFuZCB2YXJpYW50IGFzIHNldCBieSB0aGUgdXNlci4KICAgICAgKgpAQCAtMTExLDcgKzExMyw3IEBACiAgICAgICogICAgICAgICBiZSBlbXB0eSB0b28uCiAgICAgICovCiAgICAgU3RyaW5nW10gZ2V0Q2xpZW50RGVmYXVsdExhbmd1YWdlKCk7Ci0gICAgCisKICAgICAvKioKICAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgZW5naW5lIHN1cHBvcnRzIGEgZ2l2ZW4gbGFuZ3VhZ2UuCiAgICAgICoKQEAgLTEzNyw3ICsxMzksNyBAQAogICAgICAqIEBwYXJhbSBjb3VudHJ5IElTTy0zIGNvdW50cnkgY29kZS4gTWF5IGJlIGVtcHR5IG9yIG51bGwuCiAgICAgICogQHBhcmFtIHZhcmlhbnQgTGFuZ3VhZ2UgdmFyaWFudC4gTWF5IGJlIGVtcHR5IG9yIG51bGwuCiAgICAgICogQHJldHVybiBBbiBhcnJheSBvZiBzdHJpbmdzIGNvbnRhaW5pbmcgdGhlIHNldCBvZiBmZWF0dXJlcyBzdXBwb3J0ZWQgZm9yCi0gICAgICogICAgICAgICB0aGUgc3VwcGxpZWQgbG9jYWxlLiBUaGUgYXJyYXkgb2Ygc3RyaW5ncyBtdXN0IG5vdCBjb250YWluIAorICAgICAqICAgICAgICAgdGhlIHN1cHBsaWVkIGxvY2FsZS4gVGhlIGFycmF5IG9mIHN0cmluZ3MgbXVzdCBub3QgY29udGFpbgogICAgICAqICAgICAgICAgZHVwbGljYXRlcy4KICAgICAgKi8KICAgICBTdHJpbmdbXSBnZXRGZWF0dXJlc0Zvckxhbmd1YWdlKGluIFN0cmluZyBsYW5nLCBpbiBTdHJpbmcgY291bnRyeSwgaW4gU3RyaW5nIHZhcmlhbnQpOwpAQCAtMTY5LDQgKzE3MSw0NCBAQAogICAgICAqLwogICAgIHZvaWQgc2V0Q2FsbGJhY2soaW4gSUJpbmRlciBjYWxsZXIsIElUZXh0VG9TcGVlY2hDYWxsYmFjayBjYik7CiAKKyAgICAvKioKKyAgICAgKiBUZWxscyB0aGUgZW5naW5lIHRvIHN5bnRoZXNpemUgc29tZSBzcGVlY2ggYW5kIHBsYXkgaXQgYmFjay4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsaW5nSW5zdGFuY2UgYSBiaW5kZXIgcmVwcmVzZW50aW5nIHRoZSBpZGVudGl0eSBvZiB0aGUgY2FsbGluZworICAgICAqICAgICAgICBUZXh0VG9TcGVlY2ggb2JqZWN0LgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIHN5bnRoZXNpemUuCisgICAgICogQHBhcmFtIHF1ZXVlTW9kZSBEZXRlcm1pbmVzIHdoYXQgdG8gZG8gdG8gcmVxdWVzdHMgYWxyZWFkeSBpbiB0aGUgcXVldWUuCisgICAgICogQHBhcmFtIHJlcXVlc3QgUmVxdWVzdCBwYXJhbWV0ZXJzLgorICAgICAqLworICAgIGludCBzcGVha1YyKGluIElCaW5kZXIgY2FsbGluZ0luc3RhbmNlLCBpbiBTeW50aGVzaXNSZXF1ZXN0VjIgcmVxdWVzdCk7CisKKyAgICAvKioKKyAgICAgKiBUZWxscyB0aGUgZW5naW5lIHRvIHN5bnRoZXNpemUgc29tZSBzcGVlY2ggYW5kIHdyaXRlIGl0IHRvIGEgZmlsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsaW5nSW5zdGFuY2UgYSBiaW5kZXIgcmVwcmVzZW50aW5nIHRoZSBpZGVudGl0eSBvZiB0aGUgY2FsbGluZworICAgICAqICAgICAgICBUZXh0VG9TcGVlY2ggb2JqZWN0LgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIHN5bnRoZXNpemUuCisgICAgICogQHBhcmFtIGZpbGVEZXNjcmlwdG9yIFRoZSBmaWxlIGRlc2NyaXB0b3IgdG8gd3JpdGUgdGhlIHN5bnRoZXNpemVkIGF1ZGlvIHRvLiBIYXMgdG8gYmUKKyAgICAgICAgICAgICAgd3JpdGFibGUuCisgICAgICogQHBhcmFtIHJlcXVlc3QgUmVxdWVzdCBwYXJhbWV0ZXJzLgorICAgICAqLworICAgIGludCBzeW50aGVzaXplVG9GaWxlRGVzY3JpcHRvclYyKGluIElCaW5kZXIgY2FsbGluZ0luc3RhbmNlLAorICAgICAgICBpbiBQYXJjZWxGaWxlRGVzY3JpcHRvciBmaWxlRGVzY3JpcHRvciwgaW4gU3ludGhlc2lzUmVxdWVzdFYyIHJlcXVlc3QpOworCisgICAgLyoqCisgICAgICogUGxheXMgYW4gZXhpc3RpbmcgYXVkaW8gcmVzb3VyY2UuIFYyIHZlcnNpb24KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsaW5nSW5zdGFuY2UgYSBiaW5kZXIgcmVwcmVzZW50aW5nIHRoZSBpZGVudGl0eSBvZiB0aGUgY2FsbGluZworICAgICAqICAgICAgICBUZXh0VG9TcGVlY2ggb2JqZWN0LgorICAgICAqIEBwYXJhbSBhdWRpb1VyaSBVUkkgZm9yIHRoZSBhdWRpbyByZXNvdXJjZSAoYSBmaWxlIG9yIGFuZHJvaWQucmVzb3VyY2UgVVJJKQorICAgICAqIEBwYXJhbSB1dHRlcmFuY2VJZCBVbmlxdWUgaWRlbnRpZmllci4KKyAgICAgKiBAcGFyYW0gYXVkaW9QYXJhbWV0ZXJzIFBhcmFtZXRlcnMgZm9yIGF1ZGlvIHBsYXliYWNrIChmcm9tIHtAbGluayBTeW50aGVzaXNSZXF1ZXN0VjJ9KS4KKyAgICAgKi8KKyAgICBpbnQgcGxheUF1ZGlvVjIoaW4gSUJpbmRlciBjYWxsaW5nSW5zdGFuY2UsIGluIFVyaSBhdWRpb1VyaSwgaW4gU3RyaW5nIHV0dGVyYW5jZUlkLAorICAgICAgICBpbiBCdW5kbGUgYXVkaW9QYXJhbWV0ZXJzKTsKKworICAgIC8qKgorICAgICAqIFJlcXVlc3QgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHZvaWNlcyBmcm9tIHRoZSBzZXJ2aWNlLgorICAgICAqLworICAgIExpc3Q8Vm9pY2VJbmZvPiBnZXRWb2ljZXNJbmZvKCk7CiB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1BsYXliYWNrUXVldWVJdGVtLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1BsYXliYWNrUXVldWVJdGVtLmphdmEKaW5kZXggZDA5NTdmZi4uYjJlMzIzZSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9QbGF5YmFja1F1ZXVlSXRlbS5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvUGxheWJhY2tRdWV1ZUl0ZW0uamF2YQpAQCAtMjIsNiArMjIsMTYgQEAKICAgICAgICAgcmV0dXJuIG1EaXNwYXRjaGVyOwogICAgIH0KIAorICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHJ1bigpOwotICAgIGFic3RyYWN0IHZvaWQgc3RvcChib29sZWFuIGlzRXJyb3IpOworCisgICAgLyoqCisgICAgICogU3RvcCB0aGUgcGxheWJhY2suCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXJyb3JDb2RlIENhdXNlIG9mIHRoZSBzdG9wLiBDYW4gYmUgZWl0aGVyIG9uZSBvZiB0aGUgZXJyb3IgY29kZXMgZnJvbQorICAgICAqICAgICAgICAge0BsaW5rIGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzfSBvcgorICAgICAqICAgICAgICAge0BsaW5rIGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzI1NUT1BQRUR9CisgICAgICogICAgICAgICBpZiBzdG9wcGVkIG9uIGEgY2xpZW50IHJlcXVlc3QuCisgICAgICovCisgICAgYWJzdHJhY3Qgdm9pZCBzdG9wKGludCBlcnJvckNvZGUpOwogfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9QbGF5YmFja1N5bnRoZXNpc0NhbGxiYWNrLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1BsYXliYWNrU3ludGhlc2lzQ2FsbGJhY2suamF2YQppbmRleCBjOTlmMjAxLi5lMzQ1ZTg5IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1BsYXliYWNrU3ludGhlc2lzQ2FsbGJhY2suamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1BsYXliYWNrU3ludGhlc2lzQ2FsbGJhY2suamF2YQpAQCAtNTUsMjAgKzU1LDIwIEBACiAgICAgcHJpdmF0ZSBmaW5hbCBBdWRpb1BsYXliYWNrSGFuZGxlciBtQXVkaW9UcmFja0hhbmRsZXI7CiAgICAgLy8gQSByZXF1ZXN0ICJ0b2tlbiIsIHdoaWNoIHdpbGwgYmUgbm9uIG51bGwgYWZ0ZXIgc3RhcnQoKSBoYXMgYmVlbiBjYWxsZWQuCiAgICAgcHJpdmF0ZSBTeW50aGVzaXNQbGF5YmFja1F1ZXVlSXRlbSBtSXRlbSA9IG51bGw7Ci0gICAgLy8gV2hldGhlciB0aGlzIHJlcXVlc3QgaGFzIGJlZW4gc3RvcHBlZC4gVGhpcyBpcyB1c2VmdWwgZm9yIGtlZXBpbmcKLSAgICAvLyB0cmFjayB3aGV0aGVyIHN0b3AoKSBoYXMgYmVlbiBjYWxsZWQgYmVmb3JlIHN0YXJ0KCkuIEluIGFsbCBvdGhlciBjYXNlcywKLSAgICAvLyBhIG5vbi1udWxsIHZhbHVlIG9mIG1JdGVtIHdpbGwgcHJvdmlkZSB0aGUgc2FtZSBpbmZvcm1hdGlvbi4KLSAgICBwcml2YXRlIGJvb2xlYW4gbVN0b3BwZWQgPSBmYWxzZTsKIAogICAgIHByaXZhdGUgdm9sYXRpbGUgYm9vbGVhbiBtRG9uZSA9IGZhbHNlOwogCisgICAgLyoqIFN0YXR1cyBjb2RlIG9mIHN5bnRoZXNpcyAqLworICAgIHByb3RlY3RlZCBpbnQgbVN0YXR1c0NvZGU7CisKICAgICBwcml2YXRlIGZpbmFsIFV0dGVyYW5jZVByb2dyZXNzRGlzcGF0Y2hlciBtRGlzcGF0Y2hlcjsKICAgICBwcml2YXRlIGZpbmFsIE9iamVjdCBtQ2FsbGVySWRlbnRpdHk7Ci0gICAgcHJpdmF0ZSBmaW5hbCBFdmVudExvZ2dlciBtTG9nZ2VyOworICAgIHByaXZhdGUgZmluYWwgQWJzdHJhY3RFdmVudExvZ2dlciBtTG9nZ2VyOwogCiAgICAgUGxheWJhY2tTeW50aGVzaXNDYWxsYmFjayhpbnQgc3RyZWFtVHlwZSwgZmxvYXQgdm9sdW1lLCBmbG9hdCBwYW4sCiAgICAgICAgICAgICBBdWRpb1BsYXliYWNrSGFuZGxlciBhdWRpb1RyYWNrSGFuZGxlciwgVXR0ZXJhbmNlUHJvZ3Jlc3NEaXNwYXRjaGVyIGRpc3BhdGNoZXIsCi0gICAgICAgICAgICBPYmplY3QgY2FsbGVySWRlbnRpdHksIEV2ZW50TG9nZ2VyIGxvZ2dlcikgeworICAgICAgICAgICAgT2JqZWN0IGNhbGxlcklkZW50aXR5LCBBYnN0cmFjdEV2ZW50TG9nZ2VyIGxvZ2dlciwgYm9vbGVhbiBjbGllbnRJc1VzaW5nVjIpIHsKKyAgICAgICAgc3VwZXIoY2xpZW50SXNVc2luZ1YyKTsKICAgICAgICAgbVN0cmVhbVR5cGUgPSBzdHJlYW1UeXBlOwogICAgICAgICBtVm9sdW1lID0gdm9sdW1lOwogICAgICAgICBtUGFuID0gcGFuOwpAQCAtNzYsMjggKzc2LDI1IEBACiAgICAgICAgIG1EaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjsKICAgICAgICAgbUNhbGxlcklkZW50aXR5ID0gY2FsbGVySWRlbnRpdHk7CiAgICAgICAgIG1Mb2dnZXIgPSBsb2dnZXI7CisgICAgICAgIG1TdGF0dXNDb2RlID0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5TVUNDRVNTOwogICAgIH0KIAogICAgIEBPdmVycmlkZQogICAgIHZvaWQgc3RvcCgpIHsKLSAgICAgICAgc3RvcEltcGwoZmFsc2UpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcEltcGwoYm9vbGVhbiB3YXNFcnJvcikgewogICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJzdG9wKCkiKTsKIAotICAgICAgICAvLyBOb3RlIHRoYXQgbUxvZ2dlci5tRXJyb3IgbWlnaHQgYmUgdHJ1ZSB0b28gYXQgdGhpcyBwb2ludC4KLSAgICAgICAgbUxvZ2dlci5vblN0b3BwZWQoKTsKLQogICAgICAgICBTeW50aGVzaXNQbGF5YmFja1F1ZXVlSXRlbSBpdGVtOwogICAgICAgICBzeW5jaHJvbml6ZWQgKG1TdGF0ZUxvY2spIHsKLSAgICAgICAgICAgIGlmIChtU3RvcHBlZCkgeworICAgICAgICAgICAgaWYgKG1Eb25lKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1TdGF0dXNDb2RlID09IFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMuU1RPUFBFRCkgewogICAgICAgICAgICAgICAgIExvZy53KFRBRywgInN0b3AoKSBjYWxsZWQgdHdpY2UiKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGl0ZW0gPSBtSXRlbTsKLSAgICAgICAgICAgIG1TdG9wcGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIG1TdGF0dXNDb2RlID0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5TVE9QUEVEOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGl0ZW0gIT0gbnVsbCkgewpAQCAtMTA1LDE5ICsxMDIsMTUgQEAKICAgICAgICAgICAgIC8vIHBvaW50IGl0IHdpbGwgd3JpdGUgYW4gYWRkaXRpb25hbCBidWZmZXIgdG8gdGhlIGl0ZW0gLSBidXQgd2UKICAgICAgICAgICAgIC8vIHdvbid0IHdvcnJ5IGFib3V0IHRoYXQgYmVjYXVzZSB0aGUgYXVkaW8gcGxheWJhY2sgcXVldWUgd2lsbCBiZSBjbGVhcmVkCiAgICAgICAgICAgICAvLyBzb29uIGFmdGVyIChzZWUgU3ludGhIYW5kbGVyI3N0b3AoU3RyaW5nKS4KLSAgICAgICAgICAgIGl0ZW0uc3RvcCh3YXNFcnJvcik7CisgICAgICAgICAgICBpdGVtLnN0b3AoVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5TVE9QUEVEKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHN0b3AoKSBvciBlcnJvcigpIHdlcmUgY2FsbGVkIGJlZm9yZSBzdGFydCgpIHdhcy4KIAogICAgICAgICAgICAgLy8gSW4gYWxsIG90aGVyIGNhc2VzLCBtQXVkaW9UcmFja0hhbmRsZXIuc3RvcCgpIHdpbGwKICAgICAgICAgICAgIC8vIHJlc3VsdCBpbiBvblN5bnRoZXNpc0RvbmUgYmVpbmcgY2FsbGVkLCBhbmQgd2Ugd2lsbAogICAgICAgICAgICAgLy8gd3JpdGUgZGF0YSB0aGVyZS4KLSAgICAgICAgICAgIG1Mb2dnZXIub25Xcml0ZURhdGEoKTsKLQotICAgICAgICAgICAgaWYgKHdhc0Vycm9yKSB7Ci0gICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byBkaXNwYXRjaCB0aGUgZXJyb3Igb3Vyc2VsdmVzLgotICAgICAgICAgICAgICAgIG1EaXNwYXRjaGVyLmRpc3BhdGNoT25FcnJvcigpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgbUxvZ2dlci5vbkNvbXBsZXRlZChUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNUT1BQRUQpOworICAgICAgICAgICAgbURpc3BhdGNoZXIuZGlzcGF0Y2hPblN0b3AoKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTI5LDI2ICsxMjIsNDIgQEAKICAgICB9CiAKICAgICBAT3ZlcnJpZGUKLSAgICBib29sZWFuIGlzRG9uZSgpIHsKLSAgICAgICAgcmV0dXJuIG1Eb25lOworICAgIHB1YmxpYyBib29sZWFuIGhhc1N0YXJ0ZWQoKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAobVN0YXRlTG9jaykgeworICAgICAgICAgICAgcmV0dXJuIG1JdGVtICE9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNGaW5pc2hlZCgpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChtU3RhdGVMb2NrKSB7CisgICAgICAgICAgICByZXR1cm4gbURvbmU7CisgICAgICAgIH0KICAgICB9CiAKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgaW50IHN0YXJ0KGludCBzYW1wbGVSYXRlSW5IeiwgaW50IGF1ZGlvRm9ybWF0LCBpbnQgY2hhbm5lbENvdW50KSB7Ci0gICAgICAgIGlmIChEQkcpIHsKLSAgICAgICAgICAgIExvZy5kKFRBRywgInN0YXJ0KCIgKyBzYW1wbGVSYXRlSW5IeiArICIsIiArIGF1ZGlvRm9ybWF0Ci0gICAgICAgICAgICAgICAgICAgICsgIiwiICsgY2hhbm5lbENvdW50ICsgIikiKTsKLSAgICAgICAgfQorICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJzdGFydCgiICsgc2FtcGxlUmF0ZUluSHogKyAiLCIgKyBhdWRpb0Zvcm1hdCArICIsIiArIGNoYW5uZWxDb3VudAorICAgICAgICAgICAgICAgICsgIikiKTsKIAogICAgICAgICBpbnQgY2hhbm5lbENvbmZpZyA9IEJsb2NraW5nQXVkaW9UcmFjay5nZXRDaGFubmVsQ29uZmlnKGNoYW5uZWxDb3VudCk7Ci0gICAgICAgIGlmIChjaGFubmVsQ29uZmlnID09IDApIHsKLSAgICAgICAgICAgIExvZy5lKFRBRywgIlVuc3VwcG9ydGVkIG51bWJlciBvZiBjaGFubmVscyA6IiArIGNoYW5uZWxDb3VudCk7Ci0gICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLkVSUk9SOwotICAgICAgICB9CiAKICAgICAgICAgc3luY2hyb25pemVkIChtU3RhdGVMb2NrKSB7Ci0gICAgICAgICAgICBpZiAobVN0b3BwZWQpIHsKKyAgICAgICAgICAgIGlmIChjaGFubmVsQ29uZmlnID09IDApIHsKKyAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJVbnN1cHBvcnRlZCBudW1iZXIgb2YgY2hhbm5lbHMgOiIgKyBjaGFubmVsQ291bnQpOworICAgICAgICAgICAgICAgIG1TdGF0dXNDb2RlID0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5FUlJPUl9PVVRQVVQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIFRleHRUb1NwZWVjaC5FUlJPUjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtU3RhdHVzQ29kZSA9PSBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNUT1BQRUQpIHsKICAgICAgICAgICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJzdG9wKCkgY2FsbGVkIGJlZm9yZSBzdGFydCgpLCByZXR1cm5pbmcuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yQ29kZU9uU3RvcCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1TdGF0dXNDb2RlICE9IFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMuU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGlmIChEQkcpIExvZy5kKFRBRywgIkVycm9yIHdhcyByYWlzZWQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLkVSUk9SOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1JdGVtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJTdGFydCBjYWxsZWQgdHdpY2UiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLkVSUk9SOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgU3ludGhlc2lzUGxheWJhY2tRdWV1ZUl0ZW0gaXRlbSA9IG5ldyBTeW50aGVzaXNQbGF5YmFja1F1ZXVlSXRlbSgKQEAgLTE2MSwxMyArMTcwLDExIEBACiAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guU1VDQ0VTUzsKICAgICB9CiAKLQogICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyBpbnQgYXVkaW9BdmFpbGFibGUoYnl0ZVtdIGJ1ZmZlciwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkgewotICAgICAgICBpZiAoREJHKSB7Ci0gICAgICAgICAgICBMb2cuZChUQUcsICJhdWRpb0F2YWlsYWJsZShieXRlWyIgKyBidWZmZXIubGVuZ3RoICsgIl0sIgotICAgICAgICAgICAgICAgICAgICArIG9mZnNldCArICIsIiArIGxlbmd0aCArICIpIik7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAiYXVkaW9BdmFpbGFibGUoYnl0ZVsiICsgYnVmZmVyLmxlbmd0aCArICJdLCIgKyBvZmZzZXQgKyAiLCIgKyBsZW5ndGgKKyAgICAgICAgICAgICAgICArICIpIik7CisKICAgICAgICAgaWYgKGxlbmd0aCA+IGdldE1heEJ1ZmZlclNpemUoKSB8fCBsZW5ndGggPD0gMCkgewogICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYnVmZmVyIGlzIHRvbyBsYXJnZSBvciBvZiB6ZXJvIGxlbmd0aCAoIiArCiAgICAgICAgICAgICAgICAgICAgICsgbGVuZ3RoICsgIiBieXRlcykiKTsKQEAgLTE3NSw5ICsxODIsMTcgQEAKIAogICAgICAgICBTeW50aGVzaXNQbGF5YmFja1F1ZXVlSXRlbSBpdGVtID0gbnVsbDsKICAgICAgICAgc3luY2hyb25pemVkIChtU3RhdGVMb2NrKSB7Ci0gICAgICAgICAgICBpZiAobUl0ZW0gPT0gbnVsbCB8fCBtU3RvcHBlZCkgeworICAgICAgICAgICAgaWYgKG1JdGVtID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtU3RhdHVzQ29kZSA9IFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMuRVJST1JfT1VUUFVUOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobVN0YXR1c0NvZGUgIT0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5TVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAiRXJyb3Igd2FzIHJhaXNlZCIpOworICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobVN0YXR1c0NvZGUgPT0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5TVE9QUEVEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yQ29kZU9uU3RvcCgpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgaXRlbSA9IG1JdGVtOwogICAgICAgICB9CiAKQEAgLTE5MCwxMSArMjA1LDEzIEBACiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBpdGVtLnB1dChidWZmZXJDb3B5KTsKICAgICAgICAgfSBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gaWUpIHsKLSAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1TdGF0ZUxvY2spIHsKKyAgICAgICAgICAgICAgICBtU3RhdHVzQ29kZSA9IFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMuRVJST1JfT1VUUFVUOworICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBtTG9nZ2VyLm9uRW5naW5lRGF0YVJlY2VpdmVkKCk7Ci0KICAgICAgICAgcmV0dXJuIFRleHRUb1NwZWVjaC5TVUNDRVNTOwogICAgIH0KIApAQCAtMjAyLDM1ICsyMTksNzQgQEAKICAgICBwdWJsaWMgaW50IGRvbmUoKSB7CiAgICAgICAgIGlmIChEQkcpIExvZy5kKFRBRywgImRvbmUoKSIpOwogCisgICAgICAgIGludCBzdGF0dXNDb2RlID0gMDsKICAgICAgICAgU3ludGhlc2lzUGxheWJhY2tRdWV1ZUl0ZW0gaXRlbSA9IG51bGw7CiAgICAgICAgIHN5bmNocm9uaXplZCAobVN0YXRlTG9jaykgewogICAgICAgICAgICAgaWYgKG1Eb25lKSB7CiAgICAgICAgICAgICAgICAgTG9nLncoVEFHLCAiRHVwbGljYXRlIGNhbGwgdG8gZG9uZSgpIik7CisgICAgICAgICAgICAgICAgLy8gTm90IGFuIGVycm9yIHRoYXQgd291bGQgcHJldmVudCBzeW50aGVzaXMuIEhlbmNlIG5vCisgICAgICAgICAgICAgICAgLy8gc2V0U3RhdHVzQ29kZQogICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CiAgICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgIGlmIChtU3RhdHVzQ29kZSA9PSBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNUT1BQRUQpIHsKKyAgICAgICAgICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJSZXF1ZXN0IGhhcyBiZWVuIGFib3J0ZWQuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yQ29kZU9uU3RvcCgpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgbURvbmUgPSB0cnVlOwogCiAgICAgICAgICAgICBpZiAobUl0ZW0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIC5kb25lKCkgd2FzIGNhbGxlZCBiZWZvcmUgLnN0YXJ0LiBUcmVhdCBpdCBhcyBzdWNjZXNzZnVsIHN5bnRoZXNpcworICAgICAgICAgICAgICAgIC8vIGZvciBhIGNsaWVudCwgZGVzcGl0ZSBzZXJ2aWNlIGJhZCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgICAgICAgICBMb2cudyhUQUcsICJkb25lKCkgd2FzIGNhbGxlZCBiZWZvcmUgc3RhcnQoKSBjYWxsIik7CisgICAgICAgICAgICAgICAgaWYgKG1TdGF0dXNDb2RlID09IFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMuU1VDQ0VTUykgeworICAgICAgICAgICAgICAgICAgICBtRGlzcGF0Y2hlci5kaXNwYXRjaE9uU3VjY2VzcygpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1EaXNwYXRjaGVyLmRpc3BhdGNoT25FcnJvcihtU3RhdHVzQ29kZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1Mb2dnZXIub25FbmdpbmVDb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGl0ZW0gPSBtSXRlbTsKKyAgICAgICAgICAgIHN0YXR1c0NvZGUgPSBtU3RhdHVzQ29kZTsKICAgICAgICAgfQogCi0gICAgICAgIGl0ZW0uZG9uZSgpOworICAgICAgICAvLyBTaWduYWwgZG9uZSBvciBlcnJvciB0byBpdGVtCisgICAgICAgIGlmIChzdGF0dXNDb2RlID09IFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMuU1VDQ0VTUykgeworICAgICAgICAgICAgaXRlbS5kb25lKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpdGVtLnN0b3Aoc3RhdHVzQ29kZSk7CisgICAgICAgIH0KICAgICAgICAgbUxvZ2dlci5vbkVuZ2luZUNvbXBsZXRlKCk7Ci0KICAgICAgICAgcmV0dXJuIFRleHRUb1NwZWVjaC5TVUNDRVNTOwogICAgIH0KIAogICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyB2b2lkIGVycm9yKCkgewotICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJlcnJvcigpIFt3aWxsIGNhbGwgc3RvcF0iKTsKLSAgICAgICAgLy8gQ3VycmVudGx5LCB0aGlzIGNhbGwgd2lsbCBub3QgYmUgbG9nZ2VkIGlmIGVycm9yKCApIGlzIGNhbGxlZAotICAgICAgICAvLyBiZWZvcmUgc3RhcnQuCi0gICAgICAgIG1Mb2dnZXIub25FcnJvcigpOwotICAgICAgICBzdG9wSW1wbCh0cnVlKTsKKyAgICAgICAgZXJyb3IoVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5FUlJPUl9TWU5USEVTSVMpOwogICAgIH0KIAorICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIGVycm9yKGludCBlcnJvckNvZGUpIHsKKyAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAiZXJyb3IoKSBbd2lsbCBjYWxsIHN0b3BdIik7CisgICAgICAgIHN5bmNocm9uaXplZCAobVN0YXRlTG9jaykgeworICAgICAgICAgICAgaWYgKG1Eb25lKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbVN0YXR1c0NvZGUgPSBlcnJvckNvZGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgaW50IGZhbGxiYWNrKCkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKG1TdGF0ZUxvY2spIHsKKyAgICAgICAgICAgIGlmIChoYXNTdGFydGVkKCkgfHwgaGFzRmluaXNoZWQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1EaXNwYXRjaGVyLmRpc3BhdGNoT25GYWxsYmFjaygpOworICAgICAgICAgICAgbVN0YXR1c0NvZGUgPSBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNVQ0NFU1M7CisgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5TVUNDRVNTOworICAgICAgICB9CisgICAgfQogfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9SZXF1ZXN0Q29uZmlnLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1JlcXVlc3RDb25maWcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjUzODVmCi0tLSAvZGV2L251bGwKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9SZXF1ZXN0Q29uZmlnLmphdmEKQEAgLTAsMCArMSwyMTMgQEAKK3BhY2thZ2UgYW5kcm9pZC5zcGVlY2gudHRzOworCitpbXBvcnQgYW5kcm9pZC5tZWRpYS5BdWRpb01hbmFnZXI7CitpbXBvcnQgYW5kcm9pZC5vcy5CdW5kbGU7CisKKy8qKgorICogU3ludGhlc2lzIHJlcXVlc3QgY29uZmlndXJhdGlvbi4KKyAqCisgKiBUaGlzIGNsYXNzIGlzIGltbXV0YWJsZSwgYW5kIGNhbiBvbmx5IGJlIGNvbnN0cnVjdGVkIHVzaW5nCisgKiB7QGxpbmsgUmVxdWVzdENvbmZpZy5CdWlsZGVyfS4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFJlcXVlc3RDb25maWcgeworCisgICAgLyoqIEJ1aWxkZXIgZm9yIGNvbnN0cnVjdGluZyBSZXF1ZXN0Q29uZmlnIG9iamVjdHMuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBCdWlsZGVyIHsKKyAgICAgICAgcHJpdmF0ZSBWb2ljZUluZm8gbUN1cnJlbnRWb2ljZUluZm87CisgICAgICAgIHByaXZhdGUgQnVuZGxlIG1Wb2ljZVBhcmFtczsKKyAgICAgICAgcHJpdmF0ZSBCdW5kbGUgbUF1ZGlvUGFyYW1zOworCisgICAgICAgIEJ1aWxkZXIoVm9pY2VJbmZvIGN1cnJlbnRWb2ljZUluZm8sIEJ1bmRsZSB2b2ljZVBhcmFtcywgQnVuZGxlIGF1ZGlvUGFyYW1zKSB7CisgICAgICAgICAgICBtQ3VycmVudFZvaWNlSW5mbyA9IGN1cnJlbnRWb2ljZUluZm87CisgICAgICAgICAgICBtVm9pY2VQYXJhbXMgPSB2b2ljZVBhcmFtczsKKyAgICAgICAgICAgIG1BdWRpb1BhcmFtcyA9IGF1ZGlvUGFyYW1zOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENyZWF0ZSBuZXcgUmVxdWVzdENvbmZpZyBidWlsZGVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBCdWlsZGVyIG5ld0J1aWxkZXIoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IEJ1aWxkZXIobnVsbCwgbmV3IEJ1bmRsZSgpLCBuZXcgQnVuZGxlKCkpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENyZWF0ZSBuZXcgUmVxdWVzdENvbmZpZyBidWlsZGVyLgorICAgICAgICAgKiBAcGFyYW0gcHJvdG90eXBlCisgICAgICAgICAqICAgICAgICAgICAgUHJvdG90eXBlIG9mIG5ldyBSZXF1ZXN0Q29uZmlnLiBDb3BpZXMgYWxsIGZpZWxkcyBvZiB0aGUKKyAgICAgICAgICogICAgICAgICAgICBwcm90b3R5cGUgdG8gdGhlIGNvbnN0cnVjdGVkIG9iamVjdC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgQnVpbGRlciBuZXdCdWlsZGVyKFJlcXVlc3RDb25maWcgcHJvdG90eXBlKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IEJ1aWxkZXIocHJvdG90eXBlLm1DdXJyZW50Vm9pY2VJbmZvLAorICAgICAgICAgICAgICAgICAgICAoQnVuZGxlKXByb3RvdHlwZS5tVm9pY2VQYXJhbXMuY2xvbmUoKSwKKyAgICAgICAgICAgICAgICAgICAgKEJ1bmRsZSlwcm90b3R5cGUubUF1ZGlvUGFyYW1zLmNsb25lKCkpOworICAgICAgICB9CisKKyAgICAgICAgLyoqIFNldCB2b2ljZSBmb3IgcmVxdWVzdC4gV2lsbCByZXNldCB2b2ljZSBwYXJhbWV0ZXJzIHRvIHRoZSBkZWZhdWx0cy4gKi8KKyAgICAgICAgcHVibGljIEJ1aWxkZXIgc2V0Vm9pY2UoVm9pY2VJbmZvIHZvaWNlKSB7CisgICAgICAgICAgICBtQ3VycmVudFZvaWNlSW5mbyA9IHZvaWNlOworICAgICAgICAgICAgbVZvaWNlUGFyYW1zID0gKEJ1bmRsZSl2b2ljZS5nZXRQYXJhbXNXaXRoRGVmYXVsdHMoKS5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogU2V0IHJlcXVlc3Qgdm9pY2UgcGFyYW1ldGVyLgorICAgICAgICAgKgorICAgICAgICAgKiBAcGFyYW0gcGFyYW1OYW1lCisgICAgICAgICAqICAgICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlci4gSXQgaGFzIHRvIGJlIG9uZSBvZiB0aGUga2V5cworICAgICAgICAgKiAgICAgICAgICAgIGZyb20ge0BsaW5rIFZvaWNlSW5mbyNnZXRQYXJhbXNXaXRoRGVmYXVsdHMoKX0KKyAgICAgICAgICogQHBhcmFtIHZhbHVlCisgICAgICAgICAqICAgICAgICAgICAgVmFsdWUgb2YgdGhlIHBhcmFtZXRlci4gSXRzIHR5cGUgY2FuIGJlIG9uZSBvZjogSW50ZWdlciwgRmxvYXQsCisgICAgICAgICAqICAgICAgICAgICAgQm9vbGVhbiwgU3RyaW5nLCBWb2ljZUluZm8gKHdpbGwgYmUgc2V0IGFzIGEgU3RyaW5nLCByZXN1bHQgb2YgYSBjYWxsIHRvCisgICAgICAgICAqICAgICAgICAgICAgdGhlIHtAbGluayBWb2ljZUluZm8jZ2V0TmFtZSgpfSkgb3IgYnl0ZVtdLiBJdCBoYXMgdG8gYmUgb2YgdGhlIHNhbWUgdHlwZQorICAgICAgICAgKiAgICAgICAgICAgIGFzIHRoZSBkZWZhdWx0IHZhbHVlIGZyb20ge0BsaW5rIFZvaWNlSW5mbyNnZXRQYXJhbXNXaXRoRGVmYXVsdHMoKX0KKyAgICAgICAgICogICAgICAgICAgICBmb3IgdGhhdCBwYXJhbWV0ZXIuCisgICAgICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uCisgICAgICAgICAqICAgICAgICAgICAgSWYgcGFyYW1OYW1lIGlzIG5vdCBhIHZhbGlkIHBhcmFtZXRlciBuYW1lIG9yIGl0cyB2YWx1ZSBpcyBvZiBhIHdyb25nCisgICAgICAgICAqICAgICAgICAgICAgdHlwZS4KKyAgICAgICAgICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24KKyAgICAgICAgICogICAgICAgICAgICBJZiBubyB2b2ljZSBpcyBzZXQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgQnVpbGRlciBzZXRWb2ljZVBhcmFtKFN0cmluZyBwYXJhbU5hbWUsIE9iamVjdCB2YWx1ZSl7CisgICAgICAgICAgICBpZiAobUN1cnJlbnRWb2ljZUluZm8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3Qgc2V0IHZvaWNlIHBhcmFtZXRlciwgbm8gdm9pY2UgaXMgc2V0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBPYmplY3QgZGVmYXVsdFZhbHVlID0gbUN1cnJlbnRWb2ljZUluZm8uZ2V0UGFyYW1zV2l0aERlZmF1bHRzKCkuZ2V0KHBhcmFtTmFtZSk7CisgICAgICAgICAgICBpZiAoZGVmYXVsdFZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgIlBhcmFtZXRlciBcIiIgKyBwYXJhbU5hbWUgKyAiXCIgaXMgbm90IGF2YWlsYWJsZSBpbiBzZXQgdm9pY2Ugd2l0aCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWU6ICIgKyBtQ3VycmVudFZvaWNlSW5mby5nZXROYW1lKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJZiBpdCdzIFZvaWNlSW5mbywgZ2V0IGl0cyBuYW1lCisgICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBWb2ljZUluZm8pIHsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9ICgoVm9pY2VJbmZvKXZhbHVlKS5nZXROYW1lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIENoZWNrIHR5cGUgaW5mb3JtYXRpb24KKyAgICAgICAgICAgIGlmICghZGVmYXVsdFZhbHVlLmdldENsYXNzKCkuZXF1YWxzKHZhbHVlLmdldENsYXNzKCkpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJQYXJhbWV0ZXIgXCIiICsgcGFyYW1OYW1lICsiXCIgaXMgb2YgZGlmZmVyZW50IHR5cGUuIFZhbHVlIHBhc3NlZCBoYXMgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlICIgKyB2YWx1ZS5nZXRDbGFzcygpLmdldFNpbXBsZU5hbWUoKSArICIgYnV0IHNob3VsZCBoYXZlICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSAiICsgZGVmYXVsdFZhbHVlLmdldENsYXNzKCkuZ2V0U2ltcGxlTmFtZSgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc2V0UGFyYW0obVZvaWNlUGFyYW1zLCBwYXJhbU5hbWUsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldCByZXF1ZXN0IGF1ZGlvIHBhcmFtZXRlci4KKyAgICAgICAgICoKKyAgICAgICAgICogRG9lc24ndCByZXF1aXJlcyBhIHNldCB2b2ljZS4KKyAgICAgICAgICoKKyAgICAgICAgICogQHBhcmFtIHBhcmFtTmFtZQorICAgICAgICAgKiAgICAgICAgICAgIE5hbWUgb2YgcGFyYW1ldGVyLgorICAgICAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgICAgICogICAgICAgICAgICBWYWx1ZSBvZiBwYXJhbWV0ZXIuIEl0cyB0eXBlIGNhbiBiZSBvbmUgb2Y6IEludGVnZXIsIEZsb2F0LCBCb29sZWFuLCBTdHJpbmcKKyAgICAgICAgICogICAgICAgICAgICBvciBieXRlW10uCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgQnVpbGRlciBzZXRBdWRpb1BhcmFtKFN0cmluZyBwYXJhbU5hbWUsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICAgICAgc2V0UGFyYW0obUF1ZGlvUGFyYW1zLCBwYXJhbU5hbWUsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldCB0aGUge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudC5QYXJhbXMjQVVESU9fUEFSQU1fU1RSRUFNfSBhdWRpbyBwYXJhbWV0ZXIuCisgICAgICAgICAqCisgICAgICAgICAqIEBwYXJhbSBzdHJlYW1JZCBPbmUgb2YgdGhlIFNUUkVBTV8gY29uc3RhbnRzIGRlZmluZWQgaW4ge0BsaW5rIEF1ZGlvTWFuYWdlcn0uCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzZXRBdWRpb1BhcmFtU3RyZWFtKGludCBzdHJlYW1JZCkgeworICAgICAgICAgICAgc2V0QXVkaW9QYXJhbShUZXh0VG9TcGVlY2hDbGllbnQuUGFyYW1zLkFVRElPX1BBUkFNX1NUUkVBTSwgc3RyZWFtSWQpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldCB0aGUge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudC5QYXJhbXMjQVVESU9fUEFSQU1fVk9MVU1FfSBhdWRpbyBwYXJhbWV0ZXIuCisgICAgICAgICAqCisgICAgICAgICAqIEBwYXJhbSB2b2x1bWUgRmxvYXQgaW4gcmFuZ2Ugb2YgMC4wIHRvIDEuMC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldEF1ZGlvUGFyYW1Wb2x1bWUoZmxvYXQgdm9sdW1lKSB7CisgICAgICAgICAgICBzZXRBdWRpb1BhcmFtKFRleHRUb1NwZWVjaENsaWVudC5QYXJhbXMuQVVESU9fUEFSQU1fVk9MVU1FLCB2b2x1bWUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldCB0aGUge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudC5QYXJhbXMjQVVESU9fUEFSQU1fUEFOfSBhdWRpbyBwYXJhbWV0ZXIuCisgICAgICAgICAqCisgICAgICAgICAqIEBwYXJhbSBwYW4gRmxvYXQgaW4gcmFuZ2Ugb2YgLTEuMCB0byArMS4wLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgc2V0QXVkaW9QYXJhbVBhbihmbG9hdCBwYW4pIHsKKyAgICAgICAgICAgIHNldEF1ZGlvUGFyYW0oVGV4dFRvU3BlZWNoQ2xpZW50LlBhcmFtcy5BVURJT19QQVJBTV9QQU4sIHBhbik7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgc2V0UGFyYW0oQnVuZGxlIGJ1bmRsZSwgU3RyaW5nIGZlYXR1cmVOYW1lLCBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgICAgIGJ1bmRsZS5wdXRTdHJpbmcoZmVhdHVyZU5hbWUsIChTdHJpbmcpdmFsdWUpOworICAgICAgICAgICAgfSBlbHNlIGlmKHZhbHVlIGluc3RhbmNlb2YgYnl0ZVtdKSB7CisgICAgICAgICAgICAgICAgYnVuZGxlLnB1dEJ5dGVBcnJheShmZWF0dXJlTmFtZSwgKGJ5dGVbXSl2YWx1ZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYodmFsdWUgaW5zdGFuY2VvZiBJbnRlZ2VyKSB7CisgICAgICAgICAgICAgICAgYnVuZGxlLnB1dEludChmZWF0dXJlTmFtZSwgKEludGVnZXIpdmFsdWUpOworICAgICAgICAgICAgfSBlbHNlIGlmKHZhbHVlIGluc3RhbmNlb2YgRmxvYXQpIHsKKyAgICAgICAgICAgICAgICBidW5kbGUucHV0RmxvYXQoZmVhdHVyZU5hbWUsIChGbG9hdCl2YWx1ZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYodmFsdWUgaW5zdGFuY2VvZiBEb3VibGUpIHsKKyAgICAgICAgICAgICAgICBidW5kbGUucHV0RmxvYXQoZmVhdHVyZU5hbWUsIChGbG9hdCl2YWx1ZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYodmFsdWUgaW5zdGFuY2VvZiBCb29sZWFuKSB7CisgICAgICAgICAgICAgICAgYnVuZGxlLnB1dEJvb2xlYW4oZmVhdHVyZU5hbWUsIChCb29sZWFuKXZhbHVlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCB0eXBlIG9mIG9iamVjdCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEJ1aWxkIG5ldyBSZXF1ZXN0Q29uZmlnIGluc3RhbmNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFJlcXVlc3RDb25maWcgYnVpbGQoKSB7CisgICAgICAgICAgICBSZXF1ZXN0Q29uZmlnIGNvbmZpZyA9CisgICAgICAgICAgICAgICAgICAgIG5ldyBSZXF1ZXN0Q29uZmlnKG1DdXJyZW50Vm9pY2VJbmZvLCBtVm9pY2VQYXJhbXMsIG1BdWRpb1BhcmFtcyk7CisgICAgICAgICAgICByZXR1cm4gY29uZmlnOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBSZXF1ZXN0Q29uZmlnKFZvaWNlSW5mbyB2b2ljZUluZm8sIEJ1bmRsZSB2b2ljZVBhcmFtcywgQnVuZGxlIGF1ZGlvUGFyYW1zKSB7CisgICAgICAgIG1DdXJyZW50Vm9pY2VJbmZvID0gdm9pY2VJbmZvOworICAgICAgICBtVm9pY2VQYXJhbXMgPSB2b2ljZVBhcmFtczsKKyAgICAgICAgbUF1ZGlvUGFyYW1zID0gYXVkaW9QYXJhbXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3VycmVudGx5IHNldCB2b2ljZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIFZvaWNlSW5mbyBtQ3VycmVudFZvaWNlSW5mbzsKKworICAgIC8qKgorICAgICAqIFZvaWNlIHBhcmFtZXRlcnMgYnVuZGxlLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgQnVuZGxlIG1Wb2ljZVBhcmFtczsKKworICAgIC8qKgorICAgICAqIEF1ZGlvIHBhcmFtZXRlcnMgYnVuZGxlLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgQnVuZGxlIG1BdWRpb1BhcmFtczsKKworICAgIC8qKgorICAgICAqIEByZXR1cm4gQ3VycmVudGx5IHNldCByZXF1ZXN0IHZvaWNlLgorICAgICAqLworICAgIHB1YmxpYyBWb2ljZUluZm8gZ2V0Vm9pY2UoKSB7CisgICAgICAgIHJldHVybiBtQ3VycmVudFZvaWNlSW5mbzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFJlcXVlc3QgYXVkaW8gcGFyYW1ldGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgQnVuZGxlIGdldEF1ZGlvUGFyYW1zKCkgeworICAgICAgICByZXR1cm4gbUF1ZGlvUGFyYW1zOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gUmVxdWVzdCB2b2ljZSBwYXJhbWV0ZXJzLgorICAgICAqLworICAgIHB1YmxpYyBCdW5kbGUgZ2V0Vm9pY2VQYXJhbXMoKSB7CisgICAgICAgIHJldHVybiBtVm9pY2VQYXJhbXM7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1JlcXVlc3RDb25maWdIZWxwZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvUmVxdWVzdENvbmZpZ0hlbHBlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyNWM5ODUKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1JlcXVlc3RDb25maWdIZWxwZXIuamF2YQpAQCAtMCwwICsxLDE3MCBAQAorcGFja2FnZSBhbmRyb2lkLnNwZWVjaC50dHM7CisKK2ltcG9ydCBhbmRyb2lkLnNwZWVjaC50dHMuVGV4dFRvU3BlZWNoQ2xpZW50LkVuZ2luZVN0YXR1czsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogU2V0IG9mIGNvbW1vbiBoZXVyaXN0aWNzIGZvciBzZWxlY3Rpbmcge0BsaW5rIFZvaWNlSW5mb30gZnJvbQorICoge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudCNnZXRFbmdpbmVTdGF0dXMoKX0gb3V0cHV0LgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgUmVxdWVzdENvbmZpZ0hlbHBlciB7CisgICAgcHJpdmF0ZSBSZXF1ZXN0Q29uZmlnSGVscGVyKCkge30KKworICAgIC8qKgorICAgICAqIEludGVyZmFjZSBmb3Igc2NvcmluZyBWb2ljZUluZm8gb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50ZXJmYWNlIFZvaWNlU2NvcmVyIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNjb3JlIFZvaWNlSW5mby4gSWYgdGhlIHNjb3JlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB6ZXJvLCB0aGF0IHZvaWNlIGlzIGRpc2NhcmRlZC4KKyAgICAgICAgICogSWYgdHdvIHZvaWNlcyBoYXZlIHNhbWUgZGVzaXJlZCBwcmltYXJ5IGNoYXJhY3RlcmlzdGljcyAoaGlnaGVzdCBxdWFsaXR5LCBsb3dlc3QKKyAgICAgICAgICogbGF0ZW5jeSBvciBvdGhlcnMpLCB0aGUgb25lIHdpdGggdGhlIGhpZ2hlciBzY29yZSBpcyBzZWxlY3RlZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgc2NvcmVWb2ljZShWb2ljZUluZm8gdm9pY2VJbmZvKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTY29yZSBwb3NpdGl2ZWx5IHZvaWNlcyB0aGF0IGV4YWN0bHkgbWF0Y2ggdGhlIGxvY2FsZSBzdXBwbGllZCB0byB0aGUgY29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBFeGFjdExvY2FsZU1hdGNoZXIgaW1wbGVtZW50cyBWb2ljZVNjb3JlciB7CisgICAgICAgIHByaXZhdGUgZmluYWwgTG9jYWxlIG1Mb2NhbGU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNjb3JlIHBvc2l0aXZlbHkgdm9pY2VzIHRoYXQgZXhhY3RseSBtYXRjaCB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICAgICAqIEBwYXJhbSBsb2NhbGUgUmVmZXJlbmNlIGxvY2FsZS4gSWYgbnVsbCwgdGhlIGRlZmF1bHQgbG9jYWxlIHdpbGwgYmUgdXNlZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBFeGFjdExvY2FsZU1hdGNoZXIoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbUxvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1Mb2NhbGUgPSBsb2NhbGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBpbnQgc2NvcmVWb2ljZShWb2ljZUluZm8gdm9pY2VJbmZvKSB7CisgICAgICAgICAgICByZXR1cm4gbUxvY2FsZS5lcXVhbHModm9pY2VJbmZvLmdldExvY2FsZSgpKSA/IDEgOiAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2NvcmUgcG9zaXRpdmVseSB2b2ljZXMgdGhhdCBtYXRjaCBleGFjdGx5IHRoZSBnaXZlbiBsb2NhbGUgKHNjb3JlIDMpCisgICAgICogb3IgdGhhdCBzaGFyZSBzYW1lIGxhbmd1YWdlIGFuZCBjb3VudHJ5IChzY29yZSAyKSwgb3IgdGhhdCBzaGFyZSBqdXN0IGEgbGFuZ3VhZ2UgKHNjb3JlIDEpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgTGFuZ3VhZ2VNYXRjaGVyIGltcGxlbWVudHMgVm9pY2VTY29yZXIgeworICAgICAgICBwcml2YXRlIGZpbmFsIExvY2FsZSBtTG9jYWxlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBTY29yZSBwb3NpdGl2ZWx5IHZvaWNlcyB3aXRoIHNpbWlsYXIgbG9jYWxlLgorICAgICAgICAgKiBAcGFyYW0gbG9jYWxlIFJlZmVyZW5jZSBsb2NhbGUuIElmIG51bGwsIGRlZmF1bHQgd2lsbCBiZSB1c2VkLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIExhbmd1YWdlTWF0Y2hlcihMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtTG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbUxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgaW50IHNjb3JlVm9pY2UoVm9pY2VJbmZvIHZvaWNlSW5mbykgeworICAgICAgICAgICAgZmluYWwgTG9jYWxlIHZvaWNlTG9jYWxlID0gdm9pY2VJbmZvLmdldExvY2FsZSgpOworICAgICAgICAgICAgaWYgKG1Mb2NhbGUuZXF1YWxzKHZvaWNlTG9jYWxlKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAobUxvY2FsZS5nZXRMYW5ndWFnZSgpLmVxdWFscyh2b2ljZUxvY2FsZS5nZXRMYW5ndWFnZSgpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobUxvY2FsZS5nZXRDb3VudHJ5KCkuZXF1YWxzKHZvaWNlTG9jYWxlLmdldENvdW50cnkoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgaGlnaGVzdCBxdWFsaXR5IHZvaWNlIGZyb20gdm9pY2VzIHRoYXQgc2NvcmUgbW9yZSB0aGFuIHplcm8gZnJvbSB0aGUgcGFzc2VkIHNjb3Jlci4KKyAgICAgKiBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHZvaWNlIHdpdGggdGhlIHNhbWUgaGlnaGVzdCBxdWFsaXR5LCB0aGVuIHRoaXMgbWV0aG9kIHJldHVybnMgb25lCisgICAgICogd2l0aCB0aGUgaGlnaGVzdCBzY29yZS4gSWYgdGhleSBzaGFyZSBzYW1lIHNjb3JlIGFzIHdlbGwsIG9uZSB3aXRoIHRoZSBsb3dlciBpbmRleCBpbiB0aGUKKyAgICAgKiB2b2ljZXMgbGlzdCBpcyByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlbmdpbmVTdGF0dXMKKyAgICAgKiAgICAgICAgICAgIFZvaWNlcyBzdGF0dXMgcmVjZWl2ZWQgZnJvbSBhIHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnQjZ2V0RW5naW5lU3RhdHVzKCl9IGNhbGwuCisgICAgICogQHBhcmFtIHZvaWNlU2NvcmVyCisgICAgICogICAgICAgICAgICBVc2VkIHRvIGRpc2NhcmQgdW5zdWl0YWJsZSB2b2ljZXMgYW5kIGhlbHAgc2V0dGxlIGNhc2VzIHdoZXJlIG1vcmUgdGhhbgorICAgICAqICAgICAgICAgICAgb25lIHZvaWNlIGhhcyB0aGUgZGVzaXJlZCBjaGFyYWN0ZXJpc3RpYy4KKyAgICAgKiBAcGFyYW0gaGFzVG9CZUVtYmVkZGVkCisgICAgICogICAgICAgICAgICBJZiB0cnVlLCByZXF1aXJlIHRoZSB2b2ljZSB0byBiZSBhbiBlbWJlZGRlZCB2b2ljZSAobm8gbmV0d29yaworICAgICAqICAgICAgICAgICAgYWNjZXNzIHdpbGwgYmUgcmVxdWlyZWQgZm9yIHN5bnRoZXNpcykuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVm9pY2VJbmZvIGdldEhpZ2hlc3RRdWFsaXR5Vm9pY2UoRW5naW5lU3RhdHVzIGVuZ2luZVN0YXR1cywKKyAgICAgICAgICAgIFZvaWNlU2NvcmVyIHZvaWNlU2NvcmVyLCBib29sZWFuIGhhc1RvQmVFbWJlZGRlZCkgeworICAgICAgICBWb2ljZUluZm8gYmVzdFZvaWNlID0gbnVsbDsKKyAgICAgICAgaW50IGJlc3RTY29yZU1hdGNoID0gMTsKKyAgICAgICAgaW50IGJlc3RWb2ljZVF1YWxpdHkgPSAwOworCisgICAgICAgIGZvciAoVm9pY2VJbmZvIHZvaWNlIDogZW5naW5lU3RhdHVzLmdldFZvaWNlcygpKSB7CisgICAgICAgICAgICBpbnQgc2NvcmUgPSB2b2ljZVNjb3Jlci5zY29yZVZvaWNlKHZvaWNlKTsKKyAgICAgICAgICAgIGlmIChzY29yZSA8PSAwIHx8IGhhc1RvQmVFbWJlZGRlZCAmJiB2b2ljZS5nZXRSZXF1aXJlc05ldHdvcmtDb25uZWN0aW9uKCkKKyAgICAgICAgICAgICAgICAgICAgfHwgdm9pY2UuZ2V0UXVhbGl0eSgpIDwgYmVzdFZvaWNlUXVhbGl0eSkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoYmVzdFZvaWNlID09IG51bGwgfHwKKyAgICAgICAgICAgICAgICAgICAgdm9pY2UuZ2V0UXVhbGl0eSgpID4gYmVzdFZvaWNlUXVhbGl0eSB8fAorICAgICAgICAgICAgICAgICAgICBzY29yZSA+IGJlc3RTY29yZU1hdGNoKSB7CisgICAgICAgICAgICAgICAgYmVzdFZvaWNlID0gdm9pY2U7CisgICAgICAgICAgICAgICAgYmVzdFNjb3JlTWF0Y2ggPSBzY29yZTsKKyAgICAgICAgICAgICAgICBiZXN0Vm9pY2VRdWFsaXR5ID0gdm9pY2UuZ2V0UXVhbGl0eSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBiZXN0Vm9pY2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGhpZ2hlc3QgcXVhbGl0eSB2b2ljZS4KKyAgICAgKgorICAgICAqIEhpZ2hlc3QgcXVhbGl0eSB2b2ljZSBpcyBzZWxlY3RlZCBmcm9tIHZvaWNlcyB0aGF0IHNjb3JlIG1vcmUgdGhhbiB6ZXJvIGZyb20gdGhlIHBhc3NlZAorICAgICAqIHNjb3Jlci4gSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSB2b2ljZSB3aXRoIHRoZSBzYW1lIGhpZ2hlc3QgcXVhbGl0eSwgdGhlbiB0aGlzIG1ldGhvZAorICAgICAqIHdpbGwgcmV0dXJuIG9uZSB3aXRoIHRoZSBoaWdoZXN0IHNjb3JlLiBJZiB0aGV5IHNoYXJlIHNhbWUgc2NvcmUgYXMgd2VsbCwgb25lIHdpdGggdGhlIGxvd2VyCisgICAgICogaW5kZXggaW4gdGhlIHZvaWNlcyBsaXN0IGlzIHJldHVybmVkLgorCisgICAgICogQHBhcmFtIGVuZ2luZVN0YXR1cworICAgICAqICAgICAgICAgICAgVm9pY2VzIHN0YXR1cyByZWNlaXZlZCBmcm9tIGEge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudCNnZXRFbmdpbmVTdGF0dXMoKX0gY2FsbC4KKyAgICAgKiBAcGFyYW0gaGFzVG9CZUVtYmVkZGVkCisgICAgICogICAgICAgICAgICBJZiB0cnVlLCByZXF1aXJlIHRoZSB2b2ljZSB0byBiZSBhbiBlbWJlZGRlZCB2b2ljZSAobm8gbmV0d29yaworICAgICAqICAgICAgICAgICAgYWNjZXNzIHdpbGwgYmUgcmVxdWlyZWQgZm9yIHN5bnRoZXNpcykuCisgICAgICogQHBhcmFtIHZvaWNlU2NvcmVyCisgICAgICogICAgICAgICAgICBTY29yZXIgaXMgdXNlZCB0byBkaXNjYXJkIHVuc3VpdGFibGUgdm9pY2VzIGFuZCBoZWxwIHNldHRsZSBjYXNlcyB3aGVyZSBtb3JlIHRoYW4KKyAgICAgKiAgICAgICAgICAgIG9uZSB2b2ljZSBoYXMgaGlnaGVzdCBxdWFsaXR5LgorICAgICAqIEByZXR1cm4gUmVxdWVzdENvbmZpZyB3aXRoIHNlbGVjdGVkIHZvaWNlIG9yIG51bGwgaWYgc3VpdGFibGUgdm9pY2Ugd2FzIG5vdCBmb3VuZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJlcXVlc3RDb25maWcgaGlnaGVzdFF1YWxpdHkoRW5naW5lU3RhdHVzIGVuZ2luZVN0YXR1cywKKyAgICAgICAgICAgIGJvb2xlYW4gaGFzVG9CZUVtYmVkZGVkLCBWb2ljZVNjb3JlciB2b2ljZVNjb3JlcikgeworICAgICAgICBWb2ljZUluZm8gdm9pY2UgPSBnZXRIaWdoZXN0UXVhbGl0eVZvaWNlKGVuZ2luZVN0YXR1cywgdm9pY2VTY29yZXIsIGhhc1RvQmVFbWJlZGRlZCk7CisgICAgICAgIGlmICh2b2ljZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gUmVxdWVzdENvbmZpZy5CdWlsZGVyLm5ld0J1aWxkZXIoKS5zZXRWb2ljZSh2b2ljZSkuYnVpbGQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgaGlnaGVzdCBxdWFsaXR5IHZvaWNlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBDYWxsIHtAbGluayAjaGlnaGVzdFF1YWxpdHkoRW5naW5lU3RhdHVzLCBib29sZWFuLCBWb2ljZVNjb3Jlcil9IHdpdGgKKyAgICAgKiB7QGxpbmsgTGFuZ3VhZ2VNYXRjaGVyfSBzZXQgdG8gZGV2aWNlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGVuZ2luZVN0YXR1cworICAgICAqICAgICAgICAgICAgVm9pY2VzIHN0YXR1cyByZWNlaXZlZCBmcm9tIGEge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudCNnZXRFbmdpbmVTdGF0dXMoKX0gY2FsbC4KKyAgICAgKiBAcGFyYW0gaGFzVG9CZUVtYmVkZGVkCisgICAgICogICAgICAgICAgICBJZiB0cnVlLCByZXF1aXJlIHRoZSB2b2ljZSB0byBiZSBhbiBlbWJlZGRlZCB2b2ljZSAobm8gbmV0d29yaworICAgICAqICAgICAgICAgICAgYWNjZXNzIHdpbGwgYmUgcmVxdWlyZWQgZm9yIHN5bnRoZXNpcykuCisgICAgICogQHJldHVybiBSZXF1ZXN0Q29uZmlnIHdpdGggc2VsZWN0ZWQgdm9pY2Ugb3IgbnVsbCBpZiBzdWl0YWJsZSB2b2ljZSB3YXMgbm90IGZvdW5kLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVxdWVzdENvbmZpZyBoaWdoZXN0UXVhbGl0eShFbmdpbmVTdGF0dXMgZW5naW5lU3RhdHVzLAorICAgICAgICAgICAgYm9vbGVhbiBoYXNUb0JlRW1iZWRkZWQpIHsKKyAgICAgICAgcmV0dXJuIGhpZ2hlc3RRdWFsaXR5KGVuZ2luZVN0YXR1cywgaGFzVG9CZUVtYmVkZGVkLAorICAgICAgICAgICAgICAgIG5ldyBMYW5ndWFnZU1hdGNoZXIoTG9jYWxlLmdldERlZmF1bHQoKSkpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9TaWxlbmNlUGxheWJhY2tRdWV1ZUl0ZW0uamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvU2lsZW5jZVBsYXliYWNrUXVldWVJdGVtLmphdmEKaW5kZXggYTVlNDdhZS4uODhiN2M3MCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9TaWxlbmNlUGxheWJhY2tRdWV1ZUl0ZW0uamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1NpbGVuY2VQbGF5YmFja1F1ZXVlSXRlbS5qYXZhCkBAIC0xNyw3ICsxNyw2IEBACiAKIGltcG9ydCBhbmRyb2lkLm9zLkNvbmRpdGlvblZhcmlhYmxlOwogaW1wb3J0IGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hTZXJ2aWNlLlV0dGVyYW5jZVByb2dyZXNzRGlzcGF0Y2hlcjsKLWltcG9ydCBhbmRyb2lkLnV0aWwuTG9nOwogCiBjbGFzcyBTaWxlbmNlUGxheWJhY2tRdWV1ZUl0ZW0gZXh0ZW5kcyBQbGF5YmFja1F1ZXVlSXRlbSB7CiAgICAgcHJpdmF0ZSBmaW5hbCBDb25kaXRpb25WYXJpYWJsZSBtQ29uZFZhciA9IG5ldyBDb25kaXRpb25WYXJpYWJsZSgpOwpAQCAtMzIsMTQgKzMxLDIwIEBACiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIHZvaWQgcnVuKCkgewogICAgICAgICBnZXREaXNwYXRjaGVyKCkuZGlzcGF0Y2hPblN0YXJ0KCk7CisgICAgICAgIGJvb2xlYW4gd2FzU3RvcHBlZCA9IGZhbHNlOwogICAgICAgICBpZiAobVNpbGVuY2VEdXJhdGlvbk1zID4gMCkgewotICAgICAgICAgICAgbUNvbmRWYXIuYmxvY2sobVNpbGVuY2VEdXJhdGlvbk1zKTsKKyAgICAgICAgICB3YXNTdG9wcGVkID0gbUNvbmRWYXIuYmxvY2sobVNpbGVuY2VEdXJhdGlvbk1zKTsKICAgICAgICAgfQotICAgICAgICBnZXREaXNwYXRjaGVyKCkuZGlzcGF0Y2hPbkRvbmUoKTsKKyAgICAgICAgaWYgKHdhc1N0b3BwZWQpIHsKKyAgICAgICAgICAgIGdldERpc3BhdGNoZXIoKS5kaXNwYXRjaE9uU3RvcCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZ2V0RGlzcGF0Y2hlcigpLmRpc3BhdGNoT25TdWNjZXNzKCk7CisgICAgICAgIH0KKwogICAgIH0KIAogICAgIEBPdmVycmlkZQotICAgIHZvaWQgc3RvcChib29sZWFuIGlzRXJyb3IpIHsKKyAgICB2b2lkIHN0b3AoaW50IGVycm9yQ29kZSkgewogICAgICAgICBtQ29uZFZhci5vcGVuKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9TeW50aGVzaXNDYWxsYmFjay5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9TeW50aGVzaXNDYWxsYmFjay5qYXZhCmluZGV4IGY5OGJiMDkuLmJjMmYyMzkgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvU3ludGhlc2lzQ2FsbGJhY2suamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1N5bnRoZXNpc0NhbGxiYWNrLmphdmEKQEAgLTI2LDcgKzI2LDkgQEAKICAqIGluZGljYXRlIHRoYXQgYW4gZXJyb3IgaGFzIG9jY3VycmVkLCBidXQgaWYgdGhlIGNhbGwgaXMgbWFkZSBhZnRlciBhIGNhbGwKICAqIHRvIHtAbGluayAjZG9uZX0sIGl0IG1pZ2h0IGJlIGRpc2NhcmRlZC4KICAqCi0gKiBBZnRlciB7QGxpbmsgI3N0YXJ0fSBiZWVuIGNhbGxlZCwge0BsaW5rICNkb25lfSBtdXN0IGJlIGNhbGxlZCByZWdhcmRsZXNzIG9mIGVycm9ycy4KKyAqIHtAbGluayAjZG9uZX0gbXVzdCBiZSBjYWxsZWQgYXQgdGhlIGVuZCBvZiBzeW50aGVzaXMsIHJlZ2FyZGxlc3Mgb2YgZXJyb3JzLgorICoKKyAqIEFsbCBtZXRob2RzIGNhbiBiZSBvbmx5IGNhbGxlZCBvbiB0aGUgc3ludGhlc2lzIHRocmVhZC4KICAqLwogcHVibGljIGludGVyZmFjZSBTeW50aGVzaXNDYWxsYmFjayB7CiAgICAgLyoqCkBAIC00MSwxMyArNDMsMTYgQEAKICAgICAgKiByZXF1ZXN0LgogICAgICAqCiAgICAgICogVGhpcyBtZXRob2Qgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIHRoZSBzeW50aGVzaXMgdGhyZWFkLAotICAgICAqIHdoaWxlIGluIHtAbGluayBUZXh0VG9TcGVlY2hTZXJ2aWNlI29uU3ludGhlc2l6ZVRleHR9LgorICAgICAqIHdoaWxlIGluIHtAbGluayBUZXh0VG9TcGVlY2hTZXJ2aWNlI29uU3ludGhlc2l6ZVRleHR9IG9yCisgICAgICoge0BsaW5rIFRleHRUb1NwZWVjaFNlcnZpY2Ujb25TeW50aGVzaXplVGV4dFYyfS4KICAgICAgKgogICAgICAqIEBwYXJhbSBzYW1wbGVSYXRlSW5IeiBTYW1wbGUgcmF0ZSBpbiBIWiBvZiB0aGUgZ2VuZXJhdGVkIGF1ZGlvLgogICAgICAqIEBwYXJhbSBhdWRpb0Zvcm1hdCBBdWRpbyBmb3JtYXQgb2YgdGhlIGdlbmVyYXRlZCBhdWRpby4gTXVzdCBiZSBvbmUgb2YKICAgICAgKiAgICAgICAgIHRoZSBFTkNPRElOR18gY29uc3RhbnRzIGRlZmluZWQgaW4ge0BsaW5rIGFuZHJvaWQubWVkaWEuQXVkaW9Gb3JtYXR9LgogICAgICAqIEBwYXJhbSBjaGFubmVsQ291bnQgVGhlIG51bWJlciBvZiBjaGFubmVscy4gTXVzdCBiZSB7QGNvZGUgMX0gb3Ige0Bjb2RlIDJ9LgotICAgICAqIEByZXR1cm4ge0BsaW5rIFRleHRUb1NwZWVjaCNTVUNDRVNTfSBvciB7QGxpbmsgVGV4dFRvU3BlZWNoI0VSUk9SfS4KKyAgICAgKiBAcmV0dXJuIHtAbGluayBUZXh0VG9TcGVlY2gjU1VDQ0VTU30sIHtAbGluayBUZXh0VG9TcGVlY2gjRVJST1J9LgorICAgICAqICAgICAgICAgIHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzI1NUT1BQRUR9IGlzIGFsc28gcG9zc2libGUgaWYgY2FsbGVkIGluIGNvbnRleHQgb2YKKyAgICAgKiAgICAgICAgICB7QGxpbmsgVGV4dFRvU3BlZWNoU2VydmljZSNvblN5bnRoZXNpemVUZXh0VjJ9LgogICAgICAqLwogICAgIHB1YmxpYyBpbnQgc3RhcnQoaW50IHNhbXBsZVJhdGVJbkh6LCBpbnQgYXVkaW9Gb3JtYXQsIGludCBjaGFubmVsQ291bnQpOwogCkBAIC01NSw3ICs2MCw4IEBACiAgICAgICogVGhlIHNlcnZpY2Ugc2hvdWxkIGNhbGwgdGhpcyBtZXRob2Qgd2hlbiBzeW50aGVzaXplZCBhdWRpbyBpcyByZWFkeSBmb3IgY29uc3VtcHRpb24uCiAgICAgICoKICAgICAgKiBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSBjYWxsZWQgb24gdGhlIHN5bnRoZXNpcyB0aHJlYWQsCi0gICAgICogd2hpbGUgaW4ge0BsaW5rIFRleHRUb1NwZWVjaFNlcnZpY2Ujb25TeW50aGVzaXplVGV4dH0uCisgICAgICogd2hpbGUgaW4ge0BsaW5rIFRleHRUb1NwZWVjaFNlcnZpY2Ujb25TeW50aGVzaXplVGV4dH0gb3IKKyAgICAgKiB7QGxpbmsgVGV4dFRvU3BlZWNoU2VydmljZSNvblN5bnRoZXNpemVUZXh0VjJ9LgogICAgICAqCiAgICAgICogQHBhcmFtIGJ1ZmZlciBUaGUgZ2VuZXJhdGVkIGF1ZGlvIGRhdGEuIFRoaXMgbWV0aG9kIHdpbGwgbm90IGhvbGQgb24gdG8ge0Bjb2RlIGJ1ZmZlcn0sCiAgICAgICogICAgICAgICBzbyB0aGUgY2FsbGVyIGlzIGZyZWUgdG8gbW9kaWZ5IGl0IGFmdGVyIHRoaXMgbWV0aG9kIHJldHVybnMuCkBAIC02Myw2ICs2OSw4IEBACiAgICAgICogQHBhcmFtIGxlbmd0aCBUaGUgbnVtYmVyIG9mIGJ5dGVzIG9mIGF1ZGlvIGRhdGEgaW4ge0Bjb2RlIGJ1ZmZlcn0uIFRoaXMgbXVzdCBiZQogICAgICAqICAgICAgICAgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSByZXR1cm4gdmFsdWUgb2Yge0BsaW5rICNnZXRNYXhCdWZmZXJTaXplfS4KICAgICAgKiBAcmV0dXJuIHtAbGluayBUZXh0VG9TcGVlY2gjU1VDQ0VTU30gb3Ige0BsaW5rIFRleHRUb1NwZWVjaCNFUlJPUn0uCisgICAgICogICAgICAgICAge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMjU1RPUFBFRH0gaXMgYWxzbyBwb3NzaWJsZSBpZiBjYWxsZWQgaW4gY29udGV4dCBvZgorICAgICAqICAgICAgICAgIHtAbGluayBUZXh0VG9TcGVlY2hTZXJ2aWNlI29uU3ludGhlc2l6ZVRleHRWMn0uCiAgICAgICovCiAgICAgcHVibGljIGludCBhdWRpb0F2YWlsYWJsZShieXRlW10gYnVmZmVyLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKIApAQCAtNzEsMTEgKzc5LDE0IEBACiAgICAgICogYmVlbiBwYXNzZWQgdG8ge0BsaW5rICNhdWRpb0F2YWlsYWJsZX0uCiAgICAgICoKICAgICAgKiBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSBjYWxsZWQgb24gdGhlIHN5bnRoZXNpcyB0aHJlYWQsCi0gICAgICogd2hpbGUgaW4ge0BsaW5rIFRleHRUb1NwZWVjaFNlcnZpY2Ujb25TeW50aGVzaXplVGV4dH0uCisgICAgICogd2hpbGUgaW4ge0BsaW5rIFRleHRUb1NwZWVjaFNlcnZpY2Ujb25TeW50aGVzaXplVGV4dH0gb3IKKyAgICAgKiB7QGxpbmsgVGV4dFRvU3BlZWNoU2VydmljZSNvblN5bnRoZXNpemVUZXh0VjJ9LgogICAgICAqCi0gICAgICogVGhpcyBtZXRob2QgaGFzIHRvIGJlIGNhbGxlZCBpZiB7QGxpbmsgI3N0YXJ0fSB3YXMgY2FsbGVkLgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyB0byBiZSBjYWxsZWQgaWYge0BsaW5rICNzdGFydH0gYW5kL29yIHtAbGluayAjZXJyb3J9IHdhcyBjYWxsZWQuCiAgICAgICoKICAgICAgKiBAcmV0dXJuIHtAbGluayBUZXh0VG9TcGVlY2gjU1VDQ0VTU30gb3Ige0BsaW5rIFRleHRUb1NwZWVjaCNFUlJPUn0uCisgICAgICogICAgICAgICAge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMjU1RPUFBFRH0gaXMgYWxzbyBwb3NzaWJsZSBpZiBjYWxsZWQgaW4gY29udGV4dCBvZgorICAgICAqICAgICAgICAgIHtAbGluayBUZXh0VG9TcGVlY2hTZXJ2aWNlI29uU3ludGhlc2l6ZVRleHRWMn0uCiAgICAgICovCiAgICAgcHVibGljIGludCBkb25lKCk7CiAKQEAgLTg3LDQgKzk4LDU4IEBACiAgICAgICovCiAgICAgcHVibGljIHZvaWQgZXJyb3IoKTsKIAotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKworICAgIC8qKgorICAgICAqIFRoZSBzZXJ2aWNlIHNob3VsZCBjYWxsIHRoaXMgbWV0aG9kIGlmIHRoZSBzcGVlY2ggc3ludGhlc2lzIGZhaWxzLgorICAgICAqCisgICAgICogVGhpcyBtZXRob2Qgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIHRoZSBzeW50aGVzaXMgdGhyZWFkLAorICAgICAqIHdoaWxlIGluIHtAbGluayBUZXh0VG9TcGVlY2hTZXJ2aWNlI29uU3ludGhlc2l6ZVRleHR9IG9yCisgICAgICoge0BsaW5rIFRleHRUb1NwZWVjaFNlcnZpY2Ujb25TeW50aGVzaXplVGV4dFYyfS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlcnJvckNvZGUgRXJyb3IgY29kZSB0byBwYXNzIHRvIHRoZSBjbGllbnQuIE9uZSBvZiB0aGUgRVJST1JfIHZhbHVlcyBmcm9tCisgICAgICogICAgICB7QGxpbmsgVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1c30KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBlcnJvcihpbnQgZXJyb3JDb2RlKTsKKworICAgIC8qKgorICAgICAqIENvbW11bmljYXRlIHRvIGNsaWVudCB0aGF0IHRoZSBvcmlnaW5hbCByZXF1ZXN0IGNhbid0IGJlIGRvbmUgYW5kIGNsaWVudC1yZXF1ZXN0ZWQKKyAgICAgKiBmYWxsYmFjayBpcyBoYXBwZW5pbmcuCisgICAgICoKKyAgICAgKiBGYWxsYmFjayBjYW4gYmUgcmVxdWVzdGVkIGJ5IHRoZSBjbGllbnQgYnkgc2V0dGluZworICAgICAqIHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnQuUGFyYW1zI0ZBTExCQUNLX1ZPSUNFX05BTUV9IHZvaWNlIHBhcmFtZXRlciB3aXRoIGEgaWQgb2YKKyAgICAgKiB0aGUgdm9pY2UgdGhhdCBpcyBleHBlY3RlZCB0byBiZSB1c2VkIGZvciB0aGUgZmFsbGJhY2suCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIGZhaWwgaWYgdXNlciBjYWxsZWQge0BsaW5rICNzdGFydChpbnQsIGludCwgaW50KX0gYW5kL29yCisgICAgICoge0BsaW5rICNkb25lKCl9LgorICAgICAqCisgICAgICogVGhpcyBtZXRob2Qgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIHRoZSBzeW50aGVzaXMgdGhyZWFkLAorICAgICAqIHdoaWxlIGluIHtAbGluayBUZXh0VG9TcGVlY2hTZXJ2aWNlI29uU3ludGhlc2l6ZVRleHRWMn0uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHtAbGluayBUZXh0VG9TcGVlY2gjU1VDQ0VTU30sIHtAbGluayBUZXh0VG9TcGVlY2gjRVJST1J9IGlmIGNsaWVudCBhbHJlYWR5CisgICAgICogICAgICAgICAgY2FsbGVkIHtAbGluayAjc3RhcnQoaW50LCBpbnQsIGludCl9LCB7QGxpbmsgVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cyNTVE9QUEVEfQorICAgICAqICAgICAgICAgIGlmIHN0b3Agd2FzIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGZhbGxiYWNrKCk7CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpZiB7QGxpbmsgI3N0YXJ0fSB3YXMgY2FsbGVkIG9yIG5vdC4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiB0aGUgc3ludGhlc2lzIHRocmVhZCwKKyAgICAgKiB3aGlsZSBpbiB7QGxpbmsgVGV4dFRvU3BlZWNoU2VydmljZSNvblN5bnRoZXNpemVUZXh0fSBvcgorICAgICAqIHtAbGluayBUZXh0VG9TcGVlY2hTZXJ2aWNlI29uU3ludGhlc2l6ZVRleHRWMn0uCisgICAgICoKKyAgICAgKiBVc2VmdWwgZm9yIGNoZWNraW5nIGlmIGEgZmFsbGJhY2sgZnJvbSBuZXR3b3JrIHJlcXVlc3QgaXMgcG9zc2libGUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzU3RhcnRlZCgpOworCisgICAgLyoqCisgICAgICogQ2hlY2sgaWYge0BsaW5rICNkb25lfSB3YXMgY2FsbGVkIG9yIG5vdC4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiB0aGUgc3ludGhlc2lzIHRocmVhZCwKKyAgICAgKiB3aGlsZSBpbiB7QGxpbmsgVGV4dFRvU3BlZWNoU2VydmljZSNvblN5bnRoZXNpemVUZXh0fSBvcgorICAgICAqIHtAbGluayBUZXh0VG9TcGVlY2hTZXJ2aWNlI29uU3ludGhlc2l6ZVRleHRWMn0uCisgICAgICoKKyAgICAgKiBVc2VmdWwgZm9yIGNoZWNraW5nIGlmIGEgZmFsbGJhY2sgZnJvbSBuZXR3b3JrIHJlcXVlc3QgaXMgcG9zc2libGUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzRmluaXNoZWQoKTsKK30KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvU3ludGhlc2lzUGxheWJhY2tRdWV1ZUl0ZW0uamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvU3ludGhlc2lzUGxheWJhY2tRdWV1ZUl0ZW0uamF2YQppbmRleCBlODUzYzllLi5iNDI0MzU2IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1N5bnRoZXNpc1BsYXliYWNrUXVldWVJdGVtLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9TeW50aGVzaXNQbGF5YmFja1F1ZXVlSXRlbS5qYXZhCkBAIC01NywyMyArNTcsMjIgQEAKICAgICAgKi8KICAgICBwcml2YXRlIHZvbGF0aWxlIGJvb2xlYW4gbVN0b3BwZWQ7CiAgICAgcHJpdmF0ZSB2b2xhdGlsZSBib29sZWFuIG1Eb25lOwotICAgIHByaXZhdGUgdm9sYXRpbGUgYm9vbGVhbiBtSXNFcnJvcjsKKyAgICBwcml2YXRlIHZvbGF0aWxlIGludCBtU3RhdHVzQ29kZTsKIAogICAgIHByaXZhdGUgZmluYWwgQmxvY2tpbmdBdWRpb1RyYWNrIG1BdWRpb1RyYWNrOwotICAgIHByaXZhdGUgZmluYWwgRXZlbnRMb2dnZXIgbUxvZ2dlcjsKLQorICAgIHByaXZhdGUgZmluYWwgQWJzdHJhY3RFdmVudExvZ2dlciBtTG9nZ2VyOwogCiAgICAgU3ludGhlc2lzUGxheWJhY2tRdWV1ZUl0ZW0oaW50IHN0cmVhbVR5cGUsIGludCBzYW1wbGVSYXRlLAogICAgICAgICAgICAgaW50IGF1ZGlvRm9ybWF0LCBpbnQgY2hhbm5lbENvdW50LAogICAgICAgICAgICAgZmxvYXQgdm9sdW1lLCBmbG9hdCBwYW4sIFV0dGVyYW5jZVByb2dyZXNzRGlzcGF0Y2hlciBkaXNwYXRjaGVyLAotICAgICAgICAgICAgT2JqZWN0IGNhbGxlcklkZW50aXR5LCBFdmVudExvZ2dlciBsb2dnZXIpIHsKKyAgICAgICAgICAgIE9iamVjdCBjYWxsZXJJZGVudGl0eSwgQWJzdHJhY3RFdmVudExvZ2dlciBsb2dnZXIpIHsKICAgICAgICAgc3VwZXIoZGlzcGF0Y2hlciwgY2FsbGVySWRlbnRpdHkpOwogCiAgICAgICAgIG1VbmNvbnN1bWVkQnl0ZXMgPSAwOwogCiAgICAgICAgIG1TdG9wcGVkID0gZmFsc2U7CiAgICAgICAgIG1Eb25lID0gZmFsc2U7Ci0gICAgICAgIG1Jc0Vycm9yID0gZmFsc2U7CisgICAgICAgIG1TdGF0dXNDb2RlID0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5TVUNDRVNTOwogCiAgICAgICAgIG1BdWRpb1RyYWNrID0gbmV3IEJsb2NraW5nQXVkaW9UcmFjayhzdHJlYW1UeXBlLCBzYW1wbGVSYXRlLCBhdWRpb0Zvcm1hdCwKICAgICAgICAgICAgICAgICBjaGFubmVsQ291bnQsIHZvbHVtZSwgcGFuKTsKQEAgLTg2LDkgKzg1LDggQEAKICAgICAgICAgZmluYWwgVXR0ZXJhbmNlUHJvZ3Jlc3NEaXNwYXRjaGVyIGRpc3BhdGNoZXIgPSBnZXREaXNwYXRjaGVyKCk7CiAgICAgICAgIGRpc3BhdGNoZXIuZGlzcGF0Y2hPblN0YXJ0KCk7CiAKLQogICAgICAgICBpZiAoIW1BdWRpb1RyYWNrLmluaXQoKSkgewotICAgICAgICAgICAgZGlzcGF0Y2hlci5kaXNwYXRjaE9uRXJyb3IoKTsKKyAgICAgICAgICAgIGRpc3BhdGNoZXIuZGlzcGF0Y2hPbkVycm9yKFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMuRVJST1JfT1VUUFVUKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0xMTIsMjMgKzExMCwyNSBAQAogCiAgICAgICAgIG1BdWRpb1RyYWNrLndhaXRBbmRSZWxlYXNlKCk7CiAKLSAgICAgICAgaWYgKG1Jc0Vycm9yKSB7Ci0gICAgICAgICAgICBkaXNwYXRjaGVyLmRpc3BhdGNoT25FcnJvcigpOworICAgICAgICBpZiAobVN0YXR1c0NvZGUgPT0gVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5TVUNDRVNTKSB7CisgICAgICAgICAgICBkaXNwYXRjaGVyLmRpc3BhdGNoT25TdWNjZXNzKCk7CisgICAgICAgIH0gZWxzZSBpZihtU3RhdHVzQ29kZSA9PSBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLlNUT1BQRUQpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoZXIuZGlzcGF0Y2hPblN0b3AoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRpc3BhdGNoZXIuZGlzcGF0Y2hPbkRvbmUoKTsKKyAgICAgICAgICAgIGRpc3BhdGNoZXIuZGlzcGF0Y2hPbkVycm9yKG1TdGF0dXNDb2RlKTsKICAgICAgICAgfQogCi0gICAgICAgIG1Mb2dnZXIub25Xcml0ZURhdGEoKTsKKyAgICAgICAgbUxvZ2dlci5vbkNvbXBsZXRlZChtU3RhdHVzQ29kZSk7CiAgICAgfQogCiAgICAgQE92ZXJyaWRlCi0gICAgdm9pZCBzdG9wKGJvb2xlYW4gaXNFcnJvcikgeworICAgIHZvaWQgc3RvcChpbnQgc3RhdHVzQ29kZSkgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgbUxpc3RMb2NrLmxvY2soKTsKIAogICAgICAgICAgICAgLy8gVXBkYXRlIG91ciBpbnRlcm5hbCBzdGF0ZS4KICAgICAgICAgICAgIG1TdG9wcGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIG1Jc0Vycm9yID0gaXNFcnJvcjsKKyAgICAgICAgICAgIG1TdGF0dXNDb2RlID0gc3RhdHVzQ29kZTsKIAogICAgICAgICAgICAgLy8gV2FrZSB1cCB0aGUgYXVkaW8gcGxheWJhY2sgdGhyZWFkIGlmIGl0IHdhcyB3YWl0aW5nIG9uIHRha2UoKS4KICAgICAgICAgICAgIC8vIHRha2UoKSB3aWxsIHJldHVybiBudWxsIHNpbmNlIG1TdG9wcGVkIHdhcyB0cnVlLCBhbmQgd2lsbCB0aGVuCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1N5bnRoZXNpc1JlcXVlc3RWMi5haWRsIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9TeW50aGVzaXNSZXF1ZXN0VjIuYWlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWM3ZGE2Ci0tLSAvZGV2L251bGwKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9TeW50aGVzaXNSZXF1ZXN0VjIuYWlkbApAQCAtMCwwICsxLDIwIEBACisvKgorKioKKyoqIENvcHlyaWdodCAyMDEzLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworCitwYWNrYWdlIGFuZHJvaWQuc3BlZWNoLnR0czsKKworcGFyY2VsYWJsZSBTeW50aGVzaXNSZXF1ZXN0VjI7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9TeW50aGVzaXNSZXF1ZXN0VjIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvU3ludGhlc2lzUmVxdWVzdFYyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQyNjhiNwotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvU3ludGhlc2lzUmVxdWVzdFYyLmphdmEKQEAgLTAsMCArMSwxMzIgQEAKK3BhY2thZ2UgYW5kcm9pZC5zcGVlY2gudHRzOworCitpbXBvcnQgYW5kcm9pZC5vcy5CdW5kbGU7CitpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWw7CitpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWxhYmxlOworaW1wb3J0IGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuVXR0ZXJhbmNlSWQ7CisKKy8qKgorICogU2VydmljZS1zaWRlIHJlcHJlc2VudGF0aW9uIG9mIGEgc3ludGhlc2lzIHJlcXVlc3QgZnJvbSBhIFYyIEFQSSBjbGllbnQuIENvbnRhaW5zOgorICogPHVsPgorICogICA8bGk+VGhlIHV0dGVyYW5jZSB0byBzeW50aGVzaXplPC9saT4KKyAqICAgPGxpPlRoZSBpZCBvZiB0aGUgdXR0ZXJhbmNlIChTdHJpbmcsIHJlc3VsdCBvZiB7QGxpbmsgVXR0ZXJhbmNlSWQjdG9VbmlxdWVTdHJpbmcoKX08L2xpPgorICogICA8bGk+VGhlIHN5bnRoZXNpcyB2b2ljZSBuYW1lIChTdHJpbmcsIHJlc3VsdCBvZiB7QGxpbmsgVm9pY2VJbmZvI2dldE5hbWUoKX0pPC9saT4KKyAqICAgPGxpPlZvaWNlIHBhcmFtZXRlcnMgKEJ1bmRsZSBvZiBwYXJhbWV0ZXJzKTwvbGk+CisgKiAgIDxsaT5BdWRpbyBwYXJhbWV0ZXJzIChCdW5kbGUgb2YgcGFyYW1ldGVycyk8L2xpPgorICogPC91bD4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFN5bnRoZXNpc1JlcXVlc3RWMiBpbXBsZW1lbnRzIFBhcmNlbGFibGUgeworICAgIC8qKiBTeW50aGVzaXMgdXR0ZXJhbmNlLiAqLworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG1UZXh0OworCisgICAgLyoqIFN5bnRoZXNpcyBpZC4gKi8KKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtVXR0ZXJhbmNlSWQ7CisKKyAgICAvKiogVm9pY2UgSUQuICovCisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgbVZvaWNlTmFtZTsKKworICAgIC8qKiBWb2ljZSBQYXJhbWV0ZXJzLiAqLworICAgIHByaXZhdGUgZmluYWwgQnVuZGxlIG1Wb2ljZVBhcmFtczsKKworICAgIC8qKiBBdWRpbyBQYXJhbWV0ZXJzLiAqLworICAgIHByaXZhdGUgZmluYWwgQnVuZGxlIG1BdWRpb1BhcmFtczsKKworICAgIC8qKgorICAgICAqIFBhcmNlbCBiYXNlZCBjb25zdHJ1Y3Rvci4KKyAgICAgKgorICAgICAqIEBoaWRlCisgICAgICovCisgICAgcHVibGljIFN5bnRoZXNpc1JlcXVlc3RWMihQYXJjZWwgaW4pIHsKKyAgICAgICAgdGhpcy5tVGV4dCA9IGluLnJlYWRTdHJpbmcoKTsKKyAgICAgICAgdGhpcy5tVXR0ZXJhbmNlSWQgPSBpbi5yZWFkU3RyaW5nKCk7CisgICAgICAgIHRoaXMubVZvaWNlTmFtZSA9IGluLnJlYWRTdHJpbmcoKTsKKyAgICAgICAgdGhpcy5tVm9pY2VQYXJhbXMgPSBpbi5yZWFkQnVuZGxlKCk7CisgICAgICAgIHRoaXMubUF1ZGlvUGFyYW1zID0gaW4ucmVhZEJ1bmRsZSgpOworICAgIH0KKworICAgIFN5bnRoZXNpc1JlcXVlc3RWMihTdHJpbmcgdGV4dCwgU3RyaW5nIHV0dGVyYW5jZUlkLCBSZXF1ZXN0Q29uZmlnIHJjb25maWcpIHsKKyAgICAgICAgdGhpcy5tVGV4dCA9IHRleHQ7CisgICAgICAgIHRoaXMubVV0dGVyYW5jZUlkID0gdXR0ZXJhbmNlSWQ7CisgICAgICAgIHRoaXMubVZvaWNlTmFtZSA9IHJjb25maWcuZ2V0Vm9pY2UoKS5nZXROYW1lKCk7CisgICAgICAgIHRoaXMubVZvaWNlUGFyYW1zID0gcmNvbmZpZy5nZXRWb2ljZVBhcmFtcygpOworICAgICAgICB0aGlzLm1BdWRpb1BhcmFtcyA9IHJjb25maWcuZ2V0QXVkaW9QYXJhbXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXcml0ZSB0byBwYXJjZWwuCisgICAgICoKKyAgICAgKiBAaGlkZQorICAgICAqLworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIHdyaXRlVG9QYXJjZWwoUGFyY2VsIGRlc3QsIGludCBmbGFncykgeworICAgICAgICBkZXN0LndyaXRlU3RyaW5nKG1UZXh0KTsKKyAgICAgICAgZGVzdC53cml0ZVN0cmluZyhtVXR0ZXJhbmNlSWQpOworICAgICAgICBkZXN0LndyaXRlU3RyaW5nKG1Wb2ljZU5hbWUpOworICAgICAgICBkZXN0LndyaXRlQnVuZGxlKG1Wb2ljZVBhcmFtcyk7CisgICAgICAgIGRlc3Qud3JpdGVCdW5kbGUobUF1ZGlvUGFyYW1zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRoZSB0ZXh0IHdoaWNoIHNob3VsZCBiZSBzeW50aGVzaXplZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRleHQoKSB7CisgICAgICAgIHJldHVybiBtVGV4dDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRoZSBpZCBvZiB0aGUgc3ludGhlc2lzIHJlcXVlc3QuIEl0J3MgYW4gb3V0cHV0IG9mIGEgY2FsbCB0byB0aGUKKyAgICAgKiB7QGxpbmsgVXR0ZXJhbmNlSWQjdG9VbmlxdWVTdHJpbmcoKX0gbWV0aG9kIG9mIHRoZSB7QGxpbmsgVXR0ZXJhbmNlSWR9IGFzc29jaWF0ZWQgd2l0aAorICAgICAqIHRoaXMgcmVxdWVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFV0dGVyYW5jZUlkKCkgeworICAgICAgICByZXR1cm4gbVV0dGVyYW5jZUlkOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdGhlIG5hbWUgb2YgdGhlIHZvaWNlIHRvIHVzZSBmb3IgdGhpcyBzeW50aGVzaXMgcmVxdWVzdC4gUmVzdWx0IG9mIGEgY2FsbCB0bworICAgICAqIHRoZSB7QGxpbmsgVm9pY2VJbmZvI2dldE5hbWUoKX0gbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0Vm9pY2VOYW1lKCkgeworICAgICAgICByZXR1cm4gbVZvaWNlTmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIGJ1bmRsZSBvZiB2b2ljZSBwYXJhbWV0ZXJzLgorICAgICAqLworICAgIHB1YmxpYyBCdW5kbGUgZ2V0Vm9pY2VQYXJhbXMoKSB7CisgICAgICAgIHJldHVybiBtVm9pY2VQYXJhbXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBidW5kbGUgb2YgYXVkaW8gcGFyYW1ldGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgQnVuZGxlIGdldEF1ZGlvUGFyYW1zKCkgeworICAgICAgICByZXR1cm4gbUF1ZGlvUGFyYW1zOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcmNlbCBjcmVhdG9ycy4KKyAgICAgKgorICAgICAqIEBoaWRlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBQYXJjZWxhYmxlLkNyZWF0b3I8U3ludGhlc2lzUmVxdWVzdFYyPiBDUkVBVE9SID0KKyAgICAgICAgICAgIG5ldyBQYXJjZWxhYmxlLkNyZWF0b3I8U3ludGhlc2lzUmVxdWVzdFYyPigpIHsKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBTeW50aGVzaXNSZXF1ZXN0VjIgY3JlYXRlRnJvbVBhcmNlbChQYXJjZWwgc291cmNlKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFN5bnRoZXNpc1JlcXVlc3RWMihzb3VyY2UpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBTeW50aGVzaXNSZXF1ZXN0VjJbXSBuZXdBcnJheShpbnQgc2l6ZSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBTeW50aGVzaXNSZXF1ZXN0VjJbc2l6ZV07CisgICAgICAgIH0KKyAgICB9OworCisgICAgLyoqCisgICAgICogQGhpZGUKKyAgICAgKi8KKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgaW50IGRlc2NyaWJlQ29udGVudHMoKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvVGV4dFRvU3BlZWNoLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1RleHRUb1NwZWVjaC5qYXZhCmluZGV4IDI3NTIwODUuLjAyMTUyZmIgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvVGV4dFRvU3BlZWNoLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9UZXh0VG9TcGVlY2guamF2YQpAQCAtNTQsNyArNTQsOSBAQAogICogV2hlbiB5b3UgYXJlIGRvbmUgdXNpbmcgdGhlIFRleHRUb1NwZWVjaCBpbnN0YW5jZSwgY2FsbCB0aGUge0BsaW5rICNzaHV0ZG93bigpfSBtZXRob2QKICAqIHRvIHJlbGVhc2UgdGhlIG5hdGl2ZSByZXNvdXJjZXMgdXNlZCBieSB0aGUgVGV4dFRvU3BlZWNoIGVuZ2luZS4KICAqCisgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudH0gaW5zdGVhZAogICovCitARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFRleHRUb1NwZWVjaCB7CiAKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEFHID0gIlRleHRUb1NwZWVjaCI7CkBAIC05NzAsNyArOTcyLDcgQEAKICAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICAgcHVibGljIEludGVnZXIgcnVuKElUZXh0VG9TcGVlY2hTZXJ2aWNlIHNlcnZpY2UpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewogICAgICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlLnBsYXlTaWxlbmNlKGdldENhbGxlcklkZW50aXR5KCksIGR1cmF0aW9uSW5NcywgcXVldWVNb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UGFyYW1zKHBhcmFtcykpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zID09IG51bGwgPyBudWxsIDogcGFyYW1zLmdldChFbmdpbmUuS0VZX1BBUkFNX1VUVEVSQU5DRV9JRCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9LCBFUlJPUiwgInBsYXlTaWxlbmNlIik7CiAgICAgfQpAQCAtMTQ0Myw4ICsxNDQ1LDE3IEBACiAgICAgICAgIHByaXZhdGUgYm9vbGVhbiBtRXN0YWJsaXNoZWQ7CiAKICAgICAgICAgcHJpdmF0ZSBmaW5hbCBJVGV4dFRvU3BlZWNoQ2FsbGJhY2suU3R1YiBtQ2FsbGJhY2sgPSBuZXcgSVRleHRUb1NwZWVjaENhbGxiYWNrLlN0dWIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBvblN0b3AoU3RyaW5nIHV0dGVyYW5jZUlkKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKKyAgICAgICAgICAgICAgICAvLyBkbyBub3RoaW5nCisgICAgICAgICAgICB9OworCiAgICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uRG9uZShTdHJpbmcgdXR0ZXJhbmNlSWQpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uRmFsbGJhY2soU3RyaW5nIHV0dGVyYW5jZUlkKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKKyAgICAgICAgICAgICAgICAvLyBkbyBub3RoaW5nCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEBPdmVycmlkZQorICAgICAgICAgICAgcHVibGljIHZvaWQgb25TdWNjZXNzKFN0cmluZyB1dHRlcmFuY2VJZCkgewogICAgICAgICAgICAgICAgIFV0dGVyYW5jZVByb2dyZXNzTGlzdGVuZXIgbGlzdGVuZXIgPSBtVXR0ZXJhbmNlUHJvZ3Jlc3NMaXN0ZW5lcjsKICAgICAgICAgICAgICAgICBpZiAobGlzdGVuZXIgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lci5vbkRvbmUodXR0ZXJhbmNlSWQpOwpAQCAtMTQ1Miw3ICsxNDYzLDcgQEAKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCBvbkVycm9yKFN0cmluZyB1dHRlcmFuY2VJZCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgb25FcnJvcihTdHJpbmcgdXR0ZXJhbmNlSWQsIGludCBlcnJvckNvZGUpIHsKICAgICAgICAgICAgICAgICBVdHRlcmFuY2VQcm9ncmVzc0xpc3RlbmVyIGxpc3RlbmVyID0gbVV0dGVyYW5jZVByb2dyZXNzTGlzdGVuZXI7CiAgICAgICAgICAgICAgICAgaWYgKGxpc3RlbmVyICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXIub25FcnJvcih1dHRlcmFuY2VJZCk7CkBAIC0xNDY2LDYgKzE0NzcsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXIub25TdGFydCh1dHRlcmFuY2VJZCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uVm9pY2VzSW5mb0NoYW5nZShMaXN0PFZvaWNlSW5mbz4gdm9pY2VzSW5mbykgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7CisgICAgICAgICAgICAgICAgLy8gSWdub3JlIGl0CisgICAgICAgICAgICB9CiAgICAgICAgIH07CiAKICAgICAgICAgcHJpdmF0ZSBjbGFzcyBTZXR1cENvbm5lY3Rpb25Bc3luY1Rhc2sgZXh0ZW5kcyBBc3luY1Rhc2s8Vm9pZCwgVm9pZCwgSW50ZWdlcj4gewpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9UZXh0VG9TcGVlY2hDbGllbnQuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvVGV4dFRvU3BlZWNoQ2xpZW50LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE5OGUxYwotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvVGV4dFRvU3BlZWNoQ2xpZW50LmphdmEKQEAgLTAsMCArMSwxMDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QKKyAqIHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mCisgKiB0aGUgTGljZW5zZSBhdAorICoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQKKyAqIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZQorICogTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIKKyAqIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5zcGVlY2gudHRzOworCitpbXBvcnQgYW5kcm9pZC5hcHAuQWN0aXZpdHk7CitpbXBvcnQgYW5kcm9pZC5hcHAuQXBwbGljYXRpb247CitpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbXBvbmVudE5hbWU7CitpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7CitpbXBvcnQgYW5kcm9pZC5jb250ZW50LkludGVudDsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQuU2VydmljZUNvbm5lY3Rpb247CitpbXBvcnQgYW5kcm9pZC5tZWRpYS5BdWRpb01hbmFnZXI7CitpbXBvcnQgYW5kcm9pZC5uZXQuVXJpOworaW1wb3J0IGFuZHJvaWQub3MuQXN5bmNUYXNrOworaW1wb3J0IGFuZHJvaWQub3MuSUJpbmRlcjsKK2ltcG9ydCBhbmRyb2lkLm9zLlBhcmNlbEZpbGVEZXNjcmlwdG9yOworaW1wb3J0IGFuZHJvaWQub3MuUmVtb3RlRXhjZXB0aW9uOworaW1wb3J0IGFuZHJvaWQuc3BlZWNoLnR0cy5JVGV4dFRvU3BlZWNoQ2FsbGJhY2s7CitpbXBvcnQgYW5kcm9pZC5zcGVlY2gudHRzLklUZXh0VG9TcGVlY2hTZXJ2aWNlOworaW1wb3J0IGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2guRW5naW5lOworaW1wb3J0IGFuZHJvaWQudXRpbC5Mb2c7CitpbXBvcnQgYW5kcm9pZC51dGlsLlBhaXI7CisKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKKy8qKgorICogU3ludGhlc2l6ZXMgc3BlZWNoIGZyb20gdGV4dCBmb3IgaW1tZWRpYXRlIHBsYXliYWNrIG9yIHRvIGNyZWF0ZSBhIHNvdW5kCisgKiBmaWxlLgorICogPHA+CisgKiBUaGlzIGlzIGFuIHVwZGF0ZWQgdmVyc2lvbiBvZiB0aGUgc3BlZWNoIHN5bnRoZXNpcyBjbGllbnQgdGhhdCBzdXBlcnNlZGVzCisgKiB7QGxpbmsgYW5kcm9pZC5zcGVlY2gudHRzLlRleHRUb1NwZWVjaH0uCisgKiA8cD4KKyAqIEEgVGV4dFRvU3BlZWNoQ2xpZW50IGluc3RhbmNlIGNhbiBvbmx5IGJlIHVzZWQgdG8gc3ludGhlc2l6ZSB0ZXh0IG9uY2UgaXQgaGFzCisgKiBjb25uZWN0ZWQgdG8gdGhlIHNlcnZpY2UuIFRoZSBUZXh0VG9TcGVlY2hDbGllbnQgaW5zdGFuY2Ugd2lsbCBzdGFydCBlc3RhYmxpc2hpbmcKKyAqIHRoZSBjb25uZWN0aW9uIGFmdGVyIGEgY2FsbCB0byB0aGUge0BsaW5rICNjb25uZWN0KCl9IG1ldGhvZC4gVGhpcyBpcyB1c3VhbGx5IGRvbmUgaW4KKyAqIHtAbGluayBBcHBsaWNhdGlvbiNvbkNyZWF0ZSgpfSBvciB7QGxpbmsgQWN0aXZpdHkjb25DcmVhdGV9LiBXaGVuIHRoZSBjb25uZWN0aW9uCisgKiBpcyBlc3RhYmxpc2hlZCwgdGhlIGluc3RhbmNlIHdpbGwgY2FsbCBiYWNrIHVzaW5nIHRoZQorICoge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudC5Db25uZWN0aW9uQ2FsbGJhY2tzfSBpbnRlcmZhY2UuIE9ubHkgYWZ0ZXIgYQorICogc3VjY2Vzc2Z1bCBjYWxsYmFjayBpcyB0aGUgY2xpZW50IHVzYWJsZS4KKyAqIDxwPgorICogQWZ0ZXIgc3VjY2Vzc2Z1bCBjb25uZWN0aW9uLCB0aGUgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIHZvaWNlcyBjYW4gYmUgb2J0YWluZWQKKyAqIGJ5IGNhbGxpbmcgdGhlIHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnQjZ2V0RW5naW5lU3RhdHVzKCkgbWV0aG9kLiBUaGUgY2xpZW50IGNhbgorICogY2hvb3NlIGEgdm9pY2UgdXNpbmcgc29tZSBjdXN0b20gaGV1cmlzdGljIGFuZCBidWlsZCBhIHtAbGluayBSZXF1ZXN0Q29uZmlnfSBvYmplY3QKKyAqIHVzaW5nIHtAbGluayBSZXF1ZXN0Q29uZmlnLkJ1aWxkZXJ9LCBvciBjYW4gdXNlIG9uZSBvZiB0aGUgY29tbW9uIGhldXJpc3RpY3MgZm91bmQKKyAqIGluICh7QGxpbmsgUmVxdWVzdENvbmZpZ0hlbHBlcn0uCisgKiA8cD4KKyAqIFdoZW4geW91IGFyZSBkb25lIHVzaW5nIHRoZSBUZXh0VG9TcGVlY2hDbGllbnQgaW5zdGFuY2UsIGNhbGwgdGhlCisgKiB7QGxpbmsgI2Rpc2Nvbm5lY3QoKX0gbWV0aG9kIHRvIHJlbGVhc2UgdGhlIGNvbm5lY3Rpb24uCisgKiA8cD4KKyAqIEluIHRoZSByYXJlIGNhc2Ugb2YgYSBjaGFuZ2UgdG8gdGhlIHNldCBvZiBhdmFpbGFibGUgdm9pY2VzLCB0aGUgc2VydmljZSB3aWxsIGNhbGwgdG8gdGhlCisgKiB7QGxpbmsgQ29ubmVjdGlvbkNhbGxiYWNrcyNvbkVuZ2luZVN0YXR1c0NoYW5nZX0gd2l0aCBuZXcgc2V0IG9mIGF2YWlsYWJsZSB2b2ljZXMgYXMgYXJndW1lbnQuCisgKiBJbiByZXNwb25zZSwgdGhlIGNsaWVudCBIQVZFIHRvIHJlY3JlYXRlIGFsbCB7QGxpbmsgUmVxdWVzdENvbmZpZ30gaW5zdGFuY2VzIGluIHVzZS4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFRleHRUb1NwZWVjaENsaWVudCB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRBRyA9IFRleHRUb1NwZWVjaENsaWVudC5jbGFzcy5nZXRTaW1wbGVOYW1lKCk7CisKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdCBtTG9jayA9IG5ldyBPYmplY3QoKTsKKyAgICBwcml2YXRlIGZpbmFsIFR0c0VuZ2luZXMgbUVuZ2luZXNIZWxwZXI7CisgICAgcHJpdmF0ZSBmaW5hbCBDb250ZXh0IG1Db250ZXh0OworCisgICAgLy8gR3VhcmRlZCBieSBtTG9jaworICAgIHByaXZhdGUgQ29ubmVjdGlvbiBtU2VydmljZUNvbm5lY3Rpb247CisgICAgcHJpdmF0ZSBmaW5hbCBSZXF1ZXN0Q2FsbGJhY2tzIG1EZWZhdWx0UmVxdWVzdENhbGxiYWNrczsKKyAgICBwcml2YXRlIGZpbmFsIENvbm5lY3Rpb25DYWxsYmFja3MgbUNvbm5lY3Rpb25DYWxsYmFja3M7CisgICAgcHJpdmF0ZSBFbmdpbmVTdGF0dXMgbUVuZ2luZVN0YXR1czsKKyAgICBwcml2YXRlIFN0cmluZyBtUmVxdWVzdGVkRW5naW5lOworICAgIHByaXZhdGUgYm9vbGVhbiBtRmFsbGJhY2tUb0RlZmF1bHQ7CisgICAgcHJpdmF0ZSBIYXNoTWFwPFN0cmluZywgUGFpcjxVdHRlcmFuY2VJZCwgUmVxdWVzdENhbGxiYWNrcz4+IG1DYWxsYmFja3M7CisgICAgLy8gR3VhcmRlZCBieSBtTG9jaworCisgICAgLyoqIENvbW1vbiB2b2ljZXMgcGFyYW1ldGVycyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgUGFyYW1zIHsKKyAgICAgICAgcHJpdmF0ZSBQYXJhbXMoKSB7fQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBNYXhpbXVtIGFsbG93ZWQgdGltZSBmb3IgYSBzaW5nbGUgcmVxdWVzdCBhdHRlbXB0LCBpbiBtaWxsaXNlY29uZHMsIGJlZm9yZSBzeW50aGVzaXMKKyAgICAgICAgICogZmFpbHMgKG9yIGZhbGxiYWNrIHJlcXVlc3Qgc3RhcnRzLCBpZiByZXF1ZXN0ZWQgdXNpbmcKKyAgICAgICAgICoge0BsaW5rICNGQUxMQkFDS19WT0lDRV9OQU1FfSkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBORVRXT1JLX1RJTUVPVVRfTVMgPSAibmV0d29ya1RpbWVvdXRNcyI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiBuZXR3b3JrIHJlcXVlc3QgcmV0cmllcyB0aGF0IGFyZSBhdHRlbXB0ZWQgaW4gY2FzZSBvZiBmYWlsdXJlCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBORVRXT1JLX1JFVFJJRVNfQ09VTlQgPSAibmV0d29ya1JldHJpZXNDb3VudCI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNob3VsZCBzeW50aGVzaXplciByZXBvcnQgc3ViLXV0dGVyYW5jZSBwcm9ncmVzcyBvbiBzeW50aGVzaXMuIE9ubHkgYXBwbGljYWJsZQorICAgICAgICAgKiBmb3IgdGhlIHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnQjcXVldWVTcGVha30gbWV0aG9kLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVFJBQ0tfU1VCVVRURVJBTkNFX1BST0dSRVNTID0gInRyYWNrU3VidXR0ZXJhbmNlUHJvZ3Jlc3MiOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBJZiBhIHZvaWNlIGV4cG9zZXMgdGhpcyBwYXJhbWV0ZXIgdGhlbiBpdCBzdXBwb3J0cyB0aGUgZmFsbGJhY2sgcmVxdWVzdCBmZWF0dXJlLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiBpdCBpcyBzZXQgdG8gYSB2YWxpZCBuYW1lIG9mIHNvbWUgb3RoZXIgdm9pY2UgKHtAbGluayBWb2ljZUluZm8jZ2V0TmFtZSgpfSkgdGhlbgorICAgICAgICAgKiBpbiBjYXNlIG9mIHJlcXVlc3QgZmFpbHVyZSAoZHVlIHRvIG5ldHdvcmsgcHJvYmxlbXMgb3IgbWlzc2luZyBkYXRhKSwgZmFsbGJhY2sgcmVxdWVzdAorICAgICAgICAgKiB3aWxsIGJlIGF0dGVtcHRlZC4gUmVxdWVzdCB3aWxsIGJlIGRvbmUgdXNpbmcgdGhlIHZvaWNlIHJlZmVyZW5jZWQgYnkgdGhpcyBwYXJhbWV0ZXIuCisgICAgICAgICAqIElmIGl0IGlzIHRoZSBjYXNlLCB0aGUgY2xpZW50IHdpbGwgYmUgaW5mb3JtZWQgYnkgYSBjYWxsYmFjayB0byB0aGUge0BsaW5rCisgICAgICAgICAqIFJlcXVlc3RDYWxsYmFja3Mjb25TeW50aGVzaXNGYWxsYmFjayhVdHRlcmFuY2VJZCl9LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRkFMTEJBQ0tfVk9JQ0VfTkFNRSA9ICJmYWxsYmFja1ZvaWNlTmFtZSI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEF1ZGlvIHBhcmFtZXRlciBmb3Igc3BlY2lmeWluZyBhIGxpbmVhciBtdWx0aXBsaWVyIHRvIHRoZSBzcGVha2luZyBzcGVlZCBvZiB0aGUgdm9pY2UuCisgICAgICAgICAqIFRoZSB2YWx1ZSBpcyBhIGZsb2F0LiBWYWx1ZXMgYmVsb3cgemVybyBkZWNyZWFzZSBzcGVlZCBvZiB0aGUgc3ludGhlc2l6ZWQgc3BlZWNoCisgICAgICAgICAqIHZhbHVlcyBhYm92ZSBvbmUgaW5jcmVhc2UgaXQuIElmIHRoZSB2YWx1ZSBvZiB0aGlzIHBhcmFtZXRlciBpcyBlcXVhbCB0byB6ZXJvLAorICAgICAgICAgKiB0aGVuIGl0IHdpbGwgYmUgcmVwbGFjZWQgYnkgYSBzZXR0aW5ncy1jb25maWd1cmFibGUgZGVmYXVsdCBiZWZvcmUgaXQgcmVhY2hlcworICAgICAgICAgKiBUVFMgc2VydmljZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUVDSF9TUEVFRCA9ICJzcGVlY2hTcGVlZCI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEF1ZGlvIHBhcmFtZXRlciBmb3IgY29udHJvbGxpbmcgdGhlIHBpdGNoIG9mIHRoZSBvdXRwdXQuIFRoZSBWYWx1ZSBpcyBhIHBvc2l0aXZlIGZsb2F0LAorICAgICAgICAgKiB3aXRoIGRlZmF1bHQgb2Yge0Bjb2RlIDEuMH0uIFRoZSB2YWx1ZSBpcyB1c2VkIHRvIHNjYWxlIHRoZSBwcmltYXJ5IGZyZXF1ZW5jeSBsaW5lYXJseS4KKyAgICAgICAgICogTG93ZXIgdmFsdWVzIGxvd2VyIHRoZSB0b25lIG9mIHRoZSBzeW50aGVzaXplZCB2b2ljZSwgZ3JlYXRlciB2YWx1ZXMgaW5jcmVhc2UgaXQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVFQ0hfUElUQ0ggPSAic3BlZWNoUGl0Y2giOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBdWRpbyBwYXJhbWV0ZXIgZm9yIGNvbnRyb2xsaW5nIG91dHB1dCB2b2x1bWUuIFZhbHVlIGlzIGEgZmxvYXQgd2l0aCBzY2FsZSBvZiAwIHRvIDEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEFVRElPX1BBUkFNX1ZPTFVNRSA9IFRleHRUb1NwZWVjaC5FbmdpbmUuS0VZX1BBUkFNX1ZPTFVNRTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQXVkaW8gcGFyYW1ldGVyIGZvciBjb250cm9sbGluZyBvdXRwdXQgcGFuLgorICAgICAgICAgKiBWYWx1ZSBpcyBhIGZsb2F0IHJhbmdpbmcgZnJvbSAtMSB0byArMSB3aGVyZSAtMSBtYXBzIHRvIGEgaGFyZC1sZWZ0IHBhbiwKKyAgICAgICAgICogMCB0byBjZW50ZXIgKHRoZSBkZWZhdWx0IGJlaGF2aW9yKSwgYW5kICsxIHRvIGhhcmQtcmlnaHQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBVURJT19QQVJBTV9QQU4gPSBUZXh0VG9TcGVlY2guRW5naW5lLktFWV9QQVJBTV9QQU47CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEF1ZGlvIHBhcmFtZXRlciBmb3Igc3BlY2lmeWluZyB0aGUgYXVkaW8gc3RyZWFtIHR5cGUgdG8gYmUgdXNlZCB3aGVuIHNwZWFraW5nIHRleHQKKyAgICAgICAgICogb3IgcGxheWluZyBiYWNrIGEgZmlsZS4gVGhlIHZhbHVlIHNob3VsZCBiZSBvbmUgb2YgdGhlIFNUUkVBTV8gY29uc3RhbnRzCisgICAgICAgICAqIGRlZmluZWQgaW4ge0BsaW5rIEF1ZGlvTWFuYWdlcn0uCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBVURJT19QQVJBTV9TVFJFQU0gPSBUZXh0VG9TcGVlY2guRW5naW5lLktFWV9QQVJBTV9TVFJFQU07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzdWx0IGNvZGVzIGZvciBUVFMgb3BlcmF0aW9ucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFN0YXR1cyB7CisgICAgICAgIHByaXZhdGUgU3RhdHVzKCkge30KKworICAgICAgICAvKioKKyAgICAgICAgICogRGVub3RlcyBhIHN1Y2Nlc3NmdWwgb3BlcmF0aW9uLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VDQ0VTUyA9IDA7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlbm90ZXMgYSBzdG9wIHJlcXVlc3RlZCBieSBhIGNsaWVudC4gSXQncyB1c2VkIG9ubHkgb24gdGhlIHNlcnZpY2Ugc2lkZSBvZiB0aGUgQVBJLAorICAgICAgICAgKiBjbGllbnQgc2hvdWxkIG5ldmVyIGV4cGVjdCB0byBzZWUgdGhpcyByZXN1bHQgY29kZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUT1BQRUQgPSAxMDA7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlbm90ZXMgYSBnZW5lcmljIGZhaWx1cmUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUlJPUl9VTktOT1dOID0gLTE7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlbm90ZXMgYSBmYWlsdXJlIG9mIGEgVFRTIGVuZ2luZSB0byBzeW50aGVzaXplIHRoZSBnaXZlbiBpbnB1dC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVSUk9SX1NZTlRIRVNJUyA9IDEwOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZW5vdGVzIGEgZmFpbHVyZSBvZiBhIFRUUyBzZXJ2aWNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVJST1JfU0VSVklDRSA9IDExOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZW5vdGVzIGEgZmFpbHVyZSByZWxhdGVkIHRvIHRoZSBvdXRwdXQgKGF1ZGlvIGRldmljZSBvciBhIGZpbGUpLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVJST1JfT1VUUFVUID0gMTI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlbm90ZXMgYSBmYWlsdXJlIGNhdXNlZCBieSBhIG5ldHdvcmsgY29ubmVjdGl2aXR5IHByb2JsZW1zLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVJST1JfTkVUV09SSyA9IDEzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZW5vdGVzIGEgZmFpbHVyZSBjYXVzZWQgYnkgbmV0d29yayB0aW1lb3V0LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVJST1JfTkVUV09SS19USU1FT1VUID0gMTQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlbm90ZXMgYSBmYWlsdXJlIGNhdXNlZCBieSBhbiBpbnZhbGlkIHJlcXVlc3QuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUlJPUl9JTlZBTElEX1JFUVVFU1QgPSAxNTsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGVub3RlcyBhIGZhaWx1cmUgcmVsYXRlZCB0byBwYXNzaW5nIGEgbm9uLXVuaXF1ZSB1dHRlcmFuY2UgaWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUlJPUl9OT05fVU5JUVVFX1VUVEVSQU5DRV9JRCA9IDE2OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZW5vdGVzIGEgZmFpbHVyZSByZWxhdGVkIHRvIG1pc3NpbmcgZGF0YS4gVGhlIFRUUyBpbXBsZW1lbnRhdGlvbiBtYXkgZG93bmxvYWQKKyAgICAgICAgICogdGhlIG1pc3NpbmcgZGF0YSwgYW5kIGlmIHNvLCByZXF1ZXN0IHdpbGwgc3VjY2VlZCBpbiBmdXR1cmUuIFRoaXMgZXJyb3IgY2FuIG9ubHkgaGFwcGVuCisgICAgICAgICAqIGZvciB2b2ljZXMgd2l0aCB7QGxpbmsgVm9pY2VJbmZvI0ZFQVRVUkVfTUFZX0FVVE9JTlNUQUxMfSBmZWF0dXJlLgorICAgICAgICAgKiBOb3RlOiB0aGUgcmVjb21tZW5kZWQgd2F5IHRvIGF2b2lkIHRoaXMgZXJyb3IgaXMgdG8gY3JlYXRlIGEgcmVxdWVzdCB3aXRoIHRoZSBmYWxsYmFjaworICAgICAgICAgKiB2b2ljZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVSUk9SX0RPV05MT0FESU5HX0FERElUSU9OQUxfREFUQSA9IDE3OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBvZiBjYWxsYmFja3MgZm9yIHRoZSBldmVudHMgcmVsYXRlZCB0byB0aGUgcHJvZ3Jlc3Mgb2YgYSBzeW50aGVzaXMgcmVxdWVzdAorICAgICAqIHRocm91Z2ggdGhlIHN5bnRoZXNpcyBxdWV1ZS4gRWFjaCBzeW50aGVzaXMgcmVxdWVzdCBpcyBhc3NvY2lhdGVkIHdpdGggYSBjYWxsIHRvCisgICAgICoge0BsaW5rICNxdWV1ZVNwZWFrfSBvciB7QGxpbmsgI3F1ZXVlU3ludGhlc2l6ZVRvRmlsZX0uCisgICAgICoKKyAgICAgKiBUaGUgY2FsbGJhY2tzIHNwZWNpZmllZCBpbiB0aGlzIG1ldGhvZCB3aWxsIE5PVCBiZSBjYWxsZWQgb24gVUkgdGhyZWFkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgUmVxdWVzdENhbGxiYWNrcyAgeworICAgICAgICAvKioKKyAgICAgICAgICogQ2FsbGVkIGFmdGVyIHN5bnRoZXNpcyBvZiB1dHRlcmFuY2Ugc3VjY2Vzc2Z1bGx5IHN0YXJ0cy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIG9uU3ludGhlc2lzU3RhcnQoVXR0ZXJhbmNlSWQgdXR0ZXJhbmNlSWQpIHt9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENhbGxlZCBhZnRlciBzeW50aGVzaXMgc3VjY2Vzc2Z1bGx5IGZpbmlzaGVzLgorICAgICAgICAgKiBAcGFyYW0gdXR0ZXJhbmNlSWQKKyAgICAgICAgICogICAgICAgICAgICBVbmlxdWUgaWRlbnRpZmllciBvZiBzeW50aGVzaXplZCB1dHRlcmFuY2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBvblN5bnRoZXNpc1N1Y2Nlc3MoVXR0ZXJhbmNlSWQgdXR0ZXJhbmNlSWQpIHt9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENhbGxlZCBhZnRlciBzeW50aGVzaXMgd2FzIHN0b3BwZWQgaW4gbWlkZGxlIG9mIHN5bnRoZXNpcyBwcm9jZXNzLgorICAgICAgICAgKiBAcGFyYW0gdXR0ZXJhbmNlSWQKKyAgICAgICAgICogICAgICAgICAgICBVbmlxdWUgaWRlbnRpZmllciBvZiBzeW50aGVzaXplZCB1dHRlcmFuY2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBvblN5bnRoZXNpc1N0b3AoVXR0ZXJhbmNlSWQgdXR0ZXJhbmNlSWQpIHt9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENhbGxlZCB3aGVuIHJlcXVlc3RlZCBzeW50aGVzaXMgZmFpbGVkIGFuZCBmYWxsYmFjayBzeW50aGVzaXMgaXMgYWJvdXQgdG8gYmUgYXR0ZW1wdGVkLgorICAgICAgICAgKgorICAgICAgICAgKiBSZXF1aXJlcyB2b2ljZSB3aXRoIGF2YWlsYWJsZSB7QGxpbmsgVGV4dFRvU3BlZWNoQ2xpZW50LlBhcmFtcyNGQUxMQkFDS19WT0lDRV9OQU1FfQorICAgICAgICAgKiBwYXJhbWV0ZXIsIGFuZCByZXF1ZXN0IHdpdGggdGhpcyBwYXJhbWV0ZXIgZW5hYmxlZC4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBjYWxsYmFjayB3aWxsIGJlIGZvbGxvd2VkIGJ5IGNhbGxiYWNrIHRvIHRoZSB7QGxpbmsgI29uU3ludGhlc2lzU3RhcnR9LAorICAgICAgICAgKiB7QGxpbmsgI29uU3ludGhlc2lzRmFpbHVyZX0gb3Ige0BsaW5rICNvblN5bnRoZXNpc1N1Y2Nlc3N9IHRoYXQgZGVwZW5kcyBvbiB0aGUKKyAgICAgICAgICogZmFsbGJhY2sgb3V0Y29tZS4KKyAgICAgICAgICoKKyAgICAgICAgICogRm9yIG1vcmUgZmFsbGJhY2sgZmVhdHVyZSByZWZlcmVuY2UsIGxvb2sgYXQgdGhlCisgICAgICAgICAqIHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnQuUGFyYW1zI0ZBTExCQUNLX1ZPSUNFX05BTUV9LgorICAgICAgICAgKgorICAgICAgICAgKiBAcGFyYW0gdXR0ZXJhbmNlSWQKKyAgICAgICAgICogICAgICAgICAgICBVbmlxdWUgaWRlbnRpZmllciBvZiBzeW50aGVzaXplZCB1dHRlcmFuY2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBvblN5bnRoZXNpc0ZhbGxiYWNrKFV0dGVyYW5jZUlkIHV0dGVyYW5jZUlkKSB7fQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDYWxsZWQgYWZ0ZXIgc3ludGhlc2lzIG9mIHV0dGVyYW5jZSBmYWlscy4KKyAgICAgICAgICoKKyAgICAgICAgICogSXQgbWF5IGJlIGNhbGxlZCBpbnN0ZWFkIG9yIGFmdGVyIGEge0BsaW5rICNvblN5bnRoZXNpc1N0YXJ0fSBjYWxsYmFjay4KKyAgICAgICAgICoKKyAgICAgICAgICogQHBhcmFtIHV0dGVyYW5jZUlkCisgICAgICAgICAqICAgICAgICAgICAgVW5pcXVlIGlkZW50aWZpZXIgb2Ygc3ludGhlc2l6ZWQgdXR0ZXJhbmNlLgorICAgICAgICAgKiBAcGFyYW0gZXJyb3JDb2RlCisgICAgICAgICAqICAgICAgICAgICAgT25lIG9mIHRoZSB2YWx1ZXMgZnJvbSB7QGxpbmsgU3RhdHVzfS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIG9uU3ludGhlc2lzRmFpbHVyZShVdHRlcmFuY2VJZCB1dHRlcmFuY2VJZCwgaW50IGVycm9yQ29kZSkge30KKworICAgICAgICAvKioKKyAgICAgICAgICogQ2FsbGVkIGR1cmluZyBzeW50aGVzaXMgdG8gbWFyayBzeW50aGVzaXMgcHJvZ3Jlc3MuCisgICAgICAgICAqCisgICAgICAgICAqIFJlcXVpcmVzIHZvaWNlIHdpdGggYXZhaWxhYmxlCisgICAgICAgICAqIHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnQuUGFyYW1zI1RSQUNLX1NVQlVUVEVSQU5DRV9QUk9HUkVTU30gcGFyYW1ldGVyLCBhbmQKKyAgICAgICAgICogcmVxdWVzdCB3aXRoIHRoaXMgcGFyYW1ldGVyIGVuYWJsZWQuCisgICAgICAgICAqCisgICAgICAgICAqIEBwYXJhbSB1dHRlcmFuY2VJZAorICAgICAgICAgKiAgICAgICAgICAgIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHN5bnRoZXNpemVkIHV0dGVyYW5jZS4KKyAgICAgICAgICogQHBhcmFtIGNoYXJJbmRleAorICAgICAgICAgKiAgICAgICAgICAgIFN0cmluZyBpbmRleCAoamF2YSBjaGFyIG9mZnNldCkgb2YgcmVjZW50bHkgc3ludGhlc2l6ZWQgY2hhcmFjdGVyLgorICAgICAgICAgKiBAcGFyYW0gbXNGcm9tU3RhcnQKKyAgICAgICAgICogICAgICAgICAgICBNaWxpc2Vjb25kcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUgc3ludGhlc2lzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgb25TeW50aGVzaXNQcm9ncmVzcyhVdHRlcmFuY2VJZCB1dHRlcmFuY2VJZCwgaW50IGNoYXJJbmRleCwgaW50IG1zRnJvbVN0YXJ0KSB7fQorICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVyZmFjZSBkZWZpbml0aW9uIG9mIGNhbGxiYWNrcyB0aGF0IGFyZSBjYWxsZWQgd2hlbiB0aGUgY2xpZW50IGlzCisgICAgICogY29ubmVjdGVkIG9yIGRpc2Nvbm5lY3RlZCBmcm9tIHRoZSBUVFMgc2VydmljZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBDb25uZWN0aW9uQ2FsbGJhY2tzIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFmdGVyIGNhbGxpbmcge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudCNjb25uZWN0KCl9LCB0aGlzIG1ldGhvZCB3aWxsIGJlIGludm9rZWQKKyAgICAgICAgICogYXN5bmNocm9ub3VzbHkgd2hlbiB0aGUgY29ubmVjdCByZXF1ZXN0IGhhcyBzdWNjZXNzZnVsbHkgY29tcGxldGVkLgorICAgICAgICAgKgorICAgICAgICAgKiBDbGllbnRzIGFyZSBzdHJvbmdseSBlbmNvdXJhZ2VkIHRvIGNhbGwge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudCNnZXRFbmdpbmVTdGF0dXMoKX0KKyAgICAgICAgICogYW5kIGNyZWF0ZSB7QGxpbmsgUmVxdWVzdENvbmZpZ30gb2JqZWN0cyB1c2VkIGluIHN1YnNlcXVlbnQgc3ludGhlc2lzIHJlcXVlc3RzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgb25Db25uZWN0aW9uU3VjY2VzcygpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZnRlciBjYWxsaW5nIHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnQjY29ubmVjdCgpfSwgdGhpcyBtZXRob2QgbWF5IGJlIGludm9rZWQKKyAgICAgICAgICogYXN5bmNocm9ub3VzbHkgd2hlbiB0aGUgY29ubmVjdCByZXF1ZXN0IGhhcyBmYWlsZWQgdG8gY29tcGxldGUuCisgICAgICAgICAqCisgICAgICAgICAqIEl0IG1heSBiZSBhbHNvIGludm9rZWQgc3luY2hyb25vdXNseSwgZnJvbSB0aGUgYm9keSBvZgorICAgICAgICAgKiB7QGxpbmsgVGV4dFRvU3BlZWNoQ2xpZW50I2Nvbm5lY3QoKX0gbWV0aG9kLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgb25Db25uZWN0aW9uRmFpbHVyZSgpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDYWxsZWQgd2hlbiB0aGUgY29ubmVjdGlvbiB0byB0aGUgc2VydmljZSBpcyBsb3N0LiBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlcmUgaXMgYSBwcm9ibGVtCisgICAgICAgICAqIHdpdGggdGhlIHNwZWVjaCBzZXJ2aWNlIChlLmcuIGEgY3Jhc2ggb3IgcmVzb3VyY2UgcHJvYmxlbSBjYXVzZXMgaXQgdG8gYmUga2lsbGVkIGJ5IHRoZQorICAgICAgICAgKiBzeXN0ZW0pLiBXaGVuIGNhbGxlZCwgYWxsIHJlcXVlc3RzIGhhdmUgYmVlbiBjYW5jZWxlZCBhbmQgbm8gb3V0c3RhbmRpbmcgbGlzdGVuZXJzIHdpbGwKKyAgICAgICAgICogYmUgZXhlY3V0ZWQuIEFwcGxpY2F0aW9ucyBzaG91bGQgZGlzYWJsZSBVSSBjb21wb25lbnRzIHRoYXQgcmVxdWlyZSB0aGUgc2VydmljZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIG9uU2VydmljZURpc2Nvbm5lY3RlZCgpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZnRlciByZWNlaXZpbmcge0BsaW5rICNvbkNvbm5lY3Rpb25TdWNjZXNzKCl9IGNhbGxiYWNrLCB0aGlzIG1ldGhvZCBtYXkgYmUgaW52b2tlZAorICAgICAgICAgKiBpZiBlbmdpbmUgc3RhdHVzIG9idGFpbmVkIGZyb20ge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudCNnZXRFbmdpbmVTdGF0dXMoKX0pIGNoYW5nZXMuCisgICAgICAgICAqIEl0IHVzdWFsbHkgbWVhbnMgdGhhdCBzb21lIHZvaWNlcyB3ZXJlIHJlbW92ZWQsIGNoYW5nZWQgb3IgYWRkZWQuCisgICAgICAgICAqCisgICAgICAgICAqIENsaWVudHMgYXJlIHJlcXVpcmVkIHRvIHJlY3JlYXRlIHtAbGluayBSZXF1ZXN0Q29uZmlnfSBvYmplY3RzIHVzZWQgaW4gc3Vic2VxdWVudAorICAgICAgICAgKiBzeW50aGVzaXMgcmVxdWVzdHMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBvbkVuZ2luZVN0YXR1c0NoYW5nZShFbmdpbmVTdGF0dXMgbmV3RW5naW5lU3RhdHVzKTsKKyAgICB9CisKKyAgICAvKiogU3RhdGUgb2Ygdm9pY2VzIGFzIHByb3ZpZGVkIGJ5IGVuZ2luZSBhbmQgdXNlci4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIEVuZ2luZVN0YXR1cyB7CisgICAgICAgIC8qKiBBbGwgYXZhaWxhYmxlIHZvaWNlcy4gKi8KKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBMaXN0PFZvaWNlSW5mbz4gbVZvaWNlczsKKworICAgICAgICAvKiogTmFtZSBvZiB0aGUgVFRTIGVuZ2luZSBwYWNrYWdlICovCisgICAgICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG1QYWNrYWdlTmFtZTsKKworICAgICAgICBwcml2YXRlIEVuZ2luZVN0YXR1cyhTdHJpbmcgcGFja2FnZU5hbWUsIExpc3Q8Vm9pY2VJbmZvPiB2b2ljZXMpIHsKKyAgICAgICAgICAgIHRoaXMubVZvaWNlcyA9ICBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVMaXN0KHZvaWNlcyk7CisgICAgICAgICAgICB0aGlzLm1QYWNrYWdlTmFtZSA9IHBhY2thZ2VOYW1lOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEdldCBhbiBpbW11dGFibGUgbGlzdCBvZiBhbGwgVm9pY2VzIGV4cG9zZWQgYnkgdGhlIFRUUyBlbmdpbmUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgTGlzdDxWb2ljZUluZm8+IGdldFZvaWNlcygpIHsKKyAgICAgICAgICAgIHJldHVybiBtVm9pY2VzOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEdldCBuYW1lIG9mIHRoZSBUVFMgZW5naW5lIHBhY2thZ2UgY3VycmVudGx5IGluIHVzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RW5naW5lUGFja2FnZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBtUGFja2FnZU5hbWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiogVW5pcXVlIHN5bnRoZXNpcyByZXF1ZXN0IGlkZW50aWZpZXIuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBVdHRlcmFuY2VJZCB7CisgICAgICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG1EZXNjcmlwdGlvbjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENyZWF0ZSBuZXcsIHVuaXF1ZSBVdHRlcmFuY2VJZCBpbnN0YW5jZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBVdHRlcmFuY2VJZCgpIHsKKyAgICAgICAgICAgIG1EZXNjcmlwdGlvbiA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ3JlYXRlIG5ldywgdW5pcXVlIFV0dGVyYW5jZUlkIGluc3RhbmNlLgorICAgICAgICAgKgorICAgICAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gQWRkaXRpb25hbCBzdHJpbmcsIHRoYXQgd2lsbCBiZSBhcHBlbmRlZCB0bworICAgICAgICAgKiB7QGxpbmsgI3RvVW5pcXVlU3RyaW5nKCl9IG91dHB1dCwgYWxsb3dpbmcgZWFzaWVyIGlkZW50aWZpY2F0aW9uIG9mIHRoZSB1dHRlcmFuY2UgaW4KKyAgICAgICAgICogY2FsbGJhY2tzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFV0dGVyYW5jZUlkKFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgbURlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyBhIHVuaXF1ZSBzdHJpbmcgYXNzb2NpYXRlZCB3aXRoIGFuIGluc3RhbmNlIG9mIHRoaXMgb2JqZWN0LgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB5b3Ugc3ViY2xhc3Mge0BsaW5rIFV0dGVyYW5jZUlkfSBtYWtlIHN1cmUgdGhhdCBvdXRwdXQgb2YgdGhpcyBtZXRob2QgaXMKKyAgICAgICAgICogY29uc2lzdGVudCBhY3Jvc3MgbXVsdGlwbGUgY2FsbHMgYW5kIHVuaXF1ZSBmb3IgdGhlIGluc3RhbmNlLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIHN0cmluZyB3aWxsIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIHN5bnRoZXNpcyByZXF1ZXN0L3V0dGVyYW5jZSBpbnNpZGUgdGhlCisgICAgICAgICAqIFRUUyBzZXJ2aWNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1VuaXF1ZVN0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBtRGVzY3JpcHRpb24gPT0gbnVsbCA/ICJVdHRlcmFuY2VJZCIgKyBTeXN0ZW0uaWRlbnRpdHlIYXNoQ29kZSh0aGlzKSA6CisgICAgICAgICAgICAgICAgICAgICJVdHRlcmFuY2VJZCIgKyBTeXN0ZW0uaWRlbnRpdHlIYXNoQ29kZSh0aGlzKSArICI6ICIgKyBtRGVzY3JpcHRpb247CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgVGV4dFRvU3BlZWNoIHNlcnZpY2UgY2xpZW50LgorICAgICAqCisgICAgICogV2lsbCBjb25uZWN0IHRvIHRoZSBkZWZhdWx0IFRUUyBzZXJ2aWNlLiBJbiBvcmRlciB0byBiZSB1c2FibGUsIHtAbGluayAjY29ubmVjdCgpfSBuZWVkCisgICAgICogdG8gYmUgY2FsbGVkIGZpcnN0IGFuZCBzdWNjZXNzZnVsIGNvbm5lY3Rpb24gY2FsbGJhY2sgbmVlZCB0byBiZSByZWNlaXZlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb250ZXh0CisgICAgICogICAgICAgICAgICBUaGUgY29udGV4dCB0aGlzIGluc3RhbmNlIGlzIHJ1bm5pbmcgaW4uCisgICAgICogQHBhcmFtIGVuZ2luZQorICAgICAqICAgICAgICAgICAgUGFja2FnZSBuYW1lIG9mIHJlcXVlc3RlZCBUVFMgZW5naW5lLiBJZiBpdCdzIG51bGwsIHRoZW4gZGVmYXVsdCBlbmdpbmUgd2lsbAorICAgICAqICAgICAgICAgICAgYmUgc2VsZWN0ZWQgcmVnYXJkbGVzcyBvZiB7QGNvZGUgZmFsbGJhY2tUb0RlZmF1bHRFbmdpbmV9IHBhcmFtZXRlciB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gZmFsbGJhY2tUb0RlZmF1bHRFbmdpbmUKKyAgICAgKiAgICAgICAgICAgIElmIHJlcXVlc3RlZCBlbmdpbmUgaXMgbm90IGF2YWlsYWJsZSwgc2hvdWxkIHdlIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IGVuZ2luZT8KKyAgICAgKiBAcGFyYW0gZGVmYXVsdFJlcXVlc3RDYWxsYmFja3MKKyAgICAgKiAgICAgICAgICAgIERlZmF1bHQgcmVxdWVzdCBjYWxsYmFja3MsIGl0IHdpbGwgYmUgdXNlZCBmb3IgYWxsIHN5bnRoZXNpcyByZXF1ZXN0cyB3aXRob3V0CisgICAgICogICAgICAgICAgICBzdXBwbGllZCBSZXF1ZXN0Q2FsbGJhY2tzIGluc3RhbmNlLiBDYW4ndCBiZSBudWxsLgorICAgICAqIEBwYXJhbSBjb25uZWN0aW9uQ2FsbGJhY2tzCisgICAgICogICAgICAgICAgICBDYWxsYmFja3MgZm9yIGNvbm5lY3RpbmcgYW5kIGRpc2Nvbm5lY3RpbmcgZnJvbSB0aGUgc2VydmljZS4gQ2FuJ3QgYmUgbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGV4dFRvU3BlZWNoQ2xpZW50KENvbnRleHQgY29udGV4dCwKKyAgICAgICAgICAgIFN0cmluZyBlbmdpbmUsIGJvb2xlYW4gZmFsbGJhY2tUb0RlZmF1bHRFbmdpbmUsCisgICAgICAgICAgICBSZXF1ZXN0Q2FsbGJhY2tzIGRlZmF1bHRSZXF1ZXN0Q2FsbGJhY2tzLAorICAgICAgICAgICAgQ29ubmVjdGlvbkNhbGxiYWNrcyBjb25uZWN0aW9uQ2FsbGJhY2tzKSB7CisgICAgICAgIGlmIChjb250ZXh0ID09IG51bGwpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjb250ZXh0IGNhbid0IGJlIG51bGwiKTsKKyAgICAgICAgaWYgKGRlZmF1bHRSZXF1ZXN0Q2FsbGJhY2tzID09IG51bGwpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJkZWZhdWx0UmVxdWVzdENhbGxiYWNrcyBjYW4ndCBiZSBudWxsIik7CisgICAgICAgIGlmIChjb25uZWN0aW9uQ2FsbGJhY2tzID09IG51bGwpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjb25uZWN0aW9uQ2FsbGJhY2tzIGNhbid0IGJlIG51bGwiKTsKKyAgICAgICAgbUNvbnRleHQgPSBjb250ZXh0OworICAgICAgICBtRW5naW5lc0hlbHBlciA9IG5ldyBUdHNFbmdpbmVzKG1Db250ZXh0KTsKKyAgICAgICAgbUNhbGxiYWNrcyA9IG5ldyBIYXNoTWFwPFN0cmluZywgUGFpcjxVdHRlcmFuY2VJZCwgUmVxdWVzdENhbGxiYWNrcz4+KCk7CisgICAgICAgIG1EZWZhdWx0UmVxdWVzdENhbGxiYWNrcyA9IGRlZmF1bHRSZXF1ZXN0Q2FsbGJhY2tzOworICAgICAgICBtQ29ubmVjdGlvbkNhbGxiYWNrcyA9IGNvbm5lY3Rpb25DYWxsYmFja3M7CisKKyAgICAgICAgbVJlcXVlc3RlZEVuZ2luZSA9IGVuZ2luZTsKKyAgICAgICAgbUZhbGxiYWNrVG9EZWZhdWx0ID0gZmFsbGJhY2tUb0RlZmF1bHRFbmdpbmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIFRleHRUb1NwZWVjaCBzZXJ2aWNlIGNsaWVudC4gV2lsbCBjb25uZWN0IHRvIHRoZSBkZWZhdWx0IFRUUworICAgICAqIHNlcnZpY2UuIEluIG9yZGVyIHRvIGJlIHVzYWJsZSwge0BsaW5rICNjb25uZWN0KCl9IG5lZWQgdG8gYmUgY2FsbGVkCisgICAgICogZmlyc3QgYW5kIHN1Y2Nlc3NmdWwgY29ubmVjdGlvbiBjYWxsYmFjayBuZWVkIHRvIGJlIHJlY2VpdmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCB0aGlzIGluc3RhbmNlIGlzIHJ1bm5pbmcgaW4uCisgICAgICogQHBhcmFtIGRlZmF1bHRSZXF1ZXN0Q2FsbGJhY2tzIERlZmF1bHQgcmVxdWVzdCBjYWxsYmFja3MsIGl0CisgICAgICogICAgICAgICAgICB3aWxsIGJlIHVzZWQgZm9yIGFsbCBzeW50aGVzaXMgcmVxdWVzdHMgd2l0aG91dCBzdXBwbGllZAorICAgICAqICAgICAgICAgICAgUmVxdWVzdENhbGxiYWNrcyBpbnN0YW5jZS4gQ2FuJ3QgYmUgbnVsbC4KKyAgICAgKiBAcGFyYW0gY29ubmVjdGlvbkNhbGxiYWNrcyBDYWxsYmFja3MgZm9yIGNvbm5lY3RpbmcgYW5kIGRpc2Nvbm5lY3RpbmcKKyAgICAgKiAgICAgICAgICAgIGZyb20gdGhlIHNlcnZpY2UuIENhbid0IGJlIG51bGwuCisgICAgICovCisgICAgcHVibGljIFRleHRUb1NwZWVjaENsaWVudChDb250ZXh0IGNvbnRleHQsIFJlcXVlc3RDYWxsYmFja3MgZGVmYXVsdFJlcXVlc3RDYWxsYmFja3MsCisgICAgICAgICAgICBDb25uZWN0aW9uQ2FsbGJhY2tzIGNvbm5lY3Rpb25DYWxsYmFja3MpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBudWxsLCB0cnVlLCBkZWZhdWx0UmVxdWVzdENhbGxiYWNrcywgY29ubmVjdGlvbkNhbGxiYWNrcyk7CisgICAgfQorCisKKyAgICBwcml2YXRlIGJvb2xlYW4gaW5pdFR0cyhTdHJpbmcgcmVxdWVzdGVkRW5naW5lLCBib29sZWFuIGZhbGxiYWNrVG9EZWZhdWx0RW5naW5lKSB7CisgICAgICAgIC8vIFN0ZXAgMTogVHJ5IGNvbm5lY3RpbmcgdG8gdGhlIGVuZ2luZSB0aGF0IHdhcyByZXF1ZXN0ZWQuCisgICAgICAgIGlmIChyZXF1ZXN0ZWRFbmdpbmUgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKG1FbmdpbmVzSGVscGVyLmlzRW5naW5lSW5zdGFsbGVkKHJlcXVlc3RlZEVuZ2luZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoKG1TZXJ2aWNlQ29ubmVjdGlvbiA9IGNvbm5lY3RUb0VuZ2luZShyZXF1ZXN0ZWRFbmdpbmUpKSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWZhbGxiYWNrVG9EZWZhdWx0RW5naW5lKSB7CisgICAgICAgICAgICAgICAgICAgIExvZy53KFRBRywgIkNvdWxkbid0IGNvbm5lY3QgdG8gcmVxdWVzdGVkIGVuZ2luZTogIiArIHJlcXVlc3RlZEVuZ2luZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFmYWxsYmFja1RvRGVmYXVsdEVuZ2luZSkgeworICAgICAgICAgICAgICAgIExvZy53KFRBRywgIlJlcXVlc3RlZCBlbmdpbmUgbm90IGluc3RhbGxlZDogIiArIHJlcXVlc3RlZEVuZ2luZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gU3RlcCAyOiBUcnkgY29ubmVjdGluZyB0byB0aGUgdXNlcidzIGRlZmF1bHQgZW5naW5lLgorICAgICAgICBmaW5hbCBTdHJpbmcgZGVmYXVsdEVuZ2luZSA9IG1FbmdpbmVzSGVscGVyLmdldERlZmF1bHRFbmdpbmUoKTsKKyAgICAgICAgaWYgKGRlZmF1bHRFbmdpbmUgIT0gbnVsbCAmJiAhZGVmYXVsdEVuZ2luZS5lcXVhbHMocmVxdWVzdGVkRW5naW5lKSkgeworICAgICAgICAgICAgaWYgKChtU2VydmljZUNvbm5lY3Rpb24gPSBjb25uZWN0VG9FbmdpbmUoZGVmYXVsdEVuZ2luZSkpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFN0ZXAgMzogVHJ5IGNvbm5lY3RpbmcgdG8gdGhlIGhpZ2hlc3QgcmFua2VkIGVuZ2luZSBpbiB0aGUKKyAgICAgICAgLy8gc3lzdGVtLgorICAgICAgICBmaW5hbCBTdHJpbmcgaGlnaGVzdFJhbmtlZCA9IG1FbmdpbmVzSGVscGVyLmdldEhpZ2hlc3RSYW5rZWRFbmdpbmVOYW1lKCk7CisgICAgICAgIGlmIChoaWdoZXN0UmFua2VkICE9IG51bGwgJiYgIWhpZ2hlc3RSYW5rZWQuZXF1YWxzKHJlcXVlc3RlZEVuZ2luZSkgJiYKKyAgICAgICAgICAgICAgICAhaGlnaGVzdFJhbmtlZC5lcXVhbHMoZGVmYXVsdEVuZ2luZSkpIHsKKyAgICAgICAgICAgIGlmICgobVNlcnZpY2VDb25uZWN0aW9uID0gY29ubmVjdFRvRW5naW5lKGhpZ2hlc3RSYW5rZWQpKSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBMb2cudyhUQUcsICJDb3VsZG4ndCBmaW5kIHdvcmtpbmcgVFRTIGVuZ2luZSIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBDb25uZWN0aW9uIGNvbm5lY3RUb0VuZ2luZShTdHJpbmcgZW5naW5lKSB7CisgICAgICAgIENvbm5lY3Rpb24gY29ubmVjdGlvbiA9IG5ldyBDb25uZWN0aW9uKGVuZ2luZSk7CisgICAgICAgIEludGVudCBpbnRlbnQgPSBuZXcgSW50ZW50KFRleHRUb1NwZWVjaC5FbmdpbmUuSU5URU5UX0FDVElPTl9UVFNfU0VSVklDRSk7CisgICAgICAgIGludGVudC5zZXRQYWNrYWdlKGVuZ2luZSk7CisgICAgICAgIGJvb2xlYW4gYm91bmQgPSBtQ29udGV4dC5iaW5kU2VydmljZShpbnRlbnQsIGNvbm5lY3Rpb24sIENvbnRleHQuQklORF9BVVRPX0NSRUFURSk7CisgICAgICAgIGlmICghYm91bmQpIHsKKyAgICAgICAgICAgIExvZy5lKFRBRywgIkZhaWxlZCB0byBiaW5kIHRvICIgKyBlbmdpbmUpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBMb2cuaShUQUcsICJTdWNjZXNzZnVsbHkgYm91bmQgdG8gIiArIGVuZ2luZSk7CisgICAgICAgICAgICByZXR1cm4gY29ubmVjdGlvbjsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogQ29ubmVjdHMgdGhlIGNsaWVudCB0byBUVFMgc2VydmljZS4gVGhpcyBtZXRob2QgcmV0dXJucyBpbW1lZGlhdGVseSwgYW5kIGNvbm5lY3RzIHRvIHRoZQorICAgICAqIHNlcnZpY2UgaW4gdGhlIGJhY2tncm91bmQuCisgICAgICoKKyAgICAgKiBBZnRlciBjb25uZWN0aW9uIGluaXRpYWxpemVzIHN1Y2Nlc3NmdWxseSwge0BsaW5rIENvbm5lY3Rpb25DYWxsYmFja3Mjb25Db25uZWN0aW9uU3VjY2VzcygpfQorICAgICAqIGlzIGNhbGxlZC4gT24gYSBmYWlsdXJlIHtAbGluayBDb25uZWN0aW9uQ2FsbGJhY2tzI29uQ29ubmVjdGlvbkZhaWx1cmV9IGlzIGNhbGxlZC4KKyAgICAgKgorICAgICAqIEJvdGggb2YgdGhvc2UgY2FsbGJhY2sgbWF5IGJlIGNhbGxlZCBhc3luY2hyb25vdXNseSBvbiB0aGUgbWFpbiB0aHJlYWQsCisgICAgICoge0BsaW5rIENvbm5lY3Rpb25DYWxsYmFja3Mjb25Db25uZWN0aW9uRmFpbHVyZX0gbWF5IGJlIGNhbGxlZCBzeW5jaHJvbm91c2x5LCBiZWZvcmUKKyAgICAgKiB0aGlzIG1ldGhvZCByZXR1cm5zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbm5lY3QoKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAobUxvY2spIHsKKyAgICAgICAgICAgIGlmIChtU2VydmljZUNvbm5lY3Rpb24gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKCFpbml0VHRzKG1SZXF1ZXN0ZWRFbmdpbmUsIG1GYWxsYmFja1RvRGVmYXVsdCkpIHsKKyAgICAgICAgICAgICAgICBtQ29ubmVjdGlvbkNhbGxiYWNrcy5vbkNvbm5lY3Rpb25GYWlsdXJlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGNsaWVudCBpcyBjdXJyZW50bHkgY29ubmVjdGVkIHRvIHRoZSBzZXJ2aWNlLCBzbyB0aGF0CisgICAgICogcmVxdWVzdHMgdG8gb3RoZXIgbWV0aG9kcyB3aWxsIHN1Y2NlZWQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNDb25uZWN0ZWQoKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAobUxvY2spIHsKKyAgICAgICAgICAgIHJldHVybiBtU2VydmljZUNvbm5lY3Rpb24gIT0gbnVsbCAmJiBtU2VydmljZUNvbm5lY3Rpb24uaXNFc3RhYmxpc2hlZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xvc2VzIHRoZSBjb25uZWN0aW9uIHRvIFRleHRUb1NwZWVjaCBzZXJ2aWNlLiBObyBjYWxscyBjYW4gYmUgbWFkZSBvbiB0aGlzIG9iamVjdCBhZnRlcgorICAgICAqIGNhbGxpbmcgdGhpcyBtZXRob2QuCisgICAgICogSXQgaXMgZ29vZCBwcmFjdGljZSB0byBjYWxsIHRoaXMgbWV0aG9kIGluIHRoZSBvbkRlc3Ryb3koKSBtZXRob2Qgb2YgYW4gQWN0aXZpdHkKKyAgICAgKiBzbyB0aGUgVGV4dFRvU3BlZWNoIGVuZ2luZSBjYW4gYmUgY2xlYW5seSBzdG9wcGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRpc2Nvbm5lY3QoKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAobUxvY2spIHsKKyAgICAgICAgICAgIGlmIChtU2VydmljZUNvbm5lY3Rpb24gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1TZXJ2aWNlQ29ubmVjdGlvbi5kaXNjb25uZWN0KCk7CisgICAgICAgICAgICAgICAgbVNlcnZpY2VDb25uZWN0aW9uID0gbnVsbDsKKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2tzLmNsZWFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBjYWxsYmFjay4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1dHRlcmFuY2VJZCBOb24tbnVsbCBVdHRlcmFuY2VJZCBpbnN0YW5jZS4KKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgTm9uLW51bGwgY2FsbGJhY2tzIGZvciB0aGUgcmVxdWVzdAorICAgICAqIEByZXR1cm4gU3RhdHVzLlNVQ0NFU1Mgb3IgZXJyb3IgY29kZSBpbiBjYXNlIG9mIGludmFsaWQgYXJndW1lbnRzLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGFkZENhbGxiYWNrKFV0dGVyYW5jZUlkIHV0dGVyYW5jZUlkLCBSZXF1ZXN0Q2FsbGJhY2tzIGNhbGxiYWNrKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAobUxvY2spIHsKKyAgICAgICAgICAgIGlmICh1dHRlcmFuY2VJZCA9PSBudWxsIHx8IGNhbGxiYWNrID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzLkVSUk9SX0lOVkFMSURfUkVRVUVTVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtQ2FsbGJhY2tzLnB1dCh1dHRlcmFuY2VJZC50b1VuaXF1ZVN0cmluZygpLAorICAgICAgICAgICAgICAgICAgICBuZXcgUGFpcjxVdHRlcmFuY2VJZCwgUmVxdWVzdENhbGxiYWNrcz4odXR0ZXJhbmNlSWQsIGNhbGxiYWNrKSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXMuRVJST1JfTk9OX1VOSVFVRV9VVFRFUkFOQ0VfSUQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzLlNVQ0NFU1M7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYW5kIHJldHVybiBjYWxsYmFjay4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1dHRlcmFuY2VJZFN0ciBVbmlxdWUgc3RyaW5nIG9idGFpbmVkIGZyb20ge0BsaW5rIFV0dGVyYW5jZUlkI3RvVW5pcXVlU3RyaW5nfS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFBhaXI8VXR0ZXJhbmNlSWQsIFJlcXVlc3RDYWxsYmFja3M+IHJlbW92ZUNhbGxiYWNrKFN0cmluZyB1dHRlcmFuY2VJZFN0cikgeworICAgICAgICBzeW5jaHJvbml6ZWQgKG1Mb2NrKSB7CisgICAgICAgICAgICByZXR1cm4gbUNhbGxiYWNrcy5yZW1vdmUodXR0ZXJhbmNlSWRTdHIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGNhbGxiYWNrIGFuZCB1dHRlcmFuY2UgaWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdXR0ZXJhbmNlSWRTdHIgVW5pcXVlIHN0cmluZyBvYnRhaW5lZCBmcm9tIHtAbGluayBVdHRlcmFuY2VJZCN0b1VuaXF1ZVN0cmluZ30uCisgICAgICovCisgICAgcHJpdmF0ZSBQYWlyPFV0dGVyYW5jZUlkLCBSZXF1ZXN0Q2FsbGJhY2tzPiBnZXRDYWxsYmFjayhTdHJpbmcgdXR0ZXJhbmNlSWRTdHIpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChtTG9jaykgeworICAgICAgICAgICAgcmV0dXJuIG1DYWxsYmFja3MuZ2V0KHV0dGVyYW5jZUlkU3RyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBjYWxsYmFjayBhbmQgY2FsbCB7QGxpbmsgUmVxdWVzdENhbGxiYWNrcyNvblN5bnRoZXNpc0ZhaWx1cmV9IHdpdGggcGFzc2VkCisgICAgICogZXJyb3IgY29kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1dHRlcmFuY2VJZFN0ciBVbmlxdWUgc3RyaW5nIG9idGFpbmVkIGZyb20ge0BsaW5rIFV0dGVyYW5jZUlkI3RvVW5pcXVlU3RyaW5nfS4KKyAgICAgKiBAcGFyYW0gZXJyb3JDb2RlIGFyZ3VtZW50IHRvIHtAbGluayBSZXF1ZXN0Q2FsbGJhY2tzI29uU3ludGhlc2lzRmFpbHVyZX0gY2FsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVtb3ZlQ2FsbGJhY2tBbmRFcnIoU3RyaW5nIHV0dGVyYW5jZUlkU3RyLCBpbnQgZXJyb3JDb2RlKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAobUxvY2spIHsKKyAgICAgICAgICAgIFBhaXI8VXR0ZXJhbmNlSWQsIFJlcXVlc3RDYWxsYmFja3M+IGMgPSBtQ2FsbGJhY2tzLnJlbW92ZSh1dHRlcmFuY2VJZFN0cik7CisgICAgICAgICAgICBjLnNlY29uZC5vblN5bnRoZXNpc0ZhaWx1cmUoYy5maXJzdCwgZXJyb3JDb2RlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIFRUUyBlbmdpbmUgc3RhdHVzIHtAbGluayBFbmdpbmVTdGF0dXN9LiBSZXF1aXJlcyBjb25uZWN0ZWQgY2xpZW50LgorICAgICAqLworICAgIHB1YmxpYyBFbmdpbmVTdGF0dXMgZ2V0RW5naW5lU3RhdHVzKCkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKG1Mb2NrKSB7CisgICAgICAgICAgICByZXR1cm4gbUVuZ2luZVN0YXR1czsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFF1ZXJ5IFRUUyBlbmdpbmUgYWJvdXQgYXZhaWxhYmxlIHZvaWNlcyBhbmQgZGVmYXVsdHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIEVuZ2luZVN0YXR1cyBpcyBjb25uZWN0ZWQgb3IgbnVsbCBpZiBjbGllbnQgaXMgZGlzY29ubmVjdGVkLgorICAgICAqLworICAgIHByaXZhdGUgRW5naW5lU3RhdHVzIHJlcXVlc3RFbmdpbmVTdGF0dXMoSVRleHRUb1NwZWVjaFNlcnZpY2Ugc2VydmljZSkKKyAgICAgICAgICAgIHRocm93cyBSZW1vdGVFeGNlcHRpb24geworICAgICAgICBMaXN0PFZvaWNlSW5mbz4gdm9pY2VzID0gc2VydmljZS5nZXRWb2ljZXNJbmZvKCk7CisgICAgICAgIGlmICh2b2ljZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgTG9nLmUoVEFHLCAiUmVxdWVzdGVkIGVuZ2luZSBkb2Vzbid0IHN1cHBvcnQgVFRTIFYyIEFQSSIpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEVuZ2luZVN0YXR1cyhtU2VydmljZUNvbm5lY3Rpb24uZ2V0RW5naW5lTmFtZSgpLCB2b2ljZXMpOworICAgIH0KKworICAgIHByaXZhdGUgY2xhc3MgQ29ubmVjdGlvbiBpbXBsZW1lbnRzIFNlcnZpY2VDb25uZWN0aW9uIHsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgbUVuZ2luZU5hbWU7CisKKyAgICAgICAgcHJpdmF0ZSBJVGV4dFRvU3BlZWNoU2VydmljZSBtU2VydmljZTsKKworICAgICAgICBwcml2YXRlIGJvb2xlYW4gbUVzdGFibGlzaGVkOworCisgICAgICAgIHByaXZhdGUgUHJlcGFyZUNvbm5lY3Rpb25Bc3luY1Rhc2sgbVNldHVwQ29ubmVjdGlvbkFzeW5jVGFzazsKKworICAgICAgICBwdWJsaWMgQ29ubmVjdGlvbihTdHJpbmcgZW5naW5lTmFtZSkgeworICAgICAgICAgICAgdGhpcy5tRW5naW5lTmFtZSA9IGVuZ2luZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGZpbmFsIElUZXh0VG9TcGVlY2hDYWxsYmFjay5TdHViIG1DYWxsYmFjayA9IG5ldyBJVGV4dFRvU3BlZWNoQ2FsbGJhY2suU3R1YigpIHsKKworICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBvblN0YXJ0KFN0cmluZyB1dHRlcmFuY2VJZFN0cikgeworICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAobUxvY2spIHsKKyAgICAgICAgICAgICAgICAgICAgUGFpcjxVdHRlcmFuY2VJZCwgUmVxdWVzdENhbGxiYWNrcz4gY2FsbGJhY2tzID0gZ2V0Q2FsbGJhY2sodXR0ZXJhbmNlSWRTdHIpOworICAgICAgICAgICAgICAgICAgICBjYWxsYmFja3Muc2Vjb25kLm9uU3ludGhlc2lzU3RhcnQoY2FsbGJhY2tzLmZpcnN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uU3RvcChTdHJpbmcgdXR0ZXJhbmNlSWRTdHIpIHsKKyAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1Mb2NrKSB7CisgICAgICAgICAgICAgICAgICAgIFBhaXI8VXR0ZXJhbmNlSWQsIFJlcXVlc3RDYWxsYmFja3M+IGNhbGxiYWNrcyA9IHJlbW92ZUNhbGxiYWNrKHV0dGVyYW5jZUlkU3RyKTsKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tzLnNlY29uZC5vblN5bnRoZXNpc1N0b3AoY2FsbGJhY2tzLmZpcnN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEBPdmVycmlkZQorICAgICAgICAgICAgcHVibGljIHZvaWQgb25TdWNjZXNzKFN0cmluZyB1dHRlcmFuY2VJZFN0cikgeworICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAobUxvY2spIHsKKyAgICAgICAgICAgICAgICAgICAgUGFpcjxVdHRlcmFuY2VJZCwgUmVxdWVzdENhbGxiYWNrcz4gY2FsbGJhY2tzID0gcmVtb3ZlQ2FsbGJhY2sodXR0ZXJhbmNlSWRTdHIpOworICAgICAgICAgICAgICAgICAgICBjYWxsYmFja3Muc2Vjb25kLm9uU3ludGhlc2lzU3VjY2VzcyhjYWxsYmFja3MuZmlyc3QpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIHZvaWQgb25GYWxsYmFjayhTdHJpbmcgdXR0ZXJhbmNlSWRTdHIpIHsKKyAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1Mb2NrKSB7CisgICAgICAgICAgICAgICAgICAgIFBhaXI8VXR0ZXJhbmNlSWQsIFJlcXVlc3RDYWxsYmFja3M+IGNhbGxiYWNrcyA9IGdldENhbGxiYWNrKHV0dGVyYW5jZUlkU3RyKTsKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tzLnNlY29uZC5vblN5bnRoZXNpc0ZhbGxiYWNrKGNhbGxiYWNrcy5maXJzdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBvbkVycm9yKFN0cmluZyB1dHRlcmFuY2VJZFN0ciwgaW50IGVycm9yQ29kZSkgeworICAgICAgICAgICAgICAgIHJlbW92ZUNhbGxiYWNrQW5kRXJyKHV0dGVyYW5jZUlkU3RyLCBlcnJvckNvZGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uVm9pY2VzSW5mb0NoYW5nZShMaXN0PFZvaWNlSW5mbz4gdm9pY2VzSW5mbykgeworICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAobUxvY2spIHsKKyAgICAgICAgICAgICAgICAgICAgbUVuZ2luZVN0YXR1cyA9IG5ldyBFbmdpbmVTdGF0dXMobVNlcnZpY2VDb25uZWN0aW9uLmdldEVuZ2luZU5hbWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2ljZXNJbmZvKTsKKyAgICAgICAgICAgICAgICAgICAgbUNvbm5lY3Rpb25DYWxsYmFja3Mub25FbmdpbmVTdGF0dXNDaGFuZ2UobUVuZ2luZVN0YXR1cyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHByaXZhdGUgY2xhc3MgUHJlcGFyZUNvbm5lY3Rpb25Bc3luY1Rhc2sgZXh0ZW5kcyBBc3luY1Rhc2s8Vm9pZCwgVm9pZCwgRW5naW5lU3RhdHVzPiB7CisKKyAgICAgICAgICAgIHByaXZhdGUgZmluYWwgQ29tcG9uZW50TmFtZSBtTmFtZTsKKworICAgICAgICAgICAgcHVibGljIFByZXBhcmVDb25uZWN0aW9uQXN5bmNUYXNrKENvbXBvbmVudE5hbWUgbmFtZSkgeworICAgICAgICAgICAgICAgIG1OYW1lID0gbmFtZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICBwcm90ZWN0ZWQgRW5naW5lU3RhdHVzIGRvSW5CYWNrZ3JvdW5kKFZvaWQuLi4gcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgc3luY2hyb25pemVkKG1Mb2NrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0NhbmNlbGxlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgbVNlcnZpY2Uuc2V0Q2FsbGJhY2soZ2V0Q2FsbGVySWRlbnRpdHkoKSwgbUNhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0RW5naW5lU3RhdHVzKG1TZXJ2aWNlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoUmVtb3RlRXhjZXB0aW9uIHJlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJFcnJvciBzZXR0aW5nIHVwIHRoZSBUVFMgc2VydmljZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEBPdmVycmlkZQorICAgICAgICAgICAgcHJvdGVjdGVkIHZvaWQgb25Qb3N0RXhlY3V0ZShFbmdpbmVTdGF0dXMgcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgc3luY2hyb25pemVkKG1Mb2NrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtU2V0dXBDb25uZWN0aW9uQXN5bmNUYXNrID09IHRoaXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1TZXR1cENvbm5lY3Rpb25Bc3luY1Rhc2sgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiU2V0dXAgdGFzayBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpc2Nvbm5lY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1Db25uZWN0aW9uQ2FsbGJhY2tzLm9uQ29ubmVjdGlvbkZhaWx1cmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIG1FbmdpbmVTdGF0dXMgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIG1Fc3RhYmxpc2hlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1Db25uZWN0aW9uQ2FsbGJhY2tzLm9uQ29ubmVjdGlvblN1Y2Nlc3MoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBvblNlcnZpY2VDb25uZWN0ZWQoQ29tcG9uZW50TmFtZSBuYW1lLCBJQmluZGVyIHNlcnZpY2UpIHsKKyAgICAgICAgICAgIExvZy5pKFRBRywgIkNvbm5lY3RlZCB0byAiICsgbmFtZSk7CisKKyAgICAgICAgICAgIHN5bmNocm9uaXplZChtTG9jaykgeworICAgICAgICAgICAgICAgIG1Fc3RhYmxpc2hlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIG1TZXJ2aWNlID0gSVRleHRUb1NwZWVjaFNlcnZpY2UuU3R1Yi5hc0ludGVyZmFjZShzZXJ2aWNlKTsKKyAgICAgICAgICAgICAgICBzdGFydFNldHVwQ29ubmVjdGlvblRhc2sobmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgb25TZXJ2aWNlRGlzY29ubmVjdGVkKENvbXBvbmVudE5hbWUgbmFtZSkgeworICAgICAgICAgICAgTG9nLmkoVEFHLCAiQXNrZWQgdG8gZGlzY29ubmVjdCBmcm9tICIgKyBuYW1lKTsKKworICAgICAgICAgICAgc3luY2hyb25pemVkKG1Mb2NrKSB7CisgICAgICAgICAgICAgICAgc3RvcFNldHVwQ29ubmVjdGlvblRhc2soKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1Db25uZWN0aW9uQ2FsbGJhY2tzLm9uU2VydmljZURpc2Nvbm5lY3RlZCgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHN0YXJ0U2V0dXBDb25uZWN0aW9uVGFzayhDb21wb25lbnROYW1lIG5hbWUpIHsKKyAgICAgICAgICAgIHN0b3BTZXR1cENvbm5lY3Rpb25UYXNrKCk7CisgICAgICAgICAgICBtU2V0dXBDb25uZWN0aW9uQXN5bmNUYXNrID0gbmV3IFByZXBhcmVDb25uZWN0aW9uQXN5bmNUYXNrKG5hbWUpOworICAgICAgICAgICAgbVNldHVwQ29ubmVjdGlvbkFzeW5jVGFzay5leGVjdXRlKCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGJvb2xlYW4gc3RvcFNldHVwQ29ubmVjdGlvblRhc2soKSB7CisgICAgICAgICAgICBib29sZWFuIHJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgaWYgKG1TZXR1cENvbm5lY3Rpb25Bc3luY1Rhc2sgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1TZXR1cENvbm5lY3Rpb25Bc3luY1Rhc2suY2FuY2VsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBtU2V0dXBDb25uZWN0aW9uQXN5bmNUYXNrID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICBJQmluZGVyIGdldENhbGxlcklkZW50aXR5KCkgeworICAgICAgICAgICAgcmV0dXJuIG1DYWxsYmFjazsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gaXNFc3RhYmxpc2hlZCgpIHsKKyAgICAgICAgICAgIHJldHVybiBtU2VydmljZSAhPSBudWxsICYmIG1Fc3RhYmxpc2hlZDsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gcnVuQWN0aW9uKEFjdGlvbiBhY3Rpb24pIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAobUxvY2spIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBhY3Rpb24ucnVuKG1TZXJ2aWNlKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgIExvZy5lKFRBRywgYWN0aW9uLmdldE5hbWUoKSArICIgZmFpbGVkIiwgZXgpOworICAgICAgICAgICAgICAgICAgICBkaXNjb25uZWN0KCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRpc2Nvbm5lY3QoKSB7CisgICAgICAgICAgICBtQ29udGV4dC51bmJpbmRTZXJ2aWNlKHRoaXMpOworICAgICAgICAgICAgc3RvcFNldHVwQ29ubmVjdGlvblRhc2soKTsKKyAgICAgICAgICAgIG1TZXJ2aWNlID0gbnVsbDsKKyAgICAgICAgICAgIG1Fc3RhYmxpc2hlZCA9IGZhbHNlOworICAgICAgICAgICAgaWYgKG1TZXJ2aWNlQ29ubmVjdGlvbiA9PSB0aGlzKSB7CisgICAgICAgICAgICAgICAgbVNlcnZpY2VDb25uZWN0aW9uID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBnZXRFbmdpbmVOYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuIG1FbmdpbmVOYW1lOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBhYnN0cmFjdCBjbGFzcyBBY3Rpb24geworICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtTmFtZTsKKworICAgICAgICBwdWJsaWMgQWN0aW9uKFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICBtTmFtZSA9IG5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7cmV0dXJuIG1OYW1lO30KKyAgICAgICAgYWJzdHJhY3Qgdm9pZCBydW4oSVRleHRUb1NwZWVjaFNlcnZpY2Ugc2VydmljZSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbjsKKyAgICB9CisKKyAgICBwcml2YXRlIElCaW5kZXIgZ2V0Q2FsbGVySWRlbnRpdHkoKSB7CisgICAgICAgIGlmIChtU2VydmljZUNvbm5lY3Rpb24gIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG1TZXJ2aWNlQ29ubmVjdGlvbi5nZXRDYWxsZXJJZGVudGl0eSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBydW5BY3Rpb24oQWN0aW9uIGFjdGlvbikgeworICAgICAgICBzeW5jaHJvbml6ZWQgKG1Mb2NrKSB7CisgICAgICAgICAgICBpZiAobVNlcnZpY2VDb25uZWN0aW9uID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIW1TZXJ2aWNlQ29ubmVjdGlvbi5pc0VzdGFibGlzaGVkKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtU2VydmljZUNvbm5lY3Rpb24ucnVuQWN0aW9uKGFjdGlvbik7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBQ1RJT05fU1RPUF9OQU1FID0gInN0b3AiOworCisgICAgLyoqCisgICAgICogSW50ZXJydXB0cyB0aGUgY3VycmVudCB1dHRlcmFuY2Ugc3Bva2VuICh3aGV0aGVyIHBsYXllZCBvciByZW5kZXJlZCB0byBmaWxlKSBhbmQgZGlzY2FyZHMKKyAgICAgKiBvdGhlciB1dHRlcmFuY2VzIGluIHRoZSBxdWV1ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzdG9wKCkgeworICAgICAgICBydW5BY3Rpb24obmV3IEFjdGlvbihBQ1RJT05fU1RPUF9OQU1FKSB7CisgICAgICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bihJVGV4dFRvU3BlZWNoU2VydmljZSBzZXJ2aWNlKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKKyAgICAgICAgICAgICAgIGlmIChzZXJ2aWNlLnN0b3AoZ2V0Q2FsbGVySWRlbnRpdHkoKSkgIT0gU3RhdHVzLlNVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJTdG9wIGZhaWxlZCIpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgbUNhbGxiYWNrcy5jbGVhcigpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUNUSU9OX1FVRVVFX1NQRUFLX05BTUUgPSAicXVldWVTcGVhayI7CisKKyAgICAvKioKKyAgICAgKiBTcGVha3MgdGhlIHN0cmluZyB1c2luZyB0aGUgc3BlY2lmaWVkIHF1ZXVpbmcgc3RyYXRlZ3kgdXNpbmcgY3VycmVudAorICAgICAqIHZvaWNlLiBUaGlzIG1ldGhvZCBpcyBhc3luY2hyb25vdXMsIGkuZS4gdGhlIG1ldGhvZCBqdXN0IGFkZHMgdGhlIHJlcXVlc3QKKyAgICAgKiB0byB0aGUgcXVldWUgb2YgVFRTIHJlcXVlc3RzIGFuZCB0aGVuIHJldHVybnMuIFRoZSBzeW50aGVzaXMgbWlnaHQgbm90CisgICAgICogaGF2ZSBmaW5pc2hlZCAob3IgZXZlbiBzdGFydGVkISkgYXQgdGhlIHRpbWUgd2hlbiB0aGlzIG1ldGhvZCByZXR1cm5zLgorICAgICAqCisgICAgICogQHBhcmFtIHV0dGVyYW5jZSBUaGUgc3RyaW5nIG9mIHRleHQgdG8gYmUgc3Bva2VuLiBObyBsb25nZXIgdGhhbgorICAgICAqICAgICAgICAgICAgMTAwMCBjaGFyYWN0ZXJzLgorICAgICAqIEBwYXJhbSB1dHRlcmFuY2VJZCBVbmlxdWUgaWRlbnRpZmljYXRvciB1c2VkIHRvIHRyYWNrIHRoZSBzeW50aGVzaXMgcHJvZ3Jlc3MKKyAgICAgKiAgICAgICAgICAgIGluIHtAbGluayBSZXF1ZXN0Q2FsbGJhY2tzfS4KKyAgICAgKiBAcGFyYW0gY29uZmlnIFN5bnRoZXNpcyByZXF1ZXN0IGNvbmZpZ3VyYXRpb24uIENhbid0IGJlIG51bGwuIEhhcyB0byBjb250YWluIGEKKyAgICAgKiAgICAgICAgICAgIHZvaWNlLgorICAgICAqIEBwYXJhbSBjYWxsYmFja3MgU3ludGhlc2lzIHJlcXVlc3QgY2FsbGJhY2tzLiBJZiBudWxsLCBkZWZhdWx0IHJlcXVlc3QKKyAgICAgKiAgICAgICAgICAgIGNhbGxiYWNrcyBvYmplY3Qgd2lsbCBiZSB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHF1ZXVlU3BlYWsoZmluYWwgU3RyaW5nIHV0dGVyYW5jZSwgZmluYWwgVXR0ZXJhbmNlSWQgdXR0ZXJhbmNlSWQsCisgICAgICAgICAgICBmaW5hbCBSZXF1ZXN0Q29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgIGZpbmFsIFJlcXVlc3RDYWxsYmFja3MgY2FsbGJhY2tzKSB7CisgICAgICAgIHJ1bkFjdGlvbihuZXcgQWN0aW9uKEFDVElPTl9RVUVVRV9TUEVBS19OQU1FKSB7CisgICAgICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bihJVGV4dFRvU3BlZWNoU2VydmljZSBzZXJ2aWNlKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKKyAgICAgICAgICAgICAgICBSZXF1ZXN0Q2FsbGJhY2tzIGMgPSBtRGVmYXVsdFJlcXVlc3RDYWxsYmFja3M7CisgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBjYWxsYmFja3M7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBhZGRDYWxsYmFja1N0YXR1cyA9IGFkZENhbGxiYWNrKHV0dGVyYW5jZUlkLCBjKTsKKyAgICAgICAgICAgICAgICBpZiAoYWRkQ2FsbGJhY2tTdGF0dXMgIT0gU3RhdHVzLlNVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICAgICAgYy5vblN5bnRoZXNpc0ZhaWx1cmUodXR0ZXJhbmNlSWQsIFN0YXR1cy5FUlJPUl9JTlZBTElEX1JFUVVFU1QpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW50IHF1ZXVlUmVzdWx0ID0gc2VydmljZS5zcGVha1YyKAorICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q2FsbGVySWRlbnRpdHkoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTeW50aGVzaXNSZXF1ZXN0VjIodXR0ZXJhbmNlLCB1dHRlcmFuY2VJZC50b1VuaXF1ZVN0cmluZygpLCBjb25maWcpKTsKKyAgICAgICAgICAgICAgICBpZiAocXVldWVSZXN1bHQgIT0gU3RhdHVzLlNVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2FsbGJhY2tBbmRFcnIodXR0ZXJhbmNlSWQudG9VbmlxdWVTdHJpbmcoKSwgcXVldWVSZXN1bHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFDVElPTl9RVUVVRV9TWU5USEVTSVpFX1RPX0ZJTEUgPSAicXVldWVTeW50aGVzaXplVG9GaWxlIjsKKworICAgIC8qKgorICAgICAqIFN5bnRoZXNpemVzIHRoZSBnaXZlbiB0ZXh0IHRvIGEgZmlsZSB1c2luZyB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuIFRoaXMKKyAgICAgKiBtZXRob2QgaXMgYXN5bmNocm9ub3VzLCBpLmUuIHRoZSBtZXRob2QganVzdCBhZGRzIHRoZSByZXF1ZXN0IHRvIHRoZQorICAgICAqIHF1ZXVlIG9mIFRUUyByZXF1ZXN0cyBhbmQgdGhlbiByZXR1cm5zLiBUaGUgc3ludGhlc2lzIG1pZ2h0IG5vdCBoYXZlCisgICAgICogZmluaXNoZWQgKG9yIGV2ZW4gc3RhcnRlZCEpIGF0IHRoZSB0aW1lIHdoZW4gdGhpcyBtZXRob2QgcmV0dXJucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1dHRlcmFuY2UgVGhlIHRleHQgdGhhdCBzaG91bGQgYmUgc3ludGhlc2l6ZWQuIE5vIGxvbmdlciB0aGFuCisgICAgICogICAgICAgICAgICAxMDAwIGNoYXJhY3RlcnMuCisgICAgICogQHBhcmFtIHV0dGVyYW5jZUlkIFVuaXF1ZSBpZGVudGlmaWNhdG9yIHVzZWQgdG8gdHJhY2sgdGhlIHN5bnRoZXNpcyBwcm9ncmVzcworICAgICAqICAgICAgICAgICAgaW4ge0BsaW5rIFJlcXVlc3RDYWxsYmFja3N9LgorICAgICAqIEBwYXJhbSBvdXRwdXRGaWxlIEZpbGUgdG8gd3JpdGUgdGhlIGdlbmVyYXRlZCBhdWRpbyBkYXRhIHRvLgorICAgICAqIEBwYXJhbSBjb25maWcgU3ludGhlc2lzIHJlcXVlc3QgY29uZmlndXJhdGlvbi4gQ2FuJ3QgYmUgbnVsbC4gSGF2ZSB0byBjb250YWluIGEKKyAgICAgKiAgICAgICAgICAgIHZvaWNlLgorICAgICAqIEBwYXJhbSBjYWxsYmFja3MgU3ludGhlc2lzIHJlcXVlc3QgY2FsbGJhY2tzLiBJZiBudWxsLCBkZWZhdWx0IHJlcXVlc3QKKyAgICAgKiAgICAgICAgICAgIGNhbGxiYWNrcyBvYmplY3Qgd2lsbCBiZSB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHF1ZXVlU3ludGhlc2l6ZVRvRmlsZShmaW5hbCBTdHJpbmcgdXR0ZXJhbmNlLCBmaW5hbCBVdHRlcmFuY2VJZCB1dHRlcmFuY2VJZCwKKyAgICAgICAgICAgIGZpbmFsIEZpbGUgb3V0cHV0RmlsZSwgZmluYWwgUmVxdWVzdENvbmZpZyBjb25maWcsCisgICAgICAgICAgICBmaW5hbCBSZXF1ZXN0Q2FsbGJhY2tzIGNhbGxiYWNrcykgeworICAgICAgICBydW5BY3Rpb24obmV3IEFjdGlvbihBQ1RJT05fUVVFVUVfU1lOVEhFU0laRV9UT19GSUxFKSB7CisgICAgICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bihJVGV4dFRvU3BlZWNoU2VydmljZSBzZXJ2aWNlKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKKyAgICAgICAgICAgICAgICBSZXF1ZXN0Q2FsbGJhY2tzIGMgPSBtRGVmYXVsdFJlcXVlc3RDYWxsYmFja3M7CisgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBjYWxsYmFja3M7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBhZGRDYWxsYmFja1N0YXR1cyA9IGFkZENhbGxiYWNrKHV0dGVyYW5jZUlkLCBjKTsKKyAgICAgICAgICAgICAgICBpZiAoYWRkQ2FsbGJhY2tTdGF0dXMgIT0gU3RhdHVzLlNVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICAgICAgYy5vblN5bnRoZXNpc0ZhaWx1cmUodXR0ZXJhbmNlSWQsIFN0YXR1cy5FUlJPUl9JTlZBTElEX1JFUVVFU1QpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgUGFyY2VsRmlsZURlc2NyaXB0b3IgZmlsZURlc2NyaXB0b3IgPSBudWxsOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChvdXRwdXRGaWxlLmV4aXN0cygpICYmICFvdXRwdXRGaWxlLmNhbldyaXRlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIExvZy5lKFRBRywgIk5vIHBlcm1pc3Npb25zIHRvIHdyaXRlIHRvICIgKyBvdXRwdXRGaWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZUNhbGxiYWNrQW5kRXJyKHV0dGVyYW5jZUlkLnRvVW5pcXVlU3RyaW5nKCksIFN0YXR1cy5FUlJPUl9PVVRQVVQpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZpbGVEZXNjcmlwdG9yID0gUGFyY2VsRmlsZURlc2NyaXB0b3Iub3BlbihvdXRwdXRGaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcmNlbEZpbGVEZXNjcmlwdG9yLk1PREVfV1JJVEVfT05MWSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyY2VsRmlsZURlc2NyaXB0b3IuTU9ERV9DUkVBVEUgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcmNlbEZpbGVEZXNjcmlwdG9yLk1PREVfVFJVTkNBVEUpOworCisgICAgICAgICAgICAgICAgICAgIGludCBxdWV1ZVJlc3VsdCA9IHNlcnZpY2Uuc3ludGhlc2l6ZVRvRmlsZURlc2NyaXB0b3JWMihnZXRDYWxsZXJJZGVudGl0eSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVEZXNjcmlwdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTeW50aGVzaXNSZXF1ZXN0VjIodXR0ZXJhbmNlLCB1dHRlcmFuY2VJZC50b1VuaXF1ZVN0cmluZygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnKSk7CisgICAgICAgICAgICAgICAgICAgIGZpbGVEZXNjcmlwdG9yLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChxdWV1ZVJlc3VsdCAhPSBTdGF0dXMuU1VDQ0VTUykgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2FsbGJhY2tBbmRFcnIodXR0ZXJhbmNlSWQudG9VbmlxdWVTdHJpbmcoKSwgcXVldWVSZXN1bHQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRmlsZU5vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiT3BlbmluZyBmaWxlICIgKyBvdXRwdXRGaWxlICsgIiBmYWlsZWQiLCBlKTsKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2FsbGJhY2tBbmRFcnIodXR0ZXJhbmNlSWQudG9VbmlxdWVTdHJpbmcoKSwgU3RhdHVzLkVSUk9SX09VVFBVVCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJDbG9zaW5nIGZpbGUgIiArIG91dHB1dEZpbGUgKyAiIGZhaWxlZCIsIGUpOworICAgICAgICAgICAgICAgICAgICByZW1vdmVDYWxsYmFja0FuZEVycih1dHRlcmFuY2VJZC50b1VuaXF1ZVN0cmluZygpLCBTdGF0dXMuRVJST1JfT1VUUFVUKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBQ1RJT05fUVVFVUVfU0lMRU5DRV9OQU1FID0gInF1ZXVlU2lsZW5jZSI7CisKKyAgICAvKioKKyAgICAgKiBQbGF5cyBzaWxlbmNlIGZvciB0aGUgc3BlY2lmaWVkIGFtb3VudCBvZiB0aW1lLiBUaGlzIG1ldGhvZCBpcyBhc3luY2hyb25vdXMsCisgICAgICogaS5lLiB0aGUgbWV0aG9kIGp1c3QgYWRkcyB0aGUgcmVxdWVzdCB0byB0aGUgcXVldWUgb2YgVFRTIHJlcXVlc3RzIGFuZCB0aGVuCisgICAgICogcmV0dXJucy4gVGhlIHN5bnRoZXNpcyBtaWdodCBub3QgaGF2ZSBmaW5pc2hlZCAob3IgZXZlbiBzdGFydGVkISkgYXQgdGhlIHRpbWUKKyAgICAgKiB3aGVuIHRoaXMgbWV0aG9kIHJldHVybnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZHVyYXRpb25Jbk1zIFRoZSBkdXJhdGlvbiBvZiB0aGUgc2lsZW5jZSBpbiBtaWxsaXNlY29uZHMuCisgICAgICogQHBhcmFtIHV0dGVyYW5jZUlkIFVuaXF1ZSBpZGVudGlmaWNhdG9yIHVzZWQgdG8gdHJhY2sgdGhlIHN5bnRoZXNpcyBwcm9ncmVzcworICAgICAqICAgICAgICAgICAgaW4ge0BsaW5rIFJlcXVlc3RDYWxsYmFja3N9LgorICAgICAqIEBwYXJhbSBjYWxsYmFja3MgU3ludGhlc2lzIHJlcXVlc3QgY2FsbGJhY2tzLiBJZiBudWxsLCBkZWZhdWx0IHJlcXVlc3QKKyAgICAgKiAgICAgICAgICAgIGNhbGxiYWNrcyBvYmplY3Qgd2lsbCBiZSB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHF1ZXVlU2lsZW5jZShmaW5hbCBsb25nIGR1cmF0aW9uSW5NcywgZmluYWwgVXR0ZXJhbmNlSWQgdXR0ZXJhbmNlSWQsCisgICAgICAgICAgICBmaW5hbCBSZXF1ZXN0Q2FsbGJhY2tzIGNhbGxiYWNrcykgeworICAgICAgICBydW5BY3Rpb24obmV3IEFjdGlvbihBQ1RJT05fUVVFVUVfU0lMRU5DRV9OQU1FKSB7CisgICAgICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bihJVGV4dFRvU3BlZWNoU2VydmljZSBzZXJ2aWNlKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKKyAgICAgICAgICAgICAgICBSZXF1ZXN0Q2FsbGJhY2tzIGMgPSBtRGVmYXVsdFJlcXVlc3RDYWxsYmFja3M7CisgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBjYWxsYmFja3M7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBhZGRDYWxsYmFja1N0YXR1cyA9IGFkZENhbGxiYWNrKHV0dGVyYW5jZUlkLCBjKTsKKyAgICAgICAgICAgICAgICBpZiAoYWRkQ2FsbGJhY2tTdGF0dXMgIT0gU3RhdHVzLlNVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICAgICAgYy5vblN5bnRoZXNpc0ZhaWx1cmUodXR0ZXJhbmNlSWQsIFN0YXR1cy5FUlJPUl9JTlZBTElEX1JFUVVFU1QpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGludCBxdWV1ZVJlc3VsdCA9IHNlcnZpY2UucGxheVNpbGVuY2UoZ2V0Q2FsbGVySWRlbnRpdHkoKSwgZHVyYXRpb25Jbk1zLAorICAgICAgICAgICAgICAgICAgICAgICAgVGV4dFRvU3BlZWNoLlFVRVVFX0FERCwgdXR0ZXJhbmNlSWQudG9VbmlxdWVTdHJpbmcoKSk7CisKKyAgICAgICAgICAgICAgICBpZiAocXVldWVSZXN1bHQgIT0gU3RhdHVzLlNVQ0NFU1MpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2FsbGJhY2tBbmRFcnIodXR0ZXJhbmNlSWQudG9VbmlxdWVTdHJpbmcoKSwgcXVldWVSZXN1bHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUNUSU9OX1FVRVVFX0FVRElPX05BTUUgPSAicXVldWVBdWRpbyI7CisKKyAgICAvKioKKyAgICAgKiBQbGF5cyB0aGUgYXVkaW8gcmVzb3VyY2UgdXNpbmcgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGFzeW5jaHJvbm91cywgaS5lLiB0aGUgbWV0aG9kIGp1c3QgYWRkcyB0aGUgcmVxdWVzdCB0byB0aGUgcXVldWUgb2YgVFRTCisgICAgICogcmVxdWVzdHMgYW5kIHRoZW4gcmV0dXJucy4gVGhlIHN5bnRoZXNpcyBtaWdodCBub3QgaGF2ZSBmaW5pc2hlZCAob3IgZXZlbiBzdGFydGVkISkgYXQgdGhlCisgICAgICogdGltZSB3aGVuIHRoaXMgbWV0aG9kIHJldHVybnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXVkaW9VcmwgVGhlIGF1ZGlvIHJlc291cmNlIHRoYXQgc2hvdWxkIGJlIHBsYXllZAorICAgICAqIEBwYXJhbSB1dHRlcmFuY2VJZCBVbmlxdWUgaWRlbnRpZmljYXRvciB1c2VkIHRvIHRyYWNrIHN5bnRoZXNpcyBwcm9ncmVzcworICAgICAqICAgICAgICAgICAgaW4ge0BsaW5rIFJlcXVlc3RDYWxsYmFja3N9LgorICAgICAqIEBwYXJhbSBjb25maWcgU3ludGhlc2lzIHJlcXVlc3QgY29uZmlndXJhdGlvbi4gQ2FuJ3QgYmUgbnVsbC4gRG9lc24ndCBoYXZlIHRvIGNvbnRhaW4gYQorICAgICAqICAgICAgICAgICAgdm9pY2UgKG9ubHkgc3lzdGVtIHBhcmFtZXRlcnMgYXJlIHVzZWQpLgorICAgICAqIEBwYXJhbSBjYWxsYmFja3MgU3ludGhlc2lzIHJlcXVlc3QgY2FsbGJhY2tzLiBJZiBudWxsLCBkZWZhdWx0IHJlcXVlc3QKKyAgICAgKiAgICAgICAgICAgIGNhbGxiYWNrcyBvYmplY3Qgd2lsbCBiZSB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHF1ZXVlQXVkaW8oZmluYWwgVXJpIGF1ZGlvVXJsLCBmaW5hbCBVdHRlcmFuY2VJZCB1dHRlcmFuY2VJZCwKKyAgICAgICAgICAgIGZpbmFsIFJlcXVlc3RDb25maWcgY29uZmlnLCBmaW5hbCBSZXF1ZXN0Q2FsbGJhY2tzIGNhbGxiYWNrcykgeworICAgICAgICBydW5BY3Rpb24obmV3IEFjdGlvbihBQ1RJT05fUVVFVUVfQVVESU9fTkFNRSkgeworICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oSVRleHRUb1NwZWVjaFNlcnZpY2Ugc2VydmljZSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7CisgICAgICAgICAgICAgICAgUmVxdWVzdENhbGxiYWNrcyBjID0gbURlZmF1bHRSZXF1ZXN0Q2FsbGJhY2tzOworICAgICAgICAgICAgICAgIGlmIChjYWxsYmFja3MgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBjID0gY2FsbGJhY2tzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgYWRkQ2FsbGJhY2tTdGF0dXMgPSBhZGRDYWxsYmFjayh1dHRlcmFuY2VJZCwgYyk7CisgICAgICAgICAgICAgICAgaWYgKGFkZENhbGxiYWNrU3RhdHVzICE9IFN0YXR1cy5TVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgICAgIGMub25TeW50aGVzaXNGYWlsdXJlKHV0dGVyYW5jZUlkLCBTdGF0dXMuRVJST1JfSU5WQUxJRF9SRVFVRVNUKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgcXVldWVSZXN1bHQgPSBzZXJ2aWNlLnBsYXlBdWRpb1YyKGdldENhbGxlcklkZW50aXR5KCksIGF1ZGlvVXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgdXR0ZXJhbmNlSWQudG9VbmlxdWVTdHJpbmcoKSwgY29uZmlnLmdldFZvaWNlUGFyYW1zKCkpOworCisgICAgICAgICAgICAgICAgaWYgKHF1ZXVlUmVzdWx0ICE9IFN0YXR1cy5TVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgICAgIHJlbW92ZUNhbGxiYWNrQW5kRXJyKHV0dGVyYW5jZUlkLnRvVW5pcXVlU3RyaW5nKCksIHF1ZXVlUmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvVGV4dFRvU3BlZWNoU2VydmljZS5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9UZXh0VG9TcGVlY2hTZXJ2aWNlLmphdmEKaW5kZXggNTc1ODU1Yy4uZDdjNTFmYyAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9UZXh0VG9TcGVlY2hTZXJ2aWNlLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9UZXh0VG9TcGVlY2hTZXJ2aWNlLmphdmEKQEAgLTM0LDI2ICszNCwyNyBAQAogaW1wb3J0IGFuZHJvaWQudGV4dC5UZXh0VXRpbHM7CiBpbXBvcnQgYW5kcm9pZC51dGlsLkxvZzsKIAotaW1wb3J0IGphdmEuaW8uRmlsZURlc2NyaXB0b3I7CiBpbXBvcnQgamF2YS5pby5GaWxlT3V0cHV0U3RyZWFtOwogaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKIGltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKIGltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKIGltcG9ydCBqYXZhLnV0aWwuU2V0OwogCiAKIC8qKgogICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgVFRTIGVuZ2luZSBpbXBsZW1lbnRhdGlvbnMuIFRoZSBmb2xsb3dpbmcgbWV0aG9kcwotICogbmVlZCB0byBiZSBpbXBsZW1lbnRlZC4KLSAqCisgKiBuZWVkIHRvIGJlIGltcGxlbWVudGVkIGZvciBWMSBBUEkgKHtAbGluayBUZXh0VG9TcGVlY2h9KSBpbXBsZW1lbnRhdGlvbi4KICAqIDx1bD4KLSAqICAgPGxpPntAbGluayAjb25Jc0xhbmd1YWdlQXZhaWxhYmxlfTwvbGk+Ci0gKiAgIDxsaT57QGxpbmsgI29uTG9hZExhbmd1YWdlfTwvbGk+Ci0gKiAgIDxsaT57QGxpbmsgI29uR2V0TGFuZ3VhZ2V9PC9saT4KLSAqICAgPGxpPntAbGluayAjb25TeW50aGVzaXplVGV4dH08L2xpPgotICogICA8bGk+e0BsaW5rICNvblN0b3B9PC9saT4KKyAqIDxsaT57QGxpbmsgI29uSXNMYW5ndWFnZUF2YWlsYWJsZX08L2xpPgorICogPGxpPntAbGluayAjb25Mb2FkTGFuZ3VhZ2V9PC9saT4KKyAqIDxsaT57QGxpbmsgI29uR2V0TGFuZ3VhZ2V9PC9saT4KKyAqIDxsaT57QGxpbmsgI29uU3ludGhlc2l6ZVRleHR9PC9saT4KKyAqIDxsaT57QGxpbmsgI29uU3RvcH08L2xpPgogICogPC91bD4KLSAqCiAgKiBUaGUgZmlyc3QgdGhyZWUgZGVhbCBwcmltYXJpbHkgd2l0aCBsYW5ndWFnZSBtYW5hZ2VtZW50LCBhbmQgYXJlIHVzZWQgdG8KICAqIHF1ZXJ5IHRoZSBlbmdpbmUgZm9yIGl0J3Mgc3VwcG9ydCBmb3IgYSBnaXZlbiBsYW5ndWFnZSBhbmQgaW5kaWNhdGUgdG8gaXQKICAqIHRoYXQgcmVxdWVzdHMgaW4gYSBnaXZlbiBsYW5ndWFnZSBhcmUgaW1taW5lbnQuCkBAIC02MSwyMiArNjIsNDQgQEAKICAqIHtAbGluayAjb25TeW50aGVzaXplVGV4dH0gaXMgY2VudHJhbCB0byB0aGUgZW5naW5lIGltcGxlbWVudGF0aW9uLiBUaGUKICAqIGltcGxlbWVudGF0aW9uIHNob3VsZCBzeW50aGVzaXplIHRleHQgYXMgcGVyIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMgYW5kCiAgKiByZXR1cm4gc3ludGhlc2l6ZWQgZGF0YSB2aWEgdGhlIHN1cHBsaWVkIGNhbGxiYWNrLiBUaGlzIGNsYXNzIGFuZCBpdHMgaGVscGVycwotICogd2lsbCB0aGVuIGNvbnN1bWUgdGhhdCBkYXRhLCB3aGljaCBtaWdodCBtZWFuIHF1ZXVlaW5nIGl0IGZvciBwbGF5YmFjayBvciB3cml0aW5nCi0gKiBpdCB0byBhIGZpbGUgb3Igc2ltaWxhci4gQWxsIGNhbGxzIHRvIHRoaXMgbWV0aG9kIHdpbGwgYmUgb24gYSBzaW5nbGUKLSAqIHRocmVhZCwgd2hpY2ggd2lsbCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgbWFpbiB0aHJlYWQgb2YgdGhlIHNlcnZpY2UuIFN5bnRoZXNpcwotICogbXVzdCBiZSBzeW5jaHJvbm91cyB3aGljaCBtZWFucyB0aGUgZW5naW5lIG11c3QgTk9UIGhvbGQgb24gdGhlIGNhbGxiYWNrIG9yIGNhbGwKLSAqIGFueSBtZXRob2RzIG9uIGl0IGFmdGVyIHRoZSBtZXRob2QgcmV0dXJucworICogd2lsbCB0aGVuIGNvbnN1bWUgdGhhdCBkYXRhLCB3aGljaCBtaWdodCBtZWFuIHF1ZXVpbmcgaXQgZm9yIHBsYXliYWNrIG9yIHdyaXRpbmcKKyAqIGl0IHRvIGEgZmlsZSBvciBzaW1pbGFyLiBBbGwgY2FsbHMgdG8gdGhpcyBtZXRob2Qgd2lsbCBiZSBvbiBhIHNpbmdsZSB0aHJlYWQsCisgKiB3aGljaCB3aWxsIGJlIGRpZmZlcmVudCBmcm9tIHRoZSBtYWluIHRocmVhZCBvZiB0aGUgc2VydmljZS4gU3ludGhlc2lzIG11c3QgYmUKKyAqIHN5bmNocm9ub3VzIHdoaWNoIG1lYW5zIHRoZSBlbmdpbmUgbXVzdCBOT1QgaG9sZCBvbiB0byB0aGUgY2FsbGJhY2sgb3IgY2FsbCBhbnkKKyAqIG1ldGhvZHMgb24gaXQgYWZ0ZXIgdGhlIG1ldGhvZCByZXR1cm5zLgogICoKLSAqIHtAbGluayAjb25TdG9wfSB0ZWxscyB0aGUgZW5naW5lIHRoYXQgaXQgc2hvdWxkIHN0b3AgYWxsIG9uZ29pbmcgc3ludGhlc2lzLCBpZgotICogYW55LiBBbnkgcGVuZGluZyBkYXRhIGZyb20gdGhlIGN1cnJlbnQgc3ludGhlc2lzIHdpbGwgYmUgZGlzY2FyZGVkLgorICoge0BsaW5rICNvblN0b3B9IHRlbGxzIHRoZSBlbmdpbmUgdGhhdCBpdCBzaG91bGQgc3RvcAorICogYWxsIG9uZ29pbmcgc3ludGhlc2lzLCBpZiBhbnkuIEFueSBwZW5kaW5nIGRhdGEgZnJvbSB0aGUgY3VycmVudCBzeW50aGVzaXMKKyAqIHdpbGwgYmUgZGlzY2FyZGVkLgogICoKKyAqIHtAbGluayAjb25HZXRMYW5ndWFnZX0gaXMgbm90IHJlcXVpcmVkIGFzIG9mIEpFTExZQkVBTl9NUjIgKEFQSSAxOCkgYW5kIGxhdGVyLCBpdCBpcyBvbmx5CisgKiBjYWxsZWQgb24gZWFybGllciB2ZXJzaW9ucyBvZiBBbmRyb2lkLgorICogPHA+CisgKiBJbiBvcmRlciB0byBmdWxseSBzdXBwb3J0IHRoZSBWMiBBUEkgKHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnR9KSwKKyAqIHRoZXNlIG1ldGhvZHMgbXVzdCBiZSBpbXBsZW1lbnRlZDoKKyAqIDx1bD4KKyAqIDxsaT57QGxpbmsgI29uU3ludGhlc2l6ZVRleHRWMn08L2xpPgorICogPGxpPntAbGluayAjY2hlY2tWb2ljZXNJbmZvfTwvbGk+CisgKiA8bGk+e0BsaW5rICNvblZvaWNlc0luZm9DaGFuZ2V9PC9saT4KKyAqIDxsaT57QGxpbmsgI2ltcGxlbWVudHNWMkFQSX08L2xpPgorICogPC91bD4KKyAqIEluIGFkZGl0aW9uIHtAbGluayAjaW1wbGVtZW50c1YyQVBJfSBoYXMgdG8gcmV0dXJuIHRydWUuCisgKiA8cD4KKyAqIElmIHRoZSBzZXJ2aWNlIGRvZXMgbm90IGltcGxlbWVudCB0aGVzZSBtZXRob2RzIGFuZCB7QGxpbmsgI2ltcGxlbWVudHNWMkFQSX0gcmV0dXJucyBmYWxzZSwKKyAqIHRoZW4gdGhlIFYyIEFQSSB3aWxsIGJlIHByb3ZpZGVkIGJ5IGNvbnZlcnRpbmcgVjIgcmVxdWVzdHMgKHtAbGluayAjb25TeW50aGVzaXplVGV4dFYyfSkKKyAqIHRvIFYxIHJlcXVlc3RzICh7QGxpbmsgI29uU3ludGhlc2l6ZVRleHR9KS4gT24gc2VydmljZSBzZXR1cCwgYWxsIG9mIHRoZSBhdmFpbGFibGUgZGV2aWNlCisgKiBsb2NhbGVzIHdpbGwgYmUgZmVkIHRvIHtAbGluayAjb25Jc0xhbmd1YWdlQXZhaWxhYmxlfSB0byBjaGVjayBpZiB0aGV5IGFyZSBzdXBwb3J0ZWQuCisgKiBJZiB0aGV5IGFyZSwgZW1iZWRkZWQgYW5kL29yIG5ldHdvcmsgdm9pY2VzIHdpbGwgYmUgY3JlYXRlZCBkZXBlbmRpbmcgb24gdGhlIHJlc3VsdCBvZgorICoge0BsaW5rICNvbkdldEZlYXR1cmVzRm9yTGFuZ3VhZ2V9LgorICogPHA+CisgKiBOb3RlIHRoYXQgYSBWMiBzZXJ2aWNlIHdpbGwgc3RpbGwgcmVjZWl2ZSByZXF1ZXN0cyBmcm9tIFYxIGNsaWVudHMgYW5kIGhhcyB0byBpbXBsZW1lbnQgYWxsCisgKiBvZiB0aGUgVjEgQVBJIG1ldGhvZHMuCiAgKi8KIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBUZXh0VG9TcGVlY2hTZXJ2aWNlIGV4dGVuZHMgU2VydmljZSB7CiAKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERCRyA9IGZhbHNlOwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUQUcgPSAiVGV4dFRvU3BlZWNoU2VydmljZSI7CiAKLQogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTWU5USF9USFJFQURfTkFNRSA9ICJTeW50aFRocmVhZCI7CiAKICAgICBwcml2YXRlIFN5bnRoSGFuZGxlciBtU3ludGhIYW5kbGVyOwpAQCAtODksNiArMTEyLDExIEBACiAgICAgcHJpdmF0ZSBDYWxsYmFja01hcCBtQ2FsbGJhY2tzOwogICAgIHByaXZhdGUgU3RyaW5nIG1QYWNrYWdlTmFtZTsKIAorICAgIHByaXZhdGUgZmluYWwgT2JqZWN0IG1Wb2ljZXNJbmZvTG9jayA9IG5ldyBPYmplY3QoKTsKKworICAgIHByaXZhdGUgTGlzdDxWb2ljZUluZm8+IG1Wb2ljZXNJbmZvTGlzdDsKKyAgICBwcml2YXRlIE1hcDxTdHJpbmcsIFZvaWNlSW5mbz4gbVZvaWNlc0luZm9Mb29rdXA7CisKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCBvbkNyZWF0ZSgpIHsKICAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAib25DcmVhdGUoKSIpOwpAQCAtMTA4LDYgKzEzNiw3IEBACiAgICAgICAgIG1QYWNrYWdlTmFtZSA9IGdldEFwcGxpY2F0aW9uSW5mbygpLnBhY2thZ2VOYW1lOwogCiAgICAgICAgIFN0cmluZ1tdIGRlZmF1bHRMb2NhbGUgPSBnZXRTZXR0aW5nc0xvY2FsZSgpOworCiAgICAgICAgIC8vIExvYWQgZGVmYXVsdCBsYW5ndWFnZQogICAgICAgICBvbkxvYWRMYW5ndWFnZShkZWZhdWx0TG9jYWxlWzBdLCBkZWZhdWx0TG9jYWxlWzFdLCBkZWZhdWx0TG9jYWxlWzJdKTsKICAgICB9CkBAIC0xNDgsNiArMTc3LDkgQEAKICAgICAvKioKICAgICAgKiBSZXR1cm5zIHRoZSBsYW5ndWFnZSwgY291bnRyeSBhbmQgdmFyaWFudCBjdXJyZW50bHkgYmVpbmcgdXNlZCBieSB0aGUgVFRTIGVuZ2luZS4KICAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG9ubHkgb24gQW5kcm9pZCA0LjIgYW5kIGJlZm9yZSAoQVBJIDw9IDE3KS4gSW4gbGF0ZXIgdmVyc2lvbnMKKyAgICAgKiB0aGlzIG1ldGhvZCBpcyBub3QgY2FsbGVkIGJ5IHRoZSBBbmRyb2lkIFRUUyBmcmFtZXdvcmsuCisgICAgICoKICAgICAgKiBDYW4gYmUgY2FsbGVkIG9uIG11bHRpcGxlIHRocmVhZHMuCiAgICAgICoKICAgICAgKiBAcmV0dXJuIEEgMy1lbGVtZW50IGFycmF5LCBjb250YWluaW5nIGxhbmd1YWdlIChJU08gMy1sZXR0ZXIgY29kZSksCkBAIC0xOTEsMjEgKzIyMywxNTkgQEAKICAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBvblN0b3AoKTsKIAogICAgIC8qKgotICAgICAqIFRlbGxzIHRoZSBzZXJ2aWNlIHRvIHN5bnRoZXNpemUgc3BlZWNoIGZyb20gdGhlIGdpdmVuIHRleHQuIFRoaXMgbWV0aG9kIHNob3VsZAotICAgICAqIGJsb2NrIHVudGlsIHRoZSBzeW50aGVzaXMgaXMgZmluaXNoZWQuCi0gICAgICoKLSAgICAgKiBDYWxsZWQgb24gdGhlIHN5bnRoZXNpcyB0aHJlYWQuCisgICAgICogVGVsbHMgdGhlIHNlcnZpY2UgdG8gc3ludGhlc2l6ZSBzcGVlY2ggZnJvbSB0aGUgZ2l2ZW4gdGV4dC4gVGhpcyBtZXRob2QKKyAgICAgKiBzaG91bGQgYmxvY2sgdW50aWwgdGhlIHN5bnRoZXNpcyBpcyBmaW5pc2hlZC4gVXNlZCBmb3IgcmVxdWVzdHMgZnJvbSBWMQorICAgICAqIGNsaWVudHMgKHtAbGluayBhbmRyb2lkLnNwZWVjaC50dHMuVGV4dFRvU3BlZWNofSkuIENhbGxlZCBvbiB0aGUgc3ludGhlc2lzCisgICAgICogdGhyZWFkLgogICAgICAqCiAgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIHN5bnRoZXNpcyByZXF1ZXN0LgotICAgICAqIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgdGhlIHRoZSBlbmdpbmUgbXVzdCB1c2UgdG8gbWFrZSBkYXRhIGF2YWlsYWJsZSBmb3IKLSAgICAgKiAgICAgICAgIHBsYXliYWNrIG9yIGZvciB3cml0aW5nIHRvIGEgZmlsZS4KKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIHRoYXQgdGhlIGVuZ2luZSBtdXN0IHVzZSB0byBtYWtlIGRhdGEKKyAgICAgKiAgICAgICAgICAgIGF2YWlsYWJsZSBmb3IgcGxheWJhY2sgb3IgZm9yIHdyaXRpbmcgdG8gYSBmaWxlLgogICAgICAqLwogICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIG9uU3ludGhlc2l6ZVRleHQoU3ludGhlc2lzUmVxdWVzdCByZXF1ZXN0LAogICAgICAgICAgICAgU3ludGhlc2lzQ2FsbGJhY2sgY2FsbGJhY2spOwogCiAgICAgLyoqCisgICAgICogQ2hlY2sgdGhlIGF2YWlsYWJsZSB2b2ljZXMgZGF0YSBhbmQgcmV0dXJuIGFuIGltbXV0YWJsZSBsaXN0IG9mIHRoZSBhdmFpbGFibGUgdm9pY2VzLgorICAgICAqIFRoZSBvdXRwdXQgb2YgdGhpcyBtZXRob2Qgd2lsbCBiZSBwYXNzZWQgdG8gY2xpZW50cyB0byBhbGxvdyB0aGVtIHRvIGNvbmZpZ3VyZSBzeW50aGVzaXMKKyAgICAgKiByZXF1ZXN0cy4KKyAgICAgKgorICAgICAqIENhbiBiZSBjYWxsZWQgb24gbXVsdGlwbGUgdGhyZWFkcy4KKyAgICAgKgorICAgICAqIFRoZSByZXN1bHQgb2YgdGhpcyBtZXRob2Qgd2lsbCBiZSBzYXZlZCBhbmQgc2VydmVkIHRvIGFsbCBUVFMgY2xpZW50cy4gSWYgYSBUVFMgc2VydmljZSB3YW50cworICAgICAqIHRvIHVwZGF0ZSB0aGUgc2V0IG9mIGF2YWlsYWJsZSB2b2ljZXMsIGl0IHNob3VsZCBjYWxsIHRoZSB7QGxpbmsgI2ZvcmNlVm9pY2VzSW5mb0NoZWNrKCl9CisgICAgICogbWV0aG9kLgorICAgICAqLworICAgIHByb3RlY3RlZCBMaXN0PFZvaWNlSW5mbz4gY2hlY2tWb2ljZXNJbmZvKCkgeworICAgICAgICBpZiAoaW1wbGVtZW50c1YyQVBJKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkZvciBwcm9wZXIgVjIgQVBJIGltcGxlbWVudGF0aW9uIHRoaXMgbWV0aG9kIGhhcyB0byIgKworICAgICAgICAgICAgICAgICAgICAiICBiZSBpbXBsZW1lbnRlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVjIgdG8gVjEgaW50ZXJmYWNlIGFkYXB0ZXIuIFRoaXMgYWxsb3dzIHVzaW5nIFYyIGNsaWVudCBpbnRlcmZhY2Ugb24gVjEtb25seSBzZXJ2aWNlcy4KKyAgICAgICAgQnVuZGxlIGRlZmF1bHRQYXJhbXMgPSBuZXcgQnVuZGxlKCk7CisgICAgICAgIGRlZmF1bHRQYXJhbXMucHV0RmxvYXQoVGV4dFRvU3BlZWNoQ2xpZW50LlBhcmFtcy5TUEVFQ0hfUElUQ0gsIDEuMGYpOworICAgICAgICBkZWZhdWx0UGFyYW1zLnB1dEZsb2F0KFRleHRUb1NwZWVjaENsaWVudC5QYXJhbXMuU1BFRUNIX1NQRUVELCAtMS4wZik7CisKKyAgICAgICAgLy8gRW51bWVyYXRlIGFsbCBsb2NhbGVzIGFuZCBjaGVjayBpZiB0aGV5IGFyZSBhdmFpbGFibGUKKyAgICAgICAgQXJyYXlMaXN0PFZvaWNlSW5mbz4gdm9pY2VzSW5mbyA9IG5ldyBBcnJheUxpc3Q8Vm9pY2VJbmZvPigpOworICAgICAgICBpbnQgaWQgPSAwOworICAgICAgICBmb3IgKExvY2FsZSBsb2NhbGUgOiBMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpKSB7CisgICAgICAgICAgICBpbnQgZXhwZWN0ZWRTdGF0dXMgPSBUZXh0VG9TcGVlY2guTEFOR19DT1VOVFJZX1ZBUl9BVkFJTEFCTEU7CisgICAgICAgICAgICBpZiAobG9jYWxlLmdldFZhcmlhbnQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWxlLmdldENvdW50cnkoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRTdGF0dXMgPSBUZXh0VG9TcGVlY2guTEFOR19BVkFJTEFCTEU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRTdGF0dXMgPSBUZXh0VG9TcGVlY2guTEFOR19DT1VOVFJZX0FWQUlMQUJMRTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGludCBsb2NhbGVTdGF0dXMgPSBvbklzTGFuZ3VhZ2VBdmFpbGFibGUobG9jYWxlLmdldElTTzNMYW5ndWFnZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlLmdldElTTzNDb3VudHJ5KCksIGxvY2FsZS5nZXRWYXJpYW50KCkpOworICAgICAgICAgICAgICAgIGlmIChsb2NhbGVTdGF0dXMgIT0gZXhwZWN0ZWRTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyBJZ25vcmUgbG9jYWxlIHdpdGhvdXQgaXNvIDMgY29kZXMKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU2V0PFN0cmluZz4gZmVhdHVyZXMgPSBvbkdldEZlYXR1cmVzRm9yTGFuZ3VhZ2UobG9jYWxlLmdldElTTzNMYW5ndWFnZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlLmdldElTTzNDb3VudHJ5KCksIGxvY2FsZS5nZXRWYXJpYW50KCkpOworCisgICAgICAgICAgICBWb2ljZUluZm8uQnVpbGRlciBidWlsZGVyID0gbmV3IFZvaWNlSW5mby5CdWlsZGVyKCk7CisgICAgICAgICAgICBidWlsZGVyLnNldExhdGVuY3koVm9pY2VJbmZvLkxBVEVOQ1lfTk9STUFMKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuc2V0UXVhbGl0eShWb2ljZUluZm8uUVVBTElUWV9OT1JNQUwpOworICAgICAgICAgICAgYnVpbGRlci5zZXRMb2NhbGUobG9jYWxlKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuc2V0UGFyYW1zV2l0aERlZmF1bHRzKGRlZmF1bHRQYXJhbXMpOworCisgICAgICAgICAgICBpZiAoZmVhdHVyZXMgPT0gbnVsbCB8fCBmZWF0dXJlcy5jb250YWlucygKKyAgICAgICAgICAgICAgICAgICAgVGV4dFRvU3BlZWNoLkVuZ2luZS5LRVlfRkVBVFVSRV9FTUJFRERFRF9TWU5USEVTSVMpKSB7CisgICAgICAgICAgICAgICAgYnVpbGRlci5zZXROYW1lKGxvY2FsZS50b1N0cmluZygpICsgIi1lbWJlZGRlZCIpOworICAgICAgICAgICAgICAgIGJ1aWxkZXIuc2V0UmVxdWlyZXNOZXR3b3JrQ29ubmVjdGlvbihmYWxzZSk7CisgICAgICAgICAgICAgICAgdm9pY2VzSW5mby5hZGQoYnVpbGRlci5idWlsZCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGZlYXR1cmVzICE9IG51bGwgJiYgZmVhdHVyZXMuY29udGFpbnMoCisgICAgICAgICAgICAgICAgICAgIFRleHRUb1NwZWVjaC5FbmdpbmUuS0VZX0ZFQVRVUkVfTkVUV09SS19TWU5USEVTSVMpKSB7CisgICAgICAgICAgICAgICAgYnVpbGRlci5zZXROYW1lKGxvY2FsZS50b1N0cmluZygpICsgIi1uZXR3b3JrIik7CisgICAgICAgICAgICAgICAgYnVpbGRlci5zZXRSZXF1aXJlc05ldHdvcmtDb25uZWN0aW9uKHRydWUpOworICAgICAgICAgICAgICAgIHZvaWNlc0luZm8uYWRkKGJ1aWxkZXIuYnVpbGQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdm9pY2VzSW5mbzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZWxscyB0aGUgc3ludGhlc2lzIHRocmVhZCB0aGF0IGl0IHNob3VsZCByZWxvYWQgdm9pY2UgZGF0YS4KKyAgICAgKiBUaGVyZSdzIGEgaGlnaCBwcm9iYWJpbGl0eSB0aGF0IHRoZSB1bmRlcmx5aW5nIHNldCBvZiBhdmFpbGFibGUgdm9pY2UgZGF0YSBoYXMgY2hhbmdlZC4KKyAgICAgKiBDYWxsZWQgb25seSBvbiB0aGUgc3ludGhlc2lzIHRocmVhZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBvblZvaWNlc0luZm9DaGFuZ2UoKSB7CisKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZWxscyB0aGUgc2VydmljZSB0byBzeW50aGVzaXplIHNwZWVjaCBmcm9tIHRoZSBnaXZlbiB0ZXh0LiBUaGlzIG1ldGhvZAorICAgICAqIHNob3VsZCBibG9jayB1bnRpbCB0aGUgc3ludGhlc2lzIGlzIGZpbmlzaGVkLiBVc2VkIGZvciByZXF1ZXN0cyBmcm9tIFYyCisgICAgICogY2xpZW50IHtAbGluayBhbmRyb2lkLnNwZWVjaC50dHMuVGV4dFRvU3BlZWNoQ2xpZW50fS4gQ2FsbGVkIG9uIHRoZQorICAgICAqIHN5bnRoZXNpcyB0aHJlYWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgc3ludGhlc2lzIHJlcXVlc3QuCisgICAgICogQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayB0aGUgdGhlIGVuZ2luZSBtdXN0IHVzZSB0byBtYWtlIGRhdGEKKyAgICAgKiAgICAgICAgICAgIGF2YWlsYWJsZSBmb3IgcGxheWJhY2sgb3IgZm9yIHdyaXRpbmcgdG8gYSBmaWxlLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIG9uU3ludGhlc2l6ZVRleHRWMihTeW50aGVzaXNSZXF1ZXN0VjIgcmVxdWVzdCwKKyAgICAgICAgICAgIFZvaWNlSW5mbyBzZWxlY3RlZFZvaWNlLAorICAgICAgICAgICAgU3ludGhlc2lzQ2FsbGJhY2sgY2FsbGJhY2spIHsKKyAgICAgICAgaWYgKGltcGxlbWVudHNWMkFQSSgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJGb3IgcHJvcGVyIFYyIEFQSSBpbXBsZW1lbnRhdGlvbiB0aGlzIG1ldGhvZCBoYXMgdG8iICsKKyAgICAgICAgICAgICAgICAgICAgIiAgYmUgaW1wbGVtZW50ZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbnZlcnQgdG8gVjEgcGFyYW1zCisgICAgICAgIGludCBzcGVlY2hSYXRlID0gKGludCkgKHJlcXVlc3QuZ2V0Vm9pY2VQYXJhbXMoKS5nZXRGbG9hdCgKKyAgICAgICAgICAgICAgICBUZXh0VG9TcGVlY2hDbGllbnQuUGFyYW1zLlNQRUVDSF9TUEVFRCwgMS4wZikgKiAxMDApOworICAgICAgICBpbnQgc3BlZWNoUGl0Y2ggPSAoaW50KSAocmVxdWVzdC5nZXRWb2ljZVBhcmFtcygpLmdldEZsb2F0KAorICAgICAgICAgICAgICAgIFRleHRUb1NwZWVjaENsaWVudC5QYXJhbXMuU1BFRUNIX1BJVENILCAxLjBmKSAqIDEwMCk7CisKKyAgICAgICAgLy8gUHJvdmlkZSBhZGFwdGVyIHRvIFYxIEFQSQorICAgICAgICBCdW5kbGUgcGFyYW1zID0gbmV3IEJ1bmRsZSgpOworICAgICAgICBwYXJhbXMucHV0U3RyaW5nKFRleHRUb1NwZWVjaC5FbmdpbmUuS0VZX1BBUkFNX1VUVEVSQU5DRV9JRCwgcmVxdWVzdC5nZXRVdHRlcmFuY2VJZCgpKTsKKyAgICAgICAgcGFyYW1zLnB1dEludChUZXh0VG9TcGVlY2guRW5naW5lLktFWV9QQVJBTV9QSVRDSCwgc3BlZWNoUGl0Y2gpOworICAgICAgICBwYXJhbXMucHV0SW50KFRleHRUb1NwZWVjaC5FbmdpbmUuS0VZX1BBUkFNX1JBVEUsIHNwZWVjaFJhdGUpOworICAgICAgICBpZiAoc2VsZWN0ZWRWb2ljZS5nZXRSZXF1aXJlc05ldHdvcmtDb25uZWN0aW9uKCkpIHsKKyAgICAgICAgICAgIHBhcmFtcy5wdXRTdHJpbmcoVGV4dFRvU3BlZWNoLkVuZ2luZS5LRVlfRkVBVFVSRV9ORVRXT1JLX1NZTlRIRVNJUywgInRydWUiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBhcmFtcy5wdXRTdHJpbmcoVGV4dFRvU3BlZWNoLkVuZ2luZS5LRVlfRkVBVFVSRV9FTUJFRERFRF9TWU5USEVTSVMsICJ0cnVlIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBCdWlsZCBWMSByZXF1ZXN0CisgICAgICAgIFN5bnRoZXNpc1JlcXVlc3QgcmVxdWVzdFYxID0gbmV3IFN5bnRoZXNpc1JlcXVlc3QocmVxdWVzdC5nZXRUZXh0KCksIHBhcmFtcyk7CisgICAgICAgIExvY2FsZSBsb2NhbGUgPSBzZWxlY3RlZFZvaWNlLmdldExvY2FsZSgpOworICAgICAgICByZXF1ZXN0VjEuc2V0TGFuZ3VhZ2UobG9jYWxlLmdldElTTzNMYW5ndWFnZSgpLCBsb2NhbGUuZ2V0SVNPM0NvdW50cnkoKSwKKyAgICAgICAgICAgICAgICBsb2NhbGUuZ2V0VmFyaWFudCgpKTsKKyAgICAgICAgcmVxdWVzdFYxLnNldFNwZWVjaFJhdGUoc3BlZWNoUmF0ZSk7CisgICAgICAgIHJlcXVlc3RWMS5zZXRQaXRjaChzcGVlY2hQaXRjaCk7CisKKyAgICAgICAgLy8gU3ludGhlc2l6ZSB1c2luZyBWMSBpbnRlcmZhY2UKKyAgICAgICAgb25TeW50aGVzaXplVGV4dChyZXF1ZXN0VjEsIGNhbGxiYWNrKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJZiB0cnVlLCB0aGlzIHNlcnZpY2UgaW1wbGVtZW50cyBwcm9wZXIgVjIgVFRTIEFQSSBzZXJ2aWNlLiBJZiBpdCdzIGZhbHNlLAorICAgICAqIFYyIEFQSSB3aWxsIGJlIHByb3ZpZGVkIHRocm91Z2ggYWRhcHRlci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpbXBsZW1lbnRzVjJBUEkoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKICAgICAgKiBRdWVyaWVzIHRoZSBzZXJ2aWNlIGZvciBhIHNldCBvZiBmZWF0dXJlcyBzdXBwb3J0ZWQgZm9yIGEgZ2l2ZW4gbGFuZ3VhZ2UuCiAgICAgICoKKyAgICAgKiBDYW4gYmUgY2FsbGVkIG9uIG11bHRpcGxlIHRocmVhZHMuCisgICAgICoKICAgICAgKiBAcGFyYW0gbGFuZyBJU08tMyBsYW5ndWFnZSBjb2RlLgogICAgICAqIEBwYXJhbSBjb3VudHJ5IElTTy0zIGNvdW50cnkgY29kZS4gTWF5IGJlIGVtcHR5IG9yIG51bGwuCiAgICAgICogQHBhcmFtIHZhcmlhbnQgTGFuZ3VhZ2UgdmFyaWFudC4gTWF5IGJlIGVtcHR5IG9yIG51bGwuCkBAIC0yMTUsNiArMzg1LDY5IEBACiAgICAgICAgIHJldHVybiBudWxsOwogICAgIH0KIAorICAgIHByaXZhdGUgTGlzdDxWb2ljZUluZm8+IGdldFZvaWNlc0luZm8oKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAobVZvaWNlc0luZm9Mb2NrKSB7CisgICAgICAgICAgICBpZiAobVZvaWNlc0luZm9MaXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBHZXQgdm9pY2VzLiBEZWZlbnNpdmUgY29weSB0byBtYWtlIHN1cmUgVFRTIGVuZ2luZSB3b24ndCBhbHRlciB0aGUgbGlzdC4KKyAgICAgICAgICAgICAgICBtVm9pY2VzSW5mb0xpc3QgPSBuZXcgQXJyYXlMaXN0PFZvaWNlSW5mbz4oY2hlY2tWb2ljZXNJbmZvKCkpOworICAgICAgICAgICAgICAgIC8vIEJ1aWxkIGxvb2t1cCBtYXAKKyAgICAgICAgICAgICAgICBtVm9pY2VzSW5mb0xvb2t1cCA9IG5ldyBIYXNoTWFwPFN0cmluZywgVm9pY2VJbmZvPigoaW50KSAoCisgICAgICAgICAgICAgICAgICAgICAgICBtVm9pY2VzSW5mb0xpc3Quc2l6ZSgpKjEuNWYpKTsKKyAgICAgICAgICAgICAgICBmb3IgKFZvaWNlSW5mbyB2b2ljZUluZm8gOiBtVm9pY2VzSW5mb0xpc3QpIHsKKyAgICAgICAgICAgICAgICAgICAgVm9pY2VJbmZvIHByZXYgPSBtVm9pY2VzSW5mb0xvb2t1cC5wdXQodm9pY2VJbmZvLmdldE5hbWUoKSwgdm9pY2VJbmZvKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiRHVwbGljYXRlIG5hbWUgKCIgKyB2b2ljZUluZm8uZ2V0TmFtZSgpICsgIikgb2YgdGhlIHZvaWNlICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG1Wb2ljZXNJbmZvTGlzdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBWb2ljZUluZm8gZ2V0Vm9pY2VzSW5mb1dpdGhOYW1lKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAobVZvaWNlc0luZm9Mb2NrKSB7CisgICAgICAgICAgICBpZiAobVZvaWNlc0luZm9Mb29rdXAgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBtVm9pY2VzSW5mb0xvb2t1cC5nZXQobmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9yY2UgVFRTIHNlcnZpY2UgdG8gcmVldmFsdWF0ZSB0aGUgc2V0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXMuIFdpbGwgcmVzdWx0IGluCisgICAgICogYSBjYWxsIHRvIHtAbGluayAjY2hlY2tWb2ljZXNJbmZvKCl9IG9uIHRoZSBzYW1lIHRocmVhZCwge0BsaW5rICNvblZvaWNlc0luZm9DaGFuZ2V9CisgICAgICogb24gdGhlIHN5bnRoZXNpemVyIHRocmVhZCBhbmQgY2FsbGJhY2sgdG8KKyAgICAgKiB7QGxpbmsgVGV4dFRvU3BlZWNoQ2xpZW50LkNvbm5lY3Rpb25DYWxsYmFja3Mjb25FbmdpbmVTdGF0dXNDaGFuZ2V9IG9mIGFsbCBjb25uZWN0ZWQKKyAgICAgKiBUVFMgY2xpZW50cy4KKyAgICAgKgorICAgICAqIFVzZSB0aGlzIG1ldGhvZCBvbmx5IGlmIHlvdSBrbm93IHRoYXQgc2V0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXMgY2hhbmdlZC4KKyAgICAgKgorICAgICAqIENhbiBiZSBjYWxsZWQgb24gbXVsdGlwbGUgdGhyZWFkcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBmb3JjZVZvaWNlc0luZm9DaGVjaygpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChtVm9pY2VzSW5mb0xvY2spIHsKKyAgICAgICAgICAgIExpc3Q8Vm9pY2VJbmZvPiBvbGQgPSBtVm9pY2VzSW5mb0xpc3Q7CisKKyAgICAgICAgICAgIG1Wb2ljZXNJbmZvTGlzdCA9IG51bGw7IC8vIEZvcmNlIHJlY3JlYXRpb24gb2Ygdm9pY2VzIGluZm8gbGlzdAorICAgICAgICAgICAgZ2V0Vm9pY2VzSW5mbygpOworCisgICAgICAgICAgICBpZiAobVZvaWNlc0luZm9MaXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJUaGlzIG1ldGhvZCBhcHBsaWVzIG9ubHkgdG8gc2VydmljZXMgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAic3VwcG9ydGluZyBWMiBUVFMgQVBJLiBUaGlzIHNlcnZpY2VzIGRvZXNuJ3Qgc3VwcG9ydCBWMiBUVFMgQVBJLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAob2xkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBGbHVzaCBhbGwgZXhpc3RpbmcgaXRlbXMsIGFuZCBpbmZvcm0gc3ludGhlc2lzIHRocmVhZCBhYm91dCB0aGUgY2hhbmdlLgorICAgICAgICAgICAgICAgIG1TeW50aEhhbmRsZXIuZW5xdWV1ZVNwZWVjaEl0ZW0oVGV4dFRvU3BlZWNoLlFVRVVFX0ZMVVNILAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFZvaWNlc0luZm9DaGFuZ2VJdGVtKCkpOworICAgICAgICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSBpdGVtcyB0aGF0IG1heSBiZSBhZGRlZCB0byBxdWV1ZSBhZnRlciBTeW50aGVzaXplclJlc3RhcnRJdGVtCisgICAgICAgICAgICAgICAgLy8gYnV0IGJlZm9yZSBjbGllbnQgcmVjb25uZWN0aW9uCisgICAgICAgICAgICAgICAgLy8gRGlzY29ubmVjdCBhbGwgb2YgdGhlbQorICAgICAgICAgICAgICAgIG1DYWxsYmFja3MuZGlzcGF0Y2hWb2ljZXNJbmZvQ2hhbmdlKG1Wb2ljZXNJbmZvTGlzdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKICAgICBwcml2YXRlIGludCBnZXREZWZhdWx0U3BlZWNoUmF0ZSgpIHsKICAgICAgICAgcmV0dXJuIGdldFNlY3VyZVNldHRpbmdJbnQoU2V0dGluZ3MuU2VjdXJlLlRUU19ERUZBVUxUX1JBVEUsIEVuZ2luZS5ERUZBVUxUX1JBVEUpOwogICAgIH0KQEAgLTMxNyw3ICs1NTAsOCBAQAogCiAgICAgICAgICAgICBpZiAoIXNwZWVjaEl0ZW0uaXNWYWxpZCgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHV0dGVyZW5jZVByb2dyZXNzICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgdXR0ZXJlbmNlUHJvZ3Jlc3MuZGlzcGF0Y2hPbkVycm9yKCk7CisgICAgICAgICAgICAgICAgICAgIHV0dGVyZW5jZVByb2dyZXNzLmRpc3BhdGNoT25FcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzLkVSUk9SX0lOVkFMSURfUkVRVUVTVCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CiAgICAgICAgICAgICB9CkBAIC0zNDIsMTIgKzU3NiwxMyBAQAogICAgICAgICAgICAgLy8KICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB0aGlzIHN0cmluZyBpcyBpbnRlcm5lZCwgc28gdGhlID09IGNvbXBhcmlzb24gd29ya3MuCiAgICAgICAgICAgICBtc2cub2JqID0gc3BlZWNoSXRlbS5nZXRDYWxsZXJJZGVudGl0eSgpOworCiAgICAgICAgICAgICBpZiAoc2VuZE1lc3NhZ2UobXNnKSkgewogICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guU1VDQ0VTUzsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgTG9nLncoVEFHLCAiU3ludGhUaHJlYWQgaGFzIHF1aXQiKTsKICAgICAgICAgICAgICAgICBpZiAodXR0ZXJlbmNlUHJvZ3Jlc3MgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICB1dHRlcmVuY2VQcm9ncmVzcy5kaXNwYXRjaE9uRXJyb3IoKTsKKyAgICAgICAgICAgICAgICAgICAgdXR0ZXJlbmNlUHJvZ3Jlc3MuZGlzcGF0Y2hPbkVycm9yKFRleHRUb1NwZWVjaENsaWVudC5TdGF0dXMuRVJST1JfU0VSVklDRSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CiAgICAgICAgICAgICB9CkBAIC0zOTksOSArNjM0LDExIEBACiAgICAgfQogCiAgICAgaW50ZXJmYWNlIFV0dGVyYW5jZVByb2dyZXNzRGlzcGF0Y2hlciB7Ci0gICAgICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoT25Eb25lKCk7CisgICAgICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoT25GYWxsYmFjaygpOworICAgICAgICBwdWJsaWMgdm9pZCBkaXNwYXRjaE9uU3RvcCgpOworICAgICAgICBwdWJsaWMgdm9pZCBkaXNwYXRjaE9uU3VjY2VzcygpOwogICAgICAgICBwdWJsaWMgdm9pZCBkaXNwYXRjaE9uU3RhcnQoKTsKLSAgICAgICAgcHVibGljIHZvaWQgZGlzcGF0Y2hPbkVycm9yKCk7CisgICAgICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoT25FcnJvcihpbnQgZXJyb3JDb2RlKTsKICAgICB9CiAKICAgICAvKioKQEAgLTQwOSwxNSArNjQ2LDEzIEBACiAgICAgICovCiAgICAgcHJpdmF0ZSBhYnN0cmFjdCBjbGFzcyBTcGVlY2hJdGVtIHsKICAgICAgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3QgbUNhbGxlcklkZW50aXR5OwotICAgICAgICBwcm90ZWN0ZWQgZmluYWwgQnVuZGxlIG1QYXJhbXM7CiAgICAgICAgIHByaXZhdGUgZmluYWwgaW50IG1DYWxsZXJVaWQ7CiAgICAgICAgIHByaXZhdGUgZmluYWwgaW50IG1DYWxsZXJQaWQ7CiAgICAgICAgIHByaXZhdGUgYm9vbGVhbiBtU3RhcnRlZCA9IGZhbHNlOwogICAgICAgICBwcml2YXRlIGJvb2xlYW4gbVN0b3BwZWQgPSBmYWxzZTsKIAotICAgICAgICBwdWJsaWMgU3BlZWNoSXRlbShPYmplY3QgY2FsbGVyLCBpbnQgY2FsbGVyVWlkLCBpbnQgY2FsbGVyUGlkLCBCdW5kbGUgcGFyYW1zKSB7CisgICAgICAgIHB1YmxpYyBTcGVlY2hJdGVtKE9iamVjdCBjYWxsZXIsIGludCBjYWxsZXJVaWQsIGludCBjYWxsZXJQaWQpIHsKICAgICAgICAgICAgIG1DYWxsZXJJZGVudGl0eSA9IGNhbGxlcjsKLSAgICAgICAgICAgIG1QYXJhbXMgPSBwYXJhbXM7CiAgICAgICAgICAgICBtQ2FsbGVyVWlkID0gY2FsbGVyVWlkOwogICAgICAgICAgICAgbUNhbGxlclBpZCA9IGNhbGxlclBpZDsKICAgICAgICAgfQpAQCAtNDQ2LDIwICs2ODEsMTggQEAKICAgICAgICAgICogTXVzdCBub3QgYmUgY2FsbGVkIG1vcmUgdGhhbiBvbmNlLgogICAgICAgICAgKgogICAgICAgICAgKiBPbmx5IGNhbGxlZCBvbiB0aGUgc3ludGhlc2lzIHRocmVhZC4KLSAgICAgICAgICoKLSAgICAgICAgICogQHJldHVybiB7QGxpbmsgVGV4dFRvU3BlZWNoI1NVQ0NFU1N9IG9yIHtAbGluayBUZXh0VG9TcGVlY2gjRVJST1J9LgogICAgICAgICAgKi8KLSAgICAgICAgcHVibGljIGludCBwbGF5KCkgeworICAgICAgICBwdWJsaWMgdm9pZCBwbGF5KCkgewogICAgICAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7CiAgICAgICAgICAgICAgICAgaWYgKG1TdGFydGVkKSB7CiAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oInBsYXkoKSBjYWxsZWQgdHdpY2UiKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgbVN0YXJ0ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHBsYXlJbXBsKCk7CisgICAgICAgICAgICBwbGF5SW1wbCgpOwogICAgICAgICB9CiAKLSAgICAgICAgcHJvdGVjdGVkIGFic3RyYWN0IGludCBwbGF5SW1wbCgpOworICAgICAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBwbGF5SW1wbCgpOwogCiAgICAgICAgIC8qKgogICAgICAgICAgKiBTdG9wcyB0aGUgc3BlZWNoIGl0ZW0uCkBAIC00ODUsMjAgKzcxOCwzNyBAQAogICAgIH0KIAogICAgIC8qKgotICAgICAqIEFuIGl0ZW0gaW4gdGhlIHN5bnRoIHRocmVhZCBxdWV1ZSB0aGF0IHByb2Nlc3MgdXR0ZXJhbmNlLgorICAgICAqIEFuIGl0ZW0gaW4gdGhlIHN5bnRoIHRocmVhZCBxdWV1ZSB0aGF0IHByb2Nlc3MgdXR0ZXJhbmNlIChhbmQgY2FsbCBiYWNrIHRvIGNsaWVudCBhYm91dAorICAgICAqIHByb2dyZXNzKS4KICAgICAgKi8KICAgICBwcml2YXRlIGFic3RyYWN0IGNsYXNzIFV0dGVyYW5jZVNwZWVjaEl0ZW0gZXh0ZW5kcyBTcGVlY2hJdGVtCiAgICAgICAgIGltcGxlbWVudHMgVXR0ZXJhbmNlUHJvZ3Jlc3NEaXNwYXRjaGVyICB7CiAKLSAgICAgICAgcHVibGljIFV0dGVyYW5jZVNwZWVjaEl0ZW0oT2JqZWN0IGNhbGxlciwgaW50IGNhbGxlclVpZCwgaW50IGNhbGxlclBpZCwgQnVuZGxlIHBhcmFtcykgewotICAgICAgICAgICAgc3VwZXIoY2FsbGVyLCBjYWxsZXJVaWQsIGNhbGxlclBpZCwgcGFyYW1zKTsKKyAgICAgICAgcHVibGljIFV0dGVyYW5jZVNwZWVjaEl0ZW0oT2JqZWN0IGNhbGxlciwgaW50IGNhbGxlclVpZCwgaW50IGNhbGxlclBpZCkgeworICAgICAgICAgICAgc3VwZXIoY2FsbGVyLCBjYWxsZXJVaWQsIGNhbGxlclBpZCk7CiAgICAgICAgIH0KIAogICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgZGlzcGF0Y2hPbkRvbmUoKSB7CisgICAgICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoT25TdWNjZXNzKCkgewogICAgICAgICAgICAgZmluYWwgU3RyaW5nIHV0dGVyYW5jZUlkID0gZ2V0VXR0ZXJhbmNlSWQoKTsKICAgICAgICAgICAgIGlmICh1dHRlcmFuY2VJZCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgbUNhbGxiYWNrcy5kaXNwYXRjaE9uRG9uZShnZXRDYWxsZXJJZGVudGl0eSgpLCB1dHRlcmFuY2VJZCk7CisgICAgICAgICAgICAgICAgbUNhbGxiYWNrcy5kaXNwYXRjaE9uU3VjY2VzcyhnZXRDYWxsZXJJZGVudGl0eSgpLCB1dHRlcmFuY2VJZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgZGlzcGF0Y2hPblN0b3AoKSB7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgdXR0ZXJhbmNlSWQgPSBnZXRVdHRlcmFuY2VJZCgpOworICAgICAgICAgICAgaWYgKHV0dGVyYW5jZUlkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2tzLmRpc3BhdGNoT25TdG9wKGdldENhbGxlcklkZW50aXR5KCksIHV0dGVyYW5jZUlkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBkaXNwYXRjaE9uRmFsbGJhY2soKSB7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgdXR0ZXJhbmNlSWQgPSBnZXRVdHRlcmFuY2VJZCgpOworICAgICAgICAgICAgaWYgKHV0dGVyYW5jZUlkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2tzLmRpc3BhdGNoT25GYWxsYmFjayhnZXRDYWxsZXJJZGVudGl0eSgpLCB1dHRlcmFuY2VJZCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtNTExLDQ0ICs3NjEsMjYwIEBACiAgICAgICAgIH0KIAogICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgZGlzcGF0Y2hPbkVycm9yKCkgeworICAgICAgICBwdWJsaWMgdm9pZCBkaXNwYXRjaE9uRXJyb3IoaW50IGVycm9yQ29kZSkgewogICAgICAgICAgICAgZmluYWwgU3RyaW5nIHV0dGVyYW5jZUlkID0gZ2V0VXR0ZXJhbmNlSWQoKTsKICAgICAgICAgICAgIGlmICh1dHRlcmFuY2VJZCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgbUNhbGxiYWNrcy5kaXNwYXRjaE9uRXJyb3IoZ2V0Q2FsbGVySWRlbnRpdHkoKSwgdXR0ZXJhbmNlSWQpOworICAgICAgICAgICAgICAgIG1DYWxsYmFja3MuZGlzcGF0Y2hPbkVycm9yKGdldENhbGxlcklkZW50aXR5KCksIHV0dGVyYW5jZUlkLCBlcnJvckNvZGUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgcHVibGljIGludCBnZXRTdHJlYW1UeXBlKCkgewotICAgICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtKEVuZ2luZS5LRVlfUEFSQU1fU1RSRUFNLCBFbmdpbmUuREVGQVVMVF9TVFJFQU0pOworICAgICAgICBhYnN0cmFjdCBwdWJsaWMgU3RyaW5nIGdldFV0dGVyYW5jZUlkKCk7CisKKyAgICAgICAgU3RyaW5nIGdldFN0cmluZ1BhcmFtKEJ1bmRsZSBwYXJhbXMsIFN0cmluZyBrZXksIFN0cmluZyBkZWZhdWx0VmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBwYXJhbXMgPT0gbnVsbCA/IGRlZmF1bHRWYWx1ZSA6IHBhcmFtcy5nZXRTdHJpbmcoa2V5LCBkZWZhdWx0VmFsdWUpOwogICAgICAgICB9CiAKLSAgICAgICAgcHVibGljIGZsb2F0IGdldFZvbHVtZSgpIHsKLSAgICAgICAgICAgIHJldHVybiBnZXRGbG9hdFBhcmFtKEVuZ2luZS5LRVlfUEFSQU1fVk9MVU1FLCBFbmdpbmUuREVGQVVMVF9WT0xVTUUpOworICAgICAgICBpbnQgZ2V0SW50UGFyYW0oQnVuZGxlIHBhcmFtcywgU3RyaW5nIGtleSwgaW50IGRlZmF1bHRWYWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIHBhcmFtcyA9PSBudWxsID8gZGVmYXVsdFZhbHVlIDogcGFyYW1zLmdldEludChrZXksIGRlZmF1bHRWYWx1ZSk7CiAgICAgICAgIH0KIAotICAgICAgICBwdWJsaWMgZmxvYXQgZ2V0UGFuKCkgewotICAgICAgICAgICAgcmV0dXJuIGdldEZsb2F0UGFyYW0oRW5naW5lLktFWV9QQVJBTV9QQU4sIEVuZ2luZS5ERUZBVUxUX1BBTik7CisgICAgICAgIGZsb2F0IGdldEZsb2F0UGFyYW0oQnVuZGxlIHBhcmFtcywgU3RyaW5nIGtleSwgZmxvYXQgZGVmYXVsdFZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gcGFyYW1zID09IG51bGwgPyBkZWZhdWx0VmFsdWUgOiBwYXJhbXMuZ2V0RmxvYXQoa2V5LCBkZWZhdWx0VmFsdWUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVXR0ZXJhbmNlU3BlZWNoSXRlbSBmb3IgVjEgQVBJIHNwZWVjaCBpdGVtcy4gVjEgQVBJIHNwZWVjaCBpdGVtcyBrZWVwCisgICAgICogc3ludGhlc2lzIHBhcmFtZXRlcnMgaW4gYSBzaW5nbGUgQnVuZGxlIHBhc3NlZCBhcyBwYXJhbWV0ZXIuIFRoaXMgY2xhc3MKKyAgICAgKiBhbGxvdyBzdWJjbGFzc2VzIHRvIGFjY2VzcyB0aGVtIGNvbnZlbmllbnRseS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGFic3RyYWN0IGNsYXNzIFNwZWVjaEl0ZW1WMSBleHRlbmRzIFV0dGVyYW5jZVNwZWVjaEl0ZW0geworICAgICAgICBwcm90ZWN0ZWQgZmluYWwgQnVuZGxlIG1QYXJhbXM7CisKKyAgICAgICAgU3BlZWNoSXRlbVYxKE9iamVjdCBjYWxsZXJJZGVudGl0eSwgaW50IGNhbGxlclVpZCwgaW50IGNhbGxlclBpZCwKKyAgICAgICAgICAgICAgICBCdW5kbGUgcGFyYW1zKSB7CisgICAgICAgICAgICBzdXBlcihjYWxsZXJJZGVudGl0eSwgY2FsbGVyVWlkLCBjYWxsZXJQaWQpOworICAgICAgICAgICAgbVBhcmFtcyA9IHBhcmFtczsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gaGFzTGFuZ3VhZ2UoKSB7CisgICAgICAgICAgICByZXR1cm4gIVRleHRVdGlscy5pc0VtcHR5KGdldFN0cmluZ1BhcmFtKG1QYXJhbXMsIEVuZ2luZS5LRVlfUEFSQU1fTEFOR1VBR0UsIG51bGwpKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBnZXRTcGVlY2hSYXRlKCkgeworICAgICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtKG1QYXJhbXMsIEVuZ2luZS5LRVlfUEFSQU1fUkFURSwgZ2V0RGVmYXVsdFNwZWVjaFJhdGUoKSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZ2V0UGl0Y2goKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW0obVBhcmFtcywgRW5naW5lLktFWV9QQVJBTV9QSVRDSCwgRW5naW5lLkRFRkFVTFRfUElUQ0gpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0VXR0ZXJhbmNlSWQoKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nUGFyYW0obVBhcmFtcywgRW5naW5lLktFWV9QQVJBTV9VVFRFUkFOQ0VfSUQsIG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGdldFN0cmVhbVR5cGUoKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW0obVBhcmFtcywgRW5naW5lLktFWV9QQVJBTV9TVFJFQU0sIEVuZ2luZS5ERUZBVUxUX1NUUkVBTSk7CisgICAgICAgIH0KKworICAgICAgICBmbG9hdCBnZXRWb2x1bWUoKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0RmxvYXRQYXJhbShtUGFyYW1zLCBFbmdpbmUuS0VZX1BBUkFNX1ZPTFVNRSwgRW5naW5lLkRFRkFVTFRfVk9MVU1FKTsKKyAgICAgICAgfQorCisgICAgICAgIGZsb2F0IGdldFBhbigpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRGbG9hdFBhcmFtKG1QYXJhbXMsIEVuZ2luZS5LRVlfUEFSQU1fUEFOLCBFbmdpbmUuREVGQVVMVF9QQU4pOworICAgICAgICB9CisgICAgfQorCisgICAgY2xhc3MgU3ludGhlc2lzU3BlZWNoSXRlbVYyIGV4dGVuZHMgVXR0ZXJhbmNlU3BlZWNoSXRlbSB7CisgICAgICAgIHByaXZhdGUgZmluYWwgU3ludGhlc2lzUmVxdWVzdFYyIG1TeW50aGVzaXNSZXF1ZXN0OworICAgICAgICBwcml2YXRlIEFic3RyYWN0U3ludGhlc2lzQ2FsbGJhY2sgbVN5bnRoZXNpc0NhbGxiYWNrOworICAgICAgICBwcml2YXRlIGZpbmFsIEV2ZW50TG9nZ2VyVjIgbUV2ZW50TG9nZ2VyOworCisgICAgICAgIHB1YmxpYyBTeW50aGVzaXNTcGVlY2hJdGVtVjIoT2JqZWN0IGNhbGxlcklkZW50aXR5LCBpbnQgY2FsbGVyVWlkLCBpbnQgY2FsbGVyUGlkLAorICAgICAgICAgICAgICAgIFN5bnRoZXNpc1JlcXVlc3RWMiBzeW50aGVzaXNSZXF1ZXN0KSB7CisgICAgICAgICAgICBzdXBlcihjYWxsZXJJZGVudGl0eSwgY2FsbGVyVWlkLCBjYWxsZXJQaWQpOworCisgICAgICAgICAgICBtU3ludGhlc2lzUmVxdWVzdCA9IHN5bnRoZXNpc1JlcXVlc3Q7CisgICAgICAgICAgICBtRXZlbnRMb2dnZXIgPSBuZXcgRXZlbnRMb2dnZXJWMihzeW50aGVzaXNSZXF1ZXN0LCBjYWxsZXJVaWQsIGNhbGxlclBpZCwKKyAgICAgICAgICAgICAgICAgICAgbVBhY2thZ2VOYW1lKTsKKworICAgICAgICAgICAgdXBkYXRlU3BlZWNoU3BlZWRQYXJhbShzeW50aGVzaXNSZXF1ZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCB1cGRhdGVTcGVlY2hTcGVlZFBhcmFtKFN5bnRoZXNpc1JlcXVlc3RWMiBzeW50aGVzaXNSZXF1ZXN0KSB7CisgICAgICAgICAgICBCdW5kbGUgdm9pY2VQYXJhbXMgPSBtU3ludGhlc2lzUmVxdWVzdC5nZXRWb2ljZVBhcmFtcygpOworCisgICAgICAgICAgICAvLyBJbmplY3QgZGVmYXVsdCBzcGVlY2ggc3BlZWQgaWYgbmVlZGVkCisgICAgICAgICAgICBpZiAodm9pY2VQYXJhbXMuY29udGFpbnNLZXkoVGV4dFRvU3BlZWNoQ2xpZW50LlBhcmFtcy5TUEVFQ0hfU1BFRUQpKSB7CisgICAgICAgICAgICAgICAgaWYgKHZvaWNlUGFyYW1zLmdldEZsb2F0KFRleHRUb1NwZWVjaENsaWVudC5QYXJhbXMuU1BFRUNIX1NQRUVEKSA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHZvaWNlUGFyYW1zLnB1dEZsb2F0KFRleHRUb1NwZWVjaENsaWVudC5QYXJhbXMuU1BFRUNIX1NQRUVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldERlZmF1bHRTcGVlY2hSYXRlKCkgLyAxMDAuMGYpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1ZhbGlkKCkgeworICAgICAgICAgICAgaWYgKG1TeW50aGVzaXNSZXF1ZXN0LmdldFRleHQoKSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAibnVsbCBzeW50aGVzaXMgdGV4dCIpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtU3ludGhlc2lzUmVxdWVzdC5nZXRUZXh0KCkubGVuZ3RoKCkgPj0gVGV4dFRvU3BlZWNoLmdldE1heFNwZWVjaElucHV0TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBMb2cudyhUQUcsICJUZXh0IHRvbyBsb25nOiAiICsgbVN5bnRoZXNpc1JlcXVlc3QuZ2V0VGV4dCgpLmxlbmd0aCgpICsgIiBjaGFycyIpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcGxheUltcGwoKSB7CisgICAgICAgICAgICBBYnN0cmFjdFN5bnRoZXNpc0NhbGxiYWNrIHN5bnRoZXNpc0NhbGxiYWNrOworICAgICAgICAgICAgaWYgKG1FdmVudExvZ2dlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbUV2ZW50TG9nZ2VyLm9uUmVxdWVzdFByb2Nlc3NpbmdTdGFydCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7CisgICAgICAgICAgICAgICAgLy8gc3RvcCgpIG1pZ2h0IGhhdmUgYmVlbiBjYWxsZWQgYmVmb3JlIHdlIGVudGVyIHRoaXMKKyAgICAgICAgICAgICAgICAvLyBzeW5jaHJvbml6ZWQgYmxvY2suCisgICAgICAgICAgICAgICAgaWYgKGlzU3RvcHBlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbVN5bnRoZXNpc0NhbGxiYWNrID0gY3JlYXRlU3ludGhlc2lzQ2FsbGJhY2soKTsKKyAgICAgICAgICAgICAgICBzeW50aGVzaXNDYWxsYmFjayA9IG1TeW50aGVzaXNDYWxsYmFjazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gR2V0IHZvaWNlIGluZm8KKyAgICAgICAgICAgIFZvaWNlSW5mbyB2b2ljZUluZm8gPSBnZXRWb2ljZXNJbmZvV2l0aE5hbWUobVN5bnRoZXNpc1JlcXVlc3QuZ2V0Vm9pY2VOYW1lKCkpOworICAgICAgICAgICAgaWYgKHZvaWNlSW5mbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gUHJpbWFyeSB2b2ljZQorICAgICAgICAgICAgICAgIFRleHRUb1NwZWVjaFNlcnZpY2UudGhpcy5vblN5bnRoZXNpemVUZXh0VjIobVN5bnRoZXNpc1JlcXVlc3QsIHZvaWNlSW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRoZXNpc0NhbGxiYWNrKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiVW5rbm93biB2b2ljZSBuYW1lOiIgKyBtU3ludGhlc2lzUmVxdWVzdC5nZXRWb2ljZU5hbWUoKSk7CisgICAgICAgICAgICAgICAgc3ludGhlc2lzQ2FsbGJhY2suZXJyb3IoVGV4dFRvU3BlZWNoQ2xpZW50LlN0YXR1cy5FUlJPUl9JTlZBTElEX1JFUVVFU1QpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBGaXggZm9yIGNhc2Ugd2hlcmUgY2xpZW50IGNhbGxlZCAuc3RhcnQoKSAmIC5lcnJvcigpLCBidXQgZGlkIG5vdCBjYWxsZWQgLmRvbmUoKQorICAgICAgICAgICAgaWYgKCFzeW50aGVzaXNDYWxsYmFjay5oYXNGaW5pc2hlZCgpKSB7CisgICAgICAgICAgICAgICAgc3ludGhlc2lzQ2FsbGJhY2suZG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHN0b3BJbXBsKCkgeworICAgICAgICAgICAgQWJzdHJhY3RTeW50aGVzaXNDYWxsYmFjayBzeW50aGVzaXNDYWxsYmFjazsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeworICAgICAgICAgICAgICAgIHN5bnRoZXNpc0NhbGxiYWNrID0gbVN5bnRoZXNpc0NhbGxiYWNrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN5bnRoZXNpc0NhbGxiYWNrICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgc3ludGhlc2lzIGNhbGxiYWNrIGlzIG51bGwsIGl0IGltcGxpZXMgdGhhdCB3ZSBoYXZlbid0CisgICAgICAgICAgICAgICAgLy8gZW50ZXJlZCB0aGUgc3luY2hyb25pemVkKHRoaXMpIGJsb2NrIGluIHBsYXlJbXBsIHdoaWNoIGluCisgICAgICAgICAgICAgICAgLy8gdHVybiBpbXBsaWVzIHRoYXQgc3ludGhlc2lzIHdvdWxkIG5vdCBoYXZlIHN0YXJ0ZWQuCisgICAgICAgICAgICAgICAgc3ludGhlc2lzQ2FsbGJhY2suc3RvcCgpOworICAgICAgICAgICAgICAgIFRleHRUb1NwZWVjaFNlcnZpY2UudGhpcy5vblN0b3AoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBBYnN0cmFjdFN5bnRoZXNpc0NhbGxiYWNrIGNyZWF0ZVN5bnRoZXNpc0NhbGxiYWNrKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQbGF5YmFja1N5bnRoZXNpc0NhbGxiYWNrKGdldFN0cmVhbVR5cGUoKSwgZ2V0Vm9sdW1lKCksIGdldFBhbigpLAorICAgICAgICAgICAgICAgICAgICBtQXVkaW9QbGF5YmFja0hhbmRsZXIsIHRoaXMsIGdldENhbGxlcklkZW50aXR5KCksIG1FdmVudExvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgaW1wbGVtZW50c1YyQVBJKCkpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBpbnQgZ2V0U3RyZWFtVHlwZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRJbnRQYXJhbShtU3ludGhlc2lzUmVxdWVzdC5nZXRBdWRpb1BhcmFtcygpLAorICAgICAgICAgICAgICAgICAgICBUZXh0VG9TcGVlY2hDbGllbnQuUGFyYW1zLkFVRElPX1BBUkFNX1NUUkVBTSwKKyAgICAgICAgICAgICAgICAgICAgRW5naW5lLkRFRkFVTFRfU1RSRUFNKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgZmxvYXQgZ2V0Vm9sdW1lKCkgeworICAgICAgICAgICAgcmV0dXJuIGdldEZsb2F0UGFyYW0obVN5bnRoZXNpc1JlcXVlc3QuZ2V0QXVkaW9QYXJhbXMoKSwKKyAgICAgICAgICAgICAgICAgICAgVGV4dFRvU3BlZWNoQ2xpZW50LlBhcmFtcy5BVURJT19QQVJBTV9WT0xVTUUsCisgICAgICAgICAgICAgICAgICAgIEVuZ2luZS5ERUZBVUxUX1ZPTFVNRSk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGZsb2F0IGdldFBhbigpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRGbG9hdFBhcmFtKG1TeW50aGVzaXNSZXF1ZXN0LmdldEF1ZGlvUGFyYW1zKCksCisgICAgICAgICAgICAgICAgICAgIFRleHRUb1NwZWVjaENsaWVudC5QYXJhbXMuQVVESU9fUEFSQU1fUEFOLAorICAgICAgICAgICAgICAgICAgICBFbmdpbmUuREVGQVVMVF9QQU4pOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0VXR0ZXJhbmNlSWQoKSB7CisgICAgICAgICAgICByZXR1cm4gbVN5bnRoZXNpc1JlcXVlc3QuZ2V0VXR0ZXJhbmNlSWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgY2xhc3MgU3ludGhlc2lzVG9GaWxlT3V0cHV0U3RyZWFtU3BlZWNoSXRlbVYyIGV4dGVuZHMgU3ludGhlc2lzU3BlZWNoSXRlbVYyIHsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBGaWxlT3V0cHV0U3RyZWFtIG1GaWxlT3V0cHV0U3RyZWFtOworCisgICAgICAgIHB1YmxpYyBTeW50aGVzaXNUb0ZpbGVPdXRwdXRTdHJlYW1TcGVlY2hJdGVtVjIoT2JqZWN0IGNhbGxlcklkZW50aXR5LCBpbnQgY2FsbGVyVWlkLAorICAgICAgICAgICAgICAgIGludCBjYWxsZXJQaWQsCisgICAgICAgICAgICAgICAgU3ludGhlc2lzUmVxdWVzdFYyIHN5bnRoZXNpc1JlcXVlc3QsCisgICAgICAgICAgICAgICAgRmlsZU91dHB1dFN0cmVhbSBmaWxlT3V0cHV0U3RyZWFtKSB7CisgICAgICAgICAgICBzdXBlcihjYWxsZXJJZGVudGl0eSwgY2FsbGVyVWlkLCBjYWxsZXJQaWQsIHN5bnRoZXNpc1JlcXVlc3QpOworICAgICAgICAgICAgbUZpbGVPdXRwdXRTdHJlYW0gPSBmaWxlT3V0cHV0U3RyZWFtOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHByb3RlY3RlZCBBYnN0cmFjdFN5bnRoZXNpc0NhbGxiYWNrIGNyZWF0ZVN5bnRoZXNpc0NhbGxiYWNrKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlU3ludGhlc2lzQ2FsbGJhY2sobUZpbGVPdXRwdXRTdHJlYW0uZ2V0Q2hhbm5lbCgpLAorICAgICAgICAgICAgICAgICAgICB0aGlzLCBnZXRDYWxsZXJJZGVudGl0eSgpLCBpbXBsZW1lbnRzVjJBUEkoKSk7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcGxheUltcGwoKSB7CisgICAgICAgICAgICBzdXBlci5wbGF5SW1wbCgpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgbUZpbGVPdXRwdXRTdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgIH0gY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICBMb2cudyhUQUcsICJGYWlsZWQgdG8gY2xvc2Ugb3V0cHV0IGZpbGUiLCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgY2xhc3MgQXVkaW9TcGVlY2hJdGVtVjIgZXh0ZW5kcyBVdHRlcmFuY2VTcGVlY2hJdGVtIHsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBBdWRpb1BsYXliYWNrUXVldWVJdGVtIG1JdGVtOworICAgICAgICBwcml2YXRlIGZpbmFsIEJ1bmRsZSBtQXVkaW9QYXJhbXM7CisgICAgICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG1VdHRlcmFuY2VJZDsKKworICAgICAgICBwdWJsaWMgQXVkaW9TcGVlY2hJdGVtVjIoT2JqZWN0IGNhbGxlcklkZW50aXR5LCBpbnQgY2FsbGVyVWlkLCBpbnQgY2FsbGVyUGlkLAorICAgICAgICAgICAgICAgIFN0cmluZyB1dHRlcmFuY2VJZCwgQnVuZGxlIGF1ZGlvUGFyYW1zLCBVcmkgdXJpKSB7CisgICAgICAgICAgICBzdXBlcihjYWxsZXJJZGVudGl0eSwgY2FsbGVyVWlkLCBjYWxsZXJQaWQpOworICAgICAgICAgICAgbVV0dGVyYW5jZUlkID0gdXR0ZXJhbmNlSWQ7CisgICAgICAgICAgICBtQXVkaW9QYXJhbXMgPSBhdWRpb1BhcmFtczsKKyAgICAgICAgICAgIG1JdGVtID0gbmV3IEF1ZGlvUGxheWJhY2tRdWV1ZUl0ZW0odGhpcywgZ2V0Q2FsbGVySWRlbnRpdHkoKSwKKyAgICAgICAgICAgICAgICAgICAgVGV4dFRvU3BlZWNoU2VydmljZS50aGlzLCB1cmksIGdldFN0cmVhbVR5cGUoKSk7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNWYWxpZCgpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHBsYXlJbXBsKCkgeworICAgICAgICAgICAgbUF1ZGlvUGxheWJhY2tIYW5kbGVyLmVucXVldWUobUl0ZW0pOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHN0b3BJbXBsKCkgeworICAgICAgICAgICAgLy8gRG8gbm90aGluZy4KKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0U3RyZWFtVHlwZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBtQXVkaW9QYXJhbXMuZ2V0SW50KFRleHRUb1NwZWVjaENsaWVudC5QYXJhbXMuQVVESU9fUEFSQU1fU1RSRUFNKTsKICAgICAgICAgfQogCiAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0VXR0ZXJhbmNlSWQoKSB7Ci0gICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nUGFyYW0oRW5naW5lLktFWV9QQVJBTV9VVFRFUkFOQ0VfSUQsIG51bGwpOworICAgICAgICAgICAgcmV0dXJuIG1VdHRlcmFuY2VJZDsKICAgICAgICAgfQotCi0gICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0U3RyaW5nUGFyYW0oU3RyaW5nIGtleSwgU3RyaW5nIGRlZmF1bHRWYWx1ZSkgewotICAgICAgICAgICAgcmV0dXJuIG1QYXJhbXMgPT0gbnVsbCA/IGRlZmF1bHRWYWx1ZSA6IG1QYXJhbXMuZ2V0U3RyaW5nKGtleSwgZGVmYXVsdFZhbHVlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0SW50UGFyYW0oU3RyaW5nIGtleSwgaW50IGRlZmF1bHRWYWx1ZSkgewotICAgICAgICAgICAgcmV0dXJuIG1QYXJhbXMgPT0gbnVsbCA/IGRlZmF1bHRWYWx1ZSA6IG1QYXJhbXMuZ2V0SW50KGtleSwgZGVmYXVsdFZhbHVlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHByb3RlY3RlZCBmbG9hdCBnZXRGbG9hdFBhcmFtKFN0cmluZyBrZXksIGZsb2F0IGRlZmF1bHRWYWx1ZSkgewotICAgICAgICAgICAgcmV0dXJuIG1QYXJhbXMgPT0gbnVsbCA/IGRlZmF1bHRWYWx1ZSA6IG1QYXJhbXMuZ2V0RmxvYXQoa2V5LCBkZWZhdWx0VmFsdWUpOwotICAgICAgICB9Ci0KICAgICB9CiAKLSAgICBjbGFzcyBTeW50aGVzaXNTcGVlY2hJdGVtIGV4dGVuZHMgVXR0ZXJhbmNlU3BlZWNoSXRlbSB7CisKKyAgICBjbGFzcyBTeW50aGVzaXNTcGVlY2hJdGVtVjEgZXh0ZW5kcyBTcGVlY2hJdGVtVjEgewogICAgICAgICAvLyBOZXZlciBudWxsLgogICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtVGV4dDsKICAgICAgICAgcHJpdmF0ZSBmaW5hbCBTeW50aGVzaXNSZXF1ZXN0IG1TeW50aGVzaXNSZXF1ZXN0OwpAQCAtNTU2LDEwICsxMDIyLDEwIEBACiAgICAgICAgIC8vIE5vbiBudWxsIGFmdGVyIHN5bnRoZXNpcyBoYXMgc3RhcnRlZCwgYW5kIGFsbCBhY2Nlc3NlcwogICAgICAgICAvLyBndWFyZGVkIGJ5ICd0aGlzJy4KICAgICAgICAgcHJpdmF0ZSBBYnN0cmFjdFN5bnRoZXNpc0NhbGxiYWNrIG1TeW50aGVzaXNDYWxsYmFjazsKLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBFdmVudExvZ2dlciBtRXZlbnRMb2dnZXI7CisgICAgICAgIHByaXZhdGUgZmluYWwgRXZlbnRMb2dnZXJWMSBtRXZlbnRMb2dnZXI7CiAgICAgICAgIHByaXZhdGUgZmluYWwgaW50IG1DYWxsZXJVaWQ7CiAKLSAgICAgICAgcHVibGljIFN5bnRoZXNpc1NwZWVjaEl0ZW0oT2JqZWN0IGNhbGxlcklkZW50aXR5LCBpbnQgY2FsbGVyVWlkLCBpbnQgY2FsbGVyUGlkLAorICAgICAgICBwdWJsaWMgU3ludGhlc2lzU3BlZWNoSXRlbVYxKE9iamVjdCBjYWxsZXJJZGVudGl0eSwgaW50IGNhbGxlclVpZCwgaW50IGNhbGxlclBpZCwKICAgICAgICAgICAgICAgICBCdW5kbGUgcGFyYW1zLCBTdHJpbmcgdGV4dCkgewogICAgICAgICAgICAgc3VwZXIoY2FsbGVySWRlbnRpdHksIGNhbGxlclVpZCwgY2FsbGVyUGlkLCBwYXJhbXMpOwogICAgICAgICAgICAgbVRleHQgPSB0ZXh0OwpAQCAtNTY3LDcgKzEwMzMsNyBAQAogICAgICAgICAgICAgbVN5bnRoZXNpc1JlcXVlc3QgPSBuZXcgU3ludGhlc2lzUmVxdWVzdChtVGV4dCwgbVBhcmFtcyk7CiAgICAgICAgICAgICBtRGVmYXVsdExvY2FsZSA9IGdldFNldHRpbmdzTG9jYWxlKCk7CiAgICAgICAgICAgICBzZXRSZXF1ZXN0UGFyYW1zKG1TeW50aGVzaXNSZXF1ZXN0KTsKLSAgICAgICAgICAgIG1FdmVudExvZ2dlciA9IG5ldyBFdmVudExvZ2dlcihtU3ludGhlc2lzUmVxdWVzdCwgY2FsbGVyVWlkLCBjYWxsZXJQaWQsCisgICAgICAgICAgICBtRXZlbnRMb2dnZXIgPSBuZXcgRXZlbnRMb2dnZXJWMShtU3ludGhlc2lzUmVxdWVzdCwgY2FsbGVyVWlkLCBjYWxsZXJQaWQsCiAgICAgICAgICAgICAgICAgICAgIG1QYWNrYWdlTmFtZSk7CiAgICAgICAgIH0KIApAQCAtNTg5LDI1ICsxMDU1LDMwIEBACiAgICAgICAgIH0KIAogICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHJvdGVjdGVkIGludCBwbGF5SW1wbCgpIHsKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcGxheUltcGwoKSB7CiAgICAgICAgICAgICBBYnN0cmFjdFN5bnRoZXNpc0NhbGxiYWNrIHN5bnRoZXNpc0NhbGxiYWNrOwogICAgICAgICAgICAgbUV2ZW50TG9nZ2VyLm9uUmVxdWVzdFByb2Nlc3NpbmdTdGFydCgpOwogICAgICAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7CiAgICAgICAgICAgICAgICAgLy8gc3RvcCgpIG1pZ2h0IGhhdmUgYmVlbiBjYWxsZWQgYmVmb3JlIHdlIGVudGVyIHRoaXMKICAgICAgICAgICAgICAgICAvLyBzeW5jaHJvbml6ZWQgYmxvY2suCiAgICAgICAgICAgICAgICAgaWYgKGlzU3RvcHBlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgbVN5bnRoZXNpc0NhbGxiYWNrID0gY3JlYXRlU3ludGhlc2lzQ2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICBzeW50aGVzaXNDYWxsYmFjayA9IG1TeW50aGVzaXNDYWxsYmFjazsKICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgVGV4dFRvU3BlZWNoU2VydmljZS50aGlzLm9uU3ludGhlc2l6ZVRleHQobVN5bnRoZXNpc1JlcXVlc3QsIHN5bnRoZXNpc0NhbGxiYWNrKTsKLSAgICAgICAgICAgIHJldHVybiBzeW50aGVzaXNDYWxsYmFjay5pc0RvbmUoKSA/IFRleHRUb1NwZWVjaC5TVUNDRVNTIDogVGV4dFRvU3BlZWNoLkVSUk9SOworCisgICAgICAgICAgICAvLyBGaXggZm9yIGNhc2Ugd2hlcmUgY2xpZW50IGNhbGxlZCAuc3RhcnQoKSAmIC5lcnJvcigpLCBidXQgZGlkIG5vdCBjYWxsZWQgLmRvbmUoKQorICAgICAgICAgICAgaWYgKHN5bnRoZXNpc0NhbGxiYWNrLmhhc1N0YXJ0ZWQoKSAmJiAhc3ludGhlc2lzQ2FsbGJhY2suaGFzRmluaXNoZWQoKSkgeworICAgICAgICAgICAgICAgIHN5bnRoZXNpc0NhbGxiYWNrLmRvbmUoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIHByb3RlY3RlZCBBYnN0cmFjdFN5bnRoZXNpc0NhbGxiYWNrIGNyZWF0ZVN5bnRoZXNpc0NhbGxiYWNrKCkgewogICAgICAgICAgICAgcmV0dXJuIG5ldyBQbGF5YmFja1N5bnRoZXNpc0NhbGxiYWNrKGdldFN0cmVhbVR5cGUoKSwgZ2V0Vm9sdW1lKCksIGdldFBhbigpLAotICAgICAgICAgICAgICAgICAgICBtQXVkaW9QbGF5YmFja0hhbmRsZXIsIHRoaXMsIGdldENhbGxlcklkZW50aXR5KCksIG1FdmVudExvZ2dlcik7CisgICAgICAgICAgICAgICAgICAgIG1BdWRpb1BsYXliYWNrSGFuZGxlciwgdGhpcywgZ2V0Q2FsbGVySWRlbnRpdHkoKSwgbUV2ZW50TG9nZ2VyLCBmYWxzZSk7CiAgICAgICAgIH0KIAogICAgICAgICBwcml2YXRlIHZvaWQgc2V0UmVxdWVzdFBhcmFtcyhTeW50aGVzaXNSZXF1ZXN0IHJlcXVlc3QpIHsKQEAgLTYzMiwzNyArMTEwMywyNSBAQAogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpIHsKLSAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmdQYXJhbShFbmdpbmUuS0VZX1BBUkFNX0xBTkdVQUdFLCBtRGVmYXVsdExvY2FsZVswXSk7Ci0gICAgICAgIH0KLQotICAgICAgICBwcml2YXRlIGJvb2xlYW4gaGFzTGFuZ3VhZ2UoKSB7Ci0gICAgICAgICAgICByZXR1cm4gIVRleHRVdGlscy5pc0VtcHR5KGdldFN0cmluZ1BhcmFtKEVuZ2luZS5LRVlfUEFSQU1fTEFOR1VBR0UsIG51bGwpKTsKLSAgICAgICAgfQotCiAgICAgICAgIHByaXZhdGUgU3RyaW5nIGdldENvdW50cnkoKSB7CiAgICAgICAgICAgICBpZiAoIWhhc0xhbmd1YWdlKCkpIHJldHVybiBtRGVmYXVsdExvY2FsZVsxXTsKLSAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmdQYXJhbShFbmdpbmUuS0VZX1BBUkFNX0NPVU5UUlksICIiKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmdQYXJhbShtUGFyYW1zLCBFbmdpbmUuS0VZX1BBUkFNX0NPVU5UUlksICIiKTsKICAgICAgICAgfQogCiAgICAgICAgIHByaXZhdGUgU3RyaW5nIGdldFZhcmlhbnQoKSB7CiAgICAgICAgICAgICBpZiAoIWhhc0xhbmd1YWdlKCkpIHJldHVybiBtRGVmYXVsdExvY2FsZVsyXTsKLSAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmdQYXJhbShFbmdpbmUuS0VZX1BBUkFNX1ZBUklBTlQsICIiKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmdQYXJhbShtUGFyYW1zLCBFbmdpbmUuS0VZX1BBUkFNX1ZBUklBTlQsICIiKTsKICAgICAgICAgfQogCi0gICAgICAgIHByaXZhdGUgaW50IGdldFNwZWVjaFJhdGUoKSB7Ci0gICAgICAgICAgICByZXR1cm4gZ2V0SW50UGFyYW0oRW5naW5lLktFWV9QQVJBTV9SQVRFLCBnZXREZWZhdWx0U3BlZWNoUmF0ZSgpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGUgaW50IGdldFBpdGNoKCkgewotICAgICAgICAgICAgcmV0dXJuIGdldEludFBhcmFtKEVuZ2luZS5LRVlfUEFSQU1fUElUQ0gsIEVuZ2luZS5ERUZBVUxUX1BJVENIKTsKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmdQYXJhbShtUGFyYW1zLCBFbmdpbmUuS0VZX1BBUkFNX0xBTkdVQUdFLCBtRGVmYXVsdExvY2FsZVswXSk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwcml2YXRlIGNsYXNzIFN5bnRoZXNpc1RvRmlsZU91dHB1dFN0cmVhbVNwZWVjaEl0ZW0gZXh0ZW5kcyBTeW50aGVzaXNTcGVlY2hJdGVtIHsKKyAgICBwcml2YXRlIGNsYXNzIFN5bnRoZXNpc1RvRmlsZU91dHB1dFN0cmVhbVNwZWVjaEl0ZW1WMSBleHRlbmRzIFN5bnRoZXNpc1NwZWVjaEl0ZW1WMSB7CiAgICAgICAgIHByaXZhdGUgZmluYWwgRmlsZU91dHB1dFN0cmVhbSBtRmlsZU91dHB1dFN0cmVhbTsKIAotICAgICAgICBwdWJsaWMgU3ludGhlc2lzVG9GaWxlT3V0cHV0U3RyZWFtU3BlZWNoSXRlbShPYmplY3QgY2FsbGVySWRlbnRpdHksIGludCBjYWxsZXJVaWQsCisgICAgICAgIHB1YmxpYyBTeW50aGVzaXNUb0ZpbGVPdXRwdXRTdHJlYW1TcGVlY2hJdGVtVjEoT2JqZWN0IGNhbGxlcklkZW50aXR5LCBpbnQgY2FsbGVyVWlkLAogICAgICAgICAgICAgICAgIGludCBjYWxsZXJQaWQsIEJ1bmRsZSBwYXJhbXMsIFN0cmluZyB0ZXh0LCBGaWxlT3V0cHV0U3RyZWFtIGZpbGVPdXRwdXRTdHJlYW0pIHsKICAgICAgICAgICAgIHN1cGVyKGNhbGxlcklkZW50aXR5LCBjYWxsZXJVaWQsIGNhbGxlclBpZCwgcGFyYW1zLCB0ZXh0KTsKICAgICAgICAgICAgIG1GaWxlT3V0cHV0U3RyZWFtID0gZmlsZU91dHB1dFN0cmVhbTsKQEAgLTY3MCwzMCArMTEyOSwyNiBAQAogCiAgICAgICAgIEBPdmVycmlkZQogICAgICAgICBwcm90ZWN0ZWQgQWJzdHJhY3RTeW50aGVzaXNDYWxsYmFjayBjcmVhdGVTeW50aGVzaXNDYWxsYmFjaygpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN5bnRoZXNpc0NhbGxiYWNrKG1GaWxlT3V0cHV0U3RyZWFtLmdldENoYW5uZWwoKSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IEZpbGVTeW50aGVzaXNDYWxsYmFjayhtRmlsZU91dHB1dFN0cmVhbS5nZXRDaGFubmVsKCksCisgICAgICAgICAgICAgICAgICAgIHRoaXMsIGdldENhbGxlcklkZW50aXR5KCksIGZhbHNlKTsKICAgICAgICAgfQogCiAgICAgICAgIEBPdmVycmlkZQotICAgICAgICBwcm90ZWN0ZWQgaW50IHBsYXlJbXBsKCkgeworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBwbGF5SW1wbCgpIHsKICAgICAgICAgICAgIGRpc3BhdGNoT25TdGFydCgpOwotICAgICAgICAgICAgaW50IHN0YXR1cyA9IHN1cGVyLnBsYXlJbXBsKCk7Ci0gICAgICAgICAgICBpZiAoc3RhdHVzID09IFRleHRUb1NwZWVjaC5TVUNDRVNTKSB7Ci0gICAgICAgICAgICAgICAgZGlzcGF0Y2hPbkRvbmUoKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZGlzcGF0Y2hPbkVycm9yKCk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBzdXBlci5wbGF5SW1wbCgpOwogICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgbUZpbGVPdXRwdXRTdHJlYW0uY2xvc2UoKTsKICAgICAgICAgICAgIH0gY2F0Y2goSU9FeGNlcHRpb24gZSkgewogICAgICAgICAgICAgICBMb2cudyhUQUcsICJGYWlsZWQgdG8gY2xvc2Ugb3V0cHV0IGZpbGUiLCBlKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwcml2YXRlIGNsYXNzIEF1ZGlvU3BlZWNoSXRlbSBleHRlbmRzIFV0dGVyYW5jZVNwZWVjaEl0ZW0geworICAgIHByaXZhdGUgY2xhc3MgQXVkaW9TcGVlY2hJdGVtVjEgZXh0ZW5kcyBTcGVlY2hJdGVtVjEgewogICAgICAgICBwcml2YXRlIGZpbmFsIEF1ZGlvUGxheWJhY2tRdWV1ZUl0ZW0gbUl0ZW07Ci0gICAgICAgIHB1YmxpYyBBdWRpb1NwZWVjaEl0ZW0oT2JqZWN0IGNhbGxlcklkZW50aXR5LCBpbnQgY2FsbGVyVWlkLCBpbnQgY2FsbGVyUGlkLAorCisgICAgICAgIHB1YmxpYyBBdWRpb1NwZWVjaEl0ZW1WMShPYmplY3QgY2FsbGVySWRlbnRpdHksIGludCBjYWxsZXJVaWQsIGludCBjYWxsZXJQaWQsCiAgICAgICAgICAgICAgICAgQnVuZGxlIHBhcmFtcywgVXJpIHVyaSkgewogICAgICAgICAgICAgc3VwZXIoY2FsbGVySWRlbnRpdHksIGNhbGxlclVpZCwgY2FsbGVyUGlkLCBwYXJhbXMpOwogICAgICAgICAgICAgbUl0ZW0gPSBuZXcgQXVkaW9QbGF5YmFja1F1ZXVlSXRlbSh0aGlzLCBnZXRDYWxsZXJJZGVudGl0eSgpLApAQCAtNzA2LDIzICsxMTYxLDI5IEBACiAgICAgICAgIH0KIAogICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHJvdGVjdGVkIGludCBwbGF5SW1wbCgpIHsKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcGxheUltcGwoKSB7CiAgICAgICAgICAgICBtQXVkaW9QbGF5YmFja0hhbmRsZXIuZW5xdWV1ZShtSXRlbSk7Ci0gICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLlNVQ0NFU1M7CiAgICAgICAgIH0KIAogICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgcHJvdGVjdGVkIHZvaWQgc3RvcEltcGwoKSB7CiAgICAgICAgICAgICAvLyBEbyBub3RoaW5nLgogICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0VXR0ZXJhbmNlSWQoKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nUGFyYW0obVBhcmFtcywgRW5naW5lLktFWV9QQVJBTV9VVFRFUkFOQ0VfSUQsIG51bGwpOworICAgICAgICB9CiAgICAgfQogCiAgICAgcHJpdmF0ZSBjbGFzcyBTaWxlbmNlU3BlZWNoSXRlbSBleHRlbmRzIFV0dGVyYW5jZVNwZWVjaEl0ZW0gewogICAgICAgICBwcml2YXRlIGZpbmFsIGxvbmcgbUR1cmF0aW9uOworICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtVXR0ZXJhbmNlSWQ7CiAKICAgICAgICAgcHVibGljIFNpbGVuY2VTcGVlY2hJdGVtKE9iamVjdCBjYWxsZXJJZGVudGl0eSwgaW50IGNhbGxlclVpZCwgaW50IGNhbGxlclBpZCwKLSAgICAgICAgICAgICAgICBCdW5kbGUgcGFyYW1zLCBsb25nIGR1cmF0aW9uKSB7Ci0gICAgICAgICAgICBzdXBlcihjYWxsZXJJZGVudGl0eSwgY2FsbGVyVWlkLCBjYWxsZXJQaWQsIHBhcmFtcyk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHV0dGVyYW5jZUlkLCBsb25nIGR1cmF0aW9uKSB7CisgICAgICAgICAgICBzdXBlcihjYWxsZXJJZGVudGl0eSwgY2FsbGVyVWlkLCBjYWxsZXJQaWQpOworICAgICAgICAgICAgbVV0dGVyYW5jZUlkID0gdXR0ZXJhbmNlSWQ7CiAgICAgICAgICAgICBtRHVyYXRpb24gPSBkdXJhdGlvbjsKICAgICAgICAgfQogCkBAIC03MzIsMjYgKzExOTMsNTcgQEAKICAgICAgICAgfQogCiAgICAgICAgIEBPdmVycmlkZQotICAgICAgICBwcm90ZWN0ZWQgaW50IHBsYXlJbXBsKCkgeworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBwbGF5SW1wbCgpIHsKICAgICAgICAgICAgIG1BdWRpb1BsYXliYWNrSGFuZGxlci5lbnF1ZXVlKG5ldyBTaWxlbmNlUGxheWJhY2tRdWV1ZUl0ZW0oCiAgICAgICAgICAgICAgICAgICAgIHRoaXMsIGdldENhbGxlcklkZW50aXR5KCksIG1EdXJhdGlvbikpOwotICAgICAgICAgICAgcmV0dXJuIFRleHRUb1NwZWVjaC5TVUNDRVNTOwogICAgICAgICB9CiAKICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgIHByb3RlY3RlZCB2b2lkIHN0b3BJbXBsKCkgewotICAgICAgICAgICAgLy8gRG8gbm90aGluZywgaGFuZGxlZCBieSBBdWRpb1BsYXliYWNrSGFuZGxlciNzdG9wRm9yQXBwCisKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFV0dGVyYW5jZUlkKCkgeworICAgICAgICAgICAgcmV0dXJuIG1VdHRlcmFuY2VJZDsKICAgICAgICAgfQogICAgIH0KIAorICAgIC8qKgorICAgICAqIENhbGwge0BsaW5rIFRleHRUb1NwZWVjaFNlcnZpY2Ujb25Wb2ljZXNJbmZvQ2hhbmdlfSBvbiBzeW50aGVzaXMgdGhyZWFkLgorICAgICAqLworICAgIHByaXZhdGUgY2xhc3MgVm9pY2VzSW5mb0NoYW5nZUl0ZW0gZXh0ZW5kcyBTcGVlY2hJdGVtIHsKKyAgICAgICAgcHVibGljIFZvaWNlc0luZm9DaGFuZ2VJdGVtKCkgeworICAgICAgICAgICAgc3VwZXIobnVsbCwgMCwgMCk7IC8vIEl0J3MgbmV2ZXIgaW5pdGlhdGVkIGJ5IGFuIHVzZXIKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1ZhbGlkKCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcGxheUltcGwoKSB7CisgICAgICAgICAgICBUZXh0VG9TcGVlY2hTZXJ2aWNlLnRoaXMub25Wb2ljZXNJbmZvQ2hhbmdlKCk7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgc3RvcEltcGwoKSB7CisgICAgICAgICAgICAvLyBOby1vcAorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsbCB7QGxpbmsgVGV4dFRvU3BlZWNoU2VydmljZSNvbkxvYWRMYW5ndWFnZX0gb24gc3ludGggdGhyZWFkLgorICAgICAqLwogICAgIHByaXZhdGUgY2xhc3MgTG9hZExhbmd1YWdlSXRlbSBleHRlbmRzIFNwZWVjaEl0ZW0gewogICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtTGFuZ3VhZ2U7CiAgICAgICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG1Db3VudHJ5OwogICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtVmFyaWFudDsKIAogICAgICAgICBwdWJsaWMgTG9hZExhbmd1YWdlSXRlbShPYmplY3QgY2FsbGVySWRlbnRpdHksIGludCBjYWxsZXJVaWQsIGludCBjYWxsZXJQaWQsCi0gICAgICAgICAgICAgICAgQnVuZGxlIHBhcmFtcywgU3RyaW5nIGxhbmd1YWdlLCBTdHJpbmcgY291bnRyeSwgU3RyaW5nIHZhcmlhbnQpIHsKLSAgICAgICAgICAgIHN1cGVyKGNhbGxlcklkZW50aXR5LCBjYWxsZXJVaWQsIGNhbGxlclBpZCwgcGFyYW1zKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UsIFN0cmluZyBjb3VudHJ5LCBTdHJpbmcgdmFyaWFudCkgeworICAgICAgICAgICAgc3VwZXIoY2FsbGVySWRlbnRpdHksIGNhbGxlclVpZCwgY2FsbGVyUGlkKTsKICAgICAgICAgICAgIG1MYW5ndWFnZSA9IGxhbmd1YWdlOwogICAgICAgICAgICAgbUNvdW50cnkgPSBjb3VudHJ5OwogICAgICAgICAgICAgbVZhcmlhbnQgPSB2YXJpYW50OwpAQCAtNzYzLDE0ICsxMjU1LDggQEAKICAgICAgICAgfQogCiAgICAgICAgIEBPdmVycmlkZQotICAgICAgICBwcm90ZWN0ZWQgaW50IHBsYXlJbXBsKCkgewotICAgICAgICAgICAgaW50IHJlc3VsdCA9IFRleHRUb1NwZWVjaFNlcnZpY2UudGhpcy5vbkxvYWRMYW5ndWFnZShtTGFuZ3VhZ2UsIG1Db3VudHJ5LCBtVmFyaWFudCk7Ci0gICAgICAgICAgICBpZiAocmVzdWx0ID09IFRleHRUb1NwZWVjaC5MQU5HX0FWQUlMQUJMRSB8fAotICAgICAgICAgICAgICAgICAgICByZXN1bHQgPT0gVGV4dFRvU3BlZWNoLkxBTkdfQ09VTlRSWV9BVkFJTEFCTEUgfHwKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID09IFRleHRUb1NwZWVjaC5MQU5HX0NPVU5UUllfVkFSX0FWQUlMQUJMRSkgewotICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guU1VDQ0VTUzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CisgICAgICAgIHByb3RlY3RlZCB2b2lkIHBsYXlJbXBsKCkgeworICAgICAgICAgICAgVGV4dFRvU3BlZWNoU2VydmljZS50aGlzLm9uTG9hZExhbmd1YWdlKG1MYW5ndWFnZSwgbUNvdW50cnksIG1WYXJpYW50KTsKICAgICAgICAgfQogCiAgICAgICAgIEBPdmVycmlkZQpAQCAtODAwLDcgKzEyODYsNyBAQAogICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFNwZWVjaEl0ZW0gaXRlbSA9IG5ldyBTeW50aGVzaXNTcGVlY2hJdGVtKGNhbGxlciwKKyAgICAgICAgICAgIFNwZWVjaEl0ZW0gaXRlbSA9IG5ldyBTeW50aGVzaXNTcGVlY2hJdGVtVjEoY2FsbGVyLAogICAgICAgICAgICAgICAgICAgICBCaW5kZXIuZ2V0Q2FsbGluZ1VpZCgpLCBCaW5kZXIuZ2V0Q2FsbGluZ1BpZCgpLCBwYXJhbXMsIHRleHQpOwogICAgICAgICAgICAgcmV0dXJuIG1TeW50aEhhbmRsZXIuZW5xdWV1ZVNwZWVjaEl0ZW0ocXVldWVNb2RlLCBpdGVtKTsKICAgICAgICAgfQpAQCAtODE4LDcgKzEzMDQsNyBAQAogICAgICAgICAgICAgZmluYWwgUGFyY2VsRmlsZURlc2NyaXB0b3Igc2FtZUZpbGVEZXNjcmlwdG9yID0gUGFyY2VsRmlsZURlc2NyaXB0b3IuYWRvcHRGZCgKICAgICAgICAgICAgICAgICAgICAgZmlsZURlc2NyaXB0b3IuZGV0YWNoRmQoKSk7CiAKLSAgICAgICAgICAgIFNwZWVjaEl0ZW0gaXRlbSA9IG5ldyBTeW50aGVzaXNUb0ZpbGVPdXRwdXRTdHJlYW1TcGVlY2hJdGVtKGNhbGxlciwKKyAgICAgICAgICAgIFNwZWVjaEl0ZW0gaXRlbSA9IG5ldyBTeW50aGVzaXNUb0ZpbGVPdXRwdXRTdHJlYW1TcGVlY2hJdGVtVjEoY2FsbGVyLAogICAgICAgICAgICAgICAgICAgICBCaW5kZXIuZ2V0Q2FsbGluZ1VpZCgpLCBCaW5kZXIuZ2V0Q2FsbGluZ1BpZCgpLCBwYXJhbXMsIHRleHQsCiAgICAgICAgICAgICAgICAgICAgIG5ldyBQYXJjZWxGaWxlRGVzY3JpcHRvci5BdXRvQ2xvc2VPdXRwdXRTdHJlYW0oc2FtZUZpbGVEZXNjcmlwdG9yKSk7CiAgICAgICAgICAgICByZXR1cm4gbVN5bnRoSGFuZGxlci5lbnF1ZXVlU3BlZWNoSXRlbShUZXh0VG9TcGVlY2guUVVFVUVfQURELCBpdGVtKTsKQEAgLTgzMCwxOSArMTMxNiwxOSBAQAogICAgICAgICAgICAgICAgIHJldHVybiBUZXh0VG9TcGVlY2guRVJST1I7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFNwZWVjaEl0ZW0gaXRlbSA9IG5ldyBBdWRpb1NwZWVjaEl0ZW0oY2FsbGVyLAorICAgICAgICAgICAgU3BlZWNoSXRlbSBpdGVtID0gbmV3IEF1ZGlvU3BlZWNoSXRlbVYxKGNhbGxlciwKICAgICAgICAgICAgICAgICAgICAgQmluZGVyLmdldENhbGxpbmdVaWQoKSwgQmluZGVyLmdldENhbGxpbmdQaWQoKSwgcGFyYW1zLCBhdWRpb1VyaSk7CiAgICAgICAgICAgICByZXR1cm4gbVN5bnRoSGFuZGxlci5lbnF1ZXVlU3BlZWNoSXRlbShxdWV1ZU1vZGUsIGl0ZW0pOwogICAgICAgICB9CiAKICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBpbnQgcGxheVNpbGVuY2UoSUJpbmRlciBjYWxsZXIsIGxvbmcgZHVyYXRpb24sIGludCBxdWV1ZU1vZGUsIEJ1bmRsZSBwYXJhbXMpIHsKLSAgICAgICAgICAgIGlmICghY2hlY2tOb25OdWxsKGNhbGxlciwgcGFyYW1zKSkgeworICAgICAgICBwdWJsaWMgaW50IHBsYXlTaWxlbmNlKElCaW5kZXIgY2FsbGVyLCBsb25nIGR1cmF0aW9uLCBpbnQgcXVldWVNb2RlLCBTdHJpbmcgdXR0ZXJhbmNlSWQpIHsKKyAgICAgICAgICAgIGlmICghY2hlY2tOb25OdWxsKGNhbGxlcikpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLkVSUk9SOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBTcGVlY2hJdGVtIGl0ZW0gPSBuZXcgU2lsZW5jZVNwZWVjaEl0ZW0oY2FsbGVyLAotICAgICAgICAgICAgICAgICAgICBCaW5kZXIuZ2V0Q2FsbGluZ1VpZCgpLCBCaW5kZXIuZ2V0Q2FsbGluZ1BpZCgpLCBwYXJhbXMsIGR1cmF0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgQmluZGVyLmdldENhbGxpbmdVaWQoKSwgQmluZGVyLmdldENhbGxpbmdQaWQoKSwgdXR0ZXJhbmNlSWQsIGR1cmF0aW9uKTsKICAgICAgICAgICAgIHJldHVybiBtU3ludGhIYW5kbGVyLmVucXVldWVTcGVlY2hJdGVtKHF1ZXVlTW9kZSwgaXRlbSk7CiAgICAgICAgIH0KIApAQCAtOTEyLDcgKzEzOTgsNyBAQAogICAgICAgICAgICAgICAgICAgICByZXRWYWwgPT0gVGV4dFRvU3BlZWNoLkxBTkdfQ09VTlRSWV9WQVJfQVZBSUxBQkxFKSB7CiAKICAgICAgICAgICAgICAgICBTcGVlY2hJdGVtIGl0ZW0gPSBuZXcgTG9hZExhbmd1YWdlSXRlbShjYWxsZXIsIEJpbmRlci5nZXRDYWxsaW5nVWlkKCksCi0gICAgICAgICAgICAgICAgICAgIEJpbmRlci5nZXRDYWxsaW5nUGlkKCksIG51bGwsIGxhbmcsIGNvdW50cnksIHZhcmlhbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgQmluZGVyLmdldENhbGxpbmdQaWQoKSwgbGFuZywgY291bnRyeSwgdmFyaWFudCk7CiAKICAgICAgICAgICAgICAgICBpZiAobVN5bnRoSGFuZGxlci5lbnF1ZXVlU3BlZWNoSXRlbShUZXh0VG9TcGVlY2guUVVFVUVfQURELCBpdGVtKSAhPQogICAgICAgICAgICAgICAgICAgICAgICAgVGV4dFRvU3BlZWNoLlNVQ0NFU1MpIHsKQEAgLTk0Myw2ICsxNDI5LDU4IEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgTGlzdDxWb2ljZUluZm8+IGdldFZvaWNlc0luZm8oKSB7CisgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoU2VydmljZS50aGlzLmdldFZvaWNlc0luZm8oKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgaW50IHNwZWFrVjIoSUJpbmRlciBjYWxsaW5nSW5zdGFuY2UsCisgICAgICAgICAgICAgICAgU3ludGhlc2lzUmVxdWVzdFYyIHJlcXVlc3QpIHsKKyAgICAgICAgICAgIGlmICghY2hlY2tOb25OdWxsKGNhbGxpbmdJbnN0YW5jZSwgcmVxdWVzdCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVGV4dFRvU3BlZWNoLkVSUk9SOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTcGVlY2hJdGVtIGl0ZW0gPSBuZXcgU3ludGhlc2lzU3BlZWNoSXRlbVYyKGNhbGxpbmdJbnN0YW5jZSwKKyAgICAgICAgICAgICAgICAgICAgQmluZGVyLmdldENhbGxpbmdVaWQoKSwgQmluZGVyLmdldENhbGxpbmdQaWQoKSwgcmVxdWVzdCk7CisgICAgICAgICAgICByZXR1cm4gbVN5bnRoSGFuZGxlci5lbnF1ZXVlU3BlZWNoSXRlbShUZXh0VG9TcGVlY2guUVVFVUVfQURELCBpdGVtKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgaW50IHN5bnRoZXNpemVUb0ZpbGVEZXNjcmlwdG9yVjIoSUJpbmRlciBjYWxsaW5nSW5zdGFuY2UsCisgICAgICAgICAgICAgICAgUGFyY2VsRmlsZURlc2NyaXB0b3IgZmlsZURlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgU3ludGhlc2lzUmVxdWVzdFYyIHJlcXVlc3QpIHsKKyAgICAgICAgICAgIGlmICghY2hlY2tOb25OdWxsKGNhbGxpbmdJbnN0YW5jZSwgcmVxdWVzdCwgZmlsZURlc2NyaXB0b3IpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFRleHRUb1NwZWVjaC5FUlJPUjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSW4gdGVzdCBlbnYsIFBhcmNlbEZpbGVEZXNjcmlwdG9yIGluc3RhbmNlIG1heSBiZSBFWEFDVExZIHRoZSBzYW1lCisgICAgICAgICAgICAvLyBvbmUgdGhhdCBpcyB1c2VkIGJ5IGNsaWVudC4gQW5kIGl0IHdpbGwgYmUgY2xvc2VkIGJ5IGEgY2xpZW50LCB0aHVzCisgICAgICAgICAgICAvLyBwcmV2ZW50aW5nIHVzIGZyb20gd3JpdGluZyBhbnl0aGluZyB0byBpdC4KKyAgICAgICAgICAgIGZpbmFsIFBhcmNlbEZpbGVEZXNjcmlwdG9yIHNhbWVGaWxlRGVzY3JpcHRvciA9IFBhcmNlbEZpbGVEZXNjcmlwdG9yLmFkb3B0RmQoCisgICAgICAgICAgICAgICAgICAgIGZpbGVEZXNjcmlwdG9yLmRldGFjaEZkKCkpOworCisgICAgICAgICAgICBTcGVlY2hJdGVtIGl0ZW0gPSBuZXcgU3ludGhlc2lzVG9GaWxlT3V0cHV0U3RyZWFtU3BlZWNoSXRlbVYyKGNhbGxpbmdJbnN0YW5jZSwKKyAgICAgICAgICAgICAgICAgICAgQmluZGVyLmdldENhbGxpbmdVaWQoKSwgQmluZGVyLmdldENhbGxpbmdQaWQoKSwgcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFBhcmNlbEZpbGVEZXNjcmlwdG9yLkF1dG9DbG9zZU91dHB1dFN0cmVhbShzYW1lRmlsZURlc2NyaXB0b3IpKTsKKyAgICAgICAgICAgIHJldHVybiBtU3ludGhIYW5kbGVyLmVucXVldWVTcGVlY2hJdGVtKFRleHRUb1NwZWVjaC5RVUVVRV9BREQsIGl0ZW0pOworCisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIGludCBwbGF5QXVkaW9WMigKKyAgICAgICAgICAgICAgICBJQmluZGVyIGNhbGxpbmdJbnN0YW5jZSwgVXJpIGF1ZGlvVXJpLCBTdHJpbmcgdXR0ZXJhbmNlSWQsCisgICAgICAgICAgICAgICAgQnVuZGxlIHN5c3RlbVBhcmFtZXRlcnMpIHsKKyAgICAgICAgICAgIGlmICghY2hlY2tOb25OdWxsKGNhbGxpbmdJbnN0YW5jZSwgYXVkaW9VcmksIHN5c3RlbVBhcmFtZXRlcnMpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFRleHRUb1NwZWVjaC5FUlJPUjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3BlZWNoSXRlbSBpdGVtID0gbmV3IEF1ZGlvU3BlZWNoSXRlbVYyKGNhbGxpbmdJbnN0YW5jZSwKKyAgICAgICAgICAgICAgICAgICAgQmluZGVyLmdldENhbGxpbmdVaWQoKSwgQmluZGVyLmdldENhbGxpbmdQaWQoKSwgdXR0ZXJhbmNlSWQsIHN5c3RlbVBhcmFtZXRlcnMsCisgICAgICAgICAgICAgICAgICAgIGF1ZGlvVXJpKTsKKyAgICAgICAgICAgIHJldHVybiBtU3ludGhIYW5kbGVyLmVucXVldWVTcGVlY2hJdGVtKFRleHRUb1NwZWVjaC5RVUVVRV9BREQsIGl0ZW0pOworICAgICAgICB9CiAgICAgfTsKIAogICAgIHByaXZhdGUgY2xhc3MgQ2FsbGJhY2tNYXAgZXh0ZW5kcyBSZW1vdGVDYWxsYmFja0xpc3Q8SVRleHRUb1NwZWVjaENhbGxiYWNrPiB7CkBAIC05NjQsMTEgKzE1MDIsMzEgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoT25Eb25lKE9iamVjdCBjYWxsZXJJZGVudGl0eSwgU3RyaW5nIHV0dGVyYW5jZUlkKSB7CisgICAgICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoT25GYWxsYmFjayhPYmplY3QgY2FsbGVySWRlbnRpdHksIFN0cmluZyB1dHRlcmFuY2VJZCkgewogICAgICAgICAgICAgSVRleHRUb1NwZWVjaENhbGxiYWNrIGNiID0gZ2V0Q2FsbGJhY2tGb3IoY2FsbGVySWRlbnRpdHkpOwogICAgICAgICAgICAgaWYgKGNiID09IG51bGwpIHJldHVybjsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgY2Iub25Eb25lKHV0dGVyYW5jZUlkKTsKKyAgICAgICAgICAgICAgICBjYi5vbkZhbGxiYWNrKHV0dGVyYW5jZUlkKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFJlbW90ZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiQ2FsbGJhY2sgb25GYWxsYmFjayBmYWlsZWQ6ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoT25TdG9wKE9iamVjdCBjYWxsZXJJZGVudGl0eSwgU3RyaW5nIHV0dGVyYW5jZUlkKSB7CisgICAgICAgICAgICBJVGV4dFRvU3BlZWNoQ2FsbGJhY2sgY2IgPSBnZXRDYWxsYmFja0ZvcihjYWxsZXJJZGVudGl0eSk7CisgICAgICAgICAgICBpZiAoY2IgPT0gbnVsbCkgcmV0dXJuOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjYi5vblN0b3AodXR0ZXJhbmNlSWQpOworICAgICAgICAgICAgfSBjYXRjaCAoUmVtb3RlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJDYWxsYmFjayBvblN0b3AgZmFpbGVkOiAiICsgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBkaXNwYXRjaE9uU3VjY2VzcyhPYmplY3QgY2FsbGVySWRlbnRpdHksIFN0cmluZyB1dHRlcmFuY2VJZCkgeworICAgICAgICAgICAgSVRleHRUb1NwZWVjaENhbGxiYWNrIGNiID0gZ2V0Q2FsbGJhY2tGb3IoY2FsbGVySWRlbnRpdHkpOworICAgICAgICAgICAgaWYgKGNiID09IG51bGwpIHJldHVybjsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2Iub25TdWNjZXNzKHV0dGVyYW5jZUlkKTsKICAgICAgICAgICAgIH0gY2F0Y2ggKFJlbW90ZUV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiQ2FsbGJhY2sgb25Eb25lIGZhaWxlZDogIiArIGUpOwogICAgICAgICAgICAgfQpAQCAtOTg1LDExICsxNTQzLDEyIEBACiAKICAgICAgICAgfQogCi0gICAgICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoT25FcnJvcihPYmplY3QgY2FsbGVySWRlbnRpdHksIFN0cmluZyB1dHRlcmFuY2VJZCkgeworICAgICAgICBwdWJsaWMgdm9pZCBkaXNwYXRjaE9uRXJyb3IoT2JqZWN0IGNhbGxlcklkZW50aXR5LCBTdHJpbmcgdXR0ZXJhbmNlSWQsCisgICAgICAgICAgICAgICAgaW50IGVycm9yQ29kZSkgewogICAgICAgICAgICAgSVRleHRUb1NwZWVjaENhbGxiYWNrIGNiID0gZ2V0Q2FsbGJhY2tGb3IoY2FsbGVySWRlbnRpdHkpOwogICAgICAgICAgICAgaWYgKGNiID09IG51bGwpIHJldHVybjsKICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgY2Iub25FcnJvcih1dHRlcmFuY2VJZCk7CisgICAgICAgICAgICAgICAgY2Iub25FcnJvcih1dHRlcmFuY2VJZCwgZXJyb3JDb2RlKTsKICAgICAgICAgICAgIH0gY2F0Y2ggKFJlbW90ZUV4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiQ2FsbGJhY2sgb25FcnJvciBmYWlsZWQ6ICIgKyBlKTsKICAgICAgICAgICAgIH0KQEAgLTEwMDEsNyArMTU2MCw3IEBACiAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1DYWxsZXJUb0NhbGxiYWNrKSB7CiAgICAgICAgICAgICAgICAgbUNhbGxlclRvQ2FsbGJhY2sucmVtb3ZlKGNhbGxlcik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBtU3ludGhIYW5kbGVyLnN0b3BGb3JBcHAoY2FsbGVyKTsKKyAgICAgICAgICAgIC8vbVN5bnRoSGFuZGxlci5zdG9wRm9yQXBwKGNhbGxlcik7CiAgICAgICAgIH0KIAogICAgICAgICBAT3ZlcnJpZGUKQEAgLTEwMTIsNiArMTU3MSwxOCBAQAogICAgICAgICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgcHVibGljIHZvaWQgZGlzcGF0Y2hWb2ljZXNJbmZvQ2hhbmdlKExpc3Q8Vm9pY2VJbmZvPiB2b2ljZXNJbmZvKSB7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1DYWxsZXJUb0NhbGxiYWNrKSB7CisgICAgICAgICAgICAgICAgZm9yIChJVGV4dFRvU3BlZWNoQ2FsbGJhY2sgY2FsbGJhY2sgOiBtQ2FsbGVyVG9DYWxsYmFjay52YWx1ZXMoKSkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sub25Wb2ljZXNJbmZvQ2hhbmdlKHZvaWNlc0luZm8pOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChSZW1vdGVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiRmFpbGVkIHRvIHJlcXVlc3QgcmVjb25uZWN0IiwgZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICBwcml2YXRlIElUZXh0VG9TcGVlY2hDYWxsYmFjayBnZXRDYWxsYmFja0ZvcihPYmplY3QgY2FsbGVyKSB7CiAgICAgICAgICAgICBJVGV4dFRvU3BlZWNoQ2FsbGJhY2sgY2I7CiAgICAgICAgICAgICBJQmluZGVyIGFzQmluZGVyID0gKElCaW5kZXIpIGNhbGxlcjsKQEAgLTEwMjEsNyArMTU5Miw1IEBACiAKICAgICAgICAgICAgIHJldHVybiBjYjsKICAgICAgICAgfQotCiAgICAgfQotCiB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC9zcGVlY2gvdHRzL1ZvaWNlSW5mby5haWRsIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9Wb2ljZUluZm8uYWlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDA1ZjhiCi0tLSAvZGV2L251bGwKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9Wb2ljZUluZm8uYWlkbApAQCAtMCwwICsxLDIwIEBACisvKgorKioKKyoqIENvcHlyaWdodCAyMDEzLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworCitwYWNrYWdlIGFuZHJvaWQuc3BlZWNoLnR0czsKKworcGFyY2VsYWJsZSBWb2ljZUluZm87ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvc3BlZWNoL3R0cy9Wb2ljZUluZm8uamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvVm9pY2VJbmZvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZiOWE5NwotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3NwZWVjaC90dHMvVm9pY2VJbmZvLmphdmEKQEAgLTAsMCArMSwzMjUgQEAKK3BhY2thZ2UgYW5kcm9pZC5zcGVlY2gudHRzOworCitpbXBvcnQgYW5kcm9pZC5vcy5CdW5kbGU7CitpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWw7CitpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWxhYmxlOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBDaGFyYWN0ZXJpc3RpY3MgYW5kIGZlYXR1cmVzIG9mIGEgVGV4dC1Uby1TcGVlY2ggVm9pY2UuIEVhY2ggVFRTIEVuZ2luZSBjYW4gZXhwb3NlCisgKiBtdWx0aXBsZSB2b2ljZXMgZm9yIG11bHRpcGxlIGxvY2FsZXMsIHdpdGggZGlmZmVyZW50IHNldCBvZiBmZWF0dXJlcy4KKyAqCisgKiBFYWNoIFZvaWNlSW5mbyBoYXMgYW4gdW5pcXVlIG5hbWUuIFRoaXMgbmFtZSBjYW4gYmUgb2J0YWluZWQgdXNpbmcgdGhlIHtAbGluayAjZ2V0TmFtZSgpfSBtZXRob2QKKyAqIGFuZCB3aWxsIHBlcnNpc3QgdW50aWwgdGhlIGNsaWVudCBpcyBhc2tlZCB0byByZS1ldmFsdWF0ZSB0aGUgbGlzdCBvZiBhdmFpbGFibGUgdm9pY2VzIGluIHRoZQorICoge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudC5Db25uZWN0aW9uQ2FsbGJhY2tzI29uRW5naW5lU3RhdHVzQ2hhbmdlKGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuRW5naW5lU3RhdHVzKX0KKyAqIGNhbGxiYWNrLiBUaGUgbmFtZSBjYW4gYmUgdXNlZCB0byByZWZlcmVuY2UgYSBWb2ljZUluZm8gaW4gYW4gaW5zdGFuY2Ugb2Yge0BsaW5rIFJlcXVlc3RDb25maWd9OworICogdGhlIHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnQuUGFyYW1zI0ZBTExCQUNLX1ZPSUNFX05BTUV9IHZvaWNlIHBhcmFtZXRlciBpcyBhbiBleGFtcGxlIG9mIHRoaXMuCisgKiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHRoZSB2b2ljZSBuYW1lIG5ldmVyIGNoYW5nZSBkdXJpbmcgdGhlIFRUUyBzZXJ2aWNlIGxpZmV0aW1lLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVm9pY2VJbmZvIGltcGxlbWVudHMgUGFyY2VsYWJsZSB7CisgICAgLyoqIFZlcnkgbG93LCBidXQgc3RpbGwgaW50ZWxsaWdpYmxlIHF1YWxpdHkgb2Ygc3BlZWNoIHN5bnRoZXNpcyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFVQUxJVFlfVkVSWV9MT1cgPSAxMDA7CisKKyAgICAvKiogTG93LCBub3QgaHVtYW4tbGlrZSBxdWFsaXR5IG9mIHNwZWVjaCBzeW50aGVzaXMgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRVUFMSVRZX0xPVyA9IDIwMDsKKworICAgIC8qKiBOb3JtYWwgcXVhbGl0eSBvZiBzcGVlY2ggc3ludGhlc2lzICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUVVBTElUWV9OT1JNQUwgPSAzMDA7CisKKyAgICAvKiogSGlnaCwgaHVtYW4tbGlrZSBxdWFsaXR5IG9mIHNwZWVjaCBzeW50aGVzaXMgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRVUFMSVRZX0hJR0ggPSA0MDA7CisKKyAgICAvKiogVmVyeSBoaWdoLCBhbG1vc3QgaHVtYW4taW5kaXN0aW5ndWlzaGFibGUgcXVhbGl0eSBvZiBzcGVlY2ggc3ludGhlc2lzICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUVVBTElUWV9WRVJZX0hJR0ggPSA1MDA7CisKKyAgICAvKiogVmVyeSBsb3cgZXhwZWN0ZWQgc3ludGhlc2l6ZXIgbGF0ZW5jeSAoPCAyMG1zKSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVEVOQ1lfVkVSWV9MT1cgPSAxMDA7CisKKyAgICAvKiogTG93IGV4cGVjdGVkIHN5bnRoZXNpemVyIGxhdGVuY3kgKH4yMG1zKSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVEVOQ1lfTE9XID0gMjAwOworCisgICAgLyoqIE5vcm1hbCBleHBlY3RlZCBzeW50aGVzaXplciBsYXRlbmN5ICh+NTBtcykgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRFTkNZX05PUk1BTCA9IDMwMDsKKworICAgIC8qKiBOZXR3b3JrIGJhc2VkIGV4cGVjdGVkIHN5bnRoZXNpemVyIGxhdGVuY3kgKH4yMDBtcykgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRFTkNZX0hJR0ggPSA0MDA7CisKKyAgICAvKiogVmVyeSBzbG93IG5ldHdvcmsgYmFzZWQgZXhwZWN0ZWQgc3ludGhlc2l6ZXIgbGF0ZW5jeSAoPiAyMDBtcykgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRFTkNZX1ZFUllfSElHSCA9IDUwMDsKKworICAgIC8qKiBBZGRpdGlvbmFsIGZlYXR1cmUga2V5LCB3aXRoIHN0cmluZyB2YWx1ZSwgZ2VuZGVyIG9mIHRoZSBzcGVha2VyICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRkVBVFVSRV9TUEVBS0VSX0dFTkRFUiA9ICJzcGVha2VyR2VuZGVyIjsKKworICAgIC8qKiBBZGRpdGlvbmFsIGZlYXR1cmUga2V5LCB3aXRoIGludGVnZXIgdmFsdWUsIHNwZWFraW5nIHNwZWVkIGluIHdvcmRzIHBlciBtaW51dGUKKyAgICAgKiB3aGVuIHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnQuUGFyYW1zI1NQRUVDSF9TUEVFRH0gcGFyYW1ldGVyIGlzIHNldCB0byB7QGNvZGUgMS4wfSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZFQVRVUkVfV09SRFNfUEVSX01JTlVURSA9ICJ3b3Jkc1Blck1pbnV0ZSI7CisKKyAgICAvKioKKyAgICAgKiBBZGRpdGlvbmFsIGZlYXR1cmUga2V5LCB3aXRoIGJvb2xlYW4gdmFsdWUsIHRoYXQgaW5kaWNhdGVzIHRoYXQgdm9pY2UgbWF5IG5lZWQgdG8KKyAgICAgKiBkb3dubG9hZCBhZGRpdGlvbmFsIGRhdGEgaWYgdXNlZCBmb3Igc3ludGhlc2lzLgorICAgICAqCisgICAgICogTWFraW5nIGEgcmVxdWVzdCB3aXRoIGEgdm9pY2UgdGhhdCBoYXMgdGhpcyBmZWF0dXJlIG1heSByZXN1bHQgaW4gYQorICAgICAqIHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnQuU3RhdHVzI0VSUk9SX0RPV05MT0FESU5HX0FERElUSU9OQUxfREFUQX0gZXJyb3IuIEl0J3MgcmVjb21tZW5kZWQKKyAgICAgKiB0byBzZXQgdGhlIHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnQuUGFyYW1zI0ZBTExCQUNLX1ZPSUNFX05BTUV9IHZvaWNlIHBhcmFtZXRlciB0byByZWZlcmVuY2UKKyAgICAgKiBhIGZ1bGx5IGluc3RhbGxlZCB2b2ljZSAob3IgbmV0d29yayB2b2ljZSkgdGhhdCBjYW4gc2VydmUgYXMgcmVwbGFjZW1lbnQuCisgICAgICoKKyAgICAgKiBOb3RlOiBJdCdzIGEgZ29vZCBwcmFjdGljZSBmb3IgYSBUVFMgZW5naW5lIHRvIHByb3ZpZGUgYSBzZW5zaWJsZSBmYWxsYmFjayB2b2ljZSBhcyB0aGUKKyAgICAgKiBkZWZhdWx0IHZhbHVlIGZvciB7QGxpbmsgVGV4dFRvU3BlZWNoQ2xpZW50LlBhcmFtcyNGQUxMQkFDS19WT0lDRV9OQU1FfSBwYXJhbWV0ZXIgaWYgdGhpcworICAgICAqIGZlYXR1cmUgaXMgcHJlc2VudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBGRUFUVVJFX01BWV9BVVRPSU5TVEFMTCA9ICJtYXlBdXRvSW5zdGFsbCI7CisKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtTmFtZTsKKyAgICBwcml2YXRlIGZpbmFsIExvY2FsZSBtTG9jYWxlOworICAgIHByaXZhdGUgZmluYWwgaW50IG1RdWFsaXR5OworICAgIHByaXZhdGUgZmluYWwgaW50IG1MYXRlbmN5OworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBtUmVxdWlyZXNOZXR3b3JrQ29ubmVjdGlvbjsKKyAgICBwcml2YXRlIGZpbmFsIEJ1bmRsZSBtUGFyYW1zOworICAgIHByaXZhdGUgZmluYWwgQnVuZGxlIG1BZGRpdGlvbmFsRmVhdHVyZXM7CisKKyAgICBwcml2YXRlIFZvaWNlSW5mbyhQYXJjZWwgaW4pIHsKKyAgICAgICAgdGhpcy5tTmFtZSA9IGluLnJlYWRTdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nW10gbG9jYWxlc0RhdGEgPSBuZXcgU3RyaW5nWzNdOworICAgICAgICBpbi5yZWFkU3RyaW5nQXJyYXkobG9jYWxlc0RhdGEpOworICAgICAgICB0aGlzLm1Mb2NhbGUgPSBuZXcgTG9jYWxlKGxvY2FsZXNEYXRhWzBdLCBsb2NhbGVzRGF0YVsxXSwgbG9jYWxlc0RhdGFbMl0pOworCisgICAgICAgIHRoaXMubVF1YWxpdHkgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIHRoaXMubUxhdGVuY3kgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIHRoaXMubVJlcXVpcmVzTmV0d29ya0Nvbm5lY3Rpb24gPSAoaW4ucmVhZEJ5dGUoKSA9PSAxKTsKKworICAgICAgICB0aGlzLm1QYXJhbXMgPSBpbi5yZWFkQnVuZGxlKCk7CisgICAgICAgIHRoaXMubUFkZGl0aW9uYWxGZWF0dXJlcyA9IGluLnJlYWRCdW5kbGUoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFZvaWNlSW5mbyhTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGUsCisgICAgICAgICAgICBpbnQgcXVhbGl0eSwKKyAgICAgICAgICAgIGludCBsYXRlbmN5LAorICAgICAgICAgICAgYm9vbGVhbiByZXF1aXJlc05ldHdvcmtDb25uZWN0aW9uLAorICAgICAgICAgICAgQnVuZGxlIHBhcmFtcywKKyAgICAgICAgICAgIEJ1bmRsZSBhZGRpdGlvbmFsRmVhdHVyZXMpIHsKKyAgICAgICAgdGhpcy5tTmFtZSA9IG5hbWU7CisgICAgICAgIHRoaXMubUxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgdGhpcy5tUXVhbGl0eSA9IHF1YWxpdHk7CisgICAgICAgIHRoaXMubUxhdGVuY3kgPSBsYXRlbmN5OworICAgICAgICB0aGlzLm1SZXF1aXJlc05ldHdvcmtDb25uZWN0aW9uID0gcmVxdWlyZXNOZXR3b3JrQ29ubmVjdGlvbjsKKyAgICAgICAgdGhpcy5tUGFyYW1zID0gcGFyYW1zOworICAgICAgICB0aGlzLm1BZGRpdGlvbmFsRmVhdHVyZXMgPSBhZGRpdGlvbmFsRmVhdHVyZXM7CisgICAgfQorCisgICAgLyoqIEJ1aWxkZXIsIGFsbG93cyBUVFMgZW5naW5lcyB0byBjcmVhdGUgVm9pY2VJbmZvIGluc3RhbmNlcy4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIEJ1aWxkZXIgeworICAgICAgICBwcml2YXRlIFN0cmluZyBuYW1lOworICAgICAgICBwcml2YXRlIExvY2FsZSBsb2NhbGU7CisgICAgICAgIHByaXZhdGUgaW50IHF1YWxpdHkgPSBWb2ljZUluZm8uUVVBTElUWV9OT1JNQUw7CisgICAgICAgIHByaXZhdGUgaW50IGxhdGVuY3kgPSBWb2ljZUluZm8uTEFURU5DWV9OT1JNQUw7CisgICAgICAgIHByaXZhdGUgYm9vbGVhbiByZXF1aXJlc05ldHdvcmtDb25uZWN0aW9uOworICAgICAgICBwcml2YXRlIEJ1bmRsZSBwYXJhbXM7CisgICAgICAgIHByaXZhdGUgQnVuZGxlIGFkZGl0aW9uYWxGZWF0dXJlczsKKworICAgICAgICBwdWJsaWMgQnVpbGRlcigpIHsKKworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvcHkgZmllbGRzIGZyb20gZ2l2ZW4gVm9pY2VJbmZvIGluc3RhbmNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEJ1aWxkZXIoVm9pY2VJbmZvIHZvaWNlSW5mbykgeworICAgICAgICAgICAgdGhpcy5uYW1lID0gdm9pY2VJbmZvLm1OYW1lOworICAgICAgICAgICAgdGhpcy5sb2NhbGUgPSB2b2ljZUluZm8ubUxvY2FsZTsKKyAgICAgICAgICAgIHRoaXMucXVhbGl0eSA9IHZvaWNlSW5mby5tUXVhbGl0eTsKKyAgICAgICAgICAgIHRoaXMubGF0ZW5jeSA9IHZvaWNlSW5mby5tTGF0ZW5jeTsKKyAgICAgICAgICAgIHRoaXMucmVxdWlyZXNOZXR3b3JrQ29ubmVjdGlvbiA9IHZvaWNlSW5mby5tUmVxdWlyZXNOZXR3b3JrQ29ubmVjdGlvbjsKKyAgICAgICAgICAgIHRoaXMucGFyYW1zID0gKEJ1bmRsZSl2b2ljZUluZm8ubVBhcmFtcy5jbG9uZSgpOworICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsRmVhdHVyZXMgPSAoQnVuZGxlKSB2b2ljZUluZm8ubUFkZGl0aW9uYWxGZWF0dXJlcy5jbG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHMgdGhlIHZvaWNlJ3MgdW5pcXVlIG5hbWUuIEl0IHdpbGwgYmUgdXNlZCBieSBjbGllbnRzIHRvIHJlZmVyZW5jZSB0aGUgdm9pY2UgdXNlZCBieSBhCisgICAgICAgICAqIHJlcXVlc3QuCisgICAgICAgICAqCisgICAgICAgICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCBlYWNoIHZvaWNlIHVzZSB0aGUgc2FtZSBjb25zaXN0ZW50IG5hbWUgZHVyaW5nIHRoZSBUVFMgc2VydmljZQorICAgICAgICAgKiBsaWZldGltZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBCdWlsZGVyIHNldE5hbWUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXRzIHZvaWNlIGxvY2FsZS4gVGhpcyBoYXMgdG8gYmUgYSB2YWxpZCBsb2NhbGUsIGJ1aWx0IGZyb20gSVNPIDYzOS0xIGFuZCBJU08gMzE2Ni0xCisgICAgICAgICAqIHR3byBsZXR0ZXIgY29kZXMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgQnVpbGRlciBzZXRMb2NhbGUoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXRzIG1hcCBvZiBhbGwgYXZhaWxhYmxlIHJlcXVlc3QgcGFyYW1ldGVycyB3aXRoIHRoZWlyIGRlZmF1bHQgdmFsdWVzLgorICAgICAgICAgKiBTb21lIGNvbW1vbiBwYXJhbWV0ZXIgbmFtZXMgY2FuIGJlIGZvdW5kIGluIHtAbGluayBUZXh0VG9TcGVlY2hDbGllbnQuUGFyYW1zfSBzdGF0aWMKKyAgICAgICAgICogbWVtYmVycy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBCdWlsZGVyIHNldFBhcmFtc1dpdGhEZWZhdWx0cyhCdW5kbGUgcGFyYW1zKSB7CisgICAgICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtczsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHMgbWFwIG9mIGFkZGl0aW9uYWwgdm9pY2UgZmVhdHVyZXMuIFNvbWUgY29tbW9uIGZlYXR1cmUgbmFtZXMgY2FuIGJlIGZvdW5kIGluCisgICAgICAgICAqIHtAbGluayBWb2ljZUluZm99IHN0YXRpYyBtZW1iZXJzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEJ1aWxkZXIgc2V0QWRkaXRpb25hbEZlYXR1cmVzKEJ1bmRsZSBhZGRpdGlvbmFsRmVhdHVyZXMpIHsKKyAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbEZlYXR1cmVzID0gYWRkaXRpb25hbEZlYXR1cmVzOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogU2V0cyB0aGUgdm9pY2UgcXVhbGl0eSAoaGlnaGVyIGlzIGJldHRlcikuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgQnVpbGRlciBzZXRRdWFsaXR5KGludCBxdWFsaXR5KSB7CisgICAgICAgICAgICB0aGlzLnF1YWxpdHkgPSBxdWFsaXR5OworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogU2V0cyB0aGUgdm9pY2UgbGF0ZW5jeSAobG93ZXIgaXMgYmV0dGVyKS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBCdWlsZGVyIHNldExhdGVuY3koaW50IGxhdGVuY3kpIHsKKyAgICAgICAgICAgIHRoaXMubGF0ZW5jeSA9IGxhdGVuY3k7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXRzIHdoZXRoZXIgdGhlIHZvaWNlIHJlcXVpcmVzIG5ldHdvcmsgY29ubmVjdGlvbiB0byB3b3JrIHByb3Blcmx5LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEJ1aWxkZXIgc2V0UmVxdWlyZXNOZXR3b3JrQ29ubmVjdGlvbihib29sZWFuIHJlcXVpcmVzTmV0d29ya0Nvbm5lY3Rpb24pIHsKKyAgICAgICAgICAgIHRoaXMucmVxdWlyZXNOZXR3b3JrQ29ubmVjdGlvbiA9IHJlcXVpcmVzTmV0d29ya0Nvbm5lY3Rpb247CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBAcmV0dXJuIFRoZSBidWlsdCBWb2ljZUluZm8gaW5zdGFuY2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgVm9pY2VJbmZvIGJ1aWxkKCkgeworICAgICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCB8fCBuYW1lLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5hbWUgY2FuJ3QgYmUgbnVsbCBvciBlbXB0eSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTG9jYWxlIGNhbid0IGJlIG51bGwiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIG5ldyBWb2ljZUluZm8obmFtZSwgbG9jYWxlLCBxdWFsaXR5LCBsYXRlbmN5LAorICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNOZXR3b3JrQ29ubmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICgocGFyYW1zID09IG51bGwpID8gbmV3IEJ1bmRsZSgpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQnVuZGxlKXBhcmFtcy5jbG9uZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICgoYWRkaXRpb25hbEZlYXR1cmVzID09IG51bGwpID8gbmV3IEJ1bmRsZSgpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQnVuZGxlKWFkZGl0aW9uYWxGZWF0dXJlcy5jbG9uZSgpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAaGlkZQorICAgICAqLworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBpbnQgZGVzY3JpYmVDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGhpZGUKKyAgICAgKi8KKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVRvUGFyY2VsKFBhcmNlbCBkZXN0LCBpbnQgZmxhZ3MpIHsKKyAgICAgICAgZGVzdC53cml0ZVN0cmluZyhtTmFtZSk7CisgICAgICAgIFN0cmluZ1tdIGxvY2FsZXNEYXRhID0gbmV3IFN0cmluZ1tde21Mb2NhbGUuZ2V0TGFuZ3VhZ2UoKSwgbUxvY2FsZS5nZXRDb3VudHJ5KCksIG1Mb2NhbGUuZ2V0VmFyaWFudCgpfTsKKyAgICAgICAgZGVzdC53cml0ZVN0cmluZ0FycmF5KGxvY2FsZXNEYXRhKTsKKyAgICAgICAgZGVzdC53cml0ZUludChtUXVhbGl0eSk7CisgICAgICAgIGRlc3Qud3JpdGVJbnQobUxhdGVuY3kpOworICAgICAgICBkZXN0LndyaXRlQnl0ZSgoYnl0ZSkgKG1SZXF1aXJlc05ldHdvcmtDb25uZWN0aW9uID8gMSA6IDApKTsKKyAgICAgICAgZGVzdC53cml0ZUJ1bmRsZShtUGFyYW1zKTsKKyAgICAgICAgZGVzdC53cml0ZUJ1bmRsZShtQWRkaXRpb25hbEZlYXR1cmVzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAaGlkZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgUGFyY2VsYWJsZS5DcmVhdG9yPFZvaWNlSW5mbz4gQ1JFQVRPUiA9IG5ldyBQYXJjZWxhYmxlLkNyZWF0b3I8Vm9pY2VJbmZvPigpIHsKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBWb2ljZUluZm8gY3JlYXRlRnJvbVBhcmNlbChQYXJjZWwgaW4pIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgVm9pY2VJbmZvKGluKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgVm9pY2VJbmZvW10gbmV3QXJyYXkoaW50IHNpemUpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgVm9pY2VJbmZvW3NpemVdOworICAgICAgICB9CisgICAgfTsKKworICAgIC8qKgorICAgICAqIEByZXR1cm4gVGhlIHZvaWNlJ3MgbG9jYWxlCisgICAgICovCisgICAgcHVibGljIExvY2FsZSBnZXRMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiBtTG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gVGhlIHZvaWNlJ3MgcXVhbGl0eSAoaGlnaGVyIGlzIGJldHRlcikKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFF1YWxpdHkoKSB7CisgICAgICAgIHJldHVybiBtUXVhbGl0eTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFRoZSB2b2ljZSdzIGxhdGVuY3kgKGxvd2VyIGlzIGJldHRlcikKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExhdGVuY3koKSB7CisgICAgICAgIHJldHVybiBtTGF0ZW5jeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIERvZXMgdGhlIFZvaWNlIHJlcXVpcmUgYSBuZXR3b3JrIGNvbm5lY3Rpb24gdG8gd29yay4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRSZXF1aXJlc05ldHdvcmtDb25uZWN0aW9uKCkgeworICAgICAgICByZXR1cm4gbVJlcXVpcmVzTmV0d29ya0Nvbm5lY3Rpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBCdW5kbGUgb2YgYWxsIGF2YWlsYWJsZSBwYXJhbWV0ZXJzIHdpdGggdGhlaXIgZGVmYXVsdCB2YWx1ZXMuCisgICAgICovCisgICAgcHVibGljIEJ1bmRsZSBnZXRQYXJhbXNXaXRoRGVmYXVsdHMoKSB7CisgICAgICAgIHJldHVybiBtUGFyYW1zOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gVW5pcXVlIHZvaWNlIG5hbWUuCisgICAgICoKKyAgICAgKiBFYWNoIFZvaWNlSW5mbyBoYXMgYW4gdW5pcXVlIG5hbWUsIHRoYXQgcGVyc2lzdHMgdW50aWwgY2xpZW50IGlzIGFza2VkIHRvIHJlLWV2YWx1YXRlIHRoZQorICAgICAqIHNldCBvZiB0aGUgYXZhaWxhYmxlIGxhbmd1YWdlcyBpbiB0aGUge0BsaW5rIFRleHRUb1NwZWVjaENsaWVudC5Db25uZWN0aW9uQ2FsbGJhY2tzI29uRW5naW5lU3RhdHVzQ2hhbmdlKGFuZHJvaWQuc3BlZWNoLnR0cy5UZXh0VG9TcGVlY2hDbGllbnQuRW5naW5lU3RhdHVzKX0KKyAgICAgKiBjYWxsYmFjayAoVm9pY2UgbWF5IGRpc2FwcGVhciBmcm9tIHRoZSBzZXQgaWYgdm9pY2Ugd2FzIHJlbW92ZWQgYnkgdGhlIHVzZXIpLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIG1OYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gQWRkaXRpb25hbCBmZWF0dXJlcyBvZiB0aGUgdm9pY2UuCisgICAgICovCisgICAgcHVibGljIEJ1bmRsZSBnZXRBZGRpdGlvbmFsRmVhdHVyZXMoKSB7CisgICAgICAgIHJldHVybiBtQWRkaXRpb25hbEZlYXR1cmVzOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKDY0KTsKKyAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYXBwZW5kKCJWb2ljZUluZm9bTmFtZTogIikuYXBwZW5kKG1OYW1lKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIiAsbG9jYWxlOiAiKS5hcHBlbmQobUxvY2FsZSkKKyAgICAgICAgICAgICAgICAuYXBwZW5kKCIgLHF1YWxpdHk6ICIpLmFwcGVuZChtUXVhbGl0eSkKKyAgICAgICAgICAgICAgICAuYXBwZW5kKCIgLGxhdGVuY3k6ICIpLmFwcGVuZChtTGF0ZW5jeSkKKyAgICAgICAgICAgICAgICAuYXBwZW5kKCIgLHJlcXVpcmVzTmV0d29yazogIikuYXBwZW5kKG1SZXF1aXJlc05ldHdvcmtDb25uZWN0aW9uKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIiAscGFyYW1zV2l0aERlZmF1bHRzOiAiKS5hcHBlbmQobVBhcmFtcy50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIiAsYWRkaXRpb25hbEZlYXR1cmVzOiAiKS5hcHBlbmQobUFkZGl0aW9uYWxGZWF0dXJlcy50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIl0iKS50b1N0cmluZygpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3RleHQvc3R5bGUvU3VnZ2VzdGlvblNwYW4uamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3RleHQvc3R5bGUvU3VnZ2VzdGlvblNwYW4uamF2YQppbmRleCAwZWM3ZTg0Li44YjQwOTUzIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC90ZXh0L3N0eWxlL1N1Z2dlc3Rpb25TcGFuLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvdGV4dC9zdHlsZS9TdWdnZXN0aW9uU3Bhbi5qYXZhCkBAIC0xNjYsMjUgKzE2NiwyNSBAQAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaW50IGRlZlN0eWxlID0gY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5hdHRyLnRleHRBcHBlYXJhbmNlTWlzc3BlbGxlZFN1Z2dlc3Rpb247CisgICAgICAgIGludCBkZWZTdHlsZUF0dHIgPSBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIudGV4dEFwcGVhcmFuY2VNaXNzcGVsbGVkU3VnZ2VzdGlvbjsKICAgICAgICAgVHlwZWRBcnJheSB0eXBlZEFycmF5ID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAotICAgICAgICAgICAgICAgIG51bGwsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlN1Z2dlc3Rpb25TcGFuLCBkZWZTdHlsZSwgMCk7CisgICAgICAgICAgICAgICAgbnVsbCwgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuU3VnZ2VzdGlvblNwYW4sIGRlZlN0eWxlQXR0ciwgMCk7CiAgICAgICAgIG1NaXNzcGVsbGVkVW5kZXJsaW5lVGhpY2tuZXNzID0gdHlwZWRBcnJheS5nZXREaW1lbnNpb24oCiAgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuU3VnZ2VzdGlvblNwYW5fdGV4dFVuZGVybGluZVRoaWNrbmVzcywgMCk7CiAgICAgICAgIG1NaXNzcGVsbGVkVW5kZXJsaW5lQ29sb3IgPSB0eXBlZEFycmF5LmdldENvbG9yKAogICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlN1Z2dlc3Rpb25TcGFuX3RleHRVbmRlcmxpbmVDb2xvciwgQ29sb3IuQkxBQ0spOwogCi0gICAgICAgIGRlZlN0eWxlID0gY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5hdHRyLnRleHRBcHBlYXJhbmNlRWFzeUNvcnJlY3RTdWdnZXN0aW9uOworICAgICAgICBkZWZTdHlsZUF0dHIgPSBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIudGV4dEFwcGVhcmFuY2VFYXN5Q29ycmVjdFN1Z2dlc3Rpb247CiAgICAgICAgIHR5cGVkQXJyYXkgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCi0gICAgICAgICAgICAgICAgbnVsbCwgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuU3VnZ2VzdGlvblNwYW4sIGRlZlN0eWxlLCAwKTsKKyAgICAgICAgICAgICAgICBudWxsLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5TdWdnZXN0aW9uU3BhbiwgZGVmU3R5bGVBdHRyLCAwKTsKICAgICAgICAgbUVhc3lDb3JyZWN0VW5kZXJsaW5lVGhpY2tuZXNzID0gdHlwZWRBcnJheS5nZXREaW1lbnNpb24oCiAgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuU3VnZ2VzdGlvblNwYW5fdGV4dFVuZGVybGluZVRoaWNrbmVzcywgMCk7CiAgICAgICAgIG1FYXN5Q29ycmVjdFVuZGVybGluZUNvbG9yID0gdHlwZWRBcnJheS5nZXRDb2xvcigKICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5TdWdnZXN0aW9uU3Bhbl90ZXh0VW5kZXJsaW5lQ29sb3IsIENvbG9yLkJMQUNLKTsKIAotICAgICAgICBkZWZTdHlsZSA9IGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci50ZXh0QXBwZWFyYW5jZUF1dG9Db3JyZWN0aW9uU3VnZ2VzdGlvbjsKKyAgICAgICAgZGVmU3R5bGVBdHRyID0gY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5hdHRyLnRleHRBcHBlYXJhbmNlQXV0b0NvcnJlY3Rpb25TdWdnZXN0aW9uOwogICAgICAgICB0eXBlZEFycmF5ID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAotICAgICAgICAgICAgICAgIG51bGwsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlN1Z2dlc3Rpb25TcGFuLCBkZWZTdHlsZSwgMCk7CisgICAgICAgICAgICAgICAgbnVsbCwgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuU3VnZ2VzdGlvblNwYW4sIGRlZlN0eWxlQXR0ciwgMCk7CiAgICAgICAgIG1BdXRvQ29ycmVjdGlvblVuZGVybGluZVRoaWNrbmVzcyA9IHR5cGVkQXJyYXkuZ2V0RGltZW5zaW9uKAogICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlN1Z2dlc3Rpb25TcGFuX3RleHRVbmRlcmxpbmVUaGlja25lc3MsIDApOwogICAgICAgICBtQXV0b0NvcnJlY3Rpb25VbmRlcmxpbmVDb2xvciA9IHR5cGVkQXJyYXkuZ2V0Q29sb3IoCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC90cmFuc2l0aW9uL1JlY29sb3IuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3RyYW5zaXRpb24vUmVjb2xvci5qYXZhCmluZGV4IDcwMTExZDEuLjE2MzhmNjcgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3RyYW5zaXRpb24vUmVjb2xvci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3RyYW5zaXRpb24vUmVjb2xvci5qYXZhCkBAIC0xNyw3ICsxNyw2IEBACiBwYWNrYWdlIGFuZHJvaWQudHJhbnNpdGlvbjsKIAogaW1wb3J0IGFuZHJvaWQuYW5pbWF0aW9uLkFuaW1hdG9yOwotaW1wb3J0IGFuZHJvaWQuYW5pbWF0aW9uLkFyZ2JFdmFsdWF0b3I7CiBpbXBvcnQgYW5kcm9pZC5hbmltYXRpb24uT2JqZWN0QW5pbWF0b3I7CiBpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS5Db2xvckRyYXdhYmxlOwogaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuRHJhd2FibGU7CkBAIC03NSw4ICs3NCw4IEBACiAgICAgICAgICAgICBpZiAoc3RhcnRDb2xvci5nZXRDb2xvcigpICE9IGVuZENvbG9yLmdldENvbG9yKCkpIHsKICAgICAgICAgICAgICAgICBlbmRDb2xvci5zZXRDb2xvcihzdGFydENvbG9yLmdldENvbG9yKCkpOwogICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3RBbmltYXRvci5vZk9iamVjdChlbmRCYWNrZ3JvdW5kLCAiY29sb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEFyZ2JFdmFsdWF0b3IoKSwgc3RhcnRDb2xvci5nZXRDb2xvcigpLCBlbmRDb2xvci5nZXRDb2xvcigpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0QW5pbWF0b3Iub2ZBcmdiKGVuZEJhY2tncm91bmQsICJjb2xvciIsIHN0YXJ0Q29sb3IuZ2V0Q29sb3IoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZENvbG9yLmdldENvbG9yKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmICh2aWV3IGluc3RhbmNlb2YgVGV4dFZpZXcpIHsKQEAgLTg2LDggKzg1LDcgQEAKICAgICAgICAgICAgIGlmIChzdGFydCAhPSBlbmQpIHsKICAgICAgICAgICAgICAgICB0ZXh0Vmlldy5zZXRUZXh0Q29sb3IoZW5kKTsKICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0QW5pbWF0b3Iub2ZPYmplY3QodGV4dFZpZXcsICJ0ZXh0Q29sb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEFyZ2JFdmFsdWF0b3IoKSwgc3RhcnQsIGVuZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdEFuaW1hdG9yLm9mQXJnYih0ZXh0VmlldywgInRleHRDb2xvciIsIHN0YXJ0LCBlbmQpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBudWxsOwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvdHJhbnNpdGlvbi9TY2VuZS5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvdHJhbnNpdGlvbi9TY2VuZS5qYXZhCmluZGV4IGUxZjE4OTYuLjQyNjdhNjUgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3RyYW5zaXRpb24vU2NlbmUuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC90cmFuc2l0aW9uL1NjZW5lLmphdmEKQEAgLTM0LDcgKzM0LDcgQEAKICAgICBwcml2YXRlIENvbnRleHQgbUNvbnRleHQ7CiAgICAgcHJpdmF0ZSBpbnQgbUxheW91dElkID0gLTE7CiAgICAgcHJpdmF0ZSBWaWV3R3JvdXAgbVNjZW5lUm9vdDsKLSAgICBwcml2YXRlIFZpZXdHcm91cCBtTGF5b3V0OyAvLyBhbHRlcm5hdGl2ZSB0byBsYXlvdXRJZAorICAgIHByaXZhdGUgVmlldyBtTGF5b3V0OyAvLyBhbHRlcm5hdGl2ZSB0byBsYXlvdXRJZAogICAgIFJ1bm5hYmxlIG1FbnRlckFjdGlvbiwgbUV4aXRBY3Rpb247CiAKICAgICAvKioKQEAgLTExNCw2ICsxMTQsMTUgQEAKICAgICAgKiBAcGFyYW0gbGF5b3V0IFRoZSB2aWV3IGhpZXJhcmNoeSBvZiB0aGlzIHNjZW5lLCBhZGRlZCBhcyBhIGNoaWxkCiAgICAgICogb2Ygc2NlbmVSb290IHdoZW4gdGhpcyBzY2VuZSBpcyBlbnRlcmVkLgogICAgICAqLworICAgIHB1YmxpYyBTY2VuZShWaWV3R3JvdXAgc2NlbmVSb290LCBWaWV3IGxheW91dCkgeworICAgICAgICBtU2NlbmVSb290ID0gc2NlbmVSb290OworICAgICAgICBtTGF5b3V0ID0gbGF5b3V0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgI1NjZW5lKFZpZXdHcm91cCwgVmlldyl9LgorICAgICAqLworICAgIEBEZXByZWNhdGVkCiAgICAgcHVibGljIFNjZW5lKFZpZXdHcm91cCBzY2VuZVJvb3QsIFZpZXdHcm91cCBsYXlvdXQpIHsKICAgICAgICAgbVNjZW5lUm9vdCA9IHNjZW5lUm9vdDsKICAgICAgICAgbUxheW91dCA9IGxheW91dDsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3V0aWwvTG9uZ0FycmF5LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC91dGlsL0xvbmdBcnJheS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkNDIwNjMKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL2phdmEvYW5kcm9pZC91dGlsL0xvbmdBcnJheS5qYXZhCkBAIC0wLDAgKzEsMTYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLnV0aWw7CisKK2ltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC51dGlsLkFycmF5VXRpbHM7CisKKy8qKgorICogSW1wbGVtZW50cyBhIGdyb3dpbmcgYXJyYXkgb2YgbG9uZyBwcmltaXRpdmVzLgorICoKKyAqIEBoaWRlCisgKi8KK3B1YmxpYyBjbGFzcyBMb25nQXJyYXkgaW1wbGVtZW50cyBDbG9uZWFibGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNSU5fQ0FQQUNJVFlfSU5DUkVNRU5UID0gMTI7CisKKyAgICBwcml2YXRlIGxvbmdbXSBtVmFsdWVzOworICAgIHByaXZhdGUgaW50IG1TaXplOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhbiBlbXB0eSBMb25nQXJyYXkgd2l0aCB0aGUgZGVmYXVsdCBpbml0aWFsIGNhcGFjaXR5LgorICAgICAqLworICAgIHB1YmxpYyBMb25nQXJyYXkoKSB7CisgICAgICAgIHRoaXMoMTApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYW4gZW1wdHkgTG9uZ0FycmF5IHdpdGggdGhlIHNwZWNpZmllZCBpbml0aWFsIGNhcGFjaXR5LgorICAgICAqLworICAgIHB1YmxpYyBMb25nQXJyYXkoaW50IGluaXRpYWxDYXBhY2l0eSkgeworICAgICAgICBpZiAoaW5pdGlhbENhcGFjaXR5ID09IDApIHsKKyAgICAgICAgICAgIG1WYWx1ZXMgPSBDb250YWluZXJIZWxwZXJzLkVNUFRZX0xPTkdTOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW5pdGlhbENhcGFjaXR5ID0gQXJyYXlVdGlscy5pZGVhbExvbmdBcnJheVNpemUoaW5pdGlhbENhcGFjaXR5KTsKKyAgICAgICAgICAgIG1WYWx1ZXMgPSBuZXcgbG9uZ1tpbml0aWFsQ2FwYWNpdHldOworICAgICAgICB9CisgICAgICAgIG1TaXplID0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmRzIHRoZSBzcGVjaWZpZWQgdmFsdWUgdG8gdGhlIGVuZCBvZiB0aGlzIGFycmF5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZChsb25nIHZhbHVlKSB7CisgICAgICAgIGFkZChtU2l6ZSwgdmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluc2VydHMgYSB2YWx1ZSBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluIHRoaXMgYXJyYXkuCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gd2hlbiBpbmRleCAmbHQ7IDAgfHwgaW5kZXggJmd0OyBzaXplKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGQoaW50IGluZGV4LCBsb25nIHZhbHVlKSB7CisgICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiBtU2l6ZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgfQorCisgICAgICAgIGVuc3VyZUNhcGFjaXR5KDEpOworCisgICAgICAgIGlmIChtU2l6ZSAtIGluZGV4ICE9IDApIHsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobVZhbHVlcywgaW5kZXgsIG1WYWx1ZXMsIGluZGV4ICsgMSwgbVNpemUgLSBpbmRleCk7CisgICAgICAgIH0KKworICAgICAgICBtVmFsdWVzW2luZGV4XSA9IHZhbHVlOworICAgICAgICBtU2l6ZSsrOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgdGhlIHZhbHVlcyBpbiB0aGUgc3BlY2lmaWVkIGFycmF5IHRvIHRoaXMgYXJyYXkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkQWxsKExvbmdBcnJheSB2YWx1ZXMpIHsKKyAgICAgICAgZmluYWwgaW50IGNvdW50ID0gdmFsdWVzLm1TaXplOworICAgICAgICBlbnN1cmVDYXBhY2l0eShjb3VudCk7CisKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShtVmFsdWVzLCBtU2l6ZSwgdmFsdWVzLm1WYWx1ZXMsIDAsIGNvdW50KTsKKyAgICAgICAgbVNpemUgKz0gY291bnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5zdXJlcyBjYXBhY2l0eSB0byBhcHBlbmQgYXQgbGVhc3QgPGNvZGU+Y291bnQ8L2NvZGU+IHZhbHVlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZW5zdXJlQ2FwYWNpdHkoaW50IGNvdW50KSB7CisgICAgICAgIGZpbmFsIGludCBjdXJyZW50U2l6ZSA9IG1TaXplOworICAgICAgICBmaW5hbCBpbnQgbWluQ2FwYWNpdHkgPSBjdXJyZW50U2l6ZSArIGNvdW50OworICAgICAgICBpZiAobWluQ2FwYWNpdHkgPj0gbVZhbHVlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGZpbmFsIGludCB0YXJnZXRDYXAgPSBjdXJyZW50U2l6ZSArIChjdXJyZW50U2l6ZSA8IChNSU5fQ0FQQUNJVFlfSU5DUkVNRU5UIC8gMikgPworICAgICAgICAgICAgICAgICAgICBNSU5fQ0FQQUNJVFlfSU5DUkVNRU5UIDogY3VycmVudFNpemUgPj4gMSk7CisgICAgICAgICAgICBmaW5hbCBpbnQgbmV3Q2FwYWNpdHkgPSB0YXJnZXRDYXAgPiBtaW5DYXBhY2l0eSA/IHRhcmdldENhcCA6IG1pbkNhcGFjaXR5OworICAgICAgICAgICAgZmluYWwgbG9uZ1tdIG5ld1ZhbHVlcyA9IG5ldyBsb25nW0FycmF5VXRpbHMuaWRlYWxMb25nQXJyYXlTaXplKG5ld0NhcGFjaXR5KV07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1WYWx1ZXMsIDAsIG5ld1ZhbHVlcywgMCwgY3VycmVudFNpemUpOworICAgICAgICAgICAgbVZhbHVlcyA9IG5ld1ZhbHVlczsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgYWxsIHZhbHVlcyBmcm9tIHRoaXMgYXJyYXkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIG1TaXplID0gMDsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBAU3VwcHJlc3NXYXJuaW5ncygidW5jaGVja2VkIikKKyAgICBwdWJsaWMgTG9uZ0FycmF5IGNsb25lKCkgeworICAgICAgICBMb25nQXJyYXkgY2xvbmUgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY2xvbmUgPSAoTG9uZ0FycmF5KSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgY2xvbmUubVZhbHVlcyA9IG1WYWx1ZXMuY2xvbmUoKTsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gY25zZSkgeworICAgICAgICAgICAgLyogaWdub3JlICovCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNsb25lOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhbHVlIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhpcyBhcnJheS4KKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyBnZXQoaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiBtVmFsdWVzW2luZGV4XTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGUgc3BlY2lmaWVkIHZhbHVlIGluIHRoaXMKKyAgICAgKiBhcnJheSwgb3IgLTEgaWYgdGhpcyBhcnJheSBkb2VzIG5vdCBjb250YWluIHRoZSB2YWx1ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGluZGV4T2YobG9uZyB2YWx1ZSkgeworICAgICAgICBmaW5hbCBpbnQgbiA9IG1TaXplOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgeworICAgICAgICAgICAgaWYgKG1WYWx1ZXNbaV0gPT0gdmFsdWUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgdmFsdWUgYXQgdGhlIHNwZWNpZmllZCBpbmRleCBmcm9tIHRoaXMgYXJyYXkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlKGludCBpbmRleCkgeworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1WYWx1ZXMsIGluZGV4LCBtVmFsdWVzLCBpbmRleCArIDEsIG1TaXplIC0gaW5kZXgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiB2YWx1ZXMgaW4gdGhpcyBhcnJheS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHNpemUoKSB7CisgICAgICAgIHJldHVybiBtU2l6ZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0FjY2Vzc2liaWxpdHlJbnRlcmFjdGlvbkNvbnRyb2xsZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvQWNjZXNzaWJpbGl0eUludGVyYWN0aW9uQ29udHJvbGxlci5qYXZhCmluZGV4IDQxZDM3MDAuLjk1YTEzZDAgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvQWNjZXNzaWJpbGl0eUludGVyYWN0aW9uQ29udHJvbGxlci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvQWNjZXNzaWJpbGl0eUludGVyYWN0aW9uQ29udHJvbGxlci5qYXZhCkBAIC0yNCw2ICsyNCw3IEBACiBpbXBvcnQgYW5kcm9pZC5vcy5NZXNzYWdlOwogaW1wb3J0IGFuZHJvaWQub3MuUHJvY2VzczsKIGltcG9ydCBhbmRyb2lkLm9zLlJlbW90ZUV4Y2VwdGlvbjsKK2ltcG9ydCBhbmRyb2lkLnV0aWwuTG9uZ0FycmF5OwogaW1wb3J0IGFuZHJvaWQudXRpbC5TcGFyc2VMb25nQXJyYXk7CiBpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXcuQXR0YWNoSW5mbzsKIGltcG9ydCBhbmRyb2lkLnZpZXcuYWNjZXNzaWJpbGl0eS5BY2Nlc3NpYmlsaXR5SW50ZXJhY3Rpb25DbGllbnQ7CkBAIC04ODEsMTMgKzg4MiwxMiBAQAogICAgICAgICAgICAgICAgIEFjY2Vzc2liaWxpdHlOb2RlSW5mbyBwYXJlbnQgPQogICAgICAgICAgICAgICAgICAgICBwcm92aWRlci5jcmVhdGVBY2Nlc3NpYmlsaXR5Tm9kZUluZm8ocGFyZW50VmlydHVhbERlc2NlbmRhbnRJZCk7CiAgICAgICAgICAgICAgICAgaWYgKHBhcmVudCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIFNwYXJzZUxvbmdBcnJheSBjaGlsZE5vZGVJZHMgPSBwYXJlbnQuZ2V0Q2hpbGROb2RlSWRzKCk7Ci0gICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBjaGlsZENvdW50ID0gY2hpbGROb2RlSWRzLnNpemUoKTsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGNoaWxkQ291bnQgPSBwYXJlbnQuZ2V0Q2hpbGRDb3VudCgpOwogICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoaWxkQ291bnQ7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG91dEluZm9zLnNpemUoKSA+PSBNQVhfQUNDRVNTSUJJTElUWV9OT0RFX0lORk9fQkFUQ0hfU0laRSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGxvbmcgY2hpbGROb2RlSWQgPSBjaGlsZE5vZGVJZHMuZ2V0KGkpOworICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgbG9uZyBjaGlsZE5vZGVJZCA9IHBhcmVudC5nZXRDaGlsZElkKGkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkTm9kZUlkICE9IGN1cnJlbnQuZ2V0U291cmNlTm9kZUlkKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgY2hpbGRWaXJ0dWFsRGVzY2VuZGFudElkID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXNzaWJpbGl0eU5vZGVJbmZvLmdldFZpcnR1YWxEZXNjZW5kYW50SWQoY2hpbGROb2RlSWQpOwpAQCAtOTA2LDE0ICs5MDYsMTMgQEAKIAogICAgICAgICBwcml2YXRlIHZvaWQgcHJlZmV0Y2hEZXNjZW5kYW50c09mVmlydHVhbE5vZGUoQWNjZXNzaWJpbGl0eU5vZGVJbmZvIHJvb3QsCiAgICAgICAgICAgICAgICAgQWNjZXNzaWJpbGl0eU5vZGVQcm92aWRlciBwcm92aWRlciwgTGlzdDxBY2Nlc3NpYmlsaXR5Tm9kZUluZm8+IG91dEluZm9zKSB7Ci0gICAgICAgICAgICBTcGFyc2VMb25nQXJyYXkgY2hpbGROb2RlSWRzID0gcm9vdC5nZXRDaGlsZE5vZGVJZHMoKTsKICAgICAgICAgICAgIGZpbmFsIGludCBpbml0aWFsT3V0SW5mb3NTaXplID0gb3V0SW5mb3Muc2l6ZSgpOwotICAgICAgICAgICAgZmluYWwgaW50IGNoaWxkQ291bnQgPSBjaGlsZE5vZGVJZHMuc2l6ZSgpOworICAgICAgICAgICAgZmluYWwgaW50IGNoaWxkQ291bnQgPSByb290LmdldENoaWxkQ291bnQoKTsKICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRDb3VudDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgaWYgKG91dEluZm9zLnNpemUoKSA+PSBNQVhfQUNDRVNTSUJJTElUWV9OT0RFX0lORk9fQkFUQ0hfU0laRSkgewogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGZpbmFsIGxvbmcgY2hpbGROb2RlSWQgPSBjaGlsZE5vZGVJZHMuZ2V0KGkpOworICAgICAgICAgICAgICAgIGZpbmFsIGxvbmcgY2hpbGROb2RlSWQgPSByb290LmdldENoaWxkSWQoaSk7CiAgICAgICAgICAgICAgICAgQWNjZXNzaWJpbGl0eU5vZGVJbmZvIGNoaWxkID0gcHJvdmlkZXIuY3JlYXRlQWNjZXNzaWJpbGl0eU5vZGVJbmZvKAogICAgICAgICAgICAgICAgICAgICAgICAgQWNjZXNzaWJpbGl0eU5vZGVJbmZvLmdldFZpcnR1YWxEZXNjZW5kYW50SWQoY2hpbGROb2RlSWQpKTsKICAgICAgICAgICAgICAgICBpZiAoY2hpbGQgIT0gbnVsbCkgewpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9EaXNwbGF5LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0Rpc3BsYXkuamF2YQppbmRleCA3ZDMxMGEyLi5kM2Y2M2I0IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0Rpc3BsYXkuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0Rpc3BsYXkuamF2YQpAQCAtNTI4LDYgKzUyOCw3IEBACiAgICAgICogOTAgZGVncmVlcyBjbG9ja3dpc2UgYW5kIHRodXMgdGhlIHJldHVybmVkIHZhbHVlIGhlcmUgd2lsbCBiZQogICAgICAqIHtAbGluayBTdXJmYWNlI1JPVEFUSU9OXzkwIFN1cmZhY2UuUk9UQVRJT05fOTB9LgogICAgICAqLworICAgIEBTdXJmYWNlLlJvdGF0aW9uCiAgICAgcHVibGljIGludCBnZXRSb3RhdGlvbigpIHsKICAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7CiAgICAgICAgICAgICB1cGRhdGVEaXNwbGF5SW5mb0xvY2tlZCgpOwpAQCAtNTQwLDYgKzU0MSw3IEBACiAgICAgICogQHJldHVybiBvcmllbnRhdGlvbiBvZiB0aGlzIGRpc3BsYXkuCiAgICAgICovCiAgICAgQERlcHJlY2F0ZWQKKyAgICBAU3VyZmFjZS5Sb3RhdGlvbgogICAgIHB1YmxpYyBpbnQgZ2V0T3JpZW50YXRpb24oKSB7CiAgICAgICAgIHJldHVybiBnZXRSb3RhdGlvbigpOwogICAgIH0KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvRGlzcGxheUluZm8uamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvRGlzcGxheUluZm8uamF2YQppbmRleCA4OTQ0MjA3Li44YWYyYjYzIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0Rpc3BsYXlJbmZvLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9EaXNwbGF5SW5mby5qYXZhCkBAIC0xNDQsNiArMTQ0LDcgQEAKICAgICAgKiBtb3JlIHRoYW4gb25lIHBoeXNpY2FsIGRpc3BsYXkuCiAgICAgICogPC9wPgogICAgICAqLworICAgIEBTdXJmYWNlLlJvdGF0aW9uCiAgICAgcHVibGljIGludCByb3RhdGlvbjsKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9EaXNwbGF5TGlzdC5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9EaXNwbGF5TGlzdC5qYXZhCmluZGV4IDQzZmQ2MjguLjU0ZmI2ZWYgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvRGlzcGxheUxpc3QuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0Rpc3BsYXlMaXN0LmphdmEKQEAgLTE3Nyw2ICsxNzcsMjAgQEAKICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVEFUVVNfRFJFVyA9IDB4NDsKIAogICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBuZXcgZGlzcGxheSBsaXN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVjb3JkIGJhdGNoZXMgb2YKKyAgICAgKiBkcmF3aW5nIG9wZXJhdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgZGlzcGxheSBsaXN0LCB1c2VkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZS4gTWF5IGJlIG51bGwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIEEgbmV3IGRpc3BsYXkgbGlzdC4KKyAgICAgKgorICAgICAqIEBoaWRlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBEaXNwbGF5TGlzdCBjcmVhdGUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBHTEVTMjBEaXNwbGF5TGlzdChuYW1lKTsKKyAgICB9CisKKyAgICAvKioKICAgICAgKiBTdGFydHMgcmVjb3JkaW5nIHRoZSBkaXNwbGF5IGxpc3QuIEFsbCBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbiB0aGUKICAgICAgKiByZXR1cm5lZCBjYW52YXMgYXJlIHJlY29yZGVkIGFuZCBzdG9yZWQgaW4gdGhpcyBkaXNwbGF5IGxpc3QuCiAgICAgICoKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvSGFwdGljRmVlZGJhY2tDb25zdGFudHMuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvSGFwdGljRmVlZGJhY2tDb25zdGFudHMuamF2YQppbmRleCA4ZjQwMjYwLi4yNmY0N2Y5IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0hhcHRpY0ZlZWRiYWNrQ29uc3RhbnRzLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9IYXB0aWNGZWVkYmFja0NvbnN0YW50cy5qYXZhCkBAIC00MSw2ICs0MSwxMSBAQAogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtFWUJPQVJEX1RBUCA9IDM7CiAKICAgICAvKioKKyAgICAgKiBUaGUgdXNlciBoYXMgcHJlc3NlZCBlaXRoZXIgYW4gaG91ciBvciBtaW51dGUgdGljayBvZiBhIENsb2NrLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENMT0NLX1RJQ0sgPSA0OworCisgICAgLyoqCiAgICAgICogVGhpcyBpcyBhIHByaXZhdGUgY29uc3RhbnQuICBGZWVsIGZyZWUgdG8gcmVudW1iZXIgYXMgZGVzaXJlZC4KICAgICAgKiBAaGlkZQogICAgICAqLwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9IYXJkd2FyZVJlbmRlcmVyLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0hhcmR3YXJlUmVuZGVyZXIuamF2YQppbmRleCBmMjE1MTg5Li40ZGRhZTE5IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0hhcmR3YXJlUmVuZGVyZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L0hhcmR3YXJlUmVuZGVyZXIuamF2YQpAQCAtNjYsMTMgKzY2LDYgQEAKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FDSEVfUEFUSF9TSEFERVJTID0gImNvbS5hbmRyb2lkLm9wZW5nbC5zaGFkZXJzX2NhY2hlIjsKIAogICAgIC8qKgotICAgICAqIFR1cm4gb24gdG8gb25seSByZWZyZXNoIHRoZSBwYXJ0cyBvZiB0aGUgc2NyZWVuIHRoYXQgbmVlZCB1cGRhdGluZy4KLSAgICAgKiBXaGVuIHR1cm5lZCBvbiB0aGUgcHJvcGVydHkgZGVmaW5lZCBieSB7QGxpbmsgI1JFTkRFUl9ESVJUWV9SRUdJT05TX1BST1BFUlRZfQotICAgICAqIG11c3QgYWxzbyBoYXZlIHRoZSB2YWx1ZSAidHJ1ZSIuCi0gICAgICovCi0gICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gUkVOREVSX0RJUlRZX1JFR0lPTlMgPSB0cnVlOwotCi0gICAgLyoqCiAgICAgICogU3lzdGVtIHByb3BlcnR5IHVzZWQgdG8gZW5hYmxlIG9yIGRpc2FibGUgZGlydHkgcmVnaW9ucyBpbnZhbGlkYXRpb24uCiAgICAgICogVGhpcyBwcm9wZXJ0eSBpcyBvbmx5IHF1ZXJpZWQgaWYge0BsaW5rICNSRU5ERVJfRElSVFlfUkVHSU9OU30gaXMgdHJ1ZS4KICAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5IGlzIGFzc3VtZWQgdG8gYmUgdHJ1ZS4KQEAgLTUwOSwxOCArNTAyLDYgQEAKICAgICAgICAgICAgIFJlY3QgZGlydHkpOwogCiAgICAgLyoqCi0gICAgICogQ3JlYXRlcyBhIG5ldyBkaXNwbGF5IGxpc3QgdGhhdCBjYW4gYmUgdXNlZCB0byByZWNvcmQgYmF0Y2hlcyBvZgotICAgICAqIGRyYXdpbmcgb3BlcmF0aW9ucy4KLSAgICAgKgotICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBkaXNwbGF5IGxpc3QsIHVzZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlLiBNYXkgYmUgbnVsbC4KLSAgICAgKgotICAgICAqIEByZXR1cm4gQSBuZXcgZGlzcGxheSBsaXN0LgotICAgICAqCi0gICAgICogQGhpZGUKLSAgICAgKi8KLSAgICBwdWJsaWMgYWJzdHJhY3QgRGlzcGxheUxpc3QgY3JlYXRlRGlzcGxheUxpc3QoU3RyaW5nIG5hbWUpOwotCi0gICAgLyoqCiAgICAgICogQ3JlYXRlcyBhIG5ldyBoYXJkd2FyZSBsYXllci4gQSBoYXJkd2FyZSBsYXllciBidWlsdCBieSBjYWxsaW5nIHRoaXMKICAgICAgKiBtZXRob2Qgd2lsbCBiZSB0cmVhdGVkIGFzIGEgdGV4dHVyZSBsYXllciwgaW5zdGVhZCBvZiBhcyBhIHJlbmRlciB0YXJnZXQuCiAgICAgICoKQEAgLTg1Myw3ICs4MzQsNyBAQAogICAgICAgICBzdGF0aWMgewogICAgICAgICAgICAgU3RyaW5nIGRpcnR5UHJvcGVydHkgPSBTeXN0ZW1Qcm9wZXJ0aWVzLmdldChSRU5ERVJfRElSVFlfUkVHSU9OU19QUk9QRVJUWSwgInRydWUiKTsKICAgICAgICAgICAgIC8vbm9pbnNwZWN0aW9uIFBvaW50bGVzc0Jvb2xlYW5FeHByZXNzaW9uLENvbnN0YW50Q29uZGl0aW9ucwotICAgICAgICAgICAgc0RpcnR5UmVnaW9ucyA9IFJFTkRFUl9ESVJUWV9SRUdJT05TICYmICJ0cnVlIi5lcXVhbHNJZ25vcmVDYXNlKGRpcnR5UHJvcGVydHkpOworICAgICAgICAgICAgc0RpcnR5UmVnaW9ucyA9ICJ0cnVlIi5lcXVhbHNJZ25vcmVDYXNlKGRpcnR5UHJvcGVydHkpOwogICAgICAgICAgICAgc0RpcnR5UmVnaW9uc1JlcXVlc3RlZCA9IHNEaXJ0eVJlZ2lvbnM7CiAgICAgICAgIH0KIApAQCAtMjE4NywxMSArMjE2OCw2IEBACiAgICAgICAgIH0KIAogICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIERpc3BsYXlMaXN0IGNyZWF0ZURpc3BsYXlMaXN0KFN0cmluZyBuYW1lKSB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IEdMRVMyMERpc3BsYXlMaXN0KG5hbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgIEhhcmR3YXJlTGF5ZXIgY3JlYXRlSGFyZHdhcmVMYXllcihib29sZWFuIGlzT3BhcXVlKSB7CiAgICAgICAgICAgICByZXR1cm4gbmV3IEdMRVMyMFRleHR1cmVMYXllcihpc09wYXF1ZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvU3VyZmFjZS5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9TdXJmYWNlLmphdmEKaW5kZXggMWJmZGEyZC4uYTI3NzVkNCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9TdXJmYWNlLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9TdXJmYWNlLmphdmEKQEAgLTE2LDYgKzE2LDcgQEAKIAogcGFja2FnZSBhbmRyb2lkLnZpZXc7CiAKK2ltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uSW50RGVmOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuQ29tcGF0aWJpbGl0eUluZm8uVHJhbnNsYXRvcjsKIGltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLkNhbnZhczsKIGltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLk1hdHJpeDsKQEAgLTI0LDYgKzI1LDEwIEBACiBpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWw7CiBpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWxhYmxlOwogaW1wb3J0IGFuZHJvaWQudXRpbC5Mb2c7CisKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb247CitpbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uUG9saWN5OworCiBpbXBvcnQgZGFsdmlrLnN5c3RlbS5DbG9zZUd1YXJkOwogCiAvKioKQEAgLTgwLDYgKzg1LDExIEBACiAgICAgLy8gbm9uIGNvbXBhdGliaWxpdHkgbW9kZS4KICAgICBwcml2YXRlIE1hdHJpeCBtQ29tcGF0aWJsZU1hdHJpeDsKIAorICAgIC8qKiBAaGlkZSAqLworICAgIEBJbnREZWYoe1JPVEFUSU9OXzAsIFJPVEFUSU9OXzkwLCBST1RBVElPTl8xODAsIFJPVEFUSU9OXzI3MH0pCisgICAgQFJldGVudGlvbihSZXRlbnRpb25Qb2xpY3kuU09VUkNFKQorICAgIHB1YmxpYyBAaW50ZXJmYWNlIFJvdGF0aW9uIHt9CisKICAgICAvKioKICAgICAgKiBSb3RhdGlvbiBjb25zdGFudDogMCBkZWdyZWUgcm90YXRpb24gKG5hdHVyYWwgb3JpZW50YXRpb24pCiAgICAgICovCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L1N1cmZhY2VWaWV3LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L1N1cmZhY2VWaWV3LmphdmEKaW5kZXggMjJkNGM5Yi4uNjVkM2Y2ZCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9TdXJmYWNlVmlldy5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvU3VyZmFjZVZpZXcuamF2YQpAQCAtMTg4LDggKzE4OCwxMyBAQAogICAgICAgICBpbml0KCk7CiAgICAgfQogCi0gICAgcHVibGljIFN1cmZhY2VWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgU3VyZmFjZVZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0cik7CisgICAgICAgIGluaXQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3VyZmFjZVZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIGluaXQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvVGV4dHVyZVZpZXcuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvVGV4dHVyZVZpZXcuamF2YQppbmRleCA0N2Y3NjI4Li5iZjgxODExIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L1RleHR1cmVWaWV3LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9UZXh0dXJlVmlldy5qYXZhCkBAIC0xNTYsMTQgKzE1NiwzMiBAQAogICAgICAqIAogICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIGFzc29jaWF0ZSB0aGlzIHZpZXcgd2l0aC4KICAgICAgKiBAcGFyYW0gYXR0cnMgVGhlIGF0dHJpYnV0ZXMgb2YgdGhlIFhNTCB0YWcgdGhhdCBpcyBpbmZsYXRpbmcgdGhlIHZpZXcuCi0gICAgICogQHBhcmFtIGRlZlN0eWxlIFRoZSBkZWZhdWx0IHN0eWxlIHRvIGFwcGx5IHRvIHRoaXMgdmlldy4gSWYgMCwgbm8gc3R5bGUKLSAgICAgKiAgICAgICAgd2lsbCBiZSBhcHBsaWVkIChiZXlvbmQgd2hhdCBpcyBpbmNsdWRlZCBpbiB0aGUgdGhlbWUpLiBUaGlzIG1heQotICAgICAqICAgICAgICBlaXRoZXIgYmUgYW4gYXR0cmlidXRlIHJlc291cmNlLCB3aG9zZSB2YWx1ZSB3aWxsIGJlIHJldHJpZXZlZAotICAgICAqICAgICAgICBmcm9tIHRoZSBjdXJyZW50IHRoZW1lLCBvciBhbiBleHBsaWNpdCBzdHlsZSByZXNvdXJjZS4KKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVBdHRyIEFuIGF0dHJpYnV0ZSBpbiB0aGUgY3VycmVudCB0aGVtZSB0aGF0IGNvbnRhaW5zIGEKKyAgICAgKiAgICAgICAgcmVmZXJlbmNlIHRvIGEgc3R5bGUgcmVzb3VyY2UgdGhhdCBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IKKyAgICAgKiAgICAgICAgdGhlIHZpZXcuIENhbiBiZSAwIHRvIG5vdCBsb29rIGZvciBkZWZhdWx0cy4KICAgICAgKi8KICAgICBAU3VwcHJlc3NXYXJuaW5ncyh7IlVudXNlZERlY2xhcmF0aW9uIn0pCi0gICAgcHVibGljIFRleHR1cmVWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgVGV4dHVyZVZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0cik7CisgICAgICAgIGluaXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IFRleHR1cmVWaWV3LgorICAgICAqCisgICAgICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgdG8gYXNzb2NpYXRlIHRoaXMgdmlldyB3aXRoLgorICAgICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBvZiB0aGUgWE1MIHRhZyB0aGF0IGlzIGluZmxhdGluZyB0aGUgdmlldy4KKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVBdHRyIEFuIGF0dHJpYnV0ZSBpbiB0aGUgY3VycmVudCB0aGVtZSB0aGF0IGNvbnRhaW5zIGEKKyAgICAgKiAgICAgICAgcmVmZXJlbmNlIHRvIGEgc3R5bGUgcmVzb3VyY2UgdGhhdCBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IKKyAgICAgKiAgICAgICAgdGhlIHZpZXcuIENhbiBiZSAwIHRvIG5vdCBsb29rIGZvciBkZWZhdWx0cy4KKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVSZXMgQSByZXNvdXJjZSBpZGVudGlmaWVyIG9mIGEgc3R5bGUgcmVzb3VyY2UgdGhhdAorICAgICAqICAgICAgICBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIHZpZXcsIHVzZWQgb25seSBpZgorICAgICAqICAgICAgICBkZWZTdHlsZUF0dHIgaXMgMCBvciBjYW4gbm90IGJlIGZvdW5kIGluIHRoZSB0aGVtZS4gQ2FuIGJlIDAKKyAgICAgKiAgICAgICAgdG8gbm90IGxvb2sgZm9yIGRlZmF1bHRzLgorICAgICAqLworICAgIEBTdXBwcmVzc1dhcm5pbmdzKHsiVW51c2VkRGVjbGFyYXRpb24ifSkKKyAgICBwdWJsaWMgVGV4dHVyZVZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIGluaXQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvVmlldy5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9WaWV3LmphdmEKaW5kZXggYjc0MjAyZC4uZDhhN2VmYyAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9WaWV3LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9WaWV3LmphdmEKQEAgLTE2LDYgKzE2LDkgQEAKIAogcGFja2FnZSBhbmRyb2lkLnZpZXc7CiAKK2ltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uSW50RGVmOworaW1wb3J0IGFuZHJvaWQuYW5ub3RhdGlvbi5Ob25OdWxsOworaW1wb3J0IGFuZHJvaWQuYW5ub3RhdGlvbi5OdWxsYWJsZTsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ2xpcERhdGE7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LnBtLkFwcGxpY2F0aW9uSW5mbzsKQEAgLTg3LDYgKzkwLDggQEAKIGltcG9ydCBjb20uZ29vZ2xlLmFuZHJvaWQuY29sbGVjdC5MaXN0czsKIGltcG9ydCBjb20uZ29vZ2xlLmFuZHJvaWQuY29sbGVjdC5NYXBzOwogCitpbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uOworaW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvblBvbGljeTsKIGltcG9ydCBqYXZhLmxhbmcucmVmLldlYWtSZWZlcmVuY2U7CiBpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuRmllbGQ7CiBpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKQEAgLTczMCw2ICs3MzUsMTEgQEAKICAgICAgKi8KICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklUU19TWVNURU1fV0lORE9XUyA9IDB4MDAwMDAwMDI7CiAKKyAgICAvKiogQGhpZGUgKi8KKyAgICBASW50RGVmKHtWSVNJQkxFLCBJTlZJU0lCTEUsIEdPTkV9KQorICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlNPVVJDRSkKKyAgICBwdWJsaWMgQGludGVyZmFjZSBWaXNpYmlsaXR5IHt9CisKICAgICAvKioKICAgICAgKiBUaGlzIHZpZXcgaXMgdmlzaWJsZS4KICAgICAgKiBVc2Ugd2l0aCB7QGxpbmsgI3NldFZpc2liaWxpdHl9IGFuZCA8YSBocmVmPSIjYXR0cl9hbmRyb2lkOnZpc2liaWxpdHkiPntAY29kZQpAQCAtODk3LDYgKzkwNywxMSBAQAogICAgICAqLwogICAgIHN0YXRpYyBmaW5hbCBpbnQgRk9DVVNBQkxFX0lOX1RPVUNIX01PREUgPSAweDAwMDQwMDAwOwogCisgICAgLyoqIEBoaWRlICovCisgICAgQFJldGVudGlvbihSZXRlbnRpb25Qb2xpY3kuU09VUkNFKQorICAgIEBJbnREZWYoe0RSQVdJTkdfQ0FDSEVfUVVBTElUWV9MT1csIERSQVdJTkdfQ0FDSEVfUVVBTElUWV9ISUdILCBEUkFXSU5HX0NBQ0hFX1FVQUxJVFlfQVVUT30pCisgICAgcHVibGljIEBpbnRlcmZhY2UgRHJhd2luZ0NhY2hlUXVhbGl0eSB7fQorCiAgICAgLyoqCiAgICAgICogPHA+RW5hYmxlcyBsb3cgcXVhbGl0eSBtb2RlIGZvciB0aGUgZHJhd2luZyBjYWNoZS48L3A+CiAgICAgICovCkBAIC05NDEsNiArOTU2LDE2IEBACiAgICAgICovCiAgICAgc3RhdGljIGZpbmFsIGludCBEVVBMSUNBVEVfUEFSRU5UX1NUQVRFID0gMHgwMDQwMDAwMDsKIAorICAgIC8qKiBAaGlkZSAqLworICAgIEBJbnREZWYoeworICAgICAgICBTQ1JPTExCQVJTX0lOU0lERV9PVkVSTEFZLAorICAgICAgICBTQ1JPTExCQVJTX0lOU0lERV9JTlNFVCwKKyAgICAgICAgU0NST0xMQkFSU19PVVRTSURFX09WRVJMQVksCisgICAgICAgIFNDUk9MTEJBUlNfT1VUU0lERV9JTlNFVAorICAgIH0pCisgICAgQFJldGVudGlvbihSZXRlbnRpb25Qb2xpY3kuU09VUkNFKQorICAgIHB1YmxpYyBAaW50ZXJmYWNlIFNjcm9sbEJhclN0eWxlIHt9CisKICAgICAvKioKICAgICAgKiBUaGUgc2Nyb2xsYmFyIHN0eWxlIHRvIGRpc3BsYXkgdGhlIHNjcm9sbGJhcnMgaW5zaWRlIHRoZSBjb250ZW50IGFyZWEsCiAgICAgICogd2l0aG91dCBpbmNyZWFzaW5nIHRoZSBwYWRkaW5nLiBUaGUgc2Nyb2xsYmFycyB3aWxsIGJlIG92ZXJsYWlkIHdpdGgKQEAgLTEwMjEsNiArMTA0NiwxNSBAQAogICAgICAqLwogICAgIHN0YXRpYyBmaW5hbCBpbnQgUEFSRU5UX1NBVkVfRElTQUJMRURfTUFTSyA9IDB4MjAwMDAwMDA7CiAKKyAgICAvKiogQGhpZGUgKi8KKyAgICBASW50RGVmKGZsYWcgPSB0cnVlLAorICAgICAgICAgICAgdmFsdWUgPSB7CisgICAgICAgICAgICAgICAgRk9DVVNBQkxFU19BTEwsCisgICAgICAgICAgICAgICAgRk9DVVNBQkxFU19UT1VDSF9NT0RFCisgICAgICAgICAgICB9KQorICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlNPVVJDRSkKKyAgICBwdWJsaWMgQGludGVyZmFjZSBGb2N1c2FibGVNb2RlIHt9CisKICAgICAvKioKICAgICAgKiBWaWV3IGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHtAbGluayAjYWRkRm9jdXNhYmxlcyhBcnJheUxpc3QsIGludCwgaW50KX0KICAgICAgKiBzaG91bGQgYWRkIGFsbCBmb2N1c2FibGUgVmlld3MgcmVnYXJkbGVzcyBpZiB0aGV5IGFyZSBmb2N1c2FibGUgaW4gdG91Y2ggbW9kZS4KQEAgLTEwMzMsNiArMTA2NywyOCBAQAogICAgICAqLwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPQ1VTQUJMRVNfVE9VQ0hfTU9ERSA9IDB4MDAwMDAwMDE7CiAKKyAgICAvKiogQGhpZGUgKi8KKyAgICBASW50RGVmKHsKKyAgICAgICAgICAgIEZPQ1VTX0JBQ0tXQVJELAorICAgICAgICAgICAgRk9DVVNfRk9SV0FSRCwKKyAgICAgICAgICAgIEZPQ1VTX0xFRlQsCisgICAgICAgICAgICBGT0NVU19VUCwKKyAgICAgICAgICAgIEZPQ1VTX1JJR0hULAorICAgICAgICAgICAgRk9DVVNfRE9XTgorICAgIH0pCisgICAgQFJldGVudGlvbihSZXRlbnRpb25Qb2xpY3kuU09VUkNFKQorICAgIHB1YmxpYyBAaW50ZXJmYWNlIEZvY3VzRGlyZWN0aW9uIHt9CisKKyAgICAvKiogQGhpZGUgKi8KKyAgICBASW50RGVmKHsKKyAgICAgICAgICAgIEZPQ1VTX0xFRlQsCisgICAgICAgICAgICBGT0NVU19VUCwKKyAgICAgICAgICAgIEZPQ1VTX1JJR0hULAorICAgICAgICAgICAgRk9DVVNfRE9XTgorICAgIH0pCisgICAgQFJldGVudGlvbihSZXRlbnRpb25Qb2xpY3kuU09VUkNFKQorICAgIHB1YmxpYyBAaW50ZXJmYWNlIEZvY3VzUmVhbERpcmVjdGlvbiB7fSAvLyBMaWtlIEBGb2N1c0RpcmVjdGlvbiwgYnV0IHdpdGhvdXQgZm9yd2FyZC9iYWNrd2FyZAorCiAgICAgLyoqCiAgICAgICogVXNlIHdpdGgge0BsaW5rICNmb2N1c1NlYXJjaChpbnQpfS4gTW92ZSBmb2N1cyB0byB0aGUgcHJldmlvdXMgc2VsZWN0YWJsZQogICAgICAqIGl0ZW0uCkBAIC0xODA1LDYgKzE4NjEsMjUgQEAKICAgICAgKi8KICAgICBzdGF0aWMgZmluYWwgaW50IFBGTEFHMl9EUkFHX0hPVkVSRUQgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDI7CiAKKyAgICAvKiogQGhpZGUgKi8KKyAgICBASW50RGVmKHsKKyAgICAgICAgTEFZT1VUX0RJUkVDVElPTl9MVFIsCisgICAgICAgIExBWU9VVF9ESVJFQ1RJT05fUlRMLAorICAgICAgICBMQVlPVVRfRElSRUNUSU9OX0lOSEVSSVQsCisgICAgICAgIExBWU9VVF9ESVJFQ1RJT05fTE9DQUxFCisgICAgfSkKKyAgICBAUmV0ZW50aW9uKFJldGVudGlvblBvbGljeS5TT1VSQ0UpCisgICAgLy8gTm90IGNhbGxlZCBMYXlvdXREaXJlY3Rpb24gdG8gYXZvaWQgY29uZmxpY3Qgd2l0aCBhbmRyb2lkLnV0aWwuTGF5b3V0RGlyZWN0aW9uCisgICAgcHVibGljIEBpbnRlcmZhY2UgTGF5b3V0RGlyIHt9CisKKyAgICAvKiogQGhpZGUgKi8KKyAgICBASW50RGVmKHsKKyAgICAgICAgTEFZT1VUX0RJUkVDVElPTl9MVFIsCisgICAgICAgIExBWU9VVF9ESVJFQ1RJT05fUlRMCisgICAgfSkKKyAgICBAUmV0ZW50aW9uKFJldGVudGlvblBvbGljeS5TT1VSQ0UpCisgICAgcHVibGljIEBpbnRlcmZhY2UgUmVzb2x2ZWRMYXlvdXREaXIge30KKwogICAgIC8qKgogICAgICAqIEhvcml6b250YWwgbGF5b3V0IGRpcmVjdGlvbiBvZiB0aGlzIHZpZXcgaXMgZnJvbSBMZWZ0IHRvIFJpZ2h0LgogICAgICAqIFVzZSB3aXRoIHtAbGluayAjc2V0TGF5b3V0RGlyZWN0aW9ufS4KQEAgLTE5ODMsNyArMjA1OCwyMCBAQAogICAgIHN0YXRpYyBmaW5hbCBpbnQgUEZMQUcyX1RFWFRfRElSRUNUSU9OX1JFU09MVkVEX0RFRkFVTFQgPQogICAgICAgICAgICAgVEVYVF9ESVJFQ1RJT05fUkVTT0xWRURfREVGQVVMVCA8PCBQRkxBRzJfVEVYVF9ESVJFQ1RJT05fUkVTT0xWRURfTUFTS19TSElGVDsKIAotICAgIC8qCisgICAgLyoqIEBoaWRlICovCisgICAgQEludERlZih7CisgICAgICAgIFRFWFRfQUxJR05NRU5UX0lOSEVSSVQsCisgICAgICAgIFRFWFRfQUxJR05NRU5UX0dSQVZJVFksCisgICAgICAgIFRFWFRfQUxJR05NRU5UX0NFTlRFUiwKKyAgICAgICAgVEVYVF9BTElHTk1FTlRfVEVYVF9TVEFSVCwKKyAgICAgICAgVEVYVF9BTElHTk1FTlRfVEVYVF9FTkQsCisgICAgICAgIFRFWFRfQUxJR05NRU5UX1ZJRVdfU1RBUlQsCisgICAgICAgIFRFWFRfQUxJR05NRU5UX1ZJRVdfRU5ECisgICAgfSkKKyAgICBAUmV0ZW50aW9uKFJldGVudGlvblBvbGljeS5TT1VSQ0UpCisgICAgcHVibGljIEBpbnRlcmZhY2UgVGV4dEFsaWdubWVudCB7fQorCisgICAgLyoqCiAgICAgICogRGVmYXVsdCB0ZXh0IGFsaWdubWVudC4gVGhlIHRleHQgYWxpZ25tZW50IG9mIHRoaXMgVmlldyBpcyBpbmhlcml0ZWQgZnJvbSBpdHMgcGFyZW50LgogICAgICAqIFVzZSB3aXRoIHtAbGluayAjc2V0VGV4dEFsaWdubWVudChpbnQpfQogICAgICAqLwpAQCAtMjY2NSw2ICsyNzUzLDEyIEBACiAgICAgICAgICAgICBTWVNURU1fVUlfRkxBR19MQVlPVVRfSElERV9OQVZJR0FUSU9OCiAgICAgICAgICAgICB8IFNZU1RFTV9VSV9GTEFHX0xBWU9VVF9GVUxMU0NSRUVOOwogCisgICAgLyoqIEBoaWRlICovCisgICAgQEludERlZihmbGFnID0gdHJ1ZSwKKyAgICAgICAgICAgIHZhbHVlID0geyBGSU5EX1ZJRVdTX1dJVEhfVEVYVCwgRklORF9WSUVXU19XSVRIX0NPTlRFTlRfREVTQ1JJUFRJT04gfSkKKyAgICBAUmV0ZW50aW9uKFJldGVudGlvblBvbGljeS5TT1VSQ0UpCisgICAgcHVibGljIEBpbnRlcmZhY2UgRmluZFZpZXdGbGFncyB7fQorCiAgICAgLyoqCiAgICAgICogRmluZCB2aWV3cyB0aGF0IHJlbmRlciB0aGUgc3BlY2lmaWVkIHRleHQuCiAgICAgICoKQEAgLTI2ODYsNyArMjc4MCw3IEBACiAgICAgICogYWRkZWQgYW5kIGl0IGlzIGEgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNsaWVudCB0byBjYWxsIHRoZSBBUElzIG9mCiAgICAgICogdGhlIHByb3ZpZGVyIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSB2aXJ0dWFsIHRyZWUgcm9vdGVkIGF0IHRoaXMgVmlldwogICAgICAqIGNvbnRhaW5zIHRoZSB0ZXh0LCBpLmUuIGdldHRpbmcgdGhlIGxpc3Qgb2Yge0BsaW5rIEFjY2Vzc2liaWxpdHlOb2RlSW5mb31zCi0gICAgICogcmVwcmVzZXRpbmcgdGhlIHZpcnR1YWwgdmlld3Mgd2l0aCB0aGlzIHRleHQuCisgICAgICogcmVwcmVzZW50aW5nIHRoZSB2aXJ0dWFsIHZpZXdzIHdpdGggdGhpcyB0ZXh0LgogICAgICAqCiAgICAgICogQHNlZSAjZmluZFZpZXdzV2l0aFRleHQoQXJyYXlMaXN0LCBDaGFyU2VxdWVuY2UsIGludCkKICAgICAgKgpAQCAtMzQ3OCwyNyArMzU3Miw2NCBAQAogICAgIH0KIAogICAgIC8qKgotICAgICAqIFBlcmZvcm0gaW5mbGF0aW9uIGZyb20gWE1MIGFuZCBhcHBseSBhIGNsYXNzLXNwZWNpZmljIGJhc2Ugc3R5bGUuIFRoaXMKLSAgICAgKiBjb25zdHJ1Y3RvciBvZiBWaWV3IGFsbG93cyBzdWJjbGFzc2VzIHRvIHVzZSB0aGVpciBvd24gYmFzZSBzdHlsZSB3aGVuCi0gICAgICogdGhleSBhcmUgaW5mbGF0aW5nLiBGb3IgZXhhbXBsZSwgYSBCdXR0b24gY2xhc3MncyBjb25zdHJ1Y3RvciB3b3VsZCBjYWxsCi0gICAgICogdGhpcyB2ZXJzaW9uIG9mIHRoZSBzdXBlciBjbGFzcyBjb25zdHJ1Y3RvciBhbmQgc3VwcGx5Ci0gICAgICogPGNvZGU+Ui5hdHRyLmJ1dHRvblN0eWxlPC9jb2RlPiBmb3IgPHZhcj5kZWZTdHlsZTwvdmFyPjsgdGhpcyBhbGxvd3MKLSAgICAgKiB0aGUgdGhlbWUncyBidXR0b24gc3R5bGUgdG8gbW9kaWZ5IGFsbCBvZiB0aGUgYmFzZSB2aWV3IGF0dHJpYnV0ZXMgKGluCi0gICAgICogcGFydGljdWxhciBpdHMgYmFja2dyb3VuZCkgYXMgd2VsbCBhcyB0aGUgQnV0dG9uIGNsYXNzJ3MgYXR0cmlidXRlcy4KKyAgICAgKiBQZXJmb3JtIGluZmxhdGlvbiBmcm9tIFhNTCBhbmQgYXBwbHkgYSBjbGFzcy1zcGVjaWZpYyBiYXNlIHN0eWxlIGZyb20gYQorICAgICAqIHRoZW1lIGF0dHJpYnV0ZS4gVGhpcyBjb25zdHJ1Y3RvciBvZiBWaWV3IGFsbG93cyBzdWJjbGFzc2VzIHRvIHVzZSB0aGVpcgorICAgICAqIG93biBiYXNlIHN0eWxlIHdoZW4gdGhleSBhcmUgaW5mbGF0aW5nLiBGb3IgZXhhbXBsZSwgYSBCdXR0b24gY2xhc3MncworICAgICAqIGNvbnN0cnVjdG9yIHdvdWxkIGNhbGwgdGhpcyB2ZXJzaW9uIG9mIHRoZSBzdXBlciBjbGFzcyBjb25zdHJ1Y3RvciBhbmQKKyAgICAgKiBzdXBwbHkgPGNvZGU+Ui5hdHRyLmJ1dHRvblN0eWxlPC9jb2RlPiBmb3IgPHZhcj5kZWZTdHlsZUF0dHI8L3Zhcj47IHRoaXMKKyAgICAgKiBhbGxvd3MgdGhlIHRoZW1lJ3MgYnV0dG9uIHN0eWxlIHRvIG1vZGlmeSBhbGwgb2YgdGhlIGJhc2UgdmlldyBhdHRyaWJ1dGVzCisgICAgICogKGluIHBhcnRpY3VsYXIgaXRzIGJhY2tncm91bmQpIGFzIHdlbGwgYXMgdGhlIEJ1dHRvbiBjbGFzcydzIGF0dHJpYnV0ZXMuCiAgICAgICoKICAgICAgKiBAcGFyYW0gY29udGV4dCBUaGUgQ29udGV4dCB0aGUgdmlldyBpcyBydW5uaW5nIGluLCB0aHJvdWdoIHdoaWNoIGl0IGNhbgogICAgICAqICAgICAgICBhY2Nlc3MgdGhlIGN1cnJlbnQgdGhlbWUsIHJlc291cmNlcywgZXRjLgogICAgICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBvZiB0aGUgWE1MIHRhZyB0aGF0IGlzIGluZmxhdGluZyB0aGUgdmlldy4KICAgICAgKiBAcGFyYW0gZGVmU3R5bGVBdHRyIEFuIGF0dHJpYnV0ZSBpbiB0aGUgY3VycmVudCB0aGVtZSB0aGF0IGNvbnRhaW5zIGEKLSAgICAgKiAgICAgICAgcmVmZXJlbmNlIHRvIGEgc3R5bGUgcmVzb3VyY2UgdG8gYXBwbHkgdG8gdGhpcyB2aWV3LiBJZiAwLCBubwotICAgICAqICAgICAgICBkZWZhdWx0IHN0eWxlIHdpbGwgYmUgYXBwbGllZC4KKyAgICAgKiAgICAgICAgcmVmZXJlbmNlIHRvIGEgc3R5bGUgcmVzb3VyY2UgdGhhdCBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IKKyAgICAgKiAgICAgICAgdGhlIHZpZXcuIENhbiBiZSAwIHRvIG5vdCBsb29rIGZvciBkZWZhdWx0cy4KICAgICAgKiBAc2VlICNWaWV3KENvbnRleHQsIEF0dHJpYnV0ZVNldCkKICAgICAgKi8KICAgICBwdWJsaWMgVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gaW5mbGF0aW9uIGZyb20gWE1MIGFuZCBhcHBseSBhIGNsYXNzLXNwZWNpZmljIGJhc2Ugc3R5bGUgZnJvbSBhCisgICAgICogdGhlbWUgYXR0cmlidXRlIG9yIHN0eWxlIHJlc291cmNlLiBUaGlzIGNvbnN0cnVjdG9yIG9mIFZpZXcgYWxsb3dzCisgICAgICogc3ViY2xhc3NlcyB0byB1c2UgdGhlaXIgb3duIGJhc2Ugc3R5bGUgd2hlbiB0aGV5IGFyZSBpbmZsYXRpbmcuCisgICAgICogPHA+CisgICAgICogV2hlbiBkZXRlcm1pbmluZyB0aGUgZmluYWwgdmFsdWUgb2YgYSBwYXJ0aWN1bGFyIGF0dHJpYnV0ZSwgdGhlcmUgYXJlCisgICAgICogZm91ciBpbnB1dHMgdGhhdCBjb21lIGludG8gcGxheToKKyAgICAgKiA8b2w+CisgICAgICogPGxpPkFueSBhdHRyaWJ1dGUgdmFsdWVzIGluIHRoZSBnaXZlbiBBdHRyaWJ1dGVTZXQuCisgICAgICogPGxpPlRoZSBzdHlsZSByZXNvdXJjZSBzcGVjaWZpZWQgaW4gdGhlIEF0dHJpYnV0ZVNldCAobmFtZWQgInN0eWxlIikuCisgICAgICogPGxpPlRoZSBkZWZhdWx0IHN0eWxlIHNwZWNpZmllZCBieSA8dmFyPmRlZlN0eWxlQXR0cjwvdmFyPi4KKyAgICAgKiA8bGk+VGhlIGRlZmF1bHQgc3R5bGUgc3BlY2lmaWVkIGJ5IDx2YXI+ZGVmU3R5bGVSZXM8L3Zhcj4uCisgICAgICogPGxpPlRoZSBiYXNlIHZhbHVlcyBpbiB0aGlzIHRoZW1lLgorICAgICAqIDwvb2w+CisgICAgICogPHA+CisgICAgICogRWFjaCBvZiB0aGVzZSBpbnB1dHMgaXMgY29uc2lkZXJlZCBpbi1vcmRlciwgd2l0aCB0aGUgZmlyc3QgbGlzdGVkIHRha2luZworICAgICAqIHByZWNlZGVuY2Ugb3ZlciB0aGUgZm9sbG93aW5nIG9uZXMuIEluIG90aGVyIHdvcmRzLCBpZiBpbiB0aGUKKyAgICAgKiBBdHRyaWJ1dGVTZXQgeW91IGhhdmUgc3VwcGxpZWQgPGNvZGU+Jmx0O0J1dHRvbiAqIHRleHRDb2xvcj0iI2ZmMDAwMDAwIiZndDs8L2NvZGU+CisgICAgICogLCB0aGVuIHRoZSBidXR0b24ncyB0ZXh0IHdpbGwgPGVtPmFsd2F5czwvZW0+IGJlIGJsYWNrLCByZWdhcmRsZXNzIG9mCisgICAgICogd2hhdCBpcyBzcGVjaWZpZWQgaW4gYW55IG9mIHRoZSBzdHlsZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29udGV4dCBUaGUgQ29udGV4dCB0aGUgdmlldyBpcyBydW5uaW5nIGluLCB0aHJvdWdoIHdoaWNoIGl0IGNhbgorICAgICAqICAgICAgICBhY2Nlc3MgdGhlIGN1cnJlbnQgdGhlbWUsIHJlc291cmNlcywgZXRjLgorICAgICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBvZiB0aGUgWE1MIHRhZyB0aGF0IGlzIGluZmxhdGluZyB0aGUgdmlldy4KKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVBdHRyIEFuIGF0dHJpYnV0ZSBpbiB0aGUgY3VycmVudCB0aGVtZSB0aGF0IGNvbnRhaW5zIGEKKyAgICAgKiAgICAgICAgcmVmZXJlbmNlIHRvIGEgc3R5bGUgcmVzb3VyY2UgdGhhdCBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IKKyAgICAgKiAgICAgICAgdGhlIHZpZXcuIENhbiBiZSAwIHRvIG5vdCBsb29rIGZvciBkZWZhdWx0cy4KKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVSZXMgQSByZXNvdXJjZSBpZGVudGlmaWVyIG9mIGEgc3R5bGUgcmVzb3VyY2UgdGhhdAorICAgICAqICAgICAgICBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIHZpZXcsIHVzZWQgb25seSBpZgorICAgICAqICAgICAgICBkZWZTdHlsZUF0dHIgaXMgMCBvciBjYW4gbm90IGJlIGZvdW5kIGluIHRoZSB0aGVtZS4gQ2FuIGJlIDAKKyAgICAgKiAgICAgICAgdG8gbm90IGxvb2sgZm9yIGRlZmF1bHRzLgorICAgICAqIEBzZWUgI1ZpZXcoQ29udGV4dCwgQXR0cmlidXRlU2V0LCBpbnQpCisgICAgICovCisgICAgcHVibGljIFZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgewogICAgICAgICB0aGlzKGNvbnRleHQpOwogCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuVmlldywKLSAgICAgICAgICAgICAgICBkZWZTdHlsZUF0dHIsIDApOworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlZpZXcsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIERyYXdhYmxlIGJhY2tncm91bmQgPSBudWxsOwogCkBAIC00NTg0LDcgKzQ3MTUsNyBAQAogICAgICAqIEBwYXJhbSBwcmV2aW91c2x5Rm9jdXNlZFJlY3QgVGhlIHJlY3RhbmdsZSBvZiB0aGUgdmlldyB0aGF0IGhhZCBmb2N1cwogICAgICAqICAgICAgICBwcmlvciBpbiB0aGlzIFZpZXcncyBjb29yZGluYXRlIHN5c3RlbS4KICAgICAgKi8KLSAgICB2b2lkIGhhbmRsZUZvY3VzR2FpbkludGVybmFsKGludCBkaXJlY3Rpb24sIFJlY3QgcHJldmlvdXNseUZvY3VzZWRSZWN0KSB7CisgICAgdm9pZCBoYW5kbGVGb2N1c0dhaW5JbnRlcm5hbChARm9jdXNSZWFsRGlyZWN0aW9uIGludCBkaXJlY3Rpb24sIFJlY3QgcHJldmlvdXNseUZvY3VzZWRSZWN0KSB7CiAgICAgICAgIGlmIChEQkcpIHsKICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0aGlzICsgIiByZXF1ZXN0Rm9jdXMoKSIpOwogICAgICAgICB9CkBAIC00Nzk1LDcgKzQ5MjYsOCBAQAogICAgICAqICAgICAgICBwYXNzZWQgaW4gYXMgZmluZXIgZ3JhaW5lZCBpbmZvcm1hdGlvbiBhYm91dCB3aGVyZSB0aGUgZm9jdXMgaXMgY29taW5nCiAgICAgICogICAgICAgIGZyb20gKGluIGFkZGl0aW9uIHRvIGRpcmVjdGlvbikuICBXaWxsIGJlIDxjb2RlPm51bGw8L2NvZGU+IG90aGVyd2lzZS4KICAgICAgKi8KLSAgICBwcm90ZWN0ZWQgdm9pZCBvbkZvY3VzQ2hhbmdlZChib29sZWFuIGdhaW5Gb2N1cywgaW50IGRpcmVjdGlvbiwgUmVjdCBwcmV2aW91c2x5Rm9jdXNlZFJlY3QpIHsKKyAgICBwcm90ZWN0ZWQgdm9pZCBvbkZvY3VzQ2hhbmdlZChib29sZWFuIGdhaW5Gb2N1cywgQEZvY3VzRGlyZWN0aW9uIGludCBkaXJlY3Rpb24sCisgICAgICAgICAgICBATnVsbGFibGUgUmVjdCBwcmV2aW91c2x5Rm9jdXNlZFJlY3QpIHsKICAgICAgICAgaWYgKGdhaW5Gb2N1cykgewogICAgICAgICAgICAgc2VuZEFjY2Vzc2liaWxpdHlFdmVudChBY2Nlc3NpYmlsaXR5RXZlbnQuVFlQRV9WSUVXX0ZPQ1VTRUQpOwogICAgICAgICB9IGVsc2UgewpAQCAtNTY1NSw2ICs1Nzg3LDcgQEAKICAgICAgKgogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI1ZpZXdfZHJhd2luZ0NhY2hlUXVhbGl0eQogICAgICAqLworICAgIEBEcmF3aW5nQ2FjaGVRdWFsaXR5CiAgICAgcHVibGljIGludCBnZXREcmF3aW5nQ2FjaGVRdWFsaXR5KCkgewogICAgICAgICByZXR1cm4gbVZpZXdGbGFncyAmIERSQVdJTkdfQ0FDSEVfUVVBTElUWV9NQVNLOwogICAgIH0KQEAgLTU2NzIsNyArNTgwNSw3IEBACiAgICAgICoKICAgICAgKiBAYXR0ciByZWYgYW5kcm9pZC5SLnN0eWxlYWJsZSNWaWV3X2RyYXdpbmdDYWNoZVF1YWxpdHkKICAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzZXREcmF3aW5nQ2FjaGVRdWFsaXR5KGludCBxdWFsaXR5KSB7CisgICAgcHVibGljIHZvaWQgc2V0RHJhd2luZ0NhY2hlUXVhbGl0eShARHJhd2luZ0NhY2hlUXVhbGl0eSBpbnQgcXVhbGl0eSkgewogICAgICAgICBzZXRGbGFncyhxdWFsaXR5LCBEUkFXSU5HX0NBQ0hFX1FVQUxJVFlfTUFTSyk7CiAgICAgfQogCkBAIC02MDA5LDYgKzYxNDIsNyBAQAogICAgICAgICBAVmlld0RlYnVnLkludFRvU3RyaW5nKGZyb20gPSBJTlZJU0lCTEUsIHRvID0gIklOVklTSUJMRSIpLAogICAgICAgICBAVmlld0RlYnVnLkludFRvU3RyaW5nKGZyb20gPSBHT05FLCAgICAgIHRvID0gIkdPTkUiKQogICAgIH0pCisgICAgQFZpc2liaWxpdHkKICAgICBwdWJsaWMgaW50IGdldFZpc2liaWxpdHkoKSB7CiAgICAgICAgIHJldHVybiBtVmlld0ZsYWdzICYgVklTSUJJTElUWV9NQVNLOwogICAgIH0KQEAgLTYwMjAsNyArNjE1NCw3IEBACiAgICAgICogQGF0dHIgcmVmIGFuZHJvaWQuUi5zdHlsZWFibGUjVmlld192aXNpYmlsaXR5CiAgICAgICovCiAgICAgQFJlbW90YWJsZVZpZXdNZXRob2QKLSAgICBwdWJsaWMgdm9pZCBzZXRWaXNpYmlsaXR5KGludCB2aXNpYmlsaXR5KSB7CisgICAgcHVibGljIHZvaWQgc2V0VmlzaWJpbGl0eShAVmlzaWJpbGl0eSBpbnQgdmlzaWJpbGl0eSkgewogICAgICAgICBzZXRGbGFncyh2aXNpYmlsaXR5LCBWSVNJQklMSVRZX01BU0spOwogICAgICAgICBpZiAobUJhY2tncm91bmQgIT0gbnVsbCkgbUJhY2tncm91bmQuc2V0VmlzaWJsZSh2aXNpYmlsaXR5ID09IFZJU0lCTEUsIGZhbHNlKTsKICAgICB9CkBAIC02MTc5LDYgKzYzMTMsNyBAQAogICAgICAgICBAVmlld0RlYnVnLkludFRvU3RyaW5nKGZyb20gPSBMQVlPVVRfRElSRUNUSU9OX0lOSEVSSVQsIHRvID0gIklOSEVSSVQiKSwKICAgICAgICAgQFZpZXdEZWJ1Zy5JbnRUb1N0cmluZyhmcm9tID0gTEFZT1VUX0RJUkVDVElPTl9MT0NBTEUsICB0byA9ICJMT0NBTEUiKQogICAgIH0pCisgICAgQExheW91dERpcgogICAgIHB1YmxpYyBpbnQgZ2V0UmF3TGF5b3V0RGlyZWN0aW9uKCkgewogICAgICAgICByZXR1cm4gKG1Qcml2YXRlRmxhZ3MyICYgUEZMQUcyX0xBWU9VVF9ESVJFQ1RJT05fTUFTSykgPj4gUEZMQUcyX0xBWU9VVF9ESVJFQ1RJT05fTUFTS19TSElGVDsKICAgICB9CkBAIC02MjAxLDcgKzYzMzYsNyBAQAogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI1ZpZXdfbGF5b3V0RGlyZWN0aW9uCiAgICAgICovCiAgICAgQFJlbW90YWJsZVZpZXdNZXRob2QKLSAgICBwdWJsaWMgdm9pZCBzZXRMYXlvdXREaXJlY3Rpb24oaW50IGxheW91dERpcmVjdGlvbikgeworICAgIHB1YmxpYyB2b2lkIHNldExheW91dERpcmVjdGlvbihATGF5b3V0RGlyIGludCBsYXlvdXREaXJlY3Rpb24pIHsKICAgICAgICAgaWYgKGdldFJhd0xheW91dERpcmVjdGlvbigpICE9IGxheW91dERpcmVjdGlvbikgewogICAgICAgICAgICAgLy8gUmVzZXQgdGhlIGN1cnJlbnQgbGF5b3V0IGRpcmVjdGlvbiBhbmQgdGhlIHJlc29sdmVkIG9uZQogICAgICAgICAgICAgbVByaXZhdGVGbGFnczIgJj0gflBGTEFHMl9MQVlPVVRfRElSRUNUSU9OX01BU0s7CkBAIC02MjMxLDYgKzYzNjYsNyBAQAogICAgICAgICBAVmlld0RlYnVnLkludFRvU3RyaW5nKGZyb20gPSBMQVlPVVRfRElSRUNUSU9OX0xUUiwgdG8gPSAiUkVTT0xWRURfRElSRUNUSU9OX0xUUiIpLAogICAgICAgICBAVmlld0RlYnVnLkludFRvU3RyaW5nKGZyb20gPSBMQVlPVVRfRElSRUNUSU9OX1JUTCwgdG8gPSAiUkVTT0xWRURfRElSRUNUSU9OX1JUTCIpCiAgICAgfSkKKyAgICBAUmVzb2x2ZWRMYXlvdXREaXIKICAgICBwdWJsaWMgaW50IGdldExheW91dERpcmVjdGlvbigpIHsKICAgICAgICAgZmluYWwgaW50IHRhcmdldFNka1ZlcnNpb24gPSBnZXRDb250ZXh0KCkuZ2V0QXBwbGljYXRpb25JbmZvKCkudGFyZ2V0U2RrVmVyc2lvbjsKICAgICAgICAgaWYgKHRhcmdldFNka1ZlcnNpb24gPCBKRUxMWV9CRUFOX01SMSkgewpAQCAtNjYwMCw3ICs2NzM2LDcgQEAKICAgICAgKiBAcmV0dXJuIFRoZSBuZWFyZXN0IGZvY3VzYWJsZSBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdGlvbiwgb3IgbnVsbCBpZiBub25lCiAgICAgICogICAgICAgICBjYW4gYmUgZm91bmQuCiAgICAgICovCi0gICAgcHVibGljIFZpZXcgZm9jdXNTZWFyY2goaW50IGRpcmVjdGlvbikgeworICAgIHB1YmxpYyBWaWV3IGZvY3VzU2VhcmNoKEBGb2N1c1JlYWxEaXJlY3Rpb24gaW50IGRpcmVjdGlvbikgewogICAgICAgICBpZiAobVBhcmVudCAhPSBudWxsKSB7CiAgICAgICAgICAgICByZXR1cm4gbVBhcmVudC5mb2N1c1NlYXJjaCh0aGlzLCBkaXJlY3Rpb24pOwogICAgICAgICB9IGVsc2UgewpAQCAtNjYxOSw3ICs2NzU1LDcgQEAKICAgICAgKiAgICAgICAgRk9DVVNfRE9XTiwgRk9DVVNfTEVGVCwgYW5kIEZPQ1VTX1JJR0hULgogICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGUgdGhpcyB2aWV3IGNvbnN1bWVkIHRoaXMgdW5oYW5kbGVkIG1vdmUuCiAgICAgICovCi0gICAgcHVibGljIGJvb2xlYW4gZGlzcGF0Y2hVbmhhbmRsZWRNb3ZlKFZpZXcgZm9jdXNlZCwgaW50IGRpcmVjdGlvbikgeworICAgIHB1YmxpYyBib29sZWFuIGRpc3BhdGNoVW5oYW5kbGVkTW92ZShWaWV3IGZvY3VzZWQsIEBGb2N1c1JlYWxEaXJlY3Rpb24gaW50IGRpcmVjdGlvbikgewogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC02NjMxLDcgKzY3NjcsNyBAQAogICAgICAqIG9yIEZPQ1VTX0JBQ0tXQVJELgogICAgICAqIEByZXR1cm4gVGhlIHVzZXIgc3BlY2lmaWVkIG5leHQgdmlldywgb3IgbnVsbCBpZiB0aGVyZSBpcyBub25lLgogICAgICAqLwotICAgIFZpZXcgZmluZFVzZXJTZXROZXh0Rm9jdXMoVmlldyByb290LCBpbnQgZGlyZWN0aW9uKSB7CisgICAgVmlldyBmaW5kVXNlclNldE5leHRGb2N1cyhWaWV3IHJvb3QsIEBGb2N1c0RpcmVjdGlvbiBpbnQgZGlyZWN0aW9uKSB7CiAgICAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgICAgICAgICBjYXNlIEZPQ1VTX0xFRlQ6CiAgICAgICAgICAgICAgICAgaWYgKG1OZXh0Rm9jdXNMZWZ0SWQgPT0gVmlldy5OT19JRCkgcmV0dXJuIG51bGw7CkBAIC02NjgxLDcgKzY4MTcsNyBAQAogICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gVGhlIGRpcmVjdGlvbiBvZiB0aGUgZm9jdXMKICAgICAgKiBAcmV0dXJuIEEgbGlzdCBvZiBmb2N1c2FibGUgdmlld3MKICAgICAgKi8KLSAgICBwdWJsaWMgQXJyYXlMaXN0PFZpZXc+IGdldEZvY3VzYWJsZXMoaW50IGRpcmVjdGlvbikgeworICAgIHB1YmxpYyBBcnJheUxpc3Q8Vmlldz4gZ2V0Rm9jdXNhYmxlcyhARm9jdXNEaXJlY3Rpb24gaW50IGRpcmVjdGlvbikgewogICAgICAgICBBcnJheUxpc3Q8Vmlldz4gcmVzdWx0ID0gbmV3IEFycmF5TGlzdDxWaWV3PigyNCk7CiAgICAgICAgIGFkZEZvY3VzYWJsZXMocmVzdWx0LCBkaXJlY3Rpb24pOwogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNjY5NSw3ICs2ODMxLDcgQEAKICAgICAgKiBAcGFyYW0gdmlld3MgRm9jdXNhYmxlIHZpZXdzIGZvdW5kIHNvIGZhcgogICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gVGhlIGRpcmVjdGlvbiBvZiB0aGUgZm9jdXMKICAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBhZGRGb2N1c2FibGVzKEFycmF5TGlzdDxWaWV3PiB2aWV3cywgaW50IGRpcmVjdGlvbikgeworICAgIHB1YmxpYyB2b2lkIGFkZEZvY3VzYWJsZXMoQXJyYXlMaXN0PFZpZXc+IHZpZXdzLCBARm9jdXNEaXJlY3Rpb24gaW50IGRpcmVjdGlvbikgewogICAgICAgICBhZGRGb2N1c2FibGVzKHZpZXdzLCBkaXJlY3Rpb24sIEZPQ1VTQUJMRVNfVE9VQ0hfTU9ERSk7CiAgICAgfQogCkBAIC02NzE1LDcgKzY4NTEsOCBAQAogICAgICAqIEBzZWUgI0ZPQ1VTQUJMRVNfQUxMCiAgICAgICogQHNlZSAjRk9DVVNBQkxFU19UT1VDSF9NT0RFCiAgICAgICovCi0gICAgcHVibGljIHZvaWQgYWRkRm9jdXNhYmxlcyhBcnJheUxpc3Q8Vmlldz4gdmlld3MsIGludCBkaXJlY3Rpb24sIGludCBmb2N1c2FibGVNb2RlKSB7CisgICAgcHVibGljIHZvaWQgYWRkRm9jdXNhYmxlcyhBcnJheUxpc3Q8Vmlldz4gdmlld3MsIEBGb2N1c0RpcmVjdGlvbiBpbnQgZGlyZWN0aW9uLAorICAgICAgICAgICAgQEZvY3VzYWJsZU1vZGUgaW50IGZvY3VzYWJsZU1vZGUpIHsKICAgICAgICAgaWYgKHZpZXdzID09IG51bGwpIHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNjc0NCw3ICs2ODgxLDggQEAKICAgICAgKiBAc2VlICNGSU5EX1ZJRVdTX1dJVEhfQ09OVEVOVF9ERVNDUklQVElPTgogICAgICAqIEBzZWUgI3NldENvbnRlbnREZXNjcmlwdGlvbihDaGFyU2VxdWVuY2UpCiAgICAgICovCi0gICAgcHVibGljIHZvaWQgZmluZFZpZXdzV2l0aFRleHQoQXJyYXlMaXN0PFZpZXc+IG91dFZpZXdzLCBDaGFyU2VxdWVuY2Ugc2VhcmNoZWQsIGludCBmbGFncykgeworICAgIHB1YmxpYyB2b2lkIGZpbmRWaWV3c1dpdGhUZXh0KEFycmF5TGlzdDxWaWV3PiBvdXRWaWV3cywgQ2hhclNlcXVlbmNlIHNlYXJjaGVkLAorICAgICAgICAgICAgQEZpbmRWaWV3RmxhZ3MgaW50IGZsYWdzKSB7CiAgICAgICAgIGlmIChnZXRBY2Nlc3NpYmlsaXR5Tm9kZVByb3ZpZGVyKCkgIT0gbnVsbCkgewogICAgICAgICAgICAgaWYgKChmbGFncyAmIEZJTkRfVklFV1NfV0lUSF9BQ0NFU1NJQklMSVRZX05PREVfUFJPVklERVJTKSAhPSAwKSB7CiAgICAgICAgICAgICAgICAgb3V0Vmlld3MuYWRkKHRoaXMpOwpAQCAtNzIzNSw3ICs3MzczLDcgQEAKICAgICB9CiAKICAgICAvKioKLSAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIFZpZXcgaGFzIHJlZ2lzdGVyZWQgY2FsbGJhY2tzIHdpY2ggbWFrZXMgaXQKKyAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIFZpZXcgaGFzIHJlZ2lzdGVyZWQgY2FsbGJhY2tzIHdoaWNoIG1ha2VzIGl0CiAgICAgICogaW1wb3J0YW50IGZvciBhY2Nlc3NpYmlsaXR5LgogICAgICAqCiAgICAgICogQHJldHVybiBUcnVlIGlmIHRoZSB2aWV3IGlzIGFjdGlvbmFibGUgZm9yIGFjY2Vzc2liaWxpdHkuCkBAIC03MjU0LDcgKzczOTIsNyBAQAogICAgICAqIG5vdGlmaWNhdGlvbiBpcyBhdCBhdCBtb3N0IG9uY2UgZXZlcnkKICAgICAgKiB7QGxpbmsgVmlld0NvbmZpZ3VyYXRpb24jZ2V0U2VuZFJlY3VycmluZ0FjY2Vzc2liaWxpdHlFdmVudHNJbnRlcnZhbCgpfQogICAgICAqIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGxvYWQgdG8gdGhlIHN5c3RlbS4gQWxzbyBvbmNlIGEgdmlldyBoYXMgYSBwZW5kaW5nCi0gICAgICogbm90aWZ1Y2F0aW9uIHRoaXMgbWV0aG9kIGlzIGEgTk9QIHVudGlsIHRoZSBub3RpZmljYXRpb24gaGFzIGJlZW4gc2VudC4KKyAgICAgKiBub3RpZmljYXRpb24gdGhpcyBtZXRob2QgaXMgYSBOT1AgdW50aWwgdGhlIG5vdGlmaWNhdGlvbiBoYXMgYmVlbiBzZW50LgogICAgICAqCiAgICAgICogQGhpZGUKICAgICAgKi8KQEAgLTc5MzQsNyArODA3Miw4IEBACiAgICAgICogQHBhcmFtIHZpc2liaWxpdHkgVGhlIG5ldyB2aXNpYmlsaXR5IG9mIGNoYW5nZWRWaWV3OiB7QGxpbmsgI1ZJU0lCTEV9LAogICAgICAqIHtAbGluayAjSU5WSVNJQkxFfSBvciB7QGxpbmsgI0dPTkV9LgogICAgICAqLwotICAgIHByb3RlY3RlZCB2b2lkIGRpc3BhdGNoVmlzaWJpbGl0eUNoYW5nZWQoVmlldyBjaGFuZ2VkVmlldywgaW50IHZpc2liaWxpdHkpIHsKKyAgICBwcm90ZWN0ZWQgdm9pZCBkaXNwYXRjaFZpc2liaWxpdHlDaGFuZ2VkKEBOb25OdWxsIFZpZXcgY2hhbmdlZFZpZXcsCisgICAgICAgICAgICBAVmlzaWJpbGl0eSBpbnQgdmlzaWJpbGl0eSkgewogICAgICAgICBvblZpc2liaWxpdHlDaGFuZ2VkKGNoYW5nZWRWaWV3LCB2aXNpYmlsaXR5KTsKICAgICB9CiAKQEAgLTc5NDUsNyArODA4NCw3IEBACiAgICAgICogQHBhcmFtIHZpc2liaWxpdHkgVGhlIG5ldyB2aXNpYmlsaXR5IG9mIGNoYW5nZWRWaWV3OiB7QGxpbmsgI1ZJU0lCTEV9LAogICAgICAqIHtAbGluayAjSU5WSVNJQkxFfSBvciB7QGxpbmsgI0dPTkV9LgogICAgICAqLwotICAgIHByb3RlY3RlZCB2b2lkIG9uVmlzaWJpbGl0eUNoYW5nZWQoVmlldyBjaGFuZ2VkVmlldywgaW50IHZpc2liaWxpdHkpIHsKKyAgICBwcm90ZWN0ZWQgdm9pZCBvblZpc2liaWxpdHlDaGFuZ2VkKEBOb25OdWxsIFZpZXcgY2hhbmdlZFZpZXcsIEBWaXNpYmlsaXR5IGludCB2aXNpYmlsaXR5KSB7CiAgICAgICAgIGlmICh2aXNpYmlsaXR5ID09IFZJU0lCTEUpIHsKICAgICAgICAgICAgIGlmIChtQXR0YWNoSW5mbyAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgaW5pdGlhbEF3YWtlblNjcm9sbEJhcnMoKTsKQEAgLTc5NjQsNyArODEwMyw3IEBACiAgICAgICogQHBhcmFtIGhpbnQgQSBoaW50IGFib3V0IHdoZXRoZXIgb3Igbm90IHRoaXMgdmlldyBpcyBkaXNwbGF5ZWQ6CiAgICAgICoge0BsaW5rICNWSVNJQkxFfSBvciB7QGxpbmsgI0lOVklTSUJMRX0uCiAgICAgICovCi0gICAgcHVibGljIHZvaWQgZGlzcGF0Y2hEaXNwbGF5SGludChpbnQgaGludCkgeworICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoRGlzcGxheUhpbnQoQFZpc2liaWxpdHkgaW50IGhpbnQpIHsKICAgICAgICAgb25EaXNwbGF5SGludChoaW50KTsKICAgICB9CiAKQEAgLTc5NzcsNyArODExNiw3IEBACiAgICAgICogQHBhcmFtIGhpbnQgQSBoaW50IGFib3V0IHdoZXRoZXIgb3Igbm90IHRoaXMgdmlldyBpcyBkaXNwbGF5ZWQ6CiAgICAgICoge0BsaW5rICNWSVNJQkxFfSBvciB7QGxpbmsgI0lOVklTSUJMRX0uCiAgICAgICovCi0gICAgcHJvdGVjdGVkIHZvaWQgb25EaXNwbGF5SGludChpbnQgaGludCkgeworICAgIHByb3RlY3RlZCB2b2lkIG9uRGlzcGxheUhpbnQoQFZpc2liaWxpdHkgaW50IGhpbnQpIHsKICAgICB9CiAKICAgICAvKioKQEAgLTc5ODgsNyArODEyNyw3IEBACiAgICAgICoKICAgICAgKiBAc2VlICNvbldpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGludCkKICAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBkaXNwYXRjaFdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGludCB2aXNpYmlsaXR5KSB7CisgICAgcHVibGljIHZvaWQgZGlzcGF0Y2hXaW5kb3dWaXNpYmlsaXR5Q2hhbmdlZChAVmlzaWJpbGl0eSBpbnQgdmlzaWJpbGl0eSkgewogICAgICAgICBvbldpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKHZpc2liaWxpdHkpOwogICAgIH0KIApAQCAtODAwMiw3ICs4MTQxLDcgQEAKICAgICAgKgogICAgICAqIEBwYXJhbSB2aXNpYmlsaXR5IFRoZSBuZXcgdmlzaWJpbGl0eSBvZiB0aGUgd2luZG93LgogICAgICAqLwotICAgIHByb3RlY3RlZCB2b2lkIG9uV2luZG93VmlzaWJpbGl0eUNoYW5nZWQoaW50IHZpc2liaWxpdHkpIHsKKyAgICBwcm90ZWN0ZWQgdm9pZCBvbldpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKEBWaXNpYmlsaXR5IGludCB2aXNpYmlsaXR5KSB7CiAgICAgICAgIGlmICh2aXNpYmlsaXR5ID09IFZJU0lCTEUpIHsKICAgICAgICAgICAgIGluaXRpYWxBd2FrZW5TY3JvbGxCYXJzKCk7CiAgICAgICAgIH0KQEAgLTgwMTQsNiArODE1Myw3IEBACiAgICAgICoKICAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIGN1cnJlbnQgdmlzaWJpbGl0eSBvZiB0aGUgdmlldydzIHdpbmRvdy4KICAgICAgKi8KKyAgICBAVmlzaWJpbGl0eQogICAgIHB1YmxpYyBpbnQgZ2V0V2luZG93VmlzaWJpbGl0eSgpIHsKICAgICAgICAgcmV0dXJuIG1BdHRhY2hJbmZvICE9IG51bGwgPyBtQXR0YWNoSW5mby5tV2luZG93VmlzaWJpbGl0eSA6IEdPTkU7CiAgICAgfQpAQCAtMTA4MDYsMTUgKzEwOTQ2LDYgQEAKICAgICAgICAgICAgIG1Qcml2YXRlRmxhZ3MgfD0gUEZMQUdfRElSVFk7CiAgICAgICAgICAgICBmaW5hbCBWaWV3UGFyZW50IHAgPSBtUGFyZW50OwogICAgICAgICAgICAgZmluYWwgQXR0YWNoSW5mbyBhaSA9IG1BdHRhY2hJbmZvOwotICAgICAgICAgICAgLy9ub2luc3BlY3Rpb24gUG9pbnRsZXNzQm9vbGVhbkV4cHJlc3Npb24sQ29uc3RhbnRDb25kaXRpb25zCi0gICAgICAgICAgICBpZiAoIUhhcmR3YXJlUmVuZGVyZXIuUkVOREVSX0RJUlRZX1JFR0lPTlMpIHsKLSAgICAgICAgICAgICAgICBpZiAocCAhPSBudWxsICYmIGFpICE9IG51bGwgJiYgYWkubUhhcmR3YXJlQWNjZWxlcmF0ZWQpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gZmFzdC10cmFjayBmb3IgR0wtZW5hYmxlZCBhcHBsaWNhdGlvbnM7IGp1c3QgaW52YWxpZGF0ZSB0aGUgd2hvbGUgaGllcmFyY2h5Ci0gICAgICAgICAgICAgICAgICAgIC8vIHdpdGggYSBudWxsIGRpcnR5IHJlY3QsIHdoaWNoIHRlbGxzIHRoZSBWaWV3QW5jZXN0b3IgdG8gcmVkcmF3IGV2ZXJ5dGhpbmcKLSAgICAgICAgICAgICAgICAgICAgcC5pbnZhbGlkYXRlQ2hpbGQodGhpcywgbnVsbCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAocCAhPSBudWxsICYmIGFpICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgc2Nyb2xsWCA9IG1TY3JvbGxYOwogICAgICAgICAgICAgICAgIGZpbmFsIGludCBzY3JvbGxZID0gbVNjcm9sbFk7CkBAIC0xMDg0OSwxNSArMTA5ODAsNiBAQAogICAgICAgICAgICAgbVByaXZhdGVGbGFncyB8PSBQRkxBR19ESVJUWTsKICAgICAgICAgICAgIGZpbmFsIFZpZXdQYXJlbnQgcCA9IG1QYXJlbnQ7CiAgICAgICAgICAgICBmaW5hbCBBdHRhY2hJbmZvIGFpID0gbUF0dGFjaEluZm87Ci0gICAgICAgICAgICAvL25vaW5zcGVjdGlvbiBQb2ludGxlc3NCb29sZWFuRXhwcmVzc2lvbixDb25zdGFudENvbmRpdGlvbnMKLSAgICAgICAgICAgIGlmICghSGFyZHdhcmVSZW5kZXJlci5SRU5ERVJfRElSVFlfUkVHSU9OUykgewotICAgICAgICAgICAgICAgIGlmIChwICE9IG51bGwgJiYgYWkgIT0gbnVsbCAmJiBhaS5tSGFyZHdhcmVBY2NlbGVyYXRlZCkgewotICAgICAgICAgICAgICAgICAgICAvLyBmYXN0LXRyYWNrIGZvciBHTC1lbmFibGVkIGFwcGxpY2F0aW9uczsganVzdCBpbnZhbGlkYXRlIHRoZSB3aG9sZSBoaWVyYXJjaHkKLSAgICAgICAgICAgICAgICAgICAgLy8gd2l0aCBhIG51bGwgZGlydHkgcmVjdCwgd2hpY2ggdGVsbHMgdGhlIFZpZXdBbmNlc3RvciB0byByZWRyYXcgZXZlcnl0aGluZwotICAgICAgICAgICAgICAgICAgICBwLmludmFsaWRhdGVDaGlsZCh0aGlzLCBudWxsKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChwICE9IG51bGwgJiYgYWkgIT0gbnVsbCAmJiBsIDwgciAmJiB0IDwgYikgewogICAgICAgICAgICAgICAgIGZpbmFsIGludCBzY3JvbGxYID0gbVNjcm9sbFg7CiAgICAgICAgICAgICAgICAgZmluYWwgaW50IHNjcm9sbFkgPSBtU2Nyb2xsWTsKQEAgLTEwOTA1LDE1ICsxMTAyNyw2IEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBmaW5hbCBBdHRhY2hJbmZvIGFpID0gbUF0dGFjaEluZm87CiAgICAgICAgICAgICBmaW5hbCBWaWV3UGFyZW50IHAgPSBtUGFyZW50OwotICAgICAgICAgICAgLy9ub2luc3BlY3Rpb24gUG9pbnRsZXNzQm9vbGVhbkV4cHJlc3Npb24sQ29uc3RhbnRDb25kaXRpb25zCi0gICAgICAgICAgICBpZiAoIUhhcmR3YXJlUmVuZGVyZXIuUkVOREVSX0RJUlRZX1JFR0lPTlMpIHsKLSAgICAgICAgICAgICAgICBpZiAocCAhPSBudWxsICYmIGFpICE9IG51bGwgJiYgYWkubUhhcmR3YXJlQWNjZWxlcmF0ZWQpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gZmFzdC10cmFjayBmb3IgR0wtZW5hYmxlZCBhcHBsaWNhdGlvbnM7IGp1c3QgaW52YWxpZGF0ZSB0aGUgd2hvbGUgaGllcmFyY2h5Ci0gICAgICAgICAgICAgICAgICAgIC8vIHdpdGggYSBudWxsIGRpcnR5IHJlY3QsIHdoaWNoIHRlbGxzIHRoZSBWaWV3QW5jZXN0b3IgdG8gcmVkcmF3IGV2ZXJ5dGhpbmcKLSAgICAgICAgICAgICAgICAgICAgcC5pbnZhbGlkYXRlQ2hpbGQodGhpcywgbnVsbCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChwICE9IG51bGwgJiYgYWkgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgIGZpbmFsIFJlY3QgciA9IGFpLm1UbXBJbnZhbFJlY3Q7CkBAIC0xMTY5NCw3ICsxMTgwNyw3IEBACiAgICAgICoKICAgICAgKiBAYXR0ciByZWYgYW5kcm9pZC5SLnN0eWxlYWJsZSNWaWV3X3Njcm9sbGJhclN0eWxlCiAgICAgICovCi0gICAgcHVibGljIHZvaWQgc2V0U2Nyb2xsQmFyU3R5bGUoaW50IHN0eWxlKSB7CisgICAgcHVibGljIHZvaWQgc2V0U2Nyb2xsQmFyU3R5bGUoQFNjcm9sbEJhclN0eWxlIGludCBzdHlsZSkgewogICAgICAgICBpZiAoc3R5bGUgIT0gKG1WaWV3RmxhZ3MgJiBTQ1JPTExCQVJTX1NUWUxFX01BU0spKSB7CiAgICAgICAgICAgICBtVmlld0ZsYWdzID0gKG1WaWV3RmxhZ3MgJiB+U0NST0xMQkFSU19TVFlMRV9NQVNLKSB8IChzdHlsZSAmIFNDUk9MTEJBUlNfU1RZTEVfTUFTSyk7CiAgICAgICAgICAgICBjb21wdXRlT3BhcXVlRmxhZ3MoKTsKQEAgLTExNzE4LDYgKzExODMxLDcgQEAKICAgICAgICAgICAgIEBWaWV3RGVidWcuSW50VG9TdHJpbmcoZnJvbSA9IFNDUk9MTEJBUlNfT1VUU0lERV9PVkVSTEFZLCB0byA9ICJPVVRTSURFX09WRVJMQVkiKSwKICAgICAgICAgICAgIEBWaWV3RGVidWcuSW50VG9TdHJpbmcoZnJvbSA9IFNDUk9MTEJBUlNfT1VUU0lERV9JTlNFVCwgdG8gPSAiT1VUU0lERV9JTlNFVCIpCiAgICAgfSkKKyAgICBAU2Nyb2xsQmFyU3R5bGUKICAgICBwdWJsaWMgaW50IGdldFNjcm9sbEJhclN0eWxlKCkgewogICAgICAgICByZXR1cm4gbVZpZXdGbGFncyAmIFNDUk9MTEJBUlNfU1RZTEVfTUFTSzsKICAgICB9CkBAIC0xMjIxOSw3ICsxMjMzMyw3IEBACiAgICAgICogQHNlZSAjTEFZT1VUX0RJUkVDVElPTl9MVFIKICAgICAgKiBAc2VlICNMQVlPVVRfRElSRUNUSU9OX1JUTAogICAgICAqLwotICAgIHB1YmxpYyB2b2lkIG9uUnRsUHJvcGVydGllc0NoYW5nZWQoaW50IGxheW91dERpcmVjdGlvbikgeworICAgIHB1YmxpYyB2b2lkIG9uUnRsUHJvcGVydGllc0NoYW5nZWQoQFJlc29sdmVkTGF5b3V0RGlyIGludCBsYXlvdXREaXJlY3Rpb24pIHsKICAgICB9CiAKICAgICAvKioKQEAgLTEzMjkyLDcgKzEzNDA2LDcgQEAKICAgICAgICAgICAgICAgICBtUmVjcmVhdGVEaXNwbGF5TGlzdCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoZGlzcGxheUxpc3QgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGRpc3BsYXlMaXN0ID0gbUF0dGFjaEluZm8ubUhhcmR3YXJlUmVuZGVyZXIuY3JlYXRlRGlzcGxheUxpc3QoZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOworICAgICAgICAgICAgICAgIGRpc3BsYXlMaXN0ID0gRGlzcGxheUxpc3QuY3JlYXRlKGdldENsYXNzKCkuZ2V0TmFtZSgpKTsKICAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBjcmVhdGluZyBhIG5ldyBkaXNwbGF5IGxpc3QsIG1ha2Ugc3VyZSBvdXIgcGFyZW50IGdldHMgaW52YWxpZGF0ZWQKICAgICAgICAgICAgICAgICAvLyBzaW5jZSB0aGV5IHdpbGwgbmVlZCB0byByZWNyZWF0ZSB0aGVpciBkaXNwbGF5IGxpc3QgdG8gYWNjb3VudCBmb3IgdGhpcwogICAgICAgICAgICAgICAgIC8vIG5ldyBjaGlsZCBkaXNwbGF5IGxpc3QuCkBAIC0xNTA1Miw3ICsxNTE2Niw3IEBACiAgICAgICoKICAgICAgKiBAaGlkZQogICAgICAqLwotICAgIHB1YmxpYyB2b2lkIG9uUmVzb2x2ZURyYXdhYmxlcyhpbnQgbGF5b3V0RGlyZWN0aW9uKSB7CisgICAgcHVibGljIHZvaWQgb25SZXNvbHZlRHJhd2FibGVzKEBSZXNvbHZlZExheW91dERpciBpbnQgbGF5b3V0RGlyZWN0aW9uKSB7CiAgICAgfQogCiAgICAgLyoqCkBAIC0xNzg1Niw2ICsxNzk3MCw3IEBACiAgICAgICAgICAgICBAVmlld0RlYnVnLkludFRvU3RyaW5nKGZyb20gPSBURVhUX0FMSUdOTUVOVF9WSUVXX1NUQVJULCB0byA9ICJWSUVXX1NUQVJUIiksCiAgICAgICAgICAgICBAVmlld0RlYnVnLkludFRvU3RyaW5nKGZyb20gPSBURVhUX0FMSUdOTUVOVF9WSUVXX0VORCwgdG8gPSAiVklFV19FTkQiKQogICAgIH0pCisgICAgQFRleHRBbGlnbm1lbnQKICAgICBwdWJsaWMgaW50IGdldFJhd1RleHRBbGlnbm1lbnQoKSB7CiAgICAgICAgIHJldHVybiAobVByaXZhdGVGbGFnczIgJiBQRkxBRzJfVEVYVF9BTElHTk1FTlRfTUFTSykgPj4gUEZMQUcyX1RFWFRfQUxJR05NRU5UX01BU0tfU0hJRlQ7CiAgICAgfQpAQCAtMTc4NzksNyArMTc5OTQsNyBAQAogICAgICAqCiAgICAgICogQGF0dHIgcmVmIGFuZHJvaWQuUi5zdHlsZWFibGUjVmlld190ZXh0QWxpZ25tZW50CiAgICAgICovCi0gICAgcHVibGljIHZvaWQgc2V0VGV4dEFsaWdubWVudChpbnQgdGV4dEFsaWdubWVudCkgeworICAgIHB1YmxpYyB2b2lkIHNldFRleHRBbGlnbm1lbnQoQFRleHRBbGlnbm1lbnQgaW50IHRleHRBbGlnbm1lbnQpIHsKICAgICAgICAgaWYgKHRleHRBbGlnbm1lbnQgIT0gZ2V0UmF3VGV4dEFsaWdubWVudCgpKSB7CiAgICAgICAgICAgICAvLyBSZXNldCB0aGUgY3VycmVudCBhbmQgcmVzb2x2ZWQgdGV4dCBhbGlnbm1lbnQKICAgICAgICAgICAgIG1Qcml2YXRlRmxhZ3MyICY9IH5QRkxBRzJfVEVYVF9BTElHTk1FTlRfTUFTSzsKQEAgLTE3OTIwLDYgKzE4MDM1LDcgQEAKICAgICAgICAgICAgIEBWaWV3RGVidWcuSW50VG9TdHJpbmcoZnJvbSA9IFRFWFRfQUxJR05NRU5UX1ZJRVdfU1RBUlQsIHRvID0gIlZJRVdfU1RBUlQiKSwKICAgICAgICAgICAgIEBWaWV3RGVidWcuSW50VG9TdHJpbmcoZnJvbSA9IFRFWFRfQUxJR05NRU5UX1ZJRVdfRU5ELCB0byA9ICJWSUVXX0VORCIpCiAgICAgfSkKKyAgICBAVGV4dEFsaWdubWVudAogICAgIHB1YmxpYyBpbnQgZ2V0VGV4dEFsaWdubWVudCgpIHsKICAgICAgICAgcmV0dXJuIChtUHJpdmF0ZUZsYWdzMiAmIFBGTEFHMl9URVhUX0FMSUdOTUVOVF9SRVNPTFZFRF9NQVNLKSA+PgogICAgICAgICAgICAgICAgIFBGTEFHMl9URVhUX0FMSUdOTUVOVF9SRVNPTFZFRF9NQVNLX1NISUZUOwpAQCAtMTg3MzIsNyArMTg4NDgsNiBAQAogICAgICAgICBWaWV3IG1Sb290VmlldzsKIAogICAgICAgICBJQmluZGVyIG1QYW5lbFBhcmVudFdpbmRvd1Rva2VuOwotICAgICAgICBTdXJmYWNlIG1TdXJmYWNlOwogCiAgICAgICAgIGJvb2xlYW4gbUhhcmR3YXJlQWNjZWxlcmF0ZWQ7CiAgICAgICAgIGJvb2xlYW4gbUhhcmR3YXJlQWNjZWxlcmF0aW9uUmVxdWVzdGVkOwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9WaWV3R3JvdXAuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvVmlld0dyb3VwLmphdmEKaW5kZXggOTQxNDIzNy4uZGQyYmFmNiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9WaWV3R3JvdXAuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L1ZpZXdHcm91cC5qYXZhCkBAIC00NTYsMjAgKzQ1NiwyMSBAQAogICAgIHByaXZhdGUgaW50IG1DaGlsZENvdW50V2l0aFRyYW5zaWVudFN0YXRlID0gMDsKIAogICAgIHB1YmxpYyBWaWV3R3JvdXAoQ29udGV4dCBjb250ZXh0KSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQpOwotICAgICAgICBpbml0Vmlld0dyb3VwKCk7CisgICAgICAgIHRoaXMoY29udGV4dCwgbnVsbCk7CiAgICAgfQogCiAgICAgcHVibGljIFZpZXdHcm91cChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycyk7Ci0gICAgICAgIGluaXRWaWV3R3JvdXAoKTsKLSAgICAgICAgaW5pdEZyb21BdHRyaWJ1dGVzKGNvbnRleHQsIGF0dHJzKTsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgMCk7CiAgICAgfQogCi0gICAgcHVibGljIFZpZXdHcm91cChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIFZpZXdHcm91cChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBWaWV3R3JvdXAoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIGluaXRWaWV3R3JvdXAoKTsKLSAgICAgICAgaW5pdEZyb21BdHRyaWJ1dGVzKGNvbnRleHQsIGF0dHJzKTsKKyAgICAgICAgaW5pdEZyb21BdHRyaWJ1dGVzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICB9CiAKICAgICBwcml2YXRlIGJvb2xlYW4gZGVidWdEcmF3KCkgewpAQCAtNDk5LDkgKzUwMCw5IEBACiAgICAgICAgIG1QZXJzaXN0ZW50RHJhd2luZ0NhY2hlID0gUEVSU0lTVEVOVF9TQ1JPTExJTkdfQ0FDSEU7CiAgICAgfQogCi0gICAgcHJpdmF0ZSB2b2lkIGluaXRGcm9tQXR0cmlidXRlcyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgewotICAgICAgICBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCi0gICAgICAgICAgICAgICAgUi5zdHlsZWFibGUuVmlld0dyb3VwKTsKKyAgICBwcml2YXRlIHZvaWQgaW5pdEZyb21BdHRyaWJ1dGVzKAorICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsIFIuc3R5bGVhYmxlLlZpZXdHcm91cCk7CiAKICAgICAgICAgZmluYWwgaW50IE4gPSBhLmdldEluZGV4Q291bnQoKTsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKQEAgLTI1MTAsMTMgKzI1MTEsMTMgQEAKICAgICB2b2lkIG9uSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHlOb2RlSW5mb0ludGVybmFsKEFjY2Vzc2liaWxpdHlOb2RlSW5mbyBpbmZvKSB7CiAgICAgICAgIHN1cGVyLm9uSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHlOb2RlSW5mb0ludGVybmFsKGluZm8pOwogICAgICAgICBpZiAobUF0dGFjaEluZm8gIT0gbnVsbCkgewotICAgICAgICAgICAgQXJyYXlMaXN0PFZpZXc+IGNoaWxkcmVuRm9yQWNjZXNzaWJpbGl0eSA9IG1BdHRhY2hJbmZvLm1UZW1wQXJyYXlMaXN0OworICAgICAgICAgICAgZmluYWwgQXJyYXlMaXN0PFZpZXc+IGNoaWxkcmVuRm9yQWNjZXNzaWJpbGl0eSA9IG1BdHRhY2hJbmZvLm1UZW1wQXJyYXlMaXN0OwogICAgICAgICAgICAgY2hpbGRyZW5Gb3JBY2Nlc3NpYmlsaXR5LmNsZWFyKCk7CiAgICAgICAgICAgICBhZGRDaGlsZHJlbkZvckFjY2Vzc2liaWxpdHkoY2hpbGRyZW5Gb3JBY2Nlc3NpYmlsaXR5KTsKICAgICAgICAgICAgIGZpbmFsIGludCBjaGlsZHJlbkZvckFjY2Vzc2liaWxpdHlDb3VudCA9IGNoaWxkcmVuRm9yQWNjZXNzaWJpbGl0eS5zaXplKCk7CiAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoaWxkcmVuRm9yQWNjZXNzaWJpbGl0eUNvdW50OyBpKyspIHsKLSAgICAgICAgICAgICAgICBWaWV3IGNoaWxkID0gY2hpbGRyZW5Gb3JBY2Nlc3NpYmlsaXR5LmdldChpKTsKLSAgICAgICAgICAgICAgICBpbmZvLmFkZENoaWxkKGNoaWxkKTsKKyAgICAgICAgICAgICAgICBmaW5hbCBWaWV3IGNoaWxkID0gY2hpbGRyZW5Gb3JBY2Nlc3NpYmlsaXR5LmdldChpKTsKKyAgICAgICAgICAgICAgICBpbmZvLmFkZENoaWxkVW5jaGVja2VkKGNoaWxkKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNoaWxkcmVuRm9yQWNjZXNzaWJpbGl0eS5jbGVhcigpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L1ZpZXdSb290SW1wbC5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9WaWV3Um9vdEltcGwuamF2YQppbmRleCBiYzBkN2UzLi45MDk5MDdjIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L1ZpZXdSb290SW1wbC5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvVmlld1Jvb3RJbXBsLmphdmEKQEAgLTEwOCw3ICsxMDgsNiBAQAogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUdfSU1GID0gZmFsc2UgfHwgTE9DQUxfTE9HVjsKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHX0NPTkZJR1VSQVRJT04gPSBmYWxzZSB8fCBMT0NBTF9MT0dWOwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUdfRlBTID0gZmFsc2U7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVR19JTlBVVF9QUk9DRVNTSU5HID0gZmFsc2UgfHwgTE9DQUxfTE9HVjsKIAogICAgIC8qKgogICAgICAqIFNldCB0aGlzIHN5c3RlbSBwcm9wZXJ0eSB0byB0cnVlIHRvIGZvcmNlIHRoZSB2aWV3IGhpZXJhcmNoeSB0byByZW5kZXIKQEAgLTExOTUsMTEgKzExOTQsNiBAQAogICAgICAgICAgICAgICAgIGRlc2lyZWRXaW5kb3dIZWlnaHQgPSBwYWNrYWdlTWV0cmljcy5oZWlnaHRQaXhlbHM7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIC8vIEZvciB0aGUgdmVyeSBmaXJzdCB0aW1lLCB0ZWxsIHRoZSB2aWV3IGhpZXJhcmNoeSB0aGF0IGl0Ci0gICAgICAgICAgICAvLyBpcyBhdHRhY2hlZCB0byB0aGUgd2luZG93LiAgTm90ZSB0aGF0IGF0IHRoaXMgcG9pbnQgdGhlIHN1cmZhY2UKLSAgICAgICAgICAgIC8vIG9iamVjdCBpcyBub3QgaW5pdGlhbGl6ZWQgdG8gaXRzIGJhY2tpbmcgc3RvcmUsIGJ1dCBzb29uIGl0Ci0gICAgICAgICAgICAvLyB3aWxsIGJlIChhc3N1bWluZyB0aGUgd2luZG93IGlzIHZpc2libGUpLgotICAgICAgICAgICAgYXR0YWNoSW5mby5tU3VyZmFjZSA9IG1TdXJmYWNlOwogICAgICAgICAgICAgLy8gV2UgdXNlZCB0byB1c2UgdGhlIGZvbGxvd2luZyBjb25kaXRpb24gdG8gY2hvb3NlIDMyIGJpdHMgZHJhd2luZyBjYWNoZXM6CiAgICAgICAgICAgICAvLyBQaXhlbEZvcm1hdC5oYXNBbHBoYShscC5mb3JtYXQpIHx8IGxwLmZvcm1hdCA9PSBQaXhlbEZvcm1hdC5SR0JYXzg4ODgKICAgICAgICAgICAgIC8vIEhvd2V2ZXIsIHdpbmRvd3MgYXJlIG5vdyBhbHdheXMgMzIgYml0cyBieSBkZWZhdWx0LCBzbyBjaG9vc2UgMzIgYml0cwpAQCAtMTU0OCw3ICsxNTQyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtQXR0YWNoSW5mby5tSGFyZHdhcmVSZW5kZXJlciAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHdJbml0aWFsaXplZCA9IG1BdHRhY2hJbmZvLm1IYXJkd2FyZVJlbmRlcmVyLmluaXRpYWxpemUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUhvbGRlci5nZXRTdXJmYWNlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TdXJmYWNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChPdXRPZlJlc291cmNlc0V4Y2VwdGlvbiBlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU91dE9mUmVzb3VyY2VzRXhjZXB0aW9uKGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0xNTc1LDcgKzE1NjksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgbVN1cmZhY2VIb2xkZXIgPT0gbnVsbCAmJiBtQXR0YWNoSW5mby5tSGFyZHdhcmVSZW5kZXJlciAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgIG1GdWxsUmVkcmF3TmVlZGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1BdHRhY2hJbmZvLm1IYXJkd2FyZVJlbmRlcmVyLnVwZGF0ZVN1cmZhY2UobUhvbGRlci5nZXRTdXJmYWNlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgbUF0dGFjaEluZm8ubUhhcmR3YXJlUmVuZGVyZXIudXBkYXRlU3VyZmFjZShtU3VyZmFjZSk7CiAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE91dE9mUmVzb3VyY2VzRXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU91dE9mUmVzb3VyY2VzRXhjZXB0aW9uKGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTY1OCw3ICsxNjUyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIG1IZWlnaHQgIT0gbUF0dGFjaEluZm8ubUhhcmR3YXJlUmVuZGVyZXIuZ2V0SGVpZ2h0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgbUF0dGFjaEluZm8ubUhhcmR3YXJlUmVuZGVyZXIuc2V0dXAobVdpZHRoLCBtSGVpZ2h0KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFod0luaXRpYWxpemVkKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtQXR0YWNoSW5mby5tSGFyZHdhcmVSZW5kZXJlci5pbnZhbGlkYXRlKG1Ib2xkZXIuZ2V0U3VyZmFjZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1BdHRhY2hJbmZvLm1IYXJkd2FyZVJlbmRlcmVyLmludmFsaWRhdGUobVN1cmZhY2UpOwogICAgICAgICAgICAgICAgICAgICAgICAgbUZ1bGxSZWRyYXdOZWVkZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpAQCAtMjM5NSw3ICsyMzg5LDcgQEAKIAogICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoSW5mby5tSGFyZHdhcmVSZW5kZXJlci5pbml0aWFsaXplSWZOZWVkZWQobVdpZHRoLCBtSGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtSG9sZGVyLmdldFN1cmZhY2UoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TdXJmYWNlKTsKICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoT3V0T2ZSZXNvdXJjZXNFeGNlcHRpb24gZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlT3V0T2ZSZXNvdXJjZXNFeGNlcHRpb24oZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0yNTMwLDI4ICsyNTI0LDM1IEBACiAgICAgICogQHBhcmFtIGNhbnZhcyBUaGUgY2FudmFzIG9uIHdoaWNoIHRvIGRyYXcuCiAgICAgICovCiAgICAgcHJpdmF0ZSB2b2lkIGRyYXdBY2Nlc3NpYmlsaXR5Rm9jdXNlZERyYXdhYmxlSWZOZWVkZWQoQ2FudmFzIGNhbnZhcykgewotICAgICAgICBBY2Nlc3NpYmlsaXR5TWFuYWdlciBtYW5hZ2VyID0gQWNjZXNzaWJpbGl0eU1hbmFnZXIuZ2V0SW5zdGFuY2UobVZpZXcubUNvbnRleHQpOworICAgICAgICBpZiAoIW1BdHRhY2hJbmZvLm1IYXNXaW5kb3dGb2N1cykgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgQWNjZXNzaWJpbGl0eU1hbmFnZXIgbWFuYWdlciA9IEFjY2Vzc2liaWxpdHlNYW5hZ2VyLmdldEluc3RhbmNlKG1WaWV3Lm1Db250ZXh0KTsKICAgICAgICAgaWYgKCFtYW5hZ2VyLmlzRW5hYmxlZCgpIHx8ICFtYW5hZ2VyLmlzVG91Y2hFeHBsb3JhdGlvbkVuYWJsZWQoKSkgewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmIChtQWNjZXNzaWJpbGl0eUZvY3VzZWRIb3N0ID09IG51bGwgfHwgbUFjY2Vzc2liaWxpdHlGb2N1c2VkSG9zdC5tQXR0YWNoSW5mbyA9PSBudWxsKSB7CisKKyAgICAgICAgZmluYWwgVmlldyBob3N0ID0gbUFjY2Vzc2liaWxpdHlGb2N1c2VkSG9zdDsKKyAgICAgICAgaWYgKGhvc3QgPT0gbnVsbCB8fCBob3N0Lm1BdHRhY2hJbmZvID09IG51bGwpIHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBEcmF3YWJsZSBkcmF3YWJsZSA9IGdldEFjY2Vzc2liaWxpdHlGb2N1c2VkRHJhd2FibGUoKTsKKworICAgICAgICBmaW5hbCBEcmF3YWJsZSBkcmF3YWJsZSA9IGdldEFjY2Vzc2liaWxpdHlGb2N1c2VkRHJhd2FibGUoKTsKICAgICAgICAgaWYgKGRyYXdhYmxlID09IG51bGwpIHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBBY2Nlc3NpYmlsaXR5Tm9kZVByb3ZpZGVyIHByb3ZpZGVyID0KLSAgICAgICAgICAgIG1BY2Nlc3NpYmlsaXR5Rm9jdXNlZEhvc3QuZ2V0QWNjZXNzaWJpbGl0eU5vZGVQcm92aWRlcigpOwotICAgICAgICBSZWN0IGJvdW5kcyA9IG1WaWV3Lm1BdHRhY2hJbmZvLm1UbXBJbnZhbFJlY3Q7CisKKyAgICAgICAgZmluYWwgQWNjZXNzaWJpbGl0eU5vZGVQcm92aWRlciBwcm92aWRlciA9IGhvc3QuZ2V0QWNjZXNzaWJpbGl0eU5vZGVQcm92aWRlcigpOworICAgICAgICBmaW5hbCBSZWN0IGJvdW5kcyA9IG1WaWV3Lm1BdHRhY2hJbmZvLm1UbXBJbnZhbFJlY3Q7CiAgICAgICAgIGlmIChwcm92aWRlciA9PSBudWxsKSB7Ci0gICAgICAgICAgICBtQWNjZXNzaWJpbGl0eUZvY3VzZWRIb3N0LmdldEJvdW5kc09uU2NyZWVuKGJvdW5kcyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobUFjY2Vzc2liaWxpdHlGb2N1c2VkVmlydHVhbFZpZXcgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGhvc3QuZ2V0Qm91bmRzT25TY3JlZW4oYm91bmRzKTsKKyAgICAgICAgfSBlbHNlIGlmIChtQWNjZXNzaWJpbGl0eUZvY3VzZWRWaXJ0dWFsVmlldyAhPSBudWxsKSB7CiAgICAgICAgICAgICBtQWNjZXNzaWJpbGl0eUZvY3VzZWRWaXJ0dWFsVmlldy5nZXRCb3VuZHNJblNjcmVlbihib3VuZHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisKICAgICAgICAgYm91bmRzLm9mZnNldCgtbUF0dGFjaEluZm8ubVdpbmRvd0xlZnQsIC1tQXR0YWNoSW5mby5tV2luZG93VG9wKTsKICAgICAgICAgYm91bmRzLmludGVyc2VjdCgwLCAwLCBtQXR0YWNoSW5mby5tVmlld1Jvb3RJbXBsLm1XaWR0aCwgbUF0dGFjaEluZm8ubVZpZXdSb290SW1wbC5tSGVpZ2h0KTsKICAgICAgICAgZHJhd2FibGUuc2V0Qm91bmRzKGJvdW5kcyk7CkBAIC0yODUwLDcgKzI4NTEsNiBAQAogICAgICAgICBtVmlldy5hc3NpZ25QYXJlbnQobnVsbCk7CiAgICAgICAgIG1WaWV3ID0gbnVsbDsKICAgICAgICAgbUF0dGFjaEluZm8ubVJvb3RWaWV3ID0gbnVsbDsKLSAgICAgICAgbUF0dGFjaEluZm8ubVN1cmZhY2UgPSBudWxsOwogCiAgICAgICAgIG1TdXJmYWNlLnJlbGVhc2UoKTsKIApAQCAtMzExMCw3ICszMTEwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRnVsbFJlZHJhd05lZWRlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUF0dGFjaEluZm8ubUhhcmR3YXJlUmVuZGVyZXIuaW5pdGlhbGl6ZUlmTmVlZGVkKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1XaWR0aCwgbUhlaWdodCwgbUhvbGRlci5nZXRTdXJmYWNlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1XaWR0aCwgbUhlaWdodCwgbVN1cmZhY2UpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE91dE9mUmVzb3VyY2VzRXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiT3V0T2ZSZXNvdXJjZXNFeGNlcHRpb24gbG9ja2luZyBzdXJmYWNlIiwgZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CkBAIC0zMTU5LDggKzMxNTksNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgbUhhc0hhZFdpbmRvd0ZvY3VzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAgIHNldEFjY2Vzc2liaWxpdHlGb2N1cyhudWxsLCBudWxsKTsKLQogICAgICAgICAgICAgICAgICAgICBpZiAobVZpZXcgIT0gbnVsbCAmJiBtQWNjZXNzaWJpbGl0eU1hbmFnZXIuaXNFbmFibGVkKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNXaW5kb3dGb2N1cykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1WaWV3LnNlbmRBY2Nlc3NpYmlsaXR5RXZlbnQoCkBAIC00NTA2LDggKzQ1MDQsNyBAQAogICAgICAgICAvLyBUaGUgYWN0aXZlIHBvaW50ZXIgaWQsIG9yIC0xIGlmIG5vbmUuCiAgICAgICAgIHByaXZhdGUgaW50IG1BY3RpdmVQb2ludGVySWQgPSAtMTsKIAotICAgICAgICAvLyBUaW1lIGFuZCBsb2NhdGlvbiB3aGVyZSB0cmFja2luZyBzdGFydGVkLgotICAgICAgICBwcml2YXRlIGxvbmcgbVN0YXJ0VGltZTsKKyAgICAgICAgLy8gTG9jYXRpb24gd2hlcmUgdHJhY2tpbmcgc3RhcnRlZC4KICAgICAgICAgcHJpdmF0ZSBmbG9hdCBtU3RhcnRYOwogICAgICAgICBwcml2YXRlIGZsb2F0IG1TdGFydFk7CiAKQEAgLTQ1MzUsOSArNDUzMiw2IEBACiAgICAgICAgIHByaXZhdGUgYm9vbGVhbiBtRmxpbmdpbmc7CiAgICAgICAgIHByaXZhdGUgZmxvYXQgbUZsaW5nVmVsb2NpdHk7CiAKLSAgICAgICAgLy8gVGhlIGxhc3QgdGltZSBhIGNvbmZpcm0ga2V5IHdhcyBwcmVzc2VkIG9uIHRoZSB0b3VjaCBuYXYgZGV2aWNlCi0gICAgICAgIHByaXZhdGUgbG9uZyBtTGFzdENvbmZpcm1LZXlUaW1lID0gTG9uZy5NQVhfVkFMVUU7Ci0KICAgICAgICAgcHVibGljIFN5bnRoZXRpY1RvdWNoTmF2aWdhdGlvbkhhbmRsZXIoKSB7CiAgICAgICAgICAgICBzdXBlcih0cnVlKTsKICAgICAgICAgfQpAQCAtNDYwNCw3ICs0NTk4LDYgQEAKICAgICAgICAgICAgICAgICAgICAgbUFjdGl2ZVBvaW50ZXJJZCA9IGV2ZW50LmdldFBvaW50ZXJJZCgwKTsKICAgICAgICAgICAgICAgICAgICAgbVZlbG9jaXR5VHJhY2tlciA9IFZlbG9jaXR5VHJhY2tlci5vYnRhaW4oKTsKICAgICAgICAgICAgICAgICAgICAgbVZlbG9jaXR5VHJhY2tlci5hZGRNb3ZlbWVudChldmVudCk7Ci0gICAgICAgICAgICAgICAgICAgIG1TdGFydFRpbWUgPSB0aW1lOwogICAgICAgICAgICAgICAgICAgICBtU3RhcnRYID0gZXZlbnQuZ2V0WCgpOwogICAgICAgICAgICAgICAgICAgICBtU3RhcnRZID0gZXZlbnQuZ2V0WSgpOwogICAgICAgICAgICAgICAgICAgICBtTGFzdFggPSBtU3RhcnRYOwpAQCAtNTM4OCw3ICs1MzgxLDcgQEAKIAogICAgICAgICAgICAgICAgIC8vIEhhcmR3YXJlIHJlbmRlcmluZwogICAgICAgICAgICAgICAgIGlmIChtQXR0YWNoSW5mby5tSGFyZHdhcmVSZW5kZXJlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtQXR0YWNoSW5mby5tSGFyZHdhcmVSZW5kZXJlci5sb2FkU3lzdGVtUHJvcGVydGllcyhtSG9sZGVyLmdldFN1cmZhY2UoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1BdHRhY2hJbmZvLm1IYXJkd2FyZVJlbmRlcmVyLmxvYWRTeXN0ZW1Qcm9wZXJ0aWVzKG1TdXJmYWNlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW52YWxpZGF0ZSgpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpAQCAtNjMzNSw2OCArNjMyOCw2IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwcml2YXRlIGZpbmFsIFN1cmZhY2VIb2xkZXIgbUhvbGRlciA9IG5ldyBTdXJmYWNlSG9sZGVyKCkgewotICAgICAgICAvLyB3ZSBvbmx5IG5lZWQgYSBTdXJmYWNlSG9sZGVyIGZvciBvcGVuZ2wuIGl0IHdvdWxkIGJlIG5pY2UKLSAgICAgICAgLy8gdG8gaW1wbGVtZW50IGV2ZXJ5dGhpbmcgZWxzZSB0aG91Z2gsIGVzcGVjaWFsbHkgdGhlIGNhbGxiYWNrCi0gICAgICAgIC8vIHN1cHBvcnQgKG9wZW5nbCBkb2Vzbid0IG1ha2UgdXNlIG9mIGl0IHJpZ2h0IG5vdywgYnV0IGV2ZW50dWFsbHkKLSAgICAgICAgLy8gd2lsbCkuCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgU3VyZmFjZSBnZXRTdXJmYWNlKCkgewotICAgICAgICAgICAgcmV0dXJuIG1TdXJmYWNlOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBib29sZWFuIGlzQ3JlYXRpbmcoKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgYWRkQ2FsbGJhY2soQ2FsbGJhY2sgY2FsbGJhY2spIHsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCByZW1vdmVDYWxsYmFjayhDYWxsYmFjayBjYWxsYmFjaykgewotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyB2b2lkIHNldEZpeGVkU2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCBzZXRTaXplRnJvbUxheW91dCgpIHsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCBzZXRGb3JtYXQoaW50IGZvcm1hdCkgewotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyB2b2lkIHNldFR5cGUoaW50IHR5cGUpIHsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCBzZXRLZWVwU2NyZWVuT24oYm9vbGVhbiBzY3JlZW5PbikgewotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBDYW52YXMgbG9ja0NhbnZhcygpIHsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBDYW52YXMgbG9ja0NhbnZhcyhSZWN0IGRpcnR5KSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB1bmxvY2tDYW52YXNBbmRQb3N0KENhbnZhcyBjYW52YXMpIHsKLSAgICAgICAgfQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIFJlY3QgZ2V0U3VyZmFjZUZyYW1lKCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLSAgICB9OwotCiAgICAgc3RhdGljIFJ1blF1ZXVlIGdldFJ1blF1ZXVlKCkgewogICAgICAgICBSdW5RdWV1ZSBycSA9IHNSdW5RdWV1ZXMuZ2V0KCk7CiAgICAgICAgIGlmIChycSAhPSBudWxsKSB7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L1ZpZXdTdHViLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L1ZpZXdTdHViLmphdmEKaW5kZXggYTVkYzNhZS4uZDY4YTg2MCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9WaWV3U3R1Yi5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvVmlld1N0dWIuamF2YQpAQCAtOTcsMTYgKzk3LDIxIEBACiAgICAgfQogCiAgICAgQFN1cHByZXNzV2FybmluZ3MoeyJVbnVzZWREZWNsYXJhdGlvbiJ9KQotICAgIHB1YmxpYyBWaWV3U3R1YihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuVmlld1N0dWIsCi0gICAgICAgICAgICAgICAgZGVmU3R5bGUsIDApOworICAgIHB1YmxpYyBWaWV3U3R1YihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBWaWV3U3R1YihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuVmlld1N0dWIsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIG1JbmZsYXRlZElkID0gYS5nZXRSZXNvdXJjZUlkKFIuc3R5bGVhYmxlLlZpZXdTdHViX2luZmxhdGVkSWQsIE5PX0lEKTsKICAgICAgICAgbUxheW91dFJlc291cmNlID0gYS5nZXRSZXNvdXJjZUlkKFIuc3R5bGVhYmxlLlZpZXdTdHViX2xheW91dCwgMCk7CiAKICAgICAgICAgYS5yZWN5Y2xlKCk7CiAKLSAgICAgICAgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuVmlldywgZGVmU3R5bGUsIDApOworICAgICAgICBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5WaWV3LCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgbUlEID0gYS5nZXRSZXNvdXJjZUlkKFIuc3R5bGVhYmxlLlZpZXdfaWQsIE5PX0lEKTsKICAgICAgICAgYS5yZWN5Y2xlKCk7CiAKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvV2luZG93LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L1dpbmRvdy5qYXZhCmluZGV4IGIzYTA2OTkuLmJkZGZjNjMgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvV2luZG93LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9XaW5kb3cuamF2YQpAQCAtMTYsNiArMTYsOCBAQAogCiBwYWNrYWdlIGFuZHJvaWQudmlldzsKIAoraW1wb3J0IGFuZHJvaWQuYW5ub3RhdGlvbi5Ob25OdWxsOworaW1wb3J0IGFuZHJvaWQuYW5ub3RhdGlvbi5OdWxsYWJsZTsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLkNvbmZpZ3VyYXRpb247CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5UeXBlZEFycmF5OwpAQCAtODksMTIgKzkxLDIxIEBACiAgICAgICogSWYgb3ZlcmxheSBpcyBlbmFibGVkLCB0aGUgYWN0aW9uIG1vZGUgVUkgd2lsbCBiZSBhbGxvd2VkIHRvIGNvdmVyIGV4aXN0aW5nIHdpbmRvdyBjb250ZW50LgogICAgICAqLwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZFQVRVUkVfQUNUSU9OX01PREVfT1ZFUkxBWSA9IDEwOworICAgIC8qKgorICAgICAqIEZsYWcgZm9yIHJlcXVlc3RpbmcgdGhhdCB3aW5kb3cgY29udGVudCBjaGFuZ2VzIHNob3VsZCBiZSByZXByZXNlbnRlZAorICAgICAqIHdpdGggc2NlbmVzIGFuZCB0cmFuc2l0aW9ucy4KKyAgICAgKgorICAgICAqIFRPRE8gQWRkIGRvY3MKKyAgICAgKgorICAgICAqIEBzZWUgI3NldENvbnRlbnRWaWV3CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRkVBVFVSRV9DT05URU5UX1RSQU5TSVRJT05TID0gMTE7CiAKICAgICAvKioKICAgICAgKiBNYXggdmFsdWUgdXNlZCBhcyBhIGZlYXR1cmUgSUQKICAgICAgKiBAaGlkZQogICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZFQVRVUkVfTUFYID0gRkVBVFVSRV9BQ1RJT05fTU9ERV9PVkVSTEFZOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZFQVRVUkVfTUFYID0gRkVBVFVSRV9DT05URU5UX1RSQU5TSVRJT05TOwogCiAgICAgLyoqIEZsYWcgZm9yIHNldHRpbmcgdGhlIHByb2dyZXNzIGJhcidzIHZpc2liaWxpdHkgdG8gVklTSUJMRSAqLwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBST0dSRVNTX1ZJU0lCSUxJVFlfT04gPSAtMTsKQEAgLTI0MCw2ICsyNTEsNyBAQAogICAgICAgICAgKgogICAgICAgICAgKiBAc2VlICNvblByZXBhcmVQYW5lbAogICAgICAgICAgKi8KKyAgICAgICAgQE51bGxhYmxlCiAgICAgICAgIHB1YmxpYyBWaWV3IG9uQ3JlYXRlUGFuZWxWaWV3KGludCBmZWF0dXJlSWQpOwogCiAgICAgICAgIC8qKgpAQCAtMzY4LDYgKzM4MCw3IEBACiAgICAgICAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayB0byBjb250cm9sIHRoZSBsaWZlY3ljbGUgb2YgdGhpcyBhY3Rpb24gbW9kZQogICAgICAgICAgKiBAcmV0dXJuIFRoZSBBY3Rpb25Nb2RlIHRoYXQgd2FzIHN0YXJ0ZWQsIG9yIG51bGwgaWYgdGhlIHN5c3RlbSBzaG91bGQgcHJlc2VudCBpdAogICAgICAgICAgKi8KKyAgICAgICAgQE51bGxhYmxlCiAgICAgICAgIHB1YmxpYyBBY3Rpb25Nb2RlIG9uV2luZG93U3RhcnRpbmdBY3Rpb25Nb2RlKEFjdGlvbk1vZGUuQ2FsbGJhY2sgY2FsbGJhY2spOwogCiAgICAgICAgIC8qKgpAQCAtOTY5LDYgKzk4Miw3IEBACiAgICAgICoKICAgICAgKiBAcmV0dXJuIFZpZXcgVGhlIGN1cnJlbnQgVmlldyB3aXRoIGZvY3VzIG9yIG51bGwuCiAgICAgICovCisgICAgQE51bGxhYmxlCiAgICAgcHVibGljIGFic3RyYWN0IFZpZXcgZ2V0Q3VycmVudEZvY3VzKCk7CiAKICAgICAvKioKQEAgLTk3Nyw2ICs5OTEsNyBAQAogICAgICAqCiAgICAgICogQHJldHVybiBMYXlvdXRJbmZsYXRlciBUaGUgc2hhcmVkIExheW91dEluZmxhdGVyLgogICAgICAqLworICAgIEBOb25OdWxsCiAgICAgcHVibGljIGFic3RyYWN0IExheW91dEluZmxhdGVyIGdldExheW91dEluZmxhdGVyKCk7CiAKICAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRUaXRsZShDaGFyU2VxdWVuY2UgdGl0bGUpOwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9XaW5kb3dNYW5hZ2VyUG9saWN5LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L1dpbmRvd01hbmFnZXJQb2xpY3kuamF2YQppbmRleCBjNWExYjg2Yy4uZDllMTQwZSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9XaW5kb3dNYW5hZ2VyUG9saWN5LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9XaW5kb3dNYW5hZ2VyUG9saWN5LmphdmEKQEAgLTE2LDcgKzE2LDkgQEAKIAogcGFja2FnZSBhbmRyb2lkLnZpZXc7CiAKK2ltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uSW50RGVmOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OworaW1wb3J0IGFuZHJvaWQuY29udGVudC5wbS5BY3Rpdml0eUluZm87CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5Db21wYXRpYmlsaXR5SW5mbzsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLkNvbmZpZ3VyYXRpb247CiBpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5SZWN0OwpAQCAtMjcsNiArMjksOCBAQAogaW1wb3J0IGFuZHJvaWQudmlldy5hbmltYXRpb24uQW5pbWF0aW9uOwogCiBpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb247CitpbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uUG9saWN5OwogCiAvKioKICAqIFRoaXMgaW50ZXJmYWNlIHN1cHBsaWVzIGFsbCBVSS1zcGVjaWZpYyBiZWhhdmlvciBvZiB0aGUgd2luZG93IG1hbmFnZXIuICBBbgpAQCAtNDY0LDYgKzQ2OCwxMSBAQAogICAgIC8qKiBTY3JlZW4gdHVybmVkIG9mZiBiZWNhdXNlIG9mIHByb3hpbWl0eSBzZW5zb3IgKi8KICAgICBwdWJsaWMgZmluYWwgaW50IE9GRl9CRUNBVVNFX09GX1BST1hfU0VOU09SID0gNDsKIAorICAgIC8qKiBAaGlkZSAqLworICAgIEBJbnREZWYoe1VTRVJfUk9UQVRJT05fRlJFRSwgVVNFUl9ST1RBVElPTl9MT0NLRUR9KQorICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlNPVVJDRSkKKyAgICBwdWJsaWMgQGludGVyZmFjZSBVc2VyUm90YXRpb25Nb2RlIHt9CisKICAgICAvKiogV2hlbiBub3Qgb3RoZXJ3aXNlIHNwZWNpZmllZCBieSB0aGUgYWN0aXZpdHkncyBzY3JlZW5PcmllbnRhdGlvbiwgcm90YXRpb24gc2hvdWxkIGJlCiAgICAgICogZGV0ZXJtaW5lZCBieSB0aGUgc3lzdGVtICh0aGF0IGlzLCB1c2luZyBzZW5zb3JzKS4gKi8KICAgICBwdWJsaWMgZmluYWwgaW50IFVTRVJfUk9UQVRJT05fRlJFRSA9IDA7CkBAIC0xMDIyLDcgKzEwMzEsOCBAQAogICAgICAqIEBwYXJhbSBsYXN0Um90YXRpb24gVGhlIG1vc3QgcmVjZW50bHkgdXNlZCByb3RhdGlvbi4KICAgICAgKiBAcmV0dXJuIFRoZSBzdXJmYWNlIHJvdGF0aW9uIHRvIHVzZS4KICAgICAgKi8KLSAgICBwdWJsaWMgaW50IHJvdGF0aW9uRm9yT3JpZW50YXRpb25MdyhpbnQgb3JpZW50YXRpb24sIGludCBsYXN0Um90YXRpb24pOworICAgIHB1YmxpYyBpbnQgcm90YXRpb25Gb3JPcmllbnRhdGlvbkx3KEBBY3Rpdml0eUluZm8uU2NyZWVuT3JpZW50YXRpb24gaW50IG9yaWVudGF0aW9uLAorICAgICAgICAgICAgaW50IGxhc3RSb3RhdGlvbik7CiAKICAgICAvKioKICAgICAgKiBHaXZlbiBhbiBvcmllbnRhdGlvbiBjb25zdGFudCBhbmQgYSByb3RhdGlvbiwgcmV0dXJucyB0cnVlIGlmIHRoZSByb3RhdGlvbgpAQCAtMTAzNyw3ICsxMDQ3LDggQEAKICAgICAgKiBAcGFyYW0gcm90YXRpb24gVGhlIHJvdGF0aW9uIHRvIGNoZWNrLgogICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGUgcm90YXRpb24gaXMgY29tcGF0aWJsZSB3aXRoIHRoZSByZXF1ZXN0ZWQgb3JpZW50YXRpb24uCiAgICAgICovCi0gICAgcHVibGljIGJvb2xlYW4gcm90YXRpb25IYXNDb21wYXRpYmxlTWV0cmljc0x3KGludCBvcmllbnRhdGlvbiwgaW50IHJvdGF0aW9uKTsKKyAgICBwdWJsaWMgYm9vbGVhbiByb3RhdGlvbkhhc0NvbXBhdGlibGVNZXRyaWNzTHcoQEFjdGl2aXR5SW5mby5TY3JlZW5PcmllbnRhdGlvbiBpbnQgb3JpZW50YXRpb24sCisgICAgICAgICAgICBpbnQgcm90YXRpb24pOwogCiAgICAgLyoqCiAgICAgICogQ2FsbGVkIGJ5IHRoZSB3aW5kb3cgbWFuYWdlciB3aGVuIHRoZSByb3RhdGlvbiBjaGFuZ2VzLgpAQCAtMTA4Niw3ICsxMDk3LDcgQEAKICAgICAgKi8KICAgICBwdWJsaWMgdm9pZCBlbmFibGVTY3JlZW5BZnRlckJvb3QoKTsKICAgICAKLSAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW50T3JpZW50YXRpb25MdyhpbnQgbmV3T3JpZW50YXRpb24pOworICAgIHB1YmxpYyB2b2lkIHNldEN1cnJlbnRPcmllbnRhdGlvbkx3KEBBY3Rpdml0eUluZm8uU2NyZWVuT3JpZW50YXRpb24gaW50IG5ld09yaWVudGF0aW9uKTsKICAgICAKICAgICAvKioKICAgICAgKiBDYWxsIGZyb20gYXBwbGljYXRpb24gdG8gcGVyZm9ybSBoYXB0aWMgZmVlZGJhY2sgb24gaXRzIHdpbmRvdy4KQEAgLTExMTMsNiArMTEyNCw3IEBACiAgICAgICogQHNlZSBXaW5kb3dNYW5hZ2VyUG9saWN5I1VTRVJfUk9UQVRJT05fTE9DS0VECiAgICAgICogQHNlZSBXaW5kb3dNYW5hZ2VyUG9saWN5I1VTRVJfUk9UQVRJT05fRlJFRSAKICAgICAgKi8KKyAgICBAVXNlclJvdGF0aW9uTW9kZQogICAgIHB1YmxpYyBpbnQgZ2V0VXNlclJvdGF0aW9uTW9kZSgpOwogCiAgICAgLyoqCkBAIC0xMTIzLDEyICsxMTM1LDEyIEBACiAgICAgICogQHBhcmFtIHJvdGF0aW9uIE9uZSBvZiB7QGxpbmsgU3VyZmFjZSNST1RBVElPTl8wfSwge0BsaW5rIFN1cmZhY2UjUk9UQVRJT05fOTB9LAogICAgICAqICAgICAgICAgICAgICAgICB7QGxpbmsgU3VyZmFjZSNST1RBVElPTl8xODB9LCB7QGxpbmsgU3VyZmFjZSNST1RBVElPTl8yNzB9LgogICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHNldFVzZXJSb3RhdGlvbk1vZGUoaW50IG1vZGUsIGludCByb3RhdGlvbik7CisgICAgcHVibGljIHZvaWQgc2V0VXNlclJvdGF0aW9uTW9kZShAVXNlclJvdGF0aW9uTW9kZSBpbnQgbW9kZSwgQFN1cmZhY2UuUm90YXRpb24gaW50IHJvdGF0aW9uKTsKIAogICAgIC8qKgogICAgICAqIENhbGxlZCB3aGVuIGEgbmV3IHN5c3RlbSBVSSB2aXNpYmlsaXR5IGlzIGJlaW5nIHJlcG9ydGVkLCBhbGxvd2luZwogICAgICAqIHRoZSBwb2xpY3kgdG8gYWRqdXN0IHdoYXQgaXMgYWN0dWFsbHkgcmVwb3J0ZWQuCi0gICAgICogQHBhcmFtIHZpc2liaWxpdHkgVGhlIHJhdyB2aXNpYmxpdHkgcmVwb3J0ZWQgYnkgdGhlIHN0YXR1cyBiYXIuCisgICAgICogQHBhcmFtIHZpc2liaWxpdHkgVGhlIHJhdyB2aXNpYmlsaXR5IHJlcG9ydGVkIGJ5IHRoZSBzdGF0dXMgYmFyLgogICAgICAqIEByZXR1cm4gVGhlIG5ldyBkZXNpcmVkIHZpc2liaWxpdHkuCiAgICAgICovCiAgICAgcHVibGljIGludCBhZGp1c3RTeXN0ZW1VaVZpc2liaWxpdHlMdyhpbnQgdmlzaWJpbGl0eSk7CkBAIC0xMTUxLDYgKzExNjMsMTEgQEAKICAgICBwdWJsaWMgdm9pZCBzZXRMYXN0SW5wdXRNZXRob2RXaW5kb3dMdyhXaW5kb3dTdGF0ZSBpbWUsIFdpbmRvd1N0YXRlIHRhcmdldCk7CiAKICAgICAvKioKKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IGhlaWdodCBvZiB0aGUgaW5wdXQgbWV0aG9kIHdpbmRvdy4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldElucHV0TWV0aG9kV2luZG93VmlzaWJsZUhlaWdodEx3KCk7CisKKyAgICAvKioKICAgICAgKiBDYWxsZWQgd2hlbiB0aGUgY3VycmVudCB1c2VyIGNoYW5nZXMuIEd1YXJhbnRlZWQgdG8gYmUgY2FsbGVkIGJlZm9yZSB0aGUgYnJvYWRjYXN0CiAgICAgICogb2YgdGhlIG5ldyB1c2VyIGlkIGlzIG1hZGUgdG8gYWxsIGxpc3RlbmVycy4KICAgICAgKgpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlFdmVudC5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlFdmVudC5qYXZhCmluZGV4IGY2MzVlZWUuLjhiOTExNTUgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5RXZlbnQuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUV2ZW50LmphdmEKQEAgLTcyMiw3ICs3MjIsNyBAQAogICAgIGludCBtQWN0aW9uOwogICAgIGludCBtQ29udGVudENoYW5nZVR5cGVzOwogCi0gICAgcHJpdmF0ZSBmaW5hbCBBcnJheUxpc3Q8QWNjZXNzaWJpbGl0eVJlY29yZD4gbVJlY29yZHMgPSBuZXcgQXJyYXlMaXN0PEFjY2Vzc2liaWxpdHlSZWNvcmQ+KCk7CisgICAgcHJpdmF0ZSBBcnJheUxpc3Q8QWNjZXNzaWJpbGl0eVJlY29yZD4gbVJlY29yZHM7CiAKICAgICAvKgogICAgICAqIEhpZGUgY29uc3RydWN0b3IgZnJvbSBjbGllbnRzLgpAQCAtNzU1LDExICs3NTUsMTMgQEAKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCBzZXRTZWFsZWQoYm9vbGVhbiBzZWFsZWQpIHsKICAgICAgICAgc3VwZXIuc2V0U2VhbGVkKHNlYWxlZCk7Ci0gICAgICAgIExpc3Q8QWNjZXNzaWJpbGl0eVJlY29yZD4gcmVjb3JkcyA9IG1SZWNvcmRzOwotICAgICAgICBmaW5hbCBpbnQgcmVjb3JkQ291bnQgPSByZWNvcmRzLnNpemUoKTsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7Ci0gICAgICAgICAgICBBY2Nlc3NpYmlsaXR5UmVjb3JkIHJlY29yZCA9IHJlY29yZHMuZ2V0KGkpOwotICAgICAgICAgICAgcmVjb3JkLnNldFNlYWxlZChzZWFsZWQpOworICAgICAgICBmaW5hbCBMaXN0PEFjY2Vzc2liaWxpdHlSZWNvcmQ+IHJlY29yZHMgPSBtUmVjb3JkczsKKyAgICAgICAgaWYgKHJlY29yZHMgIT0gbnVsbCkgeworICAgICAgICAgICAgZmluYWwgaW50IHJlY29yZENvdW50ID0gcmVjb3Jkcy5zaXplKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlY29yZENvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBBY2Nlc3NpYmlsaXR5UmVjb3JkIHJlY29yZCA9IHJlY29yZHMuZ2V0KGkpOworICAgICAgICAgICAgICAgIHJlY29yZC5zZXRTZWFsZWQoc2VhbGVkKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtNzY5LDcgKzc3MSw3IEBACiAgICAgICogQHJldHVybiBUaGUgbnVtYmVyIG9mIHJlY29yZHMuCiAgICAgICovCiAgICAgcHVibGljIGludCBnZXRSZWNvcmRDb3VudCgpIHsKLSAgICAgICAgcmV0dXJuIG1SZWNvcmRzLnNpemUoKTsKKyAgICAgICAgcmV0dXJuIG1SZWNvcmRzID09IG51bGwgPyAwIDogbVJlY29yZHMuc2l6ZSgpOwogICAgIH0KIAogICAgIC8qKgpAQCAtNzgxLDYgKzc4Myw5IEBACiAgICAgICovCiAgICAgcHVibGljIHZvaWQgYXBwZW5kUmVjb3JkKEFjY2Vzc2liaWxpdHlSZWNvcmQgcmVjb3JkKSB7CiAgICAgICAgIGVuZm9yY2VOb3RTZWFsZWQoKTsKKyAgICAgICAgaWYgKG1SZWNvcmRzID09IG51bGwpIHsKKyAgICAgICAgICAgIG1SZWNvcmRzID0gbmV3IEFycmF5TGlzdDxBY2Nlc3NpYmlsaXR5UmVjb3JkPigpOworICAgICAgICB9CiAgICAgICAgIG1SZWNvcmRzLmFkZChyZWNvcmQpOwogICAgIH0KIApAQCAtNzkxLDYgKzc5Niw5IEBACiAgICAgICogQHJldHVybiBUaGUgcmVjb3JkIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguCiAgICAgICovCiAgICAgcHVibGljIEFjY2Vzc2liaWxpdHlSZWNvcmQgZ2V0UmVjb3JkKGludCBpbmRleCkgeworICAgICAgICBpZiAobVJlY29yZHMgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oIkludmFsaWQgaW5kZXggIiArIGluZGV4ICsgIiwgc2l6ZSBpcyAwIik7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1SZWNvcmRzLmdldChpbmRleCk7CiAgICAgfQogCkBAIC05NjQsMTEgKzk3MiwxNCBAQAogICAgICAgICBBY2Nlc3NpYmlsaXR5RXZlbnQgZXZlbnRDbG9uZSA9IEFjY2Vzc2liaWxpdHlFdmVudC5vYnRhaW4oKTsKICAgICAgICAgZXZlbnRDbG9uZS5pbml0KGV2ZW50KTsKIAotICAgICAgICBmaW5hbCBpbnQgcmVjb3JkQ291bnQgPSBldmVudC5tUmVjb3Jkcy5zaXplKCk7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewotICAgICAgICAgICAgQWNjZXNzaWJpbGl0eVJlY29yZCByZWNvcmQgPSBldmVudC5tUmVjb3Jkcy5nZXQoaSk7Ci0gICAgICAgICAgICBBY2Nlc3NpYmlsaXR5UmVjb3JkIHJlY29yZENsb25lID0gQWNjZXNzaWJpbGl0eVJlY29yZC5vYnRhaW4ocmVjb3JkKTsKLSAgICAgICAgICAgIGV2ZW50Q2xvbmUubVJlY29yZHMuYWRkKHJlY29yZENsb25lKTsKKyAgICAgICAgaWYgKGV2ZW50Lm1SZWNvcmRzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZpbmFsIGludCByZWNvcmRDb3VudCA9IGV2ZW50Lm1SZWNvcmRzLnNpemUoKTsKKyAgICAgICAgICAgIGV2ZW50Q2xvbmUubVJlY29yZHMgPSBuZXcgQXJyYXlMaXN0PEFjY2Vzc2liaWxpdHlSZWNvcmQ+KHJlY29yZENvdW50KTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGZpbmFsIEFjY2Vzc2liaWxpdHlSZWNvcmQgcmVjb3JkID0gZXZlbnQubVJlY29yZHMuZ2V0KGkpOworICAgICAgICAgICAgICAgIGZpbmFsIEFjY2Vzc2liaWxpdHlSZWNvcmQgcmVjb3JkQ2xvbmUgPSBBY2Nlc3NpYmlsaXR5UmVjb3JkLm9idGFpbihyZWNvcmQpOworICAgICAgICAgICAgICAgIGV2ZW50Q2xvbmUubVJlY29yZHMuYWRkKHJlY29yZENsb25lKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBldmVudENsb25lOwpAQCAtMTAxMyw5ICsxMDI0LDExIEBACiAgICAgICAgIG1Db250ZW50Q2hhbmdlVHlwZXMgPSAwOwogICAgICAgICBtUGFja2FnZU5hbWUgPSBudWxsOwogICAgICAgICBtRXZlbnRUaW1lID0gMDsKLSAgICAgICAgd2hpbGUgKCFtUmVjb3Jkcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIEFjY2Vzc2liaWxpdHlSZWNvcmQgcmVjb3JkID0gbVJlY29yZHMucmVtb3ZlKDApOwotICAgICAgICAgICAgcmVjb3JkLnJlY3ljbGUoKTsKKyAgICAgICAgaWYgKG1SZWNvcmRzICE9IG51bGwpIHsKKyAgICAgICAgICAgIHdoaWxlICghbVJlY29yZHMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgQWNjZXNzaWJpbGl0eVJlY29yZCByZWNvcmQgPSBtUmVjb3Jkcy5yZW1vdmUoMCk7CisgICAgICAgICAgICAgICAgcmVjb3JkLnJlY3ljbGUoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtMTAzNywxMSArMTA1MCwxNCBAQAogCiAgICAgICAgIC8vIFJlYWQgdGhlIHJlY29yZHMuCiAgICAgICAgIGZpbmFsIGludCByZWNvcmRDb3VudCA9IHBhcmNlbC5yZWFkSW50KCk7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVjb3JkQ291bnQ7IGkrKykgewotICAgICAgICAgICAgQWNjZXNzaWJpbGl0eVJlY29yZCByZWNvcmQgPSBBY2Nlc3NpYmlsaXR5UmVjb3JkLm9idGFpbigpOwotICAgICAgICAgICAgcmVhZEFjY2Vzc2liaWxpdHlSZWNvcmRGcm9tUGFyY2VsKHJlY29yZCwgcGFyY2VsKTsKLSAgICAgICAgICAgIHJlY29yZC5tQ29ubmVjdGlvbklkID0gbUNvbm5lY3Rpb25JZDsKLSAgICAgICAgICAgIG1SZWNvcmRzLmFkZChyZWNvcmQpOworICAgICAgICBpZiAocmVjb3JkQ291bnQgPiAwKSB7CisgICAgICAgICAgICBtUmVjb3JkcyA9IG5ldyBBcnJheUxpc3Q8QWNjZXNzaWJpbGl0eVJlY29yZD4ocmVjb3JkQ291bnQpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZWNvcmRDb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgQWNjZXNzaWJpbGl0eVJlY29yZCByZWNvcmQgPSBBY2Nlc3NpYmlsaXR5UmVjb3JkLm9idGFpbigpOworICAgICAgICAgICAgICAgIHJlYWRBY2Nlc3NpYmlsaXR5UmVjb3JkRnJvbVBhcmNlbChyZWNvcmQsIHBhcmNlbCk7CisgICAgICAgICAgICAgICAgcmVjb3JkLm1Db25uZWN0aW9uSWQgPSBtQ29ubmVjdGlvbklkOworICAgICAgICAgICAgICAgIG1SZWNvcmRzLmFkZChyZWNvcmQpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCkBAIC0xMTQ3LDggKzExNjMsOCBAQAogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIjsgQ29udGVudENoYW5nZVR5cGVzOiAiKS5hcHBlbmQobUNvbnRlbnRDaGFuZ2VUeXBlcyk7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiOyBzb3VyY2VXaW5kb3dJZDogIikuYXBwZW5kKG1Tb3VyY2VXaW5kb3dJZCk7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiOyBtU291cmNlTm9kZUlkOiAiKS5hcHBlbmQobVNvdXJjZU5vZGVJZCk7Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1SZWNvcmRzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgQWNjZXNzaWJpbGl0eVJlY29yZCByZWNvcmQgPSBtUmVjb3Jkcy5nZXQoaSk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGdldFJlY29yZENvdW50KCk7IGkrKykgeworICAgICAgICAgICAgICAgIGZpbmFsIEFjY2Vzc2liaWxpdHlSZWNvcmQgcmVjb3JkID0gZ2V0UmVjb3JkKGkpOwogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIgIFJlY29yZCAiKTsKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpKTsKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiOiIpOwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbnRlcmFjdGlvbkNsaWVudC5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbnRlcmFjdGlvbkNsaWVudC5qYXZhCmluZGV4IDEzOWRmM2UuLmQ2ZTQwYWVjIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUludGVyYWN0aW9uQ2xpZW50LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbnRlcmFjdGlvbkNsaWVudC5qYXZhCkBAIC03MTgsMTAgKzcxOCw5IEBACiAgICAgICAgICAgICAgICAgTG9nLmUoTE9HX1RBRywgIkR1cGxpY2F0ZSBub2RlLiIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFNwYXJzZUxvbmdBcnJheSBjaGlsZElkcyA9IGN1cnJlbnQuZ2V0Q2hpbGROb2RlSWRzKCk7Ci0gICAgICAgICAgICBmaW5hbCBpbnQgY2hpbGRDb3VudCA9IGNoaWxkSWRzLnNpemUoKTsKKyAgICAgICAgICAgIGZpbmFsIGludCBjaGlsZENvdW50ID0gY3VycmVudC5nZXRDaGlsZENvdW50KCk7CiAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoaWxkQ291bnQ7IGkrKykgewotICAgICAgICAgICAgICAgIGZpbmFsIGxvbmcgY2hpbGRJZCA9IGNoaWxkSWRzLnZhbHVlQXQoaSk7CisgICAgICAgICAgICAgICAgZmluYWwgbG9uZyBjaGlsZElkID0gY3VycmVudC5nZXRDaGlsZElkKGkpOwogICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgaW5mb0NvdW50OyBqKyspIHsKICAgICAgICAgICAgICAgICAgICAgQWNjZXNzaWJpbGl0eU5vZGVJbmZvIGNoaWxkID0gaW5mb3MuZ2V0KGopOwogICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQuZ2V0U291cmNlTm9kZUlkKCkgPT0gY2hpbGRJZCkgewpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNYW5hZ2VyLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hbmFnZXIuamF2YQppbmRleCAwMGY0YWRiLi4zMjRiYTc3IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hbmFnZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hbmFnZXIuamF2YQpAQCAtNzUsNiArNzUsNDIgQEAKICAgICAvKiogQGhpZGUgKi8KICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVEFURV9GTEFHX1RPVUNIX0VYUExPUkFUSU9OX0VOQUJMRUQgPSAweDAwMDAwMDAyOwogCisgICAgLyoqIEBoaWRlICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5WRVJTSU9OX0RJU0FCTEVEID0gLTE7CisKKyAgICAvKiogQGhpZGUgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlZFUlNJT05fU1RBTkRBUkQgPSAwOworCisgICAgLyoqIEBoaWRlICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5WRVJTSU9OX0hVRV9PTkxZID0gMTsKKworICAgIC8qKiBAaGlkZSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOVkVSU0lPTl9WQUxVRV9PTkxZID0gMjsKKworICAgIC8qKiBAaGlkZSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERBTFRPTklaRVJfRElTQUJMRUQgPSAtMTsKKworICAgIC8qKiBAaGlkZSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERBTFRPTklaRVJfU0lNVUxBVEVfTU9OT0NIUk9NQUNZID0gMDsKKworICAgIC8qKiBAaGlkZSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERBTFRPTklaRVJfU0lNVUxBVEVfUFJPVEFOT01BTFkgPSAxOworCisgICAgLyoqIEBoaWRlICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREFMVE9OSVpFUl9TSU1VTEFURV9ERVVURVJBTk9NQUxZID0gMjsKKworICAgIC8qKiBAaGlkZSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERBTFRPTklaRVJfU0lNVUxBVEVfVFJJVEFOT01BTFkgPSAzOworCisgICAgLyoqIEBoaWRlICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREFMVE9OSVpFUl9DT1JSRUNUX1BST1RBTk9NQUxZID0gMTE7CisKKyAgICAvKiogQGhpZGUgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBEQUxUT05JWkVSX0NPUlJFQ1RfREVVVEVSQU5PTUFMWSA9IDEyOworCisgICAgLyoqIEBoaWRlICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREFMVE9OSVpFUl9DT1JSRUNUX1RSSVRBTk9NQUxZID0gMTM7CisKICAgICBzdGF0aWMgZmluYWwgT2JqZWN0IHNJbnN0YW5jZVN5bmMgPSBuZXcgT2JqZWN0KCk7CiAKICAgICBwcml2YXRlIHN0YXRpYyBBY2Nlc3NpYmlsaXR5TWFuYWdlciBzSW5zdGFuY2U7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVJbmZvLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVJbmZvLmphdmEKaW5kZXggNGY1M2MxZS4uNjFhYWJlYSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlSW5mby5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZUluZm8uamF2YQpAQCAtMjIsOCArMjIsOCBAQAogaW1wb3J0IGFuZHJvaWQub3MuUGFyY2VsOwogaW1wb3J0IGFuZHJvaWQub3MuUGFyY2VsYWJsZTsKIGltcG9ydCBhbmRyb2lkLnRleHQuSW5wdXRUeXBlOworaW1wb3J0IGFuZHJvaWQudXRpbC5Mb25nQXJyYXk7CiBpbXBvcnQgYW5kcm9pZC51dGlsLlBvb2xzLlN5bmNocm9uaXplZFBvb2w7Ci1pbXBvcnQgYW5kcm9pZC51dGlsLlNwYXJzZUxvbmdBcnJheTsKIGltcG9ydCBhbmRyb2lkLnZpZXcuVmlldzsKIAogaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKQEAgLTUwMyw3ICs1MDMsNyBAQAogICAgIHByaXZhdGUgQ2hhclNlcXVlbmNlIG1Db250ZW50RGVzY3JpcHRpb247CiAgICAgcHJpdmF0ZSBTdHJpbmcgbVZpZXdJZFJlc291cmNlTmFtZTsKIAotICAgIHByaXZhdGUgZmluYWwgU3BhcnNlTG9uZ0FycmF5IG1DaGlsZE5vZGVJZHMgPSBuZXcgU3BhcnNlTG9uZ0FycmF5KCk7CisgICAgcHJpdmF0ZSBMb25nQXJyYXkgbUNoaWxkTm9kZUlkczsKICAgICBwcml2YXRlIGludCBtQWN0aW9uczsKIAogICAgIHByaXZhdGUgaW50IG1Nb3ZlbWVudEdyYW51bGFyaXRpZXM7CkBAIC02NjYsMjEgKzY2NiwzNSBAQAogICAgIH0KIAogICAgIC8qKgotICAgICAqIEByZXR1cm4gVGhlIGlkcyBvZiB0aGUgY2hpbGRyZW4uCisgICAgICogUmV0dXJucyB0aGUgYXJyYXkgY29udGFpbmluZyB0aGUgSURzIG9mIHRoaXMgbm9kZSdzIGNoaWxkcmVuLgogICAgICAqCiAgICAgICogQGhpZGUKICAgICAgKi8KLSAgICBwdWJsaWMgU3BhcnNlTG9uZ0FycmF5IGdldENoaWxkTm9kZUlkcygpIHsKKyAgICBwdWJsaWMgTG9uZ0FycmF5IGdldENoaWxkTm9kZUlkcygpIHsKICAgICAgICAgcmV0dXJuIG1DaGlsZE5vZGVJZHM7CiAgICAgfQogCiAgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaWQgb2YgdGhlIGNoaWxkIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gd2hlbiBpbmRleCAmbHQ7IDAgfHwgaW5kZXggJmd0Oz0KKyAgICAgKiAgICAgICAgICAgICBnZXRDaGlsZENvdW50KCkKKyAgICAgKiBAaGlkZQorICAgICAqLworICAgIHB1YmxpYyBsb25nIGdldENoaWxkSWQoaW50IGluZGV4KSB7CisgICAgICAgIGlmIChtQ2hpbGROb2RlSWRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1DaGlsZE5vZGVJZHMuZ2V0KGluZGV4KTsKKyAgICB9CisKKyAgICAvKioKICAgICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgY2hpbGRyZW4uCiAgICAgICoKICAgICAgKiBAcmV0dXJuIFRoZSBjaGlsZCBjb3VudC4KICAgICAgKi8KICAgICBwdWJsaWMgaW50IGdldENoaWxkQ291bnQoKSB7Ci0gICAgICAgIHJldHVybiBtQ2hpbGROb2RlSWRzLnNpemUoKTsKKyAgICAgICAgcmV0dXJuIG1DaGlsZE5vZGVJZHMgPT0gbnVsbCA/IDAgOiBtQ2hpbGROb2RlSWRzLnNpemUoKTsKICAgICB9CiAKICAgICAvKioKQEAgLTY5OSw2ICs3MTMsOSBAQAogICAgICAqLwogICAgIHB1YmxpYyBBY2Nlc3NpYmlsaXR5Tm9kZUluZm8gZ2V0Q2hpbGQoaW50IGluZGV4KSB7CiAgICAgICAgIGVuZm9yY2VTZWFsZWQoKTsKKyAgICAgICAgaWYgKG1DaGlsZE5vZGVJZHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KICAgICAgICAgaWYgKCFjYW5QZXJmb3JtUmVxdWVzdE92ZXJDb25uZWN0aW9uKG1Tb3VyY2VOb2RlSWQpKSB7CiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgfQpAQCAtNzIxLDcgKzczOCwzNSBAQAogICAgICAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uIElmIGNhbGxlZCBmcm9tIGFuIEFjY2Vzc2liaWxpdHlTZXJ2aWNlLgogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIGFkZENoaWxkKFZpZXcgY2hpbGQpIHsKLSAgICAgICAgYWRkQ2hpbGQoY2hpbGQsIFVOREVGSU5FRCk7CisgICAgICAgIGFkZENoaWxkSW50ZXJuYWwoY2hpbGQsIFVOREVGSU5FRCwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5jaGVja2VkIHZlcnNpb24gb2Yge0BsaW5rICNhZGRDaGlsZChWaWV3KX0gdGhhdCBkb2VzIG5vdCB2ZXJpZnkKKyAgICAgKiB1bmlxdWVuZXNzLiBGb3IgZnJhbWV3b3JrIHVzZSBvbmx5LgorICAgICAqCisgICAgICogQGhpZGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRDaGlsZFVuY2hlY2tlZChWaWV3IGNoaWxkKSB7CisgICAgICAgIGFkZENoaWxkSW50ZXJuYWwoY2hpbGQsIFVOREVGSU5FRCwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgYSBjaGlsZC4gSWYgdGhlIGNoaWxkIHdhcyBub3QgcHJldmlvdXNseSBhZGRlZCB0byB0aGUgbm9kZSwKKyAgICAgKiBjYWxsaW5nIHRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QuCisgICAgICogPHA+CisgICAgICogPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBDYW5ub3QgYmUgY2FsbGVkIGZyb20gYW4KKyAgICAgKiB7QGxpbmsgYW5kcm9pZC5hY2Nlc3NpYmlsaXR5c2VydmljZS5BY2Nlc3NpYmlsaXR5U2VydmljZX0uCisgICAgICogVGhpcyBjbGFzcyBpcyBtYWRlIGltbXV0YWJsZSBiZWZvcmUgYmVpbmcgZGVsaXZlcmVkIHRvIGFuIEFjY2Vzc2liaWxpdHlTZXJ2aWNlLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjaGlsZCBUaGUgY2hpbGQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjaGlsZCB3YXMgcHJlc2VudAorICAgICAqCisgICAgICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24gSWYgY2FsbGVkIGZyb20gYW4gQWNjZXNzaWJpbGl0eVNlcnZpY2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcmVtb3ZlQ2hpbGQoVmlldyBjaGlsZCkgeworICAgICAgICByZXR1cm4gcmVtb3ZlQ2hpbGQoY2hpbGQsIFVOREVGSU5FRCk7CiAgICAgfQogCiAgICAgLyoqCkBAIC03MzksMTIgKzc4NCw0OSBAQAogICAgICAqIEBwYXJhbSB2aXJ0dWFsRGVzY2VuZGFudElkIFRoZSBpZCBvZiB0aGUgdmlydHVhbCBjaGlsZC4KICAgICAgKi8KICAgICBwdWJsaWMgdm9pZCBhZGRDaGlsZChWaWV3IHJvb3QsIGludCB2aXJ0dWFsRGVzY2VuZGFudElkKSB7CisgICAgICAgIGFkZENoaWxkSW50ZXJuYWwocm9vdCwgdmlydHVhbERlc2NlbmRhbnRJZCwgdHJ1ZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFkZENoaWxkSW50ZXJuYWwoVmlldyByb290LCBpbnQgdmlydHVhbERlc2NlbmRhbnRJZCwgYm9vbGVhbiBjaGVja2VkKSB7CiAgICAgICAgIGVuZm9yY2VOb3RTZWFsZWQoKTsKLSAgICAgICAgZmluYWwgaW50IGluZGV4ID0gbUNoaWxkTm9kZUlkcy5zaXplKCk7CisgICAgICAgIGlmIChtQ2hpbGROb2RlSWRzID09IG51bGwpIHsKKyAgICAgICAgICAgIG1DaGlsZE5vZGVJZHMgPSBuZXcgTG9uZ0FycmF5KCk7CisgICAgICAgIH0KICAgICAgICAgZmluYWwgaW50IHJvb3RBY2Nlc3NpYmlsaXR5Vmlld0lkID0KICAgICAgICAgICAgIChyb290ICE9IG51bGwpID8gcm9vdC5nZXRBY2Nlc3NpYmlsaXR5Vmlld0lkKCkgOiBVTkRFRklORUQ7CiAgICAgICAgIGZpbmFsIGxvbmcgY2hpbGROb2RlSWQgPSBtYWtlTm9kZUlkKHJvb3RBY2Nlc3NpYmlsaXR5Vmlld0lkLCB2aXJ0dWFsRGVzY2VuZGFudElkKTsKLSAgICAgICAgbUNoaWxkTm9kZUlkcy5wdXQoaW5kZXgsIGNoaWxkTm9kZUlkKTsKKyAgICAgICAgLy8gSWYgd2UncmUgY2hlY2tpbmcgdW5pcXVlbmVzcyBhbmQgdGhlIElEIGFscmVhZHkgZXhpc3RzLCBhYm9ydC4KKyAgICAgICAgaWYgKGNoZWNrZWQgJiYgbUNoaWxkTm9kZUlkcy5pbmRleE9mKGNoaWxkTm9kZUlkKSA+PSAwKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbUNoaWxkTm9kZUlkcy5hZGQoY2hpbGROb2RlSWQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgYSB2aXJ0dWFsIGNoaWxkIHdoaWNoIGlzIGEgZGVzY2VuZGFudCBvZiB0aGUgZ2l2ZW4KKyAgICAgKiA8Y29kZT5yb290PC9jb2RlPi4gSWYgdGhlIGNoaWxkIHdhcyBub3QgcHJldmlvdXNseSBhZGRlZCB0byB0aGUgbm9kZSwKKyAgICAgKiBjYWxsaW5nIHRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcm9vdCBUaGUgcm9vdCBvZiB0aGUgdmlydHVhbCBzdWJ0cmVlLgorICAgICAqIEBwYXJhbSB2aXJ0dWFsRGVzY2VuZGFudElkIFRoZSBpZCBvZiB0aGUgdmlydHVhbCBjaGlsZC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNoaWxkIHdhcyBwcmVzZW50CisgICAgICogQHNlZSAjYWRkQ2hpbGQoVmlldywgaW50KQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHJlbW92ZUNoaWxkKFZpZXcgcm9vdCwgaW50IHZpcnR1YWxEZXNjZW5kYW50SWQpIHsKKyAgICAgICAgZW5mb3JjZU5vdFNlYWxlZCgpOworICAgICAgICBmaW5hbCBMb25nQXJyYXkgY2hpbGRJZHMgPSBtQ2hpbGROb2RlSWRzOworICAgICAgICBpZiAoY2hpbGRJZHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGZpbmFsIGludCByb290QWNjZXNzaWJpbGl0eVZpZXdJZCA9CisgICAgICAgICAgICAgICAgKHJvb3QgIT0gbnVsbCkgPyByb290LmdldEFjY2Vzc2liaWxpdHlWaWV3SWQoKSA6IFVOREVGSU5FRDsKKyAgICAgICAgZmluYWwgbG9uZyBjaGlsZE5vZGVJZCA9IG1ha2VOb2RlSWQocm9vdEFjY2Vzc2liaWxpdHlWaWV3SWQsIHZpcnR1YWxEZXNjZW5kYW50SWQpOworICAgICAgICBmaW5hbCBpbnQgaW5kZXggPSBjaGlsZElkcy5pbmRleE9mKGNoaWxkTm9kZUlkKTsKKyAgICAgICAgaWYgKGluZGV4IDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGNoaWxkSWRzLnJlbW92ZShpbmRleCk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIC8qKgpAQCAtNzg5LDYgKzg3MSwyNCBAQAogICAgIH0KIAogICAgIC8qKgorICAgICAqIFJlbW92ZXMgYW4gYWN0aW9uIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiB0aGUgbm9kZS4gSWYgdGhlIGFjdGlvbiB3YXMKKyAgICAgKiBub3QgYWxyZWFkeSBhZGRlZCB0byB0aGUgbm9kZSwgY2FsbGluZyB0aGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0LgorICAgICAqIDxwPgorICAgICAqICAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBDYW5ub3QgYmUgY2FsbGVkIGZyb20gYW4KKyAgICAgKiAgIHtAbGluayBhbmRyb2lkLmFjY2Vzc2liaWxpdHlzZXJ2aWNlLkFjY2Vzc2liaWxpdHlTZXJ2aWNlfS4KKyAgICAgKiAgIFRoaXMgY2xhc3MgaXMgbWFkZSBpbW11dGFibGUgYmVmb3JlIGJlaW5nIGRlbGl2ZXJlZCB0byBhbiBBY2Nlc3NpYmlsaXR5U2VydmljZS4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gYWN0aW9uIFRoZSBhY3Rpb24uCisgICAgICoKKyAgICAgKiBAdGhyb3dzIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiBJZiBjYWxsZWQgZnJvbSBhbiBBY2Nlc3NpYmlsaXR5U2VydmljZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmVBY3Rpb24oaW50IGFjdGlvbikgeworICAgICAgICBlbmZvcmNlTm90U2VhbGVkKCk7CisgICAgICAgIG1BY3Rpb25zICY9IH5hY3Rpb247CisgICAgfQorCisgICAgLyoqCiAgICAgICogU2V0cyB0aGUgbW92ZW1lbnQgZ3JhbnVsYXJpdGllcyBmb3IgdHJhdmVyc2luZyB0aGUgdGV4dCBvZiB0aGlzIG5vZGUuCiAgICAgICogPHA+CiAgICAgICogICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IENhbm5vdCBiZSBjYWxsZWQgZnJvbSBhbgpAQCAtMTQwOCw4ICsxNTA4LDYgQEAKICAgICAgKiAgIHtAbGluayBhbmRyb2lkLmFjY2Vzc2liaWxpdHlzZXJ2aWNlLkFjY2Vzc2liaWxpdHlTZXJ2aWNlfS4KICAgICAgKiAgIFRoaXMgY2xhc3MgaXMgbWFkZSBpbW11dGFibGUgYmVmb3JlIGJlaW5nIGRlbGl2ZXJlZCB0byBhbiBBY2Nlc3NpYmlsaXR5U2VydmljZS4KICAgICAgKiA8L3A+Ci0gICAgICoKLSAgICAgKiBAcmV0dXJuIGNvbGxlY3Rpb25JdGVtIFRydWUgaWYgdGhlIG5vZGUgaXMgYW4gaXRlbS4KICAgICAgKi8KICAgICBwdWJsaWMgdm9pZCBzZXRDb2xsZWN0aW9uSXRlbUluZm8oQ29sbGVjdGlvbkl0ZW1JbmZvIGNvbGxlY3Rpb25JdGVtSW5mbykgewogICAgICAgICBlbmZvcmNlTm90U2VhbGVkKCk7CkBAIC0xOTUxLDYgKzIwNDksNyBAQAogICAgIC8qKgogICAgICAqIHtAaW5oZXJpdERvY30KICAgICAgKi8KKyAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgaW50IGRlc2NyaWJlQ29udGVudHMoKSB7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTIxMTQsNiArMjIxMyw3IEBACiAgICAgICogICAgICBpcyByZWN5Y2xlZC4gWW91IG11c3Qgbm90IHRvdWNoIHRoZSBvYmplY3QgYWZ0ZXIgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgogICAgICAqIDwvcD4KICAgICAgKi8KKyAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCB3cml0ZVRvUGFyY2VsKFBhcmNlbCBwYXJjZWwsIGludCBmbGFncykgewogICAgICAgICBwYXJjZWwud3JpdGVJbnQoaXNTZWFsZWQoKSA/IDEgOiAwKTsKICAgICAgICAgcGFyY2VsLndyaXRlTG9uZyhtU291cmNlTm9kZUlkKTsKQEAgLTIxMjMsMTEgKzIyMjMsMTUgQEAKICAgICAgICAgcGFyY2VsLndyaXRlTG9uZyhtTGFiZWxlZEJ5SWQpOwogICAgICAgICBwYXJjZWwud3JpdGVJbnQobUNvbm5lY3Rpb25JZCk7CiAKLSAgICAgICAgU3BhcnNlTG9uZ0FycmF5IGNoaWxkSWRzID0gbUNoaWxkTm9kZUlkczsKLSAgICAgICAgZmluYWwgaW50IGNoaWxkSWRzU2l6ZSA9IGNoaWxkSWRzLnNpemUoKTsKLSAgICAgICAgcGFyY2VsLndyaXRlSW50KGNoaWxkSWRzU2l6ZSk7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRJZHNTaXplOyBpKyspIHsKLSAgICAgICAgICAgIHBhcmNlbC53cml0ZUxvbmcoY2hpbGRJZHMudmFsdWVBdChpKSk7CisgICAgICAgIGZpbmFsIExvbmdBcnJheSBjaGlsZElkcyA9IG1DaGlsZE5vZGVJZHM7CisgICAgICAgIGlmIChjaGlsZElkcyA9PSBudWxsKSB7CisgICAgICAgICAgICBwYXJjZWwud3JpdGVJbnQoMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmaW5hbCBpbnQgY2hpbGRJZHNTaXplID0gY2hpbGRJZHMuc2l6ZSgpOworICAgICAgICAgICAgcGFyY2VsLndyaXRlSW50KGNoaWxkSWRzU2l6ZSk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoaWxkSWRzU2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgcGFyY2VsLndyaXRlTG9uZyhjaGlsZElkcy5nZXQoaSkpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgcGFyY2VsLndyaXRlSW50KG1Cb3VuZHNJblBhcmVudC50b3ApOwpAQCAtMjIyMiwxMCArMjMyNiwxNiBAQAogICAgICAgICBtQWN0aW9ucz0gb3RoZXIubUFjdGlvbnM7CiAgICAgICAgIG1Cb29sZWFuUHJvcGVydGllcyA9IG90aGVyLm1Cb29sZWFuUHJvcGVydGllczsKICAgICAgICAgbU1vdmVtZW50R3JhbnVsYXJpdGllcyA9IG90aGVyLm1Nb3ZlbWVudEdyYW51bGFyaXRpZXM7Ci0gICAgICAgIGZpbmFsIGludCBvdGhlckNoaWxkSWRDb3VudCA9IG90aGVyLm1DaGlsZE5vZGVJZHMuc2l6ZSgpOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG90aGVyQ2hpbGRJZENvdW50OyBpKyspIHsKLSAgICAgICAgICAgIG1DaGlsZE5vZGVJZHMucHV0KGksIG90aGVyLm1DaGlsZE5vZGVJZHMudmFsdWVBdChpKSk7CisKKyAgICAgICAgZmluYWwgTG9uZ0FycmF5IG90aGVyQ2hpbGROb2RlSWRzID0gb3RoZXIubUNoaWxkTm9kZUlkczsKKyAgICAgICAgaWYgKG90aGVyQ2hpbGROb2RlSWRzICE9IG51bGwgJiYgb3RoZXJDaGlsZE5vZGVJZHMuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgaWYgKG1DaGlsZE5vZGVJZHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1DaGlsZE5vZGVJZHMgPSBvdGhlckNoaWxkTm9kZUlkcy5jbG9uZSgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtQ2hpbGROb2RlSWRzLmFkZEFsbChvdGhlckNoaWxkTm9kZUlkcyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KKwogICAgICAgICBtVGV4dFNlbGVjdGlvblN0YXJ0ID0gb3RoZXIubVRleHRTZWxlY3Rpb25TdGFydDsKICAgICAgICAgbVRleHRTZWxlY3Rpb25FbmQgPSBvdGhlci5tVGV4dFNlbGVjdGlvbkVuZDsKICAgICAgICAgbUlucHV0VHlwZSA9IG90aGVyLm1JbnB1dFR5cGU7CkBAIC0yMjU1LDExICsyMzY1LDE1IEBACiAgICAgICAgIG1MYWJlbGVkQnlJZCA9IHBhcmNlbC5yZWFkTG9uZygpOwogICAgICAgICBtQ29ubmVjdGlvbklkID0gcGFyY2VsLnJlYWRJbnQoKTsKIAotICAgICAgICBTcGFyc2VMb25nQXJyYXkgY2hpbGRJZHMgPSBtQ2hpbGROb2RlSWRzOwogICAgICAgICBmaW5hbCBpbnQgY2hpbGRyZW5TaXplID0gcGFyY2VsLnJlYWRJbnQoKTsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGlsZHJlblNpemU7IGkrKykgewotICAgICAgICAgICAgZmluYWwgbG9uZyBjaGlsZElkID0gcGFyY2VsLnJlYWRMb25nKCk7Ci0gICAgICAgICAgICBjaGlsZElkcy5wdXQoaSwgY2hpbGRJZCk7CisgICAgICAgIGlmIChjaGlsZHJlblNpemUgPD0gMCkgeworICAgICAgICAgICAgbUNoaWxkTm9kZUlkcyA9IG51bGw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtQ2hpbGROb2RlSWRzID0gbmV3IExvbmdBcnJheShjaGlsZHJlblNpemUpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGlsZHJlblNpemU7IGkrKykgeworICAgICAgICAgICAgICAgIGZpbmFsIGxvbmcgY2hpbGRJZCA9IHBhcmNlbC5yZWFkTG9uZygpOworICAgICAgICAgICAgICAgIG1DaGlsZE5vZGVJZHMuYWRkKGNoaWxkSWQpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgbUJvdW5kc0luUGFyZW50LnRvcCA9IHBhcmNlbC5yZWFkSW50KCk7CkBAIC0yMzMxLDcgKzI0NDUsOSBAQAogICAgICAgICBtV2luZG93SWQgPSBVTkRFRklORUQ7CiAgICAgICAgIG1Db25uZWN0aW9uSWQgPSBVTkRFRklORUQ7CiAgICAgICAgIG1Nb3ZlbWVudEdyYW51bGFyaXRpZXMgPSAwOwotICAgICAgICBtQ2hpbGROb2RlSWRzLmNsZWFyKCk7CisgICAgICAgIGlmIChtQ2hpbGROb2RlSWRzICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1DaGlsZE5vZGVJZHMuY2xlYXIoKTsKKyAgICAgICAgfQogICAgICAgICBtQm91bmRzSW5QYXJlbnQuc2V0KDAsIDAsIDAsIDApOwogICAgICAgICBtQm91bmRzSW5TY3JlZW4uc2V0KDAsIDAsIDAsIDApOwogICAgICAgICBtQm9vbGVhblByb3BlcnRpZXMgPSAwOwpAQCAtMjQ5MywxMiArMjYwOSwxNCBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIl0iKTsKIAotICAgICAgICAgICAgU3BhcnNlTG9uZ0FycmF5IGNoaWxkSWRzID0gbUNoaWxkTm9kZUlkczsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCI7IGNoaWxkQWNjZXNzaWJpbGl0eUlkczogWyIpOwotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDAsIGNvdW50ID0gY2hpbGRJZHMuc2l6ZSgpOyBpIDwgY291bnQ7IGkrKykgewotICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGNoaWxkSWRzLnZhbHVlQXQoaSkpOwotICAgICAgICAgICAgICAgIGlmIChpIDwgY291bnQgLSAxKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgZmluYWwgTG9uZ0FycmF5IGNoaWxkSWRzID0gbUNoaWxkTm9kZUlkczsKKyAgICAgICAgICAgIGlmIChjaGlsZElkcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDAsIGNvdW50ID0gY2hpbGRJZHMuc2l6ZSgpOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChjaGlsZElkcy5nZXQoaSkpOworICAgICAgICAgICAgICAgICAgICBpZiAoaSA8IGNvdW50IC0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiXSIpOwpAQCAtMjg5MywxNiArMzAxMSwxOCBAQAogICAgIH0KIAogICAgIC8qKgotICAgICAqIEBzZWUgUGFyY2VsYWJsZS5DcmVhdG9yCisgICAgICogQHNlZSBhbmRyb2lkLm9zLlBhcmNlbGFibGUuQ3JlYXRvcgogICAgICAqLwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgUGFyY2VsYWJsZS5DcmVhdG9yPEFjY2Vzc2liaWxpdHlOb2RlSW5mbz4gQ1JFQVRPUiA9CiAgICAgICAgICAgICBuZXcgUGFyY2VsYWJsZS5DcmVhdG9yPEFjY2Vzc2liaWxpdHlOb2RlSW5mbz4oKSB7CisgICAgICAgIEBPdmVycmlkZQogICAgICAgICBwdWJsaWMgQWNjZXNzaWJpbGl0eU5vZGVJbmZvIGNyZWF0ZUZyb21QYXJjZWwoUGFyY2VsIHBhcmNlbCkgewogICAgICAgICAgICAgQWNjZXNzaWJpbGl0eU5vZGVJbmZvIGluZm8gPSBBY2Nlc3NpYmlsaXR5Tm9kZUluZm8ub2J0YWluKCk7CiAgICAgICAgICAgICBpbmZvLmluaXRGcm9tUGFyY2VsKHBhcmNlbCk7CiAgICAgICAgICAgICByZXR1cm4gaW5mbzsKICAgICAgICAgfQogCisgICAgICAgIEBPdmVycmlkZQogICAgICAgICBwdWJsaWMgQWNjZXNzaWJpbGl0eU5vZGVJbmZvW10gbmV3QXJyYXkoaW50IHNpemUpIHsKICAgICAgICAgICAgIHJldHVybiBuZXcgQWNjZXNzaWJpbGl0eU5vZGVJbmZvW3NpemVdOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVJbmZvQ2FjaGUuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZUluZm9DYWNoZS5qYXZhCmluZGV4IGE5NDczYTguLjg1YWNhNjEgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZUluZm9DYWNoZS5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZUluZm9DYWNoZS5qYXZhCkBAIC0xOCw2ICsxOCw3IEBACiAKIGltcG9ydCBhbmRyb2lkLm9zLkJ1aWxkOwogaW1wb3J0IGFuZHJvaWQudXRpbC5Mb2c7CitpbXBvcnQgYW5kcm9pZC51dGlsLkxvbmdBcnJheTsKIGltcG9ydCBhbmRyb2lkLnV0aWwuTG9uZ1NwYXJzZUFycmF5OwogaW1wb3J0IGFuZHJvaWQudXRpbC5TcGFyc2VMb25nQXJyYXk7CiAKQEAgLTE3MiwxMiArMTczLDEyIEBACiAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBuZXcgb25lIHJlcHJlc2VudHMgYSBzb3VyY2Ugc3RhdGUgd2hlcmUgc29tZSBvZiB0aGUKICAgICAgICAgICAgICAgICAgICAgLy8gY2hpbGRyZW4gaGF2ZSBiZWVuIHJlbW92ZWQgdG8gYXZvaWQgaGF2aW5nIGRpc2Nvbm5lY3RlZAogICAgICAgICAgICAgICAgICAgICAvLyBzdWJ0cmVlcyBpbiB0aGUgY2FjaGUuCi0gICAgICAgICAgICAgICAgICAgIFNwYXJzZUxvbmdBcnJheSBvbGRDaGlsZHJlbklkcyA9IG9sZEluZm8uZ2V0Q2hpbGROb2RlSWRzKCk7Ci0gICAgICAgICAgICAgICAgICAgIFNwYXJzZUxvbmdBcnJheSBuZXdDaGlsZHJlbklkcyA9IGluZm8uZ2V0Q2hpbGROb2RlSWRzKCk7Ci0gICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBvbGRDaGlsZENvdW50ID0gb2xkQ2hpbGRyZW5JZHMuc2l6ZSgpOworICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBSdW5zIGluIE8obl4yKSwgY291bGQgb3B0aW1pemUgdG8gTyhuICsgbiBsb2cgbikKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgTG9uZ0FycmF5IG5ld0NoaWxkcmVuSWRzID0gaW5mby5nZXRDaGlsZE5vZGVJZHMoKTsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IG9sZENoaWxkQ291bnQgPSBvbGRJbmZvLmdldENoaWxkQ291bnQoKTsKICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvbGRDaGlsZENvdW50OyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGxvbmcgb2xkQ2hpbGRJZCA9IG9sZENoaWxkcmVuSWRzLnZhbHVlQXQoaSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3Q2hpbGRyZW5JZHMuaW5kZXhPZlZhbHVlKG9sZENoaWxkSWQpIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgbG9uZyBvbGRDaGlsZElkID0gb2xkSW5mby5nZXRDaGlsZElkKGkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0NoaWxkcmVuSWRzLmluZGV4T2Yob2xkQ2hpbGRJZCkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJTdWJUcmVlTG9ja2VkKG9sZENoaWxkSWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CkBAIC0yMzcsMTAgKzIzOCw5IEBACiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgbUNhY2hlSW1wbC5yZW1vdmUocm9vdE5vZGVJZCk7Ci0gICAgICAgIFNwYXJzZUxvbmdBcnJheSBjaGlsZE5vZGVJZHMgPSBjdXJyZW50LmdldENoaWxkTm9kZUlkcygpOwotICAgICAgICBmaW5hbCBpbnQgY2hpbGRDb3VudCA9IGNoaWxkTm9kZUlkcy5zaXplKCk7CisgICAgICAgIGZpbmFsIGludCBjaGlsZENvdW50ID0gY3VycmVudC5nZXRDaGlsZENvdW50KCk7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRDb3VudDsgaSsrKSB7Ci0gICAgICAgICAgICBmaW5hbCBsb25nIGNoaWxkTm9kZUlkID0gY2hpbGROb2RlSWRzLnZhbHVlQXQoaSk7CisgICAgICAgICAgICBmaW5hbCBsb25nIGNoaWxkTm9kZUlkID0gY3VycmVudC5nZXRDaGlsZElkKGkpOwogICAgICAgICAgICAgY2xlYXJTdWJUcmVlUmVjdXJzaXZlTG9ja2VkKGNoaWxkTm9kZUlkKTsKICAgICAgICAgfQogICAgIH0KQEAgLTMwMSwxMSArMzAxLDEwIEBACiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBTcGFyc2VMb25nQXJyYXkgY2hpbGRJZHMgPSBjdXJyZW50LmdldENoaWxkTm9kZUlkcygpOwotICAgICAgICAgICAgICAgIGZpbmFsIGludCBjaGlsZENvdW50ID0gY2hpbGRJZHMuc2l6ZSgpOworICAgICAgICAgICAgICAgIGZpbmFsIGludCBjaGlsZENvdW50ID0gY3VycmVudC5nZXRDaGlsZENvdW50KCk7CiAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGlsZENvdW50OyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgZmluYWwgbG9uZyBjaGlsZElkID0gY2hpbGRJZHMudmFsdWVBdChpKTsKLSAgICAgICAgICAgICAgICAgICAgQWNjZXNzaWJpbGl0eU5vZGVJbmZvIGNoaWxkID0gbUNhY2hlSW1wbC5nZXQoY2hpbGRJZCk7CisgICAgICAgICAgICAgICAgICAgIGZpbmFsIGxvbmcgY2hpbGRJZCA9IGN1cnJlbnQuZ2V0Q2hpbGRJZChpKTsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgQWNjZXNzaWJpbGl0eU5vZGVJbmZvIGNoaWxkID0gbUNhY2hlSW1wbC5nZXQoY2hpbGRJZCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBmcmluZ2UuYWRkKGNoaWxkKTsKICAgICAgICAgICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9pbnB1dG1ldGhvZC9CYXNlSW5wdXRDb25uZWN0aW9uLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L2lucHV0bWV0aG9kL0Jhc2VJbnB1dENvbm5lY3Rpb24uamF2YQppbmRleCBmNzMwY2Y3Li41NTUyOTUyIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L2lucHV0bWV0aG9kL0Jhc2VJbnB1dENvbm5lY3Rpb24uamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L2lucHV0bWV0aG9kL0Jhc2VJbnB1dENvbm5lY3Rpb24uamF2YQpAQCAtNjAxLDcgKzYwMSwxMSBAQAogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBiZWdpbkJhdGNoRWRpdCgpOwotICAgICAgICAKKyAgICAgICAgaWYgKCFjb21wb3NpbmcgJiYgIVRleHRVdGlscy5pc0VtcHR5KHRleHQpKSB7CisgICAgICAgICAgICAvLyBOb3RpZnkgdGhlIHRleHQgaXMgY29tbWl0dGVkIGJ5IHRoZSB1c2VyIHRvIElucHV0TWV0aG9kTWFuYWdlclNlcnZpY2UKKyAgICAgICAgICAgIG1JTU0ubm90aWZ5VGV4dENvbW1pdHRlZCgpOworICAgICAgICB9CisKICAgICAgICAgLy8gZGVsZXRlIGNvbXBvc2luZyB0ZXh0IHNldCBwcmV2aW91c2x5LgogICAgICAgICBpbnQgYSA9IGdldENvbXBvc2luZ1NwYW5TdGFydChjb250ZW50KTsKICAgICAgICAgaW50IGIgPSBnZXRDb21wb3NpbmdTcGFuRW5kKGNvbnRlbnQpOwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9pbnB1dG1ldGhvZC9JbnB1dE1ldGhvZE1hbmFnZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvaW5wdXRtZXRob2QvSW5wdXRNZXRob2RNYW5hZ2VyLmphdmEKaW5kZXggNTNmN2M3OS4uNzBjNTNkMiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9pbnB1dG1ldGhvZC9JbnB1dE1ldGhvZE1hbmFnZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC92aWV3L2lucHV0bWV0aG9kL0lucHV0TWV0aG9kTWFuYWdlci5qYXZhCkBAIC0xODA1LDYgKzE4MDUsMjAgQEAKICAgICB9CiAKICAgICAvKioKKyAgICAgKiBOb3RpZnkgdGhlIGN1cnJlbnQgSU1FIGNvbW1pdHMgdGV4dAorICAgICAqIEBoaWRlCisgICAgICovCisgICAgcHVibGljIHZvaWQgbm90aWZ5VGV4dENvbW1pdHRlZCgpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChtSCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBtU2VydmljZS5ub3RpZnlUZXh0Q29tbWl0dGVkKCk7CisgICAgICAgICAgICB9IGNhdGNoIChSZW1vdGVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIExvZy53KFRBRywgIklNRSBkaWVkOiAiICsgbUN1cklkLCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgogICAgICAqIFJldHVybnMgYSBtYXAgb2YgYWxsIHNob3J0Y3V0IGlucHV0IG1ldGhvZCBpbmZvIGFuZCB0aGVpciBzdWJ0eXBlcy4KICAgICAgKi8KICAgICBwdWJsaWMgTWFwPElucHV0TWV0aG9kSW5mbywgTGlzdDxJbnB1dE1ldGhvZFN1YnR5cGU+PiBnZXRTaG9ydGN1dElucHV0TWV0aG9kc0FuZFN1YnR5cGVzKCkgewpAQCAtMTg0MCw2ICsxODU0LDIxIEBACiAgICAgfQogCiAgICAgLyoqCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBoZWlnaHQgb2YgdGhlIGlucHV0IG1ldGhvZCB3aW5kb3cuCisgICAgICogQGhpZGUKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldElucHV0TWV0aG9kV2luZG93VmlzaWJsZUhlaWdodCgpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChtSCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbVNlcnZpY2UuZ2V0SW5wdXRNZXRob2RXaW5kb3dWaXNpYmxlSGVpZ2h0KCk7CisgICAgICAgICAgICB9IGNhdGNoIChSZW1vdGVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIExvZy53KFRBRywgIklNRSBkaWVkOiAiICsgbUN1cklkLCBlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgogICAgICAqIEZvcmNlIHN3aXRjaCB0byB0aGUgbGFzdCB1c2VkIGlucHV0IG1ldGhvZCBhbmQgc3VidHlwZS4gSWYgdGhlIGxhc3QgaW5wdXQgbWV0aG9kIGRpZG4ndCBoYXZlCiAgICAgICogYW55IHN1YnR5cGVzLCB0aGUgZnJhbWV3b3JrIHdpbGwgc2ltcGx5IHN3aXRjaCB0byB0aGUgbGFzdCBpbnB1dCBtZXRob2Qgd2l0aCBubyBzdWJ0eXBlCiAgICAgICogc3BlY2lmaWVkLgpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvdmlldy9pbnB1dG1ldGhvZC9JbnB1dE1ldGhvZFN1YnR5cGUuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvaW5wdXRtZXRob2QvSW5wdXRNZXRob2RTdWJ0eXBlLmphdmEKaW5kZXggNDBmOTVjZS4uODQwNzJiZjA2IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC92aWV3L2lucHV0bWV0aG9kL0lucHV0TWV0aG9kU3VidHlwZS5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3ZpZXcvaW5wdXRtZXRob2QvSW5wdXRNZXRob2RTdWJ0eXBlLmphdmEKQEAgLTQ3MiwxMiArNDcyLDEyIEBACiAgICAgICAgICAgICAgICAgcmV0dXJuIChzdWJ0eXBlLmhhc2hDb2RlKCkgPT0gaGFzaENvZGUoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gKHN1YnR5cGUuaGFzaENvZGUoKSA9PSBoYXNoQ29kZSgpKQotICAgICAgICAgICAgICAgICYmIChzdWJ0eXBlLmdldE5hbWVSZXNJZCgpID09IGdldE5hbWVSZXNJZCgpKQotICAgICAgICAgICAgICAgICYmIChzdWJ0eXBlLmdldE1vZGUoKS5lcXVhbHMoZ2V0TW9kZSgpKSkKLSAgICAgICAgICAgICAgICAmJiAoc3VidHlwZS5nZXRJY29uUmVzSWQoKSA9PSBnZXRJY29uUmVzSWQoKSkKICAgICAgICAgICAgICAgICAmJiAoc3VidHlwZS5nZXRMb2NhbGUoKS5lcXVhbHMoZ2V0TG9jYWxlKCkpKQorICAgICAgICAgICAgICAgICYmIChzdWJ0eXBlLmdldE1vZGUoKS5lcXVhbHMoZ2V0TW9kZSgpKSkKICAgICAgICAgICAgICAgICAmJiAoc3VidHlwZS5nZXRFeHRyYVZhbHVlKCkuZXF1YWxzKGdldEV4dHJhVmFsdWUoKSkpCiAgICAgICAgICAgICAgICAgJiYgKHN1YnR5cGUuaXNBdXhpbGlhcnkoKSA9PSBpc0F1eGlsaWFyeSgpKQorICAgICAgICAgICAgICAgICYmIChzdWJ0eXBlLm92ZXJyaWRlc0ltcGxpY2l0bHlFbmFibGVkU3VidHlwZSgpCisgICAgICAgICAgICAgICAgICAgICAgICA9PSBvdmVycmlkZXNJbXBsaWNpdGx5RW5hYmxlZFN1YnR5cGUoKSkKICAgICAgICAgICAgICAgICAmJiAoc3VidHlwZS5pc0FzY2lpQ2FwYWJsZSgpID09IGlzQXNjaWlDYXBhYmxlKCkpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dlYmtpdC9XZWJWaWV3LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93ZWJraXQvV2ViVmlldy5qYXZhCmluZGV4IDViYzM5ZjE1Li45ZmM4Nzc5IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93ZWJraXQvV2ViVmlldy5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dlYmtpdC9XZWJWaWV3LmphdmEKQEAgLTI4LDcgKzI4LDYgQEAKIGltcG9ydCBhbmRyb2lkLm5ldC5odHRwLlNzbENlcnRpZmljYXRlOwogaW1wb3J0IGFuZHJvaWQub3MuQnVpbGQ7CiBpbXBvcnQgYW5kcm9pZC5vcy5CdW5kbGU7Ci1pbXBvcnQgYW5kcm9pZC5vcy5DYW5jZWxsYXRpb25TaWduYWw7CiBpbXBvcnQgYW5kcm9pZC5vcy5Mb29wZXI7CiBpbXBvcnQgYW5kcm9pZC5vcy5NZXNzYWdlOwogaW1wb3J0IGFuZHJvaWQub3MuU3RyaWN0TW9kZTsKQEAgLTUwLDYgKzQ5LDcgQEAKIAogaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRXcml0ZXI7CiBpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uT3V0cHV0U3RyZWFtOwogaW1wb3J0IGphdmEudXRpbC5NYXA7CiAKIC8qKgpAQCAtMjU1LDcgKzI1NSw3IEBACiAgICAgLy8gVGhyb3dpbmcgYW4gZXhjZXB0aW9uIGZvciBpbmNvcnJlY3QgdGhyZWFkIHVzYWdlIGlmIHRoZQogICAgIC8vIGJ1aWxkIHRhcmdldCBpcyBKQiBNUjIgb3IgbmV3ZXIuIERlZmF1bHRzIHRvIGZhbHNlLCBhbmQgaXMKICAgICAvLyBzZXQgaW4gdGhlIFdlYlZpZXcgY29uc3RydWN0b3IuCi0gICAgcHJpdmF0ZSBzdGF0aWMgQm9vbGVhbiBzRW5mb3JjZVRocmVhZENoZWNraW5nID0gZmFsc2U7CisgICAgcHJpdmF0ZSBzdGF0aWMgdm9sYXRpbGUgYm9vbGVhbiBzRW5mb3JjZVRocmVhZENoZWNraW5nID0gZmFsc2U7CiAKICAgICAvKioKICAgICAgKiAgVHJhbnNwb3J0YXRpb24gb2JqZWN0IGZvciByZXR1cm5pbmcgV2ViVmlldyBhY3Jvc3MgdGhyZWFkIGJvdW5kYXJpZXMuCkBAIC00NDksMTAgKzQ0OSwxMiBAQAogICAgICAqCiAgICAgICogQHBhcmFtIGNvbnRleHQgYSBDb250ZXh0IG9iamVjdCB1c2VkIHRvIGFjY2VzcyBhcHBsaWNhdGlvbiBhc3NldHMKICAgICAgKiBAcGFyYW0gYXR0cnMgYW4gQXR0cmlidXRlU2V0IHBhc3NlZCB0byBvdXIgcGFyZW50Ci0gICAgICogQHBhcmFtIGRlZlN0eWxlIHRoZSBkZWZhdWx0IHN0eWxlIHJlc291cmNlIElECisgICAgICogQHBhcmFtIGRlZlN0eWxlQXR0ciBhbiBhdHRyaWJ1dGUgaW4gdGhlIGN1cnJlbnQgdGhlbWUgdGhhdCBjb250YWlucyBhCisgICAgICogICAgICAgIHJlZmVyZW5jZSB0byBhIHN0eWxlIHJlc291cmNlIHRoYXQgc3VwcGxpZXMgZGVmYXVsdCB2YWx1ZXMgZm9yCisgICAgICogICAgICAgIHRoZSB2aWV3LiBDYW4gYmUgMCB0byBub3QgbG9vayBmb3IgZGVmYXVsdHMuCiAgICAgICovCi0gICAgcHVibGljIFdlYlZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSwgZmFsc2UpOworICAgIHB1YmxpYyBXZWJWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CiAgICAgfQogCiAgICAgLyoqCkBAIC00NjAsNyArNDYyLDI2IEBACiAgICAgICoKICAgICAgKiBAcGFyYW0gY29udGV4dCBhIENvbnRleHQgb2JqZWN0IHVzZWQgdG8gYWNjZXNzIGFwcGxpY2F0aW9uIGFzc2V0cwogICAgICAqIEBwYXJhbSBhdHRycyBhbiBBdHRyaWJ1dGVTZXQgcGFzc2VkIHRvIG91ciBwYXJlbnQKLSAgICAgKiBAcGFyYW0gZGVmU3R5bGUgdGhlIGRlZmF1bHQgc3R5bGUgcmVzb3VyY2UgSUQKKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVBdHRyIGFuIGF0dHJpYnV0ZSBpbiB0aGUgY3VycmVudCB0aGVtZSB0aGF0IGNvbnRhaW5zIGEKKyAgICAgKiAgICAgICAgcmVmZXJlbmNlIHRvIGEgc3R5bGUgcmVzb3VyY2UgdGhhdCBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IKKyAgICAgKiAgICAgICAgdGhlIHZpZXcuIENhbiBiZSAwIHRvIG5vdCBsb29rIGZvciBkZWZhdWx0cy4KKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVSZXMgYSByZXNvdXJjZSBpZGVudGlmaWVyIG9mIGEgc3R5bGUgcmVzb3VyY2UgdGhhdAorICAgICAqICAgICAgICBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIHZpZXcsIHVzZWQgb25seSBpZgorICAgICAqICAgICAgICBkZWZTdHlsZUF0dHIgaXMgMCBvciBjYW4gbm90IGJlIGZvdW5kIGluIHRoZSB0aGVtZS4gQ2FuIGJlIDAKKyAgICAgKiAgICAgICAgdG8gbm90IGxvb2sgZm9yIGRlZmF1bHRzLgorICAgICAqLworICAgIHB1YmxpYyBXZWJWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcywgbnVsbCwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgV2ViVmlldyB3aXRoIGxheW91dCBwYXJhbWV0ZXJzIGFuZCBhIGRlZmF1bHQgc3R5bGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29udGV4dCBhIENvbnRleHQgb2JqZWN0IHVzZWQgdG8gYWNjZXNzIGFwcGxpY2F0aW9uIGFzc2V0cworICAgICAqIEBwYXJhbSBhdHRycyBhbiBBdHRyaWJ1dGVTZXQgcGFzc2VkIHRvIG91ciBwYXJlbnQKKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVBdHRyIGFuIGF0dHJpYnV0ZSBpbiB0aGUgY3VycmVudCB0aGVtZSB0aGF0IGNvbnRhaW5zIGEKKyAgICAgKiAgICAgICAgcmVmZXJlbmNlIHRvIGEgc3R5bGUgcmVzb3VyY2UgdGhhdCBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IKKyAgICAgKiAgICAgICAgdGhlIHZpZXcuIENhbiBiZSAwIHRvIG5vdCBsb29rIGZvciBkZWZhdWx0cy4KICAgICAgKiBAcGFyYW0gcHJpdmF0ZUJyb3dzaW5nIHdoZXRoZXIgdGhpcyBXZWJWaWV3IHdpbGwgYmUgaW5pdGlhbGl6ZWQgaW4KICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgbW9kZQogICAgICAqCkBAIC00NzAsOSArNDkxLDkgQEAKICAgICAgKiBhbmQge0BsaW5rIFdlYlN0b3JhZ2V9IGZvciBmaW5lLWdyYWluZWQgY29udHJvbCBvZiBwcml2YWN5IGRhdGEuCiAgICAgICovCiAgICAgQERlcHJlY2F0ZWQKLSAgICBwdWJsaWMgV2ViVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlLAorICAgIHB1YmxpYyBXZWJWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLAogICAgICAgICAgICAgYm9vbGVhbiBwcml2YXRlQnJvd3NpbmcpIHsKLSAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGUsIG51bGwsIHByaXZhdGVCcm93c2luZyk7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCwgbnVsbCwgcHJpdmF0ZUJyb3dzaW5nKTsKICAgICB9CiAKICAgICAvKioKQEAgLTQ4Myw3ICs1MDQsOSBAQAogICAgICAqCiAgICAgICogQHBhcmFtIGNvbnRleHQgYSBDb250ZXh0IG9iamVjdCB1c2VkIHRvIGFjY2VzcyBhcHBsaWNhdGlvbiBhc3NldHMKICAgICAgKiBAcGFyYW0gYXR0cnMgYW4gQXR0cmlidXRlU2V0IHBhc3NlZCB0byBvdXIgcGFyZW50Ci0gICAgICogQHBhcmFtIGRlZlN0eWxlIHRoZSBkZWZhdWx0IHN0eWxlIHJlc291cmNlIElECisgICAgICogQHBhcmFtIGRlZlN0eWxlQXR0ciBhbiBhdHRyaWJ1dGUgaW4gdGhlIGN1cnJlbnQgdGhlbWUgdGhhdCBjb250YWlucyBhCisgICAgICogICAgICAgIHJlZmVyZW5jZSB0byBhIHN0eWxlIHJlc291cmNlIHRoYXQgc3VwcGxpZXMgZGVmYXVsdCB2YWx1ZXMgZm9yCisgICAgICogICAgICAgIHRoZSB2aWV3LiBDYW4gYmUgMCB0byBub3QgbG9vayBmb3IgZGVmYXVsdHMuCiAgICAgICogQHBhcmFtIGphdmFTY3JpcHRJbnRlcmZhY2VzIGEgTWFwIG9mIGludGVyZmFjZSBuYW1lcywgYXMga2V5cywgYW5kCiAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdCBpbXBsZW1lbnRpbmcgdGhvc2UgaW50ZXJmYWNlcywgYXMKICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzCkBAIC00OTIsMTAgKzUxNSwxOCBAQAogICAgICAqIEBoaWRlIFRoaXMgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IGR1bXByZW5kZXJ0cmVlLCBhcyBpdCByZXF1aXJlcyB0aGUgamF2YVNjcmlwdCBpbnRlcmZhY2VzIHRvCiAgICAgICogICAgICAgYmUgYWRkZWQgc3luY2hyb25vdXNseSwgYmVmb3JlIGEgc3Vic2VxdWVudCBsb2FkVXJsIGNhbGwgdGFrZXMgZWZmZWN0LgogICAgICAqLwotICAgIEBTdXBwcmVzc1dhcm5pbmdzKCJkZXByZWNhdGlvbiIpICAvLyBmb3Igc3VwZXIoKSBjYWxsIGludG8gZGVwcmVjYXRlZCBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yLgotICAgIHByb3RlY3RlZCBXZWJWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUsCisgICAgcHJvdGVjdGVkIFdlYlZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsCiAgICAgICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IGphdmFTY3JpcHRJbnRlcmZhY2VzLCBib29sZWFuIHByaXZhdGVCcm93c2luZykgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDAsIGphdmFTY3JpcHRJbnRlcmZhY2VzLCBwcml2YXRlQnJvd3NpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBoaWRlCisgICAgICovCisgICAgQFN1cHByZXNzV2FybmluZ3MoImRlcHJlY2F0aW9uIikgIC8vIGZvciBzdXBlcigpIGNhbGwgaW50byBkZXByZWNhdGVkIGJhc2UgY2xhc3MgY29uc3RydWN0b3IuCisgICAgcHJvdGVjdGVkIFdlYlZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcywKKyAgICAgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gamF2YVNjcmlwdEludGVyZmFjZXMsIGJvb2xlYW4gcHJpdmF0ZUJyb3dzaW5nKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgaWYgKGNvbnRleHQgPT0gbnVsbCkgewogICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb250ZXh0IGFyZ3VtZW50Iik7CiAgICAgICAgIH0KQEAgLTY4Niw2ICs3MTcsMTUgQEAKICAgICB9CiAKICAgICAvKioKKyAgICAgKiBVc2VkIG9ubHkgYnkgaW50ZXJuYWwgdGVzdHMgdG8gZnJlZSB1cCBtZW1vcnkuCisgICAgICoKKyAgICAgKiBAaGlkZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBmcmVlTWVtb3J5Rm9yVGVzdHMoKSB7CisgICAgICAgIGdldEZhY3RvcnkoKS5nZXRTdGF0aWNzKCkuZnJlZU1lbW9yeUZvclRlc3RzKCk7CisgICAgfQorCisgICAgLyoqCiAgICAgICogSW5mb3JtcyBXZWJWaWV3IG9mIHRoZSBuZXR3b3JrIHN0YXRlLiBUaGlzIGlzIHVzZWQgdG8gc2V0CiAgICAgICogdGhlIEphdmFTY3JpcHQgcHJvcGVydHkgd2luZG93Lm5hdmlnYXRvci5pc09ubGluZSBhbmQKICAgICAgKiBnZW5lcmF0ZXMgdGhlIG9ubGluZS9vZmZsaW5lIGV2ZW50IGFzIHNwZWNpZmllZCBpbiBIVE1MNSwgc2VjLiA1LjcuNwpAQCAtNzgxLDcgKzgyMSwxNSBAQAogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIGxvYWRVcmwoU3RyaW5nIHVybCwgTWFwPFN0cmluZywgU3RyaW5nPiBhZGRpdGlvbmFsSHR0cEhlYWRlcnMpIHsKICAgICAgICAgY2hlY2tUaHJlYWQoKTsKLSAgICAgICAgaWYgKERlYnVnRmxhZ3MuVFJBQ0VfQVBJKSBMb2cuZChMT0dUQUcsICJsb2FkVXJsKGV4dHJhIGhlYWRlcnMpPSIgKyB1cmwpOworICAgICAgICBpZiAoRGVidWdGbGFncy5UUkFDRV9BUEkpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgaGVhZGVycyA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CisgICAgICAgICAgICBpZiAoYWRkaXRpb25hbEh0dHBIZWFkZXJzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmb3IgKE1hcC5FbnRyeTxTdHJpbmcsIFN0cmluZz4gZW50cnkgOiBhZGRpdGlvbmFsSHR0cEhlYWRlcnMuZW50cnlTZXQoKSkgeworICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZChlbnRyeS5nZXRLZXkoKSArICI6IiArIGVudHJ5LmdldFZhbHVlKCkgKyAiXG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBMb2cuZChMT0dUQUcsICJsb2FkVXJsKGV4dHJhIGhlYWRlcnMpPSIgKyB1cmwgKyAiXG4iICsgaGVhZGVycyk7CisgICAgICAgIH0KICAgICAgICAgbVByb3ZpZGVyLmxvYWRVcmwodXJsLCBhZGRpdGlvbmFsSHR0cEhlYWRlcnMpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2Via2l0L1dlYlZpZXdGYWN0b3J5UHJvdmlkZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dlYmtpdC9XZWJWaWV3RmFjdG9yeVByb3ZpZGVyLmphdmEKaW5kZXggOWQ5ZDg4Mi4uZTM5MWFhZiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2Via2l0L1dlYlZpZXdGYWN0b3J5UHJvdmlkZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93ZWJraXQvV2ViVmlld0ZhY3RvcnlQcm92aWRlci5qYXZhCkBAIC01MCw2ICs1MCwxMSBAQAogICAgICAgICBTdHJpbmcgZ2V0RGVmYXVsdFVzZXJBZ2VudChDb250ZXh0IGNvbnRleHQpOwogCiAgICAgICAgIC8qKgorICAgICAgICAgKiBVc2VkIGZvciB0ZXN0cyBvbmx5LgorICAgICAgICAgKi8KKyAgICAgICAgIHZvaWQgZnJlZU1lbW9yeUZvclRlc3RzKCk7CisKKyAgICAgICAgLyoqCiAgICAgICAgICAqIEltcGxlbWVudHMgdGhlIEFQSSBtZXRob2Q6CiAgICAgICAgICAqIHtAbGluayBhbmRyb2lkLndlYmtpdC5XZWJWaWV3I3NldFdlYkNvbnRlbnRzRGVidWdnaW5nRW5hYmxlZChib29sZWFuKSB9CiAgICAgICAgICAqLwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2Via2l0L1dlYlZpZXdQcm92aWRlci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2Via2l0L1dlYlZpZXdQcm92aWRlci5qYXZhCmluZGV4IDY5NmFhZDQuLmI2OWIyNzEgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dlYmtpdC9XZWJWaWV3UHJvdmlkZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93ZWJraXQvV2ViVmlld1Byb3ZpZGVyLmphdmEKQEAgLTQxLDYgKzQxLDcgQEAKIAogaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRXcml0ZXI7CiBpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uT3V0cHV0U3RyZWFtOwogaW1wb3J0IGphdmEudXRpbC5NYXA7CiAKIC8qKgpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0Fic0xpc3RWaWV3LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQWJzTGlzdFZpZXcuamF2YQppbmRleCAwOTJmNDc0Li40MTNkNmNmYiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0Fic0xpc3RWaWV3LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0Fic0xpc3RWaWV3LmphdmEKQEAgLTU1LDYgKzU1LDcgQEAKIGltcG9ydCBhbmRyb2lkLnZpZXcuVmlld0RlYnVnOwogaW1wb3J0IGFuZHJvaWQudmlldy5WaWV3R3JvdXA7CiBpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdQYXJlbnQ7CitpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdSb290SW1wbDsKIGltcG9ydCBhbmRyb2lkLnZpZXcuVmlld1RyZWVPYnNlcnZlcjsKIGltcG9ydCBhbmRyb2lkLnZpZXcuYWNjZXNzaWJpbGl0eS5BY2Nlc3NpYmlsaXR5RXZlbnQ7CiBpbXBvcnQgYW5kcm9pZC52aWV3LmFjY2Vzc2liaWxpdHkuQWNjZXNzaWJpbGl0eU1hbmFnZXI7CkBAIC01ODEsNyArNTgyLDEzIEBACiAgICAgLyoqCiAgICAgICogSGVscGVyIG9iamVjdCB0aGF0IHJlbmRlcnMgYW5kIGNvbnRyb2xzIHRoZSBmYXN0IHNjcm9sbCB0aHVtYi4KICAgICAgKi8KLSAgICBwcml2YXRlIEZhc3RTY3JvbGxlciBtRmFzdFNjcm9sbGVyOworICAgIHByaXZhdGUgRmFzdFNjcm9sbGVyIG1GYXN0U2Nyb2xsOworCisgICAgLyoqCisgICAgICogVGVtcG9yYXJ5IGhvbGRlciBmb3IgZmFzdCBzY3JvbGxlciBzdHlsZSB1bnRpbCBhIEZhc3RTY3JvbGxlciBvYmplY3QKKyAgICAgKiBpcyBjcmVhdGVkLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1GYXN0U2Nyb2xsU3R5bGU7CiAKICAgICBwcml2YXRlIGJvb2xlYW4gbUdsb2JhbExheW91dExpc3RlbmVyQWRkZWRGaWx0ZXI7CiAKQEAgLTc3MywxNCArNzgwLDE4IEBACiAgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci5hYnNMaXN0Vmlld1N0eWxlKTsKICAgICB9CiAKLSAgICBwdWJsaWMgQWJzTGlzdFZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgIHB1YmxpYyBBYnNMaXN0VmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBBYnNMaXN0VmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgaW5pdEFic0xpc3RWaWV3KCk7CiAKICAgICAgICAgbU93bmVyVGhyZWFkID0gVGhyZWFkLmN1cnJlbnRUaHJlYWQoKTsKIAotICAgICAgICBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCi0gICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuQWJzTGlzdFZpZXcsIGRlZlN0eWxlLCAwKTsKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5BYnNMaXN0VmlldywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgRHJhd2FibGUgZCA9IGEuZ2V0RHJhd2FibGUoY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuQWJzTGlzdFZpZXdfbGlzdFNlbGVjdG9yKTsKICAgICAgICAgaWYgKGQgIT0gbnVsbCkgewpAQCAtODA5LDYgKzgyMCw5IEBACiAgICAgICAgIGJvb2xlYW4gZW5hYmxlRmFzdFNjcm9sbCA9IGEuZ2V0Qm9vbGVhbihSLnN0eWxlYWJsZS5BYnNMaXN0Vmlld19mYXN0U2Nyb2xsRW5hYmxlZCwgZmFsc2UpOwogICAgICAgICBzZXRGYXN0U2Nyb2xsRW5hYmxlZChlbmFibGVGYXN0U2Nyb2xsKTsKIAorICAgICAgICBpbnQgZmFzdFNjcm9sbFN0eWxlID0gYS5nZXRSZXNvdXJjZUlkKFIuc3R5bGVhYmxlLkFic0xpc3RWaWV3X2Zhc3RTY3JvbGxTdHlsZSwgMCk7CisgICAgICAgIHNldEZhc3RTY3JvbGxTdHlsZShmYXN0U2Nyb2xsU3R5bGUpOworCiAgICAgICAgIGJvb2xlYW4gc21vb3RoU2Nyb2xsYmFyID0gYS5nZXRCb29sZWFuKFIuc3R5bGVhYmxlLkFic0xpc3RWaWV3X3Ntb290aFNjcm9sbGJhciwgdHJ1ZSk7CiAgICAgICAgIHNldFNtb290aFNjcm9sbGJhckVuYWJsZWQoc21vb3RoU2Nyb2xsYmFyKTsKIApAQCAtMTIzOCwxNyArMTI1MiwzMSBAQAogICAgIH0KIAogICAgIHByaXZhdGUgdm9pZCBzZXRGYXN0U2Nyb2xsZXJFbmFibGVkVWlUaHJlYWQoYm9vbGVhbiBlbmFibGVkKSB7Ci0gICAgICAgIGlmIChtRmFzdFNjcm9sbGVyICE9IG51bGwpIHsKLSAgICAgICAgICAgIG1GYXN0U2Nyb2xsZXIuc2V0RW5hYmxlZChlbmFibGVkKTsKKyAgICAgICAgaWYgKG1GYXN0U2Nyb2xsICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1GYXN0U2Nyb2xsLnNldEVuYWJsZWQoZW5hYmxlZCk7CiAgICAgICAgIH0gZWxzZSBpZiAoZW5hYmxlZCkgewotICAgICAgICAgICAgbUZhc3RTY3JvbGxlciA9IG5ldyBGYXN0U2Nyb2xsZXIodGhpcyk7Ci0gICAgICAgICAgICBtRmFzdFNjcm9sbGVyLnNldEVuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICBtRmFzdFNjcm9sbCA9IG5ldyBGYXN0U2Nyb2xsZXIodGhpcywgbUZhc3RTY3JvbGxTdHlsZSk7CisgICAgICAgICAgICBtRmFzdFNjcm9sbC5zZXRFbmFibGVkKHRydWUpOwogICAgICAgICB9CiAKICAgICAgICAgcmVzb2x2ZVBhZGRpbmcoKTsKIAotICAgICAgICBpZiAobUZhc3RTY3JvbGxlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBtRmFzdFNjcm9sbGVyLnVwZGF0ZUxheW91dCgpOworICAgICAgICBpZiAobUZhc3RTY3JvbGwgIT0gbnVsbCkgeworICAgICAgICAgICAgbUZhc3RTY3JvbGwudXBkYXRlTGF5b3V0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZpZXMgdGhlIHN0eWxlIG9mIHRoZSBmYXN0IHNjcm9sbGVyIGRlY29yYXRpb25zLgorICAgICAqCisgICAgICogQHBhcmFtIHN0eWxlUmVzSWQgc3R5bGUgcmVzb3VyY2UgY29udGFpbmluZyBmYXN0IHNjcm9sbGVyIHByb3BlcnRpZXMKKyAgICAgKiBAc2VlIGFuZHJvaWQuUi5zdHlsZWFibGUjRmFzdFNjcm9sbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZhc3RTY3JvbGxTdHlsZShpbnQgc3R5bGVSZXNJZCkgeworICAgICAgICBpZiAobUZhc3RTY3JvbGwgPT0gbnVsbCkgeworICAgICAgICAgICAgbUZhc3RTY3JvbGxTdHlsZSA9IHN0eWxlUmVzSWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtRmFzdFNjcm9sbC5zZXRTdHlsZShzdHlsZVJlc0lkKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTI4OCw4ICsxMzE2LDggQEAKICAgICB9CiAKICAgICBwcml2YXRlIHZvaWQgc2V0RmFzdFNjcm9sbGVyQWx3YXlzVmlzaWJsZVVpVGhyZWFkKGJvb2xlYW4gYWx3YXlzU2hvdykgewotICAgICAgICBpZiAobUZhc3RTY3JvbGxlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBtRmFzdFNjcm9sbGVyLnNldEFsd2F5c1Nob3coYWx3YXlzU2hvdyk7CisgICAgICAgIGlmIChtRmFzdFNjcm9sbCAhPSBudWxsKSB7CisgICAgICAgICAgICBtRmFzdFNjcm9sbC5zZXRBbHdheXNTaG93KGFsd2F5c1Nob3cpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMzA3LDE3ICsxMzM1LDE3IEBACiAgICAgICogQHNlZSAjc2V0RmFzdFNjcm9sbEFsd2F5c1Zpc2libGUoYm9vbGVhbikKICAgICAgKi8KICAgICBwdWJsaWMgYm9vbGVhbiBpc0Zhc3RTY3JvbGxBbHdheXNWaXNpYmxlKCkgewotICAgICAgICBpZiAobUZhc3RTY3JvbGxlciA9PSBudWxsKSB7CisgICAgICAgIGlmIChtRmFzdFNjcm9sbCA9PSBudWxsKSB7CiAgICAgICAgICAgICByZXR1cm4gbUZhc3RTY3JvbGxFbmFibGVkICYmIG1GYXN0U2Nyb2xsQWx3YXlzVmlzaWJsZTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiBtRmFzdFNjcm9sbGVyLmlzRW5hYmxlZCgpICYmIG1GYXN0U2Nyb2xsZXIuaXNBbHdheXNTaG93RW5hYmxlZCgpOworICAgICAgICAgICAgcmV0dXJuIG1GYXN0U2Nyb2xsLmlzRW5hYmxlZCgpICYmIG1GYXN0U2Nyb2xsLmlzQWx3YXlzU2hvd0VuYWJsZWQoKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyBpbnQgZ2V0VmVydGljYWxTY3JvbGxiYXJXaWR0aCgpIHsKLSAgICAgICAgaWYgKG1GYXN0U2Nyb2xsZXIgIT0gbnVsbCAmJiBtRmFzdFNjcm9sbGVyLmlzRW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoc3VwZXIuZ2V0VmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCBtRmFzdFNjcm9sbGVyLmdldFdpZHRoKCkpOworICAgICAgICBpZiAobUZhc3RTY3JvbGwgIT0gbnVsbCAmJiBtRmFzdFNjcm9sbC5pc0VuYWJsZWQoKSkgeworICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KHN1cGVyLmdldFZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSwgbUZhc3RTY3JvbGwuZ2V0V2lkdGgoKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHN1cGVyLmdldFZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKICAgICB9CkBAIC0xMzMwLDI2ICsxMzU4LDI2IEBACiAgICAgICovCiAgICAgQFZpZXdEZWJ1Zy5FeHBvcnRlZFByb3BlcnR5CiAgICAgcHVibGljIGJvb2xlYW4gaXNGYXN0U2Nyb2xsRW5hYmxlZCgpIHsKLSAgICAgICAgaWYgKG1GYXN0U2Nyb2xsZXIgPT0gbnVsbCkgeworICAgICAgICBpZiAobUZhc3RTY3JvbGwgPT0gbnVsbCkgewogICAgICAgICAgICAgcmV0dXJuIG1GYXN0U2Nyb2xsRW5hYmxlZDsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiBtRmFzdFNjcm9sbGVyLmlzRW5hYmxlZCgpOworICAgICAgICAgICAgcmV0dXJuIG1GYXN0U2Nyb2xsLmlzRW5hYmxlZCgpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIHZvaWQgc2V0VmVydGljYWxTY3JvbGxiYXJQb3NpdGlvbihpbnQgcG9zaXRpb24pIHsKICAgICAgICAgc3VwZXIuc2V0VmVydGljYWxTY3JvbGxiYXJQb3NpdGlvbihwb3NpdGlvbik7Ci0gICAgICAgIGlmIChtRmFzdFNjcm9sbGVyICE9IG51bGwpIHsKLSAgICAgICAgICAgIG1GYXN0U2Nyb2xsZXIuc2V0U2Nyb2xsYmFyUG9zaXRpb24ocG9zaXRpb24pOworICAgICAgICBpZiAobUZhc3RTY3JvbGwgIT0gbnVsbCkgeworICAgICAgICAgICAgbUZhc3RTY3JvbGwuc2V0U2Nyb2xsYmFyUG9zaXRpb24ocG9zaXRpb24pOwogICAgICAgICB9CiAgICAgfQogCiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIHZvaWQgc2V0U2Nyb2xsQmFyU3R5bGUoaW50IHN0eWxlKSB7CiAgICAgICAgIHN1cGVyLnNldFNjcm9sbEJhclN0eWxlKHN0eWxlKTsKLSAgICAgICAgaWYgKG1GYXN0U2Nyb2xsZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbUZhc3RTY3JvbGxlci5zZXRTY3JvbGxCYXJTdHlsZShzdHlsZSk7CisgICAgICAgIGlmIChtRmFzdFNjcm9sbCAhPSBudWxsKSB7CisgICAgICAgICAgICBtRmFzdFNjcm9sbC5zZXRTY3JvbGxCYXJTdHlsZShzdHlsZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE0MTAsOCArMTQzOCw4IEBACiAgICAgICogTm90aWZ5IG91ciBzY3JvbGwgbGlzdGVuZXIgKGlmIHRoZXJlIGlzIG9uZSkgb2YgYSBjaGFuZ2UgaW4gc2Nyb2xsIHN0YXRlCiAgICAgICovCiAgICAgdm9pZCBpbnZva2VPbkl0ZW1TY3JvbGxMaXN0ZW5lcigpIHsKLSAgICAgICAgaWYgKG1GYXN0U2Nyb2xsZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbUZhc3RTY3JvbGxlci5vblNjcm9sbChtRmlyc3RQb3NpdGlvbiwgZ2V0Q2hpbGRDb3VudCgpLCBtSXRlbUNvdW50KTsKKyAgICAgICAgaWYgKG1GYXN0U2Nyb2xsICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1GYXN0U2Nyb2xsLm9uU2Nyb2xsKG1GaXJzdFBvc2l0aW9uLCBnZXRDaGlsZENvdW50KCksIG1JdGVtQ291bnQpOwogICAgICAgICB9CiAgICAgICAgIGlmIChtT25TY3JvbGxMaXN0ZW5lciAhPSBudWxsKSB7CiAgICAgICAgICAgICBtT25TY3JvbGxMaXN0ZW5lci5vblNjcm9sbCh0aGlzLCBtRmlyc3RQb3NpdGlvbiwgZ2V0Q2hpbGRDb3VudCgpLCBtSXRlbUNvdW50KTsKQEAgLTIwODQsOCArMjExMiw4IEBACiAgICAgICAgICAgICBtUmVjeWNsZXIubWFya0NoaWxkcmVuRGlydHkoKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtRmFzdFNjcm9sbGVyICE9IG51bGwgJiYgKG1JdGVtQ291bnQgIT0gbU9sZEl0ZW1Db3VudCB8fCBtRGF0YUNoYW5nZWQpKSB7Ci0gICAgICAgICAgICBtRmFzdFNjcm9sbGVyLm9uSXRlbUNvdW50Q2hhbmdlZChtSXRlbUNvdW50KTsKKyAgICAgICAgaWYgKG1GYXN0U2Nyb2xsICE9IG51bGwgJiYgKG1JdGVtQ291bnQgIT0gbU9sZEl0ZW1Db3VudCB8fCBtRGF0YUNoYW5nZWQpKSB7CisgICAgICAgICAgICBtRmFzdFNjcm9sbC5vbkl0ZW1Db3VudENoYW5nZWQobUl0ZW1Db3VudCk7CiAgICAgICAgIH0KIAogICAgICAgICBsYXlvdXRDaGlsZHJlbigpOwpAQCAtMjEyMCw2ICsyMTQ4LDM0IEBACiAgICAgcHJvdGVjdGVkIHZvaWQgbGF5b3V0Q2hpbGRyZW4oKSB7CiAgICAgfQogCisgICAgLyoqCisgICAgICogQHJldHVybiB0aGUgZGlyZWN0IGNoaWxkIHRoYXQgY29udGFpbnMgYWNjZXNzaWJpbGl0eSBmb2N1cywgb3IgbnVsbCBpZiBubworICAgICAqICAgICAgICAgY2hpbGQgY29udGFpbnMgYWNjZXNzaWJpbGl0eSBmb2N1cworICAgICAqLworICAgIFZpZXcgZ2V0QWNjZXNzaWJpbGl0eUZvY3VzZWRDaGlsZCgpIHsKKyAgICAgICAgZmluYWwgVmlld1Jvb3RJbXBsIHZpZXdSb290SW1wbCA9IGdldFZpZXdSb290SW1wbCgpOworICAgICAgICBpZiAodmlld1Jvb3RJbXBsID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgVmlldyBmb2N1c2VkVmlldyA9IHZpZXdSb290SW1wbC5nZXRBY2Nlc3NpYmlsaXR5Rm9jdXNlZEhvc3QoKTsKKyAgICAgICAgaWYgKGZvY3VzZWRWaWV3ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgVmlld1BhcmVudCB2aWV3UGFyZW50ID0gZm9jdXNlZFZpZXcuZ2V0UGFyZW50KCk7CisgICAgICAgIHdoaWxlICgodmlld1BhcmVudCBpbnN0YW5jZW9mIFZpZXcpICYmICh2aWV3UGFyZW50ICE9IHRoaXMpKSB7CisgICAgICAgICAgICBmb2N1c2VkVmlldyA9IChWaWV3KSB2aWV3UGFyZW50OworICAgICAgICAgICAgdmlld1BhcmVudCA9IHZpZXdQYXJlbnQuZ2V0UGFyZW50KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISh2aWV3UGFyZW50IGluc3RhbmNlb2YgVmlldykpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZvY3VzZWRWaWV3OworICAgIH0KKwogICAgIHZvaWQgdXBkYXRlU2Nyb2xsSW5kaWNhdG9ycygpIHsKICAgICAgICAgaWYgKG1TY3JvbGxVcCAhPSBudWxsKSB7CiAgICAgICAgICAgICBib29sZWFuIGNhblNjcm9sbFVwOwpAQCAtMjQ5OSw4ICsyNTU1LDggQEAKICAgICAgICAgICAgIHJlbWVtYmVyU3luY1N0YXRlKCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobUZhc3RTY3JvbGxlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBtRmFzdFNjcm9sbGVyLm9uU2l6ZUNoYW5nZWQodywgaCwgb2xkdywgb2xkaCk7CisgICAgICAgIGlmIChtRmFzdFNjcm9sbCAhPSBudWxsKSB7CisgICAgICAgICAgICBtRmFzdFNjcm9sbC5vblNpemVDaGFuZ2VkKHcsIGgsIG9sZHcsIG9sZGgpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yODI5LDggKzI4ODUsOCBAQAogICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyB2b2lkIG9uUnRsUHJvcGVydGllc0NoYW5nZWQoaW50IGxheW91dERpcmVjdGlvbikgewogICAgICAgICBzdXBlci5vblJ0bFByb3BlcnRpZXNDaGFuZ2VkKGxheW91dERpcmVjdGlvbik7Ci0gICAgICAgIGlmIChtRmFzdFNjcm9sbGVyICE9IG51bGwpIHsKLSAgICAgICAgICAgbUZhc3RTY3JvbGxlci5zZXRTY3JvbGxiYXJQb3NpdGlvbihnZXRWZXJ0aWNhbFNjcm9sbGJhclBvc2l0aW9uKCkpOworICAgICAgICBpZiAobUZhc3RTY3JvbGwgIT0gbnVsbCkgeworICAgICAgICAgICBtRmFzdFNjcm9sbC5zZXRTY3JvbGxiYXJQb3NpdGlvbihnZXRWZXJ0aWNhbFNjcm9sbGJhclBvc2l0aW9uKCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0zNDAzLDggKzM0NTksOCBAQAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1GYXN0U2Nyb2xsZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgYm9vbGVhbiBpbnRlcmNlcHRlZCA9IG1GYXN0U2Nyb2xsZXIub25Ub3VjaEV2ZW50KGV2KTsKKyAgICAgICAgaWYgKG1GYXN0U2Nyb2xsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gaW50ZXJjZXB0ZWQgPSBtRmFzdFNjcm9sbC5vblRvdWNoRXZlbnQoZXYpOwogICAgICAgICAgICAgaWYgKGludGVyY2VwdGVkKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CkBAIC0zODkzLDcgKzM5NDksNyBAQAogCiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIGJvb2xlYW4gb25JbnRlcmNlcHRIb3ZlckV2ZW50KE1vdGlvbkV2ZW50IGV2ZW50KSB7Ci0gICAgICAgIGlmIChtRmFzdFNjcm9sbGVyICE9IG51bGwgJiYgbUZhc3RTY3JvbGxlci5vbkludGVyY2VwdEhvdmVyRXZlbnQoZXZlbnQpKSB7CisgICAgICAgIGlmIChtRmFzdFNjcm9sbCAhPSBudWxsICYmIG1GYXN0U2Nyb2xsLm9uSW50ZXJjZXB0SG92ZXJFdmVudChldmVudCkpIHsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKQEAgLTM5MTcsNyArMzk3Myw3IEBACiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobUZhc3RTY3JvbGxlciAhPSBudWxsICYmIG1GYXN0U2Nyb2xsZXIub25JbnRlcmNlcHRUb3VjaEV2ZW50KGV2KSkgeworICAgICAgICBpZiAobUZhc3RTY3JvbGwgIT0gbnVsbCAmJiBtRmFzdFNjcm9sbC5vbkludGVyY2VwdFRvdWNoRXZlbnQoZXYpKSB7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCkBAIC02Mjc4LDE2ICs2MzM0LDE2IEBACiAgICAgICAgIEBPdmVycmlkZQogICAgICAgICBwdWJsaWMgdm9pZCBvbkNoYW5nZWQoKSB7CiAgICAgICAgICAgICBzdXBlci5vbkNoYW5nZWQoKTsKLSAgICAgICAgICAgIGlmIChtRmFzdFNjcm9sbGVyICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBtRmFzdFNjcm9sbGVyLm9uU2VjdGlvbnNDaGFuZ2VkKCk7CisgICAgICAgICAgICBpZiAobUZhc3RTY3JvbGwgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1GYXN0U2Nyb2xsLm9uU2VjdGlvbnNDaGFuZ2VkKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgcHVibGljIHZvaWQgb25JbnZhbGlkYXRlZCgpIHsKICAgICAgICAgICAgIHN1cGVyLm9uSW52YWxpZGF0ZWQoKTsKLSAgICAgICAgICAgIGlmIChtRmFzdFNjcm9sbGVyICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBtRmFzdFNjcm9sbGVyLm9uU2VjdGlvbnNDaGFuZ2VkKCk7CisgICAgICAgICAgICBpZiAobUZhc3RTY3JvbGwgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1GYXN0U2Nyb2xsLm9uU2VjdGlvbnNDaGFuZ2VkKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQWJzU2Vla0Jhci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0Fic1NlZWtCYXIuamF2YQppbmRleCA3Njc0ODM3Li45NDFjZGQwIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQWJzU2Vla0Jhci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9BYnNTZWVrQmFyLmphdmEKQEAgLTY1LDExICs2NSwxNSBAQAogICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycyk7CiAgICAgfQogCi0gICAgcHVibGljIEFic1NlZWtCYXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgIHB1YmxpYyBBYnNTZWVrQmFyKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQogCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5TZWVrQmFyLCBkZWZTdHlsZSwgMCk7CisgICAgcHVibGljIEFic1NlZWtCYXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5TZWVrQmFyLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgRHJhd2FibGUgdGh1bWIgPSBhLmdldERyYXdhYmxlKGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlNlZWtCYXJfdGh1bWIpOwogICAgICAgICBzZXRUaHVtYih0aHVtYik7IC8vIHdpbGwgZ3Vlc3MgbVRodW1iT2Zmc2V0IGlmIHRodW1iICE9IG51bGwuLi4KICAgICAgICAgLy8gLi4uYnV0IGFsbG93IGxheW91dCB0byBvdmVycmlkZSB0aGlzCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQWJzU3Bpbm5lci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0Fic1NwaW5uZXIuamF2YQppbmRleCBmMjY1MjdmLi42YTRhZDc1IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQWJzU3Bpbm5lci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9BYnNTcGlubmVyLmphdmEKQEAgLTY0LDEyICs2NCwxNiBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCAwKTsKICAgICB9CiAKLSAgICBwdWJsaWMgQWJzU3Bpbm5lcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIEFic1NwaW5uZXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQWJzU3Bpbm5lcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgaW5pdEFic1NwaW5uZXIoKTsKIAotICAgICAgICBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCi0gICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuQWJzU3Bpbm5lciwgZGVmU3R5bGUsIDApOworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkFic1NwaW5uZXIsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIENoYXJTZXF1ZW5jZVtdIGVudHJpZXMgPSBhLmdldFRleHRBcnJheShSLnN0eWxlYWJsZS5BYnNTcGlubmVyX2VudHJpZXMpOwogICAgICAgICBpZiAoZW50cmllcyAhPSBudWxsKSB7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQWJzb2x1dGVMYXlvdXQuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9BYnNvbHV0ZUxheW91dC5qYXZhCmluZGV4IDdkZjZhYWIuLjRjZTBkNWQgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9BYnNvbHV0ZUxheW91dC5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9BYnNvbHV0ZUxheW91dC5qYXZhCkBAIC00MCwxNiArNDAsMTkgQEAKIEBSZW1vdGVWaWV3CiBwdWJsaWMgY2xhc3MgQWJzb2x1dGVMYXlvdXQgZXh0ZW5kcyBWaWV3R3JvdXAgewogICAgIHB1YmxpYyBBYnNvbHV0ZUxheW91dChDb250ZXh0IGNvbnRleHQpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCk7CisgICAgICAgIHRoaXMoY29udGV4dCwgbnVsbCk7CiAgICAgfQogCiAgICAgcHVibGljIEFic29sdXRlTGF5b3V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzKTsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgMCk7CiAgICAgfQogCi0gICAgcHVibGljIEFic29sdXRlTGF5b3V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLAotICAgICAgICAgICAgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIEFic29sdXRlTGF5b3V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIEFic29sdXRlTGF5b3V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgIH0KIAogICAgIEBPdmVycmlkZQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0FjdGl2aXR5Q2hvb3NlclZpZXcuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9BY3Rpdml0eUNob29zZXJWaWV3LmphdmEKaW5kZXggODYxMjk2NC4uZjlhYmVjNSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0FjdGl2aXR5Q2hvb3NlclZpZXcuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQWN0aXZpdHlDaG9vc2VyVmlldy5qYXZhCkBAIC0yMDQsMTMgKzIwNCwzMiBAQAogICAgICAqCiAgICAgICogQHBhcmFtIGNvbnRleHQgVGhlIGFwcGxpY2F0aW9uIGVudmlyb25tZW50LgogICAgICAqIEBwYXJhbSBhdHRycyBBIGNvbGxlY3Rpb24gb2YgYXR0cmlidXRlcy4KLSAgICAgKiBAcGFyYW0gZGVmU3R5bGUgVGhlIGRlZmF1bHQgc3R5bGUgdG8gYXBwbHkgdG8gdGhpcyB2aWV3LgorICAgICAqIEBwYXJhbSBkZWZTdHlsZUF0dHIgQW4gYXR0cmlidXRlIGluIHRoZSBjdXJyZW50IHRoZW1lIHRoYXQgY29udGFpbnMgYQorICAgICAqICAgICAgICByZWZlcmVuY2UgdG8gYSBzdHlsZSByZXNvdXJjZSB0aGF0IHN1cHBsaWVzIGRlZmF1bHQgdmFsdWVzIGZvcgorICAgICAqICAgICAgICB0aGUgdmlldy4gQ2FuIGJlIDAgdG8gbm90IGxvb2sgZm9yIGRlZmF1bHRzLgogICAgICAqLwotICAgIHB1YmxpYyBBY3Rpdml0eUNob29zZXJWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgQWN0aXZpdHlDaG9vc2VyVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBpbnN0YW5jZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBhcHBsaWNhdGlvbiBlbnZpcm9ubWVudC4KKyAgICAgKiBAcGFyYW0gYXR0cnMgQSBjb2xsZWN0aW9uIG9mIGF0dHJpYnV0ZXMuCisgICAgICogQHBhcmFtIGRlZlN0eWxlQXR0ciBBbiBhdHRyaWJ1dGUgaW4gdGhlIGN1cnJlbnQgdGhlbWUgdGhhdCBjb250YWlucyBhCisgICAgICogICAgICAgIHJlZmVyZW5jZSB0byBhIHN0eWxlIHJlc291cmNlIHRoYXQgc3VwcGxpZXMgZGVmYXVsdCB2YWx1ZXMgZm9yCisgICAgICogICAgICAgIHRoZSB2aWV3LiBDYW4gYmUgMCB0byBub3QgbG9vayBmb3IgZGVmYXVsdHMuCisgICAgICogQHBhcmFtIGRlZlN0eWxlUmVzIEEgcmVzb3VyY2UgaWRlbnRpZmllciBvZiBhIHN0eWxlIHJlc291cmNlIHRoYXQKKyAgICAgKiAgICAgICAgc3VwcGxpZXMgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSB2aWV3LCB1c2VkIG9ubHkgaWYKKyAgICAgKiAgICAgICAgZGVmU3R5bGVBdHRyIGlzIDAgb3IgY2FuIG5vdCBiZSBmb3VuZCBpbiB0aGUgdGhlbWUuIENhbiBiZSAwCisgICAgICogICAgICAgIHRvIG5vdCBsb29rIGZvciBkZWZhdWx0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgQWN0aXZpdHlDaG9vc2VyVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICBUeXBlZEFycmF5IGF0dHJpYnV0ZXNBcnJheSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBSLnN0eWxlYWJsZS5BY3Rpdml0eUNob29zZXJWaWV3LCBkZWZTdHlsZSwgMCk7CisgICAgICAgICAgICAgICAgUi5zdHlsZWFibGUuQWN0aXZpdHlDaG9vc2VyVmlldywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgbUluaXRpYWxBY3Rpdml0eUNvdW50ID0gYXR0cmlidXRlc0FycmF5LmdldEludCgKICAgICAgICAgICAgICAgICBSLnN0eWxlYWJsZS5BY3Rpdml0eUNob29zZXJWaWV3X2luaXRpYWxBY3Rpdml0eUNvdW50LApkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0FkYXB0ZXJWaWV3LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQWRhcHRlclZpZXcuamF2YQppbmRleCBhNWZhZDYwLi45NjJmZmJhIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQWRhcHRlclZpZXcuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQWRhcHRlclZpZXcuamF2YQpAQCAtMjIzLDE1ICsyMjMsMTkgQEAKICAgICBib29sZWFuIG1CbG9ja0xheW91dFJlcXVlc3RzID0gZmFsc2U7CiAKICAgICBwdWJsaWMgQWRhcHRlclZpZXcoQ29udGV4dCBjb250ZXh0KSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQpOworICAgICAgICB0aGlzKGNvbnRleHQsIG51bGwpOwogICAgIH0KIAogICAgIHB1YmxpYyBBZGFwdGVyVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycyk7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIDApOwogICAgIH0KIAotICAgIHB1YmxpYyBBZGFwdGVyVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIEFkYXB0ZXJWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIEFkYXB0ZXJWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIC8vIElmIG5vdCBleHBsaWNpdGx5IHNwZWNpZmllZCB0aGlzIHZpZXcgaXMgaW1wb3J0YW50IGZvciBhY2Nlc3NpYmlsaXR5LgogICAgICAgICBpZiAoZ2V0SW1wb3J0YW50Rm9yQWNjZXNzaWJpbGl0eSgpID09IElNUE9SVEFOVF9GT1JfQUNDRVNTSUJJTElUWV9BVVRPKSB7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQWRhcHRlclZpZXdBbmltYXRvci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0FkYXB0ZXJWaWV3QW5pbWF0b3IuamF2YQppbmRleCA5MGU5NDlhLi4xYmMyZjRiIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQWRhcHRlclZpZXdBbmltYXRvci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9BZGFwdGVyVmlld0FuaW1hdG9yLmphdmEKQEAgLTE3MywxMCArMTczLDE1IEBACiAgICAgfQogCiAgICAgcHVibGljIEFkYXB0ZXJWaWV3QW5pbWF0b3IoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0cik7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQogCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5BZGFwdGVyVmlld0FuaW1hdG9yLCBkZWZTdHlsZUF0dHIsIDApOworICAgIHB1YmxpYyBBZGFwdGVyVmlld0FuaW1hdG9yKAorICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAorICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkFkYXB0ZXJWaWV3QW5pbWF0b3IsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgICAgICBpbnQgcmVzb3VyY2UgPSBhLmdldFJlc291cmNlSWQoCiAgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuQWRhcHRlclZpZXdBbmltYXRvcl9pbkFuaW1hdGlvbiwgMCk7CiAgICAgICAgIGlmIChyZXNvdXJjZSA+IDApIHsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9BZGFwdGVyVmlld0ZsaXBwZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9BZGFwdGVyVmlld0ZsaXBwZXIuamF2YQppbmRleCBhZWEwMjliLi4zYjAyNmJkIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQWRhcHRlclZpZXdGbGlwcGVyLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0FkYXB0ZXJWaWV3RmxpcHBlci5qYXZhCkBAIC01OSwxMCArNTksMTkgQEAKICAgICB9CiAKICAgICBwdWJsaWMgQWRhcHRlclZpZXdGbGlwcGVyKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzKTsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgMCk7CisgICAgfQogCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5BZGFwdGVyVmlld0ZsaXBwZXIpOworICAgIHB1YmxpYyBBZGFwdGVyVmlld0ZsaXBwZXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQWRhcHRlclZpZXdGbGlwcGVyKAorICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAorICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkFkYXB0ZXJWaWV3RmxpcHBlciwgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIG1GbGlwSW50ZXJ2YWwgPSBhLmdldEludCgKICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5BZGFwdGVyVmlld0ZsaXBwZXJfZmxpcEludGVydmFsLCBERUZBVUxUX0lOVEVSVkFMKTsKICAgICAgICAgbUF1dG9TdGFydCA9IGEuZ2V0Qm9vbGVhbigKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9BbmFsb2dDbG9jay5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0FuYWxvZ0Nsb2NrLmphdmEKaW5kZXggYzdkYTgxOC4uM2M4OGU5NCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0FuYWxvZ0Nsb2NrLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0FuYWxvZ0Nsb2NrLmphdmEKQEAgLTY3LDEzICs2NywxNiBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCAwKTsKICAgICB9CiAKLSAgICBwdWJsaWMgQW5hbG9nQ2xvY2soQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsCi0gICAgICAgICAgICAgICAgICAgICAgIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOwotICAgICAgICBSZXNvdXJjZXMgciA9IG1Db250ZXh0LmdldFJlc291cmNlcygpOwotICAgICAgICBUeXBlZEFycmF5IGEgPQotICAgICAgICAgICAgICAgIGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKLSAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5BbmFsb2dDbG9jaywgZGVmU3R5bGUsIDApOworICAgIHB1YmxpYyBBbmFsb2dDbG9jayhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBBbmFsb2dDbG9jayhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKworICAgICAgICBmaW5hbCBSZXNvdXJjZXMgciA9IGNvbnRleHQuZ2V0UmVzb3VyY2VzKCk7CisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuQW5hbG9nQ2xvY2ssIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIG1EaWFsID0gYS5nZXREcmF3YWJsZShjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5BbmFsb2dDbG9ja19kaWFsKTsKICAgICAgICAgaWYgKG1EaWFsID09IG51bGwpIHsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9BdXRvQ29tcGxldGVUZXh0Vmlldy5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0F1dG9Db21wbGV0ZVRleHRWaWV3LmphdmEKaW5kZXggZjBlYjk0Zi4uMjU5YzY2YjkgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9BdXRvQ29tcGxldGVUZXh0Vmlldy5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9BdXRvQ29tcGxldGVUZXh0Vmlldy5qYXZhCkBAIC0xMzMsMTcgKzEzMywyMSBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIuYXV0b0NvbXBsZXRlVGV4dFZpZXdTdHlsZSk7CiAgICAgfQogCi0gICAgcHVibGljIEF1dG9Db21wbGV0ZVRleHRWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgQXV0b0NvbXBsZXRlVGV4dFZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQXV0b0NvbXBsZXRlVGV4dFZpZXcoCisgICAgICAgICAgICBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICBtUG9wdXAgPSBuZXcgTGlzdFBvcHVwV2luZG93KGNvbnRleHQsIGF0dHJzLAogICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci5hdXRvQ29tcGxldGVUZXh0Vmlld1N0eWxlKTsKICAgICAgICAgbVBvcHVwLnNldFNvZnRJbnB1dE1vZGUoV2luZG93TWFuYWdlci5MYXlvdXRQYXJhbXMuU09GVF9JTlBVVF9BREpVU1RfUkVTSVpFKTsKICAgICAgICAgbVBvcHVwLnNldFByb21wdFBvc2l0aW9uKExpc3RQb3B1cFdpbmRvdy5QT1NJVElPTl9QUk9NUFRfQkVMT1cpOwogCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9Ci0gICAgICAgICAgICBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCi0gICAgICAgICAgICAgICAgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkF1dG9Db21wbGV0ZVRleHRWaWV3LCBkZWZTdHlsZSwgMCk7CisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKKyAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5BdXRvQ29tcGxldGVUZXh0VmlldywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgbVRocmVzaG9sZCA9IGEuZ2V0SW50KAogICAgICAgICAgICAgICAgIFIuc3R5bGVhYmxlLkF1dG9Db21wbGV0ZVRleHRWaWV3X2NvbXBsZXRpb25UaHJlc2hvbGQsIDIpOwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0J1dHRvbi5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0J1dHRvbi5qYXZhCmluZGV4IDJhYzU2YWMuLjE2NjM2MjAgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9CdXR0b24uamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQnV0dG9uLmphdmEKQEAgLTEwMyw4ICsxMDMsMTIgQEAKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5hdHRyLmJ1dHRvblN0eWxlKTsKICAgICB9CiAKLSAgICBwdWJsaWMgQnV0dG9uKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgQnV0dG9uKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIEJ1dHRvbihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICB9CiAKICAgICBAT3ZlcnJpZGUKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9DYWxlbmRhclZpZXcuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9DYWxlbmRhclZpZXcuamF2YQppbmRleCAwOTU3YWI0Li5hODdjN2QyIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQ2FsZW5kYXJWaWV3LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0NhbGVuZGFyVmlldy5qYXZhCkBAIC04MCwyMzQgKzgwLDcgQEAKICAgICAgKi8KICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9HX1RBRyA9IENhbGVuZGFyVmlldy5jbGFzcy5nZXRTaW1wbGVOYW1lKCk7CiAKLSAgICAvKioKLSAgICAgKiBEZWZhdWx0IHZhbHVlIHdoZXRoZXIgdG8gc2hvdyB3ZWVrIG51bWJlci4KLSAgICAgKi8KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFRkFVTFRfU0hPV19XRUVLX05VTUJFUiA9IHRydWU7Ci0KLSAgICAvKioKLSAgICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBhIGRheS5lCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBNSUxMSVNfSU5fREFZID0gODY0MDAwMDBMOwotCi0gICAgLyoqCi0gICAgICogVGhlIG51bWJlciBvZiBkYXkgaW4gYSB3ZWVrLgotICAgICAqLwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVlTX1BFUl9XRUVLID0gNzsKLQotICAgIC8qKgotICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIGEgd2Vlay4KLSAgICAgKi8KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIE1JTExJU19JTl9XRUVLID0gREFZU19QRVJfV0VFSyAqIE1JTExJU19JTl9EQVk7Ci0KLSAgICAvKioKLSAgICAgKiBBZmZlY3RzIHdoZW4gdGhlIG1vbnRoIHNlbGVjdGlvbiB3aWxsIGNoYW5nZSB3aGlsZSBzY3JvbGxpbmcgdXBlCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNDUk9MTF9IWVNUX1dFRUtTID0gMjsKLQotICAgIC8qKgotICAgICAqIEhvdyBsb25nIHRoZSBHb1RvIGZsaW5nIGFuaW1hdGlvbiBzaG91bGQgbGFzdC4KLSAgICAgKi8KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR09UT19TQ1JPTExfRFVSQVRJT04gPSAxMDAwOwotCi0gICAgLyoqCi0gICAgICogVGhlIGR1cmF0aW9uIG9mIHRoZSBhZGp1c3RtZW50IHVwb24gYSB1c2VyIHNjcm9sbCBpbiBtaWxsaXNlY29uZHMuCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFESlVTVE1FTlRfU0NST0xMX0RVUkFUSU9OID0gNTAwOwotCi0gICAgLyoqCi0gICAgICogSG93IGxvbmcgdG8gd2FpdCBhZnRlciByZWNlaXZpbmcgYW4gb25TY3JvbGxTdGF0ZUNoYW5nZWQgbm90aWZpY2F0aW9uCi0gICAgICogYmVmb3JlIGFjdGluZyBvbiBpdC4KLSAgICAgKi8KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0NST0xMX0NIQU5HRV9ERUxBWSA9IDQwOwotCi0gICAgLyoqCi0gICAgICogU3RyaW5nIGZvciBwYXJzaW5nIGRhdGVzLgotICAgICAqLwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRFX0ZPUk1BVCA9ICJNTS9kZC95eXl5IjsKLQotICAgIC8qKgotICAgICAqIFRoZSBkZWZhdWx0IG1pbmltYWwgZGF0ZS4KLSAgICAgKi8KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGQVVMVF9NSU5fREFURSA9ICIwMS8wMS8xOTAwIjsKLQotICAgIC8qKgotICAgICAqIFRoZSBkZWZhdWx0IG1heGltYWwgZGF0ZS4KLSAgICAgKi8KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGQVVMVF9NQVhfREFURSA9ICIwMS8wMS8yMTAwIjsKLQotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX1NIT1dOX1dFRUtfQ09VTlQgPSA2OwotCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfREFURV9URVhUX1NJWkUgPSAxNDsKLQotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTlNDQUxFRF9TRUxFQ1RFRF9EQVRFX1ZFUlRJQ0FMX0JBUl9XSURUSCA9IDY7Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5TQ0FMRURfV0VFS19NSU5fVklTSUJMRV9IRUlHSFQgPSAxMjsKLQotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTlNDQUxFRF9MSVNUX1NDUk9MTF9UT1BfT0ZGU0VUID0gMjsKLQotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTlNDQUxFRF9CT1RUT01fQlVGRkVSID0gMjA7Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5TQ0FMRURfV0VFS19TRVBBUkFUT1JfTElORV9XSURUSCA9IDE7Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9XRUVLX0RBWV9URVhUX0FQUEVBUkFOQ0VfUkVTX0lEID0gLTE7Ci0KLSAgICBwcml2YXRlIGZpbmFsIGludCBtV2Vla1NlcGVyYXRvckxpbmVXaWR0aDsKLQotICAgIHByaXZhdGUgaW50IG1EYXRlVGV4dFNpemU7Ci0KLSAgICBwcml2YXRlIERyYXdhYmxlIG1TZWxlY3RlZERhdGVWZXJ0aWNhbEJhcjsKLQotICAgIHByaXZhdGUgZmluYWwgaW50IG1TZWxlY3RlZERhdGVWZXJ0aWNhbEJhcldpZHRoOwotCi0gICAgcHJpdmF0ZSBpbnQgbVNlbGVjdGVkV2Vla0JhY2tncm91bmRDb2xvcjsKLQotICAgIHByaXZhdGUgaW50IG1Gb2N1c2VkTW9udGhEYXRlQ29sb3I7Ci0KLSAgICBwcml2YXRlIGludCBtVW5mb2N1c2VkTW9udGhEYXRlQ29sb3I7Ci0KLSAgICBwcml2YXRlIGludCBtV2Vla1NlcGFyYXRvckxpbmVDb2xvcjsKLQotICAgIHByaXZhdGUgaW50IG1XZWVrTnVtYmVyQ29sb3I7Ci0KLSAgICBwcml2YXRlIGludCBtV2Vla0RheVRleHRBcHBlYXJhbmNlUmVzSWQ7Ci0KLSAgICBwcml2YXRlIGludCBtRGF0ZVRleHRBcHBlYXJhbmNlUmVzSWQ7Ci0KLSAgICAvKioKLSAgICAgKiBUaGUgdG9wIG9mZnNldCBvZiB0aGUgd2Vla3MgbGlzdC4KLSAgICAgKi8KLSAgICBwcml2YXRlIGludCBtTGlzdFNjcm9sbFRvcE9mZnNldCA9IDI7Ci0KLSAgICAvKioKLSAgICAgKiBUaGUgdmlzaWJsZSBoZWlnaHQgb2YgYSB3ZWVrIHZpZXcuCi0gICAgICovCi0gICAgcHJpdmF0ZSBpbnQgbVdlZWtNaW5WaXNpYmxlSGVpZ2h0ID0gMTI7Ci0KLSAgICAvKioKLSAgICAgKiBUaGUgdmlzaWJsZSBoZWlnaHQgb2YgYSB3ZWVrIHZpZXcuCi0gICAgICovCi0gICAgcHJpdmF0ZSBpbnQgbUJvdHRvbUJ1ZmZlciA9IDIwOwotCi0gICAgLyoqCi0gICAgICogVGhlIG51bWJlciBvZiBzaG93biB3ZWVrcy4KLSAgICAgKi8KLSAgICBwcml2YXRlIGludCBtU2hvd25XZWVrQ291bnQ7Ci0KLSAgICAvKioKLSAgICAgKiBGbGFnIHdoZXRoZXIgdG8gc2hvdyB0aGUgd2VlayBudW1iZXIuCi0gICAgICovCi0gICAgcHJpdmF0ZSBib29sZWFuIG1TaG93V2Vla051bWJlcjsKLQotICAgIC8qKgotICAgICAqIFRoZSBudW1iZXIgb2YgZGF5IHBlciB3ZWVrIHRvIGJlIHNob3duLgotICAgICAqLwotICAgIHByaXZhdGUgaW50IG1EYXlzUGVyV2VlayA9IDc7Ci0KLSAgICAvKioKLSAgICAgKiBUaGUgZnJpY3Rpb24gb2YgdGhlIHdlZWsgbGlzdCB3aGlsZSBmbGluZ2luZy4KLSAgICAgKi8KLSAgICBwcml2YXRlIGZsb2F0IG1GcmljdGlvbiA9IC4wNWY7Ci0KLSAgICAvKioKLSAgICAgKiBTY2FsZSBmb3IgYWRqdXN0aW5nIHZlbG9jaXR5IG9mIHRoZSB3ZWVrIGxpc3Qgd2hpbGUgZmxpbmdpbmcuCi0gICAgICovCi0gICAgcHJpdmF0ZSBmbG9hdCBtVmVsb2NpdHlTY2FsZSA9IDAuMzMzZjsKLQotICAgIC8qKgotICAgICAqIFRoZSBhZGFwdGVyIGZvciB0aGUgd2Vla3MgbGlzdC4KLSAgICAgKi8KLSAgICBwcml2YXRlIFdlZWtzQWRhcHRlciBtQWRhcHRlcjsKLQotICAgIC8qKgotICAgICAqIFRoZSB3ZWVrcyBsaXN0LgotICAgICAqLwotICAgIHByaXZhdGUgTGlzdFZpZXcgbUxpc3RWaWV3OwotCi0gICAgLyoqCi0gICAgICogVGhlIG5hbWUgb2YgdGhlIG1vbnRoIHRvIGRpc3BsYXkuCi0gICAgICovCi0gICAgcHJpdmF0ZSBUZXh0VmlldyBtTW9udGhOYW1lOwotCi0gICAgLyoqCi0gICAgICogVGhlIGhlYWRlciB3aXRoIHdlZWsgZGF5IG5hbWVzLgotICAgICAqLwotICAgIHByaXZhdGUgVmlld0dyb3VwIG1EYXlOYW1lc0hlYWRlcjsKLQotICAgIC8qKgotICAgICAqIENhY2hlZCBsYWJlbHMgZm9yIHRoZSB3ZWVrIG5hbWVzIGhlYWRlci4KLSAgICAgKi8KLSAgICBwcml2YXRlIFN0cmluZ1tdIG1EYXlMYWJlbHM7Ci0KLSAgICAvKioKLSAgICAgKiBUaGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgotICAgICAqLwotICAgIHByaXZhdGUgaW50IG1GaXJzdERheU9mV2VlazsKLQotICAgIC8qKgotICAgICAqIFdoaWNoIG1vbnRoIHNob3VsZCBiZSBkaXNwbGF5ZWQvaGlnaGxpZ2h0ZWQgWzAtMTFdLgotICAgICAqLwotICAgIHByaXZhdGUgaW50IG1DdXJyZW50TW9udGhEaXNwbGF5ZWQgPSAtMTsKLQotICAgIC8qKgotICAgICAqIFVzZWQgZm9yIHRyYWNraW5nIGR1cmluZyBhIHNjcm9sbC4KLSAgICAgKi8KLSAgICBwcml2YXRlIGxvbmcgbVByZXZpb3VzU2Nyb2xsUG9zaXRpb247Ci0KLSAgICAvKioKLSAgICAgKiBVc2VkIGZvciB0cmFja2luZyB3aGljaCBkaXJlY3Rpb24gdGhlIHZpZXcgaXMgc2Nyb2xsaW5nLgotICAgICAqLwotICAgIHByaXZhdGUgYm9vbGVhbiBtSXNTY3JvbGxpbmdVcCA9IGZhbHNlOwotCi0gICAgLyoqCi0gICAgICogVGhlIHByZXZpb3VzIHNjcm9sbCBzdGF0ZSBvZiB0aGUgd2Vla3MgTGlzdFZpZXcuCi0gICAgICovCi0gICAgcHJpdmF0ZSBpbnQgbVByZXZpb3VzU2Nyb2xsU3RhdGUgPSBPblNjcm9sbExpc3RlbmVyLlNDUk9MTF9TVEFURV9JRExFOwotCi0gICAgLyoqCi0gICAgICogVGhlIGN1cnJlbnQgc2Nyb2xsIHN0YXRlIG9mIHRoZSB3ZWVrcyBMaXN0Vmlldy4KLSAgICAgKi8KLSAgICBwcml2YXRlIGludCBtQ3VycmVudFNjcm9sbFN0YXRlID0gT25TY3JvbGxMaXN0ZW5lci5TQ1JPTExfU1RBVEVfSURMRTsKLQotICAgIC8qKgotICAgICAqIExpc3RlbmVyIGZvciBjaGFuZ2VzIGluIHRoZSBzZWxlY3RlZCBkYXkuCi0gICAgICovCi0gICAgcHJpdmF0ZSBPbkRhdGVDaGFuZ2VMaXN0ZW5lciBtT25EYXRlQ2hhbmdlTGlzdGVuZXI7Ci0KLSAgICAvKioKLSAgICAgKiBDb21tYW5kIGZvciBhZGp1c3RpbmcgdGhlIHBvc2l0aW9uIGFmdGVyIGEgc2Nyb2xsL2ZsaW5nLgotICAgICAqLwotICAgIHByaXZhdGUgU2Nyb2xsU3RhdGVSdW5uYWJsZSBtU2Nyb2xsU3RhdGVDaGFuZ2VkUnVubmFibGUgPSBuZXcgU2Nyb2xsU3RhdGVSdW5uYWJsZSgpOwotCi0gICAgLyoqCi0gICAgICogVGVtcG9yYXJ5IGluc3RhbmNlIHRvIGF2b2lkIG11bHRpcGxlIGluc3RhbnRpYXRpb25zLgotICAgICAqLwotICAgIHByaXZhdGUgQ2FsZW5kYXIgbVRlbXBEYXRlOwotCi0gICAgLyoqCi0gICAgICogVGhlIGZpcnN0IGRheSBvZiB0aGUgZm9jdXNlZCBtb250aC4KLSAgICAgKi8KLSAgICBwcml2YXRlIENhbGVuZGFyIG1GaXJzdERheU9mTW9udGg7Ci0KLSAgICAvKioKLSAgICAgKiBUaGUgc3RhcnQgZGF0ZSBvZiB0aGUgcmFuZ2Ugc3VwcG9ydGVkIGJ5IHRoaXMgcGlja2VyLgotICAgICAqLwotICAgIHByaXZhdGUgQ2FsZW5kYXIgbU1pbkRhdGU7Ci0KLSAgICAvKioKLSAgICAgKiBUaGUgZW5kIGRhdGUgb2YgdGhlIHJhbmdlIHN1cHBvcnRlZCBieSB0aGlzIHBpY2tlci4KLSAgICAgKi8KLSAgICBwcml2YXRlIENhbGVuZGFyIG1NYXhEYXRlOwotCi0gICAgLyoqCi0gICAgICogRGF0ZSBmb3JtYXQgZm9yIHBhcnNpbmcgZGF0ZXMuCi0gICAgICovCi0gICAgcHJpdmF0ZSBmaW5hbCBqYXZhLnRleHQuRGF0ZUZvcm1hdCBtRGF0ZUZvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KERBVEVfRk9STUFUKTsKLQotICAgIC8qKgotICAgICAqIFRoZSBjdXJyZW50IGxvY2FsZS4KLSAgICAgKi8KLSAgICBwcml2YXRlIExvY2FsZSBtQ3VycmVudExvY2FsZTsKKyAgICBwcml2YXRlIENhbGVuZGFyVmlld0RlbGVnYXRlIG1EZWxlZ2F0ZTsKIAogICAgIC8qKgogICAgICAqIFRoZSBjYWxsYmFjayB1c2VkIHRvIGluZGljYXRlIHRoZSB1c2VyIGNoYW5nZXMgdGhlIGRhdGUuCkBAIC0zMzAsOTEgKzEwMywxNyBAQAogICAgIH0KIAogICAgIHB1YmxpYyBDYWxlbmRhclZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKLSAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgMCk7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIFIuYXR0ci5jYWxlbmRhclZpZXdTdHlsZSk7CiAgICAgfQogCi0gICAgcHVibGljIENhbGVuZGFyVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCAwKTsKKyAgICBwdWJsaWMgQ2FsZW5kYXJWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQogCi0gICAgICAgIC8vIGluaXRpYWxpemF0aW9uIGJhc2VkIG9uIGxvY2FsZQotICAgICAgICBzZXRDdXJyZW50TG9jYWxlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIHB1YmxpYyBDYWxlbmRhclZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKLSAgICAgICAgVHlwZWRBcnJheSBhdHRyaWJ1dGVzQXJyYXkgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsIFIuc3R5bGVhYmxlLkNhbGVuZGFyVmlldywKLSAgICAgICAgICAgICAgICBSLmF0dHIuY2FsZW5kYXJWaWV3U3R5bGUsIDApOwotICAgICAgICBtU2hvd1dlZWtOdW1iZXIgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0Qm9vbGVhbihSLnN0eWxlYWJsZS5DYWxlbmRhclZpZXdfc2hvd1dlZWtOdW1iZXIsCi0gICAgICAgICAgICAgICAgREVGQVVMVF9TSE9XX1dFRUtfTlVNQkVSKTsKLSAgICAgICAgbUZpcnN0RGF5T2ZXZWVrID0gYXR0cmlidXRlc0FycmF5LmdldEludChSLnN0eWxlYWJsZS5DYWxlbmRhclZpZXdfZmlyc3REYXlPZldlZWssCi0gICAgICAgICAgICAgICAgTG9jYWxlRGF0YS5nZXQoTG9jYWxlLmdldERlZmF1bHQoKSkuZmlyc3REYXlPZldlZWspOwotICAgICAgICBTdHJpbmcgbWluRGF0ZSA9IGF0dHJpYnV0ZXNBcnJheS5nZXRTdHJpbmcoUi5zdHlsZWFibGUuQ2FsZW5kYXJWaWV3X21pbkRhdGUpOwotICAgICAgICBpZiAoVGV4dFV0aWxzLmlzRW1wdHkobWluRGF0ZSkgfHwgIXBhcnNlRGF0ZShtaW5EYXRlLCBtTWluRGF0ZSkpIHsKLSAgICAgICAgICAgIHBhcnNlRGF0ZShERUZBVUxUX01JTl9EQVRFLCBtTWluRGF0ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgU3RyaW5nIG1heERhdGUgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0U3RyaW5nKFIuc3R5bGVhYmxlLkNhbGVuZGFyVmlld19tYXhEYXRlKTsKLSAgICAgICAgaWYgKFRleHRVdGlscy5pc0VtcHR5KG1heERhdGUpIHx8ICFwYXJzZURhdGUobWF4RGF0ZSwgbU1heERhdGUpKSB7Ci0gICAgICAgICAgICBwYXJzZURhdGUoREVGQVVMVF9NQVhfREFURSwgbU1heERhdGUpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChtTWF4RGF0ZS5iZWZvcmUobU1pbkRhdGUpKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJNYXggZGF0ZSBjYW5ub3QgYmUgYmVmb3JlIG1pbiBkYXRlLiIpOwotICAgICAgICB9Ci0gICAgICAgIG1TaG93bldlZWtDb3VudCA9IGF0dHJpYnV0ZXNBcnJheS5nZXRJbnQoUi5zdHlsZWFibGUuQ2FsZW5kYXJWaWV3X3Nob3duV2Vla0NvdW50LAotICAgICAgICAgICAgICAgIERFRkFVTFRfU0hPV05fV0VFS19DT1VOVCk7Ci0gICAgICAgIG1TZWxlY3RlZFdlZWtCYWNrZ3JvdW5kQ29sb3IgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0Q29sb3IoCi0gICAgICAgICAgICAgICAgUi5zdHlsZWFibGUuQ2FsZW5kYXJWaWV3X3NlbGVjdGVkV2Vla0JhY2tncm91bmRDb2xvciwgMCk7Ci0gICAgICAgIG1Gb2N1c2VkTW9udGhEYXRlQ29sb3IgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0Q29sb3IoCi0gICAgICAgICAgICAgICAgUi5zdHlsZWFibGUuQ2FsZW5kYXJWaWV3X2ZvY3VzZWRNb250aERhdGVDb2xvciwgMCk7Ci0gICAgICAgIG1VbmZvY3VzZWRNb250aERhdGVDb2xvciA9IGF0dHJpYnV0ZXNBcnJheS5nZXRDb2xvcigKLSAgICAgICAgICAgICAgICBSLnN0eWxlYWJsZS5DYWxlbmRhclZpZXdfdW5mb2N1c2VkTW9udGhEYXRlQ29sb3IsIDApOwotICAgICAgICBtV2Vla1NlcGFyYXRvckxpbmVDb2xvciA9IGF0dHJpYnV0ZXNBcnJheS5nZXRDb2xvcigKLSAgICAgICAgICAgICAgICBSLnN0eWxlYWJsZS5DYWxlbmRhclZpZXdfd2Vla1NlcGFyYXRvckxpbmVDb2xvciwgMCk7Ci0gICAgICAgIG1XZWVrTnVtYmVyQ29sb3IgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0Q29sb3IoUi5zdHlsZWFibGUuQ2FsZW5kYXJWaWV3X3dlZWtOdW1iZXJDb2xvciwgMCk7Ci0gICAgICAgIG1TZWxlY3RlZERhdGVWZXJ0aWNhbEJhciA9IGF0dHJpYnV0ZXNBcnJheS5nZXREcmF3YWJsZSgKLSAgICAgICAgICAgICAgICBSLnN0eWxlYWJsZS5DYWxlbmRhclZpZXdfc2VsZWN0ZWREYXRlVmVydGljYWxCYXIpOwotCi0gICAgICAgIG1EYXRlVGV4dEFwcGVhcmFuY2VSZXNJZCA9IGF0dHJpYnV0ZXNBcnJheS5nZXRSZXNvdXJjZUlkKAotICAgICAgICAgICAgICAgIFIuc3R5bGVhYmxlLkNhbGVuZGFyVmlld19kYXRlVGV4dEFwcGVhcmFuY2UsIFIuc3R5bGUuVGV4dEFwcGVhcmFuY2VfU21hbGwpOwotICAgICAgICB1cGRhdGVEYXRlVGV4dFNpemUoKTsKLQotICAgICAgICBtV2Vla0RheVRleHRBcHBlYXJhbmNlUmVzSWQgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0UmVzb3VyY2VJZCgKLSAgICAgICAgICAgICAgICBSLnN0eWxlYWJsZS5DYWxlbmRhclZpZXdfd2Vla0RheVRleHRBcHBlYXJhbmNlLAotICAgICAgICAgICAgICAgIERFRkFVTFRfV0VFS19EQVlfVEVYVF9BUFBFQVJBTkNFX1JFU19JRCk7Ci0gICAgICAgIGF0dHJpYnV0ZXNBcnJheS5yZWN5Y2xlKCk7Ci0KLSAgICAgICAgRGlzcGxheU1ldHJpY3MgZGlzcGxheU1ldHJpY3MgPSBnZXRSZXNvdXJjZXMoKS5nZXREaXNwbGF5TWV0cmljcygpOwotICAgICAgICBtV2Vla01pblZpc2libGVIZWlnaHQgPSAoaW50KSBUeXBlZFZhbHVlLmFwcGx5RGltZW5zaW9uKFR5cGVkVmFsdWUuQ09NUExFWF9VTklUX0RJUCwKLSAgICAgICAgICAgICAgICBVTlNDQUxFRF9XRUVLX01JTl9WSVNJQkxFX0hFSUdIVCwgZGlzcGxheU1ldHJpY3MpOwotICAgICAgICBtTGlzdFNjcm9sbFRvcE9mZnNldCA9IChpbnQpIFR5cGVkVmFsdWUuYXBwbHlEaW1lbnNpb24oVHlwZWRWYWx1ZS5DT01QTEVYX1VOSVRfRElQLAotICAgICAgICAgICAgICAgIFVOU0NBTEVEX0xJU1RfU0NST0xMX1RPUF9PRkZTRVQsIGRpc3BsYXlNZXRyaWNzKTsKLSAgICAgICAgbUJvdHRvbUJ1ZmZlciA9IChpbnQpIFR5cGVkVmFsdWUuYXBwbHlEaW1lbnNpb24oVHlwZWRWYWx1ZS5DT01QTEVYX1VOSVRfRElQLAotICAgICAgICAgICAgICAgIFVOU0NBTEVEX0JPVFRPTV9CVUZGRVIsIGRpc3BsYXlNZXRyaWNzKTsKLSAgICAgICAgbVNlbGVjdGVkRGF0ZVZlcnRpY2FsQmFyV2lkdGggPSAoaW50KSBUeXBlZFZhbHVlLmFwcGx5RGltZW5zaW9uKFR5cGVkVmFsdWUuQ09NUExFWF9VTklUX0RJUCwKLSAgICAgICAgICAgICAgICBVTlNDQUxFRF9TRUxFQ1RFRF9EQVRFX1ZFUlRJQ0FMX0JBUl9XSURUSCwgZGlzcGxheU1ldHJpY3MpOwotICAgICAgICBtV2Vla1NlcGVyYXRvckxpbmVXaWR0aCA9IChpbnQpIFR5cGVkVmFsdWUuYXBwbHlEaW1lbnNpb24oVHlwZWRWYWx1ZS5DT01QTEVYX1VOSVRfRElQLAotICAgICAgICAgICAgICAgIFVOU0NBTEVEX1dFRUtfU0VQQVJBVE9SX0xJTkVfV0lEVEgsIGRpc3BsYXlNZXRyaWNzKTsKLQotICAgICAgICBMYXlvdXRJbmZsYXRlciBsYXlvdXRJbmZsYXRlciA9IChMYXlvdXRJbmZsYXRlcikgY29udGV4dAotICAgICAgICAgICAgICAgIC5nZXRTeXN0ZW1TZXJ2aWNlKFNlcnZpY2UuTEFZT1VUX0lORkxBVEVSX1NFUlZJQ0UpOwotICAgICAgICBWaWV3IGNvbnRlbnQgPSBsYXlvdXRJbmZsYXRlci5pbmZsYXRlKFIubGF5b3V0LmNhbGVuZGFyX3ZpZXcsIG51bGwsIGZhbHNlKTsKLSAgICAgICAgYWRkVmlldyhjb250ZW50KTsKLQotICAgICAgICBtTGlzdFZpZXcgPSAoTGlzdFZpZXcpIGZpbmRWaWV3QnlJZChSLmlkLmxpc3QpOwotICAgICAgICBtRGF5TmFtZXNIZWFkZXIgPSAoVmlld0dyb3VwKSBjb250ZW50LmZpbmRWaWV3QnlJZChjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmlkLmRheV9uYW1lcyk7Ci0gICAgICAgIG1Nb250aE5hbWUgPSAoVGV4dFZpZXcpIGNvbnRlbnQuZmluZFZpZXdCeUlkKGNvbS5hbmRyb2lkLmludGVybmFsLlIuaWQubW9udGhfbmFtZSk7Ci0KLSAgICAgICAgc2V0VXBIZWFkZXIoKTsKLSAgICAgICAgc2V0VXBMaXN0VmlldygpOwotICAgICAgICBzZXRVcEFkYXB0ZXIoKTsKLQotICAgICAgICAvLyBnbyB0byB0b2RheSBvciB3aGljaGV2ZXIgaXMgY2xvc2UgdG8gdG9kYXkgbWluIG9yIG1heCBkYXRlCi0gICAgICAgIG1UZW1wRGF0ZS5zZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOwotICAgICAgICBpZiAobVRlbXBEYXRlLmJlZm9yZShtTWluRGF0ZSkpIHsKLSAgICAgICAgICAgIGdvVG8obU1pbkRhdGUsIGZhbHNlLCB0cnVlLCB0cnVlKTsKLSAgICAgICAgfSBlbHNlIGlmIChtTWF4RGF0ZS5iZWZvcmUobVRlbXBEYXRlKSkgewotICAgICAgICAgICAgZ29UbyhtTWF4RGF0ZSwgZmFsc2UsIHRydWUsIHRydWUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZ29UbyhtVGVtcERhdGUsIGZhbHNlLCB0cnVlLCB0cnVlKTsKLSAgICAgICAgfQotCi0gICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgbURlbGVnYXRlID0gbmV3IExlZ2FjeUNhbGVuZGFyVmlld0RlbGVnYXRlKHRoaXMsIGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICB9CiAKICAgICAvKioKQEAgLTQyNSwxMCArMTI0LDcgQEAKICAgICAgKiBAYXR0ciByZWYgYW5kcm9pZC5SLnN0eWxlYWJsZSNDYWxlbmRhclZpZXdfc2hvd25XZWVrQ291bnQKICAgICAgKi8KICAgICBwdWJsaWMgdm9pZCBzZXRTaG93bldlZWtDb3VudChpbnQgY291bnQpIHsKLSAgICAgICAgaWYgKG1TaG93bldlZWtDb3VudCAhPSBjb3VudCkgewotICAgICAgICAgICAgbVNob3duV2Vla0NvdW50ID0gY291bnQ7Ci0gICAgICAgICAgICBpbnZhbGlkYXRlKCk7Ci0gICAgICAgIH0KKyAgICAgICAgbURlbGVnYXRlLnNldFNob3duV2Vla0NvdW50KGNvdW50KTsKICAgICB9CiAKICAgICAvKioKQEAgLTQzOSw3ICsxMzUsNyBAQAogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI0NhbGVuZGFyVmlld19zaG93bldlZWtDb3VudAogICAgICAqLwogICAgIHB1YmxpYyBpbnQgZ2V0U2hvd25XZWVrQ291bnQoKSB7Ci0gICAgICAgIHJldHVybiBtU2hvd25XZWVrQ291bnQ7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUuZ2V0U2hvd25XZWVrQ291bnQoKTsKICAgICB9CiAKICAgICAvKioKQEAgLTQ1MCwxNiArMTQ2LDcgQEAKICAgICAgKiBAYXR0ciByZWYgYW5kcm9pZC5SLnN0eWxlYWJsZSNDYWxlbmRhclZpZXdfc2VsZWN0ZWRXZWVrQmFja2dyb3VuZENvbG9yCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc2V0U2VsZWN0ZWRXZWVrQmFja2dyb3VuZENvbG9yKGludCBjb2xvcikgewotICAgICAgICBpZiAobVNlbGVjdGVkV2Vla0JhY2tncm91bmRDb2xvciAhPSBjb2xvcikgewotICAgICAgICAgICAgbVNlbGVjdGVkV2Vla0JhY2tncm91bmRDb2xvciA9IGNvbG9yOwotICAgICAgICAgICAgZmluYWwgaW50IGNoaWxkQ291bnQgPSBtTGlzdFZpZXcuZ2V0Q2hpbGRDb3VudCgpOwotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGlsZENvdW50OyBpKyspIHsKLSAgICAgICAgICAgICAgICBXZWVrVmlldyB3ZWVrVmlldyA9IChXZWVrVmlldykgbUxpc3RWaWV3LmdldENoaWxkQXQoaSk7Ci0gICAgICAgICAgICAgICAgaWYgKHdlZWtWaWV3Lm1IYXNTZWxlY3RlZERheSkgewotICAgICAgICAgICAgICAgICAgICB3ZWVrVmlldy5pbnZhbGlkYXRlKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIG1EZWxlZ2F0ZS5zZXRTZWxlY3RlZFdlZWtCYWNrZ3JvdW5kQ29sb3IoY29sb3IpOwogICAgIH0KIAogICAgIC8qKgpAQCAtNDcwLDcgKzE1Nyw3IEBACiAgICAgICogQGF0dHIgcmVmIGFuZHJvaWQuUi5zdHlsZWFibGUjQ2FsZW5kYXJWaWV3X3NlbGVjdGVkV2Vla0JhY2tncm91bmRDb2xvcgogICAgICAqLwogICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0ZWRXZWVrQmFja2dyb3VuZENvbG9yKCkgewotICAgICAgICByZXR1cm4gbVNlbGVjdGVkV2Vla0JhY2tncm91bmRDb2xvcjsKKyAgICAgICAgcmV0dXJuIG1EZWxlZ2F0ZS5nZXRTZWxlY3RlZFdlZWtCYWNrZ3JvdW5kQ29sb3IoKTsKICAgICB9CiAKICAgICAvKioKQEAgLTQ4MSwxNiArMTY4LDcgQEAKICAgICAgKiBAYXR0ciByZWYgYW5kcm9pZC5SLnN0eWxlYWJsZSNDYWxlbmRhclZpZXdfZm9jdXNlZE1vbnRoRGF0ZUNvbG9yCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc2V0Rm9jdXNlZE1vbnRoRGF0ZUNvbG9yKGludCBjb2xvcikgewotICAgICAgICBpZiAobUZvY3VzZWRNb250aERhdGVDb2xvciAhPSBjb2xvcikgewotICAgICAgICAgICAgbUZvY3VzZWRNb250aERhdGVDb2xvciA9IGNvbG9yOwotICAgICAgICAgICAgZmluYWwgaW50IGNoaWxkQ291bnQgPSBtTGlzdFZpZXcuZ2V0Q2hpbGRDb3VudCgpOwotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGlsZENvdW50OyBpKyspIHsKLSAgICAgICAgICAgICAgICBXZWVrVmlldyB3ZWVrVmlldyA9IChXZWVrVmlldykgbUxpc3RWaWV3LmdldENoaWxkQXQoaSk7Ci0gICAgICAgICAgICAgICAgaWYgKHdlZWtWaWV3Lm1IYXNGb2N1c2VkRGF5KSB7Ci0gICAgICAgICAgICAgICAgICAgIHdlZWtWaWV3LmludmFsaWRhdGUoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgbURlbGVnYXRlLnNldEZvY3VzZWRNb250aERhdGVDb2xvcihjb2xvcik7CiAgICAgfQogCiAgICAgLyoqCkBAIC01MDEsNyArMTc5LDcgQEAKICAgICAgKiBAYXR0ciByZWYgYW5kcm9pZC5SLnN0eWxlYWJsZSNDYWxlbmRhclZpZXdfZm9jdXNlZE1vbnRoRGF0ZUNvbG9yCiAgICAgICovCiAgICAgcHVibGljIGludCBnZXRGb2N1c2VkTW9udGhEYXRlQ29sb3IoKSB7Ci0gICAgICAgIHJldHVybiBtRm9jdXNlZE1vbnRoRGF0ZUNvbG9yOworICAgICAgICByZXR1cm4gbURlbGVnYXRlLmdldEZvY3VzZWRNb250aERhdGVDb2xvcigpOwogICAgIH0KIAogICAgIC8qKgpAQCAtNTEyLDE2ICsxOTAsNyBAQAogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI0NhbGVuZGFyVmlld191bmZvY3VzZWRNb250aERhdGVDb2xvcgogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIHNldFVuZm9jdXNlZE1vbnRoRGF0ZUNvbG9yKGludCBjb2xvcikgewotICAgICAgICBpZiAobVVuZm9jdXNlZE1vbnRoRGF0ZUNvbG9yICE9IGNvbG9yKSB7Ci0gICAgICAgICAgICBtVW5mb2N1c2VkTW9udGhEYXRlQ29sb3IgPSBjb2xvcjsKLSAgICAgICAgICAgIGZpbmFsIGludCBjaGlsZENvdW50ID0gbUxpc3RWaWV3LmdldENoaWxkQ291bnQoKTsKLSAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRDb3VudDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgV2Vla1ZpZXcgd2Vla1ZpZXcgPSAoV2Vla1ZpZXcpIG1MaXN0Vmlldy5nZXRDaGlsZEF0KGkpOwotICAgICAgICAgICAgICAgIGlmICh3ZWVrVmlldy5tSGFzVW5mb2N1c2VkRGF5KSB7Ci0gICAgICAgICAgICAgICAgICAgIHdlZWtWaWV3LmludmFsaWRhdGUoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgbURlbGVnYXRlLnNldFVuZm9jdXNlZE1vbnRoRGF0ZUNvbG9yKGNvbG9yKTsKICAgICB9CiAKICAgICAvKioKQEAgLTUzMiw3ICsyMDEsNyBAQAogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI0NhbGVuZGFyVmlld191bmZvY3VzZWRNb250aERhdGVDb2xvcgogICAgICAqLwogICAgIHB1YmxpYyBpbnQgZ2V0VW5mb2N1c2VkTW9udGhEYXRlQ29sb3IoKSB7Ci0gICAgICAgIHJldHVybiBtRm9jdXNlZE1vbnRoRGF0ZUNvbG9yOworICAgICAgICByZXR1cm4gbURlbGVnYXRlLmdldFVuZm9jdXNlZE1vbnRoRGF0ZUNvbG9yKCk7CiAgICAgfQogCiAgICAgLyoqCkBAIC01NDMsMTIgKzIxMiw3IEBACiAgICAgICogQGF0dHIgcmVmIGFuZHJvaWQuUi5zdHlsZWFibGUjQ2FsZW5kYXJWaWV3X3dlZWtOdW1iZXJDb2xvcgogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIHNldFdlZWtOdW1iZXJDb2xvcihpbnQgY29sb3IpIHsKLSAgICAgICAgaWYgKG1XZWVrTnVtYmVyQ29sb3IgIT0gY29sb3IpIHsKLSAgICAgICAgICAgIG1XZWVrTnVtYmVyQ29sb3IgPSBjb2xvcjsKLSAgICAgICAgICAgIGlmIChtU2hvd1dlZWtOdW1iZXIpIHsKLSAgICAgICAgICAgICAgICBpbnZhbGlkYXRlQWxsV2Vla1ZpZXdzKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgbURlbGVnYXRlLnNldFdlZWtOdW1iZXJDb2xvcihjb2xvcik7CiAgICAgfQogCiAgICAgLyoqCkBAIC01NTksNyArMjIzLDcgQEAKICAgICAgKiBAYXR0ciByZWYgYW5kcm9pZC5SLnN0eWxlYWJsZSNDYWxlbmRhclZpZXdfd2Vla051bWJlckNvbG9yCiAgICAgICovCiAgICAgcHVibGljIGludCBnZXRXZWVrTnVtYmVyQ29sb3IoKSB7Ci0gICAgICAgIHJldHVybiBtV2Vla051bWJlckNvbG9yOworICAgICAgICByZXR1cm4gbURlbGVnYXRlLmdldFdlZWtOdW1iZXJDb2xvcigpOwogICAgIH0KIAogICAgIC8qKgpAQCAtNTcwLDEwICsyMzQsNyBAQAogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI0NhbGVuZGFyVmlld193ZWVrU2VwYXJhdG9yTGluZUNvbG9yCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc2V0V2Vla1NlcGFyYXRvckxpbmVDb2xvcihpbnQgY29sb3IpIHsKLSAgICAgICAgaWYgKG1XZWVrU2VwYXJhdG9yTGluZUNvbG9yICE9IGNvbG9yKSB7Ci0gICAgICAgICAgICBtV2Vla1NlcGFyYXRvckxpbmVDb2xvciA9IGNvbG9yOwotICAgICAgICAgICAgaW52YWxpZGF0ZUFsbFdlZWtWaWV3cygpOwotICAgICAgICB9CisgICAgICAgIG1EZWxlZ2F0ZS5zZXRXZWVrU2VwYXJhdG9yTGluZUNvbG9yKGNvbG9yKTsKICAgICB9CiAKICAgICAvKioKQEAgLTU4NCw3ICsyNDUsNyBAQAogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI0NhbGVuZGFyVmlld193ZWVrU2VwYXJhdG9yTGluZUNvbG9yCiAgICAgICovCiAgICAgcHVibGljIGludCBnZXRXZWVrU2VwYXJhdG9yTGluZUNvbG9yKCkgewotICAgICAgICByZXR1cm4gbVdlZWtTZXBhcmF0b3JMaW5lQ29sb3I7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUuZ2V0V2Vla1NlcGFyYXRvckxpbmVDb2xvcigpOwogICAgIH0KIAogICAgIC8qKgpAQCAtNTk2LDggKzI1Nyw3IEBACiAgICAgICogQGF0dHIgcmVmIGFuZHJvaWQuUi5zdHlsZWFibGUjQ2FsZW5kYXJWaWV3X3NlbGVjdGVkRGF0ZVZlcnRpY2FsQmFyCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc2V0U2VsZWN0ZWREYXRlVmVydGljYWxCYXIoaW50IHJlc291cmNlSWQpIHsKLSAgICAgICAgRHJhd2FibGUgZHJhd2FibGUgPSBnZXRSZXNvdXJjZXMoKS5nZXREcmF3YWJsZShyZXNvdXJjZUlkKTsKLSAgICAgICAgc2V0U2VsZWN0ZWREYXRlVmVydGljYWxCYXIoZHJhd2FibGUpOworICAgICAgICBtRGVsZWdhdGUuc2V0U2VsZWN0ZWREYXRlVmVydGljYWxCYXIocmVzb3VyY2VJZCk7CiAgICAgfQogCiAgICAgLyoqCkBAIC02MDksMTYgKzI2OSw3IEBACiAgICAgICogQGF0dHIgcmVmIGFuZHJvaWQuUi5zdHlsZWFibGUjQ2FsZW5kYXJWaWV3X3NlbGVjdGVkRGF0ZVZlcnRpY2FsQmFyCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc2V0U2VsZWN0ZWREYXRlVmVydGljYWxCYXIoRHJhd2FibGUgZHJhd2FibGUpIHsKLSAgICAgICAgaWYgKG1TZWxlY3RlZERhdGVWZXJ0aWNhbEJhciAhPSBkcmF3YWJsZSkgewotICAgICAgICAgICAgbVNlbGVjdGVkRGF0ZVZlcnRpY2FsQmFyID0gZHJhd2FibGU7Ci0gICAgICAgICAgICBmaW5hbCBpbnQgY2hpbGRDb3VudCA9IG1MaXN0Vmlldy5nZXRDaGlsZENvdW50KCk7Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoaWxkQ291bnQ7IGkrKykgewotICAgICAgICAgICAgICAgIFdlZWtWaWV3IHdlZWtWaWV3ID0gKFdlZWtWaWV3KSBtTGlzdFZpZXcuZ2V0Q2hpbGRBdChpKTsKLSAgICAgICAgICAgICAgICBpZiAod2Vla1ZpZXcubUhhc1NlbGVjdGVkRGF5KSB7Ci0gICAgICAgICAgICAgICAgICAgIHdlZWtWaWV3LmludmFsaWRhdGUoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgbURlbGVnYXRlLnNldFNlbGVjdGVkRGF0ZVZlcnRpY2FsQmFyKGRyYXdhYmxlKTsKICAgICB9CiAKICAgICAvKioKQEAgLTYyOCw3ICsyNzksNyBAQAogICAgICAqIEByZXR1cm4gVGhlIHZlcnRpY2FsIGJhciBkcmF3YWJsZS4KICAgICAgKi8KICAgICBwdWJsaWMgRHJhd2FibGUgZ2V0U2VsZWN0ZWREYXRlVmVydGljYWxCYXIoKSB7Ci0gICAgICAgIHJldHVybiBtU2VsZWN0ZWREYXRlVmVydGljYWxCYXI7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUuZ2V0U2VsZWN0ZWREYXRlVmVydGljYWxCYXIoKTsKICAgICB9CiAKICAgICAvKioKQEAgLTYzOSwxMCArMjkwLDcgQEAKICAgICAgKiBAYXR0ciByZWYgYW5kcm9pZC5SLnN0eWxlYWJsZSNDYWxlbmRhclZpZXdfd2Vla0RheVRleHRBcHBlYXJhbmNlCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc2V0V2Vla0RheVRleHRBcHBlYXJhbmNlKGludCByZXNvdXJjZUlkKSB7Ci0gICAgICAgIGlmIChtV2Vla0RheVRleHRBcHBlYXJhbmNlUmVzSWQgIT0gcmVzb3VyY2VJZCkgewotICAgICAgICAgICAgbVdlZWtEYXlUZXh0QXBwZWFyYW5jZVJlc0lkID0gcmVzb3VyY2VJZDsKLSAgICAgICAgICAgIHNldFVwSGVhZGVyKCk7Ci0gICAgICAgIH0KKyAgICAgICAgbURlbGVnYXRlLnNldFdlZWtEYXlUZXh0QXBwZWFyYW5jZShyZXNvdXJjZUlkKTsKICAgICB9CiAKICAgICAvKioKQEAgLTY1Myw3ICszMDEsNyBAQAogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI0NhbGVuZGFyVmlld193ZWVrRGF5VGV4dEFwcGVhcmFuY2UKICAgICAgKi8KICAgICBwdWJsaWMgaW50IGdldFdlZWtEYXlUZXh0QXBwZWFyYW5jZSgpIHsKLSAgICAgICAgcmV0dXJuIG1XZWVrRGF5VGV4dEFwcGVhcmFuY2VSZXNJZDsKKyAgICAgICAgcmV0dXJuIG1EZWxlZ2F0ZS5nZXRXZWVrRGF5VGV4dEFwcGVhcmFuY2UoKTsKICAgICB9CiAKICAgICAvKioKQEAgLTY2NCwxMSArMzEyLDcgQEAKICAgICAgKiBAYXR0ciByZWYgYW5kcm9pZC5SLnN0eWxlYWJsZSNDYWxlbmRhclZpZXdfZGF0ZVRleHRBcHBlYXJhbmNlCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc2V0RGF0ZVRleHRBcHBlYXJhbmNlKGludCByZXNvdXJjZUlkKSB7Ci0gICAgICAgIGlmIChtRGF0ZVRleHRBcHBlYXJhbmNlUmVzSWQgIT0gcmVzb3VyY2VJZCkgewotICAgICAgICAgICAgbURhdGVUZXh0QXBwZWFyYW5jZVJlc0lkID0gcmVzb3VyY2VJZDsKLSAgICAgICAgICAgIHVwZGF0ZURhdGVUZXh0U2l6ZSgpOwotICAgICAgICAgICAgaW52YWxpZGF0ZUFsbFdlZWtWaWV3cygpOwotICAgICAgICB9CisgICAgICAgIG1EZWxlZ2F0ZS5zZXREYXRlVGV4dEFwcGVhcmFuY2UocmVzb3VyY2VJZCk7CiAgICAgfQogCiAgICAgLyoqCkBAIC02NzksMzUgKzMyMywxNyBAQAogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI0NhbGVuZGFyVmlld19kYXRlVGV4dEFwcGVhcmFuY2UKICAgICAgKi8KICAgICBwdWJsaWMgaW50IGdldERhdGVUZXh0QXBwZWFyYW5jZSgpIHsKLSAgICAgICAgcmV0dXJuIG1EYXRlVGV4dEFwcGVhcmFuY2VSZXNJZDsKKyAgICAgICAgcmV0dXJuIG1EZWxlZ2F0ZS5nZXREYXRlVGV4dEFwcGVhcmFuY2UoKTsKICAgICB9CiAKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCBzZXRFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCkgewotICAgICAgICBtTGlzdFZpZXcuc2V0RW5hYmxlZChlbmFibGVkKTsKKyAgICAgICAgbURlbGVnYXRlLnNldEVuYWJsZWQoZW5hYmxlZCk7CiAgICAgfQogCiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIGJvb2xlYW4gaXNFbmFibGVkKCkgewotICAgICAgICByZXR1cm4gbUxpc3RWaWV3LmlzRW5hYmxlZCgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHByb3RlY3RlZCB2b2lkIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQoQ29uZmlndXJhdGlvbiBuZXdDb25maWcpIHsKLSAgICAgICAgc3VwZXIub25Db25maWd1cmF0aW9uQ2hhbmdlZChuZXdDb25maWcpOwotICAgICAgICBzZXRDdXJyZW50TG9jYWxlKG5ld0NvbmZpZy5sb2NhbGUpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIG9uSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHlFdmVudChBY2Nlc3NpYmlsaXR5RXZlbnQgZXZlbnQpIHsKLSAgICAgICAgc3VwZXIub25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKLSAgICAgICAgZXZlbnQuc2V0Q2xhc3NOYW1lKENhbGVuZGFyVmlldy5jbGFzcy5nZXROYW1lKCkpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIG9uSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHlOb2RlSW5mbyhBY2Nlc3NpYmlsaXR5Tm9kZUluZm8gaW5mbykgewotICAgICAgICBzdXBlci5vbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5Tm9kZUluZm8oaW5mbyk7Ci0gICAgICAgIGluZm8uc2V0Q2xhc3NOYW1lKENhbGVuZGFyVmlldy5jbGFzcy5nZXROYW1lKCkpOworICAgICAgICByZXR1cm4gbURlbGVnYXRlLmlzRW5hYmxlZCgpOwogICAgIH0KIAogICAgIC8qKgpAQCAtNzIzLDcgKzM0OSw3IEBACiAgICAgICogQGF0dHIgcmVmIGFuZHJvaWQuUi5zdHlsZWFibGUjQ2FsZW5kYXJWaWV3X21pbkRhdGUKICAgICAgKi8KICAgICBwdWJsaWMgbG9uZyBnZXRNaW5EYXRlKCkgewotICAgICAgICByZXR1cm4gbU1pbkRhdGUuZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUuZ2V0TWluRGF0ZSgpOwogICAgIH0KIAogICAgIC8qKgpAQCAtNzM2LDMwICszNjIsNyBAQAogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI0NhbGVuZGFyVmlld19taW5EYXRlCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc2V0TWluRGF0ZShsb25nIG1pbkRhdGUpIHsKLSAgICAgICAgbVRlbXBEYXRlLnNldFRpbWVJbk1pbGxpcyhtaW5EYXRlKTsKLSAgICAgICAgaWYgKGlzU2FtZURhdGUobVRlbXBEYXRlLCBtTWluRGF0ZSkpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBtTWluRGF0ZS5zZXRUaW1lSW5NaWxsaXMobWluRGF0ZSk7Ci0gICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgY3VycmVudCBkYXRlIGlzIG5vdCBlYXJsaWVyIHRoYW4KLSAgICAgICAgLy8gdGhlIG5ldyBtaW4gZGF0ZSBzaW5jZSB0aGUgbGF0dGVyIGlzIHVzZWQgZm9yCi0gICAgICAgIC8vIGNhbGN1bGF0aW5nIHRoZSBpbmRpY2VzIGluIHRoZSBhZGFwdGVyIHRodXMKLSAgICAgICAgLy8gYXZvaWRpbmcgb3V0IG9mIGJvdW5kcyBlcnJvcgotICAgICAgICBDYWxlbmRhciBkYXRlID0gbUFkYXB0ZXIubVNlbGVjdGVkRGF0ZTsKLSAgICAgICAgaWYgKGRhdGUuYmVmb3JlKG1NaW5EYXRlKSkgewotICAgICAgICAgICAgbUFkYXB0ZXIuc2V0U2VsZWN0ZWREYXkobU1pbkRhdGUpOwotICAgICAgICB9Ci0gICAgICAgIC8vIHJlaW5pdGlhbGl6ZSB0aGUgYWRhcHRlciBzaW5jZSBpdHMgcmFuZ2UgZGVwZW5kcyBvbiBtaW4gZGF0ZQotICAgICAgICBtQWRhcHRlci5pbml0KCk7Ci0gICAgICAgIGlmIChkYXRlLmJlZm9yZShtTWluRGF0ZSkpIHsKLSAgICAgICAgICAgIHNldERhdGUobVRlbXBEYXRlLmdldFRpbWVJbk1pbGxpcygpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIHdlIGdvIHRvIHRoZSBjdXJyZW50IGRhdGUgdG8gZm9yY2UgdGhlIExpc3RWaWV3IHRvIHF1ZXJ5IGl0cwotICAgICAgICAgICAgLy8gYWRhcHRlciBmb3IgdGhlIHNob3duIHZpZXdzIHNpbmNlIHdlIGhhdmUgY2hhbmdlZCB0aGUgYWRhcHRlcgotICAgICAgICAgICAgLy8gcmFuZ2UgYW5kIHRoZSBiYXNlIGZyb20gd2hpY2ggdGhlIGxhdGVyIGNhbGN1bGF0ZXMgaXRlbSBpbmRpY2VzCi0gICAgICAgICAgICAvLyBub3RlIHRoYXQgY2FsbGluZyBzZXREYXRlIHdpbGwgbm90IHdvcmsgc2luY2UgdGhlIGRhdGUgaXMgdGhlIHNhbWUKLSAgICAgICAgICAgIGdvVG8oZGF0ZSwgZmFsc2UsIHRydWUsIGZhbHNlKTsKLSAgICAgICAgfQorICAgICAgICBtRGVsZWdhdGUuc2V0TWluRGF0ZShtaW5EYXRlKTsKICAgICB9CiAKICAgICAvKioKQEAgLTc3NSw3ICszNzgsNyBAQAogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI0NhbGVuZGFyVmlld19tYXhEYXRlCiAgICAgICovCiAgICAgcHVibGljIGxvbmcgZ2V0TWF4RGF0ZSgpIHsKLSAgICAgICAgcmV0dXJuIG1NYXhEYXRlLmdldFRpbWVJbk1pbGxpcygpOworICAgICAgICByZXR1cm4gbURlbGVnYXRlLmdldE1heERhdGUoKTsKICAgICB9CiAKICAgICAvKioKQEAgLTc4OCwyMyArMzkxLDcgQEAKICAgICAgKiBAYXR0ciByZWYgYW5kcm9pZC5SLnN0eWxlYWJsZSNDYWxlbmRhclZpZXdfbWF4RGF0ZQogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIHNldE1heERhdGUobG9uZyBtYXhEYXRlKSB7Ci0gICAgICAgIG1UZW1wRGF0ZS5zZXRUaW1lSW5NaWxsaXMobWF4RGF0ZSk7Ci0gICAgICAgIGlmIChpc1NhbWVEYXRlKG1UZW1wRGF0ZSwgbU1heERhdGUpKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgbU1heERhdGUuc2V0VGltZUluTWlsbGlzKG1heERhdGUpOwotICAgICAgICAvLyByZWluaXRpYWxpemUgdGhlIGFkYXB0ZXIgc2luY2UgaXRzIHJhbmdlIGRlcGVuZHMgb24gbWF4IGRhdGUKLSAgICAgICAgbUFkYXB0ZXIuaW5pdCgpOwotICAgICAgICBDYWxlbmRhciBkYXRlID0gbUFkYXB0ZXIubVNlbGVjdGVkRGF0ZTsKLSAgICAgICAgaWYgKGRhdGUuYWZ0ZXIobU1heERhdGUpKSB7Ci0gICAgICAgICAgICBzZXREYXRlKG1NYXhEYXRlLmdldFRpbWVJbk1pbGxpcygpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIHdlIGdvIHRvIHRoZSBjdXJyZW50IGRhdGUgdG8gZm9yY2UgdGhlIExpc3RWaWV3IHRvIHF1ZXJ5IGl0cwotICAgICAgICAgICAgLy8gYWRhcHRlciBmb3IgdGhlIHNob3duIHZpZXdzIHNpbmNlIHdlIGhhdmUgY2hhbmdlZCB0aGUgYWRhcHRlcgotICAgICAgICAgICAgLy8gcmFuZ2UgYW5kIHRoZSBiYXNlIGZyb20gd2hpY2ggdGhlIGxhdGVyIGNhbGN1bGF0ZXMgaXRlbSBpbmRpY2VzCi0gICAgICAgICAgICAvLyBub3RlIHRoYXQgY2FsbGluZyBzZXREYXRlIHdpbGwgbm90IHdvcmsgc2luY2UgdGhlIGRhdGUgaXMgdGhlIHNhbWUKLSAgICAgICAgICAgIGdvVG8oZGF0ZSwgZmFsc2UsIHRydWUsIGZhbHNlKTsKLSAgICAgICAgfQorICAgICAgICBtRGVsZWdhdGUuc2V0TWF4RGF0ZShtYXhEYXRlKTsKICAgICB9CiAKICAgICAvKioKQEAgLTgxNSwxMiArNDAyLDcgQEAKICAgICAgKiBAYXR0ciByZWYgYW5kcm9pZC5SLnN0eWxlYWJsZSNDYWxlbmRhclZpZXdfc2hvd1dlZWtOdW1iZXIKICAgICAgKi8KICAgICBwdWJsaWMgdm9pZCBzZXRTaG93V2Vla051bWJlcihib29sZWFuIHNob3dXZWVrTnVtYmVyKSB7Ci0gICAgICAgIGlmIChtU2hvd1dlZWtOdW1iZXIgPT0gc2hvd1dlZWtOdW1iZXIpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBtU2hvd1dlZWtOdW1iZXIgPSBzaG93V2Vla051bWJlcjsKLSAgICAgICAgbUFkYXB0ZXIubm90aWZ5RGF0YVNldENoYW5nZWQoKTsKLSAgICAgICAgc2V0VXBIZWFkZXIoKTsKKyAgICAgICAgbURlbGVnYXRlLnNldFNob3dXZWVrTnVtYmVyKHNob3dXZWVrTnVtYmVyKTsKICAgICB9CiAKICAgICAvKioKQEAgLTgzMSw3ICs0MTMsNyBAQAogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI0NhbGVuZGFyVmlld19zaG93V2Vla051bWJlcgogICAgICAqLwogICAgIHB1YmxpYyBib29sZWFuIGdldFNob3dXZWVrTnVtYmVyKCkgewotICAgICAgICByZXR1cm4gbVNob3dXZWVrTnVtYmVyOworICAgICAgICByZXR1cm4gbURlbGVnYXRlLmdldFNob3dXZWVrTnVtYmVyKCk7CiAgICAgfQogCiAgICAgLyoqCkBAIC04NTAsNyArNDMyLDcgQEAKICAgICAgKiBAYXR0ciByZWYgYW5kcm9pZC5SLnN0eWxlYWJsZSNDYWxlbmRhclZpZXdfZmlyc3REYXlPZldlZWsKICAgICAgKi8KICAgICBwdWJsaWMgaW50IGdldEZpcnN0RGF5T2ZXZWVrKCkgewotICAgICAgICByZXR1cm4gbUZpcnN0RGF5T2ZXZWVrOworICAgICAgICByZXR1cm4gbURlbGVnYXRlLmdldEZpcnN0RGF5T2ZXZWVrKCk7CiAgICAgfQogCiAgICAgLyoqCkBAIC04NjksMTIgKzQ1MSw3IEBACiAgICAgICogQGF0dHIgcmVmIGFuZHJvaWQuUi5zdHlsZWFibGUjQ2FsZW5kYXJWaWV3X2ZpcnN0RGF5T2ZXZWVrCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc2V0Rmlyc3REYXlPZldlZWsoaW50IGZpcnN0RGF5T2ZXZWVrKSB7Ci0gICAgICAgIGlmIChtRmlyc3REYXlPZldlZWsgPT0gZmlyc3REYXlPZldlZWspIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBtRmlyc3REYXlPZldlZWsgPSBmaXJzdERheU9mV2VlazsKLSAgICAgICAgbUFkYXB0ZXIuaW5pdCgpOwotICAgICAgICBzZXRVcEhlYWRlcigpOworICAgICAgICBtRGVsZWdhdGUuc2V0Rmlyc3REYXlPZldlZWsoZmlyc3REYXlPZldlZWspOwogICAgIH0KIAogICAgIC8qKgpAQCAtODgzLDcgKzQ2MCw3IEBACiAgICAgICogQHBhcmFtIGxpc3RlbmVyIFRoZSBsaXN0ZW5lciB0byBiZSBub3RpZmllZC4KICAgICAgKi8KICAgICBwdWJsaWMgdm9pZCBzZXRPbkRhdGVDaGFuZ2VMaXN0ZW5lcihPbkRhdGVDaGFuZ2VMaXN0ZW5lciBsaXN0ZW5lcikgewotICAgICAgICBtT25EYXRlQ2hhbmdlTGlzdGVuZXIgPSBsaXN0ZW5lcjsKKyAgICAgICAgbURlbGVnYXRlLnNldE9uRGF0ZUNoYW5nZUxpc3RlbmVyKGxpc3RlbmVyKTsKICAgICB9CiAKICAgICAvKioKQEAgLTg5Myw3ICs0NzAsNyBAQAogICAgICAqIEByZXR1cm4gVGhlIHNlbGVjdGVkIGRhdGUuCiAgICAgICovCiAgICAgcHVibGljIGxvbmcgZ2V0RGF0ZSgpIHsKLSAgICAgICAgcmV0dXJuIG1BZGFwdGVyLm1TZWxlY3RlZERhdGUuZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUuZ2V0RGF0ZSgpOwogICAgIH0KIAogICAgIC8qKgpAQCAtOTEwLDcgKzQ4Nyw3IEBACiAgICAgICogQHNlZSAjc2V0TWF4RGF0ZShsb25nKQogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIHNldERhdGUobG9uZyBkYXRlKSB7Ci0gICAgICAgIHNldERhdGUoZGF0ZSwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgbURlbGVnYXRlLnNldERhdGUoZGF0ZSk7CiAgICAgfQogCiAgICAgLyoqCkBAIC05MjgsOTM0ICs1MDUsMTY0NSBAQAogICAgICAqIEBzZWUgI3NldE1heERhdGUobG9uZykKICAgICAgKi8KICAgICBwdWJsaWMgdm9pZCBzZXREYXRlKGxvbmcgZGF0ZSwgYm9vbGVhbiBhbmltYXRlLCBib29sZWFuIGNlbnRlcikgewotICAgICAgICBtVGVtcERhdGUuc2V0VGltZUluTWlsbGlzKGRhdGUpOwotICAgICAgICBpZiAoaXNTYW1lRGF0ZShtVGVtcERhdGUsIG1BZGFwdGVyLm1TZWxlY3RlZERhdGUpKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgZ29UbyhtVGVtcERhdGUsIGFuaW1hdGUsIHRydWUsIGNlbnRlcik7CisgICAgICAgIG1EZWxlZ2F0ZS5zZXREYXRlKGRhdGUsIGFuaW1hdGUsIGNlbnRlcik7CiAgICAgfQogCi0gICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZURhdGVUZXh0U2l6ZSgpIHsKLSAgICAgICAgVHlwZWRBcnJheSBkYXRlVGV4dEFwcGVhcmFuY2UgPSBtQ29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAotICAgICAgICAgICAgICAgIG1EYXRlVGV4dEFwcGVhcmFuY2VSZXNJZCwgUi5zdHlsZWFibGUuVGV4dEFwcGVhcmFuY2UpOwotICAgICAgICBtRGF0ZVRleHRTaXplID0gZGF0ZVRleHRBcHBlYXJhbmNlLmdldERpbWVuc2lvblBpeGVsU2l6ZSgKLSAgICAgICAgICAgICAgICBSLnN0eWxlYWJsZS5UZXh0QXBwZWFyYW5jZV90ZXh0U2l6ZSwgREVGQVVMVF9EQVRFX1RFWFRfU0laRSk7Ci0gICAgICAgIGRhdGVUZXh0QXBwZWFyYW5jZS5yZWN5Y2xlKCk7CisgICAgQE92ZXJyaWRlCisgICAgcHJvdGVjdGVkIHZvaWQgb25Db25maWd1cmF0aW9uQ2hhbmdlZChDb25maWd1cmF0aW9uIG5ld0NvbmZpZykgeworICAgICAgICBzdXBlci5vbkNvbmZpZ3VyYXRpb25DaGFuZ2VkKG5ld0NvbmZpZyk7CisgICAgICAgIG1EZWxlZ2F0ZS5vbkNvbmZpZ3VyYXRpb25DaGFuZ2VkKG5ld0NvbmZpZyk7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgb25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCkgeworICAgICAgICBzdXBlci5vbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5RXZlbnQoZXZlbnQpOworICAgICAgICBtRGVsZWdhdGUub25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBvbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5Tm9kZUluZm8oQWNjZXNzaWJpbGl0eU5vZGVJbmZvIGluZm8pIHsKKyAgICAgICAgc3VwZXIub25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eU5vZGVJbmZvKGluZm8pOworICAgICAgICBtRGVsZWdhdGUub25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eU5vZGVJbmZvKGluZm8pOwogICAgIH0KIAogICAgIC8qKgotICAgICAqIEludmFsaWRhdGVzIGFsbCB3ZWVrIHZpZXdzLgorICAgICAqIEEgZGVsZWdhdGUgaW50ZXJmYWNlIHRoYXQgZGVmaW5lZCB0aGUgcHVibGljIEFQSSBvZiB0aGUgQ2FsZW5kYXJWaWV3LiBBbGxvd3MgZGlmZmVyZW50CisgICAgICogQ2FsZW5kYXJWaWV3IGltcGxlbWVudGF0aW9ucy4gVGhpcyB3b3VsZCBuZWVkIHRvIGJlIGltcGxlbWVudGVkIGJ5IHRoZSBDYWxlbmRhclZpZXcgZGVsZWdhdGVzCisgICAgICogZm9yIHRoZSByZWFsIGJlaGF2aW9yLgogICAgICAqLwotICAgIHByaXZhdGUgdm9pZCBpbnZhbGlkYXRlQWxsV2Vla1ZpZXdzKCkgewotICAgICAgICBmaW5hbCBpbnQgY2hpbGRDb3VudCA9IG1MaXN0Vmlldy5nZXRDaGlsZENvdW50KCk7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRDb3VudDsgaSsrKSB7Ci0gICAgICAgICAgICBWaWV3IHZpZXcgPSBtTGlzdFZpZXcuZ2V0Q2hpbGRBdChpKTsKLSAgICAgICAgICAgIHZpZXcuaW52YWxpZGF0ZSgpOworICAgIHByaXZhdGUgaW50ZXJmYWNlIENhbGVuZGFyVmlld0RlbGVnYXRlIHsKKyAgICAgICAgdm9pZCBzZXRTaG93bldlZWtDb3VudChpbnQgY291bnQpOworICAgICAgICBpbnQgZ2V0U2hvd25XZWVrQ291bnQoKTsKKworICAgICAgICB2b2lkIHNldFNlbGVjdGVkV2Vla0JhY2tncm91bmRDb2xvcihpbnQgY29sb3IpOworICAgICAgICBpbnQgZ2V0U2VsZWN0ZWRXZWVrQmFja2dyb3VuZENvbG9yKCk7CisKKyAgICAgICAgdm9pZCBzZXRGb2N1c2VkTW9udGhEYXRlQ29sb3IoaW50IGNvbG9yKTsKKyAgICAgICAgaW50IGdldEZvY3VzZWRNb250aERhdGVDb2xvcigpOworCisgICAgICAgIHZvaWQgc2V0VW5mb2N1c2VkTW9udGhEYXRlQ29sb3IoaW50IGNvbG9yKTsKKyAgICAgICAgaW50IGdldFVuZm9jdXNlZE1vbnRoRGF0ZUNvbG9yKCk7CisKKyAgICAgICAgdm9pZCBzZXRXZWVrTnVtYmVyQ29sb3IoaW50IGNvbG9yKTsKKyAgICAgICAgaW50IGdldFdlZWtOdW1iZXJDb2xvcigpOworCisgICAgICAgIHZvaWQgc2V0V2Vla1NlcGFyYXRvckxpbmVDb2xvcihpbnQgY29sb3IpOworICAgICAgICBpbnQgZ2V0V2Vla1NlcGFyYXRvckxpbmVDb2xvcigpOworCisgICAgICAgIHZvaWQgc2V0U2VsZWN0ZWREYXRlVmVydGljYWxCYXIoaW50IHJlc291cmNlSWQpOworICAgICAgICB2b2lkIHNldFNlbGVjdGVkRGF0ZVZlcnRpY2FsQmFyKERyYXdhYmxlIGRyYXdhYmxlKTsKKyAgICAgICAgRHJhd2FibGUgZ2V0U2VsZWN0ZWREYXRlVmVydGljYWxCYXIoKTsKKworICAgICAgICB2b2lkIHNldFdlZWtEYXlUZXh0QXBwZWFyYW5jZShpbnQgcmVzb3VyY2VJZCk7CisgICAgICAgIGludCBnZXRXZWVrRGF5VGV4dEFwcGVhcmFuY2UoKTsKKworICAgICAgICB2b2lkIHNldERhdGVUZXh0QXBwZWFyYW5jZShpbnQgcmVzb3VyY2VJZCk7CisgICAgICAgIGludCBnZXREYXRlVGV4dEFwcGVhcmFuY2UoKTsKKworICAgICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKyAgICAgICAgYm9vbGVhbiBpc0VuYWJsZWQoKTsKKworICAgICAgICB2b2lkIHNldE1pbkRhdGUobG9uZyBtaW5EYXRlKTsKKyAgICAgICAgbG9uZyBnZXRNaW5EYXRlKCk7CisKKyAgICAgICAgdm9pZCBzZXRNYXhEYXRlKGxvbmcgbWF4RGF0ZSk7CisgICAgICAgIGxvbmcgZ2V0TWF4RGF0ZSgpOworCisgICAgICAgIHZvaWQgc2V0U2hvd1dlZWtOdW1iZXIoYm9vbGVhbiBzaG93V2Vla051bWJlcik7CisgICAgICAgIGJvb2xlYW4gZ2V0U2hvd1dlZWtOdW1iZXIoKTsKKworICAgICAgICB2b2lkIHNldEZpcnN0RGF5T2ZXZWVrKGludCBmaXJzdERheU9mV2Vlayk7CisgICAgICAgIGludCBnZXRGaXJzdERheU9mV2VlaygpOworCisgICAgICAgIHZvaWQgc2V0RGF0ZShsb25nIGRhdGUpOworICAgICAgICB2b2lkIHNldERhdGUobG9uZyBkYXRlLCBib29sZWFuIGFuaW1hdGUsIGJvb2xlYW4gY2VudGVyKTsKKyAgICAgICAgbG9uZyBnZXREYXRlKCk7CisKKyAgICAgICAgdm9pZCBzZXRPbkRhdGVDaGFuZ2VMaXN0ZW5lcihPbkRhdGVDaGFuZ2VMaXN0ZW5lciBsaXN0ZW5lcik7CisKKyAgICAgICAgdm9pZCBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkKENvbmZpZ3VyYXRpb24gbmV3Q29uZmlnKTsKKyAgICAgICAgdm9pZCBvbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5RXZlbnQoQWNjZXNzaWJpbGl0eUV2ZW50IGV2ZW50KTsKKyAgICAgICAgdm9pZCBvbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5Tm9kZUluZm8oQWNjZXNzaWJpbGl0eU5vZGVJbmZvIGluZm8pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFuIGFic3RyYWN0IGNsYXNzIHdoaWNoIGNhbiBiZSB1c2VkIGFzIGEgc3RhcnQgZm9yIENhbGVuZGFyVmlldyBpbXBsZW1lbnRhdGlvbnMKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgQWJzdHJhY3RDYWxlbmRhclZpZXdEZWxlZ2F0ZSBpbXBsZW1lbnRzIENhbGVuZGFyVmlld0RlbGVnYXRlIHsKKyAgICAgICAgLy8gVGhlIGRlbGVnYXRvcgorICAgICAgICBwcm90ZWN0ZWQgQ2FsZW5kYXJWaWV3IG1EZWxlZ2F0b3I7CisKKyAgICAgICAgLy8gVGhlIGNvbnRleHQKKyAgICAgICAgcHJvdGVjdGVkIENvbnRleHQgbUNvbnRleHQ7CisKKyAgICAgICAgLy8gVGhlIGN1cnJlbnQgbG9jYWxlCisgICAgICAgIHByb3RlY3RlZCBMb2NhbGUgbUN1cnJlbnRMb2NhbGU7CisKKyAgICAgICAgQWJzdHJhY3RDYWxlbmRhclZpZXdEZWxlZ2F0ZShDYWxlbmRhclZpZXcgZGVsZWdhdG9yLCBDb250ZXh0IGNvbnRleHQpIHsKKyAgICAgICAgICAgIG1EZWxlZ2F0b3IgPSBkZWxlZ2F0b3I7CisgICAgICAgICAgICBtQ29udGV4dCA9IGNvbnRleHQ7CisKKyAgICAgICAgICAgIC8vIEluaXRpYWxpemF0aW9uIGJhc2VkIG9uIGxvY2FsZQorICAgICAgICAgICAgc2V0Q3VycmVudExvY2FsZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHNldEN1cnJlbnRMb2NhbGUoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAgICAgaWYgKGxvY2FsZS5lcXVhbHMobUN1cnJlbnRMb2NhbGUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbUN1cnJlbnRMb2NhbGUgPSBsb2NhbGU7CiAgICAgICAgIH0KICAgICB9CiAKICAgICAvKioKLSAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGxvY2FsZS4KLSAgICAgKgotICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGN1cnJlbnQgbG9jYWxlLgorICAgICAqIEEgZGVsZWdhdGUgaW1wbGVtZW50aW5nIHRoZSBsZWdhY3kgQ2FsZW5kYXJWaWV3CiAgICAgICovCi0gICAgcHJpdmF0ZSB2b2lkIHNldEN1cnJlbnRMb2NhbGUoTG9jYWxlIGxvY2FsZSkgewotICAgICAgICBpZiAobG9jYWxlLmVxdWFscyhtQ3VycmVudExvY2FsZSkpIHsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBMZWdhY3lDYWxlbmRhclZpZXdEZWxlZ2F0ZSBleHRlbmRzIEFic3RyYWN0Q2FsZW5kYXJWaWV3RGVsZWdhdGUgeworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZhdWx0IHZhbHVlIHdoZXRoZXIgdG8gc2hvdyB3ZWVrIG51bWJlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVGQVVMVF9TSE9XX1dFRUtfTlVNQkVSID0gdHJ1ZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gYSBkYXkuZQorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBNSUxMSVNfSU5fREFZID0gODY0MDAwMDBMOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgbnVtYmVyIG9mIGRheSBpbiBhIHdlZWsuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREFZU19QRVJfV0VFSyA9IDc7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIGEgd2Vlay4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgTUlMTElTX0lOX1dFRUsgPSBEQVlTX1BFUl9XRUVLICogTUlMTElTX0lOX0RBWTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQWZmZWN0cyB3aGVuIHRoZSBtb250aCBzZWxlY3Rpb24gd2lsbCBjaGFuZ2Ugd2hpbGUgc2Nyb2xsaW5nIHVwZQorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNDUk9MTF9IWVNUX1dFRUtTID0gMjsKKworICAgICAgICAvKioKKyAgICAgICAgICogSG93IGxvbmcgdGhlIEdvVG8gZmxpbmcgYW5pbWF0aW9uIHNob3VsZCBsYXN0LgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdPVE9fU0NST0xMX0RVUkFUSU9OID0gMTAwMDsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGR1cmF0aW9uIG9mIHRoZSBhZGp1c3RtZW50IHVwb24gYSB1c2VyIHNjcm9sbCBpbiBtaWxsaXNlY29uZHMuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQURKVVNUTUVOVF9TQ1JPTExfRFVSQVRJT04gPSA1MDA7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEhvdyBsb25nIHRvIHdhaXQgYWZ0ZXIgcmVjZWl2aW5nIGFuIG9uU2Nyb2xsU3RhdGVDaGFuZ2VkIG5vdGlmaWNhdGlvbgorICAgICAgICAgKiBiZWZvcmUgYWN0aW5nIG9uIGl0LgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNDUk9MTF9DSEFOR0VfREVMQVkgPSA0MDsKKworICAgICAgICAvKioKKyAgICAgICAgICogU3RyaW5nIGZvciBwYXJzaW5nIGRhdGVzLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEVfRk9STUFUID0gIk1NL2RkL3l5eXkiOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgZGVmYXVsdCBtaW5pbWFsIGRhdGUuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGQVVMVF9NSU5fREFURSA9ICIwMS8wMS8xOTAwIjsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGRlZmF1bHQgbWF4aW1hbCBkYXRlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfTUFYX0RBVEUgPSAiMDEvMDEvMjEwMCI7CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfU0hPV05fV0VFS19DT1VOVCA9IDY7CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfREFURV9URVhUX1NJWkUgPSAxNDsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5TQ0FMRURfU0VMRUNURURfREFURV9WRVJUSUNBTF9CQVJfV0lEVEggPSA2OworCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTlNDQUxFRF9XRUVLX01JTl9WSVNJQkxFX0hFSUdIVCA9IDEyOworCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTlNDQUxFRF9MSVNUX1NDUk9MTF9UT1BfT0ZGU0VUID0gMjsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5TQ0FMRURfQk9UVE9NX0JVRkZFUiA9IDIwOworCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTlNDQUxFRF9XRUVLX1NFUEFSQVRPUl9MSU5FX1dJRFRIID0gMTsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9XRUVLX0RBWV9URVhUX0FQUEVBUkFOQ0VfUkVTX0lEID0gLTE7CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBpbnQgbVdlZWtTZXBlcmF0b3JMaW5lV2lkdGg7CisKKyAgICAgICAgcHJpdmF0ZSBpbnQgbURhdGVUZXh0U2l6ZTsKKworICAgICAgICBwcml2YXRlIERyYXdhYmxlIG1TZWxlY3RlZERhdGVWZXJ0aWNhbEJhcjsKKworICAgICAgICBwcml2YXRlIGZpbmFsIGludCBtU2VsZWN0ZWREYXRlVmVydGljYWxCYXJXaWR0aDsKKworICAgICAgICBwcml2YXRlIGludCBtU2VsZWN0ZWRXZWVrQmFja2dyb3VuZENvbG9yOworCisgICAgICAgIHByaXZhdGUgaW50IG1Gb2N1c2VkTW9udGhEYXRlQ29sb3I7CisKKyAgICAgICAgcHJpdmF0ZSBpbnQgbVVuZm9jdXNlZE1vbnRoRGF0ZUNvbG9yOworCisgICAgICAgIHByaXZhdGUgaW50IG1XZWVrU2VwYXJhdG9yTGluZUNvbG9yOworCisgICAgICAgIHByaXZhdGUgaW50IG1XZWVrTnVtYmVyQ29sb3I7CisKKyAgICAgICAgcHJpdmF0ZSBpbnQgbVdlZWtEYXlUZXh0QXBwZWFyYW5jZVJlc0lkOworCisgICAgICAgIHByaXZhdGUgaW50IG1EYXRlVGV4dEFwcGVhcmFuY2VSZXNJZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHRvcCBvZmZzZXQgb2YgdGhlIHdlZWtzIGxpc3QuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBtTGlzdFNjcm9sbFRvcE9mZnNldCA9IDI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSB2aXNpYmxlIGhlaWdodCBvZiBhIHdlZWsgdmlldy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG1XZWVrTWluVmlzaWJsZUhlaWdodCA9IDEyOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgdmlzaWJsZSBoZWlnaHQgb2YgYSB3ZWVrIHZpZXcuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBtQm90dG9tQnVmZmVyID0gMjA7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBudW1iZXIgb2Ygc2hvd24gd2Vla3MuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBtU2hvd25XZWVrQ291bnQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZsYWcgd2hldGhlciB0byBzaG93IHRoZSB3ZWVrIG51bWJlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBtU2hvd1dlZWtOdW1iZXI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBudW1iZXIgb2YgZGF5IHBlciB3ZWVrIHRvIGJlIHNob3duLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgbURheXNQZXJXZWVrID0gNzsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGZyaWN0aW9uIG9mIHRoZSB3ZWVrIGxpc3Qgd2hpbGUgZmxpbmdpbmcuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGZsb2F0IG1GcmljdGlvbiA9IC4wNWY7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNjYWxlIGZvciBhZGp1c3RpbmcgdmVsb2NpdHkgb2YgdGhlIHdlZWsgbGlzdCB3aGlsZSBmbGluZ2luZy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgZmxvYXQgbVZlbG9jaXR5U2NhbGUgPSAwLjMzM2Y7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBhZGFwdGVyIGZvciB0aGUgd2Vla3MgbGlzdC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgV2Vla3NBZGFwdGVyIG1BZGFwdGVyOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgd2Vla3MgbGlzdC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgTGlzdFZpZXcgbUxpc3RWaWV3OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgbmFtZSBvZiB0aGUgbW9udGggdG8gZGlzcGxheS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgVGV4dFZpZXcgbU1vbnRoTmFtZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGhlYWRlciB3aXRoIHdlZWsgZGF5IG5hbWVzLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBWaWV3R3JvdXAgbURheU5hbWVzSGVhZGVyOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDYWNoZWQgbGFiZWxzIGZvciB0aGUgd2VlayBuYW1lcyBoZWFkZXIuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIFN0cmluZ1tdIG1EYXlMYWJlbHM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBtRmlyc3REYXlPZldlZWs7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFdoaWNoIG1vbnRoIHNob3VsZCBiZSBkaXNwbGF5ZWQvaGlnaGxpZ2h0ZWQgWzAtMTFdLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgbUN1cnJlbnRNb250aERpc3BsYXllZCA9IC0xOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBVc2VkIGZvciB0cmFja2luZyBkdXJpbmcgYSBzY3JvbGwuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGxvbmcgbVByZXZpb3VzU2Nyb2xsUG9zaXRpb247CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVzZWQgZm9yIHRyYWNraW5nIHdoaWNoIGRpcmVjdGlvbiB0aGUgdmlldyBpcyBzY3JvbGxpbmcuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gbUlzU2Nyb2xsaW5nVXAgPSBmYWxzZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHByZXZpb3VzIHNjcm9sbCBzdGF0ZSBvZiB0aGUgd2Vla3MgTGlzdFZpZXcuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBtUHJldmlvdXNTY3JvbGxTdGF0ZSA9IE9uU2Nyb2xsTGlzdGVuZXIuU0NST0xMX1NUQVRFX0lETEU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBjdXJyZW50IHNjcm9sbCBzdGF0ZSBvZiB0aGUgd2Vla3MgTGlzdFZpZXcuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBtQ3VycmVudFNjcm9sbFN0YXRlID0gT25TY3JvbGxMaXN0ZW5lci5TQ1JPTExfU1RBVEVfSURMRTsKKworICAgICAgICAvKioKKyAgICAgICAgICogTGlzdGVuZXIgZm9yIGNoYW5nZXMgaW4gdGhlIHNlbGVjdGVkIGRheS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgT25EYXRlQ2hhbmdlTGlzdGVuZXIgbU9uRGF0ZUNoYW5nZUxpc3RlbmVyOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb21tYW5kIGZvciBhZGp1c3RpbmcgdGhlIHBvc2l0aW9uIGFmdGVyIGEgc2Nyb2xsL2ZsaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBTY3JvbGxTdGF0ZVJ1bm5hYmxlIG1TY3JvbGxTdGF0ZUNoYW5nZWRSdW5uYWJsZSA9IG5ldyBTY3JvbGxTdGF0ZVJ1bm5hYmxlKCk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRlbXBvcmFyeSBpbnN0YW5jZSB0byBhdm9pZCBtdWx0aXBsZSBpbnN0YW50aWF0aW9ucy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgQ2FsZW5kYXIgbVRlbXBEYXRlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgZmlyc3QgZGF5IG9mIHRoZSBmb2N1c2VkIG1vbnRoLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBDYWxlbmRhciBtRmlyc3REYXlPZk1vbnRoOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgc3RhcnQgZGF0ZSBvZiB0aGUgcmFuZ2Ugc3VwcG9ydGVkIGJ5IHRoaXMgcGlja2VyLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBDYWxlbmRhciBtTWluRGF0ZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVuZCBkYXRlIG9mIHRoZSByYW5nZSBzdXBwb3J0ZWQgYnkgdGhpcyBwaWNrZXIuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIENhbGVuZGFyIG1NYXhEYXRlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEYXRlIGZvcm1hdCBmb3IgcGFyc2luZyBkYXRlcy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgZmluYWwgamF2YS50ZXh0LkRhdGVGb3JtYXQgbURhdGVGb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChEQVRFX0ZPUk1BVCk7CisKKyAgICAgICAgTGVnYWN5Q2FsZW5kYXJWaWV3RGVsZWdhdGUoQ2FsZW5kYXJWaWV3IGRlbGVnYXRvciwgQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICAgICAgc3VwZXIoZGVsZWdhdG9yLCBjb250ZXh0KTsKKworICAgICAgICAgICAgLy8gaW5pdGlhbGl6YXRpb24gYmFzZWQgb24gbG9jYWxlCisgICAgICAgICAgICBzZXRDdXJyZW50TG9jYWxlKExvY2FsZS5nZXREZWZhdWx0KCkpOworCisgICAgICAgICAgICBUeXBlZEFycmF5IGF0dHJpYnV0ZXNBcnJheSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKKyAgICAgICAgICAgICAgICAgICAgUi5zdHlsZWFibGUuQ2FsZW5kYXJWaWV3LCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKyAgICAgICAgICAgIG1TaG93V2Vla051bWJlciA9IGF0dHJpYnV0ZXNBcnJheS5nZXRCb29sZWFuKFIuc3R5bGVhYmxlLkNhbGVuZGFyVmlld19zaG93V2Vla051bWJlciwKKyAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9TSE9XX1dFRUtfTlVNQkVSKTsKKyAgICAgICAgICAgIG1GaXJzdERheU9mV2VlayA9IGF0dHJpYnV0ZXNBcnJheS5nZXRJbnQoUi5zdHlsZWFibGUuQ2FsZW5kYXJWaWV3X2ZpcnN0RGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICBMb2NhbGVEYXRhLmdldChMb2NhbGUuZ2V0RGVmYXVsdCgpKS5maXJzdERheU9mV2Vlayk7CisgICAgICAgICAgICBTdHJpbmcgbWluRGF0ZSA9IGF0dHJpYnV0ZXNBcnJheS5nZXRTdHJpbmcoUi5zdHlsZWFibGUuQ2FsZW5kYXJWaWV3X21pbkRhdGUpOworICAgICAgICAgICAgaWYgKFRleHRVdGlscy5pc0VtcHR5KG1pbkRhdGUpIHx8ICFwYXJzZURhdGUobWluRGF0ZSwgbU1pbkRhdGUpKSB7CisgICAgICAgICAgICAgICAgcGFyc2VEYXRlKERFRkFVTFRfTUlOX0RBVEUsIG1NaW5EYXRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBtYXhEYXRlID0gYXR0cmlidXRlc0FycmF5LmdldFN0cmluZyhSLnN0eWxlYWJsZS5DYWxlbmRhclZpZXdfbWF4RGF0ZSk7CisgICAgICAgICAgICBpZiAoVGV4dFV0aWxzLmlzRW1wdHkobWF4RGF0ZSkgfHwgIXBhcnNlRGF0ZShtYXhEYXRlLCBtTWF4RGF0ZSkpIHsKKyAgICAgICAgICAgICAgICBwYXJzZURhdGUoREVGQVVMVF9NQVhfREFURSwgbU1heERhdGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1NYXhEYXRlLmJlZm9yZShtTWluRGF0ZSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJNYXggZGF0ZSBjYW5ub3QgYmUgYmVmb3JlIG1pbiBkYXRlLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbVNob3duV2Vla0NvdW50ID0gYXR0cmlidXRlc0FycmF5LmdldEludChSLnN0eWxlYWJsZS5DYWxlbmRhclZpZXdfc2hvd25XZWVrQ291bnQsCisgICAgICAgICAgICAgICAgICAgIERFRkFVTFRfU0hPV05fV0VFS19DT1VOVCk7CisgICAgICAgICAgICBtU2VsZWN0ZWRXZWVrQmFja2dyb3VuZENvbG9yID0gYXR0cmlidXRlc0FycmF5LmdldENvbG9yKAorICAgICAgICAgICAgICAgICAgICBSLnN0eWxlYWJsZS5DYWxlbmRhclZpZXdfc2VsZWN0ZWRXZWVrQmFja2dyb3VuZENvbG9yLCAwKTsKKyAgICAgICAgICAgIG1Gb2N1c2VkTW9udGhEYXRlQ29sb3IgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0Q29sb3IoCisgICAgICAgICAgICAgICAgICAgIFIuc3R5bGVhYmxlLkNhbGVuZGFyVmlld19mb2N1c2VkTW9udGhEYXRlQ29sb3IsIDApOworICAgICAgICAgICAgbVVuZm9jdXNlZE1vbnRoRGF0ZUNvbG9yID0gYXR0cmlidXRlc0FycmF5LmdldENvbG9yKAorICAgICAgICAgICAgICAgICAgICBSLnN0eWxlYWJsZS5DYWxlbmRhclZpZXdfdW5mb2N1c2VkTW9udGhEYXRlQ29sb3IsIDApOworICAgICAgICAgICAgbVdlZWtTZXBhcmF0b3JMaW5lQ29sb3IgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0Q29sb3IoCisgICAgICAgICAgICAgICAgICAgIFIuc3R5bGVhYmxlLkNhbGVuZGFyVmlld193ZWVrU2VwYXJhdG9yTGluZUNvbG9yLCAwKTsKKyAgICAgICAgICAgIG1XZWVrTnVtYmVyQ29sb3IgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0Q29sb3IoUi5zdHlsZWFibGUuQ2FsZW5kYXJWaWV3X3dlZWtOdW1iZXJDb2xvciwgMCk7CisgICAgICAgICAgICBtU2VsZWN0ZWREYXRlVmVydGljYWxCYXIgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0RHJhd2FibGUoCisgICAgICAgICAgICAgICAgICAgIFIuc3R5bGVhYmxlLkNhbGVuZGFyVmlld19zZWxlY3RlZERhdGVWZXJ0aWNhbEJhcik7CisKKyAgICAgICAgICAgIG1EYXRlVGV4dEFwcGVhcmFuY2VSZXNJZCA9IGF0dHJpYnV0ZXNBcnJheS5nZXRSZXNvdXJjZUlkKAorICAgICAgICAgICAgICAgICAgICBSLnN0eWxlYWJsZS5DYWxlbmRhclZpZXdfZGF0ZVRleHRBcHBlYXJhbmNlLCBSLnN0eWxlLlRleHRBcHBlYXJhbmNlX1NtYWxsKTsKKyAgICAgICAgICAgIHVwZGF0ZURhdGVUZXh0U2l6ZSgpOworCisgICAgICAgICAgICBtV2Vla0RheVRleHRBcHBlYXJhbmNlUmVzSWQgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0UmVzb3VyY2VJZCgKKyAgICAgICAgICAgICAgICAgICAgUi5zdHlsZWFibGUuQ2FsZW5kYXJWaWV3X3dlZWtEYXlUZXh0QXBwZWFyYW5jZSwKKyAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9XRUVLX0RBWV9URVhUX0FQUEVBUkFOQ0VfUkVTX0lEKTsKKyAgICAgICAgICAgIGF0dHJpYnV0ZXNBcnJheS5yZWN5Y2xlKCk7CisKKyAgICAgICAgICAgIERpc3BsYXlNZXRyaWNzIGRpc3BsYXlNZXRyaWNzID0gbURlbGVnYXRvci5nZXRSZXNvdXJjZXMoKS5nZXREaXNwbGF5TWV0cmljcygpOworICAgICAgICAgICAgbVdlZWtNaW5WaXNpYmxlSGVpZ2h0ID0gKGludCkgVHlwZWRWYWx1ZS5hcHBseURpbWVuc2lvbihUeXBlZFZhbHVlLkNPTVBMRVhfVU5JVF9ESVAsCisgICAgICAgICAgICAgICAgICAgIFVOU0NBTEVEX1dFRUtfTUlOX1ZJU0lCTEVfSEVJR0hULCBkaXNwbGF5TWV0cmljcyk7CisgICAgICAgICAgICBtTGlzdFNjcm9sbFRvcE9mZnNldCA9IChpbnQpIFR5cGVkVmFsdWUuYXBwbHlEaW1lbnNpb24oVHlwZWRWYWx1ZS5DT01QTEVYX1VOSVRfRElQLAorICAgICAgICAgICAgICAgICAgICBVTlNDQUxFRF9MSVNUX1NDUk9MTF9UT1BfT0ZGU0VULCBkaXNwbGF5TWV0cmljcyk7CisgICAgICAgICAgICBtQm90dG9tQnVmZmVyID0gKGludCkgVHlwZWRWYWx1ZS5hcHBseURpbWVuc2lvbihUeXBlZFZhbHVlLkNPTVBMRVhfVU5JVF9ESVAsCisgICAgICAgICAgICAgICAgICAgIFVOU0NBTEVEX0JPVFRPTV9CVUZGRVIsIGRpc3BsYXlNZXRyaWNzKTsKKyAgICAgICAgICAgIG1TZWxlY3RlZERhdGVWZXJ0aWNhbEJhcldpZHRoID0gKGludCkgVHlwZWRWYWx1ZS5hcHBseURpbWVuc2lvbihUeXBlZFZhbHVlLkNPTVBMRVhfVU5JVF9ESVAsCisgICAgICAgICAgICAgICAgICAgIFVOU0NBTEVEX1NFTEVDVEVEX0RBVEVfVkVSVElDQUxfQkFSX1dJRFRILCBkaXNwbGF5TWV0cmljcyk7CisgICAgICAgICAgICBtV2Vla1NlcGVyYXRvckxpbmVXaWR0aCA9IChpbnQpIFR5cGVkVmFsdWUuYXBwbHlEaW1lbnNpb24oVHlwZWRWYWx1ZS5DT01QTEVYX1VOSVRfRElQLAorICAgICAgICAgICAgICAgICAgICBVTlNDQUxFRF9XRUVLX1NFUEFSQVRPUl9MSU5FX1dJRFRILCBkaXNwbGF5TWV0cmljcyk7CisKKyAgICAgICAgICAgIExheW91dEluZmxhdGVyIGxheW91dEluZmxhdGVyID0gKExheW91dEluZmxhdGVyKSBtQ29udGV4dAorICAgICAgICAgICAgICAgICAgICAuZ2V0U3lzdGVtU2VydmljZShTZXJ2aWNlLkxBWU9VVF9JTkZMQVRFUl9TRVJWSUNFKTsKKyAgICAgICAgICAgIFZpZXcgY29udGVudCA9IGxheW91dEluZmxhdGVyLmluZmxhdGUoUi5sYXlvdXQuY2FsZW5kYXJfdmlldywgbnVsbCwgZmFsc2UpOworICAgICAgICAgICAgbURlbGVnYXRvci5hZGRWaWV3KGNvbnRlbnQpOworCisgICAgICAgICAgICBtTGlzdFZpZXcgPSAoTGlzdFZpZXcpIG1EZWxlZ2F0b3IuZmluZFZpZXdCeUlkKFIuaWQubGlzdCk7CisgICAgICAgICAgICBtRGF5TmFtZXNIZWFkZXIgPSAoVmlld0dyb3VwKSBjb250ZW50LmZpbmRWaWV3QnlJZChjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmlkLmRheV9uYW1lcyk7CisgICAgICAgICAgICBtTW9udGhOYW1lID0gKFRleHRWaWV3KSBjb250ZW50LmZpbmRWaWV3QnlJZChjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmlkLm1vbnRoX25hbWUpOworCisgICAgICAgICAgICBzZXRVcEhlYWRlcigpOworICAgICAgICAgICAgc2V0VXBMaXN0VmlldygpOworICAgICAgICAgICAgc2V0VXBBZGFwdGVyKCk7CisKKyAgICAgICAgICAgIC8vIGdvIHRvIHRvZGF5IG9yIHdoaWNoZXZlciBpcyBjbG9zZSB0byB0b2RheSBtaW4gb3IgbWF4IGRhdGUKKyAgICAgICAgICAgIG1UZW1wRGF0ZS5zZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgICAgICAgICAgaWYgKG1UZW1wRGF0ZS5iZWZvcmUobU1pbkRhdGUpKSB7CisgICAgICAgICAgICAgICAgZ29UbyhtTWluRGF0ZSwgZmFsc2UsIHRydWUsIHRydWUpOworICAgICAgICAgICAgfSBlbHNlIGlmIChtTWF4RGF0ZS5iZWZvcmUobVRlbXBEYXRlKSkgeworICAgICAgICAgICAgICAgIGdvVG8obU1heERhdGUsIGZhbHNlLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZ29UbyhtVGVtcERhdGUsIGZhbHNlLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbURlbGVnYXRvci5pbnZhbGlkYXRlKCk7CiAgICAgICAgIH0KIAotICAgICAgICBtQ3VycmVudExvY2FsZSA9IGxvY2FsZTsKLQotICAgICAgICBtVGVtcERhdGUgPSBnZXRDYWxlbmRhckZvckxvY2FsZShtVGVtcERhdGUsIGxvY2FsZSk7Ci0gICAgICAgIG1GaXJzdERheU9mTW9udGggPSBnZXRDYWxlbmRhckZvckxvY2FsZShtRmlyc3REYXlPZk1vbnRoLCBsb2NhbGUpOwotICAgICAgICBtTWluRGF0ZSA9IGdldENhbGVuZGFyRm9yTG9jYWxlKG1NaW5EYXRlLCBsb2NhbGUpOwotICAgICAgICBtTWF4RGF0ZSA9IGdldENhbGVuZGFyRm9yTG9jYWxlKG1NYXhEYXRlLCBsb2NhbGUpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEdldHMgYSBjYWxlbmRhciBmb3IgbG9jYWxlIGJvb3RzdHJhcHBlZCB3aXRoIHRoZSB2YWx1ZSBvZiBhIGdpdmVuIGNhbGVuZGFyLgotICAgICAqCi0gICAgICogQHBhcmFtIG9sZENhbGVuZGFyIFRoZSBvbGQgY2FsZW5kYXIuCi0gICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlLgotICAgICAqLwotICAgIHByaXZhdGUgQ2FsZW5kYXIgZ2V0Q2FsZW5kYXJGb3JMb2NhbGUoQ2FsZW5kYXIgb2xkQ2FsZW5kYXIsIExvY2FsZSBsb2NhbGUpIHsKLSAgICAgICAgaWYgKG9sZENhbGVuZGFyID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2NhbGUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZmluYWwgbG9uZyBjdXJyZW50VGltZU1pbGxpcyA9IG9sZENhbGVuZGFyLmdldFRpbWVJbk1pbGxpcygpOwotICAgICAgICAgICAgQ2FsZW5kYXIgbmV3Q2FsZW5kYXIgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2NhbGUpOwotICAgICAgICAgICAgbmV3Q2FsZW5kYXIuc2V0VGltZUluTWlsbGlzKGN1cnJlbnRUaW1lTWlsbGlzKTsKLSAgICAgICAgICAgIHJldHVybiBuZXdDYWxlbmRhcjsKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHNldFNob3duV2Vla0NvdW50KGludCBjb3VudCkgeworICAgICAgICAgICAgaWYgKG1TaG93bldlZWtDb3VudCAhPSBjb3VudCkgeworICAgICAgICAgICAgICAgIG1TaG93bldlZWtDb3VudCA9IGNvdW50OworICAgICAgICAgICAgICAgIG1EZWxlZ2F0b3IuaW52YWxpZGF0ZSgpOworICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgfQogCi0gICAgLyoqCi0gICAgICogQHJldHVybiBUcnVlIGlmIHRoZSA8Y29kZT5maXJzdERhdGU8L2NvZGU+IGlzIHRoZSBzYW1lIGFzIHRoZSA8Y29kZT4KLSAgICAgKiBzZWNvbmREYXRlPC9jb2RlPi4KLSAgICAgKi8KLSAgICBwcml2YXRlIGJvb2xlYW4gaXNTYW1lRGF0ZShDYWxlbmRhciBmaXJzdERhdGUsIENhbGVuZGFyIHNlY29uZERhdGUpIHsKLSAgICAgICAgcmV0dXJuIChmaXJzdERhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSA9PSBzZWNvbmREYXRlLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikKLSAgICAgICAgICAgICAgICAmJiBmaXJzdERhdGUuZ2V0KENhbGVuZGFyLllFQVIpID09IHNlY29uZERhdGUuZ2V0KENhbGVuZGFyLllFQVIpKTsKLSAgICB9CisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgaW50IGdldFNob3duV2Vla0NvdW50KCkgeworICAgICAgICAgICAgcmV0dXJuIG1TaG93bldlZWtDb3VudDsKKyAgICAgICAgfQogCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhIG5ldyBhZGFwdGVyIGlmIG5lY2Vzc2FyeSBhbmQgc2V0cyB1cCBpdHMgcGFyYW1ldGVycy4KLSAgICAgKi8KLSAgICBwcml2YXRlIHZvaWQgc2V0VXBBZGFwdGVyKCkgewotICAgICAgICBpZiAobUFkYXB0ZXIgPT0gbnVsbCkgewotICAgICAgICAgICAgbUFkYXB0ZXIgPSBuZXcgV2Vla3NBZGFwdGVyKCk7Ci0gICAgICAgICAgICBtQWRhcHRlci5yZWdpc3RlckRhdGFTZXRPYnNlcnZlcihuZXcgRGF0YVNldE9ic2VydmVyKCkgewotICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uQ2hhbmdlZCgpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1PbkRhdGVDaGFuZ2VMaXN0ZW5lciAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciBzZWxlY3RlZERheSA9IG1BZGFwdGVyLmdldFNlbGVjdGVkRGF5KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtT25EYXRlQ2hhbmdlTGlzdGVuZXIub25TZWxlY3RlZERheUNoYW5nZShDYWxlbmRhclZpZXcudGhpcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWREYXkuZ2V0KENhbGVuZGFyLllFQVIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZERheS5nZXQoQ2FsZW5kYXIuTU9OVEgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZERheS5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3RlZFdlZWtCYWNrZ3JvdW5kQ29sb3IoaW50IGNvbG9yKSB7CisgICAgICAgICAgICBpZiAobVNlbGVjdGVkV2Vla0JhY2tncm91bmRDb2xvciAhPSBjb2xvcikgeworICAgICAgICAgICAgICAgIG1TZWxlY3RlZFdlZWtCYWNrZ3JvdW5kQ29sb3IgPSBjb2xvcjsKKyAgICAgICAgICAgICAgICBmaW5hbCBpbnQgY2hpbGRDb3VudCA9IG1MaXN0Vmlldy5nZXRDaGlsZENvdW50KCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGlsZENvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgV2Vla1ZpZXcgd2Vla1ZpZXcgPSAoV2Vla1ZpZXcpIG1MaXN0Vmlldy5nZXRDaGlsZEF0KGkpOworICAgICAgICAgICAgICAgICAgICBpZiAod2Vla1ZpZXcubUhhc1NlbGVjdGVkRGF5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3ZWVrVmlldy5pbnZhbGlkYXRlKCk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIG1MaXN0Vmlldy5zZXRBZGFwdGVyKG1BZGFwdGVyKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIHJlZnJlc2ggdGhlIHZpZXcgd2l0aCB0aGUgbmV3IHBhcmFtZXRlcnMKLSAgICAgICAgbUFkYXB0ZXIubm90aWZ5RGF0YVNldENoYW5nZWQoKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBTZXRzIHVwIHRoZSBzdHJpbmdzIHRvIGJlIHVzZWQgYnkgdGhlIGhlYWRlci4KLSAgICAgKi8KLSAgICBwcml2YXRlIHZvaWQgc2V0VXBIZWFkZXIoKSB7Ci0gICAgICAgIGZpbmFsIFN0cmluZ1tdIHRpbnlXZWVrZGF5TmFtZXMgPSBMb2NhbGVEYXRhLmdldChMb2NhbGUuZ2V0RGVmYXVsdCgpKS50aW55V2Vla2RheU5hbWVzOwotICAgICAgICBtRGF5TGFiZWxzID0gbmV3IFN0cmluZ1ttRGF5c1BlcldlZWtdOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1EYXlzUGVyV2VlazsgaSsrKSB7Ci0gICAgICAgICAgICBmaW5hbCBpbnQgaiA9IGkgKyBtRmlyc3REYXlPZldlZWs7Ci0gICAgICAgICAgICBmaW5hbCBpbnQgY2FsZW5kYXJEYXkgPSAoaiA+IENhbGVuZGFyLlNBVFVSREFZKSA/IGogLSBDYWxlbmRhci5TQVRVUkRBWSA6IGo7Ci0gICAgICAgICAgICBtRGF5TGFiZWxzW2ldID0gdGlueVdlZWtkYXlOYW1lc1tjYWxlbmRhckRheV07Ci0gICAgICAgIH0KLSAgICAgICAgLy8gRGVhbCB3aXRoIHdlZWsgbnVtYmVyCi0gICAgICAgIFRleHRWaWV3IGxhYmVsID0gKFRleHRWaWV3KSBtRGF5TmFtZXNIZWFkZXIuZ2V0Q2hpbGRBdCgwKTsKLSAgICAgICAgaWYgKG1TaG93V2Vla051bWJlcikgewotICAgICAgICAgICAgbGFiZWwuc2V0VmlzaWJpbGl0eShWaWV3LlZJU0lCTEUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbGFiZWwuc2V0VmlzaWJpbGl0eShWaWV3LkdPTkUpOwotICAgICAgICB9Ci0gICAgICAgIC8vIERlYWwgd2l0aCBkYXkgbGFiZWxzCi0gICAgICAgIGZpbmFsIGludCBjb3VudCA9IG1EYXlOYW1lc0hlYWRlci5nZXRDaGlsZENvdW50KCk7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQgLSAxOyBpKyspIHsKLSAgICAgICAgICAgIGxhYmVsID0gKFRleHRWaWV3KSBtRGF5TmFtZXNIZWFkZXIuZ2V0Q2hpbGRBdChpICsgMSk7Ci0gICAgICAgICAgICBpZiAobVdlZWtEYXlUZXh0QXBwZWFyYW5jZVJlc0lkID4gLTEpIHsKLSAgICAgICAgICAgICAgICBsYWJlbC5zZXRUZXh0QXBwZWFyYW5jZShtQ29udGV4dCwgbVdlZWtEYXlUZXh0QXBwZWFyYW5jZVJlc0lkKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChpIDwgbURheXNQZXJXZWVrKSB7Ci0gICAgICAgICAgICAgICAgbGFiZWwuc2V0VGV4dChtRGF5TGFiZWxzW2ldKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgaW50IGdldFNlbGVjdGVkV2Vla0JhY2tncm91bmRDb2xvcigpIHsKKyAgICAgICAgICAgIHJldHVybiBtU2VsZWN0ZWRXZWVrQmFja2dyb3VuZENvbG9yOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHNldEZvY3VzZWRNb250aERhdGVDb2xvcihpbnQgY29sb3IpIHsKKyAgICAgICAgICAgIGlmIChtRm9jdXNlZE1vbnRoRGF0ZUNvbG9yICE9IGNvbG9yKSB7CisgICAgICAgICAgICAgICAgbUZvY3VzZWRNb250aERhdGVDb2xvciA9IGNvbG9yOworICAgICAgICAgICAgICAgIGZpbmFsIGludCBjaGlsZENvdW50ID0gbUxpc3RWaWV3LmdldENoaWxkQ291bnQoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoaWxkQ291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBXZWVrVmlldyB3ZWVrVmlldyA9IChXZWVrVmlldykgbUxpc3RWaWV3LmdldENoaWxkQXQoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh3ZWVrVmlldy5tSGFzRm9jdXNlZERheSkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2Vla1ZpZXcuaW52YWxpZGF0ZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Rm9jdXNlZE1vbnRoRGF0ZUNvbG9yKCkgeworICAgICAgICAgICAgcmV0dXJuIG1Gb2N1c2VkTW9udGhEYXRlQ29sb3I7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgc2V0VW5mb2N1c2VkTW9udGhEYXRlQ29sb3IoaW50IGNvbG9yKSB7CisgICAgICAgICAgICBpZiAobVVuZm9jdXNlZE1vbnRoRGF0ZUNvbG9yICE9IGNvbG9yKSB7CisgICAgICAgICAgICAgICAgbVVuZm9jdXNlZE1vbnRoRGF0ZUNvbG9yID0gY29sb3I7CisgICAgICAgICAgICAgICAgZmluYWwgaW50IGNoaWxkQ291bnQgPSBtTGlzdFZpZXcuZ2V0Q2hpbGRDb3VudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRDb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFdlZWtWaWV3IHdlZWtWaWV3ID0gKFdlZWtWaWV3KSBtTGlzdFZpZXcuZ2V0Q2hpbGRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdlZWtWaWV3Lm1IYXNVbmZvY3VzZWREYXkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdlZWtWaWV3LmludmFsaWRhdGUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgaW50IGdldFVuZm9jdXNlZE1vbnRoRGF0ZUNvbG9yKCkgeworICAgICAgICAgICAgcmV0dXJuIG1Gb2N1c2VkTW9udGhEYXRlQ29sb3I7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgc2V0V2Vla051bWJlckNvbG9yKGludCBjb2xvcikgeworICAgICAgICAgICAgaWYgKG1XZWVrTnVtYmVyQ29sb3IgIT0gY29sb3IpIHsKKyAgICAgICAgICAgICAgICBtV2Vla051bWJlckNvbG9yID0gY29sb3I7CisgICAgICAgICAgICAgICAgaWYgKG1TaG93V2Vla051bWJlcikgeworICAgICAgICAgICAgICAgICAgICBpbnZhbGlkYXRlQWxsV2Vla1ZpZXdzKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0V2Vla051bWJlckNvbG9yKCkgeworICAgICAgICAgICAgcmV0dXJuIG1XZWVrTnVtYmVyQ29sb3I7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgc2V0V2Vla1NlcGFyYXRvckxpbmVDb2xvcihpbnQgY29sb3IpIHsKKyAgICAgICAgICAgIGlmIChtV2Vla1NlcGFyYXRvckxpbmVDb2xvciAhPSBjb2xvcikgeworICAgICAgICAgICAgICAgIG1XZWVrU2VwYXJhdG9yTGluZUNvbG9yID0gY29sb3I7CisgICAgICAgICAgICAgICAgaW52YWxpZGF0ZUFsbFdlZWtWaWV3cygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0V2Vla1NlcGFyYXRvckxpbmVDb2xvcigpIHsKKyAgICAgICAgICAgIHJldHVybiBtV2Vla1NlcGFyYXRvckxpbmVDb2xvcjsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3RlZERhdGVWZXJ0aWNhbEJhcihpbnQgcmVzb3VyY2VJZCkgeworICAgICAgICAgICAgRHJhd2FibGUgZHJhd2FibGUgPSBtRGVsZWdhdG9yLmdldFJlc291cmNlcygpLmdldERyYXdhYmxlKHJlc291cmNlSWQpOworICAgICAgICAgICAgc2V0U2VsZWN0ZWREYXRlVmVydGljYWxCYXIoZHJhd2FibGUpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGVkRGF0ZVZlcnRpY2FsQmFyKERyYXdhYmxlIGRyYXdhYmxlKSB7CisgICAgICAgICAgICBpZiAobVNlbGVjdGVkRGF0ZVZlcnRpY2FsQmFyICE9IGRyYXdhYmxlKSB7CisgICAgICAgICAgICAgICAgbVNlbGVjdGVkRGF0ZVZlcnRpY2FsQmFyID0gZHJhd2FibGU7CisgICAgICAgICAgICAgICAgZmluYWwgaW50IGNoaWxkQ291bnQgPSBtTGlzdFZpZXcuZ2V0Q2hpbGRDb3VudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRDb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFdlZWtWaWV3IHdlZWtWaWV3ID0gKFdlZWtWaWV3KSBtTGlzdFZpZXcuZ2V0Q2hpbGRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdlZWtWaWV3Lm1IYXNTZWxlY3RlZERheSkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2Vla1ZpZXcuaW52YWxpZGF0ZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBEcmF3YWJsZSBnZXRTZWxlY3RlZERhdGVWZXJ0aWNhbEJhcigpIHsKKyAgICAgICAgICAgIHJldHVybiBtU2VsZWN0ZWREYXRlVmVydGljYWxCYXI7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgc2V0V2Vla0RheVRleHRBcHBlYXJhbmNlKGludCByZXNvdXJjZUlkKSB7CisgICAgICAgICAgICBpZiAobVdlZWtEYXlUZXh0QXBwZWFyYW5jZVJlc0lkICE9IHJlc291cmNlSWQpIHsKKyAgICAgICAgICAgICAgICBtV2Vla0RheVRleHRBcHBlYXJhbmNlUmVzSWQgPSByZXNvdXJjZUlkOworICAgICAgICAgICAgICAgIHNldFVwSGVhZGVyKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIGludCBnZXRXZWVrRGF5VGV4dEFwcGVhcmFuY2UoKSB7CisgICAgICAgICAgICByZXR1cm4gbVdlZWtEYXlUZXh0QXBwZWFyYW5jZVJlc0lkOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHNldERhdGVUZXh0QXBwZWFyYW5jZShpbnQgcmVzb3VyY2VJZCkgeworICAgICAgICAgICAgaWYgKG1EYXRlVGV4dEFwcGVhcmFuY2VSZXNJZCAhPSByZXNvdXJjZUlkKSB7CisgICAgICAgICAgICAgICAgbURhdGVUZXh0QXBwZWFyYW5jZVJlc0lkID0gcmVzb3VyY2VJZDsKKyAgICAgICAgICAgICAgICB1cGRhdGVEYXRlVGV4dFNpemUoKTsKKyAgICAgICAgICAgICAgICBpbnZhbGlkYXRlQWxsV2Vla1ZpZXdzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIGludCBnZXREYXRlVGV4dEFwcGVhcmFuY2UoKSB7CisgICAgICAgICAgICByZXR1cm4gbURhdGVUZXh0QXBwZWFyYW5jZVJlc0lkOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHNldEVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKSB7CisgICAgICAgICAgICBtTGlzdFZpZXcuc2V0RW5hYmxlZChlbmFibGVkKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0VuYWJsZWQoKSB7CisgICAgICAgICAgICByZXR1cm4gbUxpc3RWaWV3LmlzRW5hYmxlZCgpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHNldE1pbkRhdGUobG9uZyBtaW5EYXRlKSB7CisgICAgICAgICAgICBtVGVtcERhdGUuc2V0VGltZUluTWlsbGlzKG1pbkRhdGUpOworICAgICAgICAgICAgaWYgKGlzU2FtZURhdGUobVRlbXBEYXRlLCBtTWluRGF0ZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtTWluRGF0ZS5zZXRUaW1lSW5NaWxsaXMobWluRGF0ZSk7CisgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlIGN1cnJlbnQgZGF0ZSBpcyBub3QgZWFybGllciB0aGFuCisgICAgICAgICAgICAvLyB0aGUgbmV3IG1pbiBkYXRlIHNpbmNlIHRoZSBsYXR0ZXIgaXMgdXNlZCBmb3IKKyAgICAgICAgICAgIC8vIGNhbGN1bGF0aW5nIHRoZSBpbmRpY2VzIGluIHRoZSBhZGFwdGVyIHRodXMKKyAgICAgICAgICAgIC8vIGF2b2lkaW5nIG91dCBvZiBib3VuZHMgZXJyb3IKKyAgICAgICAgICAgIENhbGVuZGFyIGRhdGUgPSBtQWRhcHRlci5tU2VsZWN0ZWREYXRlOworICAgICAgICAgICAgaWYgKGRhdGUuYmVmb3JlKG1NaW5EYXRlKSkgeworICAgICAgICAgICAgICAgIG1BZGFwdGVyLnNldFNlbGVjdGVkRGF5KG1NaW5EYXRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHJlaW5pdGlhbGl6ZSB0aGUgYWRhcHRlciBzaW5jZSBpdHMgcmFuZ2UgZGVwZW5kcyBvbiBtaW4gZGF0ZQorICAgICAgICAgICAgbUFkYXB0ZXIuaW5pdCgpOworICAgICAgICAgICAgaWYgKGRhdGUuYmVmb3JlKG1NaW5EYXRlKSkgeworICAgICAgICAgICAgICAgIHNldERhdGUobVRlbXBEYXRlLmdldFRpbWVJbk1pbGxpcygpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gd2UgZ28gdG8gdGhlIGN1cnJlbnQgZGF0ZSB0byBmb3JjZSB0aGUgTGlzdFZpZXcgdG8gcXVlcnkgaXRzCisgICAgICAgICAgICAgICAgLy8gYWRhcHRlciBmb3IgdGhlIHNob3duIHZpZXdzIHNpbmNlIHdlIGhhdmUgY2hhbmdlZCB0aGUgYWRhcHRlcgorICAgICAgICAgICAgICAgIC8vIHJhbmdlIGFuZCB0aGUgYmFzZSBmcm9tIHdoaWNoIHRoZSBsYXRlciBjYWxjdWxhdGVzIGl0ZW0gaW5kaWNlcworICAgICAgICAgICAgICAgIC8vIG5vdGUgdGhhdCBjYWxsaW5nIHNldERhdGUgd2lsbCBub3Qgd29yayBzaW5jZSB0aGUgZGF0ZSBpcyB0aGUgc2FtZQorICAgICAgICAgICAgICAgIGdvVG8oZGF0ZSwgZmFsc2UsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgbG9uZyBnZXRNaW5EYXRlKCkgeworICAgICAgICAgICAgcmV0dXJuIG1NaW5EYXRlLmdldFRpbWVJbk1pbGxpcygpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHNldE1heERhdGUobG9uZyBtYXhEYXRlKSB7CisgICAgICAgICAgICBtVGVtcERhdGUuc2V0VGltZUluTWlsbGlzKG1heERhdGUpOworICAgICAgICAgICAgaWYgKGlzU2FtZURhdGUobVRlbXBEYXRlLCBtTWF4RGF0ZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtTWF4RGF0ZS5zZXRUaW1lSW5NaWxsaXMobWF4RGF0ZSk7CisgICAgICAgICAgICAvLyByZWluaXRpYWxpemUgdGhlIGFkYXB0ZXIgc2luY2UgaXRzIHJhbmdlIGRlcGVuZHMgb24gbWF4IGRhdGUKKyAgICAgICAgICAgIG1BZGFwdGVyLmluaXQoKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGRhdGUgPSBtQWRhcHRlci5tU2VsZWN0ZWREYXRlOworICAgICAgICAgICAgaWYgKGRhdGUuYWZ0ZXIobU1heERhdGUpKSB7CisgICAgICAgICAgICAgICAgc2V0RGF0ZShtTWF4RGF0ZS5nZXRUaW1lSW5NaWxsaXMoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIHdlIGdvIHRvIHRoZSBjdXJyZW50IGRhdGUgdG8gZm9yY2UgdGhlIExpc3RWaWV3IHRvIHF1ZXJ5IGl0cworICAgICAgICAgICAgICAgIC8vIGFkYXB0ZXIgZm9yIHRoZSBzaG93biB2aWV3cyBzaW5jZSB3ZSBoYXZlIGNoYW5nZWQgdGhlIGFkYXB0ZXIKKyAgICAgICAgICAgICAgICAvLyByYW5nZSBhbmQgdGhlIGJhc2UgZnJvbSB3aGljaCB0aGUgbGF0ZXIgY2FsY3VsYXRlcyBpdGVtIGluZGljZXMKKyAgICAgICAgICAgICAgICAvLyBub3RlIHRoYXQgY2FsbGluZyBzZXREYXRlIHdpbGwgbm90IHdvcmsgc2luY2UgdGhlIGRhdGUgaXMgdGhlIHNhbWUKKyAgICAgICAgICAgICAgICBnb1RvKGRhdGUsIGZhbHNlLCB0cnVlLCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIGxvbmcgZ2V0TWF4RGF0ZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBtTWF4RGF0ZS5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBzZXRTaG93V2Vla051bWJlcihib29sZWFuIHNob3dXZWVrTnVtYmVyKSB7CisgICAgICAgICAgICBpZiAobVNob3dXZWVrTnVtYmVyID09IHNob3dXZWVrTnVtYmVyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbVNob3dXZWVrTnVtYmVyID0gc2hvd1dlZWtOdW1iZXI7CisgICAgICAgICAgICBtQWRhcHRlci5ub3RpZnlEYXRhU2V0Q2hhbmdlZCgpOworICAgICAgICAgICAgc2V0VXBIZWFkZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBnZXRTaG93V2Vla051bWJlcigpIHsKKyAgICAgICAgICAgIHJldHVybiBtU2hvd1dlZWtOdW1iZXI7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgc2V0Rmlyc3REYXlPZldlZWsoaW50IGZpcnN0RGF5T2ZXZWVrKSB7CisgICAgICAgICAgICBpZiAobUZpcnN0RGF5T2ZXZWVrID09IGZpcnN0RGF5T2ZXZWVrKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbUZpcnN0RGF5T2ZXZWVrID0gZmlyc3REYXlPZldlZWs7CisgICAgICAgICAgICBtQWRhcHRlci5pbml0KCk7CisgICAgICAgICAgICBtQWRhcHRlci5ub3RpZnlEYXRhU2V0Q2hhbmdlZCgpOworICAgICAgICAgICAgc2V0VXBIZWFkZXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgaW50IGdldEZpcnN0RGF5T2ZXZWVrKCkgeworICAgICAgICAgICAgcmV0dXJuIG1GaXJzdERheU9mV2VlazsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBzZXREYXRlKGxvbmcgZGF0ZSkgeworICAgICAgICAgICAgc2V0RGF0ZShkYXRlLCBmYWxzZSwgZmFsc2UpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHNldERhdGUobG9uZyBkYXRlLCBib29sZWFuIGFuaW1hdGUsIGJvb2xlYW4gY2VudGVyKSB7CisgICAgICAgICAgICBtVGVtcERhdGUuc2V0VGltZUluTWlsbGlzKGRhdGUpOworICAgICAgICAgICAgaWYgKGlzU2FtZURhdGUobVRlbXBEYXRlLCBtQWRhcHRlci5tU2VsZWN0ZWREYXRlKSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdvVG8obVRlbXBEYXRlLCBhbmltYXRlLCB0cnVlLCBjZW50ZXIpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBsb25nIGdldERhdGUoKSB7CisgICAgICAgICAgICByZXR1cm4gbUFkYXB0ZXIubVNlbGVjdGVkRGF0ZS5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBzZXRPbkRhdGVDaGFuZ2VMaXN0ZW5lcihPbkRhdGVDaGFuZ2VMaXN0ZW5lciBsaXN0ZW5lcikgeworICAgICAgICAgICAgbU9uRGF0ZUNoYW5nZUxpc3RlbmVyID0gbGlzdGVuZXI7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgb25Db25maWd1cmF0aW9uQ2hhbmdlZChDb25maWd1cmF0aW9uIG5ld0NvbmZpZykgeworICAgICAgICAgICAgc2V0Q3VycmVudExvY2FsZShuZXdDb25maWcubG9jYWxlKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBvbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5RXZlbnQoQWNjZXNzaWJpbGl0eUV2ZW50IGV2ZW50KSB7CisgICAgICAgICAgICBldmVudC5zZXRDbGFzc05hbWUoQ2FsZW5kYXJWaWV3LmNsYXNzLmdldE5hbWUoKSk7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgb25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eU5vZGVJbmZvKEFjY2Vzc2liaWxpdHlOb2RlSW5mbyBpbmZvKSB7CisgICAgICAgICAgICBpbmZvLnNldENsYXNzTmFtZShDYWxlbmRhclZpZXcuY2xhc3MuZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGxvY2FsZS4KKyAgICAgICAgICoKKyAgICAgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgY3VycmVudCBsb2NhbGUuCisgICAgICAgICAqLworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgc2V0Q3VycmVudExvY2FsZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICBzdXBlci5zZXRDdXJyZW50TG9jYWxlKGxvY2FsZSk7CisKKyAgICAgICAgICAgIG1UZW1wRGF0ZSA9IGdldENhbGVuZGFyRm9yTG9jYWxlKG1UZW1wRGF0ZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIG1GaXJzdERheU9mTW9udGggPSBnZXRDYWxlbmRhckZvckxvY2FsZShtRmlyc3REYXlPZk1vbnRoLCBsb2NhbGUpOworICAgICAgICAgICAgbU1pbkRhdGUgPSBnZXRDYWxlbmRhckZvckxvY2FsZShtTWluRGF0ZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIG1NYXhEYXRlID0gZ2V0Q2FsZW5kYXJGb3JMb2NhbGUobU1heERhdGUsIGxvY2FsZSk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZURhdGVUZXh0U2l6ZSgpIHsKKyAgICAgICAgICAgIFR5cGVkQXJyYXkgZGF0ZVRleHRBcHBlYXJhbmNlID0gbURlbGVnYXRvci5nZXRDb250ZXh0KCkub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICAgICAgbURhdGVUZXh0QXBwZWFyYW5jZVJlc0lkLCBSLnN0eWxlYWJsZS5UZXh0QXBwZWFyYW5jZSk7CisgICAgICAgICAgICBtRGF0ZVRleHRTaXplID0gZGF0ZVRleHRBcHBlYXJhbmNlLmdldERpbWVuc2lvblBpeGVsU2l6ZSgKKyAgICAgICAgICAgICAgICAgICAgUi5zdHlsZWFibGUuVGV4dEFwcGVhcmFuY2VfdGV4dFNpemUsIERFRkFVTFRfREFURV9URVhUX1NJWkUpOworICAgICAgICAgICAgZGF0ZVRleHRBcHBlYXJhbmNlLnJlY3ljbGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbnZhbGlkYXRlcyBhbGwgd2VlayB2aWV3cy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBpbnZhbGlkYXRlQWxsV2Vla1ZpZXdzKCkgeworICAgICAgICAgICAgZmluYWwgaW50IGNoaWxkQ291bnQgPSBtTGlzdFZpZXcuZ2V0Q2hpbGRDb3VudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGlsZENvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBWaWV3IHZpZXcgPSBtTGlzdFZpZXcuZ2V0Q2hpbGRBdChpKTsKKyAgICAgICAgICAgICAgICB2aWV3LmludmFsaWRhdGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXRzIGEgY2FsZW5kYXIgZm9yIGxvY2FsZSBib290c3RyYXBwZWQgd2l0aCB0aGUgdmFsdWUgb2YgYSBnaXZlbiBjYWxlbmRhci4KKyAgICAgICAgICoKKyAgICAgICAgICogQHBhcmFtIG9sZENhbGVuZGFyIFRoZSBvbGQgY2FsZW5kYXIuCisgICAgICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgc3RhdGljIENhbGVuZGFyIGdldENhbGVuZGFyRm9yTG9jYWxlKENhbGVuZGFyIG9sZENhbGVuZGFyLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICBpZiAob2xkQ2FsZW5kYXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmaW5hbCBsb25nIGN1cnJlbnRUaW1lTWlsbGlzID0gb2xkQ2FsZW5kYXIuZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIgbmV3Q2FsZW5kYXIgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICAgICAgICAgIG5ld0NhbGVuZGFyLnNldFRpbWVJbk1pbGxpcyhjdXJyZW50VGltZU1pbGxpcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ld0NhbGVuZGFyOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGUgPGNvZGU+Zmlyc3REYXRlPC9jb2RlPiBpcyB0aGUgc2FtZSBhcyB0aGUgPGNvZGU+CisgICAgICAgICAqIHNlY29uZERhdGU8L2NvZGU+LgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc1NhbWVEYXRlKENhbGVuZGFyIGZpcnN0RGF0ZSwgQ2FsZW5kYXIgc2Vjb25kRGF0ZSkgeworICAgICAgICAgICAgcmV0dXJuIChmaXJzdERhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSA9PSBzZWNvbmREYXRlLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikKKyAgICAgICAgICAgICAgICAgICAgJiYgZmlyc3REYXRlLmdldChDYWxlbmRhci5ZRUFSKSA9PSBzZWNvbmREYXRlLmdldChDYWxlbmRhci5ZRUFSKSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ3JlYXRlcyBhIG5ldyBhZGFwdGVyIGlmIG5lY2Vzc2FyeSBhbmQgc2V0cyB1cCBpdHMgcGFyYW1ldGVycy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBzZXRVcEFkYXB0ZXIoKSB7CisgICAgICAgICAgICBpZiAobUFkYXB0ZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1BZGFwdGVyID0gbmV3IFdlZWtzQWRhcHRlcihtQ29udGV4dCk7CisgICAgICAgICAgICAgICAgbUFkYXB0ZXIucmVnaXN0ZXJEYXRhU2V0T2JzZXJ2ZXIobmV3IERhdGFTZXRPYnNlcnZlcigpIHsKKyAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uQ2hhbmdlZCgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtT25EYXRlQ2hhbmdlTGlzdGVuZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyIHNlbGVjdGVkRGF5ID0gbUFkYXB0ZXIuZ2V0U2VsZWN0ZWREYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtT25EYXRlQ2hhbmdlTGlzdGVuZXIub25TZWxlY3RlZERheUNoYW5nZShtRGVsZWdhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWREYXkuZ2V0KENhbGVuZGFyLllFQVIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWREYXkuZ2V0KENhbGVuZGFyLk1PTlRIKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkRGF5LmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIG1MaXN0Vmlldy5zZXRBZGFwdGVyKG1BZGFwdGVyKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gcmVmcmVzaCB0aGUgdmlldyB3aXRoIHRoZSBuZXcgcGFyYW1ldGVycworICAgICAgICAgICAgbUFkYXB0ZXIubm90aWZ5RGF0YVNldENoYW5nZWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXRzIHVwIHRoZSBzdHJpbmdzIHRvIGJlIHVzZWQgYnkgdGhlIGhlYWRlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBzZXRVcEhlYWRlcigpIHsKKyAgICAgICAgICAgIG1EYXlMYWJlbHMgPSBuZXcgU3RyaW5nW21EYXlzUGVyV2Vla107CisgICAgICAgICAgICBmb3IgKGludCBpID0gbUZpcnN0RGF5T2ZXZWVrLCBjb3VudCA9IG1GaXJzdERheU9mV2VlayArIG1EYXlzUGVyV2VlazsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpbnQgY2FsZW5kYXJEYXkgPSAoaSA+IENhbGVuZGFyLlNBVFVSREFZKSA/IGkgLSBDYWxlbmRhci5TQVRVUkRBWSA6IGk7CisgICAgICAgICAgICAgICAgbURheUxhYmVsc1tpIC0gbUZpcnN0RGF5T2ZXZWVrXSA9IERhdGVVdGlscy5nZXREYXlPZldlZWtTdHJpbmcoY2FsZW5kYXJEYXksCisgICAgICAgICAgICAgICAgICAgICAgICBEYXRlVXRpbHMuTEVOR1RIX1NIT1JURVNUKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgVGV4dFZpZXcgbGFiZWwgPSAoVGV4dFZpZXcpIG1EYXlOYW1lc0hlYWRlci5nZXRDaGlsZEF0KDApOworICAgICAgICAgICAgaWYgKG1TaG93V2Vla051bWJlcikgewogICAgICAgICAgICAgICAgIGxhYmVsLnNldFZpc2liaWxpdHkoVmlldy5WSVNJQkxFKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgbGFiZWwuc2V0VmlzaWJpbGl0eShWaWV3LkdPTkUpOwogICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIG1EYXlOYW1lc0hlYWRlci5pbnZhbGlkYXRlKCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogU2V0cyBhbGwgdGhlIHJlcXVpcmVkIGZpZWxkcyBmb3IgdGhlIGxpc3Qgdmlldy4KLSAgICAgKi8KLSAgICBwcml2YXRlIHZvaWQgc2V0VXBMaXN0VmlldygpIHsKLSAgICAgICAgLy8gQ29uZmlndXJlIHRoZSBsaXN0dmlldwotICAgICAgICBtTGlzdFZpZXcuc2V0RGl2aWRlcihudWxsKTsKLSAgICAgICAgbUxpc3RWaWV3LnNldEl0ZW1zQ2FuRm9jdXModHJ1ZSk7Ci0gICAgICAgIG1MaXN0Vmlldy5zZXRWZXJ0aWNhbFNjcm9sbEJhckVuYWJsZWQoZmFsc2UpOwotICAgICAgICBtTGlzdFZpZXcuc2V0T25TY3JvbGxMaXN0ZW5lcihuZXcgT25TY3JvbGxMaXN0ZW5lcigpIHsKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uU2Nyb2xsU3RhdGVDaGFuZ2VkKEFic0xpc3RWaWV3IHZpZXcsIGludCBzY3JvbGxTdGF0ZSkgewotICAgICAgICAgICAgICAgIENhbGVuZGFyVmlldy50aGlzLm9uU2Nyb2xsU3RhdGVDaGFuZ2VkKHZpZXcsIHNjcm9sbFN0YXRlKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxLCBjb3VudCA9IG1EYXlOYW1lc0hlYWRlci5nZXRDaGlsZENvdW50KCk7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgbGFiZWwgPSAoVGV4dFZpZXcpIG1EYXlOYW1lc0hlYWRlci5nZXRDaGlsZEF0KGkpOworICAgICAgICAgICAgICAgIGlmIChtV2Vla0RheVRleHRBcHBlYXJhbmNlUmVzSWQgPiAtMSkgeworICAgICAgICAgICAgICAgICAgICBsYWJlbC5zZXRUZXh0QXBwZWFyYW5jZShtQ29udGV4dCwgbVdlZWtEYXlUZXh0QXBwZWFyYW5jZVJlc0lkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGkgPCBtRGF5c1BlcldlZWsgKyAxKSB7CisgICAgICAgICAgICAgICAgICAgIGxhYmVsLnNldFRleHQobURheUxhYmVsc1tpIC0gMV0pOworICAgICAgICAgICAgICAgICAgICBsYWJlbC5zZXRWaXNpYmlsaXR5KFZpZXcuVklTSUJMRSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbGFiZWwuc2V0VmlzaWJpbGl0eShWaWV3LkdPTkUpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcHVibGljIHZvaWQgb25TY3JvbGwoCi0gICAgICAgICAgICAgICAgICAgIEFic0xpc3RWaWV3IHZpZXcsIGludCBmaXJzdFZpc2libGVJdGVtLCBpbnQgdmlzaWJsZUl0ZW1Db3VudCwKLSAgICAgICAgICAgICAgICAgICAgaW50IHRvdGFsSXRlbUNvdW50KSB7Ci0gICAgICAgICAgICAgICAgQ2FsZW5kYXJWaWV3LnRoaXMub25TY3JvbGwodmlldywgZmlyc3RWaXNpYmxlSXRlbSwgdmlzaWJsZUl0ZW1Db3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsSXRlbUNvdW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIC8vIE1ha2UgdGhlIHNjcm9sbGluZyBiZWhhdmlvciBuaWNlcgotICAgICAgICBtTGlzdFZpZXcuc2V0RnJpY3Rpb24obUZyaWN0aW9uKTsKLSAgICAgICAgbUxpc3RWaWV3LnNldFZlbG9jaXR5U2NhbGUobVZlbG9jaXR5U2NhbGUpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFRoaXMgbW92ZXMgdG8gdGhlIHNwZWNpZmllZCB0aW1lIGluIHRoZSB2aWV3LiBJZiB0aGUgdGltZSBpcyBub3QgYWxyZWFkeQotICAgICAqIGluIHJhbmdlIGl0IHdpbGwgbW92ZSB0aGUgbGlzdCBzbyB0aGF0IHRoZSBmaXJzdCBvZiB0aGUgbW9udGggY29udGFpbmluZwotICAgICAqIHRoZSB0aW1lIGlzIGF0IHRoZSB0b3Agb2YgdGhlIHZpZXcuIElmIHRoZSBuZXcgdGltZSBpcyBhbHJlYWR5IGluIHZpZXcKLSAgICAgKiB0aGUgbGlzdCB3aWxsIG5vdCBiZSBzY3JvbGxlZCB1bmxlc3MgZm9yY2VTY3JvbGwgaXMgdHJ1ZS4gVGhpcyB0aW1lIG1heQotICAgICAqIG9wdGlvbmFsbHkgYmUgaGlnaGxpZ2h0ZWQgYXMgc2VsZWN0ZWQgYXMgd2VsbC4KLSAgICAgKgotICAgICAqIEBwYXJhbSBkYXRlIFRoZSB0aW1lIHRvIG1vdmUgdG8uCi0gICAgICogQHBhcmFtIGFuaW1hdGUgV2hldGhlciB0byBzY3JvbGwgdG8gdGhlIGdpdmVuIHRpbWUgb3IganVzdCByZWRyYXcgYXQgdGhlCi0gICAgICogICAgICAgICAgICBuZXcgbG9jYXRpb24uCi0gICAgICogQHBhcmFtIHNldFNlbGVjdGVkIFdoZXRoZXIgdG8gc2V0IHRoZSBnaXZlbiB0aW1lIGFzIHNlbGVjdGVkLgotICAgICAqIEBwYXJhbSBmb3JjZVNjcm9sbCBXaGV0aGVyIHRvIHJlY2VudGVyIGV2ZW4gaWYgdGhlIHRpbWUgaXMgYWxyZWFkeQotICAgICAqICAgICAgICAgICAgdmlzaWJsZS4KLSAgICAgKgotICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIG9mIHRoZSBwcm92aWRlZCBkYXRlIGlzIGJlZm9yZSB0aGUKLSAgICAgKiAgICAgICAgcmFuZ2Ugc3RhcnQgb2YgYWZ0ZXIgdGhlIHJhbmdlIGVuZC4KLSAgICAgKi8KLSAgICBwcml2YXRlIHZvaWQgZ29UbyhDYWxlbmRhciBkYXRlLCBib29sZWFuIGFuaW1hdGUsIGJvb2xlYW4gc2V0U2VsZWN0ZWQsIGJvb2xlYW4gZm9yY2VTY3JvbGwpIHsKLSAgICAgICAgaWYgKGRhdGUuYmVmb3JlKG1NaW5EYXRlKSB8fCBkYXRlLmFmdGVyKG1NYXhEYXRlKSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVGltZSBub3QgYmV0d2VlbiAiICsgbU1pbkRhdGUuZ2V0VGltZSgpCi0gICAgICAgICAgICAgICAgICAgICsgIiBhbmQgIiArIG1NYXhEYXRlLmdldFRpbWUoKSk7CisgICAgICAgICAgICBtRGF5TmFtZXNIZWFkZXIuaW52YWxpZGF0ZSgpOwogICAgICAgICB9Ci0gICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IGFuZCBsYXN0IGVudGlyZWx5IHZpc2libGUgd2Vla3MKLSAgICAgICAgaW50IGZpcnN0RnVsbHlWaXNpYmxlUG9zaXRpb24gPSBtTGlzdFZpZXcuZ2V0Rmlyc3RWaXNpYmxlUG9zaXRpb24oKTsKLSAgICAgICAgVmlldyBmaXJzdENoaWxkID0gbUxpc3RWaWV3LmdldENoaWxkQXQoMCk7Ci0gICAgICAgIGlmIChmaXJzdENoaWxkICE9IG51bGwgJiYgZmlyc3RDaGlsZC5nZXRUb3AoKSA8IDApIHsKLSAgICAgICAgICAgIGZpcnN0RnVsbHlWaXNpYmxlUG9zaXRpb24rKzsKLSAgICAgICAgfQotICAgICAgICBpbnQgbGFzdEZ1bGx5VmlzaWJsZVBvc2l0aW9uID0gZmlyc3RGdWxseVZpc2libGVQb3NpdGlvbiArIG1TaG93bldlZWtDb3VudCAtIDE7Ci0gICAgICAgIGlmIChmaXJzdENoaWxkICE9IG51bGwgJiYgZmlyc3RDaGlsZC5nZXRUb3AoKSA+IG1Cb3R0b21CdWZmZXIpIHsKLSAgICAgICAgICAgIGxhc3RGdWxseVZpc2libGVQb3NpdGlvbi0tOwotICAgICAgICB9Ci0gICAgICAgIGlmIChzZXRTZWxlY3RlZCkgewotICAgICAgICAgICAgbUFkYXB0ZXIuc2V0U2VsZWN0ZWREYXkoZGF0ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gR2V0IHRoZSB3ZWVrIHdlJ3JlIGdvaW5nIHRvCi0gICAgICAgIGludCBwb3NpdGlvbiA9IGdldFdlZWtzU2luY2VNaW5EYXRlKGRhdGUpOwotCi0gICAgICAgIC8vIENoZWNrIGlmIHRoZSBzZWxlY3RlZCBkYXkgaXMgbm93IG91dHNpZGUgb2Ygb3VyIHZpc2libGUgcmFuZ2UKLSAgICAgICAgLy8gYW5kIGlmIHNvIHNjcm9sbCB0byB0aGUgbW9udGggdGhhdCBjb250YWlucyBpdAotICAgICAgICBpZiAocG9zaXRpb24gPCBmaXJzdEZ1bGx5VmlzaWJsZVBvc2l0aW9uIHx8IHBvc2l0aW9uID4gbGFzdEZ1bGx5VmlzaWJsZVBvc2l0aW9uCi0gICAgICAgICAgICAgICAgfHwgZm9yY2VTY3JvbGwpIHsKLSAgICAgICAgICAgIG1GaXJzdERheU9mTW9udGguc2V0VGltZUluTWlsbGlzKGRhdGUuZ2V0VGltZUluTWlsbGlzKCkpOwotICAgICAgICAgICAgbUZpcnN0RGF5T2ZNb250aC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKLQotICAgICAgICAgICAgc2V0TW9udGhEaXNwbGF5ZWQobUZpcnN0RGF5T2ZNb250aCk7Ci0KLSAgICAgICAgICAgIC8vIHRoZSBlYXJsaWVzdCB0aW1lIHdlIGNhbiBzY3JvbGwgdG8gaXMgdGhlIG1pbiBkYXRlCi0gICAgICAgICAgICBpZiAobUZpcnN0RGF5T2ZNb250aC5iZWZvcmUobU1pbkRhdGUpKSB7Ci0gICAgICAgICAgICAgICAgcG9zaXRpb24gPSAwOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IGdldFdlZWtzU2luY2VNaW5EYXRlKG1GaXJzdERheU9mTW9udGgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBtUHJldmlvdXNTY3JvbGxTdGF0ZSA9IE9uU2Nyb2xsTGlzdGVuZXIuU0NST0xMX1NUQVRFX0ZMSU5HOwotICAgICAgICAgICAgaWYgKGFuaW1hdGUpIHsKLSAgICAgICAgICAgICAgICBtTGlzdFZpZXcuc21vb3RoU2Nyb2xsVG9Qb3NpdGlvbkZyb21Ub3AocG9zaXRpb24sIG1MaXN0U2Nyb2xsVG9wT2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgR09UT19TQ1JPTExfRFVSQVRJT04pOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtTGlzdFZpZXcuc2V0U2VsZWN0aW9uRnJvbVRvcChwb3NpdGlvbiwgbUxpc3RTY3JvbGxUb3BPZmZzZXQpOwotICAgICAgICAgICAgICAgIC8vIFBlcmZvcm0gYW55IGFmdGVyIHNjcm9sbCBvcGVyYXRpb25zIHRoYXQgYXJlIG5lZWRlZAotICAgICAgICAgICAgICAgIG9uU2Nyb2xsU3RhdGVDaGFuZ2VkKG1MaXN0VmlldywgT25TY3JvbGxMaXN0ZW5lci5TQ1JPTExfU1RBVEVfSURMRSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoc2V0U2VsZWN0ZWQpIHsKLSAgICAgICAgICAgIC8vIE90aGVyd2lzZSBqdXN0IHNldCB0aGUgc2VsZWN0aW9uCi0gICAgICAgICAgICBzZXRNb250aERpc3BsYXllZChkYXRlKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFBhcnNlcyB0aGUgZ2l2ZW4gPGNvZGU+ZGF0ZTwvY29kZT4gYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyBzZXRzCi0gICAgICogdGhlIHJlc3VsdCB0byB0aGUgPGNvZGU+b3V0RGF0ZTwvY29kZT4uCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIFRydWUgaWYgdGhlIGRhdGUgd2FzIHBhcnNlZC4KLSAgICAgKi8KLSAgICBwcml2YXRlIGJvb2xlYW4gcGFyc2VEYXRlKFN0cmluZyBkYXRlLCBDYWxlbmRhciBvdXREYXRlKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBvdXREYXRlLnNldFRpbWUobURhdGVGb3JtYXQucGFyc2UoZGF0ZSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIExvZy53KExPR19UQUcsICJEYXRlOiAiICsgZGF0ZSArICIgbm90IGluIGZvcm1hdDogIiArIERBVEVfRk9STUFUKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIENhbGxlZCB3aGVuIGEgPGNvZGU+dmlldzwvY29kZT4gdHJhbnNpdGlvbnMgdG8gYSBuZXcgPGNvZGU+c2Nyb2xsU3RhdGUKLSAgICAgKiA8L2NvZGU+LgotICAgICAqLwotICAgIHByaXZhdGUgdm9pZCBvblNjcm9sbFN0YXRlQ2hhbmdlZChBYnNMaXN0VmlldyB2aWV3LCBpbnQgc2Nyb2xsU3RhdGUpIHsKLSAgICAgICAgbVNjcm9sbFN0YXRlQ2hhbmdlZFJ1bm5hYmxlLmRvU2Nyb2xsU3RhdGVDaGFuZ2Uodmlldywgc2Nyb2xsU3RhdGUpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFVwZGF0ZXMgdGhlIHRpdGxlIGFuZCBzZWxlY3RlZCBtb250aCBpZiB0aGUgPGNvZGU+dmlldzwvY29kZT4gaGFzIG1vdmVkIHRvIGEgbmV3Ci0gICAgICogbW9udGguCi0gICAgICovCi0gICAgcHJpdmF0ZSB2b2lkIG9uU2Nyb2xsKEFic0xpc3RWaWV3IHZpZXcsIGludCBmaXJzdFZpc2libGVJdGVtLCBpbnQgdmlzaWJsZUl0ZW1Db3VudCwKLSAgICAgICAgICAgIGludCB0b3RhbEl0ZW1Db3VudCkgewotICAgICAgICBXZWVrVmlldyBjaGlsZCA9IChXZWVrVmlldykgdmlldy5nZXRDaGlsZEF0KDApOwotICAgICAgICBpZiAoY2hpbGQgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRmlndXJlIG91dCB3aGVyZSB3ZSBhcmUKLSAgICAgICAgbG9uZyBjdXJyU2Nyb2xsID0gdmlldy5nZXRGaXJzdFZpc2libGVQb3NpdGlvbigpICogY2hpbGQuZ2V0SGVpZ2h0KCkgLSBjaGlsZC5nZXRCb3R0b20oKTsKLQotICAgICAgICAvLyBJZiB3ZSBoYXZlIG1vdmVkIHNpbmNlIG91ciBsYXN0IGNhbGwgdXBkYXRlIHRoZSBkaXJlY3Rpb24KLSAgICAgICAgaWYgKGN1cnJTY3JvbGwgPCBtUHJldmlvdXNTY3JvbGxQb3NpdGlvbikgewotICAgICAgICAgICAgbUlzU2Nyb2xsaW5nVXAgPSB0cnVlOwotICAgICAgICB9IGVsc2UgaWYgKGN1cnJTY3JvbGwgPiBtUHJldmlvdXNTY3JvbGxQb3NpdGlvbikgewotICAgICAgICAgICAgbUlzU2Nyb2xsaW5nVXAgPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFVzZSBzb21lIGh5c3RlcmVzaXMgZm9yIGNoZWNraW5nIHdoaWNoIG1vbnRoIHRvIGhpZ2hsaWdodC4gVGhpcwotICAgICAgICAvLyBjYXVzZXMgdGhlIG1vbnRoIHRvIHRyYW5zaXRpb24gd2hlbiB0d28gZnVsbCB3ZWVrcyBvZiBhIG1vbnRoIGFyZQotICAgICAgICAvLyB2aXNpYmxlIHdoZW4gc2Nyb2xsaW5nIHVwLCBhbmQgd2hlbiB0aGUgZmlyc3QgZGF5IGluIGEgbW9udGggcmVhY2hlcwotICAgICAgICAvLyB0aGUgdG9wIG9mIHRoZSBzY3JlZW4gd2hlbiBzY3JvbGxpbmcgZG93bi4KLSAgICAgICAgaW50IG9mZnNldCA9IGNoaWxkLmdldEJvdHRvbSgpIDwgbVdlZWtNaW5WaXNpYmxlSGVpZ2h0ID8gMSA6IDA7Ci0gICAgICAgIGlmIChtSXNTY3JvbGxpbmdVcCkgewotICAgICAgICAgICAgY2hpbGQgPSAoV2Vla1ZpZXcpIHZpZXcuZ2V0Q2hpbGRBdChTQ1JPTExfSFlTVF9XRUVLUyArIG9mZnNldCk7Ci0gICAgICAgIH0gZWxzZSBpZiAob2Zmc2V0ICE9IDApIHsKLSAgICAgICAgICAgIGNoaWxkID0gKFdlZWtWaWV3KSB2aWV3LmdldENoaWxkQXQob2Zmc2V0KTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEZpbmQgb3V0IHdoaWNoIG1vbnRoIHdlJ3JlIG1vdmluZyBpbnRvCi0gICAgICAgIGludCBtb250aDsKLSAgICAgICAgaWYgKG1Jc1Njcm9sbGluZ1VwKSB7Ci0gICAgICAgICAgICBtb250aCA9IGNoaWxkLmdldE1vbnRoT2ZGaXJzdFdlZWtEYXkoKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1vbnRoID0gY2hpbGQuZ2V0TW9udGhPZkxhc3RXZWVrRGF5KCk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBBbmQgaG93IGl0IHJlbGF0ZXMgdG8gb3VyIGN1cnJlbnQgaGlnaGxpZ2h0ZWQgbW9udGgKLSAgICAgICAgaW50IG1vbnRoRGlmZjsKLSAgICAgICAgaWYgKG1DdXJyZW50TW9udGhEaXNwbGF5ZWQgPT0gMTEgJiYgbW9udGggPT0gMCkgewotICAgICAgICAgICAgbW9udGhEaWZmID0gMTsKLSAgICAgICAgfSBlbHNlIGlmIChtQ3VycmVudE1vbnRoRGlzcGxheWVkID09IDAgJiYgbW9udGggPT0gMTEpIHsKLSAgICAgICAgICAgIG1vbnRoRGlmZiA9IC0xOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbW9udGhEaWZmID0gbW9udGggLSBtQ3VycmVudE1vbnRoRGlzcGxheWVkOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gT25seSBzd2l0Y2ggbW9udGhzIGlmIHdlJ3JlIHNjcm9sbGluZyBhd2F5IGZyb20gdGhlIGN1cnJlbnRseQotICAgICAgICAvLyBzZWxlY3RlZCBtb250aAotICAgICAgICBpZiAoKCFtSXNTY3JvbGxpbmdVcCAmJiBtb250aERpZmYgPiAwKSB8fCAobUlzU2Nyb2xsaW5nVXAgJiYgbW9udGhEaWZmIDwgMCkpIHsKLSAgICAgICAgICAgIENhbGVuZGFyIGZpcnN0RGF5ID0gY2hpbGQuZ2V0Rmlyc3REYXkoKTsKLSAgICAgICAgICAgIGlmIChtSXNTY3JvbGxpbmdVcCkgewotICAgICAgICAgICAgICAgIGZpcnN0RGF5LmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIC1EQVlTX1BFUl9XRUVLKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZmlyc3REYXkuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgREFZU19QRVJfV0VFSyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXRNb250aERpc3BsYXllZChmaXJzdERheSk7Ci0gICAgICAgIH0KLSAgICAgICAgbVByZXZpb3VzU2Nyb2xsUG9zaXRpb24gPSBjdXJyU2Nyb2xsOwotICAgICAgICBtUHJldmlvdXNTY3JvbGxTdGF0ZSA9IG1DdXJyZW50U2Nyb2xsU3RhdGU7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogU2V0cyB0aGUgbW9udGggZGlzcGxheWVkIGF0IHRoZSB0b3Agb2YgdGhpcyB2aWV3IGJhc2VkIG9uIHRpbWUuIE92ZXJyaWRlCi0gICAgICogdG8gYWRkIGN1c3RvbSBldmVudHMgd2hlbiB0aGUgdGl0bGUgaXMgY2hhbmdlZC4KLSAgICAgKgotICAgICAqIEBwYXJhbSBjYWxlbmRhciBBIGRheSBpbiB0aGUgbmV3IGZvY3VzIG1vbnRoLgotICAgICAqLwotICAgIHByaXZhdGUgdm9pZCBzZXRNb250aERpc3BsYXllZChDYWxlbmRhciBjYWxlbmRhcikgewotICAgICAgICBtQ3VycmVudE1vbnRoRGlzcGxheWVkID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1PTlRIKTsKLSAgICAgICAgbUFkYXB0ZXIuc2V0Rm9jdXNNb250aChtQ3VycmVudE1vbnRoRGlzcGxheWVkKTsKLSAgICAgICAgZmluYWwgaW50IGZsYWdzID0gRGF0ZVV0aWxzLkZPUk1BVF9TSE9XX0RBVEUgfCBEYXRlVXRpbHMuRk9STUFUX05PX01PTlRIX0RBWQotICAgICAgICAgICAgICAgIHwgRGF0ZVV0aWxzLkZPUk1BVF9TSE9XX1lFQVI7Ci0gICAgICAgIGZpbmFsIGxvbmcgbWlsbGlzID0gY2FsZW5kYXIuZ2V0VGltZUluTWlsbGlzKCk7Ci0gICAgICAgIFN0cmluZyBuZXdNb250aE5hbWUgPSBEYXRlVXRpbHMuZm9ybWF0RGF0ZVJhbmdlKG1Db250ZXh0LCBtaWxsaXMsIG1pbGxpcywgZmxhZ3MpOwotICAgICAgICBtTW9udGhOYW1lLnNldFRleHQobmV3TW9udGhOYW1lKTsKLSAgICAgICAgbU1vbnRoTmFtZS5pbnZhbGlkYXRlKCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygd2Vla3MgYmV0d2VlbiB0aGUgY3VycmVudCA8Y29kZT5kYXRlPC9jb2RlPgotICAgICAqICAgICAgICAgYW5kIHRoZSA8Y29kZT5tTWluRGF0ZTwvY29kZT4uCi0gICAgICovCi0gICAgcHJpdmF0ZSBpbnQgZ2V0V2Vla3NTaW5jZU1pbkRhdGUoQ2FsZW5kYXIgZGF0ZSkgewotICAgICAgICBpZiAoZGF0ZS5iZWZvcmUobU1pbkRhdGUpKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJmcm9tRGF0ZTogIiArIG1NaW5EYXRlLmdldFRpbWUoKQotICAgICAgICAgICAgICAgICAgICArICIgZG9lcyBub3QgcHJlY2VkZSB0b0RhdGU6ICIgKyBkYXRlLmdldFRpbWUoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgbG9uZyBlbmRUaW1lTWlsbGlzID0gZGF0ZS5nZXRUaW1lSW5NaWxsaXMoKQotICAgICAgICAgICAgICAgICsgZGF0ZS5nZXRUaW1lWm9uZSgpLmdldE9mZnNldChkYXRlLmdldFRpbWVJbk1pbGxpcygpKTsKLSAgICAgICAgbG9uZyBzdGFydFRpbWVNaWxsaXMgPSBtTWluRGF0ZS5nZXRUaW1lSW5NaWxsaXMoKQotICAgICAgICAgICAgICAgICsgbU1pbkRhdGUuZ2V0VGltZVpvbmUoKS5nZXRPZmZzZXQobU1pbkRhdGUuZ2V0VGltZUluTWlsbGlzKCkpOwotICAgICAgICBsb25nIGRheU9mZnNldE1pbGxpcyA9IChtTWluRGF0ZS5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspIC0gbUZpcnN0RGF5T2ZXZWVrKQotICAgICAgICAgICAgICAgICogTUlMTElTX0lOX0RBWTsKLSAgICAgICAgcmV0dXJuIChpbnQpICgoZW5kVGltZU1pbGxpcyAtIHN0YXJ0VGltZU1pbGxpcyArIGRheU9mZnNldE1pbGxpcykgLyBNSUxMSVNfSU5fV0VFSyk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ29tbWFuZCByZXNwb25zaWJsZSBmb3IgYWN0aW5nIHVwb24gc2Nyb2xsIHN0YXRlIGNoYW5nZXMuCi0gICAgICovCi0gICAgcHJpdmF0ZSBjbGFzcyBTY3JvbGxTdGF0ZVJ1bm5hYmxlIGltcGxlbWVudHMgUnVubmFibGUgewotICAgICAgICBwcml2YXRlIEFic0xpc3RWaWV3IG1WaWV3OwotCi0gICAgICAgIHByaXZhdGUgaW50IG1OZXdTdGF0ZTsKIAogICAgICAgICAvKioKLSAgICAgICAgICogU2V0cyB1cCB0aGUgcnVubmFibGUgd2l0aCBhIHNob3J0IGRlbGF5IGluIGNhc2UgdGhlIHNjcm9sbCBzdGF0ZQotICAgICAgICAgKiBpbW1lZGlhdGVseSBjaGFuZ2VzIGFnYWluLgotICAgICAgICAgKgotICAgICAgICAgKiBAcGFyYW0gdmlldyBUaGUgbGlzdCB2aWV3IHRoYXQgY2hhbmdlZCBzdGF0ZQotICAgICAgICAgKiBAcGFyYW0gc2Nyb2xsU3RhdGUgVGhlIG5ldyBzdGF0ZSBpdCBjaGFuZ2VkIHRvCisgICAgICAgICAqIFNldHMgYWxsIHRoZSByZXF1aXJlZCBmaWVsZHMgZm9yIHRoZSBsaXN0IHZpZXcuCiAgICAgICAgICAqLwotICAgICAgICBwdWJsaWMgdm9pZCBkb1Njcm9sbFN0YXRlQ2hhbmdlKEFic0xpc3RWaWV3IHZpZXcsIGludCBzY3JvbGxTdGF0ZSkgewotICAgICAgICAgICAgbVZpZXcgPSB2aWV3OwotICAgICAgICAgICAgbU5ld1N0YXRlID0gc2Nyb2xsU3RhdGU7Ci0gICAgICAgICAgICByZW1vdmVDYWxsYmFja3ModGhpcyk7Ci0gICAgICAgICAgICBwb3N0RGVsYXllZCh0aGlzLCBTQ1JPTExfQ0hBTkdFX0RFTEFZKTsKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNldFVwTGlzdFZpZXcoKSB7CisgICAgICAgICAgICAvLyBDb25maWd1cmUgdGhlIGxpc3R2aWV3CisgICAgICAgICAgICBtTGlzdFZpZXcuc2V0RGl2aWRlcihudWxsKTsKKyAgICAgICAgICAgIG1MaXN0Vmlldy5zZXRJdGVtc0NhbkZvY3VzKHRydWUpOworICAgICAgICAgICAgbUxpc3RWaWV3LnNldFZlcnRpY2FsU2Nyb2xsQmFyRW5hYmxlZChmYWxzZSk7CisgICAgICAgICAgICBtTGlzdFZpZXcuc2V0T25TY3JvbGxMaXN0ZW5lcihuZXcgT25TY3JvbGxMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBvblNjcm9sbFN0YXRlQ2hhbmdlZChBYnNMaXN0VmlldyB2aWV3LCBpbnQgc2Nyb2xsU3RhdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgTGVnYWN5Q2FsZW5kYXJWaWV3RGVsZWdhdGUudGhpcy5vblNjcm9sbFN0YXRlQ2hhbmdlZCh2aWV3LCBzY3JvbGxTdGF0ZSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgb25TY3JvbGwoCisgICAgICAgICAgICAgICAgICAgICAgICBBYnNMaXN0VmlldyB2aWV3LCBpbnQgZmlyc3RWaXNpYmxlSXRlbSwgaW50IHZpc2libGVJdGVtQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdG90YWxJdGVtQ291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgTGVnYWN5Q2FsZW5kYXJWaWV3RGVsZWdhdGUudGhpcy5vblNjcm9sbCh2aWV3LCBmaXJzdFZpc2libGVJdGVtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVJdGVtQ291bnQsIHRvdGFsSXRlbUNvdW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIC8vIE1ha2UgdGhlIHNjcm9sbGluZyBiZWhhdmlvciBuaWNlcgorICAgICAgICAgICAgbUxpc3RWaWV3LnNldEZyaWN0aW9uKG1GcmljdGlvbik7CisgICAgICAgICAgICBtTGlzdFZpZXcuc2V0VmVsb2NpdHlTY2FsZShtVmVsb2NpdHlTY2FsZSk7CiAgICAgICAgIH0KIAotICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7Ci0gICAgICAgICAgICBtQ3VycmVudFNjcm9sbFN0YXRlID0gbU5ld1N0YXRlOwotICAgICAgICAgICAgLy8gRml4IHRoZSBwb3NpdGlvbiBhZnRlciBhIHNjcm9sbCBvciBhIGZsaW5nIGVuZHMKLSAgICAgICAgICAgIGlmIChtTmV3U3RhdGUgPT0gT25TY3JvbGxMaXN0ZW5lci5TQ1JPTExfU1RBVEVfSURMRQotICAgICAgICAgICAgICAgICAgICAmJiBtUHJldmlvdXNTY3JvbGxTdGF0ZSAhPSBPblNjcm9sbExpc3RlbmVyLlNDUk9MTF9TVEFURV9JRExFKSB7Ci0gICAgICAgICAgICAgICAgVmlldyBjaGlsZCA9IG1WaWV3LmdldENoaWxkQXQoMCk7Ci0gICAgICAgICAgICAgICAgaWYgKGNoaWxkID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHZpZXcgaXMgbm8gbG9uZ2VyIHZpc2libGUsIGp1c3QgcmV0dXJuCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbW92ZXMgdG8gdGhlIHNwZWNpZmllZCB0aW1lIGluIHRoZSB2aWV3LiBJZiB0aGUgdGltZSBpcyBub3QgYWxyZWFkeQorICAgICAgICAgKiBpbiByYW5nZSBpdCB3aWxsIG1vdmUgdGhlIGxpc3Qgc28gdGhhdCB0aGUgZmlyc3Qgb2YgdGhlIG1vbnRoIGNvbnRhaW5pbmcKKyAgICAgICAgICogdGhlIHRpbWUgaXMgYXQgdGhlIHRvcCBvZiB0aGUgdmlldy4gSWYgdGhlIG5ldyB0aW1lIGlzIGFscmVhZHkgaW4gdmlldworICAgICAgICAgKiB0aGUgbGlzdCB3aWxsIG5vdCBiZSBzY3JvbGxlZCB1bmxlc3MgZm9yY2VTY3JvbGwgaXMgdHJ1ZS4gVGhpcyB0aW1lIG1heQorICAgICAgICAgKiBvcHRpb25hbGx5IGJlIGhpZ2hsaWdodGVkIGFzIHNlbGVjdGVkIGFzIHdlbGwuCisgICAgICAgICAqCisgICAgICAgICAqIEBwYXJhbSBkYXRlIFRoZSB0aW1lIHRvIG1vdmUgdG8uCisgICAgICAgICAqIEBwYXJhbSBhbmltYXRlIFdoZXRoZXIgdG8gc2Nyb2xsIHRvIHRoZSBnaXZlbiB0aW1lIG9yIGp1c3QgcmVkcmF3IGF0IHRoZQorICAgICAgICAgKiAgICAgICAgICAgIG5ldyBsb2NhdGlvbi4KKyAgICAgICAgICogQHBhcmFtIHNldFNlbGVjdGVkIFdoZXRoZXIgdG8gc2V0IHRoZSBnaXZlbiB0aW1lIGFzIHNlbGVjdGVkLgorICAgICAgICAgKiBAcGFyYW0gZm9yY2VTY3JvbGwgV2hldGhlciB0byByZWNlbnRlciBldmVuIGlmIHRoZSB0aW1lIGlzIGFscmVhZHkKKyAgICAgICAgICogICAgICAgICAgICB2aXNpYmxlLgorICAgICAgICAgKgorICAgICAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBvZiB0aGUgcHJvdmlkZWQgZGF0ZSBpcyBiZWZvcmUgdGhlCisgICAgICAgICAqICAgICAgICByYW5nZSBzdGFydCBvZiBhZnRlciB0aGUgcmFuZ2UgZW5kLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIGdvVG8oQ2FsZW5kYXIgZGF0ZSwgYm9vbGVhbiBhbmltYXRlLCBib29sZWFuIHNldFNlbGVjdGVkLAorICAgICAgICAgICAgICAgIGJvb2xlYW4gZm9yY2VTY3JvbGwpIHsKKyAgICAgICAgICAgIGlmIChkYXRlLmJlZm9yZShtTWluRGF0ZSkgfHwgZGF0ZS5hZnRlcihtTWF4RGF0ZSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJUaW1lIG5vdCBiZXR3ZWVuICIgKyBtTWluRGF0ZS5nZXRUaW1lKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhbmQgIiArIG1NYXhEYXRlLmdldFRpbWUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBGaW5kIHRoZSBmaXJzdCBhbmQgbGFzdCBlbnRpcmVseSB2aXNpYmxlIHdlZWtzCisgICAgICAgICAgICBpbnQgZmlyc3RGdWxseVZpc2libGVQb3NpdGlvbiA9IG1MaXN0Vmlldy5nZXRGaXJzdFZpc2libGVQb3NpdGlvbigpOworICAgICAgICAgICAgVmlldyBmaXJzdENoaWxkID0gbUxpc3RWaWV3LmdldENoaWxkQXQoMCk7CisgICAgICAgICAgICBpZiAoZmlyc3RDaGlsZCAhPSBudWxsICYmIGZpcnN0Q2hpbGQuZ2V0VG9wKCkgPCAwKSB7CisgICAgICAgICAgICAgICAgZmlyc3RGdWxseVZpc2libGVQb3NpdGlvbisrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGxhc3RGdWxseVZpc2libGVQb3NpdGlvbiA9IGZpcnN0RnVsbHlWaXNpYmxlUG9zaXRpb24gKyBtU2hvd25XZWVrQ291bnQgLSAxOworICAgICAgICAgICAgaWYgKGZpcnN0Q2hpbGQgIT0gbnVsbCAmJiBmaXJzdENoaWxkLmdldFRvcCgpID4gbUJvdHRvbUJ1ZmZlcikgeworICAgICAgICAgICAgICAgIGxhc3RGdWxseVZpc2libGVQb3NpdGlvbi0tOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNldFNlbGVjdGVkKSB7CisgICAgICAgICAgICAgICAgbUFkYXB0ZXIuc2V0U2VsZWN0ZWREYXkoZGF0ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBHZXQgdGhlIHdlZWsgd2UncmUgZ29pbmcgdG8KKyAgICAgICAgICAgIGludCBwb3NpdGlvbiA9IGdldFdlZWtzU2luY2VNaW5EYXRlKGRhdGUpOworCisgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgc2VsZWN0ZWQgZGF5IGlzIG5vdyBvdXRzaWRlIG9mIG91ciB2aXNpYmxlIHJhbmdlCisgICAgICAgICAgICAvLyBhbmQgaWYgc28gc2Nyb2xsIHRvIHRoZSBtb250aCB0aGF0IGNvbnRhaW5zIGl0CisgICAgICAgICAgICBpZiAocG9zaXRpb24gPCBmaXJzdEZ1bGx5VmlzaWJsZVBvc2l0aW9uIHx8IHBvc2l0aW9uID4gbGFzdEZ1bGx5VmlzaWJsZVBvc2l0aW9uCisgICAgICAgICAgICAgICAgICAgIHx8IGZvcmNlU2Nyb2xsKSB7CisgICAgICAgICAgICAgICAgbUZpcnN0RGF5T2ZNb250aC5zZXRUaW1lSW5NaWxsaXMoZGF0ZS5nZXRUaW1lSW5NaWxsaXMoKSk7CisgICAgICAgICAgICAgICAgbUZpcnN0RGF5T2ZNb250aC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKKworICAgICAgICAgICAgICAgIHNldE1vbnRoRGlzcGxheWVkKG1GaXJzdERheU9mTW9udGgpOworCisgICAgICAgICAgICAgICAgLy8gdGhlIGVhcmxpZXN0IHRpbWUgd2UgY2FuIHNjcm9sbCB0byBpcyB0aGUgbWluIGRhdGUKKyAgICAgICAgICAgICAgICBpZiAobUZpcnN0RGF5T2ZNb250aC5iZWZvcmUobU1pbkRhdGUpKSB7CisgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gMDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IGdldFdlZWtzU2luY2VNaW5EYXRlKG1GaXJzdERheU9mTW9udGgpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpbnQgZGlzdCA9IGNoaWxkLmdldEJvdHRvbSgpIC0gbUxpc3RTY3JvbGxUb3BPZmZzZXQ7Ci0gICAgICAgICAgICAgICAgaWYgKGRpc3QgPiBtTGlzdFNjcm9sbFRvcE9mZnNldCkgewotICAgICAgICAgICAgICAgICAgICBpZiAobUlzU2Nyb2xsaW5nVXApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1WaWV3LnNtb290aFNjcm9sbEJ5KGRpc3QgLSBjaGlsZC5nZXRIZWlnaHQoKSwgQURKVVNUTUVOVF9TQ1JPTExfRFVSQVRJT04pOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgbVZpZXcuc21vb3RoU2Nyb2xsQnkoZGlzdCwgQURKVVNUTUVOVF9TQ1JPTExfRFVSQVRJT04pOworCisgICAgICAgICAgICAgICAgbVByZXZpb3VzU2Nyb2xsU3RhdGUgPSBPblNjcm9sbExpc3RlbmVyLlNDUk9MTF9TVEFURV9GTElORzsKKyAgICAgICAgICAgICAgICBpZiAoYW5pbWF0ZSkgeworICAgICAgICAgICAgICAgICAgICBtTGlzdFZpZXcuc21vb3RoU2Nyb2xsVG9Qb3NpdGlvbkZyb21Ub3AocG9zaXRpb24sIG1MaXN0U2Nyb2xsVG9wT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdPVE9fU0NST0xMX0RVUkFUSU9OKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtTGlzdFZpZXcuc2V0U2VsZWN0aW9uRnJvbVRvcChwb3NpdGlvbiwgbUxpc3RTY3JvbGxUb3BPZmZzZXQpOworICAgICAgICAgICAgICAgICAgICAvLyBQZXJmb3JtIGFueSBhZnRlciBzY3JvbGwgb3BlcmF0aW9ucyB0aGF0IGFyZSBuZWVkZWQKKyAgICAgICAgICAgICAgICAgICAgb25TY3JvbGxTdGF0ZUNoYW5nZWQobUxpc3RWaWV3LCBPblNjcm9sbExpc3RlbmVyLlNDUk9MTF9TVEFURV9JRExFKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNldFNlbGVjdGVkKSB7CisgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGp1c3Qgc2V0IHRoZSBzZWxlY3Rpb24KKyAgICAgICAgICAgICAgICBzZXRNb250aERpc3BsYXllZChkYXRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBQYXJzZXMgdGhlIGdpdmVuIDxjb2RlPmRhdGU8L2NvZGU+IGFuZCBpbiBjYXNlIG9mIHN1Y2Nlc3Mgc2V0cworICAgICAgICAgKiB0aGUgcmVzdWx0IHRvIHRoZSA8Y29kZT5vdXREYXRlPC9jb2RlPi4KKyAgICAgICAgICoKKyAgICAgICAgICogQHJldHVybiBUcnVlIGlmIHRoZSBkYXRlIHdhcyBwYXJzZWQuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gcGFyc2VEYXRlKFN0cmluZyBkYXRlLCBDYWxlbmRhciBvdXREYXRlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG91dERhdGUuc2V0VGltZShtRGF0ZUZvcm1hdC5wYXJzZShkYXRlKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgTG9nLncoTE9HX1RBRywgIkRhdGU6ICIgKyBkYXRlICsgIiBub3QgaW4gZm9ybWF0OiAiICsgREFURV9GT1JNQVQpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDYWxsZWQgd2hlbiBhIDxjb2RlPnZpZXc8L2NvZGU+IHRyYW5zaXRpb25zIHRvIGEgbmV3IDxjb2RlPnNjcm9sbFN0YXRlCisgICAgICAgICAqIDwvY29kZT4uCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgb25TY3JvbGxTdGF0ZUNoYW5nZWQoQWJzTGlzdFZpZXcgdmlldywgaW50IHNjcm9sbFN0YXRlKSB7CisgICAgICAgICAgICBtU2Nyb2xsU3RhdGVDaGFuZ2VkUnVubmFibGUuZG9TY3JvbGxTdGF0ZUNoYW5nZSh2aWV3LCBzY3JvbGxTdGF0ZSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVXBkYXRlcyB0aGUgdGl0bGUgYW5kIHNlbGVjdGVkIG1vbnRoIGlmIHRoZSA8Y29kZT52aWV3PC9jb2RlPiBoYXMgbW92ZWQgdG8gYSBuZXcKKyAgICAgICAgICogbW9udGguCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgb25TY3JvbGwoQWJzTGlzdFZpZXcgdmlldywgaW50IGZpcnN0VmlzaWJsZUl0ZW0sIGludCB2aXNpYmxlSXRlbUNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRvdGFsSXRlbUNvdW50KSB7CisgICAgICAgICAgICBXZWVrVmlldyBjaGlsZCA9IChXZWVrVmlldykgdmlldy5nZXRDaGlsZEF0KDApOworICAgICAgICAgICAgaWYgKGNoaWxkID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEZpZ3VyZSBvdXQgd2hlcmUgd2UgYXJlCisgICAgICAgICAgICBsb25nIGN1cnJTY3JvbGwgPQorICAgICAgICAgICAgICAgICAgICB2aWV3LmdldEZpcnN0VmlzaWJsZVBvc2l0aW9uKCkgKiBjaGlsZC5nZXRIZWlnaHQoKSAtIGNoaWxkLmdldEJvdHRvbSgpOworCisgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIG1vdmVkIHNpbmNlIG91ciBsYXN0IGNhbGwgdXBkYXRlIHRoZSBkaXJlY3Rpb24KKyAgICAgICAgICAgIGlmIChjdXJyU2Nyb2xsIDwgbVByZXZpb3VzU2Nyb2xsUG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICBtSXNTY3JvbGxpbmdVcCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJTY3JvbGwgPiBtUHJldmlvdXNTY3JvbGxQb3NpdGlvbikgeworICAgICAgICAgICAgICAgIG1Jc1Njcm9sbGluZ1VwID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gVXNlIHNvbWUgaHlzdGVyZXNpcyBmb3IgY2hlY2tpbmcgd2hpY2ggbW9udGggdG8gaGlnaGxpZ2h0LiBUaGlzCisgICAgICAgICAgICAvLyBjYXVzZXMgdGhlIG1vbnRoIHRvIHRyYW5zaXRpb24gd2hlbiB0d28gZnVsbCB3ZWVrcyBvZiBhIG1vbnRoIGFyZQorICAgICAgICAgICAgLy8gdmlzaWJsZSB3aGVuIHNjcm9sbGluZyB1cCwgYW5kIHdoZW4gdGhlIGZpcnN0IGRheSBpbiBhIG1vbnRoIHJlYWNoZXMKKyAgICAgICAgICAgIC8vIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiB3aGVuIHNjcm9sbGluZyBkb3duLgorICAgICAgICAgICAgaW50IG9mZnNldCA9IGNoaWxkLmdldEJvdHRvbSgpIDwgbVdlZWtNaW5WaXNpYmxlSGVpZ2h0ID8gMSA6IDA7CisgICAgICAgICAgICBpZiAobUlzU2Nyb2xsaW5nVXApIHsKKyAgICAgICAgICAgICAgICBjaGlsZCA9IChXZWVrVmlldykgdmlldy5nZXRDaGlsZEF0KFNDUk9MTF9IWVNUX1dFRUtTICsgb2Zmc2V0KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob2Zmc2V0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBjaGlsZCA9IChXZWVrVmlldykgdmlldy5nZXRDaGlsZEF0KG9mZnNldCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEZpbmQgb3V0IHdoaWNoIG1vbnRoIHdlJ3JlIG1vdmluZyBpbnRvCisgICAgICAgICAgICBpbnQgbW9udGg7CisgICAgICAgICAgICBpZiAobUlzU2Nyb2xsaW5nVXApIHsKKyAgICAgICAgICAgICAgICBtb250aCA9IGNoaWxkLmdldE1vbnRoT2ZGaXJzdFdlZWtEYXkoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbW9udGggPSBjaGlsZC5nZXRNb250aE9mTGFzdFdlZWtEYXkoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQW5kIGhvdyBpdCByZWxhdGVzIHRvIG91ciBjdXJyZW50IGhpZ2hsaWdodGVkIG1vbnRoCisgICAgICAgICAgICBpbnQgbW9udGhEaWZmOworICAgICAgICAgICAgaWYgKG1DdXJyZW50TW9udGhEaXNwbGF5ZWQgPT0gMTEgJiYgbW9udGggPT0gMCkgeworICAgICAgICAgICAgICAgIG1vbnRoRGlmZiA9IDE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1DdXJyZW50TW9udGhEaXNwbGF5ZWQgPT0gMCAmJiBtb250aCA9PSAxMSkgeworICAgICAgICAgICAgICAgIG1vbnRoRGlmZiA9IC0xOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtb250aERpZmYgPSBtb250aCAtIG1DdXJyZW50TW9udGhEaXNwbGF5ZWQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE9ubHkgc3dpdGNoIG1vbnRocyBpZiB3ZSdyZSBzY3JvbGxpbmcgYXdheSBmcm9tIHRoZSBjdXJyZW50bHkKKyAgICAgICAgICAgIC8vIHNlbGVjdGVkIG1vbnRoCisgICAgICAgICAgICBpZiAoKCFtSXNTY3JvbGxpbmdVcCAmJiBtb250aERpZmYgPiAwKSB8fCAobUlzU2Nyb2xsaW5nVXAgJiYgbW9udGhEaWZmIDwgMCkpIHsKKyAgICAgICAgICAgICAgICBDYWxlbmRhciBmaXJzdERheSA9IGNoaWxkLmdldEZpcnN0RGF5KCk7CisgICAgICAgICAgICAgICAgaWYgKG1Jc1Njcm9sbGluZ1VwKSB7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0RGF5LmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIC1EQVlTX1BFUl9XRUVLKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBmaXJzdERheS5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCBEQVlTX1BFUl9XRUVLKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2V0TW9udGhEaXNwbGF5ZWQoZmlyc3REYXkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbVByZXZpb3VzU2Nyb2xsUG9zaXRpb24gPSBjdXJyU2Nyb2xsOworICAgICAgICAgICAgbVByZXZpb3VzU2Nyb2xsU3RhdGUgPSBtQ3VycmVudFNjcm9sbFN0YXRlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHMgdGhlIG1vbnRoIGRpc3BsYXllZCBhdCB0aGUgdG9wIG9mIHRoaXMgdmlldyBiYXNlZCBvbiB0aW1lLiBPdmVycmlkZQorICAgICAgICAgKiB0byBhZGQgY3VzdG9tIGV2ZW50cyB3aGVuIHRoZSB0aXRsZSBpcyBjaGFuZ2VkLgorICAgICAgICAgKgorICAgICAgICAgKiBAcGFyYW0gY2FsZW5kYXIgQSBkYXkgaW4gdGhlIG5ldyBmb2N1cyBtb250aC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBzZXRNb250aERpc3BsYXllZChDYWxlbmRhciBjYWxlbmRhcikgeworICAgICAgICAgICAgbUN1cnJlbnRNb250aERpc3BsYXllZCA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICBtQWRhcHRlci5zZXRGb2N1c01vbnRoKG1DdXJyZW50TW9udGhEaXNwbGF5ZWQpOworICAgICAgICAgICAgZmluYWwgaW50IGZsYWdzID0gRGF0ZVV0aWxzLkZPUk1BVF9TSE9XX0RBVEUgfCBEYXRlVXRpbHMuRk9STUFUX05PX01PTlRIX0RBWQorICAgICAgICAgICAgICAgICAgICB8IERhdGVVdGlscy5GT1JNQVRfU0hPV19ZRUFSOworICAgICAgICAgICAgZmluYWwgbG9uZyBtaWxsaXMgPSBjYWxlbmRhci5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgICAgIFN0cmluZyBuZXdNb250aE5hbWUgPSBEYXRlVXRpbHMuZm9ybWF0RGF0ZVJhbmdlKG1Db250ZXh0LCBtaWxsaXMsIG1pbGxpcywgZmxhZ3MpOworICAgICAgICAgICAgbU1vbnRoTmFtZS5zZXRUZXh0KG5ld01vbnRoTmFtZSk7CisgICAgICAgICAgICBtTW9udGhOYW1lLmludmFsaWRhdGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIG51bWJlciBvZiB3ZWVrcyBiZXR3ZWVuIHRoZSBjdXJyZW50IDxjb2RlPmRhdGU8L2NvZGU+CisgICAgICAgICAqICAgICAgICAgYW5kIHRoZSA8Y29kZT5tTWluRGF0ZTwvY29kZT4uCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBnZXRXZWVrc1NpbmNlTWluRGF0ZShDYWxlbmRhciBkYXRlKSB7CisgICAgICAgICAgICBpZiAoZGF0ZS5iZWZvcmUobU1pbkRhdGUpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiZnJvbURhdGU6ICIgKyBtTWluRGF0ZS5nZXRUaW1lKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBkb2VzIG5vdCBwcmVjZWRlIHRvRGF0ZTogIiArIGRhdGUuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvbmcgZW5kVGltZU1pbGxpcyA9IGRhdGUuZ2V0VGltZUluTWlsbGlzKCkKKyAgICAgICAgICAgICAgICAgICAgKyBkYXRlLmdldFRpbWVab25lKCkuZ2V0T2Zmc2V0KGRhdGUuZ2V0VGltZUluTWlsbGlzKCkpOworICAgICAgICAgICAgbG9uZyBzdGFydFRpbWVNaWxsaXMgPSBtTWluRGF0ZS5nZXRUaW1lSW5NaWxsaXMoKQorICAgICAgICAgICAgICAgICAgICArIG1NaW5EYXRlLmdldFRpbWVab25lKCkuZ2V0T2Zmc2V0KG1NaW5EYXRlLmdldFRpbWVJbk1pbGxpcygpKTsKKyAgICAgICAgICAgIGxvbmcgZGF5T2Zmc2V0TWlsbGlzID0gKG1NaW5EYXRlLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSykgLSBtRmlyc3REYXlPZldlZWspCisgICAgICAgICAgICAgICAgICAgICogTUlMTElTX0lOX0RBWTsKKyAgICAgICAgICAgIHJldHVybiAoaW50KSAoKGVuZFRpbWVNaWxsaXMgLSBzdGFydFRpbWVNaWxsaXMgKyBkYXlPZmZzZXRNaWxsaXMpIC8gTUlMTElTX0lOX1dFRUspOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbW1hbmQgcmVzcG9uc2libGUgZm9yIGFjdGluZyB1cG9uIHNjcm9sbCBzdGF0ZSBjaGFuZ2VzLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBjbGFzcyBTY3JvbGxTdGF0ZVJ1bm5hYmxlIGltcGxlbWVudHMgUnVubmFibGUgeworICAgICAgICAgICAgcHJpdmF0ZSBBYnNMaXN0VmlldyBtVmlldzsKKworICAgICAgICAgICAgcHJpdmF0ZSBpbnQgbU5ld1N0YXRlOworCisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIFNldHMgdXAgdGhlIHJ1bm5hYmxlIHdpdGggYSBzaG9ydCBkZWxheSBpbiBjYXNlIHRoZSBzY3JvbGwgc3RhdGUKKyAgICAgICAgICAgICAqIGltbWVkaWF0ZWx5IGNoYW5nZXMgYWdhaW4uCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogQHBhcmFtIHZpZXcgVGhlIGxpc3QgdmlldyB0aGF0IGNoYW5nZWQgc3RhdGUKKyAgICAgICAgICAgICAqIEBwYXJhbSBzY3JvbGxTdGF0ZSBUaGUgbmV3IHN0YXRlIGl0IGNoYW5nZWQgdG8KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcHVibGljIHZvaWQgZG9TY3JvbGxTdGF0ZUNoYW5nZShBYnNMaXN0VmlldyB2aWV3LCBpbnQgc2Nyb2xsU3RhdGUpIHsKKyAgICAgICAgICAgICAgICBtVmlldyA9IHZpZXc7CisgICAgICAgICAgICAgICAgbU5ld1N0YXRlID0gc2Nyb2xsU3RhdGU7CisgICAgICAgICAgICAgICAgbURlbGVnYXRvci5yZW1vdmVDYWxsYmFja3ModGhpcyk7CisgICAgICAgICAgICAgICAgbURlbGVnYXRvci5wb3N0RGVsYXllZCh0aGlzLCBTQ1JPTExfQ0hBTkdFX0RFTEFZKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICAgICAgICAgIG1DdXJyZW50U2Nyb2xsU3RhdGUgPSBtTmV3U3RhdGU7CisgICAgICAgICAgICAgICAgLy8gRml4IHRoZSBwb3NpdGlvbiBhZnRlciBhIHNjcm9sbCBvciBhIGZsaW5nIGVuZHMKKyAgICAgICAgICAgICAgICBpZiAobU5ld1N0YXRlID09IE9uU2Nyb2xsTGlzdGVuZXIuU0NST0xMX1NUQVRFX0lETEUKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIG1QcmV2aW91c1Njcm9sbFN0YXRlICE9IE9uU2Nyb2xsTGlzdGVuZXIuU0NST0xMX1NUQVRFX0lETEUpIHsKKyAgICAgICAgICAgICAgICAgICAgVmlldyBjaGlsZCA9IG1WaWV3LmdldENoaWxkQXQoMCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgdmlldyBpcyBubyBsb25nZXIgdmlzaWJsZSwganVzdCByZXR1cm4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbnQgZGlzdCA9IGNoaWxkLmdldEJvdHRvbSgpIC0gbUxpc3RTY3JvbGxUb3BPZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChkaXN0ID4gbUxpc3RTY3JvbGxUb3BPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtSXNTY3JvbGxpbmdVcCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1WaWV3LnNtb290aFNjcm9sbEJ5KGRpc3QgLSBjaGlsZC5nZXRIZWlnaHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFESlVTVE1FTlRfU0NST0xMX0RVUkFUSU9OKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVZpZXcuc21vb3RoU2Nyb2xsQnkoZGlzdCwgQURKVVNUTUVOVF9TQ1JPTExfRFVSQVRJT04pOworICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1QcmV2aW91c1Njcm9sbFN0YXRlID0gbU5ld1N0YXRlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbVByZXZpb3VzU2Nyb2xsU3RhdGUgPSBtTmV3U3RhdGU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiA8cD4KLSAgICAgKiBUaGlzIGlzIGEgc3BlY2lhbGl6ZWQgYWRhcHRlciBmb3IgY3JlYXRpbmcgYSBsaXN0IG9mIHdlZWtzIHdpdGgKLSAgICAgKiBzZWxlY3RhYmxlIGRheXMuIEl0IGNhbiBiZSBjb25maWd1cmVkIHRvIGRpc3BsYXkgdGhlIHdlZWsgbnVtYmVyLCBzdGFydAotICAgICAqIHRoZSB3ZWVrIG9uIGEgZ2l2ZW4gZGF5LCBzaG93IGEgcmVkdWNlZCBudW1iZXIgb2YgZGF5cywgb3IgZGlzcGxheSBhbgotICAgICAqIGFyYml0cmFyeSBudW1iZXIgb2Ygd2Vla3MgYXQgYSB0aW1lLgotICAgICAqIDwvcD4KLSAgICAgKi8KLSAgICBwcml2YXRlIGNsYXNzIFdlZWtzQWRhcHRlciBleHRlbmRzIEJhc2VBZGFwdGVyIGltcGxlbWVudHMgT25Ub3VjaExpc3RlbmVyIHsKLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBDYWxlbmRhciBtU2VsZWN0ZWREYXRlID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBHZXN0dXJlRGV0ZWN0b3IgbUdlc3R1cmVEZXRlY3RvcjsKLQotICAgICAgICBwcml2YXRlIGludCBtU2VsZWN0ZWRXZWVrOwotCi0gICAgICAgIHByaXZhdGUgaW50IG1Gb2N1c2VkTW9udGg7Ci0KLSAgICAgICAgcHJpdmF0ZSBpbnQgbVRvdGFsV2Vla0NvdW50OwotCi0gICAgICAgIHB1YmxpYyBXZWVrc0FkYXB0ZXIoKSB7Ci0gICAgICAgICAgICBtR2VzdHVyZURldGVjdG9yID0gbmV3IEdlc3R1cmVEZXRlY3RvcihtQ29udGV4dCwgbmV3IENhbGVuZGFyR2VzdHVyZUxpc3RlbmVyKCkpOwotICAgICAgICAgICAgaW5pdCgpOwogICAgICAgICB9CiAKICAgICAgICAgLyoqCi0gICAgICAgICAqIFNldCB1cCB0aGUgZ2VzdHVyZSBkZXRlY3RvciBhbmQgc2VsZWN0ZWQgdGltZQorICAgICAgICAgKiA8cD4KKyAgICAgICAgICogVGhpcyBpcyBhIHNwZWNpYWxpemVkIGFkYXB0ZXIgZm9yIGNyZWF0aW5nIGEgbGlzdCBvZiB3ZWVrcyB3aXRoCisgICAgICAgICAqIHNlbGVjdGFibGUgZGF5cy4gSXQgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gZGlzcGxheSB0aGUgd2VlayBudW1iZXIsIHN0YXJ0CisgICAgICAgICAqIHRoZSB3ZWVrIG9uIGEgZ2l2ZW4gZGF5LCBzaG93IGEgcmVkdWNlZCBudW1iZXIgb2YgZGF5cywgb3IgZGlzcGxheSBhbgorICAgICAgICAgKiBhcmJpdHJhcnkgbnVtYmVyIG9mIHdlZWtzIGF0IGEgdGltZS4KKyAgICAgICAgICogPC9wPgogICAgICAgICAgKi8KLSAgICAgICAgcHJpdmF0ZSB2b2lkIGluaXQoKSB7Ci0gICAgICAgICAgICBtU2VsZWN0ZWRXZWVrID0gZ2V0V2Vla3NTaW5jZU1pbkRhdGUobVNlbGVjdGVkRGF0ZSk7Ci0gICAgICAgICAgICBtVG90YWxXZWVrQ291bnQgPSBnZXRXZWVrc1NpbmNlTWluRGF0ZShtTWF4RGF0ZSk7Ci0gICAgICAgICAgICBpZiAobU1pbkRhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSAhPSBtRmlyc3REYXlPZldlZWsKLSAgICAgICAgICAgICAgICB8fCBtTWF4RGF0ZS5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspICE9IG1GaXJzdERheU9mV2VlaykgewotICAgICAgICAgICAgICAgIG1Ub3RhbFdlZWtDb3VudCsrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbm90aWZ5RGF0YVNldENoYW5nZWQoKTsKLSAgICAgICAgfQorICAgICAgICBwcml2YXRlIGNsYXNzIFdlZWtzQWRhcHRlciBleHRlbmRzIEJhc2VBZGFwdGVyIGltcGxlbWVudHMgT25Ub3VjaExpc3RlbmVyIHsKIAotICAgICAgICAvKioKLSAgICAgICAgICogVXBkYXRlcyB0aGUgc2VsZWN0ZWQgZGF5IGFuZCByZWxhdGVkIHBhcmFtZXRlcnMuCi0gICAgICAgICAqCi0gICAgICAgICAqIEBwYXJhbSBzZWxlY3RlZERheSBUaGUgdGltZSB0byBoaWdobGlnaHQKLSAgICAgICAgICovCi0gICAgICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGVkRGF5KENhbGVuZGFyIHNlbGVjdGVkRGF5KSB7Ci0gICAgICAgICAgICBpZiAoc2VsZWN0ZWREYXkuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSA9PSBtU2VsZWN0ZWREYXRlLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikKLSAgICAgICAgICAgICAgICAgICAgJiYgc2VsZWN0ZWREYXkuZ2V0KENhbGVuZGFyLllFQVIpID09IG1TZWxlY3RlZERhdGUuZ2V0KENhbGVuZGFyLllFQVIpKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbVNlbGVjdGVkRGF0ZS5zZXRUaW1lSW5NaWxsaXMoc2VsZWN0ZWREYXkuZ2V0VGltZUluTWlsbGlzKCkpOwotICAgICAgICAgICAgbVNlbGVjdGVkV2VlayA9IGdldFdlZWtzU2luY2VNaW5EYXRlKG1TZWxlY3RlZERhdGUpOwotICAgICAgICAgICAgbUZvY3VzZWRNb250aCA9IG1TZWxlY3RlZERhdGUuZ2V0KENhbGVuZGFyLk1PTlRIKTsKLSAgICAgICAgICAgIG5vdGlmeURhdGFTZXRDaGFuZ2VkKCk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIHByaXZhdGUgaW50IG1TZWxlY3RlZFdlZWs7CiAKLSAgICAgICAgLyoqCi0gICAgICAgICAqIEByZXR1cm4gVGhlIHNlbGVjdGVkIGRheSBvZiBtb250aC4KLSAgICAgICAgICovCi0gICAgICAgIHB1YmxpYyBDYWxlbmRhciBnZXRTZWxlY3RlZERheSgpIHsKLSAgICAgICAgICAgIHJldHVybiBtU2VsZWN0ZWREYXRlOwotICAgICAgICB9CisgICAgICAgICAgICBwcml2YXRlIEdlc3R1cmVEZXRlY3RvciBtR2VzdHVyZURldGVjdG9yOwogCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgaW50IGdldENvdW50KCkgewotICAgICAgICAgICAgcmV0dXJuIG1Ub3RhbFdlZWtDb3VudDsKLSAgICAgICAgfQorICAgICAgICAgICAgcHJpdmF0ZSBpbnQgbUZvY3VzZWRNb250aDsKIAotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIE9iamVjdCBnZXRJdGVtKGludCBwb3NpdGlvbikgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIHByaXZhdGUgZmluYWwgQ2FsZW5kYXIgbVNlbGVjdGVkRGF0ZSA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CiAKLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBsb25nIGdldEl0ZW1JZChpbnQgcG9zaXRpb24pIHsKLSAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbjsKLSAgICAgICAgfQorICAgICAgICAgICAgcHJpdmF0ZSBpbnQgbVRvdGFsV2Vla0NvdW50OwogCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgVmlldyBnZXRWaWV3KGludCBwb3NpdGlvbiwgVmlldyBjb252ZXJ0VmlldywgVmlld0dyb3VwIHBhcmVudCkgewotICAgICAgICAgICAgV2Vla1ZpZXcgd2Vla1ZpZXcgPSBudWxsOwotICAgICAgICAgICAgaWYgKGNvbnZlcnRWaWV3ICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICB3ZWVrVmlldyA9IChXZWVrVmlldykgY29udmVydFZpZXc7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHdlZWtWaWV3ID0gbmV3IFdlZWtWaWV3KG1Db250ZXh0KTsKLSAgICAgICAgICAgICAgICBhbmRyb2lkLndpZGdldC5BYnNMaXN0Vmlldy5MYXlvdXRQYXJhbXMgcGFyYW1zID0KLSAgICAgICAgICAgICAgICAgICAgbmV3IGFuZHJvaWQud2lkZ2V0LkFic0xpc3RWaWV3LkxheW91dFBhcmFtcyhMYXlvdXRQYXJhbXMuV1JBUF9DT05URU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIExheW91dFBhcmFtcy5XUkFQX0NPTlRFTlQpOwotICAgICAgICAgICAgICAgIHdlZWtWaWV3LnNldExheW91dFBhcmFtcyhwYXJhbXMpOwotICAgICAgICAgICAgICAgIHdlZWtWaWV3LnNldENsaWNrYWJsZSh0cnVlKTsKLSAgICAgICAgICAgICAgICB3ZWVrVmlldy5zZXRPblRvdWNoTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBwdWJsaWMgV2Vla3NBZGFwdGVyKENvbnRleHQgY29udGV4dCkgeworICAgICAgICAgICAgICAgIG1Db250ZXh0ID0gY29udGV4dDsKKyAgICAgICAgICAgICAgICBtR2VzdHVyZURldGVjdG9yID0gbmV3IEdlc3R1cmVEZXRlY3RvcihtQ29udGV4dCwgbmV3IENhbGVuZGFyR2VzdHVyZUxpc3RlbmVyKCkpOworICAgICAgICAgICAgICAgIGluaXQoKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaW50IHNlbGVjdGVkV2Vla0RheSA9IChtU2VsZWN0ZWRXZWVrID09IHBvc2l0aW9uKSA/IG1TZWxlY3RlZERhdGUuZ2V0KAotICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFSykgOiAtMTsKLSAgICAgICAgICAgIHdlZWtWaWV3LmluaXQocG9zaXRpb24sIHNlbGVjdGVkV2Vla0RheSwgbUZvY3VzZWRNb250aCk7Ci0KLSAgICAgICAgICAgIHJldHVybiB3ZWVrVmlldzsKLSAgICAgICAgfQotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBDaGFuZ2VzIHdoaWNoIG1vbnRoIGlzIGluIGZvY3VzIGFuZCB1cGRhdGVzIHRoZSB2aWV3LgotICAgICAgICAgKgotICAgICAgICAgKiBAcGFyYW0gbW9udGggVGhlIG1vbnRoIHRvIHNob3cgYXMgaW4gZm9jdXMgWzAtMTFdCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgdm9pZCBzZXRGb2N1c01vbnRoKGludCBtb250aCkgewotICAgICAgICAgICAgaWYgKG1Gb2N1c2VkTW9udGggPT0gbW9udGgpIHsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtRm9jdXNlZE1vbnRoID0gbW9udGg7Ci0gICAgICAgICAgICBub3RpZnlEYXRhU2V0Q2hhbmdlZCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBib29sZWFuIG9uVG91Y2goVmlldyB2LCBNb3Rpb25FdmVudCBldmVudCkgewotICAgICAgICAgICAgaWYgKG1MaXN0Vmlldy5pc0VuYWJsZWQoKSAmJiBtR2VzdHVyZURldGVjdG9yLm9uVG91Y2hFdmVudChldmVudCkpIHsKLSAgICAgICAgICAgICAgICBXZWVrVmlldyB3ZWVrVmlldyA9IChXZWVrVmlldykgdjsKLSAgICAgICAgICAgICAgICAvLyBpZiB3ZSBjYW5ub3QgZmluZCBhIGRheSBmb3IgdGhlIGdpdmVuIGxvY2F0aW9uIHdlIGFyZSBkb25lCi0gICAgICAgICAgICAgICAgaWYgKCF3ZWVrVmlldy5nZXREYXlGcm9tTG9jYXRpb24oZXZlbnQuZ2V0WCgpLCBtVGVtcERhdGUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBTZXQgdXAgdGhlIGdlc3R1cmUgZGV0ZWN0b3IgYW5kIHNlbGVjdGVkIHRpbWUKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcHJpdmF0ZSB2b2lkIGluaXQoKSB7CisgICAgICAgICAgICAgICAgbVNlbGVjdGVkV2VlayA9IGdldFdlZWtzU2luY2VNaW5EYXRlKG1TZWxlY3RlZERhdGUpOworICAgICAgICAgICAgICAgIG1Ub3RhbFdlZWtDb3VudCA9IGdldFdlZWtzU2luY2VNaW5EYXRlKG1NYXhEYXRlKTsKKyAgICAgICAgICAgICAgICBpZiAobU1pbkRhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSAhPSBtRmlyc3REYXlPZldlZWsKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IG1NYXhEYXRlLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSykgIT0gbUZpcnN0RGF5T2ZXZWVrKSB7CisgICAgICAgICAgICAgICAgICAgIG1Ub3RhbFdlZWtDb3VudCsrOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAvLyBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSB0b3VjaGVkIGRheSBpcyBvdXRzaWRlIHRoZSB2YWxpZCByYW5nZQotICAgICAgICAgICAgICAgIC8vIHdlIGRyYXcgd2hvbGUgd2Vla3MgYnV0IHJhbmdlIGVuZCBjYW4gZmFsbCBub3Qgb24gdGhlIHdlZWsgZW5kCi0gICAgICAgICAgICAgICAgaWYgKG1UZW1wRGF0ZS5iZWZvcmUobU1pbkRhdGUpIHx8IG1UZW1wRGF0ZS5hZnRlcihtTWF4RGF0ZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG9uRGF0ZVRhcHBlZChtVGVtcERhdGUpOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9CiAKLSAgICAgICAgLyoqCi0gICAgICAgICAqIE1haW50YWlucyB0aGUgc2FtZSBob3VyL21pbi9zZWMgYnV0IG1vdmVzIHRoZSBkYXkgdG8gdGhlIHRhcHBlZCBkYXkuCi0gICAgICAgICAqCi0gICAgICAgICAqIEBwYXJhbSBkYXkgVGhlIGRheSB0aGF0IHdhcyB0YXBwZWQKLSAgICAgICAgICovCi0gICAgICAgIHByaXZhdGUgdm9pZCBvbkRhdGVUYXBwZWQoQ2FsZW5kYXIgZGF5KSB7Ci0gICAgICAgICAgICBzZXRTZWxlY3RlZERheShkYXkpOwotICAgICAgICAgICAgc2V0TW9udGhEaXNwbGF5ZWQoZGF5KTsKLSAgICAgICAgfQorICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBVcGRhdGVzIHRoZSBzZWxlY3RlZCBkYXkgYW5kIHJlbGF0ZWQgcGFyYW1ldGVycy4KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBAcGFyYW0gc2VsZWN0ZWREYXkgVGhlIHRpbWUgdG8gaGlnaGxpZ2h0CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGVkRGF5KENhbGVuZGFyIHNlbGVjdGVkRGF5KSB7CisgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkRGF5LmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikgPT0gbVNlbGVjdGVkRGF0ZS5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpCisgICAgICAgICAgICAgICAgICAgICAgICAmJiBzZWxlY3RlZERheS5nZXQoQ2FsZW5kYXIuWUVBUikgPT0gbVNlbGVjdGVkRGF0ZS5nZXQoQ2FsZW5kYXIuWUVBUikpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtU2VsZWN0ZWREYXRlLnNldFRpbWVJbk1pbGxpcyhzZWxlY3RlZERheS5nZXRUaW1lSW5NaWxsaXMoKSk7CisgICAgICAgICAgICAgICAgbVNlbGVjdGVkV2VlayA9IGdldFdlZWtzU2luY2VNaW5EYXRlKG1TZWxlY3RlZERhdGUpOworICAgICAgICAgICAgICAgIG1Gb2N1c2VkTW9udGggPSBtU2VsZWN0ZWREYXRlLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICAgICAgbm90aWZ5RGF0YVNldENoYW5nZWQoKTsKKyAgICAgICAgICAgIH0KIAotICAgICAgICAvKioKLSAgICAgICAgICogVGhpcyBpcyBoZXJlIHNvIHdlIGNhbiBpZGVudGlmeSBzaW5nbGUgdGFwIGV2ZW50cyBhbmQgc2V0IHRoZQotICAgICAgICAgKiBzZWxlY3RlZCBkYXkgY29ycmVjdGx5Ci0gICAgICAgICAqLwotICAgICAgICBjbGFzcyBDYWxlbmRhckdlc3R1cmVMaXN0ZW5lciBleHRlbmRzIEdlc3R1cmVEZXRlY3Rvci5TaW1wbGVPbkdlc3R1cmVMaXN0ZW5lciB7CisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIEByZXR1cm4gVGhlIHNlbGVjdGVkIGRheSBvZiBtb250aC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcHVibGljIENhbGVuZGFyIGdldFNlbGVjdGVkRGF5KCkgeworICAgICAgICAgICAgICAgIHJldHVybiBtU2VsZWN0ZWREYXRlOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIG9uU2luZ2xlVGFwVXAoTW90aW9uRXZlbnQgZSkgewotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogPHA+Ci0gICAgICogVGhpcyBpcyBhIGR5bmFtaWMgdmlldyBmb3IgZHJhd2luZyBhIHNpbmdsZSB3ZWVrLiBJdCBjYW4gYmUgY29uZmlndXJlZCB0bwotICAgICAqIGRpc3BsYXkgdGhlIHdlZWsgbnVtYmVyLCBzdGFydCB0aGUgd2VlayBvbiBhIGdpdmVuIGRheSwgb3Igc2hvdyBhIHJlZHVjZWQKLSAgICAgKiBudW1iZXIgb2YgZGF5cy4gSXQgaXMgaW50ZW5kZWQgZm9yIHVzZSBhcyBhIHNpbmdsZSB2aWV3IHdpdGhpbiBhCi0gICAgICogTGlzdFZpZXcuIFNlZSB7QGxpbmsgV2Vla3NBZGFwdGVyfSBmb3IgdXNhZ2UuCi0gICAgICogPC9wPgotICAgICAqLwotICAgIHByaXZhdGUgY2xhc3MgV2Vla1ZpZXcgZXh0ZW5kcyBWaWV3IHsKLQotICAgICAgICBwcml2YXRlIGZpbmFsIFJlY3QgbVRlbXBSZWN0ID0gbmV3IFJlY3QoKTsKLQotICAgICAgICBwcml2YXRlIGZpbmFsIFBhaW50IG1EcmF3UGFpbnQgPSBuZXcgUGFpbnQoKTsKLQotICAgICAgICBwcml2YXRlIGZpbmFsIFBhaW50IG1Nb250aE51bURyYXdQYWludCA9IG5ldyBQYWludCgpOwotCi0gICAgICAgIC8vIENhY2hlIHRoZSBudW1iZXIgc3RyaW5ncyBzbyB3ZSBkb24ndCBoYXZlIHRvIHJlY29tcHV0ZSB0aGVtIGVhY2ggdGltZQotICAgICAgICBwcml2YXRlIFN0cmluZ1tdIG1EYXlOdW1iZXJzOwotCi0gICAgICAgIC8vIFF1aWNrIGxvb2t1cCBmb3IgY2hlY2tpbmcgd2hpY2ggZGF5cyBhcmUgaW4gdGhlIGZvY3VzIG1vbnRoCi0gICAgICAgIHByaXZhdGUgYm9vbGVhbltdIG1Gb2N1c0RheTsKLQotICAgICAgICAvLyBXaGV0aGVyIHRoaXMgdmlldyBoYXMgYSBmb2N1c2VkIGRheS4KLSAgICAgICAgcHJpdmF0ZSBib29sZWFuIG1IYXNGb2N1c2VkRGF5OwotCi0gICAgICAgIC8vIFdoZXRoZXIgdGhpcyB2aWV3IGhhcyBvbmx5IGZvY3VzZWQgZGF5cy4KLSAgICAgICAgcHJpdmF0ZSBib29sZWFuIG1IYXNVbmZvY3VzZWREYXk7Ci0KLSAgICAgICAgLy8gVGhlIGZpcnN0IGRheSBkaXNwbGF5ZWQgYnkgdGhpcyBpdGVtCi0gICAgICAgIHByaXZhdGUgQ2FsZW5kYXIgbUZpcnN0RGF5OwotCi0gICAgICAgIC8vIFRoZSBtb250aCBvZiB0aGUgZmlyc3QgZGF5IGluIHRoaXMgd2VlawotICAgICAgICBwcml2YXRlIGludCBtTW9udGhPZkZpcnN0V2Vla0RheSA9IC0xOwotCi0gICAgICAgIC8vIFRoZSBtb250aCBvZiB0aGUgbGFzdCBkYXkgaW4gdGhpcyB3ZWVrCi0gICAgICAgIHByaXZhdGUgaW50IG1MYXN0V2Vla0RheU1vbnRoID0gLTE7Ci0KLSAgICAgICAgLy8gVGhlIHBvc2l0aW9uIG9mIHRoaXMgd2VlaywgZXF1aXZhbGVudCB0byB3ZWVrcyBzaW5jZSB0aGUgd2VlayBvZiBKYW4KLSAgICAgICAgLy8gMXN0LCAxOTAwCi0gICAgICAgIHByaXZhdGUgaW50IG1XZWVrID0gLTE7Ci0KLSAgICAgICAgLy8gUXVpY2sgcmVmZXJlbmNlIHRvIHRoZSB3aWR0aCBvZiB0aGlzIHZpZXcsIG1hdGNoZXMgcGFyZW50Ci0gICAgICAgIHByaXZhdGUgaW50IG1XaWR0aDsKLQotICAgICAgICAvLyBUaGUgaGVpZ2h0IHRoaXMgdmlldyBzaG91bGQgZHJhdyBhdCBpbiBwaXhlbHMsIHNldCBieSBoZWlnaHQgcGFyYW0KLSAgICAgICAgcHJpdmF0ZSBpbnQgbUhlaWdodDsKLQotICAgICAgICAvLyBJZiB0aGlzIHZpZXcgY29udGFpbnMgdGhlIHNlbGVjdGVkIGRheQotICAgICAgICBwcml2YXRlIGJvb2xlYW4gbUhhc1NlbGVjdGVkRGF5ID0gZmFsc2U7Ci0KLSAgICAgICAgLy8gV2hpY2ggZGF5IGlzIHNlbGVjdGVkIFswLTZdIG9yIC0xIGlmIG5vIGRheSBpcyBzZWxlY3RlZAotICAgICAgICBwcml2YXRlIGludCBtU2VsZWN0ZWREYXkgPSAtMTsKLQotICAgICAgICAvLyBUaGUgbnVtYmVyIG9mIGRheXMgKyBhIHNwb3QgZm9yIHdlZWsgbnVtYmVyIGlmIGl0IGlzIGRpc3BsYXllZAotICAgICAgICBwcml2YXRlIGludCBtTnVtQ2VsbHM7Ci0KLSAgICAgICAgLy8gVGhlIGxlZnQgZWRnZSBvZiB0aGUgc2VsZWN0ZWQgZGF5Ci0gICAgICAgIHByaXZhdGUgaW50IG1TZWxlY3RlZExlZnQgPSAtMTsKLQotICAgICAgICAvLyBUaGUgcmlnaHQgZWRnZSBvZiB0aGUgc2VsZWN0ZWQgZGF5Ci0gICAgICAgIHByaXZhdGUgaW50IG1TZWxlY3RlZFJpZ2h0ID0gLTE7Ci0KLSAgICAgICAgcHVibGljIFdlZWtWaWV3KENvbnRleHQgY29udGV4dCkgewotICAgICAgICAgICAgc3VwZXIoY29udGV4dCk7Ci0KLSAgICAgICAgICAgIC8vIFNldHMgdXAgYW55IHN0YW5kYXJkIHBhaW50cyB0aGF0IHdpbGwgYmUgdXNlZAotICAgICAgICAgICAgaW5pdGlsYWl6ZVBhaW50cygpOwotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIEluaXRpYWxpemVzIHRoaXMgd2VlayB2aWV3LgotICAgICAgICAgKgotICAgICAgICAgKiBAcGFyYW0gd2Vla051bWJlciBUaGUgbnVtYmVyIG9mIHRoZSB3ZWVrIHRoaXMgdmlldyByZXByZXNlbnRzLiBUaGUKLSAgICAgICAgICogICAgICAgICAgICB3ZWVrIG51bWJlciBpcyBhIHplcm8gYmFzZWQgaW5kZXggb2YgdGhlIHdlZWtzIHNpbmNlCi0gICAgICAgICAqICAgICAgICAgICAge0BsaW5rIENhbGVuZGFyVmlldyNnZXRNaW5EYXRlKCl9LgotICAgICAgICAgKiBAcGFyYW0gc2VsZWN0ZWRXZWVrRGF5IFRoZSBzZWxlY3RlZCBkYXkgb2YgdGhlIHdlZWsgZnJvbSAwIHRvIDYsIC0xIGlmIG5vCi0gICAgICAgICAqICAgICAgICAgICAgc2VsZWN0ZWQgZGF5LgotICAgICAgICAgKiBAcGFyYW0gZm9jdXNlZE1vbnRoIFRoZSBtb250aCB0aGF0IGlzIGN1cnJlbnRseSBpbiBmb2N1cyBpLmUuCi0gICAgICAgICAqICAgICAgICAgICAgaGlnaGxpZ2h0ZWQuCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgdm9pZCBpbml0KGludCB3ZWVrTnVtYmVyLCBpbnQgc2VsZWN0ZWRXZWVrRGF5LCBpbnQgZm9jdXNlZE1vbnRoKSB7Ci0gICAgICAgICAgICBtU2VsZWN0ZWREYXkgPSBzZWxlY3RlZFdlZWtEYXk7Ci0gICAgICAgICAgICBtSGFzU2VsZWN0ZWREYXkgPSBtU2VsZWN0ZWREYXkgIT0gLTE7Ci0gICAgICAgICAgICBtTnVtQ2VsbHMgPSBtU2hvd1dlZWtOdW1iZXIgPyBtRGF5c1BlcldlZWsgKyAxIDogbURheXNQZXJXZWVrOwotICAgICAgICAgICAgbVdlZWsgPSB3ZWVrTnVtYmVyOwotICAgICAgICAgICAgbVRlbXBEYXRlLnNldFRpbWVJbk1pbGxpcyhtTWluRGF0ZS5nZXRUaW1lSW5NaWxsaXMoKSk7Ci0KLSAgICAgICAgICAgIG1UZW1wRGF0ZS5hZGQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCBtV2Vlayk7Ci0gICAgICAgICAgICBtVGVtcERhdGUuc2V0Rmlyc3REYXlPZldlZWsobUZpcnN0RGF5T2ZXZWVrKTsKLQotICAgICAgICAgICAgLy8gQWxsb2NhdGUgc3BhY2UgZm9yIGNhY2hpbmcgdGhlIGRheSBudW1iZXJzIGFuZCBmb2N1cyB2YWx1ZXMKLSAgICAgICAgICAgIG1EYXlOdW1iZXJzID0gbmV3IFN0cmluZ1ttTnVtQ2VsbHNdOwotICAgICAgICAgICAgbUZvY3VzRGF5ID0gbmV3IGJvb2xlYW5bbU51bUNlbGxzXTsKLQotICAgICAgICAgICAgLy8gSWYgd2UncmUgc2hvd2luZyB0aGUgd2VlayBudW1iZXIgY2FsY3VsYXRlIGl0IGJhc2VkIG9uIE1vbmRheQotICAgICAgICAgICAgaW50IGkgPSAwOwotICAgICAgICAgICAgaWYgKG1TaG93V2Vla051bWJlcikgewotICAgICAgICAgICAgICAgIG1EYXlOdW1iZXJzWzBdID0gU3RyaW5nLmZvcm1hdChMb2NhbGUuZ2V0RGVmYXVsdCgpLCAiJWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgbVRlbXBEYXRlLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpKTsKLSAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICBwdWJsaWMgaW50IGdldENvdW50KCkgeworICAgICAgICAgICAgICAgIHJldHVybiBtVG90YWxXZWVrQ291bnQ7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIC8vIE5vdyBhZGp1c3Qgb3VyIHN0YXJ0aW5nIGRheSBiYXNlZCBvbiB0aGUgc3RhcnQgZGF5IG9mIHRoZSB3ZWVrCi0gICAgICAgICAgICBpbnQgZGlmZiA9IG1GaXJzdERheU9mV2VlayAtIG1UZW1wRGF0ZS5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOwotICAgICAgICAgICAgbVRlbXBEYXRlLmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIGRpZmYpOworICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGdldEl0ZW0oaW50IHBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIG1GaXJzdERheSA9IChDYWxlbmRhcikgbVRlbXBEYXRlLmNsb25lKCk7Ci0gICAgICAgICAgICBtTW9udGhPZkZpcnN0V2Vla0RheSA9IG1UZW1wRGF0ZS5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRJdGVtSWQoaW50IHBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uOworICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBtSGFzVW5mb2N1c2VkRGF5ID0gdHJ1ZTsKLSAgICAgICAgICAgIGZvciAoOyBpIDwgbU51bUNlbGxzOyBpKyspIHsKLSAgICAgICAgICAgICAgICBmaW5hbCBib29sZWFuIGlzRm9jdXNlZERheSA9IChtVGVtcERhdGUuZ2V0KENhbGVuZGFyLk1PTlRIKSA9PSBmb2N1c2VkTW9udGgpOwotICAgICAgICAgICAgICAgIG1Gb2N1c0RheVtpXSA9IGlzRm9jdXNlZERheTsKLSAgICAgICAgICAgICAgICBtSGFzRm9jdXNlZERheSB8PSBpc0ZvY3VzZWREYXk7Ci0gICAgICAgICAgICAgICAgbUhhc1VuZm9jdXNlZERheSAmPSAhaXNGb2N1c2VkRGF5OwotICAgICAgICAgICAgICAgIC8vIGRvIG5vdCBkcmF3IGRhdGVzIG91dHNpZGUgdGhlIHZhbGlkIHJhbmdlIHRvIGF2b2lkIHVzZXIgY29uZnVzaW9uCi0gICAgICAgICAgICAgICAgaWYgKG1UZW1wRGF0ZS5iZWZvcmUobU1pbkRhdGUpIHx8IG1UZW1wRGF0ZS5hZnRlcihtTWF4RGF0ZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgbURheU51bWJlcnNbaV0gPSAiIjsKKyAgICAgICAgICAgIEBPdmVycmlkZQorICAgICAgICAgICAgcHVibGljIFZpZXcgZ2V0VmlldyhpbnQgcG9zaXRpb24sIFZpZXcgY29udmVydFZpZXcsIFZpZXdHcm91cCBwYXJlbnQpIHsKKyAgICAgICAgICAgICAgICBXZWVrVmlldyB3ZWVrVmlldyA9IG51bGw7CisgICAgICAgICAgICAgICAgaWYgKGNvbnZlcnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgd2Vla1ZpZXcgPSAoV2Vla1ZpZXcpIGNvbnZlcnRWaWV3OwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIG1EYXlOdW1iZXJzW2ldID0gU3RyaW5nLmZvcm1hdChMb2NhbGUuZ2V0RGVmYXVsdCgpLCAiJWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgICAgICAgICAgICAgIHdlZWtWaWV3ID0gbmV3IFdlZWtWaWV3KG1Db250ZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZC53aWRnZXQuQWJzTGlzdFZpZXcuTGF5b3V0UGFyYW1zIHBhcmFtcyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGFuZHJvaWQud2lkZ2V0LkFic0xpc3RWaWV3LkxheW91dFBhcmFtcyhMYXlvdXRQYXJhbXMuV1JBUF9DT05URU5ULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVCk7CisgICAgICAgICAgICAgICAgICAgIHdlZWtWaWV3LnNldExheW91dFBhcmFtcyhwYXJhbXMpOworICAgICAgICAgICAgICAgICAgICB3ZWVrVmlldy5zZXRDbGlja2FibGUodHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIHdlZWtWaWV3LnNldE9uVG91Y2hMaXN0ZW5lcih0aGlzKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbVRlbXBEYXRlLmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gV2UgZG8gb25lIGV4dHJhIGFkZCBhdCB0aGUgZW5kIG9mIHRoZSBsb29wLCBpZiB0aGF0IHB1c2hlZCB1cyB0bwotICAgICAgICAgICAgLy8gbmV3IG1vbnRoIHVuZG8gaXQKLSAgICAgICAgICAgIGlmIChtVGVtcERhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkgPT0gMSkgewotICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAtMSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtTGFzdFdlZWtEYXlNb250aCA9IG1UZW1wRGF0ZS5nZXQoQ2FsZW5kYXIuTU9OVEgpOwogCi0gICAgICAgICAgICB1cGRhdGVTZWxlY3Rpb25Qb3NpdGlvbnMoKTsKLSAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBzZWxlY3RlZFdlZWtEYXkgPSAobVNlbGVjdGVkV2VlayA9PSBwb3NpdGlvbikgPyBtU2VsZWN0ZWREYXRlLmdldCgKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLKSA6IC0xOworICAgICAgICAgICAgICAgIHdlZWtWaWV3LmluaXQocG9zaXRpb24sIHNlbGVjdGVkV2Vla0RheSwgbUZvY3VzZWRNb250aCk7CiAKLSAgICAgICAgLyoqCi0gICAgICAgICAqIEluaXRpYWxpemUgdGhlIHBhaW50IGluc3RhbmNlcy4KLSAgICAgICAgICovCi0gICAgICAgIHByaXZhdGUgdm9pZCBpbml0aWxhaXplUGFpbnRzKCkgewotICAgICAgICAgICAgbURyYXdQYWludC5zZXRGYWtlQm9sZFRleHQoZmFsc2UpOwotICAgICAgICAgICAgbURyYXdQYWludC5zZXRBbnRpQWxpYXModHJ1ZSk7Ci0gICAgICAgICAgICBtRHJhd1BhaW50LnNldFN0eWxlKFN0eWxlLkZJTEwpOwotCi0gICAgICAgICAgICBtTW9udGhOdW1EcmF3UGFpbnQuc2V0RmFrZUJvbGRUZXh0KHRydWUpOwotICAgICAgICAgICAgbU1vbnRoTnVtRHJhd1BhaW50LnNldEFudGlBbGlhcyh0cnVlKTsKLSAgICAgICAgICAgIG1Nb250aE51bURyYXdQYWludC5zZXRTdHlsZShTdHlsZS5GSUxMKTsKLSAgICAgICAgICAgIG1Nb250aE51bURyYXdQYWludC5zZXRUZXh0QWxpZ24oQWxpZ24uQ0VOVEVSKTsKLSAgICAgICAgICAgIG1Nb250aE51bURyYXdQYWludC5zZXRUZXh0U2l6ZShtRGF0ZVRleHRTaXplKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBSZXR1cm5zIHRoZSBtb250aCBvZiB0aGUgZmlyc3QgZGF5IGluIHRoaXMgd2Vlay4KLSAgICAgICAgICoKLSAgICAgICAgICogQHJldHVybiBUaGUgbW9udGggdGhlIGZpcnN0IGRheSBvZiB0aGlzIHZpZXcgaXMgaW4uCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgaW50IGdldE1vbnRoT2ZGaXJzdFdlZWtEYXkoKSB7Ci0gICAgICAgICAgICByZXR1cm4gbU1vbnRoT2ZGaXJzdFdlZWtEYXk7Ci0gICAgICAgIH0KLQotICAgICAgICAvKioKLSAgICAgICAgICogUmV0dXJucyB0aGUgbW9udGggb2YgdGhlIGxhc3QgZGF5IGluIHRoaXMgd2VlawotICAgICAgICAgKgotICAgICAgICAgKiBAcmV0dXJuIFRoZSBtb250aCB0aGUgbGFzdCBkYXkgb2YgdGhpcyB2aWV3IGlzIGluCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgaW50IGdldE1vbnRoT2ZMYXN0V2Vla0RheSgpIHsKLSAgICAgICAgICAgIHJldHVybiBtTGFzdFdlZWtEYXlNb250aDsKLSAgICAgICAgfQotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBSZXR1cm5zIHRoZSBmaXJzdCBkYXkgaW4gdGhpcyB2aWV3LgotICAgICAgICAgKgotICAgICAgICAgKiBAcmV0dXJuIFRoZSBmaXJzdCBkYXkgaW4gdGhlIHZpZXcuCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgQ2FsZW5kYXIgZ2V0Rmlyc3REYXkoKSB7Ci0gICAgICAgICAgICByZXR1cm4gbUZpcnN0RGF5OwotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIENhbGN1bGF0ZXMgdGhlIGRheSB0aGF0IHRoZSBnaXZlbiB4IHBvc2l0aW9uIGlzIGluLCBhY2NvdW50aW5nIGZvcgotICAgICAgICAgKiB3ZWVrIG51bWJlci4KLSAgICAgICAgICoKLSAgICAgICAgICogQHBhcmFtIHggVGhlIHggcG9zaXRpb24gb2YgdGhlIHRvdWNoIGV2ZW50LgotICAgICAgICAgKiBAcmV0dXJuIFRydWUgaWYgYSBkYXkgd2FzIGZvdW5kIGZvciB0aGUgZ2l2ZW4gbG9jYXRpb24uCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgYm9vbGVhbiBnZXREYXlGcm9tTG9jYXRpb24oZmxvYXQgeCwgQ2FsZW5kYXIgb3V0Q2FsZW5kYXIpIHsKLSAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gaXNMYXlvdXRSdGwgPSBpc0xheW91dFJ0bCgpOwotCi0gICAgICAgICAgICBpbnQgc3RhcnQ7Ci0gICAgICAgICAgICBpbnQgZW5kOwotCi0gICAgICAgICAgICBpZiAoaXNMYXlvdXRSdGwpIHsKLSAgICAgICAgICAgICAgICBzdGFydCA9IDA7Ci0gICAgICAgICAgICAgICAgZW5kID0gbVNob3dXZWVrTnVtYmVyID8gbVdpZHRoIC0gbVdpZHRoIC8gbU51bUNlbGxzIDogbVdpZHRoOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBzdGFydCA9IG1TaG93V2Vla051bWJlciA/IG1XaWR0aCAvIG1OdW1DZWxscyA6IDA7Ci0gICAgICAgICAgICAgICAgZW5kID0gbVdpZHRoOworICAgICAgICAgICAgICAgIHJldHVybiB3ZWVrVmlldzsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKHggPCBzdGFydCB8fCB4ID4gZW5kKSB7Ci0gICAgICAgICAgICAgICAgb3V0Q2FsZW5kYXIuY2xlYXIoKTsKKyAgICAgICAgICAgIC8qKgorICAgICAgICAgICAgICogQ2hhbmdlcyB3aGljaCBtb250aCBpcyBpbiBmb2N1cyBhbmQgdXBkYXRlcyB0aGUgdmlldy4KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBAcGFyYW0gbW9udGggVGhlIG1vbnRoIHRvIHNob3cgYXMgaW4gZm9jdXMgWzAtMTFdCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHNldEZvY3VzTW9udGgoaW50IG1vbnRoKSB7CisgICAgICAgICAgICAgICAgaWYgKG1Gb2N1c2VkTW9udGggPT0gbW9udGgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtRm9jdXNlZE1vbnRoID0gbW9udGg7CisgICAgICAgICAgICAgICAgbm90aWZ5RGF0YVNldENoYW5nZWQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBvblRvdWNoKFZpZXcgdiwgTW90aW9uRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBpZiAobUxpc3RWaWV3LmlzRW5hYmxlZCgpICYmIG1HZXN0dXJlRGV0ZWN0b3Iub25Ub3VjaEV2ZW50KGV2ZW50KSkgeworICAgICAgICAgICAgICAgICAgICBXZWVrVmlldyB3ZWVrVmlldyA9IChXZWVrVmlldykgdjsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UgY2Fubm90IGZpbmQgYSBkYXkgZm9yIHRoZSBnaXZlbiBsb2NhdGlvbiB3ZSBhcmUgZG9uZQorICAgICAgICAgICAgICAgICAgICBpZiAoIXdlZWtWaWV3LmdldERheUZyb21Mb2NhdGlvbihldmVudC5nZXRYKCksIG1UZW1wRGF0ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIHRvdWNoZWQgZGF5IGlzIG91dHNpZGUgdGhlIHZhbGlkIHJhbmdlCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRyYXcgd2hvbGUgd2Vla3MgYnV0IHJhbmdlIGVuZCBjYW4gZmFsbCBub3Qgb24gdGhlIHdlZWsgZW5kCisgICAgICAgICAgICAgICAgICAgIGlmIChtVGVtcERhdGUuYmVmb3JlKG1NaW5EYXRlKSB8fCBtVGVtcERhdGUuYWZ0ZXIobU1heERhdGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvbkRhdGVUYXBwZWQobVRlbXBEYXRlKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgLy8gU2VsZWN0aW9uIGlzICh4IC0gc3RhcnQpIC8gKHBpeGVscy9kYXkpIHdoaWNoIGlzICh4IC0gc3RhcnQpICogZGF5IC8gcGl4ZWxzCi0gICAgICAgICAgICBpbnQgZGF5UG9zaXRpb24gPSAoaW50KSAoKHggLSBzdGFydCkgKiBtRGF5c1BlcldlZWsgLyAoZW5kIC0gc3RhcnQpKTsKLQotICAgICAgICAgICAgaWYgKGlzTGF5b3V0UnRsKSB7Ci0gICAgICAgICAgICAgICAgZGF5UG9zaXRpb24gPSBtRGF5c1BlcldlZWsgLSAxIC0gZGF5UG9zaXRpb247CisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIE1haW50YWlucyB0aGUgc2FtZSBob3VyL21pbi9zZWMgYnV0IG1vdmVzIHRoZSBkYXkgdG8gdGhlIHRhcHBlZCBkYXkuCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogQHBhcmFtIGRheSBUaGUgZGF5IHRoYXQgd2FzIHRhcHBlZAorICAgICAgICAgICAgICovCisgICAgICAgICAgICBwcml2YXRlIHZvaWQgb25EYXRlVGFwcGVkKENhbGVuZGFyIGRheSkgeworICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkRGF5KGRheSk7CisgICAgICAgICAgICAgICAgc2V0TW9udGhEaXNwbGF5ZWQoZGF5KTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgb3V0Q2FsZW5kYXIuc2V0VGltZUluTWlsbGlzKG1GaXJzdERheS5nZXRUaW1lSW5NaWxsaXMoKSk7Ci0gICAgICAgICAgICBvdXRDYWxlbmRhci5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCBkYXlQb3NpdGlvbik7Ci0KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHByb3RlY3RlZCB2b2lkIG9uRHJhdyhDYW52YXMgY2FudmFzKSB7Ci0gICAgICAgICAgICBkcmF3QmFja2dyb3VuZChjYW52YXMpOwotICAgICAgICAgICAgZHJhd1dlZWtOdW1iZXJzQW5kRGF0ZXMoY2FudmFzKTsKLSAgICAgICAgICAgIGRyYXdXZWVrU2VwYXJhdG9ycyhjYW52YXMpOwotICAgICAgICAgICAgZHJhd1NlbGVjdGVkRGF0ZVZlcnRpY2FsQmFycyhjYW52YXMpOworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBUaGlzIGlzIGhlcmUgc28gd2UgY2FuIGlkZW50aWZ5IHNpbmdsZSB0YXAgZXZlbnRzIGFuZCBzZXQgdGhlCisgICAgICAgICAgICAgKiBzZWxlY3RlZCBkYXkgY29ycmVjdGx5CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGNsYXNzIENhbGVuZGFyR2VzdHVyZUxpc3RlbmVyIGV4dGVuZHMgR2VzdHVyZURldGVjdG9yLlNpbXBsZU9uR2VzdHVyZUxpc3RlbmVyIHsKKyAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBvblNpbmdsZVRhcFVwKE1vdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgLyoqCi0gICAgICAgICAqIFRoaXMgZHJhd3MgdGhlIHNlbGVjdGlvbiBoaWdobGlnaHQgaWYgYSBkYXkgaXMgc2VsZWN0ZWQgaW4gdGhpcyB3ZWVrLgotICAgICAgICAgKgotICAgICAgICAgKiBAcGFyYW0gY2FudmFzIFRoZSBjYW52YXMgdG8gZHJhdyBvbgorICAgICAgICAgKiA8cD4KKyAgICAgICAgICogVGhpcyBpcyBhIGR5bmFtaWMgdmlldyBmb3IgZHJhd2luZyBhIHNpbmdsZSB3ZWVrLiBJdCBjYW4gYmUgY29uZmlndXJlZCB0bworICAgICAgICAgKiBkaXNwbGF5IHRoZSB3ZWVrIG51bWJlciwgc3RhcnQgdGhlIHdlZWsgb24gYSBnaXZlbiBkYXksIG9yIHNob3cgYSByZWR1Y2VkCisgICAgICAgICAqIG51bWJlciBvZiBkYXlzLiBJdCBpcyBpbnRlbmRlZCBmb3IgdXNlIGFzIGEgc2luZ2xlIHZpZXcgd2l0aGluIGEKKyAgICAgICAgICogTGlzdFZpZXcuIFNlZSB7QGxpbmsgV2Vla3NBZGFwdGVyfSBmb3IgdXNhZ2UuCisgICAgICAgICAqIDwvcD4KICAgICAgICAgICovCi0gICAgICAgIHByaXZhdGUgdm9pZCBkcmF3QmFja2dyb3VuZChDYW52YXMgY2FudmFzKSB7Ci0gICAgICAgICAgICBpZiAoIW1IYXNTZWxlY3RlZERheSkgewotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcHJpdmF0ZSBjbGFzcyBXZWVrVmlldyBleHRlbmRzIFZpZXcgeworCisgICAgICAgICAgICBwcml2YXRlIGZpbmFsIFJlY3QgbVRlbXBSZWN0ID0gbmV3IFJlY3QoKTsKKworICAgICAgICAgICAgcHJpdmF0ZSBmaW5hbCBQYWludCBtRHJhd1BhaW50ID0gbmV3IFBhaW50KCk7CisKKyAgICAgICAgICAgIHByaXZhdGUgZmluYWwgUGFpbnQgbU1vbnRoTnVtRHJhd1BhaW50ID0gbmV3IFBhaW50KCk7CisKKyAgICAgICAgICAgIC8vIENhY2hlIHRoZSBudW1iZXIgc3RyaW5ncyBzbyB3ZSBkb24ndCBoYXZlIHRvIHJlY29tcHV0ZSB0aGVtIGVhY2ggdGltZQorICAgICAgICAgICAgcHJpdmF0ZSBTdHJpbmdbXSBtRGF5TnVtYmVyczsKKworICAgICAgICAgICAgLy8gUXVpY2sgbG9va3VwIGZvciBjaGVja2luZyB3aGljaCBkYXlzIGFyZSBpbiB0aGUgZm9jdXMgbW9udGgKKyAgICAgICAgICAgIHByaXZhdGUgYm9vbGVhbltdIG1Gb2N1c0RheTsKKworICAgICAgICAgICAgLy8gV2hldGhlciB0aGlzIHZpZXcgaGFzIGEgZm9jdXNlZCBkYXkuCisgICAgICAgICAgICBwcml2YXRlIGJvb2xlYW4gbUhhc0ZvY3VzZWREYXk7CisKKyAgICAgICAgICAgIC8vIFdoZXRoZXIgdGhpcyB2aWV3IGhhcyBvbmx5IGZvY3VzZWQgZGF5cy4KKyAgICAgICAgICAgIHByaXZhdGUgYm9vbGVhbiBtSGFzVW5mb2N1c2VkRGF5OworCisgICAgICAgICAgICAvLyBUaGUgZmlyc3QgZGF5IGRpc3BsYXllZCBieSB0aGlzIGl0ZW0KKyAgICAgICAgICAgIHByaXZhdGUgQ2FsZW5kYXIgbUZpcnN0RGF5OworCisgICAgICAgICAgICAvLyBUaGUgbW9udGggb2YgdGhlIGZpcnN0IGRheSBpbiB0aGlzIHdlZWsKKyAgICAgICAgICAgIHByaXZhdGUgaW50IG1Nb250aE9mRmlyc3RXZWVrRGF5ID0gLTE7CisKKyAgICAgICAgICAgIC8vIFRoZSBtb250aCBvZiB0aGUgbGFzdCBkYXkgaW4gdGhpcyB3ZWVrCisgICAgICAgICAgICBwcml2YXRlIGludCBtTGFzdFdlZWtEYXlNb250aCA9IC0xOworCisgICAgICAgICAgICAvLyBUaGUgcG9zaXRpb24gb2YgdGhpcyB3ZWVrLCBlcXVpdmFsZW50IHRvIHdlZWtzIHNpbmNlIHRoZSB3ZWVrIG9mIEphbgorICAgICAgICAgICAgLy8gMXN0LCAxOTAwCisgICAgICAgICAgICBwcml2YXRlIGludCBtV2VlayA9IC0xOworCisgICAgICAgICAgICAvLyBRdWljayByZWZlcmVuY2UgdG8gdGhlIHdpZHRoIG9mIHRoaXMgdmlldywgbWF0Y2hlcyBwYXJlbnQKKyAgICAgICAgICAgIHByaXZhdGUgaW50IG1XaWR0aDsKKworICAgICAgICAgICAgLy8gVGhlIGhlaWdodCB0aGlzIHZpZXcgc2hvdWxkIGRyYXcgYXQgaW4gcGl4ZWxzLCBzZXQgYnkgaGVpZ2h0IHBhcmFtCisgICAgICAgICAgICBwcml2YXRlIGludCBtSGVpZ2h0OworCisgICAgICAgICAgICAvLyBJZiB0aGlzIHZpZXcgY29udGFpbnMgdGhlIHNlbGVjdGVkIGRheQorICAgICAgICAgICAgcHJpdmF0ZSBib29sZWFuIG1IYXNTZWxlY3RlZERheSA9IGZhbHNlOworCisgICAgICAgICAgICAvLyBXaGljaCBkYXkgaXMgc2VsZWN0ZWQgWzAtNl0gb3IgLTEgaWYgbm8gZGF5IGlzIHNlbGVjdGVkCisgICAgICAgICAgICBwcml2YXRlIGludCBtU2VsZWN0ZWREYXkgPSAtMTsKKworICAgICAgICAgICAgLy8gVGhlIG51bWJlciBvZiBkYXlzICsgYSBzcG90IGZvciB3ZWVrIG51bWJlciBpZiBpdCBpcyBkaXNwbGF5ZWQKKyAgICAgICAgICAgIHByaXZhdGUgaW50IG1OdW1DZWxsczsKKworICAgICAgICAgICAgLy8gVGhlIGxlZnQgZWRnZSBvZiB0aGUgc2VsZWN0ZWQgZGF5CisgICAgICAgICAgICBwcml2YXRlIGludCBtU2VsZWN0ZWRMZWZ0ID0gLTE7CisKKyAgICAgICAgICAgIC8vIFRoZSByaWdodCBlZGdlIG9mIHRoZSBzZWxlY3RlZCBkYXkKKyAgICAgICAgICAgIHByaXZhdGUgaW50IG1TZWxlY3RlZFJpZ2h0ID0gLTE7CisKKyAgICAgICAgICAgIHB1YmxpYyBXZWVrVmlldyhDb250ZXh0IGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICBzdXBlcihjb250ZXh0KTsKKworICAgICAgICAgICAgICAgIC8vIFNldHMgdXAgYW55IHN0YW5kYXJkIHBhaW50cyB0aGF0IHdpbGwgYmUgdXNlZAorICAgICAgICAgICAgICAgIGluaXRpbGFpemVQYWludHMoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1EcmF3UGFpbnQuc2V0Q29sb3IobVNlbGVjdGVkV2Vla0JhY2tncm91bmRDb2xvcik7CiAKLSAgICAgICAgICAgIG1UZW1wUmVjdC50b3AgPSBtV2Vla1NlcGVyYXRvckxpbmVXaWR0aDsKLSAgICAgICAgICAgIG1UZW1wUmVjdC5ib3R0b20gPSBtSGVpZ2h0OworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBJbml0aWFsaXplcyB0aGlzIHdlZWsgdmlldy4KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBAcGFyYW0gd2Vla051bWJlciBUaGUgbnVtYmVyIG9mIHRoZSB3ZWVrIHRoaXMgdmlldyByZXByZXNlbnRzLiBUaGUKKyAgICAgICAgICAgICAqICAgICAgICAgICAgd2VlayBudW1iZXIgaXMgYSB6ZXJvIGJhc2VkIGluZGV4IG9mIHRoZSB3ZWVrcyBzaW5jZQorICAgICAgICAgICAgICogICAgICAgICAgICB7QGxpbmsgQ2FsZW5kYXJWaWV3I2dldE1pbkRhdGUoKX0uCisgICAgICAgICAgICAgKiBAcGFyYW0gc2VsZWN0ZWRXZWVrRGF5IFRoZSBzZWxlY3RlZCBkYXkgb2YgdGhlIHdlZWsgZnJvbSAwIHRvIDYsIC0xIGlmIG5vCisgICAgICAgICAgICAgKiAgICAgICAgICAgIHNlbGVjdGVkIGRheS4KKyAgICAgICAgICAgICAqIEBwYXJhbSBmb2N1c2VkTW9udGggVGhlIG1vbnRoIHRoYXQgaXMgY3VycmVudGx5IGluIGZvY3VzIGkuZS4KKyAgICAgICAgICAgICAqICAgICAgICAgICAgaGlnaGxpZ2h0ZWQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGluaXQoaW50IHdlZWtOdW1iZXIsIGludCBzZWxlY3RlZFdlZWtEYXksIGludCBmb2N1c2VkTW9udGgpIHsKKyAgICAgICAgICAgICAgICBtU2VsZWN0ZWREYXkgPSBzZWxlY3RlZFdlZWtEYXk7CisgICAgICAgICAgICAgICAgbUhhc1NlbGVjdGVkRGF5ID0gbVNlbGVjdGVkRGF5ICE9IC0xOworICAgICAgICAgICAgICAgIG1OdW1DZWxscyA9IG1TaG93V2Vla051bWJlciA/IG1EYXlzUGVyV2VlayArIDEgOiBtRGF5c1BlcldlZWs7CisgICAgICAgICAgICAgICAgbVdlZWsgPSB3ZWVrTnVtYmVyOworICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5zZXRUaW1lSW5NaWxsaXMobU1pbkRhdGUuZ2V0VGltZUluTWlsbGlzKCkpOwogCi0gICAgICAgICAgICBmaW5hbCBib29sZWFuIGlzTGF5b3V0UnRsID0gaXNMYXlvdXRSdGwoKTsKKyAgICAgICAgICAgICAgICBtVGVtcERhdGUuYWRkKENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgbVdlZWspOworICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5zZXRGaXJzdERheU9mV2VlayhtRmlyc3REYXlPZldlZWspOwogCi0gICAgICAgICAgICBpZiAoaXNMYXlvdXRSdGwpIHsKLSAgICAgICAgICAgICAgICBtVGVtcFJlY3QubGVmdCA9IDA7Ci0gICAgICAgICAgICAgICAgbVRlbXBSZWN0LnJpZ2h0ID0gbVNlbGVjdGVkTGVmdCAtIDI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1UZW1wUmVjdC5sZWZ0ID0gbVNob3dXZWVrTnVtYmVyID8gbVdpZHRoIC8gbU51bUNlbGxzIDogMDsKLSAgICAgICAgICAgICAgICBtVGVtcFJlY3QucmlnaHQgPSBtU2VsZWN0ZWRMZWZ0IC0gMjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhbnZhcy5kcmF3UmVjdChtVGVtcFJlY3QsIG1EcmF3UGFpbnQpOworICAgICAgICAgICAgICAgIC8vIEFsbG9jYXRlIHNwYWNlIGZvciBjYWNoaW5nIHRoZSBkYXkgbnVtYmVycyBhbmQgZm9jdXMgdmFsdWVzCisgICAgICAgICAgICAgICAgbURheU51bWJlcnMgPSBuZXcgU3RyaW5nW21OdW1DZWxsc107CisgICAgICAgICAgICAgICAgbUZvY3VzRGF5ID0gbmV3IGJvb2xlYW5bbU51bUNlbGxzXTsKIAotICAgICAgICAgICAgaWYgKGlzTGF5b3V0UnRsKSB7Ci0gICAgICAgICAgICAgICAgbVRlbXBSZWN0LmxlZnQgPSBtU2VsZWN0ZWRSaWdodCArIDM7Ci0gICAgICAgICAgICAgICAgbVRlbXBSZWN0LnJpZ2h0ID0gbVNob3dXZWVrTnVtYmVyID8gbVdpZHRoIC0gbVdpZHRoIC8gbU51bUNlbGxzIDogbVdpZHRoOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtVGVtcFJlY3QubGVmdCA9IG1TZWxlY3RlZFJpZ2h0ICsgMzsKLSAgICAgICAgICAgICAgICBtVGVtcFJlY3QucmlnaHQgPSBtV2lkdGg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYW52YXMuZHJhd1JlY3QobVRlbXBSZWN0LCBtRHJhd1BhaW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBEcmF3cyB0aGUgd2VlayBhbmQgbW9udGggZGF5IG51bWJlcnMgZm9yIHRoaXMgd2Vlay4KLSAgICAgICAgICoKLSAgICAgICAgICogQHBhcmFtIGNhbnZhcyBUaGUgY2FudmFzIHRvIGRyYXcgb24KLSAgICAgICAgICovCi0gICAgICAgIHByaXZhdGUgdm9pZCBkcmF3V2Vla051bWJlcnNBbmREYXRlcyhDYW52YXMgY2FudmFzKSB7Ci0gICAgICAgICAgICBmaW5hbCBmbG9hdCB0ZXh0SGVpZ2h0ID0gbURyYXdQYWludC5nZXRUZXh0U2l6ZSgpOwotICAgICAgICAgICAgZmluYWwgaW50IHkgPSAoaW50KSAoKG1IZWlnaHQgKyB0ZXh0SGVpZ2h0KSAvIDIpIC0gbVdlZWtTZXBlcmF0b3JMaW5lV2lkdGg7Ci0gICAgICAgICAgICBmaW5hbCBpbnQgbkRheXMgPSBtTnVtQ2VsbHM7Ci0gICAgICAgICAgICBmaW5hbCBpbnQgZGl2aXNvciA9IDIgKiBuRGF5czsKLQotICAgICAgICAgICAgbURyYXdQYWludC5zZXRUZXh0QWxpZ24oQWxpZ24uQ0VOVEVSKTsKLSAgICAgICAgICAgIG1EcmF3UGFpbnQuc2V0VGV4dFNpemUobURhdGVUZXh0U2l6ZSk7Ci0KLSAgICAgICAgICAgIGludCBpID0gMDsKLQotICAgICAgICAgICAgaWYgKGlzTGF5b3V0UnRsKCkpIHsKLSAgICAgICAgICAgICAgICBmb3IgKDsgaSA8IG5EYXlzIC0gMTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1Nb250aE51bURyYXdQYWludC5zZXRDb2xvcihtRm9jdXNEYXlbaV0gPyBtRm9jdXNlZE1vbnRoRGF0ZUNvbG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBtVW5mb2N1c2VkTW9udGhEYXRlQ29sb3IpOwotICAgICAgICAgICAgICAgICAgICBpbnQgeCA9ICgyICogaSArIDEpICogbVdpZHRoIC8gZGl2aXNvcjsKLSAgICAgICAgICAgICAgICAgICAgY2FudmFzLmRyYXdUZXh0KG1EYXlOdW1iZXJzW25EYXlzIC0gMSAtIGldLCB4LCB5LCBtTW9udGhOdW1EcmF3UGFpbnQpOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBzaG93aW5nIHRoZSB3ZWVrIG51bWJlciBjYWxjdWxhdGUgaXQgYmFzZWQgb24gTW9uZGF5CisgICAgICAgICAgICAgICAgaW50IGkgPSAwOwogICAgICAgICAgICAgICAgIGlmIChtU2hvd1dlZWtOdW1iZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgbURyYXdQYWludC5zZXRDb2xvcihtV2Vla051bWJlckNvbG9yKTsKLSAgICAgICAgICAgICAgICAgICAgaW50IHggPSBtV2lkdGggLSBtV2lkdGggLyBkaXZpc29yOwotICAgICAgICAgICAgICAgICAgICBjYW52YXMuZHJhd1RleHQobURheU51bWJlcnNbMF0sIHgsIHksIG1EcmF3UGFpbnQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1TaG93V2Vla051bWJlcikgewotICAgICAgICAgICAgICAgICAgICBtRHJhd1BhaW50LnNldENvbG9yKG1XZWVrTnVtYmVyQ29sb3IpOwotICAgICAgICAgICAgICAgICAgICBpbnQgeCA9IG1XaWR0aCAvIGRpdmlzb3I7Ci0gICAgICAgICAgICAgICAgICAgIGNhbnZhcy5kcmF3VGV4dChtRGF5TnVtYmVyc1swXSwgeCwgeSwgbURyYXdQYWludCk7CisgICAgICAgICAgICAgICAgICAgIG1EYXlOdW1iZXJzWzBdID0gU3RyaW5nLmZvcm1hdChMb2NhbGUuZ2V0RGVmYXVsdCgpLCAiJWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5nZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKSk7CiAgICAgICAgICAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZm9yICg7IGkgPCBuRGF5czsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1Nb250aE51bURyYXdQYWludC5zZXRDb2xvcihtRm9jdXNEYXlbaV0gPyBtRm9jdXNlZE1vbnRoRGF0ZUNvbG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBtVW5mb2N1c2VkTW9udGhEYXRlQ29sb3IpOwotICAgICAgICAgICAgICAgICAgICBpbnQgeCA9ICgyICogaSArIDEpICogbVdpZHRoIC8gZGl2aXNvcjsKLSAgICAgICAgICAgICAgICAgICAgY2FudmFzLmRyYXdUZXh0KG1EYXlOdW1iZXJzW2ldLCB4LCB5LCBtTW9udGhOdW1EcmF3UGFpbnQpOworCisgICAgICAgICAgICAgICAgLy8gTm93IGFkanVzdCBvdXIgc3RhcnRpbmcgZGF5IGJhc2VkIG9uIHRoZSBzdGFydCBkYXkgb2YgdGhlIHdlZWsKKyAgICAgICAgICAgICAgICBpbnQgZGlmZiA9IG1GaXJzdERheU9mV2VlayAtIG1UZW1wRGF0ZS5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCBkaWZmKTsKKworICAgICAgICAgICAgICAgIG1GaXJzdERheSA9IChDYWxlbmRhcikgbVRlbXBEYXRlLmNsb25lKCk7CisgICAgICAgICAgICAgICAgbU1vbnRoT2ZGaXJzdFdlZWtEYXkgPSBtVGVtcERhdGUuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKworICAgICAgICAgICAgICAgIG1IYXNVbmZvY3VzZWREYXkgPSB0cnVlOworICAgICAgICAgICAgICAgIGZvciAoOyBpIDwgbU51bUNlbGxzOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBpc0ZvY3VzZWREYXkgPSAobVRlbXBEYXRlLmdldChDYWxlbmRhci5NT05USCkgPT0gZm9jdXNlZE1vbnRoKTsKKyAgICAgICAgICAgICAgICAgICAgbUZvY3VzRGF5W2ldID0gaXNGb2N1c2VkRGF5OworICAgICAgICAgICAgICAgICAgICBtSGFzRm9jdXNlZERheSB8PSBpc0ZvY3VzZWREYXk7CisgICAgICAgICAgICAgICAgICAgIG1IYXNVbmZvY3VzZWREYXkgJj0gIWlzRm9jdXNlZERheTsKKyAgICAgICAgICAgICAgICAgICAgLy8gZG8gbm90IGRyYXcgZGF0ZXMgb3V0c2lkZSB0aGUgdmFsaWQgcmFuZ2UgdG8gYXZvaWQgdXNlciBjb25mdXNpb24KKyAgICAgICAgICAgICAgICAgICAgaWYgKG1UZW1wRGF0ZS5iZWZvcmUobU1pbkRhdGUpIHx8IG1UZW1wRGF0ZS5hZnRlcihtTWF4RGF0ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1EYXlOdW1iZXJzW2ldID0gIiI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtRGF5TnVtYmVyc1tpXSA9IFN0cmluZy5mb3JtYXQoTG9jYWxlLmdldERlZmF1bHQoKSwgIiVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVRlbXBEYXRlLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBtVGVtcERhdGUuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gV2UgZG8gb25lIGV4dHJhIGFkZCBhdCB0aGUgZW5kIG9mIHRoZSBsb29wLCBpZiB0aGF0IHB1c2hlZCB1cyB0bworICAgICAgICAgICAgICAgIC8vIG5ldyBtb250aCB1bmRvIGl0CisgICAgICAgICAgICAgICAgaWYgKG1UZW1wRGF0ZS5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAtMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1MYXN0V2Vla0RheU1vbnRoID0gbVRlbXBEYXRlLmdldChDYWxlbmRhci5NT05USCk7CiAKLSAgICAgICAgLyoqCi0gICAgICAgICAqIERyYXdzIGEgaG9yaXpvbnRhbCBsaW5lIGZvciBzZXBhcmF0aW5nIHRoZSB3ZWVrcy4KLSAgICAgICAgICoKLSAgICAgICAgICogQHBhcmFtIGNhbnZhcyBUaGUgY2FudmFzIHRvIGRyYXcgb24uCi0gICAgICAgICAqLwotICAgICAgICBwcml2YXRlIHZvaWQgZHJhd1dlZWtTZXBhcmF0b3JzKENhbnZhcyBjYW52YXMpIHsKLSAgICAgICAgICAgIC8vIElmIGl0IGlzIHRoZSB0b3Btb3N0IGZ1bGx5IHZpc2libGUgY2hpbGQgZG8gbm90IGRyYXcgc2VwYXJhdG9yIGxpbmUKLSAgICAgICAgICAgIGludCBmaXJzdEZ1bGx5VmlzaWJsZVBvc2l0aW9uID0gbUxpc3RWaWV3LmdldEZpcnN0VmlzaWJsZVBvc2l0aW9uKCk7Ci0gICAgICAgICAgICBpZiAobUxpc3RWaWV3LmdldENoaWxkQXQoMCkuZ2V0VG9wKCkgPCAwKSB7Ci0gICAgICAgICAgICAgICAgZmlyc3RGdWxseVZpc2libGVQb3NpdGlvbisrOworICAgICAgICAgICAgICAgIHVwZGF0ZVNlbGVjdGlvblBvc2l0aW9ucygpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGZpcnN0RnVsbHlWaXNpYmxlUG9zaXRpb24gPT0gbVdlZWspIHsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtRHJhd1BhaW50LnNldENvbG9yKG1XZWVrU2VwYXJhdG9yTGluZUNvbG9yKTsKLSAgICAgICAgICAgIG1EcmF3UGFpbnQuc2V0U3Ryb2tlV2lkdGgobVdlZWtTZXBlcmF0b3JMaW5lV2lkdGgpOwotICAgICAgICAgICAgZmxvYXQgc3RhcnRYOwotICAgICAgICAgICAgZmxvYXQgc3RvcFg7Ci0gICAgICAgICAgICBpZiAoaXNMYXlvdXRSdGwoKSkgewotICAgICAgICAgICAgICAgIHN0YXJ0WCA9IDA7Ci0gICAgICAgICAgICAgICAgc3RvcFggPSBtU2hvd1dlZWtOdW1iZXIgPyBtV2lkdGggLSBtV2lkdGggLyBtTnVtQ2VsbHMgOiBtV2lkdGg7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHN0YXJ0WCA9IG1TaG93V2Vla051bWJlciA/IG1XaWR0aCAvIG1OdW1DZWxscyA6IDA7Ci0gICAgICAgICAgICAgICAgc3RvcFggPSBtV2lkdGg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYW52YXMuZHJhd0xpbmUoc3RhcnRYLCAwLCBzdG9wWCwgMCwgbURyYXdQYWludCk7Ci0gICAgICAgIH0KIAotICAgICAgICAvKioKLSAgICAgICAgICogRHJhd3MgdGhlIHNlbGVjdGVkIGRhdGUgYmFycyBpZiB0aGlzIHdlZWsgaGFzIGEgc2VsZWN0ZWQgZGF5LgotICAgICAgICAgKgotICAgICAgICAgKiBAcGFyYW0gY2FudmFzIFRoZSBjYW52YXMgdG8gZHJhdyBvbgotICAgICAgICAgKi8KLSAgICAgICAgcHJpdmF0ZSB2b2lkIGRyYXdTZWxlY3RlZERhdGVWZXJ0aWNhbEJhcnMoQ2FudmFzIGNhbnZhcykgewotICAgICAgICAgICAgaWYgKCFtSGFzU2VsZWN0ZWREYXkpIHsKLSAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIEluaXRpYWxpemUgdGhlIHBhaW50IGluc3RhbmNlcy4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcHJpdmF0ZSB2b2lkIGluaXRpbGFpemVQYWludHMoKSB7CisgICAgICAgICAgICAgICAgbURyYXdQYWludC5zZXRGYWtlQm9sZFRleHQoZmFsc2UpOworICAgICAgICAgICAgICAgIG1EcmF3UGFpbnQuc2V0QW50aUFsaWFzKHRydWUpOworICAgICAgICAgICAgICAgIG1EcmF3UGFpbnQuc2V0U3R5bGUoU3R5bGUuRklMTCk7CisKKyAgICAgICAgICAgICAgICBtTW9udGhOdW1EcmF3UGFpbnQuc2V0RmFrZUJvbGRUZXh0KHRydWUpOworICAgICAgICAgICAgICAgIG1Nb250aE51bURyYXdQYWludC5zZXRBbnRpQWxpYXModHJ1ZSk7CisgICAgICAgICAgICAgICAgbU1vbnRoTnVtRHJhd1BhaW50LnNldFN0eWxlKFN0eWxlLkZJTEwpOworICAgICAgICAgICAgICAgIG1Nb250aE51bURyYXdQYWludC5zZXRUZXh0QWxpZ24oQWxpZ24uQ0VOVEVSKTsKKyAgICAgICAgICAgICAgICBtTW9udGhOdW1EcmF3UGFpbnQuc2V0VGV4dFNpemUobURhdGVUZXh0U2l6ZSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBtU2VsZWN0ZWREYXRlVmVydGljYWxCYXIuc2V0Qm91bmRzKG1TZWxlY3RlZExlZnQgLSBtU2VsZWN0ZWREYXRlVmVydGljYWxCYXJXaWR0aCAvIDIsCi0gICAgICAgICAgICAgICAgICAgIG1XZWVrU2VwZXJhdG9yTGluZVdpZHRoLAotICAgICAgICAgICAgICAgICAgICBtU2VsZWN0ZWRMZWZ0ICsgbVNlbGVjdGVkRGF0ZVZlcnRpY2FsQmFyV2lkdGggLyAyLCBtSGVpZ2h0KTsKLSAgICAgICAgICAgIG1TZWxlY3RlZERhdGVWZXJ0aWNhbEJhci5kcmF3KGNhbnZhcyk7Ci0gICAgICAgICAgICBtU2VsZWN0ZWREYXRlVmVydGljYWxCYXIuc2V0Qm91bmRzKG1TZWxlY3RlZFJpZ2h0IC0gbVNlbGVjdGVkRGF0ZVZlcnRpY2FsQmFyV2lkdGggLyAyLAotICAgICAgICAgICAgICAgICAgICBtV2Vla1NlcGVyYXRvckxpbmVXaWR0aCwKLSAgICAgICAgICAgICAgICAgICAgbVNlbGVjdGVkUmlnaHQgKyBtU2VsZWN0ZWREYXRlVmVydGljYWxCYXJXaWR0aCAvIDIsIG1IZWlnaHQpOwotICAgICAgICAgICAgbVNlbGVjdGVkRGF0ZVZlcnRpY2FsQmFyLmRyYXcoY2FudmFzKTsKLSAgICAgICAgfQogCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwcm90ZWN0ZWQgdm9pZCBvblNpemVDaGFuZ2VkKGludCB3LCBpbnQgaCwgaW50IG9sZHcsIGludCBvbGRoKSB7Ci0gICAgICAgICAgICBtV2lkdGggPSB3OwotICAgICAgICAgICAgdXBkYXRlU2VsZWN0aW9uUG9zaXRpb25zKCk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIC8qKgorICAgICAgICAgICAgICogUmV0dXJucyB0aGUgbW9udGggb2YgdGhlIGZpcnN0IGRheSBpbiB0aGlzIHdlZWsuCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogQHJldHVybiBUaGUgbW9udGggdGhlIGZpcnN0IGRheSBvZiB0aGlzIHZpZXcgaXMgaW4uCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHB1YmxpYyBpbnQgZ2V0TW9udGhPZkZpcnN0V2Vla0RheSgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbU1vbnRoT2ZGaXJzdFdlZWtEYXk7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgLyoqCi0gICAgICAgICAqIFRoaXMgY2FsY3VsYXRlcyB0aGUgcG9zaXRpb25zIGZvciB0aGUgc2VsZWN0ZWQgZGF5IGxpbmVzLgotICAgICAgICAgKi8KLSAgICAgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZVNlbGVjdGlvblBvc2l0aW9ucygpIHsKLSAgICAgICAgICAgIGlmIChtSGFzU2VsZWN0ZWREYXkpIHsKKyAgICAgICAgICAgIC8qKgorICAgICAgICAgICAgICogUmV0dXJucyB0aGUgbW9udGggb2YgdGhlIGxhc3QgZGF5IGluIHRoaXMgd2VlaworICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIEByZXR1cm4gVGhlIG1vbnRoIHRoZSBsYXN0IGRheSBvZiB0aGlzIHZpZXcgaXMgaW4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcHVibGljIGludCBnZXRNb250aE9mTGFzdFdlZWtEYXkoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1MYXN0V2Vla0RheU1vbnRoOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIFJldHVybnMgdGhlIGZpcnN0IGRheSBpbiB0aGlzIHZpZXcuCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogQHJldHVybiBUaGUgZmlyc3QgZGF5IGluIHRoZSB2aWV3LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBwdWJsaWMgQ2FsZW5kYXIgZ2V0Rmlyc3REYXkoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1GaXJzdERheTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBDYWxjdWxhdGVzIHRoZSBkYXkgdGhhdCB0aGUgZ2l2ZW4geCBwb3NpdGlvbiBpcyBpbiwgYWNjb3VudGluZyBmb3IKKyAgICAgICAgICAgICAqIHdlZWsgbnVtYmVyLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIEBwYXJhbSB4IFRoZSB4IHBvc2l0aW9uIG9mIHRoZSB0b3VjaCBldmVudC4KKyAgICAgICAgICAgICAqIEByZXR1cm4gVHJ1ZSBpZiBhIGRheSB3YXMgZm91bmQgZm9yIHRoZSBnaXZlbiBsb2NhdGlvbi4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gZ2V0RGF5RnJvbUxvY2F0aW9uKGZsb2F0IHgsIENhbGVuZGFyIG91dENhbGVuZGFyKSB7CiAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBpc0xheW91dFJ0bCA9IGlzTGF5b3V0UnRsKCk7Ci0gICAgICAgICAgICAgICAgaW50IHNlbGVjdGVkUG9zaXRpb24gPSBtU2VsZWN0ZWREYXkgLSBtRmlyc3REYXlPZldlZWs7Ci0gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkUG9zaXRpb24gPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUG9zaXRpb24gKz0gNzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKG1TaG93V2Vla051bWJlciAmJiAhaXNMYXlvdXRSdGwpIHsKLSAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRQb3NpdGlvbisrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoaXNMYXlvdXRSdGwpIHsKLSAgICAgICAgICAgICAgICAgICAgbVNlbGVjdGVkTGVmdCA9IChtRGF5c1BlcldlZWsgLSAxIC0gc2VsZWN0ZWRQb3NpdGlvbikgKiBtV2lkdGggLyBtTnVtQ2VsbHM7CiAKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQ7CisgICAgICAgICAgICAgICAgaW50IGVuZDsKKworICAgICAgICAgICAgICAgIGlmIChpc0xheW91dFJ0bCkgeworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IG1TaG93V2Vla051bWJlciA/IG1XaWR0aCAtIG1XaWR0aCAvIG1OdW1DZWxscyA6IG1XaWR0aDsKICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBtU2VsZWN0ZWRMZWZ0ID0gc2VsZWN0ZWRQb3NpdGlvbiAqIG1XaWR0aCAvIG1OdW1DZWxsczsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBtU2hvd1dlZWtOdW1iZXIgPyBtV2lkdGggLyBtTnVtQ2VsbHMgOiAwOworICAgICAgICAgICAgICAgICAgICBlbmQgPSBtV2lkdGg7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG1TZWxlY3RlZFJpZ2h0ID0gbVNlbGVjdGVkTGVmdCArIG1XaWR0aCAvIG1OdW1DZWxsczsKKworICAgICAgICAgICAgICAgIGlmICh4IDwgc3RhcnQgfHwgeCA+IGVuZCkgeworICAgICAgICAgICAgICAgICAgICBvdXRDYWxlbmRhci5jbGVhcigpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gU2VsZWN0aW9uIGlzICh4IC0gc3RhcnQpIC8gKHBpeGVscy9kYXkpIHdoaWNoIGlzICh4IC0gc3RhcnQpICogZGF5IC8gcGl4ZWxzCisgICAgICAgICAgICAgICAgaW50IGRheVBvc2l0aW9uID0gKGludCkgKCh4IC0gc3RhcnQpICogbURheXNQZXJXZWVrIC8gKGVuZCAtIHN0YXJ0KSk7CisKKyAgICAgICAgICAgICAgICBpZiAoaXNMYXlvdXRSdGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZGF5UG9zaXRpb24gPSBtRGF5c1BlcldlZWsgLSAxIC0gZGF5UG9zaXRpb247CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgb3V0Q2FsZW5kYXIuc2V0VGltZUluTWlsbGlzKG1GaXJzdERheS5nZXRUaW1lSW5NaWxsaXMoKSk7CisgICAgICAgICAgICAgICAgb3V0Q2FsZW5kYXIuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgZGF5UG9zaXRpb24pOworCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEBPdmVycmlkZQorICAgICAgICAgICAgcHJvdGVjdGVkIHZvaWQgb25EcmF3KENhbnZhcyBjYW52YXMpIHsKKyAgICAgICAgICAgICAgICBkcmF3QmFja2dyb3VuZChjYW52YXMpOworICAgICAgICAgICAgICAgIGRyYXdXZWVrTnVtYmVyc0FuZERhdGVzKGNhbnZhcyk7CisgICAgICAgICAgICAgICAgZHJhd1dlZWtTZXBhcmF0b3JzKGNhbnZhcyk7CisgICAgICAgICAgICAgICAgZHJhd1NlbGVjdGVkRGF0ZVZlcnRpY2FsQmFycyhjYW52YXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIFRoaXMgZHJhd3MgdGhlIHNlbGVjdGlvbiBoaWdobGlnaHQgaWYgYSBkYXkgaXMgc2VsZWN0ZWQgaW4gdGhpcyB3ZWVrLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIEBwYXJhbSBjYW52YXMgVGhlIGNhbnZhcyB0byBkcmF3IG9uCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHByaXZhdGUgdm9pZCBkcmF3QmFja2dyb3VuZChDYW52YXMgY2FudmFzKSB7CisgICAgICAgICAgICAgICAgaWYgKCFtSGFzU2VsZWN0ZWREYXkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtRHJhd1BhaW50LnNldENvbG9yKG1TZWxlY3RlZFdlZWtCYWNrZ3JvdW5kQ29sb3IpOworCisgICAgICAgICAgICAgICAgbVRlbXBSZWN0LnRvcCA9IG1XZWVrU2VwZXJhdG9yTGluZVdpZHRoOworICAgICAgICAgICAgICAgIG1UZW1wUmVjdC5ib3R0b20gPSBtSGVpZ2h0OworCisgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBpc0xheW91dFJ0bCA9IGlzTGF5b3V0UnRsKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoaXNMYXlvdXRSdGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbVRlbXBSZWN0LmxlZnQgPSAwOworICAgICAgICAgICAgICAgICAgICBtVGVtcFJlY3QucmlnaHQgPSBtU2VsZWN0ZWRMZWZ0IC0gMjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtVGVtcFJlY3QubGVmdCA9IG1TaG93V2Vla051bWJlciA/IG1XaWR0aCAvIG1OdW1DZWxscyA6IDA7CisgICAgICAgICAgICAgICAgICAgIG1UZW1wUmVjdC5yaWdodCA9IG1TZWxlY3RlZExlZnQgLSAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYW52YXMuZHJhd1JlY3QobVRlbXBSZWN0LCBtRHJhd1BhaW50KTsKKworICAgICAgICAgICAgICAgIGlmIChpc0xheW91dFJ0bCkgeworICAgICAgICAgICAgICAgICAgICBtVGVtcFJlY3QubGVmdCA9IG1TZWxlY3RlZFJpZ2h0ICsgMzsKKyAgICAgICAgICAgICAgICAgICAgbVRlbXBSZWN0LnJpZ2h0ID0gbVNob3dXZWVrTnVtYmVyID8gbVdpZHRoIC0gbVdpZHRoIC8gbU51bUNlbGxzIDogbVdpZHRoOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1UZW1wUmVjdC5sZWZ0ID0gbVNlbGVjdGVkUmlnaHQgKyAzOworICAgICAgICAgICAgICAgICAgICBtVGVtcFJlY3QucmlnaHQgPSBtV2lkdGg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhbnZhcy5kcmF3UmVjdChtVGVtcFJlY3QsIG1EcmF3UGFpbnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIERyYXdzIHRoZSB3ZWVrIGFuZCBtb250aCBkYXkgbnVtYmVycyBmb3IgdGhpcyB3ZWVrLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIEBwYXJhbSBjYW52YXMgVGhlIGNhbnZhcyB0byBkcmF3IG9uCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHByaXZhdGUgdm9pZCBkcmF3V2Vla051bWJlcnNBbmREYXRlcyhDYW52YXMgY2FudmFzKSB7CisgICAgICAgICAgICAgICAgZmluYWwgZmxvYXQgdGV4dEhlaWdodCA9IG1EcmF3UGFpbnQuZ2V0VGV4dFNpemUoKTsKKyAgICAgICAgICAgICAgICBmaW5hbCBpbnQgeSA9IChpbnQpICgobUhlaWdodCArIHRleHRIZWlnaHQpIC8gMikgLSBtV2Vla1NlcGVyYXRvckxpbmVXaWR0aDsKKyAgICAgICAgICAgICAgICBmaW5hbCBpbnQgbkRheXMgPSBtTnVtQ2VsbHM7CisgICAgICAgICAgICAgICAgZmluYWwgaW50IGRpdmlzb3IgPSAyICogbkRheXM7CisKKyAgICAgICAgICAgICAgICBtRHJhd1BhaW50LnNldFRleHRBbGlnbihBbGlnbi5DRU5URVIpOworICAgICAgICAgICAgICAgIG1EcmF3UGFpbnQuc2V0VGV4dFNpemUobURhdGVUZXh0U2l6ZSk7CisKKyAgICAgICAgICAgICAgICBpbnQgaSA9IDA7CisKKyAgICAgICAgICAgICAgICBpZiAoaXNMYXlvdXRSdGwoKSkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKDsgaSA8IG5EYXlzIC0gMTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtTW9udGhOdW1EcmF3UGFpbnQuc2V0Q29sb3IobUZvY3VzRGF5W2ldID8gbUZvY3VzZWRNb250aERhdGVDb2xvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG1VbmZvY3VzZWRNb250aERhdGVDb2xvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCA9ICgyICogaSArIDEpICogbVdpZHRoIC8gZGl2aXNvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbnZhcy5kcmF3VGV4dChtRGF5TnVtYmVyc1tuRGF5cyAtIDEgLSBpXSwgeCwgeSwgbU1vbnRoTnVtRHJhd1BhaW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobVNob3dXZWVrTnVtYmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtRHJhd1BhaW50LnNldENvbG9yKG1XZWVrTnVtYmVyQ29sb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHggPSBtV2lkdGggLSBtV2lkdGggLyBkaXZpc29yOworICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzLmRyYXdUZXh0KG1EYXlOdW1iZXJzWzBdLCB4LCB5LCBtRHJhd1BhaW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtU2hvd1dlZWtOdW1iZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1EcmF3UGFpbnQuc2V0Q29sb3IobVdlZWtOdW1iZXJDb2xvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCA9IG1XaWR0aCAvIGRpdmlzb3I7CisgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuZHJhd1RleHQobURheU51bWJlcnNbMF0sIHgsIHksIG1EcmF3UGFpbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZvciAoOyBpIDwgbkRheXM7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgbU1vbnRoTnVtRHJhd1BhaW50LnNldENvbG9yKG1Gb2N1c0RheVtpXSA/IG1Gb2N1c2VkTW9udGhEYXRlQ29sb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBtVW5mb2N1c2VkTW9udGhEYXRlQ29sb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHggPSAoMiAqIGkgKyAxKSAqIG1XaWR0aCAvIGRpdmlzb3I7CisgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuZHJhd1RleHQobURheU51bWJlcnNbaV0sIHgsIHksIG1Nb250aE51bURyYXdQYWludCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qKgorICAgICAgICAgICAgICogRHJhd3MgYSBob3Jpem9udGFsIGxpbmUgZm9yIHNlcGFyYXRpbmcgdGhlIHdlZWtzLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIEBwYXJhbSBjYW52YXMgVGhlIGNhbnZhcyB0byBkcmF3IG9uLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBwcml2YXRlIHZvaWQgZHJhd1dlZWtTZXBhcmF0b3JzKENhbnZhcyBjYW52YXMpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiBpdCBpcyB0aGUgdG9wbW9zdCBmdWxseSB2aXNpYmxlIGNoaWxkIGRvIG5vdCBkcmF3IHNlcGFyYXRvciBsaW5lCisgICAgICAgICAgICAgICAgaW50IGZpcnN0RnVsbHlWaXNpYmxlUG9zaXRpb24gPSBtTGlzdFZpZXcuZ2V0Rmlyc3RWaXNpYmxlUG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICBpZiAobUxpc3RWaWV3LmdldENoaWxkQXQoMCkuZ2V0VG9wKCkgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0RnVsbHlWaXNpYmxlUG9zaXRpb24rKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGZpcnN0RnVsbHlWaXNpYmxlUG9zaXRpb24gPT0gbVdlZWspIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtRHJhd1BhaW50LnNldENvbG9yKG1XZWVrU2VwYXJhdG9yTGluZUNvbG9yKTsKKyAgICAgICAgICAgICAgICBtRHJhd1BhaW50LnNldFN0cm9rZVdpZHRoKG1XZWVrU2VwZXJhdG9yTGluZVdpZHRoKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBzdGFydFg7CisgICAgICAgICAgICAgICAgZmxvYXQgc3RvcFg7CisgICAgICAgICAgICAgICAgaWYgKGlzTGF5b3V0UnRsKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnRYID0gMDsKKyAgICAgICAgICAgICAgICAgICAgc3RvcFggPSBtU2hvd1dlZWtOdW1iZXIgPyBtV2lkdGggLSBtV2lkdGggLyBtTnVtQ2VsbHMgOiBtV2lkdGg7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnRYID0gbVNob3dXZWVrTnVtYmVyID8gbVdpZHRoIC8gbU51bUNlbGxzIDogMDsKKyAgICAgICAgICAgICAgICAgICAgc3RvcFggPSBtV2lkdGg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhbnZhcy5kcmF3TGluZShzdGFydFgsIDAsIHN0b3BYLCAwLCBtRHJhd1BhaW50KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBEcmF3cyB0aGUgc2VsZWN0ZWQgZGF0ZSBiYXJzIGlmIHRoaXMgd2VlayBoYXMgYSBzZWxlY3RlZCBkYXkuCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogQHBhcmFtIGNhbnZhcyBUaGUgY2FudmFzIHRvIGRyYXcgb24KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcHJpdmF0ZSB2b2lkIGRyYXdTZWxlY3RlZERhdGVWZXJ0aWNhbEJhcnMoQ2FudmFzIGNhbnZhcykgeworICAgICAgICAgICAgICAgIGlmICghbUhhc1NlbGVjdGVkRGF5KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbVNlbGVjdGVkRGF0ZVZlcnRpY2FsQmFyLnNldEJvdW5kcygKKyAgICAgICAgICAgICAgICAgICAgICAgIG1TZWxlY3RlZExlZnQgLSBtU2VsZWN0ZWREYXRlVmVydGljYWxCYXJXaWR0aCAvIDIsCisgICAgICAgICAgICAgICAgICAgICAgICBtV2Vla1NlcGVyYXRvckxpbmVXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1TZWxlY3RlZExlZnQgKyBtU2VsZWN0ZWREYXRlVmVydGljYWxCYXJXaWR0aCAvIDIsCisgICAgICAgICAgICAgICAgICAgICAgICBtSGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBtU2VsZWN0ZWREYXRlVmVydGljYWxCYXIuZHJhdyhjYW52YXMpOworICAgICAgICAgICAgICAgIG1TZWxlY3RlZERhdGVWZXJ0aWNhbEJhci5zZXRCb3VuZHMoCisgICAgICAgICAgICAgICAgICAgICAgICBtU2VsZWN0ZWRSaWdodCAtIG1TZWxlY3RlZERhdGVWZXJ0aWNhbEJhcldpZHRoIC8gMiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1XZWVrU2VwZXJhdG9yTGluZVdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgbVNlbGVjdGVkUmlnaHQgKyBtU2VsZWN0ZWREYXRlVmVydGljYWxCYXJXaWR0aCAvIDIsCisgICAgICAgICAgICAgICAgICAgICAgICBtSGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBtU2VsZWN0ZWREYXRlVmVydGljYWxCYXIuZHJhdyhjYW52YXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgICAgIHByb3RlY3RlZCB2b2lkIG9uU2l6ZUNoYW5nZWQoaW50IHcsIGludCBoLCBpbnQgb2xkdywgaW50IG9sZGgpIHsKKyAgICAgICAgICAgICAgICBtV2lkdGggPSB3OworICAgICAgICAgICAgICAgIHVwZGF0ZVNlbGVjdGlvblBvc2l0aW9ucygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIFRoaXMgY2FsY3VsYXRlcyB0aGUgcG9zaXRpb25zIGZvciB0aGUgc2VsZWN0ZWQgZGF5IGxpbmVzLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBwcml2YXRlIHZvaWQgdXBkYXRlU2VsZWN0aW9uUG9zaXRpb25zKCkgeworICAgICAgICAgICAgICAgIGlmIChtSGFzU2VsZWN0ZWREYXkpIHsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBpc0xheW91dFJ0bCA9IGlzTGF5b3V0UnRsKCk7CisgICAgICAgICAgICAgICAgICAgIGludCBzZWxlY3RlZFBvc2l0aW9uID0gbVNlbGVjdGVkRGF5IC0gbUZpcnN0RGF5T2ZXZWVrOworICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRQb3NpdGlvbiA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUG9zaXRpb24gKz0gNzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobVNob3dXZWVrTnVtYmVyICYmICFpc0xheW91dFJ0bCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRQb3NpdGlvbisrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0xheW91dFJ0bCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbVNlbGVjdGVkTGVmdCA9IChtRGF5c1BlcldlZWsgLSAxIC0gc2VsZWN0ZWRQb3NpdGlvbikgKiBtV2lkdGggLyBtTnVtQ2VsbHM7CisKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1TZWxlY3RlZExlZnQgPSBzZWxlY3RlZFBvc2l0aW9uICogbVdpZHRoIC8gbU51bUNlbGxzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG1TZWxlY3RlZFJpZ2h0ID0gbVNlbGVjdGVkTGVmdCArIG1XaWR0aCAvIG1OdW1DZWxsczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEBPdmVycmlkZQorICAgICAgICAgICAgcHJvdGVjdGVkIHZvaWQgb25NZWFzdXJlKGludCB3aWR0aE1lYXN1cmVTcGVjLCBpbnQgaGVpZ2h0TWVhc3VyZVNwZWMpIHsKKyAgICAgICAgICAgICAgICBtSGVpZ2h0ID0gKG1MaXN0Vmlldy5nZXRIZWlnaHQoKSAtIG1MaXN0Vmlldy5nZXRQYWRkaW5nVG9wKCkgLSBtTGlzdFZpZXcKKyAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRQYWRkaW5nQm90dG9tKCkpIC8gbVNob3duV2Vla0NvdW50OworICAgICAgICAgICAgICAgIHNldE1lYXN1cmVkRGltZW5zaW9uKE1lYXN1cmVTcGVjLmdldFNpemUod2lkdGhNZWFzdXJlU3BlYyksIG1IZWlnaHQpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHByb3RlY3RlZCB2b2lkIG9uTWVhc3VyZShpbnQgd2lkdGhNZWFzdXJlU3BlYywgaW50IGhlaWdodE1lYXN1cmVTcGVjKSB7Ci0gICAgICAgICAgICBtSGVpZ2h0ID0gKG1MaXN0Vmlldy5nZXRIZWlnaHQoKSAtIG1MaXN0Vmlldy5nZXRQYWRkaW5nVG9wKCkgLSBtTGlzdFZpZXcKLSAgICAgICAgICAgICAgICAgICAgLmdldFBhZGRpbmdCb3R0b20oKSkgLyBtU2hvd25XZWVrQ291bnQ7Ci0gICAgICAgICAgICBzZXRNZWFzdXJlZERpbWVuc2lvbihNZWFzdXJlU3BlYy5nZXRTaXplKHdpZHRoTWVhc3VyZVNwZWMpLCBtSGVpZ2h0KTsKLSAgICAgICAgfQogICAgIH0KKwogfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0NoZWNrQm94LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQ2hlY2tCb3guamF2YQppbmRleCBmMTgwNGY4Li43MTQzOGM5IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQ2hlY2tCb3guamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQ2hlY2tCb3guamF2YQpAQCAtNjQsOCArNjQsMTIgQEAKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5hdHRyLmNoZWNrYm94U3R5bGUpOwogICAgIH0KIAotICAgIHB1YmxpYyBDaGVja0JveChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIENoZWNrQm94KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIENoZWNrQm94KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgIH0KIAogICAgIEBPdmVycmlkZQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0NoZWNrZWRUZXh0Vmlldy5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0NoZWNrZWRUZXh0Vmlldy5qYXZhCmluZGV4IDVjMTBhNzcuLjc4YjFiNzUgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9DaGVja2VkVGV4dFZpZXcuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQ2hlY2tlZFRleHRWaWV3LmphdmEKQEAgLTU4LDExICs1OCwxNSBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBSLmF0dHIuY2hlY2tlZFRleHRWaWV3U3R5bGUpOwogICAgIH0KIAotICAgIHB1YmxpYyBDaGVja2VkVGV4dFZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgIHB1YmxpYyBDaGVja2VkVGV4dFZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CiAKLSAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAotICAgICAgICAgICAgICAgIFIuc3R5bGVhYmxlLkNoZWNrZWRUZXh0VmlldywgZGVmU3R5bGUsIDApOworICAgIHB1YmxpYyBDaGVja2VkVGV4dFZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBSLnN0eWxlYWJsZS5DaGVja2VkVGV4dFZpZXcsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIERyYXdhYmxlIGQgPSBhLmdldERyYXdhYmxlKFIuc3R5bGVhYmxlLkNoZWNrZWRUZXh0Vmlld19jaGVja01hcmspOwogICAgICAgICBpZiAoZCAhPSBudWxsKSB7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvQ2hyb25vbWV0ZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9DaHJvbm9tZXRlci5qYXZhCmluZGV4IGI3YTEyNmUuLmY4ZDQ4MmQgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9DaHJvbm9tZXRlci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9DaHJvbm9tZXRlci5qYXZhCkBAIC05NiwxMiArOTYsMTUgQEAKICAgICAgKiBJbml0aWFsaXplIHdpdGggc3RhbmRhcmQgdmlldyBsYXlvdXQgaW5mb3JtYXRpb24gYW5kIHN0eWxlLgogICAgICAqIFNldHMgdGhlIGJhc2UgdG8gdGhlIGN1cnJlbnQgdGltZS4KICAgICAgKi8KLSAgICBwdWJsaWMgQ2hyb25vbWV0ZXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgIHB1YmxpYyBDaHJvbm9tZXRlcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KIAotICAgICAgICBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCi0gICAgICAgICAgICAgICAgYXR0cnMsCi0gICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuQ2hyb25vbWV0ZXIsIGRlZlN0eWxlLCAwKTsKKyAgICBwdWJsaWMgQ2hyb25vbWV0ZXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5DaHJvbm9tZXRlciwgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIHNldEZvcm1hdChhLmdldFN0cmluZyhjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5DaHJvbm9tZXRlcl9mb3JtYXQpKTsKICAgICAgICAgYS5yZWN5Y2xlKCk7CiAKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9Db21wb3VuZEJ1dHRvbi5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0NvbXBvdW5kQnV0dG9uLmphdmEKaW5kZXggMDgyZmYzZC4uYmRiNTA0NiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0NvbXBvdW5kQnV0dG9uLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0NvbXBvdW5kQnV0dG9uLmphdmEKQEAgLTY0LDEyICs2NCwxNSBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCAwKTsKICAgICB9CiAKLSAgICBwdWJsaWMgQ29tcG91bmRCdXR0b24oQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgIHB1YmxpYyBDb21wb3VuZEJ1dHRvbihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KIAotICAgICAgICBUeXBlZEFycmF5IGEgPQotICAgICAgICAgICAgICAgIGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKLSAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5Db21wb3VuZEJ1dHRvbiwgZGVmU3R5bGUsIDApOworICAgIHB1YmxpYyBDb21wb3VuZEJ1dHRvbihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkNvbXBvdW5kQnV0dG9uLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICBEcmF3YWJsZSBkID0gYS5nZXREcmF3YWJsZShjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5Db21wb3VuZEJ1dHRvbl9idXR0b24pOwogICAgICAgICBpZiAoZCAhPSBudWxsKSB7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvRGF0ZVBpY2tlci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0RhdGVQaWNrZXIuamF2YQppbmRleCBkMDMxNjFlLi4yNjVkYmNkIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvRGF0ZVBpY2tlci5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9EYXRlUGlja2VyLmphdmEKQEAgLTI0LDcgKzI0LDYgQEAKIGltcG9ydCBhbmRyb2lkLm9zLlBhcmNlbGFibGU7CiBpbXBvcnQgYW5kcm9pZC50ZXh0LlRleHRVdGlsczsKIGltcG9ydCBhbmRyb2lkLnRleHQuSW5wdXRUeXBlOwotaW1wb3J0IGFuZHJvaWQudGV4dC5mb3JtYXQuRGF0ZUZvcm1hdDsKIGltcG9ydCBhbmRyb2lkLnRleHQuZm9ybWF0LkRhdGVVdGlsczsKIGltcG9ydCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0OwogaW1wb3J0IGFuZHJvaWQudXRpbC5Mb2c7CkBAIC03Niw1MyArNzUsNyBAQAogCiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIExPR19UQUcgPSBEYXRlUGlja2VyLmNsYXNzLmdldFNpbXBsZU5hbWUoKTsKIAotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRFX0ZPUk1BVCA9ICJNTS9kZC95eXl5IjsKLQotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX1NUQVJUX1lFQVIgPSAxOTAwOwotCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfRU5EX1lFQVIgPSAyMTAwOwotCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUZBVUxUX0NBTEVOREFSX1ZJRVdfU0hPV04gPSB0cnVlOwotCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUZBVUxUX1NQSU5ORVJTX1NIT1dOID0gdHJ1ZTsKLQotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVGQVVMVF9FTkFCTEVEX1NUQVRFID0gdHJ1ZTsKLQotICAgIHByaXZhdGUgZmluYWwgTGluZWFyTGF5b3V0IG1TcGlubmVyczsKLQotICAgIHByaXZhdGUgZmluYWwgTnVtYmVyUGlja2VyIG1EYXlTcGlubmVyOwotCi0gICAgcHJpdmF0ZSBmaW5hbCBOdW1iZXJQaWNrZXIgbU1vbnRoU3Bpbm5lcjsKLQotICAgIHByaXZhdGUgZmluYWwgTnVtYmVyUGlja2VyIG1ZZWFyU3Bpbm5lcjsKLQotICAgIHByaXZhdGUgZmluYWwgRWRpdFRleHQgbURheVNwaW5uZXJJbnB1dDsKLQotICAgIHByaXZhdGUgZmluYWwgRWRpdFRleHQgbU1vbnRoU3Bpbm5lcklucHV0OwotCi0gICAgcHJpdmF0ZSBmaW5hbCBFZGl0VGV4dCBtWWVhclNwaW5uZXJJbnB1dDsKLQotICAgIHByaXZhdGUgZmluYWwgQ2FsZW5kYXJWaWV3IG1DYWxlbmRhclZpZXc7Ci0KLSAgICBwcml2YXRlIExvY2FsZSBtQ3VycmVudExvY2FsZTsKLQotICAgIHByaXZhdGUgT25EYXRlQ2hhbmdlZExpc3RlbmVyIG1PbkRhdGVDaGFuZ2VkTGlzdGVuZXI7Ci0KLSAgICBwcml2YXRlIFN0cmluZ1tdIG1TaG9ydE1vbnRoczsKLQotICAgIHByaXZhdGUgZmluYWwgamF2YS50ZXh0LkRhdGVGb3JtYXQgbURhdGVGb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChEQVRFX0ZPUk1BVCk7Ci0KLSAgICBwcml2YXRlIGludCBtTnVtYmVyT2ZNb250aHM7Ci0KLSAgICBwcml2YXRlIENhbGVuZGFyIG1UZW1wRGF0ZTsKLQotICAgIHByaXZhdGUgQ2FsZW5kYXIgbU1pbkRhdGU7Ci0KLSAgICBwcml2YXRlIENhbGVuZGFyIG1NYXhEYXRlOwotCi0gICAgcHJpdmF0ZSBDYWxlbmRhciBtQ3VycmVudERhdGU7Ci0KLSAgICBwcml2YXRlIGJvb2xlYW4gbUlzRW5hYmxlZCA9IERFRkFVTFRfRU5BQkxFRF9TVEFURTsKKyAgICBwcml2YXRlIERhdGVQaWNrZXJEZWxlZ2F0ZSBtRGVsZWdhdGU7CiAKICAgICAvKioKICAgICAgKiBUaGUgY2FsbGJhY2sgdXNlZCB0byBpbmRpY2F0ZSB0aGUgdXNlciBjaGFuZ2VzXGQgdGhlIGRhdGUuCkBAIC0xNDksNDQzICsxMDIsMTQgQEAKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgUi5hdHRyLmRhdGVQaWNrZXJTdHlsZSk7CiAgICAgfQogCi0gICAgcHVibGljIERhdGVQaWNrZXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOwotCi0gICAgICAgIC8vIGluaXRpYWxpemF0aW9uIGJhc2VkIG9uIGxvY2FsZQotICAgICAgICBzZXRDdXJyZW50TG9jYWxlKExvY2FsZS5nZXREZWZhdWx0KCkpOwotCi0gICAgICAgIFR5cGVkQXJyYXkgYXR0cmlidXRlc0FycmF5ID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLCBSLnN0eWxlYWJsZS5EYXRlUGlja2VyLAotICAgICAgICAgICAgICAgIGRlZlN0eWxlLCAwKTsKLSAgICAgICAgYm9vbGVhbiBzcGlubmVyc1Nob3duID0gYXR0cmlidXRlc0FycmF5LmdldEJvb2xlYW4oUi5zdHlsZWFibGUuRGF0ZVBpY2tlcl9zcGlubmVyc1Nob3duLAotICAgICAgICAgICAgICAgIERFRkFVTFRfU1BJTk5FUlNfU0hPV04pOwotICAgICAgICBib29sZWFuIGNhbGVuZGFyVmlld1Nob3duID0gYXR0cmlidXRlc0FycmF5LmdldEJvb2xlYW4oCi0gICAgICAgICAgICAgICAgUi5zdHlsZWFibGUuRGF0ZVBpY2tlcl9jYWxlbmRhclZpZXdTaG93biwgREVGQVVMVF9DQUxFTkRBUl9WSUVXX1NIT1dOKTsKLSAgICAgICAgaW50IHN0YXJ0WWVhciA9IGF0dHJpYnV0ZXNBcnJheS5nZXRJbnQoUi5zdHlsZWFibGUuRGF0ZVBpY2tlcl9zdGFydFllYXIsCi0gICAgICAgICAgICAgICAgREVGQVVMVF9TVEFSVF9ZRUFSKTsKLSAgICAgICAgaW50IGVuZFllYXIgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0SW50KFIuc3R5bGVhYmxlLkRhdGVQaWNrZXJfZW5kWWVhciwgREVGQVVMVF9FTkRfWUVBUik7Ci0gICAgICAgIFN0cmluZyBtaW5EYXRlID0gYXR0cmlidXRlc0FycmF5LmdldFN0cmluZyhSLnN0eWxlYWJsZS5EYXRlUGlja2VyX21pbkRhdGUpOwotICAgICAgICBTdHJpbmcgbWF4RGF0ZSA9IGF0dHJpYnV0ZXNBcnJheS5nZXRTdHJpbmcoUi5zdHlsZWFibGUuRGF0ZVBpY2tlcl9tYXhEYXRlKTsKLSAgICAgICAgaW50IGxheW91dFJlc291cmNlSWQgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0UmVzb3VyY2VJZChSLnN0eWxlYWJsZS5EYXRlUGlja2VyX2ludGVybmFsTGF5b3V0LAotICAgICAgICAgICAgICAgIFIubGF5b3V0LmRhdGVfcGlja2VyKTsKLSAgICAgICAgYXR0cmlidXRlc0FycmF5LnJlY3ljbGUoKTsKLQotICAgICAgICBMYXlvdXRJbmZsYXRlciBpbmZsYXRlciA9IChMYXlvdXRJbmZsYXRlcikgY29udGV4dAotICAgICAgICAgICAgICAgIC5nZXRTeXN0ZW1TZXJ2aWNlKENvbnRleHQuTEFZT1VUX0lORkxBVEVSX1NFUlZJQ0UpOwotICAgICAgICBpbmZsYXRlci5pbmZsYXRlKGxheW91dFJlc291cmNlSWQsIHRoaXMsIHRydWUpOwotCi0gICAgICAgIE9uVmFsdWVDaGFuZ2VMaXN0ZW5lciBvbkNoYW5nZUxpc3RlbmVyID0gbmV3IE9uVmFsdWVDaGFuZ2VMaXN0ZW5lcigpIHsKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uVmFsdWVDaGFuZ2UoTnVtYmVyUGlja2VyIHBpY2tlciwgaW50IG9sZFZhbCwgaW50IG5ld1ZhbCkgewotICAgICAgICAgICAgICAgIHVwZGF0ZUlucHV0U3RhdGUoKTsKLSAgICAgICAgICAgICAgICBtVGVtcERhdGUuc2V0VGltZUluTWlsbGlzKG1DdXJyZW50RGF0ZS5nZXRUaW1lSW5NaWxsaXMoKSk7Ci0gICAgICAgICAgICAgICAgLy8gdGFrZSBjYXJlIG9mIHdyYXBwaW5nIG9mIGRheXMgYW5kIG1vbnRocyB0byB1cGRhdGUgZ3JlYXRlciBmaWVsZHMKLSAgICAgICAgICAgICAgICBpZiAocGlja2VyID09IG1EYXlTcGlubmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCBtYXhEYXlPZk1vbnRoID0gbVRlbXBEYXRlLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG9sZFZhbCA9PSBtYXhEYXlPZk1vbnRoICYmIG5ld1ZhbCA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtVGVtcERhdGUuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob2xkVmFsID09IDEgJiYgbmV3VmFsID09IG1heERheU9mTW9udGgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAtMSk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtVGVtcERhdGUuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgbmV3VmFsIC0gb2xkVmFsKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGlja2VyID09IG1Nb250aFNwaW5uZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG9sZFZhbCA9PSAxMSAmJiBuZXdWYWwgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgbVRlbXBEYXRlLmFkZChDYWxlbmRhci5NT05USCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob2xkVmFsID09IDAgJiYgbmV3VmFsID09IDExKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtVGVtcERhdGUuYWRkKENhbGVuZGFyLk1PTlRILCAtMSk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtVGVtcERhdGUuYWRkKENhbGVuZGFyLk1PTlRILCBuZXdWYWwgLSBvbGRWYWwpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwaWNrZXIgPT0gbVllYXJTcGlubmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5zZXQoQ2FsZW5kYXIuWUVBUiwgbmV3VmFsKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIC8vIG5vdyBzZXQgdGhlIGRhdGUgdG8gdGhlIGFkanVzdGVkIG9uZQotICAgICAgICAgICAgICAgIHNldERhdGUobVRlbXBEYXRlLmdldChDYWxlbmRhci5ZRUFSKSwgbVRlbXBEYXRlLmdldChDYWxlbmRhci5NT05USCksCi0gICAgICAgICAgICAgICAgICAgICAgICBtVGVtcERhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOwotICAgICAgICAgICAgICAgIHVwZGF0ZVNwaW5uZXJzKCk7Ci0gICAgICAgICAgICAgICAgdXBkYXRlQ2FsZW5kYXJWaWV3KCk7Ci0gICAgICAgICAgICAgICAgbm90aWZ5RGF0ZUNoYW5nZWQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgICAgICBtU3Bpbm5lcnMgPSAoTGluZWFyTGF5b3V0KSBmaW5kVmlld0J5SWQoUi5pZC5waWNrZXJzKTsKLQotICAgICAgICAvLyBjYWxlbmRhciB2aWV3IGRheS1waWNrZXIKLSAgICAgICAgbUNhbGVuZGFyVmlldyA9IChDYWxlbmRhclZpZXcpIGZpbmRWaWV3QnlJZChSLmlkLmNhbGVuZGFyX3ZpZXcpOwotICAgICAgICBtQ2FsZW5kYXJWaWV3LnNldE9uRGF0ZUNoYW5nZUxpc3RlbmVyKG5ldyBDYWxlbmRhclZpZXcuT25EYXRlQ2hhbmdlTGlzdGVuZXIoKSB7Ci0gICAgICAgICAgICBwdWJsaWMgdm9pZCBvblNlbGVjdGVkRGF5Q2hhbmdlKENhbGVuZGFyVmlldyB2aWV3LCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgbW9udGhEYXkpIHsKLSAgICAgICAgICAgICAgICBzZXREYXRlKHllYXIsIG1vbnRoLCBtb250aERheSk7Ci0gICAgICAgICAgICAgICAgdXBkYXRlU3Bpbm5lcnMoKTsKLSAgICAgICAgICAgICAgICBub3RpZnlEYXRlQ2hhbmdlZCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICAvLyBkYXkKLSAgICAgICAgbURheVNwaW5uZXIgPSAoTnVtYmVyUGlja2VyKSBmaW5kVmlld0J5SWQoUi5pZC5kYXkpOwotICAgICAgICBtRGF5U3Bpbm5lci5zZXRGb3JtYXR0ZXIoTnVtYmVyUGlja2VyLmdldFR3b0RpZ2l0Rm9ybWF0dGVyKCkpOwotICAgICAgICBtRGF5U3Bpbm5lci5zZXRPbkxvbmdQcmVzc1VwZGF0ZUludGVydmFsKDEwMCk7Ci0gICAgICAgIG1EYXlTcGlubmVyLnNldE9uVmFsdWVDaGFuZ2VkTGlzdGVuZXIob25DaGFuZ2VMaXN0ZW5lcik7Ci0gICAgICAgIG1EYXlTcGlubmVySW5wdXQgPSAoRWRpdFRleHQpIG1EYXlTcGlubmVyLmZpbmRWaWV3QnlJZChSLmlkLm51bWJlcnBpY2tlcl9pbnB1dCk7Ci0KLSAgICAgICAgLy8gbW9udGgKLSAgICAgICAgbU1vbnRoU3Bpbm5lciA9IChOdW1iZXJQaWNrZXIpIGZpbmRWaWV3QnlJZChSLmlkLm1vbnRoKTsKLSAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXRNaW5WYWx1ZSgwKTsKLSAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXRNYXhWYWx1ZShtTnVtYmVyT2ZNb250aHMgLSAxKTsKLSAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXREaXNwbGF5ZWRWYWx1ZXMobVNob3J0TW9udGhzKTsKLSAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXRPbkxvbmdQcmVzc1VwZGF0ZUludGVydmFsKDIwMCk7Ci0gICAgICAgIG1Nb250aFNwaW5uZXIuc2V0T25WYWx1ZUNoYW5nZWRMaXN0ZW5lcihvbkNoYW5nZUxpc3RlbmVyKTsKLSAgICAgICAgbU1vbnRoU3Bpbm5lcklucHV0ID0gKEVkaXRUZXh0KSBtTW9udGhTcGlubmVyLmZpbmRWaWV3QnlJZChSLmlkLm51bWJlcnBpY2tlcl9pbnB1dCk7Ci0KLSAgICAgICAgLy8geWVhcgotICAgICAgICBtWWVhclNwaW5uZXIgPSAoTnVtYmVyUGlja2VyKSBmaW5kVmlld0J5SWQoUi5pZC55ZWFyKTsKLSAgICAgICAgbVllYXJTcGlubmVyLnNldE9uTG9uZ1ByZXNzVXBkYXRlSW50ZXJ2YWwoMTAwKTsKLSAgICAgICAgbVllYXJTcGlubmVyLnNldE9uVmFsdWVDaGFuZ2VkTGlzdGVuZXIob25DaGFuZ2VMaXN0ZW5lcik7Ci0gICAgICAgIG1ZZWFyU3Bpbm5lcklucHV0ID0gKEVkaXRUZXh0KSBtWWVhclNwaW5uZXIuZmluZFZpZXdCeUlkKFIuaWQubnVtYmVycGlja2VyX2lucHV0KTsKLQotICAgICAgICAvLyBzaG93IG9ubHkgd2hhdCB0aGUgdXNlciByZXF1aXJlZCBidXQgbWFrZSBzdXJlIHdlCi0gICAgICAgIC8vIHNob3cgc29tZXRoaW5nIGFuZCB0aGUgc3Bpbm5lcnMgaGF2ZSBoaWdoZXIgcHJpb3JpdHkKLSAgICAgICAgaWYgKCFzcGlubmVyc1Nob3duICYmICFjYWxlbmRhclZpZXdTaG93bikgewotICAgICAgICAgICAgc2V0U3Bpbm5lcnNTaG93bih0cnVlKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldFNwaW5uZXJzU2hvd24oc3Bpbm5lcnNTaG93bik7Ci0gICAgICAgICAgICBzZXRDYWxlbmRhclZpZXdTaG93bihjYWxlbmRhclZpZXdTaG93bik7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBzZXQgdGhlIG1pbiBkYXRlIGdpdmluZyBwcmlvcml0eSBvZiB0aGUgbWluRGF0ZSBvdmVyIHN0YXJ0WWVhcgotICAgICAgICBtVGVtcERhdGUuY2xlYXIoKTsKLSAgICAgICAgaWYgKCFUZXh0VXRpbHMuaXNFbXB0eShtaW5EYXRlKSkgewotICAgICAgICAgICAgaWYgKCFwYXJzZURhdGUobWluRGF0ZSwgbVRlbXBEYXRlKSkgewotICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5zZXQoc3RhcnRZZWFyLCAwLCAxKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1UZW1wRGF0ZS5zZXQoc3RhcnRZZWFyLCAwLCAxKTsKLSAgICAgICAgfQotICAgICAgICBzZXRNaW5EYXRlKG1UZW1wRGF0ZS5nZXRUaW1lSW5NaWxsaXMoKSk7Ci0KLSAgICAgICAgLy8gc2V0IHRoZSBtYXggZGF0ZSBnaXZpbmcgcHJpb3JpdHkgb2YgdGhlIG1heERhdGUgb3ZlciBlbmRZZWFyCi0gICAgICAgIG1UZW1wRGF0ZS5jbGVhcigpOwotICAgICAgICBpZiAoIVRleHRVdGlscy5pc0VtcHR5KG1heERhdGUpKSB7Ci0gICAgICAgICAgICBpZiAoIXBhcnNlRGF0ZShtYXhEYXRlLCBtVGVtcERhdGUpKSB7Ci0gICAgICAgICAgICAgICAgbVRlbXBEYXRlLnNldChlbmRZZWFyLCAxMSwgMzEpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbVRlbXBEYXRlLnNldChlbmRZZWFyLCAxMSwgMzEpOwotICAgICAgICB9Ci0gICAgICAgIHNldE1heERhdGUobVRlbXBEYXRlLmdldFRpbWVJbk1pbGxpcygpKTsKLQotICAgICAgICAvLyBpbml0aWFsaXplIHRvIGN1cnJlbnQgZGF0ZQotICAgICAgICBtQ3VycmVudERhdGUuc2V0VGltZUluTWlsbGlzKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpKTsKLSAgICAgICAgaW5pdChtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLllFQVIpLCBtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLk1PTlRIKSwgbUN1cnJlbnREYXRlCi0gICAgICAgICAgICAgICAgLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpLCBudWxsKTsKLQotICAgICAgICAvLyByZS1vcmRlciB0aGUgbnVtYmVyIHNwaW5uZXJzIHRvIG1hdGNoIHRoZSBjdXJyZW50IGRhdGUgZm9ybWF0Ci0gICAgICAgIHJlb3JkZXJTcGlubmVycygpOwotCi0gICAgICAgIC8vIGFjY2Vzc2liaWxpdHkKLSAgICAgICAgc2V0Q29udGVudERlc2NyaXB0aW9ucygpOwotCi0gICAgICAgIC8vIElmIG5vdCBleHBsaWNpdGx5IHNwZWNpZmllZCB0aGlzIHZpZXcgaXMgaW1wb3J0YW50IGZvciBhY2Nlc3NpYmlsaXR5LgotICAgICAgICBpZiAoZ2V0SW1wb3J0YW50Rm9yQWNjZXNzaWJpbGl0eSgpID09IElNUE9SVEFOVF9GT1JfQUNDRVNTSUJJTElUWV9BVVRPKSB7Ci0gICAgICAgICAgICBzZXRJbXBvcnRhbnRGb3JBY2Nlc3NpYmlsaXR5KElNUE9SVEFOVF9GT1JfQUNDRVNTSUJJTElUWV9ZRVMpOwotICAgICAgICB9CisgICAgcHVibGljIERhdGVQaWNrZXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKICAgICB9CiAKLSAgICAvKioKLSAgICAgKiBHZXRzIHRoZSBtaW5pbWFsIGRhdGUgc3VwcG9ydGVkIGJ5IHRoaXMge0BsaW5rIERhdGVQaWNrZXJ9IGluCi0gICAgICogbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MCAwMDowMDowMCBpbgotICAgICAqIHtAbGluayBUaW1lWm9uZSNnZXREZWZhdWx0KCl9IHRpbWUgem9uZS4KLSAgICAgKiA8cD4KLSAgICAgKiBOb3RlOiBUaGUgZGVmYXVsdCBtaW5pbWFsIGRhdGUgaXMgMDEvMDEvMTkwMC4KLSAgICAgKiA8cD4KLSAgICAgKgotICAgICAqIEByZXR1cm4gVGhlIG1pbmltYWwgc3VwcG9ydGVkIGRhdGUuCi0gICAgICovCi0gICAgcHVibGljIGxvbmcgZ2V0TWluRGF0ZSgpIHsKLSAgICAgICAgcmV0dXJuIG1DYWxlbmRhclZpZXcuZ2V0TWluRGF0ZSgpOwotICAgIH0KKyAgICBwdWJsaWMgRGF0ZVBpY2tlcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAotICAgIC8qKgotICAgICAqIFNldHMgdGhlIG1pbmltYWwgZGF0ZSBzdXBwb3J0ZWQgYnkgdGhpcyB7QGxpbmsgTnVtYmVyUGlja2VyfSBpbgotICAgICAqIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAgMDA6MDA6MDAgaW4KLSAgICAgKiB7QGxpbmsgVGltZVpvbmUjZ2V0RGVmYXVsdCgpfSB0aW1lIHpvbmUuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gbWluRGF0ZSBUaGUgbWluaW1hbCBzdXBwb3J0ZWQgZGF0ZS4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzZXRNaW5EYXRlKGxvbmcgbWluRGF0ZSkgewotICAgICAgICBtVGVtcERhdGUuc2V0VGltZUluTWlsbGlzKG1pbkRhdGUpOwotICAgICAgICBpZiAobVRlbXBEYXRlLmdldChDYWxlbmRhci5ZRUFSKSA9PSBtTWluRGF0ZS5nZXQoQ2FsZW5kYXIuWUVBUikKLSAgICAgICAgICAgICAgICAmJiBtVGVtcERhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSAhPSBtTWluRGF0ZS5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgbU1pbkRhdGUuc2V0VGltZUluTWlsbGlzKG1pbkRhdGUpOwotICAgICAgICBtQ2FsZW5kYXJWaWV3LnNldE1pbkRhdGUobWluRGF0ZSk7Ci0gICAgICAgIGlmIChtQ3VycmVudERhdGUuYmVmb3JlKG1NaW5EYXRlKSkgewotICAgICAgICAgICAgbUN1cnJlbnREYXRlLnNldFRpbWVJbk1pbGxpcyhtTWluRGF0ZS5nZXRUaW1lSW5NaWxsaXMoKSk7Ci0gICAgICAgICAgICB1cGRhdGVDYWxlbmRhclZpZXcoKTsKLSAgICAgICAgfQotICAgICAgICB1cGRhdGVTcGlubmVycygpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEdldHMgdGhlIG1heGltYWwgZGF0ZSBzdXBwb3J0ZWQgYnkgdGhpcyB7QGxpbmsgRGF0ZVBpY2tlcn0gaW4KLSAgICAgKiBtaWxsaXNlY29uZHMgc2luY2UgSmFudWFyeSAxLCAxOTcwIDAwOjAwOjAwIGluCi0gICAgICoge0BsaW5rIFRpbWVab25lI2dldERlZmF1bHQoKX0gdGltZSB6b25lLgotICAgICAqIDxwPgotICAgICAqIE5vdGU6IFRoZSBkZWZhdWx0IG1heGltYWwgZGF0ZSBpcyAxMi8zMS8yMTAwLgotICAgICAqIDxwPgotICAgICAqCi0gICAgICogQHJldHVybiBUaGUgbWF4aW1hbCBzdXBwb3J0ZWQgZGF0ZS4KLSAgICAgKi8KLSAgICBwdWJsaWMgbG9uZyBnZXRNYXhEYXRlKCkgewotICAgICAgICByZXR1cm4gbUNhbGVuZGFyVmlldy5nZXRNYXhEYXRlKCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogU2V0cyB0aGUgbWF4aW1hbCBkYXRlIHN1cHBvcnRlZCBieSB0aGlzIHtAbGluayBEYXRlUGlja2VyfSBpbgotICAgICAqIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAgMDA6MDA6MDAgaW4KLSAgICAgKiB7QGxpbmsgVGltZVpvbmUjZ2V0RGVmYXVsdCgpfSB0aW1lIHpvbmUuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gbWF4RGF0ZSBUaGUgbWF4aW1hbCBzdXBwb3J0ZWQgZGF0ZS4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzZXRNYXhEYXRlKGxvbmcgbWF4RGF0ZSkgewotICAgICAgICBtVGVtcERhdGUuc2V0VGltZUluTWlsbGlzKG1heERhdGUpOwotICAgICAgICBpZiAobVRlbXBEYXRlLmdldChDYWxlbmRhci5ZRUFSKSA9PSBtTWF4RGF0ZS5nZXQoQ2FsZW5kYXIuWUVBUikKLSAgICAgICAgICAgICAgICAmJiBtVGVtcERhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSAhPSBtTWF4RGF0ZS5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgbU1heERhdGUuc2V0VGltZUluTWlsbGlzKG1heERhdGUpOwotICAgICAgICBtQ2FsZW5kYXJWaWV3LnNldE1heERhdGUobWF4RGF0ZSk7Ci0gICAgICAgIGlmIChtQ3VycmVudERhdGUuYWZ0ZXIobU1heERhdGUpKSB7Ci0gICAgICAgICAgICBtQ3VycmVudERhdGUuc2V0VGltZUluTWlsbGlzKG1NYXhEYXRlLmdldFRpbWVJbk1pbGxpcygpKTsKLSAgICAgICAgICAgIHVwZGF0ZUNhbGVuZGFyVmlldygpOwotICAgICAgICB9Ci0gICAgICAgIHVwZGF0ZVNwaW5uZXJzKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0RW5hYmxlZChib29sZWFuIGVuYWJsZWQpIHsKLSAgICAgICAgaWYgKG1Jc0VuYWJsZWQgPT0gZW5hYmxlZCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHN1cGVyLnNldEVuYWJsZWQoZW5hYmxlZCk7Ci0gICAgICAgIG1EYXlTcGlubmVyLnNldEVuYWJsZWQoZW5hYmxlZCk7Ci0gICAgICAgIG1Nb250aFNwaW5uZXIuc2V0RW5hYmxlZChlbmFibGVkKTsKLSAgICAgICAgbVllYXJTcGlubmVyLnNldEVuYWJsZWQoZW5hYmxlZCk7Ci0gICAgICAgIG1DYWxlbmRhclZpZXcuc2V0RW5hYmxlZChlbmFibGVkKTsKLSAgICAgICAgbUlzRW5hYmxlZCA9IGVuYWJsZWQ7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNFbmFibGVkKCkgewotICAgICAgICByZXR1cm4gbUlzRW5hYmxlZDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBkaXNwYXRjaFBvcHVsYXRlQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCkgewotICAgICAgICBvblBvcHVsYXRlQWNjZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgb25Qb3B1bGF0ZUFjY2Vzc2liaWxpdHlFdmVudChBY2Nlc3NpYmlsaXR5RXZlbnQgZXZlbnQpIHsKLSAgICAgICAgc3VwZXIub25Qb3B1bGF0ZUFjY2Vzc2liaWxpdHlFdmVudChldmVudCk7Ci0KLSAgICAgICAgZmluYWwgaW50IGZsYWdzID0gRGF0ZVV0aWxzLkZPUk1BVF9TSE9XX0RBVEUgfCBEYXRlVXRpbHMuRk9STUFUX1NIT1dfWUVBUjsKLSAgICAgICAgU3RyaW5nIHNlbGVjdGVkRGF0ZVV0dGVyYW5jZSA9IERhdGVVdGlscy5mb3JtYXREYXRlVGltZShtQ29udGV4dCwKLSAgICAgICAgICAgICAgICBtQ3VycmVudERhdGUuZ2V0VGltZUluTWlsbGlzKCksIGZsYWdzKTsKLSAgICAgICAgZXZlbnQuZ2V0VGV4dCgpLmFkZChzZWxlY3RlZERhdGVVdHRlcmFuY2UpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIG9uSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHlFdmVudChBY2Nlc3NpYmlsaXR5RXZlbnQgZXZlbnQpIHsKLSAgICAgICAgc3VwZXIub25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKLSAgICAgICAgZXZlbnQuc2V0Q2xhc3NOYW1lKERhdGVQaWNrZXIuY2xhc3MuZ2V0TmFtZSgpKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBvbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5Tm9kZUluZm8oQWNjZXNzaWJpbGl0eU5vZGVJbmZvIGluZm8pIHsKLSAgICAgICAgc3VwZXIub25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eU5vZGVJbmZvKGluZm8pOwotICAgICAgICBpbmZvLnNldENsYXNzTmFtZShEYXRlUGlja2VyLmNsYXNzLmdldE5hbWUoKSk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHJvdGVjdGVkIHZvaWQgb25Db25maWd1cmF0aW9uQ2hhbmdlZChDb25maWd1cmF0aW9uIG5ld0NvbmZpZykgewotICAgICAgICBzdXBlci5vbkNvbmZpZ3VyYXRpb25DaGFuZ2VkKG5ld0NvbmZpZyk7Ci0gICAgICAgIHNldEN1cnJlbnRMb2NhbGUobmV3Q29uZmlnLmxvY2FsZSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogR2V0cyB3aGV0aGVyIHRoZSB7QGxpbmsgQ2FsZW5kYXJWaWV3fSBpcyBzaG93bi4KLSAgICAgKgotICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGUgY2FsZW5kYXIgdmlldyBpcyBzaG93bi4KLSAgICAgKiBAc2VlICNnZXRDYWxlbmRhclZpZXcoKQotICAgICAqLwotICAgIHB1YmxpYyBib29sZWFuIGdldENhbGVuZGFyVmlld1Nob3duKCkgewotICAgICAgICByZXR1cm4gKG1DYWxlbmRhclZpZXcuZ2V0VmlzaWJpbGl0eSgpID09IFZpZXcuVklTSUJMRSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogR2V0cyB0aGUge0BsaW5rIENhbGVuZGFyVmlld30uCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIFRoZSBjYWxlbmRhciB2aWV3LgotICAgICAqIEBzZWUgI2dldENhbGVuZGFyVmlld1Nob3duKCkKLSAgICAgKi8KLSAgICBwdWJsaWMgQ2FsZW5kYXJWaWV3IGdldENhbGVuZGFyVmlldyAoKSB7Ci0gICAgICAgIHJldHVybiBtQ2FsZW5kYXJWaWV3OwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFNldHMgd2hldGhlciB0aGUge0BsaW5rIENhbGVuZGFyVmlld30gaXMgc2hvd24uCi0gICAgICoKLSAgICAgKiBAcGFyYW0gc2hvd24gVHJ1ZSBpZiB0aGUgY2FsZW5kYXIgdmlldyBpcyB0byBiZSBzaG93bi4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzZXRDYWxlbmRhclZpZXdTaG93bihib29sZWFuIHNob3duKSB7Ci0gICAgICAgIG1DYWxlbmRhclZpZXcuc2V0VmlzaWJpbGl0eShzaG93biA/IFZJU0lCTEUgOiBHT05FKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBHZXRzIHdoZXRoZXIgdGhlIHNwaW5uZXJzIGFyZSBzaG93bi4KLSAgICAgKgotICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGUgc3Bpbm5lcnMgYXJlIHNob3duLgotICAgICAqLwotICAgIHB1YmxpYyBib29sZWFuIGdldFNwaW5uZXJzU2hvd24oKSB7Ci0gICAgICAgIHJldHVybiBtU3Bpbm5lcnMuaXNTaG93bigpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFNldHMgd2hldGhlciB0aGUgc3Bpbm5lcnMgYXJlIHNob3duLgotICAgICAqCi0gICAgICogQHBhcmFtIHNob3duIFRydWUgaWYgdGhlIHNwaW5uZXJzIGFyZSB0byBiZSBzaG93bi4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzZXRTcGlubmVyc1Nob3duKGJvb2xlYW4gc2hvd24pIHsKLSAgICAgICAgbVNwaW5uZXJzLnNldFZpc2liaWxpdHkoc2hvd24gPyBWSVNJQkxFIDogR09ORSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogU2V0cyB0aGUgY3VycmVudCBsb2NhbGUuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBjdXJyZW50IGxvY2FsZS4KLSAgICAgKi8KLSAgICBwcml2YXRlIHZvaWQgc2V0Q3VycmVudExvY2FsZShMb2NhbGUgbG9jYWxlKSB7Ci0gICAgICAgIGlmIChsb2NhbGUuZXF1YWxzKG1DdXJyZW50TG9jYWxlKSkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbUN1cnJlbnRMb2NhbGUgPSBsb2NhbGU7Ci0KLSAgICAgICAgbVRlbXBEYXRlID0gZ2V0Q2FsZW5kYXJGb3JMb2NhbGUobVRlbXBEYXRlLCBsb2NhbGUpOwotICAgICAgICBtTWluRGF0ZSA9IGdldENhbGVuZGFyRm9yTG9jYWxlKG1NaW5EYXRlLCBsb2NhbGUpOwotICAgICAgICBtTWF4RGF0ZSA9IGdldENhbGVuZGFyRm9yTG9jYWxlKG1NYXhEYXRlLCBsb2NhbGUpOwotICAgICAgICBtQ3VycmVudERhdGUgPSBnZXRDYWxlbmRhckZvckxvY2FsZShtQ3VycmVudERhdGUsIGxvY2FsZSk7Ci0KLSAgICAgICAgbU51bWJlck9mTW9udGhzID0gbVRlbXBEYXRlLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuTU9OVEgpICsgMTsKLSAgICAgICAgbVNob3J0TW9udGhzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKCkuZ2V0U2hvcnRNb250aHMoKTsKLQotICAgICAgICBpZiAodXNpbmdOdW1lcmljTW9udGhzKCkpIHsKLSAgICAgICAgICAgIC8vIFdlJ3JlIGluIGEgbG9jYWxlIHdoZXJlIGEgZGF0ZSBzaG91bGQgZWl0aGVyIGJlIGFsbC1udW1lcmljLCBvciBhbGwtdGV4dC4KLSAgICAgICAgICAgIC8vIEFsbC10ZXh0IHdvdWxkIHJlcXVpcmUgY3VzdG9tIE51bWJlclBpY2tlciBmb3JtYXR0ZXJzIGZvciBkYXkgYW5kIHllYXIuCi0gICAgICAgICAgICBtU2hvcnRNb250aHMgPSBuZXcgU3RyaW5nW21OdW1iZXJPZk1vbnRoc107Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1OdW1iZXJPZk1vbnRoczsgKytpKSB7Ci0gICAgICAgICAgICAgICAgbVNob3J0TW9udGhzW2ldID0gU3RyaW5nLmZvcm1hdCgiJWQiLCBpICsgMSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBUZXN0cyB3aGV0aGVyIHRoZSBjdXJyZW50IGxvY2FsZSBpcyBvbmUgd2hlcmUgdGhlcmUgYXJlIG5vIHJlYWwgbW9udGggbmFtZXMsCi0gICAgICogc3VjaCBhcyBDaGluZXNlLCBKYXBhbmVzZSwgb3IgS29yZWFuIGxvY2FsZXMuCi0gICAgICovCi0gICAgcHJpdmF0ZSBib29sZWFuIHVzaW5nTnVtZXJpY01vbnRocygpIHsKLSAgICAgICAgcmV0dXJuIENoYXJhY3Rlci5pc0RpZ2l0KG1TaG9ydE1vbnRoc1tDYWxlbmRhci5KQU5VQVJZXS5jaGFyQXQoMCkpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEdldHMgYSBjYWxlbmRhciBmb3IgbG9jYWxlIGJvb3RzdHJhcHBlZCB3aXRoIHRoZSB2YWx1ZSBvZiBhIGdpdmVuIGNhbGVuZGFyLgotICAgICAqCi0gICAgICogQHBhcmFtIG9sZENhbGVuZGFyIFRoZSBvbGQgY2FsZW5kYXIuCi0gICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlLgotICAgICAqLwotICAgIHByaXZhdGUgQ2FsZW5kYXIgZ2V0Q2FsZW5kYXJGb3JMb2NhbGUoQ2FsZW5kYXIgb2xkQ2FsZW5kYXIsIExvY2FsZSBsb2NhbGUpIHsKLSAgICAgICAgaWYgKG9sZENhbGVuZGFyID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2NhbGUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZmluYWwgbG9uZyBjdXJyZW50VGltZU1pbGxpcyA9IG9sZENhbGVuZGFyLmdldFRpbWVJbk1pbGxpcygpOwotICAgICAgICAgICAgQ2FsZW5kYXIgbmV3Q2FsZW5kYXIgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2NhbGUpOwotICAgICAgICAgICAgbmV3Q2FsZW5kYXIuc2V0VGltZUluTWlsbGlzKGN1cnJlbnRUaW1lTWlsbGlzKTsKLSAgICAgICAgICAgIHJldHVybiBuZXdDYWxlbmRhcjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlb3JkZXJzIHRoZSBzcGlubmVycyBhY2NvcmRpbmcgdG8gdGhlIGRhdGUgZm9ybWF0IHRoYXQgaXMKLSAgICAgKiBleHBsaWNpdGx5IHNldCBieSB0aGUgdXNlciBhbmQgaWYgbm8gc3VjaCBpcyBzZXQgZmFsbCBiYWNrCi0gICAgICogdG8gdGhlIGN1cnJlbnQgbG9jYWxlJ3MgZGVmYXVsdCBmb3JtYXQuCi0gICAgICovCi0gICAgcHJpdmF0ZSB2b2lkIHJlb3JkZXJTcGlubmVycygpIHsKLSAgICAgICAgbVNwaW5uZXJzLnJlbW92ZUFsbFZpZXdzKCk7Ci0gICAgICAgIC8vIFdlIHVzZSBudW1lcmljIHNwaW5uZXJzIGZvciB5ZWFyIGFuZCBkYXksIGJ1dCB0ZXh0dWFsIG1vbnRocy4gQXNrIGljdTRjIHdoYXQKLSAgICAgICAgLy8gb3JkZXIgdGhlIHVzZXIncyBsb2NhbGUgdXNlcyBmb3IgdGhhdCBjb21iaW5hdGlvbi4gaHR0cDovL2IvNzIwNzEwMy4KLSAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBJQ1UuZ2V0QmVzdERhdGVUaW1lUGF0dGVybigieXl5eU1NTWRkIiwgTG9jYWxlLmdldERlZmF1bHQoKS50b1N0cmluZygpKTsKLSAgICAgICAgY2hhcltdIG9yZGVyID0gSUNVLmdldERhdGVGb3JtYXRPcmRlcihwYXR0ZXJuKTsKLSAgICAgICAgZmluYWwgaW50IHNwaW5uZXJDb3VudCA9IG9yZGVyLmxlbmd0aDsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzcGlubmVyQ291bnQ7IGkrKykgewotICAgICAgICAgICAgc3dpdGNoIChvcmRlcltpXSkgewotICAgICAgICAgICAgICAgIGNhc2UgJ2QnOgotICAgICAgICAgICAgICAgICAgICBtU3Bpbm5lcnMuYWRkVmlldyhtRGF5U3Bpbm5lcik7Ci0gICAgICAgICAgICAgICAgICAgIHNldEltZU9wdGlvbnMobURheVNwaW5uZXIsIHNwaW5uZXJDb3VudCwgaSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgJ00nOgotICAgICAgICAgICAgICAgICAgICBtU3Bpbm5lcnMuYWRkVmlldyhtTW9udGhTcGlubmVyKTsKLSAgICAgICAgICAgICAgICAgICAgc2V0SW1lT3B0aW9ucyhtTW9udGhTcGlubmVyLCBzcGlubmVyQ291bnQsIGkpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlICd5JzoKLSAgICAgICAgICAgICAgICAgICAgbVNwaW5uZXJzLmFkZFZpZXcobVllYXJTcGlubmVyKTsKLSAgICAgICAgICAgICAgICAgICAgc2V0SW1lT3B0aW9ucyhtWWVhclNwaW5uZXIsIHNwaW5uZXJDb3VudCwgaSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oQXJyYXlzLnRvU3RyaW5nKG9yZGVyKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBVcGRhdGVzIHRoZSBjdXJyZW50IGRhdGUuCi0gICAgICoKLSAgICAgKiBAcGFyYW0geWVhciBUaGUgeWVhci4KLSAgICAgKiBAcGFyYW0gbW9udGggVGhlIG1vbnRoIHdoaWNoIGlzIDxzdHJvbmc+c3RhcnRpbmcgZnJvbSB6ZXJvPC9zdHJvbmc+LgotICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoIFRoZSBkYXkgb2YgdGhlIG1vbnRoLgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHVwZGF0ZURhdGUoaW50IHllYXIsIGludCBtb250aCwgaW50IGRheU9mTW9udGgpIHsKLSAgICAgICAgaWYgKCFpc05ld0RhdGUoeWVhciwgbW9udGgsIGRheU9mTW9udGgpKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgc2V0RGF0ZSh5ZWFyLCBtb250aCwgZGF5T2ZNb250aCk7Ci0gICAgICAgIHVwZGF0ZVNwaW5uZXJzKCk7Ci0gICAgICAgIHVwZGF0ZUNhbGVuZGFyVmlldygpOwotICAgICAgICBub3RpZnlEYXRlQ2hhbmdlZCgpOwotICAgIH0KLQotICAgIC8vIE92ZXJyaWRlIHNvIHdlIGFyZSBpbiBjb21wbGV0ZSBjb250cm9sIG9mIHNhdmUgLyByZXN0b3JlIGZvciB0aGlzIHdpZGdldC4KLSAgICBAT3ZlcnJpZGUKLSAgICBwcm90ZWN0ZWQgdm9pZCBkaXNwYXRjaFJlc3RvcmVJbnN0YW5jZVN0YXRlKFNwYXJzZUFycmF5PFBhcmNlbGFibGU+IGNvbnRhaW5lcikgewotICAgICAgICBkaXNwYXRjaFRoYXdTZWxmT25seShjb250YWluZXIpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHByb3RlY3RlZCBQYXJjZWxhYmxlIG9uU2F2ZUluc3RhbmNlU3RhdGUoKSB7Ci0gICAgICAgIFBhcmNlbGFibGUgc3VwZXJTdGF0ZSA9IHN1cGVyLm9uU2F2ZUluc3RhbmNlU3RhdGUoKTsKLSAgICAgICAgcmV0dXJuIG5ldyBTYXZlZFN0YXRlKHN1cGVyU3RhdGUsIGdldFllYXIoKSwgZ2V0TW9udGgoKSwgZ2V0RGF5T2ZNb250aCgpKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwcm90ZWN0ZWQgdm9pZCBvblJlc3RvcmVJbnN0YW5jZVN0YXRlKFBhcmNlbGFibGUgc3RhdGUpIHsKLSAgICAgICAgU2F2ZWRTdGF0ZSBzcyA9IChTYXZlZFN0YXRlKSBzdGF0ZTsKLSAgICAgICAgc3VwZXIub25SZXN0b3JlSW5zdGFuY2VTdGF0ZShzcy5nZXRTdXBlclN0YXRlKCkpOwotICAgICAgICBzZXREYXRlKHNzLm1ZZWFyLCBzcy5tTW9udGgsIHNzLm1EYXkpOwotICAgICAgICB1cGRhdGVTcGlubmVycygpOwotICAgICAgICB1cGRhdGVDYWxlbmRhclZpZXcoKTsKKyAgICAgICAgbURlbGVnYXRlID0gbmV3IExlZ2FjeURhdGVQaWNrZXJEZWxlZ2F0ZSh0aGlzLCBjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgfQogCiAgICAgLyoqCkBAIC01OTksMTkxICsxMjMsODgxIEBACiAgICAgICogICAgICAgICAgICB1c2VyLCBjYW4gYmUgbnVsbC4KICAgICAgKi8KICAgICBwdWJsaWMgdm9pZCBpbml0KGludCB5ZWFyLCBpbnQgbW9udGhPZlllYXIsIGludCBkYXlPZk1vbnRoLAotICAgICAgICAgICAgT25EYXRlQ2hhbmdlZExpc3RlbmVyIG9uRGF0ZUNoYW5nZWRMaXN0ZW5lcikgewotICAgICAgICBzZXREYXRlKHllYXIsIG1vbnRoT2ZZZWFyLCBkYXlPZk1vbnRoKTsKLSAgICAgICAgdXBkYXRlU3Bpbm5lcnMoKTsKLSAgICAgICAgdXBkYXRlQ2FsZW5kYXJWaWV3KCk7Ci0gICAgICAgIG1PbkRhdGVDaGFuZ2VkTGlzdGVuZXIgPSBvbkRhdGVDaGFuZ2VkTGlzdGVuZXI7CisgICAgICAgICAgICAgICAgICAgICBPbkRhdGVDaGFuZ2VkTGlzdGVuZXIgb25EYXRlQ2hhbmdlZExpc3RlbmVyKSB7CisgICAgICAgIG1EZWxlZ2F0ZS5pbml0KHllYXIsIG1vbnRoT2ZZZWFyLCBkYXlPZk1vbnRoLCBvbkRhdGVDaGFuZ2VkTGlzdGVuZXIpOwogICAgIH0KIAogICAgIC8qKgotICAgICAqIFBhcnNlcyB0aGUgZ2l2ZW4gPGNvZGU+ZGF0ZTwvY29kZT4gYW5kIGluIGNhc2Ugb2Ygc3VjY2VzcyBzZXRzIHRoZSByZXN1bHQKLSAgICAgKiB0byB0aGUgPGNvZGU+b3V0RGF0ZTwvY29kZT4uCisgICAgICogVXBkYXRlcyB0aGUgY3VycmVudCBkYXRlLgogICAgICAqCi0gICAgICogQHJldHVybiBUcnVlIGlmIHRoZSBkYXRlIHdhcyBwYXJzZWQuCisgICAgICogQHBhcmFtIHllYXIgVGhlIHllYXIuCisgICAgICogQHBhcmFtIG1vbnRoIFRoZSBtb250aCB3aGljaCBpcyA8c3Ryb25nPnN0YXJ0aW5nIGZyb20gemVybzwvc3Ryb25nPi4KKyAgICAgKiBAcGFyYW0gZGF5T2ZNb250aCBUaGUgZGF5IG9mIHRoZSBtb250aC4KICAgICAgKi8KLSAgICBwcml2YXRlIGJvb2xlYW4gcGFyc2VEYXRlKFN0cmluZyBkYXRlLCBDYWxlbmRhciBvdXREYXRlKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBvdXREYXRlLnNldFRpbWUobURhdGVGb3JtYXQucGFyc2UoZGF0ZSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIExvZy53KExPR19UQUcsICJEYXRlOiAiICsgZGF0ZSArICIgbm90IGluIGZvcm1hdDogIiArIERBVEVfRk9STUFUKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgYm9vbGVhbiBpc05ld0RhdGUoaW50IHllYXIsIGludCBtb250aCwgaW50IGRheU9mTW9udGgpIHsKLSAgICAgICAgcmV0dXJuIChtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLllFQVIpICE9IHllYXIKLSAgICAgICAgICAgICAgICB8fCBtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLk1PTlRIKSAhPSBkYXlPZk1vbnRoCi0gICAgICAgICAgICAgICAgfHwgbUN1cnJlbnREYXRlLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICE9IG1vbnRoKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHZvaWQgc2V0RGF0ZShpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCkgewotICAgICAgICBtQ3VycmVudERhdGUuc2V0KHllYXIsIG1vbnRoLCBkYXlPZk1vbnRoKTsKLSAgICAgICAgaWYgKG1DdXJyZW50RGF0ZS5iZWZvcmUobU1pbkRhdGUpKSB7Ci0gICAgICAgICAgICBtQ3VycmVudERhdGUuc2V0VGltZUluTWlsbGlzKG1NaW5EYXRlLmdldFRpbWVJbk1pbGxpcygpKTsKLSAgICAgICAgfSBlbHNlIGlmIChtQ3VycmVudERhdGUuYWZ0ZXIobU1heERhdGUpKSB7Ci0gICAgICAgICAgICBtQ3VycmVudERhdGUuc2V0VGltZUluTWlsbGlzKG1NYXhEYXRlLmdldFRpbWVJbk1pbGxpcygpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgdm9pZCB1cGRhdGVTcGlubmVycygpIHsKLSAgICAgICAgLy8gc2V0IHRoZSBzcGlubmVyIHJhbmdlcyByZXNwZWN0aW5nIHRoZSBtaW4gYW5kIG1heCBkYXRlcwotICAgICAgICBpZiAobUN1cnJlbnREYXRlLmVxdWFscyhtTWluRGF0ZSkpIHsKLSAgICAgICAgICAgIG1EYXlTcGlubmVyLnNldE1pblZhbHVlKG1DdXJyZW50RGF0ZS5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7Ci0gICAgICAgICAgICBtRGF5U3Bpbm5lci5zZXRNYXhWYWx1ZShtQ3VycmVudERhdGUuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKLSAgICAgICAgICAgIG1EYXlTcGlubmVyLnNldFdyYXBTZWxlY3RvcldoZWVsKGZhbHNlKTsKLSAgICAgICAgICAgIG1Nb250aFNwaW5uZXIuc2V0RGlzcGxheWVkVmFsdWVzKG51bGwpOwotICAgICAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXRNaW5WYWx1ZShtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLk1PTlRIKSk7Ci0gICAgICAgICAgICBtTW9udGhTcGlubmVyLnNldE1heFZhbHVlKG1DdXJyZW50RGF0ZS5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLk1PTlRIKSk7Ci0gICAgICAgICAgICBtTW9udGhTcGlubmVyLnNldFdyYXBTZWxlY3RvcldoZWVsKGZhbHNlKTsKLSAgICAgICAgfSBlbHNlIGlmIChtQ3VycmVudERhdGUuZXF1YWxzKG1NYXhEYXRlKSkgewotICAgICAgICAgICAgbURheVNwaW5uZXIuc2V0TWluVmFsdWUobUN1cnJlbnREYXRlLmdldEFjdHVhbE1pbmltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7Ci0gICAgICAgICAgICBtRGF5U3Bpbm5lci5zZXRNYXhWYWx1ZShtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOwotICAgICAgICAgICAgbURheVNwaW5uZXIuc2V0V3JhcFNlbGVjdG9yV2hlZWwoZmFsc2UpOwotICAgICAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXREaXNwbGF5ZWRWYWx1ZXMobnVsbCk7Ci0gICAgICAgICAgICBtTW9udGhTcGlubmVyLnNldE1pblZhbHVlKG1DdXJyZW50RGF0ZS5nZXRBY3R1YWxNaW5pbXVtKENhbGVuZGFyLk1PTlRIKSk7Ci0gICAgICAgICAgICBtTW9udGhTcGlubmVyLnNldE1heFZhbHVlKG1DdXJyZW50RGF0ZS5nZXQoQ2FsZW5kYXIuTU9OVEgpKTsKLSAgICAgICAgICAgIG1Nb250aFNwaW5uZXIuc2V0V3JhcFNlbGVjdG9yV2hlZWwoZmFsc2UpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbURheVNwaW5uZXIuc2V0TWluVmFsdWUoMSk7Ci0gICAgICAgICAgICBtRGF5U3Bpbm5lci5zZXRNYXhWYWx1ZShtQ3VycmVudERhdGUuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKLSAgICAgICAgICAgIG1EYXlTcGlubmVyLnNldFdyYXBTZWxlY3RvcldoZWVsKHRydWUpOwotICAgICAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXREaXNwbGF5ZWRWYWx1ZXMobnVsbCk7Ci0gICAgICAgICAgICBtTW9udGhTcGlubmVyLnNldE1pblZhbHVlKDApOwotICAgICAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXRNYXhWYWx1ZSgxMSk7Ci0gICAgICAgICAgICBtTW9udGhTcGlubmVyLnNldFdyYXBTZWxlY3RvcldoZWVsKHRydWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gbWFrZSBzdXJlIHRoZSBtb250aCBuYW1lcyBhcmUgYSB6ZXJvIGJhc2VkIGFycmF5Ci0gICAgICAgIC8vIHdpdGggdGhlIG1vbnRocyBpbiB0aGUgbW9udGggc3Bpbm5lcgotICAgICAgICBTdHJpbmdbXSBkaXNwbGF5ZWRWYWx1ZXMgPSBBcnJheXMuY29weU9mUmFuZ2UobVNob3J0TW9udGhzLAotICAgICAgICAgICAgICAgIG1Nb250aFNwaW5uZXIuZ2V0TWluVmFsdWUoKSwgbU1vbnRoU3Bpbm5lci5nZXRNYXhWYWx1ZSgpICsgMSk7Ci0gICAgICAgIG1Nb250aFNwaW5uZXIuc2V0RGlzcGxheWVkVmFsdWVzKGRpc3BsYXllZFZhbHVlcyk7Ci0KLSAgICAgICAgLy8geWVhciBzcGlubmVyIHJhbmdlIGRvZXMgbm90IGNoYW5nZSBiYXNlZCBvbiB0aGUgY3VycmVudCBkYXRlCi0gICAgICAgIG1ZZWFyU3Bpbm5lci5zZXRNaW5WYWx1ZShtTWluRGF0ZS5nZXQoQ2FsZW5kYXIuWUVBUikpOwotICAgICAgICBtWWVhclNwaW5uZXIuc2V0TWF4VmFsdWUobU1heERhdGUuZ2V0KENhbGVuZGFyLllFQVIpKTsKLSAgICAgICAgbVllYXJTcGlubmVyLnNldFdyYXBTZWxlY3RvcldoZWVsKGZhbHNlKTsKLQotICAgICAgICAvLyBzZXQgdGhlIHNwaW5uZXIgdmFsdWVzCi0gICAgICAgIG1ZZWFyU3Bpbm5lci5zZXRWYWx1ZShtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLllFQVIpKTsKLSAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXRWYWx1ZShtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLk1PTlRIKSk7Ci0gICAgICAgIG1EYXlTcGlubmVyLnNldFZhbHVlKG1DdXJyZW50RGF0ZS5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7Ci0KLSAgICAgICAgaWYgKHVzaW5nTnVtZXJpY01vbnRocygpKSB7Ci0gICAgICAgICAgICBtTW9udGhTcGlubmVySW5wdXQuc2V0UmF3SW5wdXRUeXBlKElucHV0VHlwZS5UWVBFX0NMQVNTX05VTUJFUik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBVcGRhdGVzIHRoZSBjYWxlbmRhciB2aWV3IHdpdGggdGhlIGN1cnJlbnQgZGF0ZS4KLSAgICAgKi8KLSAgICBwcml2YXRlIHZvaWQgdXBkYXRlQ2FsZW5kYXJWaWV3KCkgewotICAgICAgICAgbUNhbGVuZGFyVmlldy5zZXREYXRlKG1DdXJyZW50RGF0ZS5nZXRUaW1lSW5NaWxsaXMoKSwgZmFsc2UsIGZhbHNlKTsKKyAgICBwdWJsaWMgdm9pZCB1cGRhdGVEYXRlKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoKSB7CisgICAgICAgIG1EZWxlZ2F0ZS51cGRhdGVEYXRlKHllYXIsIG1vbnRoLCBkYXlPZk1vbnRoKTsKICAgICB9CiAKICAgICAvKioKICAgICAgKiBAcmV0dXJuIFRoZSBzZWxlY3RlZCB5ZWFyLgogICAgICAqLwogICAgIHB1YmxpYyBpbnQgZ2V0WWVhcigpIHsKLSAgICAgICAgcmV0dXJuIG1DdXJyZW50RGF0ZS5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUuZ2V0WWVhcigpOwogICAgIH0KIAogICAgIC8qKgogICAgICAqIEByZXR1cm4gVGhlIHNlbGVjdGVkIG1vbnRoLgogICAgICAqLwogICAgIHB1YmxpYyBpbnQgZ2V0TW9udGgoKSB7Ci0gICAgICAgIHJldHVybiBtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgcmV0dXJuIG1EZWxlZ2F0ZS5nZXRNb250aCgpOwogICAgIH0KIAogICAgIC8qKgogICAgICAqIEByZXR1cm4gVGhlIHNlbGVjdGVkIGRheSBvZiBtb250aC4KICAgICAgKi8KICAgICBwdWJsaWMgaW50IGdldERheU9mTW9udGgoKSB7Ci0gICAgICAgIHJldHVybiBtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUuZ2V0RGF5T2ZNb250aCgpOwogICAgIH0KIAogICAgIC8qKgotICAgICAqIE5vdGlmaWVzIHRoZSBsaXN0ZW5lciwgaWYgc3VjaCwgZm9yIGEgY2hhbmdlIGluIHRoZSBzZWxlY3RlZCBkYXRlLgotICAgICAqLwotICAgIHByaXZhdGUgdm9pZCBub3RpZnlEYXRlQ2hhbmdlZCgpIHsKLSAgICAgICAgc2VuZEFjY2Vzc2liaWxpdHlFdmVudChBY2Nlc3NpYmlsaXR5RXZlbnQuVFlQRV9WSUVXX1NFTEVDVEVEKTsKLSAgICAgICAgaWYgKG1PbkRhdGVDaGFuZ2VkTGlzdGVuZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9uRGF0ZUNoYW5nZWRMaXN0ZW5lci5vbkRhdGVDaGFuZ2VkKHRoaXMsIGdldFllYXIoKSwgZ2V0TW9udGgoKSwgZ2V0RGF5T2ZNb250aCgpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFNldHMgdGhlIElNRSBvcHRpb25zIGZvciBhIHNwaW5uZXIgYmFzZWQgb24gaXRzIG9yZGVyaW5nLgorICAgICAqIEdldHMgdGhlIG1pbmltYWwgZGF0ZSBzdXBwb3J0ZWQgYnkgdGhpcyB7QGxpbmsgRGF0ZVBpY2tlcn0gaW4KKyAgICAgKiBtaWxsaXNlY29uZHMgc2luY2UgSmFudWFyeSAxLCAxOTcwIDAwOjAwOjAwIGluCisgICAgICoge0BsaW5rIFRpbWVab25lI2dldERlZmF1bHQoKX0gdGltZSB6b25lLgorICAgICAqIDxwPgorICAgICAqIE5vdGU6IFRoZSBkZWZhdWx0IG1pbmltYWwgZGF0ZSBpcyAwMS8wMS8xOTAwLgorICAgICAqIDxwPgogICAgICAqCi0gICAgICogQHBhcmFtIHNwaW5uZXIgVGhlIHNwaW5uZXIuCi0gICAgICogQHBhcmFtIHNwaW5uZXJDb3VudCBUaGUgdG90YWwgc3Bpbm5lciBjb3VudC4KLSAgICAgKiBAcGFyYW0gc3Bpbm5lckluZGV4IFRoZSBpbmRleCBvZiB0aGUgZ2l2ZW4gc3Bpbm5lci4KKyAgICAgKiBAcmV0dXJuIFRoZSBtaW5pbWFsIHN1cHBvcnRlZCBkYXRlLgogICAgICAqLwotICAgIHByaXZhdGUgdm9pZCBzZXRJbWVPcHRpb25zKE51bWJlclBpY2tlciBzcGlubmVyLCBpbnQgc3Bpbm5lckNvdW50LCBpbnQgc3Bpbm5lckluZGV4KSB7Ci0gICAgICAgIGZpbmFsIGludCBpbWVPcHRpb25zOwotICAgICAgICBpZiAoc3Bpbm5lckluZGV4IDwgc3Bpbm5lckNvdW50IC0gMSkgewotICAgICAgICAgICAgaW1lT3B0aW9ucyA9IEVkaXRvckluZm8uSU1FX0FDVElPTl9ORVhUOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaW1lT3B0aW9ucyA9IEVkaXRvckluZm8uSU1FX0FDVElPTl9ET05FOworICAgIHB1YmxpYyBsb25nIGdldE1pbkRhdGUoKSB7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUuZ2V0TWluRGF0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1pbmltYWwgZGF0ZSBzdXBwb3J0ZWQgYnkgdGhpcyB7QGxpbmsgTnVtYmVyUGlja2VyfSBpbgorICAgICAqIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAgMDA6MDA6MDAgaW4KKyAgICAgKiB7QGxpbmsgVGltZVpvbmUjZ2V0RGVmYXVsdCgpfSB0aW1lIHpvbmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWluRGF0ZSBUaGUgbWluaW1hbCBzdXBwb3J0ZWQgZGF0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNaW5EYXRlKGxvbmcgbWluRGF0ZSkgeworICAgICAgICBtRGVsZWdhdGUuc2V0TWluRGF0ZShtaW5EYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBtYXhpbWFsIGRhdGUgc3VwcG9ydGVkIGJ5IHRoaXMge0BsaW5rIERhdGVQaWNrZXJ9IGluCisgICAgICogbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MCAwMDowMDowMCBpbgorICAgICAqIHtAbGluayBUaW1lWm9uZSNnZXREZWZhdWx0KCl9IHRpbWUgem9uZS4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlOiBUaGUgZGVmYXVsdCBtYXhpbWFsIGRhdGUgaXMgMTIvMzEvMjEwMC4KKyAgICAgKiA8cD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIG1heGltYWwgc3VwcG9ydGVkIGRhdGUuCisgICAgICovCisgICAgcHVibGljIGxvbmcgZ2V0TWF4RGF0ZSgpIHsKKyAgICAgICAgcmV0dXJuIG1EZWxlZ2F0ZS5nZXRNYXhEYXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWF4aW1hbCBkYXRlIHN1cHBvcnRlZCBieSB0aGlzIHtAbGluayBEYXRlUGlja2VyfSBpbgorICAgICAqIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAgMDA6MDA6MDAgaW4KKyAgICAgKiB7QGxpbmsgVGltZVpvbmUjZ2V0RGVmYXVsdCgpfSB0aW1lIHpvbmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWF4RGF0ZSBUaGUgbWF4aW1hbCBzdXBwb3J0ZWQgZGF0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNYXhEYXRlKGxvbmcgbWF4RGF0ZSkgeworICAgICAgICBtRGVsZWdhdGUuc2V0TWF4RGF0ZShtYXhEYXRlKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBzZXRFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCkgeworICAgICAgICBpZiAobURlbGVnYXRlLmlzRW5hYmxlZCgpID09IGVuYWJsZWQpIHsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBUZXh0VmlldyBpbnB1dCA9IChUZXh0Vmlldykgc3Bpbm5lci5maW5kVmlld0J5SWQoUi5pZC5udW1iZXJwaWNrZXJfaW5wdXQpOwotICAgICAgICBpbnB1dC5zZXRJbWVPcHRpb25zKGltZU9wdGlvbnMpOworICAgICAgICBzdXBlci5zZXRFbmFibGVkKGVuYWJsZWQpOworICAgICAgICBtRGVsZWdhdGUuc2V0RW5hYmxlZChlbmFibGVkKTsKICAgICB9CiAKLSAgICBwcml2YXRlIHZvaWQgc2V0Q29udGVudERlc2NyaXB0aW9ucygpIHsKLSAgICAgICAgLy8gRGF5Ci0gICAgICAgIHRyeVNldENvbnRlbnREZXNjcmlwdGlvbihtRGF5U3Bpbm5lciwgUi5pZC5pbmNyZW1lbnQsCi0gICAgICAgICAgICAgICAgUi5zdHJpbmcuZGF0ZV9waWNrZXJfaW5jcmVtZW50X2RheV9idXR0b24pOwotICAgICAgICB0cnlTZXRDb250ZW50RGVzY3JpcHRpb24obURheVNwaW5uZXIsIFIuaWQuZGVjcmVtZW50LAotICAgICAgICAgICAgICAgIFIuc3RyaW5nLmRhdGVfcGlja2VyX2RlY3JlbWVudF9kYXlfYnV0dG9uKTsKLSAgICAgICAgLy8gTW9udGgKLSAgICAgICAgdHJ5U2V0Q29udGVudERlc2NyaXB0aW9uKG1Nb250aFNwaW5uZXIsIFIuaWQuaW5jcmVtZW50LAotICAgICAgICAgICAgICAgIFIuc3RyaW5nLmRhdGVfcGlja2VyX2luY3JlbWVudF9tb250aF9idXR0b24pOwotICAgICAgICB0cnlTZXRDb250ZW50RGVzY3JpcHRpb24obU1vbnRoU3Bpbm5lciwgUi5pZC5kZWNyZW1lbnQsCi0gICAgICAgICAgICAgICAgUi5zdHJpbmcuZGF0ZV9waWNrZXJfZGVjcmVtZW50X21vbnRoX2J1dHRvbik7Ci0gICAgICAgIC8vIFllYXIKLSAgICAgICAgdHJ5U2V0Q29udGVudERlc2NyaXB0aW9uKG1ZZWFyU3Bpbm5lciwgUi5pZC5pbmNyZW1lbnQsCi0gICAgICAgICAgICAgICAgUi5zdHJpbmcuZGF0ZV9waWNrZXJfaW5jcmVtZW50X3llYXJfYnV0dG9uKTsKLSAgICAgICAgdHJ5U2V0Q29udGVudERlc2NyaXB0aW9uKG1ZZWFyU3Bpbm5lciwgUi5pZC5kZWNyZW1lbnQsCi0gICAgICAgICAgICAgICAgUi5zdHJpbmcuZGF0ZV9waWNrZXJfZGVjcmVtZW50X3llYXJfYnV0dG9uKTsKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0VuYWJsZWQoKSB7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUuaXNFbmFibGVkKCk7CiAgICAgfQogCi0gICAgcHJpdmF0ZSB2b2lkIHRyeVNldENvbnRlbnREZXNjcmlwdGlvbihWaWV3IHJvb3QsIGludCB2aWV3SWQsIGludCBjb250RGVzY1Jlc0lkKSB7Ci0gICAgICAgIFZpZXcgdGFyZ2V0ID0gcm9vdC5maW5kVmlld0J5SWQodmlld0lkKTsKLSAgICAgICAgaWYgKHRhcmdldCAhPSBudWxsKSB7Ci0gICAgICAgICAgICB0YXJnZXQuc2V0Q29udGVudERlc2NyaXB0aW9uKG1Db250ZXh0LmdldFN0cmluZyhjb250RGVzY1Jlc0lkKSk7CisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIGJvb2xlYW4gZGlzcGF0Y2hQb3B1bGF0ZUFjY2Vzc2liaWxpdHlFdmVudChBY2Nlc3NpYmlsaXR5RXZlbnQgZXZlbnQpIHsKKyAgICAgICAgcmV0dXJuIG1EZWxlZ2F0ZS5kaXNwYXRjaFBvcHVsYXRlQWNjZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBvblBvcHVsYXRlQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCkgeworICAgICAgICBzdXBlci5vblBvcHVsYXRlQWNjZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKKyAgICAgICAgbURlbGVnYXRlLm9uUG9wdWxhdGVBY2Nlc3NpYmlsaXR5RXZlbnQoZXZlbnQpOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIG9uSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHlFdmVudChBY2Nlc3NpYmlsaXR5RXZlbnQgZXZlbnQpIHsKKyAgICAgICAgc3VwZXIub25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKKyAgICAgICAgbURlbGVnYXRlLm9uSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHlFdmVudChldmVudCk7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgb25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eU5vZGVJbmZvKEFjY2Vzc2liaWxpdHlOb2RlSW5mbyBpbmZvKSB7CisgICAgICAgIHN1cGVyLm9uSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHlOb2RlSW5mbyhpbmZvKTsKKyAgICAgICAgbURlbGVnYXRlLm9uSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHlOb2RlSW5mbyhpbmZvKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwcm90ZWN0ZWQgdm9pZCBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkKENvbmZpZ3VyYXRpb24gbmV3Q29uZmlnKSB7CisgICAgICAgIHN1cGVyLm9uQ29uZmlndXJhdGlvbkNoYW5nZWQobmV3Q29uZmlnKTsKKyAgICAgICAgbURlbGVnYXRlLm9uQ29uZmlndXJhdGlvbkNoYW5nZWQobmV3Q29uZmlnKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoZXRoZXIgdGhlIHtAbGluayBDYWxlbmRhclZpZXd9IGlzIHNob3duLgorICAgICAqCisgICAgICogQHJldHVybiBUcnVlIGlmIHRoZSBjYWxlbmRhciB2aWV3IGlzIHNob3duLgorICAgICAqIEBzZWUgI2dldENhbGVuZGFyVmlldygpCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0Q2FsZW5kYXJWaWV3U2hvd24oKSB7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUuZ2V0Q2FsZW5kYXJWaWV3U2hvd24oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB7QGxpbmsgQ2FsZW5kYXJWaWV3fS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIGNhbGVuZGFyIHZpZXcuCisgICAgICogQHNlZSAjZ2V0Q2FsZW5kYXJWaWV3U2hvd24oKQorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhclZpZXcgZ2V0Q2FsZW5kYXJWaWV3ICgpIHsKKyAgICAgICAgcmV0dXJuIG1EZWxlZ2F0ZS5nZXRDYWxlbmRhclZpZXcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHdoZXRoZXIgdGhlIHtAbGluayBDYWxlbmRhclZpZXd9IGlzIHNob3duLgorICAgICAqCisgICAgICogQHBhcmFtIHNob3duIFRydWUgaWYgdGhlIGNhbGVuZGFyIHZpZXcgaXMgdG8gYmUgc2hvd24uCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2FsZW5kYXJWaWV3U2hvd24oYm9vbGVhbiBzaG93bikgeworICAgICAgICBtRGVsZWdhdGUuc2V0Q2FsZW5kYXJWaWV3U2hvd24oc2hvd24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgd2hldGhlciB0aGUgc3Bpbm5lcnMgYXJlIHNob3duLgorICAgICAqCisgICAgICogQHJldHVybiBUcnVlIGlmIHRoZSBzcGlubmVycyBhcmUgc2hvd24uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0U3Bpbm5lcnNTaG93bigpIHsKKyAgICAgICAgcmV0dXJuIG1EZWxlZ2F0ZS5nZXRTcGlubmVyc1Nob3duKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIHRoZSBzcGlubmVycyBhcmUgc2hvd24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2hvd24gVHJ1ZSBpZiB0aGUgc3Bpbm5lcnMgYXJlIHRvIGJlIHNob3duLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNwaW5uZXJzU2hvd24oYm9vbGVhbiBzaG93bikgeworICAgICAgICBtRGVsZWdhdGUuc2V0U3Bpbm5lcnNTaG93bihzaG93bik7CisgICAgfQorCisgICAgLy8gT3ZlcnJpZGUgc28gd2UgYXJlIGluIGNvbXBsZXRlIGNvbnRyb2wgb2Ygc2F2ZSAvIHJlc3RvcmUgZm9yIHRoaXMgd2lkZ2V0LgorICAgIEBPdmVycmlkZQorICAgIHByb3RlY3RlZCB2b2lkIGRpc3BhdGNoUmVzdG9yZUluc3RhbmNlU3RhdGUoU3BhcnNlQXJyYXk8UGFyY2VsYWJsZT4gY29udGFpbmVyKSB7CisgICAgICAgIG1EZWxlZ2F0ZS5kaXNwYXRjaFJlc3RvcmVJbnN0YW5jZVN0YXRlKGNvbnRhaW5lcik7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHJvdGVjdGVkIFBhcmNlbGFibGUgb25TYXZlSW5zdGFuY2VTdGF0ZSgpIHsKKyAgICAgICAgUGFyY2VsYWJsZSBzdXBlclN0YXRlID0gc3VwZXIub25TYXZlSW5zdGFuY2VTdGF0ZSgpOworICAgICAgICByZXR1cm4gbURlbGVnYXRlLm9uU2F2ZUluc3RhbmNlU3RhdGUoc3VwZXJTdGF0ZSk7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHJvdGVjdGVkIHZvaWQgb25SZXN0b3JlSW5zdGFuY2VTdGF0ZShQYXJjZWxhYmxlIHN0YXRlKSB7CisgICAgICAgIFNhdmVkU3RhdGUgc3MgPSAoU2F2ZWRTdGF0ZSkgc3RhdGU7CisgICAgICAgIHN1cGVyLm9uUmVzdG9yZUluc3RhbmNlU3RhdGUoc3MuZ2V0U3VwZXJTdGF0ZSgpKTsKKyAgICAgICAgbURlbGVnYXRlLm9uUmVzdG9yZUluc3RhbmNlU3RhdGUoc3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEEgZGVsZWdhdGUgaW50ZXJmYWNlIHRoYXQgZGVmaW5lZCB0aGUgcHVibGljIEFQSSBvZiB0aGUgRGF0ZVBpY2tlci4gQWxsb3dzIGRpZmZlcmVudAorICAgICAqIERhdGVQaWNrZXIgaW1wbGVtZW50YXRpb25zLiBUaGlzIHdvdWxkIG5lZWQgdG8gYmUgaW1wbGVtZW50ZWQgYnkgdGhlIERhdGVQaWNrZXIgZGVsZWdhdGVzCisgICAgICogZm9yIHRoZSByZWFsIGJlaGF2aW9yLgorICAgICAqLworICAgIGludGVyZmFjZSBEYXRlUGlja2VyRGVsZWdhdGUgeworICAgICAgICB2b2lkIGluaXQoaW50IHllYXIsIGludCBtb250aE9mWWVhciwgaW50IGRheU9mTW9udGgsCisgICAgICAgICAgICAgICAgICBPbkRhdGVDaGFuZ2VkTGlzdGVuZXIgb25EYXRlQ2hhbmdlZExpc3RlbmVyKTsKKworICAgICAgICB2b2lkIHVwZGF0ZURhdGUoaW50IHllYXIsIGludCBtb250aCwgaW50IGRheU9mTW9udGgpOworCisgICAgICAgIGludCBnZXRZZWFyKCk7CisgICAgICAgIGludCBnZXRNb250aCgpOworICAgICAgICBpbnQgZ2V0RGF5T2ZNb250aCgpOworCisgICAgICAgIHZvaWQgc2V0TWluRGF0ZShsb25nIG1pbkRhdGUpOworICAgICAgICBsb25nIGdldE1pbkRhdGUoKTsKKworICAgICAgICB2b2lkIHNldE1heERhdGUobG9uZyBtYXhEYXRlKTsKKyAgICAgICAgbG9uZyBnZXRNYXhEYXRlKCk7CisKKyAgICAgICAgdm9pZCBzZXRFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CisgICAgICAgIGJvb2xlYW4gaXNFbmFibGVkKCk7CisKKyAgICAgICAgQ2FsZW5kYXJWaWV3IGdldENhbGVuZGFyVmlldyAoKTsKKworICAgICAgICB2b2lkIHNldENhbGVuZGFyVmlld1Nob3duKGJvb2xlYW4gc2hvd24pOworICAgICAgICBib29sZWFuIGdldENhbGVuZGFyVmlld1Nob3duKCk7CisKKyAgICAgICAgdm9pZCBzZXRTcGlubmVyc1Nob3duKGJvb2xlYW4gc2hvd24pOworICAgICAgICBib29sZWFuIGdldFNwaW5uZXJzU2hvd24oKTsKKworICAgICAgICB2b2lkIG9uQ29uZmlndXJhdGlvbkNoYW5nZWQoQ29uZmlndXJhdGlvbiBuZXdDb25maWcpOworCisgICAgICAgIHZvaWQgZGlzcGF0Y2hSZXN0b3JlSW5zdGFuY2VTdGF0ZShTcGFyc2VBcnJheTxQYXJjZWxhYmxlPiBjb250YWluZXIpOworICAgICAgICBQYXJjZWxhYmxlIG9uU2F2ZUluc3RhbmNlU3RhdGUoUGFyY2VsYWJsZSBzdXBlclN0YXRlKTsKKyAgICAgICAgdm9pZCBvblJlc3RvcmVJbnN0YW5jZVN0YXRlKFBhcmNlbGFibGUgc3RhdGUpOworCisgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hQb3B1bGF0ZUFjY2Vzc2liaWxpdHlFdmVudChBY2Nlc3NpYmlsaXR5RXZlbnQgZXZlbnQpOworICAgICAgICB2b2lkIG9uUG9wdWxhdGVBY2Nlc3NpYmlsaXR5RXZlbnQoQWNjZXNzaWJpbGl0eUV2ZW50IGV2ZW50KTsKKyAgICAgICAgdm9pZCBvbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5RXZlbnQoQWNjZXNzaWJpbGl0eUV2ZW50IGV2ZW50KTsKKyAgICAgICAgdm9pZCBvbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5Tm9kZUluZm8oQWNjZXNzaWJpbGl0eU5vZGVJbmZvIGluZm8pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFuIGFic3RyYWN0IGNsYXNzIHdoaWNoIGNhbiBiZSB1c2VkIGFzIGEgc3RhcnQgZm9yIERhdGVQaWNrZXIgaW1wbGVtZW50YXRpb25zCisgICAgICovCisgICAgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIEFic3RyYWN0VGltZVBpY2tlckRlbGVnYXRlIGltcGxlbWVudHMgRGF0ZVBpY2tlckRlbGVnYXRlIHsKKyAgICAgICAgLy8gVGhlIGRlbGVnYXRvcgorICAgICAgICBwcm90ZWN0ZWQgRGF0ZVBpY2tlciBtRGVsZWdhdG9yOworCisgICAgICAgIC8vIFRoZSBjb250ZXh0CisgICAgICAgIHByb3RlY3RlZCBDb250ZXh0IG1Db250ZXh0OworCisgICAgICAgIC8vIFRoZSBjdXJyZW50IGxvY2FsZQorICAgICAgICBwcm90ZWN0ZWQgTG9jYWxlIG1DdXJyZW50TG9jYWxlOworCisgICAgICAgIC8vIENhbGxiYWNrcworICAgICAgICBwcm90ZWN0ZWQgIE9uRGF0ZUNoYW5nZWRMaXN0ZW5lciBtT25EYXRlQ2hhbmdlZExpc3RlbmVyOworCisgICAgICAgIHB1YmxpYyBBYnN0cmFjdFRpbWVQaWNrZXJEZWxlZ2F0ZShEYXRlUGlja2VyIGRlbGVnYXRvciwgQ29udGV4dCBjb250ZXh0KSB7CisgICAgICAgICAgICBtRGVsZWdhdG9yID0gZGVsZWdhdG9yOworICAgICAgICAgICAgbUNvbnRleHQgPSBjb250ZXh0OworCisgICAgICAgICAgICAvLyBpbml0aWFsaXphdGlvbiBiYXNlZCBvbiBsb2NhbGUKKyAgICAgICAgICAgIHNldEN1cnJlbnRMb2NhbGUoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBzZXRDdXJyZW50TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgIGlmIChsb2NhbGUuZXF1YWxzKG1DdXJyZW50TG9jYWxlKSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1DdXJyZW50TG9jYWxlID0gbG9jYWxlOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZUlucHV0U3RhdGUoKSB7Ci0gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGlmIHRoZSB1c2VyIGNoYW5nZXMgdGhlIHZhbHVlIGFuZCB0aGUgSU1FIGlzIGFjdGl2ZQotICAgICAgICAvLyBmb3Igb25lIG9mIHRoZSBpbnB1dHMgaWYgdGhpcyB3aWRnZXQsIHRoZSBJTUUgaXMgY2xvc2VkLiBJZiB0aGUgdXNlcgotICAgICAgICAvLyBjaGFuZ2VkIHRoZSB2YWx1ZSB2aWEgdGhlIElNRSBhbmQgdGhlcmUgaXMgYSBuZXh0IGlucHV0IHRoZSBJTUUgd2lsbAotICAgICAgICAvLyBiZSBzaG93biwgb3RoZXJ3aXNlIHRoZSB1c2VyIGNob3NlIGFub3RoZXIgbWVhbnMgb2YgY2hhbmdpbmcgdGhlCi0gICAgICAgIC8vIHZhbHVlIGFuZCBoYXZpbmcgdGhlIElNRSB1cCBtYWtlcyBubyBzZW5zZS4KLSAgICAgICAgSW5wdXRNZXRob2RNYW5hZ2VyIGlucHV0TWV0aG9kTWFuYWdlciA9IElucHV0TWV0aG9kTWFuYWdlci5wZWVrSW5zdGFuY2UoKTsKLSAgICAgICAgaWYgKGlucHV0TWV0aG9kTWFuYWdlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBpZiAoaW5wdXRNZXRob2RNYW5hZ2VyLmlzQWN0aXZlKG1ZZWFyU3Bpbm5lcklucHV0KSkgewotICAgICAgICAgICAgICAgIG1ZZWFyU3Bpbm5lcklucHV0LmNsZWFyRm9jdXMoKTsKLSAgICAgICAgICAgICAgICBpbnB1dE1ldGhvZE1hbmFnZXIuaGlkZVNvZnRJbnB1dEZyb21XaW5kb3coZ2V0V2luZG93VG9rZW4oKSwgMCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0TWV0aG9kTWFuYWdlci5pc0FjdGl2ZShtTW9udGhTcGlubmVySW5wdXQpKSB7Ci0gICAgICAgICAgICAgICAgbU1vbnRoU3Bpbm5lcklucHV0LmNsZWFyRm9jdXMoKTsKLSAgICAgICAgICAgICAgICBpbnB1dE1ldGhvZE1hbmFnZXIuaGlkZVNvZnRJbnB1dEZyb21XaW5kb3coZ2V0V2luZG93VG9rZW4oKSwgMCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0TWV0aG9kTWFuYWdlci5pc0FjdGl2ZShtRGF5U3Bpbm5lcklucHV0KSkgewotICAgICAgICAgICAgICAgIG1EYXlTcGlubmVySW5wdXQuY2xlYXJGb2N1cygpOwotICAgICAgICAgICAgICAgIGlucHV0TWV0aG9kTWFuYWdlci5oaWRlU29mdElucHV0RnJvbVdpbmRvdyhnZXRXaW5kb3dUb2tlbigpLCAwKTsKKyAgICAvKioKKyAgICAgKiBBIGRlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgYmFzaWMgRGF0ZVBpY2tlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIExlZ2FjeURhdGVQaWNrZXJEZWxlZ2F0ZSBleHRlbmRzIEFic3RyYWN0VGltZVBpY2tlckRlbGVnYXRlIHsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFURV9GT1JNQVQgPSAiTU0vZGQveXl5eSI7CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfU1RBUlRfWUVBUiA9IDE5MDA7CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfRU5EX1lFQVIgPSAyMTAwOworCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVGQVVMVF9DQUxFTkRBUl9WSUVXX1NIT1dOID0gdHJ1ZTsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFRkFVTFRfU1BJTk5FUlNfU0hPV04gPSB0cnVlOworCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVGQVVMVF9FTkFCTEVEX1NUQVRFID0gdHJ1ZTsKKworICAgICAgICBwcml2YXRlIGZpbmFsIExpbmVhckxheW91dCBtU3Bpbm5lcnM7CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBOdW1iZXJQaWNrZXIgbURheVNwaW5uZXI7CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBOdW1iZXJQaWNrZXIgbU1vbnRoU3Bpbm5lcjsKKworICAgICAgICBwcml2YXRlIGZpbmFsIE51bWJlclBpY2tlciBtWWVhclNwaW5uZXI7CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBFZGl0VGV4dCBtRGF5U3Bpbm5lcklucHV0OworCisgICAgICAgIHByaXZhdGUgZmluYWwgRWRpdFRleHQgbU1vbnRoU3Bpbm5lcklucHV0OworCisgICAgICAgIHByaXZhdGUgZmluYWwgRWRpdFRleHQgbVllYXJTcGlubmVySW5wdXQ7CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBDYWxlbmRhclZpZXcgbUNhbGVuZGFyVmlldzsKKworICAgICAgICBwcml2YXRlIFN0cmluZ1tdIG1TaG9ydE1vbnRoczsKKworICAgICAgICBwcml2YXRlIGZpbmFsIGphdmEudGV4dC5EYXRlRm9ybWF0IG1EYXRlRm9ybWF0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoREFURV9GT1JNQVQpOworCisgICAgICAgIHByaXZhdGUgaW50IG1OdW1iZXJPZk1vbnRoczsKKworICAgICAgICBwcml2YXRlIENhbGVuZGFyIG1UZW1wRGF0ZTsKKworICAgICAgICBwcml2YXRlIENhbGVuZGFyIG1NaW5EYXRlOworCisgICAgICAgIHByaXZhdGUgQ2FsZW5kYXIgbU1heERhdGU7CisKKyAgICAgICAgcHJpdmF0ZSBDYWxlbmRhciBtQ3VycmVudERhdGU7CisKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIG1Jc0VuYWJsZWQgPSBERUZBVUxUX0VOQUJMRURfU1RBVEU7CisKKyAgICAgICAgTGVnYWN5RGF0ZVBpY2tlckRlbGVnYXRlKERhdGVQaWNrZXIgZGVsZWdhdG9yLCBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywKKyAgICAgICAgICAgICAgICBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgICAgIHN1cGVyKGRlbGVnYXRvciwgY29udGV4dCk7CisKKyAgICAgICAgICAgIG1EZWxlZ2F0b3IgPSBkZWxlZ2F0b3I7CisgICAgICAgICAgICBtQ29udGV4dCA9IGNvbnRleHQ7CisKKyAgICAgICAgICAgIC8vIGluaXRpYWxpemF0aW9uIGJhc2VkIG9uIGxvY2FsZQorICAgICAgICAgICAgc2V0Q3VycmVudExvY2FsZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKworICAgICAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhdHRyaWJ1dGVzQXJyYXkgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCisgICAgICAgICAgICAgICAgICAgIFIuc3R5bGVhYmxlLkRhdGVQaWNrZXIsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworICAgICAgICAgICAgYm9vbGVhbiBzcGlubmVyc1Nob3duID0gYXR0cmlidXRlc0FycmF5LmdldEJvb2xlYW4oUi5zdHlsZWFibGUuRGF0ZVBpY2tlcl9zcGlubmVyc1Nob3duLAorICAgICAgICAgICAgICAgICAgICBERUZBVUxUX1NQSU5ORVJTX1NIT1dOKTsKKyAgICAgICAgICAgIGJvb2xlYW4gY2FsZW5kYXJWaWV3U2hvd24gPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0Qm9vbGVhbigKKyAgICAgICAgICAgICAgICAgICAgUi5zdHlsZWFibGUuRGF0ZVBpY2tlcl9jYWxlbmRhclZpZXdTaG93biwgREVGQVVMVF9DQUxFTkRBUl9WSUVXX1NIT1dOKTsKKyAgICAgICAgICAgIGludCBzdGFydFllYXIgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0SW50KFIuc3R5bGVhYmxlLkRhdGVQaWNrZXJfc3RhcnRZZWFyLAorICAgICAgICAgICAgICAgICAgICBERUZBVUxUX1NUQVJUX1lFQVIpOworICAgICAgICAgICAgaW50IGVuZFllYXIgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0SW50KFIuc3R5bGVhYmxlLkRhdGVQaWNrZXJfZW5kWWVhciwgREVGQVVMVF9FTkRfWUVBUik7CisgICAgICAgICAgICBTdHJpbmcgbWluRGF0ZSA9IGF0dHJpYnV0ZXNBcnJheS5nZXRTdHJpbmcoUi5zdHlsZWFibGUuRGF0ZVBpY2tlcl9taW5EYXRlKTsKKyAgICAgICAgICAgIFN0cmluZyBtYXhEYXRlID0gYXR0cmlidXRlc0FycmF5LmdldFN0cmluZyhSLnN0eWxlYWJsZS5EYXRlUGlja2VyX21heERhdGUpOworICAgICAgICAgICAgaW50IGxheW91dFJlc291cmNlSWQgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0UmVzb3VyY2VJZCgKKyAgICAgICAgICAgICAgICAgICAgUi5zdHlsZWFibGUuRGF0ZVBpY2tlcl9pbnRlcm5hbExheW91dCwgUi5sYXlvdXQuZGF0ZV9waWNrZXIpOworICAgICAgICAgICAgYXR0cmlidXRlc0FycmF5LnJlY3ljbGUoKTsKKworICAgICAgICAgICAgTGF5b3V0SW5mbGF0ZXIgaW5mbGF0ZXIgPSAoTGF5b3V0SW5mbGF0ZXIpIGNvbnRleHQKKyAgICAgICAgICAgICAgICAgICAgLmdldFN5c3RlbVNlcnZpY2UoQ29udGV4dC5MQVlPVVRfSU5GTEFURVJfU0VSVklDRSk7CisgICAgICAgICAgICBpbmZsYXRlci5pbmZsYXRlKGxheW91dFJlc291cmNlSWQsIG1EZWxlZ2F0b3IsIHRydWUpOworCisgICAgICAgICAgICBPblZhbHVlQ2hhbmdlTGlzdGVuZXIgb25DaGFuZ2VMaXN0ZW5lciA9IG5ldyBPblZhbHVlQ2hhbmdlTGlzdGVuZXIoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgb25WYWx1ZUNoYW5nZShOdW1iZXJQaWNrZXIgcGlja2VyLCBpbnQgb2xkVmFsLCBpbnQgbmV3VmFsKSB7CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUlucHV0U3RhdGUoKTsKKyAgICAgICAgICAgICAgICAgICAgbVRlbXBEYXRlLnNldFRpbWVJbk1pbGxpcyhtQ3VycmVudERhdGUuZ2V0VGltZUluTWlsbGlzKCkpOworICAgICAgICAgICAgICAgICAgICAvLyB0YWtlIGNhcmUgb2Ygd3JhcHBpbmcgb2YgZGF5cyBhbmQgbW9udGhzIHRvIHVwZGF0ZSBncmVhdGVyIGZpZWxkcworICAgICAgICAgICAgICAgICAgICBpZiAocGlja2VyID09IG1EYXlTcGlubmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF4RGF5T2ZNb250aCA9IG1UZW1wRGF0ZS5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2xkVmFsID09IG1heERheU9mTW9udGggJiYgbmV3VmFsID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVGVtcERhdGUuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9sZFZhbCA9PSAxICYmIG5ld1ZhbCA9PSBtYXhEYXlPZk1vbnRoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVRlbXBEYXRlLmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIC0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVRlbXBEYXRlLmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIG5ld1ZhbCAtIG9sZFZhbCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGlja2VyID09IG1Nb250aFNwaW5uZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvbGRWYWwgPT0gMTEgJiYgbmV3VmFsID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVGVtcERhdGUuYWRkKENhbGVuZGFyLk1PTlRILCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob2xkVmFsID09IDAgJiYgbmV3VmFsID09IDExKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVRlbXBEYXRlLmFkZChDYWxlbmRhci5NT05USCwgLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVGVtcERhdGUuYWRkKENhbGVuZGFyLk1PTlRILCBuZXdWYWwgLSBvbGRWYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBpY2tlciA9PSBtWWVhclNwaW5uZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5zZXQoQ2FsZW5kYXIuWUVBUiwgbmV3VmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBub3cgc2V0IHRoZSBkYXRlIHRvIHRoZSBhZGp1c3RlZCBvbmUKKyAgICAgICAgICAgICAgICAgICAgc2V0RGF0ZShtVGVtcERhdGUuZ2V0KENhbGVuZGFyLllFQVIpLCBtVGVtcERhdGUuZ2V0KENhbGVuZGFyLk1PTlRIKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVGVtcERhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICAgICAgICAgICAgICAgICAgICB1cGRhdGVTcGlubmVycygpOworICAgICAgICAgICAgICAgICAgICB1cGRhdGVDYWxlbmRhclZpZXcoKTsKKyAgICAgICAgICAgICAgICAgICAgbm90aWZ5RGF0ZUNoYW5nZWQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBtU3Bpbm5lcnMgPSAoTGluZWFyTGF5b3V0KSBtRGVsZWdhdG9yLmZpbmRWaWV3QnlJZChSLmlkLnBpY2tlcnMpOworCisgICAgICAgICAgICAvLyBjYWxlbmRhciB2aWV3IGRheS1waWNrZXIKKyAgICAgICAgICAgIG1DYWxlbmRhclZpZXcgPSAoQ2FsZW5kYXJWaWV3KSBtRGVsZWdhdG9yLmZpbmRWaWV3QnlJZChSLmlkLmNhbGVuZGFyX3ZpZXcpOworICAgICAgICAgICAgbUNhbGVuZGFyVmlldy5zZXRPbkRhdGVDaGFuZ2VMaXN0ZW5lcihuZXcgQ2FsZW5kYXJWaWV3Lk9uRGF0ZUNoYW5nZUxpc3RlbmVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uU2VsZWN0ZWREYXlDaGFuZ2UoQ2FsZW5kYXJWaWV3IHZpZXcsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBtb250aERheSkgeworICAgICAgICAgICAgICAgICAgICBzZXREYXRlKHllYXIsIG1vbnRoLCBtb250aERheSk7CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVNwaW5uZXJzKCk7CisgICAgICAgICAgICAgICAgICAgIG5vdGlmeURhdGVDaGFuZ2VkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIC8vIGRheQorICAgICAgICAgICAgbURheVNwaW5uZXIgPSAoTnVtYmVyUGlja2VyKSBtRGVsZWdhdG9yLmZpbmRWaWV3QnlJZChSLmlkLmRheSk7CisgICAgICAgICAgICBtRGF5U3Bpbm5lci5zZXRGb3JtYXR0ZXIoTnVtYmVyUGlja2VyLmdldFR3b0RpZ2l0Rm9ybWF0dGVyKCkpOworICAgICAgICAgICAgbURheVNwaW5uZXIuc2V0T25Mb25nUHJlc3NVcGRhdGVJbnRlcnZhbCgxMDApOworICAgICAgICAgICAgbURheVNwaW5uZXIuc2V0T25WYWx1ZUNoYW5nZWRMaXN0ZW5lcihvbkNoYW5nZUxpc3RlbmVyKTsKKyAgICAgICAgICAgIG1EYXlTcGlubmVySW5wdXQgPSAoRWRpdFRleHQpIG1EYXlTcGlubmVyLmZpbmRWaWV3QnlJZChSLmlkLm51bWJlcnBpY2tlcl9pbnB1dCk7CisKKyAgICAgICAgICAgIC8vIG1vbnRoCisgICAgICAgICAgICBtTW9udGhTcGlubmVyID0gKE51bWJlclBpY2tlcikgbURlbGVnYXRvci5maW5kVmlld0J5SWQoUi5pZC5tb250aCk7CisgICAgICAgICAgICBtTW9udGhTcGlubmVyLnNldE1pblZhbHVlKDApOworICAgICAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXRNYXhWYWx1ZShtTnVtYmVyT2ZNb250aHMgLSAxKTsKKyAgICAgICAgICAgIG1Nb250aFNwaW5uZXIuc2V0RGlzcGxheWVkVmFsdWVzKG1TaG9ydE1vbnRocyk7CisgICAgICAgICAgICBtTW9udGhTcGlubmVyLnNldE9uTG9uZ1ByZXNzVXBkYXRlSW50ZXJ2YWwoMjAwKTsKKyAgICAgICAgICAgIG1Nb250aFNwaW5uZXIuc2V0T25WYWx1ZUNoYW5nZWRMaXN0ZW5lcihvbkNoYW5nZUxpc3RlbmVyKTsKKyAgICAgICAgICAgIG1Nb250aFNwaW5uZXJJbnB1dCA9IChFZGl0VGV4dCkgbU1vbnRoU3Bpbm5lci5maW5kVmlld0J5SWQoUi5pZC5udW1iZXJwaWNrZXJfaW5wdXQpOworCisgICAgICAgICAgICAvLyB5ZWFyCisgICAgICAgICAgICBtWWVhclNwaW5uZXIgPSAoTnVtYmVyUGlja2VyKSBtRGVsZWdhdG9yLmZpbmRWaWV3QnlJZChSLmlkLnllYXIpOworICAgICAgICAgICAgbVllYXJTcGlubmVyLnNldE9uTG9uZ1ByZXNzVXBkYXRlSW50ZXJ2YWwoMTAwKTsKKyAgICAgICAgICAgIG1ZZWFyU3Bpbm5lci5zZXRPblZhbHVlQ2hhbmdlZExpc3RlbmVyKG9uQ2hhbmdlTGlzdGVuZXIpOworICAgICAgICAgICAgbVllYXJTcGlubmVySW5wdXQgPSAoRWRpdFRleHQpIG1ZZWFyU3Bpbm5lci5maW5kVmlld0J5SWQoUi5pZC5udW1iZXJwaWNrZXJfaW5wdXQpOworCisgICAgICAgICAgICAvLyBzaG93IG9ubHkgd2hhdCB0aGUgdXNlciByZXF1aXJlZCBidXQgbWFrZSBzdXJlIHdlCisgICAgICAgICAgICAvLyBzaG93IHNvbWV0aGluZyBhbmQgdGhlIHNwaW5uZXJzIGhhdmUgaGlnaGVyIHByaW9yaXR5CisgICAgICAgICAgICBpZiAoIXNwaW5uZXJzU2hvd24gJiYgIWNhbGVuZGFyVmlld1Nob3duKSB7CisgICAgICAgICAgICAgICAgc2V0U3Bpbm5lcnNTaG93bih0cnVlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc2V0U3Bpbm5lcnNTaG93bihzcGlubmVyc1Nob3duKTsKKyAgICAgICAgICAgICAgICBzZXRDYWxlbmRhclZpZXdTaG93bihjYWxlbmRhclZpZXdTaG93bik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHNldCB0aGUgbWluIGRhdGUgZ2l2aW5nIHByaW9yaXR5IG9mIHRoZSBtaW5EYXRlIG92ZXIgc3RhcnRZZWFyCisgICAgICAgICAgICBtVGVtcERhdGUuY2xlYXIoKTsKKyAgICAgICAgICAgIGlmICghVGV4dFV0aWxzLmlzRW1wdHkobWluRGF0ZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlRGF0ZShtaW5EYXRlLCBtVGVtcERhdGUpKSB7CisgICAgICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5zZXQoc3RhcnRZZWFyLCAwLCAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5zZXQoc3RhcnRZZWFyLCAwLCAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldE1pbkRhdGUobVRlbXBEYXRlLmdldFRpbWVJbk1pbGxpcygpKTsKKworICAgICAgICAgICAgLy8gc2V0IHRoZSBtYXggZGF0ZSBnaXZpbmcgcHJpb3JpdHkgb2YgdGhlIG1heERhdGUgb3ZlciBlbmRZZWFyCisgICAgICAgICAgICBtVGVtcERhdGUuY2xlYXIoKTsKKyAgICAgICAgICAgIGlmICghVGV4dFV0aWxzLmlzRW1wdHkobWF4RGF0ZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlRGF0ZShtYXhEYXRlLCBtVGVtcERhdGUpKSB7CisgICAgICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5zZXQoZW5kWWVhciwgMTEsIDMxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1UZW1wRGF0ZS5zZXQoZW5kWWVhciwgMTEsIDMxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldE1heERhdGUobVRlbXBEYXRlLmdldFRpbWVJbk1pbGxpcygpKTsKKworICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSB0byBjdXJyZW50IGRhdGUKKyAgICAgICAgICAgIG1DdXJyZW50RGF0ZS5zZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgICAgICAgICAgaW5pdChtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLllFQVIpLCBtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLk1PTlRIKSwgbUN1cnJlbnREYXRlCisgICAgICAgICAgICAgICAgICAgIC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSwgbnVsbCk7CisKKyAgICAgICAgICAgIC8vIHJlLW9yZGVyIHRoZSBudW1iZXIgc3Bpbm5lcnMgdG8gbWF0Y2ggdGhlIGN1cnJlbnQgZGF0ZSBmb3JtYXQKKyAgICAgICAgICAgIHJlb3JkZXJTcGlubmVycygpOworCisgICAgICAgICAgICAvLyBhY2Nlc3NpYmlsaXR5CisgICAgICAgICAgICBzZXRDb250ZW50RGVzY3JpcHRpb25zKCk7CisKKyAgICAgICAgICAgIC8vIElmIG5vdCBleHBsaWNpdGx5IHNwZWNpZmllZCB0aGlzIHZpZXcgaXMgaW1wb3J0YW50IGZvciBhY2Nlc3NpYmlsaXR5LgorICAgICAgICAgICAgaWYgKG1EZWxlZ2F0b3IuZ2V0SW1wb3J0YW50Rm9yQWNjZXNzaWJpbGl0eSgpID09IElNUE9SVEFOVF9GT1JfQUNDRVNTSUJJTElUWV9BVVRPKSB7CisgICAgICAgICAgICAgICAgbURlbGVnYXRvci5zZXRJbXBvcnRhbnRGb3JBY2Nlc3NpYmlsaXR5KElNUE9SVEFOVF9GT1JfQUNDRVNTSUJJTElUWV9ZRVMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIGluaXQoaW50IHllYXIsIGludCBtb250aE9mWWVhciwgaW50IGRheU9mTW9udGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgT25EYXRlQ2hhbmdlZExpc3RlbmVyIG9uRGF0ZUNoYW5nZWRMaXN0ZW5lcikgeworICAgICAgICAgICAgc2V0RGF0ZSh5ZWFyLCBtb250aE9mWWVhciwgZGF5T2ZNb250aCk7CisgICAgICAgICAgICB1cGRhdGVTcGlubmVycygpOworICAgICAgICAgICAgdXBkYXRlQ2FsZW5kYXJWaWV3KCk7CisgICAgICAgICAgICBtT25EYXRlQ2hhbmdlZExpc3RlbmVyID0gb25EYXRlQ2hhbmdlZExpc3RlbmVyOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHVwZGF0ZURhdGUoaW50IHllYXIsIGludCBtb250aCwgaW50IGRheU9mTW9udGgpIHsKKyAgICAgICAgICAgIGlmICghaXNOZXdEYXRlKHllYXIsIG1vbnRoLCBkYXlPZk1vbnRoKSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldERhdGUoeWVhciwgbW9udGgsIGRheU9mTW9udGgpOworICAgICAgICAgICAgdXBkYXRlU3Bpbm5lcnMoKTsKKyAgICAgICAgICAgIHVwZGF0ZUNhbGVuZGFyVmlldygpOworICAgICAgICAgICAgbm90aWZ5RGF0ZUNoYW5nZWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgaW50IGdldFllYXIoKSB7CisgICAgICAgICAgICByZXR1cm4gbUN1cnJlbnREYXRlLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgaW50IGdldE1vbnRoKCkgeworICAgICAgICAgICAgcmV0dXJuIG1DdXJyZW50RGF0ZS5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0RGF5T2ZNb250aCgpIHsKKyAgICAgICAgICAgIHJldHVybiBtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgc2V0TWluRGF0ZShsb25nIG1pbkRhdGUpIHsKKyAgICAgICAgICAgIG1UZW1wRGF0ZS5zZXRUaW1lSW5NaWxsaXMobWluRGF0ZSk7CisgICAgICAgICAgICBpZiAobVRlbXBEYXRlLmdldChDYWxlbmRhci5ZRUFSKSA9PSBtTWluRGF0ZS5nZXQoQ2FsZW5kYXIuWUVBUikKKyAgICAgICAgICAgICAgICAgICAgJiYgbVRlbXBEYXRlLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikgIT0gbU1pbkRhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1NaW5EYXRlLnNldFRpbWVJbk1pbGxpcyhtaW5EYXRlKTsKKyAgICAgICAgICAgIG1DYWxlbmRhclZpZXcuc2V0TWluRGF0ZShtaW5EYXRlKTsKKyAgICAgICAgICAgIGlmIChtQ3VycmVudERhdGUuYmVmb3JlKG1NaW5EYXRlKSkgeworICAgICAgICAgICAgICAgIG1DdXJyZW50RGF0ZS5zZXRUaW1lSW5NaWxsaXMobU1pbkRhdGUuZ2V0VGltZUluTWlsbGlzKCkpOworICAgICAgICAgICAgICAgIHVwZGF0ZUNhbGVuZGFyVmlldygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdXBkYXRlU3Bpbm5lcnMoKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgbG9uZyBnZXRNaW5EYXRlKCkgeworICAgICAgICAgICAgcmV0dXJuIG1DYWxlbmRhclZpZXcuZ2V0TWluRGF0ZSgpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHNldE1heERhdGUobG9uZyBtYXhEYXRlKSB7CisgICAgICAgICAgICBtVGVtcERhdGUuc2V0VGltZUluTWlsbGlzKG1heERhdGUpOworICAgICAgICAgICAgaWYgKG1UZW1wRGF0ZS5nZXQoQ2FsZW5kYXIuWUVBUikgPT0gbU1heERhdGUuZ2V0KENhbGVuZGFyLllFQVIpCisgICAgICAgICAgICAgICAgICAgICYmIG1UZW1wRGF0ZS5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpICE9IG1NYXhEYXRlLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtTWF4RGF0ZS5zZXRUaW1lSW5NaWxsaXMobWF4RGF0ZSk7CisgICAgICAgICAgICBtQ2FsZW5kYXJWaWV3LnNldE1heERhdGUobWF4RGF0ZSk7CisgICAgICAgICAgICBpZiAobUN1cnJlbnREYXRlLmFmdGVyKG1NYXhEYXRlKSkgeworICAgICAgICAgICAgICAgIG1DdXJyZW50RGF0ZS5zZXRUaW1lSW5NaWxsaXMobU1heERhdGUuZ2V0VGltZUluTWlsbGlzKCkpOworICAgICAgICAgICAgICAgIHVwZGF0ZUNhbGVuZGFyVmlldygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdXBkYXRlU3Bpbm5lcnMoKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgbG9uZyBnZXRNYXhEYXRlKCkgeworICAgICAgICAgICAgcmV0dXJuIG1DYWxlbmRhclZpZXcuZ2V0TWF4RGF0ZSgpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHNldEVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKSB7CisgICAgICAgICAgICBtRGF5U3Bpbm5lci5zZXRFbmFibGVkKGVuYWJsZWQpOworICAgICAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXRFbmFibGVkKGVuYWJsZWQpOworICAgICAgICAgICAgbVllYXJTcGlubmVyLnNldEVuYWJsZWQoZW5hYmxlZCk7CisgICAgICAgICAgICBtQ2FsZW5kYXJWaWV3LnNldEVuYWJsZWQoZW5hYmxlZCk7CisgICAgICAgICAgICBtSXNFbmFibGVkID0gZW5hYmxlZDsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0VuYWJsZWQoKSB7CisgICAgICAgICAgICByZXR1cm4gbUlzRW5hYmxlZDsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgQ2FsZW5kYXJWaWV3IGdldENhbGVuZGFyVmlldygpIHsKKyAgICAgICAgICAgIHJldHVybiBtQ2FsZW5kYXJWaWV3OworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHNldENhbGVuZGFyVmlld1Nob3duKGJvb2xlYW4gc2hvd24pIHsKKyAgICAgICAgICAgIG1DYWxlbmRhclZpZXcuc2V0VmlzaWJpbGl0eShzaG93biA/IFZJU0lCTEUgOiBHT05FKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBnZXRDYWxlbmRhclZpZXdTaG93bigpIHsKKyAgICAgICAgICAgIHJldHVybiAobUNhbGVuZGFyVmlldy5nZXRWaXNpYmlsaXR5KCkgPT0gVmlldy5WSVNJQkxFKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBzZXRTcGlubmVyc1Nob3duKGJvb2xlYW4gc2hvd24pIHsKKyAgICAgICAgICAgIG1TcGlubmVycy5zZXRWaXNpYmlsaXR5KHNob3duID8gVklTSUJMRSA6IEdPTkUpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBib29sZWFuIGdldFNwaW5uZXJzU2hvd24oKSB7CisgICAgICAgICAgICByZXR1cm4gbVNwaW5uZXJzLmlzU2hvd24oKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkKENvbmZpZ3VyYXRpb24gbmV3Q29uZmlnKSB7CisgICAgICAgICAgICBzZXRDdXJyZW50TG9jYWxlKG5ld0NvbmZpZy5sb2NhbGUpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoUmVzdG9yZUluc3RhbmNlU3RhdGUoU3BhcnNlQXJyYXk8UGFyY2VsYWJsZT4gY29udGFpbmVyKSB7CisgICAgICAgICAgICBtRGVsZWdhdG9yLmRpc3BhdGNoVGhhd1NlbGZPbmx5KGNvbnRhaW5lcik7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIFBhcmNlbGFibGUgb25TYXZlSW5zdGFuY2VTdGF0ZShQYXJjZWxhYmxlIHN1cGVyU3RhdGUpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU2F2ZWRTdGF0ZShzdXBlclN0YXRlLCBnZXRZZWFyKCksIGdldE1vbnRoKCksIGdldERheU9mTW9udGgoKSk7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgb25SZXN0b3JlSW5zdGFuY2VTdGF0ZShQYXJjZWxhYmxlIHN0YXRlKSB7CisgICAgICAgICAgICBTYXZlZFN0YXRlIHNzID0gKFNhdmVkU3RhdGUpIHN0YXRlOworICAgICAgICAgICAgc2V0RGF0ZShzcy5tWWVhciwgc3MubU1vbnRoLCBzcy5tRGF5KTsKKyAgICAgICAgICAgIHVwZGF0ZVNwaW5uZXJzKCk7CisgICAgICAgICAgICB1cGRhdGVDYWxlbmRhclZpZXcoKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBkaXNwYXRjaFBvcHVsYXRlQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCkgeworICAgICAgICAgICAgb25Qb3B1bGF0ZUFjY2Vzc2liaWxpdHlFdmVudChldmVudCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBvblBvcHVsYXRlQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCkgeworICAgICAgICAgICAgZmluYWwgaW50IGZsYWdzID0gRGF0ZVV0aWxzLkZPUk1BVF9TSE9XX0RBVEUgfCBEYXRlVXRpbHMuRk9STUFUX1NIT1dfWUVBUjsKKyAgICAgICAgICAgIFN0cmluZyBzZWxlY3RlZERhdGVVdHRlcmFuY2UgPSBEYXRlVXRpbHMuZm9ybWF0RGF0ZVRpbWUobUNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgIG1DdXJyZW50RGF0ZS5nZXRUaW1lSW5NaWxsaXMoKSwgZmxhZ3MpOworICAgICAgICAgICAgZXZlbnQuZ2V0VGV4dCgpLmFkZChzZWxlY3RlZERhdGVVdHRlcmFuY2UpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIG9uSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHlFdmVudChBY2Nlc3NpYmlsaXR5RXZlbnQgZXZlbnQpIHsKKyAgICAgICAgICAgIGV2ZW50LnNldENsYXNzTmFtZShEYXRlUGlja2VyLmNsYXNzLmdldE5hbWUoKSk7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIHZvaWQgb25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eU5vZGVJbmZvKEFjY2Vzc2liaWxpdHlOb2RlSW5mbyBpbmZvKSB7CisgICAgICAgICAgICBpbmZvLnNldENsYXNzTmFtZShEYXRlUGlja2VyLmNsYXNzLmdldE5hbWUoKSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogU2V0cyB0aGUgY3VycmVudCBsb2NhbGUuCisgICAgICAgICAqCisgICAgICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGN1cnJlbnQgbG9jYWxlLgorICAgICAgICAgKi8KKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHNldEN1cnJlbnRMb2NhbGUoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAgICAgc3VwZXIuc2V0Q3VycmVudExvY2FsZShsb2NhbGUpOworCisgICAgICAgICAgICBtVGVtcERhdGUgPSBnZXRDYWxlbmRhckZvckxvY2FsZShtVGVtcERhdGUsIGxvY2FsZSk7CisgICAgICAgICAgICBtTWluRGF0ZSA9IGdldENhbGVuZGFyRm9yTG9jYWxlKG1NaW5EYXRlLCBsb2NhbGUpOworICAgICAgICAgICAgbU1heERhdGUgPSBnZXRDYWxlbmRhckZvckxvY2FsZShtTWF4RGF0ZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIG1DdXJyZW50RGF0ZSA9IGdldENhbGVuZGFyRm9yTG9jYWxlKG1DdXJyZW50RGF0ZSwgbG9jYWxlKTsKKworICAgICAgICAgICAgbU51bWJlck9mTW9udGhzID0gbVRlbXBEYXRlLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuTU9OVEgpICsgMTsKKyAgICAgICAgICAgIG1TaG9ydE1vbnRocyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scygpLmdldFNob3J0TW9udGhzKCk7CisKKyAgICAgICAgICAgIGlmICh1c2luZ051bWVyaWNNb250aHMoKSkgeworICAgICAgICAgICAgICAgIC8vIFdlJ3JlIGluIGEgbG9jYWxlIHdoZXJlIGEgZGF0ZSBzaG91bGQgZWl0aGVyIGJlIGFsbC1udW1lcmljLCBvciBhbGwtdGV4dC4KKyAgICAgICAgICAgICAgICAvLyBBbGwtdGV4dCB3b3VsZCByZXF1aXJlIGN1c3RvbSBOdW1iZXJQaWNrZXIgZm9ybWF0dGVycyBmb3IgZGF5IGFuZCB5ZWFyLgorICAgICAgICAgICAgICAgIG1TaG9ydE1vbnRocyA9IG5ldyBTdHJpbmdbbU51bWJlck9mTW9udGhzXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1OdW1iZXJPZk1vbnRoczsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIG1TaG9ydE1vbnRoc1tpXSA9IFN0cmluZy5mb3JtYXQoIiVkIiwgaSArIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUZXN0cyB3aGV0aGVyIHRoZSBjdXJyZW50IGxvY2FsZSBpcyBvbmUgd2hlcmUgdGhlcmUgYXJlIG5vIHJlYWwgbW9udGggbmFtZXMsCisgICAgICAgICAqIHN1Y2ggYXMgQ2hpbmVzZSwgSmFwYW5lc2UsIG9yIEtvcmVhbiBsb2NhbGVzLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIHVzaW5nTnVtZXJpY01vbnRocygpIHsKKyAgICAgICAgICAgIHJldHVybiBDaGFyYWN0ZXIuaXNEaWdpdChtU2hvcnRNb250aHNbQ2FsZW5kYXIuSkFOVUFSWV0uY2hhckF0KDApKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXRzIGEgY2FsZW5kYXIgZm9yIGxvY2FsZSBib290c3RyYXBwZWQgd2l0aCB0aGUgdmFsdWUgb2YgYSBnaXZlbiBjYWxlbmRhci4KKyAgICAgICAgICoKKyAgICAgICAgICogQHBhcmFtIG9sZENhbGVuZGFyIFRoZSBvbGQgY2FsZW5kYXIuCisgICAgICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgQ2FsZW5kYXIgZ2V0Q2FsZW5kYXJGb3JMb2NhbGUoQ2FsZW5kYXIgb2xkQ2FsZW5kYXIsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgIGlmIChvbGRDYWxlbmRhciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIENhbGVuZGFyLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZpbmFsIGxvbmcgY3VycmVudFRpbWVNaWxsaXMgPSBvbGRDYWxlbmRhci5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgICAgICAgICBDYWxlbmRhciBuZXdDYWxlbmRhciA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgICAgICAgICAgbmV3Q2FsZW5kYXIuc2V0VGltZUluTWlsbGlzKGN1cnJlbnRUaW1lTWlsbGlzKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3Q2FsZW5kYXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmVvcmRlcnMgdGhlIHNwaW5uZXJzIGFjY29yZGluZyB0byB0aGUgZGF0ZSBmb3JtYXQgdGhhdCBpcworICAgICAgICAgKiBleHBsaWNpdGx5IHNldCBieSB0aGUgdXNlciBhbmQgaWYgbm8gc3VjaCBpcyBzZXQgZmFsbCBiYWNrCisgICAgICAgICAqIHRvIHRoZSBjdXJyZW50IGxvY2FsZSdzIGRlZmF1bHQgZm9ybWF0LgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHJlb3JkZXJTcGlubmVycygpIHsKKyAgICAgICAgICAgIG1TcGlubmVycy5yZW1vdmVBbGxWaWV3cygpOworICAgICAgICAgICAgLy8gV2UgdXNlIG51bWVyaWMgc3Bpbm5lcnMgZm9yIHllYXIgYW5kIGRheSwgYnV0IHRleHR1YWwgbW9udGhzLiBBc2sgaWN1NGMgd2hhdAorICAgICAgICAgICAgLy8gb3JkZXIgdGhlIHVzZXIncyBsb2NhbGUgdXNlcyBmb3IgdGhhdCBjb21iaW5hdGlvbi4gaHR0cDovL2IvNzIwNzEwMy4KKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gSUNVLmdldEJlc3REYXRlVGltZVBhdHRlcm4oInl5eXlNTU1kZCIsCisgICAgICAgICAgICAgICAgICAgIExvY2FsZS5nZXREZWZhdWx0KCkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBjaGFyW10gb3JkZXIgPSBJQ1UuZ2V0RGF0ZUZvcm1hdE9yZGVyKHBhdHRlcm4pOworICAgICAgICAgICAgZmluYWwgaW50IHNwaW5uZXJDb3VudCA9IG9yZGVyLmxlbmd0aDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3Bpbm5lckNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKG9yZGVyW2ldKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2QnOgorICAgICAgICAgICAgICAgICAgICAgICAgbVNwaW5uZXJzLmFkZFZpZXcobURheVNwaW5uZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW1lT3B0aW9ucyhtRGF5U3Bpbm5lciwgc3Bpbm5lckNvdW50LCBpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlICdNJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1TcGlubmVycy5hZGRWaWV3KG1Nb250aFNwaW5uZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW1lT3B0aW9ucyhtTW9udGhTcGlubmVyLCBzcGlubmVyQ291bnQsIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3knOgorICAgICAgICAgICAgICAgICAgICAgICAgbVNwaW5uZXJzLmFkZFZpZXcobVllYXJTcGlubmVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEltZU9wdGlvbnMobVllYXJTcGlubmVyLCBzcGlubmVyQ291bnQsIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKEFycmF5cy50b1N0cmluZyhvcmRlcikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBQYXJzZXMgdGhlIGdpdmVuIDxjb2RlPmRhdGU8L2NvZGU+IGFuZCBpbiBjYXNlIG9mIHN1Y2Nlc3Mgc2V0cyB0aGUgcmVzdWx0CisgICAgICAgICAqIHRvIHRoZSA8Y29kZT5vdXREYXRlPC9jb2RlPi4KKyAgICAgICAgICoKKyAgICAgICAgICogQHJldHVybiBUcnVlIGlmIHRoZSBkYXRlIHdhcyBwYXJzZWQuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gcGFyc2VEYXRlKFN0cmluZyBkYXRlLCBDYWxlbmRhciBvdXREYXRlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG91dERhdGUuc2V0VGltZShtRGF0ZUZvcm1hdC5wYXJzZShkYXRlKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgTG9nLncoTE9HX1RBRywgIkRhdGU6ICIgKyBkYXRlICsgIiBub3QgaW4gZm9ybWF0OiAiICsgREFURV9GT1JNQVQpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc05ld0RhdGUoaW50IHllYXIsIGludCBtb250aCwgaW50IGRheU9mTW9udGgpIHsKKyAgICAgICAgICAgIHJldHVybiAobUN1cnJlbnREYXRlLmdldChDYWxlbmRhci5ZRUFSKSAhPSB5ZWFyCisgICAgICAgICAgICAgICAgICAgIHx8IG1DdXJyZW50RGF0ZS5nZXQoQ2FsZW5kYXIuTU9OVEgpICE9IGRheU9mTW9udGgKKyAgICAgICAgICAgICAgICAgICAgfHwgbUN1cnJlbnREYXRlLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICE9IG1vbnRoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBzZXREYXRlKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoKSB7CisgICAgICAgICAgICBtQ3VycmVudERhdGUuc2V0KHllYXIsIG1vbnRoLCBkYXlPZk1vbnRoKTsKKyAgICAgICAgICAgIGlmIChtQ3VycmVudERhdGUuYmVmb3JlKG1NaW5EYXRlKSkgeworICAgICAgICAgICAgICAgIG1DdXJyZW50RGF0ZS5zZXRUaW1lSW5NaWxsaXMobU1pbkRhdGUuZ2V0VGltZUluTWlsbGlzKCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChtQ3VycmVudERhdGUuYWZ0ZXIobU1heERhdGUpKSB7CisgICAgICAgICAgICAgICAgbUN1cnJlbnREYXRlLnNldFRpbWVJbk1pbGxpcyhtTWF4RGF0ZS5nZXRUaW1lSW5NaWxsaXMoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgdXBkYXRlU3Bpbm5lcnMoKSB7CisgICAgICAgICAgICAvLyBzZXQgdGhlIHNwaW5uZXIgcmFuZ2VzIHJlc3BlY3RpbmcgdGhlIG1pbiBhbmQgbWF4IGRhdGVzCisgICAgICAgICAgICBpZiAobUN1cnJlbnREYXRlLmVxdWFscyhtTWluRGF0ZSkpIHsKKyAgICAgICAgICAgICAgICBtRGF5U3Bpbm5lci5zZXRNaW5WYWx1ZShtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICAgICAgICAgICAgICAgIG1EYXlTcGlubmVyLnNldE1heFZhbHVlKG1DdXJyZW50RGF0ZS5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICAgICAgICAgICAgICAgIG1EYXlTcGlubmVyLnNldFdyYXBTZWxlY3RvcldoZWVsKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBtTW9udGhTcGlubmVyLnNldERpc3BsYXllZFZhbHVlcyhudWxsKTsKKyAgICAgICAgICAgICAgICBtTW9udGhTcGlubmVyLnNldE1pblZhbHVlKG1DdXJyZW50RGF0ZS5nZXQoQ2FsZW5kYXIuTU9OVEgpKTsKKyAgICAgICAgICAgICAgICBtTW9udGhTcGlubmVyLnNldE1heFZhbHVlKG1DdXJyZW50RGF0ZS5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLk1PTlRIKSk7CisgICAgICAgICAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXRXcmFwU2VsZWN0b3JXaGVlbChmYWxzZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1DdXJyZW50RGF0ZS5lcXVhbHMobU1heERhdGUpKSB7CisgICAgICAgICAgICAgICAgbURheVNwaW5uZXIuc2V0TWluVmFsdWUobUN1cnJlbnREYXRlLmdldEFjdHVhbE1pbmltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgICAgICAgICAgbURheVNwaW5uZXIuc2V0TWF4VmFsdWUobUN1cnJlbnREYXRlLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKyAgICAgICAgICAgICAgICBtRGF5U3Bpbm5lci5zZXRXcmFwU2VsZWN0b3JXaGVlbChmYWxzZSk7CisgICAgICAgICAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXREaXNwbGF5ZWRWYWx1ZXMobnVsbCk7CisgICAgICAgICAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXRNaW5WYWx1ZShtQ3VycmVudERhdGUuZ2V0QWN0dWFsTWluaW11bShDYWxlbmRhci5NT05USCkpOworICAgICAgICAgICAgICAgIG1Nb250aFNwaW5uZXIuc2V0TWF4VmFsdWUobUN1cnJlbnREYXRlLmdldChDYWxlbmRhci5NT05USCkpOworICAgICAgICAgICAgICAgIG1Nb250aFNwaW5uZXIuc2V0V3JhcFNlbGVjdG9yV2hlZWwoZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtRGF5U3Bpbm5lci5zZXRNaW5WYWx1ZSgxKTsKKyAgICAgICAgICAgICAgICBtRGF5U3Bpbm5lci5zZXRNYXhWYWx1ZShtQ3VycmVudERhdGUuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKyAgICAgICAgICAgICAgICBtRGF5U3Bpbm5lci5zZXRXcmFwU2VsZWN0b3JXaGVlbCh0cnVlKTsKKyAgICAgICAgICAgICAgICBtTW9udGhTcGlubmVyLnNldERpc3BsYXllZFZhbHVlcyhudWxsKTsKKyAgICAgICAgICAgICAgICBtTW9udGhTcGlubmVyLnNldE1pblZhbHVlKDApOworICAgICAgICAgICAgICAgIG1Nb250aFNwaW5uZXIuc2V0TWF4VmFsdWUoMTEpOworICAgICAgICAgICAgICAgIG1Nb250aFNwaW5uZXIuc2V0V3JhcFNlbGVjdG9yV2hlZWwodHJ1ZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgbW9udGggbmFtZXMgYXJlIGEgemVybyBiYXNlZCBhcnJheQorICAgICAgICAgICAgLy8gd2l0aCB0aGUgbW9udGhzIGluIHRoZSBtb250aCBzcGlubmVyCisgICAgICAgICAgICBTdHJpbmdbXSBkaXNwbGF5ZWRWYWx1ZXMgPSBBcnJheXMuY29weU9mUmFuZ2UobVNob3J0TW9udGhzLAorICAgICAgICAgICAgICAgICAgICBtTW9udGhTcGlubmVyLmdldE1pblZhbHVlKCksIG1Nb250aFNwaW5uZXIuZ2V0TWF4VmFsdWUoKSArIDEpOworICAgICAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXREaXNwbGF5ZWRWYWx1ZXMoZGlzcGxheWVkVmFsdWVzKTsKKworICAgICAgICAgICAgLy8geWVhciBzcGlubmVyIHJhbmdlIGRvZXMgbm90IGNoYW5nZSBiYXNlZCBvbiB0aGUgY3VycmVudCBkYXRlCisgICAgICAgICAgICBtWWVhclNwaW5uZXIuc2V0TWluVmFsdWUobU1pbkRhdGUuZ2V0KENhbGVuZGFyLllFQVIpKTsKKyAgICAgICAgICAgIG1ZZWFyU3Bpbm5lci5zZXRNYXhWYWx1ZShtTWF4RGF0ZS5nZXQoQ2FsZW5kYXIuWUVBUikpOworICAgICAgICAgICAgbVllYXJTcGlubmVyLnNldFdyYXBTZWxlY3RvcldoZWVsKGZhbHNlKTsKKworICAgICAgICAgICAgLy8gc2V0IHRoZSBzcGlubmVyIHZhbHVlcworICAgICAgICAgICAgbVllYXJTcGlubmVyLnNldFZhbHVlKG1DdXJyZW50RGF0ZS5nZXQoQ2FsZW5kYXIuWUVBUikpOworICAgICAgICAgICAgbU1vbnRoU3Bpbm5lci5zZXRWYWx1ZShtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLk1PTlRIKSk7CisgICAgICAgICAgICBtRGF5U3Bpbm5lci5zZXRWYWx1ZShtQ3VycmVudERhdGUuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworCisgICAgICAgICAgICBpZiAodXNpbmdOdW1lcmljTW9udGhzKCkpIHsKKyAgICAgICAgICAgICAgICBtTW9udGhTcGlubmVySW5wdXQuc2V0UmF3SW5wdXRUeXBlKElucHV0VHlwZS5UWVBFX0NMQVNTX05VTUJFUik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVXBkYXRlcyB0aGUgY2FsZW5kYXIgdmlldyB3aXRoIHRoZSBjdXJyZW50IGRhdGUuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgdXBkYXRlQ2FsZW5kYXJWaWV3KCkgeworICAgICAgICAgICAgbUNhbGVuZGFyVmlldy5zZXREYXRlKG1DdXJyZW50RGF0ZS5nZXRUaW1lSW5NaWxsaXMoKSwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE5vdGlmaWVzIHRoZSBsaXN0ZW5lciwgaWYgc3VjaCwgZm9yIGEgY2hhbmdlIGluIHRoZSBzZWxlY3RlZCBkYXRlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIG5vdGlmeURhdGVDaGFuZ2VkKCkgeworICAgICAgICAgICAgbURlbGVnYXRvci5zZW5kQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudC5UWVBFX1ZJRVdfU0VMRUNURUQpOworICAgICAgICAgICAgaWYgKG1PbkRhdGVDaGFuZ2VkTGlzdGVuZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1PbkRhdGVDaGFuZ2VkTGlzdGVuZXIub25EYXRlQ2hhbmdlZChtRGVsZWdhdG9yLCBnZXRZZWFyKCksIGdldE1vbnRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICBnZXREYXlPZk1vbnRoKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHMgdGhlIElNRSBvcHRpb25zIGZvciBhIHNwaW5uZXIgYmFzZWQgb24gaXRzIG9yZGVyaW5nLgorICAgICAgICAgKgorICAgICAgICAgKiBAcGFyYW0gc3Bpbm5lciBUaGUgc3Bpbm5lci4KKyAgICAgICAgICogQHBhcmFtIHNwaW5uZXJDb3VudCBUaGUgdG90YWwgc3Bpbm5lciBjb3VudC4KKyAgICAgICAgICogQHBhcmFtIHNwaW5uZXJJbmRleCBUaGUgaW5kZXggb2YgdGhlIGdpdmVuIHNwaW5uZXIuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2V0SW1lT3B0aW9ucyhOdW1iZXJQaWNrZXIgc3Bpbm5lciwgaW50IHNwaW5uZXJDb3VudCwgaW50IHNwaW5uZXJJbmRleCkgeworICAgICAgICAgICAgZmluYWwgaW50IGltZU9wdGlvbnM7CisgICAgICAgICAgICBpZiAoc3Bpbm5lckluZGV4IDwgc3Bpbm5lckNvdW50IC0gMSkgeworICAgICAgICAgICAgICAgIGltZU9wdGlvbnMgPSBFZGl0b3JJbmZvLklNRV9BQ1RJT05fTkVYVDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW1lT3B0aW9ucyA9IEVkaXRvckluZm8uSU1FX0FDVElPTl9ET05FOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVGV4dFZpZXcgaW5wdXQgPSAoVGV4dFZpZXcpIHNwaW5uZXIuZmluZFZpZXdCeUlkKFIuaWQubnVtYmVycGlja2VyX2lucHV0KTsKKyAgICAgICAgICAgIGlucHV0LnNldEltZU9wdGlvbnMoaW1lT3B0aW9ucyk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgc2V0Q29udGVudERlc2NyaXB0aW9ucygpIHsKKyAgICAgICAgICAgIC8vIERheQorICAgICAgICAgICAgdHJ5U2V0Q29udGVudERlc2NyaXB0aW9uKG1EYXlTcGlubmVyLCBSLmlkLmluY3JlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgUi5zdHJpbmcuZGF0ZV9waWNrZXJfaW5jcmVtZW50X2RheV9idXR0b24pOworICAgICAgICAgICAgdHJ5U2V0Q29udGVudERlc2NyaXB0aW9uKG1EYXlTcGlubmVyLCBSLmlkLmRlY3JlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgUi5zdHJpbmcuZGF0ZV9waWNrZXJfZGVjcmVtZW50X2RheV9idXR0b24pOworICAgICAgICAgICAgLy8gTW9udGgKKyAgICAgICAgICAgIHRyeVNldENvbnRlbnREZXNjcmlwdGlvbihtTW9udGhTcGlubmVyLCBSLmlkLmluY3JlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgUi5zdHJpbmcuZGF0ZV9waWNrZXJfaW5jcmVtZW50X21vbnRoX2J1dHRvbik7CisgICAgICAgICAgICB0cnlTZXRDb250ZW50RGVzY3JpcHRpb24obU1vbnRoU3Bpbm5lciwgUi5pZC5kZWNyZW1lbnQsCisgICAgICAgICAgICAgICAgICAgIFIuc3RyaW5nLmRhdGVfcGlja2VyX2RlY3JlbWVudF9tb250aF9idXR0b24pOworICAgICAgICAgICAgLy8gWWVhcgorICAgICAgICAgICAgdHJ5U2V0Q29udGVudERlc2NyaXB0aW9uKG1ZZWFyU3Bpbm5lciwgUi5pZC5pbmNyZW1lbnQsCisgICAgICAgICAgICAgICAgICAgIFIuc3RyaW5nLmRhdGVfcGlja2VyX2luY3JlbWVudF95ZWFyX2J1dHRvbik7CisgICAgICAgICAgICB0cnlTZXRDb250ZW50RGVzY3JpcHRpb24obVllYXJTcGlubmVyLCBSLmlkLmRlY3JlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgUi5zdHJpbmcuZGF0ZV9waWNrZXJfZGVjcmVtZW50X3llYXJfYnV0dG9uKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCB0cnlTZXRDb250ZW50RGVzY3JpcHRpb24oVmlldyByb290LCBpbnQgdmlld0lkLCBpbnQgY29udERlc2NSZXNJZCkgeworICAgICAgICAgICAgVmlldyB0YXJnZXQgPSByb290LmZpbmRWaWV3QnlJZCh2aWV3SWQpOworICAgICAgICAgICAgaWYgKHRhcmdldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LnNldENvbnRlbnREZXNjcmlwdGlvbihtQ29udGV4dC5nZXRTdHJpbmcoY29udERlc2NSZXNJZCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZUlucHV0U3RhdGUoKSB7CisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBpZiB0aGUgdXNlciBjaGFuZ2VzIHRoZSB2YWx1ZSBhbmQgdGhlIElNRSBpcyBhY3RpdmUKKyAgICAgICAgICAgIC8vIGZvciBvbmUgb2YgdGhlIGlucHV0cyBpZiB0aGlzIHdpZGdldCwgdGhlIElNRSBpcyBjbG9zZWQuIElmIHRoZSB1c2VyCisgICAgICAgICAgICAvLyBjaGFuZ2VkIHRoZSB2YWx1ZSB2aWEgdGhlIElNRSBhbmQgdGhlcmUgaXMgYSBuZXh0IGlucHV0IHRoZSBJTUUgd2lsbAorICAgICAgICAgICAgLy8gYmUgc2hvd24sIG90aGVyd2lzZSB0aGUgdXNlciBjaG9zZSBhbm90aGVyIG1lYW5zIG9mIGNoYW5naW5nIHRoZQorICAgICAgICAgICAgLy8gdmFsdWUgYW5kIGhhdmluZyB0aGUgSU1FIHVwIG1ha2VzIG5vIHNlbnNlLgorICAgICAgICAgICAgSW5wdXRNZXRob2RNYW5hZ2VyIGlucHV0TWV0aG9kTWFuYWdlciA9IElucHV0TWV0aG9kTWFuYWdlci5wZWVrSW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGlmIChpbnB1dE1ldGhvZE1hbmFnZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChpbnB1dE1ldGhvZE1hbmFnZXIuaXNBY3RpdmUobVllYXJTcGlubmVySW5wdXQpKSB7CisgICAgICAgICAgICAgICAgICAgIG1ZZWFyU3Bpbm5lcklucHV0LmNsZWFyRm9jdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgaW5wdXRNZXRob2RNYW5hZ2VyLmhpZGVTb2Z0SW5wdXRGcm9tV2luZG93KG1EZWxlZ2F0b3IuZ2V0V2luZG93VG9rZW4oKSwgMCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dE1ldGhvZE1hbmFnZXIuaXNBY3RpdmUobU1vbnRoU3Bpbm5lcklucHV0KSkgeworICAgICAgICAgICAgICAgICAgICBtTW9udGhTcGlubmVySW5wdXQuY2xlYXJGb2N1cygpOworICAgICAgICAgICAgICAgICAgICBpbnB1dE1ldGhvZE1hbmFnZXIuaGlkZVNvZnRJbnB1dEZyb21XaW5kb3cobURlbGVnYXRvci5nZXRXaW5kb3dUb2tlbigpLCAwKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0TWV0aG9kTWFuYWdlci5pc0FjdGl2ZShtRGF5U3Bpbm5lcklucHV0KSkgeworICAgICAgICAgICAgICAgICAgICBtRGF5U3Bpbm5lcklucHV0LmNsZWFyRm9jdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgaW5wdXRNZXRob2RNYW5hZ2VyLmhpZGVTb2Z0SW5wdXRGcm9tV2luZG93KG1EZWxlZ2F0b3IuZ2V0V2luZG93VG9rZW4oKSwgMCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0VkaXRUZXh0LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvRWRpdFRleHQuamF2YQppbmRleCA1N2U1MWMyLi4zYTdjYzg3IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvRWRpdFRleHQuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvRWRpdFRleHQuamF2YQpAQCAtNTYsOCArNTYsMTIgQEAKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5hdHRyLmVkaXRUZXh0U3R5bGUpOwogICAgIH0KIAotICAgIHB1YmxpYyBFZGl0VGV4dChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIEVkaXRUZXh0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIEVkaXRUZXh0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgIH0KIAogICAgIEBPdmVycmlkZQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0VkaXRvci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0VkaXRvci5qYXZhCmluZGV4IDlkYWI3YjQuLjBlNGQ0MjIgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9FZGl0b3IuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvRWRpdG9yLmphdmEKQEAgLTEzNDYsNyArMTM0Niw3IEBACiAgICAgICAgICAgICAgICAgRGlzcGxheUxpc3QgYmxvY2tEaXNwbGF5TGlzdCA9IG1UZXh0RGlzcGxheUxpc3RzW2Jsb2NrSW5kZXhdOwogICAgICAgICAgICAgICAgIGlmIChibG9ja0Rpc3BsYXlMaXN0ID09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgYmxvY2tEaXNwbGF5TGlzdCA9IG1UZXh0RGlzcGxheUxpc3RzW2Jsb2NrSW5kZXhdID0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVGV4dFZpZXcuZ2V0SGFyZHdhcmVSZW5kZXJlcigpLmNyZWF0ZURpc3BsYXlMaXN0KCJUZXh0ICIgKyBibG9ja0luZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5TGlzdC5jcmVhdGUoIlRleHQgIiArIGJsb2NrSW5kZXgpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChibG9ja0lzSW52YWxpZCkgYmxvY2tEaXNwbGF5TGlzdC5jbGVhcigpOwogICAgICAgICAgICAgICAgIH0KQEAgLTIzMjEsOCArMjMyMSw4IEBACiAgICAgICAgIHByaXZhdGUgZmluYWwgSGFzaE1hcDxTdWdnZXN0aW9uU3BhbiwgSW50ZWdlcj4gbVNwYW5zTGVuZ3RoczsKIAogICAgICAgICBwcml2YXRlIGNsYXNzIEN1c3RvbVBvcHVwV2luZG93IGV4dGVuZHMgUG9wdXBXaW5kb3cgewotICAgICAgICAgICAgcHVibGljIEN1c3RvbVBvcHVwV2luZG93KENvbnRleHQgY29udGV4dCwgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgICAgICAgICAgc3VwZXIoY29udGV4dCwgbnVsbCwgZGVmU3R5bGUpOworICAgICAgICAgICAgcHVibGljIEN1c3RvbVBvcHVwV2luZG93KENvbnRleHQgY29udGV4dCwgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICAgICAgICAgIHN1cGVyKGNvbnRleHQsIG51bGwsIGRlZlN0eWxlQXR0cik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIEBPdmVycmlkZQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0V4cGFuZGFibGVMaXN0Vmlldy5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0V4cGFuZGFibGVMaXN0Vmlldy5qYXZhCmluZGV4IDdiODFhYTguLjcwMDg5ZTAgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9FeHBhbmRhYmxlTGlzdFZpZXcuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvRXhwYW5kYWJsZUxpc3RWaWV3LmphdmEKQEAgLTIyNywxMiArMjI3LDE2IEBACiAgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci5leHBhbmRhYmxlTGlzdFZpZXdTdHlsZSk7CiAgICAgfQogCi0gICAgcHVibGljIEV4cGFuZGFibGVMaXN0VmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIEV4cGFuZGFibGVMaXN0VmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KIAotICAgICAgICBUeXBlZEFycmF5IGEgPQotICAgICAgICAgICAgY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAotICAgICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5FeHBhbmRhYmxlTGlzdFZpZXcsIGRlZlN0eWxlLCAwKTsKKyAgICBwdWJsaWMgRXhwYW5kYWJsZUxpc3RWaWV3KAorICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAorICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkV4cGFuZGFibGVMaXN0VmlldywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgbUdyb3VwSW5kaWNhdG9yID0gYS5nZXREcmF3YWJsZSgKICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5FeHBhbmRhYmxlTGlzdFZpZXdfZ3JvdXBJbmRpY2F0b3IpOwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0Zhc3RTY3JvbGxlci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0Zhc3RTY3JvbGxlci5qYXZhCmluZGV4IDAxYWM4ZmQuLjZkMzhjOGYgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9GYXN0U2Nyb2xsZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvRmFzdFNjcm9sbGVyLmphdmEKQEAgLTI0LDcgKzI0LDYgQEAKIGltcG9ydCBhbmRyb2lkLmFuaW1hdGlvbi5Qcm9wZXJ0eVZhbHVlc0hvbGRlcjsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLkNvbG9yU3RhdGVMaXN0OwotaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuUmVzb3VyY2VzOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuVHlwZWRBcnJheTsKIGltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlJlY3Q7CiBpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS5EcmF3YWJsZTsKQEAgLTQzLDcgKzQyLDcgQEAKIGltcG9ydCBhbmRyb2lkLnZpZXcuVmlld0dyb3VwLkxheW91dFBhcmFtczsKIGltcG9ydCBhbmRyb2lkLnZpZXcuVmlld0dyb3VwT3ZlcmxheTsKIGltcG9ydCBhbmRyb2lkLndpZGdldC5BYnNMaXN0Vmlldy5PblNjcm9sbExpc3RlbmVyOwotaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLlI7CitpbXBvcnQgYW5kcm9pZC53aWRnZXQuSW1hZ2VWaWV3LlNjYWxlVHlwZTsKIAogLyoqCiAgKiBIZWxwZXIgY2xhc3MgZm9yIEFic0xpc3RWaWV3IHRvIGRyYXcgYW5kIGNvbnRyb2wgdGhlIEZhc3QgU2Nyb2xsIHRodW1iCkBAIC03NiwyNCArNzUsNiBAQAogICAgIC8qKiBTY3JvbGwgdGh1bWIgYW5kIHByZXZpZXcgYmVpbmcgZHJhZ2dlZCBieSB1c2VyLiAqLwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFURV9EUkFHR0lORyA9IDI7CiAKLSAgICAvKiogU3R5bGVhYmxlIGF0dHJpYnV0ZXMuICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gQVRUUlMgPSBuZXcgaW50W10gewotICAgICAgICBhbmRyb2lkLlIuYXR0ci5mYXN0U2Nyb2xsVGV4dENvbG9yLAotICAgICAgICBhbmRyb2lkLlIuYXR0ci5mYXN0U2Nyb2xsVGh1bWJEcmF3YWJsZSwKLSAgICAgICAgYW5kcm9pZC5SLmF0dHIuZmFzdFNjcm9sbFRyYWNrRHJhd2FibGUsCi0gICAgICAgIGFuZHJvaWQuUi5hdHRyLmZhc3RTY3JvbGxQcmV2aWV3QmFja2dyb3VuZExlZnQsCi0gICAgICAgIGFuZHJvaWQuUi5hdHRyLmZhc3RTY3JvbGxQcmV2aWV3QmFja2dyb3VuZFJpZ2h0LAotICAgICAgICBhbmRyb2lkLlIuYXR0ci5mYXN0U2Nyb2xsT3ZlcmxheVBvc2l0aW9uCi0gICAgfTsKLQotICAgIC8vIFN0eWxlYWJsZSBhdHRyaWJ1dGUgaW5kaWNlcy4KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEVYVF9DT0xPUiA9IDA7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRIVU1CX0RSQVdBQkxFID0gMTsKLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFJBQ0tfRFJBV0FCTEUgPSAyOwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBQUkVWSUVXX0JBQ0tHUk9VTkRfTEVGVCA9IDM7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFBSRVZJRVdfQkFDS0dST1VORF9SSUdIVCA9IDQ7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9WRVJMQVlfUE9TSVRJT04gPSA1OwotCiAgICAgLy8gUG9zaXRpb25zIGZvciBwcmV2aWV3IGltYWdlIGFuZCB0ZXh0LgogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPVkVSTEFZX0ZMT0FUSU5HID0gMDsKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT1ZFUkxBWV9BVF9USFVNQiA9IDE7CkBAIC0xMTUsNyArOTYsNyBAQAogICAgIHByaXZhdGUgZmluYWwgVGV4dFZpZXcgbVNlY29uZGFyeVRleHQ7CiAgICAgcHJpdmF0ZSBmaW5hbCBJbWFnZVZpZXcgbVRodW1iSW1hZ2U7CiAgICAgcHJpdmF0ZSBmaW5hbCBJbWFnZVZpZXcgbVRyYWNrSW1hZ2U7Ci0gICAgcHJpdmF0ZSBmaW5hbCBJbWFnZVZpZXcgbVByZXZpZXdJbWFnZTsKKyAgICBwcml2YXRlIGZpbmFsIFZpZXcgbVByZXZpZXdJbWFnZTsKIAogICAgIC8qKgogICAgICAqIFByZXZpZXcgaW1hZ2UgcmVzb3VyY2UgSURzIGZvciBsZWZ0LSBhbmQgcmlnaHQtYWxpZ25lZCBsYXlvdXRzLiBTZWUKQEAgLTEyNywxMyArMTA4LDI1IEBACiAgICAgICogUGFkZGluZyBpbiBwaXhlbHMgYXJvdW5kIHRoZSBwcmV2aWV3IHRleHQuIEFwcGxpZWQgYXMgbGF5b3V0IG1hcmdpbnMgdG8KICAgICAgKiB0aGUgcHJldmlldyB0ZXh0IGFuZCBwYWRkaW5nIHRvIHRoZSBwcmV2aWV3IGltYWdlLgogICAgICAqLwotICAgIHByaXZhdGUgZmluYWwgaW50IG1QcmV2aWV3UGFkZGluZzsKKyAgICBwcml2YXRlIGludCBtUHJldmlld1BhZGRpbmc7CiAKLSAgICAvKiogV2hldGhlciB0aGVyZSBpcyBhIHRyYWNrIGltYWdlIHRvIGRpc3BsYXkuICovCi0gICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIG1IYXNUcmFja0ltYWdlOworICAgIHByaXZhdGUgaW50IG1QcmV2aWV3TWluV2lkdGg7CisgICAgcHJpdmF0ZSBpbnQgbVByZXZpZXdNaW5IZWlnaHQ7CisgICAgcHJpdmF0ZSBpbnQgbVRodW1iTWluV2lkdGg7CisgICAgcHJpdmF0ZSBpbnQgbVRodW1iTWluSGVpZ2h0OworCisgICAgLyoqIFRoZW1lLXNwZWNpZmllZCB0ZXh0IHNpemUuIFVzZWQgb25seSBpZiB0ZXh0IGFwcGVhcmFuY2UgaXMgbm90IHNldC4gKi8KKyAgICBwcml2YXRlIGZsb2F0IG1UZXh0U2l6ZTsKKworICAgIC8qKiBUaGVtZS1zcGVjaWZpZWQgdGV4dCBjb2xvci4gVXNlZCBvbmx5IGlmIHRleHQgYXBwZWFyYW5jZSBpcyBub3Qgc2V0LiAqLworICAgIHByaXZhdGUgQ29sb3JTdGF0ZUxpc3QgbVRleHRDb2xvcjsKKworICAgIHByaXZhdGUgRHJhd2FibGUgbVRodW1iRHJhd2FibGU7CisgICAgcHJpdmF0ZSBEcmF3YWJsZSBtVHJhY2tEcmF3YWJsZTsKKyAgICBwcml2YXRlIGludCBtVGV4dEFwcGVhcmFuY2U7CiAKICAgICAvKiogVG90YWwgd2lkdGggb2YgZGVjb3JhdGlvbnMuICovCi0gICAgcHJpdmF0ZSBmaW5hbCBpbnQgbVdpZHRoOworICAgIHByaXZhdGUgaW50IG1XaWR0aDsKIAogICAgIC8qKiBTZXQgY29udGFpbmluZyBkZWNvcmF0aW9uIHRyYW5zaXRpb24gYW5pbWF0aW9ucy4gKi8KICAgICBwcml2YXRlIEFuaW1hdG9yU2V0IG1EZWNvckFuaW1hdGlvbjsKQEAgLTI0NSw4OSArMjM4LDE0MyBAQAogICAgICAgICB9CiAgICAgfTsKIAotICAgIHB1YmxpYyBGYXN0U2Nyb2xsZXIoQWJzTGlzdFZpZXcgbGlzdFZpZXcpIHsKKyAgICBwdWJsaWMgRmFzdFNjcm9sbGVyKEFic0xpc3RWaWV3IGxpc3RWaWV3LCBpbnQgc3R5bGVSZXNJZCkgewogICAgICAgICBtTGlzdCA9IGxpc3RWaWV3OwotICAgICAgICBtT3ZlcmxheSA9IGxpc3RWaWV3LmdldE92ZXJsYXkoKTsKIAogICAgICAgICBmaW5hbCBDb250ZXh0IGNvbnRleHQgPSBsaXN0Vmlldy5nZXRDb250ZXh0KCk7CiAgICAgICAgIG1TY2FsZWRUb3VjaFNsb3AgPSBWaWV3Q29uZmlndXJhdGlvbi5nZXQoY29udGV4dCkuZ2V0U2NhbGVkVG91Y2hTbG9wKCk7CisgICAgICAgIG1TY3JvbGxCYXJTdHlsZSA9IGxpc3RWaWV3LmdldFNjcm9sbEJhclN0eWxlKCk7CiAKLSAgICAgICAgZmluYWwgUmVzb3VyY2VzIHJlcyA9IGNvbnRleHQuZ2V0UmVzb3VyY2VzKCk7Ci0gICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgdGEgPSBjb250ZXh0LmdldFRoZW1lKCkub2J0YWluU3R5bGVkQXR0cmlidXRlcyhBVFRSUyk7CisgICAgICAgIG1TY3JvbGxDb21wbGV0ZWQgPSB0cnVlOworICAgICAgICBtU3RhdGUgPSBTVEFURV9WSVNJQkxFOworICAgICAgICBtTWF0Y2hEcmFnUG9zaXRpb24gPQorICAgICAgICAgICAgICAgIGNvbnRleHQuZ2V0QXBwbGljYXRpb25JbmZvKCkudGFyZ2V0U2RrVmVyc2lvbiA+PSBCdWlsZC5WRVJTSU9OX0NPREVTLkhPTkVZQ09NQjsKIAotICAgICAgICBmaW5hbCBJbWFnZVZpZXcgdHJhY2tJbWFnZSA9IG5ldyBJbWFnZVZpZXcoY29udGV4dCk7Ci0gICAgICAgIG1UcmFja0ltYWdlID0gdHJhY2tJbWFnZTsKKyAgICAgICAgbVRyYWNrSW1hZ2UgPSBuZXcgSW1hZ2VWaWV3KGNvbnRleHQpOworICAgICAgICBtVHJhY2tJbWFnZS5zZXRTY2FsZVR5cGUoU2NhbGVUeXBlLkZJVF9YWSk7CisgICAgICAgIG1UaHVtYkltYWdlID0gbmV3IEltYWdlVmlldyhjb250ZXh0KTsKKyAgICAgICAgbVRodW1iSW1hZ2Uuc2V0U2NhbGVUeXBlKFNjYWxlVHlwZS5GSVRfWFkpOworICAgICAgICBtUHJldmlld0ltYWdlID0gbmV3IFZpZXcoY29udGV4dCk7CisgICAgICAgIG1QcmV2aWV3SW1hZ2Uuc2V0QWxwaGEoMGYpOwogCisgICAgICAgIG1QcmltYXJ5VGV4dCA9IGNyZWF0ZVByZXZpZXdUZXh0Vmlldyhjb250ZXh0KTsKKyAgICAgICAgbVNlY29uZGFyeVRleHQgPSBjcmVhdGVQcmV2aWV3VGV4dFZpZXcoY29udGV4dCk7CisKKyAgICAgICAgc2V0U3R5bGUoc3R5bGVSZXNJZCk7CisKKyAgICAgICAgZmluYWwgVmlld0dyb3VwT3ZlcmxheSBvdmVybGF5ID0gbGlzdFZpZXcuZ2V0T3ZlcmxheSgpOworICAgICAgICBtT3ZlcmxheSA9IG92ZXJsYXk7CisgICAgICAgIG92ZXJsYXkuYWRkKG1UcmFja0ltYWdlKTsKKyAgICAgICAgb3ZlcmxheS5hZGQobVRodW1iSW1hZ2UpOworICAgICAgICBvdmVybGF5LmFkZChtUHJldmlld0ltYWdlKTsKKyAgICAgICAgb3ZlcmxheS5hZGQobVByaW1hcnlUZXh0KTsKKyAgICAgICAgb3ZlcmxheS5hZGQobVNlY29uZGFyeVRleHQpOworCisgICAgICAgIGdldFNlY3Rpb25zRnJvbUluZGV4ZXIoKTsKKyAgICAgICAgdXBkYXRlTG9uZ0xpc3QobGlzdFZpZXcuZ2V0Q2hpbGRDb3VudCgpLCBsaXN0Vmlldy5nZXRDb3VudCgpKTsKKyAgICAgICAgc2V0U2Nyb2xsYmFyUG9zaXRpb24obGlzdFZpZXcuZ2V0VmVydGljYWxTY3JvbGxiYXJQb3NpdGlvbigpKTsKKyAgICAgICAgcG9zdEF1dG9IaWRlKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZUFwcGVhcmFuY2UoKSB7CisgICAgICAgIGZpbmFsIENvbnRleHQgY29udGV4dCA9IG1MaXN0LmdldENvbnRleHQoKTsKICAgICAgICAgaW50IHdpZHRoID0gMDsKIAogICAgICAgICAvLyBBZGQgdHJhY2sgdG8gb3ZlcmxheSBpZiBpdCBoYXMgYW4gaW1hZ2UuCi0gICAgICAgIGZpbmFsIERyYXdhYmxlIHRyYWNrRHJhd2FibGUgPSB0YS5nZXREcmF3YWJsZShUUkFDS19EUkFXQUJMRSk7Ci0gICAgICAgIGlmICh0cmFja0RyYXdhYmxlICE9IG51bGwpIHsKLSAgICAgICAgICAgIG1IYXNUcmFja0ltYWdlID0gdHJ1ZTsKLSAgICAgICAgICAgIHRyYWNrSW1hZ2Uuc2V0QmFja2dyb3VuZCh0cmFja0RyYXdhYmxlKTsKLSAgICAgICAgICAgIG1PdmVybGF5LmFkZCh0cmFja0ltYWdlKTsKLSAgICAgICAgICAgIHdpZHRoID0gTWF0aC5tYXgod2lkdGgsIHRyYWNrRHJhd2FibGUuZ2V0SW50cmluc2ljV2lkdGgoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtSGFzVHJhY2tJbWFnZSA9IGZhbHNlOworICAgICAgICBtVHJhY2tJbWFnZS5zZXRJbWFnZURyYXdhYmxlKG1UcmFja0RyYXdhYmxlKTsKKyAgICAgICAgaWYgKG1UcmFja0RyYXdhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHdpZHRoID0gTWF0aC5tYXgod2lkdGgsIG1UcmFja0RyYXdhYmxlLmdldEludHJpbnNpY1dpZHRoKCkpOwogICAgICAgICB9CiAKLSAgICAgICAgZmluYWwgSW1hZ2VWaWV3IHRodW1iSW1hZ2UgPSBuZXcgSW1hZ2VWaWV3KGNvbnRleHQpOwotICAgICAgICBtVGh1bWJJbWFnZSA9IHRodW1iSW1hZ2U7Ci0KICAgICAgICAgLy8gQWRkIHRodW1iIHRvIG92ZXJsYXkgaWYgaXQgaGFzIGFuIGltYWdlLgotICAgICAgICBmaW5hbCBEcmF3YWJsZSB0aHVtYkRyYXdhYmxlID0gdGEuZ2V0RHJhd2FibGUoVEhVTUJfRFJBV0FCTEUpOwotICAgICAgICBpZiAodGh1bWJEcmF3YWJsZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICB0aHVtYkltYWdlLnNldEltYWdlRHJhd2FibGUodGh1bWJEcmF3YWJsZSk7Ci0gICAgICAgICAgICBtT3ZlcmxheS5hZGQodGh1bWJJbWFnZSk7Ci0gICAgICAgICAgICB3aWR0aCA9IE1hdGgubWF4KHdpZHRoLCB0aHVtYkRyYXdhYmxlLmdldEludHJpbnNpY1dpZHRoKCkpOworICAgICAgICBtVGh1bWJJbWFnZS5zZXRJbWFnZURyYXdhYmxlKG1UaHVtYkRyYXdhYmxlKTsKKyAgICAgICAgbVRodW1iSW1hZ2Uuc2V0TWluaW11bVdpZHRoKG1UaHVtYk1pbldpZHRoKTsKKyAgICAgICAgbVRodW1iSW1hZ2Uuc2V0TWluaW11bUhlaWdodChtVGh1bWJNaW5IZWlnaHQpOworICAgICAgICBpZiAobVRodW1iRHJhd2FibGUgIT0gbnVsbCkgeworICAgICAgICAgICAgd2lkdGggPSBNYXRoLm1heCh3aWR0aCwgbVRodW1iRHJhd2FibGUuZ2V0SW50cmluc2ljV2lkdGgoKSk7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBJZiBuZWNlc3NhcnksIGFwcGx5IG1pbmltdW0gdGh1bWIgd2lkdGggYW5kIGhlaWdodC4KLSAgICAgICAgaWYgKHRodW1iRHJhd2FibGUuZ2V0SW50cmluc2ljV2lkdGgoKSA8PSAwIHx8IHRodW1iRHJhd2FibGUuZ2V0SW50cmluc2ljSGVpZ2h0KCkgPD0gMCkgewotICAgICAgICAgICAgZmluYWwgaW50IG1pbldpZHRoID0gcmVzLmdldERpbWVuc2lvblBpeGVsU2l6ZShSLmRpbWVuLmZhc3RzY3JvbGxfdGh1bWJfd2lkdGgpOwotICAgICAgICAgICAgdGh1bWJJbWFnZS5zZXRNaW5pbXVtV2lkdGgobWluV2lkdGgpOwotICAgICAgICAgICAgdGh1bWJJbWFnZS5zZXRNaW5pbXVtSGVpZ2h0KAotICAgICAgICAgICAgICAgICAgICByZXMuZ2V0RGltZW5zaW9uUGl4ZWxTaXplKFIuZGltZW4uZmFzdHNjcm9sbF90aHVtYl9oZWlnaHQpKTsKLSAgICAgICAgICAgIHdpZHRoID0gTWF0aC5tYXgod2lkdGgsIG1pbldpZHRoKTsKKyAgICAgICAgLy8gQWNjb3VudCBmb3IgbWluaW11bSB0aHVtYiB3aWR0aC4KKyAgICAgICAgbVdpZHRoID0gTWF0aC5tYXgod2lkdGgsIG1UaHVtYk1pbldpZHRoKTsKKworICAgICAgICBtUHJldmlld0ltYWdlLnNldE1pbmltdW1XaWR0aChtUHJldmlld01pbldpZHRoKTsKKyAgICAgICAgbVByZXZpZXdJbWFnZS5zZXRNaW5pbXVtSGVpZ2h0KG1QcmV2aWV3TWluSGVpZ2h0KTsKKworICAgICAgICBpZiAobVRleHRBcHBlYXJhbmNlICE9IDApIHsKKyAgICAgICAgICAgIG1QcmltYXJ5VGV4dC5zZXRUZXh0QXBwZWFyYW5jZShjb250ZXh0LCBtVGV4dEFwcGVhcmFuY2UpOworICAgICAgICAgICAgbVNlY29uZGFyeVRleHQuc2V0VGV4dEFwcGVhcmFuY2UoY29udGV4dCwgbVRleHRBcHBlYXJhbmNlKTsKICAgICAgICAgfQogCi0gICAgICAgIG1XaWR0aCA9IHdpZHRoOworICAgICAgICBpZiAobVRleHRDb2xvciAhPSBudWxsKSB7CisgICAgICAgICAgICBtUHJpbWFyeVRleHQuc2V0VGV4dENvbG9yKG1UZXh0Q29sb3IpOworICAgICAgICAgICAgbVNlY29uZGFyeVRleHQuc2V0VGV4dENvbG9yKG1UZXh0Q29sb3IpOworICAgICAgICB9CiAKLSAgICAgICAgZmluYWwgaW50IHByZXZpZXdTaXplID0gcmVzLmdldERpbWVuc2lvblBpeGVsU2l6ZShSLmRpbWVuLmZhc3RzY3JvbGxfb3ZlcmxheV9zaXplKTsKLSAgICAgICAgbVByZXZpZXdJbWFnZSA9IG5ldyBJbWFnZVZpZXcoY29udGV4dCk7Ci0gICAgICAgIG1QcmV2aWV3SW1hZ2Uuc2V0TWluaW11bVdpZHRoKHByZXZpZXdTaXplKTsKLSAgICAgICAgbVByZXZpZXdJbWFnZS5zZXRNaW5pbXVtSGVpZ2h0KHByZXZpZXdTaXplKTsKLSAgICAgICAgbVByZXZpZXdJbWFnZS5zZXRBbHBoYSgwZik7Ci0gICAgICAgIG1PdmVybGF5LmFkZChtUHJldmlld0ltYWdlKTsKKyAgICAgICAgaWYgKG1UZXh0U2l6ZSA+IDApIHsKKyAgICAgICAgICAgIG1QcmltYXJ5VGV4dC5zZXRUZXh0U2l6ZShUeXBlZFZhbHVlLkNPTVBMRVhfVU5JVF9QWCwgbVRleHRTaXplKTsKKyAgICAgICAgICAgIG1TZWNvbmRhcnlUZXh0LnNldFRleHRTaXplKFR5cGVkVmFsdWUuQ09NUExFWF9VTklUX1BYLCBtVGV4dFNpemUpOworICAgICAgICB9CiAKLSAgICAgICAgbVByZXZpZXdQYWRkaW5nID0gcmVzLmdldERpbWVuc2lvblBpeGVsU2l6ZShSLmRpbWVuLmZhc3RzY3JvbGxfb3ZlcmxheV9wYWRkaW5nKTsKLQotICAgICAgICBmaW5hbCBpbnQgdGV4dE1pblNpemUgPSBNYXRoLm1heCgwLCBwcmV2aWV3U2l6ZSAtIG1QcmV2aWV3UGFkZGluZyk7Ci0gICAgICAgIG1QcmltYXJ5VGV4dCA9IGNyZWF0ZVByZXZpZXdUZXh0Vmlldyhjb250ZXh0LCB0YSk7CisgICAgICAgIGZpbmFsIGludCB0ZXh0TWluU2l6ZSA9IE1hdGgubWF4KDAsIG1QcmV2aWV3TWluSGVpZ2h0KTsKICAgICAgICAgbVByaW1hcnlUZXh0LnNldE1pbmltdW1XaWR0aCh0ZXh0TWluU2l6ZSk7CiAgICAgICAgIG1QcmltYXJ5VGV4dC5zZXRNaW5pbXVtSGVpZ2h0KHRleHRNaW5TaXplKTsKLSAgICAgICAgbU92ZXJsYXkuYWRkKG1QcmltYXJ5VGV4dCk7Ci0gICAgICAgIG1TZWNvbmRhcnlUZXh0ID0gY3JlYXRlUHJldmlld1RleHRWaWV3KGNvbnRleHQsIHRhKTsKICAgICAgICAgbVNlY29uZGFyeVRleHQuc2V0TWluaW11bVdpZHRoKHRleHRNaW5TaXplKTsKICAgICAgICAgbVNlY29uZGFyeVRleHQuc2V0TWluaW11bUhlaWdodCh0ZXh0TWluU2l6ZSk7Ci0gICAgICAgIG1PdmVybGF5LmFkZChtU2Vjb25kYXJ5VGV4dCk7CiAKLSAgICAgICAgbVByZXZpZXdSZXNJZFtQUkVWSUVXX0xFRlRdID0gdGEuZ2V0UmVzb3VyY2VJZChQUkVWSUVXX0JBQ0tHUk9VTkRfTEVGVCwgMCk7Ci0gICAgICAgIG1QcmV2aWV3UmVzSWRbUFJFVklFV19SSUdIVF0gPSB0YS5nZXRSZXNvdXJjZUlkKFBSRVZJRVdfQkFDS0dST1VORF9SSUdIVCwgMCk7Ci0gICAgICAgIG1PdmVybGF5UG9zaXRpb24gPSB0YS5nZXRJbnQoT1ZFUkxBWV9QT1NJVElPTiwgT1ZFUkxBWV9GTE9BVElORyk7Ci0gICAgICAgIHRhLnJlY3ljbGUoKTsKLQotICAgICAgICBtU2Nyb2xsQmFyU3R5bGUgPSBsaXN0Vmlldy5nZXRTY3JvbGxCYXJTdHlsZSgpOwotICAgICAgICBtU2Nyb2xsQ29tcGxldGVkID0gdHJ1ZTsKLSAgICAgICAgbVN0YXRlID0gU1RBVEVfVklTSUJMRTsKLSAgICAgICAgbU1hdGNoRHJhZ1Bvc2l0aW9uID0gY29udGV4dC5nZXRBcHBsaWNhdGlvbkluZm8oKS50YXJnZXRTZGtWZXJzaW9uCi0gICAgICAgICAgICAgICAgPj0gQnVpbGQuVkVSU0lPTl9DT0RFUy5IT05FWUNPTUI7Ci0KLSAgICAgICAgZ2V0U2VjdGlvbnNGcm9tSW5kZXhlcigpOwogICAgICAgICByZWZyZXNoRHJhd2FibGVQcmVzc2VkU3RhdGUoKTsKLSAgICAgICAgdXBkYXRlTG9uZ0xpc3QobGlzdFZpZXcuZ2V0Q2hpbGRDb3VudCgpLCBsaXN0Vmlldy5nZXRDb3VudCgpKTsKLSAgICAgICAgc2V0U2Nyb2xsYmFyUG9zaXRpb24obUxpc3QuZ2V0VmVydGljYWxTY3JvbGxiYXJQb3NpdGlvbigpKTsKLSAgICAgICAgcG9zdEF1dG9IaWRlKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0U3R5bGUoaW50IHJlc0lkKSB7CisgICAgICAgIGZpbmFsIENvbnRleHQgY29udGV4dCA9IG1MaXN0LmdldENvbnRleHQoKTsKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSB0YSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhudWxsLAorICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkZhc3RTY3JvbGwsIGFuZHJvaWQuUi5hdHRyLmZhc3RTY3JvbGxTdHlsZSwgcmVzSWQpOworICAgICAgICBmaW5hbCBpbnQgTiA9IHRhLmdldEluZGV4Q291bnQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKKyAgICAgICAgICAgIGZpbmFsIGludCBpbmRleCA9IHRhLmdldEluZGV4KGkpOworICAgICAgICAgICAgc3dpdGNoIChpbmRleCkgeworICAgICAgICAgICAgICAgIGNhc2UgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuRmFzdFNjcm9sbF9wb3NpdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgbU92ZXJsYXlQb3NpdGlvbiA9IHRhLmdldEludChpbmRleCwgT1ZFUkxBWV9GTE9BVElORyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuRmFzdFNjcm9sbF9iYWNrZ3JvdW5kTGVmdDoKKyAgICAgICAgICAgICAgICAgICAgbVByZXZpZXdSZXNJZFtQUkVWSUVXX0xFRlRdID0gdGEuZ2V0UmVzb3VyY2VJZChpbmRleCwgMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuRmFzdFNjcm9sbF9iYWNrZ3JvdW5kUmlnaHQ6CisgICAgICAgICAgICAgICAgICAgIG1QcmV2aWV3UmVzSWRbUFJFVklFV19SSUdIVF0gPSB0YS5nZXRSZXNvdXJjZUlkKGluZGV4LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5GYXN0U2Nyb2xsX3RodW1iRHJhd2FibGU6CisgICAgICAgICAgICAgICAgICAgIG1UaHVtYkRyYXdhYmxlID0gdGEuZ2V0RHJhd2FibGUoaW5kZXgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkZhc3RTY3JvbGxfdHJhY2tEcmF3YWJsZToKKyAgICAgICAgICAgICAgICAgICAgbVRyYWNrRHJhd2FibGUgPSB0YS5nZXREcmF3YWJsZShpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuRmFzdFNjcm9sbF90ZXh0QXBwZWFyYW5jZToKKyAgICAgICAgICAgICAgICAgICAgbVRleHRBcHBlYXJhbmNlID0gdGEuZ2V0UmVzb3VyY2VJZChpbmRleCwgMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuRmFzdFNjcm9sbF90ZXh0Q29sb3I6CisgICAgICAgICAgICAgICAgICAgIG1UZXh0Q29sb3IgPSB0YS5nZXRDb2xvclN0YXRlTGlzdChpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuRmFzdFNjcm9sbF90ZXh0U2l6ZToKKyAgICAgICAgICAgICAgICAgICAgbVRleHRTaXplID0gdGEuZ2V0RGltZW5zaW9uUGl4ZWxTaXplKGluZGV4LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5GYXN0U2Nyb2xsX21pbldpZHRoOgorICAgICAgICAgICAgICAgICAgICBtUHJldmlld01pbldpZHRoID0gdGEuZ2V0RGltZW5zaW9uUGl4ZWxTaXplKGluZGV4LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5GYXN0U2Nyb2xsX21pbkhlaWdodDoKKyAgICAgICAgICAgICAgICAgICAgbVByZXZpZXdNaW5IZWlnaHQgPSB0YS5nZXREaW1lbnNpb25QaXhlbFNpemUoaW5kZXgsIDApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkZhc3RTY3JvbGxfdGh1bWJNaW5XaWR0aDoKKyAgICAgICAgICAgICAgICAgICAgbVRodW1iTWluV2lkdGggPSB0YS5nZXREaW1lbnNpb25QaXhlbFNpemUoaW5kZXgsIDApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkZhc3RTY3JvbGxfdGh1bWJNaW5IZWlnaHQ6CisgICAgICAgICAgICAgICAgICAgIG1UaHVtYk1pbkhlaWdodCA9IHRhLmdldERpbWVuc2lvblBpeGVsU2l6ZShpbmRleCwgMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuRmFzdFNjcm9sbF9wYWRkaW5nOgorICAgICAgICAgICAgICAgICAgICBtUHJldmlld1BhZGRpbmcgPSB0YS5nZXREaW1lbnNpb25QaXhlbFNpemUoaW5kZXgsIDApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHVwZGF0ZUFwcGVhcmFuY2UoKTsKICAgICB9CiAKICAgICAvKioKQEAgLTQ2OSwxNyArNTE2LDExIEBACiAgICAgLyoqCiAgICAgICogQ3JlYXRlcyBhIHZpZXcgaW50byB3aGljaCBwcmV2aWV3IHRleHQgY2FuIGJlIHBsYWNlZC4KICAgICAgKi8KLSAgICBwcml2YXRlIFRleHRWaWV3IGNyZWF0ZVByZXZpZXdUZXh0VmlldyhDb250ZXh0IGNvbnRleHQsIFR5cGVkQXJyYXkgdGEpIHsKKyAgICBwcml2YXRlIFRleHRWaWV3IGNyZWF0ZVByZXZpZXdUZXh0VmlldyhDb250ZXh0IGNvbnRleHQpIHsKICAgICAgICAgZmluYWwgTGF5b3V0UGFyYW1zIHBhcmFtcyA9IG5ldyBMYXlvdXRQYXJhbXMoCiAgICAgICAgICAgICAgICAgTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVCwgTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVCk7Ci0gICAgICAgIGZpbmFsIFJlc291cmNlcyByZXMgPSBjb250ZXh0LmdldFJlc291cmNlcygpOwotICAgICAgICBmaW5hbCBpbnQgbWluU2l6ZSA9IHJlcy5nZXREaW1lbnNpb25QaXhlbFNpemUoUi5kaW1lbi5mYXN0c2Nyb2xsX292ZXJsYXlfc2l6ZSk7Ci0gICAgICAgIGZpbmFsIENvbG9yU3RhdGVMaXN0IHRleHRDb2xvciA9IHRhLmdldENvbG9yU3RhdGVMaXN0KFRFWFRfQ09MT1IpOwotICAgICAgICBmaW5hbCBmbG9hdCB0ZXh0U2l6ZSA9IHJlcy5nZXREaW1lbnNpb25QaXhlbFNpemUoUi5kaW1lbi5mYXN0c2Nyb2xsX292ZXJsYXlfdGV4dF9zaXplKTsKICAgICAgICAgZmluYWwgVGV4dFZpZXcgdGV4dFZpZXcgPSBuZXcgVGV4dFZpZXcoY29udGV4dCk7CiAgICAgICAgIHRleHRWaWV3LnNldExheW91dFBhcmFtcyhwYXJhbXMpOwotICAgICAgICB0ZXh0Vmlldy5zZXRUZXh0Q29sb3IodGV4dENvbG9yKTsKLSAgICAgICAgdGV4dFZpZXcuc2V0VGV4dFNpemUoVHlwZWRWYWx1ZS5DT01QTEVYX1VOSVRfUFgsIHRleHRTaXplKTsKICAgICAgICAgdGV4dFZpZXcuc2V0U2luZ2xlTGluZSh0cnVlKTsKICAgICAgICAgdGV4dFZpZXcuc2V0RWxsaXBzaXplKFRydW5jYXRlQXQuTUlERExFKTsKICAgICAgICAgdGV4dFZpZXcuc2V0R3Jhdml0eShHcmF2aXR5LkNFTlRFUik7CkBAIC02MDMsNyArNjQ0LDcgQEAKICAgICAgICAgdmlldy5tZWFzdXJlKHdpZHRoTWVhc3VyZVNwZWMsIGhlaWdodE1lYXN1cmVTcGVjKTsKIAogICAgICAgICAvLyBBbGlnbiB0byB0aGUgbGVmdCBvciByaWdodC4KLSAgICAgICAgZmluYWwgaW50IHdpZHRoID0gdmlldy5nZXRNZWFzdXJlZFdpZHRoKCk7CisgICAgICAgIGZpbmFsIGludCB3aWR0aCA9IE1hdGgubWluKGFkak1heFdpZHRoLCB2aWV3LmdldE1lYXN1cmVkV2lkdGgoKSk7CiAgICAgICAgIGZpbmFsIGludCBsZWZ0OwogICAgICAgICBmaW5hbCBpbnQgcmlnaHQ7CiAgICAgICAgIGlmIChtTGF5b3V0RnJvbVJpZ2h0KSB7CkBAIC0xMDIwLDcgKzEwNjEsNyBAQAogICAgICAgICB9CiAKICAgICAgICAgZmluYWwgUmVjdCBib3VuZHMgPSBtVGVtcEJvdW5kczsKLSAgICAgICAgZmluYWwgSW1hZ2VWaWV3IHByZXZpZXcgPSBtUHJldmlld0ltYWdlOworICAgICAgICBmaW5hbCBWaWV3IHByZXZpZXcgPSBtUHJldmlld0ltYWdlOwogICAgICAgICBmaW5hbCBUZXh0VmlldyBzaG93aW5nOwogICAgICAgICBmaW5hbCBUZXh0VmlldyB0YXJnZXQ7CiAgICAgICAgIGlmIChtU2hvd2luZ1ByaW1hcnkpIHsKQEAgLTEwNDYsMTAgKzEwODcsMTAgQEAKICAgICAgICAgaGlkZVNob3dpbmcuYWRkTGlzdGVuZXIobVN3aXRjaFByaW1hcnlMaXN0ZW5lcik7CiAKICAgICAgICAgLy8gQXBwbHkgcHJldmlldyBpbWFnZSBwYWRkaW5nIGFuZCBhbmltYXRlIGJvdW5kcywgaWYgbmVjZXNzYXJ5LgotICAgICAgICBib3VuZHMubGVmdCAtPSBtUHJldmlld0ltYWdlLmdldFBhZGRpbmdMZWZ0KCk7Ci0gICAgICAgIGJvdW5kcy50b3AgLT0gbVByZXZpZXdJbWFnZS5nZXRQYWRkaW5nVG9wKCk7Ci0gICAgICAgIGJvdW5kcy5yaWdodCArPSBtUHJldmlld0ltYWdlLmdldFBhZGRpbmdSaWdodCgpOwotICAgICAgICBib3VuZHMuYm90dG9tICs9IG1QcmV2aWV3SW1hZ2UuZ2V0UGFkZGluZ0JvdHRvbSgpOworICAgICAgICBib3VuZHMubGVmdCAtPSBwcmV2aWV3LmdldFBhZGRpbmdMZWZ0KCk7CisgICAgICAgIGJvdW5kcy50b3AgLT0gcHJldmlldy5nZXRQYWRkaW5nVG9wKCk7CisgICAgICAgIGJvdW5kcy5yaWdodCArPSBwcmV2aWV3LmdldFBhZGRpbmdSaWdodCgpOworICAgICAgICBib3VuZHMuYm90dG9tICs9IHByZXZpZXcuZ2V0UGFkZGluZ0JvdHRvbSgpOwogICAgICAgICBmaW5hbCBBbmltYXRvciByZXNpemVQcmV2aWV3ID0gYW5pbWF0ZUJvdW5kcyhwcmV2aWV3LCBib3VuZHMpOwogICAgICAgICByZXNpemVQcmV2aWV3LnNldER1cmF0aW9uKERVUkFUSU9OX1JFU0laRSk7CiAKQEAgLTEwOTcsOCArMTEzOCw4IEBACiAgICAgICAgIGZpbmFsIGludCB0b3AgPSBjb250YWluZXIudG9wOwogICAgICAgICBmaW5hbCBpbnQgYm90dG9tID0gY29udGFpbmVyLmJvdHRvbTsKIAotICAgICAgICBmaW5hbCBJbWFnZVZpZXcgdHJhY2tJbWFnZSA9IG1UcmFja0ltYWdlOwotICAgICAgICBmaW5hbCBJbWFnZVZpZXcgdGh1bWJJbWFnZSA9IG1UaHVtYkltYWdlOworICAgICAgICBmaW5hbCBWaWV3IHRyYWNrSW1hZ2UgPSBtVHJhY2tJbWFnZTsKKyAgICAgICAgZmluYWwgVmlldyB0aHVtYkltYWdlID0gbVRodW1iSW1hZ2U7CiAgICAgICAgIGZpbmFsIGZsb2F0IG1pbiA9IHRyYWNrSW1hZ2UuZ2V0VG9wKCk7CiAgICAgICAgIGZpbmFsIGZsb2F0IG1heCA9IHRyYWNrSW1hZ2UuZ2V0Qm90dG9tKCk7CiAgICAgICAgIGZpbmFsIGZsb2F0IG9mZnNldCA9IG1pbjsKQEAgLTExMDksNyArMTE1MCw3IEBACiAgICAgICAgIGZpbmFsIGZsb2F0IHByZXZpZXdQb3MgPSBtT3ZlcmxheVBvc2l0aW9uID09IE9WRVJMQVlfQVRfVEhVTUIgPyB0aHVtYk1pZGRsZSA6IDA7CiAKICAgICAgICAgLy8gQ2VudGVyIHRoZSBwcmV2aWV3IG9uIHRoZSB0aHVtYiwgY29uc3RyYWluZWQgdG8gdGhlIGxpc3QgYm91bmRzLgotICAgICAgICBmaW5hbCBJbWFnZVZpZXcgcHJldmlld0ltYWdlID0gbVByZXZpZXdJbWFnZTsKKyAgICAgICAgZmluYWwgVmlldyBwcmV2aWV3SW1hZ2UgPSBtUHJldmlld0ltYWdlOwogICAgICAgICBmaW5hbCBmbG9hdCBwcmV2aWV3SGFsZkhlaWdodCA9IHByZXZpZXdJbWFnZS5nZXRIZWlnaHQoKSAvIDJmOwogICAgICAgICBmaW5hbCBmbG9hdCBtaW5QID0gdG9wICsgcHJldmlld0hhbGZIZWlnaHQ7CiAgICAgICAgIGZpbmFsIGZsb2F0IG1heFAgPSBib3R0b20gLSBwcmV2aWV3SGFsZkhlaWdodDsKQEAgLTExMjIsMTEgKzExNjMsNyBAQAogICAgIH0KIAogICAgIHByaXZhdGUgZmxvYXQgZ2V0UG9zRnJvbU1vdGlvbkV2ZW50KGZsb2F0IHkpIHsKLSAgICAgICAgZmluYWwgUmVjdCBjb250YWluZXIgPSBtQ29udGFpbmVyUmVjdDsKLSAgICAgICAgZmluYWwgaW50IHRvcCA9IGNvbnRhaW5lci50b3A7Ci0gICAgICAgIGZpbmFsIGludCBib3R0b20gPSBjb250YWluZXIuYm90dG9tOwotCi0gICAgICAgIGZpbmFsIEltYWdlVmlldyB0cmFja0ltYWdlID0gbVRyYWNrSW1hZ2U7CisgICAgICAgIGZpbmFsIFZpZXcgdHJhY2tJbWFnZSA9IG1UcmFja0ltYWdlOwogICAgICAgICBmaW5hbCBmbG9hdCBtaW4gPSB0cmFja0ltYWdlLmdldFRvcCgpOwogICAgICAgICBmaW5hbCBmbG9hdCBtYXggPSB0cmFja0ltYWdlLmdldEJvdHRvbSgpOwogICAgICAgICBmaW5hbCBmbG9hdCBvZmZzZXQgPSBtaW47CkBAIC0xMzkzLDcgKzE0MzAsNyBAQAogICAgICAqIEByZXR1cm4gV2hldGhlciB0aGUgY29vcmRpbmF0ZSBpcyBpbnNpZGUgdGhlIHNjcm9sbGVyJ3MgYWN0aXZhdGlvbiBhcmVhLgogICAgICAqLwogICAgIHByaXZhdGUgYm9vbGVhbiBpc1BvaW50SW5zaWRlKGZsb2F0IHgsIGZsb2F0IHkpIHsKLSAgICAgICAgcmV0dXJuIGlzUG9pbnRJbnNpZGVYKHgpICYmIChtSGFzVHJhY2tJbWFnZSB8fCBpc1BvaW50SW5zaWRlWSh5KSk7CisgICAgICAgIHJldHVybiBpc1BvaW50SW5zaWRlWCh4KSAmJiAobVRyYWNrRHJhd2FibGUgIT0gbnVsbCB8fCBpc1BvaW50SW5zaWRlWSh5KSk7CiAgICAgfQogCiAgICAgcHJpdmF0ZSBib29sZWFuIGlzUG9pbnRJbnNpZGVYKGZsb2F0IHgpIHsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9GcmFtZUxheW91dC5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0ZyYW1lTGF5b3V0LmphdmEKaW5kZXggZDlkNGFkNy4uYjAyOTMyOCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0ZyYW1lTGF5b3V0LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0ZyYW1lTGF5b3V0LmphdmEKQEAgLTk3LDExICs5NywxNSBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCAwKTsKICAgICB9CiAKLSAgICBwdWJsaWMgRnJhbWVMYXlvdXQoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgIHB1YmxpYyBGcmFtZUxheW91dChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KIAotICAgICAgICBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkZyYW1lTGF5b3V0LAotICAgICAgICAgICAgICAgICAgICBkZWZTdHlsZSwgMCk7CisgICAgcHVibGljIEZyYW1lTGF5b3V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworCisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuRnJhbWVMYXlvdXQsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIG1Gb3JlZ3JvdW5kR3Jhdml0eSA9IGEuZ2V0SW50KAogICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkZyYW1lTGF5b3V0X2ZvcmVncm91bmRHcmF2aXR5LCBtRm9yZWdyb3VuZEdyYXZpdHkpOwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0dhbGxlcnkuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9HYWxsZXJ5LmphdmEKaW5kZXggNzhiYTZlMC4uZjdjODM5ZiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0dhbGxlcnkuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvR2FsbGVyeS5qYXZhCkBAIC0xOTYsMTQgKzE5NiwxOCBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBSLmF0dHIuZ2FsbGVyeVN0eWxlKTsKICAgICB9CiAKLSAgICBwdWJsaWMgR2FsbGVyeShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIEdhbGxlcnkoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgR2FsbGVyeShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgCiAgICAgICAgIG1HZXN0dXJlRGV0ZWN0b3IgPSBuZXcgR2VzdHVyZURldGVjdG9yKGNvbnRleHQsIHRoaXMpOwogICAgICAgICBtR2VzdHVyZURldGVjdG9yLnNldElzTG9uZ3ByZXNzRW5hYmxlZCh0cnVlKTsKLSAgICAgICAgCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKLSAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuR2FsbGVyeSwgZGVmU3R5bGUsIDApOworCisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuR2FsbGVyeSwgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgaW50IGluZGV4ID0gYS5nZXRJbnQoY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuR2FsbGVyeV9ncmF2aXR5LCAtMSk7CiAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvR3JpZExheW91dC5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0dyaWRMYXlvdXQuamF2YQppbmRleCA1NGNjM2Y0Li44NTExNjAxIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvR3JpZExheW91dC5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9HcmlkTGF5b3V0LmphdmEKQEAgLTE2LDYgKzE2LDcgQEAKIAogcGFja2FnZSBhbmRyb2lkLndpZGdldDsKIAoraW1wb3J0IGFuZHJvaWQuYW5ub3RhdGlvbi5JbnREZWY7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5UeXBlZEFycmF5OwogaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQ2FudmFzOwpAQCAtMzUsNiArMzYsOCBAQAogaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlJlbW90ZVZpZXdzLlJlbW90ZVZpZXc7CiBpbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwuUjsKIAoraW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb25Qb2xpY3k7CiBpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuQXJyYXk7CiBpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKIGltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOwpAQCAtMTY1LDYgKzE2OCwxMSBAQAogCiAgICAgLy8gUHVibGljIGNvbnN0YW50cwogCisgICAgLyoqIEBoaWRlICovCisgICAgQEludERlZih7SE9SSVpPTlRBTCwgVkVSVElDQUx9KQorICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlNPVVJDRSkKKyAgICBwdWJsaWMgQGludGVyZmFjZSBPcmllbnRhdGlvbiB7fQorCiAgICAgLyoqCiAgICAgICogVGhlIGhvcml6b250YWwgb3JpZW50YXRpb24uCiAgICAgICovCkBAIC0xODYsNiArMTk0LDExIEBACiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5ERUZJTkVEID0gSW50ZWdlci5NSU5fVkFMVUU7CiAKKyAgICAvKiogQGhpZGUgKi8KKyAgICBASW50RGVmKHtBTElHTl9CT1VORFMsIEFMSUdOX01BUkdJTlN9KQorICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlNPVVJDRSkKKyAgICBwdWJsaWMgQGludGVyZmFjZSBBbGlnbm1lbnRNb2RlIHt9CisKICAgICAvKioKICAgICAgKiBUaGlzIGNvbnN0YW50IGlzIGFuIHtAbGluayAjc2V0QWxpZ25tZW50TW9kZShpbnQpIGFsaWdubWVudE1vZGV9LgogICAgICAqIFdoZW4gdGhlIHtAY29kZSBhbGlnbm1lbnRNb2RlfSBpcyBzZXQgdG8ge0BsaW5rICNBTElHTl9CT1VORFN9LCBhbGlnbm1lbnQKQEAgLTI2MiwxMyArMjc1LDIzIEBACiAKICAgICAvLyBDb25zdHJ1Y3RvcnMKIAotICAgIC8qKgotICAgICAqIHtAaW5oZXJpdERvY30KLSAgICAgKi8KLSAgICBwdWJsaWMgR3JpZExheW91dChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIEdyaWRMYXlvdXQoQ29udGV4dCBjb250ZXh0KSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgbnVsbCk7CisgICAgfQorCisgICAgcHVibGljIEdyaWRMYXlvdXQoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgMCk7CisgICAgfQorCisgICAgcHVibGljIEdyaWRMYXlvdXQoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgR3JpZExheW91dChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgbURlZmF1bHRHYXAgPSBjb250ZXh0LmdldFJlc291cmNlcygpLmdldERpbWVuc2lvblBpeGVsT2Zmc2V0KFIuZGltZW4uZGVmYXVsdF9nYXApOwotICAgICAgICBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsIFIuc3R5bGVhYmxlLkdyaWRMYXlvdXQpOworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIFIuc3R5bGVhYmxlLkdyaWRMYXlvdXQsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgICAgICB0cnkgewogICAgICAgICAgICAgc2V0Um93Q291bnQoYS5nZXRJbnQoUk9XX0NPVU5ULCBERUZBVUxUX0NPVU5UKSk7CiAgICAgICAgICAgICBzZXRDb2x1bW5Db3VudChhLmdldEludChDT0xVTU5fQ09VTlQsIERFRkFVTFRfQ09VTlQpKTsKQEAgLTI4MiwyMSArMzA1LDYgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIC8qKgotICAgICAqIHtAaW5oZXJpdERvY30KLSAgICAgKi8KLSAgICBwdWJsaWMgR3JpZExheW91dChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgewotICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCAwKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiB7QGluaGVyaXREb2N9Ci0gICAgICovCi0gICAgcHVibGljIEdyaWRMYXlvdXQoQ29udGV4dCBjb250ZXh0KSB7Ci0gICAgICAgIC8vbm9pbnNwZWN0aW9uIE51bGxhYmxlUHJvYmxlbXMKLSAgICAgICAgdGhpcyhjb250ZXh0LCBudWxsKTsKLSAgICB9Ci0KICAgICAvLyBJbXBsZW1lbnRhdGlvbgogCiAgICAgLyoqCkBAIC0zMDgsNiArMzE2LDcgQEAKICAgICAgKgogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI0dyaWRMYXlvdXRfb3JpZW50YXRpb24KICAgICAgKi8KKyAgICBAT3JpZW50YXRpb24KICAgICBwdWJsaWMgaW50IGdldE9yaWVudGF0aW9uKCkgewogICAgICAgICByZXR1cm4gbU9yaWVudGF0aW9uOwogICAgIH0KQEAgLTM0OCw3ICszNTcsNyBAQAogICAgICAqCiAgICAgICogQGF0dHIgcmVmIGFuZHJvaWQuUi5zdHlsZWFibGUjR3JpZExheW91dF9vcmllbnRhdGlvbgogICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHNldE9yaWVudGF0aW9uKGludCBvcmllbnRhdGlvbikgeworICAgIHB1YmxpYyB2b2lkIHNldE9yaWVudGF0aW9uKEBPcmllbnRhdGlvbiBpbnQgb3JpZW50YXRpb24pIHsKICAgICAgICAgaWYgKHRoaXMubU9yaWVudGF0aW9uICE9IG9yaWVudGF0aW9uKSB7CiAgICAgICAgICAgICB0aGlzLm1PcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOwogICAgICAgICAgICAgaW52YWxpZGF0ZVN0cnVjdHVyZSgpOwpAQCAtNDc5LDYgKzQ4OCw3IEBACiAgICAgICoKICAgICAgKiBAYXR0ciByZWYgYW5kcm9pZC5SLnN0eWxlYWJsZSNHcmlkTGF5b3V0X2FsaWdubWVudE1vZGUKICAgICAgKi8KKyAgICBAQWxpZ25tZW50TW9kZQogICAgIHB1YmxpYyBpbnQgZ2V0QWxpZ25tZW50TW9kZSgpIHsKICAgICAgICAgcmV0dXJuIG1BbGlnbm1lbnRNb2RlOwogICAgIH0KQEAgLTQ5OCw3ICs1MDgsNyBAQAogICAgICAqCiAgICAgICogQGF0dHIgcmVmIGFuZHJvaWQuUi5zdHlsZWFibGUjR3JpZExheW91dF9hbGlnbm1lbnRNb2RlCiAgICAgICovCi0gICAgcHVibGljIHZvaWQgc2V0QWxpZ25tZW50TW9kZShpbnQgYWxpZ25tZW50TW9kZSkgeworICAgIHB1YmxpYyB2b2lkIHNldEFsaWdubWVudE1vZGUoQEFsaWdubWVudE1vZGUgaW50IGFsaWdubWVudE1vZGUpIHsKICAgICAgICAgdGhpcy5tQWxpZ25tZW50TW9kZSA9IGFsaWdubWVudE1vZGU7CiAgICAgICAgIHJlcXVlc3RMYXlvdXQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvR3JpZFZpZXcuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9HcmlkVmlldy5qYXZhCmluZGV4IDE1ZGFmODMuLjRmNzQxMDggMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9HcmlkVmlldy5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9HcmlkVmlldy5qYXZhCkBAIC0xNiwxMiArMTYsMTQgQEAKIAogcGFja2FnZSBhbmRyb2lkLndpZGdldDsKIAoraW1wb3J0IGFuZHJvaWQuYW5ub3RhdGlvbi5JbnREZWY7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkludGVudDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLlR5cGVkQXJyYXk7CiBpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5SZWN0OwogaW1wb3J0IGFuZHJvaWQub3MuVHJhY2U7CiBpbXBvcnQgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldDsKK2ltcG9ydCBhbmRyb2lkLnV0aWwuTWF0aFV0aWxzOwogaW1wb3J0IGFuZHJvaWQudmlldy5HcmF2aXR5OwogaW1wb3J0IGFuZHJvaWQudmlldy5LZXlFdmVudDsKIGltcG9ydCBhbmRyb2lkLnZpZXcuU291bmRFZmZlY3RDb25zdGFudHM7CkBAIC0zNiw2ICszOCw5IEBACiBpbXBvcnQgYW5kcm9pZC53aWRnZXQuQWJzTGlzdFZpZXcuTGF5b3V0UGFyYW1zOwogaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlJlbW90ZVZpZXdzLlJlbW90ZVZpZXc7CiAKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb247CitpbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uUG9saWN5OworCiAKIC8qKgogICogQSB2aWV3IHRoYXQgc2hvd3MgaXRlbXMgaW4gdHdvLWRpbWVuc2lvbmFsIHNjcm9sbGluZyBncmlkLiBUaGUgaXRlbXMgaW4gdGhlCkBAIC01Myw2ICs1OCwxMSBAQAogICovCiBAUmVtb3RlVmlldwogcHVibGljIGNsYXNzIEdyaWRWaWV3IGV4dGVuZHMgQWJzTGlzdFZpZXcgeworICAgIC8qKiBAaGlkZSAqLworICAgIEBJbnREZWYoe05PX1NUUkVUQ0gsIFNUUkVUQ0hfU1BBQ0lORywgU1RSRVRDSF9DT0xVTU5fV0lEVEgsIFNUUkVUQ0hfU1BBQ0lOR19VTklGT1JNfSkKKyAgICBAUmV0ZW50aW9uKFJldGVudGlvblBvbGljeS5TT1VSQ0UpCisgICAgcHVibGljIEBpbnRlcmZhY2UgU3RyZXRjaE1vZGUge30KKwogICAgIC8qKgogICAgICAqIERpc2FibGVzIHN0cmV0Y2hpbmcuCiAgICAgICogCkBAIC0xMTAsMTEgKzEyMCwxNSBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIuZ3JpZFZpZXdTdHlsZSk7CiAgICAgfQogCi0gICAgcHVibGljIEdyaWRWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgR3JpZFZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CiAKLSAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAotICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkdyaWRWaWV3LCBkZWZTdHlsZSwgMCk7CisgICAgcHVibGljIEdyaWRWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworCisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuR3JpZFZpZXcsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIGludCBoU3BhY2luZyA9IGEuZ2V0RGltZW5zaW9uUGl4ZWxPZmZzZXQoCiAgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuR3JpZFZpZXdfaG9yaXpvbnRhbFNwYWNpbmcsIDApOwpAQCAtMTIwMiw2ICsxMjE2LDI0IEBACiAKICAgICAgICAgICAgIHNldFNlbGVjdGVkUG9zaXRpb25JbnQobU5leHRTZWxlY3RlZFBvc2l0aW9uKTsKIAorICAgICAgICAgICAgLy8gUmVtZW1iZXIgd2hpY2ggY2hpbGQsIGlmIGFueSwgaGFkIGFjY2Vzc2liaWxpdHkgZm9jdXMuCisgICAgICAgICAgICBmaW5hbCBpbnQgYWNjZXNzaWJpbGl0eUZvY3VzUG9zaXRpb247CisgICAgICAgICAgICBmaW5hbCBWaWV3IGFjY2Vzc0ZvY3VzZWRDaGlsZCA9IGdldEFjY2Vzc2liaWxpdHlGb2N1c2VkQ2hpbGQoKTsKKyAgICAgICAgICAgIGlmIChhY2Nlc3NGb2N1c2VkQ2hpbGQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlGb2N1c1Bvc2l0aW9uID0gZ2V0UG9zaXRpb25Gb3JWaWV3KGFjY2Vzc0ZvY3VzZWRDaGlsZCk7CisgICAgICAgICAgICAgICAgYWNjZXNzRm9jdXNlZENoaWxkLnNldEhhc1RyYW5zaWVudFN0YXRlKHRydWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhY2Nlc3NpYmlsaXR5Rm9jdXNQb3NpdGlvbiA9IElOVkFMSURfUE9TSVRJT047CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEVuc3VyZSB0aGUgY2hpbGQgY29udGFpbmluZyBmb2N1cywgaWYgYW55LCBoYXMgdHJhbnNpZW50IHN0YXRlLgorICAgICAgICAgICAgLy8gSWYgdGhlIGxpc3QgZGF0YSBoYXNuJ3QgY2hhbmdlZCwgb3IgaWYgdGhlIGFkYXB0ZXIgaGFzIHN0YWJsZQorICAgICAgICAgICAgLy8gSURzLCB0aGlzIHdpbGwgbWFpbnRhaW4gZm9jdXMuCisgICAgICAgICAgICBmaW5hbCBWaWV3IGZvY3VzZWRDaGlsZCA9IGdldEZvY3VzZWRDaGlsZCgpOworICAgICAgICAgICAgaWYgKGZvY3VzZWRDaGlsZCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZm9jdXNlZENoaWxkLnNldEhhc1RyYW5zaWVudFN0YXRlKHRydWUpOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAvLyBQdWxsIGFsbCBjaGlsZHJlbiBpbnRvIHRoZSBSZWN5Y2xlQmluLgogICAgICAgICAgICAgLy8gVGhlc2Ugdmlld3Mgd2lsbCBiZSByZXVzZWQgaWYgcG9zc2libGUKICAgICAgICAgICAgIGZpbmFsIGludCBmaXJzdFBvc2l0aW9uID0gbUZpcnN0UG9zaXRpb247CkBAIC0xMjE2LDcgKzEyNDgsNiBAQAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBDbGVhciBvdXQgb2xkIHZpZXdzCi0gICAgICAgICAgICAvL3JlbW92ZUFsbFZpZXdzSW5MYXlvdXQoKTsKICAgICAgICAgICAgIGRldGFjaEFsbFZpZXdzRnJvbVBhcmVudCgpOwogICAgICAgICAgICAgcmVjeWNsZUJpbi5yZW1vdmVTa2lwcGVkU2NyYXAoKTsKIApAQCAtMTI4Nyw2ICsxMzE4LDI3IEBACiAgICAgICAgICAgICAgICAgbVNlbGVjdG9yUmVjdC5zZXRFbXB0eSgpOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBpZiAoYWNjZXNzRm9jdXNlZENoaWxkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhY2Nlc3NGb2N1c2VkQ2hpbGQuc2V0SGFzVHJhbnNpZW50U3RhdGUoZmFsc2UpOworCisgICAgICAgICAgICAgICAgLy8gSWYgd2UgZmFpbGVkIHRvIG1haW50YWluIGFjY2Vzc2liaWxpdHkgZm9jdXMgb24gdGhlIHByZXZpb3VzCisgICAgICAgICAgICAgICAgLy8gdmlldywgYXR0ZW1wdCB0byByZXN0b3JlIGl0IHRvIHRoZSBwcmV2aW91cyBwb3NpdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAoIWFjY2Vzc0ZvY3VzZWRDaGlsZC5pc0FjY2Vzc2liaWxpdHlGb2N1c2VkKCkKKyAgICAgICAgICAgICAgICAgICAgJiYgYWNjZXNzaWJpbGl0eUZvY3VzUG9zaXRpb24gIT0gSU5WQUxJRF9QT1NJVElPTikgeworICAgICAgICAgICAgICAgICAgICAvLyBCb3VuZCB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSB2aXNpYmxlIGNoaWxkcmVuLgorICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgcG9zaXRpb24gPSBNYXRoVXRpbHMuY29uc3RyYWluKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlGb2N1c1Bvc2l0aW9uIC0gbUZpcnN0UG9zaXRpb24sIDAsIGdldENoaWxkQ291bnQoKSAtIDEpOworICAgICAgICAgICAgICAgICAgICBmaW5hbCBWaWV3IHJlc3RvcmVWaWV3ID0gZ2V0Q2hpbGRBdChwb3NpdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN0b3JlVmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN0b3JlVmlldy5yZXF1ZXN0QWNjZXNzaWJpbGl0eUZvY3VzKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChmb2N1c2VkQ2hpbGQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZvY3VzZWRDaGlsZC5zZXRIYXNUcmFuc2llbnRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIG1MYXlvdXRNb2RlID0gTEFZT1VUX05PUk1BTDsKICAgICAgICAgICAgIG1EYXRhQ2hhbmdlZCA9IGZhbHNlOwogICAgICAgICAgICAgaWYgKG1Qb3NpdGlvblNjcm9sbEFmdGVyTGF5b3V0ICE9IG51bGwpIHsKQEAgLTIwNTYsMTMgKzIxMDgsMTQgQEAKICAgICAgKgogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI0dyaWRWaWV3X3N0cmV0Y2hNb2RlCiAgICAgICovCi0gICAgcHVibGljIHZvaWQgc2V0U3RyZXRjaE1vZGUoaW50IHN0cmV0Y2hNb2RlKSB7CisgICAgcHVibGljIHZvaWQgc2V0U3RyZXRjaE1vZGUoQFN0cmV0Y2hNb2RlIGludCBzdHJldGNoTW9kZSkgewogICAgICAgICBpZiAoc3RyZXRjaE1vZGUgIT0gbVN0cmV0Y2hNb2RlKSB7CiAgICAgICAgICAgICBtU3RyZXRjaE1vZGUgPSBzdHJldGNoTW9kZTsKICAgICAgICAgICAgIHJlcXVlc3RMYXlvdXRJZk5lY2Vzc2FyeSgpOwogICAgICAgICB9CiAgICAgfQogCisgICAgQFN0cmV0Y2hNb2RlCiAgICAgcHVibGljIGludCBnZXRTdHJldGNoTW9kZSgpIHsKICAgICAgICAgcmV0dXJuIG1TdHJldGNoTW9kZTsKICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvSG9yaXpvbnRhbFNjcm9sbFZpZXcuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9Ib3Jpem9udGFsU2Nyb2xsVmlldy5qYXZhCmluZGV4IGRhYjA5NjIuLjI1ZDRmNDIgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9Ib3Jpem9udGFsU2Nyb2xsVmlldy5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9Ib3Jpem9udGFsU2Nyb2xsVmlldy5qYXZhCkBAIC0xNDYsMTIgKzE0NiwxNyBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIuaG9yaXpvbnRhbFNjcm9sbFZpZXdTdHlsZSk7CiAgICAgfQogCi0gICAgcHVibGljIEhvcml6b250YWxTY3JvbGxWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgSG9yaXpvbnRhbFNjcm9sbFZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgSG9yaXpvbnRhbFNjcm9sbFZpZXcoCisgICAgICAgICAgICBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgaW5pdFNjcm9sbFZpZXcoKTsKIAotICAgICAgICBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCi0gICAgICAgICAgICAgICAgYW5kcm9pZC5SLnN0eWxlYWJsZS5Ib3Jpem9udGFsU2Nyb2xsVmlldywgZGVmU3R5bGUsIDApOworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIGFuZHJvaWQuUi5zdHlsZWFibGUuSG9yaXpvbnRhbFNjcm9sbFZpZXcsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIHNldEZpbGxWaWV3cG9ydChhLmdldEJvb2xlYW4oYW5kcm9pZC5SLnN0eWxlYWJsZS5Ib3Jpem9udGFsU2Nyb2xsVmlld19maWxsVmlld3BvcnQsIGZhbHNlKSk7CiAKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9JbWFnZUJ1dHRvbi5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0ltYWdlQnV0dG9uLmphdmEKaW5kZXggMzc5MzU0Y2EuLjIwN2Y1MDUgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9JbWFnZUJ1dHRvbi5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9JbWFnZUJ1dHRvbi5qYXZhCkBAIC04Myw4ICs4MywxMiBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIuaW1hZ2VCdXR0b25TdHlsZSk7CiAgICAgfQogCi0gICAgcHVibGljIEltYWdlQnV0dG9uKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgSW1hZ2VCdXR0b24oQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgSW1hZ2VCdXR0b24oQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIHNldEZvY3VzYWJsZSh0cnVlKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9JbWFnZVZpZXcuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9JbWFnZVZpZXcuamF2YQppbmRleCA5ZTM1YTIzNi4uY2ZkN2U0YSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0ltYWdlVmlldy5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9JbWFnZVZpZXcuamF2YQpAQCAtMTE5LDEyICsxMTksMTcgQEAKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgMCk7CiAgICAgfQogCi0gICAgcHVibGljIEltYWdlVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIEltYWdlVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBJbWFnZVZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKICAgICAgICAgaW5pdEltYWdlVmlldygpOwogCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5JbWFnZVZpZXcsIGRlZlN0eWxlLCAwKTsKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5JbWFnZVZpZXcsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIERyYXdhYmxlIGQgPSBhLmdldERyYXdhYmxlKGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkltYWdlVmlld19zcmMpOwogICAgICAgICBpZiAoZCAhPSBudWxsKSB7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvTGVnYWN5VGltZVBpY2tlckRlbGVnYXRlLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvTGVnYWN5VGltZVBpY2tlckRlbGVnYXRlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYzNGQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9MZWdhY3lUaW1lUGlja2VyRGVsZWdhdGUuamF2YQpAQCAtMCwwICsxLDYzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC53aWRnZXQ7CisKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLkNvbmZpZ3VyYXRpb247CitpbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5UeXBlZEFycmF5OworaW1wb3J0IGFuZHJvaWQub3MuUGFyY2VsOworaW1wb3J0IGFuZHJvaWQub3MuUGFyY2VsYWJsZTsKK2ltcG9ydCBhbmRyb2lkLnRleHQuZm9ybWF0LkRhdGVGb3JtYXQ7CitpbXBvcnQgYW5kcm9pZC50ZXh0LmZvcm1hdC5EYXRlVXRpbHM7CitpbXBvcnQgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldDsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuTGF5b3V0SW5mbGF0ZXI7CitpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXc7CitpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cDsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuYWNjZXNzaWJpbGl0eS5BY2Nlc3NpYmlsaXR5RXZlbnQ7CitpbXBvcnQgYW5kcm9pZC52aWV3LmFjY2Vzc2liaWxpdHkuQWNjZXNzaWJpbGl0eU5vZGVJbmZvOworaW1wb3J0IGFuZHJvaWQudmlldy5pbnB1dG1ldGhvZC5FZGl0b3JJbmZvOworaW1wb3J0IGFuZHJvaWQudmlldy5pbnB1dG1ldGhvZC5JbnB1dE1ldGhvZE1hbmFnZXI7CitpbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwuUjsKKworaW1wb3J0IGphdmEudGV4dC5EYXRlRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLnZpZXcuVmlldy5JTVBPUlRBTlRfRk9SX0FDQ0VTU0lCSUxJVFlfQVVUTzsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC52aWV3LlZpZXcuSU1QT1JUQU5UX0ZPUl9BQ0NFU1NJQklMSVRZX1lFUzsKKworLyoqCisgKiBBIGRlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgYmFzaWMgVGltZVBpY2tlcgorICovCitjbGFzcyBMZWdhY3lUaW1lUGlja2VyRGVsZWdhdGUgZXh0ZW5kcyBUaW1lUGlja2VyLkFic3RyYWN0VGltZVBpY2tlckRlbGVnYXRlIHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVGQVVMVF9FTkFCTEVEX1NUQVRFID0gdHJ1ZTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIT1VSU19JTl9IQUxGX0RBWSA9IDEyOworCisgICAgLy8gc3RhdGUKKyAgICBwcml2YXRlIGJvb2xlYW4gbUlzMjRIb3VyVmlldzsKKworICAgIHByaXZhdGUgYm9vbGVhbiBtSXNBbTsKKworICAgIC8vIHVpIGNvbXBvbmVudHMKKyAgICBwcml2YXRlIGZpbmFsIE51bWJlclBpY2tlciBtSG91clNwaW5uZXI7CisKKyAgICBwcml2YXRlIGZpbmFsIE51bWJlclBpY2tlciBtTWludXRlU3Bpbm5lcjsKKworICAgIHByaXZhdGUgZmluYWwgTnVtYmVyUGlja2VyIG1BbVBtU3Bpbm5lcjsKKworICAgIHByaXZhdGUgZmluYWwgRWRpdFRleHQgbUhvdXJTcGlubmVySW5wdXQ7CisKKyAgICBwcml2YXRlIGZpbmFsIEVkaXRUZXh0IG1NaW51dGVTcGlubmVySW5wdXQ7CisKKyAgICBwcml2YXRlIGZpbmFsIEVkaXRUZXh0IG1BbVBtU3Bpbm5lcklucHV0OworCisgICAgcHJpdmF0ZSBmaW5hbCBUZXh0VmlldyBtRGl2aWRlcjsKKworICAgIC8vIE5vdGUgdGhhdCB0aGUgbGVnYWN5IGltcGxlbWVudGF0aW9uIG9mIHRoZSBUaW1lUGlja2VyIGlzCisgICAgLy8gdXNpbmcgYSBidXR0b24gZm9yIHRvZ2dsaW5nIGJldHdlZW4gQU0vUE0gd2hpbGUgdGhlIG5ldworICAgIC8vIHZlcnNpb24gdXNlcyBhIE51bWJlclBpY2tlciBzcGlubmVyLiBUaGVyZWZvcmUgdGhlIGNvZGUKKyAgICAvLyBhY2NvbW1vZGF0ZXMgdGhlc2UgdHdvIGNhc2VzIHRvIGJlIGJhY2t3YXJkcyBjb21wYXRpYmxlLgorICAgIHByaXZhdGUgZmluYWwgQnV0dG9uIG1BbVBtQnV0dG9uOworCisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdbXSBtQW1QbVN0cmluZ3M7CisKKyAgICBwcml2YXRlIGJvb2xlYW4gbUlzRW5hYmxlZCA9IERFRkFVTFRfRU5BQkxFRF9TVEFURTsKKworICAgIHByaXZhdGUgQ2FsZW5kYXIgbVRlbXBDYWxlbmRhcjsKKworICAgIHByaXZhdGUgYm9vbGVhbiBtSG91cldpdGhUd29EaWdpdDsKKyAgICBwcml2YXRlIGNoYXIgbUhvdXJGb3JtYXQ7CisKKyAgICAvKioKKyAgICAgKiBBIG5vLW9wIGNhbGxiYWNrIHVzZWQgaW4gdGhlIGNvbnN0cnVjdG9yIHRvIGF2b2lkIG51bGwgY2hlY2tzIGxhdGVyIGluCisgICAgICogdGhlIGNvZGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGltZVBpY2tlci5PblRpbWVDaGFuZ2VkTGlzdGVuZXIgTk9fT1BfQ0hBTkdFX0xJU1RFTkVSID0KKyAgICAgICAgICAgIG5ldyBUaW1lUGlja2VyLk9uVGltZUNoYW5nZWRMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBvblRpbWVDaGFuZ2VkKFRpbWVQaWNrZXIgdmlldywgaW50IGhvdXJPZkRheSwgaW50IG1pbnV0ZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICBwdWJsaWMgTGVnYWN5VGltZVBpY2tlckRlbGVnYXRlKFRpbWVQaWNrZXIgZGVsZWdhdG9yLCBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihkZWxlZ2F0b3IsIGNvbnRleHQpOworCisgICAgICAgIC8vIHByb2Nlc3Mgc3R5bGUgYXR0cmlidXRlcworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGF0dHJpYnV0ZXNBcnJheSA9IG1Db250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIFIuc3R5bGVhYmxlLlRpbWVQaWNrZXIsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworICAgICAgICBmaW5hbCBpbnQgbGF5b3V0UmVzb3VyY2VJZCA9IGF0dHJpYnV0ZXNBcnJheS5nZXRSZXNvdXJjZUlkKAorICAgICAgICAgICAgICAgIFIuc3R5bGVhYmxlLlRpbWVQaWNrZXJfbGVnYWN5TGF5b3V0LCBSLmxheW91dC50aW1lX3BpY2tlcl9sZWdhY3kpOworICAgICAgICBhdHRyaWJ1dGVzQXJyYXkucmVjeWNsZSgpOworCisgICAgICAgIGZpbmFsIExheW91dEluZmxhdGVyIGluZmxhdGVyID0gKExheW91dEluZmxhdGVyKSBtQ29udGV4dC5nZXRTeXN0ZW1TZXJ2aWNlKAorICAgICAgICAgICAgICAgIENvbnRleHQuTEFZT1VUX0lORkxBVEVSX1NFUlZJQ0UpOworICAgICAgICBpbmZsYXRlci5pbmZsYXRlKGxheW91dFJlc291cmNlSWQsIG1EZWxlZ2F0b3IsIHRydWUpOworCisgICAgICAgIC8vIGhvdXIKKyAgICAgICAgbUhvdXJTcGlubmVyID0gKE51bWJlclBpY2tlcikgZGVsZWdhdG9yLmZpbmRWaWV3QnlJZChSLmlkLmhvdXIpOworICAgICAgICBtSG91clNwaW5uZXIuc2V0T25WYWx1ZUNoYW5nZWRMaXN0ZW5lcihuZXcgTnVtYmVyUGlja2VyLk9uVmFsdWVDaGFuZ2VMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uVmFsdWVDaGFuZ2UoTnVtYmVyUGlja2VyIHNwaW5uZXIsIGludCBvbGRWYWwsIGludCBuZXdWYWwpIHsKKyAgICAgICAgICAgICAgICB1cGRhdGVJbnB1dFN0YXRlKCk7CisgICAgICAgICAgICAgICAgaWYgKCFpczI0SG91clZpZXcoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKG9sZFZhbCA9PSBIT1VSU19JTl9IQUxGX0RBWSAtIDEgJiYgbmV3VmFsID09IEhPVVJTX0lOX0hBTEZfREFZKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbGRWYWwgPT0gSE9VUlNfSU5fSEFMRl9EQVkgJiYgbmV3VmFsID09IEhPVVJTX0lOX0hBTEZfREFZIC0gMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1Jc0FtID0gIW1Jc0FtOworICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlQW1QbUNvbnRyb2woKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvblRpbWVDaGFuZ2VkKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBtSG91clNwaW5uZXJJbnB1dCA9IChFZGl0VGV4dCkgbUhvdXJTcGlubmVyLmZpbmRWaWV3QnlJZChSLmlkLm51bWJlcnBpY2tlcl9pbnB1dCk7CisgICAgICAgIG1Ib3VyU3Bpbm5lcklucHV0LnNldEltZU9wdGlvbnMoRWRpdG9ySW5mby5JTUVfQUNUSU9OX05FWFQpOworCisgICAgICAgIC8vIGRpdmlkZXIgKG9ubHkgZm9yIHRoZSBuZXcgd2lkZ2V0IHN0eWxlKQorICAgICAgICBtRGl2aWRlciA9IChUZXh0VmlldykgbURlbGVnYXRvci5maW5kVmlld0J5SWQoUi5pZC5kaXZpZGVyKTsKKyAgICAgICAgaWYgKG1EaXZpZGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNldERpdmlkZXJUZXh0KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBtaW51dGUKKyAgICAgICAgbU1pbnV0ZVNwaW5uZXIgPSAoTnVtYmVyUGlja2VyKSBtRGVsZWdhdG9yLmZpbmRWaWV3QnlJZChSLmlkLm1pbnV0ZSk7CisgICAgICAgIG1NaW51dGVTcGlubmVyLnNldE1pblZhbHVlKDApOworICAgICAgICBtTWludXRlU3Bpbm5lci5zZXRNYXhWYWx1ZSg1OSk7CisgICAgICAgIG1NaW51dGVTcGlubmVyLnNldE9uTG9uZ1ByZXNzVXBkYXRlSW50ZXJ2YWwoMTAwKTsKKyAgICAgICAgbU1pbnV0ZVNwaW5uZXIuc2V0Rm9ybWF0dGVyKE51bWJlclBpY2tlci5nZXRUd29EaWdpdEZvcm1hdHRlcigpKTsKKyAgICAgICAgbU1pbnV0ZVNwaW5uZXIuc2V0T25WYWx1ZUNoYW5nZWRMaXN0ZW5lcihuZXcgTnVtYmVyUGlja2VyLk9uVmFsdWVDaGFuZ2VMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uVmFsdWVDaGFuZ2UoTnVtYmVyUGlja2VyIHNwaW5uZXIsIGludCBvbGRWYWwsIGludCBuZXdWYWwpIHsKKyAgICAgICAgICAgICAgICB1cGRhdGVJbnB1dFN0YXRlKCk7CisgICAgICAgICAgICAgICAgaW50IG1pblZhbHVlID0gbU1pbnV0ZVNwaW5uZXIuZ2V0TWluVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBpbnQgbWF4VmFsdWUgPSBtTWludXRlU3Bpbm5lci5nZXRNYXhWYWx1ZSgpOworICAgICAgICAgICAgICAgIGlmIChvbGRWYWwgPT0gbWF4VmFsdWUgJiYgbmV3VmFsID09IG1pblZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBuZXdIb3VyID0gbUhvdXJTcGlubmVyLmdldFZhbHVlKCkgKyAxOworICAgICAgICAgICAgICAgICAgICBpZiAoIWlzMjRIb3VyVmlldygpICYmIG5ld0hvdXIgPT0gSE9VUlNfSU5fSEFMRl9EQVkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1Jc0FtID0gIW1Jc0FtOworICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlQW1QbUNvbnRyb2woKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBtSG91clNwaW5uZXIuc2V0VmFsdWUobmV3SG91cik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvbGRWYWwgPT0gbWluVmFsdWUgJiYgbmV3VmFsID09IG1heFZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBuZXdIb3VyID0gbUhvdXJTcGlubmVyLmdldFZhbHVlKCkgLSAxOworICAgICAgICAgICAgICAgICAgICBpZiAoIWlzMjRIb3VyVmlldygpICYmIG5ld0hvdXIgPT0gSE9VUlNfSU5fSEFMRl9EQVkgLSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtSXNBbSA9ICFtSXNBbTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUFtUG1Db250cm9sKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbUhvdXJTcGlubmVyLnNldFZhbHVlKG5ld0hvdXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvblRpbWVDaGFuZ2VkKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBtTWludXRlU3Bpbm5lcklucHV0ID0gKEVkaXRUZXh0KSBtTWludXRlU3Bpbm5lci5maW5kVmlld0J5SWQoUi5pZC5udW1iZXJwaWNrZXJfaW5wdXQpOworICAgICAgICBtTWludXRlU3Bpbm5lcklucHV0LnNldEltZU9wdGlvbnMoRWRpdG9ySW5mby5JTUVfQUNUSU9OX05FWFQpOworCisgICAgICAgICAgICAvKiBHZXQgdGhlIGxvY2FsaXplZCBhbS9wbSBzdHJpbmdzIGFuZCB1c2UgdGhlbSBpbiB0aGUgc3Bpbm5lciAqLworICAgICAgICBtQW1QbVN0cmluZ3MgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoKS5nZXRBbVBtU3RyaW5ncygpOworCisgICAgICAgIC8vIGFtL3BtCisgICAgICAgIFZpZXcgYW1QbVZpZXcgPSBtRGVsZWdhdG9yLmZpbmRWaWV3QnlJZChSLmlkLmFtUG0pOworICAgICAgICBpZiAoYW1QbVZpZXcgaW5zdGFuY2VvZiBCdXR0b24pIHsKKyAgICAgICAgICAgIG1BbVBtU3Bpbm5lciA9IG51bGw7CisgICAgICAgICAgICBtQW1QbVNwaW5uZXJJbnB1dCA9IG51bGw7CisgICAgICAgICAgICBtQW1QbUJ1dHRvbiA9IChCdXR0b24pIGFtUG1WaWV3OworICAgICAgICAgICAgbUFtUG1CdXR0b24uc2V0T25DbGlja0xpc3RlbmVyKG5ldyBWaWV3Lk9uQ2xpY2tMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBvbkNsaWNrKFZpZXcgYnV0dG9uKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5yZXF1ZXN0Rm9jdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgbUlzQW0gPSAhbUlzQW07CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUFtUG1Db250cm9sKCk7CisgICAgICAgICAgICAgICAgICAgIG9uVGltZUNoYW5nZWQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1BbVBtQnV0dG9uID0gbnVsbDsKKyAgICAgICAgICAgIG1BbVBtU3Bpbm5lciA9IChOdW1iZXJQaWNrZXIpIGFtUG1WaWV3OworICAgICAgICAgICAgbUFtUG1TcGlubmVyLnNldE1pblZhbHVlKDApOworICAgICAgICAgICAgbUFtUG1TcGlubmVyLnNldE1heFZhbHVlKDEpOworICAgICAgICAgICAgbUFtUG1TcGlubmVyLnNldERpc3BsYXllZFZhbHVlcyhtQW1QbVN0cmluZ3MpOworICAgICAgICAgICAgbUFtUG1TcGlubmVyLnNldE9uVmFsdWVDaGFuZ2VkTGlzdGVuZXIobmV3IE51bWJlclBpY2tlci5PblZhbHVlQ2hhbmdlTGlzdGVuZXIoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgb25WYWx1ZUNoYW5nZShOdW1iZXJQaWNrZXIgcGlja2VyLCBpbnQgb2xkVmFsLCBpbnQgbmV3VmFsKSB7CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUlucHV0U3RhdGUoKTsKKyAgICAgICAgICAgICAgICAgICAgcGlja2VyLnJlcXVlc3RGb2N1cygpOworICAgICAgICAgICAgICAgICAgICBtSXNBbSA9ICFtSXNBbTsKKyAgICAgICAgICAgICAgICAgICAgdXBkYXRlQW1QbUNvbnRyb2woKTsKKyAgICAgICAgICAgICAgICAgICAgb25UaW1lQ2hhbmdlZCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgbUFtUG1TcGlubmVySW5wdXQgPSAoRWRpdFRleHQpIG1BbVBtU3Bpbm5lci5maW5kVmlld0J5SWQoUi5pZC5udW1iZXJwaWNrZXJfaW5wdXQpOworICAgICAgICAgICAgbUFtUG1TcGlubmVySW5wdXQuc2V0SW1lT3B0aW9ucyhFZGl0b3JJbmZvLklNRV9BQ1RJT05fRE9ORSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNBbVBtQXRTdGFydCgpKSB7CisgICAgICAgICAgICAvLyBNb3ZlIHRoZSBhbS9wbSB2aWV3IHRvIHRoZSBiZWdpbm5pbmcKKyAgICAgICAgICAgIFZpZXdHcm91cCBhbVBtUGFyZW50ID0gKFZpZXdHcm91cCkgZGVsZWdhdG9yLmZpbmRWaWV3QnlJZChSLmlkLnRpbWVQaWNrZXJMYXlvdXQpOworICAgICAgICAgICAgYW1QbVBhcmVudC5yZW1vdmVWaWV3KGFtUG1WaWV3KTsKKyAgICAgICAgICAgIGFtUG1QYXJlbnQuYWRkVmlldyhhbVBtVmlldywgMCk7CisgICAgICAgICAgICAvLyBTd2FwIGxheW91dCBtYXJnaW5zIGlmIG5lZWRlZC4gVGhleSBtYXkgYmUgbm90IHN5bW1ldHJpY2FsIChPbGQgU3RhbmRhcmQgVGhlbWUKKyAgICAgICAgICAgIC8vIGZvciBleGFtcGxlIGFuZCBub3QgZm9yIEhvbG8gVGhlbWUpCisgICAgICAgICAgICBWaWV3R3JvdXAuTWFyZ2luTGF5b3V0UGFyYW1zIGxwID0KKyAgICAgICAgICAgICAgICAgICAgKFZpZXdHcm91cC5NYXJnaW5MYXlvdXRQYXJhbXMpIGFtUG1WaWV3LmdldExheW91dFBhcmFtcygpOworICAgICAgICAgICAgZmluYWwgaW50IHN0YXJ0TWFyZ2luID0gbHAuZ2V0TWFyZ2luU3RhcnQoKTsKKyAgICAgICAgICAgIGZpbmFsIGludCBlbmRNYXJnaW4gPSBscC5nZXRNYXJnaW5FbmQoKTsKKyAgICAgICAgICAgIGlmIChzdGFydE1hcmdpbiAhPSBlbmRNYXJnaW4pIHsKKyAgICAgICAgICAgICAgICBscC5zZXRNYXJnaW5TdGFydChlbmRNYXJnaW4pOworICAgICAgICAgICAgICAgIGxwLnNldE1hcmdpbkVuZChzdGFydE1hcmdpbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBnZXRIb3VyRm9ybWF0RGF0YSgpOworCisgICAgICAgIC8vIHVwZGF0ZSBjb250cm9scyB0byBpbml0aWFsIHN0YXRlCisgICAgICAgIHVwZGF0ZUhvdXJDb250cm9sKCk7CisgICAgICAgIHVwZGF0ZU1pbnV0ZUNvbnRyb2woKTsKKyAgICAgICAgdXBkYXRlQW1QbUNvbnRyb2woKTsKKworICAgICAgICBzZXRPblRpbWVDaGFuZ2VkTGlzdGVuZXIoTk9fT1BfQ0hBTkdFX0xJU1RFTkVSKTsKKworICAgICAgICAvLyBzZXQgdG8gY3VycmVudCB0aW1lCisgICAgICAgIHNldEN1cnJlbnRIb3VyKG1UZW1wQ2FsZW5kYXIuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgICAgICAgIHNldEN1cnJlbnRNaW51dGUobVRlbXBDYWxlbmRhci5nZXQoQ2FsZW5kYXIuTUlOVVRFKSk7CisKKyAgICAgICAgaWYgKCFpc0VuYWJsZWQoKSkgeworICAgICAgICAgICAgc2V0RW5hYmxlZChmYWxzZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBzZXQgdGhlIGNvbnRlbnQgZGVzY3JpcHRpb25zCisgICAgICAgIHNldENvbnRlbnREZXNjcmlwdGlvbnMoKTsKKworICAgICAgICAvLyBJZiBub3QgZXhwbGljaXRseSBzcGVjaWZpZWQgdGhpcyB2aWV3IGlzIGltcG9ydGFudCBmb3IgYWNjZXNzaWJpbGl0eS4KKyAgICAgICAgaWYgKG1EZWxlZ2F0b3IuZ2V0SW1wb3J0YW50Rm9yQWNjZXNzaWJpbGl0eSgpID09IElNUE9SVEFOVF9GT1JfQUNDRVNTSUJJTElUWV9BVVRPKSB7CisgICAgICAgICAgICBtRGVsZWdhdG9yLnNldEltcG9ydGFudEZvckFjY2Vzc2liaWxpdHkoSU1QT1JUQU5UX0ZPUl9BQ0NFU1NJQklMSVRZX1lFUyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZ2V0SG91ckZvcm1hdERhdGEoKSB7CisgICAgICAgIGZpbmFsIFN0cmluZyBiZXN0RGF0ZVRpbWVQYXR0ZXJuID0gRGF0ZUZvcm1hdC5nZXRCZXN0RGF0ZVRpbWVQYXR0ZXJuKG1DdXJyZW50TG9jYWxlLAorICAgICAgICAgICAgICAgIChtSXMyNEhvdXJWaWV3KSA/ICJIbSIgOiAiaG0iKTsKKyAgICAgICAgZmluYWwgaW50IGxlbmd0aFBhdHRlcm4gPSBiZXN0RGF0ZVRpbWVQYXR0ZXJuLmxlbmd0aCgpOworICAgICAgICBtSG91cldpdGhUd29EaWdpdCA9IGZhbHNlOworICAgICAgICBjaGFyIGhvdXJGb3JtYXQgPSAnXDAnOworICAgICAgICAvLyBDaGVjayBpZiB0aGUgcmV0dXJuZWQgcGF0dGVybiBpcyBzaW5nbGUgb3IgZG91YmxlICdIJywgJ2gnLCAnSycsICdrJy4gV2UgYWxzbyBzYXZlCisgICAgICAgIC8vIHRoZSBob3VyIGZvcm1hdCB0aGF0IHdlIGZvdW5kLgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aFBhdHRlcm47IGkrKykgeworICAgICAgICAgICAgZmluYWwgY2hhciBjID0gYmVzdERhdGVUaW1lUGF0dGVybi5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSAnSCcgfHwgYyA9PSAnaCcgfHwgYyA9PSAnSycgfHwgYyA9PSAnaycpIHsKKyAgICAgICAgICAgICAgICBtSG91ckZvcm1hdCA9IGM7CisgICAgICAgICAgICAgICAgaWYgKGkgKyAxIDwgbGVuZ3RoUGF0dGVybiAmJiBjID09IGJlc3REYXRlVGltZVBhdHRlcm4uY2hhckF0KGkgKyAxKSkgeworICAgICAgICAgICAgICAgICAgICBtSG91cldpdGhUd29EaWdpdCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGlzQW1QbUF0U3RhcnQoKSB7CisgICAgICAgIGZpbmFsIFN0cmluZyBiZXN0RGF0ZVRpbWVQYXR0ZXJuID0gRGF0ZUZvcm1hdC5nZXRCZXN0RGF0ZVRpbWVQYXR0ZXJuKG1DdXJyZW50TG9jYWxlLAorICAgICAgICAgICAgICAgICJobSIgLyogc2tlbGV0b24gKi8pOworCisgICAgICAgIHJldHVybiBiZXN0RGF0ZVRpbWVQYXR0ZXJuLnN0YXJ0c1dpdGgoImEiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgdGltZSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBpbiB0aGUgVW5pY29kZSBDTERSIGFuZCBjYW5ub3QgYmUgc3VwcG9zZWQgdG8gYmUgIjoiLgorICAgICAqCisgICAgICogU2VlIGh0dHA6Ly91bmljb2RlLm9yZy9jbGRyL3RyYWMvYnJvd3Nlci90cnVuay9jb21tb24vbWFpbgorICAgICAqCisgICAgICogV2UgcGFzcyB0aGUgY29ycmVjdCAic2tlbGV0b24iIGRlcGVuZGluZyBvbiAxMiBvciAyNCBob3VycyB2aWV3IGFuZCB0aGVuIGV4dHJhY3QgdGhlCisgICAgICogc2VwYXJhdG9yIGFzIHRoZSBjaGFyYWN0ZXIgd2hpY2ggaXMganVzdCBhZnRlciB0aGUgaG91ciBtYXJrZXIgaW4gdGhlIHJldHVybmVkIHBhdHRlcm4uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldERpdmlkZXJUZXh0KCkgeworICAgICAgICBmaW5hbCBTdHJpbmcgc2tlbGV0b24gPSAobUlzMjRIb3VyVmlldykgPyAiSG0iIDogImhtIjsKKyAgICAgICAgZmluYWwgU3RyaW5nIGJlc3REYXRlVGltZVBhdHRlcm4gPSBEYXRlRm9ybWF0LmdldEJlc3REYXRlVGltZVBhdHRlcm4obUN1cnJlbnRMb2NhbGUsCisgICAgICAgICAgICAgICAgc2tlbGV0b24pOworICAgICAgICBmaW5hbCBTdHJpbmcgc2VwYXJhdG9yVGV4dDsKKyAgICAgICAgaW50IGhvdXJJbmRleCA9IGJlc3REYXRlVGltZVBhdHRlcm4ubGFzdEluZGV4T2YoJ0gnKTsKKyAgICAgICAgaWYgKGhvdXJJbmRleCA9PSAtMSkgeworICAgICAgICAgICAgaG91ckluZGV4ID0gYmVzdERhdGVUaW1lUGF0dGVybi5sYXN0SW5kZXhPZignaCcpOworICAgICAgICB9CisgICAgICAgIGlmIChob3VySW5kZXggPT0gLTEpIHsKKyAgICAgICAgICAgIC8vIERlZmF1bHQgY2FzZQorICAgICAgICAgICAgc2VwYXJhdG9yVGV4dCA9ICI6IjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBtaW51dGVJbmRleCA9IGJlc3REYXRlVGltZVBhdHRlcm4uaW5kZXhPZignbScsIGhvdXJJbmRleCArIDEpOworICAgICAgICAgICAgaWYgIChtaW51dGVJbmRleCA9PSAtMSkgeworICAgICAgICAgICAgICAgIHNlcGFyYXRvclRleHQgPSBDaGFyYWN0ZXIudG9TdHJpbmcoYmVzdERhdGVUaW1lUGF0dGVybi5jaGFyQXQoaG91ckluZGV4ICsgMSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXBhcmF0b3JUZXh0ID0gYmVzdERhdGVUaW1lUGF0dGVybi5zdWJzdHJpbmcoaG91ckluZGV4ICsgMSwgbWludXRlSW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1EaXZpZGVyLnNldFRleHQoc2VwYXJhdG9yVGV4dCk7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgc2V0Q3VycmVudEhvdXIoSW50ZWdlciBjdXJyZW50SG91cikgeworICAgICAgICBzZXRDdXJyZW50SG91cihjdXJyZW50SG91ciwgdHJ1ZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldEN1cnJlbnRIb3VyKEludGVnZXIgY3VycmVudEhvdXIsIGJvb2xlYW4gbm90aWZ5VGltZUNoYW5nZWQpIHsKKyAgICAgICAgLy8gd2h5IHdhcyBJbnRlZ2VyIHVzZWQgaW4gdGhlIGZpcnN0IHBsYWNlPworICAgICAgICBpZiAoY3VycmVudEhvdXIgPT0gbnVsbCB8fCBjdXJyZW50SG91ciA9PSBnZXRDdXJyZW50SG91cigpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpczI0SG91clZpZXcoKSkgeworICAgICAgICAgICAgLy8gY29udmVydCBbMCwyM10gb3JkaW5hbCB0byB3YWxsIGNsb2NrIGRpc3BsYXkKKyAgICAgICAgICAgIGlmIChjdXJyZW50SG91ciA+PSBIT1VSU19JTl9IQUxGX0RBWSkgeworICAgICAgICAgICAgICAgIG1Jc0FtID0gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRIb3VyID4gSE9VUlNfSU5fSEFMRl9EQVkpIHsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudEhvdXIgPSBjdXJyZW50SG91ciAtIEhPVVJTX0lOX0hBTEZfREFZOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbUlzQW0gPSB0cnVlOworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SG91ciA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRIb3VyID0gSE9VUlNfSU5fSEFMRl9EQVk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdXBkYXRlQW1QbUNvbnRyb2woKTsKKyAgICAgICAgfQorICAgICAgICBtSG91clNwaW5uZXIuc2V0VmFsdWUoY3VycmVudEhvdXIpOworICAgICAgICBpZiAobm90aWZ5VGltZUNoYW5nZWQpIHsKKyAgICAgICAgICAgIG9uVGltZUNoYW5nZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBJbnRlZ2VyIGdldEN1cnJlbnRIb3VyKCkgeworICAgICAgICBpbnQgY3VycmVudEhvdXIgPSBtSG91clNwaW5uZXIuZ2V0VmFsdWUoKTsKKyAgICAgICAgaWYgKGlzMjRIb3VyVmlldygpKSB7CisgICAgICAgICAgICByZXR1cm4gY3VycmVudEhvdXI7CisgICAgICAgIH0gZWxzZSBpZiAobUlzQW0pIHsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50SG91ciAlIEhPVVJTX0lOX0hBTEZfREFZOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIChjdXJyZW50SG91ciAlIEhPVVJTX0lOX0hBTEZfREFZKSArIEhPVVJTX0lOX0hBTEZfREFZOworICAgICAgICB9CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgc2V0Q3VycmVudE1pbnV0ZShJbnRlZ2VyIGN1cnJlbnRNaW51dGUpIHsKKyAgICAgICAgaWYgKGN1cnJlbnRNaW51dGUgPT0gZ2V0Q3VycmVudE1pbnV0ZSgpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbU1pbnV0ZVNwaW5uZXIuc2V0VmFsdWUoY3VycmVudE1pbnV0ZSk7CisgICAgICAgIG9uVGltZUNoYW5nZWQoKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgSW50ZWdlciBnZXRDdXJyZW50TWludXRlKCkgeworICAgICAgICByZXR1cm4gbU1pbnV0ZVNwaW5uZXIuZ2V0VmFsdWUoKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBzZXRJczI0SG91clZpZXcoQm9vbGVhbiBpczI0SG91clZpZXcpIHsKKyAgICAgICAgaWYgKG1JczI0SG91clZpZXcgPT0gaXMyNEhvdXJWaWV3KSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gY2FjaGUgdGhlIGN1cnJlbnQgaG91ciBzaW5jZSBzcGlubmVyIHJhbmdlIGNoYW5nZXMgYW5kIEJFRk9SRSBjaGFuZ2luZyBtSXMyNEhvdXJWaWV3ISEKKyAgICAgICAgaW50IGN1cnJlbnRIb3VyID0gZ2V0Q3VycmVudEhvdXIoKTsKKyAgICAgICAgLy8gT3JkZXIgaXMgaW1wb3J0YW50IGhlcmUuCisgICAgICAgIG1JczI0SG91clZpZXcgPSBpczI0SG91clZpZXc7CisgICAgICAgIGdldEhvdXJGb3JtYXREYXRhKCk7CisgICAgICAgIHVwZGF0ZUhvdXJDb250cm9sKCk7CisgICAgICAgIC8vIHNldCB2YWx1ZSBhZnRlciBzcGlubmVyIHJhbmdlIGlzIHVwZGF0ZWQKKyAgICAgICAgc2V0Q3VycmVudEhvdXIoY3VycmVudEhvdXIsIGZhbHNlKTsKKyAgICAgICAgdXBkYXRlTWludXRlQ29udHJvbCgpOworICAgICAgICB1cGRhdGVBbVBtQ29udHJvbCgpOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBib29sZWFuIGlzMjRIb3VyVmlldygpIHsKKyAgICAgICAgcmV0dXJuIG1JczI0SG91clZpZXc7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgc2V0T25UaW1lQ2hhbmdlZExpc3RlbmVyKFRpbWVQaWNrZXIuT25UaW1lQ2hhbmdlZExpc3RlbmVyIG9uVGltZUNoYW5nZWRMaXN0ZW5lcikgeworICAgICAgICBtT25UaW1lQ2hhbmdlZExpc3RlbmVyID0gb25UaW1lQ2hhbmdlZExpc3RlbmVyOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIHNldEVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKSB7CisgICAgICAgIG1NaW51dGVTcGlubmVyLnNldEVuYWJsZWQoZW5hYmxlZCk7CisgICAgICAgIGlmIChtRGl2aWRlciAhPSBudWxsKSB7CisgICAgICAgICAgICBtRGl2aWRlci5zZXRFbmFibGVkKGVuYWJsZWQpOworICAgICAgICB9CisgICAgICAgIG1Ib3VyU3Bpbm5lci5zZXRFbmFibGVkKGVuYWJsZWQpOworICAgICAgICBpZiAobUFtUG1TcGlubmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1BbVBtU3Bpbm5lci5zZXRFbmFibGVkKGVuYWJsZWQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUFtUG1CdXR0b24uc2V0RW5hYmxlZChlbmFibGVkKTsKKyAgICAgICAgfQorICAgICAgICBtSXNFbmFibGVkID0gZW5hYmxlZDsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0VuYWJsZWQoKSB7CisgICAgICAgIHJldHVybiBtSXNFbmFibGVkOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIHNldFNob3dEb25lQnV0dG9uKGJvb2xlYW4gc2hvd0RvbmVCdXR0b24pIHsKKyAgICAgICAgLy8gTm90aGluZyB0byBkbworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIHNldERpc21pc3NDYWxsYmFjayhUaW1lUGlja2VyLlRpbWVQaWNrZXJEaXNtaXNzQ2FsbGJhY2sgY2FsbGJhY2spIHsKKyAgICAgICAgLy8gTm90aGluZyB0byBkbworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBpbnQgZ2V0QmFzZWxpbmUoKSB7CisgICAgICAgIHJldHVybiBtSG91clNwaW5uZXIuZ2V0QmFzZWxpbmUoKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkKENvbmZpZ3VyYXRpb24gbmV3Q29uZmlnKSB7CisgICAgICAgIHNldEN1cnJlbnRMb2NhbGUobmV3Q29uZmlnLmxvY2FsZSk7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIFBhcmNlbGFibGUgb25TYXZlSW5zdGFuY2VTdGF0ZShQYXJjZWxhYmxlIHN1cGVyU3RhdGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTYXZlZFN0YXRlKHN1cGVyU3RhdGUsIGdldEN1cnJlbnRIb3VyKCksIGdldEN1cnJlbnRNaW51dGUoKSk7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgb25SZXN0b3JlSW5zdGFuY2VTdGF0ZShQYXJjZWxhYmxlIHN0YXRlKSB7CisgICAgICAgIFNhdmVkU3RhdGUgc3MgPSAoU2F2ZWRTdGF0ZSkgc3RhdGU7CisgICAgICAgIHNldEN1cnJlbnRIb3VyKHNzLmdldEhvdXIoKSk7CisgICAgICAgIHNldEN1cnJlbnRNaW51dGUoc3MuZ2V0TWludXRlKCkpOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBib29sZWFuIGRpc3BhdGNoUG9wdWxhdGVBY2Nlc3NpYmlsaXR5RXZlbnQoQWNjZXNzaWJpbGl0eUV2ZW50IGV2ZW50KSB7CisgICAgICAgIG9uUG9wdWxhdGVBY2Nlc3NpYmlsaXR5RXZlbnQoZXZlbnQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBvblBvcHVsYXRlQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCkgeworICAgICAgICBpbnQgZmxhZ3MgPSBEYXRlVXRpbHMuRk9STUFUX1NIT1dfVElNRTsKKyAgICAgICAgaWYgKG1JczI0SG91clZpZXcpIHsKKyAgICAgICAgICAgIGZsYWdzIHw9IERhdGVVdGlscy5GT1JNQVRfMjRIT1VSOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZmxhZ3MgfD0gRGF0ZVV0aWxzLkZPUk1BVF8xMkhPVVI7CisgICAgICAgIH0KKyAgICAgICAgbVRlbXBDYWxlbmRhci5zZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIGdldEN1cnJlbnRIb3VyKCkpOworICAgICAgICBtVGVtcENhbGVuZGFyLnNldChDYWxlbmRhci5NSU5VVEUsIGdldEN1cnJlbnRNaW51dGUoKSk7CisgICAgICAgIFN0cmluZyBzZWxlY3RlZERhdGVVdHRlcmFuY2UgPSBEYXRlVXRpbHMuZm9ybWF0RGF0ZVRpbWUobUNvbnRleHQsCisgICAgICAgICAgICAgICAgbVRlbXBDYWxlbmRhci5nZXRUaW1lSW5NaWxsaXMoKSwgZmxhZ3MpOworICAgICAgICBldmVudC5nZXRUZXh0KCkuYWRkKHNlbGVjdGVkRGF0ZVV0dGVyYW5jZSk7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgb25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCkgeworICAgICAgICBldmVudC5zZXRDbGFzc05hbWUoVGltZVBpY2tlci5jbGFzcy5nZXROYW1lKCkpOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIG9uSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHlOb2RlSW5mbyhBY2Nlc3NpYmlsaXR5Tm9kZUluZm8gaW5mbykgeworICAgICAgICBpbmZvLnNldENsYXNzTmFtZShUaW1lUGlja2VyLmNsYXNzLmdldE5hbWUoKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZUlucHV0U3RhdGUoKSB7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGlmIHRoZSB1c2VyIGNoYW5nZXMgdGhlIHZhbHVlIGFuZCB0aGUgSU1FIGlzIGFjdGl2ZQorICAgICAgICAvLyBmb3Igb25lIG9mIHRoZSBpbnB1dHMgaWYgdGhpcyB3aWRnZXQsIHRoZSBJTUUgaXMgY2xvc2VkLiBJZiB0aGUgdXNlcgorICAgICAgICAvLyBjaGFuZ2VkIHRoZSB2YWx1ZSB2aWEgdGhlIElNRSBhbmQgdGhlcmUgaXMgYSBuZXh0IGlucHV0IHRoZSBJTUUgd2lsbAorICAgICAgICAvLyBiZSBzaG93biwgb3RoZXJ3aXNlIHRoZSB1c2VyIGNob3NlIGFub3RoZXIgbWVhbnMgb2YgY2hhbmdpbmcgdGhlCisgICAgICAgIC8vIHZhbHVlIGFuZCBoYXZpbmcgdGhlIElNRSB1cCBtYWtlcyBubyBzZW5zZS4KKyAgICAgICAgSW5wdXRNZXRob2RNYW5hZ2VyIGlucHV0TWV0aG9kTWFuYWdlciA9IElucHV0TWV0aG9kTWFuYWdlci5wZWVrSW5zdGFuY2UoKTsKKyAgICAgICAgaWYgKGlucHV0TWV0aG9kTWFuYWdlciAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoaW5wdXRNZXRob2RNYW5hZ2VyLmlzQWN0aXZlKG1Ib3VyU3Bpbm5lcklucHV0KSkgeworICAgICAgICAgICAgICAgIG1Ib3VyU3Bpbm5lcklucHV0LmNsZWFyRm9jdXMoKTsKKyAgICAgICAgICAgICAgICBpbnB1dE1ldGhvZE1hbmFnZXIuaGlkZVNvZnRJbnB1dEZyb21XaW5kb3cobURlbGVnYXRvci5nZXRXaW5kb3dUb2tlbigpLCAwKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXRNZXRob2RNYW5hZ2VyLmlzQWN0aXZlKG1NaW51dGVTcGlubmVySW5wdXQpKSB7CisgICAgICAgICAgICAgICAgbU1pbnV0ZVNwaW5uZXJJbnB1dC5jbGVhckZvY3VzKCk7CisgICAgICAgICAgICAgICAgaW5wdXRNZXRob2RNYW5hZ2VyLmhpZGVTb2Z0SW5wdXRGcm9tV2luZG93KG1EZWxlZ2F0b3IuZ2V0V2luZG93VG9rZW4oKSwgMCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0TWV0aG9kTWFuYWdlci5pc0FjdGl2ZShtQW1QbVNwaW5uZXJJbnB1dCkpIHsKKyAgICAgICAgICAgICAgICBtQW1QbVNwaW5uZXJJbnB1dC5jbGVhckZvY3VzKCk7CisgICAgICAgICAgICAgICAgaW5wdXRNZXRob2RNYW5hZ2VyLmhpZGVTb2Z0SW5wdXRGcm9tV2luZG93KG1EZWxlZ2F0b3IuZ2V0V2luZG93VG9rZW4oKSwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlQW1QbUNvbnRyb2woKSB7CisgICAgICAgIGlmIChpczI0SG91clZpZXcoKSkgeworICAgICAgICAgICAgaWYgKG1BbVBtU3Bpbm5lciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbUFtUG1TcGlubmVyLnNldFZpc2liaWxpdHkoVmlldy5HT05FKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbUFtUG1CdXR0b24uc2V0VmlzaWJpbGl0eShWaWV3LkdPTkUpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGluZGV4ID0gbUlzQW0gPyBDYWxlbmRhci5BTSA6IENhbGVuZGFyLlBNOworICAgICAgICAgICAgaWYgKG1BbVBtU3Bpbm5lciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbUFtUG1TcGlubmVyLnNldFZhbHVlKGluZGV4KTsKKyAgICAgICAgICAgICAgICBtQW1QbVNwaW5uZXIuc2V0VmlzaWJpbGl0eShWaWV3LlZJU0lCTEUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtQW1QbUJ1dHRvbi5zZXRUZXh0KG1BbVBtU3RyaW5nc1tpbmRleF0pOworICAgICAgICAgICAgICAgIG1BbVBtQnV0dG9uLnNldFZpc2liaWxpdHkoVmlldy5WSVNJQkxFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtRGVsZWdhdG9yLnNlbmRBY2Nlc3NpYmlsaXR5RXZlbnQoQWNjZXNzaWJpbGl0eUV2ZW50LlRZUEVfVklFV19TRUxFQ1RFRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBjdXJyZW50IGxvY2FsZS4KKyAgICAgKi8KKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW50TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIuc2V0Q3VycmVudExvY2FsZShsb2NhbGUpOworICAgICAgICBtVGVtcENhbGVuZGFyID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgb25UaW1lQ2hhbmdlZCgpIHsKKyAgICAgICAgbURlbGVnYXRvci5zZW5kQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudC5UWVBFX1ZJRVdfU0VMRUNURUQpOworICAgICAgICBpZiAobU9uVGltZUNoYW5nZWRMaXN0ZW5lciAhPSBudWxsKSB7CisgICAgICAgICAgICBtT25UaW1lQ2hhbmdlZExpc3RlbmVyLm9uVGltZUNoYW5nZWQobURlbGVnYXRvciwgZ2V0Q3VycmVudEhvdXIoKSwKKyAgICAgICAgICAgICAgICAgICAgZ2V0Q3VycmVudE1pbnV0ZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVIb3VyQ29udHJvbCgpIHsKKyAgICAgICAgaWYgKGlzMjRIb3VyVmlldygpKSB7CisgICAgICAgICAgICAvLyAnaycgbWVhbnMgMS0yNCBob3VyCisgICAgICAgICAgICBpZiAobUhvdXJGb3JtYXQgPT0gJ2snKSB7CisgICAgICAgICAgICAgICAgbUhvdXJTcGlubmVyLnNldE1pblZhbHVlKDEpOworICAgICAgICAgICAgICAgIG1Ib3VyU3Bpbm5lci5zZXRNYXhWYWx1ZSgyNCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1Ib3VyU3Bpbm5lci5zZXRNaW5WYWx1ZSgwKTsKKyAgICAgICAgICAgICAgICBtSG91clNwaW5uZXIuc2V0TWF4VmFsdWUoMjMpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gJ0snIG1lYW5zIDAtMTEgaG91cgorICAgICAgICAgICAgaWYgKG1Ib3VyRm9ybWF0ID09ICdLJykgeworICAgICAgICAgICAgICAgIG1Ib3VyU3Bpbm5lci5zZXRNaW5WYWx1ZSgwKTsKKyAgICAgICAgICAgICAgICBtSG91clNwaW5uZXIuc2V0TWF4VmFsdWUoMTEpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtSG91clNwaW5uZXIuc2V0TWluVmFsdWUoMSk7CisgICAgICAgICAgICAgICAgbUhvdXJTcGlubmVyLnNldE1heFZhbHVlKDEyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtSG91clNwaW5uZXIuc2V0Rm9ybWF0dGVyKG1Ib3VyV2l0aFR3b0RpZ2l0ID8gTnVtYmVyUGlja2VyLmdldFR3b0RpZ2l0Rm9ybWF0dGVyKCkgOiBudWxsKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlTWludXRlQ29udHJvbCgpIHsKKyAgICAgICAgaWYgKGlzMjRIb3VyVmlldygpKSB7CisgICAgICAgICAgICBtTWludXRlU3Bpbm5lcklucHV0LnNldEltZU9wdGlvbnMoRWRpdG9ySW5mby5JTUVfQUNUSU9OX0RPTkUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbU1pbnV0ZVNwaW5uZXJJbnB1dC5zZXRJbWVPcHRpb25zKEVkaXRvckluZm8uSU1FX0FDVElPTl9ORVhUKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRDb250ZW50RGVzY3JpcHRpb25zKCkgeworICAgICAgICAvLyBNaW51dGUKKyAgICAgICAgdHJ5U2V0Q29udGVudERlc2NyaXB0aW9uKG1NaW51dGVTcGlubmVyLCBSLmlkLmluY3JlbWVudCwKKyAgICAgICAgICAgICAgICBSLnN0cmluZy50aW1lX3BpY2tlcl9pbmNyZW1lbnRfbWludXRlX2J1dHRvbik7CisgICAgICAgIHRyeVNldENvbnRlbnREZXNjcmlwdGlvbihtTWludXRlU3Bpbm5lciwgUi5pZC5kZWNyZW1lbnQsCisgICAgICAgICAgICAgICAgUi5zdHJpbmcudGltZV9waWNrZXJfZGVjcmVtZW50X21pbnV0ZV9idXR0b24pOworICAgICAgICAvLyBIb3VyCisgICAgICAgIHRyeVNldENvbnRlbnREZXNjcmlwdGlvbihtSG91clNwaW5uZXIsIFIuaWQuaW5jcmVtZW50LAorICAgICAgICAgICAgICAgIFIuc3RyaW5nLnRpbWVfcGlja2VyX2luY3JlbWVudF9ob3VyX2J1dHRvbik7CisgICAgICAgIHRyeVNldENvbnRlbnREZXNjcmlwdGlvbihtSG91clNwaW5uZXIsIFIuaWQuZGVjcmVtZW50LAorICAgICAgICAgICAgICAgIFIuc3RyaW5nLnRpbWVfcGlja2VyX2RlY3JlbWVudF9ob3VyX2J1dHRvbik7CisgICAgICAgIC8vIEFNL1BNCisgICAgICAgIGlmIChtQW1QbVNwaW5uZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5U2V0Q29udGVudERlc2NyaXB0aW9uKG1BbVBtU3Bpbm5lciwgUi5pZC5pbmNyZW1lbnQsCisgICAgICAgICAgICAgICAgICAgIFIuc3RyaW5nLnRpbWVfcGlja2VyX2luY3JlbWVudF9zZXRfcG1fYnV0dG9uKTsKKyAgICAgICAgICAgIHRyeVNldENvbnRlbnREZXNjcmlwdGlvbihtQW1QbVNwaW5uZXIsIFIuaWQuZGVjcmVtZW50LAorICAgICAgICAgICAgICAgICAgICBSLnN0cmluZy50aW1lX3BpY2tlcl9kZWNyZW1lbnRfc2V0X2FtX2J1dHRvbik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgdHJ5U2V0Q29udGVudERlc2NyaXB0aW9uKFZpZXcgcm9vdCwgaW50IHZpZXdJZCwgaW50IGNvbnREZXNjUmVzSWQpIHsKKyAgICAgICAgVmlldyB0YXJnZXQgPSByb290LmZpbmRWaWV3QnlJZCh2aWV3SWQpOworICAgICAgICBpZiAodGFyZ2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRhcmdldC5zZXRDb250ZW50RGVzY3JpcHRpb24obUNvbnRleHQuZ2V0U3RyaW5nKGNvbnREZXNjUmVzSWQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFVzZWQgdG8gc2F2ZSAvIHJlc3RvcmUgc3RhdGUgb2YgdGltZSBwaWNrZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBTYXZlZFN0YXRlIGV4dGVuZHMgVmlldy5CYXNlU2F2ZWRTdGF0ZSB7CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBpbnQgbUhvdXI7CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBpbnQgbU1pbnV0ZTsKKworICAgICAgICBwcml2YXRlIFNhdmVkU3RhdGUoUGFyY2VsYWJsZSBzdXBlclN0YXRlLCBpbnQgaG91ciwgaW50IG1pbnV0ZSkgeworICAgICAgICAgICAgc3VwZXIoc3VwZXJTdGF0ZSk7CisgICAgICAgICAgICBtSG91ciA9IGhvdXI7CisgICAgICAgICAgICBtTWludXRlID0gbWludXRlOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBTYXZlZFN0YXRlKFBhcmNlbCBpbikgeworICAgICAgICAgICAgc3VwZXIoaW4pOworICAgICAgICAgICAgbUhvdXIgPSBpbi5yZWFkSW50KCk7CisgICAgICAgICAgICBtTWludXRlID0gaW4ucmVhZEludCgpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRIb3VyKCkgeworICAgICAgICAgICAgcmV0dXJuIG1Ib3VyOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRNaW51dGUoKSB7CisgICAgICAgICAgICByZXR1cm4gbU1pbnV0ZTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZVRvUGFyY2VsKFBhcmNlbCBkZXN0LCBpbnQgZmxhZ3MpIHsKKyAgICAgICAgICAgIHN1cGVyLndyaXRlVG9QYXJjZWwoZGVzdCwgZmxhZ3MpOworICAgICAgICAgICAgZGVzdC53cml0ZUludChtSG91cik7CisgICAgICAgICAgICBkZXN0LndyaXRlSW50KG1NaW51dGUpOworICAgICAgICB9CisKKyAgICAgICAgQFN1cHByZXNzV2FybmluZ3MoeyJ1bnVzZWQiLCAiaGlkaW5nIn0pCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgUGFyY2VsYWJsZS5DcmVhdG9yPFNhdmVkU3RhdGU+IENSRUFUT1IgPSBuZXcgQ3JlYXRvcjxTYXZlZFN0YXRlPigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBTYXZlZFN0YXRlIGNyZWF0ZUZyb21QYXJjZWwoUGFyY2VsIGluKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTYXZlZFN0YXRlKGluKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIFNhdmVkU3RhdGVbXSBuZXdBcnJheShpbnQgc2l6ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2F2ZWRTdGF0ZVtzaXplXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9MaW5lYXJMYXlvdXQuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9MaW5lYXJMYXlvdXQuamF2YQppbmRleCBhZDYwYTk1Li42NWYxYWI3IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvTGluZWFyTGF5b3V0LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0xpbmVhckxheW91dC5qYXZhCkBAIC0xOCw2ICsxOCw3IEBACiAKIGltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SOwogCitpbXBvcnQgYW5kcm9pZC5hbm5vdGF0aW9uLkludERlZjsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLlR5cGVkQXJyYXk7CiBpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5DYW52YXM7CkBAIC0zMSw2ICszMiw5IEBACiBpbXBvcnQgYW5kcm9pZC52aWV3LmFjY2Vzc2liaWxpdHkuQWNjZXNzaWJpbGl0eU5vZGVJbmZvOwogaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlJlbW90ZVZpZXdzLlJlbW90ZVZpZXc7CiAKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb247CitpbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uUG9saWN5OworCiAKIC8qKgogICogQSBMYXlvdXQgdGhhdCBhcnJhbmdlcyBpdHMgY2hpbGRyZW4gaW4gYSBzaW5nbGUgY29sdW1uIG9yIGEgc2luZ2xlIHJvdy4gVGhlIGRpcmVjdGlvbiBvZiAKQEAgLTU3LDkgKzYxLDI1IEBACiAgKi8KIEBSZW1vdGVWaWV3CiBwdWJsaWMgY2xhc3MgTGluZWFyTGF5b3V0IGV4dGVuZHMgVmlld0dyb3VwIHsKKyAgICAvKiogQGhpZGUgKi8KKyAgICBASW50RGVmKHtIT1JJWk9OVEFMLCBWRVJUSUNBTH0pCisgICAgQFJldGVudGlvbihSZXRlbnRpb25Qb2xpY3kuU09VUkNFKQorICAgIHB1YmxpYyBAaW50ZXJmYWNlIE9yaWVudGF0aW9uTW9kZSB7fQorCiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSE9SSVpPTlRBTCA9IDA7CiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkVSVElDQUwgPSAxOwogCisgICAgLyoqIEBoaWRlICovCisgICAgQEludERlZihmbGFnID0gdHJ1ZSwKKyAgICAgICAgICAgIHZhbHVlID0geworICAgICAgICAgICAgICAgIFNIT1dfRElWSURFUl9OT05FLAorICAgICAgICAgICAgICAgIFNIT1dfRElWSURFUl9CRUdJTk5JTkcsCisgICAgICAgICAgICAgICAgU0hPV19ESVZJREVSX01JRERMRSwKKyAgICAgICAgICAgICAgICBTSE9XX0RJVklERVJfRU5ECisgICAgICAgICAgICB9KQorICAgIEBSZXRlbnRpb24oUmV0ZW50aW9uUG9saWN5LlNPVVJDRSkKKyAgICBwdWJsaWMgQGludGVyZmFjZSBEaXZpZGVyTW9kZSB7fQorCiAgICAgLyoqCiAgICAgICogRG9uJ3Qgc2hvdyBhbnkgZGl2aWRlcnMuCiAgICAgICovCkBAIC0xNjUsMTggKzE4NSwyMiBAQAogICAgIHByaXZhdGUgaW50IG1EaXZpZGVyUGFkZGluZzsKIAogICAgIHB1YmxpYyBMaW5lYXJMYXlvdXQoQ29udGV4dCBjb250ZXh0KSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQpOworICAgICAgICB0aGlzKGNvbnRleHQsIG51bGwpOwogICAgIH0KIAogICAgIHB1YmxpYyBMaW5lYXJMYXlvdXQoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgMCk7CiAgICAgfQogICAgIAotICAgIHB1YmxpYyBMaW5lYXJMYXlvdXQoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgIHB1YmxpYyBMaW5lYXJMYXlvdXQoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CiAKLSAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAotICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkxpbmVhckxheW91dCwgZGVmU3R5bGUsIDApOworICAgIHB1YmxpYyBMaW5lYXJMYXlvdXQoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5MaW5lYXJMYXlvdXQsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIGludCBpbmRleCA9IGEuZ2V0SW50KGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkxpbmVhckxheW91dF9vcmllbnRhdGlvbiwgLTEpOwogICAgICAgICBpZiAoaW5kZXggPj0gMCkgewpAQCAtMjE0LDcgKzIzOCw3IEBACiAgICAgICogICAgICAgICAgICAgICAgICAgICB7QGxpbmsgI1NIT1dfRElWSURFUl9NSURETEV9LCBvciB7QGxpbmsgI1NIT1dfRElWSURFUl9FTkR9LAogICAgICAqICAgICAgICAgICAgICAgICAgICAgb3Ige0BsaW5rICNTSE9XX0RJVklERVJfTk9ORX0gdG8gc2hvdyBubyBkaXZpZGVycy4KICAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzZXRTaG93RGl2aWRlcnMoaW50IHNob3dEaXZpZGVycykgeworICAgIHB1YmxpYyB2b2lkIHNldFNob3dEaXZpZGVycyhARGl2aWRlck1vZGUgaW50IHNob3dEaXZpZGVycykgewogICAgICAgICBpZiAoc2hvd0RpdmlkZXJzICE9IG1TaG93RGl2aWRlcnMpIHsKICAgICAgICAgICAgIHJlcXVlc3RMYXlvdXQoKTsKICAgICAgICAgfQpAQCAtMjMwLDYgKzI1NCw3IEBACiAgICAgICogQHJldHVybiBBIGZsYWcgc2V0IGluZGljYXRpbmcgaG93IGRpdmlkZXJzIHNob3VsZCBiZSBzaG93biBhcm91bmQgaXRlbXMuCiAgICAgICogQHNlZSAjc2V0U2hvd0RpdmlkZXJzKGludCkKICAgICAgKi8KKyAgICBARGl2aWRlck1vZGUKICAgICBwdWJsaWMgaW50IGdldFNob3dEaXZpZGVycygpIHsKICAgICAgICAgcmV0dXJuIG1TaG93RGl2aWRlcnM7CiAgICAgfQpAQCAtMTY3MywxMiArMTY5OCwxMiBAQAogICAgIAogICAgIC8qKgogICAgICAqIFNob3VsZCB0aGUgbGF5b3V0IGJlIGEgY29sdW1uIG9yIGEgcm93LgotICAgICAqIEBwYXJhbSBvcmllbnRhdGlvbiBQYXNzIEhPUklaT05UQUwgb3IgVkVSVElDQUwuIERlZmF1bHQKLSAgICAgKiB2YWx1ZSBpcyBIT1JJWk9OVEFMLgorICAgICAqIEBwYXJhbSBvcmllbnRhdGlvbiBQYXNzIHtAbGluayAjSE9SSVpPTlRBTH0gb3Ige0BsaW5rICNWRVJUSUNBTH0uIERlZmF1bHQKKyAgICAgKiB2YWx1ZSBpcyB7QGxpbmsgI0hPUklaT05UQUx9LgogICAgICAqIAogICAgICAqIEBhdHRyIHJlZiBhbmRyb2lkLlIuc3R5bGVhYmxlI0xpbmVhckxheW91dF9vcmllbnRhdGlvbgogICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHNldE9yaWVudGF0aW9uKGludCBvcmllbnRhdGlvbikgeworICAgIHB1YmxpYyB2b2lkIHNldE9yaWVudGF0aW9uKEBPcmllbnRhdGlvbk1vZGUgaW50IG9yaWVudGF0aW9uKSB7CiAgICAgICAgIGlmIChtT3JpZW50YXRpb24gIT0gb3JpZW50YXRpb24pIHsKICAgICAgICAgICAgIG1PcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOwogICAgICAgICAgICAgcmVxdWVzdExheW91dCgpOwpAQCAtMTY5MCw2ICsxNzE1LDcgQEAKICAgICAgKiAKICAgICAgKiBAcmV0dXJuIGVpdGhlciB7QGxpbmsgI0hPUklaT05UQUx9IG9yIHtAbGluayAjVkVSVElDQUx9CiAgICAgICovCisgICAgQE9yaWVudGF0aW9uTW9kZQogICAgIHB1YmxpYyBpbnQgZ2V0T3JpZW50YXRpb24oKSB7CiAgICAgICAgIHJldHVybiBtT3JpZW50YXRpb247CiAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L0xpc3RWaWV3LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvTGlzdFZpZXcuamF2YQppbmRleCA3ODIzN2MzLi44MWExN2M1IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvTGlzdFZpZXcuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvTGlzdFZpZXcuamF2YQpAQCAtMTQyLDExICsxNDIsMTUgQEAKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5hdHRyLmxpc3RWaWV3U3R5bGUpOwogICAgIH0KIAotICAgIHB1YmxpYyBMaXN0VmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIExpc3RWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQogCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5MaXN0VmlldywgZGVmU3R5bGUsIDApOworICAgIHB1YmxpYyBMaXN0VmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkxpc3RWaWV3LCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICBDaGFyU2VxdWVuY2VbXSBlbnRyaWVzID0gYS5nZXRUZXh0QXJyYXkoCiAgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuTGlzdFZpZXdfZW50cmllcyk7CkBAIC0xNzI5LDM0ICsxNzMzLDYgQEAKICAgICB9CiAKICAgICAvKioKLSAgICAgKiBAcmV0dXJuIHRoZSBkaXJlY3QgY2hpbGQgdGhhdCBjb250YWlucyBhY2Nlc3NpYmlsaXR5IGZvY3VzLCBvciBudWxsIGlmIG5vCi0gICAgICogICAgICAgICBjaGlsZCBjb250YWlucyBhY2Nlc3NpYmlsaXR5IGZvY3VzCi0gICAgICovCi0gICAgcHJpdmF0ZSBWaWV3IGdldEFjY2Vzc2liaWxpdHlGb2N1c2VkQ2hpbGQoKSB7Ci0gICAgICAgIGZpbmFsIFZpZXdSb290SW1wbCB2aWV3Um9vdEltcGwgPSBnZXRWaWV3Um9vdEltcGwoKTsKLSAgICAgICAgaWYgKHZpZXdSb290SW1wbCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIFZpZXcgZm9jdXNlZFZpZXcgPSB2aWV3Um9vdEltcGwuZ2V0QWNjZXNzaWJpbGl0eUZvY3VzZWRIb3N0KCk7Ci0gICAgICAgIGlmIChmb2N1c2VkVmlldyA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIFZpZXdQYXJlbnQgdmlld1BhcmVudCA9IGZvY3VzZWRWaWV3LmdldFBhcmVudCgpOwotICAgICAgICB3aGlsZSAoKHZpZXdQYXJlbnQgaW5zdGFuY2VvZiBWaWV3KSAmJiAodmlld1BhcmVudCAhPSB0aGlzKSkgewotICAgICAgICAgICAgZm9jdXNlZFZpZXcgPSAoVmlldykgdmlld1BhcmVudDsKLSAgICAgICAgICAgIHZpZXdQYXJlbnQgPSB2aWV3UGFyZW50LmdldFBhcmVudCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCEodmlld1BhcmVudCBpbnN0YW5jZW9mIFZpZXcpKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmb2N1c2VkVmlldzsKLSAgICB9Ci0KLSAgICAvKioKICAgICAgKiBPYnRhaW4gdGhlIHZpZXcgYW5kIGFkZCBpdCB0byBvdXIgbGlzdCBvZiBjaGlsZHJlbi4gVGhlIHZpZXcgY2FuIGJlIG1hZGUKICAgICAgKiBmcmVzaCwgY29udmVydGVkIGZyb20gYW4gdW51c2VkIHZpZXcsIG9yIHVzZWQgYXMgaXMgaWYgaXQgd2FzIGluIHRoZQogICAgICAqIHJlY3ljbGUgYmluLgpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L011bHRpQXV0b0NvbXBsZXRlVGV4dFZpZXcuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9NdWx0aUF1dG9Db21wbGV0ZVRleHRWaWV3LmphdmEKaW5kZXggMGIzMGM4NC4uY2JkMDFiMCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L011bHRpQXV0b0NvbXBsZXRlVGV4dFZpZXcuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvTXVsdGlBdXRvQ29tcGxldGVUZXh0Vmlldy5qYXZhCkBAIC02Nyw4ICs2NywxMyBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIuYXV0b0NvbXBsZXRlVGV4dFZpZXdTdHlsZSk7CiAgICAgfQogCi0gICAgcHVibGljIE11bHRpQXV0b0NvbXBsZXRlVGV4dFZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgIHB1YmxpYyBNdWx0aUF1dG9Db21wbGV0ZVRleHRWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIE11bHRpQXV0b0NvbXBsZXRlVGV4dFZpZXcoCisgICAgICAgICAgICBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICB9CiAKICAgICAvKiBwYWNrYWdlICovIHZvaWQgZmluaXNoSW5pdCgpIHsgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L051bWJlclBpY2tlci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L051bWJlclBpY2tlci5qYXZhCmluZGV4IGMwZmRlMmUuLjQ0YzQ5ODcgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9OdW1iZXJQaWNrZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvTnVtYmVyUGlja2VyLmphdmEKQEAgLTE2LDYgKzE2LDcgQEAKIAogcGFja2FnZSBhbmRyb2lkLndpZGdldDsKIAoraW1wb3J0IGFuZHJvaWQuYW5ub3RhdGlvbi5JbnREZWY7CiBpbXBvcnQgYW5kcm9pZC5hbm5vdGF0aW9uLldpZGdldDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLkNvbG9yU3RhdGVMaXN0OwpAQCAtNTMsNiArNTQsOCBAQAogaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLlI7CiBpbXBvcnQgbGliY29yZS5pY3UuTG9jYWxlRGF0YTsKIAoraW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb25Qb2xpY3k7CiBpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKIGltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CiBpbXBvcnQgamF2YS51dGlsLkxpc3Q7CkBAIC00OTMsNiArNDk2LDEwIEBACiAgICAgICogSW50ZXJmYWNlIHRvIGxpc3RlbiBmb3IgdGhlIHBpY2tlciBzY3JvbGwgc3RhdGUuCiAgICAgICovCiAgICAgcHVibGljIGludGVyZmFjZSBPblNjcm9sbExpc3RlbmVyIHsKKyAgICAgICAgLyoqIEBoaWRlICovCisgICAgICAgIEBJbnREZWYoe1NDUk9MTF9TVEFURV9JRExFLCBTQ1JPTExfU1RBVEVfVE9VQ0hfU0NST0xMLCBTQ1JPTExfU1RBVEVfRkxJTkd9KQorICAgICAgICBAUmV0ZW50aW9uKFJldGVudGlvblBvbGljeS5TT1VSQ0UpCisgICAgICAgIHB1YmxpYyBAaW50ZXJmYWNlIFNjcm9sbFN0YXRlIHt9CiAKICAgICAgICAgLyoqCiAgICAgICAgICAqIFRoZSB2aWV3IGlzIG5vdCBzY3JvbGxpbmcuCkBAIC01MTgsNyArNTI1LDcgQEAKICAgICAgICAgICogICAgICAgICAgICB7QGxpbmsgI1NDUk9MTF9TVEFURV9UT1VDSF9TQ1JPTEx9IG9yCiAgICAgICAgICAqICAgICAgICAgICAge0BsaW5rICNTQ1JPTExfU1RBVEVfSURMRX0uCiAgICAgICAgICAqLwotICAgICAgICBwdWJsaWMgdm9pZCBvblNjcm9sbFN0YXRlQ2hhbmdlKE51bWJlclBpY2tlciB2aWV3LCBpbnQgc2Nyb2xsU3RhdGUpOworICAgICAgICBwdWJsaWMgdm9pZCBvblNjcm9sbFN0YXRlQ2hhbmdlKE51bWJlclBpY2tlciB2aWV3LCBAU2Nyb2xsU3RhdGUgaW50IHNjcm9sbFN0YXRlKTsKICAgICB9CiAKICAgICAvKioKQEAgLTU1OSwxNCArNTY2LDMzIEBACiAgICAgICoKICAgICAgKiBAcGFyYW0gY29udGV4dCB0aGUgYXBwbGljYXRpb24gZW52aXJvbm1lbnQuCiAgICAgICogQHBhcmFtIGF0dHJzIGEgY29sbGVjdGlvbiBvZiBhdHRyaWJ1dGVzLgotICAgICAqIEBwYXJhbSBkZWZTdHlsZSBUaGUgZGVmYXVsdCBzdHlsZSB0byBhcHBseSB0byB0aGlzIHZpZXcuCisgICAgICogQHBhcmFtIGRlZlN0eWxlQXR0ciBBbiBhdHRyaWJ1dGUgaW4gdGhlIGN1cnJlbnQgdGhlbWUgdGhhdCBjb250YWlucyBhCisgICAgICogICAgICAgIHJlZmVyZW5jZSB0byBhIHN0eWxlIHJlc291cmNlIHRoYXQgc3VwcGxpZXMgZGVmYXVsdCB2YWx1ZXMgZm9yCisgICAgICogICAgICAgIHRoZSB2aWV3LiBDYW4gYmUgMCB0byBub3QgbG9vayBmb3IgZGVmYXVsdHMuCiAgICAgICovCi0gICAgcHVibGljIE51bWJlclBpY2tlcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIE51bWJlclBpY2tlcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBudW1iZXIgcGlja2VyCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29udGV4dCB0aGUgYXBwbGljYXRpb24gZW52aXJvbm1lbnQuCisgICAgICogQHBhcmFtIGF0dHJzIGEgY29sbGVjdGlvbiBvZiBhdHRyaWJ1dGVzLgorICAgICAqIEBwYXJhbSBkZWZTdHlsZUF0dHIgQW4gYXR0cmlidXRlIGluIHRoZSBjdXJyZW50IHRoZW1lIHRoYXQgY29udGFpbnMgYQorICAgICAqICAgICAgICByZWZlcmVuY2UgdG8gYSBzdHlsZSByZXNvdXJjZSB0aGF0IHN1cHBsaWVzIGRlZmF1bHQgdmFsdWVzIGZvcgorICAgICAqICAgICAgICB0aGUgdmlldy4gQ2FuIGJlIDAgdG8gbm90IGxvb2sgZm9yIGRlZmF1bHRzLgorICAgICAqIEBwYXJhbSBkZWZTdHlsZVJlcyBBIHJlc291cmNlIGlkZW50aWZpZXIgb2YgYSBzdHlsZSByZXNvdXJjZSB0aGF0CisgICAgICogICAgICAgIHN1cHBsaWVzIGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgdmlldywgdXNlZCBvbmx5IGlmCisgICAgICogICAgICAgIGRlZlN0eWxlQXR0ciBpcyAwIG9yIGNhbiBub3QgYmUgZm91bmQgaW4gdGhlIHRoZW1lLiBDYW4gYmUgMAorICAgICAqICAgICAgICB0byBub3QgbG9vayBmb3IgZGVmYXVsdHMuCisgICAgICovCisgICAgcHVibGljIE51bWJlclBpY2tlcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICAvLyBwcm9jZXNzIHN0eWxlIGF0dHJpYnV0ZXMKLSAgICAgICAgVHlwZWRBcnJheSBhdHRyaWJ1dGVzQXJyYXkgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCi0gICAgICAgICAgICAgICAgYXR0cnMsIFIuc3R5bGVhYmxlLk51bWJlclBpY2tlciwgZGVmU3R5bGUsIDApOworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGF0dHJpYnV0ZXNBcnJheSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgUi5zdHlsZWFibGUuTnVtYmVyUGlja2VyLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgZmluYWwgaW50IGxheW91dFJlc0lkID0gYXR0cmlidXRlc0FycmF5LmdldFJlc291cmNlSWQoCiAgICAgICAgICAgICAgICAgUi5zdHlsZWFibGUuTnVtYmVyUGlja2VyX2ludGVybmFsTGF5b3V0LCBERUZBVUxUX0xBWU9VVF9SRVNPVVJDRV9JRCk7CiAKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9PdmVyU2Nyb2xsZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9PdmVyU2Nyb2xsZXIuamF2YQppbmRleCBmMjE4MTk5Li43YjNkZDMxIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvT3ZlclNjcm9sbGVyLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L092ZXJTY3JvbGxlci5qYXZhCkBAIC03MCw3ICs3MCwxMSBAQAogICAgICAqIEBoaWRlCiAgICAgICovCiAgICAgcHVibGljIE92ZXJTY3JvbGxlcihDb250ZXh0IGNvbnRleHQsIEludGVycG9sYXRvciBpbnRlcnBvbGF0b3IsIGJvb2xlYW4gZmx5d2hlZWwpIHsKLSAgICAgICAgbUludGVycG9sYXRvciA9IGludGVycG9sYXRvcjsKKyAgICAgICAgaWYgKGludGVycG9sYXRvciA9PSBudWxsKSB7CisgICAgICAgICAgICBtSW50ZXJwb2xhdG9yID0gbmV3IFNjcm9sbGVyLlZpc2NvdXNGbHVpZEludGVycG9sYXRvcigpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUludGVycG9sYXRvciA9IGludGVycG9sYXRvcjsKKyAgICAgICAgfQogICAgICAgICBtRmx5d2hlZWwgPSBmbHl3aGVlbDsKICAgICAgICAgbVNjcm9sbGVyWCA9IG5ldyBTcGxpbmVPdmVyU2Nyb2xsZXIoY29udGV4dCk7CiAgICAgICAgIG1TY3JvbGxlclkgPSBuZXcgU3BsaW5lT3ZlclNjcm9sbGVyKGNvbnRleHQpOwpAQCAtMTEyLDcgKzExNiwxMSBAQAogICAgIH0KIAogICAgIHZvaWQgc2V0SW50ZXJwb2xhdG9yKEludGVycG9sYXRvciBpbnRlcnBvbGF0b3IpIHsKLSAgICAgICAgbUludGVycG9sYXRvciA9IGludGVycG9sYXRvcjsKKyAgICAgICAgaWYgKGludGVycG9sYXRvciA9PSBudWxsKSB7CisgICAgICAgICAgICBtSW50ZXJwb2xhdG9yID0gbmV3IFNjcm9sbGVyLlZpc2NvdXNGbHVpZEludGVycG9sYXRvcigpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUludGVycG9sYXRvciA9IGludGVycG9sYXRvcjsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8qKgpAQCAtMzAyLDE0ICszMTAsNyBAQAogCiAgICAgICAgICAgICAgICAgZmluYWwgaW50IGR1cmF0aW9uID0gbVNjcm9sbGVyWC5tRHVyYXRpb247CiAgICAgICAgICAgICAgICAgaWYgKGVsYXBzZWRUaW1lIDwgZHVyYXRpb24pIHsKLSAgICAgICAgICAgICAgICAgICAgZmxvYXQgcSA9IChmbG9hdCkgKGVsYXBzZWRUaW1lKSAvIGR1cmF0aW9uOwotCi0gICAgICAgICAgICAgICAgICAgIGlmIChtSW50ZXJwb2xhdG9yID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHEgPSBTY3JvbGxlci52aXNjb3VzRmx1aWQocSk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBxID0gbUludGVycG9sYXRvci5nZXRJbnRlcnBvbGF0aW9uKHEpOwotICAgICAgICAgICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgICAgICAgICAgZmluYWwgZmxvYXQgcSA9IG1JbnRlcnBvbGF0b3IuZ2V0SW50ZXJwb2xhdGlvbihlbGFwc2VkVGltZSAvIChmbG9hdCkgZHVyYXRpb24pOwogICAgICAgICAgICAgICAgICAgICBtU2Nyb2xsZXJYLnVwZGF0ZVNjcm9sbChxKTsKICAgICAgICAgICAgICAgICAgICAgbVNjcm9sbGVyWS51cGRhdGVTY3JvbGwocSk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9Qb3B1cFdpbmRvdy5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1BvcHVwV2luZG93LmphdmEKaW5kZXggNTY2Mzk1OS4uZTc3YTgxMCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1BvcHVwV2luZG93LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1BvcHVwV2luZG93LmphdmEKQEAgLTE3MCw4ICsxNzAsOCBAQAogICAgICAqCiAgICAgICogPHA+VGhlIHBvcHVwIGRvZXMgcHJvdmlkZSBhIGJhY2tncm91bmQuPC9wPgogICAgICAqLwotICAgIHB1YmxpYyBQb3B1cFdpbmRvdyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlLCAwKTsKKyAgICBwdWJsaWMgUG9wdXBXaW5kb3coQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKICAgICB9CiAgICAgCiAgICAgLyoqCkBAIC0xODMsOCArMTgzLDcgQEAKICAgICAgICAgbUNvbnRleHQgPSBjb250ZXh0OwogICAgICAgICBtV2luZG93TWFuYWdlciA9IChXaW5kb3dNYW5hZ2VyKWNvbnRleHQuZ2V0U3lzdGVtU2VydmljZShDb250ZXh0LldJTkRPV19TRVJWSUNFKTsKIAotICAgICAgICBUeXBlZEFycmF5IGEgPQotICAgICAgICAgICAgY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCiAgICAgICAgICAgICAgICAgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlBvcHVwV2luZG93LCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICBtQmFja2dyb3VuZCA9IGEuZ2V0RHJhd2FibGUoUi5zdHlsZWFibGUuUG9wdXBXaW5kb3dfcG9wdXBCYWNrZ3JvdW5kKTsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9Qcm9ncmVzc0Jhci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1Byb2dyZXNzQmFyLmphdmEKaW5kZXggNTM5MmE5Ni4uMWZiY2JjZiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1Byb2dyZXNzQmFyLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1Byb2dyZXNzQmFyLmphdmEKQEAgLTI0MiwyOSArMjQyLDI2IEBACiAgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci5wcm9ncmVzc0JhclN0eWxlKTsKICAgICB9CiAKLSAgICBwdWJsaWMgUHJvZ3Jlc3NCYXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSwgMCk7CisgICAgcHVibGljIFByb2dyZXNzQmFyKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CiAgICAgfQogCi0gICAgLyoqCi0gICAgICogQGhpZGUKLSAgICAgKi8KLSAgICBwdWJsaWMgUHJvZ3Jlc3NCYXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSwgaW50IHN0eWxlUmVzKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIFByb2dyZXNzQmFyKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworCiAgICAgICAgIG1VaVRocmVhZElkID0gVGhyZWFkLmN1cnJlbnRUaHJlYWQoKS5nZXRJZCgpOwogICAgICAgICBpbml0UHJvZ3Jlc3NCYXIoKTsKIAotICAgICAgICBUeXBlZEFycmF5IGEgPQotICAgICAgICAgICAgY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLCBSLnN0eWxlYWJsZS5Qcm9ncmVzc0JhciwgZGVmU3R5bGUsIHN0eWxlUmVzKTsKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBSLnN0eWxlYWJsZS5Qcm9ncmVzc0JhciwgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIAogICAgICAgICBtTm9JbnZhbGlkYXRlID0gdHJ1ZTsKICAgICAgICAgCiAgICAgICAgIERyYXdhYmxlIGRyYXdhYmxlID0gYS5nZXREcmF3YWJsZShSLnN0eWxlYWJsZS5Qcm9ncmVzc0Jhcl9wcm9ncmVzc0RyYXdhYmxlKTsKICAgICAgICAgaWYgKGRyYXdhYmxlICE9IG51bGwpIHsKLSAgICAgICAgICAgIGRyYXdhYmxlID0gdGlsZWlmeShkcmF3YWJsZSwgZmFsc2UpOwogICAgICAgICAgICAgLy8gQ2FsbGluZyB0aGlzIG1ldGhvZCBjYW4gc2V0IG1NYXhIZWlnaHQsIG1ha2Ugc3VyZSB0aGUgY29ycmVzcG9uZGluZwogICAgICAgICAgICAgLy8gWE1MIGF0dHJpYnV0ZSBmb3IgbU1heEhlaWdodCBpcyByZWFkIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QKLSAgICAgICAgICAgIHNldFByb2dyZXNzRHJhd2FibGUoZHJhd2FibGUpOworICAgICAgICAgICAgc2V0UHJvZ3Jlc3NEcmF3YWJsZVRpbGVkKGRyYXdhYmxlKTsKICAgICAgICAgfQogCiAKQEAgLTI5Myw4ICsyOTAsNyBAQAogCiAgICAgICAgIGRyYXdhYmxlID0gYS5nZXREcmF3YWJsZShSLnN0eWxlYWJsZS5Qcm9ncmVzc0Jhcl9pbmRldGVybWluYXRlRHJhd2FibGUpOwogICAgICAgICBpZiAoZHJhd2FibGUgIT0gbnVsbCkgewotICAgICAgICAgICAgZHJhd2FibGUgPSB0aWxlaWZ5SW5kZXRlcm1pbmF0ZShkcmF3YWJsZSk7Ci0gICAgICAgICAgICBzZXRJbmRldGVybWluYXRlRHJhd2FibGUoZHJhd2FibGUpOworICAgICAgICAgICAgc2V0SW5kZXRlcm1pbmF0ZURyYXdhYmxlVGlsZWQoZHJhd2FibGUpOwogICAgICAgICB9CiAKICAgICAgICAgbU9ubHlJbmRldGVybWluYXRlID0gYS5nZXRCb29sZWFuKApAQCAtNDY3LDExICs0NjMsOSBAQAogICAgIH0KIAogICAgIC8qKgotICAgICAqIDxwPkRlZmluZSB0aGUgZHJhd2FibGUgdXNlZCB0byBkcmF3IHRoZSBwcm9ncmVzcyBiYXIgaW4KLSAgICAgKiBpbmRldGVybWluYXRlIG1vZGUuPC9wPgorICAgICAqIERlZmluZSB0aGUgZHJhd2FibGUgdXNlZCB0byBkcmF3IHRoZSBwcm9ncmVzcyBiYXIgaW4gaW5kZXRlcm1pbmF0ZSBtb2RlLgogICAgICAqCiAgICAgICogQHBhcmFtIGQgdGhlIG5ldyBkcmF3YWJsZQotICAgICAqCiAgICAgICogQHNlZSAjZ2V0SW5kZXRlcm1pbmF0ZURyYXdhYmxlKCkKICAgICAgKiBAc2VlICNzZXRJbmRldGVybWluYXRlKGJvb2xlYW4pCiAgICAgICovCkBAIC00ODgsNiArNDgyLDI1IEBACiAgICAgICAgICAgICBwb3N0SW52YWxpZGF0ZSgpOwogICAgICAgICB9CiAgICAgfQorCisgICAgLyoqCisgICAgICogRGVmaW5lIHRoZSB0aWxlYWJsZSBkcmF3YWJsZSB1c2VkIHRvIGRyYXcgdGhlIHByb2dyZXNzIGJhciBpbgorICAgICAqIGluZGV0ZXJtaW5hdGUgbW9kZS4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiB0aGUgZHJhd2FibGUgaXMgYSBCaXRtYXBEcmF3YWJsZSBvciBjb250YWlucyBCaXRtYXBEcmF3YWJsZXMsIGEKKyAgICAgKiB0aWxlZCBjb3B5IHdpbGwgYmUgZ2VuZXJhdGVkIGZvciBkaXNwbGF5IGFzIGEgcHJvZ3Jlc3MgYmFyLgorICAgICAqCisgICAgICogQHBhcmFtIGQgdGhlIG5ldyBkcmF3YWJsZQorICAgICAqIEBzZWUgI2dldEluZGV0ZXJtaW5hdGVEcmF3YWJsZSgpCisgICAgICogQHNlZSAjc2V0SW5kZXRlcm1pbmF0ZShib29sZWFuKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZGV0ZXJtaW5hdGVEcmF3YWJsZVRpbGVkKERyYXdhYmxlIGQpIHsKKyAgICAgICAgaWYgKGQgIT0gbnVsbCkgeworICAgICAgICAgICAgZCA9IHRpbGVpZnlJbmRldGVybWluYXRlKGQpOworICAgICAgICB9CisKKyAgICAgICAgc2V0SW5kZXRlcm1pbmF0ZURyYXdhYmxlKGQpOworICAgIH0KICAgICAKICAgICAvKioKICAgICAgKiA8cD5HZXQgdGhlIGRyYXdhYmxlIHVzZWQgdG8gZHJhdyB0aGUgcHJvZ3Jlc3MgYmFyIGluCkBAIC01MDMsMTEgKzUxNiw5IEBACiAgICAgfQogCiAgICAgLyoqCi0gICAgICogPHA+RGVmaW5lIHRoZSBkcmF3YWJsZSB1c2VkIHRvIGRyYXcgdGhlIHByb2dyZXNzIGJhciBpbgotICAgICAqIHByb2dyZXNzIG1vZGUuPC9wPgorICAgICAqIERlZmluZSB0aGUgZHJhd2FibGUgdXNlZCB0byBkcmF3IHRoZSBwcm9ncmVzcyBiYXIgaW4gcHJvZ3Jlc3MgbW9kZS4KICAgICAgKgogICAgICAqIEBwYXJhbSBkIHRoZSBuZXcgZHJhd2FibGUKLSAgICAgKgogICAgICAqIEBzZWUgI2dldFByb2dyZXNzRHJhd2FibGUoKQogICAgICAqIEBzZWUgI3NldEluZGV0ZXJtaW5hdGUoYm9vbGVhbikKICAgICAgKi8KQEAgLTU0Niw2ICs1NTcsMjUgQEAKICAgICAgICAgICAgIGRvUmVmcmVzaFByb2dyZXNzKFIuaWQuc2Vjb25kYXJ5UHJvZ3Jlc3MsIG1TZWNvbmRhcnlQcm9ncmVzcywgZmFsc2UsIGZhbHNlKTsKICAgICAgICAgfQogICAgIH0KKworICAgIC8qKgorICAgICAqIERlZmluZSB0aGUgdGlsZWFibGUgZHJhd2FibGUgdXNlZCB0byBkcmF3IHRoZSBwcm9ncmVzcyBiYXIgaW4KKyAgICAgKiBwcm9ncmVzcyBtb2RlLgorICAgICAqIDxwPgorICAgICAqIElmIHRoZSBkcmF3YWJsZSBpcyBhIEJpdG1hcERyYXdhYmxlIG9yIGNvbnRhaW5zIEJpdG1hcERyYXdhYmxlcywgYQorICAgICAqIHRpbGVkIGNvcHkgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yIGRpc3BsYXkgYXMgYSBwcm9ncmVzcyBiYXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZCB0aGUgbmV3IGRyYXdhYmxlCisgICAgICogQHNlZSAjZ2V0UHJvZ3Jlc3NEcmF3YWJsZSgpCisgICAgICogQHNlZSAjc2V0SW5kZXRlcm1pbmF0ZShib29sZWFuKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFByb2dyZXNzRHJhd2FibGVUaWxlZChEcmF3YWJsZSBkKSB7CisgICAgICAgIGlmIChkICE9IG51bGwpIHsKKyAgICAgICAgICAgIGQgPSB0aWxlaWZ5KGQsIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHNldFByb2dyZXNzRHJhd2FibGUoZCk7CisgICAgfQogICAgIAogICAgIC8qKgogICAgICAqIEByZXR1cm4gVGhlIGRyYXdhYmxlIGN1cnJlbnRseSB1c2VkIHRvIGRyYXcgdGhlIHByb2dyZXNzIGJhcgpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1F1aWNrQ29udGFjdEJhZGdlLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvUXVpY2tDb250YWN0QmFkZ2UuamF2YQppbmRleCBmZDJmNzU0Li5hNGY3NThjIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvUXVpY2tDb250YWN0QmFkZ2UuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvUXVpY2tDb250YWN0QmFkZ2UuamF2YQpAQCAtODQsOCArODQsMTMgQEAKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgMCk7CiAgICAgfQogCi0gICAgcHVibGljIFF1aWNrQ29udGFjdEJhZGdlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgUXVpY2tDb250YWN0QmFkZ2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgUXVpY2tDb250YWN0QmFkZ2UoCisgICAgICAgICAgICBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICBUeXBlZEFycmF5IHN0eWxlZEF0dHJpYnV0ZXMgPSBtQ29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKFIuc3R5bGVhYmxlLlRoZW1lKTsKICAgICAgICAgbU92ZXJsYXkgPSBzdHlsZWRBdHRyaWJ1dGVzLmdldERyYXdhYmxlKApkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1JhZGlhbFRpbWVQaWNrZXJWaWV3LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvUmFkaWFsVGltZVBpY2tlclZpZXcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzlhYjYxCi0tLSAvZGV2L251bGwKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1JhZGlhbFRpbWVQaWNrZXJWaWV3LmphdmEKQEAgLTAsMCArMSwxMzk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLndpZGdldDsKKworaW1wb3J0IGFuZHJvaWQuYW5pbWF0aW9uLkFuaW1hdG9yOworaW1wb3J0IGFuZHJvaWQuYW5pbWF0aW9uLkFuaW1hdG9yU2V0OworaW1wb3J0IGFuZHJvaWQuYW5pbWF0aW9uLktleWZyYW1lOworaW1wb3J0IGFuZHJvaWQuYW5pbWF0aW9uLk9iamVjdEFuaW1hdG9yOworaW1wb3J0IGFuZHJvaWQuYW5pbWF0aW9uLlByb3BlcnR5VmFsdWVzSG9sZGVyOworaW1wb3J0IGFuZHJvaWQuYW5pbWF0aW9uLlZhbHVlQW5pbWF0b3I7CitpbXBvcnQgYW5kcm9pZC5hbm5vdGF0aW9uLlN1cHByZXNzTGludDsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLlJlc291cmNlczsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLlR5cGVkQXJyYXk7CitpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5DYW52YXM7CitpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5Db2xvcjsKK2ltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlBhaW50OworaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuVHlwZWZhY2U7CitpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5SZWN0RjsKK2ltcG9ydCBhbmRyb2lkLm9zLkJ1bmRsZTsKK2ltcG9ydCBhbmRyb2lkLnRleHQuZm9ybWF0LkRhdGVVdGlsczsKK2ltcG9ydCBhbmRyb2lkLnRleHQuZm9ybWF0LlRpbWU7CitpbXBvcnQgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldDsKK2ltcG9ydCBhbmRyb2lkLnV0aWwuTG9nOworaW1wb3J0IGFuZHJvaWQudmlldy5IYXB0aWNGZWVkYmFja0NvbnN0YW50czsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuTW90aW9uRXZlbnQ7CitpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXc7CitpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cDsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuYWNjZXNzaWJpbGl0eS5BY2Nlc3NpYmlsaXR5RXZlbnQ7CitpbXBvcnQgYW5kcm9pZC52aWV3LmFjY2Vzc2liaWxpdHkuQWNjZXNzaWJpbGl0eU5vZGVJbmZvOworaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLlI7CisKK2ltcG9ydCBqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBWaWV3IHRvIHNob3cgYSBjbG9jayBjaXJjbGUgcGlja2VyICh3aXRoIG9uZSBvciB0d28gcGlja2luZyBjaXJjbGVzKQorICoKKyAqIEBoaWRlCisgKi8KK3B1YmxpYyBjbGFzcyBSYWRpYWxUaW1lUGlja2VyVmlldyBleHRlbmRzIFZpZXcgaW1wbGVtZW50cyBWaWV3Lk9uVG91Y2hMaXN0ZW5lciB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRBRyA9ICJDbG9ja1ZpZXciOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFQlVHX0NPTE9SID0gMHgyMEZGMDAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVCVUdfVEVYVF9DT0xPUiA9IDB4NjBGRjAwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFQlVHX1NUUk9LRV9XSURUSCA9IDI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSE9VUlMgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNSU5VVEVTID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSE9VUlNfSU5ORVIgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBTVBNID0gMzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRUxFQ1RPUl9DSVJDTEUgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRUxFQ1RPUl9ET1QgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRUxFQ1RPUl9MSU5FID0gMjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBTSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFBNID0gMTsKKworICAgIC8vIE9wYXF1ZSBhbHBoYSBsZXZlbAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBTFBIQV9PUEFRVUUgPSAyNTU7CisKKyAgICAvLyBUcmFuc3BhcmVudCBhbHBoYSBsZXZlbAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBTFBIQV9UUkFOU1BBUkVOVCA9IDA7CisKKyAgICAvLyBBbHBoYSBsZXZlbCBvZiBjb2xvciBmb3Igc2VsZWN0b3IuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFMUEhBX1NFTEVDVE9SID0gNTE7CisKKyAgICAvLyBBbHBoYSBsZXZlbCBvZiBjb2xvciBmb3Igc2VsZWN0ZWQgY2lyY2xlLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBTFBIQV9BTVBNX1NFTEVDVEVEID0gQUxQSEFfU0VMRUNUT1I7CisKKyAgICAvLyBBbHBoYSBsZXZlbCBvZiBjb2xvciBmb3IgcHJlc3NlZCBjaXJjbGUuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFMUEhBX0FNUE1fUFJFU1NFRCA9IDE3NTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGZsb2F0IENPU0lORV8zMF9ERUdSRUVTID0gKChmbG9hdCkgTWF0aC5zcXJ0KDMpKSAqIDAuNWY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZmxvYXQgU0lORV8zMF9ERUdSRUVTID0gMC41ZjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUdSRUVTX0ZPUl9PTkVfSE9VUiA9IDMwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUdSRUVTX0ZPUl9PTkVfTUlOVVRFID0gNjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIEhPVVJTX05VTUJFUlMgPSB7MTIsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMX07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gSE9VUlNfTlVNQkVSU18yNCA9IHswLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjN9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIE1JTlVURVNfTlVNQkVSUyA9IHswLCA1LCAxMCwgMTUsIDIwLCAyNSwgMzAsIDM1LCA0MCwgNDUsIDUwLCA1NX07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VOVEVSX1JBRElVUyA9IDI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBzU25hcFByZWZlcjMwc01hcCA9IG5ldyBpbnRbMzYxXTsKKworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nW10gbUhvdXJzMTJUZXh0cyA9IG5ldyBTdHJpbmdbMTJdOworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nW10gbU91dGVySG91cnMyNFRleHRzID0gbmV3IFN0cmluZ1sxMl07CisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdbXSBtSW5uZXJIb3VyczI0VGV4dHMgPSBuZXcgU3RyaW5nWzEyXTsKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZ1tdIG1NaW51dGVzVGV4dHMgPSBuZXcgU3RyaW5nWzEyXTsKKworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nW10gbUFtUG1UZXh0ID0gbmV3IFN0cmluZ1syXTsKKworICAgIHByaXZhdGUgZmluYWwgUGFpbnRbXSBtUGFpbnQgPSBuZXcgUGFpbnRbMl07CisgICAgcHJpdmF0ZSBmaW5hbCBQYWludCBtUGFpbnRDZW50ZXIgPSBuZXcgUGFpbnQoKTsKKyAgICBwcml2YXRlIGZpbmFsIFBhaW50W11bXSBtUGFpbnRTZWxlY3RvciA9IG5ldyBQYWludFsyXVszXTsKKyAgICBwcml2YXRlIGZpbmFsIFBhaW50IG1QYWludEFtUG1UZXh0ID0gbmV3IFBhaW50KCk7CisgICAgcHJpdmF0ZSBmaW5hbCBQYWludFtdIG1QYWludEFtUG1DaXJjbGUgPSBuZXcgUGFpbnRbMl07CisKKyAgICBwcml2YXRlIGZpbmFsIFBhaW50IG1QYWludEJhY2tncm91bmQgPSBuZXcgUGFpbnQoKTsKKyAgICBwcml2YXRlIGZpbmFsIFBhaW50IG1QYWludERpc2FibGVkID0gbmV3IFBhaW50KCk7CisgICAgcHJpdmF0ZSBmaW5hbCBQYWludCBtUGFpbnREZWJ1ZyA9IG5ldyBQYWludCgpOworCisgICAgcHJpdmF0ZSBUeXBlZmFjZSBtVHlwZWZhY2U7CisKKyAgICBwcml2YXRlIGJvb2xlYW4gbUlzMjRIb3VyTW9kZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gbVNob3dIb3VyczsKKyAgICBwcml2YXRlIGJvb2xlYW4gbUlzT25Jbm5lckNpcmNsZTsKKworICAgIHByaXZhdGUgaW50IG1YQ2VudGVyOworICAgIHByaXZhdGUgaW50IG1ZQ2VudGVyOworCisgICAgcHJpdmF0ZSBmbG9hdFtdIG1DaXJjbGVSYWRpdXMgPSBuZXcgZmxvYXRbM107CisKKyAgICBwcml2YXRlIGludCBtTWluSHlwb3RlbnVzZUZvcklubmVyTnVtYmVyOworICAgIHByaXZhdGUgaW50IG1NYXhIeXBvdGVudXNlRm9yT3V0ZXJOdW1iZXI7CisgICAgcHJpdmF0ZSBpbnQgbUhhbGZ3YXlIeXBvdGVudXNlUG9pbnQ7CisKKyAgICBwcml2YXRlIGZsb2F0W10gbVRleHRTaXplID0gbmV3IGZsb2F0WzJdOworICAgIHByaXZhdGUgZmxvYXQgbUlubmVyVGV4dFNpemU7CisKKyAgICBwcml2YXRlIGZsb2F0W11bXSBtVGV4dEdyaWRIZWlnaHRzID0gbmV3IGZsb2F0WzJdWzddOworICAgIHByaXZhdGUgZmxvYXRbXVtdIG1UZXh0R3JpZFdpZHRocyA9IG5ldyBmbG9hdFsyXVs3XTsKKworICAgIHByaXZhdGUgZmxvYXRbXSBtSW5uZXJUZXh0R3JpZEhlaWdodHMgPSBuZXcgZmxvYXRbN107CisgICAgcHJpdmF0ZSBmbG9hdFtdIG1Jbm5lclRleHRHcmlkV2lkdGhzID0gbmV3IGZsb2F0WzddOworCisgICAgcHJpdmF0ZSBTdHJpbmdbXSBtT3V0ZXJUZXh0SG91cnM7CisgICAgcHJpdmF0ZSBTdHJpbmdbXSBtSW5uZXJUZXh0SG91cnM7CisgICAgcHJpdmF0ZSBTdHJpbmdbXSBtT3V0ZXJUZXh0TWludXRlczsKKworICAgIHByaXZhdGUgZmxvYXRbXSBtQ2lyY2xlUmFkaXVzTXVsdGlwbGllciA9IG5ldyBmbG9hdFsyXTsKKyAgICBwcml2YXRlIGZsb2F0W10gbU51bWJlcnNSYWRpdXNNdWx0aXBsaWVyID0gbmV3IGZsb2F0WzNdOworCisgICAgcHJpdmF0ZSBmbG9hdFtdIG1UZXh0U2l6ZU11bHRpcGxpZXIgPSBuZXcgZmxvYXRbM107CisKKyAgICBwcml2YXRlIGZsb2F0W10gbUFuaW1hdGlvblJhZGl1c011bHRpcGxpZXIgPSBuZXcgZmxvYXRbM107CisKKyAgICBwcml2YXRlIGZsb2F0IG1UcmFuc2l0aW9uTWlkUmFkaXVzTXVsdGlwbGllcjsKKyAgICBwcml2YXRlIGZsb2F0IG1UcmFuc2l0aW9uRW5kUmFkaXVzTXVsdGlwbGllcjsKKworICAgIHByaXZhdGUgQW5pbWF0b3JTZXQgbVRyYW5zaXRpb247CisgICAgcHJpdmF0ZSBJbnZhbGlkYXRlVXBkYXRlTGlzdGVuZXIgbUludmFsaWRhdGVVcGRhdGVMaXN0ZW5lciA9IG5ldyBJbnZhbGlkYXRlVXBkYXRlTGlzdGVuZXIoKTsKKworICAgIHByaXZhdGUgaW50W10gbUxpbmVMZW5ndGggPSBuZXcgaW50WzNdOworICAgIHByaXZhdGUgaW50W10gbVNlbGVjdGlvblJhZGl1cyA9IG5ldyBpbnRbM107CisgICAgcHJpdmF0ZSBmbG9hdCBtU2VsZWN0aW9uUmFkaXVzTXVsdGlwbGllcjsKKyAgICBwcml2YXRlIGludFtdIG1TZWxlY3Rpb25EZWdyZWVzID0gbmV3IGludFszXTsKKworICAgIHByaXZhdGUgaW50IG1BbVBtQ2lyY2xlUmFkaXVzOworICAgIHByaXZhdGUgZmxvYXQgbUFtUG1ZQ2VudGVyOworCisgICAgcHJpdmF0ZSBmbG9hdCBtQW1QbUNpcmNsZVJhZGl1c011bHRpcGxpZXI7CisgICAgcHJpdmF0ZSBpbnQgbUFtUG1UZXh0Q29sb3I7CisKKyAgICBwcml2YXRlIGZsb2F0IG1MZWZ0SW5kaWNhdG9yWENlbnRlcjsKKyAgICBwcml2YXRlIGZsb2F0IG1SaWdodEluZGljYXRvclhDZW50ZXI7CisKKyAgICBwcml2YXRlIGludCBtQW1QbVVuc2VsZWN0ZWRDb2xvcjsKKyAgICBwcml2YXRlIGludCBtQW1QbVNlbGVjdGVkQ29sb3I7CisKKyAgICBwcml2YXRlIGludCBtQW1PclBtOworICAgIHByaXZhdGUgaW50IG1BbU9yUG1QcmVzc2VkOworCisgICAgcHJpdmF0ZSBSZWN0RiBtUmVjdEYgPSBuZXcgUmVjdEYoKTsKKyAgICBwcml2YXRlIGJvb2xlYW4gbUlucHV0RW5hYmxlZCA9IHRydWU7CisgICAgcHJpdmF0ZSBPblZhbHVlU2VsZWN0ZWRMaXN0ZW5lciBtTGlzdGVuZXI7CisKKyAgICBwcml2YXRlIGZpbmFsIEFycmF5TGlzdDxBbmltYXRvcj4gbUhvdXJzVG9NaW51dGVzQW5pbXMgPSBuZXcgQXJyYXlMaXN0PEFuaW1hdG9yPigpOworICAgIHByaXZhdGUgZmluYWwgQXJyYXlMaXN0PEFuaW1hdG9yPiBtTWludXRlVG9Ib3Vyc0FuaW1zID0gbmV3IEFycmF5TGlzdDxBbmltYXRvcj4oKTsKKworICAgIHB1YmxpYyBpbnRlcmZhY2UgT25WYWx1ZVNlbGVjdGVkTGlzdGVuZXIgeworICAgICAgICB2b2lkIG9uVmFsdWVTZWxlY3RlZChpbnQgcGlja2VySW5kZXgsIGludCBuZXdWYWx1ZSwgYm9vbGVhbiBhdXRvQWR2YW5jZSk7CisgICAgfQorCisgICAgc3RhdGljIHsKKyAgICAgICAgLy8gUHJlcGFyZSBtYXBwaW5nIHRvIHNuYXAgdG91Y2hhYmxlIGRlZ3JlZXMgdG8gc2VsZWN0YWJsZSBkZWdyZWVzLgorICAgICAgICBwcmVwYXJlUHJlZmVyMzBzTWFwKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3BsaXQgdXAgdGhlIDM2MCBkZWdyZWVzIG9mIHRoZSBjaXJjbGUgYW1vbmcgdGhlIDYwIHNlbGVjdGFibGUgdmFsdWVzLiBBc3NpZ25zIGEgbGFyZ2VyCisgICAgICogc2VsZWN0YWJsZSBhcmVhIHRvIGVhY2ggb2YgdGhlIDEyIHZpc2libGUgdmFsdWVzLCBzdWNoIHRoYXQgdGhlIHJhdGlvIG9mIHNwYWNlIGFwcG9ydGlvbmVkCisgICAgICogdG8gYSB2aXNpYmxlIHZhbHVlIDogc3BhY2UgYXBwb3J0aW9uZWQgdG8gYSBub24tdmlzaWJsZSB2YWx1ZSB3aWxsIGJlIDE0IDogNC4KKyAgICAgKiBFLmcuIHRoZSBvdXRwdXQgb2YgMzAgZGVncmVlcyBzaG91bGQgaGF2ZSBhIGhpZ2hlciByYW5nZSBvZiBpbnB1dCBhc3NvY2lhdGVkIHdpdGggaXQgdGhhbgorICAgICAqIHRoZSBvdXRwdXQgb2YgMjQgZGVncmVlcywgYmVjYXVzZSAzMCBkZWdyZWVzIGNvcnJlc3BvbmRzIHRvIGEgdmlzaWJsZSBudW1iZXIgb24gdGhlIGNsb2NrCisgICAgICogY2lyY2xlICg1IG9uIHRoZSBtaW51dGVzLCAxIG9yIDEzIG9uIHRoZSBob3VycykuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBwcmVwYXJlUHJlZmVyMzBzTWFwKCkgeworICAgICAgICAvLyBXZSdsbCBzcGxpdCB1cCB0aGUgdmlzaWJsZSBvdXRwdXQgYW5kIHRoZSBub24tdmlzaWJsZSBvdXRwdXQgc3VjaCB0aGF0IGVhY2ggdmlzaWJsZQorICAgICAgICAvLyBvdXRwdXQgd2lsbCBjb3JyZXNwb25kIHRvIGEgcmFuZ2Ugb2YgMTQgYXNzb2NpYXRlZCBpbnB1dCBkZWdyZWVzLCBhbmQgZWFjaCBub24tdmlzaWJsZQorICAgICAgICAvLyBvdXRwdXQgd2lsbCBjb3JyZXNwb25kIHRvIGEgcmFuZ2Ugb2YgNCBhc3NvY2lhdGUgaW5wdXQgZGVncmVlcywgc28gdmlzaWJsZSBudW1iZXJzCisgICAgICAgIC8vIGFyZSBtb3JlIHRoYW4gMyB0aW1lcyBlYXNpZXIgdG8gZ2V0IHRoYW4gbm9uLXZpc2libGUgbnVtYmVyczoKKyAgICAgICAgLy8gezM1NC0zNTksMC03fTowLCB7OC0xMX06NiwgezEyLTE1fToxMiwgezE2LTE5fToxOCwgezIwLTIzfToyNCwgezI0LTM3fTozMCwgZXRjLgorICAgICAgICAvLworICAgICAgICAvLyBJZiBhbiBvdXRwdXQgb2YgMzAgZGVncmVlcyBzaG91bGQgY29ycmVzcG9uZCB0byBhIHJhbmdlIG9mIDE0IGFzc29jaWF0ZWQgZGVncmVlcywgdGhlbgorICAgICAgICAvLyB3ZSdsbCBuZWVkIGFueSBpbnB1dCBiZXR3ZWVuIDI0IC0gMzcgdG8gc25hcCB0byAzMC4gV29ya2luZyBvdXQgZnJvbSB0aGVyZSwgMjAtMjMgc2hvdWxkCisgICAgICAgIC8vIHNuYXAgdG8gMjQsIHdoaWxlIDM4LTQxIHNob3VsZCBzbmFwIHRvIDM2LiBUaGlzIGlzIHNvbWV3aGF0IGNvdW50ZXItaW50dWl0aXZlLCB0aGF0IHlvdQorICAgICAgICAvLyBjYW4gYmUgdG91Y2hpbmcgMzYgZGVncmVlcyBidXQgaGF2ZSB0aGUgc2VsZWN0aW9uIHNuYXBwZWQgdG8gMzAgZGVncmVlczsgaG93ZXZlciwgdGhpcworICAgICAgICAvLyBpbmNvbnNpc3RlbmN5IGlzbid0IG5vdGljZWFibGUgYXQgc3VjaCBmaW5lLWdyYWluZWQgZGVncmVlcywgYW5kIGl0IGFmZm9yZHMgdXMgdGhlCisgICAgICAgIC8vIGFiaWxpdHkgdG8gYWdncmVzc2l2ZWx5IHByZWZlciB0aGUgdmlzaWJsZSB2YWx1ZXMgYnkgYSBmYWN0b3Igb2YgbW9yZSB0aGFuIDM6MSwgd2hpY2gKKyAgICAgICAgLy8gZ3JlYXRseSBjb250cmlidXRlcyB0byB0aGUgc2VsZWN0YWJpbGl0eSBvZiB0aGVzZSB2YWx1ZXMuCisKKyAgICAgICAgLy8gVGhlIGZpcnN0IG91dHB1dCBpcyAwLCBhbmQgZWFjaCBmb2xsb3dpbmcgb3V0cHV0IHdpbGwgaW5jcmVtZW50IGJ5IDYgezAsIDYsIDEyLCAuLi59LgorICAgICAgICBpbnQgc25hcHBlZE91dHB1dERlZ3JlZXMgPSAwOworICAgICAgICAvLyBDb3VudCBvZiBob3cgbWFueSBpbnB1dHMgd2UndmUgZGVzaWduYXRlZCB0byB0aGUgc3BlY2lmaWVkIG91dHB1dC4KKyAgICAgICAgaW50IGNvdW50ID0gMTsKKyAgICAgICAgLy8gSG93IG1hbnkgaW5wdXQgd2UgZXhwZWN0IGZvciBhIHNwZWNpZmllZCBvdXRwdXQuIFRoaXMgd2lsbCBiZSAxNCBmb3Igb3V0cHV0IGRpdmlzaWJsZQorICAgICAgICAvLyBieSAzMCwgYW5kIDQgZm9yIHRoZSByZW1haW5pbmcgb3V0cHV0LiBXZSdsbCBzcGVjaWFsIGNhc2UgdGhlIG91dHB1dHMgb2YgMCBhbmQgMzYwLCBzbworICAgICAgICAvLyB0aGUgY2FsbGVyIGNhbiBkZWNpZGUgd2hpY2ggdGhleSBuZWVkLgorICAgICAgICBpbnQgZXhwZWN0ZWRDb3VudCA9IDg7CisgICAgICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgaW5wdXQuCisgICAgICAgIGZvciAoaW50IGRlZ3JlZXMgPSAwOyBkZWdyZWVzIDwgMzYxOyBkZWdyZWVzKyspIHsKKyAgICAgICAgICAgIC8vIFNhdmUgdGhlIGlucHV0LW91dHB1dCBtYXBwaW5nLgorICAgICAgICAgICAgc1NuYXBQcmVmZXIzMHNNYXBbZGVncmVlc10gPSBzbmFwcGVkT3V0cHV0RGVncmVlczsKKyAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGxhc3QgaW5wdXQgZm9yIHRoZSBzcGVjaWZpZWQgb3V0cHV0LCBjYWxjdWxhdGUgdGhlIG5leHQgb3V0cHV0IGFuZAorICAgICAgICAgICAgLy8gdGhlIG5leHQgZXhwZWN0ZWQgY291bnQuCisgICAgICAgICAgICBpZiAoY291bnQgPT0gZXhwZWN0ZWRDb3VudCkgeworICAgICAgICAgICAgICAgIHNuYXBwZWRPdXRwdXREZWdyZWVzICs9IDY7CisgICAgICAgICAgICAgICAgaWYgKHNuYXBwZWRPdXRwdXREZWdyZWVzID09IDM2MCkgeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZENvdW50ID0gNzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNuYXBwZWRPdXRwdXREZWdyZWVzICUgMzAgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZENvdW50ID0gMTQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRDb3VudCA9IDQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvdW50ID0gMTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgbWFwcGluZyBvZiBhbnkgaW5wdXQgZGVncmVlcyAoMCB0byAzNjApIHRvIG9uZSBvZiA2MCBzZWxlY3RhYmxlIG91dHB1dCBkZWdyZWVzLAorICAgICAqIHdoZXJlIHRoZSBkZWdyZWVzIGNvcnJlc3BvbmRpbmcgdG8gdmlzaWJsZSBudW1iZXJzIChpLmUuIHRob3NlIGRpdmlzaWJsZSBieSAzMCkgd2lsbCBiZQorICAgICAqIHdlaWdodGVkIGhlYXZpZXIgdGhhbiB0aGUgZGVncmVlcyBjb3JyZXNwb25kaW5nIHRvIG5vbi12aXNpYmxlIG51bWJlcnMuCisgICAgICogU2VlIHtAbGluayAjcHJlcGFyZVByZWZlcjMwc01hcCgpfSBkb2N1bWVudGF0aW9uIGZvciB0aGUgcmF0aW9uYWxlIGFuZCBnZW5lcmF0aW9uIG9mIHRoZQorICAgICAqIG1hcHBpbmcuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHNuYXBQcmVmZXIzMHMoaW50IGRlZ3JlZXMpIHsKKyAgICAgICAgaWYgKHNTbmFwUHJlZmVyMzBzTWFwID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc1NuYXBQcmVmZXIzMHNNYXBbZGVncmVlc107CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBtYXBwaW5nIG9mIGFueSBpbnB1dCBkZWdyZWVzICgwIHRvIDM2MCkgdG8gb25lIG9mIDEyIHZpc2libGUgb3V0cHV0IGRlZ3JlZXMgKGFsbAorICAgICAqIG11bHRpcGxlcyBvZiAzMCksIHdoZXJlIHRoZSBpbnB1dCB3aWxsIGJlICJzbmFwcGVkIiB0byB0aGUgY2xvc2VzdCB2aXNpYmxlIGRlZ3JlZXMuCisgICAgICogQHBhcmFtIGRlZ3JlZXMgVGhlIGlucHV0IGRlZ3JlZXMKKyAgICAgKiBAcGFyYW0gZm9yY2VIaWdoZXJPckxvd2VyIFRoZSBvdXRwdXQgbWF5IGJlIGZvcmNlZCB0byBlaXRoZXIgdGhlIGhpZ2hlciBvciBsb3dlciBzdGVwLCBvciBtYXkKKyAgICAgKiBiZSBhbGxvd2VkIHRvIHNuYXAgdG8gd2hpY2hldmVyIGlzIGNsb3Nlci4gVXNlIDEgdG8gZm9yY2Ugc3RyaWN0bHkgaGlnaGVyLCAtMSB0byBmb3JjZQorICAgICAqIHN0cmljdGx5IGxvd2VyLCBhbmQgMCB0byBzbmFwIHRvIHRoZSBjbG9zZXIgb25lLgorICAgICAqIEByZXR1cm4gb3V0cHV0IGRlZ3JlZXMsIHdpbGwgYmUgYSBtdWx0aXBsZSBvZiAzMAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBzbmFwT25seTMwcyhpbnQgZGVncmVlcywgaW50IGZvcmNlSGlnaGVyT3JMb3dlcikgeworICAgICAgICBmaW5hbCBpbnQgc3RlcFNpemUgPSBERUdSRUVTX0ZPUl9PTkVfSE9VUjsKKyAgICAgICAgaW50IGZsb29yID0gKGRlZ3JlZXMgLyBzdGVwU2l6ZSkgKiBzdGVwU2l6ZTsKKyAgICAgICAgZmluYWwgaW50IGNlaWxpbmcgPSBmbG9vciArIHN0ZXBTaXplOworICAgICAgICBpZiAoZm9yY2VIaWdoZXJPckxvd2VyID09IDEpIHsKKyAgICAgICAgICAgIGRlZ3JlZXMgPSBjZWlsaW5nOworICAgICAgICB9IGVsc2UgaWYgKGZvcmNlSGlnaGVyT3JMb3dlciA9PSAtMSkgeworICAgICAgICAgICAgaWYgKGRlZ3JlZXMgPT0gZmxvb3IpIHsKKyAgICAgICAgICAgICAgICBmbG9vciAtPSBzdGVwU2l6ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlZ3JlZXMgPSBmbG9vcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICgoZGVncmVlcyAtIGZsb29yKSA8IChjZWlsaW5nIC0gZGVncmVlcykpIHsKKyAgICAgICAgICAgICAgICBkZWdyZWVzID0gZmxvb3I7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlZ3JlZXMgPSBjZWlsaW5nOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBkZWdyZWVzOworICAgIH0KKworICAgIHB1YmxpYyBSYWRpYWxUaW1lUGlja2VyVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgUi5hdHRyLnRpbWVQaWNrZXJTdHlsZSk7CisgICAgfQorCisgICAgcHVibGljIFJhZGlhbFRpbWVQaWNrZXJWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpICB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzKTsKKworICAgICAgICAvLyBwcm9jZXNzIHN0eWxlIGF0dHJpYnV0ZXMKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gbUNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywgUi5zdHlsZWFibGUuVGltZVBpY2tlciwKKyAgICAgICAgICAgICAgICBkZWZTdHlsZSwgMCk7CisKKyAgICAgICAgZmluYWwgUmVzb3VyY2VzIHJlcyA9IGdldFJlc291cmNlcygpOworCisgICAgICAgIG1BbVBtVW5zZWxlY3RlZENvbG9yID0gYS5nZXRDb2xvcihSLnN0eWxlYWJsZS5UaW1lUGlja2VyX2FtUG1VbnNlbGVjdGVkQmFja2dyb3VuZENvbG9yLAorICAgICAgICAgICAgICAgIHJlcy5nZXRDb2xvcigKKyAgICAgICAgICAgICAgICAgICAgICAgIFIuY29sb3IudGltZXBpY2tlcl9kZWZhdWx0X2FtcG1fdW5zZWxlY3RlZF9iYWNrZ3JvdW5kX2NvbG9yX2hvbG9fbGlnaHQpKTsKKworICAgICAgICBtQW1QbVNlbGVjdGVkQ29sb3IgPSBhLmdldENvbG9yKFIuc3R5bGVhYmxlLlRpbWVQaWNrZXJfYW1QbVNlbGVjdGVkQmFja2dyb3VuZENvbG9yLAorICAgICAgICAgICAgICAgIHJlcy5nZXRDb2xvcihSLmNvbG9yLnRpbWVwaWNrZXJfZGVmYXVsdF9hbXBtX3NlbGVjdGVkX2JhY2tncm91bmRfY29sb3JfaG9sb19saWdodCkpOworCisgICAgICAgIG1BbVBtVGV4dENvbG9yID0gYS5nZXRDb2xvcihSLnN0eWxlYWJsZS5UaW1lUGlja2VyX2FtUG1UZXh0Q29sb3IsCisgICAgICAgICAgICAgICAgcmVzLmdldENvbG9yKFIuY29sb3IudGltZXBpY2tlcl9kZWZhdWx0X3RleHRfY29sb3JfaG9sb19saWdodCkpOworCisgICAgICAgIGZpbmFsIGludCBudW1iZXJzVGV4dENvbG9yID0gYS5nZXRDb2xvcihSLnN0eWxlYWJsZS5UaW1lUGlja2VyX251bWJlcnNUZXh0Q29sb3IsCisgICAgICAgICAgICAgICAgcmVzLmdldENvbG9yKFIuY29sb3IudGltZXBpY2tlcl9kZWZhdWx0X3RleHRfY29sb3JfaG9sb19saWdodCkpOworCisgICAgICAgIG1UeXBlZmFjZSA9IFR5cGVmYWNlLmNyZWF0ZSgic2Fucy1zZXJpZiIsIFR5cGVmYWNlLk5PUk1BTCk7CisKKyAgICAgICAgbVBhaW50W0hPVVJTXSA9IG5ldyBQYWludCgpOworICAgICAgICBtUGFpbnRbSE9VUlNdLnNldENvbG9yKG51bWJlcnNUZXh0Q29sb3IpOworICAgICAgICBtUGFpbnRbSE9VUlNdLnNldEFudGlBbGlhcyh0cnVlKTsKKyAgICAgICAgbVBhaW50W0hPVVJTXS5zZXRUZXh0QWxpZ24oUGFpbnQuQWxpZ24uQ0VOVEVSKTsKKworICAgICAgICBtUGFpbnRbTUlOVVRFU10gPSBuZXcgUGFpbnQoKTsKKyAgICAgICAgbVBhaW50W01JTlVURVNdLnNldENvbG9yKG51bWJlcnNUZXh0Q29sb3IpOworICAgICAgICBtUGFpbnRbTUlOVVRFU10uc2V0QW50aUFsaWFzKHRydWUpOworICAgICAgICBtUGFpbnRbTUlOVVRFU10uc2V0VGV4dEFsaWduKFBhaW50LkFsaWduLkNFTlRFUik7CisKKyAgICAgICAgbVBhaW50Q2VudGVyLnNldENvbG9yKG51bWJlcnNUZXh0Q29sb3IpOworICAgICAgICBtUGFpbnRDZW50ZXIuc2V0QW50aUFsaWFzKHRydWUpOworICAgICAgICBtUGFpbnRDZW50ZXIuc2V0VGV4dEFsaWduKFBhaW50LkFsaWduLkNFTlRFUik7CisKKyAgICAgICAgbVBhaW50U2VsZWN0b3JbSE9VUlNdW1NFTEVDVE9SX0NJUkNMRV0gPSBuZXcgUGFpbnQoKTsKKyAgICAgICAgbVBhaW50U2VsZWN0b3JbSE9VUlNdW1NFTEVDVE9SX0NJUkNMRV0uc2V0Q29sb3IoCisgICAgICAgICAgICAgICAgYS5nZXRDb2xvcihSLnN0eWxlYWJsZS5UaW1lUGlja2VyX251bWJlcnNTZWxlY3RvckNvbG9yLCBSLmNvbG9yLmhvbG9fYmx1ZV9saWdodCkpOworICAgICAgICBtUGFpbnRTZWxlY3RvcltIT1VSU11bU0VMRUNUT1JfQ0lSQ0xFXS5zZXRBbnRpQWxpYXModHJ1ZSk7CisKKyAgICAgICAgbVBhaW50U2VsZWN0b3JbSE9VUlNdW1NFTEVDVE9SX0RPVF0gPSBuZXcgUGFpbnQoKTsKKyAgICAgICAgbVBhaW50U2VsZWN0b3JbSE9VUlNdW1NFTEVDVE9SX0RPVF0uc2V0Q29sb3IoCisgICAgICAgICAgICAgICAgYS5nZXRDb2xvcihSLnN0eWxlYWJsZS5UaW1lUGlja2VyX251bWJlcnNTZWxlY3RvckNvbG9yLCBSLmNvbG9yLmhvbG9fYmx1ZV9saWdodCkpOworICAgICAgICBtUGFpbnRTZWxlY3RvcltIT1VSU11bU0VMRUNUT1JfRE9UXS5zZXRBbnRpQWxpYXModHJ1ZSk7CisKKyAgICAgICAgbVBhaW50U2VsZWN0b3JbSE9VUlNdW1NFTEVDVE9SX0xJTkVdID0gbmV3IFBhaW50KCk7CisgICAgICAgIG1QYWludFNlbGVjdG9yW0hPVVJTXVtTRUxFQ1RPUl9MSU5FXS5zZXRDb2xvcigKKyAgICAgICAgICAgICAgICBhLmdldENvbG9yKFIuc3R5bGVhYmxlLlRpbWVQaWNrZXJfbnVtYmVyc1NlbGVjdG9yQ29sb3IsIFIuY29sb3IuaG9sb19ibHVlX2xpZ2h0KSk7CisgICAgICAgIG1QYWludFNlbGVjdG9yW0hPVVJTXVtTRUxFQ1RPUl9MSU5FXS5zZXRBbnRpQWxpYXModHJ1ZSk7CisgICAgICAgIG1QYWludFNlbGVjdG9yW0hPVVJTXVtTRUxFQ1RPUl9MSU5FXS5zZXRTdHJva2VXaWR0aCgyKTsKKworICAgICAgICBtUGFpbnRTZWxlY3RvcltNSU5VVEVTXVtTRUxFQ1RPUl9DSVJDTEVdID0gbmV3IFBhaW50KCk7CisgICAgICAgIG1QYWludFNlbGVjdG9yW01JTlVURVNdW1NFTEVDVE9SX0NJUkNMRV0uc2V0Q29sb3IoCisgICAgICAgICAgICAgICAgYS5nZXRDb2xvcihSLnN0eWxlYWJsZS5UaW1lUGlja2VyX251bWJlcnNTZWxlY3RvckNvbG9yLCBSLmNvbG9yLmhvbG9fYmx1ZV9saWdodCkpOworICAgICAgICBtUGFpbnRTZWxlY3RvcltNSU5VVEVTXVtTRUxFQ1RPUl9DSVJDTEVdLnNldEFudGlBbGlhcyh0cnVlKTsKKworICAgICAgICBtUGFpbnRTZWxlY3RvcltNSU5VVEVTXVtTRUxFQ1RPUl9ET1RdID0gbmV3IFBhaW50KCk7CisgICAgICAgIG1QYWludFNlbGVjdG9yW01JTlVURVNdW1NFTEVDVE9SX0RPVF0uc2V0Q29sb3IoCisgICAgICAgICAgICAgICAgYS5nZXRDb2xvcihSLnN0eWxlYWJsZS5UaW1lUGlja2VyX251bWJlcnNTZWxlY3RvckNvbG9yLCBSLmNvbG9yLmhvbG9fYmx1ZV9saWdodCkpOworICAgICAgICBtUGFpbnRTZWxlY3RvcltNSU5VVEVTXVtTRUxFQ1RPUl9ET1RdLnNldEFudGlBbGlhcyh0cnVlKTsKKworICAgICAgICBtUGFpbnRTZWxlY3RvcltNSU5VVEVTXVtTRUxFQ1RPUl9MSU5FXSA9IG5ldyBQYWludCgpOworICAgICAgICBtUGFpbnRTZWxlY3RvcltNSU5VVEVTXVtTRUxFQ1RPUl9MSU5FXS5zZXRDb2xvcigKKyAgICAgICAgICAgICAgICBhLmdldENvbG9yKFIuc3R5bGVhYmxlLlRpbWVQaWNrZXJfbnVtYmVyc1NlbGVjdG9yQ29sb3IsIFIuY29sb3IuaG9sb19ibHVlX2xpZ2h0KSk7CisgICAgICAgIG1QYWludFNlbGVjdG9yW01JTlVURVNdW1NFTEVDVE9SX0xJTkVdLnNldEFudGlBbGlhcyh0cnVlKTsKKyAgICAgICAgbVBhaW50U2VsZWN0b3JbTUlOVVRFU11bU0VMRUNUT1JfTElORV0uc2V0U3Ryb2tlV2lkdGgoMik7CisKKyAgICAgICAgbVBhaW50QW1QbVRleHQuc2V0Q29sb3IobUFtUG1UZXh0Q29sb3IpOworICAgICAgICBtUGFpbnRBbVBtVGV4dC5zZXRUeXBlZmFjZShtVHlwZWZhY2UpOworICAgICAgICBtUGFpbnRBbVBtVGV4dC5zZXRBbnRpQWxpYXModHJ1ZSk7CisgICAgICAgIG1QYWludEFtUG1UZXh0LnNldFRleHRBbGlnbihQYWludC5BbGlnbi5DRU5URVIpOworCisgICAgICAgIG1QYWludEFtUG1DaXJjbGVbQU1dID0gbmV3IFBhaW50KCk7CisgICAgICAgIG1QYWludEFtUG1DaXJjbGVbQU1dLnNldEFudGlBbGlhcyh0cnVlKTsKKyAgICAgICAgbVBhaW50QW1QbUNpcmNsZVtQTV0gPSBuZXcgUGFpbnQoKTsKKyAgICAgICAgbVBhaW50QW1QbUNpcmNsZVtQTV0uc2V0QW50aUFsaWFzKHRydWUpOworCisgICAgICAgIG1QYWludEJhY2tncm91bmQuc2V0Q29sb3IoCisgICAgICAgICAgICAgICAgYS5nZXRDb2xvcihSLnN0eWxlYWJsZS5UaW1lUGlja2VyX251bWJlcnNCYWNrZ3JvdW5kQ29sb3IsIENvbG9yLldISVRFKSk7CisgICAgICAgIG1QYWludEJhY2tncm91bmQuc2V0QW50aUFsaWFzKHRydWUpOworCisgICAgICAgIGZpbmFsIGludCBkaXNhYmxlZENvbG9yID0gYS5nZXRDb2xvcihSLnN0eWxlYWJsZS5UaW1lUGlja2VyX2Rpc2FibGVkQ29sb3IsCisgICAgICAgICAgICAgICAgcmVzLmdldENvbG9yKFIuY29sb3IudGltZXBpY2tlcl9kZWZhdWx0X2Rpc2FibGVkX2NvbG9yX2hvbG9fbGlnaHQpKTsKKyAgICAgICAgbVBhaW50RGlzYWJsZWQuc2V0Q29sb3IoZGlzYWJsZWRDb2xvcik7CisgICAgICAgIG1QYWludERpc2FibGVkLnNldEFudGlBbGlhcyh0cnVlKTsKKworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIG1QYWludERlYnVnLnNldENvbG9yKERFQlVHX0NPTE9SKTsKKyAgICAgICAgICAgIG1QYWludERlYnVnLnNldEFudGlBbGlhcyh0cnVlKTsKKyAgICAgICAgICAgIG1QYWludERlYnVnLnNldFN0cm9rZVdpZHRoKERFQlVHX1NUUk9LRV9XSURUSCk7CisgICAgICAgICAgICBtUGFpbnREZWJ1Zy5zZXRTdHlsZShQYWludC5TdHlsZS5TVFJPS0UpOworICAgICAgICAgICAgbVBhaW50RGVidWcuc2V0VGV4dEFsaWduKFBhaW50LkFsaWduLkNFTlRFUik7CisgICAgICAgIH0KKworICAgICAgICBtU2hvd0hvdXJzID0gdHJ1ZTsKKyAgICAgICAgbUlzMjRIb3VyTW9kZSA9IGZhbHNlOworICAgICAgICBtQW1PclBtID0gQU07CisgICAgICAgIG1BbU9yUG1QcmVzc2VkID0gLTE7CisKKyAgICAgICAgaW5pdEhvdXJzQW5kTWludXRlc1RleHQoKTsKKyAgICAgICAgaW5pdERhdGEoKTsKKworICAgICAgICBtVHJhbnNpdGlvbk1pZFJhZGl1c011bHRpcGxpZXIgPSAgRmxvYXQucGFyc2VGbG9hdCgKKyAgICAgICAgICAgICAgICByZXMuZ2V0U3RyaW5nKFIuc3RyaW5nLnRpbWVwaWNrZXJfdHJhbnNpdGlvbl9taWRfcmFkaXVzX211bHRpcGxpZXIpKTsKKyAgICAgICAgbVRyYW5zaXRpb25FbmRSYWRpdXNNdWx0aXBsaWVyID0gRmxvYXQucGFyc2VGbG9hdCgKKyAgICAgICAgICAgICAgICByZXMuZ2V0U3RyaW5nKFIuc3RyaW5nLnRpbWVwaWNrZXJfdHJhbnNpdGlvbl9lbmRfcmFkaXVzX211bHRpcGxpZXIpKTsKKworICAgICAgICBtVGV4dEdyaWRIZWlnaHRzW0hPVVJTXSA9IG5ldyBmbG9hdFs3XTsKKyAgICAgICAgbVRleHRHcmlkSGVpZ2h0c1tNSU5VVEVTXSA9IG5ldyBmbG9hdFs3XTsKKworICAgICAgICBtU2VsZWN0aW9uUmFkaXVzTXVsdGlwbGllciA9IEZsb2F0LnBhcnNlRmxvYXQoCisgICAgICAgICAgICAgICAgcmVzLmdldFN0cmluZyhSLnN0cmluZy50aW1lcGlja2VyX3NlbGVjdGlvbl9yYWRpdXNfbXVsdGlwbGllcikpOworCisgICAgICAgIHNldE9uVG91Y2hMaXN0ZW5lcih0aGlzKTsKKworICAgICAgICAvLyBJbml0aWFsIHZhbHVlcworICAgICAgICBmaW5hbCBDYWxlbmRhciBjYWxlbmRhciA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBmaW5hbCBpbnQgY3VycmVudEhvdXIgPSBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICBmaW5hbCBpbnQgY3VycmVudE1pbnV0ZSA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5NSU5VVEUpOworCisgICAgICAgIHNldEN1cnJlbnRIb3VyKGN1cnJlbnRIb3VyKTsKKyAgICAgICAgc2V0Q3VycmVudE1pbnV0ZShjdXJyZW50TWludXRlKTsKKworICAgICAgICBzZXRIYXB0aWNGZWVkYmFja0VuYWJsZWQodHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWVhc3VyZSB0aGUgdmlldyB0byBlbmQgdXAgYXMgYSBzcXVhcmUsIGJhc2VkIG9uIHRoZSBtaW5pbXVtIG9mIHRoZSBoZWlnaHQgYW5kIHdpZHRoLgorICAgICAqLworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIG9uTWVhc3VyZShpbnQgd2lkdGhNZWFzdXJlU3BlYywgaW50IGhlaWdodE1lYXN1cmVTcGVjKSB7CisgICAgICAgIGludCBtZWFzdXJlZFdpZHRoID0gTWVhc3VyZVNwZWMuZ2V0U2l6ZSh3aWR0aE1lYXN1cmVTcGVjKTsKKyAgICAgICAgaW50IHdpZHRoTW9kZSA9IE1lYXN1cmVTcGVjLmdldE1vZGUod2lkdGhNZWFzdXJlU3BlYyk7CisgICAgICAgIGludCBtZWFzdXJlZEhlaWdodCA9IE1lYXN1cmVTcGVjLmdldFNpemUoaGVpZ2h0TWVhc3VyZVNwZWMpOworICAgICAgICBpbnQgaGVpZ2h0TW9kZSA9IE1lYXN1cmVTcGVjLmdldE1vZGUoaGVpZ2h0TWVhc3VyZVNwZWMpOworICAgICAgICBpbnQgbWluRGltZW5zaW9uID0gTWF0aC5taW4obWVhc3VyZWRXaWR0aCwgbWVhc3VyZWRIZWlnaHQpOworCisgICAgICAgIHN1cGVyLm9uTWVhc3VyZShNZWFzdXJlU3BlYy5tYWtlTWVhc3VyZVNwZWMobWluRGltZW5zaW9uLCB3aWR0aE1vZGUpLAorICAgICAgICAgICAgICAgIE1lYXN1cmVTcGVjLm1ha2VNZWFzdXJlU3BlYyhtaW5EaW1lbnNpb24sIGhlaWdodE1vZGUpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBpbml0aWFsaXplKGludCBob3VyLCBpbnQgbWludXRlLCBib29sZWFuIGlzMjRIb3VyTW9kZSkgeworICAgICAgICBtSXMyNEhvdXJNb2RlID0gaXMyNEhvdXJNb2RlOworICAgICAgICBzZXRDdXJyZW50SG91cihob3VyKTsKKyAgICAgICAgc2V0Q3VycmVudE1pbnV0ZShtaW51dGUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEN1cnJlbnRJdGVtU2hvd2luZyhpbnQgaXRlbSwgYm9vbGVhbiBhbmltYXRlKSB7CisgICAgICAgIHN3aXRjaCAoaXRlbSl7CisgICAgICAgICAgICBjYXNlIEhPVVJTOgorICAgICAgICAgICAgICAgIHNob3dIb3VycyhhbmltYXRlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTUlOVVRFUzoKKyAgICAgICAgICAgICAgICBzaG93TWludXRlcyhhbmltYXRlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiQ2xvY2tWaWV3IGRvZXMgbm90IHN1cHBvcnQgc2hvd2luZyBpdGVtICIgKyBpdGVtKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0Q3VycmVudEl0ZW1TaG93aW5nKCkgeworICAgICAgICByZXR1cm4gbVNob3dIb3VycyA/IEhPVVJTIDogTUlOVVRFUzsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRPblZhbHVlU2VsZWN0ZWRMaXN0ZW5lcihPblZhbHVlU2VsZWN0ZWRMaXN0ZW5lciBsaXN0ZW5lcikgeworICAgICAgICBtTGlzdGVuZXIgPSBsaXN0ZW5lcjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW50SG91cihpbnQgaG91cikgeworICAgICAgICBmaW5hbCBpbnQgZGVncmVlcyA9IChob3VyICUgMTIpICogREVHUkVFU19GT1JfT05FX0hPVVI7CisgICAgICAgIG1TZWxlY3Rpb25EZWdyZWVzW0hPVVJTXSA9IGRlZ3JlZXM7CisgICAgICAgIG1TZWxlY3Rpb25EZWdyZWVzW0hPVVJTX0lOTkVSXSA9IGRlZ3JlZXM7CisgICAgICAgIG1BbU9yUG0gPSAoKGhvdXIgJSAyNCkgPCAxMikgPyBBTSA6IFBNOworICAgICAgICBpZiAobUlzMjRIb3VyTW9kZSkgeworICAgICAgICAgICAgbUlzT25Jbm5lckNpcmNsZSA9IChtQW1PclBtID09IEFNKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1Jc09uSW5uZXJDaXJjbGUgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpbml0RGF0YSgpOworICAgICAgICB1cGRhdGVMYXlvdXREYXRhKCk7CisgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICB9CisKKyAgICAvLyBSZXR1cm4gaG91cnMgaW4gMC0yMyByYW5nZQorICAgIHB1YmxpYyBpbnQgZ2V0Q3VycmVudEhvdXIoKSB7CisgICAgICAgIGludCBob3VycyA9CisgICAgICAgICAgICAgICAgbVNlbGVjdGlvbkRlZ3JlZXNbbUlzT25Jbm5lckNpcmNsZSA/IEhPVVJTX0lOTkVSIDogSE9VUlNdIC8gREVHUkVFU19GT1JfT05FX0hPVVI7CisgICAgICAgIGlmIChtSXMyNEhvdXJNb2RlKSB7CisgICAgICAgICAgICBpZiAobUlzT25Jbm5lckNpcmNsZSkgeworICAgICAgICAgICAgICAgIGhvdXJzID0gaG91cnMgJSAxMjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGhvdXJzICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaG91cnMgKz0gMTI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaG91cnMgPSBob3VycyAlIDEyOworICAgICAgICAgICAgaWYgKGhvdXJzID09IDApIHsKKyAgICAgICAgICAgICAgICBpZiAobUFtT3JQbSA9PSBQTSkgeworICAgICAgICAgICAgICAgICAgICBob3VycyA9IDEyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKG1BbU9yUG0gPT0gUE0pIHsKKyAgICAgICAgICAgICAgICAgICAgaG91cnMgKz0gMTI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBob3VyczsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW50TWludXRlKGludCBtaW51dGUpIHsKKyAgICAgICAgbVNlbGVjdGlvbkRlZ3JlZXNbTUlOVVRFU10gPSAobWludXRlICUgNjApICogREVHUkVFU19GT1JfT05FX01JTlVURTsKKyAgICAgICAgaW52YWxpZGF0ZSgpOworICAgIH0KKworICAgIC8vIFJldHVybnMgbWludXRlcyBpbiAwLTU5IHJhbmdlCisgICAgcHVibGljIGludCBnZXRDdXJyZW50TWludXRlKCkgeworICAgICAgICByZXR1cm4gKG1TZWxlY3Rpb25EZWdyZWVzW01JTlVURVNdIC8gREVHUkVFU19GT1JfT05FX01JTlVURSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0QW1PclBtKGludCB2YWwpIHsKKyAgICAgICAgbUFtT3JQbSA9ICh2YWwgJSAyKTsKKyAgICAgICAgaW52YWxpZGF0ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0QW1PclBtKCkgeworICAgICAgICByZXR1cm4gbUFtT3JQbTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzd2FwQW1QbSgpIHsKKyAgICAgICAgbUFtT3JQbSA9IChtQW1PclBtID09IEFNKSA/IFBNIDogQU07CisgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzaG93SG91cnMoYm9vbGVhbiBhbmltYXRlKSB7CisgICAgICAgIGlmIChtU2hvd0hvdXJzKSByZXR1cm47CisgICAgICAgIG1TaG93SG91cnMgPSB0cnVlOworICAgICAgICBpZiAoYW5pbWF0ZSkgeworICAgICAgICAgICAgc3RhcnRNaW51dGVzVG9Ib3Vyc0FuaW1hdGlvbigpOworICAgICAgICB9CisgICAgICAgIGluaXREYXRhKCk7CisgICAgICAgIHVwZGF0ZUxheW91dERhdGEoKTsKKyAgICAgICAgaW52YWxpZGF0ZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNob3dNaW51dGVzKGJvb2xlYW4gYW5pbWF0ZSkgeworICAgICAgICBpZiAoIW1TaG93SG91cnMpIHJldHVybjsKKyAgICAgICAgbVNob3dIb3VycyA9IGZhbHNlOworICAgICAgICBpZiAoYW5pbWF0ZSkgeworICAgICAgICAgICAgc3RhcnRIb3Vyc1RvTWludXRlc0FuaW1hdGlvbigpOworICAgICAgICB9CisgICAgICAgIGluaXREYXRhKCk7CisgICAgICAgIHVwZGF0ZUxheW91dERhdGEoKTsKKyAgICAgICAgaW52YWxpZGF0ZSgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBpbml0SG91cnNBbmRNaW51dGVzVGV4dCgpIHsKKyAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgaG91cnMgYW5kIG1pbnV0ZXMgbnVtYmVycy4KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMjsgaSsrKSB7CisgICAgICAgICAgICBtSG91cnMxMlRleHRzW2ldID0gU3RyaW5nLmZvcm1hdCgiJWQiLCBIT1VSU19OVU1CRVJTW2ldKTsKKyAgICAgICAgICAgIG1PdXRlckhvdXJzMjRUZXh0c1tpXSA9IFN0cmluZy5mb3JtYXQoIiUwMmQiLCBIT1VSU19OVU1CRVJTXzI0W2ldKTsKKyAgICAgICAgICAgIG1Jbm5lckhvdXJzMjRUZXh0c1tpXSA9IFN0cmluZy5mb3JtYXQoIiVkIiwgSE9VUlNfTlVNQkVSU1tpXSk7CisgICAgICAgICAgICBtTWludXRlc1RleHRzW2ldID0gU3RyaW5nLmZvcm1hdCgiJTAyZCIsIE1JTlVURVNfTlVNQkVSU1tpXSk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmdbXSBhbVBtVGV4dHMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoKS5nZXRBbVBtU3RyaW5ncygpOworICAgICAgICBtQW1QbVRleHRbQU1dID0gYW1QbVRleHRzWzBdOworICAgICAgICBtQW1QbVRleHRbUE1dID0gYW1QbVRleHRzWzFdOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBpbml0RGF0YSgpIHsKKyAgICAgICAgaWYgKG1JczI0SG91ck1vZGUpIHsKKyAgICAgICAgICAgIG1PdXRlclRleHRIb3VycyA9IG1PdXRlckhvdXJzMjRUZXh0czsKKyAgICAgICAgICAgIG1Jbm5lclRleHRIb3VycyA9IG1Jbm5lckhvdXJzMjRUZXh0czsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1PdXRlclRleHRIb3VycyA9IG1Ib3VyczEyVGV4dHM7CisgICAgICAgICAgICBtSW5uZXJUZXh0SG91cnMgPSBudWxsOworICAgICAgICB9CisKKyAgICAgICAgbU91dGVyVGV4dE1pbnV0ZXMgPSBtTWludXRlc1RleHRzOworCisgICAgICAgIGZpbmFsIFJlc291cmNlcyByZXMgPSBnZXRSZXNvdXJjZXMoKTsKKworICAgICAgICBpZiAobVNob3dIb3VycykgeworICAgICAgICAgICAgaWYgKG1JczI0SG91ck1vZGUpIHsKKyAgICAgICAgICAgICAgICBtQ2lyY2xlUmFkaXVzTXVsdGlwbGllcltIT1VSU10gPSBGbG9hdC5wYXJzZUZsb2F0KAorICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmdldFN0cmluZyhSLnN0cmluZy50aW1lcGlja2VyX2NpcmNsZV9yYWRpdXNfbXVsdGlwbGllcl8yNEhvdXJNb2RlKSk7CisgICAgICAgICAgICAgICAgbU51bWJlcnNSYWRpdXNNdWx0aXBsaWVyW0hPVVJTXSA9IEZsb2F0LnBhcnNlRmxvYXQoCisgICAgICAgICAgICAgICAgICAgICAgICByZXMuZ2V0U3RyaW5nKFIuc3RyaW5nLnRpbWVwaWNrZXJfbnVtYmVyc19yYWRpdXNfbXVsdGlwbGllcl9vdXRlcikpOworICAgICAgICAgICAgICAgIG1UZXh0U2l6ZU11bHRpcGxpZXJbSE9VUlNdID0gRmxvYXQucGFyc2VGbG9hdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5nZXRTdHJpbmcoUi5zdHJpbmcudGltZXBpY2tlcl90ZXh0X3NpemVfbXVsdGlwbGllcl9vdXRlcikpOworCisgICAgICAgICAgICAgICAgbU51bWJlcnNSYWRpdXNNdWx0aXBsaWVyW0hPVVJTX0lOTkVSXSA9IEZsb2F0LnBhcnNlRmxvYXQoCisgICAgICAgICAgICAgICAgICAgICAgICByZXMuZ2V0U3RyaW5nKFIuc3RyaW5nLnRpbWVwaWNrZXJfbnVtYmVyc19yYWRpdXNfbXVsdGlwbGllcl9pbm5lcikpOworICAgICAgICAgICAgICAgIG1UZXh0U2l6ZU11bHRpcGxpZXJbSE9VUlNfSU5ORVJdID0gRmxvYXQucGFyc2VGbG9hdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5nZXRTdHJpbmcoUi5zdHJpbmcudGltZXBpY2tlcl90ZXh0X3NpemVfbXVsdGlwbGllcl9pbm5lcikpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtQ2lyY2xlUmFkaXVzTXVsdGlwbGllcltIT1VSU10gPSBGbG9hdC5wYXJzZUZsb2F0KAorICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmdldFN0cmluZyhSLnN0cmluZy50aW1lcGlja2VyX2NpcmNsZV9yYWRpdXNfbXVsdGlwbGllcikpOworICAgICAgICAgICAgICAgIG1OdW1iZXJzUmFkaXVzTXVsdGlwbGllcltIT1VSU10gPSBGbG9hdC5wYXJzZUZsb2F0KAorICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmdldFN0cmluZyhSLnN0cmluZy50aW1lcGlja2VyX251bWJlcnNfcmFkaXVzX211bHRpcGxpZXJfbm9ybWFsKSk7CisgICAgICAgICAgICAgICAgbVRleHRTaXplTXVsdGlwbGllcltIT1VSU10gPSBGbG9hdC5wYXJzZUZsb2F0KAorICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmdldFN0cmluZyhSLnN0cmluZy50aW1lcGlja2VyX3RleHRfc2l6ZV9tdWx0aXBsaWVyX25vcm1hbCkpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUNpcmNsZVJhZGl1c011bHRpcGxpZXJbTUlOVVRFU10gPSBGbG9hdC5wYXJzZUZsb2F0KAorICAgICAgICAgICAgICAgICAgICByZXMuZ2V0U3RyaW5nKFIuc3RyaW5nLnRpbWVwaWNrZXJfY2lyY2xlX3JhZGl1c19tdWx0aXBsaWVyKSk7CisgICAgICAgICAgICBtTnVtYmVyc1JhZGl1c011bHRpcGxpZXJbTUlOVVRFU10gPSBGbG9hdC5wYXJzZUZsb2F0KAorICAgICAgICAgICAgICAgICAgICByZXMuZ2V0U3RyaW5nKFIuc3RyaW5nLnRpbWVwaWNrZXJfbnVtYmVyc19yYWRpdXNfbXVsdGlwbGllcl9ub3JtYWwpKTsKKyAgICAgICAgICAgIG1UZXh0U2l6ZU11bHRpcGxpZXJbTUlOVVRFU10gPSBGbG9hdC5wYXJzZUZsb2F0KAorICAgICAgICAgICAgICAgICAgICByZXMuZ2V0U3RyaW5nKFIuc3RyaW5nLnRpbWVwaWNrZXJfdGV4dF9zaXplX211bHRpcGxpZXJfbm9ybWFsKSk7CisgICAgICAgIH0KKworICAgICAgICBtQW5pbWF0aW9uUmFkaXVzTXVsdGlwbGllcltIT1VSU10gPSAxOworICAgICAgICBtQW5pbWF0aW9uUmFkaXVzTXVsdGlwbGllcltIT1VSU19JTk5FUl0gPSAxOworICAgICAgICBtQW5pbWF0aW9uUmFkaXVzTXVsdGlwbGllcltNSU5VVEVTXSA9IDE7CisKKyAgICAgICAgbUFtUG1DaXJjbGVSYWRpdXNNdWx0aXBsaWVyID0gRmxvYXQucGFyc2VGbG9hdCgKKyAgICAgICAgICAgICAgICByZXMuZ2V0U3RyaW5nKFIuc3RyaW5nLnRpbWVwaWNrZXJfYW1wbV9jaXJjbGVfcmFkaXVzX211bHRpcGxpZXIpKTsKKworICAgICAgICBtUGFpbnRbSE9VUlNdLnNldEFscGhhKG1TaG93SG91cnMgPyBBTFBIQV9PUEFRVUUgOiBBTFBIQV9UUkFOU1BBUkVOVCk7CisgICAgICAgIG1QYWludFtNSU5VVEVTXS5zZXRBbHBoYShtU2hvd0hvdXJzID8gQUxQSEFfVFJBTlNQQVJFTlQgOiBBTFBIQV9PUEFRVUUpOworCisgICAgICAgIG1QYWludFNlbGVjdG9yW0hPVVJTXVtTRUxFQ1RPUl9DSVJDTEVdLnNldEFscGhhKAorICAgICAgICAgICAgICAgIG1TaG93SG91cnMgP0FMUEhBX1NFTEVDVE9SIDogQUxQSEFfVFJBTlNQQVJFTlQpOworICAgICAgICBtUGFpbnRTZWxlY3RvcltIT1VSU11bU0VMRUNUT1JfRE9UXS5zZXRBbHBoYSgKKyAgICAgICAgICAgICAgICBtU2hvd0hvdXJzID8gQUxQSEFfT1BBUVVFIDogQUxQSEFfVFJBTlNQQVJFTlQpOworICAgICAgICBtUGFpbnRTZWxlY3RvcltIT1VSU11bU0VMRUNUT1JfTElORV0uc2V0QWxwaGEoCisgICAgICAgICAgICAgICAgbVNob3dIb3VycyA/IEFMUEhBX1NFTEVDVE9SIDogQUxQSEFfVFJBTlNQQVJFTlQpOworCisgICAgICAgIG1QYWludFNlbGVjdG9yW01JTlVURVNdW1NFTEVDVE9SX0NJUkNMRV0uc2V0QWxwaGEoCisgICAgICAgICAgICAgICAgbVNob3dIb3VycyA/IEFMUEhBX1RSQU5TUEFSRU5UIDogQUxQSEFfU0VMRUNUT1IpOworICAgICAgICBtUGFpbnRTZWxlY3RvcltNSU5VVEVTXVtTRUxFQ1RPUl9ET1RdLnNldEFscGhhKAorICAgICAgICAgICAgICAgIG1TaG93SG91cnMgPyBBTFBIQV9UUkFOU1BBUkVOVCA6IEFMUEhBX09QQVFVRSk7CisgICAgICAgIG1QYWludFNlbGVjdG9yW01JTlVURVNdW1NFTEVDVE9SX0xJTkVdLnNldEFscGhhKAorICAgICAgICAgICAgICAgIG1TaG93SG91cnMgPyBBTFBIQV9UUkFOU1BBUkVOVCA6IEFMUEhBX1NFTEVDVE9SKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwcm90ZWN0ZWQgdm9pZCBvbkxheW91dChib29sZWFuIGNoYW5nZWQsIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQgcmlnaHQsIGludCBib3R0b20pIHsKKyAgICAgICAgdXBkYXRlTGF5b3V0RGF0YSgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVMYXlvdXREYXRhKCkgeworICAgICAgICBtWENlbnRlciA9IGdldFdpZHRoKCkgLyAyOworICAgICAgICBtWUNlbnRlciA9IGdldEhlaWdodCgpIC8gMjsKKworICAgICAgICBmaW5hbCBpbnQgbWluID0gTWF0aC5taW4obVhDZW50ZXIsIG1ZQ2VudGVyKTsKKworICAgICAgICBtQ2lyY2xlUmFkaXVzW0hPVVJTXSA9IG1pbiAqIG1DaXJjbGVSYWRpdXNNdWx0aXBsaWVyW0hPVVJTXTsKKyAgICAgICAgbUNpcmNsZVJhZGl1c1tIT1VSU19JTk5FUl0gPSBtaW4gKiBtQ2lyY2xlUmFkaXVzTXVsdGlwbGllcltIT1VSU107CisgICAgICAgIG1DaXJjbGVSYWRpdXNbTUlOVVRFU10gPSBtaW4gKiBtQ2lyY2xlUmFkaXVzTXVsdGlwbGllcltNSU5VVEVTXTsKKworICAgICAgICBpZiAoIW1JczI0SG91ck1vZGUpIHsKKyAgICAgICAgICAgIC8vIFdlJ2xsIG5lZWQgdG8gZHJhdyB0aGUgQU0vUE0gY2lyY2xlcywgc28gdGhlIG1haW4gY2lyY2xlIHdpbGwgbmVlZCB0byBoYXZlCisgICAgICAgICAgICAvLyBhIHNsaWdodGx5IGhpZ2hlciBjZW50ZXIuIFRvIGtlZXAgdGhlIGVudGlyZSB2aWV3IGNlbnRlcmVkIHZlcnRpY2FsbHksIHdlJ2xsCisgICAgICAgICAgICAvLyBoYXZlIHRvIHB1c2ggaXQgdXAgYnkgaGFsZiB0aGUgcmFkaXVzIG9mIHRoZSBBTS9QTSBjaXJjbGVzLgorICAgICAgICAgICAgaW50IGFtUG1DaXJjbGVSYWRpdXMgPSAoaW50KSAobUNpcmNsZVJhZGl1c1tIT1VSU10gKiBtQW1QbUNpcmNsZVJhZGl1c011bHRpcGxpZXIpOworICAgICAgICAgICAgbVlDZW50ZXIgLT0gYW1QbUNpcmNsZVJhZGl1cyAvIDI7CisgICAgICAgIH0KKworICAgICAgICBtTWluSHlwb3RlbnVzZUZvcklubmVyTnVtYmVyID0gKGludCkgKG1DaXJjbGVSYWRpdXNbSE9VUlNdCisgICAgICAgICAgICAgICAgKiBtTnVtYmVyc1JhZGl1c011bHRpcGxpZXJbSE9VUlNfSU5ORVJdKSAtIG1TZWxlY3Rpb25SYWRpdXNbSE9VUlNdOworICAgICAgICBtTWF4SHlwb3RlbnVzZUZvck91dGVyTnVtYmVyID0gKGludCkgKG1DaXJjbGVSYWRpdXNbSE9VUlNdCisgICAgICAgICAgICAgICAgKiBtTnVtYmVyc1JhZGl1c011bHRpcGxpZXJbSE9VUlNdKSArIG1TZWxlY3Rpb25SYWRpdXNbSE9VUlNdOworICAgICAgICBtSGFsZndheUh5cG90ZW51c2VQb2ludCA9IChpbnQpIChtQ2lyY2xlUmFkaXVzW0hPVVJTXQorICAgICAgICAgICAgICAgICogKChtTnVtYmVyc1JhZGl1c011bHRpcGxpZXJbSE9VUlNdICsgbU51bWJlcnNSYWRpdXNNdWx0aXBsaWVyW0hPVVJTX0lOTkVSXSkgLyAyKSk7CisKKyAgICAgICAgbVRleHRTaXplW0hPVVJTXSA9IG1DaXJjbGVSYWRpdXNbSE9VUlNdICogbVRleHRTaXplTXVsdGlwbGllcltIT1VSU107CisgICAgICAgIG1UZXh0U2l6ZVtNSU5VVEVTXSA9IG1DaXJjbGVSYWRpdXNbTUlOVVRFU10gKiBtVGV4dFNpemVNdWx0aXBsaWVyW01JTlVURVNdOworCisgICAgICAgIGlmIChtSXMyNEhvdXJNb2RlKSB7CisgICAgICAgICAgICBtSW5uZXJUZXh0U2l6ZSA9IG1DaXJjbGVSYWRpdXNbSE9VUlNdICogbVRleHRTaXplTXVsdGlwbGllcltIT1VSU19JTk5FUl07CisgICAgICAgIH0KKworICAgICAgICBjYWxjdWxhdGVHcmlkU2l6ZXNIb3VycygpOworICAgICAgICBjYWxjdWxhdGVHcmlkU2l6ZXNNaW51dGVzKCk7CisKKyAgICAgICAgbVNlbGVjdGlvblJhZGl1c1tIT1VSU10gPSAoaW50KSAobUNpcmNsZVJhZGl1c1tIT1VSU10gKiBtU2VsZWN0aW9uUmFkaXVzTXVsdGlwbGllcik7CisgICAgICAgIG1TZWxlY3Rpb25SYWRpdXNbSE9VUlNfSU5ORVJdID0gbVNlbGVjdGlvblJhZGl1c1tIT1VSU107CisgICAgICAgIG1TZWxlY3Rpb25SYWRpdXNbTUlOVVRFU10gPSAoaW50KSAobUNpcmNsZVJhZGl1c1tNSU5VVEVTXSAqIG1TZWxlY3Rpb25SYWRpdXNNdWx0aXBsaWVyKTsKKworICAgICAgICBtQW1QbUNpcmNsZVJhZGl1cyA9IChpbnQpIChtQ2lyY2xlUmFkaXVzW0hPVVJTXSAqIG1BbVBtQ2lyY2xlUmFkaXVzTXVsdGlwbGllcik7CisgICAgICAgIG1QYWludEFtUG1UZXh0LnNldFRleHRTaXplKG1BbVBtQ2lyY2xlUmFkaXVzICogMyAvIDQpOworCisgICAgICAgIC8vIExpbmUgdXAgdGhlIHZlcnRpY2FsIGNlbnRlciBvZiB0aGUgQU0vUE0gY2lyY2xlcyB3aXRoIHRoZSBib3R0b20gb2YgdGhlIG1haW4gY2lyY2xlLgorICAgICAgICBtQW1QbVlDZW50ZXIgPSBtWUNlbnRlciArIG1DaXJjbGVSYWRpdXNbSE9VUlNdOworCisgICAgICAgIC8vIExpbmUgdXAgdGhlIGhvcml6b250YWwgZWRnZXMgb2YgdGhlIEFNL1BNIGNpcmNsZXMgd2l0aCB0aGUgaG9yaXpvbnRhbCBlZGdlcworICAgICAgICAvLyBvZiB0aGUgbWFpbiBjaXJjbGUKKyAgICAgICAgbUxlZnRJbmRpY2F0b3JYQ2VudGVyID0gbVhDZW50ZXIgLSBtQ2lyY2xlUmFkaXVzW0hPVVJTXSArIG1BbVBtQ2lyY2xlUmFkaXVzOworICAgICAgICBtUmlnaHRJbmRpY2F0b3JYQ2VudGVyID0gbVhDZW50ZXIgKyBtQ2lyY2xlUmFkaXVzW0hPVVJTXSAtIG1BbVBtQ2lyY2xlUmFkaXVzOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIG9uRHJhdyhDYW52YXMgY2FudmFzKSB7CisgICAgICAgIGNhbnZhcy5zYXZlKCk7CisKKyAgICAgICAgY2FsY3VsYXRlR3JpZFNpemVzSG91cnMoKTsKKyAgICAgICAgY2FsY3VsYXRlR3JpZFNpemVzTWludXRlcygpOworCisgICAgICAgIGRyYXdDaXJjbGVCYWNrZ3JvdW5kKGNhbnZhcyk7CisKKyAgICAgICAgZHJhd1RleHRFbGVtZW50cyhjYW52YXMsIG1UZXh0U2l6ZVtIT1VSU10sIG1UeXBlZmFjZSwgbU91dGVyVGV4dEhvdXJzLAorICAgICAgICAgICAgICAgIG1UZXh0R3JpZFdpZHRoc1tIT1VSU10sIG1UZXh0R3JpZEhlaWdodHNbSE9VUlNdLCBtUGFpbnRbSE9VUlNdKTsKKworICAgICAgICBpZiAobUlzMjRIb3VyTW9kZSAmJiBtSW5uZXJUZXh0SG91cnMgIT0gbnVsbCkgeworICAgICAgICAgICAgZHJhd1RleHRFbGVtZW50cyhjYW52YXMsIG1Jbm5lclRleHRTaXplLCBtVHlwZWZhY2UsIG1Jbm5lclRleHRIb3VycywKKyAgICAgICAgICAgICAgICAgICAgbUlubmVyVGV4dEdyaWRXaWR0aHMsIG1Jbm5lclRleHRHcmlkSGVpZ2h0cywgbVBhaW50W0hPVVJTXSk7CisgICAgICAgIH0KKworICAgICAgICBkcmF3VGV4dEVsZW1lbnRzKGNhbnZhcywgbVRleHRTaXplW01JTlVURVNdLCBtVHlwZWZhY2UsIG1PdXRlclRleHRNaW51dGVzLAorICAgICAgICAgICAgICAgIG1UZXh0R3JpZFdpZHRoc1tNSU5VVEVTXSwgbVRleHRHcmlkSGVpZ2h0c1tNSU5VVEVTXSwgbVBhaW50W01JTlVURVNdKTsKKworICAgICAgICBkcmF3Q2VudGVyKGNhbnZhcyk7CisgICAgICAgIGRyYXdTZWxlY3RvcihjYW52YXMpOworICAgICAgICBpZiAoIW1JczI0SG91ck1vZGUpIHsKKyAgICAgICAgICAgIGRyYXdBbVBtKGNhbnZhcyk7CisgICAgICAgIH0KKworICAgICAgICBpZighbUlucHV0RW5hYmxlZCkgeworICAgICAgICAgICAgLy8gRHJhdyBvdXRlciB2aWV3IHJlY3RhbmdsZQorICAgICAgICAgICAgbVJlY3RGLnNldCgwLCAwLCBnZXRXaWR0aCgpLCBnZXRIZWlnaHQoKSk7CisgICAgICAgICAgICBjYW52YXMuZHJhd1JlY3QobVJlY3RGLCBtUGFpbnREaXNhYmxlZCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIGRyYXdEZWJ1ZyhjYW52YXMpOworICAgICAgICB9CisKKyAgICAgICAgY2FudmFzLnJlc3RvcmUoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHJhd0NpcmNsZUJhY2tncm91bmQoQ2FudmFzIGNhbnZhcykgeworICAgICAgICBjYW52YXMuZHJhd0NpcmNsZShtWENlbnRlciwgbVlDZW50ZXIsIG1DaXJjbGVSYWRpdXNbSE9VUlNdLCBtUGFpbnRCYWNrZ3JvdW5kKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHJhd0NlbnRlcihDYW52YXMgY2FudmFzKSB7CisgICAgICAgIGNhbnZhcy5kcmF3Q2lyY2xlKG1YQ2VudGVyLCBtWUNlbnRlciwgQ0VOVEVSX1JBRElVUywgbVBhaW50Q2VudGVyKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHJhd1NlbGVjdG9yKENhbnZhcyBjYW52YXMpIHsKKyAgICAgICAgZHJhd1NlbGVjdG9yKGNhbnZhcywgbUlzT25Jbm5lckNpcmNsZSA/IEhPVVJTX0lOTkVSIDogSE9VUlMpOworICAgICAgICBkcmF3U2VsZWN0b3IoY2FudmFzLCBNSU5VVEVTKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHJhd0FtUG0oQ2FudmFzIGNhbnZhcykgeworICAgICAgICBmaW5hbCBib29sZWFuIGlzTGF5b3V0UnRsID0gaXNMYXlvdXRSdGwoKTsKKworICAgICAgICBpbnQgYW1Db2xvciA9IG1BbVBtVW5zZWxlY3RlZENvbG9yOworICAgICAgICBpbnQgYW1BbHBoYSA9IEFMUEhBX09QQVFVRTsKKyAgICAgICAgaW50IHBtQ29sb3IgPSBtQW1QbVVuc2VsZWN0ZWRDb2xvcjsKKyAgICAgICAgaW50IHBtQWxwaGEgPSBBTFBIQV9PUEFRVUU7CisgICAgICAgIGlmIChtQW1PclBtID09IEFNKSB7CisgICAgICAgICAgICBhbUNvbG9yID0gbUFtUG1TZWxlY3RlZENvbG9yOworICAgICAgICAgICAgYW1BbHBoYSA9IEFMUEhBX0FNUE1fU0VMRUNURUQ7CisgICAgICAgIH0gZWxzZSBpZiAobUFtT3JQbSA9PSBQTSkgeworICAgICAgICAgICAgcG1Db2xvciA9IG1BbVBtU2VsZWN0ZWRDb2xvcjsKKyAgICAgICAgICAgIHBtQWxwaGEgPSBBTFBIQV9BTVBNX1NFTEVDVEVEOworICAgICAgICB9CisgICAgICAgIGlmIChtQW1PclBtUHJlc3NlZCA9PSBBTSkgeworICAgICAgICAgICAgYW1Db2xvciA9IG1BbVBtU2VsZWN0ZWRDb2xvcjsKKyAgICAgICAgICAgIGFtQWxwaGEgPSBBTFBIQV9BTVBNX1BSRVNTRUQ7CisgICAgICAgIH0gZWxzZSBpZiAobUFtT3JQbVByZXNzZWQgPT0gUE0pIHsKKyAgICAgICAgICAgIHBtQ29sb3IgPSBtQW1QbVNlbGVjdGVkQ29sb3I7CisgICAgICAgICAgICBwbUFscGhhID0gQUxQSEFfQU1QTV9QUkVTU0VEOworICAgICAgICB9CisKKyAgICAgICAgLy8gRHJhdyB0aGUgdHdvIGNpcmNsZXMKKyAgICAgICAgbVBhaW50QW1QbUNpcmNsZVtBTV0uc2V0Q29sb3IoYW1Db2xvcik7CisgICAgICAgIG1QYWludEFtUG1DaXJjbGVbQU1dLnNldEFscGhhKGFtQWxwaGEpOworICAgICAgICBjYW52YXMuZHJhd0NpcmNsZShpc0xheW91dFJ0bCA/IG1SaWdodEluZGljYXRvclhDZW50ZXIgOiBtTGVmdEluZGljYXRvclhDZW50ZXIsCisgICAgICAgICAgICAgICAgbUFtUG1ZQ2VudGVyLCBtQW1QbUNpcmNsZVJhZGl1cywgbVBhaW50QW1QbUNpcmNsZVtBTV0pOworCisgICAgICAgIG1QYWludEFtUG1DaXJjbGVbUE1dLnNldENvbG9yKHBtQ29sb3IpOworICAgICAgICBtUGFpbnRBbVBtQ2lyY2xlW1BNXS5zZXRBbHBoYShwbUFscGhhKTsKKyAgICAgICAgY2FudmFzLmRyYXdDaXJjbGUoaXNMYXlvdXRSdGwgPyBtTGVmdEluZGljYXRvclhDZW50ZXIgOiBtUmlnaHRJbmRpY2F0b3JYQ2VudGVyLAorICAgICAgICAgICAgICAgIG1BbVBtWUNlbnRlciwgbUFtUG1DaXJjbGVSYWRpdXMsIG1QYWludEFtUG1DaXJjbGVbUE1dKTsKKworICAgICAgICAvLyBEcmF3IHRoZSBBTS9QTSB0ZXh0cyBvbiB0b3AKKyAgICAgICAgbVBhaW50QW1QbVRleHQuc2V0Q29sb3IobUFtUG1UZXh0Q29sb3IpOworICAgICAgICBmbG9hdCB0ZXh0WUNlbnRlciA9IG1BbVBtWUNlbnRlciAtCisgICAgICAgICAgICAgICAgKGludCkgKG1QYWludEFtUG1UZXh0LmRlc2NlbnQoKSArIG1QYWludEFtUG1UZXh0LmFzY2VudCgpKSAvIDI7CisKKyAgICAgICAgY2FudmFzLmRyYXdUZXh0KGlzTGF5b3V0UnRsID8gbUFtUG1UZXh0W1BNXSA6IG1BbVBtVGV4dFtBTV0sIG1MZWZ0SW5kaWNhdG9yWENlbnRlciwKKyAgICAgICAgICAgICAgICB0ZXh0WUNlbnRlciwgbVBhaW50QW1QbVRleHQpOworICAgICAgICBjYW52YXMuZHJhd1RleHQoaXNMYXlvdXRSdGwgPyBtQW1QbVRleHRbQU1dIDogbUFtUG1UZXh0W1BNXSwgbVJpZ2h0SW5kaWNhdG9yWENlbnRlciwKKyAgICAgICAgICAgICAgICB0ZXh0WUNlbnRlciwgbVBhaW50QW1QbVRleHQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkcmF3U2VsZWN0b3IoQ2FudmFzIGNhbnZhcywgaW50IGluZGV4KSB7CisgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgY3VycmVudCByYWRpdXMgYXQgd2hpY2ggdG8gcGxhY2UgdGhlIHNlbGVjdGlvbiBjaXJjbGUuCisgICAgICAgIG1MaW5lTGVuZ3RoW2luZGV4XSA9IChpbnQpIChtQ2lyY2xlUmFkaXVzW2luZGV4XQorICAgICAgICAgICAgICAgICogbU51bWJlcnNSYWRpdXNNdWx0aXBsaWVyW2luZGV4XSAqIG1BbmltYXRpb25SYWRpdXNNdWx0aXBsaWVyW2luZGV4XSk7CisKKyAgICAgICAgZG91YmxlIHNlbGVjdGlvblJhZGlhbnMgPSBNYXRoLnRvUmFkaWFucyhtU2VsZWN0aW9uRGVncmVlc1tpbmRleF0pOworCisgICAgICAgIGludCBwb2ludFggPSBtWENlbnRlciArIChpbnQpIChtTGluZUxlbmd0aFtpbmRleF0gKiBNYXRoLnNpbihzZWxlY3Rpb25SYWRpYW5zKSk7CisgICAgICAgIGludCBwb2ludFkgPSBtWUNlbnRlciAtIChpbnQpIChtTGluZUxlbmd0aFtpbmRleF0gKiBNYXRoLmNvcyhzZWxlY3Rpb25SYWRpYW5zKSk7CisKKyAgICAgICAgLy8gRHJhdyB0aGUgc2VsZWN0aW9uIGNpcmNsZQorICAgICAgICBjYW52YXMuZHJhd0NpcmNsZShwb2ludFgsIHBvaW50WSwgbVNlbGVjdGlvblJhZGl1c1tpbmRleF0sCisgICAgICAgICAgICAgICAgbVBhaW50U2VsZWN0b3JbaW5kZXggJSAyXVtTRUxFQ1RPUl9DSVJDTEVdKTsKKworICAgICAgICAvLyBEcmF3IHRoZSBkb3QgaWYgbmVlZGVkCisgICAgICAgIGlmIChtU2VsZWN0aW9uRGVncmVlc1tpbmRleF0gJSAzMCAhPSAwKSB7CisgICAgICAgICAgICAvLyBXZSdyZSBub3Qgb24gYSBkaXJlY3QgdGljaworICAgICAgICAgICAgY2FudmFzLmRyYXdDaXJjbGUocG9pbnRYLCBwb2ludFksIChtU2VsZWN0aW9uUmFkaXVzW2luZGV4XSAqIDIgLyA3KSwKKyAgICAgICAgICAgICAgICAgICAgbVBhaW50U2VsZWN0b3JbaW5kZXggJSAyXVtTRUxFQ1RPUl9ET1RdKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFdlJ3JlIG5vdCBkcmF3aW5nIHRoZSBkb3QsIHNvIHNob3J0ZW4gdGhlIGxpbmUgdG8gb25seSBnbyBhcyBmYXIgYXMgdGhlIGVkZ2Ugb2YgdGhlCisgICAgICAgICAgICAvLyBzZWxlY3Rpb24gY2lyY2xlCisgICAgICAgICAgICBpbnQgbGluZUxlbmd0aCA9IG1MaW5lTGVuZ3RoW2luZGV4XSAtIG1TZWxlY3Rpb25SYWRpdXNbaW5kZXhdOworICAgICAgICAgICAgcG9pbnRYID0gbVhDZW50ZXIgKyAoaW50KSAobGluZUxlbmd0aCAqIE1hdGguc2luKHNlbGVjdGlvblJhZGlhbnMpKTsKKyAgICAgICAgICAgIHBvaW50WSA9IG1ZQ2VudGVyIC0gKGludCkgKGxpbmVMZW5ndGggKiBNYXRoLmNvcyhzZWxlY3Rpb25SYWRpYW5zKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBEcmF3IHRoZSBsaW5lCisgICAgICAgIGNhbnZhcy5kcmF3TGluZShtWENlbnRlciwgbVlDZW50ZXIsIHBvaW50WCwgcG9pbnRZLAorICAgICAgICAgICAgICAgIG1QYWludFNlbGVjdG9yW2luZGV4ICUgMl1bU0VMRUNUT1JfTElORV0pOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkcmF3RGVidWcoQ2FudmFzIGNhbnZhcykgeworICAgICAgICAvLyBEcmF3IG91dGVyIG51bWJlcnMgY2lyY2xlCisgICAgICAgIGZpbmFsIGZsb2F0IG91dGVyUmFkaXVzID0gbUNpcmNsZVJhZGl1c1tIT1VSU10gKiBtTnVtYmVyc1JhZGl1c011bHRpcGxpZXJbSE9VUlNdOworICAgICAgICBjYW52YXMuZHJhd0NpcmNsZShtWENlbnRlciwgbVlDZW50ZXIsIG91dGVyUmFkaXVzLCBtUGFpbnREZWJ1Zyk7CisKKyAgICAgICAgLy8gRHJhdyBpbm5lciBudW1iZXJzIGNpcmNsZQorICAgICAgICBmaW5hbCBmbG9hdCBpbm5lclJhZGl1cyA9IG1DaXJjbGVSYWRpdXNbSE9VUlNdICogbU51bWJlcnNSYWRpdXNNdWx0aXBsaWVyW0hPVVJTX0lOTkVSXTsKKyAgICAgICAgY2FudmFzLmRyYXdDaXJjbGUobVhDZW50ZXIsIG1ZQ2VudGVyLCBpbm5lclJhZGl1cywgbVBhaW50RGVidWcpOworCisgICAgICAgIC8vIERyYXcgb3V0ZXIgYmFja2dyb3VuZCBjaXJjbGUKKyAgICAgICAgY2FudmFzLmRyYXdDaXJjbGUobVhDZW50ZXIsIG1ZQ2VudGVyLCBtQ2lyY2xlUmFkaXVzW0hPVVJTXSwgbVBhaW50RGVidWcpOworCisgICAgICAgIC8vIERyYXcgb3V0ZXIgcmVjdGFuZ2xlIGZvciBjaXJjbGVzCisgICAgICAgIGZsb2F0IGxlZnQgPSBtWENlbnRlciAtIG91dGVyUmFkaXVzOworICAgICAgICBmbG9hdCB0b3AgPSBtWUNlbnRlciAtIG91dGVyUmFkaXVzOworICAgICAgICBmbG9hdCByaWdodCA9IG1YQ2VudGVyICsgb3V0ZXJSYWRpdXM7CisgICAgICAgIGZsb2F0IGJvdHRvbSA9IG1ZQ2VudGVyICsgb3V0ZXJSYWRpdXM7CisgICAgICAgIG1SZWN0RiA9IG5ldyBSZWN0RihsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pOworICAgICAgICBjYW52YXMuZHJhd1JlY3QobVJlY3RGLCBtUGFpbnREZWJ1Zyk7CisKKyAgICAgICAgLy8gRHJhdyBvdXRlciByZWN0YW5nbGUgZm9yIGJhY2tncm91bmQKKyAgICAgICAgbGVmdCA9IG1YQ2VudGVyIC0gbUNpcmNsZVJhZGl1c1tIT1VSU107CisgICAgICAgIHRvcCA9IG1ZQ2VudGVyIC0gbUNpcmNsZVJhZGl1c1tIT1VSU107CisgICAgICAgIHJpZ2h0ID0gbVhDZW50ZXIgKyBtQ2lyY2xlUmFkaXVzW0hPVVJTXTsKKyAgICAgICAgYm90dG9tID0gbVlDZW50ZXIgKyBtQ2lyY2xlUmFkaXVzW0hPVVJTXTsKKyAgICAgICAgbVJlY3RGLnNldChsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pOworICAgICAgICBjYW52YXMuZHJhd1JlY3QobVJlY3RGLCBtUGFpbnREZWJ1Zyk7CisKKyAgICAgICAgLy8gRHJhdyBvdXRlciB2aWV3IHJlY3RhbmdsZQorICAgICAgICBtUmVjdEYuc2V0KDAsIDAsIGdldFdpZHRoKCksIGdldEhlaWdodCgpKTsKKyAgICAgICAgY2FudmFzLmRyYXdSZWN0KG1SZWN0RiwgbVBhaW50RGVidWcpOworCisgICAgICAgIC8vIERyYXcgc2VsZWN0ZWQgdGltZQorICAgICAgICBmaW5hbCBTdHJpbmcgc2VsZWN0ZWQgPSBTdHJpbmcuZm9ybWF0KCIlMDJkOiUwMmQiLCBnZXRDdXJyZW50SG91cigpLCBnZXRDdXJyZW50TWludXRlKCkpOworCisgICAgICAgIFZpZXdHcm91cC5MYXlvdXRQYXJhbXMgbHAgPSBuZXcgVmlld0dyb3VwLkxheW91dFBhcmFtcyhWaWV3R3JvdXAuTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVCwKKyAgICAgICAgICAgICAgICBWaWV3R3JvdXAuTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVCk7CisgICAgICAgIFRleHRWaWV3IHR2ID0gbmV3IFRleHRWaWV3KGdldENvbnRleHQoKSk7CisgICAgICAgIHR2LnNldExheW91dFBhcmFtcyhscCk7CisgICAgICAgIHR2LnNldFRleHQoc2VsZWN0ZWQpOworICAgICAgICB0di5tZWFzdXJlKE1lYXN1cmVTcGVjLlVOU1BFQ0lGSUVELCBNZWFzdXJlU3BlYy5VTlNQRUNJRklFRCk7CisgICAgICAgIFBhaW50IHBhaW50ID0gdHYuZ2V0UGFpbnQoKTsKKyAgICAgICAgcGFpbnQuc2V0Q29sb3IoREVCVUdfVEVYVF9DT0xPUik7CisKKyAgICAgICAgZmluYWwgaW50IHdpZHRoID0gdHYuZ2V0TWVhc3VyZWRXaWR0aCgpOworCisgICAgICAgIGZsb2F0IGhlaWdodCA9IHBhaW50LmRlc2NlbnQoKSAtIHBhaW50LmFzY2VudCgpOworICAgICAgICBmbG9hdCB4ID0gbVhDZW50ZXIgLSB3aWR0aCAvIDI7CisgICAgICAgIGZsb2F0IHkgPSBtWUNlbnRlciArIDEuNWYgKiBoZWlnaHQ7CisKKyAgICAgICAgY2FudmFzLmRyYXdUZXh0KHNlbGVjdGVkLnRvU3RyaW5nKCksIHgsIHksIHBhaW50KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY2FsY3VsYXRlR3JpZFNpemVzSG91cnMoKSB7CisgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgdGV4dCBwb3NpdGlvbnMKKyAgICAgICAgZmxvYXQgbnVtYmVyc1JhZGl1cyA9IG1DaXJjbGVSYWRpdXNbSE9VUlNdCisgICAgICAgICAgICAgICAgKiBtTnVtYmVyc1JhZGl1c011bHRpcGxpZXJbSE9VUlNdICogbUFuaW1hdGlvblJhZGl1c011bHRpcGxpZXJbSE9VUlNdOworCisgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgcG9zaXRpb25zIGZvciB0aGUgMTIgbnVtYmVycyBpbiB0aGUgbWFpbiBjaXJjbGUuCisgICAgICAgIGNhbGN1bGF0ZUdyaWRTaXplcyhtUGFpbnRbSE9VUlNdLCBudW1iZXJzUmFkaXVzLCBtWENlbnRlciwgbVlDZW50ZXIsCisgICAgICAgICAgICAgICAgbVRleHRTaXplW0hPVVJTXSwgbVRleHRHcmlkSGVpZ2h0c1tIT1VSU10sIG1UZXh0R3JpZFdpZHRoc1tIT1VSU10pOworCisgICAgICAgIC8vIElmIHdlIGhhdmUgYW4gaW5uZXIgY2lyY2xlLCBjYWxjdWxhdGUgdGhvc2UgcG9zaXRpb25zIHRvby4KKyAgICAgICAgaWYgKG1JczI0SG91ck1vZGUpIHsKKyAgICAgICAgICAgIGZsb2F0IGlubmVyTnVtYmVyc1JhZGl1cyA9IG1DaXJjbGVSYWRpdXNbSE9VUlNfSU5ORVJdCisgICAgICAgICAgICAgICAgICAgICogbU51bWJlcnNSYWRpdXNNdWx0aXBsaWVyW0hPVVJTX0lOTkVSXQorICAgICAgICAgICAgICAgICAgICAqIG1BbmltYXRpb25SYWRpdXNNdWx0aXBsaWVyW0hPVVJTX0lOTkVSXTsKKworICAgICAgICAgICAgY2FsY3VsYXRlR3JpZFNpemVzKG1QYWludFtIT1VSU10sIGlubmVyTnVtYmVyc1JhZGl1cywgbVhDZW50ZXIsIG1ZQ2VudGVyLAorICAgICAgICAgICAgICAgICAgICBtSW5uZXJUZXh0U2l6ZSwgbUlubmVyVGV4dEdyaWRIZWlnaHRzLCBtSW5uZXJUZXh0R3JpZFdpZHRocyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY2FsY3VsYXRlR3JpZFNpemVzTWludXRlcygpIHsKKyAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSB0ZXh0IHBvc2l0aW9ucworICAgICAgICBmbG9hdCBudW1iZXJzUmFkaXVzID0gbUNpcmNsZVJhZGl1c1tNSU5VVEVTXQorICAgICAgICAgICAgICAgICogbU51bWJlcnNSYWRpdXNNdWx0aXBsaWVyW01JTlVURVNdICogbUFuaW1hdGlvblJhZGl1c011bHRpcGxpZXJbTUlOVVRFU107CisKKyAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbnMgZm9yIHRoZSAxMiBudW1iZXJzIGluIHRoZSBtYWluIGNpcmNsZS4KKyAgICAgICAgY2FsY3VsYXRlR3JpZFNpemVzKG1QYWludFtNSU5VVEVTXSwgbnVtYmVyc1JhZGl1cywgbVhDZW50ZXIsIG1ZQ2VudGVyLAorICAgICAgICAgICAgICAgIG1UZXh0U2l6ZVtNSU5VVEVTXSwgbVRleHRHcmlkSGVpZ2h0c1tNSU5VVEVTXSwgbVRleHRHcmlkV2lkdGhzW01JTlVURVNdKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFVzaW5nIHRoZSB0cmlnb25vbWV0cmljIFVuaXQgQ2lyY2xlLCBjYWxjdWxhdGUgdGhlIHBvc2l0aW9ucyB0aGF0IHRoZSB0ZXh0IHdpbGwgbmVlZCB0byBiZQorICAgICAqIGRyYXduIGF0IGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgY2lyY2xlIHJhZGl1cy4gUGxhY2UgdGhlIHZhbHVlcyBpbiB0aGUgdGV4dEdyaWRIZWlnaHRzIGFuZAorICAgICAqIHRleHRHcmlkV2lkdGhzIHBhcmFtZXRlcnMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBjYWxjdWxhdGVHcmlkU2l6ZXMoUGFpbnQgcGFpbnQsIGZsb2F0IG51bWJlcnNSYWRpdXMsIGZsb2F0IHhDZW50ZXIsCisgICAgICAgICAgICBmbG9hdCB5Q2VudGVyLCBmbG9hdCB0ZXh0U2l6ZSwgZmxvYXRbXSB0ZXh0R3JpZEhlaWdodHMsIGZsb2F0W10gdGV4dEdyaWRXaWR0aHMpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhlIG51bWJlcnMgbmVlZCB0byBiZSBkcmF3biBpbiBhIDd4NyBncmlkLCByZXByZXNlbnRpbmcgdGhlIHBvaW50cyBvbiB0aGUgVW5pdCBDaXJjbGUuCisgICAgICAgICAqLworICAgICAgICBmaW5hbCBmbG9hdCBvZmZzZXQxID0gbnVtYmVyc1JhZGl1czsKKyAgICAgICAgLy8gY29zKDMwKSA9IGEgLyByID0+IHIgKiBjb3MoMzApCisgICAgICAgIGZpbmFsIGZsb2F0IG9mZnNldDIgPSBudW1iZXJzUmFkaXVzICogQ09TSU5FXzMwX0RFR1JFRVM7CisgICAgICAgIC8vIHNpbigzMCkgPSBvIC8gciA9PiByICogc2luKDMwKQorICAgICAgICBmaW5hbCBmbG9hdCBvZmZzZXQzID0gbnVtYmVyc1JhZGl1cyAqIFNJTkVfMzBfREVHUkVFUzsKKworICAgICAgICBwYWludC5zZXRUZXh0U2l6ZSh0ZXh0U2l6ZSk7CisgICAgICAgIC8vIFdlJ2xsIG5lZWQgeVRleHRCYXNlIHRvIGJlIHNsaWdodGx5IGxvd2VyIHRvIGFjY291bnQgZm9yIHRoZSB0ZXh0J3MgYmFzZWxpbmUuCisgICAgICAgIHlDZW50ZXIgLT0gKHBhaW50LmRlc2NlbnQoKSArIHBhaW50LmFzY2VudCgpKSAvIDI7CisKKyAgICAgICAgdGV4dEdyaWRIZWlnaHRzWzBdID0geUNlbnRlciAtIG9mZnNldDE7CisgICAgICAgIHRleHRHcmlkV2lkdGhzWzBdID0geENlbnRlciAtIG9mZnNldDE7CisgICAgICAgIHRleHRHcmlkSGVpZ2h0c1sxXSA9IHlDZW50ZXIgLSBvZmZzZXQyOworICAgICAgICB0ZXh0R3JpZFdpZHRoc1sxXSA9IHhDZW50ZXIgLSBvZmZzZXQyOworICAgICAgICB0ZXh0R3JpZEhlaWdodHNbMl0gPSB5Q2VudGVyIC0gb2Zmc2V0MzsKKyAgICAgICAgdGV4dEdyaWRXaWR0aHNbMl0gPSB4Q2VudGVyIC0gb2Zmc2V0MzsKKyAgICAgICAgdGV4dEdyaWRIZWlnaHRzWzNdID0geUNlbnRlcjsKKyAgICAgICAgdGV4dEdyaWRXaWR0aHNbM10gPSB4Q2VudGVyOworICAgICAgICB0ZXh0R3JpZEhlaWdodHNbNF0gPSB5Q2VudGVyICsgb2Zmc2V0MzsKKyAgICAgICAgdGV4dEdyaWRXaWR0aHNbNF0gPSB4Q2VudGVyICsgb2Zmc2V0MzsKKyAgICAgICAgdGV4dEdyaWRIZWlnaHRzWzVdID0geUNlbnRlciArIG9mZnNldDI7CisgICAgICAgIHRleHRHcmlkV2lkdGhzWzVdID0geENlbnRlciArIG9mZnNldDI7CisgICAgICAgIHRleHRHcmlkSGVpZ2h0c1s2XSA9IHlDZW50ZXIgKyBvZmZzZXQxOworICAgICAgICB0ZXh0R3JpZFdpZHRoc1s2XSA9IHhDZW50ZXIgKyBvZmZzZXQxOworICAgIH0KKworICAgIC8qKgorICAgICAqIERyYXcgdGhlIDEyIHRleHQgdmFsdWVzIGF0IHRoZSBwb3NpdGlvbnMgc3BlY2lmaWVkIGJ5IHRoZSB0ZXh0R3JpZCBwYXJhbWV0ZXJzLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBkcmF3VGV4dEVsZW1lbnRzKENhbnZhcyBjYW52YXMsIGZsb2F0IHRleHRTaXplLCBUeXBlZmFjZSB0eXBlZmFjZSwgU3RyaW5nW10gdGV4dHMsCisgICAgICAgICAgICBmbG9hdFtdIHRleHRHcmlkV2lkdGhzLCBmbG9hdFtdIHRleHRHcmlkSGVpZ2h0cywgUGFpbnQgcGFpbnQpIHsKKyAgICAgICAgcGFpbnQuc2V0VGV4dFNpemUodGV4dFNpemUpOworICAgICAgICBwYWludC5zZXRUeXBlZmFjZSh0eXBlZmFjZSk7CisgICAgICAgIGNhbnZhcy5kcmF3VGV4dCh0ZXh0c1swXSwgdGV4dEdyaWRXaWR0aHNbM10sIHRleHRHcmlkSGVpZ2h0c1swXSwgcGFpbnQpOworICAgICAgICBjYW52YXMuZHJhd1RleHQodGV4dHNbMV0sIHRleHRHcmlkV2lkdGhzWzRdLCB0ZXh0R3JpZEhlaWdodHNbMV0sIHBhaW50KTsKKyAgICAgICAgY2FudmFzLmRyYXdUZXh0KHRleHRzWzJdLCB0ZXh0R3JpZFdpZHRoc1s1XSwgdGV4dEdyaWRIZWlnaHRzWzJdLCBwYWludCk7CisgICAgICAgIGNhbnZhcy5kcmF3VGV4dCh0ZXh0c1szXSwgdGV4dEdyaWRXaWR0aHNbNl0sIHRleHRHcmlkSGVpZ2h0c1szXSwgcGFpbnQpOworICAgICAgICBjYW52YXMuZHJhd1RleHQodGV4dHNbNF0sIHRleHRHcmlkV2lkdGhzWzVdLCB0ZXh0R3JpZEhlaWdodHNbNF0sIHBhaW50KTsKKyAgICAgICAgY2FudmFzLmRyYXdUZXh0KHRleHRzWzVdLCB0ZXh0R3JpZFdpZHRoc1s0XSwgdGV4dEdyaWRIZWlnaHRzWzVdLCBwYWludCk7CisgICAgICAgIGNhbnZhcy5kcmF3VGV4dCh0ZXh0c1s2XSwgdGV4dEdyaWRXaWR0aHNbM10sIHRleHRHcmlkSGVpZ2h0c1s2XSwgcGFpbnQpOworICAgICAgICBjYW52YXMuZHJhd1RleHQodGV4dHNbN10sIHRleHRHcmlkV2lkdGhzWzJdLCB0ZXh0R3JpZEhlaWdodHNbNV0sIHBhaW50KTsKKyAgICAgICAgY2FudmFzLmRyYXdUZXh0KHRleHRzWzhdLCB0ZXh0R3JpZFdpZHRoc1sxXSwgdGV4dEdyaWRIZWlnaHRzWzRdLCBwYWludCk7CisgICAgICAgIGNhbnZhcy5kcmF3VGV4dCh0ZXh0c1s5XSwgdGV4dEdyaWRXaWR0aHNbMF0sIHRleHRHcmlkSGVpZ2h0c1szXSwgcGFpbnQpOworICAgICAgICBjYW52YXMuZHJhd1RleHQodGV4dHNbMTBdLCB0ZXh0R3JpZFdpZHRoc1sxXSwgdGV4dEdyaWRIZWlnaHRzWzJdLCBwYWludCk7CisgICAgICAgIGNhbnZhcy5kcmF3VGV4dCh0ZXh0c1sxMV0sIHRleHRHcmlkV2lkdGhzWzJdLCB0ZXh0R3JpZEhlaWdodHNbMV0sIHBhaW50KTsKKyAgICB9CisKKyAgICAvLyBVc2VkIGZvciBhbmltYXRpbmcgdGhlIGhvdXJzIGJ5IGNoYW5naW5nIHRoZWlyIHJhZGl1cworICAgIHByaXZhdGUgdm9pZCBzZXRBbmltYXRpb25SYWRpdXNNdWx0aXBsaWVySG91cnMoZmxvYXQgYW5pbWF0aW9uUmFkaXVzTXVsdGlwbGllcikgeworICAgICAgICBtQW5pbWF0aW9uUmFkaXVzTXVsdGlwbGllcltIT1VSU10gPSBhbmltYXRpb25SYWRpdXNNdWx0aXBsaWVyOworICAgICAgICBtQW5pbWF0aW9uUmFkaXVzTXVsdGlwbGllcltIT1VSU19JTk5FUl0gPSBhbmltYXRpb25SYWRpdXNNdWx0aXBsaWVyOworICAgIH0KKworICAgIC8vIFVzZWQgZm9yIGFuaW1hdGluZyB0aGUgbWludXRlcyBieSBjaGFuZ2luZyB0aGVpciByYWRpdXMKKyAgICBwcml2YXRlIHZvaWQgc2V0QW5pbWF0aW9uUmFkaXVzTXVsdGlwbGllck1pbnV0ZXMoZmxvYXQgYW5pbWF0aW9uUmFkaXVzTXVsdGlwbGllcikgeworICAgICAgICBtQW5pbWF0aW9uUmFkaXVzTXVsdGlwbGllcltNSU5VVEVTXSA9IGFuaW1hdGlvblJhZGl1c011bHRpcGxpZXI7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0QW5pbWF0b3IgZ2V0UmFkaXVzRGlzYXBwZWFyQW5pbWF0b3IoT2JqZWN0IHRhcmdldCwKKyAgICAgICAgICAgIFN0cmluZyByYWRpdXNQcm9wZXJ0eU5hbWUsIEludmFsaWRhdGVVcGRhdGVMaXN0ZW5lciB1cGRhdGVMaXN0ZW5lciwKKyAgICAgICAgICAgIGZsb2F0IG1pZFJhZGl1c011bHRpcGxpZXIsIGZsb2F0IGVuZFJhZGl1c011bHRpcGxpZXIpIHsKKyAgICAgICAgS2V5ZnJhbWUga2YwLCBrZjEsIGtmMjsKKyAgICAgICAgZmxvYXQgbWlkd2F5UG9pbnQgPSAwLjJmOworICAgICAgICBpbnQgZHVyYXRpb24gPSA1MDA7CisKKyAgICAgICAga2YwID0gS2V5ZnJhbWUub2ZGbG9hdCgwZiwgMSk7CisgICAgICAgIGtmMSA9IEtleWZyYW1lLm9mRmxvYXQobWlkd2F5UG9pbnQsIG1pZFJhZGl1c011bHRpcGxpZXIpOworICAgICAgICBrZjIgPSBLZXlmcmFtZS5vZkZsb2F0KDFmLCBlbmRSYWRpdXNNdWx0aXBsaWVyKTsKKyAgICAgICAgUHJvcGVydHlWYWx1ZXNIb2xkZXIgcmFkaXVzRGlzYXBwZWFyID0gUHJvcGVydHlWYWx1ZXNIb2xkZXIub2ZLZXlmcmFtZSgKKyAgICAgICAgICAgICAgICByYWRpdXNQcm9wZXJ0eU5hbWUsIGtmMCwga2YxLCBrZjIpOworCisgICAgICAgIE9iamVjdEFuaW1hdG9yIGFuaW1hdG9yID0gT2JqZWN0QW5pbWF0b3Iub2ZQcm9wZXJ0eVZhbHVlc0hvbGRlcigKKyAgICAgICAgICAgICAgICB0YXJnZXQsIHJhZGl1c0Rpc2FwcGVhcikuc2V0RHVyYXRpb24oZHVyYXRpb24pOworICAgICAgICBhbmltYXRvci5hZGRVcGRhdGVMaXN0ZW5lcih1cGRhdGVMaXN0ZW5lcik7CisgICAgICAgIHJldHVybiBhbmltYXRvcjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RBbmltYXRvciBnZXRSYWRpdXNSZWFwcGVhckFuaW1hdG9yKE9iamVjdCB0YXJnZXQsCisgICAgICAgICAgICBTdHJpbmcgcmFkaXVzUHJvcGVydHlOYW1lLCBJbnZhbGlkYXRlVXBkYXRlTGlzdGVuZXIgdXBkYXRlTGlzdGVuZXIsCisgICAgICAgICAgICBmbG9hdCBtaWRSYWRpdXNNdWx0aXBsaWVyLCBmbG9hdCBlbmRSYWRpdXNNdWx0aXBsaWVyKSB7CisgICAgICAgIEtleWZyYW1lIGtmMCwga2YxLCBrZjIsIGtmMzsKKyAgICAgICAgZmxvYXQgbWlkd2F5UG9pbnQgPSAwLjJmOworICAgICAgICBpbnQgZHVyYXRpb24gPSA1MDA7CisKKyAgICAgICAgLy8gU2V0IHVwIGFuaW1hdG9yIGZvciByZWFwcGVhcmluZy4KKyAgICAgICAgZmxvYXQgZGVsYXlNdWx0aXBsaWVyID0gMC4yNWY7CisgICAgICAgIGZsb2F0IHRyYW5zaXRpb25EdXJhdGlvbk11bHRpcGxpZXIgPSAxZjsKKyAgICAgICAgZmxvYXQgdG90YWxEdXJhdGlvbk11bHRpcGxpZXIgPSB0cmFuc2l0aW9uRHVyYXRpb25NdWx0aXBsaWVyICsgZGVsYXlNdWx0aXBsaWVyOworICAgICAgICBpbnQgdG90YWxEdXJhdGlvbiA9IChpbnQpIChkdXJhdGlvbiAqIHRvdGFsRHVyYXRpb25NdWx0aXBsaWVyKTsKKyAgICAgICAgZmxvYXQgZGVsYXlQb2ludCA9IChkZWxheU11bHRpcGxpZXIgKiBkdXJhdGlvbikgLyB0b3RhbER1cmF0aW9uOworICAgICAgICBtaWR3YXlQb2ludCA9IDEgLSAobWlkd2F5UG9pbnQgKiAoMSAtIGRlbGF5UG9pbnQpKTsKKworICAgICAgICBrZjAgPSBLZXlmcmFtZS5vZkZsb2F0KDBmLCBlbmRSYWRpdXNNdWx0aXBsaWVyKTsKKyAgICAgICAga2YxID0gS2V5ZnJhbWUub2ZGbG9hdChkZWxheVBvaW50LCBlbmRSYWRpdXNNdWx0aXBsaWVyKTsKKyAgICAgICAga2YyID0gS2V5ZnJhbWUub2ZGbG9hdChtaWR3YXlQb2ludCwgbWlkUmFkaXVzTXVsdGlwbGllcik7CisgICAgICAgIGtmMyA9IEtleWZyYW1lLm9mRmxvYXQoMWYsIDEpOworICAgICAgICBQcm9wZXJ0eVZhbHVlc0hvbGRlciByYWRpdXNSZWFwcGVhciA9IFByb3BlcnR5VmFsdWVzSG9sZGVyLm9mS2V5ZnJhbWUoCisgICAgICAgICAgICAgICAgcmFkaXVzUHJvcGVydHlOYW1lLCBrZjAsIGtmMSwga2YyLCBrZjMpOworCisgICAgICAgIE9iamVjdEFuaW1hdG9yIGFuaW1hdG9yID0gT2JqZWN0QW5pbWF0b3Iub2ZQcm9wZXJ0eVZhbHVlc0hvbGRlcigKKyAgICAgICAgICAgICAgICB0YXJnZXQsIHJhZGl1c1JlYXBwZWFyKS5zZXREdXJhdGlvbih0b3RhbER1cmF0aW9uKTsKKyAgICAgICAgYW5pbWF0b3IuYWRkVXBkYXRlTGlzdGVuZXIodXBkYXRlTGlzdGVuZXIpOworICAgICAgICByZXR1cm4gYW5pbWF0b3I7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0QW5pbWF0b3IgZ2V0RmFkZU91dEFuaW1hdG9yKE9iamVjdCB0YXJnZXQsIGludCBzdGFydEFscGhhLCBpbnQgZW5kQWxwaGEsCisgICAgICAgICAgICAgICAgSW52YWxpZGF0ZVVwZGF0ZUxpc3RlbmVyIHVwZGF0ZUxpc3RlbmVyKSB7CisgICAgICAgIGludCBkdXJhdGlvbiA9IDUwMDsKKyAgICAgICAgT2JqZWN0QW5pbWF0b3IgYW5pbWF0b3IgPSBPYmplY3RBbmltYXRvci5vZkludCh0YXJnZXQsICJhbHBoYSIsIHN0YXJ0QWxwaGEsIGVuZEFscGhhKTsKKyAgICAgICAgYW5pbWF0b3Iuc2V0RHVyYXRpb24oZHVyYXRpb24pOworICAgICAgICBhbmltYXRvci5hZGRVcGRhdGVMaXN0ZW5lcih1cGRhdGVMaXN0ZW5lcik7CisKKyAgICAgICAgcmV0dXJuIGFuaW1hdG9yOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdEFuaW1hdG9yIGdldEZhZGVJbkFuaW1hdG9yKE9iamVjdCB0YXJnZXQsIGludCBzdGFydEFscGhhLCBpbnQgZW5kQWxwaGEsCisgICAgICAgICAgICAgICAgSW52YWxpZGF0ZVVwZGF0ZUxpc3RlbmVyIHVwZGF0ZUxpc3RlbmVyKSB7CisgICAgICAgIEtleWZyYW1lIGtmMCwga2YxLCBrZjI7CisgICAgICAgIGludCBkdXJhdGlvbiA9IDUwMDsKKworICAgICAgICAvLyBTZXQgdXAgYW5pbWF0b3IgZm9yIHJlYXBwZWFyaW5nLgorICAgICAgICBmbG9hdCBkZWxheU11bHRpcGxpZXIgPSAwLjI1ZjsKKyAgICAgICAgZmxvYXQgdHJhbnNpdGlvbkR1cmF0aW9uTXVsdGlwbGllciA9IDFmOworICAgICAgICBmbG9hdCB0b3RhbER1cmF0aW9uTXVsdGlwbGllciA9IHRyYW5zaXRpb25EdXJhdGlvbk11bHRpcGxpZXIgKyBkZWxheU11bHRpcGxpZXI7CisgICAgICAgIGludCB0b3RhbER1cmF0aW9uID0gKGludCkgKGR1cmF0aW9uICogdG90YWxEdXJhdGlvbk11bHRpcGxpZXIpOworICAgICAgICBmbG9hdCBkZWxheVBvaW50ID0gKGRlbGF5TXVsdGlwbGllciAqIGR1cmF0aW9uKSAvIHRvdGFsRHVyYXRpb247CisKKyAgICAgICAga2YwID0gS2V5ZnJhbWUub2ZJbnQoMGYsIHN0YXJ0QWxwaGEpOworICAgICAgICBrZjEgPSBLZXlmcmFtZS5vZkludChkZWxheVBvaW50LCBzdGFydEFscGhhKTsKKyAgICAgICAga2YyID0gS2V5ZnJhbWUub2ZJbnQoMWYsIGVuZEFscGhhKTsKKyAgICAgICAgUHJvcGVydHlWYWx1ZXNIb2xkZXIgZmFkZUluID0gUHJvcGVydHlWYWx1ZXNIb2xkZXIub2ZLZXlmcmFtZSgiYWxwaGEiLCBrZjAsIGtmMSwga2YyKTsKKworICAgICAgICBPYmplY3RBbmltYXRvciBhbmltYXRvciA9IE9iamVjdEFuaW1hdG9yLm9mUHJvcGVydHlWYWx1ZXNIb2xkZXIoCisgICAgICAgICAgICAgICAgdGFyZ2V0LCBmYWRlSW4pLnNldER1cmF0aW9uKHRvdGFsRHVyYXRpb24pOworICAgICAgICBhbmltYXRvci5hZGRVcGRhdGVMaXN0ZW5lcih1cGRhdGVMaXN0ZW5lcik7CisgICAgICAgIHJldHVybiBhbmltYXRvcjsKKyAgICB9CisKKyAgICBwcml2YXRlIGNsYXNzIEludmFsaWRhdGVVcGRhdGVMaXN0ZW5lciBpbXBsZW1lbnRzIFZhbHVlQW5pbWF0b3IuQW5pbWF0b3JVcGRhdGVMaXN0ZW5lciB7CisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBvbkFuaW1hdGlvblVwZGF0ZShWYWx1ZUFuaW1hdG9yIGFuaW1hdGlvbikgeworICAgICAgICAgICAgUmFkaWFsVGltZVBpY2tlclZpZXcudGhpcy5pbnZhbGlkYXRlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc3RhcnRIb3Vyc1RvTWludXRlc0FuaW1hdGlvbigpIHsKKyAgICAgICAgaWYgKG1Ib3Vyc1RvTWludXRlc0FuaW1zLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICBtSG91cnNUb01pbnV0ZXNBbmltcy5hZGQoZ2V0UmFkaXVzRGlzYXBwZWFyQW5pbWF0b3IodGhpcywKKyAgICAgICAgICAgICAgICAgICAgImFuaW1hdGlvblJhZGl1c011bHRpcGxpZXJIb3VycyIsIG1JbnZhbGlkYXRlVXBkYXRlTGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgIG1UcmFuc2l0aW9uTWlkUmFkaXVzTXVsdGlwbGllciwgbVRyYW5zaXRpb25FbmRSYWRpdXNNdWx0aXBsaWVyKSk7CisgICAgICAgICAgICBtSG91cnNUb01pbnV0ZXNBbmltcy5hZGQoZ2V0RmFkZU91dEFuaW1hdG9yKG1QYWludFtIT1VSU10sCisgICAgICAgICAgICAgICAgICAgIEFMUEhBX09QQVFVRSwgQUxQSEFfVFJBTlNQQVJFTlQsIG1JbnZhbGlkYXRlVXBkYXRlTGlzdGVuZXIpKTsKKyAgICAgICAgICAgIG1Ib3Vyc1RvTWludXRlc0FuaW1zLmFkZChnZXRGYWRlT3V0QW5pbWF0b3IobVBhaW50U2VsZWN0b3JbSE9VUlNdW1NFTEVDVE9SX0NJUkNMRV0sCisgICAgICAgICAgICAgICAgICAgIEFMUEhBX1NFTEVDVE9SLCBBTFBIQV9UUkFOU1BBUkVOVCwgbUludmFsaWRhdGVVcGRhdGVMaXN0ZW5lcikpOworICAgICAgICAgICAgbUhvdXJzVG9NaW51dGVzQW5pbXMuYWRkKGdldEZhZGVPdXRBbmltYXRvcihtUGFpbnRTZWxlY3RvcltIT1VSU11bU0VMRUNUT1JfRE9UXSwKKyAgICAgICAgICAgICAgICAgICAgQUxQSEFfT1BBUVVFLCBBTFBIQV9UUkFOU1BBUkVOVCwgbUludmFsaWRhdGVVcGRhdGVMaXN0ZW5lcikpOworICAgICAgICAgICAgbUhvdXJzVG9NaW51dGVzQW5pbXMuYWRkKGdldEZhZGVPdXRBbmltYXRvcihtUGFpbnRTZWxlY3RvcltIT1VSU11bU0VMRUNUT1JfTElORV0sCisgICAgICAgICAgICAgICAgICAgIEFMUEhBX1NFTEVDVE9SLCBBTFBIQV9UUkFOU1BBUkVOVCwgbUludmFsaWRhdGVVcGRhdGVMaXN0ZW5lcikpOworCisgICAgICAgICAgICBtSG91cnNUb01pbnV0ZXNBbmltcy5hZGQoZ2V0UmFkaXVzUmVhcHBlYXJBbmltYXRvcih0aGlzLAorICAgICAgICAgICAgICAgICAgICAiYW5pbWF0aW9uUmFkaXVzTXVsdGlwbGllck1pbnV0ZXMiLCBtSW52YWxpZGF0ZVVwZGF0ZUxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICBtVHJhbnNpdGlvbk1pZFJhZGl1c011bHRpcGxpZXIsIG1UcmFuc2l0aW9uRW5kUmFkaXVzTXVsdGlwbGllcikpOworICAgICAgICAgICAgbUhvdXJzVG9NaW51dGVzQW5pbXMuYWRkKGdldEZhZGVJbkFuaW1hdG9yKG1QYWludFtNSU5VVEVTXSwKKyAgICAgICAgICAgICAgICAgICAgQUxQSEFfVFJBTlNQQVJFTlQsIEFMUEhBX09QQVFVRSwgbUludmFsaWRhdGVVcGRhdGVMaXN0ZW5lcikpOworICAgICAgICAgICAgbUhvdXJzVG9NaW51dGVzQW5pbXMuYWRkKGdldEZhZGVJbkFuaW1hdG9yKG1QYWludFNlbGVjdG9yW01JTlVURVNdW1NFTEVDVE9SX0NJUkNMRV0sCisgICAgICAgICAgICAgICAgICAgIEFMUEhBX1RSQU5TUEFSRU5ULCBBTFBIQV9TRUxFQ1RPUiwgbUludmFsaWRhdGVVcGRhdGVMaXN0ZW5lcikpOworICAgICAgICAgICAgbUhvdXJzVG9NaW51dGVzQW5pbXMuYWRkKGdldEZhZGVJbkFuaW1hdG9yKG1QYWludFNlbGVjdG9yW01JTlVURVNdW1NFTEVDVE9SX0RPVF0sCisgICAgICAgICAgICAgICAgICAgIEFMUEhBX1RSQU5TUEFSRU5ULCBBTFBIQV9PUEFRVUUsIG1JbnZhbGlkYXRlVXBkYXRlTGlzdGVuZXIpKTsKKyAgICAgICAgICAgIG1Ib3Vyc1RvTWludXRlc0FuaW1zLmFkZChnZXRGYWRlSW5BbmltYXRvcihtUGFpbnRTZWxlY3RvcltNSU5VVEVTXVtTRUxFQ1RPUl9MSU5FXSwKKyAgICAgICAgICAgICAgICAgICAgQUxQSEFfVFJBTlNQQVJFTlQsIEFMUEhBX1NFTEVDVE9SLCBtSW52YWxpZGF0ZVVwZGF0ZUxpc3RlbmVyKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobVRyYW5zaXRpb24gIT0gbnVsbCAmJiBtVHJhbnNpdGlvbi5pc1J1bm5pbmcoKSkgeworICAgICAgICAgICAgbVRyYW5zaXRpb24uZW5kKCk7CisgICAgICAgIH0KKyAgICAgICAgbVRyYW5zaXRpb24gPSBuZXcgQW5pbWF0b3JTZXQoKTsKKyAgICAgICAgbVRyYW5zaXRpb24ucGxheVRvZ2V0aGVyKG1Ib3Vyc1RvTWludXRlc0FuaW1zKTsKKyAgICAgICAgbVRyYW5zaXRpb24uc3RhcnQoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc3RhcnRNaW51dGVzVG9Ib3Vyc0FuaW1hdGlvbigpIHsKKyAgICAgICAgaWYgKG1NaW51dGVUb0hvdXJzQW5pbXMuc2l6ZSgpID09IDApIHsKKyAgICAgICAgICAgIG1NaW51dGVUb0hvdXJzQW5pbXMuYWRkKGdldFJhZGl1c0Rpc2FwcGVhckFuaW1hdG9yKHRoaXMsCisgICAgICAgICAgICAgICAgICAgICJhbmltYXRpb25SYWRpdXNNdWx0aXBsaWVyTWludXRlcyIsIG1JbnZhbGlkYXRlVXBkYXRlTGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgIG1UcmFuc2l0aW9uTWlkUmFkaXVzTXVsdGlwbGllciwgbVRyYW5zaXRpb25FbmRSYWRpdXNNdWx0aXBsaWVyKSk7CisgICAgICAgICAgICBtTWludXRlVG9Ib3Vyc0FuaW1zLmFkZChnZXRGYWRlT3V0QW5pbWF0b3IobVBhaW50W01JTlVURVNdLAorICAgICAgICAgICAgICAgICAgICBBTFBIQV9PUEFRVUUsIEFMUEhBX1RSQU5TUEFSRU5ULCBtSW52YWxpZGF0ZVVwZGF0ZUxpc3RlbmVyKSk7CisgICAgICAgICAgICBtTWludXRlVG9Ib3Vyc0FuaW1zLmFkZChnZXRGYWRlT3V0QW5pbWF0b3IobVBhaW50U2VsZWN0b3JbTUlOVVRFU11bU0VMRUNUT1JfQ0lSQ0xFXSwKKyAgICAgICAgICAgICAgICAgICAgQUxQSEFfU0VMRUNUT1IsIEFMUEhBX1RSQU5TUEFSRU5ULCBtSW52YWxpZGF0ZVVwZGF0ZUxpc3RlbmVyKSk7CisgICAgICAgICAgICBtTWludXRlVG9Ib3Vyc0FuaW1zLmFkZChnZXRGYWRlT3V0QW5pbWF0b3IobVBhaW50U2VsZWN0b3JbTUlOVVRFU11bU0VMRUNUT1JfRE9UXSwKKyAgICAgICAgICAgICAgICAgICAgQUxQSEFfT1BBUVVFLCBBTFBIQV9UUkFOU1BBUkVOVCwgbUludmFsaWRhdGVVcGRhdGVMaXN0ZW5lcikpOworICAgICAgICAgICAgbU1pbnV0ZVRvSG91cnNBbmltcy5hZGQoZ2V0RmFkZU91dEFuaW1hdG9yKG1QYWludFNlbGVjdG9yW01JTlVURVNdW1NFTEVDVE9SX0xJTkVdLAorICAgICAgICAgICAgICAgICAgICBBTFBIQV9TRUxFQ1RPUiwgQUxQSEFfVFJBTlNQQVJFTlQsIG1JbnZhbGlkYXRlVXBkYXRlTGlzdGVuZXIpKTsKKworICAgICAgICAgICAgbU1pbnV0ZVRvSG91cnNBbmltcy5hZGQoZ2V0UmFkaXVzUmVhcHBlYXJBbmltYXRvcih0aGlzLAorICAgICAgICAgICAgICAgICAgICAiYW5pbWF0aW9uUmFkaXVzTXVsdGlwbGllckhvdXJzIiwgbUludmFsaWRhdGVVcGRhdGVMaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgbVRyYW5zaXRpb25NaWRSYWRpdXNNdWx0aXBsaWVyLCBtVHJhbnNpdGlvbkVuZFJhZGl1c011bHRpcGxpZXIpKTsKKyAgICAgICAgICAgIG1NaW51dGVUb0hvdXJzQW5pbXMuYWRkKGdldEZhZGVJbkFuaW1hdG9yKG1QYWludFtIT1VSU10sCisgICAgICAgICAgICAgICAgICAgIEFMUEhBX1RSQU5TUEFSRU5ULCBBTFBIQV9PUEFRVUUsIG1JbnZhbGlkYXRlVXBkYXRlTGlzdGVuZXIpKTsKKyAgICAgICAgICAgIG1NaW51dGVUb0hvdXJzQW5pbXMuYWRkKGdldEZhZGVJbkFuaW1hdG9yKG1QYWludFNlbGVjdG9yW0hPVVJTXVtTRUxFQ1RPUl9DSVJDTEVdLAorICAgICAgICAgICAgICAgICAgICBBTFBIQV9UUkFOU1BBUkVOVCwgQUxQSEFfU0VMRUNUT1IsIG1JbnZhbGlkYXRlVXBkYXRlTGlzdGVuZXIpKTsKKyAgICAgICAgICAgIG1NaW51dGVUb0hvdXJzQW5pbXMuYWRkKGdldEZhZGVJbkFuaW1hdG9yKG1QYWludFNlbGVjdG9yW0hPVVJTXVtTRUxFQ1RPUl9ET1RdLAorICAgICAgICAgICAgICAgICAgICBBTFBIQV9UUkFOU1BBUkVOVCwgQUxQSEFfT1BBUVVFLCBtSW52YWxpZGF0ZVVwZGF0ZUxpc3RlbmVyKSk7CisgICAgICAgICAgICBtTWludXRlVG9Ib3Vyc0FuaW1zLmFkZChnZXRGYWRlSW5BbmltYXRvcihtUGFpbnRTZWxlY3RvcltIT1VSU11bU0VMRUNUT1JfTElORV0sCisgICAgICAgICAgICAgICAgICAgIEFMUEhBX1RSQU5TUEFSRU5ULCBBTFBIQV9TRUxFQ1RPUiwgbUludmFsaWRhdGVVcGRhdGVMaXN0ZW5lcikpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1UcmFuc2l0aW9uICE9IG51bGwgJiYgbVRyYW5zaXRpb24uaXNSdW5uaW5nKCkpIHsKKyAgICAgICAgICAgIG1UcmFuc2l0aW9uLmVuZCgpOworICAgICAgICB9CisgICAgICAgIG1UcmFuc2l0aW9uID0gbmV3IEFuaW1hdG9yU2V0KCk7CisgICAgICAgIG1UcmFuc2l0aW9uLnBsYXlUb2dldGhlcihtTWludXRlVG9Ib3Vyc0FuaW1zKTsKKyAgICAgICAgbVRyYW5zaXRpb24uc3RhcnQoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGludCBnZXREZWdyZWVzRnJvbVhZKGZsb2F0IHgsIGZsb2F0IHkpIHsKKyAgICAgICAgZmluYWwgZG91YmxlIGh5cG90ZW51c2UgPSBNYXRoLnNxcnQoCisgICAgICAgICAgICAgICAgKHkgLSBtWUNlbnRlcikgKiAoeSAtIG1ZQ2VudGVyKSArICh4IC0gbVhDZW50ZXIpICogKHggLSBtWENlbnRlcikpOworCisgICAgICAgIC8vIEJhc2ljIGNoZWNrIGlmIHdlJ3JlIG91dHNpZGUgdGhlIHJhbmdlIG9mIHRoZSBkaXNrCisgICAgICAgIGlmIChoeXBvdGVudXNlID4gbUNpcmNsZVJhZGl1c1tIT1VSU10pIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICAvLyBDaGVjaworICAgICAgICBpZiAobUlzMjRIb3VyTW9kZSAmJiBtU2hvd0hvdXJzKSB7CisgICAgICAgICAgICBpZiAoaHlwb3RlbnVzZSA+PSBtTWluSHlwb3RlbnVzZUZvcklubmVyTnVtYmVyCisgICAgICAgICAgICAgICAgICAgICYmIGh5cG90ZW51c2UgPD0gbUhhbGZ3YXlIeXBvdGVudXNlUG9pbnQpIHsKKyAgICAgICAgICAgICAgICBtSXNPbklubmVyQ2lyY2xlID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaHlwb3RlbnVzZSA8PSBtTWF4SHlwb3RlbnVzZUZvck91dGVyTnVtYmVyCisgICAgICAgICAgICAgICAgICAgICYmIGh5cG90ZW51c2UgPj0gbUhhbGZ3YXlIeXBvdGVudXNlUG9pbnQpIHsKKyAgICAgICAgICAgICAgICBtSXNPbklubmVyQ2lyY2xlID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZpbmFsIGludCBpbmRleCA9ICAobVNob3dIb3VycykgPyBIT1VSUyA6IE1JTlVURVM7CisgICAgICAgICAgICBmaW5hbCBmbG9hdCBsZW5ndGggPSAobUNpcmNsZVJhZGl1c1tpbmRleF0gKiBtTnVtYmVyc1JhZGl1c011bHRpcGxpZXJbaW5kZXhdKTsKKyAgICAgICAgICAgIGZpbmFsIGludCBkaXN0YW5jZVRvTnVtYmVyID0gKGludCkgTWF0aC5hYnMoaHlwb3RlbnVzZSAtIGxlbmd0aCk7CisgICAgICAgICAgICBmaW5hbCBpbnQgbWF4QWxsb3dlZERpc3RhbmNlID0KKyAgICAgICAgICAgICAgICAgICAgKGludCkgKG1DaXJjbGVSYWRpdXNbaW5kZXhdICogKDEgLSBtTnVtYmVyc1JhZGl1c011bHRpcGxpZXJbaW5kZXhdKSk7CisgICAgICAgICAgICBpZiAoZGlzdGFuY2VUb051bWJlciA+IG1heEFsbG93ZWREaXN0YW5jZSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGZsb2F0IG9wcG9zaXRlID0gTWF0aC5hYnMoeSAtIG1ZQ2VudGVyKTsKKyAgICAgICAgZG91YmxlIGRlZ3JlZXMgPSBNYXRoLnRvRGVncmVlcyhNYXRoLmFzaW4ob3Bwb3NpdGUgLyBoeXBvdGVudXNlKSk7CisKKyAgICAgICAgLy8gTm93IHdlIGhhdmUgdG8gdHJhbnNsYXRlIHRvIHRoZSBjb3JyZWN0IHF1YWRyYW50LgorICAgICAgICBib29sZWFuIHJpZ2h0U2lkZSA9ICh4ID4gbVhDZW50ZXIpOworICAgICAgICBib29sZWFuIHRvcFNpZGUgPSAoeSA8IG1ZQ2VudGVyKTsKKyAgICAgICAgaWYgKHJpZ2h0U2lkZSAmJiB0b3BTaWRlKSB7CisgICAgICAgICAgICBkZWdyZWVzID0gOTAgLSBkZWdyZWVzOworICAgICAgICB9IGVsc2UgaWYgKHJpZ2h0U2lkZSAmJiAhdG9wU2lkZSkgeworICAgICAgICAgICAgZGVncmVlcyA9IDkwICsgZGVncmVlczsKKyAgICAgICAgfSBlbHNlIGlmICghcmlnaHRTaWRlICYmICF0b3BTaWRlKSB7CisgICAgICAgICAgICBkZWdyZWVzID0gMjcwIC0gZGVncmVlczsKKyAgICAgICAgfSBlbHNlIGlmICghcmlnaHRTaWRlICYmIHRvcFNpZGUpIHsKKyAgICAgICAgICAgIGRlZ3JlZXMgPSAyNzAgKyBkZWdyZWVzOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoaW50KSBkZWdyZWVzOworICAgIH0KKworICAgIHByaXZhdGUgaW50IGdldElzVG91Y2hpbmdBbU9yUG0oZmxvYXQgeCwgZmxvYXQgeSkgeworICAgICAgICBmaW5hbCBib29sZWFuIGlzTGF5b3V0UnRsID0gaXNMYXlvdXRSdGwoKTsKKyAgICAgICAgaW50IHNxdWFyZWRZRGlzdGFuY2UgPSAoaW50KSAoKHkgLSBtQW1QbVlDZW50ZXIpICogKHkgLSBtQW1QbVlDZW50ZXIpKTsKKworICAgICAgICBpbnQgZGlzdGFuY2VUb0FtQ2VudGVyID0gKGludCkgTWF0aC5zcXJ0KAorICAgICAgICAgICAgICAgICh4IC0gbUxlZnRJbmRpY2F0b3JYQ2VudGVyKSAqICh4IC0gbUxlZnRJbmRpY2F0b3JYQ2VudGVyKSArIHNxdWFyZWRZRGlzdGFuY2UpOworICAgICAgICBpZiAoZGlzdGFuY2VUb0FtQ2VudGVyIDw9IG1BbVBtQ2lyY2xlUmFkaXVzKSB7CisgICAgICAgICAgICByZXR1cm4gKGlzTGF5b3V0UnRsID8gUE0gOiBBTSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZGlzdGFuY2VUb1BtQ2VudGVyID0gKGludCkgTWF0aC5zcXJ0KAorICAgICAgICAgICAgICAgICh4IC0gbVJpZ2h0SW5kaWNhdG9yWENlbnRlcikgKiAoeCAtIG1SaWdodEluZGljYXRvclhDZW50ZXIpICsgc3F1YXJlZFlEaXN0YW5jZSk7CisgICAgICAgIGlmIChkaXN0YW5jZVRvUG1DZW50ZXIgPD0gbUFtUG1DaXJjbGVSYWRpdXMpIHsKKyAgICAgICAgICAgIHJldHVybiAoaXNMYXlvdXRSdGwgPyBBTSA6IFBNKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5laXRoZXIgd2FzIGNsb3NlIGVub3VnaC4KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBib29sZWFuIG9uVG91Y2goVmlldyB2LCBNb3Rpb25FdmVudCBldmVudCkgeworICAgICAgICBpZighbUlucHV0RW5hYmxlZCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBmbG9hdCBldmVudFggPSBldmVudC5nZXRYKCk7CisgICAgICAgIGZpbmFsIGZsb2F0IGV2ZW50WSA9IGV2ZW50LmdldFkoKTsKKworICAgICAgICBpbnQgZGVncmVlczsKKyAgICAgICAgaW50IHNuYXBEZWdyZWVzOworICAgICAgICBib29sZWFuIHJlc3VsdCA9IGZhbHNlOworCisgICAgICAgIHN3aXRjaChldmVudC5nZXRBY3Rpb24oKSkgeworICAgICAgICAgICAgY2FzZSBNb3Rpb25FdmVudC5BQ1RJT05fRE9XTjoKKyAgICAgICAgICAgIGNhc2UgTW90aW9uRXZlbnQuQUNUSU9OX01PVkU6CisgICAgICAgICAgICAgICAgbUFtT3JQbVByZXNzZWQgPSBnZXRJc1RvdWNoaW5nQW1PclBtKGV2ZW50WCwgZXZlbnRZKTsKKyAgICAgICAgICAgICAgICBpZiAobUFtT3JQbVByZXNzZWQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkZWdyZWVzID0gZ2V0RGVncmVlc0Zyb21YWShldmVudFgsIGV2ZW50WSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChkZWdyZWVzICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzbmFwRGVncmVlcyA9IChtU2hvd0hvdXJzID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc25hcE9ubHkzMHMoZGVncmVlcywgMCkgOiBzbmFwUHJlZmVyMzBzKGRlZ3JlZXMpKSAlIDM2MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtU2hvd0hvdXJzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVNlbGVjdGlvbkRlZ3JlZXNbSE9VUlNdID0gc25hcERlZ3JlZXM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVNlbGVjdGlvbkRlZ3JlZXNbSE9VUlNfSU5ORVJdID0gc25hcERlZ3JlZXM7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TZWxlY3Rpb25EZWdyZWVzW01JTlVURVNdID0gc25hcERlZ3JlZXM7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtSGFwdGljRmVlZGJhY2soSGFwdGljRmVlZGJhY2tDb25zdGFudHMuQ0xPQ0tfVElDSyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobUxpc3RlbmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobVNob3dIb3VycykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtTGlzdGVuZXIub25WYWx1ZVNlbGVjdGVkKEhPVVJTLCBnZXRDdXJyZW50SG91cigpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1MaXN0ZW5lci5vblZhbHVlU2VsZWN0ZWQoTUlOVVRFUywgZ2V0Q3VycmVudE1pbnV0ZSgpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgICAgICAgICAgY2FzZSBNb3Rpb25FdmVudC5BQ1RJT05fVVA6CisgICAgICAgICAgICAgICAgbUFtT3JQbVByZXNzZWQgPSBnZXRJc1RvdWNoaW5nQW1PclBtKGV2ZW50WCwgZXZlbnRZKTsKKyAgICAgICAgICAgICAgICBpZiAobUFtT3JQbVByZXNzZWQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1BbU9yUG0gIT0gbUFtT3JQbVByZXNzZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN3YXBBbVBtKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbUFtT3JQbVByZXNzZWQgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1MaXN0ZW5lciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtTGlzdGVuZXIub25WYWx1ZVNlbGVjdGVkKEFNUE0sIGdldEN1cnJlbnRIb3VyKCksIHRydWUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZGVncmVlcyA9IGdldERlZ3JlZXNGcm9tWFkoZXZlbnRYLCBldmVudFkpOworICAgICAgICAgICAgICAgICAgICBpZiAoZGVncmVlcyAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc25hcERlZ3JlZXMgPSAobVNob3dIb3VycyA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNuYXBPbmx5MzBzKGRlZ3JlZXMsIDApIDogc25hcFByZWZlcjMwcyhkZWdyZWVzKSkgJSAzNjA7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobVNob3dIb3VycykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TZWxlY3Rpb25EZWdyZWVzW0hPVVJTXSA9IHNuYXBEZWdyZWVzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TZWxlY3Rpb25EZWdyZWVzW0hPVVJTX0lOTkVSXSA9IHNuYXBEZWdyZWVzOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtU2VsZWN0aW9uRGVncmVlc1tNSU5VVEVTXSA9IHNuYXBEZWdyZWVzOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1MaXN0ZW5lciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1TaG93SG91cnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUxpc3RlbmVyLm9uVmFsdWVTZWxlY3RlZChIT1VSUywgZ2V0Q3VycmVudEhvdXIoKSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1MaXN0ZW5lci5vblZhbHVlU2VsZWN0ZWQoTUlOVVRFUywgZ2V0Q3VycmVudE1pbnV0ZSgpLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOZWNlc3NhcnkgZm9yIGFjY2Vzc2liaWxpdHksIHRvIGVuc3VyZSB3ZSBzdXBwb3J0ICJzY3JvbGxpbmciIGZvcndhcmQgYW5kIGJhY2t3YXJkCisgICAgICogaW4gdGhlIGNpcmNsZS4KKyAgICAgKi8KKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBvbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5Tm9kZUluZm8oQWNjZXNzaWJpbGl0eU5vZGVJbmZvIGluZm8pIHsKKyAgICAgICAgc3VwZXIub25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eU5vZGVJbmZvKGluZm8pOworICAgICAgICBpbmZvLmFkZEFjdGlvbihBY2Nlc3NpYmlsaXR5Tm9kZUluZm8uQUNUSU9OX1NDUk9MTF9GT1JXQVJEKTsKKyAgICAgICAgaW5mby5hZGRBY3Rpb24oQWNjZXNzaWJpbGl0eU5vZGVJbmZvLkFDVElPTl9TQ1JPTExfQkFDS1dBUkQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFubm91bmNlIHRoZSBjdXJyZW50bHktc2VsZWN0ZWQgdGltZSB3aGVuIGxhdW5jaGVkLgorICAgICAqLworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBib29sZWFuIGRpc3BhdGNoUG9wdWxhdGVBY2Nlc3NpYmlsaXR5RXZlbnQoQWNjZXNzaWJpbGl0eUV2ZW50IGV2ZW50KSB7CisgICAgICAgIGlmIChldmVudC5nZXRFdmVudFR5cGUoKSA9PSBBY2Nlc3NpYmlsaXR5RXZlbnQuVFlQRV9XSU5ET1dfU1RBVEVfQ0hBTkdFRCkgeworICAgICAgICAgICAgLy8gQ2xlYXIgdGhlIGV2ZW50J3MgY3VycmVudCB0ZXh0IHNvIHRoYXQgb25seSB0aGUgY3VycmVudCB0aW1lIHdpbGwgYmUgc3Bva2VuLgorICAgICAgICAgICAgZXZlbnQuZ2V0VGV4dCgpLmNsZWFyKCk7CisgICAgICAgICAgICBUaW1lIHRpbWUgPSBuZXcgVGltZSgpOworICAgICAgICAgICAgdGltZS5ob3VyID0gZ2V0Q3VycmVudEhvdXIoKTsKKyAgICAgICAgICAgIHRpbWUubWludXRlID0gZ2V0Q3VycmVudE1pbnV0ZSgpOworICAgICAgICAgICAgbG9uZyBtaWxsaXMgPSB0aW1lLm5vcm1hbGl6ZSh0cnVlKTsKKyAgICAgICAgICAgIGludCBmbGFncyA9IERhdGVVdGlscy5GT1JNQVRfU0hPV19USU1FOworICAgICAgICAgICAgaWYgKG1JczI0SG91ck1vZGUpIHsKKyAgICAgICAgICAgICAgICBmbGFncyB8PSBEYXRlVXRpbHMuRk9STUFUXzI0SE9VUjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyB0aW1lU3RyaW5nID0gRGF0ZVV0aWxzLmZvcm1hdERhdGVUaW1lKGdldENvbnRleHQoKSwgbWlsbGlzLCBmbGFncyk7CisgICAgICAgICAgICBldmVudC5nZXRUZXh0KCkuYWRkKHRpbWVTdHJpbmcpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1cGVyLmRpc3BhdGNoUG9wdWxhdGVBY2Nlc3NpYmlsaXR5RXZlbnQoZXZlbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFdoZW4gc2Nyb2xsIGZvcndhcmQvYmFja3dhcmQgZXZlbnRzIGFyZSByZWNlaXZlZCwganVtcCB0aGUgdGltZSB0byB0aGUgaGlnaGVyL2xvd2VyCisgICAgICogZGlzY3JldGUsIHZpc2libGUgdmFsdWUgb24gdGhlIGNpcmNsZS4KKyAgICAgKi8KKyAgICBAU3VwcHJlc3NMaW50KCJOZXdBcGkiKQorICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBib29sZWFuIHBlcmZvcm1BY2Nlc3NpYmlsaXR5QWN0aW9uKGludCBhY3Rpb24sIEJ1bmRsZSBhcmd1bWVudHMpIHsKKyAgICAgICAgaWYgKHN1cGVyLnBlcmZvcm1BY2Nlc3NpYmlsaXR5QWN0aW9uKGFjdGlvbiwgYXJndW1lbnRzKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpbnQgY2hhbmdlTXVsdGlwbGllciA9IDA7CisgICAgICAgIGlmIChhY3Rpb24gPT0gQWNjZXNzaWJpbGl0eU5vZGVJbmZvLkFDVElPTl9TQ1JPTExfRk9SV0FSRCkgeworICAgICAgICAgICAgY2hhbmdlTXVsdGlwbGllciA9IDE7CisgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uID09IEFjY2Vzc2liaWxpdHlOb2RlSW5mby5BQ1RJT05fU0NST0xMX0JBQ0tXQVJEKSB7CisgICAgICAgICAgICBjaGFuZ2VNdWx0aXBsaWVyID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNoYW5nZU11bHRpcGxpZXIgIT0gMCkgeworICAgICAgICAgICAgaW50IHZhbHVlID0gMDsKKyAgICAgICAgICAgIGludCBzdGVwU2l6ZSA9IDA7CisgICAgICAgICAgICBpZiAobVNob3dIb3VycykgeworICAgICAgICAgICAgICAgIHN0ZXBTaXplID0gREVHUkVFU19GT1JfT05FX0hPVVI7CisgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRDdXJyZW50SG91cigpICUgMTI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0ZXBTaXplID0gREVHUkVFU19GT1JfT05FX01JTlVURTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldEN1cnJlbnRNaW51dGUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IGRlZ3JlZXMgPSB2YWx1ZSAqIHN0ZXBTaXplOworICAgICAgICAgICAgZGVncmVlcyA9IHNuYXBPbmx5MzBzKGRlZ3JlZXMsIGNoYW5nZU11bHRpcGxpZXIpOworICAgICAgICAgICAgdmFsdWUgPSBkZWdyZWVzIC8gc3RlcFNpemU7CisgICAgICAgICAgICBpbnQgbWF4VmFsdWUgPSAwOworICAgICAgICAgICAgaW50IG1pblZhbHVlID0gMDsKKyAgICAgICAgICAgIGlmIChtU2hvd0hvdXJzKSB7CisgICAgICAgICAgICAgICAgaWYgKG1JczI0SG91ck1vZGUpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4VmFsdWUgPSAyMzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IDEyOworICAgICAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IDU1OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHZhbHVlID4gbWF4VmFsdWUpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBzY3JvbGxlZCBmb3J3YXJkIHBhc3QgdGhlIGhpZ2hlc3QgbnVtYmVyLCB3cmFwIGFyb3VuZCB0byB0aGUgbG93ZXN0LgorICAgICAgICAgICAgICAgIHZhbHVlID0gbWluVmFsdWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIDwgbWluVmFsdWUpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBzY3JvbGxlZCBiYWNrd2FyZCBwYXN0IHRoZSBsb3dlc3QgbnVtYmVyLCB3cmFwIGFyb3VuZCB0byB0aGUgaGlnaGVzdC4KKyAgICAgICAgICAgICAgICB2YWx1ZSA9IG1heFZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1TaG93SG91cnMpIHsKKyAgICAgICAgICAgICAgICBzZXRDdXJyZW50SG91cih2YWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKG1MaXN0ZW5lciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIG1MaXN0ZW5lci5vblZhbHVlU2VsZWN0ZWQoSE9VUlMsIHZhbHVlLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXRDdXJyZW50TWludXRlKHZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAobUxpc3RlbmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbUxpc3RlbmVyLm9uVmFsdWVTZWxlY3RlZChNSU5VVEVTLCB2YWx1ZSwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldElucHV0RW5hYmxlZChib29sZWFuIGlucHV0RW5hYmxlZCkgeworICAgICAgICBtSW5wdXRFbmFibGVkID0gaW5wdXRFbmFibGVkOworICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1JhZGlvQnV0dG9uLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvUmFkaW9CdXR0b24uamF2YQppbmRleCBhMGZlZjdkLi40NmM2YTU0IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvUmFkaW9CdXR0b24uamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvUmFkaW9CdXR0b24uamF2YQpAQCAtNTksOCArNTksMTIgQEAKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5hdHRyLnJhZGlvQnV0dG9uU3R5bGUpOwogICAgIH0KIAotICAgIHB1YmxpYyBSYWRpb0J1dHRvbihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIFJhZGlvQnV0dG9uKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIFJhZGlvQnV0dG9uKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgIH0KIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1JhdGluZ0Jhci5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1JhdGluZ0Jhci5qYXZhCmluZGV4IDRkM2M1NmMuLjgyYjQ5MGUgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9SYXRpbmdCYXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvUmF0aW5nQmFyLmphdmEKQEAgLTgyLDExICs4MiwxNSBAQAogICAgIAogICAgIHByaXZhdGUgT25SYXRpbmdCYXJDaGFuZ2VMaXN0ZW5lciBtT25SYXRpbmdCYXJDaGFuZ2VMaXN0ZW5lcjsKICAgICAKLSAgICBwdWJsaWMgUmF0aW5nQmFyKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKLSAgICAgICAgCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywgUi5zdHlsZWFibGUuUmF0aW5nQmFyLAotICAgICAgICAgICAgICAgIGRlZlN0eWxlLCAwKTsKKyAgICBwdWJsaWMgUmF0aW5nQmFyKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIFJhdGluZ0JhcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIFIuc3R5bGVhYmxlLlJhdGluZ0JhciwgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIGZpbmFsIGludCBudW1TdGFycyA9IGEuZ2V0SW50KFIuc3R5bGVhYmxlLlJhdGluZ0Jhcl9udW1TdGFycywgbU51bVN0YXJzKTsKICAgICAgICAgc2V0SXNJbmRpY2F0b3IoYS5nZXRCb29sZWFuKFIuc3R5bGVhYmxlLlJhdGluZ0Jhcl9pc0luZGljYXRvciwgIW1Jc1VzZXJTZWVrYWJsZSkpOwogICAgICAgICBmaW5hbCBmbG9hdCByYXRpbmcgPSBhLmdldEZsb2F0KFIuc3R5bGVhYmxlLlJhdGluZ0Jhcl9yYXRpbmcsIC0xKTsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9SZWxhdGl2ZUxheW91dC5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1JlbGF0aXZlTGF5b3V0LmphdmEKaW5kZXggZTAzZTgzZC4uNzBlZjEwYiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1JlbGF0aXZlTGF5b3V0LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1JlbGF0aXZlTGF5b3V0LmphdmEKQEAgLTIyOCwyNCArMjI4LDI3IEBACiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfV0lEVEggPSAweDAwMDEwMDAwOwogCiAgICAgcHVibGljIFJlbGF0aXZlTGF5b3V0KENvbnRleHQgY29udGV4dCkgewotICAgICAgICBzdXBlcihjb250ZXh0KTsKLSAgICAgICAgcXVlcnlDb21wYXRpYmlsaXR5TW9kZXMoY29udGV4dCk7CisgICAgICAgIHRoaXMoY29udGV4dCwgbnVsbCk7CiAgICAgfQogCiAgICAgcHVibGljIFJlbGF0aXZlTGF5b3V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzKTsKLSAgICAgICAgaW5pdEZyb21BdHRyaWJ1dGVzKGNvbnRleHQsIGF0dHJzKTsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgMCk7CisgICAgfQorCisgICAgcHVibGljIFJlbGF0aXZlTGF5b3V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIFJlbGF0aXZlTGF5b3V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworICAgICAgICBpbml0RnJvbUF0dHJpYnV0ZXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgICAgICBxdWVyeUNvbXBhdGliaWxpdHlNb2Rlcyhjb250ZXh0KTsKICAgICB9CiAKLSAgICBwdWJsaWMgUmVsYXRpdmVMYXlvdXQoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOwotICAgICAgICBpbml0RnJvbUF0dHJpYnV0ZXMoY29udGV4dCwgYXR0cnMpOwotICAgICAgICBxdWVyeUNvbXBhdGliaWxpdHlNb2Rlcyhjb250ZXh0KTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHZvaWQgaW5pdEZyb21BdHRyaWJ1dGVzKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywgUi5zdHlsZWFibGUuUmVsYXRpdmVMYXlvdXQpOworICAgIHByaXZhdGUgdm9pZCBpbml0RnJvbUF0dHJpYnV0ZXMoCisgICAgICAgICAgICBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgUi5zdHlsZWFibGUuUmVsYXRpdmVMYXlvdXQsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgICAgICBtSWdub3JlR3Jhdml0eSA9IGEuZ2V0UmVzb3VyY2VJZChSLnN0eWxlYWJsZS5SZWxhdGl2ZUxheW91dF9pZ25vcmVHcmF2aXR5LCBWaWV3Lk5PX0lEKTsKICAgICAgICAgbUdyYXZpdHkgPSBhLmdldEludChSLnN0eWxlYWJsZS5SZWxhdGl2ZUxheW91dF9ncmF2aXR5LCBtR3Jhdml0eSk7CiAgICAgICAgIGEucmVjeWNsZSgpOwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1Njcm9sbFZpZXcuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9TY3JvbGxWaWV3LmphdmEKaW5kZXggNjY4MDM5My4uMDgyZDcyOCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1Njcm9sbFZpZXcuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvU2Nyb2xsVmlldy5qYXZhCkBAIC0xNjIsMTIgKzE2MiwxNiBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIuc2Nyb2xsVmlld1N0eWxlKTsKICAgICB9CiAKLSAgICBwdWJsaWMgU2Nyb2xsVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIFNjcm9sbFZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU2Nyb2xsVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgaW5pdFNjcm9sbFZpZXcoKTsKIAotICAgICAgICBUeXBlZEFycmF5IGEgPQotICAgICAgICAgICAgY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5TY3JvbGxWaWV3LCBkZWZTdHlsZSwgMCk7CisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuU2Nyb2xsVmlldywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgc2V0RmlsbFZpZXdwb3J0KGEuZ2V0Qm9vbGVhbihSLnN0eWxlYWJsZS5TY3JvbGxWaWV3X2ZpbGxWaWV3cG9ydCwgZmFsc2UpKTsKIApkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1Njcm9sbGVyLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvU2Nyb2xsZXIuamF2YQppbmRleCAzYmZkMzlkLi4xYTBjZTljIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvU2Nyb2xsZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvU2Nyb2xsZXIuamF2YQpAQCAtNjEsNiArNjEsOCBAQAogICogfTwvcHJlPgogICovCiBwdWJsaWMgY2xhc3MgU2Nyb2xsZXIgIHsKKyAgICBwcml2YXRlIGZpbmFsIEludGVycG9sYXRvciBtSW50ZXJwb2xhdG9yOworCiAgICAgcHJpdmF0ZSBpbnQgbU1vZGU7CiAKICAgICBwcml2YXRlIGludCBtU3RhcnRYOwpAQCAtODEsNyArODMsNiBAQAogICAgIHByaXZhdGUgZmxvYXQgbURlbHRhWDsKICAgICBwcml2YXRlIGZsb2F0IG1EZWx0YVk7CiAgICAgcHJpdmF0ZSBib29sZWFuIG1GaW5pc2hlZDsKLSAgICBwcml2YXRlIEludGVycG9sYXRvciBtSW50ZXJwb2xhdG9yOwogICAgIHByaXZhdGUgYm9vbGVhbiBtRmx5d2hlZWw7CiAKICAgICBwcml2YXRlIGZsb2F0IG1WZWxvY2l0eTsKQEAgLTE0MiwxOCArMTQzLDggQEAKICAgICAgICAgICAgIFNQTElORV9USU1FW2ldID0gY29lZiAqICgoMS4wZiAtIHkpICogUDEgKyB5ICogUDIpICsgeSAqIHkgKiB5OwogICAgICAgICB9CiAgICAgICAgIFNQTElORV9QT1NJVElPTltOQl9TQU1QTEVTXSA9IFNQTElORV9USU1FW05CX1NBTVBMRVNdID0gMS4wZjsKLQotICAgICAgICAvLyBUaGlzIGNvbnRyb2xzIHRoZSB2aXNjb3VzIGZsdWlkIGVmZmVjdCAoaG93IG11Y2ggb2YgaXQpCi0gICAgICAgIHNWaXNjb3VzRmx1aWRTY2FsZSA9IDguMGY7Ci0gICAgICAgIC8vIG11c3QgYmUgc2V0IHRvIDEuMCAodXNlZCBpbiB2aXNjb3VzRmx1aWQoKSkKLSAgICAgICAgc1Zpc2NvdXNGbHVpZE5vcm1hbGl6ZSA9IDEuMGY7Ci0gICAgICAgIHNWaXNjb3VzRmx1aWROb3JtYWxpemUgPSAxLjBmIC8gdmlzY291c0ZsdWlkKDEuMGYpOwotCiAgICAgfQogCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmxvYXQgc1Zpc2NvdXNGbHVpZFNjYWxlOwotICAgIHByaXZhdGUgc3RhdGljIGZsb2F0IHNWaXNjb3VzRmx1aWROb3JtYWxpemU7Ci0KICAgICAvKioKICAgICAgKiBDcmVhdGUgYSBTY3JvbGxlciB3aXRoIHRoZSBkZWZhdWx0IGR1cmF0aW9uIGFuZCBpbnRlcnBvbGF0b3IuCiAgICAgICovCkBAIC0xNzgsNyArMTY5LDExIEBACiAgICAgICovCiAgICAgcHVibGljIFNjcm9sbGVyKENvbnRleHQgY29udGV4dCwgSW50ZXJwb2xhdG9yIGludGVycG9sYXRvciwgYm9vbGVhbiBmbHl3aGVlbCkgewogICAgICAgICBtRmluaXNoZWQgPSB0cnVlOwotICAgICAgICBtSW50ZXJwb2xhdG9yID0gaW50ZXJwb2xhdG9yOworICAgICAgICBpZiAoaW50ZXJwb2xhdG9yID09IG51bGwpIHsKKyAgICAgICAgICAgIG1JbnRlcnBvbGF0b3IgPSBuZXcgVmlzY291c0ZsdWlkSW50ZXJwb2xhdG9yKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtSW50ZXJwb2xhdG9yID0gaW50ZXJwb2xhdG9yOworICAgICAgICB9CiAgICAgICAgIG1QcGkgPSBjb250ZXh0LmdldFJlc291cmNlcygpLmdldERpc3BsYXlNZXRyaWNzKCkuZGVuc2l0eSAqIDE2MC4wZjsKICAgICAgICAgbURlY2VsZXJhdGlvbiA9IGNvbXB1dGVEZWNlbGVyYXRpb24oVmlld0NvbmZpZ3VyYXRpb24uZ2V0U2Nyb2xsRnJpY3Rpb24oKSk7CiAgICAgICAgIG1GbHl3aGVlbCA9IGZseXdoZWVsOwpAQCAtMzEyLDEzICszMDcsNyBAQAogICAgICAgICBpZiAodGltZVBhc3NlZCA8IG1EdXJhdGlvbikgewogICAgICAgICAgICAgc3dpdGNoIChtTW9kZSkgewogICAgICAgICAgICAgY2FzZSBTQ1JPTExfTU9ERToKLSAgICAgICAgICAgICAgICBmbG9hdCB4ID0gdGltZVBhc3NlZCAqIG1EdXJhdGlvblJlY2lwcm9jYWw7Ci0gICAgCi0gICAgICAgICAgICAgICAgaWYgKG1JbnRlcnBvbGF0b3IgPT0gbnVsbCkKLSAgICAgICAgICAgICAgICAgICAgeCA9IHZpc2NvdXNGbHVpZCh4KTsgCi0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICB4ID0gbUludGVycG9sYXRvci5nZXRJbnRlcnBvbGF0aW9uKHgpOwotICAgIAorICAgICAgICAgICAgICAgIGZpbmFsIGZsb2F0IHggPSBtSW50ZXJwb2xhdG9yLmdldEludGVycG9sYXRpb24odGltZVBhc3NlZCAqIG1EdXJhdGlvblJlY2lwcm9jYWwpOwogICAgICAgICAgICAgICAgIG1DdXJyWCA9IG1TdGFydFggKyBNYXRoLnJvdW5kKHggKiBtRGVsdGFYKTsKICAgICAgICAgICAgICAgICBtQ3VyclkgPSBtU3RhcnRZICsgTWF0aC5yb3VuZCh4ICogbURlbHRhWSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC00OTksMjAgKzQ4OCw2IEBACiAgICAgICAgIHJldHVybiBtRmxpbmdGcmljdGlvbiAqIG1QaHlzaWNhbENvZWZmICogTWF0aC5leHAoREVDRUxFUkFUSU9OX1JBVEUgLyBkZWNlbE1pbnVzT25lICogbCk7CiAgICAgfQogCi0gICAgc3RhdGljIGZsb2F0IHZpc2NvdXNGbHVpZChmbG9hdCB4KQotICAgIHsKLSAgICAgICAgeCAqPSBzVmlzY291c0ZsdWlkU2NhbGU7Ci0gICAgICAgIGlmICh4IDwgMS4wZikgewotICAgICAgICAgICAgeCAtPSAoMS4wZiAtIChmbG9hdClNYXRoLmV4cCgteCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZmxvYXQgc3RhcnQgPSAwLjM2Nzg3OTQ0MTE3ZjsgICAvLyAxL2UgPT0gZXhwKC0xKQotICAgICAgICAgICAgeCA9IDEuMGYgLSAoZmxvYXQpTWF0aC5leHAoMS4wZiAtIHgpOwotICAgICAgICAgICAgeCA9IHN0YXJ0ICsgeCAqICgxLjBmIC0gc3RhcnQpOwotICAgICAgICB9Ci0gICAgICAgIHggKj0gc1Zpc2NvdXNGbHVpZE5vcm1hbGl6ZTsKLSAgICAgICAgcmV0dXJuIHg7Ci0gICAgfQotICAgIAogICAgIC8qKgogICAgICAqIFN0b3BzIHRoZSBhbmltYXRpb24uIENvbnRyYXJ5IHRvIHtAbGluayAjZm9yY2VGaW5pc2hlZChib29sZWFuKX0sCiAgICAgICogYWJvcnRpbmcgdGhlIGFuaW1hdGluZyBjYXVzZSB0aGUgc2Nyb2xsZXIgdG8gbW92ZSB0byB0aGUgZmluYWwgeCBhbmQgeQpAQCAtNTgzLDQgKzU1OCw0MSBAQAogICAgICAgICByZXR1cm4gIW1GaW5pc2hlZCAmJiBNYXRoLnNpZ251bSh4dmVsKSA9PSBNYXRoLnNpZ251bShtRmluYWxYIC0gbVN0YXJ0WCkgJiYKICAgICAgICAgICAgICAgICBNYXRoLnNpZ251bSh5dmVsKSA9PSBNYXRoLnNpZ251bShtRmluYWxZIC0gbVN0YXJ0WSk7CiAgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFZpc2NvdXNGbHVpZEludGVycG9sYXRvciBpbXBsZW1lbnRzIEludGVycG9sYXRvciB7CisgICAgICAgIC8qKiBDb250cm9scyB0aGUgdmlzY291cyBmbHVpZCBlZmZlY3QgKGhvdyBtdWNoIG9mIGl0KS4gKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZmxvYXQgVklTQ09VU19GTFVJRF9TQ0FMRSA9IDguMGY7CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZmxvYXQgVklTQ09VU19GTFVJRF9OT1JNQUxJWkU7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGZsb2F0IFZJU0NPVVNfRkxVSURfT0ZGU0VUOworCisgICAgICAgIHN0YXRpYyB7CisKKyAgICAgICAgICAgIC8vIG11c3QgYmUgc2V0IHRvIDEuMCAodXNlZCBpbiB2aXNjb3VzRmx1aWQoKSkKKyAgICAgICAgICAgIFZJU0NPVVNfRkxVSURfTk9STUFMSVpFID0gMS4wZiAvIHZpc2NvdXNGbHVpZCgxLjBmKTsKKyAgICAgICAgICAgIC8vIGFjY291bnQgZm9yIHZlcnkgc21hbGwgZmxvYXRpbmctcG9pbnQgZXJyb3IKKyAgICAgICAgICAgIFZJU0NPVVNfRkxVSURfT0ZGU0VUID0gMS4wZiAtIFZJU0NPVVNfRkxVSURfTk9STUFMSVpFICogdmlzY291c0ZsdWlkKDEuMGYpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmxvYXQgdmlzY291c0ZsdWlkKGZsb2F0IHgpIHsKKyAgICAgICAgICAgIHggKj0gVklTQ09VU19GTFVJRF9TQ0FMRTsKKyAgICAgICAgICAgIGlmICh4IDwgMS4wZikgeworICAgICAgICAgICAgICAgIHggLT0gKDEuMGYgLSAoZmxvYXQpTWF0aC5leHAoLXgpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZmxvYXQgc3RhcnQgPSAwLjM2Nzg3OTQ0MTE3ZjsgICAvLyAxL2UgPT0gZXhwKC0xKQorICAgICAgICAgICAgICAgIHggPSAxLjBmIC0gKGZsb2F0KU1hdGguZXhwKDEuMGYgLSB4KTsKKyAgICAgICAgICAgICAgICB4ID0gc3RhcnQgKyB4ICogKDEuMGYgLSBzdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgZmxvYXQgZ2V0SW50ZXJwb2xhdGlvbihmbG9hdCBpbnB1dCkgeworICAgICAgICAgICAgZmluYWwgZmxvYXQgaW50ZXJwb2xhdGVkID0gVklTQ09VU19GTFVJRF9OT1JNQUxJWkUgKiB2aXNjb3VzRmx1aWQoaW5wdXQpOworICAgICAgICAgICAgaWYgKGlucHV0ID4gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpbnB1dCArIFZJU0NPVVNfRkxVSURfT0ZGU0VUOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGlucHV0OworICAgICAgICB9CisgICAgfQogfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1NlYXJjaFZpZXcuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9TZWFyY2hWaWV3LmphdmEKaW5kZXggMDI4MTYwMi4uMzc5MTI1OCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1NlYXJjaFZpZXcuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvU2VhcmNoVmlldy5qYXZhCkBAIC0yNDIsNyArMjQyLDE1IEBACiAgICAgfQogCiAgICAgcHVibGljIFNlYXJjaFZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMpOworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU2VhcmNoVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBTZWFyY2hWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIExheW91dEluZmxhdGVyIGluZmxhdGVyID0gKExheW91dEluZmxhdGVyKSBjb250ZXh0CiAgICAgICAgICAgICAgICAgLmdldFN5c3RlbVNlcnZpY2UoQ29udGV4dC5MQVlPVVRfSU5GTEFURVJfU0VSVklDRSk7CkBAIC0yODEsNyArMjg5LDggQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfSk7CiAKLSAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLCBSLnN0eWxlYWJsZS5TZWFyY2hWaWV3LCAwLCAwKTsKKyAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBSLnN0eWxlYWJsZS5TZWFyY2hWaWV3LCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgc2V0SWNvbmlmaWVkQnlEZWZhdWx0KGEuZ2V0Qm9vbGVhbihSLnN0eWxlYWJsZS5TZWFyY2hWaWV3X2ljb25pZmllZEJ5RGVmYXVsdCwgdHJ1ZSkpOwogICAgICAgICBpbnQgbWF4V2lkdGggPSBhLmdldERpbWVuc2lvblBpeGVsU2l6ZShSLnN0eWxlYWJsZS5TZWFyY2hWaWV3X21heFdpZHRoLCAtMSk7CiAgICAgICAgIGlmIChtYXhXaWR0aCAhPSAtMSkgewpAQCAtMzA0LDcgKzMxMyw3IEBACiAKICAgICAgICAgYm9vbGVhbiBmb2N1c2FibGUgPSB0cnVlOwogCi0gICAgICAgIGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsIFIuc3R5bGVhYmxlLlZpZXcsIDAsIDApOworICAgICAgICBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLCBSLnN0eWxlYWJsZS5WaWV3LCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgZm9jdXNhYmxlID0gYS5nZXRCb29sZWFuKFIuc3R5bGVhYmxlLlZpZXdfZm9jdXNhYmxlLCBmb2N1c2FibGUpOwogICAgICAgICBhLnJlY3ljbGUoKTsKICAgICAgICAgc2V0Rm9jdXNhYmxlKGZvY3VzYWJsZSk7CkBAIC0xNjYxLDggKzE2NzAsMTQgQEAKICAgICAgICAgICAgIG1UaHJlc2hvbGQgPSBnZXRUaHJlc2hvbGQoKTsKICAgICAgICAgfQogCi0gICAgICAgIHB1YmxpYyBTZWFyY2hBdXRvQ29tcGxldGUoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICAgICAgcHVibGljIFNlYXJjaEF1dG9Db21wbGV0ZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cnMpIHsKKyAgICAgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHJzKTsKKyAgICAgICAgICAgIG1UaHJlc2hvbGQgPSBnZXRUaHJlc2hvbGQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTZWFyY2hBdXRvQ29tcGxldGUoCisgICAgICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHJzLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHJzLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgICAgICBtVGhyZXNob2xkID0gZ2V0VGhyZXNob2xkKCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1NlZWtCYXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9TZWVrQmFyLmphdmEKaW5kZXggMjczN2Y5NC4uZGM3YzA0YyAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1NlZWtCYXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvU2Vla0Jhci5qYXZhCkBAIC03OSw4ICs3OSwxMiBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIuc2Vla0JhclN0eWxlKTsKICAgICB9CiAKLSAgICBwdWJsaWMgU2Vla0JhcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIFNlZWtCYXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU2Vla0JhcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICB9CiAKICAgICBAT3ZlcnJpZGUKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9TbGlkaW5nRHJhd2VyLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvU2xpZGluZ0RyYXdlci5qYXZhCmluZGV4IDUxNzI0NmIuLmVjMDZjMDIgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9TbGlkaW5nRHJhd2VyLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1NsaWRpbmdEcmF3ZXIuamF2YQpAQCAtMTkyLDExICsxOTIsMzIgQEAKICAgICAgKgogICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBhcHBsaWNhdGlvbidzIGVudmlyb25tZW50LgogICAgICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBkZWZpbmVkIGluIFhNTC4KLSAgICAgKiBAcGFyYW0gZGVmU3R5bGUgVGhlIHN0eWxlIHRvIGFwcGx5IHRvIHRoaXMgd2lkZ2V0LgorICAgICAqIEBwYXJhbSBkZWZTdHlsZUF0dHIgQW4gYXR0cmlidXRlIGluIHRoZSBjdXJyZW50IHRoZW1lIHRoYXQgY29udGFpbnMgYQorICAgICAqICAgICAgICByZWZlcmVuY2UgdG8gYSBzdHlsZSByZXNvdXJjZSB0aGF0IHN1cHBsaWVzIGRlZmF1bHQgdmFsdWVzIGZvcgorICAgICAqICAgICAgICB0aGUgdmlldy4gQ2FuIGJlIDAgdG8gbm90IGxvb2sgZm9yIGRlZmF1bHRzLgogICAgICAqLwotICAgIHB1YmxpYyBTbGlkaW5nRHJhd2VyKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKLSAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLCBSLnN0eWxlYWJsZS5TbGlkaW5nRHJhd2VyLCBkZWZTdHlsZSwgMCk7CisgICAgcHVibGljIFNsaWRpbmdEcmF3ZXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IFNsaWRpbmdEcmF3ZXIgZnJvbSBhIHNwZWNpZmllZCBzZXQgb2YgYXR0cmlidXRlcyBkZWZpbmVkIGluIFhNTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBhcHBsaWNhdGlvbidzIGVudmlyb25tZW50LgorICAgICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBkZWZpbmVkIGluIFhNTC4KKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVBdHRyIEFuIGF0dHJpYnV0ZSBpbiB0aGUgY3VycmVudCB0aGVtZSB0aGF0IGNvbnRhaW5zIGEKKyAgICAgKiAgICAgICAgcmVmZXJlbmNlIHRvIGEgc3R5bGUgcmVzb3VyY2UgdGhhdCBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IKKyAgICAgKiAgICAgICAgdGhlIHZpZXcuIENhbiBiZSAwIHRvIG5vdCBsb29rIGZvciBkZWZhdWx0cy4KKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVSZXMgQSByZXNvdXJjZSBpZGVudGlmaWVyIG9mIGEgc3R5bGUgcmVzb3VyY2UgdGhhdAorICAgICAqICAgICAgICBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIHZpZXcsIHVzZWQgb25seSBpZgorICAgICAqICAgICAgICBkZWZTdHlsZUF0dHIgaXMgMCBvciBjYW4gbm90IGJlIGZvdW5kIGluIHRoZSB0aGVtZS4gQ2FuIGJlIDAKKyAgICAgKiAgICAgICAgdG8gbm90IGxvb2sgZm9yIGRlZmF1bHRzLgorICAgICAqLworICAgIHB1YmxpYyBTbGlkaW5nRHJhd2VyKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworCisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgUi5zdHlsZWFibGUuU2xpZGluZ0RyYXdlciwgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgaW50IG9yaWVudGF0aW9uID0gYS5nZXRJbnQoUi5zdHlsZWFibGUuU2xpZGluZ0RyYXdlcl9vcmllbnRhdGlvbiwgT1JJRU5UQVRJT05fVkVSVElDQUwpOwogICAgICAgICBtVmVydGljYWwgPSBvcmllbnRhdGlvbiA9PSBPUklFTlRBVElPTl9WRVJUSUNBTDsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9TcGFjZS5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1NwYWNlLmphdmEKaW5kZXggYmI1M2E3Ny4uMDY4Y2ZhMCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1NwYWNlLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1NwYWNlLmphdmEKQEAgLTMwLDggKzMwLDggQEAKICAgICAvKioKICAgICAgKiB7QGluaGVyaXREb2N9CiAgICAgICovCi0gICAgcHVibGljIFNwYWNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgU3BhY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIGlmIChnZXRWaXNpYmlsaXR5KCkgPT0gVklTSUJMRSkgewogICAgICAgICAgICAgc2V0VmlzaWJpbGl0eShJTlZJU0lCTEUpOwogICAgICAgICB9CkBAIC00MCw2ICs0MCwxMyBAQAogICAgIC8qKgogICAgICAqIHtAaW5oZXJpdERvY30KICAgICAgKi8KKyAgICBwdWJsaWMgU3BhY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiB7QGluaGVyaXREb2N9CisgICAgICovCiAgICAgcHVibGljIFNwYWNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7CiAgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIDApOwogICAgIH0KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9TcGlubmVyLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvU3Bpbm5lci5qYXZhCmluZGV4IGI3NWQzNmYuLmFmZTU4MDQgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9TcGlubmVyLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1NwaW5uZXIuamF2YQpAQCAtMTMwLDE4ICsxMzAsMTcgQEAKIAogICAgIC8qKgogICAgICAqIENvbnN0cnVjdCBhIG5ldyBzcGlubmVyIHdpdGggdGhlIGdpdmVuIGNvbnRleHQncyB0aGVtZSwgdGhlIHN1cHBsaWVkIGF0dHJpYnV0ZSBzZXQsCi0gICAgICogYW5kIGRlZmF1bHQgc3R5bGUuCisgICAgICogYW5kIGRlZmF1bHQgc3R5bGUgYXR0cmlidXRlLgogICAgICAqCiAgICAgICogQHBhcmFtIGNvbnRleHQgVGhlIENvbnRleHQgdGhlIHZpZXcgaXMgcnVubmluZyBpbiwgdGhyb3VnaCB3aGljaCBpdCBjYW4KICAgICAgKiAgICAgICAgYWNjZXNzIHRoZSBjdXJyZW50IHRoZW1lLCByZXNvdXJjZXMsIGV0Yy4KICAgICAgKiBAcGFyYW0gYXR0cnMgVGhlIGF0dHJpYnV0ZXMgb2YgdGhlIFhNTCB0YWcgdGhhdCBpcyBpbmZsYXRpbmcgdGhlIHZpZXcuCi0gICAgICogQHBhcmFtIGRlZlN0eWxlIFRoZSBkZWZhdWx0IHN0eWxlIHRvIGFwcGx5IHRvIHRoaXMgdmlldy4gSWYgMCwgbm8gc3R5bGUKLSAgICAgKiAgICAgICAgd2lsbCBiZSBhcHBsaWVkIChiZXlvbmQgd2hhdCBpcyBpbmNsdWRlZCBpbiB0aGUgdGhlbWUpLiBUaGlzIG1heQotICAgICAqICAgICAgICBlaXRoZXIgYmUgYW4gYXR0cmlidXRlIHJlc291cmNlLCB3aG9zZSB2YWx1ZSB3aWxsIGJlIHJldHJpZXZlZAotICAgICAqICAgICAgICBmcm9tIHRoZSBjdXJyZW50IHRoZW1lLCBvciBhbiBleHBsaWNpdCBzdHlsZSByZXNvdXJjZS4KKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVBdHRyIEFuIGF0dHJpYnV0ZSBpbiB0aGUgY3VycmVudCB0aGVtZSB0aGF0IGNvbnRhaW5zIGEKKyAgICAgKiAgICAgICAgcmVmZXJlbmNlIHRvIGEgc3R5bGUgcmVzb3VyY2UgdGhhdCBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IKKyAgICAgKiAgICAgICAgdGhlIHZpZXcuIENhbiBiZSAwIHRvIG5vdCBsb29rIGZvciBkZWZhdWx0cy4KICAgICAgKi8KLSAgICBwdWJsaWMgU3Bpbm5lcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlLCBNT0RFX1RIRU1FKTsKKyAgICBwdWJsaWMgU3Bpbm5lcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDAsIE1PREVfVEhFTUUpOwogICAgIH0KIAogICAgIC8qKgpAQCAtMTUyLDIwICsxNTEsNDQgQEAKICAgICAgKiBAcGFyYW0gY29udGV4dCBUaGUgQ29udGV4dCB0aGUgdmlldyBpcyBydW5uaW5nIGluLCB0aHJvdWdoIHdoaWNoIGl0IGNhbgogICAgICAqICAgICAgICBhY2Nlc3MgdGhlIGN1cnJlbnQgdGhlbWUsIHJlc291cmNlcywgZXRjLgogICAgICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBvZiB0aGUgWE1MIHRhZyB0aGF0IGlzIGluZmxhdGluZyB0aGUgdmlldy4KLSAgICAgKiBAcGFyYW0gZGVmU3R5bGUgVGhlIGRlZmF1bHQgc3R5bGUgdG8gYXBwbHkgdG8gdGhpcyB2aWV3LiBJZiAwLCBubyBzdHlsZQotICAgICAqICAgICAgICB3aWxsIGJlIGFwcGxpZWQgKGJleW9uZCB3aGF0IGlzIGluY2x1ZGVkIGluIHRoZSB0aGVtZSkuIFRoaXMgbWF5Ci0gICAgICogICAgICAgIGVpdGhlciBiZSBhbiBhdHRyaWJ1dGUgcmVzb3VyY2UsIHdob3NlIHZhbHVlIHdpbGwgYmUgcmV0cmlldmVkCi0gICAgICogICAgICAgIGZyb20gdGhlIGN1cnJlbnQgdGhlbWUsIG9yIGFuIGV4cGxpY2l0IHN0eWxlIHJlc291cmNlLgorICAgICAqIEBwYXJhbSBkZWZTdHlsZUF0dHIgQW4gYXR0cmlidXRlIGluIHRoZSBjdXJyZW50IHRoZW1lIHRoYXQgY29udGFpbnMgYQorICAgICAqICAgICAgICByZWZlcmVuY2UgdG8gYSBzdHlsZSByZXNvdXJjZSB0aGF0IHN1cHBsaWVzIGRlZmF1bHQgdmFsdWVzIGZvcgorICAgICAqICAgICAgICB0aGUgdmlldy4gQ2FuIGJlIDAgdG8gbm90IGxvb2sgZm9yIGRlZmF1bHRzLgogICAgICAqIEBwYXJhbSBtb2RlIENvbnN0YW50IGRlc2NyaWJpbmcgaG93IHRoZSB1c2VyIHdpbGwgc2VsZWN0IGNob2ljZXMgZnJvbSB0aGUgc3Bpbm5lci4KLSAgICAgKiAKKyAgICAgKgogICAgICAqIEBzZWUgI01PREVfRElBTE9HCiAgICAgICogQHNlZSAjTU9ERV9EUk9QRE9XTgogICAgICAqLwotICAgIHB1YmxpYyBTcGlubmVyKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUsIGludCBtb2RlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIFNwaW5uZXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBtb2RlKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCwgbW9kZSk7CisgICAgfQogCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5TcGlubmVyLCBkZWZTdHlsZSwgMCk7CisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IHNwaW5uZXIgd2l0aCB0aGUgZ2l2ZW4gY29udGV4dCdzIHRoZW1lLCB0aGUgc3VwcGxpZWQgYXR0cmlidXRlIHNldCwKKyAgICAgKiBhbmQgZGVmYXVsdCBzdHlsZS4gPGNvZGU+bW9kZTwvY29kZT4gbWF5IGJlIG9uZSBvZiB7QGxpbmsgI01PREVfRElBTE9HfSBvcgorICAgICAqIHtAbGluayAjTU9ERV9EUk9QRE9XTn0gYW5kIGRldGVybWluZXMgaG93IHRoZSB1c2VyIHdpbGwgc2VsZWN0IGNob2ljZXMgZnJvbSB0aGUgc3Bpbm5lci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBDb250ZXh0IHRoZSB2aWV3IGlzIHJ1bm5pbmcgaW4sIHRocm91Z2ggd2hpY2ggaXQgY2FuCisgICAgICogICAgICAgIGFjY2VzcyB0aGUgY3VycmVudCB0aGVtZSwgcmVzb3VyY2VzLCBldGMuCisgICAgICogQHBhcmFtIGF0dHJzIFRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBYTUwgdGFnIHRoYXQgaXMgaW5mbGF0aW5nIHRoZSB2aWV3LgorICAgICAqIEBwYXJhbSBkZWZTdHlsZUF0dHIgQW4gYXR0cmlidXRlIGluIHRoZSBjdXJyZW50IHRoZW1lIHRoYXQgY29udGFpbnMgYQorICAgICAqICAgICAgICByZWZlcmVuY2UgdG8gYSBzdHlsZSByZXNvdXJjZSB0aGF0IHN1cHBsaWVzIGRlZmF1bHQgdmFsdWVzIGZvcgorICAgICAqICAgICAgICB0aGUgdmlldy4gQ2FuIGJlIDAgdG8gbm90IGxvb2sgZm9yIGRlZmF1bHRzLgorICAgICAqIEBwYXJhbSBkZWZTdHlsZVJlcyBBIHJlc291cmNlIGlkZW50aWZpZXIgb2YgYSBzdHlsZSByZXNvdXJjZSB0aGF0CisgICAgICogICAgICAgIHN1cHBsaWVzIGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgdmlldywgdXNlZCBvbmx5IGlmCisgICAgICogICAgICAgIGRlZlN0eWxlQXR0ciBpcyAwIG9yIGNhbiBub3QgYmUgZm91bmQgaW4gdGhlIHRoZW1lLiBDYW4gYmUgMAorICAgICAqICAgICAgICB0byBub3QgbG9vayBmb3IgZGVmYXVsdHMuCisgICAgICogQHBhcmFtIG1vZGUgQ29uc3RhbnQgZGVzY3JpYmluZyBob3cgdGhlIHVzZXIgd2lsbCBzZWxlY3QgY2hvaWNlcyBmcm9tIHRoZSBzcGlubmVyLgorICAgICAqCisgICAgICogQHNlZSAjTU9ERV9ESUFMT0cKKyAgICAgKiBAc2VlICNNT0RFX0RST1BET1dOCisgICAgICovCisgICAgcHVibGljIFNwaW5uZXIoCisgICAgICAgICAgICBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzLCBpbnQgbW9kZSkgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5TcGlubmVyLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICBpZiAobW9kZSA9PSBNT0RFX1RIRU1FKSB7CiAgICAgICAgICAgICBtb2RlID0gYS5nZXRJbnQoY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuU3Bpbm5lcl9zcGlubmVyTW9kZSwgTU9ERV9ESUFMT0cpOwpAQCAtMTc4LDcgKzIwMSw3IEBACiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIE1PREVfRFJPUERPV046IHsKLSAgICAgICAgICAgIGZpbmFsIERyb3Bkb3duUG9wdXAgcG9wdXAgPSBuZXcgRHJvcGRvd25Qb3B1cChjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgICAgICAgICAgZmluYWwgRHJvcGRvd25Qb3B1cCBwb3B1cCA9IG5ldyBEcm9wZG93blBvcHVwKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICAgICAgbURyb3BEb3duV2lkdGggPSBhLmdldExheW91dERpbWVuc2lvbigKICAgICAgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuU3Bpbm5lcl9kcm9wRG93bldpZHRoLApAQCAtMTAzMSw4ICsxMDU0LDkgQEAKICAgICAgICAgcHJpdmF0ZSBDaGFyU2VxdWVuY2UgbUhpbnRUZXh0OwogICAgICAgICBwcml2YXRlIExpc3RBZGFwdGVyIG1BZGFwdGVyOwogCi0gICAgICAgIHB1YmxpYyBEcm9wZG93blBvcHVwKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVSZXMpIHsKLSAgICAgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCAwLCBkZWZTdHlsZVJlcyk7CisgICAgICAgIHB1YmxpYyBEcm9wZG93blBvcHVwKAorICAgICAgICAgICAgICAgIENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICAgICAgc2V0QW5jaG9yVmlldyhTcGlubmVyLnRoaXMpOwogICAgICAgICAgICAgc2V0TW9kYWwodHJ1ZSk7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvU3RhY2tWaWV3LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvU3RhY2tWaWV3LmphdmEKaW5kZXggNjg1MzY2MC4uZDJlNzE4YyAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1N0YWNrVmlldy5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9TdGFja1ZpZXcuamF2YQpAQCAtMTY4LDkgKzE2OCwxNiBAQAogICAgICAqIHtAaW5oZXJpdERvY30KICAgICAgKi8KICAgICBwdWJsaWMgU3RhY2tWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIpOwotICAgICAgICBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCi0gICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuU3RhY2tWaWV3LCBkZWZTdHlsZUF0dHIsIDApOworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIHtAaW5oZXJpdERvY30KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RhY2tWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlN0YWNrVmlldywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgbVJlc091dENvbG9yID0gYS5nZXRDb2xvcigKICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5TdGFja1ZpZXdfcmVzT3V0Q29sb3IsIDApOwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1N3aXRjaC5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1N3aXRjaC5qYXZhCmluZGV4IGU3NTRjMTcuLmM5YTFjYTQgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9Td2l0Y2guamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvU3dpdGNoLmphdmEKQEAgLTE2LDYgKzE2LDcgQEAKIAogcGFja2FnZSBhbmRyb2lkLndpZGdldDsKIAoraW1wb3J0IGFuZHJvaWQuYW5pbWF0aW9uLk9iamVjdEFuaW1hdG9yOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuQ29sb3JTdGF0ZUxpc3Q7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5SZXNvdXJjZXM7CkBAIC0zMiw2ICszMyw4IEBACiBpbXBvcnQgYW5kcm9pZC50ZXh0Lm1ldGhvZC5BbGxDYXBzVHJhbnNmb3JtYXRpb25NZXRob2Q7CiBpbXBvcnQgYW5kcm9pZC50ZXh0Lm1ldGhvZC5UcmFuc2Zvcm1hdGlvbk1ldGhvZDI7CiBpbXBvcnQgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldDsKK2ltcG9ydCBhbmRyb2lkLnV0aWwuRmxvYXRQcm9wZXJ0eTsKK2ltcG9ydCBhbmRyb2lkLnV0aWwuTWF0aFV0aWxzOwogaW1wb3J0IGFuZHJvaWQudmlldy5HcmF2aXR5OwogaW1wb3J0IGFuZHJvaWQudmlldy5Nb3Rpb25FdmVudDsKIGltcG9ydCBhbmRyb2lkLnZpZXcuVmVsb2NpdHlUcmFja2VyOwpAQCAtNjYsNiArNjksOCBAQAogICogQGF0dHIgcmVmIGFuZHJvaWQuUi5zdHlsZWFibGUjU3dpdGNoX3RyYWNrCiAgKi8KIHB1YmxpYyBjbGFzcyBTd2l0Y2ggZXh0ZW5kcyBDb21wb3VuZEJ1dHRvbiB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRIVU1CX0FOSU1BVElPTl9EVVJBVElPTiA9IDI1MDsKKwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT1VDSF9NT0RFX0lETEUgPSAwOwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT1VDSF9NT0RFX0RPV04gPSAxOwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT1VDSF9NT0RFX0RSQUdHSU5HID0gMjsKQEAgLTEwNSw2ICsxMTAsNyBAQAogICAgIHByaXZhdGUgTGF5b3V0IG1PbkxheW91dDsKICAgICBwcml2YXRlIExheW91dCBtT2ZmTGF5b3V0OwogICAgIHByaXZhdGUgVHJhbnNmb3JtYXRpb25NZXRob2QyIG1Td2l0Y2hUcmFuc2Zvcm1hdGlvbk1ldGhvZDsKKyAgICBwcml2YXRlIE9iamVjdEFuaW1hdG9yIG1Qb3NpdGlvbkFuaW1hdG9yOwogCiAgICAgQFN1cHByZXNzV2FybmluZ3MoImhpZGluZyIpCiAgICAgcHJpdmF0ZSBmaW5hbCBSZWN0IG1UZW1wUmVjdCA9IG5ldyBSZWN0KCk7CkBAIC0xMzksMTkgKzE0NSw0MSBAQAogICAgICAqCiAgICAgICogQHBhcmFtIGNvbnRleHQgVGhlIENvbnRleHQgdGhhdCB3aWxsIGRldGVybWluZSB0aGlzIHdpZGdldCdzIHRoZW1pbmcuCiAgICAgICogQHBhcmFtIGF0dHJzIFNwZWNpZmljYXRpb24gb2YgYXR0cmlidXRlcyB0aGF0IHNob3VsZCBkZXZpYXRlIGZyb20gdGhlIGRlZmF1bHQgc3R5bGluZy4KLSAgICAgKiBAcGFyYW0gZGVmU3R5bGUgQW4gYXR0cmlidXRlIElEIHdpdGhpbiB0aGUgYWN0aXZlIHRoZW1lIGNvbnRhaW5pbmcgYSByZWZlcmVuY2UgdG8gdGhlCi0gICAgICogICAgICAgICAgICAgICAgIGRlZmF1bHQgc3R5bGUgZm9yIHRoaXMgd2lkZ2V0LiBlLmcuIGFuZHJvaWQuUi5hdHRyLnN3aXRjaFN0eWxlLgorICAgICAqIEBwYXJhbSBkZWZTdHlsZUF0dHIgQW4gYXR0cmlidXRlIGluIHRoZSBjdXJyZW50IHRoZW1lIHRoYXQgY29udGFpbnMgYQorICAgICAqICAgICAgICByZWZlcmVuY2UgdG8gYSBzdHlsZSByZXNvdXJjZSB0aGF0IHN1cHBsaWVzIGRlZmF1bHQgdmFsdWVzIGZvcgorICAgICAqICAgICAgICB0aGUgdmlldy4gQ2FuIGJlIDAgdG8gbm90IGxvb2sgZm9yIGRlZmF1bHRzLgogICAgICAqLwotICAgIHB1YmxpYyBTd2l0Y2goQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgIHB1YmxpYyBTd2l0Y2goQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBTd2l0Y2ggd2l0aCBhIGRlZmF1bHQgc3R5bGUgZGV0ZXJtaW5lZCBieSB0aGUgZ2l2ZW4gdGhlbWUKKyAgICAgKiBhdHRyaWJ1dGUgb3Igc3R5bGUgcmVzb3VyY2UsIG92ZXJyaWRpbmcgc3BlY2lmaWMgc3R5bGUgYXR0cmlidXRlcyBhcworICAgICAqIHJlcXVlc3RlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBDb250ZXh0IHRoYXQgd2lsbCBkZXRlcm1pbmUgdGhpcyB3aWRnZXQncyB0aGVtaW5nLgorICAgICAqIEBwYXJhbSBhdHRycyBTcGVjaWZpY2F0aW9uIG9mIGF0dHJpYnV0ZXMgdGhhdCBzaG91bGQgZGV2aWF0ZSBmcm9tIHRoZQorICAgICAqICAgICAgICBkZWZhdWx0IHN0eWxpbmcuCisgICAgICogQHBhcmFtIGRlZlN0eWxlQXR0ciBBbiBhdHRyaWJ1dGUgaW4gdGhlIGN1cnJlbnQgdGhlbWUgdGhhdCBjb250YWlucyBhCisgICAgICogICAgICAgIHJlZmVyZW5jZSB0byBhIHN0eWxlIHJlc291cmNlIHRoYXQgc3VwcGxpZXMgZGVmYXVsdCB2YWx1ZXMgZm9yCisgICAgICogICAgICAgIHRoZSB2aWV3LiBDYW4gYmUgMCB0byBub3QgbG9vayBmb3IgZGVmYXVsdHMuCisgICAgICogQHBhcmFtIGRlZlN0eWxlUmVzIEEgcmVzb3VyY2UgaWRlbnRpZmllciBvZiBhIHN0eWxlIHJlc291cmNlIHRoYXQKKyAgICAgKiAgICAgICAgc3VwcGxpZXMgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSB2aWV3LCB1c2VkIG9ubHkgaWYKKyAgICAgKiAgICAgICAgZGVmU3R5bGVBdHRyIGlzIDAgb3IgY2FuIG5vdCBiZSBmb3VuZCBpbiB0aGUgdGhlbWUuIENhbiBiZSAwCisgICAgICogICAgICAgIHRvIG5vdCBsb29rIGZvciBkZWZhdWx0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3dpdGNoKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIG1UZXh0UGFpbnQgPSBuZXcgVGV4dFBhaW50KFBhaW50LkFOVElfQUxJQVNfRkxBRyk7CiAgICAgICAgIFJlc291cmNlcyByZXMgPSBnZXRSZXNvdXJjZXMoKTsKICAgICAgICAgbVRleHRQYWludC5kZW5zaXR5ID0gcmVzLmdldERpc3BsYXlNZXRyaWNzKCkuZGVuc2l0eTsKICAgICAgICAgbVRleHRQYWludC5zZXRDb21wYXRpYmlsaXR5U2NhbGluZyhyZXMuZ2V0Q29tcGF0aWJpbGl0eUluZm8oKS5hcHBsaWNhdGlvblNjYWxlKTsKIAotICAgICAgICBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCi0gICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuU3dpdGNoLCBkZWZTdHlsZSwgMCk7CisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuU3dpdGNoLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICBtVGh1bWJEcmF3YWJsZSA9IGEuZ2V0RHJhd2FibGUoY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuU3dpdGNoX3RodW1iKTsKICAgICAgICAgbVRyYWNrRHJhd2FibGUgPSBhLmdldERyYXdhYmxlKGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlN3aXRjaF90cmFjayk7CkBAIC01MjgsOSArNTU2LDEyIEBACiAgICAgICogQHJldHVybiB0cnVlIGlmICh4LCB5KSBpcyB3aXRoaW4gdGhlIHRhcmdldCBhcmVhIG9mIHRoZSBzd2l0Y2ggdGh1bWIKICAgICAgKi8KICAgICBwcml2YXRlIGJvb2xlYW4gaGl0VGh1bWIoZmxvYXQgeCwgZmxvYXQgeSkgeworICAgICAgICAvLyBSZWxpZXMgb24gbVRlbXBSZWN0LCBNVVNUIGJlIGNhbGxlZCBmaXJzdCEKKyAgICAgICAgZmluYWwgaW50IHRodW1iT2Zmc2V0ID0gZ2V0VGh1bWJPZmZzZXQoKTsKKwogICAgICAgICBtVGh1bWJEcmF3YWJsZS5nZXRQYWRkaW5nKG1UZW1wUmVjdCk7CiAgICAgICAgIGZpbmFsIGludCB0aHVtYlRvcCA9IG1Td2l0Y2hUb3AgLSBtVG91Y2hTbG9wOwotICAgICAgICBmaW5hbCBpbnQgdGh1bWJMZWZ0ID0gbVN3aXRjaExlZnQgKyAoaW50KSAobVRodW1iUG9zaXRpb24gKyAwLjVmKSAtIG1Ub3VjaFNsb3A7CisgICAgICAgIGZpbmFsIGludCB0aHVtYkxlZnQgPSBtU3dpdGNoTGVmdCArIHRodW1iT2Zmc2V0IC0gbVRvdWNoU2xvcDsKICAgICAgICAgZmluYWwgaW50IHRodW1iUmlnaHQgPSB0aHVtYkxlZnQgKyBtVGh1bWJXaWR0aCArCiAgICAgICAgICAgICAgICAgbVRlbXBSZWN0LmxlZnQgKyBtVGVtcFJlY3QucmlnaHQgKyBtVG91Y2hTbG9wOwogICAgICAgICBmaW5hbCBpbnQgdGh1bWJCb3R0b20gPSBtU3dpdGNoQm90dG9tICsgbVRvdWNoU2xvcDsKQEAgLTU3NSwxMyArNjA2LDIzIEBACiAKICAgICAgICAgICAgICAgICAgICAgY2FzZSBUT1VDSF9NT0RFX0RSQUdHSU5HOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBmbG9hdCB4ID0gZXYuZ2V0WCgpOwotICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgZmxvYXQgZHggPSB4IC0gbVRvdWNoWDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IG5ld1BvcyA9IE1hdGgubWF4KDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWluKG1UaHVtYlBvc2l0aW9uICsgZHgsIGdldFRodW1iU2Nyb2xsUmFuZ2UoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IHRodW1iU2Nyb2xsUmFuZ2UgPSBnZXRUaHVtYlNjcm9sbFJhbmdlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBmbG9hdCB0aHVtYlNjcm9sbE9mZnNldCA9IHggLSBtVG91Y2hYOworICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZFBvczsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aHVtYlNjcm9sbFJhbmdlICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkUG9zID0gdGh1bWJTY3JvbGxPZmZzZXQgLyB0aHVtYlNjcm9sbFJhbmdlOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdGh1bWIgc2Nyb2xsIHJhbmdlIGlzIGVtcHR5LCBqdXN0IHVzZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtb3ZlbWVudCBkaXJlY3Rpb24gdG8gc25hcCBvbiBvciBvZmYuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZFBvcyA9IHRodW1iU2Nyb2xsT2Zmc2V0ID4gMCA/IDEgOiAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0xheW91dFJ0bCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZFBvcyA9IC1kUG9zOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgZmxvYXQgbmV3UG9zID0gTWF0aFV0aWxzLmNvbnN0cmFpbihtVGh1bWJQb3NpdGlvbiArIGRQb3MsIDAsIDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1BvcyAhPSBtVGh1bWJQb3NpdGlvbikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1UaHVtYlBvc2l0aW9uID0gbmV3UG9zOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1Ub3VjaFggPSB4OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaHVtYlBvc2l0aW9uKG5ld1Bvcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQpAQCAtNjE4LDYyICs2NTksNzcgQEAKICAgICAgKi8KICAgICBwcml2YXRlIHZvaWQgc3RvcERyYWcoTW90aW9uRXZlbnQgZXYpIHsKICAgICAgICAgbVRvdWNoTW9kZSA9IFRPVUNIX01PREVfSURMRTsKLSAgICAgICAgLy8gVXAgYW5kIG5vdCBjYW5jZWxlZCwgYWxzbyBjaGVja3MgdGhlIHN3aXRjaCBoYXMgbm90IGJlZW4gZGlzYWJsZWQgZHVyaW5nIHRoZSBkcmFnCi0gICAgICAgIGJvb2xlYW4gY29tbWl0Q2hhbmdlID0gZXYuZ2V0QWN0aW9uKCkgPT0gTW90aW9uRXZlbnQuQUNUSU9OX1VQICYmIGlzRW5hYmxlZCgpOwogCi0gICAgICAgIGNhbmNlbFN1cGVyVG91Y2goZXYpOwotCisgICAgICAgIC8vIENvbW1pdCB0aGUgY2hhbmdlIGlmIHRoZSBldmVudCBpcyB1cCBhbmQgbm90IGNhbmNlbGVkIGFuZCB0aGUgc3dpdGNoCisgICAgICAgIC8vIGhhcyBub3QgYmVlbiBkaXNhYmxlZCBkdXJpbmcgdGhlIGRyYWcuCisgICAgICAgIGZpbmFsIGJvb2xlYW4gY29tbWl0Q2hhbmdlID0gZXYuZ2V0QWN0aW9uKCkgPT0gTW90aW9uRXZlbnQuQUNUSU9OX1VQICYmIGlzRW5hYmxlZCgpOworICAgICAgICBmaW5hbCBib29sZWFuIG5ld1N0YXRlOwogICAgICAgICBpZiAoY29tbWl0Q2hhbmdlKSB7Ci0gICAgICAgICAgICBib29sZWFuIG5ld1N0YXRlOwogICAgICAgICAgICAgbVZlbG9jaXR5VHJhY2tlci5jb21wdXRlQ3VycmVudFZlbG9jaXR5KDEwMDApOwotICAgICAgICAgICAgZmxvYXQgeHZlbCA9IG1WZWxvY2l0eVRyYWNrZXIuZ2V0WFZlbG9jaXR5KCk7CisgICAgICAgICAgICBmaW5hbCBmbG9hdCB4dmVsID0gbVZlbG9jaXR5VHJhY2tlci5nZXRYVmVsb2NpdHkoKTsKICAgICAgICAgICAgIGlmIChNYXRoLmFicyh4dmVsKSA+IG1NaW5GbGluZ1ZlbG9jaXR5KSB7CiAgICAgICAgICAgICAgICAgbmV3U3RhdGUgPSBpc0xheW91dFJ0bCgpID8gKHh2ZWwgPCAwKSA6ICh4dmVsID4gMCk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIG5ld1N0YXRlID0gZ2V0VGFyZ2V0Q2hlY2tlZFN0YXRlKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhbmltYXRlVGh1bWJUb0NoZWNrZWRTdGF0ZShuZXdTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhbmltYXRlVGh1bWJUb0NoZWNrZWRTdGF0ZShpc0NoZWNrZWQoKSk7CisgICAgICAgICAgICBuZXdTdGF0ZSA9IGlzQ2hlY2tlZCgpOwogICAgICAgICB9CisKKyAgICAgICAgc2V0Q2hlY2tlZChuZXdTdGF0ZSk7CisgICAgICAgIGNhbmNlbFN1cGVyVG91Y2goZXYpOwogICAgIH0KIAogICAgIHByaXZhdGUgdm9pZCBhbmltYXRlVGh1bWJUb0NoZWNrZWRTdGF0ZShib29sZWFuIG5ld0NoZWNrZWRTdGF0ZSkgewotICAgICAgICAvLyBUT0RPIGFuaW1hdGUhCi0gICAgICAgIC8vZmxvYXQgdGFyZ2V0UG9zID0gbmV3Q2hlY2tlZFN0YXRlID8gMCA6IGdldFRodW1iU2Nyb2xsUmFuZ2UoKTsKLSAgICAgICAgLy9tVGh1bWJQb3NpdGlvbiA9IHRhcmdldFBvczsKLSAgICAgICAgc2V0Q2hlY2tlZChuZXdDaGVja2VkU3RhdGUpOworICAgICAgICBmaW5hbCBmbG9hdCB0YXJnZXRQb3NpdGlvbiA9IG5ld0NoZWNrZWRTdGF0ZSA/IDEgOiAwOworICAgICAgICBtUG9zaXRpb25BbmltYXRvciA9IE9iamVjdEFuaW1hdG9yLm9mRmxvYXQodGhpcywgVEhVTUJfUE9TLCB0YXJnZXRQb3NpdGlvbik7CisgICAgICAgIG1Qb3NpdGlvbkFuaW1hdG9yLnNldER1cmF0aW9uKFRIVU1CX0FOSU1BVElPTl9EVVJBVElPTik7CisgICAgICAgIG1Qb3NpdGlvbkFuaW1hdG9yLnNldEF1dG9DYW5jZWwodHJ1ZSk7CisgICAgICAgIG1Qb3NpdGlvbkFuaW1hdG9yLnN0YXJ0KCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNhbmNlbFBvc2l0aW9uQW5pbWF0b3IoKSB7CisgICAgICAgIGlmIChtUG9zaXRpb25BbmltYXRvciAhPSBudWxsKSB7CisgICAgICAgICAgICBtUG9zaXRpb25BbmltYXRvci5jYW5jZWwoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHByaXZhdGUgYm9vbGVhbiBnZXRUYXJnZXRDaGVja2VkU3RhdGUoKSB7Ci0gICAgICAgIGlmIChpc0xheW91dFJ0bCgpKSB7Ci0gICAgICAgICAgICByZXR1cm4gbVRodW1iUG9zaXRpb24gPD0gZ2V0VGh1bWJTY3JvbGxSYW5nZSgpIC8gMjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiBtVGh1bWJQb3NpdGlvbiA+PSBnZXRUaHVtYlNjcm9sbFJhbmdlKCkgLyAyOwotICAgICAgICB9CisgICAgICAgIHJldHVybiBtVGh1bWJQb3NpdGlvbiA+IDAuNWY7CiAgICAgfQogCi0gICAgcHJpdmF0ZSB2b2lkIHNldFRodW1iUG9zaXRpb24oYm9vbGVhbiBjaGVja2VkKSB7Ci0gICAgICAgIGlmIChpc0xheW91dFJ0bCgpKSB7Ci0gICAgICAgICAgICBtVGh1bWJQb3NpdGlvbiA9IGNoZWNrZWQgPyAwIDogZ2V0VGh1bWJTY3JvbGxSYW5nZSgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbVRodW1iUG9zaXRpb24gPSBjaGVja2VkID8gZ2V0VGh1bWJTY3JvbGxSYW5nZSgpIDogMDsKLSAgICAgICAgfQorICAgIC8qKgorICAgICAqIFNldHMgdGhlIHRodW1iIHBvc2l0aW9uIGFzIGEgZGVjaW1hbCB2YWx1ZSBiZXR3ZWVuIDAgKG9mZikgYW5kIDEgKG9uKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiBuZXcgcG9zaXRpb24gYmV0d2VlbiBbMCwxXQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXRUaHVtYlBvc2l0aW9uKGZsb2F0IHBvc2l0aW9uKSB7CisgICAgICAgIG1UaHVtYlBvc2l0aW9uID0gcG9zaXRpb247CisgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCB0b2dnbGUoKSB7CisgICAgICAgIHNldENoZWNrZWQoIWlzQ2hlY2tlZCgpKTsKICAgICB9CiAKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCBzZXRDaGVja2VkKGJvb2xlYW4gY2hlY2tlZCkgewogICAgICAgICBzdXBlci5zZXRDaGVja2VkKGNoZWNrZWQpOwotICAgICAgICBzZXRUaHVtYlBvc2l0aW9uKGlzQ2hlY2tlZCgpKTsKLSAgICAgICAgaW52YWxpZGF0ZSgpOworCisgICAgICAgIGlmIChpc0F0dGFjaGVkVG9XaW5kb3coKSAmJiBpc0xhaWRPdXQoKSkgeworICAgICAgICAgICAgYW5pbWF0ZVRodW1iVG9DaGVja2VkU3RhdGUoY2hlY2tlZCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBJbW1lZGlhdGVseSBtb3ZlIHRoZSB0aHVtYiB0byB0aGUgbmV3IHBvc2l0aW9uLgorICAgICAgICAgICAgY2FuY2VsUG9zaXRpb25BbmltYXRvcigpOworICAgICAgICAgICAgc2V0VGh1bWJQb3NpdGlvbihjaGVja2VkID8gMSA6IDApOworICAgICAgICB9CiAgICAgfQogCiAgICAgQE92ZXJyaWRlCiAgICAgcHJvdGVjdGVkIHZvaWQgb25MYXlvdXQoYm9vbGVhbiBjaGFuZ2VkLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQgYm90dG9tKSB7CiAgICAgICAgIHN1cGVyLm9uTGF5b3V0KGNoYW5nZWQsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSk7CiAKLSAgICAgICAgc2V0VGh1bWJQb3NpdGlvbihpc0NoZWNrZWQoKSk7Ci0KICAgICAgICAgaW50IHN3aXRjaFJpZ2h0OwogICAgICAgICBpbnQgc3dpdGNoTGVmdDsKIApAQCAtNzM0LDExICs3OTAsMTIgQEAKICAgICAgICAgaW50IHN3aXRjaElubmVyQm90dG9tID0gc3dpdGNoQm90dG9tIC0gbVRlbXBSZWN0LmJvdHRvbTsKICAgICAgICAgY2FudmFzLmNsaXBSZWN0KHN3aXRjaElubmVyTGVmdCwgc3dpdGNoVG9wLCBzd2l0Y2hJbm5lclJpZ2h0LCBzd2l0Y2hCb3R0b20pOwogCisgICAgICAgIC8vIFJlbGllcyBvbiBtVGVtcFJlY3QsIE1VU1QgYmUgY2FsbGVkIGZpcnN0IQorICAgICAgICBmaW5hbCBpbnQgdGh1bWJQb3MgPSBnZXRUaHVtYk9mZnNldCgpOworCiAgICAgICAgIG1UaHVtYkRyYXdhYmxlLmdldFBhZGRpbmcobVRlbXBSZWN0KTsKLSAgICAgICAgZmluYWwgaW50IHRodW1iUG9zID0gKGludCkgKG1UaHVtYlBvc2l0aW9uICsgMC41Zik7CiAgICAgICAgIGludCB0aHVtYkxlZnQgPSBzd2l0Y2hJbm5lckxlZnQgLSBtVGVtcFJlY3QubGVmdCArIHRodW1iUG9zOwogICAgICAgICBpbnQgdGh1bWJSaWdodCA9IHN3aXRjaElubmVyTGVmdCArIHRodW1iUG9zICsgbVRodW1iV2lkdGggKyBtVGVtcFJlY3QucmlnaHQ7Ci0KICAgICAgICAgbVRodW1iRHJhd2FibGUuc2V0Qm91bmRzKHRodW1iTGVmdCwgc3dpdGNoVG9wLCB0aHVtYlJpZ2h0LCBzd2l0Y2hCb3R0b20pOwogICAgICAgICBtVGh1bWJEcmF3YWJsZS5kcmF3KGNhbnZhcyk7CiAKQEAgLTc4Myw2ICs4NDAsMjIgQEAKICAgICAgICAgcmV0dXJuIHBhZGRpbmc7CiAgICAgfQogCisgICAgLyoqCisgICAgICogVHJhbnNsYXRlcyB0aHVtYiBwb3NpdGlvbiB0byBvZmZzZXQgYWNjb3JkaW5nIHRvIGN1cnJlbnQgUlRMIHNldHRpbmcgYW5kCisgICAgICogdGh1bWIgc2Nyb2xsIHJhbmdlLgorICAgICAqCisgICAgICogQHJldHVybiB0aHVtYiBvZmZzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRUaHVtYk9mZnNldCgpIHsKKyAgICAgICAgZmluYWwgZmxvYXQgdGh1bWJQb3NpdGlvbjsKKyAgICAgICAgaWYgKGlzTGF5b3V0UnRsKCkpIHsKKyAgICAgICAgICAgIHRodW1iUG9zaXRpb24gPSAxIC0gbVRodW1iUG9zaXRpb247CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHVtYlBvc2l0aW9uID0gbVRodW1iUG9zaXRpb247CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChpbnQpICh0aHVtYlBvc2l0aW9uICogZ2V0VGh1bWJTY3JvbGxSYW5nZSgpICsgMC41Zik7CisgICAgfQorCiAgICAgcHJpdmF0ZSBpbnQgZ2V0VGh1bWJTY3JvbGxSYW5nZSgpIHsKICAgICAgICAgaWYgKG1UcmFja0RyYXdhYmxlID09IG51bGwpIHsKICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtODQ4LDQgKzkyMSwxNiBAQAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRmxvYXRQcm9wZXJ0eTxTd2l0Y2g+IFRIVU1CX1BPUyA9IG5ldyBGbG9hdFByb3BlcnR5PFN3aXRjaD4oInRodW1iUG9zIikgeworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIEZsb2F0IGdldChTd2l0Y2ggb2JqZWN0KSB7CisgICAgICAgICAgICByZXR1cm4gb2JqZWN0Lm1UaHVtYlBvc2l0aW9uOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHNldFZhbHVlKFN3aXRjaCBvYmplY3QsIGZsb2F0IHZhbHVlKSB7CisgICAgICAgICAgICBvYmplY3Quc2V0VGh1bWJQb3NpdGlvbih2YWx1ZSk7CisgICAgICAgIH0KKyAgICB9OwogfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1RhYkhvc3QuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9UYWJIb3N0LmphdmEKaW5kZXggMjM4ZGM1NS4uODlkZjUxYSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1RhYkhvc3QuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVGFiSG9zdC5qYXZhCkBAIC03NywxMSArNzcsMTggQEAKICAgICB9CiAKICAgICBwdWJsaWMgVGFiSG9zdChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIudGFiV2lkZ2V0U3R5bGUpOworICAgIH0KKworICAgIHB1YmxpYyBUYWJIb3N0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIFRhYkhvc3QoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgewogICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycyk7CiAKLSAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAotICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlRhYldpZGdldCwKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIudGFiV2lkZ2V0U3R5bGUsIDApOworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlRhYldpZGdldCwgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgbVRhYkxheW91dElkID0gYS5nZXRSZXNvdXJjZUlkKFIuc3R5bGVhYmxlLlRhYldpZGdldF90YWJMYXlvdXQsIDApOwogICAgICAgICBhLnJlY3ljbGUoKTsKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9UYWJXaWRnZXQuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9UYWJXaWRnZXQuamF2YQppbmRleCA2YmNlZDFjLi41NjhiM2U2YSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1RhYldpZGdldC5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9UYWJXaWRnZXQuamF2YQpAQCAtNzQsMTEgKzc0LDE1IEBACiAgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci50YWJXaWRnZXRTdHlsZSk7CiAgICAgfQogCi0gICAgcHVibGljIFRhYldpZGdldChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIFRhYldpZGdldChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBUYWJXaWRnZXQoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAotICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5UYWJXaWRnZXQsIGRlZlN0eWxlLCAwKTsKKyAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuVGFiV2lkZ2V0LCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICBzZXRTdHJpcEVuYWJsZWQoYS5nZXRCb29sZWFuKFIuc3R5bGVhYmxlLlRhYldpZGdldF90YWJTdHJpcEVuYWJsZWQsIHRydWUpKTsKICAgICAgICAgc2V0TGVmdFN0cmlwRHJhd2FibGUoYS5nZXREcmF3YWJsZShSLnN0eWxlYWJsZS5UYWJXaWRnZXRfdGFiU3RyaXBMZWZ0KSk7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVGV4dENsb2NrLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVGV4dENsb2NrLmphdmEKaW5kZXggYjNiOTVkOS4uNGM1YzcxZCAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1RleHRDbG9jay5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9UZXh0Q2xvY2suamF2YQpAQCAtMTk4LDE1ICsxOTgsMTkgQEAKICAgICAgKiBAcGFyYW0gY29udGV4dCBUaGUgQ29udGV4dCB0aGUgdmlldyBpcyBydW5uaW5nIGluLCB0aHJvdWdoIHdoaWNoIGl0IGNhbgogICAgICAqICAgICAgICBhY2Nlc3MgdGhlIGN1cnJlbnQgdGhlbWUsIHJlc291cmNlcywgZXRjLgogICAgICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBvZiB0aGUgWE1MIHRhZyB0aGF0IGlzIGluZmxhdGluZyB0aGUgdmlldwotICAgICAqIEBwYXJhbSBkZWZTdHlsZSBUaGUgZGVmYXVsdCBzdHlsZSB0byBhcHBseSB0byB0aGlzIHZpZXcuIElmIDAsIG5vIHN0eWxlCi0gICAgICogICAgICAgIHdpbGwgYmUgYXBwbGllZCAoYmV5b25kIHdoYXQgaXMgaW5jbHVkZWQgaW4gdGhlIHRoZW1lKS4gVGhpcyBtYXkKLSAgICAgKiAgICAgICAgZWl0aGVyIGJlIGFuIGF0dHJpYnV0ZSByZXNvdXJjZSwgd2hvc2UgdmFsdWUgd2lsbCBiZSByZXRyaWV2ZWQKLSAgICAgKiAgICAgICAgZnJvbSB0aGUgY3VycmVudCB0aGVtZSwgb3IgYW4gZXhwbGljaXQgc3R5bGUgcmVzb3VyY2UKKyAgICAgKiBAcGFyYW0gZGVmU3R5bGVBdHRyIEFuIGF0dHJpYnV0ZSBpbiB0aGUgY3VycmVudCB0aGVtZSB0aGF0IGNvbnRhaW5zIGEKKyAgICAgKiAgICAgICAgcmVmZXJlbmNlIHRvIGEgc3R5bGUgcmVzb3VyY2UgdGhhdCBzdXBwbGllcyBkZWZhdWx0IHZhbHVlcyBmb3IKKyAgICAgKiAgICAgICAgdGhlIHZpZXcuIENhbiBiZSAwIHRvIG5vdCBsb29rIGZvciBkZWZhdWx0cy4KICAgICAgKi8KLSAgICBwdWJsaWMgVGV4dENsb2NrKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgVGV4dENsb2NrKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQogCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywgUi5zdHlsZWFibGUuVGV4dENsb2NrLCBkZWZTdHlsZSwgMCk7CisgICAgcHVibGljIFRleHRDbG9jayhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIFIuc3R5bGVhYmxlLlRleHRDbG9jaywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBtRm9ybWF0MTIgPSBhLmdldFRleHQoUi5zdHlsZWFibGUuVGV4dENsb2NrX2Zvcm1hdDEySG91cik7CiAgICAgICAgICAgICBtRm9ybWF0MjQgPSBhLmdldFRleHQoUi5zdHlsZWFibGUuVGV4dENsb2NrX2Zvcm1hdDI0SG91cik7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVGV4dFZpZXcuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9UZXh0Vmlldy5qYXZhCmluZGV4IDdhOTgwOWYuLmZjYTYyZGYgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9UZXh0Vmlldy5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9UZXh0Vmlldy5qYXZhCkBAIC02MTgsOSArNjE4LDE0IEBACiAgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci50ZXh0Vmlld1N0eWxlKTsKICAgICB9CiAKKyAgICBwdWJsaWMgVGV4dFZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKICAgICBAU3VwcHJlc3NXYXJuaW5ncygiZGVwcmVjYXRpb24iKQotICAgIHB1YmxpYyBUZXh0VmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIFRleHRWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworCiAgICAgICAgIG1UZXh0ID0gIiI7CiAKICAgICAgICAgZmluYWwgUmVzb3VyY2VzIHJlcyA9IGdldFJlc291cmNlcygpOwpAQCAtNjU3LDggKzY2Miw4IEBACiAgICAgICAgICAqIHRvIGJlIGFibGUgdG8gcGFyc2UgdGhlIGFwcGVhcmFuY2UgZmlyc3QgYW5kIHRoZW4gbGV0IHNwZWNpZmljIHRhZ3MKICAgICAgICAgICogZm9yIHRoaXMgVmlldyBvdmVycmlkZSBpdC4KICAgICAgICAgICovCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IHRoZW1lLm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCi0gICAgICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5UZXh0Vmlld0FwcGVhcmFuY2UsIGRlZlN0eWxlLCAwKTsKKyAgICAgICAgVHlwZWRBcnJheSBhID0gdGhlbWUub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKKyAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5UZXh0Vmlld0FwcGVhcmFuY2UsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgICAgICBUeXBlZEFycmF5IGFwcGVhcmFuY2UgPSBudWxsOwogICAgICAgICBpbnQgYXAgPSBhLmdldFJlc291cmNlSWQoCiAgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuVGV4dFZpZXdBcHBlYXJhbmNlX3RleHRBcHBlYXJhbmNlLCAtMSk7CkBAIC03NTEsNyArNzU2LDcgQEAKICAgICAgICAgaW50IGlucHV0VHlwZSA9IEVkaXRvckluZm8uVFlQRV9OVUxMOwogCiAgICAgICAgIGEgPSB0aGVtZS5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAotICAgICAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuVGV4dFZpZXcsIGRlZlN0eWxlLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlRleHRWaWV3LCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICBpbnQgbiA9IGEuZ2V0SW5kZXhDb3VudCgpOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewpAQCAtMTI3NSw5ICsxMjgwLDggQEAKICAgICAgICAgICogSG93ZXZlciwgVGV4dFZpZXdzIHRoYXQgaGF2ZSBpbnB1dCBvciBtb3ZlbWVudCBtZXRob2RzICphcmUqCiAgICAgICAgICAqIGZvY3VzYWJsZSBieSBkZWZhdWx0LgogICAgICAgICAgKi8KLSAgICAgICAgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5WaWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZlN0eWxlLCAwKTsKKyAgICAgICAgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuVmlldywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgYm9vbGVhbiBmb2N1c2FibGUgPSBtTW92ZW1lbnQgIT0gbnVsbCB8fCBnZXRLZXlMaXN0ZW5lcigpICE9IG51bGw7CiAgICAgICAgIGJvb2xlYW4gY2xpY2thYmxlID0gZm9jdXNhYmxlOwpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1RpbWVQaWNrZXIuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9UaW1lUGlja2VyLmphdmEKaW5kZXggYzI2Y2IyNC4uNDg1ZmVjZiAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1RpbWVQaWNrZXIuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVGltZVBpY2tlci5qYXZhCkBAIC0xNywyOSArMTcsMjIgQEAKIHBhY2thZ2UgYW5kcm9pZC53aWRnZXQ7CiAKIGltcG9ydCBhbmRyb2lkLmFubm90YXRpb24uV2lkZ2V0OworaW1wb3J0IGFuZHJvaWQuYXBwLkRpYWxvZzsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLkNvbmZpZ3VyYXRpb247CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5UeXBlZEFycmF5OwotaW1wb3J0IGFuZHJvaWQub3MuUGFyY2VsOwogaW1wb3J0IGFuZHJvaWQub3MuUGFyY2VsYWJsZTsKLWltcG9ydCBhbmRyb2lkLnRleHQuZm9ybWF0LkRhdGVGb3JtYXQ7Ci1pbXBvcnQgYW5kcm9pZC50ZXh0LmZvcm1hdC5EYXRlVXRpbHM7CiBpbXBvcnQgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldDsKLWltcG9ydCBhbmRyb2lkLnZpZXcuTGF5b3V0SW5mbGF0ZXI7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXc7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cDsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuS2V5RXZlbnQ7CiBpbXBvcnQgYW5kcm9pZC52aWV3LmFjY2Vzc2liaWxpdHkuQWNjZXNzaWJpbGl0eUV2ZW50OwogaW1wb3J0IGFuZHJvaWQudmlldy5hY2Nlc3NpYmlsaXR5LkFjY2Vzc2liaWxpdHlOb2RlSW5mbzsKLWltcG9ydCBhbmRyb2lkLnZpZXcuaW5wdXRtZXRob2QuRWRpdG9ySW5mbzsKLWltcG9ydCBhbmRyb2lkLnZpZXcuaW5wdXRtZXRob2QuSW5wdXRNZXRob2RNYW5hZ2VyOwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0Lk51bWJlclBpY2tlci5PblZhbHVlQ2hhbmdlTGlzdGVuZXI7CiAKIGltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SOwogCi1pbXBvcnQgamF2YS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzOwotaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKIGltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOwogCitpbXBvcnQgc3RhdGljIGFuZHJvaWQub3MuQnVpbGQuVkVSU0lPTl9DT0RFUy5LSVRLQVQ7CisKIC8qKgogICogQSB2aWV3IGZvciBzZWxlY3RpbmcgdGhlIHRpbWUgb2YgZGF5LCBpbiBlaXRoZXIgMjQgaG91ciBvciBBTS9QTSBtb2RlLiBUaGUKICAqIGhvdXIsIGVhY2ggbWludXRlIGRpZ2l0LCBhbmQgQU0vUE0gKGlmIGFwcGxpY2FibGUpIGNhbiBiZSBjb25yb2xsZWQgYnkKQEAgLTU3LDU4ICs1MCwxMiBAQAogQFdpZGdldAogcHVibGljIGNsYXNzIFRpbWVQaWNrZXIgZXh0ZW5kcyBGcmFtZUxheW91dCB7CiAKLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFRkFVTFRfRU5BQkxFRF9TVEFURSA9IHRydWU7CisgICAgcHJpdmF0ZSBUaW1lUGlja2VyRGVsZWdhdGUgbURlbGVnYXRlOwogCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhPVVJTX0lOX0hBTEZfREFZID0gMTI7Ci0KLSAgICAvKioKLSAgICAgKiBBIG5vLW9wIGNhbGxiYWNrIHVzZWQgaW4gdGhlIGNvbnN0cnVjdG9yIHRvIGF2b2lkIG51bGwgY2hlY2tzIGxhdGVyIGluCi0gICAgICogdGhlIGNvZGUuCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgT25UaW1lQ2hhbmdlZExpc3RlbmVyIE5PX09QX0NIQU5HRV9MSVNURU5FUiA9IG5ldyBPblRpbWVDaGFuZ2VkTGlzdGVuZXIoKSB7Ci0gICAgICAgIHB1YmxpYyB2b2lkIG9uVGltZUNoYW5nZWQoVGltZVBpY2tlciB2aWV3LCBpbnQgaG91ck9mRGF5LCBpbnQgbWludXRlKSB7Ci0gICAgICAgIH0KLSAgICB9OwotCi0gICAgLy8gc3RhdGUKLSAgICBwcml2YXRlIGJvb2xlYW4gbUlzMjRIb3VyVmlldzsKLQotICAgIHByaXZhdGUgYm9vbGVhbiBtSXNBbTsKLQotICAgIC8vIHVpIGNvbXBvbmVudHMKLSAgICBwcml2YXRlIGZpbmFsIE51bWJlclBpY2tlciBtSG91clNwaW5uZXI7Ci0KLSAgICBwcml2YXRlIGZpbmFsIE51bWJlclBpY2tlciBtTWludXRlU3Bpbm5lcjsKLQotICAgIHByaXZhdGUgZmluYWwgTnVtYmVyUGlja2VyIG1BbVBtU3Bpbm5lcjsKLQotICAgIHByaXZhdGUgZmluYWwgRWRpdFRleHQgbUhvdXJTcGlubmVySW5wdXQ7Ci0KLSAgICBwcml2YXRlIGZpbmFsIEVkaXRUZXh0IG1NaW51dGVTcGlubmVySW5wdXQ7Ci0KLSAgICBwcml2YXRlIGZpbmFsIEVkaXRUZXh0IG1BbVBtU3Bpbm5lcklucHV0OwotCi0gICAgcHJpdmF0ZSBmaW5hbCBUZXh0VmlldyBtRGl2aWRlcjsKLQotICAgIC8vIE5vdGUgdGhhdCB0aGUgbGVnYWN5IGltcGxlbWVudGF0aW9uIG9mIHRoZSBUaW1lUGlja2VyIGlzCi0gICAgLy8gdXNpbmcgYSBidXR0b24gZm9yIHRvZ2dsaW5nIGJldHdlZW4gQU0vUE0gd2hpbGUgdGhlIG5ldwotICAgIC8vIHZlcnNpb24gdXNlcyBhIE51bWJlclBpY2tlciBzcGlubmVyLiBUaGVyZWZvcmUgdGhlIGNvZGUKLSAgICAvLyBhY2NvbW1vZGF0ZXMgdGhlc2UgdHdvIGNhc2VzIHRvIGJlIGJhY2t3YXJkcyBjb21wYXRpYmxlLgotICAgIHByaXZhdGUgZmluYWwgQnV0dG9uIG1BbVBtQnV0dG9uOwotCi0gICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdbXSBtQW1QbVN0cmluZ3M7Ci0KLSAgICBwcml2YXRlIGJvb2xlYW4gbUlzRW5hYmxlZCA9IERFRkFVTFRfRU5BQkxFRF9TVEFURTsKLQotICAgIC8vIGNhbGxiYWNrcwotICAgIHByaXZhdGUgT25UaW1lQ2hhbmdlZExpc3RlbmVyIG1PblRpbWVDaGFuZ2VkTGlzdGVuZXI7Ci0KLSAgICBwcml2YXRlIENhbGVuZGFyIG1UZW1wQ2FsZW5kYXI7Ci0KLSAgICBwcml2YXRlIExvY2FsZSBtQ3VycmVudExvY2FsZTsKLQotICAgIHByaXZhdGUgYm9vbGVhbiBtSG91cldpdGhUd29EaWdpdDsKLSAgICBwcml2YXRlIGNoYXIgbUhvdXJGb3JtYXQ7CisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVTZXQgbUF0dHJzOworICAgIHByaXZhdGUgaW50IG1EZWZTdHlsZUF0dHI7CisgICAgcHJpdmF0ZSBpbnQgbURlZlN0eWxlUmVzOworICAgIHByaXZhdGUgQ29udGV4dCBtQ29udGV4dDsKIAogICAgIC8qKgogICAgICAqIFRoZSBjYWxsYmFjayBpbnRlcmZhY2UgdXNlZCB0byBpbmRpY2F0ZSB0aGUgdGltZSBoYXMgYmVlbiBhZGp1c3RlZC4KQEAgLTEzMSwzNDUgKzc4LDc5IEBACiAgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIFIuYXR0ci50aW1lUGlja2VyU3R5bGUpOwogICAgIH0KIAotICAgIHB1YmxpYyBUaW1lUGlja2VyKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKLQotICAgICAgICAvLyBpbml0aWFsaXphdGlvbiBiYXNlZCBvbiBsb2NhbGUKLSAgICAgICAgc2V0Q3VycmVudExvY2FsZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKLQotICAgICAgICAvLyBwcm9jZXNzIHN0eWxlIGF0dHJpYnV0ZXMKLSAgICAgICAgVHlwZWRBcnJheSBhdHRyaWJ1dGVzQXJyYXkgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCi0gICAgICAgICAgICAgICAgYXR0cnMsIFIuc3R5bGVhYmxlLlRpbWVQaWNrZXIsIGRlZlN0eWxlLCAwKTsKLSAgICAgICAgaW50IGxheW91dFJlc291cmNlSWQgPSBhdHRyaWJ1dGVzQXJyYXkuZ2V0UmVzb3VyY2VJZCgKLSAgICAgICAgICAgICAgICBSLnN0eWxlYWJsZS5UaW1lUGlja2VyX2ludGVybmFsTGF5b3V0LCBSLmxheW91dC50aW1lX3BpY2tlcik7Ci0gICAgICAgIGF0dHJpYnV0ZXNBcnJheS5yZWN5Y2xlKCk7Ci0KLSAgICAgICAgTGF5b3V0SW5mbGF0ZXIgaW5mbGF0ZXIgPSAoTGF5b3V0SW5mbGF0ZXIpIGNvbnRleHQuZ2V0U3lzdGVtU2VydmljZSgKLSAgICAgICAgICAgICAgICBDb250ZXh0LkxBWU9VVF9JTkZMQVRFUl9TRVJWSUNFKTsKLSAgICAgICAgaW5mbGF0ZXIuaW5mbGF0ZShsYXlvdXRSZXNvdXJjZUlkLCB0aGlzLCB0cnVlKTsKLQotICAgICAgICAvLyBob3VyCi0gICAgICAgIG1Ib3VyU3Bpbm5lciA9IChOdW1iZXJQaWNrZXIpIGZpbmRWaWV3QnlJZChSLmlkLmhvdXIpOwotICAgICAgICBtSG91clNwaW5uZXIuc2V0T25WYWx1ZUNoYW5nZWRMaXN0ZW5lcihuZXcgTnVtYmVyUGlja2VyLk9uVmFsdWVDaGFuZ2VMaXN0ZW5lcigpIHsKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uVmFsdWVDaGFuZ2UoTnVtYmVyUGlja2VyIHNwaW5uZXIsIGludCBvbGRWYWwsIGludCBuZXdWYWwpIHsKLSAgICAgICAgICAgICAgICB1cGRhdGVJbnB1dFN0YXRlKCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFpczI0SG91clZpZXcoKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoKG9sZFZhbCA9PSBIT1VSU19JTl9IQUxGX0RBWSAtIDEgJiYgbmV3VmFsID09IEhPVVJTX0lOX0hBTEZfREFZKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IChvbGRWYWwgPT0gSE9VUlNfSU5fSEFMRl9EQVkgJiYgbmV3VmFsID09IEhPVVJTX0lOX0hBTEZfREFZIC0gMSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1Jc0FtID0gIW1Jc0FtOwotICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlQW1QbUNvbnRyb2woKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBvblRpbWVDaGFuZ2VkKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgICAgICBtSG91clNwaW5uZXJJbnB1dCA9IChFZGl0VGV4dCkgbUhvdXJTcGlubmVyLmZpbmRWaWV3QnlJZChSLmlkLm51bWJlcnBpY2tlcl9pbnB1dCk7Ci0gICAgICAgIG1Ib3VyU3Bpbm5lcklucHV0LnNldEltZU9wdGlvbnMoRWRpdG9ySW5mby5JTUVfQUNUSU9OX05FWFQpOwotCi0gICAgICAgIC8vIGRpdmlkZXIgKG9ubHkgZm9yIHRoZSBuZXcgd2lkZ2V0IHN0eWxlKQotICAgICAgICBtRGl2aWRlciA9IChUZXh0VmlldykgZmluZFZpZXdCeUlkKFIuaWQuZGl2aWRlcik7Ci0gICAgICAgIGlmIChtRGl2aWRlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBzZXREaXZpZGVyVGV4dCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gbWludXRlCi0gICAgICAgIG1NaW51dGVTcGlubmVyID0gKE51bWJlclBpY2tlcikgZmluZFZpZXdCeUlkKFIuaWQubWludXRlKTsKLSAgICAgICAgbU1pbnV0ZVNwaW5uZXIuc2V0TWluVmFsdWUoMCk7Ci0gICAgICAgIG1NaW51dGVTcGlubmVyLnNldE1heFZhbHVlKDU5KTsKLSAgICAgICAgbU1pbnV0ZVNwaW5uZXIuc2V0T25Mb25nUHJlc3NVcGRhdGVJbnRlcnZhbCgxMDApOwotICAgICAgICBtTWludXRlU3Bpbm5lci5zZXRGb3JtYXR0ZXIoTnVtYmVyUGlja2VyLmdldFR3b0RpZ2l0Rm9ybWF0dGVyKCkpOwotICAgICAgICBtTWludXRlU3Bpbm5lci5zZXRPblZhbHVlQ2hhbmdlZExpc3RlbmVyKG5ldyBOdW1iZXJQaWNrZXIuT25WYWx1ZUNoYW5nZUxpc3RlbmVyKCkgewotICAgICAgICAgICAgcHVibGljIHZvaWQgb25WYWx1ZUNoYW5nZShOdW1iZXJQaWNrZXIgc3Bpbm5lciwgaW50IG9sZFZhbCwgaW50IG5ld1ZhbCkgewotICAgICAgICAgICAgICAgIHVwZGF0ZUlucHV0U3RhdGUoKTsKLSAgICAgICAgICAgICAgICBpbnQgbWluVmFsdWUgPSBtTWludXRlU3Bpbm5lci5nZXRNaW5WYWx1ZSgpOwotICAgICAgICAgICAgICAgIGludCBtYXhWYWx1ZSA9IG1NaW51dGVTcGlubmVyLmdldE1heFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgaWYgKG9sZFZhbCA9PSBtYXhWYWx1ZSAmJiBuZXdWYWwgPT0gbWluVmFsdWUpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IG5ld0hvdXIgPSBtSG91clNwaW5uZXIuZ2V0VmFsdWUoKSArIDE7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghaXMyNEhvdXJWaWV3KCkgJiYgbmV3SG91ciA9PSBIT1VSU19JTl9IQUxGX0RBWSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbUlzQW0gPSAhbUlzQW07Ci0gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVBbVBtQ29udHJvbCgpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIG1Ib3VyU3Bpbm5lci5zZXRWYWx1ZShuZXdIb3VyKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9sZFZhbCA9PSBtaW5WYWx1ZSAmJiBuZXdWYWwgPT0gbWF4VmFsdWUpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IG5ld0hvdXIgPSBtSG91clNwaW5uZXIuZ2V0VmFsdWUoKSAtIDE7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghaXMyNEhvdXJWaWV3KCkgJiYgbmV3SG91ciA9PSBIT1VSU19JTl9IQUxGX0RBWSAtIDEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1Jc0FtID0gIW1Jc0FtOwotICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlQW1QbUNvbnRyb2woKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBtSG91clNwaW5uZXIuc2V0VmFsdWUobmV3SG91cik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG9uVGltZUNoYW5nZWQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgICAgIG1NaW51dGVTcGlubmVySW5wdXQgPSAoRWRpdFRleHQpIG1NaW51dGVTcGlubmVyLmZpbmRWaWV3QnlJZChSLmlkLm51bWJlcnBpY2tlcl9pbnB1dCk7Ci0gICAgICAgIG1NaW51dGVTcGlubmVySW5wdXQuc2V0SW1lT3B0aW9ucyhFZGl0b3JJbmZvLklNRV9BQ1RJT05fTkVYVCk7Ci0KLSAgICAgICAgLyogR2V0IHRoZSBsb2NhbGl6ZWQgYW0vcG0gc3RyaW5ncyBhbmQgdXNlIHRoZW0gaW4gdGhlIHNwaW5uZXIgKi8KLSAgICAgICAgbUFtUG1TdHJpbmdzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKCkuZ2V0QW1QbVN0cmluZ3MoKTsKLQotICAgICAgICAvLyBhbS9wbQotICAgICAgICBWaWV3IGFtUG1WaWV3ID0gZmluZFZpZXdCeUlkKFIuaWQuYW1QbSk7Ci0gICAgICAgIGlmIChhbVBtVmlldyBpbnN0YW5jZW9mIEJ1dHRvbikgewotICAgICAgICAgICAgbUFtUG1TcGlubmVyID0gbnVsbDsKLSAgICAgICAgICAgIG1BbVBtU3Bpbm5lcklucHV0ID0gbnVsbDsKLSAgICAgICAgICAgIG1BbVBtQnV0dG9uID0gKEJ1dHRvbikgYW1QbVZpZXc7Ci0gICAgICAgICAgICBtQW1QbUJ1dHRvbi5zZXRPbkNsaWNrTGlzdGVuZXIobmV3IE9uQ2xpY2tMaXN0ZW5lcigpIHsKLSAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBvbkNsaWNrKFZpZXcgYnV0dG9uKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5yZXF1ZXN0Rm9jdXMoKTsKLSAgICAgICAgICAgICAgICAgICAgbUlzQW0gPSAhbUlzQW07Ci0gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUFtUG1Db250cm9sKCk7Ci0gICAgICAgICAgICAgICAgICAgIG9uVGltZUNoYW5nZWQoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1BbVBtQnV0dG9uID0gbnVsbDsKLSAgICAgICAgICAgIG1BbVBtU3Bpbm5lciA9IChOdW1iZXJQaWNrZXIpIGFtUG1WaWV3OwotICAgICAgICAgICAgbUFtUG1TcGlubmVyLnNldE1pblZhbHVlKDApOwotICAgICAgICAgICAgbUFtUG1TcGlubmVyLnNldE1heFZhbHVlKDEpOwotICAgICAgICAgICAgbUFtUG1TcGlubmVyLnNldERpc3BsYXllZFZhbHVlcyhtQW1QbVN0cmluZ3MpOwotICAgICAgICAgICAgbUFtUG1TcGlubmVyLnNldE9uVmFsdWVDaGFuZ2VkTGlzdGVuZXIobmV3IE9uVmFsdWVDaGFuZ2VMaXN0ZW5lcigpIHsKLSAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBvblZhbHVlQ2hhbmdlKE51bWJlclBpY2tlciBwaWNrZXIsIGludCBvbGRWYWwsIGludCBuZXdWYWwpIHsKLSAgICAgICAgICAgICAgICAgICAgdXBkYXRlSW5wdXRTdGF0ZSgpOwotICAgICAgICAgICAgICAgICAgICBwaWNrZXIucmVxdWVzdEZvY3VzKCk7Ci0gICAgICAgICAgICAgICAgICAgIG1Jc0FtID0gIW1Jc0FtOwotICAgICAgICAgICAgICAgICAgICB1cGRhdGVBbVBtQ29udHJvbCgpOwotICAgICAgICAgICAgICAgICAgICBvblRpbWVDaGFuZ2VkKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBtQW1QbVNwaW5uZXJJbnB1dCA9IChFZGl0VGV4dCkgbUFtUG1TcGlubmVyLmZpbmRWaWV3QnlJZChSLmlkLm51bWJlcnBpY2tlcl9pbnB1dCk7Ci0gICAgICAgICAgICBtQW1QbVNwaW5uZXJJbnB1dC5zZXRJbWVPcHRpb25zKEVkaXRvckluZm8uSU1FX0FDVElPTl9ET05FKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChpc0FtUG1BdFN0YXJ0KCkpIHsKLSAgICAgICAgICAgIC8vIE1vdmUgdGhlIGFtL3BtIHZpZXcgdG8gdGhlIGJlZ2lubmluZwotICAgICAgICAgICAgVmlld0dyb3VwIGFtUG1QYXJlbnQgPSAoVmlld0dyb3VwKSBmaW5kVmlld0J5SWQoUi5pZC50aW1lUGlja2VyTGF5b3V0KTsKLSAgICAgICAgICAgIGFtUG1QYXJlbnQucmVtb3ZlVmlldyhhbVBtVmlldyk7Ci0gICAgICAgICAgICBhbVBtUGFyZW50LmFkZFZpZXcoYW1QbVZpZXcsIDApOwotICAgICAgICAgICAgLy8gU3dhcCBsYXlvdXQgbWFyZ2lucyBpZiBuZWVkZWQuIFRoZXkgbWF5IGJlIG5vdCBzeW1tZXRyaWNhbCAoT2xkIFN0YW5kYXJkIFRoZW1lIGZvcgotICAgICAgICAgICAgLy8gZXhhbXBsZSBhbmQgbm90IGZvciBIb2xvIFRoZW1lKQotICAgICAgICAgICAgVmlld0dyb3VwLk1hcmdpbkxheW91dFBhcmFtcyBscCA9IChWaWV3R3JvdXAuTWFyZ2luTGF5b3V0UGFyYW1zKSBhbVBtVmlldy5nZXRMYXlvdXRQYXJhbXMoKTsKLSAgICAgICAgICAgIGZpbmFsIGludCBzdGFydE1hcmdpbiA9IGxwLmdldE1hcmdpblN0YXJ0KCk7Ci0gICAgICAgICAgICBmaW5hbCBpbnQgZW5kTWFyZ2luID0gbHAuZ2V0TWFyZ2luRW5kKCk7Ci0gICAgICAgICAgICBpZiAoc3RhcnRNYXJnaW4gIT0gZW5kTWFyZ2luKSB7Ci0gICAgICAgICAgICAgICAgbHAuc2V0TWFyZ2luU3RhcnQoZW5kTWFyZ2luKTsKLSAgICAgICAgICAgICAgICBscC5zZXRNYXJnaW5FbmQoc3RhcnRNYXJnaW4pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgZ2V0SG91ckZvcm1hdERhdGEoKTsKLQotICAgICAgICAvLyB1cGRhdGUgY29udHJvbHMgdG8gaW5pdGlhbCBzdGF0ZQotICAgICAgICB1cGRhdGVIb3VyQ29udHJvbCgpOwotICAgICAgICB1cGRhdGVNaW51dGVDb250cm9sKCk7Ci0gICAgICAgIHVwZGF0ZUFtUG1Db250cm9sKCk7Ci0KLSAgICAgICAgc2V0T25UaW1lQ2hhbmdlZExpc3RlbmVyKE5PX09QX0NIQU5HRV9MSVNURU5FUik7Ci0KLSAgICAgICAgLy8gc2V0IHRvIGN1cnJlbnQgdGltZQotICAgICAgICBzZXRDdXJyZW50SG91cihtVGVtcENhbGVuZGFyLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpOwotICAgICAgICBzZXRDdXJyZW50TWludXRlKG1UZW1wQ2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1JTlVURSkpOwotCi0gICAgICAgIGlmICghaXNFbmFibGVkKCkpIHsKLSAgICAgICAgICAgIHNldEVuYWJsZWQoZmFsc2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gc2V0IHRoZSBjb250ZW50IGRlc2NyaXB0aW9ucwotICAgICAgICBzZXRDb250ZW50RGVzY3JpcHRpb25zKCk7Ci0KLSAgICAgICAgLy8gSWYgbm90IGV4cGxpY2l0bHkgc3BlY2lmaWVkIHRoaXMgdmlldyBpcyBpbXBvcnRhbnQgZm9yIGFjY2Vzc2liaWxpdHkuCi0gICAgICAgIGlmIChnZXRJbXBvcnRhbnRGb3JBY2Nlc3NpYmlsaXR5KCkgPT0gSU1QT1JUQU5UX0ZPUl9BQ0NFU1NJQklMSVRZX0FVVE8pIHsKLSAgICAgICAgICAgIHNldEltcG9ydGFudEZvckFjY2Vzc2liaWxpdHkoSU1QT1JUQU5UX0ZPUl9BQ0NFU1NJQklMSVRZX1lFUyk7Ci0gICAgICAgIH0KKyAgICBwdWJsaWMgVGltZVBpY2tlcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOwogICAgIH0KIAotICAgIHByaXZhdGUgdm9pZCBnZXRIb3VyRm9ybWF0RGF0YSgpIHsKLSAgICAgICAgZmluYWwgTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOwotICAgICAgICBmaW5hbCBTdHJpbmcgYmVzdERhdGVUaW1lUGF0dGVybiA9IERhdGVGb3JtYXQuZ2V0QmVzdERhdGVUaW1lUGF0dGVybihkZWZhdWx0TG9jYWxlLAotICAgICAgICAgICAgICAgIChtSXMyNEhvdXJWaWV3KSA/ICJIbSIgOiAiaG0iKTsKLSAgICAgICAgZmluYWwgaW50IGxlbmd0aFBhdHRlcm4gPSBiZXN0RGF0ZVRpbWVQYXR0ZXJuLmxlbmd0aCgpOwotICAgICAgICBtSG91cldpdGhUd29EaWdpdCA9IGZhbHNlOwotICAgICAgICBjaGFyIGhvdXJGb3JtYXQgPSAnXDAnOwotICAgICAgICAvLyBDaGVjayBpZiB0aGUgcmV0dXJuZWQgcGF0dGVybiBpcyBzaW5nbGUgb3IgZG91YmxlICdIJywgJ2gnLCAnSycsICdrJy4gV2UgYWxzbyBzYXZlCi0gICAgICAgIC8vIHRoZSBob3VyIGZvcm1hdCB0aGF0IHdlIGZvdW5kLgotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aFBhdHRlcm47IGkrKykgewotICAgICAgICAgICAgZmluYWwgY2hhciBjID0gYmVzdERhdGVUaW1lUGF0dGVybi5jaGFyQXQoaSk7Ci0gICAgICAgICAgICBpZiAoYyA9PSAnSCcgfHwgYyA9PSAnaCcgfHwgYyA9PSAnSycgfHwgYyA9PSAnaycpIHsKLSAgICAgICAgICAgICAgICBtSG91ckZvcm1hdCA9IGM7Ci0gICAgICAgICAgICAgICAgaWYgKGkgKyAxIDwgbGVuZ3RoUGF0dGVybiAmJiBjID09IGJlc3REYXRlVGltZVBhdHRlcm4uY2hhckF0KGkgKyAxKSkgewotICAgICAgICAgICAgICAgICAgICBtSG91cldpdGhUd29EaWdpdCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgcHVibGljIFRpbWVQaWNrZXIoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgbUNvbnRleHQgPSBjb250ZXh0OworICAgICAgICBtQXR0cnMgPSBhdHRyczsKKyAgICAgICAgbURlZlN0eWxlQXR0ciA9IGRlZlN0eWxlQXR0cjsKKyAgICAgICAgbURlZlN0eWxlUmVzID0gZGVmU3R5bGVSZXM7CisKKyAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLCBSLnN0eWxlYWJsZS5UaW1lUGlja2VyLAorICAgICAgICAgICAgICAgIG1EZWZTdHlsZUF0dHIsIG1EZWZTdHlsZVJlcyk7CisKKyAgICAgICAgLy8gQ3JlYXRlIHRoZSBjb3JyZWN0IFVJIGRlbGVnYXRlLiBEZWZhdWx0IGlzIHRoZSBsZWdhY3kgb25lLgorICAgICAgICBmaW5hbCBib29sZWFuIGlzTGVnYWN5TW9kZSA9IHNob3VsZEZvcmNlTGVnYWN5TW9kZSgpID8KKyAgICAgICAgICAgICAgICB0cnVlIDogYS5nZXRCb29sZWFuKFIuc3R5bGVhYmxlLlRpbWVQaWNrZXJfbGVnYWN5TW9kZSwgdHJ1ZSk7CisgICAgICAgIHNldExlZ2FjeU1vZGUoaXNMZWdhY3lNb2RlKTsKICAgICB9CiAKLSAgICBwcml2YXRlIGJvb2xlYW4gaXNBbVBtQXRTdGFydCgpIHsKLSAgICAgICAgZmluYWwgTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOwotICAgICAgICBmaW5hbCBTdHJpbmcgYmVzdERhdGVUaW1lUGF0dGVybiA9IERhdGVGb3JtYXQuZ2V0QmVzdERhdGVUaW1lUGF0dGVybihkZWZhdWx0TG9jYWxlLAotICAgICAgICAgICAgICAgICJobSIgLyogc2tlbGV0b24gKi8pOwotCi0gICAgICAgIHJldHVybiBiZXN0RGF0ZVRpbWVQYXR0ZXJuLnN0YXJ0c1dpdGgoImEiKTsKKyAgICBwcml2YXRlIGJvb2xlYW4gc2hvdWxkRm9yY2VMZWdhY3lNb2RlKCkgeworICAgICAgICBmaW5hbCBpbnQgdGFyZ2V0U2RrVmVyc2lvbiA9IGdldENvbnRleHQoKS5nZXRBcHBsaWNhdGlvbkluZm8oKS50YXJnZXRTZGtWZXJzaW9uOworICAgICAgICByZXR1cm4gdGFyZ2V0U2RrVmVyc2lvbiA8IEtJVEtBVDsKICAgICB9CiAKLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzZXRFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCkgewotICAgICAgICBpZiAobUlzRW5hYmxlZCA9PSBlbmFibGVkKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgc3VwZXIuc2V0RW5hYmxlZChlbmFibGVkKTsKLSAgICAgICAgbU1pbnV0ZVNwaW5uZXIuc2V0RW5hYmxlZChlbmFibGVkKTsKLSAgICAgICAgaWYgKG1EaXZpZGVyICE9IG51bGwpIHsKLSAgICAgICAgICAgIG1EaXZpZGVyLnNldEVuYWJsZWQoZW5hYmxlZCk7Ci0gICAgICAgIH0KLSAgICAgICAgbUhvdXJTcGlubmVyLnNldEVuYWJsZWQoZW5hYmxlZCk7Ci0gICAgICAgIGlmIChtQW1QbVNwaW5uZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbUFtUG1TcGlubmVyLnNldEVuYWJsZWQoZW5hYmxlZCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtQW1QbUJ1dHRvbi5zZXRFbmFibGVkKGVuYWJsZWQpOwotICAgICAgICB9Ci0gICAgICAgIG1Jc0VuYWJsZWQgPSBlbmFibGVkOworICAgIHByaXZhdGUgVGltZVBpY2tlckRlbGVnYXRlIGNyZWF0ZUxlZ2FjeVVJRGVsZWdhdGUoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsCisgICAgICAgICAgICBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBMZWdhY3lUaW1lUGlja2VyRGVsZWdhdGUodGhpcywgY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgIH0KIAotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGlzRW5hYmxlZCgpIHsKLSAgICAgICAgcmV0dXJuIG1Jc0VuYWJsZWQ7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHJvdGVjdGVkIHZvaWQgb25Db25maWd1cmF0aW9uQ2hhbmdlZChDb25maWd1cmF0aW9uIG5ld0NvbmZpZykgewotICAgICAgICBzdXBlci5vbkNvbmZpZ3VyYXRpb25DaGFuZ2VkKG5ld0NvbmZpZyk7Ci0gICAgICAgIHNldEN1cnJlbnRMb2NhbGUobmV3Q29uZmlnLmxvY2FsZSk7CisgICAgcHJpdmF0ZSBUaW1lUGlja2VyRGVsZWdhdGUgY3JlYXRlTmV3VUlEZWxlZ2F0ZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywKKyAgICAgICAgICAgIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICByZXR1cm4gbmV3IGFuZHJvaWQud2lkZ2V0LlRpbWVQaWNrZXJEZWxlZ2F0ZSh0aGlzLCBjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLAorICAgICAgICAgICAgICAgIGRlZlN0eWxlUmVzKTsKICAgICB9CiAKICAgICAvKioKLSAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGxvY2FsZS4KLSAgICAgKgotICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGN1cnJlbnQgbG9jYWxlLgorICAgICAqIEBoaWRlCiAgICAgICovCi0gICAgcHJpdmF0ZSB2b2lkIHNldEN1cnJlbnRMb2NhbGUoTG9jYWxlIGxvY2FsZSkgewotICAgICAgICBpZiAobG9jYWxlLmVxdWFscyhtQ3VycmVudExvY2FsZSkpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBtQ3VycmVudExvY2FsZSA9IGxvY2FsZTsKLSAgICAgICAgbVRlbXBDYWxlbmRhciA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvY2FsZSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogVXNlZCB0byBzYXZlIC8gcmVzdG9yZSBzdGF0ZSBvZiB0aW1lIHBpY2tlcgotICAgICAqLwotICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFNhdmVkU3RhdGUgZXh0ZW5kcyBCYXNlU2F2ZWRTdGF0ZSB7Ci0KLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBpbnQgbUhvdXI7Ci0KLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBpbnQgbU1pbnV0ZTsKLQotICAgICAgICBwcml2YXRlIFNhdmVkU3RhdGUoUGFyY2VsYWJsZSBzdXBlclN0YXRlLCBpbnQgaG91ciwgaW50IG1pbnV0ZSkgewotICAgICAgICAgICAgc3VwZXIoc3VwZXJTdGF0ZSk7Ci0gICAgICAgICAgICBtSG91ciA9IGhvdXI7Ci0gICAgICAgICAgICBtTWludXRlID0gbWludXRlOwotICAgICAgICB9Ci0KLSAgICAgICAgcHJpdmF0ZSBTYXZlZFN0YXRlKFBhcmNlbCBpbikgewotICAgICAgICAgICAgc3VwZXIoaW4pOwotICAgICAgICAgICAgbUhvdXIgPSBpbi5yZWFkSW50KCk7Ci0gICAgICAgICAgICBtTWludXRlID0gaW4ucmVhZEludCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgcHVibGljIGludCBnZXRIb3VyKCkgewotICAgICAgICAgICAgcmV0dXJuIG1Ib3VyOwotICAgICAgICB9Ci0KLSAgICAgICAgcHVibGljIGludCBnZXRNaW51dGUoKSB7Ci0gICAgICAgICAgICByZXR1cm4gbU1pbnV0ZTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZVRvUGFyY2VsKFBhcmNlbCBkZXN0LCBpbnQgZmxhZ3MpIHsKLSAgICAgICAgICAgIHN1cGVyLndyaXRlVG9QYXJjZWwoZGVzdCwgZmxhZ3MpOwotICAgICAgICAgICAgZGVzdC53cml0ZUludChtSG91cik7Ci0gICAgICAgICAgICBkZXN0LndyaXRlSW50KG1NaW51dGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgQFN1cHByZXNzV2FybmluZ3MoeyJ1bnVzZWQiLCAiaGlkaW5nIn0pCi0gICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgUGFyY2VsYWJsZS5DcmVhdG9yPFNhdmVkU3RhdGU+IENSRUFUT1IgPSBuZXcgQ3JlYXRvcjxTYXZlZFN0YXRlPigpIHsKLSAgICAgICAgICAgIHB1YmxpYyBTYXZlZFN0YXRlIGNyZWF0ZUZyb21QYXJjZWwoUGFyY2VsIGluKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTYXZlZFN0YXRlKGluKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcHVibGljIFNhdmVkU3RhdGVbXSBuZXdBcnJheShpbnQgc2l6ZSkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2F2ZWRTdGF0ZVtzaXplXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwcm90ZWN0ZWQgUGFyY2VsYWJsZSBvblNhdmVJbnN0YW5jZVN0YXRlKCkgewotICAgICAgICBQYXJjZWxhYmxlIHN1cGVyU3RhdGUgPSBzdXBlci5vblNhdmVJbnN0YW5jZVN0YXRlKCk7Ci0gICAgICAgIHJldHVybiBuZXcgU2F2ZWRTdGF0ZShzdXBlclN0YXRlLCBnZXRDdXJyZW50SG91cigpLCBnZXRDdXJyZW50TWludXRlKCkpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHByb3RlY3RlZCB2b2lkIG9uUmVzdG9yZUluc3RhbmNlU3RhdGUoUGFyY2VsYWJsZSBzdGF0ZSkgewotICAgICAgICBTYXZlZFN0YXRlIHNzID0gKFNhdmVkU3RhdGUpIHN0YXRlOwotICAgICAgICBzdXBlci5vblJlc3RvcmVJbnN0YW5jZVN0YXRlKHNzLmdldFN1cGVyU3RhdGUoKSk7Ci0gICAgICAgIHNldEN1cnJlbnRIb3VyKHNzLmdldEhvdXIoKSk7Ci0gICAgICAgIHNldEN1cnJlbnRNaW51dGUoc3MuZ2V0TWludXRlKCkpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFNldCB0aGUgY2FsbGJhY2sgdGhhdCBpbmRpY2F0ZXMgdGhlIHRpbWUgaGFzIGJlZW4gYWRqdXN0ZWQgYnkgdGhlIHVzZXIuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gb25UaW1lQ2hhbmdlZExpc3RlbmVyIHRoZSBjYWxsYmFjaywgc2hvdWxkIG5vdCBiZSBudWxsLgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHNldE9uVGltZUNoYW5nZWRMaXN0ZW5lcihPblRpbWVDaGFuZ2VkTGlzdGVuZXIgb25UaW1lQ2hhbmdlZExpc3RlbmVyKSB7Ci0gICAgICAgIG1PblRpbWVDaGFuZ2VkTGlzdGVuZXIgPSBvblRpbWVDaGFuZ2VkTGlzdGVuZXI7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQHJldHVybiBUaGUgY3VycmVudCBob3VyIGluIHRoZSByYW5nZSAoMC0yMykuCi0gICAgICovCi0gICAgcHVibGljIEludGVnZXIgZ2V0Q3VycmVudEhvdXIoKSB7Ci0gICAgICAgIGludCBjdXJyZW50SG91ciA9IG1Ib3VyU3Bpbm5lci5nZXRWYWx1ZSgpOwotICAgICAgICBpZiAoaXMyNEhvdXJWaWV3KCkpIHsKLSAgICAgICAgICAgIHJldHVybiBjdXJyZW50SG91cjsKLSAgICAgICAgfSBlbHNlIGlmIChtSXNBbSkgewotICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRIb3VyICUgSE9VUlNfSU5fSEFMRl9EQVk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4gKGN1cnJlbnRIb3VyICUgSE9VUlNfSU5fSEFMRl9EQVkpICsgSE9VUlNfSU5fSEFMRl9EQVk7Ci0gICAgICAgIH0KKyAgICBwdWJsaWMgdm9pZCBzZXRMZWdhY3lNb2RlKGJvb2xlYW4gaXNMZWdhY3lNb2RlKSB7CisgICAgICAgIHJlbW92ZUFsbFZpZXdzSW5MYXlvdXQoKTsKKyAgICAgICAgbURlbGVnYXRlID0gaXNMZWdhY3lNb2RlID8KKyAgICAgICAgICAgICAgICBjcmVhdGVMZWdhY3lVSURlbGVnYXRlKG1Db250ZXh0LCBtQXR0cnMsIG1EZWZTdHlsZUF0dHIsIG1EZWZTdHlsZVJlcykgOgorICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1VJRGVsZWdhdGUobUNvbnRleHQsIG1BdHRycywgbURlZlN0eWxlQXR0ciwgbURlZlN0eWxlUmVzKTsKICAgICB9CiAKICAgICAvKioKICAgICAgKiBTZXQgdGhlIGN1cnJlbnQgaG91ci4KICAgICAgKi8KICAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW50SG91cihJbnRlZ2VyIGN1cnJlbnRIb3VyKSB7Ci0gICAgICAgIHNldEN1cnJlbnRIb3VyKGN1cnJlbnRIb3VyLCB0cnVlKTsKKyAgICAgICAgbURlbGVnYXRlLnNldEN1cnJlbnRIb3VyKGN1cnJlbnRIb3VyKTsKICAgICB9CiAKLSAgICBwcml2YXRlIHZvaWQgc2V0Q3VycmVudEhvdXIoSW50ZWdlciBjdXJyZW50SG91ciwgYm9vbGVhbiBub3RpZnlUaW1lQ2hhbmdlZCkgewotICAgICAgICAvLyB3aHkgd2FzIEludGVnZXIgdXNlZCBpbiB0aGUgZmlyc3QgcGxhY2U/Ci0gICAgICAgIGlmIChjdXJyZW50SG91ciA9PSBudWxsIHx8IGN1cnJlbnRIb3VyID09IGdldEN1cnJlbnRIb3VyKCkpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpZiAoIWlzMjRIb3VyVmlldygpKSB7Ci0gICAgICAgICAgICAvLyBjb252ZXJ0IFswLDIzXSBvcmRpbmFsIHRvIHdhbGwgY2xvY2sgZGlzcGxheQotICAgICAgICAgICAgaWYgKGN1cnJlbnRIb3VyID49IEhPVVJTX0lOX0hBTEZfREFZKSB7Ci0gICAgICAgICAgICAgICAgbUlzQW0gPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBpZiAoY3VycmVudEhvdXIgPiBIT1VSU19JTl9IQUxGX0RBWSkgewotICAgICAgICAgICAgICAgICAgICBjdXJyZW50SG91ciA9IGN1cnJlbnRIb3VyIC0gSE9VUlNfSU5fSEFMRl9EQVk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtSXNBbSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRIb3VyID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudEhvdXIgPSBIT1VSU19JTl9IQUxGX0RBWTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1cGRhdGVBbVBtQ29udHJvbCgpOwotICAgICAgICB9Ci0gICAgICAgIG1Ib3VyU3Bpbm5lci5zZXRWYWx1ZShjdXJyZW50SG91cik7Ci0gICAgICAgIGlmIChub3RpZnlUaW1lQ2hhbmdlZCkgewotICAgICAgICAgICAgb25UaW1lQ2hhbmdlZCgpOwotICAgICAgICB9CisgICAgLyoqCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBob3VyIGluIHRoZSByYW5nZSAoMC0yMykuCisgICAgICovCisgICAgcHVibGljIEludGVnZXIgZ2V0Q3VycmVudEhvdXIoKSB7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUuZ2V0Q3VycmVudEhvdXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGN1cnJlbnQgbWludXRlICgwLTU5KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW50TWludXRlKEludGVnZXIgY3VycmVudE1pbnV0ZSkgeworICAgICAgICBtRGVsZWdhdGUuc2V0Q3VycmVudE1pbnV0ZShjdXJyZW50TWludXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IG1pbnV0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSW50ZWdlciBnZXRDdXJyZW50TWludXRlKCkgeworICAgICAgICByZXR1cm4gbURlbGVnYXRlLmdldEN1cnJlbnRNaW51dGUoKTsKICAgICB9CiAKICAgICAvKioKQEAgLTQ3OCwyMjMgKzE1OSwxNzQgQEAKICAgICAgKiBAcGFyYW0gaXMyNEhvdXJWaWV3IFRydWUgPSAyNCBob3VyIG1vZGUuIEZhbHNlID0gQU0vUE0uCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc2V0SXMyNEhvdXJWaWV3KEJvb2xlYW4gaXMyNEhvdXJWaWV3KSB7Ci0gICAgICAgIGlmIChtSXMyNEhvdXJWaWV3ID09IGlzMjRIb3VyVmlldykgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIC8vIGNhY2hlIHRoZSBjdXJyZW50IGhvdXIgc2luY2Ugc3Bpbm5lciByYW5nZSBjaGFuZ2VzIGFuZCBCRUZPUkUgY2hhbmdpbmcgbUlzMjRIb3VyVmlldyEhCi0gICAgICAgIGludCBjdXJyZW50SG91ciA9IGdldEN1cnJlbnRIb3VyKCk7Ci0gICAgICAgIC8vIE9yZGVyIGlzIGltcG9ydGFudCBoZXJlLgotICAgICAgICBtSXMyNEhvdXJWaWV3ID0gaXMyNEhvdXJWaWV3OwotICAgICAgICBnZXRIb3VyRm9ybWF0RGF0YSgpOwotICAgICAgICB1cGRhdGVIb3VyQ29udHJvbCgpOwotICAgICAgICAvLyBzZXQgdmFsdWUgYWZ0ZXIgc3Bpbm5lciByYW5nZSBpcyB1cGRhdGVkIC0gYmUgYXdhcmUgdGhhdCBiZWNhdXNlIG1JczI0SG91clZpZXcgaGFzCi0gICAgICAgIC8vIGNoYW5nZWQgdGhlbiBnZXRDdXJyZW50SG91cigpIGlzIG5vdCBlcXVhbCB0byB0aGUgY3VycmVudEhvdXIgd2UgY2FjaGVkIGJlZm9yZSBzbwotICAgICAgICAvLyBleHBsaWNpdGx5IGFzayBmb3IgKm5vdCogcHJvcGFnYXRpbmcgYW55IG9uVGltZUNoYW5nZWQoKQotICAgICAgICBzZXRDdXJyZW50SG91cihjdXJyZW50SG91ciwgZmFsc2UgLyogbm8gb25UaW1lQ2hhbmdlZCgpICovKTsKLSAgICAgICAgdXBkYXRlTWludXRlQ29udHJvbCgpOwotICAgICAgICB1cGRhdGVBbVBtQ29udHJvbCgpOworICAgICAgICBtRGVsZWdhdGUuc2V0SXMyNEhvdXJWaWV3KGlzMjRIb3VyVmlldyk7CiAgICAgfQogCiAgICAgLyoqCiAgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaXMgaW4gMjQgaG91ciB2aWV3IGVsc2UgZmFsc2UuCiAgICAgICovCiAgICAgcHVibGljIGJvb2xlYW4gaXMyNEhvdXJWaWV3KCkgewotICAgICAgICByZXR1cm4gbUlzMjRIb3VyVmlldzsKKyAgICAgICAgcmV0dXJuIG1EZWxlZ2F0ZS5pczI0SG91clZpZXcoKTsKICAgICB9CiAKICAgICAvKioKLSAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IG1pbnV0ZS4KKyAgICAgKiBTZXQgdGhlIGNhbGxiYWNrIHRoYXQgaW5kaWNhdGVzIHRoZSB0aW1lIGhhcyBiZWVuIGFkanVzdGVkIGJ5IHRoZSB1c2VyLgorICAgICAqCisgICAgICogQHBhcmFtIG9uVGltZUNoYW5nZWRMaXN0ZW5lciB0aGUgY2FsbGJhY2ssIHNob3VsZCBub3QgYmUgbnVsbC4KICAgICAgKi8KLSAgICBwdWJsaWMgSW50ZWdlciBnZXRDdXJyZW50TWludXRlKCkgewotICAgICAgICByZXR1cm4gbU1pbnV0ZVNwaW5uZXIuZ2V0VmFsdWUoKTsKKyAgICBwdWJsaWMgdm9pZCBzZXRPblRpbWVDaGFuZ2VkTGlzdGVuZXIoT25UaW1lQ2hhbmdlZExpc3RlbmVyIG9uVGltZUNoYW5nZWRMaXN0ZW5lcikgeworICAgICAgICBtRGVsZWdhdGUuc2V0T25UaW1lQ2hhbmdlZExpc3RlbmVyKG9uVGltZUNoYW5nZWRMaXN0ZW5lcik7CiAgICAgfQogCi0gICAgLyoqCi0gICAgICogU2V0IHRoZSBjdXJyZW50IG1pbnV0ZSAoMC01OSkuCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgc2V0Q3VycmVudE1pbnV0ZShJbnRlZ2VyIGN1cnJlbnRNaW51dGUpIHsKLSAgICAgICAgaWYgKGN1cnJlbnRNaW51dGUgPT0gZ2V0Q3VycmVudE1pbnV0ZSgpKSB7CisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgc2V0RW5hYmxlZChib29sZWFuIGVuYWJsZWQpIHsKKyAgICAgICAgaWYgKG1EZWxlZ2F0ZS5pc0VuYWJsZWQoKSA9PSBlbmFibGVkKSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgbU1pbnV0ZVNwaW5uZXIuc2V0VmFsdWUoY3VycmVudE1pbnV0ZSk7Ci0gICAgICAgIG9uVGltZUNoYW5nZWQoKTsKKyAgICAgICAgc3VwZXIuc2V0RW5hYmxlZChlbmFibGVkKTsKKyAgICAgICAgbURlbGVnYXRlLnNldEVuYWJsZWQoZW5hYmxlZCk7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIGJvb2xlYW4gaXNFbmFibGVkKCkgeworICAgICAgICByZXR1cm4gbURlbGVnYXRlLmlzRW5hYmxlZCgpOwogICAgIH0KIAogICAgIC8qKgotICAgICAqIFRoZSB0aW1lIHNlcGFyYXRvciBpcyBkZWZpbmVkIGluIHRoZSBVbmljb2RlIENMRFIgYW5kIGNhbm5vdCBiZSBzdXBwb3NlZCB0byBiZSAiOiIuCi0gICAgICoKLSAgICAgKiBTZWUgaHR0cDovL3VuaWNvZGUub3JnL2NsZHIvdHJhYy9icm93c2VyL3RydW5rL2NvbW1vbi9tYWluCi0gICAgICoKLSAgICAgKiBXZSBwYXNzIHRoZSBjb3JyZWN0ICJza2VsZXRvbiIgZGVwZW5kaW5nIG9uIDEyIG9yIDI0IGhvdXJzIHZpZXcgYW5kIHRoZW4gZXh0cmFjdCB0aGUKLSAgICAgKiBzZXBhcmF0b3IgYXMgdGhlIGNoYXJhY3RlciB3aGljaCBpcyBqdXN0IGFmdGVyIHRoZSBob3VyIG1hcmtlciBpbiB0aGUgcmV0dXJuZWQgcGF0dGVybi4KKyAgICAgKiBAaGlkZQogICAgICAqLwotICAgIHByaXZhdGUgdm9pZCBzZXREaXZpZGVyVGV4dCgpIHsKLSAgICAgICAgZmluYWwgTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOwotICAgICAgICBmaW5hbCBTdHJpbmcgc2tlbGV0b24gPSAobUlzMjRIb3VyVmlldykgPyAiSG0iIDogImhtIjsKLSAgICAgICAgZmluYWwgU3RyaW5nIGJlc3REYXRlVGltZVBhdHRlcm4gPSBEYXRlRm9ybWF0LmdldEJlc3REYXRlVGltZVBhdHRlcm4oZGVmYXVsdExvY2FsZSwKLSAgICAgICAgICAgICAgICBza2VsZXRvbik7Ci0gICAgICAgIGZpbmFsIFN0cmluZyBzZXBhcmF0b3JUZXh0OwotICAgICAgICBpbnQgaG91ckluZGV4ID0gYmVzdERhdGVUaW1lUGF0dGVybi5sYXN0SW5kZXhPZignSCcpOwotICAgICAgICBpZiAoaG91ckluZGV4ID09IC0xKSB7Ci0gICAgICAgICAgICBob3VySW5kZXggPSBiZXN0RGF0ZVRpbWVQYXR0ZXJuLmxhc3RJbmRleE9mKCdoJyk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGhvdXJJbmRleCA9PSAtMSkgewotICAgICAgICAgICAgLy8gRGVmYXVsdCBjYXNlCi0gICAgICAgICAgICBzZXBhcmF0b3JUZXh0ID0gIjoiOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaW50IG1pbnV0ZUluZGV4ID0gYmVzdERhdGVUaW1lUGF0dGVybi5pbmRleE9mKCdtJywgaG91ckluZGV4ICsgMSk7Ci0gICAgICAgICAgICBpZiAgKG1pbnV0ZUluZGV4ID09IC0xKSB7Ci0gICAgICAgICAgICAgICAgc2VwYXJhdG9yVGV4dCA9IENoYXJhY3Rlci50b1N0cmluZyhiZXN0RGF0ZVRpbWVQYXR0ZXJuLmNoYXJBdChob3VySW5kZXggKyAxKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHNlcGFyYXRvclRleHQgPSBiZXN0RGF0ZVRpbWVQYXR0ZXJuLnN1YnN0cmluZyhob3VySW5kZXggKyAxLCBtaW51dGVJbmRleCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgbURpdmlkZXIuc2V0VGV4dChzZXBhcmF0b3JUZXh0KTsKKyAgICBwdWJsaWMgdm9pZCBzZXRTaG93RG9uZUJ1dHRvbihib29sZWFuIHNob3dEb25lQnV0dG9uKSB7CisgICAgICAgIG1EZWxlZ2F0ZS5zZXRTaG93RG9uZUJ1dHRvbihzaG93RG9uZUJ1dHRvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGhpZGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREaXNtaXNzQ2FsbGJhY2soVGltZVBpY2tlckRpc21pc3NDYWxsYmFjayBjYWxsYmFjaykgeworICAgICAgICBtRGVsZWdhdGUuc2V0RGlzbWlzc0NhbGxiYWNrKGNhbGxiYWNrKTsKICAgICB9CiAKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgaW50IGdldEJhc2VsaW5lKCkgewotICAgICAgICByZXR1cm4gbUhvdXJTcGlubmVyLmdldEJhc2VsaW5lKCk7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUuZ2V0QmFzZWxpbmUoKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwcm90ZWN0ZWQgdm9pZCBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkKENvbmZpZ3VyYXRpb24gbmV3Q29uZmlnKSB7CisgICAgICAgIHN1cGVyLm9uQ29uZmlndXJhdGlvbkNoYW5nZWQobmV3Q29uZmlnKTsKKyAgICAgICAgbURlbGVnYXRlLm9uQ29uZmlndXJhdGlvbkNoYW5nZWQobmV3Q29uZmlnKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwcm90ZWN0ZWQgUGFyY2VsYWJsZSBvblNhdmVJbnN0YW5jZVN0YXRlKCkgeworICAgICAgICBQYXJjZWxhYmxlIHN1cGVyU3RhdGUgPSBzdXBlci5vblNhdmVJbnN0YW5jZVN0YXRlKCk7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUub25TYXZlSW5zdGFuY2VTdGF0ZShzdXBlclN0YXRlKTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwcm90ZWN0ZWQgdm9pZCBvblJlc3RvcmVJbnN0YW5jZVN0YXRlKFBhcmNlbGFibGUgc3RhdGUpIHsKKyAgICAgICAgQmFzZVNhdmVkU3RhdGUgc3MgPSAoQmFzZVNhdmVkU3RhdGUpIHN0YXRlOworICAgICAgICBzdXBlci5vblJlc3RvcmVJbnN0YW5jZVN0YXRlKHNzLmdldFN1cGVyU3RhdGUoKSk7CisgICAgICAgIG1EZWxlZ2F0ZS5vblJlc3RvcmVJbnN0YW5jZVN0YXRlKHNzKTsKICAgICB9CiAKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgYm9vbGVhbiBkaXNwYXRjaFBvcHVsYXRlQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCkgewotICAgICAgICBvblBvcHVsYXRlQWNjZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBtRGVsZWdhdGUuZGlzcGF0Y2hQb3B1bGF0ZUFjY2Vzc2liaWxpdHlFdmVudChldmVudCk7CiAgICAgfQogCiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIHZvaWQgb25Qb3B1bGF0ZUFjY2Vzc2liaWxpdHlFdmVudChBY2Nlc3NpYmlsaXR5RXZlbnQgZXZlbnQpIHsKICAgICAgICAgc3VwZXIub25Qb3B1bGF0ZUFjY2Vzc2liaWxpdHlFdmVudChldmVudCk7Ci0KLSAgICAgICAgaW50IGZsYWdzID0gRGF0ZVV0aWxzLkZPUk1BVF9TSE9XX1RJTUU7Ci0gICAgICAgIGlmIChtSXMyNEhvdXJWaWV3KSB7Ci0gICAgICAgICAgICBmbGFncyB8PSBEYXRlVXRpbHMuRk9STUFUXzI0SE9VUjsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGZsYWdzIHw9IERhdGVVdGlscy5GT1JNQVRfMTJIT1VSOwotICAgICAgICB9Ci0gICAgICAgIG1UZW1wQ2FsZW5kYXIuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCBnZXRDdXJyZW50SG91cigpKTsKLSAgICAgICAgbVRlbXBDYWxlbmRhci5zZXQoQ2FsZW5kYXIuTUlOVVRFLCBnZXRDdXJyZW50TWludXRlKCkpOwotICAgICAgICBTdHJpbmcgc2VsZWN0ZWREYXRlVXR0ZXJhbmNlID0gRGF0ZVV0aWxzLmZvcm1hdERhdGVUaW1lKG1Db250ZXh0LAotICAgICAgICAgICAgICAgIG1UZW1wQ2FsZW5kYXIuZ2V0VGltZUluTWlsbGlzKCksIGZsYWdzKTsKLSAgICAgICAgZXZlbnQuZ2V0VGV4dCgpLmFkZChzZWxlY3RlZERhdGVVdHRlcmFuY2UpOworICAgICAgICBtRGVsZWdhdGUub25Qb3B1bGF0ZUFjY2Vzc2liaWxpdHlFdmVudChldmVudCk7CiAgICAgfQogCiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIHZvaWQgb25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCkgewogICAgICAgICBzdXBlci5vbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5RXZlbnQoZXZlbnQpOwotICAgICAgICBldmVudC5zZXRDbGFzc05hbWUoVGltZVBpY2tlci5jbGFzcy5nZXROYW1lKCkpOworICAgICAgICBtRGVsZWdhdGUub25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKICAgICB9CiAKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCBvbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5Tm9kZUluZm8oQWNjZXNzaWJpbGl0eU5vZGVJbmZvIGluZm8pIHsKICAgICAgICAgc3VwZXIub25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eU5vZGVJbmZvKGluZm8pOwotICAgICAgICBpbmZvLnNldENsYXNzTmFtZShUaW1lUGlja2VyLmNsYXNzLmdldE5hbWUoKSk7CisgICAgICAgIG1EZWxlZ2F0ZS5vbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5Tm9kZUluZm8oaW5mbyk7CiAgICAgfQogCi0gICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZUhvdXJDb250cm9sKCkgewotICAgICAgICBpZiAoaXMyNEhvdXJWaWV3KCkpIHsKLSAgICAgICAgICAgIC8vICdrJyBtZWFucyAxLTI0IGhvdXIKLSAgICAgICAgICAgIGlmIChtSG91ckZvcm1hdCA9PSAnaycpIHsKLSAgICAgICAgICAgICAgICBtSG91clNwaW5uZXIuc2V0TWluVmFsdWUoMSk7Ci0gICAgICAgICAgICAgICAgbUhvdXJTcGlubmVyLnNldE1heFZhbHVlKDI0KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbUhvdXJTcGlubmVyLnNldE1pblZhbHVlKDApOwotICAgICAgICAgICAgICAgIG1Ib3VyU3Bpbm5lci5zZXRNYXhWYWx1ZSgyMyk7CisgICAgLyoqCisgICAgICogQSBkZWxlZ2F0ZSBpbnRlcmZhY2UgdGhhdCBkZWZpbmVkIHRoZSBwdWJsaWMgQVBJIG9mIHRoZSBUaW1lUGlja2VyLiBBbGxvd3MgZGlmZmVyZW50CisgICAgICogVGltZVBpY2tlciBpbXBsZW1lbnRhdGlvbnMuIFRoaXMgd291bGQgbmVlZCB0byBiZSBpbXBsZW1lbnRlZCBieSB0aGUgVGltZVBpY2tlciBkZWxlZ2F0ZXMKKyAgICAgKiBmb3IgdGhlIHJlYWwgYmVoYXZpb3IuCisgICAgICovCisgICAgaW50ZXJmYWNlIFRpbWVQaWNrZXJEZWxlZ2F0ZSB7CisgICAgICAgIHZvaWQgc2V0Q3VycmVudEhvdXIoSW50ZWdlciBjdXJyZW50SG91cik7CisgICAgICAgIEludGVnZXIgZ2V0Q3VycmVudEhvdXIoKTsKKworICAgICAgICB2b2lkIHNldEN1cnJlbnRNaW51dGUoSW50ZWdlciBjdXJyZW50TWludXRlKTsKKyAgICAgICAgSW50ZWdlciBnZXRDdXJyZW50TWludXRlKCk7CisKKyAgICAgICAgdm9pZCBzZXRJczI0SG91clZpZXcoQm9vbGVhbiBpczI0SG91clZpZXcpOworICAgICAgICBib29sZWFuIGlzMjRIb3VyVmlldygpOworCisgICAgICAgIHZvaWQgc2V0T25UaW1lQ2hhbmdlZExpc3RlbmVyKE9uVGltZUNoYW5nZWRMaXN0ZW5lciBvblRpbWVDaGFuZ2VkTGlzdGVuZXIpOworCisgICAgICAgIHZvaWQgc2V0RW5hYmxlZChib29sZWFuIGVuYWJsZWQpOworICAgICAgICBib29sZWFuIGlzRW5hYmxlZCgpOworCisgICAgICAgIHZvaWQgc2V0U2hvd0RvbmVCdXR0b24oYm9vbGVhbiBzaG93RG9uZUJ1dHRvbik7CisgICAgICAgIHZvaWQgc2V0RGlzbWlzc0NhbGxiYWNrKFRpbWVQaWNrZXJEaXNtaXNzQ2FsbGJhY2sgY2FsbGJhY2spOworCisgICAgICAgIGludCBnZXRCYXNlbGluZSgpOworCisgICAgICAgIHZvaWQgb25Db25maWd1cmF0aW9uQ2hhbmdlZChDb25maWd1cmF0aW9uIG5ld0NvbmZpZyk7CisKKyAgICAgICAgUGFyY2VsYWJsZSBvblNhdmVJbnN0YW5jZVN0YXRlKFBhcmNlbGFibGUgc3VwZXJTdGF0ZSk7CisgICAgICAgIHZvaWQgb25SZXN0b3JlSW5zdGFuY2VTdGF0ZShQYXJjZWxhYmxlIHN0YXRlKTsKKworICAgICAgICBib29sZWFuIGRpc3BhdGNoUG9wdWxhdGVBY2Nlc3NpYmlsaXR5RXZlbnQoQWNjZXNzaWJpbGl0eUV2ZW50IGV2ZW50KTsKKyAgICAgICAgdm9pZCBvblBvcHVsYXRlQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCk7CisgICAgICAgIHZvaWQgb25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCk7CisgICAgICAgIHZvaWQgb25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eU5vZGVJbmZvKEFjY2Vzc2liaWxpdHlOb2RlSW5mbyBpbmZvKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGNhbGxiYWNrIGludGVyZmFjZSBmb3IgZGlzbWlzc2luZyB0aGUgVGltZVBpY2tlciB3aGVuIGluY2x1ZGVkIGludG8gYSBEaWFsb2cKKyAgICAgKgorICAgICAqIEBoaWRlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgVGltZVBpY2tlckRpc21pc3NDYWxsYmFjayB7CisgICAgICAgIHZvaWQgZGlzbWlzcyhUaW1lUGlja2VyIHZpZXcsIGJvb2xlYW4gaXNDYW5jZWwsIGludCBob3VyT2ZEYXksIGludCBtaW51dGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFuIGFic3RyYWN0IGNsYXNzIHdoaWNoIGNhbiBiZSB1c2VkIGFzIGEgc3RhcnQgZm9yIFRpbWVQaWNrZXIgaW1wbGVtZW50YXRpb25zCisgICAgICovCisgICAgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIEFic3RyYWN0VGltZVBpY2tlckRlbGVnYXRlIGltcGxlbWVudHMgVGltZVBpY2tlckRlbGVnYXRlIHsKKyAgICAgICAgLy8gVGhlIGRlbGVnYXRvcgorICAgICAgICBwcm90ZWN0ZWQgVGltZVBpY2tlciBtRGVsZWdhdG9yOworCisgICAgICAgIC8vIFRoZSBjb250ZXh0CisgICAgICAgIHByb3RlY3RlZCBDb250ZXh0IG1Db250ZXh0OworCisgICAgICAgIC8vIFRoZSBjdXJyZW50IGxvY2FsZQorICAgICAgICBwcm90ZWN0ZWQgTG9jYWxlIG1DdXJyZW50TG9jYWxlOworCisgICAgICAgIC8vIENhbGxiYWNrcworICAgICAgICBwcm90ZWN0ZWQgIE9uVGltZUNoYW5nZWRMaXN0ZW5lciBtT25UaW1lQ2hhbmdlZExpc3RlbmVyOworCisgICAgICAgIHB1YmxpYyBBYnN0cmFjdFRpbWVQaWNrZXJEZWxlZ2F0ZShUaW1lUGlja2VyIGRlbGVnYXRvciwgQ29udGV4dCBjb250ZXh0KSB7CisgICAgICAgICAgICBtRGVsZWdhdG9yID0gZGVsZWdhdG9yOworICAgICAgICAgICAgbUNvbnRleHQgPSBjb250ZXh0OworCisgICAgICAgICAgICAvLyBpbml0aWFsaXphdGlvbiBiYXNlZCBvbiBsb2NhbGUKKyAgICAgICAgICAgIHNldEN1cnJlbnRMb2NhbGUoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW50TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgIGlmIChsb2NhbGUuZXF1YWxzKG1DdXJyZW50TG9jYWxlKSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vICdLJyBtZWFucyAwLTExIGhvdXIKLSAgICAgICAgICAgIGlmIChtSG91ckZvcm1hdCA9PSAnSycpIHsKLSAgICAgICAgICAgICAgICBtSG91clNwaW5uZXIuc2V0TWluVmFsdWUoMCk7Ci0gICAgICAgICAgICAgICAgbUhvdXJTcGlubmVyLnNldE1heFZhbHVlKDExKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbUhvdXJTcGlubmVyLnNldE1pblZhbHVlKDEpOwotICAgICAgICAgICAgICAgIG1Ib3VyU3Bpbm5lci5zZXRNYXhWYWx1ZSgxMik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgbUhvdXJTcGlubmVyLnNldEZvcm1hdHRlcihtSG91cldpdGhUd29EaWdpdCA/IE51bWJlclBpY2tlci5nZXRUd29EaWdpdEZvcm1hdHRlcigpIDogbnVsbCk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZU1pbnV0ZUNvbnRyb2woKSB7Ci0gICAgICAgIGlmIChpczI0SG91clZpZXcoKSkgewotICAgICAgICAgICAgbU1pbnV0ZVNwaW5uZXJJbnB1dC5zZXRJbWVPcHRpb25zKEVkaXRvckluZm8uSU1FX0FDVElPTl9ET05FKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1NaW51dGVTcGlubmVySW5wdXQuc2V0SW1lT3B0aW9ucyhFZGl0b3JJbmZvLklNRV9BQ1RJT05fTkVYVCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcml2YXRlIHZvaWQgdXBkYXRlQW1QbUNvbnRyb2woKSB7Ci0gICAgICAgIGlmIChpczI0SG91clZpZXcoKSkgewotICAgICAgICAgICAgaWYgKG1BbVBtU3Bpbm5lciAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgbUFtUG1TcGlubmVyLnNldFZpc2liaWxpdHkoVmlldy5HT05FKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbUFtUG1CdXR0b24uc2V0VmlzaWJpbGl0eShWaWV3LkdPTkUpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaW50IGluZGV4ID0gbUlzQW0gPyBDYWxlbmRhci5BTSA6IENhbGVuZGFyLlBNOwotICAgICAgICAgICAgaWYgKG1BbVBtU3Bpbm5lciAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgbUFtUG1TcGlubmVyLnNldFZhbHVlKGluZGV4KTsKLSAgICAgICAgICAgICAgICBtQW1QbVNwaW5uZXIuc2V0VmlzaWJpbGl0eShWaWV3LlZJU0lCTEUpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtQW1QbUJ1dHRvbi5zZXRUZXh0KG1BbVBtU3RyaW5nc1tpbmRleF0pOwotICAgICAgICAgICAgICAgIG1BbVBtQnV0dG9uLnNldFZpc2liaWxpdHkoVmlldy5WSVNJQkxFKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBzZW5kQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudC5UWVBFX1ZJRVdfU0VMRUNURUQpOwotICAgIH0KLQotICAgIHByaXZhdGUgdm9pZCBvblRpbWVDaGFuZ2VkKCkgewotICAgICAgICBzZW5kQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudC5UWVBFX1ZJRVdfU0VMRUNURUQpOwotICAgICAgICBpZiAobU9uVGltZUNoYW5nZWRMaXN0ZW5lciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBtT25UaW1lQ2hhbmdlZExpc3RlbmVyLm9uVGltZUNoYW5nZWQodGhpcywgZ2V0Q3VycmVudEhvdXIoKSwgZ2V0Q3VycmVudE1pbnV0ZSgpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgdm9pZCBzZXRDb250ZW50RGVzY3JpcHRpb25zKCkgewotICAgICAgICAvLyBNaW51dGUKLSAgICAgICAgdHJ5U2V0Q29udGVudERlc2NyaXB0aW9uKG1NaW51dGVTcGlubmVyLCBSLmlkLmluY3JlbWVudCwKLSAgICAgICAgICAgICAgICBSLnN0cmluZy50aW1lX3BpY2tlcl9pbmNyZW1lbnRfbWludXRlX2J1dHRvbik7Ci0gICAgICAgIHRyeVNldENvbnRlbnREZXNjcmlwdGlvbihtTWludXRlU3Bpbm5lciwgUi5pZC5kZWNyZW1lbnQsCi0gICAgICAgICAgICAgICAgUi5zdHJpbmcudGltZV9waWNrZXJfZGVjcmVtZW50X21pbnV0ZV9idXR0b24pOwotICAgICAgICAvLyBIb3VyCi0gICAgICAgIHRyeVNldENvbnRlbnREZXNjcmlwdGlvbihtSG91clNwaW5uZXIsIFIuaWQuaW5jcmVtZW50LAotICAgICAgICAgICAgICAgIFIuc3RyaW5nLnRpbWVfcGlja2VyX2luY3JlbWVudF9ob3VyX2J1dHRvbik7Ci0gICAgICAgIHRyeVNldENvbnRlbnREZXNjcmlwdGlvbihtSG91clNwaW5uZXIsIFIuaWQuZGVjcmVtZW50LAotICAgICAgICAgICAgICAgIFIuc3RyaW5nLnRpbWVfcGlja2VyX2RlY3JlbWVudF9ob3VyX2J1dHRvbik7Ci0gICAgICAgIC8vIEFNL1BNCi0gICAgICAgIGlmIChtQW1QbVNwaW5uZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgdHJ5U2V0Q29udGVudERlc2NyaXB0aW9uKG1BbVBtU3Bpbm5lciwgUi5pZC5pbmNyZW1lbnQsCi0gICAgICAgICAgICAgICAgICAgIFIuc3RyaW5nLnRpbWVfcGlja2VyX2luY3JlbWVudF9zZXRfcG1fYnV0dG9uKTsKLSAgICAgICAgICAgIHRyeVNldENvbnRlbnREZXNjcmlwdGlvbihtQW1QbVNwaW5uZXIsIFIuaWQuZGVjcmVtZW50LAotICAgICAgICAgICAgICAgICAgICBSLnN0cmluZy50aW1lX3BpY2tlcl9kZWNyZW1lbnRfc2V0X2FtX2J1dHRvbik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcml2YXRlIHZvaWQgdHJ5U2V0Q29udGVudERlc2NyaXB0aW9uKFZpZXcgcm9vdCwgaW50IHZpZXdJZCwgaW50IGNvbnREZXNjUmVzSWQpIHsKLSAgICAgICAgVmlldyB0YXJnZXQgPSByb290LmZpbmRWaWV3QnlJZCh2aWV3SWQpOwotICAgICAgICBpZiAodGFyZ2V0ICE9IG51bGwpIHsKLSAgICAgICAgICAgIHRhcmdldC5zZXRDb250ZW50RGVzY3JpcHRpb24obUNvbnRleHQuZ2V0U3RyaW5nKGNvbnREZXNjUmVzSWQpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgdm9pZCB1cGRhdGVJbnB1dFN0YXRlKCkgewotICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBpZiB0aGUgdXNlciBjaGFuZ2VzIHRoZSB2YWx1ZSBhbmQgdGhlIElNRSBpcyBhY3RpdmUKLSAgICAgICAgLy8gZm9yIG9uZSBvZiB0aGUgaW5wdXRzIGlmIHRoaXMgd2lkZ2V0LCB0aGUgSU1FIGlzIGNsb3NlZC4gSWYgdGhlIHVzZXIKLSAgICAgICAgLy8gY2hhbmdlZCB0aGUgdmFsdWUgdmlhIHRoZSBJTUUgYW5kIHRoZXJlIGlzIGEgbmV4dCBpbnB1dCB0aGUgSU1FIHdpbGwKLSAgICAgICAgLy8gYmUgc2hvd24sIG90aGVyd2lzZSB0aGUgdXNlciBjaG9zZSBhbm90aGVyIG1lYW5zIG9mIGNoYW5naW5nIHRoZQotICAgICAgICAvLyB2YWx1ZSBhbmQgaGF2aW5nIHRoZSBJTUUgdXAgbWFrZXMgbm8gc2Vuc2UuCi0gICAgICAgIElucHV0TWV0aG9kTWFuYWdlciBpbnB1dE1ldGhvZE1hbmFnZXIgPSBJbnB1dE1ldGhvZE1hbmFnZXIucGVla0luc3RhbmNlKCk7Ci0gICAgICAgIGlmIChpbnB1dE1ldGhvZE1hbmFnZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgaWYgKGlucHV0TWV0aG9kTWFuYWdlci5pc0FjdGl2ZShtSG91clNwaW5uZXJJbnB1dCkpIHsKLSAgICAgICAgICAgICAgICBtSG91clNwaW5uZXJJbnB1dC5jbGVhckZvY3VzKCk7Ci0gICAgICAgICAgICAgICAgaW5wdXRNZXRob2RNYW5hZ2VyLmhpZGVTb2Z0SW5wdXRGcm9tV2luZG93KGdldFdpbmRvd1Rva2VuKCksIDApOwotICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dE1ldGhvZE1hbmFnZXIuaXNBY3RpdmUobU1pbnV0ZVNwaW5uZXJJbnB1dCkpIHsKLSAgICAgICAgICAgICAgICBtTWludXRlU3Bpbm5lcklucHV0LmNsZWFyRm9jdXMoKTsKLSAgICAgICAgICAgICAgICBpbnB1dE1ldGhvZE1hbmFnZXIuaGlkZVNvZnRJbnB1dEZyb21XaW5kb3coZ2V0V2luZG93VG9rZW4oKSwgMCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0TWV0aG9kTWFuYWdlci5pc0FjdGl2ZShtQW1QbVNwaW5uZXJJbnB1dCkpIHsKLSAgICAgICAgICAgICAgICBtQW1QbVNwaW5uZXJJbnB1dC5jbGVhckZvY3VzKCk7Ci0gICAgICAgICAgICAgICAgaW5wdXRNZXRob2RNYW5hZ2VyLmhpZGVTb2Z0SW5wdXRGcm9tV2luZG93KGdldFdpbmRvd1Rva2VuKCksIDApOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgbUN1cnJlbnRMb2NhbGUgPSBsb2NhbGU7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVGltZVBpY2tlckRlbGVnYXRlLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVGltZVBpY2tlckRlbGVnYXRlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTgyZDM3MAotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9UaW1lUGlja2VyRGVsZWdhdGUuamF2YQpAQCAtMCwwICsxLDEzODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQud2lkZ2V0OworCitpbXBvcnQgYW5kcm9pZC5hbmltYXRpb24uS2V5ZnJhbWU7CitpbXBvcnQgYW5kcm9pZC5hbmltYXRpb24uT2JqZWN0QW5pbWF0b3I7CitpbXBvcnQgYW5kcm9pZC5hbmltYXRpb24uUHJvcGVydHlWYWx1ZXNIb2xkZXI7CitpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7CitpbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5Db25maWd1cmF0aW9uOworaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuUmVzb3VyY2VzOworaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuVHlwZWRBcnJheTsKK2ltcG9ydCBhbmRyb2lkLm9zLlBhcmNlbDsKK2ltcG9ydCBhbmRyb2lkLm9zLlBhcmNlbGFibGU7CitpbXBvcnQgYW5kcm9pZC50ZXh0LlRleHRVdGlsczsKK2ltcG9ydCBhbmRyb2lkLnRleHQuZm9ybWF0LkRhdGVGb3JtYXQ7CitpbXBvcnQgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldDsKK2ltcG9ydCBhbmRyb2lkLnV0aWwuTG9nOworaW1wb3J0IGFuZHJvaWQudXRpbC5UeXBlZFZhbHVlOworaW1wb3J0IGFuZHJvaWQudmlldy5IYXB0aWNGZWVkYmFja0NvbnN0YW50czsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuS2V5Q2hhcmFjdGVyTWFwOworaW1wb3J0IGFuZHJvaWQudmlldy5LZXlFdmVudDsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuTGF5b3V0SW5mbGF0ZXI7CitpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXc7CitpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cDsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuYWNjZXNzaWJpbGl0eS5BY2Nlc3NpYmlsaXR5RXZlbnQ7CitpbXBvcnQgYW5kcm9pZC52aWV3LmFjY2Vzc2liaWxpdHkuQWNjZXNzaWJpbGl0eU5vZGVJbmZvOworCitpbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwuUjsKKworaW1wb3J0IGphdmEudGV4dC5EYXRlRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKKworLyoqCisgKiBBIHZpZXcgZm9yIHNlbGVjdGluZyB0aGUgdGltZSBvZiBkYXksIGluIGVpdGhlciAyNCBob3VyIG9yIEFNL1BNIG1vZGUuCisgKi8KK2NsYXNzIFRpbWVQaWNrZXJEZWxlZ2F0ZSBleHRlbmRzIFRpbWVQaWNrZXIuQWJzdHJhY3RUaW1lUGlja2VyRGVsZWdhdGUgaW1wbGVtZW50cworICAgICAgICBSYWRpYWxUaW1lUGlja2VyVmlldy5PblZhbHVlU2VsZWN0ZWRMaXN0ZW5lciB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEFHID0gIlRpbWVQaWNrZXJEZWxlZ2F0ZSI7CisKKyAgICAvLyBJbmRleCB1c2VkIGJ5IFJhZGlhbFBpY2tlckxheW91dAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIT1VSX0lOREVYID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUlOVVRFX0lOREVYID0gMTsKKworICAgIC8vIE5PVCBhIHJlYWwgaW5kZXggZm9yIHRoZSBwdXJwb3NlIG9mIHdoYXQncyBzaG93aW5nLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBTVBNX0lOREVYID0gMjsKKworICAgIC8vIEFsc28gTk9UIGEgcmVhbCBpbmRleCwganVzdCB1c2VkIGZvciBrZXlib2FyZCBtb2RlLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFTkFCTEVfUElDS0VSX0lOREVYID0gMzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBTSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFBNID0gMTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVGQVVMVF9FTkFCTEVEX1NUQVRFID0gdHJ1ZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gbUlzRW5hYmxlZCA9IERFRkFVTFRfRU5BQkxFRF9TVEFURTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIT1VSU19JTl9IQUxGX0RBWSA9IDEyOworCisgICAgLy8gRGVsYXkgaW4gbXMgYmVmb3JlIHN0YXJ0aW5nIHRoZSBwdWxzZSBhbmltYXRpb24KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUFVMU0VfQU5JTUFUT1JfREVMQVkgPSAzMDA7CisKKyAgICAvLyBEdXJhdGlvbiBpbiBtcyBvZiB0aGUgcHVsc2UgYW5pbWF0aW9uCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFBVTFNFX0FOSU1BVE9SX0RVUkFUSU9OID0gNTQ0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gVEVYVF9BUFBFQVJBTkNFX1RJTUVfTEFCRUxfQVRUUiA9CisgICAgICAgICAgICBuZXcgaW50W10geyBSLmF0dHIudGltZVBpY2tlckhlYWRlclRpbWVMYWJlbFRleHRBcHBlYXJhbmNlIH07CisKKyAgICBwcml2YXRlIGZpbmFsIFZpZXcgbU1haW5WaWV3OworICAgIHByaXZhdGUgVGV4dFZpZXcgbUhvdXJWaWV3OworICAgIHByaXZhdGUgVGV4dFZpZXcgbU1pbnV0ZVZpZXc7CisgICAgcHJpdmF0ZSBUZXh0VmlldyBtQW1QbVRleHRWaWV3OworICAgIHByaXZhdGUgUmFkaWFsVGltZVBpY2tlclZpZXcgbVJhZGlhbFRpbWVQaWNrZXJWaWV3OworICAgIHByaXZhdGUgVGV4dFZpZXcgbVNlcGFyYXRvclZpZXc7CisKKyAgICBwcml2YXRlIFZpZXdHcm91cCBtTGF5b3V0QnV0dG9uczsKKworICAgIHByaXZhdGUgaW50IG1IZWFkZXJTZWxlY3RlZENvbG9yOworICAgIHByaXZhdGUgaW50IG1IZWFkZXJVblNlbGVjdGVkQ29sb3I7CisgICAgcHJpdmF0ZSBTdHJpbmcgbUFtVGV4dDsKKyAgICBwcml2YXRlIFN0cmluZyBtUG1UZXh0OworCisgICAgcHJpdmF0ZSBib29sZWFuIG1BbGxvd0F1dG9BZHZhbmNlOworICAgIHByaXZhdGUgaW50IG1Jbml0aWFsSG91ck9mRGF5OworICAgIHByaXZhdGUgaW50IG1Jbml0aWFsTWludXRlOworICAgIHByaXZhdGUgYm9vbGVhbiBtSXMyNEhvdXJWaWV3OworCisgICAgLy8gRm9yIGhhcmR3YXJlIElNRSBpbnB1dC4KKyAgICBwcml2YXRlIGNoYXIgbVBsYWNlaG9sZGVyVGV4dDsKKyAgICBwcml2YXRlIFN0cmluZyBtRG91YmxlUGxhY2Vob2xkZXJUZXh0OworICAgIHByaXZhdGUgU3RyaW5nIG1EZWxldGVkS2V5Rm9ybWF0OworICAgIHByaXZhdGUgYm9vbGVhbiBtSW5LYk1vZGU7CisgICAgcHJpdmF0ZSBBcnJheUxpc3Q8SW50ZWdlcj4gbVR5cGVkVGltZXMgPSBuZXcgQXJyYXlMaXN0PEludGVnZXI+KCk7CisgICAgcHJpdmF0ZSBOb2RlIG1MZWdhbFRpbWVzVHJlZTsKKyAgICBwcml2YXRlIGludCBtQW1LZXlDb2RlOworICAgIHByaXZhdGUgaW50IG1QbUtleUNvZGU7CisKKyAgICAvLyBGb3Igc2hvd2luZyB0aGUgZG9uZSBidXR0b24gd2hlbiBpbiBhIERpYWxvZworICAgIHByaXZhdGUgQnV0dG9uIG1Eb25lQnV0dG9uOworICAgIHByaXZhdGUgYm9vbGVhbiBtU2hvd0RvbmVCdXR0b247CisgICAgcHJpdmF0ZSBUaW1lUGlja2VyLlRpbWVQaWNrZXJEaXNtaXNzQ2FsbGJhY2sgbURpc21pc3NDYWxsYmFjazsKKworICAgIC8vIEFjY2Vzc2liaWxpdHkgc3RyaW5ncy4KKyAgICBwcml2YXRlIFN0cmluZyBtSG91clBpY2tlckRlc2NyaXB0aW9uOworICAgIHByaXZhdGUgU3RyaW5nIG1TZWxlY3RIb3VyczsKKyAgICBwcml2YXRlIFN0cmluZyBtTWludXRlUGlja2VyRGVzY3JpcHRpb247CisgICAgcHJpdmF0ZSBTdHJpbmcgbVNlbGVjdE1pbnV0ZXM7CisKKyAgICBwdWJsaWMgVGltZVBpY2tlckRlbGVnYXRlKFRpbWVQaWNrZXIgZGVsZWdhdG9yLCBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihkZWxlZ2F0b3IsIGNvbnRleHQpOworCisgICAgICAgIC8vIHByb2Nlc3Mgc3R5bGUgYXR0cmlidXRlcworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBtQ29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAorICAgICAgICAgICAgICAgIFIuc3R5bGVhYmxlLlRpbWVQaWNrZXIsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworCisgICAgICAgIGZpbmFsIFJlc291cmNlcyByZXMgPSBtQ29udGV4dC5nZXRSZXNvdXJjZXMoKTsKKworICAgICAgICBtSG91clBpY2tlckRlc2NyaXB0aW9uID0gcmVzLmdldFN0cmluZyhSLnN0cmluZy5ob3VyX3BpY2tlcl9kZXNjcmlwdGlvbik7CisgICAgICAgIG1TZWxlY3RIb3VycyA9IHJlcy5nZXRTdHJpbmcoUi5zdHJpbmcuc2VsZWN0X2hvdXJzKTsKKyAgICAgICAgbU1pbnV0ZVBpY2tlckRlc2NyaXB0aW9uID0gcmVzLmdldFN0cmluZyhSLnN0cmluZy5taW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uKTsKKyAgICAgICAgbVNlbGVjdE1pbnV0ZXMgPSByZXMuZ2V0U3RyaW5nKFIuc3RyaW5nLnNlbGVjdF9taW51dGVzKTsKKworICAgICAgICBtSGVhZGVyU2VsZWN0ZWRDb2xvciA9IGEuZ2V0Q29sb3IoUi5zdHlsZWFibGUuVGltZVBpY2tlcl9oZWFkZXJTZWxlY3RlZFRleHRDb2xvciwKKyAgICAgICAgICAgICAgICBhbmRyb2lkLlIuY29sb3IuaG9sb19ibHVlX2xpZ2h0KTsKKworICAgICAgICBtSGVhZGVyVW5TZWxlY3RlZENvbG9yID0gZ2V0VW5zZWxlY3RlZENvbG9yKAorICAgICAgICAgICAgICAgIFIuY29sb3IudGltZXBpY2tlcl9kZWZhdWx0X3RleHRfY29sb3JfaG9sb19saWdodCk7CisgICAgICAgIGlmIChtSGVhZGVyVW5TZWxlY3RlZENvbG9yID09IC0xKSB7CisgICAgICAgICAgICBtSGVhZGVyVW5TZWxlY3RlZENvbG9yID0gYS5nZXRDb2xvcihSLnN0eWxlYWJsZS5UaW1lUGlja2VyX2hlYWRlclVuc2VsZWN0ZWRUZXh0Q29sb3IsCisgICAgICAgICAgICAgICAgICAgIFIuY29sb3IudGltZXBpY2tlcl9kZWZhdWx0X3RleHRfY29sb3JfaG9sb19saWdodCk7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBpbnQgaGVhZGVyQmFja2dyb3VuZENvbG9yID0gYS5nZXRDb2xvcigKKyAgICAgICAgICAgICAgICBSLnN0eWxlYWJsZS5UaW1lUGlja2VyX2hlYWRlckJhY2tncm91bmRDb2xvciwgMCk7CisKKyAgICAgICAgYS5yZWN5Y2xlKCk7CisKKyAgICAgICAgZmluYWwgaW50IGxheW91dFJlc291cmNlSWQgPSBhLmdldFJlc291cmNlSWQoCisgICAgICAgICAgICAgICAgUi5zdHlsZWFibGUuVGltZVBpY2tlcl9pbnRlcm5hbExheW91dCwgUi5sYXlvdXQudGltZV9waWNrZXJfaG9sbyk7CisKKyAgICAgICAgZmluYWwgTGF5b3V0SW5mbGF0ZXIgaW5mbGF0ZXIgPSAoTGF5b3V0SW5mbGF0ZXIpIG1Db250ZXh0LmdldFN5c3RlbVNlcnZpY2UoCisgICAgICAgICAgICAgICAgQ29udGV4dC5MQVlPVVRfSU5GTEFURVJfU0VSVklDRSk7CisKKyAgICAgICAgbU1haW5WaWV3ID0gaW5mbGF0ZXIuaW5mbGF0ZShsYXlvdXRSZXNvdXJjZUlkLCBudWxsKTsKKyAgICAgICAgbURlbGVnYXRvci5hZGRWaWV3KG1NYWluVmlldyk7CisKKyAgICAgICAgaWYgKGhlYWRlckJhY2tncm91bmRDb2xvciAhPSAwKSB7CisgICAgICAgICAgICBSZWxhdGl2ZUxheW91dCBoZWFkZXIgPSAoUmVsYXRpdmVMYXlvdXQpIG1NYWluVmlldy5maW5kVmlld0J5SWQoUi5pZC50aW1lX2hlYWRlcik7CisgICAgICAgICAgICBoZWFkZXIuc2V0QmFja2dyb3VuZENvbG9yKGhlYWRlckJhY2tncm91bmRDb2xvcik7CisgICAgICAgIH0KKworICAgICAgICBtSG91clZpZXcgPSAoVGV4dFZpZXcpIG1NYWluVmlldy5maW5kVmlld0J5SWQoUi5pZC5ob3Vycyk7CisgICAgICAgIG1NaW51dGVWaWV3ID0gKFRleHRWaWV3KSBtTWFpblZpZXcuZmluZFZpZXdCeUlkKFIuaWQubWludXRlcyk7CisgICAgICAgIG1BbVBtVGV4dFZpZXcgPSAoVGV4dFZpZXcpIG1NYWluVmlldy5maW5kVmlld0J5SWQoUi5pZC5hbXBtX2xhYmVsKTsKKyAgICAgICAgbVNlcGFyYXRvclZpZXcgPSAoVGV4dFZpZXcpIG1NYWluVmlldy5maW5kVmlld0J5SWQoUi5pZC5zZXBhcmF0b3IpOworICAgICAgICBtUmFkaWFsVGltZVBpY2tlclZpZXcgPSAoUmFkaWFsVGltZVBpY2tlclZpZXcpIG1NYWluVmlldy5maW5kVmlld0J5SWQoUi5pZC5yYWRpYWxfcGlja2VyKTsKKworICAgICAgICBtTGF5b3V0QnV0dG9ucyA9IChWaWV3R3JvdXApIG1NYWluVmlldy5maW5kVmlld0J5SWQoUi5pZC5sYXlvdXRfYnV0dG9ucyk7CisgICAgICAgIG1Eb25lQnV0dG9uID0gKEJ1dHRvbikgbU1haW5WaWV3LmZpbmRWaWV3QnlJZChSLmlkLmRvbmVfYnV0dG9uKTsKKworICAgICAgICBTdHJpbmdbXSBhbVBtVGV4dHMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoKS5nZXRBbVBtU3RyaW5ncygpOworICAgICAgICBtQW1UZXh0ID0gYW1QbVRleHRzWzBdOworICAgICAgICBtUG1UZXh0ID0gYW1QbVRleHRzWzFdOworCisgICAgICAgIHNldHVwTGlzdGVuZXJzKCk7CisKKyAgICAgICAgbUFsbG93QXV0b0FkdmFuY2UgPSB0cnVlOworCisgICAgICAgIC8vIFNldCB1cCBmb3Iga2V5Ym9hcmQgbW9kZS4KKyAgICAgICAgbURvdWJsZVBsYWNlaG9sZGVyVGV4dCA9IHJlcy5nZXRTdHJpbmcoUi5zdHJpbmcudGltZV9wbGFjZWhvbGRlcik7CisgICAgICAgIG1EZWxldGVkS2V5Rm9ybWF0ID0gcmVzLmdldFN0cmluZyhSLnN0cmluZy5kZWxldGVkX2tleSk7CisgICAgICAgIG1QbGFjZWhvbGRlclRleHQgPSBtRG91YmxlUGxhY2Vob2xkZXJUZXh0LmNoYXJBdCgwKTsKKyAgICAgICAgbUFtS2V5Q29kZSA9IG1QbUtleUNvZGUgPSAtMTsKKyAgICAgICAgZ2VuZXJhdGVMZWdhbFRpbWVzVHJlZSgpOworCisgICAgICAgIC8vIEluaXRpYWxpemUgd2l0aCBjdXJyZW50IHRpbWUKKyAgICAgICAgZmluYWwgQ2FsZW5kYXIgY2FsZW5kYXIgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShtQ3VycmVudExvY2FsZSk7CisgICAgICAgIGZpbmFsIGludCBjdXJyZW50SG91ciA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSk7CisgICAgICAgIGZpbmFsIGludCBjdXJyZW50TWludXRlID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1JTlVURSk7CisgICAgICAgIGluaXRpYWxpemUoY3VycmVudEhvdXIsIGN1cnJlbnRNaW51dGUsIGZhbHNlIC8qIDEyaCAqLywgSE9VUl9JTkRFWCwgZmFsc2UpOworICAgIH0KKworICAgIHByaXZhdGUgaW50IGdldFVuc2VsZWN0ZWRDb2xvcihpbnQgZGVmQ29sb3IpIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IC0xOworICAgICAgICBmaW5hbCBSZXNvdXJjZXMuVGhlbWUgdGhlbWUgPSBtQ29udGV4dC5nZXRUaGVtZSgpOworICAgICAgICBmaW5hbCBUeXBlZFZhbHVlIG91dFZhbHVlID0gbmV3IFR5cGVkVmFsdWUoKTsKKyAgICAgICAgdGhlbWUucmVzb2x2ZUF0dHJpYnV0ZShSLmF0dHIudGltZVBpY2tlckhlYWRlclRpbWVMYWJlbFRleHRBcHBlYXJhbmNlLCBvdXRWYWx1ZSwgdHJ1ZSk7CisgICAgICAgIGZpbmFsIGludCBhcHBlYXJhbmNlUmVzSWQgPSBvdXRWYWx1ZS5yZXNvdXJjZUlkOworICAgICAgICBUeXBlZEFycmF5IGFwcGVhcmFuY2UgPSBudWxsOworICAgICAgICBpZiAoYXBwZWFyYW5jZVJlc0lkICE9IC0xKSB7CisgICAgICAgICAgICBhcHBlYXJhbmNlID0gdGhlbWUub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhcHBlYXJhbmNlUmVzSWQsCisgICAgICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlRleHRBcHBlYXJhbmNlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYXBwZWFyYW5jZSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSBhcHBlYXJhbmNlLmdldENvbG9yKAorICAgICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5UZXh0QXBwZWFyYW5jZV90ZXh0Q29sb3IsIGRlZkNvbG9yKTsKKyAgICAgICAgICAgIGFwcGVhcmFuY2UucmVjeWNsZSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGluaXRpYWxpemUoaW50IGhvdXJPZkRheSwgaW50IG1pbnV0ZSwgYm9vbGVhbiBpczI0SG91clZpZXcsIGludCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHNob3dEb25lQnV0dG9uKSB7CisgICAgICAgIG1Jbml0aWFsSG91ck9mRGF5ID0gaG91ck9mRGF5OworICAgICAgICBtSW5pdGlhbE1pbnV0ZSA9IG1pbnV0ZTsKKyAgICAgICAgbUlzMjRIb3VyVmlldyA9IGlzMjRIb3VyVmlldzsKKyAgICAgICAgbUluS2JNb2RlID0gZmFsc2U7CisgICAgICAgIG1TaG93RG9uZUJ1dHRvbiA9IHNob3dEb25lQnV0dG9uOworICAgICAgICB1cGRhdGVVSShpbmRleCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldHVwTGlzdGVuZXJzKCkgeworICAgICAgICBLZXlib2FyZExpc3RlbmVyIGtleWJvYXJkTGlzdGVuZXIgPSBuZXcgS2V5Ym9hcmRMaXN0ZW5lcigpOworICAgICAgICBtRGVsZWdhdG9yLnNldE9uS2V5TGlzdGVuZXIoa2V5Ym9hcmRMaXN0ZW5lcik7CisKKyAgICAgICAgbUhvdXJWaWV3LnNldE9uS2V5TGlzdGVuZXIoa2V5Ym9hcmRMaXN0ZW5lcik7CisgICAgICAgIG1NaW51dGVWaWV3LnNldE9uS2V5TGlzdGVuZXIoa2V5Ym9hcmRMaXN0ZW5lcik7CisgICAgICAgIG1BbVBtVGV4dFZpZXcuc2V0T25LZXlMaXN0ZW5lcihrZXlib2FyZExpc3RlbmVyKTsKKyAgICAgICAgbVJhZGlhbFRpbWVQaWNrZXJWaWV3LnNldE9uVmFsdWVTZWxlY3RlZExpc3RlbmVyKHRoaXMpOworICAgICAgICBtUmFkaWFsVGltZVBpY2tlclZpZXcuc2V0T25LZXlMaXN0ZW5lcihrZXlib2FyZExpc3RlbmVyKTsKKworICAgICAgICBtSG91clZpZXcuc2V0T25DbGlja0xpc3RlbmVyKG5ldyBWaWV3Lk9uQ2xpY2tMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIEBPdmVycmlkZQorICAgICAgICAgICAgcHVibGljIHZvaWQgb25DbGljayhWaWV3IHYpIHsKKyAgICAgICAgICAgICAgICBzZXRDdXJyZW50SXRlbVNob3dpbmcoSE9VUl9JTkRFWCwgdHJ1ZSwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgICAgIHRyeVZpYnJhdGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIG1NaW51dGVWaWV3LnNldE9uQ2xpY2tMaXN0ZW5lcihuZXcgVmlldy5PbkNsaWNrTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uQ2xpY2soVmlldyB2KSB7CisgICAgICAgICAgICAgICAgc2V0Q3VycmVudEl0ZW1TaG93aW5nKE1JTlVURV9JTkRFWCwgdHJ1ZSwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgICAgIHRyeVZpYnJhdGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIG1Eb25lQnV0dG9uLnNldE9uQ2xpY2tMaXN0ZW5lcihuZXcgVmlldy5PbkNsaWNrTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uQ2xpY2soVmlldyB2KSB7CisgICAgICAgICAgICAgICAgaWYgKG1JbktiTW9kZSAmJiBpc1R5cGVkVGltZUZ1bGx5TGVnYWwoKSkgeworICAgICAgICAgICAgICAgICAgICBmaW5pc2hLYk1vZGUoZmFsc2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRyeVZpYnJhdGUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1EaXNtaXNzQ2FsbGJhY2sgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBtRGlzbWlzc0NhbGxiYWNrLmRpc21pc3MobURlbGVnYXRvciwgZmFsc2UsIGdldEN1cnJlbnRIb3VyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q3VycmVudE1pbnV0ZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBtRG9uZUJ1dHRvbi5zZXRPbktleUxpc3RlbmVyKGtleWJvYXJkTGlzdGVuZXIpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVVSShpbnQgaW5kZXgpIHsKKyAgICAgICAgLy8gVXBkYXRlIFJhZGlhbFBpY2tlciB2YWx1ZXMKKyAgICAgICAgdXBkYXRlUmFkaWFsUGlja2VyKGluZGV4KTsKKyAgICAgICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgdGhlIEFNL1BNIHZpZXcuCisgICAgICAgIHVwZGF0ZUhlYWRlckFtUG0oKTsKKyAgICAgICAgLy8gU2hvdyBvciBoaWRlIERvbmUgYnV0dG9uCisgICAgICAgIHVwZGF0ZURvbmVCdXR0b24oKTsKKyAgICAgICAgLy8gVXBkYXRlIEhvdXIgYW5kIE1pbnV0ZXMKKyAgICAgICAgdXBkYXRlSGVhZGVySG91cihtSW5pdGlhbEhvdXJPZkRheSwgdHJ1ZSk7CisgICAgICAgIC8vIFVwZGF0ZSB0aW1lIHNlcGFyYXRvcgorICAgICAgICB1cGRhdGVIZWFkZXJTZXBhcmF0b3IoKTsKKyAgICAgICAgLy8gVXBkYXRlIE1pbnV0ZXMKKyAgICAgICAgdXBkYXRlSGVhZGVyTWludXRlKG1Jbml0aWFsTWludXRlKTsKKyAgICAgICAgLy8gSW52YWxpZGF0ZSBldmVyeXRoaW5nCisgICAgICAgIG1EZWxlZ2F0b3IuaW52YWxpZGF0ZSgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVSYWRpYWxQaWNrZXIoaW50IGluZGV4KSB7CisgICAgICAgIG1SYWRpYWxUaW1lUGlja2VyVmlldy5pbml0aWFsaXplKG1Jbml0aWFsSG91ck9mRGF5LCBtSW5pdGlhbE1pbnV0ZSwgbUlzMjRIb3VyVmlldyk7CisgICAgICAgIHNldEN1cnJlbnRJdGVtU2hvd2luZyhpbmRleCwgZmFsc2UsIHRydWUsIHRydWUpOworICAgIH0KKworICAgIHByaXZhdGUgaW50IGNvbXB1dGVNYXhXaWR0aE9mTnVtYmVycyhpbnQgbWF4KSB7CisgICAgICAgIFRleHRWaWV3IHRlbXBWaWV3ID0gbmV3IFRleHRWaWV3KG1Db250ZXh0KTsKKyAgICAgICAgVHlwZWRBcnJheSBhID0gbUNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhURVhUX0FQUEVBUkFOQ0VfVElNRV9MQUJFTF9BVFRSKTsKKyAgICAgICAgZmluYWwgaW50IHRleHRBcHBlYXJhbmNlUmVzSWQgPSBhLmdldFJlc291cmNlSWQoMCwgMCk7CisgICAgICAgIHRlbXBWaWV3LnNldFRleHRBcHBlYXJhbmNlKG1Db250ZXh0LCAodGV4dEFwcGVhcmFuY2VSZXNJZCAhPSAwKSA/CisgICAgICAgICAgICAgICAgdGV4dEFwcGVhcmFuY2VSZXNJZCA6IFIuc3R5bGUuVGV4dEFwcGVhcmFuY2VfSG9sb19UaW1lUGlja2VyX1RpbWVMYWJlbCk7CisgICAgICAgIGEucmVjeWNsZSgpOworICAgICAgICBWaWV3R3JvdXAuTGF5b3V0UGFyYW1zIGxwID0gbmV3IFZpZXdHcm91cC5MYXlvdXRQYXJhbXMoVmlld0dyb3VwLkxheW91dFBhcmFtcy5XUkFQX0NPTlRFTlQsCisgICAgICAgICAgICAgICAgVmlld0dyb3VwLkxheW91dFBhcmFtcy5XUkFQX0NPTlRFTlQpOworICAgICAgICB0ZW1wVmlldy5zZXRMYXlvdXRQYXJhbXMobHApOworICAgICAgICBpbnQgbWF4V2lkdGggPSAwOworICAgICAgICBmb3IgKGludCBtaW51dGVzID0gMDsgbWludXRlcyA8IG1heDsgbWludXRlcysrKSB7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgdGV4dCA9IFN0cmluZy5mb3JtYXQoIiUwMmQiLCBtaW51dGVzKTsKKyAgICAgICAgICAgIHRlbXBWaWV3LnNldFRleHQodGV4dCk7CisgICAgICAgICAgICB0ZW1wVmlldy5tZWFzdXJlKFZpZXcuTWVhc3VyZVNwZWMuVU5TUEVDSUZJRUQsIFZpZXcuTWVhc3VyZVNwZWMuVU5TUEVDSUZJRUQpOworICAgICAgICAgICAgbWF4V2lkdGggPSBNYXRoLm1heChtYXhXaWR0aCwgdGVtcFZpZXcuZ2V0TWVhc3VyZWRXaWR0aCgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWF4V2lkdGg7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZUhlYWRlckFtUG0oKSB7CisgICAgICAgIGlmIChtSXMyNEhvdXJWaWV3KSB7CisgICAgICAgICAgICBtQW1QbVRleHRWaWV3LnNldFZpc2liaWxpdHkoVmlldy5HT05FKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1BbVBtVGV4dFZpZXcuc2V0VmlzaWJpbGl0eShWaWV3LlZJU0lCTEUpOworICAgICAgICAgICAgZmluYWwgU3RyaW5nIGJlc3REYXRlVGltZVBhdHRlcm4gPSBEYXRlRm9ybWF0LmdldEJlc3REYXRlVGltZVBhdHRlcm4obUN1cnJlbnRMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICJobSIpOworCisgICAgICAgICAgICBib29sZWFuIGFtUG1PbkxlZnQgPSBiZXN0RGF0ZVRpbWVQYXR0ZXJuLnN0YXJ0c1dpdGgoImEiKTsKKyAgICAgICAgICAgIGlmIChUZXh0VXRpbHMuZ2V0TGF5b3V0RGlyZWN0aW9uRnJvbUxvY2FsZShtQ3VycmVudExvY2FsZSkgPT0KKyAgICAgICAgICAgICAgICAgICAgVmlldy5MQVlPVVRfRElSRUNUSU9OX1JUTCkgeworICAgICAgICAgICAgICAgIGFtUG1PbkxlZnQgPSAhYW1QbU9uTGVmdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgUmVsYXRpdmVMYXlvdXQuTGF5b3V0UGFyYW1zIGxheW91dFBhcmFtcyA9IChSZWxhdGl2ZUxheW91dC5MYXlvdXRQYXJhbXMpCisgICAgICAgICAgICAgICAgICAgIG1BbVBtVGV4dFZpZXcuZ2V0TGF5b3V0UGFyYW1zKCk7CisKKyAgICAgICAgICAgIGlmIChhbVBtT25MZWZ0KSB7CisgICAgICAgICAgICAgICAgbGF5b3V0UGFyYW1zLnJpZ2h0TWFyZ2luID0gY29tcHV0ZU1heFdpZHRoT2ZOdW1iZXJzKDEyIC8qIGZvciBob3VycyAqLyk7CisgICAgICAgICAgICAgICAgbGF5b3V0UGFyYW1zLnJlbW92ZVJ1bGUoUmVsYXRpdmVMYXlvdXQuUklHSFRfT0YpOworICAgICAgICAgICAgICAgIGxheW91dFBhcmFtcy5hZGRSdWxlKFJlbGF0aXZlTGF5b3V0LkxFRlRfT0YsIFIuaWQuc2VwYXJhdG9yKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbGF5b3V0UGFyYW1zLmxlZnRNYXJnaW4gPSBjb21wdXRlTWF4V2lkdGhPZk51bWJlcnMoNjAgLyogZm9yIG1pbnV0ZXMgKi8pOworICAgICAgICAgICAgICAgIGxheW91dFBhcmFtcy5yZW1vdmVSdWxlKFJlbGF0aXZlTGF5b3V0LkxFRlRfT0YpOworICAgICAgICAgICAgICAgIGxheW91dFBhcmFtcy5hZGRSdWxlKFJlbGF0aXZlTGF5b3V0LlJJR0hUX09GLCBSLmlkLnNlcGFyYXRvcik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHVwZGF0ZUFtUG1EaXNwbGF5KG1Jbml0aWFsSG91ck9mRGF5IDwgMTIgPyBBTSA6IFBNKTsKKyAgICAgICAgICAgIG1BbVBtVGV4dFZpZXcuc2V0T25DbGlja0xpc3RlbmVyKG5ldyBWaWV3Lk9uQ2xpY2tMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBvbkNsaWNrKFZpZXcgdikgeworICAgICAgICAgICAgICAgICAgICB0cnlWaWJyYXRlKCk7CisgICAgICAgICAgICAgICAgICAgIGludCBhbU9yUG0gPSBtUmFkaWFsVGltZVBpY2tlclZpZXcuZ2V0QW1PclBtKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhbU9yUG0gPT0gQU0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFtT3JQbSA9IFBNOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFtT3JQbSA9PSBQTSl7CisgICAgICAgICAgICAgICAgICAgICAgICBhbU9yUG0gPSBBTTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB1cGRhdGVBbVBtRGlzcGxheShhbU9yUG0pOworICAgICAgICAgICAgICAgICAgICBtUmFkaWFsVGltZVBpY2tlclZpZXcuc2V0QW1PclBtKGFtT3JQbSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlRG9uZUJ1dHRvbigpIHsKKyAgICAgICAgbUxheW91dEJ1dHRvbnMuc2V0VmlzaWJpbGl0eShtU2hvd0RvbmVCdXR0b24gPyBWaWV3LlZJU0lCTEUgOiBWaWV3LkdPTkUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY3VycmVudCBob3VyLgorICAgICAqLworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIHNldEN1cnJlbnRIb3VyKEludGVnZXIgY3VycmVudEhvdXIpIHsKKyAgICAgICAgaWYgKG1Jbml0aWFsSG91ck9mRGF5ID09IGN1cnJlbnRIb3VyKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbUluaXRpYWxIb3VyT2ZEYXkgPSBjdXJyZW50SG91cjsKKyAgICAgICAgdXBkYXRlSGVhZGVySG91cihjdXJyZW50SG91ciwgdHJ1ZSAvKiBhY2Nlc3NpYmlsaXR5IGFubm91bmNlICovKTsKKyAgICAgICAgdXBkYXRlSGVhZGVyQW1QbSgpOworICAgICAgICBtUmFkaWFsVGltZVBpY2tlclZpZXcuc2V0Q3VycmVudEhvdXIoY3VycmVudEhvdXIpOworICAgICAgICBtUmFkaWFsVGltZVBpY2tlclZpZXcuc2V0QW1PclBtKG1Jbml0aWFsSG91ck9mRGF5IDwgMTIgPyBBTSA6IFBNKTsKKyAgICAgICAgbURlbGVnYXRvci5pbnZhbGlkYXRlKCk7CisgICAgICAgIG9uVGltZUNoYW5nZWQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IGhvdXIgaW4gdGhlIHJhbmdlICgwLTIzKS4KKyAgICAgKi8KKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgSW50ZWdlciBnZXRDdXJyZW50SG91cigpIHsKKyAgICAgICAgaW50IGN1cnJlbnRIb3VyID0gbVJhZGlhbFRpbWVQaWNrZXJWaWV3LmdldEN1cnJlbnRIb3VyKCk7CisgICAgICAgIGlmIChtSXMyNEhvdXJWaWV3KSB7CisgICAgICAgICAgICByZXR1cm4gY3VycmVudEhvdXI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzd2l0Y2gobVJhZGlhbFRpbWVQaWNrZXJWaWV3LmdldEFtT3JQbSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBQTToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChjdXJyZW50SG91ciAlIEhPVVJTX0lOX0hBTEZfREFZKSArIEhPVVJTX0lOX0hBTEZfREFZOworICAgICAgICAgICAgICAgIGNhc2UgQU06CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRIb3VyICUgSE9VUlNfSU5fSEFMRl9EQVk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGN1cnJlbnQgbWludXRlICgwLTU5KS4KKyAgICAgKi8KKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW50TWludXRlKEludGVnZXIgY3VycmVudE1pbnV0ZSkgeworICAgICAgICBpZiAobUluaXRpYWxNaW51dGUgPT0gY3VycmVudE1pbnV0ZSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1Jbml0aWFsTWludXRlID0gY3VycmVudE1pbnV0ZTsKKyAgICAgICAgdXBkYXRlSGVhZGVyTWludXRlKGN1cnJlbnRNaW51dGUpOworICAgICAgICBtUmFkaWFsVGltZVBpY2tlclZpZXcuc2V0Q3VycmVudE1pbnV0ZShjdXJyZW50TWludXRlKTsKKyAgICAgICAgbURlbGVnYXRvci5pbnZhbGlkYXRlKCk7CisgICAgICAgIG9uVGltZUNoYW5nZWQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IG1pbnV0ZS4KKyAgICAgKi8KKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgSW50ZWdlciBnZXRDdXJyZW50TWludXRlKCkgeworICAgICAgICByZXR1cm4gbVJhZGlhbFRpbWVQaWNrZXJWaWV3LmdldEN1cnJlbnRNaW51dGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgd2hldGhlciBpbiAyNCBob3VyIG9yIEFNL1BNIG1vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaXMyNEhvdXJWaWV3IFRydWUgPSAyNCBob3VyIG1vZGUuIEZhbHNlID0gQU0vUE0uCisgICAgICovCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgc2V0SXMyNEhvdXJWaWV3KEJvb2xlYW4gaXMyNEhvdXJWaWV3KSB7CisgICAgICAgIGlmIChpczI0SG91clZpZXcgPT0gbUlzMjRIb3VyVmlldykgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1JczI0SG91clZpZXcgPSBpczI0SG91clZpZXc7CisgICAgICAgIGdlbmVyYXRlTGVnYWxUaW1lc1RyZWUoKTsKKyAgICAgICAgaW50IGhvdXIgPSBtUmFkaWFsVGltZVBpY2tlclZpZXcuZ2V0Q3VycmVudEhvdXIoKTsKKyAgICAgICAgbUluaXRpYWxIb3VyT2ZEYXkgPSBob3VyOworICAgICAgICB1cGRhdGVIZWFkZXJIb3VyKGhvdXIsIGZhbHNlIC8qIG5vIGFjY2Vzc2liaWxpdHkgYW5ub3VuY2UgKi8pOworICAgICAgICB1cGRhdGVIZWFkZXJBbVBtKCk7CisgICAgICAgIHVwZGF0ZVJhZGlhbFBpY2tlcihtUmFkaWFsVGltZVBpY2tlclZpZXcuZ2V0Q3VycmVudEl0ZW1TaG93aW5nKCkpOworICAgICAgICBtRGVsZWdhdG9yLmludmFsaWRhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBpcyBpbiAyNCBob3VyIHZpZXcgZWxzZSBmYWxzZS4KKyAgICAgKi8KKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgYm9vbGVhbiBpczI0SG91clZpZXcoKSB7CisgICAgICAgIHJldHVybiBtSXMyNEhvdXJWaWV3OworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIHNldE9uVGltZUNoYW5nZWRMaXN0ZW5lcihUaW1lUGlja2VyLk9uVGltZUNoYW5nZWRMaXN0ZW5lciBjYWxsYmFjaykgeworICAgICAgICBtT25UaW1lQ2hhbmdlZExpc3RlbmVyID0gY2FsbGJhY2s7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgc2V0RW5hYmxlZChib29sZWFuIGVuYWJsZWQpIHsKKyAgICAgICAgbUhvdXJWaWV3LnNldEVuYWJsZWQoZW5hYmxlZCk7CisgICAgICAgIG1NaW51dGVWaWV3LnNldEVuYWJsZWQoZW5hYmxlZCk7CisgICAgICAgIG1BbVBtVGV4dFZpZXcuc2V0RW5hYmxlZChlbmFibGVkKTsKKyAgICAgICAgbVJhZGlhbFRpbWVQaWNrZXJWaWV3LnNldEVuYWJsZWQoZW5hYmxlZCk7CisgICAgICAgIG1Jc0VuYWJsZWQgPSBlbmFibGVkOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBib29sZWFuIGlzRW5hYmxlZCgpIHsKKyAgICAgICAgcmV0dXJuIG1Jc0VuYWJsZWQ7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgc2V0U2hvd0RvbmVCdXR0b24oYm9vbGVhbiBzaG93RG9uZUJ1dHRvbikgeworICAgICAgICBtU2hvd0RvbmVCdXR0b24gPSBzaG93RG9uZUJ1dHRvbjsKKyAgICAgICAgdXBkYXRlRG9uZUJ1dHRvbigpOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIHNldERpc21pc3NDYWxsYmFjayhUaW1lUGlja2VyLlRpbWVQaWNrZXJEaXNtaXNzQ2FsbGJhY2sgY2FsbGJhY2spIHsKKyAgICAgICAgbURpc21pc3NDYWxsYmFjayA9IGNhbGxiYWNrOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBpbnQgZ2V0QmFzZWxpbmUoKSB7CisgICAgICAgIC8vIGRvZXMgbm90IHN1cHBvcnQgYmFzZWxpbmUgYWxpZ25tZW50CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VkKENvbmZpZ3VyYXRpb24gbmV3Q29uZmlnKSB7CisgICAgICAgIHVwZGF0ZVVJKG1SYWRpYWxUaW1lUGlja2VyVmlldy5nZXRDdXJyZW50SXRlbVNob3dpbmcoKSk7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIFBhcmNlbGFibGUgb25TYXZlSW5zdGFuY2VTdGF0ZShQYXJjZWxhYmxlIHN1cGVyU3RhdGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTYXZlZFN0YXRlKHN1cGVyU3RhdGUsIGdldEN1cnJlbnRIb3VyKCksIGdldEN1cnJlbnRNaW51dGUoKSwKKyAgICAgICAgICAgICAgICBpczI0SG91clZpZXcoKSwgaW5LYk1vZGUoKSwgZ2V0VHlwZWRUaW1lcygpLCBnZXRDdXJyZW50SXRlbVNob3dpbmcoKSwKKyAgICAgICAgICAgICAgICBpc1Nob3dEb25lQnV0dG9uKCkpOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIG9uUmVzdG9yZUluc3RhbmNlU3RhdGUoUGFyY2VsYWJsZSBzdGF0ZSkgeworICAgICAgICBTYXZlZFN0YXRlIHNzID0gKFNhdmVkU3RhdGUpIHN0YXRlOworICAgICAgICBzZXRJbktiTW9kZShzcy5pbktiTW9kZSgpKTsKKyAgICAgICAgc2V0VHlwZWRUaW1lcyhzcy5nZXRUeXBlc1RpbWVzKCkpOworICAgICAgICBpbml0aWFsaXplKHNzLmdldEhvdXIoKSwgc3MuZ2V0TWludXRlKCksIHNzLmlzMjRIb3VyTW9kZSgpLCBzcy5nZXRDdXJyZW50SXRlbVNob3dpbmcoKSwKKyAgICAgICAgICAgICAgICBzcy5pc1Nob3dEb25lQnV0dG9uKCkpOworICAgICAgICBtUmFkaWFsVGltZVBpY2tlclZpZXcuaW52YWxpZGF0ZSgpOworICAgICAgICBpZiAobUluS2JNb2RlKSB7CisgICAgICAgICAgICB0cnlTdGFydGluZ0tiTW9kZSgtMSk7CisgICAgICAgICAgICBtSG91clZpZXcuaW52YWxpZGF0ZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIGJvb2xlYW4gZGlzcGF0Y2hQb3B1bGF0ZUFjY2Vzc2liaWxpdHlFdmVudChBY2Nlc3NpYmlsaXR5RXZlbnQgZXZlbnQpIHsKKyAgICAgICAgcmV0dXJuIG1SYWRpYWxUaW1lUGlja2VyVmlldy5kaXNwYXRjaFBvcHVsYXRlQWNjZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBvblBvcHVsYXRlQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCkgeworICAgICAgICBtUmFkaWFsVGltZVBpY2tlclZpZXcub25Qb3B1bGF0ZUFjY2Vzc2liaWxpdHlFdmVudChldmVudCk7CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIHZvaWQgb25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCkgeworICAgICAgICBtUmFkaWFsVGltZVBpY2tlclZpZXcub25Jbml0aWFsaXplQWNjZXNzaWJpbGl0eUV2ZW50KGV2ZW50KTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCBvbkluaXRpYWxpemVBY2Nlc3NpYmlsaXR5Tm9kZUluZm8oQWNjZXNzaWJpbGl0eU5vZGVJbmZvIGluZm8pIHsKKyAgICAgICAgbVJhZGlhbFRpbWVQaWNrZXJWaWV3Lm9uSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHlOb2RlSW5mbyhpbmZvKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgd2hldGhlciBpbiBrZXlib2FyZCBtb2RlIG9yIG5vdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbktiTW9kZSBUcnVlIG1lYW5zIGluIGtleWJvYXJkIG1vZGUuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldEluS2JNb2RlKGJvb2xlYW4gaW5LYk1vZGUpIHsKKyAgICAgICAgbUluS2JNb2RlID0gaW5LYk1vZGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiB0cnVlIGlmIGluIGtleWJvYXJkIG1vZGUKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaW5LYk1vZGUoKSB7CisgICAgICAgIHJldHVybiBtSW5LYk1vZGU7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldFR5cGVkVGltZXMoQXJyYXlMaXN0PEludGVnZXI+IHR5cGVUaW1lcykgeworICAgICAgICBtVHlwZWRUaW1lcyA9IHR5cGVUaW1lczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIHR5cGVkIHRpbWVzCisgICAgICovCisgICAgcHJpdmF0ZSBBcnJheUxpc3Q8SW50ZWdlcj4gZ2V0VHlwZWRUaW1lcygpIHsKKyAgICAgICAgcmV0dXJuIG1UeXBlZFRpbWVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBjdXJyZW50IGl0ZW0gc2hvd2luZworICAgICAqLworICAgIHByaXZhdGUgaW50IGdldEN1cnJlbnRJdGVtU2hvd2luZygpIHsKKyAgICAgICAgcmV0dXJuIG1SYWRpYWxUaW1lUGlja2VyVmlldy5nZXRDdXJyZW50SXRlbVNob3dpbmcoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gaXNTaG93RG9uZUJ1dHRvbigpIHsKKyAgICAgICAgcmV0dXJuIG1TaG93RG9uZUJ1dHRvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9wYWdhdGUgdGhlIHRpbWUgY2hhbmdlCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIG9uVGltZUNoYW5nZWQoKSB7CisgICAgICAgIG1EZWxlZ2F0b3Iuc2VuZEFjY2Vzc2liaWxpdHlFdmVudChBY2Nlc3NpYmlsaXR5RXZlbnQuVFlQRV9WSUVXX1NFTEVDVEVEKTsKKyAgICAgICAgaWYgKG1PblRpbWVDaGFuZ2VkTGlzdGVuZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgbU9uVGltZUNoYW5nZWRMaXN0ZW5lci5vblRpbWVDaGFuZ2VkKG1EZWxlZ2F0b3IsCisgICAgICAgICAgICAgICAgICAgIGdldEN1cnJlbnRIb3VyKCksIGdldEN1cnJlbnRNaW51dGUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVc2VkIHRvIHNhdmUgLyByZXN0b3JlIHN0YXRlIG9mIHRpbWUgcGlja2VyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgU2F2ZWRTdGF0ZSBleHRlbmRzIFZpZXcuQmFzZVNhdmVkU3RhdGUgeworCisgICAgICAgIHByaXZhdGUgZmluYWwgaW50IG1Ib3VyOworICAgICAgICBwcml2YXRlIGZpbmFsIGludCBtTWludXRlOworICAgICAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gbUlzMjRIb3VyTW9kZTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIG1JbktiTW9kZTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBBcnJheUxpc3Q8SW50ZWdlcj4gbVR5cGVkVGltZXM7CisgICAgICAgIHByaXZhdGUgZmluYWwgaW50IG1DdXJyZW50SXRlbVNob3dpbmc7CisgICAgICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBtU2hvd0RvbmVCdXR0b247CisKKyAgICAgICAgcHJpdmF0ZSBTYXZlZFN0YXRlKFBhcmNlbGFibGUgc3VwZXJTdGF0ZSwgaW50IGhvdXIsIGludCBtaW51dGUsIGJvb2xlYW4gaXMyNEhvdXJNb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc0tiTW9kZSwgQXJyYXlMaXN0PEludGVnZXI+IHR5cGVkVGltZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY3VycmVudEl0ZW1TaG93aW5nLCBib29sZWFuIHNob3dEb25lQnV0dG9uKSB7CisgICAgICAgICAgICBzdXBlcihzdXBlclN0YXRlKTsKKyAgICAgICAgICAgIG1Ib3VyID0gaG91cjsKKyAgICAgICAgICAgIG1NaW51dGUgPSBtaW51dGU7CisgICAgICAgICAgICBtSXMyNEhvdXJNb2RlID0gaXMyNEhvdXJNb2RlOworICAgICAgICAgICAgbUluS2JNb2RlID0gaXNLYk1vZGU7CisgICAgICAgICAgICBtVHlwZWRUaW1lcyA9IHR5cGVkVGltZXM7CisgICAgICAgICAgICBtQ3VycmVudEl0ZW1TaG93aW5nID0gY3VycmVudEl0ZW1TaG93aW5nOworICAgICAgICAgICAgbVNob3dEb25lQnV0dG9uID0gc2hvd0RvbmVCdXR0b247CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIFNhdmVkU3RhdGUoUGFyY2VsIGluKSB7CisgICAgICAgICAgICBzdXBlcihpbik7CisgICAgICAgICAgICBtSG91ciA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIG1NaW51dGUgPSBpbi5yZWFkSW50KCk7CisgICAgICAgICAgICBtSXMyNEhvdXJNb2RlID0gKGluLnJlYWRJbnQoKSA9PSAxKTsKKyAgICAgICAgICAgIG1JbktiTW9kZSA9IChpbi5yZWFkSW50KCkgPT0gMSk7CisgICAgICAgICAgICBtVHlwZWRUaW1lcyA9IGluLnJlYWRBcnJheUxpc3QoZ2V0Q2xhc3MoKS5nZXRDbGFzc0xvYWRlcigpKTsKKyAgICAgICAgICAgIG1DdXJyZW50SXRlbVNob3dpbmcgPSBpbi5yZWFkSW50KCk7CisgICAgICAgICAgICBtU2hvd0RvbmVCdXR0b24gPSAoaW4ucmVhZEludCgpID09IDEpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRIb3VyKCkgeworICAgICAgICAgICAgcmV0dXJuIG1Ib3VyOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRNaW51dGUoKSB7CisgICAgICAgICAgICByZXR1cm4gbU1pbnV0ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzMjRIb3VyTW9kZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBtSXMyNEhvdXJNb2RlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaW5LYk1vZGUoKSB7CisgICAgICAgICAgICByZXR1cm4gbUluS2JNb2RlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIEFycmF5TGlzdDxJbnRlZ2VyPiBnZXRUeXBlc1RpbWVzKCkgeworICAgICAgICAgICAgcmV0dXJuIG1UeXBlZFRpbWVzOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRDdXJyZW50SXRlbVNob3dpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gbUN1cnJlbnRJdGVtU2hvd2luZzsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzU2hvd0RvbmVCdXR0b24oKSB7CisgICAgICAgICAgICByZXR1cm4gbVNob3dEb25lQnV0dG9uOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlVG9QYXJjZWwoUGFyY2VsIGRlc3QsIGludCBmbGFncykgeworICAgICAgICAgICAgc3VwZXIud3JpdGVUb1BhcmNlbChkZXN0LCBmbGFncyk7CisgICAgICAgICAgICBkZXN0LndyaXRlSW50KG1Ib3VyKTsKKyAgICAgICAgICAgIGRlc3Qud3JpdGVJbnQobU1pbnV0ZSk7CisgICAgICAgICAgICBkZXN0LndyaXRlSW50KG1JczI0SG91ck1vZGUgPyAxIDogMCk7CisgICAgICAgICAgICBkZXN0LndyaXRlSW50KG1JbktiTW9kZSA/IDEgOiAwKTsKKyAgICAgICAgICAgIGRlc3Qud3JpdGVMaXN0KG1UeXBlZFRpbWVzKTsKKyAgICAgICAgICAgIGRlc3Qud3JpdGVJbnQobUN1cnJlbnRJdGVtU2hvd2luZyk7CisgICAgICAgICAgICBkZXN0LndyaXRlSW50KG1TaG93RG9uZUJ1dHRvbiA/IDEgOiAwKTsKKyAgICAgICAgfQorCisgICAgICAgIEBTdXBwcmVzc1dhcm5pbmdzKHsidW51c2VkIiwgImhpZGluZyJ9KQorICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFBhcmNlbGFibGUuQ3JlYXRvcjxTYXZlZFN0YXRlPiBDUkVBVE9SID0gbmV3IENyZWF0b3I8U2F2ZWRTdGF0ZT4oKSB7CisgICAgICAgICAgICBwdWJsaWMgU2F2ZWRTdGF0ZSBjcmVhdGVGcm9tUGFyY2VsKFBhcmNlbCBpbikgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2F2ZWRTdGF0ZShpbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBTYXZlZFN0YXRlW10gbmV3QXJyYXkoaW50IHNpemUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNhdmVkU3RhdGVbc2l6ZV07CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHRyeVZpYnJhdGUoKSB7CisgICAgICAgIG1EZWxlZ2F0b3IucGVyZm9ybUhhcHRpY0ZlZWRiYWNrKEhhcHRpY0ZlZWRiYWNrQ29uc3RhbnRzLkNMT0NLX1RJQ0spOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVBbVBtRGlzcGxheShpbnQgYW1PclBtKSB7CisgICAgICAgIGlmIChhbU9yUG0gPT0gQU0pIHsKKyAgICAgICAgICAgIG1BbVBtVGV4dFZpZXcuc2V0VGV4dChtQW1UZXh0KTsKKyAgICAgICAgICAgIG1SYWRpYWxUaW1lUGlja2VyVmlldy5hbm5vdW5jZUZvckFjY2Vzc2liaWxpdHkobUFtVGV4dCk7CisgICAgICAgIH0gZWxzZSBpZiAoYW1PclBtID09IFBNKXsKKyAgICAgICAgICAgIG1BbVBtVGV4dFZpZXcuc2V0VGV4dChtUG1UZXh0KTsKKyAgICAgICAgICAgIG1SYWRpYWxUaW1lUGlja2VyVmlldy5hbm5vdW5jZUZvckFjY2Vzc2liaWxpdHkobVBtVGV4dCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtQW1QbVRleHRWaWV3LnNldFRleHQobURvdWJsZVBsYWNlaG9sZGVyVGV4dCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgYnkgdGhlIHBpY2tlciBmb3IgdXBkYXRpbmcgdGhlIGhlYWRlciBkaXNwbGF5LgorICAgICAqLworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIG9uVmFsdWVTZWxlY3RlZChpbnQgcGlja2VySW5kZXgsIGludCBuZXdWYWx1ZSwgYm9vbGVhbiBhdXRvQWR2YW5jZSkgeworICAgICAgICBpZiAocGlja2VySW5kZXggPT0gSE9VUl9JTkRFWCkgeworICAgICAgICAgICAgdXBkYXRlSGVhZGVySG91cihuZXdWYWx1ZSwgZmFsc2UpOworICAgICAgICAgICAgU3RyaW5nIGFubm91bmNlbWVudCA9IFN0cmluZy5mb3JtYXQoIiVkIiwgbmV3VmFsdWUpOworICAgICAgICAgICAgaWYgKG1BbGxvd0F1dG9BZHZhbmNlICYmIGF1dG9BZHZhbmNlKSB7CisgICAgICAgICAgICAgICAgc2V0Q3VycmVudEl0ZW1TaG93aW5nKE1JTlVURV9JTkRFWCwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGFubm91bmNlbWVudCArPSAiLiAiICsgbVNlbGVjdE1pbnV0ZXM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1SYWRpYWxUaW1lUGlja2VyVmlldy5zZXRDb250ZW50RGVzY3JpcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICBtSG91clBpY2tlckRlc2NyaXB0aW9uICsgIjogIiArIG5ld1ZhbHVlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbVJhZGlhbFRpbWVQaWNrZXJWaWV3LmFubm91bmNlRm9yQWNjZXNzaWJpbGl0eShhbm5vdW5jZW1lbnQpOworICAgICAgICB9IGVsc2UgaWYgKHBpY2tlckluZGV4ID09IE1JTlVURV9JTkRFWCl7CisgICAgICAgICAgICB1cGRhdGVIZWFkZXJNaW51dGUobmV3VmFsdWUpOworICAgICAgICAgICAgbVJhZGlhbFRpbWVQaWNrZXJWaWV3LnNldENvbnRlbnREZXNjcmlwdGlvbihtTWludXRlUGlja2VyRGVzY3JpcHRpb24gKyAiOiAiICsgbmV3VmFsdWUpOworICAgICAgICB9IGVsc2UgaWYgKHBpY2tlckluZGV4ID09IEFNUE1fSU5ERVgpIHsKKyAgICAgICAgICAgIHVwZGF0ZUFtUG1EaXNwbGF5KG5ld1ZhbHVlKTsKKyAgICAgICAgfSBlbHNlIGlmIChwaWNrZXJJbmRleCA9PSBFTkFCTEVfUElDS0VSX0lOREVYKSB7CisgICAgICAgICAgICBpZiAoIWlzVHlwZWRUaW1lRnVsbHlMZWdhbCgpKSB7CisgICAgICAgICAgICAgICAgbVR5cGVkVGltZXMuY2xlYXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbmlzaEtiTW9kZSh0cnVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVIZWFkZXJIb3VyKGludCB2YWx1ZSwgYm9vbGVhbiBhbm5vdW5jZSkgeworICAgICAgICBmaW5hbCBTdHJpbmcgYmVzdERhdGVUaW1lUGF0dGVybiA9IERhdGVGb3JtYXQuZ2V0QmVzdERhdGVUaW1lUGF0dGVybihtQ3VycmVudExvY2FsZSwKKyAgICAgICAgICAgICAgICAobUlzMjRIb3VyVmlldykgPyAiSG0iIDogImhtIik7CisgICAgICAgIGZpbmFsIGludCBsZW5ndGhQYXR0ZXJuID0gYmVzdERhdGVUaW1lUGF0dGVybi5sZW5ndGgoKTsKKyAgICAgICAgYm9vbGVhbiBob3VyV2l0aFR3b0RpZ2l0ID0gZmFsc2U7CisgICAgICAgIGNoYXIgaG91ckZvcm1hdCA9ICdcMCc7CisgICAgICAgIC8vIENoZWNrIGlmIHRoZSByZXR1cm5lZCBwYXR0ZXJuIGlzIHNpbmdsZSBvciBkb3VibGUgJ0gnLCAnaCcsICdLJywgJ2snLiBXZSBhbHNvIHNhdmUKKyAgICAgICAgLy8gdGhlIGhvdXIgZm9ybWF0IHRoYXQgd2UgZm91bmQuCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoUGF0dGVybjsgaSsrKSB7CisgICAgICAgICAgICBmaW5hbCBjaGFyIGMgPSBiZXN0RGF0ZVRpbWVQYXR0ZXJuLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID09ICdIJyB8fCBjID09ICdoJyB8fCBjID09ICdLJyB8fCBjID09ICdrJykgeworICAgICAgICAgICAgICAgIGhvdXJGb3JtYXQgPSBjOworICAgICAgICAgICAgICAgIGlmIChpICsgMSA8IGxlbmd0aFBhdHRlcm4gJiYgYyA9PSBiZXN0RGF0ZVRpbWVQYXR0ZXJuLmNoYXJBdChpICsgMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaG91cldpdGhUd29EaWdpdCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZpbmFsIFN0cmluZyBmb3JtYXQ7CisgICAgICAgIGlmIChob3VyV2l0aFR3b0RpZ2l0KSB7CisgICAgICAgICAgICBmb3JtYXQgPSAiJTAyZCI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3JtYXQgPSAiJWQiOworICAgICAgICB9CisgICAgICAgIGlmIChtSXMyNEhvdXJWaWV3KSB7CisgICAgICAgICAgICAvLyAnaycgbWVhbnMgMS0yNCBob3VyCisgICAgICAgICAgICBpZiAoaG91ckZvcm1hdCA9PSAnaycgJiYgdmFsdWUgPT0gMCkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gMjQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyAnSycgbWVhbnMgMC0xMSBob3VyCisgICAgICAgICAgICB2YWx1ZSA9IG1vZHVsbzEyKHZhbHVlLCBob3VyRm9ybWF0ID09ICdLJyk7CisgICAgICAgIH0KKyAgICAgICAgQ2hhclNlcXVlbmNlIHRleHQgPSBTdHJpbmcuZm9ybWF0KGZvcm1hdCwgdmFsdWUpOworICAgICAgICBtSG91clZpZXcuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgaWYgKGFubm91bmNlKSB7CisgICAgICAgICAgICBtUmFkaWFsVGltZVBpY2tlclZpZXcuYW5ub3VuY2VGb3JBY2Nlc3NpYmlsaXR5KHRleHQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1vZHVsbzEyKGludCBuLCBib29sZWFuIHN0YXJ0V2l0aFplcm8pIHsKKyAgICAgICAgaW50IHZhbHVlID0gbiAlIDEyOworICAgICAgICBpZiAodmFsdWUgPT0gMCAmJiAhc3RhcnRXaXRoWmVybykgeworICAgICAgICAgICAgdmFsdWUgPSAxMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIHRpbWUgc2VwYXJhdG9yIGlzIGRlZmluZWQgaW4gdGhlIFVuaWNvZGUgQ0xEUiBhbmQgY2Fubm90IGJlIHN1cHBvc2VkIHRvIGJlICI6Ii4KKyAgICAgKgorICAgICAqIFNlZSBodHRwOi8vdW5pY29kZS5vcmcvY2xkci90cmFjL2Jyb3dzZXIvdHJ1bmsvY29tbW9uL21haW4KKyAgICAgKgorICAgICAqIFdlIHBhc3MgdGhlIGNvcnJlY3QgInNrZWxldG9uIiBkZXBlbmRpbmcgb24gMTIgb3IgMjQgaG91cnMgdmlldyBhbmQgdGhlbiBleHRyYWN0IHRoZQorICAgICAqIHNlcGFyYXRvciBhcyB0aGUgY2hhcmFjdGVyIHdoaWNoIGlzIGp1c3QgYWZ0ZXIgdGhlIGhvdXIgbWFya2VyIGluIHRoZSByZXR1cm5lZCBwYXR0ZXJuLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVIZWFkZXJTZXBhcmF0b3IoKSB7CisgICAgICAgIGZpbmFsIFN0cmluZyBiZXN0RGF0ZVRpbWVQYXR0ZXJuID0gRGF0ZUZvcm1hdC5nZXRCZXN0RGF0ZVRpbWVQYXR0ZXJuKG1DdXJyZW50TG9jYWxlLAorICAgICAgICAgICAgICAgIChtSXMyNEhvdXJWaWV3KSA/ICJIbSIgOiAiaG0iKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIHNlcGFyYXRvclRleHQ7CisgICAgICAgIC8vIFNlZSBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS90cjM1LWRhdGVzLmh0bWwgZm9yIGhvdXIgZm9ybWF0cworICAgICAgICBmaW5hbCBjaGFyW10gaG91ckZvcm1hdHMgPSB7J0gnLCAnaCcsICdLJywgJ2snfTsKKyAgICAgICAgaW50IGhJbmRleCA9IGxhc3RJbmRleE9mQW55KGJlc3REYXRlVGltZVBhdHRlcm4sIGhvdXJGb3JtYXRzKTsKKyAgICAgICAgaWYgKGhJbmRleCA9PSAtMSkgeworICAgICAgICAgICAgLy8gRGVmYXVsdCBjYXNlCisgICAgICAgICAgICBzZXBhcmF0b3JUZXh0ID0gIjoiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2VwYXJhdG9yVGV4dCA9IENoYXJhY3Rlci50b1N0cmluZyhiZXN0RGF0ZVRpbWVQYXR0ZXJuLmNoYXJBdChoSW5kZXggKyAxKSk7CisgICAgICAgIH0KKyAgICAgICAgbVNlcGFyYXRvclZpZXcuc2V0VGV4dChzZXBhcmF0b3JUZXh0KTsKKyAgICB9CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBpbnQgbGFzdEluZGV4T2ZBbnkoU3RyaW5nIHN0ciwgY2hhcltdIGFueSkgeworICAgICAgICBmaW5hbCBpbnQgbGVuZ3RoQW55ID0gYW55Lmxlbmd0aDsKKyAgICAgICAgaWYgKGxlbmd0aEFueSA+IDApIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBzdHIubGVuZ3RoKCkgLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IHN0ci5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBsZW5ndGhBbnk7IGorKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSBhbnlbal0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlSGVhZGVyTWludXRlKGludCB2YWx1ZSkgeworICAgICAgICBpZiAodmFsdWUgPT0gNjApIHsKKyAgICAgICAgICAgIHZhbHVlID0gMDsKKyAgICAgICAgfQorICAgICAgICBDaGFyU2VxdWVuY2UgdGV4dCA9IFN0cmluZy5mb3JtYXQobUN1cnJlbnRMb2NhbGUsICIlMDJkIiwgdmFsdWUpOworICAgICAgICBtUmFkaWFsVGltZVBpY2tlclZpZXcuYW5ub3VuY2VGb3JBY2Nlc3NpYmlsaXR5KHRleHQpOworICAgICAgICBtTWludXRlVmlldy5zZXRUZXh0KHRleHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNob3cgZWl0aGVyIEhvdXJzIG9yIE1pbnV0ZXMuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldEN1cnJlbnRJdGVtU2hvd2luZyhpbnQgaW5kZXgsIGJvb2xlYW4gYW5pbWF0ZUNpcmNsZSwgYm9vbGVhbiBkZWxheUxhYmVsQW5pbWF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gYW5ub3VuY2UpIHsKKyAgICAgICAgbVJhZGlhbFRpbWVQaWNrZXJWaWV3LnNldEN1cnJlbnRJdGVtU2hvd2luZyhpbmRleCwgYW5pbWF0ZUNpcmNsZSk7CisKKyAgICAgICAgVGV4dFZpZXcgbGFiZWxUb0FuaW1hdGU7CisgICAgICAgIGlmIChpbmRleCA9PSBIT1VSX0lOREVYKSB7CisgICAgICAgICAgICBpbnQgaG91cnMgPSBtUmFkaWFsVGltZVBpY2tlclZpZXcuZ2V0Q3VycmVudEhvdXIoKTsKKyAgICAgICAgICAgIGlmICghbUlzMjRIb3VyVmlldykgeworICAgICAgICAgICAgICAgIGhvdXJzID0gaG91cnMgJSAxMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1SYWRpYWxUaW1lUGlja2VyVmlldy5zZXRDb250ZW50RGVzY3JpcHRpb24obUhvdXJQaWNrZXJEZXNjcmlwdGlvbiArICI6ICIgKyBob3Vycyk7CisgICAgICAgICAgICBpZiAoYW5ub3VuY2UpIHsKKyAgICAgICAgICAgICAgICBtUmFkaWFsVGltZVBpY2tlclZpZXcuYW5ub3VuY2VGb3JBY2Nlc3NpYmlsaXR5KG1TZWxlY3RIb3Vycyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYWJlbFRvQW5pbWF0ZSA9IG1Ib3VyVmlldzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBtaW51dGVzID0gbVJhZGlhbFRpbWVQaWNrZXJWaWV3LmdldEN1cnJlbnRNaW51dGUoKTsKKyAgICAgICAgICAgIG1SYWRpYWxUaW1lUGlja2VyVmlldy5zZXRDb250ZW50RGVzY3JpcHRpb24obU1pbnV0ZVBpY2tlckRlc2NyaXB0aW9uICsgIjogIiArIG1pbnV0ZXMpOworICAgICAgICAgICAgaWYgKGFubm91bmNlKSB7CisgICAgICAgICAgICAgICAgbVJhZGlhbFRpbWVQaWNrZXJWaWV3LmFubm91bmNlRm9yQWNjZXNzaWJpbGl0eShtU2VsZWN0TWludXRlcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYWJlbFRvQW5pbWF0ZSA9IG1NaW51dGVWaWV3OworICAgICAgICB9CisKKyAgICAgICAgaW50IGhvdXJDb2xvciA9IChpbmRleCA9PSBIT1VSX0lOREVYKSA/IG1IZWFkZXJTZWxlY3RlZENvbG9yIDogbUhlYWRlclVuU2VsZWN0ZWRDb2xvcjsKKyAgICAgICAgaW50IG1pbnV0ZUNvbG9yID0gKGluZGV4ID09IE1JTlVURV9JTkRFWCkgPyBtSGVhZGVyU2VsZWN0ZWRDb2xvciA6IG1IZWFkZXJVblNlbGVjdGVkQ29sb3I7CisgICAgICAgIG1Ib3VyVmlldy5zZXRUZXh0Q29sb3IoaG91ckNvbG9yKTsKKyAgICAgICAgbU1pbnV0ZVZpZXcuc2V0VGV4dENvbG9yKG1pbnV0ZUNvbG9yKTsKKworICAgICAgICBPYmplY3RBbmltYXRvciBwdWxzZUFuaW1hdG9yID0gZ2V0UHVsc2VBbmltYXRvcihsYWJlbFRvQW5pbWF0ZSwgMC44NWYsIDEuMWYpOworICAgICAgICBpZiAoZGVsYXlMYWJlbEFuaW1hdGUpIHsKKyAgICAgICAgICAgIHB1bHNlQW5pbWF0b3Iuc2V0U3RhcnREZWxheShQVUxTRV9BTklNQVRPUl9ERUxBWSk7CisgICAgICAgIH0KKyAgICAgICAgcHVsc2VBbmltYXRvci5zdGFydCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvciBrZXlib2FyZCBtb2RlLCBwcm9jZXNzZXMga2V5IGV2ZW50cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlDb2RlIHRoZSBwcmVzc2VkIGtleS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUga2V5IHdhcyBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIHByb2Nlc3NLZXlVcChpbnQga2V5Q29kZSkgeworICAgICAgICBpZiAoa2V5Q29kZSA9PSBLZXlFdmVudC5LRVlDT0RFX0VTQ0FQRSB8fCBrZXlDb2RlID09IEtleUV2ZW50LktFWUNPREVfQkFDSykgeworICAgICAgICAgICAgaWYgKG1EaXNtaXNzQ2FsbGJhY2sgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1EaXNtaXNzQ2FsbGJhY2suZGlzbWlzcyhtRGVsZWdhdG9yLCB0cnVlLCBnZXRDdXJyZW50SG91cigpLCBnZXRDdXJyZW50TWludXRlKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gZWxzZSBpZiAoa2V5Q29kZSA9PSBLZXlFdmVudC5LRVlDT0RFX1RBQikgeworICAgICAgICAgICAgaWYobUluS2JNb2RlKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzVHlwZWRUaW1lRnVsbHlMZWdhbCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaEtiTW9kZSh0cnVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoa2V5Q29kZSA9PSBLZXlFdmVudC5LRVlDT0RFX0VOVEVSKSB7CisgICAgICAgICAgICBpZiAobUluS2JNb2RlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc1R5cGVkVGltZUZ1bGx5TGVnYWwoKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZmluaXNoS2JNb2RlKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtT25UaW1lQ2hhbmdlZExpc3RlbmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtT25UaW1lQ2hhbmdlZExpc3RlbmVyLm9uVGltZUNoYW5nZWQobURlbGVnYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1SYWRpYWxUaW1lUGlja2VyVmlldy5nZXRDdXJyZW50SG91cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgbVJhZGlhbFRpbWVQaWNrZXJWaWV3LmdldEN1cnJlbnRNaW51dGUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobURpc21pc3NDYWxsYmFjayAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbURpc21pc3NDYWxsYmFjay5kaXNtaXNzKG1EZWxlZ2F0b3IsIGZhbHNlLCBnZXRDdXJyZW50SG91cigpLCBnZXRDdXJyZW50TWludXRlKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gZWxzZSBpZiAoa2V5Q29kZSA9PSBLZXlFdmVudC5LRVlDT0RFX0RFTCkgeworICAgICAgICAgICAgaWYgKG1JbktiTW9kZSkgeworICAgICAgICAgICAgICAgIGlmICghbVR5cGVkVGltZXMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkZWxldGVkID0gZGVsZXRlTGFzdFR5cGVkS2V5KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZWxldGVkS2V5U3RyOworICAgICAgICAgICAgICAgICAgICBpZiAoZGVsZXRlZCA9PSBnZXRBbU9yUG1LZXlDb2RlKEFNKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlZEtleVN0ciA9IG1BbVRleHQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVsZXRlZCA9PSBnZXRBbU9yUG1LZXlDb2RlKFBNKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlZEtleVN0ciA9IG1QbVRleHQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVkS2V5U3RyID0gU3RyaW5nLmZvcm1hdCgiJWQiLCBnZXRWYWxGcm9tS2V5Q29kZShkZWxldGVkKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbVJhZGlhbFRpbWVQaWNrZXJWaWV3LmFubm91bmNlRm9yQWNjZXNzaWJpbGl0eSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcuZm9ybWF0KG1EZWxldGVkS2V5Rm9ybWF0LCBkZWxldGVkS2V5U3RyKSk7CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZURpc3BsYXkodHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGtleUNvZGUgPT0gS2V5RXZlbnQuS0VZQ09ERV8wIHx8IGtleUNvZGUgPT0gS2V5RXZlbnQuS0VZQ09ERV8xCisgICAgICAgICAgICAgICAgfHwga2V5Q29kZSA9PSBLZXlFdmVudC5LRVlDT0RFXzIgfHwga2V5Q29kZSA9PSBLZXlFdmVudC5LRVlDT0RFXzMKKyAgICAgICAgICAgICAgICB8fCBrZXlDb2RlID09IEtleUV2ZW50LktFWUNPREVfNCB8fCBrZXlDb2RlID09IEtleUV2ZW50LktFWUNPREVfNQorICAgICAgICAgICAgICAgIHx8IGtleUNvZGUgPT0gS2V5RXZlbnQuS0VZQ09ERV82IHx8IGtleUNvZGUgPT0gS2V5RXZlbnQuS0VZQ09ERV83CisgICAgICAgICAgICAgICAgfHwga2V5Q29kZSA9PSBLZXlFdmVudC5LRVlDT0RFXzggfHwga2V5Q29kZSA9PSBLZXlFdmVudC5LRVlDT0RFXzkKKyAgICAgICAgICAgICAgICB8fCAoIW1JczI0SG91clZpZXcgJiYKKyAgICAgICAgICAgICAgICAoa2V5Q29kZSA9PSBnZXRBbU9yUG1LZXlDb2RlKEFNKSB8fCBrZXlDb2RlID09IGdldEFtT3JQbUtleUNvZGUoUE0pKSkpIHsKKyAgICAgICAgICAgIGlmICghbUluS2JNb2RlKSB7CisgICAgICAgICAgICAgICAgaWYgKG1SYWRpYWxUaW1lUGlja2VyVmlldyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFNvbWV0aGluZydzIHdyb25nLCBiZWNhdXNlIHRpbWUgcGlja2VyIHNob3VsZCBkZWZpbml0ZWx5IG5vdCBiZSBudWxsLgorICAgICAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJVbmFibGUgdG8gaW5pdGlhdGUga2V5Ym9hcmQgbW9kZSwgVGltZVBpY2tlciB3YXMgbnVsbC4iKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1UeXBlZFRpbWVzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgdHJ5U3RhcnRpbmdLYk1vZGUoa2V5Q29kZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBXZSdyZSBhbHJlYWR5IGluIGtleWJvYXJkIG1vZGUuCisgICAgICAgICAgICBpZiAoYWRkS2V5SWZMZWdhbChrZXlDb2RlKSkgeworICAgICAgICAgICAgICAgIHVwZGF0ZURpc3BsYXkoZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyeSB0byBzdGFydCBrZXlib2FyZCBtb2RlIHdpdGggdGhlIHNwZWNpZmllZCBrZXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5Q29kZSBUaGUga2V5IHRvIHVzZSBhcyB0aGUgZmlyc3QgcHJlc3MuIEtleWJvYXJkIG1vZGUgd2lsbCBub3QgYmUgc3RhcnRlZCBpZiB0aGUKKyAgICAgKiBrZXkgaXMgbm90IGxlZ2FsIHRvIHN0YXJ0IHdpdGguIE9yLCBwYXNzIGluIC0xIHRvIGdldCBpbnRvIGtleWJvYXJkIG1vZGUgd2l0aG91dCBhIHN0YXJ0aW5nCisgICAgICoga2V5LgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB0cnlTdGFydGluZ0tiTW9kZShpbnQga2V5Q29kZSkgeworICAgICAgICBpZiAoa2V5Q29kZSA9PSAtMSB8fCBhZGRLZXlJZkxlZ2FsKGtleUNvZGUpKSB7CisgICAgICAgICAgICBtSW5LYk1vZGUgPSB0cnVlOworICAgICAgICAgICAgbURvbmVCdXR0b24uc2V0RW5hYmxlZChmYWxzZSk7CisgICAgICAgICAgICB1cGRhdGVEaXNwbGF5KGZhbHNlKTsKKyAgICAgICAgICAgIG1SYWRpYWxUaW1lUGlja2VyVmlldy5zZXRJbnB1dEVuYWJsZWQoZmFsc2UpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGFkZEtleUlmTGVnYWwoaW50IGtleUNvZGUpIHsKKyAgICAgICAgLy8gSWYgd2UncmUgaW4gMjRob3VyIG1vZGUsIHdlJ2xsIG5lZWQgdG8gY2hlY2sgaWYgdGhlIGlucHV0IGlzIGZ1bGwuIElmIGluIEFNL1BNIG1vZGUsCisgICAgICAgIC8vIHdlJ2xsIG5lZWQgdG8gc2VlIGlmIEFNL1BNIGhhdmUgYmVlbiB0eXBlZC4KKyAgICAgICAgaWYgKChtSXMyNEhvdXJWaWV3ICYmIG1UeXBlZFRpbWVzLnNpemUoKSA9PSA0KSB8fAorICAgICAgICAgICAgICAgICghbUlzMjRIb3VyVmlldyAmJiBpc1R5cGVkVGltZUZ1bGx5TGVnYWwoKSkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIG1UeXBlZFRpbWVzLmFkZChrZXlDb2RlKTsKKyAgICAgICAgaWYgKCFpc1R5cGVkVGltZUxlZ2FsU29GYXIoKSkgeworICAgICAgICAgICAgZGVsZXRlTGFzdFR5cGVkS2V5KCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpbnQgdmFsID0gZ2V0VmFsRnJvbUtleUNvZGUoa2V5Q29kZSk7CisgICAgICAgIG1SYWRpYWxUaW1lUGlja2VyVmlldy5hbm5vdW5jZUZvckFjY2Vzc2liaWxpdHkoU3RyaW5nLmZvcm1hdCgiJWQiLCB2YWwpKTsKKyAgICAgICAgLy8gQXV0b21hdGljYWxseSBmaWxsIGluIDAncyBpZiBBTSBvciBQTSB3YXMgbGVnYWxseSBlbnRlcmVkLgorICAgICAgICBpZiAoaXNUeXBlZFRpbWVGdWxseUxlZ2FsKCkpIHsKKyAgICAgICAgICAgIGlmICghbUlzMjRIb3VyVmlldyAmJiBtVHlwZWRUaW1lcy5zaXplKCkgPD0gMykgeworICAgICAgICAgICAgICAgIG1UeXBlZFRpbWVzLmFkZChtVHlwZWRUaW1lcy5zaXplKCkgLSAxLCBLZXlFdmVudC5LRVlDT0RFXzApOworICAgICAgICAgICAgICAgIG1UeXBlZFRpbWVzLmFkZChtVHlwZWRUaW1lcy5zaXplKCkgLSAxLCBLZXlFdmVudC5LRVlDT0RFXzApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbURvbmVCdXR0b24uc2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRyYXZlcnNlIHRoZSB0cmVlIHRvIHNlZSBpZiB0aGUga2V5cyB0aGF0IGhhdmUgYmVlbiB0eXBlZCBzbyBmYXIgYXJlIGxlZ2FsIGFzIGlzLAorICAgICAqIG9yIG1heSBiZWNvbWUgbGVnYWwgYXMgbW9yZSBrZXlzIGFyZSB0eXBlZCAoZXhjbHVkaW5nIGJhY2tzcGFjZSkuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzVHlwZWRUaW1lTGVnYWxTb0ZhcigpIHsKKyAgICAgICAgTm9kZSBub2RlID0gbUxlZ2FsVGltZXNUcmVlOworICAgICAgICBmb3IgKGludCBrZXlDb2RlIDogbVR5cGVkVGltZXMpIHsKKyAgICAgICAgICAgIG5vZGUgPSBub2RlLmNhblJlYWNoKGtleUNvZGUpOworICAgICAgICAgICAgaWYgKG5vZGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpZiB0aGUgdGltZSB0aGF0IGhhcyBiZWVuIHR5cGVkIHNvIGZhciBpcyBjb21wbGV0ZWx5IGxlZ2FsLCBhcyBpcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNUeXBlZFRpbWVGdWxseUxlZ2FsKCkgeworICAgICAgICBpZiAobUlzMjRIb3VyVmlldykgeworICAgICAgICAgICAgLy8gRm9yIDI0LWhvdXIgbW9kZSwgdGhlIHRpbWUgaXMgbGVnYWwgaWYgdGhlIGhvdXJzIGFuZCBtaW51dGVzIGFyZSBlYWNoIGxlZ2FsLiBOb3RlOgorICAgICAgICAgICAgLy8gZ2V0RW50ZXJlZFRpbWUoKSB3aWxsIE9OTFkgY2FsbCBpc1R5cGVkVGltZUZ1bGx5TGVnYWwoKSB3aGVuIE5PVCBpbiAyNGhvdXIgbW9kZS4KKyAgICAgICAgICAgIGludFtdIHZhbHVlcyA9IGdldEVudGVyZWRUaW1lKG51bGwpOworICAgICAgICAgICAgcmV0dXJuICh2YWx1ZXNbMF0gPj0gMCAmJiB2YWx1ZXNbMV0gPj0gMCAmJiB2YWx1ZXNbMV0gPCA2MCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBGb3IgQU0vUE0gbW9kZSwgdGhlIHRpbWUgaXMgbGVnYWwgaWYgaXQgY29udGFpbnMgYW4gQU0gb3IgUE0sIGFzIHRob3NlIGNhbiBvbmx5IGJlCisgICAgICAgICAgICAvLyBsZWdhbGx5IGFkZGVkIGF0IHNwZWNpZmljIHRpbWVzIGJhc2VkIG9uIHRoZSB0cmVlJ3MgYWxnb3JpdGhtLgorICAgICAgICAgICAgcmV0dXJuIChtVHlwZWRUaW1lcy5jb250YWlucyhnZXRBbU9yUG1LZXlDb2RlKEFNKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgbVR5cGVkVGltZXMuY29udGFpbnMoZ2V0QW1PclBtS2V5Q29kZShQTSkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgaW50IGRlbGV0ZUxhc3RUeXBlZEtleSgpIHsKKyAgICAgICAgaW50IGRlbGV0ZWQgPSBtVHlwZWRUaW1lcy5yZW1vdmUobVR5cGVkVGltZXMuc2l6ZSgpIC0gMSk7CisgICAgICAgIGlmICghaXNUeXBlZFRpbWVGdWxseUxlZ2FsKCkpIHsKKyAgICAgICAgICAgIG1Eb25lQnV0dG9uLnNldEVuYWJsZWQoZmFsc2UpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkZWxldGVkOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBvdXQgb2Yga2V5Ym9hcmQgbW9kZS4gSWYgdGhlcmUgaXMgbm90aGluZyBpbiB0eXBlZFRpbWVzLCByZXZlcnQgdG8gVGltZVBpY2tlcidzIHRpbWUuCisgICAgICogQHBhcmFtIHVwZGF0ZURpc3BsYXlzIElmIHRydWUsIHVwZGF0ZSB0aGUgZGlzcGxheXMgd2l0aCB0aGUgcmVsZXZhbnQgdGltZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZmluaXNoS2JNb2RlKGJvb2xlYW4gdXBkYXRlRGlzcGxheXMpIHsKKyAgICAgICAgbUluS2JNb2RlID0gZmFsc2U7CisgICAgICAgIGlmICghbVR5cGVkVGltZXMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpbnQgdmFsdWVzW10gPSBnZXRFbnRlcmVkVGltZShudWxsKTsKKyAgICAgICAgICAgIG1SYWRpYWxUaW1lUGlja2VyVmlldy5zZXRDdXJyZW50SG91cih2YWx1ZXNbMF0pOworICAgICAgICAgICAgbVJhZGlhbFRpbWVQaWNrZXJWaWV3LnNldEN1cnJlbnRNaW51dGUodmFsdWVzWzFdKTsKKyAgICAgICAgICAgIGlmICghbUlzMjRIb3VyVmlldykgeworICAgICAgICAgICAgICAgIG1SYWRpYWxUaW1lUGlja2VyVmlldy5zZXRBbU9yUG0odmFsdWVzWzJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1UeXBlZFRpbWVzLmNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHVwZGF0ZURpc3BsYXlzKSB7CisgICAgICAgICAgICB1cGRhdGVEaXNwbGF5KGZhbHNlKTsKKyAgICAgICAgICAgIG1SYWRpYWxUaW1lUGlja2VyVmlldy5zZXRJbnB1dEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVcGRhdGUgdGhlIGhvdXJzLCBtaW51dGVzLCBhbmQgQU0vUE0gZGlzcGxheXMgd2l0aCB0aGUgdHlwZWQgdGltZXMuIElmIHRoZSB0eXBlZFRpbWVzIGlzCisgICAgICogZW1wdHksIGVpdGhlciBzaG93IGFuIGVtcHR5IGRpc3BsYXkgKGZpbGxlZCB3aXRoIHRoZSBwbGFjZWhvbGRlciB0ZXh0KSwgb3IgdXBkYXRlIGZyb20gdGhlCisgICAgICogdGltZXBpY2tlcidzIHZhbHVlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhbGxvd0VtcHR5RGlzcGxheSBpZiB0cnVlLCB0aGVuIGlmIHRoZSB0eXBlZFRpbWVzIGlzIGVtcHR5LCB1c2UgdGhlIHBsYWNlaG9sZGVyIHRleHQuCisgICAgICogT3RoZXJ3aXNlLCByZXZlcnQgdG8gdGhlIHRpbWVwaWNrZXIncyB2YWx1ZXMuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZURpc3BsYXkoYm9vbGVhbiBhbGxvd0VtcHR5RGlzcGxheSkgeworICAgICAgICBpZiAoIWFsbG93RW1wdHlEaXNwbGF5ICYmIG1UeXBlZFRpbWVzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgaW50IGhvdXIgPSBtUmFkaWFsVGltZVBpY2tlclZpZXcuZ2V0Q3VycmVudEhvdXIoKTsKKyAgICAgICAgICAgIGludCBtaW51dGUgPSBtUmFkaWFsVGltZVBpY2tlclZpZXcuZ2V0Q3VycmVudE1pbnV0ZSgpOworICAgICAgICAgICAgdXBkYXRlSGVhZGVySG91cihob3VyLCB0cnVlKTsKKyAgICAgICAgICAgIHVwZGF0ZUhlYWRlck1pbnV0ZShtaW51dGUpOworICAgICAgICAgICAgaWYgKCFtSXMyNEhvdXJWaWV3KSB7CisgICAgICAgICAgICAgICAgdXBkYXRlQW1QbURpc3BsYXkoaG91ciA8IDEyID8gQU0gOiBQTSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXRDdXJyZW50SXRlbVNob3dpbmcobVJhZGlhbFRpbWVQaWNrZXJWaWV3LmdldEN1cnJlbnRJdGVtU2hvd2luZygpLCB0cnVlLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgIG1Eb25lQnV0dG9uLnNldEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBib29sZWFuW10gZW50ZXJlZFplcm9zID0ge2ZhbHNlLCBmYWxzZX07CisgICAgICAgICAgICBpbnRbXSB2YWx1ZXMgPSBnZXRFbnRlcmVkVGltZShlbnRlcmVkWmVyb3MpOworICAgICAgICAgICAgU3RyaW5nIGhvdXJGb3JtYXQgPSBlbnRlcmVkWmVyb3NbMF0gPyAiJTAyZCIgOiAiJTJkIjsKKyAgICAgICAgICAgIFN0cmluZyBtaW51dGVGb3JtYXQgPSAoZW50ZXJlZFplcm9zWzFdKSA/ICIlMDJkIiA6ICIlMmQiOworICAgICAgICAgICAgU3RyaW5nIGhvdXJTdHIgPSAodmFsdWVzWzBdID09IC0xKSA/IG1Eb3VibGVQbGFjZWhvbGRlclRleHQgOgorICAgICAgICAgICAgICAgICAgICBTdHJpbmcuZm9ybWF0KGhvdXJGb3JtYXQsIHZhbHVlc1swXSkucmVwbGFjZSgnICcsIG1QbGFjZWhvbGRlclRleHQpOworICAgICAgICAgICAgU3RyaW5nIG1pbnV0ZVN0ciA9ICh2YWx1ZXNbMV0gPT0gLTEpID8gbURvdWJsZVBsYWNlaG9sZGVyVGV4dCA6CisgICAgICAgICAgICAgICAgICAgIFN0cmluZy5mb3JtYXQobWludXRlRm9ybWF0LCB2YWx1ZXNbMV0pLnJlcGxhY2UoJyAnLCBtUGxhY2Vob2xkZXJUZXh0KTsKKyAgICAgICAgICAgIG1Ib3VyVmlldy5zZXRUZXh0KGhvdXJTdHIpOworICAgICAgICAgICAgbUhvdXJWaWV3LnNldFRleHRDb2xvcihtSGVhZGVyVW5TZWxlY3RlZENvbG9yKTsKKyAgICAgICAgICAgIG1NaW51dGVWaWV3LnNldFRleHQobWludXRlU3RyKTsKKyAgICAgICAgICAgIG1NaW51dGVWaWV3LnNldFRleHRDb2xvcihtSGVhZGVyVW5TZWxlY3RlZENvbG9yKTsKKyAgICAgICAgICAgIGlmICghbUlzMjRIb3VyVmlldykgeworICAgICAgICAgICAgICAgIHVwZGF0ZUFtUG1EaXNwbGF5KHZhbHVlc1syXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBnZXRWYWxGcm9tS2V5Q29kZShpbnQga2V5Q29kZSkgeworICAgICAgICBzd2l0Y2ggKGtleUNvZGUpIHsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuS0VZQ09ERV8wOgorICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5LRVlDT0RFXzE6CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LktFWUNPREVfMjoKKyAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuS0VZQ09ERV8zOgorICAgICAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5LRVlDT0RFXzQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIDQ7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LktFWUNPREVfNToKKyAgICAgICAgICAgICAgICByZXR1cm4gNTsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuS0VZQ09ERV82OgorICAgICAgICAgICAgICAgIHJldHVybiA2OworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5LRVlDT0RFXzc6CisgICAgICAgICAgICAgICAgcmV0dXJuIDc7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LktFWUNPREVfODoKKyAgICAgICAgICAgICAgICByZXR1cm4gODsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuS0VZQ09ERV85OgorICAgICAgICAgICAgICAgIHJldHVybiA5OworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGN1cnJlbnRseS1lbnRlcmVkIHRpbWUsIGFzIGludGVnZXIgdmFsdWVzIG9mIHRoZSBob3VycyBhbmQgbWludXRlcyB0eXBlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlbnRlcmVkWmVyb3MgQSBzaXplLTIgYm9vbGVhbiBhcnJheSwgd2hpY2ggdGhlIGNhbGxlciBzaG91bGQgaW5pdGlhbGl6ZSwgYW5kIHdoaWNoCisgICAgICogbWF5IHRoZW4gYmUgdXNlZCBmb3IgdGhlIGNhbGxlciB0byBrbm93IHdoZXRoZXIgemVyb3MgaGFkIGJlZW4gZXhwbGljaXRseSBlbnRlcmVkIGFzIGVpdGhlcgorICAgICAqIGhvdXJzIG9mIG1pbnV0ZXMuIFRoaXMgaXMgaGVscGZ1bCBmb3IgZGVjaWRpbmcgd2hldGhlciB0byBzaG93IHRoZSBkYXNoZXMsIG9yIGFjdHVhbCAwJ3MuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIEEgc2l6ZS0zIGludCBhcnJheS4gVGhlIGZpcnN0IHZhbHVlIHdpbGwgYmUgdGhlIGhvdXJzLCB0aGUgc2Vjb25kIHZhbHVlIHdpbGwgYmUgdGhlCisgICAgICogbWludXRlcywgYW5kIHRoZSB0aGlyZCB3aWxsIGJlIGVpdGhlciBBTSBvciBQTS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludFtdIGdldEVudGVyZWRUaW1lKGJvb2xlYW5bXSBlbnRlcmVkWmVyb3MpIHsKKyAgICAgICAgaW50IGFtT3JQbSA9IC0xOworICAgICAgICBpbnQgc3RhcnRJbmRleCA9IDE7CisgICAgICAgIGlmICghbUlzMjRIb3VyVmlldyAmJiBpc1R5cGVkVGltZUZ1bGx5TGVnYWwoKSkgeworICAgICAgICAgICAgaW50IGtleUNvZGUgPSBtVHlwZWRUaW1lcy5nZXQobVR5cGVkVGltZXMuc2l6ZSgpIC0gMSk7CisgICAgICAgICAgICBpZiAoa2V5Q29kZSA9PSBnZXRBbU9yUG1LZXlDb2RlKEFNKSkgeworICAgICAgICAgICAgICAgIGFtT3JQbSA9IEFNOworICAgICAgICAgICAgfSBlbHNlIGlmIChrZXlDb2RlID09IGdldEFtT3JQbUtleUNvZGUoUE0pKXsKKyAgICAgICAgICAgICAgICBhbU9yUG0gPSBQTTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXJ0SW5kZXggPSAyOworICAgICAgICB9CisgICAgICAgIGludCBtaW51dGUgPSAtMTsKKyAgICAgICAgaW50IGhvdXIgPSAtMTsKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0SW5kZXg7IGkgPD0gbVR5cGVkVGltZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGludCB2YWwgPSBnZXRWYWxGcm9tS2V5Q29kZShtVHlwZWRUaW1lcy5nZXQobVR5cGVkVGltZXMuc2l6ZSgpIC0gaSkpOworICAgICAgICAgICAgaWYgKGkgPT0gc3RhcnRJbmRleCkgeworICAgICAgICAgICAgICAgIG1pbnV0ZSA9IHZhbDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PSBzdGFydEluZGV4KzEpIHsKKyAgICAgICAgICAgICAgICBtaW51dGUgKz0gMTAgKiB2YWw7CisgICAgICAgICAgICAgICAgaWYgKGVudGVyZWRaZXJvcyAhPSBudWxsICYmIHZhbCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGVudGVyZWRaZXJvc1sxXSA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChpID09IHN0YXJ0SW5kZXgrMikgeworICAgICAgICAgICAgICAgIGhvdXIgPSB2YWw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPT0gc3RhcnRJbmRleCszKSB7CisgICAgICAgICAgICAgICAgaG91ciArPSAxMCAqIHZhbDsKKyAgICAgICAgICAgICAgICBpZiAoZW50ZXJlZFplcm9zICE9IG51bGwgJiYgdmFsID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZW50ZXJlZFplcm9zWzBdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnRbXSByZXQgPSB7aG91ciwgbWludXRlLCBhbU9yUG19OworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUga2V5Y29kZSB2YWx1ZSBmb3IgQU0gYW5kIFBNIGluIHRoZSBjdXJyZW50IGxhbmd1YWdlLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldEFtT3JQbUtleUNvZGUoaW50IGFtT3JQbSkgeworICAgICAgICAvLyBDYWNoZSB0aGUgY29kZXMuCisgICAgICAgIGlmIChtQW1LZXlDb2RlID09IC0xIHx8IG1QbUtleUNvZGUgPT0gLTEpIHsKKyAgICAgICAgICAgIC8vIEZpbmQgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgQU0vUE0gdGV4dCB0aGF0IGlzIHVuaXF1ZS4KKyAgICAgICAgICAgIEtleUNoYXJhY3Rlck1hcCBrY20gPSBLZXlDaGFyYWN0ZXJNYXAubG9hZChLZXlDaGFyYWN0ZXJNYXAuVklSVFVBTF9LRVlCT0FSRCk7CisgICAgICAgICAgICBjaGFyIGFtQ2hhcjsKKyAgICAgICAgICAgIGNoYXIgcG1DaGFyOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNYXRoLm1heChtQW1UZXh0Lmxlbmd0aCgpLCBtUG1UZXh0Lmxlbmd0aCgpKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgYW1DaGFyID0gbUFtVGV4dC50b0xvd2VyQ2FzZShtQ3VycmVudExvY2FsZSkuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIHBtQ2hhciA9IG1QbVRleHQudG9Mb3dlckNhc2UobUN1cnJlbnRMb2NhbGUpLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBpZiAoYW1DaGFyICE9IHBtQ2hhcikgeworICAgICAgICAgICAgICAgICAgICBLZXlFdmVudFtdIGV2ZW50cyA9IGtjbS5nZXRFdmVudHMobmV3IGNoYXJbXXthbUNoYXIsIHBtQ2hhcn0pOworICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgNCBldmVudHM6IGEgZG93biBhbmQgdXAgZm9yIGJvdGggQU0gYW5kIFBNLgorICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnRzICE9IG51bGwgJiYgZXZlbnRzLmxlbmd0aCA9PSA0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtQW1LZXlDb2RlID0gZXZlbnRzWzBdLmdldEtleUNvZGUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1QbUtleUNvZGUgPSBldmVudHNbMl0uZ2V0S2V5Q29kZSgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiVW5hYmxlIHRvIGZpbmQga2V5Y29kZXMgZm9yIEFNIGFuZCBQTS4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFtT3JQbSA9PSBBTSkgeworICAgICAgICAgICAgcmV0dXJuIG1BbUtleUNvZGU7CisgICAgICAgIH0gZWxzZSBpZiAoYW1PclBtID09IFBNKSB7CisgICAgICAgICAgICByZXR1cm4gbVBtS2V5Q29kZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB0cmVlIGZvciBkZWNpZGluZyB3aGF0IGtleXMgY2FuIGxlZ2FsbHkgYmUgdHlwZWQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGdlbmVyYXRlTGVnYWxUaW1lc1RyZWUoKSB7CisgICAgICAgIC8vIENyZWF0ZSBhIHF1aWNrIGNhY2hlIG9mIG51bWJlcnMgdG8gdGhlaXIga2V5Y29kZXMuCisgICAgICAgIGZpbmFsIGludCBrMCA9IEtleUV2ZW50LktFWUNPREVfMDsKKyAgICAgICAgZmluYWwgaW50IGsxID0gS2V5RXZlbnQuS0VZQ09ERV8xOworICAgICAgICBmaW5hbCBpbnQgazIgPSBLZXlFdmVudC5LRVlDT0RFXzI7CisgICAgICAgIGZpbmFsIGludCBrMyA9IEtleUV2ZW50LktFWUNPREVfMzsKKyAgICAgICAgZmluYWwgaW50IGs0ID0gS2V5RXZlbnQuS0VZQ09ERV80OworICAgICAgICBmaW5hbCBpbnQgazUgPSBLZXlFdmVudC5LRVlDT0RFXzU7CisgICAgICAgIGZpbmFsIGludCBrNiA9IEtleUV2ZW50LktFWUNPREVfNjsKKyAgICAgICAgZmluYWwgaW50IGs3ID0gS2V5RXZlbnQuS0VZQ09ERV83OworICAgICAgICBmaW5hbCBpbnQgazggPSBLZXlFdmVudC5LRVlDT0RFXzg7CisgICAgICAgIGZpbmFsIGludCBrOSA9IEtleUV2ZW50LktFWUNPREVfOTsKKworICAgICAgICAvLyBUaGUgcm9vdCBvZiB0aGUgdHJlZSBkb2Vzbid0IGNvbnRhaW4gYW55IG51bWJlcnMuCisgICAgICAgIG1MZWdhbFRpbWVzVHJlZSA9IG5ldyBOb2RlKCk7CisgICAgICAgIGlmIChtSXMyNEhvdXJWaWV3KSB7CisgICAgICAgICAgICAvLyBXZSdsbCBiZSByZS11c2luZyB0aGVzZSBub2Rlcywgc28gd2UnbGwgc2F2ZSB0aGVtLgorICAgICAgICAgICAgTm9kZSBtaW51dGVGaXJzdERpZ2l0ID0gbmV3IE5vZGUoazAsIGsxLCBrMiwgazMsIGs0LCBrNSk7CisgICAgICAgICAgICBOb2RlIG1pbnV0ZVNlY29uZERpZ2l0ID0gbmV3IE5vZGUoazAsIGsxLCBrMiwgazMsIGs0LCBrNSwgazYsIGs3LCBrOCwgazkpOworICAgICAgICAgICAgLy8gVGhlIGZpcnN0IGRpZ2l0IG11c3QgYmUgZm9sbG93ZWQgYnkgdGhlIHNlY29uZCBkaWdpdC4KKyAgICAgICAgICAgIG1pbnV0ZUZpcnN0RGlnaXQuYWRkQ2hpbGQobWludXRlU2Vjb25kRGlnaXQpOworCisgICAgICAgICAgICAvLyBUaGUgZmlyc3QgZGlnaXQgbWF5IGJlIDAtMS4KKyAgICAgICAgICAgIE5vZGUgZmlyc3REaWdpdCA9IG5ldyBOb2RlKGswLCBrMSk7CisgICAgICAgICAgICBtTGVnYWxUaW1lc1RyZWUuYWRkQ2hpbGQoZmlyc3REaWdpdCk7CisKKyAgICAgICAgICAgIC8vIFdoZW4gdGhlIGZpcnN0IGRpZ2l0IGlzIDAtMSwgdGhlIHNlY29uZCBkaWdpdCBtYXkgYmUgMC01LgorICAgICAgICAgICAgTm9kZSBzZWNvbmREaWdpdCA9IG5ldyBOb2RlKGswLCBrMSwgazIsIGszLCBrNCwgazUpOworICAgICAgICAgICAgZmlyc3REaWdpdC5hZGRDaGlsZChzZWNvbmREaWdpdCk7CisgICAgICAgICAgICAvLyBXZSBtYXkgbm93IGJlIGZvbGxvd2VkIGJ5IHRoZSBmaXJzdCBtaW51dGUgZGlnaXQuIEUuZy4gMDA6MDksIDE1OjU4LgorICAgICAgICAgICAgc2Vjb25kRGlnaXQuYWRkQ2hpbGQobWludXRlRmlyc3REaWdpdCk7CisKKyAgICAgICAgICAgIC8vIFdoZW4gdGhlIGZpcnN0IGRpZ2l0IGlzIDAtMSwgYW5kIHRoZSBzZWNvbmQgZGlnaXQgaXMgMC01LCB0aGUgdGhpcmQgZGlnaXQgbWF5IGJlIDYtOS4KKyAgICAgICAgICAgIE5vZGUgdGhpcmREaWdpdCA9IG5ldyBOb2RlKGs2LCBrNywgazgsIGs5KTsKKyAgICAgICAgICAgIC8vIFRoZSB0aW1lIG11c3Qgbm93IGJlIGZpbmlzaGVkLiBFLmcuIDA6NTUsIDE6MDguCisgICAgICAgICAgICBzZWNvbmREaWdpdC5hZGRDaGlsZCh0aGlyZERpZ2l0KTsKKworICAgICAgICAgICAgLy8gV2hlbiB0aGUgZmlyc3QgZGlnaXQgaXMgMC0xLCB0aGUgc2Vjb25kIGRpZ2l0IG1heSBiZSA2LTkuCisgICAgICAgICAgICBzZWNvbmREaWdpdCA9IG5ldyBOb2RlKGs2LCBrNywgazgsIGs5KTsKKyAgICAgICAgICAgIGZpcnN0RGlnaXQuYWRkQ2hpbGQoc2Vjb25kRGlnaXQpOworICAgICAgICAgICAgLy8gV2UgbXVzdCBub3cgYmUgZm9sbG93ZWQgYnkgdGhlIGZpcnN0IG1pbnV0ZSBkaWdpdC4gRS5nLiAwNjo1MCwgMTg6MjAuCisgICAgICAgICAgICBzZWNvbmREaWdpdC5hZGRDaGlsZChtaW51dGVGaXJzdERpZ2l0KTsKKworICAgICAgICAgICAgLy8gVGhlIGZpcnN0IGRpZ2l0IG1heSBiZSAyLgorICAgICAgICAgICAgZmlyc3REaWdpdCA9IG5ldyBOb2RlKGsyKTsKKyAgICAgICAgICAgIG1MZWdhbFRpbWVzVHJlZS5hZGRDaGlsZChmaXJzdERpZ2l0KTsKKworICAgICAgICAgICAgLy8gV2hlbiB0aGUgZmlyc3QgZGlnaXQgaXMgMiwgdGhlIHNlY29uZCBkaWdpdCBtYXkgYmUgMC0zLgorICAgICAgICAgICAgc2Vjb25kRGlnaXQgPSBuZXcgTm9kZShrMCwgazEsIGsyLCBrMyk7CisgICAgICAgICAgICBmaXJzdERpZ2l0LmFkZENoaWxkKHNlY29uZERpZ2l0KTsKKyAgICAgICAgICAgIC8vIFdlIG11c3Qgbm93IGJlIGZvbGxvd2VkIGJ5IHRoZSBmaXJzdCBtaW51dGUgZGlnaXQuIEUuZy4gMjA6NTAsIDIzOjA5LgorICAgICAgICAgICAgc2Vjb25kRGlnaXQuYWRkQ2hpbGQobWludXRlRmlyc3REaWdpdCk7CisKKyAgICAgICAgICAgIC8vIFdoZW4gdGhlIGZpcnN0IGRpZ2l0IGlzIDIsIHRoZSBzZWNvbmQgZGlnaXQgbWF5IGJlIDQtNS4KKyAgICAgICAgICAgIHNlY29uZERpZ2l0ID0gbmV3IE5vZGUoazQsIGs1KTsKKyAgICAgICAgICAgIGZpcnN0RGlnaXQuYWRkQ2hpbGQoc2Vjb25kRGlnaXQpOworICAgICAgICAgICAgLy8gV2UgbXVzdCBub3cgYmUgZm9sbG93ZCBieSB0aGUgbGFzdCBtaW51dGUgZGlnaXQuIEUuZy4gMjo0MCwgMjo1My4KKyAgICAgICAgICAgIHNlY29uZERpZ2l0LmFkZENoaWxkKG1pbnV0ZVNlY29uZERpZ2l0KTsKKworICAgICAgICAgICAgLy8gVGhlIGZpcnN0IGRpZ2l0IG1heSBiZSAzLTkuCisgICAgICAgICAgICBmaXJzdERpZ2l0ID0gbmV3IE5vZGUoazMsIGs0LCBrNSwgazYsIGs3LCBrOCwgazkpOworICAgICAgICAgICAgbUxlZ2FsVGltZXNUcmVlLmFkZENoaWxkKGZpcnN0RGlnaXQpOworICAgICAgICAgICAgLy8gV2UgbXVzdCBub3cgYmUgZm9sbG93ZWQgYnkgdGhlIGZpcnN0IG1pbnV0ZSBkaWdpdC4gRS5nLiAzOjU3LCA4OjEyLgorICAgICAgICAgICAgZmlyc3REaWdpdC5hZGRDaGlsZChtaW51dGVGaXJzdERpZ2l0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFdlJ2xsIG5lZWQgdG8gdXNlIHRoZSBBTS9QTSBub2RlIGEgbG90LgorICAgICAgICAgICAgLy8gU2V0IHVwIEFNIGFuZCBQTSB0byByZXNwb25kIHRvICJhIiBhbmQgInAiLgorICAgICAgICAgICAgTm9kZSBhbXBtID0gbmV3IE5vZGUoZ2V0QW1PclBtS2V5Q29kZShBTSksIGdldEFtT3JQbUtleUNvZGUoUE0pKTsKKworICAgICAgICAgICAgLy8gVGhlIGZpcnN0IGhvdXIgZGlnaXQgbWF5IGJlIDEuCisgICAgICAgICAgICBOb2RlIGZpcnN0RGlnaXQgPSBuZXcgTm9kZShrMSk7CisgICAgICAgICAgICBtTGVnYWxUaW1lc1RyZWUuYWRkQ2hpbGQoZmlyc3REaWdpdCk7CisgICAgICAgICAgICAvLyBXZSdsbCBhbGxvdyBxdWljayBpbnB1dCBvZiBvbi10aGUtaG91ciB0aW1lcy4gRS5nLiAxcG0uCisgICAgICAgICAgICBmaXJzdERpZ2l0LmFkZENoaWxkKGFtcG0pOworCisgICAgICAgICAgICAvLyBXaGVuIHRoZSBmaXJzdCBkaWdpdCBpcyAxLCB0aGUgc2Vjb25kIGRpZ2l0IG1heSBiZSAwLTIuCisgICAgICAgICAgICBOb2RlIHNlY29uZERpZ2l0ID0gbmV3IE5vZGUoazAsIGsxLCBrMik7CisgICAgICAgICAgICBmaXJzdERpZ2l0LmFkZENoaWxkKHNlY29uZERpZ2l0KTsKKyAgICAgICAgICAgIC8vIEFsc28gZm9yIHF1aWNrIGlucHV0IG9mIG9uLXRoZS1ob3VyIHRpbWVzLiBFLmcuIDEwcG0sIDEyYW0uCisgICAgICAgICAgICBzZWNvbmREaWdpdC5hZGRDaGlsZChhbXBtKTsKKworICAgICAgICAgICAgLy8gV2hlbiB0aGUgZmlyc3QgZGlnaXQgaXMgMSwgYW5kIHRoZSBzZWNvbmQgZGlnaXQgaXMgMC0yLCB0aGUgdGhpcmQgZGlnaXQgbWF5IGJlIDAtNS4KKyAgICAgICAgICAgIE5vZGUgdGhpcmREaWdpdCA9IG5ldyBOb2RlKGswLCBrMSwgazIsIGszLCBrNCwgazUpOworICAgICAgICAgICAgc2Vjb25kRGlnaXQuYWRkQ2hpbGQodGhpcmREaWdpdCk7CisgICAgICAgICAgICAvLyBUaGUgdGltZSBtYXkgYmUgZmluaXNoZWQgbm93LiBFLmcuIDE6MDJwbSwgMToyNWFtLgorICAgICAgICAgICAgdGhpcmREaWdpdC5hZGRDaGlsZChhbXBtKTsKKworICAgICAgICAgICAgLy8gV2hlbiB0aGUgZmlyc3QgZGlnaXQgaXMgMSwgdGhlIHNlY29uZCBkaWdpdCBpcyAwLTIsIGFuZCB0aGUgdGhpcmQgZGlnaXQgaXMgMC01LAorICAgICAgICAgICAgLy8gdGhlIGZvdXJ0aCBkaWdpdCBtYXkgYmUgMC05LgorICAgICAgICAgICAgTm9kZSBmb3VydGhEaWdpdCA9IG5ldyBOb2RlKGswLCBrMSwgazIsIGszLCBrNCwgazUsIGs2LCBrNywgazgsIGs5KTsKKyAgICAgICAgICAgIHRoaXJkRGlnaXQuYWRkQ2hpbGQoZm91cnRoRGlnaXQpOworICAgICAgICAgICAgLy8gVGhlIHRpbWUgbXVzdCBiZSBmaW5pc2hlZCBub3cuIEUuZy4gMTA6NDlhbSwgMTI6NDBwbS4KKyAgICAgICAgICAgIGZvdXJ0aERpZ2l0LmFkZENoaWxkKGFtcG0pOworCisgICAgICAgICAgICAvLyBXaGVuIHRoZSBmaXJzdCBkaWdpdCBpcyAxLCBhbmQgdGhlIHNlY29uZCBkaWdpdCBpcyAwLTIsIHRoZSB0aGlyZCBkaWdpdCBtYXkgYmUgNi05LgorICAgICAgICAgICAgdGhpcmREaWdpdCA9IG5ldyBOb2RlKGs2LCBrNywgazgsIGs5KTsKKyAgICAgICAgICAgIHNlY29uZERpZ2l0LmFkZENoaWxkKHRoaXJkRGlnaXQpOworICAgICAgICAgICAgLy8gVGhlIHRpbWUgbXVzdCBiZSBmaW5pc2hlZCBub3cuIEUuZy4gMTowOGFtLCAxOjI2cG0uCisgICAgICAgICAgICB0aGlyZERpZ2l0LmFkZENoaWxkKGFtcG0pOworCisgICAgICAgICAgICAvLyBXaGVuIHRoZSBmaXJzdCBkaWdpdCBpcyAxLCB0aGUgc2Vjb25kIGRpZ2l0IG1heSBiZSAzLTUuCisgICAgICAgICAgICBzZWNvbmREaWdpdCA9IG5ldyBOb2RlKGszLCBrNCwgazUpOworICAgICAgICAgICAgZmlyc3REaWdpdC5hZGRDaGlsZChzZWNvbmREaWdpdCk7CisKKyAgICAgICAgICAgIC8vIFdoZW4gdGhlIGZpcnN0IGRpZ2l0IGlzIDEsIGFuZCB0aGUgc2Vjb25kIGRpZ2l0IGlzIDMtNSwgdGhlIHRoaXJkIGRpZ2l0IG1heSBiZSAwLTkuCisgICAgICAgICAgICB0aGlyZERpZ2l0ID0gbmV3IE5vZGUoazAsIGsxLCBrMiwgazMsIGs0LCBrNSwgazYsIGs3LCBrOCwgazkpOworICAgICAgICAgICAgc2Vjb25kRGlnaXQuYWRkQ2hpbGQodGhpcmREaWdpdCk7CisgICAgICAgICAgICAvLyBUaGUgdGltZSBtdXN0IGJlIGZpbmlzaGVkIG5vdy4gRS5nLiAxOjM5YW0sIDE6NTBwbS4KKyAgICAgICAgICAgIHRoaXJkRGlnaXQuYWRkQ2hpbGQoYW1wbSk7CisKKyAgICAgICAgICAgIC8vIFRoZSBob3VyIGRpZ2l0IG1heSBiZSAyLTkuCisgICAgICAgICAgICBmaXJzdERpZ2l0ID0gbmV3IE5vZGUoazIsIGszLCBrNCwgazUsIGs2LCBrNywgazgsIGs5KTsKKyAgICAgICAgICAgIG1MZWdhbFRpbWVzVHJlZS5hZGRDaGlsZChmaXJzdERpZ2l0KTsKKyAgICAgICAgICAgIC8vIFdlJ2xsIGFsbG93IHF1aWNrIGlucHV0IG9mIG9uLXRoZS1ob3VyLXRpbWVzLiBFLmcuIDJhbSwgNXBtLgorICAgICAgICAgICAgZmlyc3REaWdpdC5hZGRDaGlsZChhbXBtKTsKKworICAgICAgICAgICAgLy8gV2hlbiB0aGUgZmlyc3QgZGlnaXQgaXMgMi05LCB0aGUgc2Vjb25kIGRpZ2l0IG1heSBiZSAwLTUuCisgICAgICAgICAgICBzZWNvbmREaWdpdCA9IG5ldyBOb2RlKGswLCBrMSwgazIsIGszLCBrNCwgazUpOworICAgICAgICAgICAgZmlyc3REaWdpdC5hZGRDaGlsZChzZWNvbmREaWdpdCk7CisKKyAgICAgICAgICAgIC8vIFdoZW4gdGhlIGZpcnN0IGRpZ2l0IGlzIDItOSwgYW5kIHRoZSBzZWNvbmQgZGlnaXQgaXMgMC01LCB0aGUgdGhpcmQgZGlnaXQgbWF5IGJlIDAtOS4KKyAgICAgICAgICAgIHRoaXJkRGlnaXQgPSBuZXcgTm9kZShrMCwgazEsIGsyLCBrMywgazQsIGs1LCBrNiwgazcsIGs4LCBrOSk7CisgICAgICAgICAgICBzZWNvbmREaWdpdC5hZGRDaGlsZCh0aGlyZERpZ2l0KTsKKyAgICAgICAgICAgIC8vIFRoZSB0aW1lIG11c3QgYmUgZmluaXNoZWQgbm93LiBFLmcuIDI6NTdhbSwgOTozMHBtLgorICAgICAgICAgICAgdGhpcmREaWdpdC5hZGRDaGlsZChhbXBtKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNpbXBsZSBub2RlIGNsYXNzIHRvIGJlIHVzZWQgZm9yIHRyYXZlcnNhbCB0byBjaGVjayBmb3IgbGVnYWwgdGltZXMuCisgICAgICogbUxlZ2FsS2V5cyByZXByZXNlbnRzIHRoZSBrZXlzIHRoYXQgY2FuIGJlIHR5cGVkIHRvIGdldCB0byB0aGUgbm9kZS4KKyAgICAgKiBtQ2hpbGRyZW4gYXJlIHRoZSBjaGlsZHJlbiB0aGF0IGNhbiBiZSByZWFjaGVkIGZyb20gdGhpcyBub2RlLgorICAgICAqLworICAgIHByaXZhdGUgY2xhc3MgTm9kZSB7CisgICAgICAgIHByaXZhdGUgaW50W10gbUxlZ2FsS2V5czsKKyAgICAgICAgcHJpdmF0ZSBBcnJheUxpc3Q8Tm9kZT4gbUNoaWxkcmVuOworCisgICAgICAgIHB1YmxpYyBOb2RlKGludC4uLiBsZWdhbEtleXMpIHsKKyAgICAgICAgICAgIG1MZWdhbEtleXMgPSBsZWdhbEtleXM7CisgICAgICAgICAgICBtQ2hpbGRyZW4gPSBuZXcgQXJyYXlMaXN0PE5vZGU+KCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBhZGRDaGlsZChOb2RlIGNoaWxkKSB7CisgICAgICAgICAgICBtQ2hpbGRyZW4uYWRkKGNoaWxkKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zS2V5KGludCBrZXkpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbUxlZ2FsS2V5cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChtTGVnYWxLZXlzW2ldID09IGtleSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgTm9kZSBjYW5SZWFjaChpbnQga2V5KSB7CisgICAgICAgICAgICBpZiAobUNoaWxkcmVuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoTm9kZSBjaGlsZCA6IG1DaGlsZHJlbikgeworICAgICAgICAgICAgICAgIGlmIChjaGlsZC5jb250YWluc0tleShrZXkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgY2xhc3MgS2V5Ym9hcmRMaXN0ZW5lciBpbXBsZW1lbnRzIFZpZXcuT25LZXlMaXN0ZW5lciB7CisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBvbktleShWaWV3IHYsIGludCBrZXlDb2RlLCBLZXlFdmVudCBldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50LmdldEFjdGlvbigpID09IEtleUV2ZW50LkFDVElPTl9VUCkgeworICAgICAgICAgICAgICAgIHJldHVybiBwcm9jZXNzS2V5VXAoa2V5Q29kZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW5kZXIgYW4gYW5pbWF0b3IgdG8gcHVsc2F0ZSBhIHZpZXcgaW4gcGxhY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGFiZWxUb0FuaW1hdGUgdGhlIHZpZXcgdG8gcHVsc2F0ZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBhbmltYXRvciBvYmplY3QuIFVzZSAuc3RhcnQoKSB0byBiZWdpbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RBbmltYXRvciBnZXRQdWxzZUFuaW1hdG9yKFZpZXcgbGFiZWxUb0FuaW1hdGUsIGZsb2F0IGRlY3JlYXNlUmF0aW8sCisgICAgICAgICAgICBmbG9hdCBpbmNyZWFzZVJhdGlvKSB7CisgICAgICAgIGZpbmFsIEtleWZyYW1lIGswID0gS2V5ZnJhbWUub2ZGbG9hdCgwZiwgMWYpOworICAgICAgICBmaW5hbCBLZXlmcmFtZSBrMSA9IEtleWZyYW1lLm9mRmxvYXQoMC4yNzVmLCBkZWNyZWFzZVJhdGlvKTsKKyAgICAgICAgZmluYWwgS2V5ZnJhbWUgazIgPSBLZXlmcmFtZS5vZkZsb2F0KDAuNjlmLCBpbmNyZWFzZVJhdGlvKTsKKyAgICAgICAgZmluYWwgS2V5ZnJhbWUgazMgPSBLZXlmcmFtZS5vZkZsb2F0KDFmLCAxZik7CisKKyAgICAgICAgUHJvcGVydHlWYWx1ZXNIb2xkZXIgc2NhbGVYID0gUHJvcGVydHlWYWx1ZXNIb2xkZXIub2ZLZXlmcmFtZSgic2NhbGVYIiwgazAsIGsxLCBrMiwgazMpOworICAgICAgICBQcm9wZXJ0eVZhbHVlc0hvbGRlciBzY2FsZVkgPSBQcm9wZXJ0eVZhbHVlc0hvbGRlci5vZktleWZyYW1lKCJzY2FsZVkiLCBrMCwgazEsIGsyLCBrMyk7CisgICAgICAgIE9iamVjdEFuaW1hdG9yIHB1bHNlQW5pbWF0b3IgPQorICAgICAgICAgICAgICAgIE9iamVjdEFuaW1hdG9yLm9mUHJvcGVydHlWYWx1ZXNIb2xkZXIobGFiZWxUb0FuaW1hdGUsIHNjYWxlWCwgc2NhbGVZKTsKKyAgICAgICAgcHVsc2VBbmltYXRvci5zZXREdXJhdGlvbihQVUxTRV9BTklNQVRPUl9EVVJBVElPTik7CisKKyAgICAgICAgcmV0dXJuIHB1bHNlQW5pbWF0b3I7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1RvYXN0LmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVG9hc3QuamF2YQppbmRleCBlMzhkZmE3Li4zNzFiMmYxIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVG9hc3QuamF2YQorKysgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVG9hc3QuamF2YQpAQCAtMTYsNiArMTYsNyBAQAogCiBwYWNrYWdlIGFuZHJvaWQud2lkZ2V0OwogCitpbXBvcnQgYW5kcm9pZC5hbm5vdGF0aW9uLkludERlZjsKIGltcG9ydCBhbmRyb2lkLmFwcC5JTm90aWZpY2F0aW9uTWFuYWdlcjsKIGltcG9ydCBhbmRyb2lkLmFwcC5JVHJhbnNpZW50Tm90aWZpY2F0aW9uOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OwpAQCAtMzQsNiArMzUsOSBAQAogaW1wb3J0IGFuZHJvaWQudmlldy5hY2Nlc3NpYmlsaXR5LkFjY2Vzc2liaWxpdHlFdmVudDsKIGltcG9ydCBhbmRyb2lkLnZpZXcuYWNjZXNzaWJpbGl0eS5BY2Nlc3NpYmlsaXR5TWFuYWdlcjsKIAoraW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb25Qb2xpY3k7CisKIC8qKgogICogQSB0b2FzdCBpcyBhIHZpZXcgY29udGFpbmluZyBhIHF1aWNrIGxpdHRsZSBtZXNzYWdlIGZvciB0aGUgdXNlci4gIFRoZSB0b2FzdCBjbGFzcwogICogaGVscHMgeW91IGNyZWF0ZSBhbmQgc2hvdyB0aG9zZS4KQEAgLTYxLDYgKzY1LDExIEBACiAgICAgc3RhdGljIGZpbmFsIFN0cmluZyBUQUcgPSAiVG9hc3QiOwogICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIGxvY2FsTE9HViA9IGZhbHNlOwogCisgICAgLyoqIEBoaWRlICovCisgICAgQEludERlZih7TEVOR1RIX1NIT1JULCBMRU5HVEhfTE9OR30pCisgICAgQFJldGVudGlvbihSZXRlbnRpb25Qb2xpY3kuU09VUkNFKQorICAgIHB1YmxpYyBAaW50ZXJmYWNlIER1cmF0aW9uIHt9CisKICAgICAvKioKICAgICAgKiBTaG93IHRoZSB2aWV3IG9yIHRleHQgbm90aWZpY2F0aW9uIGZvciBhIHNob3J0IHBlcmlvZCBvZiB0aW1lLiAgVGhpcyB0aW1lCiAgICAgICogY291bGQgYmUgdXNlci1kZWZpbmFibGUuICBUaGlzIGlzIHRoZSBkZWZhdWx0LgpAQCAtMTUyLDcgKzE2MSw3IEBACiAgICAgICogQHNlZSAjTEVOR1RIX1NIT1JUCiAgICAgICogQHNlZSAjTEVOR1RIX0xPTkcKICAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzZXREdXJhdGlvbihpbnQgZHVyYXRpb24pIHsKKyAgICBwdWJsaWMgdm9pZCBzZXREdXJhdGlvbihARHVyYXRpb24gaW50IGR1cmF0aW9uKSB7CiAgICAgICAgIG1EdXJhdGlvbiA9IGR1cmF0aW9uOwogICAgIH0KIApAQCAtMTYwLDYgKzE2OSw3IEBACiAgICAgICogUmV0dXJuIHRoZSBkdXJhdGlvbi4KICAgICAgKiBAc2VlICNzZXREdXJhdGlvbgogICAgICAqLworICAgIEBEdXJhdGlvbgogICAgIHB1YmxpYyBpbnQgZ2V0RHVyYXRpb24oKSB7CiAgICAgICAgIHJldHVybiBtRHVyYXRpb247CiAgICAgfQpAQCAtMjM3LDcgKzI0Nyw3IEBACiAgICAgICogICAgICAgICAgICAgICAgIHtAbGluayAjTEVOR1RIX0xPTkd9CiAgICAgICoKICAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIFRvYXN0IG1ha2VUZXh0KENvbnRleHQgY29udGV4dCwgQ2hhclNlcXVlbmNlIHRleHQsIGludCBkdXJhdGlvbikgeworICAgIHB1YmxpYyBzdGF0aWMgVG9hc3QgbWFrZVRleHQoQ29udGV4dCBjb250ZXh0LCBDaGFyU2VxdWVuY2UgdGV4dCwgQER1cmF0aW9uIGludCBkdXJhdGlvbikgewogICAgICAgICBUb2FzdCByZXN1bHQgPSBuZXcgVG9hc3QoY29udGV4dCk7CiAKICAgICAgICAgTGF5b3V0SW5mbGF0ZXIgaW5mbGF0ZSA9IChMYXlvdXRJbmZsYXRlcikKQEAgLTI2Myw3ICsyNzMsNyBAQAogICAgICAqCiAgICAgICogQHRocm93cyBSZXNvdXJjZXMuTm90Rm91bmRFeGNlcHRpb24gaWYgdGhlIHJlc291cmNlIGNhbid0IGJlIGZvdW5kLgogICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgVG9hc3QgbWFrZVRleHQoQ29udGV4dCBjb250ZXh0LCBpbnQgcmVzSWQsIGludCBkdXJhdGlvbikKKyAgICBwdWJsaWMgc3RhdGljIFRvYXN0IG1ha2VUZXh0KENvbnRleHQgY29udGV4dCwgaW50IHJlc0lkLCBARHVyYXRpb24gaW50IGR1cmF0aW9uKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgUmVzb3VyY2VzLk5vdEZvdW5kRXhjZXB0aW9uIHsKICAgICAgICAgcmV0dXJuIG1ha2VUZXh0KGNvbnRleHQsIGNvbnRleHQuZ2V0UmVzb3VyY2VzKCkuZ2V0VGV4dChyZXNJZCksIGR1cmF0aW9uKTsKICAgICB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVG9nZ2xlQnV0dG9uLmphdmEgYi9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVG9nZ2xlQnV0dG9uLmphdmEKaW5kZXggY2VkYzc3Ny4uMjg1MTlkMSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1RvZ2dsZUJ1dHRvbi5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9Ub2dnbGVCdXR0b24uamF2YQpAQCAtMTYsNyArMTYsNiBAQAogCiBwYWNrYWdlIGFuZHJvaWQud2lkZ2V0OwogCi0KIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLlR5cGVkQXJyYXk7CiBpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS5EcmF3YWJsZTsKQEAgLTI1LDggKzI0LDYgQEAKIGltcG9ydCBhbmRyb2lkLnZpZXcuYWNjZXNzaWJpbGl0eS5BY2Nlc3NpYmlsaXR5RXZlbnQ7CiBpbXBvcnQgYW5kcm9pZC52aWV3LmFjY2Vzc2liaWxpdHkuQWNjZXNzaWJpbGl0eU5vZGVJbmZvOwogCi1pbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwuUjsKLQogLyoqCiAgKiBEaXNwbGF5cyBjaGVja2VkL3VuY2hlY2tlZCBzdGF0ZXMgYXMgYSBidXR0b24KICAqIHdpdGggYSAibGlnaHQiIGluZGljYXRvciBhbmQgYnkgZGVmYXVsdCBhY2NvbXBhbmllZCB3aXRoIHRoZSB0ZXh0ICJPTiIgb3IgIk9GRiIuCkBAIC00NiwxMyArNDMsMTIgQEAKIAogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT19BTFBIQSA9IDB4RkY7CiAgICAgcHJpdmF0ZSBmbG9hdCBtRGlzYWJsZWRBbHBoYTsKLSAgICAKLSAgICBwdWJsaWMgVG9nZ2xlQnV0dG9uKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKLSAgICAgICAgCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9Ci0gICAgICAgICAgICBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCi0gICAgICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5Ub2dnbGVCdXR0b24sIGRlZlN0eWxlLCAwKTsKKworICAgIHB1YmxpYyBUb2dnbGVCdXR0b24oQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5Ub2dnbGVCdXR0b24sIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgICAgICBtVGV4dE9uID0gYS5nZXRUZXh0KGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlRvZ2dsZUJ1dHRvbl90ZXh0T24pOwogICAgICAgICBtVGV4dE9mZiA9IGEuZ2V0VGV4dChjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5Ub2dnbGVCdXR0b25fdGV4dE9mZik7CiAgICAgICAgIG1EaXNhYmxlZEFscGhhID0gYS5nZXRGbG9hdChjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5Ub2dnbGVCdXR0b25fZGlzYWJsZWRBbHBoYSwgMC41Zik7CkBAIC02MCw2ICs1NiwxMCBAQAogICAgICAgICBhLnJlY3ljbGUoKTsKICAgICB9CiAKKyAgICBwdWJsaWMgVG9nZ2xlQnV0dG9uKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCiAgICAgcHVibGljIFRvZ2dsZUJ1dHRvbihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgewogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIuYnV0dG9uU3R5bGVUb2dnbGUpOwogICAgIH0KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9Ud29MaW5lTGlzdEl0ZW0uamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9Ud29MaW5lTGlzdEl0ZW0uamF2YQppbmRleCBmN2U1MjY2Li41NjA2YzYwIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVHdvTGluZUxpc3RJdGVtLmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1R3b0xpbmVMaXN0SXRlbS5qYXZhCkBAIC01NiwxMSArNTYsMTUgQEAKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgMCk7IAogICAgIH0KIAotICAgIHB1YmxpYyBUd29MaW5lTGlzdEl0ZW0oQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgIHB1YmxpYyBUd29MaW5lTGlzdEl0ZW0oQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CiAKLSAgICAgICAgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzLAotICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLlR3b0xpbmVMaXN0SXRlbSwgZGVmU3R5bGUsIDApOworICAgIHB1YmxpYyBUd29MaW5lTGlzdEl0ZW0oQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CisKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5Ud29MaW5lTGlzdEl0ZW0sIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIGEucmVjeWNsZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9WaWRlb1ZpZXcuamF2YSBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9WaWRlb1ZpZXcuamF2YQppbmRleCBmYmRmMzE4Li5iYjQxMTZhIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvVmlkZW9WaWV3LmphdmEKKysrIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1ZpZGVvVmlldy5qYXZhCkBAIC0xOSw3ICsxOSw2IEBACiBpbXBvcnQgYW5kcm9pZC5hcHAuQWxlcnREaWFsb2c7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkRpYWxvZ0ludGVyZmFjZTsKLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQuSW50ZW50OwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuUmVzb3VyY2VzOwogaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQ2FudmFzOwogaW1wb3J0IGFuZHJvaWQubWVkaWEuQXVkaW9NYW5hZ2VyOwpAQCAtMTE3LDggKzExNiwxMiBAQAogICAgICAgICBpbml0VmlkZW9WaWV3KCk7CiAgICAgfQogCi0gICAgcHVibGljIFZpZGVvVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIFZpZGVvVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBWaWRlb1ZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIGluaXRWaWRlb1ZpZXcoKTsKICAgICB9CiAKQEAgLTI4NywxMSArMjkwLDggQEAKICAgICAgICAgICAgIC8vIG5vdCByZWFkeSBmb3IgcGxheWJhY2sganVzdCB5ZXQsIHdpbGwgdHJ5IGFnYWluIGxhdGVyCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgLy8gVGVsbCB0aGUgbXVzaWMgcGxheWJhY2sgc2VydmljZSB0byBwYXVzZQotICAgICAgICAvLyBUT0RPOiB0aGVzZSBjb25zdGFudHMgbmVlZCB0byBiZSBwdWJsaXNoZWQgc29tZXdoZXJlIGluIHRoZSBmcmFtZXdvcmsuCi0gICAgICAgIEludGVudCBpID0gbmV3IEludGVudCgiY29tLmFuZHJvaWQubXVzaWMubXVzaWNzZXJ2aWNlY29tbWFuZCIpOwotICAgICAgICBpLnB1dEV4dHJhKCJjb21tYW5kIiwgInBhdXNlIik7Ci0gICAgICAgIG1Db250ZXh0LnNlbmRCcm9hZGNhc3QoaSk7CisgICAgICAgIEF1ZGlvTWFuYWdlciBhbSA9IChBdWRpb01hbmFnZXIpIG1Db250ZXh0LmdldFN5c3RlbVNlcnZpY2UoQ29udGV4dC5BVURJT19TRVJWSUNFKTsKKyAgICAgICAgYW0ucmVxdWVzdEF1ZGlvRm9jdXMobnVsbCwgQXVkaW9NYW5hZ2VyLlNUUkVBTV9NVVNJQywgQXVkaW9NYW5hZ2VyLkFVRElPRk9DVVNfR0FJTik7CiAKICAgICAgICAgLy8gd2Ugc2hvdWxkbid0IGNsZWFyIHRoZSB0YXJnZXQgc3RhdGUsIGJlY2F1c2Ugc29tZWJvZHkgbWlnaHQgaGF2ZQogICAgICAgICAvLyBjYWxsZWQgc3RhcnQoKSBwcmV2aW91c2x5CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvWm9vbUJ1dHRvbi5qYXZhIGIvY29yZS9qYXZhL2FuZHJvaWQvd2lkZ2V0L1pvb21CdXR0b24uamF2YQppbmRleCBhZjE3Yzk0Li43MTVlODY4IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvYW5kcm9pZC93aWRnZXQvWm9vbUJ1dHRvbi5qYXZhCisrKyBiL2NvcmUvamF2YS9hbmRyb2lkL3dpZGdldC9ab29tQnV0dG9uLmphdmEKQEAgLTQ5LDggKzQ5LDEyIEBACiAgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIDApOwogICAgIH0KICAgICAKLSAgICBwdWJsaWMgWm9vbUJ1dHRvbihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIFpvb21CdXR0b24oQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgWm9vbUJ1dHRvbihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgbUhhbmRsZXIgPSBuZXcgSGFuZGxlcigpOwogICAgICAgICBzZXRPbkxvbmdDbGlja0xpc3RlbmVyKHRoaXMpOwogICAgIH0KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC9hcHAvQWxlcnRDb250cm9sbGVyLmphdmEgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvYXBwL0FsZXJ0Q29udHJvbGxlci5qYXZhCmluZGV4IGZlNTMyYjAuLjEwYjk4ZDggMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC9hcHAvQWxlcnRDb250cm9sbGVyLmphdmEKKysrIGIvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL2FwcC9BbGVydENvbnRyb2xsZXIuamF2YQpAQCAtNzM2LDggKzczNiwxMyBAQAogICAgICAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMpOwogICAgICAgICB9CiAKLSAgICAgICAgcHVibGljIFJlY3ljbGVMaXN0VmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworICAgICAgICBwdWJsaWMgUmVjeWNsZUxpc3RWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBSZWN5Y2xlTGlzdFZpZXcoCisgICAgICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgICAgICB9CiAKICAgICAgICAgQE92ZXJyaWRlCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvYXBwL0lCYXR0ZXJ5U3RhdHMuYWlkbCBiL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC9hcHAvSUJhdHRlcnlTdGF0cy5haWRsCmluZGV4IDQzYzRiNDkuLjA3NzEzMjkgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC9hcHAvSUJhdHRlcnlTdGF0cy5haWRsCisrKyBiL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC9hcHAvSUJhdHRlcnlTdGF0cy5haWRsCkBAIC0yMiwxNyArMjIsMTUgQEAKIGltcG9ydCBhbmRyb2lkLnRlbGVwaG9ueS5TaWduYWxTdHJlbmd0aDsKIAogaW50ZXJmYWNlIElCYXR0ZXJ5U3RhdHMgeworICAgIC8vIFRoZXNlIGZpcnN0IG1ldGhvZHMgYXJlIGFsc28gY2FsbGVkIGJ5IG5hdGl2ZSBjb2RlLCBzbyBtdXN0CisgICAgLy8gYmUga2VwdCBpbiBzeW5jIHdpdGggZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9iaW5kZXIvSUJhdHRlcnlTdGF0cy5oCisgICAgdm9pZCBub3RlU3RhcnRTZW5zb3IoaW50IHVpZCwgaW50IHNlbnNvcik7CisgICAgdm9pZCBub3RlU3RvcFNlbnNvcihpbnQgdWlkLCBpbnQgc2Vuc29yKTsKKworICAgIC8vIFJlbWFpbmluZyBtZXRob2RzIGFyZSBvbmx5IHVzZWQgaW4gSmF2YS4KICAgICBieXRlW10gZ2V0U3RhdGlzdGljcygpOwogICAgIHZvaWQgbm90ZVN0YXJ0V2FrZWxvY2soaW50IHVpZCwgaW50IHBpZCwgU3RyaW5nIG5hbWUsIGludCB0eXBlKTsKICAgICB2b2lkIG5vdGVTdG9wV2FrZWxvY2soaW50IHVpZCwgaW50IHBpZCwgU3RyaW5nIG5hbWUsIGludCB0eXBlKTsKLSAgICAKLSAgICAvKiBETyBOT1QgQ0hBTkdFIHRoZSBwb3NpdGlvbiBvZiBub3RlU3RhcnRTZW5zb3Igd2l0aG91dCB1cGRhdGluZwotICAgICAgIFNlbnNvclNlcnZpY2UuY3BwICovCi0gICAgdm9pZCBub3RlU3RhcnRTZW5zb3IoaW50IHVpZCwgaW50IHNlbnNvcik7Ci0KLSAgICAvKiBETyBOT1QgQ0hBTkdFIHRoZSBwb3NpdGlvbiBvZiBub3RlU3RvcFNlbnNvciB3aXRob3V0IHVwZGF0aW5nCi0gICAgICAgU2Vuc29yU2VydmljZS5jcHAgKi8KLSAgICB2b2lkIG5vdGVTdG9wU2Vuc29yKGludCB1aWQsIGludCBzZW5zb3IpOwogCiAgICAgdm9pZCBub3RlU3RhcnRXYWtlbG9ja0Zyb21Tb3VyY2UoaW4gV29ya1NvdXJjZSB3cywgaW50IHBpZCwgU3RyaW5nIG5hbWUsIGludCB0eXBlKTsKICAgICB2b2lkIG5vdGVTdG9wV2FrZWxvY2tGcm9tU291cmNlKGluIFdvcmtTb3VyY2Ugd3MsIGludCBwaWQsIFN0cmluZyBuYW1lLCBpbnQgdHlwZSk7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvaW5wdXRtZXRob2QvSW5wdXRNZXRob2RTdWJ0eXBlU3dpdGNoaW5nQ29udHJvbGxlci5qYXZhIGIvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL2lucHV0bWV0aG9kL0lucHV0TWV0aG9kU3VidHlwZVN3aXRjaGluZ0NvbnRyb2xsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2MwYTRjCi0tLSAvZGV2L251bGwKKysrIGIvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL2lucHV0bWV0aG9kL0lucHV0TWV0aG9kU3VidHlwZVN3aXRjaGluZ0NvbnRyb2xsZXIuamF2YQpAQCAtMCwwICsxLDI5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgY29tLmFuZHJvaWQuaW50ZXJuYWwuaW5wdXRtZXRob2Q7CisKK2ltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC5pbnB1dG1ldGhvZC5JbnB1dE1ldGhvZFV0aWxzLklucHV0TWV0aG9kU2V0dGluZ3M7CisKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQucG0uUGFja2FnZU1hbmFnZXI7CitpbXBvcnQgYW5kcm9pZC50ZXh0LlRleHRVdGlsczsKK2ltcG9ydCBhbmRyb2lkLnV0aWwuU2xvZzsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuaW5wdXRtZXRob2QuSW5wdXRNZXRob2RJbmZvOworaW1wb3J0IGFuZHJvaWQudmlldy5pbnB1dG1ldGhvZC5JbnB1dE1ldGhvZFN1YnR5cGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlEZXF1ZTsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworCisvKioKKyAqIElucHV0TWV0aG9kU3VidHlwZVN3aXRjaGluZ0NvbnRyb2xsZXIgY29udHJvbHMgdGhlIHN3aXRjaGluZyBiZWhhdmlvciBvZiB0aGUgc3VidHlwZXMuCisgKi8KK3B1YmxpYyBjbGFzcyBJbnB1dE1ldGhvZFN1YnR5cGVTd2l0Y2hpbmdDb250cm9sbGVyIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEFHID0gSW5wdXRNZXRob2RTdWJ0eXBlU3dpdGNoaW5nQ29udHJvbGxlci5jbGFzcy5nZXRTaW1wbGVOYW1lKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIC8vIFRPRE86IFR1cm4gb24gdGhpcyBmbGFnIGFuZCBhZGQgQ1RTIHdoZW4gdGhlIHBsYXRmb3JtIHN0YXJ0cyBleHBlY3RpbmcgdGhhdCBhbGwgSU1FcyByZXR1cm4KKyAgICAvLyB0cnVlIGZvciBzdXBwb3J0c1N3aXRjaGluZ1RvTmV4dElucHV0TWV0aG9kKCkuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBSRVFVSVJFX1NXSVRDSElOR19TVVBQT1JUID0gZmFsc2U7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9ISVNUT1JZX1NJWkUgPSA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT1RfQV9TVUJUWVBFX0lEID0gSW5wdXRNZXRob2RVdGlscy5OT1RfQV9TVUJUWVBFX0lEOworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgU3VidHlwZVBhcmFtcyB7CisgICAgICAgIHB1YmxpYyBmaW5hbCBJbnB1dE1ldGhvZEluZm8gbUltaTsKKyAgICAgICAgcHVibGljIGZpbmFsIElucHV0TWV0aG9kU3VidHlwZSBtU3VidHlwZTsKKyAgICAgICAgcHVibGljIGZpbmFsIGxvbmcgbVRpbWU7CisKKyAgICAgICAgcHVibGljIFN1YnR5cGVQYXJhbXMoSW5wdXRNZXRob2RJbmZvIGltaSwgSW5wdXRNZXRob2RTdWJ0eXBlIHN1YnR5cGUpIHsKKyAgICAgICAgICAgIG1JbWkgPSBpbWk7CisgICAgICAgICAgICBtU3VidHlwZSA9IHN1YnR5cGU7CisgICAgICAgICAgICBtVGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJbWVTdWJ0eXBlTGlzdEl0ZW0gaW1wbGVtZW50cyBDb21wYXJhYmxlPEltZVN1YnR5cGVMaXN0SXRlbT4geworICAgICAgICBwdWJsaWMgZmluYWwgQ2hhclNlcXVlbmNlIG1JbWVOYW1lOworICAgICAgICBwdWJsaWMgZmluYWwgQ2hhclNlcXVlbmNlIG1TdWJ0eXBlTmFtZTsKKyAgICAgICAgcHVibGljIGZpbmFsIElucHV0TWV0aG9kSW5mbyBtSW1pOworICAgICAgICBwdWJsaWMgZmluYWwgaW50IG1TdWJ0eXBlSWQ7CisgICAgICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBtSXNTeXN0ZW1Mb2NhbGU7CisgICAgICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBtSXNTeXN0ZW1MYW5ndWFnZTsKKworICAgICAgICBwdWJsaWMgSW1lU3VidHlwZUxpc3RJdGVtKENoYXJTZXF1ZW5jZSBpbWVOYW1lLCBDaGFyU2VxdWVuY2Ugc3VidHlwZU5hbWUsCisgICAgICAgICAgICAgICAgSW5wdXRNZXRob2RJbmZvIGltaSwgaW50IHN1YnR5cGVJZCwgU3RyaW5nIHN1YnR5cGVMb2NhbGUsIFN0cmluZyBzeXN0ZW1Mb2NhbGUpIHsKKyAgICAgICAgICAgIG1JbWVOYW1lID0gaW1lTmFtZTsKKyAgICAgICAgICAgIG1TdWJ0eXBlTmFtZSA9IHN1YnR5cGVOYW1lOworICAgICAgICAgICAgbUltaSA9IGltaTsKKyAgICAgICAgICAgIG1TdWJ0eXBlSWQgPSBzdWJ0eXBlSWQ7CisgICAgICAgICAgICBpZiAoVGV4dFV0aWxzLmlzRW1wdHkoc3VidHlwZUxvY2FsZSkpIHsKKyAgICAgICAgICAgICAgICBtSXNTeXN0ZW1Mb2NhbGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBtSXNTeXN0ZW1MYW5ndWFnZSA9IGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtSXNTeXN0ZW1Mb2NhbGUgPSBzdWJ0eXBlTG9jYWxlLmVxdWFscyhzeXN0ZW1Mb2NhbGUpOworICAgICAgICAgICAgICAgIG1Jc1N5c3RlbUxhbmd1YWdlID0gbUlzU3lzdGVtTG9jYWxlCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBzdWJ0eXBlTG9jYWxlLnN0YXJ0c1dpdGgoc3lzdGVtTG9jYWxlLnN1YnN0cmluZygwLCAyKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oSW1lU3VidHlwZUxpc3RJdGVtIG90aGVyKSB7CisgICAgICAgICAgICBpZiAoVGV4dFV0aWxzLmlzRW1wdHkobUltZU5hbWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVGV4dFV0aWxzLmlzRW1wdHkob3RoZXIubUltZU5hbWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFUZXh0VXRpbHMuZXF1YWxzKG1JbWVOYW1lLCBvdGhlci5tSW1lTmFtZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbUltZU5hbWUudG9TdHJpbmcoKS5jb21wYXJlVG8ob3RoZXIubUltZU5hbWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVGV4dFV0aWxzLmVxdWFscyhtU3VidHlwZU5hbWUsIG90aGVyLm1TdWJ0eXBlTmFtZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtSXNTeXN0ZW1Mb2NhbGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob3RoZXIubUlzU3lzdGVtTG9jYWxlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobUlzU3lzdGVtTGFuZ3VhZ2UpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob3RoZXIubUlzU3lzdGVtTGFuZ3VhZ2UpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChUZXh0VXRpbHMuaXNFbXB0eShtU3VidHlwZU5hbWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVGV4dFV0aWxzLmlzRW1wdHkob3RoZXIubVN1YnR5cGVOYW1lKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtU3VidHlwZU5hbWUudG9TdHJpbmcoKS5jb21wYXJlVG8ob3RoZXIubVN1YnR5cGVOYW1lLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgSW5wdXRNZXRob2RBbmRTdWJ0eXBlQ2lyY3VsYXJMaXN0IHsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBDb250ZXh0IG1Db250ZXh0OworICAgICAgICAvLyBVc2VkIHRvIGxvYWQgbGFiZWwKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBQYWNrYWdlTWFuYWdlciBtUG07CisgICAgICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG1TeXN0ZW1Mb2NhbGVTdHI7CisgICAgICAgIHByaXZhdGUgZmluYWwgSW5wdXRNZXRob2RTZXR0aW5ncyBtU2V0dGluZ3M7CisKKyAgICAgICAgcHVibGljIElucHV0TWV0aG9kQW5kU3VidHlwZUNpcmN1bGFyTGlzdChDb250ZXh0IGNvbnRleHQsIElucHV0TWV0aG9kU2V0dGluZ3Mgc2V0dGluZ3MpIHsKKyAgICAgICAgICAgIG1Db250ZXh0ID0gY29udGV4dDsKKyAgICAgICAgICAgIG1TZXR0aW5ncyA9IHNldHRpbmdzOworICAgICAgICAgICAgbVBtID0gY29udGV4dC5nZXRQYWNrYWdlTWFuYWdlcigpOworICAgICAgICAgICAgZmluYWwgTG9jYWxlIGxvY2FsZSA9IGNvbnRleHQuZ2V0UmVzb3VyY2VzKCkuZ2V0Q29uZmlndXJhdGlvbigpLmxvY2FsZTsKKyAgICAgICAgICAgIG1TeXN0ZW1Mb2NhbGVTdHIgPSBsb2NhbGUgIT0gbnVsbCA/IGxvY2FsZS50b1N0cmluZygpIDogIiI7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGZpbmFsIFRyZWVNYXA8SW5wdXRNZXRob2RJbmZvLCBMaXN0PElucHV0TWV0aG9kU3VidHlwZT4+IG1Tb3J0ZWRJbW1pcyA9CisgICAgICAgICAgICAgICAgbmV3IFRyZWVNYXA8SW5wdXRNZXRob2RJbmZvLCBMaXN0PElucHV0TWV0aG9kU3VidHlwZT4+KAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENvbXBhcmF0b3I8SW5wdXRNZXRob2RJbmZvPigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoSW5wdXRNZXRob2RJbmZvIGltaTEsIElucHV0TWV0aG9kSW5mbyBpbWkyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbWkyID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGltaTEgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobVBtID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbWkxLmdldElkKCkuY29tcGFyZVRvKGltaTIuZ2V0SWQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhclNlcXVlbmNlIGltaUlkMSA9IGltaTEubG9hZExhYmVsKG1QbSkgKyAiLyIgKyBpbWkxLmdldElkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJTZXF1ZW5jZSBpbWlJZDIgPSBpbWkyLmxvYWRMYWJlbChtUG0pICsgIi8iICsgaW1pMi5nZXRJZCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW1pSWQxLnRvU3RyaW5nKCkuY29tcGFyZVRvKGltaUlkMi50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICBwdWJsaWMgSW1lU3VidHlwZUxpc3RJdGVtIGdldE5leHRJbnB1dE1ldGhvZCgKKyAgICAgICAgICAgICAgICBib29sZWFuIG9ubHlDdXJyZW50SW1lLCBJbnB1dE1ldGhvZEluZm8gaW1pLCBJbnB1dE1ldGhvZFN1YnR5cGUgc3VidHlwZSkgeworICAgICAgICAgICAgaWYgKGltaSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmaW5hbCBMaXN0PEltZVN1YnR5cGVMaXN0SXRlbT4gaW1MaXN0ID0KKyAgICAgICAgICAgICAgICAgICAgZ2V0U29ydGVkSW5wdXRNZXRob2RBbmRTdWJ0eXBlTGlzdCgpOworICAgICAgICAgICAgaWYgKGltTGlzdC5zaXplKCkgPD0gMSkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZmluYWwgaW50IE4gPSBpbUxpc3Quc2l6ZSgpOworICAgICAgICAgICAgZmluYWwgaW50IGN1cnJlbnRTdWJ0eXBlSWQgPQorICAgICAgICAgICAgICAgICAgICBzdWJ0eXBlICE9IG51bGwgPyBJbnB1dE1ldGhvZFV0aWxzLmdldFN1YnR5cGVJZEZyb21IYXNoQ29kZShpbWksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VidHlwZS5oYXNoQ29kZSgpKSA6IE5PVF9BX1NVQlRZUEVfSUQ7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkgeworICAgICAgICAgICAgICAgIGZpbmFsIEltZVN1YnR5cGVMaXN0SXRlbSBpc2xpID0gaW1MaXN0LmdldChpKTsKKyAgICAgICAgICAgICAgICBpZiAoaXNsaS5tSW1pLmVxdWFscyhpbWkpICYmIGlzbGkubVN1YnR5cGVJZCA9PSBjdXJyZW50U3VidHlwZUlkKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghb25seUN1cnJlbnRJbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbUxpc3QuZ2V0KChpICsgMSkgJSBOKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE4gLSAxOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIEltZVN1YnR5cGVMaXN0SXRlbSBjYW5kaWRhdGUgPSBpbUxpc3QuZ2V0KChpICsgaiArIDEpICUgTik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FuZGlkYXRlLm1JbWkuZXF1YWxzKGltaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FuZGlkYXRlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIExpc3Q8SW1lU3VidHlwZUxpc3RJdGVtPiBnZXRTb3J0ZWRJbnB1dE1ldGhvZEFuZFN1YnR5cGVMaXN0KCkgeworICAgICAgICAgICAgcmV0dXJuIGdldFNvcnRlZElucHV0TWV0aG9kQW5kU3VidHlwZUxpc3QodHJ1ZSwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBMaXN0PEltZVN1YnR5cGVMaXN0SXRlbT4gZ2V0U29ydGVkSW5wdXRNZXRob2RBbmRTdWJ0eXBlTGlzdCgKKyAgICAgICAgICAgICAgICBib29sZWFuIHNob3dTdWJ0eXBlcywgYm9vbGVhbiBpbnB1dFNob3duLCBib29sZWFuIGlzU2NyZWVuTG9ja2VkKSB7CisgICAgICAgICAgICBmaW5hbCBBcnJheUxpc3Q8SW1lU3VidHlwZUxpc3RJdGVtPiBpbUxpc3QgPQorICAgICAgICAgICAgICAgICAgICBuZXcgQXJyYXlMaXN0PEltZVN1YnR5cGVMaXN0SXRlbT4oKTsKKyAgICAgICAgICAgIGZpbmFsIEhhc2hNYXA8SW5wdXRNZXRob2RJbmZvLCBMaXN0PElucHV0TWV0aG9kU3VidHlwZT4+IGltbWlzID0KKyAgICAgICAgICAgICAgICAgICAgbVNldHRpbmdzLmdldEV4cGxpY2l0bHlPckltcGxpY2l0bHlFbmFibGVkSW5wdXRNZXRob2RzQW5kU3VidHlwZUxpc3RMb2NrZWQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUNvbnRleHQpOworICAgICAgICAgICAgaWYgKGltbWlzID09IG51bGwgfHwgaW1taXMuc2l6ZSgpID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvbnMuZW1wdHlMaXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtU29ydGVkSW1taXMuY2xlYXIoKTsKKyAgICAgICAgICAgIG1Tb3J0ZWRJbW1pcy5wdXRBbGwoaW1taXMpOworICAgICAgICAgICAgZm9yIChJbnB1dE1ldGhvZEluZm8gaW1pIDogbVNvcnRlZEltbWlzLmtleVNldCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGltaSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBMaXN0PElucHV0TWV0aG9kU3VidHlwZT4gZXhwbGljaXRseU9ySW1wbGljaXRseUVuYWJsZWRTdWJ0eXBlTGlzdCA9IGltbWlzLmdldChpbWkpOworICAgICAgICAgICAgICAgIEhhc2hTZXQ8U3RyaW5nPiBlbmFibGVkU3VidHlwZVNldCA9IG5ldyBIYXNoU2V0PFN0cmluZz4oKTsKKyAgICAgICAgICAgICAgICBmb3IgKElucHV0TWV0aG9kU3VidHlwZSBzdWJ0eXBlIDogZXhwbGljaXRseU9ySW1wbGljaXRseUVuYWJsZWRTdWJ0eXBlTGlzdCkgeworICAgICAgICAgICAgICAgICAgICBlbmFibGVkU3VidHlwZVNldC5hZGQoU3RyaW5nLnZhbHVlT2Yoc3VidHlwZS5oYXNoQ29kZSgpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZpbmFsIENoYXJTZXF1ZW5jZSBpbWVMYWJlbCA9IGltaS5sb2FkTGFiZWwobVBtKTsKKyAgICAgICAgICAgICAgICBpZiAoc2hvd1N1YnR5cGVzICYmIGVuYWJsZWRTdWJ0eXBlU2V0LnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IHN1YnR5cGVDb3VudCA9IGltaS5nZXRTdWJ0eXBlQ291bnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTbG9nLnYoVEFHLCAiQWRkIHN1YnR5cGVzOiAiICsgc3VidHlwZUNvdW50ICsgIiwgIiArIGltaS5nZXRJZCgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHN1YnR5cGVDb3VudDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBJbnB1dE1ldGhvZFN1YnR5cGUgc3VidHlwZSA9IGltaS5nZXRTdWJ0eXBlQXQoaik7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgc3VidHlwZUhhc2hDb2RlID0gU3RyaW5nLnZhbHVlT2Yoc3VidHlwZS5oYXNoQ29kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHNob3cgYWxsIGVuYWJsZWQgSU1FcyBhbmQgc3VidHlwZXMgd2hlbiBhbiBJTUUgaXMgc2hvd24uCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5hYmxlZFN1YnR5cGVTZXQuY29udGFpbnMoc3VidHlwZUhhc2hDb2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoKGlucHV0U2hvd24gJiYgIWlzU2NyZWVuTG9ja2VkKSB8fCAhc3VidHlwZS5pc0F1eGlsaWFyeSgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIENoYXJTZXF1ZW5jZSBzdWJ0eXBlTGFiZWwgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VidHlwZS5vdmVycmlkZXNJbXBsaWNpdGx5RW5hYmxlZFN1YnR5cGUoKSA/IG51bGwgOiBzdWJ0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXREaXNwbGF5TmFtZShtQ29udGV4dCwgaW1pLmdldFBhY2thZ2VOYW1lKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1pLmdldFNlcnZpY2VJbmZvKCkuYXBwbGljYXRpb25JbmZvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbUxpc3QuYWRkKG5ldyBJbWVTdWJ0eXBlTGlzdEl0ZW0oaW1lTGFiZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0eXBlTGFiZWwsIGltaSwgaiwgc3VidHlwZS5nZXRMb2NhbGUoKSwgbVN5c3RlbUxvY2FsZVN0cikpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZpbmcgdGhpcyBzdWJ0eXBlIGZyb20gZW5hYmxlZFN1YnR5cGVTZXQgYmVjYXVzZSB3ZSBubworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvbmdlciBuZWVkIHRvIGFkZCBhbiBlbnRyeSBvZiB0aGlzIHN1YnR5cGUgdG8gaW1MaXN0IHRvIGF2b2lkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHVwbGljYXRlZCBlbnRyaWVzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWRTdWJ0eXBlU2V0LnJlbW92ZShzdWJ0eXBlSGFzaENvZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW1MaXN0LmFkZChuZXcgSW1lU3VidHlwZUxpc3RJdGVtKGltZUxhYmVsLCBudWxsLCBpbWksIE5PVF9BX1NVQlRZUEVfSUQsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVN5c3RlbUxvY2FsZVN0cikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENvbGxlY3Rpb25zLnNvcnQoaW1MaXN0KTsKKyAgICAgICAgICAgIHJldHVybiBpbUxpc3Q7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIEFycmF5RGVxdWU8U3VidHlwZVBhcmFtcz4gbVR5cGVkU3VidHlwZUhpc3RvcnkgPSBuZXcgQXJyYXlEZXF1ZTxTdWJ0eXBlUGFyYW1zPigpOworICAgIHByaXZhdGUgZmluYWwgT2JqZWN0IG1Mb2NrID0gbmV3IE9iamVjdCgpOworICAgIHByaXZhdGUgZmluYWwgSW5wdXRNZXRob2RTZXR0aW5ncyBtU2V0dGluZ3M7CisgICAgcHJpdmF0ZSBJbnB1dE1ldGhvZEFuZFN1YnR5cGVDaXJjdWxhckxpc3QgbVN1YnR5cGVMaXN0OworCisgICAgcHVibGljIElucHV0TWV0aG9kU3VidHlwZVN3aXRjaGluZ0NvbnRyb2xsZXIoSW5wdXRNZXRob2RTZXR0aW5ncyBzZXR0aW5ncykgeworICAgICAgICBtU2V0dGluZ3MgPSBzZXR0aW5nczsKKyAgICB9CisKKyAgICAvLyBUT0RPOiB3cml0ZSB1bml0IHRlc3RzIGZvciB0aGlzIG1ldGhvZCBhbmQgdGhlIGxvZ2ljIHRoYXQgZGV0ZXJtaW5lcyB0aGUgbmV4dCBzdWJ0eXBlCisgICAgcHVibGljIHZvaWQgb25Db21taXRUZXh0KElucHV0TWV0aG9kSW5mbyBpbWksIElucHV0TWV0aG9kU3VidHlwZSBzdWJ0eXBlKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAobVR5cGVkU3VidHlwZUhpc3RvcnkpIHsKKyAgICAgICAgICAgIGlmIChzdWJ0eXBlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTbG9nLncoVEFHLCAiSW52YWxpZCBJbnB1dE1ldGhvZFN1YnR5cGU6ICIgKyBpbWkuZ2V0SWQoKSArICIsICIgKyBzdWJ0eXBlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBTbG9nLmQoVEFHLCAib25Db21taXRUZXh0OiAiICsgaW1pLmdldElkKCkgKyAiLCAiICsgc3VidHlwZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoUkVRVUlSRV9TV0lUQ0hJTkdfU1VQUE9SVCkgeworICAgICAgICAgICAgICAgIGlmICghaW1pLnN1cHBvcnRzU3dpdGNoaW5nVG9OZXh0SW5wdXRNZXRob2QoKSkgeworICAgICAgICAgICAgICAgICAgICBTbG9nLncoVEFHLCBpbWkuZ2V0SWQoKSArICIgZG9lc24ndCBzdXBwb3J0IHN3aXRjaGluZyB0byBuZXh0IGlucHV0IG1ldGhvZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtVHlwZWRTdWJ0eXBlSGlzdG9yeS5zaXplKCkgPj0gTUFYX0hJU1RPUllfU0laRSkgeworICAgICAgICAgICAgICAgIG1UeXBlZFN1YnR5cGVIaXN0b3J5LnBvbGwoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1UeXBlZFN1YnR5cGVIaXN0b3J5LmFkZEZpcnN0KG5ldyBTdWJ0eXBlUGFyYW1zKGltaSwgc3VidHlwZSkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVzZXRDaXJjdWxhckxpc3RMb2NrZWQoQ29udGV4dCBjb250ZXh0KSB7CisgICAgICAgIHN5bmNocm9uaXplZChtTG9jaykgeworICAgICAgICAgICAgbVN1YnR5cGVMaXN0ID0gbmV3IElucHV0TWV0aG9kQW5kU3VidHlwZUNpcmN1bGFyTGlzdChjb250ZXh0LCBtU2V0dGluZ3MpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIEltZVN1YnR5cGVMaXN0SXRlbSBnZXROZXh0SW5wdXRNZXRob2QoCisgICAgICAgICAgICBib29sZWFuIG9ubHlDdXJyZW50SW1lLCBJbnB1dE1ldGhvZEluZm8gaW1pLCBJbnB1dE1ldGhvZFN1YnR5cGUgc3VidHlwZSkgeworICAgICAgICBzeW5jaHJvbml6ZWQobUxvY2spIHsKKyAgICAgICAgICAgIHJldHVybiBtU3VidHlwZUxpc3QuZ2V0TmV4dElucHV0TWV0aG9kKG9ubHlDdXJyZW50SW1lLCBpbWksIHN1YnR5cGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIExpc3Q8SW1lU3VidHlwZUxpc3RJdGVtPiBnZXRTb3J0ZWRJbnB1dE1ldGhvZEFuZFN1YnR5cGVMaXN0KGJvb2xlYW4gc2hvd1N1YnR5cGVzLAorICAgICAgICAgICAgYm9vbGVhbiBpbnB1dFNob3duLCBib29sZWFuIGlzU2NyZWVuTG9ja2VkKSB7CisgICAgICAgIHN5bmNocm9uaXplZChtTG9jaykgeworICAgICAgICAgICAgcmV0dXJuIG1TdWJ0eXBlTGlzdC5nZXRTb3J0ZWRJbnB1dE1ldGhvZEFuZFN1YnR5cGVMaXN0KAorICAgICAgICAgICAgICAgICAgICBzaG93U3VidHlwZXMsIGlucHV0U2hvd24sIGlzU2NyZWVuTG9ja2VkKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC9pbnB1dG1ldGhvZC9JbnB1dE1ldGhvZFV0aWxzLmphdmEgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvaW5wdXRtZXRob2QvSW5wdXRNZXRob2RVdGlscy5qYXZhCmluZGV4IDYzZDAxOGYuLmJjMDUxY2UgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC9pbnB1dG1ldGhvZC9JbnB1dE1ldGhvZFV0aWxzLmphdmEKKysrIGIvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL2lucHV0bWV0aG9kL0lucHV0TWV0aG9kVXRpbHMuamF2YQpAQCAtOTU5LDUgKzk1OSwxNiBAQAogICAgICAgICAgICAgICAgIGFkZFN1YnR5cGVUb0hpc3RvcnkoY3VyTWV0aG9kSWQsIHN1YnR5cGVJZCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgSGFzaE1hcDxJbnB1dE1ldGhvZEluZm8sIExpc3Q8SW5wdXRNZXRob2RTdWJ0eXBlPj4KKyAgICAgICAgICAgICAgICBnZXRFeHBsaWNpdGx5T3JJbXBsaWNpdGx5RW5hYmxlZElucHV0TWV0aG9kc0FuZFN1YnR5cGVMaXN0TG9ja2VkKENvbnRleHQgY29udGV4dCkgeworICAgICAgICAgICAgSGFzaE1hcDxJbnB1dE1ldGhvZEluZm8sIExpc3Q8SW5wdXRNZXRob2RTdWJ0eXBlPj4gZW5hYmxlZElucHV0TWV0aG9kQW5kU3VidHlwZXMgPQorICAgICAgICAgICAgICAgICAgICBuZXcgSGFzaE1hcDxJbnB1dE1ldGhvZEluZm8sIExpc3Q8SW5wdXRNZXRob2RTdWJ0eXBlPj4oKTsKKyAgICAgICAgICAgIGZvciAoSW5wdXRNZXRob2RJbmZvIGltaTogZ2V0RW5hYmxlZElucHV0TWV0aG9kTGlzdExvY2tlZCgpKSB7CisgICAgICAgICAgICAgICAgZW5hYmxlZElucHV0TWV0aG9kQW5kU3VidHlwZXMucHV0KAorICAgICAgICAgICAgICAgICAgICAgICAgaW1pLCBnZXRFbmFibGVkSW5wdXRNZXRob2RTdWJ0eXBlTGlzdExvY2tlZChjb250ZXh0LCBpbWksIHRydWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBlbmFibGVkSW5wdXRNZXRob2RBbmRTdWJ0eXBlczsKKyAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC9vcy9aeWdvdGVJbml0LmphdmEgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvb3MvWnlnb3RlSW5pdC5qYXZhCmluZGV4IGM0NGFmYWUuLmE3ZmFhZGYgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC9vcy9aeWdvdGVJbml0LmphdmEKKysrIGIvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL29zL1p5Z290ZUluaXQuamF2YQpAQCAtNDg5LDYgKzQ4OSw3IEBACiAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBzdGFydFN5c3RlbVNlcnZlcigpCiAgICAgICAgICAgICB0aHJvd3MgTWV0aG9kQW5kQXJnc0NhbGxlciwgUnVudGltZUV4Y2VwdGlvbiB7CiAgICAgICAgIGxvbmcgY2FwYWJpbGl0aWVzID0gcG9zaXhDYXBhYmlsaXRpZXNBc0JpdHMoCisgICAgICAgICAgICBPc0NvbnN0YW50cy5DQVBfQkxPQ0tfU1VTUEVORCwKICAgICAgICAgICAgIE9zQ29uc3RhbnRzLkNBUF9LSUxMLAogICAgICAgICAgICAgT3NDb25zdGFudHMuQ0FQX05FVF9BRE1JTiwKICAgICAgICAgICAgIE9zQ29uc3RhbnRzLkNBUF9ORVRfQklORF9TRVJWSUNFLApkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3ByZWZlcmVuY2UvWWVzTm9QcmVmZXJlbmNlLmphdmEgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvcHJlZmVyZW5jZS9ZZXNOb1ByZWZlcmVuY2UuamF2YQppbmRleCBjZjY4YTU4Li43YWJmNDE2IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvcHJlZmVyZW5jZS9ZZXNOb1ByZWZlcmVuY2UuamF2YQorKysgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvcHJlZmVyZW5jZS9ZZXNOb1ByZWZlcmVuY2UuamF2YQpAQCAtMzEsMTUgKzMxLDE5IEBACiAgKi8KIHB1YmxpYyBjbGFzcyBZZXNOb1ByZWZlcmVuY2UgZXh0ZW5kcyBEaWFsb2dQcmVmZXJlbmNlIHsKICAgICBwcml2YXRlIGJvb2xlYW4gbVdhc1Bvc2l0aXZlUmVzdWx0OwotICAgIAotICAgIHB1YmxpYyBZZXNOb1ByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOworCisgICAgcHVibGljIFllc05vUHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgWWVzTm9QcmVmZXJlbmNlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CiAgICAgfQogCiAgICAgcHVibGljIFllc05vUHJlZmVyZW5jZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgewogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIueWVzTm9QcmVmZXJlbmNlU3R5bGUpOwogICAgIH0KLSAgICAKKwogICAgIHB1YmxpYyBZZXNOb1ByZWZlcmVuY2UoQ29udGV4dCBjb250ZXh0KSB7CiAgICAgICAgIHRoaXMoY29udGV4dCwgbnVsbCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3ZpZXcvQ2hlY2thYmxlTGluZWFyTGF5b3V0LmphdmEgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvdmlldy9DaGVja2FibGVMaW5lYXJMYXlvdXQuamF2YQppbmRleCAzZmI3Y2VjLi4xYTU3ZTRlIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvdmlldy9DaGVja2FibGVMaW5lYXJMYXlvdXQuamF2YQorKysgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvdmlldy9DaGVja2FibGVMaW5lYXJMYXlvdXQuamF2YQpAQCAtMzcsOCArMzcsMTQgQEAKICAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBjb25zdHJ1Y3RvciBzdHViCiAgICAgfQogCi0gICAgcHVibGljIENoZWNrYWJsZUxpbmVhckxheW91dChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIENoZWNrYWJsZUxpbmVhckxheW91dChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWIKKyAgICB9CisKKyAgICBwdWJsaWMgQ2hlY2thYmxlTGluZWFyTGF5b3V0KAorICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YgogICAgIH0KIApkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3ZpZXcvSUlucHV0TWV0aG9kTWFuYWdlci5haWRsIGIvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3ZpZXcvSUlucHV0TWV0aG9kTWFuYWdlci5haWRsCmluZGV4IDEyY2VkNjguLjMyNWEyN2QgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC92aWV3L0lJbnB1dE1ldGhvZE1hbmFnZXIuYWlkbAorKysgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvdmlldy9JSW5wdXRNZXRob2RNYW5hZ2VyLmFpZGwKQEAgLTc0LDQgKzc0LDYgQEAKICAgICBib29sZWFuIHNob3VsZE9mZmVyU3dpdGNoaW5nVG9OZXh0SW5wdXRNZXRob2QoaW4gSUJpbmRlciB0b2tlbik7CiAgICAgYm9vbGVhbiBzZXRJbnB1dE1ldGhvZEVuYWJsZWQoU3RyaW5nIGlkLCBib29sZWFuIGVuYWJsZWQpOwogICAgIG9uZXdheSB2b2lkIHNldEFkZGl0aW9uYWxJbnB1dE1ldGhvZFN1YnR5cGVzKFN0cmluZyBpZCwgaW4gSW5wdXRNZXRob2RTdWJ0eXBlW10gc3VidHlwZXMpOworICAgIGludCBnZXRJbnB1dE1ldGhvZFdpbmRvd1Zpc2libGVIZWlnaHQoKTsKKyAgICBvbmV3YXkgdm9pZCBub3RpZnlUZXh0Q29tbWl0dGVkKCk7CiB9CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvdmlldy9tZW51L0FjdGlvbk1lbnVJdGVtVmlldy5qYXZhIGIvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3ZpZXcvbWVudS9BY3Rpb25NZW51SXRlbVZpZXcuamF2YQppbmRleCAyMzhhOWMwLi5jMTRkNTg3IDEwMDY0NAotLS0gYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvdmlldy9tZW51L0FjdGlvbk1lbnVJdGVtVmlldy5qYXZhCisrKyBiL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC92aWV3L21lbnUvQWN0aW9uTWVudUl0ZW1WaWV3LmphdmEKQEAgLTYwLDEzICs2MCwxNyBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCAwKTsKICAgICB9CiAKLSAgICBwdWJsaWMgQWN0aW9uTWVudUl0ZW1WaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgQWN0aW9uTWVudUl0ZW1WaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIEFjdGlvbk1lbnVJdGVtVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgZmluYWwgUmVzb3VyY2VzIHJlcyA9IGNvbnRleHQuZ2V0UmVzb3VyY2VzKCk7CiAgICAgICAgIG1BbGxvd1RleHRXaXRoSWNvbiA9IHJlcy5nZXRCb29sZWFuKAogICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYm9vbC5jb25maWdfYWxsb3dBY3Rpb25NZW51SXRlbVRleHRXaXRoSWNvbik7Ci0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5BY3Rpb25NZW51SXRlbVZpZXcsIDAsIDApOworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCisgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuQWN0aW9uTWVudUl0ZW1WaWV3LCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKICAgICAgICAgbU1pbldpZHRoID0gYS5nZXREaW1lbnNpb25QaXhlbFNpemUoCiAgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuQWN0aW9uTWVudUl0ZW1WaWV3X21pbldpZHRoLCAwKTsKICAgICAgICAgYS5yZWN5Y2xlKCk7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvdmlldy9tZW51L0ljb25NZW51SXRlbVZpZXcuamF2YSBiL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC92aWV3L21lbnUvSWNvbk1lbnVJdGVtVmlldy5qYXZhCmluZGV4IDVkMGIyNWYuLmRlNWUyNzkgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC92aWV3L21lbnUvSWNvbk1lbnVJdGVtVmlldy5qYXZhCisrKyBiL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC92aWV3L21lbnUvSWNvbk1lbnVJdGVtVmlldy5qYXZhCkBAIC01Nyw4ICs1Nyw4IEBACiAgICAgCiAgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNQcmVwZW5kU2hvcnRjdXRMYWJlbDsKIAotICAgIHB1YmxpYyBJY29uTWVudUl0ZW1WaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMpOworICAgIHB1YmxpYyBJY29uTWVudUl0ZW1WaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIGlmIChzUHJlcGVuZFNob3J0Y3V0TGFiZWwgPT0gbnVsbCkgewogICAgICAgICAgICAgLyoKQEAgLTY4LDEwICs2OCw5IEBACiAgICAgICAgICAgICBzUHJlcGVuZFNob3J0Y3V0TGFiZWwgPSBnZXRSZXNvdXJjZXMoKS5nZXRTdHJpbmcoCiAgICAgICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3RyaW5nLnByZXBlbmRfc2hvcnRjdXRfbGFiZWwpOwogICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBUeXBlZEFycmF5IGEgPQotICAgICAgICAgICAgY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAotICAgICAgICAgICAgICAgIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5NZW51VmlldywgZGVmU3R5bGUsIDApOworCisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuTWVudVZpZXcsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogCiAgICAgICAgIG1EaXNhYmxlZEFscGhhID0gYS5nZXRGbG9hdCgKICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5NZW51Vmlld19pdGVtSWNvbkRpc2FibGVkQWxwaGEsIDAuOGYpOwpAQCAtODEsNyArODAsMTEgQEAKICAgICAgICAgCiAgICAgICAgIGEucmVjeWNsZSgpOwogICAgIH0KLSAgICAKKworICAgIHB1YmxpYyBJY29uTWVudUl0ZW1WaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCiAgICAgcHVibGljIEljb25NZW51SXRlbVZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgMCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3ZpZXcvbWVudS9MaXN0TWVudUl0ZW1WaWV3LmphdmEgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvdmlldy9tZW51L0xpc3RNZW51SXRlbVZpZXcuamF2YQppbmRleCBhMmE0YWNjLi42OTJiZGFjIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvdmlldy9tZW51L0xpc3RNZW51SXRlbVZpZXcuamF2YQorKysgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvdmlldy9tZW51L0xpc3RNZW51SXRlbVZpZXcuamF2YQpAQCAtNTUsMTMgKzU1LDEzIEBACiAKICAgICBwcml2YXRlIGJvb2xlYW4gbUZvcmNlU2hvd0ljb247CiAKLSAgICBwdWJsaWMgTGlzdE1lbnVJdGVtVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzKTsKLSAgICAKLSAgICAgICAgVHlwZWRBcnJheSBhID0KLSAgICAgICAgICAgIGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKLSAgICAgICAgICAgICAgICBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuTWVudVZpZXcsIGRlZlN0eWxlLCAwKTsKLSAgICAgICAgCisgICAgcHVibGljIExpc3RNZW51SXRlbVZpZXcoCisgICAgICAgICAgICBDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKworICAgICAgICBmaW5hbCBUeXBlZEFycmF5IGEgPSBjb250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLk1lbnVWaWV3LCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKwogICAgICAgICBtQmFja2dyb3VuZCA9IGEuZ2V0RHJhd2FibGUoY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuTWVudVZpZXdfaXRlbUJhY2tncm91bmQpOwogICAgICAgICBtVGV4dEFwcGVhcmFuY2UgPSBhLmdldFJlc291cmNlSWQoY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51Vmlld19pdGVtVGV4dEFwcGVhcmFuY2UsIC0xKTsKQEAgLTcyLDYgKzcyLDEwIEBACiAgICAgICAgIGEucmVjeWNsZSgpOwogICAgIH0KIAorICAgIHB1YmxpYyBMaXN0TWVudUl0ZW1WaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCiAgICAgcHVibGljIExpc3RNZW51SXRlbVZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKICAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgMCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3dpZGdldC9BYnNBY3Rpb25CYXJWaWV3LmphdmEgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvd2lkZ2V0L0Fic0FjdGlvbkJhclZpZXcuamF2YQppbmRleCBmMzg5MWM3Li42ZWE3MzcyIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvd2lkZ2V0L0Fic0FjdGlvbkJhclZpZXcuamF2YQorKysgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvd2lkZ2V0L0Fic0FjdGlvbkJhclZpZXcuamF2YQpAQCAtNDcsMTUgKzQ3LDIwIEBACiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZBREVfRFVSQVRJT04gPSAyMDA7CiAKICAgICBwdWJsaWMgQWJzQWN0aW9uQmFyVmlldyhDb250ZXh0IGNvbnRleHQpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCk7CisgICAgICAgIHRoaXMoY29udGV4dCwgbnVsbCk7CiAgICAgfQogCiAgICAgcHVibGljIEFic0FjdGlvbkJhclZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMpOworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCAwKTsKICAgICB9CiAKLSAgICBwdWJsaWMgQWJzQWN0aW9uQmFyVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIEFic0FjdGlvbkJhclZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCAwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQWJzQWN0aW9uQmFyVmlldygKKyAgICAgICAgICAgIENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgIH0KIAogICAgIEBPdmVycmlkZQpkaWZmIC0tZ2l0IGEvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3dpZGdldC9BY3Rpb25CYXJDb250ZXh0Vmlldy5qYXZhIGIvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3dpZGdldC9BY3Rpb25CYXJDb250ZXh0Vmlldy5qYXZhCmluZGV4IDhiYzEwODEuLmIzNGI1NDEgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC93aWRnZXQvQWN0aW9uQmFyQ29udGV4dFZpZXcuamF2YQorKysgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvd2lkZ2V0L0FjdGlvbkJhckNvbnRleHRWaWV3LmphdmEKQEAgLTc0LDEwICs3NCwxNiBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmF0dHIuYWN0aW9uTW9kZVN0eWxlKTsKICAgICB9CiAgICAgCi0gICAgcHVibGljIEFjdGlvbkJhckNvbnRleHRWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKLSAgICAgICAgCi0gICAgICAgIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhhdHRycywgUi5zdHlsZWFibGUuQWN0aW9uTW9kZSwgZGVmU3R5bGUsIDApOworICAgIHB1YmxpYyBBY3Rpb25CYXJDb250ZXh0VmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBBY3Rpb25CYXJDb250ZXh0VmlldygKKyAgICAgICAgICAgIENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOworCisgICAgICAgIGZpbmFsIFR5cGVkQXJyYXkgYSA9IGNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcygKKyAgICAgICAgICAgICAgICBhdHRycywgUi5zdHlsZWFibGUuQWN0aW9uTW9kZSwgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgICAgIHNldEJhY2tncm91bmREcmF3YWJsZShhLmdldERyYXdhYmxlKAogICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkFjdGlvbk1vZGVfYmFja2dyb3VuZCkpOwogICAgICAgICBtVGl0bGVTdHlsZVJlcyA9IGEuZ2V0UmVzb3VyY2VJZCgKZGlmZiAtLWdpdCBhL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC93aWRnZXQvRGlhbG9nVGl0bGUuamF2YSBiL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC93aWRnZXQvRGlhbG9nVGl0bGUuamF2YQppbmRleCBiODZjNDM4Li43ZWEzZDZiIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvd2lkZ2V0L0RpYWxvZ1RpdGxlLmphdmEKKysrIGIvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3dpZGdldC9EaWFsb2dUaXRsZS5qYXZhCkBAIC0yOCwxMCArMjgsMTMgQEAKICAqIHRoZSB0ZXh0IHRvIHRoZSBhdmFpbGFibGUgc3BhY2UuCiAgKi8KIHB1YmxpYyBjbGFzcyBEaWFsb2dUaXRsZSBleHRlbmRzIFRleHRWaWV3IHsKLSAgICAKLSAgICBwdWJsaWMgRGlhbG9nVGl0bGUoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsCi0gICAgICAgICAgICBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKworICAgIHB1YmxpYyBEaWFsb2dUaXRsZShDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGlhbG9nVGl0bGUoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0cik7CiAgICAgfQogCiAgICAgcHVibGljIERpYWxvZ1RpdGxlKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvd2lkZ2V0L1Bhc3N3b3JkRW50cnlLZXlib2FyZFZpZXcuamF2YSBiL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC93aWRnZXQvUGFzc3dvcmRFbnRyeUtleWJvYXJkVmlldy5qYXZhCmluZGV4IGIzN2FkZmYuLmQyNzM0NmIgMTAwNjQ0Ci0tLSBhL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC93aWRnZXQvUGFzc3dvcmRFbnRyeUtleWJvYXJkVmlldy5qYXZhCisrKyBiL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC93aWRnZXQvUGFzc3dvcmRFbnRyeUtleWJvYXJkVmlldy5qYXZhCkBAIC0yOSwxMSArMjksMTYgQEAKICAgICBzdGF0aWMgZmluYWwgaW50IEtFWUNPREVfTkVYVF9MQU5HVUFHRSA9IC0xMDQ7CiAKICAgICBwdWJsaWMgUGFzc3dvcmRFbnRyeUtleWJvYXJkVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycyk7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIDApOwogICAgIH0KIAotICAgIHB1YmxpYyBQYXNzd29yZEVudHJ5S2V5Ym9hcmRWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgUGFzc3dvcmRFbnRyeUtleWJvYXJkVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIDApOworICAgIH0KKworICAgIHB1YmxpYyBQYXNzd29yZEVudHJ5S2V5Ym9hcmRWaWV3KAorICAgICAgICAgICAgQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZUF0dHIsIGludCBkZWZTdHlsZVJlcykgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAgICAgfQogCiAgICAgQE92ZXJyaWRlCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvd2lkZ2V0L1NpemVBZGFwdGl2ZUxheW91dC5qYXZhIGIvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3dpZGdldC9TaXplQWRhcHRpdmVMYXlvdXQuamF2YQppbmRleCBiYTExM2EzLi43MjYwNjU2NSAxMDA2NDQKLS0tIGEvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3dpZGdldC9TaXplQWRhcHRpdmVMYXlvdXQuamF2YQorKysgYi9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvd2lkZ2V0L1NpemVBZGFwdGl2ZUxheW91dC5qYXZhCkBAIC03OSwxNyArNzksMjAgQEAKICAgICBwcml2YXRlIGludCBtTW9kZXN0eVBhbmVsVG9wOwogCiAgICAgcHVibGljIFNpemVBZGFwdGl2ZUxheW91dChDb250ZXh0IGNvbnRleHQpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCk7Ci0gICAgICAgIGluaXRpYWxpemUoKTsKKyAgICAgICAgdGhpcyhjb250ZXh0LCBudWxsKTsKICAgICB9CiAKICAgICBwdWJsaWMgU2l6ZUFkYXB0aXZlTGF5b3V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzKTsKLSAgICAgICAgaW5pdGlhbGl6ZSgpOworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCAwKTsKICAgICB9CiAKLSAgICBwdWJsaWMgU2l6ZUFkYXB0aXZlTGF5b3V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgU2l6ZUFkYXB0aXZlTGF5b3V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIFNpemVBZGFwdGl2ZUxheW91dCgKKyAgICAgICAgICAgIENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKKyAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgZGVmU3R5bGVSZXMpOwogICAgICAgICBpbml0aWFsaXplKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvd2lkZ2V0L1N1YnRpdGxlVmlldy5qYXZhIGIvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3dpZGdldC9TdWJ0aXRsZVZpZXcuamF2YQppbmRleCAwNzExOTNjLi4wNjM0NjhkIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvd2lkZ2V0L1N1YnRpdGxlVmlldy5qYXZhCisrKyBiL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC93aWRnZXQvU3VidGl0bGVWaWV3LmphdmEKQEAgLTc5LDEyICs3OSwxNSBAQAogICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCAwKTsKICAgICB9CiAKLSAgICBwdWJsaWMgU3VidGl0bGVWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKKyAgICBwdWJsaWMgU3VidGl0bGVWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIFN1YnRpdGxlVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CiAgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzKTsKIAotICAgICAgICBmaW5hbCBUaGVtZSB0aGVtZSA9IGNvbnRleHQuZ2V0VGhlbWUoKTsKLSAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gdGhlbWUub2J0YWluU3R5bGVkQXR0cmlidXRlcygKLSAgICAgICAgICAgICAgICAgICAgYXR0cnMsIGFuZHJvaWQuUi5zdHlsZWFibGUuVGV4dFZpZXcsIGRlZlN0eWxlLCAwKTsKKyAgICAgICAgZmluYWwgVHlwZWRBcnJheSBhID0gY29udGV4dC5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAorICAgICAgICAgICAgICAgICAgICBhdHRycywgYW5kcm9pZC5SLnN0eWxlYWJsZS5UZXh0VmlldywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7CiAKICAgICAgICAgQ2hhclNlcXVlbmNlIHRleHQgPSAiIjsKICAgICAgICAgaW50IHRleHRTaXplID0gMTU7CmRpZmYgLS1naXQgYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvd2lkZ2V0L1RleHRQcm9ncmVzc0Jhci5qYXZhIGIvY29yZS9qYXZhL2NvbS9hbmRyb2lkL2ludGVybmFsL3dpZGdldC9UZXh0UHJvZ3Jlc3NCYXIuamF2YQppbmRleCBlODk4YWE0Li40ODAwM2MwIDEwMDY0NAotLS0gYS9jb3JlL2phdmEvY29tL2FuZHJvaWQvaW50ZXJuYWwvd2lkZ2V0L1RleHRQcm9ncmVzc0Jhci5qYXZhCisrKyBiL2NvcmUvamF2YS9jb20vYW5kcm9pZC9pbnRlcm5hbC93aWRnZXQvVGV4dFByb2dyZXNzQmFyLmphdmEKQEAgLTU5LDkgKzU5LDEzIEBACiAKICAgICBib29sZWFuIG1DaHJvbm9tZXRlckZvbGxvdyA9IGZhbHNlOwogICAgIGludCBtQ2hyb25vbWV0ZXJHcmF2aXR5ID0gR3Jhdml0eS5OT19HUkFWSVRZOworCisgICAgcHVibGljIFRleHRQcm9ncmVzc0JhcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKKyAgICB9CiAgICAgCi0gICAgcHVibGljIFRleHRQcm9ncmVzc0JhcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7CisgICAgcHVibGljIFRleHRQcm9ncmVzc0JhcihDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0cikgeworICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGVBdHRyKTsKICAgICB9CiAKICAgICBwdWJsaWMgVGV4dFByb2dyZXNzQmFyKENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7CmRpZmYgLS1naXQgYS9jb3JlL2puaS9BbmRyb2lkUnVudGltZS5jcHAgYi9jb3JlL2puaS9BbmRyb2lkUnVudGltZS5jcHAKaW5kZXggMDk1NzdkYS4uMWNjZTI2MyAxMDA2NDQKLS0tIGEvY29yZS9qbmkvQW5kcm9pZFJ1bnRpbWUuY3BwCisrKyBiL2NvcmUvam5pL0FuZHJvaWRSdW50aW1lLmNwcApAQCAtMTAyMiw3ICsxMDIyLDggQEAKICAgICB2b2lkKiogYXJncyA9ICh2b2lkKiopIG1hbGxvYygzICogc2l6ZW9mKHZvaWQqKSk7ICAgLy8gamF2YVRocmVhZFNoZWxsIG11c3QgZnJlZQogICAgIGludCByZXN1bHQ7CiAKLSAgICBhc3NlcnQodGhyZWFkTmFtZSAhPSBOVUxMKTsKKyAgICBpZiAoIXRocmVhZE5hbWUpCisgICAgICAgIHRocmVhZE5hbWUgPSAidW5uYW1lZCB0aHJlYWQiOwogCiAgICAgYXJnc1swXSA9ICh2b2lkKikgZW50cnlGdW5jdGlvbjsKICAgICBhcmdzWzFdID0gdXNlckRhdGE7CmRpZmYgLS1naXQgYS9jb3JlL2puaS9hbmRyb2lkL2dyYXBoaWNzL0JpdG1hcFJlZ2lvbkRlY29kZXIuY3BwIGIvY29yZS9qbmkvYW5kcm9pZC9ncmFwaGljcy9CaXRtYXBSZWdpb25EZWNvZGVyLmNwcAppbmRleCBlZTQ3YWM0Li41YjBlZDBkIDEwMDY0NAotLS0gYS9jb3JlL2puaS9hbmRyb2lkL2dyYXBoaWNzL0JpdG1hcFJlZ2lvbkRlY29kZXIuY3BwCisrKyBiL2NvcmUvam5pL2FuZHJvaWQvZ3JhcGhpY3MvQml0bWFwUmVnaW9uRGVjb2Rlci5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJDcmVhdGVKYXZhT3V0cHV0U3RyZWFtQWRhcHRvci5oIgogI2luY2x1ZGUgIlV0aWxzLmgiCiAjaW5jbHVkZSAiSk5JSGVscC5oIgotI2luY2x1ZGUgIlNrVFNjb3BlZFB0ci5oIgogCiAjaW5jbHVkZSA8YW5kcm9pZF9ydW50aW1lL0FuZHJvaWRSdW50aW1lLmg+CiAjaW5jbHVkZSAiYW5kcm9pZF91dGlsX0JpbmRlci5oIgpAQCAtMjE1LDcgKzIxNCw3IEBACiAgICAgcmVnaW9uLmZSaWdodCA9IHN0YXJ0X3ggKyB3aWR0aDsKICAgICByZWdpb24uZkJvdHRvbSA9IHN0YXJ0X3kgKyBoZWlnaHQ7CiAgICAgU2tCaXRtYXAqIGJpdG1hcCA9IE5VTEw7Ci0gICAgU2tUU2NvcGVkUHRyPFNrQml0bWFwPiBhZGI7CisgICAgU2tBdXRvVERlbGV0ZTxTa0JpdG1hcD4gYWRiOwogCiAgICAgaWYgKHRpbGVCaXRtYXAgIT0gTlVMTCkgewogICAgICAgICAvLyBSZS11c2UgYml0bWFwLgpAQCAtMjQ2LDcgKzI0NSw3IEBACiAgICAgfQogCiAgICAgLy8gZGV0YWNoIGJpdG1hcCBmcm9tIGl0cyBhdXRvZGVsZXRlciwgc2luY2Ugd2Ugd2FudCB0byBvd24gaXQgbm93Ci0gICAgYWRiLnJlbGVhc2UoKTsKKyAgICBhZGIuZGV0YWNoKCk7CiAKICAgICBKYXZhUGl4ZWxBbGxvY2F0b3IqIGFsbG9jYXRvciA9IChKYXZhUGl4ZWxBbGxvY2F0b3IqKSBkZWNvZGVyLT5nZXRBbGxvY2F0b3IoKTsKICAgICBqYnl0ZUFycmF5IGJ1ZmYgPSBhbGxvY2F0b3ItPmdldFN0b3JhZ2VPYmpBbmRSZXNldCgpOwpkaWZmIC0tZ2l0IGEvY29yZS9qbmkvYW5kcm9pZC9ncmFwaGljcy9Db2xvckZpbHRlci5jcHAgYi9jb3JlL2puaS9hbmRyb2lkL2dyYXBoaWNzL0NvbG9yRmlsdGVyLmNwcAppbmRleCBkZDExNzdiLi4yNjE2OWU3IDEwMDY0NAotLS0gYS9jb3JlL2puaS9hbmRyb2lkL2dyYXBoaWNzL0NvbG9yRmlsdGVyLmNwcAorKysgYi9jb3JlL2puaS9hbmRyb2lkL2dyYXBoaWNzL0NvbG9yRmlsdGVyLmNwcApAQCAtMzMsMTAgKzMzLDEwIEBACiBjbGFzcyBTa0NvbG9yRmlsdGVyR2x1ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZmluYWxpemVyKEpOSUVudiogZW52LCBqb2JqZWN0IGNsYXp6LCBTa0NvbG9yRmlsdGVyKiBvYmosIFNraWFDb2xvckZpbHRlciogZikgewotICAgICAgICBTa1NhZmVVbnJlZihvYmopOworICAgICAgICBpZiAob2JqKSBTa1NhZmVVbnJlZihvYmopOwogICAgICAgICAvLyBmID09IE5VTEwgd2hlbiBub3QgIVVTRV9PUEVOR0xfUkVOREVSRVIsIHNvIG5vIG5lZWQgdG8gZGVsZXRlIG91dHNpZGUgdGhlIGlmZGVmCiAjaWZkZWYgVVNFX09QRU5HTF9SRU5ERVJFUgotICAgICAgICBpZiAoYW5kcm9pZDo6dWlyZW5kZXJlcjo6Q2FjaGVzOjpoYXNJbnN0YW5jZSgpKSB7CisgICAgICAgIGlmIChmICYmIGFuZHJvaWQ6OnVpcmVuZGVyZXI6OkNhY2hlczo6aGFzSW5zdGFuY2UoKSkgewogICAgICAgICAgICAgYW5kcm9pZDo6dWlyZW5kZXJlcjo6Q2FjaGVzOjpnZXRJbnN0YW5jZSgpLnJlc291cmNlQ2FjaGUuZGVzdHJ1Y3RvcihmKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGRlbGV0ZSBmOwpAQCAtMTEyLDcgKzExMiw3IEBACiB9OwogCiBzdGF0aWMgSk5JTmF0aXZlTWV0aG9kIGNvbG9yZmlsdGVyX21ldGhvZHNbXSA9IHsKLSAgICB7ImZpbmFsaXplciIsICIoSUkpViIsICh2b2lkKikgU2tDb2xvckZpbHRlckdsdWU6OmZpbmFsaXplcn0KKyAgICB7ImRlc3Ryb3lGaWx0ZXIiLCAiKElJKVYiLCAodm9pZCopIFNrQ29sb3JGaWx0ZXJHbHVlOjpmaW5hbGl6ZXJ9CiB9OwogCiBzdGF0aWMgSk5JTmF0aXZlTWV0aG9kIHBvcnRlcmR1ZmZfbWV0aG9kc1tdID0gewpkaWZmIC0tZ2l0IGEvY29yZS9qbmkvYW5kcm9pZF9hbmltYXRpb25fUHJvcGVydHlWYWx1ZXNIb2xkZXIuY3BwIGIvY29yZS9qbmkvYW5kcm9pZF9hbmltYXRpb25fUHJvcGVydHlWYWx1ZXNIb2xkZXIuY3BwCmluZGV4IDU5OTE4MDUuLjczMzQ3ZWEgMTAwNjQ0Ci0tLSBhL2NvcmUvam5pL2FuZHJvaWRfYW5pbWF0aW9uX1Byb3BlcnR5VmFsdWVzSG9sZGVyLmNwcAorKysgYi9jb3JlL2puaS9hbmRyb2lkX2FuaW1hdGlvbl9Qcm9wZXJ0eVZhbHVlc0hvbGRlci5jcHAKQEAgLTQ3LDYgKzQ3LDMyIEBACiAgICAgcmV0dXJuIG1pZDsKIH0KIAorc3RhdGljIGptZXRob2RJRCBnZXRNdWx0aXBhcmFtZXRlck1ldGhvZChKTklFbnYqIGVudiwgamNsYXNzIHRhcmdldENsYXNzLCBqc3RyaW5nIG1ldGhvZE5hbWUsCisgICAgamludCBwYXJhbWV0ZXJDb3VudCwgY2hhciBwYXJhbWV0ZXJUeXBlKQoreworICAgIGNvbnN0IGNoYXIgKm5hdGl2ZVN0cmluZyA9IGVudi0+R2V0U3RyaW5nVVRGQ2hhcnMobWV0aG9kTmFtZSwgMCk7CisgICAgY2hhciAqc2lnbmF0dXJlID0gbmV3IGNoYXJbcGFyYW1ldGVyQ291bnQgKyA0XTsKKyAgICBzaWduYXR1cmVbMF0gPSAnKCc7CisgICAgbWVtc2V0KCYoc2lnbmF0dXJlWzFdKSwgcGFyYW1ldGVyVHlwZSwgcGFyYW1ldGVyQ291bnQpOworICAgIHN0cmNweSgmKHNpZ25hdHVyZVtwYXJhbWV0ZXJDb3VudCArIDFdKSwgIilWIik7CisgICAgam1ldGhvZElEIG1pZCA9IGVudi0+R2V0TWV0aG9kSUQodGFyZ2V0Q2xhc3MsIG5hdGl2ZVN0cmluZywgc2lnbmF0dXJlKTsKKyAgICBkZWxldGVbXSBzaWduYXR1cmU7CisgICAgZW52LT5SZWxlYXNlU3RyaW5nVVRGQ2hhcnMobWV0aG9kTmFtZSwgbmF0aXZlU3RyaW5nKTsKKyAgICByZXR1cm4gbWlkOworfQorCitzdGF0aWMgam1ldGhvZElEIGFuZHJvaWRfYW5pbWF0aW9uX1Byb3BlcnR5VmFsdWVzSG9sZGVyX2dldE11bHRpcGxlRmxvYXRNZXRob2QoCisgICAgICAgIEpOSUVudiogZW52LCBqY2xhc3MgcHZoQ2xhc3MsIGpjbGFzcyB0YXJnZXRDbGFzcywganN0cmluZyBtZXRob2ROYW1lLCBqaW50IHBhcmFtZXRlckNvdW50KQoreworICAgIHJldHVybiBnZXRNdWx0aXBhcmFtZXRlck1ldGhvZChlbnYsIHRhcmdldENsYXNzLCBtZXRob2ROYW1lLCBwYXJhbWV0ZXJDb3VudCwgJ0YnKTsKK30KKworc3RhdGljIGptZXRob2RJRCBhbmRyb2lkX2FuaW1hdGlvbl9Qcm9wZXJ0eVZhbHVlc0hvbGRlcl9nZXRNdWx0aXBsZUludE1ldGhvZCgKKyAgICAgICAgSk5JRW52KiBlbnYsIGpjbGFzcyBwdmhDbGFzcywgamNsYXNzIHRhcmdldENsYXNzLCBqc3RyaW5nIG1ldGhvZE5hbWUsIGppbnQgcGFyYW1ldGVyQ291bnQpCit7CisgICAgcmV0dXJuIGdldE11bHRpcGFyYW1ldGVyTWV0aG9kKGVudiwgdGFyZ2V0Q2xhc3MsIG1ldGhvZE5hbWUsIHBhcmFtZXRlckNvdW50LCAnSScpOworfQorCiBzdGF0aWMgdm9pZCBhbmRyb2lkX2FuaW1hdGlvbl9Qcm9wZXJ0eVZhbHVlc0hvbGRlcl9jYWxsSW50TWV0aG9kKAogICAgICAgICBKTklFbnYqIGVudiwgamNsYXNzIHB2aE9iamVjdCwgam9iamVjdCB0YXJnZXQsIGptZXRob2RJRCBtZXRob2RJRCwgaW50IGFyZykKIHsKQEAgLTU5LDE1ICs4NSw4NSBAQAogICAgIGVudi0+Q2FsbFZvaWRNZXRob2QodGFyZ2V0LCBtZXRob2RJRCwgYXJnKTsKIH0KIAorc3RhdGljIHZvaWQgYW5kcm9pZF9hbmltYXRpb25fUHJvcGVydHlWYWx1ZXNIb2xkZXJfY2FsbFR3b0Zsb2F0TWV0aG9kKAorICAgICAgICBKTklFbnYqIGVudiwgamNsYXNzIHB2aE9iamVjdCwgam9iamVjdCB0YXJnZXQsIGptZXRob2RJRCBtZXRob2RJRCwgZmxvYXQgYXJnMSwgZmxvYXQgYXJnMikKK3sKKyAgICBlbnYtPkNhbGxWb2lkTWV0aG9kKHRhcmdldCwgbWV0aG9kSUQsIGFyZzEsIGFyZzIpOworfQorCitzdGF0aWMgdm9pZCBhbmRyb2lkX2FuaW1hdGlvbl9Qcm9wZXJ0eVZhbHVlc0hvbGRlcl9jYWxsRm91ckZsb2F0TWV0aG9kKAorICAgICAgICBKTklFbnYqIGVudiwgamNsYXNzIHB2aE9iamVjdCwgam9iamVjdCB0YXJnZXQsIGptZXRob2RJRCBtZXRob2RJRCwgZmxvYXQgYXJnMSwgZmxvYXQgYXJnMiwKKyAgICAgICAgZmxvYXQgYXJnMywgZmxvYXQgYXJnNCkKK3sKKyAgICBlbnYtPkNhbGxWb2lkTWV0aG9kKHRhcmdldCwgbWV0aG9kSUQsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpOworfQorCitzdGF0aWMgdm9pZCBhbmRyb2lkX2FuaW1hdGlvbl9Qcm9wZXJ0eVZhbHVlc0hvbGRlcl9jYWxsTXVsdGlwbGVGbG9hdE1ldGhvZCgKKyAgICAgICAgSk5JRW52KiBlbnYsIGpjbGFzcyBwdmhPYmplY3QsIGpvYmplY3QgdGFyZ2V0LCBqbWV0aG9kSUQgbWV0aG9kSUQsIGpmbG9hdEFycmF5IGFyZykKK3sKKyAgICBqc2l6ZSBwYXJhbWV0ZXJDb3VudCA9IGVudi0+R2V0QXJyYXlMZW5ndGgoYXJnKTsKKyAgICBqZmxvYXQgKmZsb2F0VmFsdWVzID0gZW52LT5HZXRGbG9hdEFycmF5RWxlbWVudHMoYXJnLCBOVUxMKTsKKyAgICBqdmFsdWUqIHZhbHVlcyA9IG5ldyBqdmFsdWVbcGFyYW1ldGVyQ291bnRdOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGFyYW1ldGVyQ291bnQ7IGkrKykgeworICAgICAgICB2YWx1ZXNbaV0uZiA9IGZsb2F0VmFsdWVzW2ldOworICAgIH0KKyAgICBlbnYtPkNhbGxWb2lkTWV0aG9kQSh0YXJnZXQsIG1ldGhvZElELCB2YWx1ZXMpOworICAgIGRlbGV0ZVtdIHZhbHVlczsKKyAgICBlbnYtPlJlbGVhc2VGbG9hdEFycmF5RWxlbWVudHMoYXJnLCBmbG9hdFZhbHVlcywgSk5JX0FCT1JUKTsKK30KKworc3RhdGljIHZvaWQgYW5kcm9pZF9hbmltYXRpb25fUHJvcGVydHlWYWx1ZXNIb2xkZXJfY2FsbFR3b0ludE1ldGhvZCgKKyAgICAgICAgSk5JRW52KiBlbnYsIGpjbGFzcyBwdmhPYmplY3QsIGpvYmplY3QgdGFyZ2V0LCBqbWV0aG9kSUQgbWV0aG9kSUQsIGludCBhcmcxLCBpbnQgYXJnMikKK3sKKyAgICBlbnYtPkNhbGxWb2lkTWV0aG9kKHRhcmdldCwgbWV0aG9kSUQsIGFyZzEsIGFyZzIpOworfQorCitzdGF0aWMgdm9pZCBhbmRyb2lkX2FuaW1hdGlvbl9Qcm9wZXJ0eVZhbHVlc0hvbGRlcl9jYWxsRm91ckludE1ldGhvZCgKKyAgICAgICAgSk5JRW52KiBlbnYsIGpjbGFzcyBwdmhPYmplY3QsIGpvYmplY3QgdGFyZ2V0LCBqbWV0aG9kSUQgbWV0aG9kSUQsIGludCBhcmcxLCBpbnQgYXJnMiwKKyAgICAgICAgaW50IGFyZzMsIGludCBhcmc0KQoreworICAgIGVudi0+Q2FsbFZvaWRNZXRob2QodGFyZ2V0LCBtZXRob2RJRCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCk7Cit9CisKK3N0YXRpYyB2b2lkIGFuZHJvaWRfYW5pbWF0aW9uX1Byb3BlcnR5VmFsdWVzSG9sZGVyX2NhbGxNdWx0aXBsZUludE1ldGhvZCgKKyAgICAgICAgSk5JRW52KiBlbnYsIGpjbGFzcyBwdmhPYmplY3QsIGpvYmplY3QgdGFyZ2V0LCBqbWV0aG9kSUQgbWV0aG9kSUQsIGppbnRBcnJheSBhcmcpCit7CisgICAganNpemUgcGFyYW1ldGVyQ291bnQgPSBlbnYtPkdldEFycmF5TGVuZ3RoKGFyZyk7CisgICAgamludCAqaW50VmFsdWVzID0gZW52LT5HZXRJbnRBcnJheUVsZW1lbnRzKGFyZywgTlVMTCk7CisgICAganZhbHVlKiB2YWx1ZXMgPSBuZXcganZhbHVlW3BhcmFtZXRlckNvdW50XTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhcmFtZXRlckNvdW50OyBpKyspIHsKKyAgICAgICAgdmFsdWVzW2ldLmkgPSBpbnRWYWx1ZXNbaV07CisgICAgfQorICAgIGVudi0+Q2FsbFZvaWRNZXRob2RBKHRhcmdldCwgbWV0aG9kSUQsIHZhbHVlcyk7CisgICAgZGVsZXRlW10gdmFsdWVzOworICAgIGVudi0+UmVsZWFzZUludEFycmF5RWxlbWVudHMoYXJnLCBpbnRWYWx1ZXMsIEpOSV9BQk9SVCk7Cit9CisKIHN0YXRpYyBKTklOYXRpdmVNZXRob2QgZ01ldGhvZHNbXSA9IHsKICAgICB7ICAgIm5HZXRJbnRNZXRob2QiLCAiKExqYXZhL2xhbmcvQ2xhc3M7TGphdmEvbGFuZy9TdHJpbmc7KUkiLAogICAgICAgICAgICAgKHZvaWQqKWFuZHJvaWRfYW5pbWF0aW9uX1Byb3BlcnR5VmFsdWVzSG9sZGVyX2dldEludE1ldGhvZCB9LAogICAgIHsgICAibkdldEZsb2F0TWV0aG9kIiwgIihMamF2YS9sYW5nL0NsYXNzO0xqYXZhL2xhbmcvU3RyaW5nOylJIiwKICAgICAgICAgICAgICh2b2lkKilhbmRyb2lkX2FuaW1hdGlvbl9Qcm9wZXJ0eVZhbHVlc0hvbGRlcl9nZXRGbG9hdE1ldGhvZCB9LAorICAgIHsgICAibkdldE11bHRpcGxlRmxvYXRNZXRob2QiLCAiKExqYXZhL2xhbmcvQ2xhc3M7TGphdmEvbGFuZy9TdHJpbmc7SSlJIiwKKyAgICAgICAgICAgICh2b2lkKilhbmRyb2lkX2FuaW1hdGlvbl9Qcm9wZXJ0eVZhbHVlc0hvbGRlcl9nZXRNdWx0aXBsZUZsb2F0TWV0aG9kIH0sCisgICAgeyAgICJuR2V0TXVsdGlwbGVJbnRNZXRob2QiLCAiKExqYXZhL2xhbmcvQ2xhc3M7TGphdmEvbGFuZy9TdHJpbmc7SSlJIiwKKyAgICAgICAgICAgICh2b2lkKilhbmRyb2lkX2FuaW1hdGlvbl9Qcm9wZXJ0eVZhbHVlc0hvbGRlcl9nZXRNdWx0aXBsZUludE1ldGhvZCB9LAogICAgIHsgICAibkNhbGxJbnRNZXRob2QiLCAiKExqYXZhL2xhbmcvT2JqZWN0O0lJKVYiLAogICAgICAgICAgICAgKHZvaWQqKWFuZHJvaWRfYW5pbWF0aW9uX1Byb3BlcnR5VmFsdWVzSG9sZGVyX2NhbGxJbnRNZXRob2QgfSwKICAgICB7ICAgIm5DYWxsRmxvYXRNZXRob2QiLCAiKExqYXZhL2xhbmcvT2JqZWN0O0lGKVYiLAotICAgICAgICAgICAgKHZvaWQqKWFuZHJvaWRfYW5pbWF0aW9uX1Byb3BlcnR5VmFsdWVzSG9sZGVyX2NhbGxGbG9hdE1ldGhvZCB9CisgICAgICAgICAgICAodm9pZCopYW5kcm9pZF9hbmltYXRpb25fUHJvcGVydHlWYWx1ZXNIb2xkZXJfY2FsbEZsb2F0TWV0aG9kIH0sCisgICAgeyAgICJuQ2FsbFR3b0Zsb2F0TWV0aG9kIiwgIihMamF2YS9sYW5nL09iamVjdDtJRkYpViIsCisgICAgICAgICAgICAodm9pZCopYW5kcm9pZF9hbmltYXRpb25fUHJvcGVydHlWYWx1ZXNIb2xkZXJfY2FsbFR3b0Zsb2F0TWV0aG9kIH0sCisgICAgeyAgICJuQ2FsbEZvdXJGbG9hdE1ldGhvZCIsICIoTGphdmEvbGFuZy9PYmplY3Q7SUZGRkYpViIsCisgICAgICAgICAgICAodm9pZCopYW5kcm9pZF9hbmltYXRpb25fUHJvcGVydHlWYWx1ZXNIb2xkZXJfY2FsbEZvdXJGbG9hdE1ldGhvZCB9LAorICAgIHsgICAibkNhbGxNdWx0aXBsZUZsb2F0TWV0aG9kIiwgIihMamF2YS9sYW5nL09iamVjdDtJW0YpViIsCisgICAgICAgICAgICAodm9pZCopYW5kcm9pZF9hbmltYXRpb25fUHJvcGVydHlWYWx1ZXNIb2xkZXJfY2FsbE11bHRpcGxlRmxvYXRNZXRob2QgfSwKKyAgICB7ICAgIm5DYWxsVHdvSW50TWV0aG9kIiwgIihMamF2YS9sYW5nL09iamVjdDtJSUkpViIsCisgICAgICAgICAgICAodm9pZCopYW5kcm9pZF9hbmltYXRpb25fUHJvcGVydHlWYWx1ZXNIb2xkZXJfY2FsbFR3b0ludE1ldGhvZCB9LAorICAgIHsgICAibkNhbGxGb3VySW50TWV0aG9kIiwgIihMamF2YS9sYW5nL09iamVjdDtJSUlJSSlWIiwKKyAgICAgICAgICAgICh2b2lkKilhbmRyb2lkX2FuaW1hdGlvbl9Qcm9wZXJ0eVZhbHVlc0hvbGRlcl9jYWxsRm91ckludE1ldGhvZCB9LAorICAgIHsgICAibkNhbGxNdWx0aXBsZUludE1ldGhvZCIsICIoTGphdmEvbGFuZy9PYmplY3Q7SVtJKVYiLAorICAgICAgICAgICAgKHZvaWQqKWFuZHJvaWRfYW5pbWF0aW9uX1Byb3BlcnR5VmFsdWVzSG9sZGVyX2NhbGxNdWx0aXBsZUludE1ldGhvZCB9LAogfTsKIAogaW50IHJlZ2lzdGVyX2FuZHJvaWRfYW5pbWF0aW9uX1Byb3BlcnR5VmFsdWVzSG9sZGVyKEpOSUVudiogZW52KQpkaWZmIC0tZ2l0IGEvY29yZS9qbmkvYW5kcm9pZF91dGlsX1Byb2Nlc3MuY3BwIGIvY29yZS9qbmkvYW5kcm9pZF91dGlsX1Byb2Nlc3MuY3BwCmluZGV4IDYwMTk3NWEuLmNiZWQ5OWYgMTAwNjQ0Ci0tLSBhL2NvcmUvam5pL2FuZHJvaWRfdXRpbF9Qcm9jZXNzLmNwcAorKysgYi9jb3JlL2puaS9hbmRyb2lkX3V0aWxfUHJvY2Vzcy5jcHAKQEAgLTM0NCwyMyArMzQ0LDYgQEAKICAgICByZXR1cm4gcHJpOwogfQogCi1qYm9vbGVhbiBhbmRyb2lkX29zX1Byb2Nlc3Nfc2V0T29tQWRqKEpOSUVudiogZW52LCBqb2JqZWN0IGNsYXp6LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaW50IHBpZCwgamludCBhZGopCi17Ci0jaWZkZWYgSEFWRV9PT01fQURKCi0gICAgY2hhciB0ZXh0WzY0XTsKLSAgICBzcHJpbnRmKHRleHQsICIvcHJvYy8lZC9vb21fYWRqIiwgcGlkKTsKLSAgICBpbnQgZmQgPSBvcGVuKHRleHQsIE9fV1JPTkxZKTsKLSAgICBpZiAoZmQgPj0gMCkgewotICAgICAgICBzcHJpbnRmKHRleHQsICIlZCIsIGFkaik7Ci0gICAgICAgIHdyaXRlKGZkLCB0ZXh0LCBzdHJsZW4odGV4dCkpOwotICAgICAgICBjbG9zZShmZCk7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBqYm9vbGVhbiBhbmRyb2lkX29zX1Byb2Nlc3Nfc2V0U3dhcHBpbmVzcyhKTklFbnYgKmVudiwgam9iamVjdCBjbGF6eiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppbnQgcGlkLCBqYm9vbGVhbiBpc19pbmNyZWFzZWQpCiB7CkBAIC0xMDIzLDcgKzEwMDYsNiBAQAogICAgIHsic2V0VGhyZWFkR3JvdXAiLCAgICAgICIoSUkpViIsICh2b2lkKilhbmRyb2lkX29zX1Byb2Nlc3Nfc2V0VGhyZWFkR3JvdXB9LAogICAgIHsic2V0UHJvY2Vzc0dyb3VwIiwgICAgICIoSUkpViIsICh2b2lkKilhbmRyb2lkX29zX1Byb2Nlc3Nfc2V0UHJvY2Vzc0dyb3VwfSwKICAgICB7ImdldFByb2Nlc3NHcm91cCIsICAgICAiKEkpSSIsICh2b2lkKilhbmRyb2lkX29zX1Byb2Nlc3NfZ2V0UHJvY2Vzc0dyb3VwfSwKLSAgICB7InNldE9vbUFkaiIsICAgIihJSSlaIiwgKHZvaWQqKWFuZHJvaWRfb3NfUHJvY2Vzc19zZXRPb21BZGp9LAogICAgIHsic2V0U3dhcHBpbmVzcyIsICAgIihJWilaIiwgKHZvaWQqKWFuZHJvaWRfb3NfUHJvY2Vzc19zZXRTd2FwcGluZXNzfSwKICAgICB7InNldEFyZ1YwIiwgICAgIihMamF2YS9sYW5nL1N0cmluZzspViIsICh2b2lkKilhbmRyb2lkX29zX1Byb2Nlc3Nfc2V0QXJnVjB9LAogICAgIHsic2V0VWlkIiwgIihJKUkiLCAodm9pZCopYW5kcm9pZF9vc19Qcm9jZXNzX3NldFVpZH0sCmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9BbmRyb2lkTWFuaWZlc3QueG1sIGIvY29yZS9yZXMvQW5kcm9pZE1hbmlmZXN0LnhtbAppbmRleCAyYzVjNmI1Li44ZjE1NDcxIDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9BbmRyb2lkTWFuaWZlc3QueG1sCisrKyBiL2NvcmUvcmVzL0FuZHJvaWRNYW5pZmVzdC54bWwKQEAgLTIxMDIsNiArMjEwMiwxMyBAQAogICAgICAgICBhbmRyb2lkOmRlc2NyaXB0aW9uPSJAc3RyaW5nL3Blcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIKICAgICAgICAgYW5kcm9pZDpwcm90ZWN0aW9uTGV2ZWw9InNpZ25hdHVyZXxzeXN0ZW0iIC8+CiAKKyAgICA8IS0tIEFsbG93cyBhbiBhcHBsaWNhdGlvbiB0byB1c2UgSW5wdXRGbGluZ2VyJ3MgbG93IGxldmVsIGZlYXR1cmVzLgorICAgIDxwPk5vdCBmb3IgdXNlIGJ5IHRoaXJkLXBhcnR5IGFwcGxpY2F0aW9ucy4gLS0+CisgICAgPHBlcm1pc3Npb24gYW5kcm9pZDpuYW1lPSJhbmRyb2lkLnBlcm1pc3Npb24uQUNDRVNTX0lOUFVUX0ZMSU5HRVIiCisgICAgICAgIGFuZHJvaWQ6bGFiZWw9IkBzdHJpbmcvcGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiCisgICAgICAgIGFuZHJvaWQ6ZGVzY3JpcHRpb249IkBzdHJpbmcvcGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIgorICAgICAgICBhbmRyb2lkOnByb3RlY3Rpb25MZXZlbD0ic2lnbmF0dXJlIiAvPgorCiAgICAgPCEtLSBBbGxvd3MgYW4gYXBwbGljYXRpb24gdG8gY29uZmlndXJlIGFuZCBjb25uZWN0IHRvIFdpZmkgZGlzcGxheXMKICAgICAgICAgIEBoaWRlIC0tPgogICAgIDxwZXJtaXNzaW9uIGFuZHJvaWQ6bmFtZT0iYW5kcm9pZC5wZXJtaXNzaW9uLkNPTkZJR1VSRV9XSUZJX0RJU1BMQVkiCmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvZHJhd2FibGUtaGRwaS9zY3JvbGxiYXJfaGFuZGxlX2FjY2VsZXJhdGVkX2FuaW0yLjkucG5nIGIvY29yZS9yZXMvcmVzL2RyYXdhYmxlLWhkcGkvc2Nyb2xsYmFyX2hhbmRsZV9hY2NlbGVyYXRlZF9hbmltMi45LnBuZwppbmRleCA2ZWRkYzNmLi5mYjllN2FhIDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvZHJhd2FibGUtaGRwaS9zY3JvbGxiYXJfaGFuZGxlX2FjY2VsZXJhdGVkX2FuaW0yLjkucG5nCisrKyBiL2NvcmUvcmVzL3Jlcy9kcmF3YWJsZS1oZHBpL3Njcm9sbGJhcl9oYW5kbGVfYWNjZWxlcmF0ZWRfYW5pbTIuOS5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL2RyYXdhYmxlLWxkcGkvc2Nyb2xsYmFyX2hhbmRsZV9hY2NlbGVyYXRlZF9hbmltMi45LnBuZyBiL2NvcmUvcmVzL3Jlcy9kcmF3YWJsZS1sZHBpL3Njcm9sbGJhcl9oYW5kbGVfYWNjZWxlcmF0ZWRfYW5pbTIuOS5wbmcKaW5kZXggMDU2MmMwMy4uYTRjYTNlMCAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL2RyYXdhYmxlLWxkcGkvc2Nyb2xsYmFyX2hhbmRsZV9hY2NlbGVyYXRlZF9hbmltMi45LnBuZworKysgYi9jb3JlL3Jlcy9yZXMvZHJhd2FibGUtbGRwaS9zY3JvbGxiYXJfaGFuZGxlX2FjY2VsZXJhdGVkX2FuaW0yLjkucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy9kcmF3YWJsZS1tZHBpL3Njcm9sbGJhcl9oYW5kbGVfYWNjZWxlcmF0ZWRfYW5pbTIuOS5wbmcgYi9jb3JlL3Jlcy9yZXMvZHJhd2FibGUtbWRwaS9zY3JvbGxiYXJfaGFuZGxlX2FjY2VsZXJhdGVkX2FuaW0yLjkucG5nCmluZGV4IDc2NmU0YzAuLjZkODNiYjQgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy9kcmF3YWJsZS1tZHBpL3Njcm9sbGJhcl9oYW5kbGVfYWNjZWxlcmF0ZWRfYW5pbTIuOS5wbmcKKysrIGIvY29yZS9yZXMvcmVzL2RyYXdhYmxlLW1kcGkvc2Nyb2xsYmFyX2hhbmRsZV9hY2NlbGVyYXRlZF9hbmltMi45LnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvZHJhd2FibGUteGhkcGkvc2Nyb2xsYmFyX2hhbmRsZV9hY2NlbGVyYXRlZF9hbmltMi45LnBuZyBiL2NvcmUvcmVzL3Jlcy9kcmF3YWJsZS14aGRwaS9zY3JvbGxiYXJfaGFuZGxlX2FjY2VsZXJhdGVkX2FuaW0yLjkucG5nCmluZGV4IDNjZjg0YTUuLjcwODU2YzAgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy9kcmF3YWJsZS14aGRwaS9zY3JvbGxiYXJfaGFuZGxlX2FjY2VsZXJhdGVkX2FuaW0yLjkucG5nCisrKyBiL2NvcmUvcmVzL3Jlcy9kcmF3YWJsZS14aGRwaS9zY3JvbGxiYXJfaGFuZGxlX2FjY2VsZXJhdGVkX2FuaW0yLjkucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy9sYXlvdXQtbGFuZC90aW1lX3BpY2tlcl9ob2xvLnhtbCBiL2NvcmUvcmVzL3Jlcy9sYXlvdXQtbGFuZC90aW1lX3BpY2tlcl9ob2xvLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWNlMWVjCi0tLSAvZGV2L251bGwKKysrIGIvY29yZS9yZXMvcmVzL2xheW91dC1sYW5kL3RpbWVfcGlja2VyX2hvbG8ueG1sCkBAIC0wLDAgKzEsNzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tCisqKgorKiogQ29weXJpZ2h0IDIwMTMsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCistLT4KKworPExpbmVhckxheW91dCB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJtYXRjaF9wYXJlbnQiCisgICAgICAgIGFuZHJvaWQ6bGF5b3V0X2hlaWdodD0ibWF0Y2hfcGFyZW50IgorICAgICAgICBhbmRyb2lkOm9yaWVudGF0aW9uPSJob3Jpem9udGFsIgorICAgICAgICBhbmRyb2lkOmZvY3VzYWJsZT0idHJ1ZSIKKyAgICAgICAgYW5kcm9pZDpsYXlvdXRfbWFyZ2luTGVmdD0iQGRpbWVuL3RpbWVwaWNrZXJfbWluaW11bV9tYXJnaW5fc2lkZXMiCisgICAgICAgIGFuZHJvaWQ6bGF5b3V0X21hcmdpblJpZ2h0PSJAZGltZW4vdGltZXBpY2tlcl9taW5pbXVtX21hcmdpbl9zaWRlcyIKKyAgICAgICAgYW5kcm9pZDpsYXlvdXRfbWFyZ2luVG9wPSJAZGltZW4vdGltZXBpY2tlcl9taW5pbXVtX21hcmdpbl90b3BfYm90dG9tIgorICAgICAgICBhbmRyb2lkOmxheW91dF9tYXJnaW5Cb3R0b209IkBkaW1lbi90aW1lcGlja2VyX21pbmltdW1fbWFyZ2luX3RvcF9ib3R0b20iPgorICAgIDxMaW5lYXJMYXlvdXQKKyAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJAZGltZW4vdGltZXBpY2tlcl9sZWZ0X3NpZGVfd2lkdGgiCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9Im1hdGNoX3BhcmVudCIKKyAgICAgICAgICAgIGFuZHJvaWQ6b3JpZW50YXRpb249InZlcnRpY2FsIj4KKyAgICAgICAgPEZyYW1lTGF5b3V0CisgICAgICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9Im1hdGNoX3BhcmVudCIKKyAgICAgICAgICAgICAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9IjBkaXAiCisgICAgICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfd2VpZ2h0PSIxIgorICAgICAgICAgICAgICAgIGFuZHJvaWQ6YmFja2dyb3VuZD0iP2FuZHJvaWQ6YXR0ci90aW1lUGlja2VySGVhZGVyQmFja2dyb3VuZENvbG9yIj4KKyAgICAgICAgICAgIDxpbmNsdWRlCisgICAgICAgICAgICAgICAgICAgIGxheW91dD0iQGxheW91dC90aW1lX2hlYWRlcl9sYWJlbCIKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9Im1hdGNoX3BhcmVudCIKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfaGVpZ2h0PSJAZGltZW4vdGltZXBpY2tlcl9oZWFkZXJfaGVpZ2h0IgorICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOmxheW91dF9ncmF2aXR5PSJjZW50ZXIiIC8+CisgICAgICAgIDwvRnJhbWVMYXlvdXQ+CisgICAgICAgIDxMaW5lYXJMYXlvdXQKKyAgICAgICAgICAgICAgICBhbmRyb2lkOmlkPSJAK2lkL2xheW91dF9idXR0b25zIgorICAgICAgICAgICAgICAgIHN0eWxlPSI/YW5kcm9pZDphdHRyL2J1dHRvbkJhclN0eWxlIgorICAgICAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJtYXRjaF9wYXJlbnQiCisgICAgICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfaGVpZ2h0PSJ3cmFwX2NvbnRlbnQiCisgICAgICAgICAgICAgICAgYW5kcm9pZDpvcmllbnRhdGlvbj0idmVydGljYWwiCisgICAgICAgICAgICAgICAgYW5kcm9pZDpiYWNrZ3JvdW5kPSI/YW5kcm9pZDphdHRyL3RpbWVQaWNrZXJIZWFkZXJCYWNrZ3JvdW5kQ29sb3IiCisgICAgICAgICAgICAgICAgYW5kcm9pZDpkaXZpZGVyPSI/YW5kcm9pZDphdHRyL2RpdmlkZXJIb3Jpem9udGFsIgorICAgICAgICAgICAgICAgIGFuZHJvaWQ6c2hvd0RpdmlkZXJzPSJiZWdpbm5pbmciPgorICAgICAgICAgICAgPEJ1dHRvbgorICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOmlkPSJAK2lkL2RvbmVfYnV0dG9uIgorICAgICAgICAgICAgICAgICAgICBzdHlsZT0iP2FuZHJvaWQ6YXR0ci9idXR0b25CYXJCdXR0b25TdHlsZSIKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9Im1hdGNoX3BhcmVudCIKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfaGVpZ2h0PSJ3cmFwX2NvbnRlbnQiCisgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6bWluSGVpZ2h0PSI0OGRwIgorICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOnRleHQ9IkBzdHJpbmcvZG9uZV9sYWJlbCIKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDp0ZXh0U2l6ZT0iQGRpbWVuL3RpbWVwaWNrZXJfZG9uZV9sYWJlbF9zaXplIiAvPgorICAgICAgICA8L0xpbmVhckxheW91dD4KKyAgICA8L0xpbmVhckxheW91dD4KKyAgICA8YW5kcm9pZC53aWRnZXQuUmFkaWFsVGltZVBpY2tlclZpZXcKKyAgICAgICAgICAgIGFuZHJvaWQ6aWQ9IkAraWQvcmFkaWFsX3BpY2tlciIKKyAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJAZGltZW4vdGltZXBpY2tlcl9yYWRpYWxfcGlja2VyX2RpbWVuIgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfaGVpZ2h0PSJtYXRjaF9wYXJlbnQiCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF9ncmF2aXR5PSJjZW50ZXIiCisgICAgICAgICAgICBhbmRyb2lkOmZvY3VzYWJsZT0idHJ1ZSIKKyAgICAgICAgICAgIGFuZHJvaWQ6Zm9jdXNhYmxlSW5Ub3VjaE1vZGU9InRydWUiIC8+Cis8L0xpbmVhckxheW91dD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvbGF5b3V0L3RpbWVfaGVhZGVyX2xhYmVsLnhtbCBiL2NvcmUvcmVzL3Jlcy9sYXlvdXQvdGltZV9oZWFkZXJfbGFiZWwueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwY2I4MWIKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3Jlcy9yZXMvbGF5b3V0L3RpbWVfaGVhZGVyX2xhYmVsLnhtbApAQCAtMCwwICsxLDYwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLQorICB+IENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgIH4KKyAgfiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIH4KKyAgfiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICB+CisgIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlCisgIC0tPgorPFJlbGF0aXZlTGF5b3V0IHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICAgICAgICAgICAgICBhbmRyb2lkOmlkPSJAK2lkL3RpbWVfaGVhZGVyIgorICAgICAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJtYXRjaF9wYXJlbnQiCisgICAgICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfaGVpZ2h0PSJtYXRjaF9wYXJlbnQiCisgICAgICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfZ3Jhdml0eT0iY2VudGVyIiA+CisKKyAgICA8VGV4dFZpZXcKKyAgICAgICAgICAgIGFuZHJvaWQ6aWQ9IkAraWQvaG91cnMiCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF93aWR0aD0id3JhcF9jb250ZW50IgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfaGVpZ2h0PSJ3cmFwX2NvbnRlbnQiCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF90b0xlZnRPZj0iQCtpZC9zZXBhcmF0b3IiCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF9hbGlnbkJhc2VsaW5lPSJAK2lkL3NlcGFyYXRvciIKKyAgICAgICAgICAgIGFuZHJvaWQ6dGV4dEFwcGVhcmFuY2U9Ij9hbmRyb2lkOmF0dHIvdGltZVBpY2tlckhlYWRlclRpbWVMYWJlbFRleHRBcHBlYXJhbmNlIi8+CisKKyAgICA8VGV4dFZpZXcKKyAgICAgICAgICAgIGFuZHJvaWQ6aWQ9IkAraWQvc2VwYXJhdG9yIgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9IndyYXBfY29udGVudCIKKyAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X2hlaWdodD0id3JhcF9jb250ZW50IgorICAgICAgICAgICAgYW5kcm9pZDpwYWRkaW5nTGVmdD0iQGRpbWVuL3RpbWVwaWNrZXJfc2VwYXJhdG9yX3BhZGRpbmciCisgICAgICAgICAgICBhbmRyb2lkOnBhZGRpbmdSaWdodD0iQGRpbWVuL3RpbWVwaWNrZXJfc2VwYXJhdG9yX3BhZGRpbmciCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF9jZW50ZXJJblBhcmVudD0idHJ1ZSIKKyAgICAgICAgICAgIGFuZHJvaWQ6dGV4dEFwcGVhcmFuY2U9Ij9hbmRyb2lkOmF0dHIvdGltZVBpY2tlckhlYWRlclRpbWVMYWJlbFRleHRBcHBlYXJhbmNlIgorICAgICAgICAgICAgYW5kcm9pZDppbXBvcnRhbnRGb3JBY2Nlc3NpYmlsaXR5PSJubyIgLz4KKworICAgIDxUZXh0VmlldworICAgICAgICAgICAgYW5kcm9pZDppZD0iQCtpZC9taW51dGVzIgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9IndyYXBfY29udGVudCIKKyAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X2hlaWdodD0id3JhcF9jb250ZW50IgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfdG9SaWdodE9mPSJAK2lkL3NlcGFyYXRvciIKKyAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X2FsaWduQmFzZWxpbmU9IkAraWQvc2VwYXJhdG9yIgorICAgICAgICAgICAgYW5kcm9pZDp0ZXh0QXBwZWFyYW5jZT0iP2FuZHJvaWQ6YXR0ci90aW1lUGlja2VySGVhZGVyVGltZUxhYmVsVGV4dEFwcGVhcmFuY2UiIC8+CisKKyAgICA8VGV4dFZpZXcKKyAgICAgICAgICAgIGFuZHJvaWQ6aWQ9IkAraWQvYW1wbV9sYWJlbCIKKyAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJ3cmFwX2NvbnRlbnQiCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKKyAgICAgICAgICAgIGFuZHJvaWQ6cGFkZGluZ0xlZnQ9IkBkaW1lbi90aW1lcGlja2VyX2FtcG1fbGVmdF9wYWRkaW5nIgorICAgICAgICAgICAgYW5kcm9pZDpwYWRkaW5nUmlnaHQ9IkBkaW1lbi90aW1lcGlja2VyX2FtcG1fbGVmdF9wYWRkaW5nIgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfdG9SaWdodE9mPSJAK2lkL3NlcGFyYXRvciIKKyAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X2FsaWduQmFzZWxpbmU9IkAraWQvc2VwYXJhdG9yIgorICAgICAgICAgICAgYW5kcm9pZDp0ZXh0QXBwZWFyYW5jZT0iP2FuZHJvaWQ6YXR0ci90aW1lUGlja2VySGVhZGVyQW1QbUxhYmVsVGV4dEFwcGVhcmFuY2UiCisgICAgICAgICAgICBhbmRyb2lkOmltcG9ydGFudEZvckFjY2Vzc2liaWxpdHk9Im5vIiAvPgorCis8L1JlbGF0aXZlTGF5b3V0PgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL2xheW91dC90aW1lX3BpY2tlcl9ob2xvLnhtbCBiL2NvcmUvcmVzL3Jlcy9sYXlvdXQvdGltZV9waWNrZXJfaG9sby54bWwKaW5kZXggYzZiN2QzYS4uMDg5MGZlNSAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL2xheW91dC90aW1lX3BpY2tlcl9ob2xvLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvbGF5b3V0L3RpbWVfcGlja2VyX2hvbG8ueG1sCkBAIC0xLDcgKzEsNyBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KIDwhLS0KICoqCi0qKiBDb3B5cmlnaHQgMjAxMSwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKiogQ29weXJpZ2h0IDIwMTMsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKICoqCiAqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KQEAgLTE3LDcwICsxNywzOCBAQAogKi8KIC0tPgogCi08IS0tIExheW91dCBvZiB0aW1lIHBpY2tlciAtLT4KLQogPExpbmVhckxheW91dCB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgYW5kcm9pZDppZD0iQCtpZC90aW1lUGlja2VyTGF5b3V0IgotICAgIGFuZHJvaWQ6b3JpZW50YXRpb249Imhvcml6b250YWwiCi0gICAgYW5kcm9pZDpsYXlvdXRfZ3Jhdml0eT0iY2VudGVyX2hvcml6b250YWwiCi0gICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9IndyYXBfY29udGVudCIKLSAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKLSAgICBhbmRyb2lkOnBhZGRpbmdTdGFydD0iOGRpcCIKLSAgICBhbmRyb2lkOnBhZGRpbmdFbmQ9IjhkaXAiPgotCi0gICAgPExpbmVhckxheW91dCBhbmRyb2lkOm9yaWVudGF0aW9uPSJob3Jpem9udGFsIgotICAgICAgICBhbmRyb2lkOmxheW91dF93aWR0aD0id3JhcF9jb250ZW50IgotICAgICAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKLSAgICAgICAgYW5kcm9pZDpwYWRkaW5nU3RhcnQ9IjhkaXAiCi0gICAgICAgIGFuZHJvaWQ6cGFkZGluZ0VuZD0iOGRpcCIKLSAgICAgICAgYW5kcm9pZDpsYXlvdXREaXJlY3Rpb249Imx0ciI+Ci0KLSAgICAgICAgPCEtLSBob3VyIC0tPgotICAgICAgICA8TnVtYmVyUGlja2VyCi0gICAgICAgICAgICBhbmRyb2lkOmlkPSJAK2lkL2hvdXIiCisgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9IndyYXBfY29udGVudCIKKyAgICAgICAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9Im1hdGNoX3BhcmVudCIKKyAgICAgICAgICBhbmRyb2lkOm9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCIKKyAgICAgICAgICBhbmRyb2lkOmZvY3VzYWJsZT0idHJ1ZSIgPgorICAgIDxpbmNsdWRlCisgICAgICAgICAgICBsYXlvdXQ9IkBsYXlvdXQvdGltZV9oZWFkZXJfbGFiZWwiCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF93aWR0aD0ibWF0Y2hfcGFyZW50IgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfaGVpZ2h0PSJAZGltZW4vdGltZXBpY2tlcl9oZWFkZXJfaGVpZ2h0IgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfZ3Jhdml0eT0iY2VudGVyIiAvPgorICAgIDxhbmRyb2lkLndpZGdldC5SYWRpYWxUaW1lUGlja2VyVmlldworICAgICAgICAgICAgYW5kcm9pZDppZD0iQCtpZC9yYWRpYWxfcGlja2VyIgogICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9IndyYXBfY29udGVudCIKLSAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X2hlaWdodD0id3JhcF9jb250ZW50IgotICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfbWFyZ2luVG9wPSIxNmRpcCIKLSAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X21hcmdpbkJvdHRvbT0iMTZkaXAiCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9IkBkaW1lbi90aW1lcGlja2VyX3JhZGlhbF9waWNrZXJfZGltZW4iCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF9ncmF2aXR5PSJjZW50ZXIiCiAgICAgICAgICAgICBhbmRyb2lkOmZvY3VzYWJsZT0idHJ1ZSIKLSAgICAgICAgICAgIGFuZHJvaWQ6Zm9jdXNhYmxlSW5Ub3VjaE1vZGU9InRydWUiCi0gICAgICAgICAgICAvPgotCi0gICAgICAgIDwhLS0gZGl2aWRlciAtLT4KLSAgICAgICAgPFRleHRWaWV3Ci0gICAgICAgICAgICBhbmRyb2lkOmlkPSJAK2lkL2RpdmlkZXIiCi0gICAgICAgICAgICBhbmRyb2lkOmxheW91dF93aWR0aD0id3JhcF9jb250ZW50IgorICAgICAgICAgICAgYW5kcm9pZDpmb2N1c2FibGVJblRvdWNoTW9kZT0idHJ1ZSIgLz4KKyAgICA8TGluZWFyTGF5b3V0CisgICAgICAgICAgICBhbmRyb2lkOmlkPSJAK2lkL2xheW91dF9idXR0b25zIgorICAgICAgICAgICAgc3R5bGU9Ij9hbmRyb2lkOmF0dHIvYnV0dG9uQmFyU3R5bGUiCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF93aWR0aD0ibWF0Y2hfcGFyZW50IgogICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfaGVpZ2h0PSJ3cmFwX2NvbnRlbnQiCi0gICAgICAgICAgICBhbmRyb2lkOmxheW91dF9tYXJnaW5TdGFydD0iNmRpcCIKLSAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X21hcmdpbkVuZD0iNmRpcCIKLSAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X2dyYXZpdHk9ImNlbnRlcl92ZXJ0aWNhbCIKLSAgICAgICAgICAgIGFuZHJvaWQ6aW1wb3J0YW50Rm9yQWNjZXNzaWJpbGl0eT0ibm8iCi0gICAgICAgICAgICAvPgotCi0gICAgICAgIDwhLS0gbWludXRlIC0tPgotICAgICAgICA8TnVtYmVyUGlja2VyCi0gICAgICAgICAgICBhbmRyb2lkOmlkPSJAK2lkL21pbnV0ZSIKLSAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJ3cmFwX2NvbnRlbnQiCi0gICAgICAgICAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKLSAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X21hcmdpblRvcD0iMTZkaXAiCi0gICAgICAgICAgICBhbmRyb2lkOmxheW91dF9tYXJnaW5Cb3R0b209IjE2ZGlwIgotICAgICAgICAgICAgYW5kcm9pZDpmb2N1c2FibGU9InRydWUiCi0gICAgICAgICAgICBhbmRyb2lkOmZvY3VzYWJsZUluVG91Y2hNb2RlPSJ0cnVlIgotICAgICAgICAgICAgLz4KLQorICAgICAgICAgICAgYW5kcm9pZDpvcmllbnRhdGlvbj0idmVydGljYWwiCisgICAgICAgICAgICBhbmRyb2lkOmRpdmlkZXI9Ij9hbmRyb2lkOmF0dHIvZGl2aWRlckhvcml6b250YWwiCisgICAgICAgICAgICBhbmRyb2lkOnNob3dEaXZpZGVycz0iYmVnaW5uaW5nIj4KKyAgICAgICAgPEJ1dHRvbgorICAgICAgICAgICAgICAgIGFuZHJvaWQ6aWQ9IkAraWQvZG9uZV9idXR0b24iCisgICAgICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9Im1hdGNoX3BhcmVudCIKKyAgICAgICAgICAgICAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKKyAgICAgICAgICAgICAgICBhbmRyb2lkOm1pbkhlaWdodD0iNDhkcCIKKyAgICAgICAgICAgICAgICBhbmRyb2lkOnRleHQ9IkBzdHJpbmcvZG9uZV9sYWJlbCIKKyAgICAgICAgICAgICAgICBhbmRyb2lkOnRleHRTaXplPSJAZGltZW4vdGltZXBpY2tlcl9kb25lX2xhYmVsX3NpemUiCisgICAgICAgICAgICAgICAgc3R5bGU9Ij9hbmRyb2lkOmF0dHIvYnV0dG9uQmFyQnV0dG9uU3R5bGUiIC8+CiAgICAgPC9MaW5lYXJMYXlvdXQ+Ci0KLSAgICA8IS0tIEFNIC8gUE0gLS0+Ci0gICAgPE51bWJlclBpY2tlcgotICAgICAgICBhbmRyb2lkOmlkPSJAK2lkL2FtUG0iCi0gICAgICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJ3cmFwX2NvbnRlbnQiCi0gICAgICAgIGFuZHJvaWQ6bGF5b3V0X2hlaWdodD0id3JhcF9jb250ZW50IgotICAgICAgICBhbmRyb2lkOmxheW91dF9tYXJnaW5Ub3A9IjE2ZGlwIgotICAgICAgICBhbmRyb2lkOmxheW91dF9tYXJnaW5Cb3R0b209IjE2ZGlwIgotICAgICAgICBhbmRyb2lkOmxheW91dF9tYXJnaW5TdGFydD0iOGRpcCIKLSAgICAgICAgYW5kcm9pZDpsYXlvdXRfbWFyZ2luRW5kPSI4ZGlwIgotICAgICAgICBhbmRyb2lkOmZvY3VzYWJsZT0idHJ1ZSIKLSAgICAgICAgYW5kcm9pZDpmb2N1c2FibGVJblRvdWNoTW9kZT0idHJ1ZSIKLSAgICAgICAgLz4KLQogPC9MaW5lYXJMYXlvdXQ+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvbGF5b3V0L3RpbWVfcGlja2VyLnhtbCBiL2NvcmUvcmVzL3Jlcy9sYXlvdXQvdGltZV9waWNrZXJfbGVnYWN5LnhtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gY29yZS9yZXMvcmVzL2xheW91dC90aW1lX3BpY2tlci54bWwKcmVuYW1lIHRvIGNvcmUvcmVzL3Jlcy9sYXlvdXQvdGltZV9waWNrZXJfbGVnYWN5LnhtbApkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL2xheW91dC90aW1lX3BpY2tlcl9sZWdhY3lfaG9sby54bWwgYi9jb3JlL3Jlcy9yZXMvbGF5b3V0L3RpbWVfcGlja2VyX2xlZ2FjeV9ob2xvLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmI3ZDNhCi0tLSAvZGV2L251bGwKKysrIGIvY29yZS9yZXMvcmVzL2xheW91dC90aW1lX3BpY2tlcl9sZWdhY3lfaG9sby54bWwKQEAgLTAsMCArMSw4NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0KKyoqCisqKiBDb3B5cmlnaHQgMjAxMSwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKy0tPgorCis8IS0tIExheW91dCBvZiB0aW1lIHBpY2tlciAtLT4KKworPExpbmVhckxheW91dCB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgYW5kcm9pZDppZD0iQCtpZC90aW1lUGlja2VyTGF5b3V0IgorICAgIGFuZHJvaWQ6b3JpZW50YXRpb249Imhvcml6b250YWwiCisgICAgYW5kcm9pZDpsYXlvdXRfZ3Jhdml0eT0iY2VudGVyX2hvcml6b250YWwiCisgICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9IndyYXBfY29udGVudCIKKyAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKKyAgICBhbmRyb2lkOnBhZGRpbmdTdGFydD0iOGRpcCIKKyAgICBhbmRyb2lkOnBhZGRpbmdFbmQ9IjhkaXAiPgorCisgICAgPExpbmVhckxheW91dCBhbmRyb2lkOm9yaWVudGF0aW9uPSJob3Jpem9udGFsIgorICAgICAgICBhbmRyb2lkOmxheW91dF93aWR0aD0id3JhcF9jb250ZW50IgorICAgICAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKKyAgICAgICAgYW5kcm9pZDpwYWRkaW5nU3RhcnQ9IjhkaXAiCisgICAgICAgIGFuZHJvaWQ6cGFkZGluZ0VuZD0iOGRpcCIKKyAgICAgICAgYW5kcm9pZDpsYXlvdXREaXJlY3Rpb249Imx0ciI+CisKKyAgICAgICAgPCEtLSBob3VyIC0tPgorICAgICAgICA8TnVtYmVyUGlja2VyCisgICAgICAgICAgICBhbmRyb2lkOmlkPSJAK2lkL2hvdXIiCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF93aWR0aD0id3JhcF9jb250ZW50IgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfaGVpZ2h0PSJ3cmFwX2NvbnRlbnQiCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF9tYXJnaW5Ub3A9IjE2ZGlwIgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfbWFyZ2luQm90dG9tPSIxNmRpcCIKKyAgICAgICAgICAgIGFuZHJvaWQ6Zm9jdXNhYmxlPSJ0cnVlIgorICAgICAgICAgICAgYW5kcm9pZDpmb2N1c2FibGVJblRvdWNoTW9kZT0idHJ1ZSIKKyAgICAgICAgICAgIC8+CisKKyAgICAgICAgPCEtLSBkaXZpZGVyIC0tPgorICAgICAgICA8VGV4dFZpZXcKKyAgICAgICAgICAgIGFuZHJvaWQ6aWQ9IkAraWQvZGl2aWRlciIKKyAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJ3cmFwX2NvbnRlbnQiCisgICAgICAgICAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKKyAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X21hcmdpblN0YXJ0PSI2ZGlwIgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfbWFyZ2luRW5kPSI2ZGlwIgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfZ3Jhdml0eT0iY2VudGVyX3ZlcnRpY2FsIgorICAgICAgICAgICAgYW5kcm9pZDppbXBvcnRhbnRGb3JBY2Nlc3NpYmlsaXR5PSJubyIKKyAgICAgICAgICAgIC8+CisKKyAgICAgICAgPCEtLSBtaW51dGUgLS0+CisgICAgICAgIDxOdW1iZXJQaWNrZXIKKyAgICAgICAgICAgIGFuZHJvaWQ6aWQ9IkAraWQvbWludXRlIgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9IndyYXBfY29udGVudCIKKyAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X2hlaWdodD0id3JhcF9jb250ZW50IgorICAgICAgICAgICAgYW5kcm9pZDpsYXlvdXRfbWFyZ2luVG9wPSIxNmRpcCIKKyAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X21hcmdpbkJvdHRvbT0iMTZkaXAiCisgICAgICAgICAgICBhbmRyb2lkOmZvY3VzYWJsZT0idHJ1ZSIKKyAgICAgICAgICAgIGFuZHJvaWQ6Zm9jdXNhYmxlSW5Ub3VjaE1vZGU9InRydWUiCisgICAgICAgICAgICAvPgorCisgICAgPC9MaW5lYXJMYXlvdXQ+CisKKyAgICA8IS0tIEFNIC8gUE0gLS0+CisgICAgPE51bWJlclBpY2tlcgorICAgICAgICBhbmRyb2lkOmlkPSJAK2lkL2FtUG0iCisgICAgICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJ3cmFwX2NvbnRlbnQiCisgICAgICAgIGFuZHJvaWQ6bGF5b3V0X2hlaWdodD0id3JhcF9jb250ZW50IgorICAgICAgICBhbmRyb2lkOmxheW91dF9tYXJnaW5Ub3A9IjE2ZGlwIgorICAgICAgICBhbmRyb2lkOmxheW91dF9tYXJnaW5Cb3R0b209IjE2ZGlwIgorICAgICAgICBhbmRyb2lkOmxheW91dF9tYXJnaW5TdGFydD0iOGRpcCIKKyAgICAgICAgYW5kcm9pZDpsYXlvdXRfbWFyZ2luRW5kPSI4ZGlwIgorICAgICAgICBhbmRyb2lkOmZvY3VzYWJsZT0idHJ1ZSIKKyAgICAgICAgYW5kcm9pZDpmb2N1c2FibGVJblRvdWNoTW9kZT0idHJ1ZSIKKyAgICAgICAgLz4KKworPC9MaW5lYXJMYXlvdXQ+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWFmL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1hZi9zdHJpbmdzLnhtbAppbmRleCAxYTlhY2QzLi4xMmI3ZTE4IDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWFmL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtYWYvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IlZvZXIgXCduIFBVSyB2YW4gOCBzeWZlcnMgb2YgbGFuZ2VyIGluLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJKb3UgU0lNLWthYXJ0IGlzIFBVSy1nZXNsdWl0LiBWb2VyIGRpZSBQVUsta29kZSBpbiBvbSBkaXQgdGUgb250c2x1aXQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iU2xldXRlbCBQVUsyIGluIG9tIFNJTS1rYWFydCBvb3AgdGUgc2x1aXQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iT25zdWtzZXN2b2wsIGFrdGl2ZWVyIFNJTS0vUlVJTS1zbG90LiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+Ikp5IGhldCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gb29yYmx5d2VuZGUgcG9naW5nIHZvb3JkYXQgU0lNIGdlc2x1aXQgd29yZC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJKeSBoZXQgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IG9vcmJseXdlbmRlIHBvZ2luZ3Mgdm9vcmRhdCBTSU0gZ2VzbHVpdCB3b3JkLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iSW5rb21lbmRlciBiZWxsZXItSUQiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IkxhYXQgZGllIHByb2dyYW0gdG9lIG9tIFN1cmZhY2VGbGluZ2VyIHNlIGxhZXZsYWsta2VubWVya2UgdGUgZ2VicnVpay4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJsZWVzIHJhYW1idWZmZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4iTGFhdCBkaWUgcHJvZ3JhbSB0b2Ugb20gZGllIGluaG91ZCB2YW4gZGllIHJhYW1idWZmZXIgdGUgbGVlcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJrcnkgdG9lZ2FuZyB0b3QgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IkxhYXQgZGllIHByb2dyYW0gdG9lIG9tIElucHV0RmxpbmdlciBzZSBsYWV2bGFrLWtlbm1lcmtlIHRlIGdlYnJ1aWsuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJzdGVsIFdpLUZpLXNrZXJtcyBvcCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IkxhYXQgZGllIHByb2dyYW0gdG9lIG9tIFdpLUZpLXNrZXJtcyBvcCB0ZSBzdGVsIGVuIGRhYXJhYW4gdGUga29wcGVsLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4iYmVoZWVyIFdpLUZpLXNrZXJtcyI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+Ikludm9lcnNsZXV0ZWwiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiJLaWVzIFwnbiBwcm9ncmFtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4iS29uIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4gbmllIGJlZ2luIG5pZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IkRlZWwgbWV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IkRlZWwgbWV0IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iU2t5ZmlldmF0c2VsLiBSYWFrIGVuIGhvdS4iPC9zdHJpbmc+CkBAIC0xNjQ5LDUgKzE2NTcsMTYgQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NzMwODY4OTIwNzQyOTUyODE3Ij4iUHJvYmVlciB3ZWVyIG9vciA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBzZWtvbmRlcyI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJQcm9iZWVyIGxhdGVyIHdlZXIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4iU2xlZXAgdmFuIGJvIGFmIG5hIG9uZGVyIG9tIHZvbHNrZXJtIHRlIHZlcmxhYXQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IlN3aWVwIHZhbiBibyBhZiBuYSBvbmRlciBvbSB2b2xza2VybSB0ZSB2ZXJsYWF0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4iS2xhYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiJVcmUgc2Ugc2lya2VsZ2x5ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+Ik1pbnV0ZSBzZSBzaXJrZWxnbHllciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiJLaWVzIHVyZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IktpZXMgbWludXRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiJNYWFuZHJvb3N0ZXIgdmFuIGRhZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTUyNDMzMTIwNzQzNjA1MjQwMyI+IkphYXJseXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IktpZXMgbWFhbmQgZW4gZGFnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4iS2llcyBqYWFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+Ijx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiBnZWtpZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiI8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiB1aXRnZXZlZSI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1hbS9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtYW0vc3RyaW5ncy54bWwKaW5kZXggZTY0YjZmNS4uYjIyZGQwZiAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1hbS9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWFtL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiI4IOGLiOGLreGInSDhiqjhi5sg4Ymg4YiL4YutIOGLqOGIhuGKkSDhiYHhjKXhiK7hib3hipVQVUsg4Ymw4Yut4Yml4Y2iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IlNJTSDhiqvhiK3hi7Xhi44gUFVLLeGLqOGJsOGJhuGIiOGNiCDhipDhi43hjaLhi6hQVUsg4Yqu4Yux4YqVIOGJoOGImOGJsOGLqOGJpSDhi63hiq3hjYjhibHhibXhjaIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiIgU0lNIOGIiOGImOGKreGNiOGJtSBQVUsyIOGJsOGLreGJpeGNoiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+IuGKoOGIjeGJsOGIs+GKq+GIneGNoyDhi6jhiLLhiJ0vUlVJTSDhiYHhiI3hjY3hipUg4Yqg4YqV4YmD4Y2iIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4i4Yiy4Yid4YuOIOGKqOGImOGJhuGIiOGNiSDhiaDhjYrhibUgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOGImeGKqOGIqyDhi63hiYDhiK3hi47hibPhiI3hjaIiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiLhiLLhiJ3hi44g4Yqo4YiY4YmG4YiI4Y2JIOGJoOGNiuGJtSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4YiZ4Yqo4Yir4YuO4Ym9IOGLreGJgOGIqeGLjuGJs+GIjeGNoiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4i4Yuo4YyI4YmiIOGLsOGLi+GLrUlEIjwvc3RyaW5nPgpAQCAtMTc1LDcgKzE4MCw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX21lc3NhZ2VzIiBtc2dpZD0iNzgyMTk5OTA3MTAwMzY5OTIzNiI+IuGKpOGItSDhiqThiJ0g4Yqk4Yi14YiF4YqV4Y2jIOGKouGInOGLreGIjeGIheGKlSDhiqXhipMg4YiM4YiLIOGImOGIjeGLleGKreGJtuGJveGIheGKlSDhiqDhipXhiaXhiaXhipMg4Y2D4Y2N4Y2iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3BlcnNvbmFsSW5mbyIgbXNnaWQ9IjM1MTkxNjMxNDEwNzA1MzM0NzQiPiLhi6jhjI3hiI0g4YiY4Yio4YyD4YuOIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19wZXJzb25hbEluZm8iIG1zZ2lkPSI4NDI2NDUzMTI5Nzg4ODYxMzM4Ij4i4Ymg4Yql4YuN4YmC4YurIOGKq+GIreGLteGIhSDhiIvhi60g4YuI4Yuw4Ymw4Yqo4Yib4Ym4IOGLqOGKoOGKleGJsCDhiJjhiKjhjIMg4YmA4Yyl4Ymw4YqbIOGImOGLs+GIqOGIu+GNoiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zb2NpYWxJbmZvIiBtc2dpZD0iNTc5OTA5NjYyMzQxMjA0Mzc5MSI+IuGIm+GIheGJoOGIq+GLiiDhiJjhiKjhjIPhiIUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc29jaWFsSW5mbyIgbXNnaWQ9IjU3OTkwOTY2MjM0MTIwNDM3OTEiPiLhiJvhiIXhiaDhiKvhi4og4YiY4Yio4YyD4YuOIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zb2NpYWxJbmZvIiBtc2dpZD0iNzEyOTg0MjQ1NzYxMTY0MzQ5MyI+IuGLiOGLsCDhi6jhiqXhi43hiYLhi6vhi47hib3hiIXhipMg4Yuo4Yib4YiF4Ymg4Yir4YuKIOGMjeGKleGKmeGKkOGJtuGJveGIhSDhiJjhiKjhjIMg4YmA4Yyl4Ymw4YqbIOGImOGLs+GIqOGIu+GNoiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9sb2NhdGlvbiIgbXNnaWQ9IjYzNTE0OTc0MjQzNjY5MjA0OSI+IuGIteGNjeGIq+GLjiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbG9jYXRpb24iIG1zZ2lkPSI1NzA0Njc5NzYzMTI0MTcwMTAwIj4i4Yur4YiI4YiF4Ymg4Ym14YqVIOGKoOGKq+GJo+GJoiDhibDhiYbhjKPhjKDhiK3hjaIiPC9zdHJpbmc+CkBAIC0yMDUsNyArMjEwLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfY2FtZXJhIiBtc2dpZD0iMjkzMzY2NzM3MjI4OTU2NzcxNCI+IuGIiOGKq+GInOGIqyDhiJ3hiLXhiI0g4YuI4Yut4YidIOGJquGLsuGLriDhiIjhiJjhiYXhiKjhjL0g4YmA4Yyl4Ymw4YqbIOGImOGLs+GIqOGIu+GNoiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zY3JlZW5sb2NrIiBtc2dpZD0iODI3NTUwMDE3MzMzMDcxODE2OCI+IuGIm+GLqyDhjIjhjL0g4YmG4YiN4Y2NIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zY3JlZW5sb2NrIiBtc2dpZD0iNzA2NzQ5NzEyODkyNTQ5OTQwMSI+IuGJoOGImOGIo+GIquGLq+GLjiDhiIvhi60g4Yur4YiI4YuN4YqVIOGLqOGImOGJhuGIiOGNiuGLqyDhiJvhi6sg4YyI4Yy9IOGJo+GIheGIquGLq+GJtSDhiIvhi60g4Ymw4Yy94YuV4YqWIOGLqOGImOGNjeGMoOGIrSDhib3hiI7hibPhjaIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYXBwSW5mbyIgbXNnaWQ9IjgwMjg3ODk3NjI2MzQxNDc3MjUiPiLhi6jhiJjhibDhjI3hiaDhiKrhi6vhi47hib3hiIUg4YiY4Yio4YyDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2FwcEluZm8iIG1zZ2lkPSI4MDI4Nzg5NzYyNjM0MTQ3NzI1Ij4i4Yuo4YiY4Ymw4YyN4Ymg4Yiq4Yur4YuO4Ym94YuOIOGImOGIqOGMgyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYXBwSW5mbyIgbXNnaWQ9IjM5NTAzNzg1MzgwNDk2MjU5MDciPiLhiaDhiJjhiKPhiKrhi6vhiIUg4YiL4YutIOGLq+GIiSDhi6jhiIzhiI7hib0g4YiY4Ymw4YyN4Ymg4Yiq4Yur4YuO4Ym9IOGJo+GIheGIquGLjuGJvSDhiIvhi60g4Ymw4Y2F4YuV4YqWIOGLqOGIm+GIs+GIqOGNjSDhib3hiI7hibPhjaIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfd2FsbHBhcGVyIiBtc2dpZD0iMzg1MDI4MDE1ODA0MTE3NTk5OCI+IuGIjeGMo+GNjSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfd2FsbHBhcGVyIiBtc2dpZD0iNTYzMDQxNzg1NDc1MDU0MDE1NCI+IuGLqOGImOGIo+GIquGLq+GLjeGKlSDhiI3hjKPhjY0g4YmF4YqV4Yml4Yiu4Ym9IOGJgOGLreGIreGNoiI8L3N0cmluZz4KQEAgLTI3Miw3ICsyNzcsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjY4NjY4NzA5MDUyMzI4NTY3Ij4i4Ymg4Yi14YiN4Yqt4YiFIOGLiOGLreGInSDhiLLhiJ0g4Yqr4Yit4Yu14YiFIOGIi+GLrSDhiqThiLUg4Yqk4YidIOGKpOGItSDhiJjhiI3hi5Xhiq3hibbhib3hipUg4YiI4YiY4Y2D4Y2NIOGIiOGImOGJsOGMjeGJoOGIquGLq+GLjSDhi63hjYjhiYXhi7PhiInhjaHhjaHhiJjhiI3hi5Xhiq3hibbhib3hiIXhipUg4Ymw4YqV4Yqu4YiNIOGKoOGLmOGIjSDhiJjhibDhjI3hiaDhiKrhi6vhi47hib0g4YiK4Yiw4Yit4YuZIOGLreGJveGIi+GIieGNoeGNoSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI1OTkxMzk4NzExOTM2NTkwNDEwIj4i4Yuo4Y2F4YiB4Y2NIOGImOGIjeGLleGKreGJtuGJveGKlSDhibDhiYDhiaDhiI0gKFdBUCkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9Ijc0ODIzMjE5MDIyMDU4MzM4NSI+IuGImOGJsOGMjeGJoOGIquGLq+GLjSDhi6hXQVAg4YiY4YiN4Yql4Yqt4Ym24Ym94YqVIOGKpeGKleGLsuGLq+GKkOGJpSDhiqXhipMg4Yql4YqV4Yuy4Yur4Yqr4YiC4Yu1IOGLreGNiOGJheGLs+GIjeGNoiDhi63hiIUg4Y2I4YmD4Yu1IOGLqOGJsOGIi+GKqeGIjeGIheGKlSDhiJjhiI3hiqXhiq3hibbhib0g4YiL4YqV4YmwIOGIs+GLq+GIs+GLreGIhSDhi6jhiJjhiYbhjKPhjKDhiK0g4YuI4Yut4YidIOGLqOGImOGIsOGIqOGLnSDhiaXhiYPhibXhipUg4Yur4Yyg4YmD4YiN4YiL4YiN4Y2iIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRUYXNrcyIgbXNnaWQ9IjY0NjYwOTUzOTY2MjM5MzM5MDYiPiLhiqDhiILhi7Ug4YiY4Ymw4YyN4Ymg4Yiq4Yur4YuO4Ym94YqVIOGIsOGIreGIteGIqOGIhSDhiqDhi43hjKMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFRhc2tzIiBtc2dpZD0iNjQ2NjA5NTM5NjYyMzkzMzkwNiI+IuGKoOGIguGLtSDhiJjhibDhjI3hiaDhiKrhi6vhi47hib3hipUg4Yiw4Yit4Yi14Yio4YuNIOGLq+GLjeGMoSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRhc2tzIiBtc2dpZD0iNzQ1NDIxNTk5NTg0NzY1ODEwMiI+IuGImOGJsOGMjeGJoOGIquGLq+GLjSDhiaDhiqDhiIHhipEg4YyK4Yuc4YqTIOGJoOGJheGIreGJoSDhiqXhi6jhibDhiqvhiIThi7Eg4Yi14YiL4YiJIOGJsOGMjeGJo+GIruGJveGKlSDhiJjhiKjhjIMg4Yiw4Yit4Yi14YiuIOGKpeGKleGLsuGLq+GLiOGMoyDhi63hjYjhiYXhi7XhiIjhibPhiI3hjaIg4Yut4YiFIOGImOGJsOGMjeGJoOGIquGLq+GLjSDhiaDhiJjhiLPhiKrhi6vhi40g4YiL4YutIOGLqOGJteGKm+GLjuGJuSDhiJjhibDhjI3hiaDhiKrhi6vhi47hib0g4Yyl4YmF4YidIOGIi+GLrSDhiLXhiIjhiJjhi4vhiIvhibjhi40g4YiY4Yio4YyDIOGKpeGKleGLsuGLq+GMiOGKnSDhiIrhjYjhiYXhi7XhiIjhibUg4Yut4Ym94YiL4YiN4Y2iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcmFjdEFjcm9zc1VzZXJzIiBtc2dpZD0iNzExNDI1NTI4MTk0NDIxMTY4MiI+IuGJoOGJsOGIiOGLq+GLqSDhibDhjKDhiYPhiJrhi47hib0g4YiY4Yqr4Yqo4YiNIOGImOGIteGJsOGMi+GJpeGIrSDhiJjhjY3hjKDhiK0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcmFjdEFjcm9zc1VzZXJzIiBtc2dpZD0iMzY0NjcwOTYzNjIzMzg1Nzg2Ij4i4YiY4Ymw4YyN4Ymg4Yiq4Yur4YuNIOGJoOGImOGIo+GIquGLq+GLjSDhiIvhi60g4Ymg4Ymw4YiI4Yur4YupIOGJsOGMoOGJg+GImuGLjuGJvSDhiIvhi60g4Yql4Yit4Yid4YyD4YuO4Ym94YqVIOGKpeGKleGLsuGNiOGMveGInSDhi63hjYjhiYXhi7XhiIjhibPhiI3hjaIg4Ymw4YqV4Yqu4YiNLeGKoOGLmOGIjSDhiJjhibDhjI3hiaDhiKrhi6vhi47hib0g4Yut4YiF4YqV4YqVIOGJsOGMoOGJheGImOGLjSDhiaDhibDhjKDhiYPhiJrhi47hib0g4YiY4Yqr4Yqo4YiNIOGLq+GIiOGLjeGKlSDhjKXhiaDhiYMg4YiK4Yyl4YixIOGLreGJveGIi+GIieGNoiI8L3N0cmluZz4KQEAgLTQ1MCw5ICs0NTUsOSBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxsTG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2NjYxODA2MDYyMjc0MTE5MjQ1Ij4i4Yi14YiIIOGMiOGJoiDhiqXhipMg4YuI4YyqIOGMpeGIquGLjuGJveGKlSDhi43hiILhiaUg4Yyo4Yid4Yiu4Y2jIOGLqOGMoeGJo+GLiuGJsOGKruGIheGKlSDhiJ3hi53hjI3hiaUg4Yib4Yi14Ymz4YuI4Yi7IOGIiOGImOGJgOGLqOGIrSDhiIjhiJjhibDhjI3hiaDhiKrhi6vhi40g4Yut4Y2I4YmF4Yuz4YiN4Y2iIOGLreGIhOGKleGKlSDhibDhipXhiq7hiI0g4Yqg4YuY4YiNIOGImOGJsOGMjeGJoOGIquGLq+GLjuGJvSDhi6jhiLXhiI3hiq3hiIXhipUg4Yid4Yud4YyN4YmlIOGIm+GIteGJs+GLiOGIuyDhiIjhiJjhiLDhiKjhi50g4YuI4Yut4YidIOGIiOGImOGIiOGLiOGMpSDhiIrhjKDhiYDhiJnhiaDhibUg4Yut4Ym94YiL4YiJ4Y2iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxsTG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjgzOTQxNzM2MzUyNzg3ODQyIj4i4Yi14YiIIOGMiOGJoiDhiqXhipMg4YuI4YyqIOGMpeGIquGLjuGJveGKlSDhi43hiILhiaUg4Yyo4Yid4Yiu4Y2jIOGLqOGIteGIjeGKreGIheGKlSDhiJ3hi53hjI3hiaUg4Yib4Yi14Ymz4YuI4Yi7IOGIiOGImOGJgOGLqOGIrSDhiIjhiJjhibDhjI3hiaDhiKrhi6vhi40g4Yut4Y2I4YmF4Yuz4YiN4Y2iIOGLreGIhOGKleGKlSDhibDhipXhiq7hiI0g4Yqg4YuY4YiNIOGImOGJsOGMjeGJoOGIquGLq+GLjuGJvSDhi6jhiLXhiI3hiq3hiIXhipUg4Yid4Yud4YyN4YmlIOGIm+GIteGJs+GLiOGIuyDhiIjhiJjhiLDhiKjhi50g4YuI4Yut4YidIOGIiOGImOGIiOGLiOGMpSDhiIrhjKDhiYDhiJnhiaDhibUg4Yut4Ym94YiL4YiJ4Y2iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkUHJvZmlsZSIgbXNnaWQ9IjQ3MDE4ODk4NTI2MTI3MTY2NzgiPiLhi6jhiKvhiLXhiIXhipUg4Yuo4Yql4YuN4YmC4YurIOGKq+GIreGLtSDhiqDhipXhiaXhiaUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkUHJvZmlsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU0NjI0NzUxNTE4NDk4ODg4NDgiPiLhiJjhibDhjI3hiaDhiKrhi6vhi40g4YiN4YqtIOGKpeGKleGLsCDhiLXhiJ3hiIUg4Yql4YqTIOGLqOGKpeGLjeGJguGLqyDhiJjhiKjhjIPhiIUg4Yur4YiJIOGJoOGImOGIs+GIquGLq+GIhSDhiIvhi60g4Yuo4Ymw4Yqo4Yib4Ym5IOGLqOGMjeGIjSDhiJjhjIjhiIjhjKsg4YiY4Yio4YyD4YuO4Ym94YqVIOGKpeGKleGLsuGLq+GKkOGJpSDhi63hjYjhiYXhi7XhiIjhibPhiI3hjaIg4Yut4YiF4YidIOGIm+GIiOGJtSDhiJjhibDhjI3hiaDhiKrhi6vhi40g4YiI4Yut4Ym2IOGIiuGLq+GLjeGJheGIhSDhiqXhipMg4Yuo4YiY4YyI4YiI4YyrIOGImOGIqOGMg+GIheGKlSDhiIjhiIzhiI7hib0g4YiK4YiN4YqtIOGLreGJveGIi+GIjeGNoiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRQcm9maWxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTQ2MjQ3NTE1MTg0OTg4ODg0OCI+IuGImOGJsOGMjeGJoOGIquGLq+GLjSDhiI3hiq0g4Yql4YqV4YuwIOGIteGIneGLjiDhiqXhipMg4Yuo4Yql4YuN4YmC4YurIOGImOGIqOGMg+GLjiDhi6vhiIkg4Ymg4YiY4Yiz4Yiq4Yur4YuOIOGIi+GLrSDhi6jhibDhiqjhiJvhibkg4Yuo4YyN4YiNIOGImOGMiOGIiOGMqyDhiJjhiKjhjIPhi47hib3hipUg4Yql4YqV4Yuy4Yur4YqQ4YmlIOGLreGNiOGJheGLteGIiOGJs+GIjeGNoiDhi63hiIXhiJ0g4Yib4YiI4Ym1IOGImOGJsOGMjeGJoOGIquGLq+GLjSDhiIjhi63hibYg4YiK4Yur4YuN4YmB4YuOIOGKpeGKkyDhi6jhiJjhjIjhiIjhjKsg4YiY4Yio4YyD4YuO4YqVIOGIiOGIjOGIjuGJvSDhiIrhiI3hiq0g4Yut4Ym94YiL4YiN4Y2iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVByb2ZpbGUiIG1zZ2lkPSI5MDc3OTM2Mjg3NzczOTc2NDMiPiLhi6jhiKvhiLXhiIXhipUg4Yuo4YuV4YuN4YmC4YurIOGKq+GIreGLtSDhiqDhiLXhibDhiqvhiq3hiI0iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVByb2ZpbGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NTUyMDg0Mjk0NTk4NDY1ODk5Ij4i4YiY4Ymw4YyN4Ymg4Yiq4Yur4YuNIOGIjeGKrSDhiqXhipXhi7Ag4Yi14Yid4YiFIOGKpeGKkyDhi6jhiqXhi43hiYLhi6sg4YiY4Yio4YyD4YiFIOGLq+GIiSDhiaDhiJjhiLPhiKrhi6vhiIUg4YiL4YutIOGLqOGJsOGKqOGIm+GJuSDhi6jhjI3hiI0g4YiY4YyI4YiI4YyrIOGImOGIqOGMg+GLjuGJveGKlSDhiqXhipXhi7LhiYDhi63hiK0g4YuI4Yut4YidIOGKpeGKleGLsuGLq+GKreGIjeGJo+GJuOGLjSDhi63hjYjhiYXhi7XhiIjhibPhiI3hjaIg4Yut4YiF4YidIOGIm+GIiOGJtSDhiJjhibDhjI3hiaDhiKrhi6vhi40g4YiI4Yut4Ym2IOGIiuGLq+GLjeGJheGIhSDhiqXhipMg4Yuo4YiY4YyI4YiI4YyrIOGImOGIqOGMg+GIheGKlSDhiIjhiIzhiI7hib0g4YiK4YiN4YqtIOGLreGJveGIi+GIjeGNoiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlUHJvZmlsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU1NTIwODQyOTQ1OTg0NjU4OTkiPiLhiJjhibDhjI3hiaDhiKrhi6vhi40g4YiN4YqtIOGKpeGKleGLsCDhiLXhiJ3hi44g4Yql4YqTIOGLqOGKpeGLjeGJguGLqyDhiJjhiKjhjIPhi44g4Yur4YiJIOGJoOGImOGIs+GIquGLq+GLjiDhiIvhi60g4Yuo4Ymw4Yqo4Yib4Ym5IOGLqOGMjeGIjSDhiJjhjIjhiIjhjKsg4YiY4Yio4YyD4YuO4Ym94YqVIOGKpeGKleGLsuGJgOGLreGIrSDhi4jhi63hiJ0g4Yql4YqV4Yuy4Yur4Yqt4YiN4Ymj4Ym44YuNIOGLreGNiOGJheGLteGIiOGJs+GIjeGNoiDhi63hiIXhiJ0g4Yib4YiI4Ym1IOGImOGJsOGMjeGJoOGIquGLq+GLjSDhiIjhi63hibYg4YiK4Yur4YuN4YmF4YuOIOGKpeGKkyDhi6jhiJjhjIjhiIjhjKsg4YiY4Yio4YyD4YuO4YqVIOGIiOGIjOGIjuGJvSDhiIrhiI3hiq0g4Yut4Ym94YiL4YiN4Y2iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTI2ODkyMDk1NjE1MjQxOTE3MCI+IuGLqOGKoOGKleGJsOGKlSDhiJvhiIXhiaDhiKvhi4og4Yuo4YuN4Yut4Yut4Ym1IOGKreGNjeGIjuGJvSDhiqDhipXhiaXhiaUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDI1NTcwNjAyNzE3MjA1MDg3MiI+IuGImOGJsOGMjeGJoOGIquGLq+GLjSDhi6jhiqDhipXhibDhipXhipMg4Yuo4YyT4Yqe4Ym94YiF4YqVIOGIm+GIheGJoOGIq+GLiiDhi53hiJvhipThi47hib3hipUg4Yql4YqV4Yuy4Yuw4Yit4Yi14Ymj4Ym44YuNIOGKpeGKkyDhiqXhipXhi7Lhi6vhiJjhiLPhiLXhiIvhibjhi40g4Yut4Y2I4YmF4Yu14YiI4Ymz4YiN4Y2iIOGImOGIqOGMgyDhiLXhibPhjIvhiKsg4Ymw4Yyg4YqV4YmA4YmFIC0tIOGLreGIhSDhiJjhibDhjI3hiaDhiKrhi6vhi40g4Yia4Yi14Yyl4Yir4YuK4YqQ4Ym14YqVIOGKqOGMjeGIneGJtSDhiLPhi6vhiLXhjIjhiaMg4Ymg4Yib4YiF4Ymg4Yir4YuKIOGKoOGLjeGJs+GIqCDhiJjhiKjhiabhib0g4Ymg4Yqg4YqV4YmwIOGKpeGKkyDhiaDhjJPhi7Dhip7hib3hiIUg4YiY4Yqr4Yqo4YiNIOGLqOGImuGLsOGIqOGMiSDhjI3hipXhipnhipDhibbhib3hipUg4Yql4YqV4Yuy4Yur4YqQ4YmlIOGLreGNiOGJheGLteGIiOGJs+GIjeGNoiDhiJvhiLXhibPhi4jhiLvhjaYg4Yut4YiFIOGNiOGJg+GLtSDhiIjhiIHhiInhiJ0g4Yib4YiF4Ymg4Yir4YuKIOGKoOGLjeGJs+GIrSDhiJjhiKjhiabhib0g4YiL4YutIOGIi+GLreGNiOGMuOGInSDhi63hib3hiIvhiI3hjaIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzUwNDE3OTIyMjQ5MzIzNTY0NSI+IuGLiOGLsCDhi6jhiqDhipXhibAgIOGIm+GIheGJoOGIq+GLiiDhi6jhi43hi63hi63hibUg4Yqt4Y2N4YiO4Ym9IOGMu+GNjSI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4i4YiY4Ymw4YyN4Ymg4Yiq4Yur4YuN4YqVIOGLqFN1cmZhY2VGbGluZ2VyIOGLneGJheGJsOGKmyDhi7DhiKjhjIMg4Ymj4YiF4Yiq4Yur4Ym14YqVIOGIiOGImOGMoOGJgOGInSDhi63hjYjhiYXhi7PhiI3hjaIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiLhi6jhipXhi5HhiLUg4Yqt4Y2I4Y2NIOGJi+GJtSDhiqDhipXhiaXhiaUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4i4Yuo4Yqt4Y2I4Y2NIOGJi+GJtSDhi63hi5jhibUg4YiI4Yib4YqV4Ymg4YmlIOGIiOGImOGJsOGMjeGJoOGIquGLq+GLjSDhi63hjYjhiYXhi7PhiInhjaIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJJbnB1dEZsaW5nZXIg4YqVIOGImOGLteGIqOGItSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiLhiJjhibDhjI3hiaDhiKrhi6vhi40g4Ymj4YiI4Yqg4YqQ4Yi14Ymw4YqbIOGLqElucHV0RmxpbmdlciDhiaPhiIXhiKrhi6vhibUg4Yql4YqV4Yuy4Yyg4YmA4YidIOGLreGNiOGJheGLteGIiOGJs+GIjeGNoiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4i4YuoV2lmaSDhiJvhiLPhi6vhi47hib3hipUg4Yqg4YuL4YmF4YitIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i4YiY4Ymw4YyN4Ymg4Yiq4Yur4YuNIOGLqFdpZmkg4Yib4Yiz4Yur4YuO4Ym94YqVIOGKpeGKleGLsuGLq+GLi+GJheGIreGKkyDhiqjhiqXhipDhiLEg4YyL4YitIOGKpeGKleGLsuGMiOGKk+GKnSDhi63hjYjhiYXhi7XhiIjhibPhiI3hjaIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+IuGLqFdpZmkg4Yib4Yiz4Yur4YuO4Ym94YqVIOGJsOGJhuGMo+GMoOGIrSI8L3N0cmluZz4KQEAgLTU4NSw5ICs1OTIsOSBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXV0aGVudGljYXRlQWNjb3VudHMiIG1zZ2lkPSI1NDcyMTI0Mjk2OTA4OTc3MjYwIj4i4Yuo4YiY4YiI4YurIOGKoOGIqOGMi+GMi+GMrSDhiJjhiIjhi6sg4YiY4YqT4YyFIOGJveGIjuGJs+GKlSDhiIjhiJjhjKDhiYDhiJ3hjaMg4YiY4YiI4YurIOGImOGNjeGMoOGIrSDhiqXhipMg4Yuo4Yut4YiI4Y2NIOGJg+GIjuGJveGKlSDhiIjhiJvhjI3hipjhibUg4Yql4YqTIOGIiOGIm+GJgOGKk+GMgOGJtSDhiqDhiq3hiI4g4YiI4YiY4Ymw4YyN4Ymg4Yiq4Yur4YuNIOGLreGNiOGJheGLs+GIiSDhjaIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFjY291bnRzIiBtc2dpZD0iNDk4MzEyNjMwNDc1NzE3NzMwNSI+IuGImOGIiOGLq+GLjuGJveGKlSDhiqDhiq3hiI0g4YuI4Yut4YidIOGKoOGIteGLiOGMjeGLtSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFjY291bnRzIiBtc2dpZD0iODY5ODI5NTYyNTQ4ODI5MjUwNiI+IuGImOGIiOGLq+GLjuGJveGKlSDhiqXhipXhi7Ag4Yib4Yqo4YiNIOGKpeGKkyDhiJvhiLXhi4jhjIjhi7Ug4Yqt4YuI4YqT4YuO4Ym94YqVIOGKpeGKkyDhi6jhi63hiIjhjY0g4YmD4YiN4YqVIOGImOGIsOGIqOGLnSDhiIjhiJvhiqjhipPhi4jhipUg4YiI4YiY4Ymw4YyN4Ymg4Yiq4Yur4YuNIOGLreGNiOGJheGLs+GIieGNoeGNoSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXNlQ3JlZGVudGlhbHMiIG1zZ2lkPSIyMzU0ODEzOTYxNjM4Nzc2NDIiPiLhiaDhiJjhiKPhiKrhi6vhi40g4YiL4YutIOGLq+GIiSDhiJjhiIjhi6vhi47hib3hipUg4Ymw4Yyg4YmA4YidIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91c2VDcmVkZW50aWFscyIgbXNnaWQ9IjIzNTQ4MTM5NjE2Mzg3NzY0MiI+IuGJoOGImOGIo+GIquGLq+GLjSDhiIvhi60g4Yur4YiJIOGImOGIiOGLq+GLjuGJveGKlSDhi63hjKDhiYDhiJkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191c2VDcmVkZW50aWFscyIgbXNnaWQ9Ijc5ODQyMjcxNDc0MDMzNDY0MjIiPiLhi6jhiJvhiKjhjIvhjIjhjKsg4Yuo4Yid4Yi14YyL4YqTIOGLqOGIneGIteGKreGIrSDhi4jhiKjhiYDhibXhipUg4YiI4YiY4Yyg4Yuo4YmFIOGIiOGImOGJsOGMjeGJoOGIquGLq+GLjSDhi63hjYjhiYXhi7PhiInhjaHhjaEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjQ5NTEwMjc5NjQzNDg5NzQ3NzMiPiLhi6jhiqDhi43hibPhiKgg4YiY4Yio4YmlIOGMjeGKkeGKneGKkOGJtuGJveGKlSDhiqXhi60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjQ5NTEwMjc5NjQzNDg5NzQ3NzMiPiLhi6jhiqDhi43hibPhiKgg4YiY4Yio4YmlIOGMjeGKleGKmeGKkOGJtuGJveGKlSDhi63hiJjhiI3hiqjhibEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOZXR3b3JrU3RhdGUiIG1zZ2lkPSI4MzE4OTY0NDI0Njc1OTYwOTc1Ij4i4YiY4Ymw4YyN4Ymg4Yiq4Yur4YuNIOGKpeGKleGLsCDhi6jhibXhipvhi47hibkg4Yqg4YuN4Ymz4YioIOGImOGIqOGJpuGJvSDhiqXhipXhi7PhiIkg4Yql4YqTIOGKpeGKleGLsOGJsOGMiOGKk+GKmSDhi6vhiIkg4Yuo4Yqg4YuN4Ymz4YioIOGImOGIqOGJpSDhjI3hipXhipnhipDhibbhib0g4YiY4Yio4YyD4YuO4Ym94YqVIOGKpeGKleGLsuGLq+GLrSDhi63hjYjhiYXhi7XhiIjhibPhiI3hjaIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iODAxODc1ODEzNjQwNDMyMzY1OCI+IuGImeGIiSDhi6jhiqDhi43hibPhiKgg4YiY4Yio4YmlIOGImOGLs+GIqOGIuyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iMzQwMzA2MjE4Nzc3OTcyNDE4NSI+IuGImOGJsOGMjeGJoOGIquGLq+GLjSDhi6jhiqDhi43hibPhiKgg4YiY4Yio4YmlIOGImOGIsOGKquGLq+GLjuGJveGKlSDhiqXhipXhi7LhjYjhjKXhiK0g4Yql4YqTIOGJpeGMgSDhi6jhiqDhi43hibPhiKgg4YiY4Yio4YmlIOGNleGIruGJtuGKruGIjuGJveGKlSDhiqXhipXhi7LhjKDhiYDhiJ0g4Yut4Y2I4YmF4Yu14YiI4Ymz4YiN4Y2iIOGKoOGIs+GIuSDhiqXhipMg4YiM4YiO4Ym9IOGImOGJsOGMjeGJoOGIquGLq+GLjuGJvSDhi43hiILhiaUg4YuI4YuwIOGJoOGLreGKkOGImOGIqOGJpSDhi6jhiJjhiIvhiqrhi6sg4YiY4YqV4YyI4Yu24Ym94YqVIOGIteGIiOGImuGLq+GJgOGIreGJoeGLjeGIguGJpSDhi4jhi7Ag4Ymg4Yut4YqQ4YiY4Yio4YmlIOGIiOGImOGIi+GKrSDhi63hiIUg4Y2N4YmD4Yu1IOGKoOGLq+GIteGNiOGIjeGMjeGIneGNoiI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiLhiYDhi63hiK0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiLhiqDhiLXhjIjhiaMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiLhiJjhibDhjI3hiaDhiKrhi6sg4Yid4Yio4YylIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPuGKlSDhiJvhiLXhjIDhiJjhiK0g4Yqg4YiN4Ymw4Ym74YiI4YidIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4i4Ymw4YyL4YirIOGKqCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiLhiqggPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiDhjIvhiK0g4Ymw4YyL4YirIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+IuGJo+GIiOGIteGIi+GLreGLtSDhiJjhi6vhi6PhjaHhjaEg4Yuz4Yi1JmFtcDvhi6vhi53hjaHhjaEiPC9zdHJpbmc+CkBAIC0xNjUwLDQgKzE2NTgsMTUgQEAKICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+IuGJhuGLreGJsOGLjSDhiqXhipXhi7DhjIjhipMg4Yut4Yie4Yqt4YipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IuGKqOGImeGIiSDhjIjhjL0g4Yib4YurIOGIiOGImOGLjeGMo+GJtSDhjKPhibXhi47hipUg4Yqo4YiL4YutIOGLiOGLsOGJs+GJvSDhi6vhipXhiLjhiKvhibXhibHhjaIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IuGJsOGKqOGKk+GLjeGKl+GIjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IuGLqOGIsOGLk+GJs+GJtSDhiq3hiaUg4Ymw4YqV4Yi44Yir4Ymz4Ym9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiLhi6jhi7DhiYLhiYPhi47hib0g4Yqt4YmlIOGJsOGKleGIuOGIq+GJs+GJvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiLhiLDhi5PhibPhibXhipUg4Yut4Yid4Yio4YyhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4i4Yuw4YmC4YmD4YuO4Ym94YqVIOGLreGIneGIqOGMoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4i4Yuo4YmA4YqT4Ym1IOGLqOGLiOGIrSDhjY3hiK3hjI3hiK3hjI0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLhi6jhi5PhiJjhibUg4Yud4Yit4Yud4YitIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2RheSIgbXNnaWQ9Ijc3NzQ3NTk2MDQ3MDE3NzMzMzIiPiLhi4jhiK0g4Yql4YqTIOGJgOGKlSDhi63hiJ3hiKjhjKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiLhi5PhiJjhibUg4Yut4Yid4Yio4YyhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+Ijx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiDhibDhiJjhiK3hjKfhiI0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiI8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiDhibDhiLDhiK3hi5/hiI0iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtYXIvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWFyL3N0cmluZ3MueG1sCmluZGV4IDJkOTFlMjguLjE0YzEzM2YgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtYXIvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1hci9zdHJpbmdzLnhtbApAQCAtMjcsMTQgKzI3LDE0IEBACiAgICAgPHN0cmluZyBuYW1lPSJ0ZXJhYnl0ZVNob3J0IiBtc2dpZD0iMjMxNjEzMDE4MTU5MTg2OTYyIj4i2KrZitix2KfYqNin2YrYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBldGFieXRlU2hvcnQiIG1zZ2lkPSI1NjM3ODE2NjgwMTQ0OTkwMjE5Ij4i2KjZitiq2KfYqNin2YrYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImZpbGVTaXplU3VmZml4IiBtc2dpZD0iOTE2NDI5Mjc5MTUwMDUzMTk0OSI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiUxJHM8L3hsaWZmOmc+IDx4bGlmZjpnIGlkPSJVTklUIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVudGl0bGVkIiBtc2dpZD0iNDYzODk1Njk1NDg1Mjc4MjU3NiI+IiZsdDvYqNmE2Kcg2LnZhtmI2KfZhiZndDsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1bnRpdGxlZCIgbXNnaWQ9IjQ2Mzg5NTY5NTQ4NTI3ODI1NzYiPiLigI8mbHQ72KjZhNinINi52YbZiNin2YYmZ3Q7Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXMiIG1zZ2lkPSI3ODk5ODI5NTE2MDQ4ODEzMjM3Ij4i4oCmIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXNfdHdvX2RvdHMiIG1zZ2lkPSIxMjI4MDc4OTk0ODY2MDMwNzM2Ij4i4oClIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZW1wdHlQaG9uZU51bWJlciIgbXNnaWQ9Ijc2OTQwNjMwNDIwNzk2NzY1MTciPiIo2YTZitizINmH2YbYp9mDINix2YLZhSDZh9in2KrZgSkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1bmtub3duTmFtZSIgbXNnaWQ9IjIyNzc1NTY1NDY3NDI3NDY1MjIiPiIo2LrZitixINmF2LnYsdmI2YEpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdFZvaWNlTWFpbEFscGhhVGFnIiBtc2dpZD0iMjY2MDAyMDk5MDA5NzczMzA3NyI+Itin2YTYqNix2YrYryDYp9mE2LXZiNiq2YoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0TXNpc2RuQWxwaGFUYWciIG1zZ2lkPSIyODUwODg5NzU0OTE5NTg0Njc0Ij4iTVNJU0ROMSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Im1taUVycm9yIiBtc2dpZD0iNTE1NDQ5OTQ1NzczOTA1MjkwNyI+Itit2K/Yq9iqINmF2LTZg9mE2Kkg2YHZiiDYp9mE2KfYqti12KfZhCDYo9mIINij2YYg2YPZiNivIE1NSSDYutmK2LEg2LXYrdmK2K0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pRXJyb3IiIG1zZ2lkPSI1MTU0NDk5NDU3NzM5MDUyOTA3Ij4i4oCP2K3Yr9ir2Kog2YXYtNmD2YTYqSDZgdmKINin2YTYp9iq2LXYp9mEINij2Ygg2KPZhiDZg9mI2K8gTU1JINi62YrYsSDYtdit2YrYrS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtbWlGZG5FcnJvciIgbXNnaWQ9IjUyMjQzOTgyMTYzODUzMTY0NzEiPiLYqtmFINiq2YLZitmK2K8g2KfZhNiq2LTYutmK2YQg2YTYo9ix2YLYp9mFINin2YTYp9iq2LXYp9mEINin2YTYq9in2KjYqiDZgdmC2LcuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUVuYWJsZWQiIG1zZ2lkPSI4MTQ3Mjc4MzQ2NDE0NzE0MzE1Ij4i2KrZhSDYqtmF2YPZitmGINin2YTYrtiv2YXYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRW5hYmxlZEZvciIgbXNnaWQ9IjY4NTYyMjgxNDA0NTM0NzEwNDEiPiLYqtmFINiq2YXZg9mK2YYg2KfZhNiu2K/ZhdipINmE2YA6Ijwvc3RyaW5nPgpAQCAtNDIsMjMgKzQyLDI4IEBACiAgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlUmVnaXN0ZXJlZCIgbXNnaWQ9IjYyNzUwMTkwODI1OTgxMDI0OTMiPiLYqtmFINin2YTYqtiz2KzZitmEINio2YbYrNin2K0uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUVyYXNlZCIgbXNnaWQ9IjEyODg1ODQ2OTUyOTcyMDA5NzIiPiLZhNmFINmK2KrZhSDYp9mE2YXYs9itINio2YbYrNin2K0uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRJbmNvcnJlY3QiIG1zZ2lkPSI3NjEyMjA4ODM5NDUwMTI4NzE1Ij4i2YPZhNmF2Kkg2YXYsdmI2LEg2LrZitixINi12K3Zitit2KkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibW1pQ29tcGxldGUiIG1zZ2lkPSI4MjMyNTI3NDk1NDExNjk4MzU5Ij4i2KfZg9iq2YXZhCBNTUkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYmFkUGluIiBtc2dpZD0iOTAxNTI3NzY0NTU0NjcxMDAxNCI+Itix2YLZhSDYp9mE2KrYudix2YrZgSDYp9mE2LTYrti12Yog2KfZhNmC2K/ZitmFINin2YTYsNmKINmD2KrYqNiq2Ycg2LrZitixINi12K3ZititLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImJhZFB1ayIgbXNnaWQ9IjU0ODcyNTc2NDcwODExMzIyMDEiPiLYsdmF2LIgUFVLINin2YTYsNmKINmD2KrYqNiq2Ycg2LrZitixINi12K3ZititLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1taUNvbXBsZXRlIiBtc2dpZD0iODIzMjUyNzQ5NTQxMTY5ODM1OSI+IuKAj9in2YPYqtmF2YQgTU1JLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhZFBpbiIgbXNnaWQ9IjkwMTUyNzc2NDU1NDY3MTAwMTQiPiLigI/YsdmF2LIgUElOINin2YTZgtiv2YrZhSDYp9mE2LDZiiDZg9iq2KjYqtmHINi62YrYsSDYtdit2YrYrS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWRQdWsiIG1zZ2lkPSI1NDg3MjU3NjQ3MDgxMTMyMjAxIj4i4oCP2LHZhdiyIFBVSyDYp9mE2LDZiiDZg9iq2KjYqtmHINi62YrYsSDYtdit2YrYrS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtaXNtYXRjaFBpbiIgbXNnaWQ9IjYwOTM3OTA1NDQ5Njg2MzQxOSI+Itij2LHZgtin2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmK2Kkg2KfZhNiq2Yog2YPYqtio2KrZh9inINi62YrYsSDZhdi32KfYqNmC2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFBpbiIgbXNnaWQ9IjM4NTAwMTg0NDUxODc0NzUzNzciPiLYp9mD2KrYqCDYsdmC2YUg2KrYudix2YrZgSDYtNiu2LXZitmL2Kcg2YXZg9mI2YbZi9inINmF2YYgNCDYpdmE2Ykg2KvZhdin2YbZitipINij2LnYr9in2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiLYp9mD2KrYqCDYsdmF2LIgUFVLINmF2YPZiNmG2YvYpyDZhdmGIDgg2KPYsdmC2KfZhSDYo9mIINij2YPYq9ixLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiLYqNi32KfZgtipIFNJTSDZhdik2YXZkdmG2Kkg2KjZg9mI2K8gUFVLLiDYp9mD2KrYqCDZg9mI2K8gUFVLINmE2KXZhNi62KfYoSDYqtij2YXZitmG2YfYpy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiLYp9mD2KrYqCBQVUsyINmE2KXZhNi62KfYoSDYqtij2YXZitmGINio2LfYp9mC2KkgU0lNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4i4oCP2KfZg9iq2Kgg2LHZhdiyIFBVSyDZhdmD2YjZhtmL2Kcg2YXZhiA4INij2LHZgtin2YUg2KPZiCDYo9mD2KvYsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4i4oCP2KjYt9in2YLYqSBTSU0g2YXYpNmF2ZHZhtipINio2YPZiNivIFBVSy4g2KfZg9iq2Kgg2YPZiNivIFBVSyDZhNil2YTYutin2KEg2KrYo9mF2YrZhtmH2KcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4i4oCP2KfZg9iq2KggUFVLMiDZhNil2YTYutin2KEg2KrYo9mF2YrZhiDYqNi32KfZgtipIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiLigI/Zhdit2KfZiNmE2Kkg2LrZitixINmG2KfYrNit2KnYjCDZhdmD2ZHZhiDZgtmB2YQgU0lNL1JVSU0uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4i4oCP2YrYqtio2YLZiSDZhNiv2YrZgyDZhdit2KfZiNmE2Kkg2YjYp9it2K/YqSAoPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+KSDZitiq2YUg2KjYudiv2YfYpyDZgtmB2YQg2KjYt9in2YLYqSBTSU0uIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4i4oCP2YrYqtio2YLZiSDZhNiv2YrZgyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g2YXZhiDYp9mE2YXYrdin2YjZhNin2Kog2YrYqtmFINio2LnYr9mH2Kcg2YLZgdmEINio2LfYp9mC2KkgU0lNLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4i2YXYudix2YEg2KfZhNmF2KrYtdmEINin2YTZiNin2LHYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXJNbWkiIG1zZ2lkPSI3Nzg0NjczNjczNDQ2ODMzMDkxIj4i2YXYudix2YEg2KfZhNmF2KrYtdmEINin2YTYtdin2K/YsSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IkNmTW1pIiBtc2dpZD0iNTEyMzIxODk4OTE0MTU3MzUxNSI+Itil2LnYp9iv2Kkg2KrZiNis2YrZhyDYp9mE2KfYqti12KfZhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNmTW1pIiBtc2dpZD0iNTEyMzIxODk4OTE0MTU3MzUxNSI+Itin2LnYp9iv2Kkg2KrZiNis2YrZhyDYp9mE2YXZg9in2YTZhdipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ3dNbWkiIG1zZ2lkPSI5MTI5Njc4MDU2Nzk1MDE2ODY3Ij4i2KfZhtiq2LjYp9ixINin2YTZhdmD2KfZhNmF2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJCYU1taSIgbXNnaWQ9IjQ1NTE5MzA2NzkyNjc3MDU4MSI+Itit2LjYsSDYp9mE2KfYqti12KfZhCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IlB3ZE1taSIgbXNnaWQ9IjcwNDM3MTU2ODc5MDUyNTQxOTkiPiLYqti62YrZitixINmD2YTZhdipINin2YTZhdix2YjYsSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IlBpbk1taSIgbXNnaWQ9IjMxMTMxMTc3ODAzNjExOTAzMDQiPiLYqti62YrZitixINix2YLZhSDYp9mE2KrYudix2YrZgSDYp9mE2LTYrti12YoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJQaW5NbWkiIG1zZ2lkPSIzMTEzMTE3NzgwMzYxMTkwMzA0Ij4i4oCP2KrYutmK2YrYsSDYsdmF2LIgUElOIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ25pcE1taSIgbXNnaWQ9IjMxMTA1MzQ2ODA1NTc4NTcxNjIiPiLYsdmC2YUg2KfZhNin2KrYtdin2YQg2YXZiNis2YjYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNuaXJNbWkiIG1zZ2lkPSIzMDYyMTAyMTIxNDMwNTQ4NzMxIj4i2LHZgtmFINin2YTYp9iq2LXYp9mEINmF2YLZitmR2K8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJUaHJlZVdDTW1pIiBtc2dpZD0iOTA1MTA0NzE3MDMyMTE5MDM2OCI+Itin2KrYtdin2YQg2KvZhNin2KvZiiI8L3N0cmluZz4KQEAgLTc2LDE0ICs4MSwxNCBAQAogICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uRW1lcmdlbmN5IiBtc2dpZD0iNjU4MTE2Mzc3OTA3MjgzMzY2NSI+Itiu2K/ZhdipINin2YTYt9mI2KfYsdimINmF2K3YuNmI2LHYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25Ob3JtYWwiIG1zZ2lkPSI0OTUzODY3MDExMzg5NzUwNjczIj4i2KfZhNiu2K/ZhdipINin2YTYtdmI2KrZitipINmF2K3YuNmI2LHYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25BbGxWb2ljZSIgbXNnaWQ9IjMzOTY5NjM2NTIxMDgxNTEyNjAiPiLYrNmF2YrYuSDYp9mE2K7Yr9mF2KfYqiDYp9mE2LXZiNiq2YrYqSDZhdit2LjZiNix2KkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uU21zIiBtc2dpZD0iODMxNDM1MjMyNzQ2MTYzODg5NyI+Itiu2K/ZhdipINin2YTYsdiz2KfYptmEINin2YTZgti12YrYsdipIFNNUyDZhdit2LjZiNix2KkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uU21zIiBtc2dpZD0iODMxNDM1MjMyNzQ2MTYzODg5NyI+IuKAj9iu2K/ZhdipINin2YTYsdiz2KfYptmEINin2YTZgti12YrYsdipIFNNUyDZhdit2LjZiNix2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VEYXRhIiBtc2dpZD0iOTk2NjM2NDg3MTA2MTcxMzIwIj4i2K7Yr9mF2KfYqiDYp9mE2LXZiNiqL9in2YTYqNmK2KfZhtin2Kog2YXYrdi42YjYsdipLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblZvaWNlU21zIiBtc2dpZD0iMTg4ODU4ODE1Mjc5MjAyMzg3MyI+Itiu2K/Zhdin2Kog2KfZhNi12YjYqi/Yp9mE2LHYs9in2KbZhCDYp9mE2YLYtdmK2LHYqSBTTVMg2YXYrdi42YjYsdipLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkFsbCIgbXNnaWQ9IjU2NDMwMjgyNjQ0NjYwOTI4MjEiPiLYrNmF2YrYuSDYrtiv2YXYp9iqINin2YTYtdmI2Kov2KfZhNio2YrYp9mG2KfYqi/Yp9mE2LHYs9in2KbZhCDYp9mE2YLYtdmK2LHYqSBTTVMg2YXYrdi42YjYsdipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblZvaWNlU21zIiBtc2dpZD0iMTg4ODU4ODE1Mjc5MjAyMzg3MyI+IuKAj9iu2K/Zhdin2Kog2KfZhNi12YjYqi/Yp9mE2LHYs9in2KbZhCDYp9mE2YLYtdmK2LHYqSBTTVMg2YXYrdi42YjYsdipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkFsbCIgbXNnaWQ9IjU2NDMwMjgyNjQ0NjYwOTI4MjEiPiLigI/YrNmF2YrYuSDYrtiv2YXYp9iqINin2YTYtdmI2Kov2KfZhNio2YrYp9mG2KfYqi/Yp9mE2LHYs9in2KbZhCDYp9mE2YLYtdmK2LHYqSBTTVMg2YXYrdi42YjYsdipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1ZvaWNlIiBtc2dpZD0iMTI1ODM5MzgxMjMzNTI1ODAxOSI+Itin2YTYtdmI2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhIiBtc2dpZD0iODcyNDU2NzgyMDc3OTM3ODkzIj4i2KfZhNio2YrYp9mG2KfYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0ZBWCIgbXNnaWQ9IjU1NjY2MjQ5OTg4NDA0ODY0NzUiPiLYp9mE2YHYp9mD2LMiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NTTVMiIG1zZ2lkPSIyMDE1NDYwMzczNzAxNTI3NDg5Ij4i2KfZhNix2LPYp9im2YQg2KfZhNmC2LXZitix2KkgU01TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzU01TIiBtc2dpZD0iMjAxNTQ2MDM3MzcwMTUyNzQ4OSI+IuKAj9in2YTYsdiz2KfYptmEINin2YTZgti12YrYsdipIFNNUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0RhdGFBc3luYyIgbXNnaWQ9IjQ1MjM0NTQ3ODM0OTg1NTE0NjgiPiLYutmK2LEg2YXYqtiy2KfZhdmG2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhU3luYyIgbXNnaWQ9Ijc1MzAwMDA1MTk2NDYwNTQ3NzYiPiLZhdiy2KfZhdmG2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NQYWNrZXQiIG1zZ2lkPSI2OTkxMDA2NTU3OTkzNDIzNDUzIj4i2KfZhNit2LLZhdipIjwvc3RyaW5nPgpAQCAtMTExLDcgKzExNiw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJmY0Vycm9yIiBtc2dpZD0iMzMyNzU2MDEyNjU4ODUwMDc3NyI+Itit2K/Yq9iqINmF2LTZg9mE2Kkg2KjYp9mE2KfYqti12KfZhCDYo9mIINij2YYg2YPZiNivINin2YTZhdmK2LLYqSDYutmK2LEg2LXYrdmK2K0uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yT2siIG1zZ2lkPSIxMTkxOTE5Mzc4MDgzNDcyMjA0Ij4i2YXZiNin2YHZgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvciIgbXNnaWQ9Ijc5NTYzOTI1MTExNDY2OTg1MjIiPiLYrdiv2Ksg2K7Yt9ijINmB2Yog2KfZhNi02KjZg9ipLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckxvb2t1cCIgbXNnaWQ9IjQ3MTE2ODc0NTYxMTE5NjMxNjMiPiLYqti52LDYsSDYp9mE2LnYq9mI2LEg2LnZhNmJINi52YbZiNin2YYgVVJMLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckxvb2t1cCIgbXNnaWQ9IjQ3MTE2ODc0NTYxMTE5NjMxNjMiPiLigI/Yqti52LDYsSDYp9mE2LnYq9mI2LEg2LnZhNmJINi52YbZiNin2YYgVVJMLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclVuc3VwcG9ydGVkQXV0aFNjaGVtZSIgbXNnaWQ9IjYyOTk5ODAyODA0NDIwNzY3OTkiPiLZhti42KfZhSDZhdi12KfYr9mC2Kkg2KfZhNmF2YjZgti5INi62YrYsSDZhdi52KrZhdivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckF1dGgiIG1zZ2lkPSIxNDM1MDY1NjI5NDM4MDQ0NTM0Ij4i2KrYudiw2LHYqiDYp9mE2YXYtdin2K/ZgtipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclByb3h5QXV0aCIgbXNnaWQ9IjE3ODgyMDcwMTA1NTkwODEzMzEiPiLZhNmFINiq2KrZhSDYp9mE2YXYtdin2K/ZgtipINi52KjYsSDYp9mE2K7Yp9iv2YUg2KfZhNmI2YPZitmEINio2YbYrNin2K0uIjwvc3RyaW5nPgpAQCAtMTIxLDcgKzEyNiw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JSZWRpcmVjdExvb3AiIG1zZ2lkPSI4Njc5NTk2MDkwMzkyNzc5NTE2Ij4i2KrYrdiq2YjZiiDZh9iw2Ycg2KfZhNi12YHYrdipINi52YTZiSDYudmF2YTZitin2Kog2KXYudin2K/YqSDYqtmI2KzZitmHINiu2KfYr9mFINmD2KvZitix2Kkg2YTZhNi62KfZitipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclVuc3VwcG9ydGVkU2NoZW1lIiBtc2dpZD0iNTAxNTczMDgxMjkwNjE5MjIwOCI+Itin2YTYqNix2YjYqtmI2YPZiNmEINi62YrYsSDZhdi52KrZhdivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckZhaWxlZFNzbEhhbmRzaGFrZSIgbXNnaWQ9Ijk2NTQ5NjA2MDAwNjU4NjQxIj4i2KrYudiw2LEg2KXZhti02KfYoSDYp9iq2LXYp9mEINii2YXZhi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JCYWRVcmwiIG1zZ2lkPSIzNjM2OTI5NzIyNzI4ODgxOTcyIj4i2KrYudiw2LEg2YHYqtitINin2YTYtdmB2K3YqSDZhNij2YYg2LnZhtmI2KfZhiBVUkwg2LrZitixINi12KfZhNitLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckJhZFVybCIgbXNnaWQ9IjM2MzY5Mjk3MjI3Mjg4ODE5NzIiPiLigI/Yqti52LDYsSDZgdiq2K0g2KfZhNi12YHYrdipINmE2KPZhiDYudmG2YjYp9mGIFVSTCDYutmK2LEg2LXYp9mE2K0uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yRmlsZSIgbXNnaWQ9IjIxNzA3ODg1MTUwNTI1NTg2NzYiPiLYqti52LDYsSDYp9mE2K/YrtmI2YQg2KXZhNmJINin2YTZhdmE2YEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yRmlsZU5vdEZvdW5kIiBtc2dpZD0iNjIwMzg1NjYxMjA0MjY1NTA4NCI+Itiq2LnYsNixINin2YTYudir2YjYsSDYudmE2Ykg2KfZhNmF2YTZgSDYp9mE2YXYt9mE2YjYqC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JUb29NYW55UmVxdWVzdHMiIG1zZ2lkPSIxMjM1Mzk2OTI3MDg3MTg4MjUzIj4i2KrYqtmFINin2YTYotmGINmF2LnYp9mE2KzYqSDYt9mE2KjYp9iqINmD2KvZitix2Kkg2YTZhNi62KfZitipLiDYrdin2YjZhCDZhdix2Kkg2KPYrtix2Ykg2YHZiiDZiNmC2Kog2YTYp9it2YIuIjwvc3RyaW5nPgpAQCAtMTY4LDExICsxNzMsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zX2FpcnBsYW5lX21vZGVfb2ZmX3N0YXR1cyIgbXNnaWQ9IjUwNzUwNzA0NDI4NTQ0OTAyOTYiPiLZiNi22Lkg2KfZhNi32KfYptix2Kkg2YXYqtmI2YLZgSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luZm9fb3ZlcmZsb3ciIG1zZ2lkPSI1MzAxOTgxNzQxNzA1MzU0OTkzIj4iOTk5KyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNhZmVNb2RlIiBtc2dpZD0iMjc4ODIyODA2MTU0NzkzMDI0NiI+Itin2YTZiNi22Lkg2KfZhNii2YXZhiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfc3lzdGVtX2xhYmVsIiBtc2dpZD0iNjU3NzM3NTMzNTcyODU1MTMzNiI+ItmG2LjYp9mFIEFuZHJvaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3N5c3RlbV9sYWJlbCIgbXNnaWQ9IjY1NzczNzUzMzU3Mjg1NTEzMzYiPiLigI/Zhti42KfZhSBBbmRyb2lkIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2Nvc3RNb25leSIgbXNnaWQ9IjU0Mjk4MDgyMTc4NjE0NjA0MDEiPiLYp9mE2K7Yr9mF2KfYqiDYp9mE2KrZiiDYqtmD2YTZgdmDINin2YTZhdin2YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Nvc3RNb25leSIgbXNnaWQ9IjMyOTMzMDE5MDM0MDk4Njk0OTUiPiLZitmF2YPZhtmDINiq2YbZgdmK2LAg2KXYrNix2KfYodin2Kog2YrZhdmD2YYg2KPZhiDYqtmD2YTZgdmDINmF2KfZhNin2YsuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX21lc3NhZ2VzIiBtc2dpZD0iNzUyMTI0OTE0ODQ0NTQ1NjY2MiI+Itix2LPYp9im2YTZgyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbWVzc2FnZXMiIG1zZ2lkPSI3ODIxOTk5MDcxMDAzNjk5MjM2Ij4i2YLYsdin2KHYqSDZiNmD2KrYp9io2Kkg2KfZhNix2LPYp9im2YQg2KfZhNmC2LXZitix2KkgU01TINmI2KfZhNix2LPYp9im2YQg2KfZhNil2YTZg9iq2LHZiNmG2YrYqSDZiNin2YTYsdiz2KfYptmEINin2YTYo9iu2LHZiS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX21lc3NhZ2VzIiBtc2dpZD0iNzgyMTk5OTA3MTAwMzY5OTIzNiI+IuKAj9mC2LHYp9ih2Kkg2YjZg9iq2KfYqNipINin2YTYsdiz2KfYptmEINin2YTZgti12YrYsdipIFNNUyDZiNin2YTYsdiz2KfYptmEINin2YTYpdmE2YPYqtix2YjZhtmK2Kkg2YjYp9mE2LHYs9in2KbZhCDYp9mE2KPYrtix2YkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3BlcnNvbmFsSW5mbyIgbXNnaWQ9IjM1MTkxNjMxNDEwNzA1MzM0NzQiPiLZhdi52YTZiNmF2KfYqtmDINin2YTYtNiu2LXZitipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19wZXJzb25hbEluZm8iIG1zZ2lkPSI4NDI2NDUzMTI5Nzg4ODYxMzM4Ij4i2KfZhNiv2K7ZiNmEINin2YTZhdio2KfYtNixINil2YTZiSDZhdi52YTZiNmF2KfYqiDYudmG2YPYjCDYqtmFINiq2K7YstmK2YbZh9inINmB2Yog2KjYt9in2YLYqSDYp9mE2KfYqti12KfZhC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc29jaWFsSW5mbyIgbXNnaWQ9IjU3OTkwOTY2MjM0MTIwNDM3OTEiPiLYp9mE2YXYudmE2YjZhdin2Kog2KfZhNin2KzYqtmF2KfYudmK2KkiPC9zdHJpbmc+CkBAIC0yMjgsOCArMjMzLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaXNwbGF5IiBtc2dpZD0iNDI3OTkwOTY3NjAzNjQwMjYzNiI+ItmI2KfYrNmH2Kkg2YXYs9iq2K7Yr9mFINiq2LfYqNmK2YLYp9iqINij2K7YsdmJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kaXNwbGF5IiBtc2dpZD0iNjA1MTAwMjAzMTkzMzAxMzcxNCI+Itin2YTYqtij2KvZitixINi52YTZiSDZiNin2KzZh9ipINin2YTZhdiz2KrYrtiv2YUg2KjYp9mE2KrYt9io2YrZgtin2Kog2KfZhNij2K7YsdmJLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zdG9yYWdlIiBtc2dpZD0iMTk3MTExODc3MDU0NjMzNjk2NiI+Itin2YTYqtiu2LLZitmGIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdG9yYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc0NDIzMTg1MDI0NDY4NzQ5OTkiPiLYp9mE2K/YrtmI2YQg2KXZhNmJINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjkyMDMzMDIyMTQ5MTUzNTU3NzQiPiLYp9mE2K/YrtmI2YQg2KXZhNmJINio2LfYp9mC2KkgU0QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdG9yYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc0NDIzMTg1MDI0NDY4NzQ5OTkiPiLigI/Yp9mE2K/YrtmI2YQg2KXZhNmJINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjkyMDMzMDIyMTQ5MTUzNTU3NzQiPiLigI/Yp9mE2K/YrtmI2YQg2KXZhNmJINio2LfYp9mC2KkgU0QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2FjY2Vzc2liaWxpdHlGZWF0dXJlcyIgbXNnaWQ9Ijc5MTkwMjU2MDIyODM1OTM5MDciPiLZhdmK2LLYp9iqINil2YXZg9in2YbZitipINin2YTZiNi12YjZhCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNDIwNTE5Njg4MTY3ODE0NDMzNSI+Itin2YTZhdmK2LLYp9iqINin2YTYqtmKINmK2YXZg9mGINmE2YTYqtmC2YbZitipINin2YTZhdiz2KfYudiv2Kkg2LfZhNio2YfYpyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmV0cmlldmVXaW5kb3dDb250ZW50IiBtc2dpZD0iMzkwMTcxNzkzNjkzMDE3MDMyMCI+Itin2LPYqtix2K/Yp9ivINmF2K3YqtmI2Ykg2KfZhNmG2KfZgdiw2KkiPC9zdHJpbmc+CkBAIC0yNTIsMjYgKzI1NywyNiBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdW5pbnN0YWxsX3Nob3J0Y3V0IiBtc2dpZD0iNjc0NTc0MzQ3NDI2NTA1Nzk3NSI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNil2LLYp9mE2Kkg2KfYrtiq2LXYp9ix2KfYqiDZhdmGINin2YTYtNin2LTYqSDYp9mE2LHYptmK2LPZitipINio2K/ZiNmGINiq2K/YrtmEINin2YTZhdiz2KrYrtiv2YUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wcm9jZXNzT3V0Z29pbmdDYWxscyIgbXNnaWQ9IjM5MDYwMDc4MzExOTI5OTA5NDYiPiLYpdi52KfYr9ipINiq2YjYrNmK2Ycg2KfZhNmF2YPYp9mE2YXYp9iqINin2YTYtdin2K/YsdipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcHJvY2Vzc091dGdvaW5nQ2FsbHMiIG1zZ2lkPSI1MzMxMzE4OTMxOTM3NDAyMDQwIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2YXYudin2YTYrNipINin2YTZhdmD2KfZhNmF2KfYqiDYp9mE2LXYp9iv2LHYqSDZiNiq2LrZitmK2LEg2KfZhNix2YLZhSDYp9mE2YXYt9mE2YjYqC4g2YrYqtmK2K0g2YfYsNinINin2YTYpdiw2YYg2YTZhNiq2LfYqNmK2YIg2YXYsdin2YLYqNipINin2YTZhdmD2KfZhNmF2KfYqiDYp9mE2LXYp9iv2LHYqSDYo9mIINil2LnYp9iv2Kkg2KrZiNis2YrZh9mH2Kcg2KPZiCDZhdmG2LnZh9inLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZVNtcyIgbXNnaWQ9Ijg2NzM0NzE3Njg5NDc4OTUwODIiPiLYqtmE2YLZiiDYsdiz2KfYptmEINmG2LXZitipICjYsdiz2KfYptmEINmC2LXZitix2KkgU01TKSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVTbXMiIG1zZ2lkPSI2NDI0Mzg3NzU0MjI4NzY2OTM5Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrZhNmC2Yog2YjZhdi52KfZhNis2Kkg2KfZhNix2LPYp9im2YQg2KfZhNmC2LXZitix2KkgU01TLiDZiNmH2LDYpyDZiti52YbZiiDYo9mG2Ycg2YrZhdmD2YYg2YTZhNiq2LfYqNmK2YIg2YXYsdin2YLYqNipINin2YTYsdiz2KfYptmEINin2YTYqtmKINmK2KrZhSDYpdix2LPYp9mE2YfYpyDYpdmE2Ykg2KzZh9in2LLZgyDYo9mIINit2LDZgdmH2Kcg2KjYr9mI2YYg2LnYsdi22YfYpyDZhNmDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZVNtcyIgbXNnaWQ9Ijg2NzM0NzE3Njg5NDc4OTUwODIiPiLigI/YqtmE2YLZiiDYsdiz2KfYptmEINmG2LXZitipICjYsdiz2KfYptmEINmC2LXZitix2KkgU01TKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVTbXMiIG1zZ2lkPSI2NDI0Mzg3NzU0MjI4NzY2OTM5Ij4i4oCP2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrZhNmC2Yog2YjZhdi52KfZhNis2Kkg2KfZhNix2LPYp9im2YQg2KfZhNmC2LXZitix2KkgU01TLiDZiNmH2LDYpyDZiti52YbZiiDYo9mG2Ycg2YrZhdmD2YYg2YTZhNiq2LfYqNmK2YIg2YXYsdin2YLYqNipINin2YTYsdiz2KfYptmEINin2YTYqtmKINmK2KrZhSDYpdix2LPYp9mE2YfYpyDYpdmE2Ykg2KzZh9in2LLZgyDYo9mIINit2LDZgdmH2Kcg2KjYr9mI2YYg2LnYsdi22YfYpyDZhNmDLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZU1tcyIgbXNnaWQ9IjE4MjEzMTczNDQ2NjgyNTcwOTgiPiLYqtmE2YLZiiDYsdiz2KfYptmEINmG2LXZitipICjYsdiz2KfYptmEINmI2LPYp9im2Lcg2YXYqti52K/Yr9ipKSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVNbXMiIG1zZ2lkPSI1MzMwMTk0MzcyNjMyMTIyNjAiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqtmE2YLZiiDZiNmF2LnYp9mE2KzYqSDYsdiz2KfYptmEINin2YTZiNiz2KfYpti3INin2YTZhdiq2LnYr9iv2KkuINmI2YfYsNinINmK2LnZhtmKINij2YbZhyDZitmF2YPZhiDZhNmE2KrYt9io2YrZgiDZhdix2KfZgtio2Kkg2KfZhNix2LPYp9im2YQg2KfZhNiq2Yog2YrYqtmFINil2LHYs9in2YTZh9inINmE2KzZh9in2LLZgyDYo9mIINit2LDZgdmH2Kcg2KjYr9mI2YYg2LnYsdi22YfYpyDZhNmDLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9IjE4MDM0Nzc2NjA4NDYyODgwODkiPiLYqtmE2YLZiiDYqNirINin2YTYt9mI2KfYsdimIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9Ijg0ODUyNDA3MDI2MjQzMTk3NCI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2YTZgtmKINix2LPYp9im2YQg2KjYqyDYp9mE2LfZiNin2LHYpiDZiNmF2LnYp9mE2KzYqtmH2KcuINmE2Kcg2YrYqtmI2YHYsSDZh9iw2Kcg2KfZhNil2LDZhiDYs9mI2Ykg2YTYqti32KjZitmC2KfYqiDYp9mE2YbYuNin2YUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2VsbEJyb2FkY2FzdHMiIG1zZ2lkPSIxNTk4MzI4ODQzNjE5NjQ2MTY2Ij4i2YLYsdin2KHYqSDYsdiz2KfYptmEINio2Ksg2KfZhNiu2YTZitipIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENlbGxCcm9hZGNhc3RzIiBtc2dpZD0iNjM2MTk3Mjc3NjA4MDQ1ODk3OSI+Itin2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNmC2LHYp9ih2Kkg2LHYs9in2KbZhCDYqNirINin2YTYrtmE2YrYqSDYp9mE2KrZiiDZitiq2YTZgtin2YfYpyDZh9iw2Kcg2KfZhNis2YfYp9iyLiDZitiq2YUg2KrYs9mE2YrZhSDYqtmG2KjZitmH2KfYqiDYqNirINin2YTYrtmE2YrYqSDZgdmKINio2LnYtiDYp9mE2YXZiNin2YLYuSDZhNiq2K3YsNmK2LHZgyDZhdmGINit2KfZhNin2Kog2LfYp9ix2KbYqS4g2YrZhdmD2YYg2KPZhiDYqtiq2K/Yp9iu2YQg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYttin2LHYqSDZhdi5INij2K/Yp9ihINij2Ygg2KrYtNi62YrZhCDYp9mE2KzZh9in2LIg2LnZhtiv2YXYpyDZitiq2YUg2KrZhNmC2Yog2KjYqyDYrtmE2YrYqSDYt9in2LHYpi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlbmRTbXMiIG1zZ2lkPSI1NjAwODMwNjEyMTQ3NjcxNTI5Ij4i2KXYsdiz2KfZhCDYsdiz2KfYptmEINmC2LXZitix2KkgU01TIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VuZFNtcyIgbXNnaWQ9IjcwOTQ3MjkyOTgyMDQ5Mzc2NjciPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYpdix2LPYp9mEINix2LPYp9im2YQg2YLYtdmK2LHYqSBTTVMuINmI2YLYryDZitik2K/ZiiDZh9iw2Kcg2KXZhNmJINiq2K3ZhdmEINix2LPZiNmFINi62YrYsSDZhdiq2YjZgti52KkuINmI2YLYryDYqtmD2YTZgdmDINin2YTYqti32KjZitmC2KfYqiDYp9mE2LbYp9ix2Kkg2KPZhdmI2KfZhNin2Ysg2YXZhiDYrtmE2KfZhCDYpdix2LPYp9mEINix2LPYp9im2YQg2KjYr9mI2YYg2YXZiNin2YHZgtipINmF2YbZgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2VsbEJyb2FkY2FzdHMiIG1zZ2lkPSI2MzYxOTcyNzc2MDgwNDU4OTc5Ij4i2KfZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2YLYsdin2KHYqSDYsdiz2KfYptmEINio2Ksg2KfZhNiu2YTZitipINin2YTYqtmKINmK2KrZhNmC2KfZh9inINmH2LDYpyDYp9mE2KzZh9in2LIuINmK2KrZhSDYqtiz2YTZitmFINin2LTYudin2LHYp9iqINio2Ksg2KfZhNiu2YTZitipINmB2Yog2KjYudi2INin2YTZhdmI2KfZgti5INmE2KrYrdiw2YrYsdmDINmF2YYg2K3Yp9mE2KfYqiDYt9in2LHYptipLiDZitmF2YPZhiDYo9mGINiq2KrYr9in2K7ZhCDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi22KfYsdipINmF2Lkg2KPYr9in2KEg2KPZiCDYqti02LrZitmEINin2YTYrNmH2KfYsiDYudmG2K/ZhdinINmK2KrZhSDYqtmE2YLZiiDYqNirINiu2YTZitipINi32KfYsdimLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFNtcyIgbXNnaWQ9IjU2MDA4MzA2MTIxNDc2NzE1MjkiPiLigI/Ypdix2LPYp9mEINix2LPYp9im2YQg2YLYtdmK2LHYqSBTTVMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZW5kU21zIiBtc2dpZD0iNzA5NDcyOTI5ODIwNDkzNzY2NyI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNil2LHYs9in2YQg2LHYs9in2KbZhCDZgti12YrYsdipIFNNUy4g2YjZgtivINmK2KTYr9mKINmH2LDYpyDYpdmE2Ykg2KrYrdmF2YQg2LHYs9mI2YUg2LrZitixINmF2KrZiNmC2LnYqS4g2YjZgtivINiq2YPZhNmB2YMg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYttin2LHYqSDYo9mF2YjYp9mE2KfZiyDZhdmGINiu2YTYp9mEINil2LHYs9in2YQg2LHYs9in2KbZhCDYqNiv2YjZhiDZhdmI2KfZgdmC2Kkg2YXZhtmDLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9Ijg3MTM4ODkxMDUzMDU5NDMyMDAiPiLYpdix2LPYp9mEINij2K3Yr9in2Ksg2YrYqtmFINin2YTYsdivINi52YTZitmH2Kcg2LnYqNixINix2LPYp9mE2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZW5kUmVzcG9uZFZpYU1lc3NhZ2VSZXF1ZXN0IiBtc2dpZD0iNzEwNzY0ODU0ODQ2ODc3ODczNCI+Itin2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNil2LHYs9in2YQg2LfZhNio2KfYqiDYpdmE2Ykg2KrYt9io2YrZgtin2Kog2KfZhNmF2LHYp9iz2YTYqSDYp9mE2KPYrtix2Ykg2YTZhNiq2LnYp9mF2YQg2YXYuSDYp9mE2KPYrdiv2KfYqyDYp9mE2KrZiiDZitiq2YUg2KfZhNix2K8g2LnZhNmK2YfYpyDYudio2LEg2KfZhNix2LPYp9im2YQg2YHZiiDYp9mE2YXZg9in2YTZhdin2Kog2KfZhNmI2KfYsdiv2KkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU21zIiBtc2dpZD0iODc0NTA4NjU3MjIxMzI3MDQ4MCI+ItmC2LHYp9ih2Kkg2KfZhNix2LPYp9im2YQg2KfZhNmG2LXZitipICjYp9mE2LHYs9in2KbZhCDYp9mE2YLYtdmK2LHYqSBTTVMg2KPZiCDYsdiz2KfYptmEINin2YTZiNiz2KfYpti3INin2YTZhdiq2LnYr9iv2KkpIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNtcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjQ2Nzk4MTU0ODY4NDczNTUyMiI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNmC2LHYp9ih2Kkg2KfZhNix2LPYp9im2YQg2KfZhNmC2LXZitix2KkgU01TINin2YTZhdiu2LLZhtipINi52YTZiSDYp9mE2KzZh9in2LIg2KfZhNmE2YjYrdmKINij2Ygg2LnZhNmJINio2LfYp9mC2KkgU0lNLiDZiNmK2KrZititINmH2LDYpyDZhNmE2KrYt9io2YrZgiDZgtix2KfYodipINis2YXZiti5INin2YTYsdiz2KfYptmEINin2YTZgti12YrYsdipIFNNU9iMINio2LrYtiDYp9mE2YbYuNixINi52YYg2KfZhNmF2K3YqtmI2Ykg2KPZiCDZhdiv2Ykg2KfZhNiz2LHZitipLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNjk1OTY3NTMzNDU3MjQwNTUwIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2YLYsdin2KHYqSDYp9mE2LHYs9in2KbZhCDYp9mE2YLYtdmK2LHYqSBTTVMg2KfZhNmF2K7YstmG2Kkg2LnZhNmJINmH2KfYqtmB2YMg2KPZiCDYudmE2Ykg2KjYt9in2YLYqSBTSU0uINmI2YrYqtmK2K0g2YfYsNinINmE2YTYqti32KjZitmCINmC2LHYp9ih2Kkg2KzZhdmK2Lkg2KfZhNix2LPYp9im2YQg2KfZhNmC2LXZitix2KkgU01T2Iwg2KjYuti2INin2YTZhti42LEg2LnZhiDYp9mE2YXYrdiq2YjZiSDYo9mIINmF2K/ZiSDYp9mE2LPYsdmK2KkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNtcyIgbXNnaWQ9IjMyMTY5NTA0NzI2MzYyMTQ3NzQiPiLYqti52K/ZitmEINin2YTYsdiz2KfYptmEINin2YTZhti12YrYqSAo2KfZhNix2LPYp9im2YQg2KfZhNmC2LXZitix2KkgU01TINij2Ygg2LHYs9in2KbZhCDYp9mE2YjYs9in2KbYtyDYp9mE2YXYqti52K/Yr9ipKSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1MTYwNDEzOTQ3Nzk0NTAxNTM4Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNmD2KrYp9io2Kkg2KXZhNmJINin2YTYsdiz2KfYptmEINin2YTZgti12YrYsdipIFNNUyDYp9mE2YXYrtiy2ZHZhtipINi52YTZiSDYp9mE2KzZh9in2LIg2KfZhNmE2YjYrdmKINij2Ygg2KjYt9in2YLYqSBTSU0uINmC2K8g2KrYrdiw2YEg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYttin2LHYqSDYsdiz2KfYptmE2YMuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjY4NjY4NzA5MDUyMzI4NTY3Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNmD2KrYp9io2Kkg2KXZhNmJINin2YTYsdiz2KfYptmEINin2YTZgti12YrYsdipIFNNUyDYp9mE2YXYrtiy2ZHZhtipINi52YTZiSDYp9mE2YfYp9iq2YEg2KPZiCDYqNi32KfZgtipIFNJTS4g2YLYryDYqtit2LDZgSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi22KfYsdipINix2LPYp9im2YTZgy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVXYXBQdXNoIiBtc2dpZD0iNTk5MTM5ODcxMTkzNjU5MDQxMCI+Itiq2YTZgtmKINix2LPYp9im2YQg2YbYtdmK2KkgKFdBUCkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9Ijc0ODIzMjE5MDIyMDU4MzM4NSI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2YTZgtmKINix2LPYp9im2YQgV0FQINmI2YXYudin2YTYrNiq2YfYpy4g2YjZitiq2LbZhdmGINmH2LDYpyDYp9mE2KXYsNmGINil2YXZg9in2YbZitipINmF2LHYp9mC2KjYqSDYp9mE2LHYs9in2KbZhCDYp9mE2KrZiiDZitiq2YUg2KXYsdiz2KfZhNmH2Kcg2KXZhNmK2YMg2KPZiCDYrdiw2YHZh9inINio2K/ZiNmGINi52LHYttmH2Kcg2YTZgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTbXMiIG1zZ2lkPSI4NzQ1MDg2NTcyMjEzMjcwNDgwIj4i4oCP2YLYsdin2KHYqSDYp9mE2LHYs9in2KbZhCDYp9mE2YbYtdmK2KkgKNin2YTYsdiz2KfYptmEINin2YTZgti12YrYsdipIFNNUyDYo9mIINix2LPYp9im2YQg2KfZhNmI2LPYp9im2Lcg2KfZhNmF2KrYudiv2K/YqSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNDY3OTgxNTQ4Njg0NzM1NTIyIj4i4oCP2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2YLYsdin2KHYqSDYp9mE2LHYs9in2KbZhCDYp9mE2YLYtdmK2LHYqSBTTVMg2KfZhNmF2K7YstmG2Kkg2LnZhNmJINin2YTYrNmH2KfYsiDYp9mE2YTZiNit2Yog2KPZiCDYudmE2Ykg2KjYt9in2YLYqSBTSU0uINmI2YrYqtmK2K0g2YfYsNinINmE2YTYqti32KjZitmCINmC2LHYp9ih2Kkg2KzZhdmK2Lkg2KfZhNix2LPYp9im2YQg2KfZhNmC2LXZitix2KkgU01T2Iwg2KjYuti2INin2YTZhti42LEg2LnZhiDYp9mE2YXYrdiq2YjZiSDYo9mIINmF2K/ZiSDYp9mE2LPYsdmK2KkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2OTU5Njc1MzM0NTcyNDA1NTAiPiLigI/ZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjZgtix2KfYodipINin2YTYsdiz2KfYptmEINin2YTZgti12YrYsdipIFNNUyDYp9mE2YXYrtiy2YbYqSDYudmE2Ykg2YfYp9iq2YHZgyDYo9mIINi52YTZiSDYqNi32KfZgtipIFNJTS4g2YjZitiq2YrYrSDZh9iw2Kcg2YTZhNiq2LfYqNmK2YIg2YLYsdin2KHYqSDYrNmF2YrYuSDYp9mE2LHYs9in2KbZhCDYp9mE2YLYtdmK2LHYqSBTTVPYjCDYqNi62LYg2KfZhNmG2LjYsSDYudmGINin2YTZhdit2KrZiNmJINij2Ygg2YXYr9mJINin2YTYs9ix2YrYqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU21zIiBtc2dpZD0iMzIxNjk1MDQ3MjYzNjIxNDc3NCI+IuKAj9iq2LnYr9mK2YQg2KfZhNix2LPYp9im2YQg2KfZhNmG2LXZitipICjYp9mE2LHYs9in2KbZhCDYp9mE2YLYtdmK2LHYqSBTTVMg2KPZiCDYsdiz2KfYptmEINin2YTZiNiz2KfYpti3INin2YTZhdiq2LnYr9iv2KkpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjUxNjA0MTM5NDc3OTQ1MDE1MzgiPiLigI/ZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9mE2YPYqtin2KjYqSDYpdmE2Ykg2KfZhNix2LPYp9im2YQg2KfZhNmC2LXZitix2KkgU01TINin2YTZhdiu2LLZkdmG2Kkg2LnZhNmJINin2YTYrNmH2KfYsiDYp9mE2YTZiNit2Yog2KPZiCDYqNi32KfZgtipIFNJTS4g2YLYryDYqtit2LDZgSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi22KfYsdipINix2LPYp9im2YTZgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcyNjg2Njg3MDkwNTIzMjg1NjciPiLigI/ZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9mE2YPYqtin2KjYqSDYpdmE2Ykg2KfZhNix2LPYp9im2YQg2KfZhNmC2LXZitix2KkgU01TINin2YTZhdiu2LLZkdmG2Kkg2LnZhNmJINin2YTZh9in2KrZgSDYo9mIINio2LfYp9mC2KkgU0lNLiDZgtivINiq2K3YsNmBINin2YTYqti32KjZitmC2KfYqiDYp9mE2LbYp9ix2Kkg2LHYs9in2KbZhNmDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI1OTkxMzk4NzExOTM2NTkwNDEwIj4i4oCP2KrZhNmC2Yog2LHYs9in2KbZhCDZhti12YrYqSAoV0FQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVXYXBQdXNoIiBtc2dpZD0iNzQ4MjMyMTkwMjIwNTgzMzg1Ij4i4oCP2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrZhNmC2Yog2LHYs9in2KbZhCBXQVAg2YjZhdi52KfZhNis2KrZh9inLiDZiNmK2KrYttmF2YYg2YfYsNinINin2YTYpdiw2YYg2KXZhdmD2KfZhtmK2Kkg2YXYsdin2YLYqNipINin2YTYsdiz2KfYptmEINin2YTYqtmKINmK2KrZhSDYpdix2LPYp9mE2YfYpyDYpdmE2YrZgyDYo9mIINit2LDZgdmH2Kcg2KjYr9mI2YYg2LnYsdi22YfYpyDZhNmDLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0VGFza3MiIG1zZ2lkPSI2NDY2MDk1Mzk2NjIzOTMzOTA2Ij4i2KfYs9iq2LHYr9in2K8g2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYqtmKINmC2YrYryDYp9mE2KrYtNi62YrZhCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRhc2tzIiBtc2dpZD0iNzQ1NDIxNTk5NTg0NzY1ODEwMiI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNin2LPYqtix2K/Yp9ivINmF2LnZhNmI2YXYp9iqINit2YjZhCDYp9mE2YXZh9in2YUg2KfZhNiq2Yog2YrYrNix2Yog2KrYtNi62YrZhNmH2Kcg2K3Yp9mE2YrZi9inINmI2KfZhNiq2Yog2KrZhSDYqti02LrZitmE2YfYpyDZhdik2K7YsdmL2KcuINmI2YLYryDZitiz2YXYrSDZh9iw2Kcg2YTZhNiq2LfYqNmK2YIg2KjYp9mD2KrYtNin2YEg2YXYudmE2YjZhdin2Kog2K3ZiNmEINin2YTYqti32KjZitmC2KfYqiDYp9mE2YXYs9iq2K7Yr9mF2Kkg2LnZhNmJINin2YTYrNmH2KfYsi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVyYWN0QWNyb3NzVXNlcnMiIG1zZ2lkPSI3MTE0MjU1MjgxOTQ0MjExNjgyIj4i2KfZhNiq2LnYp9mF2YQg2KjZitmGINin2YTZhdiz2KrYrtiv2YXZitmGIjwvc3RyaW5nPgpAQCAtMzI2LDEwICszMzEsMTAgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3J1blNldEFjdGl2aXR5V2F0Y2hlciIgbXNnaWQ9IjYwMDM2MDMxNjI1Nzg1Nzc0MDYiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjZhdix2KfZgtio2Kkg2YPZitmB2YrYqSDYqNiv2KEg2KfZhNmG2LjYp9mFINmE2YTYo9mG2LTYt9ipINmI2KfZhNiq2K3Zg9mFINmB2YrZh9inLiDZgtivINiq2Y/Yudix2ZDZkdi2INin2YTYqti32KjZitmC2KfYqiDYp9mE2LbYp9ix2Kkg2KfZhNmG2LjYp9mFINmE2YTYttix2LEg2KjYtNmD2YQg2YPYp9mF2YQuINmE2YYg2KrZg9mI2YYg2YfZhtin2YMg2K3Yp9is2Kkg2YTZh9iw2Kcg2KfZhNil2LDZhiDYs9mI2Ykg2YTZhNiq2LfZiNmK2LEg2YHZgti32Iwg2YjZhNmK2LMg2YTZhNin2LPYqtiu2K/Yp9mFINin2YTYudin2K/ZiiDYudmE2Ykg2KfZhNil2LfZhNin2YIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RQYWNrYWdlUmVtb3ZlZCIgbXNnaWQ9IjI1NzYzMzM0MzQ4OTM1MzI0NzUiPiLYpdix2LPYp9mEINio2Ksg2KfZhNit2LLZhdipINin2YTYsNmKINiq2YXYqiDYpdiy2KfZhNiq2YciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RQYWNrYWdlUmVtb3ZlZCIgbXNnaWQ9IjY2MjE5MDEyMTYyMDc5MzEwODkiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqNirINiq2YbYqNmK2Ycg2YrZgdmK2K8g2KjYpdiy2KfZhNipINit2LLZhdipINij2K3YryDYp9mE2KrYt9io2YrZgtin2KouINmC2K8g2KrYs9iq2K7Yr9mFINin2YTYqti32KjZitmC2KfYqiDYp9mE2LbYp9ix2Kkg2YfYsNinINmE2KXZhtmH2KfYoSDYo9mK2Kkg2KrYt9io2YrZgtin2Kog2KPYrtix2Ykg2YLZitivINin2YTYqti02LrZitmELiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI1Njg5MDk1MDA5MDMwMzM2NTkzIj4i2KXYsdiz2KfZhCDYqNirIFNNUyDZhdiz2KrZhNmFIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI0MTUyMDM3NzIwMDM0MzY1NDkyIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KjYqyDYpdi02LnYp9ixINio2KfYs9iq2YTYp9mFINix2LPYp9mE2Kkg2YLYtdmK2LHYqSBTTVMuINmC2K8g2KrYs9iq2K7Yr9mFINin2YTYqti32KjZitmC2KfYqiDYp9mE2LbYp9ix2Kkg2YfYsNinINmE2KrYstmK2YrZgSDYp9mE2LHYs9in2KbZhCDYp9mE2YLYtdmK2LHYqSBTTVMg2KfZhNmI2KfYsdiv2KkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RXYXBQdXNoIiBtc2dpZD0iMzE0NTM0NzQxMzAyODU4MjM3MSI+Itil2LHYs9in2YQg2KjYqyBXQVAtUFVTSCDYp9mE2YXYs9iq2YTZhSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFdhcFB1c2giIG1zZ2lkPSI0NzgzNDAyNTI1MDM5NDQyNzI5Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KjYqyDYpdi02LnYp9ixINio2KfYs9iq2YTYp9mFINix2LPYp9mE2KkgV0FQIFBVU0guINmK2YXZg9mGINij2YYg2KrYs9iq2K7Yr9mFINin2YTYqti32KjZitmC2KfYqiDYp9mE2LbYp9ix2Kkg2YfYsNinINmE2KrYstmK2YEg2KfYs9iq2YTYp9mFINix2LPYp9mE2Kkg2YjYs9in2KbYtyDZhdiq2LnYr9iv2Kkg2KPZiCDZhNin2LPYqtio2K/Yp9mEINmF2K3YqtmI2Ykg2KPZiiDYtdmB2K3YqSDZiNmK2Kgg2KjZhdiq2LrZitix2KfYqiDYttin2LHYqSDYqNi02YPZhCDYutmK2LEg2YXZhNit2YjYuC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Jyb2FkY2FzdFNtc1JlY2VpdmVkIiBtc2dpZD0iNTY4OTA5NTAwOTAzMDMzNjU5MyI+IuKAj9il2LHYs9in2YQg2KjYqyBTTVMg2YXYs9iq2YTZhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFNtc1JlY2VpdmVkIiBtc2dpZD0iNDE1MjAzNzcyMDAzNDM2NTQ5MiI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNio2Ksg2KXYtNi52KfYsSDYqNin2LPYqtmE2KfZhSDYsdiz2KfZhNipINmC2LXZitix2KkgU01TLiDZgtivINiq2LPYqtiu2K/ZhSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi22KfYsdipINmH2LDYpyDZhNiq2LLZitmK2YEg2KfZhNix2LPYp9im2YQg2KfZhNmC2LXZitix2KkgU01TINin2YTZiNin2LHYr9ipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjMxNDUzNDc0MTMwMjg1ODIzNzEiPiLigI/Ypdix2LPYp9mEINio2KsgV0FQLVBVU0gg2KfZhNmF2LPYqtmE2YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RXYXBQdXNoIiBtc2dpZD0iNDc4MzQwMjUyNTAzOTQ0MjcyOSI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNio2Ksg2KXYtNi52KfYsSDYqNin2LPYqtmE2KfZhSDYsdiz2KfZhNipIFdBUCBQVVNILiDZitmF2YPZhiDYo9mGINiq2LPYqtiu2K/ZhSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi22KfYsdipINmH2LDYpyDZhNiq2LLZitmBINin2LPYqtmE2KfZhSDYsdiz2KfZhNipINmI2LPYp9im2Lcg2YXYqti52K/Yr9ipINij2Ygg2YTYp9iz2KrYqNiv2KfZhCDZhdit2KrZiNmJINij2Yog2LXZgdit2Kkg2YjZitioINio2YXYqti62YrYsdin2Kog2LbYp9ix2Kkg2KjYtNmD2YQg2LrZitixINmF2YTYrdmI2LguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcm9jZXNzTGltaXQiIG1zZ2lkPSIyNDUxODczNjY0MzYzNjYyNjY2Ij4i2KrYrdiv2YrYryDYudiv2K8g2KfZhNi52YXZhNmK2KfYqiDZgtmK2K8g2KfZhNiq2LTYutmK2YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRQcm9jZXNzTGltaXQiIG1zZ2lkPSI3MzE4MDYxMzE0MDQwODc5NTQyIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNiq2K3Zg9mFINmB2Yog2KfZhNit2K8g2KfZhNij2YLYtdmJINmE2LnYr9ivINin2YTYudmF2YTZitin2Kog2KfZhNiq2Yog2LPZitiq2YUg2KrYtNi62YrZhNmH2KcuINi62YrYsSDZhdi32YTZiNioINi52YTZiSDYp9mE2KXYt9mE2KfZgiDZhNmE2KrYt9io2YrZgtin2Kog2KfZhNi52KfYr9mK2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbHdheXNGaW5pc2giIG1zZ2lkPSI1NTA5NTg1MDc3OTg3OTY5NjUiPiLZgdix2LYg2KXYutmE2KfZgiDYqti32KjZitmC2KfYqiDYp9mE2K7ZhNmB2YrYqSI8L3N0cmluZz4KQEAgLTM1Myw3ICszNTgsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9IjI4MDUxMDMyNDExNTM5MDcxNzQiPiLYqti52K/ZitmEINiz2LHYudipINin2YTYsdiz2YjZhSDYp9mE2YXYqtit2LHZg9ipINin2YTYudmF2YjZhdmK2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9Ijc2OTAwNjM0Mjg5MjQzNDM1NzEiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqti62YrZitixINiz2LHYudipINin2YTYsdiz2YjZhSDYp9mE2YXYqtit2LHZg9ipINin2YTYudmF2YjZhdmK2KkgKNix2LPZiNmFINmF2KrYrdix2YPYqSDYo9iz2LHYuSDYo9mIINij2KjYt9ijKSDZgdmKINij2Yog2YjZgtiqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQXBwVG9rZW5zIiBtc2dpZD0iMTI4NjUwNTcxNzA1MDEyMTM3MCI+Itil2K/Yp9ix2Kkg2KfZhNix2YXZiNiyINin2YTZhdmF2YrYstipINmE2YTYqti32KjZitmC2KfYqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFwcFRva2VucyIgbXNnaWQ9IjgwNDM0MzE3MTMwMTQzOTU2NzEiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYpdmG2LTYp9ihINmI2KXYr9in2LHYqSDYsdmF2YjYstmHINin2YTYrtin2LXYqdiMINmI2KrYrNin2YjYsiDYqtix2KrZitioIFog2KfZhNi52KfYr9mKLiDZhNmGINiq2YPZiNmGINmH2YbYp9mDINit2KfYrNipINil2YTZitmHINmF2LfZhNmC2YvYpyDZhdi5INin2YTYqti32KjZitmC2KfYqiDYp9mE2LnYp9iv2YrYqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBcHBUb2tlbnMiIG1zZ2lkPSI4MDQzNDMxNzEzMDE0Mzk1NjcxIj4i4oCP2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KXZhti02KfYoSDZiNil2K/Yp9ix2Kkg2LHZhdmI2LLZhyDYp9mE2K7Yp9i12KnYjCDZiNiq2KzYp9mI2LIg2KrYsdiq2YrYqCBaINin2YTYudin2K/Zii4g2YTZhiDYqtmD2YjZhiDZh9mG2KfZgyDYrdin2KzYqSDYpdmE2YrZhyDZhdi32YTZgtmL2Kcg2YXYuSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi52KfYr9mK2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mcmVlemVTY3JlZW4iIG1zZ2lkPSI0NzA4MTgxMTg0NDQxODgwMTc1Ij4i2KrYrNmF2YrYryDYp9mE2LTYp9i02KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mcmVlemVTY3JlZW4iIG1zZ2lkPSI4NTU4OTIzNzg5MjIyNjcwMDY0Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYrNmF2YrYryDYp9mE2LTYp9i02Kkg2YXYpNmC2KrZi9inINmE2KXYrNix2KfYoSDYp9mG2KrZgtin2YQg2KjZhdmE2KEg2KfZhNi02KfYtNipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW5qZWN0RXZlbnRzIiBtc2dpZD0iMTM3ODc0NjU4NDAyMzU4NjYwMCI+ItmF2YHYp9iq2YrYrSDYp9mE2LbYuti3INmI2KPYstix2KfYsSDYp9mE2KrYrdmD2YUiPC9zdHJpbmc+CkBAIC0zNjksMTIgKzM3NCwxMiBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFByaW50U2VydmljZSIgbXNnaWQ9Ijc5NjAwNjc2MjMyMDkxMTExMzUiPiLZhNmE2LPZhdin2K0g2YTZhNmF2KfZhNmDINio2KfZhNin2YTYqtiy2KfZhSDYqNmI2KfYrNmH2Kkg2KfZhNmF2LPYqtmI2Ykg2KfZhNi52YTZiNmKINmE2K7Yr9mF2Kkg2KfZhNi32KjYp9i52KkuINmE2YYg2KrZg9mI2YYg2YfZhtin2YMg2K3Yp9is2Kkg2KXZhNmK2Ycg2YXYt9mE2YLZi9inINmF2Lkg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYudin2K/ZitipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFByaW50U3Bvb2xlclNlcnZpY2UiIG1zZ2lkPSI2ODA3NzYyNzgzNzQ0MTI1OTU0Ij4i2KfZhNin2YTYqtiy2KfZhSDYqNiu2K/ZhdipINin2YTYqtiu2LLZitmGINin2YTZhdik2YLYqiDZhNmE2LfYqNin2LnYqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQcmludFNwb29sZXJTZXJ2aWNlIiBtc2dpZD0iMzY4MDU1MjI4NTkzMzMxODM3MiI+ItmE2YTYs9mF2KfYrSDZhNmE2YXYp9mE2YMg2KjYp9mE2KfZhNiq2LLYp9mFINio2YjYp9is2YfYqSDYp9mE2YXYs9iq2YjZiSDYp9mE2LnZhNmI2Yog2YTYrtiv2YXYqSDYp9mE2KrYrtiy2YrZhiDYp9mE2YXYpNmC2Kog2YTZhNi32KjYp9i52KkuINmE2YYg2KrZg9mI2YYg2YfZhtin2YMg2K3Yp9is2Kkg2KXZhNmK2Ycg2YXYt9mE2YLZi9inINmF2Lkg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYudin2K/ZitipLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSIyNzUyNzMxMzAwNDE5NDEwNzI0Ij4i2KfZhNix2KjYtyDYqNiu2K/ZhdipIE5GQyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iNjEyMDY0NzYyOTE3NDA2Njg2MiI+ItmE2YTYs9mF2KfYrSDZhNit2KfZhdmEINin2YTYqNi32KfZgtipINio2KfZhNix2KjYtyDYqNin2YTYqti32KjZitmC2KfYqiDYp9mE2KrZiiDYqtit2KfZg9mKINio2LfYp9mC2KfYqiBORkMuINmE2Kcg2YrYqtmI2KzYqCDYp9iz2KrYrtiv2KfZhdmHINi52YTZiSDYp9mE2KXYt9mE2KfZgiDZhNmE2KrYt9io2YrZgtin2Kog2KfZhNi52KfYr9mK2KkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kTmZjU2VydmljZSIgbXNnaWQ9IjI3NTI3MzEzMDA0MTk0MTA3MjQiPiLigI/Yp9mE2LHYqNi3INio2K7Yr9mF2KkgTkZDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSI2MTIwNjQ3NjI5MTc0MDY2ODYyIj4i4oCP2YTZhNiz2YXYp9itINmE2K3Yp9mF2YQg2KfZhNio2LfYp9mC2Kkg2KjYp9mE2LHYqNi3INio2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYqtmKINiq2K3Yp9mD2Yog2KjYt9in2YLYp9iqIE5GQy4g2YTYpyDZitiq2YjYrNioINin2LPYqtiu2K/Yp9mF2Ycg2LnZhNmJINin2YTYpdi32YTYp9mCINmE2YTYqti32KjZitmC2KfYqiDYp9mE2LnYp9iv2YrYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRUZXh0U2VydmljZSIgbXNnaWQ9IjczNTgzNzg0MDE5MTUyODc5MzgiPiLYp9mE2KfZhNiq2LLYp9mFINio2K7Yr9mF2Kkg2KXYr9iu2KfZhCDYp9mE2YbYtdmI2LUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVGV4dFNlcnZpY2UiIG1zZ2lkPSI4MTUxOTY4OTEwOTczOTk4NjcwIj4i2YTZhNiz2YXYp9itINmE2YTZhdin2YTZgyDYqNin2YTYp9mE2KrYstin2YUg2KjZiNin2KzZh9ipINin2YTZhdiz2KrZiNmJINin2YTYudmE2YjZiiDZhNiu2K/ZhdipINil2K/Yrtin2YQg2KfZhNmG2LXZiNi1ICjYudmE2Ykg2LPYqNmK2YQg2KfZhNmF2KvYp9mE2IwgU3BlbGxDaGVja2VyU2VydmljZSkuINmE2YYg2KrZg9mI2YYg2YfZhtin2YMg2K3Yp9is2Kkg2KXZhNmK2Ycg2YXYt9mE2YLZi9inINmF2Lkg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYudin2K/ZitipLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSI0NzA4NTk2MDIxMTYxNDczMjU1Ij4i2KfZhNin2YTYqtiy2KfZhSDYqNiu2K/ZhdipIFZQTiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRWcG5TZXJ2aWNlIiBtc2dpZD0iMjA2Nzg0NTU2NDU4MTY5MzkwNSI+ItmE2YTYs9mF2KfYrSDZhNmE2YXYp9mE2YMg2KjYp9mE2KfZhNiq2LLYp9mFINio2YjYp9is2YfYqSDYp9mE2YXYs9iq2YjZiSDYp9mE2LnZhNmI2Yog2YTYrtiv2YXYqSDYp9mE2LTYqNmD2Kkg2KfZhNi42KfZh9ix2YrYqSDYp9mE2K7Yp9i12KkgKFZQTikuINmE2YYg2KrZg9mI2YYg2YfZhtin2YMg2K3Yp9is2Kkg2KXZhNmK2Ycg2YXYt9mE2YLZi9inINmF2Lkg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYudin2K/ZitipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRUZXh0U2VydmljZSIgbXNnaWQ9IjgxNTE5Njg5MTA5NzM5OTg2NzAiPiLigI/ZhNmE2LPZhdin2K0g2YTZhNmF2KfZhNmDINio2KfZhNin2YTYqtiy2KfZhSDYqNmI2KfYrNmH2Kkg2KfZhNmF2LPYqtmI2Ykg2KfZhNi52YTZiNmKINmE2K7Yr9mF2Kkg2KXYr9iu2KfZhCDYp9mE2YbYtdmI2LUgKNi52YTZiSDYs9io2YrZhCDYp9mE2YXYq9in2YTYjCBTcGVsbENoZWNrZXJTZXJ2aWNlKS4g2YTZhiDYqtmD2YjZhiDZh9mG2KfZgyDYrdin2KzYqSDYpdmE2YrZhyDZhdi32YTZgtmL2Kcg2YXYuSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi52KfYr9mK2KkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kVnBuU2VydmljZSIgbXNnaWQ9IjQ3MDg1OTYwMjExNjE0NzMyNTUiPiLigI/Yp9mE2KfZhNiq2LLYp9mFINio2K7Yr9mF2KkgVlBOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSIyMDY3ODQ1NTY0NTgxNjkzOTA1Ij4i4oCP2YTZhNiz2YXYp9itINmE2YTZhdin2YTZgyDYqNin2YTYp9mE2KrYstin2YUg2KjZiNin2KzZh9ipINin2YTZhdiz2KrZiNmJINin2YTYudmE2YjZiiDZhNiu2K/ZhdipINin2YTYtNio2YPYqSDYp9mE2LjYp9mH2LHZitipINin2YTYrtin2LXYqSAoVlBOKS4g2YTZhiDYqtmD2YjZhiDZh9mG2KfZgyDYrdin2KzYqSDYpdmE2YrZhyDZhdi32YTZgtmL2Kcg2YXYuSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi52KfYr9mK2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kV2FsbHBhcGVyIiBtc2dpZD0iODcxNjQwMDI3OTkzNzg1NjQ2MiI+Itin2YTYp9mE2KrYstin2YUg2KjYrtmE2YHZitipINmF2KciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kV2FsbHBhcGVyIiBtc2dpZD0iNzEwODQyODY5MjU5NTQ5MTY2OCI+ItmE2YTYs9mF2KfYrSDZhNmE2YXYp9mE2YMg2KjYp9mE2KfZhNiq2LLYp9mFINio2YjYp9is2YfYqSDYp9mE2YXYs9iq2YjZiSDYp9mE2LnZhNmI2Yog2YTZhNiu2YTZgdmK2KkuINmE2YYg2KrZg9mI2YYg2YfZhtin2YMg2K3Yp9is2Kkg2KXZhNmK2Ycg2YXYt9mE2YLZi9inINmF2Lkg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYudin2K/ZitipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFJlbW90ZVZpZXdzIiBtc2dpZD0iNTY5Nzk4Nzc1OTg5NzM2NzA5OSI+Itin2YTYp9mE2KrYstin2YUg2KjYrtiv2YXYqSDYo9iv2KfYqSI8L3N0cmluZz4KQEAgLTM4OSwxMyArMzk0LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRQb2ludGVyU3BlZWQiIG1zZ2lkPSI2ODY2NTYzMjM0Mjc0MTA0MjMzIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYutmK2YrYsSDYs9ix2LnYqSDZhdik2LTYsSDYp9mE2YXYp9mI2LMg2KPZiCDZhNmI2K3YqSDYp9mE2KrYqtio2Lkg2YHZiiDYo9mKINmI2YLYqi4g2YTZhiDYqtmD2YjZhiDZh9mG2KfZgyDYrdin2KzYqSDYpdmE2YrZhyDZhdi32YTZgtmL2Kcg2YXYuSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi52KfYr9mK2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9IjQ3Nzg3MzE3MDM2MDA5MDkzNDAiPiLYqti62YrZitixINiq2YbYs9mK2YIg2YTZiNit2Kkg2YXZgdin2KrZititIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0S2V5Ym9hcmRMYXlvdXQiIG1zZ2lkPSI4NDgwMDE2NzcxMTM0MTc1ODc5Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYutmK2YrYsSDYqtmG2LPZitmCINmE2YjYrdipINin2YTZhdmB2KfYqtmK2K0uINmE2YYg2KrZg9mI2YYg2YfZhtin2YMg2K3Yp9is2Kkg2KXZhNmK2Ycg2YXYt9mE2YLZi9inINmF2Lkg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYudin2K/ZitipLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2lnbmFsUGVyc2lzdGVudFByb2Nlc3NlcyIgbXNnaWQ9IjQ1MzkwMDI5OTE5NDczNzY2NTkiPiLYpdix2LPYp9mEINil2LTYp9ix2KfYqiBMaW51eCDZhNmE2KrYt9io2YrZgtin2KoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0NTM5MDAyOTkxOTQ3Mzc2NjU5Ij4i4oCP2KXYsdiz2KfZhCDYpdi02KfYsdin2KogTGludXgg2YTZhNiq2LfYqNmK2YLYp9iqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2lnbmFsUGVyc2lzdGVudFByb2Nlc3NlcyIgbXNnaWQ9IjQ4OTY5OTIwNzkxODI2NDkxNDEiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYt9mE2Kgg2KXYsdiz2KfZhCDYp9mE2KXYtNin2LHYqSDYp9mE2YXYstmI2ZHYr9ipINmE2KzZhdmK2Lkg2KfZhNi52YXZhNmK2KfYqiDYp9mE2YXYs9iq2YXYsdipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyc2lzdGVudEFjdGl2aXR5IiBtc2dpZD0iODg0MTExMzYyNzk1NTU2MzkzOCI+Itiq2LTYutmK2YQg2KfZhNiq2LfYqNmK2YIg2K/Yp9im2YXZi9inIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyc2lzdGVudEFjdGl2aXR5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTI1MTg5MjcyMzI5MDg2MTM3Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KzYudmEINij2KzYstin2KEg2YXZhtmHINir2KfYqNiq2Kkg2YHZiiDYp9mE2LDYp9mD2LHYqS4g2YjZgtivINmK2KTYr9mKINmH2LDYpyDYpdmE2Ykg2KrZgtmK2YrYryDYp9mE2LDYp9mD2LHYqSDYp9mE2YXYqtin2K3YqSDZhNmE2KrYt9io2YrZgtin2Kog2KfZhNij2K7YsdmJINmF2YXYpyDZitik2K/ZiiDYpdmE2Ykg2K3Yr9mI2Ksg2KjYt9ihINmB2Yog2KfZhNis2YfYp9iyINin2YTZhNmI2K3Zii4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0Mzg0NzYwMDQ3NTA4Mjc4MjcyIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KzYudmEINij2KzYstin2KEg2YXZhtmHINir2KfYqNiq2Kkg2YHZiiDYp9mE2LDYp9mD2LHYqS4g2YjZgtivINmK2KTYr9mKINmH2LDYpyDYpdmE2Ykg2KrZgtmK2YrYryDYp9mE2LDYp9mD2LHYqSDYp9mE2YXYqtin2K3YqSDZhNmE2KrYt9io2YrZgtin2Kog2KfZhNij2K7YsdmJINmF2YXYpyDZitik2K/ZiiDYpdmE2Ykg2K3Yr9mI2Ksg2KjYt9ihINmB2Yog2KfZhNmH2KfYqtmBLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSIxODQzODUxMjk1Mzc3MDU5MzgiPiLYrdiw2YEg2KfZhNiq2LfYqNmK2YLYp9iqIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSI3NDExNDgwMjc1MTY3MjA1MDgxIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2K3YsNmBINit2LLZhSBBbmRyb2lkLiDZitmF2YPZhiDYo9mGINiq2LPYqtiu2K/ZhSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi22KfYsdipINiw2YTZgyDZhNit2LDZgSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNmF2YfZhdipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RlbGV0ZVBhY2thZ2VzIiBtc2dpZD0iNzQxMTQ4MDI3NTE2NzIwNTA4MSI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNit2LDZgSDYrdiy2YUgQW5kcm9pZC4g2YrZhdmD2YYg2KPZhiDYqtiz2KrYrtiv2YUg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYttin2LHYqSDYsNmE2YMg2YTYrdiw2YEg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTZhdmH2YXYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NsZWFyQXBwVXNlckRhdGEiIG1zZ2lkPSIyNzQxMDkxOTE4NDU4NDI3NTYiPiLYrdiw2YEg2KjZitin2YbYp9iqINin2YTYqti32KjZitmC2KfYqiDYp9mE2KPYrtix2YkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcFVzZXJEYXRhIiBtc2dpZD0iNDYyNTMyMzY4NDEyNTQ1OTQ4OCI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNmF2K3ZiCDYqNmK2KfZhtin2Kog2KfZhNmF2LPYqtiu2K/ZhS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RlbGV0ZUNhY2hlRmlsZXMiIG1zZ2lkPSIzMTI4NjY1NTcxODM3NDA4Njc1Ij4i2K3YsNmBINiw2KfZg9ix2KfYqiDYp9mE2KrYrtiy2YrZhiDYp9mE2YXYpNmC2Kog2YTZhNiq2LfYqNmK2YLYp9iqINin2YTYo9iu2LHZiSI8L3N0cmluZz4KQEAgLTQwMyw3ICs0MDgsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9Ijc0NzI5MjE3NjgzNTc5ODE5ODYiPiLZgtmK2KfYsyDZhdiz2KfYrdipINiq2K7YstmK2YYg2KfZhNiq2LfYqNmK2YIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9IjM5MjEwNjgxNTQ0MjA3MzgyOTYiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9iz2KrYsdiv2KfYryDYtNmB2LHYqtmHINmI2KjZitin2YbYp9iq2Ycg2YjYo9it2KzYp9mFINiw2KfZg9ix2KfYqiDYp9mE2KrYrtiy2YrZhiDYp9mE2YXYpNmC2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxQYWNrYWdlcyIgbXNnaWQ9IjIxOTkxMjg0ODI4MjAzMDY5MjQiPiLYqtir2KjZitiqINin2YTYqti32KjZitmC2KfYqiDZhdio2KfYtNix2KkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnN0YWxsUGFja2FnZXMiIG1zZ2lkPSI1NjI4NTMwOTcyNTQ4MDcxMjg0Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYq9io2YrYqiDYrdiy2YUgQW5kcm9pZCDYp9mE2KzYr9mK2K/YqSDYo9mIINin2YTZhdit2K/Zkdir2KkuINmK2YXZg9mGINij2YYg2KrYs9iq2K7Yr9mFINin2YTYqti32KjZitmC2KfYqiDYp9mE2LbYp9ix2Kkg2LDZhNmDINmE2KXYttin2YHYqSDYqti32KjZitmC2KfYqiDYrNiv2YrYr9ipINiw2KfYqiDYo9iw2YjZhtin2Kog2YLZiNmK2Kkg2LnZhNmJINmG2K3ZiCDYudi02YjYp9im2YouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iNTYyODUzMDk3MjU0ODA3MTI4NCI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2KvYqNmK2Kog2K3YstmFIEFuZHJvaWQg2KfZhNis2K/Zitiv2Kkg2KPZiCDYp9mE2YXYrdiv2ZHYq9ipLiDZitmF2YPZhiDYo9mGINiq2LPYqtiu2K/ZhSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi22KfYsdipINiw2YTZgyDZhNil2LbYp9mB2Kkg2KrYt9io2YrZgtin2Kog2KzYr9mK2K/YqSDYsNin2Kog2KPYsNmI2YbYp9iqINmC2YjZitipINi52YTZiSDZhtit2Ygg2LnYtNmI2KfYptmKLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2xlYXJBcHBDYWNoZSIgbXNnaWQ9Ijc0ODcyNzkzOTE3MjM1MjY4MTUiPiLYrdiw2YEg2KzZhdmK2Lkg2KjZitin2YbYp9iqINiw2KfZg9ix2Kkg2KfZhNiq2K7YstmK2YYg2KfZhNmF2KTZgtiqINmE2YTYqti32KjZitmCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBDYWNoZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODk3NDY0MDg3MTk0NTQzNDU2NSI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2YHYsdmK2Log2LPYudipINiq2K7YstmK2YYg2KfZhNis2YfYp9iyINin2YTZhNmI2K3ZiiDZhdmGINiu2YTYp9mEINit2LDZgSDYp9mE2YXZhNmB2KfYqiDZhdmGINij2K/ZhNipINiw2KfZg9ix2Kkg2KfZhNiq2K7YstmK2YYg2KfZhNmF2KTZgtiqINmE2YTYqti32KjZitmC2KfYqiDYp9mE2KPYrtix2YkuINmC2K8g2YrYqtiz2KjYqCDZh9iw2Kcg2YHZiiDYqti02LrZitmEINin2YTYqti32KjZitmC2KfYqiDYp9mE2KPYrtix2Ykg2KjYtNmD2YQg2KPZg9ir2LEg2KjYt9im2YvYpyDYrdmK2Ksg2YrZhNiy2YXZh9inINil2LnYp9iv2Kkg2KfYs9iq2LHYr9in2K8g2KjZitin2YbYp9iq2YfYpy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjQ1OTQ0MTAyMTk1NjQzNjc3OSI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2YHYsdmK2Log2YXYs9in2K3YqSDYqtiu2LLZitmGINin2YTZh9in2KrZgSDZhdmGINiu2YTYp9mEINit2LDZgSDYp9mE2YXZhNmB2KfYqiDZhdmGINij2K/ZhNipINiw2KfZg9ix2Kkg2KfZhNiq2K7YstmK2YYg2KfZhNmF2KTZgtiqINmE2YTYqti32KjZitmC2KfYqiDYp9mE2KPYrtix2YkuINmC2K8g2YrYqtiz2KjYqCDZh9iw2Kcg2YHZiiDYqti02LrZitmEINin2YTYqti32KjZitmC2KfYqiDYp9mE2KPYrtix2Ykg2KjYtNmD2YQg2KPZg9ir2LEg2KjYt9im2YvYpyDYrdmK2Ksg2YrZhNiy2YXZh9inINil2LnYp9iv2Kkg2KfYs9iq2LHYr9in2K8g2KjZitin2YbYp9iq2YfYpy4iPC9zdHJpbmc+CkBAIC00MTUsOSArNDIwLDkgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjcxNTgwNTU1NTgyMzg4MTgxOCI+Itin2LPYqtiu2K/Yp9mFINij2Yog2KjYsdmG2KfZhdisINmB2YMg2KrYtNmB2YrYsSDZiNiz2KfYpti3INmF2YYg2KPYrNmEINin2YTYqti02LrZitmEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjgyODM5MTI0ODg0MzMxODkwMTAiPiLYp9mE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9iz2KrYrtiv2KfZhSDYo9mKINio2LHZhtin2YXYrCDZgdmDINiq2LTZgdmK2LEg2YjYs9in2KbYtyDZhdir2KjYqiDZhNmB2YMg2KfZhNiq2LTZgdmK2LEg2YXZhiDYo9is2YQg2KfZhNiq2LTYutmK2YQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VDYUNlcnRpZmljYXRlcyIgbXNnaWQ9IjE2NzgzOTE4OTY3ODY4ODIwMTQiPiLYpdiv2KfYsdipINio2YrYp9mG2KfYqiDYp9mE2KfYudiq2YXYp9ivINin2YTZhdmI2KvZiNmC2KkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VDYUNlcnRpZmljYXRlcyIgbXNnaWQ9IjQwMTU2NDQwNDcxOTY5MzcwMTQiPiLYp9mE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqtir2KjZitiqINi02YfYp9iv2KfYqiBDQSDZiNil2YTYutin2KEg2KrYq9io2YrYqtmH2Kcg2KjYp9i52KrYqNin2LHZh9inINio2YrYp9mG2KfYqiDYp9i52KrZhdin2K8g2YXYrdmEINir2YLYqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VDYUNlcnRpZmljYXRlcyIgbXNnaWQ9IjQwMTU2NDQwNDcxOTY5MzcwMTQiPiLigI/Yp9mE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqtir2KjZitiqINi02YfYp9iv2KfYqiBDQSDZiNil2YTYutin2KEg2KrYq9io2YrYqtmH2Kcg2KjYp9i52KrYqNin2LHZh9inINio2YrYp9mG2KfYqiDYp9i52KrZhdin2K8g2YXYrdmEINir2YLYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RpYWdub3N0aWMiIG1zZ2lkPSI4MDc2NzQzOTUzOTA4MDAwMzQyIj4i2YLYsdin2KHYqS/Zg9iq2KfYqNipINil2YTZiSDYp9mE2YXZiNin2LHYryDYp9mE2YXZhdmE2YjZg9ipINio2YjYp9iz2LfYqSDYp9mE2KrYtNiu2YrYtSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RpYWdub3N0aWMiIG1zZ2lkPSI2NjA4Mjk1NjkyMDAyNDUyMjgzIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNmC2LHYp9ih2Kkg2YjYp9mE2YPYqtin2KjYqSDYpdmE2Ykg2KPZiiDZhdmI2LHYryDZhdmF2YTZiNmDINio2YjYp9iz2LfYqSDZhdis2YXZiNi52Kkg2KfZhNiq2LTYrtmK2LXYp9iq2Jsg2LnZhNmJINiz2KjZitmEINin2YTZhdir2KfZhNiMINin2YTZhdmE2YHYp9iqINmB2YogL2Rldi4g2YXZhiDYp9mE2YXYrdiq2YXZhCDYo9mGINmK2KTYq9ixINiw2YTZgyDZgdmKINin2LPYqtmC2LHYp9ixINin2YTZhti42KfZhSDZiNij2YXYp9mG2YcuINmK2KzYqCDYo9mE2Kcg2YrYs9iq2K7Yr9mFINiw2YTZgyDYs9mI2Ykg2YTZhNiq2LTYrtmK2LXYp9iqINin2YTYrtin2LXYqSDYqNin2YTZhti42KfZhSDZhdmGINmC2ZDYqNmEINin2YTZhdi12YbZkNmR2Lkg2KPZiCDYp9mE2YXYtNi62ZDZkdmELiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RpYWdub3N0aWMiIG1zZ2lkPSI2NjA4Mjk1NjkyMDAyNDUyMjgzIj4i4oCP2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNmC2LHYp9ih2Kkg2YjYp9mE2YPYqtin2KjYqSDYpdmE2Ykg2KPZiiDZhdmI2LHYryDZhdmF2YTZiNmDINio2YjYp9iz2LfYqSDZhdis2YXZiNi52Kkg2KfZhNiq2LTYrtmK2LXYp9iq2Jsg2LnZhNmJINiz2KjZitmEINin2YTZhdir2KfZhNiMINin2YTZhdmE2YHYp9iqINmB2YogL2Rldi4g2YXZhiDYp9mE2YXYrdiq2YXZhCDYo9mGINmK2KTYq9ixINiw2YTZgyDZgdmKINin2LPYqtmC2LHYp9ixINin2YTZhti42KfZhSDZiNij2YXYp9mG2YcuINmK2KzYqCDYo9mE2Kcg2YrYs9iq2K7Yr9mFINiw2YTZgyDYs9mI2Ykg2YTZhNiq2LTYrtmK2LXYp9iqINin2YTYrtin2LXYqSDYqNin2YTZhti42KfZhSDZhdmGINmC2ZDYqNmEINin2YTZhdi12YbZkNmR2Lkg2KPZiCDYp9mE2YXYtNi62ZDZkdmELiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlQ29tcG9uZW50U3RhdGUiIG1zZ2lkPSI2MzM1NTc2Nzc1NzExMDk1OTMxIj4i2KrZhdmD2YrZhiDZhdmD2YjZhtin2Kog2KfZhNiq2LfYqNmK2YIg2KPZiCDYqti52LfZitmE2YfYpyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUNvbXBvbmVudFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4ODg3NDM1NzQwOTgyMjM3Mjk0Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYutmK2YrYsSDZhdinINil2LDYpyDZg9in2YYg2LPZitiq2YUg2KrZhdmD2YrZhiDZhdmD2YjZhiDZhNiq2LfYqNmK2YIg2KLYrtixINij2YUg2YTYpy4g2YrZhdmD2YYg2KPZhiDYqtiz2KrYrtiv2YUg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYttin2LHYqSDYsNmE2YMg2YTYqti52LfZitmEINmC2K/Ysdin2Kog2KfZhNis2YfYp9iyINin2YTZhNmI2K3ZiiDYp9mE2YXZh9mF2KkuINmK2KzYqCDYqtmI2K7ZiiDYp9mE2K3YsNixINi52YbYryDYp9iz2KrYrtiv2KfZhSDZh9iw2Kcg2KfZhNil2LDZhtiMINmI2LDZhNmDINmE2KPZhtmHINmF2YYg2KfZhNmF2YXZg9mGINij2YYg2YrYpNiv2Yog2LDZhNmDINil2YTZiSDYrNi52YQg2K3Yp9mE2Kkg2YXZg9mI2YbYp9iqINin2YTYqti32KjZitmCINi62YrYsSDZgtin2KjZhNipINmE2YTYp9iz2KrYrtiv2KfZhSDYo9mIINi62YrYsSDZhdiq2YbYp9iz2YLYqSDYo9mIINi62YrYsSDZhdiz2KrZgtix2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODI3MjMyNDg0NDE2NTA1NjE1Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYutmK2YrYsSDZhdinINil2LDYpyDZg9in2YYg2LPZitiq2YUg2KrZhdmD2YrZhiDZhdmD2YjZhiDZhNiq2LfYqNmK2YIg2KLYrtixINij2YUg2YTYpy4g2YrZhdmD2YYg2KPZhiDYqtiz2KrYrtiv2YUg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYttin2LHYqSDYsNmE2YMg2YTYqti52LfZitmEINmC2K/Ysdin2Kog2KfZhNmH2KfYqtmBINin2YTZhdmH2YXYqS4g2YrYrNioINiq2YjYrtmKINin2YTYrdiw2LEg2LnZhtivINin2LPYqtiu2K/Yp9mFINmH2LDYpyDYp9mE2KXYsNmG2Iwg2YjYsNmE2YMg2YTYo9mG2Ycg2YXZhiDYp9mE2YXZhdmD2YYg2KPZhiDZitik2K/ZiiDYsNmE2YMg2KXZhNmJINis2LnZhCDYrdin2YTYqSDZhdmD2YjZhtin2Kog2KfZhNiq2LfYqNmK2YIg2LrZitixINmC2KfYqNmE2Kkg2YTZhNin2LPYqtiu2K/Yp9mFINij2Ygg2LrZitixINmF2KrZhtin2LPZgtipINij2Ygg2LrZitixINmF2LPYqtmC2LHYqS4iPC9zdHJpbmc+CkBAIC00MjksOCArNDM0LDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU2V0dGluZ3MiIG1zZ2lkPSI3Nzc1NzIzNDQxNTU4OTA3MTgxIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYudiv2YrZhCDYqNmK2KfZhtin2Kog2KXYudiv2KfYr9in2Kog2KfZhNmG2LjYp9mFLiDZitmF2YPZhiDYo9mGINiq2KrZhNmBINin2YTYqti32KjZitmC2KfYqiDYp9mE2LbYp9ix2Kkg2KrZh9mK2KbYqSDZhti42KfZhdmDLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTZWN1cmVTZXR0aW5ncyIgbXNnaWQ9IjIwNDY3NjI1MTg3NjcxODI4OCI+Itiq2LnYr9mK2YQg2KXYudiv2KfYr9in2Kog2KfZhNmG2LjYp9mFINin2YTYotmF2YbYqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSI4MTU5NTM1NjEzMDIwMTM3MzkxIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYudiv2YrZhCDYqNmK2KfZhtin2Kog2KfZhNil2LnYr9in2K/Yp9iqINin2YTYotmF2YbYqSDZhNmE2YbYuNin2YUuINmE2YYg2KrZg9mI2YYg2YfZhtin2YMg2K3Yp9is2Kkg2KXZhNmK2Ycg2YXYt9mE2YLZi9inINmF2Lkg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYudin2K/ZitipLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIyMTQ5NDI2NjY0MjI2MTUyMTg1Ij4i2KrYudiv2YrZhCDYrtix2YrYt9ipINiu2K/Zhdin2KogR29vZ2xlIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIxMjg3MzA5NDM3NjM4MzgwMjI5Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYudiv2YrZhCDYrtix2YrYt9ipINiu2K/Zhdin2KogR29vZ2xlLiDZhNmK2LMg2YTZhNin2LPYqtiu2K/Yp9mFINio2YjYp9iz2LfYqSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi52KfYr9mK2KkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUdzZXJ2aWNlcyIgbXNnaWQ9IjIxNDk0MjY2NjQyMjYxNTIxODUiPiLigI/Yqti52K/ZitmEINiu2LHZiti32Kkg2K7Yr9mF2KfYqiBHb29nbGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUdzZXJ2aWNlcyIgbXNnaWQ9IjEyODczMDk0Mzc2MzgzODAyMjkiPiLigI/ZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqti52K/ZitmEINiu2LHZiti32Kkg2K7Yr9mF2KfYqiBHb29nbGUuINmE2YrYsyDZhNmE2KfYs9iq2K7Yr9in2YUg2KjZiNin2LPYt9ipINin2YTYqti32KjZitmC2KfYqiDYp9mE2LnYp9iv2YrYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVCb290Q29tcGxldGVkIiBtc2dpZD0iNTMxMjk2NTU2NTk4NzgwMDAyNSI+Itin2YTYudmF2YQg2LnZhtivINio2K/YoSDYp9mE2KrYtNi62YrZhCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVCb290Q29tcGxldGVkIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3MzkwMzA0NjY0MTE2ODgwNzA0Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KjYr9ihINiq2LTYutmK2YQg2YbZgdiz2Ycg2LnZgtioINin2YbYqtmH2KfYoSDYp9mE2YbYuNin2YUg2YXZhiDYp9mE2KrYtNi62YrZhC4g2YLYryDZitik2K/ZiiDYsNmE2YMg2KXZhNmJINin2LPYqti62LHYp9mCINin2YTZhdiy2YrYryDZhdmGINin2YTZiNmC2Kog2LnZhtivINio2K/YoSDYp9mE2KzZh9in2LIg2KfZhNmE2YjYrdmKINmI2KfZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KXYqNi32KfYoSDYp9mE2KPYr9in2KEg2KfZhNil2KzZhdin2YTZiiDZhNmE2KzZh9in2LIg2KfZhNmE2YjYrdmKINmF2YYg2K7ZhNin2YQg2KrYtNi62YrZhNmHINiv2KfYptmF2YvYpy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlQm9vdENvbXBsZXRlZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUxMzk1MDU4OTEwMjYxNzUwNCI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNio2K/YoSDYqti02LrZitmEINmG2YHYs9mHINi52YLYqCDYp9mG2KrZh9in2KEg2KfZhNmG2LjYp9mFINmF2YYg2KfZhNiq2LTYutmK2YQuINmC2K8g2YrYpNiv2Yog2LDZhNmDINil2YTZiSDYp9iz2KrYutix2KfZgiDYp9mE2YXYstmK2K8g2YXZhiDYp9mE2YjZgtiqINi52YYg2KjYr9ihINin2YTZh9in2KrZgSDZiNin2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNil2KjYt9in2KEg2KfZhNij2K/Yp9ihINin2YTYpdis2YXYp9mE2Yog2YTZhNmH2KfYqtmBINit2YrYqyDZitiq2YUg2KrYtNi62YrZhNmHINiv2KfYptmF2YvYpy4iPC9zdHJpbmc+CkBAIC00NjQsMjMgKzQ2OSwyNSBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY3OTAzNTUyMDExMzY2ODUyOCI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNil2LbYp9mB2Kkg2KPZiCDYpdiy2KfZhNipINij2Ygg2KrYutmK2YrYsSDYp9mE2KPYrdiv2KfYqyDYp9mE2KrZiiDZitmF2YPZhtmDINiq2LnYr9mK2YTZh9inINi52YTZiSDYrNmH2KfYstmDINin2YTZhNmI2K3ZitiMINio2YXYpyDZgdmKINiw2YTZgyDYo9it2K/Yp9irINin2YTYo9i12K/Zgtin2KEg2KPZiCDYstmF2YTYp9ihINin2YTYudmF2YQuINmI2YLYryDZitiq2YrYrSDZh9iw2Kcg2YTZhNiq2LfYqNmK2YIg2KXYsdiz2KfZhCDYsdiz2KfYptmEINmK2KjYr9mIINij2YbZh9inINmI2KfYsdiv2Kkg2YXZhiDYo9i12K3Yp9ioINin2YTYqtmC2YjZitmFINij2Ygg2KrYudiv2YrZhCDYp9mE2KPYrdiv2KfYqyDYqNiv2YjZhiDZhdi52LHZgdipINin2YTZhdin2YTZg9mK2YYuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIzMjQ0Njk0OTYzMjcyNDkzNzYiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYpdi22KfZgdipINij2Ygg2KXYstin2YTYqSDYo9mIINiq2LrZitmK2LEg2KfZhNij2K3Yr9in2Ksg2KfZhNiq2Yog2YrZhdmD2YbZgyDYqti52K/ZitmE2YfYpyDYudmE2Ykg2YfYp9iq2YHZg9iMINio2YXYpyDZgdmKINiw2YTZgyDYo9it2K/Yp9irINin2YTYo9i12K/Zgtin2KEg2KPZiCDYstmF2YTYp9ihINin2YTYudmF2YQuINmI2YLYryDZitiq2YrYrSDZh9iw2Kcg2YTZhNiq2LfYqNmK2YIg2KXYsdiz2KfZhCDYsdiz2KfYptmEINmK2KjYr9mIINij2YbZh9inINmI2KfYsdiv2Kkg2YXZhiDYo9i12K3Yp9ioINin2YTYqtmC2YjZitmFINij2Ygg2KrYudiv2YrZhCDYp9mE2KPYrdiv2KfYqyDYqNiv2YjZhiDZhdi52LHZgdipINin2YTZhdin2YTZg9mK2YYuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NNb2NrTG9jYXRpb24iIG1zZ2lkPSI4Njg4MzM0OTc0MDM2ODIzMzMwIj4i2YXYtdin2K/YsSDZhdmI2KfZgti5INmI2YfZhdmK2Kkg2YTZhNin2K7Yqtio2KfYsSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc01vY2tMb2NhdGlvbiIgbXNnaWQ9IjU4MDg3MTEwMzk0ODIwNTE4MjQiPiLZhNil2YbYtNin2KEg2YXYtdin2K/YsSDZhdmI2KfZgti5INiy2KfYptmB2Kkg2YTZhNin2K7Yqtio2KfYsSDYo9mIINiq2KvYqNmK2Kog2YXZiNmB2LEg2YXZiNin2YLYuSDYrNiv2YrYry4g2YrYqtmK2K0g2YfYsNinINmE2YTYqti32KjZitmCINil2YTYutin2KEg2KfZhNmF2YjZgti5INmIL9ij2Ygg2KfZhNit2KfZhNipINin2YTYqtmKINiq2LnYsdi22YfYpyDZhdi12KfYr9ixINin2YTZhdmI2KfZgti5INin2YTYo9iu2LHZiSDZhdir2YQgR1BTINij2Ygg2YXZiNmB2LHZiiDYp9mE2YXZiNin2YLYuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NNb2NrTG9jYXRpb24iIG1zZ2lkPSI1ODA4NzExMDM5NDgyMDUxODI0Ij4i4oCP2YTYpdmG2LTYp9ihINmF2LXYp9iv2LEg2YXZiNin2YLYuSDYstin2KbZgdipINmE2YTYp9iu2KrYqNin2LEg2KPZiCDYqtir2KjZitiqINmF2YjZgdixINmF2YjYp9mC2Lkg2KzYr9mK2K8uINmK2KrZititINmH2LDYpyDZhNmE2KrYt9io2YrZgiDYpdmE2LrYp9ihINin2YTZhdmI2YLYuSDZiC/Yo9mIINin2YTYrdin2YTYqSDYp9mE2KrZiiDYqti52LHYttmH2Kcg2YXYtdin2K/YsSDYp9mE2YXZiNin2YLYuSDYp9mE2KPYrtix2Ykg2YXYq9mEIEdQUyDYo9mIINmF2YjZgdix2Yog2KfZhNmF2YjYp9mC2LkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NMb2NhdGlvbkV4dHJhQ29tbWFuZHMiIG1zZ2lkPSIyODM2MzA4MDc2NzIwNTUzODM3Ij4i2KfZhNiv2K7ZiNmEINil2YTZiSDYp9mE2YXYstmK2K8g2YXZhiDYo9mI2KfZhdixINmF2YjZgdixINin2YTZhdmI2YLYuSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0xvY2F0aW9uRXh0cmFDb21tYW5kcyIgbXNnaWQ9IjU5NDUxNjY2NDIzMzU4MDA3NjMiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9mE2K/YrtmI2YQg2KXZhNmJINin2YTZhdiy2YrYryDZhdmGINij2YjYp9mF2LEg2YXZiNmB2LEg2K7Yr9mF2Kkg2KfZhNmF2YjZgti5LiDZiNmC2K8g2YrYqtmK2K0g2YfYsNinINmE2YTYqti32KjZitmCINin2YTYqtiv2K7ZhCDZgdmKINi52YXZhCBHUFMg2KPZiCDZhdi12KfYr9ixINin2YTZhdmI2KfZgti5INin2YTYo9iu2LHZiS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NMb2NhdGlvbkV4dHJhQ29tbWFuZHMiIG1zZ2lkPSI1OTQ1MTY2NjQyMzM1ODAwNzYzIj4i4oCP2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNiv2K7ZiNmEINil2YTZiSDYp9mE2YXYstmK2K8g2YXZhiDYo9mI2KfZhdixINmF2YjZgdixINiu2K/ZhdipINin2YTZhdmI2YLYuS4g2YjZgtivINmK2KrZititINmH2LDYpyDZhNmE2KrYt9io2YrZgiDYp9mE2KrYr9iu2YQg2YHZiiDYudmF2YQgR1BTINij2Ygg2YXYtdin2K/YsSDYp9mE2YXZiNin2YLYuSDYp9mE2KPYrtix2YkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnN0YWxsTG9jYXRpb25Qcm92aWRlciIgbXNnaWQ9IjY1NzgxMDExOTk4MjUxOTM4NzMiPiLYpdiw2YYg2YTYqtir2KjZitiqINmF2YjZgdixINiu2K/ZhdipINmF2YjZgti5Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI5MDY2MTQ2MTIwNDcwNTkxNTA5Ij4i2YTYpdmG2LTYp9ihINmF2LXYp9iv2LEg2YXZiNin2YLYuSDYstin2KbZgdipINmE2YTYp9iu2KrYqNin2LEg2KPZiCDYqtir2KjZitiqINmF2YjZgdixINmF2YjYp9mC2Lkg2KzYr9mK2K8uINmK2KrZititINmH2LDYpyDZhNmE2KrYt9io2YrZgiDYpdmE2LrYp9ihINin2YTZhdmI2YLYuSDZiC/Yo9mIINin2YTYrdin2YTYqSDYp9mE2KrZiiDYqti52LHYttmH2Kcg2YXYtdin2K/YsSDYp9mE2YXZiNin2YLYuSDYp9mE2KPYrtix2Ykg2YXYq9mEIEdQUyDYo9mIINmF2YjZgdix2Yog2KfZhNmF2YjYp9mC2LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI5MDY2MTQ2MTIwNDcwNTkxNTA5Ij4i4oCP2YTYpdmG2LTYp9ihINmF2LXYp9iv2LEg2YXZiNin2YLYuSDYstin2KbZgdipINmE2YTYp9iu2KrYqNin2LEg2KPZiCDYqtir2KjZitiqINmF2YjZgdixINmF2YjYp9mC2Lkg2KzYr9mK2K8uINmK2KrZititINmH2LDYpyDZhNmE2KrYt9io2YrZgiDYpdmE2LrYp9ihINin2YTZhdmI2YLYuSDZiC/Yo9mIINin2YTYrdin2YTYqSDYp9mE2KrZiiDYqti52LHYttmH2Kcg2YXYtdin2K/YsSDYp9mE2YXZiNin2YLYuSDYp9mE2KPYrtix2Ykg2YXYq9mEIEdQUyDYo9mIINmF2YjZgdix2Yog2KfZhNmF2YjYp9mC2LkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSIxMTkxODk4MDYxOTY1MjczMzcyIj4i2KfZhNmF2YjZgti5INin2YTYr9mC2YrZgiAo2YXYs9iq2YbYryDYpdmE2Ykg2YbYuNin2YUg2KrYrdiv2YrYryDYp9mE2YXZiNin2YLYuSDYp9mE2LnYp9mE2YXZiiDZiNin2YTYtNio2YPYqSkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSI1Mjk1MDQ3NTYzNTY0OTgxMjUwIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYrdiv2YrYryDZhdmI2YLYudmDINio2K/ZgtipINmI2YfYsNinINio2KfYs9iq2K7Yr9in2YUg2YbYuNin2YUg2KrYrdiv2YrYryDYp9mE2YXZiNin2YLYuSDYp9mE2LnYp9mE2YXZiiAoR1BTKSDYo9mIINmF2LXYp9iv2LEg2KfZhNmF2YjYp9mC2Lkg2KfZhNiq2Yog2KrYs9iq2K7Yr9mFINin2YTYtNio2YPYp9iqINmF2KvZhCDYo9io2LHYp9isINin2YTYrNmI2KfZhCDYo9mIINiq2YLZhtmK2KkgV2ktRmkuINmK2KrYudmK2YYg2KrZiNmB2LEg2K7Yr9mF2KfYqiDYp9mE2YXZiNin2YLYuSDZh9iw2Ycg2YjYqti02LrZitmE2YfYpyDYudmE2Ykg2KzZh9in2LLZgyDZhNmE2KrYt9io2YrZgiDZg9mKINmK2LPYqtiu2K/ZhdmH2KcuINmI2YLYryDYqtiz2KrYrtiv2YUg2KfZhNiq2LfYqNmK2YLYp9iqINmH2LDYpyDZhNiq2K3Yr9mK2K8g2YXZiNmC2LnZgyDZiNmC2K8g2KrYs9iq2YfZhNmDINmF2LLZitiv2YvYpyDZhdmGINi32KfZgtipINin2YTYqNi32KfYsdmK2KkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzRmluZUxvY2F0aW9uIiBtc2dpZD0iNTI5NTA0NzU2MzU2NDk4MTI1MCI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2K3Yr9mK2K8g2YXZiNmC2LnZgyDYqNiv2YLYqSDZiNmH2LDYpyDYqNin2LPYqtiu2K/Yp9mFINmG2LjYp9mFINiq2K3Yr9mK2K8g2KfZhNmF2YjYp9mC2Lkg2KfZhNi52KfZhNmF2YogKEdQUykg2KPZiCDZhdi12KfYr9ixINin2YTZhdmI2KfZgti5INin2YTYqtmKINiq2LPYqtiu2K/ZhSDYp9mE2LTYqNmD2KfYqiDZhdir2YQg2KPYqNix2KfYrCDYp9mE2KzZiNin2YQg2KPZiCDYqtmC2YbZitipIFdpLUZpLiDZitiq2LnZitmGINiq2YjZgdixINiu2K/Zhdin2Kog2KfZhNmF2YjYp9mC2Lkg2YfYsNmHINmI2KrYtNi62YrZhNmH2Kcg2LnZhNmJINis2YfYp9iy2YMg2YTZhNiq2LfYqNmK2YIg2YPZiiDZitiz2KrYrtiv2YXZh9inLiDZiNmC2K8g2KrYs9iq2K7Yr9mFINin2YTYqti32KjZitmC2KfYqiDZh9iw2Kcg2YTYqtit2K/ZitivINmF2YjZgti52YMg2YjZgtivINiq2LPYqtmH2YTZgyDZhdiy2YrYr9mL2Kcg2YXZhiDYt9in2YLYqSDYp9mE2KjYt9in2LHZitipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSI0ODg3ODk1MzYyMzU0MjM5NjI4Ij4i2KfZhNmF2YjZgti5INin2YTYqtmC2LHZitio2YogKNmF2LPYqtmG2K8g2KXZhNmJINin2YTYtNio2YPYqSkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjI1MzgyMDAxODQzNzMzMDIyOTUiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqtit2K/ZitivINmF2YjZgti52YMg2KfZhNiq2YLYsdmK2KjZiiDYp9mE2LDZiiDZitiz2KrZhdivINmF2YYg2K7Yr9mF2KfYqiDYp9mE2YXZiNmC2Lkg2KjYp9iz2KrYrtiv2KfZhSDZhdi12KfYr9ixINin2YTZhdmI2KfZgti5INin2YTYqtmKINiq2LPYqtiu2K/ZhSDYp9mE2LTYqNmD2KfYqiDZhdir2YQg2KPYqNix2KfYrCDYp9mE2KzZiNin2YQg2YjYqtmC2YbZitipIFdpLUZpLiDZitiq2LnZitmGINiq2YjZgdixINiu2K/Zhdin2Kog2KfZhNmF2YjYp9mC2Lkg2YfYsNmHINmI2KrYtNi62YrZhNmH2Kcg2LnZhNmJINis2YfYp9iy2YMg2YTZhNiq2LfYqNmK2YIg2YPZiiDZitiz2KrYrtiv2YXZh9inLiDZiNmC2K8g2KrYs9iq2K7Yr9mFINin2YTYqti32KjZitmC2KfYqiDZh9iw2Kcg2YTYqtit2K/ZitivINmF2YjZgti52YMg2KfZhNiq2YLYsdmK2KjZii4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMjM2Mzk2OTY0MTc5MjM4ODk0NyI+Itin2YTYr9iu2YjZhCDYpdmE2YkgU3VyZmFjZUZsaW5nZXIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9iz2KrYrtiv2KfZhSDZhdmK2LLYp9iqIFN1cmZhY2VGbGluZ2VyINiw2KfYqiDYp9mE2YXYs9iq2YjZiSDYp9mE2YXZhtiu2YHYti4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjI1MzgyMDAxODQzNzMzMDIyOTUiPiLigI/ZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqtit2K/ZitivINmF2YjZgti52YMg2KfZhNiq2YLYsdmK2KjZiiDYp9mE2LDZiiDZitiz2KrZhdivINmF2YYg2K7Yr9mF2KfYqiDYp9mE2YXZiNmC2Lkg2KjYp9iz2KrYrtiv2KfZhSDZhdi12KfYr9ixINin2YTZhdmI2KfZgti5INin2YTYqtmKINiq2LPYqtiu2K/ZhSDYp9mE2LTYqNmD2KfYqiDZhdir2YQg2KPYqNix2KfYrCDYp9mE2KzZiNin2YQg2YjYqtmC2YbZitipIFdpLUZpLiDZitiq2LnZitmGINiq2YjZgdixINiu2K/Zhdin2Kog2KfZhNmF2YjYp9mC2Lkg2YfYsNmHINmI2KrYtNi62YrZhNmH2Kcg2LnZhNmJINis2YfYp9iy2YMg2YTZhNiq2LfYqNmK2YIg2YPZiiDZitiz2KrYrtiv2YXZh9inLiDZiNmC2K8g2KrYs9iq2K7Yr9mFINin2YTYqti32KjZitmC2KfYqiDZh9iw2Kcg2YTYqtit2K/ZitivINmF2YjZgti52YMg2KfZhNiq2YLYsdmK2KjZii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMjM2Mzk2OTY0MTc5MjM4ODk0NyI+IuKAj9in2YTYr9iu2YjZhCDYpdmE2YkgU3VyZmFjZUZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiLigI/ZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9iz2KrYrtiv2KfZhSDZhdmK2LLYp9iqIFN1cmZhY2VGbGluZ2VyINiw2KfYqiDYp9mE2YXYs9iq2YjZiSDYp9mE2YXZhtiu2YHYti4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiLZgtix2KfYodipINin2YTZhdiu2LLZhiDYp9mE2YXYpNmC2Kog2YTZhNil2LfYp9ix2KfYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjZgtix2KfYodipINmF2K3YqtmI2Ykg2KfZhNmF2K7YstmGINin2YTZhdik2YLYqiDZhNmE2KXYt9in2LHYp9iqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4i2KrZh9mK2KbYqSDYtNin2LTYp9iqIFdpLUZpIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrZh9mK2KbYqSDYtNin2LTYp9iqIFdpLUZpINmI2KfZhNin2KrYtdin2YQg2KjZh9inLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4i2KfZhNiq2K3Zg9mFINmB2Yog2LTYp9i02KfYqiBXaS1GaSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjQ1NDM5MTIyOTI2ODE4MjY5ODYiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9mE2KrYrdmD2YUg2YHZiiDYp9mE2YXZitiy2KfYqiDYsNin2Kog2KfZhNmF2LPYqtmI2Ykg2KfZhNmF2YbYrtmB2LYg2YHZiiDYtNin2LTYp9iqIFdpLUZpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+IuKAj9in2YTYr9iu2YjZhCDYpdmE2YnCoElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiLigI/ZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9iz2KrYrtiv2KfZhSDZhdmK2LLYp9iqIElucHV0RmxpbmdlciDYsNin2Kog2KfZhNmF2LPYqtmI2Ykg2KfZhNmF2YbYrtmB2LYuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiLigI/YqtmH2YrYptipINi02KfYtNin2KogV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiLigI/ZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqtmH2YrYptipINi02KfYtNin2KogV2ktRmkg2YjYp9mE2KfYqti12KfZhCDYqNmH2KcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiLigI/Yp9mE2KrYrdmD2YUg2YHZiiDYtNin2LTYp9iqIFdpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iNDU0MzkxMjI5MjY4MTgyNjk4NiI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNin2YTYqtit2YPZhSDZgdmKINin2YTZhdmK2LLYp9iqINiw2KfYqiDYp9mE2YXYs9iq2YjZiSDYp9mE2YXZhtiu2YHYtiDZgdmKINi02KfYtNin2KogV2ktRmkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlQXVkaW9PdXRwdXQiIG1zZ2lkPSI2ODU3MTM0NDk4NDAyMzQ2NzA4Ij4i2KfZhNiq2YLYp9i3INil2K7Ysdin2Kwg2KfZhNi12YjYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjYyMTA1OTc3NTQyMTIyMDg4NTMiPiLYp9mE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9mE2KrZgtin2Lcg2KXYrtix2KfYrCDYp9mE2LXZiNiqINmI2KXYudin2K/YqSDYqtmI2KzZitmH2YcuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlQXVkaW9Ib3R3b3JkIiBtc2dpZD0iMTg5MDU1MzkzNTY1MDM0OTgwOCI+Itin2YPYqti02KfZgSDYp9mE2YPZhNmF2Kkg2KfZhNmF2YfZhdipIjwvc3RyaW5nPgpAQCAtNDk3LDggKzUwNCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNvcmRBdWRpbyIgbXNnaWQ9IjQ5MDY4MzkzMDEwODc5ODA2ODAiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqtiz2KzZitmEINin2YTYtdmI2Kog2KjYp9iz2KrYrtiv2KfZhSDYp9mE2YXZitmD2LHZiNmB2YjZhi4g2YjZitiq2YrYrSDZh9iw2Kcg2KfZhNil2LDZhiDZhNmE2KrYt9io2YrZgiDYqtiz2KzZitmEINin2YTYtdmI2Kog2YHZiiDYo9mKINmI2YLYqiDZiNio2K/ZiNmGINmF2YjYp9mB2YLYqSDZhdmG2YMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYW1lcmEiIG1zZ2lkPSIzNjE2MzkxOTE5NTU5NzUxMTkyIj4i2KfZhNiq2YLYp9i3INi12YjYsSDZiNmF2YLYp9i32Lkg2YHZitiv2YrZiCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbWVyYSIgbXNnaWQ9Ijg0OTcyMTY1MjQ3MzU1MzUwMDkiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9mE2KrZgtin2Lcg2LXZiNixINmI2YXZgtin2LfYuSDZgdmK2K/ZitmIINmF2YYg2K7ZhNin2YQg2KfZhNmD2KfZhdmK2LHYpy4g2YjZitiq2YrYrSDZh9iw2Kcg2KfZhNil2LDZhiDZhNmE2KrYt9io2YrZgiDYp9iz2KrYrtiv2KfZhSDYp9mE2YPYp9mF2YrYsdinINmB2Yog2KPZiiDZiNmC2Kog2YjYqNiv2YjZhiDZhdmI2KfZgdmC2Kkg2YXZhtmDLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FtZXJhRGlzYWJsZVRyYW5zbWl0TGVkIiBtc2dpZD0iMjY1MTA3MjYzMDUwMTEyNjIyMiI+Itiq2LnYt9mK2YQg2YXYpNi02LEgTEVEINmE2YTYpdix2LPYp9mEINi52YbYr9mF2Kcg2KrZg9mI2YYg2KfZhNmD2KfZhdmK2LHYpyDZgtmK2K8g2KfZhNin2LPYqtiu2K/Yp9mFIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhRGlzYWJsZVRyYW5zbWl0TGVkIiBtc2dpZD0iNDc2NDU4NTQ2NTQ4MDI5NTM0MSI+ItmE2YTYs9mF2KfYrSDZhNiq2LfYqNmK2YIg2YbYuNin2YUg2YXYq9io2Kog2YXYs9io2YLZi9inINmE2KrYudi32YrZhCDZhdik2LTYsSBMRUQg2YTYp9iz2KrYrtiv2KfZhSDYp9mE2YPYp9mF2YrYsdinLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FtZXJhRGlzYWJsZVRyYW5zbWl0TGVkIiBtc2dpZD0iMjY1MTA3MjYzMDUwMTEyNjIyMiI+IuKAj9iq2LnYt9mK2YQg2YXYpNi02LEgTEVEINmE2YTYpdix2LPYp9mEINi52YbYr9mF2Kcg2KrZg9mI2YYg2KfZhNmD2KfZhdmK2LHYpyDZgtmK2K8g2KfZhNin2LPYqtiu2K/Yp9mFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhRGlzYWJsZVRyYW5zbWl0TGVkIiBtc2dpZD0iNDc2NDU4NTQ2NTQ4MDI5NTM0MSI+IuKAj9mE2YTYs9mF2KfYrSDZhNiq2LfYqNmK2YIg2YbYuNin2YUg2YXYq9io2Kog2YXYs9io2YLZi9inINmE2KrYudi32YrZhCDZhdik2LTYsSBMRUQg2YTYp9iz2KrYrtiv2KfZhSDYp9mE2YPYp9mF2YrYsdinLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJpY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI5NjEyOTIyMDU3NjQ0ODgzMDQiPiLYqti52LfZitmEINin2YTYrNmH2KfYsiDYp9mE2YTZiNit2Yog2YbZh9in2KbZitmL2KciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JyaWNrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODMzNzgxNzA5MzMyNjM3MDUzNyI+Itiq2LnYt9mK2YQg2KfZhNmH2KfYqtmBINi52YTZiSDYp9mE2K/ZiNin2YUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icmljayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDMzNDgxODgwODAwMTY5OTUzMCI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2LnYt9mK2YQg2KfZhNis2YfYp9iyINin2YTZhNmI2K3ZiiDYqNin2YTZg9in2YXZhCDYqNi02YPZhCDYr9in2KbZhS4g2YfYsNinINiu2LfZitixINmE2YTYutin2YrYqS4iPC9zdHJpbmc+CkBAIC01MDcsMTEgKzUxNCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyODk4NTYwODcyNDYyNjM4MjQyIj4i2YHYsdi2INil2LnYp9iv2Kkg2KrYtNi62YrZhCDYp9mE2YfYp9iq2YEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgxNzIwNTYxODAwNjM3MDA3NDEiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjZgdix2LYg2KXYudin2K/YqSDYqti02LrZitmEINin2YTYrNmH2KfYsiDYp9mE2YTZiNit2YouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVib290IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTMyNjAwODEyNDI4OTk4OTk2OSI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNmB2LHYtiDYpdi52KfYr9ipINiq2LTYutmK2YQg2KfZhNmH2KfYqtmBLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfdW5tb3VudF9maWxlc3lzdGVtcyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIyOTI3MzYxNTM3OTQyNTkxODQxIj4i2KfZhNiv2K7ZiNmEINil2YTZiSDZhti42KfZhSDZhdmE2YHYp9iqINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDQwMjMwNTA0OTg5MDk1MzgxMCI+Itin2YTYr9iu2YjZhCDYpdmE2Ykg2YbYuNin2YUg2YXZhNmB2KfYqiDYqNi32KfZgtipIFNEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjI5MjczNjE1Mzc5NDI1OTE4NDEiPiLigI/Yp9mE2K/YrtmI2YQg2KXZhNmJINmG2LjYp9mFINmF2YTZgdin2Kog2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDAyMzA1MDQ5ODkwOTUzODEwIj4i4oCP2KfZhNiv2K7ZiNmEINil2YTZiSDZhti42KfZhSDZhdmE2YHYp9iqINio2LfYp9mC2KkgU0QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBtc2dpZD0iMTgyOTI5MDcwMTY1ODk5MjM0NyI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2K3ZhdmK2YQg2KPZhti42YXYqSDYp9mE2YXZhNmB2KfYqiDZiNil2YTYutin2KEg2KrYrdmF2YrZhNmH2Kcg2KXZhNmJINmI2K3Yr9ipINin2YTYqtiu2LLZitmGINin2YTZgtin2KjZhNipINmE2YTYpdiy2KfZhNipLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyMjc4MTk1ODI2MjQ5MDQ5NzIiPiLZhdit2Ygg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI2MjU4MjY5ODYzOTI3NDA1NiI+ItmF2K3ZiCDYqNi32KfZgtipIFNEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjIyNzgxOTU4MjYyNDkwNDk3MiI+IuKAj9mF2K3ZiCDZiNit2K/YqSDYqtiu2LLZitmGIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjYyNTgyNjk4NjM5Mjc0MDU2Ij4i4oCP2YXYrdmIINio2LfYp9mC2KkgU0QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIG1zZ2lkPSI4Nzg0MjY4MjQ2Nzc5MTk4NjI3Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrZhtiz2YrZgiDZiNit2K/YqSDYp9mE2KrYrtiy2YrZhiDYp9mE2YLYp9io2YTYqSDZhNmE2KXYstin2YTYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfYWNjZXNzIiBtc2dpZD0iMzQxMTMzODYzMjAwMjE5Mzg0NiI+Itin2YTYrdi12YjZhCDYudmE2Ykg2YXYudmE2YjZhdin2Kog2K3ZiNmEINmI2K3Yr9ipINin2YTYqtiu2LLZitmGINin2YTYr9in2K7ZhNmK2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX2FjY2VzcyIgbXNnaWQ9IjMwOTQ1NjM4NDQ1OTM4Nzg1NDgiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9mE2K3YtdmI2YQg2LnZhNmJINmF2LnZhNmI2YXYp9iqINit2YjZhCDYs9i52Kkg2KfZhNiq2K7YstmK2YYg2KfZhNiv2KfYrtmE2YrYqS4iPC9zdHJpbmc+CkBAIC01MjcsMTkgKzUzNCwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdmlicmF0ZSIgbXNnaWQ9IjYyODQ5ODkyNDU5MDIzMDA5NDUiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9mE2KrYrdmD2YUg2YHZiiDYp9mE2YfYstmR2KfYsi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZsYXNobGlnaHQiIG1zZ2lkPSIyMTU1OTIwODEwMTIxOTg0MjE1Ij4i2KfZhNiq2K3Zg9mFINmB2Yog2KfZhNi22YjYoSDYp9mE2YjYp9mF2LYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mbGFzaGxpZ2h0IiBtc2dpZD0iNjUyMjI4NDc5NDU2ODM2ODMxMCI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNin2YTYqtit2YPZhSDZgdmKINin2YTYttmI2KEg2KfZhNmI2KfZhdi2LiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlVXNiIiBtc2dpZD0iMTExMzQ1MzQzMDY0NTQwMjcyMyI+Itil2K/Yp9ix2Kkg2KfZhNiq2YHYttmK2YTYp9iqINmI2KfZhNij2LDZiNmG2KfYqiDZhNij2KzZh9iy2KkgVVNCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNiIiBtc2dpZD0iNzc3NjE1NTQzMDIxODIzOTgzMyI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNil2K/Yp9ix2Kkg2KfZhNiq2YHYttmK2YTYp9iqINmI2KfZhNij2LDZiNmG2KfYqiDZhNij2KzZh9iy2KkgVVNCLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTXRwIiBtc2dpZD0iNDk1MzQ2ODY3Njc5NTkxNzA0MiI+Itiq2YbZgdmK2LAg2KjYsdmI2KrZiNmD2YjZhCBNVFAiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NNdHAiIG1zZ2lkPSI2NTMyOTYxMjAwNDg2NzkxNTcwIj4i2YTYpdiq2KfYrdipINin2YTYr9iu2YjZhCDYpdmE2Ykg2KjYsdmG2KfZhdisINiq2LTYutmK2YQga2VybmVsIE1UUCDZhNiq2YbZgdmK2LAg2KjYsdmI2KrZiNmD2YjZhCBNVFAgVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlVXNiIiBtc2dpZD0iMTExMzQ1MzQzMDY0NTQwMjcyMyI+IuKAj9il2K/Yp9ix2Kkg2KfZhNiq2YHYttmK2YTYp9iqINmI2KfZhNij2LDZiNmG2KfYqiDZhNij2KzZh9iy2KkgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNiIiBtc2dpZD0iNzc3NjE1NTQzMDIxODIzOTgzMyI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNil2K/Yp9ix2Kkg2KfZhNiq2YHYttmK2YTYp9iqINmI2KfZhNij2LDZiNmG2KfYqiDZhNij2KzZh9iy2KkgVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTXRwIiBtc2dpZD0iNDk1MzQ2ODY3Njc5NTkxNzA0MiI+IuKAj9iq2YbZgdmK2LAg2KjYsdmI2KrZiNmD2YjZhCBNVFAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NNdHAiIG1zZ2lkPSI2NTMyOTYxMjAwNDg2NzkxNTcwIj4i4oCP2YTYpdiq2KfYrdipINin2YTYr9iu2YjZhCDYpdmE2Ykg2KjYsdmG2KfZhdisINiq2LTYutmK2YQga2VybmVsIE1UUCDZhNiq2YbZgdmK2LAg2KjYsdmI2KrZiNmD2YjZhCBNVFAgVVNCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjQxNDgyOTA4NjA0MDA2NTkxNDYiPiLYp9iu2KrYqNin2LEg2KfZhNij2KzZh9iy2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19oYXJkd2FyZV90ZXN0IiBtc2dpZD0iNjU5Nzk2NDE5MTIwODAxNjYwNSI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNin2YTYqtit2YPZhSDZgdmKINin2YTYo9is2YfYstipINin2YTYt9ix2YHZitipINin2YTZhdiq2YbZiNi52Kkg2KjYutix2LYg2KfYrtiq2KjYp9ixINin2YTYo9is2YfYstipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FsbFBob25lIiBtc2dpZD0iMzkyNTgzNjM0NzY4MTg0Nzk1NCI+Itin2KrYtdin2YQg2YXYqNin2LTYsSDYqNij2LHZgtin2YUg2KfZhNmH2YjYp9iq2YEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYWxsUGhvbmUiIG1zZ2lkPSIzNzQwNzk3NTc2MTEzNzYwODI3Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2LfZhNioINij2LHZgtin2YUg2YfYp9iq2YHZitipINio2K/ZiNmGINiq2K/YrtmEINmF2YbZgy4g2YjZgtivINmK2KTYr9mKINiw2YTZgyDYpdmE2Ykg2KrYrdmF2YQg2LHYs9mI2YUg2LrZitixINmF2KrZiNmC2LnYqSDYo9mIINil2KzYsdin2KEg2YXZg9in2YTZhdin2Kog2LrZitixINmF2KrZiNmC2LnYqS4g2YjZhdmGINin2YTYrNiv2YrYsSDYqNin2YTYsNmD2LEg2KPZhiDYsNmE2YMg2YTYpyDZitiq2YrYrSDZhNmE2KrYt9io2YrZgiDYp9mE2KfYqti12KfZhCDYqNij2LHZgtin2YUg2KfZhNi32YjYp9ix2KYuINmI2YLYryDYqtik2K/ZiiDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi22KfYsdipINil2YTZiSDYqtit2YXZhNmDINiq2YPYp9mE2YrZgSDZhdin2YTZitipINmF2YYg2K7ZhNin2YQg2KXYrNix2KfYoSDZhdmD2KfZhNmF2KfYqiDYqNiv2YjZhiDZhdmI2KfZgdmC2Kkg2YXZhtmDLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FsbFByaXZpbGVnZWQiIG1zZ2lkPSI0MTk4MzQ5MjExMTA4NDk3ODc5Ij4i2KfYqti12KfZhCDZhdio2KfYtNixINio2KPZiiDYsdmC2YUg2YXZhiDYo9ix2YLYp9mFINin2YTZh9mI2KfYqtmBIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FsbFByaXZpbGVnZWQiIG1zZ2lkPSIxNjg5MDI0OTAxNTA5OTk2ODEwIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNin2KrYtdin2YQg2KjYo9mKINix2YLZhSDZh9in2KrZgdiMINio2YXYpyDZgdmKINiw2YTZgyDYo9ix2YLYp9mFINin2YTYt9mI2KfYsdim2Iwg2KjYr9mI2YYg2KrYr9iu2YQg2YXZhtmDLiDZgtivINiq2KzYsdmKINin2YTYqti32KjZitmC2KfYqiDYp9mE2LbYp9ix2Kkg2KfYqti12KfZhNin2Kog2LrZitixINi22LHZiNix2YrYqSDZiNi62YrYsSDZgtin2YbZiNmG2YrYqSDYqNiu2K/Zhdin2Kog2KfZhNi32YjYp9ix2KYuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDg0MjU3Njk5NDE0NDYwNDgyMSI+Itio2K/YoSDYpdi52K/Yp9ivINin2YTYrNmH2KfYsiDYp9mE2YTZiNit2YogQ0RNQSDZhdio2KfYtNix2KnZiyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NjA0ODQ4MDk1MzE1NDIxNDI1Ij4i2KjYr9ihINil2LnYr9in2K8g2YfYp9iq2YEgQ0RNQSDZhdio2KfYtNix2KkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgbXNnaWQ9IjE5OTQxOTM1Mzg4MDIzMTQxODYiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqNiv2KEg2KrZiNmB2YrYsSBDRE1BLiDZgtivINiq2KjYr9ijINin2YTYqti32KjZitmC2KfYqiDYp9mE2LbYp9ix2Kkg2KrZiNmB2YrYsSBDRE1BINio2K/ZiNmGINin2YTYrdin2KzYqSDYpdmE2Ykg2LDZhNmDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQ4NDI1NzY5OTQxNDQ2MDQ4MjEiPiLigI/YqNiv2KEg2KXYudiv2KfYryDYp9mE2KzZh9in2LIg2KfZhNmE2YjYrdmKIENETUEg2YXYqNin2LTYsdip2YsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTYwNDg0ODA5NTMxNTQyMTQyNSI+IuKAj9io2K/YoSDYpdi52K/Yp9ivINmH2KfYqtmBIENETUEg2YXYqNin2LTYsdipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIG1zZ2lkPSIxOTk0MTkzNTM4ODAyMzE0MTg2Ij4i4oCP2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KjYr9ihINiq2YjZgdmK2LEgQ0RNQS4g2YLYryDYqtio2K/YoyDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi22KfYsdipINiq2YjZgdmK2LEgQ0RNQSDYqNiv2YjZhiDYp9mE2K3Yp9is2Kkg2KXZhNmJINiw2YTZgy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2xvY2F0aW9uVXBkYXRlcyIgbXNnaWQ9Ijc3ODU0MDgyNTMzNjQzMzU3NDAiPiLYp9mE2KrYrdmD2YUg2YHZiiDYp9i02LnYp9ix2KfYqiDYqtit2K/ZitirINin2YTZhdmI2YLYuSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2xvY2F0aW9uVXBkYXRlcyIgbXNnaWQ9IjExMjA3NDE1NTc4OTE0Mzg4NzYiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqtmF2YPZitmGL9iq2LnYt9mK2YQg2KXYtNi52KfYsdin2Kog2KrYrdiv2YrYqyDYp9mE2YXZiNmC2Lkg2YXZhiDYp9mE2YTYp9iz2YTZg9mKLiDZhNmK2LMg2YTZhNin2LPYqtiu2K/Yp9mFINio2YjYp9iz2LfYqSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNi52KfYr9mK2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGVja2luUHJvcGVydGllcyIgbXNnaWQ9Ijc4NTUyNTk0NjEyNjg3MzQ5MTQiPiLYp9mE2K/YrtmI2YQg2KXZhNmJINiu2LXYp9im2LUg2KfZhNil2YrYr9in2LkiPC9zdHJpbmc+CkBAIC01ODIsNyArNTg5LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNzQxNDk2NTM0NzY5NjYwMDI3Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNit2LXZiNmEINi52YTZiSDZgtin2KbZhdipINio2KfZhNit2LPYp9io2KfYqiDYp9mE2KrZiiDZiti52LHZgdmH2Kcg2KfZhNis2YfYp9iyINin2YTZhNmI2K3Zii4g2YjZgtivINmK2KrYttmF2YYg2LDZhNmDINij2YrYqSDYrdiz2KfYqNin2Kog2KrZhSDYpdmG2LTYp9ik2YfYpyDYqNmI2KfYs9i32Kkg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYqtmKINir2KjYqtmH2KcuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QWNjb3VudHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDQ4MzE2ODIyNDUxODA3MzgyIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNit2LXZiNmEINi52YTZiSDZgtin2KbZhdipINio2KfZhNit2LPYp9io2KfYqiDYp9mE2KrZiiDZiti52LHZgdmH2Kcg2KfZhNmH2KfYqtmBLiDZiNmC2K8g2YrYqti22YXZhiDYsNmE2YMg2KPZitipINit2LPYp9io2KfYqiDYqtmFINil2YbYtNin2KTZh9inINio2YjYp9iz2LfYqSDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNiq2Yog2KvYqNiq2YfYpy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2F1dGhlbnRpY2F0ZUFjY291bnRzIiBtc2dpZD0iNTI2NTkwODQ4MTE3MjczNjkzMyI+Itil2YbYtNin2KEg2K3Ys9in2KjYp9iqINmI2KrYudmK2YrZhiDZg9mE2YXYp9iqINmF2LHZiNixIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXV0aGVudGljYXRlQWNjb3VudHMiIG1zZ2lkPSI1NDcyMTI0Mjk2OTA4OTc3MjYwIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfYs9iq2K7Yr9in2YUg2KXZhdmD2KfZhtmK2KfYqiDZhdi12K/ZkNmR2YIg2KfZhNit2LPYp9ioINmE2YAgQWNjb3VudE1hbmFnZXLYjCDYqNmF2Kcg2YHZiiDYsNmE2YMg2KXZhti02KfYoSDYrdiz2KfYqNin2Kog2YjYp9mE2K3YtdmI2YQg2LnZhNmJINmD2YTZhdin2Kog2YXYsdmI2LHZh9inINmI2KrYudmK2YbZh9inLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2F1dGhlbnRpY2F0ZUFjY291bnRzIiBtc2dpZD0iNTQ3MjEyNDI5NjkwODk3NzI2MCI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNin2LPYqtiu2K/Yp9mFINil2YXZg9in2YbZitin2Kog2YXYtdiv2ZDZkdmCINin2YTYrdiz2KfYqCDZhNmAIEFjY291bnRNYW5hZ2Vy2Iwg2KjZhdinINmB2Yog2LDZhNmDINil2YbYtNin2KEg2K3Ys9in2KjYp9iqINmI2KfZhNit2LXZiNmEINi52YTZiSDZg9mE2YXYp9iqINmF2LHZiNix2YfYpyDZiNiq2LnZitmG2YfYpy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFjY291bnRzIiBtc2dpZD0iNDk4MzEyNjMwNDc1NzE3NzMwNSI+Itil2LbYp9mB2Kkg2K3Ys9in2KjYp9iqINij2Ygg2KXYstin2YTYqtmH2KciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBY2NvdW50cyIgbXNnaWQ9Ijg2OTgyOTU2MjU0ODgyOTI1MDYiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYpdis2LHYp9ihINi52YXZhNmK2KfYqiDZhdir2YQg2KXYttin2YHYqSDYrdiz2KfYqNin2Kog2YjYpdiy2KfZhNiq2YfYpyDZiNit2LDZgSDZg9mE2YXYp9iqINmF2LHZiNix2YfYpy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VzZUNyZWRlbnRpYWxzIiBtc2dpZD0iMjM1NDgxMzk2MTYzODc3NjQyIj4i2KfYs9iq2K7Yr9in2YUg2KfZhNit2LPYp9io2KfYqiDYudmE2Ykg2KfZhNis2YfYp9iyIjwvc3RyaW5nPgpAQCAtNTkyLDM2ICs1OTksMzYgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY3JlYXRlTmV0d29ya1NvY2tldHMiIG1zZ2lkPSI4MDE4NzU4MTM2NDA0MzIzNjU4Ij4i2KXZhdmD2KfZhtmK2Kkg2K/YrtmI2YQg2YPYp9mF2YTYqSDYpdmE2Ykg2KfZhNi02KjZg9ipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY3JlYXRlTmV0d29ya1NvY2tldHMiIG1zZ2lkPSIzNDAzMDYyMTg3Nzc5NzI0MTg1Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KXZhti02KfYoSDZhdmC2KfYqNizINi02KjZg9in2Kog2YjYp9iz2KrYrtiv2KfZhSDYqNix2YjYqtmI2YPZiNmE2KfYqiDYtNio2YPYp9iqINmF2K7Ytdi12KkuINmI2YrZiNmB2LEg2KfZhNmF2KrYtdmB2K0g2YjYqti32KjZitmC2KfYqiDYo9iu2LHZiSDYt9ix2YLZi9inINmE2KXYsdiz2KfZhCDYp9mE2KjZitin2YbYp9iqINil2YTZiSDYp9mE2KXZhtiq2LHZhtiq2Iwg2YjZhNiw2YTZgyDZhNinINmK2LnYryDZh9iw2Kcg2KfZhNil2LDZhiDZhdi32YTZiNio2YvYpyDZhNil2LHYs9in2YQg2KfZhNio2YrYp9mG2KfYqiDYpdmE2Ykg2KfZhNil2YbYqtix2YbYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MDU2NjAxNTk2NzU3NTE4OTYiPiLYqti62YrZitixL9in2LnYqtix2KfYtiDYpdi52K/Yp9iv2KfYqiDYp9mE2LTYqNmD2Kkg2YjYrdix2YPYqSDYp9mE2YXYsdmI2LEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUFwblNldHRpbmdzIiBtc2dpZD0iNTMzMzc5ODg4NjQxMjcxNDE5MyI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2LrZitmK2LEg2KXYudiv2KfYr9in2Kog2KfZhNi02KjZg9ipINmI2YXZgtin2LfYudipINmI2YHYrdi1INis2YXZiti5INit2LHZg9ipINin2YTZhdix2YjYsSDZgdmKINin2YTYtNio2YPYqdiMINi52YTZiSDYs9io2YrZhCDYp9mE2YXYq9in2YTYjCDYqti62YrZitixINin2YTYrtin2K/ZhSDYp9mE2YjZg9mK2YQg2YjZhdmG2YHYsCDYo9mKIEFQTi4g2YLYryDYqtix2KfZgtioINin2YTYqti32KjZitmC2KfYqiDYp9mE2LbYp9ix2Kkg2K3YstmFINin2YTYtNio2YPYqSDYo9mIINiq2LnZitivINiq2YjYrNmK2YfZh9inINij2Ygg2KrYudiv2YTZh9inINio2K/ZiNmGINmF2LnYsdmB2KrZgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUFwblNldHRpbmdzIiBtc2dpZD0iNTMzMzc5ODg4NjQxMjcxNDE5MyI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2LrZitmK2LEg2KXYudiv2KfYr9in2Kog2KfZhNi02KjZg9ipINmI2YXZgtin2LfYudipINmI2YHYrdi1INis2YXZiti5INit2LHZg9ipINin2YTZhdix2YjYsSDZgdmKINin2YTYtNio2YPYqdiMINi52YTZiSDYs9io2YrZhCDYp9mE2YXYq9in2YTYjCDYqti62YrZitixINin2YTYrtin2K/ZhSDYp9mE2YjZg9mK2YQg2YjZhdmG2YHYsCDYo9mKIEFQTi4g2YLYryDYqtix2KfZgtioINin2YTYqti32KjZitmC2KfYqiDYp9mE2LbYp9ix2Kkg2K3YstmFINin2YTYtNio2YPYqSDYo9mIINiq2LnZitivINiq2YjYrNmK2YfZh9inINij2Ygg2KrYudiv2YTZh9inINio2K/ZiNmGINmF2LnYsdmB2KrZgy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZU5ldHdvcmtTdGF0ZSIgbXNnaWQ9Ijk1ODg4NDI5MTQ1NDMyNzMwOSI+Itiq2LrZitmK2LEg2KfYqti12KfZhCDYp9mE2LTYqNmD2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VOZXR3b3JrU3RhdGUiIG1zZ2lkPSI2Nzg5MTIzOTEyNDc2NDE2MjE0Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYutmK2YrYsSDYrdin2YTYqSDYp9iq2LXYp9mEINin2YTYtNio2YPYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVRldGhlclN0YXRlIiBtc2dpZD0iNTk1MjU4NDk2NDM3MzAxNzk2MCI+Itiq2LrZitmK2LEg2KfZhNin2KrYtdin2YQg2KfZhNmF2LHYqNmI2LciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VUZXRoZXJTdGF0ZSIgbXNnaWQ9IjE1MjQ0NDEzNDQ0MTIzMTk3ODAiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqti62YrZitixINit2KfZhNipINin2KrYtdin2YQg2KfZhNi02KjZg9ipINin2YTZhdix2KjZiNi32KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSIxNDAwNjY2MDEyNjcxNjQ4NzQxIj4i2KrYutmK2YrYsSDYpdi52K/Yp9ivINin2LPYqtiu2K/Yp9mFINio2YrYp9mG2KfYqiDYp9mE2K7ZhNmB2YrYqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUJhY2tncm91bmREYXRhU2V0dGluZyIgbXNnaWQ9IjUzNDc3Mjk1Nzg0Njg3NDQzNzkiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqti62YrZitixINil2LnYr9in2K8g2KfYs9iq2K7Yr9in2YUg2KjZitin2YbYp9iqINin2YTYrtmE2YHZitipLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2lmaVN0YXRlIiBtc2dpZD0iNTIwMjAxMjk0OTI0NzA0MDAxMSI+Iti52LHYtiDYp9iq2LXYp9mE2KfYqiBXaS1GaSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1dpZmlTdGF0ZSIgbXNnaWQ9IjUwMDI3OTgwNzczODc4MDM3MjYiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYudix2LYg2YXYudmE2YjZhdin2Kog2K3ZiNmEINi02KjZg9in2KogV2ktRmnYjCDZg9i52LHYtiDZhdi52YTZiNmF2KfYqiDYrdmI2YQg2YXYpyDYpdiw2Kcg2KrZhSDYqtmF2YPZitmGIFdpLUZpINmI2KfYs9mFINij2KzZh9iy2KkgV2ktRmkg2KfZhNmF2KrYtdmE2KkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI2NTUwNjQxMTg4NzQ5MTI4MDM1Ij4i2KfZhNiq2YjYtdmK2YQg2YjYp9mE2YHYtdmEINmF2YYgV2ktRmkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI3MTM3OTUwMjk3Mzg2MTI3NTMzIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNin2KrYtdin2YQg2KjZhtmC2KfYtyDYp9mE2YjYtdmI2YQg2KXZhNmJIFdpLUZpINmI2YLYt9i5INin2YTYp9iq2LXYp9mEINio2YfYp9iMINmI2KXYrNix2KfYoSDYqti62YrZitix2KfYqiDYudmE2Ykg2KrZh9mK2KbYqSDYp9mE2KzZh9in2LIg2YTYtNio2YPYp9iqIFdpLUZpLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBtc2dpZD0iMTM2ODI1Mzg3MTQ4MzI1NDc4NCI+Itin2YTYs9mF2KfYrSDYqNin2LPYqtmC2KjYp9mEINio2KsgV2ktRmkg2YXYqti52K/YryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzk2OTc3NDAyMTI1NjMzNjU0OCI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2YTZgtmKINin2YTYrdiy2YUg2KfZhNiq2Yog2YrYqtmFINil2LHYs9in2YTZh9inINil2YTZiSDYrNmF2YrYuSDYp9mE2KPYrNmH2LLYqSDYudmE2Ykg2LTYqNmD2KkgV2ktRmkg2KjYp9iz2KrYrtiv2KfZhSDYudmG2KfZiNmK2YYg2KjYqyDZhdiq2LnYr9iv2Iwg2YjZhNmK2LMg2KjYp9iz2KrYrtiv2KfZhSDYrNmH2KfYstmDINin2YTZhNmI2K3ZiiDZgdmC2LcuINmI2YrYpNiv2Yog2LDZhNmDINil2YTZiSDYp9iz2KrYrtiv2KfZhSDZgtiv2LEg2KPZg9io2LEg2YXZhiDYp9mE2LfYp9mC2Kkg2YrZgdmI2YIg2YjYtti5INin2YTYqNirINi62YrYsSDYp9mE2YXYqti52K/Yry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODUxOTQ5NzA2MDI1MzQ5OTI2Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrZhNmC2Yog2KfZhNit2LLZhSDYp9mE2KrZiiDZitiq2YUg2KXYsdiz2KfZhNmH2Kcg2KXZhNmJINis2YXZiti5INin2YTYo9is2YfYstipINi52YTZiSDYtNio2YPYqSBXaS1GaSDYqNin2LPYqtiu2K/Yp9mFINi52YbYp9mI2YrZhiDYqNirINmF2KrYudiv2K/YjCDZiNmE2YrYsyDYqNin2LPYqtiu2K/Yp9mFINmH2KfYqtmB2YMg2YHZgti3LiDZiNmK2KTYr9mKINiw2YTZgyDYpdmE2Ykg2KfYs9iq2K7Yr9in2YUg2YLYr9ixINij2YPYqNixINmF2YYg2KfZhNi32KfZgtipINmK2YHZiNmCINmI2LbYuSDYp9mE2KjYqyDYutmK2LEg2KfZhNmF2KrYudiv2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MjAyMDEyOTQ5MjQ3MDQwMDExIj4i4oCP2LnYsdi2INin2KrYtdin2YTYp9iqIFdpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzV2lmaVN0YXRlIiBtc2dpZD0iNTAwMjc5ODA3NzM4NzgwMzcyNiI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNi52LHYtiDZhdi52YTZiNmF2KfYqiDYrdmI2YQg2LTYqNmD2KfYqiBXaS1GadiMINmD2LnYsdi2INmF2LnZhNmI2YXYp9iqINit2YjZhCDZhdinINil2LDYpyDYqtmFINiq2YXZg9mK2YYgV2ktRmkg2YjYp9iz2YUg2KPYrNmH2LLYqSBXaS1GaSDYp9mE2YXYqti12YTYqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVdpZmlTdGF0ZSIgbXNnaWQ9IjY1NTA2NDExODg3NDkxMjgwMzUiPiLigI/Yp9mE2KrZiNi12YrZhCDZiNin2YTZgdi12YQg2YXZhiBXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlTdGF0ZSIgbXNnaWQ9IjcxMzc5NTAyOTczODYxMjc1MzMiPiLigI/ZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9mE2KfYqti12KfZhCDYqNmG2YLYp9i3INin2YTZiNi12YjZhCDYpdmE2YkgV2ktRmkg2YjZgti32Lkg2KfZhNin2KrYtdin2YQg2KjZh9in2Iwg2YjYpdis2LHYp9ihINiq2LrZitmK2LHYp9iqINi52YTZiSDYqtmH2YrYptipINin2YTYrNmH2KfYsiDZhNi02KjZg9in2KogV2ktRmkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIG1zZ2lkPSIxMzY4MjUzODcxNDgzMjU0Nzg0Ij4i4oCP2KfZhNiz2YXYp9itINio2KfYs9iq2YLYqNin2YQg2KjYqyBXaS1GaSDZhdiq2LnYr9ivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3OTY5Nzc0MDIxMjU2MzM2NTQ4Ij4i4oCP2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrZhNmC2Yog2KfZhNit2LLZhSDYp9mE2KrZiiDZitiq2YUg2KXYsdiz2KfZhNmH2Kcg2KXZhNmJINis2YXZiti5INin2YTYo9is2YfYstipINi52YTZiSDYtNio2YPYqSBXaS1GaSDYqNin2LPYqtiu2K/Yp9mFINi52YbYp9mI2YrZhiDYqNirINmF2KrYudiv2K/YjCDZiNmE2YrYsyDYqNin2LPYqtiu2K/Yp9mFINis2YfYp9iy2YMg2KfZhNmE2YjYrdmKINmB2YLYty4g2YjZitik2K/ZiiDYsNmE2YMg2KXZhNmJINin2LPYqtiu2K/Yp9mFINmC2K/YsSDYo9mD2KjYsSDZhdmGINin2YTYt9in2YLYqSDZitmB2YjZgiDZiNi22Lkg2KfZhNio2Ksg2LrZitixINin2YTZhdiq2LnYr9ivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTE5NDk3MDYwMjUzNDk5MjYiPiLigI/ZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqtmE2YLZiiDYp9mE2K3YstmFINin2YTYqtmKINmK2KrZhSDYpdix2LPYp9mE2YfYpyDYpdmE2Ykg2KzZhdmK2Lkg2KfZhNij2KzZh9iy2Kkg2LnZhNmJINi02KjZg9ipIFdpLUZpINio2KfYs9iq2K7Yr9in2YUg2LnZhtin2YjZitmGINio2Ksg2YXYqti52K/Yr9iMINmI2YTZitizINio2KfYs9iq2K7Yr9in2YUg2YfYp9iq2YHZgyDZgdmC2LcuINmI2YrYpNiv2Yog2LDZhNmDINil2YTZiSDYp9iz2KrYrtiv2KfZhSDZgtiv2LEg2KPZg9io2LEg2YXZhiDYp9mE2LfYp9mC2Kkg2YrZgdmI2YIg2YjYtti5INin2YTYqNirINi62YrYsSDYp9mE2YXYqti52K/Yry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JsdWV0b290aEFkbWluIiBtc2dpZD0iNjAwNjk2NzM3MzkzNTkyNjY1OSI+Itin2YTYr9iu2YjZhCDYpdmE2Ykg2KXYudiv2KfYr9in2Kog2KjZhNmI2KrZiNirIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY5MjExNzc0NzE3NDg4ODIxMzciPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqtmH2YrYptipINmE2YjYrdipINin2YTYqNmE2YjYqtmI2Ksg2KfZhNmF2K3ZhNmK2Iwg2YjYp9mD2KrYtNin2YEg2KPYrNmH2LLYqSDYp9mE2KrYrdmD2YUg2LnZhiDYqNi52K8g2YjYp9mE2KfZgtiq2LHYp9mGINio2YfYpy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhBZG1pbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MzE2ODIxNTkzMzE1NDIxMzciPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqtmH2YrYptipINmH2KfYqtmBINin2YTYqNmE2YjYqtmI2Ksg2KfZhNmF2K3ZhNmK2Iwg2YjYp9mD2KrYtNin2YEg2KPYrNmH2LLYqSDYp9mE2KrYrdmD2YUg2LnZhiDYqNi52K8g2YjYp9mE2KfZgtiq2LHYp9mGINio2YfYpy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JsdWV0b290aFByaXYiIG1zZ2lkPSI0MDA5NDk0MjQ2MDA5NTEzODI4Ij4i2KfZhNiz2YXYp9itINio2KXZgtix2KfZhiDYp9mE2KjZhNmI2KrZiNirINmF2Lkg2KfZhNiq2LfYqNmK2YIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhQcml2IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MDQ1NzM1MTkzNDE3NDY4ODU3Ij4i2YTZhNiz2YXYp9itINio2KXZgtix2KfZhiDZhNiq2LfYqNmK2YIg2YXYuSDYp9mE2KPYrNmH2LLYqSDYp9mE2KjYudmK2K/YqSDYqNiv2YjZhiDYqtiv2K7ZhCDYp9mE2YXYs9iq2K7Yr9mFLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aFByaXYiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MDQ1NzM1MTkzNDE3NDY4ODU3Ij4i2YTZhNiz2YXYp9itINio2KXZgtix2KfZhiDZhNiq2LfYqNmK2YIg2YXYuSDYp9mE2KPYrNmH2LLYqSDYp9mE2KjYudmK2K/YqSDYqNiv2YjZhiDYqtiv2K7ZhCDYp9mE2YXYs9iq2K7Yr9mFLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2ltYXhTdGF0ZSIgbXNnaWQ9IjQxOTU5MDcwMTA2MTAyMDU3MDMiPiLYp9mE2KfYqti12KfZhCDYqNmA2LTYqNmD2KkgV2lNQVgg2YjZgti32Lkg2KfZhNin2KrYtdin2YQg2KjZh9inIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzV2ltYXhTdGF0ZSIgbXNnaWQ9IjYzNjAxMDI4NzcyNjE5Nzg4ODciPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqtit2K/ZitivINmF2Kcg2KXYsNinINiq2YUg2KrZhdmD2YrZhiBXaU1BWCDZiNiq2K3Yr9mK2K8g2YXYudmE2YjZhdin2Kog2K3ZiNmEINij2YrYqSDYtNio2YPYp9iqIFdpTUFYINmF2KrYtdmE2KkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaW1heFN0YXRlIiBtc2dpZD0iMjQwNTA0MjI2NzEzMTQ5NjU3OSI+Itiq2LrZitmK2LEg2K3Yp9mE2KkgV2lNQVgiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaW1heFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMTU2NDU2NTA0MDg0MjAxODA1Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrZiNi12YrZhCDYp9mE2KzZh9in2LIg2KfZhNmE2YjYrdmKINio2LTYqNmD2KfYqiBXaU1BWCDZiNmC2LfYuSDYp9iq2LXYp9mE2Ycg2KjZh9inLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2OTcwMjUwNDMwMDQ5MjM3OTgiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqtmI2LXZitmEINin2YTZh9in2KrZgSDYqNi02KjZg9in2KogV2lNQVgg2YjZgti32Lkg2KfYqti12KfZhNmHINio2YfYpy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1dpbWF4U3RhdGUiIG1zZ2lkPSI0MTk1OTA3MDEwNjEwMjA1NzAzIj4i4oCP2KfZhNin2KrYtdin2YQg2KjZgNi02KjZg9ipIFdpTUFYINmI2YLYt9i5INin2YTYp9iq2LXYp9mEINio2YfYpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1dpbWF4U3RhdGUiIG1zZ2lkPSI2MzYwMTAyODc3MjYxOTc4ODg3Ij4i4oCP2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYrdiv2YrYryDZhdinINil2LDYpyDYqtmFINiq2YXZg9mK2YYgV2lNQVgg2YjYqtit2K/ZitivINmF2LnZhNmI2YXYp9iqINit2YjZhCDYo9mK2Kkg2LTYqNmD2KfYqiBXaU1BWCDZhdiq2LXZhNipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2ltYXhTdGF0ZSIgbXNnaWQ9IjI0MDUwNDIyNjcxMzE0OTY1NzkiPiLigI/Yqti62YrZitixINit2KfZhNipIFdpTUFYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2ltYXhTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzE1NjQ1NjUwNDA4NDIwMTgwNSI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2YjYtdmK2YQg2KfZhNis2YfYp9iyINin2YTZhNmI2K3ZiiDYqNi02KjZg9in2KogV2lNQVgg2YjZgti32Lkg2KfYqti12KfZhNmHINio2YfYpy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaW1heFN0YXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjk3MDI1MDQzMDA0OTIzNzk4Ij4i4oCP2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrZiNi12YrZhCDYp9mE2YfYp9iq2YEg2KjYtNio2YPYp9iqIFdpTUFYINmI2YLYt9i5INin2KrYtdin2YTZhyDYqNmH2KcuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGgiIG1zZ2lkPSI2MTI3NzY5MzM2MzM5Mjc2ODI4Ij4i2KfZhNin2KrYtdin2YQg2KjYo9is2YfYstipINio2YTZiNiq2YjYqyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQ4MDcyMjE4MTg1MjQzODYyOCI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNi52LHYtiDYqtmH2YrYptipINin2YTYqNmE2YjYqtmI2Ksg2LnZhNmJINin2YTYrNmH2KfYsiDYp9mE2YTZiNit2Yog2YjYpdis2LHYp9ihINin2KrYtdin2YTYp9iqINmI2YLYqNmI2YTZh9inINmF2Lkg2KfZhNij2KzZh9iy2Kkg2KfZhNmF2YLYqtix2YbYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGgiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzMjA3MTA2MzI0NDUyMzEyNzM5Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2LnYsdi2INiq2YfZitim2Kkg2KfZhNio2YTZiNiq2YjYqyDYudmE2Ykg2KfZhNmH2KfYqtmBINmI2KXYrNix2KfYoSDYp9iq2LXYp9mE2KfYqiDZiNmC2KjZiNmE2YfYpyDZhdi5INin2YTYo9is2YfYstipINin2YTZhdmC2KrYsdmG2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9uZmMiIG1zZ2lkPSI0NDIzMzUxMjc0NzU3ODc2OTUzIj4i2KfZhNiq2K3Zg9mFINmB2Yog2KfYqti12KfZhCDYp9mE2K3ZgtmEINin2YTZgtix2YrYqCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX25mYyIgbXNnaWQ9IjcxMjA2MTE4MTk0MDE3ODk5MDciPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9mE2KfYqti12KfZhCDYqNi52YTYp9mF2KfYqiDYp9mE2KfYqti12KfZhCDZgtix2YrYqCDYp9mE2YXYr9mJIChORkMp2Iwg2YjYp9mE2KjYt9in2YLYp9iqINmI2KjYsdin2YXYrCDYp9mE2YLYsdin2KHYqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19uZmMiIG1zZ2lkPSI3MTIwNjExODE5NDAxNzg5OTA3Ij4i4oCP2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNin2KrYtdin2YQg2KjYudmE2KfZhdin2Kog2KfZhNin2KrYtdin2YQg2YLYsdmK2Kgg2KfZhNmF2K/ZiSAoTkZDKdiMINmI2KfZhNio2LfYp9mC2KfYqiDZiNio2LHYp9mF2Kwg2KfZhNmC2LHYp9ih2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kaXNhYmxlS2V5Z3VhcmQiIG1zZ2lkPSIzNTk4NDk2MzAxNDg2NDM5MjU4Ij4i2KrYudi32YrZhCDZgtmB2YQg2KfZhNi02KfYtNipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlzYWJsZUtleWd1YXJkIiBtc2dpZD0iNjAzNDIwMzA2NTA3NzEyMjk5MiI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2LnYt9mK2YQg2KrYo9mF2YrZhiDYp9mE2YXZgdin2KrZititINmI2KPZiiDYo9mF2KfZhiDZhNmD2YTZhdipINmF2LHZiNixINmF2LHYqtio2LfYqS4g2LnZhNmJINiz2KjZitmEINin2YTZhdir2KfZhNiMINmK2LnYt9mEINin2YTZh9in2KrZgSDYqtij2YXZitmGINin2YTZhdmB2KfYqtmK2K0g2LnZhtivINin2LPYqtmC2KjYp9mEINmF2YPYp9mE2YXYqSDZh9in2KrZgdmK2Kkg2YjYp9ix2K/YqdiMINir2YUg2YrYudmK2K8g2KrZhdmD2YrZhiDYqtij2YXZitmGINin2YTZhdmB2KfYqtmK2K0g2LnZhtivINin2YbYqtmH2KfYoSDYp9mE2YXZg9in2YTZhdipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFN5bmNTZXR0aW5ncyIgbXNnaWQ9IjYyMDE4MTAwMDgyMzA1MDMwNTIiPiLZgtix2KfYodipINil2LnYr9in2K/Yp9iqINin2YTZhdiy2KfZhdmG2KkiPC9zdHJpbmc+CkBAIC02MzgsMTQgKzY0NSwxNCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZERpY3Rpb25hcnkiIG1zZ2lkPSI2NTk2MTQ2MDAzMzg5MDQyNDMiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjZgtix2KfYodipINis2YXZiti5INin2YTZg9mE2YXYp9iqINmI2KfZhNij2LPZhdin2KEg2YjYp9mE2LnYqNin2LHYp9iqINin2YTYqtmKINix2KjZhdinINmK2YPZiNmGINin2YTZhdiz2KrYrtiv2YUg2YLYryDYrtiy2YbZh9inINmB2Yog2YLYp9mF2YjYsyDYp9mE2YXYs9iq2K7Yr9mFLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iMjE4MzExMDQwMjMxNDQ0MTEwNiI+Itil2LbYp9mB2Kkg2YPZhNmF2KfYqiDYpdmE2Ykg2KfZhNmC2KfZhdmI2LMg2KfZhNmF2LnYsdmR2YEg2KjZiNin2LPYt9ipINin2YTZhdiz2KrYrtiv2YUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSI4MTg1Mzg1NzE2MjU1MDY1MjkxIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2YPYqtin2KjYqSDZg9mE2YXYp9iqINis2K/Zitiv2Kkg2YHZiiDZgtin2YXZiNizINin2YTZhdiz2KrYrtiv2YUuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRSZWFkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM2NzI3NTA5NTE1OTQwNTQ2OCI+ItmC2LHYp9ih2Kkg2YXYrdiq2YjZitin2Kog2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg4MTU2NDYyOTM0OTc3OTQwIj4i2YLYsdin2KHYqSDZhdit2KrZiNmK2KfYqiDYqNi32KfZgtipIFNEIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNDQ2OTg4NzEyNTk4Mzg2MDc5Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2YLYsdin2KHYqSDZhdit2KrZiNmK2KfYqiDZiNit2K/YqSDYqtiu2LLZitmGIFVTQi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjYwNzM2MjQ3MzY1NDk3NTQxMSI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNmC2LHYp9ih2Kkg2YXYrdiq2YjZitin2Kog2KjYt9in2YLYqSBTRC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijg0ODU5NzkwNjIyNTQ2NjY3NDgiPiLYqti52K/ZitmEINmF2K3YqtmI2YrYp9iqINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCINij2Ygg2K3YsNmB2YfYpyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4ODA1NjkzNjMwMDUwNDU4NzYzIj4i2KrYudiv2YrZhCDZhdit2KrZiNmK2KfYqiDYqNi32KfZgtipIFNEINij2Ygg2K3YsNmB2YfYpyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYxNzU0MDYyOTk0NDU3MTA4ODgiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9mE2YPYqtin2KjYqSDYpdmE2Ykg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0IuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MzM3NDE3NzkwOTM2NjMyMDkwIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNmD2KrYp9io2Kkg2KXZhNmJINio2LfYp9mC2KkgU0QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRSZWFkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM2NzI3NTA5NTE1OTQwNTQ2OCI+IuKAj9mC2LHYp9ih2Kkg2YXYrdiq2YjZitin2Kog2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg4MTU2NDYyOTM0OTc3OTQwIj4i4oCP2YLYsdin2KHYqSDZhdit2KrZiNmK2KfYqiDYqNi32KfZgtipIFNEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNDQ2OTg4NzEyNTk4Mzg2MDc5Ij4i4oCP2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2YLYsdin2KHYqSDZhdit2KrZiNmK2KfYqiDZiNit2K/YqSDYqtiu2LLZitmGIFVTQi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjYwNzM2MjQ3MzY1NDk3NTQxMSI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNmC2LHYp9ih2Kkg2YXYrdiq2YjZitin2Kog2KjYt9in2YLYqSBTRC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijg0ODU5NzkwNjIyNTQ2NjY3NDgiPiLigI/Yqti52K/ZitmEINmF2K3YqtmI2YrYp9iqINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCINij2Ygg2K3YsNmB2YfYpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4ODA1NjkzNjMwMDUwNDU4NzYzIj4i4oCP2KrYudiv2YrZhCDZhdit2KrZiNmK2KfYqiDYqNi32KfZgtipIFNEINij2Ygg2K3YsNmB2YfYpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYxNzU0MDYyOTk0NDU3MTA4ODgiPiLigI/ZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYp9mE2YPYqtin2KjYqSDYpdmE2Ykg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MzM3NDE3NzkwOTM2NjMyMDkwIj4i4oCP2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNmD2KrYp9io2Kkg2KXZhNmJINio2LfYp9mC2KkgU0QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTk4MzkxOTk3MDY4NzkwMTUiPiLYqti52K/ZitmEL9it2LDZgSDZhdit2KrZiNmK2KfYqiDZiNit2K/YqSDYqtiu2LLZitmGINin2YTZiNiz2KfYpti3INin2YTYr9in2K7ZhNmK2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgxODkxNjA1OTc2OTg1MjkxODUiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjYqti52K/ZitmEINmF2K3YqtmI2YrYp9iqINmI2K3Yr9ipINiq2K7YstmK2YYg2KfZhNmI2LPYp9im2Lcg2KfZhNiv2KfYrtmE2YrYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZURvY3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzc4MzE4NTk4NDQ4ODQ5ODI5Ij4i2KXYr9in2LHYqSDYp9mE2LPYudipINin2YTYqtiu2LLZitmG2YrYqSDZhNmE2YXYs9iq2YbYryI8L3N0cmluZz4KQEAgLTY1NSw3ICs2NjIsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWNoZV9maWxlc3lzdGVtIiBtc2dpZD0iNTY1NjQ4NzI2NDgxOTY2OTgyNCI+Itin2YTYr9iu2YjZhCDYpdmE2Ykg2YbYuNin2YUg2YXZhNmB2KfYqiDYsNin2YPYsdipINin2YTYqtiu2LLZitmGINin2YTZhdik2YLYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhY2hlX2ZpbGVzeXN0ZW0iIG1zZ2lkPSI1NTc4OTY3NjQyMjY1NTUwOTU1Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2YLYsdin2KHYqSDZhti42KfZhSDZhdmE2YHYp9iqINiw2KfZg9ix2Kkg2KfZhNiq2K7YstmK2YYg2KfZhNmF2KTZgtiqINmI2KfZhNmD2KrYp9io2Kkg2KjZhy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VzZV9zaXAiIG1zZ2lkPSI1OTg2OTUyMzYyNzk1ODcwNTAyIj4i2KXYrNix2KfYoS/YqtmE2YLZiiDZhdmD2KfZhNmF2KfYqiDYudio2LEg2KfZhNil2YbYqtix2YbYqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZV9zaXAiIG1zZ2lkPSI0NzE3NjMyMDAwMDYyNjc0Mjk0Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfYs9iq2K7Yr9in2YUg2K7Yr9mF2KkgU0lQINmE2KXYrNix2KfYoS/YqtmE2YLZiiDZhdmD2KfZhNmF2KfYqiDYudio2LEg2KfZhNil2YbYqtix2YbYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191c2Vfc2lwIiBtc2dpZD0iNDcxNzYzMjAwMDA2MjY3NDI5NCI+IuKAj9mE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNin2LPYqtiu2K/Yp9mFINiu2K/ZhdipIFNJUCDZhNil2KzYsdin2KEv2KrZhNmC2Yog2YXZg9in2YTZhdin2Kog2LnYqNixINin2YTYpdmG2KrYsdmG2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kX2NhbGxfc2VydmljZSIgbXNnaWQ9IjY3MjQwMDk3MjY2NzEyNDY1NTEiPiLYp9mE2KrZgdin2LnZhCDZhdi5INin2YTYtNin2LTYqSDYo9ir2YbYp9ihINin2YTYp9iq2LXYp9mEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZF9jYWxsX3NlcnZpY2UiIG1zZ2lkPSI4NzMyNTQ3NjYyNDQyNTcyNDM1Ij4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KfZhNiq2K3Zg9mFINmB2Yog2YjZgtiqINmI2YPZitmB2YrYqSDZhdi02KfZh9iv2Kkg2KfZhNmF2LPYqtiu2K/ZhSDZhNmE2LTYp9i02Kkg2KPYq9mG2KfYoSDYp9mE2KfYqti12KfZhC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWROZXR3b3JrVXNhZ2VIaXN0b3J5IiBtc2dpZD0iNzg2MjU5MzI4MzYxMTQ5MzIzMiI+ItmC2LHYp9ih2Kkg2KjZitin2YbYp9iqINin2YTYp9iz2KrYrtiv2KfZhSDYp9mE2LPYp9io2YLYqSDZhNmE2LTYqNmD2KkiPC9zdHJpbmc+CkBAIC04MDksMTQgKzgxNiwxNCBAQAogICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVIb21lIiBtc2dpZD0iNjA5MzU5ODE4MTA2OTM1OTI5NSI+Itin2YTZhdmG2LLZhCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlV29yayIgbXNnaWQ9IjY5MjA3MjU3MzA3OTcwOTkwNDciPiLYp9mE2LnZhdmEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVPdGhlciIgbXNnaWQ9IjQ0MDg0MzYxNjI5NTAxMTk4NDkiPiLYutmK2LEg2LDZhNmDIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4i2KfZg9iq2Kgg2LHZhdiyINix2YLZhSDYp9mE2KrYudix2YrZgSDYp9mE2LTYrti12YoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiLYp9mD2KrYqCDYsdmF2LIgUFVLINmI2LHZhdiyINix2YLZhSDYp9mE2KrYudix2YrZgSDYp9mE2LTYrti12Yog2KfZhNis2K/ZitivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiLYsdmF2LIgUFVLIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLYsdmF2LIg2LHZgtmFINin2YTYqti52LHZitmBINin2YTYtNiu2LXZiiDYp9mE2KzYr9mK2K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLigI/Yp9mD2KrYqCDYsdmF2LIg2LHZhdiyIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IuKAj9in2YPYqtioINix2YXYsiBQVUsg2YjYsdmF2LIg2LHZhdiyIFBJTiDYp9mE2KzYr9mK2K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IuKAj9ix2YXYsiBQVUsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+IuKAj9ix2YXYsiDYsdmF2LIgUElOINin2YTYrNiv2YrYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+Itin2YTZhdizINmE2YPYqtin2KjYqSDZg9mE2YXYqSDYp9mE2YXYsdmI2LEiPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLYp9mD2KrYqCDZg9mE2YXYqSDYp9mE2YXYsdmI2LEg2YTYpdmE2LrYp9ihINin2YTYqtij2YXZitmGIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i2KfZg9iq2Kgg2LHZgtmFINin2YTYqti52LHZitmBINin2YTYtNiu2LXZiiDZhNil2YTYutin2KEg2KfZhNiq2KPZhdmK2YYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKINi62YrYsSDYtdit2YrYrS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLigI/Yp9mD2KrYqCDYsdmF2LIgUElOINmE2KXZhNi62KfYoSDYp9mE2KrYo9mF2YrZhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMjQyMjIyNTU5MTAwNjEzNDkzNiI+IuKAj9ix2YXYsiBQSU4g2LrZitixINi12K3ZititLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xhYmVsX3RleHQiIG1zZ2lkPSI4NjE3OTY0NjEwMjgyOTg0MjQiPiLZhNil2YTYutin2KEg2KfZhNiq2KPZhdmK2YbYjCDYp9i22LrYtyDYudmE2YkgXCLYp9mE2YLYp9im2YXYqVwiINir2YUg2LnZhNmJIDAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZW1lcmdlbmN5X2NhbGxfZGlhbG9nX251bWJlcl9mb3JfZGlzcGxheSIgbXNnaWQ9IjY5NjE5MjEwMzE5NTA5MDk3MCI+Itix2YLZhSDYp9mE2LfZiNin2LHYpiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fY2Fycmllcl9kZWZhdWx0IiBtc2dpZD0iODk2MzgzOTI0MjU2NTY1MzE5MiI+ItmE2Kcg2KrYqtmI2YHYsSDYrtiv2YXYqSI8L3N0cmluZz4KQEAgLTgzNCwxMyArODQxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2NoYXJnZWQiIG1zZ2lkPSIzMjE2MzU3NDU2ODQwNjA2MjQiPiLYqtmFINin2YTYtNit2YYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2JhdHRlcnlfc2hvcnQiIG1zZ2lkPSI0NDc3MjY0ODQ5Mzg2ODUwMjY2Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbG93X2JhdHRlcnkiIG1zZ2lkPSIxNDgyODczOTgxOTE5MjQ5NzQwIj4i2KrZiNi12YrZhCDYrNmH2KfYsiDYp9mE2LTYrdmGLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjUwOTk0MzkyNzc4MTkyMTUzOTkiPiLZhNmK2LPYqiDZh9mG2KfZgyDYqNi32KfZgtipIFNJTSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUxNjU5MTk2MDk1NzkxNDc0Ij4i2YTZitizINmH2YbYp9mDINio2LfYp9mC2KkgU0lNINmB2Yog2KfZhNis2YfYp9iyINin2YTZhNmI2K3Zii4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg2OTIwNTg1Njk1MTY5MDc4Ij4i2YTZitizINmH2YbYp9mDINio2LfYp9mC2KkgU0lNINmB2Yog2KfZhNmH2KfYqtmBLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTM3Mjc4NzEzODAyMzI3MjYxNSI+Itij2K/YrtmEINio2LfYp9mC2KkgU0lNLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zX2xvbmciIG1zZ2lkPSIzNTI2NTczMDk5MDE5MzE5NDcyIj4i2KjYt9in2YLYqSBTSU0g2YXZgdmC2YjYr9ipINij2Ygg2LrZitixINmC2KfYqNmE2Kkg2YTZhNmC2LHYp9ih2KkuINij2K/YrtmEINio2LfYp9mC2KkgU0lNLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNTA5NjE0OTY2NTEzODkxNjE4NCI+Itio2LfYp9mC2KkgU0lNINi62YrYsSDZgtin2KjZhNipINmE2YTYp9iz2KrYrtiv2KfZhS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iOTEwOTA0NjQzNDMzMTUxMzcxIj4i2KrZhSDYqti52LfZitmEINio2LfYp9mC2KkgU0lNINio2LTZg9mEINiv2KfYptmFLlxuINin2KrYtdmEINio2YXZgtiv2YUg2K7Yr9mF2Kkg2KfZhNmE2KfYs9mE2YPZiiDZhNmE2K3YtdmI2YQg2LnZhNmJINio2LfYp9mC2KkgU0lNINij2K7YsdmJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjUwOTk0MzkyNzc4MTkyMTUzOTkiPiLigI/ZhNmK2LPYqiDZh9mG2KfZgyDYqNi32KfZgtipIFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUxNjU5MTk2MDk1NzkxNDc0Ij4i4oCP2YTZitizINmH2YbYp9mDINio2LfYp9mC2KkgU0lNINmB2Yog2KfZhNis2YfYp9iyINin2YTZhNmI2K3Zii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg2OTIwNTg1Njk1MTY5MDc4Ij4i4oCP2YTZitizINmH2YbYp9mDINio2LfYp9mC2KkgU0lNINmB2Yog2KfZhNmH2KfYqtmBLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTM3Mjc4NzEzODAyMzI3MjYxNSI+IuKAj9ij2K/YrtmEINio2LfYp9mC2KkgU0lNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zX2xvbmciIG1zZ2lkPSIzNTI2NTczMDk5MDE5MzE5NDcyIj4i4oCP2KjYt9in2YLYqSBTSU0g2YXZgdmC2YjYr9ipINij2Ygg2LrZitixINmC2KfYqNmE2Kkg2YTZhNmC2LHYp9ih2KkuINij2K/YrtmEINio2LfYp9mC2KkgU0lNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNTA5NjE0OTY2NTEzODkxNjE4NCI+IuKAj9io2LfYp9mC2KkgU0lNINi62YrYsSDZgtin2KjZhNipINmE2YTYp9iz2KrYrtiv2KfZhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iOTEwOTA0NjQzNDMzMTUxMzcxIj4i4oCP2KrZhSDYqti52LfZitmEINio2LfYp9mC2KkgU0lNINio2LTZg9mEINiv2KfYptmFLlxuINin2KrYtdmEINio2YXZgtiv2YUg2K7Yr9mF2Kkg2KfZhNmE2KfYs9mE2YPZiiDZhNmE2K3YtdmI2YQg2LnZhNmJINio2LfYp9mC2KkgU0lNINij2K7YsdmJLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMDE1OTQ5MDUxNTI3NDY4ODYiPiLYstixINin2YTZhdmC2LfYuSDYp9mE2LXZiNiq2Yog2KfZhNiz2KfYqNmCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjYwODkyOTc2NTA0ODEyOTIzNjMiPiLYstixINin2YTZhdmC2LfYuSDYp9mE2LXZiNiq2Yog2KfZhNiq2KfZhNmKIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU5MDg4Nzg2NzgwMTI4MDAxIj4i2LLYsSDYp9mE2KXZitmC2KfZgSDYp9mE2YXYpNmC2KoiPC9zdHJpbmc+CkBAIC04NDgsMTUgKzg1NSwxNSBAQAogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1NjIzMTgzNzg3NjY5ODc2MDEiPiLYstixINin2YTYpdmK2YLYp9mBIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZW1lcmdlbmN5X2NhbGxzX29ubHkiIG1zZ2lkPSI2NzMzOTc4MzA0Mzg2MzY1NDA3Ij4i2YXZg9in2YTZhdin2Kog2LfZiNin2LHYpiDZgdmC2LciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX25ldHdvcmtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSIxNDMzODkyMjQ5ODYwMjg1MDEiPiLYp9mE2LTYqNmD2Kkg2YXYpNmF2ZHZhtipIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNzQ0MTc5NzMzOTk3NjIzMCI+Itio2LfYp9mC2KkgU0lNINmF2KTZhdmR2YbYqSDYqNmD2YjYryBQVUsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNzQ0MTc5NzMzOTk3NjIzMCI+IuKAj9io2LfYp9mC2KkgU0lNINmF2KTZhdmR2YbYqSDYqNmD2YjYryBQVUsuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI4MTI3OTE2MjU1MjQ1MTgxMDYzIj4i2LHYp9is2Lkg2K/ZhNmK2YQg2KfZhNmF2LPYqtiu2K/ZhSDYo9mIINin2KrYtdmEINio2K7Yr9mF2Kkg2KfZhNi52YXZhNin2KEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI4MDY2NjYwMTI5MjA2MDAxMDM5Ij4i2KjYt9in2YLYqSBTSU0g2YXYpNmF2ZHZhtipLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjU5NTMyMzIxNDA1Mjg4MTI2NCI+Itis2KfYsdmNINil2YTYutin2KEg2KrYo9mF2YrZhiDYqNi32KfZgtipIFNJTeKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iODA2NjY2MDEyOTIwNjAwMTAzOSI+IuKAj9io2LfYp9mC2KkgU0lNINmF2KTZhdmR2YbYqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI1OTUzMjMyMTQwNTI4ODEyNjQiPiLigI/YrNin2LHZjSDYpdmE2LrYp9ihINiq2KPZhdmK2YYg2KjYt9in2YLYqSBTSU3igKYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjY0ODE2MjM4MzAzNDQxMDcyMjIiPiLZhNmC2K8g2LHYs9mF2Kog2YbZgti0INil2YTYutin2KEg2KfZhNiq2KPZhdmK2YYg2KjYt9ix2YrZgtipINi62YrYsSDYtdit2YrYrdipIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INmF2LHYqS5cblxu2KfZhNix2KzYp9ihINil2LnYp9iv2Kkg2KfZhNmF2K3Yp9mI2YTYqSDYrtmE2KfZhCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYq9in2YbZitipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iMjcyNTk3MzI4NjIzOTM0NDU1NSI+ItmE2YLYryDZg9iq2KjYqiDZg9mE2YXYqSDYp9mE2YXYsdmI2LEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2YXYsdipINio2LTZg9mEINi62YrYsSDYtdit2YrYrS4gXG5cbtij2LnYryDYp9mE2YXYrdin2YjZhNipINiu2YTYp9mEIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INir2KfZhtmK2KkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNjIxNjY3MjcwNjU0NTY5Njk1NSI+ItmE2YLYryDZg9iq2KjYqiDYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INmF2LHYqSDYqNi02YPZhCDYutmK2LEg2LXYrdmK2K0uIFxuXG7Yo9i52K8g2KfZhNmF2K3Yp9mI2YTYqSDYrtmE2KfZhCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYq9in2YbZitipLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjkxOTE2MTE5ODQ2MjU0NjA4MjAiPiLZhNmC2K8g2LHYs9mF2Kog2YbZgti0INil2YTYutin2KEg2KfZhNiq2KPZhdmK2YYg2KjYtNmD2YQg2LrZitixINi12K3ZititIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INmF2LHYqS4g2KjYudivIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INmF2YYg2KfZhNmF2K3Yp9mI2YTYp9iqINi62YrYsSDYp9mE2YbYp9is2K3YqSDYp9mE2KPYrtix2YnYjCDYs9iq2Y/Yt9in2YTYqCDYqNil2YTYutin2KEg2KrYo9mF2YrZhiDYp9mE2KzZh9in2LIg2KfZhNmE2YjYrdmKINio2KfYs9iq2K7Yr9in2YUg2YXYudmE2YjZhdin2Kog2KrYs9is2YrZhCDYp9mE2K/YrtmI2YQg2KXZhNmJIEdvb2dsZS5cblxuINij2LnYryDYp9mE2YXYrdin2YjZhNipINiu2YTYp9mEIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INir2KfZhtmK2KkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI1OTAyMjc1NTk3NjM3NjI3NTEiPiLZhNmC2K8g2LHYs9mF2Kog2YbZgti0INil2YTYutin2KEg2KfZhNiq2KPZhdmK2YYg2KjYtNmD2YQg2LrZitixINi12K3ZititIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INmF2LHYqS4g2KjYudivIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INmF2YYg2KfZhNmF2K3Yp9mI2YTYp9iqINi62YrYsSDYp9mE2YbYp9is2K3YqSDYp9mE2KPYrtix2YnYjCDYs9iq2Y/Yt9in2YTYqCDYqNil2YTYutin2KEg2KrYo9mF2YrZhiDYp9mE2YfYp9iq2YEg2KjYp9iz2KrYrtiv2KfZhSDZhdi52YTZiNmF2KfYqiDYqtiz2KzZitmEINin2YTYr9iu2YjZhCDYpdmE2YkgR29vZ2xlLlxuXG4g2KPYudivINin2YTZhdit2KfZiNmE2Kkg2K7ZhNin2YQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g2KvYp9mG2YrYqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI2MjE2NjcyNzA2NTQ1Njk2OTU1Ij4i4oCP2YTZgtivINmD2KrYqNiqINix2YXYsiBQSU4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2YXYsdipINio2LTZg9mEINi62YrYsSDYtdit2YrYrS4gXG5cbtij2LnYryDYp9mE2YXYrdin2YjZhNipINiu2YTYp9mEIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INir2KfZhtmK2KkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iOTE5MTYxMTk4NDYyNTQ2MDgyMCI+IuKAj9mE2YLYryDYsdiz2YXYqiDZhtmC2LQg2KXZhNi62KfYoSDYp9mE2KrYo9mF2YrZhiDYqNi02YPZhCDYutmK2LEg2LXYrdmK2K0gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2YXYsdipLiDYqNi52K8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g2YXZhiDYp9mE2YXYrdin2YjZhNin2Kog2LrZitixINin2YTZhtin2KzYrdipINin2YTYo9iu2LHZidiMINiz2KrZj9i32KfZhNioINio2KXZhNi62KfYoSDYqtij2YXZitmGINin2YTYrNmH2KfYsiDYp9mE2YTZiNit2Yog2KjYp9iz2KrYrtiv2KfZhSDZhdi52YTZiNmF2KfYqiDYqtiz2KzZitmEINin2YTYr9iu2YjZhCDYpdmE2YkgR29vZ2xlLlxuXG4g2KPYudivINin2YTZhdit2KfZiNmE2Kkg2K7ZhNin2YQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g2KvYp9mG2YrYqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfZ2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjU5MDIyNzU1OTc2Mzc2Mjc1MSI+IuKAj9mE2YLYryDYsdiz2YXYqiDZhtmC2LQg2KXZhNi62KfYoSDYp9mE2KrYo9mF2YrZhiDYqNi02YPZhCDYutmK2LEg2LXYrdmK2K0gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2YXYsdipLiDYqNi52K8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g2YXZhiDYp9mE2YXYrdin2YjZhNin2Kog2LrZitixINin2YTZhtin2KzYrdipINin2YTYo9iu2LHZidiMINiz2KrZj9i32KfZhNioINio2KXZhNi62KfYoSDYqtij2YXZitmGINin2YTZh9in2KrZgSDYqNin2LPYqtiu2K/Yp9mFINmF2LnZhNmI2YXYp9iqINiq2LPYrNmK2YQg2KfZhNiv2K7ZiNmEINil2YTZiSBHb29nbGUuXG5cbiDYo9i52K8g2KfZhNmF2K3Yp9mI2YTYqSDYrtmE2KfZhCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDYq9in2YbZitipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2MTI4MTA2Mzk5NzQ1NzU1NjA0Ij4i2YTZgtivINit2KfZiNmE2Kog2KXZhNi62KfYoSDYqtij2YXZitmGINin2YTYrNmH2KfYsiDYp9mE2YTZiNit2YogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2YXZhiDYp9mE2YXYsdin2KouINio2LnYryA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDZhdmGINin2YTZhdit2KfZiNmE2KfYqiDYutmK2LEg2KfZhNmG2KfYrNit2KnYjCDYs9iq2KrZhSDYpdi52KfYr9ipINiq2LnZitmK2YYg2KfZhNis2YfYp9iyINin2YTZhNmI2K3ZiiDYpdmE2Ykg2KfZhNil2LnYr9in2K/Yp9iqINin2YTYp9mB2KrYsdin2LbZitipINmE2YTZhdi12YbYuSDZiNiz2YrYqtmFINmB2YLYryDYrNmF2YrYuSDYqNmK2KfZhtin2Kog2KfZhNmF2LPYqtiu2K/ZhS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2MDM1NjUxNDIxNTY4MjY1NjUiPiLZhNmC2K8g2K3Yp9mI2YTYqiDYpdmE2LrYp9ihINiq2KPZhdmK2YYg2KfZhNmH2KfYqtmBIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INmF2YYg2KfZhNmF2LHYp9iqLiDYqNi52K8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g2YXZhiDYp9mE2YXYrdin2YjZhNin2Kog2LrZitixINin2YTZhtin2KzYrdip2Iwg2LPYqtiq2YUg2KXYudin2K/YqSDYqti52YrZitmGINin2YTZh9in2KrZgSDYpdmE2Ykg2KfZhNil2LnYr9in2K/Yp9iqINin2YTYp9mB2KrYsdin2LbZitipINmE2YTZhdi12YbYuSDZiNiz2YrYqtmFINmB2YLYryDYrNmF2YrYuSDYqNmK2KfZhtin2Kog2KfZhNmF2LPYqtiu2K/ZhS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyODA4NzM1MTY0OTM5MzQzNjUiPiLZhNmC2K8g2K3Yp9mI2YTYqiDYpdmE2LrYp9ihINiq2KPZhdmK2YYg2KfZhNis2YfYp9iyINin2YTZhNmI2K3ZiiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g2YXZhiDYp9mE2YXYsdin2Kog2KjYtNmD2YQg2LrZitixINi12K3ZititLiDYs9mK2KrZhSDYp9mE2KLZhiDYpdi52KfYr9ipINiq2LnZitmK2YYg2KfZhNis2YfYp9iyINin2YTZhNmI2K3ZiiDYpdmE2Ykg2KfZhNil2LnYr9in2K/Yp9iqINin2YTYp9mB2KrYsdin2LbZitipINmE2YTZhdi12YbYuS4iPC9zdHJpbmc+CkBAIC04NjUsMTIgKzg3MiwxMiBAQAogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9IjI2MjY5OTk0NDk2MTA2OTU5MzAiPiLZh9mEINmG2LPZitiqINin2YTZhtmF2LfYnyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2ZvcmdvdF9wYXR0ZXJuIiBtc2dpZD0iMjU4ODUyMTUwMTE2NjAzMjc0NyI+Itil2YTYutin2KEg2KrYo9mF2YrZhiDYp9mE2K3Ys9in2KgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjI3NTEzNjg2MDUyODcyODg4MDgiPiLZhdit2KfZiNmE2KfYqiDYp9mE2YbZgti0INmD2KvZitix2Kkg2KzYr9mL2KciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTMxODE2MjU2MTAwNzA3Nzg0Ij4i2YTYpdmE2LrYp9ihINin2YTYqtij2YXZitmG2Iwg2LPYrNmR2YQg2KfZhNiv2K7ZiNmEINio2K3Ys9in2KjZgyDZgdmKIEdvb2dsZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTMxODE2MjU2MTAwNzA3Nzg0Ij4i4oCP2YTYpdmE2LrYp9ihINin2YTYqtij2YXZitmG2Iwg2LPYrNmR2YQg2KfZhNiv2K7ZiNmEINio2K3Ys9in2KjZgyDZgdmKIEdvb2dsZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iODg0Njg4MTQyNDEwNjQ4NDQ0NyI+Itin2LPZhSDYp9mE2YXYs9iq2K7Yr9mFICjYp9mE2KjYsdmK2K8g2KXZhNmD2KrYsdmI2YbZiikiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iNTk1ODAyODM4Mzk1NDczODUyOCI+ItmD2YTZhdipINin2YTZhdix2YjYsSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI3MTMwODkzNjk0Nzk1Nzg2MzAwIj4i2KrYs9is2YrZhCDYp9mE2K/YrtmI2YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iMTM2NDA1MTQ3MzM0NzQ4NTkwOCI+Itin2LPZhSDYp9mE2YXYs9iq2K7Yr9mFINi62YrYsSDYtdit2YrYrSDYo9mIINmD2YTZhdipINin2YTZhdix2YjYsSDYutmK2LEg2LXYrdmK2K3YqS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSIxNjk2OTI0NzYzNjkwMzc5MDczIj4i2YfZhCDZhtiz2YrYqiDYp9iz2YUg2KfZhNmF2LPYqtiu2K/ZhSDYo9mIINmD2YTZhdipINin2YTZhdix2YjYsdifXG7Yp9mG2KrZgtmEINil2YTZiSAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iMTY5NjkyNDc2MzY5MDM3OTA3MyI+IuKAj9mH2YQg2YbYs9mK2Kog2KfYs9mFINin2YTZhdiz2KrYrtiv2YUg2KPZiCDZg9mE2YXYqSDYp9mE2YXYsdmI2LHYn1xu2KfZhtiq2YLZhCDYpdmE2YkgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iNzExNDYyNzM1MTI4NjkzMzg2NyI+Itis2KfYsdmNINin2YTYqtit2YLZgi4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdW5sb2NrX2xhYmVsIiBtc2dpZD0iNzM3NDQwNDgzMjIwNjY3MDU0Ij4i2KXZhNi62KfYoSDYqtij2YXZitmGIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zb3VuZF9vbl9sYWJlbCIgbXNnaWQ9IjkwNjg4Nzc1NzY1MTM0MjU5NzAiPiLYqti02LrZitmEINin2YTYtdmI2KoiPC9zdHJpbmc+CkBAIC04NzksNyArODg2LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYWNjZXNzX3BhdHRlcm5fY2xlYXJlZCIgbXNnaWQ9IjU1ODM0Nzk3MjEwMDE2Mzk1NzkiPiLYqtmFINmF2K3ZiCDYp9mE2YbZhdi3Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9jZWxsX2FkZGVkIiBtc2dpZD0iNjc1NjAzMTIwODM1OTI5MjQ4NyI+Itiq2YXYqiDYpdi22KfZgdipINin2YTYrtmE2YrYqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYWNjZXNzX3BhdHRlcm5fZGV0ZWN0ZWQiIG1zZ2lkPSI0OTg4NzMwODk1NTU0MDU3MDU4Ij4i2KfZg9iq2YXZhCDYp9mE2YbZhdi3Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiIlMSRzLiDYp9mE2KPYr9in2KkgJTIkZCDZhdmGICUzJGQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiLigI8lMSRzLiDYp9mE2KPYr9in2KkgJTIkZCDZhdmGICUzJGQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9hZGRfd2lkZ2V0IiBtc2dpZD0iODI3MzI3NzA1ODcyNDkyNDY1NCI+Itil2LbYp9mB2Kkg2KPYr9in2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZW1wdHlfc2xvdCIgbXNnaWQ9IjEyODE1MDU3MDMzMDc5MzA3NTciPiLZgdin2LHYutipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLYqtmFINiq2YjYs9mK2Lkg2YXZhti32YLYqSDYpdmE2LrYp9ihINin2YTZgtmB2YQuIjwvc3RyaW5nPgpAQCAtODk2LDcgKzkwMyw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiLYpdmE2LrYp9ihINin2YTZgtmB2YQg2KjYp9iz2KrYrtiv2KfZhSDYp9mE2KrZhdix2YrYsS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fdW5sb2NrIiBtc2dpZD0iMTQ5MDg0MDcwNjA3NTI0NjYxMiI+Itil2YTYutin2KEg2KfZhNmC2YHZhCDYqNin2LPYqtiu2K/Yp9mFINin2YTZhtmC2LQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9mYWNlX3VubG9jayIgbXNnaWQ9IjQ4MTcyODI1NDMzNTE3MTg1MzUiPiLYqtij2YXZitmGINin2YTYrNmH2KfYsiDYqNin2YTZiNis2YcuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9waW5fdW5sb2NrIiBtc2dpZD0iMjQ2OTY4NzExMTc4NDAzNTA0NiI+Itil2YTYutin2KEg2KfZhNmC2YHZhCDYqNin2LPYqtiu2K/Yp9mFINix2YLZhSDYp9mE2KrYudix2YrZgSDYp9mE2LTYrti12YouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9waW5fdW5sb2NrIiBtc2dpZD0iMjQ2OTY4NzExMTc4NDAzNTA0NiI+IuKAj9il2YTYutin2KEg2KfZhNmC2YHZhCDYqNin2LPYqtiu2K/Yp9mFINix2YXYsiBQSU4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXNzd29yZF91bmxvY2siIG1zZ2lkPSI3Njc1Nzc3NjIzOTEyMTU1MDg5Ij4i2KXZhNi62KfYoSDYp9mE2YLZgdmEINio2KfYs9iq2K7Yr9in2YUg2YPZhNmF2Kkg2KfZhNmF2LHZiNixLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl9hcmVhIiBtc2dpZD0iNzY3OTg5MTMyNDUwOTU5NzkwNCI+ItmF2YbYt9mC2Kkg2KfZhNmG2YLYtC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4i2YXZhti32YLYqSDYp9mE2KrZhdix2YrYsS4iPC9zdHJpbmc+CkBAIC05MTAsOCArOTE3LDggQEAKICAgICA8c3RyaW5nIG5hbWU9ImhvdXJfYW1wbSIgbXNnaWQ9IjQ1ODQzMzgwODM1MjkzNTU5ODIiPiI8eGxpZmY6ZyBpZD0iSE9VUiI+JS1sPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJBTVBNIj4lUDwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJob3VyX2NhcF9hbXBtIiBtc2dpZD0iMjA4MzQ2NTk5Mjk0MDQ0NDM2NiI+Ijx4bGlmZjpnIGlkPSJIT1VSIj4lLWw8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IkFNUE0iPiVwPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X2ZhaWxlZCIgbXNnaWQ9IjU0MTAyNzAzMjkxMTQyMTIwNDEiPiLYo9iu2YHZgiDYp9iu2KrYqNin2LEg2KfZhNmF2LXZhti5Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3Rfbm90X3N5c3RlbSIgbXNnaWQ9IjQ0MzUyMDE2NTY3NjcyNzY3MjMiPiLYpdis2LHYp9ihIEZBQ1RPUllfVEVTVCDYutmK2LEg2YXYqtin2K0g2LPZiNmJINmE2YTYrdiy2YUg2KfZhNmF2KvYqNiq2Kkg2YHZiiAvc3lzdGVtL2FwcC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub19hY3Rpb24iIG1zZ2lkPSI4NzI5OTE4NzQ3OTk5OTg1NjEiPiLZhNmFINmK2KrZhSDYp9mE2LnYq9mI2LEg2LnZhNmJINij2YrYqSDYrdiy2YXYqSDYqtmI2YHYsSDYpdis2LHYp9ihIEZBQ1RPUllfVEVTVC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub3Rfc3lzdGVtIiBtc2dpZD0iNDQzNTIwMTY1Njc2NzI3NjcyMyI+IuKAj9il2KzYsdin2KEgRkFDVE9SWV9URVNUINi62YrYsSDZhdiq2KfYrSDYs9mI2Ykg2YTZhNit2LLZhSDYp9mE2YXYq9io2KrYqSDZgdmKIC9zeXN0ZW0vYXBwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X25vX2FjdGlvbiIgbXNnaWQ9Ijg3Mjk5MTg3NDc5OTk5ODU2MSI+IuKAj9mE2YUg2YrYqtmFINin2YTYudir2YjYsSDYudmE2Ykg2KPZitipINit2LLZhdipINiq2YjZgdixINil2KzYsdin2KEgRkFDVE9SWV9URVNULiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X3JlYm9vdCIgbXNnaWQ9IjYzMjAxNjgyMDMwNTA3OTE2NDMiPiLYpdi52KfYr9ipINiq2LTYutmK2YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSIxOTg3NDgzOTc3ODM0NjAzODcyIj4i2KrYudix2LYg2KfZhNi12YHYrdipINmB2YogXCI8eGxpZmY6ZyBpZD0iVElUTEUiPiVzPC94bGlmZjpnPlwiOiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZV9kZWZhdWx0IiBtc2dpZD0iNjk2MTkwMzIxMzcyOTY2NzU3MyI+Itis2KfZgdinINiz2YPYsdmK2KjYqiI8L3N0cmluZz4KQEAgLTk0MCw3ICs5NDcsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYXJlYSIgbXNnaWQ9IjM1NDc0MDkwNTA4ODk5NTI0MjMiPiLYp9mE2YXZhti32YLYqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2VtaXJhdGUiIG1zZ2lkPSIyODkzODgwOTc4ODM1Njk4ODE4Ij4i2KfZhNil2YXYp9ix2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iMzc3NTI2NTc3NTQwNTEwNjk4MyI+ItmC2LHYp9ih2Kkg2KXYtNin2LHYp9iqINmI2YrYqCDZiNin2YTYs9is2YQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9Ijg0NjIzNzgyMjY2MDA0Mzk2NTgiPiLZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjZgtix2KfYodipINiz2KzZhCDYrNmF2YrYuSDYudmG2KfZiNmK2YYgVVJMINin2YTYqtmKINiy2KfYsdmH2Kcg2KfZhNmF2KrYtdmB2K3YjCDZiNis2YXZiti5INin2YTYpdi02KfYsdin2Kog2KfZhNmF2LHYrNi52YrYqSDZgdmKINin2YTZhdiq2LXZgditLiDZhdmE2KfYrdi42Kk6INmE2Kcg2YrYrNmI2LIg2YHYsdi2INmH2LDYpyDYp9mE2KXYsNmGINmF2YYg2YLZkNio2YQg2YXYqti12YHYrdin2Kog2KzZh9ipINiu2KfYsdis2YrYqSDYo9mIINiq2LfYqNmK2YLYp9iqINij2K7YsdmJINiq2KrZiNmB2LEg2KjZh9inINil2YXZg9in2YbZitin2Kog2KrYtdmB2K0g2KfZhNmI2YrYqC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9Ijg0NjIzNzgyMjY2MDA0Mzk2NTgiPiLigI/ZhNmE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIg2KjZgtix2KfYodipINiz2KzZhCDYrNmF2YrYuSDYudmG2KfZiNmK2YYgVVJMINin2YTYqtmKINiy2KfYsdmH2Kcg2KfZhNmF2KrYtdmB2K3YjCDZiNis2YXZiti5INin2YTYpdi02KfYsdin2Kog2KfZhNmF2LHYrNi52YrYqSDZgdmKINin2YTZhdiq2LXZgditLiDZhdmE2KfYrdi42Kk6INmE2Kcg2YrYrNmI2LIg2YHYsdi2INmH2LDYpyDYp9mE2KXYsNmGINmF2YYg2YLZkNio2YQg2YXYqti12YHYrdin2Kog2KzZh9ipINiu2KfYsdis2YrYqSDYo9mIINiq2LfYqNmK2YLYp9iqINij2K7YsdmJINiq2KrZiNmB2LEg2KjZh9inINil2YXZg9in2YbZitin2Kog2KrYtdmB2K0g2KfZhNmI2YrYqC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9IjM3MTQ3ODUxNjUyNzMzMTQ0OTAiPiLZg9iq2KfYqNipINil2LTYp9ix2KfYqiDZiNmK2Kgg2YjYp9mE2LPYrNmEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2ODI1NTI3NDY5MTQ1NzYwOTIyIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYudiv2YrZhCDYs9is2YQg2KfZhNmF2KrYtdmB2K0g2KPZiCDYp9mE2KXYtNin2LHYp9iqINin2YTZhdix2KzYudmK2Kkg2KfZhNmF2K7YstmG2Kkg2LnZhNmJINis2YfYp9iy2YMg2KfZhNmE2YjYrdmKLiDZiNmC2K8g2YrYqtmK2K0g2YfYsNinINmE2YTYqti32KjZitmCINmF2K3ZiCDYqNmK2KfZhtin2Kog2KfZhNmF2KrYtdmB2K0g2KPZiCDYqti52K/ZitmE2YfYpy4g2YXZhNin2K3YuNipOiDZhNinINmK2KzZiNiyINmB2LHYtiDZh9iw2Kcg2KfZhNil2LDZhiDZhdmGINmC2ZDYqNmEINmF2KrYtdmB2K3Yp9iqINis2YfYp9iqINiu2KfYsdis2YrYqSDYo9mIINiq2LfYqNmK2YLYp9iqINij2K7YsdmJINio2YfYpyDYpdmF2YPYp9mG2YrYp9iqINiq2LXZgditINin2YTZiNmK2KguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODQ5NzM4OTUzMTAxNDE4NTUwOSI+ItmE2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiDYqNiq2LnYr9mK2YQg2LPYrNmEINin2YTZhdiq2LXZgditINij2Ygg2KfZhNil2LTYp9ix2KfYqiDYp9mE2YXYsdis2LnZitipINin2YTZhdiu2LLZhtipINi52YTZiSDZh9in2KrZgdmDLiDZiNmC2K8g2YrYqtmK2K0g2YfYsNinINmE2YTYqti32KjZitmCINmF2K3ZiCDYqNmK2KfZhtin2Kog2KfZhNmF2KrYtdmB2K0g2KPZiCDYqti52K/ZitmE2YfYpy4g2YXZhNin2K3YuNipOiDZhNinINmK2KzZiNiyINmB2LHYtiDZh9iw2Kcg2KfZhNil2LDZhiDZhdmGINmC2ZDYqNmEINmF2KrYtdmB2K3Yp9iqINis2YfYp9iqINiu2KfYsdis2YrYqSDYo9mIINiq2LfYqNmK2YLYp9iqINij2K7YsdmJINio2YfYpyDYpdmF2YPYp9mG2YrYp9iqINiq2LXZgditINin2YTZiNmK2KguIjwvc3RyaW5nPgpAQCAtOTc3LDkgKzk4NCw5IEBACiAgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX2NsZWFyIiBtc2dpZD0iMTMzMDI4MTk5MDk1MTgzMzAzMyI+ItmF2K3ZiCDYt9mE2Kgg2KfZhNio2K3YqyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fc3VibWl0IiBtc2dpZD0iMjY4ODQ1MDEzMzI5Nzk4MzU0MiI+Itil2LHYs9in2YQg2LfZhNioINin2YTYqNit2KsiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX3ZvaWNlIiBtc2dpZD0iMjQ1MzIwMzY5NTY3NDk5NDQ0MCI+Itin2YTYqNit2Ksg2KfZhNi12YjYqtmKIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ190aXRsZSIgbXNnaWQ9Ijc0NjA2OTQwNzAzMDk3MzAxNDkiPiLZh9mEINiq2LHZitivINiq2YXZg9mK2YYg2YXZitiy2KkgRXhwbG9yZSBieSBUb3VjaNifIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ19tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NjU1ODg3NTM5MDg5OTEwNTc3Ij4i2YrYsdmK2K8gPHhsaWZmOmcgaWQ9IkFDQ0VTU0lCSUxJVFlfU0VSVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiDYqtmF2YPZitmGINmF2YrYstipIEV4cGxvcmUgYnkgVG91Y2guINi52YbYryDYqti02LrZitmEINmF2YrYstipIEV4cGxvcmUgYnkgVG91Y2jYjCDYs9mK2YPZiNmGINio2KXZhdmD2KfZhtmDINiz2YXYp9i5INij2Ygg2YXYtNin2YfYr9ipINij2YjYtdin2YEg2YTZhdinINiq2K3YqiDYpdi12KjYudmDINij2Ygg2KXYrNix2KfYoSDYpdmK2YXYp9ih2KfYqiDZhNmE2KrZgdin2LnZhCDZhdi5INin2YTYrNmH2KfYsiDYp9mE2YTZiNit2YouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ19tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjcwODE5OTY3Mjg1MjM3MzE5NSI+ItmK2LHZitivIDx4bGlmZjpnIGlkPSJBQ0NFU1NJQklMSVRZX1NFUlZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4g2KrZhdmD2YrZhiDZhdmK2LLYqSBFeHBsb3JlIGJ5IFRvdWNoLiDYudmG2K8g2KrYtNi62YrZhCDZhdmK2LLYqSBFeHBsb3JlIGJ5IFRvdWNo2Iwg2LPZitmD2YjZhiDYqNil2YXZg9in2YbZgyDYs9mF2KfYuSDYo9mIINmF2LTYp9mH2K/YqSDYo9mI2LXYp9mBINmE2YXYpyDYqtit2Kog2KXYtdio2LnZgyDYo9mIINil2KzYsdin2KEg2KXZitmF2KfYodin2Kog2YTZhNiq2YHYp9i52YQg2YXYuSDYp9mE2YfYp9iq2YEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ190aXRsZSIgbXNnaWQ9Ijc0NjA2OTQwNzAzMDk3MzAxNDkiPiLigI/Zh9mEINiq2LHZitivINiq2YXZg9mK2YYg2YXZitiy2KkgRXhwbG9yZSBieSBUb3VjaNifIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ19tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NjU1ODg3NTM5MDg5OTEwNTc3Ij4i4oCP2YrYsdmK2K8gPHhsaWZmOmcgaWQ9IkFDQ0VTU0lCSUxJVFlfU0VSVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiDYqtmF2YPZitmGINmF2YrYstipIEV4cGxvcmUgYnkgVG91Y2guINi52YbYryDYqti02LrZitmEINmF2YrYstipIEV4cGxvcmUgYnkgVG91Y2jYjCDYs9mK2YPZiNmGINio2KXZhdmD2KfZhtmDINiz2YXYp9i5INij2Ygg2YXYtNin2YfYr9ipINij2YjYtdin2YEg2YTZhdinINiq2K3YqiDYpdi12KjYudmDINij2Ygg2KXYrNix2KfYoSDYpdmK2YXYp9ih2KfYqiDZhNmE2KrZgdin2LnZhCDZhdi5INin2YTYrNmH2KfYsiDYp9mE2YTZiNit2YouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ19tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjcwODE5OTY3Mjg1MjM3MzE5NSI+IuKAj9mK2LHZitivIDx4bGlmZjpnIGlkPSJBQ0NFU1NJQklMSVRZX1NFUlZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4g2KrZhdmD2YrZhiDZhdmK2LLYqSBFeHBsb3JlIGJ5IFRvdWNoLiDYudmG2K8g2KrYtNi62YrZhCDZhdmK2LLYqSBFeHBsb3JlIGJ5IFRvdWNo2Iwg2LPZitmD2YjZhiDYqNil2YXZg9in2YbZgyDYs9mF2KfYuSDYo9mIINmF2LTYp9mH2K/YqSDYo9mI2LXYp9mBINmE2YXYpyDYqtit2Kog2KXYtdio2LnZgyDYo9mIINil2KzYsdin2KEg2KXZitmF2KfYodin2Kog2YTZhNiq2YHYp9i52YQg2YXYuSDYp9mE2YfYp9iq2YEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ib25lTW9udGhEdXJhdGlvblBhc3QiIG1zZ2lkPSI3Mzk2Mzg0NTA4OTUzNzc5OTI1Ij4i2YLYqNmEINi02YfYsSDZiNin2K3YryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImJlZm9yZU9uZU1vbnRoRHVyYXRpb25QYXN0IiBtc2dpZD0iOTA5MTM0NTQ2ODM2NDk5ODI2Ij4i2YLYqNmEINi02YfYsSDZiNin2K3YryI8L3N0cmluZz4KICAgPHBsdXJhbHMgbmFtZT0ibnVtX3NlY29uZHNfYWdvIj4KQEAgLTEwOTUsNyArMTEwMiw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJwYXN0ZSIgbXNnaWQ9IjU2Mjk4ODA4MzY4MDUwMzY0MzMiPiLZhNi12YIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJyZXBsYWNlIiBtc2dpZD0iNTc4MTY4NjA1OTA2MzE0ODkzMCI+Itin2LPYqtio2K/Yp9mELi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlIiBtc2dpZD0iNjA5ODY4NDg0NDAyMTY5Nzc4OSI+Itit2LDZgSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvcHlVcmwiIG1zZ2lkPSIyNTM4MjExNTc5NTk2MDY3NDAyIj4i2YbYs9iuINi52YbZiNin2YYgVVJMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29weVVybCIgbXNnaWQ9IjI1MzgyMTE1Nzk1OTYwNjc0MDIiPiLigI/Zhtiz2K4g2LnZhtmI2KfZhiBVUkwiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RUZXh0TW9kZSIgbXNnaWQ9IjEwMTg2OTE4MTUxNDMxNjUzMjYiPiLYqtit2K/ZitivINmG2LUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ0ZXh0U2VsZWN0aW9uQ0FCVGl0bGUiIG1zZ2lkPSI1MjM2ODUwMzk0MzcwODIwMzU3Ij4i2KrYrdiv2YrYryDYp9mE2YbYtSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFkZFRvRGljdGlvbmFyeSIgbXNnaWQ9IjQzNTIxNjE1MzQ1MTAwNTc4NzQiPiLYpdi22KfZgdipINil2YTZiSDYp9mE2YLYp9mF2YjYsyI8L3N0cmluZz4KQEAgLTExMTcsOSArMTEyNCw5IEBACiAgICAgPHN0cmluZyBuYW1lPSJ3aGljaEFwcGxpY2F0aW9uIiBtc2dpZD0iNDUzMzE4NTk0NzA2NDc3MzM4NiI+Itil2YPZhdin2YQg2KfZhNil2KzYsdin2KEg2KjYp9iz2KrYrtiv2KfZhSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IndoaWNoSG9tZUFwcGxpY2F0aW9uIiBtc2dpZD0iNDYxNjQyMDE3MjcyNzMyNjc4MiI+Itiq2K3Yr9mK2K8g2KrYt9io2YrZgiDYp9mE2LTYp9i02Kkg2KfZhNix2KbZitiz2YrYqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c1VzZSIgbXNnaWQ9IjQ1ODMwMTgzNjgwMDA2MTA0MzgiPiLYp9mE2KfYs9iq2K7Yr9in2YUg2KjYtNmD2YQg2KfZgdiq2LHYp9i22Yog2YTZh9iw2Kcg2KfZhNil2KzYsdin2KEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY2xlYXJEZWZhdWx0SGludE1zZyIgbXNnaWQ9IjMyNTI1ODQ2ODk1MTIwNzcyNTciPiLZitmF2YPZhtmDINmF2K3ZiCDYp9mE2KXYudiv2KfYr9in2Kog2KfZhNin2YHYqtix2KfYttmK2Kkg2YHZiiDYpdi52K/Yp9iv2KfYqiDYp9mE2YbYuNin2YUgJmd0OyDYp9mE2KrYt9io2YrZgtin2KogJmd0OyDZhdinINiq2YUg2KrZhtiy2YrZhNmHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNsZWFyRGVmYXVsdEhpbnRNc2ciIG1zZ2lkPSIzMjUyNTg0Njg5NTEyMDc3MjU3Ij4i4oCP2YrZhdmD2YbZgyDZhdit2Ygg2KfZhNil2LnYr9in2K/Yp9iqINin2YTYp9mB2KrYsdin2LbZitipINmB2Yog2KXYudiv2KfYr9in2Kog2KfZhNmG2LjYp9mFICZndDsg2KfZhNiq2LfYqNmK2YLYp9iqICZndDsg2YXYpyDYqtmFINiq2YbYstmK2YTZhy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VBY3Rpdml0eSIgbXNnaWQ9Ijc0ODY4NzYxNDc3NTE4MDMzMzMiPiLYp9iu2KrZitin2LEg2KXYrNix2KfYoSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNob29zZVVzYkFjdGl2aXR5IiBtc2dpZD0iNjg5NDc0ODQxNjA3MzU4MzUwOSI+Itin2K7YqtmK2KfYsSDYo9it2K8g2KfZhNiq2LfYqNmK2YLYp9iqINmE2KzZh9in2LIgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlVXNiQWN0aXZpdHkiIG1zZ2lkPSI2ODk0NzQ4NDE2MDczNTgzNTA5Ij4i4oCP2KfYrtiq2YrYp9ixINij2K3YryDYp9mE2KrYt9io2YrZgtin2Kog2YTYrNmH2KfYsiBVU0IiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJub0FwcGxpY2F0aW9ucyIgbXNnaWQ9IjI5OTE4MTQyNzM5MzY1MDQ2ODkiPiLZhNmK2LPYqiDZh9mG2KfZgyDYqti32KjZitmC2KfYqiDZitmF2YPZhtmH2Kcg2KrZhtmB2YrYsCDZh9iw2Kcg2KfZhNil2KzYsdin2KEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWVycl90aXRsZSIgbXNnaWQ9IjE5MDU4MDA1NjAzMTcxMzc3NTIiPjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWVycl9hcHBsaWNhdGlvbiIgbXNnaWQ9IjkzMjYyODQ4ODAxMzA5Mjc3NiI+ItmE2YTYo9iz2YHYjCDYqtmI2YLZgSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KQEAgLTExMzgsMTAgKzExNDUsMTAgQEAKICAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX29yaWdpbmFsIiBtc2dpZD0iMTg4MTAyMDIzMDIxNjY4NjgzIj4i2KrZhSDYqti02LrZitmEIDx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4g2YXZhiDYp9mE2KPYtdmELiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9zY2FsZSIgbXNnaWQ9IjMyMDI5NTU2Njc2NzU5NDQ0OTkiPiLYqtiv2LHYrCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9zaG93IiBtc2dpZD0iNDAxMzg3ODg3NjQ4NjY1NTg5MiI+Itin2YTYpdi42YfYp9ixINiv2KfYptmF2YvYpyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9oaW50IiBtc2dpZD0iMTA2NDUyNDA4NDU0MzMwNDQ1OSI+ItmK2YXZg9mG2YMg2KXYudin2K/YqSDYqtmF2YPZitmGINmH2LDYpyDZgdmKINil2LnYr9in2K/Yp9iqINin2YTZhti42KfZhSAmZ3Q7INin2YTYqti32KjZitmC2KfYqiAmZ3Q7INmF2Kcg2KrZhSDYqtmG2LLZitmE2YcuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic212X2FwcGxpY2F0aW9uIiBtc2dpZD0iMzMwNzIwOTE5MjE1NTQ0MjgyOSI+Itin2YbYqtmH2YMg2KfZhNiq2LfYqNmK2YIgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiAo2KfZhNi52YXZhNmK2KkgPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUyJHM8L3hsaWZmOmc+KSDYs9mK2KfYs9ipIFN0cmljdE1vZGUg2KfZhNmF2YHYsdmI2LbYqSDYsNin2KrZitmL2KcuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic212X3Byb2Nlc3MiIG1zZ2lkPSI1MTIwMzk3MDEyMDQ3NDYyNDQ2Ij4i2KfZhtiq2YfZg9iqINin2YTYudmF2YTZitipIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDYs9mK2KfYs9ipIFN0cmljdE1vZGUg2KfZhNmF2YHYsdmI2LbYqSDYsNin2KrZitmL2KcuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfdGl0bGUiIG1zZ2lkPSIxNTg0MTkyMjg1NDQxNDA1NzQ2Ij4i2KzYp9ix2Y0g2KrYsdmC2YrYqSBBbmRyb2lkLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX2hpbnQiIG1zZ2lkPSIxMDY0NTI0MDg0NTQzMzA0NDU5Ij4i4oCP2YrZhdmD2YbZgyDYpdi52KfYr9ipINiq2YXZg9mK2YYg2YfYsNinINmB2Yog2KXYudiv2KfYr9in2Kog2KfZhNmG2LjYp9mFICZndDsg2KfZhNiq2LfYqNmK2YLYp9iqICZndDsg2YXYpyDYqtmFINiq2YbYstmK2YTZhy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXZfYXBwbGljYXRpb24iIG1zZ2lkPSIzMzA3MjA5MTkyMTU1NDQyODI5Ij4i4oCP2KfZhtiq2YfZgyDYp9mE2KrYt9io2YrZgiA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+ICjYp9mE2LnZhdmE2YrYqSA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTIkczwveGxpZmY6Zz4pINiz2YrYp9iz2KkgU3RyaWN0TW9kZSDYp9mE2YXZgdix2YjYttipINiw2KfYqtmK2YvYpy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXZfcHJvY2VzcyIgbXNnaWQ9IjUxMjAzOTcwMTIwNDc0NjI0NDYiPiLigI/Yp9mG2KrZh9mD2Kog2KfZhNi52YXZhNmK2KkgPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+INiz2YrYp9iz2KkgU3RyaWN0TW9kZSDYp9mE2YXZgdix2YjYttipINiw2KfYqtmK2YvYpy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ190aXRsZSIgbXNnaWQ9IjE1ODQxOTIyODU0NDE0MDU3NDYiPiLigI/YrNin2LHZjSDYqtix2YLZitipIEFuZHJvaWQuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19hcGsiIG1zZ2lkPSI3OTA0MDQyNjgyMTExNTI2MTY5Ij4i2KzYp9ix2Y0g2KrYrdiz2YrZhiDYp9mE2KrYt9io2YrZgiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiUxJGQ8L3hsaWZmOmc+INmF2YYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRkPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19zdGFydGluZ19hcHBzIiBtc2dpZD0iNDUxNDY0NTE2MzQ2OTI2NzEzIj4i2KjYr9ihINin2YTYqti32KjZitmC2KfYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19jb21wbGV0ZSIgbXNnaWQ9IjE0MDU5NTQ3NTQxMTI5OTkyMjkiPiLYrNin2LHZjSDYpdi52KfYr9ipINin2YTYqti02LrZitmELiI8L3N0cmluZz4KQEAgLTExNzQsMjMgKzExODEsMjMgQEAKICAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX3BpY2tlcl90aXRsZSIgbXNnaWQ9IjM1MTUxNDM5MzkxNzUxMTkwOTQiPiLZhti62YXYp9iqINin2YTYsdmG2YrZhiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX3Vua25vd24iIG1zZ2lkPSI1NDc3OTE5OTg4NzAxNzg0Nzg4Ij4i2YbYutmF2Kkg2LHZhtmK2YYg2LrZitixINmF2LnYsdmI2YHYqSI8L3N0cmluZz4KICAgPHBsdXJhbHMgbmFtZT0id2lmaV9hdmFpbGFibGUiPgotICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NjU0MTIzOTg3NDE4MTY4NjkzIj4i2LTYqNmD2KkgV2ktRmkg2YXYqtin2K3YqSI8L2l0ZW0+Ci0gICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDE5MjQyNDQ4OTE2ODM5NzM4NiI+Iti02KjZg9in2KogV2ktRmkg2YXYqtin2K3YqSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY2NTQxMjM5ODc0MTgxNjg2OTMiPiLigI/YtNio2YPYqSBXaS1GaSDZhdiq2KfYrdipIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0MTkyNDI0NDg5MTY4Mzk3Mzg2Ij4i4oCP2LTYqNmD2KfYqiBXaS1GaSDZhdiq2KfYrdipIjwvaXRlbT4KICAgPC9wbHVyYWxzPgogICA8cGx1cmFscyBuYW1lPSJ3aWZpX2F2YWlsYWJsZV9kZXRhaWxlZCI+Ci0gICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjE2MzQxMDE0NTAzNDMyNzczNDUiPiLZh9mG2KfZgyDYtNio2YPYqSBXaS1GaSDZhdmB2KrZiNit2Kkg2YXYqtin2K3YqSI8L2l0ZW0+Ci0gICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzkxNTg5NTMyMzY0NDI5Mjc2OCI+ItmH2YbYp9mDINi02KjZg9in2KogV2ktRmkg2YXZgdiq2YjYrdipINmF2KrYp9it2KkiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIxNjM0MTAxNDUwMzQzMjc3MzQ1Ij4i4oCP2YfZhtin2YMg2LTYqNmD2KkgV2ktRmkg2YXZgdiq2YjYrdipINmF2KrYp9it2KkiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc5MTU4OTUzMjM2NDQyOTI3NjgiPiLigI/Zh9mG2KfZgyDYtNio2YPYp9iqIFdpLUZpINmF2YHYqtmI2K3YqSDZhdiq2KfYrdipIjwvaXRlbT4KICAgPC9wbHVyYWxzPgotICAgIDxzdHJpbmcgbmFtZT0id2lmaV9hdmFpbGFibGVfc2lnbl9pbiIgbXNnaWQ9IjQwMjk0ODk3MTY2MDUyNTUzODYiPiLYqtiz2KzZitmEINin2YTYr9iu2YjZhCDYpdmE2Ykg2LTYqNmD2KkgV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2F2YWlsYWJsZV9zaWduX2luIiBtc2dpZD0iNDAyOTQ4OTcxNjYwNTI1NTM4NiI+IuKAj9iq2LPYrNmK2YQg2KfZhNiv2K7ZiNmEINil2YTZiSDYtNio2YPYqSBXaS1GaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5ldHdvcmtfYXZhaWxhYmxlX3NpZ25faW4iIG1zZ2lkPSI4NDk1MTU1NTkzMzU4MDU0Njc2Ij4i2KrYs9is2YrZhCDYp9mE2K/YrtmI2YQg2KXZhNmJINin2YTYtNio2YPYqSI8L3N0cmluZz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBuZXR3b3JrX2F2YWlsYWJsZV9zaWduX2luX2RldGFpbGVkICg4MDAwMDgxOTQxNDQ3OTc2MTE4KSAtLT4KICAgICA8c2tpcCAvPgotICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkIiBtc2dpZD0iNzkwNDIxNDIzMTY1MTU0NjM0NyI+Itiq2LnYsNixINin2YTYp9iq2LXYp9mEINio2YAgV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3dhdGNoZG9nX25ldHdvcmtfZGlzYWJsZWQiIG1zZ2lkPSI3OTA0MjE0MjMxNjUxNTQ2MzQ3Ij4i4oCP2KrYudiw2LEg2KfZhNin2KrYtdin2YQg2KjZgCBXaS1GaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IndpZmlfd2F0Y2hkb2dfbmV0d29ya19kaXNhYmxlZF9kZXRhaWxlZCIgbXNnaWQ9IjU1NDg3ODA3NzY0MTgzMzI2NzUiPiIg2YTYr9mK2YfYpyDYp9iq2LXYp9mEINil2YbYqtix2YbYqiDYsdiv2YrYoS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9kaWFsb2dfdGl0bGUiIG1zZ2lkPSI5NzYxMTc4MjY1OTMyNDUxNyI+Itin2KrYtdin2YQgV2ktRmkg2YXYqNin2LTYsSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX3R1cm5vbl9tZXNzYWdlIiBtc2dpZD0iMjkwOTI1MDk0MjI5OTYyNzI0NCI+Itin2KjYr9ijIFdpLUZpIERpcmVjdC4g2YrYpNiv2Yog2YfYsNinINil2YTZiSDYpdmK2YLYp9mBINi52YXZitmEL9mG2YLYt9ipINin2KrYtdin2YQgV2ktRmkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZmFpbGVkX21lc3NhZ2UiIG1zZ2lkPSIzNzYzNjY5Njc3OTM1NjIzMDg0Ij4i2KrYudiw2LEg2KjYr9ihIFdpLUZpIERpcmVjdC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9lbmFibGVkX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIwNjgzMjE4ODE2NzM3MzQ4ODYiPiLYqtmFINiq2LTYutmK2YQg2KfYqti12KfZhCBXaS1GaSDYp9mE2YXYqNin2LTYsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijk3NjExNzgyNjU5MzI0NTE3Ij4i4oCP2KfYqti12KfZhCBXaS1GaSDZhdio2KfYtNixIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfdHVybm9uX21lc3NhZ2UiIG1zZ2lkPSIyOTA5MjUwOTQyMjk5NjI3MjQ0Ij4i4oCP2KfYqNiv2KMgV2ktRmkgRGlyZWN0LiDZitik2K/ZiiDZh9iw2Kcg2KXZhNmJINil2YrZgtin2YEg2LnZhdmK2YQv2YbZgti32Kkg2KfYqti12KfZhCBXaS1GaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mYWlsZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NjM2Njk2Nzc5MzU2MjMwODQiPiLigI/Yqti52LDYsSDYqNiv2KEgV2ktRmkgRGlyZWN0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VuYWJsZWRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjA2ODMyMTg4MTY3MzczNDg4NiI+IuKAj9iq2YUg2KrYtNi62YrZhCDYp9iq2LXYp9mEIFdpLUZpINin2YTZhdio2KfYtNixIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW5hYmxlZF9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjE2Mzg5NDk5NTM5OTM4OTQzMzUiPiLYp9mE2YXYsyDZhNmE2K3YtdmI2YQg2LnZhNmJINin2YTYpdi52K/Yp9iv2KfYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2VwdCIgbXNnaWQ9IjE2NDUyNjcyNTkyNzI4Mjk1NTkiPiLZgtio2YjZhCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRlY2xpbmUiIG1zZ2lkPSIyMTEyMjI1NDUxNzA2MTM3ODk0Ij4i2LHZgdi2Ijwvc3RyaW5nPgpAQCAtMTE5OCwyOCArMTIwNSwyOCBAQAogICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfaW52aXRhdGlvbl90b19jb25uZWN0X3RpdGxlIiBtc2dpZD0iNDk1ODgwMzk0ODY1ODUzMzYzNyI+Itiv2LnZiNipINmE2YTYp9iq2LXYp9mEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZnJvbV9tZXNzYWdlIiBtc2dpZD0iNTcwMzg5MTc0NzMxOTUxNzY5Ij4i2YXZhjoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF90b19tZXNzYWdlIiBtc2dpZD0iMjQ4OTY4OTc0NTIyMDQ0MDk5Ij4i2KXZhNmJOiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VudGVyX3Bpbl9tZXNzYWdlIiBtc2dpZD0iNTkyMDkyOTU1MDM2NzgyODk3MCI+Itin2YPYqtioINix2YLZhSDYp9mE2KrYudix2YrZgSDYp9mE2LTYrti12Yog2KfZhNmF2LfZhNmI2Kg6Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfc2hvd19waW5fbWVzc2FnZSIgbXNnaWQ9Ijg1MzA1NjMzMjM4ODA5MjEwOTQiPiLYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKOiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MDEyOTgxMjU3NzQyMjMyNDc1Ij4i2LPZitiq2YUg2YLYt9i5INin2KrYtdin2YQg2KfZhNis2YfYp9iyINin2YTZhNmI2K3ZiiDZhdik2YLYqtmL2Kcg2KjYtNio2YPYqSBXaS1GaSDZgdmKINin2YTZiNmC2Kog2KfZhNiw2Yog2YrZg9mI2YYg2YHZitmHINmF2KrYtdmE2KfZiyDYqNmAIDx4bGlmZjpnIGlkPSJERVZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcmVxdWVuY3lfY29uZmxpY3RfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczNjM5MDcyMTM3ODc0NjkxNTEiPiLYs9mK2KrZhSDZgti32Lkg2KfYqti12KfZhCDYp9mE2YfYp9iq2YEg2YXYpNmC2KrZi9inINio2LTYqNmD2KkgV2ktRmkg2YHZiiDYp9mE2YjZgtiqINin2YTYsNmKINmK2YPZiNmGINmB2YrZhyDZhdiq2LXZhNin2Ysg2KjZgCA8eGxpZmY6ZyBpZD0iREVWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW50ZXJfcGluX21lc3NhZ2UiIG1zZ2lkPSI1OTIwOTI5NTUwMzY3ODI4OTcwIj4i4oCP2KfZg9iq2Kgg2LHZhdiyIFBJTiDYp9mE2YXYt9mE2YjYqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9zaG93X3Bpbl9tZXNzYWdlIiBtc2dpZD0iODUzMDU2MzMyMzg4MDkyMTA5NCI+IuKAj9ix2YXYsiBQSU46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZnJlcXVlbmN5X2NvbmZsaWN0X21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgwMTI5ODEyNTc3NDIyMzI0NzUiPiLigI/Ys9mK2KrZhSDZgti32Lkg2KfYqti12KfZhCDYp9mE2KzZh9in2LIg2KfZhNmE2YjYrdmKINmF2KTZgtiq2YvYpyDYqNi02KjZg9ipIFdpLUZpINmB2Yog2KfZhNmI2YLYqiDYp9mE2LDZiiDZitmD2YjZhiDZgdmK2Ycg2YXYqti12YTYp9mLINio2YAgPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzM2MzkwNzIxMzc4NzQ2OTE1MSI+IuKAj9iz2YrYqtmFINmC2LfYuSDYp9iq2LXYp9mEINin2YTZh9in2KrZgSDZhdik2YLYqtmL2Kcg2KjYtNio2YPYqSBXaS1GaSDZgdmKINin2YTZiNmC2Kog2KfZhNiw2Yog2YrZg9mI2YYg2YHZitmHINmF2KrYtdmE2KfZiyDYqNmAIDx4bGlmZjpnIGlkPSJERVZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfY2hhcmFjdGVyIiBtc2dpZD0iMzM2NTU1MDEyMDYxNzcwMTc0NSI+Itil2K/Ysdin2Kwg2K3YsdmBIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfdGl0bGUiIG1zZ2lkPSI3Mjk2NjEyNzgxMTI4OTE3NzE5Ij4i2KXYsdiz2KfZhCDYsdiz2KfYptmEINmC2LXZitix2KkgU01TIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfbWVzc2FnZSIgbXNnaWQ9IjM4Njc4OTkxNjk2NTE0OTY0MzMiPiImbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyDZitix2LPZhCDYudiv2K/Zi9inINmD2KjZitix2YvYpyDZhdmGINin2YTYsdiz2KfYptmEINin2YTZgti12YrYsdipIFNNUy4g2YfZhCDYqtix2YrYryDYp9mE2LPZhdin2K0g2YTZh9iw2Kcg2KfZhNiq2LfYqNmK2YIg2KjYp9mE2KfYs9iq2YXYsdin2LEg2YHZiiDYpdix2LPYp9mEINin2YTYsdiz2KfYptmE2J8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF90aXRsZSIgbXNnaWQ9IjcyOTY2MTI3ODExMjg5MTc3MTkiPiLigI/Ypdix2LPYp9mEINix2LPYp9im2YQg2YLYtdmK2LHYqSBTTVMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9tZXNzYWdlIiBtc2dpZD0iMzg2Nzg5OTE2OTY1MTQ5NjQzMyI+IuKAjyZsdDtiJmd0Ozx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7INmK2LHYs9mEINi52K/Yr9mL2Kcg2YPYqNmK2LHZi9inINmF2YYg2KfZhNix2LPYp9im2YQg2KfZhNmC2LXZitix2KkgU01TLiDZh9mEINiq2LHZitivINin2YTYs9mF2KfYrSDZhNmH2LDYpyDYp9mE2KrYt9io2YrZgiDYqNin2YTYp9iz2KrZhdix2KfYsSDZgdmKINil2LHYs9in2YQg2KfZhNix2LPYp9im2YTYnyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX3llcyIgbXNnaWQ9IjM2NjM3MjU5OTM4NTU4MTY4MDciPiLYp9mE2LPZhdin2K0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9ubyIgbXNnaWQ9IjYyNTQzODU2MTM5NTUzNDk4MiI+Itix2YHYtiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fbWVzc2FnZSIgbXNnaWQ9IjE2NDU0MzY0NjYyODUzMTA4NTUiPiLZh9mG2KfZgyDYsdi62KjYqSDZhdmGICZsdDtiJmd0Ozx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7INmB2Yog2KXYsdiz2KfZhCDYsdiz2KfZhNipINil2YTZiSAmbHQ7YiZndDs8eGxpZmY6ZyBpZD0iREVTVF9BRERSRVNTIj4lMiRzPC94bGlmZjpnPiZsdDsvYiZndDsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9tZXNzYWdlIiBtc2dpZD0iMTY0NTQzNjQ2NjI4NTMxMDg1NSI+IuKAj9mH2YbYp9mDINix2LrYqNipINmF2YYgJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDsg2YHZiiDYpdix2LPYp9mEINix2LPYp9mE2Kkg2KXZhNmJICZsdDtiJmd0Ozx4bGlmZjpnIGlkPSJERVNUX0FERFJFU1MiPiUyJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0Oy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9kZXRhaWxzIiBtc2dpZD0iMzQ5MjAyNTcxOTg2ODA3ODQ1NyI+ItmH2LDYpyAiPGZvbnQgZmdjb2xvcj0iI2ZmZmZiMDYwIj4i2YLYryDZitik2K/ZiiDYpdmE2Ykg2YHYsdi2INix2LPZiNmFIjwvZm9udD4iINi52YTZiSDYrdiz2KfYqNmDINi52YTZiSDYp9mE2KzZiNin2YQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX3ByZW1pdW1fc2hvcnRfY29kZV9kZXRhaWxzIiBtc2dpZD0iNTUyMzgyNjM0OTEwNTEyMzY4NyI+PGZvbnQgZmdjb2xvcj0iI2ZmZmZiMDYwIj4i2LPZitik2K/ZiiDZh9iw2Kcg2KXZhNmJINmB2LHYtiDYsdiz2YjZhSDYudmE2Ykg2K3Ys9in2KjZgyDYudmE2Ykg2KfZhNis2YjYp9mELiI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2FsbG93IiBtc2dpZD0iNDQ1ODg3ODYzNzExMTAyMzQxMyI+Itil2LHYs9in2YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2RlbnkiIG1zZ2lkPSIyOTI3Mzg5ODQwMjA5MTcwNzA2Ij4i2KXZhNi62KfYoSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX2Nob2ljZSIgbXNnaWQ9IjUyODk1Mzg1OTIyNzIyMTgxMzYiPiLYqtiw2YPYsSDYp9iu2KrZitin2LHZiiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX3VuZG9faW5zdHJ1Y3Rpb24iIG1zZ2lkPSI0OTYwOTQ0MTMzMDUyMjg3NDg0Ij4i2YrZhdmD2YbZgyDYqti62YrZitixINiw2YTZgyDZhNin2K3ZgtmL2Kcg2YXZhiDYpdi52K/Yp9iv2KfYqsKgJmd0O8Kg2KrYt9io2YrZgtin2KoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9yZW1lbWJlcl91bmRvX2luc3RydWN0aW9uIiBtc2dpZD0iNDk2MDk0NDEzMzA1MjI4NzQ4NCI+IuKAj9mK2YXZg9mG2YMg2KrYutmK2YrYsSDYsNmE2YMg2YTYp9it2YLZi9inINmF2YYg2KXYudiv2KfYr9in2KrCoCZndDvCoNiq2LfYqNmK2YLYp9iqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9hbHdheXNfYWxsb3ciIG1zZ2lkPSIzMjQxMTgxMTU0ODY5NDkzMzY4Ij4i2KfZhNiz2YXYp9itINiv2YjZhdmL2KciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX25ldmVyX2FsbG93IiBtc2dpZD0iNDQ2OTkyNzY1Nzc0MjY5NjczIj4i2LnYr9mFINin2YTYs9mF2KfYrSDZhdi32YTZgtmL2KciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzaW1fcmVtb3ZlZF90aXRsZSIgbXNnaWQ9IjYyMjc3MTIzMTkyMjMyMjYxODUiPiLYqtmF2Kog2KXYstin2YTYqSDYqNi32KfZgtipIFNJTSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InNpbV9yZW1vdmVkX21lc3NhZ2UiIG1zZ2lkPSIyMzMzMTY0NTU5OTcwOTU4NjQ1Ij4i2YTZhiDYqtmD2YjZhiDYtNio2YPYqSDYp9mE2KzZiNin2YQg2YXYqtin2K3YqSDYrdiq2Ykg2KrYqtmFINil2LnYp9iv2Kkg2KfZhNiq2LTYutmK2YQg2YjYpdiv2K7Yp9mEINio2LfYp9mC2KkgU0lNINi12KfZhNit2KkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX3JlbW92ZWRfdGl0bGUiIG1zZ2lkPSI2MjI3NzEyMzE5MjIzMjI2MTg1Ij4i4oCP2KrZhdiqINil2LLYp9mE2Kkg2KjYt9in2YLYqSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVtb3ZlZF9tZXNzYWdlIiBtc2dpZD0iMjMzMzE2NDU1OTk3MDk1ODY0NSI+IuKAj9mE2YYg2KrZg9mI2YYg2LTYqNmD2Kkg2KfZhNis2YjYp9mEINmF2KrYp9it2Kkg2K3YqtmJINiq2KrZhSDYpdi52KfYr9ipINin2YTYqti02LrZitmEINmI2KXYr9iu2KfZhCDYqNi32KfZgtipIFNJTSDYtdin2YTYrdipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNpbV9kb25lX2J1dHRvbiIgbXNnaWQ9IjgyNzk0OTk4OTM2OTk2Mzc3NSI+Itiq2YUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzaW1fYWRkZWRfdGl0bGUiIG1zZ2lkPSIzNzE5NjcwNTEyODg5Njc0NjkzIj4i2KrZhdiqINil2LbYp9mB2Kkg2KjYt9in2YLYqSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fYWRkZWRfdGl0bGUiIG1zZ2lkPSIzNzE5NjcwNTEyODg5Njc0NjkzIj4i4oCP2KrZhdiqINil2LbYp9mB2Kkg2KjYt9in2YLYqSBTSU0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaW1fYWRkZWRfbWVzc2FnZSIgbXNnaWQ9IjY1OTk5NDUzMDExNDEwNTAyMTYiPiLYo9i52K8g2KrYtNi62YrZhCDYrNmH2KfYstmDINmE2YTYr9iu2YjZhCDYpdmE2Ykg2LTYqNmD2Kkg2KfZhNis2YjYp9mELiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNpbV9yZXN0YXJ0X2J1dHRvbiIgbXNnaWQ9IjQ3MjI0MDc4NDI4MTUyMzIzNDciPiLYpdi52KfYr9ipINin2YTYqti02LrZitmEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODM0OTM2MjYyMzA2ODgxOTI5NSI+Itiq2LnZitmK2YYg2KfZhNmI2YLYqiI8L3N0cmluZz4KQEAgLTEyMzAsMzggKzEyMzcsMzggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1zX2Rlc2NyaXB0aW9uX2FwcCIgbXNnaWQ9IjUxMzk4MzYxNDMyOTMyOTk0MTciPiLZitmC2K/ZhdmHIDx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibm9fcGVybWlzc2lvbnMiIG1zZ2lkPSI3MjgzMzU3NzI4MjE5MzM4MTEyIj4i2YTYpyDYo9iw2YjZhtin2Kog2YXYt9mE2YjYqNipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybV9jb3N0c19tb25leSIgbXNnaWQ9IjQ5MDI0NzAzMjQxNDIxNTExMTYiPiLZgtivINmK2YPZhNmB2YMg2YfYsNinINmF2KfZhNin2YsuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfYWN0aXZpdHlfdGl0bGUiIG1zZ2lkPSI0NDY1MDU1MTU3MjA5NjQ4NjQxIj4i2KrYrtiy2YrZhiBVU0Ig2YPYqNmK2LEg2KfZhNiz2LnYqSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3RpdGxlIiBtc2dpZD0iNTkwMTQ1OTA0MTM5ODc1MTQ5NSI+IlVTQiDZhdiq2LXZhCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzMwODUzODA5NDMxNjQ3NzgzOSI+ItmE2YLYryDYp9iq2LXZhNiqINio2KzZh9in2LIg2KfZhNmD2YXYqNmK2YjYqtixINmF2YYg2K7ZhNin2YQgVVNCLiDYp9mE2YXYsyDYp9mE2LLYsSDYo9iv2YbYp9mHINil2LDYpyDZg9mG2Kog2KrYsdmK2K8g2YbYs9iuINin2YTZhdmE2YHYp9iqINio2YrZhiDYrNmH2KfYsiDYp9mE2YPZhdio2YrZiNiq2LEg2YjZiNit2K/YqSDYqtiu2LLZitmGIFVTQiDZgdmKIEFuZHJvaWQuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgwNTM1MTAwMDQ0NjAzNzgxMSI+ItmE2YLYryDYp9iq2LXZhNiqINio2KzZh9in2LIg2KfZhNmD2YXYqNmK2YjYqtixINmF2YYg2K7ZhNin2YQgVVNCLiDYp9mE2YXYsyDYp9mE2LLYsSDYo9iv2YbYp9mHINil2LDYpyDZg9mG2Kog2KrYsdmK2K8g2YbYs9iuINin2YTZhdmE2YHYp9iqINio2YrZhiDYrNmH2KfYsiDYp9mE2YPZhdio2YrZiNiq2LEg2YjYqNi32KfZgtipIFNEINmE2YAgQW5kcm9pZC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9idXR0b25fbW91bnQiIG1zZ2lkPSIxMDUyMjU5OTMwMzY5NTA4MjM1Ij4i2KrYtNi62YrZhCDYs9i52Kkg2KrYrtiy2YrZhiBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMwMTcwNDUyMTczNjU1NDA2NTgiPiLYrdiv2KvYqiDZhdi02YPZhNipINij2KvZhtin2KEg2KfYs9iq2K7Yr9in2YUg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0Ig2YTYqtiu2LLZitmGINmD2KjZitixINin2YTYs9i52Kkg2LnYqNixIFVTQi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjg3NjAxODUxMjcxNjk3MDMxMyI+Itit2K/Yq9iqINmF2LTZg9mE2Kkg2KPYq9mG2KfYoSDYp9iz2KrYrtiv2KfZhSDYqNi32KfZgtipIFNEINmE2KrYrtiy2YrZhiDZg9io2YrYsSDYp9mE2LPYudipINi52KjYsSBVU0IuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODE3NTg5MjU1NDc1NzIxNjUyNSI+IlVTQiDZhdiq2LXZhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2FjdGl2aXR5X3RpdGxlIiBtc2dpZD0iNDQ2NTA1NTE1NzIwOTY0ODY0MSI+IuKAj9iq2K7YstmK2YYgVVNCINmD2KjZitixINin2YTYs9i52KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV90aXRsZSIgbXNnaWQ9IjU5MDE0NTkwNDEzOTg3NTE0OTUiPiLigI9VU0Ig2YXYqti12YQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMzMDg1MzgwOTQzMTY0Nzc4MzkiPiLigI/ZhNmC2K8g2KfYqti12YTYqiDYqNis2YfYp9iyINin2YTZg9mF2KjZitmI2KrYsSDZhdmGINiu2YTYp9mEIFVTQi4g2KfZhNmF2LMg2KfZhNiy2LEg2KPYr9mG2KfZhyDYpdiw2Kcg2YPZhtiqINiq2LHZitivINmG2LPYriDYp9mE2YXZhNmB2KfYqiDYqNmK2YYg2KzZh9in2LIg2KfZhNmD2YXYqNmK2YjYqtixINmI2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0Ig2YHZiiBBbmRyb2lkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MDUzNTEwMDA0NDYwMzc4MTEiPiLigI/ZhNmC2K8g2KfYqti12YTYqiDYqNis2YfYp9iyINin2YTZg9mF2KjZitmI2KrYsSDZhdmGINiu2YTYp9mEIFVTQi4g2KfZhNmF2LMg2KfZhNiy2LEg2KPYr9mG2KfZhyDYpdiw2Kcg2YPZhtiqINiq2LHZitivINmG2LPYriDYp9mE2YXZhNmB2KfYqiDYqNmK2YYg2KzZh9in2LIg2KfZhNmD2YXYqNmK2YjYqtixINmI2KjYt9in2YLYqSBTRCDZhNmAIEFuZHJvaWQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfYnV0dG9uX21vdW50IiBtc2dpZD0iMTA1MjI1OTkzMDM2OTUwODIzNSI+IuKAj9iq2LTYutmK2YQg2LPYudipINiq2K7YstmK2YYgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfZXJyb3JfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzMDE3MDQ1MjE3MzY1NTQwNjU4Ij4i4oCP2K3Yr9ir2Kog2YXYtNmD2YTYqSDYo9ir2YbYp9ihINin2LPYqtiu2K/Yp9mFINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCINmE2KrYrtiy2YrZhiDZg9io2YrYsSDYp9mE2LPYudipINi52KjYsSBVU0IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfZXJyb3JfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4NzYwMTg1MTI3MTY5NzAzMTMiPiLigI/Yrdiv2KvYqiDZhdi02YPZhNipINij2KvZhtin2KEg2KfYs9iq2K7Yr9in2YUg2KjYt9in2YLYqSBTRCDZhNiq2K7YstmK2YYg2YPYqNmK2LEg2KfZhNiz2LnYqSDYudio2LEgVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjgxNzU4OTI1NTQ3NTcyMTY1MjUiPiLigI9VU0Ig2YXYqti12YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkzOTgyMjc4MzgyODE4Mzc2MyI+Itin2YTZhdizINmE2YbYs9iuINin2YTZhdmE2YHYp9iqINil2YTZiS/ZhdmGINis2YfYp9iyINin2YTZg9mF2KjZitmI2KrYsS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIzMzYwNTgzOTY2NjM1MTYwMTciPiLYpdmK2YLYp9mBINiq2LTYutmK2YQg2LPYudipINiq2K7YstmK2YYgVVNCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjE2NTY4NTIwOTg1NTU2MjM4MjIiPiLYp9mE2YXYsyDZhNil2YrZgtin2YEg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0IuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF90aXRsZSIgbXNnaWQ9IjY2MDEyOTg1MTcwODc3NTg1MyI+Itiz2LnYqSBVU0Ig2KfZhNiq2K7YstmK2YbZitipINin2YTZhdiz2KrYrtiv2YXYqSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MjY0MDI1MjgwNzc3MjE5NTIxIj4i2YLYqNmEINil2YrZgtin2YEg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0LYjCDYp9mE2Log2KrYrdmF2YrZhCAoXCLYo9iu2LHYrFwiKSDZiNit2K/YqSDYqtiu2LLZitmGIFVTQiDZhNmAIEFuZHJvaWQg2YXZhiDYp9mE2YPZhdio2YrZiNiq2LEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA0Mzk2OTc4MjQ2MDYxMzExNCI+ItmC2KjZhCDYpdmK2YLYp9mBINmI2K3Yr9ipINiq2K7YstmK2YYgVVNC2Iwg2KfZhNi6INiq2K3ZhdmK2YQgKFwi2KPYrtix2KxcIikg2KjYt9in2YLYqSBTRCDZhNmAIEFuZHJvaWQg2YXZhiDYp9mE2YPZhdio2YrZiNiq2LEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9idXR0b25fbW91bnQiIG1zZ2lkPSI3MDYwMjE4MDM0OTAwNjk2MDI5Ij4i2KXZitmC2KfZgSDYqti02LrZitmEINiz2LnYqSDYqtiu2LLZitmGIFVTQiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfZXJyb3JfbWVzc2FnZSIgbXNnaWQ9IjE5NzAzNzQ4OTgyNjMwNjM4MzYiPiLYrdiv2KvYqiDZhdi02YPZhNipINij2KvZhtin2KEg2KXZitmC2KfZgSDZiNit2K/YqSDYqtiu2LLZitmGIFVTQi4g2KrYrdmC2YIg2YXZhiDYpdmE2LrYp9ihINiq2K3ZhdmK2YQg2YXYttmK2YEgVVNC2Iwg2KvZhSDYo9i52K8g2KfZhNmF2K3Yp9mI2YTYqS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkbGdfY29uZmlybV9raWxsX3N0b3JhZ2VfdXNlcnNfdGl0bGUiIG1zZ2lkPSI5NjMwMzkwMzM0NzA0Nzg2OTciPiLYqti02LrZitmEINiz2LnYqSDYqtiu2LLZitmGIFVTQiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190ZXh0IiBtc2dpZD0iNTEwMDQyODc1NzEwNzQ2OTQ1NCI+Itil2LDYpyDYqtmFINiq2LTYutmK2YQg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0LYjCDZgdiz2KrYqtmI2YLZgSDYqNi52LYg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYqtmKINiq2LPYqtiu2K/ZhdmH2Kcg2YjYsdio2YXYpyDYqti12KjYrSDYutmK2LEg2YXYqtin2K3YqSDYpdmE2Ykg2KPZhiDZitiq2YUg2KXZitmC2KfZgSDZiNit2K/YqSDYqtiu2LLZitmGIFVTQi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkbGdfZXJyb3JfdGl0bGUiIG1zZ2lkPSI3MzIzNjU4NDY5NjI2NTE0MjA3Ij4i2YTZhSDYqtiq2YUg2LnZhdmE2YrYqSBVU0Ig2KjZhtis2KfYrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3Bfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjMzNjA1ODM5NjY2MzUxNjAxNyI+IuKAj9il2YrZgtin2YEg2KrYtNi62YrZhCDYs9i52Kkg2KrYrtiy2YrZhiBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTY1Njg1MjA5ODU1NTYyMzgyMiI+IuKAj9in2YTZhdizINmE2KXZitmC2KfZgSDZiNit2K/YqSDYqtiu2LLZitmGIFVTQi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX3RpdGxlIiBtc2dpZD0iNjYwMTI5ODUxNzA4Nzc1ODUzIj4i4oCP2LPYudipIFVTQiDYp9mE2KrYrtiy2YrZhtmK2Kkg2KfZhNmF2LPYqtiu2K/ZhdipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQyNjQwMjUyODA3NzcyMTk1MjEiPiLigI/Zgtio2YQg2KXZitmC2KfZgSDZiNit2K/YqSDYqtiu2LLZitmGIFVTQtiMINin2YTYuiDYqtit2YXZitmEIChcItij2K7YsdisXCIpINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCINmE2YAgQW5kcm9pZCDZhdmGINin2YTZg9mF2KjZitmI2KrYsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MDQzOTY5NzgyNDYwNjEzMTE0Ij4i4oCP2YLYqNmEINil2YrZgtin2YEg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0LYjCDYp9mE2Log2KrYrdmF2YrZhCAoXCLYo9iu2LHYrFwiKSDYqNi32KfZgtipIFNEINmE2YAgQW5kcm9pZCDZhdmGINin2YTZg9mF2KjZitmI2KrYsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX2J1dHRvbl9tb3VudCIgbXNnaWQ9IjcwNjAyMTgwMzQ5MDA2OTYwMjkiPiLigI/YpdmK2YLYp9mBINiq2LTYutmK2YQg2LPYudipINiq2K7YstmK2YYgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9lcnJvcl9tZXNzYWdlIiBtc2dpZD0iMTk3MDM3NDg5ODI2MzA2MzgzNiI+IuKAj9it2K/Yq9iqINmF2LTZg9mE2Kkg2KPYq9mG2KfYoSDYpdmK2YLYp9mBINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCLiDYqtit2YLZgiDZhdmGINil2YTYutin2KEg2KrYrdmF2YrZhCDZhdi22YrZgSBVU0LYjCDYq9mFINij2LnYryDYp9mE2YXYrdin2YjZhNipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190aXRsZSIgbXNnaWQ9Ijk2MzAzOTAzMzQ3MDQ3ODY5NyI+IuKAj9iq2LTYutmK2YQg2LPYudipINiq2K7YstmK2YYgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX2NvbmZpcm1fa2lsbF9zdG9yYWdlX3VzZXJzX3RleHQiIG1zZ2lkPSI1MTAwNDI4NzU3MTA3NDY5NDU0Ij4i4oCP2KXYsNinINiq2YUg2KrYtNi62YrZhCDZiNit2K/YqSDYqtiu2LLZitmGIFVTQtiMINmB2LPYqtiq2YjZgtmBINio2LnYtiDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNiq2Yog2KrYs9iq2K7Yr9mF2YfYpyDZiNix2KjZhdinINiq2LXYqNitINi62YrYsSDZhdiq2KfYrdipINil2YTZiSDYo9mGINmK2KrZhSDYpdmK2YLYp9mBINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19lcnJvcl90aXRsZSIgbXNnaWQ9IjczMjM2NTg0Njk2MjY1MTQyMDciPiLigI/ZhNmFINiq2KrZhSDYudmF2YTZitipIFVTQiDYqNmG2KzYp9itIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGxnX29rIiBtc2dpZD0iNzM3Njk1MzE2NzAzOTg2NTcwMSI+ItmF2YjYp9mB2YIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfbXRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjM2OTk5MTMwOTczOTE1NTAzOTQiPiLYp9mE2KrZiNi12YrZhCDZg9is2YfYp9iyINmI2LPYp9im2LciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjE5NjA4MTcxOTIyMTYwNjQ4MzMiPiLYp9mE2KrZiNi12YrZhCDZg9mD2KfZhdmK2LHYpyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InVzYl9jZF9pbnN0YWxsZXJfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjc3NDcxMjgyNzg5MjA5MDc1NCI+Itin2YTYqtmI2LXZitmEINmD2KPYr9in2Kkg2KrYq9io2YrYqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3Nvcnlfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNzg0ODIzNjk3NDA4NzY1MzY2NiI+Itin2YTYp9iq2LXYp9mEINio2KzZh9in2LIgVVNCINmF2YTYrdmCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMjI5MDg1OTM5OTk4MzcyMDI3MSI+Itin2YTZhdizINmE2YTYp9i32YTYp9i5INi52YTZiSDYrtmK2KfYsdin2KogVVNCINin2YTYo9iu2LHZiS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iOTAyMDA5MjE5NjA2MTAwNzI2MiI+Itiq2YfZitim2Kkg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0LYnyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2NDg0MTU5MjE1MjY1MjYwNjkiPiLZh9mEINiq2LHZitivINiq2YbYs9mK2YIg2KjYt9in2YLYqSBTRNifIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkzNDAxNjg1MzQyNTc2MTA3OCI+Itiz2YrYqtmFINmF2LPYrSDYrNmF2YrYuSDYp9mE2YXZhNmB2KfYqiDYp9mE2YXYrtiy2YbYqSDYudmE2Ykg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0IuINmE2Kcg2YrZhdmD2YYg2LnZg9izINmH2LDYpyDYp9mE2KXYrNix2KfYoSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9Ijc4NDgyMzY5NzQwODc2NTM2NjYiPiLigI/Yp9mE2KfYqti12KfZhCDYqNis2YfYp9iyIFVTQiDZhdmE2K3ZgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjIyOTA4NTkzOTk5ODM3MjAyNzEiPiLigI/Yp9mE2YXYsyDZhNmE2KfYt9mE2KfYuSDYudmE2Ykg2K7Zitin2LHYp9iqIFVTQiDYp9mE2KPYrtix2YkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjkwMjAwOTIxOTYwNjEwMDcyNjIiPiLigI/YqtmH2YrYptipINmI2K3Yr9ipINiq2K7YstmK2YYgVVNC2J8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNjQ4NDE1OTIxNTI2NTI2MDY5Ij4i4oCP2YfZhCDYqtix2YrYryDYqtmG2LPZitmCINio2LfYp9mC2KkgU0TYnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5MzQwMTY4NTM0MjU3NjEwNzgiPiLigI/Ys9mK2KrZhSDZhdiz2K0g2KzZhdmK2Lkg2KfZhNmF2YTZgdin2Kog2KfZhNmF2K7YstmG2Kkg2LnZhNmJINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCLiDZhNinINmK2YXZg9mGINi52YPYsyDZh9iw2Kcg2KfZhNil2KzYsdin2KEhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDEzMTg5NTAyNzU0MzgzMCI+Itiz2KrZgdmC2K8g2KzZhdmK2Lkg2KfZhNio2YrYp9mG2KfYqiDYudmE2Ykg2KjYt9in2YLYqtmDLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9idXR0b25fZm9ybWF0IiBtc2dpZD0iNDEzMTA2NDU2MDEyNzQ3ODY5NSI+Itiq2YbYs9mK2YIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhZGJfYWN0aXZlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY3MjkwNDQ3Nzg5NDkxODk5MTgiPiLYqtmFINiq2YjYtdmK2YQg2KrYtdit2YrYrSDYo9iu2LfYp9ihIFVTQiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFkYl9hY3RpdmVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIxMDE2NjU0NjI3NjI2NDc2MTQyIj4i2KfZhNmF2LMg2YTYqti52LfZitmEINiq2LXYrdmK2K0g2KPYrti32KfYoSBVU0IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2NzI5MDQ0Nzc4OTQ5MTg5OTE4Ij4i4oCP2KrZhSDYqtmI2LXZitmEINiq2LXYrdmK2K0g2KPYrti32KfYoSBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGJfYWN0aXZlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTAxNjY1NDYyNzYyNjQ3NjE0MiI+IuKAj9in2YTZhdizINmE2KrYudi32YrZhCDYqti12K3ZititINij2K7Yt9in2KEgVVNCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9pbnB1dF9tZXRob2QiIG1zZ2lkPSI0NjUzMzg3MzM2NzkxMjIyOTc4Ij4i2KfYrtiq2YrYp9ixINij2LPZhNmI2Kgg2KfZhNil2K/Yrtin2YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjkwOTE2NTIxNTc3MjI0OTUxMTYiPiLYpdi52K/Yp9ivINij2LPZhNmI2Kgg2KfZhNil2K/Yrtin2YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1c2VfcGh5c2ljYWxfa2V5Ym9hcmQiIG1zZ2lkPSI2MjAzMTEyNDc4MDk1MTE3NjI1Ij4i2YTZiNit2Kkg2YXZgdin2KrZititINmB2LnZhNmK2KkiPC9zdHJpbmc+CkBAIC0xMjcxLDI5ICsxMjc4LDI5IEBACiAgICAgPHN0cmluZyBuYW1lPSJmYXN0X3Njcm9sbF9hbHBoYWJldCIgbXNnaWQ9IjU0MzMyNzU0ODU0OTkwMzkxOTkiPiIg2KMg2Kgg2Kog2Ksg2Kwg2K0g2K4g2K8g2LAg2LEg2LIg2LMg2LQg2LUg2LYg2Lcg2Lgg2Lkg2Log2YEg2YIg2YMg2YQg2YUg2YYg2Ycg2Ygg2YoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJmYXN0X3Njcm9sbF9udW1lcmljX2FscGhhYmV0IiBtc2dpZD0iNDAzMDE3MDUyNDU5NTEyMzYxMCI+IiAwMTIzNDU2Nzg5INijINioINiqINirINisINitINiuINivINiwINixINiyINizINi0INi1INi2INi3INi4INi5INi6INmBINmCINmDINmEINmFINmGINmHINmIINmKIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY2FuZGlkYXRlc19zdHlsZSIgbXNnaWQ9IjQzMzM5MTMwODk2MzcwNjIyNTciPjx1PiLYp9mE2LnZhtin2LXYsSDYp9mE2YXYsdi02K3YqSI8L3U+PC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM0NDk4MTYwMDUzNTE0Njg1NjAiPiLYqtit2LbZitixINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU0NTc2MDM0MTg5NzA5OTQwNTAiPiLYqtit2LbZitixINio2LfYp9mC2KkgU0QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM0NDk4MTYwMDUzNTE0Njg1NjAiPiLigI/Yqtit2LbZitixINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU0NTc2MDM0MTg5NzA5OTQwNTAiPiLigI/Yqtit2LbZitixINio2LfYp9mC2KkgU0QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI4Mjg3MzE5ODgyOTI2NzM3MDUzIj4i2KfZhNiq2K3ZgtmCINmF2YYg2KfZhNij2K7Yt9in2KEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc3ODgwNDA3NDU2ODYyMjkzMDciPiLZiNit2K/YqSDYqtiu2LLZitmGIFVTQiDZgdin2LHYutipIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzgwNDc3ODM4MjQxMjEyOTk3Ij4i2KjYt9in2YLYqSBTRCDZgdin2LHYutipIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzg0MDEyMTA2NzQyNzI2OTUwMCI+ItmI2K3Yr9ipINiq2K7YstmK2YYgVVNCINmB2KfYsdi62Kkg2KPZiCDYqti02KrZhdmEINi52YTZiSDZhti42KfZhSDZhdmE2YHYp9iqINi62YrYsSDZhdi52KrZhdivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODY0MTA2NTY0MTc4NjkyMzYwNCI+Itio2LfYp9mC2KkgU0Qg2YHYp9ix2LrYqSDYo9mIINiq2LTYqtmF2YQg2LnZhNmJINmG2LjYp9mFINmF2YTZgdin2Kog2LrZitixINmF2LnYqtmF2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIyMDkwMDQ2NzY5NTMyNzEzNTYzIj4i2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0Ig2KrYp9mE2YHYqSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NDEwNzIzOTA2MDE5MTAwMTg5Ij4i2KjYt9in2YLYqSBTRCDYqtin2YTZgdipIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE3OTU5MTc1NzgzOTUzMzMyODAiPiLYqti52LfZhNiqINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCLiDYrNix2ZHYqCDYpdi52KfYr9ipINiq2YbYs9mK2YLZh9inLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE3NTM4OTg1Njc1MjU1NjgyNTMiPiLYqti52LfZhNiqINio2LfYp9mC2KkgU0QuINis2LHZkdioINil2LnYp9iv2Kkg2KrZhtiz2YrZgtmH2KcuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE2NjE2ODMwMzEzMzA5NTEwNzMiPiLYqtmF2Kog2KXYstin2YTYqSDZiNit2K/YqSDYqtiu2LLZitmGIFVTQiDYudmE2Ykg2LrZitixINin2YTZhdiq2YjZgti5Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjg3MjE1Mjg4MjYwNDQwNzgzNyI+Itiq2YXYqiDYpdiy2KfZhNipINio2LfYp9mC2KkgU0Qg2LnZhNmJINmG2K3ZiCDYutmK2LEg2YXYqtmI2YLYuSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQzMjk4NDg4MTk4NjU1OTQyNDEiPiLYpdmE2LrYp9ihINiq2LHZg9mK2Kgg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0Ig2YLYqNmEINin2YTYpdiy2KfZhNipINmE2KrYrNmG2Kgg2YHZgtivINin2YTYqNmK2KfZhtin2KouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjYwMTgzMjkzNzQ3NDQ4MjQxIj4i2KPZhNi6INiq2K3ZhdmK2YQg2KjYt9in2YLYqSBTRCDZgtio2YQg2KfZhNil2LLYp9mE2Kkg2YTYqtis2YbYqCDZgdmC2K/Yp9mGINin2YTYqNmK2KfZhtin2KouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzk2Nzk3Mzg5MzI3MDM2MDIzMCI+ItmK2YXZg9mG2YMg2KXYstin2YTYqSDZiNit2K/YqSDYqtiu2LLZitmGIFVTQiDYqNi02YPZhCDYotmF2YYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY3Mjk4MDExMzA3OTA2MTYyMDAiPiLZitmF2YPZhiDYpdiy2KfZhNipINio2LfYp9mC2KkgU0Qg2KjYo9mF2KfZhiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE0MjE5NTM2MTYwNjQ5MzUzMCI+ItmK2YXZg9mG2YMg2KXYstin2YTYqSDZiNit2K/YqSDYqtiu2LLZitmGIFVTQiDYqNi02YPZhCDYotmF2YYuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU2ODg0MTI3ODEzODM3NzYwNCI+ItmK2YXZg9mG2YMg2KXYstin2YTYqSDYqNi32KfZgtipIFNEINio2KPZhdin2YYuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ0ODYzNzcyMzAxNDAyMjc2NTEiPiLYqtmF2Kog2KXYstin2YTYqSDZiNit2K/YqSDYqtiu2LLZitmGIFVTQiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MDI1MTgwMzA0MDQzODEzMTgiPiLYqtmF2Kog2KXYstin2YTYqSDYqNi32KfZgtipIFNEIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjkyMTEyNjE2MjU4MDU3NDE0MyI+Itiq2YXYqiDYpdiy2KfZhNipINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCLiDYo9iv2LHYrCDZiNiz2KfYpti3INis2K/Zitiv2KkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzODcwMTIwNjUyOTgzNjU5NjQxIj4i2KrZhdiqINil2LLYp9mE2Kkg2KjYt9in2YLYqSBTRC4g2KPYr9iu2YQg2KjYt9in2YLYqSDYrNiv2YrYr9ipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3Nzg4MDQwNzQ1Njg2MjI5MzA3Ij4i4oCP2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0Ig2YHYp9ix2LrYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijc4MDQ3NzgzODI0MTIxMjk5NyI+IuKAj9io2LfYp9mC2KkgU0Qg2YHYp9ix2LrYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc4NDAxMjEwNjc0MjcyNjk1MDAiPiLigI/ZiNit2K/YqSDYqtiu2LLZitmGIFVTQiDZgdin2LHYutipINij2Ygg2KrYtNiq2YXZhCDYudmE2Ykg2YbYuNin2YUg2YXZhNmB2KfYqiDYutmK2LEg2YXYudiq2YXYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2NDEwNjU2NDE3ODY5MjM2MDQiPiLigI/YqNi32KfZgtipIFNEINmB2KfYsdi62Kkg2KPZiCDYqti02KrZhdmEINi52YTZiSDZhti42KfZhSDZhdmE2YHYp9iqINi62YrYsSDZhdi52KrZhdivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjA5MDA0Njc2OTUzMjcxMzU2MyI+IuKAj9mI2K3Yr9ipINiq2K7YstmK2YYgVVNCINiq2KfZhNmB2KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjQxMDcyMzkwNjAxOTEwMDE4OSI+IuKAj9io2LfYp9mC2KkgU0Qg2KrYp9mE2YHYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIxNzk1OTE3NTc4Mzk1MzMzMjgwIj4i4oCP2KrYudi32YTYqiDZiNit2K/YqSDYqtiu2LLZitmGIFVTQi4g2KzYsdmR2Kgg2KXYudin2K/YqSDYqtmG2LPZitmC2YfYpy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNzUzODk4NTY3NTI1NTY4MjUzIj4i4oCP2KrYudi32YTYqiDYqNi32KfZgtipIFNELiDYrNix2ZHYqCDYpdi52KfYr9ipINiq2YbYs9mK2YLZh9inLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIxNjYxNjgzMDMxMzMwOTUxMDczIj4i4oCP2KrZhdiqINil2LLYp9mE2Kkg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0Ig2LnZhNmJINi62YrYsSDYp9mE2YXYqtmI2YLYuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NzIxNTI4ODI2MDQ0MDc4MzciPiLigI/YqtmF2Kog2KXYstin2YTYqSDYqNi32KfZgtipIFNEINi52YTZiSDZhtit2Ygg2LrZitixINmF2KrZiNmC2LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MzI5ODQ4ODE5ODY1NTk0MjQxIj4i4oCP2KXZhNi62KfYoSDYqtix2YPZitioINmI2K3Yr9ipINiq2K7YstmK2YYgVVNCINmC2KjZhCDYp9mE2KXYstin2YTYqSDZhNiq2KzZhtioINmB2YLYryDYp9mE2KjZitin2YbYp9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzI2MDE4MzI5Mzc0NzQ0ODI0MSI+IuKAj9ij2YTYuiDYqtit2YXZitmEINio2LfYp9mC2KkgU0Qg2YLYqNmEINin2YTYpdiy2KfZhNipINmE2KrYrNmG2Kgg2YHZgtiv2KfZhiDYp9mE2KjZitin2YbYp9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5Njc5NzM4OTMyNzAzNjAyMzAiPiLigI/ZitmF2YPZhtmDINil2LLYp9mE2Kkg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0Ig2KjYtNmD2YQg2KLZhdmGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NzI5ODAxMTMwNzkwNjE2MjAwIj4i4oCP2YrZhdmD2YYg2KXYstin2YTYqSDYqNi32KfZgtipIFNEINio2KPZhdin2YYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYxNDIxOTUzNjE2MDY0OTM1MzAiPiLigI/ZitmF2YPZhtmDINil2LLYp9mE2Kkg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0Ig2KjYtNmD2YQg2KLZhdmGLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Njg4NDEyNzgxMzgzNzc2MDQiPiLigI/ZitmF2YPZhtmDINil2LLYp9mE2Kkg2KjYt9in2YLYqSBTRCDYqNij2YXYp9mGLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0NDg2Mzc3MjMwMTQwMjI3NjUxIj4i4oCP2KrZhdiqINil2LLYp9mE2Kkg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4OTAyNTE4MDMwNDA0MzgxMzE4Ij4i4oCP2KrZhdiqINil2LLYp9mE2Kkg2KjYt9in2YLYqSBTRCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjY5MjExMjYxNjI1ODA1NzQxNDMiPiLigI/YqtmF2Kog2KXYstin2YTYqSDZiNit2K/YqSDYqtiu2LLZitmGIFVTQi4g2KPYr9ix2Kwg2YjYs9in2KbYtyDYrNiv2YrYr9ipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzg3MDEyMDY1Mjk4MzY1OTY0MSI+IuKAj9iq2YXYqiDYpdiy2KfZhNipINio2LfYp9mC2KkgU0QuINij2K/YrtmEINio2LfYp9mC2Kkg2KzYr9mK2K/YqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9saXN0X2VtcHR5IiBtc2dpZD0iMTY3NTM4ODMzMDc4Njg0MTA2NiI+ItmE2YUg2YrYqtmFINin2YTYudir2YjYsSDYudmE2Ykg2KPZiiDYo9mG2LTYt9ipINmF2KrYt9in2KjZgtipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGtnVXNhZ2VTdGF0cyIgbXNnaWQ9Ijg3ODczNTIwNzQzMjY3NDg4OTIiPiLYqtit2K/ZitirINil2K3Ytdin2KHYp9iqINin2LPYqtiu2K/Yp9mFINin2YTZhdmD2YjZhiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BrZ1VzYWdlU3RhdHMiIG1zZ2lkPSIxMTA2NjEyNDI0MjU0Mjc3NjMwIj4i2YTZhNiz2YXYp9itINmE2YTYqti32KjZitmCINio2KrYudiv2YrZhCDYpdit2LXYp9ih2KfYqiDYp9iz2KrYrtiv2KfZhSDYp9mE2YXZg9mI2YYg2KfZhNmF2KzZhdmR2LnYqS4g2YTZitizINmE2YTYp9iz2KrYrtiv2KfZhSDYqNmI2KfYs9i32Kkg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYudin2K/ZitipLiI8L3N0cmluZz4KQEAgLTEzMjksMTMgKzEzMzYsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9IndhbGxwYXBlcl9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMTI0MDA4Nzg0NDMwNDY4NzY2MiI+Itin2YTYrtmE2YHZitipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY2hvb3Nlcl93YWxscGFwZXIiIG1zZ2lkPSI3ODczNDc2MTk5Mjk1MTkwMjc5Ij4i2KrYutmK2YrYsSDYp9mE2K7ZhNmB2YrYqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5vdGlmaWNhdGlvbl9saXN0ZW5lcl9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMjAxNDE2MjgzNTQ4MTkwNjQyOSI+Itio2LHZhtin2YXYrCDYqtmE2YLZkdmKINin2YTYpdi02LnYp9ix2KfYqiDYp9mE2LXZiNiq2YrYqSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InZwbl90aXRsZSIgbXNnaWQ9IjE5NjE1MjEzNTUyMDQyODI3Ij4i2KrZhSDYqtmG2LTZiti3INin2YTYtNio2YPYqSDYp9mE2LjYp9mH2LHZitipINin2YTYrtin2LXYqSAoVlBOKSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InZwbl90aXRsZV9sb25nIiBtc2dpZD0iNjQwMDcxNDc5ODA0OTI1MjI5NCI+Itiq2YUg2KrZhti02YrYtyBWUE4g2KjZiNin2LPYt9ipIDx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90aXRsZSIgbXNnaWQ9IjE5NjE1MjEzNTUyMDQyODI3Ij4i4oCP2KrZhSDYqtmG2LTZiti3INin2YTYtNio2YPYqSDYp9mE2LjYp9mH2LHZitipINin2YTYrtin2LXYqSAoVlBOKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90aXRsZV9sb25nIiBtc2dpZD0iNjQwMDcxNDc5ODA0OTI1MjI5NCI+IuKAj9iq2YUg2KrZhti02YrYtyBWUE4g2KjZiNin2LPYt9ipIDx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InZwbl90ZXh0IiBtc2dpZD0iMzAxMTMwNjYwNzEyNjQ1MDMyMiI+Itin2YTZhdizINmE2KXYr9in2LHYqSDYp9mE2LTYqNmD2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idnBuX3RleHRfbG9uZyIgbXNnaWQ9IjY0MDczNTEwMDYyNDkxNzQ0NzMiPiLYqtmFINin2YTYp9iq2LXYp9mEINio2YAgPHhsaWZmOmcgaWQ9IlNFU1NJT04iPiVzPC94bGlmZjpnPi4g2KfZhNmF2LMg2YTYpdiv2KfYsdipINin2YTYtNio2YPYqS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29ubmVjdGluZyIgbXNnaWQ9IjY0NDM0Mzg5NjQ0NDA5NjA3NDUiPiLYrNin2LHZjSDYp9mE2KfYqti12KfZhCDYqNi02KjZg9ipINi42KfZh9ix2YrYqSDYrtin2LXYqSAoVlBOKSDYr9in2KbZhdipINin2YTYqti02LrZitmELi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Nvbm5lY3RlZCIgbXNnaWQ9IjgyMDI2Nzk2NzQ4MTkyMTM5MzEiPiLYqtmFINin2YTYp9iq2LXYp9mEINio2LTYqNmD2Kkg2LjYp9mH2LHZitipINiu2KfYtdipIChWUE4pINiv2KfYptmF2Kkg2KfZhNiq2LTYutmK2YQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fZXJyb3IiIG1zZ2lkPSI2MDA5MjQ5ODE0MDM0NzA4MTc1Ij4i2K7Yt9ijINio2LTYqNmD2Kkg2LjYp9mH2LHZitipINiu2KfYtdipIChWUE4pINiv2KfYptmF2Kkg2KfZhNiq2LTYutmK2YQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29ubmVjdGluZyIgbXNnaWQ9IjY0NDM0Mzg5NjQ0NDA5NjA3NDUiPiLigI/YrNin2LHZjSDYp9mE2KfYqti12KfZhCDYqNi02KjZg9ipINi42KfZh9ix2YrYqSDYrtin2LXYqSAoVlBOKSDYr9in2KbZhdipINin2YTYqti02LrZitmELi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Nvbm5lY3RlZCIgbXNnaWQ9IjgyMDI2Nzk2NzQ4MTkyMTM5MzEiPiLigI/YqtmFINin2YTYp9iq2LXYp9mEINio2LTYqNmD2Kkg2LjYp9mH2LHZitipINiu2KfYtdipIChWUE4pINiv2KfYptmF2Kkg2KfZhNiq2LTYutmK2YQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fZXJyb3IiIG1zZ2lkPSI2MDA5MjQ5ODE0MDM0NzA4MTc1Ij4i4oCP2K7Yt9ijINio2LTYqNmD2Kkg2LjYp9mH2LHZitipINiu2KfYtdipIChWUE4pINiv2KfYptmF2Kkg2KfZhNiq2LTYutmK2YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29uZmlnIiBtc2dpZD0iNjQxNTg5OTE1MDY3MTUzNzk3MCI+Itin2YTZhdizINmE2YTYqtmH2YrYptipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXBsb2FkX2ZpbGUiIG1zZ2lkPSIyODk3OTU3MTcyMzY2NzMwNDE2Ij4i2KfYrtiq2YrYp9ixINmF2YTZgSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5vX2ZpbGVfY2hvc2VuIiBtc2dpZD0iNjM2MzY0ODU2MjE3MDc1OTQ2NSI+ItmE2YUg2YrYqtmFINin2K7YqtmK2KfYsSDYo9mKINmF2YTZgSI8L3N0cmluZz4KQEAgLTEzNTksMTggKzEzNjYsMTggQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NjQxODcyNzk3MDY3NjA5MTc3Ij4iPHhsaWZmOmcgaWQ9IklOREVYIj4lZDwveGxpZmY6Zz4g2YXZhiA8eGxpZmY6ZyBpZD0iVE9UQUwiPiVkPC94bGlmZjpnPiI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9tb2RlX2RvbmUiIG1zZ2lkPSI3MjE3NTgxNjQwNDYxOTIyMjg5Ij4i2KrZhSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkyMzgxMDQ0ODUwNzYxMjc0NiI+Itis2KfYsdmNINil2YTYutin2KEg2KrYrdmF2YrZhCDZiNit2K/YqSDYqtiu2LLZitmGIFVTQi4uLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMzI3ODk0OTk4NDA5NTM3MTkwIj4i2KzYp9ix2Y0g2KXZhNi62KfYoSDYqtit2YXZitmEINio2LfYp9mC2KkgU0QuLi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc19lcmFzaW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ1MjE1NzMzMjE1MjQzNDAwNTgiPiLYrNin2LHZjSDZhdit2Ygg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0IuLi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc19lcmFzaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjU5Njk4ODg3NTUwNzA0MzA0MiI+Itis2KfYsdmNINmF2K3ZiCDYqNi32KfZgtipIFNELi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyOTk3Njk1NjM2MjQ3NzY5NDgiPiLYqti52LDYsSDZhdiz2K0g2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0IuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzMxNTI0ODY5NjY0NDUxMDkzNSI+Itiq2LnYsNixINmF2LPYrSDYqNi32KfZgtipIFNELiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2JhZF9yZW1vdmFsIiBtc2dpZD0iNzk2MDg2NDA2MTAxNjYwMzI4MSI+Itiq2YXYqiDYpdiy2KfZhNipINio2LfYp9mC2KkgU0Qg2YLYqNmEINij2YYg2YrYqtmFINil2YTYutin2KEg2KrYsdmD2YrYqNmH2KcuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfY2hlY2tpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDE4MTg4NzIwMDA5NTY5NjkzIj4i2YrYqtmFINit2KfZhNmK2YvYpyDYp9mE2KrYrdmC2YIg2YXZhiDZiNit2K/YqSDYqtiu2LLZitmGIFVTQi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJtZWRpYV9jaGVja2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMzQ3NjI1MDM5MDQ4Mjc0ODEiPiLZitiq2YUg2KfZhNii2YYg2KfZhNiq2K3ZgtmCINmF2YYg2KjYt9in2YLYqSBTRC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yZW1vdmVkIiBtc2dpZD0iNzAwMTUyNjkwNTA1Nzk1MjA5NyI+Itiq2YXYqiDYpdiy2KfZhNipINio2LfYp9mC2KkgU0QuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfc2hhcmVkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjU4MzA4MTQzNDkyNTA4MzQyMjUiPiLZiNit2K/YqSDYqtiu2LLZitmGIFVTQiDZgtmK2K8g2KfZhNin2LPYqtiu2K/Yp9mFINio2YjYp9iz2LfYqSDZg9mF2KjZitmI2KrYsSDYrdin2YTZitmL2KcuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfc2hhcmVkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTcwNjEzMDU2ODEzMzU0MDQzNSI+Itio2LfYp9mC2KkgU0Qg2YLZitivINin2YTYp9iz2KrYrtiv2KfZhSDYrdin2YTZitmL2Kcg2KjZiNin2LPYt9ipINmD2YXYqNmK2YjYqtixLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkyMzgxMDQ0ODUwNzYxMjc0NiI+IuKAj9is2KfYsdmNINil2YTYutin2KEg2KrYrdmF2YrZhCDZiNit2K/YqSDYqtiu2LLZitmGIFVTQi4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMzI3ODk0OTk4NDA5NTM3MTkwIj4i4oCP2KzYp9ix2Y0g2KXZhNi62KfYoSDYqtit2YXZitmEINio2LfYp9mC2KkgU0QuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc19lcmFzaW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ1MjE1NzMzMjE1MjQzNDAwNTgiPiLigI/YrNin2LHZjSDZhdit2Ygg2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0IuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc19lcmFzaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjU5Njk4ODg3NTUwNzA0MzA0MiI+IuKAj9is2KfYsdmNINmF2K3ZiCDYqNi32KfZgtipIFNELi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyOTk3Njk1NjM2MjQ3NzY5NDgiPiLigI/Yqti52LDYsSDZhdiz2K0g2YjYrdiv2Kkg2KrYrtiy2YrZhiBVU0IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzMxNTI0ODY5NjY0NDUxMDkzNSI+IuKAj9iq2LnYsNixINmF2LPYrSDYqNi32KfZgtipIFNELiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2JhZF9yZW1vdmFsIiBtc2dpZD0iNzk2MDg2NDA2MTAxNjYwMzI4MSI+IuKAj9iq2YXYqiDYpdiy2KfZhNipINio2LfYp9mC2KkgU0Qg2YLYqNmEINij2YYg2YrYqtmFINil2YTYutin2KEg2KrYsdmD2YrYqNmH2KcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfY2hlY2tpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDE4MTg4NzIwMDA5NTY5NjkzIj4i4oCP2YrYqtmFINit2KfZhNmK2YvYpyDYp9mE2KrYrdmC2YIg2YXZhiDZiNit2K/YqSDYqtiu2LLZitmGIFVTQi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9jaGVja2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMzQ3NjI1MDM5MDQ4Mjc0ODEiPiLigI/Zitiq2YUg2KfZhNii2YYg2KfZhNiq2K3ZgtmCINmF2YYg2KjYt9in2YLYqSBTRC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yZW1vdmVkIiBtc2dpZD0iNzAwMTUyNjkwNTA1Nzk1MjA5NyI+IuKAj9iq2YXYqiDYpdiy2KfZhNipINio2LfYp9mC2KkgU0QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfc2hhcmVkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjU4MzA4MTQzNDkyNTA4MzQyMjUiPiLigI/ZiNit2K/YqSDYqtiu2LLZitmGIFVTQiDZgtmK2K8g2KfZhNin2LPYqtiu2K/Yp9mFINio2YjYp9iz2LfYqSDZg9mF2KjZitmI2KrYsSDYrdin2YTZitmL2KcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfc2hhcmVkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTcwNjEzMDU2ODEzMzU0MDQzNSI+IuKAj9io2LfYp9mC2KkgU0Qg2YLZitivINin2YTYp9iz2KrYrtiv2KfZhSDYrdin2YTZitmL2Kcg2KjZiNin2LPYt9ipINmD2YXYqNmK2YjYqtixLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3Vua25vd25fc3RhdGUiIG1zZ2lkPSI3MjkxOTI3ODIxOTcyOTAzODUiPiLZiNiz2KfYpti3INiu2KfYsdis2YrYqSDZgdmKINit2KfZhNipINi62YrYsSDZhdi52LHZiNmB2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmUiIG1zZ2lkPSIxNzc4Njg2NjE4MjMwMDExOTY0Ij4i2YXYtNin2LHZg9ipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZmluZCIgbXNnaWQ9IjQ4MDgyNzA5MDAzMjI5ODU5NjAiPiLYqNit2KsiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4i2KfZhNi52KfZhNmKIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRW50ZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiLYp9iu2KrZitin2LEg2KrYt9io2YrZgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+Itiq2LnYsNixINiq2LTYutmK2YQgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+ItmF2LTYp9ix2YPYqSDZhdi5Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+ItmF2LTYp9ix2YPYqSDZhdi5IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4i2YXZgtio2LYg2KfZhNiq2YXYsdmK2LEuINin2YTZhdizINmF2Lkg2KfZhNin2LPYqtmF2LHYp9ixLiI8L3N0cmluZz4KQEAgLTE0MzUsMjAgKzE0NDMsMjAgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI3OTY1OTg0MzYwOTAzNjkzOTAzIj4iJTEkc9iMICUyJHMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fYmFyX2hvbWVfc3VidGl0bGVfZGVzY3JpcHRpb25fZm9ybWF0IiBtc2dpZD0iNjk4NTU0NjUzMDQ3MTc4MDcyNyI+IiUxJHPYjCAlMiRz2IwgJTMkcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfaW50ZXJuYWwiIG1zZ2lkPSI0ODkxOTE2ODMzNjU3OTI5MjYzIj4i2YjYrdiv2Kkg2KrYrtiy2YrZhiDYr9in2K7ZhNmK2KkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3NkX2NhcmQiIG1zZ2lkPSIzMjgyOTQ4ODYxMzc4Mjg2NzQ1Ij4i2KjYt9in2YLYqSBTRCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfdXNiIiBtc2dpZD0iMzAxNzk1NDA1OTUzODUxNzI3OCI+ItmI2K3Yr9ipINiq2K7YstmK2YYgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RvcmFnZV9zZF9jYXJkIiBtc2dpZD0iMzI4Mjk0ODg2MTM3ODI4Njc0NSI+IuKAj9io2LfYp9mC2KkgU0QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3VzYiIgbXNnaWQ9IjMwMTc5NTQwNTk1Mzg1MTcyNzgiPiLigI/ZiNit2K/YqSDYqtiu2LLZitmGIFVTQiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV4dHJhY3RfZWRpdF9tZW51X2J1dHRvbiIgbXNnaWQ9Ijg5NDA0Nzg3MzA0OTY2MTAxMzciPiLYqti52K/ZitmEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93YXJuaW5nX3RpdGxlIiBtc2dpZD0iMTk1NTYzODg2MjEyMjIzMjM0MiI+Itiq2K3YsNmK2LEg2KfYs9iq2K7Yr9in2YUg2KfZhNio2YrYp9mG2KfYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2FybmluZ19ib2R5IiBtc2dpZD0iMjgxNDY3MzU1MTQ3MTk2OTk1NCI+Itin2YTZhdizINmE2LnYsdi2INin2YTYp9iz2KrYrtiv2KfZhSDZiNin2YTYpdi52K/Yp9iv2KfYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzA5MzMzNDQxOTUxODcwNjY4NiI+Itiq2YUg2KrYudi32YrZhCDYqNmK2KfZhtin2Kog2LTYqNmD2KfYqiDYp9mE2KzZitmEINin2YTYq9in2YbZiiDZiNin2YTYrNmK2YQg2KfZhNir2KfZhNirIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV80Z19saW1pdF90aXRsZSIgbXNnaWQ9Ijc2MzY0ODk0MzY4MTk0NzA3NjEiPiLYqtmFINiq2LnYt9mK2YQg2KjZitin2YbYp9iqINi02KjZg9ipINin2YTYrNmK2YQg2KfZhNix2KfYqNi5Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9tb2JpbGVfbGltaXRfdGl0bGUiIG1zZ2lkPSI3ODY5NDAyNTE5MzkxNjMxODg0Ij4i2KrZhSDYqti52LfZitmEINio2YrYp9mG2KfYqiDYp9mE2KzZiNin2YQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfdGl0bGUiIG1zZ2lkPSI4OTkyMTU0NzM2NDQxMjg0ODY1Ij4i2KrZhSDYqti52LfZitmEINio2YrYp9mG2KfYqiBXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2lmaV9saW1pdF90aXRsZSIgbXNnaWQ9Ijg5OTIxNTQ3MzY0NDEyODQ4NjUiPiLigI/YqtmFINiq2LnYt9mK2YQg2KjZitin2YbYp9iqIFdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9saW1pdF9ib2R5IiBtc2dpZD0iMzMxNzk2NDcwNjk3MzYwMTM4NiI+Itin2YTZhdizINmE2YTYqtmF2YPZitmGLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfM2dfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjcwMjY3MzkxMjExMzgwMDUyMzEiPiLYqtmFINiq2KzYp9mI2LIg2K3YryDYqNmK2KfZhtin2Kog2LTYqNmD2KfYqiAyRy0zRyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfNGdfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjExMDY1NjI3NzkzMTEyMDkwMzkiPiLYqtmFINiq2KzYp9mI2LIg2K3YryDYqNmK2KfZhtin2KogNEciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSI3MDI2NzM5MTIxMTM4MDA1MjMxIj4i4oCP2KrZhSDYqtis2KfZiNiyINit2K8g2KjZitin2YbYp9iqINi02KjZg9in2KogMkctM0ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzRnX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSIxMTA2NTYyNzc5MzExMjA5MDM5Ij4i4oCP2KrZhSDYqtis2KfZiNiyINit2K8g2KjZitin2YbYp9iqIDRHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9tb2JpbGVfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjI3OTI0MDU3MjE2NTQxMjE2OCI+Itiq2YUg2KrYrNin2YjYsiDYrdivINio2YrYp9mG2KfYqiDYp9mE2KzZiNin2YQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9Ijg3NDM4NTYwMDYzODQ4MjU5NzQiPiLYqtmFINiq2KzYp9mI2LIg2K3YryDYqNmK2KfZhtin2Kog2LTYqNmD2KkgV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9Ijg3NDM4NTYwMDYzODQ4MjU5NzQiPiLigI/YqtmFINiq2KzYp9mI2LIg2K3YryDYqNmK2KfZhtin2Kog2LTYqNmD2KkgV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2xpbWl0X3Nub296ZWRfYm9keSIgbXNnaWQ9IjcwMzU0OTAyNzgyOTg0NDE3NjciPiI8eGxpZmY6ZyBpZD0iU0laRSI+JXM8L3hsaWZmOmc+INmB2YjZgiDYp9mE2K3YryDYp9mE2YXYudmK2YYuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9yZXN0cmljdGVkX3RpdGxlIiBtc2dpZD0iNTk2NTE1NzM2MTAzNjMyMTkxNCI+Itiq2YUg2KrZgtmK2YrYryDYqNmK2KfZhtin2Kog2KfZhNiu2YTZgdmK2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3Jlc3RyaWN0ZWRfYm9keSIgbXNnaWQ9IjY3NDE1MjEzMzA5OTc0NTI5OTAiPiLYp9mE2YXYsyDZhNil2LLYp9mE2Kkg2KfZhNiq2YLZitmK2K8uIjwvc3RyaW5nPgpAQCAtMTQ2NCw4ICsxNDcyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9ImV4cGlyZXNfb24iIG1zZ2lkPSIzNjc2MjQyOTQ5OTE1OTU5ODIxIj4i2KrZhtiq2YfZiiDYp9mE2LXZhNin2K3ZitipINmB2Yo6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2VyaWFsX251bWJlciIgbXNnaWQ9Ijc1ODgxNDA2NzY2MDg2MjQ5MyI+Itin2YTYsdmC2YUg2KfZhNmF2LPZhNiz2YQ6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZmluZ2VycHJpbnRzIiBtc2dpZD0iNDUxNjAxOTYxOTg1MDc2MzA0OSI+Itio2LXZhdin2Kog2KfZhNij2LXYp9io2Lk6Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic2hhMjU2X2ZpbmdlcnByaW50IiBtc2dpZD0iNDM5MTI3MTI4NjQ3NzI3OTI2MyI+Itio2LXZhdipINij2LXYqNi5IFNIQS0yNTY6Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic2hhMV9maW5nZXJwcmludCIgbXNnaWQ9Ijc5MzAzMzAyMzUyNjk0MDQ1ODEiPiLYqNi12YXYqSDYo9i12KjYuSBTSEEtMToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGEyNTZfZmluZ2VycHJpbnQiIG1zZ2lkPSI0MzkxMjcxMjg2NDc3Mjc5MjYzIj4i4oCP2KjYtdmF2Kkg2KPYtdio2LkgU0hBLTI1NjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGExX2ZpbmdlcnByaW50IiBtc2dpZD0iNzkzMDMzMDIzNTI2OTQwNDU4MSI+IuKAj9io2LXZhdipINij2LXYqNi5IFNIQS0xOiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2Nob29zZXJfdmlld19zZWVfYWxsIiBtc2dpZD0iNDI5MjU2OTM4Mzk3NjYzNjIwMCI+Iti52LHYtiDYp9mE2YPZhCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2Nob29zZXJfdmlld19kaWFsb2dfdGl0bGVfZGVmYXVsdCIgbXNnaWQ9IjQ3MTAwMTM4NjQ5NzQwNDA2MTUiPiLYp9iu2KrZitin2LEg2YbYtNin2LciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZV9hY3Rpb25fcHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjUyNDc2ODQ0MzU5NzkxNDkyMTYiPiLZhdi02KfYsdmD2Kkg2YXYuSI8L3N0cmluZz4KQEAgLTE0OTEsOSArMTQ5OSw5IEBACiAgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfbm90X2F2YWlsYWJsZSIgbXNnaWQ9IjY3Mzk4OTk5NjI2ODE4ODY0MDEiPiLYutmK2LEg2YXYqtin2K0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfaW5fdXNlIiBtc2dpZD0iNDUzMzc4NjAzMTA5MDE5ODA2MyI+ItmC2YrYryDYp9mE2KfYs9iq2K7Yr9in2YUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfYnVpbHRfaW5fZGlzcGxheV9uYW1lIiBtc2dpZD0iMjU4MzEzNDI5NDI5MjU2Mzk0MSI+Iti02KfYtNipINmF2K/Zhdis2KkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfaGRtaV9kaXNwbGF5X25hbWUiIG1zZ2lkPSIxNTU1MjY0NTU5MjI3NDcwMTA5Ij4i2LTYp9i02KkgSERNSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9oZG1pX2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjE1NTUyNjQ1NTkyMjc0NzAxMDkiPiLigI/YtNin2LTYqSBIRE1JIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9uYW1lIiBtc2dpZD0iNTE0MjM2NTk4MjI3MTYyMDcxNiI+Itin2YTZhdix2YPYqCAjPHhsaWZmOmcgaWQ9IklEIj4lMSRkPC94bGlmZjpnPiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9vdmVybGF5X2Rpc3BsYXlfdGl0bGUiIG1zZ2lkPSI2NTIxMjQ1MTc2NzIyNTcxNzIiPiI8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz46IDx4bGlmZjpnIGlkPSJXSURUSCI+JTIkZDwveGxpZmY6Zz54PHhsaWZmOmcgaWQ9IkhFSUdIVCI+JTMkZDwveGxpZmY6Zz7YjCA8eGxpZmY6ZyBpZD0iRFBJIj4lNCRkPC94bGlmZjpnPiDZhtmC2LfYqSDZhNmD2YQg2KjZiNi12KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X3RpdGxlIiBtc2dpZD0iNjUyMTI0NTE3NjcyMjU3MTcyIj4i4oCPPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+OiA8eGxpZmY6ZyBpZD0iV0lEVEgiPiUyJGQ8L3hsaWZmOmc+eDx4bGlmZjpnIGlkPSJIRUlHSFQiPiUzJGQ8L3hsaWZmOmc+2IwgPHhsaWZmOmcgaWQ9IkRQSSI+JTQkZDwveGxpZmY6Zz4g2YbZgti32Kkg2YTZg9mEINio2YjYtdipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9zZWN1cmVfc3VmZml4IiBtc2dpZD0iNjAyMjExOTcwMjYyODU3MjA4MCI+Itii2YXZhiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IndpZmlfZGlzcGxheV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMjIzMDUwNjQ5MjQwMzI2NTU3Ij4i2KrZhSDYp9mE2KrZiNi12YrZhCDYqNi02KfYtNipINmE2KfYs9mE2YPZitipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iNDQ5ODgwMjAxMjQ2NDE3MDY4NSI+ItmK2KrZhSDYudix2LYg2YfYsNmHINin2YTYtNin2LTYqSDYudmE2Ykg2KzZh9in2LIg2KLYrtixIjwvc3RyaW5nPgpAQCAtMTUwNSwyNyArMTUxMywyNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGluIiBtc2dpZD0iMTEzMTMwNjUxMDgzMzU2MzgwMSI+Itix2YLZhSDYqti52LHZitmBINi02K7YtdmKINiu2KfYt9imIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiLYrdin2YjZhCDZhdix2Kkg2KPYrtix2Ykg2K7ZhNin2YQgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JTEkZDwveGxpZmY6Zz4g2KvYp9mG2YrYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5ODk3ODYxMTY4MzA3NTg2OCI+Itin2LHYs9mFINmG2YLYtNmDIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4i2KPYr9iu2YQg2LHZgtmFINin2YTYqti52LHZitmBINin2YTYtNiu2LXZiiDZhNio2LfYp9mC2KkgU0lNIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiLYo9iv2K7ZhCDYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4i4oCP2KPYr9iu2YQg2LHZhdiyIFBJTiDZhNio2LfYp9mC2KkgU0lNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiLigI/Yo9iv2K7ZhCDYsdmF2LIgUElOIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+Itij2K/YrtmEINmD2YTZhdipINin2YTZhdix2YjYsSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+Itio2LfYp9mC2KkgU0lNINmF2LnYt9mE2Kkg2KfZhNii2YYuINij2K/YrtmEINix2YXYsiBQVUsg2YTZhNmF2KrYp9io2LnYqS4g2KfYqti12YQg2KjZhdi02LrZhCDYtNio2YPYqSDYp9mE2KzZiNin2YQg2YTZhNin2LfZhNin2Lkg2LnZhNmJINin2YTYqtmB2KfYtdmK2YQuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+Itil2K/Yrtin2YQg2LHZhdiyINix2YLZhSDYp9mE2KrYudix2YrZgSDYp9mE2LTYrti12Yog2KfZhNmF2LHYp9ivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+Itiq2KPZg9mK2K8g2LHZhdiyINix2YLZhSDYp9mE2KrYudix2YrZgSDYp9mE2LTYrti12Yog2KfZhNmF2LHYp9ivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiLYrNin2LHZjSDYpdmE2LrYp9ihINiq2KPZhdmK2YYg2KjYt9in2YLYqSBTSU3igKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiLYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKINi62YrYsSDYtdit2YrYrS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLYp9mD2KrYqCDYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKINin2YTZhdmD2YjZhiDZhdmGIDQg2KXZhNmJIDgg2KPYsdmC2KfZhS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiLZitis2Kgg2KPZhiDZitiq2LbZhdmGINix2YXYsiBQVUvigI8gOCDYo9ix2YLYp9mFINij2Ygg2KPZg9ir2LEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i2KPYudivINil2K/Yrtin2YQg2LHZhdiyIFBVSyDYp9mE2LXYrdmK2K0uINmI2LPYqtik2K/ZiiDYp9mE2YXYrdin2YjZhNin2Kog2KfZhNmF2KrZg9ix2LHYqSDYpdmE2Ykg2KrYudi32YrZhCDYqNi32KfZgtipIFNJTSDZhtmH2KfYptmK2YvYpy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4i2YTYpyDZitiq2LfYp9io2YIg2LHZhdiy2Kcg2LHZgtmFINin2YTYqti52LHZitmBINin2YTYtNiu2LXZiiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+IuKAj9io2LfYp9mC2KkgU0lNINmF2LnYt9mE2Kkg2KfZhNii2YYuINij2K/YrtmEINix2YXYsiBQVUsg2YTZhNmF2KrYp9io2LnYqS4g2KfYqti12YQg2KjZhdi02LrZhCDYtNio2YPYqSDYp9mE2KzZiNin2YQg2YTZhNin2LfZhNin2Lkg2LnZhNmJINin2YTYqtmB2KfYtdmK2YQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IuKAj9il2K/Yrtin2YQg2LHZhdiyINix2YXYsiBQSU4g2KfZhNmF2LHYp9ivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IuKAj9iq2KPZg9mK2K8g2LHZhdiyINix2YXYsiBQSU4g2KfZhNmF2LHYp9ivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiLigI/YrNin2LHZjSDYpdmE2LrYp9ihINiq2KPZhdmK2YYg2KjYt9in2YLYqSBTSU3igKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiLigI/YsdmF2LIgUElOINi62YrYsSDYtdit2YrYrS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLigI/Yp9mD2KrYqCDYsdmF2LIgUElOINin2YTZhdmD2YjZhiDZhdmGIDQg2KXZhNmJIDgg2KPYsdmC2KfZhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiLigI/Zitis2Kgg2KPZhiDZitiq2LbZhdmGINix2YXYsiBQVUvigI8gOCDYo9ix2YLYp9mFINij2Ygg2KPZg9ir2LEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i4oCP2KPYudivINil2K/Yrtin2YQg2LHZhdiyIFBVSyDYp9mE2LXYrdmK2K0uINmI2LPYqtik2K/ZiiDYp9mE2YXYrdin2YjZhNin2Kog2KfZhNmF2KrZg9ix2LHYqSDYpdmE2Ykg2KrYudi32YrZhCDYqNi32KfZgtipIFNJTSDZhtmH2KfYptmK2YvYpy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4i4oCP2YTYpyDZitiq2LfYp9io2YIg2LHZhdiy2Kcg2LHZhdiyIFBJTiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+ItmF2K3Yp9mI2YTYp9iqINin2YTZhtmC2LQg2YPYq9mK2LHYqSDYrNiv2YvYpyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLZhNil2YTYutin2KEg2KfZhNiq2KPZhdmK2YbYjCDYs9is2ZHZhCDYp9mE2K/YrtmI2YQg2KjYrdiz2KfYqNmDINmB2YogR29vZ2xlLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLigI/ZhNil2YTYutin2KEg2KfZhNiq2KPZhdmK2YbYjCDYs9is2ZHZhCDYp9mE2K/YrtmI2YQg2KjYrdiz2KfYqNmDINmB2YogR29vZ2xlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4i2KfYs9mFINin2YTZhdiz2KrYrtiv2YUgKNin2YTYqNix2YrYryDYpdmE2YPYqtix2YjZhtmKKSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4i2YPZhNmF2Kkg2KfZhNmF2LHZiNixIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiLYqtiz2KzZitmEINin2YTYr9iu2YjZhCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4i2KfYs9mFINmF2LPYqtiu2K/ZhSDYutmK2LEg2LXYrdmK2K0g2KPZiCDZg9mE2YXYqSDZhdix2YjYsSDYutmK2LEg2LXYp9mE2K3YqS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i2YfZhCDZhtiz2YrYqiDYp9iz2YUg2KfZhNmF2LPYqtiu2K/ZhSDYo9mIINmD2YTZhdipINin2YTZhdix2YjYsdifXG7Yp9mG2KrZgtmEINil2YTZiSAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IuKAj9mH2YQg2YbYs9mK2Kog2KfYs9mFINin2YTZhdiz2KrYrtiv2YUg2KPZiCDZg9mE2YXYqSDYp9mE2YXYsdmI2LHYn1xu2KfZhtiq2YLZhCDYpdmE2YkgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+Itis2KfYsdmNINmB2K3YtSDYp9mE2K3Ys9in2KjigKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODI3Njc0NTY0MjA0OTUwMjU1MCI+ItmE2YLYryDZg9iq2KjYqiDYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKINio2LTZg9mEINi62YrYsSDYtdit2YrYrSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDZhdix2KkuIFxuXG7Yo9i52K8g2KfZhNmF2K3Yp9mI2YTYqSDYrtmE2KfZhCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYq9in2YbZitipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i4oCP2YTZgtivINmD2KrYqNiqINix2YXYsiBQSU4g2KjYtNmD2YQg2LrZitixINi12K3ZititIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INmF2LHYqS4gXG5cbtij2LnYryDYp9mE2YXYrdin2YjZhNipINiu2YTYp9mEIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INir2KfZhtmK2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+ItmE2YLYryDZg9iq2KjYqiDZg9mE2YXYqSDYp9mE2YXYsdmI2LEg2KjYtNmD2YQg2LrZitixINi12K3ZititIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INmF2LHYqS4gXG5cbtij2LnYryDYp9mE2YXYrdin2YjZhNipINiu2YTYp9mEIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INir2KfZhtmK2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+ItmE2YLYryDYsdiz2YXYqiDZhtmC2LQg2KXZhNi62KfYoSDYp9mE2KrYo9mF2YrZhiDYqNi32LHZitmC2Kkg2LrZitixINi12K3Zitit2KkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2YXYsdipLiBcblxu2KPYudivINin2YTZhdit2KfZiNmE2Kkg2K7ZhNin2YQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g2KvYp9mG2YrYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1NzU1NTcyMDA2MjcxMjg5NDkiPiLZhNmC2K8g2K3Yp9mI2YTYqiDYpdmE2LrYp9ihINiq2KPZhdmK2YYg2KfZhNis2YfYp9iyINin2YTZhNmI2K3ZiiDYqNi02YPZhCDYutmK2LEg2LXYrdmK2K0gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2YXYsdipLiDYqNi52K8g2KXYrNix2KfYoSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDZhdmGINin2YTZhdit2KfZiNmE2KfYqiDYutmK2LEg2KfZhNmG2KfYrNit2Kkg2KfZhNij2K7YsdmJ2Iwg2LPYqtiq2YUg2KXYudin2K/YqSDYqti52YrZitmGINin2YTYrNmH2KfYsiDYp9mE2YTZiNit2Yog2LnZhNmJINin2YTYpdi52K/Yp9iv2KfYqiDYp9mE2KfZgdiq2LHYp9i22YrYqSDZhNmE2YXYtdmG2Lkg2YjYs9mK2KrZhSDZgdmC2K8g2KzZhdmK2Lkg2KjZitin2YbYp9iqINin2YTZhdiz2KrYrtiv2YUuIjwvc3RyaW5nPgpAQCAtMTYzNSwxOSArMTY0MywzMCBAQAogICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3NlcnZpY2VfdW5hdmFpbGFibGUiIG1zZ2lkPSI3ODI0MDA4NzMyMjQzOTAzMjY4Ij4i2K7Yr9mF2Kkg2KfZhNi32KjYp9i52Kkg2YTZitiz2Kog2YXZhdmD2ZHZhtipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VydmljZV9pbnN0YWxsZWRfdGl0bGUiIG1zZ2lkPSIyMjQ2MzE3MTY5NDQ0MDgxNjI4Ij4i2KrZhSDYqtir2KjZitiqINiu2K/ZhdipIDx4bGlmZjpnIGlkPSJOQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZXJ2aWNlX2luc3RhbGxlZF9tZXNzYWdlIiBtc2dpZD0iNTg5NzM2MjkzMTA3MDQ1OTE1MiI+Itin2YbZgtixINmE2YTYqtmF2YPZitmGLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9hZG1pbl9waW4iIG1zZ2lkPSI3ODM2NDM3MzE4OTUxNDM5NzAiPiLYo9iv2K7ZhCDYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKINmE2YTZhdi02LHZgSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9waW4iIG1zZ2lkPSIzMzk1OTUzNDIxMzY4NDc2MTAzIj4i2KXYr9iu2KfZhMKg2LHZgtmFINin2YTYqti52LHZitmBINin2YTYtNiu2LXZiiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9hZG1pbl9waW4iIG1zZ2lkPSI3ODM2NDM3MzE4OTUxNDM5NzAiPiLigI/Yo9iv2K7ZhCDYsdmF2LIgUElOINmE2YTZhdi02LHZgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9waW4iIG1zZ2lkPSIzMzk1OTUzNDIxMzY4NDc2MTAzIj4i4oCP2KXYr9iu2KfZhMKg2LHZhdiyIFBJTiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9pbmNvcnJlY3QiIG1zZ2lkPSI4NTcxNTEyMDAzOTU1MDc3OTI0Ij4i2LrZitixINi12K3ZititIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2VudGVyX29sZF9waW4iIG1zZ2lkPSIxNDYyMjA2MjI1NTEyOTEwNzU3Ij4i2LHZgtmFINin2YTYqti52LHZitmBINin2YTYtNiu2LXZiiDYp9mE2K3Yp9mE2YoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfbmV3X3BpbiIgbXNnaWQ9IjU5NTk2MDY2OTE2MTk5NTkxODQiPiLYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKINin2YTYrNiv2YrYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9jb25maXJtX3BpbiIgbXNnaWQ9Ijg1MDE1MjM4Mjk2MzMxNDYyMzkiPiLYqtij2YPZitivINix2YLZhSDYp9mE2KrYudix2YrZgSDYp9mE2LTYrti12Yog2KfZhNis2K/ZitivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2VudGVyX29sZF9waW4iIG1zZ2lkPSIxNDYyMjA2MjI1NTEyOTEwNzU3Ij4i4oCP2LHZhdiyIFBJTiDYp9mE2K3Yp9mE2YoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfbmV3X3BpbiIgbXNnaWQ9IjU5NTk2MDY2OTE2MTk5NTkxODQiPiLigI/YsdmF2LIgUElOINin2YTYrNiv2YrYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9jb25maXJtX3BpbiIgbXNnaWQ9Ijg1MDE1MjM4Mjk2MzMxNDYyMzkiPiLigI/Yqtij2YPZitivINix2YXYsiBQSU4g2KfZhNis2K/ZitivIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2NyZWF0ZV9waW4iIG1zZ2lkPSI4MDE3NjAwMDAwMjYzNDUwMzM3Ij4i2KXZhti02KfYoSDYsdmC2YUg2KrYudix2YrZgSDYtNiu2LXZiiDZhNiq2LnYr9mK2YQg2KfZhNmC2YrZiNivIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2Vycm9yX2RvZXNudF9tYXRjaCIgbXNnaWQ9IjIyMjQyMTQxOTA5MDY5OTQ1NDgiPiLYo9ix2YLYp9mFINin2YTYqti52LHZitmBINin2YTYtNiu2LXZitipINmE2Kcg2KrYqti32KfYqNmC2Iwg2KPYudivINin2YTZhdit2KfZiNmE2KkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2Vycm9yX3Rvb19zaG9ydCIgbXNnaWQ9IjgxNzM5ODI3NTYyNjU3Nzc3OTIiPiLYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKINij2YLYtdixINmF2YXYpyDZitmE2LLZhdiMINmK2KzYqCDYo9mE2Kcg2YrZgtmEINi52YYgNCDYo9ix2YLYp9mFLsKgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2Vycm9yX3Rvb19zaG9ydCIgbXNnaWQ9IjgxNzM5ODI3NTYyNjU3Nzc3OTIiPiLigI/YsdmF2LIgUElOINij2YLYtdixINmF2YXYpyDZitmE2LLZhdiMINmK2KzYqCDYo9mE2Kcg2YrZgtmEINi52YYgNCDYo9ix2YLYp9mFLsKgIjwvc3RyaW5nPgogICA8cGx1cmFscyBuYW1lPSJyZXN0cl9waW5fY291bnRkb3duIj4KICAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzExMDUwOTk1MTk4NTQ4Njc1Ij4i2KPYudivINin2YTZhdit2KfZiNmE2Kkg2K7ZhNin2YQg2KvYp9mG2YrYqSDZiNin2K3Yr9ipLiI8L2l0ZW0+CiAgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDczMDg2ODkyMDc0Mjk1MjgxNyI+Itij2LnYryDYp9mE2YXYrdin2YjZhNipINiu2YTYp9mEIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INir2KfZhtmK2KkiPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4i2KPYudivINin2YTZhdit2KfZiNmE2Kkg2YTYp9it2YLZi9inIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+ItmF2LHYsSDYqNiz2LHYudipINmF2YYg2KPYudmE2Ykg2YTYo9iz2YHZhCDZhNmE2K7YsdmI2Kwg2YXZhiDZiNi22Lkg2YXZhNihINin2YTYtNin2LTYqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+Itiq2YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiLYtNix2YrYtyDYp9mE2KrZhdix2YrYsSDYp9mE2K/Yp9im2LHZiiDZhNmE2LPYp9i52KfYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4i2LTYsdmK2Lcg2KfZhNiq2YXYsdmK2LEg2KfZhNiv2KfYptix2Yog2YTZhNiv2YLYp9im2YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4i2KrYrdiv2YrYryDYp9mE2LPYp9i52KfYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+Itiq2K3Yr9mK2K8g2KfZhNiv2YLYp9im2YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+Iti02KjZg9ipINin2YTYtNmH2LEg2YXZg9mI2YbYqSDZhdmGINin2YTYo9mK2KfZhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTUyNDMzMTIwNzQzNjA1MjQwMyI+ItmC2KfYptmF2Kkg2KfZhNij2LnZiNin2YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+Itiq2K3Yr9mK2K8g2KfZhNi02YfYsSDZiNin2YTZitmI2YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiLYqtit2K/ZitivINin2YTYudin2YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4i2KrZhSDYqtit2K/ZitivIDx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+Itiq2YUg2K3YsNmBIDx4bGlmZjpnIGlkPSJLRVkiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWF6LXJBWi9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtYXotckFaL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3OWNmY2YKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWF6LXJBWi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDE1OTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyogLy9kZXZpY2UvYXBwcy9jb21tb24vYXNzZXRzL3Jlcy9hbnkvc3RyaW5ncy54bWwKKyoqCisqKiBDb3B5cmlnaHQgMjAwNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYnl0ZVNob3J0IiBtc2dpZD0iODM0MDk3Mzg5Mjc0MjAxOTEwMSI+IkIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJraWxvYnl0ZVNob3J0IiBtc2dpZD0iNTk3Mzc4OTc4MzUwNDc3MTg3OCI+IktCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVnYWJ5dGVTaG9ydCIgbXNnaWQ9IjYzNTU4NTE1NzY3NzA0Mjg5MjIiPiJNQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdpZ2FieXRlU2hvcnQiIG1zZ2lkPSIzMjU5ODgyNDU1MjEyMTkzMjE0Ij4iR0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXJhYnl0ZVNob3J0IiBtc2dpZD0iMjMxNjEzMDE4MTU5MTg2OTYyIj4iVEIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXRhYnl0ZVNob3J0IiBtc2dpZD0iNTYzNzgxNjY4MDE0NDk5MDIxOSI+IlBCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmlsZVNpemVTdWZmaXgiIG1zZ2lkPSI5MTY0MjkyNzkxNTAwNTMxOTQ5Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JTEkczwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iVU5JVCI+JTIkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1bnRpdGxlZCIgbXNnaWQ9IjQ2Mzg5NTY5NTQ4NTI3ODI1NzYiPiJCYcWfbMSxcXPEsXoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGxpcHNpcyIgbXNnaWQ9Ijc4OTk4Mjk1MTYwNDg4MTMyMzciPiIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGxpcHNpc190d29fZG90cyIgbXNnaWQ9IjEyMjgwNzg5OTQ4NjYwMzA3MzYiPiLigKUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eVBob25lTnVtYmVyIiBtc2dpZD0iNzY5NDA2MzA0MjA3OTY3NjUxNyI+IihUZWxlZm9uIG7Dtm1yyZlzaSB5b3hkdXIpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idW5rbm93bk5hbWUiIG1zZ2lkPSIyMjc3NTU2NTQ2NzQyNzQ2NTIyIj4iKE5hbcmZbHVtKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRWb2ljZU1haWxBbHBoYVRhZyIgbXNnaWQ9IjI2NjAwMjA5OTAwOTc3MzMwNzciPiJTyZlzbGkgcG/Dp3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0TXNpc2RuQWxwaGFUYWciIG1zZ2lkPSIyODUwODg5NzU0OTE5NTg0Njc0Ij4iTVNJU0ROMSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1taUVycm9yIiBtc2dpZD0iNTE1NDQ5OTQ1NzczOTA1MjkwNyI+IkJhxJ9sYW50xLEgcHJvYmxlbWkgdsmZIHlhIHlhbG7EscWfIE1NIGtvZHUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pRmRuRXJyb3IiIG1zZ2lkPSI1MjI0Mzk4MjE2Mzg1MzE2NDcxIj4ixo9tyZlsaXl5YXQgeWFsbsSxeiBzYWJpdCBuw7ZtcsmZbMmZcsmZIHnEscSfxLFtbGEgbcmZaGR1ZGxhxZ/EsWIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUVuYWJsZWQiIG1zZ2lkPSI4MTQ3Mjc4MzQ2NDE0NzE0MzE1Ij4iU2VydmlzIGnFn8mZIHNhbMSxbmTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRW5hYmxlZEZvciIgbXNnaWQ9IjY4NTYyMjgxNDA0NTM0NzEwNDEiPiJYaWRtyZl0IGFrdGl2IGVkaWxtacWfZGlyOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VEaXNhYmxlZCIgbXNnaWQ9IjE5Mzc1NTMyMjY1OTI1MTY0MTEiPiJYaWRtyZl0IGRlYWt0aXYgZWRpbGliLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VSZWdpc3RlcmVkIiBtc2dpZD0iNjI3NTAxOTA4MjU5ODEwMjQ5MyI+IlFleWRpeXlhdCB1xJ91cmx1IG9sZHUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUVyYXNlZCIgbXNnaWQ9IjEyODg1ODQ2OTUyOTcyMDA5NzIiPiJTaWxpbm3JmSB1xJ91cmx1IG9sbXXFn2R1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZEluY29ycmVjdCIgbXNnaWQ9Ijc2MTIyMDg4Mzk0NTAxMjg3MTUiPiJZYW5sxLHFnyBwYXJvbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1taUNvbXBsZXRlIiBtc2dpZD0iODIzMjUyNzQ5NTQxMTY5ODM1OSI+Ik1NSSB0YW1hbWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFkUGluIiBtc2dpZD0iOTAxNTI3NzY0NTU0NjcxMDAxNCI+IkRheGlsIGV0ZGl5aW5peiBrw7ZobsmZIFDEsE4gZMO8emfDvG4gZGV5aWwuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFkUHVrIiBtc2dpZD0iNTQ4NzI1NzY0NzA4MTEzMjIwMSI+IkRheGlsIGV0ZGl5aW5peiBQVUsgZMO8emfDvG4gZGV5aWwuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWlzbWF0Y2hQaW4iIG1zZ2lkPSI2MDkzNzkwNTQ0OTY4NjM0MTkiPiJEYXhpbCBldGRpeWluaXogUMSwTiBrb2RsYXIgdXnEn3VuIGfJmWxtaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFBpbiIgbXNnaWQ9IjM4NTAwMTg0NDUxODc0NzUzNzciPiI0LWTJmW4gOC3JmSBxyZlkyZlyIHLJmXHJmW1pIG9sYW4gUElOIHlhesSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IjggdsmZIGRhaGEgw6dveCByyZlxyZltaSBvbGFuIFBVSyB5YXrEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IlNpemluIFPEsE0ga2FydCBQVUsgaWzJmSBraWxpZGzJmW5pYi4gT251IGHDp21hcSDDvMOnw7xuIFBVSyBrb2R1IHlhesSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJTSU0ga2FydMSxbiBraWxpZGluaSBhw6dtYXEgw7zDp8O8biBQVUsyIHlhesSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iRGF4aWwgb2xhbiB6yZluZyBlZMmZbmluIElEXCdzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNsaXJNbWkiIG1zZ2lkPSI3Nzg0NjczNjczNDQ2ODMzMDkxIj4iR2VkyZluIFrJmW5nIElEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2ZNbWkiIG1zZ2lkPSI1MTIzMjE4OTg5MTQxNTczNTE1Ij4iWsmZbmcgecO2bmzJmW5kaXJtyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDd01taSIgbXNnaWQ9IjkxMjk2NzgwNTY3OTUwMTY4NjciPiJayZluZyBnw7Z6bMmZeWlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQmFNbWkiIG1zZ2lkPSI0NTUxOTMwNjc5MjY3NzA1ODEiPiJayZluZyBxYWRhxJ9hc8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUHdkTW1pIiBtc2dpZD0iNzA0MzcxNTY4NzkwNTI1NDE5OSI+IlBhcm9sdSBkyZl5acWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUGluTW1pIiBtc2dpZD0iMzExMzExNzc4MDM2MTE5MDMwNCI+IlDEsE4gZMmZeWnFn23JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbmlwTW1pIiBtc2dpZD0iMzExMDUzNDY4MDU1Nzg1NzE2MiI+IkhhesSxcmRha8SxIG7Dtm1yyZl5yZkgesmZbmcgZWRpbGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ25pck1taSIgbXNnaWQ9IjMwNjIxMDIxMjE0MzA1NDg3MzEiPiJayZluZ2zJmXJpbiBzYXnEsSBtyZloZHVkbGHFn2TEsXLEsWzEsWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJUaHJlZVdDTW1pIiBtc2dpZD0iOTA1MTA0NzE3MDMyMTE5MDM2OCI+IsOcw6cgeW9sbHUgesmZbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSdWFjTW1pIiBtc2dpZD0iNzgyNzg4NzQ1OTEzODMwODg4NiI+IlhvxZ9hZ8mZbG3JmXogesmZbmdsyZlyZMmZbiBpbXRpbmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbmRNbWkiIG1zZ2lkPSIzMTE2NDQ2MjM3MDgxNTc1ODA4Ij4iw4dhdGTEsXLEsWxtYSB6yZluZ2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJEbmRNbWkiIG1zZ2lkPSIxMjY1NDc4OTMyNDE4MzM0MzMxIj4iTmFyYWhhdCBldG3JmXlpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T25OZXh0Q2FsbE9uIiBtc2dpZD0iNDI5NDE1NDA5MTQ1NzgxOTIzIj4iQWTJmXTJmW4gesmZbmcgZWTJmW5pbiBJRFwnc2kgbcmZaGR1ZGxhxZ9kxLFyxLFsxLFyLiBOw7Z2YsmZdGkgesmZbmc6IE3JmWhkdWRsYcWfZMSxcsSxbMSxYiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T25OZXh0Q2FsbE9mZiIgbXNnaWQ9IjMwOTI5MTgwMDYwNzc4NjQ2MjQiPiJBZMmZdMmZbiB6yZluZyBlZMmZbmluIElEXCdzaSBtyZloZHVkbGHFn2TEsXLEsWzEsXIuIE7DtnZiyZl0aSB6yZluZzogTcmZaGR1ZGxhxZ9kxLFyxLFsbWF5xLFiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPZmZOZXh0Q2FsbE9uIiBtc2dpZD0iNjE3OTQyNTE4Mjg1NjQxODQ2NSI+IkFkyZl0yZluIHrJmW5nIGVkyZluaW4gSURcJ3NpIG3JmWhkdWRsYcWfZMSxcsSxbG3EsXIuIE7DtnZiyZl0aSB6yZluZzogTcmZaGR1ZGxhxZ9kxLFyxLFsxLFiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPZmZOZXh0Q2FsbE9mZiIgbXNnaWQ9IjI1Njc5OTg2MzMxMjQ0MDg1NTIiPiJBZMmZdMmZbiB6yZluZyBlZMmZbmluIElEXCdzaSBtyZloZHVkbGHFn2TEsXLEsWxtxLFyLiBOw7Z2YsmZdGkgesmZbmc6IE3JmWhkdWRsYcWfZMSxcsSxbG1hecSxYiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VOb3RQcm92aXNpb25lZCIgbXNnaWQ9Ijg2MTQ4MzAxODA1MDg2ODY2NjYiPiJYaWRtyZl0IHTJmW1pbiBlZGlsbcmZeWliLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJQZXJtYW5lbnQiIG1zZ2lkPSIzMzc3MzcxMTQ1OTI2ODM1NjcxIj4iU2l6IHrJmW5nIGVkyZluaW4gSUQgbml6YW1sYXLEsW7EsSBkyZl5acWfyZkgYmlsbcmZenNpei4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkQ2hhbmdlZFRpdGxlIiBtc2dpZD0iNTU5MjE4OTM5ODk1NjE4NzQ5OCI+Ik3JmWhkdWRsYcWfZMSxcsSxbG3EscWfIGtlw6dpZCBkyZl5acWfZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25EYXRhIiBtc2dpZD0iODY1Mzc5NDc4NDY5MDA2NTU0MCI+IkRhdGEgeGlkbcmZdCBiYcSfbMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25FbWVyZ2VuY3kiIG1zZ2lkPSI2NTgxMTYzNzc5MDcyODMzNjY1Ij4iVMmZY2lsaSB4aWRtyZl0IGJhxJ9sxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbk5vcm1hbCIgbXNnaWQ9IjQ5NTM4NjcwMTEzODk3NTA2NzMiPiJTyZlzIHhpZG3JmXRpIGJhxJ9sxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkFsbFZvaWNlIiBtc2dpZD0iMzM5Njk2MzY1MjEwODE1MTI2MCI+IkLDvHTDvG4gU8mZcyB4aWRtyZl0bMmZcmkgYmHEn2zEsWTEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25TbXMiIG1zZ2lkPSI4MzE0MzUyMzI3NDYxNjM4ODk3Ij4iU01TIHhpZG3JmXRpIGJsb2tsYW7EsWIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VEYXRhIiBtc2dpZD0iOTk2NjM2NDg3MTA2MTcxMzIwIj4iU8mZcy9kYXRhIHhpZG3JmXRsyZlyaSBibG9rbGFuxLFiLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblZvaWNlU21zIiBtc2dpZD0iMTg4ODU4ODE1Mjc5MjAyMzg3MyI+IlPJmXMvU01TIHhpZG3JmXRsyZlyaSBibG9rbGFuxLFiLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkFsbCIgbXNnaWQ9IjU2NDMwMjgyNjQ0NjYwOTI4MjEiPiJCw7x0w7xuIHPJmXMvZGF0YS9TTVMgeGlkbcmZdGzJmXJpIGJhxJ9sxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1ZvaWNlIiBtc2dpZD0iMTI1ODM5MzgxMjMzNTI1ODAxOSI+IlPJmXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhIiBtc2dpZD0iODcyNDU2NzgyMDc3OTM3ODkzIj4iTcmZbHVtYXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NGQVgiIG1zZ2lkPSI1NTY2NjI0OTk4ODQwNDg2NDc1Ij4iRkFLUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1NNUyIgbXNnaWQ9IjIwMTU0NjAzNzM3MDE1Mjc0ODkiPiJTTVMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhQXN5bmMiIG1zZ2lkPSI0NTIzNDU0NzgzNDk4NTUxNDY4Ij4iQXN5bmMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhU3luYyIgbXNnaWQ9Ijc1MzAwMDA1MTk2NDYwNTQ3NzYiPiJTaW54Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzUGFja2V0IiBtc2dpZD0iNjk5MTAwNjU1Nzk5MzQyMzQ1MyI+IlBha2V0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzUEFEIiBtc2dpZD0iMzIzNTI1OTA4NTY0ODI3MTAzNyI+IlBBRCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MCIgbXNnaWQ9IjcxNzAzMzU0NzIxOTg2OTQ5NDUiPiJSb21pbnEgZ8O2c3TJmXJpY2lzaSBpxZ9syZlrZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxIiBtc2dpZD0iNTMxNDg2MTUxOTc1MjUzODkyMiI+IlJvbWlucSBnw7ZzdMmZcmljaXNpIGnFn2zJmWsgZGV5aWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDIiIG1zZ2lkPSI4OTY5OTI5MDQ5MDgxMjY4MTE1Ij4iUm9taW5xIGfDtnN0yZlyaWNpc2kgeWFuxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQzIiBtc2dpZD0iNTE0ODI1NTAyNzA0Mzk0MzMxNyI+IlFvbsWfdWx1cWRhbiBLyZluYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDQiIG1zZ2lkPSI4ODA4NDU2NjgyNTUwNzk2NTMwIj4iQmluYWRhbiBryZluYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDUiIG1zZ2lkPSI3NjA0MDYzMjUyODUwMzU0MzUwIj4iUm9taW5xIC0gQXJ6dW9sdW5hbiBzaXN0ZW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDYiIG1zZ2lkPSIyMDU5NDQwODI1NzgyODcxNTEzIj4iUm9taW5xIC0gTcO8bWvDvG4gc2lzdGVtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ3IiBtc2dpZD0iNzExMjA3ODcyNDA5NzIzMzYwNSI+IlJvbWlucSAtIEFseWFucyBwYXJ0bnlvcnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDgiIG1zZ2lkPSI1OTg5NTY5Nzc4NjA0MDg5MjkxIj4iUm9taW5xIC0gUHJlbWl1bSBwYXJ0bnlvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0OSIgbXNnaWQ9Ijc5NjkyOTY4MTEzNTUxNTI0OTEiPiJSb3VtaW5xIC0gVGFtIFhpZG3JmXQgRnVua3Npb25hbGzEscSfxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDEwIiBtc2dpZD0iMzk5MjkwNjk5OTgxNTMxNjQxNyI+IlJvdW1pbnEgLSBRaXNtyZluIFhpZG3JmXQgRnVua3Npb25hbGzEscSfxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDExIiBtc2dpZD0iNDE1NDQ3Njg1NDQyNjkyMDk3MCI+IlJvdW1pbnEgQmFubmVyaSBBw6fEsXFkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxMiIgbXNnaWQ9IjExODkwNzExMTk5OTI3MjYzMjAiPiJSb2FtaW5nIEJhbm5lciBPZmYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dFNlYXJjaGluZyIgbXNnaWQ9IjgzNjAxNDE4ODU5NzIyNzk5NjMiPiJYaWRtyZl0IGF4dGFyxLFsxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZU5vdEZvcndhcmRlZCIgbXNnaWQ9IjE2ODM2ODU4ODM4NDEyNzI1NjAiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjogWcO2bmzJmW5kaXJpbG3JmWRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZUZvcndhcmRlZCIgbXNnaWQ9IjEzMDI5MjIxMTc0OTg1OTA1MjEiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IkRJQUxJTkdfTlVNQkVSIj57MX08L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZUZvcndhcmRlZFRpbWUiIG1zZ2lkPSI5MjA2MjUxNzM2NTI3MDg1MjU2Ij4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz46IDx4bGlmZjpnIGlkPSJESUFMSU5HX05VTUJFUiI+ezF9PC94bGlmZjpnPiA8eGxpZmY6ZyBpZD0iVElNRV9ERUxBWSI+ezJ9PC94bGlmZjpnPiBzYW5pecmZIHNvbnJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZVJlZ2lzdGVyZWQiIG1zZ2lkPSI1MDczMjM3ODI3NjIwMTY2Mjg1Ij4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz46IFnDtm5syZluZGlyaWxtyZlkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVSZWdpc3RlcmVkVGltZSIgbXNnaWQ9IjY3ODE2MjE5NjQzMjA2MzUxNzIiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjogWcO2bmzJmW5kaXJpbG3JmWRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmNDb21wbGV0ZSIgbXNnaWQ9IjMxMTg4NDgyMzA5NjY4ODY1NzUiPiLDlnrJmWxsaWsga29kdSB0YW1hbWxhbmTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmY0Vycm9yIiBtc2dpZD0iMzMyNzU2MDEyNjU4ODUwMDc3NyI+IsaPbGFxyZkgcHJvYmxlbWkgdsmZIHlhIHlhbmzEscWfIGZ1bmtzaXlhIGtvZHUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yT2siIG1zZ2lkPSIxMTkxOTE5Mzc4MDgzNDcyMjA0Ij4iT0siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3IiIG1zZ2lkPSI3OTU2MzkyNTExMTQ2Njk4NTIyIj4ixZ7JmWLJmWvJmSB4yZl0YXPEsSB2YXIgaWRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckxvb2t1cCIgbXNnaWQ9IjQ3MTE2ODc0NTYxMTE5NjMxNjMiPiJVUkwgdGFwxLFsYSBiaWxtyZlkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JVbnN1cHBvcnRlZEF1dGhTY2hlbWUiIG1zZ2lkPSI2Mjk5OTgwMjgwNDQyMDc2Nzk5Ij4iU2F5dCBhdXRlbnRpZmlrYXNpeWEgc3hlbWkgZMmZc3TJmWtsyZlubWlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckF1dGgiIG1zZ2lkPSIxNDM1MDY1NjI5NDM4MDQ0NTM0Ij4iVMmZc2RpcSBlZGlsyZkgYmlsbcmZZGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yUHJveHlBdXRoIiBtc2dpZD0iMTc4ODIwNzAxMDU1OTA4MTMzMSI+IlByb2tzaSBzZXJ2ZXIgdmFzaXTJmXNpbMmZIHTJmXNkaXFsyZlubcmZIHXEn3Vyc3V6IG9sZHUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yQ29ubmVjdCIgbXNnaWQ9Ijg3MTQyNzMyMzYzNjQ2NDA1NDkiPiJTZXJ2ZXLJmSBxb8WfdWxhIGJpbG3JmWRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvcklPIiBtc2dpZD0iMjM0MDU1ODE5NzQ4OTMwMjE4OCI+IlNlcnZlcmzJmSDJmWxhccmZIGFsxLFubWFkxLEuIFNvbnJhIGPJmWhkIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVGltZW91dCIgbXNnaWQ9IjQ3NDM0MDM3MDM3NjI4ODM5NTQiPiJTZXJ2ZXIgaWzJmSBvbGFuIMmZbGFxyZkgemFtYW4gYcWfxLFtxLFuYSBtyZlydXogcWFsZMSxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclJlZGlyZWN0TG9vcCIgbXNnaWQ9Ijg2Nzk1OTYwOTAzOTI3Nzk1MTYiPiJCdSBzyZloaWbJmWTJmSBoyZlkZGluZMmZbiDDp294IHNlcnZlciB5w7ZubMmZbmRpcmlsbcmZbMmZcmkgdmFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclVuc3VwcG9ydGVkU2NoZW1lIiBtc2dpZD0iNTAxNTczMDgxMjkwNjE5MjIwOCI+IlByb3Rva29sIGTJmXN0yZlrbMmZbm1pci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGYWlsZWRTc2xIYW5kc2hha2UiIG1zZ2lkPSI5NjU0OTYwNjAwMDY1ODY0MSI+IkfDvHbJmW5saSBiYcSfbGFudMSxIHlhcmFkxLFsYSBiaWxtyZlkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JCYWRVcmwiIG1zZ2lkPSIzNjM2OTI5NzIyNzI4ODgxOTcyIj4iVVJMIHlhbmzEscWfIG9sZHXEn3Ugw7zDp8O8biBzyZloaWbJmW5pIGHDp21hcSBtw7xta8O8biBvbG1hZMSxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckZpbGUiIG1zZ2lkPSIyMTcwNzg4NTE1MDUyNTU4Njc2Ij4iRmF5bGEgZ2lyacWfIGJhxZ8gdHV0bWFkxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yRmlsZU5vdEZvdW5kIiBtc2dpZD0iNjIwMzg1NjYxMjA0MjY1NTA4NCI+IlTJmWzJmWIgb2x1bmFuIGZheWwgdGFwxLFsbWFkxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVG9vTWFueVJlcXVlc3RzIiBtc2dpZD0iMTIzNTM5NjkyNzA4NzE4ODI1MyI+IkjJmWRkaW5kyZluIMOnb3ggc29yxJ91IGnFn2zJmW5pbGlyLiBEYWhhIHNvbnJhIHlveGxhecSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4OTY3NzEwMDI1MDM2MTYzODIyIj4iPHhsaWZmOmcgaWQ9IkFDQ09VTlQiPiUxJHM8L3hsaWZmOmc+IMO8w6fDvG4gZ2lyacWfIHjJmXRhc8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VTeW5jIiBtc2dpZD0iODM1MzUyMzA2MDI2OTMzNTY2NyI+IlNpbnhyb25sYcWfZMSxcm1hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VTeW5jTm90aWZpY2F0aW9uVGl0bGUiIG1zZ2lkPSIzOTc3NDMzNDkxOTE5MDE0NTgiPiJTaW54cm9ubGHFn2TEsXJtYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRTZXJ2aWNlVG9vTWFueURlbGV0ZXNOb3RpZmljYXRpb25EZXNjIiBtc2dpZD0iODEwMDk4MTQzNTA4MDY5NjQzMSI+IkjJmWRkaW5kyZluIMOnb3ggPHhsaWZmOmcgaWQ9IkNPTlRFTlRfVFlQRSI+JXM8L3hsaWZmOmc+IHNpbGlubcmZbMmZcmkgdmFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxvd19tZW1vcnkiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY0OTQwMTkyMzQxMDIxNTQ4OTYiPiJQbGFuxZ9ldGluIHlhZGRhxZ/EsSBkb2x1ZHVyLiBCb8WfIHllciDDvMOnw7xuIGLJmXppIGZheWxsYXLEsSBzaWxpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfbWVtb3J5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ3NTk5OTI4NjY4MDAwMDU0MSI+IlRlbGVmb251biB5YWRkYcWfxLEgZG9sdWR1ci4gQm/FnyB5ZXIgw7zDp8O8biBiyZl6aSBmYXlsbGFyxLEgc2lsaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWUiIG1zZ2lkPSI2NTQ1Njk2MDA3NjMxNDA0MjkyIj4iTcmZbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvd2VyX2RpYWxvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODU0NTM1MTQyMDg2NTIwMjg1MyI+IlBsYW7Fn2V0IHNlw6dpbWzJmXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfZGlhbG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTMxOTkxOTA3NTQ2Mzk4ODYzOCI+IlRlbGVmb24gc2XDp2ltbMmZcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaWxlbnRfbW9kZSIgbXNnaWQ9IjcxNjc3MDMzODk4MDI2MTg2NjMiPiJTyZlzc2l6IHJlamltIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHVybl9vbl9yYWRpbyIgbXNnaWQ9IjM5MTI3OTMwOTIzMzk5NjIzNzEiPiJTaW1zaXppIGnFn8mZIHNhbMSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InR1cm5fb2ZmX3JhZGlvIiBtc2dpZD0iODE5ODc4NDk0OTk4NzA2MjM0NiI+IlNpbXNpeiByYWJpdMmZbmkgc8O2bmTDvHLDvG4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fbG9jayIgbXNnaWQ9Ijc5OTA5NDY1NTQ5NjA5ODE1MyI+IkVrcmFuIGtpbGlkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvd2VyX29mZiIgbXNnaWQ9IjQyNjY2MTQxMDc0MTI4NjUwNDgiPiJTw7ZuZMO8ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3NpbGVudCIgbXNnaWQ9IjMxOTI5ODE2MzAxODQ3MzA3OCI+IlrJmW5nIGRlYWt0aXZkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaWxlbnRfbW9kZV92aWJyYXRlIiBtc2dpZD0iNzA3MjA0MzM4ODU4MTU1MTM5NSI+IlrJmW5nIHZpYnJhc2l5YWRhZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3JpbmciIG1zZ2lkPSI4NTkyMjQxODE2MTk0MDc0MzUzIj4iWsmZbmd2dXJhbiBhw6fEsXFkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2h1dGRvd25fcHJvZ3Jlc3MiIG1zZ2lkPSIyMjgxMDc5MjU3MzI5OTgxMjAzIj4iU8O2bmTDvHLDvGzDvHIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9jb25maXJtIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMzg1NzQ1MTc5NTU1NzMxNDcwIj4iUGxhbsWfZXRpbml6IHPDtm7JmWPJmWsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2h1dGRvd25fY29uZmlybSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY0OTc5MjE3NTI0MjgyMTM1MyI+IlRlbGVmb251bnV6IHPDtm7JmWPJmWsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2h1dGRvd25fY29uZmlybV9xdWVzdGlvbiIgbXNnaWQ9IjI5MDY1NDQ3Njg4ODExMzYxODMiPiJTw7ZuZMO8cm3JmWsgaXN0yZl5aXJzaXo/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVib290X3NhZmVtb2RlX3RpdGxlIiBtc2dpZD0iNzA1NDUwOTkxNDUwMDE0MDM2MSI+IlTJmWhsw7xryZlzaXogcmVqaW1kyZkgeWVuaWTJmW4gYmHFn2xhecSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYm9vdF9zYWZlbW9kZV9jb25maXJtIiBtc2dpZD0iNTUyOTM5NDQ1MDI3ODQ2NjgiPiJUyZlobMO8a8mZc2l6IHJlamltZMmZIHllbmlkyZluIGJhxZ9sYW1hcSBpc3TJmXlpcnNpbml6IG1pPyBCdSwgcXVyYcWfZMSxcmTEscSfxLFuxLF6IGLDvHTDvG4gw7zDp8O8bmPDvCB0yZlyyZlmIHTJmXRiaXFsyZlyaW5pIGRlYWt0aXYgZWTJmWPJmWsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVjZW50X3Rhc2tzX3RpdGxlIiBtc2dpZD0iMzY5MTc2NDYyMzYzODEyNzg4OCI+IlNvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX3JlY2VudF90YXNrcyIgbXNnaWQ9Ijg3OTQ5MDY2NTg3MzIxOTM0NzMiPiJIZcOnIGJpciBzb24gdMmZdGJpcSB5b3hkdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQwODQ3NzE0MDA4ODA1MzY2NSI+IlBsYW7Fn2V0IHNlw6dpbWzJmXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNDA2NDE2ODMxNTQxNjE1MjU4Ij4iVGVsZWZvbiBzZcOnaW1syZlyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fbG9jayIgbXNnaWQ9IjI4NDQ5NDUxOTE3OTIxMTk3MTIiPiJFa3JhbiBraWxpZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3Bvd2VyX29mZiIgbXNnaWQ9IjQ0NzE4Nzk0NDA4Mzk4Nzk3MjIiPiJTw7ZuZMO8ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fYnVnX3JlcG9ydCIgbXNnaWQ9Ijc5MzQwMTA1Nzg5MjIzMDQ3OTkiPiJCYXEgaGVzYWJhdMSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X3RpdGxlIiBtc2dpZD0iMjY2NzQ5NDgwMzc0MjU0ODUzMyI+IkJhccSxIHjJmWLJmXIgdmVyaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfbWVzc2FnZSIgbXNnaWQ9IjM5ODQ0NzA0ODc1MDM1MDQ1NiI+IkJ1LCBzaXppbiBoYXrEsXJrxLEgY2loYXogZHVydW11IGhhcXHEsW5kYSBtyZlsdW1hdCB0b3BsYXlhY2FxIGtpLCBlbGVrdHJvbiBtyZlrdHViIMWfyZlrbGluZMmZIGfDtm5kyZlyc2luLiBCYXEgcmFwb3J0dW5hIGJhxZ9sYW1hcSDDvMOnw7xuIGJpciBheiB2YXh0IGxhesSxbSBvbGEgYmlsyZlyLCBiaXIgYXogc8mZYnIgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3RvZ2dsZV9zaWxlbnRfbW9kZSIgbXNnaWQ9IjgyMTk1MjUzNDQyNDY4MTA5MjUiPiJTyZlzc2l6IHJlamltIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9zaWxlbnRfbW9kZV9vbl9zdGF0dXMiIG1zZ2lkPSIzMjg5ODQxOTM3MDAzNzU4ODA2Ij4iU8mZcyBxYXBhbMSxZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fc2lsZW50X21vZGVfb2ZmX3N0YXR1cyIgbXNnaWQ9IjE1MDYwNDY1NzkxNzcwNjY0MTkiPiJTyZlzIEFrdGl2ZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnNfdG9nZ2xlX2FpcnBsYW5lX21vZGUiIG1zZ2lkPSI1ODg0MzMwMzA2OTI2MzA3NDU2Ij4iVMmZeXlhcsmZIHJlamltaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zX2FpcnBsYW5lX21vZGVfb25fc3RhdHVzIiBtc2dpZD0iMjcxOTU1Nzk4MjYwODkxOTc1MCI+IlXDp3XFnyByZWppbWkgYcOnxLFxZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zX2FpcnBsYW5lX21vZGVfb2ZmX3N0YXR1cyIgbXNnaWQ9IjUwNzUwNzA0NDI4NTQ0OTAyOTYiPiJUyZl5eWFyyZkgcmVqaW1pIHFhcGFsxLFkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5mb19vdmVyZmxvdyIgbXNnaWQ9IjUzMDE5ODE3NDE3MDUzNTQ5OTMiPiI5OTkrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2FmZU1vZGUiIG1zZ2lkPSIyNzg4MjI4MDYxNTQ3OTMwMjQ2Ij4iVMmZaGzDvGvJmXNpeiByZWppbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfc3lzdGVtX2xhYmVsIiBtc2dpZD0iNjU3NzM3NTMzNTcyODU1MTMzNiI+IkFuZHJvaWQgc2lzdGVtaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jb3N0TW9uZXkiIG1zZ2lkPSI1NDI5ODA4MjE3ODYxNDYwNDAxIj4iw5ZkyZluacWfbGkgeGlkbcmZdGzJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Nvc3RNb25leSIgbXNnaWQ9IjMyOTMzMDE5MDM0MDk4Njk0OTUiPiJYyZlyYyB0dXR1bGFjYXEgyZltyZlsaXl5YXRsYXIgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9tZXNzYWdlcyIgbXNnaWQ9Ijc1MjEyNDkxNDg0NDU0NTY2NjIiPiJTaXppbiBtZXNhamxhcsSxbsSxeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbWVzc2FnZXMiIG1zZ2lkPSI3ODIxOTk5MDcxMDAzNjk5MjM2Ij4iU01TLCBlbGVrdHJvbiBwb8OndCB2yZkgZGlnyZlyIG1lc2FqbGFyxLEgb3h1eXVyIHbJmSB5YXrEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3BlcnNvbmFsSW5mbyIgbXNnaWQ9IjM1MTkxNjMxNDEwNzA1MzM0NzQiPiLFnsmZeHNpIG3JmWx1bWF0xLFuxLF6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19wZXJzb25hbEluZm8iIG1zZ2lkPSI4NDI2NDUzMTI5Nzg4ODYxMzM4Ij4iS29udGFrdCBrYXJ0xLFuxLF6ZGEgc2F4bGFuxLFsYW4gbcmZbHVtYXRsYXLEsW7EsXphIGJpcmJhxZ9hIGdpcmnFny4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc29jaWFsSW5mbyIgbXNnaWQ9IjU3OTkwOTY2MjM0MTIwNDM3OTEiPiJTb3NpYWwgbcmZbHVtYXTEsW7EsXoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3NvY2lhbEluZm8iIG1zZ2lkPSI3MTI5ODQyNDU3NjExNjQzNDkzIj4iS29udGFrdGxhcsSxbsSxeiB2yZkgc29zaWFsIMmZbGFxyZlsyZlyaW5peiBoYXFxxLFuZGEgbcmZbHVtYXRhIGJpcmJhxZ9hIGdpcmnFny4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbG9jYXRpb24iIG1zZ2lkPSI2MzUxNDk3NDI0MzY2OTIwNDkiPiJZZXJsyZnFn23JmW5peiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbG9jYXRpb24iIG1zZ2lkPSI1NzA0Njc5NzYzMTI0MTcwMTAwIj4iRml6aWtpIGFkcmVzaW5pemkgbW9uaXRvcmlucSBlZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9uZXR3b3JrIiBtc2dpZD0iNTgwODk4MzM3NzcyNzEwOTgzMSI+IsWeyZliyZlryZkga29tbXVuaWthc2l5YXPEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbmV0d29yayIgbXNnaWQ9IjQ0NzgyOTk0MTMyNDE4NjE5ODciPiJNw7x4dMmZbGlmIMWfyZliyZlryZkgeMO8c3VzaXl5yZl0bMmZcmluyZkgZGF4aWwgb2wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2JsdWV0b290aE5ldHdvcmsiIG1zZ2lkPSIxNTg1NDAzNTQ0MTYyMTI4MTA5Ij4iQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19ibHVldG9vdGhOZXR3b3JrIiBtc2dpZD0iNTYyNTI4ODU3NzE2NDI4MjM5MSI+IkJsdWV0b290aCDDvHrJmXJpbmTJmW4gY2loYXpsYXJhIHbJmSDFn8mZYsmZa8mZbMmZcsmZIGRheGlsIG9sLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hdWRpb1NldHRpbmdzIiBtc2dpZD0iODMyOTI2MTY3MDE1MTg3MTIzNSI+IkF1ZGlvIEF5YXJsYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2F1ZGlvU2V0dGluZ3MiIG1zZ2lkPSIyNjQxNTE1NDAzMzQ3NTY4MTMwIj4iQXVkaW8gYXlhcmxhcsSxIGTJmXlpxZ9pbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYWZmZWN0c0JhdHRlcnkiIG1zZ2lkPSI2MjA5MjQ2NjUzNDI0Nzk4MDMzIj4iQmF0YXJleWF5YSB0yZlzaXIgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWZmZWN0c0JhdHRlcnkiIG1zZ2lkPSI2NDQxMjc1MzIwNjM4OTE2OTQ3Ij4iQmF0YXJleWFuxLF6xLFuIHRleiBxdXJ0YXJtYXPEsW5hIHPJmWLJmWIgb2xhbiBmdW5rc2l5YWxhciBpc3RpZmFkyZkgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jYWxlbmRhciIgbXNnaWQ9IjU4NjM1MDg0Mzc3ODM2ODM5MDIiPiJUyZlxdmltIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19jYWxlbmRhciIgbXNnaWQ9IjU3Nzc1MzQzMTY5ODIxODQ0MTYiPiJUyZlxdmltyZkgdsmZIHTJmWRiaXJsyZlyyZkgYmlyYmHFn2EgZ2lyacWfLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaWN0aW9uYXJ5IiBtc2dpZD0iNDE0ODU5NzEyODg0MzY0MTM3OSI+IsSwc3RpZmFkyZnDp2kgTMO8xJ/JmXRpbmkgT3h1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kaWN0aW9uYXJ5IiBtc2dpZD0iNzkyMTE2NjM1NTk2NDc2NDQ5MCI+IsSwc3RpZmFkyZnDp2kgbMO8xJ/JmXRpbmTJmWtpIHPDtnpsyZlyaSBveHV5dXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjgwOTAyMzc3MDI0MzI1NzY3ODgiPiLEsHN0aWZhZMmZw6dpIEzDvMSfyZl0aW5pIFlheiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iMjcxMTU2MTk5NDQ5NzM2MTY0NiI+IsSwc3RpZmFkyZnDp2kgbMO8xJ/JmXRpbsmZIHPDtnpsyZlyIMmZbGF2yZkgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYm9va21hcmtzIiBtc2dpZD0iMTk0OTUxOTY3MzEwMzk2ODIyOSI+IsaPbGbJmWNpbmzJmXIgdsmZIFRhcml4w6fJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYm9va21hcmtzIiBtc2dpZD0iNDE2OTc3MTYwNjI1Nzk2MzAyOCI+IsaPbGbJmWNpbmzJmXLJmSB2yZkgYnJhdXplciB0YXJpeGluyZkgYmlyYmHFn2EgaWNhesmZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kZXZpY2VBbGFybXMiIG1zZ2lkPSI2MTE3NzA0NjI5NzI4ODI0MTAxIj4iWsmZbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RldmljZUFsYXJtcyIgbXNnaWQ9IjQ3NjkzNTYzNjIyNTE2NDExNzUiPiJBbGFybSBxdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3ZvaWNlbWFpbCIgbXNnaWQ9IjQxNjIyMzcxNDUwMjc1OTIxMzMiPiJTyZlzbGkgcG/Dp3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3ZvaWNlbWFpbCIgbXNnaWQ9IjI0OTg0MDM5Njk4NjI5NTEzOTMiPiJTyZlzIHBvw6d0dW5hIGJpcmJhxZ9hIMOnxLF4xLHFny4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbWljcm9waG9uZSIgbXNnaWQ9IjE3MTUzOTkwMDI1MDA0MzQ2NCI+Ik1pa3JvZm9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19taWNyb3Bob25lIiBtc2dpZD0iNzEwNjYxODI4NjkwNTczODQwOCI+IkF1ZGlvIHlhem1hcSDDvMOnw7xuIG1pa3JvZm9uYSBiaXJiYcWfYSBnaXJpxZ8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2NhbWVyYSIgbXNnaWQ9IjQ4MjAzNzI0OTU4OTQ1ODY2MTUiPiJLYW1lcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2NhbWVyYSIgbXNnaWQ9IjI5MzM2NjczNzIyODk1Njc3MTQiPiLFnsmZa2lsIHbJmSB5YSB2aWRlbyDDp8mZa23JmWsgw7zDp8O8biBrYW1lcmF5YSBiaXJiYcWfYSDDp8SxeMSxxZ8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3NjcmVlbmxvY2siIG1zZ2lkPSI4Mjc1NTAwMTczMzMwNzE4MTY4Ij4iRWtyYW4ga2lsaWRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zY3JlZW5sb2NrIiBtc2dpZD0iNzA2NzQ5NzEyODkyNTQ5OTQwMSI+IkNpaGF6xLFuxLF6ZGFrxLEga2lsaWQgZWtyYW7EsW7EsW4gaMmZcsmZa8mZdGluyZkgdMmZc2lyIGV0bcmZIGJhY2FyxLHEn8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2FwcEluZm8iIG1zZ2lkPSI4MDI4Nzg5NzYyNjM0MTQ3NzI1Ij4iVMmZdGJpcSBtyZlsdW1hdGxhcsSxbsSxeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYXBwSW5mbyIgbXNnaWQ9IjM5NTAzNzg1MzgwNDk2MjU5MDciPiJDaWhhesSxbsSxemRha8SxIGRpZ8mZciB0yZl0YmlxbMmZcmluIGRhdnJhbsSxxZ/EsW5hIHTJmXNpciBldG3JmWsgYmFjYXLEscSfxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3dhbGxwYXBlciIgbXNnaWQ9IjM4NTAyODAxNTgwNDExNzU5OTgiPiJEaXZhciBrYcSfxLF6xLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3dhbGxwYXBlciIgbXNnaWQ9IjU2MzA0MTc4NTQ3NTA1NDAxNTQiPiJDaWhhesSxbiBkaXZhciBrYcSfxLF6xLEgYXlhcmxhcsSxbsSxIGTJmXlpxZ9pbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3lzdGVtQ2xvY2siIG1zZ2lkPSI0MDY1MzU3NTkyMzY2MTI5OTIiPiJTYWF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeXN0ZW1DbG9jayIgbXNnaWQ9IjM5NDQzNTk4MzM2MjQwOTQ5OTIiPiJDaWhhesSxbiB2YXh0IHbJmSB6YW1hbiB6b2xhxJ/EsW7EsSBkyZl5acWfaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N0YXR1c0JhciIgbXNnaWQ9IjIwOTU4NjI1NjgxMTM5NDUzOTgiPiJTdGF0dXMgcGFuZWxpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdGF0dXNCYXIiIG1zZ2lkPSI2MjQyNTkzNDMyMjI2ODA3MTcxIj4iQ2loYXrEsW4gc3RhdHVzIHBhbmVsaSBheWFybGFyxLFuxLF6xLEgZMmZeWnFn2lyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zeW5jU2V0dGluZ3MiIG1zZ2lkPSIzMzQxOTkwOTg2MTQ3ODI2NTQxIj4iU2lueCBBeWFybGFyxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N5bmNTZXR0aW5ncyIgbXNnaWQ9Ijc2MDMxOTUyNjUxMjkwMzE3OTciPiJTaW54cm9uaXphc2l5YSBuaXphbWxhcsSxbmEgw6fEsXjEscWfLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hY2NvdW50cyIgbXNnaWQ9IjMzNTk2NDYyOTExMjUzMjU1MTkiPiJIZXNhYmxhcsSxbsSxeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWNjb3VudHMiIG1zZ2lkPSI0OTQ4NzMyNjQxODI3MDkxMzEyIj4ixo9sw6dhdMSxbWzEsSBoZXNhYmxhcmEgZGF4aWwgb2x1bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfaGFyZHdhcmVDb250cm9scyIgbXNnaWQ9Ijc5OTgyMTQ5Njg3OTE1OTkzMjYiPiJIYXJkd2FyZSBrb250cm9sbGFyxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2hhcmR3YXJlQ29udHJvbHMiIG1zZ2lkPSI0MzU3MDU3ODYxMjI1NDYyNzAyIj4iRMmZc3TJmWtkyZlraSBhdmFkYW5sxLHEn2EgYmlyYmHFn2EgZ2lyacWfLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9waG9uZUNhbGxzIiBtc2dpZD0iOTA2NzE3Mzk4ODMyNTg2NTkyMyI+IlRlbGVmb24gesmZbmdsyZlyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfcGhvbmVDYWxscyIgbXNnaWQ9Ijc0ODk3MDE2MjA0NDYxODM3NzAiPiJUZWxlZm9uIHrJmW5nbMmZcmluyZkgbsmZemFyyZl0IGVkaW4sIHFleWTJmSBhbMSxbiB2yZkgaWRhcsmZIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N5c3RlbVRvb2xzIiBtc2dpZD0iNDY1MjE5MTY0NDA4MjcxNDA0OCI+IlNpc3RlbSBhbMmZdGzJmXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeXN0ZW1Ub29scyIgbXNnaWQ9IjgxNjIxMDI2MDIxOTA3MzQzMDUiPiJBxZ9hxJ/EsSBzyZl2aXl5yZlsaSDDp8SxeMSxxZ8gdsmZIHNpc3RlbSBpZGFyyZlldG3JmXNpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kZXZlbG9wbWVudFRvb2xzIiBtc2dpZD0iMzQ0NjE2NDU4NDcxMDU5NjUxMyI+IsSwbmtpxZ9hZiBhbMmZdGzJmXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kZXZlbG9wbWVudFRvb2xzIiBtc2dpZD0iNzA1ODgyODAzMjM1ODE0MjAxOCI+IsOWesmZbGxpa2zJmXIgeWFsbsSxeiB0yZl0YmlxIGRldmVsb3BlcmzJmXJpIMO8w6fDvG4gbGF6xLFtZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGlzcGxheSIgbXNnaWQ9IjQyNzk5MDk2NzYwMzY0MDI2MzYiPiJEaWfJmXIgdMmZdGJpcSDEsHN0aWZhZMmZw6dpIMSwbnRlcmZleXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kaXNwbGF5IiBtc2dpZD0iNjA1MTAwMjAzMTkzMzAxMzcxNCI+IkRpZ8mZciB0yZl0YmlxbMmZcmluIMSwc3RpZmFkyZnDp2kgxLBudGVyZmV5c2luyZkgdMmZc2lyIGVkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N0b3JhZ2UiIG1zZ2lkPSIxOTcxMTE4NzcwNTQ2MzM2OTY2Ij4iWWFkZGHFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3NDQyMzE4NTAyNDQ2ODc0OTk5Ij4iVVNCIHlhZGRhxZ9hIGRheGlsIG9sLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjkyMDMzMDIyMTQ5MTUzNTU3NzQiPiJTRCBrYXJ0YSBkYXhpbCBvbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNzkxOTAyNTYwMjI4MzU5MzkwNyI+IsaPbMOnYXTEsW1sxLFsxLFxIGZ1bmtzaXlhbGFyxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FjY2Vzc2liaWxpdHlGZWF0dXJlcyIgbXNnaWQ9IjQyMDUxOTY4ODE2NzgxNDQzMzUiPiJZYXJkxLFtw6fEsSB0ZXhub2xvZ2l5YSB0yZlsyZliIGVkyZkgYmlsyZljyZl5aSBmdW5rc2l5YWxhci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJldHJpZXZlV2luZG93Q29udGVudCIgbXNnaWQ9IjM5MDE3MTc5MzY5MzAxNzAzMjAiPiJQyZluY8mZcsmZbmluIG3JmXptdW51bnUgyZlsZMmZIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmV0cmlldmVXaW5kb3dDb250ZW50IiBtc2dpZD0iMzc3MjIyNTAwODYwNTMxMDY3MiI+IsaPbGFxyZlkyZkgb2xkdcSfdW51eiBwyZluY8mZcsmZbmluIG3JmXptdW51bnUgbsmZesmZcmTJmW4ga2XDp2lyaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXF1ZXN0VG91Y2hFeHBsb3JhdGlvbiIgbXNnaWQ9IjMxMDg3MjMzNjQ2NzY2NjczMjAiPiJUb3h1bmFyYXEgS8mZxZ9mIGV0IGZ1bmtzaXlhc8SxbsSxIHlhbmTEsXLEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmVxdWVzdFRvdWNoRXhwbG9yYXRpb24iIG1zZ2lkPSI1ODAwNTUyNTE2Nzc5MjQ5MzU2Ij4iVG94dW51bGFuIGhpc3PJmWzJmXIgc8mZc2zJmW5kaXJpbMmZY8mZayB2yZkgZWtyYW4gamVzdGzJmXJsyZkgaWRhcsmZIG9sdW5hIGJpbMmZY8mZay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJlcXVlc3RFbmhhbmNlZFdlYkFjY2Vzc2liaWxpdHkiIG1zZ2lkPSIxNzM5ODgxNzY2NTIyNTk0MDczIj4ixLBua2nFn2FmIGV0bWnFnyB2ZWIgyZlsw6dhdMSxbWzEsWzEscSfxLEgeWFuZMSxcsSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXF1ZXN0RW5oYW5jZWRXZWJBY2Nlc3NpYmlsaXR5IiBtc2dpZD0iNzg4MTA2Mzk2MTUwNzUxMTc2NSI+IlNrcmlwdGzJmXIgdMmZdGJpcSBtyZl6bXVudW51biBkYWhhIMmZbMOnYXTEsW1sxLEgb2xtYXPEsSDDvMOnw7xuIHF1cmHFn2TEsXLEsWxhIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJlcXVlc3RGaWx0ZXJLZXlFdmVudHMiIG1zZ2lkPSIyMTAzNDQwMzkxOTAyNDEyMTc0Ij4iWWF6ZMSxxJ/EsW7EsXogbcmZdG5pIGl6bMmZeWluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV9kZXNjX2NhblJlcXVlc3RGaWx0ZXJLZXlFdmVudHMiIG1zZ2lkPSI3NDYzMTM1MjkyMjA0MTUyODE4Ij4iS3JlZGl0IGthcnTEsSBuw7ZtcsmZbMmZcmkgdsmZIHBhcm9sbGFyIGtpbWkgxZ/JmXhzaSBtyZlsdW1hdGxhciBkYXhpbGRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0YXR1c0JhciIgbXNnaWQ9Ijc0MTcxOTI2Mjk2MDE4OTA3OTEiPiJzdGF0dXMgcGFuZWxpbmkgZGVha3RpdmzJmcWfZGlyIHbJmSB5YSBkyZl5acWfZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyIiBtc2dpZD0iODQzNDY2OTU0OTUwNDI5MDk3NSI+IlTJmXRiaXHJmSBzdGF0dXMgcGFuZWxpbmkgZGVha3RpdiBldG3JmXnJmSB2yZkgeWEgc2lzdGVtIGlrb25hbGFyxLFuxLEgyZlsYXbJmSBldG3JmWsgdsmZIHlhIHNpbG3JmWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0YXR1c0JhclNlcnZpY2UiIG1zZ2lkPSI3MjQ3MjgxOTExMzg3OTMxNDg1Ij4ic3RhdHVzIHBhbmVsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXR1c0JhclNlcnZpY2UiIG1zZ2lkPSI3MTYxMTM2NjA3OTU5NzYwNjAiPiJUyZl0YmlxyZkgc3RhdHVzIHBhbmVsaSBvbG1hxJ9hIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZXhwYW5kU3RhdHVzQmFyIiBtc2dpZD0iMTE0ODE5ODc4NTkzNzQ4OTI2NCI+InN0YXR1cyBwYW5lbGluaSBnZW5pxZ9syZl0bcmZayB2yZkgeWEgecSxxJ9tYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19leHBhbmRTdGF0dXNCYXIiIG1zZ2lkPSI2OTE3NTQ5NDM3MTI5NDAxMTMyIj4iVMmZdGJpccmZIHN0YXR1cyBwYW5lbGluaSBnZW5pxZ9syZluZGlybcmZecmZIHbJmSB5YSB5b3ggZXRtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wcm9jZXNzT3V0Z29pbmdDYWxscyIgbXNnaWQ9IjM5MDYwMDc4MzExOTI5OTA5NDYiPiJnZWTJmW4gesmZbmdsyZlyaW4gbWFyxZ9ydXR1bnUgZMmZeWnFn23JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wcm9jZXNzT3V0Z29pbmdDYWxscyIgbXNnaWQ9IjUzMzEzMTg5MzE5Mzc0MDIwNDAiPiJUyZl0YmlxyZkgesmZbmcgZXRtyZl5yZkgdsmZIHrJmW5nIGVkaWzJmW4gbsO2bXLJmW5pIGTJmXlpxZ9tyZl5yZkgaW1rYW4gdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gaXN0aWZhZMmZIGVkyZlyyZlrIGdlZMmZbiB6yZluZ2zJmXJpIGl6bMmZecmZLCB5w7ZubMmZbmRpcsmZIHbJmSB5YSBxYXLFn8Sxc8SxbsSxIGFsYSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlU21zIiBtc2dpZD0iODY3MzQ3MTc2ODk0Nzg5NTA4MiI+IlNNUyBxyZlidWwgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVNtcyIgbXNnaWQ9IjY0MjQzODc3NTQyMjg3NjY5MzkiPiJUyZl0YmlxyZkgTU1TIG1lc2FqbGFyxLFuxLEgYWxtYXEgdsmZIGVtYWwgZXRtyZlrIGljYXrJmXNpIHZlcmlyLiBCdSBvIGRlbcmZa2RpciBraSwgdMmZdGJpcSBzaXppbiBtZXNhamxhcsSxbsSxesSxIHNpesmZIGfDtnN0yZlybcmZZMmZbiBtb25pdG9yaW5xIGVkyZkgdsmZIHlhIHNpbMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVNbXMiIG1zZ2lkPSIxODIxMzE3MzQ0NjY4MjU3MDk4Ij4ibcmZdG4gbWVzYWpsYXLEsW7EsSBxyZlidWwgZWRpciAoTU1TKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVNbXMiIG1zZ2lkPSI1MzMwMTk0MzcyNjMyMTIyNjAiPiJUyZl0YmlxyZkgTU1TIG1lc2FqbGFyxLFuxLEgccmZYnVsIHbJmSBlbWFsIMO8w6fDvG4gaW1rYW4gdmVyaXIuIEJ1IG8gZGVtyZlrZGlyIGtpLCBidSB0yZl0YmlxIHNpesmZIGfDtnN0yZlybcmZZMmZbiBjaWhhesSxbsSxemEgZ8O2bmTJmXJpbMmZbiBtZXNhamxhcsSxwqBzaWzJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlRW1lcmdlbmN5QnJvYWRjYXN0IiBtc2dpZD0iMTgwMzQ3NzY2MDg0NjI4ODA4OSI+InTJmWNpbGkgeWF5xLFtbGFyxLEgccmZYnVsIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlRW1lcmdlbmN5QnJvYWRjYXN0IiBtc2dpZD0iODQ4NTI0MDcwMjYyNDMxOTc0Ij4iVMmZdGJpccmZIHTJmWNpbGkgeWF5xLFtIG1lc2FqbGFyxLFuxLEgccmZYnVsIHbJmSBlbWFsIGV0bcmZayBpY2F6yZlzaSB2ZXJpci4gQnUgaWNhesmZIGFuY2FxIHNpc3RlbSB0yZl0YmlxbMmZcmkgw7zDp8O8biBtw7xta8O8bmTDvHIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2VsbEJyb2FkY2FzdHMiIG1zZ2lkPSIxNTk4MzI4ODQzNjE5NjQ2MTY2Ij4ibW9iaWwgeWF5xLFtIG1lc2FqbGFyxLFuxLEgb3h1eXVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENlbGxCcm9hZGNhc3RzIiBtc2dpZD0iNjM2MTk3Mjc3NjA4MDQ1ODk3OSI+IlTJmXRiaXHJmSBzaXppbiB0ZWxlZm9udW51eiB0yZlyyZlmaW5kyZluIGFsxLFubcSxxZ8geWF5xLFtIG1lc2FqbGFyxLFuxLEgb3h1bWEgaWNhesmZc2kgdmVyaXIuIFRlbGVmb24geWF5xLFtxLEgYsmZemkgbcmZa2FubGFyZGEgb2xhbiBmw7Z2ccmZbGFkyZkgaGFkaXPJmWzJmXJsyZkgYmHEn2zEsSBzaXppIHjJmWLJmXJkYXIgZXRtyZlrIMO8w6fDvG4gccmZYnVsIGVkaWxpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGbDtnZxyZlsYWTJmSBtb2JpbCB5YXnEsW0gccmZYnVsIGVkaWxkaXlpIHphbWFuIHRlbGVmb251bnVuIHBlcmZvcm1hbnPEsW5hIHbJmSDJmW3JmWxpeXlhdMSxbmEgbcO8ZGF4aWzJmSBlZMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlbmRTbXMiIG1zZ2lkPSI1NjAwODMwNjEyMTQ3NjcxNTI5Ij4iU01TIG1lc2FqbGFyxLFuxLEgZ8O2bmTJmXJpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRTbXMiIG1zZ2lkPSI3MDk0NzI5Mjk4MjA0OTM3NjY3Ij4iVMmZdGJpccmZIFNNUyBtZXNhasSxIGfDtm5kyZlybcmZIGljYXrJmXNpIHZlcmlyLiBCdSBnw7Z6bMmZbmlsbcmZecmZbiDDtmTJmW5pxZ9syZlyyZkgc8mZYsmZYiBvbGEgYmlsyZlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgc2l6aW4gdMmZc2RpcWluaXogb2xtYWRhbiBtZXNhaiBnw7ZuZMmZcm3JmWtsyZkgc2l6yZkgw7ZkyZluacWfyZkgc8mZYsmZYiBvbGEgYmlsyZlybMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlbmRSZXNwb25kVmlhTWVzc2FnZVJlcXVlc3QiIG1zZ2lkPSI4NzEzODg5MTA1MzA1OTQzMjAwIj4ibWVzYWpsYSBjYXZhYiB2ZXJpbG3JmWxpIHTJmWRiaXJsyZlyIGfDtm5kyZlybcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRSZXNwb25kVmlhTWVzc2FnZVJlcXVlc3QiIG1zZ2lkPSI3MTA3NjQ4NTQ4NDY4Nzc4NzM0Ij4iVMmZdGJpccmZIHrJmW5nbMmZciDDvMOnw7xuIFwibWVzYWpsYSBjYXZhYmxhXCIgaGFkaXPJmWzJmXJpbmkgaWRhcsmZIGV0bcmZayDDvMOnw7xuIGRpZ8mZciBtZXNhamxhxZ9tYSB0yZl0YmlxbMmZcmluyZkgc29yxJ91bGFyxLFuIGfDtm5kyZlyaWxtyZlzaSBpY2F6yZlzaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTbXMiIG1zZ2lkPSI4NzQ1MDg2NTcyMjEzMjcwNDgwIj4idGVrc3QgbWVzYWpsYXLEsW7EsXrEsSBveHV5dXIgKFNNUyB2yZkgeWEgTU1TKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTbXMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI0Njc5ODE1NDg2ODQ3MzU1MjIiPiJUyZl0YmlxyZkgcGxhbsWfZXRpbml6ZMmZIHbJmSB5YSBTSU0ga2FydMSxbsSxemRhIHNheGxhbmFuIFNNUyBtZXNhamxhcsSxIG94dW1hxJ9hIGlta2FuIHZlcmlyLiBCdSBiw7x0w7xuIFNNUyBtZXNhamxhcsSxbiwgb25sYXLEsW4gbcmZem11bnVuZGFuIHbJmSBrb25maWRlbnNpYWxsxLHEn8SxbmRhbiBhc8SxbMSxIG9sbWFkYW4gb3h1bm1hc8SxIGlta2FuxLEgZGVtyZlrZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNjk1OTY3NTMzNDU3MjQwNTUwIj4iVMmZdGJpccmZIHRlbGVmb251bnV6ZGEgdsmZIHlhIFNJTSBrYXJ0xLFuxLF6ZGEgc2F4bGFuYW4gU01TIG1lc2FqbGFyxLEgb3h1bWHEn2EgaW1rYW4gdmVyaXIuIEJ1IGLDvHTDvG4gU01TIG1lc2FqbGFyxLFuLCBvbmxhcsSxbiBtyZl6bXVudW5kYW4gdsmZIGtvbmZpZGVuc2lhbGzEscSfxLFuZGFuIGFzxLFsxLEgb2xtYWRhbiBveHVubWFzxLEgaW1rYW7EsSBkZW3JmWtkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNtcyIgbXNnaWQ9IjMyMTY5NTA0NzI2MzYyMTQ3NzQiPiJtyZl0biBtZXNhamxhcsSxbsSxesSxIHJlZGFrdMmZIGVkaXIgKFNNUyB2yZkgeWEgTU1TKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1MTYwNDEzOTQ3Nzk0NTAxNTM4Ij4iVMmZdGJpccmZIHRlbGVmb251bnV6ZGEgdsmZIHlhIFPEsE0ga2FydMSxbsSxemRhIHllcmzJmcWfyZluIFNNUyBtZXNhamxhcmEgeWF6bWEgaWNhesmZc2kgdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBzaXppbiBtZXNhamxhcsSxbsSxesSxIHNpbMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcyNjg2Njg3MDkwNTIzMjg1NjciPiJUyZl0YmlxyZkgdGVsZWZvbnVudXpkYSB2yZkgeWEgU8SwTSBrYXJ0xLFuxLF6ZGEgeWVybMmZxZ/JmW4gU01TIG1lc2FqbGFyYSB5YXptYSBpY2F6yZlzaSB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIHNpemluIG1lc2FqbGFyxLFuxLF6xLEgc2lsyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI1OTkxMzk4NzExOTM2NTkwNDEwIj4ibcmZdG4gbWVzYWpsYXLEsSBxyZlidWwgZXRtyZlrIChXQVApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI3NDgyMzIxOTAyMjA1ODMzODUiPiJUyZl0YmlxyZkgV0FQIG1lc2FqbGFyIGfDtm5kyZlybcmZayB2yZkgeWEgccmZYnVsIGV0bcmZayBpbWthbsSxIHZlcmlyLiBCdW5hIG1lc2FqbGFyxLEgaXpsyZltyZlrIHbJmSBTaXrJmSB4yZliyZlyIHZlcm3JmWTJmW4gc2lsbcmZayBpbWthbmxhcsSxIGRhIGRheGlsZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0VGFza3MiIG1zZ2lkPSI2NDY2MDk1Mzk2NjIzOTMzOTA2Ij4iacWfbMmZbsmZbiB0yZl0YmlxbMmZciDJmWxkyZkgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0VGFza3MiIG1zZ2lkPSI3NDU0MjE1OTk1ODQ3NjU4MTAyIj4iVMmZdGJpccmZIGhhesSxcmRhIHbJmSBheiDDtm5jyZkgacWfbMmZecmZbiB0YXDFn8SxcsSxcWxhciBoYXFxxLFuZGEgyZl0cmFmbMSxIG3JmWx1bWF0IMmZbGTJmSBldG3JmXnJmSBpbWthbiB2ZXJpci4gQnUgZGEgY2loYXpkYSBoYW5zxLEgdMmZdGJpcWzJmXJpbiBpc3RpZmFkyZkgb2x1bm1hc8SxIGhhcXHEsW5kYSBtyZlsdW1hdGxhcsSxbiDJmWxkyZkgZWRpbG3JmXNpbsmZIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW50ZXJhY3RBY3Jvc3NVc2VycyIgbXNnaWQ9IjcxMTQyNTUyODE5NDQyMTE2ODIiPiJpc3RpZmFkyZnDp2lsyZlyIGFyYXPEsW5kYSDJmWxhccmZIHF1cnVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJhY3RBY3Jvc3NVc2VycyIgbXNnaWQ9IjM2NDY3MDk2MzYyMzM4NTc4NiI+IlTJmXRiaXHJmSBidSBjaWhhemRha8SxIGRpZ8mZciBpc3RpZmFkyZnDp2lsyZlybMmZIG3DvHh0yZlsaWYgacWfbMmZcmkgZ8O2cm3JmXnJmSBpY2F6yZkgdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gaXN0aWZhZMmZw6dpbMmZciBhcmFzxLFuZGFrxLEgcW9ydW5tYW7EsSBwb3ptYXEgw7zDp8O8biBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcmFjdEFjcm9zc1VzZXJzRnVsbCIgbXNnaWQ9IjI1Njc3MzQyODU1NDUwNzQxMDUiPiJiw7x0w7xuIGlzdGlmYWTJmcOnaWzJmXIgaWzJmSDJmWxhccmZIHNheGxhbWFxIMO8w6fDvG4gdGFtIGjDvHF1cSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludGVyYWN0QWNyb3NzVXNlcnNGdWxsIiBtc2dpZD0iMzc2ODQxMzY4Mzk1NTAyMzY2Ij4ixLBzdGlmYWTJmcOnaWzJmXIgYXJhc8SxbmRhIGLDvHTDvG4gbcO8bWvDvG4gyZlsYXHJmWzJmXLJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzZXJzIiBtc2dpZD0iMTY3NjE1MDkxMTY3MjI4MjQyOCI+ImlzdGlmYWTJmcOnaWzJmXJpIGlkYXLJmSBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNlcnMiIG1zZ2lkPSI4NDA5MzA2NjY3NjQ1MzU1NjM4Ij4iVMmZdGJpcWzJmXLJmSBjaWhhemRhIG9sYW4gaXN0aWZhZMmZw6dpbMmZcmksIGhhYmVsyZkgc29yxJ91IGfDtm5kyZlybcmZLCB5YXJhdG1hIHbJmSBzaWxtyZkgaXpuaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldERldGFpbGVkVGFza3MiIG1zZ2lkPSI2MjI5NDY4Njc0NzUzNTI5NTAxIj4iacWfbMmZbsmZbiB0yZl0YmlxbMmZcmluIGRldGFsbGFyxLFuxLEgyZlsZMmZIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldERldGFpbGVkVGFza3MiIG1zZ2lkPSIxNTM4MjQ3NDE0NDA3MTc1OTkiPiJUyZl0YmlxyZkgaGF6xLFyZGEgdsmZIGF6IMO2bmPJmSBpxZ9syZl5yZluIHRhcMWfxLFyxLFxbGFyIGhhcXHEsW5kYSDJmXRyYWZsxLEgbcmZbHVtYXQgyZlsZMmZIGV0bcmZecmZIGlta2FuIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgYnVuZGFuIGlzdGlmYWTJmSBlZMmZcsmZayDFn8mZeHNpIG3JmWx1bWF0bGFyxLEgb8SfdXJsYXlhIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3Jlb3JkZXJUYXNrcyIgbXNnaWQ9IjIwMTg1NzU1MjY5MzQ0MjI3NzkiPiJpxZ9syZluyZluIHTJmXRiaXFsyZlyaW4gc8SxcmFzxLFuxLEgZMmZeWnFn23JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZW9yZGVyVGFza3MiIG1zZ2lkPSI3NzM0MjE3NzU0ODc3NDM5MzUxIj4iVMmZdGJpccmZIHRhcMWfxLFyxLFxbGFyxLEgw7ZuIHBsYW5kYW4gYXJ4YSBwbGFuYSBrZcOnaXJtyZl5yZkgaW1rYW4gdmVyaXIuIFTJmXRiaXEgYnVudSBTaXppbiBkYXhpbGV0bcmZbml6IG9sbWFkYW4gZGEgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZW1vdmVUYXNrcyIgbXNnaWQ9IjY4MjE1MTM0MDE4NzAzNzc0MDMiPiJpxZ9syZlrIHTJmXRiaXFsyZlyaSBkYXlhbmTEsXLEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZW1vdmVUYXNrcyIgbXNnaWQ9IjEzOTQ3MTQzNTIwNjI2MzU0OTMiPiJUyZl0YmlxyZkgdGFwxZ/EsXLEsXFsYXLEsSBzaWxtyZl5yZkgdsmZIG9ubGFyxLFuIHTJmXRiaXFsyZlyaW5pIG3JmWh2IGV0bcmZecmZIGlta2FuIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgYnVuZGFuIGlzdGlmYWTJmSBlZMmZcsmZayBkaWfJmXIgdMmZdGJpcWzJmXJpbiBpxZ9syZlyaW5pIGRheWFuZMSxcmEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQWN0aXZpdHlTdGFja3MiIG1zZ2lkPSI3MzkxMTkxMzg0MDI3MzAzMDY1Ij4iZsmZYWxpeXnJmXQgdG9wbHVsYXLEsW7EsSBpZGFyyZkgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFjdGl2aXR5U3RhY2tzIiBtc2dpZD0iMTYxNTg4MTkzMzAzNDA4NDQ0MCI+IlTJmXRiaXHJmSBkaWfJmXIgdMmZdGJpcWzJmXJpbiBmyZlhbGl5ecmZdGkgZGF4aWxpbmTJmSBmyZlhbGl5ecmZdCB0b3BsdWxhcsSxbsSxIMmZbGF2yZkgZXRtyZlrLCBzaWxtyZlrIHbJmSBkyZl5acWfbcmZayBpbWthbsSxIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhcnRBbnlBY3Rpdml0eSIgbXNnaWQ9IjI5MTg3NjgyMzgwNDUyMDY0NTYiPiJoyZlyIGhhbnPEsSBiaXIgZsmZYWxpeXnJmXQgYmHFn2xhdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXJ0QW55QWN0aXZpdHkiIG1zZ2lkPSI5OTc4MjM2OTUzNDM1ODQwMDEiPiLEsGNhesmZIHFvcnVubWFzxLEgdsmZIHlhIGVrc3BvcnQgZWRpbG1pxZ8gc3RhdHVzZGFuIGFzxLFsxLEgb2xtYXlhcmFxLCB0yZl0YmlxyZkgaMmZciBoYW5zxLEgZsmZYWxpeXnJmXRpIGJhxZ9sYXRtYcSfYSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFNjcmVlbkNvbXBhdGliaWxpdHkiIG1zZ2lkPSI2OTc1Mzg3MTE4ODYxODQyMDYxIj4iZWtyYW4gdXnEn3VubHXEn3VudSB5ZXJsyZnFn2RpcmlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0U2NyZWVuQ29tcGF0aWJpbGl0eSIgbXNnaWQ9IjY5MjA0MzYxODY5MzkxNzM3NCI+IlTJmXRiaXHJmSBkaWfJmXIgdMmZdGJpcWzJmXJpbiBla3JhbiB1ecSfdW5sdcSfdW51IHlveGxhbWFxIGlta2FuxLEgdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBkaWfJmXIgdMmZdGJpcWzJmXJpbiBmyZlhbGl5ecmZdGluaSBwb3phIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldERlYnVnQXBwIiBtc2dpZD0iMzAyMjEwNzE5ODY4NjU4NDA1MiI+InTJmXRiaXEgc2F6bGFubWFzxLFuxLEgYWt0aXYgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldERlYnVnQXBwIiBtc2dpZD0iNDQ3NDUxMjQxNjI5OTAxMzI1NiI+IlTJmXRiaXHJmSBkaWfJmXIgYmlyIHTJmXRiaXEgw7zDp8O8biBzYXpsYW1hbsSxIGHDp21hcSDDvMOnw7xuIGlta2FuIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgYnVudSBkaWfJmXIgdMmZdGJpcWzJmXJpIHlveCBldG3JmWsgw7zDp8O8biBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VDb25maWd1cmF0aW9uIiBtc2dpZD0iNDE2MjA5MjE4NTEyNDIzNDQ4MCI+InNpc3RlbSBla3JhbiBuaXphbWxhcsSxbsSxIGTJmXlpxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb25maWd1cmF0aW9uIiBtc2dpZD0iNDM3MjIyMzg3MzE1NDI5NjA3NiI+IlTJmXRiaXHJmSB5ZXJsaSBwYXJhbWV0cmzJmXIgdsmZIHlhIMWfcmlmdGluIMO2bMOnw7xzw7wga2ltaSBjYXJpIGtvbmZpcXVyYXNpeWFuxLEgZMmZeWnFn23JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2VuYWJsZUNhck1vZGUiIG1zZ2lkPSI1Njg0NTA0MDU4MTkyOTIxMDk4Ij4iYXZ0b21vYmlsIHJlamltaW5pIGFrdGl2bMmZxZ9kaXJpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2VuYWJsZUNhck1vZGUiIG1zZ2lkPSI0ODUzMTg3NDI1NzUxNDE5NDY3Ij4iVMmZdGJpccmZIGF2dG9tb2JpbCByZWppbWluaSBha3RpdmzJmcWfZGlybcmZecmZIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfa2lsbEJhY2tncm91bmRQcm9jZXNzZXMiIG1zZ2lkPSIzOTE0MDI2Njg3NDIwMTc3MjAyIj4iZGlnyZlyIHTJmXRiaXFsyZlyaSBxYXBhdG1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iNDU5MzM1MzIzNTk1OTczMzExOSI+IlTJmXRiaXHJmSBiYcWfcWEgdMmZdGJpcWzJmXJpbiBhcnhhZm9uIHByb3Nlc2zJmXJpbmkgZGF5YW5kxLFybWFxIGljYXrJmXNpIHZlcmlyLiBCdSBkaWfJmXIgdMmZdGJpcWzJmXJpbiBkYXlhbm1hc8SxbmEgc8mZYsmZYiBvbGEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZm9yY2VTdG9wUGFja2FnZXMiIG1zZ2lkPSIyMzI5NjI3NDI4ODMyMDY3NzAwIj4iRGlnyZlyIHTJmXRiaXFsyZlyaSBkYXlhbm1hxJ9hIG3JmWNidXIgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mb3JjZVN0b3BQYWNrYWdlcyIgbXNnaWQ9IjUyNTMxNTcyOTYxODM5NDA4MTIiPiJUyZl0YmlxyZkgZGlnyZlyIHTJmXRiaXFsyZlyaSBtyZljYnVyaSDFn8mZa2lsZMmZIGRheWFuZMSxcm1hxJ9hIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZm9yY2VCYWNrIiBtc2dpZD0iNjUyOTM1MjA0MDcyNTg0NjE2Ij4idMmZdGJpcWkgcWFwYW5tYcSfYSBtyZljYnVyIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZvcmNlQmFjayIgbXNnaWQ9IjM4OTIyOTU4MzA0MTk1MTM2MjMiPiJUyZl0YmlxyZkgw7ZuIHBsYW5kYSBvbGFuIGlzdMmZbmlsyZluIHTJmXRiaXFpIGJhxJ9sYXlhcmFxIGdlcml5yZkgZMO2bm3JmXnJmSBpbWthbiB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gaGXDpyB2YXh0IGlzdGlmYWTJmSBvbHVubWFtYWzEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kdW1wIiBtc2dpZD0iMTY4MTc5OTg2MjQzODk1NDc1MiI+InNpc3RlbWluIGRheGlsaSBkdXJ1bXVudSBiyZlycGEgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kdW1wIiBtc2dpZD0iMTc3ODI5OTA4ODY5MjI5MDMyOSI+IlTJmXRiaXHJmSBzaXN0ZW1pbiBkYXhpbGkgc3RhdHVzdW51IGLJmXJwYSBldG3JmXnJmSBpbWthbiB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGxhesSxbSBvbG1hZMSxxJ/EsSBoYWxkYSBtw7x4dMmZbGlmIMWfyZl4c2kgdsmZIGfDvHbJmW5saSBtyZlsdW1hdGxhcsSxIGLJmXJwYSBlZMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iODAyMjU4ODYwODk5NDU4OTkzOCI+ImVrcmFuIGtvbnRlbnRpbmkgYsmZcnBhIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZXRyaWV2ZV93aW5kb3dfY29udGVudCIgbXNnaWQ9IjMxOTMyNjkwNjk0Njk3MDAyNjUiPiJUyZl0YmlxyZkgYWt0aXYgcMmZbmPJmXLJmW5pbiBtyZl6bXVudW51IMmZbGTJmSBldG3JmXnJmSBpbWthbiB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGJ1bmRhbiBpc3RpZmFkyZkgZWTJmXLJmWsgcMmZbmPJmXLJmSBtyZl6bXVudW51IMmZbMmZIGtlw6dpcmliIHBhcm9sbGxhcsSxIG94dXlhIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3RlbXBvcmFyeV9lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjIzMTI2MTIxMzUxMjczMTAyNTQiPiJnaXJpxZ8gaW1rYW7EsW7EsSBtw7x2yZlxccmZdGkgYcOnbWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdGVtcG9yYXJ5X2VuYWJsZV9hY2Nlc3NpYmlsaXR5IiBtc2dpZD0iODA3OTQ1NjI5MzE4Mjk3NTQ2NCI+IlTJmXRiaXHJmSBjaWhhemEgZ2lyacWfaSBtw7x2yZlxccmZdGkgb2xhcmFxIGFrdGl2bMmZxZ9kaXJtyZl5yZkgaW1rYW4gdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBpc3RpZmFkyZnDp2kgcmF6xLFsxLHEn8SxIG9sbWFkYW4gZ2lyacWfaSBha3RpdmzJmcWfZGlyyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmV0cmlldmVfd2luZG93X2luZm8iIG1zZ2lkPSI4NTMyMjk1MTk5MTEyNTE5Mzc4Ij4icMmZbmPJmXLJmSBpbmZvc3VudSBiyZlycGEgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JldHJpZXZlX3dpbmRvd19pbmZvIiBtc2dpZD0iNDk5ODgzNjM3MDQyNDE4Njg0OSI+IlTJmXRiaXHJmSBwyZluY8mZcsmZIGlkYXLJmcOnaXNpbmTJmW4gZ8mZbMmZbiB3aW5kb3dzIGhhcXHEsW5kYSBvbGFuIG3JmWx1bWF0xLEgYsmZcnBhIGV0bcmZecmZIGlta2FuIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgZGF4aWxpIHNpc3RlbSBpc3RpZmFkyZlzaSDDvMOnw7xuIG7JmXrJmXJkyZkgdHV0dWxhbiBtyZlsdW1hdMSxIGLJmXJwYSBlZMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4Njc1NTM1NjQ4ODA3NDI3Mzg5Ij4idMmZZGJpcmzJmXJpIGZpbHRyIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19maWx0ZXJfZXZlbnRzIiBtc2dpZD0iODAwNjIzNjMxNTg4ODM0NzY4MCI+IlTJmXRiaXHJmSBkYXhpbGV0bcmZIGZpbHRyaW5pIHFleWRpeXlhdCBldGRpcm3JmXnJmSBpbWthbiB2ZXJpciwgYnUgZmlsdHIgYsO8dMO8biBpc3RpZmFkyZnDp2kgdMmZZGJpcmzJmXJpbmkgZ8O2bmTJmXJpbG3JmW1pxZ9kyZluIMmZdnbJmWwgZmlsdHJkyZluIGtlw6dpcmlyLiBayZlyyZlybGkgdMmZdGJpcSBpc3RpZmFkyZnDp2kgbcO8ZGF4aWzJmXNpIG9sbWFkYW4gxLBzdGlmYWTJmcOnaSDEsG50ZXJmZXlzaSBzaXN0ZW1pbsmZIG7JmXphcsmZdCBlZMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hZ25pZnlfZGlzcGxheSIgbXNnaWQ9IjU5NzM2MjY3MzgxNzA2MTg3NzUiPiJla3JhbsSxIGLDtnnDvGTDvHIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI3MTIxMjM1Njg0NTE1MDAzNzkyIj4iVMmZdGJpccmZIGVrcmFuIGtvbnRlbnRpbmkgYsO2ecO8dG3JmWsgaWNhesmZc2kgdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gaXN0aWZhZMmZIGVkyZlyyZlrIGVrcmFuZGEga29udGVudGkgYsO2ecO8ZMmZcsmZayBjaWhhesSxbiBxZXlyaS1zdGFiaWxsaXlpbsmZIHPJmWLJmWIgb2xhIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NodXRkb3duIiBtc2dpZD0iNzE4NTc0NzgyNDAzODkwOTAxNiI+InFpc23JmW4gc8O2bmTDvHLDvHIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zaHV0ZG93biIgbXNnaWQ9IjcwNDY1MDA4Mzg3NDYyOTE3NzUiPiJBa3RpdmxpayBpZGFyyZnDp2lsaXlpbmkgcWFwYW5txLHFnyBoYWxhIGfJmXRpcmlyLiBUYW0gcWFwYW5tYW7EsSBoyZl5YXRhIGtlw6dpcm1pci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0b3BBcHBTd2l0Y2hlcyIgbXNnaWQ9IjQxMzg2MDg2MTA3MTc0MjU1NzMiPiJ0yZl0YmlxZMmZbiB0yZl0YmlxyZkga2XDp2lkaW4gcWFyxZ/EsXPEsW7EsSBhbG1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0b3BBcHBTd2l0Y2hlcyIgbXNnaWQ9IjgyNjIxOTU4MDI1ODIyNTUwMjEiPiLEsHN0aWZhZMmZw6dpbmluIGJhxZ9xYSB0yZl0YmlxyZkga2XDp23JmXNpbmluIHFhcsWfxLFzxLFuxLEgYWzEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRUb3BBY3Rpdml0eUluZm8iIG1zZ2lkPSIyNTM3OTIyMzExNDExNTQ2MDE2Ij4iY2FyaSB0yZl0YmlxIGluZm9ybWFzaXlhc8SxIMmZbGTJmSBldG3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRUb3BBY3Rpdml0eUluZm8iIG1zZ2lkPSI4MTUzNjUxNDM0MTQ1MTMyNTA1Ij4iU2FoaWLJmSBla3JhbiDDtm7DvG5kyZkgY2FyaSB0yZl0YmlxIHbJmSB4aWRtyZl0bMmZciBoYXFxxLFuZGEgxZ/JmXhzaSBtyZlsdW1hdCDJmWxkyZkgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ydW5TZXRBY3Rpdml0eVdhdGNoZXIiIG1zZ2lkPSI4OTIyMzkwOTQ4NjcxODI2NTYiPiJpxZ/JmSBzYWzEsW5hbiBiw7x0w7xuIHTJmXRiaXFsyZlyaSBpemzJmXlpciB2yZkgaWRhcsmZIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ydW5TZXRBY3Rpdml0eVdhdGNoZXIiIG1zZ2lkPSI2MDAzNjAzMTYyNTc4NTc3NDA2Ij4iVMmZdGJpccmZIHNpc3RlbWluIGbJmWFsaXl5yZl0bMmZcmkgbmVjyZkgYmHFn2xhdGTEscSfxLFuxLEgbsmZemFyyZl0IHbJmSBrb250cm9sIGV0bcmZecmZIGlta2FuIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgc2lzdGVtaSB0YW1hbWlsyZkga29tcHJvbWlzIGVkyZkgYmlsyZlyLiBCdSBpY2F6yZkgeWFsbsSxeiBpbmtpxZ9hZiDDvMOnw7xuZMO8ciwgaGXDpyB2YXh0IG5vcm1hbCBpc3RpZmFkyZkgw7zDp8O8biBkZXlpbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Jyb2FkY2FzdFBhY2thZ2VSZW1vdmVkIiBtc2dpZD0iMjU3NjMzMzQzNDg5MzUzMjQ3NSI+InFhbGTEsXLEsWxtxLHFnyB5YXnEsW0gcGFrZXRpbmkgZ8O2bmTJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RQYWNrYWdlUmVtb3ZlZCIgbXNnaWQ9IjY2MjE5MDEyMTYyMDc5MzEwODkiPiJUyZl0YmlxyZkgdMmZdGJpcSBwYWtldGluaW4gc2lsaW5tyZlzaSBoYXFxxLFuZGEgYmlsZGlyacWfIHRyYW5zbGFzaXlhIGV0bcmZIGljYXrJmXNpIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgYnVuZGFuIGRpZ8mZciBpxZ9syZlrIHTJmXRiaXFsyZlyaSBkYXlhbmTEsXJtYXEgw7zDp8O8biBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RTbXNSZWNlaXZlZCIgbXNnaWQ9IjU2ODkwOTUwMDkwMzAzMzY1OTMiPiJTTVMgdMmZcsmZZmluZMmZbiBxyZlidWwgZWRpbMmZbiB5YXnEsW0gZ8O2bmTJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RTbXNSZWNlaXZlZCIgbXNnaWQ9IjQxNTIwMzc3MjAwMzQzNjU0OTIiPiJUyZl0YmlxyZkgbWVzYWogZ8mZbG3JmXNpIGhhcXHEsW5kYSBiaWxkaXJpxZ9pIHlhecSxbWxhbWFxIGlta2FuxLEgdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gZ8mZbMmZbiBTTVMgbWVzYWpsYXLEsW7EsSBzYXh0YWxhxZ9kxLFybWFxIMO8w6fDvG4gaXN0aWZhZMmZIGVkyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjMxNDUzNDc0MTMwMjg1ODIzNzEiPiJXQVAtUFVTSCB0yZlyyZlmaW5kyZluIHHJmWJ1bCBlZGlsyZluIHlhecSxbSBnw7ZuZMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFdhcFB1c2giIG1zZ2lkPSI0NzgzNDAyNTI1MDM5NDQyNzI5Ij4iVMmZdGJpccmZIFdBUCBQVVNIIG1lc2FqxLFuIGFsxLFuZMSxxJ/EsSBoYXFkYSBiaWxkaXJpxZ8gdHJhbnNsYXNpeWEgZXRtyZl5yZkgaWNhesmZIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgYnVuZGFuIGlzdGlmYWTJmSBlZMmZcsmZayBzYXh0YSBNTVMgbWVzYWogYWzEscWfxLEgdsmZIHlhIHPJmXNzaXpjyZkgaXN0yZluaWzJmW4gdmViIHPJmWhpZsmZbmkgesmZcsmZcnZlcmljaSB2YXJpYW50bGFybGEgZMmZeWnFn23JmWsgw7zDp8O8biBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcm9jZXNzTGltaXQiIG1zZ2lkPSIyNDUxODczNjY0MzYzNjYyNjY2Ij4iw6dhbMSxxZ9hbiBwcm9zZXNsyZlyaW4gc2F5xLFuxLEgbcmZaGR1ZGxhxZ9kxLFyxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJvY2Vzc0xpbWl0IiBtc2dpZD0iNzMxODA2MTMxNDA0MDg3OTU0MiI+IlTJmXRiaXHJmSBpxZ9syZlkaWzJmWPJmWsgbWFrc2ltdW0gcHJvc2VzIHNhecSxbsSxIGlkYXLJmSBldG3JmSBpem5pIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiB0yZlsyZliIG9sdW5tdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbHdheXNGaW5pc2giIG1zZ2lkPSI1NTA5NTg1MDc3OTg3OTY5NjUiPiJhcnhhZm9uIHTJmXRiaXFsyZlyaW5pIGRheWFubWHEn2EgbcmZY2J1ciBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QWx3YXlzRmluaXNoIiBtc2dpZD0iNzQ3MTMxMDY1Mjg2ODg0MTQ5OSI+IlTJmXRiaXHJmSBha3Rpdml0aWzJmXJpbiBhcnhhIGZvbmEgZ2V0ZGl5aSB6YW1hbiBiaXRtyZlzaW5pIHlveGxhecSxci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gdMmZbMmZbiBvbHVubXVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmF0dGVyeVN0YXRzIiBtc2dpZD0iMjc4OTYxMDY3MzUxNDEwMzM2NCI+ImJhdGFyZXlhIHN0YXRpc3Rpa2FsYXLEsW7EsSBveHVtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iYXR0ZXJ5U3RhdHMiIG1zZ2lkPSI1ODk3MzQ2NTgyODgyOTE1MTE0Ij4iVMmZdGJpccmZIGNhcmkgYcWfYcSfxLEgc8mZdml5ecmZbGkgZGF0YSBzaXRpZmFkyZlzaW5pIG94dW1hcSBpbWthbsSxIHZlcmlyLiBUyZl0YmlxyZkgaGFuc8SxIHTJmXRiaXFpIGlzdGlmYWTJmSBldGRpeWluaXogaGFxccSxbmRhIMmZdHJhZmzEsSBtyZlsdW1hdCB0YXBtYcSfYSBpbWthbiB2ZXLJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91cGRhdGVCYXR0ZXJ5U3RhdHMiIG1zZ2lkPSIzNzE5Njg5NzY0NTM2Mzc5NTU3Ij4iYmF0YXJleWEgc3RhdGlzdGlrYWxhcsSxbsSxIGTJmXlpxZ9tyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXBkYXRlQmF0dGVyeVN0YXRzIiBtc2dpZD0iNjg2MjgxNzg1NzE3ODAyNTAwMiI+IlTJmXRiaXHJmSB5xLHEn8SxbG3EscWfIGJhdGFyZXlhIHN0YXRpc3Rpa2FzxLFuxLEgcmVkYWt0yZkgZXRtyZkgaWNhesmZc2kgdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIGlzdGlmYWTJmSBlZGlsbWlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0QXBwT3BzU3RhdHMiIG1zZ2lkPSIxNTA4Nzc5Njg3NDM2NTg1NzQ0Ij4idMmZdGJpcSDJmW3JmWxpeXlhdCBzdGF0aXN0aWthbGFyxLFuxLEgyZlsZMmZIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFwcE9wc1N0YXRzIiBtc2dpZD0iNjI0Mzg4NzA0MTU3NzkxMjg3NyI+IlRvcGxhbm3EscWfIHTJmXRiaXEgyZltyZlsaXl5YXQgc3RhdGlzdGlrYWxhcsSxbsSxbiBiyZlycGEgZWRpbG3JmXNpbsmZIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgw7zDp8O8biBkZXlpbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUFwcE9wc1N0YXRzIiBtc2dpZD0iODgyOTA5NzM3Mzg1MTUyMTUwNSI+InTJmXRiaXEgyZltyZlsaXl5YXQgc3RhdGlzdGlrYXPEsW7EsSBkyZl5acWfbcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VwZGF0ZUFwcE9wc1N0YXRzIiBtc2dpZD0iNTA3ODQ1OTY1OTQ0MDM0ODMiPiJUyZl0YmlxyZkgdG9wbGFubcSxxZ8gdMmZdGJpcSDJmW3JmWxpeXlhdCBzdGF0aXN0aWthc8SxbsSxIGTJmXlpxZ9tyZl5yZkgaW1rYW4gdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIGlzdGlmYWTJmSBvbHVubXVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmFja3VwIiBtc2dpZD0iNDcwMDEzMDIyODY1NDUzOTIwIj4ic2lzdGVtIHllZMmZa2zJmW3JmXNpIHbJmSBiyZlycGFzxLFuxLEgaWRhcsmZIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iYWNrdXAiIG1zZ2lkPSI2OTEyMjMwNTI1MTQwNTg5ODkxIj4iVMmZdGJpccmZIHNpc3RlbWkgcmV6ZXJ2IGV0bcmZecmZIHbJmSBtZXhhbml6bWkgYsmZcnBhIGV0bcmZecmZIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgZWRpbG3JmWsgw7zDp8O8biBuyZl6yZlyZMmZIHR1dHVsbWF5xLFiLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpcm1fZnVsbF9iYWNrdXAiIG1zZ2lkPSI1NTU3MDcxMzI1ODA0NDY5MTAyIj4idGFtIHJlemVydmkgdMmZc2RpcSBldG3JmWsgdsmZIHlhIMmZbcmZbGl5eWF0xLEgYsmZcnBhIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpcm1fZnVsbF9iYWNrdXAiIG1zZ2lkPSIxNzQ4NzYyMTcxNjM3Njk5NTYyIj4iVMmZdGJpccmZIMSwc3RpZmFkyZnDp2kgxLBudGVyZmV5c2kgdGFtIHJlemVydiB0yZlzZGlxaW5pIGnFn8mZIHNhbG1hxJ9hIGlta2FuIHZlcmlyLiBIZcOnIGJpciB0yZl0YmlxIHTJmXLJmWZpbmTJmW4gaXN0aWZhZMmZIG9sdW5tYW1hbMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVybmFsU3lzdGVtV2luZG93IiBtc2dpZD0iMjE0ODU2MzYyODE0MDE5MzIzMSI+ImljYXrJmXNpeiBwyZluY8mZcsmZbMmZcmkgZ8O2csO8bnTDvGzJmXlpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludGVybmFsU3lzdGVtV2luZG93IiBtc2dpZD0iNzQ1ODM4Nzc1OTQ2MTQ2NjM5NyI+IlTJmXRiaXHJmSBkYXhpbGkgc2lzdGVtIGludGVyZmV5c2kgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgZWRpbG3JmXNpIMO8w6fDvG4gbsmZesmZcmTJmSB0dXR1bG11xZ8gcMmZbmPJmXLJmWzJmXJpIHlhcmF0bWHEn2EgaWNhesmZIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgZWRpbG1pci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N5c3RlbUFsZXJ0V2luZG93IiBtc2dpZD0iMzU0MzM0Nzk4MDgzOTUxODYxMyI+ImRpZ8mZciB0yZl0YmlxbMmZciDDvHrJmXJpbmTJmSDDp8mZa23JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zeXN0ZW1BbGVydFdpbmRvdyIgbXNnaWQ9Ijg1ODQ2NzgzODE5NzI4MjAxMTgiPiJUyZl0YmlxyZkgZGlnyZlyIHTJmXRiaXFsyZlyaW4gdsmZIHlhIG9ubGFyxLFuIGhpc3PJmWzJmXJpbmluIHl1eGFyxLFzxLFuZGEgxZ/JmWtpbCDDp8mZa23JmXnJmSBpbWthbiB2ZXJpci4gT25sYXIgaXN0yZluaWzJmW4gdMmZdGJpcWluIGludGVyZmV5c2luaW4gaXN0aWZhZMmZc2luyZkgbcO8ZGF4aWzJmSBlZMmZIHbJmSB5YSBkaWfJmXIgdMmZdGJpcWzJmXJkyZkgYXh0YXJkxLFxbGFyxLFuxLF6xLEgZMmZeWnFn8mZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldEFuaW1hdGlvblNjYWxlIiBtc2dpZD0iMjgwNTEwMzI0MTE1MzkwNzE3NCI+InFsb2JhbCBhbmltYXNpeWEgc8O8csmZdGluaSBkyZl5acWfaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9Ijc2OTAwNjM0Mjg5MjQzNDM1NzEiPiJUyZl0YmlxyZkgaXN0yZluaWzJmW4gdmF4dCBxbG9iYWwgYW5pbWFzaXlhIHPDvHLJmXRpbmkgKHPDvHLJmXRsaSB2yZkgeWEgeWF2YcWfIGFuaW1hc2l5YWxhcikgZMmZeWnFn2Rpcm3JmWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFwcFRva2VucyIgbXNnaWQ9IjEyODY1MDU3MTcwNTAxMjEzNzAiPiJ0yZl0YmlxIG5pxZ9hbmxhcsSxbsSxIGlkYXLJmSBldG3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBcHBUb2tlbnMiIG1zZ2lkPSI4MDQzNDMxNzEzMDE0Mzk1NjcxIj4iVMmZdGJpcWzJmXLJmSBvbmxhcsSxbiBub3JtYWwgWi1vcmRlcmlucWkga2XDp8mZcsmZayBtYXJrZXJsyZlyaW5pIHlhcmF0bWEgdsmZIGlkYXLJmWV0bcmZIGljYXrJmXNpIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgb2x1bm11ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZyZWV6ZVNjcmVlbiIgbXNnaWQ9IjQ3MDgxODExODQ0NDE4ODAxNzUiPiJla3JhbsSxIGRvbmR1cnVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZnJlZXplU2NyZWVuIiBtc2dpZD0iODU1ODkyMzc4OTIyMjY3MDA2NCI+IlTJmXRiaXHJmSB0YW0gZWtyYW5sxLEgeWF5xLFtIMO8w6fDvG4gZWtyYW7EsSBtw7x2yZlxccmZdGkgb2xhcmFxIGRvbmR1cm1hIGljYXrJmXNpIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW5qZWN0RXZlbnRzIiBtc2dpZD0iMTM3ODc0NjU4NDAyMzU4NjYwMCI+ImTDvHltyZlsyZlyaSB2yZkgaWRhcsmZZXRtyZkgZMO8eW3JmWzJmXJpbmkgYmFzxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5qZWN0RXZlbnRzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDYzNTI1NjU1OTk5Njg2MzIiPiJUyZl0YmlxyZkgw7Z6w7xuw7xuIGRheGlsZXRtyZkgdMmZZGJpcmzJmXJpbmkgZGlnyZlyIHTJmXRiaXFsyZlyyZkgw6dhdGTEsXJtYcSfYSBpbWthbiB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIHBsYW7Fn2V0aSDJmWzJmSBrZcOnaXJtyZlrIMO8w6fDvG4gYnVuZGFuIGlzdGlmYWTJmSBlZMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbmplY3RFdmVudHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NTMxMjgwNTc1NzIzMjYyNTMiPiJUyZl0YmlxyZkgw7Z6w7xuw7xuIGRheGlsZXRtyZkgdMmZZGJpcmzJmXJpbmkgZGlnyZlyIHTJmXRiaXFsyZlyyZkgw6dhdGTEsXJtYcSfYSBpbWthbiB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIHRlbGVmb251IMmZbMmZIGtlw6dpcm3JmWsgw7zDp8O8biBidW5kYW4gaXN0aWZhZMmZIGVkyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZElucHV0U3RhdGUiIG1zZ2lkPSI0Njk0Mjg5MDAwNDEyNDkyMzQiPiJ5YXpkxLFxbGFyxLFuxLF6xLEgdsmZIGV0ZGlrbMmZcmluaXppIGl6bMmZeWlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZElucHV0U3RhdGUiIG1zZ2lkPSI4Mzg3NzU0OTAxNjg4NzI4MDQzIj4iVMmZdGJpccmZIGJhc2TEscSfxLFuxLF6IGTDvHltyZlsyZlyaSBpemzJmW3JmWsgaW1rYW7EsSB2ZXJpbGlyLiBCdW5hIHBhcm9sbGFyxLFuIHbJmSBrcmVkaXQga2FydMSxIG7Dtm1yyZlsyZlyaW5pbiB5YXrEsWxtYXPEsSBkYSBhaWRkaXIuIE5vcm1hbCB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIGlzdGlmYWTJmSBvbHVubXVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZElucHV0TWV0aG9kIiBtc2dpZD0iMzM2MDA2NDYyMDIzMDUxNTc3NiI+ImRheGlsZXRtyZkgbWV0b2R1bmEgYmHEn2xhbsSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRJbnB1dE1ldGhvZCIgbXNnaWQ9IjMyNTA0NDAzMjI4MDcyODYzMzEiPiJTYWhpYmluyZkgZGF4aWxldG3JmSBtZXRvZHVudW4gyZluIMO8c3Qgc8mZdml5ecmZIGludGVyZmV5c2luyZkgYmHEn2xhbWFxIGlta2FuxLEgdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciDDvMOnw7xuIGhlw6cgdmF4dCBsYXrEsW0gb2xtYW1hbMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRBY2Nlc3NpYmlsaXR5U2VydmljZSIgbXNnaWQ9IjUzNTc3MzM5NDI1NTYwMzE1OTMiPiJnaXJpxZ8geGlkbcmZdGluyZkgYmHEn2zEsSBxYWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kQWNjZXNzaWJpbGl0eVNlcnZpY2UiIG1zZ2lkPSI3MDM0NjE1OTI4NjA5MzMxMzY4Ij4iU2FoaWLJmSBnaXJpxZ8geGlkbcmZdGluIMmZbiDDvHN0IHPJmXZpeXnJmSBpbnRlcmZleXNpIGJhxJ9sYW1hxJ9hIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgw7zDp8O8biBoZcOnIHZheHQgbGF6xLFtIG9sbWFtYWzEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kUHJpbnRTZXJ2aWNlIiBtc2dpZD0iODQ2MjgxNTE3OTU3Mjc0ODc2MSI+IsOnYXAgc2VydmlzaW5pIHFvxZ9tYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQcmludFNlcnZpY2UiIG1zZ2lkPSI3OTYwMDY3NjIzMjA5MTExMTM1Ij4iU2FoaWJpbsmZIGJpciDDp2FwIHhpZG3JmXRpbmluIMmZbiDDvHN0IHPJmXZpecmZIGFyYcO8esO8bsO8IGJhxJ9sYW1hxJ9hIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgw7zDp8O8biBoZcOnIHZheHQgbGF6xLFtIG9sbWFtYWzEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kUHJpbnRTcG9vbGVyU2VydmljZSIgbXNnaWQ9IjY4MDc3NjI3ODM3NDQxMjU5NTQiPiLDp2FwIHNwdWxlciBzZXJ2aXNpbsmZIHFvxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUHJpbnRTcG9vbGVyU2VydmljZSIgbXNnaWQ9IjM2ODA1NTIyODU5MzMzMTgzNzIiPiJTYWhpYmluyZkgw6dhcCBzcHVsZXIgeGlkbcmZdGluaW4gyZluIMO8c3Qgc8mZdml5ecmZIGludGVyZmV5c2luyZkgYmHEn2xhbWHEn2EgaW1rYW4gdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciDDvMOnw7xuIGhlw6cgdmF4dCBsYXrEsW0gb2xtYW1hbMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iMjc1MjczMTMwMDQxOTQxMDcyNCI+Ik5GQyB4aWRtyZl0bMmZcmluyZkgcW/Fn3VuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSI2MTIwNjQ3NjI5MTc0MDY2ODYyIj4iU2FoaWJpbsmZIE5GQyBrYXJ0bGFyxLFuxLEgZW11bHlhc2l5YSBlZMmZbiB0yZl0YmlxbMmZcmkgYmlyLWJpcmluyZkgcW/Fn21hxJ9hIGljYXrJmSB2ZXJpbi4gTm9ybWFsIHTJmXRiaXFsyZlyIMO8w6fDvG4gbGF6xLFtIGRleWlsLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iNzM1ODM3ODQwMTkxNTI4NzkzOCI+Im3JmXRuIHNlcnZpc2luaSBxb8WfbWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVGV4dFNlcnZpY2UiIG1zZ2lkPSI4MTUxOTY4OTEwOTczOTk4NjcwIj4iU2FoaWJpbsmZIGJpciBtyZl0biB4aWRtyZl0aW5pbiDJmW4gw7xzdCBzyZl2aXl5yZkgYXJhw7x6w7xuw7wgYmHEn2xhbWHEn2EgaW1rYW4gdmVyaXIobcmZc8mZbMmZbiwgU3BlbGxDaGVja2VyU2VydmljZSkuIE5vcm1hbCB0yZl0YmlxbMmZciDDvMOnw7xuIGhlw6cgdmF4dCBsYXrEsW0gb2xtYW1hbMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRWcG5TZXJ2aWNlIiBtc2dpZD0iNDcwODU5NjAyMTE2MTQ3MzI1NSI+IlZQTiB4aWRtyZl0yZkgyZlsYXHJmWzJmW5kaXJtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSIyMDY3ODQ1NTY0NTgxNjkzOTA1Ij4iU2FoaWJpbsmZIGJpciBWcG4geGlkbcmZdGluaW4gyZluIMO8c3Qgc8mZdml5ecmZIGFyYcO8esO8bsO8IGJhxJ9sYW1hxJ9hIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgw7zDp8O8biBoZcOnIHZheHQgbGF6xLFtIG9sbWFtYWzEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kV2FsbHBhcGVyIiBtc2dpZD0iODcxNjQwMDI3OTkzNzg1NjQ2MiI+ImRpdmFyIGthxJ/EsXrEsW5hIGJhxJ9sYW7EsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kV2FsbHBhcGVyIiBtc2dpZD0iNzEwODQyODY5MjU5NTQ5MTY2OCI+IkNpaGF6IHNhaGliaW7JmSB5dXhhcsSxIHPJmXZpeXnJmWxpIGRpdmFyIGthxJ/EsXrEsSBpbnRlcmZleXNpbmkgY2lsZGzJmW3JmXnJmSBpbWthbiB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gaXN0aWZhZMmZIG9sdW5tYW1hbMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjU2OTc5ODc3NTk4OTczNjcwOTkiPiJ3aWRnZXQgc2VydmlzaW5pIHFvxZ9tYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjQ3MTc5ODc4MTAxMzc2OTI1NzIiPiJTYWhpYmluyZkgdmlkY2V0IHNlcnZpc2luIHnDvGtzyZlrIHPJmXZpeXnJmWxpIGludGVyZmV5c2kgaWzJmSDJmWxhccmZIHNheGxhbWFxIGljYXrJmXNpIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBoZcOnIHZheHQgaXN0yZluaWxtyZltyZlsaWRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9Ijg3MDQ5ODYxNjM3MTE0NTUwMTAiPiJjaWhheiBhZG1pbmkgaWzJmSDDvG5zaXl5yZl0IHF1cm1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9IjU2OTcxNTQxOTU0MzkwNzkzMCI+IlNhaGliaW7JmSBiaXIgY2loYXogaWRhcsmZw6dpc2luyZkgcGxhbmxhciBnw7ZuZMmZcm3JmWsgw7zDp8O8biBpbWthbiB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIMO8w6fDvG4gaGXDpyB2YXh0IGxhesSxbSBvbG1hbWFsxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNDI0ODgyODkwMDA0NTgwODcyMiI+ImNpaGF6IGFkbWluaSDJmWxhdsmZIGVkaW4gdsmZIHlhIHNpbGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNTAyNTYwODE2NzcwOTk0MjQ4NSI+IlNhaGliaW7JmSBha3RpdiBjaWhheiBhZG1pbmlzdHJhdG9ybGFyxLFuxLEgyZlsYXbJmSBldG3JmXnJmSB2yZkgeWEgc2lsbcmZecmZIGljYXrJmSB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIMO8w6fDvG4gdMmZbMmZYiBvbHVubWFtYWzEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRPcmllbnRhdGlvbiIgbXNnaWQ9IjMzNjU5NDc3MTcxNjM4NjY4NDQiPiJla3JhbiBvcml5ZW50YXNpeWFzxLFuxLEgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0T3JpZW50YXRpb24iIG1zZ2lkPSIzMDQ2MTI2NjE5MzE2NjcxNDc2Ij4iVMmZdGJpccmZIGlzdMmZbmlsyZluIHphbWFuIGVrcmFuxLFuIHbJmXppeXnJmXRpbmkgZMmZeWnFn23JmSBpY2F6yZlzaSB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gdMmZbMmZYiBvbHVubXVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0UG9pbnRlclNwZWVkIiBtc2dpZD0iOTE3NTM3MTYxMzMyMjU2MjkzNCI+Imt1cnNvciBzw7xyyZl0aW5pIGTJmXlpxZ9tyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UG9pbnRlclNwZWVkIiBtc2dpZD0iNjg2NjU2MzIzNDI3NDEwNDIzMyI+IlTJmXRiaXHJmSBtYXVzdW4gdsmZIHlhIHRyZWtwZWRpbiBrdXJzb3Igc8O8csmZdGluaSBpc3TJmW5pbMmZbiB6YW1hbiBkyZl5acWfbcmZecmZIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgb2x1bm1hbWFsxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0S2V5Ym9hcmRMYXlvdXQiIG1zZ2lkPSI0Nzc4NzMxNzAzNjAwOTA5MzQwIj4ia2xhdmlhdHVyYSBzeGVtaW5pIGTJmXlpxZ9pciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEtleWJvYXJkTGF5b3V0IiBtc2dpZD0iODQ4MDAxNjc3MTEzNDE3NTg3OSI+IlTJmXRiaXHJmSBrbGF2aWF0dXJhIHN4ZW1pbmkgZMmZeWnFn23JmWsgaW1rYW7EsSB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gdMmZbMmZYiBvbHVubXVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2lnbmFsUGVyc2lzdGVudFByb2Nlc3NlcyIgbXNnaWQ9IjQ1MzkwMDI5OTE5NDczNzY2NTkiPiJ0yZl0YmlxbMmZcsmZIExpbnV4IHNpcW5hbGxhcsSxIGfDtm5kyZlyaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zaWduYWxQZXJzaXN0ZW50UHJvY2Vzc2VzIiBtc2dpZD0iNDg5Njk5MjA3OTE4MjY0OTE0MSI+IlTJmXRiaXHJmSBiw7x0w7xuIGRhdmFtbMSxIHByb3Nlc2zJmXLJmSBzaXFuYWwgc2/En3J1c3UgZ8O2bmTJmXJtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJzaXN0ZW50QWN0aXZpdHkiIG1zZ2lkPSI4ODQxMTEzNjI3OTU1NTYzOTM4Ij4idMmZYmlxaSBoyZltacWfyZkgw6dhbMSxxZ9kxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyc2lzdGVudEFjdGl2aXR5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTI1MTg5MjcyMzI5MDg2MTM3Ij4iVMmZdGJpccmZIMO2eiBrb21wb25lbnRsyZlyaW5pIHlhZGRhxZ9kYSBzYXhsYW1hIGljYXrJmXNpIHZlcmlyLiBCdSBwbGFuxZ9ldGluIHPDvHLJmXRpbmkgesmZaWZsyZl0bcmZa2zJmSwgZGlnyZlyIHTJmXRiaXFsyZlyIMO8w6fDvG4gbcO2dmN1ZCBvbGFuIHlhZGRhxZ/EsSBsaW1pdGzJmXnJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyc2lzdGVudEFjdGl2aXR5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDM4NDc2MDA0NzUwODI3ODI3MiI+IlTJmXRiaXHJmSDDtnoga29tcG9uZW50bMmZcmluaSB5YWRkYcWfZGEgc2F4bGFtYSBpY2F6yZlzaSB2ZXJpci4gQnUgZGlnyZlyIHTJmXRiaXFsyZlyIMO8w6fDvG4gbcO2dmN1ZCBvbGFuIHlhZGRhxZ/EsSBsaW1pdGzJmXnJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZWxldGVQYWNrYWdlcyIgbXNnaWQ9IjE4NDM4NTEyOTUzNzcwNTkzOCI+InTJmXRiaXFsyZlyaSBzaWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZWxldGVQYWNrYWdlcyIgbXNnaWQ9Ijc0MTE0ODAyNzUxNjcyMDUwODEiPiJUyZl0YmlxyZkgQW5kcm9pZCBwYWtldGzJmXJpIHNpbG3JmSBpY2F6yZlzaSB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGJ1bmRhbiBkaWfJmXIgdmFjaWIgdMmZdGJpcWzJmXJpIHNpbG3JmWsgw7zDp8O8biBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jbGVhckFwcFVzZXJEYXRhIiBtc2dpZD0iMjc0MTA5MTkxODQ1ODQyNzU2Ij4iZGlnyZlyIHTJmXRiaXFsyZlyaW4gbcmZbHVtYXTEsW7EsSBzaWxpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NsZWFyQXBwVXNlckRhdGEiIG1zZ2lkPSI0NjI1MzIzNjg0MTI1NDU5NDg4Ij4iVMmZdGJpccmZIGlzdGlmYWTJmcOnaSBkYXRhc8SxbsSxIHTJmW1pemzJmW3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RlbGV0ZUNhY2hlRmlsZXMiIG1zZ2lkPSIzMTI4NjY1NTcxODM3NDA4Njc1Ij4iZGlnyZlyIHTJmXRiaXFsyZlyaW4ga2XFn2luaSBzaWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZWxldGVDYWNoZUZpbGVzIiBtc2dpZD0iMzgxMjk5ODU5OTAwNjczMDE5NiI+IlTJmXRiaXHJmSBrZcWfIGZheWxsYXLEsSBzaWxtyZkgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9Ijc0NzI5MjE3NjgzNTc5ODE5ODYiPiJ0yZl0YmlxIHNheGxhbWEgeWFkZGHFn8SxbsSxIMO2bMOnbcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFBhY2thZ2VTaXplIiBtc2dpZD0iMzkyMTA2ODE1NDQyMDczODI5NiI+IlTJmXRiaXHJmSDDtnrDvG7DvG4ga29kdW51LCBtyZlsdW1hdMSxbsSxIHbJmSBrZcWfIMO2bMOnw7xzw7xuw7wgYWxtYSBpY2F6yZlzaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxQYWNrYWdlcyIgbXNnaWQ9IjIxOTkxMjg0ODI4MjAzMDY5MjQiPiJiaXJiYcWfYSB0yZl0YmlxbMmZciBxdXJhxZ9kxLFybWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iNTYyODUzMDk3MjU0ODA3MTI4NCI+IlTJmXRiaXHJmSB5ZW5pIHbJmSB5YSBnw7xuY8mZbGzJmW5tacWfIEFuZHJvaWQgcGFrZXRsyZlyaW5pIHF1cmHFn2TEsXJtYcSfYSBpbWthbiB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGJ1bmRhbiBpc3RpZmFkyZkgZWTJmXLJmWsgZ8O8Y2zDvCBzyZlsYWhpeXnJmXRsyZlyyZkgbWFsaWsgdMmZdGJpcWzJmXJpIGVuZGlyyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2xlYXJBcHBDYWNoZSIgbXNnaWQ9Ijc0ODcyNzkzOTE3MjM1MjY4MTUiPiJiw7x0w7xuIHTJmXRiaXEga2XFnyBkYXRhc8SxbsSxIHNpbGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBDYWNoZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODk3NDY0MDg3MTk0NTQzNDU2NSI+IlTJmXRiaXHJmSBwbGFuxZ9ldGluIHlhZGRhxZ/EsW7EsSBib8WfYWx0bWFxIMO8w6fDvG4gZGlnyZlyIHTJmXRiaXFsyZlyaW4ga2XFnyBmYXlsbGFyxLFuxLEgc2lsbcmZayBpbWthbsSxIHZlcmlyLiBCdSBkYSBkaWfJmXIgdMmZdGJpcWzJmXJpbiBkYXRhbGFyxLEgeWVuaWTJmW4gyZlsZMmZIGV0bcmZbMmZcmkgc8mZYsmZYmluZMmZbiBkYWhhIHlhdmHFnyBpxZ9syZltyZlsyZlyaW7JmSBzyZliyZliIG9sYSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBDYWNoZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI0NTk0NDEwMjE5NTY0MzY3NzkiPiJUyZl0YmlxyZkgZGlnyZlyIHTJmXRiaXFsyZlyaW4ga2XFnyBxb3ZsdcSfdW51IHTJmW1pemzJmXnJmXLJmWsgdGVsZWZvbnVuIHlhZGRhxZ/EsW7EsSBib8WfYWx0bWFxIGljYXrJmXNpIHZlcmlyLiBCdSBkaWfJmXIgdMmZdGJpcWzJmXJpbiBtyZlsdW1hdGxhcsSxbsSxIHllbmlkyZluIMmZbGTJmSBldG3JmWxpIG9sZHVxbGFyxLFuYSBnw7ZyyZkgZGFoYSB5YXZhxZ8gYmHFn2xhbWFzxLFuYSBzyZliyZliIG9sdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3ZlUGFja2FnZSIgbXNnaWQ9IjMyODk4OTAyNzE2NDU5MjE0MTEiPiJ0yZl0YmlxIHJlc3Vyc2xhcsSxbsSxbiB5ZXJpbmkgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW92ZVBhY2thZ2UiIG1zZ2lkPSIzMTk1NjIyMTc3NzgyNDQ1MjQiPiJUyZl0YmlxyZkgdMmZdGJpcSByZXN1cnNsYXLEsW7EsSBkYXhpbGkgbWVkaWFkYW4geGFyaWNpIG1lZGlheWEgdsmZIMmZa3NpbsmZIGRhxZ/EsW1hxJ9hIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZExvZ3MiIG1zZ2lkPSI2NjE1Nzc4NTQzMTk4OTY3NjE0Ij4ibcmZeGZpIGxvcSBkYXRhc8SxbsSxIG94dXl1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MjA2MTMxMzI5MzQ1NTE1MSI+IlTJmXRiaXHJmSBzaXN0ZW1pbiBtw7x4dMmZbGlmIGp1cm5hbCBmYXlsbGFyxLFuxLEgb3h1bWHEn2EgaW1rYW4gdmVyaXIuIEJ1IGRhIFNpemluIHBsYW7Fn2V0ZMmZIGV0ZGlrbMmZcmluaXogaGFxccSxbmRhIG3JmWx1bWF0bGFyLCBoyZltw6dpbmluIMWfyZl4c2kgdsmZIGtvbmZpZGVuc2lhbCBtyZlsdW1hdGxhciBvbGEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjA2MzQzODE0MDI0MTU2MDQ0MyI+IlTJmXRiaXHJmSBzaXN0ZW1pbiBtw7x4dMmZbGlmIGp1cm5hbCBmYXlsbGFyxLFuxLEgb3h1bWHEn2EgaW1rYW4gdmVyaXIuIEJ1IGRhIFNpemluIHBsYW7Fn2V0ZMmZIGV0ZGlrbMmZcmluaXogaGFxccSxbmRhIG3JmWx1bWF0bGFyLCBoyZltw6dpbmluIMWfyZl4c2kgdsmZIGtvbmZpZGVuc2lhbCBtyZlsdW1hdGxhciBvbGEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjcxNTgwNTU1NTgyMzg4MTgxOCI+Im94dXRtYXEgw7zDp8O8biBpc3TJmW5pbMmZbiBtZWRpYSBkZWtvZGVyaSBpc3RpZmFkyZkgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI4MjgzOTEyNDg4NDMzMTg5MDEwIj4iVMmZdGJpccmZIHBsYXliYWNrXCdpIGRlxZ9pZnLJmSBldG3JmWsgw7zDp8O8biBoyZlyIGhhbnPEsSBiaXIgcXVyYcWfZMSxcsSxbG3EscWfIG1lZGlhIGRlxZ9pZnLJmWzJmXlpY2lzaW5pIGlzdGlmYWTJmSBldG3EsWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUNhQ2VydGlmaWNhdGVzIiBtc2dpZD0iMTY3ODM5MTg5Njc4Njg4MjAxNCI+ImV0aWJhcmzEsSBldGltYWRuYW3JmWzJmXJpIGlkYXLJmSBldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUNhQ2VydGlmaWNhdGVzIiBtc2dpZD0iNDAxNTY0NDA0NzE5NjkzNzAxNCI+IlTJmXRiaXHJmSBldGliYXJsxLEgZXRpbWFkbmFtyZlsyZlyIGtpbWkgQ0Egc2VydGlmaWthdGxhcsSxbsSxIHF1cmHFn2TEsXJtYXEgdsmZIHNpc3RlbWTJmW4gc2lsbcmZecmZIGljYXrJmSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RpYWdub3N0aWMiIG1zZ2lkPSI4MDc2NzQzOTUzOTA4MDAwMzQyIj4iZGlhZ2EgbcmZeHN1cyBvbGFuIG3JmW5iyZlsyZlyaSB5YXovb3h1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlhZ25vc3RpYyIgbXNnaWQ9IjY2MDgyOTU2OTIwMDI0NTIyODMiPiJUyZl0YmlxyZkgZGlhZyBxcnVwYSBtyZlzdXMgb2xhbiByZXN1cnNsYXLEsSB5YXptYXEgdsmZIG94dW1hcSBpY2F6yZlzaSB2ZXJpcjsgbcmZc8mZbMmZbiAgL2RldiBxb3ZsdcSfdW5kYWvEsSBmYXlsbGFyLiBCdSBzaXN0ZW1pbiBzdGFiaWxsaXlpbsmZIHbJmSB0yZlobMO8a8mZc2l6bGl5aW7JmSB0yZlzaXIgZWTJmSBiaWzJmXIuIEJ1IGFuY2FxIGlzdGVoc2Fsw6fEsSB2yZkgeWEgb3BlcmF0b3IgdMmZcsmZZmluZMmZbiBhdmFkYW5sxLHEn2EgeGFzIGRpYXFub3N0aWthIMO8w6fDvG4gb2xtYWzEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VDb21wb25lbnRTdGF0ZSIgbXNnaWQ9IjYzMzU1NzY3NzU3MTEwOTU5MzEiPiJ0yZl0YmlxIGtvbXBvbmVudGzJmXJpbmkgYWt0aXZsyZnFn2Rpcm3JmSB2yZkgeWEgZGVha3RpdmzJmcWfZGlybcmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg4ODc0MzU3NDA5ODIyMzcyOTQiPiJUyZl0YmlxyZkgZGlnyZlyIHTJmXRiaXEga29tcG9uZW50aW5pbiBha3RpdiBvbHViLW9sbWFkxLHEn8SxbsSxIGTJmXlpxZ9tyZlrIGlta2FuxLEgdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gyZloyZltaXl5yZl0bGkgcGxhbsWfZXQgaW1rYW5sYXLEsW7EsSBkZWFrdGl2IGV0bcmZayDDvMOnw7xuIGlzdGlmYWTJmSBlZMmZIGJpbMmZci4gQnUgaWNhesmZIGlsyZkgZWh0aXlhdGzEsSBvbG1hcSBsYXrEsW1kxLFyLCDDp8O8bmtpIHTJmXRiaXEga29tcG9uZW50bMmZcmkgeWFyYXJzxLF6LCB6aWRkaXl5yZl0bGksIHbJmSB5YSBxZXlyaS1zYWJpdCBzdGF0dXNhIMOnZXZyaWzJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODI3MjMyNDg0NDE2NTA1NjE1Ij4iVMmZdGJpccmZIGRpZ8mZciB0yZl0YmlxIGtvbXBvbmVudGluaW4gYWt0aXYgb2x1Yi1vbG1hZMSxxJ/EsW7EsSBkyZl5acWfbcmZayBpbWthbsSxIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgYnVuZGFuIMmZaMmZbWl5ecmZdGxpIHRlbGVmb24gaW1rYW5sYXLEsW7EsSBkZWFrdGl2IGV0bcmZayDDvMOnw7xuIGlzdGlmYWTJmSBlZMmZIGJpbMmZci4gQnUgaWNhesmZIGlsyZkgZWh0aXlhdGzEsSBvbG1hcSBsYXrEsW1kxLFyLCDDp8O8bmtpIHTJmXRiaXEga29tcG9uZW50bMmZcmkgeWFyYXJzxLF6LCB6aWRkaXl5yZl0bGksIHbJmSB5YSBxZXlyaS1zYWJpdCBzdGF0dXNhIMOnZXZyaWzJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ncmFudFJldm9rZVBlcm1pc3Npb25zIiBtc2dpZD0iNDYyNzMxNTM1MTA5MzUwODc5NSI+ImljYXrJmWzJmXIgdmVybcmZayB2yZkgeWEgbMmZxJ92IGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dyYW50UmV2b2tlUGVybWlzc2lvbnMiIG1zZ2lkPSI0MDg4NjQyNjU0MDg1ODUwNjYyIj4iVMmZdGJpccmZIGJ1IHbJmSB5YSBkaWfJmXIgdMmZdGJpcWzJmXLJmSB4w7xzdXNpIGl6bmzJmXIgdmVybcmZecmZIGljYXrJmSB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyICBidW5kYW4gaXppbiB2ZXJtyZlkaXlpbml6IMO2esmZbGxpa2zJmXJpIMO2emzJmXJpbsmZIHZlcm3JmWsgw7zDp8O8biBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcmVmZXJyZWRBcHBsaWNhdGlvbnMiIG1zZ2lkPSI4NDYzMTgxNjI4Njk1Mzk2MzkxIj4idMmZcmNpaCBlZGlsyZluIHTJmXRiaXFsyZlyIHF1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFByZWZlcnJlZEFwcGxpY2F0aW9ucyIgbXNnaWQ9IjQ5NzM5ODY3NjIyNDE3ODM3MTIiPiJUyZl0YmlxyZkgdMmZcmNpaCBldGRpeWluaXogdMmZdGJpcWzJmXJpIGTJmXlpxZ9tyZlrIGlta2FuxLEgdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciDFn8mZeHNpIG3JmWx1bWF0bGFyxLFuxLF6xLEgdG9wbGFtYXEgw7zDp8O8biBjYXJpIHTJmXRiaXFsyZlyaW5pemkgYWxkYWRhcmFxIGnFn2zJmXnJmW4gdMmZdGJpcWzJmXJpIHjJmWLJmXJzaXogZMmZeWnFn8mZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU2V0dGluZ3MiIG1zZ2lkPSIyMjI2MTk1MjkwOTU1MjI0NzMwIj4ic2lzdGVtIGF5YXJsYXLEsW5kYSBkyZl5acWfaWtsaWsgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTZXR0aW5ncyIgbXNnaWQ9Ijc3NzU3MjM0NDE1NTg5MDcxODEiPiJUyZl0YmlxyZkgc2lzdGVtIGF5YXJsYXLEsSBkYXRhc8SxbsSxIHJlZGFrdMmZIGV0bcmZIGljYXrJmXNpIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgc2lzdGVtIGF5YXJsYXLEsW7EsSBrb3JsYXlhIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSIyMDQ2NzYyNTE4NzY3MTgyODgiPiJ0yZlobMO8a8mZc2l6IHNpc3RlbSBuaXphbWxhcsSxbsSxIGTJmXlpxZ9pciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSI4MTU5NTM1NjEzMDIwMTM3MzkxIj4iVMmZdGJpccmZIHNpc3RlbWluIHTJmWhsw7xryZlzaXogYXlhcmxhciBkYXRhc8SxbsSxIGTJmXlpxZ9tyZl5yZkgaW1rYW4gdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIGlzdGlmYWTJmSDDvMOnw7xuIGRleWlsLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIyMTQ5NDI2NjY0MjI2MTUyMTg1Ij4iR29vZ2xlIHhpZG3JmXRsyZlyIHjJmXJpdMmZc2luaSBkyZl5acWfZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIxMjg3MzA5NDM3NjM4MzgwMjI5Ij4iVMmZdGJpccmZIEdvb2dsZSB4aWRtyZl0bMmZciB4yZlyaXTJmXNpbmkgZMmZeWnFn2Rpcm3JmWsgaW1rYW7EsSB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyaW4gaXN0aWZhZMmZc2kgw7zDp8O8biBkZXlpbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVCb290Q29tcGxldGVkIiBtc2dpZD0iNTMxMjk2NTU2NTk4NzgwMDAyNSI+ImJhxZ9sYW7En8SxY2RhIGnFn2zJmXlpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVCb290Q29tcGxldGVkIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3MzkwMzA0NjY0MTE2ODgwNzA0Ij4iVMmZdGJpccmZIHNpc3RlbSB5w7xrbMmZbcmZbmkgYml0aXJkaXlpIHphbWFuIGTJmXJoYWwgw7Z6w7xuw7wgYmHFn2xhdG1hxJ9hIGlta2FuIHZlcmlyLiBCdSBwbGFuxZ9ldGkgYmHFn2xhdG1hxJ/EsW4gdXp1biDDp8mZa23JmXNpbsmZIHPJmWLJmWIgb2xhIGJpbMmZciB2yZkgdMmZdGJpccmZIGjJmW1pxZ/JmSDDp2FsxLHFn2TEsXJhcmFxIGLDvHTDvG4gcGxhbsWfZXRpIHlhdmHFn2xhdG1hxJ9hIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVCb290Q29tcGxldGVkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTEzOTUwNTg5MTAyNjE3NTA0Ij4iVMmZdGJpccmZIHNpc3RlbSBib290aW5xaSBiaXRpcmRpa2TJmW4gZMmZcmhhbCBzb25yYSDDtnrDvG7DvCBiYcWfbGF0bWFxIGljYXrJmXNpIHZlcmlyLiBCdSB0ZWxlZm9udW4gYcOnxLFsbWFzxLFuxLEgbMmZbmdpZMmZIHbJmSBkYWltYSBpxZ9syZlrIHFhbGFyYXEgdGVsZWZvbnVuIHPDvHLJmXRpbmkgYcWfYcSfxLEgc2FsYSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RTdGlja3kiIG1zZ2lkPSI3OTE5MTI2MzcyNjA2ODgxNjE0Ij4iZGFpbWkgc2lxbmFsIGfDtm5kyZlybcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFN0aWNreSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzc0OTc2MDQ5NDM5OTkxNTY1MSI+IlTJmXRiaXHJmSB5YXnEsW0gYml0ZGlrZMmZbiBzb25yYSBkYSBxYWxhbiDDp8mZdGluIHlhecSxbWxhciBnw7ZuZMmZcm3JmXnJmSBpbWthbiB2ZXJpci4gSMmZZHNpeiBpc3RpZmFkyZkgw6dveCB5YWRkYcWfIGlzdGlmYWTJmXNpbsmZIHPJmWLJmWIgb2xtYXFsYSBwbGFuxZ9ldGkgeWF2YcWfIHbJmSBxZXlyaS1zdGFiaWwgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjgyNTgwMzc2NDIzMjQ0NTA5MSI+IlTJmXRiaXHJmSB5YXnEsW0gYml0ZGlrZMmZbiBzb25yYSBkYSBxYWxhbiDDp8mZdGluIHlhecSxbWxhciBnw7ZuZMmZcm3JmXnJmSBpbWthbiB2ZXJpci4gSMmZZHNpeiBpc3RpZmFkyZkgw6dveCB5YWRkYcWfIGlzdGlmYWTJmXNpbsmZIHPJmWLJmWIgb2xtYXFsYSB0ZWxlZm9udSB5YXZhxZ8gdsmZIHFleXJpLXN0YWJpbCBlZMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDb250YWN0cyIgbXNnaWQ9IjgzNDg0ODExMzE4OTk4ODYxMzEiPiJrb250YWtybGF0xLFuxLF6xLEgb3h1bWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENvbnRhY3RzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1Mjk0ODY2ODU2OTQxMTQ5NjM5Ij4iVMmZdGJpccmZIHBsYW7Fn2V0aW5pemTJmSB5ZXJsyZnFn8mZbiBrb250YWt0bGFyxLEgb3h1bWFxIGljYXrJmXNpIHZlcmlyLCB0ZXotdGV6IHrJmW5nIGVsyZlkaXlpbml6LCBlbWFpbGzJmcWfZGl5aW5peiB2yZkgeWEgyZlsYXHJmSBzYXhsYWTEscSfxLFuxLF6IHjDvHN1c2kgaW5kaXZpZHVhbGxhciBkYXhpbCBvbG1hcWxhLiBCdSBpY2F6yZkgdMmZdGJpcWzJmXLJmSBrb250YWt0IG3JmWx1bWF0bGFyxLFuxLF6xLEgc2F4bGFtYcSfYSB2yZkgesmZcsmZcmxpIHTJmXRiaXFsyZlyyZkga29udGFrdCBtyZlsdW1hdGxhcsSxbsSxIHNpemluIGJpbGdpbml6IG9sbWFkYSBwYXlsYcWfbWEgaW1rYW7EsSB5YXJhZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ29udGFjdHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NDQwNjU0MTUyNDU3MzAwNjYyIj4iVMmZdGJpccmZwqB0ZXotdGV6IHrJmW5nIGVsyZlkaXlpbml6LCBlLW3JmWt0dWIgZ8O2bmTJmXJkaXlpbml6IHbJmSB5YSDJmWxhccmZIHNheGxhZMSxxJ/EsW7EsXogeMO8c3VzaSBpbmRpdmlkdWFsbGFyIGRheGlsIG9sbWFxbGEgdGVsZWZvbnVudXpkYSB5ZXJsyZnFn8mZbiBrb250YWt0bGFyxLEgb3h1bWFxIGljYXrJmXNpIHZlcmlyLiBCdSBpY2F6yZkgdMmZdGJpcWzJmXLJmSBrb250YWt0IG3JmWx1bWF0bGFyxLFuxLF6xLEgc2F4bGFtYcSfYSB2yZkgesmZcsmZcmxpIHTJmXRiaXFsyZlyyZkga29udGFrdCBtyZlsdW1hdGxhcsSxbsSxIHNpemluIHjJmWLJmXJpbml6IG9sbWFkYSBwYXlsYcWfbWEgaW1rYW7EsSB5YXJhZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ29udGFjdHMiIG1zZ2lkPSI1MTA3NDkyMDg2NDE2NzkzNTQ0Ij4ia29udGFrdGxhcsSxbsSxesSxIGTJmXlpxZ9kaXJpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ29udGFjdHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg5NzI0MzkzMjUyMTk1MzYwMiI+IlTJmXRiaXHJmSBwbGFuxZ9ldGluaXpkyZlraSB6yZluZyBldG3JmWsgdGV6bGl5aW5peiwgZWxla3Ryb24gcG/Dp3RsYXLEsW7EsXosIMO8bnNpeXnJmXRsyZlyaW5peiBoYXFxxLFuZGEgbcmZbHVtYXRsYXLEsSBkyZl5acWfbcmZecmZIGlta2FuIHZlcmlyLiBCdSBpY2F6yZkga29udGFrdCBtyZlsdW1hdGxhcsSxbsSxbiBzaWxpbm3JmXNpbsmZIGTJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNvbnRhY3RzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTg5ODY5MjI0NjI1MTYzNTU4Ij4iVMmZdGJpccmZIFNpemluIHrJmW5nIGV0bcmZayB0ZXpsaXlpbml6LCBlbGVrdHJvbiBwb8OndGxhcsSxbsSxeiwgw7xuc2l5ecmZdGzJmXJpbml6IGhhcXHEsW5kYSBtyZlsdW1hdGxhcsSxIGTJmXlpxZ9tyZl5yZkgaW1rYW4gdmVyaXIuIEJ1bmEga29udGFrdGxhcsSxbiBzaWxpbm3JmXNpIGlta2FuxLEgZMmZIGRheGlsZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENhbGxMb2ciIG1zZ2lkPSIzNDc4MTMzMTg0NjI0MTAyNzM5Ij4iesmZbmcgcWV5ZGl5eWF0xLFuxLEgb3h1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGxMb2ciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM3MDA2NDUxODQ4NzA3NjAyODUiPiJUyZl0YmlxyZkgZ8mZbMmZbiB2yZkgZ2VkyZluIHrJmW5nbMmZciBoYXFxxLFuZGEgb2xhbiBkYXRhIGRheGlsIG9sbWFxbGEgYsmZcmFiyZlyIHBsYW7Fn2V0aW5pemluIHrJmW5nIHFleWRpeXlhdMSxbsSxIG94dW1hxJ9hIGlta2FuIHZlcmlyLiBCdSBpY2F6yZkgdMmZdGJpcWzJmXLJmSB6yZluZyBxZXlkaXl5YXTEsW7EsXrEsSBzYXhsYW1hxJ9hIGlta2FuIHZlcmlyIHbJmSB6yZlyyZlybGkgdMmZdGJpcWzJmXIgesmZbmcgcWV5ZGl5eWF0IGRhdGFzxLFuxLEgc2l6ZMmZbiB4yZliyZlyc2l6IHBheWxhxZ9hIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsbExvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3Nzc3MjU3OTY4MTMyMTcyNDQiPiJUyZl0YmlxyZkgdGVsZWZvbiBqdXJuYWzEsW7EsXrEsSBveHVtYcSfYSBpbWthbiB2ZXJpciwgYnVuYSBnyZlsyZluIHbJmSBnZWTJmW4gesmZbmdsyZlyIGhhcXHEsW5kYSBtyZlsdW1hdGxhciBkYSBkYXhpbGRpci4gQnUgaWNhesmZIHTJmXRiaXHJmSB6yZluZyBqdXJuYWzEsSBkYXRhc8SxbsSxIHNheGxhbWHEn2EgaW1rYW4gdmVyaXIga2ksIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gaXN0aWZhZMmZIGVkyZlyyZlrIFNpemTJmW4geMmZYsmZcnNpeiBiw7x0w7xuIG3JmWx1bWF0bGFybsSxesSxIHBheWxhxZ9hIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ2FsbExvZyIgbXNnaWQ9Ijg1NTIwNDU2NjQ3NDM0OTkzNTQiPiJ6yZluZyBsb3F1IHlhesSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsbExvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY2MTgwNjA2MjI3NDExOTI0NSI+IlTJmXRiaXHJmSBwbGFuxZ9ldGluaXpkyZlraSB6yZluZyBqdXJuYWzEsW7EsSwgaMmZbcOnaW5pbiBnZWTJmW4gdsmZIGfJmWzJmW4gesmZbmdsyZlyaW4gc2l5YWjEsXPEsW7EsSBkyZl5acWfbcmZecmZIGlta2FuIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgYnVuZGFuIGlzdGlmYWTJmSBlZMmZcsmZaywgesmZbmcganVybmFsxLFuxLF6YSBkyZl5acWfaWtsaWsgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxsTG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjgzOTQxNzM2MzUyNzg3ODQyIj4iVMmZdGJpccmZIHNpemluIGRheGlsIG9sYW4gdsmZIGdlZMmZbiB6yZluZ2zJmXIgZGF4aWwgb2xtYXFsYSB0ZWxlZm9uIHrJmW5naSBsb3FsYXLEsW7EsXrEsSByZWRha3TJmSBldG3JmWsgaWNhesmZc2kgdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gdGVsZWZvbiBsb3FsYXLEsW7EsXrEsSBzaWxtyZlrIHbJmSB5YSByZWRha3TJmSBldG3JmWsgw7zDp8O8biBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkUHJvZmlsZSIgbXNnaWQ9IjQ3MDE4ODk4NTI2MTI3MTY2NzgiPiLDtnoga29udGFrdCBrYXJ0xLFuxLF6xLEgb3h1eXVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFByb2ZpbGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NDYyNDc1MTUxODQ5ODg4ODQ4Ij4iVMmZdGJpccmZIGNpaGF6xLFuxLF6ZGEgeWVybMmZxZ/JmW4gYWTEsW7EsXogdsmZIGtvbnRha3QgbcmZbHVtYXRsYXLEsW7EsXoga2ltaSDFn8mZeHNpIHByb2ZpbCBtyZlsdW1hdGxhcsSxbsSxIG94dW1hIGljYXrJmXNpIHZlcmlyLiBCdSBvIGRlbcmZa2RpciBraSwgdMmZdGJpcSBzaXppIHRhbsSxeWEgdsmZIHNpemluIHByb2ZpbCBtyZlsdW1hdGxhcsSxbsSxesSxIGJhxZ9xYWxhcsSxbmEgZ8O2bmTJmXLJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVByb2ZpbGUiIG1zZ2lkPSI5MDc3OTM2Mjg3NzczOTc2NDMiPiJzaXppbiBrb250YWt0IGthcnTEsW7EsXpkYSBkyZl5acWfaWtsaWsgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVQcm9maWxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTU1MjA4NDI5NDU5ODQ2NTg5OSI+IlTJmXRiaXHJmSBjaWhhesSxbsSxemRhIHllcmzJmcWfyZluIGFkxLFuxLF6IHbJmSBrb250YWt0IG3JmWx1bWF0bGFyxLFuxLF6IGtpbWkgxZ/JmXhzaSBwcm9maWwgbcmZbHVtYXRsYXLEsW7EsSBkyZl5acWfbcmZayB2yZkgeWEgyZlsYXbJmSBldG3JmWsgaWNhesmZc2kgdmVyaXIuIEJ1IG8gZGVtyZlrZGlyIGtpLCB0yZl0YmlxIHNpemkgdGFuxLF5YSB2yZkgc2l6aW4gcHJvZmlsIG3JmWx1bWF0bGFyxLFuxLF6xLEgYmHFn3FhbGFyxLFuYSBnw7ZuZMmZcsmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMjY4OTIwOTU2MTUyNDE5MTcwIj4ic29zaWFsIGxlbnRpbml6aSBveHV5dXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDI1NTcwNjAyNzE3MjA1MDg3MiI+IlTJmXRiaXHJmSBTaXppbiB2yZkgZG9zdGxhcsSxbsSxesSxbiBzb3NpYWwgZ8O8bmPJmWxsyZlyaW5pIMmZbGTJmSBldG3JmWsgdsmZIHNpbnhyb25pesmZIGV0bcmZayBpY2F6yZlzaSB2ZXJpci4gTcmZbHVtYXQgcGF5bGHFn2Fya8mZbiBkaXFxyZl0bGkgb2x1biAtIGtvbmZpZGVuc2lhbGzEsXFkYW4gYXPEsWzEsSBvbG1heWFyYXEgYnUsIFNpeiB2yZkgZG9zdGxhcsSxbsSxeiBhcmFzxLFuZGEgc29zaWFsIMWfyZliyZlryZlsyZlyZMmZa2kgZGFuxLHFn8SxxJ/EsSBveHVtYXEgaW1rYW7EsSB2ZXJpci4gUWV5ZDogYnUgaWNhesmZIGLDvHTDvG4gc29zaWFsIMWfyZliyZlryZlsyZlyZMmZIGljcmEgZWRpbMmZIGJpbG3JmXouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM1MDQxNzkyMjI0OTMyMzU2NDUiPiJzb3NpYWwgYXjEsW7EsW7EsXphIHlhesSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzA4NjU1NzU1MjIwNDExNDg0OSI+IlTJmXRiaXHJmSBkb3N0bGFyxLFuxLF6ZGFuIHNvc2lhbCB5ZW5pbMmZbm3JmWzJmXJpIGfDtnN0yZlybcmZIGljYXrJmXNpIHZlcmlyLiBNyZlsdW1hdCBwYXlsYcWfYXJryZluIGRpcXHJmXRsaSBvbHVuIC0gYnUgZG9zdGxhcsSxbsSxemRhbiBnyZlsyZluIG1lc2FqxLEgZW1hbCBldG3JmXnJmSBpem4gdmVyaXIuIFFleWQ6IGJ1IGljYXrJmSBiw7x0w7xuIHNvc2lhbCDFn8mZYsmZa8mZbMmZcsmZIMWfYW1pbCBvbHVubWF5YSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2FsZW5kYXIiIG1zZ2lkPSI1OTcyNzI3NTYwMjU3NjEyMzk4Ij4idMmZcXZpbSB0yZlkYmlybMmZcmluaSB2yZkga29uZmlkZW5zaWFsIG3JmWx1bWF0bGFyxLEgb3h1eXVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGVuZGFyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MjE2NDYyMDQ5MDU3NjU4NzIzIj4iVMmZdGJpccmZIGRvc3RsYXLEsW7EsXrEsW4gdsmZIMmZbcmZa2RhxZ9sYXLEsW7EsXrEsW4gcGxhbsWfZXRpbml6ZMmZIHllcmzJmcWfyZluIGthbGVuZGFyIHTJmWRiaXJsyZlyaW5pIG94dW1hxJ9hIGljYXrJmSB2ZXJpci4gQnUgdMmZdGJpccmZIGtvbmZpZGVuc2lhbGzEsXEgdsmZIHlhIGjJmXNzYXNsxLFxZGFuIGFzxLFsxLEgb2xtYXlhcmFxIHNpemluIGthbGVuZGFyIG3JmWx1bWF0bGFyxLFuxLF6xLEgcGF5bGHFn21hcSB2yZkgeWEgc2F4bGFtYcSfYSBpbWthbiB5YXJhZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3NDM0NTQ4NjgyNDcwODUxNTgzIj4iVMmZdGJpccmZIGRvc3QgdsmZIMmZbcmZa2RhxZ9sYXJhIG3JmXhzdXMgb2xhbmxhciBkYXhpbCBvbG1hcWxhIHBsYW7Fn2V0ZMmZIHllcmzJmcWfyZluIGLDvHTDvG4ga2FsZW5kYXIgdMmZdGJpcWzJmXJpbmkgb3h1bWFxIGljYXrJmXNpIHZlcmlyLiBCdSB0yZl0YmlxyZkga29uZmlkZW5zaWFsbMSxcSB2yZkgeWEgaMmZc3Nhc2zEsXFkYW4gYXPEsWzEsSBvbG1heWFyYXEsIFNpemluIGthbGVuZGFyIG3JmWx1bWF0bGFyxLFuxLF6xLEgcGF5bGHFn21hcSB2yZkgeWEgc2F4bGFtYXEgaW1rYW7EsSB5YXJhZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ2FsZW5kYXIiIG1zZ2lkPSI4NDM4ODc0NzU1MTkzODI1NjQ3Ij4iY2loYXogc2FoaWJpbmluIGljYXrJmXNpIG9sbWFkYW4gdMmZcXZpbSB0yZlkYmlybMmZcmkgyZlsYXbJmSBldG3JmWsgdsmZIHlhIGTJmXlpxZ9tyZlrLCBidW51biBoYXFxxLFuZGEgYmlsZGlyacWfbMmZciBnw7ZuZMmZcm3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGVuZGFyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2Njc5MDM1NTIwMTEzNjY4NTI4Ij4iVMmZdGJpccmZIHBsYW7Fn2V0aW5pemTJmWtpIHTJmWRiaXJsyZlyaSBkyZl5acWfbcmZecmZLCB0yZlkYmlyIMmZbGF2yZkgZXRtyZl5yZkgdsmZIHlhIHNpbG3JmXnJmSBpbWthbiB2ZXJpci4gQnVuYSBTaXppbiBkb3N0bGFyxLFuxLF6bGEgdsmZIGjJmW1rYXJsYXLEsW7EsXpsYSBiaXJsaWtkyZkgaGF6xLFybGFkxLHEn8SxbsSxeiB0yZlkYmlybMmZciBkyZkgZGF4aWxkaXIuIEJ1LCB0yZlkYmlyyZkgU2l6aW4gYWTEsW7EsXpkYW4gdsmZIFNpemTJmW4geMmZYsmZcnNpeiwgdMmZcXZpbSBzYWhpYmkga2ltaSBtZXNhaiBnw7ZuZMmZcm3JmWsgaW1rYW7EsW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGVuZGFyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjMyNDQ2OTQ5NjMyNzI0OTM3NiI+IkRvc3RsYXLEsW7EsXogdsmZIGjJmW1rYXJsYXLEsW7EsXphIG3JmXhzdXMgb2xhbmxhciBkYSBkYXhpbCBvbG1hcWxhLCB0yZl0YmlxyZkgdGVsZWZvbnVudXpkYWvEsSB0yZlkYmlybMmZcmkgZMmZeWnFn23JmXnJmSwgdMmZZGJpciDJmWxhdsmZIGV0bcmZecmZIHbJmSB5YSBzaWxtyZl5yZkgaW1rYW4gdmVyaXIuIEJ1LCB0yZlkYmlyyZkgU2l6aW4gYWTEsW7EsXpkYW4gdsmZIFNpemTJmW4geMmZYsmZcnNpeiwgdMmZcXZpbSBzYWhpYmkga2ltaSBtZXNhaiBnw7ZuZMmZcm3JmWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc01vY2tMb2NhdGlvbiIgbXNnaWQ9Ijg2ODgzMzQ5NzQwMzY4MjMzMzAiPiJ0ZXN0IMO8w6fDvG4gc2F4dGEgbcmZa2FuIG3JmW5iyZlsyZlyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc01vY2tMb2NhdGlvbiIgbXNnaWQ9IjU4MDg3MTEwMzk0ODIwNTE4MjQiPiJUZXN0IMO8w6fDvG4gc2F4dGEgbcmZa2FuIG3JmW5iyZlsyZlyaSB5YXJhZMSxbiB2yZkgeWEgeWVuaSBtyZlrYW4gcHJvdmF5ZGVyaSBxdXJhxZ9kxLFyxLFuLiBCdSB0yZl0YmlxbMmZcsmZIEdQUyB2yZkgbcmZa2FuIHByb3ZheWRlcmzJmXJpIGtpbWkgbcmZa2FuIG3JmW5iyZlsyZlyaW5kyZluIGFsxLFuYW4gbcmZa2FuIHbJmS95YSBzdGF0dXNsYXLEsSB5ZW5pZMmZbiB5YXptYcSfYSBpY2F6yZkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NMb2NhdGlvbkV4dHJhQ29tbWFuZHMiIG1zZ2lkPSIyODM2MzA4MDc2NzIwNTUzODM3Ij4iyZlsYXbJmSBtyZlrYW4gcHJvdmF5ZGVyaSDJmW1ybMmZcmluyZkgw6fEsXjEscWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iNTk0NTE2NjY0MjMzNTgwMDc2MyI+IlTJmXRiaXHJmSDJmWxhdsmZIG3JmWthbiBwcm92YXlkZXJpIMmZbXJsyZlyaW7JmSBkYXhpbCBvbG1hcSBpbWthbsSxIHZlcmlyLiBCdSB0yZl0YmlxyZkgR1BTIMmZbcmZbGl5eWF0xLFuYSB2yZkgeWEgZGlnyZlyIG3JmWthbiBtyZluYsmZbMmZcmluyZkgbWFuZSBvbG1hcSBpbWthbsSxIHZlcsmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iNjU3ODEwMTE5OTgyNTE5Mzg3MyI+Ik3JmWthbiBwcm92YXlkZXJpbmkgcXVyYcWfZMSxcm1hcSBpY2F6yZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iOTA2NjE0NjEyMDQ3MDU5MTUwOSI+IlllbmkgeWVybMmZxZ9tyZkgdMmZY2hpemF0w6fEsXPEsW7EsSB0ZXN0IGV0bcmZayB2yZkgeWEgcXVyYcWfZMSxcm1hcSDDvMOnw7xuIG1vY2sgeWVybMmZxZ9tyZkgbcmZbmLJmWzJmXJpIHlhcmF0LiBCdSB0yZl0YmlxyZkgeWVybMmZxZ9tyZluaW4gdsmZL3lhIGRpZ8mZciB5ZXJsyZnFn23JmSBtyZluYsmZbMmZcmluZMmZbiBHUFMgdsmZIHlhIHllcmzJmcWfbcmZIHTJmWNoaXphdMOnxLFsYXLEsSBxYXnEsXRtxLHFnyBzdGF0dXNsYXLEsW4gbMmZxJ92IGV0bcmZc2luyZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSIxMTkxODk4MDYxOTY1MjczMzcyIj4iZMmZcWlxIHllcmkgKEdQUyB2yZkgxZ/JmWLJmWvJmS3JmXNhc2zEsSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSI1Mjk1MDQ3NTYzNTY0OTgxMjUwIj4iUWxvYmFsIFBvemlzaXlhIFNpc3RlbWluaSB2yZkgeWEgxZ/JmWLJmWvJmSBxw7xsbMmZbMmZcmkgdsmZIFdpLUZpIGtpbWkgxZ/JmWLJmWvJmSBtyZlrYW7EsW7EsSBpc3RpZmFkyZkgZWTJmXLJmWsgdMmZdGJpccmZIFNpemluIGTJmXFpcSB5ZXJpbml6aSB0yZl5aW4gZXRtyZl5yZkgaW1rYW4gdmVyaXIuIEJ1IG3JmWthbiB4aWRtyZl0bMmZcmkgYWt0aXZsyZnFn2RpcmlsbcmZbGlkaXJsyZlyIGtpLCBTaXogdMmZdGJpcWkgaXN0aWZhZMmZIGVkyZluIHphbWFuIHTJmXRiaXEgb25sYXLEsSBpc3RpZmFkyZkgZWTJmSBiaWxzaW4uIFTJmXRiaXFsyZlyIFNpemluIGhhcmFkYSBvbG1hxJ/EsW7EsXrEsSBidW51biB2YXNpdMmZc2lsyZkgdMmZeWluIGVkyZljyZlrLCBleW5pIHphbWFuZGEsIGJ1IHhpZG3JmXQgyZlsYXbJmSBiYXRhcmV5YSBlbmVyamlzaSBhcGFyYSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjQ4ODc4OTUzNjIzNTQyMzk2MjgiPiJ0yZl4bWluaSBtyZlrYW4gKMWfyZliyZlryZkgyZlzYXNsxLEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSIyNTM4MjAwMTg0MzczMzAyMjk1Ij4iVMmZdGJpccmZIHTJmXhtaW5pIHllcmluaXppIGFsbWFxIMO8w6fDvG4gaW1rYW4gdmVyaXIuIEJ1IHllciwgeWVybMmZxZ9tyZkgeGlkbcmZdGzJmXJpIHTJmXLJmWZpbmTJmW4gbW9iaWwgccO8bGzJmWzJmXIgdsmZIFdpLUZpIGtpbWkgxZ/JmWLJmWvJmSB5ZXJsyZnFn23JmSBtyZluYsmZbMmZcmTJmW4gaXN0aWZhZMmZIGV0bcmZa2zJmSDJmWxkyZkgZWRpbGlyLiBCdSB5ZXJsyZnFn23JmSB4aWRtyZl0bMmZcmkgdMmZdGJpcWluIG9ubGFyZGFuIGlzdGlmYWTJmXNpIMO8w6fDvG4gYcOnxLFxIHbJmSBjaWhhesSxbsSxesSxbiBvbmxhcsSxIGlzdGlmYWTJmXNpIMO8w6fDvG4gbcO2dmN1ZCBvbG1hbMSxZMSxci4gVMmZdGJpcWzJmXIgYnVuZGFuIHNpemluIHTJmXhtaW7JmW4gaGFyYWRhIG9sZHXEn3VudXp1IG3DvMmZeXnJmW5syZnFn2Rpcm3JmWsgw7zDp8O8biBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjIzNjM5Njk2NDE3OTIzODg5NDciPiJTdXJmYWNlRmxpbmdlclwnyZkgZGF4aWwgb2xtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiJUyZl0YmlxyZkgYcWfYcSfxLEgc8mZdml5ecmZbGkgU3VyZmFjZUZuZ2VyIMO2esmZbGxpa2zJmXJpbmkgaXN0aWZhZMmZIGV0bcmZecmZIGljYXrJmSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJmcmV5bSBidWZlcmkgb3h1eXVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IlTJmXRiaXHJmSBmcmV5bSBidWZlcmluaW4ga29udGVudGluaSBveHVtYXEgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iSW5wdXRGbGluZ2VyIGtlw6dpZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4iVMmZdGJpccmZIGHFn2HEn8SxIHPJmXZpeXnJmWxpIElucHV0RmxpbmdlciBmdW5rc2l5YWxhcsSxbsSxIGlzdGlmYWTJmSBldG3JmXnJmSBpY2F6yZkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJXaWZpIGfDtnLDvG50w7xsyZlyaW5pIHF1cmHFn2TEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJUyZl0YmlxyZkgV2lmaSBnw7Zyw7xudMO8bMmZcmluaSBxdXJhxZ9kxLFybWHEn2EgdsmZIG9ubGFyYSBxb8WfdWxtYcSfYSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+IldpRmkgZ8O2csO8bnTDvGzJmXJpbmkgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iNDU0MzkxMjI5MjY4MTgyNjk4NiI+IlTJmXRiaXHJmSBXaWZpIGRpc3BsZXlsyZlyaW5pbiBhxZ9hxJ/EsSBzyZl2aXl5yZlsaSBmdW5rc2l5YWxhcsSxbsSxIGlkYXLJmSBldG3JmWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjY4NTcxMzQ0OTg0MDIzNDY3MDgiPiJhdWRpbyDDp8SxeMSxxZ/EsSBhbMSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjYyMTA1OTc3NTQyMTIyMDg4NTMiPiJUyZl0YmlxyZkgYXVkaW8gw6fEsXjEscWfxLEgYWxtYXEgdsmZIHllbmlkyZluIHnDtm5syZluZGlybcmZayBpbWthbsSxIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMjI0NjgyODc3MzU4OTA5NDAyMyI+InZpZGVvIMOnxLF4xLHFn8SxIGFsxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMzU5NDgxNjU4MDM0MTQ5ODYwIj4iVMmZdGJpccmZIHZpZGVvIMOnxLF4xLHFn8SxIGFsbWFxIHbJmSB5ZW5pZMmZbiB5w7ZubMmZbmRpcm3JmWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVTZWN1cmVWaWRlb091dHB1dCIgbXNnaWQ9Ijc4MTUzOTg5NjkzMDMzODIwMTYiPiJ0yZlobMO8a8mZc2l6IHZpZGVvIMOnxLF4xLHFn8SxIGFsxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMjc3OTc5MzA2NDcwOTM1MDI4OSI+IlTJmXRiaXHJmSBnw7x2yZlubGkgdmlkZW8gw6fEsXjEscWfxLEgYWxtYXEgdsmZIHllbmlkyZluIHnDtm5syZluZGlybcmZayBpbWthbsSxIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjYwOTU4NTk5MzcwNjkxNDYwODYiPiJhdWRpbyBheWFybGFyxLFuxLF6xLEgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjM1MjI1NjUzNjY4MDYyNDg1MTciPiJUyZl0YmlxyZkgc8mZcyB2yZkgaGFuc8SxIHNwaWtlcmluIMOnxLF4xLHFnyDDvMOnw7xuIGlzdGlmYWTJmSBvbHVuZHXEn3Uga2ltaSBxbG9iYWwgc8mZcyBheWFybGFyxLFuxLEgZMmZeWnFn2Rpcm3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY29yZEF1ZGlvIiBtc2dpZD0iMzg3NjA0OTc3MTQyNzQ2NjMyMyI+InPJmXMgeWF6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjb3JkQXVkaW8iIG1zZ2lkPSI0OTA2ODM5MzAxMDg3OTgwNjgwIj4iVMmZdGJpccmZIG1pa3JvZm9ubGEgYXVkaW8geWF6bWFxIGljYXrJmXNpIHZlcmlyLiDEsGNhesmZIHTJmXRiaXHJmSBzaXppbiB0yZlzZGlxaW5peiBvbG1hZGFuIGlzdMmZbmlsyZluIHphbWFuIHPJmXMgeWF6bWEgaXpuaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYSIgbXNnaWQ9IjM2MTYzOTE5MTk1NTk3NTExOTIiPiLFn8mZa2lsIHbJmSB2aWRlbyDDp8mZa23JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYW1lcmEiIG1zZ2lkPSI4NDk3MjE2NTI0NzM1NTM1MDA5Ij4iVMmZdGJpccmZIGthbWVyYSBpbMmZIMWfyZlraWwgdsmZIHZpZGVvIMOnyZlrbcmZecmZIGlta2FuIHlhcmFkxLFyLiBCdSBpY2F6yZkgdMmZdGJpccmZIHNpemluIHTJmXNkaXFpbml6IG9sbWFkYW4ga2FtZXJhZGFuIGlzdGlmYWTJmSBpY2F6yZlzaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYURpc2FibGVUcmFuc21pdExlZCIgbXNnaWQ9IjI2NTEwNzI2MzA1MDExMjYyMjIiPiJrYW1lcmEgaXN0aWZhZMmZIGVkaWxkaWtkyZkgTEVEIGfDtnN0yZlyaWNpIMO2dMO8csO8bG3JmXNpbmkgZGVha3RpdiBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhRGlzYWJsZVRyYW5zbWl0TGVkIiBtc2dpZD0iNDc2NDU4NTQ2NTQ4MDI5NTM0MSI+IsOWbmPJmWTJmW4gcXVyYcWfZMSxcsSxbG3EscWfIHNpc3RlbSB0yZl0YmlxaW7JmSBrYW1lcmEgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgZWRpbMmZbiBMRUQgaW5kaWthdG9ydW51IHPDtm5kw7xybcmZayBpY2F6yZlzaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyOTYxMjkyMjA1NzY0NDg4MzA0Ij4icGxhbsWfZXRpIGRhaW1pIG9sYXJhcSBhcmFkYW4gcWFsZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJpY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MzM3ODE3MDkzMzI2MzcwNTM3Ij4idGVsZWZvbnUgaMmZbWnFn8mZbGlrIGRlYWt0aXYgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJpY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQzMzQ4MTg4MDgwMDE2OTk1MzAiPiJUyZl0YmlxyZkgcGxhbsWfZXRpIGJpcmTJmWbJmWxpayBkZWFrdGl2IGV0bcmZecmZIGlta2FuIHZlcmlyLiBCdSBkYSDDp294IHTJmWhsw7xryZlsaWRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icmljayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3ODg5MDMyOTc2MjcyODMwOTkiPiJUyZl0YmlxyZkgYsO8dMO8biB0ZWxlZm9udSBiaXJkyZlmyZlsaWsgZGVha3RpdmzJmcWfZGlybcmZecmZIGlta2FuIHZlcmlyLiBCdSDDp294IHTJmWhsw7xryZlsaWRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQzNjYzNDk3MjU2MTc5NTAwMiI+InBsYW7Fn2V0aSB5ZW5pZMmZbiB5w7xrbMmZbm3JmXnJmSBtyZljYnVyIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4OTg1NjA4NzI0NjI2MzgyNDIiPiJ0ZWxlZm9udSB5ZW5pZMmZbiB5w7xrbMmZbm3JmXnJmSBtyZljYnVyIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgxNzIwNTYxODAwNjM3MDA3NDEiPiJUyZl0YmlxyZkgcGxhbsWfZXRpIHllbmlkyZluIHnDvGtsyZltyZl5yZkgbcmZY2J1ciBldG3JmWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MzI2MDA4MTI0Mjg5OTg5OTY5Ij4iVMmZdGJpccmZIHRlbGVmb251IHllbmlkyZluIHnDvGtsyZltyZl5yZkgbcmZY2J1ciBldG3JmWsgw7zDp8O8biBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjkyNzM2MTUzNzk0MjU5MTg0MSI+IlVTQiB5YWRkYcWfIGZheWwgc2lzdGVtaW7JmSBkYXhpbCBvbG1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfdW5tb3VudF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ0MDIzMDUwNDk4OTA5NTM4MTAiPiJTRCBLYXJ0IGZheWwgc2lzdGVtaW7JmSBkYXhpbCBvbG1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIG1zZ2lkPSIxODI5MjkwNzAxNjU4OTkyMzQ3Ij4iVMmZdGJpccmZIHNpbGluyZliaWzJmW4geWFkZGHFn2xhcsSxIHbJmSB5YSBmYXlsIHNpc3RlbWluaSBxdXJhxZ9kxLFybWEgdsmZIGF5xLFybWEgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjIyNzgxOTU4MjYyNDkwNDk3MiI+IlVTQiB5YWRkYcWfxLEgc2lsaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI2MjU4MjY5ODYzOTI3NDA1NiI+IlNEIGthcnTEsSBzaWxpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgbXNnaWQ9Ijg3ODQyNjgyNDY3NzkxOTg2MjciPiJUyZl0YmlxyZkgw6fEsXhhcsSxbGEgYmlsyZluIHlhZGRhxZ/EsSBmb3JtYXQgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX2FjY2VzcyIgbXNnaWQ9IjM0MTEzMzg2MzIwMDIxOTM4NDYiPiJkYXhpbGkgeWFkZGHFn8SxbsSxeiBoYXFxxLFuZGEgbcmZbHVtYXQgyZlsZMmZIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfYWNjZXNzIiBtc2dpZD0iMzA5NDU2Mzg0NDU5Mzg3ODU0OCI+IlTJmXRiaXHJmSBkYXhpbGkgeWFkZGHFnyBoYXFxxLFuZGEgbcmZbHVtYXQgYWxtYcSfYSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfY3JlYXRlIiBtc2dpZD0iNjQxNDc1NzIzNDc4OTMzNjMyNyI+ImRheGlsaSB5YWRkYcWfIHlhcmF0bWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19jcmVhdGUiIG1zZ2lkPSI0NTU4ODY5MjczNTg1ODU2ODc2Ij4iVMmZdGJpccmZIGRheGlsaSB5YWRkYcWfIHlhcmF0bWFxIMO8w6fDvG4gaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX2Rlc3Ryb3kiIG1zZ2lkPSI1MjY5MjgzMjgzMDE2MTgwMjIiPiJkYXhpbGkgeWFkZGHFn8SxIG3JmWh2IGV0bcmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19kZXN0cm95IiBtc2dpZD0iNzIxODc0OTI4NjE0NTUyNjUzNyI+IlTJmXRiaXHJmSBkYXhpbGkgeWFkZGHFn8SxIG3JmWh2IGV0bcmZIGljYXrJmXNpIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19tb3VudF91bm1vdW50IiBtc2dpZD0iODg3Nzk5ODEwMTk0NDk5OTM4NiI+ImRheGlsaSB5YWRkYcWfxLEgbW9udGFqIHbJmSB5YSBkZW1vbnRhaiBldG3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX21vdW50X3VubW91bnQiIG1zZ2lkPSIzNDUxMzYwMTE0OTAyNDkwOTI5Ij4iVMmZdGJpccmZIGRheGlsaSB5YWRkYcWfxLEgcXVyYcWfZMSxcm1hL2F5xLFybWEgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX3JlbmFtZSIgbXNnaWQ9Ijc0OTY2MzM5NTQwODA0NzI0MTciPiJkYXhpbGkgeWFkZGHFn8SxbiBhZMSxbsSxIGTJmXlpxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX3JlbmFtZSIgbXNnaWQ9IjE3OTQ3NTc1ODg0NzIxMjc2NzUiPiJUyZl0YmlxyZkgZGF4aWxpIHlhZGRhxZ/EsW4gYWTEsW7EsSBkyZl5acWfbcmZayBpbWthbsSxIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdmlicmF0ZSIgbXNnaWQ9Ijc2OTY0MjcwMjYwNTc3MDU4MzQiPiJ2aWJyYXNpeWF5YSBuyZl6YXLJmXQgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3ZpYnJhdGUiIG1zZ2lkPSI2Mjg0OTg5MjQ1OTAyMzAwOTQ1Ij4iVMmZdGJpccmZIHZpYnJhdG9ydSBpZGFyyZkgZXRtyZkgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mbGFzaGxpZ2h0IiBtc2dpZD0iMjE1NTkyMDgxMDEyMTk4NDIxNSI+IkZsYXNoIGnFn8SxxJ/EsW7EsSBpZGFyyZkgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZsYXNobGlnaHQiIG1zZ2lkPSI2NTIyMjg0Nzk0NTY4MzY4MzEwIj4iVMmZdGJpccmZIHNpcW5hbCBpxZ/EscSfxLEgbmEgbsmZemFyyZl0IGV0bcmZecmZIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlVXNiIiBtc2dpZD0iMTExMzQ1MzQzMDY0NTQwMjcyMyI+IlVTQiBjaWhhemxhciDDvMOnw7xuIHTJmXJjaWhsyZlyaSB2yZkgaWNhesmZbMmZcmkgaWRhcsmZIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZVVzYiIgbXNnaWQ9Ijc3NzYxNTU0MzAyMTgyMzk4MzMiPiJUyZl0YmlxyZkgVVNCIGNpaGF6bGFyIMO8w6fDvG4gb2xhbiB0yZlyY2lobMmZcmkgdsmZIGljYXrJmWzJmXJpIGlkYXLJmSBldG3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc010cCIgbXNnaWQ9IjQ5NTM0Njg2NzY3OTU5MTcwNDIiPiJNVFAgcHJvdG9rb2wgaMmZeWF0YSBrZcOnaXJtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTXRwIiBtc2dpZD0iNjUzMjk2MTIwMDQ4Njc5MTU3MCI+Iktlcm5lbCBNVFAgZHJheXZlcsmZIGdpcmnFn8mZIGlta2FuIHZlcmlyIGtpLCBNVFAgVVNCIHByb3Rva29sdW51IGjJmXlhdGEga2XDp2lyc2luLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjQxNDgyOTA4NjA0MDA2NTkxNDYiPiJhdmFkYW5sxLHEn8SxIHPEsW5hcSBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjY1OTc5NjQxOTEyMDgwMTY2MDUiPiJUyZl0YmlxyZkgYXZhZGFubMSxxJ/EsSB5b3hsYW1hcSDDvMOnw7xuIG3DvHh0yZlsaWYgcGVyaWZlcml5YWxhcsSxIGtvbnRyb2wgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWxsUGhvbmUiIG1zZ2lkPSIzOTI1ODM2MzQ3NjgxODQ3OTU0Ij4idGVsZWZvbiBuw7ZtcsmZbMmZcmluyZkgYmlyYmHFn2EgesmZbmcgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbGxQaG9uZSIgbXNnaWQ9IjM3NDA3OTc1NzYxMTM3NjA4MjciPiJUyZl0YmlxyZkgU2l6aW4gbcO8ZGF4aWzJmW5peiBvbG1hZGFuIHRlbGVmb24gesmZbmdsyZlyaSBldG3JmXnJmSBpbWthbiB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIFNpemTJmW4geMmZYsmZcnNpeiDFn8mZa2lsZMmZIG3DvHh0yZlsaWYgesmZbmdsyZlyIGVkyZlyyZlrLCBTaXrJmSBtYWRkaSB6aXlhbiB2dXJhIGJpbMmZci4gUWV5ZDogQnUsIHTJmXRiaXFsyZlyyZkgdMmZY2lsaSBuw7ZtcsmZbMmZcsmZIHrJmW5nIGV0bcmZecmZIGljYXrJmSB2ZXJtaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWxsUHJpdmlsZWdlZCIgbXNnaWQ9IjQxOTgzNDkyMTExMDg0OTc4NzkiPiJpc3TJmW5pbMmZbiBuw7ZtcsmZecmZIGJpcmJhxZ9hIHrJmW5nIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYWxsUHJpdmlsZWdlZCIgbXNnaWQ9IjE2ODkwMjQ5MDE1MDk5OTY4MTAiPiJUyZl0YmlxyZkgU2l6aW4gbcO8ZGF4aWzJmW5peiBvbG1hZGFuLCB0yZljaWxpIHrJmW5nbMmZciBkyZkgZGF4aWwgb2xtYXFsYSwgaXN0yZluaWzJmW4gdGVsZWZvbiB6yZluZ2luaSBldG3JmXnJmSBpbWthbiB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGJ1bmRhbiBpc3RpZmFkyZkgZWTJmXLJmWssIHTJmWNpbGkgbsO2bXLJmWzJmXLJmSBxYW51bnN1eiB6yZluZyB2dXJtYXFsYSBTaXppbiDDvMOnw7xuIGjDvHF1cWkgcHJvYmxlbWzJmXIgeWFyYWRhIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0ODQyNTc2OTk0MTQ0NjA0ODIxIj4iQ0RNQSBwbGFuxZ9ldCBheWFybGFyxLFuYSBiaXJiYcWfYSBiYcWfbGFtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTYwNDg0ODA5NTMxNTQyMTQyNSI+IkNETUEgdGVsZWZvbiBxdXJhxZ9kxLFybWFsYXLEsW5hIGJpcmJhxZ9hIGJhxZ9sYW1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBtc2dpZD0iMTk5NDE5MzUzODgwMjMxNDE4NiI+IlTJmXRiaXHJmSBDRE1BIGhhesSxcmzEscSfxLFuxLEgYmHFn2xhdG1hIGljYXrJmXNpIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgZWh0aXlhYyBvbG1hZMSxcWRhIENETUEgaGF6xLFybMSxxJ/EsW7EsSBiYcWfbGFkYSBiaWzJmXJsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbG9jYXRpb25VcGRhdGVzIiBtc2dpZD0iNzc4NTQwODI1MzM2NDMzNTc0MCI+Im3JmWthbiBnw7xuY8mZbGzJmW3JmSBiaWxkaXJpxZ9syZlyaW5pIGlkYXLJmSBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbG9jYXRpb25VcGRhdGVzIiBtc2dpZD0iMTEyMDc0MTU1Nzg5MTQzODg3NiI+IlTJmXRiaXHJmSByYWRpb2RhbiBnyZlsyZluIG3JmWthbiBnw7xuY8mZbGzJmW5tyZlsyZlyaW5pIGFrdGl2IHbJmSB5YSBkZWFrdGl2IGV0bcmZecmZIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgb2x1bm11ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoZWNraW5Qcm9wZXJ0aWVzIiBtc2dpZD0iNzg1NTI1OTQ2MTI2ODczNDkxNCI+InFleWRpeXlhdCB4w7xzdXNpeXnJmXRsyZlyaW5pIMmZbGTJmSBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI0MDI0NTI2OTY4NjMwMTk0MTI4Ij4iVMmZdGJpccmZIGdpcmnFnyBxZXlkaSBzZXJ2aXNpIHTJmXLJmWZpbmTJmW4gecO8a2zJmW5tacWfIG3DvGxraXl5yZl0yZkgZ2lyacWfaSBveHVtYXEveWF6bWFxIGlta2FubCB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIMO8w6fDvG4gbsmZesmZcmTJmSB0dXR1bG1hecSxYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRHYWRnZXQiIG1zZ2lkPSI3NzY5MDUzMzkwMTU4NjM0NzEiPiJ2aWRjZXRsyZlyIHNlw6ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kR2FkZ2V0IiBtc2dpZD0iODI2MTMyNjkzODU5OTA0OTI5MCI+IlTJmXRiaXHJmSBzaXN0ZW3JmSBoYW5zxLEgdmlkY2V0aW4gaGFuc8SxIHTJmXRiaXEgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgZWRpbMmZIGJpbG3JmXNpbmkgZGVtyZl5yZkgaWNhesmZIHZlcmlyLiBCdSBpY2F6yZlsaSB0yZl0YmlxbMmZciDFn8mZeHNpIG3JmWx1bWF0bGFyYSB2yZkgZGlnyZlyIHTJmXRiaXFsyZlyyZkgw6fEsXjEscWfIHZlcsmZIGJpbMmZci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gaXN0aWZhZMmZIMO8w6fDvG4gZGV5aWwuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlQaG9uZVN0YXRlIiBtc2dpZD0iODQyMzkyMzc3NzY1OTI5MjIyOCI+InRlbGVmb24gc3RhdHVzdW51IGTJmXlpxZ9tyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5UGhvbmVTdGF0ZSIgbXNnaWQ9IjEwMjk4Nzc1MjkwMDc2ODY3MzIiPiJUyZl0YmlxyZkgY2loYXrEsW4gdGVsZWZvbiBmdW5rc2l5YWxhcsSxbsSxIGlkYXLJmSBldG3JmWsgaW1rYW7EsSB2ZXJpci4gQmVsyZkgaWNhesmZbGkgdMmZdGJpcSBTaXppIHjJmWLJmXJkYXIgZXRtyZlkyZluIMWfyZliyZlryZlsyZlyaSBxb8WfYSwgdGVsZWZvbiByYWRpb3N1bnUgeWFuZMSxcsSxYi1zw7ZuZMO8csmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRQaG9uZVN0YXRlIiBtc2dpZD0iOTE3ODIyODUyNDUwNzYxMDQ4NiI+InRlbGVmb24gc3RhdHVzdW51IHbJmSBpZGVudGlmaWthc2l5YW7EsSBveHV5dXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkUGhvbmVTdGF0ZSIgbXNnaWQ9IjE2MzkyMTI3NzE4MjYxMjU1MjgiPiJUyZl0YmlxyZkgY2loYXrEsW4gdGVsZWZvbiBmdW5rc2l5YWxhcsSxbmEgZ2lyacWfIGljYXrJmXNpIHZlcmlyLiBCZWzJmSBpY2F6yZlsaSB0yZl0YmlxIGJ1IHRlbGVmb251biBuw7ZtcsmZc2luaSB2yZkgY2loYXogxLBEXCduaSwgesmZbmdpbiBha3RpdiBvbHViLW9sbWFkxLHEn8SxbsSxIHbJmSB6yZluZyBlZGlsyZluIG7Dtm1yyZluaSBtw7zJmXl5yZluIGVkyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd2FrZUxvY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1MzE3MzE0MzUwMTE0OTUwMTUiPiJwbGFuxZ9ldGluIHl1eHUgcmVqaW1pbmluIHFhcsWfxLFzxLFuxLEgYWxtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dha2VMb2NrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTczNDgwMTg3OTQxNDk2MTMwIj4idGVsZWZvbnVuIHl1eHUgcmVqaW1pbsmZIGtlw6dtyZlzaW5pIMmZbmfJmWxsyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193YWtlTG9jayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzMxMTMxOTgyNDQwMDQ0Nzg2OCI+IlTJmXRiaXHJmSBwbGFuxZ9ldGluIHl1eHUgcmVqaW1pbmkgcWFkYcSfYW4gZXRtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd2FrZUxvY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NTU5MTAwNjc3MzcyOTI4NzU0Ij4iVMmZdGJpccmZIHRlbGVmb251biB5dXh1IHJlamltaW5pIHFhZGHEn2FuIGV0bcmZayBpbWthbsSxIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI3ODcwMzQ3MjI2MTYzNTA0MTciPiJwbGFuxZ9ldGkgeWFuZMSxcm1hIHbJmSB5YSBzw7ZuZMO8cm3JmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0OTI4NjIyNDcwOTgwOTQzMjA2Ij4idGVsZWZvbnUgeWFuZMSxcm1hcSB2yZkgeWEgc8O2bmTDvHJtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY2ODk4NjI4Nzg5ODQ2MzE4MzEiPiJUyZl0YmlxyZkgcGxhbsWfZXRpIHlhbmTEsXJtYcSfYSB2yZkgc8O2bmTDvHJtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2MDM3MDU3MzQ4NDYzMTMxMDMyIj4iVMmZdGJpccmZIHRlbGVmb251IHlhbmTEsXLEsWIgc8O2bmTDvHJtyZkgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mYWN0b3J5VGVzdCIgbXNnaWQ9IjM3MTUyMjU0OTI2OTY0MTYxODciPiJ6YXZvZCB0ZXN0IHJlamltaW5kyZkgacWfbMmZeWlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM5NTIwNTkzMTgzNTk2NTMwOTEiPiJQbGFuxZ9ldCBhdmFkYW5sxLHEn8SxbmEgdGFtIGdpcmnFn8mZIGlta2FuIHZlcm3JmWtsyZkgYcWfYcSfxLEgc8mZdml5ecmZbGkgaXN0ZWhzYWzDp8SxIHPEsW5hxJ/EsSBraW1pIGnFn2zJmXlpci4gWWFsbsSxeiBwbGFuxZ9ldCBpc3RlaHNhbMOnxLEgc8SxbmFxIHJlamltaW5kyZkgb2xkdXFkYSBpxZ9syZl5aXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MTM2NjQ0OTkwMzE5MjQ0ODAyIj4iQmlyIGHFn2HEn8SxIHPJmXZpeXnJmWxpIGlzdGVoc2Fsw6fEsSB0ZXN0aSBraW1pIMOnYWzEscWfZMSxcsSxbiwgdGVsZWZvbiBoYXJkd2FyZSDDvMOnw7xuIHRhbSBnaXJpxZ8gaW1rYW7EsSB2ZXJpci4gQW5jYXEgdGVsZWZvbiwgaXN0ZWhzYWzDp8SxIHRlc3QgcmVqaW1pbmTJmSDDp2FsxLHFn2TEscSfxLEgemFtYW4gYWt0aXZkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRXYWxscGFwZXIiIG1zZ2lkPSI2NjI3MTkyMzMzMzczNDY1MTQzIj4iZGl2YXIga2HEn8SxesSxIHllcmzJmcWfZGlyaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRXYWxscGFwZXIiIG1zZ2lkPSI3MzczNDQ3OTIwOTc3NjI0NzQ1Ij4iVMmZdGJpccmZIHNpc3RlbcmZIGRpdmFyIGthxJ/EsXrEsSB5ZXJsyZnFn2Rpcm3JmWsgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRXYWxscGFwZXJIaW50cyIgbXNnaWQ9IjMyNzg2MDgxNjU5Nzc3MzY1MzgiPiJkaXZhciBrYcSfxLF6xLEgw7Zsw6fDvHPDvG7DvCB2ZXJpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFdhbGxwYXBlckhpbnRzIiBtc2dpZD0iODIzNTc4NDM4NDIyMzczMDA5MSI+IlTJmXRiaXHJmSBzaXN0ZW0gZGl2YXIga2HEn8SxesSxIMO2bMOnw7xzw7wgZ8O2c3TJmXJpxZ9syZlyaW5pIG3DvMmZeXnJmW4gZXRtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYXN0ZXJDbGVhciIgbXNnaWQ9IjIzMTU3NTA0MjMxMzk2OTczOTciPiJmYWJyaWsgZGVmb2x0dW5hIHPEsWbEsXJsYW1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hc3RlckNsZWFyIiBtc2dpZD0iMzY2NTM4MDQ5MjYzMzkxMDIyNiI+IlTJmXRiaXHJmSBiw7x0w7xuIG3JmWx1bWF0bGFyxLEsIG5pemFtbGFyxLEgdsmZIHF1cmHFn2TEsXLEsWxtxLHFnyB0yZl0YmlxbMmZcmkgc2lsyZlyyZlrIHNpc3RlbWkgZmFicmlrIG5pemFtbGFyxLFuYSBxYXl0YXJtYXEgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFRpbWUiIG1zZ2lkPSIyMDIxNjE0ODI5NTkxNzc1NjQ2Ij4idmF4dMSxIHTJmXlpbiBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTg5NjM0MTQzODE1MTE1Mjg4MSI+IlTJmXRiaXHJmSBwbGFuxZ9ldGluIHNhYXQgdmF4dMSxbsSxIGTJmXlpxZ9tyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE4NTU3MDI3MzA3MzgwMjAiPiJUyZl0YmlxyZkgdGVsZWZvbnVuIHNhYXQgdmF4dMSxbsSxIGTJmXlpxZ9tyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRUaW1lWm9uZSIgbXNnaWQ9IjI5NDUwNzk4MDEwMTMwNzczNDAiPiJ2YXh0IHpvbmFzxLFuxLEgcXVyYcWfZMSxcsSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNjc2OTgzNzEyMzE1ODI3NjQ1Ij4iVMmZdGJpccmZIHBsYW7Fn2V0aW4gdmF4dCB6b25hc8SxbsSxIGTJmXlpxZ9tyZkgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZVpvbmUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDk5OTQzNDg4NDM2NjMzMzk4Ij4iVMmZdGJpccmZIHRlbGVmb24gc2FhdCB6b2xhxJ/EsW7EsSBkyZl5acWfbcmZayDDvMOnw7xuIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjb3VudE1hbmFnZXJTZXJ2aWNlIiBtc2dpZD0iNDgyOTI2MjM0OTY5MTM4Njk4NiI+IkFjY291bnRNYW5hZ2VyU2VydmljZSBraW1pIGRhdnJhbsSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjE5NDg0NTU1NTIzMzM2MTU5NTQiPiJUyZl0YmlxyZkgQWNjb3VudEF1dGhlbnRpY2F0b3JzXCfJmSB6yZluZyBldG3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldEFjY291bnRzIiBtc2dpZD0iMTA4Njc5NTQ2Nzc2MDEyMjExNCI+ImNpaGF6ZGEgaGVzYWJsYXLEsSB0YXDEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRBY2NvdW50cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjc0MTQ5NjUzNDc2OTY2MDAyNyI+IlTJmXRiaXHJmSBwbGFuxZ9ldCB0yZlyyZlmaW5kyZluIGJpbGluyZluIGhlc2FibGFyxLFuIHNpeWFoxLFzxLFuxLEgYWxtYSBpY2F6yZlzaSB2ZXJpci4gQnUgcXVyYcWfZMSxcmTEscSfxLFuxLF6IHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4geWFyYWTEsWxtxLHFnyBpc3TJmW5pbMmZbiBoZXNhYiBvbGEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ0ODMxNjgyMjQ1MTgwNzM4MiI+IlTJmXRiaXHJmSB0ZWxlZm9uZGEgb2xhbiBoZXNhYmxhcsSxbiBzaXlhaMSxc8SxbsSxIMmZbGTJmSBldG3JmXnJmSBpbWthbiB2ZXJpci4gQnVuYSBxdXJhxZ9kxLFyZMSxxJ/EsW7EsXogaXN0yZluaWzJmW4gdMmZdGJpcSB0yZlyyZlmaW5kyZluIHlhcmFkxLFsYW4gaGVzYWJsYXIgZGEgYWlkZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXV0aGVudGljYXRlQWNjb3VudHMiIG1zZ2lkPSI1MjY1OTA4NDgxMTcyNzM2OTMzIj4iaGVzYWJsYXIgeWFyYWTEsXIgdsmZIHBhcm9sbGFyIHTJmXlpbiBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXV0aGVudGljYXRlQWNjb3VudHMiIG1zZ2lkPSI1NDcyMTI0Mjk2OTA4OTc3MjYwIj4iVMmZdGJpccmZIEFjY291bnRNYW5hZ2VyXCdpbiBoZXNhYiB5YXJhdG1hcSB2yZkgcGFyb2wgYWxtYXEgdsmZIGHDp21hcSBkYXhpbCBvbG1hcWxhIGLJmXJhYsmZciwgaGVzYWIgdMmZc2RpcWzJmXlpY2kgaW1rYW5sYXLEsW7EsSBpc3RpZmFkyZkgZXRtyZl5yZkgaWNhesmZIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI0OTgzMTI2MzA0NzU3MTc3MzA1Ij4iaGVzYWJsYXLEsSDJmWxhdsmZIGVkaXIgdsmZIHlhIHNpbGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI4Njk4Mjk1NjI1NDg4MjkyNTA2Ij4iVMmZdGJpccmZIGhlc2FibGFyxLFuIMmZbGF2yZkgb2x1bm1hc8SxIHbJmSB5YSBzaWxpbm3JmXNpLCBoyZltw6dpbmluIG9ubGFyxLFuIHBhcm9sbGFyxLFuxLFuIHNpbGlubcmZc2kga2ltaSDJmW3JmWxpeXlhdGxhcsSxIGljcmEgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91c2VDcmVkZW50aWFscyIgbXNnaWQ9IjIzNTQ4MTM5NjE2Mzg3NzY0MiI+ImNpaGF6ZGEgaGVzYWJsYXIgaXN0aWZhZMmZIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZUNyZWRlbnRpYWxzIiBtc2dpZD0iNzk4NDIyNzE0NzQwMzM0NjQyMiI+IlTJmXRiaXHJmSBhdXRlbnRpZmlrYXNpeWEgdG9rZW5syZlyaSBzb3LEn3VsYXLEsW7EsSBnw7ZuZMmZcm3JmXnJmSBpY2F6yZkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOZXR3b3JrU3RhdGUiIG1zZ2lkPSI0OTUxMDI3OTY0MzQ4OTc0NzczIj4ixZ/JmWLJmWvJmSBiYcSfbGFudMSxbGFyxLFuYSBiYXhtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOZXR3b3JrU3RhdGUiIG1zZ2lkPSI4MzE4OTY0NDI0Njc1OTYwOTc1Ij4iVMmZdGJpccmZIG3DtnZjdWQgb2xhbiB2yZkgcW/Fn3VsYW4gxZ/JmWLJmWvJmWzJmXIga2ltaSBxb8WfdWxtYWxhciBoYXFxxLFuZGEgbcmZbHVtYXTEsSBnw7ZybcmZecmZIGljYXrJmSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iODAxODc1ODEzNjQwNDMyMzY1OCI+InRhbSDFn8mZYsmZa8mZIGdpcmnFn2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jcmVhdGVOZXR3b3JrU29ja2V0cyIgbXNnaWQ9IjM0MDMwNjIxODc3Nzk3MjQxODUiPiJUyZl0YmlxyZkgxZ/JmWLJmWvJmSBzb2tldGzJmXJpbmkgeWFyYXRtYcSfYSB2yZkgZsmZcmRpIMWfyZliyZlryZkgcHJvdG9rb2xsYXLEsW7EsSBpc3RpZmFkyZkgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIEJyYXV6ZXIgdsmZIGRpZ8mZciB0yZl0YmlxbMmZciBkYXRhbsSxbiBpbnRlcm5ldMmZIMO2dMO8csO8bG3JmXNpbmkgdMmZbWluIGVkyZluIHbJmXNhaXRsyZlyIHZlcmlyLCBvbmEgZ8O2csmZIGTJmSBkYXRhbsSxbiBpbnRlcm5ldMmZIGfDtm5yyZlkaWxtyZlzaSDDvMOnw7xuIGJ1IGljYXrJmSB0yZlsyZliIG9sdW5tdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUFwblNldHRpbmdzIiBtc2dpZD0iNTA1NjYwMTU5Njc1NzUxODk2Ij4ixZ/JmWLJmWvJmSBuaXphbWxhcsSxbsSxIHbJmSB0cmFmaWtpIGTJmXlpxZ9kaXJpci9xYXLFn8Sxc8SxbsSxIGFsxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVBcG5TZXR0aW5ncyIgbXNnaWQ9IjUzMzM3OTg4ODY0MTI3MTQxOTMiPiJUyZl0YmlxyZkgxZ/JmWLJmWvJmSB0cmFmaWtpbmluIHFhcsWfxLFzxLFuxLEgYWxtYXEgw7zDp8O8biDFn8mZYsmZa8mZIG5pemFtbGFyxLFuxLEgZMmZeWnFn23JmSBpY2F6yZlzaSB2ZXJpciwgbcmZc8mZbMmZbiBwcm9rc2luaSB2yZkgeWEgaXN0yZluaWzJmW4gQVBOLWluIHBvcnR1bnUuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciDFn8mZYsmZa8mZIHBha2V0bMmZcmluaSBzaXppbiBiaWxnaW5peiBvbG1hZGFuIG1vbml0b3JpbnEgZWTJmSwgecO2bmzJmW5kaXLJmSB2yZkgeWEgcmVkYWt0yZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VOZXR3b3JrU3RhdGUiIG1zZ2lkPSI5NTg4ODQyOTE0NTQzMjczMDkiPiLFn8mZYsmZa8mZIGJhxJ9sYW50xLFzxLFuxLEgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlTmV0d29ya1N0YXRlIiBtc2dpZD0iNjc4OTEyMzkxMjQ3NjQxNjIxNCI+IlTJmXRiaXHJmSDFn8mZYsmZa8mZIHbJmXppeXnJmXRpbmkgZMmZeWnFn23JmXnJmSBpY2F6yZkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VUZXRoZXJTdGF0ZSIgbXNnaWQ9IjU5NTI1ODQ5NjQzNzMwMTc5NjAiPiJTyZlyaMmZZGxpIGJhxJ9sYW50xLFuxLEgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlVGV0aGVyU3RhdGUiIG1zZ2lkPSIxNTI0NDQxMzQ0NDEyMzE5NzgwIj4iVMmZdGJpccmZIGJpcmzJmcWfaWxtacWfIMWfyZliyZlryZkgYmHEn2xhbnTEsXPEsW7EsW4gc3RhdHVzdW51IGTJmXlpxZ9tyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSIxNDAwNjY2MDEyNjcxNjQ4NzQxIj4iYXJ4YWZvbiBkYXRhIGlzdGlmYWTJmXNpIGF5YXLEsW7EsSBkyZl5acWfaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSI1MzQ3NzI5NTc4NDY4NzQ0Mzc5Ij4iVMmZdGJpccmZIGZvbiByZWppbWkgbml6YW1sYXLEsW7EsSBkyZl5acWfbcmZecmZIGljYXrJmSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1dpZmlTdGF0ZSIgbXNnaWQ9IjUyMDIwMTI5NDkyNDcwNDAwMTEiPiJXaS1GaSBiYcSfbGFudMSxbGFyxLFuYSBiYXhtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MDAyNzk4MDc3Mzg3ODAzNzI2Ij4iVMmZdGJpccmZIFdpLUZpIMWfyZliyZlryZlsyZlyaSBoYXFxxLFuZGEgbcmZbHVtYXTEsSBnw7ZybcmZecmZIGljYXrJmSB2ZXJpciwgbcmZc8mZbMmZbiwgV2ktRmkgbcO2dmN1ZGx1xJ91IHbJmSBxb8WfdWxtdcWfIFdpLUZpIGNpaGF6bGFyxLFuxLFuIGFkbGFyxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI2NTUwNjQxMTg4NzQ5MTI4MDM1Ij4iV2ktRmkgxZ/JmWLJmWvJmXNpbsmZIHFvxZ91bG1hcSB2yZkgeWEgYXlyxLFsbWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaVN0YXRlIiBtc2dpZD0iNzEzNzk1MDI5NzM4NjEyNzUzMyI+IlTJmXRiaXHJmSBXaS1GaSDDp8SxeMSxxZ8gbsO2cXTJmXNpbsmZIHFvxZ91bG1hcSB2yZkgb25kYW4gYXlyxLFsbWFxIHbJmSBjaWhhesSxbiBXaS1GaSDFn8mZYsmZa8mZIG5pemFtbGFyxLFuxLEgZMmZeWnFn23JmXnJmSBpY2F6yZkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIG1zZ2lkPSIxMzY4MjUzODcxNDgzMjU0Nzg0Ij4iV2ktRmkgTXVsdGljYXN0IHHJmWJ1bHVuYSBpY2F6yZkgdmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3OTY5Nzc0MDIxMjU2MzM2NTQ4Ij4iVMmZdGJpccmZIFdpLUZpIMWfyZliyZlryZlkyZkgc2l6aW4gcGxhbsWfZXRkyZluIGJhxZ9xYSBkaWfJmXIgbXVsdGlrYXN0IGFkcmVzbMmZcsmZIHnDtm5syZluZGlyaWxtacWfIHBha2V0bMmZcmkgYWxtYXEgaWNhesmZc2kgdmVyaXIuIEJ1IHFleXJpLcOnb3hhZHJlc2xpIHJlamltZMmZbiBmyZlxbGkgb2xhcmFxIGRhaGEgw6dveCBlbmVyamkgacWfbMmZZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTE5NDk3MDYwMjUzNDk5MjYiPiJUyZl0YmlxyZkgcXJ1cCDDvG52YW5sYXIgaXN0aWZhZMmZIGV0bcmZa2zJmSwgV2ktRmkgxZ/JmWLJmWvJmXNpbmTJmSBvbGFuIGLDvHTDvG4gY2loYXpsYXJhIGfDtm5kyZlyaWxtacWfIHBha2V0bMmZcmkgccmZYnVsIGV0bcmZecmZIGlta2FuIHZlcmlyLiBCdW5hIGRhaGEgw6dveCBlbmVyamkgc8mZcmYgb2x1bnVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmx1ZXRvb3RoQWRtaW4iIG1zZ2lkPSI2MDA2OTY3MzczOTM1OTI2NjU5Ij4iQmx1ZXRvb3RoIGF5YXJsYXLEsW7EsSDJmWxkyZkgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aEFkbWluIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2OTIxMTc3NDcxNzQ4ODgyMTM3Ij4iVMmZdGJpccmZIHllcmxpIEJsdWV0b290aCBwbGFuxZ9ldGluaW4ga29uZmlxdXJhc2l5YXPEsW7EsSBnw7ZybcmZecmZIHbJmSBtyZlzYWbJmWTJmW4gY2loYXpsYXLEsSB0YXBtYcSfYSB2yZkgY8O8dGzJmW3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhBZG1pbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MzE2ODIxNTkzMzE1NDIxMzciPiJUyZl0YmlxyZkgbG9rYWwgQmx1ZXRvb3RoIHRlbGVmb251bnUga29uZmlxdXLJmSBldG3JmXnJmSB2yZkgdXphcSBjaWhhemxhcsSxIGvJmcWfZiBldG3JmWsgdsmZIG9ubGFyYSBxb8WfdWxtYXEgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NXaW1heFN0YXRlIiBtc2dpZD0iNDE5NTkwNzAxMDYxMDIwNTcwMyI+IldpTUFYXCdhIHFvxZ91bCB2yZkgYmHEn2xhbnTEsW7EsSBryZlzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzV2ltYXhTdGF0ZSIgbXNnaWQ9IjYzNjAxMDI4NzcyNjE5Nzg4ODciPiJUyZl0YmlxyZkgV2lNQVggbcO2dmN1ZGx1xJ91IHbJmSBxb8WfdWxtdcWfIFdpTUFYIMWfyZliyZlryZlsyZlyaW5pIHTJmXlpbiBldG3JmXnJmSBpY2F6yZkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaW1heFN0YXRlIiBtc2dpZD0iMjQwNTA0MjI2NzEzMTQ5NjU3OSI+IldpTUFYIHbJmXppeXnJmXRpbmkgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2ltYXhTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzE1NjQ1NjUwNDA4NDIwMTgwNSI+IlTJmXRiaXHJmSBwbGFuxZ9ldGkgV2lNQVggxZ/JmWLJmWvJmWzJmXJpbsmZIHFvxZ9tYXEgdsmZIG9ubGFyZGFuIGF5xLFybWFxIGljYXrJmXNpIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2OTcwMjUwNDMwMDQ5MjM3OTgiPiJUyZl0YmlxyZkgdGVsZWZvbnUgV2lNQVggxZ/JmWLJmWvJmXNpbsmZIHFvxZ9tYcSfYSB2yZkgeWEgV2lNQVggxZ/JmWLJmWvJmXNpbmTJmW4gYXnEsXJtYcSfYSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JsdWV0b290aCIgbXNnaWQ9IjYxMjc3NjkzMzYzMzkyNzY4MjgiPiJCbHVldG9vdGggY2loYXpsYXLEsSBpbMmZIGPDvHRsyZluZGlybcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQ4MDcyMjE4MTg1MjQzODYyOCI+IlTJmXRiaXHJmSB5ZXJsaSBCbHVldG9vdGggcGxhbsWfZXRpbmluIGtvbmZpcXVyYXNpeWFzxLFuxLEgZ8O2cm3JmXnJmSB2yZkgY8O8dGzJmW5tacWfIGNpaGF6bGFybGEgYmHEn2xhbnTEsWxhciBldG3JmXnJmSB2yZkgccmZYnVsIGV0bcmZecmZIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMyMDcxMDYzMjQ0NTIzMTI3MzkiPiJUyZl0YmlxyZkgQmx1ZXRvb3RoIHbJmSB5YSB0ZWxlZm9uIGtvbmZpcXVyYXNpeWFsYXLEsW7EsSBnw7ZybcmZecmZIHbJmSBxb8WfdWxtdcWfIGNpaGF6bGFybGEgyZlsYXHJmSBxdXJtYcSfYSB2yZkgccmZYnVsIGV0bcmZecmZIGljYXrJmSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX25mYyIgbXNnaWQ9IjQ0MjMzNTEyNzQ3NTc4NzY5NTMiPiJOZWFyIEZpZWxkIENvbW11bmljYXRpb25cJ8SxIGtvbnRyb2wgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19uZmMiIG1zZ2lkPSI3MTIwNjExODE5NDAxNzg5OTA3Ij4iVMmZdGJpccmZIFlheMSxbiBNyZlzYWbJmSBLb21tdW5pa2FzaXlhc8SxIChORkMpIHRlcWzJmXJpLCBrYXJ0bGFyxLEgdsmZIG94dXl1Y3VsYXLEsSBpbMmZIMmZbGFxyZkgcXVybWHEn2EgaWNhesmZIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGlzYWJsZUtleWd1YXJkIiBtc2dpZD0iMzU5ODQ5NjMwMTQ4NjQzOTI1OCI+IkVrcmFuIGtpbGlkaW5pIGRlYWt0aXYgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Rpc2FibGVLZXlndWFyZCIgbXNnaWQ9IjYwMzQyMDMwNjUwNzcxMjI5OTIiPiJUyZl0YmlxyZkga2lsaWQgYcOnYXLEsW7EsSB2yZkgdMmZaGzDvGvJmXNpemxpayBwYXJvbHVudSBkZWFrdGl2IGV0bcmZecmZIGlta2FuIHZlcmlyLiBRYW51bmkgbWlzYWwgYnVkdXIga2ksIHRlbGVmb24gesmZbmcgccmZYnVsIGVkyZluIHphbWFuIGtpbGlkaSBhw6fEsXIgdsmZIHrJmW5nIHF1cnRhcmFuZGFuIHNvbnJhIGtpbGlkaSBiYcSfbGF5xLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFN5bmNTZXR0aW5ncyIgbXNnaWQ9IjYyMDE4MTAwMDgyMzA1MDMwNTIiPiJzaW54IGF5YXJsYXLEsW7EsSBveHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1NldHRpbmdzIiBtc2dpZD0iMjcwNjc0NTY3NDU2OTY3ODY0NCI+IlTJmXRiaXHJmSBoZXNhYmxhciDDvMOnw7xuIHNpbnhyb25pemFzaXlhIG5pemFtbGFyxLFuxLEgb3h1bWEgaWNhesmZc2kgdmVyaXIuIE3JmXPJmWzJmW4sIGJ1IMWeyZl4c2zJmXIgdMmZdGJpcWluaW4gc2lueHJvbml6yZkgb2x1bnViLW9sdW5tYWTEscSfxLFuxLEgdMmZeWluIGVkyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTeW5jU2V0dGluZ3MiIG1zZ2lkPSI1NDA4Njk0ODc1NzkzOTQ1MzE0Ij4ic2lueHJvbml6YXNpeWF5YSBkYXZhbSBlZGlyIHbJmSBvbnUgc8O2bmTDvHLDvHIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9Ijg5NTYyNjI1OTEzMDYzNjk4NjgiPiJUyZl0YmlxyZkgaGVzYWIgw7zDp8O8biBzaW54cm9uaXphc2l5YSBuaXphbWxhcsSxbsSxIGTJmXlpxZ9tyZl5yZkgaWNhesmZIHZlcmlyLiBNyZlzyZlsyZluLCBidSBpc3RpZmFkyZnDp2kgaGVzYWJsxLEgxZ7JmXhzbMmZciB0yZl0YmlxaW5pbiBzaW54cm9uaXphc2l5YXPEsW7EsSBiYcWfbGFtYXEgw7zDp8O8biBpc3RpZmFkyZkgZWRpbMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTeW5jU3RhdHMiIG1zZ2lkPSI3Mzk2NTc3NDUxMzYwMjAyNDQ4Ij4ic2lueHJvbml6YXNpeWEgc3RhdGlzdGlrYXPEsW7EsSBveHVtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1N0YXRzIiBtc2dpZD0iMTUxMDE0Mzc2MTc1NzYwNjE1NiI+IlTJmXRiaXHJmSBzeW5jIHTJmWRiaXJsyZlyaW5pbiB0YXJpeMOnyZlzaSB2yZkgbsmZIHHJmWTJmXIgZGF0YW7EsW4gc2lueCBvbGR1xJ91IGRhIGRheGlsIG9sbWFxbGEgYsmZcmFiyZlyLCBoyZlyIGhhbnPEsSBiaXIgaGVzYWIgw7zDp8O8biBvbGFuIHNpbnggc3RhdGxhcsSxbsSxIG94dW1hxJ9hIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3Vic2NyaWJlZEZlZWRzUmVhZCIgbXNnaWQ9IjQ3NTY2MDk2MzcwNTMzNTMzMTgiPiJhYnVuyZkgb2x1bm11xZ8geMmZYsmZcmzJmXJpIG94dXl1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N1YnNjcmliZWRGZWVkc1JlYWQiIG1zZ2lkPSI1NTU3MDU4OTA3OTA2MTQ0NTA1Ij4iVMmZdGJpccmZIGhhesSxcmRhIHNpbnhyb24gbGVudGzJmXIgaGFxccSxbmRhIMmZdHJhZmzEsSBtyZlsdW1hdCBhbG1hcSDDvMOnw7xuIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3Vic2NyaWJlZEZlZWRzV3JpdGUiIG1zZ2lkPSI5MDE1MjQ2MzI1NDA4MjA5Mjk2Ij4iYWJ1bsmZIG9sdW5tdcWfIHjJmWLJmXJsyZlyaSB5YXrEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdWJzY3JpYmVkRmVlZHNXcml0ZSIgbXNnaWQ9IjY5Mjg5MzAxODg4MjYwODk0MTMiPiJUyZl0YmlxyZkgY2FyaSBzaW54cm9ubGHFn23EscWfIGxlbnRsyZlyaW5pesmZIGTJmXlpxZ9pa2xpayBldG3JmWsgaW1rYW7EsSB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIHNpeHJvbmxhxZ9txLHFnyBsZW50bMmZcmluaXppIGTJmXlpxZ/JmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjQxMDcxMDE1MjU3NDYwMzU3MTgiPiJsw7zEn8mZdMmZIMmZbGF2yZkgZXRkaXlpbml6IMWfyZlydGzJmXJpIG94dW1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWREaWN0aW9uYXJ5IiBtc2dpZD0iNjU5NjE0NjAwMzM4OTA0MjQzIj4iVMmZdGJpccmZIGlzdGlmYWTJmcOnaW5pbiBsw7zEn8mZdGTJmSBzYXhsYWTEscSfxLEgYsO8dMO8biBzw7Z6bMmZcmksIGFkbGFyxLEgdsmZIGZyYXphbGFyxLEgb3h1bWFxIGljYXrJmXNpIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iMjE4MzExMDQwMjMxNDQ0MTEwNiI+ImlzdGlmYWTJmcOnaSBsw7zEn8mZdGluyZkgc8O2emzJmXIgyZlsYXbJmSBldG3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSI4MTg1Mzg1NzE2MjU1MDY1MjkxIj4iVMmZdGJpccmZIGlzdGlmYWTJmcOnaSBsw7zEn8mZdGluyZkgeWVuaSBzw7Z6bMmZciB5YXptYcSfYSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFJlYWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iODIzNTM0MTUxNTYwNTU1OTY3NyI+InFvcnVubXXFnyB5YWRkYcWfYSBkYXhpbCBvbG1hxJ9hIGPJmWhkIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgyMzUzNDE1MTU2MDU1NTk2NzciPiJxb3J1bm11xZ8geWFkZGHFn2EgZGF4aWwgb2xtYcSfYSBjyZloZCBldG3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM2NDI0NzMyOTIzNDgxMzIwNzIiPiJUyZl0YmlxyZkgZ8mZbMmZY8mZayBjaWhhemxhcmRhIMmZbMOnYXTEsW1sxLEgb2xhY2FxIFVTQiB5YWRkYcWfIMO8w6fDvG4gaWNhesmZIHRlc3RpIGV0bcmZecmZIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1OTE0NDAyNjg0Njg1ODQ4ODI4Ij4iVMmZdGJpccmZIGfJmWzJmWPJmWsgY2loYXpsYXJkYSBtw7Z2Y3VkIG9sYWNhcSBTRCBrYXJ0IMO8w6fDvG4gaWNhesmZbmkgdGVzdCBldG3JmWsgw7zDp8O8biBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijg0ODU5NzkwNjIyNTQ2NjY3NDgiPiJVU0IgeWFkZGHFn8SxbsSxesSxbiBtyZl6bXVudW51IGTJmXlpxZ9tyZlrIHbJmSB5YSBzaWxtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg4MDU2OTM2MzAwNTA0NTg3NjMiPiJTRCBrYXJ0IGtvbnRlbnRsyZlyaW5pIGTJmXlpxZ9pciB2yZkgeWEgc2lsaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRXcml0ZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MTc1NDA2Mjk5NDQ1NzEwODg4Ij4iVMmZdGJpccmZIFVTQiB5YWRkYcWfYSB5YXptYcSfYSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQzMzc0MTc3OTA5MzY2MzIwOTAiPiJUyZl0YmlxyZkgU0Qga2FydGEgeWF6bWEgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTk4MzkxOTk3MDY4NzkwMTUiPiJkYXhpbGkgbWVkaWEgeWFkZGHFn8SxIGtvbnRlbnRpbmkgZMmZeWnFn2lyL3NpbGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWVkaWFTdG9yYWdlV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MTg5MTYwNTk3Njk4NTI5MTg1Ij4iVMmZdGJpccmZIGRheGlsaSBtZWRpYSB5YWRkYcWfZGFrxLEga29udGVudGkgcmVkYWt0yZkgZXRtyZlrIGljYXrJmXNpIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlRG9jcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3NzgzMTg1OTg0NDg4NDk4MjkiPiJzyZluyZlkIHlhZGRhxZ/EsW7EsSBuaXphbWxhecSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZURvY3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NzA0MzIzMTc2OTE0MTIxNDg0Ij4iVMmZdGJpccmZIHPJmW7JmWQgeWFkZGHFn8SxbsSxIGlkYXLJmSBldG3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZEFjY2Vzc0FsbCIgbXNnaWQ9IjgxNTA2MTM4MjM5MDA0NjA1NzYiPiJiw7x0w7xuIGlzdGlmYWTJmcOnaWzJmXJpbiB4YXJpY2kgeWFkZGHFn8SxbmEgZGF4aWwgb2wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRBY2Nlc3NBbGwiIG1zZ2lkPSIzMjE1MjA4MzU3NDE1ODkxMzIwIj4iVMmZdGJpccmZIGLDvHTDvG4gaXN0aWZhZMmZw6dpbMmZciDDvMOnw7xuIG9sYW4geGFyaWNpIHlhZGRhxZ9hIGdpcmnFnyBpbWthbsSxIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU2NTY0ODcyNjQ4MTk2Njk4MjQiPiJrZcWfIGZheWwgc2lzdGVtaW7JmSBnaXJtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU1Nzg5Njc2NDIyNjU1NTA5NTUiPiJUyZl0YmlxyZkga2XFnyBmYXlsIHNpc3RlbWluaSBveHVtYcSfYSB2yZkgeWF6bWHEn2EgaWNhesmZIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXNlX3NpcCIgbXNnaWQ9IjU5ODY5NTIzNjI3OTU4NzA1MDIiPiLEsG50ZXJuZXQgesmZbmdsyZlyaSBldG3JmWsgdsmZIHlhIHHJmWJ1bCBldG3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191c2Vfc2lwIiBtc2dpZD0iNDcxNzYzMjAwMDA2MjY3NDI5NCI+IlTJmXRiaXHJmSBpbnRlcm5ldCB6yZluZ2zJmXJpbmluIGfDtm5kyZlyaWxtyZlzaSB2yZkgccmZYnVsIGVkaWxtyZlzaSDDvMOnw7xuIFNJUCBzZXJ2aXNpbmTJmW4gaXN0aWZhZMmZIGljYXrJmXNpIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZE5ldHdvcmtVc2FnZUhpc3RvcnkiIG1zZ2lkPSI3ODYyNTkzMjgzNjExNDkzMjMyIj4idGFyaXhpIMWfyZliyZlryZkgaXN0aWZhZMmZc2luaSBveHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTmV0d29ya1VzYWdlSGlzdG9yeSIgbXNnaWQ9Ijc2ODkwNjA3NDk4MTkxMjY0NzIiPiJUyZl0YmlxyZkgeMO8c3VzaSDFn8mZYsmZa8mZbMmZciB2yZkgdMmZdGJpcWzJmXIgw7zDp8O8biB0YXJpeGkgxZ/JmWLJmWvJmSBpc3RpZmFkyZlzaW5pIG94dW1hxJ9hIGljYXrJmSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZU5ldHdvcmtQb2xpY3kiIG1zZ2lkPSIyNTYyMDUzNTkyMzM5ODU5OTkwIj4ixZ/JmWLJmWvJmSBzaXlhc8mZdGluaSBpZGFyyZkgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlTmV0d29ya1BvbGljeSIgbXNnaWQ9Ijc1Mzc1ODY3NzE1NTkzNzA2NjgiPiJUyZl0YmlxyZkgxZ/JmWLJmWvJmSBxYW51bmxhcsSxbsSxIHbJmSB0yZl0YmlxaW4geMO8c3VzaSBxYXlkYWxhcsSxbsSxIGlkYXLJmSBldG3JmWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeU5ldHdvcmtBY2NvdW50aW5nIiBtc2dpZD0iNTA4ODIxNzMwOTA4ODcyOTY1MCI+IsWfyZliyZlryZkgaXN0aWZhZMmZIGhlc2FixLFuxLEgZMmZeWnFn23JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb2RpZnlOZXR3b3JrQWNjb3VudGluZyIgbXNnaWQ9IjU0NDM0MTI4NjY3NDYxOTgxMjMiPiJUyZl0YmlxyZkgxZ/JmWLJmWvJmSBpc3RpZmFkyZlzaW5pbiB0yZl0YmlxbMmZcsmZIHFhcsWfxLEgbml6YW1sYXLEsW7EsSByZWRha3TJmSBldG3JmXnJmSBpY2F6yZkgdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIGlzdGlmYWTJmSBlZGlsbWlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSIzNjU4NTI3MjE0OTE0OTU5NzQ5Ij4ic29rZXQgacWfYXLJmWzJmXJpbmkgZMmZeWnFn2luIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSI3NjU1NTY4NDMzNjk2MzU2NTc4Ij4iVMmZdGJpccmZIGFyYcWfZMSxcm1hIMO8w6fDvG4gc29rZXQgacWfYXLJmWzJmXJpbmkgZMmZeWnFn23JmWsgaW1rYW7EsSB2ZXJpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTm90aWZpY2F0aW9ucyIgbXNnaWQ9Ijc2NzM0MTY0ODc4NzM0MzIyNjgiPiJiaWxkaXJpxZ9syZlyyZkgZGF4aWwgb2wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNDU4NDU3NzQyNjgzNDMxMzg3Ij4iVMmZdGJpccmZIGJpbGRpcmnFn2zJmXJpIMmZbGTJmSBldG3JmXnJmSwgc8SxbmFtYcSfYSB2yZkgdMmZbWl6bMmZbcmZecmZIGlta2FuIHZlcmlyLCBidW5hIGRpZ8mZciB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIHZlcmlsbWnFnyBiaWxkaXJpxZ9syZlyIGTJmSBkYXhpbGRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROb3RpZmljYXRpb25MaXN0ZW5lclNlcnZpY2UiIG1zZ2lkPSI3MDU3NzY0NzQyMjExNjU2NjU0Ij4iYmlsZGlyacWfIGRpbmzJmW3JmSB4aWRtyZl0aW7JmSBiYcSfbGFuxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5vdGlmaWNhdGlvbkxpc3RlbmVyU2VydmljZSIgbXNnaWQ9Ijk4NTY5NzkxODU3NjkwMjk4NiI+IlNhaGliaW7JmSB5w7xrc8mZayBzyZl2aXl5yZlsaSBiaWxkaXJpxZ8gZGlubMmZbcmZIHNlcnZpc2kgaWzJmSDJmWxhccmZIHNheGxhbWHEn2EgaWNhesmZIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBoZcOnIHZheHQgaXN0yZluaWxtyZltyZlsaWRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludm9rZUNhcnJpZXJTZXR1cCIgbXNnaWQ9IjM2OTk2MDA4MzM5NzUxMTc0NzgiPiJvcGVyYXRvciB4aWRtyZl0bGkga29uZml1cmFzaXlhIHTJmXRiaXFpbsmZIG3DvHJhY2nJmXQgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludm9rZUNhcnJpZXJTZXR1cCIgbXNnaWQ9IjQxNTk1NDkxNTI1MjkxMTE5MjAiPiJTYWhpYmluyZkgb3BlcmF0b3IgeGlkbcmZdGxpIHTJmXRiaXEga29uZmlxdXJhc2l5YXPEsW5hICBtw7xyYWNpyZl0IGlta2FuxLEgdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciDDvMOnw7xuIHTJmWzJmWIgb2x1bm1hbWFsxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI4MjA2MDc3NDQ3ODM4OTA5NTE2Ij4ixZ/JmWLJmWvJmSDFn8mZcmFpdGkgaGFxccSxbmRhIG3DvMWfYWhpZMmZbMmZciDDvMOnw7xuIHF1bGFxIGFzbWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI2ODk5MTAyMDc1ODI1MjcyMjExIj4iVMmZdGJpccmZIMWfyZliyZlryZkgxZ/JmXJhaXRpIMO8enLJmSBtw7zFn2FoaWTJmWzJmXIgw7zDp8O8biBxdWxhcSBhc21hcSBpbWthbsSxIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgw7zDp8O8biBoZcOnIHZheHQgbGF6xLFtIG9sbWFtYWzEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ob3R3b3JkUmVjb2duaXRpb24iIG1zZ2lkPSIzMjI1MDgwNDA4NzQ2MzYxMzEzIj4iaXN0aSBzw7Z6IHRhbsSxbm1hc8SxIHTJmWzJmWIgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ob3R3b3JkUmVjb2duaXRpb24iIG1zZ2lkPSIzNzE2NzQxMjYwMTk1MzY0MjUyIj4iVMmZdGJpccmZIGlzdGkgc8O2eiB0YW7EsW5tYXPEsSB0yZlsyZliIGV0bcmZecmZIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcSDDvMOnw7xuIGxhesSxbSBvbGEgYmlsbcmZei4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfbGltaXRQYXNzd29yZCIgbXNnaWQ9IjQ0OTc0MjA3Mjg4NTc1ODU3OTEiPiJQYXJvbCBxYXlkYWxhcsSxbsSxIHTJmXlpbiBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19saW1pdFBhc3N3b3JkIiBtc2dpZD0iMzI1MjExNDIwMzkxOTUxMDM5NCI+IkVrcmFuIGtpbGlkaW5pIGHDp2FuIMWfaWZyyZlsyZlyaW4gdXp1bmx1xJ91bnUgdsmZIG9ubGFyZGFrxLEgaWNhesmZIHZlcmlsyZluIGnFn2FyyZlsyZlyyZkgbsmZemFyyZl0IGVkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dhdGNoTG9naW4iIG1zZ2lkPSI5MTQxMzA2NDY5NDIxOTk1MDMiPiJFa3JhbiBraWxpZGkgY8mZaGRsyZlyaW5pIG1vbml0b3JpbnEgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dhdGNoTG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMyMTU3MjkyOTQyMTUwNzAwNzIiPiJFa2FuIGtpbGlkaW5pIGHDp2Fya8mZbiBkYXhpbCBlZGlsbWnFnyB5YW5sxLHFnyBwYXJvbGxhcmEgYmF4xLFuIHbJmSDJmWfJmXIgaMmZZGRpbmTJmW4gw6dveCB5YW5sxLHFnyBwYXJvbGxhciBkYXhpbCBlZGlsaWJzyZksIHBsYW7Fn2V0aSBraWxpZGzJmXlpbiB2yZkgeWEgYsO8dMO8biBwbGFuxZ9ldCBkYXRhc8SxbsSxIHNpbGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2F0Y2hMb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MTIzMjMwOTE4NDY3NjEwNzMiPiJFa2FuIGtpbGlkaW5pIGHDp2Fya8mZbiBkYXhpbCBlZGlsbWnFnyB5YW5sxLHFnyBwYXJvbGxhcmEgYmF4xLFuIHbJmSDJmWfJmXIgaMmZZGRpbmTJmW4gw6dveCB5YW5sxLHFnyBwYXJvbGxhciBkYXhpbCBlZGlsaWJzyZksIHRlbGVmb251IGtpbGlkbMmZeWluIHbJmSB5YSBiw7x0w7xuIHRlbGVmb24gZGF0YXPEsW7EsSBzaWxpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfcmVzZXRQYXNzd29yZCIgbXNnaWQ9IjI2MjAwNzcxOTEyNDI2ODg5NTUiPiJFa3JhbiBraWxpZCBwYXJvbHVudSBkyZl5acWfaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3Jlc2V0UGFzc3dvcmQiIG1zZ2lkPSI2MDU5NjM5NjIzMDE5MDQ0NTgiPiJFa3JhbiBraWxpZGluaSBhw6dhbiDFn2lmcsmZbmkgZMmZeWnFn2RpcmluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9mb3JjZUxvY2siIG1zZ2lkPSIyMjc0MDg1Mzg0NzA0MjQ4NDMxIj4iRWtyYW7EsSBraWxpZGzJmXlpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZm9yY2VMb2NrIiBtc2dpZD0iMTE0MTc5NzU4ODQwMzgyNzEzOCI+IkVrcmFuxLFuIG7JmSB2YXh0IHbJmSBuZWPJmSBraWxpZGzJmW5tyZlzaW7JmSBuyZl6YXLJmXQgZWRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfd2lwZURhdGEiIG1zZ2lkPSIzOTEwNTQ1NDQ2NzU4NjM5NzEzIj4iQsO8dMO8biBtyZlsdW1hdGxhcsSxIHNpbGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193aXBlRGF0YSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDMwNjE4NDA5NjA2Nzc1Njg3NiI+IlBsYW7Fn2V0aW4gZGF0YXPEsW7EsSB4yZliyZlyZGFybMSxcSBvbG1hZGFuLCB6YXZvZCBkYXRhIHPEsWbEsXJsYW1hc8SxIGlsyZkgc2lsaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193aXBlRGF0YSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUwOTY4OTU2MDQ1NzQxODgzOTEiPiJUZWxlZm9udW4gZGF0YXPEsW7EsSB4yZliyZlyZGFybMSxcSBvbG1hZGFuLCB6YXZvZCBkYXRhIHPEsWbEsXJsYW1hc8SxIGlsyZkgc2lsaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfc2V0R2xvYmFsUHJveHkiIG1zZ2lkPSIyNzg0ODI4MjkzNzQ3NzkxNDQ2Ij4iQ2loYXrEsW4gcWxvYmFsIHByb2tzaXNpbmkgYXlhcmxhecSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfc2V0R2xvYmFsUHJveHkiIG1zZ2lkPSI2Mzg3NDk3NDY2NjYwMTU0OTMxIj4iU2l5YXPJmXQgYWt0aXYgb2xhcmvJmW4gY2loYXrEsW4gcWxvYmFsIHByb2tzaXNpbmkgaXN0aWZhZMmZIMO8w6fDvG4gcXVydW4uIFlhbG7EsXogaWxrIGNpaGF6IGFkbWluaSBlZmZla3RpdiBxbG9iYWwgcHJva3NpbmkgdMmZeWluIGVkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2V4cGlyZVBhc3N3b3JkIiBtc2dpZD0iODg1Mjc5MTUxODQ3MjU0MDU2Ij4iRWtyYW4ga2lsaWRpIMWfaWZyyZlzaW7JmSBzb24gemFtYW4gc2XDpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZXhwaXJlUGFzc3dvcmQiIG1zZ2lkPSIxNzI5NzI1MjI2MzE0NjkxNTkxIj4iRWtyYW4ga2lsaWRpIHBhcm9sdW51biBuyZkgccmZZMmZciB0ZXotdGV6IGTJmXlpxZ9tyZlzaW5pIGtvbnRyb2wgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9Ijg5MDEzMjYxOTk5MDkxMzI5MTUiPiJZYWRkYcWfIMWfaWZyyZlsyZlubcmZc2luaSBheWFybGF5xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19lbmNyeXB0ZWRTdG9yYWdlIiBtc2dpZD0iMjYzNzczMjExNTMyNTMxNjk5MiI+IlTJmXRiaXEgbcmZbHVtYXRsYXLEsW7EsW4gxZ9pZnLJmWzJmW5tyZlzaW5pIHTJmWzJmWIgZWRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZGlzYWJsZUNhbWVyYSIgbXNnaWQ9IjYzOTUzMDEwMjMxNTIyOTc4MjYiPiJLYW1lcmFsYXLEsSBkZWthdGl2IGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2Rpc2FibGVDYW1lcmEiIG1zZ2lkPSIyMzA2MzQ5MDQyODM0NzU0NTk3Ij4iQsO8dMO8biBjaWhheiBrYW1lcmFsYXLEsW7EsW4gaXN0aWZhZMmZc2luaSDJmW5nyZlsbMmZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9kaXNhYmxlS2V5Z3VhcmRGZWF0dXJlcyIgbXNnaWQ9IjI2NjMyOTEwNDU0MjYzODgwMiI+IktsYXZpYXR1cmEga2lsaWRpbmTJmSBmdW5rc2l5YWxhcsSxIGRlYWt0aXYgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIzNDY3MDgyMjcyMTg2NTM0NjE0Ij4iS2xhdmlhdHVyYSBraWxpZGluZMmZIGLJmXppIGZ1bmtzaXlhbGFyxLFuIHFhcsWfxLFzxLFuxLEgYWzEsW4uIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBob25lVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI4OTAxMDk4MzM2NjU4NzEwMzU5Ij4ixo9zYXMgc8mZaGlmyZkiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI4Njk5MjM2NTA1MjcxMzY2MTUiPiJNb2JpbCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9Ijc4OTc1NDQ2NTQyNDI4NzQ1NDMiPiLEsMWfIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTEwMzYwMTQzMzM4MjE1ODE1NSI+IsSwxZ8gRmFrc8SxIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTczNTE3NzE0NDk0ODMyOTM3MCI+IkV2IEZha3PEsSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjYwMzg3ODY3NDQ3NzIwNzM5NCI+IlBleWNlciI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjE2NTA4MjQyNzUxNzc5MzE2MzciPiJEaWfJmXIiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI5MTkyNTE0ODA2OTc1ODk4OTYxIj4ixZ7JmXhzaSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImVtYWlsQWRkcmVzc1R5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iODA3Mzk5NDM1Mjk1NjEyOTEyNyI+IkFuYSBzyZloaWbJmSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjcwODQyMzczNTY2MDI2MjU2MDQiPiLEsMWfIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTExMjA0NDQxMDY1OTAxMTAyMyI+IkRpZ8mZciI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjIzNzQ5MTM5NTI4NzAxMTA2MTgiPiJGyZlyZGkiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwb3N0YWxBZGRyZXNzVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI2ODgwMjU3NjI2NzQwMDQ3Mjg2Ij4ixo9zYXMgc8mZaGlmyZkiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI1NjI5MTUzOTU2MDQ1MTA5MjUxIj4ixLDFnyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjQ5NjY2MDQyNjQ1MDAzNDM0NjkiPiJEaWfJmXIiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0OTMyNjgyODQ3NTk1Mjk5MzY5Ij4iRMO8esmZbmzJmXlpbiI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImltQWRkcmVzc1R5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iMTczODU4NTE5NDYwMTQ3NjY5NCI+IsaPc2FzIHPJmWhpZsmZIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTM1OTY0NDU2NTY0NzM4MzcwOCI+IsSwxZ8iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3ODY4NTQ5NDAxMDUzNjE1Njc3Ij4iRGlnyZlyIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE0NTExODk0NDYzOTg2OTgwOSI+IkbJmXJkaSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yZ2FuaXphdGlvblR5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzU0NjMzNTYxMjE4OTExNTYxNSI+IsSwxZ8iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0Mzc4MDc0MTI5MDQ5NTIwMzczIj4iRGlnyZlyIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzQ1NTA0NzQ2ODU4Mzk2NTEwNCI+IkbJmXJkaSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImltUHJvdG9jb2xzIj4KKyAgICA8aXRlbSBtc2dpZD0iODU5NTI2MTM2MzUxODQ1OTU2NSI+IkFJTSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjczOTA0NzM2MjgyNzU0OTA3MDAiPiJXaW5kb3dzIExpdmUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3ODgyODc3MTM0OTMxNDU4MjE3Ij4iWWFob28iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI1MDM1Mzc2MzEzMjAwNTg1MjQyIj4iU2t5cGUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3NTMyMzYzMTc4NDU5NDQ0OTQzIj4iUVEiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzNzEzNDQxMDM0Mjk5NjYwNzQ5Ij4iR29vZ2xlIFPDtmhiyZl0IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjUwNjg1NzMxMjcxODYzMDgyMyI+IklDUSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjE2NDg3OTc5MDM3ODUyNzkzNTMiPiJKYWJiZXIiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUN1c3RvbSIgbXNnaWQ9IjE2NDQ3MzgwNTkwNTMzNTU4MjAiPiLFnsmZeHNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlSG9tZSIgbXNnaWQ9IjI1NzA5MjM0NjMwMzM5ODU4ODciPiJFdiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU1vYmlsZSIgbXNnaWQ9IjY1MDE0NjM1NTc3NTQ3NTEwMzciPiJNb2JpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVdvcmsiIG1zZ2lkPSI4ODYzOTM5NjY3MDU5OTExNjMzIj4ixLDFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUZheFdvcmsiIG1zZ2lkPSIzNTE3NzkyMTYwMDA4ODkwOTEyIj4ixLDFnyBGYWtzxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVGYXhIb21lIiBtc2dpZD0iMjA2NzI2NTk3MjMyMjk3MTQ2NyI+IkV2IEZha3PEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVBhZ2VyIiBtc2dpZD0iNzU4MjM1OTk1NTM5NDkyMTczMiI+IlBleWNlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU90aGVyIiBtc2dpZD0iMTU0NDQyNTg0Nzg2ODc2NTk5MCI+IkRpZ8mZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNhbGxiYWNrIiBtc2dpZD0iMjcxMjE3NTIwMzA2NTY3ODIwNiI+Ikdlcml5yZkgesmZbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVDYXIiIG1zZ2lkPSI4NzM4MzYwNjg5NjE2NzE2OTgyIj4iQXZ0b21vYmlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlQ29tcGFueU1haW4iIG1zZ2lkPSI1NDA0MzQzNTY0NjE0Nzg5MTYiPiLFnmlya8mZdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUlzZG4iIG1zZ2lkPSI4MDIyNDUzMTkzMTcxMzcwMzM3Ij4iSVNETiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU1haW4iIG1zZ2lkPSI2NzY2MTM3MDEwNjI4MzI2OTE2Ij4ixo9zYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVPdGhlckZheCIgbXNnaWQ9Ijg1ODc2NTcxNDUwNzI0NDY1NjUiPiJEaWfJmXIgZmFrcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVJhZGlvIiBtc2dpZD0iNDA5MzczODA3OTkwODY2NzUxMyI+IlJhZGlvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlVGVsZXgiIG1zZ2lkPSIzMzY3ODc5OTUyNDc2MjUwNTEyIj4iVGVsZWtzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlVHR5VGRkIiBtc2dpZD0iODYwNjUxNDM3ODU4NTAwMDA0NCI+IlRUWSBUREQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVXb3JrTW9iaWxlIiBtc2dpZD0iMTMxMTQyNjk4OTE4NDA2NTcwOSI+Ik1vYmlsIGnFnyB0ZWxlZm9udSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVdvcmtQYWdlciIgbXNnaWQ9IjY0OTkzODczMTIzMTE1NzA1NiI+IsSwxZ8gUGV5Y2VyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUFzc2lzdGFudCIgbXNnaWQ9IjU1OTY3NzI2MzYxMjg1NjI4ODQiPiJLw7ZtyZlrw6dpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlTW1zIiBtc2dpZD0iNzI1NDQ5MjI3NTUwMjc2ODk5MiI+Ik1NUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZUN1c3RvbSIgbXNnaWQ9Ijc4Mzc1ODYxOTg0NTgwNzM0MDQiPiJGyZlyZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVCaXJ0aGRheSIgbXNnaWQ9IjI4MTMzNzk4NDQyMTEzOTA3NDAiPiJEb8SfdW0gZ8O8bsO8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXZlbnRUeXBlQW5uaXZlcnNhcnkiIG1zZ2lkPSIzODc2Nzc5NzQ0NTE4Mjg0MDAwIj4ixLBsZMO2bsO8bcO8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXZlbnRUeXBlT3RoZXIiIG1zZ2lkPSI3Mzg4MTc4OTM5MDEwMTQzMDc3Ij4iRGlnyZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlQ3VzdG9tIiBtc2dpZD0iODUyNTk2MDI1NzgwNDIxMzg0NiI+IkbJmXJkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZUhvbWUiIG1zZ2lkPSI0NDkyMjcyMzYxNDA0MzM5MTkiPiLGj3NhcyBzyZloaWbJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZVdvcmsiIG1zZ2lkPSIzNTQ4MDU4MDU5NjAxMTQ5OTczIj4ixLDFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZU90aGVyIiBtc2dpZD0iMjkyMzAwODY5NTI3MjYzOTU0OSI+IkRpZ8mZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZU1vYmlsZSIgbXNnaWQ9IjExOTkxOTAwNTMyMTE2NjIwNSI+Ik1vYmlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZUN1c3RvbSIgbXNnaWQ9Ijg5MDMyMDY5MDMwNjA0Nzk5MDIiPiJGyZlyZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3N0YWxUeXBlSG9tZSIgbXNnaWQ9IjgxNjU3NTY5NzcxODQ0ODMwOTciPiLGj3NhcyBzyZloaWbJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVXb3JrIiBtc2dpZD0iNTI2ODE3Mjc3MjM4NzY5NDQ5NSI+IsSwxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3N0YWxUeXBlT3RoZXIiIG1zZ2lkPSIyNzI2MTExOTY2NjIzNTg0MzQxIj4iRGlnyZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlQ3VzdG9tIiBtc2dpZD0iMjA3NDAyODc1NTUyNzgyNjA0NiI+IkbJmXJkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZUhvbWUiIG1zZ2lkPSI2MjQxMTgxMDMyOTU0MjYzODkyIj4iQW5hIHPJmWhpZsmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlV29yayIgbXNnaWQ9IjEzNzE0ODkyOTAyNDI0MzMwOTAiPiLEsMWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlT3RoZXIiIG1zZ2lkPSI1Mzc3MDA3NDk1NzM1OTE1NDc4Ij4iRGlnyZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbEN1c3RvbSIgbXNnaWQ9IjY5MTk0NTM4MzY2MTg3NDk5OTIiPiLFnsmZeHNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbEFpbSIgbXNnaWQ9IjcwNTAzNjA2MTIzNjgzODM0MTciPiJBSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sTXNuIiBtc2dpZD0iMTQ0NTU2NTQ1NDIwNzY5NDQyIj4iV2luZG93cyBMaXZlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbFlhaG9vIiBtc2dpZD0iODI3MTQzOTQwODQ2OTAyMTI3MyI+IllhaG9vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbFNreXBlIiBtc2dpZD0iOTAxOTI5Njc0NDYyMjgzMjk1MSI+IlNreXBlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbFFxIiBtc2dpZD0iODg4NzQ4NDM3OTQ5NDExMTg4NCI+IlFRIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbEdvb2dsZVRhbGsiIG1zZ2lkPSI0OTM5MDIzMjExNDAyNzczMDQiPiJHw7Zyw7zFn2zJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sSWNxIiBtc2dpZD0iMTU3NDg3MDQzMzYwNjUxNzMxNSI+IklDUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xKYWJiZXIiIG1zZ2lkPSIyMjc5OTE3NjMwODc1NzcxNzIyIj4iSmFiYmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE5ldE1lZXRpbmciIG1zZ2lkPSI4Mjg3NjI1NjU1OTg2ODI3OTcxIj4iTmV0TWVldGluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ1R5cGVXb3JrIiBtc2dpZD0iMjkyNjg4NzA1MDUzNjM4NzIiPiLEsMWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnVHlwZU90aGVyIiBtc2dpZD0iMzk1MTc4MTEzMTU3MDEyNDA4MiI+IkRpZ8mZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ1R5cGVDdXN0b20iIG1zZ2lkPSIyMjU1MjM0MTUzNzIwODgzMjIiPiJGyZlyZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVDdXN0b20iIG1zZ2lkPSIzNTQyNDAzNjc5ODI3Mjk3MzAwIj4ixZ7JmXhzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUFzc2lzdGFudCIgbXNnaWQ9IjYyNzQzMzQ4MjUxOTUzNzkwNzYiPiJLw7ZtyZlrw6dpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlQnJvdGhlciIgbXNnaWQ9Ijg3NTc5MTM1MDY3ODQwNjc3MTMiPiJRYXJkYcWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlQ2hpbGQiIG1zZ2lkPSIxODkwNzQ2Mjc3Mjc2ODgxNjI2Ij4iVcWfYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVEb21lc3RpY1BhcnRuZXIiIG1zZ2lkPSI2OTA0ODA3MTEyMTIxMTIyMTMzIj4iRXYgeW9sZGHFn8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlRmF0aGVyIiBtc2dpZD0iNTIyODAzNDY4NzA4MjA1MDcyNSI+IkF0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUZyaWVuZCIgbXNnaWQ9IjczMTMxMDY3NjI0ODMzOTEyNjIiPiJEb3N0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlTWFuYWdlciIgbXNnaWQ9IjYzNjU2Nzc4NjE2MTAxMzc4OTUiPiJNw7xkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVNb3RoZXIiIG1zZ2lkPSI0NTc4NTcxMzUyOTYyNzU4MzA0Ij4iQW5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUGFyZW50IiBtc2dpZD0iNDc1NTYzNTU2NzU2MjkyNTIyNiI+IlZhbGlkZXluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUGFydG5lciIgbXNnaWQ9IjcyNjY0OTAyODUxMjAyNjI3ODEiPiJPcnRhcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVJlZmVycmVkQnkiIG1zZ2lkPSIxMDE1NzMwNTk4NDQxMzU1MjQiPiJEyZl2yZl0IGVkyZluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUmVsYXRpdmUiIG1zZ2lkPSIxNzk5ODE5OTMwMDg1NjEwMjcxIj4iUW9odW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVTaXN0ZXIiIG1zZ2lkPSIxNzM1OTgzNTU0NDc5MDc2NDgxIj4iQmFjxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVTcG91c2UiIG1zZ2lkPSIzOTQxMzY5Mzk0Mjg2OTgxMTciPiJIyZl5YXQgeW9sZGHFn8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVDdXN0b20iIG1zZ2lkPSIyNDczNTgwNTkzMTExNTkwOTQ1Ij4iRsmZcmRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVIb21lIiBtc2dpZD0iNjA5MzU5ODE4MTA2OTM1OTI5NSI+IsaPc2FzIHPJmWhpZsmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVXb3JrIiBtc2dpZD0iNjkyMDcyNTczMDc5NzA5OTA0NyI+IsSwxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZU90aGVyIiBtc2dpZD0iNDQwODQzNjE2Mjk1MDExOTg0OSI+IkRpZ8mZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IlDEsE4ga29kdSBkYXhpbCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iUFVLIHbJmSB5ZW5pIFDEsE4ga29kIGRheGlsIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IlBVSyBrb2QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+IlllbmkgUElOIGtvZHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiLFnmlmcsmZIGRheGlsIGV0bcmZayDDvMOnw7xuIHRveHVudW4iPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiJLaWxpZGkgYcOnbWFxIMO8w6fDvG4gcGFyb2wgeWF6xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iS2lsaWRpIGHDp21hcSDDvMOnw7xuIFBJTiBkYXhpbCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIyNDIyMjI1NTkxMDA2MTM0OTM2Ij4iWWFubMSxxZ8gUElOIGtvZHUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+IktpbGlkaSBhw6dtYXEgw7zDp8O8biBNZW55dSwgc29ucmEgMCBiYXPEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1lcmdlbmN5X2NhbGxfZGlhbG9nX251bWJlcl9mb3JfZGlzcGxheSIgbXNnaWQ9IjY5NjE5MjEwMzE5NTA5MDk3MCI+IlTJmWNpbGkgbsO2bXLJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fY2Fycmllcl9kZWZhdWx0IiBtc2dpZD0iODk2MzgzOTI0MjU2NTY1MzE5MiI+IlhpZG3JmXQgeW94ZHVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2NyZWVuX2xvY2tlZCIgbXNnaWQ9IjcyODg0NDMwNzQ4MDY4MzI5MDQiPiJFa3JhbiBraWxpZGzJmW5pYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZW5hYmxlZCIgbXNnaWQ9IjQ2MTU0MDUxNjE0MTI2MDQ5Ij4iVMmZY2lsaSB6yZluZyBraWxpZGluaSBhw6dtYXEgdsmZIHlhIHllcmzJmcWfZGlybcmZayDDvMOnw7xuIE1lbnl1IGTDvHltyZlzaW7JmSBiYXPEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iNjg2MjYwMDI4Nzk3MTU4MzY0Ij4iS2lsaWRpIGHDp21hcSDDvMOnw7xuIE1lbnl1IGTDvHltyZlzaW7JmSBiYXPEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9Ijc0Nzg3MDMyNTQ5NjQ4MTAzMDIiPiJLaWxpZGkgYcOnbWFxIMO8w6fDvG4gbW9kZWwgw6fJmWtpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZW1lcmdlbmN5X2NhbGwiIG1zZ2lkPSI1MzQ3NjMzNzg0NDAxMjg1MjI1Ij4iVMmZY2lsaSB6yZluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcmV0dXJuX3RvX2NhbGwiIG1zZ2lkPSI1MjQ0MjU5Nzg1NTAwMDQwMDIxIj4iWsmZbmfJmSBxYXnEsXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BhdHRlcm5fY29ycmVjdCIgbXNnaWQ9IjkwMzkwMDg2NTAzNjIyNjEyMzciPiJEw7x6ZMO8ciEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BhdHRlcm5fd3JvbmciIG1zZ2lkPSI0MzE3OTU1MDE0OTQ4MTA4Nzk0Ij4iQmlyIGTJmSBjyZloZCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXNzd29yZF93cm9uZyIgbXNnaWQ9IjU3Mzc4MTUzOTMyNTMxNjUzMDEiPiJCaXIgZGFoYSBjyZloZCBldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiJTaWbJmXQga2lsaWRpIGPJmWhkbMmZcmluaXogYml0ZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BsdWdnZWRfaW4iIG1zZ2lkPSI4MDU3NzYyODI4MzU1NTcyMzE1Ij4iQmF0YXJleWEgecSxxJ/EsWzEsXIsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2NoYXJnZWQiIG1zZ2lkPSIzMjE2MzU3NDU2ODQwNjA2MjQiPiJEb2x1YiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYmF0dGVyeV9zaG9ydCIgbXNnaWQ9IjQ0NzcyNjQ4NDkzODY4NTAyNjYiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9sb3dfYmF0dGVyeSIgbXNnaWQ9IjE0ODI4NzM5ODE5MTkyNDk3NDAiPiJFbGVrdHJpa8mZIHFvxZ91bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI1MDk5NDM5Mjc3ODE5MjE1Mzk5Ij4iU0lNIGthcnQgeW94ZHVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUxNjU5MTk2MDk1NzkxNDc0Ij4iUGxhbsWfZXRkyZkgU0lNIGthcnQgeW94ZHVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIxODY5MjA1ODU2OTUxNjkwNzgiPiJUZWxlZm9uZGEgU8SwTSBrYXJ0IHlveGR1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUzNzI3ODcxMzgwMjMyNzI2MTUiPiJTxLBNIGthcnQgZGF4aWwgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iMzUyNjU3MzA5OTAxOTMxOTQ3MiI+IlPEsE0ga2FydCB5b3hkdXIgdsmZIHlhIG94dW5hIGJpbGlubWlyLiBTxLBNIGthcnQgZGF4aWwgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjUwOTYxNDk2NjUxMzg5MTYxODQiPiJZYXJhcnPEsXogU0lNIGthcnQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjkxMDkwNDY0MzQzMzE1MTM3MSI+IlNpemluIFPEsE0ga2FydMSxbsSxeiBkYWltaSBvbGFyYXEgZGVha3RpdmzJmcWfaWIuXG4gQmHFn3FhIFPEsE0ga2FydCDDvMOnw7xuIHNpbXNpeiB4aWRtyZl0IHByb3ZheWRlcmluaXrJmSBtw7xyYWNpyZl0IGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIwMTU5NDkwNTE1Mjc0Njg4NiI+IsaPdnbJmWxraSB0cmVrIGTDvHltyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI2MDg5Mjk3NjUwNDgxMjkyMzYzIj4iTsO2dmLJmXRpIHRyZWsgZMO8eW3JmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU5MDg4Nzg2NzgwMTI4MDAxIj4iUGF1emEgZMO8eW3JmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU4ODg0MjI5MzgzNTEwMTk0MjYiPiJPeHV0bWEgZMO8eW3JmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1NjIzMTgzNzg3NjY5ODc2MDEiPiJEYXlhbmTEsXJtYSBkw7x5bcmZc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWVyZ2VuY3lfY2FsbHNfb25seSIgbXNnaWQ9IjY3MzM5NzgzMDQzODYzNjU0MDciPiJZYWxuxLF6IHTJmWNpbGkgesmZbmdsyZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9uZXR3b3JrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMTQzMzg5MjI0OTg2MDI4NTAxIj4ixZ7JmWLJmWvJmSBraWxpZGxpZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNzQ0MTc5NzMzOTk3NjIzMCI+IlNJTSBrYXJ0IFBVSyBpbMmZIGtpbGlkbMmZbmliLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3B1a19sb2NrZWRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iODEyNzkxNjI1NTI0NTE4MTA2MyI+IsSwc3RpZmFkyZnDp2kgVMmZbGltYXRsYXLEsW5hIGJheMSxbiB2yZkgeWEgTcO8xZ90yZlyaSBYaWRtyZl0bMmZcmluyZkgbcO8cmFjacmZdCBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iODA2NjY2MDEyOTIwNjAwMTAzOSI+IlNJTSBrYXJ0IGtpbGlkbMmZbmliLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjU5NTMyMzIxNDA1Mjg4MTI2NCI+IlPEsE0ga2FydMSxbiBraWxpZGkgYcOnxLFsxLFyLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI2NDgxNjIzODMwMzQ0MTA3MjIyIj4iU2l6IGtpbGlkIG1vZGVsaW5pIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSB5YW5sxLHFnyDDp8mZa2Rpbml6LiBcblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgacOnaW5kyZkgeWVuaWTJmW4gc8SxbmF5xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iMjcyNTk3MzI4NjIzOTM0NDU1NSI+IsWeaWZyyZluaXppIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSB5YW5sxLHFnyBkYXhpbCBldGRpbml6LlxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSDJmXJ6aW5kyZkgeWVuaWTJmW4geW94bGF5xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNjIxNjY3MjcwNjU0NTY5Njk1NSI+IlNpeiBQSU4gbsO2bXLJmW5pemkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHlhbmzEscWfIGRheGlsIGV0ZGluaXouIFxuIFxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgacOnaW5kyZkgdMmZa3JhciBzxLFuYXnEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iOTE5MTYxMTk4NDYyNTQ2MDgyMCI+IlNpeiBraWxpZGkgYcOnbWFxIMO8w6fDvG4gxZ9hYmxvbnUgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHPJmWh2IMOnyZlrZGluaXouIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGRhaGEgdcSfdXJzdXogY8mZaGRkyZluIHNvbnJhIHBsYW7Fn2V0aW4ga2lsaWRpbmkgR29vZ2xlIGhlc2FixLFuxLF6YSBkYXhpbCBvbG1hcWxhIGHDp21hxJ/EsW7EsXogaXN0yZluaWzJmWPJmWsuXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzYW5pecmZIMmZcnppbmTJmSBiaXIgZGFoYSB5b3hsYXnEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI1OTAyMjc1NTk3NjM3NjI3NTEiPiJTaXoga2lsaWRpIGHDp21hcSDDvMOnw7xuIMWfYWJsb251IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSBzyZlodiDDp8mZa2Rpbml6LiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBkYWhhIHXEn3Vyc3V6IGPJmWhkZMmZbiBzb25yYSBwbGFuxZ9ldGluIGtpbGlkaW5pIEdvb2dsZSBoZXNhYsSxbsSxemEgZGF4aWwgb2xtYXFsYSBhw6dtYcSfxLFuxLF6IHTJmWzJmWIgb2x1bmFjYXEuXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzYW5pecmZIMmZcnppbmTJmSBiaXIgZGFoYSB5b3hsYXnEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjYxMjgxMDYzOTk3NDU3NTU2MDQiPiJTaXogcGxhbsWfZXQga2lsaWRpbmkgYcOnbWFxIMO8w6fDvG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHXEn3Vyc3V6IGPJmWhkIGV0bWlzaW5pei4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gZMmZZsmZIGTJmSB1xJ91cnN1eiBjyZloZCBldHPJmW5peiwgcGxhbsWfZXQgZmFicmlrIGF5YXJsYXLEsW5hIHPEsWbEsXJsYW5hY2FxIHbJmSBiw7x0w7xuIG3JmWx1bWF0bGFyxLFuxLF6IGl0yZljyZlrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODYwMzU2NTE0MjE1NjgyNjU2NSI+IlNpeiB0ZWxlZm9uIGtpbGlkaW5pIGHDp21hcSDDvMOnw7xuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSB1xJ91cnN1eiBjyZloZCBldG1pc2luaXouIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGTJmWbJmSBkyZkgdcSfdXJzdXogY8mZaGQgZXRzyZluaXosIHRlbGVmb24gemF2b2QgYXlhcmxhcsSxbmEgc8SxZsSxcmxhbmFjYXEgdsmZIGLDvHTDvG4gbcmZbHVtYXRsYXLEsW7EsXogaXTJmWPJmWsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjgwODczNTE2NDkzOTM0MzY1Ij4iU2l6IHBsYW7Fn2V0aW4ga2lsaWRpbmkgYcOnbWFxIMO8w6fDvG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHlhbmzEscWfIGPJmWhkIGV0bWlzaW5pei4gUGxhbsWfZXQgYXJ0xLFxIGRlZm9sdCB6YXZvZCBoYWzEsW5hIHPEsWbEsXJsYW5hY2FxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzMDI1NTA0NzIxNzY0OTIyMjQ2Ij4iU2l6IHRlbGVmb251biBraWxpZGluaSBhw6dtYXEgw7zDp8O8biA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHPJmWh2IGPJmWhkIGV0ZGluaXouIFRlbGVmb251bnV6IGluZGkgemF2b2Qgbml6YW1sYXLEsW5hIHllbmlsyZluyZljyZlrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYyNTE0ODAzNDMzOTQzODk2NjUiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSDJmXJ6aW5kyZkgYmlyIGRhaGEgY8mZaGQgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iMjYyNjk5OTQ0OTYxMDY5NTkzMCI+IsWeYWJsb251IHVudXRkdW51ej8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9mb3Jnb3RfcGF0dGVybiIgbXNnaWQ9IjI1ODg1MjE1MDExNjYwMzI3NDciPiJIZXNhYiBraWxpZCBhw6dtYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iMjc1MTM2ODYwNTI4NzI4ODgwOCI+IkjJmWRkaW5kyZluIMOnb3ggY8mZaGQgZWRpbGRpISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5MzE4MTYyNTYxMDA3MDc3ODQiPiJLaWxpZGkgYcOnbWFxIMO8w6fDvG4gR29vZ2xlIGhlc2FixLFuxLF6IGlsyZkgZGF4aWwgb2x1bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iODg0Njg4MTQyNDEwNjQ4NDQ0NyI+IsSwc3RpZmFkyZnDp2kgYWTEsSAoZS1wb8OndCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iNTk1ODAyODM4Mzk1NDczODUyOCI+IsWeaWZyyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNzEzMDg5MzY5NDc5NTc4NjMwMCI+IkRheGlsIG9sdW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iMTM2NDA1MTQ3MzM0NzQ4NTkwOCI+IllhbmzEscWfIGlzdGlmYWTJmcOnaSBhZMSxIHbJmSBwYXJvbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSIxNjk2OTI0NzYzNjkwMzc5MDczIj4ixLBzdGlmYWTJmcOnaSBhZMSxbsSxesSxIHbJmSB5YSBwYXJvbHVudXp1IHVudXRtdXN1bnV6P1xuICI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+IiBsaW5raW7JmSBkYXhpbCBvbHVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iNzExNDYyNzM1MTI4NjkzMzg2NyI+IllveGxhbsSxci4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdW5sb2NrX2xhYmVsIiBtc2dpZD0iNzM3NDQwNDgzMjIwNjY3MDU0Ij4iS2lsaWRpIGHDpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc291bmRfb25fbGFiZWwiIG1zZ2lkPSI5MDY4ODc3NTc2NTEzNDI1OTcwIj4iU8mZcyBhw6fEsXFkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zb3VuZF9vZmZfbGFiZWwiIG1zZ2lkPSI5OTY4MjI4MjUxNTQzMTkwMjYiPiJTyZlzIHPDtm7DvGzDvGTDvHIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2FjY2Vzc19wYXR0ZXJuX3N0YXJ0IiBtc2dpZD0iMzk0MTA0NTUwMjkzMzE0Mjg0NyI+Ik1vZGVsIGJhxZ9sYW5kxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2FjY2Vzc19wYXR0ZXJuX2NsZWFyZWQiIG1zZ2lkPSI1NTgzNDc5NzIxMDAxNjM5NTc5Ij4iTW9kZWwgdMmZbWl6bMmZbmRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9jZWxsX2FkZGVkIiBtc2dpZD0iNjc1NjAzMTIwODM1OTI5MjQ4NyI+IlhhbmEgyZlsYXbJmSBlZGlsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2FjY2Vzc19wYXR0ZXJuX2RldGVjdGVkIiBtc2dpZD0iNDk4ODczMDg5NTU1NDA1NzA1OCI+Ik1vZGVsIHRhbWFtbGFuZMSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiIlMSRzLiBXaWRnZXQgJTIkZCBvZiAlMyRkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiJXaWRnZXQgyZlsYXbJmSBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4iQm/FnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfZXhwYW5kZWQiIG1zZ2lkPSIyMjc4MTA2MDIyMzExMTcwMjk5Ij4iS2lsaWRpIGHDp21hIHNhaMmZc2kgZ2VuacWfbMmZbmRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfY29sbGFwc2VkIiBtc2dpZD0iNjM2Njk5MjA2NjkzNjA3NjM5NiI+IktpbGlkaSBhw6dtYSBzYWjJmXNpIMOnw7ZrZMO8LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0IiBtc2dpZD0iNjUyNzEzMTAzOTc0MTgwODI0MCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHZpZGNldC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VzZXJfc2VsZWN0b3IiIG1zZ2lkPSIxMjI2Nzk4MzcwOTEzNjk4ODk2Ij4ixLBzdGlmYWTJmcOnaSBzZWxla3RvcnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3N0YXR1cyIgbXNnaWQ9IjgwMDgyNjQ2MDM5MzU5MzA2MTEiPiJTdGF0dXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2NhbWVyYSIgbXNnaWQ9Ijg5MDQyMzExOTQxODExMTQ2MDMiPiJLYW1lcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlnYXVyZF9hY2Nlc3NpYmlsaXR5X21lZGlhX2NvbnRyb2xzIiBtc2dpZD0iMjYyMjA5NjU0MjkyMTYxODA2Ij4iTWVkaWEga29udHJvbGxhcsSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9zdGFydCIgbXNnaWQ9Ijg3MzY4NTM2MTU1ODg4MjgxOTciPiJZZW5pZMmZbiBzxLFyYWxhbWEgdmlkY2V0aSBiYcWfbGFkxLFsZMSxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfZW5kIiBtc2dpZD0iNzE3MDE5MDk1MDg3MDQ2ODMyMCI+IlZpZGNldGluIHTJmWtyYXIgc2lmYXJpxZ9pIHNvbmEgw6dhdGTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9kZWxldGVkIiBtc2dpZD0iNDQyNjIwNDI2MzkyOTIyNDQzNCI+IlZpZGNldCA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiBzaWxpbmRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZXhwYW5kX2xvY2tfYXJlYSIgbXNnaWQ9IjUxOTg1OTcyMDkzNDE3ODAyNCI+IktpbGlkaSBhw6dtYSBzYWjJmXNpbmkgZ2VuacWfbMmZbmRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiJTw7xyw7zFn2TDvHJtyZkga2lsaWRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl91bmxvY2siIG1zZ2lkPSIxNDkwODQwNzA2MDc1MjQ2NjEyIj4iS2lsZCBhw6dtYSBtb2RlbGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9mYWNlX3VubG9jayIgbXNnaWQ9IjQ4MTcyODI1NDMzNTE3MTg1MzUiPiJTaWbJmXQgS2lsaWRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9waW5fdW5sb2NrIiBtc2dpZD0iMjQ2OTY4NzExMTc4NDAzNTA0NiI+IlBpbiBraWxpZCBhw6dtYXPEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLFnmlmcsmZIGtpbGlkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fYXJlYSIgbXNnaWQ9Ijc2Nzk4OTEzMjQ1MDk1OTc5MDQiPiJNb2RlbCBzYWjJmXNpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfYXJlYSIgbXNnaWQ9IjY3MzYwNjQ0OTQwMTk5Nzk1NDQiPiJTw7xyw7zFn2TDvHJtyZkgc2FoyZlzaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW51bGFyaXR5X2xhYmVsX2NoYXJhY3RlciIgbXNnaWQ9IjczMzY0NzA1MzUzODUwMDk1MjMiPiJzaW12b2wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF93b3JkIiBtc2dpZD0iNzA3NTU3MDMyODM3NDkxODY2MCI+InPDtnoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF9saW5rIiBtc2dpZD0iNTgxNTUwODg4MDc4MjQ4ODI2NyI+ImxpbmsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF9saW5lIiBtc2dpZD0iNTc2NDI2NzIzNTAyNjEyMDg4OCI+InjJmXR0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9hbXBtIiBtc2dpZD0iNDU4NDMzODA4MzUyOTM1NTk4MiI+Ijx4bGlmZjpnIGlkPSJIT1VSIj4lLWw8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IkFNUE0iPiVQPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfY2FwX2FtcG0iIG1zZ2lkPSIyMDgzNDY1OTkyOTQwNDQ0MzY2Ij4iPHhsaWZmOmcgaWQ9IkhPVVIiPiUtbDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iQU1QTSI+JXA8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3RfZmFpbGVkIiBtc2dpZD0iNTQxMDI3MDMyOTExNDIxMjA0MSI+Ilphdm9kIHRlc3RpIGFsxLFubWFkxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub3Rfc3lzdGVtIiBtc2dpZD0iNDQzNTIwMTY1Njc2NzI3NjcyMyI+IkJ1IEZBQ1RPUllfVEVTVCBmyZlhbGl5ecmZdGkgeWFsbsSxemNhL3Npc3RlbWTJmS90yZl0YmlxZMmZIHF1cmHFn2TEsXLEsWxtxLHFnyBwYWtldGzJmXIgw7zDp8O8biBkyZlzdMmZa2zJmW5pci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub19hY3Rpb24iIG1zZ2lkPSI4NzI5OTE4NzQ3OTk5OTg1NjEiPiJGQUNUT1JZX1RFU1QgyZltyZlsaXl5YXTEsW7EsSB0yZlzZGlxbMmZecmZbiBoZcOnIGJpciBwYWtldCB0YXDEsWxtYWTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9yZWJvb3QiIG1zZ2lkPSI2MzIwMTY4MjAzMDUwNzkxNjQzIj4iWWVuaWTJmW4gecO8a2zJmXlpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjE5ODc0ODM5Nzc4MzQ2MDM4NzIiPiJcIjx4bGlmZjpnIGlkPSJUSVRMRSI+JXM8L3hsaWZmOmc+XCJkYWvEsSBzyZloaWbJmWTJmSBkZXlpbGlyOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZV9kZWZhdWx0IiBtc2dpZD0iNjk2MTkwMzIxMzcyOTY2NzU3MyI+IkphdmFTY3JpcHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfYmVmb3JlX3VubG9hZF90aXRsZSIgbXNnaWQ9IjI2MTkzNzY1NTU1MjUxMTY1OTMiPiJOYXZpcWFzaXlhbsSxIFTJmXNkaXEgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkX3Bvc2l0aXZlX2J1dHRvbiIgbXNnaWQ9IjMxMTI3NTIwMTA2MDA0ODQxMzAiPiJCdSBTyZloaWbJmW5pIFTJmXJrIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfYmVmb3JlX3VubG9hZF9uZWdhdGl2ZV9idXR0b24iIG1zZ2lkPSI1NjE0ODYxMjkzMDI2MDk5NzE1Ij4iQnUgc8mZaGlmyZlkyZkgcWFsxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWQiIG1zZ2lkPSIzNDY4ODE2MzU3MDk1Mzc4NTkwIj4iPHhsaWZmOmcgaWQ9Ik1FU1NBR0UiPiVzPC94bGlmZjpnPlxuXG5CdSBzyZloaWbJmWTJmW4ga8mZbmFyYSBuYXZpcWFzaXlhIGV0bcmZayBpc3TJmWRpeWluaXrJmSDJmW1pbnNpbml6IG1pPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfbGFiZWwiIG1zZ2lkPSI2ODYwMjYxNzU4NjY1ODI1MDY5Ij4iVMmZc2RpcWzJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvdWJsZV90YXBfdG9hc3QiIG1zZ2lkPSI0NTk1MDQ2NTE1NDAwMjY4ODgxIj4iTcmZc2zJmWjJmXQ6IELDtnnDvHRtyZlrIHbJmSBracOnaWx0bcmZayDDvMOnw7xuIGlraSBkyZlmyZkgdMSxa2xhecSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF90aGlzX2Zvcm0iIG1zZ2lkPSI0NjE2NzU4ODQxMTU3ODE2Njc2Ij4iQXZ0b2RvbGR1cm1hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2V0dXBfYXV0b2ZpbGwiIG1zZ2lkPSI3MTAzNDk1MDcwMTgwNTkwODE0Ij4iQXZ0b0RvbGR1cm1hbsSxIGF5YXJsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3NfbmFtZV9zZXBhcmF0b3IiIG1zZ2lkPSI2MzUwMTQ1MTU0Nzc5NzA2NzcyIj4iICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3Nfc3VtbWFyeV9uYW1lX2Zvcm1hdCIgbXNnaWQ9IjMyNjgwNDEwNTQ4OTkyMTQ5NDUiPiIkMSQyJDMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX3N1bW1hcnlfc2VwYXJhdG9yIiBtc2dpZD0iNzQ4MzMwNzg5MzE3MDMyNDEyOSI+IiwgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYWRkcmVzc19zdW1tYXJ5X2Zvcm1hdCIgbXNnaWQ9IjQ4NzQ0NTk0NTU3ODY4MjczNDQiPiIkMSQyJDMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wcm92aW5jZSIgbXNnaWQ9IjIyMzE4MDY1NTM4NjM0MjIzMDAiPiJWaWxhecmZdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3Bvc3RhbF9jb2RlIiBtc2dpZD0iNDY5NjQzMDQwNzY4OTM3NzEwOCI+IlBvw6d0IGtvZHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9zdGF0ZSIgbXNnaWQ9IjY5ODg4OTQxOTU1MjAwNDQ2MTMiPiJEw7Z2bMmZdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3ppcF9jb2RlIiBtc2dpZD0iODY5NzU0NDU5MjYyNzMyMjk0NiI+IlBvw6d0IGluZGVrc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9jb3VudHkiIG1zZ2lkPSIyMzcwNzM3NzEwMjAzNjI4OTEiPiLDlmxryZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9pc2xhbmQiIG1zZ2lkPSI0MDIwMTAwODc1OTg0NjY3MDI1Ij4iQWRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZGlzdHJpY3QiIG1zZ2lkPSI4NDAwNzM1MDczMzkyMjY3NjcyIj4iU2FoyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9kZXBhcnRtZW50IiBtc2dpZD0iNTM0MzI3OTQ2MjU2NDQ1MzMwOSI+IkRlcGFydGFtZW50Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcHJlZmVjdHVyZSIgbXNnaWQ9IjIwMjg0OTk0ODUwNjU4MDA0MTkiPiJQcmVmZWt0dXJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcGFyaXNoIiBtc2dpZD0iODIwMjIwNjEwNTQ2ODgyMDA1NyI+IlBhcmnFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FyZWEiIG1zZ2lkPSIzNTQ3NDA5MDUwODg5OTUyNDIzIj4iU2FoyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9lbWlyYXRlIiBtc2dpZD0iMjg5Mzg4MDk3ODgzNTY5ODgxOCI+IsaPbWlybGlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9IjM3NzUyNjU3NzU0MDUxMDY5ODMiPiJWZWIgyZlsZsmZY2lubMmZcmluaXppIHbJmSB0YXJpeMOnyZlsyZlyaW5pemkgb3h1bWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSI4NDYyMzc4MjI2NjAwNDM5NjU4Ij4iVMmZdGJpccmZIEJyYXV6ZXJpbiBkYXhpbCBvbGR1xJ91IGLDvHTDvG4gbGlua2zJmXJpIHbJmSBiw7x0w7xuIEJyYXV6ZXIgyZlsZsmZY2lubMmZcmluaSBveHVtYXEgaW1rYW7EsSB2ZXJpci4gUWV5ZDogYnUgaWNhesmZIHZlYiBicmF1emVyIGlta2FubGFyxLEgb2xhbiDDvMOnw7xuY8O8IHTJmXLJmWYgYnJhenVlcmzJmXJpIHbJmSBkaWfJmXIgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiB5ZXJpbsmZIHlldGlyaWzJmSBiaWxtyZl6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iMzcxNDc4NTE2NTI3MzMxNDQ5MCI+InZlYiDJmWxmyZljaW5syZlyaSB2yZkgdGFyaXjDp8mZc2kgeWF6bWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2ODI1NTI3NDY5MTQ1NzYwOTIyIj4iVMmZdGJpccmZIHBsYW7Fn2V0aW5pemTJmWtpIGJyYXV6ZXIgdGFyaXhpbmkgdsmZIMmZbGbJmWNpbmzJmXJpIHJlZGFrdMmZIGV0bcmZayBpY2F6yZlzaSB2ZXJpci4gQnUgdMmZdGJpesmZIGJyYXV6ZXIgbcmZbHVtYXRsYXLEsW7EsSBzaWxtyZlrIHbJmSB5YSByZWRha3TJmSBldG3JmWsgaW1rYW7EsSB2ZXLJmSBiaWzJmXIuIFFleWQ6IEJ1IGljYXrJmSAzLWPDvCBwYXJ0aXlhIGJyYXV6ZXJsyZlyyZkgdsmZIHlhIHZlYiBicmF1emluZyB4w7xzdXNpeXnJmXRsaSBkaWfJmXIgdMmZdGJpcWzJmXLJmSDFn2FtaWwgb2x1bm1heWEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0OTczODk1MzEwMTQxODU1MDkiPiJUyZl0YmlxyZkgQnJhdXplciB0YXJpeMOnyZlzaSB2yZkgdGVsZWZvbnVudXpkYSBzYXhsYW7EsWxhbiDJmWxmyZljaW5syZlyyZkgZMmZeWnFn2lrbGlrIGV0bcmZayBpbWthbsSxIHZlcmlyLiBCdW51bmxhIHTJmXRiaXFsyZkgQnJhdXplciBkYXRhbsSxesSxIHNpbMmZIHbJmSB5YSBkyZl5acWfZGlyyZkgYmlsyZlyLiBRZXlkOiBidSBpY2F6yZkgdmViIGJyYXV6ZXIgaW1rYW5sYXLEsSBvbGFuIMO8w6fDvG5jw7wgdMmZcsmZZiBicmF6dWVybMmZcmkgdsmZIGRpZ8mZciB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIHllcmluyZkgeWV0aXJpbMmZIGJpbG3JmXouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbGFybSIgbXNnaWQ9IjEzNzkyOTQ1NTYzNjIwOTE4MTQiPiJzaXFuYWwgcXVydXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbGFybSIgbXNnaWQ9IjMxNjM5MjAzOTE1NzQ3Mzg0OCI+IlTJmXRiaXHJmSBxdXJhxZ9kxLFybG3EscWfIHrJmW5nbGkgc2FhdGEgYWxhcm0gYXlhcmxhbWHEn2EgaW1rYW4gdmVyaXIuIELJmXppIHrJmW5nbGkgc2FhdCB0yZl0YmlxbMmZcmkgYnUgw7Z6yZlsbGl5aSBkyZlzdMmZa2zJmW3JmXnJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hZGRWb2ljZW1haWwiIG1zZ2lkPSI1NTI1NjYwMDI2MDkwOTU5MDQ0Ij4iU8mZc2xpIHBvw6d0IMmZbGF2yZkgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hZGRWb2ljZW1haWwiIG1zZ2lkPSI2NjA0NTA4NjUxNDI4MjUyNDM3Ij4iVMmZdGJpccmZIHPJmXNsaSBwb8OndCBxdXR1bnV6YSBtZXNhaiDJmWxhdsmZIGV0bcmZecmZIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iNTk2MjIyNDE1ODk1NTI3MzkzMiI+IkJyYXV6ZXJpbiBnZW9sb2thc2l5YSBpY2F6yZlsyZlyaW5pIGTJmXlpxZ9pciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlR2VvbG9jYXRpb25QZXJtaXNzaW9ucyIgbXNnaWQ9IjEwODM3NDMyMzQ1MjI2Mzg3NDciPiJUyZl0YmlxyZkgQnJhdXplcmluIGdlb2xva2FzaXlhIGljYXrJmWzJmXJpbmkgZMmZeWnFn23JmXnJmSBpbWthbiB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGJ1bmRhbiBpc3RpZmFkyZkgZWTJmXLJmWsgbcmZa2FuIG3JmWx1bWF0bGFyxLFuxLEgdMmZc2Fkw7xmaSBzYXl0bGFyYSBnw7ZuZMmZcsmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BhY2thZ2VWZXJpZmljYXRpb25BZ2VudCIgbXNnaWQ9IjU1NjgxMzkxMDA2NDU4MjkxMTciPiJwYWtldGzJmXJpIHTJmXNkaXFsyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wYWNrYWdlVmVyaWZpY2F0aW9uQWdlbnQiIG1zZ2lkPSI4NDM3NTkwMTkwOTkwODQzMzgxIj4iVMmZdGJpccmZIHBha2V0aW4gcXVyYcWfZMSxcsSxbGFiaWzJmW4gb2xtYXPEsW7EsSB5b3hsYW1hxJ9hIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFBhY2thZ2VWZXJpZmllciIgbXNnaWQ9IjQxODc3ODY3OTMzNjAzMjY2NTQiPiJwYWtldCBkb8SfcnVsYXnEsWPEsXlhIGJhxJ9sYW7EsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUGFja2FnZVZlcmlmaWVyIiBtc2dpZD0iMzE4MDc0MTc3MzIzMzg2MjEyNiI+IlNhaGliaW7JmSBwYWtldCB5b3hsYXnEsWPEsWxhcsSxbmEgc29yxJ91IGfDtm5kyZlybcmZayBpY2F6yZlzaSB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gaGXDpyB2YXh0IGlzdMmZbmlsbcmZbcmZbGlkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXJpYWxQb3J0IiBtc2dpZD0iNTQ2MDgzMzI3NjU0NjMxMDc2Ij4ic2VyaWFsIHBvcnRhIMOnxLF4xLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VyaWFsUG9ydCIgbXNnaWQ9IjI5OTE2Mzk5ODUyMjQ1OTgxOTMiPiJTYWhpYmluyZkgU2VyaWFsTWFuYWdlciBBUEkgdmFzaXTJmXNpbMmZIHNlcmlhbCBwb3J0bGFyYSBpY2F6yZkgaXpuaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0NvbnRlbnRQcm92aWRlcnNFeHRlcm5hbGx5IiBtc2dpZD0iNTA3Nzc3NDI5Nzk0MzQwOTI4NSI+InhhcmljaSBrb250ZW50IHByb3ZheWRlcmzJmXJpbsmZIGdpcmnFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0NvbnRlbnRQcm92aWRlcnNFeHRlcm5hbGx5IiBtc2dpZD0iNDU0NDM0NjQ4NjY5Nzg1MzY4NSI+Ik3JmXptdW4gcHJvdmF5ZGVybMmZcmluyZkgw7ZydMO8a2TJmW4gZGF4aWwgb2xtYXEgw7zDp8O8biBjaWhheiBzYWhpYmluyZkgaW1rYW4gdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciDDvMOnw7xuIGxhesSxbSBkZXlpbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUxvY2siIG1zZ2lkPSIzNTI3NTU4MzY2NjE2NjgwODg5Ij4iYXZ0b21hdGlrIGNpaGF6IHllbmlsyZlubcmZbMmZcmluaSBwb3p1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VwZGF0ZUxvY2siIG1zZ2lkPSIxNjU1NjI1ODMyMTY2Nzc4NDkyIj4iU2FoaWJpbsmZIHllbmkgdmVyc2l5YXlhIHllbmlsyZlubcmZayDDvMOnw7xuIG7JmSB2YXh0IHFleXJpLWludGVyYWt0aXYgcmVib290IG3JmWx1bWF0xLFuxLEgc2lzdGVtyZkgdMmZa2xpZiBldG3JmSBpY2F6yZlzaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX21lc3NhZ2UiIG1zZ2lkPSI3NjczNDQ2ODcxMzkxOTU3OTAiPiJCcmF1emVyaW4gYnUgxZ9pZnLJmW5pIHlhZGRhIHNheGxhbWFzxLFuxLEgaXN0yZl5aXJzaXo/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9ub3Rub3ciIG1zZ2lkPSI2Mzg5Njc1MzE2NzA2Njk5NzU4Ij4ixLBuZGkgeW94Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9yZW1lbWJlciIgbXNnaWQ9IjY0OTE4Nzk2Nzg5OTY3NDk0NjYiPiJZYWRkYSBzYXhsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfbmV2ZXIiIG1zZ2lkPSI4Mjc0MzMwMjk2Nzg1ODU1MTA1Ij4iSGXDpyB2YXh0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3Blbl9wZXJtaXNzaW9uX2RlbnkiIG1zZ2lkPSI3Mzc0MDM2NzA4MzE2NjI5ODAwIj4iQnUgc8mZaGlmyZluaSBhw6dtYXEgw7zDp8O8biBpY2F6yZluaXogeW94ZHVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRleHRfY29waWVkIiBtc2dpZD0iNDk4NTcyOTUyNDY3MDEzMTM4NSI+Ik3JmXRuIHBhbm95YSBrb3B5YWxhbmTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb3JlX2l0ZW1fbGFiZWwiIG1zZ2lkPSI0NjUwOTE4OTIzMDgzMzIwNDk1Ij4iRGFoYSDDp294Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlcGVuZF9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI1NzIyMTQ0NjE2NzYwMTU2NDIiPiJNZW55dSsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NwYWNlX3Nob3J0Y3V0X2xhYmVsIiBtc2dpZD0iMjQxMDMyODYzOTI3MjE2MjUzNyI+ImJvxZ9sdXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2VudGVyX3Nob3J0Y3V0X2xhYmVsIiBtc2dpZD0iMjc0MzM2Mjc4NTExMTMwOTY2OCI+ImRheGlsIG9sdW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZV9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjM2NTgxNzgwMDcyMDI3NDgxNjQiPiJzaWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2hfZ28iIG1zZ2lkPSI4Mjk4MDE2NjY5ODIyMTQxNzE5Ij4iQXh0YXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX3NlYXJjaCIgbXNnaWQ9IjY3NDk4MjY2MzkwOTg1MTIxMjAiPiJBeHRhcsSxxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX3F1ZXJ5IiBtc2dpZD0iNTkxMTc3ODU5MzEyNTM1NTEyNCI+IkF4dGFyxLHFnyBzb3LEn3VzdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fY2xlYXIiIG1zZ2lkPSIxMzMwMjgxOTkwOTUxODMzMDMzIj4iU29yxJ91bnUgdMmZbWl6bMmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9zdWJtaXQiIG1zZ2lkPSIyNjg4NDUwMTMzMjk3OTgzNTQyIj4iU29yxJ91bnUgZ8O2bmTJmXJpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fdm9pY2UiIG1zZ2lkPSIyNDUzMjAzNjk1Njc0OTk0NDQwIj4iU8mZc2xpIGF4dGFyxLHFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSI3NDYwNjk0MDcwMzA5NzMwMTQ5Ij4iVG94dW5hcmFxIEvJmcWfZiBldCBmdW5rc2l5YXPEsSBha3RpdiBlZGlsc2luPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODY1NTg4NzUzOTA4OTkxMDU3NyI+Ijx4bGlmZjpnIGlkPSJBQ0NFU1NJQklMSVRZX1NFUlZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4gVG94dW5hcmFxIEvJmcWfZiBFdCByZWppbWluaSBha3RpdmzJmcWfZGlybcmZayBpc3TJmXlpci4gVG94dW5hcmFxIEvJmcWfZiBFdCBhw6fEsWxkxLHEn8SxIHphbWFuLCBiYXJtYcSfxLFuxLF6xLFuIGFsdMSxbmRhIG7JmSBvbGR1xJ91IGhhcWRhIG9sYW4gdMmZc3ZpcmzJmXJpIGXFn2lkyZkgdsmZIHlhIGfDtnLJmSBiaWzJmXJzaW5peiB2yZkgeWFwbGFuxZ9ldGTJmSBpbnNhbmxhcmxhIMmZbGFxyZl5yZkga2XDp23JmWsgw7zDp8O8biBqZXN0bMmZciBoyZl5YXRhIGtlw6dpcsmZIGJpbMmZcnNpbml6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI3MDgxOTk2NzI4NTIzNzMxOTUiPiI8eGxpZmY6ZyBpZD0iQUNDRVNTSUJJTElUWV9TRVJWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+IFRveHVuYXJhcSBLyZnFn2YgRXQgcmVqaW1pbmkgYWt0aXZsyZnFn2Rpcm3JmWsgaXN0yZl5aXIuIFRveHVuYXJhcSBLyZnFn2YgRXQgYcOnxLFsZMSxxJ/EsSB6YW1hbiwgYmFybWHEn8SxbsSxesSxbiBhbHTEsW5kYSBuyZkgb2xkdcSfdSBoYXFkYSBvbGFuIHTJmXN2aXJsyZlyaSBlxZ9pZMmZIHbJmSB5YSBnw7ZyyZkgYmlsyZlyc2luaXogdsmZIHlhIHRlbGVmb25kYSBpbnNhbmxhcmxhIMmZbGFxyZl5yZkga2XDp23JmWsgw7zDp8O8biBqZXN0bMmZciBoyZl5YXRhIGtlw6dpcsmZIGJpbMmZcnNpbml6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib25lTW9udGhEdXJhdGlvblBhc3QiIG1zZ2lkPSI3Mzk2Mzg0NTA4OTUzNzc5OTI1Ij4iMSBheSDDtm5jyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiZWZvcmVPbmVNb250aER1cmF0aW9uUGFzdCIgbXNnaWQ9IjkwOTEzNDU0NjgzNjQ5OTgyNiI+IjEgYXkgyZl2dsmZbCI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX3NlY29uZHNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDg2OTg3MDA1NjU0Nzg5NjAxMSI+IjEgc2FuaXnJmSDJmXZ2yZlsIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzOTAzNzA2ODA0MzQ5NTU2Mzc5Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSDJmXZ2yZlsIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJudW1fbWludXRlc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMzA2Nzg3NDMzMDg4ODEwMTkxIj4iMSBkyZlxaXHJmSDJmXZ2yZlsIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMTc2OTQyMDA4OTE1NDU1MTE2Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gZMmZcWlxyZkgyZl2dsmZbCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX2hvdXJzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjkxNTA3OTc5NDQ2MTA4MjE4NDkiPiIxIHNhYXQgyZl2dsmZbCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjQ2NzI3MzIzOTU4NzU4NzU2OSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHNhYXQgyZl2dsmZbCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibGFzdF9udW1fZGF5cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzA2OTk5MjgwODE2NDMxODI2OCI+IlNvbiA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBnw7xuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ibGFzdF9tb250aCIgbXNnaWQ9IjM5NTkzNDY3Mzk5NzkwNTU0MzIiPiJLZcOnyZluIGF5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkZXIiIG1zZ2lkPSI1MjExOTc1MDIyODE1NTU0ODQwIj4iS8O2aG7JmSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX2RheXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODYxMzU4NTM0Mzk4MTE1ODIwIj4iZMO8bsmZbiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjQ3OTU4NjQ2NjE1MzMxNDYzMyI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IGfDvG4gyZl2dsmZbCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iaW5fbnVtX3NlY29uZHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIyNzI5NzQ1NTYwOTU0OTA1MTAyIj4iMSBzYW5pecmZIMmZcnppbmTJmSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTI0MTkyNjExNjQ0Mzk3NDY4NyI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgacOnaW5kyZkiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImluX251bV9taW51dGVzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODc5MzA5NTI1MTMyNTIwMDM5NSI+IjEgZMmZcWlxyZkgacOnaW5kyZkiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjMzMzA3MTM5MzYzOTk0NDg3NDkiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBkyZlxaXHJmSDJmXJ6aW5kyZkiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImluX251bV9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjcxNjQzNTMzNDI0Nzc3Njk5OTkiPiIxIHNhYXRhIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDcyOTA2NzczNTM3MjczODkiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBzYWF0YSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iaW5fbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1NDEzMDg4NzQzMDA5ODM5NTE4Ij4ic2FiYWgiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjUxMDk0NDkzNzUxMDA5NTMyNDciPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBnw7xuIMmZcnppbmTJmSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X251bV9zZWNvbmRzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjE4NDkwMzY4NDAyMDAwNjkxMTgiPiIxIHNhbml5yZkgyZl2dsmZbCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzY5OTE2OTM2NjY1MDkzMDQxNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHNhbiDJmXZ2yZlsIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX21pbnV0ZXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjM2MTQ5MDE0NzExMzg3MTU0NSI+IjEgZMmZcWlxyZkgyZl2dsmZbCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODUxMTY0OTY4NTk3MTUwNzEwIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gZMmZcWlxyZkgyZl2dsmZbCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X251bV9ob3Vyc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0Nzk2MjEyMDM5NzI0NzIyMTE2Ij4iMSBzYWF0IMmZdnbJmWwiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY4ODk5NzA3NDU3NDg1Mzg5MDEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBzYWF0IMmZdnbJmWwiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1fZGF5c19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4NDYzMTYxNzExNDkyNjgwMzA5Ij4iZMO8bsmZbiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzQ1MzM0MjYzOTYxNjQ4MTE5MSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IGfDvG4gyZl2dsmZbCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9zZWNvbmRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg0MjIyNTM3MDc5NTA2NjI5OSI+IjEgc2FuIMmZcnppbmTJmSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ5NTg4MDEwODgyNTgwNTEwOCI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHNhbiDJmXJ6aW5kyZkiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU2Mjc4NjE0OTkyODI4NDg3OCI+IjEgZMmZcSDJmXJ6aW5kyZkiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQyMTYxMTMyOTI3MDY1Njg3MjYiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBkyZlxaXHJmXnJmSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNzQ3MDgxMTgxMjQwNDUyNDYiPiIxIHNhYXQgyZlyemluZMmZIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzNzA1MzczNzY2Nzk4MDEzNDA2Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gc2FhdGEiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fZGF5cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjIxNzg1NzYyNTQzODU3Mzk4NTUiPiJzYWJhaCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjk3MzA2Mjk2ODAzODM1NTk5MSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IGfDvG7JmSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl9kYXRlIiBtc2dpZD0iOTA5Mzk0OTc1Nzc1NzQ0NTExNyI+Ijx4bGlmZjpnIGlkPSJEQVRFIj4lczwveGxpZmY6Zz4gdGFyaXhpbmTJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl90aW1lIiBtc2dpZD0iNTUwNjgzMTI0NDI2MzA4Mzc5MyI+InNhYXQgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl95ZWFyIiBtc2dpZD0iNTA0MDM5NTY0MDcxMTg2NzE3NyI+Ijx4bGlmZjpnIGlkPSJZRUFSIj4lczwveGxpZmY6Zz4gaWxpbmTJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheSIgbXNnaWQ9IjgxNDQxOTU3NzYwNTgxMTk0MjQiPiJnw7xuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5cyIgbXNnaWQ9IjQ3NzQ1NDc2NjEwMjEzNDQ2MDIiPiJnw7xubMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXIiIG1zZ2lkPSIyMTI2NzcxOTE2NDI2MTg5NDgxIj4ic2FhdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJzIiBtc2dpZD0iODk0NDI0MDA1MjY2ODUyOTkzIj4ic2FhdGxhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZSIgbXNnaWQ9IjkxNDg4Nzg2NTc3MDM3Njk4NjgiPiJkyZlxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZXMiIG1zZ2lkPSI1NjQ2MDAxMDA1ODI3MDM0NTA5Ij4iZMmZcWlxyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWNvbmQiIG1zZ2lkPSIzMTg0MjM1ODA4MDIxNDc4Ij4ic24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWNvbmRzIiBtc2dpZD0iMzE2MTUxNTM0NzIxNjU4OTIzNSI+InNhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlZWsiIG1zZ2lkPSI1NjE3OTYxNTM3MTczMDYxNTgzIj4iaMmZZnTJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlZWtzIiBtc2dpZD0iNjUwOTYyMzgzNDU4Mzk0NDUxOCI+ImjJmWZ0yZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyIiBtc2dpZD0iNDAwMTExODIyMTAxMzg5MjA3NiI+ImlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcnMiIG1zZ2lkPSI2ODgxNTc3NzE3OTkzMjEzNTIyIj4iaWwiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImR1cmF0aW9uX3NlY29uZHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2OTYyMDE1NTI4MzcyOTY5NDgxIj4iMSBzYW5pecmZIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxODg2MTA3NzY2NTc3MTY2Nzg2Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iZHVyYXRpb25fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ5MTU0MTQwMDI1NDYwODU2MTciPiIxIGTJmXFpccmZIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzMTY1MTg3MTY5MjI0OTA4Nzc1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gZMmZcWlxyZkiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImR1cmF0aW9uX2hvdXJzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODkxNzQ2NzQ5MTI0ODgwOTk3MiI+IjEgc2FhdCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzg2Mzk2Mjg1NDI0Njc3MzkzMCI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHNhYXQiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfdGl0bGUiIG1zZ2lkPSIzNTM0NTA5MTM1NDM4MzUzMDc3Ij4iVmlkZW8gcHJvYmxlbWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfdGV4dF9pbnZhbGlkX3Byb2dyZXNzaXZlX3BsYXliYWNrIiBtc2dpZD0iMzE4NjY3MDMzNTkzODY3MDQ0NCI+IkJ1IHZpZGVvIGJ1IGNpaGF6YSBzdHJpbSBvbHVubWFxIMO8w6fDvG4gdXnEn3VuIGRleWlsLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlZpZGVvVmlld19lcnJvcl90ZXh0X3Vua25vd24iIG1zZ2lkPSIzNDUwNDM5MTU1MTg3ODEwMDg1Ij4iQnUgdmlkZW8gb3h1bXVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX2J1dHRvbiIgbXNnaWQ9IjI4MjIyMzgyMTUxMDA2Nzk1OTIiPiJPSyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aXZlX3RpbWUiIG1zZ2lkPSIxODE4NTU3MTc3ODI5NDExNDE3Ij4iPHhsaWZmOmcgaWQ9IkRBVEUiPiUxJHM8L3hsaWZmOmc+LCA8eGxpZmY6ZyBpZD0iVElNRSI+JTIkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub29uIiBtc2dpZD0iNzI0NTM1MzUyODgxODU4NzkwOCI+ImfDvG5vcnRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iTm9vbiIgbXNnaWQ9IjMzNDIxMjc3NDUyMzAwMTMxMjciPiJHw7xub3J0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pZG5pZ2h0IiBtc2dpZD0iNzE2NjI1OTUwODg1MDQ1NzU5NSI+ImdlY8mZeWFyxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJNaWRuaWdodCIgbXNnaWQ9IjU2MzA4MDY5MDY4OTc4OTIyMDEiPiJHZWPJmXlhcsSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxhcHNlZF90aW1lX3Nob3J0X2Zvcm1hdF9tbV9zcyIgbXNnaWQ9IjQ0MzE1NTU5NDM4Mjg3MTE0NzMiPiI8eGxpZmY6ZyBpZD0iTUlOVVRFUyI+JTEkMDJkPC94bGlmZjpnPjo8eGxpZmY6ZyBpZD0iU0VDT05EUyI+JTIkMDJkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVsYXBzZWRfdGltZV9zaG9ydF9mb3JtYXRfaF9tbV9zcyIgbXNnaWQ9IjE4NDYwNzE5OTc2MTY2NTQxMjQiPiI8eGxpZmY6ZyBpZD0iSE9VUlMiPiUxJGQ8L3hsaWZmOmc+Ojx4bGlmZjpnIGlkPSJNSU5VVEVTIj4lMiQwMmQ8L3hsaWZmOmc+Ojx4bGlmZjpnIGlkPSJTRUNPTkRTIj4lMyQwMmQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0QWxsIiBtc2dpZD0iNjg3NjUxODkyNTg0NDEyOTMzMSI+IkhhbcSxc8SxbsSxIHNlw6ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjdXQiIG1zZ2lkPSIzMDkyNTY5NDA4NDM4NjI2MjYxIj4iS8mZcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvcHkiIG1zZ2lkPSIyNjgxOTQ2MjI5NTMzNTExOTg3Ij4iS29weWFsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3RlIiBtc2dpZD0iNTYyOTg4MDgzNjgwNTAzNjQzMyI+IlllcmzJmcWfZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVwbGFjZSIgbXNnaWQ9IjU3ODE2ODYwNTkwNjMxNDg5MzAiPiLGj3bJmXogZXQuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGUiIG1zZ2lkPSI2MDk4Njg0ODQ0MDIxNjk3Nzg5Ij4iU2lsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29weVVybCIgbXNnaWQ9IjI1MzgyMTE1Nzk1OTYwNjc0MDIiPiJVUkwga29weWFsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdFRleHRNb2RlIiBtc2dpZD0iMTAxODY5MTgxNTE0MzE2NTMyNiI+Ik3JmXRuIHNlw6dpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRleHRTZWxlY3Rpb25DQUJUaXRsZSIgbXNnaWQ9IjUyMzY4NTAzOTQzNzA4MjAzNTciPiJNyZl0biBzZcOnaW1pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkVG9EaWN0aW9uYXJ5IiBtc2dpZD0iNDM1MjE2MTUzNDUxMDA1Nzg3NCI+IkzDvMSfyZl0yZkgyZlsYXbJmSBldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZVRleHQiIG1zZ2lkPSI2OTc5NjY4NDI4NDU4MTk5MDM0Ij4iU2lsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5wdXRNZXRob2QiIG1zZ2lkPSIxNjUzNjMwMDYyMzA0NTY3ODc5Ij4iRGF4aWxldG3JmSBtZXRvZHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlZGl0VGV4dE1lbnVUaXRsZSIgbXNnaWQ9IjQ5MDkxMzU1NjQ5NDE4MTU0OTQiPiJNyZl0biDJmW3JmWxpeXlhdGxhcsSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X2ludGVybmFsX3N0b3JhZ2Vfdmlld190aXRsZSIgbXNnaWQ9IjU1NzYyNzI0OTYzNjU2ODQ4MzQiPiJZYWRkYcWfIHllcmkgYml0aXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfaW50ZXJuYWxfc3RvcmFnZV92aWV3X3RleHQiIG1zZ2lkPSI2NjQwNTA1ODE3NjE3NDE0MzcxIj4iQsmZemkgc2lzdGVtIGZ1bmtzaXlhbGFyxLEgacWfbMmZbcmZecmZIGJpbMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9ydW5uaW5nX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9Ijg3MTgzMzUxMjEwNjA3ODc5MTQiPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+IGnFn2zJmW5pciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9ydW5uaW5nX25vdGlmaWNhdGlvbl90ZXh0IiBtc2dpZD0iNDY1MzU4Njk0Nzc0NzMzMDA1OCI+IkRhaGEgw6dveCBtyZlsdW1hdCDDvMOnw7xuIHbJmSB5YSB0yZl0YmlxaSBkYXlhbmTEsXJtYXEgw7zDp8O8biB0b3h1bnVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9rIiBtc2dpZD0iNTk3MDA2MDQzMDU2MjUyNDkxMCI+Ik9LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNjQ0MjU2MDU3MTI1OTkzNTEzMCI+IkzJmcSfdiBldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllcyIgbXNnaWQ9IjUzNjI5ODIzMDMzMzc5NjkzMTIiPiJPSyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vIiBtc2dpZD0iNTE0MTUzMTA0NDkzNTU0MTQ5NyI+IkzJmcSfdiBldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpYWxvZ19hbGVydF90aXRsZSIgbXNnaWQ9IjIwNDk2NTg3MDg2MDkwNDMxMDMiPiJEaXFxyZl0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9hZGluZyIgbXNnaWQ9Ijc5MzM2ODEyNjAyOTYwMjExODAiPiJZw7xrbMmZbmly4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwaXRhbF9vbiIgbXNnaWQ9IjE1NDQ2ODI3NTU1MTQ0OTQyOTgiPiJBw4dJUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGl0YWxfb2ZmIiBtc2dpZD0iNjgxNTg3MDM4Njk3MjgwNTgzMiI+IlFBUEFMSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndoaWNoQXBwbGljYXRpb24iIG1zZ2lkPSI0NTMzMTg1OTQ3MDY0NzczMzg2Ij4ixo9tyZlsaXl5YXTEsSB0YW1hbWxhecSxbjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNVc2UiIG1zZ2lkPSI0NTgzMDE4MzY4MDAwNjEwNDM4Ij4iQnUgZsmZYWxpeXnJmXQgw7zDp8O8biBkZWZvbHQgaXN0aWZhZMmZIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjbGVhckRlZmF1bHRIaW50TXNnIiBtc2dpZD0iMzI1MjU4NDY4OTUxMjA3NzI1NyI+IlNpc3RlbSBheWFybGFyxLFuZGEsIFTJmXRiaXFsyZlyZMmZIHbJmSBFbmRpcmlsbWnFn2zJmXJkyZkgZGVmb2x0dSB0yZltaXpsyZl5aW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlQWN0aXZpdHkiIG1zZ2lkPSI3NDg2ODc2MTQ3NzUxODAzMzMzIj4iRsmZYWxpeXnJmXQgc2XDp2luIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlVXNiQWN0aXZpdHkiIG1zZ2lkPSI2ODk0NzQ4NDE2MDczNTgzNTA5Ij4iVVNCIGNpaGF6IMO8w6fDvG4gdMmZdGJpcSBzZcOnaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub0FwcGxpY2F0aW9ucyIgbXNnaWQ9IjI5OTE4MTQyNzM5MzY1MDQ2ODkiPiJIZcOnIGJpciB0yZl0YmlxIGJ1IMmZbcmZbGl5eWF0xLEgYXBhcmEgYmlsbWlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFlcnJfdGl0bGUiIG1zZ2lkPSIxOTA1ODAwNTYwMzE3MTM3NzUyIj48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFlcnJfYXBwbGljYXRpb24iIG1zZ2lkPSI5MzI2Mjg0ODgwMTMwOTI3NzYiPiJUyZnJmXNzw7xmIGtpLCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IGRheWFuZMSxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFlcnJfcHJvY2VzcyIgbXNnaWQ9IjQ1MDcwNTg5OTcwMzU2OTc1NzkiPiJUyZnJmXNzw7xmIGtpLCA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz4gcHJvc2VzaSBkYXlhbmTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfdGl0bGUiIG1zZ2lkPSI0MzUxOTQ4NDgxNDU5MTM1NzA5Ij48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hY3Rpdml0eV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjE5MDQ0NzcxODkwNTcxOTkwNjYiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUyJHM8L3hsaWZmOmc+IGNhdmFiIHZlcm1pci5cblxuT251IGJhxJ9sYW1hcSBpc3TJmXlpcnNpbml6PyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hY3Rpdml0eV9wcm9jZXNzIiBtc2dpZD0iNTc3NjIwOTg4MzI5OTA4OTc2NyI+Ijx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4gYWt0aXZpdGlzaSBjYXZhYiB2ZXJtaXIuIFxuXG5PbnUgYmHEn2xhbWFxIGlzdMmZeWlyc2luaXo/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX2FwcGxpY2F0aW9uX3Byb2Nlc3MiIG1zZ2lkPSI4OTQxNzU3NjA3MzQwNDgxMDU3Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiBjYXZhYiB2ZXJtaXIuIE9udSBiYcSfbGFtYXEgaXN0yZl5aXJzaW5pej8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfcHJvY2VzcyIgbXNnaWQ9IjY1MTMyMDk4NzQ4ODA1MTcxMjUiPiJQcm9zZXMgPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+IGNhdmFiIHZlcm1pci4gXG4gXG4gT251IGJhxJ9sYW1hcSBpc3TJmXlpcnNpbml6PyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcmNlX2Nsb3NlIiBtc2dpZD0iODM0NjA3MjA5NDUyMTI2NTYwNSI+Ik9LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVwb3J0IiBtc2dpZD0iNDA2MDIxODI2MDk4NDc5NTcwNiI+IsWeaWthecmZdCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FpdCIgbXNnaWQ9IjcxNDcxMTgyMTcyMjYzMTc3MzIiPiJHw7Z6bMmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2VicGFnZV91bnJlc3BvbnNpdmUiIG1zZ2lkPSIzMjcyNzU4MzUxMTM4MTIyNTAzIj4iQnUgc8mZaGlmyZkgeWFyYXJzxLF6bGHFn8SxYi5cblxuQmHEn2xhbWFxIGlzdMmZeWlyc2l6PyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX3RpdGxlIiBtc2dpZD0iMTU0Nzk5Nzc4MDUwNjcxMzU4MSI+IlTJmXRiaXEgecO2bmzJmW5kaXJpbGRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoX3dhcm5pbmdfcmVwbGFjZSIgbXNnaWQ9IjYyMDI0OTg5NDk5NzAyODE0MTIiPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+IGluZGkgw6dhbMSxxZ/EsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoX3dhcm5pbmdfb3JpZ2luYWwiIG1zZ2lkPSIxODgxMDIwMjMwMjE2Njg2ODMiPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+IGlsayBiYcWfbGFkxLFsZMSxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9zY2FsZSIgbXNnaWQ9IjMyMDI5NTU2Njc2NzU5NDQ0OTkiPiJNaXF5YXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fY29tcGF0X21vZGVfc2hvdyIgbXNnaWQ9IjQwMTM4Nzg4NzY0ODY2NTU4OTIiPiJIyZltacWfyZkgZ8O2c3TJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fY29tcGF0X21vZGVfaGludCIgbXNnaWQ9IjEwNjQ1MjQwODQ1NDMzMDQ0NTkiPiJCdW5sYXLEsSBTaXN0ZW0gYXlhcmxhcsSxbmRhIHllbmlkyZluIGFrdGl2bMmZxZ9kaXIgWcO8a2zJmW5tacWfICZndDsgVMmZdGJpcWzJmXIgJmd0Oy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXZfYXBwbGljYXRpb24iIG1zZ2lkPSIzMzA3MjA5MTkyMTU1NDQyODI5Ij4iVMmZdGJpcSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IChwcm9zZXMgPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUyJHM8L3hsaWZmOmc+KSBTdHJpY3RNb2RlIHNpeWFzyZl0aW5pIHBvemR1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtdl9wcm9jZXNzIiBtc2dpZD0iNTEyMDM5NzAxMjA0NzQ2MjQ0NiI+Ijx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiBwcm9zZXNpIFN0cmljdE1vZGUgc2l5YXPJmXRpbmkgcG96ZHUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfdGl0bGUiIG1zZ2lkPSIxNTg0MTkyMjg1NDQxNDA1NzQ2Ij4iQW5kcm9pZCB0yZlrbWlsbMmZxZ9kaXJpbGlyLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfYXBrIiBtc2dpZD0iNzkwNDA0MjY4MjExMTUyNjE2OSI+Ijx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JTIkZDwveGxpZmY6Zz4gyZlkZMmZZMmZbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiUxJGQ8L3hsaWZmOmc+IHTJmXRiaXEgb3B0aW1hbGxhxZ/EsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfc3RhcnRpbmdfYXBwcyIgbXNnaWQ9IjQ1MTQ2NDUxNjM0NjkyNjcxMyI+IlTJmXRiaXFsyZlyIGJhxZ9sYWTEsWzEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfY29tcGxldGUiIG1zZ2lkPSIxNDA1OTU0NzU0MTEyOTk5MjI5Ij4iWcO8a2zJmW3JmSBiYcWfYSDDp2F0xLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9ub3RpZmljYXRpb24iIG1zZ2lkPSI5MDg3MDYzOTg1Nzc2NjI2MTY2Ij4iPHhsaWZmOmcgaWQ9IkFQUCI+JTEkczwveGxpZmY6Zz4gw6dhbMSxxZ/EsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfbm90aWZpY2F0aW9uX2RldGFpbCIgbXNnaWQ9IjE3MjE2ODE3NDE2MTc4OTg4NjUiPiJUyZl0YmlxyZkga2XDp23JmWsgw7zDp8O8biB0b3h1bnVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X3N3aXRjaGVyX3RpdGxlIiBtc2dpZD0iNzE1MzE2NzA4NTQwMzI5ODE2OSI+IlTJmXRiaXFsyZlyyZkga2XDp2lsc2luPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9zd2l0Y2hlcl90ZXh0IiBtc2dpZD0iNzAyMjYzMTkyNDUzNDQwNjQwMyI+IkJpciB0yZl0YmlxIGFydMSxcSBpxZ9syZl5aXIuIERpZ8mZcmluaSBiYcWfbGF0bWFxIMO8w6fDvG4gb251IGRheWFuZMSxcm1hbMSxc8SxbsSxei4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvbGRfYXBwX2FjdGlvbiIgbXNnaWQ9IjQ5MzEyOTE3MjIzODU2NjI4MiI+Ijx4bGlmZjpnIGlkPSJPTERfQVBQIj4lMSRzPC94bGlmZjpnPiBiw7ZsbcmZc2luyZkgcWF5xLFkxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkX2FwcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIwODIwOTQyNzU1ODAzNTgwNDkiPiJZZW5pIHTJmXRiaXFpIGJhxZ9sYXRtYXnEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmV3X2FwcF9hY3Rpb24iIG1zZ2lkPSI1NDcyNzU2OTI2OTQ1NDQwNzA2Ij4iPHhsaWZmOmcgaWQ9Ik9MRF9BUFAiPiUxJHM8L3hsaWZmOmc+IHTJmXRiaXFpbmkgYmHFn2xhZMSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5ld19hcHBfZGVzY3JpcHRpb24iIG1zZ2lkPSIxOTMyMTQzNTk4MzcxNTM3MzQwIj4iS8O2aG7JmSB0yZl0YmlxaSB5YWRkYSBzYXhsYW1hZGFuIGRheWFuZMSxcsSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZW5kVGV4dCIgbXNnaWQ9IjUyMDk4NzQ1NzE5NTk0NjkxNDIiPiJNyZl0biDDvMOnw7xuIMmZbcmZbGl5eWF0IHNlw6dpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9yaW5ndG9uZSIgbXNnaWQ9IjY4ODU0MjE0MDY4NDU3MzQ2NTAiPiJayZluZ2luIHPJmXMgZ8O8Y8O8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljIiBtc2dpZD0iNTQyMTY1MTE1NzEzODYyODE3MSI+Ik1lZGlhIGjJmWNtaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9tdXNpY19oaW50X3BsYXlpbmdfdGhyb3VnaF9ibHVldG9vdGgiIG1zZ2lkPSI5MTY1OTg0Mzc5Mzk0NjAxNTMzIj4iQmx1ZXRvb3RoIHZhc2l0yZlzaWzJmSBveW5hZMSxbMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9tdXNpY19oaW50X3NpbGVudF9yaW5ndG9uZV9zZWxlY3RlZCIgbXNnaWQ9IjgzMTA3Mzk5NjA5NzMxNTYyNzIiPiJTyZlzc2l6IHrJmW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2NhbGwiIG1zZ2lkPSIzOTQxNjgwMDQxMjgyNzg4NzExIj4iRGF4aWxpIHrJmW5nIHPJmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2JsdWV0b290aF9jYWxsIiBtc2dpZD0iMjAwMjg5MTkyNjM1MTE1MTUzNCI+IkJsdWV0b290aCB6yZluZyBoyZljbWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfYWxhcm0iIG1zZ2lkPSIxOTg1MTkxNjE2MDQyNjg5MTAwIj4iU2lxbmFsIHPJmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjI0MjIyNjU2NTY3NDQyNzY3MTUiPiJCaWxkaXJpxZ8gc8mZc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfdW5rbm93biIgbXNnaWQ9IjE0MDAyMTk2Njk3NzA0NDU5MDIiPiJIyZljbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX2JsdWV0b290aCIgbXNnaWQ9IjY1Mzg4OTQxNzcyNTU5NjQzNDAiPiJCbHVldG9vdGggaMmZY21pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2ljb25fZGVzY3JpcHRpb25fcmluZ2VyIiBtc2dpZD0iMzMyNjAwMzg0NzAwNjE2MjQ5NiI+IlrJmW5nIHPJmXNpIGfDvGPDvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX2luY2FsbCIgbXNnaWQ9Ijg4OTAwNzMyMTgxNTQ1NDMzOTciPiJayZluZyBoyZljbWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9tZWRpYSIgbXNnaWQ9IjQyMTczMTE3MTk2NjUxOTQyMTUiPiJNZWRpYSBoyZljbWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9ub3RpZmljYXRpb24iIG1zZ2lkPSI3MDQ0OTg2NTQ2NDc3MjgyMjc0Ij4iQmlsZGlyacWfIHPJmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfZGVmYXVsdCIgbXNnaWQ9IjM3ODk3NTg5ODAzNTc2OTY5MzYiPiJEZWZvbHQgcmlucXRvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX2RlZmF1bHRfd2l0aF9hY3R1YWwiIG1zZ2lkPSI4MTI5NTYzNDgwODk1OTkwMzcyIj4iRGVmb2x0IHJpbnF0b24gKDx4bGlmZjpnIGlkPSJBQ1RVQUxfUklOR1RPTkUiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX3NpbGVudCIgbXNnaWQ9Ijc5Mzc2MzQzOTI0MDg5NzcwNjIiPiJIZcOnIGJpcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV9waWNrZXJfdGl0bGUiIG1zZ2lkPSIzNTE1MTQzOTM5MTc1MTE5MDk0Ij4iWsmZbmcgc8mZc2zJmXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfdW5rbm93biIgbXNnaWQ9IjU0Nzc5MTk5ODg3MDE3ODQ3ODgiPiJOYW3JmWx1bSByaW5xdG9uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJ3aWZpX2F2YWlsYWJsZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY2NTQxMjM5ODc0MTgxNjg2OTMiPiJXaS1GaSDFn8mZYsmZa8mZc2kgbcO2dmN1ZGR1ciI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDE5MjQyNDQ4OTE2ODM5NzM4NiI+IldpLUZpIMWfyZliyZlryZlsyZlyaSBtw7Z2Y3VkZHVyIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJ3aWZpX2F2YWlsYWJsZV9kZXRhaWxlZCI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjE2MzQxMDE0NTAzNDMyNzczNDUiPiJXaS1GaSDFn8mZYsmZa8mZbmkgYcOnxLFuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3OTE1ODk1MzIzNjQ0MjkyNzY4Ij4iQcOnxLFxIFdpLUZpIMWfyZliyZlryZlsyZlyaSBtw7Z2Y3VkZHVyIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9hdmFpbGFibGVfc2lnbl9pbiIgbXNnaWQ9IjQwMjk0ODk3MTY2MDUyNTUzODYiPiJXaS1GaSDFn8mZYsmZa8mZc2luyZkgZGF4aWwgb2wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXR3b3JrX2F2YWlsYWJsZV9zaWduX2luIiBtc2dpZD0iODQ5NTE1NTU5MzM1ODA1NDY3NiI+IsWeyZliyZlryZl5yZkgZGF4aWwgb2x1biI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBuZXR3b3JrX2F2YWlsYWJsZV9zaWduX2luX2RldGFpbGVkICg4MDAwMDgxOTQxNDQ3OTc2MTE4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkIiBtc2dpZD0iNzkwNDIxNDIzMTY1MTU0NjM0NyI+IldpLUZpXCdhIHFvxZ91bG1hcSBhbMSxbm1hZMSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkX2RldGFpbGVkIiBtc2dpZD0iNTU0ODc4MDc3NjQxODMzMjY3NSI+IiBpbnRlcm5ldCBiYcSfbGFudMSxc8SxIGtleWZpeXnJmXRzaXpkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZGlhbG9nX3RpdGxlIiBtc2dpZD0iOTc2MTE3ODI2NTkzMjQ1MTciPiJXaS1GaSBEaXJlY3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF90dXJub25fbWVzc2FnZSIgbXNnaWQ9IjI5MDkyNTA5NDIyOTk2MjcyNDQiPiJXaS1GaSBEaXJlY3QgyZltyZlsaXl5YXTEsW7EsSBiYcWfbGF0LiBCdSBXaS1GaSBtw7zFn3TJmXJpL2hvdHNwb3R1IGJhxJ9sYXlhY2FxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZhaWxlZF9tZXNzYWdlIiBtc2dpZD0iMzc2MzY2OTY3NzkzNTYyMzA4NCI+IldpLUZpIERpcmVjdCBiYcWfbGFkxLFsYSBiaWxtyZlkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9lbmFibGVkX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIwNjgzMjE4ODE2NzM3MzQ4ODYiPiJXaS1GaSBEaXJlY3QgYWt0aXZkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9lbmFibGVkX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTYzODk0OTk1Mzk5Mzg5NDMzNSI+IkF5YXJsYXIgw7zDp8O8biB0b3h1bnVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMTY0NTI2NzI1OTI3MjgyOTU1OSI+IlHJmWJ1bCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVjbGluZSIgbXNnaWQ9IjIxMTIyMjU0NTE3MDYxMzc4OTQiPiLEsG10aW5hIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9pbnZpdGF0aW9uX3NlbnRfdGl0bGUiIG1zZ2lkPSIxMzE4OTc1MTg1MTEyMDcwNzM0Ij4iRMmZdsmZdG5hbcmZIGfDtm5kyZlyaWxkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ludml0YXRpb25fdG9fY29ubmVjdF90aXRsZSIgbXNnaWQ9IjQ5NTg4MDM5NDg2NTg1MzM2MzciPiJRb8WfdWxtYXEgw7zDp8O8biBkyZl2yZl0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZnJvbV9tZXNzYWdlIiBtc2dpZD0iNTcwMzg5MTc0NzMxOTUxNzY5Ij4iS2ltZMmZbjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF90b19tZXNzYWdlIiBtc2dpZD0iMjQ4OTY4OTc0NTIyMDQ0MDk5Ij4iS2ltyZk6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW50ZXJfcGluX21lc3NhZ2UiIG1zZ2lkPSI1OTIwOTI5NTUwMzY3ODI4OTcwIj4iVMmZbMmZYiBvbHVuYW4gUMSwTiBrb2R1IGRheGlsIGVkaW46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfc2hvd19waW5fbWVzc2FnZSIgbXNnaWQ9Ijg1MzA1NjMzMjM4ODA5MjEwOTQiPiJQxLBOOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MDEyOTgxMjU3NzQyMjMyNDc1Ij4iQnUgcGxhbsWfZXQgPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiBjaWhhesSxbmEgcW/Fn3VsYW4gemFtYW4gV2ktRmkgxZ/JmWLJmWvJmXNpbmTJmW4gbcO8dsmZcXHJmXRpIGF5csSxbG3EscWfIG9sYWNhcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzM2MzkwNzIxMzc4NzQ2OTE1MSI+IkJ1IHRlbGVmb24gPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiBjaWhhesSxbmEgcW/Fn3VsYW4gemFtYW4gV2ktRmkgxZ/JmWLJmWvJmXNpbmTJmW4gbcO8dsmZcXHJmXRpIGF5csSxbG3EscWfIG9sYWNhcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9jaGFyYWN0ZXIiIG1zZ2lkPSIzMzY1NTUwMTIwNjE3NzAxNzQ1Ij4iU2ltdm9sIGRheGlsIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF90aXRsZSIgbXNnaWQ9IjcyOTY2MTI3ODExMjg5MTc3MTkiPiJTTVMgbWVzYWogZ8O2bmTJmXJpbGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfbWVzc2FnZSIgbXNnaWQ9IjM4Njc4OTkxNjk2NTE0OTY0MzMiPiImbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyDDp294IHNheWRhIFNNUyBtZXNhaiBnw7ZuZMmZcmlyLiBCdSB0yZl0YmlxaW4gbWVzYWogZ8O2bmTJmXJtyZl5yZkgZGF2YW0gZXRtyZlzaW7JmSBpY2F6yZkgdmVyaXJzaW5pej8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF95ZXMiIG1zZ2lkPSIzNjYzNzI1OTkzODU1ODE2ODA3Ij4ixLBjYXrJmSB2ZXJpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX25vIiBtc2dpZD0iNjI1NDM4NTYxMzk1NTM0OTgyIj4iUsmZZGQgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fbWVzc2FnZSIgbXNnaWQ9IjE2NDU0MzY0NjYyODUzMTA4NTUiPiImbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0O8KgJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkRFU1RfQUREUkVTUyI+JTIkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7IMO8bnZhbsSxbmEgbWVzYWogZ8O2bmTJmXJtyZlrIGlzdMmZeWlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSIzNDkyMDI1NzE5ODY4MDc4NDU3Ij4iQnUsIG1vYmlsIGhlc2FixLFuxLF6YSAiPGZvbnQgZmdjb2xvcj0iI2ZmZmZiMDYwIj4iyZlsYXbJmSB0YXJpZmzJmXJpbiB0yZl0YmlxIG9sdW5tYXPEsSI8L2ZvbnQ+IiBpbMmZIG7JmXRpY8mZbMmZbsmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfcHJlbWl1bV9zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSI1NTIzODI2MzQ5MTA1MTIzNjg3Ij48Zm9udCBmZ2NvbG9yPSIjZmZmZmIwNjAiPiJCdSBtb2JpbCBoZXNhYsSxbsSxemRhIMO2ZMmZbmnFn2zJmXLJmSBzyZliyZliIG9sYWNhcS4iPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9hbGxvdyIgbXNnaWQ9IjQ0NTg4Nzg2MzcxMTEwMjM0MTMiPiJHw7ZuZMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fZGVueSIgbXNnaWQ9IjI5MjczODk4NDAyMDkxNzA3MDYiPiJMyZnEn3YgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9yZW1lbWJlcl9jaG9pY2UiIG1zZ2lkPSI1Mjg5NTM4NTkyMjcyMjE4MTM2Ij4iTcmZbmltIHNlw6dpbWltaSB5YWRkYSBzYXhsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX3VuZG9faW5zdHJ1Y3Rpb24iIG1zZ2lkPSI0OTYwOTQ0MTMzMDUyMjg3NDg0Ij4iQnVudSBzb25yYSBBeWFybGFyZGEgZMmZeWnFn8mZIGJpbMmZcnNpbml6wqAmZ3Q7wqBUyZl0YmlxbMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fYWx3YXlzX2FsbG93IiBtc2dpZD0iMzI0MTE4MTE1NDg2OTQ5MzM2OCI+IkjJmW1pxZ/JmSBpY2F6yZkgdmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9uZXZlcl9hbGxvdyIgbXNnaWQ9IjQ0Njk5Mjc2NTc3NDI2OTY3MyI+Ikhlw6cgdmF4dCBpY2F6yZkgdmVybcmZeWluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX3JlbW92ZWRfdGl0bGUiIG1zZ2lkPSI2MjI3NzEyMzE5MjIzMjI2MTg1Ij4iU0lNIGthcnQgw6fEsXhhcsSxbGTEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9yZW1vdmVkX21lc3NhZ2UiIG1zZ2lkPSIyMzMzMTY0NTU5OTcwOTU4NjQ1Ij4iQ2loYXrEsW7EsXrEsSBldGliYXJsxLEgU0lNIGthcnQgaWzJmSBiYcWfbGFkYW5hIGtpbWkgbW9iaWwgxZ/JmWLJmWvJmSDJmWzDp2F0bWF6IG9sYWNhcS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fZG9uZV9idXR0b24iIG1zZ2lkPSI4Mjc5NDk5ODkzNjk5NjM3NzUiPiJCaXRkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9hZGRlZF90aXRsZSIgbXNnaWQ9IjM3MTk2NzA1MTI4ODk2NzQ2OTMiPiJTxLBNIGthcnQgyZlsYXbJmSBlZGlsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fYWRkZWRfbWVzc2FnZSIgbXNnaWQ9IjY1OTk5NDUzMDExNDEwNTAyMTYiPiJNb2JpbCDFn8mZYsmZa8mZecmZIHFvxZ91bG1hcSDDvMOnw7xuIGNpaGF6xLFuxLF6xLEgeWVuaWTJmW4gYmHFn2xhZMSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVzdGFydF9idXR0b24iIG1zZ2lkPSI0NzIyNDA3ODQyODE1MjMyMzQ3Ij4iWWVuaWTJmW4gYmHFn2xhdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjgzNDkzNjI2MjMwNjg4MTkyOTUiPiJWYXh0IGF5YXJsYXnEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kaWFsb2dfdGl0bGUiIG1zZ2lkPSI1ODc5NDUwNjU5NDUzNzgyMjc4Ij4iVGFyaXhpIHF1cmHFn2TEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3RpbWVfc2V0IiBtc2dpZD0iNTc3NzA3NTYxNDMyMTA4Nzc1OCI+IkF5YXJsYXnEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3RpbWVfZG9uZSIgbXNnaWQ9IjI1MDc2ODM3NTE3NTkzMDg4MjgiPiJIYXrEsXJkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybXNfbmV3X3Blcm1fcHJlZml4IiBtc2dpZD0iODI1Nzc0MDcxMDc1NDMwMTQwNyI+PGZvbnQgc2l6ZT0iMTIiIGZnY29sb3I9IiNmZjMzYjVlNSI+IllFTsSwOiAiPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybXNfZGVzY3JpcHRpb25fYXBwIiBtc2dpZD0iNTEzOTgzNjE0MzI5MzI5OTQxNyI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4gdMmZcsmZZmluZMmZbiB0yZltaW4gZWRpbGliLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX3Blcm1pc3Npb25zIiBtc2dpZD0iNzI4MzM1NzcyODIxOTMzODExMiI+Ikhlw6cgYmlyIGljYXrJmSB0yZlsyZliIG9sdW5tdXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtX2Nvc3RzX21vbmV5IiBtc2dpZD0iNDkwMjQ3MDMyNDE0MjE1MTExNiI+ImJ1bnVubGEgc2l6ZMmZbiB4yZlyYyB0dXR1bGEgYmlsyZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfYWN0aXZpdHlfdGl0bGUiIG1zZ2lkPSI0NDY1MDU1MTU3MjA5NjQ4NjQxIj4iVVNCIHRvcGx1IHlhZGRhxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV90aXRsZSIgbXNnaWQ9IjU5MDE0NTkwNDEzOTg3NTE0OTUiPiJVU0IgcW/Fn3VsdWR1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzMwODUzODA5NDMxNjQ3NzgzOSI+IlNpeiBVU0IgdmFzaXTJmXNpbMmZIGtvbXDDvHRlcmUgYmHEn2xhbmTEsW7EsXouIEtvbXDDvHRlciB2yZkgQW5kcm9pZGluaXppbiBVU0IgeWFkZGHFn8SxIGFyYXPEsW5kYSBmYXlsbGFyxLEga29weWFsYW1hcSBpc3TJmXlpcnNpbml6c8mZLCBhxZ9hxJ/EsWRha8SxIGTDvHltyZl5yZkgdG94dW51bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA1MzUxMDAwNDQ2MDM3ODExIj4iS29tcMO8dGVyaW5pesmZIFVTQiBpbMmZIHFvxZ91bG11c3VudXouIEZheWxsYXLEsSBBbmRyb2lkaW5pemluIFNEIGthcnTEsSBpbMmZIGtvbXDDvHRlcmluaXogYXJhc8SxbmRhIGtvcHlhbGFtYXEgaXN0yZl5aXJzaW5penPJmSBhxZ9hxJ/EsWRha8SxIGTDvHltyZl5yZkgdG94dW51bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9idXR0b25fbW91bnQiIG1zZ2lkPSIxMDUyMjU5OTMwMzY5NTA4MjM1Ij4iVVNCIHlhZGRhxZ/EsSBha3RpdmzJmcWfZGlyaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMwMTcwNDUyMTczNjU1NDA2NTgiPiJVU0IgeWFkZGHFn8SxbsSxesSxIFVTQiBrw7x0bMmZdmkgeWFkZGHFn8SxIMO8w6fDvG4gaXN0aWZhZMmZIGVkyZluIHphbWFuIHByb2JsZW0geWFyYW5kxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfZXJyb3JfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4NzYwMTg1MTI3MTY5NzAzMTMiPiJTRCBrYXJ0xLFuxLF6xLEgVVNCIGvDvHRsyZl2aSB5YWRkYcWfxLEgw7zDp8O8biBpc3RpZmFkyZkgZWTJmW4gemFtYW4gcHJvYmxlbSB5YXJhbmTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4MTc1ODkyNTU0NzU3MjE2NTI1Ij4iVVNCIHFvxZ91bHVkdXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkzOTgyMjc4MzgyODE4Mzc2MyI+IkZheWxsYXLEsSBrb21ww7x0ZXJpbml6yZkga29weWFsYW1hcSB2yZkgeWEga29tcMO8dGVyaW5pemTJmW4ga29weWFsYW1hcSDDvMOnw7xuIHRveHVudW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMzM2MDU4Mzk2NjYzNTE2MDE3Ij4iVVNCIHlhZGRhxZ/EsSBzw7ZuZMO8csO8biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3Bfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIxNjU2ODUyMDk4NTU1NjIzODIyIj4iVVNCIHlhZGRhxZ/EsSBzw7ZuZMO8cm3JmWsgw7zDp8O8biB0b3h1bnVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfdGl0bGUiIG1zZ2lkPSI2NjAxMjk4NTE3MDg3NzU4NTMiPiJVU0IgeWFkZGHFnyBpc3RpZmFkyZkgb2x1bnVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQyNjQwMjUyODA3NzcyMTk1MjEiPiJVU0IgeWFkZGHFn8SxIHPDtm5kw7xybcmZZMmZbiDDtm5jyZkgQW5kcm9pZFwnaW4gVVNCIHlhZGRhxZ/EsW7EsSBrb21ww7x0ZXJkyZluIGRlbW9udGFqIGV0ZGl5aW5pesmZICjDp8SxeGFyZMSxxJ/EsW7EsXphKSDJmW1pbiBvbHVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgwNDM5Njk3ODI0NjA2MTMxMTQiPiJVU0IgeWFkZGHFn8SxIHPDtm5kw7xybcmZZMmZbiDDtm5jyZkgQW5kcm9pZFwnaW4gVVNCIHlhZGRhxZ/EsW7EsSBrb21ww7x0ZXJkyZluIGRlbW9udGFqIGV0ZGl5aW5pesmZICjDp8SxeGFyZMSxxJ/EsW7EsXphKSDJmW1pbiBvbHVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfYnV0dG9uX21vdW50IiBtc2dpZD0iNzA2MDIxODAzNDkwMDY5NjAyOSI+IlVTQiB5YWRkYcWfxLFuxLEgc8O2bmTDvHIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX2Vycm9yX21lc3NhZ2UiIG1zZ2lkPSIxOTcwMzc0ODk4MjYzMDYzODM2Ij4iVVNCIHlhZGRhxZ/EsSBzw7ZuZMO8csmZbiB6YW1hbiBwcm9ibGVtIG9sZHUuIFVTQiBob3N0dSBkZW1vbnRhaiBldG3JmW5pemkgeW94bGF5xLFuIHbJmSB5ZW5pZMmZbiBjyZloZCBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190aXRsZSIgbXNnaWQ9Ijk2MzAzOTAzMzQ3MDQ3ODY5NyI+IlVTQiB5YWRkYcWfxLEgYWt0aXZsyZnFn2RpcmluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX2NvbmZpcm1fa2lsbF9zdG9yYWdlX3VzZXJzX3RleHQiIG1zZ2lkPSI1MTAwNDI4NzU3MTA3NDY5NDU0Ij4iVVNCIHlhZGRhxZ/EsSBha3RpdmzJmcWfZGlyc8mZbml6LCBpc3RpZmFkyZkgZXRkaXlpbml6IGLJmXppIHTJmXRiaXFsyZlyIGRheWFuYSBiaWzJmXIgdsmZIFVTQiB5YWRkYcWfIGRlYWt0aXYgZWRpbMmZbsmZIHHJmWTJmXIgacWfbMmZbcmZecmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfZXJyb3JfdGl0bGUiIG1zZ2lkPSI3MzIzNjU4NDY5NjI2NTE0MjA3Ij4iVVNCIMmZbcmZbGl5eWF0xLEgdcSfdXJzdXpkdXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfb2siIG1zZ2lkPSI3Mzc2OTUzMTY3MDM5ODY1NzAxIj4iT0siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfbXRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjM2OTk5MTMwOTczOTE1NTAzOTQiPiJNZWRpYSBjaWhhesSxIGtpbWkgcW/Fn3VsZHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjE5NjA4MTcxOTIyMTYwNjQ4MzMiPiJLYW1lcmEga2ltaSBiYcSfbGFuxLFsZMSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2NkX2luc3RhbGxlcl9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2Nzc0NzEyODI3ODkyMDkwNzU0Ij4iUXVyYcWfZMSxcsSxY8SxIGtpbWkgcW/Fn3VsdWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9Ijc4NDgyMzY5NzQwODc2NTM2NjYiPiJVU0IgYWtzZXN1YXJhIHFvxZ91bGR1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMjI5MDg1OTM5OTk4MzcyMDI3MSI+IkRpZ8mZciBVU0Igc2XDp2ltbMmZcmkgw7zDp8O8biB0b3h1bnVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI5MDIwMDkyMTk2MDYxMDA3MjYyIj4iVVNCIHlhZGRhxZ/EsW5hIGZvcm1hdCBhdMSxbHPEsW4/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzY0ODQxNTkyMTUyNjUyNjA2OSI+IlNEIGthcnQgZm9ybWF0IGVkaWxzaW4/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkzNDAxNjg1MzQyNTc2MTA3OCI+IlVTQiB5YWRkYcWfxLFuxLF6ZGEgeWVybMmZxZ9kaXJpbG1pxZ8gYsO8dMO8biBmYXlsbGFyIHNpbGluyZljyZlrLiBCdSBhZGTEsW0gZ2VyaSBkw7Zuw7xsbcmZemRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0MTMxODk1MDI3NTQzODMwIj4iS2FydMSxbsSxemRha8SxIGLDvHTDvG4gbcmZbHVtYXRsYXIgaXTJmWPJmWsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X2J1dHRvbl9mb3JtYXQiIG1zZ2lkPSI0MTMxMDY0NTYwMTI3NDc4Njk1Ij4iRm9ybWF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2NzI5MDQ0Nzc4OTQ5MTg5OTE4Ij4iVVNCIHNhemxhbWEgcW/Fn3VsdWR1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkYl9hY3RpdmVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIxMDE2NjU0NjI3NjI2NDc2MTQyIj4iVVNCIGRlYmFxxLEgZGVha3RpdmFzaXlhIGV0bcmZayDDvMOnw7xuIHRveHVudW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2lucHV0X21ldGhvZCIgbXNnaWQ9IjQ2NTMzODczMzY3OTEyMjI5NzgiPiJEYXhpbGV0bcmZIG1ldG9kdW51IHNlw6dpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbmZpZ3VyZV9pbnB1dF9tZXRob2RzIiBtc2dpZD0iOTA5MTY1MjE1NzcyMjQ5NTExNiI+IkRheGlsZXRtyZkgw7xzdWxsYXLEsW7EsSBheWFybGF5xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNjIwMzExMjQ3ODA5NTExNzYyNSI+IkZpemlraSBrbGF2aWF0dXJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGFyZHdhcmUiIG1zZ2lkPSI3NTE3ODIxMDg2ODg4OTkwMjc4Ij4iSGFyZHdhcmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3Rfa2V5Ym9hcmRfbGF5b3V0X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjE0MDczNjcwMTcyNjMwMzA3NzMiPiJLbGF2aWF0dXJhIHN4ZW1pIHNlw6dpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDY1OTA3NzAwNDQ5MjU3MDYzIj4iS2xhdmlhdHVyYSB0yZlydGliYXTEsSBzZcOnbcmZayDDvMOnw7xuIHRveHVudW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFzdF9zY3JvbGxfYWxwaGFiZXQiIG1zZ2lkPSI1NDMzMjc1NDg1NDk5MDM5MTk5Ij4iIEFCQ8OHREXGj0ZHxJ5IWEnEsEpLUUxNTk/DllBSU8WeVFXDnFZZWiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhc3Rfc2Nyb2xsX251bWVyaWNfYWxwaGFiZXQiIG1zZ2lkPSI0MDMwMTcwNTI0NTk1MTIzNjEwIj4iIDAxMjM0NTY3ODlBQkPDh0RFxo9GR8SeSMSwSUpLTE1OT8OWUFFSU8WeVFXDnFZXWFlaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuZGlkYXRlc19zdHlsZSIgbXNnaWQ9IjQzMzM5MTMwODk2MzcwNjIyNTciPjx1PiJuYW1pesmZZGzJmXIiPC91Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNDQ5ODE2MDA1MzUxNDY4NTYwIj4iVVNCIHlhZGRhxZ8gaGF6xLFybGFuxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU0NTc2MDM0MTg5NzA5OTQwNTAiPiJTRCBrYXJ0IGhhesSxcmxhbsSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9jaGVja2luZ19ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjgyODczMTk4ODI5MjY3MzcwNTMiPiJTyZlodmzJmXIgeW94bGFuxLFsxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3Nzg4MDQwNzQ1Njg2MjI5MzA3Ij4iQm/FnyBVU0IgeWFkZGHFn8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzgwNDc3ODM4MjQxMjEyOTk3Ij4iQm/FnyBTRCBrYXJ0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzg0MDEyMTA2NzQyNzI2OTUwMCI+IlVTQiB5YWRkYcWfIGJvxZ9kdXIgdsmZIHlhIHNpc3RlbSB0yZlyyZlmaW5kyZluIGTJmXN0yZlrbMmZbm3JmXnJmW4gZmF5bCBzaXN0ZW1pbsmZIG1hbGlrZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODY0MTA2NTY0MTc4NjkyMzYwNCI+IlNEIGthcnQgYm/Fn2R1ciB2yZkgeWEgc2lzdGVtIHTJmXLJmWZpbmTJmW4gZMmZc3TJmWtsyZlubcmZecmZbiBmYXlsIHNpc3RlbWluyZkgbWFsaWtkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIyMDkwMDQ2NzY5NTMyNzEzNTYzIj4iWsmZZMmZbGkgVVNCIHlhZGRhxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjQxMDcyMzkwNjAxOTEwMDE4OSI+IlrJmWTJmWxpIFNEIGthcnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMTc5NTkxNzU3ODM5NTMzMzI4MCI+IlNEIHlhZGRhxZ8gesmZZMmZbMmZbmliLiBPbnUgZm9ybWF0IGV0bcmZecmZIMOnYWzEscWfxLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE3NTM4OTg1Njc1MjU1NjgyNTMiPiJTRCBrYXJ0IHrJmWTJmWzJmW5pYi4gT251IGZvcm1hdCBldG3JmXnJmSDDp2FsxLHFn8Sxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMTY2MTY4MzAzMTMzMDk1MTA3MyI+IlVTQiB5YWRkYcWfxLEgZ8O2emzJmW5pbG3JmWTJmW4gw6fEsXhhcsSxbGTEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NzIxNTI4ODI2MDQ0MDc4MzciPiJTRCBrYXJ0IGfDtnpsyZluaWxtyZlkyZluIMOnxLF4YXLEsWxkxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MzI5ODQ4ODE5ODY1NTk0MjQxIj4iTcmZbHVtYXQgaXRraXNpbmluIHFhcsWfxLFzxLFuxLEgYWxtYXEgw7zDp8O8biBVU0IgeWFkZGHFn8SxIMOnxLF4YXJtYXpkYW4gyZl2dsmZbCBvbnUgZGVtb250YWogZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcyNjAxODMyOTM3NDc0NDgyNDEiPiJEYXRhIGl0a2lzaW5pbiBxYXLFn8Sxc8SxbsSxIGFsbWFxIMO8w6fDvG4gU0Qga2FydMSxIMOnxLF4YXJtYWRhbiDDtm5jyZkgZGVtb250YWogZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzOTY3OTczODkzMjcwMzYwMjMwIj4iVVNCIHlhZGRhxZ8gw6fEsXhhcm1hcSDDvMOnw7xuIHTJmWhsw7xryZlzaXpkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY3Mjk4MDExMzA3OTA2MTYyMDAiPiJTRCBrYXJ0IHTJmWhsw7xryZlzaXogw6fEsXhhcsSxbGEgYmlsyZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MTQyMTk1MzYxNjA2NDkzNTMwIj4iU2l6IFVTQiB5YWRkYcWfxLEgdMmZaGzDvGvJmXNpeiDDp8SxeGFyYSBiaWzJmXJzaW5pei4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTY4ODQxMjc4MTM4Mzc3NjA0Ij4iU2l6IFNEIGthcnTEsSB0yZlobMO8a8mZc2l6IMOnxLF4YXJhIGJpbMmZcnNpbml6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0NDg2Mzc3MjMwMTQwMjI3NjUxIj4iU2lsaW5tacWfIFVTQiB5YWRkYcWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODkwMjUxODAzMDQwNDM4MTMxOCI+IlNEIGthcnQgw6fEsXhhcsSxbGTEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjY5MjExMjYxNjI1ODA1NzQxNDMiPiJVU0IgeWFkZGHFnyDDp8SxeGFyxLFsZMSxLiBZZW5pIG1lZGlhIMmZbGF2yZkgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM4NzAxMjA2NTI5ODM2NTk2NDEiPiJTRCBrYXJ0IMOnxLF4YXLEsWxkxLEuIFllbmlzaW5pIGRheGlsIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfbGlzdF9lbXB0eSIgbXNnaWQ9IjE2NzUzODgzMzA3ODY4NDEwNjYiPiJVecSfdW4gZ8mZbMmZbiBmyZlhbGl5ecmZdCB0YXDEsWxtYWTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BrZ1VzYWdlU3RhdHMiIG1zZ2lkPSI4Nzg3MzUyMDc0MzI2NzQ4ODkyIj4ia29tcG9uZW50IGlzdGlmYWTJmXNpIHN0YXRpc3Rpa2FzxLFuxLEgZ8O8bmPJmWxsyZl5aXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wa2dVc2FnZVN0YXRzIiBtc2dpZD0iMTEwNjYxMjQyNDI1NDI3NzYzMCI+IlTJmXRiaXHJmSB0b3BsYW5txLHFnyBpc3RpZmFkyZkgc3RhdGlzdGlrYXPEsW7EsSBkyZl5acWfbcmZecmZIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgb2x1bm11ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvcHlQcm90ZWN0ZWREYXRhIiBtc2dpZD0iNDM0MTAzNjMxMTIxMTQwNjY5MiI+Im3JmXptdW51IGtvcHlhbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzOTA2OTcxMjQyODgzMTc4MzEiPiJUyZl0YmlxyZkga29udGVudGkga29weWFsYW1hcSDDvMOnw7xuIGRlZm9sdCBrb250ZXluZXIgc2VydmlzaW5pIMOnYcSfxLFybWFxIGljYXrJmXNpIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgZWRpbG1pci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JvdXRlX21lZGlhX291dHB1dCIgbXNnaWQ9IjE2NDIwMjQ0NTU3NTA0MTQ2OTQiPiJNZWRpYSDDp8SxeMSxxZ/EsW7EsSB5w7ZubMmZbmRpcmlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfcm91dGVfbWVkaWFfb3V0cHV0IiBtc2dpZD0iNDkzMjgxODc0OTU0NzI0NDM0NiI+IlTJmXRiaXHJmSBtZWRpYSDDp8SxeMSxxZ/EsW7EsSBkaWfJmXIgeGFyaWNpIGNpaGF6bGFyYSB5w7ZubMmZbmRpcm3JmWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc19rZXlndWFyZF9zZWN1cmVfc3RvcmFnZSIgbXNnaWQ9Ijc1NjU1NTIyMzc5Nzc4MTUwNDciPiJLZXlndWFyZCB0yZlobMO8a8mZc2l6IHlhZGRhxZ9hIMOnxLF4xLHFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc19rZXlndWFyZF9zZWN1cmVfc3RvcmFnZSIgbXNnaWQ9IjU4NjYyNDU0ODQzMDMyODU3NjIiPiJUyZl0YmlxyZkga2VndWFyZCB0yZlobMO8a8mZc2l6IHlhZGRhxZ9hIMOnYXRtYcSfYSBpY2F6yZkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sX2tleWd1YXJkIiBtc2dpZD0iMTcyMTk1MTg0MjA3ODI4Mzg3Ij4iS2xhdmlhdHVyYSBraWxpZGluaW4gZ8O2csO8bG3JmXNpbmkgdsmZIGdpemzJmWRpbG3JmXNpbmkgaWRhcsmZIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sX2tleWd1YXJkIiBtc2dpZD0iMzA0MzczMjI5MDUxODYyOTA2MSI+IlTJmXRiaXHJmSBrZWd1YXJkxLEgaWRhcsmZIGV0bcmZayBpY2F6yZlzaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0dXRvcmlhbF9kb3VibGVfdGFwX3RvX3pvb21fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjQwNzA0MzMyMDgxNjAwNjM1MzgiPiJab29tIG7JmXphcsmZdGkgw7zDp8O8biBpa2kgZMmZZsmZIHRveHVudW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnYWRnZXRfaG9zdF9lcnJvcl9pbmZsYXRpbmciIG1zZ2lkPSI0ODgyMDA0MzE0OTA2NDY2MTYyIj4iV2lkZ2V0IMmZbGF2yZkgZWRpbMmZIGJpbG3JmWRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZ28iIG1zZ2lkPSI4MzIwODQ1NjUxNzM3MzY5MDI3Ij4iR2V0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9zZWFyY2giIG1zZ2lkPSI2NTgxMTAyNzE4MjI4MDc4MTEiPiJBeHRhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fc2VuZCIgbXNnaWQ9IjIzMTYxNjY1NTYzNDkzMTQ0MjQiPiJHw7ZuZMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fbmV4dCIgbXNnaWQ9IjMxMzg4NDM5MDQwMDk4MTM4MzQiPiJOw7Z2YsmZdGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX2RvbmUiIG1zZ2lkPSI4OTcxNTE2MTE3OTEwOTM0NjA1Ij4iVGFtYW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3ByZXZpb3VzIiBtc2dpZD0iMTQ0MzU1MDAzOTI1MDEwNTk0OCI+IsaPdnbJmWxraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZGVmYXVsdCIgbXNnaWQ9IjI4NDA5MjE4ODU1NTgwNDU3MjEiPiLEsGNyYSBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlhbF9udW1iZXJfdXNpbmciIG1zZ2lkPSI1Nzg5MTc2NDI1MTY3NTczNTg2Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JXM8L3hsaWZmOmc+IGlzdGlmYWTJmSBldG3JmWtsyZlcbm7Dtm1yyZkgecSxxJ/EsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfY29udGFjdF91c2luZyIgbXNnaWQ9IjQ5NDc0MDUyMjY3ODgxMDQ1MzgiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lczwveGxpZmY6Zz5pc3RpZmFkyZkgZWTJmXLJmWsga29udGFrdCB5YXJhZMSxblxuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnRfY3JlZGVudGlhbHNfcGVybWlzc2lvbl9tZXNzYWdlX2hlYWRlciIgbXNnaWQ9IjIxMDYxMDM4MTc5Mzc4NTk2NjIiPiJBxZ9hxJ/EsWRha8SxIGJpciB2yZkgeWEgZGFoYSDDp294IHTJmXRiaXFsyZlywqBpbmRpIHbJmSBnyZlsyZljyZlrZMmZIGhlc2FixLFuxLF6YSBkYXhpbCBvbG1hcSDDvMOnw7xuIGljYXrJmSBpc3TJmXlpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9jcmVkZW50aWFsc19wZXJtaXNzaW9uX21lc3NhZ2VfZm9vdGVyIiBtc2dpZD0iMzEyNTIxMTM0MzM3OTM3NjU2MSI+IkJ1IGlzdMmZecmZIGl6biB2ZXJtyZlrIGlzdMmZeWlyc2luaXo/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnRfcGVybWlzc2lvbnNfaGVhZGVyX3RleHQiIG1zZ2lkPSI2ODc0NDk3NDA4MjAxODI2NzA4Ij4iR2lyacWfIHNvcsSfdXN1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3ciIG1zZ2lkPSI3MjI1OTQ4ODExMjk2Mzg2NTUxIj4ixLBjYXrJmSB2ZXJpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnkiIG1zZ2lkPSIyMDgxODc5ODg1NzU1NDM0NTA2Ij4iUsmZZGQgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtaXNzaW9uX3JlcXVlc3Rfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjQ4Njc1OTc5NTkyNjIzNzkwNyI+IsSwY2F6yZkgdMmZbMmZYiBvbHVudXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtaXNzaW9uX3JlcXVlc3Rfbm90aWZpY2F0aW9uX3dpdGhfc3VidGl0bGUiIG1zZ2lkPSI4NTMwMzkzMTM5NjM5NTYwMTg5Ij5cbiIgaGVzYWLEsSDDvMOnw7xuPHhsaWZmOmcgaWQ9IkFDQ09VTlQiPiVzPC94bGlmZjpnPiBpY2F6yZkgc29yxJ91c3UgZ8O2bmTJmXJpbGRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImlucHV0X21ldGhvZF9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMTI4MzU1NzE3OTk0NDk5MjY0OSI+IkRheGlsZXRtyZkgbWV0b2R1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY19iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMzY4Nzk2OTEzODM3NTA5MjQyMyI+IlNpbnhyb25pemFzaXlhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iNDE0ODEyMDc0MjA5NjQ3NDY0MSI+IsaPbMOnYXTEsW1sxLFsxLFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FsbHBhcGVyX2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSIxMjQwMDg3ODQ0MzA0Njg3NjYyIj4iRGl2YXIga2HEn8SxesSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3Nlcl93YWxscGFwZXIiIG1zZ2lkPSI3ODczNDc2MTk5Mjk1MTkwMjc5Ij4iRGl2YXIga2HEn8SxesSxbsSxIGTJmXlpxZ9pbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vdGlmaWNhdGlvbl9saXN0ZW5lcl9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMjAxNDE2MjgzNTQ4MTkwNjQyOSI+IkJpbGRpcmnFnyBkaW5syZl5yZluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RpdGxlIiBtc2dpZD0iMTk2MTUyMTM1NTIwNDI4MjciPiJWUE4gYWt0aXZsyZnFn2RpcmlsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGl0bGVfbG9uZyIgbXNnaWQ9IjY0MDA3MTQ3OTgwNDkyNTIyOTQiPiJWUE4gPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IHTJmXLJmWZpbmTJmW4gYWt0aXZsyZnFn2RpcmlsaWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGV4dCIgbXNnaWQ9IjMwMTEzMDY2MDcxMjY0NTAzMjIiPiLFnsmZYsmZa8mZbmkgaWRhcsmZIGV0bcmZayDDvMOnw7xuIHRveHVudW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RleHRfbG9uZyIgbXNnaWQ9IjY0MDczNTEwMDYyNDkxNzQ0NzMiPiI8eGxpZmY6ZyBpZD0iU0VTU0lPTiI+JXM8L3hsaWZmOmc+IHNlc3NpeWF5YSBxb8WfdWx1ZHVyLiDFnsmZYsmZa8mZbmkgaWRhcsmZIGV0bcmZayDDvMOnw7xuIHRveHVudW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Nvbm5lY3RpbmciIG1zZ2lkPSI2NDQzNDM4OTY0NDQwOTYwNzQ1Ij4iSMmZbWnFn8mZIGFrdGl2IFZQTiBiYcSfbGFuxLFyLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Nvbm5lY3RlZCIgbXNnaWQ9IjgyMDI2Nzk2NzQ4MTkyMTM5MzEiPiJWUE4gYmHEn2xhbnTEsXPEsSBoyZltacWfyZkgYWt0aXYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fZXJyb3IiIG1zZ2lkPSI2MDA5MjQ5ODE0MDM0NzA4MTc1Ij4iSMmZbWnFn8mZIGFrdGl2IFZQTiB4yZl0YXPEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25maWciIG1zZ2lkPSI2NDE1ODk5MTUwNjcxNTM3OTcwIj4iS29uZmlxdXLJmSBldG3JmWsgw7zDp8O8biB0b3h1biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVwbG9hZF9maWxlIiBtc2dpZD0iMjg5Nzk1NzE3MjM2NjczMDQxNiI+IkZheWwgc2XDp2luIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fZmlsZV9jaG9zZW4iIG1zZ2lkPSI2MzYzNjQ4NTYyMTcwNzU5NDY1Ij4iSGXDpyBiaXIgZmF5bCBzZcOnaWxtyZl5aWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXNldCIgbXNnaWQ9IjI0NDgxNjgwODA5NjQyMDk5MDgiPiJTxLFmxLFybGF5xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3VibWl0IiBtc2dpZD0iMTYwMjMzNTU3MjA4OTkxMTk0MSI+IkfDtm5kyZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FyX21vZGVfZGlzYWJsZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIzMTY0NzY4MjEyMDAzODY0MzE2Ij4iQXZ0b21vYmlsIHJlamltaSBha3RpdmRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcl9tb2RlX2Rpc2FibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI4MDM1MjMwNTM3NTYzNTAzMjYyIj4iQXZ0b21vYmlsIHJlamltaW5kyZluIMOnxLF4bWFxIMO8w6fDvG4gdG94dW51bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXRoZXJlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIzMTQ2Njk0MjM0Mzk4MjAyNjAxIj4iVGV6ZXJpbnEgdsmZIHlhIGhvdHNwb3QgYWt0aXZkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXRoZXJlZF9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjY4NTcwMzE3NjAxMDMwNjI5ODIiPiJRdXJhxZ9kxLFybWFxIMO8w6fDvG4gdG94dW51bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjIzMDA0NzAwMDQ1MDMzNDM0MzkiPiJHZXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmV4dF9idXR0b25fbGFiZWwiIG1zZ2lkPSIxMDgwNTU1MTA0Njc3OTkyNDA4Ij4iTsO2dmLJmXRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2tpcF9idXR0b25fbGFiZWwiIG1zZ2lkPSIxMjc1MzYyMjk5NDcxNjMxODE5Ij4iS2XDpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlX3dhcm5pbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNDg5MDg5NDI2NzQ1NDg2NzI3NiI+IlnDvGtzyZlrIG1vYmlsIGRhdGEgaXN0aWZhZMmZc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZV93YXJuaW5nX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMzM0MDgyMjIyODU5OTMzNzc0MyI+Ik1vYmlsIGRhdGEgaXN0aWZhZMmZc2kgaGFxccSxbmRhIGRhaGEgw6dveCDDtnlyyZlubcmZayDDvMOnw7xuIHRveHVudW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGhyb3R0bGVkX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjYyNjk1NDE4OTc3Mjk3ODEzMzIiPiJNb2JpbCBkYXRhIGxpbWl0aSBrZcOnaWxkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlZF9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjU0NDM0NTczMjEzNTQ5MDcxODEiPiJNb2JpbCBkYXRhIGlzdGlmYWTJmXNpIGhhcXHEsW5kYSBkYWhhIMOnb3ggw7Z5csmZbm3JmWsgw7zDp8O8biB0b3h1bnVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX21hdGNoZXMiIG1zZ2lkPSI4MTI5NDIxOTA4OTE1ODQwNzM3Ij4iVXnEn3VubHVxIHlveGR1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmRfb25fcGFnZSIgbXNnaWQ9IjE5NDY3OTkyMzM4MjI4MjAzODQiPiJTyZloaWbJmWTJmSB0YXAiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9Im1hdGNoZXNfZm91bmQiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTY3MTQ3MDgxMTM2NTc5NDM5Ij4iMSB1ecSfdW5sdXEiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ2NDE4NzI3OTcwNjc2MDkxNzciPiI8eGxpZmY6ZyBpZD0iSU5ERVgiPiVkPC94bGlmZjpnPiDJmWTJmWRkyZluIDx4bGlmZjpnIGlkPSJUT1RBTCI+JWQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX21vZGVfZG9uZSIgbXNnaWQ9IjcyMTc1ODE2NDA0NjE5MjIyODkiPiJIYXrEsXJkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfdW5tb3VudGluZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzOTIzODEwNDQ4NTA3NjEyNzQ2Ij4iVVNCIHlhZGRhxZ/EsSBxYWxkxLFyxLFsxLFyLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfdW5tb3VudGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjEzMjc4OTQ5OTg0MDk1MzcxOTAiPiJTRCBrYXJ0IGRlbW9udGFqIGVkaWxpci4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX2VyYXNpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDUyMTU3MzMyMTUyNDM0MDA1OCI+IlVTQiB5YWRkYcWfIHNpbGluaXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc19lcmFzaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjU5Njk4ODg3NTUwNzA0MzA0MiI+IlNEIGthcnQgc2lsaW5pci4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcm1hdF9lcnJvciIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2Mjk5NzY5NTYzNjI0Nzc2OTQ4Ij4iVVNCIHlhZGRhxZ/EsSBzaWxpbsmZIGJpbG3JmWRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcm1hdF9lcnJvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMTUyNDg2OTY2NDQ1MTA5MzUiPiJTRCBrYXJ0xLEgc2lsbcmZayBtw7xta8O8biBvbG1hZMSxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2JhZF9yZW1vdmFsIiBtc2dpZD0iNzk2MDg2NDA2MTAxNjYwMzI4MSI+IlNEIGthcnQgZGVtb250YWogZWRpbG3JmWTJmW4gw7ZuY8mZIMOnxLF4YXLEsWxkxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfY2hlY2tpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDE4MTg4NzIwMDA5NTY5NjkzIj4iVVNCIHlhZGRhxZ8gaGF6xLFyZGEgeW94bGFuxLFsxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2NoZWNraW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzMzNDc2MjUwMzkwNDgyNzQ4MSI+IlNEIGthcnQgaGF6xLFyZGEgeW94bGFuxLFsxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JlbW92ZWQiIG1zZ2lkPSI3MDAxNTI2OTA1MDU3OTUyMDk3Ij4iU0Qga2FydCDDp8SxeGFyxLFsxLFiLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3NoYXJlZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI1ODMwODE0MzQ5MjUwODM0MjI1Ij4iU0Qga2FydCBoYXrEsXJkYSBrb21ww7x0ZXIgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgZWRpbGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3NoYXJlZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MDYxMzA1NjgxMzM1NDA0MzUiPiJTRCBrYXJ0IGhhbC1oYXrEsXJkYSBrb21ww7x0ZXIgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgZWRpbGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3Vua25vd25fc3RhdGUiIG1zZ2lkPSI3MjkxOTI3ODIxOTcyOTAzODUiPiJOYW3JmWx1bSB2yZl6aXl5yZl0ZMmZIHhhcmljaSBtZWRpYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZSIgbXNnaWQ9IjE3Nzg2ODY2MTgyMzAwMTE5NjQiPiJQYXlsYcWfxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZCIgbXNnaWQ9IjQ4MDgyNzA5MDAzMjI5ODU5NjAiPiJUYXDEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWJzZWFyY2giIG1zZ2lkPSI0MzM3MTU3OTc3NDAwMjExNTg5Ij4iVmViIEF4dGFyxLHFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmRfbmV4dCIgbXNnaWQ9IjU3NDIxMjQ2MTg5NDIxOTM5NzgiPiJTb25yYWvEsW7EsSB0YXAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kX3ByZXZpb3VzIiBtc2dpZD0iMjE5NjcyMzY2OTM4ODM2MDUwNiI+IsaPdnbJmWxraW5pIHRhcCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc05vdGlmVGlja2VyIiBtc2dpZD0iNTYyMjY4MzkxMjYxNjQ5NjE3MiI+Ijx4bGlmZjpnIGlkPSJOQU1FIj4lczwveGxpZmY6Zz4gdMmZcsmZZmluZMmZbiBtyZlrYW4gc29yxJ91c3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNOb3RpZlRpdGxlIiBtc2dpZD0iNTQ0Njg1ODcxNzE1NzQxNjgzOSI+Ik3JmWthbiBzb3LEn3VzdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc05vdGlmTWVzc2FnZSIgbXNnaWQ9IjEzNzQ3MTgwMjMyMjQwMDA3MDIiPiI8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz4gKDx4bGlmZjpnIGlkPSJTRVJWSUNFIj4lMiRzPC94bGlmZjpnPikgdMmZcsmZZmluZMmZbiB0yZlsyZliIGVkaWxpYiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmWWVzIiBtc2dpZD0iMjM0NjU2NjA3Mjg2NzIxMzU2MyI+IkLJmWxpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzVmVyaWZObyIgbXNnaWQ9IjExNDY1NjQ5MzczNDY0NTQ4NjUiPiJYZXlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzIiBtc2dpZD0iNTI5NjMyMTg1MDY2Mjc0Njg5MCI+IkxpbWl0aSBrZcOnyZluaSBzaWxpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfdG9vX21hbnlfZGVsZXRlc19kZXNjIiBtc2dpZD0iNDk2NTUxNjcxMDA4Njk0MjQ1Ij4iPHhsaWZmOmcgaWQ9IlRZUEVfT0ZfU1lOQyI+JTIkczwveGxpZmY6Zz4gw7zDp8O8biA8eGxpZmY6ZyBpZD0iTlVNQkVSX09GX0RFTEVURURfSVRFTVMiPiUxJGQ8L3hsaWZmOmc+IHNpbGlubWnFnyBmYXlsIHZhciwgPHhsaWZmOmcgaWQ9IkFDQ09VTlRfTkFNRSI+JTMkczwveGxpZmY6Zz4gaGVzYWLEsS4gTsmZIGV0bcmZayBpc3TJmXlpcnNpbml6PyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfcmVhbGx5X2RlbGV0ZSIgbXNnaWQ9IjI1NzI2MDAxMDMxMjI1OTYyNDMiPiJFbGVtZW50bMmZcmkgc2lsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY191bmRvX2RlbGV0ZXMiIG1zZ2lkPSIyOTQxMzE3MzYwNjAwMzM4NjAyIj4iU2lsaW7JmW5syZlyaSBnZXJpIHFheXRhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfZG9fbm90aGluZyIgbXNnaWQ9IjM3NDM3NjQ3NDA0MzA4MjE4NDUiPiLEsG5kaWxpayBoZcOnIG7JmSBldG3JmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9hY2NvdW50X2xhYmVsIiBtc2dpZD0iNTY1NTIwMzA4OTc0NjQyMzkyNyI+Ikhlc2FiIHNlw6dpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9hY2NvdW50X2xhYmVsIiBtc2dpZD0iMjkzNTI2NzM0NDg0OTk5MzU1MyI+Ikhlc2FiIMmZbGF2yZkgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfYWNjb3VudF9idXR0b25fbGFiZWwiIG1zZ2lkPSIzNjExOTgyODk0ODUzNDM1ODc0Ij4iSGVzYWIgyZlsYXbJmSBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfYnV0dG9uIiBtc2dpZD0iMjQxMjA3MjI3MjgzMjI4NDMxMyI+IkFydMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfZGVjcmVtZW50X2J1dHRvbiIgbXNnaWQ9IjQ3NjA1MDc3ODM4Njc3OTA2NyI+IkF6YWxkxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfc2Nyb2xsX21vZGUiIG1zZ2lkPSIzMDczMTAxMDY3NDQxNjM4NDI4Ij4iPHhsaWZmOmcgaWQ9IlZBTFVFIj4lczwveGxpZmY6Zz4gdG94dW51biB2yZkgYmFzYXJhcSBzYXhsYXnEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfc2Nyb2xsX2FjdGlvbiIgbXNnaWQ9IjkxMDE0NzMwNDU4OTE4MzU0OTAiPiJBcnTEsXJtYXEgw7zDp8O8biB5dXhhcsSxLCBhemFsdG1hcSDDvMOnw7xuIGHFn2HEn8SxIHPDvHLDvMWfZMO8csO8bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9pbmNyZW1lbnRfbWludXRlX2J1dHRvbiIgbXNnaWQ9Ijg4NjU4ODUxMTQwMjg2MTQzMjEiPiJEyZlxaXHJmSBhcnTEsXLEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfbWludXRlX2J1dHRvbiIgbXNnaWQ9IjYyNDY4MzQ5MzcwODA2ODQ3OTEiPiJEyZlxaXHJmW5pIGF6YWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfaW5jcmVtZW50X2hvdXJfYnV0dG9uIiBtc2dpZD0iMzY1MjA1NjA1NTgxMDIyMzEzOSI+IlNhYXTEsSBhcnTEsXLEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfaG91cl9idXR0b24iIG1zZ2lkPSIxMzc3NDc5ODYzNDI5MjE0NzkyIj4iU2FhdMSxIGF6YWxkxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfaW5jcmVtZW50X3NldF9wbV9idXR0b24iIG1zZ2lkPSI0MTQ3NTkwNjk2MTUxMjMwODYzIj4iUE0gcXVydW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfc2V0X2FtX2J1dHRvbiIgbXNnaWQ9IjgzMDIxNDAzNTM1Mzk0ODY3NTIiPiJBTSBxdXJ1biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2luY3JlbWVudF9tb250aF9idXR0b24iIG1zZ2lkPSI1MzY5OTk4NDc5MDY3OTM0MTEwIj4iQXJ0bWEgYXnEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF9tb250aF9idXR0b24iIG1zZ2lkPSIxODMyNjk4OTk1NTQxNzI2MDE5Ij4iQXnEsSBhemFsZMSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2luY3JlbWVudF9kYXlfYnV0dG9uIiBtc2dpZD0iNzEzMDQ2NTQxMjMwODE3MzkwMyI+IkFydG1hIGfDvG7DvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF9kYXlfYnV0dG9uIiBtc2dpZD0iNDEzMTg4MTUyMTgxODc1MDAzMSI+IkF6YWxtYSBnw7xuw7wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9pbmNyZW1lbnRfeWVhcl9idXR0b24iIG1zZ2lkPSI2MzE4Njk3Mzg0MzEwODA4ODk5Ij4iQXJ0xLFtIGlsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF95ZWFyX2J1dHRvbiIgbXNnaWQ9IjQ0ODIwMjE4MTM0OTExMjE3MTciPiJBemFsbWEgaWxpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfYWx0IiBtc2dpZD0iNDg1Njg2ODgyMDA0MDA1MTkzOSI+IkFsdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2NhbmNlbCIgbXNnaWQ9IjEyMDM5ODQwMTcyNDU3ODMyNDQiPiJMyZnEn3YgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kZWxldGUiIG1zZ2lkPSIzMzM3OTE0ODMzMjA2NjM1NzQ0Ij4iU2lsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZG9uZSIgbXNnaWQ9IjE5OTI1NzExMTg0NjY2Nzk3NzUiPiJIYXrEsXJkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfbW9kZV9jaGFuZ2UiIG1zZ2lkPSI0NTQ3Mzg3NzQxOTA2NTM3NTE5Ij4iUmVqaW0gZMmZeWnFn2lrbGl5aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRGF4aWwgb2x1biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IlTJmXRiaXEgc2XDp2luIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4iQnVudW5sYSBwYXlsYcWfxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4gaWzJmSBwYXlsYcWfxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+IlPDvHLDvMWfyZluIHF1bHAuIFRveHVuYXJhcSBiYXPEsWzEsSB0dXR1bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IMO8w6fDvG4geXV4YXLEsSBzw7xyw7zFn2TDvHLDvG4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2Rvd24iIG1zZ2lkPSI1MDg3NzM5NzI4NjM5MDE0NTk1Ij4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IMO8w6fDvG4gYcWfYcSfxLEgc8O8csO8xZ9kw7xyw7xuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9sZWZ0IiBtc2dpZD0iNzIwNzQ3ODcxOTgwNTU2MjE2NSI+Ijx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiDDvMOnw7xuIHNvbGEgc8O8csO8xZ9kw7xyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4gw7zDp8O8biBzYcSfYSBzw7xyw7zFn2TDvHIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9jayIgbXNnaWQ9IjIyMjg1MjQ5MDA0Mzk4MDE0NTMiPiJLaWxpZGkgYcOnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X2NhbWVyYSIgbXNnaWQ9Ijk2OTA3MTk5NzU1MjQ4NjgxNCI+IkthbWVyYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zaWxlbnQiIG1zZ2lkPSI4OTM1NTEyODc3NDY1MjIxODIiPiJTyZlzc2l6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NvdW5kb24iIG1zZ2lkPSIzMDA1MjQ2NjY3NTUwMDE3MiI+IlPJmXMgYcOnxLFxZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zZWFyY2giIG1zZ2lkPSIzMDkxNTg3MjQ5Nzc2MDMzMTM5Ij4iQXh0YXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrX3RhYmxldCIgbXNnaWQ9IjM4MzMxOTUzMzU2Mjk3OTUwNTUiPiJLaWxpZGkgYcOnbWFxIMO8w6fDvG4gdnVydW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfaGVhZHNldF9yZXF1aXJlZF90b19oZWFyX3Bhc3N3b3JkIiBtc2dpZD0iNzAxMTkyNzM1MjI2NzY2ODY1NyI+IlBhcm9sbGFyxLFuIHPJmXNsyZluZGlyaWxtyZlzaSDDvMOnw7xuIHF1bGFxbMSxcWxhcsSxIHRheMSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9wYXNzd29yZF9jaGFyYWN0ZXJfbm9faGVhZHNldCIgbXNnaWQ9IjI4NTk4NzM3NzA4ODYxNTM2NzgiPiJOw7ZxdMmZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUyOTM2MDA0OTY2MDE0OTAyMTYiPiJFdsmZIGdlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl91cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIyMzc0OTY1NjI5NTIxNTI1ODkiPiJZdXhhcsSxIGdlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX21lbnVfb3ZlcmZsb3dfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMjk1NjU5MDM3NTA5MDA4NDUzIj4ixo9sYXbJmSBzZcOnaW1syZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX2Rlc2NyaXB0aW9uX2Zvcm1hdCIgbXNnaWQ9Ijc5NjU5ODQzNjA5MDM2OTM5MDMiPiIlMSRzLCAlMiRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX3N1YnRpdGxlX2Rlc2NyaXB0aW9uX2Zvcm1hdCIgbXNnaWQ9IjY5ODU1NDY1MzA0NzE3ODA3MjciPiIlMSRzLCAlMiRzLCAlMyRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RvcmFnZV9pbnRlcm5hbCIgbXNnaWQ9IjQ4OTE5MTY4MzM2NTc5MjkyNjMiPiJEYXhpbGkgeWFkZGHFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2Vfc2RfY2FyZCIgbXNnaWQ9IjMyODI5NDg4NjEzNzgyODY3NDUiPiJTRCBrYXJ0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RvcmFnZV91c2IiIG1zZ2lkPSIzMDE3OTU0MDU5NTM4NTE3Mjc4Ij4iVVNCIHlhZGRhxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRyYWN0X2VkaXRfbWVudV9idXR0b24iIG1zZ2lkPSI4OTQwNDc4NzMwNDk2NjEwMTM3Ij4iUmVkYWt0yZkgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSIxOTU1NjM4ODYyMTIyMjMyMzQyIj4iRGF0YSBpc3RpZmFkyZkgeMmZYsmZcmRhcmzEscSfxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dhcm5pbmdfYm9keSIgbXNnaWQ9IjI4MTQ2NzM1NTE0NzE5Njk5NTQiPiLEsHN0aWZhZMmZIHbJmSBheWFybGFyxLEgZ8O2cm3JmWsgw7zDp8O8biB0b3h1bnVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV8zZ19saW1pdF90aXRsZSIgbXNnaWQ9IjcwOTMzMzQ0MTk1MTg3MDY2ODYiPiIyRy0zRyBkYXRhIGRlYWt0aXZkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzRnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzYzNjQ4OTQzNjgxOTQ3MDc2MSI+IjRHIGRhdGEgZGVha3RpdiBlZGlsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX21vYmlsZV9saW1pdF90aXRsZSIgbXNnaWQ9Ijc4Njk0MDI1MTkzOTE2MzE4ODQiPiJNb2JpbCBkYXRhIGRlYWt0aXZkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfdGl0bGUiIG1zZ2lkPSI4OTkyMTU0NzM2NDQxMjg0ODY1Ij4iV2ktRmkgZGF0YSBkZWFrdGl2IGVkaWxkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbGltaXRfYm9keSIgbXNnaWQ9IjMzMTc5NjQ3MDY5NzM2MDEzODYiPiJBa3RpdmzJmcWfZGlybcmZayDDvMOnw7xuIHRveHVudW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV8zZ19saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iNzAyNjczOTEyMTEzODAwNTIzMSI+IjJHLTNHIGRhdGEgbGltaXRpIGHFn8SxbMSxYiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfNGdfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjExMDY1NjI3NzkzMTEyMDkwMzkiPiI0RyBkYXRhIGxpbWl0aSBrZcOnaWxkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbW9iaWxlX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSIyNzkyNDA1NzIxNjU0MTIxNjgiPiJNb2JpbCBkYXRhIGxpbWl0aSBrZcOnaWxkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2lmaV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iODc0Mzg1NjAwNjM4NDgyNTk3NCI+IldpLUZpIGRhdGEgbGltaXRpIGtlw6dpbGRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9saW1pdF9zbm9vemVkX2JvZHkiIG1zZ2lkPSI3MDM1NDkwMjc4Mjk4NDQxNzY3Ij4iPHhsaWZmOmcgaWQ9IlNJWkUiPiVzPC94bGlmZjpnPiBtw7zJmXl5yZluIGVkaWxtacWfIGxpbWl0IGHFn8Sxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3Jlc3RyaWN0ZWRfdGl0bGUiIG1zZ2lkPSI1OTY1MTU3MzYxMDM2MzIxOTE0Ij4iQXJ4YXBsYW4gZGF0YXPEsSBtyZloZHVkbGHFn2TEsXLEsWxkxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3Jlc3RyaWN0ZWRfYm9keSIgbXNnaWQ9IjY3NDE1MjEzMzA5OTc0NTI5OTAiPiJNyZloZHVkaXl5yZl0aSBhcmFkYW4gcWFsZMSxcm1hcSDDvMOnw7xuIHRveHVudW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2VydGlmaWNhdGUiIG1zZ2lkPSI2NTEwMDQwNDg2MDQ5MjM3NjM5Ij4iVMmZaGzDvGvJmXNpemxpayBzZXJ0aWZpa2F0xLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2VydGlmaWNhdGVfaXNfdmFsaWQiIG1zZ2lkPSI2ODI1MjYzMjUwNzc0NTY5MzczIj4iQnUgc2VydGlmaWthdCBldGliYXJsxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imlzc3VlZF90byIgbXNnaWQ9IjQ1NDIzOTQ4MDI3NDkyMTAzMiI+IlZlcmlsaWI6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tbW9uX25hbWUiIG1zZ2lkPSIyMjMzMjA5Mjk5NDM0MTcyNjQ2Ij4iw5xtdW1pIGFkOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ19uYW1lIiBtc2dpZD0iNjk3MzU2MTE5MDc2MjA4NTIzNiI+IlTJmcWfa2lsYXQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnX3VuaXQiIG1zZ2lkPSI3MjY1OTgxODkwNDIyMDcwMzgzIj4iVMmZxZ9raWxhdGkgdmFoaWQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXNzdWVkX2J5IiBtc2dpZD0iMjY0NzU4NDk4ODA1NzQ4MTU2NiI+IlTJmXLJmWZpbmTJmW4gdmVyaWxpYjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2YWxpZGl0eV9wZXJpb2QiIG1zZ2lkPSI4ODE4ODg2MTM3NTQ1OTgzMTEwIj4iS2XDp8mZcmxpbGlrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imlzc3VlZF9vbiIgbXNnaWQ9IjU4OTUwMTc0MDQzNjEzOTcyMzIiPiJEyZlyYyBvbHVudWI6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXhwaXJlc19vbiIgbXNnaWQ9IjM2NzYyNDI5NDk5MTU5NTk4MjEiPiJCaXRtyZkgdmF4dMSxOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcmlhbF9udW1iZXIiIG1zZ2lkPSI3NTg4MTQwNjc2NjA4NjI0OTMiPiJTZXJpeWEgbsO2bXLJmXNpOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmdlcnByaW50cyIgbXNnaWQ9IjQ1MTYwMTk2MTk4NTA3NjMwNDkiPiJCYXJtYXEgaXpsyZlyaToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGEyNTZfZmluZ2VycHJpbnQiIG1zZ2lkPSI0MzkxMjcxMjg2NDc3Mjc5MjYzIj4iU0hBLTI1NiBiYXJtYXEgaXppOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYTFfZmluZ2VycHJpbnQiIG1zZ2lkPSI3OTMwMzMwMjM1MjY5NDA0NTgxIj4iU0hBLTEgYmFybWFxIGl6aToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9jaG9vc2VyX3ZpZXdfc2VlX2FsbCIgbXNnaWQ9IjQyOTI1NjkzODM5NzY2MzYyMDAiPiJIYW3EsXPEsW7EsSBzZcOnxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfY2hvb3Nlcl92aWV3X2RpYWxvZ190aXRsZV9kZWZhdWx0IiBtc2dpZD0iNDcxMDAxMzg2NDk3NDA0MDYxNSI+IkbJmWFsaXl5yZl0aSBzZcOnaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV9hY3Rpb25fcHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjUyNDc2ODQ0MzU5NzkxNDkyMTYiPiJCdW51bmxhIHBheWxhxZ/EsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsaXN0X2RlbGltZXRlciIgbXNnaWQ9IjM5NzUxMTc1NzIxODU0OTQxNTIiPiIsICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbmRpbmciIG1zZ2lkPSIzMjQ1NjUzNjgxMDA4MjE4MDMwIj4iR8O2bmTJmXJpbGlyLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoQnJvd3NlckRlZmF1bHQiIG1zZ2lkPSIyMDU3OTUxOTQ3Mjk3NjE0NzI1Ij4iQnJhdXplciBpxZ/JmSBzYWzEsW5zxLFuPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlNldHVwQ2FsbERlZmF1bHQiIG1zZ2lkPSI1ODM0OTQ4NDY5MjUzNzU4NTc1Ij4iWsmZbmdpIHHJmWJ1bCBlZMmZaz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9yZXNvbHZlcl91c2VfYWx3YXlzIiBtc2dpZD0iODAxNzc3MDc0NzgwMTQ5NDkzMyI+IkjJmW1pxZ/JmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X3Jlc29sdmVyX3VzZV9vbmNlIiBtc2dpZD0iMjQwNDY0NDc5NzE0OTE3Mzc1OCI+IlNhZMmZY8mZIGJpciBkyZlmyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQ2MTcwNTM4OTgxNjcxMjc0NzEiPiJQbGFuxZ9ldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfbmFtZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQyMzkyOTEyNzM0MjAxNDAxMjMiPiJUZWxlZm9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lX2hlYWRwaG9uZXMiIG1zZ2lkPSI4MTE5OTcxODQzODAzNDM5MTEwIj4iUXVsYXFsxLFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lX2RvY2tfc3BlYWtlcnMiIG1zZ2lkPSI2MjQwNjAyOTgyMjc2NTkxODY0Ij4iRG9rIHNwaWtlcmzJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X21lZGlhX3JvdXRlX25hbWVfaGRtaSIgbXNnaWQ9IjI0NTA5NzAzOTkwMjM0NzgwNTUiPiJIRE1JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9jYXRlZ29yeV9uYW1lIiBtc2dpZD0iMzcyMjgxMTE3NDAwMzg4Njk0NiI+IlNpc3RlbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsdWV0b290aF9hMmRwX2F1ZGlvX3JvdXRlX25hbWUiIG1zZ2lkPSI4NTc1NjI0MDMwNDA2NzcxMDE1Ij4iQmx1ZXRvb3RoIGF1ZGlvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lyZWxlc3NfZGlzcGxheV9yb3V0ZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjkwNzAzNDY0MjUwMjM5Nzk2NTEiPiJTaW1zaXogZWtyYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9jaG9vc2VyX2dyb3VwaW5nX2RvbmUiIG1zZ2lkPSI3OTY2NDM4MzA3NzIzMzE3MTY5Ij4iSGF6xLFyZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX2J1dHRvbl9jb250ZW50X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTc1ODU1MzU2NzA2NTE0NTI3NiI+Ik1lZGlhIMOnxLF4xLHFn8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX3NjYW5uaW5nIiBtc2dpZD0iNzI3OTkwODc2MTc1ODI5Mzc4MyI+IlNrYW4gZWRpbGlyLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2Nvbm5lY3RpbmciIG1zZ2lkPSI2NDIyNTcxNzE2MDA3ODI1NDQwIj4iUW/Fn3VsdXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfYXZhaWxhYmxlIiBtc2dpZD0iNjk4MzI1ODA2NzE5NDY0OTM5MSI+IsaPbMOnYXTEsW1sxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfbm90X2F2YWlsYWJsZSIgbXNnaWQ9IjY3Mzk4OTk5NjI2ODE4ODY0MDEiPiLGj2zDp2F0xLFtbMSxIGRleWlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2luX3VzZSIgbXNnaWQ9IjQ1MzM3ODYwMzEwOTAxOTgwNjMiPiLEsHN0aWZhZMmZIG9sdW51ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9idWlsdF9pbl9kaXNwbGF5X25hbWUiIG1zZ2lkPSIyNTgzMTM0Mjk0MjkyNTYzOTQxIj4iRGF4aWxpIGVrcmFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX2hkbWlfZGlzcGxheV9uYW1lIiBtc2dpZD0iMTU1NTI2NDU1OTIyNzQ3MDEwOSI+IkhETUkgRWtyYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X25hbWUiIG1zZ2lkPSI1MTQyMzY1OTgyMjcxNjIwNzE2Ij4iw5ZydMO8ayAjPHhsaWZmOmcgaWQ9IklEIj4lMSRkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9vdmVybGF5X2Rpc3BsYXlfdGl0bGUiIG1zZ2lkPSI2NTIxMjQ1MTc2NzIyNTcxNzIiPiI8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz46IDx4bGlmZjpnIGlkPSJXSURUSCI+JTIkZDwveGxpZmY6Zz54PHhsaWZmOmcgaWQ9IkhFSUdIVCI+JTMkZDwveGxpZmY6Zz4sIDx4bGlmZjpnIGlkPSJEUEkiPiU0JGQ8L3hsaWZmOmc+IGRwaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9vdmVybGF5X2Rpc3BsYXlfc2VjdXJlX3N1ZmZpeCIgbXNnaWQ9IjYwMjIxMTk3MDI2Mjg1NzIwODAiPiIsIHTJmWhsw7xryZlzaXoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjIyMzA1MDY0OTI0MDMyNjU1NyI+IlNpbXNpeiBla3JhbiBxb8WfdWx1YiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfZGlzcGxheV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjQ0OTg4MDIwMTI0NjQxNzA2ODUiPiJCdSBla3JhbiBkaWfJmXIgY2loYXpkYSBnw7ZzdMmZcmlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl9kaXNjb25uZWN0IiBtc2dpZD0iNjE4Mzc1NDQ2MzU2MTE1MzM3MiI+IkJhxJ9sYW50xLFuxLEga8mZc2luIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW1lcmdlbmN5X2NhbGxfbGFiZWwiIG1zZ2lkPSI2ODQ5NDYxOTI1MjM4MzA1MzEiPiJUyZljaWxpIHrJmW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSI4ODUyMDIxNDY3ODY4MjIwNjA4Ij4ixZ5hYmxvbnUgdW51dG11xZ9hbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BhdHRlcm4iIG1zZ2lkPSIxODUwODA2MDcwODAxMzU4ODMwIj4iWWFubMSxxZ8gTW9kZWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiJZYW5sxLHFnyDFnmlmcsmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGluIiBtc2dpZD0iMTEzMTMwNjUxMDgzMzU2MzgwMSI+IlBJTiBzyZlodmRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MzU4MTEwMjIxNjAzMjk3NTQ4Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JTEkZDwveGxpZmY6Zz4gc2FuaXnJmSBzb25yYSB5ZW5pZMmZbiBjyZloZCBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3BhdHRlcm5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzk4OTc4NjExNjgzMDc1ODY4Ij4ixZ5hYmxvbnVudXp1IMOnyZlraW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiJTSU0gUElOIGtvZHUgZGF4aWwgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzc3MjQyMjMzNDk1MTExNTU3Ij4iUMSwTiBrb2R1IGRheGlsIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1NzUzNjQ2NTU2MTg2OTM2ODE5Ij4iUGFyb2wgZGF4aWwgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+IlNJTSBpbmRpIGRlYWt0aXZkaXIuIERhdmFtIGV0bcmZayDDvMOnw7xuIFBVSyBrb2R1IGRheGlsIGVkaW4uIMaPbGF2yZkgbcmZbHVtYXQgw7zDp8O8biBvcGVyYXRvcmEgbcO8cmFjacmZdCBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiLEsHN0yZlkaXlpbml6IFDEsE4ga29kdSBkYXhpbCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IsSwc3TJmWRpeWluaXogUElOIGtvZHUgdMmZc2RpcWzJmXlpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iU8SwTSBrYXJ0xLFuIGtpbGlkaSBhw6fEsWzEsXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiJZYW5sxLHFnyBQxLBOIGtvZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiI0LWTJmW4gOC3JmSBxyZlkyZlyIHLJmXHJmW1pIG9sYW4gUElOIHlhesSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJQVUsga29kIDggcsmZccmZbSB2yZkgeWEgZGFoYSDDp294IG9sbWFsxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IkTDvHpnw7xuIFBVSyBrb2R1IHllbmlkyZluIGRheGlsIGVkaW4uIFTJmWtyYXJsYW5hbiBjyZloZGzJmXIgU0lNXCdpIGJpcmTJmWbJmWxpayBzxLFyYWRhbiDDp8SxeGFyYWNhcS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4iUElOIGtvZGxhcsSxIHV5xJ91biBkZXlpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+IkjJmWRkaW5kyZluIMOnb3ggY8mZaGQgZWRpbGRpISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiJLaWxpZGkgYcOnbWFxIMO8w6fDvG4gR29vZ2xlIGhlc2FixLFuxLF6IGlsyZkgZGF4aWwgb2x1bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+IsSwc3RpZmFkyZnDp2kgYWTEsSAoZS1wb8OndCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iOTA1NzI4OTEwMzgyNzI5ODU0OSI+IsWeaWZyyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNTM1NTkwNDU4MjY3NDA1NDcwMiI+IkRheGlsIG9sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjU3NTQ2NjQxMTkzMTk4NzIxOTciPiJZYW5sxLHFnyBpc3RpZmFkyZnDp2kgYWTEsSB2yZkgeWEgcGFyb2wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IsSwc3RpZmFkyZnDp2kgYWTEsW7EsXrEsSB2yZkgeWEgcGFyb2x1bnV6dSB1bnV0bXVzdW51ej9cbiAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIgbGlua2luyZkgZGF4aWwgb2x1bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjEwNTI2ODUxOTc3MTAyNTIzOTUiPiJIZXNhYiB5b3hsYW7EsWzEsXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODI3Njc0NTY0MjA0OTUwMjU1MCI+IlBJTiBrb2R1bnV6dSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgeWFubMSxxZ8gZGF4aWwgZXRkaW5pei5cblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgyZlyemluZMmZIHllbmlkyZluIHlveGxhecSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiLFnmlmcsmZbml6aSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgeWFubMSxxZ8gZGF4aWwgZXRkaW5pei4gXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBzYW5pecmZIMmZcnppbmTJmSB5ZW5pZMmZbiB5b3hsYXnEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+Ik1vZGVsaW5pemkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHlhbmzEscWfIMOnyZlrbWlzaW5pei5cblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgyZlyemluZMmZIHllbmlkyZluIHlveGxhecSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+IlNpeiBwbGFuxZ9ldCBraWxpZGluaSBhw6dtYXEgw7zDp8O8biA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgdcSfdXJzdXogY8mZaGQgZXRtaXNpbml6LiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBkyZlmyZkgZMmZIHXEn3Vyc3V6IGPJmWhkIGV0c8mZbml6LCBwbGFuxZ9ldCBmYWJyaWsgYXlhcmxhcsSxbmEgc8SxZsSxcmxhbmFjYXEgdsmZIGLDvHTDvG4gbcmZbHVtYXRsYXLEsW7EsXogaXTJmWPJmWsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDA1MTAxNTk0MzAzODE5OTkxMCI+IlNpeiB0ZWxlZm9uIGtpbGlkaW5pIGHDp21hcSDDvMOnw7xuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSB1xJ91cnN1eiBjyZloZCBldG1pc2luaXouIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGTJmWbJmSBkyZkgdcSfdXJzdXogY8mZaGQgZXRzyZluaXosIHRlbGVmb24gZmFicmlrIGF5YXJsYXLEsW5hIHPEsWbEsXJsYW5hY2FxIHbJmSBiw7x0w7xuIG3JmWx1bWF0bGFyxLFuxLF6IGl0yZljyZlrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDcyOTk2MjY5MTQ4NDgzNjM3Ij4iU2l6IHBsYW7Fn2V0IGtpbGlkaW5pIGHDp21hcSDDvMOnw7xuIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBkyZlmyZkgdcSfdXJzdXogY8mZaGQgZXRtaXNpbml6LiBQbGFuxZ9ldCBmYWJyaWsgYXlhcmxhcsSxbmEgc8SxZsSxcmxhbmFjYXEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4iU2l6IHRlbGVmb251biBraWxpZGluaSBhw6dtYXEgw7zDp8O8biA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4geWFubMSxxZ8gY8mZaGQgZXRtaXNpbml6LiBUZWxlZm9uIGFydMSxcSBkZWZvbHQgemF2b2QgaGFsxLFuYSBzxLFmxLFybGFuYWNhcS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4iU2l6IGtpbGlkaSBhw6dtYXEgw7zDp8O8biDFn2FibG9udSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgc8mZaHYgw6fJmWtkaW5pei4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gZGFoYSB1xJ91cnN1eiBjyZloZGTJmW4gc29ucmEgcGxhbsWfZXRpbml6aW4ga2lsaWRpbmkgZS1wb8OndCBoZXNhYsSxbsSxemxhIGHDp21hcSB0yZlsyZliIG9sdW5hY2FxLlxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSDJmXJ6aW5kyZkgYmlyIGRhaGEgeW94bGF5xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iU2l6IGFydMSxcSBtb2RlbGkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHlhbmzEscWfIGRheGlsIGV0bWlzaW5pei48eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBkyZlmyZkgZMmZIHlhbmzEscWfIGRheGlsIGV0c8mZbml6LCB0ZWxlZm9udW4ga2lsaWRpbmluIGHDp8SxbG1hc8SxIMO8w6fDvG4gZWxla3Ryb24gcG/Dp3Qgw7xudmFuxLFuxLF6IHTJmWzJmWIgb2x1bmFjYXEuXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzYW5pecmZIMmZcnppbmTJmSB5ZW5pZMmZbiBjyZloZCBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIC0gIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJZxLHEn8SxxZ9kxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2FmZV9tZWRpYV92b2x1bWVfd2FybmluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMjQxNjE5Mzk0NzU0NzgwNjYiPiJTyZlzIGfDvGPDvCB0w7Z2c2l5yZkgZWRpbMmZbiBzyZl2aXl5yZlkyZluIGFydMSxcsSxbHPEsW4/XG5VenVuIG3DvGRkyZl0IHnDvGtzyZlrIHPJmXMgZ8O8Y8O8IGlsyZkgZGlubMmZbcmZIFNpemluIGXFn2l0bcmZIHFhYmlsaXl5yZl0aW5pesmZIG3JmW5maSB0yZlzaXIgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGludWVfdG9fZW5hYmxlX2FjY2Vzc2liaWxpdHkiIG1zZ2lkPSIxNjI2NDI3MzcyMzE2MDcwMjU4Ij4ixo9sw6dhdMSxbWzEscSfxLEgYWt0aXZsyZnFn2Rpcm3JmWsgw7zDp8O8biBpa2kgYmFybWHEn8SxbsSxesSxIGJhc8SxbMSxIHNheGxhecSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2VuYWJsZWQiIG1zZ2lkPSIxMzgxOTcyMDQ4NTY0NTQ3Njg1Ij4ixo9sw6dhdMSxbWzEsWzEsXEgYWt0aXZsyZnFn2RpcmlsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVfYWNjZXNzaWJpbGl0eV9jYW5jZWxlZCIgbXNnaWQ9IjM4MzM5MjMyNTc5NjY2MzU2NzMiPiJHaXJpxZ8gaW1rYW7EsSBsyZnEn3YgZWRpbGliLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZXJfc3dpdGNoZWQiIG1zZ2lkPSIzNzY4MDA2NzgzMTY2OTg0NDEwIj4iQ2FyaSBpc3RpZmFkyZnDp2kgPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im93bmVyX25hbWUiIG1zZ2lkPSIyNzE2NzU1NDYwMzc2MDI4MTU0Ij4iU2FoaWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlcnJvcl9tZXNzYWdlX3RpdGxlIiBtc2dpZD0iNDUxMDM3MzA4MzA4MjUwMDE5NSI+IljJmXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX25vX3Jlc3RyaWN0ZWRfYWNjb3VudHMiIG1zZ2lkPSI1NzM5NDYzMjQ5NjczNzI3NzM2Ij4iQnUgdMmZdGJpcSBtyZloZHVkIHByb2ZpbGzJmXIgw7zDp8O8biBoZXNhYmxhcsSxIGTJmXN0yZlrbMmZbWlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9ub3RfZm91bmQiIG1zZ2lkPSIzNDI5MTQxODUzNDk4OTI3Mzc5Ij4iQnUgyZltyZlsaXl5YXTEsSBpZGFyyZkgZXRtyZlrIMO8w6fDvG4gaGXDpyBiaXIgdMmZdGJpcSB0YXDEsWxtYWTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXZva2UiIG1zZ2lkPSI1NDA0NDc5MTg1MjI4MjcxNTg2Ij4iTMmZxJ92IGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2EwIiBtc2dpZD0iNzg3NTQyNzQ4OTQyMDgyMTc5MyI+IklTTyBBMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTEiIG1zZ2lkPSIzNzYwNzM0NDk5MDUwODc1MzU2Ij4iSVNPIEExIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMiIgbXNnaWQ9IjU5NzMyNjYzNzgwMjAxNDQzODIiPiJJU08gQTIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2EzIiBtc2dpZD0iMTM3MzQwNzEwNTY4NzMwMDg4NCI+IklTTyBBMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTQiIG1zZ2lkPSI2Njg5NzcyODA3OTgyNTk3MjU0Ij4iSVNPIEE0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNSIgbXNnaWQ9IjUzNTM1NDk2NTIwMTU3NDEwNDAiPiJJU08gQTUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E2IiBtc2dpZD0iODU4NTAzODA0ODY3NDkxMTkwNyI+IklTTyBBNiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTciIG1zZ2lkPSI2NjQxODM2NzE2OTYzODM5MTE5Ij4iSVNPIEE3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hOCIgbXNnaWQ9Ijc1NzExMzk0Mzc0NjU2OTMzNTUiPiJJU08gQTgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E5IiBtc2dpZD0iMTM3ODQ1NTg5MTk1NzExNTA3OSI+IklTTyBBOSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTEwIiBtc2dpZD0iMjQ4MDc0NzQ1NzQyOTQ3NTM0NCI+IklTTyBBMTAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IwIiBtc2dpZD0iMzk2NTkzNTA5NzY2MTEwODAzOSI+IklTTyBCMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjEiIG1zZ2lkPSIyNTA1NzUzMjg1MDEwMTE1NDM3Ij4iSVNPIEIxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMiIgbXNnaWQ9Ijg3NjM4NzQ3MDk4NTk0NTg0NTMiPiJJU08gQjIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IzIiBtc2dpZD0iNDIxMDUwNjY4ODE5MTc2NDA3NiI+IklTTyBCMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjQiIG1zZ2lkPSI1NzQ5NDA0MTY1ODg4NTI2MDM0Ij4iQjQgSVNPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNSIgbXNnaWQ9Ijc2NDA2Mjc0MTQ2MjE5MDQ3MzMiPiJJU08gQjUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I2IiBtc2dpZD0iNzM0Mjk4ODg2NDcxMjc0ODU0NCI+IklTTyBCNiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjciIG1zZ2lkPSI1MDY5ODQ0MDY1MjM1MzgyNDI5Ij4iSVNPIEI3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iOCIgbXNnaWQ9IjczMTY4MTg5MjIyNzg3Nzk3NzQiPiJJU08gQjgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I5IiBtc2dpZD0iNTQxNDcyNzA5NDAyNjUzMjM0MSI+IklTTyBCOSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjEwIiBtc2dpZD0iNTI1MTI1MzczMTgzMjA0ODE4NSI+IklTTyBCMTAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MwIiBtc2dpZD0iNDAwMzEzODM0MjY3MTk2NDIxNyI+IklTTyBDMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzEiIG1zZ2lkPSIxOTM1MTg4MDYzMzkzNTUzMDA4Ij4iSVNPIEMxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMiIgbXNnaWQ9IjMxOTczMDc5Njk3MTIwNjk5MDQiPiJJU08gQzIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MzIiBtc2dpZD0iNDMzNTgyNjA4NzMyMTkxMzUwOCI+IklTTyBDMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzQiIG1zZ2lkPSIzNzQ1NjM5NTk4MjgxMDE1MDA1Ij4iSVNPIEM0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNSIgbXNnaWQ9IjgyNjk0NTc3NjU4MjI3OTEwMTMiPiJJU08gQzUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M2IiBtc2dpZD0iNTY2NjY2MTA1MjYwMzQ2OTMwIj4iSVNPIEM2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNyIgbXNnaWQ9Ijg2Nzg0MTMxODA3ODI2MDg0OTgiPiJJU08gQzciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M4IiBtc2dpZD0iODM5MjM3NjIwNjYyNzA0MTczMCI+IklTTyBDOCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzkiIG1zZ2lkPSI5MTkxNjEzMzcyMzI0ODQ1NDA1Ij4iSVNPIEM5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMTAiIG1zZ2lkPSI3MzI3NzA5Njk5MTg0OTIwODIyIj4iSVNPIEMxMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9sZXR0ZXIiIG1zZ2lkPSI0MTkxODA1NjE1ODI5NDcyOTUzIj4iTcmZa3R1YiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9ndnJubXRfbGV0dGVyIiBtc2dpZD0iNzg1MzM4MjE5MjY0OTQwNTUwNyI+IkjDtmt1bcmZdCBNyZlrdHVidSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9sZWdhbCIgbXNnaWQ9IjY2OTc5ODI5ODgyODM4MjMxNTAiPiJIw7xxdXFpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2p1bmlvcl9sZWdhbCIgbXNnaWQ9IjM3Mjc3NDM5Njk5MDI3NTg5NDgiPiJLacOnaWsgSMO8cXVxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2xlZGdlciIgbXNnaWQ9IjI4MTg3MTQ2NDg5NjYwMTIzNiI+IlFvdmx1cSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV90YWJsb2lkIiBtc2dpZD0iNTc3NTk2NjQxNjMzMzU3ODEyNyI+IlHEsXNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id3JpdGVfZmFpbF9yZWFzb25fY2FuY2VsbGVkIiBtc2dpZD0iNzA5MTI1ODM3ODEyMTYyNzYyNCI+IkzJmcSfdiBlZGlsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3cml0ZV9mYWlsX3JlYXNvbl9jYW5ub3Rfd3JpdGUiIG1zZ2lkPSI4MTMyNTA1NDE3OTM1MzM3NzI0Ij4iS29udGVudCB5YXptbmEgeMmZdGFzxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjYwNDg5MTM4ODAxODQ2MjgxMTkiPiJuYW3JmWx1bSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9hZG1pbl9waW4iIG1zZ2lkPSI3ODM2NDM3MzE4OTUxNDM5NzAiPiJBZG1pbmlzdHJhdG9yIFBJTiBrb2R1bnUgZGF4aWwgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9waW4iIG1zZ2lkPSIzMzk1OTUzNDIxMzY4NDc2MTAzIj4iUElOIGRheGlsIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5faW5jb3JyZWN0IiBtc2dpZD0iODU3MTUxMjAwMzk1NTA3NzkyNCI+IlPJmWh2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2VudGVyX29sZF9waW4iIG1zZ2lkPSIxNDYyMjA2MjI1NTEyOTEwNzU3Ij4iQ2FyaSBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfbmV3X3BpbiIgbXNnaWQ9IjU5NTk2MDY2OTE2MTk5NTkxODQiPiJZZW5pIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9jb25maXJtX3BpbiIgbXNnaWQ9Ijg1MDE1MjM4Mjk2MzMxNDYyMzkiPiJZZW5pIFBJTlwnaSB0yZlzZGlxIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fY3JlYXRlX3BpbiIgbXNnaWQ9IjgwMTc2MDAwMDAyNjM0NTAzMzciPiJEyZl5acWfbcmZIG3JmWhkdWRpeXnJmXRsyZlyaSDDvMOnw7xuIFDEsE4geWFyYWTEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZXJyb3JfZG9lc250X21hdGNoIiBtc2dpZD0iMjIyNDIxNDE5MDkwNjk5NDU0OCI+IlDEsE4gdXnEn3VuIGfJmWxtaXIuIFllbmlkyZluIGPJmWhkIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2Vycm9yX3Rvb19zaG9ydCIgbXNnaWQ9IjgxNzM5ODI3NTYyNjU3Nzc3OTIiPiJQxLBOIMOnb3ggccSxc2FkxLFyLiDGj24gYXrEsSA0IHLJmXHJmW0gb2xtYWzEsWTEsXIuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJyZXN0cl9waW5fY291bnRkb3duIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzExMDUwOTk1MTk4NTQ4Njc1Ij4iMSBzYW5pecmZIHNvbnJhIHTJmWtyYXIgeW94bGF5xLFuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NzMwODY4OTIwNzQyOTUyODE3Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSBzb25yYSB0yZlrcmFyIHlveGxhecSxbiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJEYWhhIHNvbnJhIHllbmlkyZluIHlveGxhecSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0cmFuc2llbnRfbmF2aWdhdGlvbl9jb25maXJtYXRpb24iIG1zZ2lkPSI0OTA3ODQ0MDQzNjExMTIzNDI2Ij4iUGFuZWxpIGfDtnN0yZlybcmZayDDvMOnw7xuIGVrcmFuxLFuIGvDvG5jw7xuw7wgc8O8csO8xZ9kw7xyw7xuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHJhbnNpZW50X25hdmlnYXRpb25fY29uZmlybWF0aW9uX2xvbmciIG1zZ2lkPSI4MDYxNjg1OTIwNTA4MDg2Njk3Ij4iU2lzdGVtIHBhbmVsaW5pIGfDtnN0yZlybcmZayDDvMOnw7xuIGVrcmFuxLFuIGvDvG5jw7xuZMmZbiBzw7xyw7zFn2TDvHLDvG4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtYXovc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWF6L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4ZTc5YmIKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWF6L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMTU4NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJieXRlU2hvcnQiIG1zZ2lkPSI4MzQwOTczODkyNzQyMDE5MTAxIj4iQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtpbG9ieXRlU2hvcnQiIG1zZ2lkPSI1OTczNzg5NzgzNTA0NzcxODc4Ij4iS0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWdhYnl0ZVNob3J0IiBtc2dpZD0iNjM1NTg1MTU3Njc3MDQyODkyMiI+Ik1CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2lnYWJ5dGVTaG9ydCIgbXNnaWQ9IjMyNTk4ODI0NTUyMTIxOTMyMTQiPiJHQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRlcmFieXRlU2hvcnQiIG1zZ2lkPSIyMzE2MTMwMTgxNTkxODY5NjIiPiJUQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBldGFieXRlU2hvcnQiIG1zZ2lkPSI1NjM3ODE2NjgwMTQ0OTkwMjE5Ij4iUEIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaWxlU2l6ZVN1ZmZpeCIgbXNnaWQ9IjkxNjQyOTI3OTE1MDA1MzE5NDkiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRzPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJVTklUIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVudGl0bGVkIiBtc2dpZD0iNDYzODk1Njk1NDg1Mjc4MjU3NiI+IkJhxZ9sxLFxc8SxeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVsbGlwc2lzIiBtc2dpZD0iNzg5OTgyOTUxNjA0ODgxMzIzNyI+Ii4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVsbGlwc2lzX3R3b19kb3RzIiBtc2dpZD0iMTIyODA3ODk5NDg2NjAzMDczNiI+IuKApSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5UGhvbmVOdW1iZXIiIG1zZ2lkPSI3Njk0MDYzMDQyMDc5Njc2NTE3Ij4iKFRlbGVmb24gbsO2bXLJmXNpIHlveGR1cikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1bmtub3duTmFtZSIgbXNnaWQ9IjIyNzc1NTY1NDY3NDI3NDY1MjIiPiIoTmFtyZlsdW0pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdFZvaWNlTWFpbEFscGhhVGFnIiBtc2dpZD0iMjY2MDAyMDk5MDA5NzczMzA3NyI+IlPJmXNsaSBwb8OndCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRNc2lzZG5BbHBoYVRhZyIgbXNnaWQ9IjI4NTA4ODk3NTQ5MTk1ODQ2NzQiPiJNU0lTRE4xIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pRXJyb3IiIG1zZ2lkPSI1MTU0NDk5NDU3NzM5MDUyOTA3Ij4iQmHEn2xhbnTEsSBwcm9ibGVtaSB2yZkgeWEgeWFsbsSxxZ8gTU0ga29kdS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtbWlGZG5FcnJvciIgbXNnaWQ9IjUyMjQzOTgyMTYzODUzMTY0NzEiPiLGj23JmWxpeXlhdCB5YWxuxLF6IHNhYml0IG7Dtm1yyZlsyZlyyZkgecSxxJ/EsW1sYSBtyZloZHVkbGHFn8SxYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRW5hYmxlZCIgbXNnaWQ9IjgxNDcyNzgzNDY0MTQ3MTQzMTUiPiJTZXJ2aXMgacWfyZkgc2FsxLFuZMSxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VFbmFibGVkRm9yIiBtc2dpZD0iNjg1NjIyODE0MDQ1MzQ3MTA0MSI+IlhpZG3JmXQgYWt0aXYgZWRpbG1pxZ9kaXI6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZURpc2FibGVkIiBtc2dpZD0iMTkzNzU1MzIyNjU5MjUxNjQxMSI+IlhpZG3JmXQgZGVha3RpdiBlZGlsaWIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZVJlZ2lzdGVyZWQiIG1zZ2lkPSI2Mjc1MDE5MDgyNTk4MTAyNDkzIj4iUWV5ZGl5eWF0IHXEn3VybHUgb2xkdS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRXJhc2VkIiBtc2dpZD0iMTI4ODU4NDY5NTI5NzIwMDk3MiI+IlNpbGlubcmZIHXEn3VybHUgb2xtdcWfZHVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkSW5jb3JyZWN0IiBtc2dpZD0iNzYxMjIwODgzOTQ1MDEyODcxNSI+IllhbmzEscWfIHBhcm9sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pQ29tcGxldGUiIG1zZ2lkPSI4MjMyNTI3NDk1NDExNjk4MzU5Ij4iTU1JIHRhbWFtZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWRQaW4iIG1zZ2lkPSI5MDE1Mjc3NjQ1NTQ2NzEwMDE0Ij4iRGF4aWwgZXRkaXlpbml6IGvDtmhuyZkgUMSwTiBkw7x6Z8O8biBkZXlpbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWRQdWsiIG1zZ2lkPSI1NDg3MjU3NjQ3MDgxMTMyMjAxIj4iRGF4aWwgZXRkaXlpbml6IFBVSyBkw7x6Z8O8biBkZXlpbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaXNtYXRjaFBpbiIgbXNnaWQ9IjYwOTM3OTA1NDQ5Njg2MzQxOSI+IkRheGlsIGV0ZGl5aW5peiBQxLBOIGtvZGxhciB1ecSfdW4gZ8mZbG1pci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUGluIiBtc2dpZD0iMzg1MDAxODQ0NTE4NzQ3NTM3NyI+IjQtZMmZbiA4LcmZIHHJmWTJmXIgcsmZccmZbWkgb2xhbiBQSU4geWF6xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4iOCB2yZkgZGFoYSDDp294IHLJmXHJmW1pIG9sYW4gUFVLIHlhesSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4iU2l6aW4gU8SwTSBrYXJ0IFBVSyBpbMmZIGtpbGlkbMmZbmliLiBPbnUgYcOnbWFxIMO8w6fDvG4gUFVLIGtvZHUgeWF6xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IlNJTSBrYXJ0xLFuIGtpbGlkaW5pIGHDp21hcSDDvMOnw7xuIFBVSzIgeWF6xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiJEYXhpbCBvbGFuIHrJmW5nIGVkyZluaW4gSURcJ3NpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2xpck1taSIgbXNnaWQ9Ijc3ODQ2NzM2NzM0NDY4MzMwOTEiPiJHZWTJmW4gWsmZbmcgSUQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDZk1taSIgbXNnaWQ9IjUxMjMyMTg5ODkxNDE1NzM1MTUiPiJayZluZyB5w7ZubMmZbmRpcm3JmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkN3TW1pIiBtc2dpZD0iOTEyOTY3ODA1Njc5NTAxNjg2NyI+IlrJmW5nIGfDtnpsyZl5aXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJCYU1taSIgbXNnaWQ9IjQ1NTE5MzA2NzkyNjc3MDU4MSI+IlrJmW5nIHFhZGHEn2FzxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJQd2RNbWkiIG1zZ2lkPSI3MDQzNzE1Njg3OTA1MjU0MTk5Ij4iUGFyb2x1IGTJmXlpxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJQaW5NbWkiIG1zZ2lkPSIzMTEzMTE3NzgwMzYxMTkwMzA0Ij4iUMSwTiBkyZl5acWfbcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNuaXBNbWkiIG1zZ2lkPSIzMTEwNTM0NjgwNTU3ODU3MTYyIj4iSGF6xLFyZGFrxLEgbsO2bXLJmXnJmSB6yZluZyBlZGlsaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbmlyTW1pIiBtc2dpZD0iMzA2MjEwMjEyMTQzMDU0ODczMSI+IlrJmW5nbMmZcmluIHNhecSxIG3JmWhkdWRsYcWfZMSxcsSxbMSxYiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlRocmVlV0NNbWkiIG1zZ2lkPSI5MDUxMDQ3MTcwMzIxMTkwMzY4Ij4iw5zDpyB5b2xsdSB6yZluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJ1YWNNbWkiIG1zZ2lkPSI3ODI3ODg3NDU5MTM4MzA4ODg2Ij4iWG/Fn2FnyZlsbcmZeiB6yZluZ2zJmXJkyZluIGltdGluYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNuZE1taSIgbXNnaWQ9IjMxMTY0NDYyMzcwODE1NzU4MDgiPiLDh2F0ZMSxcsSxbG1hIHrJmW5naSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkRuZE1taSIgbXNnaWQ9IjEyNjU0Nzg5MzI0MTgzMzQzMzEiPiJOYXJhaGF0IGV0bcmZeWluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPbk5leHRDYWxsT24iIG1zZ2lkPSI0Mjk0MTU0MDkxNDU3ODE5MjMiPiJBZMmZdMmZbiB6yZluZyBlZMmZbmluIElEXCdzaSBtyZloZHVkbGHFn2TEsXLEsWzEsXIuIE7DtnZiyZl0aSB6yZluZzogTcmZaGR1ZGxhxZ9kxLFyxLFsxLFiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPbk5leHRDYWxsT2ZmIiBtc2dpZD0iMzA5MjkxODAwNjA3Nzg2NDYyNCI+IkFkyZl0yZluIHrJmW5nIGVkyZluaW4gSURcJ3NpIG3JmWhkdWRsYcWfZMSxcsSxbMSxci4gTsO2dmLJmXRpIHrJmW5nOiBNyZloZHVkbGHFn2TEsXLEsWxtYXnEsWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSRGVmYXVsdE9mZk5leHRDYWxsT24iIG1zZ2lkPSI2MTc5NDI1MTgyODU2NDE4NDY1Ij4iQWTJmXTJmW4gesmZbmcgZWTJmW5pbiBJRFwnc2kgbcmZaGR1ZGxhxZ9kxLFyxLFsbcSxci4gTsO2dmLJmXRpIHrJmW5nOiBNyZloZHVkbGHFn2TEsXLEsWzEsWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSRGVmYXVsdE9mZk5leHRDYWxsT2ZmIiBtc2dpZD0iMjU2Nzk5ODYzMzEyNDQwODU1MiI+IkFkyZl0yZluIHrJmW5nIGVkyZluaW4gSURcJ3NpIG3JmWhkdWRsYcWfZMSxcsSxbG3EsXIuIE7DtnZiyZl0aSB6yZluZzogTcmZaGR1ZGxhxZ9kxLFyxLFsbWF5xLFiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZU5vdFByb3Zpc2lvbmVkIiBtc2dpZD0iODYxNDgzMDE4MDUwODY4NjY2NiI+IlhpZG3JmXQgdMmZbWluIGVkaWxtyZl5aWIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUlBlcm1hbmVudCIgbXNnaWQ9IjMzNzczNzExNDU5MjY4MzU2NzEiPiJTaXogesmZbmcgZWTJmW5pbiBJRCBuaXphbWxhcsSxbsSxIGTJmXlpxZ/JmSBiaWxtyZl6c2l6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRDaGFuZ2VkVGl0bGUiIG1zZ2lkPSI1NTkyMTg5Mzk4OTU2MTg3NDk4Ij4iTcmZaGR1ZGxhxZ9kxLFyxLFsbcSxxZ8ga2XDp2lkIGTJmXlpxZ9kaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkRhdGEiIG1zZ2lkPSI4NjUzNzk0Nzg0NjkwMDY1NTQwIj4iRGF0YSB4aWRtyZl0IGJhxJ9sxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkVtZXJnZW5jeSIgbXNnaWQ9IjY1ODExNjM3NzkwNzI4MzM2NjUiPiJUyZljaWxpIHhpZG3JmXQgYmHEn2zEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uTm9ybWFsIiBtc2dpZD0iNDk1Mzg2NzAxMTM4OTc1MDY3MyI+IlPJmXMgeGlkbcmZdGkgYmHEn2zEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uQWxsVm9pY2UiIG1zZ2lkPSIzMzk2OTYzNjUyMTA4MTUxMjYwIj4iQsO8dMO8biBTyZlzIHhpZG3JmXRsyZlyaSBiYcSfbMSxZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblNtcyIgbXNnaWQ9IjgzMTQzNTIzMjc0NjE2Mzg4OTciPiJTTVMgeGlkbcmZdGkgYmxva2xhbsSxYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25Wb2ljZURhdGEiIG1zZ2lkPSI5OTY2MzY0ODcxMDYxNzEzMjAiPiJTyZlzL2RhdGEgeGlkbcmZdGzJmXJpIGJsb2tsYW7EsWIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VTbXMiIG1zZ2lkPSIxODg4NTg4MTUyNzkyMDIzODczIj4iU8mZcy9TTVMgeGlkbcmZdGzJmXJpIGJsb2tsYW7EsWIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uQWxsIiBtc2dpZD0iNTY0MzAyODI2NDQ2NjA5MjgyMSI+IkLDvHTDvG4gc8mZcy9kYXRhL1NNUyB4aWRtyZl0bMmZcmkgYmHEn2zEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzVm9pY2UiIG1zZ2lkPSIxMjU4MzkzODEyMzM1MjU4MDE5Ij4iU8mZcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0RhdGEiIG1zZ2lkPSI4NzI0NTY3ODIwNzc5Mzc4OTMiPiJNyZlsdW1hdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0ZBWCIgbXNnaWQ9IjU1NjY2MjQ5OTg4NDA0ODY0NzUiPiJGQUtTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzU01TIiBtc2dpZD0iMjAxNTQ2MDM3MzcwMTUyNzQ4OSI+IlNNUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0RhdGFBc3luYyIgbXNnaWQ9IjQ1MjM0NTQ3ODM0OTg1NTE0NjgiPiJBc3luYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0RhdGFTeW5jIiBtc2dpZD0iNzUzMDAwMDUxOTY0NjA1NDc3NiI+IlNpbngiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NQYWNrZXQiIG1zZ2lkPSI2OTkxMDA2NTU3OTkzNDIzNDUzIj4iUGFrZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NQQUQiIG1zZ2lkPSIzMjM1MjU5MDg1NjQ4MjcxMDM3Ij4iUEFEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQwIiBtc2dpZD0iNzE3MDMzNTQ3MjE5ODY5NDk0NSI+IlJvbWlucSBnw7ZzdMmZcmljaXNpIGnFn2zJmWtkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDEiIG1zZ2lkPSI1MzE0ODYxNTE5NzUyNTM4OTIyIj4iUm9taW5xIGfDtnN0yZlyaWNpc2kgacWfbMmZayBkZXlpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MiIgbXNnaWQ9Ijg5Njk5MjkwNDkwODEyNjgxMTUiPiJSb21pbnEgZ8O2c3TJmXJpY2lzaSB5YW7EsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDMiIG1zZ2lkPSI1MTQ4MjU1MDI3MDQzOTQzMzE3Ij4iUW9uxZ91bHVxZGFuIEvJmW5hciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NCIgbXNnaWQ9Ijg4MDg0NTY2ODI1NTA3OTY1MzAiPiJCaW5hZGFuIGvJmW5hciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NSIgbXNnaWQ9Ijc2MDQwNjMyNTI4NTAzNTQzNTAiPiJSb21pbnEgLSBBcnp1b2x1bmFuIHNpc3RlbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NiIgbXNnaWQ9IjIwNTk0NDA4MjU3ODI4NzE1MTMiPiJSb21pbnEgLSBNw7xta8O8biBzaXN0ZW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDciIG1zZ2lkPSI3MTEyMDc4NzI0MDk3MjMzNjA1Ij4iUm9taW5xIC0gQWx5YW5zIHBhcnRueW9ydSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0OCIgbXNnaWQ9IjU5ODk1Njk3Nzg2MDQwODkyOTEiPiJSb21pbnEgLSBQcmVtaXVtIHBhcnRueW9yIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ5IiBtc2dpZD0iNzk2OTI5NjgxMTM1NTE1MjQ5MSI+IlJvdW1pbnEgLSBUYW0gWGlkbcmZdCBGdW5rc2lvbmFsbMSxxJ/EsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MTAiIG1zZ2lkPSIzOTkyOTA2OTk5ODE1MzE2NDE3Ij4iUm91bWlucSAtIFFpc23JmW4gWGlkbcmZdCBGdW5rc2lvbmFsbMSxxJ/EsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MTEiIG1zZ2lkPSI0MTU0NDc2ODU0NDI2OTIwOTcwIj4iUm91bWlucSBCYW5uZXJpIEHDp8SxcWTEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDEyIiBtc2dpZD0iMTE4OTA3MTExOTk5MjcyNjMyMCI+IlJvYW1pbmcgQmFubmVyIE9mZiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0U2VhcmNoaW5nIiBtc2dpZD0iODM2MDE0MTg4NTk3MjI3OTk2MyI+IlhpZG3JmXQgYXh0YXLEsWzEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlTm90Rm9yd2FyZGVkIiBtc2dpZD0iMTY4MzY4NTg4Mzg0MTI3MjU2MCI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+OiBZw7ZubMmZbmRpcmlsbcmZZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlRm9yd2FyZGVkIiBtc2dpZD0iMTMwMjkyMjExNzQ5ODU5MDUyMSI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+OiA8eGxpZmY6ZyBpZD0iRElBTElOR19OVU1CRVIiPnsxfTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlRm9yd2FyZGVkVGltZSIgbXNnaWQ9IjkyMDYyNTE3MzY1MjcwODUyNTYiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IkRJQUxJTkdfTlVNQkVSIj57MX08L3hsaWZmOmc+IDx4bGlmZjpnIGlkPSJUSU1FX0RFTEFZIj57Mn08L3hsaWZmOmc+IHNhbml5yZkgc29ucmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlUmVnaXN0ZXJlZCIgbXNnaWQ9IjUwNzMyMzc4Mjc2MjAxNjYyODUiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjogWcO2bmzJmW5kaXJpbG3JmWRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZVJlZ2lzdGVyZWRUaW1lIiBtc2dpZD0iNjc4MTYyMTk2NDMyMDYzNTE3MiI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+OiBZw7ZubMmZbmRpcmlsbcmZZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmY0NvbXBsZXRlIiBtc2dpZD0iMzExODg0ODIzMDk2Njg4NjU3NSI+IsOWesmZbGxpayBrb2R1IHRhbWFtbGFuZMSxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZjRXJyb3IiIG1zZ2lkPSIzMzI3NTYwMTI2NTg4NTAwNzc3Ij4ixo9sYXHJmSBwcm9ibGVtaSB2yZkgeWEgeWFubMSxxZ8gZnVua3NpeWEga29kdS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JPayIgbXNnaWQ9IjExOTE5MTkzNzgwODM0NzIyMDQiPiJPSyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvciIgbXNnaWQ9Ijc5NTYzOTI1MTExNDY2OTg1MjIiPiLFnsmZYsmZa8mZIHjJmXRhc8SxIHZhciBpZGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yTG9va3VwIiBtc2dpZD0iNDcxMTY4NzQ1NjExMTk2MzE2MyI+IlVSTCB0YXDEsWxhIGJpbG3JmWRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclVuc3VwcG9ydGVkQXV0aFNjaGVtZSIgbXNnaWQ9IjYyOTk5ODAyODA0NDIwNzY3OTkiPiJTYXl0IGF1dGVudGlmaWthc2l5YSBzeGVtaSBkyZlzdMmZa2zJmW5taXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yQXV0aCIgbXNnaWQ9IjE0MzUwNjU2Mjk0MzgwNDQ1MzQiPiJUyZlzZGlxIGVkaWzJmSBiaWxtyZlkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JQcm94eUF1dGgiIG1zZ2lkPSIxNzg4MjA3MDEwNTU5MDgxMzMxIj4iUHJva3NpIHNlcnZlciB2YXNpdMmZc2lsyZkgdMmZc2RpcWzJmW5tyZkgdcSfdXJzdXogb2xkdS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JDb25uZWN0IiBtc2dpZD0iODcxNDI3MzIzNjM2NDY0MDU0OSI+IlNlcnZlcsmZIHFvxZ91bGEgYmlsbcmZZGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9ySU8iIG1zZ2lkPSIyMzQwNTU4MTk3NDg5MzAyMTg4Ij4iU2VydmVybMmZIMmZbGFxyZkgYWzEsW5tYWTEsS4gU29ucmEgY8mZaGQgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JUaW1lb3V0IiBtc2dpZD0iNDc0MzQwMzcwMzc2Mjg4Mzk1NCI+IlNlcnZlciBpbMmZIG9sYW4gyZlsYXHJmSB6YW1hbiBhxZ/EsW3EsW5hIG3JmXJ1eiBxYWxkxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yUmVkaXJlY3RMb29wIiBtc2dpZD0iODY3OTU5NjA5MDM5Mjc3OTUxNiI+IkJ1IHPJmWhpZsmZZMmZIGjJmWRkaW5kyZluIMOnb3ggc2VydmVyIHnDtm5syZluZGlyaWxtyZlsyZlyaSB2YXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVW5zdXBwb3J0ZWRTY2hlbWUiIG1zZ2lkPSI1MDE1NzMwODEyOTA2MTkyMjA4Ij4iUHJvdG9rb2wgZMmZc3TJmWtsyZlubWlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckZhaWxlZFNzbEhhbmRzaGFrZSIgbXNnaWQ9Ijk2NTQ5NjA2MDAwNjU4NjQxIj4iR8O8dsmZbmxpIGJhxJ9sYW50xLEgeWFyYWTEsWxhIGJpbG3JmWRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckJhZFVybCIgbXNnaWQ9IjM2MzY5Mjk3MjI3Mjg4ODE5NzIiPiJVUkwgeWFubMSxxZ8gb2xkdcSfdSDDvMOnw7xuIHPJmWhpZsmZbmkgYcOnbWFxIG3DvG1rw7xuIG9sbWFkxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yRmlsZSIgbXNnaWQ9IjIxNzA3ODg1MTUwNTI1NTg2NzYiPiJGYXlsYSBnaXJpxZ8gYmHFnyB0dXRtYWTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGaWxlTm90Rm91bmQiIG1zZ2lkPSI2MjAzODU2NjEyMDQyNjU1MDg0Ij4iVMmZbMmZYiBvbHVuYW4gZmF5bCB0YXDEsWxtYWTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JUb29NYW55UmVxdWVzdHMiIG1zZ2lkPSIxMjM1Mzk2OTI3MDg3MTg4MjUzIj4iSMmZZGRpbmTJmW4gw6dveCBzb3LEn3UgacWfbMmZbmlsaXIuIERhaGEgc29ucmEgeW94bGF5xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9Ijg5Njc3MTAwMjUwMzYxNjM4MjIiPiI8eGxpZmY6ZyBpZD0iQUNDT1VOVCI+JTEkczwveGxpZmY6Zz4gw7zDp8O8biBnaXJpxZ8geMmZdGFzxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250ZW50U2VydmljZVN5bmMiIG1zZ2lkPSI4MzUzNTIzMDYwMjY5MzM1NjY3Ij4iU2lueHJvbmxhxZ9kxLFybWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250ZW50U2VydmljZVN5bmNOb3RpZmljYXRpb25UaXRsZSIgbXNnaWQ9IjM5Nzc0MzM0OTE5MTkwMTQ1OCI+IlNpbnhyb25sYcWfZMSxcm1hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VUb29NYW55RGVsZXRlc05vdGlmaWNhdGlvbkRlc2MiIG1zZ2lkPSI4MTAwOTgxNDM1MDgwNjk2NDMxIj4iSMmZZGRpbmTJmW4gw6dveCA8eGxpZmY6ZyBpZD0iQ09OVEVOVF9UWVBFIj4lczwveGxpZmY6Zz4gc2lsaW5tyZlsyZlyaSB2YXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X21lbW9yeSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjQ5NDAxOTIzNDEwMjE1NDg5NiI+IlBsYW7Fn2V0aW4geWFkZGHFn8SxIGRvbHVkdXIuIEJvxZ8geWVyIMO8w6fDvG4gYsmZemkgZmF5bGxhcsSxIHNpbGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxvd19tZW1vcnkiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDc1OTk5Mjg2NjgwMDAwNTQxIj4iVGVsZWZvbnVuIHlhZGRhxZ/EsSBkb2x1ZHVyLiBCb8WfIHllciDDvMOnw7xuIGLJmXppIGZheWxsYXLEsSBzaWxpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZSIgbXNnaWQ9IjY1NDU2OTYwMDc2MzE0MDQyOTIiPiJNyZluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfZGlhbG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTQ1MzUxNDIwODY1MjAyODUzIj4iUGxhbsWfZXQgc2XDp2ltbMmZcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3dlcl9kaWFsb2ciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMzE5OTE5MDc1NDYzOTg4NjM4Ij4iVGVsZWZvbiBzZcOnaW1syZlyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlIiBtc2dpZD0iNzE2NzcwMzM4OTgwMjYxODY2MyI+IlPJmXNzaXogcmVqaW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0dXJuX29uX3JhZGlvIiBtc2dpZD0iMzkxMjc5MzA5MjMzOTk2MjM3MSI+IlNpbXNpemkgacWfyZkgc2FsxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHVybl9vZmZfcmFkaW8iIG1zZ2lkPSI4MTk4Nzg0OTQ5OTg3MDYyMzQ2Ij4iU2ltc2l6IHJhYml0yZluaSBzw7ZuZMO8csO8biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9sb2NrIiBtc2dpZD0iNzk5MDk0NjU1NDk2MDk4MTUzIj4iRWtyYW4ga2lsaWRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfb2ZmIiBtc2dpZD0iNDI2NjYxNDEwNzQxMjg2NTA0OCI+IlPDtm5kw7xyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfc2lsZW50IiBtc2dpZD0iMzE5Mjk4MTYzMDE4NDczMDc4Ij4iWsmZbmcgZGVha3RpdmRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3ZpYnJhdGUiIG1zZ2lkPSI3MDcyMDQzMzg4NTgxNTUxMzk1Ij4iWsmZbmcgdmlicmFzaXlhZGFkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfcmluZyIgbXNnaWQ9Ijg1OTIyNDE4MTYxOTQwNzQzNTMiPiJayZluZ3Z1cmFuIGHDp8SxcWTEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9wcm9ncmVzcyIgbXNnaWQ9IjIyODEwNzkyNTczMjk5ODEyMDMiPiJTw7ZuZMO8csO8bMO8ci4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm0iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMzODU3NDUxNzk1NTU3MzE0NzAiPiJQbGFuxZ9ldGluaXogc8O2bsmZY8mZay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9jb25maXJtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjQ5NzkyMTc1MjQyODIxMzUzIj4iVGVsZWZvbnVudXogc8O2bsmZY8mZay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9jb25maXJtX3F1ZXN0aW9uIiBtc2dpZD0iMjkwNjU0NDc2ODg4MTEzNjE4MyI+IlPDtm5kw7xybcmZayBpc3TJmXlpcnNpej8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWJvb3Rfc2FmZW1vZGVfdGl0bGUiIG1zZ2lkPSI3MDU0NTA5OTE0NTAwMTQwMzYxIj4iVMmZaGzDvGvJmXNpeiByZWppbWTJmSB5ZW5pZMmZbiBiYcWfbGF5xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVib290X3NhZmVtb2RlX2NvbmZpcm0iIG1zZ2lkPSI1NTI5Mzk0NDUwMjc4NDY2OCI+IlTJmWhsw7xryZlzaXogcmVqaW1kyZkgeWVuaWTJmW4gYmHFn2xhbWFxIGlzdMmZeWlyc2luaXogbWk/IEJ1LCBxdXJhxZ9kxLFyZMSxxJ/EsW7EsXogYsO8dMO8biDDvMOnw7xuY8O8IHTJmXLJmWYgdMmZdGJpcWzJmXJpbmkgZGVha3RpdiBlZMmZY8mZay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWNlbnRfdGFza3NfdGl0bGUiIG1zZ2lkPSIzNjkxNzY0NjIzNjM4MTI3ODg4Ij4iU29uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fcmVjZW50X3Rhc2tzIiBtc2dpZD0iODc5NDkwNjY1ODczMjE5MzQ3MyI+Ikhlw6cgYmlyIHNvbiB0yZl0YmlxIHlveGR1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9ucyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDA4NDc3MTQwMDg4MDUzNjY1Ij4iUGxhbsWfZXQgc2XDp2ltbMmZcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9ucyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI0MDY0MTY4MzE1NDE2MTUyNTgiPiJUZWxlZm9uIHNlw6dpbWzJmXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9sb2NrIiBtc2dpZD0iMjg0NDk0NTE5MTc5MjExOTcxMiI+IkVrcmFuIGtpbGlkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fcG93ZXJfb2ZmIiBtc2dpZD0iNDQ3MTg3OTQ0MDgzOTg3OTcyMiI+IlPDtm5kw7xyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9idWdfcmVwb3J0IiBtc2dpZD0iNzkzNDAxMDU3ODkyMjMwNDc5OSI+IkJhcSBoZXNhYmF0xLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfdGl0bGUiIG1zZ2lkPSIyNjY3NDk0ODAzNzQyNTQ4NTMzIj4iQmFxxLEgeMmZYsmZciB2ZXJpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9tZXNzYWdlIiBtc2dpZD0iMzk4NDQ3MDQ4NzUwMzUwNDU2Ij4iQnUsIHNpemluIGhhesSxcmvEsSBjaWhheiBkdXJ1bXUgaGFxccSxbmRhIG3JmWx1bWF0IHRvcGxheWFjYXEga2ksIGVsZWt0cm9uIG3JmWt0dWIgxZ/JmWtsaW5kyZkgZ8O2bmTJmXJzaW4uIEJhcSByYXBvcnR1bmEgYmHFn2xhbWFxIMO8w6fDvG4gYmlyIGF6IHZheHQgbGF6xLFtIG9sYSBiaWzJmXIsIGJpciBheiBzyZliciBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fdG9nZ2xlX3NpbGVudF9tb2RlIiBtc2dpZD0iODIxOTUyNTM0NDI0NjgxMDkyNSI+IlPJmXNzaXogcmVqaW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3NpbGVudF9tb2RlX29uX3N0YXR1cyIgbXNnaWQ9IjMyODk4NDE5MzcwMDM3NTg4MDYiPiJTyZlzIHFhcGFsxLFkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9zaWxlbnRfbW9kZV9vZmZfc3RhdHVzIiBtc2dpZD0iMTUwNjA0NjU3OTE3NzA2NjQxOSI+IlPJmXMgQWt0aXZkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uc190b2dnbGVfYWlycGxhbmVfbW9kZSIgbXNnaWQ9IjU4ODQzMzAzMDY5MjYzMDc0NTYiPiJUyZl5eWFyyZkgcmVqaW1pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnNfYWlycGxhbmVfbW9kZV9vbl9zdGF0dXMiIG1zZ2lkPSIyNzE5NTU3OTgyNjA4OTE5NzUwIj4iVcOndcWfIHJlamltaSBhw6fEsXFkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnNfYWlycGxhbmVfbW9kZV9vZmZfc3RhdHVzIiBtc2dpZD0iNTA3NTA3MDQ0Mjg1NDQ5MDI5NiI+IlTJmXl5YXLJmSByZWppbWkgcWFwYWzEsWTEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbmZvX292ZXJmbG93IiBtc2dpZD0iNTMwMTk4MTc0MTcwNTM1NDk5MyI+Ijk5OSsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYWZlTW9kZSIgbXNnaWQ9IjI3ODgyMjgwNjE1NDc5MzAyNDYiPiJUyZlobMO8a8mZc2l6IHJlamltIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF9zeXN0ZW1fbGFiZWwiIG1zZ2lkPSI2NTc3Mzc1MzM1NzI4NTUxMzM2Ij4iQW5kcm9pZCBzaXN0ZW1pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2Nvc3RNb25leSIgbXNnaWQ9IjU0Mjk4MDgyMTc4NjE0NjA0MDEiPiLDlmTJmW5pxZ9saSB4aWRtyZl0bMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfY29zdE1vbmV5IiBtc2dpZD0iMzI5MzMwMTkwMzQwOTg2OTQ5NSI+IljJmXJjIHR1dHVsYWNhcSDJmW3JmWxpeXlhdGxhciBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX21lc3NhZ2VzIiBtc2dpZD0iNzUyMTI0OTE0ODQ0NTQ1NjY2MiI+IlNpemluIG1lc2FqbGFyxLFuxLF6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19tZXNzYWdlcyIgbXNnaWQ9Ijc4MjE5OTkwNzEwMDM2OTkyMzYiPiJTTVMsIGVsZWt0cm9uIHBvw6d0IHbJmSBkaWfJmXIgbWVzYWpsYXLEsSBveHV5dXIgdsmZIHlhesSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfcGVyc29uYWxJbmZvIiBtc2dpZD0iMzUxOTE2MzE0MTA3MDUzMzQ3NCI+IsWeyZl4c2kgbcmZbHVtYXTEsW7EsXoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3BlcnNvbmFsSW5mbyIgbXNnaWQ9Ijg0MjY0NTMxMjk3ODg4NjEzMzgiPiJLb250YWt0IGthcnTEsW7EsXpkYSBzYXhsYW7EsWxhbiBtyZlsdW1hdGxhcsSxbsSxemEgYmlyYmHFn2EgZ2lyacWfLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zb2NpYWxJbmZvIiBtc2dpZD0iNTc5OTA5NjYyMzQxMjA0Mzc5MSI+IlNvc2lhbCBtyZlsdW1hdMSxbsSxeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc29jaWFsSW5mbyIgbXNnaWQ9IjcxMjk4NDI0NTc2MTE2NDM0OTMiPiJLb250YWt0bGFyxLFuxLF6IHbJmSBzb3NpYWwgyZlsYXHJmWzJmXJpbml6IGhhcXHEsW5kYSBtyZlsdW1hdGEgYmlyYmHFn2EgZ2lyacWfLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9sb2NhdGlvbiIgbXNnaWQ9IjYzNTE0OTc0MjQzNjY5MjA0OSI+IlllcmzJmcWfbcmZbml6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19sb2NhdGlvbiIgbXNnaWQ9IjU3MDQ2Nzk3NjMxMjQxNzAxMDAiPiJGaXppa2kgYWRyZXNpbml6aSBtb25pdG9yaW5xIGVkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX25ldHdvcmsiIG1zZ2lkPSI1ODA4OTgzMzc3NzI3MTA5ODMxIj4ixZ7JmWLJmWvJmSBrb21tdW5pa2FzaXlhc8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19uZXR3b3JrIiBtc2dpZD0iNDQ3ODI5OTQxMzI0MTg2MTk4NyI+Ik3DvHh0yZlsaWYgxZ/JmWLJmWvJmSB4w7xzdXNpeXnJmXRsyZlyaW7JmSBkYXhpbCBvbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYmx1ZXRvb3RoTmV0d29yayIgbXNnaWQ9IjE1ODU0MDM1NDQxNjIxMjgxMDkiPiJCbHVldG9vdGgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2JsdWV0b290aE5ldHdvcmsiIG1zZ2lkPSI1NjI1Mjg4NTc3MTY0MjgyMzkxIj4iQmx1ZXRvb3RoIMO8esmZcmluZMmZbiBjaWhhemxhcmEgdsmZIMWfyZliyZlryZlsyZlyyZkgZGF4aWwgb2wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2F1ZGlvU2V0dGluZ3MiIG1zZ2lkPSI4MzI5MjYxNjcwMTUxODcxMjM1Ij4iQXVkaW8gQXlhcmxhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjI2NDE1MTU0MDMzNDc1NjgxMzAiPiJBdWRpbyBheWFybGFyxLEgZMmZeWnFn2luLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hZmZlY3RzQmF0dGVyeSIgbXNnaWQ9IjYyMDkyNDY2NTM0MjQ3OTgwMzMiPiJCYXRhcmV5YXlhIHTJmXNpciBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hZmZlY3RzQmF0dGVyeSIgbXNnaWQ9IjY0NDEyNzUzMjA2Mzg5MTY5NDciPiJCYXRhcmV5YW7EsXrEsW4gdGV6IHF1cnRhcm1hc8SxbmEgc8mZYsmZYiBvbGFuIGZ1bmtzaXlhbGFyIGlzdGlmYWTJmSBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2NhbGVuZGFyIiBtc2dpZD0iNTg2MzUwODQzNzc4MzY4MzkwMiI+IlTJmXF2aW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2NhbGVuZGFyIiBtc2dpZD0iNTc3NzUzNDMxNjk4MjE4NDQxNiI+IlTJmXF2aW3JmSB2yZkgdMmZZGJpcmzJmXLJmSBiaXJiYcWfYSBnaXJpxZ8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2RpY3Rpb25hcnkiIG1zZ2lkPSI0MTQ4NTk3MTI4ODQzNjQxMzc5Ij4ixLBzdGlmYWTJmcOnaSBMw7zEn8mZdGluaSBPeHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RpY3Rpb25hcnkiIG1zZ2lkPSI3OTIxMTY2MzU1OTY0NzY0NDkwIj4ixLBzdGlmYWTJmcOnaSBsw7zEn8mZdGluZMmZa2kgc8O2emzJmXJpIG94dXl1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iODA5MDIzNzcwMjQzMjU3Njc4OCI+IsSwc3RpZmFkyZnDp2kgTMO8xJ/JmXRpbmkgWWF6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY193cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSIyNzExNTYxOTk0NDk3MzYxNjQ2Ij4ixLBzdGlmYWTJmcOnaSBsw7zEn8mZdGluyZkgc8O2emzJmXIgyZlsYXbJmSBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9ib29rbWFya3MiIG1zZ2lkPSIxOTQ5NTE5NjczMTAzOTY4MjI5Ij4ixo9sZsmZY2lubMmZciB2yZkgVGFyaXjDp8mZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19ib29rbWFya3MiIG1zZ2lkPSI0MTY5NzcxNjA2MjU3OTYzMDI4Ij4ixo9sZsmZY2lubMmZcsmZIHbJmSBicmF1emVyIHRhcml4aW7JmSBiaXJiYcWfYSBpY2F6yZkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2RldmljZUFsYXJtcyIgbXNnaWQ9IjYxMTc3MDQ2Mjk3Mjg4MjQxMDEiPiJayZluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfZGV2aWNlQWxhcm1zIiBtc2dpZD0iNDc2OTM1NjM2MjI1MTY0MTE3NSI+IkFsYXJtIHF1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfdm9pY2VtYWlsIiBtc2dpZD0iNDE2MjIzNzE0NTAyNzU5MjEzMyI+IlPJmXNsaSBwb8OndCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfdm9pY2VtYWlsIiBtc2dpZD0iMjQ5ODQwMzk2OTg2Mjk1MTM5MyI+IlPJmXMgcG/Dp3R1bmEgYmlyYmHFn2Egw6fEsXjEscWfLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9taWNyb3Bob25lIiBtc2dpZD0iMTcxNTM5OTAwMjUwMDQzNDY0Ij4iTWlrcm9mb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX21pY3JvcGhvbmUiIG1zZ2lkPSI3MTA2NjE4Mjg2OTA1NzM4NDA4Ij4iQXVkaW8geWF6bWFxIMO8w6fDvG4gbWlrcm9mb25hIGJpcmJhxZ9hIGdpcmnFny4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfY2FtZXJhIiBtc2dpZD0iNDgyMDM3MjQ5NTg5NDU4NjYxNSI+IkthbWVyYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfY2FtZXJhIiBtc2dpZD0iMjkzMzY2NzM3MjI4OTU2NzcxNCI+IsWeyZlraWwgdsmZIHlhIHZpZGVvIMOnyZlrbcmZayDDvMOnw7xuIGthbWVyYXlhIGJpcmJhxZ9hIMOnxLF4xLHFny4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc2NyZWVubG9jayIgbXNnaWQ9IjgyNzU1MDAxNzMzMzA3MTgxNjgiPiJFa3JhbiBraWxpZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3NjcmVlbmxvY2siIG1zZ2lkPSI3MDY3NDk3MTI4OTI1NDk5NDAxIj4iQ2loYXrEsW7EsXpkYWvEsSBraWxpZCBla3JhbsSxbsSxbiBoyZlyyZlryZl0aW7JmSB0yZlzaXIgZXRtyZkgYmFjYXLEscSfxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYXBwSW5mbyIgbXNnaWQ9IjgwMjg3ODk3NjI2MzQxNDc3MjUiPiJUyZl0YmlxIG3JmWx1bWF0bGFyxLFuxLF6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hcHBJbmZvIiBtc2dpZD0iMzk1MDM3ODUzODA0OTYyNTkwNyI+IkNpaGF6xLFuxLF6ZGFrxLEgZGlnyZlyIHTJmXRiaXFsyZlyaW4gZGF2cmFuxLHFn8SxbmEgdMmZc2lyIGV0bcmZayBiYWNhcsSxxJ/EsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfd2FsbHBhcGVyIiBtc2dpZD0iMzg1MDI4MDE1ODA0MTE3NTk5OCI+IkRpdmFyIGthxJ/EsXrEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfd2FsbHBhcGVyIiBtc2dpZD0iNTYzMDQxNzg1NDc1MDU0MDE1NCI+IkNpaGF6xLFuIGRpdmFyIGthxJ/EsXrEsSBheWFybGFyxLFuxLEgZMmZeWnFn2luLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zeXN0ZW1DbG9jayIgbXNnaWQ9IjQwNjUzNTc1OTIzNjYxMjk5MiI+IlNhYXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N5c3RlbUNsb2NrIiBtc2dpZD0iMzk0NDM1OTgzMzYyNDA5NDk5MiI+IkNpaGF6xLFuIHZheHQgdsmZIHphbWFuIHpvbGHEn8SxbsSxIGTJmXlpxZ9pci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3RhdHVzQmFyIiBtc2dpZD0iMjA5NTg2MjU2ODExMzk0NTM5OCI+IlN0YXR1cyBwYW5lbGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N0YXR1c0JhciIgbXNnaWQ9IjYyNDI1OTM0MzIyMjY4MDcxNzEiPiJDaWhhesSxbiBzdGF0dXMgcGFuZWxpIGF5YXJsYXLEsW7EsXrEsSBkyZl5acWfaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N5bmNTZXR0aW5ncyIgbXNnaWQ9IjMzNDE5OTA5ODYxNDc4MjY1NDEiPiJTaW54IEF5YXJsYXLEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3luY1NldHRpbmdzIiBtc2dpZD0iNzYwMzE5NTI2NTEyOTAzMTc5NyI+IlNpbnhyb25pemFzaXlhIG5pemFtbGFyxLFuYSDDp8SxeMSxxZ8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2FjY291bnRzIiBtc2dpZD0iMzM1OTY0NjI5MTEyNTMyNTUxOSI+Ikhlc2FibGFyxLFuxLF6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hY2NvdW50cyIgbXNnaWQ9IjQ5NDg3MzI2NDE4MjcwOTEzMTIiPiLGj2zDp2F0xLFtbMSxIGhlc2FibGFyYSBkYXhpbCBvbHVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9oYXJkd2FyZUNvbnRyb2xzIiBtc2dpZD0iNzk5ODIxNDk2ODc5MTU5OTMyNiI+IkhhcmR3YXJlIGtvbnRyb2xsYXLEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfaGFyZHdhcmVDb250cm9scyIgbXNnaWQ9IjQzNTcwNTc4NjEyMjU0NjI3MDIiPiJEyZlzdMmZa2TJmWtpIGF2YWRhbmzEscSfYSBiaXJiYcWfYSBnaXJpxZ8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3Bob25lQ2FsbHMiIG1zZ2lkPSI5MDY3MTczOTg4MzI1ODY1OTIzIj4iVGVsZWZvbiB6yZluZ2zJmXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19waG9uZUNhbGxzIiBtc2dpZD0iNzQ4OTcwMTYyMDQ0NjE4Mzc3MCI+IlRlbGVmb24gesmZbmdsyZlyaW7JmSBuyZl6YXLJmXQgZWRpbiwgcWV5ZMmZIGFsxLFuIHbJmSBpZGFyyZkgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3lzdGVtVG9vbHMiIG1zZ2lkPSI0NjUyMTkxNjQ0MDgyNzE0MDQ4Ij4iU2lzdGVtIGFsyZl0bMmZcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N5c3RlbVRvb2xzIiBtc2dpZD0iODE2MjEwMjYwMjE5MDczNDMwNSI+IkHFn2HEn8SxIHPJmXZpeXnJmWxpIMOnxLF4xLHFnyB2yZkgc2lzdGVtIGlkYXLJmWV0bcmZc2kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2RldmVsb3BtZW50VG9vbHMiIG1zZ2lkPSIzNDQ2MTY0NTg0NzEwNTk2NTEzIj4ixLBua2nFn2FmIGFsyZl0bMmZcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RldmVsb3BtZW50VG9vbHMiIG1zZ2lkPSI3MDU4ODI4MDMyMzU4MTQyMDE4Ij4iw5Z6yZlsbGlrbMmZciB5YWxuxLF6IHTJmXRiaXEgZGV2ZWxvcGVybMmZcmkgw7zDp8O8biBsYXrEsW1kxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaXNwbGF5IiBtc2dpZD0iNDI3OTkwOTY3NjAzNjQwMjYzNiI+IkRpZ8mZciB0yZl0YmlxIMSwc3RpZmFkyZnDp2kgxLBudGVyZmV5c2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Rpc3BsYXkiIG1zZ2lkPSI2MDUxMDAyMDMxOTMzMDEzNzE0Ij4iRGlnyZlyIHTJmXRiaXFsyZlyaW4gxLBzdGlmYWTJmcOnaSDEsG50ZXJmZXlzaW7JmSB0yZlzaXIgZWRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3RvcmFnZSIgbXNnaWQ9IjE5NzExMTg3NzA1NDYzMzY5NjYiPiJZYWRkYcWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdG9yYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc0NDIzMTg1MDI0NDY4NzQ5OTkiPiJVU0IgeWFkZGHFn2EgZGF4aWwgb2wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdG9yYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iOTIwMzMwMjIxNDkxNTM1NTc3NCI+IlNEIGthcnRhIGRheGlsIG9sLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hY2Nlc3NpYmlsaXR5RmVhdHVyZXMiIG1zZ2lkPSI3OTE5MDI1NjAyMjgzNTkzOTA3Ij4ixo9sw6dhdMSxbWzEsWzEsXEgZnVua3NpeWFsYXLEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNDIwNTE5Njg4MTY3ODE0NDMzNSI+IllhcmTEsW3Dp8SxIHRleG5vbG9naXlhIHTJmWzJmWIgZWTJmSBiaWzJmWPJmXlpIGZ1bmtzaXlhbGFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmV0cmlldmVXaW5kb3dDb250ZW50IiBtc2dpZD0iMzkwMTcxNzkzNjkzMDE3MDMyMCI+IlDJmW5jyZlyyZluaW4gbcmZem11bnVudSDJmWxkyZkgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXRyaWV2ZVdpbmRvd0NvbnRlbnQiIG1zZ2lkPSIzNzcyMjI1MDA4NjA1MzEwNjcyIj4ixo9sYXHJmWTJmSBvbGR1xJ91bnV6IHDJmW5jyZlyyZluaW4gbcmZem11bnVudSBuyZl6yZlyZMmZbiBrZcOnaXJpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJlcXVlc3RUb3VjaEV4cGxvcmF0aW9uIiBtc2dpZD0iMzEwODcyMzM2NDY3NjY2NzMyMCI+IlRveHVuYXJhcSBLyZnFn2YgZXQgZnVua3NpeWFzxLFuxLEgeWFuZMSxcsSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXF1ZXN0VG91Y2hFeHBsb3JhdGlvbiIgbXNnaWQ9IjU4MDA1NTI1MTY3NzkyNDkzNTYiPiJUb3h1bnVsYW4gaGlzc8mZbMmZciBzyZlzbMmZbmRpcmlsyZljyZlrIHbJmSBla3JhbiBqZXN0bMmZcmzJmSBpZGFyyZkgb2x1bmEgYmlsyZljyZlrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdEVuaGFuY2VkV2ViQWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjE3Mzk4ODE3NjY1MjI1OTQwNzMiPiLEsG5racWfYWYgZXRtacWfIHZlYiDJmWzDp2F0xLFtbMSxbMSxxJ/EsSB5YW5kxLFyxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV9kZXNjX2NhblJlcXVlc3RFbmhhbmNlZFdlYkFjY2Vzc2liaWxpdHkiIG1zZ2lkPSI3ODgxMDYzOTYxNTA3NTExNzY1Ij4iU2tyaXB0bMmZciB0yZl0YmlxIG3JmXptdW51bnVuIGRhaGEgyZlsw6dhdMSxbWzEsSBvbG1hc8SxIMO8w6fDvG4gcXVyYcWfZMSxcsSxbGEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdEZpbHRlcktleUV2ZW50cyIgbXNnaWQ9IjIxMDM0NDAzOTE5MDI0MTIxNzQiPiJZYXpkxLHEn8SxbsSxeiBtyZl0bmkgaXpsyZl5aW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmVxdWVzdEZpbHRlcktleUV2ZW50cyIgbXNnaWQ9Ijc0NjMxMzUyOTIyMDQxNTI4MTgiPiJLcmVkaXQga2FydMSxIG7Dtm1yyZlsyZlyaSB2yZkgcGFyb2xsYXIga2ltaSDFn8mZeHNpIG3JmWx1bWF0bGFyIGRheGlsZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhdHVzQmFyIiBtc2dpZD0iNzQxNzE5MjYyOTYwMTg5MDc5MSI+InN0YXR1cyBwYW5lbGluaSBkZWFrdGl2bMmZxZ9kaXIgdsmZIHlhIGTJmXlpxZ9kaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdGF0dXNCYXIiIG1zZ2lkPSI4NDM0NjY5NTQ5NTA0MjkwOTc1Ij4iVMmZdGJpccmZIHN0YXR1cyBwYW5lbGluaSBkZWFrdGl2IGV0bcmZecmZIHbJmSB5YSBzaXN0ZW0gaWtvbmFsYXLEsW7EsSDJmWxhdsmZIGV0bcmZayB2yZkgeWEgc2lsbcmZayBpbWthbsSxIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhdHVzQmFyU2VydmljZSIgbXNnaWQ9IjcyNDcyODE5MTEzODc5MzE0ODUiPiJzdGF0dXMgcGFuZWxpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyU2VydmljZSIgbXNnaWQ9IjcxNjExMzY2MDc5NTk3NjA2MCI+IlTJmXRiaXHJmSBzdGF0dXMgcGFuZWxpIG9sbWHEn2EgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9leHBhbmRTdGF0dXNCYXIiIG1zZ2lkPSIxMTQ4MTk4Nzg1OTM3NDg5MjY0Ij4ic3RhdHVzIHBhbmVsaW5pIGdlbmnFn2zJmXRtyZlrIHbJmSB5YSB5xLHEn21hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2V4cGFuZFN0YXR1c0JhciIgbXNnaWQ9IjY5MTc1NDk0MzcxMjk0MDExMzIiPiJUyZl0YmlxyZkgc3RhdHVzIHBhbmVsaW5pIGdlbmnFn2zJmW5kaXJtyZl5yZkgdsmZIHlhIHlveCBldG3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iMzkwNjAwNzgzMTE5Mjk5MDk0NiI+ImdlZMmZbiB6yZluZ2zJmXJpbiBtYXLFn3J1dHVudSBkyZl5acWfbcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iNTMzMTMxODkzMTkzNzQwMjA0MCI+IlTJmXRiaXHJmSB6yZluZyBldG3JmXnJmSB2yZkgesmZbmcgZWRpbMmZbiBuw7ZtcsmZbmkgZMmZeWnFn23JmXnJmSBpbWthbiB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGJ1bmRhbiBpc3RpZmFkyZkgZWTJmXLJmWsgZ2VkyZluIHrJmW5nbMmZcmkgaXpsyZl5yZksIHnDtm5syZluZGlyyZkgdsmZIHlhIHFhcsWfxLFzxLFuxLEgYWxhIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVTbXMiIG1zZ2lkPSI4NjczNDcxNzY4OTQ3ODk1MDgyIj4iU01TIHHJmWJ1bCBldG3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlU21zIiBtc2dpZD0iNjQyNDM4Nzc1NDIyODc2NjkzOSI+IlTJmXRiaXHJmSBNTVMgbWVzYWpsYXLEsW7EsSBhbG1hcSB2yZkgZW1hbCBldG3JmWsgaWNhesmZc2kgdmVyaXIuIEJ1IG8gZGVtyZlrZGlyIGtpLCB0yZl0YmlxIHNpemluIG1lc2FqbGFyxLFuxLF6xLEgc2l6yZkgZ8O2c3TJmXJtyZlkyZluIG1vbml0b3JpbnEgZWTJmSB2yZkgeWEgc2lsyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZU1tcyIgbXNnaWQ9IjE4MjEzMTczNDQ2NjgyNTcwOTgiPiJtyZl0biBtZXNhamxhcsSxbsSxIHHJmWJ1bCBlZGlyIChNTVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZU1tcyIgbXNnaWQ9IjUzMzAxOTQzNzI2MzIxMjI2MCI+IlTJmXRiaXHJmSBNTVMgbWVzYWpsYXLEsW7EsSBxyZlidWwgdsmZIGVtYWwgw7zDp8O8biBpbWthbiB2ZXJpci4gQnUgbyBkZW3JmWtkaXIga2ksIGJ1IHTJmXRiaXEgc2l6yZkgZ8O2c3TJmXJtyZlkyZluIGNpaGF6xLFuxLF6YSBnw7ZuZMmZcmlsyZluIG1lc2FqbGFyxLHCoHNpbMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVFbWVyZ2VuY3lCcm9hZGNhc3QiIG1zZ2lkPSIxODAzNDc3NjYwODQ2Mjg4MDg5Ij4idMmZY2lsaSB5YXnEsW1sYXLEsSBxyZlidWwgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVFbWVyZ2VuY3lCcm9hZGNhc3QiIG1zZ2lkPSI4NDg1MjQwNzAyNjI0MzE5NzQiPiJUyZl0YmlxyZkgdMmZY2lsaSB5YXnEsW0gbWVzYWpsYXLEsW7EsSBxyZlidWwgdsmZIGVtYWwgZXRtyZlrIGljYXrJmXNpIHZlcmlyLiBCdSBpY2F6yZkgYW5jYXEgc2lzdGVtIHTJmXRiaXFsyZlyaSDDvMOnw7xuIG3DvG1rw7xuZMO8ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDZWxsQnJvYWRjYXN0cyIgbXNnaWQ9IjE1OTgzMjg4NDM2MTk2NDYxNjYiPiJtb2JpbCB5YXnEsW0gbWVzYWpsYXLEsW7EsSBveHV5dXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2VsbEJyb2FkY2FzdHMiIG1zZ2lkPSI2MzYxOTcyNzc2MDgwNDU4OTc5Ij4iVMmZdGJpccmZIHNpemluIHRlbGVmb251bnV6IHTJmXLJmWZpbmTJmW4gYWzEsW5txLHFnyB5YXnEsW0gbWVzYWpsYXLEsW7EsSBveHVtYSBpY2F6yZlzaSB2ZXJpci4gVGVsZWZvbiB5YXnEsW3EsSBiyZl6aSBtyZlrYW5sYXJkYSBvbGFuIGbDtnZxyZlsYWTJmSBoYWRpc8mZbMmZcmzJmSBiYcSfbMSxIHNpemkgeMmZYsmZcmRhciBldG3JmWsgw7zDp8O8biBxyZlidWwgZWRpbGlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgZsO2dnHJmWxhZMmZIG1vYmlsIHlhecSxbSBxyZlidWwgZWRpbGRpeWkgemFtYW4gdGVsZWZvbnVudW4gcGVyZm9ybWFuc8SxbmEgdsmZIMmZbcmZbGl5eWF0xLFuYSBtw7xkYXhpbMmZIGVkyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFNtcyIgbXNnaWQ9IjU2MDA4MzA2MTIxNDc2NzE1MjkiPiJTTVMgbWVzYWpsYXLEsW7EsSBnw7ZuZMmZcmlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VuZFNtcyIgbXNnaWQ9IjcwOTQ3MjkyOTgyMDQ5Mzc2NjciPiJUyZl0YmlxyZkgU01TIG1lc2FqxLEgZ8O2bmTJmXJtyZkgaWNhesmZc2kgdmVyaXIuIEJ1IGfDtnpsyZluaWxtyZl5yZluIMO2ZMmZbmnFn2zJmXLJmSBzyZliyZliIG9sYSBiaWzJmXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBzaXppbiB0yZlzZGlxaW5peiBvbG1hZGFuIG1lc2FqIGfDtm5kyZlybcmZa2zJmSBzaXrJmSDDtmTJmW5pxZ/JmSBzyZliyZliIG9sYSBiaWzJmXJsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9Ijg3MTM4ODkxMDUzMDU5NDMyMDAiPiJtZXNhamxhIGNhdmFiIHZlcmlsbcmZbGkgdMmZZGJpcmzJmXIgZ8O2bmTJmXJtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9IjcxMDc2NDg1NDg0Njg3Nzg3MzQiPiJUyZl0YmlxyZkgesmZbmdsyZlyIMO8w6fDvG4gXCJtZXNhamxhIGNhdmFibGFcIiBoYWRpc8mZbMmZcmluaSBpZGFyyZkgZXRtyZlrIMO8w6fDvG4gZGlnyZlyIG1lc2FqbGHFn21hIHTJmXRiaXFsyZlyaW7JmSBzb3LEn3VsYXLEsW4gZ8O2bmTJmXJpbG3JmXNpIGljYXrJmXNpIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFNtcyIgbXNnaWQ9Ijg3NDUwODY1NzIyMTMyNzA0ODAiPiJ0ZWtzdCBtZXNhamxhcsSxbsSxesSxIG94dXl1ciAoU01TIHbJmSB5YSBNTVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNtcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjQ2Nzk4MTU0ODY4NDczNTUyMiI+IlTJmXRiaXHJmSBwbGFuxZ9ldGluaXpkyZkgdsmZIHlhIFNJTSBrYXJ0xLFuxLF6ZGEgc2F4bGFuYW4gU01TIG1lc2FqbGFyxLEgb3h1bWHEn2EgaW1rYW4gdmVyaXIuIEJ1IGLDvHTDvG4gU01TIG1lc2FqbGFyxLFuLCBvbmxhcsSxbiBtyZl6bXVudW5kYW4gdsmZIGtvbmZpZGVuc2lhbGzEscSfxLFuZGFuIGFzxLFsxLEgb2xtYWRhbiBveHVubWFzxLEgaW1rYW7EsSBkZW3JmWtkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2OTU5Njc1MzM0NTcyNDA1NTAiPiJUyZl0YmlxyZkgdGVsZWZvbnVudXpkYSB2yZkgeWEgU0lNIGthcnTEsW7EsXpkYSBzYXhsYW5hbiBTTVMgbWVzYWpsYXLEsSBveHVtYcSfYSBpbWthbiB2ZXJpci4gQnUgYsO8dMO8biBTTVMgbWVzYWpsYXLEsW4sIG9ubGFyxLFuIG3JmXptdW51bmRhbiB2yZkga29uZmlkZW5zaWFsbMSxxJ/EsW5kYW4gYXPEsWzEsSBvbG1hZGFuIG94dW5tYXPEsSBpbWthbsSxIGRlbcmZa2Rpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU21zIiBtc2dpZD0iMzIxNjk1MDQ3MjYzNjIxNDc3NCI+Im3JmXRuIG1lc2FqbGFyxLFuxLF6xLEgcmVkYWt0yZkgZWRpciAoU01TIHbJmSB5YSBNTVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjUxNjA0MTM5NDc3OTQ1MDE1MzgiPiJUyZl0YmlxyZkgdGVsZWZvbnVudXpkYSB2yZkgeWEgU8SwTSBrYXJ0xLFuxLF6ZGEgeWVybMmZxZ/JmW4gU01TIG1lc2FqbGFyYSB5YXptYSBpY2F6yZlzaSB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIHNpemluIG1lc2FqbGFyxLFuxLF6xLEgc2lsyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzI2ODY2ODcwOTA1MjMyODU2NyI+IlTJmXRiaXHJmSB0ZWxlZm9udW51emRhIHbJmSB5YSBTxLBNIGthcnTEsW7EsXpkYSB5ZXJsyZnFn8mZbiBTTVMgbWVzYWpsYXJhIHlhem1hIGljYXrJmXNpIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgc2l6aW4gbWVzYWpsYXLEsW7EsXrEsSBzaWzJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9IjU5OTEzOTg3MTE5MzY1OTA0MTAiPiJtyZl0biBtZXNhamxhcsSxIHHJmWJ1bCBldG3JmWsgKFdBUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9Ijc0ODIzMjE5MDIyMDU4MzM4NSI+IlTJmXRiaXHJmSBXQVAgbWVzYWpsYXIgZ8O2bmTJmXJtyZlrIHbJmSB5YSBxyZlidWwgZXRtyZlrIGlta2FuxLEgdmVyaXIuIEJ1bmEgbWVzYWpsYXLEsSBpemzJmW3JmWsgdsmZIFNpesmZIHjJmWLJmXIgdmVybcmZZMmZbiBzaWxtyZlrIGlta2FubGFyxLEgZGEgZGF4aWxkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRUYXNrcyIgbXNnaWQ9IjY0NjYwOTUzOTY2MjM5MzM5MDYiPiJpxZ9syZluyZluIHTJmXRiaXFsyZlyIMmZbGTJmSBldG3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRUYXNrcyIgbXNnaWQ9Ijc0NTQyMTU5OTU4NDc2NTgxMDIiPiJUyZl0YmlxyZkgaGF6xLFyZGEgdsmZIGF6IMO2bmPJmSBpxZ9syZl5yZluIHRhcMWfxLFyxLFxbGFyIGhhcXHEsW5kYSDJmXRyYWZsxLEgbcmZbHVtYXQgyZlsZMmZIGV0bcmZecmZIGlta2FuIHZlcmlyLiBCdSBkYSBjaWhhemRhIGhhbnPEsSB0yZl0YmlxbMmZcmluIGlzdGlmYWTJmSBvbHVubWFzxLEgaGFxccSxbmRhIG3JmWx1bWF0bGFyxLFuIMmZbGTJmSBlZGlsbcmZc2luyZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcmFjdEFjcm9zc1VzZXJzIiBtc2dpZD0iNzExNDI1NTI4MTk0NDIxMTY4MiI+ImlzdGlmYWTJmcOnaWzJmXIgYXJhc8SxbmRhIMmZbGFxyZkgcXVydXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcmFjdEFjcm9zc1VzZXJzIiBtc2dpZD0iMzY0NjcwOTYzNjIzMzg1Nzg2Ij4iVMmZdGJpccmZIGJ1IGNpaGF6ZGFrxLEgZGlnyZlyIGlzdGlmYWTJmcOnaWzJmXJsyZkgbcO8eHTJmWxpZiBpxZ9syZlyaSBnw7ZybcmZecmZIGljYXrJmSB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGJ1bmRhbiBpc3RpZmFkyZnDp2lsyZlyIGFyYXPEsW5kYWvEsSBxb3J1bm1hbsSxIHBvem1hcSDDvMOnw7xuIGlzdGlmYWTJmSBlZMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVyYWN0QWNyb3NzVXNlcnNGdWxsIiBtc2dpZD0iMjU2NzczNDI4NTU0NTA3NDEwNSI+ImLDvHTDvG4gaXN0aWZhZMmZw6dpbMmZciBpbMmZIMmZbGFxyZkgc2F4bGFtYXEgw7zDp8O8biB0YW0gaMO8cXVxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJhY3RBY3Jvc3NVc2Vyc0Z1bGwiIG1zZ2lkPSIzNzY4NDEzNjgzOTU1MDIzNjYiPiLEsHN0aWZhZMmZw6dpbMmZciBhcmFzxLFuZGEgYsO8dMO8biBtw7xta8O8biDJmWxhccmZbMmZcsmZIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlVXNlcnMiIG1zZ2lkPSIxNjc2MTUwOTExNjcyMjgyNDI4Ij4iaXN0aWZhZMmZw6dpbMmZcmkgaWRhcsmZIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VVc2VycyIgbXNnaWQ9Ijg0MDkzMDY2Njc2NDUzNTU2MzgiPiJUyZl0YmlxbMmZcsmZIGNpaGF6ZGEgb2xhbiBpc3RpZmFkyZnDp2lsyZlyaSwgaGFiZWzJmSBzb3LEn3UgZ8O2bmTJmXJtyZksIHlhcmF0bWEgdsmZIHNpbG3JmSBpem5pIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0RGV0YWlsZWRUYXNrcyIgbXNnaWQ9IjYyMjk0Njg2NzQ3NTM1Mjk1MDEiPiJpxZ9syZluyZluIHTJmXRiaXFsyZlyaW4gZGV0YWxsYXLEsW7EsSDJmWxkyZkgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0RGV0YWlsZWRUYXNrcyIgbXNnaWQ9IjE1MzgyNDc0MTQ0MDcxNzU5OSI+IlTJmXRiaXHJmSBoYXrEsXJkYSB2yZkgYXogw7ZuY8mZIGnFn2zJmXnJmW4gdGFwxZ/EsXLEsXFsYXIgaGFxccSxbmRhIMmZdHJhZmzEsSBtyZlsdW1hdCDJmWxkyZkgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gaXN0aWZhZMmZIGVkyZlyyZlrIMWfyZl4c2kgbcmZbHVtYXRsYXLEsSBvxJ91cmxheWEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVvcmRlclRhc2tzIiBtc2dpZD0iMjAxODU3NTUyNjkzNDQyMjc3OSI+ImnFn2zJmW7JmW4gdMmZdGJpcWzJmXJpbiBzxLFyYXPEsW7EsSBkyZl5acWfbcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Jlb3JkZXJUYXNrcyIgbXNnaWQ9Ijc3MzQyMTc3NTQ4Nzc0MzkzNTEiPiJUyZl0YmlxyZkgdGFwxZ/EsXLEsXFsYXLEsSDDtm4gcGxhbmRhbiBhcnhhIHBsYW5hIGtlw6dpcm3JmXnJmSBpbWthbiB2ZXJpci4gVMmZdGJpcSBidW51IFNpemluIGRheGlsZXRtyZluaXogb2xtYWRhbiBkYSBlZMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlbW92ZVRhc2tzIiBtc2dpZD0iNjgyMTUxMzQwMTg3MDM3NzQwMyI+ImnFn2zJmWsgdMmZdGJpcWzJmXJpIGRheWFuZMSxcsSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlbW92ZVRhc2tzIiBtc2dpZD0iMTM5NDcxNDM1MjA2MjYzNTQ5MyI+IlTJmXRiaXHJmSB0YXDFn8SxcsSxcWxhcsSxIHNpbG3JmXnJmSB2yZkgb25sYXLEsW4gdMmZdGJpcWzJmXJpbmkgbcmZaHYgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gaXN0aWZhZMmZIGVkyZlyyZlrIGRpZ8mZciB0yZl0YmlxbMmZcmluIGnFn2zJmXJpbmkgZGF5YW5kxLFyYSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjczOTExOTEzODQwMjczMDMwNjUiPiJmyZlhbGl5ecmZdCB0b3BsdWxhcsSxbsSxIGlkYXLJmSBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQWN0aXZpdHlTdGFja3MiIG1zZ2lkPSIxNjE1ODgxOTMzMDM0MDg0NDQwIj4iVMmZdGJpccmZIGRpZ8mZciB0yZl0YmlxbMmZcmluIGbJmWFsaXl5yZl0aSBkYXhpbGluZMmZIGbJmWFsaXl5yZl0IHRvcGx1bGFyxLFuxLEgyZlsYXbJmSBldG3JmWssIHNpbG3JmWsgdsmZIGTJmXlpxZ9tyZlrIGlta2FuxLEgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdGFydEFueUFjdGl2aXR5IiBtc2dpZD0iMjkxODc2ODIzODA0NTIwNjQ1NiI+ImjJmXIgaGFuc8SxIGJpciBmyZlhbGl5ecmZdCBiYcWfbGF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhcnRBbnlBY3Rpdml0eSIgbXNnaWQ9Ijk5NzgyMzY5NTM0MzU4NDAwMSI+IsSwY2F6yZkgcW9ydW5tYXPEsSB2yZkgeWEgZWtzcG9ydCBlZGlsbWnFnyBzdGF0dXNkYW4gYXPEsWzEsSBvbG1heWFyYXEsIHTJmXRiaXHJmSBoyZlyIGhhbnPEsSBmyZlhbGl5ecmZdGkgYmHFn2xhdG1hxJ9hIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0U2NyZWVuQ29tcGF0aWJpbGl0eSIgbXNnaWQ9IjY5NzUzODcxMTg4NjE4NDIwNjEiPiJla3JhbiB1ecSfdW5sdcSfdW51IHllcmzJmcWfZGlyaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjkyMDQzNjE4NjkzOTE3Mzc0Ij4iVMmZdGJpccmZIGRpZ8mZciB0yZl0YmlxbMmZcmluIGVrcmFuIHV5xJ91bmx1xJ91bnUgeW94bGFtYXEgaW1rYW7EsSB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGRpZ8mZciB0yZl0YmlxbMmZcmluIGbJmWFsaXl5yZl0aW5pIHBvemEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0RGVidWdBcHAiIG1zZ2lkPSIzMDIyMTA3MTk4Njg2NTg0MDUyIj4idMmZdGJpcSBzYXpsYW5tYXPEsW7EsSBha3RpdiBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0RGVidWdBcHAiIG1zZ2lkPSI0NDc0NTEyNDE2Mjk5MDEzMjU2Ij4iVMmZdGJpccmZIGRpZ8mZciBiaXIgdMmZdGJpcSDDvMOnw7xuIHNhemxhbWFuxLEgYcOnbWFxIMO8w6fDvG4gaW1rYW4gdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW51IGRpZ8mZciB0yZl0YmlxbMmZcmkgeW94IGV0bcmZayDDvMOnw7xuIGlzdGlmYWTJmSBlZMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZUNvbmZpZ3VyYXRpb24iIG1zZ2lkPSI0MTYyMDkyMTg1MTI0MjM0NDgwIj4ic2lzdGVtIGVrcmFuIG5pemFtbGFyxLFuxLEgZMmZeWnFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUNvbmZpZ3VyYXRpb24iIG1zZ2lkPSI0MzcyMjIzODczMTU0Mjk2MDc2Ij4iVMmZdGJpccmZIHllcmxpIHBhcmFtZXRybMmZciB2yZkgeWEgxZ9yaWZ0aW4gw7Zsw6fDvHPDvCBraW1pIGNhcmkga29uZmlxdXJhc2l5YW7EsSBkyZl5acWfbcmZecmZIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZW5hYmxlQ2FyTW9kZSIgbXNnaWQ9IjU2ODQ1MDQwNTgxOTI5MjEwOTgiPiJhdnRvbW9iaWwgcmVqaW1pbmkgYWt0aXZsyZnFn2RpcmlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZW5hYmxlQ2FyTW9kZSIgbXNnaWQ9IjQ4NTMxODc0MjU3NTE0MTk0NjciPiJUyZl0YmlxyZkgYXZ0b21vYmlsIHJlamltaW5pIGFrdGl2bMmZxZ9kaXJtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9raWxsQmFja2dyb3VuZFByb2Nlc3NlcyIgbXNnaWQ9IjM5MTQwMjY2ODc0MjAxNzcyMDIiPiJkaWfJmXIgdMmZdGJpcWzJmXJpIHFhcGF0bWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfa2lsbEJhY2tncm91bmRQcm9jZXNzZXMiIG1zZ2lkPSI0NTkzMzUzMjM1OTU5NzMzMTE5Ij4iVMmZdGJpccmZIGJhxZ9xYSB0yZl0YmlxbMmZcmluIGFyeGFmb24gcHJvc2VzbMmZcmluaSBkYXlhbmTEsXJtYXEgaWNhesmZc2kgdmVyaXIuIEJ1IGRpZ8mZciB0yZl0YmlxbMmZcmluIGRheWFubWFzxLFuYSBzyZliyZliIG9sYSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mb3JjZVN0b3BQYWNrYWdlcyIgbXNnaWQ9IjIzMjk2Mjc0Mjg4MzIwNjc3MDAiPiJEaWfJmXIgdMmZdGJpcWzJmXJpIGRheWFubWHEn2EgbcmZY2J1ciBldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZvcmNlU3RvcFBhY2thZ2VzIiBtc2dpZD0iNTI1MzE1NzI5NjE4Mzk0MDgxMiI+IlTJmXRiaXHJmSBkaWfJmXIgdMmZdGJpcWzJmXJpIG3JmWNidXJpIMWfyZlraWxkyZkgZGF5YW5kxLFybWHEn2EgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mb3JjZUJhY2siIG1zZ2lkPSI2NTI5MzUyMDQwNzI1ODQ2MTYiPiJ0yZl0YmlxaSBxYXBhbm1hxJ9hIG3JmWNidXIgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZm9yY2VCYWNrIiBtc2dpZD0iMzg5MjI5NTgzMDQxOTUxMzYyMyI+IlTJmXRiaXHJmSDDtm4gcGxhbmRhIG9sYW4gaXN0yZluaWzJmW4gdMmZdGJpcWkgYmHEn2xheWFyYXEgZ2VyaXnJmSBkw7ZubcmZecmZIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBoZcOnIHZheHQgaXN0aWZhZMmZIG9sdW5tYW1hbMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2R1bXAiIG1zZ2lkPSIxNjgxNzk5ODYyNDM4OTU0NzUyIj4ic2lzdGVtaW4gZGF4aWxpIGR1cnVtdW51IGLJmXJwYSBldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2R1bXAiIG1zZ2lkPSIxNzc4Mjk5MDg4NjkyMjkwMzI5Ij4iVMmZdGJpccmZIHNpc3RlbWluIGRheGlsaSBzdGF0dXN1bnUgYsmZcnBhIGV0bcmZecmZIGlta2FuIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgbGF6xLFtIG9sbWFkxLHEn8SxIGhhbGRhIG3DvHh0yZlsaWYgxZ/JmXhzaSB2yZkgZ8O8dsmZbmxpIG3JmWx1bWF0bGFyxLEgYsmZcnBhIGVkyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmV0cmlldmVfd2luZG93X2NvbnRlbnQiIG1zZ2lkPSI4MDIyNTg4NjA4OTk0NTg5OTM4Ij4iZWtyYW4ga29udGVudGluaSBiyZlycGEgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iMzE5MzI2OTA2OTQ2OTcwMDI2NSI+IlTJmXRiaXHJmSBha3RpdiBwyZluY8mZcsmZbmluIG3JmXptdW51bnUgyZlsZMmZIGV0bcmZecmZIGlta2FuIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgYnVuZGFuIGlzdGlmYWTJmSBlZMmZcsmZayBwyZluY8mZcsmZIG3JmXptdW51bnUgyZlsyZkga2XDp2lyaWIgcGFyb2xsbGFyxLEgb3h1eWEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdGVtcG9yYXJ5X2VuYWJsZV9hY2Nlc3NpYmlsaXR5IiBtc2dpZD0iMjMxMjYxMjEzNTEyNzMxMDI1NCI+ImdpcmnFnyBpbWthbsSxbsSxIG3DvHbJmXFxyZl0aSBhw6dtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY190ZW1wb3JhcnlfZW5hYmxlX2FjY2Vzc2liaWxpdHkiIG1zZ2lkPSI4MDc5NDU2MjkzMTgyOTc1NDY0Ij4iVMmZdGJpccmZIGNpaGF6YSBnaXJpxZ9pIG3DvHbJmXFxyZl0aSBvbGFyYXEgYWt0aXZsyZnFn2Rpcm3JmXnJmSBpbWthbiB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGlzdGlmYWTJmcOnaSByYXrEsWzEscSfxLEgb2xtYWRhbiBnaXJpxZ9pIGFrdGl2bMmZxZ9kaXLJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9Ijg1MzIyOTUxOTkxMTI1MTkzNzgiPiJwyZluY8mZcsmZIGluZm9zdW51IGLJmXJwYSBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmV0cmlldmVfd2luZG93X2luZm8iIG1zZ2lkPSI0OTk4ODM2MzcwNDI0MTg2ODQ5Ij4iVMmZdGJpccmZIHDJmW5jyZlyyZkgaWRhcsmZw6dpc2luZMmZbiBnyZlsyZluIHdpbmRvd3MgaGFxccSxbmRhIG9sYW4gbcmZbHVtYXTEsSBiyZlycGEgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBkYXhpbGkgc2lzdGVtIGlzdGlmYWTJmXNpIMO8w6fDvG4gbsmZesmZcmTJmSB0dXR1bGFuIG3JmWx1bWF0xLEgYsmZcnBhIGVkyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZmlsdGVyX2V2ZW50cyIgbXNnaWQ9Ijg2NzU1MzU2NDg4MDc0MjczODkiPiJ0yZlkYmlybMmZcmkgZmlsdHIgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4MDA2MjM2MzE1ODg4MzQ3NjgwIj4iVMmZdGJpccmZIGRheGlsZXRtyZkgZmlsdHJpbmkgcWV5ZGl5eWF0IGV0ZGlybcmZecmZIGlta2FuIHZlcmlyLCBidSBmaWx0ciBiw7x0w7xuIGlzdGlmYWTJmcOnaSB0yZlkYmlybMmZcmluaSBnw7ZuZMmZcmlsbcmZbWnFn2TJmW4gyZl2dsmZbCBmaWx0cmTJmW4ga2XDp2lyaXIuIFrJmXLJmXJsaSB0yZl0YmlxIGlzdGlmYWTJmcOnaSBtw7xkYXhpbMmZc2kgb2xtYWRhbiDEsHN0aWZhZMmZw6dpIMSwbnRlcmZleXNpIHNpc3RlbWluyZkgbsmZemFyyZl0IGVkyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFnbmlmeV9kaXNwbGF5IiBtc2dpZD0iNTk3MzYyNjczODE3MDYxODc3NSI+ImVrcmFuxLEgYsO2ecO8ZMO8ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hZ25pZnlfZGlzcGxheSIgbXNnaWQ9IjcxMjEyMzU2ODQ1MTUwMDM3OTIiPiJUyZl0YmlxyZkgZWtyYW4ga29udGVudGluaSBiw7Z5w7x0bcmZayBpY2F6yZlzaSB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGJ1bmRhbiBpc3RpZmFkyZkgZWTJmXLJmWsgZWtyYW5kYSBrb250ZW50aSBiw7Z5w7xkyZlyyZlrIGNpaGF6xLFuIHFleXJpLXN0YWJpbGxpeWluyZkgc8mZYsmZYiBvbGEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2h1dGRvd24iIG1zZ2lkPSI3MTg1NzQ3ODI0MDM4OTA5MDE2Ij4icWlzbcmZbiBzw7ZuZMO8csO8ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NodXRkb3duIiBtc2dpZD0iNzA0NjUwMDgzODc0NjI5MTc3NSI+IkFrdGl2bGlrIGlkYXLJmcOnaWxpeWluaSBxYXBhbm3EscWfIGhhbGEgZ8mZdGlyaXIuIFRhbSBxYXBhbm1hbsSxIGjJmXlhdGEga2XDp2lybWlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RvcEFwcFN3aXRjaGVzIiBtc2dpZD0iNDEzODYwODYxMDcxNzQyNTU3MyI+InTJmXRiaXFkyZluIHTJmXRiaXHJmSBrZcOnaWRpbiBxYXLFn8Sxc8SxbsSxIGFsbWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RvcEFwcFN3aXRjaGVzIiBtc2dpZD0iODI2MjE5NTgwMjU4MjI1NTAyMSI+IsSwc3RpZmFkyZnDp2luaW4gYmHFn3FhIHTJmXRiaXHJmSBrZcOnbcmZc2luaW4gcWFyxZ/EsXPEsW7EsSBhbMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFRvcEFjdGl2aXR5SW5mbyIgbXNnaWQ9IjI1Mzc5MjIzMTE0MTE1NDYwMTYiPiJjYXJpIHTJmXRiaXEgaW5mb3JtYXNpeWFzxLEgyZlsZMmZIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRvcEFjdGl2aXR5SW5mbyIgbXNnaWQ9IjgxNTM2NTE0MzQxNDUxMzI1MDUiPiJTYWhpYsmZIGVrcmFuIMO2bsO8bmTJmSBjYXJpIHTJmXRiaXEgdsmZIHhpZG3JmXRsyZlyIGhhcXHEsW5kYSDFn8mZeHNpIG3JmWx1bWF0IMmZbGTJmSBldG3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3J1blNldEFjdGl2aXR5V2F0Y2hlciIgbXNnaWQ9Ijg5MjIzOTA5NDg2NzE4MjY1NiI+ImnFn8mZIHNhbMSxbmFuIGLDvHTDvG4gdMmZdGJpcWzJmXJpIGl6bMmZeWlyIHbJmSBpZGFyyZkgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3J1blNldEFjdGl2aXR5V2F0Y2hlciIgbXNnaWQ9IjYwMDM2MDMxNjI1Nzg1Nzc0MDYiPiJUyZl0YmlxyZkgc2lzdGVtaW4gZsmZYWxpeXnJmXRsyZlyaSBuZWPJmSBiYcWfbGF0ZMSxxJ/EsW7EsSBuyZl6YXLJmXQgdsmZIGtvbnRyb2wgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBzaXN0ZW1pIHRhbWFtaWzJmSBrb21wcm9taXMgZWTJmSBiaWzJmXIuIEJ1IGljYXrJmSB5YWxuxLF6IGlua2nFn2FmIMO8w6fDvG5kw7xyLCBoZcOnIHZheHQgbm9ybWFsIGlzdGlmYWTJmSDDvMOnw7xuIGRleWlsLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSIyNTc2MzMzNDM0ODkzNTMyNDc1Ij4icWFsZMSxcsSxbG3EscWfIHlhecSxbSBwYWtldGluaSBnw7ZuZMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFBhY2thZ2VSZW1vdmVkIiBtc2dpZD0iNjYyMTkwMTIxNjIwNzkzMTA4OSI+IlTJmXRiaXHJmSB0yZl0YmlxIHBha2V0aW5pbiBzaWxpbm3JmXNpIGhhcXHEsW5kYSBiaWxkaXJpxZ8gdHJhbnNsYXNpeWEgZXRtyZkgaWNhesmZc2kgdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gZGlnyZlyIGnFn2zJmWsgdMmZdGJpcWzJmXJpIGRheWFuZMSxcm1hcSDDvMOnw7xuIGlzdGlmYWTJmSBlZMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Jyb2FkY2FzdFNtc1JlY2VpdmVkIiBtc2dpZD0iNTY4OTA5NTAwOTAzMDMzNjU5MyI+IlNNUyB0yZlyyZlmaW5kyZluIHHJmWJ1bCBlZGlsyZluIHlhecSxbSBnw7ZuZMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFNtc1JlY2VpdmVkIiBtc2dpZD0iNDE1MjAzNzcyMDAzNDM2NTQ5MiI+IlTJmXRiaXHJmSBtZXNhaiBnyZlsbcmZc2kgaGFxccSxbmRhIGJpbGRpcmnFn2kgeWF5xLFtbGFtYXEgaW1rYW7EsSB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGJ1bmRhbiBnyZlsyZluIFNNUyBtZXNhamxhcsSxbsSxIHNheHRhbGHFn2TEsXJtYXEgw7zDp8O8biBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RXYXBQdXNoIiBtc2dpZD0iMzE0NTM0NzQxMzAyODU4MjM3MSI+IldBUC1QVVNIIHTJmXLJmWZpbmTJmW4gccmZYnVsIGVkaWzJmW4geWF5xLFtIGfDtm5kyZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjQ3ODM0MDI1MjUwMzk0NDI3MjkiPiJUyZl0YmlxyZkgV0FQIFBVU0ggbWVzYWrEsW4gYWzEsW5kxLHEn8SxIGhhcWRhIGJpbGRpcmnFnyB0cmFuc2xhc2l5YSBldG3JmXnJmSBpY2F6yZkgdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gaXN0aWZhZMmZIGVkyZlyyZlrIHNheHRhIE1NUyBtZXNhaiBhbMSxxZ/EsSB2yZkgeWEgc8mZc3NpemPJmSBpc3TJmW5pbMmZbiB2ZWIgc8mZaGlmyZluaSB6yZlyyZlydmVyaWNpIHZhcmlhbnRsYXJsYSBkyZl5acWfbcmZayDDvMOnw7xuIGlzdGlmYWTJmSBlZMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFByb2Nlc3NMaW1pdCIgbXNnaWQ9IjI0NTE4NzM2NjQzNjM2NjI2NjYiPiLDp2FsxLHFn2FuIHByb3Nlc2zJmXJpbiBzYXnEsW7EsSBtyZloZHVkbGHFn2TEsXLEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRQcm9jZXNzTGltaXQiIG1zZ2lkPSI3MzE4MDYxMzE0MDQwODc5NTQyIj4iVMmZdGJpccmZIGnFn2zJmWRpbMmZY8mZayBtYWtzaW11bSBwcm9zZXMgc2F5xLFuxLEgaWRhcsmZIGV0bcmZIGl6bmkgdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIHTJmWzJmWIgb2x1bm11ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldEFsd2F5c0ZpbmlzaCIgbXNnaWQ9IjU1MDk1ODUwNzc5ODc5Njk2NSI+ImFyeGFmb24gdMmZdGJpcWzJmXJpbmkgZGF5YW5tYcSfYSBtyZljYnVyIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbHdheXNGaW5pc2giIG1zZ2lkPSI3NDcxMzEwNjUyODY4ODQxNDk5Ij4iVMmZdGJpccmZIGFrdGl2aXRpbMmZcmluIGFyeGEgZm9uYSBnZXRkaXlpIHphbWFuIGJpdG3JmXNpbmkgeW94bGF5xLFyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiB0yZlsyZluIG9sdW5tdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iYXR0ZXJ5U3RhdHMiIG1zZ2lkPSIyNzg5NjEwNjczNTE0MTAzMzY0Ij4iYmF0YXJleWEgc3RhdGlzdGlrYWxhcsSxbsSxIG94dW1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JhdHRlcnlTdGF0cyIgbXNnaWQ9IjU4OTczNDY1ODI4ODI5MTUxMTQiPiJUyZl0YmlxyZkgY2FyaSBhxZ9hxJ/EsSBzyZl2aXl5yZlsaSBkYXRhIHNpdGlmYWTJmXNpbmkgb3h1bWFxIGlta2FuxLEgdmVyaXIuIFTJmXRiaXHJmSBoYW5zxLEgdMmZdGJpcWkgaXN0aWZhZMmZIGV0ZGl5aW5peiBoYXFxxLFuZGEgyZl0cmFmbMSxIG3JmWx1bWF0IHRhcG1hxJ9hIGlta2FuIHZlcsmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUJhdHRlcnlTdGF0cyIgbXNnaWQ9IjM3MTk2ODk3NjQ1MzYzNzk1NTciPiJiYXRhcmV5YSBzdGF0aXN0aWthbGFyxLFuxLEgZMmZeWnFn23JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVCYXR0ZXJ5U3RhdHMiIG1zZ2lkPSI2ODYyODE3ODU3MTc4MDI1MDAyIj4iVMmZdGJpccmZIHnEscSfxLFsbcSxxZ8gYmF0YXJleWEgc3RhdGlzdGlrYXPEsW7EsSByZWRha3TJmSBldG3JmSBpY2F6yZlzaSB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gaXN0aWZhZMmZIGVkaWxtaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRBcHBPcHNTdGF0cyIgbXNnaWQ9IjE1MDg3Nzk2ODc0MzY1ODU3NDQiPiJ0yZl0YmlxIMmZbcmZbGl5eWF0IHN0YXRpc3Rpa2FsYXLEsW7EsSDJmWxkyZkgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QXBwT3BzU3RhdHMiIG1zZ2lkPSI2MjQzODg3MDQxNTc3OTEyODc3Ij4iVG9wbGFubcSxxZ8gdMmZdGJpcSDJmW3JmWxpeXlhdCBzdGF0aXN0aWthbGFyxLFuxLFuIGLJmXJwYSBlZGlsbcmZc2luyZkgaW1rYW4gdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIGlzdGlmYWTJmSDDvMOnw7xuIGRleWlsLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlQXBwT3BzU3RhdHMiIG1zZ2lkPSI4ODI5MDk3MzczODUxNTIxNTA1Ij4idMmZdGJpcSDJmW3JmWxpeXlhdCBzdGF0aXN0aWthc8SxbsSxIGTJmXlpxZ9tyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXBkYXRlQXBwT3BzU3RhdHMiIG1zZ2lkPSI1MDc4NDU5NjU5NDQwMzQ4MyI+IlTJmXRiaXHJmSB0b3BsYW5txLHFnyB0yZl0YmlxIMmZbcmZbGl5eWF0IHN0YXRpc3Rpa2FzxLFuxLEgZMmZeWnFn23JmXnJmSBpbWthbiB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gaXN0aWZhZMmZIG9sdW5tdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iYWNrdXAiIG1zZ2lkPSI0NzAwMTMwMjI4NjU0NTM5MjAiPiJzaXN0ZW0geWVkyZlrbMmZbcmZc2kgdsmZIGLJmXJwYXPEsW7EsSBpZGFyyZkgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JhY2t1cCIgbXNnaWQ9IjY5MTIyMzA1MjUxNDA1ODk4OTEiPiJUyZl0YmlxyZkgc2lzdGVtaSByZXplcnYgZXRtyZl5yZkgdsmZIG1leGFuaXptaSBiyZlycGEgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIGlzdGlmYWTJmSBlZGlsbcmZayDDvMOnw7xuIG7JmXrJmXJkyZkgdHV0dWxtYXnEsWIuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlybV9mdWxsX2JhY2t1cCIgbXNnaWQ9IjU1NTcwNzEzMjU4MDQ0NjkxMDIiPiJ0YW0gcmV6ZXJ2aSB0yZlzZGlxIGV0bcmZayB2yZkgeWEgyZltyZlsaXl5YXTEsSBiyZlycGEgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlybV9mdWxsX2JhY2t1cCIgbXNnaWQ9IjE3NDg3NjIxNzE2Mzc2OTk1NjIiPiJUyZl0YmlxyZkgxLBzdGlmYWTJmcOnaSDEsG50ZXJmZXlzaSB0YW0gcmV6ZXJ2IHTJmXNkaXFpbmkgacWfyZkgc2FsbWHEn2EgaW1rYW4gdmVyaXIuIEhlw6cgYmlyIHTJmXRiaXEgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgb2x1bm1hbWFsxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW50ZXJuYWxTeXN0ZW1XaW5kb3ciIG1zZ2lkPSIyMTQ4NTYzNjI4MTQwMTkzMjMxIj4iaWNhesmZc2l6IHDJmW5jyZlyyZlsyZlyaSBnw7Zyw7xudMO8bMmZeWlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJuYWxTeXN0ZW1XaW5kb3ciIG1zZ2lkPSI3NDU4Mzg3NzU5NDYxNDY2Mzk3Ij4iVMmZdGJpccmZIGRheGlsaSBzaXN0ZW0gaW50ZXJmZXlzaSB0yZlyyZlmaW5kyZluIGlzdGlmYWTJmSBlZGlsbcmZc2kgw7zDp8O8biBuyZl6yZlyZMmZIHR1dHVsbXXFnyBwyZluY8mZcsmZbMmZcmkgeWFyYXRtYcSfYSBpY2F6yZkgdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIGlzdGlmYWTJmSBlZGlsbWlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3lzdGVtQWxlcnRXaW5kb3ciIG1zZ2lkPSIzNTQzMzQ3OTgwODM5NTE4NjEzIj4iZGlnyZlyIHTJmXRiaXFsyZlyIMO8esmZcmluZMmZIMOnyZlrbcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N5c3RlbUFsZXJ0V2luZG93IiBtc2dpZD0iODU4NDY3ODM4MTk3MjgyMDExOCI+IlTJmXRiaXHJmSBkaWfJmXIgdMmZdGJpcWzJmXJpbiB2yZkgeWEgb25sYXLEsW4gaGlzc8mZbMmZcmluaW4geXV4YXLEsXPEsW5kYSDFn8mZa2lsIMOnyZlrbcmZecmZIGlta2FuIHZlcmlyLiBPbmxhciBpc3TJmW5pbMmZbiB0yZl0YmlxaW4gaW50ZXJmZXlzaW5pbiBpc3RpZmFkyZlzaW7JmSBtw7xkYXhpbMmZIGVkyZkgdsmZIHlhIGRpZ8mZciB0yZl0YmlxbMmZcmTJmSBheHRhcmTEsXFsYXLEsW7EsXrEsSBkyZl5acWfyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0QW5pbWF0aW9uU2NhbGUiIG1zZ2lkPSIyODA1MTAzMjQxMTUzOTA3MTc0Ij4icWxvYmFsIGFuaW1hc2l5YSBzw7xyyZl0aW5pIGTJmXlpxZ9pciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFuaW1hdGlvblNjYWxlIiBtc2dpZD0iNzY5MDA2MzQyODkyNDM0MzU3MSI+IlTJmXRiaXHJmSBpc3TJmW5pbMmZbiB2YXh0IHFsb2JhbCBhbmltYXNpeWEgc8O8csmZdGluaSAoc8O8csmZdGxpIHbJmSB5YSB5YXZhxZ8gYW5pbWFzaXlhbGFyKSBkyZl5acWfZGlybcmZayBpbWthbsSxIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQXBwVG9rZW5zIiBtc2dpZD0iMTI4NjUwNTcxNzA1MDEyMTM3MCI+InTJmXRiaXEgbmnFn2FubGFyxLFuxLEgaWRhcsmZIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFwcFRva2VucyIgbXNnaWQ9IjgwNDM0MzE3MTMwMTQzOTU2NzEiPiJUyZl0YmlxbMmZcsmZIG9ubGFyxLFuIG5vcm1hbCBaLW9yZGVyaW5xaSBrZcOnyZlyyZlrIG1hcmtlcmzJmXJpbmkgeWFyYXRtYSB2yZkgaWRhcsmZZXRtyZkgaWNhesmZc2kgdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIGlzdGlmYWTJmSBvbHVubXVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZnJlZXplU2NyZWVuIiBtc2dpZD0iNDcwODE4MTE4NDQ0MTg4MDE3NSI+ImVrcmFuxLEgZG9uZHVydXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mcmVlemVTY3JlZW4iIG1zZ2lkPSI4NTU4OTIzNzg5MjIyNjcwMDY0Ij4iVMmZdGJpccmZIHRhbSBla3JhbmzEsSB5YXnEsW0gw7zDp8O8biBla3JhbsSxIG3DvHbJmXFxyZl0aSBvbGFyYXEgZG9uZHVybWEgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbmplY3RFdmVudHMiIG1zZ2lkPSIxMzc4NzQ2NTg0MDIzNTg2NjAwIj4iZMO8eW3JmWzJmXJpIHbJmSBpZGFyyZlldG3JmSBkw7x5bcmZbMmZcmluaSBiYXPEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbmplY3RFdmVudHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNjM1MjU2NTU5OTk2ODYzMiI+IlTJmXRiaXHJmSDDtnrDvG7DvG4gZGF4aWxldG3JmSB0yZlkYmlybMmZcmluaSBkaWfJmXIgdMmZdGJpcWzJmXLJmSDDp2F0ZMSxcm1hxJ9hIGlta2FuIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgcGxhbsWfZXRpIMmZbMmZIGtlw6dpcm3JmWsgw7zDp8O8biBidW5kYW4gaXN0aWZhZMmZIGVkyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1MzEyODA1NzU3MjMyNjI1MyI+IlTJmXRiaXHJmSDDtnrDvG7DvG4gZGF4aWxldG3JmSB0yZlkYmlybMmZcmluaSBkaWfJmXIgdMmZdGJpcWzJmXLJmSDDp2F0ZMSxcm1hxJ9hIGlta2FuIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgdGVsZWZvbnUgyZlsyZkga2XDp2lybcmZayDDvMOnw7xuIGJ1bmRhbiBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkSW5wdXRTdGF0ZSIgbXNnaWQ9IjQ2OTQyODkwMDA0MTI0OTIzNCI+InlhemTEsXFsYXLEsW7EsXrEsSB2yZkgZXRkaWtsyZlyaW5pemkgaXpsyZl5aXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkSW5wdXRTdGF0ZSIgbXNnaWQ9IjgzODc3NTQ5MDE2ODg3MjgwNDMiPiJUyZl0YmlxyZkgYmFzZMSxxJ/EsW7EsXogZMO8eW3JmWzJmXJpIGl6bMmZbcmZayBpbWthbsSxIHZlcmlsaXIuIEJ1bmEgcGFyb2xsYXLEsW4gdsmZIGtyZWRpdCBrYXJ0xLEgbsO2bXLJmWzJmXJpbmluIHlhesSxbG1hc8SxIGRhIGFpZGRpci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gaXN0aWZhZMmZIG9sdW5tdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kSW5wdXRNZXRob2QiIG1zZ2lkPSIzMzYwMDY0NjIwMjMwNTE1Nzc2Ij4iZGF4aWxldG3JmSBtZXRvZHVuYSBiYcSfbGFuxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZElucHV0TWV0aG9kIiBtc2dpZD0iMzI1MDQ0MDMyMjgwNzI4NjMzMSI+IlNhaGliaW7JmSBkYXhpbGV0bcmZIG1ldG9kdW51biDJmW4gw7xzdCBzyZl2aXl5yZkgaW50ZXJmZXlzaW7JmSBiYcSfbGFtYXEgaW1rYW7EsSB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIMO8w6fDvG4gaGXDpyB2YXh0IGxhesSxbSBvbG1hbWFsxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZEFjY2Vzc2liaWxpdHlTZXJ2aWNlIiBtc2dpZD0iNTM1NzczMzk0MjU1NjAzMTU5MyI+ImdpcmnFnyB4aWRtyZl0aW7JmSBiYcSfbMSxIHFhbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRBY2Nlc3NpYmlsaXR5U2VydmljZSIgbXNnaWQ9IjcwMzQ2MTU5Mjg2MDkzMzEzNjgiPiJTYWhpYsmZIGdpcmnFnyB4aWRtyZl0aW4gyZluIMO8c3Qgc8mZdml5ecmZIGludGVyZmV5c2kgYmHEn2xhbWHEn2EgaW1rYW4gdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciDDvMOnw7xuIGhlw6cgdmF4dCBsYXrEsW0gb2xtYW1hbMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRQcmludFNlcnZpY2UiIG1zZ2lkPSI4NDYyODE1MTc5NTcyNzQ4NzYxIj4iw6dhcCBzZXJ2aXNpbmkgcW/Fn21hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFByaW50U2VydmljZSIgbXNnaWQ9Ijc5NjAwNjc2MjMyMDkxMTExMzUiPiJTYWhpYmluyZkgYmlyIMOnYXAgeGlkbcmZdGluaW4gyZluIMO8c3Qgc8mZdml5yZkgYXJhw7x6w7xuw7wgYmHEn2xhbWHEn2EgaW1rYW4gdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciDDvMOnw7xuIGhlw6cgdmF4dCBsYXrEsW0gb2xtYW1hbMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0FsbFByaW50Sm9icyIgbXNnaWQ9IjExMjA3OTI0Njg0NjU3MTExNTkiPiJiw7x0w7xuIMOnYXAgacWfbMmZcmluyZkgZ2lyacWfIMmZbGTJmSBldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0FsbFByaW50Sm9icyIgbXNnaWQ9IjI5NzgxODUzMTEwNDE4NjQ3NjIiPiJTYWhpYmluyZkgZGlnyZlyIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4geWFyYWTEsWxhbiDDp2FwIGnFn2zJmXJpbsmZIGdpcmnFnyBow7xxdXF1IHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgw7zDp8O8biB0yZlsyZliIG9sdW5tYW1hbMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iMjc1MjczMTMwMDQxOTQxMDcyNCI+Ik5GQyB4aWRtyZl0bMmZcmluyZkgcW/Fn3VuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSI2MTIwNjQ3NjI5MTc0MDY2ODYyIj4iU2FoaWJpbsmZIE5GQyBrYXJ0bGFyxLFuxLEgZW11bHlhc2l5YSBlZMmZbiB0yZl0YmlxbMmZcmkgYmlyLWJpcmluyZkgcW/Fn21hxJ9hIGljYXrJmSB2ZXJpbi4gTm9ybWFsIHTJmXRiaXFsyZlyIMO8w6fDvG4gbGF6xLFtIGRleWlsLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iNzM1ODM3ODQwMTkxNTI4NzkzOCI+Im3JmXRuIHNlcnZpc2luaSBxb8WfbWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVGV4dFNlcnZpY2UiIG1zZ2lkPSI4MTUxOTY4OTEwOTczOTk4NjcwIj4iU2FoaWJpbsmZIGJpciBtyZl0biB4aWRtyZl0aW5pbiDJmW4gw7xzdCBzyZl2aXl5yZkgYXJhw7x6w7xuw7wgYmHEn2xhbWHEn2EgaW1rYW4gdmVyaXIobcmZc8mZbMmZbiwgU3BlbGxDaGVja2VyU2VydmljZSkuIE5vcm1hbCB0yZl0YmlxbMmZciDDvMOnw7xuIGhlw6cgdmF4dCBsYXrEsW0gb2xtYW1hbMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRWcG5TZXJ2aWNlIiBtc2dpZD0iNDcwODU5NjAyMTE2MTQ3MzI1NSI+IlZQTiB4aWRtyZl0yZkgyZlsYXHJmWzJmW5kaXJtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSIyMDY3ODQ1NTY0NTgxNjkzOTA1Ij4iU2FoaWJpbsmZIGJpciBWcG4geGlkbcmZdGluaW4gyZluIMO8c3Qgc8mZdml5ecmZIGFyYcO8esO8bsO8IGJhxJ9sYW1hxJ9hIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgw7zDp8O8biBoZcOnIHZheHQgbGF6xLFtIG9sbWFtYWzEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kV2FsbHBhcGVyIiBtc2dpZD0iODcxNjQwMDI3OTkzNzg1NjQ2MiI+ImRpdmFyIGthxJ/EsXrEsW5hIGJhxJ9sYW7EsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kV2FsbHBhcGVyIiBtc2dpZD0iNzEwODQyODY5MjU5NTQ5MTY2OCI+IkNpaGF6IHNhaGliaW7JmSB5dXhhcsSxIHPJmXZpeXnJmWxpIGRpdmFyIGthxJ/EsXrEsSBpbnRlcmZleXNpbmkgY2lsZGzJmW3JmXnJmSBpbWthbiB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gaXN0aWZhZMmZIG9sdW5tYW1hbMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjU2OTc5ODc3NTk4OTczNjcwOTkiPiJ3aWRnZXQgc2VydmlzaW5pIHFvxZ9tYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjQ3MTc5ODc4MTAxMzc2OTI1NzIiPiJTYWhpYmluyZkgdmlkY2V0IHNlcnZpc2luIHnDvGtzyZlrIHPJmXZpeXnJmWxpIGludGVyZmV5c2kgaWzJmSDJmWxhccmZIHNheGxhbWFxIGljYXrJmXNpIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBoZcOnIHZheHQgaXN0yZluaWxtyZltyZlsaWRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9Ijg3MDQ5ODYxNjM3MTE0NTUwMTAiPiJjaWhheiBhZG1pbmkgaWzJmSDDvG5zaXl5yZl0IHF1cm1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9IjU2OTcxNTQxOTU0MzkwNzkzMCI+IlNhaGliaW7JmSBiaXIgY2loYXogaWRhcsmZw6dpc2luyZkgcGxhbmxhciBnw7ZuZMmZcm3JmWsgw7zDp8O8biBpbWthbiB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIMO8w6fDvG4gaGXDpyB2YXh0IGxhesSxbSBvbG1hbWFsxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNDI0ODgyODkwMDA0NTgwODcyMiI+ImNpaGF6IGFkbWluaSDJmWxhdsmZIGVkaW4gdsmZIHlhIHNpbGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNTAyNTYwODE2NzcwOTk0MjQ4NSI+IlNhaGliaW7JmSBha3RpdiBjaWhheiBhZG1pbmlzdHJhdG9ybGFyxLFuxLEgyZlsYXbJmSBldG3JmXnJmSB2yZkgeWEgc2lsbcmZecmZIGljYXrJmSB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIMO8w6fDvG4gdMmZbMmZYiBvbHVubWFtYWzEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRPcmllbnRhdGlvbiIgbXNnaWQ9IjMzNjU5NDc3MTcxNjM4NjY4NDQiPiJla3JhbiBvcml5ZW50YXNpeWFzxLFuxLEgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0T3JpZW50YXRpb24iIG1zZ2lkPSIzMDQ2MTI2NjE5MzE2NjcxNDc2Ij4iVMmZdGJpccmZIGlzdMmZbmlsyZluIHphbWFuIGVrcmFuxLFuIHbJmXppeXnJmXRpbmkgZMmZeWnFn23JmSBpY2F6yZlzaSB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gdMmZbMmZYiBvbHVubXVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0UG9pbnRlclNwZWVkIiBtc2dpZD0iOTE3NTM3MTYxMzMyMjU2MjkzNCI+Imt1cnNvciBzw7xyyZl0aW5pIGTJmXlpxZ9tyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UG9pbnRlclNwZWVkIiBtc2dpZD0iNjg2NjU2MzIzNDI3NDEwNDIzMyI+IlTJmXRiaXHJmSBtYXVzdW4gdsmZIHlhIHRyZWtwZWRpbiBrdXJzb3Igc8O8csmZdGluaSBpc3TJmW5pbMmZbiB6YW1hbiBkyZl5acWfbcmZecmZIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgb2x1bm1hbWFsxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0S2V5Ym9hcmRMYXlvdXQiIG1zZ2lkPSI0Nzc4NzMxNzAzNjAwOTA5MzQwIj4ia2xhdmlhdHVyYSBzeGVtaW5pIGTJmXlpxZ9pciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEtleWJvYXJkTGF5b3V0IiBtc2dpZD0iODQ4MDAxNjc3MTEzNDE3NTg3OSI+IlTJmXRiaXHJmSBrbGF2aWF0dXJhIHN4ZW1pbmkgZMmZeWnFn23JmWsgaW1rYW7EsSB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gdMmZbMmZYiBvbHVubXVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2lnbmFsUGVyc2lzdGVudFByb2Nlc3NlcyIgbXNnaWQ9IjQ1MzkwMDI5OTE5NDczNzY2NTkiPiJ0yZl0YmlxbMmZcsmZIExpbnV4IHNpcW5hbGxhcsSxIGfDtm5kyZlyaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zaWduYWxQZXJzaXN0ZW50UHJvY2Vzc2VzIiBtc2dpZD0iNDg5Njk5MjA3OTE4MjY0OTE0MSI+IlTJmXRiaXHJmSBiw7x0w7xuIGRhdmFtbMSxIHByb3Nlc2zJmXLJmSBzaXFuYWwgc2/En3J1c3UgZ8O2bmTJmXJtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJzaXN0ZW50QWN0aXZpdHkiIG1zZ2lkPSI4ODQxMTEzNjI3OTU1NTYzOTM4Ij4idMmZYmlxaSBoyZltacWfyZkgw6dhbMSxxZ9kxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyc2lzdGVudEFjdGl2aXR5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTI1MTg5MjcyMzI5MDg2MTM3Ij4iVMmZdGJpccmZIMO2eiBrb21wb25lbnRsyZlyaW5pIHlhZGRhxZ9kYSBzYXhsYW1hIGljYXrJmXNpIHZlcmlyLiBCdSBwbGFuxZ9ldGluIHPDvHLJmXRpbmkgesmZaWZsyZl0bcmZa2zJmSwgZGlnyZlyIHTJmXRiaXFsyZlyIMO8w6fDvG4gbcO2dmN1ZCBvbGFuIHlhZGRhxZ/EsSBsaW1pdGzJmXnJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyc2lzdGVudEFjdGl2aXR5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDM4NDc2MDA0NzUwODI3ODI3MiI+IlTJmXRiaXHJmSDDtnoga29tcG9uZW50bMmZcmluaSB5YWRkYcWfZGEgc2F4bGFtYSBpY2F6yZlzaSB2ZXJpci4gQnUgZGlnyZlyIHTJmXRiaXFsyZlyIMO8w6fDvG4gbcO2dmN1ZCBvbGFuIHlhZGRhxZ/EsSBsaW1pdGzJmXnJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZWxldGVQYWNrYWdlcyIgbXNnaWQ9IjE4NDM4NTEyOTUzNzcwNTkzOCI+InTJmXRiaXFsyZlyaSBzaWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZWxldGVQYWNrYWdlcyIgbXNnaWQ9Ijc0MTE0ODAyNzUxNjcyMDUwODEiPiJUyZl0YmlxyZkgQW5kcm9pZCBwYWtldGzJmXJpIHNpbG3JmSBpY2F6yZlzaSB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGJ1bmRhbiBkaWfJmXIgdmFjaWIgdMmZdGJpcWzJmXJpIHNpbG3JmWsgw7zDp8O8biBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jbGVhckFwcFVzZXJEYXRhIiBtc2dpZD0iMjc0MTA5MTkxODQ1ODQyNzU2Ij4iZGlnyZlyIHTJmXRiaXFsyZlyaW4gbcmZbHVtYXTEsW7EsSBzaWxpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NsZWFyQXBwVXNlckRhdGEiIG1zZ2lkPSI0NjI1MzIzNjg0MTI1NDU5NDg4Ij4iVMmZdGJpccmZIGlzdGlmYWTJmcOnaSBkYXRhc8SxbsSxIHTJmW1pemzJmW3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RlbGV0ZUNhY2hlRmlsZXMiIG1zZ2lkPSIzMTI4NjY1NTcxODM3NDA4Njc1Ij4iZGlnyZlyIHTJmXRiaXFsyZlyaW4ga2XFn2luaSBzaWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZWxldGVDYWNoZUZpbGVzIiBtc2dpZD0iMzgxMjk5ODU5OTAwNjczMDE5NiI+IlTJmXRiaXHJmSBrZcWfIGZheWxsYXLEsSBzaWxtyZkgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9Ijc0NzI5MjE3NjgzNTc5ODE5ODYiPiJ0yZl0YmlxIHNheGxhbWEgeWFkZGHFn8SxbsSxIMO2bMOnbcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFBhY2thZ2VTaXplIiBtc2dpZD0iMzkyMTA2ODE1NDQyMDczODI5NiI+IlTJmXRiaXHJmSDDtnrDvG7DvG4ga29kdW51LCBtyZlsdW1hdMSxbsSxIHbJmSBrZcWfIMO2bMOnw7xzw7xuw7wgYWxtYSBpY2F6yZlzaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxQYWNrYWdlcyIgbXNnaWQ9IjIxOTkxMjg0ODI4MjAzMDY5MjQiPiJiaXJiYcWfYSB0yZl0YmlxbMmZciBxdXJhxZ9kxLFybWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iNTYyODUzMDk3MjU0ODA3MTI4NCI+IlTJmXRiaXHJmSB5ZW5pIHbJmSB5YSBnw7xuY8mZbGzJmW5tacWfIEFuZHJvaWQgcGFrZXRsyZlyaW5pIHF1cmHFn2TEsXJtYcSfYSBpbWthbiB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGJ1bmRhbiBpc3RpZmFkyZkgZWTJmXLJmWsgZ8O8Y2zDvCBzyZlsYWhpeXnJmXRsyZlyyZkgbWFsaWsgdMmZdGJpcWzJmXJpIGVuZGlyyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2xlYXJBcHBDYWNoZSIgbXNnaWQ9Ijc0ODcyNzkzOTE3MjM1MjY4MTUiPiJiw7x0w7xuIHTJmXRiaXEga2XFnyBkYXRhc8SxbsSxIHNpbGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBDYWNoZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODk3NDY0MDg3MTk0NTQzNDU2NSI+IlTJmXRiaXHJmSBwbGFuxZ9ldGluIHlhZGRhxZ/EsW7EsSBib8WfYWx0bWFxIMO8w6fDvG4gZGlnyZlyIHTJmXRiaXFsyZlyaW4ga2XFnyBmYXlsbGFyxLFuxLEgc2lsbcmZayBpbWthbsSxIHZlcmlyLiBCdSBkYSBkaWfJmXIgdMmZdGJpcWzJmXJpbiBkYXRhbGFyxLEgeWVuaWTJmW4gyZlsZMmZIGV0bcmZbMmZcmkgc8mZYsmZYmluZMmZbiBkYWhhIHlhdmHFnyBpxZ9syZltyZlsyZlyaW7JmSBzyZliyZliIG9sYSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBDYWNoZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI0NTk0NDEwMjE5NTY0MzY3NzkiPiJUyZl0YmlxyZkgZGlnyZlyIHTJmXRiaXFsyZlyaW4ga2XFnyBxb3ZsdcSfdW51IHTJmW1pemzJmXnJmXLJmWsgdGVsZWZvbnVuIHlhZGRhxZ/EsW7EsSBib8WfYWx0bWFxIGljYXrJmXNpIHZlcmlyLiBCdSBkaWfJmXIgdMmZdGJpcWzJmXJpbiBtyZlsdW1hdGxhcsSxbsSxIHllbmlkyZluIMmZbGTJmSBldG3JmWxpIG9sZHVxbGFyxLFuYSBnw7ZyyZkgZGFoYSB5YXZhxZ8gYmHFn2xhbWFzxLFuYSBzyZliyZliIG9sdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3ZlUGFja2FnZSIgbXNnaWQ9IjMyODk4OTAyNzE2NDU5MjE0MTEiPiJ0yZl0YmlxIHJlc3Vyc2xhcsSxbsSxbiB5ZXJpbmkgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW92ZVBhY2thZ2UiIG1zZ2lkPSIzMTk1NjIyMTc3NzgyNDQ1MjQiPiJUyZl0YmlxyZkgdMmZdGJpcSByZXN1cnNsYXLEsW7EsSBkYXhpbGkgbWVkaWFkYW4geGFyaWNpIG1lZGlheWEgdsmZIMmZa3NpbsmZIGRhxZ/EsW1hxJ9hIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZExvZ3MiIG1zZ2lkPSI2NjE1Nzc4NTQzMTk4OTY3NjE0Ij4ibcmZeGZpIGxvcSBkYXRhc8SxbsSxIG94dXl1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MjA2MTMxMzI5MzQ1NTE1MSI+IlTJmXRiaXHJmSBzaXN0ZW1pbiBtw7x4dMmZbGlmIGp1cm5hbCBmYXlsbGFyxLFuxLEgb3h1bWHEn2EgaW1rYW4gdmVyaXIuIEJ1IGRhIFNpemluIHBsYW7Fn2V0ZMmZIGV0ZGlrbMmZcmluaXogaGFxccSxbmRhIG3JmWx1bWF0bGFyLCBoyZltw6dpbmluIMWfyZl4c2kgdsmZIGtvbmZpZGVuc2lhbCBtyZlsdW1hdGxhciBvbGEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjA2MzQzODE0MDI0MTU2MDQ0MyI+IlTJmXRiaXHJmSBzaXN0ZW1pbiBtw7x4dMmZbGlmIGp1cm5hbCBmYXlsbGFyxLFuxLEgb3h1bWHEn2EgaW1rYW4gdmVyaXIuIEJ1IGRhIFNpemluIHBsYW7Fn2V0ZMmZIGV0ZGlrbMmZcmluaXogaGFxccSxbmRhIG3JmWx1bWF0bGFyLCBoyZltw6dpbmluIMWfyZl4c2kgdsmZIGtvbmZpZGVuc2lhbCBtyZlsdW1hdGxhciBvbGEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjcxNTgwNTU1NTgyMzg4MTgxOCI+Im94dXRtYXEgw7zDp8O8biBpc3TJmW5pbMmZbiBtZWRpYSBkZWtvZGVyaSBpc3RpZmFkyZkgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI4MjgzOTEyNDg4NDMzMTg5MDEwIj4iVMmZdGJpccmZIHBsYXliYWNrXCdpIGRlxZ9pZnLJmSBldG3JmWsgw7zDp8O8biBoyZlyIGhhbnPEsSBiaXIgcXVyYcWfZMSxcsSxbG3EscWfIG1lZGlhIGRlxZ9pZnLJmWzJmXlpY2lzaW5pIGlzdGlmYWTJmSBldG3EsWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUNhQ2VydGlmaWNhdGVzIiBtc2dpZD0iMTY3ODM5MTg5Njc4Njg4MjAxNCI+ImV0aWJhcmzEsSBldGltYWRuYW3JmWzJmXJpIGlkYXLJmSBldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUNhQ2VydGlmaWNhdGVzIiBtc2dpZD0iNDAxNTY0NDA0NzE5NjkzNzAxNCI+IlTJmXRiaXHJmSBldGliYXJsxLEgZXRpbWFkbmFtyZlsyZlyIGtpbWkgQ0Egc2VydGlmaWthdGxhcsSxbsSxIHF1cmHFn2TEsXJtYXEgdsmZIHNpc3RlbWTJmW4gc2lsbcmZecmZIGljYXrJmSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RpYWdub3N0aWMiIG1zZ2lkPSI4MDc2NzQzOTUzOTA4MDAwMzQyIj4iZGlhZ2EgbcmZeHN1cyBvbGFuIG3JmW5iyZlsyZlyaSB5YXovb3h1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlhZ25vc3RpYyIgbXNnaWQ9IjY2MDgyOTU2OTIwMDI0NTIyODMiPiJUyZl0YmlxyZkgZGlhZyBxcnVwYSBtyZlzdXMgb2xhbiByZXN1cnNsYXLEsSB5YXptYXEgdsmZIG94dW1hcSBpY2F6yZlzaSB2ZXJpcjsgbcmZc8mZbMmZbiAgL2RldiBxb3ZsdcSfdW5kYWvEsSBmYXlsbGFyLiBCdSBzaXN0ZW1pbiBzdGFiaWxsaXlpbsmZIHbJmSB0yZlobMO8a8mZc2l6bGl5aW7JmSB0yZlzaXIgZWTJmSBiaWzJmXIuIEJ1IGFuY2FxIGlzdGVoc2Fsw6fEsSB2yZkgeWEgb3BlcmF0b3IgdMmZcsmZZmluZMmZbiBhdmFkYW5sxLHEn2EgeGFzIGRpYXFub3N0aWthIMO8w6fDvG4gb2xtYWzEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VDb21wb25lbnRTdGF0ZSIgbXNnaWQ9IjYzMzU1NzY3NzU3MTEwOTU5MzEiPiJ0yZl0YmlxIGtvbXBvbmVudGzJmXJpbmkgYWt0aXZsyZnFn2Rpcm3JmSB2yZkgeWEgZGVha3RpdmzJmcWfZGlybcmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg4ODc0MzU3NDA5ODIyMzcyOTQiPiJUyZl0YmlxyZkgZGlnyZlyIHTJmXRiaXEga29tcG9uZW50aW5pbiBha3RpdiBvbHViLW9sbWFkxLHEn8SxbsSxIGTJmXlpxZ9tyZlrIGlta2FuxLEgdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gyZloyZltaXl5yZl0bGkgcGxhbsWfZXQgaW1rYW5sYXLEsW7EsSBkZWFrdGl2IGV0bcmZayDDvMOnw7xuIGlzdGlmYWTJmSBlZMmZIGJpbMmZci4gQnUgaWNhesmZIGlsyZkgZWh0aXlhdGzEsSBvbG1hcSBsYXrEsW1kxLFyLCDDp8O8bmtpIHTJmXRiaXEga29tcG9uZW50bMmZcmkgeWFyYXJzxLF6LCB6aWRkaXl5yZl0bGksIHbJmSB5YSBxZXlyaS1zYWJpdCBzdGF0dXNhIMOnZXZyaWzJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODI3MjMyNDg0NDE2NTA1NjE1Ij4iVMmZdGJpccmZIGRpZ8mZciB0yZl0YmlxIGtvbXBvbmVudGluaW4gYWt0aXYgb2x1Yi1vbG1hZMSxxJ/EsW7EsSBkyZl5acWfbcmZayBpbWthbsSxIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgYnVuZGFuIMmZaMmZbWl5ecmZdGxpIHRlbGVmb24gaW1rYW5sYXLEsW7EsSBkZWFrdGl2IGV0bcmZayDDvMOnw7xuIGlzdGlmYWTJmSBlZMmZIGJpbMmZci4gQnUgaWNhesmZIGlsyZkgZWh0aXlhdGzEsSBvbG1hcSBsYXrEsW1kxLFyLCDDp8O8bmtpIHTJmXRiaXEga29tcG9uZW50bMmZcmkgeWFyYXJzxLF6LCB6aWRkaXl5yZl0bGksIHbJmSB5YSBxZXlyaS1zYWJpdCBzdGF0dXNhIMOnZXZyaWzJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ncmFudFJldm9rZVBlcm1pc3Npb25zIiBtc2dpZD0iNDYyNzMxNTM1MTA5MzUwODc5NSI+ImljYXrJmWzJmXIgdmVybcmZayB2yZkgeWEgbMmZxJ92IGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dyYW50UmV2b2tlUGVybWlzc2lvbnMiIG1zZ2lkPSI0MDg4NjQyNjU0MDg1ODUwNjYyIj4iVMmZdGJpccmZIGJ1IHbJmSB5YSBkaWfJmXIgdMmZdGJpcWzJmXLJmSB4w7xzdXNpIGl6bmzJmXIgdmVybcmZecmZIGljYXrJmSB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyICBidW5kYW4gaXppbiB2ZXJtyZlkaXlpbml6IMO2esmZbGxpa2zJmXJpIMO2emzJmXJpbsmZIHZlcm3JmWsgw7zDp8O8biBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcmVmZXJyZWRBcHBsaWNhdGlvbnMiIG1zZ2lkPSI4NDYzMTgxNjI4Njk1Mzk2MzkxIj4idMmZcmNpaCBlZGlsyZluIHTJmXRiaXFsyZlyIHF1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFByZWZlcnJlZEFwcGxpY2F0aW9ucyIgbXNnaWQ9IjQ5NzM5ODY3NjIyNDE3ODM3MTIiPiJUyZl0YmlxyZkgdMmZcmNpaCBldGRpeWluaXogdMmZdGJpcWzJmXJpIGTJmXlpxZ9tyZlrIGlta2FuxLEgdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciDFn8mZeHNpIG3JmWx1bWF0bGFyxLFuxLF6xLEgdG9wbGFtYXEgw7zDp8O8biBjYXJpIHTJmXRiaXFsyZlyaW5pemkgYWxkYWRhcmFxIGnFn2zJmXnJmW4gdMmZdGJpcWzJmXJpIHjJmWLJmXJzaXogZMmZeWnFn8mZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU2V0dGluZ3MiIG1zZ2lkPSIyMjI2MTk1MjkwOTU1MjI0NzMwIj4ic2lzdGVtIGF5YXJsYXLEsW5kYSBkyZl5acWfaWtsaWsgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTZXR0aW5ncyIgbXNnaWQ9Ijc3NzU3MjM0NDE1NTg5MDcxODEiPiJUyZl0YmlxyZkgc2lzdGVtIGF5YXJsYXLEsSBkYXRhc8SxbsSxIHJlZGFrdMmZIGV0bcmZIGljYXrJmXNpIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgc2lzdGVtIGF5YXJsYXLEsW7EsSBrb3JsYXlhIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSIyMDQ2NzYyNTE4NzY3MTgyODgiPiJ0yZlobMO8a8mZc2l6IHNpc3RlbSBuaXphbWxhcsSxbsSxIGTJmXlpxZ9pciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSI4MTU5NTM1NjEzMDIwMTM3MzkxIj4iVMmZdGJpccmZIHNpc3RlbWluIHTJmWhsw7xryZlzaXogYXlhcmxhciBkYXRhc8SxbsSxIGTJmXlpxZ9tyZl5yZkgaW1rYW4gdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIGlzdGlmYWTJmSDDvMOnw7xuIGRleWlsLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIyMTQ5NDI2NjY0MjI2MTUyMTg1Ij4iR29vZ2xlIHhpZG3JmXRsyZlyIHjJmXJpdMmZc2luaSBkyZl5acWfZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIxMjg3MzA5NDM3NjM4MzgwMjI5Ij4iVMmZdGJpccmZIEdvb2dsZSB4aWRtyZl0bMmZciB4yZlyaXTJmXNpbmkgZMmZeWnFn2Rpcm3JmWsgaW1rYW7EsSB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyaW4gaXN0aWZhZMmZc2kgw7zDp8O8biBkZXlpbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVCb290Q29tcGxldGVkIiBtc2dpZD0iNTMxMjk2NTU2NTk4NzgwMDAyNSI+ImJhxZ9sYW7En8SxY2RhIGnFn2zJmXlpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVCb290Q29tcGxldGVkIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3MzkwMzA0NjY0MTE2ODgwNzA0Ij4iVMmZdGJpccmZIHNpc3RlbSB5w7xrbMmZbcmZbmkgYml0aXJkaXlpIHphbWFuIGTJmXJoYWwgw7Z6w7xuw7wgYmHFn2xhdG1hxJ9hIGlta2FuIHZlcmlyLiBCdSBwbGFuxZ9ldGkgYmHFn2xhdG1hxJ/EsW4gdXp1biDDp8mZa23JmXNpbsmZIHPJmWLJmWIgb2xhIGJpbMmZciB2yZkgdMmZdGJpccmZIGjJmW1pxZ/JmSDDp2FsxLHFn2TEsXJhcmFxIGLDvHTDvG4gcGxhbsWfZXRpIHlhdmHFn2xhdG1hxJ9hIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVCb290Q29tcGxldGVkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTEzOTUwNTg5MTAyNjE3NTA0Ij4iVMmZdGJpccmZIHNpc3RlbSBib290aW5xaSBiaXRpcmRpa2TJmW4gZMmZcmhhbCBzb25yYSDDtnrDvG7DvCBiYcWfbGF0bWFxIGljYXrJmXNpIHZlcmlyLiBCdSB0ZWxlZm9udW4gYcOnxLFsbWFzxLFuxLEgbMmZbmdpZMmZIHbJmSBkYWltYSBpxZ9syZlrIHFhbGFyYXEgdGVsZWZvbnVuIHPDvHLJmXRpbmkgYcWfYcSfxLEgc2FsYSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RTdGlja3kiIG1zZ2lkPSI3OTE5MTI2MzcyNjA2ODgxNjE0Ij4iZGFpbWkgc2lxbmFsIGfDtm5kyZlybcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFN0aWNreSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzc0OTc2MDQ5NDM5OTkxNTY1MSI+IlTJmXRiaXHJmSB5YXnEsW0gYml0ZGlrZMmZbiBzb25yYSBkYSBxYWxhbiDDp8mZdGluIHlhecSxbWxhciBnw7ZuZMmZcm3JmXnJmSBpbWthbiB2ZXJpci4gSMmZZHNpeiBpc3RpZmFkyZkgw6dveCB5YWRkYcWfIGlzdGlmYWTJmXNpbsmZIHPJmWLJmWIgb2xtYXFsYSBwbGFuxZ9ldGkgeWF2YcWfIHbJmSBxZXlyaS1zdGFiaWwgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjgyNTgwMzc2NDIzMjQ0NTA5MSI+IlTJmXRiaXHJmSB5YXnEsW0gYml0ZGlrZMmZbiBzb25yYSBkYSBxYWxhbiDDp8mZdGluIHlhecSxbWxhciBnw7ZuZMmZcm3JmXnJmSBpbWthbiB2ZXJpci4gSMmZZHNpeiBpc3RpZmFkyZkgw6dveCB5YWRkYcWfIGlzdGlmYWTJmXNpbsmZIHPJmWLJmWIgb2xtYXFsYSB0ZWxlZm9udSB5YXZhxZ8gdsmZIHFleXJpLXN0YWJpbCBlZMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDb250YWN0cyIgbXNnaWQ9IjgzNDg0ODExMzE4OTk4ODYxMzEiPiJrb250YWtybGF0xLFuxLF6xLEgb3h1bWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENvbnRhY3RzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1Mjk0ODY2ODU2OTQxMTQ5NjM5Ij4iVMmZdGJpccmZIHBsYW7Fn2V0aW5pemTJmSB5ZXJsyZnFn8mZbiBrb250YWt0bGFyxLEgb3h1bWFxIGljYXrJmXNpIHZlcmlyLCB0ZXotdGV6IHrJmW5nIGVsyZlkaXlpbml6LCBlbWFpbGzJmcWfZGl5aW5peiB2yZkgeWEgyZlsYXHJmSBzYXhsYWTEscSfxLFuxLF6IHjDvHN1c2kgaW5kaXZpZHVhbGxhciBkYXhpbCBvbG1hcWxhLiBCdSBpY2F6yZkgdMmZdGJpcWzJmXLJmSBrb250YWt0IG3JmWx1bWF0bGFyxLFuxLF6xLEgc2F4bGFtYcSfYSB2yZkgesmZcsmZcmxpIHTJmXRiaXFsyZlyyZkga29udGFrdCBtyZlsdW1hdGxhcsSxbsSxIHNpemluIGJpbGdpbml6IG9sbWFkYSBwYXlsYcWfbWEgaW1rYW7EsSB5YXJhZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ29udGFjdHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NDQwNjU0MTUyNDU3MzAwNjYyIj4iVMmZdGJpccmZwqB0ZXotdGV6IHrJmW5nIGVsyZlkaXlpbml6LCBlLW3JmWt0dWIgZ8O2bmTJmXJkaXlpbml6IHbJmSB5YSDJmWxhccmZIHNheGxhZMSxxJ/EsW7EsXogeMO8c3VzaSBpbmRpdmlkdWFsbGFyIGRheGlsIG9sbWFxbGEgdGVsZWZvbnVudXpkYSB5ZXJsyZnFn8mZbiBrb250YWt0bGFyxLEgb3h1bWFxIGljYXrJmXNpIHZlcmlyLiBCdSBpY2F6yZkgdMmZdGJpcWzJmXLJmSBrb250YWt0IG3JmWx1bWF0bGFyxLFuxLF6xLEgc2F4bGFtYcSfYSB2yZkgesmZcsmZcmxpIHTJmXRiaXFsyZlyyZkga29udGFrdCBtyZlsdW1hdGxhcsSxbsSxIHNpemluIHjJmWLJmXJpbml6IG9sbWFkYSBwYXlsYcWfbWEgaW1rYW7EsSB5YXJhZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ29udGFjdHMiIG1zZ2lkPSI1MTA3NDkyMDg2NDE2NzkzNTQ0Ij4ia29udGFrdGxhcsSxbsSxesSxIGTJmXlpxZ9kaXJpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ29udGFjdHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg5NzI0MzkzMjUyMTk1MzYwMiI+IlTJmXRiaXHJmSBwbGFuxZ9ldGluaXpkyZlraSB6yZluZyBldG3JmWsgdGV6bGl5aW5peiwgZWxla3Ryb24gcG/Dp3RsYXLEsW7EsXosIMO8bnNpeXnJmXRsyZlyaW5peiBoYXFxxLFuZGEgbcmZbHVtYXRsYXLEsSBkyZl5acWfbcmZecmZIGlta2FuIHZlcmlyLiBCdSBpY2F6yZkga29udGFrdCBtyZlsdW1hdGxhcsSxbsSxbiBzaWxpbm3JmXNpbsmZIGTJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNvbnRhY3RzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTg5ODY5MjI0NjI1MTYzNTU4Ij4iVMmZdGJpccmZIFNpemluIHrJmW5nIGV0bcmZayB0ZXpsaXlpbml6LCBlbGVrdHJvbiBwb8OndGxhcsSxbsSxeiwgw7xuc2l5ecmZdGzJmXJpbml6IGhhcXHEsW5kYSBtyZlsdW1hdGxhcsSxIGTJmXlpxZ9tyZl5yZkgaW1rYW4gdmVyaXIuIEJ1bmEga29udGFrdGxhcsSxbiBzaWxpbm3JmXNpIGlta2FuxLEgZMmZIGRheGlsZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENhbGxMb2ciIG1zZ2lkPSIzNDc4MTMzMTg0NjI0MTAyNzM5Ij4iesmZbmcgcWV5ZGl5eWF0xLFuxLEgb3h1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGxMb2ciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM3MDA2NDUxODQ4NzA3NjAyODUiPiJUyZl0YmlxyZkgZ8mZbMmZbiB2yZkgZ2VkyZluIHrJmW5nbMmZciBoYXFxxLFuZGEgb2xhbiBkYXRhIGRheGlsIG9sbWFxbGEgYsmZcmFiyZlyIHBsYW7Fn2V0aW5pemluIHrJmW5nIHFleWRpeXlhdMSxbsSxIG94dW1hxJ9hIGlta2FuIHZlcmlyLiBCdSBpY2F6yZkgdMmZdGJpcWzJmXLJmSB6yZluZyBxZXlkaXl5YXTEsW7EsXrEsSBzYXhsYW1hxJ9hIGlta2FuIHZlcmlyIHbJmSB6yZlyyZlybGkgdMmZdGJpcWzJmXIgesmZbmcgcWV5ZGl5eWF0IGRhdGFzxLFuxLEgc2l6ZMmZbiB4yZliyZlyc2l6IHBheWxhxZ9hIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsbExvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3Nzc3MjU3OTY4MTMyMTcyNDQiPiJUyZl0YmlxyZkgdGVsZWZvbiBqdXJuYWzEsW7EsXrEsSBveHVtYcSfYSBpbWthbiB2ZXJpciwgYnVuYSBnyZlsyZluIHbJmSBnZWTJmW4gesmZbmdsyZlyIGhhcXHEsW5kYSBtyZlsdW1hdGxhciBkYSBkYXhpbGRpci4gQnUgaWNhesmZIHTJmXRiaXHJmSB6yZluZyBqdXJuYWzEsSBkYXRhc8SxbsSxIHNheGxhbWHEn2EgaW1rYW4gdmVyaXIga2ksIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gaXN0aWZhZMmZIGVkyZlyyZlrIFNpemTJmW4geMmZYsmZcnNpeiBiw7x0w7xuIG3JmWx1bWF0bGFybsSxesSxIHBheWxhxZ9hIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ2FsbExvZyIgbXNnaWQ9Ijg1NTIwNDU2NjQ3NDM0OTkzNTQiPiJ6yZluZyBsb3F1IHlhesSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsbExvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY2MTgwNjA2MjI3NDExOTI0NSI+IlTJmXRiaXHJmSBwbGFuxZ9ldGluaXpkyZlraSB6yZluZyBqdXJuYWzEsW7EsSwgaMmZbcOnaW5pbiBnZWTJmW4gdsmZIGfJmWzJmW4gesmZbmdsyZlyaW4gc2l5YWjEsXPEsW7EsSBkyZl5acWfbcmZecmZIGlta2FuIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgYnVuZGFuIGlzdGlmYWTJmSBlZMmZcsmZaywgesmZbmcganVybmFsxLFuxLF6YSBkyZl5acWfaWtsaWsgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxsTG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjgzOTQxNzM2MzUyNzg3ODQyIj4iVMmZdGJpccmZIHNpemluIGRheGlsIG9sYW4gdsmZIGdlZMmZbiB6yZluZ2zJmXIgZGF4aWwgb2xtYXFsYSB0ZWxlZm9uIHrJmW5naSBsb3FsYXLEsW7EsXrEsSByZWRha3TJmSBldG3JmWsgaWNhesmZc2kgdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gdGVsZWZvbiBsb3FsYXLEsW7EsXrEsSBzaWxtyZlrIHbJmSB5YSByZWRha3TJmSBldG3JmWsgw7zDp8O8biBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkUHJvZmlsZSIgbXNnaWQ9IjQ3MDE4ODk4NTI2MTI3MTY2NzgiPiLDtnoga29udGFrdCBrYXJ0xLFuxLF6xLEgb3h1eXVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFByb2ZpbGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NDYyNDc1MTUxODQ5ODg4ODQ4Ij4iVMmZdGJpccmZIGNpaGF6xLFuxLF6ZGEgeWVybMmZxZ/JmW4gYWTEsW7EsXogdsmZIGtvbnRha3QgbcmZbHVtYXRsYXLEsW7EsXoga2ltaSDFn8mZeHNpIHByb2ZpbCBtyZlsdW1hdGxhcsSxbsSxIG94dW1hIGljYXrJmXNpIHZlcmlyLiBCdSBvIGRlbcmZa2RpciBraSwgdMmZdGJpcSBzaXppIHRhbsSxeWEgdsmZIHNpemluIHByb2ZpbCBtyZlsdW1hdGxhcsSxbsSxesSxIGJhxZ9xYWxhcsSxbmEgZ8O2bmTJmXLJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVByb2ZpbGUiIG1zZ2lkPSI5MDc3OTM2Mjg3NzczOTc2NDMiPiJzaXppbiBrb250YWt0IGthcnTEsW7EsXpkYSBkyZl5acWfaWtsaWsgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVQcm9maWxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTU1MjA4NDI5NDU5ODQ2NTg5OSI+IlTJmXRiaXHJmSBjaWhhesSxbsSxemRhIHllcmzJmcWfyZluIGFkxLFuxLF6IHbJmSBrb250YWt0IG3JmWx1bWF0bGFyxLFuxLF6IGtpbWkgxZ/JmXhzaSBwcm9maWwgbcmZbHVtYXRsYXLEsW7EsSBkyZl5acWfbcmZayB2yZkgeWEgyZlsYXbJmSBldG3JmWsgaWNhesmZc2kgdmVyaXIuIEJ1IG8gZGVtyZlrZGlyIGtpLCB0yZl0YmlxIHNpemkgdGFuxLF5YSB2yZkgc2l6aW4gcHJvZmlsIG3JmWx1bWF0bGFyxLFuxLF6xLEgYmHFn3FhbGFyxLFuYSBnw7ZuZMmZcsmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMjY4OTIwOTU2MTUyNDE5MTcwIj4ic29zaWFsIGxlbnRpbml6aSBveHV5dXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDI1NTcwNjAyNzE3MjA1MDg3MiI+IlTJmXRiaXHJmSBTaXppbiB2yZkgZG9zdGxhcsSxbsSxesSxbiBzb3NpYWwgZ8O8bmPJmWxsyZlyaW5pIMmZbGTJmSBldG3JmWsgdsmZIHNpbnhyb25pesmZIGV0bcmZayBpY2F6yZlzaSB2ZXJpci4gTcmZbHVtYXQgcGF5bGHFn2Fya8mZbiBkaXFxyZl0bGkgb2x1biAtIGtvbmZpZGVuc2lhbGzEsXFkYW4gYXPEsWzEsSBvbG1heWFyYXEgYnUsIFNpeiB2yZkgZG9zdGxhcsSxbsSxeiBhcmFzxLFuZGEgc29zaWFsIMWfyZliyZlryZlsyZlyZMmZa2kgZGFuxLHFn8SxxJ/EsSBveHVtYXEgaW1rYW7EsSB2ZXJpci4gUWV5ZDogYnUgaWNhesmZIGLDvHTDvG4gc29zaWFsIMWfyZliyZlryZlsyZlyZMmZIGljcmEgZWRpbMmZIGJpbG3JmXouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM1MDQxNzkyMjI0OTMyMzU2NDUiPiJzb3NpYWwgYXjEsW7EsW7EsXphIHlhesSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzA4NjU1NzU1MjIwNDExNDg0OSI+IlTJmXRiaXHJmSBkb3N0bGFyxLFuxLF6ZGFuIHNvc2lhbCB5ZW5pbMmZbm3JmWzJmXJpIGfDtnN0yZlybcmZIGljYXrJmXNpIHZlcmlyLiBNyZlsdW1hdCBwYXlsYcWfYXJryZluIGRpcXHJmXRsaSBvbHVuIC0gYnUgZG9zdGxhcsSxbsSxemRhbiBnyZlsyZluIG1lc2FqxLEgZW1hbCBldG3JmXnJmSBpem4gdmVyaXIuIFFleWQ6IGJ1IGljYXrJmSBiw7x0w7xuIHNvc2lhbCDFn8mZYsmZa8mZbMmZcsmZIMWfYW1pbCBvbHVubWF5YSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2FsZW5kYXIiIG1zZ2lkPSI1OTcyNzI3NTYwMjU3NjEyMzk4Ij4idMmZcXZpbSB0yZlkYmlybMmZcmluaSB2yZkga29uZmlkZW5zaWFsIG3JmWx1bWF0bGFyxLEgb3h1eXVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGVuZGFyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MjE2NDYyMDQ5MDU3NjU4NzIzIj4iVMmZdGJpccmZIGRvc3RsYXLEsW7EsXrEsW4gdsmZIMmZbcmZa2RhxZ9sYXLEsW7EsXrEsW4gcGxhbsWfZXRpbml6ZMmZIHllcmzJmcWfyZluIGthbGVuZGFyIHTJmWRiaXJsyZlyaW5pIG94dW1hxJ9hIGljYXrJmSB2ZXJpci4gQnUgdMmZdGJpccmZIGtvbmZpZGVuc2lhbGzEsXEgdsmZIHlhIGjJmXNzYXNsxLFxZGFuIGFzxLFsxLEgb2xtYXlhcmFxIHNpemluIGthbGVuZGFyIG3JmWx1bWF0bGFyxLFuxLF6xLEgcGF5bGHFn21hcSB2yZkgeWEgc2F4bGFtYcSfYSBpbWthbiB5YXJhZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3NDM0NTQ4NjgyNDcwODUxNTgzIj4iVMmZdGJpccmZIGRvc3QgdsmZIMmZbcmZa2RhxZ9sYXJhIG3JmXhzdXMgb2xhbmxhciBkYXhpbCBvbG1hcWxhIHBsYW7Fn2V0ZMmZIHllcmzJmcWfyZluIGLDvHTDvG4ga2FsZW5kYXIgdMmZdGJpcWzJmXJpbmkgb3h1bWFxIGljYXrJmXNpIHZlcmlyLiBCdSB0yZl0YmlxyZkga29uZmlkZW5zaWFsbMSxcSB2yZkgeWEgaMmZc3Nhc2zEsXFkYW4gYXPEsWzEsSBvbG1heWFyYXEsIFNpemluIGthbGVuZGFyIG3JmWx1bWF0bGFyxLFuxLF6xLEgcGF5bGHFn21hcSB2yZkgeWEgc2F4bGFtYXEgaW1rYW7EsSB5YXJhZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ2FsZW5kYXIiIG1zZ2lkPSI4NDM4ODc0NzU1MTkzODI1NjQ3Ij4iY2loYXogc2FoaWJpbmluIGljYXrJmXNpIG9sbWFkYW4gdMmZcXZpbSB0yZlkYmlybMmZcmkgyZlsYXbJmSBldG3JmWsgdsmZIHlhIGTJmXlpxZ9tyZlrLCBidW51biBoYXFxxLFuZGEgYmlsZGlyacWfbMmZciBnw7ZuZMmZcm3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGVuZGFyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2Njc5MDM1NTIwMTEzNjY4NTI4Ij4iVMmZdGJpccmZIHBsYW7Fn2V0aW5pemTJmWtpIHTJmWRiaXJsyZlyaSBkyZl5acWfbcmZecmZLCB0yZlkYmlyIMmZbGF2yZkgZXRtyZl5yZkgdsmZIHlhIHNpbG3JmXnJmSBpbWthbiB2ZXJpci4gQnVuYSBTaXppbiBkb3N0bGFyxLFuxLF6bGEgdsmZIGjJmW1rYXJsYXLEsW7EsXpsYSBiaXJsaWtkyZkgaGF6xLFybGFkxLHEn8SxbsSxeiB0yZlkYmlybMmZciBkyZkgZGF4aWxkaXIuIEJ1LCB0yZlkYmlyyZkgU2l6aW4gYWTEsW7EsXpkYW4gdsmZIFNpemTJmW4geMmZYsmZcnNpeiwgdMmZcXZpbSBzYWhpYmkga2ltaSBtZXNhaiBnw7ZuZMmZcm3JmWsgaW1rYW7EsW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGVuZGFyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjMyNDQ2OTQ5NjMyNzI0OTM3NiI+IkRvc3RsYXLEsW7EsXogdsmZIGjJmW1rYXJsYXLEsW7EsXphIG3JmXhzdXMgb2xhbmxhciBkYSBkYXhpbCBvbG1hcWxhLCB0yZl0YmlxyZkgdGVsZWZvbnVudXpkYWvEsSB0yZlkYmlybMmZcmkgZMmZeWnFn23JmXnJmSwgdMmZZGJpciDJmWxhdsmZIGV0bcmZecmZIHbJmSB5YSBzaWxtyZl5yZkgaW1rYW4gdmVyaXIuIEJ1LCB0yZlkYmlyyZkgU2l6aW4gYWTEsW7EsXpkYW4gdsmZIFNpemTJmW4geMmZYsmZcnNpeiwgdMmZcXZpbSBzYWhpYmkga2ltaSBtZXNhaiBnw7ZuZMmZcm3JmWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc01vY2tMb2NhdGlvbiIgbXNnaWQ9Ijg2ODgzMzQ5NzQwMzY4MjMzMzAiPiJ0ZXN0IMO8w6fDvG4gc2F4dGEgbcmZa2FuIG3JmW5iyZlsyZlyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc01vY2tMb2NhdGlvbiIgbXNnaWQ9IjU4MDg3MTEwMzk0ODIwNTE4MjQiPiJUZXN0IMO8w6fDvG4gc2F4dGEgbcmZa2FuIG3JmW5iyZlsyZlyaSB5YXJhZMSxbiB2yZkgeWEgeWVuaSBtyZlrYW4gcHJvdmF5ZGVyaSBxdXJhxZ9kxLFyxLFuLiBCdSB0yZl0YmlxbMmZcsmZIEdQUyB2yZkgbcmZa2FuIHByb3ZheWRlcmzJmXJpIGtpbWkgbcmZa2FuIG3JmW5iyZlsyZlyaW5kyZluIGFsxLFuYW4gbcmZa2FuIHbJmS95YSBzdGF0dXNsYXLEsSB5ZW5pZMmZbiB5YXptYcSfYSBpY2F6yZkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NMb2NhdGlvbkV4dHJhQ29tbWFuZHMiIG1zZ2lkPSIyODM2MzA4MDc2NzIwNTUzODM3Ij4iyZlsYXbJmSBtyZlrYW4gcHJvdmF5ZGVyaSDJmW1ybMmZcmluyZkgw6fEsXjEscWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iNTk0NTE2NjY0MjMzNTgwMDc2MyI+IlTJmXRiaXHJmSDJmWxhdsmZIG3JmWthbiBwcm92YXlkZXJpIMmZbXJsyZlyaW7JmSBkYXhpbCBvbG1hcSBpbWthbsSxIHZlcmlyLiBCdSB0yZl0YmlxyZkgR1BTIMmZbcmZbGl5eWF0xLFuYSB2yZkgeWEgZGlnyZlyIG3JmWthbiBtyZluYsmZbMmZcmluyZkgbWFuZSBvbG1hcSBpbWthbsSxIHZlcsmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iNjU3ODEwMTE5OTgyNTE5Mzg3MyI+Ik3JmWthbiBwcm92YXlkZXJpbmkgcXVyYcWfZMSxcm1hcSBpY2F6yZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iOTA2NjE0NjEyMDQ3MDU5MTUwOSI+IlllbmkgeWVybMmZxZ9tyZkgdMmZY2hpemF0w6fEsXPEsW7EsSB0ZXN0IGV0bcmZayB2yZkgeWEgcXVyYcWfZMSxcm1hcSDDvMOnw7xuIG1vY2sgeWVybMmZxZ9tyZkgbcmZbmLJmWzJmXJpIHlhcmF0LiBCdSB0yZl0YmlxyZkgeWVybMmZxZ9tyZluaW4gdsmZL3lhIGRpZ8mZciB5ZXJsyZnFn23JmSBtyZluYsmZbMmZcmluZMmZbiBHUFMgdsmZIHlhIHllcmzJmcWfbcmZIHTJmWNoaXphdMOnxLFsYXLEsSBxYXnEsXRtxLHFnyBzdGF0dXNsYXLEsW4gbMmZxJ92IGV0bcmZc2luyZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSIxMTkxODk4MDYxOTY1MjczMzcyIj4iZMmZcWlxIHllcmkgKEdQUyB2yZkgxZ/JmWLJmWvJmS3JmXNhc2zEsSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSI1Mjk1MDQ3NTYzNTY0OTgxMjUwIj4iUWxvYmFsIFBvemlzaXlhIFNpc3RlbWluaSB2yZkgeWEgxZ/JmWLJmWvJmSBxw7xsbMmZbMmZcmkgdsmZIFdpLUZpIGtpbWkgxZ/JmWLJmWvJmSBtyZlrYW7EsW7EsSBpc3RpZmFkyZkgZWTJmXLJmWsgdMmZdGJpccmZIFNpemluIGTJmXFpcSB5ZXJpbml6aSB0yZl5aW4gZXRtyZl5yZkgaW1rYW4gdmVyaXIuIEJ1IG3JmWthbiB4aWRtyZl0bMmZcmkgYWt0aXZsyZnFn2RpcmlsbcmZbGlkaXJsyZlyIGtpLCBTaXogdMmZdGJpcWkgaXN0aWZhZMmZIGVkyZluIHphbWFuIHTJmXRiaXEgb25sYXLEsSBpc3RpZmFkyZkgZWTJmSBiaWxzaW4uIFTJmXRiaXFsyZlyIFNpemluIGhhcmFkYSBvbG1hxJ/EsW7EsXrEsSBidW51biB2YXNpdMmZc2lsyZkgdMmZeWluIGVkyZljyZlrLCBleW5pIHphbWFuZGEsIGJ1IHhpZG3JmXQgyZlsYXbJmSBiYXRhcmV5YSBlbmVyamlzaSBhcGFyYSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjQ4ODc4OTUzNjIzNTQyMzk2MjgiPiJ0yZl4bWluaSBtyZlrYW4gKMWfyZliyZlryZkgyZlzYXNsxLEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSIyNTM4MjAwMTg0MzczMzAyMjk1Ij4iVMmZdGJpccmZIHTJmXhtaW5pIHllcmluaXppIGFsbWFxIMO8w6fDvG4gaW1rYW4gdmVyaXIuIEJ1IHllciwgeWVybMmZxZ9tyZkgeGlkbcmZdGzJmXJpIHTJmXLJmWZpbmTJmW4gbW9iaWwgccO8bGzJmWzJmXIgdsmZIFdpLUZpIGtpbWkgxZ/JmWLJmWvJmSB5ZXJsyZnFn23JmSBtyZluYsmZbMmZcmTJmW4gaXN0aWZhZMmZIGV0bcmZa2zJmSDJmWxkyZkgZWRpbGlyLiBCdSB5ZXJsyZnFn23JmSB4aWRtyZl0bMmZcmkgdMmZdGJpcWluIG9ubGFyZGFuIGlzdGlmYWTJmXNpIMO8w6fDvG4gYcOnxLFxIHbJmSBjaWhhesSxbsSxesSxbiBvbmxhcsSxIGlzdGlmYWTJmXNpIMO8w6fDvG4gbcO2dmN1ZCBvbG1hbMSxZMSxci4gVMmZdGJpcWzJmXIgYnVuZGFuIHNpemluIHTJmXhtaW7JmW4gaGFyYWRhIG9sZHXEn3VudXp1IG3DvMmZeXnJmW5syZnFn2Rpcm3JmWsgw7zDp8O8biBpc3RpZmFkyZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjIzNjM5Njk2NDE3OTIzODg5NDciPiJTdXJmYWNlRmxpbmdlclwnyZkgZGF4aWwgb2xtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiJUyZl0YmlxyZkgYcWfYcSfxLEgc8mZdml5ecmZbGkgU3VyZmFjZUZuZ2VyIMO2esmZbGxpa2zJmXJpbmkgaXN0aWZhZMmZIGV0bcmZecmZIGljYXrJmSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJmcmV5bSBidWZlcmkgb3h1eXVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IlTJmXRiaXHJmSBmcmV5bSBidWZlcmluaW4ga29udGVudGluaSBveHVtYXEgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iSW5wdXRGbGluZ2VyIGtlw6dpZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4iVMmZdGJpccmZIGHFn2HEn8SxIHPJmXZpeXnJmWxpIElucHV0RmxpbmdlciBmdW5rc2l5YWxhcsSxbsSxIGlzdGlmYWTJmSBldG3JmXnJmSBpY2F6yZkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJXaWZpIGfDtnLDvG50w7xsyZlyaW5pIHF1cmHFn2TEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJUyZl0YmlxyZkgV2lmaSBnw7Zyw7xudMO8bMmZcmluaSBxdXJhxZ9kxLFybWHEn2EgdsmZIG9ubGFyYSBxb8WfdWxtYcSfYSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+IldpRmkgZ8O2csO8bnTDvGzJmXJpbmkgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iNDU0MzkxMjI5MjY4MTgyNjk4NiI+IlTJmXRiaXHJmSBXaWZpIGRpc3BsZXlsyZlyaW5pbiBhxZ9hxJ/EsSBzyZl2aXl5yZlsaSBmdW5rc2l5YWxhcsSxbsSxIGlkYXLJmSBldG3JmWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjY4NTcxMzQ0OTg0MDIzNDY3MDgiPiJhdWRpbyDDp8SxeMSxxZ/EsSBhbMSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjYyMTA1OTc3NTQyMTIyMDg4NTMiPiJUyZl0YmlxyZkgYXVkaW8gw6fEsXjEscWfxLEgYWxtYXEgdsmZIHllbmlkyZluIHnDtm5syZluZGlybcmZayBpbWthbsSxIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMjI0NjgyODc3MzU4OTA5NDAyMyI+InZpZGVvIMOnxLF4xLHFn8SxIGFsxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMzU5NDgxNjU4MDM0MTQ5ODYwIj4iVMmZdGJpccmZIHZpZGVvIMOnxLF4xLHFn8SxIGFsbWFxIHbJmSB5ZW5pZMmZbiB5w7ZubMmZbmRpcm3JmWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVTZWN1cmVWaWRlb091dHB1dCIgbXNnaWQ9Ijc4MTUzOTg5NjkzMDMzODIwMTYiPiJ0yZlobMO8a8mZc2l6IHZpZGVvIMOnxLF4xLHFn8SxIGFsxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMjc3OTc5MzA2NDcwOTM1MDI4OSI+IlTJmXRiaXHJmSBnw7x2yZlubGkgdmlkZW8gw6fEsXjEscWfxLEgYWxtYXEgdsmZIHllbmlkyZluIHnDtm5syZluZGlybcmZayBpbWthbsSxIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjYwOTU4NTk5MzcwNjkxNDYwODYiPiJhdWRpbyBheWFybGFyxLFuxLF6xLEgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjM1MjI1NjUzNjY4MDYyNDg1MTciPiJUyZl0YmlxyZkgc8mZcyB2yZkgaGFuc8SxIHNwaWtlcmluIMOnxLF4xLHFnyDDvMOnw7xuIGlzdGlmYWTJmSBvbHVuZHXEn3Uga2ltaSBxbG9iYWwgc8mZcyBheWFybGFyxLFuxLEgZMmZeWnFn2Rpcm3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY29yZEF1ZGlvIiBtc2dpZD0iMzg3NjA0OTc3MTQyNzQ2NjMyMyI+InPJmXMgeWF6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjb3JkQXVkaW8iIG1zZ2lkPSI0OTA2ODM5MzAxMDg3OTgwNjgwIj4iVMmZdGJpccmZIG1pa3JvZm9ubGEgYXVkaW8geWF6bWFxIGljYXrJmXNpIHZlcmlyLiDEsGNhesmZIHTJmXRiaXHJmSBzaXppbiB0yZlzZGlxaW5peiBvbG1hZGFuIGlzdMmZbmlsyZluIHphbWFuIHPJmXMgeWF6bWEgaXpuaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYSIgbXNnaWQ9IjM2MTYzOTE5MTk1NTk3NTExOTIiPiLFn8mZa2lsIHbJmSB2aWRlbyDDp8mZa23JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYW1lcmEiIG1zZ2lkPSI4NDk3MjE2NTI0NzM1NTM1MDA5Ij4iVMmZdGJpccmZIGthbWVyYSBpbMmZIMWfyZlraWwgdsmZIHZpZGVvIMOnyZlrbcmZecmZIGlta2FuIHlhcmFkxLFyLiBCdSBpY2F6yZkgdMmZdGJpccmZIHNpemluIHTJmXNkaXFpbml6IG9sbWFkYW4ga2FtZXJhZGFuIGlzdGlmYWTJmSBpY2F6yZlzaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYURpc2FibGVUcmFuc21pdExlZCIgbXNnaWQ9IjI2NTEwNzI2MzA1MDExMjYyMjIiPiJrYW1lcmEgaXN0aWZhZMmZIGVkaWxkaWtkyZkgTEVEIGfDtnN0yZlyaWNpIMO2dMO8csO8bG3JmXNpbmkgZGVha3RpdiBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhRGlzYWJsZVRyYW5zbWl0TGVkIiBtc2dpZD0iNDc2NDU4NTQ2NTQ4MDI5NTM0MSI+IsOWbmPJmWTJmW4gcXVyYcWfZMSxcsSxbG3EscWfIHNpc3RlbSB0yZl0YmlxaW7JmSBrYW1lcmEgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgZWRpbMmZbiBMRUQgaW5kaWthdG9ydW51IHPDtm5kw7xybcmZayBpY2F6yZlzaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyOTYxMjkyMjA1NzY0NDg4MzA0Ij4icGxhbsWfZXRpIGRhaW1pIG9sYXJhcSBhcmFkYW4gcWFsZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJpY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MzM3ODE3MDkzMzI2MzcwNTM3Ij4idGVsZWZvbnUgaMmZbWnFn8mZbGlrIGRlYWt0aXYgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJpY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQzMzQ4MTg4MDgwMDE2OTk1MzAiPiJUyZl0YmlxyZkgcGxhbsWfZXRpIGJpcmTJmWbJmWxpayBkZWFrdGl2IGV0bcmZecmZIGlta2FuIHZlcmlyLiBCdSBkYSDDp294IHTJmWhsw7xryZlsaWRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icmljayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3ODg5MDMyOTc2MjcyODMwOTkiPiJUyZl0YmlxyZkgYsO8dMO8biB0ZWxlZm9udSBiaXJkyZlmyZlsaWsgZGVha3RpdmzJmcWfZGlybcmZecmZIGlta2FuIHZlcmlyLiBCdSDDp294IHTJmWhsw7xryZlsaWRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQzNjYzNDk3MjU2MTc5NTAwMiI+InBsYW7Fn2V0aSB5ZW5pZMmZbiB5w7xrbMmZbm3JmXnJmSBtyZljYnVyIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4OTg1NjA4NzI0NjI2MzgyNDIiPiJ0ZWxlZm9udSB5ZW5pZMmZbiB5w7xrbMmZbm3JmXnJmSBtyZljYnVyIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgxNzIwNTYxODAwNjM3MDA3NDEiPiJUyZl0YmlxyZkgcGxhbsWfZXRpIHllbmlkyZluIHnDvGtsyZltyZl5yZkgbcmZY2J1ciBldG3JmWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MzI2MDA4MTI0Mjg5OTg5OTY5Ij4iVMmZdGJpccmZIHRlbGVmb251IHllbmlkyZluIHnDvGtsyZltyZl5yZkgbcmZY2J1ciBldG3JmWsgw7zDp8O8biBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjkyNzM2MTUzNzk0MjU5MTg0MSI+IlVTQiB5YWRkYcWfIGZheWwgc2lzdGVtaW7JmSBkYXhpbCBvbG1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfdW5tb3VudF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ0MDIzMDUwNDk4OTA5NTM4MTAiPiJTRCBLYXJ0IGZheWwgc2lzdGVtaW7JmSBkYXhpbCBvbG1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIG1zZ2lkPSIxODI5MjkwNzAxNjU4OTkyMzQ3Ij4iVMmZdGJpccmZIHNpbGluyZliaWzJmW4geWFkZGHFn2xhcsSxIHbJmSB5YSBmYXlsIHNpc3RlbWluaSBxdXJhxZ9kxLFybWEgdsmZIGF5xLFybWEgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjIyNzgxOTU4MjYyNDkwNDk3MiI+IlVTQiB5YWRkYcWfxLEgc2lsaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI2MjU4MjY5ODYzOTI3NDA1NiI+IlNEIGthcnTEsSBzaWxpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgbXNnaWQ9Ijg3ODQyNjgyNDY3NzkxOTg2MjciPiJUyZl0YmlxyZkgw6fEsXhhcsSxbGEgYmlsyZluIHlhZGRhxZ/EsSBmb3JtYXQgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX2FjY2VzcyIgbXNnaWQ9IjM0MTEzMzg2MzIwMDIxOTM4NDYiPiJkYXhpbGkgeWFkZGHFn8SxbsSxeiBoYXFxxLFuZGEgbcmZbHVtYXQgyZlsZMmZIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfYWNjZXNzIiBtc2dpZD0iMzA5NDU2Mzg0NDU5Mzg3ODU0OCI+IlTJmXRiaXHJmSBkYXhpbGkgeWFkZGHFnyBoYXFxxLFuZGEgbcmZbHVtYXQgYWxtYcSfYSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfY3JlYXRlIiBtc2dpZD0iNjQxNDc1NzIzNDc4OTMzNjMyNyI+ImRheGlsaSB5YWRkYcWfIHlhcmF0bWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19jcmVhdGUiIG1zZ2lkPSI0NTU4ODY5MjczNTg1ODU2ODc2Ij4iVMmZdGJpccmZIGRheGlsaSB5YWRkYcWfIHlhcmF0bWFxIMO8w6fDvG4gaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX2Rlc3Ryb3kiIG1zZ2lkPSI1MjY5MjgzMjgzMDE2MTgwMjIiPiJkYXhpbGkgeWFkZGHFn8SxIG3JmWh2IGV0bcmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19kZXN0cm95IiBtc2dpZD0iNzIxODc0OTI4NjE0NTUyNjUzNyI+IlTJmXRiaXHJmSBkYXhpbGkgeWFkZGHFn8SxIG3JmWh2IGV0bcmZIGljYXrJmXNpIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19tb3VudF91bm1vdW50IiBtc2dpZD0iODg3Nzk5ODEwMTk0NDk5OTM4NiI+ImRheGlsaSB5YWRkYcWfxLEgbW9udGFqIHbJmSB5YSBkZW1vbnRhaiBldG3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX21vdW50X3VubW91bnQiIG1zZ2lkPSIzNDUxMzYwMTE0OTAyNDkwOTI5Ij4iVMmZdGJpccmZIGRheGlsaSB5YWRkYcWfxLEgcXVyYcWfZMSxcm1hL2F5xLFybWEgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX3JlbmFtZSIgbXNnaWQ9Ijc0OTY2MzM5NTQwODA0NzI0MTciPiJkYXhpbGkgeWFkZGHFn8SxbiBhZMSxbsSxIGTJmXlpxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX3JlbmFtZSIgbXNnaWQ9IjE3OTQ3NTc1ODg0NzIxMjc2NzUiPiJUyZl0YmlxyZkgZGF4aWxpIHlhZGRhxZ/EsW4gYWTEsW7EsSBkyZl5acWfbcmZayBpbWthbsSxIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdmlicmF0ZSIgbXNnaWQ9Ijc2OTY0MjcwMjYwNTc3MDU4MzQiPiJ2aWJyYXNpeWF5YSBuyZl6YXLJmXQgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3ZpYnJhdGUiIG1zZ2lkPSI2Mjg0OTg5MjQ1OTAyMzAwOTQ1Ij4iVMmZdGJpccmZIHZpYnJhdG9ydSBpZGFyyZkgZXRtyZkgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mbGFzaGxpZ2h0IiBtc2dpZD0iMjE1NTkyMDgxMDEyMTk4NDIxNSI+IkZsYXNoIGnFn8SxxJ/EsW7EsSBpZGFyyZkgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZsYXNobGlnaHQiIG1zZ2lkPSI2NTIyMjg0Nzk0NTY4MzY4MzEwIj4iVMmZdGJpccmZIHNpcW5hbCBpxZ/EscSfxLEgbmEgbsmZemFyyZl0IGV0bcmZecmZIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlVXNiIiBtc2dpZD0iMTExMzQ1MzQzMDY0NTQwMjcyMyI+IlVTQiBjaWhhemxhciDDvMOnw7xuIHTJmXJjaWhsyZlyaSB2yZkgaWNhesmZbMmZcmkgaWRhcsmZIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZVVzYiIgbXNnaWQ9Ijc3NzYxNTU0MzAyMTgyMzk4MzMiPiJUyZl0YmlxyZkgVVNCIGNpaGF6bGFyIMO8w6fDvG4gb2xhbiB0yZlyY2lobMmZcmkgdsmZIGljYXrJmWzJmXJpIGlkYXLJmSBldG3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc010cCIgbXNnaWQ9IjQ5NTM0Njg2NzY3OTU5MTcwNDIiPiJNVFAgcHJvdG9rb2wgaMmZeWF0YSBrZcOnaXJtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTXRwIiBtc2dpZD0iNjUzMjk2MTIwMDQ4Njc5MTU3MCI+Iktlcm5lbCBNVFAgZHJheXZlcsmZIGdpcmnFn8mZIGlta2FuIHZlcmlyIGtpLCBNVFAgVVNCIHByb3Rva29sdW51IGjJmXlhdGEga2XDp2lyc2luLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjQxNDgyOTA4NjA0MDA2NTkxNDYiPiJhdmFkYW5sxLHEn8SxIHPEsW5hcSBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjY1OTc5NjQxOTEyMDgwMTY2MDUiPiJUyZl0YmlxyZkgYXZhZGFubMSxxJ/EsSB5b3hsYW1hcSDDvMOnw7xuIG3DvHh0yZlsaWYgcGVyaWZlcml5YWxhcsSxIGtvbnRyb2wgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWxsUGhvbmUiIG1zZ2lkPSIzOTI1ODM2MzQ3NjgxODQ3OTU0Ij4idGVsZWZvbiBuw7ZtcsmZbMmZcmluyZkgYmlyYmHFn2EgesmZbmcgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbGxQaG9uZSIgbXNnaWQ9IjM3NDA3OTc1NzYxMTM3NjA4MjciPiJUyZl0YmlxyZkgU2l6aW4gbcO8ZGF4aWzJmW5peiBvbG1hZGFuIHRlbGVmb24gesmZbmdsyZlyaSBldG3JmXnJmSBpbWthbiB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIFNpemTJmW4geMmZYsmZcnNpeiDFn8mZa2lsZMmZIG3DvHh0yZlsaWYgesmZbmdsyZlyIGVkyZlyyZlrLCBTaXrJmSBtYWRkaSB6aXlhbiB2dXJhIGJpbMmZci4gUWV5ZDogQnUsIHTJmXRiaXFsyZlyyZkgdMmZY2lsaSBuw7ZtcsmZbMmZcsmZIHrJmW5nIGV0bcmZecmZIGljYXrJmSB2ZXJtaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWxsUHJpdmlsZWdlZCIgbXNnaWQ9IjQxOTgzNDkyMTExMDg0OTc4NzkiPiJpc3TJmW5pbMmZbiBuw7ZtcsmZecmZIGJpcmJhxZ9hIHrJmW5nIGVkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYWxsUHJpdmlsZWdlZCIgbXNnaWQ9IjE2ODkwMjQ5MDE1MDk5OTY4MTAiPiJUyZl0YmlxyZkgU2l6aW4gbcO8ZGF4aWzJmW5peiBvbG1hZGFuLCB0yZljaWxpIHrJmW5nbMmZciBkyZkgZGF4aWwgb2xtYXFsYSwgaXN0yZluaWzJmW4gdGVsZWZvbiB6yZluZ2luaSBldG3JmXnJmSBpbWthbiB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIGJ1bmRhbiBpc3RpZmFkyZkgZWTJmXLJmWssIHTJmWNpbGkgbsO2bXLJmWzJmXLJmSBxYW51bnN1eiB6yZluZyB2dXJtYXFsYSBTaXppbiDDvMOnw7xuIGjDvHF1cWkgcHJvYmxlbWzJmXIgeWFyYWRhIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0ODQyNTc2OTk0MTQ0NjA0ODIxIj4iQ0RNQSBwbGFuxZ9ldCBheWFybGFyxLFuYSBiaXJiYcWfYSBiYcWfbGFtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTYwNDg0ODA5NTMxNTQyMTQyNSI+IkNETUEgdGVsZWZvbiBxdXJhxZ9kxLFybWFsYXLEsW5hIGJpcmJhxZ9hIGJhxZ9sYW1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBtc2dpZD0iMTk5NDE5MzUzODgwMjMxNDE4NiI+IlTJmXRiaXHJmSBDRE1BIGhhesSxcmzEscSfxLFuxLEgYmHFn2xhdG1hIGljYXrJmXNpIHZlcmlyLiBayZlyyZlybGkgdMmZdGJpcWzJmXIgZWh0aXlhYyBvbG1hZMSxcWRhIENETUEgaGF6xLFybMSxxJ/EsW7EsSBiYcWfbGFkYSBiaWzJmXJsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbG9jYXRpb25VcGRhdGVzIiBtc2dpZD0iNzc4NTQwODI1MzM2NDMzNTc0MCI+Im3JmWthbiBnw7xuY8mZbGzJmW3JmSBiaWxkaXJpxZ9syZlyaW5pIGlkYXLJmSBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbG9jYXRpb25VcGRhdGVzIiBtc2dpZD0iMTEyMDc0MTU1Nzg5MTQzODg3NiI+IlTJmXRiaXHJmSByYWRpb2RhbiBnyZlsyZluIG3JmWthbiBnw7xuY8mZbGzJmW5tyZlsyZlyaW5pIGFrdGl2IHbJmSB5YSBkZWFrdGl2IGV0bcmZecmZIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgb2x1bm11ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoZWNraW5Qcm9wZXJ0aWVzIiBtc2dpZD0iNzg1NTI1OTQ2MTI2ODczNDkxNCI+InFleWRpeXlhdCB4w7xzdXNpeXnJmXRsyZlyaW5pIMmZbGTJmSBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI0MDI0NTI2OTY4NjMwMTk0MTI4Ij4iVMmZdGJpccmZIGdpcmnFnyBxZXlkaSBzZXJ2aXNpIHTJmXLJmWZpbmTJmW4gecO8a2zJmW5tacWfIG3DvGxraXl5yZl0yZkgZ2lyacWfaSBveHVtYXEveWF6bWFxIGlta2FubCB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIMO8w6fDvG4gbsmZesmZcmTJmSB0dXR1bG1hecSxYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRHYWRnZXQiIG1zZ2lkPSI3NzY5MDUzMzkwMTU4NjM0NzEiPiJ2aWRjZXRsyZlyIHNlw6ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kR2FkZ2V0IiBtc2dpZD0iODI2MTMyNjkzODU5OTA0OTI5MCI+IlTJmXRiaXHJmSBzaXN0ZW3JmSBoYW5zxLEgdmlkY2V0aW4gaGFuc8SxIHTJmXRiaXEgdMmZcsmZZmluZMmZbiBpc3RpZmFkyZkgZWRpbMmZIGJpbG3JmXNpbmkgZGVtyZl5yZkgaWNhesmZIHZlcmlyLiBCdSBpY2F6yZlsaSB0yZl0YmlxbMmZciDFn8mZeHNpIG3JmWx1bWF0bGFyYSB2yZkgZGlnyZlyIHTJmXRiaXFsyZlyyZkgw6fEsXjEscWfIHZlcsmZIGJpbMmZci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gaXN0aWZhZMmZIMO8w6fDvG4gZGV5aWwuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlQaG9uZVN0YXRlIiBtc2dpZD0iODQyMzkyMzc3NzY1OTI5MjIyOCI+InRlbGVmb24gc3RhdHVzdW51IGTJmXlpxZ9tyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5UGhvbmVTdGF0ZSIgbXNnaWQ9IjEwMjk4Nzc1MjkwMDc2ODY3MzIiPiJUyZl0YmlxyZkgY2loYXrEsW4gdGVsZWZvbiBmdW5rc2l5YWxhcsSxbsSxIGlkYXLJmSBldG3JmWsgaW1rYW7EsSB2ZXJpci4gQmVsyZkgaWNhesmZbGkgdMmZdGJpcSBTaXppIHjJmWLJmXJkYXIgZXRtyZlkyZluIMWfyZliyZlryZlsyZlyaSBxb8WfYSwgdGVsZWZvbiByYWRpb3N1bnUgeWFuZMSxcsSxYi1zw7ZuZMO8csmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRQaG9uZVN0YXRlIiBtc2dpZD0iOTE3ODIyODUyNDUwNzYxMDQ4NiI+InRlbGVmb24gc3RhdHVzdW51IHbJmSBpZGVudGlmaWthc2l5YW7EsSBveHV5dXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkUGhvbmVTdGF0ZSIgbXNnaWQ9IjE2MzkyMTI3NzE4MjYxMjU1MjgiPiJUyZl0YmlxyZkgY2loYXrEsW4gdGVsZWZvbiBmdW5rc2l5YWxhcsSxbmEgZ2lyacWfIGljYXrJmXNpIHZlcmlyLiBCZWzJmSBpY2F6yZlsaSB0yZl0YmlxIGJ1IHRlbGVmb251biBuw7ZtcsmZc2luaSB2yZkgY2loYXogxLBEXCduaSwgesmZbmdpbiBha3RpdiBvbHViLW9sbWFkxLHEn8SxbsSxIHbJmSB6yZluZyBlZGlsyZluIG7Dtm1yyZluaSBtw7zJmXl5yZluIGVkyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd2FrZUxvY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1MzE3MzE0MzUwMTE0OTUwMTUiPiJwbGFuxZ9ldGluIHl1eHUgcmVqaW1pbmluIHFhcsWfxLFzxLFuxLEgYWxtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dha2VMb2NrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTczNDgwMTg3OTQxNDk2MTMwIj4idGVsZWZvbnVuIHl1eHUgcmVqaW1pbsmZIGtlw6dtyZlzaW5pIMmZbmfJmWxsyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193YWtlTG9jayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzMxMTMxOTgyNDQwMDQ0Nzg2OCI+IlTJmXRiaXHJmSBwbGFuxZ9ldGluIHl1eHUgcmVqaW1pbmkgcWFkYcSfYW4gZXRtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd2FrZUxvY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NTU5MTAwNjc3MzcyOTI4NzU0Ij4iVMmZdGJpccmZIHRlbGVmb251biB5dXh1IHJlamltaW5pIHFhZGHEn2FuIGV0bcmZayBpbWthbsSxIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI3ODcwMzQ3MjI2MTYzNTA0MTciPiJwbGFuxZ9ldGkgeWFuZMSxcm1hIHbJmSB5YSBzw7ZuZMO8cm3JmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0OTI4NjIyNDcwOTgwOTQzMjA2Ij4idGVsZWZvbnUgeWFuZMSxcm1hcSB2yZkgeWEgc8O2bmTDvHJtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY2ODk4NjI4Nzg5ODQ2MzE4MzEiPiJUyZl0YmlxyZkgcGxhbsWfZXRpIHlhbmTEsXJtYcSfYSB2yZkgc8O2bmTDvHJtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2MDM3MDU3MzQ4NDYzMTMxMDMyIj4iVMmZdGJpccmZIHRlbGVmb251IHlhbmTEsXLEsWIgc8O2bmTDvHJtyZkgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mYWN0b3J5VGVzdCIgbXNnaWQ9IjM3MTUyMjU0OTI2OTY0MTYxODciPiJ6YXZvZCB0ZXN0IHJlamltaW5kyZkgacWfbMmZeWlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM5NTIwNTkzMTgzNTk2NTMwOTEiPiJQbGFuxZ9ldCBhdmFkYW5sxLHEn8SxbmEgdGFtIGdpcmnFn8mZIGlta2FuIHZlcm3JmWtsyZkgYcWfYcSfxLEgc8mZdml5ecmZbGkgaXN0ZWhzYWzDp8SxIHPEsW5hxJ/EsSBraW1pIGnFn2zJmXlpci4gWWFsbsSxeiBwbGFuxZ9ldCBpc3RlaHNhbMOnxLEgc8SxbmFxIHJlamltaW5kyZkgb2xkdXFkYSBpxZ9syZl5aXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MTM2NjQ0OTkwMzE5MjQ0ODAyIj4iQmlyIGHFn2HEn8SxIHPJmXZpeXnJmWxpIGlzdGVoc2Fsw6fEsSB0ZXN0aSBraW1pIMOnYWzEscWfZMSxcsSxbiwgdGVsZWZvbiBoYXJkd2FyZSDDvMOnw7xuIHRhbSBnaXJpxZ8gaW1rYW7EsSB2ZXJpci4gQW5jYXEgdGVsZWZvbiwgaXN0ZWhzYWzDp8SxIHRlc3QgcmVqaW1pbmTJmSDDp2FsxLHFn2TEscSfxLEgemFtYW4gYWt0aXZkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRXYWxscGFwZXIiIG1zZ2lkPSI2NjI3MTkyMzMzMzczNDY1MTQzIj4iZGl2YXIga2HEn8SxesSxIHllcmzJmcWfZGlyaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRXYWxscGFwZXIiIG1zZ2lkPSI3MzczNDQ3OTIwOTc3NjI0NzQ1Ij4iVMmZdGJpccmZIHNpc3RlbcmZIGRpdmFyIGthxJ/EsXrEsSB5ZXJsyZnFn2Rpcm3JmWsgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRXYWxscGFwZXJIaW50cyIgbXNnaWQ9IjMyNzg2MDgxNjU5Nzc3MzY1MzgiPiJkaXZhciBrYcSfxLF6xLEgw7Zsw6fDvHPDvG7DvCB2ZXJpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFdhbGxwYXBlckhpbnRzIiBtc2dpZD0iODIzNTc4NDM4NDIyMzczMDA5MSI+IlTJmXRiaXHJmSBzaXN0ZW0gZGl2YXIga2HEn8SxesSxIMO2bMOnw7xzw7wgZ8O2c3TJmXJpxZ9syZlyaW5pIG3DvMmZeXnJmW4gZXRtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYXN0ZXJDbGVhciIgbXNnaWQ9IjIzMTU3NTA0MjMxMzk2OTczOTciPiJmYWJyaWsgZGVmb2x0dW5hIHPEsWbEsXJsYW1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hc3RlckNsZWFyIiBtc2dpZD0iMzY2NTM4MDQ5MjYzMzkxMDIyNiI+IlTJmXRiaXHJmSBiw7x0w7xuIG3JmWx1bWF0bGFyxLEsIG5pemFtbGFyxLEgdsmZIHF1cmHFn2TEsXLEsWxtxLHFnyB0yZl0YmlxbMmZcmkgc2lsyZlyyZlrIHNpc3RlbWkgZmFicmlrIG5pemFtbGFyxLFuYSBxYXl0YXJtYXEgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFRpbWUiIG1zZ2lkPSIyMDIxNjE0ODI5NTkxNzc1NjQ2Ij4idmF4dMSxIHTJmXlpbiBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTg5NjM0MTQzODE1MTE1Mjg4MSI+IlTJmXRiaXHJmSBwbGFuxZ9ldGluIHNhYXQgdmF4dMSxbsSxIGTJmXlpxZ9tyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE4NTU3MDI3MzA3MzgwMjAiPiJUyZl0YmlxyZkgdGVsZWZvbnVuIHNhYXQgdmF4dMSxbsSxIGTJmXlpxZ9tyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRUaW1lWm9uZSIgbXNnaWQ9IjI5NDUwNzk4MDEwMTMwNzczNDAiPiJ2YXh0IHpvbmFzxLFuxLEgcXVyYcWfZMSxcsSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNjc2OTgzNzEyMzE1ODI3NjQ1Ij4iVMmZdGJpccmZIHBsYW7Fn2V0aW4gdmF4dCB6b25hc8SxbsSxIGTJmXlpxZ9tyZkgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZVpvbmUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDk5OTQzNDg4NDM2NjMzMzk4Ij4iVMmZdGJpccmZIHRlbGVmb24gc2FhdCB6b2xhxJ/EsW7EsSBkyZl5acWfbcmZayDDvMOnw7xuIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjb3VudE1hbmFnZXJTZXJ2aWNlIiBtc2dpZD0iNDgyOTI2MjM0OTY5MTM4Njk4NiI+IkFjY291bnRNYW5hZ2VyU2VydmljZSBraW1pIGRhdnJhbsSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjE5NDg0NTU1NTIzMzM2MTU5NTQiPiJUyZl0YmlxyZkgQWNjb3VudEF1dGhlbnRpY2F0b3JzXCfJmSB6yZluZyBldG3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldEFjY291bnRzIiBtc2dpZD0iMTA4Njc5NTQ2Nzc2MDEyMjExNCI+ImNpaGF6ZGEgaGVzYWJsYXLEsSB0YXDEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRBY2NvdW50cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjc0MTQ5NjUzNDc2OTY2MDAyNyI+IlTJmXRiaXHJmSBwbGFuxZ9ldCB0yZlyyZlmaW5kyZluIGJpbGluyZluIGhlc2FibGFyxLFuIHNpeWFoxLFzxLFuxLEgYWxtYSBpY2F6yZlzaSB2ZXJpci4gQnUgcXVyYcWfZMSxcmTEscSfxLFuxLF6IHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4geWFyYWTEsWxtxLHFnyBpc3TJmW5pbMmZbiBoZXNhYiBvbGEgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ0ODMxNjgyMjQ1MTgwNzM4MiI+IlTJmXRiaXHJmSB0ZWxlZm9uZGEgb2xhbiBoZXNhYmxhcsSxbiBzaXlhaMSxc8SxbsSxIMmZbGTJmSBldG3JmXnJmSBpbWthbiB2ZXJpci4gQnVuYSBxdXJhxZ9kxLFyZMSxxJ/EsW7EsXogaXN0yZluaWzJmW4gdMmZdGJpcSB0yZlyyZlmaW5kyZluIHlhcmFkxLFsYW4gaGVzYWJsYXIgZGEgYWlkZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXV0aGVudGljYXRlQWNjb3VudHMiIG1zZ2lkPSI1MjY1OTA4NDgxMTcyNzM2OTMzIj4iaGVzYWJsYXIgeWFyYWTEsXIgdsmZIHBhcm9sbGFyIHTJmXlpbiBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXV0aGVudGljYXRlQWNjb3VudHMiIG1zZ2lkPSI1NDcyMTI0Mjk2OTA4OTc3MjYwIj4iVMmZdGJpccmZIEFjY291bnRNYW5hZ2VyXCdpbiBoZXNhYiB5YXJhdG1hcSB2yZkgcGFyb2wgYWxtYXEgdsmZIGHDp21hcSBkYXhpbCBvbG1hcWxhIGLJmXJhYsmZciwgaGVzYWIgdMmZc2RpcWzJmXlpY2kgaW1rYW5sYXLEsW7EsSBpc3RpZmFkyZkgZXRtyZl5yZkgaWNhesmZIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI0OTgzMTI2MzA0NzU3MTc3MzA1Ij4iaGVzYWJsYXLEsSDJmWxhdsmZIGVkaXIgdsmZIHlhIHNpbGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI4Njk4Mjk1NjI1NDg4MjkyNTA2Ij4iVMmZdGJpccmZIGhlc2FibGFyxLFuIMmZbGF2yZkgb2x1bm1hc8SxIHbJmSB5YSBzaWxpbm3JmXNpLCBoyZltw6dpbmluIG9ubGFyxLFuIHBhcm9sbGFyxLFuxLFuIHNpbGlubcmZc2kga2ltaSDJmW3JmWxpeXlhdGxhcsSxIGljcmEgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91c2VDcmVkZW50aWFscyIgbXNnaWQ9IjIzNTQ4MTM5NjE2Mzg3NzY0MiI+ImNpaGF6ZGEgaGVzYWJsYXIgaXN0aWZhZMmZIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZUNyZWRlbnRpYWxzIiBtc2dpZD0iNzk4NDIyNzE0NzQwMzM0NjQyMiI+IlTJmXRiaXHJmSBhdXRlbnRpZmlrYXNpeWEgdG9rZW5syZlyaSBzb3LEn3VsYXLEsW7EsSBnw7ZuZMmZcm3JmXnJmSBpY2F6yZkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOZXR3b3JrU3RhdGUiIG1zZ2lkPSI0OTUxMDI3OTY0MzQ4OTc0NzczIj4ixZ/JmWLJmWvJmSBiYcSfbGFudMSxbGFyxLFuYSBiYXhtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOZXR3b3JrU3RhdGUiIG1zZ2lkPSI4MzE4OTY0NDI0Njc1OTYwOTc1Ij4iVMmZdGJpccmZIG3DtnZjdWQgb2xhbiB2yZkgcW/Fn3VsYW4gxZ/JmWLJmWvJmWzJmXIga2ltaSBxb8WfdWxtYWxhciBoYXFxxLFuZGEgbcmZbHVtYXTEsSBnw7ZybcmZecmZIGljYXrJmSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iODAxODc1ODEzNjQwNDMyMzY1OCI+InRhbSDFn8mZYsmZa8mZIGdpcmnFn2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jcmVhdGVOZXR3b3JrU29ja2V0cyIgbXNnaWQ9IjM0MDMwNjIxODc3Nzk3MjQxODUiPiJUyZl0YmlxyZkgxZ/JmWLJmWvJmSBzb2tldGzJmXJpbmkgeWFyYXRtYcSfYSB2yZkgZsmZcmRpIMWfyZliyZlryZkgcHJvdG9rb2xsYXLEsW7EsSBpc3RpZmFkyZkgZXRtyZl5yZkgaW1rYW4gdmVyaXIuIEJyYXV6ZXIgdsmZIGRpZ8mZciB0yZl0YmlxbMmZciBkYXRhbsSxbiBpbnRlcm5ldMmZIMO2dMO8csO8bG3JmXNpbmkgdMmZbWluIGVkyZluIHbJmXNhaXRsyZlyIHZlcmlyLCBvbmEgZ8O2csmZIGTJmSBkYXRhbsSxbiBpbnRlcm5ldMmZIGfDtm5yyZlkaWxtyZlzaSDDvMOnw7xuIGJ1IGljYXrJmSB0yZlsyZliIG9sdW5tdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUFwblNldHRpbmdzIiBtc2dpZD0iNTA1NjYwMTU5Njc1NzUxODk2Ij4ixZ/JmWLJmWvJmSBuaXphbWxhcsSxbsSxIHbJmSB0cmFmaWtpIGTJmXlpxZ9kaXJpci9xYXLFn8Sxc8SxbsSxIGFsxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVBcG5TZXR0aW5ncyIgbXNnaWQ9IjUzMzM3OTg4ODY0MTI3MTQxOTMiPiJUyZl0YmlxyZkgxZ/JmWLJmWvJmSB0cmFmaWtpbmluIHFhcsWfxLFzxLFuxLEgYWxtYXEgw7zDp8O8biDFn8mZYsmZa8mZIG5pemFtbGFyxLFuxLEgZMmZeWnFn23JmSBpY2F6yZlzaSB2ZXJpciwgbcmZc8mZbMmZbiBwcm9rc2luaSB2yZkgeWEgaXN0yZluaWzJmW4gQVBOLWluIHBvcnR1bnUuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciDFn8mZYsmZa8mZIHBha2V0bMmZcmluaSBzaXppbiBiaWxnaW5peiBvbG1hZGFuIG1vbml0b3JpbnEgZWTJmSwgecO2bmzJmW5kaXLJmSB2yZkgeWEgcmVkYWt0yZkgZWTJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VOZXR3b3JrU3RhdGUiIG1zZ2lkPSI5NTg4ODQyOTE0NTQzMjczMDkiPiLFn8mZYsmZa8mZIGJhxJ9sYW50xLFzxLFuxLEgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlTmV0d29ya1N0YXRlIiBtc2dpZD0iNjc4OTEyMzkxMjQ3NjQxNjIxNCI+IlTJmXRiaXHJmSDFn8mZYsmZa8mZIHbJmXppeXnJmXRpbmkgZMmZeWnFn23JmXnJmSBpY2F6yZkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VUZXRoZXJTdGF0ZSIgbXNnaWQ9IjU5NTI1ODQ5NjQzNzMwMTc5NjAiPiJTyZlyaMmZZGxpIGJhxJ9sYW50xLFuxLEgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlVGV0aGVyU3RhdGUiIG1zZ2lkPSIxNTI0NDQxMzQ0NDEyMzE5NzgwIj4iVMmZdGJpccmZIGJpcmzJmcWfaWxtacWfIMWfyZliyZlryZkgYmHEn2xhbnTEsXPEsW7EsW4gc3RhdHVzdW51IGTJmXlpxZ9tyZl5yZkgaW1rYW4gdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSIxNDAwNjY2MDEyNjcxNjQ4NzQxIj4iYXJ4YWZvbiBkYXRhIGlzdGlmYWTJmXNpIGF5YXLEsW7EsSBkyZl5acWfaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSI1MzQ3NzI5NTc4NDY4NzQ0Mzc5Ij4iVMmZdGJpccmZIGZvbiByZWppbWkgbml6YW1sYXLEsW7EsSBkyZl5acWfbcmZecmZIGljYXrJmSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1dpZmlTdGF0ZSIgbXNnaWQ9IjUyMDIwMTI5NDkyNDcwNDAwMTEiPiJXaS1GaSBiYcSfbGFudMSxbGFyxLFuYSBiYXhtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MDAyNzk4MDc3Mzg3ODAzNzI2Ij4iVMmZdGJpccmZIFdpLUZpIMWfyZliyZlryZlsyZlyaSBoYXFxxLFuZGEgbcmZbHVtYXTEsSBnw7ZybcmZecmZIGljYXrJmSB2ZXJpciwgbcmZc8mZbMmZbiwgV2ktRmkgbcO2dmN1ZGx1xJ91IHbJmSBxb8WfdWxtdcWfIFdpLUZpIGNpaGF6bGFyxLFuxLFuIGFkbGFyxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI2NTUwNjQxMTg4NzQ5MTI4MDM1Ij4iV2ktRmkgxZ/JmWLJmWvJmXNpbsmZIHFvxZ91bG1hcSB2yZkgeWEgYXlyxLFsbWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaVN0YXRlIiBtc2dpZD0iNzEzNzk1MDI5NzM4NjEyNzUzMyI+IlTJmXRiaXHJmSBXaS1GaSDDp8SxeMSxxZ8gbsO2cXTJmXNpbsmZIHFvxZ91bG1hcSB2yZkgb25kYW4gYXlyxLFsbWFxIHbJmSBjaWhhesSxbiBXaS1GaSDFn8mZYsmZa8mZIG5pemFtbGFyxLFuxLEgZMmZeWnFn23JmXnJmSBpY2F6yZkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIG1zZ2lkPSIxMzY4MjUzODcxNDgzMjU0Nzg0Ij4iV2ktRmkgTXVsdGljYXN0IHHJmWJ1bHVuYSBpY2F6yZkgdmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3OTY5Nzc0MDIxMjU2MzM2NTQ4Ij4iVMmZdGJpccmZIFdpLUZpIMWfyZliyZlryZlkyZkgc2l6aW4gcGxhbsWfZXRkyZluIGJhxZ9xYSBkaWfJmXIgbXVsdGlrYXN0IGFkcmVzbMmZcsmZIHnDtm5syZluZGlyaWxtacWfIHBha2V0bMmZcmkgYWxtYXEgaWNhesmZc2kgdmVyaXIuIEJ1IHFleXJpLcOnb3hhZHJlc2xpIHJlamltZMmZbiBmyZlxbGkgb2xhcmFxIGRhaGEgw6dveCBlbmVyamkgacWfbMmZZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTE5NDk3MDYwMjUzNDk5MjYiPiJUyZl0YmlxyZkgcXJ1cCDDvG52YW5sYXIgaXN0aWZhZMmZIGV0bcmZa2zJmSwgV2ktRmkgxZ/JmWLJmWvJmXNpbmTJmSBvbGFuIGLDvHTDvG4gY2loYXpsYXJhIGfDtm5kyZlyaWxtacWfIHBha2V0bMmZcmkgccmZYnVsIGV0bcmZecmZIGlta2FuIHZlcmlyLiBCdW5hIGRhaGEgw6dveCBlbmVyamkgc8mZcmYgb2x1bnVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmx1ZXRvb3RoQWRtaW4iIG1zZ2lkPSI2MDA2OTY3MzczOTM1OTI2NjU5Ij4iQmx1ZXRvb3RoIGF5YXJsYXLEsW7EsSDJmWxkyZkgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aEFkbWluIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2OTIxMTc3NDcxNzQ4ODgyMTM3Ij4iVMmZdGJpccmZIHllcmxpIEJsdWV0b290aCBwbGFuxZ9ldGluaW4ga29uZmlxdXJhc2l5YXPEsW7EsSBnw7ZybcmZecmZIHbJmSBtyZlzYWbJmWTJmW4gY2loYXpsYXLEsSB0YXBtYcSfYSB2yZkgY8O8dGzJmW3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhBZG1pbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MzE2ODIxNTkzMzE1NDIxMzciPiJUyZl0YmlxyZkgbG9rYWwgQmx1ZXRvb3RoIHRlbGVmb251bnUga29uZmlxdXLJmSBldG3JmXnJmSB2yZkgdXphcSBjaWhhemxhcsSxIGvJmcWfZiBldG3JmWsgdsmZIG9ubGFyYSBxb8WfdWxtYXEgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NXaW1heFN0YXRlIiBtc2dpZD0iNDE5NTkwNzAxMDYxMDIwNTcwMyI+IldpTUFYXCdhIHFvxZ91bCB2yZkgYmHEn2xhbnTEsW7EsSBryZlzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzV2ltYXhTdGF0ZSIgbXNnaWQ9IjYzNjAxMDI4NzcyNjE5Nzg4ODciPiJUyZl0YmlxyZkgV2lNQVggbcO2dmN1ZGx1xJ91IHbJmSBxb8WfdWxtdcWfIFdpTUFYIMWfyZliyZlryZlsyZlyaW5pIHTJmXlpbiBldG3JmXnJmSBpY2F6yZkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaW1heFN0YXRlIiBtc2dpZD0iMjQwNTA0MjI2NzEzMTQ5NjU3OSI+IldpTUFYIHbJmXppeXnJmXRpbmkgZMmZeWnFn2lyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2ltYXhTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzE1NjQ1NjUwNDA4NDIwMTgwNSI+IlTJmXRiaXHJmSBwbGFuxZ9ldGkgV2lNQVggxZ/JmWLJmWvJmWzJmXJpbsmZIHFvxZ9tYXEgdsmZIG9ubGFyZGFuIGF5xLFybWFxIGljYXrJmXNpIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2OTcwMjUwNDMwMDQ5MjM3OTgiPiJUyZl0YmlxyZkgdGVsZWZvbnUgV2lNQVggxZ/JmWLJmWvJmXNpbsmZIHFvxZ9tYcSfYSB2yZkgeWEgV2lNQVggxZ/JmWLJmWvJmXNpbmTJmW4gYXnEsXJtYcSfYSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JsdWV0b290aCIgbXNnaWQ9IjYxMjc3NjkzMzYzMzkyNzY4MjgiPiJCbHVldG9vdGggY2loYXpsYXLEsSBpbMmZIGPDvHRsyZluZGlybcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQ4MDcyMjE4MTg1MjQzODYyOCI+IlTJmXRiaXHJmSB5ZXJsaSBCbHVldG9vdGggcGxhbsWfZXRpbmluIGtvbmZpcXVyYXNpeWFzxLFuxLEgZ8O2cm3JmXnJmSB2yZkgY8O8dGzJmW5tacWfIGNpaGF6bGFybGEgYmHEn2xhbnTEsWxhciBldG3JmXnJmSB2yZkgccmZYnVsIGV0bcmZecmZIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMyMDcxMDYzMjQ0NTIzMTI3MzkiPiJUyZl0YmlxyZkgQmx1ZXRvb3RoIHbJmSB5YSB0ZWxlZm9uIGtvbmZpcXVyYXNpeWFsYXLEsW7EsSBnw7ZybcmZecmZIHbJmSBxb8WfdWxtdcWfIGNpaGF6bGFybGEgyZlsYXHJmSBxdXJtYcSfYSB2yZkgccmZYnVsIGV0bcmZecmZIGljYXrJmSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX25mYyIgbXNnaWQ9IjQ0MjMzNTEyNzQ3NTc4NzY5NTMiPiJOZWFyIEZpZWxkIENvbW11bmljYXRpb25cJ8SxIGtvbnRyb2wgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19uZmMiIG1zZ2lkPSI3MTIwNjExODE5NDAxNzg5OTA3Ij4iVMmZdGJpccmZIFlheMSxbiBNyZlzYWbJmSBLb21tdW5pa2FzaXlhc8SxIChORkMpIHRlcWzJmXJpLCBrYXJ0bGFyxLEgdsmZIG94dXl1Y3VsYXLEsSBpbMmZIMmZbGFxyZkgcXVybWHEn2EgaWNhesmZIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGlzYWJsZUtleWd1YXJkIiBtc2dpZD0iMzU5ODQ5NjMwMTQ4NjQzOTI1OCI+IkVrcmFuIGtpbGlkaW5pIGRlYWt0aXYgZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Rpc2FibGVLZXlndWFyZCIgbXNnaWQ9IjYwMzQyMDMwNjUwNzcxMjI5OTIiPiJUyZl0YmlxyZkga2lsaWQgYcOnYXLEsW7EsSB2yZkgdMmZaGzDvGvJmXNpemxpayBwYXJvbHVudSBkZWFrdGl2IGV0bcmZecmZIGlta2FuIHZlcmlyLiBRYW51bmkgbWlzYWwgYnVkdXIga2ksIHRlbGVmb24gesmZbmcgccmZYnVsIGVkyZluIHphbWFuIGtpbGlkaSBhw6fEsXIgdsmZIHrJmW5nIHF1cnRhcmFuZGFuIHNvbnJhIGtpbGlkaSBiYcSfbGF5xLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFN5bmNTZXR0aW5ncyIgbXNnaWQ9IjYyMDE4MTAwMDgyMzA1MDMwNTIiPiJzaW54IGF5YXJsYXLEsW7EsSBveHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1NldHRpbmdzIiBtc2dpZD0iMjcwNjc0NTY3NDU2OTY3ODY0NCI+IlTJmXRiaXHJmSBoZXNhYmxhciDDvMOnw7xuIHNpbnhyb25pemFzaXlhIG5pemFtbGFyxLFuxLEgb3h1bWEgaWNhesmZc2kgdmVyaXIuIE3JmXPJmWzJmW4sIGJ1IMWeyZl4c2zJmXIgdMmZdGJpcWluaW4gc2lueHJvbml6yZkgb2x1bnViLW9sdW5tYWTEscSfxLFuxLEgdMmZeWluIGVkyZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTeW5jU2V0dGluZ3MiIG1zZ2lkPSI1NDA4Njk0ODc1NzkzOTQ1MzE0Ij4ic2lueHJvbml6YXNpeWF5YSBkYXZhbSBlZGlyIHbJmSBvbnUgc8O2bmTDvHLDvHIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9Ijg5NTYyNjI1OTEzMDYzNjk4NjgiPiJUyZl0YmlxyZkgaGVzYWIgw7zDp8O8biBzaW54cm9uaXphc2l5YSBuaXphbWxhcsSxbsSxIGTJmXlpxZ9tyZl5yZkgaWNhesmZIHZlcmlyLiBNyZlzyZlsyZluLCBidSBpc3RpZmFkyZnDp2kgaGVzYWJsxLEgxZ7JmXhzbMmZciB0yZl0YmlxaW5pbiBzaW54cm9uaXphc2l5YXPEsW7EsSBiYcWfbGFtYXEgw7zDp8O8biBpc3RpZmFkyZkgZWRpbMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTeW5jU3RhdHMiIG1zZ2lkPSI3Mzk2NTc3NDUxMzYwMjAyNDQ4Ij4ic2lueHJvbml6YXNpeWEgc3RhdGlzdGlrYXPEsW7EsSBveHVtYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1N0YXRzIiBtc2dpZD0iMTUxMDE0Mzc2MTc1NzYwNjE1NiI+IlTJmXRiaXHJmSBzeW5jIHTJmWRiaXJsyZlyaW5pbiB0YXJpeMOnyZlzaSB2yZkgbsmZIHHJmWTJmXIgZGF0YW7EsW4gc2lueCBvbGR1xJ91IGRhIGRheGlsIG9sbWFxbGEgYsmZcmFiyZlyLCBoyZlyIGhhbnPEsSBiaXIgaGVzYWIgw7zDp8O8biBvbGFuIHNpbnggc3RhdGxhcsSxbsSxIG94dW1hxJ9hIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3Vic2NyaWJlZEZlZWRzUmVhZCIgbXNnaWQ9IjQ3NTY2MDk2MzcwNTMzNTMzMTgiPiJhYnVuyZkgb2x1bm11xZ8geMmZYsmZcmzJmXJpIG94dXl1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N1YnNjcmliZWRGZWVkc1JlYWQiIG1zZ2lkPSI1NTU3MDU4OTA3OTA2MTQ0NTA1Ij4iVMmZdGJpccmZIGhhesSxcmRhIHNpbnhyb24gbGVudGzJmXIgaGFxccSxbmRhIMmZdHJhZmzEsSBtyZlsdW1hdCBhbG1hcSDDvMOnw7xuIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3Vic2NyaWJlZEZlZWRzV3JpdGUiIG1zZ2lkPSI5MDE1MjQ2MzI1NDA4MjA5Mjk2Ij4iYWJ1bsmZIG9sdW5tdcWfIHjJmWLJmXJsyZlyaSB5YXrEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdWJzY3JpYmVkRmVlZHNXcml0ZSIgbXNnaWQ9IjY5Mjg5MzAxODg4MjYwODk0MTMiPiJUyZl0YmlxyZkgY2FyaSBzaW54cm9ubGHFn23EscWfIGxlbnRsyZlyaW5pesmZIGTJmXlpxZ9pa2xpayBldG3JmWsgaW1rYW7EsSB2ZXJpci4gWsmZcsmZcmxpIHTJmXRiaXFsyZlyIHNpeHJvbmxhxZ9txLHFnyBsZW50bMmZcmluaXppIGTJmXlpxZ/JmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjQxMDcxMDE1MjU3NDYwMzU3MTgiPiJsw7zEn8mZdMmZIMmZbGF2yZkgZXRkaXlpbml6IMWfyZlydGzJmXJpIG94dW1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWREaWN0aW9uYXJ5IiBtc2dpZD0iNjU5NjE0NjAwMzM4OTA0MjQzIj4iVMmZdGJpccmZIGlzdGlmYWTJmcOnaW5pbiBsw7zEn8mZdGTJmSBzYXhsYWTEscSfxLEgYsO8dMO8biBzw7Z6bMmZcmksIGFkbGFyxLEgdsmZIGZyYXphbGFyxLEgb3h1bWFxIGljYXrJmXNpIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iMjE4MzExMDQwMjMxNDQ0MTEwNiI+ImlzdGlmYWTJmcOnaSBsw7zEn8mZdGluyZkgc8O2emzJmXIgyZlsYXbJmSBldG3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSI4MTg1Mzg1NzE2MjU1MDY1MjkxIj4iVMmZdGJpccmZIGlzdGlmYWTJmcOnaSBsw7zEn8mZdGluyZkgeWVuaSBzw7Z6bMmZciB5YXptYcSfYSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFJlYWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iODIzNTM0MTUxNTYwNTU1OTY3NyI+InFvcnVubXXFnyB5YWRkYcWfYSBkYXhpbCBvbG1hxJ9hIGPJmWhkIGV0bcmZayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgyMzUzNDE1MTU2MDU1NTk2NzciPiJxb3J1bm11xZ8geWFkZGHFn2EgZGF4aWwgb2xtYcSfYSBjyZloZCBldG3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM2NDI0NzMyOTIzNDgxMzIwNzIiPiJUyZl0YmlxyZkgZ8mZbMmZY8mZayBjaWhhemxhcmRhIMmZbMOnYXTEsW1sxLEgb2xhY2FxIFVTQiB5YWRkYcWfIMO8w6fDvG4gaWNhesmZIHRlc3RpIGV0bcmZecmZIGlta2FuIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1OTE0NDAyNjg0Njg1ODQ4ODI4Ij4iVMmZdGJpccmZIGfJmWzJmWPJmWsgY2loYXpsYXJkYSBtw7Z2Y3VkIG9sYWNhcSBTRCBrYXJ0IMO8w6fDvG4gaWNhesmZbmkgdGVzdCBldG3JmWsgw7zDp8O8biBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijg0ODU5NzkwNjIyNTQ2NjY3NDgiPiJVU0IgeWFkZGHFn8SxbsSxesSxbiBtyZl6bXVudW51IGTJmXlpxZ9tyZlrIHbJmSB5YSBzaWxtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg4MDU2OTM2MzAwNTA0NTg3NjMiPiJTRCBrYXJ0IGtvbnRlbnRsyZlyaW5pIGTJmXlpxZ9pciB2yZkgeWEgc2lsaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRXcml0ZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MTc1NDA2Mjk5NDQ1NzEwODg4Ij4iVMmZdGJpccmZIFVTQiB5YWRkYcWfYSB5YXptYcSfYSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQzMzc0MTc3OTA5MzY2MzIwOTAiPiJUyZl0YmlxyZkgU0Qga2FydGEgeWF6bWEgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTk4MzkxOTk3MDY4NzkwMTUiPiJkYXhpbGkgbWVkaWEgeWFkZGHFn8SxIGtvbnRlbnRpbmkgZMmZeWnFn2lyL3NpbGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWVkaWFTdG9yYWdlV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MTg5MTYwNTk3Njk4NTI5MTg1Ij4iVMmZdGJpccmZIGRheGlsaSBtZWRpYSB5YWRkYcWfZGFrxLEga29udGVudGkgcmVkYWt0yZkgZXRtyZlrIGljYXrJmXNpIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlRG9jcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3NzgzMTg1OTg0NDg4NDk4MjkiPiJzyZluyZlkIHlhZGRhxZ/EsW7EsSBuaXphbWxhecSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZURvY3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NzA0MzIzMTc2OTE0MTIxNDg0Ij4iVMmZdGJpccmZIHPJmW7JmWQgeWFkZGHFn8SxbsSxIGlkYXLJmSBldG3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZEFjY2Vzc0FsbCIgbXNnaWQ9IjgxNTA2MTM4MjM5MDA0NjA1NzYiPiJiw7x0w7xuIGlzdGlmYWTJmcOnaWzJmXJpbiB4YXJpY2kgeWFkZGHFn8SxbmEgZGF4aWwgb2wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRBY2Nlc3NBbGwiIG1zZ2lkPSIzMjE1MjA4MzU3NDE1ODkxMzIwIj4iVMmZdGJpccmZIGLDvHTDvG4gaXN0aWZhZMmZw6dpbMmZciDDvMOnw7xuIG9sYW4geGFyaWNpIHlhZGRhxZ9hIGdpcmnFnyBpbWthbsSxIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU2NTY0ODcyNjQ4MTk2Njk4MjQiPiJrZcWfIGZheWwgc2lzdGVtaW7JmSBnaXJtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU1Nzg5Njc2NDIyNjU1NTA5NTUiPiJUyZl0YmlxyZkga2XFnyBmYXlsIHNpc3RlbWluaSBveHVtYcSfYSB2yZkgeWF6bWHEn2EgaWNhesmZIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXNlX3NpcCIgbXNnaWQ9IjU5ODY5NTIzNjI3OTU4NzA1MDIiPiLEsG50ZXJuZXQgesmZbmdsyZlyaSBldG3JmWsgdsmZIHlhIHHJmWJ1bCBldG3JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191c2Vfc2lwIiBtc2dpZD0iNDcxNzYzMjAwMDA2MjY3NDI5NCI+IlTJmXRiaXHJmSBpbnRlcm5ldCB6yZluZ2zJmXJpbmluIGfDtm5kyZlyaWxtyZlzaSB2yZkgccmZYnVsIGVkaWxtyZlzaSDDvMOnw7xuIFNJUCBzZXJ2aXNpbmTJmW4gaXN0aWZhZMmZIGljYXrJmXNpIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZE5ldHdvcmtVc2FnZUhpc3RvcnkiIG1zZ2lkPSI3ODYyNTkzMjgzNjExNDkzMjMyIj4idGFyaXhpIMWfyZliyZlryZkgaXN0aWZhZMmZc2luaSBveHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTmV0d29ya1VzYWdlSGlzdG9yeSIgbXNnaWQ9Ijc2ODkwNjA3NDk4MTkxMjY0NzIiPiJUyZl0YmlxyZkgeMO8c3VzaSDFn8mZYsmZa8mZbMmZciB2yZkgdMmZdGJpcWzJmXIgw7zDp8O8biB0YXJpeGkgxZ/JmWLJmWvJmSBpc3RpZmFkyZlzaW5pIG94dW1hxJ9hIGljYXrJmSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZU5ldHdvcmtQb2xpY3kiIG1zZ2lkPSIyNTYyMDUzNTkyMzM5ODU5OTkwIj4ixZ/JmWLJmWvJmSBzaXlhc8mZdGluaSBpZGFyyZkgZXRtyZlrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlTmV0d29ya1BvbGljeSIgbXNnaWQ9Ijc1Mzc1ODY3NzE1NTkzNzA2NjgiPiJUyZl0YmlxyZkgxZ/JmWLJmWvJmSBxYW51bmxhcsSxbsSxIHbJmSB0yZl0YmlxaW4geMO8c3VzaSBxYXlkYWxhcsSxbsSxIGlkYXLJmSBldG3JmWsgaW1rYW7EsSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeU5ldHdvcmtBY2NvdW50aW5nIiBtc2dpZD0iNTA4ODIxNzMwOTA4ODcyOTY1MCI+IsWfyZliyZlryZkgaXN0aWZhZMmZIGhlc2FixLFuxLEgZMmZeWnFn23JmWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb2RpZnlOZXR3b3JrQWNjb3VudGluZyIgbXNnaWQ9IjU0NDM0MTI4NjY3NDYxOTgxMjMiPiJUyZl0YmlxyZkgxZ/JmWLJmWvJmSBpc3RpZmFkyZlzaW5pbiB0yZl0YmlxbMmZcsmZIHFhcsWfxLEgbml6YW1sYXLEsW7EsSByZWRha3TJmSBldG3JmXnJmSBpY2F6yZkgdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIGlzdGlmYWTJmSBlZGlsbWlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSIzNjU4NTI3MjE0OTE0OTU5NzQ5Ij4ic29rZXQgacWfYXLJmWzJmXJpbmkgZMmZeWnFn2luIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSI3NjU1NTY4NDMzNjk2MzU2NTc4Ij4iVMmZdGJpccmZIGFyYcWfZMSxcm1hIMO8w6fDvG4gc29rZXQgacWfYXLJmWzJmXJpbmkgZMmZeWnFn23JmWsgaW1rYW7EsSB2ZXJpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTm90aWZpY2F0aW9ucyIgbXNnaWQ9Ijc2NzM0MTY0ODc4NzM0MzIyNjgiPiJiaWxkaXJpxZ9syZlyyZkgZGF4aWwgb2wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNDU4NDU3NzQyNjgzNDMxMzg3Ij4iVMmZdGJpccmZIGJpbGRpcmnFn2zJmXJpIMmZbGTJmSBldG3JmXnJmSwgc8SxbmFtYcSfYSB2yZkgdMmZbWl6bMmZbcmZecmZIGlta2FuIHZlcmlyLCBidW5hIGRpZ8mZciB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIHZlcmlsbWnFnyBiaWxkaXJpxZ9syZlyIGTJmSBkYXhpbGRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROb3RpZmljYXRpb25MaXN0ZW5lclNlcnZpY2UiIG1zZ2lkPSI3MDU3NzY0NzQyMjExNjU2NjU0Ij4iYmlsZGlyacWfIGRpbmzJmW3JmSB4aWRtyZl0aW7JmSBiYcSfbGFuxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5vdGlmaWNhdGlvbkxpc3RlbmVyU2VydmljZSIgbXNnaWQ9Ijk4NTY5NzkxODU3NjkwMjk4NiI+IlNhaGliaW7JmSB5w7xrc8mZayBzyZl2aXl5yZlsaSBiaWxkaXJpxZ8gZGlubMmZbcmZIHNlcnZpc2kgaWzJmSDJmWxhccmZIHNheGxhbWHEn2EgaWNhesmZIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiBoZcOnIHZheHQgaXN0yZluaWxtyZltyZlsaWRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludm9rZUNhcnJpZXJTZXR1cCIgbXNnaWQ9IjM2OTk2MDA4MzM5NzUxMTc0NzgiPiJvcGVyYXRvciB4aWRtyZl0bGkga29uZml1cmFzaXlhIHTJmXRiaXFpbsmZIG3DvHJhY2nJmXQgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludm9rZUNhcnJpZXJTZXR1cCIgbXNnaWQ9IjQxNTk1NDkxNTI1MjkxMTE5MjAiPiJTYWhpYmluyZkgb3BlcmF0b3IgeGlkbcmZdGxpIHTJmXRiaXEga29uZmlxdXJhc2l5YXPEsW5hICBtw7xyYWNpyZl0IGlta2FuxLEgdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciDDvMOnw7xuIHTJmWzJmWIgb2x1bm1hbWFsxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI4MjA2MDc3NDQ3ODM4OTA5NTE2Ij4ixZ/JmWLJmWvJmSDFn8mZcmFpdGkgaGFxccSxbmRhIG3DvMWfYWhpZMmZbMmZciDDvMOnw7xuIHF1bGFxIGFzbWFxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI2ODk5MTAyMDc1ODI1MjcyMjExIj4iVMmZdGJpccmZIMWfyZliyZlryZkgxZ/JmXJhaXRpIMO8enLJmSBtw7zFn2FoaWTJmWzJmXIgw7zDp8O8biBxdWxhcSBhc21hcSBpbWthbsSxIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgw7zDp8O8biBoZcOnIHZheHQgbGF6xLFtIG9sbWFtYWzEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2xpbWl0UGFzc3dvcmQiIG1zZ2lkPSI0NDk3NDIwNzI4ODU3NTg1NzkxIj4iUGFyb2wgcWF5ZGFsYXLEsW7EsSB0yZl5aW4gZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfbGltaXRQYXNzd29yZCIgbXNnaWQ9IjMyNTIxMTQyMDM5MTk1MTAzOTQiPiJFa3JhbiBraWxpZGluaSBhw6dhbiDFn2lmcsmZbMmZcmluIHV6dW5sdcSfdW51IHbJmSBvbmxhcmRha8SxIGljYXrJmSB2ZXJpbMmZbiBpxZ9hcsmZbMmZcsmZIG7JmXphcsmZdCBlZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl93YXRjaExvZ2luIiBtc2dpZD0iOTE0MTMwNjQ2OTQyMTk5NTAzIj4iRWtyYW4ga2lsaWRpIGPJmWhkbMmZcmluaSBtb25pdG9yaW5xIGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193YXRjaExvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjE1NzI5Mjk0MjE1MDcwMDcyIj4iRWthbiBraWxpZGluaSBhw6dhcmvJmW4gZGF4aWwgZWRpbG1pxZ8geWFubMSxxZ8gcGFyb2xsYXJhIGJheMSxbiB2yZkgyZlnyZlyIGjJmWRkaW5kyZluIMOnb3ggeWFubMSxxZ8gcGFyb2xsYXIgZGF4aWwgZWRpbGlic8mZLCBwbGFuxZ9ldGkga2lsaWRsyZl5aW4gdsmZIHlhIGLDvHTDvG4gcGxhbsWfZXQgZGF0YXPEsW7EsSBzaWxpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dhdGNoTG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NzEyMzIzMDkxODQ2NzYxMDczIj4iRWthbiBraWxpZGluaSBhw6dhcmvJmW4gZGF4aWwgZWRpbG1pxZ8geWFubMSxxZ8gcGFyb2xsYXJhIGJheMSxbiB2yZkgyZlnyZlyIGjJmWRkaW5kyZluIMOnb3ggeWFubMSxxZ8gcGFyb2xsYXIgZGF4aWwgZWRpbGlic8mZLCB0ZWxlZm9udSBraWxpZGzJmXlpbiB2yZkgeWEgYsO8dMO8biB0ZWxlZm9uIGRhdGFzxLFuxLEgc2lsaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3Jlc2V0UGFzc3dvcmQiIG1zZ2lkPSIyNjIwMDc3MTkxMjQyNjg4OTU1Ij4iRWtyYW4ga2lsaWQgcGFyb2x1bnUgZMmZeWnFn2luIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19yZXNldFBhc3N3b3JkIiBtc2dpZD0iNjA1OTYzOTYyMzAxOTA0NDU4Ij4iRWtyYW4ga2lsaWRpbmkgYcOnYW4gxZ9pZnLJmW5pIGTJmXlpxZ9kaXJpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZm9yY2VMb2NrIiBtc2dpZD0iMjI3NDA4NTM4NDcwNDI0ODQzMSI+IkVrcmFuxLEga2lsaWRsyZl5aW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2ZvcmNlTG9jayIgbXNnaWQ9IjExNDE3OTc1ODg0MDM4MjcxMzgiPiJFa3JhbsSxbiBuyZkgdmF4dCB2yZkgbmVjyZkga2lsaWRsyZlubcmZc2luyZkgbsmZemFyyZl0IGVkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dpcGVEYXRhIiBtc2dpZD0iMzkxMDU0NTQ0Njc1ODYzOTcxMyI+IkLDvHTDvG4gbcmZbHVtYXRsYXLEsSBzaWxpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2lwZURhdGEiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQzMDYxODQwOTYwNjc3NTY4NzYiPiJQbGFuxZ9ldGluIGRhdGFzxLFuxLEgeMmZYsmZcmRhcmzEsXEgb2xtYWRhbiwgemF2b2QgZGF0YSBzxLFmxLFybGFtYXPEsSBpbMmZIHNpbGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2lwZURhdGEiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MDk2ODk1NjA0NTc0MTg4MzkxIj4iVGVsZWZvbnVuIGRhdGFzxLFuxLEgeMmZYsmZcmRhcmzEsXEgb2xtYWRhbiwgemF2b2QgZGF0YSBzxLFmxLFybGFtYXPEsSBpbMmZIHNpbGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3NldEdsb2JhbFByb3h5IiBtc2dpZD0iMjc4NDgyODI5Mzc0Nzc5MTQ0NiI+IkNpaGF6xLFuIHFsb2JhbCBwcm9rc2lzaW5pIGF5YXJsYXnEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3NldEdsb2JhbFByb3h5IiBtc2dpZD0iNjM4NzQ5NzQ2NjY2MDE1NDkzMSI+IlNpeWFzyZl0IGFrdGl2IG9sYXJryZluIGNpaGF6xLFuIHFsb2JhbCBwcm9rc2lzaW5pIGlzdGlmYWTJmSDDvMOnw7xuIHF1cnVuLiBZYWxuxLF6IGlsayBjaWhheiBhZG1pbmkgZWZmZWt0aXYgcWxvYmFsIHByb2tzaW5pIHTJmXlpbiBlZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9leHBpcmVQYXNzd29yZCIgbXNnaWQ9Ijg4NTI3OTE1MTg0NzI1NDA1NiI+IkVrcmFuIGtpbGlkaSDFn2lmcsmZc2luyZkgc29uIHphbWFuIHNlw6ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2V4cGlyZVBhc3N3b3JkIiBtc2dpZD0iMTcyOTcyNTIyNjMxNDY5MTU5MSI+IkVrcmFuIGtpbGlkaSBwYXJvbHVudW4gbsmZIHHJmWTJmXIgdGV6LXRleiBkyZl5acWfbcmZc2luaSBrb250cm9sIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2VuY3J5cHRlZFN0b3JhZ2UiIG1zZ2lkPSI4OTAxMzI2MTk5OTA5MTMyOTE1Ij4iWWFkZGHFnyDFn2lmcsmZbMmZbm3JmXNpbmkgYXlhcmxhecSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9IjI2Mzc3MzIxMTUzMjUzMTY5OTIiPiJUyZl0YmlxIG3JmWx1bWF0bGFyxLFuxLFuIMWfaWZyyZlsyZlubcmZc2luaSB0yZlsyZliIGVkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2Rpc2FibGVDYW1lcmEiIG1zZ2lkPSI2Mzk1MzAxMDIzMTUyMjk3ODI2Ij4iS2FtZXJhbGFyxLEgZGVrYXRpdiBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19kaXNhYmxlQ2FtZXJhIiBtc2dpZD0iMjMwNjM0OTA0MjgzNDc1NDU5NyI+IkLDvHTDvG4gY2loYXoga2FtZXJhbGFyxLFuxLFuIGlzdGlmYWTJmXNpbmkgyZluZ8mZbGzJmS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIyNjYzMjkxMDQ1NDI2Mzg4MDIiPiJLbGF2aWF0dXJhIGtpbGlkaW5kyZkgZnVua3NpeWFsYXLEsSBkZWFrdGl2IGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2Rpc2FibGVLZXlndWFyZEZlYXR1cmVzIiBtc2dpZD0iMzQ2NzA4MjI3MjE4NjUzNDYxNCI+IktsYXZpYXR1cmEga2lsaWRpbmTJmSBiyZl6aSBmdW5rc2l5YWxhcsSxbiBxYXLFn8Sxc8SxbsSxIGFsxLFuLiI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwaG9uZVR5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iODkwMTA5ODMzNjY1ODcxMDM1OSI+IsaPc2FzIHPJmWhpZsmZIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iODY5OTIzNjUwNTI3MTM2NjE1Ij4iTW9iaWwiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3ODk3NTQ0NjU0MjQyODc0NTQzIj4ixLDFnyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjExMDM2MDE0MzMzODIxNTgxNTUiPiLEsMWfIEZha3PEsSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjE3MzUxNzcxNDQ5NDgzMjkzNzAiPiJFdiBGYWtzxLEiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2MDM4Nzg2NzQ0NzcyMDczOTQiPiJQZXljZXIiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxNjUwODI0Mjc1MTc3OTMxNjM3Ij4iRGlnyZlyIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iOTE5MjUxNDgwNjk3NTg5ODk2MSI+IsWeyZl4c2kiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJlbWFpbEFkZHJlc3NUeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9IjgwNzM5OTQzNTI5NTYxMjkxMjciPiJBbmEgc8mZaGlmyZkiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3MDg0MjM3MzU2NjAyNjI1NjA0Ij4ixLDFnyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjExMTIwNDQ0MTA2NTkwMTEwMjMiPiJEaWfJmXIiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyMzc0OTEzOTUyODcwMTEwNjE4Ij4iRsmZcmRpIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icG9zdGFsQWRkcmVzc1R5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iNjg4MDI1NzYyNjc0MDA0NzI4NiI+IsaPc2FzIHPJmWhpZsmZIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNTYyOTE1Mzk1NjA0NTEwOTI1MSI+IsSwxZ8iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0OTY2NjA0MjY0NTAwMzQzNDY5Ij4iRGlnyZlyIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNDkzMjY4Mjg0NzU5NTI5OTM2OSI+IkTDvHrJmW5syZl5aW4iPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJpbUFkZHJlc3NUeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9IjE3Mzg1ODUxOTQ2MDE0NzY2OTQiPiLGj3NhcyBzyZloaWbJmSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjEzNTk2NDQ1NjU2NDczODM3MDgiPiLEsMWfIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg2ODU0OTQwMTA1MzYxNTY3NyI+IkRpZ8mZciI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxNDUxMTg5NDQ2Mzk4Njk4MDkiPiJGyZlyZGkiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmdhbml6YXRpb25UeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc1NDYzMzU2MTIxODkxMTU2MTUiPiLEsMWfIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNDM3ODA3NDEyOTA0OTUyMDM3MyI+IkRpZ8mZciI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjM0NTUwNDc0Njg1ODM5NjUxMDQiPiJGyZlyZGkiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJpbVByb3RvY29scyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijg1OTUyNjEzNjM1MTg0NTk1NjUiPiJBSU0iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3MzkwNDczNjI4Mjc1NDkwNzAwIj4iV2luZG93cyBMaXZlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg4Mjg3NzEzNDkzMTQ1ODIxNyI+IllhaG9vIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNTAzNTM3NjMxMzIwMDU4NTI0MiI+IlNreXBlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzUzMjM2MzE3ODQ1OTQ0NDk0MyI+IlFRIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzcxMzQ0MTAzNDI5OTY2MDc0OSI+Ikdvb2dsZSBTw7ZoYsmZdCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI1MDY4NTczMTI3MTg2MzA4MjMiPiJJQ1EiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxNjQ4Nzk3OTAzNzg1Mjc5MzUzIj4iSmFiYmVyIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVDdXN0b20iIG1zZ2lkPSIxNjQ0NzM4MDU5MDUzMzU1ODIwIj4ixZ7JmXhzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUhvbWUiIG1zZ2lkPSIyNTcwOTIzNDYzMDMzOTg1ODg3Ij4iRXYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVNb2JpbGUiIG1zZ2lkPSI2NTAxNDYzNTU3NzU0NzUxMDM3Ij4iTW9iaWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVXb3JrIiBtc2dpZD0iODg2MzkzOTY2NzA1OTkxMTYzMyI+IsSwxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVGYXhXb3JrIiBtc2dpZD0iMzUxNzc5MjE2MDAwODg5MDkxMiI+IsSwxZ8gRmFrc8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlRmF4SG9tZSIgbXNnaWQ9IjIwNjcyNjU5NzIzMjI5NzE0NjciPiJFdiBGYWtzxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVQYWdlciIgbXNnaWQ9Ijc1ODIzNTk5NTUzOTQ5MjE3MzIiPiJQZXljZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVPdGhlciIgbXNnaWQ9IjE1NDQ0MjU4NDc4Njg3NjU5OTAiPiJEaWfJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVDYWxsYmFjayIgbXNnaWQ9IjI3MTIxNzUyMDMwNjU2NzgyMDYiPiJHZXJpecmZIHrJmW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlQ2FyIiBtc2dpZD0iODczODM2MDY4OTYxNjcxNjk4MiI+IkF2dG9tb2JpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNvbXBhbnlNYWluIiBtc2dpZD0iNTQwNDM0MzU2NDYxNDc4OTE2Ij4ixZ5pcmvJmXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVJc2RuIiBtc2dpZD0iODAyMjQ1MzE5MzE3MTM3MDMzNyI+IklTRE4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVNYWluIiBtc2dpZD0iNjc2NjEzNzAxMDYyODMyNjkxNiI+IsaPc2FzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlT3RoZXJGYXgiIG1zZ2lkPSI4NTg3NjU3MTQ1MDcyNDQ2NTY1Ij4iRGlnyZlyIGZha3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVSYWRpbyIgbXNnaWQ9IjQwOTM3MzgwNzk5MDg2Njc1MTMiPiJSYWRpbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVRlbGV4IiBtc2dpZD0iMzM2Nzg3OTk1MjQ3NjI1MDUxMiI+IlRlbGVrcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVR0eVRkZCIgbXNnaWQ9Ijg2MDY1MTQzNzg1ODUwMDAwNDQiPiJUVFkgVEREIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlV29ya01vYmlsZSIgbXNnaWQ9IjEzMTE0MjY5ODkxODQwNjU3MDkiPiJNb2JpbCBpxZ8gdGVsZWZvbnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVXb3JrUGFnZXIiIG1zZ2lkPSI2NDk5Mzg3MzEyMzExNTcwNTYiPiLEsMWfIFBleWNlcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVBc3Npc3RhbnQiIG1zZ2lkPSI1NTk2NzcyNjM2MTI4NTYyODg0Ij4iS8O2bcmZa8OnaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU1tcyIgbXNnaWQ9IjcyNTQ0OTIyNzU1MDI3Njg5OTIiPiJNTVMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVDdXN0b20iIG1zZ2lkPSI3ODM3NTg2MTk4NDU4MDczNDA0Ij4iRsmZcmRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXZlbnRUeXBlQmlydGhkYXkiIG1zZ2lkPSIyODEzMzc5ODQ0MjExMzkwNzQwIj4iRG/En3VtIGfDvG7DvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZUFubml2ZXJzYXJ5IiBtc2dpZD0iMzg3Njc3OTc0NDUxODI4NDAwMCI+IsSwbGTDtm7DvG3DvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZU90aGVyIiBtc2dpZD0iNzM4ODE3ODkzOTAxMDE0MzA3NyI+IkRpZ8mZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZUN1c3RvbSIgbXNnaWQ9Ijg1MjU5NjAyNTc4MDQyMTM4NDYiPiJGyZlyZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVIb21lIiBtc2dpZD0iNDQ5MjI3MjM2MTQwNDMzOTE5Ij4ixo9zYXMgc8mZaGlmyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVXb3JrIiBtc2dpZD0iMzU0ODA1ODA1OTYwMTE0OTk3MyI+IsSwxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVPdGhlciIgbXNnaWQ9IjI5MjMwMDg2OTUyNzI2Mzk1NDkiPiJEaWfJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVNb2JpbGUiIG1zZ2lkPSIxMTk5MTkwMDUzMjExNjYyMDUiPiJNb2JpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVDdXN0b20iIG1zZ2lkPSI4OTAzMjA2OTAzMDYwNDc5OTAyIj4iRsmZcmRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZUhvbWUiIG1zZ2lkPSI4MTY1NzU2OTc3MTg0NDgzMDk3Ij4ixo9zYXMgc8mZaGlmyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3N0YWxUeXBlV29yayIgbXNnaWQ9IjUyNjgxNzI3NzIzODc2OTQ0OTUiPiLEsMWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZU90aGVyIiBtc2dpZD0iMjcyNjExMTk2NjYyMzU4NDM0MSI+IkRpZ8mZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZUN1c3RvbSIgbXNnaWQ9IjIwNzQwMjg3NTU1Mjc4MjYwNDYiPiJGyZlyZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVR5cGVIb21lIiBtc2dpZD0iNjI0MTE4MTAzMjk1NDI2Mzg5MiI+IkFuYSBzyZloaWbJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZVdvcmsiIG1zZ2lkPSIxMzcxNDg5MjkwMjQyNDMzMDkwIj4ixLDFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZU90aGVyIiBtc2dpZD0iNTM3NzAwNzQ5NTczNTkxNTQ3OCI+IkRpZ8mZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xDdXN0b20iIG1zZ2lkPSI2OTE5NDUzODM2NjE4NzQ5OTkyIj4ixZ7JmXhzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xBaW0iIG1zZ2lkPSI3MDUwMzYwNjEyMzY4MzgzNDE3Ij4iQUlNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE1zbiIgbXNnaWQ9IjE0NDU1NjU0NTQyMDc2OTQ0MiI+IldpbmRvd3MgTGl2ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xZYWhvbyIgbXNnaWQ9IjgyNzE0Mzk0MDg0NjkwMjEyNzMiPiJZYWhvbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xTa3lwZSIgbXNnaWQ9IjkwMTkyOTY3NDQ2MjI4MzI5NTEiPiJTa3lwZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xRcSIgbXNnaWQ9Ijg4ODc0ODQzNzk0OTQxMTE4ODQiPiJRUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xHb29nbGVUYWxrIiBtc2dpZD0iNDkzOTAyMzIxMTQwMjc3MzA0Ij4iR8O2csO8xZ9syZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbEljcSIgbXNnaWQ9IjE1NzQ4NzA0MzM2MDY1MTczMTUiPiJJQ1EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sSmFiYmVyIiBtc2dpZD0iMjI3OTkxNzYzMDg3NTc3MTcyMiI+IkphYmJlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xOZXRNZWV0aW5nIiBtc2dpZD0iODI4NzYyNTY1NTk4NjgyNzk3MSI+Ik5ldE1lZXRpbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdUeXBlV29yayIgbXNnaWQ9IjI5MjY4ODcwNTA1MzYzODcyIj4ixLDFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ1R5cGVPdGhlciIgbXNnaWQ9IjM5NTE3ODExMzE1NzAxMjQwODIiPiJEaWfJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdUeXBlQ3VzdG9tIiBtc2dpZD0iMjI1NTIzNDE1MzcyMDg4MzIyIj4iRsmZcmRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlQ3VzdG9tIiBtc2dpZD0iMzU0MjQwMzY3OTgyNzI5NzMwMCI+IsWeyZl4c2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVBc3Npc3RhbnQiIG1zZ2lkPSI2Mjc0MzM0ODI1MTk1Mzc5MDc2Ij4iS8O2bcmZa8OnaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUJyb3RoZXIiIG1zZ2lkPSI4NzU3OTEzNTA2Nzg0MDY3NzEzIj4iUWFyZGHFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUNoaWxkIiBtc2dpZD0iMTg5MDc0NjI3NzI3Njg4MTYyNiI+IlXFn2FxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlRG9tZXN0aWNQYXJ0bmVyIiBtc2dpZD0iNjkwNDgwNzExMjEyMTEyMjEzMyI+IkV2IHlvbGRhxZ/EsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUZhdGhlciIgbXNnaWQ9IjUyMjgwMzQ2ODcwODIwNTA3MjUiPiJBdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVGcmllbmQiIG1zZ2lkPSI3MzEzMTA2NzYyNDgzMzkxMjYyIj4iRG9zdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZU1hbmFnZXIiIG1zZ2lkPSI2MzY1Njc3ODYxNjEwMTM3ODk1Ij4iTcO8ZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlTW90aGVyIiBtc2dpZD0iNDU3ODU3MTM1Mjk2Mjc1ODMwNCI+IkFuYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVBhcmVudCIgbXNnaWQ9IjQ3NTU2MzU1Njc1NjI5MjUyMjYiPiJWYWxpZGV5biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVBhcnRuZXIiIG1zZ2lkPSI3MjY2NDkwMjg1MTIwMjYyNzgxIj4iT3J0YXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVSZWZlcnJlZEJ5IiBtc2dpZD0iMTAxNTczMDU5ODQ0MTM1NTI0Ij4iRMmZdsmZdCBlZMmZbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVJlbGF0aXZlIiBtc2dpZD0iMTc5OTgxOTkzMDA4NTYxMDI3MSI+IlFvaHVtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlU2lzdGVyIiBtc2dpZD0iMTczNTk4MzU1NDQ3OTA3NjQ4MSI+IkJhY8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlU3BvdXNlIiBtc2dpZD0iMzk0MTM2OTM5NDI4Njk4MTE3Ij4iSMmZeWF0IHlvbGRhxZ/EsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlQ3VzdG9tIiBtc2dpZD0iMjQ3MzU4MDU5MzExMTU5MDk0NSI+IkbJmXJkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlSG9tZSIgbXNnaWQ9IjYwOTM1OTgxODEwNjkzNTkyOTUiPiLGj3NhcyBzyZloaWbJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlV29yayIgbXNnaWQ9IjY5MjA3MjU3MzA3OTcwOTkwNDciPiLEsMWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVPdGhlciIgbXNnaWQ9IjQ0MDg0MzYxNjI5NTAxMTk4NDkiPiJEaWfJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJQxLBOIGtvZHUgZGF4aWwgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IlBVSyB2yZkgeWVuaSBQxLBOIGtvZCBkYXhpbCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsga29kIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiJZZW5pIFBJTiBrb2R1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4ixZ5pZnLJmSBkYXhpbCBldG3JmWsgw7zDp8O8biB0b3h1bnVuIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iS2lsaWRpIGHDp21hcSDDvMOnw7xuIHBhcm9sIHlhesSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IktpbGlkaSBhw6dtYXEgw7zDp8O8biBQSU4gZGF4aWwgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMjQyMjIyNTU5MTAwNjEzNDkzNiI+IllhbmzEscWfIFBJTiBrb2R1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xhYmVsX3RleHQiIG1zZ2lkPSI4NjE3OTY0NjEwMjgyOTg0MjQiPiJLaWxpZGkgYcOnbWFxIMO8w6fDvG4gTWVueXUsIHNvbnJhIDAgYmFzxLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtZXJnZW5jeV9jYWxsX2RpYWxvZ19udW1iZXJfZm9yX2Rpc3BsYXkiIG1zZ2lkPSI2OTYxOTIxMDMxOTUwOTA5NzAiPiJUyZljaWxpIG7Dtm1yyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2NhcnJpZXJfZGVmYXVsdCIgbXNnaWQ9Ijg5NjM4MzkyNDI1NjU2NTMxOTIiPiJYaWRtyZl0IHlveGR1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NjcmVlbl9sb2NrZWQiIG1zZ2lkPSI3Mjg4NDQzMDc0ODA2ODMyOTA0Ij4iRWtyYW4ga2lsaWRsyZluaWIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2VuYWJsZWQiIG1zZ2lkPSI0NjE1NDA1MTYxNDEyNjA0OSI+IlTJmWNpbGkgesmZbmcga2lsaWRpbmkgYcOnbWFxIHbJmSB5YSB5ZXJsyZnFn2Rpcm3JmWsgw7zDp8O8biBNZW55dSBkw7x5bcmZc2luyZkgYmFzxLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5faW5zdHJ1Y3Rpb25zX3doZW5fcGF0dGVybl9kaXNhYmxlZCIgbXNnaWQ9IjY4NjI2MDAyODc5NzE1ODM2NCI+IktpbGlkaSBhw6dtYXEgw7zDp8O8biBNZW55dSBkw7x5bcmZc2luyZkgYmFzxLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI3NDc4NzAzMjU0OTY0ODEwMzAyIj4iS2lsaWRpIGHDp21hcSDDvMOnw7xuIG1vZGVsIMOnyZlraW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2VtZXJnZW5jeV9jYWxsIiBtc2dpZD0iNTM0NzYzMzc4NDQwMTI4NTIyNSI+IlTJmWNpbGkgesmZbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3JldHVybl90b19jYWxsIiBtc2dpZD0iNTI0NDI1OTc4NTUwMDA0MDAyMSI+IlrJmW5nyZkgcWF5xLF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX2NvcnJlY3QiIG1zZ2lkPSI5MDM5MDA4NjUwMzYyMjYxMjM3Ij4iRMO8emTDvHIhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX3dyb25nIiBtc2dpZD0iNDMxNzk1NTAxNDk0ODEwODc5NCI+IkJpciBkyZkgY8mZaGQgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGFzc3dvcmRfd3JvbmciIG1zZ2lkPSI1NzM3ODE1MzkzMjUzMTY1MzAxIj4iQmlyIGRhaGEgY8mZaGQgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWNldW5sb2NrX211bHRpcGxlX2ZhaWx1cmVzIiBtc2dpZD0iNzU0MTM3NTgzMDIyNzkyNDI5Ij4iU2lmyZl0IGtpbGlkaSBjyZloZGzJmXJpbml6IGJpdGRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wbHVnZ2VkX2luIiBtc2dpZD0iODA1Nzc2MjgyODM1NTU3MjMxNSI+IkJhdGFyZXlhIHnEscSfxLFsxLFyLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9jaGFyZ2VkIiBtc2dpZD0iMzIxNjM1NzQ1Njg0MDYwNjI0Ij4iRG9sdWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2JhdHRlcnlfc2hvcnQiIG1zZ2lkPSI0NDc3MjY0ODQ5Mzg2ODUwMjY2Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbG93X2JhdHRlcnkiIG1zZ2lkPSIxNDgyODczOTgxOTE5MjQ5NzQwIj4iRWxla3RyaWvJmSBxb8WfdW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNTA5OTQzOTI3NzgxOTIxNTM5OSI+IlNJTSBrYXJ0IHlveGR1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1MTY1OTE5NjA5NTc5MTQ3NCI+IlBsYW7Fn2V0ZMmZIFNJTSBrYXJ0IHlveGR1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg2OTIwNTg1Njk1MTY5MDc4Ij4iVGVsZWZvbmRhIFPEsE0ga2FydCB5b3hkdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1MzcyNzg3MTM4MDIzMjcyNjE1Ij4iU8SwTSBrYXJ0IGRheGlsIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjM1MjY1NzMwOTkwMTkzMTk0NzIiPiJTxLBNIGthcnQgeW94ZHVyIHbJmSB5YSBveHVuYSBiaWxpbm1pci4gU8SwTSBrYXJ0IGRheGlsIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI1MDk2MTQ5NjY1MTM4OTE2MTg0Ij4iWWFyYXJzxLF6IFNJTSBrYXJ0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGVybWFuZW50X2Rpc2FibGVkX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI5MTA5MDQ2NDM0MzMxNTEzNzEiPiJTaXppbiBTxLBNIGthcnTEsW7EsXogZGFpbWkgb2xhcmFxIGRlYWt0aXZsyZnFn2liLlxuIEJhxZ9xYSBTxLBNIGthcnQgw7zDp8O8biBzaW1zaXogeGlkbcmZdCBwcm92YXlkZXJpbml6yZkgbcO8cmFjacmZdCBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMDE1OTQ5MDUxNTI3NDY4ODYiPiLGj3Z2yZlsa2kgdHJlayBkw7x5bcmZc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjA4OTI5NzY1MDQ4MTI5MjM2MyI+Ik7DtnZiyZl0aSB0cmVrIGTDvHltyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1OTA4ODc4Njc4MDEyODAwMSI+IlBhdXphIGTDvHltyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI1ODg4NDIyOTM4MzUxMDE5NDI2Ij4iT3h1dG1hIGTDvHltyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTYyMzE4Mzc4NzY2OTg3NjAxIj4iRGF5YW5kxLFybWEgZMO8eW3JmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1lcmdlbmN5X2NhbGxzX29ubHkiIG1zZ2lkPSI2NzMzOTc4MzA0Mzg2MzY1NDA3Ij4iWWFsbsSxeiB0yZljaWxpIHrJmW5nbMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjE0MzM4OTIyNDk4NjAyODUwMSI+IsWeyZliyZlryZkga2lsaWRsaWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3B1a19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9Ijc0NDE3OTczMzk5NzYyMzAiPiJTSU0ga2FydCBQVUsgaWzJmSBraWxpZGzJmW5pYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV9wdWtfbG9ja2VkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjgxMjc5MTYyNTUyNDUxODEwNjMiPiLEsHN0aWZhZMmZw6dpIFTJmWxpbWF0bGFyxLFuYSBiYXjEsW4gdsmZIHlhIE3DvMWfdMmZcmkgWGlkbcmZdGzJmXJpbsmZIG3DvHJhY2nJmXQgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV9sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjgwNjY2NjAxMjkyMDYwMDEwMzkiPiJTSU0ga2FydCBraWxpZGzJmW5pYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI1OTUzMjMyMTQwNTI4ODEyNjQiPiJTxLBNIGthcnTEsW4ga2lsaWRpIGHDp8SxbMSxci4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNjQ4MTYyMzgzMDM0NDEwNzIyMiI+IlNpeiBraWxpZCBtb2RlbGluaSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgeWFubMSxxZ8gw6fJmWtkaW5pei4gXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBzYW5pecmZIGnDp2luZMmZIHllbmlkyZluIHPEsW5hecSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjI3MjU5NzMyODYyMzkzNDQ1NTUiPiLFnmlmcsmZbml6aSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgeWFubMSxxZ8gZGF4aWwgZXRkaW5pei5cblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgyZlyemluZMmZIHllbmlkyZluIHlveGxhecSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjYyMTY2NzI3MDY1NDU2OTY5NTUiPiJTaXogUElOIG7Dtm1yyZluaXppIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSB5YW5sxLHFnyBkYXhpbCBldGRpbml6LiBcbiBcbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBzYW5pecmZIGnDp2luZMmZIHTJmWtyYXIgc8SxbmF5xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjkxOTE2MTE5ODQ2MjU0NjA4MjAiPiJTaXoga2lsaWRpIGHDp21hcSDDvMOnw7xuIMWfYWJsb251IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSBzyZlodiDDp8mZa2Rpbml6LiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBkYWhhIHXEn3Vyc3V6IGPJmWhkZMmZbiBzb25yYSBwbGFuxZ9ldGluIGtpbGlkaW5pIEdvb2dsZSBoZXNhYsSxbsSxemEgZGF4aWwgb2xtYXFsYSBhw6dtYcSfxLFuxLF6IGlzdMmZbmlsyZljyZlrLlxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSDJmXJ6aW5kyZkgYmlyIGRhaGEgeW94bGF5xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNTkwMjI3NTU5NzYzNzYyNzUxIj4iU2l6IGtpbGlkaSBhw6dtYXEgw7zDp8O8biDFn2FibG9udSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgc8mZaHYgw6fJmWtkaW5pei4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gZGFoYSB1xJ91cnN1eiBjyZloZGTJmW4gc29ucmEgcGxhbsWfZXRpbiBraWxpZGluaSBHb29nbGUgaGVzYWLEsW7EsXphIGRheGlsIG9sbWFxbGEgYcOnbWHEn8SxbsSxeiB0yZlsyZliIG9sdW5hY2FxLlxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSDJmXJ6aW5kyZkgYmlyIGRhaGEgeW94bGF5xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2MTI4MTA2Mzk5NzQ1NzU1NjA0Ij4iU2l6IHBsYW7Fn2V0IGtpbGlkaW5pIGHDp21hcSDDvMOnw7xuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSB1xJ91cnN1eiBjyZloZCBldG1pc2luaXouIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGTJmWbJmSBkyZkgdcSfdXJzdXogY8mZaGQgZXRzyZluaXosIHBsYW7Fn2V0IGZhYnJpayBheWFybGFyxLFuYSBzxLFmxLFybGFuYWNhcSB2yZkgYsO8dMO8biBtyZlsdW1hdGxhcsSxbsSxeiBpdMmZY8mZay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2MDM1NjUxNDIxNTY4MjY1NjUiPiJTaXogdGVsZWZvbiBraWxpZGluaSBhw6dtYXEgw7zDp8O8biA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgdcSfdXJzdXogY8mZaGQgZXRtaXNpbml6LiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBkyZlmyZkgZMmZIHXEn3Vyc3V6IGPJmWhkIGV0c8mZbml6LCB0ZWxlZm9uIHphdm9kIGF5YXJsYXLEsW5hIHPEsWbEsXJsYW5hY2FxIHbJmSBiw7x0w7xuIG3JmWx1bWF0bGFyxLFuxLF6IGl0yZljyZlrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI4MDg3MzUxNjQ5MzkzNDM2NSI+IlNpeiBwbGFuxZ9ldGluIGtpbGlkaW5pIGHDp21hcSDDvMOnw7xuIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiB5YW5sxLHFnyBjyZloZCBldG1pc2luaXouIFBsYW7Fn2V0IGFydMSxcSBkZWZvbHQgemF2b2QgaGFsxLFuYSBzxLFmxLFybGFuYWNhcS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzAyNTUwNDcyMTc2NDkyMjI0NiI+IlNpeiB0ZWxlZm9udW4ga2lsaWRpbmkgYcOnbWFxIMO8w6fDvG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGTJmWbJmSBzyZlodiBjyZloZCBldGRpbml6LiBUZWxlZm9udW51eiBpbmRpIHphdm9kIG5pemFtbGFyxLFuYSB5ZW5pbMmZbsmZY8mZay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MjUxNDgwMzQzMzk0Mzg5NjY1Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgyZlyemluZMmZIGJpciBkYWhhIGPJmWhkIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9IjI2MjY5OTk0NDk2MTA2OTU5MzAiPiLFnmFibG9udSB1bnV0ZHVudXo/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fZm9yZ290X3BhdHRlcm4iIG1zZ2lkPSIyNTg4NTIxNTAxMTY2MDMyNzQ3Ij4iSGVzYWIga2lsaWQgYcOnbWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjI3NTEzNjg2MDUyODcyODg4MDgiPiJIyZlkZGluZMmZbiDDp294IGPJmWhkIGVkaWxkaSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTMxODE2MjU2MTAwNzA3Nzg0Ij4iS2lsaWRpIGHDp21hcSDDvMOnw7xuIEdvb2dsZSBoZXNhYsSxbsSxeiBpbMmZIGRheGlsIG9sdW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9Ijg4NDY4ODE0MjQxMDY0ODQ0NDciPiLEsHN0aWZhZMmZw6dpIGFkxLEgKGUtcG/Dp3QpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjU5NTgwMjgzODM5NTQ3Mzg1MjgiPiLFnmlmcsmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjcxMzA4OTM2OTQ3OTU3ODYzMDAiPiJEYXhpbCBvbHVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjEzNjQwNTE0NzMzNDc0ODU5MDgiPiJZYW5sxLHFnyBpc3RpZmFkyZnDp2kgYWTEsSB2yZkgcGFyb2wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iMTY5NjkyNDc2MzY5MDM3OTA3MyI+IsSwc3RpZmFkyZnDp2kgYWTEsW7EsXrEsSB2yZkgeWEgcGFyb2x1bnV6dSB1bnV0bXVzdW51ej9cbiAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIgbGlua2luyZkgZGF4aWwgb2x1bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjcxMTQ2MjczNTEyODY5MzM4NjciPiJZb3hsYW7EsXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3VubG9ja19sYWJlbCIgbXNnaWQ9IjczNzQ0MDQ4MzIyMDY2NzA1NCI+IktpbGlkaSBhw6ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NvdW5kX29uX2xhYmVsIiBtc2dpZD0iOTA2ODg3NzU3NjUxMzQyNTk3MCI+IlPJmXMgYcOnxLFxZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc291bmRfb2ZmX2xhYmVsIiBtc2dpZD0iOTk2ODIyODI1MTU0MzE5MDI2Ij4iU8mZcyBzw7Zuw7xsw7xkw7xyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9zdGFydCIgbXNnaWQ9IjM5NDEwNDU1MDI5MzMxNDI4NDciPiJNb2RlbCBiYcWfbGFuZMSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9jbGVhcmVkIiBtc2dpZD0iNTU4MzQ3OTcyMTAwMTYzOTU3OSI+Ik1vZGVsIHTJmW1pemzJmW5kaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYWNjZXNzX3BhdHRlcm5fY2VsbF9hZGRlZCIgbXNnaWQ9IjY3NTYwMzEyMDgzNTkyOTI0ODciPiJYYW5hIMmZbGF2yZkgZWRpbGRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9kZXRlY3RlZCIgbXNnaWQ9IjQ5ODg3MzA4OTU1NTQwNTcwNTgiPiJNb2RlbCB0YW1hbWxhbmTEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4gV2lkZ2V0ICUyJGQgb2YgJTMkZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2FkZF93aWRnZXQiIG1zZ2lkPSI4MjczMjc3MDU4NzI0OTI0NjU0Ij4iV2lkZ2V0IMmZbGF2yZkgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9lbXB0eV9zbG90IiBtc2dpZD0iMTI4MTUwNTcwMzMwNzkzMDc1NyI+IkJvxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2V4cGFuZGVkIiBtc2dpZD0iMjI3ODEwNjAyMjMxMTE3MDI5OSI+IktpbGlkaSBhw6dtYSBzYWjJmXNpIGdlbmnFn2zJmW5kaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2NvbGxhcHNlZCIgbXNnaWQ9IjYzNjY5OTIwNjY5MzYwNzYzOTYiPiJLaWxpZGkgYcOnbWEgc2FoyZlzaSDDp8O2a2TDvC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldCIgbXNnaWQ9IjY1MjcxMzEwMzk3NDE4MDgyNDAiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiB2aWRjZXQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91c2VyX3NlbGVjdG9yIiBtc2dpZD0iMTIyNjc5ODM3MDkxMzY5ODg5NiI+IsSwc3RpZmFkyZnDp2kgc2VsZWt0b3J1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zdGF0dXMiIG1zZ2lkPSI4MDA4MjY0NjAzOTM1OTMwNjExIj4iU3RhdHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4iS2FtZXJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z2F1cmRfYWNjZXNzaWJpbGl0eV9tZWRpYV9jb250cm9scyIgbXNnaWQ9IjI2MjIwOTY1NDI5MjE2MTgwNiI+Ik1lZGlhIGtvbnRyb2xsYXLEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfc3RhcnQiIG1zZ2lkPSI4NzM2ODUzNjE1NTg4ODI4MTk3Ij4iWWVuaWTJmW4gc8SxcmFsYW1hIHZpZGNldGkgYmHFn2xhZMSxbGTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiJWaWRjZXRpbiB0yZlrcmFyIHNpZmFyacWfaSBzb25hIMOnYXRkxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZGVsZXRlZCIgbXNnaWQ9IjQ0MjYyMDQyNjM5MjkyMjQ0MzQiPiJWaWRjZXQgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gc2lsaW5kaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2V4cGFuZF9sb2NrX2FyZWEiIG1zZ2lkPSI1MTk4NTk3MjA5MzQxNzgwMjQiPiJLaWxpZGkgYcOnbWEgc2FoyZlzaW5pIGdlbmnFn2zJmW5kaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV91bmxvY2siIG1zZ2lkPSIyOTU5OTI4NDc4NzY0Njk3MjU0Ij4iU8O8csO8xZ9kw7xybcmZIGtpbGlkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fdW5sb2NrIiBtc2dpZD0iMTQ5MDg0MDcwNjA3NTI0NjYxMiI+IktpbGQgYcOnbWEgbW9kZWxpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZmFjZV91bmxvY2siIG1zZ2lkPSI0ODE3MjgyNTQzMzUxNzE4NTM1Ij4iU2lmyZl0IEtpbGlkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiJQaW4ga2lsaWQgYcOnbWFzxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXNzd29yZF91bmxvY2siIG1zZ2lkPSI3Njc1Nzc3NjIzOTEyMTU1MDg5Ij4ixZ5pZnLJmSBraWxpZGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4iTW9kZWwgc2FoyZlzaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4iU8O8csO8xZ9kw7xybcmZIHNhaMmZc2kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF9jaGFyYWN0ZXIiIG1zZ2lkPSI3MzM2NDcwNTM1Mzg1MDA5NTIzIj4ic2ltdm9sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfd29yZCIgbXNnaWQ9IjcwNzU1NzAzMjgzNzQ5MTg2NjAiPiJzw7Z6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfbGluayIgbXNnaWQ9IjU4MTU1MDg4ODA3ODI0ODgyNjciPiJsaW5rIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfbGluZSIgbXNnaWQ9IjU3NjQyNjcyMzUwMjYxMjA4ODgiPiJ4yZl0dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfYW1wbSIgbXNnaWQ9IjQ1ODQzMzgwODM1MjkzNTU5ODIiPiI8eGxpZmY6ZyBpZD0iSE9VUiI+JS1sPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJBTVBNIj4lUDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX2NhcF9hbXBtIiBtc2dpZD0iMjA4MzQ2NTk5Mjk0MDQ0NDM2NiI+Ijx4bGlmZjpnIGlkPSJIT1VSIj4lLWw8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IkFNUE0iPiVwPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X2ZhaWxlZCIgbXNnaWQ9IjU0MTAyNzAzMjkxMTQyMTIwNDEiPiJaYXZvZCB0ZXN0aSBhbMSxbm1hZMSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3Rfbm90X3N5c3RlbSIgbXNnaWQ9IjQ0MzUyMDE2NTY3NjcyNzY3MjMiPiJCdSBGQUNUT1JZX1RFU1QgZsmZYWxpeXnJmXRpIHlhbG7EsXpjYS9zaXN0ZW1kyZkvdMmZdGJpcWTJmSBxdXJhxZ9kxLFyxLFsbcSxxZ8gcGFrZXRsyZlyIMO8w6fDvG4gZMmZc3TJmWtsyZluaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3Rfbm9fYWN0aW9uIiBtc2dpZD0iODcyOTkxODc0Nzk5OTk4NTYxIj4iRkFDVE9SWV9URVNUIMmZbcmZbGl5eWF0xLFuxLEgdMmZc2RpcWzJmXnJmW4gaGXDpyBiaXIgcGFrZXQgdGFwxLFsbWFkxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3RfcmVib290IiBtc2dpZD0iNjMyMDE2ODIwMzA1MDc5MTY0MyI+IlllbmlkyZluIHnDvGtsyZl5aW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSIxOTg3NDgzOTc3ODM0NjAzODcyIj4iXCI8eGxpZmY6ZyBpZD0iVElUTEUiPiVzPC94bGlmZjpnPlwiZGFrxLEgc8mZaGlmyZlkyZkgZGV5aWxpcjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfdGl0bGVfZGVmYXVsdCIgbXNnaWQ9IjY5NjE5MDMyMTM3Mjk2Njc1NzMiPiJKYXZhU2NyaXB0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWRfdGl0bGUiIG1zZ2lkPSIyNjE5Mzc2NTU1NTI1MTE2NTkzIj4iTmF2aXFhc2l5YW7EsSBUyZlzZGlxIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfYmVmb3JlX3VubG9hZF9wb3NpdGl2ZV9idXR0b24iIG1zZ2lkPSIzMTEyNzUyMDEwNjAwNDg0MTMwIj4iQnUgU8mZaGlmyZluaSBUyZlyayBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWRfbmVnYXRpdmVfYnV0dG9uIiBtc2dpZD0iNTYxNDg2MTI5MzAyNjA5OTcxNSI+IkJ1IHPJmWhpZsmZZMmZIHFhbMSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkIiBtc2dpZD0iMzQ2ODgxNjM1NzA5NTM3ODU5MCI+Ijx4bGlmZjpnIGlkPSJNRVNTQUdFIj4lczwveGxpZmY6Zz5cblxuQnUgc8mZaGlmyZlkyZluIGvJmW5hcmEgbmF2aXFhc2l5YSBldG3JmWsgaXN0yZlkaXlpbml6yZkgyZltaW5zaW5peiBtaT8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX2xhYmVsIiBtc2dpZD0iNjg2MDI2MTc1ODY2NTgyNTA2OSI+IlTJmXNkaXFsyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb3VibGVfdGFwX3RvYXN0IiBtc2dpZD0iNDU5NTA0NjUxNTQwMDI2ODg4MSI+Ik3JmXNsyZloyZl0OiBCw7Z5w7x0bcmZayB2yZkga2nDp2lsdG3JmWsgw7zDp8O8biBpa2kgZMmZZsmZIHTEsWtsYXnEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfdGhpc19mb3JtIiBtc2dpZD0iNDYxNjc1ODg0MTE1NzgxNjY3NiI+IkF2dG9kb2xkdXJtYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNldHVwX2F1dG9maWxsIiBtc2dpZD0iNzEwMzQ5NTA3MDE4MDU5MDgxNCI+IkF2dG9Eb2xkdXJtYW7EsSBheWFybGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX25hbWVfc2VwYXJhdG9yIiBtc2dpZD0iNjM1MDE0NTE1NDc3OTcwNjc3MiI+IiAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX3N1bW1hcnlfbmFtZV9mb3JtYXQiIG1zZ2lkPSIzMjY4MDQxMDU0ODk5MjE0OTQ1Ij4iJDEkMiQzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYWRkcmVzc19zdW1tYXJ5X3NlcGFyYXRvciIgbXNnaWQ9Ijc0ODMzMDc4OTMxNzAzMjQxMjkiPiIsICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3Nfc3VtbWFyeV9mb3JtYXQiIG1zZ2lkPSI0ODc0NDU5NDU1Nzg2ODI3MzQ0Ij4iJDEkMiQzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcHJvdmluY2UiIG1zZ2lkPSIyMjMxODA2NTUzODYzNDIyMzAwIj4iVmlsYXnJmXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wb3N0YWxfY29kZSIgbXNnaWQ9IjQ2OTY0MzA0MDc2ODkzNzcxMDgiPiJQb8OndCBrb2R1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfc3RhdGUiIG1zZ2lkPSI2OTg4ODk0MTk1NTIwMDQ0NjEzIj4iRMO2dmzJmXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF96aXBfY29kZSIgbXNnaWQ9Ijg2OTc1NDQ1OTI2MjczMjI5NDYiPiJQb8OndCBpbmRla3NpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfY291bnR5IiBtc2dpZD0iMjM3MDczNzcxMDIwMzYyODkxIj4iw5Zsa8mZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfaXNsYW5kIiBtc2dpZD0iNDAyMDEwMDg3NTk4NDY2NzAyNSI+IkFkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2Rpc3RyaWN0IiBtc2dpZD0iODQwMDczNTA3MzM5MjI2NzY3MiI+IlNhaMmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZGVwYXJ0bWVudCIgbXNnaWQ9IjUzNDMyNzk0NjI1NjQ0NTMzMDkiPiJEZXBhcnRhbWVudCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3ByZWZlY3R1cmUiIG1zZ2lkPSIyMDI4NDk5NDg1MDY1ODAwNDE5Ij4iUHJlZmVrdHVyYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3BhcmlzaCIgbXNnaWQ9IjgyMDIyMDYxMDU0Njg4MjAwNTciPiJQYXJpxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hcmVhIiBtc2dpZD0iMzU0NzQwOTA1MDg4OTk1MjQyMyI+IlNhaMmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZW1pcmF0ZSIgbXNnaWQ9IjI4OTM4ODA5Nzg4MzU2OTg4MTgiPiLGj21pcmxpayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSIzNzc1MjY1Nzc1NDA1MTA2OTgzIj4iVmViIMmZbGbJmWNpbmzJmXJpbml6aSB2yZkgdGFyaXjDp8mZbMmZcmluaXppIG94dW1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iODQ2MjM3ODIyNjYwMDQzOTY1OCI+IlTJmXRiaXHJmSBCcmF1emVyaW4gZGF4aWwgb2xkdcSfdSBiw7x0w7xuIGxpbmtsyZlyaSB2yZkgYsO8dMO8biBCcmF1emVyIMmZbGbJmWNpbmzJmXJpbmkgb3h1bWFxIGlta2FuxLEgdmVyaXIuIFFleWQ6IGJ1IGljYXrJmSB2ZWIgYnJhdXplciBpbWthbmxhcsSxIG9sYW4gw7zDp8O8bmPDvCB0yZlyyZlmIGJyYXp1ZXJsyZlyaSB2yZkgZGlnyZlyIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4geWVyaW7JmSB5ZXRpcmlsyZkgYmlsbcmZei4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9IjM3MTQ3ODUxNjUyNzMzMTQ0OTAiPiJ2ZWIgyZlsZsmZY2lubMmZcmkgdsmZIHRhcml4w6fJmXNpIHlhem1hcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjgyNTUyNzQ2OTE0NTc2MDkyMiI+IlTJmXRiaXHJmSBwbGFuxZ9ldGluaXpkyZlraSBicmF1emVyIHRhcml4aW5pIHbJmSDJmWxmyZljaW5syZlyaSByZWRha3TJmSBldG3JmWsgaWNhesmZc2kgdmVyaXIuIEJ1IHTJmXRiaXrJmSBicmF1emVyIG3JmWx1bWF0bGFyxLFuxLEgc2lsbcmZayB2yZkgeWEgcmVkYWt0yZkgZXRtyZlrIGlta2FuxLEgdmVyyZkgYmlsyZlyLiBRZXlkOiBCdSBpY2F6yZkgMy1jw7wgcGFydGl5YSBicmF1emVybMmZcsmZIHbJmSB5YSB2ZWIgYnJhdXppbmcgeMO8c3VzaXl5yZl0bGkgZGlnyZlyIHTJmXRiaXFsyZlyyZkgxZ9hbWlsIG9sdW5tYXlhIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUhpc3RvcnlCb29rbWFya3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NDk3Mzg5NTMxMDE0MTg1NTA5Ij4iVMmZdGJpccmZIEJyYXV6ZXIgdGFyaXjDp8mZc2kgdsmZIHRlbGVmb251bnV6ZGEgc2F4bGFuxLFsYW4gyZlsZsmZY2lubMmZcsmZIGTJmXlpxZ9pa2xpayBldG3JmWsgaW1rYW7EsSB2ZXJpci4gQnVudW5sYSB0yZl0YmlxbMmZIEJyYXV6ZXIgZGF0YW7EsXrEsSBzaWzJmSB2yZkgeWEgZMmZeWnFn2RpcsmZIGJpbMmZci4gUWV5ZDogYnUgaWNhesmZIHZlYiBicmF1emVyIGlta2FubGFyxLEgb2xhbiDDvMOnw7xuY8O8IHTJmXLJmWYgYnJhenVlcmzJmXJpIHbJmSBkaWfJmXIgdMmZdGJpcWzJmXIgdMmZcsmZZmluZMmZbiB5ZXJpbsmZIHlldGlyaWzJmSBiaWxtyZl6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0QWxhcm0iIG1zZ2lkPSIxMzc5Mjk0NTU2MzYyMDkxODE0Ij4ic2lxbmFsIHF1cnVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QWxhcm0iIG1zZ2lkPSIzMTYzOTIwMzkxNTc0NzM4NDgiPiJUyZl0YmlxyZkgcXVyYcWfZMSxcmxtxLHFnyB6yZluZ2xpIHNhYXRhIGFsYXJtIGF5YXJsYW1hxJ9hIGlta2FuIHZlcmlyLiBCyZl6aSB6yZluZ2xpIHNhYXQgdMmZdGJpcWzJmXJpIGJ1IMO2esmZbGxpeWkgZMmZc3TJmWtsyZltyZl5yZkgYmlsyZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWRkVm9pY2VtYWlsIiBtc2dpZD0iNTUyNTY2MDAyNjA5MDk1OTA0NCI+IlPJmXNsaSBwb8OndCDJmWxhdsmZIGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWRkVm9pY2VtYWlsIiBtc2dpZD0iNjYwNDUwODY1MTQyODI1MjQzNyI+IlTJmXRiaXHJmSBzyZlzbGkgcG/Dp3QgcXV0dW51emEgbWVzYWogyZlsYXbJmSBldG3JmXnJmSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlR2VvbG9jYXRpb25QZXJtaXNzaW9ucyIgbXNnaWQ9IjU5NjIyMjQxNTg5NTUyNzM5MzIiPiJCcmF1emVyaW4gZ2VvbG9rYXNpeWEgaWNhesmZbMmZcmluaSBkyZl5acWfaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUdlb2xvY2F0aW9uUGVybWlzc2lvbnMiIG1zZ2lkPSIxMDgzNzQzMjM0NTIyNjM4NzQ3Ij4iVMmZdGJpccmZIEJyYXV6ZXJpbiBnZW9sb2thc2l5YSBpY2F6yZlsyZlyaW5pIGTJmXlpxZ9tyZl5yZkgaW1rYW4gdmVyaXIuIFrJmXLJmXJsaSB0yZl0YmlxbMmZciBidW5kYW4gaXN0aWZhZMmZIGVkyZlyyZlrIG3JmWthbiBtyZlsdW1hdGxhcsSxbsSxIHTJmXNhZMO8Zmkgc2F5dGxhcmEgZ8O2bmTJmXLJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wYWNrYWdlVmVyaWZpY2F0aW9uQWdlbnQiIG1zZ2lkPSI1NTY4MTM5MTAwNjQ1ODI5MTE3Ij4icGFrZXRsyZlyaSB0yZlzZGlxbMmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGFja2FnZVZlcmlmaWNhdGlvbkFnZW50IiBtc2dpZD0iODQzNzU5MDE5MDk5MDg0MzM4MSI+IlTJmXRiaXHJmSBwYWtldGluIHF1cmHFn2TEsXLEsWxhYmlsyZluIG9sbWFzxLFuxLEgeW94bGFtYcSfYSBpbWthbiB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRQYWNrYWdlVmVyaWZpZXIiIG1zZ2lkPSI0MTg3Nzg2NzkzMzYwMzI2NjU0Ij4icGFrZXQgZG/En3J1bGF5xLFjxLF5YSBiYcSfbGFuxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFBhY2thZ2VWZXJpZmllciIgbXNnaWQ9IjMxODA3NDE3NzMyMzM4NjIxMjYiPiJTYWhpYmluyZkgcGFrZXQgeW94bGF5xLFjxLFsYXLEsW5hIHNvcsSfdSBnw7ZuZMmZcm3JmWsgaWNhesmZc2kgdmVyaXIuIE5vcm1hbCB0yZl0YmlxbMmZciB0yZlyyZlmaW5kyZluIGhlw6cgdmF4dCBpc3TJmW5pbG3JmW3JmWxpZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VyaWFsUG9ydCIgbXNnaWQ9IjU0NjA4MzMyNzY1NDYzMTA3NiI+InNlcmlhbCBwb3J0YSDDp8SxeMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlcmlhbFBvcnQiIG1zZ2lkPSIyOTkxNjM5OTg1MjI0NTk4MTkzIj4iU2FoaWJpbsmZIFNlcmlhbE1hbmFnZXIgQVBJIHZhc2l0yZlzaWzJmSBzZXJpYWwgcG9ydGxhcmEgaWNhesmZIGl6bmkgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NDb250ZW50UHJvdmlkZXJzRXh0ZXJuYWxseSIgbXNnaWQ9IjUwNzc3NzQyOTc5NDM0MDkyODUiPiJ4YXJpY2kga29udGVudCBwcm92YXlkZXJsyZlyaW7JmSBnaXJpxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NDb250ZW50UHJvdmlkZXJzRXh0ZXJuYWxseSIgbXNnaWQ9IjQ1NDQzNDY0ODY2OTc4NTM2ODUiPiJNyZl6bXVuIHByb3ZheWRlcmzJmXJpbsmZIMO2cnTDvGtkyZluIGRheGlsIG9sbWFxIMO8w6fDvG4gY2loYXogc2FoaWJpbsmZIGlta2FuIHZlcmlyLiBOb3JtYWwgdMmZdGJpcWzJmXIgw7zDp8O8biBsYXrEsW0gZGV5aWwuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91cGRhdGVMb2NrIiBtc2dpZD0iMzUyNzU1ODM2NjYxNjY4MDg4OSI+ImF2dG9tYXRpayBjaWhheiB5ZW5pbMmZbm3JmWzJmXJpbmkgcG96dXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVMb2NrIiBtc2dpZD0iMTY1NTYyNTgzMjE2Njc3ODQ5MiI+IlNhaGliaW7JmSB5ZW5pIHZlcnNpeWF5YSB5ZW5pbMmZbm3JmWsgw7zDp8O8biBuyZkgdmF4dCBxZXlyaS1pbnRlcmFrdGl2IHJlYm9vdCBtyZlsdW1hdMSxbsSxIHNpc3RlbcmZIHTJmWtsaWYgZXRtyZkgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9tZXNzYWdlIiBtc2dpZD0iNzY3MzQ0Njg3MTM5MTk1NzkwIj4iQnJhdXplcmluIGJ1IMWfaWZyyZluaSB5YWRkYSBzYXhsYW1hc8SxbsSxIGlzdMmZeWlyc2l6PyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfbm90bm93IiBtc2dpZD0iNjM4OTY3NTMxNjcwNjY5OTc1OCI+IsSwbmRpIHlveCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfcmVtZW1iZXIiIG1zZ2lkPSI2NDkxODc5Njc4OTk2NzQ5NDY2Ij4iWWFkZGEgc2F4bGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX25ldmVyIiBtc2dpZD0iODI3NDMzMDI5Njc4NTg1NTEwNSI+Ikhlw6cgdmF4dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9wZW5fcGVybWlzc2lvbl9kZW55IiBtc2dpZD0iNzM3NDAzNjcwODMxNjYyOTgwMCI+IkJ1IHPJmWhpZsmZbmkgYcOnbWFxIMO8w6fDvG4gaWNhesmZbml6IHlveGR1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXh0X2NvcGllZCIgbXNnaWQ9IjQ5ODU3Mjk1MjQ2NzAxMzEzODUiPiJNyZl0biBwYW5veWEga29weWFsYW5kxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9yZV9pdGVtX2xhYmVsIiBtc2dpZD0iNDY1MDkxODkyMzA4MzMyMDQ5NSI+IkRhaGEgw6dveCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBlbmRfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIyNTcyMjE0NDYxNjc2MDE1NjQyIj4iTWVueXUrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zcGFjZV9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI0MTAzMjg2MzkyNzIxNjI1MzciPiJib8WfbHVxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9lbnRlcl9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI3NDMzNjI3ODUxMTEzMDk2NjgiPiJkYXhpbCBvbHVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGVfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIzNjU4MTc4MDA3MjAyNzQ4MTY0Ij4ic2lsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoX2dvIiBtc2dpZD0iODI5ODAxNjY2OTgyMjE0MTcxOSI+IkF4dGFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9zZWFyY2giIG1zZ2lkPSI2NzQ5ODI2NjM5MDk4NTEyMTIwIj4iQXh0YXLEscWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9xdWVyeSIgbXNnaWQ9IjU5MTE3Nzg1OTMxMjUzNTUxMjQiPiJBeHRhcsSxxZ8gc29yxJ91c3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX2NsZWFyIiBtc2dpZD0iMTMzMDI4MTk5MDk1MTgzMzAzMyI+IlNvcsSfdW51IHTJmW1pemzJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fc3VibWl0IiBtc2dpZD0iMjY4ODQ1MDEzMzI5Nzk4MzU0MiI+IlNvcsSfdW51IGfDtm5kyZlyaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX3ZvaWNlIiBtc2dpZD0iMjQ1MzIwMzY5NTY3NDk5NDQ0MCI+IlPJmXNsaSBheHRhcsSxxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVfZXhwbG9yZV9ieV90b3VjaF93YXJuaW5nX3RpdGxlIiBtc2dpZD0iNzQ2MDY5NDA3MDMwOTczMDE0OSI+IlRveHVuYXJhcSBLyZnFn2YgZXQgZnVua3NpeWFzxLEgYWt0aXYgZWRpbHNpbj8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVfZXhwbG9yZV9ieV90b3VjaF93YXJuaW5nX21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg2NTU4ODc1MzkwODk5MTA1NzciPiI8eGxpZmY6ZyBpZD0iQUNDRVNTSUJJTElUWV9TRVJWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+IFRveHVuYXJhcSBLyZnFn2YgRXQgcmVqaW1pbmkgYWt0aXZsyZnFn2Rpcm3JmWsgaXN0yZl5aXIuIFRveHVuYXJhcSBLyZnFn2YgRXQgYcOnxLFsZMSxxJ/EsSB6YW1hbiwgYmFybWHEn8SxbsSxesSxbiBhbHTEsW5kYSBuyZkgb2xkdcSfdSBoYXFkYSBvbGFuIHTJmXN2aXJsyZlyaSBlxZ9pZMmZIHbJmSB5YSBnw7ZyyZkgYmlsyZlyc2luaXogdsmZIHlhcGxhbsWfZXRkyZkgaW5zYW5sYXJsYSDJmWxhccmZecmZIGtlw6dtyZlrIMO8w6fDvG4gamVzdGzJmXIgaMmZeWF0YSBrZcOnaXLJmSBiaWzJmXJzaW5pei4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVfZXhwbG9yZV9ieV90b3VjaF93YXJuaW5nX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNzA4MTk5NjcyODUyMzczMTk1Ij4iPHhsaWZmOmcgaWQ9IkFDQ0VTU0lCSUxJVFlfU0VSVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiBUb3h1bmFyYXEgS8mZxZ9mIEV0IHJlamltaW5pIGFrdGl2bMmZxZ9kaXJtyZlrIGlzdMmZeWlyLiBUb3h1bmFyYXEgS8mZxZ9mIEV0IGHDp8SxbGTEscSfxLEgemFtYW4sIGJhcm1hxJ/EsW7EsXrEsW4gYWx0xLFuZGEgbsmZIG9sZHXEn3UgaGFxZGEgb2xhbiB0yZlzdmlybMmZcmkgZcWfaWTJmSB2yZkgeWEgZ8O2csmZIGJpbMmZcnNpbml6IHbJmSB5YSB0ZWxlZm9uZGEgaW5zYW5sYXJsYSDJmWxhccmZecmZIGtlw6dtyZlrIMO8w6fDvG4gamVzdGzJmXIgaMmZeWF0YSBrZcOnaXLJmSBiaWzJmXJzaW5peiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9uZU1vbnRoRHVyYXRpb25QYXN0IiBtc2dpZD0iNzM5NjM4NDUwODk1Mzc3OTkyNSI+IjEgYXkgw7ZuY8mZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmVmb3JlT25lTW9udGhEdXJhdGlvblBhc3QiIG1zZ2lkPSI5MDkxMzQ1NDY4MzY0OTk4MjYiPiIxIGF5IMmZdnbJmWwiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9Im51bV9zZWNvbmRzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ4Njk4NzAwNTY1NDc4OTYwMTEiPiIxIHNhbml5yZkgyZl2dsmZbCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzkwMzcwNjgwNDM0OTU1NjM3OSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgyZl2dsmZbCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX21pbnV0ZXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzMwNjc4NzQzMzA4ODgxMDE5MSI+IjEgZMmZcWlxyZkgyZl2dsmZbCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjE3Njk0MjAwODkxNTQ1NTExNiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IGTJmXFpccmZIMmZdnbJmWwiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Im51bV9ob3Vyc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI5MTUwNzk3OTQ0NjEwODIxODQ5Ij4iMSBzYWF0IMmZdnbJmWwiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI0NjcyNzMyMzk1ODc1ODc1NjkiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBzYWF0IMmZdnbJmWwiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Imxhc3RfbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjMwNjk5OTI4MDgxNjQzMTgyNjgiPiJTb24gPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gZ8O8biI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9Imxhc3RfbW9udGgiIG1zZ2lkPSIzOTU5MzQ2NzM5OTc5MDU1NDMyIj4iS2XDp8mZbiBheSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9sZGVyIiBtc2dpZD0iNTIxMTk3NTAyMjgxNTU1NDg0MCI+IkvDtmhuyZkiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9Im51bV9kYXlzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9Ijg2MTM1ODUzNDM5ODExNTgyMCI+ImTDvG7JmW4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI0Nzk1ODY0NjYxNTMzMTQ2MzMiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBnw7xuIMmZdnbJmWwiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImluX251bV9zZWNvbmRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMjcyOTc0NTU2MDk1NDkwNTEwMiI+IjEgc2FuaXnJmSDJmXJ6aW5kyZkiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjEyNDE5MjYxMTY0NDM5NzQ2ODciPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBzYW5pecmZIGnDp2luZMmZIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9Ijg3OTMwOTUyNTEzMjUyMDAzOTUiPiIxIGTJmXFpccmZIGnDp2luZMmZIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzMzMwNzEzOTM2Mzk5NDQ4NzQ5Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gZMmZcWlxyZkgyZlyemluZMmZIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1faG91cnMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI3MTY0MzUzMzQyNDc3NzY5OTk5Ij4iMSBzYWF0YSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3MjkwNjc3MzUzNzI3Mzg5Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gc2FhdGEiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImluX251bV9kYXlzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTQxMzA4ODc0MzAwOTgzOTUxOCI+InNhYmFoIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1MTA5NDQ5Mzc1MTAwOTUzMjQ3Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gZ8O8biDJmXJ6aW5kyZkiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1fc2Vjb25kc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIxODQ5MDM2ODQwMjAwMDY5MTE4Ij4iMSBzYW5pecmZIMmZdnbJmWwiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM2OTkxNjkzNjY2NTA5MzA0MTUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBzYW4gyZl2dsmZbCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X251bV9taW51dGVzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjYzNjE0OTAxNDcxMTM4NzE1NDUiPiIxIGTJmXFpccmZIMmZdnbJmWwiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg1MTE2NDk2ODU5NzE1MDcxMCI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IGTJmXFpccmZIMmZdnbJmWwiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1faG91cnNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDc5NjIxMjAzOTcyNDcyMjExNiI+IjEgc2FhdCDJmXZ2yZlsIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2ODg5OTcwNzQ1NzQ4NTM4OTAxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gc2FhdCDJmXZ2yZlsIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX2RheXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODQ2MzE2MTcxMTQ5MjY4MDMwOSI+ImTDvG7JmW4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM0NTMzNDI2Mzk2MTY0ODExOTEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBnw7xuIMmZdnbJmWwiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fc2Vjb25kcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NDIyMjUzNzA3OTUwNjYyOTkiPiIxIHNhbiDJmXJ6aW5kyZkiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0OTU4ODAxMDg4MjU4MDUxMDgiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBzYW4gyZlyemluZMmZIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfaW5fbnVtX21pbnV0ZXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1NjI3ODYxNDk5MjgyODQ4NzgiPiIxIGTJmXEgyZlyemluZMmZIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0MjE2MTEzMjkyNzA2NTY4NzI2Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gZMmZcWlxyZl5yZkiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1faG91cnMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjc0NzA4MTE4MTI0MDQ1MjQ2Ij4iMSBzYWF0IMmZcnppbmTJmSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzcwNTM3Mzc2Njc5ODAxMzQwNiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHNhYXRhIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfaW5fbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIyMTc4NTc2MjU0Mzg1NzM5ODU1Ij4ic2FiYWgiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI5NzMwNjI5NjgwMzgzNTU5OTEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBnw7xuyZkiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJwcmVwb3NpdGlvbl9mb3JfZGF0ZSIgbXNnaWQ9IjkwOTM5NDk3NTc3NTc0NDUxMTciPiI8eGxpZmY6ZyBpZD0iREFURSI+JXM8L3hsaWZmOmc+IHRhcml4aW5kyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVwb3NpdGlvbl9mb3JfdGltZSIgbXNnaWQ9IjU1MDY4MzEyNDQyNjMwODM3OTMiPiJzYWF0IDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVwb3NpdGlvbl9mb3JfeWVhciIgbXNnaWQ9IjUwNDAzOTU2NDA3MTE4NjcxNzciPiI8eGxpZmY6ZyBpZD0iWUVBUiI+JXM8L3hsaWZmOmc+IGlsaW5kyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXkiIG1zZ2lkPSI4MTQ0MTk1Nzc2MDU4MTE5NDI0Ij4iZ8O8biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheXMiIG1zZ2lkPSI0Nzc0NTQ3NjYxMDIxMzQ0NjAyIj4iZ8O8bmzJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyIiBtc2dpZD0iMjEyNjc3MTkxNjQyNjE4OTQ4MSI+InNhYXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VycyIgbXNnaWQ9Ijg5NDQyNDAwNTI2Njg1Mjk5MyI+InNhYXRsYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGUiIG1zZ2lkPSI5MTQ4ODc4NjU3NzAzNzY5ODY4Ij4iZMmZcS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVzIiBtc2dpZD0iNTY0NjAwMTAwNTgyNzAzNDUwOSI+ImTJmXFpccmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vjb25kIiBtc2dpZD0iMzE4NDIzNTgwODAyMTQ3OCI+InNuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vjb25kcyIgbXNnaWQ9IjMxNjE1MTUzNDcyMTY1ODkyMzUiPiJzYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWVrIiBtc2dpZD0iNTYxNzk2MTUzNzE3MzA2MTU4MyI+ImjJmWZ0yZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWVrcyIgbXNnaWQ9IjY1MDk2MjM4MzQ1ODM5NDQ1MTgiPiJoyZlmdMmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhciIgbXNnaWQ9IjQwMDExMTgyMjEwMTM4OTIwNzYiPiJpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJzIiBtc2dpZD0iNjg4MTU3NzcxNzk5MzIxMzUyMiI+ImlsIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJkdXJhdGlvbl9zZWNvbmRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjk2MjAxNTUyODM3Mjk2OTQ4MSI+IjEgc2FuaXnJmSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTg4NjEwNzc2NjU3NzE2Njc4NiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHNhbml5yZkiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImR1cmF0aW9uX21pbnV0ZXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0OTE1NDE0MDAyNTQ2MDg1NjE3Ij4iMSBkyZlxaXHJmSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzE2NTE4NzE2OTIyNDkwODc3NSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IGTJmXFpccmZIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJkdXJhdGlvbl9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9Ijg5MTc0Njc0OTEyNDg4MDk5NzIiPiIxIHNhYXQiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM4NjM5NjI4NTQyNDY3NzM5MzAiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBzYWF0IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RpdGxlIiBtc2dpZD0iMzUzNDUwOTEzNTQzODM1MzA3NyI+IlZpZGVvIHByb2JsZW1pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RleHRfaW52YWxpZF9wcm9ncmVzc2l2ZV9wbGF5YmFjayIgbXNnaWQ9IjMxODY2NzAzMzU5Mzg2NzA0NDQiPiJCdSB2aWRlbyBidSBjaWhhemEgc3RyaW0gb2x1bm1hcSDDvMOnw7xuIHV5xJ91biBkZXlpbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfdGV4dF91bmtub3duIiBtc2dpZD0iMzQ1MDQzOTE1NTE4NzgxMDA4NSI+IkJ1IHZpZGVvIG94dW11ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlZpZGVvVmlld19lcnJvcl9idXR0b24iIG1zZ2lkPSIyODIyMjM4MjE1MTAwNjc5NTkyIj4iT0siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGl2ZV90aW1lIiBtc2dpZD0iMTgxODU1NzE3NzgyOTQxMTQxNyI+Ijx4bGlmZjpnIGlkPSJEQVRFIj4lMSRzPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IlRJTUUiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9vbiIgbXNnaWQ9IjcyNDUzNTM1Mjg4MTg1ODc5MDgiPiJnw7xub3J0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Ik5vb24iIG1zZ2lkPSIzMzQyMTI3NzQ1MjMwMDEzMTI3Ij4iR8O8bm9ydGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaWRuaWdodCIgbXNnaWQ9IjcxNjYyNTk1MDg4NTA0NTc1OTUiPiJnZWPJmXlhcsSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iTWlkbmlnaHQiIG1zZ2lkPSI1NjMwODA2OTA2ODk3ODkyMjAxIj4iR2VjyZl5YXLEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVsYXBzZWRfdGltZV9zaG9ydF9mb3JtYXRfbW1fc3MiIG1zZ2lkPSI0NDMxNTU1OTQzODI4NzExNDczIj4iPHhsaWZmOmcgaWQ9Ik1JTlVURVMiPiUxJDAyZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9IlNFQ09ORFMiPiUyJDAyZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGFwc2VkX3RpbWVfc2hvcnRfZm9ybWF0X2hfbW1fc3MiIG1zZ2lkPSIxODQ2MDcxOTk3NjE2NjU0MTI0Ij4iPHhsaWZmOmcgaWQ9IkhPVVJTIj4lMSRkPC94bGlmZjpnPjo8eGxpZmY6ZyBpZD0iTUlOVVRFUyI+JTIkMDJkPC94bGlmZjpnPjo8eGxpZmY6ZyBpZD0iU0VDT05EUyI+JTMkMDJkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdEFsbCIgbXNnaWQ9IjY4NzY1MTg5MjU4NDQxMjkzMzEiPiJIYW3EsXPEsW7EsSBzZcOnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3V0IiBtc2dpZD0iMzA5MjU2OTQwODQzODYyNjI2MSI+IkvJmXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb3B5IiBtc2dpZD0iMjY4MTk0NjIyOTUzMzUxMTk4NyI+IktvcHlhbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXN0ZSIgbXNnaWQ9IjU2Mjk4ODA4MzY4MDUwMzY0MzMiPiJZZXJsyZnFn2RpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlcGxhY2UiIG1zZ2lkPSI1NzgxNjg2MDU5MDYzMTQ4OTMwIj4ixo92yZl6IGV0Li4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlIiBtc2dpZD0iNjA5ODY4NDg0NDAyMTY5Nzc4OSI+IlNpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvcHlVcmwiIG1zZ2lkPSIyNTM4MjExNTc5NTk2MDY3NDAyIj4iVVJMIGtvcHlhbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RUZXh0TW9kZSIgbXNnaWQ9IjEwMTg2OTE4MTUxNDMxNjUzMjYiPiJNyZl0biBzZcOnaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXh0U2VsZWN0aW9uQ0FCVGl0bGUiIG1zZ2lkPSI1MjM2ODUwMzk0MzcwODIwMzU3Ij4iTcmZdG4gc2XDp2ltaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZFRvRGljdGlvbmFyeSIgbXNnaWQ9IjQzNTIxNjE1MzQ1MTAwNTc4NzQiPiJMw7zEn8mZdMmZIMmZbGF2yZkgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVUZXh0IiBtc2dpZD0iNjk3OTY2ODQyODQ1ODE5OTAzNCI+IlNpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImlucHV0TWV0aG9kIiBtc2dpZD0iMTY1MzYzMDA2MjMwNDU2Nzg3OSI+IkRheGlsZXRtyZkgbWV0b2R1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWRpdFRleHRNZW51VGl0bGUiIG1zZ2lkPSI0OTA5MTM1NTY0OTQxODE1NDk0Ij4iTcmZdG4gyZltyZlsaXl5YXRsYXLEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxvd19pbnRlcm5hbF9zdG9yYWdlX3ZpZXdfdGl0bGUiIG1zZ2lkPSI1NTc2MjcyNDk2MzY1Njg0ODM0Ij4iWWFkZGHFnyB5ZXJpIGJpdGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X2ludGVybmFsX3N0b3JhZ2Vfdmlld190ZXh0IiBtc2dpZD0iNjY0MDUwNTgxNzYxNzQxNDM3MSI+IkLJmXppIHNpc3RlbSBmdW5rc2l5YWxhcsSxIGnFn2zJmW3JmXnJmSBiaWzJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfcnVubmluZ19ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4NzE4MzM1MTIxMDYwNzg3OTE0Ij4iPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiBpxZ9syZluaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfcnVubmluZ19ub3RpZmljYXRpb25fdGV4dCIgbXNnaWQ9IjQ2NTM1ODY5NDc3NDczMzAwNTgiPiJEYWhhIMOnb3ggbcmZbHVtYXQgw7zDp8O8biB2yZkgeWEgdMmZdGJpcWkgZGF5YW5kxLFybWFxIMO8w6fDvG4gdG94dW51bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvayIgbXNnaWQ9IjU5NzAwNjA0MzA1NjI1MjQ5MTAiPiJPSyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjY0NDI1NjA1NzEyNTk5MzUxMzAiPiJMyZnEn3YgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZXMiIG1zZ2lkPSI1MzYyOTgyMzAzMzM3OTY5MzEyIj4iT0siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJubyIgbXNnaWQ9IjUxNDE1MzEwNDQ5MzU1NDE0OTciPiJMyZnEn3YgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaWFsb2dfYWxlcnRfdGl0bGUiIG1zZ2lkPSIyMDQ5NjU4NzA4NjA5MDQzMTAzIj4iRGlxccmZdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvYWRpbmciIG1zZ2lkPSI3OTMzNjgxMjYwMjk2MDIxMTgwIj4iWcO8a2zJmW5pcuKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGl0YWxfb24iIG1zZ2lkPSIxNTQ0NjgyNzU1NTE0NDk0Mjk4Ij4iQcOHSVEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBpdGFsX29mZiIgbXNnaWQ9IjY4MTU4NzAzODY5NzI4MDU4MzIiPiJRQVBBTEkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aGljaEFwcGxpY2F0aW9uIiBtc2dpZD0iNDUzMzE4NTk0NzA2NDc3MzM4NiI+IsaPbcmZbGl5eWF0xLEgdGFtYW1sYXnEsW46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzVXNlIiBtc2dpZD0iNDU4MzAxODM2ODAwMDYxMDQzOCI+IkJ1IGbJmWFsaXl5yZl0IMO8w6fDvG4gZGVmb2x0IGlzdGlmYWTJmSBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2xlYXJEZWZhdWx0SGludE1zZyIgbXNnaWQ9IjMyNTI1ODQ2ODk1MTIwNzcyNTciPiJTaXN0ZW0gYXlhcmxhcsSxbmRhLCBUyZl0YmlxbMmZcmTJmSB2yZkgRW5kaXJpbG1pxZ9syZlyZMmZIGRlZm9sdHUgdMmZbWl6bMmZeWluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZUFjdGl2aXR5IiBtc2dpZD0iNzQ4Njg3NjE0Nzc1MTgwMzMzMyI+IkbJmWFsaXl5yZl0IHNlw6dpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZVVzYkFjdGl2aXR5IiBtc2dpZD0iNjg5NDc0ODQxNjA3MzU4MzUwOSI+IlVTQiBjaWhheiDDvMOnw7xuIHTJmXRiaXEgc2XDp2luIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9BcHBsaWNhdGlvbnMiIG1zZ2lkPSIyOTkxODE0MjczOTM2NTA0Njg5Ij4iSGXDpyBiaXIgdMmZdGJpcSBidSDJmW3JmWxpeXlhdMSxIGFwYXJhIGJpbG1pci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX3RpdGxlIiBtc2dpZD0iMTkwNTgwMDU2MDMxNzEzNzc1MiI+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX2FwcGxpY2F0aW9uIiBtc2dpZD0iOTMyNjI4NDg4MDEzMDkyNzc2Ij4iVMmZyZlzc8O8ZiBraSwgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiBkYXlhbmTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX3Byb2Nlc3MiIG1zZ2lkPSI0NTA3MDU4OTk3MDM1Njk3NTc5Ij4iVMmZyZlzc8O8ZiBraSwgPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+IHByb3Nlc2kgZGF5YW5kxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX3RpdGxlIiBtc2dpZD0iNDM1MTk0ODQ4MTQ1OTEzNTcwOSI+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfYWN0aXZpdHlfYXBwbGljYXRpb24iIG1zZ2lkPSIxOTA0NDc3MTg5MDU3MTk5MDY2Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMiRzPC94bGlmZjpnPiBjYXZhYiB2ZXJtaXIuXG5cbk9udSBiYcSfbGFtYXEgaXN0yZl5aXJzaW5pej8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfYWN0aXZpdHlfcHJvY2VzcyIgbXNnaWQ9IjU3NzYyMDk4ODMyOTkwODk3NjciPiI8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+IGFrdGl2aXRpc2kgY2F2YWIgdmVybWlyLiBcblxuT251IGJhxJ9sYW1hcSBpc3TJmXlpcnNpbml6PyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hcHBsaWNhdGlvbl9wcm9jZXNzIiBtc2dpZD0iODk0MTc1NzYwNzM0MDQ4MTA1NyI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4gY2F2YWIgdmVybWlyLiBPbnUgYmHEn2xhbWFxIGlzdMmZeWlyc2luaXo/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX3Byb2Nlc3MiIG1zZ2lkPSI2NTEzMjA5ODc0ODgwNTE3MTI1Ij4iUHJvc2VzIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiBjYXZhYiB2ZXJtaXIuIFxuIFxuIE9udSBiYcSfbGFtYXEgaXN0yZl5aXJzaW5pej8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmb3JjZV9jbG9zZSIgbXNnaWQ9IjgzNDYwNzIwOTQ1MjEyNjU2MDUiPiJPSyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlcG9ydCIgbXNnaWQ9IjQwNjAyMTgyNjA5ODQ3OTU3MDYiPiLFnmlrYXnJmXQgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndhaXQiIG1zZ2lkPSI3MTQ3MTE4MjE3MjI2MzE3NzMyIj4iR8O2emzJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlYnBhZ2VfdW5yZXNwb25zaXZlIiBtc2dpZD0iMzI3Mjc1ODM1MTEzODEyMjUwMyI+IkJ1IHPJmWhpZsmZIHlhcmFyc8SxemxhxZ/EsWIuXG5cbkJhxJ9sYW1hcSBpc3TJmXlpcnNpej8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYXVuY2hfd2FybmluZ190aXRsZSIgbXNnaWQ9IjE1NDc5OTc3ODA1MDY3MTM1ODEiPiJUyZl0YmlxIHnDtm5syZluZGlyaWxkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX3JlcGxhY2UiIG1zZ2lkPSI2MjAyNDk4OTQ5OTcwMjgxNDEyIj4iPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiBpbmRpIMOnYWzEscWfxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX29yaWdpbmFsIiBtc2dpZD0iMTg4MTAyMDIzMDIxNjY4NjgzIj4iPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiBpbGsgYmHFn2xhZMSxbGTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fY29tcGF0X21vZGVfc2NhbGUiIG1zZ2lkPSIzMjAyOTU1NjY3Njc1OTQ0NDk5Ij4iTWlxeWFzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX3Nob3ciIG1zZ2lkPSI0MDEzODc4ODc2NDg2NjU1ODkyIj4iSMmZbWnFn8mZIGfDtnN0yZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX2hpbnQiIG1zZ2lkPSIxMDY0NTI0MDg0NTQzMzA0NDU5Ij4iQnVubGFyxLEgU2lzdGVtIGF5YXJsYXLEsW5kYSB5ZW5pZMmZbiBha3RpdmzJmcWfZGlyIFnDvGtsyZlubWnFnyAmZ3Q7IFTJmXRiaXFsyZlyICZndDsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic212X2FwcGxpY2F0aW9uIiBtc2dpZD0iMzMwNzIwOTE5MjE1NTQ0MjgyOSI+IlTJmXRiaXEgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiAocHJvc2VzIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMiRzPC94bGlmZjpnPikgU3RyaWN0TW9kZSBzaXlhc8mZdGluaSBwb3pkdS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXZfcHJvY2VzcyIgbXNnaWQ9IjUxMjAzOTcwMTIwNDc0NjI0NDYiPiI8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz4gcHJvc2VzaSBTdHJpY3RNb2RlIHNpeWFzyZl0aW5pIHBvemR1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX3RpdGxlIiBtc2dpZD0iMTU4NDE5MjI4NTQ0MTQwNTc0NiI+IkFuZHJvaWQgdMmZa21pbGzJmcWfZGlyaWxpci4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX2FwayIgbXNnaWQ9Ijc5MDQwNDI2ODIxMTE1MjYxNjkiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJGQ8L3hsaWZmOmc+IMmZZGTJmWTJmW4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRkPC94bGlmZjpnPiB0yZl0YmlxIG9wdGltYWxsYcWfxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX3N0YXJ0aW5nX2FwcHMiIG1zZ2lkPSI0NTE0NjQ1MTYzNDY5MjY3MTMiPiJUyZl0YmlxbMmZciBiYcWfbGFkxLFsxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX2NvbXBsZXRlIiBtc2dpZD0iMTQwNTk1NDc1NDExMjk5OTIyOSI+IlnDvGtsyZltyZkgYmHFn2Egw6dhdMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfbm90aWZpY2F0aW9uIiBtc2dpZD0iOTA4NzA2Mzk4NTc3NjYyNjE2NiI+Ijx4bGlmZjpnIGlkPSJBUFAiPiUxJHM8L3hsaWZmOmc+IMOnYWzEscWfxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X25vdGlmaWNhdGlvbl9kZXRhaWwiIG1zZ2lkPSIxNzIxNjgxNzQxNjE3ODk4ODY1Ij4iVMmZdGJpccmZIGtlw6dtyZlrIMO8w6fDvG4gdG94dW51biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9zd2l0Y2hlcl90aXRsZSIgbXNnaWQ9IjcxNTMxNjcwODU0MDMyOTgxNjkiPiJUyZl0YmlxbMmZcsmZIGtlw6dpbHNpbj8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfc3dpdGNoZXJfdGV4dCIgbXNnaWQ9IjcwMjI2MzE5MjQ1MzQ0MDY0MDMiPiJCaXIgdMmZdGJpcSBhcnTEsXEgacWfbMmZeWlyLiBEaWfJmXJpbmkgYmHFn2xhdG1hcSDDvMOnw7xuIG9udSBkYXlhbmTEsXJtYWzEsXPEsW7EsXouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkX2FwcF9hY3Rpb24iIG1zZ2lkPSI0OTMxMjkxNzIyMzg1NjYyODIiPiI8eGxpZmY6ZyBpZD0iT0xEX0FQUCI+JTEkczwveGxpZmY6Zz4gYsO2bG3JmXNpbsmZIHFhecSxZMSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9sZF9hcHBfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMDgyMDk0Mjc1NTgwMzU4MDQ5Ij4iWWVuaSB0yZl0YmlxaSBiYcWfbGF0bWF5xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5ld19hcHBfYWN0aW9uIiBtc2dpZD0iNTQ3Mjc1NjkyNjk0NTQ0MDcwNiI+Ijx4bGlmZjpnIGlkPSJPTERfQVBQIj4lMSRzPC94bGlmZjpnPiB0yZl0YmlxaW5pIGJhxZ9sYWTEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXdfYXBwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTkzMjE0MzU5ODM3MTUzNzM0MCI+IkvDtmhuyZkgdMmZdGJpcWkgeWFkZGEgc2F4bGFtYWRhbiBkYXlhbmTEsXLEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VuZFRleHQiIG1zZ2lkPSI1MjA5ODc0NTcxOTU5NDY5MTQyIj4iTcmZdG4gw7zDp8O8biDJmW3JmWxpeXlhdCBzZcOnaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfcmluZ3RvbmUiIG1zZ2lkPSI2ODg1NDIxNDA2ODQ1NzM0NjUwIj4iWsmZbmdpbiBzyZlzIGfDvGPDvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9tdXNpYyIgbXNnaWQ9IjU0MjE2NTExNTcxMzg2MjgxNzEiPiJNZWRpYSBoyZljbWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfbXVzaWNfaGludF9wbGF5aW5nX3Rocm91Z2hfYmx1ZXRvb3RoIiBtc2dpZD0iOTE2NTk4NDM3OTM5NDYwMTUzMyI+IkJsdWV0b290aCB2YXNpdMmZc2lsyZkgb3luYWTEsWzEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfbXVzaWNfaGludF9zaWxlbnRfcmluZ3RvbmVfc2VsZWN0ZWQiIG1zZ2lkPSI4MzEwNzM5OTYwOTczMTU2MjcyIj4iU8mZc3NpeiB6yZluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9jYWxsIiBtc2dpZD0iMzk0MTY4MDA0MTI4Mjc4ODcxMSI+IkRheGlsaSB6yZluZyBzyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9ibHVldG9vdGhfY2FsbCIgbXNnaWQ9IjIwMDI4OTE5MjYzNTExNTE1MzQiPiJCbHVldG9vdGggesmZbmcgaMmZY21pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2FsYXJtIiBtc2dpZD0iMTk4NTE5MTYxNjA0MjY4OTEwMCI+IlNpcW5hbCBzyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9ub3RpZmljYXRpb24iIG1zZ2lkPSIyNDIyMjY1NjU2NzQ0Mjc2NzE1Ij4iQmlsZGlyacWfIHPJmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX3Vua25vd24iIG1zZ2lkPSIxNDAwMjE5NjY5NzcwNDQ1OTAyIj4iSMmZY20iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9ibHVldG9vdGgiIG1zZ2lkPSI2NTM4ODk0MTc3MjU1OTY0MzQwIj4iQmx1ZXRvb3RoIGjJmWNtaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX3JpbmdlciIgbXNnaWQ9IjMzMjYwMDM4NDcwMDYxNjI0OTYiPiJayZluZyBzyZlzaSBnw7xjw7wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9pbmNhbGwiIG1zZ2lkPSI4ODkwMDczMjE4MTU0NTQzMzk3Ij4iWsmZbmcgaMmZY21pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2ljb25fZGVzY3JpcHRpb25fbWVkaWEiIG1zZ2lkPSI0MjE3MzExNzE5NjY1MTk0MjE1Ij4iTWVkaWEgaMmZY21pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2ljb25fZGVzY3JpcHRpb25fbm90aWZpY2F0aW9uIiBtc2dpZD0iNzA0NDk4NjU0NjQ3NzI4MjI3NCI+IkJpbGRpcmnFnyBzyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX2RlZmF1bHQiIG1zZ2lkPSIzNzg5NzU4OTgwMzU3Njk2OTM2Ij4iRGVmb2x0IHJpbnF0b24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV9kZWZhdWx0X3dpdGhfYWN0dWFsIiBtc2dpZD0iODEyOTU2MzQ4MDg5NTk5MDM3MiI+IkRlZm9sdCByaW5xdG9uICg8eGxpZmY6ZyBpZD0iQUNUVUFMX1JJTkdUT05FIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV9zaWxlbnQiIG1zZ2lkPSI3OTM3NjM0MzkyNDA4OTc3MDYyIj4iSGXDpyBiaXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfcGlja2VyX3RpdGxlIiBtc2dpZD0iMzUxNTE0MzkzOTE3NTExOTA5NCI+IlrJmW5nIHPJmXNsyZlyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX3Vua25vd24iIG1zZ2lkPSI1NDc3OTE5OTg4NzAxNzg0Nzg4Ij4iTmFtyZlsdW0gcmlucXRvbiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0id2lmaV9hdmFpbGFibGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NjU0MTIzOTg3NDE4MTY4NjkzIj4iV2ktRmkgxZ/JmWLJmWvJmXNpIG3DtnZjdWRkdXIiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQxOTI0MjQ0ODkxNjgzOTczODYiPiJXaS1GaSDFn8mZYsmZa8mZbMmZcmkgbcO2dmN1ZGR1ciI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0id2lmaV9hdmFpbGFibGVfZGV0YWlsZWQiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIxNjM0MTAxNDUwMzQzMjc3MzQ1Ij4iV2ktRmkgxZ/JmWLJmWvJmW5pIGHDp8SxbiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzkxNTg5NTMyMzY0NDI5Mjc2OCI+IkHDp8SxcSBXaS1GaSDFn8mZYsmZa8mZbMmZcmkgbcO2dmN1ZGR1ciI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfYXZhaWxhYmxlX3NpZ25faW4iIG1zZ2lkPSI0MDI5NDg5NzE2NjA1MjU1Mzg2Ij4iV2ktRmkgxZ/JmWLJmWvJmXNpbsmZIGRheGlsIG9sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmV0d29ya19hdmFpbGFibGVfc2lnbl9pbiIgbXNnaWQ9Ijg0OTUxNTU1OTMzNTgwNTQ2NzYiPiLFnsmZYsmZa8mZecmZIGRheGlsIG9sdW4iPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgbmV0d29ya19hdmFpbGFibGVfc2lnbl9pbl9kZXRhaWxlZCAoODAwMDA4MTk0MTQ0Nzk3NjExOCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfd2F0Y2hkb2dfbmV0d29ya19kaXNhYmxlZCIgbXNnaWQ9Ijc5MDQyMTQyMzE2NTE1NDYzNDciPiJXaS1GaVwnYSBxb8WfdWxtYXEgYWzEsW5tYWTEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfd2F0Y2hkb2dfbmV0d29ya19kaXNhYmxlZF9kZXRhaWxlZCIgbXNnaWQ9IjU1NDg3ODA3NzY0MTgzMzI2NzUiPiIgaW50ZXJuZXQgYmHEn2xhbnTEsXPEsSBrZXlmaXl5yZl0c2l6ZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijk3NjExNzgyNjU5MzI0NTE3Ij4iV2ktRmkgRGlyZWN0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfdHVybm9uX21lc3NhZ2UiIG1zZ2lkPSIyOTA5MjUwOTQyMjk5NjI3MjQ0Ij4iV2ktRmkgRGlyZWN0IMmZbcmZbGl5eWF0xLFuxLEgYmHFn2xhdC4gQnUgV2ktRmkgbcO8xZ90yZlyaS9ob3RzcG90dSBiYcSfbGF5YWNhcS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mYWlsZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NjM2Njk2Nzc5MzU2MjMwODQiPiJXaS1GaSBEaXJlY3QgYmHFn2xhZMSxbGEgYmlsbcmZZGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW5hYmxlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMDY4MzIxODgxNjczNzM0ODg2Ij4iV2ktRmkgRGlyZWN0IGFrdGl2ZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW5hYmxlZF9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjE2Mzg5NDk5NTM5OTM4OTQzMzUiPiJBeWFybGFyIMO8w6fDvG4gdG94dW51biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2VwdCIgbXNnaWQ9IjE2NDUyNjcyNTkyNzI4Mjk1NTkiPiJRyZlidWwgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlY2xpbmUiIG1zZ2lkPSIyMTEyMjI1NDUxNzA2MTM3ODk0Ij4ixLBtdGluYSBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfaW52aXRhdGlvbl9zZW50X3RpdGxlIiBtc2dpZD0iMTMxODk3NTE4NTExMjA3MDczNCI+IkTJmXbJmXRuYW3JmSBnw7ZuZMmZcmlsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9pbnZpdGF0aW9uX3RvX2Nvbm5lY3RfdGl0bGUiIG1zZ2lkPSI0OTU4ODAzOTQ4NjU4NTMzNjM3Ij4iUW/Fn3VsbWFxIMO8w6fDvG4gZMmZdsmZdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2Zyb21fbWVzc2FnZSIgbXNnaWQ9IjU3MDM4OTE3NDczMTk1MTc2OSI+IktpbWTJmW46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfdG9fbWVzc2FnZSIgbXNnaWQ9IjI0ODk2ODk3NDUyMjA0NDA5OSI+IktpbcmZOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VudGVyX3Bpbl9tZXNzYWdlIiBtc2dpZD0iNTkyMDkyOTU1MDM2NzgyODk3MCI+IlTJmWzJmWIgb2x1bmFuIFDEsE4ga29kdSBkYXhpbCBlZGluOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX3Nob3dfcGluX21lc3NhZ2UiIG1zZ2lkPSI4NTMwNTYzMzIzODgwOTIxMDk0Ij4iUMSwTjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcmVxdWVuY3lfY29uZmxpY3RfbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODAxMjk4MTI1Nzc0MjIzMjQ3NSI+IkJ1IHBsYW7Fn2V0IDx4bGlmZjpnIGlkPSJERVZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4gY2loYXrEsW5hIHFvxZ91bGFuIHphbWFuIFdpLUZpIMWfyZliyZlryZlzaW5kyZluIG3DvHbJmXFxyZl0aSBheXLEsWxtxLHFnyBvbGFjYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcmVxdWVuY3lfY29uZmxpY3RfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczNjM5MDcyMTM3ODc0NjkxNTEiPiJCdSB0ZWxlZm9uIDx4bGlmZjpnIGlkPSJERVZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4gY2loYXrEsW5hIHFvxZ91bGFuIHphbWFuIFdpLUZpIMWfyZliyZlryZlzaW5kyZluIG3DvHbJmXFxyZl0aSBheXLEsWxtxLHFnyBvbGFjYXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfY2hhcmFjdGVyIiBtc2dpZD0iMzM2NTU1MDEyMDYxNzcwMTc0NSI+IlNpbXZvbCBkYXhpbCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfdGl0bGUiIG1zZ2lkPSI3Mjk2NjEyNzgxMTI4OTE3NzE5Ij4iU01TIG1lc2FqIGfDtm5kyZlyaWxpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX21lc3NhZ2UiIG1zZ2lkPSIzODY3ODk5MTY5NjUxNDk2NDMzIj4iJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDsgw6dveCBzYXlkYSBTTVMgbWVzYWogZ8O2bmTJmXJpci4gQnUgdMmZdGJpcWluIG1lc2FqIGfDtm5kyZlybcmZecmZIGRhdmFtIGV0bcmZc2luyZkgaWNhesmZIHZlcmlyc2luaXo/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfeWVzIiBtc2dpZD0iMzY2MzcyNTk5Mzg1NTgxNjgwNyI+IsSwY2F6yZkgdmVyaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9ubyIgbXNnaWQ9IjYyNTQzODU2MTM5NTUzNDk4MiI+IlLJmWRkIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX21lc3NhZ2UiIG1zZ2lkPSIxNjQ1NDM2NDY2Mjg1MzEwODU1Ij4iJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDvCoCZsdDtiJmd0Ozx4bGlmZjpnIGlkPSJERVNUX0FERFJFU1MiPiUyJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyDDvG52YW7EsW5hIG1lc2FqIGfDtm5kyZlybcmZayBpc3TJmXlpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9kZXRhaWxzIiBtc2dpZD0iMzQ5MjAyNTcxOTg2ODA3ODQ1NyI+IkJ1LCBtb2JpbCBoZXNhYsSxbsSxemEgIjxmb250IGZnY29sb3I9IiNmZmZmYjA2MCI+IsmZbGF2yZkgdGFyaWZsyZlyaW4gdMmZdGJpcSBvbHVubWFzxLEiPC9mb250PiIgaWzJmSBuyZl0aWPJmWzJmW7JmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3ByZW1pdW1fc2hvcnRfY29kZV9kZXRhaWxzIiBtc2dpZD0iNTUyMzgyNjM0OTEwNTEyMzY4NyI+PGZvbnQgZmdjb2xvcj0iI2ZmZmZiMDYwIj4iQnUgbW9iaWwgaGVzYWLEsW7EsXpkYSDDtmTJmW5pxZ9syZlyyZkgc8mZYsmZYiBvbGFjYXEuIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fYWxsb3ciIG1zZ2lkPSI0NDU4ODc4NjM3MTExMDIzNDEzIj4iR8O2bmTJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2RlbnkiIG1zZ2lkPSIyOTI3Mzg5ODQwMjA5MTcwNzA2Ij4iTMmZxJ92IGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfcmVtZW1iZXJfY2hvaWNlIiBtc2dpZD0iNTI4OTUzODU5MjI3MjIxODEzNiI+Ik3JmW5pbSBzZcOnaW1pbWkgeWFkZGEgc2F4bGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9yZW1lbWJlcl91bmRvX2luc3RydWN0aW9uIiBtc2dpZD0iNDk2MDk0NDEzMzA1MjI4NzQ4NCI+IkJ1bnUgc29ucmEgQXlhcmxhcmRhIGTJmXlpxZ/JmSBiaWzJmXJzaW5pesKgJmd0O8KgVMmZdGJpcWzJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2Fsd2F5c19hbGxvdyIgbXNnaWQ9IjMyNDExODExNTQ4Njk0OTMzNjgiPiJIyZltacWfyZkgaWNhesmZIHZlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fbmV2ZXJfYWxsb3ciIG1zZ2lkPSI0NDY5OTI3NjU3NzQyNjk2NzMiPiJIZcOnIHZheHQgaWNhesmZIHZlcm3JmXlpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9yZW1vdmVkX3RpdGxlIiBtc2dpZD0iNjIyNzcxMjMxOTIyMzIyNjE4NSI+IlNJTSBrYXJ0IMOnxLF4YXLEsWxkxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVtb3ZlZF9tZXNzYWdlIiBtc2dpZD0iMjMzMzE2NDU1OTk3MDk1ODY0NSI+IkNpaGF6xLFuxLF6xLEgZXRpYmFybMSxIFNJTSBrYXJ0IGlsyZkgYmHFn2xhZGFuYSBraW1pIG1vYmlsIMWfyZliyZlryZkgyZlsw6dhdG1heiBvbGFjYXEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX2RvbmVfYnV0dG9uIiBtc2dpZD0iODI3OTQ5OTg5MzY5OTYzNzc1Ij4iQml0ZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fYWRkZWRfdGl0bGUiIG1zZ2lkPSIzNzE5NjcwNTEyODg5Njc0NjkzIj4iU8SwTSBrYXJ0IMmZbGF2yZkgZWRpbGRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX2FkZGVkX21lc3NhZ2UiIG1zZ2lkPSI2NTk5OTQ1MzAxMTQxMDUwMjE2Ij4iTW9iaWwgxZ/JmWLJmWvJmXnJmSBxb8WfdWxtYXEgw7zDp8O8biBjaWhhesSxbsSxesSxIHllbmlkyZluIGJhxZ9sYWTEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX3Jlc3RhcnRfYnV0dG9uIiBtc2dpZD0iNDcyMjQwNzg0MjgxNTIzMjM0NyI+IlllbmlkyZluIGJhxZ9sYXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4MzQ5MzYyNjIzMDY4ODE5Mjk1Ij4iVmF4dCBheWFybGF5xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfZGlhbG9nX3RpdGxlIiBtc2dpZD0iNTg3OTQ1MDY1OTQ1Mzc4MjI3OCI+IlRhcml4aSBxdXJhxZ9kxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV90aW1lX3NldCIgbXNnaWQ9IjU3NzcwNzU2MTQzMjEwODc3NTgiPiJBeWFybGF5xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV90aW1lX2RvbmUiIG1zZ2lkPSIyNTA3NjgzNzUxNzU5MzA4ODI4Ij4iSGF6xLFyZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1zX25ld19wZXJtX3ByZWZpeCIgbXNnaWQ9IjgyNTc3NDA3MTA3NTQzMDE0MDciPjxmb250IHNpemU9IjEyIiBmZ2NvbG9yPSIjZmYzM2I1ZTUiPiJZRU7EsDogIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1zX2Rlc2NyaXB0aW9uX2FwcCIgbXNnaWQ9IjUxMzk4MzYxNDMyOTMyOTk0MTciPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+IHTJmXLJmWZpbmTJmW4gdMmZbWluIGVkaWxpYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19wZXJtaXNzaW9ucyIgbXNnaWQ9IjcyODMzNTc3MjgyMTkzMzgxMTIiPiJIZcOnIGJpciBpY2F6yZkgdMmZbMmZYiBvbHVubXVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybV9jb3N0c19tb25leSIgbXNnaWQ9IjQ5MDI0NzAzMjQxNDIxNTExMTYiPiJidW51bmxhIHNpemTJmW4geMmZcmMgdHV0dWxhIGJpbMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2FjdGl2aXR5X3RpdGxlIiBtc2dpZD0iNDQ2NTA1NTE1NzIwOTY0ODY0MSI+IlVTQiB0b3BsdSB5YWRkYcWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfdGl0bGUiIG1zZ2lkPSI1OTAxNDU5MDQxMzk4NzUxNDk1Ij4iVVNCIHFvxZ91bHVkdXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMzMDg1MzgwOTQzMTY0Nzc4MzkiPiJTaXogVVNCIHZhc2l0yZlzaWzJmSBrb21ww7x0ZXJlIGJhxJ9sYW5kxLFuxLF6LiBLb21ww7x0ZXIgdsmZIEFuZHJvaWRpbml6aW4gVVNCIHlhZGRhxZ/EsSBhcmFzxLFuZGEgZmF5bGxhcsSxIGtvcHlhbGFtYXEgaXN0yZl5aXJzaW5penPJmSwgYcWfYcSfxLFkYWvEsSBkw7x5bcmZecmZIHRveHVudW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgwNTM1MTAwMDQ0NjAzNzgxMSI+IktvbXDDvHRlcmluaXrJmSBVU0IgaWzJmSBxb8WfdWxtdXN1bnV6LiBGYXlsbGFyxLEgQW5kcm9pZGluaXppbiBTRCBrYXJ0xLEgaWzJmSBrb21ww7x0ZXJpbml6IGFyYXPEsW5kYSBrb3B5YWxhbWFxIGlzdMmZeWlyc2luaXpzyZkgYcWfYcSfxLFkYWvEsSBkw7x5bcmZecmZIHRveHVudW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfYnV0dG9uX21vdW50IiBtc2dpZD0iMTA1MjI1OTkzMDM2OTUwODIzNSI+IlVTQiB5YWRkYcWfxLEgYWt0aXZsyZnFn2RpcmluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfZXJyb3JfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzMDE3MDQ1MjE3MzY1NTQwNjU4Ij4iVVNCIHlhZGRhxZ/EsW7EsXrEsSBVU0Iga8O8dGzJmXZpIHlhZGRhxZ/EsSDDvMOnw7xuIGlzdGlmYWTJmSBlZMmZbiB6YW1hbiBwcm9ibGVtIHlhcmFuZMSxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2Vycm9yX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyODc2MDE4NTEyNzE2OTcwMzEzIj4iU0Qga2FydMSxbsSxesSxIFVTQiBrw7x0bMmZdmkgeWFkZGHFn8SxIMO8w6fDvG4gaXN0aWZhZMmZIGVkyZluIHphbWFuIHByb2JsZW0geWFyYW5kxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODE3NTg5MjU1NDc1NzIxNjUyNSI+IlVTQiBxb8WfdWx1ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5Mzk4MjI3ODM4MjgxODM3NjMiPiJGYXlsbGFyxLEga29tcMO8dGVyaW5pesmZIGtvcHlhbGFtYXEgdsmZIHlhIGtvbXDDvHRlcmluaXpkyZluIGtvcHlhbGFtYXEgw7zDp8O8biB0b3h1bnVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3Bfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjMzNjA1ODM5NjY2MzUxNjAxNyI+IlVTQiB5YWRkYcWfxLEgc8O2bmTDvHLDvG4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTY1Njg1MjA5ODU1NTYyMzgyMiI+IlVTQiB5YWRkYcWfxLEgc8O2bmTDvHJtyZlrIMO8w6fDvG4gdG94dW51bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX3RpdGxlIiBtc2dpZD0iNjYwMTI5ODUxNzA4Nzc1ODUzIj4iVVNCIHlhZGRhxZ8gaXN0aWZhZMmZIG9sdW51ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MjY0MDI1MjgwNzc3MjE5NTIxIj4iVVNCIHlhZGRhxZ/EsSBzw7ZuZMO8cm3JmWTJmW4gw7ZuY8mZIEFuZHJvaWRcJ2luIFVTQiB5YWRkYcWfxLFuxLEga29tcMO8dGVyZMmZbiBkZW1vbnRhaiBldGRpeWluaXrJmSAow6fEsXhhcmTEscSfxLFuxLF6YSkgyZltaW4gb2x1bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MDQzOTY5NzgyNDYwNjEzMTE0Ij4iVVNCIHlhZGRhxZ/EsSBzw7ZuZMO8cm3JmWTJmW4gw7ZuY8mZIEFuZHJvaWRcJ2luIFVTQiB5YWRkYcWfxLFuxLEga29tcMO8dGVyZMmZbiBkZW1vbnRhaiBldGRpeWluaXrJmSAow6fEsXhhcmTEscSfxLFuxLF6YSkgyZltaW4gb2x1bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX2J1dHRvbl9tb3VudCIgbXNnaWQ9IjcwNjAyMTgwMzQ5MDA2OTYwMjkiPiJVU0IgeWFkZGHFn8SxbsSxIHPDtm5kw7xyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9lcnJvcl9tZXNzYWdlIiBtc2dpZD0iMTk3MDM3NDg5ODI2MzA2MzgzNiI+IlVTQiB5YWRkYcWfxLEgc8O2bmTDvHLJmW4gemFtYW4gcHJvYmxlbSBvbGR1LiBVU0IgaG9zdHUgZGVtb250YWogZXRtyZluaXppIHlveGxhecSxbiB2yZkgeWVuaWTJmW4gY8mZaGQgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfY29uZmlybV9raWxsX3N0b3JhZ2VfdXNlcnNfdGl0bGUiIG1zZ2lkPSI5NjMwMzkwMzM0NzA0Nzg2OTciPiJVU0IgeWFkZGHFn8SxIGFrdGl2bMmZxZ9kaXJpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190ZXh0IiBtc2dpZD0iNTEwMDQyODc1NzEwNzQ2OTQ1NCI+IlVTQiB5YWRkYcWfxLEgYWt0aXZsyZnFn2RpcnPJmW5peiwgaXN0aWZhZMmZIGV0ZGl5aW5peiBiyZl6aSB0yZl0YmlxbMmZciBkYXlhbmEgYmlsyZlyIHbJmSBVU0IgeWFkZGHFnyBkZWFrdGl2IGVkaWzJmW7JmSBxyZlkyZlyIGnFn2zJmW3JmXnJmSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX2Vycm9yX3RpdGxlIiBtc2dpZD0iNzMyMzY1ODQ2OTYyNjUxNDIwNyI+IlVTQiDJmW3JmWxpeXlhdMSxIHXEn3Vyc3V6ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX29rIiBtc2dpZD0iNzM3Njk1MzE2NzAzOTg2NTcwMSI+Ik9LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX210cF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIzNjk5OTEzMDk3MzkxNTUwMzk0Ij4iTWVkaWEgY2loYXrEsSBraW1pIHFvxZ91bGR1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3B0cF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIxOTYwODE3MTkyMjE2MDY0ODMzIj4iS2FtZXJhIGtpbWkgYmHEn2xhbsSxbGTEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9jZF9pbnN0YWxsZXJfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjc3NDcxMjgyNzg5MjA5MDc1NCI+IlF1cmHFn2TEsXLEsWPEsSBraW1pIHFvxZ91bHViIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI3ODQ4MjM2OTc0MDg3NjUzNjY2Ij4iVVNCIGFrc2VzdWFyYSBxb8WfdWxkdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjIyOTA4NTkzOTk5ODM3MjAyNzEiPiJEaWfJmXIgVVNCIHNlw6dpbWzJmXJpIMO8w6fDvG4gdG94dW51bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iOTAyMDA5MjE5NjA2MTAwNzI2MiI+IlVTQiB5YWRkYcWfxLFuYSBmb3JtYXQgYXTEsWxzxLFuPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2NDg0MTU5MjE1MjY1MjYwNjkiPiJTRCBrYXJ0IGZvcm1hdCBlZGlsc2luPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5MzQwMTY4NTM0MjU3NjEwNzgiPiJVU0IgeWFkZGHFn8SxbsSxemRhIHllcmzJmcWfZGlyaWxtacWfIGLDvHTDvG4gZmF5bGxhciBzaWxpbsmZY8mZay4gQnUgYWRkxLFtIGdlcmkgZMO2bsO8bG3JmXpkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDEzMTg5NTAyNzU0MzgzMCI+IkthcnTEsW7EsXpkYWvEsSBiw7x0w7xuIG3JmWx1bWF0bGFyIGl0yZljyZlrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9idXR0b25fZm9ybWF0IiBtc2dpZD0iNDEzMTA2NDU2MDEyNzQ3ODY5NSI+IkZvcm1hdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkYl9hY3RpdmVfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjcyOTA0NDc3ODk0OTE4OTkxOCI+IlVTQiBzYXpsYW1hIHFvxZ91bHVkdXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGJfYWN0aXZlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTAxNjY1NDYyNzYyNjQ3NjE0MiI+IlVTQiBkZWJhccSxIGRlYWt0aXZhc2l5YSBldG3JmWsgw7zDp8O8biB0b3h1bnVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9pbnB1dF9tZXRob2QiIG1zZ2lkPSI0NjUzMzg3MzM2NzkxMjIyOTc4Ij4iRGF4aWxldG3JmSBtZXRvZHVudSBzZcOnaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjkwOTE2NTIxNTc3MjI0OTUxMTYiPiJEYXhpbGV0bcmZIMO8c3VsbGFyxLFuxLEgYXlhcmxhecSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9IjYyMDMxMTI0NzgwOTUxMTc2MjUiPiJGaXppa2kga2xhdmlhdHVyYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhhcmR3YXJlIiBtc2dpZD0iNzUxNzgyMTA4Njg4ODk5MDI3OCI+IkhhcmR3YXJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2tleWJvYXJkX2xheW91dF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIxNDA3MzY3MDE3MjYzMDMwNzczIj4iS2xhdmlhdHVyYSBzeGVtaSBzZcOnaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3Rfa2V5Ym9hcmRfbGF5b3V0X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iNDQ2NTkwNzcwMDQ0OTI1NzA2MyI+IktsYXZpYXR1cmEgdMmZcnRpYmF0xLEgc2XDp23JmWsgw7zDp8O8biB0b3h1bnVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhc3Rfc2Nyb2xsX2FscGhhYmV0IiBtc2dpZD0iNTQzMzI3NTQ4NTQ5OTAzOTE5OSI+IiBBQkPDh0RFxo9GR8SeSFhJxLBKS1FMTU5Pw5ZQUlPFnlRVw5xWWVoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYXN0X3Njcm9sbF9udW1lcmljX2FscGhhYmV0IiBtc2dpZD0iNDAzMDE3MDUyNDU5NTEyMzYxMCI+IiAwMTIzNDU2Nzg5QUJDw4dERcaPRkfEnkjEsElKS0xNTk/DllBRUlPFnlRVw5xWV1hZWiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmRpZGF0ZXNfc3R5bGUiIG1zZ2lkPSI0MzMzOTEzMDg5NjM3MDYyMjU3Ij48dT4ibmFtaXrJmWRsyZlyIjwvdT48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9jaGVja2luZ19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzQ0OTgxNjAwNTM1MTQ2ODU2MCI+IlVTQiB5YWRkYcWfIGhhesSxcmxhbsSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9jaGVja2luZ19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NDU3NjAzNDE4OTcwOTk0MDUwIj4iU0Qga2FydCBoYXrEsXJsYW7EsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI4Mjg3MzE5ODgyOTI2NzM3MDUzIj4iU8mZaHZsyZlyIHlveGxhbsSxbMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzc4ODA0MDc0NTY4NjIyOTMwNyI+IkJvxZ8gVVNCIHlhZGRhxZ/EsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijc4MDQ3NzgzODI0MTIxMjk5NyI+IkJvxZ8gU0Qga2FydCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc4NDAxMjEwNjc0MjcyNjk1MDAiPiJVU0IgeWFkZGHFnyBib8WfZHVyIHbJmSB5YSBzaXN0ZW0gdMmZcsmZZmluZMmZbiBkyZlzdMmZa2zJmW5tyZl5yZluIGZheWwgc2lzdGVtaW7JmSBtYWxpa2Rpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2NDEwNjU2NDE3ODY5MjM2MDQiPiJTRCBrYXJ0IGJvxZ9kdXIgdsmZIHlhIHNpc3RlbSB0yZlyyZlmaW5kyZluIGTJmXN0yZlrbMmZbm3JmXnJmW4gZmF5bCBzaXN0ZW1pbsmZIG1hbGlrZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjA5MDA0Njc2OTUzMjcxMzU2MyI+IlrJmWTJmWxpIFVTQiB5YWRkYcWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY0MTA3MjM5MDYwMTkxMDAxODkiPiJayZlkyZlsaSBTRCBrYXJ0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE3OTU5MTc1NzgzOTUzMzMyODAiPiJTRCB5YWRkYcWfIHrJmWTJmWzJmW5pYi4gT251IGZvcm1hdCBldG3JmXnJmSDDp2FsxLHFn8Sxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNzUzODk4NTY3NTI1NTY4MjUzIj4iU0Qga2FydCB6yZlkyZlsyZluaWIuIE9udSBmb3JtYXQgZXRtyZl5yZkgw6dhbMSxxZ/EsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE2NjE2ODMwMzEzMzA5NTEwNzMiPiJVU0IgeWFkZGHFn8SxIGfDtnpsyZluaWxtyZlkyZluIMOnxLF4YXLEsWxkxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODcyMTUyODgyNjA0NDA3ODM3Ij4iU0Qga2FydCBnw7Z6bMmZbmlsbcmZZMmZbiDDp8SxeGFyxLFsZMSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDMyOTg0ODgxOTg2NTU5NDI0MSI+Ik3JmWx1bWF0IGl0a2lzaW5pbiBxYXLFn8Sxc8SxbsSxIGFsbWFxIMO8w6fDvG4gVVNCIHlhZGRhxZ/EsSDDp8SxeGFybWF6ZGFuIMmZdnbJmWwgb251IGRlbW9udGFqIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjYwMTgzMjkzNzQ3NDQ4MjQxIj4iRGF0YSBpdGtpc2luaW4gcWFyxZ/EsXPEsW7EsSBhbG1hcSDDvMOnw7xuIFNEIGthcnTEsSDDp8SxeGFybWFkYW4gw7ZuY8mZIGRlbW9udGFqIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzk2Nzk3Mzg5MzI3MDM2MDIzMCI+IlVTQiB5YWRkYcWfIMOnxLF4YXJtYXEgw7zDp8O8biB0yZlobMO8a8mZc2l6ZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NzI5ODAxMTMwNzkwNjE2MjAwIj4iU0Qga2FydCB0yZlobMO8a8mZc2l6IMOnxLF4YXLEsWxhIGJpbMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE0MjE5NTM2MTYwNjQ5MzUzMCI+IlNpeiBVU0IgeWFkZGHFn8SxIHTJmWhsw7xryZlzaXogw6fEsXhhcmEgYmlsyZlyc2luaXouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU2ODg0MTI3ODEzODM3NzYwNCI+IlNpeiBTRCBrYXJ0xLEgdMmZaGzDvGvJmXNpeiDDp8SxeGFyYSBiaWzJmXJzaW5pei4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDQ4NjM3NzIzMDE0MDIyNzY1MSI+IlNpbGlubWnFnyBVU0IgeWFkZGHFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MDI1MTgwMzA0MDQzODEzMTgiPiJTRCBrYXJ0IMOnxLF4YXLEsWxkxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2OTIxMTI2MTYyNTgwNTc0MTQzIj4iVVNCIHlhZGRhxZ8gw6fEsXhhcsSxbGTEsS4gWWVuaSBtZWRpYSDJmWxhdsmZIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzODcwMTIwNjUyOTgzNjU5NjQxIj4iU0Qga2FydCDDp8SxeGFyxLFsZMSxLiBZZW5pc2luaSBkYXhpbCBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2xpc3RfZW1wdHkiIG1zZ2lkPSIxNjc1Mzg4MzMwNzg2ODQxMDY2Ij4iVXnEn3VuIGfJmWzJmW4gZsmZYWxpeXnJmXQgdGFwxLFsbWFkxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wa2dVc2FnZVN0YXRzIiBtc2dpZD0iODc4NzM1MjA3NDMyNjc0ODg5MiI+ImtvbXBvbmVudCBpc3RpZmFkyZlzaSBzdGF0aXN0aWthc8SxbsSxIGfDvG5jyZlsbMmZeWlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGtnVXNhZ2VTdGF0cyIgbXNnaWQ9IjExMDY2MTI0MjQyNTQyNzc2MzAiPiJUyZl0YmlxyZkgdG9wbGFubcSxxZ8gaXN0aWZhZMmZIHN0YXRpc3Rpa2FzxLFuxLEgZMmZeWnFn23JmXnJmSBpbWthbiB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gaXN0aWZhZMmZIG9sdW5tdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzNDEwMzYzMTEyMTE0MDY2OTIiPiJtyZl6bXVudSBrb3B5YWxhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29weVByb3RlY3RlZERhdGEiIG1zZ2lkPSI0MzkwNjk3MTI0Mjg4MzE3ODMxIj4iVMmZdGJpccmZIGtvbnRlbnRpIGtvcHlhbGFtYXEgw7zDp8O8biBkZWZvbHQga29udGV5bmVyIHNlcnZpc2luaSDDp2HEn8Sxcm1hcSBpY2F6yZlzaSB2ZXJpci4gTm9ybWFsIHTJmXRiaXFsyZlyIHTJmXLJmWZpbmTJmW4gaXN0aWZhZMmZIGVkaWxtaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yb3V0ZV9tZWRpYV9vdXRwdXQiIG1zZ2lkPSIxNjQyMDI0NDU1NzUwNDE0Njk0Ij4iTWVkaWEgw6fEsXjEscWfxLFuxLEgecO2bmzJmW5kaXJpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JvdXRlX21lZGlhX291dHB1dCIgbXNnaWQ9IjQ5MzI4MTg3NDk1NDcyNDQzNDYiPiJUyZl0YmlxyZkgbWVkaWEgw6fEsXjEscWfxLFuxLEgZGlnyZlyIHhhcmljaSBjaWhhemxhcmEgecO2bmzJmW5kaXJtyZlrIGlta2FuxLEgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3Nfa2V5Z3VhcmRfc2VjdXJlX3N0b3JhZ2UiIG1zZ2lkPSI3NTY1NTUyMjM3OTc3ODE1MDQ3Ij4iS2V5Z3VhcmQgdMmZaGzDvGvJmXNpeiB5YWRkYcWfYSDDp8SxeMSxxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3Nfa2V5Z3VhcmRfc2VjdXJlX3N0b3JhZ2UiIG1zZ2lkPSI1ODY2MjQ1NDg0MzAzMjg1NzYyIj4iVMmZdGJpccmZIGtlZ3VhcmQgdMmZaGzDvGvJmXNpeiB5YWRkYcWfYSDDp2F0bWHEn2EgaWNhesmZIHZlcmlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbF9rZXlndWFyZCIgbXNnaWQ9IjE3MjE5NTE4NDIwNzgyODM4NyI+IktsYXZpYXR1cmEga2lsaWRpbmluIGfDtnLDvGxtyZlzaW5pIHbJmSBnaXpsyZlkaWxtyZlzaW5pIGlkYXLJmSBlZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29udHJvbF9rZXlndWFyZCIgbXNnaWQ9IjMwNDM3MzIyOTA1MTg2MjkwNjEiPiJUyZl0YmlxyZkga2VndWFyZMSxIGlkYXLJmSBldG3JmWsgaWNhesmZc2kgdmVyaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHV0b3JpYWxfZG91YmxlX3RhcF90b196b29tX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0MDcwNDMzMjA4MTYwMDYzNTM4Ij4iWm9vbSBuyZl6YXLJmXRpIMO8w6fDvG4gaWtpIGTJmWbJmSB0b3h1bnVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2FkZ2V0X2hvc3RfZXJyb3JfaW5mbGF0aW5nIiBtc2dpZD0iNDg4MjAwNDMxNDkwNjQ2NjE2MiI+IldpZGdldCDJmWxhdsmZIGVkaWzJmSBiaWxtyZlkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX2dvIiBtc2dpZD0iODMyMDg0NTY1MTczNzM2OTAyNyI+IkdldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fc2VhcmNoIiBtc2dpZD0iNjU4MTEwMjcxODIyODA3ODExIj4iQXh0YXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3NlbmQiIG1zZ2lkPSIyMzE2MTY2NTU2MzQ5MzE0NDI0Ij4iR8O2bmTJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX25leHQiIG1zZ2lkPSIzMTM4ODQzOTA0MDA5ODEzODM0Ij4iTsO2dmLJmXRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9kb25lIiBtc2dpZD0iODk3MTUxNjExNzkxMDkzNDYwNSI+IlRhbWFtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9wcmV2aW91cyIgbXNnaWQ9IjE0NDM1NTAwMzkyNTAxMDU5NDgiPiLGj3Z2yZlsa2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX2RlZmF1bHQiIG1zZ2lkPSIyODQwOTIxODg1NTU4MDQ1NzIxIj4ixLBjcmEgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpYWxfbnVtYmVyX3VzaW5nIiBtc2dpZD0iNTc4OTE3NjQyNTE2NzU3MzU4NiI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVzPC94bGlmZjpnPiBpc3RpZmFkyZkgZXRtyZlrbMmZXG5uw7ZtcsmZIHnEscSfxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2NvbnRhY3RfdXNpbmciIG1zZ2lkPSI0OTQ3NDA1MjI2Nzg4MTA0NTM4Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JXM8L3hsaWZmOmc+aXN0aWZhZMmZIGVkyZlyyZlrIGtvbnRha3QgeWFyYWTEsW5cbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW50X2NyZWRlbnRpYWxzX3Blcm1pc3Npb25fbWVzc2FnZV9oZWFkZXIiIG1zZ2lkPSIyMTA2MTAzODE3OTM3ODU5NjYyIj4iQcWfYcSfxLFkYWvEsSBiaXIgdsmZIHlhIGRhaGEgw6dveCB0yZl0YmlxbMmZcsKgaW5kaSB2yZkgZ8mZbMmZY8mZa2TJmSBoZXNhYsSxbsSxemEgZGF4aWwgb2xtYXEgw7zDp8O8biBpY2F6yZkgaXN0yZl5aXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnRfY3JlZGVudGlhbHNfcGVybWlzc2lvbl9tZXNzYWdlX2Zvb3RlciIgbXNnaWQ9IjMxMjUyMTEzNDMzNzkzNzY1NjEiPiJCdSBpc3TJmXnJmSBpem4gdmVybcmZayBpc3TJmXlpcnNpbml6PyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW50X3Blcm1pc3Npb25zX2hlYWRlcl90ZXh0IiBtc2dpZD0iNjg3NDQ5NzQwODIwMTgyNjcwOCI+IkdpcmnFnyBzb3LEn3VzdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93IiBtc2dpZD0iNzIyNTk0ODgxMTI5NjM4NjU1MSI+IsSwY2F6yZkgdmVyaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55IiBtc2dpZD0iMjA4MTg3OTg4NTc1NTQzNDUwNiI+IlLJmWRkIGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWlzc2lvbl9yZXF1ZXN0X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY0ODY3NTk3OTU5MjYyMzc5MDciPiLEsGNhesmZIHTJmWzJmWIgb2x1bnVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWlzc2lvbl9yZXF1ZXN0X25vdGlmaWNhdGlvbl93aXRoX3N1YnRpdGxlIiBtc2dpZD0iODUzMDM5MzEzOTYzOTU2MDE4OSI+XG4iIGhlc2FixLEgw7zDp8O8bjx4bGlmZjpnIGlkPSJBQ0NPVU5UIj4lczwveGxpZmY6Zz4gaWNhesmZIHNvcsSfdXN1IGfDtm5kyZlyaWxkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnB1dF9tZXRob2RfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjEyODM1NTcxNzk5NDQ5OTI2NDkiPiJEYXhpbGV0bcmZIG1ldG9kdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjM2ODc5NjkxMzgzNzUwOTI0MjMiPiJTaW54cm9uaXphc2l5YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjQxNDgxMjA3NDIwOTY0NzQ2NDEiPiLGj2zDp2F0xLFtbMSxbMSxcSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndhbGxwYXBlcl9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMTI0MDA4Nzg0NDMwNDY4NzY2MiI+IkRpdmFyIGthxJ/EsXrEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZXJfd2FsbHBhcGVyIiBtc2dpZD0iNzg3MzQ3NjE5OTI5NTE5MDI3OSI+IkRpdmFyIGthxJ/EsXrEsW7EsSBkyZl5acWfaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub3RpZmljYXRpb25fbGlzdGVuZXJfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjIwMTQxNjI4MzU0ODE5MDY0MjkiPiJCaWxkaXJpxZ8gZGlubMmZecmZbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90aXRsZSIgbXNnaWQ9IjE5NjE1MjEzNTUyMDQyODI3Ij4iVlBOIGFrdGl2bMmZxZ9kaXJpbGRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RpdGxlX2xvbmciIG1zZ2lkPSI2NDAwNzE0Nzk4MDQ5MjUyMjk0Ij4iVlBOIDx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiB0yZlyyZlmaW5kyZluIGFrdGl2bMmZxZ9kaXJpbGliIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RleHQiIG1zZ2lkPSIzMDExMzA2NjA3MTI2NDUwMzIyIj4ixZ7JmWLJmWvJmW5pIGlkYXLJmSBldG3JmWsgw7zDp8O8biB0b3h1bnVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90ZXh0X2xvbmciIG1zZ2lkPSI2NDA3MzUxMDA2MjQ5MTc0NDczIj4iPHhsaWZmOmcgaWQ9IlNFU1NJT04iPiVzPC94bGlmZjpnPiBzZXNzaXlheWEgcW/Fn3VsdWR1ci4gxZ7JmWLJmWvJmW5pIGlkYXLJmSBldG3JmWsgw7zDp8O8biB0b3h1bnVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0aW5nIiBtc2dpZD0iNjQ0MzQzODk2NDQ0MDk2MDc0NSI+IkjJmW1pxZ/JmSBha3RpdiBWUE4gYmHEn2xhbsSxci4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0ZWQiIG1zZ2lkPSI4MjAyNjc5Njc0ODE5MjEzOTMxIj4iVlBOIGJhxJ9sYW50xLFzxLEgaMmZbWnFn8mZIGFrdGl2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Vycm9yIiBtc2dpZD0iNjAwOTI0OTgxNDAzNDcwODE3NSI+IkjJmW1pxZ/JmSBha3RpdiBWUE4geMmZdGFzxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29uZmlnIiBtc2dpZD0iNjQxNTg5OTE1MDY3MTUzNzk3MCI+IktvbmZpcXVyyZkgZXRtyZlrIMO8w6fDvG4gdG94dW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1cGxvYWRfZmlsZSIgbXNnaWQ9IjI4OTc5NTcxNzIzNjY3MzA0MTYiPiJGYXlsIHNlw6dpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2ZpbGVfY2hvc2VuIiBtc2dpZD0iNjM2MzY0ODU2MjE3MDc1OTQ2NSI+Ikhlw6cgYmlyIGZheWwgc2XDp2lsbcmZeWliIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzZXQiIG1zZ2lkPSIyNDQ4MTY4MDgwOTY0MjA5OTA4Ij4iU8SxZsSxcmxhecSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN1Ym1pdCIgbXNnaWQ9IjE2MDIzMzU1NzIwODk5MTE5NDEiPiJHw7ZuZMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcl9tb2RlX2Rpc2FibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMzE2NDc2ODIxMjAwMzg2NDMxNiI+IkF2dG9tb2JpbCByZWppbWkgYWt0aXZkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXJfbW9kZV9kaXNhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iODAzNTIzMDUzNzU2MzUwMzI2MiI+IkF2dG9tb2JpbCByZWppbWluZMmZbiDDp8SxeG1hcSDDvMOnw7xuIHRveHVudW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV0aGVyZWRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMzE0NjY5NDIzNDM5ODIwMjYwMSI+IlRlemVyaW5xIHbJmSB5YSBob3RzcG90IGFrdGl2ZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV0aGVyZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI2ODU3MDMxNzYwMTAzMDYyOTgyIj4iUXVyYcWfZMSxcm1hcSDDvMOnw7xuIHRveHVudW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja19idXR0b25fbGFiZWwiIG1zZ2lkPSIyMzAwNDcwMDA0NTAzMzQzNDM5Ij4iR2VyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5leHRfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTA4MDU1NTEwNDY3Nzk5MjQwOCI+Ik7DtnZiyZl0aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNraXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTI3NTM2MjI5OTQ3MTYzMTgxOSI+Iktlw6ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZV93YXJuaW5nX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjQ4OTA4OTQyNjc0NTQ4NjcyNzYiPiJZw7xrc8mZayBtb2JpbCBkYXRhIGlzdGlmYWTJmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGhyb3R0bGVfd2FybmluZ19ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjMzNDA4MjIyMjg1OTkzMzc3NDMiPiJNb2JpbCBkYXRhIGlzdGlmYWTJmXNpIGhhcXHEsW5kYSBkYWhhIMOnb3ggw7Z5csmZbm3JmWsgw7zDp8O8biB0b3h1bnVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2MjY5NTQxODk3NzI5NzgxMzMyIj4iTW9iaWwgZGF0YSBsaW1pdGkga2XDp2lsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI1NDQzNDU3MzIxMzU0OTA3MTgxIj4iTW9iaWwgZGF0YSBpc3RpZmFkyZlzaSBoYXFxxLFuZGEgZGFoYSDDp294IMO2eXLJmW5tyZlrIMO8w6fDvG4gdG94dW51bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19tYXRjaGVzIiBtc2dpZD0iODEyOTQyMTkwODkxNTg0MDczNyI+IlV5xJ91bmx1cSB5b3hkdXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kX29uX3BhZ2UiIG1zZ2lkPSIxOTQ2Nzk5MjMzODIyODIwMzg0Ij4iU8mZaGlmyZlkyZkgdGFwIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJtYXRjaGVzX2ZvdW5kIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODE2NzE0NzA4MTEzNjU3OTQzOSI+IjEgdXnEn3VubHVxIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NjQxODcyNzk3MDY3NjA5MTc3Ij4iPHhsaWZmOmcgaWQ9IklOREVYIj4lZDwveGxpZmY6Zz4gyZlkyZlkZMmZbiA8eGxpZmY6ZyBpZD0iVE9UQUwiPiVkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9tb2RlX2RvbmUiIG1zZ2lkPSI3MjE3NTgxNjQwNDYxOTIyMjg5Ij4iSGF6xLFyZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkyMzgxMDQ0ODUwNzYxMjc0NiI+IlVTQiB5YWRkYcWfxLEgcWFsZMSxcsSxbMSxci4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMzI3ODk0OTk4NDA5NTM3MTkwIj4iU0Qga2FydCBkZW1vbnRhaiBlZGlsaXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc19lcmFzaW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ1MjE1NzMzMjE1MjQzNDAwNTgiPiJVU0IgeWFkZGHFnyBzaWxpbmlyLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfZXJhc2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1OTY5ODg4NzU1MDcwNDMwNDIiPiJTRCBrYXJ0IHNpbGluaXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmb3JtYXRfZXJyb3IiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjI5OTc2OTU2MzYyNDc3Njk0OCI+IlVTQiB5YWRkYcWfxLEgc2lsaW7JmSBiaWxtyZlkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmb3JtYXRfZXJyb3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MzE1MjQ4Njk2NjQ0NTEwOTM1Ij4iU0Qga2FydMSxIHNpbG3JmWsgbcO8bWvDvG4gb2xtYWTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9iYWRfcmVtb3ZhbCIgbXNnaWQ9Ijc5NjA4NjQwNjEwMTY2MDMyODEiPiJTRCBrYXJ0IGRlbW9udGFqIGVkaWxtyZlkyZluIMO2bmPJmSDDp8SxeGFyxLFsZMSxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2NoZWNraW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQxODE4ODcyMDAwOTU2OTY5MyI+IlVTQiB5YWRkYcWfIGhhesSxcmRhIHlveGxhbsSxbMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9jaGVja2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMzQ3NjI1MDM5MDQ4Mjc0ODEiPiJTRCBrYXJ0IGhhesSxcmRhIHlveGxhbsSxbMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yZW1vdmVkIiBtc2dpZD0iNzAwMTUyNjkwNTA1Nzk1MjA5NyI+IlNEIGthcnQgw6fEsXhhcsSxbMSxYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9zaGFyZWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNTgzMDgxNDM0OTI1MDgzNDIyNSI+IlNEIGthcnQgaGF6xLFyZGEga29tcMO8dGVyIHTJmXLJmWZpbmTJmW4gaXN0aWZhZMmZIGVkaWxpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9zaGFyZWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NzA2MTMwNTY4MTMzNTQwNDM1Ij4iU0Qga2FydCBoYWwtaGF6xLFyZGEga29tcMO8dGVyIHTJmXLJmWZpbmTJmW4gaXN0aWZhZMmZIGVkaWxpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV91bmtub3duX3N0YXRlIiBtc2dpZD0iNzI5MTkyNzgyMTk3MjkwMzg1Ij4iTmFtyZlsdW0gdsmZeml5ecmZdGTJmSB4YXJpY2kgbWVkaWEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmUiIG1zZ2lkPSIxNzc4Njg2NjE4MjMwMDExOTY0Ij4iUGF5bGHFn8SxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmQiIG1zZ2lkPSI0ODA4MjcwOTAwMzIyOTg1OTYwIj4iVGFwxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2Vic2VhcmNoIiBtc2dpZD0iNDMzNzE1Nzk3NzQwMDIxMTU4OSI+IlZlYiBBeHRhcsSxxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kX25leHQiIG1zZ2lkPSI1NzQyMTI0NjE4OTQyMTkzOTc4Ij4iU29ucmFrxLFuxLEgdGFwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZF9wcmV2aW91cyIgbXNnaWQ9IjIxOTY3MjM2NjkzODgzNjA1MDYiPiLGj3Z2yZlsa2luaSB0YXAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNOb3RpZlRpY2tlciIgbXNnaWQ9IjU2MjI2ODM5MTI2MTY0OTYxNzIiPiI8eGxpZmY6ZyBpZD0iTkFNRSI+JXM8L3hsaWZmOmc+IHTJmXLJmWZpbmTJmW4gbcmZa2FuIHNvcsSfdXN1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZUaXRsZSIgbXNnaWQ9IjU0NDY4NTg3MTcxNTc0MTY4MzkiPiJNyZlrYW4gc29yxJ91c3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNOb3RpZk1lc3NhZ2UiIG1zZ2lkPSIxMzc0NzE4MDIzMjI0MDAwNzAyIj4iPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+ICg8eGxpZmY6ZyBpZD0iU0VSVklDRSI+JTIkczwveGxpZmY6Zz4pIHTJmXLJmWZpbmTJmW4gdMmZbMmZYiBlZGlsaWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNWZXJpZlllcyIgbXNnaWQ9IjIzNDY1NjYwNzI4NjcyMTM1NjMiPiJCyZlsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmTm8iIG1zZ2lkPSIxMTQ2NTY0OTM3MzQ2NDU0ODY1Ij4iWGV5ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfdG9vX21hbnlfZGVsZXRlcyIgbXNnaWQ9IjUyOTYzMjE4NTA2NjI3NDY4OTAiPiJMaW1pdGkga2XDp8mZbmkgc2lsaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzeW5jX3Rvb19tYW55X2RlbGV0ZXNfZGVzYyIgbXNnaWQ9IjQ5NjU1MTY3MTAwODY5NDI0NSI+Ijx4bGlmZjpnIGlkPSJUWVBFX09GX1NZTkMiPiUyJHM8L3hsaWZmOmc+IMO8w6fDvG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl9PRl9ERUxFVEVEX0lURU1TIj4lMSRkPC94bGlmZjpnPiBzaWxpbm1pxZ8gZmF5bCB2YXIsIDx4bGlmZjpnIGlkPSJBQ0NPVU5UX05BTUUiPiUzJHM8L3hsaWZmOmc+IGhlc2FixLEuIE7JmSBldG3JmWsgaXN0yZl5aXJzaW5pej8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzeW5jX3JlYWxseV9kZWxldGUiIG1zZ2lkPSIyNTcyNjAwMTAzMTIyNTk2MjQzIj4iRWxlbWVudGzJmXJpIHNpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfdW5kb19kZWxldGVzIiBtc2dpZD0iMjk0MTMxNzM2MDYwMDMzODYwMiI+IlNpbGluyZlubMmZcmkgZ2VyaSBxYXl0YXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzeW5jX2RvX25vdGhpbmciIG1zZ2lkPSIzNzQzNzY0NzQwNDMwODIxODQ1Ij4ixLBuZGlsaWsgaGXDpyBuyZkgZXRtyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfYWNjb3VudF9sYWJlbCIgbXNnaWQ9IjU2NTUyMDMwODk3NDY0MjM5MjciPiJIZXNhYiBzZcOnaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfYWNjb3VudF9sYWJlbCIgbXNnaWQ9IjI5MzUyNjczNDQ4NDk5OTM1NTMiPiJIZXNhYiDJmWxhdsmZIGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX2FjY291bnRfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMzYxMTk4Mjg5NDg1MzQzNTg3NCI+Ikhlc2FiIMmZbGF2yZkgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfaW5jcmVtZW50X2J1dHRvbiIgbXNnaWQ9IjI0MTIwNzIyNzI4MzIyODQzMTMiPiJBcnTEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJudW1iZXJfcGlja2VyX2RlY3JlbWVudF9idXR0b24iIG1zZ2lkPSI0NzYwNTA3NzgzODY3NzkwNjciPiJBemFsZMSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfaW5jcmVtZW50X3Njcm9sbF9tb2RlIiBtc2dpZD0iMzA3MzEwMTA2NzQ0MTYzODQyOCI+Ijx4bGlmZjpnIGlkPSJWQUxVRSI+JXM8L3hsaWZmOmc+IHRveHVudW4gdsmZIGJhc2FyYXEgc2F4bGF5xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfaW5jcmVtZW50X3Njcm9sbF9hY3Rpb24iIG1zZ2lkPSI5MTAxNDczMDQ1ODkxODM1NDkwIj4iQXJ0xLFybWFxIMO8w6fDvG4geXV4YXLEsSwgYXphbHRtYXEgw7zDp8O8biBhxZ9hxJ/EsSBzw7xyw7zFn2TDvHLDvG4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfaW5jcmVtZW50X21pbnV0ZV9idXR0b24iIG1zZ2lkPSI4ODY1ODg1MTE0MDI4NjE0MzIxIj4iRMmZcWlxyZkgYXJ0xLFyxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGVjcmVtZW50X21pbnV0ZV9idXR0b24iIG1zZ2lkPSI2MjQ2ODM0OTM3MDgwNjg0NzkxIj4iRMmZcWlxyZluaSBhemFsdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2luY3JlbWVudF9ob3VyX2J1dHRvbiIgbXNnaWQ9IjM2NTIwNTYwNTU4MTAyMjMxMzkiPiJTYWF0xLEgYXJ0xLFyxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGVjcmVtZW50X2hvdXJfYnV0dG9uIiBtc2dpZD0iMTM3NzQ3OTg2MzQyOTIxNDc5MiI+IlNhYXTEsSBhemFsZMSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2luY3JlbWVudF9zZXRfcG1fYnV0dG9uIiBtc2dpZD0iNDE0NzU5MDY5NjE1MTIzMDg2MyI+IlBNIHF1cnVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGVjcmVtZW50X3NldF9hbV9idXR0b24iIG1zZ2lkPSI4MzAyMTQwMzUzNTM5NDg2NzUyIj4iQU0gcXVydW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9pbmNyZW1lbnRfbW9udGhfYnV0dG9uIiBtc2dpZD0iNTM2OTk5ODQ3OTA2NzkzNDExMCI+IkFydG1hIGF5xLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kZWNyZW1lbnRfbW9udGhfYnV0dG9uIiBtc2dpZD0iMTgzMjY5ODk5NTU0MTcyNjAxOSI+IkF5xLEgYXphbGTEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9pbmNyZW1lbnRfZGF5X2J1dHRvbiIgbXNnaWQ9IjcxMzA0NjU0MTIzMDgxNzM5MDMiPiJBcnRtYSBnw7xuw7wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kZWNyZW1lbnRfZGF5X2J1dHRvbiIgbXNnaWQ9IjQxMzE4ODE1MjE4MTg3NTAwMzEiPiJBemFsbWEgZ8O8bsO8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X3llYXJfYnV0dG9uIiBtc2dpZD0iNjMxODY5NzM4NDMxMDgwODg5OSI+IkFydMSxbSBpbGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kZWNyZW1lbnRfeWVhcl9idXR0b24iIG1zZ2lkPSI0NDgyMDIxODEzNDkxMTIxNzE3Ij4iQXphbG1hIGlsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2FsdCIgbXNnaWQ9IjQ4NTY4Njg4MjAwNDAwNTE5MzkiPiJBbHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9jYW5jZWwiIG1zZ2lkPSIxMjAzOTg0MDE3MjQ1NzgzMjQ0Ij4iTMmZxJ92IGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZGVsZXRlIiBtc2dpZD0iMzMzNzkxNDgzMzIwNjYzNTc0NCI+IlNpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RvbmUiIG1zZ2lkPSIxOTkyNTcxMTE4NDY2Njc5Nzc1Ij4iSGF6xLFyZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX21vZGVfY2hhbmdlIiBtc2dpZD0iNDU0NzM4Nzc0MTkwNjUzNzUxOSI+IlJlamltIGTJmXlpxZ9pa2xpeWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkRheGlsIG9sdW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiJUyZl0YmlxIHNlw6dpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IkJ1bnVubGEgcGF5bGHFn8SxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+IGlsyZkgcGF5bGHFn8SxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJTw7xyw7zFn8mZbiBxdWxwLiBUb3h1bmFyYXEgYmFzxLFsxLEgdHV0dW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3VwIiBtc2dpZD0iNzE2OTAzMjQ3ODI1OTQ4NTE4MCI+Ijx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiDDvMOnw7xuIHl1eGFyxLEgc8O8csO8xZ9kw7xyw7xuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9kb3duIiBtc2dpZD0iNTA4NzczOTcyODYzOTAxNDU5NSI+Ijx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiDDvMOnw7xuIGHFn2HEn8SxIHPDvHLDvMWfZMO8csO8bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fbGVmdCIgbXNnaWQ9IjcyMDc0Nzg3MTk4MDU1NjIxNjUiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4gw7zDp8O8biBzb2xhIHPDvHLDvMWfZMO8ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fcmlnaHQiIG1zZ2lkPSI4MDM0NDMzMjQyNTc5NjAwOTgwIj4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IMO8w6fDvG4gc2HEn2Egc8O8csO8xZ9kw7xyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF91bmxvY2siIG1zZ2lkPSIyMjI4NTI0OTAwNDM5ODAxNDUzIj4iS2lsaWRpIGHDpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9jYW1lcmEiIG1zZ2lkPSI5NjkwNzE5OTc1NTI0ODY4MTQiPiJLYW1lcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2lsZW50IiBtc2dpZD0iODkzNTUxMjg3NzQ2NTIyMTgyIj4iU8mZc3NpeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zb3VuZG9uIiBtc2dpZD0iMzAwNTI0NjY2NzU1MDAxNzIiPiJTyZlzIGHDp8SxcWTEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2VhcmNoIiBtc2dpZD0iMzA5MTU4NzI0OTc3NjAzMzEzOSI+IkF4dGFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9ja190YWJsZXQiIG1zZ2lkPSIzODMzMTk1MzM1NjI5Nzk1MDU1Ij4iS2lsaWRpIGHDp21hcSDDvMOnw7xuIHZ1cnVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2hlYWRzZXRfcmVxdWlyZWRfdG9faGVhcl9wYXNzd29yZCIgbXNnaWQ9IjcwMTE5MjczNTIyNjc2Njg2NTciPiJQYXJvbGxhcsSxbiBzyZlzbMmZbmRpcmlsbcmZc2kgw7zDp8O8biBxdWxhcWzEsXFsYXLEsSB0YXjEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfcGFzc3dvcmRfY2hhcmFjdGVyX25vX2hlYWRzZXQiIG1zZ2lkPSIyODU5ODczNzcwODg2MTUzNjc4Ij4iTsO2cXTJmS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fYmFyX2hvbWVfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MjkzNjAwNDk2NjAxNDkwMjE2Ij4iRXbJmSBnZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMjM3NDk2NTYyOTUyMTUyNTg5Ij4iWXV4YXLEsSBnZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9tZW51X292ZXJmbG93X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjI5NTY1OTAzNzUwOTAwODQ1MyI+IsaPbGF2yZkgc2XDp2ltbMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI3OTY1OTg0MzYwOTAzNjkzOTAzIj4iJTEkcywgJTIkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9zdWJ0aXRsZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI2OTg1NTQ2NTMwNDcxNzgwNzI3Ij4iJTEkcywgJTIkcywgJTMkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfaW50ZXJuYWwiIG1zZ2lkPSI0ODkxOTE2ODMzNjU3OTI5MjYzIj4iRGF4aWxpIHlhZGRhxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3NkX2NhcmQiIG1zZ2lkPSIzMjgyOTQ4ODYxMzc4Mjg2NzQ1Ij4iU0Qga2FydCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfdXNiIiBtc2dpZD0iMzAxNzk1NDA1OTUzODUxNzI3OCI+IlVTQiB5YWRkYcWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0cmFjdF9lZGl0X21lbnVfYnV0dG9uIiBtc2dpZD0iODk0MDQ3ODczMDQ5NjYxMDEzNyI+IlJlZGFrdMmZIGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93YXJuaW5nX3RpdGxlIiBtc2dpZD0iMTk1NTYzODg2MjEyMjIzMjM0MiI+IkRhdGEgaXN0aWZhZMmZIHjJmWLJmXJkYXJsxLHEn8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93YXJuaW5nX2JvZHkiIG1zZ2lkPSIyODE0NjczNTUxNDcxOTY5OTU0Ij4ixLBzdGlmYWTJmSB2yZkgYXlhcmxhcsSxIGfDtnJtyZlrIMO8w6fDvG4gdG94dW51biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfM2dfbGltaXRfdGl0bGUiIG1zZ2lkPSI3MDkzMzM0NDE5NTE4NzA2Njg2Ij4iMkctM0cgZGF0YSBkZWFrdGl2ZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV80Z19saW1pdF90aXRsZSIgbXNnaWQ9Ijc2MzY0ODk0MzY4MTk0NzA3NjEiPiI0RyBkYXRhIGRlYWt0aXYgZWRpbGRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9tb2JpbGVfbGltaXRfdGl0bGUiIG1zZ2lkPSI3ODY5NDAyNTE5MzkxNjMxODg0Ij4iTW9iaWwgZGF0YSBkZWFrdGl2ZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93aWZpX2xpbWl0X3RpdGxlIiBtc2dpZD0iODk5MjE1NDczNjQ0MTI4NDg2NSI+IldpLUZpIGRhdGEgZGVha3RpdiBlZGlsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2xpbWl0X2JvZHkiIG1zZ2lkPSIzMzE3OTY0NzA2OTczNjAxMzg2Ij4iQWt0aXZsyZnFn2Rpcm3JmWsgw7zDp8O8biB0b3h1bnVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfM2dfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjcwMjY3MzkxMjExMzgwMDUyMzEiPiIyRy0zRyBkYXRhIGxpbWl0aSBhxZ/EsWzEsWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzRnX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSIxMTA2NTYyNzc5MzExMjA5MDM5Ij4iNEcgZGF0YSBsaW1pdGkga2XDp2lsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX21vYmlsZV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iMjc5MjQwNTcyMTY1NDEyMTY4Ij4iTW9iaWwgZGF0YSBsaW1pdGkga2XDp2lsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9Ijg3NDM4NTYwMDYzODQ4MjU5NzQiPiJXaS1GaSBkYXRhIGxpbWl0aSBrZcOnaWxkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbGltaXRfc25vb3plZF9ib2R5IiBtc2dpZD0iNzAzNTQ5MDI3ODI5ODQ0MTc2NyI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lczwveGxpZmY6Zz4gbcO8yZl5ecmZbiBlZGlsbWnFnyBsaW1pdCBhxZ/EsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9yZXN0cmljdGVkX3RpdGxlIiBtc2dpZD0iNTk2NTE1NzM2MTAzNjMyMTkxNCI+IkFyeGFwbGFuIGRhdGFzxLEgbcmZaGR1ZGxhxZ9kxLFyxLFsZMSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9yZXN0cmljdGVkX2JvZHkiIG1zZ2lkPSI2NzQxNTIxMzMwOTk3NDUyOTkwIj4iTcmZaGR1ZGl5ecmZdGkgYXJhZGFuIHFhbGTEsXJtYXEgw7zDp8O8biB0b3h1bnVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NlcnRpZmljYXRlIiBtc2dpZD0iNjUxMDA0MDQ4NjA0OTIzNzYzOSI+IlTJmWhsw7xryZlzaXpsaWsgc2VydGlmaWthdMSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NlcnRpZmljYXRlX2lzX3ZhbGlkIiBtc2dpZD0iNjgyNTI2MzI1MDc3NDU2OTM3MyI+IkJ1IHNlcnRpZmlrYXQgZXRpYmFybMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfdG8iIG1zZ2lkPSI0NTQyMzk0ODAyNzQ5MjEwMzIiPiJWZXJpbGliOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbW1vbl9uYW1lIiBtc2dpZD0iMjIzMzIwOTI5OTQzNDE3MjY0NiI+IsOcbXVtaSBhZDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdfbmFtZSIgbXNnaWQ9IjY5NzM1NjExOTA3NjIwODUyMzYiPiJUyZnFn2tpbGF0OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ191bml0IiBtc2dpZD0iNzI2NTk4MTg5MDQyMjA3MDM4MyI+IlTJmcWfa2lsYXRpIHZhaGlkOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imlzc3VlZF9ieSIgbXNnaWQ9IjI2NDc1ODQ5ODgwNTc0ODE1NjYiPiJUyZlyyZlmaW5kyZluIHZlcmlsaWI6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idmFsaWRpdHlfcGVyaW9kIiBtc2dpZD0iODgxODg4NjEzNzU0NTk4MzExMCI+Iktlw6fJmXJsaWxpazoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfb24iIG1zZ2lkPSI1ODk1MDE3NDA0MzYxMzk3MjMyIj4iRMmZcmMgb2x1bnViOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4cGlyZXNfb24iIG1zZ2lkPSIzNjc2MjQyOTQ5OTE1OTU5ODIxIj4iQml0bcmZIHZheHTEsToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJpYWxfbnVtYmVyIiBtc2dpZD0iNzU4ODE0MDY3NjYwODYyNDkzIj4iU2VyaXlhIG7Dtm1yyZlzaToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5nZXJwcmludHMiIG1zZ2lkPSI0NTE2MDE5NjE5ODUwNzYzMDQ5Ij4iQmFybWFxIGl6bMmZcmk6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhMjU2X2ZpbmdlcnByaW50IiBtc2dpZD0iNDM5MTI3MTI4NjQ3NzI3OTI2MyI+IlNIQS0yNTYgYmFybWFxIGl6aToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGExX2ZpbmdlcnByaW50IiBtc2dpZD0iNzkzMDMzMDIzNTI2OTQwNDU4MSI+IlNIQS0xIGJhcm1hcSBpemk6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfY2hvb3Nlcl92aWV3X3NlZV9hbGwiIG1zZ2lkPSI0MjkyNTY5MzgzOTc2NjM2MjAwIj4iSGFtxLFzxLFuxLEgc2XDp8SxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2Nob29zZXJfdmlld19kaWFsb2dfdGl0bGVfZGVmYXVsdCIgbXNnaWQ9IjQ3MTAwMTM4NjQ5NzQwNDA2MTUiPiJGyZlhbGl5ecmZdGkgc2XDp2luIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfYWN0aW9uX3Byb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI1MjQ3Njg0NDM1OTc5MTQ5MjE2Ij4iQnVudW5sYSBwYXlsYcWfxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9kZXZpY2VfbG9ja2VkIiBtc2dpZD0iMzA5MjcwMzQ0ODY5MDY2OTc2OCI+IkNpaGF6IGtpbGlkbMmZbmRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxpc3RfZGVsaW1ldGVyIiBtc2dpZD0iMzk3NTExNzU3MjE4NTQ5NDE1MiI+IiwgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VuZGluZyIgbXNnaWQ9IjMyNDU2NTM2ODEwMDgyMTgwMzAiPiJHw7ZuZMmZcmlsaXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYXVuY2hCcm93c2VyRGVmYXVsdCIgbXNnaWQ9IjIwNTc5NTE5NDcyOTc2MTQ3MjUiPiJCcmF1emVyIGnFn8mZIHNhbMSxbnPEsW4/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iU2V0dXBDYWxsRGVmYXVsdCIgbXNnaWQ9IjU4MzQ5NDg0NjkyNTM3NTg1NzUiPiJayZluZ2kgccmZYnVsIGVkyZlrPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X3Jlc29sdmVyX3VzZV9hbHdheXMiIG1zZ2lkPSI4MDE3NzcwNzQ3ODAxNDk0OTMzIj4iSMmZbWnFn8mZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfcmVzb2x2ZXJfdXNlX29uY2UiIG1zZ2lkPSIyNDA0NjQ0Nzk3MTQ5MTczNzU4Ij4iU2FkyZljyZkgYmlyIGTJmWbJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfbmFtZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDYxNzA1Mzg5ODE2NzEyNzQ3MSI+IlBsYW7Fn2V0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDIzOTI5MTI3MzQyMDE0MDEyMyI+IlRlbGVmb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWVfaGVhZHBob25lcyIgbXNnaWQ9IjgxMTk5NzE4NDM4MDM0MzkxMTAiPiJRdWxhcWzEsXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWVfZG9ja19zcGVha2VycyIgbXNnaWQ9IjYyNDA2MDI5ODIyNzY1OTE4NjQiPiJEb2sgc3Bpa2VybMmZciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfbWVkaWFfcm91dGVfbmFtZV9oZG1pIiBtc2dpZD0iMjQ1MDk3MDM5OTAyMzQ3ODA1NSI+IkhETUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX2NhdGVnb3J5X25hbWUiIG1zZ2lkPSIzNzIyODExMTc0MDAzODg2OTQ2Ij4iU2lzdGVtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmx1ZXRvb3RoX2EyZHBfYXVkaW9fcm91dGVfbmFtZSIgbXNnaWQ9Ijg1NzU2MjQwMzA0MDY3NzEwMTUiPiJCbHVldG9vdGggYXVkaW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aXJlbGVzc19kaXNwbGF5X3JvdXRlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iOTA3MDM0NjQyNTAyMzk3OTY1MSI+IlNpbXNpeiBla3JhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX2Nob29zZXJfZ3JvdXBpbmdfZG9uZSIgbXNnaWQ9Ijc5NjY0MzgzMDc3MjMzMTcxNjkiPiJIYXrEsXJkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfYnV0dG9uX2NvbnRlbnRfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NzU4NTUzNTY3MDY1MTQ1Mjc2Ij4iTWVkaWEgw6fEsXjEscWfxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfc2Nhbm5pbmciIG1zZ2lkPSI3Mjc5OTA4NzYxNzU4MjkzNzgzIj4iU2thbiBlZGlsaXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfY29ubmVjdGluZyIgbXNnaWQ9IjY0MjI1NzE3MTYwMDc4MjU0NDAiPiJRb8WfdWx1ci4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19hdmFpbGFibGUiIG1zZ2lkPSI2OTgzMjU4MDY3MTk0NjQ5MzkxIj4ixo9sw6dhdMSxbWzEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19ub3RfYXZhaWxhYmxlIiBtc2dpZD0iNjczOTg5OTk2MjY4MTg4NjQwMSI+IsaPbMOnYXTEsW1sxLEgZGV5aWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfaW5fdXNlIiBtc2dpZD0iNDUzMzc4NjAzMTA5MDE5ODA2MyI+IsSwc3RpZmFkyZkgb2x1bnVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX2J1aWx0X2luX2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjI1ODMxMzQyOTQyOTI1NjM5NDEiPiJEYXhpbGkgZWtyYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfaGRtaV9kaXNwbGF5X25hbWUiIG1zZ2lkPSIxNTU1MjY0NTU5MjI3NDcwMTA5Ij4iSERNSSBFa3JhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9vdmVybGF5X2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjUxNDIzNjU5ODIyNzE2MjA3MTYiPiLDlnJ0w7xrICM8eGxpZmY6ZyBpZD0iSUQiPiUxJGQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV90aXRsZSIgbXNnaWQ9IjY1MjEyNDUxNzY3MjI1NzE3MiI+Ijx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IldJRFRIIj4lMiRkPC94bGlmZjpnPng8eGxpZmY6ZyBpZD0iSEVJR0hUIj4lMyRkPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IkRQSSI+JTQkZDwveGxpZmY6Zz4gZHBpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9zZWN1cmVfc3VmZml4IiBtc2dpZD0iNjAyMjExOTcwMjYyODU3MjA4MCI+IiwgdMmZaGzDvGvJmXNpeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfZGlzcGxheV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMjIzMDUwNjQ5MjQwMzI2NTU3Ij4iU2ltc2l6IGVrcmFuIHFvxZ91bHViIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iNDQ5ODgwMjAxMjQ2NDE3MDY4NSI+IkJ1IGVrcmFuIGRpZ8mZciBjaWhhemRhIGfDtnN0yZlyaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX2Rpc2Nvbm5lY3QiIG1zZ2lkPSI2MTgzNzU0NDYzNTYxMTUzMzcyIj4iQmHEn2xhbnTEsW7EsSBryZlzaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbWVyZ2VuY3lfY2FsbF9sYWJlbCIgbXNnaWQ9IjY4NDk0NjE5MjUyMzgzMDUzMSI+IlTJmWNpbGkgesmZbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLFnmFibG9udSB1bnV0bXXFn2FtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiJZYW5sxLHFnyBNb2RlbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3Bhc3N3b3JkIiBtc2dpZD0iMjMzMzI4MTc2MjEyODExMzE1NyI+IllhbmzEscWfIMWeaWZyyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4iUElOIHPJmWh2ZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRkPC94bGlmZjpnPiBzYW5pecmZIHNvbnJhIHllbmlkyZluIGPJmWhkIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiLFnmFibG9udW51enUgw6fJmWtpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV9waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjMxOTUwODU1MDkzNDU1NzMzMSI+IlNJTSBQSU4ga29kdSBkYXhpbCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiJQxLBOIGtvZHUgZGF4aWwgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU3NTM2NDY1NTYxODY5MzY4MTkiPiJQYXJvbCBkYXhpbCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4iU0lNIGluZGkgZGVha3RpdmRpci4gRGF2YW0gZXRtyZlrIMO8w6fDvG4gUFVLIGtvZHUgZGF4aWwgZWRpbi4gxo9sYXbJmSBtyZlsdW1hdCDDvMOnw7xuIG9wZXJhdG9yYSBtw7xyYWNpyZl0IGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IsSwc3TJmWRpeWluaXogUMSwTiBrb2R1IGRheGlsIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4ixLBzdMmZZGl5aW5peiBQSU4ga29kdSB0yZlzZGlxbMmZeWluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJTxLBNIGthcnTEsW4ga2lsaWRpIGHDp8SxbMSxci4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IllhbmzEscWfIFDEsE4ga29kLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IjQtZMmZbiA4LcmZIHHJmWTJmXIgcsmZccmZbWkgb2xhbiBQSU4geWF6xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyBrb2QgOCByyZlxyZltIHbJmSB5YSBkYWhhIMOnb3ggb2xtYWzEsWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iRMO8emfDvG4gUFVLIGtvZHUgeWVuaWTJmW4gZGF4aWwgZWRpbi4gVMmZa3JhcmxhbmFuIGPJmWhkbMmZciBTSU1cJ2kgYmlyZMmZZsmZbGlrIHPEsXJhZGFuIMOnxLF4YXJhY2FxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfY29uZmlybV9waW5faGludCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcwMDM0NjkyNjE0NjQ1OTM1MTYiPiJQSU4ga29kbGFyxLEgdXnEn3VuIGRleWlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4iSMmZZGRpbmTJmW4gw6dveCBjyZloZCBlZGlsZGkhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMTEwMDU1MTI2MTI2NTUwNjQ0OCI+IktpbGlkaSBhw6dtYXEgw7zDp8O8biBHb29nbGUgaGVzYWLEsW7EsXogaWzJmSBkYXhpbCBvbHVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4ixLBzdGlmYWTJmcOnaSBhZMSxIChlLXBvw6d0KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4ixZ5pZnLJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI1MzU1OTA0NTgyNjc0MDU0NzAyIj4iRGF4aWwgb2wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+IllhbmzEscWfIGlzdGlmYWTJmcOnaSBhZMSxIHbJmSB5YSBwYXJvbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4ixLBzdGlmYWTJmcOnaSBhZMSxbsSxesSxIHbJmSB5YSBwYXJvbHVudXp1IHVudXRtdXN1bnV6P1xuICI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+IiBsaW5raW7JmSBkYXhpbCBvbHVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+Ikhlc2FiIHlveGxhbsSxbMSxci4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4iUElOIGtvZHVudXp1IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSB5YW5sxLHFnyBkYXhpbCBldGRpbml6LlxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSDJmXJ6aW5kyZkgeWVuaWTJmW4geW94bGF5xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+IsWeaWZyyZluaXppIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSB5YW5sxLHFnyBkYXhpbCBldGRpbml6LiBcblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgyZlyemluZMmZIHllbmlkyZluIHlveGxhecSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGF0dGVybl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc0MDg5NDc1OTY1MDUwODA1Ij4iTW9kZWxpbml6aSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgeWFubMSxxZ8gw6fJmWttaXNpbml6LlxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSDJmXJ6aW5kyZkgeWVuaWTJmW4geW94bGF5xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTc1NTU3MjAwNjI3MTI4OTQ5Ij4iU2l6IHBsYW7Fn2V0IGtpbGlkaW5pIGHDp21hcSDDvMOnw7xuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSB1xJ91cnN1eiBjyZloZCBldG1pc2luaXouIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGTJmWbJmSBkyZkgdcSfdXJzdXogY8mZaGQgZXRzyZluaXosIHBsYW7Fn2V0IGZhYnJpayBheWFybGFyxLFuYSBzxLFmxLFybGFuYWNhcSB2yZkgYsO8dMO8biBtyZlsdW1hdGxhcsSxbsSxeiBpdMmZY8mZay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MDUxMDE1OTQzMDM4MTk5OTEwIj4iU2l6IHRlbGVmb24ga2lsaWRpbmkgYcOnbWFxIMO8w6fDvG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHXEn3Vyc3V6IGPJmWhkIGV0bWlzaW5pei4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gZMmZZsmZIGTJmSB1xJ91cnN1eiBjyZloZCBldHPJmW5peiwgdGVsZWZvbiBmYWJyaWsgYXlhcmxhcsSxbmEgc8SxZsSxcmxhbmFjYXEgdsmZIGLDvHTDvG4gbcmZbHVtYXRsYXLEsW7EsXogaXTJmWPJmWsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNzI5OTYyNjkxNDg0ODM2MzciPiJTaXogcGxhbsWfZXQga2lsaWRpbmkgYcOnbWFxIMO8w6fDvG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGTJmWbJmSB1xJ91cnN1eiBjyZloZCBldG1pc2luaXouIFBsYW7Fn2V0IGZhYnJpayBheWFybGFyxLFuYSBzxLFmxLFybGFuYWNhcS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ4MTc2Mjc0NzQ0MTk0NzE1MTgiPiJTaXogdGVsZWZvbnVuIGtpbGlkaW5pIGHDp21hcSDDvMOnw7xuIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiB5YW5sxLHFnyBjyZloZCBldG1pc2luaXouIFRlbGVmb24gYXJ0xLFxIGRlZm9sdCB6YXZvZCBoYWzEsW5hIHPEsWbEsXJsYW5hY2FxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMyNTM1NzU1NzIxMTg5MTQzNzAiPiJTaXoga2lsaWRpIGHDp21hcSDDvMOnw7xuIMWfYWJsb251IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSBzyZlodiDDp8mZa2Rpbml6LiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBkYWhhIHXEn3Vyc3V6IGPJmWhkZMmZbiBzb25yYSBwbGFuxZ9ldGluaXppbiBraWxpZGluaSBlLXBvw6d0IGhlc2FixLFuxLF6bGEgYcOnbWFxIHTJmWzJmWIgb2x1bmFjYXEuXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzYW5pecmZIMmZcnppbmTJmSBiaXIgZGFoYSB5b3hsYXnEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiJTaXogYXJ0xLFxIG1vZGVsaSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgeWFubMSxxZ8gZGF4aWwgZXRtaXNpbml6Ljx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGTJmWbJmSBkyZkgeWFubMSxxZ8gZGF4aWwgZXRzyZluaXosIHRlbGVmb251biBraWxpZGluaW4gYcOnxLFsbWFzxLEgw7zDp8O8biBlbGVrdHJvbiBwb8OndCDDvG52YW7EsW7EsXogdMmZbMmZYiBvbHVuYWNhcS5cblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgyZlyemluZMmZIHllbmlkyZluIGPJmWhkIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIgLSAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IlnEscSfxLHFn2TEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYWZlX21lZGlhX3ZvbHVtZV93YXJuaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzMyNDE2MTkzOTQ3NTQ3ODA2NiI+IlPJmXMgZ8O8Y8O8IHTDtnZzaXnJmSBlZGlsyZluIHPJmXZpeXnJmWTJmW4gYXJ0xLFyxLFsc8Sxbj9cblV6dW4gbcO8ZGTJmXQgecO8a3PJmWsgc8mZcyBnw7xjw7wgaWzJmSBkaW5syZltyZkgU2l6aW4gZcWfaXRtyZkgcWFiaWxpeXnJmXRpbml6yZkgbcmZbmZpIHTJmXNpciBlZMmZIGJpbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250aW51ZV90b19lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjE2MjY0MjczNzIzMTYwNzAyNTgiPiLGj2zDp2F0xLFtbMSxxJ/EsSBha3RpdmzJmcWfZGlybcmZayDDvMOnw7xuIGlraSBiYXJtYcSfxLFuxLF6xLEgYmFzxLFsxLEgc2F4bGF5xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZW5hYmxlZCIgbXNnaWQ9IjEzODE5NzIwNDg1NjQ1NDc2ODUiPiLGj2zDp2F0xLFtbMSxbMSxcSBha3RpdmzJmcWfZGlyaWxkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9hY2Nlc3NpYmlsaXR5X2NhbmNlbGVkIiBtc2dpZD0iMzgzMzkyMzI1Nzk2NjYzNTY3MyI+IkdpcmnFnyBpbWthbsSxIGzJmcSfdiBlZGlsaWIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlcl9zd2l0Y2hlZCIgbXNnaWQ9IjM3NjgwMDY3ODMxNjY5ODQ0MTAiPiJDYXJpIGlzdGlmYWTJmcOnaSA8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3duZXJfbmFtZSIgbXNnaWQ9IjI3MTY3NTU0NjAzNzYwMjgxNTQiPiJTYWhpYiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVycm9yX21lc3NhZ2VfdGl0bGUiIG1zZ2lkPSI0NTEwMzczMDgzMDgyNTAwMTk1Ij4iWMmZdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbm9fcmVzdHJpY3RlZF9hY2NvdW50cyIgbXNnaWQ9IjU3Mzk0NjMyNDk2NzM3Mjc3MzYiPiJCdSB0yZl0YmlxIG3JmWhkdWQgcHJvZmlsbMmZciDDvMOnw7xuIGhlc2FibGFyxLEgZMmZc3TJmWtsyZltaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX25vdF9mb3VuZCIgbXNnaWQ9IjM0MjkxNDE4NTM0OTg5MjczNzkiPiJCdSDJmW3JmWxpeXlhdMSxIGlkYXLJmSBldG3JmWsgw7zDp8O8biBoZcOnIGJpciB0yZl0YmlxIHRhcMSxbG1hZMSxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJldm9rZSIgbXNnaWQ9IjU0MDQ0NzkxODUyMjgyNzE1ODYiPiJMyZnEn3YgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTAiIG1zZ2lkPSI3ODc1NDI3NDg5NDIwODIxNzkzIj4iSVNPIEEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMSIgbXNnaWQ9IjM3NjA3MzQ0OTkwNTA4NzUzNTYiPiJJU08gQTEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2EyIiBtc2dpZD0iNTk3MzI2NjM3ODAyMDE0NDM4MiI+IklTTyBBMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTMiIG1zZ2lkPSIxMzczNDA3MTA1Njg3MzAwODg0Ij4iSVNPIEEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNCIgbXNnaWQ9IjY2ODk3NzI4MDc5ODI1OTcyNTQiPiJJU08gQTQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E1IiBtc2dpZD0iNTM1MzU0OTY1MjAxNTc0MTA0MCI+IklTTyBBNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTYiIG1zZ2lkPSI4NTg1MDM4MDQ4Njc0OTExOTA3Ij4iSVNPIEE2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNyIgbXNnaWQ9IjY2NDE4MzY3MTY5NjM4MzkxMTkiPiJJU08gQTciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E4IiBtc2dpZD0iNzU3MTEzOTQzNzQ2NTY5MzM1NSI+IklTTyBBOCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTkiIG1zZ2lkPSIxMzc4NDU1ODkxOTU3MTE1MDc5Ij4iSVNPIEE5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMTAiIG1zZ2lkPSIyNDgwNzQ3NDU3NDI5NDc1MzQ0Ij4iSVNPIEExMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjAiIG1zZ2lkPSIzOTY1OTM1MDk3NjYxMTA4MDM5Ij4iSVNPIEIwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMSIgbXNnaWQ9IjI1MDU3NTMyODUwMTAxMTU0MzciPiJJU08gQjEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IyIiBtc2dpZD0iODc2Mzg3NDcwOTg1OTQ1ODQ1MyI+IklTTyBCMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjMiIG1zZ2lkPSI0MjEwNTA2Njg4MTkxNzY0MDc2Ij4iSVNPIEIzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNCIgbXNnaWQ9IjU3NDk0MDQxNjU4ODg1MjYwMzQiPiJCNCBJU08iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I1IiBtc2dpZD0iNzY0MDYyNzQxNDYyMTkwNDczMyI+IklTTyBCNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjYiIG1zZ2lkPSI3MzQyOTg4ODY0NzEyNzQ4NTQ0Ij4iSVNPIEI2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNyIgbXNnaWQ9IjUwNjk4NDQwNjUyMzUzODI0MjkiPiJJU08gQjciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I4IiBtc2dpZD0iNzMxNjgxODkyMjI3ODc3OTc3NCI+IklTTyBCOCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjkiIG1zZ2lkPSI1NDE0NzI3MDk0MDI2NTMyMzQxIj4iSVNPIEI5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMTAiIG1zZ2lkPSI1MjUxMjUzNzMxODMyMDQ4MTg1Ij4iSVNPIEIxMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzAiIG1zZ2lkPSI0MDAzMTM4MzQyNjcxOTY0MjE3Ij4iSVNPIEMwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMSIgbXNnaWQ9IjE5MzUxODgwNjMzOTM1NTMwMDgiPiJJU08gQzEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MyIiBtc2dpZD0iMzE5NzMwNzk2OTcxMjA2OTkwNCI+IklTTyBDMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzMiIG1zZ2lkPSI0MzM1ODI2MDg3MzIxOTEzNTA4Ij4iSVNPIEMzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNCIgbXNnaWQ9IjM3NDU2Mzk1OTgyODEwMTUwMDUiPiJJU08gQzQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M1IiBtc2dpZD0iODI2OTQ1Nzc2NTgyMjc5MTAxMyI+IklTTyBDNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzYiIG1zZ2lkPSI1NjY2NjYxMDUyNjAzNDY5MzAiPiJJU08gQzYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M3IiBtc2dpZD0iODY3ODQxMzE4MDc4MjYwODQ5OCI+IklTTyBDNyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzgiIG1zZ2lkPSI4MzkyMzc2MjA2NjI3MDQxNzMwIj4iSVNPIEM4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jOSIgbXNnaWQ9IjkxOTE2MTMzNzIzMjQ4NDU0MDUiPiJJU08gQzkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MxMCIgbXNnaWQ9IjczMjc3MDk2OTkxODQ5MjA4MjIiPiJJU08gQzEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2xldHRlciIgbXNnaWQ9IjQxOTE4MDU2MTU4Mjk0NzI5NTMiPiJNyZlrdHViIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2d2cm5tdF9sZXR0ZXIiIG1zZ2lkPSI3ODUzMzgyMTkyNjQ5NDA1NTA3Ij4iSMO2a3VtyZl0IE3JmWt0dWJ1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2xlZ2FsIiBtc2dpZD0iNjY5Nzk4Mjk4ODI4MzgyMzE1MCI+IkjDvHF1cWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfanVuaW9yX2xlZ2FsIiBtc2dpZD0iMzcyNzc0Mzk2OTkwMjc1ODk0OCI+Iktpw6dpayBIw7xxdXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGVkZ2VyIiBtc2dpZD0iMjgxODcxNDY0ODk2NjAxMjM2Ij4iUW92bHVxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX3RhYmxvaWQiIG1zZ2lkPSI1Nzc1OTY2NDE2MzMzNTc4MTI3Ij4iUcSxc2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3cml0ZV9mYWlsX3JlYXNvbl9jYW5jZWxsZWQiIG1zZ2lkPSI3MDkxMjU4Mzc4MTIxNjI3NjI0Ij4iTMmZxJ92IGVkaWxkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndyaXRlX2ZhaWxfcmVhc29uX2Nhbm5vdF93cml0ZSIgbXNnaWQ9IjgxMzI1MDU0MTc5MzUzMzc3MjQiPiJLb250ZW50IHlhem1uYSB4yZl0YXPEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9waW4iIG1zZ2lkPSIzMzk1OTUzNDIxMzY4NDc2MTAzIj4iUElOIGRheGlsIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfb2xkX3BpbiIgbXNnaWQ9IjE0NjIyMDYyMjU1MTI5MTA3NTciPiJDYXJpIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9uZXdfcGluIiBtc2dpZD0iNTk1OTYwNjY5MTYxOTk1OTE4NCI+IlllbmkgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2NvbmZpcm1fcGluIiBtc2dpZD0iODUwMTUyMzgyOTYzMzE0NjIzOSI+IlllbmkgUElOXCdpIHTJmXNkaXEgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9jcmVhdGVfcGluIiBtc2dpZD0iODAxNzYwMDAwMDI2MzQ1MDMzNyI+IkTJmXlpxZ9tyZkgbcmZaGR1ZGl5ecmZdGzJmXJpIMO8w6fDvG4gUMSwTiB5YXJhZMSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lcnJvcl9kb2VzbnRfbWF0Y2giIG1zZ2lkPSIyMjI0MjE0MTkwOTA2OTk0NTQ4Ij4iUMSwTiB1ecSfdW4gZ8mZbG1pci4gWWVuaWTJmW4gY8mZaGQgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZXJyb3JfdG9vX3Nob3J0IiBtc2dpZD0iODE3Mzk4Mjc1NjI2NTc3Nzc5MiI+IlDEsE4gw6dveCBxxLFzYWTEsXIuIMaPbiBhesSxIDQgcsmZccmZbSBvbG1hbMSxZMSxci4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InJlc3RyX3Bpbl9jb3VudGRvd24iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0ODM1NjM5OTY5NTAzNzI5ODc0Ij4iWWFubMSxxZ8gUMSwTi4gMSBzYW5pecmZIHNvbnJhIHTJmWtyYXIgc8SxbmF5xLFuLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODAzMDYwNzM0MzIyMzI4NzY1NCI+IllhbmzEscWfIFDEsE4uIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgc29ucmEgdMmZa3JhciBzxLFuYXnEsW4uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0idHJhbnNpZW50X25hdmlnYXRpb25fY29uZmlybWF0aW9uIiBtc2dpZD0iNDkwNzg0NDA0MzYxMTEyMzQyNiI+IlBhbmVsaSBnw7ZzdMmZcm3JmWsgw7zDp8O8biBla3JhbsSxbiBrw7xuY8O8bsO8IHPDvHLDvMWfZMO8csO8biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRyYW5zaWVudF9uYXZpZ2F0aW9uX2NvbmZpcm1hdGlvbl9sb25nIiBtc2dpZD0iODA2MTY4NTkyMDUwODA4NjY5NyI+IlNpc3RlbSBwYW5lbGluaSBnw7ZzdMmZcm3JmWsgw7zDp8O8biBla3JhbsSxbiBrw7xuY8O8bmTJmW4gc8O8csO8xZ9kw7xyw7xuIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWJlL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1iZS9zdHJpbmdzLnhtbAppbmRleCBjY2MyOTg2Li40YmUyNDg3IDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWJlL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtYmUvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDEwIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+ItCj0LLRj9C00LfRltGG0LUgUFVLINC3IDgg0LvRltGH0LHQsNGeINGG0ZYg0LHQvtC70YzRiC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4i0JLQsNGI0LAgU0lNLdC60LDRgNGC0LAg0LfQsNCx0LvQsNC60LDQstCw0L3QsCBQVUst0LrQvtC00LDQvC4g0KPQstGP0LTQt9GW0YbQtSBQVUssINC60LDQsSDRgNCw0LfQsdC70LDQutCw0LLQsNGG0Ywg0LrQsNGA0YLRgy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiLQo9Cy0Y/QtNC30ZbRhtC1IFBVSzIg0LTQu9GPINGA0LDQt9Cx0LvQsNC60LDQstCw0L3QvdGPIFNJTS3QutCw0YDRgtGLLiI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBlbmFibGVQaW4gKDIwOTQxMjAyMDkwNzIwNzk1MCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwaW5wdWtfYXR0ZW1wdHM6b25lICg2NTk2MjQ1Mjg1ODA5NzkwMTQyKSAtLT4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwaW5wdWtfYXR0ZW1wdHM6b3RoZXIgKDc1MzA1OTc4MDgzNTg3NzQ3NDApIC0tPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiLQhtC00Y3QvdGC0YvRhNGW0LrQsNGC0LDRgCDQkNCS0J0iPC9zdHJpbmc+CkBAIC00OTYsNiArNTAwLDEwIEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiLQlNCw0LfQstCw0LvRj9C1INC/0YDRi9C60LvQsNC00LDQvdC90Y/QvCDQstGL0LrQsNGA0YvRgdGC0L7RntCy0LDRhtGMINC90ZbQt9C60LDRntC30YDQvtGe0L3QtdCy0YvRjyDRhNGD0L3QutGG0YvRliBTdXJmYWNlRmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiLRh9GL0YLQsNGG0Ywg0LHRg9GE0LXRgCDQutCw0LTRgNCw0Z4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4i0JTQsNC30LLQsNC70Y/QtSDQv9GA0YvQutC70LDQtNCw0L3QvdGP0Lwg0YHRh9GL0YLQstCw0YbRjCDQt9C80LXRgdGG0ZbQstCwINCx0YPRhNC10YDRgyDQutCw0LTRgNCwLiI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciAoNTM0ODYzNTI3MDY4OTU1Mzg1NykgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIgKDIxMDQ4NjQ5NDEyMDEyMjY2MTYpIC0tPgorICAgIDxza2lwIC8+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+ItC90LDQu9Cw0LTQsCDQtNGL0YHQv9C70LXRj9GeIFdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i0JTQsNC30LLQvtC7adGG0Ywg0L/RgNGL0LrQu9Cw0LTQsNC90L3RjiDQvdCw0LvQsNC00LbQstCw0YbRhtCwIGkg0L/QsNC00LrQu9GO0YfQsNGG0YbQsCDQtNCwINC00YvRgdC/0LvQtdGP0Z4gV2ktRmkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiLQutGW0YDQsNCy0LDQvdC90LUg0LTRi9GB0L/Qu9C10Y/QvGkgV2ktRmkiPC9zdHJpbmc+CkBAIC0xNDYxLDYgKzE0NjksOCBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+ItCS0YvQsdC10YDRi9GG0LUg0L/RgNGL0LrQu9Cw0LTQsNC90L3QtSI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciAoODYyNDYxODM2NTQ4MTEyNjY2OCkgLS0+CisgICAgPHNraXAgLz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+ItCQ0L/Rg9Cx0LvRltC60LDQstCw0YbRjCDQtyDQtNCw0L/QsNC80L7Qs9Cw0LkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4i0JDQtNC/0YDQsNCyadGG0Ywg0Lcg0LTQsNC/0LDQvNC+0LPQsNC5INC/0YDRi9C60LvQsNC00LDQvdC90Y8gPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiLQoNGD0YfQutCwINC00LvRjyDQv9C10YDQsNGB0L7RntCy0LDQvdC90Y8uINCd0LDRhtGW0YHQvdGW0YbQtSDRliDRntGC0YDRi9C80LvRltCy0LDQudGG0LUuIjwvc3RyaW5nPgpAQCAtMTc5OCw0ICsxODA4LDI2IEBACiAgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uICg3MjI3NDE2ODk0OTc5MDQ3NDY3KSAtLT4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24gKDg1NTQ5OTE0ODgwOTY2NjI1MDgpIC0tPgogICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgZG9uZV9sYWJlbCAoMjA5MzcyNjA5OTUwNTg5MjM5OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiAoNjY5ODE5OTE4Njg1OTczNjUxMikgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uICg4NjA2MDEwOTY2ODczNzkxMTkwKSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHNlbGVjdF9ob3VycyAoNjA0MzA3OTUxMTc2NjAwODI0NSkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBzZWxlY3RfbWludXRlcyAoMzk3NDM0NTYxNTkyMDMzNjA4NykgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBkYXlfcGlja2VyX2Rlc2NyaXB0aW9uICg4OTkwODQ3OTI1OTYxMjk3OTY4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHllYXJfcGlja2VyX2Rlc2NyaXB0aW9uICg1NTI0MzMxMjA3NDM2MDUyNDAzKSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHNlbGVjdF9kYXkgKDc3NzQ3NTk2MDQ3MDE3NzMzMzIpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Igc2VsZWN0X3llYXIgKDc5NTIwNTI4NjY5OTQxOTYxNzApIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgaXRlbV9pc19zZWxlY3RlZCAoOTQ5Njg3NDAxNjgyNDc2NjA4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGRlbGV0ZWRfa2V5ICg3NjU5NDc3ODg2NjI1NTY2NTkwKSAtLT4KKyAgICA8c2tpcCAvPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWJnL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1iZy9zdHJpbmdzLnhtbAppbmRleCA5OWJhOTIyLi4xYTM0NWFmIDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWJnL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtYmcvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+ItCS0YrQstC10LTQtdGC0LUgUFVLINC60L7QtCDRgSDQv9C+0L3QtSDQvtGB0LXQvCDRhtC40YTRgNC4LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJTSU0g0LrQsNGA0YLQsNGC0LAg0LLQuCDQtSDQt9Cw0LrQu9GO0YfQtdC90LAg0YEgUFVLLiDQktGK0LLQtdC00LXRgtC1IFBVSyDQutC+0LTQsCwg0LfQsCDQtNCwINGPINC+0YLQutC70Y7Rh9C40YLQtS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiLQktGK0LLQtdC00LXRgtC1IFBVSzIsINC30LAg0LTQsCDQvtGC0LHQu9C+0LrQuNGA0LDRgtC1IFNJTSDQutCw0YDRgtCw0YLQsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiLQndC10YPRgdC/0LXRiNC90L4g4oCTINCw0LrRgtC40LLQuNGA0LDQudGC0LUg0LfQsNC60LvRjtGH0LLQsNC90LXRgtC+INC90LAgU0lNL1JVSU0g0LrQsNGA0YLQsNGC0LAuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4i0J7RgdGC0LDQstCwINCy0LggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INC+0L/QuNGCLCDQv9GA0LXQtNC4IFNJTSDQutCw0YDRgtCw0YLQsCDQtNCwINCx0YrQtNC1INC30LDQutC70Y7Rh9C10L3QsC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiLQntGB0YLQsNCy0LDRgiDQstC4IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDQvtC/0LjRgtCwLCDQv9GA0LXQtNC4IFNJTSDQutCw0YDRgtCw0YLQsCDQtNCwINCx0YrQtNC1INC30LDQutC70Y7Rh9C10L3QsC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+ItCY0LTQtdC90YLQuNGE0LjQutCw0YbQuNGPINC90LAg0LLRhS4g0L7QsdCw0LbQtNCw0L3QuNGPIjwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiLQoNCw0LfRgNC10YjQsNCy0LAg0L3QsCDQv9GA0LjQu9C+0LbQtdC90LjQtdGC0L4g0LTQsCDQuNC30L/QvtC70LfQstCwINGE0YPQvdC60YbQuNC40YLQtSDQvdCwIFN1cmZhY2VGbGluZ2VyINC+0YIg0L3QuNGB0LrQviDQvdC40LLQvi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiLRh9C10YLQtdC90LUg0L3QsCDQutCw0LTRgNC+0LLQuNGPINCx0YPRhNC10YAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4i0KDQsNC30YDQtdGI0LDQstCwINC90LAg0L/RgNC40LvQvtC20LXQvdC40LXRgtC+INC00LAg0YfQtdGC0LUg0YHRitC00YrRgNC20LDQvdC40LXRgtC+INC90LAg0LrQsNC00YDQvtCy0LjRjyDQsdGD0YTQtdGALiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+ItC00L7RgdGC0YrQvyDQtNC+IElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiLQoNCw0LfRgNC10YjQsNCy0LAg0L3QsCDQv9GA0LjQu9C+0LbQtdC90LjQtdGC0L4g0LTQsCDQuNC30L/QvtC70LfQstCwINGE0YPQvdC60YbQuNC40YLQtSDQvdCwIElucHV0RmxpbmdlciDQvtGCINC90LjRgdC60L4g0L3QuNCy0L4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiLQutC+0L3RhNC40LPRg9GA0LjRgNCw0L3QtSDQvdCwINC00LjRgdC/0LvQtdC40YLQtSDQv9GA0LXQtyBXaUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i0KDQsNC30YDQtdGI0LDQstCwINC90LAg0L/RgNC40LvQvtC20LXQvdC40LXRgtC+INC00LAg0LrQvtC90YTQuNCz0YPRgNC40YDQsCDQuCDQtNCwINGB0LUg0YHQstGK0YDQt9Cy0LAg0YEg0LTQuNGB0L/Qu9C10LjRgtC1INC/0YDQtdC3IFdpRmkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiLQutC+0L3RgtGA0L7Qu9C40YDQsNC90LUg0L3QsCDQtNC40YHQv9C70LXQuNGC0LUg0L/RgNC10LcgV2lGaSI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkVudGVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4i0JjQt9Cx0LXRgNC10YLQtSDQv9GA0LjQu9C+0LbQtdC90LjQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4g0L3QtSDQvNC+0LbQsCDQtNCwINGB0LUg0YHRgtCw0YDRgtC40YDQsCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+ItCh0L/QvtC00LXQu9GP0L3QtSDRgdGK0YEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4i0KHQv9C+0LTQtdC70Y/QvdC1INGB0YrRgTogPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiLQn9C70YrQt9Cz0LDRidCwINGB0LUg0LTRgNGK0LbQutCwLiDQlNC+0LrQvtGB0L3QtdGC0LUg0Lgg0LfQsNC00YDRitC20YLQtS4iPC9zdHJpbmc+CkBAIC0xNjUwLDQgKzE2NTgsMTUgQEAKICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+ItCe0L/QuNGC0LDQudGC0LUg0L7RgtC90L7QstC+INC/0L4t0LrRitGB0L3QviI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiLQl9CwINC40LfRhdC+0LQg0L7RgiDRhtGP0Lsg0LXQutGA0LDQvSDQv9GA0LXQutCw0YDQsNC50YLQtSDQv9GA0YrRgdGCINC+0YLQs9C+0YDQtSDQvdCw0LTQvtC70YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiLQk9C+0YLQvtCy0L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiLQmtGA0YrQs9C+0LIg0L/Qu9GK0LfQs9Cw0Ycg0LfQsCDRh9Cw0YHQvtCy0LXRgtC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiLQmtGA0YrQs9C+0LIg0L/Qu9GK0LfQs9Cw0Ycg0LfQsCDQvNC40L3Rg9GC0LjRgtC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+ItCY0LfQsdC40YDQsNC90LUg0L3QsCDRh9Cw0YHQvtCy0LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiLQmNC30LHQuNGA0LDQvdC1INC90LAg0LzQuNC90YPRgtC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiLQnNC10YHQtdGH0L3QsCDRgtCw0LHQu9C40YbQsCDQvdCwINC00L3QuNGC0LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLQodC/0LjRgdGK0Log0YEg0LPQvtC00LjQvdC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2RheSIgbXNnaWQ9Ijc3NzQ3NTk2MDQ3MDE3NzMzMzIiPiLQmNC30LHQuNGA0LDQvdC1INC90LAg0LzQtdGB0LXRhiDQuCDQtNC10L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiLQmNC30LHQuNGA0LDQvdC1INC90LAg0LPQvtC00LjQvdCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+ItCY0LfQsdGA0LDRhdGC0LUgPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4i0JjQt9GC0YDQuNGF0YLQtSA8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1jYS9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtY2Evc3RyaW5ncy54bWwKaW5kZXggOGI0NmU4NC4uYzU5Y2M1ZiAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1jYS9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWNhL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJJbnRyb2R1ZWl4IHVuIFBVSyBjb21wb3N0IGNvbSBhIG3DrW5pbSBkZSA4IG5vbWJyZXMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IkxhIHRhcmdldGEgU0lNIGVzdMOgIGJsb3F1ZWphZGEgcGVsIFBVSy4gRXNjcml2aXUgZWwgY29kaSBQVUsgcGVyIGRlc2Jsb3F1ZWphci1sYS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJFc2NyaXZpdSBlbCBQVUsyIHBlciBkZXNibG9xdWVqYXIgbGEgdGFyZ2V0YSBTSU0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iTm8gw6lzIGNvcnJlY3RlOyBhY3RpdmEgZWwgYmxvcXVlaWcgZGUgUlVJTS9TSU0uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iRXQgcXVlZGEgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGludGVudDsgc2kgbm8gbFwnZW5jZXJ0ZXMsIGxhIFNJTSBlcyBibG9xdWVqYXLDoC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJFdCBxdWVkZW4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGludGVudHM7IHNpIG5vIGxcJ2VuY2VydGVzLCBsYSBTSU0gZXMgYmxvcXVlamFyw6AuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiJJZGVudGlmaWNhY2nDsyBkZSB0cnVjYWRhIGVudHJhbnQiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IlBlcm1ldCBxdWUgbFwnYXBsaWNhY2nDsyB1dGlsaXR6aSBmdW5jaW9ucyBTdXJmYWNlRmxpbmdlciBkZSBiYWl4IG5pdmVsbC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJsbGVnaXIgbGEgbWVtw7JyaWEgaW50ZXJtw6hkaWEgZGUgbWFyY3MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4iUGVybWV0IHF1ZSBsXCdhcGxpY2FjacOzIGxsZWdlaXhpIGVsIGNvbnRpbmd1dCBkZSBsYSBtZW3DsnJpYSBpbnRlcm3DqGRpYSBkZSBtYXJjcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJhY2NlZGVpeCBhIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJQZXJtZXQgcXVlIGxcJ2FwbGljYWNpw7MgdXRpbGl0emkgZnVuY2lvbnMgZGUgYmFpeCBuaXZlbGwgZFwnSW5wdXRGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4iY29uZmlndXJhY2nDsyBkZSBsZXMgcGFudGFsbGVzIFdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4iUGVybWV0IGEgbFwnYXBsaWNhY2nDsyBjb25maWd1cmFyLXNlIGkgY29ubmVjdGFyLXNlIGEgbGVzIHBhbnRhbGxlcyBXaS1GaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+ImNvbnRyb2wgZGUgbGVzIHBhbnRhbGxlcyBXaS1GaSI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJNYWoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJSZXRvcm4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiJTZWxlY2Npb25hIHVuYSBhcGxpY2FjacOzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4iTm8gc1wnaGEgcG9ndXQgaW5pY2lhciA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IkNvbXBhcnRlaXggYW1iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IkNvbXBhcnRlaXggYW1iIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iTGxpc2NhIGVsIGRpdC4gTWFudMOpbiBwcmVtdXQuIjwvc3RyaW5nPgpAQCAtMTQ4NSw3ICsxNDkzLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9IndpcmVsZXNzX2Rpc3BsYXlfcm91dGVfZGVzY3JpcHRpb24iIG1zZ2lkPSI5MDcwMzQ2NDI1MDIzOTc5NjUxIj4iUGFudGFsbGEgc2Vuc2UgZmlsIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfY2hvb3Nlcl9ncm91cGluZ19kb25lIiBtc2dpZD0iNzk2NjQzODMwNzcyMzMxNzE2OSI+IkZldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX2J1dHRvbl9jb250ZW50X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTc1ODU1MzU2NzA2NTE0NTI3NiI+IlNvcnRpZGEgZGUgY29udGluZ3V0IG11bHRpbcOoZGlhIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX3NjYW5uaW5nIiBtc2dpZD0iNzI3OTkwODc2MTc1ODI5Mzc4MyI+IlNcJ2VzdMOgIGV4cGxvcmFudC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19zY2FubmluZyIgbXNnaWQ9IjcyNzk5MDg3NjE3NTgyOTM3ODMiPiJTXCdlc3TDoCBjZXJjYW504oCmIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2Nvbm5lY3RpbmciIG1zZ2lkPSI2NDIyNTcxNzE2MDA3ODI1NDQwIj4iU1wnZXN0w6AgY29ubmVjdGFudC4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19hdmFpbGFibGUiIG1zZ2lkPSI2OTgzMjU4MDY3MTk0NjQ5MzkxIj4iRGlzcG9uaWJsZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19ub3RfYXZhaWxhYmxlIiBtc2dpZD0iNjczOTg5OTk2MjY4MTg4NjQwMSI+Ik5vIGRpc3BvbmlibGUiPC9zdHJpbmc+CkBAIC0xNjUwLDQgKzE2NTgsMTUgQEAKICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+IlRvcm5hLWhvIGEgcHJvdmFyIG3DqXMgdGFyZCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJGZXMgbGxpc2NhciBlbCBkaXQgY2FwIGF2YWxsIHBlciBzb3J0aXIgZGUgbGEgcGFudGFsbGEgY29tcGxldGEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiJGZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiJDb250cm9sIGNpcmN1bGFyIGRlIGxlcyBob3JlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4iQ29udHJvbCBjaXJjdWxhciBkZWxzIG1pbnV0cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiJTZWxlY2Npb25hIGxlcyBob3JlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IlNlbGVjY2lvbmEgZWxzIG1pbnV0cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4iR3JhZWxsYSBtZW5zdWFsIGRlIGRpZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiJMbGlzdGEgYW51YWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IlNlbGVjY2lvbmEgdW4gbWVzIGkgdW4gZGlhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4iU2VsZWNjaW9uYSB1biBhbnkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+IHNlbGVjY2lvbmF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4gc3VwcmltaXQiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtY3Mvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWNzL3N0cmluZ3MueG1sCmluZGV4IDczY2EwMmIuLmNkNDJhODIgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtY3Mvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1jcy9zdHJpbmdzLnhtbApAQCAtNTAsNiArNTAsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4iWmFkZWp0ZSBvc21pbcOtc3Ruw70gbmVibyBkZWzFocOtIGvDs2QgUFVLLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJTSU0ga2FydGEgamUgYmxva292w6FuYSBwb21vY8OtIGvDs2R1IFBVSy4gT2RibG9rdWpldGUgamkgemFkw6Fuw61tIGvDs2R1IFBVSy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJDaGNldGUtbGkgb2RibG9rb3ZhdCBTSU0ga2FydHUsIHphZGVqdGUga8OzZCBQVUsyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+Ik9wZXJhY2UgbmVieWxhIMO6c3DEm8WhbsOhLCBwb3ZvbHRlIHrDoW1layBTSU0vUlVJTSBrYXJ0eS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiJNw6F0ZSBqZcWhdMSbIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwb2t1cy4gUG90w6kgYnVkZSBTSU0ga2FydGEgdXphbcSNZW5hLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+IlBvxI1ldCB6YsO9dmFqw61jw61jaCBwb2t1c8WvLCBwbyBqZWppY2jFviB2ecSNZXJww6Fuw60gYnVkZSBTSU0ga2FydGEgdXphbcSNZW5hOiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiJQxZnDrWNob3rDrSBpZGVudGlmaWthY2Ugdm9sYWrDrWPDrWhvIjwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiJVbW/FvsWIdWplIGFwbGlrYWNpIHBvdcW+w612YXQgbsOtemtvw7pyb3bFiG92w6kgZnVua2NlIFN1cmZhY2VGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+IsSNdGVuw60gdnlyb3Zuw6F2YWPDrSBwYW3Em3RpIHNuw61ta8WvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IlVtb8W+xYh1amUgYXBsaWthY2kgxI3DrXN0IG9ic2FoIHZ5cm92bsOhdmFjw60gcGFtxJt0aSBzbsOtbWvFry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJwxZnDrXN0dXAgayBmdW5rY2kgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IlVtb8W+xYh1amUgYXBsaWthY2kgcG91xb7DrXZhdCBuw616a2/DunJvdsWIb3bDqSBmdW5rY2UgSW5wdXRGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4ia29uZmlndXJvdmF0IGRpc3BsZWplIHDFmWVzIFdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4iUG92b2x1amUgYXBsaWthY2kgcMWZaXBvaml0IGEga29uZmlndXJvdmF0IGRpc3BsZWplIHDFmWVzIFdpLUZpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4ib3Zsw6FkYXQgZGlzcGxlamUgcMWZZXMgV2ktRmkiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IlZ5YnJhdCBhcGxpa2FjaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+IkFwbGlrYWNpIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4gbmVsemUgc3B1c3RpdC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiJTZMOtbGV0IHMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4iU2TDrWxldCBzIGFwbGlrYWPDrSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+IlBvc3V2bsOtay4gRG90a27Em3RlIHNlIGEgcG9kcsW+dGUuIjwvc3RyaW5nPgpAQCAtMTY1MCw0ICsxNjU4LDE1IEBACiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJaa3VzdGUgdG8gem5vdnUgcG96ZMSbamkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4iUmXFvmltIGNlbMOpIG9icmF6b3ZreSB1a29uxI3DrXRlIHDFmWVqZXTDrW0gZG9sxa8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiJIb3Rvdm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiJLcnVob3bDvSBwb3N1dm7DrWsgaG9kaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+IktydWhvdsO9IHBvc3V2bsOtayBtaW51dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiJadm9sdGUgaG9kaW55Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4iWnZvbHRlIG1pbnV0eSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4iRG55IHVzcG/FmcOhZGFuw6kgcG8gbcSbc8OtY8OtY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiJTZXpuYW0gcm9rxa8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IlZ5YmVydGUgbcSbc8OtYyBhIGRlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+IlZ5YmVydGUgcm9rIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+IlZ5YnLDoW5hIHBvbG/FvmthIDx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+IsSMw61zbGljZSA8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiBieWxhIHNtYXrDoW5hIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWRhL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1kYS9zdHJpbmdzLnhtbAppbmRleCAwY2Y1YmM1Li5lYTcxNThhIDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWRhL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZGEvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IkFuZ2l2IGVuIFBVSy1rb2RlIHDDpSA4IGVsbGVyIGZsZXJlIGNpZnJlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJEaXQgU0lNLWtvcnQgZXIgbMOlc3QgbWVkIFBVSy1rb2Rlbi4gSW5kdGFzdCBQVUsta29kZW4gZm9yIGF0IGzDpXNlIGRlbiBvcC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJJbmR0YXN0IFBVSzIta29kZW4gZm9yIGF0IGzDpXNlIG9wIGZvciBTSU0ta29ydGV0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+Ik1pc2x5a2tlZGVzLiBBa3RpdsOpciBTSU0tL1JVSU0tbMOlcy4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiJEdSBoYXIgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGZvcnPDuGcgdGlsYmFnZSwgZsO4ciBTSU0ta29ydGV0IGJsaXZlciBsw6VzdC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJEdSBoYXIgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGZvcnPDuGcgdGlsYmFnZSwgZsO4ciBTSU0ta29ydGV0IGJsaXZlciBsw6VzdC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUktbnVtbWVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiJJbmRnw6VlbmRlIG9wa2FsZHMtaWQiPC9zdHJpbmc+CkBAIC00NDAsNyArNDQ1LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENvbnRhY3RzIiBtc2dpZD0iODM0ODQ4MTEzMTg5OTg4NjEzMSI+ImzDpnNlIGRpbmUga29udGFrdHBlcnNvbmVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENvbnRhY3RzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1Mjk0ODY2ODU2OTQxMTQ5NjM5Ij4iVGlsbGFkZXIsIGF0IGFwcGVuIGthbiBsw6ZzZSBkYXRhIG9tIGRlIGtvbnRha3RwZXJzb25lciwgZGVyIGVyIGdlbXQgcMOlIGRpbiB0YWJsZXQsIGYuZWtzLiBodm9yIG9mdGUgZHUgaGFyIHJpbmdldCB0aWwsIHNlbmR0IGUtbWFpbCB0aWwgZWxsZXIgcMOlIGFuZGVuIG3DpWRlIGtvbW11bmlrZXJldCBtZWQgYmVzdGVtdGUgcGVyc29uZXIuIE1lZCBkZW5uZSB0aWxsYWRlbHNlIGthbiBhcHBzIGdlbW1lIGRpbmUga29udGFrdGRhdGEsIG9nIHNrYWRlbGlnZSBhcHBzIGthbiBkZWxlIGtvbnRha3RkYXRhIHVkZW4gZGluIHZpZGVuLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDb250YWN0cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0NDA2NTQxNTI0NTczMDA2NjIiPiJUaWxsYWRlciwgYXQgYXBwZW4ga2FuIGzDpnNlIGRhdGEgb20gZGUga29udGFrdHBlcnNvbmVyLCBkZXIgZXIgZ2VtdCBww6UgZGluIHRlbGVmb24sIGYuZWtzLiBodm9yIG9mdGUgZHUgaGFyIHJpbmdldCB0aWwsIHNlbmR0IGUtbWFpbCB0aWwgZWxsZXIgcMOlIGFuZGVuIG3DpWRlIGtvbW11bmlrZXJldCBtZWQgYmVzdGVtdGUgcGVyc29uZXIuIE1lZCBkZW5uZSB0aWxsYWRlbHNlIGthbiBhcHBzIGdlbW1lIGRpbmUga29udGFrdGRhdGEsIG9nIHNrYWRlbGlnZSBhcHBzIGthbiBkZWxlIGtvbnRha3RkYXRhIHVkZW4gZGluIHZpZGVuLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVDb250YWN0cyIgbXNnaWQ9IjUxMDc0OTIwODY0MTY3OTM1NDQiPiLDpm5kcmUgZGluZSBrb250YWt0cGVyc29uZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ29udGFjdHMiIG1zZ2lkPSI1MTA3NDkyMDg2NDE2NzkzNTQ0Ij4iYXQgw6ZuZHJlIGRpbmUga29udGFrdHBlcnNvbmVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDb250YWN0cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODk3MjQzOTMyNTIxOTUzNjAyIj4iVGlsbGFkZXIsIGF0IGFwcGVuIGthbiDDpm5kcmUgZGF0YSBvbSBkZSBrb250YWt0cGVyc29uZXIsIGRlciBlciBnZW10IHDDpSBkaW4gdGFibGV0LCBmLmVrcy4gaHZvciBvZnRlIGR1IGhhciByaW5nZXQgdGlsIGRlbSwgc2VuZHQgZGVtIGVuIGUtbWFpbCBlbGxlciBww6UgYW5kZW4gbcOlZGUga29tbXVuaWtlcmV0IG1lZCBiZXN0ZW10ZSBrb250YWt0cGVyc29uZXIuIE1lZCBkZW5uZSB0aWxsYWRlbHNlIGthbiBhcHBzIHNsZXR0ZSBrb250YWt0b3BseXNuaW5nZXIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDb250YWN0cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU4OTg2OTIyNDYyNTE2MzU1OCI+IlRpbGxhZGVyLCBhdCBhcHBlbiBrYW4gw6ZuZHJlIGRhdGEgb20gZGUga29udGFrdHBlcnNvbmVyLCBkZXIgZXIgZ2VtdCBww6UgZGluIHRlbGVmb24sIGYuZWtzLiBodm9yIG9mdGUgZHUgaGFyIHJpbmdldCB0aWwgZGVtLCBzZW5kdCBlbiBlLW1haWwgdGlsIGRlbSBlbGxlciBww6UgYW5kZW4gbcOlZGUga29tbXVuaWtlcmV0IG1lZCBiZXN0ZW10ZSBrb250YWt0cGVyc29uZXIuIE1lZCBkZW5uZSB0aWxsYWRlbHNlIGthbiBhcHBzIHNsZXR0ZSBrb250YWt0b3BseXNuaW5nZXIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2FsbExvZyIgbXNnaWQ9IjM0NzgxMzMxODQ2MjQxMDI3MzkiPiJsw6ZzIG9wa2FsZHNsaXN0ZSI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4iVGlsbGFkZXIsIGF0IGFwcGVuIGthbiBicnVnZSBTdXJmYWNlRmxpbmdlci1mdW5rdGlvbmVyIHDDpSBsYXZ0IG5pdmVhdS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJsw6ZzIHJhbW1lYnVmZmVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IlRpbGxhZGVyLCBhdCBhcHBlbiBrYW4gbMOmc2UgaW5kaG9sZGV0IGZyYSByYW1tZWJ1ZmZlcmVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+ImbDpSBhZGdhbmcgdGlsIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJHaXZlciBhcHBlbiB0aWxsYWRlbHNlIHRpbCBhdCBicnVnZSBTdXJmYWNlRmxpbmdlci1mdW5rdGlvbmVyIHDDpSBsYXZ0IG5pdmVhdS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+ImtvbmZpZ3VyZXIgV2ktRmktc2vDpnJtZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IlRpbGxhZGVyLCBhdCBhcHBlbiBrb25maWd1cmVyZXIgb2cgb3ByZXR0ZXIgZm9yYmluZGVsc2UgdGlsIFdpLUZpLXNrw6ZybWUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiJrb250cm9sbMOpciBXaS1GaS1za8Omcm1lIjwvc3RyaW5nPgpAQCAtMTExNCw3ICsxMTIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImxvYWRpbmciIG1zZ2lkPSI3OTMzNjgxMjYwMjk2MDIxMTgwIj4iSW5kbMOmc2Vy4oCmIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY2FwaXRhbF9vbiIgbXNnaWQ9IjE1NDQ2ODI3NTU1MTQ0OTQyOTgiPiJUSUwiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjYXBpdGFsX29mZiIgbXNnaWQ9IjY4MTU4NzAzODY5NzI4MDU4MzIiPiJGUkEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ3aGljaEFwcGxpY2F0aW9uIiBtc2dpZD0iNDUzMzE4NTk0NzA2NDc3MzM4NiI+IkZ1bGRmw7hyIGhhbmRsaW5nIHZlZCBoasOmbHAgYWYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aGljaEFwcGxpY2F0aW9uIiBtc2dpZD0iNDUzMzE4NTk0NzA2NDc3MzM4NiI+IkJydWciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ3aGljaEhvbWVBcHBsaWNhdGlvbiIgbXNnaWQ9IjQ2MTY0MjAxNzI3MjczMjY3ODIiPiJWw6ZsZyBlbiBzdGFydHNpZGVhcHAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbHdheXNVc2UiIG1zZ2lkPSI0NTgzMDE4MzY4MDAwNjEwNDM4Ij4iQnJ1ZyBzb20gc3RhbmRhcmQgdGlsIGRlbm5lIGhhbmRsaW5nLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNsZWFyRGVmYXVsdEhpbnRNc2ciIG1zZ2lkPSIzMjUyNTg0Njg5NTEyMDc3MjU3Ij4iUnlkIHN0YW5kYXJkIGkgU3lzdGVtaW5kc3RpbGxpbmdlciAmZ3Q7IEFwcHMgJmd0OyBEb3dubG9hZGV0LiI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkFuZ2l2Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4iVsOmbGcgZW4gYXBwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiBrdW5uZSBpa2tlIHN0YXJ0ZXMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiJEZWwgbWVkIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IkRlbCBtZWQgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJHbGlkZW5kZSBow6VuZHRhZy4gVHJ5ayBvZyBob2xkIG5lZGUuIjwvc3RyaW5nPgpAQCAtMTY1MCw0ICsxNjU4LDE1IEBACiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJQcsO4diBpZ2VuIHNlbmVyZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJTdHJ5ZyBuZWQgZnJhIHRvcHBlbiBmb3IgYXQgYWZzbHV0dGUgZnVsZCBza8Omcm0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IlVkZsO4ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IkNpcmt1bMOmciB0aW1ldsOmbGdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4iQ2lya3Vsw6ZyIG1pbnV0dsOmbGdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiJWw6ZsZyB0aW1lciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IlbDpmxnIG1pbnV0dGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiJNw6VuZWRzZ2l0dGVyIG1lZCBkYWdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4iTGlzdGUgb3ZlciDDpXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IlbDpmxnIG3DpW5lZCBvZyBkYWciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiJWw6ZsZyDDpXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+IGVyIHZhbGd0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4gZXIgc2xldHRldCI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1kZS9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZGUvc3RyaW5ncy54bWwKaW5kZXggZjc5OWJlNC4uYzA5YjgyMCAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1kZS9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWRlL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJHZWJlbiBTaWUgZWluZSBtaW5kZXN0ZW5zIGFjaHRzdGVsbGlnZSBQVUsgZWluLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJJaHJlIFNJTS1LYXJ0ZSBpc3QgbWl0IGVpbmVtIFBVSyBnZXNwZXJydC4gR2ViZW4gU2llIHp1bSBFbnRzcGVycmVuIGRlbiBQVUstQ29kZSBlaW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iR2ViZW4gU2llIHp1bSBFbnRzcGVycmVuIGRlciBTSU0tS2FydGUgZGVuIFBVSzIgZWluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+IkZlaGxlci4gU0lNLS9SVUlNLVNwZXJyZSBha3RpdmllcmVuLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IlNpZSBoYWJlbiBub2NoIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBWZXJzdWNoLCBiZXZvciBJaHJlIFNJTS1LYXJ0ZSBnZXNwZXJydCB3aXJkLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+IlNpZSBoYWJlbiBub2NoIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBWZXJzdWNoZSwgYmV2b3IgSWhyZSBTSU0tS2FydGUgZ2VzcGVycnQgd2lyZC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IkFucnVmZXItSUQgZsO8ciBlaW5nZWhlbmRlbiBBbnJ1ZiI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4iRXJtw7ZnbGljaHQgZGVyIEFwcCwgZGllIHN5c3RlbW5haGVuIFN1cmZhY2VGbGluZ2VyLUZ1bmt0aW9uZW4genUgdmVyd2VuZGVuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4iRnJhbWUtUHVmZmVyIGxlc2VuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IkVybcO2Z2xpY2h0IGRlciBBcHAsIGRlbiBJbmhhbHQgZGVzIEZyYW1lLVB1ZmZlcnMgenUgbGVzZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJBdWYgSW5wdXRGbGluZ2VyIHp1Z3JlaWZlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJFcm3DtmdsaWNodCBkZXIgQXBwLCBkaWUgc3lzdGVtbmFoZW4gSW5wdXRGbGluZ2VyLUZ1bmt0aW9uZW4genUgdmVyd2VuZGVuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJXTEFOLUFuemVpZ2VuIGtvbmZpZ3VyaWVyZW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJFcmxhdWJ0IGRlciBBcHAsIFdMQU4tQW56ZWlnZW4genUga29uZmlndXJpZXJlbiB1bmQgZWluZSBWZXJiaW5kdW5nIHp1IGRpZXNlbiBoZXJ6dXN0ZWxsZW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+IldMQU4tQW56ZWlnZW4gc3RldWVybiI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJVbXNjaGFsdHRhc3RlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRWluZ2FiZXRhc3RlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4iQXBwIGF1c3fDpGhsZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+IGtvbm50ZSBuaWNodCBnZXN0YXJ0ZXQgd2VyZGVuLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IlRlaWxlbiBtaXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4iTWl0IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4gdGVpbGVuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+IlNjaGllYmVyZWdsZXI6IEJlcsO8aHJlbiB1bmQgaGFsdGVuIjwvc3RyaW5nPgpAQCAtMTY1MCw0ICsxNjU4LDE1IEBACiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJTcMOkdGVyIGVybmV1dCB2ZXJzdWNoZW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4iWnVtIFNjaGxpZcOfZW4gZGVzIFZvbGxiaWxkcyB2b24gb2JlbiBuYWNoIHVudGVuIHdpc2NoZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IkZlcnRpZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IktyZWlzZsO2cm1pZ2VyIFNjaGllYmVyZWdsZXIgZsO8ciBTdHVuZGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiJLcmVpc2bDtnJtaWdlciBTY2hpZWJlcmVnbGVyIGbDvHIgTWludXRlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiJTdHVuZGVuIGF1c3fDpGhsZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiJNaW51dGVuIGF1c3fDpGhsZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+Ik1vbmF0c3Jhc3RlciBtaXQgZWluemVsbmVuIFRhZ2VuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4iSmFocmVzbGlzdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+Ik1vbmF0IHVuZCBUYWcgYXVzd8OkaGxlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+IkphaHIgYXVzd8OkaGxlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiI8eGxpZmY6ZyBpZD0iSVRFTSI+JTEkczwveGxpZmY6Zz4gYXVzZ2V3w6RobHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiI8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiBnZWzDtnNjaHQiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZWwvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWVsL3N0cmluZ3MueG1sCmluZGV4IDYwNWQ4NDUuLjgzZTI3YTcgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZWwvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1lbC9zdHJpbmdzLnhtbApAQCAtNTAsNiArNTAsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4izqDOu863zrrPhM+Bzr/Ou86/zrPOrs+Dz4TOtSDOrc69zrHOvSDOus+JzrTOuc66z4wgUFVLIM68zrUgOCDOsc+BzrnOuM68zr/Pjc+CIM6uIM+AzrXPgc65z4PPg8+Mz4TOtc+Bzr/Phc+CLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiLOlyDOus6sz4HPhM6xIFNJTSDOrc+HzrXOuSDOus67zrXOuc60z4nOuM61zq8gzrzOtSDOus+JzrTOuc66z4wgUFVLLiDOoM67zrfOus+Ez4HOv867zr/Os86uz4PPhM61IM+Ezr/OvSDOus+JzrTOuc66z4wgUFVLIM6zzrnOsSDOvc6xIM+EzrfOvSDOvs61zrrOu861zrnOtM+Oz4POtc+EzrUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4izqDOu863zrrPhM+Bzr/Ou86/zrPOrs+Dz4TOtSDPhM6/zr0gzrrPic60zrnOus+MIFBVSzIgzrPOuc6xIM+EzrfOvSDOus6xz4TOrM+BzrPOt8+DzrcgzrHPgM6/zrrOu861zrnPg868zr/PjSDPhM63z4IgzrrOrM+Bz4TOsc+CIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiLOkc69zrXPgM65z4TPhc+Hzq7PgiDPgM+Bzr/Pg8+AzqzOuM61zrnOsS4gzpXOvc61z4HOs86/z4DOv865zq7Pg8+EzrUgz4TOvyDOms67zrXOr860z4nOvM6xIFNJTS9SVUlNLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+Is6Rz4DOv868zq3Ovc61zrkgzqzOu867zrcgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IM+Az4HOv8+Dz4DOrM64zrXOuc6xIM+Az4HOv8+Ezr/PjSDOtyDOus6sz4HPhM6xIFNJTSDOus67zrXOuc60z4nOuM61zq8uIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4izpHPgM6/zrzOrc69zr/Phc69IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDPgM+Bzr/Pg8+AzqzOuM61zrnOtc+CIM+Az4HOv8+Ezr/PjSDOtyDOus6sz4HPhM6xIFNJTSDOus67zrXOuc60z4nOuM61zq8uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiLOlc65z4POtc+Bz4fPjM68zrXOvc63IM6xzr3Osc6zzr3Pjs+BzrnPg863IM66zrvOrs+DzrfPgiI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4izpXPgM65z4TPgc6tz4DOtc65IM+DzrUgzrzOuc6xIM61z4bOsc+BzrzOv86zzq4gzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc61zq8gzrvOtc65z4TOv8+Fz4HOs86vzrXPgiBTdXJmYWNlRmxpbmdlciDPh86xzrzOt867zr/PjSDOtc+AzrnPgM6tzrTOv8+FLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+Is6xzr3OrM6zzr3Pic+Dzrcgz4DPgc6/z4PPic+BzrnOvc6uz4IgzrzOvc6uzrzOt8+CIM+AzrvOsc65z4POr86/z4UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4izpXPgM65z4TPgc6tz4DOtc65IM+Dz4TOt869IM61z4bOsc+BzrzOv86zzq4gz4TOt869IM6xzr3OrM6zzr3Pic+Dzrcgz4TOv8+FIM+AzrXPgc65zrXPh86/zrzOrc69zr/PhSDPhM63z4Igz4DPgc6/z4PPic+BzrnOvc6uz4IgzrzOvc6uzrzOt8+CIM+AzrvOsc65z4POr86/z4UuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iz4DPgc+Mz4POss6xz4POtyDPg8+Ezr8gSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+Is6Vz4DOuc+Ez4HOrc+AzrXOuSDPg861IM68zrnOsSDOtc+GzrHPgc68zr/Os86uIM69zrEgz4fPgc63z4POuc68zr/PgM6/zrnOtc6vIM67zrXOuc+Ezr/Phc+BzrPOr861z4IgSW5wdXRGbGluZ2VyIM+HzrHOvM63zrvOv8+NIM61z4DOuc+Azq3OtM6/z4UuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiLOtM65zrHOvM+Mz4HPhs+Jz4POtyDOv864zr/Ovc+Ozr0gV2lmaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+Is6Vz4DOuc+Ez4HOrc+AzrXOuSDPhM63IM60zrnOsc68z4zPgc+Gz4nPg863IM+EzrfPgiDOtc+GzrHPgc68zr/Os86uz4IgzrrOsc65IM+Ezrcgz4PPjc69zrTOtc+DzrfPgiDPg861IM6/zrjPjM69zrXPgiBXaWZpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4izq3Ou861zrPPh86/z4Igzr/OuM6/zr3Pjs69IFdpZmkiPC9zdHJpbmc+CkBAIC02NDIsNyArNjQ5LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIxODgxNTY0NjI5MzQ5Nzc5NDAiPiLOsc69zqzOs869z4nPg863IM+Ezr/PhSDPgM61z4HOuc61z4fOv868zq3Ovc6/z4Ugz4TOt8+CIM66zqzPgc+EzrHPgiBTRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzQ0Njk4ODcxMjU5ODM4NjA3OSI+Is6Vz4DOuc+Ez4HOrc+AzrXOuSDPg8+EzrfOvSDOtc+GzrHPgc68zr/Os86uIM+EzrfOvSDOsc69zqzOs869z4nPg863IM+Ezr/PhSDPgM61z4HOuc61z4fOv868zq3Ovc6/z4Ugz4TOv8+FIM6xz4DOv864zrfOus61z4XPhM65zrrOv8+NIM+DzrHPgiDPh8+Oz4HOv8+FIFVTQi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjYwNzM2MjQ3MzY1NDk3NTQxMSI+Is6Vz4DOuc+Ez4HOrc+AzrXOuSDPg8+EzrfOvSDOtc+GzrHPgc68zr/Os86uIM+EzrfOvSDOsc69zqzOs869z4nPg863IM+Ezr/PhSDPgM61z4HOuc61z4fOv868zq3Ovc6/z4Ugz4TOt8+CIM66zqzPgc+EzrHPgiBTRC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijg0ODU5NzkwNjIyNTQ2NjY3NDgiPiLPhM+Bzr/PgC4gzq4gzrTOuc6xzrPPgS4gz4TOv8+FIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iODQ4NTk3OTA2MjI1NDY2Njc0OCI+Is+Ez4HOv8+Azr/PgM6/zq/Ot8+Dzrcgzq4gzrTOuc6xzrPPgc6xz4bOriDPhM6/z4UgVVNCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg4MDU2OTM2MzAwNTA0NTg3NjMiPiLPhM+Bzr/PgM6/z4DOv86vzrfPg863IM6uIM60zrnOsc6zz4HOsc+Gzq4gz4TPic69IM+AzrXPgc65zrXPh86/zrzOrc69z4nOvSDPhM63z4IgzrrOrM+Bz4TOsc+CIFNEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE3NTQwNjI5OTQ0NTcxMDg4OCI+Is6Vz4DOuc+Ez4HOrc+AzrXOuSDPg8+EzrfOvSDOtc+GzrHPgc68zr/Os86uIM+EzrfOvSDOtc6zzrPPgc6xz4bOriDPg8+Ezr/OvSDOsc+Azr/OuM63zrrOtc+Fz4TOuc66z4wgz4fPjs+Bzr8gVVNCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDMzNzQxNzc5MDkzNjYzMjA5MCI+Is6Vz4DOuc+Ez4HOrc+AzrXOuSDPg8+EzrfOvSDOtc+GzrHPgc68zr/Os86uIM+EzrfOvSDOtc6zzrPPgc6xz4bOriDPg8+EzrfOvSDOus6sz4HPhM6xIFNELiI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkVudGVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4izpXPgM65zrvOrc6+z4TOtSDOus6sz4DOv865zrEgzrXPhs6xz4HOvM6/zrPOriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+Is6UzrXOvSDOrs+EzrHOvSDOtM+Fzr3Osc+Ezq4gzrcgzrXOus66zq/Ovc63z4POtyDPhM6/z4UgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+Is6azr/Ouc69zq4gz4fPgc6uz4POtyDOvM61Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+Is6azr/Ouc69zq4gz4fPgc6uz4POtyDOvM61IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4izqPPhM6/zrnPh861zq/OvyDPh861zrnPgc65z4POvM6/z40gzrzOtSDOtM+Fzr3Osc+Ez4zPhM63z4TOsSDOv867zq/Pg864zrfPg863z4IuIM6RzrPOs86vzr7PhM61IM66zrHOuSDPgM6xz4TOrs+Dz4TOtSDPgM6xz4HOsc+EzrXPhM6xzrzOrc69zrEuIjwvc3RyaW5nPgpAQCAtMTY1MCw0ICsxNjU4LDE1IEBACiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiLOlM6/zrrOuc68zqzPg8+EzrUgzr7Osc69zqwgzrHPgc6zz4zPhM61z4HOsSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiLOo86sz4HPic+Dzrcgz4DPgc6/z4Igz4TOsSDOus6sz4TPiSDOs865zrEgzq3Ovs6/zrTOvyDOsc+Az4wgz4DOu86uz4HOtyDOv864z4zOvc63Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiLOpM6tzrvOv8+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4izprPhc66zrvOuc66z4wgz4HPhc64zrzOuc+Dz4TOuc66z4wgz4nPgc+Ozr0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+Is6az4XOus67zrnOus+MIM+Bz4XOuM68zrnPg8+EzrnOus+MIM67zrXPgM+Ez47OvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiLOlc+AzrnOu86/zrPOriDPic+Bz47OvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+Is6Vz4DOuc67zr/Os86uIM67zrXPgM+Ez47OvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4izqDOu86tzrPOvM6xIM63zrzOtc+Bz47OvSDPhM6/z4UgzrzOrs69zrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLOm86vz4PPhM6xIM61z4TPjs69Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2RheSIgbXNnaWQ9Ijc3NzQ3NTk2MDQ3MDE3NzMzMzIiPiLOlc+AzrnOu86/zrPOriDOvM6uzr3OsSDOus6xzrkgzrfOvM6tz4HOsc+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4izpXPgM65zrvOv86zzq4gzq3PhM6/z4XPgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiLOlc+AzrnOu86tz4fPhM63zrrOtSDPhM6/IM+Dz4TOv865z4fOtc6vzr8gPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4gzrTOuc6xzrPPgc6sz4bOt866zrUiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZW4tckdCL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1lbi1yR0Ivc3RyaW5ncy54bWwKaW5kZXggY2E4NTA5YS4uNmU5YWY1OSAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1lbi1yR0Ivc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1lbi1yR0Ivc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IlR5cGUgYSBQVUsgdGhhdCBpcyA4IG51bWJlcnMgb3IgbG9uZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJZb3VyIFNJTSBjYXJkIGlzIFBVSy1sb2NrZWQuIFR5cGUgdGhlIFBVSyBjb2RlIHRvIHVubG9jayBpdC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJUeXBlIFBVSzIgdG8gdW5ibG9jayBTSU0gY2FyZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiJVbnN1Y2Nlc3NmdWwsIGVuYWJsZSBTSU0vUlVJTSBMb2NrLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IllvdSBoYXZlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiByZW1haW5pbmcgYXR0ZW1wdC9zIGJlZm9yZSBTSU0gaXMgbG9ja2VkLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+IllvdSBoYXZlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiByZW1haW5pbmcgYXR0ZW1wdC9zIGJlZm9yZSBTSU0gaXMgbG9ja2VkLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iSW5jb21pbmcgQ2FsbGVyIElEIjwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiJBbGxvd3MgdGhlIGFwcCB0byB1c2UgU3VyZmFjZUZsaW5nZXIgbG93LWxldmVsIGZlYXR1cmVzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+InJlYWQgZnJhbWUgYnVmZmVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IkFsbG93cyB0aGUgYXBwIHRvIHJlYWQgdGhlIGNvbnRlbnQgb2YgdGhlIGZyYW1lIGJ1ZmZlci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJhY2Nlc3MgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IkFsbG93cyB0aGUgYXBwIHRvIHVzZSBJbnB1dEZsaW5nZXIgbG93LWxldmVsIGZlYXR1cmVzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4iY29uZmlndXJlIFdpLUZpIGRpc3BsYXlzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4iQWxsb3dzIHRoZSBhcHAgdG8gY29uZmlndXJlIGFuZCBjb25uZWN0IHRvIFdpLUZpIGRpc3BsYXlzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4iY29udHJvbCBXaS1GaSBkaXNwbGF5cyI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkVudGVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4iQ2hvb3NlIGFuIGFwcCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+IkNvdWxkblwndCBsYXVuY2ggPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IlNoYXJlIHdpdGgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4iU2hhcmUgd2l0aCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+IlNsaWRpbmcgaGFuZGxlLiBUb3VjaCAmYW1wOyBob2xkLiI8L3N0cmluZz4KQEAgLTE2NTAsNCArMTY1OCwxNSBAQAogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4iVHJ5IGFnYWluIGxhdGVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IlN3aXBlIGRvd24gZnJvbSB0aGUgdG9wIHRvIGV4aXQgZnVsbCBzY3JlZW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiJGaW5pc2hlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IkhvdXJzIGNpcmN1bGFyIHNsaWRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4iTWludXRlcyBjaXJjdWxhciBzbGlkZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4iU2VsZWN0IGhvdXJzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4iU2VsZWN0IG1pbnV0ZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+Ik1vbnRoIGdyaWQgb2YgZGF5cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTUyNDMzMTIwNzQzNjA1MjQwMyI+IlllYXIgbGlzdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iU2VsZWN0IG1vbnRoIGFuZCBkYXkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiJTZWxlY3QgeWVhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiI8eGxpZmY6ZyBpZD0iSVRFTSI+JTEkczwveGxpZmY6Zz4gc2VsZWN0ZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiI8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiBkZWxldGVkIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWVuLXJJTi9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sCmluZGV4IGNhODUwOWEuLjZlOWFmNTkgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJUeXBlIGEgUFVLIHRoYXQgaXMgOCBudW1iZXJzIG9yIGxvbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4iWW91ciBTSU0gY2FyZCBpcyBQVUstbG9ja2VkLiBUeXBlIHRoZSBQVUsgY29kZSB0byB1bmxvY2sgaXQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iVHlwZSBQVUsyIHRvIHVuYmxvY2sgU0lNIGNhcmQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iVW5zdWNjZXNzZnVsLCBlbmFibGUgU0lNL1JVSU0gTG9jay4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiJZb3UgaGF2ZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gcmVtYWluaW5nIGF0dGVtcHQvcyBiZWZvcmUgU0lNIGlzIGxvY2tlZC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJZb3UgaGF2ZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gcmVtYWluaW5nIGF0dGVtcHQvcyBiZWZvcmUgU0lNIGlzIGxvY2tlZC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IkluY29taW5nIENhbGxlciBJRCI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4iQWxsb3dzIHRoZSBhcHAgdG8gdXNlIFN1cmZhY2VGbGluZ2VyIGxvdy1sZXZlbCBmZWF0dXJlcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJyZWFkIGZyYW1lIGJ1ZmZlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJBbGxvd3MgdGhlIGFwcCB0byByZWFkIHRoZSBjb250ZW50IG9mIHRoZSBmcmFtZSBidWZmZXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iYWNjZXNzIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJBbGxvd3MgdGhlIGFwcCB0byB1c2UgSW5wdXRGbGluZ2VyIGxvdy1sZXZlbCBmZWF0dXJlcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+ImNvbmZpZ3VyZSBXaS1GaSBkaXNwbGF5cyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IkFsbG93cyB0aGUgYXBwIHRvIGNvbmZpZ3VyZSBhbmQgY29ubmVjdCB0byBXaS1GaSBkaXNwbGF5cy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+ImNvbnRyb2wgV2ktRmkgZGlzcGxheXMiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IkNob29zZSBhbiBhcHAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiJDb3VsZG5cJ3QgbGF1bmNoIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiJTaGFyZSB3aXRoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IlNoYXJlIHdpdGggPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJTbGlkaW5nIGhhbmRsZS4gVG91Y2ggJmFtcDsgaG9sZC4iPC9zdHJpbmc+CkBAIC0xNjUwLDQgKzE2NTgsMTUgQEAKICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+IlRyeSBhZ2FpbiBsYXRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJTd2lwZSBkb3duIGZyb20gdGhlIHRvcCB0byBleGl0IGZ1bGwgc2NyZWVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4iRmluaXNoZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiJIb3VycyBjaXJjdWxhciBzbGlkZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+Ik1pbnV0ZXMgY2lyY3VsYXIgc2xpZGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IlNlbGVjdCBob3VycyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IlNlbGVjdCBtaW51dGVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiJNb250aCBncmlkIG9mIGRheXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiJZZWFyIGxpc3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IlNlbGVjdCBtb250aCBhbmQgZGF5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4iU2VsZWN0IHllYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+IHNlbGVjdGVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4gZGVsZXRlZCI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1lcy1yVVMvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWVzLXJVUy9zdHJpbmdzLnhtbAppbmRleCBlYjczMWEzLi43MDQ0NDAzIDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWVzLXJVUy9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWVzLXJVUy9zdHJpbmdzLnhtbApAQCAtNTAsNiArNTAsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4iSW5ncmVzYSB1biBjw7NkaWdvIFBVSyBkZSBvY2hvIG7Dum1lcm9zIG8gbcOhcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4iVHUgdGFyamV0YSBTSU0gZXN0w6EgYmxvcXVlYWRhIGNvbiBQVUsuIEVzY3JpYmUgZWwgY8OzZGlnbyBQVUsgcGFyYSBkZXNibG9xdWVhcmxhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IkVzY3JpYmlyIFBVSzIgcGFyYSBkZXNibG9xdWVhciBsYSB0YXJqZXRhIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiJFcnJvcjsgaGFiaWxpdGEgZWwgYmxvcXVlbyBkZSBTSU0vUlVJTS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiJUZSBxdWVkYSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gaW50ZW50byBhbnRlcyBkZSBxdWUgc2UgYmxvcXVlZSBsYSB0YXJqZXRhIFNJTS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJUZSBxdWVkYW4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGludGVudG9zIGFudGVzIGRlIHF1ZSBzZSBibG9xdWVlIGxhIHRhcmpldGEgU0lNLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iSWRlbnRpZmljYWRvciBkZSBsbGFtYWRhcyBlbnRyYW50ZXMiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IlBlcm1pdGUgcXVlIGxhIGFwbGljYWNpw7NuIHV0aWxpY2UgZnVuY2lvbmVzIGRlIFN1cmZhY2VGbGluZ2VyIGRlIGJham8gbml2ZWwuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4ibGVlciBlbCBiw7pmZXIgZGUgdHJhbWFzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IlBlcm1pdGUgcXVlIGxhIGFwbGljYWNpw7NuIGxlYSBlbCBjb250ZW5pZG8gZGVsIGLDumZlciBkZSB0cmFtYXMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iYWNjZWRlciBhIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJQZXJtaXRlIHF1ZSBsYSBhcGxpY2FjacOzbiB1dGlsaWNlIGZ1bmNpb25lcyBkZSBJbnB1dEZsaW5nZXIgZGUgYmFqbyBuaXZlbC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+ImNvbmZpZ3VyYXIgcGFudGFsbGFzIFdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4iUGVybWl0ZSBxdWUgbGEgYXBsaWNhY2nDs24gY29uZmlndXJlIHkgc2UgY29uZWN0ZSBhIHBhbnRhbGxhcyBXaS1GaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+ImNvbnRyb2xhciBwYW50YWxsYXMgV2ktRmkiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iTWF5w7pzY3VsYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkluZ3Jlc2FyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4iRWxpZ2UgdW5hIGFwbGljYWNpw7NuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+Ik5vIHNlIHB1ZG8gYWJyaXIgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiJDb21wYXJ0aXIgY29uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IkNvbXBhcnRpciBjb24gPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJNYW50w6luIHByZXNpb25hZG8gZWwgY29udHJvbGFkb3IgZGVzbGl6YW50ZS4iPC9zdHJpbmc+CkBAIC0xNjQ5LDUgKzE2NTcsMTYgQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NzMwODY4OTIwNzQyOTUyODE3Ij4iSW50ZW50YXIgZW4gPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gcyI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJWdWVsdmUgYSBpbnRlbnRhciBtw6FzIHRhcmRlLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJTYWxpciBkZSBwYW50YWxsYSBjb21wbGV0YTogZGVzbGl6YXIgYWJham8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4iRGVzbGl6YSBlbCBkZWRvIGhhY2lhIGFiYWpvIHBhcmEgc2FsaXIgZGUgbGEgcGFudGFsbGEgY29tcGxldGEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiJMaXN0byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IkNvbnRyb2wgZGVzbGl6YW50ZSBjaXJjdWxhciBkZSBob3JhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4iQ29udHJvbCBkZXNsaXphbnRlIGNpcmN1bGFyIGRlIG1pbnV0b3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4iU2VsZWNjaW9uYXIgaG9yYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiJTZWxlY2Npb25hciBtaW51dG9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiJDdWFkcsOtY3VsYSBtZW5zdWFsIGRlIGTDrWFzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4iTGlzdGEgZGUgYcOxb3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IlNlbGVjY2lvbmFyIG1lcyB5IGTDrWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiJTZWxlY2Npb25hciBhw7FvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+Ijx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiBzZWxlY2Npb25hZG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiI8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiBib3JyYWRvIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWVzL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1lcy9zdHJpbmdzLnhtbAppbmRleCBhODlmMzVhLi4xNTE2Mjg2IDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWVzL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZXMvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IkVzY3JpYmUgdW4gY8OzZGlnbyBQVUsgZGUgb2NobyBjYXJhY3RlcmVzIG8gbcOhcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4iTGEgdGFyamV0YSBTSU0gZXN0w6EgYmxvcXVlYWRhIGNvbiBlbCBjw7NkaWdvIFBVSy4gSW50cm9kdWNlIGVsIGPDs2RpZ28gUFVLIHBhcmEgZGVzYmxvcXVlYXJsYS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJJbnRyb2R1Y2UgZWwgY8OzZGlnbyBQVUsyIHBhcmEgZGVzYmxvcXVlYXIgbGEgdGFyamV0YSBTSU0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iRXJyb3IsIGhhYmlsaXRhciBibG9xdWVvIGRlIFNJTS9SVUlNLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IlRlIHF1ZWRhIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBpbnRlbnRvIHBhcmEgYmxvcXVlYXIgbGEgdGFyamV0YSBTSU0uIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4iUXVlZGFuIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBpbnRlbnRvcyBwYXJhIGJsb3F1ZWFyIGxhIHRhcmpldGEgU0lNLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iSUQgZGUgZW1pc29yIGRlIGxsYW1hZGEgZW50cmFudGUiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IlBlcm1pdGUgcXVlIGxhIGFwbGljYWNpw7NuIHVzZSBmdW5jaW9uZXMgZGUgU3VyZmFjZUZsaW5nZXIgZGUgbml2ZWwgaW5mZXJpb3IuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4ibGVlciBtZW1vcmlhIGRlIGFsbWFjZW5hbWllbnRvIGludGVybWVkaW8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4iUGVybWl0ZSBxdWUgbGEgYXBsaWNhY2nDs24gbGVhIGVsIGNvbnRlbmlkbyBkZSBsYSBtZW1vcmlhIGRlIGFsbWFjZW5hbWllbnRvIGludGVybWVkaW8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iYWNjZWRlciBhIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJQZXJtaXRlIHF1ZSBsYSBhcGxpY2FjacOzbiB1dGlsaWNlIGZ1bmNpb25lcyBkZSBiYWpvIG5pdmVsIGRlIFN1cmZhY2VGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4iY29uZmlndXJhciBwYW50YWxsYXMgV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJQZXJtaXRlIHF1ZSBsYSBhcGxpY2FjacOzbiBjb25maWd1cmUgcGFudGFsbGFzIFdpLUZpIHkgc2UgY29uZWN0ZSBhIGVsbGFzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4iY29udHJvbGFyIHBhbnRhbGxhcyBXaS1GaSI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJNYXnDunMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJJbnRybyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IlNlbGVjY2lvbmFyIHVuYSBhcGxpY2FjacOzbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+Ik5vIHNlIGhhIHBvZGlkbyBhYnJpciA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4iQ29tcGFydGlyIGNvbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiJDb21wYXJ0aXIgY29uIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iTWFudMOpbiBwdWxzYWRvIGVsIGljb25vIGRlIGRlc2Jsb3F1ZW8geSBkZXNsw616YWxvLiI8L3N0cmluZz4KQEAgLTE2NTAsNCArMTY1OCwxNSBAQAogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4iVm9sdmVyIGEgaW50ZW50YXIgbcOhcyB0YXJkZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJEZXNsaXphIGVsIGRlZG8gaGFjaWEgYWJham8gcGFyYSBzYWxpciBkZSBsYSBwYW50YWxsYSBjb21wbGV0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4iTGlzdG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiJDb250cm9sIGRlc2xpemFudGUgY2lyY3VsYXIgZGUgaG9yYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+IkNvbnRyb2wgZGVzbGl6YW50ZSBjaXJjdWxhciBkZSBtaW51dG9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IlNlbGVjY2lvbmFyIGhvcmFzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4iU2VsZWNjaW9uYXIgbWludXRvcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4iQ3VhZHLDrWN1bGEgbWVuc3VhbCBkZSBkw61hcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTUyNDMzMTIwNzQzNjA1MjQwMyI+Ikxpc3RhIGRlIGHDsW9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2RheSIgbXNnaWQ9Ijc3NzQ3NTk2MDQ3MDE3NzMzMzIiPiJTZWxlY2Npb25hciBtZXMgeSBkw61hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4iU2VsZWNjaW9uYXIgYcOxbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiI8eGxpZmY6ZyBpZD0iSVRFTSI+JTEkczwveGxpZmY6Zz4gc2VsZWNjaW9uYWRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4gZWxpbWluYWRvIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCmluZGV4IDc0MmQzZGEuLjNiNjVlMzUgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJTaXNlc3RhZ2UgOC0gdsO1aSBlbmFtYW51bWJyaWxpbmUgUFVLLWtvb2QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IlNJTS1rYWFydCBvbiBQVUstbHVrdXN0YXR1ZC4gQXZhbWlzZWtzIHNpc2VzdGFnZSBQVUsta29vZC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJTaXNlc3RhZ2UgU0lNLWthYXJkaSBibG9rZWVyaW5ndSB0w7xoaXN0YW1pc2VrcyBQVUsyLWtvb2QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iRWJhw7VubmVzdHVzLCBTSU0taS9SVUlNLWkgbHVrdXN0dXNlIGx1YmFtaW5lLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IlRlaWwgb24gZW5uZSBTSU0taSBsdWt1c3R1bWlzdCBqw6TDpG51ZCB2ZWVsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBrYXRzZS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJUZWlsIG9uIGVubmUgU0lNLWkgbHVrdXN0dW1pc3QgasOkw6RudWQgdmVlbCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4ga2F0c2V0LiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iU2lzc2V0dWxldmEga8O1bmUgaGVsaXN0YWphIElEIjwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiJWw7VpbWFsZGFiIHJha2VuZHVzZWwga2FzdXRhZGEgU3VyZmFjZUZsaW5nZXJpIG1hZGFsYXRhc2VtZWxpc2kgZnVua3RzaW9vbmUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4ibG9lIGthYWRyaXB1aHZyaXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4iVsO1aW1hbGRhYiByYWtlbmR1c2VsIGthYWRyaXB1aHZyaSBzaXN1IGx1Z2VkYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJqdXVyZGVww6TDpHMgSW5wdXRGbGluZ2VyaWxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+Ikx1YmFiIHJha2VuZHVzZWwga2FzdXRhZGEgSW5wdXRGbGluZ2VyaSBtYWRhbGF0YXNlbWVsaXNpIGZ1bmt0c2lvb25lLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4iV2lGaS1la3JhYW5pZGUgc2VhZGlzdGFtaW5lIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4iTHViYWIgcmFrZW5kdXNlbCBzZWFkaXN0YWRhIFdpRmktZWtyYWFuZSBqYSBuZW5kZWdhIMO8aGVuZHVzIGx1dWEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiJXaUZpLWVrcmFhbmlkZSBqdWh0aW1pbmUiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iVMO1c3R1a2xhaHYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJTaXNlc3R1c2tsYWh2Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4iVmFsaWdlIHJha2VuZHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4iUmFrZW5kdXN0IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4gZWkgw7VubmVzdHVudWQga8OkaXZpdGFkYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IkphZ2E6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IkphZ2EgcmFrZW5kdXNlZ2EgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJMaWJpc3RhbWlzcGlkZS4gUHV1ZHV0YWdlIGphIGhvaWRrZSBhbGwuIjwvc3RyaW5nPgpAQCAtMTY0OSw1ICsxNjU3LDE2IEBACiAgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDczMDg2ODkyMDc0Mjk1MjgxNyI+IlByb292aWdlIHV1ZXN0aSA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBzZWt1bmRpIHDDpHJhc3QiPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4iUHJvb3ZpZ2UgaGlsamVtIHV1ZXN0aSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJUw6Rpc2VrcmFhbmkgc3VsZ2VtaXNla3MgcMO8aGtpZ2Ugw7xsZXZhbHQgYWxsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJUw6Rpc2VrcmFhbmlsdCB2w6RsanVtaXNla3MgcMO8aGtpZ2Ugw7xsZXZhbHQgYWxsYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IlZhbG1pcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IlJpbmdpa3VqdWxpbmUgdHVubmlsaXVndXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+IlJpbmdpa3VqdWxpbmUgbWludXRpbGl1Z3VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IlR1bmRpZGUgdmFsaW1pbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiJNaW51dGl0ZSB2YWxpbWluZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4iUMOkZXZhZCBrdXUgcnV1ZHVzdGlrdXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiJBYXN0YXRlIGxvZW5kIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2RheSIgbXNnaWQ9Ijc3NzQ3NTk2MDQ3MDE3NzMzMzIiPiJLdXUgamEgcMOkZXZhIHZhbGltaW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4iQWFzdGEgdmFsaW1pbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+IG9uIHZhbGl0dWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiI8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiBvbiBrdXN0dXRhdHVkIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWV0L3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1ldC9zdHJpbmdzLnhtbAppbmRleCA3MTgzMmM4Li4wNjk0NzQ0IDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWV0L3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZXQvc3RyaW5ncy54bWwKQEAgLTMxNCw3ICszMTQsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI0MTM4NjA4NjEwNzE3NDI1NTczIj4idsOkbGRpIHJha2VuZHVzdGUgw7xtYmVybMO8bGl0YW1pc3QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI4MjYyMTk1ODAyNTgyMjU1MDIxIj4iVGFraXN0YWIga2FzdXRhamEgbMO8bGl0dW1pc3QgdGVpc2VsZSByYWtlbmR1c2VsZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFRvcEFjdGl2aXR5SW5mbyIgbXNnaWQ9IjI1Mzc5MjIzMTE0MTE1NDYwMTYiPiJha3RpaXZzZSByYWtlbmR1c2UgdGVhYmUgaGFua2ltaW5lIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0VG9wQWN0aXZpdHlJbmZvIiBtc2dpZD0iMjUxMjQ0ODg1NTQ5NjA2NzEzMSI+Ikx1YmFiIMO1aWd1c3RlIHNhYWphbCBoYW5raWRhIHByaXZhYXRzZXQgdGVhdmV0IGVrcmFhbmlsIGVzaXBsYWFuaWwgb2xldmEgYWt0aWl2c2UgcmFrZW5kdXNlIGtvaHRhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRvcEFjdGl2aXR5SW5mbyIgbXNnaWQ9IjgxNTM2NTE0MzQxNDUxMzI1MDUiPiJMdWJhYiDDtWlndXNlIG9tYW5pa3VsIGhhbmtpZGEgcHJpdmFhdHNldCB0ZWF2ZXQgZWtyYWFuaSBlc2lwbGFhbmlsIG9sZXZhIGFrdGlpdnNlIHJha2VuZHVzZSBqYSB0ZWVudXN0ZSBrb2h0YS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3J1blNldEFjdGl2aXR5V2F0Y2hlciIgbXNnaWQ9Ijg5MjIzOTA5NDg2NzE4MjY1NiI+IkvDtWlnaSByYWtlbmR1c3RlIGvDpGl2aXR1bWlzZSBqw6RsZ2ltaW5lIGphIGp1aHRpbWluZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3J1blNldEFjdGl2aXR5V2F0Y2hlciIgbXNnaWQ9IjYwMDM2MDMxNjI1Nzg1Nzc0MDYiPiJWw7VpbWFsZGFiIHJha2VuZHVzZWwgasOkbGdpZGEgamEganVodGlkYSwga3VpZGFzIHPDvHN0ZWVtIHRlZ2V2dXNpIGvDpGl2aXRhYi4gUGFoYXRhaHRsaWt1ZCByYWtlbmR1c2VkIHbDtWl2YWQgc8O8c3RlZW1pIHTDpGllbGlrdWx0IHJpa2t1ZGEuIFNlZGEgw7VpZ3VzdCBvbiB2YWphIGFpbnVsdCBhcmVuZHVzZWtzLCBtaXR0ZSB0YXZha2FzdXR1c2Uga29ycmFsLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSIyNTc2MzMzNDM0ODkzNTMyNDc1Ij4ic2FhZGEgcGFrZXRpc3QgZWVtYWxkYXR1ZCBzYWFkZSI8L3N0cmluZz4KQEAgLTM2Myw3ICszNjMsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NBbGxQcmludEpvYnMiIG1zZ2lkPSIxMTIwNzkyNDY4NDY1NzExMTU5Ij4ianV1cmRlcMOkw6RzIGvDtWlraWRlbGUgcHJpbnRpbWlzdMO2w7ZkZWxlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQWxsUHJpbnRKb2JzIiBtc2dpZD0iMjk3ODE4NTMxMTA0MTg2NDc2MiI+Ikx1YmFiIG9tYW5pa3VsZSBqdXVyZGVww6TDpHN1IHRlaXNlIHJha2VuZHVzZSBsb29kdWQgcHJpbnRpbWlzdMO2w7ZkZWxlLiBUYXZhcmFrZW5kdXN0ZSBwdWh1bCBlaSBwZWFrcyBzZWRhIGt1bmFnaSB2YWphIG1pbmVtYS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iMjc1MjczMTMwMDQxOTQxMDcyNCI+Ik5GQy10ZWVudXNlZ2Egc2lkdW1pbmUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kTmZjU2VydmljZSIgbXNnaWQ9IjYxMjA2NDc2MjkxNzQwNjY4NjIiPiJMdWJhYiBrYXN1dGFqYWwgbHV1YSBzZW9zZWQgcmFrZW5kdXN0ZWdhLCBtaXMgasOkbGplbmRhdmFkIE5GQy1rYWFydGUuIFBvbGUga3VuYWdpIHZhamFsaWsgdGF2YWxpc3RlIHJha2VuZHVzdGUga29ycmFsLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iNjEyMDY0NzYyOTE3NDA2Njg2MiI+Ikx1YmFiIMO1aWd1c3RlIG9tYWphbCBsdXVhIHNlb3NlZCByYWtlbmR1c3RlZ2EsIG1pcyBlbXVsZWVyaXZhZCBORkMta2FhcnRlLiBQb2xlIGt1bmFnaSB2YWphbGlrIHRhdmFsaXN0ZSByYWtlbmR1c3RlIGtvcnJhbC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRUZXh0U2VydmljZSIgbXNnaWQ9IjczNTgzNzg0MDE5MTUyODc5MzgiPiJ0ZWtzdGl0ZWVudXNlZ2Egc2lkdW1pbmUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVGV4dFNlcnZpY2UiIG1zZ2lkPSI4MTUxOTY4OTEwOTczOTk4NjcwIj4iVsO1aW1hbGRhYiBvbWFuaWt1bCBzaWR1ZGEgdGVrc3RpdGVlbnVzZSAobnQgU3BlbGxDaGVja2VyU2VydmljZSkgw7xsYXRhc2VtZSBsaWlkZXNlZ2EuIFRhdmFyYWtlbmR1c3RlIHB1aHVsIGVpIHBlYWtzIHNlZGEga3VuYWdpIHZhamEgbWluZW1hLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSI0NzA4NTk2MDIxMTYxNDczMjU1Ij4ic2VvIFZQTi10ZWVudXNlZ2EiPC9zdHJpbmc+CkBAIC00MDcsNiArNDA3LDEwIEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTG9ncyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIwNjM0MzgxNDAyNDE1NjA0NDMiPiJWw7VpbWFsZGFiIHJha2VuZHVzZWwgbHVnZWRhIHPDvHN0ZWVtaSBlcmluZXZhaWQgbG9naWZhaWxlLiBOaWkgb24gdsO1aW1hbGlrIGF2YXN0YWRhIMO8bGRpc3QgdGVhdmV0IHNlbGxlIGtvaHRhLCBtaWRhIHRlIHRlbGVmb25pZ2EgdGVldGUsIG1pcyB2w7VpYiBrYWFzYXRhIGthIGlzaWtsaWtrdSB2w7VpIHByaXZhYXRzZXQgdGVhdmV0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjcxNTgwNTU1NTgyMzg4MTgxOCI+Ik1pcyB0YWhlcyBtZWVkaXVtaWRla29vZGVyaSBrYXN1dGFtaW5lIHRhYXNlc2l0dXNla3MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hbnlDb2RlY0ZvclBsYXliYWNrIiBtc2dpZD0iODI4MzkxMjQ4ODQzMzE4OTAxMCI+IlbDtWltYWxkYWIgcmFrZW5kdXNlbCB0YWFzZXNpdHVzZWtzIGthc3V0YWRhIG1pcyB0YWhlcyBpbnN0YWxsaXR1ZCBtZWVkaXVtaWRla29vZGVyaXQuIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1sYWJfbWFuYWdlQ2FDZXJ0aWZpY2F0ZXMgKDE2NzgzOTE4OTY3ODY4ODIwMTQpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGVybWRlc2NfbWFuYWdlQ2FDZXJ0aWZpY2F0ZXMgKDQwMTU2NDQwNDcxOTY5MzcwMTQpIC0tPgorICAgIDxza2lwIC8+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RpYWdub3N0aWMiIG1zZ2lkPSI4MDc2NzQzOTUzOTA4MDAwMzQyIj4ibG9lL2tpcmp1dGEgdmFsaWphIGFsbGlrYWlkIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlhZ25vc3RpYyIgbXNnaWQ9IjY2MDgyOTU2OTIwMDI0NTIyODMiPiJWw7VpbWFsZGFiIHJha2VuZHVzZWwgbHVnZWRhIHZhbGltaXNyw7xobWEgbWlzIHRhaGVzIHJlc3N1cnNzaSBqYSBzZWxsZXNzZSBraXJqdXRhZGEgKG7DpGl0ZWtzIGthdXN0YXMgL2RldiBvbGV2YWQgZmFpbGlkKS4gU2VlIHbDtWliIG3DtWp1dGFkYSBzw7xzdGVlbWkgc3RhYmlpbHN1c3QgamEgdHVydmV0LiBTZWRhIHRvaGlrcyBrYXN1dGFkYSB0b290amEgdsO1aSBvcGVyYWF0b3IgQUlOVUxUIHJpaXN0dmFyYXNwZXRzaWlmaWxpc2VrcyBkaWFnbm9zdGlrYWtzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlQ29tcG9uZW50U3RhdGUiIG1zZ2lkPSI2MzM1NTc2Nzc1NzExMDk1OTMxIj4iUmFrZW5kdXNlIGtvbXBvbmVudGlkZSBsdWJhbWluZSB2w7VpIGtlZWxhbWluZSI8L3N0cmluZz4KQEAgLTQ3MiwxOCArNDc2LDE0IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4iTHViYWIgcmFrZW5kdXNlbCBrYXN1dGFkYSBJbnB1dEZsaW5nZXJpIG1hZGFsYXRhc2VtZWxpc2kgZnVua3RzaW9vbmUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJXaUZpLWVrcmFhbmlkZSBzZWFkaXN0YW1pbmUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJMdWJhYiByYWtlbmR1c2VsIHNlYWRpc3RhZGEgV2lGaS1la3JhYW5lIGphIG5lbmRlZ2Egw7xoZW5kdXMgbHV1YS4iPC9zdHJpbmc+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGVybWxhYl9jYXB0dXJlQXVkaW9PdXRwdXQgKDY4NTcxMzQ0OTg0MDIzNDY3MDgpIC0tPgotICAgIDxza2lwIC8+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGVybWRlc2NfY2FwdHVyZUF1ZGlvT3V0cHV0ICg2MjEwNTk3NzU0MjEyMjA4ODUzKSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1sYWJfY2FwdHVyZVZpZGVvT3V0cHV0ICgyMjQ2ODI4NzczNTg5MDk0MDIzKSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1kZXNjX2NhcHR1cmVWaWRlb091dHB1dCAoMzU5NDgxNjU4MDM0MTQ5ODYwKSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1sYWJfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0ICg3ODE1Mzk4OTY5MzAzMzgyMDE2KSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1kZXNjX2NhcHR1cmVTZWN1cmVWaWRlb091dHB1dCAoMjc3OTc5MzA2NDcwOTM1MDI4OSkgLS0+Ci0gICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4iV2lGaS1la3JhYW5pZGUganVodGltaW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iNDU0MzkxMjI5MjY4MTgyNjk4NiI+Ikx1YmFiIHJha2VuZHVzZWwganVodGlkYSBXaUZpLWVrcmFhbmlkZSBtYWRhbGEgdGFzZW1lIGZ1bmt0c2lvb25lLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZUF1ZGlvT3V0cHV0IiBtc2dpZD0iNjg1NzEzNDQ5ODQwMjM0NjcwOCI+ImhlbGl2w6RsanVuZGkgasOkw6RkdnVzdGFtaW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZUF1ZGlvT3V0cHV0IiBtc2dpZD0iNjIxMDU5Nzc1NDIxMjIwODg1MyI+Ikx1YmFiIHJha2VuZHVzZWwgasOkw6RkdnVzdGFkYSBqYSDDvG1iZXIgc3V1bmF0YSBoZWxpdsOkbGp1bmRpdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjIyNDY4Mjg3NzM1ODkwOTQwMjMiPiJ2aWRlb3bDpGxqdW5kaSBqw6TDpGR2dXN0YW1pbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIzNTk0ODE2NTgwMzQxNDk4NjAiPiJMdWJhYiByYWtlbmR1c2VsIGrDpMOkZHZ1c3RhZGEgamEgw7xtYmVyIHN1dW5hdGEgdmlkZW92w6RsanVuZGl0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iNzgxNTM5ODk2OTMwMzM4MjAxNiI+ImthaXRzdHVkIHZpZGVvdsOkbGp1bmRpIGrDpMOkZHZ1c3RhbWluZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVTZWN1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjI3Nzk3OTMwNjQ3MDkzNTAyODkiPiJMdWJhYiByYWtlbmR1c2VsIGrDpMOkZHZ1c3RhZGEgamEgw7xtYmVyIHN1dW5hdGEga2FpdHN0dWQgdmlkZW92w6RsanVuZGl0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjYwOTU4NTk5MzcwNjkxNDYwODYiPiJtdXVkYSBoZWxpc2VhZGVpZCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeUF1ZGlvU2V0dGluZ3MiIG1zZ2lkPSIzNTIyNTY1MzY2ODA2MjQ4NTE3Ij4iVsO1aW1hbGRhYiByYWtlbmR1c2VsIG11dXRhIMO8bGRpc2VpZCBoZWxpc2VhZGVpZCwgbsOkaXRla3MgaGVsaXR1Z2V2dXN0IGphIHNlZGEsIG1pbGxpc3Qga8O1bGFyaXQga2FzdXRhdGFrc2UgdsOkbGp1bmRpa3MuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNvcmRBdWRpbyIgbXNnaWQ9IjM4NzYwNDk3NzE0Mjc0NjYzMjMiPiJzYWx2ZXN0YSBoZWxpIjwvc3RyaW5nPgpAQCAtNjU3LDYgKzY1Nyw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kTm90aWZpY2F0aW9uTGlzdGVuZXJTZXJ2aWNlIiBtc2dpZD0iOTg1Njk3OTE4NTc2OTAyOTg2Ij4iVsO1aW1hbGRhYiBvbWFuaWt1bCBzaWR1ZGEgbcOkcmd1YW5uZXRlIGt1dWxhbWlzdGVlbnVzZSDDvGxlbWlzZSB0YXNlbWUga2FzdXRhamFsaWlkZXNlLiBTZWRhIGVpIHRvaGlrcyB0YXZhcmFrZW5kdXN0ZSBwdWh1bCBrdW5hZ2kgdmFqYSBvbGxhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW52b2tlQ2FycmllclNldHVwIiBtc2dpZD0iMzY5OTYwMDgzMzk3NTExNzQ3OCI+Im9wZXJhYXRvcmlwb29sc2Uga29uZmlndXJhdHNpb29uaXJha2VuZHVzZSBha3RpdmVlcmltaW5lIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW52b2tlQ2FycmllclNldHVwIiBtc2dpZD0iNDE1OTU0OTE1MjUyOTExMTkyMCI+Ikx1YmFiIG9tYW5pa3VsIGFrdGl2ZWVyaWRhIG9wZXJhYXRvcmlwb29sc2Uga29uZmlndXJhdHNpb29uaXJha2VuZHVzZS4gVGF2YXJha2VuZHVzdGUgcHVodWwgZWkgcGVha3Mgc2VkYSBrdW5hZ2kgdmFqYSBtaW5lbWEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOZXR3b3JrQ29uZGl0aW9ucyIgbXNnaWQ9IjgyMDYwNzc0NDc4Mzg5MDk1MTYiPiJ2w7VyZ3V0aW5naW11c3RlIHRlYWJlIGt1dWxhbWluZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05ldHdvcmtDb25kaXRpb25zIiBtc2dpZD0iNjg5OTEwMjA3NTgyNTI3MjIxMSI+Ikx1YmFiIHJha2VuZHVzZWwga3V1bGF0YSB2w7VyZ3V0aW5naW11c3RlIHRlYXZldC4gRWkgb2xlIGt1bmFnaSB2YWphbGlrIHRhdmFsaXN0ZSByYWtlbmR1c3RlIHB1aHVsLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9saW1pdFBhc3N3b3JkIiBtc2dpZD0iNDQ5NzQyMDcyODg1NzU4NTc5MSI+IlBhcm9vbGkgcmVlZ2xpdGUgbcOkw6RyYW1pbmUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2xpbWl0UGFzc3dvcmQiIG1zZ2lkPSIzMjUyMTE0MjAzOTE5NTEwMzk0Ij4iS29udHJvbGxpZ2UgZWtyYWFuaWx1a3UgYXZhbWlzZSBwYXJvb2xpZGUgcGlra3VzdCBqYSB0w6RoZW3DpHJrZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfd2F0Y2hMb2dpbiIgbXNnaWQ9IjkxNDEzMDY0Njk0MjE5OTUwMyI+IkVrcmFhbmkgYXZhbWlza2F0c2VkIjwvc3RyaW5nPgpAQCAtMTU4MSw0ICsxNTgzLDYgQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDgzNTYzOTk2OTUwMzcyOTg3NCI+IlZhbGUgUElOLWtvb2QuIFByb292aWdlIDEgcyBww6RyYXN0LiI8L2l0ZW0+CiAgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODAzMDYwNzM0MzIyMzI4NzY1NCI+IlZhbGUgUElOLWtvb2QuIFByb292aWdlIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHMgcMOkcmFzdC4iPC9pdGVtPgogICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJ0cmFuc2llbnRfbmF2aWdhdGlvbl9jb25maXJtYXRpb24iIG1zZ2lkPSI0OTA3ODQ0MDQzNjExMTIzNDI2Ij4iUmliYSBrdXZhbS4gcMO8aGtpZ2UgZWtyYWFuaSBzZXJ2YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRyYW5zaWVudF9uYXZpZ2F0aW9uX2NvbmZpcm1hdGlvbl9sb25nIiBtc2dpZD0iODA2MTY4NTkyMDUwODA4NjY5NyI+IlPDvHN0ZWVtaXJpYmEga3V2YW1pc2VrcyBww7xoa2lnZSBla3JhYW5pIHNlcnZhc3QiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZmEvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWZhL3N0cmluZ3MueG1sCmluZGV4IDkyZDY4N2YuLjljNTA4YzAgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZmEvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1mYS9zdHJpbmdzLnhtbApAQCAtMjcsMTQgKzI3LDE0IEBACiAgICAgPHN0cmluZyBuYW1lPSJ0ZXJhYnl0ZVNob3J0IiBtc2dpZD0iMjMxNjEzMDE4MTU5MTg2OTYyIj4i2KrYsdin2KjYp9uM2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXRhYnl0ZVNob3J0IiBtc2dpZD0iNTYzNzgxNjY4MDE0NDk5MDIxOSI+Itm+2KrYp9io2KfbjNiqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZmlsZVNpemVTdWZmaXgiIG1zZ2lkPSI5MTY0MjkyNzkxNTAwNTMxOTQ5Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JTEkczwveGxpZmY6Zz4gPHhsaWZmOmcgaWQ9IlVOSVQiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idW50aXRsZWQiIG1zZ2lkPSI0NjM4OTU2OTU0ODUyNzgyNTc2Ij4iJmx0O9io2K/ZiNmGINi52YbZiNin2YYmZ3Q7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idW50aXRsZWQiIG1zZ2lkPSI0NjM4OTU2OTU0ODUyNzgyNTc2Ij4i4oCPJmx0O9io2K/ZiNmGINi52YbZiNin2YYmZ3Q7Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXMiIG1zZ2lkPSI3ODk5ODI5NTE2MDQ4ODEzMjM3Ij4i4oCmIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXNfdHdvX2RvdHMiIG1zZ2lkPSIxMjI4MDc4OTk0ODY2MDMwNzM2Ij4iLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJlbXB0eVBob25lTnVtYmVyIiBtc2dpZD0iNzY5NDA2MzA0MjA3OTY3NjUxNyI+IijYqNiv2YjZhiDYtNmF2KfYsdmHINiq2YTZgdmGKSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InVua25vd25OYW1lIiBtc2dpZD0iMjI3NzU1NjU0Njc0Mjc0NjUyMiI+IijZhtin2LTZhtin2LMpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdFZvaWNlTWFpbEFscGhhVGFnIiBtc2dpZD0iMjY2MDAyMDk5MDA5NzczMzA3NyI+Itm+2LPYqiDYtdmI2KrbjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRNc2lzZG5BbHBoYVRhZyIgbXNnaWQ9IjI4NTA4ODk3NTQ5MTk1ODQ2NzQiPiJNU0lTRE4xIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibW1pRXJyb3IiIG1zZ2lkPSI1MTU0NDk5NDU3NzM5MDUyOTA3Ij4i2YXYtNqp2YQg2K/YsSDYp9iq2LXYp9mEINuM2Kcg2qnYryBNTUkg2YbYp9mF2LnYqtio2LEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pRXJyb3IiIG1zZ2lkPSI1MTU0NDk5NDU3NzM5MDUyOTA3Ij4i4oCP2YXYtNqp2YQg2K/YsSDYp9iq2LXYp9mEINuM2Kcg2qnYryBNTUkg2YbYp9mF2LnYqtio2LEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibW1pRmRuRXJyb3IiIG1zZ2lkPSI1MjI0Mzk4MjE2Mzg1MzE2NDcxIj4i2LnZhdmE2qnYsdivINmB2YLYtyDYqNmHINi02YXYp9ix2YfigIzZh9in24wg2LTZhdin2LHZhyDar9uM2LHbjCDYq9in2KjYqiDZhdit2K/ZiNivINin2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRW5hYmxlZCIgbXNnaWQ9IjgxNDcyNzgzNDY0MTQ3MTQzMTUiPiLYs9ix2YjbjNizINmB2LnYp9mEINi02K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUVuYWJsZWRGb3IiIG1zZ2lkPSI2ODU2MjI4MTQwNDUzNDcxMDQxIj4i2LPYsdmI24zYsyDZgdi52KfZhCDYtNivINio2LHYp9uMOiI8L3N0cmluZz4KQEAgLTQyLDE0ICs0MiwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZVJlZ2lzdGVyZWQiIG1zZ2lkPSI2Mjc1MDE5MDgyNTk4MTAyNDkzIj4i2KvYqNiqINio2Kcg2YXZiNmB2YLbjNiqINin2YbYrNin2YUg2LTYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VFcmFzZWQiIG1zZ2lkPSIxMjg4NTg0Njk1Mjk3MjAwOTcyIj4i2b7Yp9qpINqp2LHYr9mGINio2Kcg2YXZiNmB2YLbjNiqINin2YbYrNin2YUg2LTYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZEluY29ycmVjdCIgbXNnaWQ9Ijc2MTIyMDg4Mzk0NTAxMjg3MTUiPiLYsdmF2LIg2YjYsdmI2K8g2KfYtNiq2KjYp9mHINin2LPYqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJtbWlDb21wbGV0ZSIgbXNnaWQ9IjgyMzI1Mjc0OTU0MTE2OTgzNTkiPiJNTUkg2qnYp9mF2YQg2LTYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJiYWRQaW4iIG1zZ2lkPSI5MDE1Mjc3NjQ1NTQ2NzEwMDE0Ij4i2b7bjNmGINmC2K/bjNmF24wg2qnZhyDZhtmI2LTYqtmH4oCO2KfbjNivINi12K3bjNitINmG24zYs9iqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImJhZFB1ayIgbXNnaWQ9IjU0ODcyNTc2NDcwODExMzIyMDEiPiJQVUsg2qnZhyDZhtmI2LTYqtmH4oCM2KfbjNivINi12K3bjNitINmG24zYs9iqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Im1pc21hdGNoUGluIiBtc2dpZD0iNjA5Mzc5MDU0NDk2ODYzNDE5Ij4i2b7bjNmG4oCO2YfYp9uM24wg2qnZhyDZiNin2LHYryDaqdix2K/Zh+KAjtin24zYryDYqNinINuM2qnYr9uM2q/YsSDZhdi32KfYqNmC2Kog2YbYr9in2LHZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1taUNvbXBsZXRlIiBtc2dpZD0iODIzMjUyNzQ5NTQxMTY5ODM1OSI+IuKAj01NSSDaqdin2YXZhCDYtNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhZFBpbiIgbXNnaWQ9IjkwMTUyNzc2NDU1NDY3MTAwMTQiPiLigI/ZvtuM2YYg2YLYr9uM2YXbjCDaqdmHINmG2YjYtNiq2YfigI7Yp9uM2K8g2LXYrduM2K0g2YbbjNiz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFkUHVrIiBtc2dpZD0iNTQ4NzI1NzY0NzA4MTEzMjIwMSI+IuKAj1BVSyDaqdmHINmG2YjYtNiq2YfigIzYp9uM2K8g2LXYrduM2K0g2YbbjNiz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWlzbWF0Y2hQaW4iIG1zZ2lkPSI2MDkzNzkwNTQ0OTY4NjM0MTkiPiLigI/ZvtuM2YbigI7Zh9in24zbjCDaqdmHINmI2KfYsdivINqp2LHYr9mH4oCO2KfbjNivINio2Kcg24zaqdiv24zar9ixINmF2LfYp9io2YLYqiDZhtiv2KfYsdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFBpbiIgbXNnaWQ9IjM4NTAwMTg0NDUxODc0NzUzNzciPiLbjNqpINm+24zZhiDYqNmG2YjbjNiz24zYryDaqdmHIDQg2KrYpyA4INix2YLZhSDYqNin2LTYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+ItuM2qkgUFVLINio2KcgOCDYsdmC2YUg24zYpyDYqNuM2LTYqtixINiq2KfbjNm+INqp2YbbjNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiLYs9uM2YUg2qnYp9ix2Kog2LTZhdinINio2KcgUFVLINmC2YHZhCDYtNiv2Ycg2KfYs9iqLiDaqdivIFBVSyDYsdinINio2LHYp9uMINio2KfYstqv2LTYp9uM24wg2KLZhiDYqNmG2YjbjNiz24zYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJQVUsyINix2Kcg2KjYsdin24wg2KjYp9iy2q/YtNin24zbjCDZgtmB2YQg2LPbjNmFINqp2KfYsdiqINio2YbZiNuM2LPbjNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4i4oCP24zaqSBQVUsg2KjYpyA4INix2YLZhSDbjNinINio24zYtNiq2LEg2KrYp9uM2b4g2qnZhtuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IuKAj9iz24zZhSDaqdin2LHYqiDYtNmF2Kcg2KjYpyBQVUsg2YLZgdmEINi02K/ZhyDYp9iz2KouINqp2K8gUFVLINix2Kcg2KjYsdin24wg2KjYp9iy2q/YtNin24zbjCDYotmGINio2YbZiNuM2LPbjNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IuKAj1BVSzIg2LHYpyDYqNix2KfbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhCDYs9uM2YUg2qnYp9ix2Kog2KjZhtmI24zYs9uM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4i4oCP2YbYp9mF2YjZgdmCINio2YjYr9iMINmC2YHZhCDYs9uM2YUvUlVJTSDYsdinINmB2LnYp9mEINqp2YbbjNivLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDYqNin2LEg2K/bjNqv2LEg2YXbjOKAjNiq2YjYp9mG24zYryDYqtmE2KfYtCDaqdmG24zYryDZiCDZvtizINin2LIg2KLZhiDYs9uM2YUg2qnYp9ix2Kog2YLZgdmEINmF24zigIzYtNmI2K8uIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INio2KfYsSDYr9uM2q/YsSDZhduM4oCM2KrZiNin2YbbjNivINiq2YTYp9i0INqp2YbbjNivINmIINm+2LMg2KfYsiDYotmGINiz24zZhSDaqdin2LHYqiDZgtmB2YQg2YXbjOKAjNi02YjYry4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+Iti02YbYp9iz2Ycg2KrZhdin2LMg2q/bjNix2YbYr9mHINmI2LHZiNiv24wiPC9zdHJpbmc+CkBAIC03MCwxNCArNzUsMTQgQEAKICAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T2ZmTmV4dENhbGxPbiIgbXNnaWQ9IjYxNzk0MjUxODI4NTY0MTg0NjUiPiLZvtuM2LTigIzZgdix2LYg2LTZhtin2LPZhyDYqtmF2KfYsyDar9uM2LHZhtiv2Ycg2LHZiNuMINi624zYsSDZhdit2K/ZiNivINin2LPYqi4g2KrZhdin2LMg2KjYudiv24w6INmF2K3Yr9mI2K8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDTElSRGVmYXVsdE9mZk5leHRDYWxsT2ZmIiBtc2dpZD0iMjU2Nzk5ODYzMzEyNDQwODU1MiI+Itm+24zYtOKAjNmB2LHYtiDYtNmG2KfYs9mHINiq2YXYp9izINqv24zYsdmG2K/ZhyDYsdmI24wg2LrbjNixINmF2K3Yr9mI2K8g2KfYs9iqLiDYqtmF2KfYsyDYqNi52K/bjDog2KjYr9mI2YYg2YXYrdiv2YjYr9uM2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlTm90UHJvdmlzaW9uZWQiIG1zZ2lkPSI4NjE0ODMwMTgwNTA4Njg2NjY2Ij4i2LPYsdmI24zYsyDYr9in2LHYp9uMINmF2KzZiNiyINmG24zYs9iqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IkNMSVJQZXJtYW5lbnQiIG1zZ2lkPSIzMzc3MzcxMTQ1OTI2ODM1NjcxIj4i2LTZhdinINmF24zigI7YqtmI2KfZhtuM2K8g2KrZhti424zZhSDYtNmG2KfYs9mHINiq2YXYp9izINqv24zYsdmG2K/ZhyDYsdinINiq2LrbjNuM2LEg2K/Zh9uM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUlBlcm1hbmVudCIgbXNnaWQ9IjMzNzczNzExNDU5MjY4MzU2NzEiPiLigI/YtNmF2Kcg2YXbjOKAjtiq2YjYp9mG24zYryDYqtmG2LjbjNmFINi02YbYp9iz2Ycg2KrZhdin2LMg2q/bjNix2YbYr9mHINix2Kcg2KrYutuM24zYsSDYr9mH24zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkQ2hhbmdlZFRpdGxlIiBtc2dpZD0iNTU5MjE4OTM5ODk1NjE4NzQ5OCI+Itiv2LPYqtix2LPbjCDZhdit2K/ZiNivINiq2LrbjNuM2LEg24zYp9mB2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25EYXRhIiBtc2dpZD0iODY1Mzc5NDc4NDY5MDA2NTU0MCI+Itiz2LHZiNuM2LMg2K/Yp9iv2Ycg2YXYs9iv2YjYryDYp9iz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uRW1lcmdlbmN5IiBtc2dpZD0iNjU4MTE2Mzc3OTA3MjgzMzY2NSI+Itiz2LHZiNuM2LMg2KfYtti32LHYp9ix24wg2YXYs9iv2YjYryDYp9iz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uTm9ybWFsIiBtc2dpZD0iNDk1Mzg2NzAxMTM4OTc1MDY3MyI+Itiz2LHZiNuM2LMg2LXZiNiq24wg2YXYs9iv2YjYryDYtNiv2Ycg2KfYs9iqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkFsbFZvaWNlIiBtc2dpZD0iMzM5Njk2MzY1MjEwODE1MTI2MCI+Itiq2YXYp9mFINiz2LHZiNuM2LPigI7Zh9in24wg2LXYr9inINmF2LPYr9mI2K8g2YfYs9iq2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25BbGxWb2ljZSIgbXNnaWQ9IjMzOTY5NjM2NTIxMDgxNTEyNjAiPiLigI/YqtmF2KfZhSDYs9ix2YjbjNiz4oCO2YfYp9uMINi12K/YpyDZhdiz2K/ZiNivINmH2LPYqtmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uU21zIiBtc2dpZD0iODMxNDM1MjMyNzQ2MTYzODg5NyI+Itiz2LHZiNuM2LMg2b7bjNin2YXaqSDZhdiz2K/ZiNivINi02K/ZhyDYp9iz2KouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VEYXRhIiBtc2dpZD0iOTk2NjM2NDg3MTA2MTcxMzIwIj4i2LPYsdmI24zYs+KAjuKAjtmH2KfbjCDYtdiv2Kcv2K/Yp9iv2Ycg2YXYs9iv2YjYryDYtNiv2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25Wb2ljZURhdGEiIG1zZ2lkPSI5OTY2MzY0ODcxMDYxNzEzMjAiPiLigI/Ys9ix2YjbjNiz4oCO4oCO2YfYp9uMINi12K/Ypy/Yr9in2K/ZhyDZhdiz2K/ZiNivINi02K/ZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblZvaWNlU21zIiBtc2dpZD0iMTg4ODU4ODE1Mjc5MjAyMzg3MyI+Itiz2LHZiNuM2LPigIzZh9in24wg2LXZiNiq24wv2b7bjNin2YXaqSDZhdiz2K/ZiNivINi02K/Zh+KAjNin2YbYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkFsbCIgbXNnaWQ9IjU2NDMwMjgyNjQ0NjYwOTI4MjEiPiLYqtmF2KfZhSDYs9ix2YjbjNiz4oCM2YfYp9uMINi12K/Ypy/Yr9in2K/Zhy8g2b7bjNin2YXaqSDZhdiz2K/ZiNivINmH2LPYqtmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzVm9pY2UiIG1zZ2lkPSIxMjU4MzkzODEyMzM1MjU4MDE5Ij4i2LXZiNiq24wiPC9zdHJpbmc+CkBAIC0xMTEsMTcgKzExNiwxNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iZmNFcnJvciIgbXNnaWQ9IjMzMjc1NjAxMjY1ODg1MDA3NzciPiLZhdi02qnZhCDYr9ixINin2KrYtdin2YQg24zYpyDaqdivINmI24zamNqv24wg2YbYp9mF2LnYqtio2LEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yT2siIG1zZ2lkPSIxMTkxOTE5Mzc4MDgzNDcyMjA0Ij4i2KrYo9uM24zYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvciIgbXNnaWQ9Ijc5NTYzOTI1MTExNDY2OTg1MjIiPiLYrti32KfbjNuMINiv2LEg2LTYqNqp2Ycg2YjYrNmI2K8g2K/Yp9i02KouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yTG9va3VwIiBtc2dpZD0iNDcxMTY4NzQ1NjExMTk2MzE2MyI+IlVSTCDZvtuM2K/YpyDZhti02K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVW5zdXBwb3J0ZWRBdXRoU2NoZW1lIiBtc2dpZD0iNjI5OTk4MDI4MDQ0MjA3Njc5OSI+Iti32LHYrSDaqdmE24wg2KrYo9uM24zYryDYp9i52KrYqNin2LEg2LPYp9uM2Kog2b7YtNiq24zYqNin2YbbjCDZhtmF24zigI7YtNmI2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yTG9va3VwIiBtc2dpZD0iNDcxMTY4NzQ1NjExMTk2MzE2MyI+IuKAj1VSTCDZvtuM2K/YpyDZhti02K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVW5zdXBwb3J0ZWRBdXRoU2NoZW1lIiBtc2dpZD0iNjI5OTk4MDI4MDQ0MjA3Njc5OSI+IuKAj9i32LHYrSDaqdmE24wg2KrYo9uM24zYryDYp9i52KrYqNin2LEg2LPYp9uM2Kog2b7YtNiq24zYqNin2YbbjCDZhtmF24zigI7YtNmI2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yQXV0aCIgbXNnaWQ9IjE0MzUwNjU2Mjk0MzgwNDQ1MzQiPiLYqtij24zbjNivINin2LnYqtio2KfYsSDYp9mG2KzYp9mFINmG2LTYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JQcm94eUF1dGgiIG1zZ2lkPSIxNzg4MjA3MDEwNTU5MDgxMzMxIj4i2KrYo9uM24zYryDYp9i52KrYqNin2LEg2KfYsiDYt9ix24zZgiDYs9ix2YjYsSDZvtix2Yjaqdiz24wg2KfZhtis2KfZhSDZhti02K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yQ29ubmVjdCIgbXNnaWQ9Ijg3MTQyNzMyMzYzNjQ2NDA1NDkiPiLYp9iq2LXYp9mEINio2Ycg2LPYsdmI2LEg2KfZhtis2KfZhSDZhti02K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9ySU8iIG1zZ2lkPSIyMzQwNTU4MTk3NDg5MzAyMTg4Ij4i2KjYsdmC2LHYp9ix24wg2KfYsdiq2KjYp9i3INio2Kcg2LPYsdmI2LEg2YXZhdqp2YYg2YbYqNmI2K8uINio2LnYr9in2Ysg2K/ZiNio2KfYsdmHINin2YXYqtit2KfZhiDaqdmG24zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JUaW1lb3V0IiBtc2dpZD0iNDc0MzQwMzcwMzc2Mjg4Mzk1NCI+Itiy2YXYp9mGINin2KrYtdin2YQg2KjZhyDYs9ix2YjYsSDYqtmF2KfZhSDYtNiv2Ycg2KfYs9iqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclJlZGlyZWN0TG9vcCIgbXNnaWQ9Ijg2Nzk1OTYwOTAzOTI3Nzk1MTYiPiLYp9uM2YYg2LXZgdit2Ycg2K/Yp9ix2KfbjCDYqti52K/Yp9ivINio2LPbjNin2LEg2LLbjNin2K/bjCDYqti624zbjNixINmF2LPbjNixINiz2LHZiNixINin2LPYqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JVbnN1cHBvcnRlZFNjaGVtZSIgbXNnaWQ9IjUwMTU3MzA4MTI5MDYxOTIyMDgiPiLZvtix2YjYqtqp2YQg2b7YtNiq24zYqNin2YbbjCDZhtmF24zigI7YtNmI2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVW5zdXBwb3J0ZWRTY2hlbWUiIG1zZ2lkPSI1MDE1NzMwODEyOTA2MTkyMjA4Ij4i4oCP2b7YsdmI2KraqdmEINm+2LTYqtuM2KjYp9mG24wg2YbZhduM4oCO2LTZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckZhaWxlZFNzbEhhbmRzaGFrZSIgbXNnaWQ9Ijk2NTQ5NjA2MDAwNjU4NjQxIj4i2KfYqti12KfZhCDYp9mF2YYg2KfbjNis2KfYryDZhti02K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yQmFkVXJsIiBtc2dpZD0iMzYzNjkyOTcyMjcyODg4MTk3MiI+Itio2K/ZhNuM2YQg2YbYp9mF2LnYqtio2LEg2KjZiNiv2YYgVVJM2Iwg2KjYp9iyINqp2LHYr9mGINi12YHYrdmHINmF2YXaqdmGINmG24zYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckJhZFVybCIgbXNnaWQ9IjM2MzY5Mjk3MjI3Mjg4ODE5NzIiPiLigI/YqNiv2YTbjNmEINmG2KfZhdi52KrYqNixINio2YjYr9mGIFVSTNiMINio2KfYsiDaqdix2K/ZhiDYtdmB2K3ZhyDZhdmF2qnZhiDZhtuM2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGaWxlIiBtc2dpZD0iMjE3MDc4ODUxNTA1MjU1ODY3NiI+Itiv2LPYqtix2LPbjCDYqNmHINmB2KfbjNmEINin2YbYrNin2YUg2YbYtNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckZpbGVOb3RGb3VuZCIgbXNnaWQ9IjYyMDM4NTY2MTIwNDI2NTUwODQiPiLZgdin24zZhCDYr9ix2K7ZiNin2LPYqtuMINm+24zYr9inINmG2LTYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JUb29NYW55UmVxdWVzdHMiIG1zZ2lkPSIxMjM1Mzk2OTI3MDg3MTg4MjUzIj4i2K/Ysdiu2YjYp9iz2KrigIzZh9in24wg2LLbjNin2K/bjCDYr9ixINit2KfZhCDZvtix2K/Yp9iy2LQg2KfYs9iqLiDYqNi52K/Yp9mLINiv2YjYqNin2LHZhyDYp9mF2KrYrdin2YYg2qnZhtuM2K8uIjwvc3RyaW5nPgpAQCAtMTI5LDcgKzEzNCw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50U2VydmljZVN5bmMiIG1zZ2lkPSI4MzUzNTIzMDYwMjY5MzM1NjY3Ij4i2YfZhdqv2KfZheKAjNiz2KfYstuMIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VTeW5jTm90aWZpY2F0aW9uVGl0bGUiIG1zZ2lkPSIzOTc3NDMzNDkxOTE5MDE0NTgiPiLZh9mF2q/Yp9mF4oCM2LPYp9iy24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50U2VydmljZVRvb01hbnlEZWxldGVzTm90aWZpY2F0aW9uRGVzYyIgbXNnaWQ9IjgxMDA5ODE0MzUwODA2OTY0MzEiPiLYqti52K/Yp9ivINmF2YjYp9ix2K8g2K3YsNmBINi02K/ZhyA8eGxpZmY6ZyBpZD0iQ09OVEVOVF9UWVBFIj4lczwveGxpZmY6Zz4g2KjYs9uM2KfYsSDYstuM2KfYryDYp9iz2KouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG93X21lbW9yeSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjQ5NDAxOTIzNDEwMjE1NDg5NiI+Itit2KfZgdi42Ycg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2b7YsSDYp9iz2KohINio2LHYrtuMINin2LIg2YHYp9uM2YTigI7Zh9inINix2Kcg2K3YsNmBINqp2YbbjNivINiq2Kcg2YHYttinINii2LLYp9ivINi02YjYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfbWVtb3J5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2NDk0MDE5MjM0MTAyMTU0ODk2Ij4i4oCP2K3Yp9mB2LjZhyDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDZvtixINin2LPYqiEg2KjYsdiu24wg2KfYsiDZgdin24zZhOKAjtmH2Kcg2LHYpyDYrdiw2YEg2qnZhtuM2K8g2KrYpyDZgdi22Kcg2KLYstin2K8g2LTZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imxvd19tZW1vcnkiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDc1OTk5Mjg2NjgwMDAwNTQxIj4i2K3Yp9mB2LjZhyDYqtmE2YHZhiDZvtixINin2LPYqi4g2KjYudi224wg2KfYsiDZgdin24zZhOKAjNmH2Kcg2LHYpyDYrdiw2YEg2qnZhtuM2K8g2KrYpyDZgdi22Kcg2KLYstin2K8g2LTZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI1ODQ4NDAyMTI3NDU1MDIxNzE0Ij4i2YXZhdqp2YYg2KfYs9iqINi02KjaqdmHINmG2LjYp9ix2Kog2LTYr9mHINio2KfYtNivIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfbm90aV9ieV91bmtub3duIiBtc2dpZD0iNDQ3NTQzNzg2MjE4OTg1MDYwMiI+Itiq2YjYs9i3INuM2qkg2LTYrti1INir2KfZhNirINmG2KfYtNmG2KfYsyI8L3N0cmluZz4KQEAgLTE0OCwxMSArMTUzLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9wcm9ncmVzcyIgbXNnaWQ9IjIyODEwNzkyNTczMjk5ODEyMDMiPiLYr9ixINit2KfZhCDYrtin2YXZiNi0INi02K/ZhuKApiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm0iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMzODU3NDUxNzk1NTU3MzE0NzAiPiLYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYtNmF2Kcg2K7Yp9mF2YjYtCDZhduM4oCM2LTZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NDk3OTIxNzUyNDI4MjEzNTMiPiLar9mI2LTbjCDYtNmF2Kcg2K7Yp9mF2YjYtCDZhduM4oCM2LTZiNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm1fcXVlc3Rpb24iIG1zZ2lkPSIyOTA2NTQ0NzY4ODgxMTM2MTgzIj4i2KLbjNinINmF24zigI7YrtmI2KfZh9uM2K8g2KrZhNmB2YYg2K7Yp9mF2YjYtCDYtNmI2K/YnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm1fcXVlc3Rpb24iIG1zZ2lkPSIyOTA2NTQ0NzY4ODgxMTM2MTgzIj4i4oCP2KLbjNinINmF24zigI7YrtmI2KfZh9uM2K8g2KrZhNmB2YYg2K7Yp9mF2YjYtCDYtNmI2K/YnyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InJlYm9vdF9zYWZlbW9kZV90aXRsZSIgbXNnaWQ9IjcwNTQ1MDk5MTQ1MDAxNDAzNjEiPiLYsdin2YfigIzYp9mG2K/Yp9iy24wg2YXYrNiv2K8g2K/YsSDYrdin2YTYqiDYp9mF2YYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJyZWJvb3Rfc2FmZW1vZGVfY29uZmlybSIgbXNnaWQ9IjU1MjkzOTQ0NTAyNzg0NjY4Ij4i2KLbjNinINmF24zigIzYrtmI2KfZh9uM2K8g2KjYpyDYrdin2YTYqiDYp9mF2YYg2LHYp9mH4oCM2KfZhtiv2KfYstuMINmF2KzYr9ivINqp2YbbjNiv2J8g2KjYpyDYp9uM2YYg2qnYp9ixINmH2YXZh9mUINio2LHZhtin2YXZh+KAjNmH2KfbjCDYtNiu2LUg2KvYp9mE2KvbjCDaqdmHINmG2LXYqCDaqdix2K/Zh+KAjNin24zYryDYutuM2LHZgdi52KfZhCDZhduM4oCM2LTZiNmG2K8uINio2Kcg2LHYp9mH4oCM2KfZhtiv2KfYstuMINiv2YjYqNin2LHZhyDYs9uM2LPYqtmFINin24zZhiDYqNix2YbYp9mF2YfigIzZh9inINiv2YjYqNin2LHZhyDYqNin2LLbjNin2KjbjCDZhduM4oCM2LTZiNmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icmVjZW50X3Rhc2tzX3RpdGxlIiBtc2dpZD0iMzY5MTc2NDYyMzYzODEyNzg4OCI+Itin2K7bjNixIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibm9fcmVjZW50X3Rhc2tzIiBtc2dpZD0iODc5NDkwNjY1ODczMjE5MzQ3MyI+Itio2LHZhtin2YXZh+KAjtmH2KfbjCDYrNiv24zYryDZhdmI2KzZiNivINmG24zYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX3JlY2VudF90YXNrcyIgbXNnaWQ9Ijg3OTQ5MDY2NTg3MzIxOTM0NzMiPiLigI/YqNix2YbYp9mF2YfigI7Zh9in24wg2KzYr9uM2K8g2YXZiNis2YjYryDZhtuM2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9ucyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDA4NDc3MTQwMDg4MDUzNjY1Ij4i2q/YstuM2YbZh+KAjNmH2KfbjCDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjQwNjQxNjgzMTU0MTYxNTI1OCI+Itqv2LLbjNmG2YfigIzZh9in24wg2KrZhNmB2YYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX2xvY2siIG1zZ2lkPSIyODQ0OTQ1MTkxNzkyMTE5NzEyIj4i2YLZgdmEINi12YHYrdmHIjwvc3RyaW5nPgpAQCAtMTY4LDcgKzE3Myw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uc19haXJwbGFuZV9tb2RlX29mZl9zdGF0dXMiIG1zZ2lkPSI1MDc1MDcwNDQyODU0NDkwMjk2Ij4i2K3Yp9mE2Kog2YfZiNin2b7bjNmF2Kcg2K7Yp9mF2YjYtCDYp9iz2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbmZvX292ZXJmbG93IiBtc2dpZD0iNTMwMTk4MTc0MTcwNTM1NDk5MyI+Itio24zYtNiq2LEg2KfYsiA5OTkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzYWZlTW9kZSIgbXNnaWQ9IjI3ODgyMjgwNjE1NDc5MzAyNDYiPiLYrdin2YTYqiDYp9uM2YXZhiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfc3lzdGVtX2xhYmVsIiBtc2dpZD0iNjU3NzM3NTMzNTcyODU1MTMzNiI+Itiz24zYs9iq2YUgQW5kcm9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfc3lzdGVtX2xhYmVsIiBtc2dpZD0iNjU3NzM3NTMzNTcyODU1MTMzNiI+IuKAj9iz24zYs9iq2YUgQW5kcm9pZCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jb3N0TW9uZXkiIG1zZ2lkPSI1NDI5ODA4MjE3ODYxNDYwNDAxIj4i2LPYsdmI24zYs+KAjNmH2KfbjCDYutuM2LEg2LHYp9uM2q/Yp9mGIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19jb3N0TW9uZXkiIG1zZ2lkPSIzMjkzMzAxOTAzNDA5ODY5NDk1Ij4i2KfZhtis2KfZhSDaqdin2LHZh9in24zbjCDaqdmHINio2LHYp9uMINi02YXYpyDZh9iy24zZhtmHINiv2KfYsdivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9tZXNzYWdlcyIgbXNnaWQ9Ijc1MjEyNDkxNDg0NDU0NTY2NjIiPiLZvtuM2KfZheKAjNmH2KfbjCDYtNmF2KciPC9zdHJpbmc+CkBAIC0xODAsNyArMTg1LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9sb2NhdGlvbiIgbXNnaWQ9IjYzNTE0OTc0MjQzNjY5MjA0OSI+ItmF2YjZgti524zYqiDZhdqp2KfZhtuMINi02YXYpyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbG9jYXRpb24iIG1zZ2lkPSI1NzA0Njc5NzYzMTI0MTcwMTAwIj4i2KjYsSDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDZgduM2LLbjNqp24wg2K7ZiNivINmG2LjYp9ix2Kog2K/Yp9i02KrZhyDYqNin2LTbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9uZXR3b3JrIiBtc2dpZD0iNTgwODk4MzM3NzcyNzEwOTgzMSI+Itin2LHYqtio2KfYtyDYtNio2qnZh+KAjNin24wiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX25ldHdvcmsiIG1zZ2lkPSI0NDc4Mjk5NDEzMjQxODYxOTg3Ij4i2KjZhyDZiNuM2pjar9uM4oCO2YfYp9uMINmF2K7YqtmE2YEg2LTYqNqp2Ycg2K/Ys9iq2LHYs9uMINiv2KfYtNiq2Ycg2KjYp9i024zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX25ldHdvcmsiIG1zZ2lkPSI0NDc4Mjk5NDEzMjQxODYxOTg3Ij4i4oCP2KjZhyDZiNuM2pjar9uM4oCO2YfYp9uMINmF2K7YqtmE2YEg2LTYqNqp2Ycg2K/Ys9iq2LHYs9uMINiv2KfYtNiq2Ycg2KjYp9i024zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYmx1ZXRvb3RoTmV0d29yayIgbXNnaWQ9IjE1ODU0MDM1NDQxNjIxMjgxMDkiPiLYqNmE2YjYqtmI2KsiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2JsdWV0b290aE5ldHdvcmsiIG1zZ2lkPSI1NjI1Mjg4NTc3MTY0MjgyMzkxIj4i2KfYsiDYt9ix24zZgiDYqNmE2YjYqtmI2Ksg2KjZhyDYr9iz2Krar9in2YfigIzZh9inINmIINi02KjaqdmH4oCM2YfYpyDYr9iz2KrYsdiz24wg2K/Yp9i02KrZhyDYqNin2LTYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjgzMjkyNjE2NzAxNTE4NzEyMzUiPiLYqtmG2LjbjNmF2KfYqiDYtdiv2KciPC9zdHJpbmc+CkBAIC0yMjgsOCArMjMzLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaXNwbGF5IiBtc2dpZD0iNDI3OTkwOTY3NjAzNjQwMjYzNiI+Itix2KfYqNi3INio2LHZhtin2YXZh9mUINiv24zar9ixIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kaXNwbGF5IiBtc2dpZD0iNjA1MTAwMjAzMTkzMzAxMzcxNCI+Itix2YjbjCDYsdin2KjYtyDYqNix2YbYp9mF2YfigIzZh9in24wg2K/bjNqv2LEg2KfYq9ixINiv2KfYsdivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zdG9yYWdlIiBtc2dpZD0iMTk3MTExODc3MDU0NjMzNjk2NiI+Itit2KfZgdi42YciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N0b3JhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzQ0MjMxODUwMjQ0Njg3NDk5OSI+Itio2Ycg2K3Yp9mB2LjZh9mUIFVTQiDYr9iz2KrYsdiz24wg2b7bjNiv2Kcg2qnZhtuM2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdG9yYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iOTIwMzMwMjIxNDkxNTM1NTc3NCI+Itio2Ycg2qnYp9ix2KogU0Qg2K/Ys9iq2LHYs9uMINiv2KfYtNiq2Ycg2KjYp9i024zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N0b3JhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzQ0MjMxODUwMjQ0Njg3NDk5OSI+IuKAj9io2Ycg2K3Yp9mB2LjZh9mUIFVTQiDYr9iz2KrYsdiz24wg2b7bjNiv2Kcg2qnZhtuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdG9yYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iOTIwMzMwMjIxNDkxNTM1NTc3NCI+IuKAj9io2Ycg2qnYp9ix2KogU0Qg2K/Ys9iq2LHYs9uMINiv2KfYtNiq2Ycg2KjYp9i024zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNzkxOTAyNTYwMjI4MzU5MzkwNyI+ItmI24zamNqv24zigIzZh9in24wg2YLYp9io2YTbjNiqINiv2LPYqtix2LPbjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNDIwNTE5Njg4MTY3ODE0NDMzNSI+ItmI24zamNqv24zigIzZh9in24zbjCDaqdmHINmB2YbYp9mI2LHbjCDZhdmB24zYryDZhduM4oCM2KrZiNin2YbYryDYr9ix2K7ZiNin2LPYqiDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXRyaWV2ZVdpbmRvd0NvbnRlbnQiIG1zZ2lkPSIzOTAxNzE3OTM2OTMwMTcwMzIwIj4i2KjYp9iy24zYp9io24wg2YXYrdiq2YjYp9uMINm+2YbYrNix2YciPC9zdHJpbmc+CkBAIC0yNDEsMzggKzI0NiwzOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXF1ZXN0RmlsdGVyS2V5RXZlbnRzIiBtc2dpZD0iMjEwMzQ0MDM5MTkwMjQxMjE3NCI+ItmG2YjYtNiq2KfYsduMINix2Kcg2qnZhyDYqtin24zZviDZhduM4oCM2qnZhtuM2K8g2YXYtNin2YfYr9mHINmG2YXYp9uM24zYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXF1ZXN0RmlsdGVyS2V5RXZlbnRzIiBtc2dpZD0iNzQ2MzEzNTI5MjIwNDE1MjgxOCI+Itin2LfZhNin2LnYp9iqINi02K7YtduMINmF2KfZhtmG2K8g2LTZhdin2LHZhyDaqdin2LHYqiDYp9i52KrYqNin2LHbjCDZiCDar9iw2LHZiNin2pjZh+KAjNmH2Kcg2LHYpyDYtNin2YXZhCDZhduM4oCM2LTZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhdHVzQmFyIiBtc2dpZD0iNzQxNzE5MjYyOTYwMTg5MDc5MSI+Iti624zYsdmB2LnYp9mEINqp2LHYr9mGINuM2Kcg2KrYutuM24zYsSDZhtmI2KfYsSDZiNi22LnbjNiqIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyIiBtc2dpZD0iODQzNDY2OTU0OTUwNDI5MDk3NSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmG2YjYp9ixINmI2LbYuduM2Kog2LHYpyDYutuM2LHZgdi52KfZhCDaqdmG2K8g24zYpyDZhtmF2KfYr9mH2KfbjCDYs9uM2LPYqtmFINix2Kcg2KfYttin2YHZhyDbjNinINit2LDZgSDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyIiBtc2dpZD0iODQzNDY2OTU0OTUwNDI5MDk3NSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmG2YjYp9ixINmI2LbYuduM2Kog2LHYpyDYutuM2LHZgdi52KfZhCDaqdmG2K8g24zYpyDZhtmF2KfYr9mH2KfbjCDYs9uM2LPYqtmFINix2Kcg2KfYttin2YHZhyDbjNinINit2LDZgSDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdGF0dXNCYXJTZXJ2aWNlIiBtc2dpZD0iNzI0NzI4MTkxMTM4NzkzMTQ4NSI+ItmG2YjYp9ixINmI2LbYuduM2KoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdGF0dXNCYXJTZXJ2aWNlIiBtc2dpZD0iNzE2MTEzNjYwNzk1OTc2MDYwIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINqp2Ycg2KrYqNiv24zZhCDYqNmHINmG2YjYp9ixINmI2LbYuduM2Kog2LTZiNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXR1c0JhclNlcnZpY2UiIG1zZ2lkPSI3MTYxMTM2NjA3OTU5NzYwNjAiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2qnZhyDYqtio2K/bjNmEINio2Ycg2YbZiNin2LEg2YjYtti524zYqiDYtNmI2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9leHBhbmRTdGF0dXNCYXIiIG1zZ2lkPSIxMTQ4MTk4Nzg1OTM3NDg5MjY0Ij4i2q/Ys9iq2LHYtCDYr9in2K/Zhi/YrNmF2Lkg2qnYsdiv2YYg2YbZiNin2LEg2YjYtti524zYqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2V4cGFuZFN0YXR1c0JhciIgbXNnaWQ9IjY5MTc1NDk0MzcxMjk0MDExMzIiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZhtmI2KfYsSDYp9io2LLYp9ixINix2Kcg2KzZhdi5INqp2YbYryDbjNinINio2KfYsiDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZXhwYW5kU3RhdHVzQmFyIiBtc2dpZD0iNjkxNzU0OTQzNzEyOTQwMTEzMiI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmG2YjYp9ixINin2KjYstin2LEg2LHYpyDYrNmF2Lkg2qnZhtivINuM2Kcg2KjYp9iyINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxfc2hvcnRjdXQiIG1zZ2lkPSI0Mjc5MDcwMjE2MzcxNTY0MjM0Ij4i2YbYtdioINmF24zYp9mG4oCM2KjYsdmH2KciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnN0YWxsX3Nob3J0Y3V0IiBtc2dpZD0iODM0MTI5NTkxNjI4NjczNjk5NiI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDZhduM2KfZhuKAjNio2LHZh9in24wg2LXZgdit2Ycg2KfYtdmE24wg2LHYpyDYqNiv2YjZhiDYr9iu2KfZhNiqINqp2KfYsdio2LEg2KfYttin2YHZhyDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91bmluc3RhbGxfc2hvcnRjdXQiIG1zZ2lkPSI0NzI5NjM0NTI0MDQ0MDAzNjk5Ij4i2K3YsNmBINmG2LXYqCDZhduM2KfZhuKAjNio2LHZh9inIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdW5pbnN0YWxsX3Nob3J0Y3V0IiBtc2dpZD0iNjc0NTc0MzQ3NDI2NTA1Nzk3NSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDZhduM2KfZhuKAjNio2LHZh9in24wg2LXZgdit2Ycg2KfYtdmE24wg2LHYpyDYqNiv2YjZhiDYr9iu2KfZhNiqINqp2KfYsdio2LEg2K3YsNmBINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iMzkwNjAwNzgzMTE5Mjk5MDk0NiI+Itiq2LHYs9uM2YUg2YXYrNiv2K8g2YXYs9uM2LEg2KrZhdin2LPigIzZh9in24wg2K7YsdmI2KzbjCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iNTMzMTMxODkzMTkzNzQwMjA0MCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtmF2KfYs+KAjNmH2KfbjCDYrtix2YjYrNuMINix2Kcg2b7Ysdiv2KfYsti0INqp2YbYryDZiCDYtNmF2KfYsdmH4oCO2YfYp9uM24wg2qnZhyDYqNin24zYryDar9ix2YHYqtmHINi02YjZhtivINix2Kcg2KrYutuM24zYsSDYr9mH2K8uINin24zZhiDZhdis2YjYsiDYqNmHINio2LHZhtin2YXZhyDYp9mF2qnYp9mGINmF24zigIzYr9mH2K8g2KjZhyDaqdmG2KrYsdmE2Iwg2YfYr9in24zYqiDZhdis2K/YryDbjNinINis2YTZiNqv24zYsduMINin2LIg2KrZhdin2LPigIzZh9in24wg2K7YsdmI2KzbjCDYqNm+2LHYr9in2LLYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wcm9jZXNzT3V0Z29pbmdDYWxscyIgbXNnaWQ9IjUzMzEzMTg5MzE5Mzc0MDIwNDAiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrZhdin2LPigIzZh9in24wg2K7YsdmI2KzbjCDYsdinINm+2LHYr9in2LLYtCDaqdmG2K8g2Ygg2LTZhdin2LHZh+KAjtmH2KfbjNuMINqp2Ycg2KjYp9uM2K8g2q/YsdmB2KrZhyDYtNmI2YbYryDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiDYp9uM2YYg2YXYrNmI2LIg2KjZhyDYqNix2YbYp9mF2Ycg2KfZhdqp2KfZhiDZhduM4oCM2K/Zh9ivINio2Ycg2qnZhtiq2LHZhNiMINmH2K/Yp9uM2Kog2YXYrNiv2K8g24zYpyDYrNmE2Yjar9uM2LHbjCDYp9iyINiq2YXYp9iz4oCM2YfYp9uMINiu2LHZiNis24wg2KjZvtix2K/Yp9iy2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlU21zIiBtc2dpZD0iODY3MzQ3MTc2ODk0Nzg5NTA4MiI+Itiv2LHbjNin2YHYqiDZvtuM2KfZheKAjNmH2KfbjCDZhtmI2LTYqtin2LHbjCAo2b7bjNin2YXaqSkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlU21zIiBtc2dpZD0iNjQyNDM4Nzc1NDIyODc2NjkzOSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDZvtuM2KfZhdqp4oCM2YfYpyDYsdinINiv2LHbjNin2YHYqiDZiCDZvtix2K/Yp9iy2LQg2qnZhtivLiDYp9uM2YYg24zYudmG24wg2KjYsdmG2KfZhdmHINmF24zigIzYqtmI2KfZhtivINm+24zYp9mF4oCM2YfYp9uMINin2LHYs9in2YTbjCDYqNmHINiv2LPYqtqv2KfZhyDYtNmF2Kcg2LHYpyDYqNiv2YjZhiDZhtmF2KfbjNi0INii2YbigIzZh9inINio2Ycg2LTZhdinINit2LDZgSDbjNinINqp2YbYqtix2YQg2qnZhtivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZU1tcyIgbXNnaWQ9IjE4MjEzMTczNDQ2NjgyNTcwOTgiPiLYr9ix24zYp9mB2Kog2b7bjNin2YXigIzZh9in24wg2YbZiNi02KrYp9ix24wgKE1NUykiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlTW1zIiBtc2dpZD0iNTMzMDE5NDM3MjYzMjEyMjYwIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINm+24zYp9mF4oCM2YfYp9uMIE1NUyDYsdinINiv2LHbjNin2YHYqiDZiCDZvtix2K/Yp9iy2LQg2qnZhtivLiDYp9uM2YYg24zYudmG24wg2KjYsdmG2KfZhdmHINmF24zigIzYqtmI2KfZhtivINm+24zYp9mF4oCM2YfYp9uMINin2LHYs9in2YTbjCDYqNmHINiv2LPYqtqv2KfZhyDYtNmF2Kcg2LHYpyDYqNiv2YjZhiDZhtmF2KfbjNi0INii2YbigIzZh9inINio2Ycg2LTZhdinINit2LDZgSDbjNinINqp2YbYqtix2YQg2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZU1tcyIgbXNnaWQ9IjE4MjEzMTczNDQ2NjgyNTcwOTgiPiLigI/Yr9ix24zYp9mB2Kog2b7bjNin2YXigIzZh9in24wg2YbZiNi02KrYp9ix24wgKE1NUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlTW1zIiBtc2dpZD0iNTMzMDE5NDM3MjYzMjEyMjYwIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINm+24zYp9mF4oCM2YfYp9uMIE1NUyDYsdinINiv2LHbjNin2YHYqiDZiCDZvtix2K/Yp9iy2LQg2qnZhtivLiDYp9uM2YYg24zYudmG24wg2KjYsdmG2KfZhdmHINmF24zigIzYqtmI2KfZhtivINm+24zYp9mF4oCM2YfYp9uMINin2LHYs9in2YTbjCDYqNmHINiv2LPYqtqv2KfZhyDYtNmF2Kcg2LHYpyDYqNiv2YjZhiDZhtmF2KfbjNi0INii2YbigIzZh9inINio2Ycg2LTZhdinINit2LDZgSDbjNinINqp2YbYqtix2YQg2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9IjE4MDM0Nzc2NjA4NDYyODgwODkiPiLYr9ix24zYp9mB2Kog2b7Yrti04oCM2YfYp9uMINin2LbYt9ix2KfYsduMIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9Ijg0ODUyNDA3MDI2MjQzMTk3NCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINm+24zYp9mF4oCM2YfYp9uMINm+2K7YtCDYp9i22LfYsdin2LHbjCDYsdinINiv2LHbjNin2YHYqiDZiCDZvtix2K/Yp9iy2LQg2qnZhtivLiDYp9uM2YYg2YXYrNmI2LIg2YHZgti3INio2LHYp9uMINio2LHZhtin2YXZh+KAjtmH2KfbjCDYs9uM2LPYqtmFINiv2LEg2K/Ys9iq2LHYsyDYp9iz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9Ijg0ODUyNDA3MDI2MjQzMTk3NCI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINm+24zYp9mF4oCM2YfYp9uMINm+2K7YtCDYp9i22LfYsdin2LHbjCDYsdinINiv2LHbjNin2YHYqiDZiCDZvtix2K/Yp9iy2LQg2qnZhtivLiDYp9uM2YYg2YXYrNmI2LIg2YHZgti3INio2LHYp9uMINio2LHZhtin2YXZh+KAjtmH2KfbjCDYs9uM2LPYqtmFINiv2LEg2K/Ys9iq2LHYsyDYp9iz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2VsbEJyb2FkY2FzdHMiIG1zZ2lkPSIxNTk4MzI4ODQzNjE5NjQ2MTY2Ij4i2K7ZiNin2YbYr9mGINm+24zYp9mF4oCM2YfYp9uMINm+2K7YtCDYs9mE2YjZhNuMIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENlbGxCcm9hZGNhc3RzIiBtc2dpZD0iNjM2MTk3Mjc3NjA4MDQ1ODk3OSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDZvtuM2KfZheKAjNmH2KfbjCDZvtiu2LQg2LPZhNmI2YTbjCDYr9iz2Krar9in2Ycg2LTZhdinINix2Kcg2KjYrtmI2KfZhtivLiDZh9i02K/Yp9ix2YfYp9uMINm+2K7YtCDYs9mE2YjZhNuMINiv2LEg2KjYsdiu24wg2KfYsiDZhdmI2YLYuduM2KrigIzZh9in24wg2YXaqdin2YbbjCDYqtit2YjbjNmEINiv2KfYr9mHINmF24zigI7YtNmI2YbYryDYqtinINmF2YjZgti524zYquKAjNmH2KfbjCDYp9i22LfYsdin2LHbjCDYsdinINio2Ycg2LTZhdinINin2LnZhNin2YUg2qnZhtmG2K8uINmI2YLYqtuMINm+2K7YtCDYs9mE2YjZhNuMINiv2LHbjNin2YHYqiDZhduM4oCO2LTZiNiv2Iwg2YXZhdqp2YYg2KfYs9iqINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDYr9ixINi52YXZhNqp2LHYryDbjNinINqp2KfYsdqp2LHYryDYr9iz2Krar9in2Ycg2LTZhdinINin2K7YqtmE2KfZhCDYp9uM2KzYp9ivINqp2YbZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDZWxsQnJvYWRjYXN0cyIgbXNnaWQ9IjYzNjE5NzI3NzYwODA0NTg5NzkiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2b7bjNin2YXigIzZh9in24wg2b7Yrti0INiz2YTZiNmE24wg2K/Ys9iq2q/Yp9mHINi02YXYpyDYsdinINio2K7ZiNin2YbYry4g2YfYtNiv2KfYsdmH2KfbjCDZvtiu2LQg2LPZhNmI2YTbjCDYr9ixINio2LHYrtuMINin2LIg2YXZiNmC2LnbjNiq4oCM2YfYp9uMINmF2qnYp9mG24wg2KrYrdmI24zZhCDYr9in2K/ZhyDZhduM4oCO2LTZiNmG2K8g2KrYpyDZhdmI2YLYuduM2KrigIzZh9in24wg2KfYtti32LHYp9ix24wg2LHYpyDYqNmHINi02YXYpyDYp9i52YTYp9mFINqp2YbZhtivLiDZiNmC2KrbjCDZvtiu2LQg2LPZhNmI2YTbjCDYr9ix24zYp9mB2Kog2YXbjOKAjti02YjYr9iMINmF2YXaqdmGINin2LPYqiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2K/YsSDYudmF2YTaqdix2K8g24zYpyDaqdin2LHaqdix2K8g2K/Ys9iq2q/Yp9mHINi02YXYpyDYp9iu2KrZhNin2YQg2KfbjNis2KfYryDaqdmG2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlbmRTbXMiIG1zZ2lkPSI1NjAwODMwNjEyMTQ3NjcxNTI5Ij4i2KfYsdiz2KfZhCDZvtuM2KfZhdqpINmH2KciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZW5kU21zIiBtc2dpZD0iNzA5NDcyOTI5ODIwNDkzNzY2NyI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDZvtuM2KfZhdqp4oCM2YfYpyDYsdinINin2LHYs9in2YQg2qnZhtivLiDYp9uM2YYg2KjYp9i52Ksg2KfbjNis2KfYryDZh9iy24zZhtmH4oCM2YfYp9uMINm+24zYtOKAjNio24zZhtuMINmG2LTYr9mHINmF24zigIzYtNmI2K8uINio2LHZhtin2YXZh+KAjNmH2KfbjCDZhdiu2LHYqCDZhdmF2qnZhiDYp9iz2Kog2KjYpyDYp9ix2LPYp9mEINm+24zYp9mFINio2K/ZiNmGINiq2KPbjNuM2K8g2LTZhdinINmH2LLbjNmG2YfigIzZh9in24zbjCDYsdinINio2LHYp9uMINi02YXYpyDYp9uM2KzYp9ivINqp2YbZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9Ijg3MTM4ODkxMDUzMDU5NDMyMDAiPiLYp9ix2LPYp9mEINix2YjbjNiv2KfYr9mH2KfbjCDCq9m+2KfYs9iu4oCMINin2LIg2LfYsduM2YIg2b7bjNin2YXCuyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRSZXNwb25kVmlhTWVzc2FnZVJlcXVlc3QiIG1zZ2lkPSI3MTA3NjQ4NTQ4NDY4Nzc4NzM0Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINiv2LHYrtmI2KfYs9iq4oCM2YfYpyDYsdinINio2LHYp9uMINiv24zar9ixINio2LHZhtin2YXZh+KAjNmH2KfbjCDZvtuM2KfZheKAjNix2LPYp9mG24wg2KjZgdix2LPYqtivINiq2Kcg2KjZhyDYsdmI24zYr9in2K/Zh9in24wgwqvZvtin2LPYruKAjCDYp9iyINi32LHbjNmCINm+24zYp9mFwrsg2KjYsdin24wg2KrZhdin2LPigIzZh9in24wg2K/YsduM2KfZgdiq24wg2LHYs9uM2K/ar9uMINqp2YbYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTbXMiIG1zZ2lkPSI4NzQ1MDg2NTcyMjEzMjcwNDgwIj4i2K7ZiNin2YbYr9mGINm+24zYp9mF4oCM2YfYp9uMINmG2YjYtNiq2KfYsduMINi02YXYpyAo2b7bjNin2YXaqSDbjNinIE1NUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTbXMiIG1zZ2lkPSI4NzQ1MDg2NTcyMjEzMjcwNDgwIj4i4oCP2K7ZiNin2YbYr9mGINm+24zYp9mF4oCM2YfYp9uMINmG2YjYtNiq2KfYsduMINi02YXYpyAo2b7bjNin2YXaqSDbjNinIE1NUykiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNDY3OTgxNTQ4Njg0NzM1NTIyIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINm+24zYp9mF2qnigIzZh9in24wg2LDYrtuM2LHZhyDYtNiv2Ycg2K/YsSDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDbjNinINiz24zZhSDaqdin2LHYqiDYtNmF2Kcg2LHYpyDYqNiu2YjYp9mG2K8uINin24zZhiDZiNuM2pjar9uMINio2Ycg2KjYsdmG2KfZhdmHINin2YXaqdin2YYg2YXbjOKAjNiv2YfYryDZh9mF2Ycg2b7bjNin2YXaqeKAjNmH2Kcg2LHYpyDYtdix2YHZhti42LEg2KfYsiDZhdit2KrZiNinINuM2Kcg2YXYrdix2YXYp9mG2Ycg2KjZiNiv2YYg2KLZhuKAjNmH2Kcg2KjYrtmI2KfZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNjk1OTY3NTMzNDU3MjQwNTUwIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINm+24zYp9mF2qnigIzZh9in24wg2LDYrtuM2LHZhyDYtNiv2Ycg2K/YsSDYqtmE2YHZhiDbjNinINiz24zZhSDaqdin2LHYqiDYtNmF2Kcg2LHYpyDYqNiu2YjYp9mG2K8uINin24zZhiDZiNuM2pjar9uMINio2Ycg2KjYsdmG2KfZhdmHINin2YXaqdin2YYg2YXbjOKAjNiv2YfYryDZh9mF2Ycg2b7bjNin2YXaqeKAjNmH2Kcg2LHYpyDYtdix2YHZhti42LEg2KfYsiDZhdit2KrZiNinINuM2Kcg2YXYrdix2YXYp9mG2Ycg2KjZiNiv2YYg2KLZhuKAjNmH2Kcg2KjYrtmI2KfZhtivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTbXMiIG1zZ2lkPSIzMjE2OTUwNDcyNjM2MjE0Nzc0Ij4i2YjbjNix2KfbjNi0INm+24zYp9mF4oCM2YfYp9uMINmG2YjYtNiq2KfYsduMINi02YXYpyAo2b7bjNin2YXaqSDbjNinIE1NUykiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNtcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNTE2MDQxMzk0Nzc5NDUwMTUzOCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINiv2LEg2b7bjNin2YXigIzZh9in24wg2qnZiNiq2KfZhyDYsNiu24zYsdmHINi02K/ZhyDYr9ixINix2KfbjNin2YbZh9mUINmE2YjYrduMINuM2Kcg2LPbjNmFINqp2KfYsdiqINio2YbZiNuM2LPYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINm+24zYp9mF4oCM2YfYp9uMINi02YXYpyDYsdinINit2LDZgSDZhduM4oCO2qnZhtmG2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjY4NjY4NzA5MDUyMzI4NTY3Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2K/YsSDZvtuM2KfZheKAjNmH2KfbjCDaqdmI2KrYp9mHINiw2K7bjNix2Ycg2LTYr9mHINiv2LEg2KrZhNmB2YYg24zYpyDYs9uM2YUg2qnYp9ix2Kog2KjZhtmI24zYs9ivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDZvtuM2KfZheKAjNmH2KfbjCDYtNmF2Kcg2LHYpyDYrdiw2YEg2qnZhtmG2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9IjU5OTEzOTg3MTE5MzY1OTA0MTAiPiLYr9ix24zYp9mB2Kog2b7bjNin2YXigIzZh9in24wg2YbZiNi02KrYp9ix24wgKFdBUCkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9Ijc0ODIzMjE5MDIyMDU4MzM4NSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDZvtuM2KfZheKAjNmH2KfbjCBXQVAg2LHYpyDYr9ix24zYp9mB2Kog2Ygg2b7Ysdiv2KfYsti0INqp2YbYry4g2KfbjNmGINmF2KzZiNiyINmF24zigIzYqtmI2KfZhtivINm+24zYp9mF4oCM2YfYp9uMINin2LHYs9in2YTbjCDYqNmHINi02YXYpyDYsdinINio2K/ZiNmGINmG2YXYp9uM2LQg2KLZhuKAjNmH2Kcg2KjZhyDYtNmF2Kcg2K3YsNmBINuM2Kcg2qnZhtiq2LHZhCDaqdmG2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRUYXNrcyIgbXNnaWQ9IjY0NjYwOTUzOTY2MjM5MzM5MDYiPiLYqNin2LLbjNin2KjbjCDYqNix2YbYp9mF2YfigI7Zh9in24wg2K/YsSDYrdin2YQg2KfYrNix2KciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU21zIiBtc2dpZD0iMzIxNjk1MDQ3MjYzNjIxNDc3NCI+IuKAj9mI24zYsdin24zYtCDZvtuM2KfZheKAjNmH2KfbjCDZhtmI2LTYqtin2LHbjCDYtNmF2KcgKNm+24zYp9mF2qkg24zYpyBNTVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjUxNjA0MTM5NDc3OTQ1MDE1MzgiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYr9ixINm+24zYp9mF4oCM2YfYp9uMINqp2YjYqtin2Ycg2LDYrtuM2LHZhyDYtNiv2Ycg2K/YsSDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDbjNinINiz24zZhSDaqdin2LHYqiDYqNmG2YjbjNiz2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZvtuM2KfZheKAjNmH2KfbjCDYtNmF2Kcg2LHYpyDYrdiw2YEg2YXbjOKAjtqp2YbZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzI2ODY2ODcwOTA1MjMyODU2NyI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINiv2LEg2b7bjNin2YXigIzZh9in24wg2qnZiNiq2KfZhyDYsNiu24zYsdmHINi02K/ZhyDYr9ixINiq2YTZgdmGINuM2Kcg2LPbjNmFINqp2KfYsdiqINio2YbZiNuM2LPYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINmF24zigI7YqtmI2KfZhtmG2K8g2b7bjNin2YXigIzZh9in24wg2LTZhdinINix2Kcg2K3YsNmBINqp2YbZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI1OTkxMzk4NzExOTM2NTkwNDEwIj4i4oCP2K/YsduM2KfZgdiqINm+24zYp9mF4oCM2YfYp9uMINmG2YjYtNiq2KfYsduMIChXQVApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI3NDgyMzIxOTAyMjA1ODMzODUiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2b7bjNin2YXigIzZh9in24wgV0FQINix2Kcg2K/YsduM2KfZgdiqINmIINm+2LHYr9in2LLYtCDaqdmG2K8uINin24zZhiDZhdis2YjYsiDZhduM4oCM2KrZiNin2YbYryDZvtuM2KfZheKAjNmH2KfbjCDYp9ix2LPYp9mE24wg2KjZhyDYtNmF2Kcg2LHYpyDYqNiv2YjZhiDZhtmF2KfbjNi0INii2YbigIzZh9inINio2Ycg2LTZhdinINit2LDZgSDbjNinINqp2YbYqtix2YQg2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0VGFza3MiIG1zZ2lkPSI2NDY2MDk1Mzk2NjIzOTMzOTA2Ij4i4oCP2KjYp9iy24zYp9io24wg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINiv2LEg2K3Yp9mEINin2KzYsdinIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0VGFza3MiIG1zZ2lkPSI3NDU0MjE1OTk1ODQ3NjU4MTAyIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfZhdqp2KfZhiDZhduM4oCM2K/Zh9ivINin2LfZhNin2LnYp9iqINmF2LHYqNmI2Lcg2KjZhyDaqdin2LHZh9in24wg2K/YsSDYrdin2YQg2KfYrNix2KfbjCDYp9iu24zYsSDZiCDaqdmG2YjZhtuMINix2Kcg2KjYp9iy24zYp9io24wg2qnZhtivLiDYp9uM2YYg2YXZhdqp2YYg2KfYs9iqINio2Ycg2KjYsdmG2KfZhdmHINin2YXaqdin2YYg2K/Zh9ivINio2Ycg2KfYt9mE2KfYudin2Kog2YXYsdio2YjYtyDYqNmHINio2LHZhtin2YXZh+KAjNmH2KfbjNuMINqp2Ycg2K/YsSDYr9iz2Krar9in2Ycg2KfYs9iq2YHYp9iv2Ycg2YXbjOKAjNi02YjZhtivINiv2LPYqiDbjNin2KjYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVyYWN0QWNyb3NzVXNlcnMiIG1zZ2lkPSI3MTE0MjU1MjgxOTQ0MjExNjgyIj4i2KfYsdiq2KjYp9i3INio24zZhiDaqdin2LHYqNix2KfZhiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludGVyYWN0QWNyb3NzVXNlcnMiIG1zZ2lkPSIzNjQ2NzA5NjM2MjMzODU3ODYiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2KfZgtiv2KfZhdin2KrbjCDYr9ixINio24zZhiDaqdin2LHYqNix2KfZhiDZhdiu2KrZhNmBINiv2LEg2K/Ys9iq2q/Yp9mHINin2YbYrNin2YUg2K/Zh9ivLiDZhdmF2qnZhiDYp9iz2Kog2KjYsdmG2KfZhdmH4oCM2YfYp9uMINmF2K7YsdioINin2LIg2KfbjNmGINmC2KfYqNmE24zYqiDYqNix2KfbjCDZhtmC2LYg2K3Zgdin2LjYqiDZhdmI2KzZiNivINiv2LEg2KjbjNmGINqp2KfYsdio2LHYp9mGINin2LPYqtmB2KfYr9mHINqp2YbZhtivLiI8L3N0cmluZz4KQEAgLTI4MSwzMyArMjg2LDMzIEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzZXJzIiBtc2dpZD0iMTY3NjE1MDkxMTY3MjI4MjQyOCI+ItmF2K/bjNix24zYqiDaqdin2LHYqNix2KfZhiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZVVzZXJzIiBtc2dpZD0iODQwOTMwNjY2NzY0NTM1NTYzOCI+Itio2Ycg2KjYsdmG2KfZhdmH4oCM2YfYpyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2YXYr9uM2LHbjNiqINqp2KfYsdio2LHYp9mG2Iwg2KfYsiDZgtio24zZhCDZvtix2LPYtNiMINin24zYrNin2K8g2Ygg2K3YsNmBINqp2KfYsdio2LHYp9mG2Iwg2LHYpyDYr9ixINiv2LPYqtqv2KfZhyDYp9mG2KzYp9mFINiv2YfZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0RGV0YWlsZWRUYXNrcyIgbXNnaWQ9IjYyMjk0Njg2NzQ3NTM1Mjk1MDEiPiLYqNin2LLbjNin2KjbjCDYrNiy2KbbjNin2Kog2KjYsdmG2KfZhdmH4oCM2YfYp9uMINiv2LEg2K3Yp9mEINin2KzYsdinIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0RGV0YWlsZWRUYXNrcyIgbXNnaWQ9IjE1MzgyNDc0MTQ0MDcxNzU5OSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINin2LfZhNin2LnYp9iqINmF2YHYtdmE24wg2YXYsdio2YjYtyDYqNmHINqp2KfYsdmH2KfbjNuMINqp2Ycg2K/YsSDYrdin2YQg2K3Yp9i22LEg2Ygg2KfYrtuM2LHYp9mLINin2KzYsdinINmF24zigI7YtNmI2YbYryDYsdinINio2KfYstuM2KfYqNuMINqp2YbYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINmF24zigI7YqtmI2KfZhtmG2K8g2KfYt9mE2KfYudin2Kog2LTYrti124wg2YXYsdio2YjYtyDYqNmHINio2LHZhtin2YXZh+KAjtmH2KfbjCDYr9uM2q/YsSDYsdinINm+24zYr9inINqp2YbZhtivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVvcmRlclRhc2tzIiBtc2dpZD0iMjAxODU3NTUyNjkzNDQyMjc3OSI+Itiq2YbYuNuM2YUg2YXYrNiv2K8g2KrYsdiq24zYqCDYqNix2YbYp9mF2YfigI7Zh9in24wg2K/YsSDYrdin2YQg2KfYrNix2KciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZW9yZGVyVGFza3MiIG1zZ2lkPSI3NzM0MjE3NzU0ODc3NDM5MzUxIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2qnYp9ix2YfYpyDYsdinINio2Ycg2b7bjNi04oCM2LLZhduM2YbZhyDZiCDZvtiz4oCM2LLZhduM2YbZhyDZhdmG2KrZgtmEINqp2YbYry4g2KjYsdmG2KfZhdmH4oCOINmF2YXaqdmGINin2LPYqiDYqNiv2YjZhiDYr9iu2KfZhNiqINi02YXYpyDYp9uM2YYg2qnYp9ixINix2Kcg2KfZhtis2KfZhSDYr9mH2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZW1vdmVUYXNrcyIgbXNnaWQ9IjY4MjE1MTM0MDE4NzAzNzc0MDMiPiLZhdiq2YjZgtmBINqp2LHYr9mGINio2LHZhtin2YXZh+KAjtmH2KfbjCDYr9ixINit2KfZhCDYp9is2LHYpyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlbW92ZVRhc2tzIiBtc2dpZD0iMTM5NDcxNDM1MjA2MjYzNTQ5MyI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINqp2KfYsdmH2Kcg2LHYpyDYrdiw2YEg2qnZhtivINmIINio2LHZhtin2YXZh+KAjtmH2KfbjCDYotmG4oCM2YfYpyDYsdinINmF2KrZiNmC2YEg2qnZhtivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjNiq2YjYp9mG2YbYryDYr9ixINin2KzYsdin24wg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINiv24zar9ixINin2K7YqtmE2KfZhCDYp9uM2KzYp9ivIOKAjtqp2YbZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldERldGFpbGVkVGFza3MiIG1zZ2lkPSIxNTM4MjQ3NDE0NDA3MTc1OTkiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYp9i32YTYp9i52KfYqiDZhdmB2LXZhNuMINmF2LHYqNmI2Lcg2KjZhyDaqdin2LHZh9in24zbjCDaqdmHINiv2LEg2K3Yp9mEINit2KfYttixINmIINin2K7bjNix2KfZiyDYp9is2LHYpyDZhduM4oCO2LTZiNmG2K8g2LHYpyDYqNin2LLbjNin2KjbjCDaqdmG2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINin2LfZhNin2LnYp9iqINi02K7YtduMINmF2LHYqNmI2Lcg2KjZhyDYqNix2YbYp9mF2YfigI7Zh9in24wg2K/bjNqv2LEg2LHYpyDZvtuM2K/YpyDaqdmG2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3Jlb3JkZXJUYXNrcyIgbXNnaWQ9IjIwMTg1NzU1MjY5MzQ0MjI3NzkiPiLigI/YqtmG2LjbjNmFINmF2KzYr9ivINiq2LHYqtuM2Kgg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINiv2LEg2K3Yp9mEINin2KzYsdinIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVvcmRlclRhc2tzIiBtc2dpZD0iNzczNDIxNzc1NDg3NzQzOTM1MSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINqp2KfYsdmH2Kcg2LHYpyDYqNmHINm+24zYtOKAjNiy2YXbjNmG2Ycg2Ygg2b7Ys+KAjNiy2YXbjNmG2Ycg2YXZhtiq2YLZhCDaqdmG2K8uINio2LHZhtin2YXZh+KAjiDZhdmF2qnZhiDYp9iz2Kog2KjYr9mI2YYg2K/Yrtin2YTYqiDYtNmF2Kcg2KfbjNmGINqp2KfYsSDYsdinINin2YbYrNin2YUg2K/Zh9ivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVtb3ZlVGFza3MiIG1zZ2lkPSI2ODIxNTEzNDAxODcwMzc3NDAzIj4i4oCP2YXYqtmI2YLZgSDaqdix2K/ZhiDYqNix2YbYp9mF2YfigI7Zh9in24wg2K/YsSDYrdin2YQg2KfYrNix2KciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZW1vdmVUYXNrcyIgbXNnaWQ9IjEzOTQ3MTQzNTIwNjI2MzU0OTMiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDaqdin2LHZh9inINix2Kcg2K3YsNmBINqp2YbYryDZiCDYqNix2YbYp9mF2YfigI7Zh9in24wg2KLZhuKAjNmH2Kcg2LHYpyDZhdiq2YjZgtmBINqp2YbYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINmF24zigIzYqtmI2KfZhtmG2K8g2K/YsSDYp9is2LHYp9uMINio2LHZhtin2YXZh+KAjtmH2KfbjCDYr9uM2q/YsSDYp9iu2KrZhNin2YQg2KfbjNis2KfYryDigI7aqdmG2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFjdGl2aXR5U3RhY2tzIiBtc2dpZD0iNzM5MTE5MTM4NDAyNzMwMzA2NSI+ItmF2K/bjNix24zYqiDZvti02KrZh+KAjNmH2KfbjCDZgdi52KfZhNuM2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjE2MTU4ODE5MzMwMzQwODQ0NDAiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2b7YtNiq2YfigIzZh9in24wg2YHYudin2YTbjNiq24wg2qnZhyDYs9in24zYsSDYqNix2YbYp9mF2YfigIzZh9inINiv2LEg2KLZhtmH2Kcg2KfYrNix2Kcg2YXbjOKAjNi02YjZhtivINix2Kcg2KfYttin2YHZhyDbjNinINit2LDZgSDaqdmG2K8g2Ygg2KrYutuM24zYsSDYr9mH2K8uINio2LHZhtin2YXZh+KAjNmH2KfbjCDZhdiu2LHYqCDZhdmF2qnZhiDYp9iz2Kog2YHYudin2YTbjNiqINio2LHZhtin2YXZh+KAjNmH2KfbjCDYr9uM2q/YsSDYsdinINmF2K7YqtmEINqp2YbZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhcnRBbnlBY3Rpdml0eSIgbXNnaWQ9IjI5MTg3NjgyMzgwNDUyMDY0NTYiPiLYtNix2YjYuSDZh9ixINmG2YjYuSDZgdi52KfZhNuM2KoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdGFydEFueUFjdGl2aXR5IiBtc2dpZD0iOTk3ODIzNjk1MzQzNTg0MDAxIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINmH2LEg2YHYudin2YTbjNiq24wg2LHYpyDYtNix2YjYuSDaqdmG2K8g2KjYr9mI2YYg2KfbjNmG2qnZhyDZiNi22LnbjNiqINi12KfYr9ix2LTYr9mHINuM2Kcg2K3Zgdin2LjYqiDYqNinINmF2KzZiNiyINiv2LEg2YbYuNixINqv2LHZgdiq2Ycg2LTZiNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXJ0QW55QWN0aXZpdHkiIG1zZ2lkPSI5OTc4MjM2OTUzNDM1ODQwMDEiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2YfYsSDZgdi52KfZhNuM2KrbjCDYsdinINi02LHZiNi5INqp2YbYryDYqNiv2YjZhiDYp9uM2YbaqdmHINmI2LbYuduM2Kog2LXYp9iv2LHYtNiv2Ycg24zYpyDYrdmB2KfYuNiqINio2Kcg2YXYrNmI2LIg2K/YsSDZhti42LEg2q/YsdmB2KrZhyDYtNmI2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjk3NTM4NzExODg2MTg0MjA2MSI+Itiq2YbYuNuM2YUg2LPYp9iy2q/Yp9ix24wg2KjYpyDYtdmB2K3Zh9mUINmG2YXYp9uM2LQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjkyMDQzNjE4NjkzOTE3Mzc0Ij4i2KjZhyDYqNix2YbYp9mF2YfZlCDaqdin2LHYqNix2K/bjCDYp9is2KfYstmHINqp2YbYqtix2YQg2K3Yp9mE2Kog2LPYp9iy2q/Yp9ix24wg2LXZgdit2YfZlCDZhtmF2KfbjNi0INio2LHYp9uMINio2LHZhtin2YXZh+KAjNmH2KfbjCDYr9uM2q/YsSDYsdinINmF24zigIzYr9mH2K8uINio2LHZhtin2YXZh+KAjNmH2KfbjCDYrtix2KfYqNqp2KfYsSDZhdmF2qnZhiDYp9iz2Kog2KjYp9i52Ksg2qnYp9ix2qnYsdivINmG2KfYr9ix2LPYqiDYr9uM2q/YsSDYqNix2YbYp9mF2YfigIzZh9inINi02YjZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0RGVidWdBcHAiIG1zZ2lkPSIzMDIyMTA3MTk4Njg2NTg0MDUyIj4i2YHYudin2YQg2qnYsdiv2YYg2LnbjNio4oCM24zYp9io24wg2KjYsdmG2KfZhdmHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0RGVidWdBcHAiIG1zZ2lkPSI0NDc0NTEyNDE2Mjk5MDEzMjU2Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2LnbjNio4oCM24zYp9io24wg2LHYpyDYqNix2KfbjCDYqNix2YbYp9mF2YfigIzYp9uMINiv24zar9ixINmB2LnYp9mEINqp2YbYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINmF24zigI7YqtmI2KfZhtmG2K8g2KfYsiDYotmGINin2LPYqtmB2KfYr9mHINqp2YbZhtivINiq2Kcg2KfYrNix2KfbjCDYqNix2YbYp9mF2YfigI7Zh9in24wg2K/bjNqv2LEg2LHYpyDZhdiq2YjZgtmBINqp2YbZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldERlYnVnQXBwIiBtc2dpZD0iNDQ3NDUxMjQxNjI5OTAxMzI1NiI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINi524zYqOKAjNuM2KfYqNuMINix2Kcg2KjYsdin24wg2KjYsdmG2KfZhdmH4oCM2KfbjCDYr9uM2q/YsSDZgdi52KfZhCDaqdmG2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINin2LIg2KLZhiDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYryDYqtinINin2KzYsdin24wg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINiv24zar9ixINix2Kcg2YXYqtmI2YLZgSDaqdmG2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZUNvbmZpZ3VyYXRpb24iIG1zZ2lkPSI0MTYyMDkyMTg1MTI0MjM0NDgwIj4i2KrYutuM24zYsSDYqtmG2LjbjNmF2KfYqiDZhtmF2KfbjNi02q/YsSDYs9uM2LPYqtmFIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29uZmlndXJhdGlvbiIgbXNnaWQ9IjQzNzIyMjM4NzMxNTQyOTYwNzYiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZvtuM2qnYsdio2YbYr9uMINmB2LnZhNuM2Iwg2KfYsiDZgtio24zZhCDYp9mG2K/Yp9iy2Ycg2qnZhNuMINmC2YTZhSDbjNinINmF2K3ZhNiMINix2Kcg2KrYutuM24zYsSDYr9mH2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29uZmlndXJhdGlvbiIgbXNnaWQ9IjQzNzIyMjM4NzMxNTQyOTYwNzYiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZvtuM2qnYsdio2YbYr9uMINmB2LnZhNuM2Iwg2KfYsiDZgtio24zZhCDYp9mG2K/Yp9iy2Ycg2qnZhNuMINmC2YTZhSDbjNinINmF2K3ZhNiMINix2Kcg2KrYutuM24zYsSDYr9mH2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9lbmFibGVDYXJNb2RlIiBtc2dpZD0iNTY4NDUwNDA1ODE5MjkyMTA5OCI+ItmB2LnYp9mEINqp2LHYr9mGINit2KfZhNiqINiu2YjYr9ix2YgiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19lbmFibGVDYXJNb2RlIiBtc2dpZD0iNDg1MzE4NzQyNTc1MTQxOTQ2NyI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINit2KfZhNiqINiu2YjYr9ix2Ygg2LHYpyDZgdi52KfZhCDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZW5hYmxlQ2FyTW9kZSIgbXNnaWQ9IjQ4NTMxODc0MjU3NTE0MTk0NjciPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYrdin2YTYqiDYrtmI2K/YsdmIINix2Kcg2YHYudin2YQg2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfa2lsbEJhY2tncm91bmRQcm9jZXNzZXMiIG1zZ2lkPSIzOTE0MDI2Njg3NDIwMTc3MjAyIj4i2KjYs9iq2YYg2LPYp9uM2LEg2KjYsdmG2KfZhdmH4oCM2YfYpyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iNDU5MzM1MzIzNTk1OTczMzExOSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2YXaqdin2YYg2YXbjOKAjNiv2YfYryDYqNmHINmB2LHYotuM2YbYr9mH2KfbjCDZvtiz4oCM2LLZhduM2YbZhyDYs9in24zYsSDYqNix2YbYp9mF2YfigIzZh9inINm+2KfbjNin2YYg2K/Zh9ivLiDYp9uM2YYg2YXZhdqp2YYg2KfYs9iqINio2KfYudirINi02YjYryDYs9in24zYsSDYqNix2YbYp9mF2YfigIzZh9inINmF2KrZiNmC2YEg2LTZiNmG2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mb3JjZVN0b3BQYWNrYWdlcyIgbXNnaWQ9IjIzMjk2Mjc0Mjg4MzIwNjc3MDAiPiLYqtmI2YLZgSDYp9is2KjYp9ix24wg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINiv24zar9ixIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZm9yY2VTdG9wUGFja2FnZXMiIG1zZ2lkPSI1MjUzMTU3Mjk2MTgzOTQwODEyIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KjZhyDYp9is2KjYp9ixINio2LHZhtin2YXZh+KAjtmH2KfbjCDYr9uM2q/YsSDYsdinINmF2KrZiNmC2YEg2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZm9yY2VTdG9wUGFja2FnZXMiIG1zZ2lkPSIyMzI5NjI3NDI4ODMyMDY3NzAwIj4i4oCP2KrZiNmC2YEg2KfYrNio2KfYsduMINio2LHZhtin2YXZh+KAjtmH2KfbjCDYr9uM2q/YsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZvcmNlU3RvcFBhY2thZ2VzIiBtc2dpZD0iNTI1MzE1NzI5NjE4Mzk0MDgxMiI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2Ycg2KfYrNio2KfYsSDYqNix2YbYp9mF2YfigI7Zh9in24wg2K/bjNqv2LEg2LHYpyDZhdiq2YjZgtmBINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZvcmNlQmFjayIgbXNnaWQ9IjY1MjkzNTIwNDA3MjU4NDYxNiI+Itio2LPYqtmGINin2KzYqNin2LHbjCDYqNix2YbYp9mF2YciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mb3JjZUJhY2siIG1zZ2lkPSIzODkyMjk1ODMwNDE5NTEzNjIzIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KjYsdmG2KfZhdmH4oCM2KfbjCDYsdinINqp2Ycg2K/YsSDZvtuM2LQg2LLZhduM2YbZhyDYp9iz2Kog2KjYqNmG2K/YryDZiCDYqNix2q/Ysdiv2K8uINio2LHYp9uMINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhdmI2LHYryDZhtuM2KfYsiDZhtuM2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mb3JjZUJhY2siIG1zZ2lkPSIzODkyMjk1ODMwNDE5NTEzNjIzIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KjYsdmG2KfZhdmH4oCM2KfbjCDYsdinINqp2Ycg2K/YsSDZvtuM2LQg2LLZhduM2YbZhyDYp9iz2Kog2KjYqNmG2K/YryDZiCDYqNix2q/Ysdiv2K8uINio2LHYp9uMINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhdmI2LHYryDZhtuM2KfYsiDZhtuM2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2R1bXAiIG1zZ2lkPSIxNjgxNzk5ODYyNDM4OTU0NzUyIj4i2KjYp9iy24zYp9io24wg2YjYtti524zYqiDYr9in2K7ZhNuMINiz24zYs9iq2YUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kdW1wIiBtc2dpZD0iMTc3ODI5OTA4ODY5MjI5MDMyOSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmI2LbYuduM2Kog2K/Yp9iu2YTbjCDYs9uM2LPYqtmFINix2Kcg2KjYp9iy24zYp9io24wg2qnZhtivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDYp9mG2YjYp9i5INmF2K7YqtmE2YHbjCDYp9iyINin2LfZhNin2LnYp9iqINiu2LXZiNi124wg2Ygg2KfZhdmGINix2Kcg2qnZhyDZhdi52YXZiNmE2Kcg2KjZhyDYotmG4oCM2YfYpyDZhtuM2KfYsiDZhtiv2KfYsdmG2K/YjCDYqNin2LLbjNin2KjbjCDaqdmG2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kdW1wIiBtc2dpZD0iMTc3ODI5OTA4ODY5MjI5MDMyOSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmI2LbYuduM2Kog2K/Yp9iu2YTbjCDYs9uM2LPYqtmFINix2Kcg2KjYp9iy24zYp9io24wg2qnZhtivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDYp9mG2YjYp9i5INmF2K7YqtmE2YHbjCDYp9iyINin2LfZhNin2LnYp9iqINiu2LXZiNi124wg2Ygg2KfZhdmGINix2Kcg2qnZhyDZhdi52YXZiNmE2Kcg2KjZhyDYotmG4oCM2YfYpyDZhtuM2KfYsiDZhtiv2KfYsdmG2K/YjCDYqNin2LLbjNin2KjbjCDaqdmG2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iODAyMjU4ODYwODk5NDU4OTkzOCI+Itio2KfYstuM2KfYqNuMINmF2K3YqtmI2KfbjCDYtdmB2K3ZhyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iMzE5MzI2OTA2OTQ2OTcwMDI2NSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmF2K3YqtmI2KfbjCDZvtmG2KzYsdmHINmB2LnYp9mEINix2Kcg2KjYp9iy24zYp9io24wg2qnZhtivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDaqdmEINmF2K3YqtmI2KfbjCDZvtmG2KzYsdmHINix2Kcg2KjYp9iy24zYp9io24wg2qnZhtmG2K8g2Ygg2YfZhdmHINmF2KrZhiDYotmG2LHYpyDYqNmHINi624zYsSDYp9iyINqv2LDYsdmI2KfamNmH4oCO2YfYpyDYp9mF2KrYrdin2YYg2qnZhtmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmV0cmlldmVfd2luZG93X2NvbnRlbnQiIG1zZ2lkPSIzMTkzMjY5MDY5NDY5NzAwMjY1Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2YXYrdiq2YjYp9uMINm+2YbYrNix2Ycg2YHYudin2YQg2LHYpyDYqNin2LLbjNin2KjbjCDaqdmG2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINqp2YQg2YXYrdiq2YjYp9uMINm+2YbYrNix2Ycg2LHYpyDYqNin2LLbjNin2KjbjCDaqdmG2YbYryDZiCDZh9mF2Ycg2YXYqtmGINii2YbYsdinINio2Ycg2LrbjNixINin2LIg2q/YsNix2YjYp9qY2YfigI7Zh9inINin2YXYqtit2KfZhiDaqdmG2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3RlbXBvcmFyeV9lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjIzMTI2MTIxMzUxMjczMTAyNTQiPiLZgtin2KjZhNuM2Kog2K/Ys9iq2LHYs9uMINio2Ycg2LfZiNixINmF2YjZgtiqINmB2LnYp9mEINi02YjYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3RlbXBvcmFyeV9lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjgwNzk0NTYyOTMxODI5NzU0NjQiPiLYqNmHINuM2qkg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYqNmHINi12YjYsdiqINmF2YjZgtiqINmC2KfYqNmE24zYqiDYr9iz2KrYsdiz24wg2LHYpyDYr9ixINiv2LPYqtqv2KfZhyDZgdi52KfZhCDaqdmG2K8uINio2LHZhtin2YXZh+KAjNmH2KfbjCDZhdiu2LHYqCDZhduM4oCM2KrZiNin2YbZhtivINmC2KfYqNmE24zYqiDYr9iz2KrYsdiz24wg2LHYpyDYqNiv2YjZhiDYsdi22KfbjNiqINqp2KfYsdio2LEg2YHYudin2YQg2qnZhtmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9Ijg1MzIyOTUxOTkxMTI1MTkzNzgiPiLYqNin2LLbjNin2KjbjCDYp9i32YTYp9i52KfYqiDZvtmG2KzYsdmHIjwvc3RyaW5nPgpAQCAtMzE5LDEyNCArMzI0LDEyNCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zaHV0ZG93biIgbXNnaWQ9IjcxODU3NDc4MjQwMzg5MDkwMTYiPiLYrtin2YXZiNi0INi02K/ZhiDYrNiy2KbbjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NodXRkb3duIiBtc2dpZD0iNzA0NjUwMDgzODc0NjI5MTc3NSI+ItmF2K/bjNixINmB2LnYp9mE24zYqiDYsdinINiv2LEg2K3Yp9mE2Kog2K7Yp9mF2YjYtNuMINmC2LHYp9ixINmF24zigIzYr9mH2K8uINiu2KfZhdmI2LTbjCDYsdinINio2Ycg2LXZiNix2Kog2qnYp9mF2YQg2KfZhtis2KfZhSDZhtmF24zigIzYr9mH2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI0MTM4NjA4NjEwNzE3NDI1NTczIj4i2YXZhdin2YbYudiqINin2LIg2KzYp9io2KzYp9uM24wg2KjYsdmG2KfZhdmHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RvcEFwcFN3aXRjaGVzIiBtc2dpZD0iODI2MjE5NTgwMjU4MjI1NTAyMSI+Itin2KzYp9iy2Ycg2YbZhduM4oCO2K/Zh9ivINqp2KfYsdio2LEg2KjZhyDYqNix2YbYp9mF2Ycg2K/bjNqv2LHbjCDYqNix2YjYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI4MjYyMTk1ODAyNTgyMjU1MDIxIj4i4oCP2KfYrNin2LLZhyDZhtmF24zigI7Yr9mH2K8g2qnYp9ix2KjYsSDYqNmHINio2LHZhtin2YXZhyDYr9uM2q/YsduMINio2LHZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0VG9wQWN0aXZpdHlJbmZvIiBtc2dpZD0iMjUzNzkyMjMxMTQxMTU0NjAxNiI+Itiv2LHbjNin2YHYqiDYp9i32YTYp9i52KfYqiDYqNix2YbYp9mF2Ycg2YHYudmE24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRUb3BBY3Rpdml0eUluZm8iIG1zZ2lkPSIyNTEyNDQ4ODU1NDk2MDY3MTMxIj4i2KjZhyDYr9in2LHZhtiv2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINin2LfZhNin2LnYp9iqINiu2LXZiNi124wg2YXYsdio2YjYtyDYqNmHINio2LHZhtin2YXZhyDZgdi52YTbjCDYsdinINiv2LEg2b7bjNi0INiy2YXbjNmG2Ycg2LXZgdit2Ycg2KjYp9iy24zYp9io24wg2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcnVuU2V0QWN0aXZpdHlXYXRjaGVyIiBtc2dpZD0iODkyMjM5MDk0ODY3MTgyNjU2Ij4i2YbYuNin2LHYqiDZiCDaqdmG2KrYsdmEINix2KfZh+KAjNin2YbYr9in2LLbjCDZh9mF2Ycg2KjYsdmG2KfZhdmHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcnVuU2V0QWN0aXZpdHlXYXRjaGVyIiBtc2dpZD0iNjAwMzYwMzE2MjU3ODU3NzQwNiI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmG2K3ZiNmHINix2KfZh+KAjNin2YbYr9in2LLbjCDZgdi52KfZhNuM2KrigIzZh9in24wg2LPbjNiz2KrZhSDYsdinINqp2YbYqtix2YQg2qnZhtivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDaqdin2YXZhNinINio2Kcg2LPbjNiz2KrZhSDYs9in2LLar9in2LEg2LTZiNmG2K8uINin24zZhiDZhdis2YjYsiDZgdmC2Lcg2KjYsdin24wg2KrZiNiz2LnZhyDZhtuM2KfYsiDYp9iz2Kog2Ygg2KjYsdin24wg2KfYs9iq2YHYp9iv2Ycg2LnYp9iv24wg2YbbjNiz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcnVuU2V0QWN0aXZpdHlXYXRjaGVyIiBtc2dpZD0iNjAwMzYwMzE2MjU3ODU3NzQwNiI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmG2K3ZiNmHINix2KfZh+KAjNin2YbYr9in2LLbjCDZgdi52KfZhNuM2KrigIzZh9in24wg2LPbjNiz2KrZhSDYsdinINqp2YbYqtix2YQg2qnZhtivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDaqdin2YXZhNinINio2Kcg2LPbjNiz2KrZhSDYs9in2LLar9in2LEg2LTZiNmG2K8uINin24zZhiDZhdis2YjYsiDZgdmC2Lcg2KjYsdin24wg2KrZiNiz2LnZhyDZhtuM2KfYsiDYp9iz2Kog2Ygg2KjYsdin24wg2KfYs9iq2YHYp9iv2Ycg2LnYp9iv24wg2YbbjNiz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RQYWNrYWdlUmVtb3ZlZCIgbXNnaWQ9IjI1NzYzMzM0MzQ4OTM1MzI0NzUiPiLYp9ix2LPYp9mEINm+2K7YtCDYqNiz2KrZhyDYrdiw2YEg2LTYr9mHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSI2NjIxOTAxMjE2MjA3OTMxMDg5Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KfYudmE2KfZhiDYrdiw2YEg2KjYs9iq2Ycg2KjYsdmG2KfZhdmHINix2Kcg2b7Yrti0INqp2YbYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINmF24zigI7YqtmI2KfZhtmG2K8g2KfYsiDYotmGINin2LPYqtmB2KfYr9mHINqp2YbZhtivINiq2Kcg2YfYsSDYqNix2YbYp9mF2Ycg2K/YsSDYrdin2YQg2KfYrNix2KfbjCDYr9uM2q/YsSDYsdinINin2LIg2KjbjNmGINio2KjYsdivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFBhY2thZ2VSZW1vdmVkIiBtc2dpZD0iNjYyMTkwMTIxNjIwNzkzMTA4OSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINin2LnZhNin2YYg2K3YsNmBINio2LPYqtmHINio2LHZhtin2YXZhyDYsdinINm+2K7YtCDaqdmG2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINin2LIg2KLZhiDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYryDYqtinINmH2LEg2KjYsdmG2KfZhdmHINiv2LEg2K3Yp9mEINin2KzYsdin24wg2K/bjNqv2LEg2LHYpyDYp9iyINio24zZhiDYqNio2LHYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Jyb2FkY2FzdFNtc1JlY2VpdmVkIiBtc2dpZD0iNTY4OTA5NTAwOTAzMDMzNjU5MyI+Itin2LHYs9in2YQg2b7Yrti0INiv2LHbjNin2YHYqiDYtNiv2Ycg2KrZiNiz2Lcg2b7bjNin2YXaqSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFNtc1JlY2VpdmVkIiBtc2dpZD0iNDE1MjAzNzcyMDAzNDM2NTQ5MiI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINin2LnZhNin2YYg2K/YsduM2KfZgdiqINm+24zYp9mFINqp2YjYqtin2Ycg2LHYpyDZvtiu2LQg2qnZhtivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDYp9iyINin24zZhiDYqNix2KfbjCDYrNi52YQg2b7bjNin2YXigIzZh9in24wg2qnZiNiq2KfZhyDZiNix2YjYr9uMINin2LPYqtmB2KfYr9mHINqp2YbZhtivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjMxNDUzNDc0MTMwMjg1ODIzNzEiPiLYp9ix2LPYp9mEINm+2K7YtCDYr9ix24zYp9mB2Kog2LTYr9mHINiq2YjYs9i3IFdBUC1QVVNIIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjQ3ODM0MDI1MjUwMzk0NDI3MjkiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYp9i52YTYp9mG24wg2LHYpyDZvtiu2LQg2qnZhtivINqp2Ycg2b7bjNin2YUgV0FQIFBVU0gg2K/YsduM2KfZgdiqINqp2LHYr9mHINin2LPYqi4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINmF24zigI7YqtmI2KfZhtmG2K8g2KfYsiDYotmGINin2LPYqtmB2KfYr9mHINqp2YbZhtivINiq2Kcg2K/YsduM2KfZgdiqINm+24zYp9mFIE1NUyDYsdinINis2LnZhCDaqdmG2YbYryDbjNinINmF2K3YqtmI2KfbjCDZh9ixINi12YHYrdmH2ZQg2YjYqCDYsdinINio2Kcg2KfZhtmI2KfYuSDZhdiu2LHYqCDYrNin24zar9iy24zZhiDaqdmG2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RTbXNSZWNlaXZlZCIgbXNnaWQ9IjQxNTIwMzc3MjAwMzQzNjU0OTIiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYp9i52YTYp9mGINiv2LHbjNin2YHYqiDZvtuM2KfZhSDaqdmI2KrYp9mHINix2Kcg2b7Yrti0INqp2YbYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINmF24zigI7YqtmI2KfZhtmG2K8g2KfYsiDYp9uM2YYg2KjYsdin24wg2KzYudmEINm+24zYp9mF4oCM2YfYp9uMINqp2YjYqtin2Ycg2YjYsdmI2K/bjCDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Jyb2FkY2FzdFdhcFB1c2giIG1zZ2lkPSIzMTQ1MzQ3NDEzMDI4NTgyMzcxIj4i4oCP2KfYsdiz2KfZhCDZvtiu2LQg2K/YsduM2KfZgdiqINi02K/ZhyDYqtmI2LPYtyBXQVAtUFVTSCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFdhcFB1c2giIG1zZ2lkPSI0NzgzNDAyNTI1MDM5NDQyNzI5Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KfYudmE2KfZhtuMINix2Kcg2b7Yrti0INqp2YbYryDaqdmHINm+24zYp9mFIFdBUCBQVVNIINiv2LHbjNin2YHYqiDaqdix2K/ZhyDYp9iz2KouINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINin2LIg2KLZhiDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYryDYqtinINiv2LHbjNin2YHYqiDZvtuM2KfZhSBNTVMg2LHYpyDYrNi52YQg2qnZhtmG2K8g24zYpyDZhdit2KrZiNin24wg2YfYsSDYtdmB2K3Zh9mUINmI2Kgg2LHYpyDYqNinINin2YbZiNin2Lkg2YXYrtix2Kgg2KzYp9uM2q/YstuM2YYg2qnZhtmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcm9jZXNzTGltaXQiIG1zZ2lkPSIyNDUxODczNjY0MzYzNjYyNjY2Ij4i2YXYrdiv2YjYryDaqdix2K/ZhiDYqti52K/Yp9ivINmB2LHYotuM2YbYr9mH2KfbjCDYr9ixINit2KfZhCDYp9is2LHYpyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFByb2Nlc3NMaW1pdCIgbXNnaWQ9IjczMTgwNjEzMTQwNDA4Nzk1NDIiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYrdiv2Kfaqdir2LEg2KrYudiv2KfYryDZvtix2K/Yp9iy2LTZh9in24zbjCDYsdinINqp2Ycg2KfYrNix2Kcg2K7ZiNin2YfYryDYtNivINqp2YbYqtix2YQg2qnZhtivLiDZh9ix2q/YsiDYqNix2KfbjCDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YTYp9iy2YUg2YbbjNiz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJvY2Vzc0xpbWl0IiBtc2dpZD0iNzMxODA2MTMxNDA0MDg3OTU0MiI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINit2K/Yp9qp2KvYsSDYqti52K/Yp9ivINm+2LHYr9in2LLYtNmH2KfbjNuMINix2Kcg2qnZhyDYp9is2LHYpyDYrtmI2KfZh9ivINi02K8g2qnZhtiq2LHZhCDaqdmG2K8uINmH2LHar9iyINio2LHYp9uMINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhNin2LLZhSDZhtuM2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldEFsd2F5c0ZpbmlzaCIgbXNnaWQ9IjU1MDk1ODUwNzc5ODc5Njk2NSI+Itio2LPYqtmGINin2KzYqNin2LHbjCDYqNix2YbYp9mF2YfigIzZh9in24wg2b7Ys+KAjNiy2YXbjNmG2YciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbHdheXNGaW5pc2giIG1zZ2lkPSI3NDcxMzEwNjUyODY4ODQxNDk5Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KjZhyDZhdit2LYg2KfbjNmG2qnZhyDZgdi52KfZhNuM2KrZh9inINio2Ycg2b7Ys+KAjNiy2YXbjNmG2Ycg2LHZgdiq2YbYryDYqtmF2KfZhSDYtNmI2YbYry4g2KjYsdin24wg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINi52KfYr9uMINmG24zYp9iy24wg2YbbjNiz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QWx3YXlzRmluaXNoIiBtc2dpZD0iNzQ3MTMxMDY1Mjg2ODg0MTQ5OSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2Ycg2YXYrdi2INin24zZhtqp2Ycg2YHYudin2YTbjNiq2YfYpyDYqNmHINm+2LPigIzYstmF24zZhtmHINix2YHYqtmG2K8g2KrZhdin2YUg2LTZiNmG2K8uINio2LHYp9uMINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhtuM2KfYstuMINmG24zYs9iqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmF0dGVyeVN0YXRzIiBtc2dpZD0iMjc4OTYxMDY3MzUxNDEwMzM2NCI+Itiu2YjYp9mG2K/ZhiDYotmF2KfYsSDYqNin2KrYsduMIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmF0dGVyeVN0YXRzIiBtc2dpZD0iNTg5NzM0NjU4Mjg4MjkxNTExNCI+Itio2Ycg24zaqSDYqNix2YbYp9mF2Ycg2qnYp9ix2KjYsdiv24wg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINqp2Ycg2K/Yp9iv2YfigIzZh9in24wg2KfYs9iq2YHYp9iv2Ycg2qnZhtmG2K/ZhyDYp9iyINmF24zYstin2YYg2KjYp9iq2LHbjCDaqdmFINqp2YbZiNmG24wg2LHYpyDYqNiu2YjYp9mG2K8uINin24zZhiDaqdin2LEg2YXZhdqp2YYg2KfYs9iqINio2Ycg2KjYsdmG2KfZhdmHINin24zZhiDYp9mF2qnYp9mGINix2Kcg2KjYr9mH2K8g2qnZhyDYp9i32YTYp9i52KfYqiDYrNiy2KbbjCDYr9ix2KjYp9ix2Ycg2KjYsdmG2KfZhdmH4oCM2YfYp9uM24wg2qnZhyDYp9iz2KrZgdin2K/ZhyDZhduM4oCM2qnZhtuM2K/YjCDYqNiv2LPYqiDYotmI2LHYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUJhdHRlcnlTdGF0cyIgbXNnaWQ9IjM3MTk2ODk3NjQ1MzYzNzk1NTciPiLYp9i12YTYp9itINii2YXYp9ixINio2KfYqtix24wiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVCYXR0ZXJ5U3RhdHMiIG1zZ2lkPSI2ODYyODE3ODU3MTc4MDI1MDAyIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KLZhdin2LEg2KzZhdi54oCM2KLZiNix24wg2LTYr9mHINio2KfYqtix24wg2LHYpyDYqti624zbjNixINiv2YfYry4g2KjYsdin24wg2KfYs9iq2YHYp9iv2Ycg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINi52KfYr9uMINmG24zYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VwZGF0ZUJhdHRlcnlTdGF0cyIgbXNnaWQ9IjY4NjI4MTc4NTcxNzgwMjUwMDIiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYotmF2KfYsSDYrNmF2LnigIzYotmI2LHbjCDYtNiv2Ycg2KjYp9iq2LHbjCDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiDYqNix2KfbjCDYp9iz2KrZgdin2K/ZhyDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YbbjNiz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRBcHBPcHNTdGF0cyIgbXNnaWQ9IjE1MDg3Nzk2ODc0MzY1ODU3NDQiPiLYqNin2LLbjNin2KjbjCDYotmF2KfYsSDZhdix2KjZiNi3INio2Ycg2qnYp9ix2qnYsdivINio2LHZhtin2YXZhyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFwcE9wc1N0YXRzIiBtc2dpZD0iNjI0Mzg4NzA0MTU3NzkxMjg3NyI+Itio2Ycg2KjYsdmG2KfZhdmHINin2YXaqdin2YYg2YXbjOKAjNiv2YfYryDYotmF2KfYsSDYrNmF2LnigIzYotmI2LHbjCDYtNiv2Ycg2YXYsdio2YjYtyDYqNmHINi52YXZhNqp2LHYryDYqNix2YbYp9mF2Ycg2LHYpyDYqNin2LLbjNin2KjbjCDaqdmG2K8uINio2LHYp9uMINin2LPYqtmB2KfYr9mHINiq2YjYs9i3INio2LHZhtin2YXZh+KAjNmH2KfbjCDZhdi52YXZiNmE24zYjCDYr9ixINmG2LjYsSDar9ix2YHYqtmHINmG2LTYr9mHINin2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUFwcE9wc1N0YXRzIiBtc2dpZD0iODgyOTA5NzM3Mzg1MTUyMTUwNSI+Itiq2LrbjNuM2LEg2KLZhdin2LEg2qnYp9ix2qnYsdivINio2LHZhtin2YXZhyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VwZGF0ZUFwcE9wc1N0YXRzIiBtc2dpZD0iNTA3ODQ1OTY1OTQ0MDM0ODMiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINiq2LrbjNuM2LEg2KLZhdin2LEg2qnYp9ix2qnYsdivINis2YXYueKAjNii2YjYsduMINi02K/ZhyDYp9iyINio2LHZhtin2YXZhyDYsdinINmF24zigIzYr9mH2K8uINio2LHYp9uMINin2LPYqtmB2KfYr9mHINiq2YjYs9i3INio2LHZhtin2YXZh+KAjNmH2KfbjCDZhdi52YXZiNmE24wg2YbbjNiz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iYWNrdXAiIG1zZ2lkPSI0NzAwMTMwMjI4NjU0NTM5MjAiPiLaqdmG2KrYsdmEINmG2LPYrtmH2ZQg2b7YtNiq24zYqNin2YYg2LPbjNiz2KrZhSDZiCDYqNin2LLbjNin2KjbjCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JhY2t1cCIgbXNnaWQ9IjY5MTIyMzA1MjUxNDA1ODk4OTEiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2b7YtNiq24zYqNin2YYg2LPbjNiz2KrZhSDYsdinINqp2YbYqtix2YQg2qnZhtivINmIINmF2qnYp9mG24zYs9iq2YUg2LHYpyDYqNin2LLbjNin2KjbjCDaqdmG2K8uINio2LHYp9uMINin2LPYqtmB2KfYr9mHINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhtuM2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iYWNrdXAiIG1zZ2lkPSI2OTEyMjMwNTI1MTQwNTg5ODkxIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINm+2LTYqtuM2KjYp9mGINiz24zYs9iq2YUg2LHYpyDaqdmG2KrYsdmEINqp2YbYryDZiCDZhdqp2KfZhtuM2LPYqtmFINix2Kcg2KjYp9iy24zYp9io24wg2qnZhtivLiDYqNix2KfbjCDYp9iz2KrZgdin2K/ZhyDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YbbjNiz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maXJtX2Z1bGxfYmFja3VwIiBtc2dpZD0iNTU1NzA3MTMyNTgwNDQ2OTEwMiI+Itiq2YfbjNmH2ZQg2YbYs9iu2YfZlCDZvti02KrbjNio2KfZhiDaqdin2YXZhCDYsdinINiq2KPbjNuM2K8g2qnYsdiv2Ycg24zYpyDYudmF2YTbjNin2Kog2LHYpyDYqNin2LLbjNin2KjbjCDaqdmG24zYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpcm1fZnVsbF9iYWNrdXAiIG1zZ2lkPSIxNzQ4NzYyMTcxNjM3Njk5NTYyIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2LHYp9io2Lcg2qnYp9ix2KjYsSDYqtin24zbjNivINmG2LPYrtmHINqp2KfZhdmEINm+2LTYqtuM2KjYp9mGINix2Kcg2LHYp9mH4oCM2KfZhtiv2KfYstuMINqp2YbYry4g2YfYsSDYqNix2YbYp9mF2YfigIzYp9uMINmG2YXbjOKAjtiq2YjYp9mG2K8g2KfYsiDYotmGINin2LPYqtmB2KfYr9mHINqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maXJtX2Z1bGxfYmFja3VwIiBtc2dpZD0iMTc0ODc2MjE3MTYzNzY5OTU2MiI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINix2KfYqNi3INqp2KfYsdio2LEg2KrYp9uM24zYryDZhtiz2K7ZhyDaqdin2YXZhCDZvti02KrbjNio2KfZhiDYsdinINix2KfZh+KAjNin2YbYr9in2LLbjCDaqdmG2K8uINmH2LEg2KjYsdmG2KfZhdmH4oCM2KfbjCDZhtmF24zigI7YqtmI2KfZhtivINin2LIg2KLZhiDYp9iz2KrZgdin2K/ZhyDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcm5hbFN5c3RlbVdpbmRvdyIgbXNnaWQ9IjIxNDg1NjM2MjgxNDAxOTMyMzEiPiLZhtmF2KfbjNi0INm+2YbYrNix2YfigIzZh9in24wg2LrbjNix2YXYrNin2LIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcm5hbFN5c3RlbVdpbmRvdyIgbXNnaWQ9Ijc0NTgzODc3NTk0NjE0NjYzOTciPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2b7Zhtis2LHZh+KAjtmH2KfbjNuMINix2Kcg2KfbjNis2KfYryDaqdmG2K8g2qnZhyDZhduM4oCO2K7ZiNin2YfYryDYqtmI2LPYtyDYsdin2KjYtyDaqdin2LHYqNixINiz24zYs9iq2YUg2K/Yp9iu2YTbjCDYp9iz2KrZgdin2K/ZhyDYtNmI2K8uINio2LHYp9uMINin2LPYqtmB2KfYr9mHINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhtuM2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcm5hbFN5c3RlbVdpbmRvdyIgbXNnaWQ9Ijc0NTgzODc3NTk0NjE0NjYzOTciPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2b7Zhtis2LHZh+KAjtmH2KfbjNuMINix2Kcg2KfbjNis2KfYryDaqdmG2K8g2qnZhyDZhduM4oCO2K7ZiNin2YfYryDYqtmI2LPYtyDYsdin2KjYtyDaqdin2LHYqNixINiz24zYs9iq2YUg2K/Yp9iu2YTbjCDYp9iz2KrZgdin2K/ZhyDYtNmI2K8uINio2LHYp9uMINin2LPYqtmB2KfYr9mHINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhtuM2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N5c3RlbUFsZXJ0V2luZG93IiBtc2dpZD0iMzU0MzM0Nzk4MDgzOTUxODYxMyI+Itiq2LHYs9uM2YUg2LHZiNuMINio2LHZhtin2YXZh+KAjNmH2KfbjCDYr9uM2q/YsSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N5c3RlbUFsZXJ0V2luZG93IiBtc2dpZD0iODU4NDY3ODM4MTk3MjgyMDExOCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDaqdmHINiv2LEg2KjYp9mE2Kcg24zYpyDYqNiu2LTigIzZh9in24zbjCDYp9iyINix2KfYqNi3INqp2KfYsdio2LHbjCDYr9uM2q/YsSDYqNix2YbYp9mF2YfigIzZh9in24wg2qnYp9ix2KjYsdiv24wg2YXYqti12YQg2LTZiNivLiDYp9uM2YYg2qnYp9ixINmF24zigIzYqtmI2KfZhtivINiv2LEg2KfYs9iq2YHYp9iv2Ycg2LTZhdinINin2LIg2LHYp9io2Lcg2YfYsSDYqNix2YbYp9mF2Ycg2qnYp9ix2KjYsdiv24wg2KrYr9in2K7ZhCDYp9uM2KzYp9ivINqp2YbYryDbjNinINii2YbahtmHINix2Kcg2qnZhyDYqNmHINmG2LjYsSDYrtmI2K8g2K/YsSDYr9uM2q/YsSDYqNix2YbYp9mF2YfigIzZh9in24wg2qnYp9ix2KjYsdiv24wg2YXbjOKAjNio24zZhtuM2K/YjCDYqti624zbjNixINiv2YfYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldEFuaW1hdGlvblNjYWxlIiBtc2dpZD0iMjgwNTEwMzI0MTE1MzkwNzE3NCI+Itin2LXZhNin2K0g2LPYsdi52Kog2KfZhtuM2YXbjNi02YYg2qnZhNuMIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QW5pbWF0aW9uU2NhbGUiIG1zZ2lkPSI3NjkwMDYzNDI4OTI0MzQzNTcxIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiz2LHYudiqINqp2YTbjCDYp9mG24zZhduM2LTZhiDYsdinINmH2LEg2LLZhdin2YYg2qnZhyDYqNiu2YjYp9mH2K8g2KrYutuM24zYsSDYr9mH2K8gKNin2YbbjNmF24zYtNmG4oCO2YfYp9uMINiz2LHbjNi52KrYsSDbjNinINii2YfYs9iq2YfigI7YqtixKS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFwcFRva2VucyIgbXNnaWQ9IjEyODY1MDU3MTcwNTAxMjEzNzAiPiLZhdiv24zYsduM2Kog2YbYtNin2YbZh+KAjtmH2KfbjCDYqNix2YbYp9mF2YciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBcHBUb2tlbnMiIG1zZ2lkPSI4MDQzNDMxNzEzMDE0Mzk1NjcxIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINio2Kcg2KfbjNis2KfYryDaqdmG2KfYsdqv2LDYsSDYp9iyINiz2YHYp9ix2LQg2LnYp9iv24wgWtiMINmG2LTYp9mG2YfigI7Zh9in24wg2K7ZiNivINix2Kcg2KfbjNis2KfYryDZiCDZhdiv24zYsduM2Kog2qnZhtivLiDYqNix2KfbjCDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YXZiNix2K8g2YbbjNin2LIg2KfYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFuaW1hdGlvblNjYWxlIiBtc2dpZD0iNzY5MDA2MzQyODkyNDM0MzU3MSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYs9ix2LnYqiDaqdmE24wg2KfZhtuM2YXbjNi02YYg2LHYpyDZh9ixINiy2YXYp9mGINqp2Ycg2KjYrtmI2KfZh9ivINiq2LrbjNuM2LEg2K/Zh9ivICjYp9mG24zZhduM2LTZhuKAjtmH2KfbjCDYs9ix24zYudiq2LEg24zYpyDYotmH2LPYqtmH4oCO2KrYsSkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VBcHBUb2tlbnMiIG1zZ2lkPSIxMjg2NTA1NzE3MDUwMTIxMzcwIj4i4oCP2YXYr9uM2LHbjNiqINmG2LTYp9mG2YfigI7Zh9in24wg2KjYsdmG2KfZhdmHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQXBwVG9rZW5zIiBtc2dpZD0iODA0MzQzMTcxMzAxNDM5NTY3MSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqNinINin24zYrNin2K8g2qnZhtin2LHar9iw2LEg2KfYsiDYs9mB2KfYsdi0INi52KfYr9uMIFrYjCDZhti02KfZhtmH4oCO2YfYp9uMINiu2YjYryDYsdinINin24zYrNin2K8g2Ygg2YXYr9uM2LHbjNiqINqp2YbYry4g2KjYsdin24wg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINi52KfYr9uMINmF2YjYsdivINmG24zYp9iyINin2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZyZWV6ZVNjcmVlbiIgbXNnaWQ9IjQ3MDgxODExODQ0NDE4ODAxNzUiPiLYq9in2KjYqiDZhtqv2Ycg2K/Yp9i02KrZhiDYtdmB2K3ZhyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZyZWV6ZVNjcmVlbiIgbXNnaWQ9Ijg1NTg5MjM3ODkyMjI2NzAwNjQiPiLYqNmHINio2LHZhtin2YXZhyDaqdin2LHYqNix2K/bjCDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2qnZhyDZhdmI2YLYqtin2Ysg2LXZgdit2Ycg2LHYpyDYqNix2KfbjCDbjNqpINin2YbYqtmC2KfZhCDYqtmF2KfZhSDYtdmB2K3ZhyDYq9in2KjYqiDZhtqv2Ycg2K/Yp9ix2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbmplY3RFdmVudHMiIG1zZ2lkPSIxMzc4NzQ2NTg0MDIzNTg2NjAwIj4i2qnZhNuM2K/Zh9inINmIINiv2qnZhdmH4oCM2YfYp9uMINqp2YbYqtix2YQg2LHYpyDZgdi02KfYsSDYr9mH24zYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA2MzUyNTY1NTk5OTY4NjMyIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2LHZiNuM2K/Yp9iv2YfYp9uMINmI2LHZiNiv24wg2K7ZiNivICjZgdi02LHYr9mGINqp2YTbjNiv2YfYpyDZiCDYutuM2LHZhykg2LHYpyDYqtit2YjbjNmEINiv2YfYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINmF24zigI7YqtmI2KfZhtmG2K8g2KfYsiDYotmGINin2LPYqtmB2KfYr9mHINqp2YbZhtivINiq2Kcg2qnYp9ix2qnYsdivINix2KfbjNin2YbZh9mUINmE2YjYrduMINix2Kcg2qnZhtiq2LHZhCDaqdmG2YbYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbmplY3RFdmVudHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NTMxMjgwNTc1NzIzMjYyNTMiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYsdmI24zYr9in2K/Zh9in24wg2YjYsdmI2K/bjCDYrtmI2K8g2LHYpyDYqNmHINio2LHZhtin2YXZh+KAjtmH2KfbjCDYr9uM2q/YsSDYqtit2YjbjNmEINiv2YfYryAo2YHYtNix2K/ZhiDaqdmE24zYr9mH2Kcg2Ygg2LrbjNix2YcpLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDYp9iyINii2YYg2KjYsdin24wg2qnZhtiq2LHZhCDaqdin2LHaqdix2K8g2KrZhNmB2YYg2KfYs9iq2YHYp9iv2Ycg2qnZhtmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5qZWN0RXZlbnRzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDYzNTI1NjU1OTk5Njg2MzIiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYsdmI24zYr9in2K/Zh9in24wg2YjYsdmI2K/bjCDYrtmI2K8gKNmB2LTYsdiv2YYg2qnZhNuM2K/Zh9inINmIINi624zYsdmHKSDYsdinINiq2K3ZiNuM2YQg2K/Zh9ivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDYp9iyINii2YYg2KfYs9iq2YHYp9iv2Ycg2qnZhtmG2K8g2KrYpyDaqdin2LHaqdix2K8g2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LHYpyDaqdmG2KrYsdmEINqp2YbZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1MzEyODA1NzU3MjMyNjI1MyI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINix2YjbjNiv2KfYr9mH2KfbjCDZiNix2YjYr9uMINiu2YjYryDYsdinINio2Ycg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINiv24zar9ixINiq2K3ZiNuM2YQg2K/Zh9ivICjZgdi02LHYr9mGINqp2YTbjNiv2YfYpyDZiCDYutuM2LHZhykuINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINin2LIg2KLZhiDYqNix2KfbjCDaqdmG2KrYsdmEINqp2KfYsdqp2LHYryDYqtmE2YHZhiDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRJbnB1dFN0YXRlIiBtc2dpZD0iNDY5NDI4OTAwMDQxMjQ5MjM0Ij4i2YXZiNin2LHYr9uMINqp2Ycg2YXbjOKAjNmG2YjbjNiz24zYryDZiCDaqdin2LHZh9in24zbjCDaqdmHINin2YbYrNin2YUg2YXbjOKAjNiv2YfbjNivINix2Kcg2LbYqNi3INqp2YbbjNivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZElucHV0U3RhdGUiIG1zZ2lkPSI4Mzg3NzU0OTAxNjg4NzI4MDQzIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2qnZhNuM2K/Zh9in24zbjCDYsdinINqp2Ycg2YfZhtqv2KfZhSDYqti52KfZhdmEINio2Kcg2KjYsdmG2KfZhdmH2ZQg2K/bjNqv2LEg2YHYtNin2LEg2YXbjOKAjtiv2YfbjNivINio2KjbjNmG2K8gKNmF2KfZhtmG2K8g2KrYp9uM2b4g2qnYsdiv2YYg2q/YsNix2YjYp9qY2YcpLiDYqNix2KfbjCDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YXZiNix2K8g2YbbjNin2LIg2YbbjNiz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZElucHV0U3RhdGUiIG1zZ2lkPSI4Mzg3NzU0OTAxNjg4NzI4MDQzIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2qnZhNuM2K/Zh9in24zbjCDYsdinINqp2Ycg2YfZhtqv2KfZhSDYqti52KfZhdmEINio2Kcg2KjYsdmG2KfZhdmH2ZQg2K/bjNqv2LEg2YHYtNin2LEg2YXbjOKAjtiv2YfbjNivINio2KjbjNmG2K8gKNmF2KfZhtmG2K8g2KrYp9uM2b4g2qnYsdiv2YYg2q/YsNix2YjYp9qY2YcpLiDYqNix2KfbjCDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YXZiNix2K8g2YbbjNin2LIg2YbbjNiz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kSW5wdXRNZXRob2QiIG1zZ2lkPSIzMzYwMDY0NjIwMjMwNTE1Nzc2Ij4i2b7bjNmI2YbYryDYtNiv2Ycg2KjZhyDYsdmI2LQg2YjYsdmI2K/bjCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRJbnB1dE1ldGhvZCIgbXNnaWQ9IjMyNTA0NDAzMjI4MDcyODYzMzEiPiLYqNmHINiv2KfYsdmG2K/ZhyDYp9uM2YYg2K/Ys9iq2q/Yp9mHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2Ycg2LHYp9io2Lcg2LPYt9itINio2KfZhNin24wg24zaqSDYsdmI2LQg2YjYsdmI2K/bjCDZhdiq2LXZhCDYtNmI2K8uINin24zZhiDZiNuM2pjar9uMINmH24zahtqv2KfZhyDYqNix2KfbjCDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYudmF2YjZhNuMINi22LHZiNix24wg2YbZhduM4oCO2KjYp9i02K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZElucHV0TWV0aG9kIiBtc2dpZD0iMzI1MDQ0MDMyMjgwNzI4NjMzMSI+IuKAj9io2Ycg2K/Yp9ix2YbYr9mHINin24zZhiDYr9iz2Krar9in2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KjZhyDYsdin2KjYtyDYs9i32K0g2KjYp9mE2KfbjCDbjNqpINix2YjYtCDZiNix2YjYr9uMINmF2KrYtdmEINi02YjYry4g2KfbjNmGINmI24zamNqv24wg2YfbjNqG2q/Yp9mHINio2LHYp9uMINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdi52YXZiNmE24wg2LbYsdmI2LHbjCDZhtmF24zigI7YqNin2LTYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRBY2Nlc3NpYmlsaXR5U2VydmljZSIgbXNnaWQ9IjUzNTc3MzM5NDI1NTYwMzE1OTMiPiLYp9iq2LXYp9mEINio2Ycg2LPYsdmI24zYsyDYr9iz2KrYsdiz24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kQWNjZXNzaWJpbGl0eVNlcnZpY2UiIG1zZ2lkPSI3MDM0NjE1OTI4NjA5MzMxMzY4Ij4i2KjZhyDYr9in2LHZhtiv2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINqp2Ycg2KjZhyDYsdin2KjYtyDYs9i32K0g2KjYp9mE2KfbjCDYs9ix2YjbjNizINiv2LPYqtix2LPbjCDZhdiq2LXZhCDYtNmI2K8uINmH2LHar9iyINio2LHYp9uMINio2LHZhtin2YXZh+KAjNmH2KfbjCDZhdi52YXZiNmE24wg2YXZiNix2K8g2YbbjNin2LIg2YbbjNiz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kUHJpbnRTZXJ2aWNlIiBtc2dpZD0iODQ2MjgxNTE3OTU3Mjc0ODc2MSI+Itin2KrYtdin2YQg2KjZhyDbjNqpINiz2LHZiNuM2LMg2obYp9m+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFByaW50U2VydmljZSIgbXNnaWQ9Ijc5NjAwNjc2MjMyMDkxMTExMzUiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2qnZhyDYqNmHINix2KfYqNi3INiz2LfYrSDYqNin2YTYp9uMINiz2LHZiNuM2LMg2obYp9m+INmF2KrYtdmEINi02YjYry4g2YfYsdqv2LIg2KjYsdin24wg2KjYsdmG2KfZhdmH4oCM2YfYp9uMINmF2LnZhdmI2YTbjCDZhdmI2LHYryDZhtuM2KfYsiDZhtuM2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRQcmludFNwb29sZXJTZXJ2aWNlIiBtc2dpZD0iNjgwNzc2Mjc4Mzc0NDEyNTk1NCI+Itin2KrYtdin2YQg2KjZhyDYs9ix2YjbjNizINmH2YXYp9mH2Ybar+KAjNqp2YbZhtiv2Ycg2obYp9m+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFByaW50U3Bvb2xlclNlcnZpY2UiIG1zZ2lkPSIzNjgwNTUyMjg1OTMzMzE4MzcyIj4i2KjZhyDYr9in2LHZhtiv2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINqp2Ycg2KjZhyDZiNin2LPYtyDYs9i32K0g2KjYp9mE2KfbjCDYs9ix2YjbjNizINmH2YXYp9mH2Ybar+KAjNqp2YbZhtiv2Ycg2obYp9m+INmF2KrYtdmEINi02YjYry4g2YfYsdqv2LIg2KjYsdin24wg2KjYsdmG2KfZhdmH4oCM2YfYp9uMINmF2LnZhdmI2YTbjCDZhdmI2LHYryDZhtuM2KfYsiDZhtuM2LPYqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iMjc1MjczMTMwMDQxOTQxMDcyNCI+Itin2KrYtdin2YQg2KjZhyDYs9ix2YjbjNizIE5GQyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iNjEyMDY0NzYyOTE3NDA2Njg2MiI+Itio2Ycg2K/Yp9ix2YbYr9mHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYqNmHINio2LHZhtin2YXZh+KAjNmH2KfbjNuMINmF2KrYtdmEINi02YjYryDaqdmHINmF2LTYp9io2Ycg2KjYpyDaqdin2LHYquKAjNmH2KfbjCBORkMg2LnZhdmEINmF24zigIzaqdmG2YbYry4g2YfYsdqv2LIg2YbYqNin24zYryDYqNix2KfbjCDYqNix2YbYp9mF2YfigIzZh9in24wg2LnYp9iv24wg2YXZiNix2K8g2YbbjNin2LIg2KjYp9i02K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kTmZjU2VydmljZSIgbXNnaWQ9IjI3NTI3MzEzMDA0MTk0MTA3MjQiPiLigI/Yp9iq2LXYp9mEINio2Ycg2LPYsdmI24zYsyBORkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kTmZjU2VydmljZSIgbXNnaWQ9IjYxMjA2NDc2MjkxNzQwNjY4NjIiPiLigI/YqNmHINiv2KfYsdmG2K/ZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2KjZhyDYqNix2YbYp9mF2YfigIzZh9in24zbjCDZhdiq2LXZhCDYtNmI2K8g2qnZhyDZhdi02KfYqNmHINio2Kcg2qnYp9ix2KrigIzZh9in24wgTkZDINi52YXZhCDZhduM4oCM2qnZhtmG2K8uINmH2LHar9iyINmG2KjYp9uM2K8g2KjYsdin24wg2KjYsdmG2KfZhdmH4oCM2YfYp9uMINi52KfYr9uMINmF2YjYsdivINmG24zYp9iyINio2KfYtNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iNzM1ODM3ODQwMTkxNTI4NzkzOCI+Itin2KrYtdin2YQg2KjZhyDbjNqpINiz2LHZiNuM2LMg2YXYqtmG24wiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVGV4dFNlcnZpY2UiIG1zZ2lkPSI4MTUxOTY4OTEwOTczOTk4NjcwIj4i2KjZhyDYr9in2LHZhtiv2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINiu2YjYryDYsdinINio2Ycg24zaqSDYsdin2KjYtyDYs9i32K0g2KjYp9mE2KfbjCDYrtiv2YXYp9iqINmF2KrZhtuMINmF2LHYqtio2Lcg2qnZhtivICjYqNix2KfbjCDZhdir2KfZhCBTcGVsbENoZWNrZXJTZXJ2aWNlKS4g2YfYsdqv2LIg2KjYsdin24wg2KjYsdmG2KfZhdmH4oCM2YfYp9uMINi52KfYr9uMINmE2KfYstmFINmG24zYs9iqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSI0NzA4NTk2MDIxMTYxNDczMjU1Ij4i2KfYqti12KfZhCDYqNmHINuM2qkg2LPYsdmI24zYsyBWUE4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVnBuU2VydmljZSIgbXNnaWQ9IjIwNjc4NDU1NjQ1ODE2OTM5MDUiPiLYqNmHINiv2KfYsdmG2K/ZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2qnZhyDYqNmHINix2KfYqNi3INiz2LfYrSDYqNin2YTYp9uMINiz2LHZiNuM2LMgVnBuINmF2KrYtdmEINi02YjYry4g2YfYsdqv2LIg2KjYsdin24wg2KjYsdmG2KfZhdmH4oCM2YfYp9uMINmF2LnZhdmI2YTbjCDZhdmI2LHYryDZhtuM2KfYsiDZhtuM2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVGV4dFNlcnZpY2UiIG1zZ2lkPSI4MTUxOTY4OTEwOTczOTk4NjcwIj4i4oCP2KjZhyDYr9in2LHZhtiv2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINiu2YjYryDYsdinINio2Ycg24zaqSDYsdin2KjYtyDYs9i32K0g2KjYp9mE2KfbjCDYrtiv2YXYp9iqINmF2KrZhtuMINmF2LHYqtio2Lcg2qnZhtivICjYqNix2KfbjCDZhdir2KfZhCBTcGVsbENoZWNrZXJTZXJ2aWNlKS4g2YfYsdqv2LIg2KjYsdin24wg2KjYsdmG2KfZhdmH4oCM2YfYp9uMINi52KfYr9uMINmE2KfYstmFINmG24zYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSI0NzA4NTk2MDIxMTYxNDczMjU1Ij4i4oCP2KfYqti12KfZhCDYqNmHINuM2qkg2LPYsdmI24zYsyBWUE4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVnBuU2VydmljZSIgbXNnaWQ9IjIwNjc4NDU1NjQ1ODE2OTM5MDUiPiLigI/YqNmHINiv2KfYsdmG2K/ZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2qnZhyDYqNmHINix2KfYqNi3INiz2LfYrSDYqNin2YTYp9uMINiz2LHZiNuM2LMgVnBuINmF2KrYtdmEINi02YjYry4g2YfYsdqv2LIg2KjYsdin24wg2KjYsdmG2KfZhdmH4oCM2YfYp9uMINmF2LnZhdmI2YTbjCDZhdmI2LHYryDZhtuM2KfYsiDZhtuM2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRXYWxscGFwZXIiIG1zZ2lkPSI4NzE2NDAwMjc5OTM3ODU2NDYyIj4i2b7bjNmI2YbYryDYtNiv2Ycg2KjZhyDYqti12YjbjNixINiy2YXbjNmG2YciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kV2FsbHBhcGVyIiBtc2dpZD0iNzEwODQyODY5MjU5NTQ5MTY2OCI+Itio2Ycg2K/Yp9ix2YbYr9mHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2Ycg2LHYp9io2Lcg2LPYt9itINio2KfZhNin24wg2KrYtdmI24zYsSDYstmF24zZhtmHINmF2KrYtdmEINi02YjYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2LnZhdmI2YTbjCDZh9ix2q/YsiDYqNmHINin24zZhiDZiNuM2pjar9uMINmG24zYp9iyINmG2K/Yp9ix2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kV2FsbHBhcGVyIiBtc2dpZD0iNzEwODQyODY5MjU5NTQ5MTY2OCI+IuKAj9io2Ycg2K/Yp9ix2YbYr9mHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2Ycg2LHYp9io2Lcg2LPYt9itINio2KfZhNin24wg2KrYtdmI24zYsSDYstmF24zZhtmHINmF2KrYtdmEINi02YjYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2LnZhdmI2YTbjCDZh9ix2q/YsiDYqNmHINin24zZhiDZiNuM2pjar9uMINmG24zYp9iyINmG2K/Yp9ix2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjU2OTc5ODc3NTk4OTczNjcwOTkiPiLYp9iq2LXYp9mEINio2Ycg24zaqSDYs9ix2YjbjNizINin2KjYstin2LHaqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjQ3MTc5ODc4MTAxMzc2OTI1NzIiPiLYqNmHINiv2KfYsdmG2K/ZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2qnZhyDYqNmHINix2KfYqNi3INiz2LfYrSDYqNin2YTYp9uMINiz2LHZiNuM2LMg2KfYqNiy2KfYsdqpINmF2KrYtdmEINi02YjYry4g2YfYsdqv2LIg2KjYsdin24wg2KjYsdmG2KfZhdmH4oCM2YfYp9uMINmF2LnZhdmI2YTbjCDZhdmI2LHYryDZhtuM2KfYsiDZhtuM2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9Ijg3MDQ5ODYxNjM3MTE0NTUwMTAiPiLYqti52KfZhdmEINio2Kcg24zaqSDYs9ix2b7Ysdiz2Kog2K/Ys9iq2q/Yp9mHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZERldmljZUFkbWluIiBtc2dpZD0iNTY5NzE1NDE5NTQzOTA3OTMwIj4i2KjZhyDYr9in2LHZhtiv2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINin2YfYr9in2YEg2K7ZiNivINix2Kcg2KjZhyDYs9ix2b7Ysdiz2Kog2K/Ys9iq2q/Yp9mHINin2LHYs9in2YQg2qnZhtivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYudmF2YjZhNuMINmH24zahtqv2KfZhyDYqNmHINin24zZhiDZiNuM2pjar9uMINmG24zYp9iy24wg2YbYr9in2LHZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9IjU2OTcxNTQxOTU0MzkwNzkzMCI+IuKAj9io2Ycg2K/Yp9ix2YbYr9mHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYp9mH2K/Yp9mBINiu2YjYryDYsdinINio2Ycg2LPYsdm+2LHYs9iqINiv2LPYqtqv2KfZhyDYp9ix2LPYp9mEINqp2YbYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2LnZhdmI2YTbjCDZh9uM2obar9in2Ycg2KjZhyDYp9uM2YYg2YjbjNqY2q/bjCDZhtuM2KfYstuMINmG2K/Yp9ix2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZURldmljZUFkbWlucyIgbXNnaWQ9IjQyNDg4Mjg5MDAwNDU4MDg3MjIiPiLYp9i22KfZgdmHINuM2Kcg2K3YsNmBINiz2LHZvtix2LPYqiDYr9iz2Krar9in2YciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VEZXZpY2VBZG1pbnMiIG1zZ2lkPSI1MDI1NjA4MTY3NzA5OTQyNDg1Ij4i2KjZhyDYr9in2LHZhtiv2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINiz2LHZvtix2LPYqtin2YYg2K/Ys9iq2q/Yp9mHINmB2LnYp9mEINix2Kcg2KfYttin2YHZhyDbjNinINit2LDZgSDaqdmG2K8u2YfYsdqv2LIg2YbYqNin24zYryDYqNix2KfbjCDYqNix2YbYp9mF2YfigIzZh9in24wg2LnYp9iv24wg2YXZiNix2K8g2YbbjNin2LIg2KjYp9i02K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRPcmllbnRhdGlvbiIgbXNnaWQ9IjMzNjU5NDc3MTcxNjM4NjY4NDQiPiLYqti624zbjNixINis2YfYqiDYtdmB2K3ZhyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldE9yaWVudGF0aW9uIiBtc2dpZD0iMzA0NjEyNjYxOTMxNjY3MTQ3NiI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINqG2LHYrti0INi12YHYrdmHINix2Kcg2YfYsSDZiNmC2Kog2KjYrtmI2KfZh9ivINiq2LrbjNuM2LEg2K/Zh9ivLiDYqNix2KfbjCDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YbbjNin2LIg2YbbjNiz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0T3JpZW50YXRpb24iIG1zZ2lkPSIzMDQ2MTI2NjE5MzE2NjcxNDc2Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2obYsdiu2LQg2LXZgdit2Ycg2LHYpyDZh9ixINmI2YLYqiDYqNiu2YjYp9mH2K8g2KrYutuM24zYsSDYr9mH2K8uINio2LHYp9uMINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhtuM2KfYsiDZhtuM2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFBvaW50ZXJTcGVlZCIgbXNnaWQ9IjkxNzUzNzE2MTMzMjI1NjI5MzQiPiLYqti624zbjNixINiz2LHYudiqINin2LTYp9ix2YfigIzar9ixIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UG9pbnRlclNwZWVkIiBtc2dpZD0iNjg2NjU2MzIzNDI3NDEwNDIzMyI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINiz2LHYudiqINmF2KfZiNizINmIINm+2K8g2qnZhtiq2LHZhCDYsdinINmH2LEg2YjZgtiqINiu2YjYp9iz2Kog2KrYutuM24zYsSDYr9mH2K8uINio2LHYp9uMINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhtuM2KfYsiDZhtuM2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRQb2ludGVyU3BlZWQiIG1zZ2lkPSI2ODY2NTYzMjM0Mjc0MTA0MjMzIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2LPYsdi52Kog2YXYp9mI2LMg2Ygg2b7YryDaqdmG2KrYsdmEINix2Kcg2YfYsSDZiNmC2Kog2K7ZiNin2LPYqiDYqti624zbjNixINiv2YfYry4g2KjYsdin24wg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINi52KfYr9uMINmG24zYp9iyINmG24zYs9iqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0S2V5Ym9hcmRMYXlvdXQiIG1zZ2lkPSI0Nzc4NzMxNzAzNjAwOTA5MzQwIj4i2KrYutuM24zYsSDahtuM2K/Zhdin2YYg2LXZgdit2YfigIzaqdmE24zYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEtleWJvYXJkTGF5b3V0IiBtc2dpZD0iODQ4MDAxNjc3MTEzNDE3NTg3OSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYqtinINqG24zYr9mF2KfZhiDYtdmB2K3Zh+KAjNqp2YTbjNivINix2Kcg2KrYutuM24zYsSDYr9mH2K8uINin24zZhiDaqdin2LEg2YfbjNqG4oCM2q/Yp9mHINio2LHYp9uMINio2LHZhtin2YXZh+KAjNmH2KfbjCDYudin2K/bjCDZhtuM2KfYsiDZhtuM2LPYqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0NTM5MDAyOTkxOTQ3Mzc2NjU5Ij4i2KfYsdiz2KfZhCDYs9uM2q/Zhtin2YTZh9in24wgTGludXgg2KjZhyDYqNix2YbYp9mF2YfigI7Zh9inIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2lnbmFsUGVyc2lzdGVudFByb2Nlc3NlcyIgbXNnaWQ9IjQ4OTY5OTIwNzkxODI2NDkxNDEiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYr9ix2K7ZiNin2LPYqiDaqdmG2K8g2LPbjNqv2YbYp9mEINin2LHYp9im2Ycg2LTYr9mHINio2Ycg2YfZhdmHINmF2LHYp9it2YQg2K/Yp9im2YUg2KfYsdiz2KfZhCDYtNmI2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zaWduYWxQZXJzaXN0ZW50UHJvY2Vzc2VzIiBtc2dpZD0iNDUzOTAwMjk5MTk0NzM3NjY1OSI+IuKAj9in2LHYs9in2YQg2LPbjNqv2YbYp9mE2YfYp9uMIExpbnV4INio2Ycg2KjYsdmG2KfZhdmH4oCO2YfYpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0ODk2OTkyMDc5MTgyNjQ5MTQxIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2K/Ysdiu2YjYp9iz2Kog2qnZhtivINiz24zar9mG2KfZhCDYp9ix2KfYptmHINi02K/ZhyDYqNmHINmH2YXZhyDZhdix2KfYrdmEINiv2KfYptmFINin2LHYs9in2YQg2LTZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyc2lzdGVudEFjdGl2aXR5IiBtc2dpZD0iODg0MTExMzYyNzk1NTU2MzkzOCI+ItmH2YXbjNi02Ycg2KjYsdmG2KfZhdmHINin2KzYsdinINi02YjYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcnNpc3RlbnRBY3Rpdml0eSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODUyNTE4OTI3MjMyOTA4NjEzNyI+Itio2Ycg2KjYsdmG2KfZhdmHINin2YXaqdin2YYg2YXbjOKAjNiv2YfYryDZgtiz2YXYquKAjNmH2KfbjNuMINin2LIg2K7ZiNivINix2Kcg2K/YsSDYrdin2YHYuNmHINiv2KfYptmF24wg2qnZhtivLiDYp9uM2YYg2qnYp9ixINit2KfZgdi42Ycg2YXZiNis2YjYryDYsdinINio2LHYp9uMINiz2KfbjNixINio2LHZhtin2YXZh+KAjNmH2Kcg2YXYrdiv2YjYryDaqdix2K/ZhyDZiCDYqNin2LnYqyDaqdmG2K/bjCDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDZhduM4oCM2LTZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcnNpc3RlbnRBY3Rpdml0eSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQzODQ3NjAwNDc1MDgyNzgyNzIiPiLYqNmHINio2LHZhtin2YXZhyDYp9mF2qnYp9mGINmF24zigIzYr9mH2K8g2YLYs9mF2KrigIzZh9in24zbjCDYp9iyINiu2YjYryDYsdinINiv2LEg2K3Yp9mB2LjZhyDYr9in2KbZhduMINqp2YbYry4g2KfbjNmGINqp2KfYsSDYrdin2YHYuNmHINmF2YjYrNmI2K8g2LHYpyDYqNix2KfbjCDYs9in24zYsSDYqNix2YbYp9mF2YfigIzZh9inINmF2K3Yr9mI2K8g2qnYsdiv2Ycg2Ygg2KjYp9i52Ksg2qnZhtiv24wg2KrZhNmB2YYg2YXbjOKAjNi02YjYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RlbGV0ZVBhY2thZ2VzIiBtc2dpZD0iMTg0Mzg1MTI5NTM3NzA1OTM4Ij4i2K3YsNmBINio2LHZhtin2YXZh+KAjtmH2KciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZWxldGVQYWNrYWdlcyIgbXNnaWQ9Ijc0MTE0ODAyNzUxNjcyMDUwODEiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYqNiz2KrZh+KAjtmH2KfbjCBBbmRyb2lkINix2Kcg2b7Yp9qpINqp2YbYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINmF24zigI7YqtmI2KfZhtmG2K8g2KfYsiDYotmGINin2LPYqtmB2KfYr9mHINqp2YbZhtivINiq2Kcg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2YfZhSDYsdinINit2LDZgSDaqdmG2YbYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NsZWFyQXBwVXNlckRhdGEiIG1zZ2lkPSIyNzQxMDkxOTE4NDU4NDI3NTYiPiLYrdiw2YEg2K/Yp9iv2YfigI7Zh9in24wg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINiv24zar9ixIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBVc2VyRGF0YSIgbXNnaWQ9IjQ2MjUzMjM2ODQxMjU0NTk0ODgiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYr9in2K/Zh+KAjtmH2KfbjCDaqdin2LHYqNixINix2Kcg2b7Yp9qpINqp2YbYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RlbGV0ZUNhY2hlRmlsZXMiIG1zZ2lkPSIzMTI4NjY1NTcxODM3NDA4Njc1Ij4i2K3YsNmBINit2KfZgdi42YfZlCDZvtmG2YfYp9mGINio2LHZhtin2YXZh+KAjtmH2KfbjCDYr9uM2q/YsSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RlbGV0ZUNhY2hlRmlsZXMiIG1zZ2lkPSIzODEyOTk4NTk5MDA2NzMwMTk2Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2YHYp9uM2YTigIzZh9in24wg2K3Yp9mB2LjZh9mUINm+2YbZh9in2YYg2LHYpyDZvtin2qkg2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSIxODQzODUxMjk1Mzc3MDU5MzgiPiLigI/Yrdiw2YEg2KjYsdmG2KfZhdmH4oCO2YfYpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RlbGV0ZVBhY2thZ2VzIiBtc2dpZD0iNzQxMTQ4MDI3NTE2NzIwNTA4MSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2LPYqtmH4oCO2YfYp9uMIEFuZHJvaWQg2LHYpyDZvtin2qkg2qnZhtivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDYp9iyINii2YYg2KfYs9iq2YHYp9iv2Ycg2qnZhtmG2K8g2KrYpyDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXZh9mFINix2Kcg2K3YsNmBINqp2YbZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2xlYXJBcHBVc2VyRGF0YSIgbXNnaWQ9IjI3NDEwOTE5MTg0NTg0Mjc1NiI+IuKAj9it2LDZgSDYr9in2K/Zh+KAjtmH2KfbjCDYqNix2YbYp9mF2YfigI7Zh9in24wg2K/bjNqv2LEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcFVzZXJEYXRhIiBtc2dpZD0iNDYyNTMyMzY4NDEyNTQ1OTQ4OCI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINiv2KfYr9mH4oCO2YfYp9uMINqp2KfYsdio2LEg2LHYpyDZvtin2qkg2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlQ2FjaGVGaWxlcyIgbXNnaWQ9IjMxMjg2NjU1NzE4Mzc0MDg2NzUiPiLigI/Yrdiw2YEg2K3Yp9mB2LjZh9mUINm+2YbZh9in2YYg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINiv24zar9ixIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGVsZXRlQ2FjaGVGaWxlcyIgbXNnaWQ9IjM4MTI5OTg1OTkwMDY3MzAxOTYiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZgdin24zZhOKAjNmH2KfbjCDYrdin2YHYuNmH2ZQg2b7ZhtmH2KfZhiDYsdinINm+2KfaqSDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9Ijc0NzI5MjE3NjgzNTc5ODE5ODYiPiLYp9mG2K/Yp9iy2Ycg2q/bjNix24wg2YHYttin24wg2K3Yp9mB2LjZhyDYqNix2YbYp9mF2YciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9IjM5MjEwNjgxNTQ0MjA3MzgyOTYiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDaqdiv2YfYp9iMINiv2KfYr9mH4oCO2YfYpyDZiCDYp9mG2K/Yp9iy2YfigI7Zh9in24wg2K3Yp9mB2LjZh9mUINm+2YbZh9in2YYg2K7ZiNivINix2Kcg2KjYp9iy24zYp9io24wg2qnZhtivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0UGFja2FnZVNpemUiIG1zZ2lkPSIzOTIxMDY4MTU0NDIwNzM4Mjk2Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2qnYr9mH2KfYjCDYr9in2K/Zh+KAjtmH2Kcg2Ygg2KfZhtiv2KfYstmH4oCO2YfYp9uMINit2KfZgdi42YfZlCDZvtmG2YfYp9mGINiu2YjYryDYsdinINio2KfYstuM2KfYqNuMINqp2YbYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iMjE5OTEyODQ4MjgyMDMwNjkyNCI+ItmG2LXYqCDZhdiz2KrZgtuM2YUg2KjYsdmG2KfZhdmHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iNTYyODUzMDk3MjU0ODA3MTI4NCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2LPYqtmH4oCO2YfYp9uMIEFuZHJvaWQg2KjZhyDYsdmI2LIg2LTYr9mHINuM2Kcg2KzYr9uM2K8g2LHYpyDZhti12Kgg2qnZhtivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDYp9iyINin24zZhiDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYryDYqtinINio2LHZhtin2YXZh+KAjtmH2KfbjCDYrNiv24zYryDYsdinINio2Kcg2YXYrNmI2LLZh9in24wg2YLZiNuMINin2K7YqtuM2KfYsduMINin2LbYp9mB2Ycg2qnZhtmG2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jbGVhckFwcENhY2hlIiBtc2dpZD0iNzQ4NzI3OTM5MTcyMzUyNjgxNSI+Itit2LDZgSDYqtmF2KfZhSDYr9in2K/Zh+KAjtmH2KfbjCDYrdin2YHYuNmH2ZQg2b7ZhtmH2KfZhiDYqNix2YbYp9mF2YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnN0YWxsUGFja2FnZXMiIG1zZ2lkPSI1NjI4NTMwOTcyNTQ4MDcxMjg0Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KjYs9iq2YfigI7Zh9in24wgQW5kcm9pZCDYqNmHINix2YjYsiDYtNiv2Ycg24zYpyDYrNiv24zYryDYsdinINmG2LXYqCDaqdmG2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINin2LIg2KfbjNmGINin2LPYqtmB2KfYr9mHINqp2YbZhtivINiq2Kcg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINis2K/bjNivINix2Kcg2KjYpyDZhdis2YjYstmH2KfbjCDZgtmI24wg2KfYrtiq24zYp9ix24wg2KfYttin2YHZhyDaqdmG2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NsZWFyQXBwQ2FjaGUiIG1zZ2lkPSI3NDg3Mjc5MzkxNzIzNTI2ODE1Ij4i4oCP2K3YsNmBINiq2YXYp9mFINiv2KfYr9mH4oCO2YfYp9uMINit2KfZgdi42YfZlCDZvtmG2YfYp9mGINio2LHZhtin2YXZhyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NsZWFyQXBwQ2FjaGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg5NzQ2NDA4NzE5NDU0MzQ1NjUiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2qnZhyDZgdi22KfbjCDYsdin24zYp9mG2Ycg2YTZiNit24wg2LHYpyDYp9iyINi32LHbjNmCINit2LDZgSDaqdix2K/ZhiDZgdin24zZhOKAjNmH2Kcg2K/YsSDYr9in24zYsdqp2KrZiNix24wg2K3Yp9mB2LjZhyDZvtmG2YfYp9mGINiv24zar9ixINio2LHZhtin2YXZh+KAjNmH2KfbjCDaqdin2LHYqNix2K/bjNiMINii2LLYp9ivINqp2YbYry4g2KfbjNmGINqp2KfYsSDZhdmF2qnZhiDYp9iz2Kog2KjYp9i52Ksg2qnZhtiv24wg2K/bjNqv2LEg2KjYsdmG2KfZhdmH4oCM2YfYp9uMINqp2KfYsdio2LHYr9uMINiv2LEg2YfZhtqv2KfZhSDYsdin2YfigIzYp9mG2K/Yp9iy24wg2LTZiNivINiy24zYsdinINii2YbZh9inINio2KfbjNivINiv2YjYqNin2LHZhyDYr9in2K/Zh+KAjNmH2KfbjCDYrtmI2K8g2LHYpyDYqNin2LLbjNin2KjbjCDaqdmG2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjQ1OTQ0MTAyMTk1NjQzNjc3OSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDaqdmHINmB2LbYp9uMINiq2YTZgdmGINix2Kcg2KfYsiDYt9ix24zZgiDYrdiw2YEg2qnYsdiv2YYg2YHYp9uM2YTigIzZh9inINiv2LEg2K/Yp9uM2LHaqdiq2YjYsduMINit2KfZgdi42Ycg2b7ZhtmH2KfZhiDYr9uM2q/YsSDYqNix2YbYp9mF2YfigIzZh9in24wg2qnYp9ix2KjYsdiv24zYjCDYotiy2KfYryDaqdmG2K8uINin24zZhiDaqdin2LEg2YXZhdqp2YYg2KfYs9iqINio2KfYudirINix2KfZhyDYp9mG2K/Yp9iy24wg2KLZh9iz2KrZhyDYr9uM2q/YsSDYqNix2YbYp9mF2YfigIzZh9in24wg2qnYp9ix2KjYsdiv24wg2K/YsSDZhtiq24zYrNmHINmG24zYp9iyINii2YbZh9inINio2Ycg2KjYp9iy24zYp9io24wg2K/Yp9iv2YfigIzZh9in24wg2K7ZiNiv2Iwg2LTZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW92ZVBhY2thZ2UiIG1zZ2lkPSIzMjg5ODkwMjcxNjQ1OTIxNDExIj4i2KfZhtiq2YLYp9mEINmF2YbYp9io2Lkg2KjYsdmG2KfZhdmHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW92ZVBhY2thZ2UiIG1zZ2lkPSIzMTk1NjIyMTc3NzgyNDQ1MjQiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZhdmG2KfYqNi5INio2LHZhtin2YXZhyDYsdinINin2LIg2LHYs9in2YbZhyDYr9in2K7ZhNuMINio2Ycg2LHYs9in2YbZhyDYrtin2LHYrNuMINmIINio2KfZhNi52qnYsyDZhdmG2KrZgtmEINqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3ZlUGFja2FnZSIgbXNnaWQ9IjMxOTU2MjIxNzc3ODI0NDUyNCI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmF2YbYp9io2Lkg2KjYsdmG2KfZhdmHINix2Kcg2KfYsiDYsdiz2KfZhtmHINiv2KfYrtmE24wg2KjZhyDYsdiz2KfZhtmHINiu2KfYsdis24wg2Ygg2KjYp9mE2LnaqdizINmF2YbYqtmC2YQg2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZExvZ3MiIG1zZ2lkPSI2NjE1Nzc4NTQzMTk4OTY3NjE0Ij4i2YXYt9in2YTYudmHINiv2KfYr9mH4oCM2YfYp9uMINqv2LLYp9ix2LQg2K3Ys9in2LMiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTG9ncyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODIwNjEzMTMyOTM0NTUxNTEiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2YHYp9uM2YTigIzZh9in24wg2YXYrtiq2YTZgSDar9iy2KfYsdi0INiz24zYs9iq2YUg2LHYpyDYqNiu2YjYp9mG2K8uINio2Kcg2KfbjNmGINqp2KfYsdiMINio2LHZhtin2YXZhyDYp9i32YTYp9i52KfYqiDaqdmE24wg2YXYsdio2YjYtyDYqNmHINqp2KfYsduMINqp2Ycg2KjYpyDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYp9mG2KzYp9mFINmF24zigI7Yr9mH24zYryDYsdinINqp2LTZgSDZhduM4oCM2qnZhtiv2Iwg2qnZhyDZhdmF2qnZhiDYp9iz2Kog2K3Yp9mI24wg2KfYt9mE2KfYudin2Kog2LTYrti124wg2Ygg2K7YtdmI2LXbjCDYqNin2LTZhtivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjA2MzQzODE0MDI0MTU2MDQ0MyI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmB2KfbjNmE4oCM2YfYp9uMINqv2LLYp9ix2LQg2YXYrtiq2YTZgSDYs9uM2LPYqtmFINix2Kcg2KjYrtmI2KfZhtivLiDYp9uM2YYg2qnYp9ixINio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYp9i32YTYp9i52KfYqiDYudmF2YjZhduMINqp2KfYsduMINqp2Ycg2KjYpyDYqtmE2YHZhiDYp9mG2KzYp9mFINmF24zigI7Yr9mH24zYryDZhdir2YTYpyDYp9i32YTYp9i52KfYqiDYrti12YjYtduMINmIINi02K7YtduMINix2Kcg2qnYtNmBINqp2YbYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI3MTU4MDU1NTU4MjM4ODE4MTgiPiLYp9iz2KrZgdin2K/ZhyDYp9iyINmH2LEg2LHZhdiy2q/YtNin24wg2LHYs9in2YbZh+KAjtin24wg2KjYsdin24wg2KjYp9iy2b7Yrti0Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjgyODM5MTI0ODg0MzMxODkwMTAiPiLYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KjYsdmG2KfZhdmHINin2LIg2YfYsSDYsdmF2LLar9i02KfbjCDYsdiz2KfZhtmHINmG2LXYqCDYtNiv2YfigIzYp9uMINin2LPYqtmB2KfYr9mHINqp2YbYryDYqtinINio2LHYp9uMINm+2K7YtCDYsdmF2LLar9i02KfbjNuMINi02YjYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTG9ncyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODIwNjEzMTMyOTM0NTUxNTEiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2YHYp9uM2YTigIzZh9in24wg2YXYrtiq2YTZgSDar9iy2KfYsdi0INiz24zYs9iq2YUg2LHYpyDYqNiu2YjYp9mG2K8uINio2Kcg2KfbjNmGINqp2KfYsdiMINio2LHZhtin2YXZhyDYp9i32YTYp9i52KfYqiDaqdmE24wg2YXYsdio2YjYtyDYqNmHINqp2KfYsduMINqp2Ycg2KjYpyDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYp9mG2KzYp9mFINmF24zigI7Yr9mH24zYryDYsdinINqp2LTZgSDZhduM4oCM2qnZhtiv2Iwg2qnZhyDZhdmF2qnZhiDYp9iz2Kog2K3Yp9mI24wg2KfYt9mE2KfYudin2Kog2LTYrti124wg2Ygg2K7YtdmI2LXbjCDYqNin2LTZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjA2MzQzODE0MDI0MTU2MDQ0MyI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmB2KfbjNmE4oCM2YfYp9uMINqv2LLYp9ix2LQg2YXYrtiq2YTZgSDYs9uM2LPYqtmFINix2Kcg2KjYrtmI2KfZhtivLiDYp9uM2YYg2qnYp9ixINio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYp9i32YTYp9i52KfYqiDYudmF2YjZhduMINqp2KfYsduMINqp2Ycg2KjYpyDYqtmE2YHZhiDYp9mG2KzYp9mFINmF24zigI7Yr9mH24zYryDZhdir2YTYpyDYp9i32YTYp9i52KfYqiDYrti12YjYtduMINmIINi02K7YtduMINix2Kcg2qnYtNmBINqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI3MTU4MDU1NTU4MjM4ODE4MTgiPiLigI/Yp9iz2KrZgdin2K/ZhyDYp9iyINmH2LEg2LHZhdiy2q/YtNin24wg2LHYs9in2YbZh+KAjtin24wg2KjYsdin24wg2KjYp9iy2b7Yrti0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjgyODM5MTI0ODg0MzMxODkwMTAiPiLigI/Yp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KjYsdmG2KfZhdmHINin2LIg2YfYsSDYsdmF2LLar9i02KfbjCDYsdiz2KfZhtmHINmG2LXYqCDYtNiv2YfigIzYp9uMINin2LPYqtmB2KfYr9mHINqp2YbYryDYqtinINio2LHYp9uMINm+2K7YtCDYsdmF2LLar9i02KfbjNuMINi02YjYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUNhQ2VydGlmaWNhdGVzIiBtc2dpZD0iMTY3ODM5MTg5Njc4Njg4MjAxNCI+ItmF2K/bjNix24zYqiDYp9i32YTYp9i52KfYqiDaqdin2LHYqNix24wg2YXZiNix2K8g2KfYudiq2YXYp9ivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQ2FDZXJ0aWZpY2F0ZXMiIG1zZ2lkPSI0MDE1NjQ0MDQ3MTk2OTM3MDE0Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfZhdqp2KfZhiDZhduM4oCM2K/Zh9ivINqv2YjYp9mH24zZhtin2YXZh+KAjNmH2KfbjCBDQSDYsdinINio2Ycg2LnZhtmI2KfZhiDYp9i32YTYp9i52KfYqiDaqdin2LHYqNix24wg2YXZiNix2K8g2KfYudiq2YXYp9ivINmG2LXYqCDbjNinINit2LDZgSDZhti12Kgg2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUNhQ2VydGlmaWNhdGVzIiBtc2dpZD0iNDAxNTY0NDA0NzE5NjkzNzAxNCI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2YXaqdin2YYg2YXbjOKAjNiv2YfYryDar9mI2KfZh9uM2YbYp9mF2YfigIzZh9in24wgQ0Eg2LHYpyDYqNmHINi52YbZiNin2YYg2KfYt9mE2KfYudin2Kog2qnYp9ix2KjYsduMINmF2YjYsdivINin2LnYqtmF2KfYryDZhti12Kgg24zYpyDYrdiw2YEg2YbYtdioINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RpYWdub3N0aWMiIG1zZ2lkPSI4MDc2NzQzOTUzOTA4MDAwMzQyIj4i2K7ZiNin2YbYr9mGL9mG2YjYtNiq2YYg2YXZhtin2KjYuSDZhdiq2LnZhNmCINio2Ycg2KrYtNiu24zYtSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RpYWdub3N0aWMiIG1zZ2lkPSI2NjA4Mjk1NjkyMDAyNDUyMjgzIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINmH2LEg2YXZhtio2LnbjCDYsdinINqp2Ycg2YXYqti52YTZgiDYqNmHINqv2LHZiNmHINiq2LTYrtuM2LUg2KfYs9iqINio2K7ZiNin2YbYryDZiCDYr9ixINii2YYg2KjZhtmI24zYs9iv2Jsg2KjZh+KAjNi52YbZiNin2YYg2YXYq9in2YTYjCDZgdin24zZhOKAjNmH2KfbjCAvZGV2LiDYp9uM2YYg2KfZhdixINio2YfigIzYtdmI2LHYqiDYqNin2YTZgtmI2Ycg2YXbjOKAjNiq2YjYp9mG2K8g2KjYsSDZvtin24zYr9in2LEg2KjZiNiv2YYg2Ygg2KfZhdmG24zYqiDYs9uM2LPYqtmFINiq2KPYq9uM2LEg2Kjar9iw2KfYsdivLiDYp9uM2YYg2KrZhtmH2Kcg2KjYp9uM2K8g2KjYsdin24wg2KrYtNiu24zYteKAjuKAjNmH2KfbjCDZhdiu2KrYtSDYs9iu2KrigIzYp9mB2LLYp9ixINiq2YjYs9i3INiq2YjZhNuM2K/aqdmG2YbYr9mHINuM2Kcg2KfZvtix2KfYqtmI2LEg2KfYs9iq2YHYp9iv2Ycg2LTZiNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RpYWdub3N0aWMiIG1zZ2lkPSI2NjA4Mjk1NjkyMDAyNDUyMjgzIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINmH2LEg2YXZhtio2LnbjCDYsdinINqp2Ycg2YXYqti52YTZgiDYqNmHINqv2LHZiNmHINiq2LTYrtuM2LUg2KfYs9iqINio2K7ZiNin2YbYryDZiCDYr9ixINii2YYg2KjZhtmI24zYs9iv2Jsg2KjZh+KAjNi52YbZiNin2YYg2YXYq9in2YTYjCDZgdin24zZhOKAjNmH2KfbjCAvZGV2LiDYp9uM2YYg2KfZhdixINio2YfigIzYtdmI2LHYqiDYqNin2YTZgtmI2Ycg2YXbjOKAjNiq2YjYp9mG2K8g2KjYsSDZvtin24zYr9in2LEg2KjZiNiv2YYg2Ygg2KfZhdmG24zYqiDYs9uM2LPYqtmFINiq2KPYq9uM2LEg2Kjar9iw2KfYsdivLiDYp9uM2YYg2KrZhtmH2Kcg2KjYp9uM2K8g2KjYsdin24wg2KrYtNiu24zYteKAjuKAjNmH2KfbjCDZhdiu2KrYtSDYs9iu2KrigIzYp9mB2LLYp9ixINiq2YjYs9i3INiq2YjZhNuM2K/aqdmG2YbYr9mHINuM2Kcg2KfZvtix2KfYqtmI2LEg2KfYs9iq2YHYp9iv2Ycg2LTZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlQ29tcG9uZW50U3RhdGUiIG1zZ2lkPSI2MzM1NTc2Nzc1NzExMDk1OTMxIj4i2YHYudin2YQg24zYpyDYutuM2LEg2YHYudin2YQg2qnYsdiv2YYg2KfYrNiy2KfbjCDYqNix2YbYp9mF2YciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODg4NzQzNTc0MDk4MjIzNzI5NCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmB2LnYp9mEINio2YjYr9mGINuM2Kcg2YbYqNmI2K/ZhiDYp9is2LLYp9uMINio2LHZhtin2YXZh9mUINiv24zar9ixINix2Kcg2KrYutuM24zYsSDYr9mH2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINin2LIg2KLZhiDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYryDYqtinINmC2KfYqNmE24zYqtmH2KfbjCDZhdmH2YUg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LHYpyDYutuM2LHZgdi52KfZhCDaqdmG2YbYry4g2KjYp9uM2K8g2K/ZgtiqINqp2LHYryDaqdmHINio2Kcg2KfbjNmGINmF2KzZiNiyINmF2YXaqdmGINin2LPYqiDZiNi22LnbjNiqINin2KzYstin24wg2KjYsdmG2KfZhdmHINmG2KfZvtin24zYr9in2LHYjCDZhtin2YfZhdin2YfZhtqvINuM2Kcg2LrbjNix2YLYp9io2YQg2KfYs9iq2YHYp9iv2Ycg2LTZiNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUNvbXBvbmVudFN0YXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTgyNzIzMjQ4NDQxNjUwNTYxNSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmB2LnYp9mEINio2YjYr9mGINuM2Kcg2LrbjNix2YHYudin2YQg2KjZiNiv2YYg2KzYstim24zYp9iqINio2LHZhtin2YXZh9mUINiv24zar9ixINix2Kcg2KrYutuM24zYsSDYr9mH2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINin2LIg2KLZhiDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYryDYqtinINmI24zamNqv24zigIzZh9in24wg2YXZh9mFINix2Kcg2LrbjNix2YHYudin2YQg2qnZhtmG2K8uINio2LHYp9uMINin24zZhiDZhdis2YjYsiDYqNin24zYryDYr9mC2Kog2qnZhtuM2K8g2obZiNmGINmF2YXaqdmGINin2LPYqiDZiNi22LnbjNiqINis2LLYptuM2KfYqiDYqNix2YbYp9mF2Ycg2YbYp9m+2KfbjNiv2KfYsdiMINio24zigI7Yq9io2KfYqiDbjNinINi624zYsdmC2KfYqNmEINin2LPYqtmB2KfYr9mHINi02YjYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODg4NzQzNTc0MDk4MjIzNzI5NCI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmB2LnYp9mEINio2YjYr9mGINuM2Kcg2YbYqNmI2K/ZhiDYp9is2LLYp9uMINio2LHZhtin2YXZh9mUINiv24zar9ixINix2Kcg2KrYutuM24zYsSDYr9mH2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINin2LIg2KLZhiDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYryDYqtinINmC2KfYqNmE24zYqtmH2KfbjCDZhdmH2YUg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LHYpyDYutuM2LHZgdi52KfZhCDaqdmG2YbYry4g2KjYp9uM2K8g2K/ZgtiqINqp2LHYryDaqdmHINio2Kcg2KfbjNmGINmF2KzZiNiyINmF2YXaqdmGINin2LPYqiDZiNi22LnbjNiqINin2KzYstin24wg2KjYsdmG2KfZhdmHINmG2KfZvtin24zYr9in2LHYjCDZhtin2YfZhdin2YfZhtqvINuM2Kcg2LrbjNix2YLYp9io2YQg2KfYs9iq2YHYp9iv2Ycg2LTZiNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUNvbXBvbmVudFN0YXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTgyNzIzMjQ4NDQxNjUwNTYxNSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmB2LnYp9mEINio2YjYr9mGINuM2Kcg2LrbjNix2YHYudin2YQg2KjZiNiv2YYg2KzYstim24zYp9iqINio2LHZhtin2YXZh9mUINiv24zar9ixINix2Kcg2KrYutuM24zYsSDYr9mH2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINin2LIg2KLZhiDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYryDYqtinINmI24zamNqv24zigIzZh9in24wg2YXZh9mFINix2Kcg2LrbjNix2YHYudin2YQg2qnZhtmG2K8uINio2LHYp9uMINin24zZhiDZhdis2YjYsiDYqNin24zYryDYr9mC2Kog2qnZhtuM2K8g2obZiNmGINmF2YXaqdmGINin2LPYqiDZiNi22LnbjNiqINis2LLYptuM2KfYqiDYqNix2YbYp9mF2Ycg2YbYp9m+2KfbjNiv2KfYsdiMINio24zigI7Yq9io2KfYqiDbjNinINi624zYsdmC2KfYqNmEINin2LPYqtmB2KfYr9mHINi02YjYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dyYW50UmV2b2tlUGVybWlzc2lvbnMiIG1zZ2lkPSI0NjI3MzE1MzUxMDkzNTA4Nzk1Ij4i2KfYsdin2KbZhyDbjNinINmE2LrZiCDZhdis2YjYstmH2KciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ncmFudFJldm9rZVBlcm1pc3Npb25zIiBtc2dpZD0iNDA4ODY0MjY1NDA4NTg1MDY2MiI+Itio2Ycg24zaqSDYqNix2YbYp9mF2YfZlCDaqdin2LHYqNix2K/bjCDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2KrYpyDZhdis2YjYstmH2KfbjCDYrtin2LXbjCDYsdinINio2LHYp9uMINiu2YjYryDbjNinINiv24zar9ixINio2LHZhtin2YXZh+KAjNmH2Kcg2KfYsdin2KbZhyDaqdix2K/ZhyDbjNinINii2YbigIzZh9inINix2Kcg2YTYutmIINqp2YbYry4g2KjYsdmG2KfZhdmH4oCM2YfYp9uMINmF2LbYsSDYp9iyINin24zZhiDYrdin2YTYqiDYqNix2KfbjCDYr9iz2KrYsdiz24wg2KjZhyDZiNuM2pjar9uM4oCM2YfYp9uM24wg2KfYs9iq2YHYp9iv2Ycg2YXbjOKAjNqp2YbZhtivINqp2Ycg2LTZhdinINin2KzYp9iy2Ycg2KLZhiDYsdinINiv2LEg2KfYrtiq24zYp9ix2LTYp9mGINmC2LHYp9ixINmG2K/Yp9iv2YfigIzYp9uM2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcmVmZXJyZWRBcHBsaWNhdGlvbnMiIG1zZ2lkPSI4NDYzMTgxNjI4Njk1Mzk2MzkxIj4i2KrZhti424zZhSDYqNix2YbYp9mF2YfigI7Zh9in24wg2KrYsdis24zYrduMIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJlZmVycmVkQXBwbGljYXRpb25zIiBtc2dpZD0iNDk3Mzk4Njc2MjI0MTc4MzcxMiI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2LHZhtin2YXZh+KAjtmH2KfbjCDYqtix2KzbjNit24wg2LTZhdinINix2Kcg2KrYutuM24zYsSDYr9mH2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINio2K/ZiNmGINin2LnZhNin2YYg2KjYsdmG2KfZhdmH4oCO2YfYp9uM24wg2LHYpyDaqdmHINin2KzYsdinINmF24zigI7YtNmI2YbYr9iMINiq2LrbjNuM2LEg2K/Zh9mG2K8g2K7ZiNivINix2Kcg2KjZhyDYrNin24wg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINqp2YbZiNmG24wg2YLZhNmF2K/Yp9ivINqp2YbZhtivINiq2Kcg2K/Yp9iv2YfigI7Zh9in24wg2LTYrti124wg2LHYpyDYp9iyINi02YXYpyDYrNmF2LnigIzYotmI2LHbjCDaqdmG2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFByZWZlcnJlZEFwcGxpY2F0aW9ucyIgbXNnaWQ9Ijg0NjMxODE2Mjg2OTUzOTYzOTEiPiLigI/YqtmG2LjbjNmFINio2LHZhtin2YXZh+KAjtmH2KfbjCDYqtix2KzbjNit24wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRQcmVmZXJyZWRBcHBsaWNhdGlvbnMiIG1zZ2lkPSI0OTczOTg2NzYyMjQxNzgzNzEyIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINiq2LHYrNuM2K3bjCDYtNmF2Kcg2LHYpyDYqti624zbjNixINiv2YfYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINmF24zigI7YqtmI2KfZhtmG2K8g2KjYr9mI2YYg2KfYudmE2KfZhiDYqNix2YbYp9mF2YfigI7Zh9in24zbjCDYsdinINqp2Ycg2KfYrNix2Kcg2YXbjOKAjti02YjZhtiv2Iwg2KrYutuM24zYsSDYr9mH2YbYryDYrtmI2K8g2LHYpyDYqNmHINis2KfbjCDYqNix2YbYp9mF2YfigI7Zh9in24wg2qnZhtmI2YbbjCDZgtmE2YXYr9in2K8g2qnZhtmG2K8g2KrYpyDYr9in2K/Zh+KAjtmH2KfbjCDYtNiu2LXbjCDYsdinINin2LIg2LTZhdinINis2YXYueKAjNii2YjYsduMINqp2YbZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTZXR0aW5ncyIgbXNnaWQ9IjIyMjYxOTUyOTA5NTUyMjQ3MzAiPiLYp9i12YTYp9itINiq2YbYuNuM2YXYp9iqINiz24zYs9iq2YUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNldHRpbmdzIiBtc2dpZD0iNzc3NTcyMzQ0MTU1ODkwNzE4MSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINiv2KfYr9mH4oCO2YfYp9uMINiq2YbYuNuM2YUg2LPbjNiz2KrZhSDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDZvtuM2qnYsdio2YbYr9uMINiz24zYs9iq2YUg2LTZhdinINix2Kcg2K7Ysdin2Kgg2qnZhtmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTZXR0aW5ncyIgbXNnaWQ9Ijc3NzU3MjM0NDE1NTg5MDcxODEiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYr9in2K/Zh+KAjtmH2KfbjCDYqtmG2LjbjNmFINiz24zYs9iq2YUg2LHYpyDYqti624zbjNixINiv2YfYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINmF24zigI7YqtmI2KfZhtmG2K8g2b7bjNqp2LHYqNmG2K/bjCDYs9uM2LPYqtmFINi02YXYpyDYsdinINiu2LHYp9ioINqp2YbZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTZWN1cmVTZXR0aW5ncyIgbXNnaWQ9IjIwNDY3NjI1MTg3NjcxODI4OCI+Itin2LXZhNin2K0g2qnYsdiv2YYg2KrZhti424zZhdin2Kog2LPbjNiz2KrZhSDYp9uM2YXZhiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSI4MTU5NTM1NjEzMDIwMTM3MzkxIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiv2KfYr9mH4oCO2YfYp9uMINiq2YbYuNuM2YXYp9iqINin2YXZhtuM2KrbjCDYs9uM2LPYqtmFINix2Kcg2KrYutuM24zYsSDYr9mH2K8uINio2LHYp9uMINin2LPYqtmB2KfYr9mHINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhtuM2LPYqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlR3NlcnZpY2VzIiBtc2dpZD0iMjE0OTQyNjY2NDIyNjE1MjE4NSI+Itin2LXZhNin2K0g2qnYsdiv2YYg2YbZgti02Ycg2LPYsdmI24zYs+KAjNmH2KfbjCBHb29nbGUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUdzZXJ2aWNlcyIgbXNnaWQ9IjEyODczMDk0Mzc2MzgzODAyMjkiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZhtmC2LTZhyDYs9ix2YjbjNiz4oCM2YfYp9uMIEdvb2dsZSDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiDYqNix2KfbjCDYp9iz2KrZgdin2K/ZhyDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YbbjNiz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTZWN1cmVTZXR0aW5ncyIgbXNnaWQ9IjgxNTk1MzU2MTMwMjAxMzczOTEiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2K/Yp9iv2YfigI7Zh9in24wg2KrZhti424zZhdin2Kog2KfZhdmG24zYqtuMINiz24zYs9iq2YUg2LHYpyDYqti624zbjNixINiv2YfYry4g2KjYsdin24wg2KfYs9iq2YHYp9iv2Ycg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINi52KfYr9uMINmG24zYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIyMTQ5NDI2NjY0MjI2MTUyMTg1Ij4i4oCP2KfYtdmE2KfYrSDaqdix2K/ZhiDZhtmC2LTZhyDYs9ix2YjbjNiz4oCM2YfYp9uMIEdvb2dsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlR3NlcnZpY2VzIiBtc2dpZD0iMTI4NzMwOTQzNzYzODM4MDIyOSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmG2YLYtNmHINiz2LHZiNuM2LPigIzZh9in24wgR29vZ2xlINix2Kcg2KrYutuM24zYsSDYr9mH2K8uINio2LHYp9uMINin2LPYqtmB2KfYr9mHINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhtuM2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVCb290Q29tcGxldGVkIiBtc2dpZD0iNTMxMjk2NTU2NTk4NzgwMDAyNSI+Itin2KzYsdinINi02K/ZhiDYr9ixINmH2Ybar9in2YUg2LHYp9mH4oCM2KfZhtiv2KfYstuMIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjczOTAzMDQ2NjQxMTY4ODA3MDQiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYqNmHINmF2K3YtiDYp9iq2YXYp9mFINix2KfZh+KAjtin2YbYr9in2LLbjCDYs9uM2LPYqtmFINiu2YjYr9io2K7ZiNivINi02LHZiNi5INio2Ycg2qnYp9ixINqp2YbYry4g2KfbjNmGINqp2KfYsSDZhdmF2qnZhiDYp9iz2Kog2KjYp9i52Ksg2LTZiNivINmF2K/YqiDYstmF2KfZhiDYqNuM2LTYqtix24wg2LXYsdmBINi02K/ZiNi5INio2Ycg2qnYp9ixINix2KfbjNin2YbZh9mUINmE2YjYrduMINi02YjYryDZiCDYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYqNinINin2KzYsdin24wg2YfZhduM2LTar9uMINix2KfbjNin2YbZh9mUINmE2YjYrduMINix2Kcg2qnZhtivINqp2YbYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlQm9vdENvbXBsZXRlZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUxMzk1MDU4OTEwMjYxNzUwNCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2Ycg2YXYrdi2INin24zZhtqp2Ycg2LPbjNiz2KrZhSDYsdin2YfigI7Yp9mG2K/Yp9iy24wg2LTYryDYrtmI2K/YqNiu2YjYryDYtNix2YjYuSDYqNmHINqp2KfYsSDaqdmG2K8uINin24zZhiDaqdin2LEg2KjYp9i52Ksg2YXbjOKAjti02YjYryDZhdiv2Kog2LLZhdin2YYg2KjbjNi02KrYsduMINi12LHZgSDYtNmI2K8g2KrYpyDYqtmE2YHZhiDYtNix2YjYuSDYqNmHINqp2KfYsSDaqdmG2K8g2Ygg2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2qnZhCDYqtmE2YHZhiDaqdmG2K8g2LTZiNivINqG2YjZhiDZh9mF24zYtNmHINiv2LEg2K3Yp9mEINin2KzYsdinINi02K/ZhiDYp9iz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjczOTAzMDQ2NjQxMTY4ODA3MDQiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYqNmHINmF2K3YtiDYp9iq2YXYp9mFINix2KfZh+KAjtin2YbYr9in2LLbjCDYs9uM2LPYqtmFINiu2YjYr9io2K7ZiNivINi02LHZiNi5INio2Ycg2qnYp9ixINqp2YbYry4g2KfbjNmGINqp2KfYsSDZhdmF2qnZhiDYp9iz2Kog2KjYp9i52Ksg2LTZiNivINmF2K/YqiDYstmF2KfZhiDYqNuM2LTYqtix24wg2LXYsdmBINi02K/ZiNi5INio2Ycg2qnYp9ixINix2KfbjNin2YbZh9mUINmE2YjYrduMINi02YjYryDZiCDYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYqNinINin2KzYsdin24wg2YfZhduM2LTar9uMINix2KfbjNin2YbZh9mUINmE2YjYrduMINix2Kcg2qnZhtivINqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlQm9vdENvbXBsZXRlZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUxMzk1MDU4OTEwMjYxNzUwNCI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2Ycg2YXYrdi2INin24zZhtqp2Ycg2LPbjNiz2KrZhSDYsdin2YfigI7Yp9mG2K/Yp9iy24wg2LTYryDYrtmI2K/YqNiu2YjYryDYtNix2YjYuSDYqNmHINqp2KfYsSDaqdmG2K8uINin24zZhiDaqdin2LEg2KjYp9i52Ksg2YXbjOKAjti02YjYryDZhdiv2Kog2LLZhdin2YYg2KjbjNi02KrYsduMINi12LHZgSDYtNmI2K8g2KrYpyDYqtmE2YHZhiDYtNix2YjYuSDYqNmHINqp2KfYsSDaqdmG2K8g2Ygg2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2qnZhCDYqtmE2YHZhiDaqdmG2K8g2LTZiNivINqG2YjZhiDZh9mF24zYtNmHINiv2LEg2K3Yp9mEINin2KzYsdinINi02K/ZhiDYp9iz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RTdGlja3kiIG1zZ2lkPSI3OTE5MTI2MzcyNjA2ODgxNjE0Ij4i2KfYsdiz2KfZhCDZvtiu2LQg2obYs9io2YbYr9mHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3NzQ5NzYwNDk0Mzk5OTE1NjUxIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2b7Yrti04oCM2YfYp9uMINmF2KfZhtiv2q/Yp9ixINix2Kcg2qnZhyDZvtizINin2LIg2KfYqtmF2KfZhSDZvtiu2LQg2KjYp9mC24wg2YXbjOKAjtmF2KfZhtmG2K8g2KfYsdiz2KfZhCDaqdmG2K8uINin2LPYqtmB2KfYr9mHINio24zYtCDYp9iyINit2K8g2KfbjNmGINmI24zamNqv24wg2YXZhdqp2YYg2KfYs9iqINio2KfYudirINmF2LXYsdmBINio24zYtCDYp9iyINit2K8g2K3Yp9mB2LjZhyDZiCDYr9ixINmG2KrbjNis2Ycg2qnZhtiv24wg24zYpyDZhtin2b7Yp9uM2K/Yp9ix24wg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LTZiNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFN0aWNreSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4MjU4MDM3NjQyMzI0NDUwOTEiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZvtiu2LTigIzZh9in24wg2YXYp9mG2K/ar9in2LEg2LHYpyDaqdmHINm+2LMg2KfYsiDYp9iq2YXYp9mFINm+2K7YtCDYqNin2YLbjCDZhduM4oCO2YXYp9mG2YbYryDYp9ix2LPYp9mEINqp2YbYry4g2KfYs9iq2YHYp9iv2Ycg2KjbjNi0INin2LIg2K3YryDYp9uM2YYg2YjbjNqY2q/bjCDZhdmF2qnZhiDYp9iz2Kog2KjYp9i52Ksg2YXYtdix2YEg2KjbjNi0INin2LIg2K3YryDYrdin2YHYuNmHINmIINiv2LEg2YbYqtuM2KzZhyDaqdmG2K/bjCDbjNinINmG2KfZvtin24zYr9in2LHbjCDYqtmE2YHZhiDYtNmI2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3NzQ5NzYwNDk0Mzk5OTE1NjUxIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2b7Yrti04oCM2YfYp9uMINmF2KfZhtiv2q/Yp9ixINix2Kcg2qnZhyDZvtizINin2LIg2KfYqtmF2KfZhSDZvtiu2LQg2KjYp9mC24wg2YXbjOKAjtmF2KfZhtmG2K8g2KfYsdiz2KfZhCDaqdmG2K8uINin2LPYqtmB2KfYr9mHINio24zYtCDYp9iyINit2K8g2KfbjNmGINmI24zamNqv24wg2YXZhdqp2YYg2KfYs9iqINio2KfYudirINmF2LXYsdmBINio24zYtCDYp9iyINit2K8g2K3Yp9mB2LjZhyDZiCDYr9ixINmG2KrbjNis2Ycg2qnZhtiv24wg24zYpyDZhtin2b7Yp9uM2K/Yp9ix24wg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LTZiNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFN0aWNreSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4MjU4MDM3NjQyMzI0NDUwOTEiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZvtiu2LTigIzZh9in24wg2YXYp9mG2K/ar9in2LEg2LHYpyDaqdmHINm+2LMg2KfYsiDYp9iq2YXYp9mFINm+2K7YtCDYqNin2YLbjCDZhduM4oCO2YXYp9mG2YbYryDYp9ix2LPYp9mEINqp2YbYry4g2KfYs9iq2YHYp9iv2Ycg2KjbjNi0INin2LIg2K3YryDYp9uM2YYg2YjbjNqY2q/bjCDZhdmF2qnZhiDYp9iz2Kog2KjYp9i52Ksg2YXYtdix2YEg2KjbjNi0INin2LIg2K3YryDYrdin2YHYuNmHINmIINiv2LEg2YbYqtuM2KzZhyDaqdmG2K/bjCDbjNinINmG2KfZvtin24zYr9in2LHbjCDYqtmE2YHZhiDYtNmI2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ29udGFjdHMiIG1zZ2lkPSI4MzQ4NDgxMTMxODk5ODg2MTMxIj4i2K7ZiNin2YbYr9mGINmF2K7Yp9i32KjbjNmGINi02YXYpyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDb250YWN0cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNTI5NDg2Njg1Njk0MTE0OTYzOSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYr9in2K/Zh+KAjNmH2KfbjCDZhdix2KjZiNi3INio2Ycg2YXYrtin2LfYqNuM2YYg2LDYrtuM2LHZhyDYtNiv2Ycg2K/YsSDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYtNmF2Kcg2LHYpyDYqNiu2YjYp9mG2K8g2KfYsiDYrNmF2YTZh9iMINiq2LnYr9in2K8g2K/Zgdi52KfYqiDYqtmF2KfYs+KAjNmH2KfbjNuMINqp2Ycg2KjYsdmC2LHYp9ixINqp2LHYr9mH4oCM2KfbjNiv2Iwg2KfbjNmF24zZhOKAjNmH2KfbjNuMINqp2Ycg2KfYsdiz2KfZhCDaqdix2K/Zh+KAjNin24zYryDbjNinINio2Ycg2LHZiNi04oCM2YfYp9uMINiv24zar9ix24wg2KjZhyDYp9mB2LHYp9ivINiu2KfYtduMINin2LHYqtio2KfYtyDYqNix2YLYsdin2LEg2qnYsdiv2YfigIzYp9uM2K8uINin24zZhiDYqNinINio2LHZhtin2YXZh+KAjNmH2Kcg2KfZhdqp2KfZhiDZhduM4oCM2K/Zh9ivINiv2KfYr9mH4oCM2YfYp9uMINmF2K7Yp9i32Kgg2LTZhdinINix2Kcg2LDYrtuM2LHZhyDaqdmG2YbYryDZiCDYqNix2YbYp9mF2YfigIzZh9in24wg2YXYrtix2Kgg2YXZhdqp2YYg2KfYs9iqINiv2KfYr9mH4oCM2YfYp9uMINmF2K7Yp9i32Kgg2LHYpyDYqNiv2YjZhiDYp9i32YTYp9i5INi02YXYpyDYqNmHINin2LTYqtix2KfaqSDYqNqv2LDYp9ix2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ29udGFjdHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NDQwNjU0MTUyNDU3MzAwNjYyIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINiv2KfYr9mH4oCM2YfYp9uMINmF2LHYqNmI2Lcg2KjZhyDZhdiu2KfYt9io24zZhiDYsNiu24zYsdmHINi02K/ZhyDYr9ixINiq2YTZgdmGINi02YXYpyDYsdinINio2K7ZiNin2YbYryDYp9iyINis2YXZhNmH2Iwg2KrYudiv2KfYryDYr9mB2LnYp9iqINiq2YXYp9iz4oCM2YfYp9uM24wg2qnZhyDYqNix2YLYsdin2LEg2qnYsdiv2YfigIzYp9uM2K/YjCDYp9uM2YXbjNmE4oCM2YfYp9uM24wg2qnZhyDYp9ix2LPYp9mEINqp2LHYr9mH4oCM2KfbjNivINuM2Kcg2KjZhyDYsdmI2LTigIzZh9in24wg2K/bjNqv2LHbjCDYqNinINin2YHYsdin2K8g2K7Yp9i124wg2KfYsdiq2KjYp9i3INio2LHZgtix2KfYsSDaqdix2K/Zh+KAjNin24zYry4g2KfbjNmGINio2Ycg2KjYsdmG2KfZhdmH4oCM2YfYpyDYp9mF2qnYp9mGINmF24zigIzYr9mH2K8g2K/Yp9iv2YfigIzZh9in24wg2YXYrtin2LfYqCDYtNmF2Kcg2LHYpyDYsNiu24zYsdmHINqp2YbZhtivINmIINio2LHZhtin2YXZh+KAjNmH2KfbjCDZhdiu2LHYqCDZhdmF2qnZhiDYp9iz2Kog2K/Yp9iv2YfigIzZh9in24wg2YXYrtin2LfYqCDYsdinINio2K/ZiNmGINin2LfZhNin2Lkg2LTZhdinINio2Ycg2KfYtNiq2LHYp9qpINio2q/YsNin2LHZhtivLiI8L3N0cmluZz4KQEAgLTQ0NywxMiArNDUyLDEyIEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsbExvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzcwMDY0NTE4NDg3MDc2MDI4NSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDar9iy2KfYsdi0INiq2YXYp9izINix2KfbjNin2YbZh9mUINmE2YjYrduMINi02YXYpyDYsdinINio2K7ZiNin2YbYryDYp9iyINis2YXZhNmHINiv2KfYr9mH4oCM2YfYp9uMINmF2LHYqNmI2Lcg2KjZhyDYqtmF2KfYs+KAjNmH2KfbjCDZiNix2YjYr9uMINmIINiu2LHZiNis24wuINin24zZhiDZhdis2YjYsiDYqNmHINio2LHZhtin2YXZh+KAjNmH2Kcg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINiv2KfYr9mH4oCM2YfYp9uMINqv2LLYp9ix2LQg2KrZhdin2LMg2LTZhdinINix2Kcg2LDYrtuM2LHZhyDaqdmG2YbYryDZiCDYqNix2YbYp9mF2YfigIzZh9in24wg2YXYrtix2Kgg2YXZhdqp2YYg2KfYs9iqINiv2KfYr9mH4oCM2YfYp9uMINqv2LLYp9ix2LQg2KrZhdin2LMg2LTZhdinINix2Kcg2KjYr9mI2YYg2KfYt9mE2KfYuSDYtNmF2Kcg2KjZhyDYp9i02KrYsdin2qkg2Kjar9iw2KfYsdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGxMb2ciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzc3NzI1Nzk2ODEzMjE3MjQ0Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINqv2LLYp9ix2LQg2KrZhdin2LMg2KrZhNmB2YbbjCDYtNmF2Kcg2LHYpyDYqNiu2YjYp9mG2K8g2KfYsiDYrNmF2YTZhyDYr9in2K/Zh+KAjNmH2KfbjCDZhdix2KjZiNi3INio2Ycg2KrZhdin2LPigIzZh9in24wg2YjYsdmI2K/bjCDZiCDYrtix2YjYrNuMLiDYp9uM2YYg2YXYrNmI2LIg2KjZhyDYqNix2YbYp9mF2YfigIzZh9inINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYr9in2K/Zh+KAjNmH2KfbjCDar9iy2KfYsdi0INiq2YXYp9izINi02YXYpyDYsdinINiw2K7bjNix2Ycg2qnZhtmG2K8g2Ygg2KjYsdmG2KfZhdmH4oCM2YfYp9uMINmF2K7YsdioINmF2YXaqdmGINin2LPYqiDYr9in2K/Zh+KAjNmH2KfbjCDar9iy2KfYsdi0INiq2YXYp9izINi02YXYpyDYsdinINio2K/ZiNmGINin2LfZhNin2Lkg2LTZhdinINio2Ycg2KfYtNiq2LHYp9qpINio2q/YsNin2LHZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVDYWxsTG9nIiBtc2dpZD0iODU1MjA0NTY2NDc0MzQ5OTM1NCI+ItmG2YjYtNiq2YYg2q/Ystin2LHYtCDYqtmF2KfYsyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsbExvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY2MTgwNjA2MjI3NDExOTI0NSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDar9iy2KfYsdi02KfYqiDYqtmF2KfYsyDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYtNmF2KfYjCDYp9iyINis2YXZhNmHINiv2KfYr9mH4oCM2YfYp9uM24wg2K/YsdmF2YjYsdivINiq2YXYp9iz4oCO2YfYp9uMINmI2LHZiNiv24wg2Ygg2K7YsdmI2KzbjCDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiDYqNix2YbYp9mF2YfigIzZh9in24wg2YXYrtix2Kgg2YXZhdqp2YYg2KfYs9iqINin2LIg2KfbjNmGINmI24zamNqv24wg2KjYsdin24wg2b7Yp9qpINqp2LHYr9mGINuM2Kcg2KrYutuM24zYsSDar9iy2KfYsdi0INiq2YXYp9izINi02YXYpyDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGxMb2ciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODM5NDE3MzYzNTI3ODc4NDIiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2q/Ystin2LHYtNin2Kog2KrZhdin2LMg2KrZhNmB2YbbjCDYtNmF2KfYjCDYp9iyINis2YXZhNmHINiv2KfYr9mH4oCM2YfYp9uM24wg2K/YsdmF2YjYsdivINiq2YXYp9iz4oCO2YfYp9uMINmI2LHZiNiv24wg2Ygg2K7YsdmI2KzbjCDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiDYqNix2YbYp9mF2YfigIzZh9in24wg2YXYrtix2Kgg2YXZhdqp2YYg2KfYs9iqINin2LIg2KfbjNmGINmI24zamNqv24wg2KjYsdin24wg2b7Yp9qpINqp2LHYr9mGINuM2Kcg2KrYutuM24zYsSDar9iy2KfYsdi0INiq2YXYp9izINi02YXYpyDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGxMb2ciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY2NjE4MDYwNjIyNzQxMTkyNDUiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2q/Ystin2LHYtNin2Kog2KrZhdin2LMg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LTZhdin2Iwg2KfYsiDYrNmF2YTZhyDYr9in2K/Zh+KAjNmH2KfbjNuMINiv2LHZhdmI2LHYryDYqtmF2KfYs+KAjtmH2KfbjCDZiNix2YjYr9uMINmIINiu2LHZiNis24wg2LHYpyDYqti624zbjNixINiv2YfYry4g2KjYsdmG2KfZhdmH4oCM2YfYp9uMINmF2K7YsdioINmF2YXaqdmGINin2LPYqiDYp9iyINin24zZhiDZiNuM2pjar9uMINio2LHYp9uMINm+2KfaqSDaqdix2K/ZhiDbjNinINiq2LrbjNuM2LEg2q/Ystin2LHYtCDYqtmF2KfYsyDYtNmF2Kcg2KfYs9iq2YHYp9iv2Ycg2qnZhtmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxsTG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjgzOTQxNzM2MzUyNzg3ODQyIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINqv2LLYp9ix2LTYp9iqINiq2YXYp9izINiq2YTZgdmG24wg2LTZhdin2Iwg2KfYsiDYrNmF2YTZhyDYr9in2K/Zh+KAjNmH2KfbjNuMINiv2LHZhdmI2LHYryDYqtmF2KfYs+KAjtmH2KfbjCDZiNix2YjYr9uMINmIINiu2LHZiNis24wg2LHYpyDYqti624zbjNixINiv2YfYry4g2KjYsdmG2KfZhdmH4oCM2YfYp9uMINmF2K7YsdioINmF2YXaqdmGINin2LPYqiDYp9iyINin24zZhiDZiNuM2pjar9uMINio2LHYp9uMINm+2KfaqSDaqdix2K/ZhiDbjNinINiq2LrbjNuM2LEg2q/Ystin2LHYtCDYqtmF2KfYsyDYtNmF2Kcg2KfYs9iq2YHYp9iv2Ycg2qnZhtmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkUHJvZmlsZSIgbXNnaWQ9IjQ3MDE4ODk4NTI2MTI3MTY2NzgiPiLYrtmI2KfZhtiv2YYg2qnYp9ix2Kog2KrZhdin2LMg2LTZhdinIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFByb2ZpbGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NDYyNDc1MTUxODQ5ODg4ODQ4Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINin2LfZhNin2LnYp9iqINmG2YXYp9uM2Ycg2LTYrti124wg2LDYrtuM2LHZhyDYtNiv2Ycg2K/YsSDYr9iz2Krar9in2Ycg2LTZhdin2Iwg2YXYp9mG2YbYryDZhtin2YUg2Ygg2KfYt9mE2KfYudin2Kog2KrZhdin2LMg2LTZhdinINix2Kcg2KjYrtmI2KfZhtivLiDbjNi52YbbjCDYqNix2YbYp9mF2Ycg2YXbjOKAjtiq2YjYp9mG2K8g2LTZhdinINix2Kcg2LTZhtin2LPYp9uM24wg2qnZhtivINmIINmF2YXaqdmGINin2LPYqiDYp9i32YTYp9i52KfYqiDZhtmF2KfbjNmH2ZQg2LTZhdinINix2Kcg2KjZhyDYr9uM2q/Ysdin2YYg2KfYsdiz2KfZhCDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFByb2ZpbGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NDYyNDc1MTUxODQ5ODg4ODQ4Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINin2LfZhNin2LnYp9iqINmG2YXYp9uM2Ycg2LTYrti124wg2LDYrtuM2LHZhyDYtNiv2Ycg2K/YsSDYr9iz2Krar9in2Ycg2LTZhdin2Iwg2YXYp9mG2YbYryDZhtin2YUg2Ygg2KfYt9mE2KfYudin2Kog2KrZhdin2LMg2LTZhdinINix2Kcg2KjYrtmI2KfZhtivLiDbjNi52YbbjCDYqNix2YbYp9mF2Ycg2YXbjOKAjtiq2YjYp9mG2K8g2LTZhdinINix2Kcg2LTZhtin2LPYp9uM24wg2qnZhtivINmIINmF2YXaqdmGINin2LPYqiDYp9i32YTYp9i52KfYqiDZhtmF2KfbjNmH2ZQg2LTZhdinINix2Kcg2KjZhyDYr9uM2q/Ysdin2YYg2KfYsdiz2KfZhCDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVByb2ZpbGUiIG1zZ2lkPSI5MDc3OTM2Mjg3NzczOTc2NDMiPiLYp9i12YTYp9itINqp2KfYsdiqINiq2YXYp9izINi02YXYpyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlUHJvZmlsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU1NTIwODQyOTQ1OTg0NjU4OTkiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYp9i32YTYp9i52KfYqiDZhtmF2KfbjNmHINi02K7YtduMINiw2K7bjNix2Ycg2LTYr9mHINiv2LEg2K/Ys9iq2q/Yp9mHINi02YXYp9iMINmF2KfZhtmG2K8g2YbYp9mFINmIINin2LfZhNin2LnYp9iqINiq2YXYp9izINi02YXYpyDYsdinINiq2LrbjNuM2LEg2K/Zh9ivINuM2Kcg2KfYttin2YHZhyDaqdmG2K8uINuM2LnZhtuMINio2LHZhtin2YXZh+KAjiDZhduM4oCO2KrZiNin2YbYryDYtNmF2Kcg2LHYpyDYtNmG2KfYs9in24zbjCDaqdmG2K8g2Ygg2YXZhdqp2YYg2KfYs9iqINin2LfZhNin2LnYp9iqINmG2YXYp9uM2YfZlCDYtNmF2Kcg2LHYpyDYqNix2KfbjCDYr9uM2q/Ysdin2YYg2KfYsdiz2KfZhCDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVQcm9maWxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTU1MjA4NDI5NDU5ODQ2NTg5OSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINin2LfZhNin2LnYp9iqINmG2YXYp9uM2Ycg2LTYrti124wg2LDYrtuM2LHZhyDYtNiv2Ycg2K/YsSDYr9iz2Krar9in2Ycg2LTZhdin2Iwg2YXYp9mG2YbYryDZhtin2YUg2Ygg2KfYt9mE2KfYudin2Kog2KrZhdin2LMg2LTZhdinINix2Kcg2KrYutuM24zYsSDYr9mH2K8g24zYpyDYp9i22KfZgdmHINqp2YbYry4g24zYudmG24wg2KjYsdmG2KfZhdmH4oCOINmF24zigI7YqtmI2KfZhtivINi02YXYpyDYsdinINi02YbYp9iz2KfbjNuMINqp2YbYryDZiCDZhdmF2qnZhiDYp9iz2Kog2KfYt9mE2KfYudin2Kog2YbZhdin24zZh9mUINi02YXYpyDYsdinINio2LHYp9uMINiv24zar9ix2KfZhiDYp9ix2LPYp9mEINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMjY4OTIwOTU2MTUyNDE5MTcwIj4i2K7ZiNin2YbYr9mGINis2LHbjNin2YYg2KfYrNiq2YXYp9i524wg2LTZhdinIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQyNTU3MDYwMjcxNzIwNTA4NzIiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2KjZhyDYqNmH4oCM2LHZiNiy2LHYs9in2YbbjOKAjNmH2KfbjCDYp9is2KrZhdin2LnbjCDYp9iyINi32LHZgSDYtNmF2Kcg2Ygg2K/ZiNiz2KrYp9mGINi02YXYpyDYr9iz2KrYsdiz24wg2b7bjNiv2Kcg2qnYsdiv2Ycg2Ygg2KLZhuKAjNmH2Kcg2LHYpyDZh9mF2q/Yp9mF4oCM2LPYp9iy24wg2qnZhtivLiDYr9mC2Kog2qnZhtuM2K8g2qnZhyDZh9mG2q/Yp9mFINin2LTYqtix2KfaqeKAjNqv2LDYp9ix24wgLS0g2KfbjNmGINmI24zamNqv24wg2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINin2LHYqtio2KfYt9in2Kog2KjbjNmGINi02YXYpyDZiCDYr9mI2LPYqtin2YYg2LTZhdinINix2Kcg2K/YsSDYtNio2qnZh+KAjNmH2KfbjCDYp9is2KrZhdin2LnbjNiMINi12LHZgdmG2LjYsSDYp9iyINmF2K3YsdmF2KfZhtmHINio2YjYr9mGINii2YbigIzZh9inINio2K7ZiNin2YbYry4g2KrZiNis2Yc6INin24zZhiDZhdis2YjYsiDZhdmF2qnZhiDYp9iz2Kog2K/YsSDZh9mF2Ycg2LTYqNqp2YfigIzZh9in24wg2KfYrNiq2YXYp9i524wg2KfYrNix2Kcg2YbYtNmI2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM1MDQxNzkyMjI0OTMyMzU2NDUiPiLZhtmI2LTYqtmGINiv2LEg2KzYsduM2KfZhiDYp9is2KrZhdin2LnbjCDYtNmF2KciPC9zdHJpbmc+CkBAIC00NjQsMjMgKzQ2OSwyNSBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY3OTAzNTUyMDExMzY2ODUyOCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYsdmI24zYr9in2K/Zh9in24zbjCDYsdinINqp2Ycg2YXbjOKAjNiq2YjYp9mG24zYryDYr9ixINix2KfbjNin2YbZh9mUINmE2YjYrduMINiu2YjYryDYp9i12YTYp9itINmG2YXYp9uM24zYr9iMINin2LIg2KzZhdmE2Ycg2LHZiNuM2K/Yp9iv2YfYp9uMINiv2YjYs9iq2KfZhiDbjNinINmH2YXaqdin2LHYp9mGINiu2YjYryDYsdin2Iwg2KfYttin2YHZhyDbjNinINit2LDZgSDaqdix2K/ZhyDbjNinINiq2LrbjNuM2LEg2K/Zh9ivLiDYp9uM2YYg2YjbjNqY2q/bjCDZhdmF2qnZhiDYp9iz2Kog2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDYr9mH2K8g2b7bjNin2YXigIzZh9in24zbjCDYsdinINqp2Ycg2KjZhyDZhti42LEg2YXbjOKAjNix2LPYryDYp9iyINmF2KfZhNqp24zZhiDYqtmC2YjbjNmFINix2LPbjNiv2Ycg2KfYs9iqINin2LHYs9in2YQg2YbZhdmI2K/ZhyDbjNinINix2YjbjNiv2KfYr9mH2Kcg2LHYpyDYqNiv2YjZhiDYp9i32YTYp9i5INmF2KfZhNqpINin2LXZhNin2K0g2qnZhtmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIzMjQ0Njk0OTYzMjcyNDkzNzYiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2LHZiNuM2K/Yp9iv2YfYp9uM24wg2LHYpyDaqdmHINmF24zigIzYqtmI2KfZhtuM2K8g2K/YsSDYqtmE2YHZhiDYrtmI2K8g2KfYtdmE2KfYrSDZhtmF2KfbjNuM2K/YjCDYp9iyINis2YXZhNmHINix2YjbjNiv2KfYr9mH2KfbjCDYr9mI2LPYqtin2YYg24zYpyDZh9mF2qnYp9ix2KfZhiDYrtmI2K8g2LHYp9iMINin2LbYp9mB2Ycg24zYpyDYrdiw2YEg2qnYsdiv2Ycg24zYpyDYqti624zbjNixINiv2YfYry4g2KfbjNmGINmI24zamNqv24wg2YXZhdqp2YYg2KfYs9iqINio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2K/Zh9ivINm+24zYp9mF4oCM2YfYp9uM24wg2LHYpyDaqdmHINio2Ycg2YbYuNixINmF24zigIzYsdiz2K8g2KfYsiDZhdin2YTaqduM2YYg2KrZgtmI24zZhSDYsdiz24zYr9mHINin2LPYqiDYp9ix2LPYp9mEINmG2YXZiNiv2Ycg24zYpyDYsdmI24zYr9in2K/Zh9inINix2Kcg2KjYr9mI2YYg2KfYt9mE2KfYuSDZhdin2YTaqSDYp9i12YTYp9itINqp2YbZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTW9ja0xvY2F0aW9uIiBtc2dpZD0iODY4ODMzNDk3NDAzNjgyMzMzMCI+ItmF2YbYp9io2Lkg2YXaqdin2YYg2qnYp9iw2Kgg2KjYsdin24wg2KrYs9iqIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTW9ja0xvY2F0aW9uIiBtc2dpZD0iNTgwODcxMTAzOTQ4MjA1MTgyNCI+ItmF2YbYp9io2Lkg2YXZiNmC2LnbjNiqINmF2qnYp9mG24wg2qnYp9iw2Kgg2LHYpyDYqNix2KfbjCDYqtiz2Kog2qnYsdiv2YYg24zYpyDZhti12Kgg24zaqSDYp9ix2KfYptmH4oCM2K/Zh9mG2K/ZhyDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYrNiv24zYryDYp9uM2KzYp9ivINmG2YXYp9uM24zYry4g2KfbjNmGINqp2KfYsSDYqNmHINio2LHZhtin2YXZhyDYp9mF2qnYp9mGINmF24zigIzYr9mH2K8g2YXZiNmC2LnbjNiqINmF2qnYp9mG24wg2Ygv24zYpyDZiNi22LnbjNiqINqv2LLYp9ix2LQg2K/Yp9iv2Ycg2LTYr9mHINiq2YjYs9i3INiz2KfbjNixINmF2YbYp9io2Lkg2YXZiNmC2LnbjNiqINmF2qnYp9mG24wg2YXYp9mG2YbYryBHUFMg24zYpyDYp9ix2KfYptmH4oCM2K/Zh9mG2K/ar9in2YYg2YXZiNmC2LnbjNiqINmF2qnYp9mG24wg2LHYpyDZhtin2K/bjNiv2Ycg2Kjar9uM2LHYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NNb2NrTG9jYXRpb24iIG1zZ2lkPSI1ODA4NzExMDM5NDgyMDUxODI0Ij4i4oCP2YXZhtin2KjYuSDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDaqdin2LDYqCDYsdinINio2LHYp9uMINiq2LPYqiDaqdix2K/ZhiDbjNinINmG2LXYqCDbjNqpINin2LHYp9im2YfigIzYr9mH2YbYr9mHINmF2YjZgti524zYqiDZhdqp2KfZhtuMINis2K/bjNivINin24zYrNin2K8g2YbZhdin24zbjNivLiDYp9uM2YYg2qnYp9ixINio2Ycg2KjYsdmG2KfZhdmHINin2YXaqdin2YYg2YXbjOKAjNiv2YfYryDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDZiC/bjNinINmI2LbYuduM2Kog2q/Ystin2LHYtCDYr9in2K/ZhyDYtNiv2Ycg2KrZiNiz2Lcg2LPYp9uM2LEg2YXZhtin2KjYuSDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDZhdin2YbZhtivIEdQUyDbjNinINin2LHYp9im2YfigIzYr9mH2YbYr9qv2KfZhiDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYsdinINmG2KfYr9uM2K/ZhyDYqNqv24zYsdivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iMjgzNjMwODA3NjcyMDU1MzgzNyI+Itiv2LPYqtix2LPbjCDYqNmHINmB2LHZhdin2YbigIzZh9in24wg2KjbjNi02KrYsSDYp9ix2KfYptmHINiv2YfZhtiv2Ycg2YXaqdin2YYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NMb2NhdGlvbkV4dHJhQ29tbWFuZHMiIG1zZ2lkPSI1OTQ1MTY2NjQyMzM1ODAwNzYzIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KjZhyDZgdix2YXYp9mG4oCM2YfYp9uMINin2LHYp9im2YfigI7Yr9mH2YbYr9mHINmF2YjZgti524zYqiDZhdqp2KfZhtuMINiv24zar9ix24wg2K/Ys9iq2LHYs9uMINiv2KfYtNiq2Ycg2KjYp9i02K8uINin24zZhiDZiNuM2pjar9uMINmF2YXaqdmGINin2LPYqiDYqNin2LnYqyDZhdiu2KrZhCDYtNiv2YYg2LnZhdmE2qnYsdivIEdQUyDbjNinINiv24zar9ixINmF2YbYp9io2Lkg2YXZiNmC2LnbjNiqINmF2qnYp9mG24wg2KrZiNiz2Lcg2KfbjNmGINio2LHZhtin2YXZhyDYtNmI2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iNTk0NTE2NjY0MjMzNTgwMDc2MyI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2Ycg2YHYsdmF2KfZhuKAjNmH2KfbjCDYp9ix2KfYptmH4oCO2K/Zh9mG2K/ZhyDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYr9uM2q/YsduMINiv2LPYqtix2LPbjCDYr9in2LTYqtmHINio2KfYtNivLiDYp9uM2YYg2YjbjNqY2q/bjCDZhdmF2qnZhiDYp9iz2Kog2KjYp9i52Ksg2YXYrtiq2YQg2LTYr9mGINi52YXZhNqp2LHYryBHUFMg24zYpyDYr9uM2q/YsSDZhdmG2KfYqNi5INmF2YjZgti524zYqiDZhdqp2KfZhtuMINiq2YjYs9i3INin24zZhiDYqNix2YbYp9mF2Ycg2LTZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI2NTc4MTAxMTk5ODI1MTkzODczIj4i2YXYrNmI2LIg2KjYsdin24wg2YbYtdioINuM2qkg2KfYsdin2KbZhyDYr9mH2YbYr9mHINmF2qnYp9mGIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI5MDY2MTQ2MTIwNDcwNTkxNTA5Ij4i2YXZhtin2KjYuSDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDaqdin2LDYqCDYsdinINio2LHYp9uMINiq2LPYqiDaqdix2K/ZhiDbjNinINmG2LXYqCDbjNqpINin2LHYp9im2YfigIzYr9mH2YbYr9mHINmF2YjZgti524zYqiDZhdqp2KfZhtuMINis2K/bjNivINin24zYrNin2K8g2YbZhdin24zbjNivLiDYp9uM2YYg2qnYp9ixINio2Ycg2KjYsdmG2KfZhdmHINin2YXaqdin2YYg2YXbjOKAjNiv2YfYryDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDZiC/bjNinINmI2LbYuduM2Kog2q/Ystin2LHYtCDYr9in2K/ZhyDYtNiv2Ycg2KrZiNiz2Lcg2LPYp9uM2LEg2YXZhtin2KjYuSDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDZhdin2YbZhtivIEdQUyDbjNinINin2LHYp9im2YfigIzYr9mH2YbYr9qv2KfZhiDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYsdinINmG2KfYr9uM2K/ZhyDYqNqv24zYsdivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzRmluZUxvY2F0aW9uIiBtc2dpZD0iMTE5MTg5ODA2MTk2NTI3MzM3MiI+ItmF2YjZgti524zYqiDZhdqp2KfZhtuMINiv2YLbjNmCICjZhdio2KrZhtuMINio2LEgR1BTINmIINi02KjaqdmHKSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0ZpbmVMb2NhdGlvbiIgbXNnaWQ9IjUyOTUwNDc1NjM1NjQ5ODEyNTAiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2qnZhyDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYr9mC24zZgiDYtNmF2Kcg2LHYpyDYqNinINin2LPYqtmB2KfYr9mHINin2LIg2LPbjNiz2KrZhSDZhdmI2YLYuduM2KrigIzbjNin2Kgg2KzZh9in2YbbjCAoR1BTKSDbjNinINmF2YbYp9io2Lkg2YXZiNmC2LnbjNiqINmF2qnYp9mG24wg2LTYqNqp2YfigIzYp9uMINmF2KfZhtmG2K8g2KjYsdis4oCM2YfYp9uMINiz2YTZiNmE24wg24zYpyBXaS1GaSDYr9ix24zYp9mB2Kog2qnZhtivLiDYp9uM2YYg2LPYsdmI24zYs+KAjNmH2KfbjCDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYqNin24zYryDYr9ixINiv2LPYqtqv2KfZhyDYtNmF2Kcg2KjYsdin24wg2KjYsdmG2KfZhdmH4oCM2KfbjCDaqdmHINin2LIg2KLZhtmH2Kcg2KfYs9iq2YHYp9iv2Ycg2YXbjOKAjNqp2YbYr9iMINmB2LnYp9mEINmIINiv2LEg2K/Ys9iq2LHYsyDYqNin2LTYry4g2KjYsdmG2KfZhdmH4oCM2YfYpyDZhdmF2qnZhiDYp9iz2Kog2KfYsiDYotmGINio2LHYp9uMINiq2LnbjNuM2YYg2KzYp9uM24wg2qnZhyDZh9iz2KrbjNiv2Iwg2KfYs9iq2YHYp9iv2Ycg2qnZhtmG2K8g2Ygg2YXZhdqp2YYg2KfYs9iqINmG24zYsdmI24wg2KjYp9iq2LHbjCDYqNuM2LTYqtix24wg2YXYtdix2YEg2qnZhtmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI5MDY2MTQ2MTIwNDcwNTkxNTA5Ij4i4oCP2YXZhtin2KjYuSDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDaqdin2LDYqCDYsdinINio2LHYp9uMINiq2LPYqiDaqdix2K/ZhiDbjNinINmG2LXYqCDbjNqpINin2LHYp9im2YfigIzYr9mH2YbYr9mHINmF2YjZgti524zYqiDZhdqp2KfZhtuMINis2K/bjNivINin24zYrNin2K8g2YbZhdin24zbjNivLiDYp9uM2YYg2qnYp9ixINio2Ycg2KjYsdmG2KfZhdmHINin2YXaqdin2YYg2YXbjOKAjNiv2YfYryDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDZiC/bjNinINmI2LbYuduM2Kog2q/Ystin2LHYtCDYr9in2K/ZhyDYtNiv2Ycg2KrZiNiz2Lcg2LPYp9uM2LEg2YXZhtin2KjYuSDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDZhdin2YbZhtivIEdQUyDbjNinINin2LHYp9im2YfigIzYr9mH2YbYr9qv2KfZhiDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYsdinINmG2KfYr9uM2K/ZhyDYqNqv24zYsdivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzRmluZUxvY2F0aW9uIiBtc2dpZD0iMTE5MTg5ODA2MTk2NTI3MzM3MiI+IuKAj9mF2YjZgti524zYqiDZhdqp2KfZhtuMINiv2YLbjNmCICjZhdio2KrZhtuMINio2LEgR1BTINmIINi02KjaqdmHKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0ZpbmVMb2NhdGlvbiIgbXNnaWQ9IjUyOTUwNDc1NjM1NjQ5ODEyNTAiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2qnZhyDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYr9mC24zZgiDYtNmF2Kcg2LHYpyDYqNinINin2LPYqtmB2KfYr9mHINin2LIg2LPbjNiz2KrZhSDZhdmI2YLYuduM2KrigIzbjNin2Kgg2KzZh9in2YbbjCAoR1BTKSDbjNinINmF2YbYp9io2Lkg2YXZiNmC2LnbjNiqINmF2qnYp9mG24wg2LTYqNqp2YfigIzYp9uMINmF2KfZhtmG2K8g2KjYsdis4oCM2YfYp9uMINiz2YTZiNmE24wg24zYpyBXaS1GaSDYr9ix24zYp9mB2Kog2qnZhtivLiDYp9uM2YYg2LPYsdmI24zYs+KAjNmH2KfbjCDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYqNin24zYryDYr9ixINiv2LPYqtqv2KfZhyDYtNmF2Kcg2KjYsdin24wg2KjYsdmG2KfZhdmH4oCM2KfbjCDaqdmHINin2LIg2KLZhtmH2Kcg2KfYs9iq2YHYp9iv2Ycg2YXbjOKAjNqp2YbYr9iMINmB2LnYp9mEINmIINiv2LEg2K/Ys9iq2LHYsyDYqNin2LTYry4g2KjYsdmG2KfZhdmH4oCM2YfYpyDZhdmF2qnZhiDYp9iz2Kog2KfYsiDYotmGINio2LHYp9uMINiq2LnbjNuM2YYg2KzYp9uM24wg2qnZhyDZh9iz2KrbjNiv2Iwg2KfYs9iq2YHYp9iv2Ycg2qnZhtmG2K8g2Ygg2YXZhdqp2YYg2KfYs9iqINmG24zYsdmI24wg2KjYp9iq2LHbjCDYqNuM2LTYqtix24wg2YXYtdix2YEg2qnZhtmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjQ4ODc4OTUzNjIzNTQyMzk2MjgiPiLZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYqtmC2LHbjNio24wgKNmF2KjYqtmG24wg2KjYsSDYtNio2qnZhykiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjI1MzgyMDAxODQzNzMzMDIyOTUiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2qnZhyDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYqtmC2LHbjNio24wg2LTZhdinINix2Kcg2KjYr9iz2Kog2KLZiNix2K8uINin24zZhiDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYp9iyINiz2LHZiNuM2LPigIzZh9in24wg2YXZiNmC2LnbjNiqINmF2qnYp9mG24wg2qnZhyDYp9iyINmF2YbYp9io2Lkg2YXZiNmC2LnbjNiqINmF2qnYp9mG24wg2LTYqNqp2YfigIzYp9uMINmF2KfZhtmG2K8g2KjYsdis4oCM2YfYp9uMINiz2YTZiNmE24wg2YggV2ktRmkg2KfYs9iq2YHYp9iv2Ycg2YXbjOKAjNqp2YbZhtiv2Iwg2KjYr9iz2Kog2YXbjOKAjNii24zYry4g2KfbjNmGINiz2LHZiNuM2LPigIzZh9in24wg2YXZiNmC2LnbjNiqINmF2qnYp9mG24wg2KjYp9uM2K8g2K/YsSDYr9iz2Krar9in2Ycg2LTZhdinINio2LHYp9uMINio2LHZhtin2YXZh+KAjNin24wg2qnZhyDYp9iyINii2YbZh9inINin2LPYqtmB2KfYr9mHINmF24zigIzaqdmG2K/YjCDZgdi52KfZhCDZiCDYr9ixINiv2LPYqtix2LMg2KjYp9i02K8uINio2LHZhtin2YXZh+KAjNmH2Kcg2YXZhdqp2YYg2KfYs9iqINin2LIg2KLZhiDYqNix2KfbjCDYqti524zbjNmGINiq2YLYsduM2KjbjCDYrNin24zbjCDaqdmHINmH2LPYqtuM2K/YjCDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMjM2Mzk2OTY0MTc5MjM4ODk0NyI+Itiv2LPYqtix2LPbjCDYqNmHIFN1cmZhY2VGbGluZ2VyIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4i2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINio2LHZhtin2YXZhyDYp9iyINmI24zamNqv24zigIzZh9in24wg2LPYt9itINm+2KfbjNuM2YYgU3VyZmFjZUZsaW5nZXIg2KfYs9iq2YHYp9iv2Ycg2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0NvYXJzZUxvY2F0aW9uIiBtc2dpZD0iMjUzODIwMDE4NDM3MzMwMjI5NSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDaqdmHINmF2YjZgti524zYqiDZhdqp2KfZhtuMINiq2YLYsduM2KjbjCDYtNmF2Kcg2LHYpyDYqNiv2LPYqiDYotmI2LHYry4g2KfbjNmGINmF2YjZgti524zYqiDZhdqp2KfZhtuMINin2LIg2LPYsdmI24zYs+KAjNmH2KfbjCDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDaqdmHINin2LIg2YXZhtin2KjYuSDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYtNio2qnZh+KAjNin24wg2YXYp9mG2YbYryDYqNix2KzigIzZh9in24wg2LPZhNmI2YTbjCDZiCBXaS1GaSDYp9iz2KrZgdin2K/ZhyDZhduM4oCM2qnZhtmG2K/YjCDYqNiv2LPYqiDZhduM4oCM2KLbjNivLiDYp9uM2YYg2LPYsdmI24zYs+KAjNmH2KfbjCDZhdmI2YLYuduM2Kog2YXaqdin2YbbjCDYqNin24zYryDYr9ixINiv2LPYqtqv2KfZhyDYtNmF2Kcg2KjYsdin24wg2KjYsdmG2KfZhdmH4oCM2KfbjCDaqdmHINin2LIg2KLZhtmH2Kcg2KfYs9iq2YHYp9iv2Ycg2YXbjOKAjNqp2YbYr9iMINmB2LnYp9mEINmIINiv2LEg2K/Ys9iq2LHYsyDYqNin2LTYry4g2KjYsdmG2KfZhdmH4oCM2YfYpyDZhdmF2qnZhiDYp9iz2Kog2KfYsiDYotmGINio2LHYp9uMINiq2LnbjNuM2YYg2KrZgtix24zYqNuMINis2KfbjNuMINqp2Ycg2YfYs9iq24zYr9iMINin2LPYqtmB2KfYr9mHINqp2YbZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIyMzYzOTY5NjQxNzkyMzg4OTQ3Ij4i4oCP2K/Ys9iq2LHYs9uMINio2YcgU3VyZmFjZUZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiLigI/Yp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KjYsdmG2KfZhdmHINin2LIg2YjbjNqY2q/bjOKAjNmH2KfbjCDYs9i32K0g2b7Yp9uM24zZhiBTdXJmYWNlRmxpbmdlciDYp9iz2KrZgdin2K/ZhyDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4i2K7ZiNin2YbYr9mGINio2KfZgdixINmC2KfYqCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZhdit2KrZiNin24wg2KjYp9mB2LEg2qnYp9iv2LEg2LHYpyDYqNiu2YjYp9mG2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiLZvtuM2qnYsdio2YbYr9uMINi12YHYrdmHINmG2YXYp9uM2LTigIzZh9in24wgV2nigJFGaSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYqtinINin2KrYtdin2YQg2KjZhyDYtdmB2K3Yp9iqINmG2YXYp9uM2LQgV2nigJFGaSDYsdinINm+24zaqdix2KjZhtiv24wg2qnZhtivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4i2qnZhtiq2LHZhCDYtdmB2K3ZhyDZhtmF2KfbjNi04oCM2YfYp9uMIFdp4oCRRmkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSI0NTQzOTEyMjkyNjgxODI2OTg2Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINqp2Ycg2YjbjNqY2q/bjOKAjNmH2KfbjCDYs9i32K0g2b7Yp9uM24zZhiDYtdmB2K3Zh+KAjNmH2KfbjCDZhtmF2KfbjNi0IFdp4oCRRmkg2LHYpyDaqdmG2KrYsdmEINqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2YXYrdiq2YjYp9uMINio2KfZgdixINqp2KfYr9ixINix2Kcg2KjYrtmI2KfZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+IuKAj9iv2LPYqtix2LPbjCDYqNmHIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiLigI/Yp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KjYsdmG2KfZhdmHINin2LIg2YLYp9io2YTbjNiq4oCM2YfYp9uMINiz2LfYrSDZvtin24zbjNmGIElucHV0RmxpbmdlciDYp9iz2KrZgdin2K/ZhyDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiLigI/ZvtuM2qnYsdio2YbYr9uMINi12YHYrdmHINmG2YXYp9uM2LTigIzZh9in24wgV2nigJFGaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYqtinINin2KrYtdin2YQg2KjZhyDYtdmB2K3Yp9iqINmG2YXYp9uM2LQgV2nigJFGaSDYsdinINm+24zaqdix2KjZhtiv24wg2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4i4oCP2qnZhtiq2LHZhCDYtdmB2K3ZhyDZhtmF2KfbjNi04oCM2YfYp9uMIFdp4oCRRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSI0NTQzOTEyMjkyNjgxODI2OTg2Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINqp2Ycg2YjbjNqY2q/bjOKAjNmH2KfbjCDYs9i32K0g2b7Yp9uM24zZhiDYtdmB2K3Zh+KAjNmH2KfbjCDZhtmF2KfbjNi0IFdp4oCRRmkg2LHYpyDaqdmG2KrYsdmEINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjY4NTcxMzQ0OTg0MDIzNDY3MDgiPiLYttio2Lcg2K7YsdmI2KzbjCDYtdiv2KciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlQXVkaW9PdXRwdXQiIG1zZ2lkPSI2MjEwNTk3NzU0MjEyMjA4ODUzIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfZhdqp2KfZhiDZhduM4oCM2K/Zh9ivINiu2LHZiNis24wg2LXYr9inINix2Kcg2LbYqNi3INmIINmH2K/Yp9uM2Kog2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZUF1ZGlvSG90d29yZCIgbXNnaWQ9IjE4OTA1NTM5MzU2NTAzNDk4MDgiPiLYqti02K7bjNi1INqp2YTbjNiv2q/Zgdiq2YciPC9zdHJpbmc+CkBAIC00OTcsMTMxICs1MDQsMTMxIEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNvcmRBdWRpbyIgbXNnaWQ9IjQ5MDY4MzkzMDEwODc5ODA2ODAiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2LXYr9inINix2Kcg2KjYpyDZhduM2qnYsdmI2YHZhiDYttio2Lcg2qnZhtivLiDYp9uM2YYg2YXYrNmI2LIg2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINi12K/YpyDYsdinINiv2LEg2YfYsSDYstmF2KfZhiDaqdmHINio2K7ZiNin2YfbjNivINio2K/ZiNmGINiq2KPbjNuM2K8g2LTZhdinINi22KjYtyDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYW1lcmEiIG1zZ2lkPSIzNjE2MzkxOTE5NTU5NzUxMTkyIj4i2Lnaqdiz2KjYsdiv2KfYsduMINmIINmB24zZhNmF2KjYsdiv2KfYsduMIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhIiBtc2dpZD0iODQ5NzIxNjUyNDczNTUzNTAwOSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYqNinINiv2YjYsdio24zZhiDYqNmHINi52qnYs9io2LHYr9in2LHbjCDZiCDZgduM2YTZhdio2LHYr9in2LHbjCDYqNm+2LHYr9in2LLYry4g2KfbjNmGINmF2KzZiNiyINio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjOKAjNiv2YfYryDYp9iyINiv2YjYsdio24zZhiDYr9ixINmH2LEg2LLZhdin2YbbjCDYqNiv2YjZhiDYqtij24zbjNivINi02YXYpyDYp9iz2KrZgdin2K/ZhyDaqdmG2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYW1lcmFEaXNhYmxlVHJhbnNtaXRMZWQiIG1zZ2lkPSIyNjUxMDcyNjMwNTAxMTI2MjIyIj4iTEVEINmG2LTYp9mG2q/YsSDYp9mG2KrZgtin2YQg2K/Yp9iv2YfYjCDZh9mG2q/Yp9mFINin2LPYqtmB2KfYr9mHINin2LIg2K/ZiNix2KjbjNmGINi624zYsdmB2LnYp9mEINi02YjYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbWVyYURpc2FibGVUcmFuc21pdExlZCIgbXNnaWQ9IjQ3NjQ1ODU0NjU0ODAyOTUzNDEiPiLYqNmHINuM2qkg2KjYsdmG2KfZhdmHINiz24zYs9iq2YUg2KfYsiDZgtio2YQg2YbYtdioINi02K/ZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8gTEVEINmG2LTYp9mG2q/YsSDYp9iz2KrZgdin2K/ZhyDYp9iyINiv2YjYsdio24zZhiDYsdinINi624zYsdmB2LnYp9mEINqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYURpc2FibGVUcmFuc21pdExlZCIgbXNnaWQ9IjI2NTEwNzI2MzA1MDExMjYyMjIiPiLigI9MRUQg2YbYtNin2Ybar9ixINin2YbYqtmC2KfZhCDYr9in2K/Zh9iMINmH2Ybar9in2YUg2KfYs9iq2YHYp9iv2Ycg2KfYsiDYr9mI2LHYqNuM2YYg2LrbjNix2YHYudin2YQg2LTZiNivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhRGlzYWJsZVRyYW5zbWl0TGVkIiBtc2dpZD0iNDc2NDU4NTQ2NTQ4MDI5NTM0MSI+IuKAj9io2Ycg24zaqSDYqNix2YbYp9mF2Ycg2LPbjNiz2KrZhSDYp9iyINmC2KjZhCDZhti12Kgg2LTYr9mHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryBMRUQg2YbYtNin2Ybar9ixINin2LPYqtmB2KfYr9mHINin2LIg2K/ZiNix2KjbjNmGINix2Kcg2LrbjNix2YHYudin2YQg2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJpY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI5NjEyOTIyMDU3NjQ0ODgzMDQiPiLYutuM2LEg2YHYudin2YQg2qnYsdiv2YYg2K/Yp9im2YUg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JyaWNrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODMzNzgxNzA5MzMyNjM3MDUzNyI+Itiq2YTZgdmGINio2LfZiNixINiv2KfYptmF24wg2LrbjNix2YHYudin2YQg2LTZiNivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJpY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQzMzQ4MTg4MDgwMDE2OTk1MzAiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYsdinINio2Ycg2LfZiNixINqp2YTbjCDZiCDYr9in2KbZhduMINi624zYsdmB2LnYp9mEINqp2YbYry4g2KfbjNmGINqp2KfYsSDYqNiz24zYp9ixINiu2LfYsdmG2KfaqSDYp9iz2KouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJpY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzg4OTAzMjk3NjI3MjgzMDk5Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2q/ZiNi024wg2LHYpyDYqNmHINi32YjYsSDaqdmE24wg2Ygg2K/Yp9im2YXbjCDYutuM2LHZgdi52KfZhCDaqdmG2K8uINin24zZhiDaqdin2LEg2KjYs9uM2KfYsSDYrti32LHZhtin2qkg2KfYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzM0ODE4ODA4MDAxNjk5NTMwIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LHYpyDYqNmHINi32YjYsSDaqdmE24wg2Ygg2K/Yp9im2YXbjCDYutuM2LHZgdi52KfZhCDaqdmG2K8uINin24zZhiDaqdin2LEg2KjYs9uM2KfYsSDYrti32LHZhtin2qkg2KfYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JyaWNrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTc4ODkwMzI5NzYyNzI4MzA5OSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINqv2YjYtNuMINix2Kcg2KjZhyDYt9mI2LEg2qnZhNuMINmIINiv2KfYptmF24wg2LrbjNix2YHYudin2YQg2qnZhtivLiDYp9uM2YYg2qnYp9ixINio2LPbjNin2LEg2K7Yt9ix2YbYp9qpINin2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQzNjYzNDk3MjU2MTc5NTAwMiI+Itix2KfZh+KAjNin2YbYr9in2LLbjCDZhdis2K/YryDYp9is2KjYp9ix24wg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4OTg1NjA4NzI0NjI2MzgyNDIiPiLYp9is2KjYp9ixINio2LHZhtin2YXZhyDYqNix2KfbjCDYsdin2YfigIzYp9mG2K/Yp9iy24wg2YXYrNiv2K8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgxNzIwNTYxODAwNjM3MDA3NDEiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYs9io2Kgg2LHYp9mH4oCM2KfZhtiv2KfYstuMINmF2KzYr9ivINix2KfbjNin2YbZh9mUINmE2YjYrduMINi02YjYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MzI2MDA4MTI0Mjg5OTg5OTY5Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2LPYqNioINix2KfZh+KAjNin2YbYr9in2LLbjCDZhdis2K/YryDar9mI2LTbjCDYtNmI2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjI5MjczNjE1Mzc5NDI1OTE4NDEiPiLYr9iz2KrYsdiz24wg2KjZhyDYs9uM2LPYqtmFINmB2KfbjNmEINit2KfZgdi42YfZlCBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDAyMzA1MDQ5ODkwOTUzODEwIj4i2K/Ys9iq2LHYs9uMINio2Ycg2LPbjNiz2KrZhSDZgdin24zZhCDaqdin2LHYqiBTRCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIG1zZ2lkPSIxODI5MjkwNzAxNjU4OTkyMzQ3Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2YHYp9uM2YTigIzZh9in24wg2LPbjNiz2KrZhduMINiv2LEg2K3Yp9mB2LjZhyDYrNiv2KfYtNiv2YbbjCDZhti12Kgg2LTZiNivINuM2Kcg2YbYtdioINii2YYg2YTYutmIINi02YjYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MjI3ODE5NTgyNjI0OTA0OTcyIj4i2b7Yp9qpINqp2LHYr9mGINit2KfZgdi42YfZlCBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI2MjU4MjY5ODYzOTI3NDA1NiI+Itm+2KfaqSDaqdix2K/ZhiDaqdin2LHYqiBTRCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgbXNnaWQ9Ijg3ODQyNjgyNDY3NzkxOTg2MjciPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYrdin2YHYuNmHINis2K/Yp9i02K/ZhtuMINix2Kcg2YHYsdmF2Kog2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYm9vdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODE3MjA1NjE4MDA2MzcwMDc0MSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINiz2KjYqCDYsdin2YfigIzYp9mG2K/Yp9iy24wg2YXYrNiv2K8g2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LTZiNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYm9vdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUzMjYwMDgxMjQyODk5ODk5NjkiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYs9io2Kgg2LHYp9mH4oCM2KfZhtiv2KfYstuMINmF2KzYr9ivINqv2YjYtNuMINi02YjYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjkyNzM2MTUzNzk0MjU5MTg0MSI+IuKAj9iv2LPYqtix2LPbjCDYqNmHINiz24zYs9iq2YUg2YHYp9uM2YQg2K3Yp9mB2LjZh9mUIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfdW5tb3VudF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ0MDIzMDUwNDk4OTA5NTM4MTAiPiLigI/Yr9iz2KrYsdiz24wg2KjZhyDYs9uM2LPYqtmFINmB2KfbjNmEINqp2KfYsdiqIFNEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW91bnRfdW5tb3VudF9maWxlc3lzdGVtcyIgbXNnaWQ9IjE4MjkyOTA3MDE2NTg5OTIzNDciPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZgdin24zZhOKAjNmH2KfbjCDYs9uM2LPYqtmF24wg2K/YsSDYrdin2YHYuNmHINis2K/Yp9i02K/ZhtuMINmG2LXYqCDYtNmI2K8g24zYpyDZhti12Kgg2KLZhiDZhNi62Ygg2LTZiNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyMjc4MTk1ODI2MjQ5MDQ5NzIiPiLigI/Zvtin2qkg2qnYsdiv2YYg2K3Yp9mB2LjZh9mUIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjYyNTgyNjk4NjM5Mjc0MDU2Ij4i4oCP2b7Yp9qpINqp2LHYr9mGINqp2KfYsdiqIFNEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBtc2dpZD0iODc4NDI2ODI0Njc3OTE5ODYyNyI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINit2KfZgdi42Ycg2KzYr9in2LTYr9mG24wg2LHYpyDZgdix2YXYqiDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX2FjY2VzcyIgbXNnaWQ9IjM0MTEzMzg2MzIwMDIxOTM4NDYiPiLYr9ix24zYp9mB2Kog2KfYt9mE2KfYudin2Kog2YXYsdio2YjYtyDYqNmHINit2KfZgdi42YfZlCDYr9in2K7ZhNuMIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19hY2Nlc3MiIG1zZ2lkPSIzMDk0NTYzODQ0NTkzODc4NTQ4Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KfYt9mE2KfYudin2Kog2YXYsdio2YjYtyDYqNmHINit2KfZgdi42YfZlCDYr9in2K7ZhNuMINix2Kcg2K/YsduM2KfZgdiqINqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX2FjY2VzcyIgbXNnaWQ9IjMwOTQ1NjM4NDQ1OTM4Nzg1NDgiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYp9i32YTYp9i52KfYqiDZhdix2KjZiNi3INio2Ycg2K3Yp9mB2LjZh9mUINiv2KfYrtmE24wg2LHYpyDYr9ix24zYp9mB2Kog2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19jcmVhdGUiIG1zZ2lkPSI2NDE0NzU3MjM0Nzg5MzM2MzI3Ij4i2KfbjNis2KfYryDYrdin2YHYuNmH2ZQg2K/Yp9iu2YTbjCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfY3JlYXRlIiBtc2dpZD0iNDU1ODg2OTI3MzU4NTg1Njg3NiI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINit2KfZgdi42YfZlCDYr9in2K7ZhNuMINin24zYrNin2K8g2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfY3JlYXRlIiBtc2dpZD0iNDU1ODg2OTI3MzU4NTg1Njg3NiI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINit2KfZgdi42YfZlCDYr9in2K7ZhNuMINin24zYrNin2K8g2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19kZXN0cm95IiBtc2dpZD0iNTI2OTI4MzI4MzAxNjE4MDIyIj4i2K7Ysdin2Kgg2qnYsdiv2YYg2K3Yp9mB2LjZh9mUINiv2KfYrtmE24wiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX2Rlc3Ryb3kiIG1zZ2lkPSI3MjE4NzQ5Mjg2MTQ1NTI2NTM3Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2K3Yp9mB2LjZh9mUINiv2KfYrtmE24wg2LHYpyDYp9iyINio24zZhiDYqNio2LHYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX2Rlc3Ryb3kiIG1zZ2lkPSI3MjE4NzQ5Mjg2MTQ1NTI2NTM3Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2K3Yp9mB2LjZh9mUINiv2KfYrtmE24wg2LHYpyDYp9iyINio24zZhiDYqNio2LHYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfbW91bnRfdW5tb3VudCIgbXNnaWQ9Ijg4Nzc5OTgxMDE5NDQ5OTkzODYiPiLZhti12Kgv2YTYutmIINmG2LXYqCDYrdin2YHYuNmH2ZQg2K/Yp9iu2YTbjCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfbW91bnRfdW5tb3VudCIgbXNnaWQ9IjM0NTEzNjAxMTQ5MDI0OTA5MjkiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2K3Yp9mB2LjZh9mUINiv2KfYrtmE24wg2LHYpyDZhti12Kgg2qnYsdiv2Ycv2YbYtdioINii2YbYsdinINmE2LrZiCDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19tb3VudF91bm1vdW50IiBtc2dpZD0iMzQ1MTM2MDExNDkwMjQ5MDkyOSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYrdin2YHYuNmH2ZQg2K/Yp9iu2YTbjCDYsdinINmG2LXYqCDaqdix2K/Zhy/Zhti12Kgg2KLZhtix2Kcg2YTYutmIINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfcmVuYW1lIiBtc2dpZD0iNzQ5NjYzMzk1NDA4MDQ3MjQxNyI+ItmG2KfZhdqv2LDYp9ix24wg2YXYrNiv2K8g2K/Ys9iq2q/Yp9mHINiw2K7bjNix2Ycg2K/Yp9iu2YTbjCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfcmVuYW1lIiBtc2dpZD0iMTc5NDc1NzU4ODQ3MjEyNzY3NSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmG2KfZhSDYrdin2YHYuNmH2ZQg2K/Yp9iu2YTbjCDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfcmVuYW1lIiBtc2dpZD0iMTc5NDc1NzU4ODQ3MjEyNzY3NSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmG2KfZhSDYrdin2YHYuNmH2ZQg2K/Yp9iu2YTbjCDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdmlicmF0ZSIgbXNnaWQ9Ijc2OTY0MjcwMjYwNTc3MDU4MzQiPiLaqdmG2KrYsdmEINmE2LHYsti0Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdmlicmF0ZSIgbXNnaWQ9IjYyODQ5ODkyNDU5MDIzMDA5NDUiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZhNix2LLYp9mG2YbYr9mHINix2Kcg2qnZhtiq2LHZhCDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdmlicmF0ZSIgbXNnaWQ9IjYyODQ5ODkyNDU5MDIzMDA5NDUiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZhNix2LLYp9mG2YbYr9mHINix2Kcg2qnZhtiq2LHZhCDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mbGFzaGxpZ2h0IiBtc2dpZD0iMjE1NTkyMDgxMDEyMTk4NDIxNSI+Itqp2YbYqtix2YQg2obYsdin2Log2YLZiNmHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmxhc2hsaWdodCIgbXNnaWQ9IjY1MjIyODQ3OTQ1NjgzNjgzMTAiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDahtix2KfYuiDZgtmI2Ycg2LHYpyDaqdmG2KrYsdmEINqp2YbYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzYiIgbXNnaWQ9IjExMTM0NTM0MzA2NDU0MDI3MjMiPiLZhdiv24zYsduM2Kog2KrZhti424zZhdin2Kog2KjYsdqv2LLbjNiv2Ycg2Ygg2YXYrNmI2LLZh9inINio2LHYp9uMINiv2LPYqtqv2KfZh+KAjNmH2KfbjCBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VVc2IiIG1zZ2lkPSI3Nzc2MTU1NDMwMjE4MjM5ODMzIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KrZhti424zZhdin2Kog2KjYsdqv2LLbjNiv2Ycg2Ygg2YXYrNmI2LLZh9in24wg2K/Ys9iq2q/Yp9mH4oCM2YfYp9uMIFVTQiDYsdinINmF2K/bjNix24zYqiDaqdmG2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NNdHAiIG1zZ2lkPSI0OTUzNDY4Njc2Nzk1OTE3MDQyIj4i2KfYudmF2KfZhCDZvtix2YjYqtqp2YQgTVRQIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTXRwIiBtc2dpZD0iNjUzMjk2MTIwMDQ4Njc5MTU3MCI+Itiv2LPYqtix2LPbjCDYqNmHINiv2LHYp9uM2YjYsSDaqdix2YbZhCBNVFAg2KzZh9iqINin2LnZhdin2YQg2b7YsdmI2KraqdmEIE1UUCBVU0Ig2LHYpyDYp9is2KfYstmHINmF24zigIzYr9mH2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmxhc2hsaWdodCIgbXNnaWQ9IjY1MjIyODQ3OTQ1NjgzNjgzMTAiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDahtix2KfYuiDZgtmI2Ycg2LHYpyDaqdmG2KrYsdmEINqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzYiIgbXNnaWQ9IjExMTM0NTM0MzA2NDU0MDI3MjMiPiLigI/Zhdiv24zYsduM2Kog2KrZhti424zZhdin2Kog2KjYsdqv2LLbjNiv2Ycg2Ygg2YXYrNmI2LLZh9inINio2LHYp9uMINiv2LPYqtqv2KfZh+KAjNmH2KfbjCBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VVc2IiIG1zZ2lkPSI3Nzc2MTU1NDMwMjE4MjM5ODMzIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KrZhti424zZhdin2Kog2KjYsdqv2LLbjNiv2Ycg2Ygg2YXYrNmI2LLZh9in24wg2K/Ys9iq2q/Yp9mH4oCM2YfYp9uMIFVTQiDYsdinINmF2K/bjNix24zYqiDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NNdHAiIG1zZ2lkPSI0OTUzNDY4Njc2Nzk1OTE3MDQyIj4i4oCP2KfYudmF2KfZhCDZvtix2YjYqtqp2YQgTVRQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTXRwIiBtc2dpZD0iNjUzMjk2MTIwMDQ4Njc5MTU3MCI+IuKAj9iv2LPYqtix2LPbjCDYqNmHINiv2LHYp9uM2YjYsSDaqdix2YbZhCBNVFAg2KzZh9iqINin2LnZhdin2YQg2b7YsdmI2KraqdmEIE1UUCBVU0Ig2LHYpyDYp9is2KfYstmHINmF24zigIzYr9mH2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9oYXJkd2FyZV90ZXN0IiBtc2dpZD0iNDE0ODI5MDg2MDQwMDY1OTE0NiI+Itiq2LPYqiDYs9iu2KrigIzYp9mB2LLYp9ixIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjY1OTc5NjQxOTEyMDgwMTY2MDUiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KjZhyDZhdmG2LjZiNixINiq2LPYqiDYs9iu2KrigIzYp9mB2LLYp9ix2Iwg2YLYs9mF2KrigIzZh9in24wg2KzYp9mG2KjbjCDZhdiu2KrZhNmBINix2Kcg2qnZhtiq2LHZhCDaqdmG2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19oYXJkd2FyZV90ZXN0IiBtc2dpZD0iNjU5Nzk2NDE5MTIwODAxNjYwNSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqNmHINmF2YbYuNmI2LEg2KrYs9iqINiz2K7YquKAjNin2YHYstin2LHYjCDZgtiz2YXYquKAjNmH2KfbjCDYrNin2YbYqNuMINmF2K7YqtmE2YEg2LHYpyDaqdmG2KrYsdmEINqp2YbZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FsbFBob25lIiBtc2dpZD0iMzkyNTgzNjM0NzY4MTg0Nzk1NCI+Itiq2YXYp9izINmF2LPYqtmC24zZhSDYqNinINi02YXYp9ix2Ycg2KrZhNmB2YbigIzZh9inIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FsbFBob25lIiBtc2dpZD0iMzc0MDc5NzU3NjExMzc2MDgyNyI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYqNiv2YjZhiDYr9iu2KfZhNiqINi02YXYpyDYqNinINi02YXYp9ix2YfigIzZh9in24wg2KrZhNmB2YYg2KrZhdin2LMg2Kjar9uM2LHYry4g2KfbjNmGINmF2YXaqdmGINin2LPYqiDYqNin2LnYqyDYp9uM2KzYp9ivINmH2LLbjNmG2Ycg24zYpyDYqtmF2KfYs+KAjNmH2KfbjCDZvtuM2LTigIzYqNuM2YbbjCDZhti02K/ZhyDYtNmI2K8uINiq2YjYrNmHINiv2KfYtNiq2Ycg2KjYp9i024zYryDaqdmHINin24zZhiDYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmG2YXbjOKAjNiv2YfYryDYqNmHINio2LHZgtix2KfYsduMINiq2YXYp9iz4oCM2YfYp9uMINin2LbYt9ix2KfYsduMINio2b7Ysdiv2KfYstivLiDYqNix2YbYp9mF2YfigIzZh9in24wg2YXYrtix2Kgg2YXZhdqp2YYg2KfYs9iqINio2Kcg2KjYsdmC2LHYp9ix24wg2KrZhdin2LMg2KjYr9mI2YYg2KrYo9uM24zYryDYtNmF2Kcg2YfYstuM2YbZh+KAjNmH2KfbjNuMINix2Kcg2KjYsdin24wg2LTZhdinINin24zYrNin2K8g2qnZhtmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWxsUHJpdmlsZWdlZCIgbXNnaWQ9IjQxOTgzNDkyMTExMDg0OTc4NzkiPiLYqtmF2KfYsyDZhdiz2KrZgtuM2YUg2KjYpyDZh9ixINi02YXYp9ix2Ycg2KrZhNmB2YbbjCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbGxQcml2aWxlZ2VkIiBtc2dpZD0iMTY4OTAyNDkwMTUwOTk5NjgxMCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2K/ZiNmGINiv2K7Yp9mE2Kog2KjYpyDZh9ixINi02YXYp9ix2Ycg2KrZhNmB2YbbjCDYqtmF2KfYsyDYqNqv24zYsdiv2Iwg2KfYsiDYrNmF2YTZhyDYtNmF2KfYsdmH4oCO2YfYp9uMINin2LbYt9ix2KfYsduMLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDYqtmF2KfYs+KAjNmH2KfbjCDYutuM2LHYttix2YjYsduMINmIINi624zYsSDZgtin2YbZiNmG24wg2KjYpyDYrtiv2YXYp9iqINin2LbYt9ix2KfYsduMINio2q/bjNix2YbYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0ODQyNTc2OTk0MTQ0NjA0ODIxIj4i2LHYp9mH4oCM2KfZhtiv2KfYstuMINmF2LPYqtmC24zZhSDYqtmG2LjbjNmFINix2KfbjNin2YbZh9mUINmE2YjYrduMIENETUEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTYwNDg0ODA5NTMxNTQyMTQyNSI+Iti02LHZiNi5INmF2LPYqtmC24zZhSDYsdin2YfigIzYp9mG2K/Yp9iy24wg2KrZhNmB2YYgQ0RNQSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBtc2dpZD0iMTk5NDE5MzUzODgwMjMxNDE4NiI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINi02LHYp9uM2Lcg2YXZgtix2LHYp9iqIENETUEg2LHYpyDYtNix2YjYuSDaqdmG2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINi02LHYp9uM2Lcg2YXZgtix2LHYp9iqIENETUEg2LHYpyDYr9ixINmF2YjYp9mC2Lkg2LrbjNix2LbYsdmI2LHbjCDYtNix2YjYuSDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FsbFByaXZpbGVnZWQiIG1zZ2lkPSIxNjg5MDI0OTAxNTA5OTk2ODEwIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KjYr9mI2YYg2K/Yrtin2YTYqiDYqNinINmH2LEg2LTZhdin2LHZhyDYqtmE2YHZhtuMINiq2YXYp9izINio2q/bjNix2K/YjCDYp9iyINis2YXZhNmHINi02YXYp9ix2YfigI7Zh9in24wg2KfYtti32LHYp9ix24wuINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINiq2YXYp9iz4oCM2YfYp9uMINi624zYsdi22LHZiNix24wg2Ygg2LrbjNixINmC2KfZhtmI2YbbjCDYqNinINiu2K/Zhdin2Kog2KfYtti32LHYp9ix24wg2Kjar9uM2LHZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQ4NDI1NzY5OTQxNDQ2MDQ4MjEiPiLigI/Ysdin2YfigIzYp9mG2K/Yp9iy24wg2YXYs9iq2YLbjNmFINiq2YbYuNuM2YUg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wgQ0RNQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NjA0ODQ4MDk1MzE1NDIxNDI1Ij4i4oCP2LTYsdmI2Lkg2YXYs9iq2YLbjNmFINix2KfZh+KAjNin2YbYr9in2LLbjCDYqtmE2YHZhiBDRE1BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIG1zZ2lkPSIxOTk0MTkzNTM4ODAyMzE0MTg2Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2LTYsdin24zYtyDZhdmC2LHYsdin2KogQ0RNQSDYsdinINi02LHZiNi5INqp2YbYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINmF24zigI7YqtmI2KfZhtmG2K8g2LTYsdin24zYtyDZhdmC2LHYsdin2KogQ0RNQSDYsdinINiv2LEg2YXZiNin2YLYuSDYutuM2LHYttix2YjYsduMINi02LHZiNi5INqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2xvY2F0aW9uVXBkYXRlcyIgbXNnaWQ9Ijc3ODU0MDgyNTMzNjQzMzU3NDAiPiLaqdmG2KrYsdmEINin2LnZhNin2YbigIzZh9in24wg2KjZh+KAjNix2YjYstix2LPYp9mG24wg2YXaqdin2YYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19sb2NhdGlvblVwZGF0ZXMiIG1zZ2lkPSIxMTIwNzQxNTU3ODkxNDM4ODc2Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINin2LnZhNin2YbZh9in24wg2KjZh+KAjtix2YjYstix2LPYp9mG24wg2YXZiNmC2LnbjNiqINmF2qnYp9mG24wg2LHYpyDYp9iyINix2KfYr9uM2Ygg2YHYudin2YQv2LrbjNix2YHYudin2YQg2qnZhtivLiDYqNix2KfbjCDYp9iz2KrZgdin2K/ZhyDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YbbjNiz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbG9jYXRpb25VcGRhdGVzIiBtc2dpZD0iMTEyMDc0MTU1Nzg5MTQzODg3NiI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYp9i52YTYp9mG2YfYp9uMINio2YfigI7YsdmI2LLYsdiz2KfZhtuMINmF2YjZgti524zYqiDZhdqp2KfZhtuMINix2Kcg2KfYsiDYsdin2K/bjNmIINmB2LnYp9mEL9i624zYsdmB2LnYp9mEINqp2YbYry4g2KjYsdin24wg2KfYs9iq2YHYp9iv2Ycg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINi52KfYr9uMINmG24zYs9iqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI3ODU1MjU5NDYxMjY4NzM0OTE0Ij4i2K/Ys9iq2LHYs9uMINio2Ycg2YXYtNiu2LXYp9iqINin2LnZhNin2YUg2YjYsdmI2K8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGVja2luUHJvcGVydGllcyIgbXNnaWQ9IjQwMjQ1MjY5Njg2MzAxOTQxMjgiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2K/Ys9iq2LHYs9uMINio2Ycg2YjbjNqY2q/bjOKAjNmH2KfbjCDYqNin2LHar9iw2KfYsduMINi02K/ZhyDYqtmI2LPYtyDYs9ix2YjbjNiz4oCM2YfYp9uMINmI2LHZiNivINix2Kcg2KjYrtmI2KfZhtivL9io2YbZiNuM2LPYry4g2KjYsdin24wg2KfYs9iq2YHYp9iv2Ycg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINi52KfYr9uMINmF2YjYsdivINmG24zYp9iyINmG24zYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoZWNraW5Qcm9wZXJ0aWVzIiBtc2dpZD0iNDAyNDUyNjk2ODYzMDE5NDEyOCI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYr9iz2KrYsdiz24wg2KjZhyDZiNuM2pjar9uM4oCM2YfYp9uMINio2KfYsdqv2LDYp9ix24wg2LTYr9mHINiq2YjYs9i3INiz2LHZiNuM2LPigIzZh9in24wg2YjYsdmI2K8g2LHYpyDYqNiu2YjYp9mG2K8v2KjZhtmI24zYs9ivLiDYqNix2KfbjCDYp9iz2KrZgdin2K/ZhyDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YXZiNix2K8g2YbbjNin2LIg2YbbjNiz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kR2FkZ2V0IiBtc2dpZD0iNzc2OTA1MzM5MDE1ODYzNDcxIj4i2KfZhtiq2K7Yp9ioINin2KjYstin2LHaqeKAjNmH2KciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kR2FkZ2V0IiBtc2dpZD0iODI2MTMyNjkzODU5OTA0OTI5MCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2Ycg2LPbjNiz2KrZhSDYp9i52YTYp9mFINqp2YbYryDaqdiv2KfZhSDZiNuM2KzYqiDYsdinINqp2K/Yp9mFINio2LHZhtin2YXZhyDZhduM4oCO2KrZiNin2YbYryDYp9iz2KrZgdin2K/ZhyDaqdmG2K8uINio2LHZhtin2YXZh+KAjtin24wg2qnZhyDYp9uM2YYg2YXYrNmI2LIg2LHYpyDYr9in2LHYryDZhduM4oCO2KrZiNin2YbYryDYqNmHINiv2KfYr9mH4oCO2YfYp9uMINi02K7YtduMINiv24zar9ixINio2LHZhtin2YXZh+KAjtmH2Kcg2K/Ys9iq2LHYs9uMINiv2KfYtNiq2Ycg2KjYp9i02K8uINio2LHYp9uMINin2LPYqtmB2KfYr9mHINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhtuM2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kR2FkZ2V0IiBtc2dpZD0iODI2MTMyNjkzODU5OTA0OTI5MCI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2Ycg2LPbjNiz2KrZhSDYp9i52YTYp9mFINqp2YbYryDaqdiv2KfZhSDZiNuM2KzYqiDYsdinINqp2K/Yp9mFINio2LHZhtin2YXZhyDZhduM4oCO2KrZiNin2YbYryDYp9iz2KrZgdin2K/ZhyDaqdmG2K8uINio2LHZhtin2YXZh+KAjtin24wg2qnZhyDYp9uM2YYg2YXYrNmI2LIg2LHYpyDYr9in2LHYryDZhduM4oCO2KrZiNin2YbYryDYqNmHINiv2KfYr9mH4oCO2YfYp9uMINi02K7YtduMINiv24zar9ixINio2LHZhtin2YXZh+KAjtmH2Kcg2K/Ys9iq2LHYs9uMINiv2KfYtNiq2Ycg2KjYp9i02K8uINio2LHYp9uMINin2LPYqtmB2KfYr9mHINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhtuM2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeVBob25lU3RhdGUiIG1zZ2lkPSI4NDIzOTIzNzc3NjU5MjkyMjI4Ij4i2KfYtdmE2KfYrSDaqdix2K/ZhiDYrdin2YTYqiDYqtmE2YHZhiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeVBob25lU3RhdGUiIG1zZ2lkPSIxMDI5ODc3NTI5MDA3Njg2NzMyIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINmI24zamNqv24zigIzZh9in24wg2K/Ys9iq2q/Yp9mHINix2Kcg2qnZhtiq2LHZhCDaqdmG2K8uINio2LHZhtin2YXZh+KAjtin24wg2qnZhyDYp9uM2YYg2YXYrNmI2LIg2LHYpyDYr9in2LHYryDZhduM4oCO2KrZiNin2YbYryDYqNiv2YjZhiDYp9i32YTYp9i5INi02YXYpyDYqti52YjbjNi2INi02KjaqdmHINiv2KfYtNiq2Ycg2KjYp9i02K/YjCDYsdin2K/bjNmI24wg2KrZhNmB2YYg2LHYpyDYsdmI2LTZhiDbjNinINiu2KfZhdmI2LQg2qnZhtivINmIINqp2KfYsdmH2KfbjNuMINin2LIg2KfbjNmGINmC2KjbjNmEINix2Kcg2KfZhtis2KfZhSDYr9mH2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5UGhvbmVTdGF0ZSIgbXNnaWQ9IjEwMjk4Nzc1MjkwMDc2ODY3MzIiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2YjbjNqY2q/bjOKAjNmH2KfbjCDYr9iz2Krar9in2Ycg2LHYpyDaqdmG2KrYsdmEINqp2YbYry4g2KjYsdmG2KfZhdmH4oCO2KfbjCDaqdmHINin24zZhiDZhdis2YjYsiDYsdinINiv2KfYsdivINmF24zigI7YqtmI2KfZhtivINio2K/ZiNmGINin2LfZhNin2Lkg2LTZhdinINiq2LnZiNuM2LYg2LTYqNqp2Ycg2K/Yp9i02KrZhyDYqNin2LTYr9iMINix2KfYr9uM2YjbjCDYqtmE2YHZhiDYsdinINix2YjYtNmGINuM2Kcg2K7Yp9mF2YjYtCDaqdmG2K8g2Ygg2qnYp9ix2YfYp9uM24wg2KfYsiDYp9uM2YYg2YLYqNuM2YQg2LHYpyDYp9mG2KzYp9mFINiv2YfYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRQaG9uZVN0YXRlIiBtc2dpZD0iOTE3ODIyODUyNDUwNzYxMDQ4NiI+Itiu2YjYp9mG2K/ZhiDZiNi22LnbjNiqINiq2YTZgdmGINmIINi02YbYp9iz2YciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkUGhvbmVTdGF0ZSIgbXNnaWQ9IjE2MzkyMTI3NzE4MjYxMjU1MjgiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2KjZhyDZiNuM2pjar9uM4oCM2YfYp9uMINiq2YTZgdmGINiv2LPYqtqv2KfZhyDYtNmF2Kcg2K/Ys9iq2LHYs9uMINm+24zYr9inINqp2YbYry4g2KfbjNmGINmF2KzZiNiyINio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYtNmF2KfYsdmHINiq2YTZgdmGINmIINi02YbYp9iz2YfigIzZh9in24wg2K/Ys9iq2q/Yp9mH2Iwg2YHYudin2YQg2KjZiNiv2YYg24zaqSDYqtmF2KfYsyDZiCDYtNmF2KfYsdmHINix2KfZhyDYr9mI2LHbjCDaqdmHINio2Kcg24zaqSDYqtmF2KfYsyDZhdiq2LXZhCDYtNiv2Ycg2KfYs9iqINix2Kcg2YXYtNiu2LUg2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd2FrZUxvY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1MzE3MzE0MzUwMTE0OTUwMTUiPiLZhdmF2KfZhti52Kog2KfYsiDYqNmHINiu2YjYp9ioINix2YHYqtmGINix2KfbjNin2YbZh9mUINmE2YjYrduMIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93YWtlTG9jayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MzQ4MDE4Nzk0MTQ5NjEzMCI+ItmF2YXYp9mG2LnYqiDYp9iyINio2Ycg2K7ZiNin2Kgg2LHZgdiq2YYg2KrZhNmB2YYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193YWtlTG9jayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzMxMTMxOTgyNDQwMDQ0Nzg2OCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINin2LIg2LrbjNix2YHYudin2YQg2LTYr9mGINix2KfbjNin2YbZh9mUINmE2YjYrduMINis2YTZiNqv24zYsduMINqp2YbYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193YWtlTG9jayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg1NTkxMDA2NzczNzI5Mjg3NTQiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYp9iyINi624zYsdmB2LnYp9mEINi02K/ZhiDYqtmE2YHZhiDYrNmE2Yjar9uM2LHbjCDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd2FrZUxvY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjczMTEzMTk4MjQ0MDA0NDc4NjgiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYp9iyINi624zYsdmB2LnYp9mEINi02K/ZhiDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYrNmE2Yjar9uM2LHbjCDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd2FrZUxvY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NTU5MTAwNjc3MzcyOTI4NzU0Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KfYsiDYutuM2LHZgdi52KfZhCDYtNiv2YYg2KrZhNmB2YYg2KzZhNmI2q/bjNix24wg2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdHJhbnNtaXRJciIgbXNnaWQ9Ijc1NDU4NTg1MDQyMzg1MzAxMDUiPiLYp9ix2LPYp9mEINmF2KfYr9mI2YYg2YLYsdmF2LIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY190cmFuc21pdElyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1MzU4MzA4ODU0MzA2NTI5MTcwIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINiq2Kcg2KfYsiDZgdix2LPYqtmG2K/ZhyDZhdin2K/ZiNmGINmC2LHZhdiywqDYsdin24zYp9mG2Ycg2YTZiNit24zCoNin2LPYqtmB2KfYr9mHINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY190cmFuc21pdElyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzk1Nzc2Mzc0NTAyMDMwMDcyNSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYqtinINin2LIg2YHYsdiz2KrZhtiv2Ycg2YXYp9iv2YjZhiDZgtix2YXYsiDYqtmE2YHZhiDYp9iz2KrZgdin2K/ZhyDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZXZpY2VQb3dlciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjc4NzAzNDcyMjYxNjM1MDQxNyI+Itix2YjYtNmGL9iu2KfZhdmI2LQg2qnYsdiv2YYg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RldmljZVBvd2VyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDkyODYyMjQ3MDk4MDk0MzIwNiI+Itix2YjYtNmGL9iu2KfZhdmI2LQg2qnYsdiv2YYg2KrZhNmB2YYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZXZpY2VQb3dlciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY4OTg2Mjg3ODk4NDYzMTgzMSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYsdinINix2YjYtNmGINuM2Kcg2K7Yp9mF2YjYtCDaqdmG2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2MDM3MDU3MzQ4NDYzMTMxMDMyIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINqv2YjYtNuMINix2Kcg2LHZiNi02YYg24zYpyDYrtin2YXZiNi0INqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZXZpY2VQb3dlciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY4OTg2Mjg3ODk4NDYzMTgzMSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYsdinINix2YjYtNmGINuM2Kcg2K7Yp9mF2YjYtCDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2MDM3MDU3MzQ4NDYzMTMxMDMyIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINqv2YjYtNuMINix2Kcg2LHZiNi02YYg24zYpyDYrtin2YXZiNi0INqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZhY3RvcnlUZXN0IiBtc2dpZD0iMzcxNTIyNTQ5MjY5NjQxNjE4NyI+Itin2KzYsdinINiv2LEg2K3Yp9mE2Kog2KrYs9iqINqp2KfYsdiu2KfZhtmHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM5NTIwNTkzMTgzNTk2NTMwOTEiPiLYp9is2LHYpyDYqNmH4oCM2LnZhtmI2KfZhiDYqtiz2Kog2LPYp9iy2YbYr9mHINiz2LfYrSDZvtin24zbjNmG2Iwg2KfZhdqp2KfZhiDYr9iz2KrYsdiz24wg2qnYp9mF2YQg2KjZhyDYs9iu2KrigIzYp9mB2LLYp9ixINix2KfbjNin2YbZh9mUINmE2YjYrduMINi02YXYpyDYsdinINmB2LHYp9mH2YUg2YXbjOKAjNii2YjYsdivLiDZgdmC2Lcg2LLZhdin2YbbjCDaqdmHINix2KfbjNin2YbZh9mUINmE2YjYrduMINiv2LEg2K3Yp9mE2Kog2KrYs9iqINiz2KfYstmG2K/ZhyDYr9ixINit2KfZhCDYp9is2LHYp9iz2Kog2YLYp9io2YQg2K/Ys9iq2LHYs9uMINin2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mYWN0b3J5VGVzdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgxMzY2NDQ5OTAzMTkyNDQ4MDIiPiLYp9is2LHYpyDYqNmH4oCM2LnZhtmI2KfZhiDYqtiz2Kog2LPYp9iy2YbYr9mHINiz2LfYrSDZvtin24zbjNmG2Iwg2KfZhdqp2KfZhiDYr9iz2KrYsdiz24wg2qnYp9mF2YQg2KjZhyDYs9iu2KrigIzYp9mB2LLYp9ixINiq2YTZgdmGINi02YXYpyDYsdinINmB2LHYp9mH2YUg2YXbjOKAjNii2YjYsdivLiDZgdmC2Lcg2LLZhdin2YbbjCDaqdmHINiq2YTZgdmGINiv2LEg2K3Yp9mE2Kog2KrYs9iqINiz2KfYstmG2K/ZhyDYr9ixINit2KfZhCDYp9is2LHYp9iz2Kog2YLYp9io2YQg2K/Ys9iq2LHYs9uMINin2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFdhbGxwYXBlciIgbXNnaWQ9IjY2MjcxOTIzMzMzNzM0NjUxNDMiPiLYqtmG2LjbjNmFINiq2LXZiNuM2LEg2LLZhduM2YbZhyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFdhbGxwYXBlciIgbXNnaWQ9IjczNzM0NDc5MjA5Nzc2MjQ3NDUiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYqti12YjbjNixINiy2YXbjNmG2Ycg2LPbjNiz2KrZhSDYsdinINiq2YbYuNuM2YUg2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFdhbGxwYXBlciIgbXNnaWQ9IjczNzM0NDc5MjA5Nzc2MjQ3NDUiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYqti12YjbjNixINiy2YXbjNmG2Ycg2LPbjNiz2KrZhSDYsdinINiq2YbYuNuM2YUg2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0V2FsbHBhcGVySGludHMiIG1zZ2lkPSIzMjc4NjA4MTY1OTc3NzM2NTM4Ij4i2KrZhti424zZhSDYp9mG2K/Yp9iy2Ycg2KrYtdmI24zYsSDYstmF24zZhtmHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0V2FsbHBhcGVySGludHMiIG1zZ2lkPSI4MjM1Nzg0Mzg0MjIzNzMwMDkxIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2Ybaqdin2Kog2KfZhtiv2KfYstmHINiq2LXZiNuM2LEg2LLZhduM2YbZhyDYs9uM2LPYqtmFINix2Kcg2KrZhti424zZhSDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0V2FsbHBhcGVySGludHMiIG1zZ2lkPSI4MjM1Nzg0Mzg0MjIzNzMwMDkxIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2Ybaqdin2Kog2KfZhtiv2KfYstmHINiq2LXZiNuM2LEg2LLZhduM2YbZhyDYs9uM2LPYqtmFINix2Kcg2KrZhti424zZhSDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYXN0ZXJDbGVhciIgbXNnaWQ9IjIzMTU3NTA0MjMxMzk2OTczOTciPiLYqNin2LLZhti02KfZhtuMINiz24zYs9iq2YUg2KjZhyDZhdmI2KfYsdivINm+24zYtOKAjNmB2LHYtiDaqdin2LHYrtin2YbZhyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hc3RlckNsZWFyIiBtc2dpZD0iMzY2NTM4MDQ5MjYzMzkxMDIyNiI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2LfZiNixINqp2KfZhdmEINiz24zYs9iq2YUg2LHYpyDYsdmI24wg2KrZhti424zZhdin2Kog2qnYp9ix2K7Yp9mG2Ycg2KjYp9iy2YbYtNin2YbbjCDaqdmG2K/YjCDZh9mF2Ycg2K/Yp9iv2YfigI7Zh9in2Iwg2b7bjNqp2LHYqNmG2K/bjCDZiCDYqNix2YbYp9mF2YfigI7Zh9in24wg2YbYtdioINi02K/ZhyDYsdinINm+2KfaqSDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFzdGVyQ2xlYXIiIG1zZ2lkPSIzNjY1MzgwNDkyNjMzOTEwMjI2Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KjYt9mI2LEg2qnYp9mF2YQg2LPbjNiz2KrZhSDYsdinINix2YjbjCDYqtmG2LjbjNmF2KfYqiDaqdin2LHYrtin2YbZhyDYqNin2LLZhti02KfZhtuMINqp2YbYr9iMINmH2YXZhyDYr9in2K/Zh+KAjtmH2KfYjCDZvtuM2qnYsdio2YbYr9uMINmIINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhti12Kgg2LTYr9mHINix2Kcg2b7Yp9qpINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFRpbWUiIG1zZ2lkPSIyMDIxNjE0ODI5NTkxNzc1NjQ2Ij4i2KrZhti424zZhSDYs9in2LnYqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE4OTYzNDE0MzgxNTExNTI4ODEiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYstmF2KfZhiDYs9in2LnYqiDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODU1NzAyNzMwNzM4MDIwIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2LLZhdin2YYg2LPYp9i52Kog2KrZhNmB2YYg2LHYpyDYqti624zbjNixINiv2YfYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxODk2MzQxNDM4MTUxMTUyODgxIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2LLZhdin2YYg2LPYp9i52Kog2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LHYpyDYqti624zbjNixINiv2YfYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTg1NTcwMjczMDczODAyMCI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINiy2YXYp9mGINiz2KfYudiqINiq2YTZgdmGINix2Kcg2KrYutuM24zYsSDYr9mH2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRUaW1lWm9uZSIgbXNnaWQ9IjI5NDUwNzk4MDEwMTMwNzczNDAiPiLYqtmG2LjbjNmFINmF2YbYt9mC2YfZlCDYstmF2KfZhtuMIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZVpvbmUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE2NzY5ODM3MTIzMTU4Mjc2NDUiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZhdmG2LfZgtmH2ZQg2LLZhdin2YbbjCDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDQ5OTk0MzQ4ODQzNjYzMzM5OCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmF2YbYt9mC2YfZlCDYstmF2KfZhtuMINiq2YTZgdmGINix2Kcg2KrYutuM24zYsSDYr9mH2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2NvdW50TWFuYWdlclNlcnZpY2UiIG1zZ2lkPSI0ODI5MjYyMzQ5NjkxMzg2OTg2Ij4i2LnZhdmE2qnYsdivINio2YfigIzYudmG2YjYp9mGIEFjY291bnRNYW5hZ2VyU2VydmljZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjE5NDg0NTU1NTIzMzM2MTU5NTQiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KjYpyBBY2NvdW50QXV0aGVudGljYXRvcnMg2KrZhdin2LMg2KjYsdmC2LHYp9ixINqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lWm9uZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTY3Njk4MzcxMjMxNTgyNzY0NSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmF2YbYt9mC2YfZlCDYstmF2KfZhtuMINix2KfbjNin2YbZh9mUINmE2YjYrduMINix2Kcg2KrYutuM24zYsSDYr9mH2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZVpvbmUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDk5OTQzNDg4NDM2NjMzMzk4Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2YXZhti32YLZh9mUINiy2YXYp9mG24wg2KrZhNmB2YYg2LHYpyDYqti624zbjNixINiv2YfYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjQ4MjkyNjIzNDk2OTEzODY5ODYiPiLigI/YudmF2YTaqdix2K8g2KjZh+KAjNi52YbZiNin2YYgQWNjb3VudE1hbmFnZXJTZXJ2aWNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjb3VudE1hbmFnZXJTZXJ2aWNlIiBtc2dpZD0iMTk0ODQ1NTU1MjMzMzYxNTk1NCI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqNinIEFjY291bnRBdXRoZW50aWNhdG9ycyDYqtmF2KfYsyDYqNix2YLYsdin2LEg2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0QWNjb3VudHMiIG1zZ2lkPSIxMDg2Nzk1NDY3NzYwMTIyMTE0Ij4i24zYp9mB2KrZhiDYrdiz2KfYqOKAjNmH2Kcg2K/YsSDYr9iz2Krar9in2YciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRBY2NvdW50cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjc0MTQ5NjUzNDc2OTY2MDAyNyI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYqNmHINmE24zYs9iqINit2LPYp9io4oCM2YfYp9uMINi02YbYp9iu2KrZhyDYtNiv2Ycg2KrZiNiz2Lcg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2K/Ys9iq2LHYs9uMINm+24zYr9inINqp2YbYry4g2KfbjNmGINmF2YXaqdmGINin2LPYqiDYrdiz2KfigIzYqOKAjNmH2KfbjCDYp9uM2KzYp9ivINi02K/ZhyDYqtmI2LPYtyDYqNix2YbYp9mF2YfigIzZh9in24zbjCDYsdinINqp2Ycg2YbYtdioINqp2LHYr9mH4oCM2KfbjNiv2Iwg2LTYp9mF2YQg2LTZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ0ODMxNjgyMjQ1MTgwNzM4MiI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYqNmHINmE24zYs9iqINit2LPYp9io4oCM2YfYp9uMINi02YbYp9iu2KrZhyDYtNiv2Ycg2KrZiNiz2Lcg2KrZhNmB2YYg2K/Ys9iq2LHYs9uMINm+24zYr9inINqp2YbYry4g2KfbjNmGINmF2YXaqdmGINin2LPYqiDYrdiz2KfigIzYqOKAjNmH2KfbjCDYp9uM2KzYp9ivINi02K/ZhyDYqtmI2LPYtyDYqNix2YbYp9mF2YfigIzZh9in24zbjCDYsdinINqp2Ycg2YbYtdioINqp2LHYr9mH4oCM2KfbjNiv2Iwg2LTYp9mF2YQg2LTZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXV0aGVudGljYXRlQWNjb3VudHMiIG1zZ2lkPSI1MjY1OTA4NDgxMTcyNzM2OTMzIj4i2KfbjNis2KfYryDYrdiz2KfYqOKAjNmH2Kcg2Ygg2KrZhti424zZhSDar9iw2LHZiNin2pjigIzZh+KAjNmH2KciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hdXRoZW50aWNhdGVBY2NvdW50cyIgbXNnaWQ9IjU0NzIxMjQyOTY5MDg5NzcyNjAiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KfYsiDYp9mF2qnYp9mG2KfYqiDYqtij24zbjNivINqp2YbZhtiv2Ycg2KfYudiq2KjYp9ixINit2LPYp9ioIEFjY291bnRNYW5hZ2VyINin2LIg2KzZhdmE2Ycg2KfbjNis2KfYryDYrdiz2KfYqCDZiCDYr9ix24zYp9mB2Kog2Ygg2KrZhti424zZhSDar9iw2LHZiNin2pjZh+KAjtmH2Kcg2KfYs9iq2YHYp9iv2Ycg2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2F1dGhlbnRpY2F0ZUFjY291bnRzIiBtc2dpZD0iNTQ3MjEyNDI5NjkwODk3NzI2MCI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYp9iyINin2YXaqdin2YbYp9iqINiq2KPbjNuM2K8g2qnZhtmG2K/ZhyDYp9i52KrYqNin2LEg2K3Ys9in2KggQWNjb3VudE1hbmFnZXIg2KfYsiDYrNmF2YTZhyDYp9uM2KzYp9ivINit2LPYp9ioINmIINiv2LHbjNin2YHYqiDZiCDYqtmG2LjbjNmFINqv2LDYsdmI2KfamNmH4oCO2YfYpyDYp9iz2KrZgdin2K/ZhyDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VBY2NvdW50cyIgbXNnaWQ9IjQ5ODMxMjYzMDQ3NTcxNzczMDUiPiLYp9mB2LLZiNiv2YYg24zYpyDYrdiw2YEg2K3Ys9in2KjigIzZh9inIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI4Njk4Mjk1NjI1NDg4MjkyNTA2Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2LnZhdmE2qnYsdiv2YfYp9uM24wg2YXYp9mG2YbYryDYp9mB2LLZiNiv2YYg2Ygg2K3YsNmBINit2LPYp9io4oCM2YfYpyDZiCDYrdiw2YEg2q/YsNix2YjYp9qY2YfigI7Zh9inINix2Kcg2KfZhtis2KfZhSDYr9mH2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI4Njk4Mjk1NjI1NDg4MjkyNTA2Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2LnZhdmE2qnYsdiv2YfYp9uM24wg2YXYp9mG2YbYryDYp9mB2LLZiNiv2YYg2Ygg2K3YsNmBINit2LPYp9io4oCM2YfYpyDZiCDYrdiw2YEg2q/YsNix2YjYp9qY2YfigI7Zh9inINix2Kcg2KfZhtis2KfZhSDYr9mH2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91c2VDcmVkZW50aWFscyIgbXNnaWQ9IjIzNTQ4MTM5NjE2Mzg3NzY0MiI+Itin2LPYqtmB2KfYr9mHINin2LIg2K3Ys9in2KjigIzZh9inINiv2LEg2K/Ys9iq2q/Yp9mHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXNlQ3JlZGVudGlhbHMiIG1zZ2lkPSI3OTg0MjI3MTQ3NDAzMzQ2NDIyIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINmG2LTYp9mG2YfigI7Zh9in24wg2KrYp9uM24zYryDYp9i52KrYqNin2LEg2LHYpyDYr9ix2K7ZiNin2LPYqiDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXNlQ3JlZGVudGlhbHMiIG1zZ2lkPSI3OTg0MjI3MTQ3NDAzMzQ2NDIyIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINmG2LTYp9mG2YfigI7Zh9in24wg2KrYp9uM24zYryDYp9i52KrYqNin2LEg2LHYpyDYr9ix2K7ZiNin2LPYqiDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOZXR3b3JrU3RhdGUiIG1zZ2lkPSI0OTUxMDI3OTY0MzQ4OTc0NzczIj4i2YXYtNin2YfYr9mH2ZQg2KfYqti12KfZhNin2Kog2LTYqNqp2YciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOZXR3b3JrU3RhdGUiIG1zZ2lkPSI4MzE4OTY0NDI0Njc1OTYwOTc1Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfZhdqp2KfZhiDZhduM4oCM2K/Zh9ivINin2LfZhNin2LnYp9iqINmF2LHYqNmI2Lcg2KjZhyDYp9iq2LXYp9mE2KfYqiDYtNio2qnZhyDZhdin2YbZhtivINi02KjaqdmH4oCM2YfYp9uMINmF2YjYrNmI2K8g2Ygg2YXYqti12YQg2LHYpyDZhdi02KfZh9iv2Ycg2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY3JlYXRlTmV0d29ya1NvY2tldHMiIG1zZ2lkPSI4MDE4NzU4MTM2NDA0MzIzNjU4Ij4i2K/Ys9iq2LHYs9uMINqp2KfZhdmEINio2Ycg2LTYqNqp2YciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jcmVhdGVOZXR3b3JrU29ja2V0cyIgbXNnaWQ9IjM0MDMwNjIxODc3Nzk3MjQxODUiPiLYqNmHINio2LHZhtin2YXZhyDYp9mF2qnYp9mGINmF24zigIzYr9mH2K8g2LPZiNqp2KrigIzZh9in24wg2LTYqNqp2Ycg2LHYpyDYp9uM2KzYp9ivINqp2YbYryDZiCDYp9iyINm+2LHZiNiq2qnZhOKAjNmH2KfbjCDYtNio2qnZhyDYs9mB2KfYsdi024wg2KfYs9iq2YHYp9iv2Ycg2YbZhdin24zYry4g2YXYsdmI2LHar9ixINmIINiz2KfbjNixINio2LHZhtin2YXZh+KAjNmH2Kcg2LHZiNi024wg2LHYpyDYqNix2KfbjCDYp9ix2LPYp9mEINiv2KfYr9mH4oCM2YfYpyDYqNmHINin24zZhtiq2LHZhtiqINin2LHYp9im2Ycg2YXbjOKAjNqp2YbZhtivINio2YbYp9io2LHYp9uM2YYg2KfbjNmGINmF2KzZiNiyINio2LHYp9uMINin2LHYs9in2YQg2K/Yp9iv2Ycg2KjZhyDYp9uM2YbYqtix2YbYqiDYttix2YjYsduMINmG24zYs9iqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVBcG5TZXR0aW5ncyIgbXNnaWQ9IjUwNTY2MDE1OTY3NTc1MTg5NiI+Itiq2LrbjNuM2LEv2LHZh9qv24zYsduMINiq2YbYuNuM2YXYp9iqINi02KjaqdmHINmIINiq2LHYp9mB24zaqSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MzMzNzk4ODg2NDEyNzE0MTkzIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KrZhti424zZhdin2Kog2LTYqNqp2Ycg2LHYpyDYqti624zbjNixINiv2YfYryDZiCDYr9ixINqp2YQg2KrYsdin2YHbjNqpINi02KjaqdmHINmF2K/Yp9iu2YTZhyDaqdmG2K8g2Ygg2KLZhiDYsdinINiy24zYsSDZhti42LEg2K/Yp9i02KrZhyDYqNin2LTYr9iMINio2LHYp9uMINmF2KvYp9mEINm+2LHYp9qp2LPbjCDZiCDZvtmI2LHYqiDZh9ixIEFQTiDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDYqNiz2KrZh+KAjtmH2KfbjCDYtNio2qnZhyDYsdinINio2K/ZiNmGINin2LfZhNin2Lkg2LTZhdinINqp2YbYqtix2YQg2qnZhtmG2K/YjCDZhdis2K/Yr9inINmH2K/Yp9uM2Kog2qnZhtmG2K8g24zYpyDYqti624zbjNixINiv2YfZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MzMzNzk4ODg2NDEyNzE0MTkzIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KrZhti424zZhdin2Kog2LTYqNqp2Ycg2LHYpyDYqti624zbjNixINiv2YfYryDZiCDYr9ixINqp2YQg2KrYsdin2YHbjNqpINi02KjaqdmHINmF2K/Yp9iu2YTZhyDaqdmG2K8g2Ygg2KLZhiDYsdinINiy24zYsSDZhti42LEg2K/Yp9i02KrZhyDYqNin2LTYr9iMINio2LHYp9uMINmF2KvYp9mEINm+2LHYp9qp2LPbjCDZiCDZvtmI2LHYqiDZh9ixIEFQTiDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDYqNiz2KrZh+KAjtmH2KfbjCDYtNio2qnZhyDYsdinINio2K/ZiNmGINin2LfZhNin2Lkg2LTZhdinINqp2YbYqtix2YQg2qnZhtmG2K/YjCDZhdis2K/Yr9inINmH2K/Yp9uM2Kog2qnZhtmG2K8g24zYpyDYqti624zbjNixINiv2YfZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlTmV0d29ya1N0YXRlIiBtc2dpZD0iOTU4ODg0MjkxNDU0MzI3MzA5Ij4i2KrYutuM24zYsSDZgtin2KjZhNuM2Kog2KfYqti12KfZhCDYtNio2qnZhyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZU5ldHdvcmtTdGF0ZSIgbXNnaWQ9IjY3ODkxMjM5MTI0NzY0MTYyMTQiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZiNi22LnbjNiqINin2KrYtdin2YQg2LTYqNqp2Ycg2LHYpyDYqti624zbjNixINiv2YfYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VOZXR3b3JrU3RhdGUiIG1zZ2lkPSI2Nzg5MTIzOTEyNDc2NDE2MjE0Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2YjYtti524zYqiDYp9iq2LXYp9mEINi02KjaqdmHINix2Kcg2KrYutuM24zYsSDYr9mH2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VUZXRoZXJTdGF0ZSIgbXNnaWQ9IjU5NTI1ODQ5NjQzNzMwMTc5NjAiPiLYqti624zbjNixINmC2KfYqNmE24zYqiDYp9iq2LXYp9mEINiv2KfYr9mHINio2Kcg2LPbjNmFIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlVGV0aGVyU3RhdGUiIG1zZ2lkPSIxNTI0NDQxMzQ0NDEyMzE5NzgwIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2YjYtti524zYqiDYp9iq2LXYp9mEINi02KjaqdmHINin2KrYtdin2YQg2K/Yp9iv2Ycg2KjYpyDYs9uM2YUg2LHYpyDYqti624zbjNixINiv2YfYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VUZXRoZXJTdGF0ZSIgbXNnaWQ9IjE1MjQ0NDEzNDQ0MTIzMTk3ODAiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZiNi22LnbjNiqINin2KrYtdin2YQg2LTYqNqp2Ycg2KfYqti12KfZhCDYr9in2K/ZhyDYqNinINiz24zZhSDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlQmFja2dyb3VuZERhdGFTZXR0aW5nIiBtc2dpZD0iMTQwMDY2NjAxMjY3MTY0ODc0MSI+Itiq2LrbjNuM2LEg2KrZhti424zZhdin2Kog2YXbjNiy2KfZhiDYp9iz2KrZgdin2K/ZhyDYr9in2K/ZhyDYr9ixINm+2LPigIzYstmF24zZhtmHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQmFja2dyb3VuZERhdGFTZXR0aW5nIiBtc2dpZD0iNTM0NzcyOTU3ODQ2ODc0NDM3OSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINiq2YbYuNuM2YUg2qnYp9ix2KjYsdivINiv2KfYr9mH4oCO2YfYp9uMINm+2LPigIzYstmF24zZhtmHINix2Kcg2KrYutuM24zYsSDYr9mH2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MjAyMDEyOTQ5MjQ3MDQwMDExIj4i2YXYtNin2YfYr9mH2ZQg2KfYqti12KfZhNin2KogV2ktRmkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MDAyNzk4MDc3Mzg3ODAzNzI2Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfZhdqp2KfZhiDZhduM4oCM2K/Zh9ivINin2LfZhNin2LnYp9iqINmF2LHYqNmI2Lcg2KjZhyDYtNio2qnZhyBXaS1GaSDYsdinINmF2LTYp9mH2K/ZhyDaqdmG2K/YjCDYqNmH4oCM2LnZhtmI2KfZhiDZhdir2KfZhCDZgdi52KfZhCDYqNmI2K/ZhiBXaS1GaSDZiCDZhtin2YUg2K/Ys9iq2q/Yp9mH4oCM2YfYp9uMIFdpLUZpINmF2KrYtdmELiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2lmaVN0YXRlIiBtc2dpZD0iNjU1MDY0MTE4ODc0OTEyODAzNSI+Itin2KrYtdin2YQg2KjZhyBXaS1GaSDZiCDZgti32Lkg2KfYqti12KfZhCDYp9iyINii2YYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI3MTM3OTUwMjk3Mzg2MTI3NTMzIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KjZhyDZhtmC2KfYtyDYr9iz2KrYsdiz24wgV2ktRmkg2YjYtdmEINi02YjYryDZiCDYp9ix2KrYqNin2Lcg2K7ZiNivINix2Kcg2KjYpyDYotmG4oCM2YfYpyDZgti32Lkg2qnZhtivINmIINiq2LrbjNuM2LHYp9iq24wg2LHYpyDYr9ixINm+24zaqdix2KjZhtiv24wg2K/Ys9iq2q/Yp9mHINio2LHYp9uMINi02KjaqdmH4oCO2YfYp9uMIFdpLUZpINin24zYrNin2K8g2qnZhtivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBtc2dpZD0iMTM2ODI1Mzg3MTQ4MzI1NDc4NCI+Itiv2LHbjNin2YHYqiDahtmG2K/ar9in2YbZhyBXaS1GaSDYsdinINmF2KzYp9iyINmF24zigIzaqdmG2K8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijc5Njk3NzQwMjEyNTYzMzY1NDgiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2KjZhyDYr9ix24zYp9mB2Kog2KjYs9iq2YfigIzZh9in24wg2KfYsdiz2KfZhNuMINio2Ycg2YfZhdmHINiv2LPYqtqv2KfZh+KAjNmH2KfbjCDZhdmI2KzZiNivINiv2LEg2LTYqNqp2YcgV2ktRmkg2KjYpyDYp9iz2KrZgdin2K/ZhyDYp9iyINii2K/Ysdiz4oCM2YfYp9uMINm+2K7YtCDahtmG2K/ar9in2YbZhyDZiCDZhtmHINmB2YLYtyDYqNmHINix2KfbjNin2YbZh9mUINmE2YjYrduMINi02YXYpyDYqNm+2LHYr9in2LLZhtivLiDYp9uM2YYg2KfYsiDYqtmI2KfZhiDZhdi12LHZgSDYqNuM2LTYqtix24wg2YbYs9io2Kog2KjZhyDYrdin2YTYqiDZvtiu2LQg2LrbjNix2obZhtiv2q/Yp9mG2Ycg2KfYs9iq2YHYp9iv2Ycg2YXbjOKAjNqp2YbYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODUxOTQ5NzA2MDI1MzQ5OTI2Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINio2Ycg2K/YsduM2KfZgdiqINio2LPYqtmH4oCM2YfYp9uMINin2LHYs9in2YTbjCDYqNmHINmH2YXZhyDYr9iz2Krar9in2YfigIzZh9in24wg2YXZiNis2YjYryDYr9ixINi02KjaqdmHIFdpLUZpINio2Kcg2KfYs9iq2YHYp9iv2Ycg2KfYsiDYotiv2LHYs+KAjNmH2KfbjCDZvtiu2LQg2obZhtiv2q/Yp9mG2Ycg2Ygg2YbZhyDZgdmC2Lcg2KjZhyDYqtmE2YHZhiDYtNmF2Kcg2KjZvtix2K/Yp9iy2YbYry4g2KfbjNmGINin2LIg2KrZiNin2YYg2YXYtdix2YEg2KjbjNi02KrYsduMINmG2LPYqNiqINio2Ycg2K3Yp9mE2Kog2b7Yrti0INi624zYsdqG2YbYr9qv2KfZhtmHINin2LPYqtmB2KfYr9mHINmF24zigIzaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQmFja2dyb3VuZERhdGFTZXR0aW5nIiBtc2dpZD0iNTM0NzcyOTU3ODQ2ODc0NDM3OSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINiq2YbYuNuM2YUg2qnYp9ix2KjYsdivINiv2KfYr9mH4oCO2YfYp9uMINm+2LPigIzYstmF24zZhtmHINix2Kcg2KrYutuM24zYsSDYr9mH2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MjAyMDEyOTQ5MjQ3MDQwMDExIj4i4oCP2YXYtNin2YfYr9mH2ZQg2KfYqti12KfZhNin2KogV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MDAyNzk4MDc3Mzg3ODAzNzI2Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfZhdqp2KfZhiDZhduM4oCM2K/Zh9ivINin2LfZhNin2LnYp9iqINmF2LHYqNmI2Lcg2KjZhyDYtNio2qnZhyBXaS1GaSDYsdinINmF2LTYp9mH2K/ZhyDaqdmG2K/YjCDYqNmH4oCM2LnZhtmI2KfZhiDZhdir2KfZhCDZgdi52KfZhCDYqNmI2K/ZhiBXaS1GaSDZiCDZhtin2YUg2K/Ys9iq2q/Yp9mH4oCM2YfYp9uMIFdpLUZpINmF2KrYtdmELiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2lmaVN0YXRlIiBtc2dpZD0iNjU1MDY0MTE4ODc0OTEyODAzNSI+IuKAj9in2KrYtdin2YQg2KjZhyBXaS1GaSDZiCDZgti32Lkg2KfYqti12KfZhCDYp9iyINii2YYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI3MTM3OTUwMjk3Mzg2MTI3NTMzIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KjZhyDZhtmC2KfYtyDYr9iz2KrYsdiz24wgV2ktRmkg2YjYtdmEINi02YjYryDZiCDYp9ix2KrYqNin2Lcg2K7ZiNivINix2Kcg2KjYpyDYotmG4oCM2YfYpyDZgti32Lkg2qnZhtivINmIINiq2LrbjNuM2LHYp9iq24wg2LHYpyDYr9ixINm+24zaqdix2KjZhtiv24wg2K/Ys9iq2q/Yp9mHINio2LHYp9uMINi02KjaqdmH4oCO2YfYp9uMIFdpLUZpINin24zYrNin2K8g2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBtc2dpZD0iMTM2ODI1Mzg3MTQ4MzI1NDc4NCI+IuKAj9iv2LHbjNin2YHYqiDahtmG2K/ar9in2YbZhyBXaS1GaSDYsdinINmF2KzYp9iyINmF24zigIzaqdmG2K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijc5Njk3NzQwMjEyNTYzMzY1NDgiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2KjZhyDYr9ix24zYp9mB2Kog2KjYs9iq2YfigIzZh9in24wg2KfYsdiz2KfZhNuMINio2Ycg2YfZhdmHINiv2LPYqtqv2KfZh+KAjNmH2KfbjCDZhdmI2KzZiNivINiv2LEg2LTYqNqp2YcgV2ktRmkg2KjYpyDYp9iz2KrZgdin2K/ZhyDYp9iyINii2K/Ysdiz4oCM2YfYp9uMINm+2K7YtCDahtmG2K/ar9in2YbZhyDZiCDZhtmHINmB2YLYtyDYqNmHINix2KfbjNin2YbZh9mUINmE2YjYrduMINi02YXYpyDYqNm+2LHYr9in2LLZhtivLiDYp9uM2YYg2KfYsiDYqtmI2KfZhiDZhdi12LHZgSDYqNuM2LTYqtix24wg2YbYs9io2Kog2KjZhyDYrdin2YTYqiDZvtiu2LQg2LrbjNix2obZhtiv2q/Yp9mG2Ycg2KfYs9iq2YHYp9iv2Ycg2YXbjOKAjNqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODUxOTQ5NzA2MDI1MzQ5OTI2Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINio2Ycg2K/YsduM2KfZgdiqINio2LPYqtmH4oCM2YfYp9uMINin2LHYs9in2YTbjCDYqNmHINmH2YXZhyDYr9iz2Krar9in2YfigIzZh9in24wg2YXZiNis2YjYryDYr9ixINi02KjaqdmHIFdpLUZpINio2Kcg2KfYs9iq2YHYp9iv2Ycg2KfYsiDYotiv2LHYs+KAjNmH2KfbjCDZvtiu2LQg2obZhtiv2q/Yp9mG2Ycg2Ygg2YbZhyDZgdmC2Lcg2KjZhyDYqtmE2YHZhiDYtNmF2Kcg2KjZvtix2K/Yp9iy2YbYry4g2KfbjNmGINin2LIg2KrZiNin2YYg2YXYtdix2YEg2KjbjNi02KrYsduMINmG2LPYqNiqINio2Ycg2K3Yp9mE2Kog2b7Yrti0INi624zYsdqG2YbYr9qv2KfZhtmHINin2LPYqtmB2KfYr9mHINmF24zigIzaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGhBZG1pbiIgbXNnaWQ9IjYwMDY5NjczNzM5MzU5MjY2NTkiPiLYr9iz2KrYsdiz24wg2KjZhyDYqtmG2LjbjNmF2KfYqiDYqNmE2YjYqtmI2KsiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhBZG1pbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjkyMTE3NzQ3MTc0ODg4MjEzNyI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINix2KfbjNin2YbZh9mUINmE2YjYrduMINio2YTZiNiq2YjYqyDZhdit2YTbjCDYsdinINm+24zaqdix2KjZhtiv24wg2qnYsdiv2YfYjCDYr9iz2Krar9in2YfigIzZh9in24wg2LHYp9mHINiv2YjYsSDYsdinINi02YbYp9iz2KfbjNuMINqp2LHYr9mHINmIINio2Kcg2KLZhuKAjNmH2Kcg2KzZgdiqINi02YjYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhBZG1pbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MzE2ODIxNTkzMzE1NDIxMzciPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYqtmE2YHZhiDYqNmE2YjYqtmI2Ksg2YXYrdmE24wg2LHYpyDZvtuM2qnYsdio2YbYr9uMINqp2YbYryDZiCDYr9iz2Krar9in2YfigIzZh9in24wg2LHYp9mHINiv2YjYsSDYsdinINm+24zYr9inINqp2YbYryDZiCDYqNinINii2YbigIzZh9inINis2YHYqiDYtNmI2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY5MjExNzc0NzE3NDg4ODIxMzciPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYqNmE2YjYqtmI2Ksg2YXYrdmE24wg2LHYpyDZvtuM2qnYsdio2YbYr9uMINqp2LHYr9mH2Iwg2K/Ys9iq2q/Yp9mH4oCM2YfYp9uMINix2KfZhyDYr9mI2LEg2LHYpyDYtNmG2KfYs9in24zbjCDaqdix2K/ZhyDZiCDYqNinINii2YbigIzZh9inINis2YHYqiDYtNmI2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4OTMxNjgyMTU5MzMxNTQyMTM3Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KrZhNmB2YYg2KjZhNmI2KrZiNirINmF2K3ZhNuMINix2Kcg2b7bjNqp2LHYqNmG2K/bjCDaqdmG2K8g2Ygg2K/Ys9iq2q/Yp9mH4oCM2YfYp9uMINix2KfZhyDYr9mI2LEg2LHYpyDZvtuM2K/YpyDaqdmG2K8g2Ygg2KjYpyDYotmG4oCM2YfYpyDYrNmB2Kog2LTZiNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmx1ZXRvb3RoUHJpdiIgbXNnaWQ9IjQwMDk0OTQyNDYwMDk1MTM4MjgiPiLYp9is2KfYstmHINin2LHYqtio2KfYtyDYqNinINio2YTZiNiq2YjYqyDYp9iyINi32LHbjNmCINio2LHZhtin2YXZhyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aFByaXYiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgwNDU3MzUxOTM0MTc0Njg4NTciPiLYqNmHINio2LHZhtin2YXZhyDYp9mF2qnYp9mGINmF24zigIzYr9mH2K8g2KjYr9mI2YYg2KrYudin2YXZhCDaqdin2LHYqNixINio2Kcg2K/Ys9iq2q/Yp9mH4oCM2YfYp9uMINix2KfZhyDYr9mI2LEg2YXYsdiq2KjYtyDYtNmI2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoUHJpdiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgwNDU3MzUxOTM0MTc0Njg4NTciPiLYqNmHINio2LHZhtin2YXZhyDYp9mF2qnYp9mGINmF24zigIzYr9mH2K8g2KjYr9mI2YYg2KrYudin2YXZhCDaqdin2LHYqNixINio2Kcg2K/Ys9iq2q/Yp9mH4oCM2YfYp9uMINix2KfZhyDYr9mI2LEg2YXYsdiq2KjYtyDYtNmI2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NXaW1heFN0YXRlIiBtc2dpZD0iNDE5NTkwNzAxMDYxMDIwNTcwMyI+Itin2KrYtdin2YQg2Ygg2YLYt9i5INin2KrYtdin2YQg2KfYsiBXaU1BWCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2ltYXhTdGF0ZSIgbXNnaWQ9IjQxOTU5MDcwMTA2MTAyMDU3MDMiPiLigI/Yp9iq2LXYp9mEINmIINmC2LfYuSDYp9iq2LXYp9mEINin2LIgV2lNQVgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaW1heFN0YXRlIiBtc2dpZD0iNjM2MDEwMjg3NzI2MTk3ODg4NyI+Itio2Ycg2KjYsdmG2KfZhdmHINin2YXaqdin2YYg2YXbjOKAjNiv2YfYryDZgdi52KfZhCDYqNmI2K/ZhiDZiNin24zZhdqp2LMg2Ygg2KfYt9mE2KfYudin2Kog2YXYsdio2YjYtyDYqNmHINmH2LEg24zaqSDYp9iyINi02KjaqdmH4oCM2YfYp9uMINmI2KfbjNmF2qnYsyDZhdiq2LXZhCDYsdinINmF2LTYrti1INqp2YbYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVdpbWF4U3RhdGUiIG1zZ2lkPSIyNDA1MDQyMjY3MTMxNDk2NTc5Ij4i2KrYutuM24zYsSDZiNi22LnbjNiqIFdpTUFYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaW1heFN0YXRlIiBtc2dpZD0iMjQwNTA0MjI2NzEzMTQ5NjU3OSI+IuKAj9iq2LrbjNuM2LEg2YjYtti524zYqiBXaU1BWCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMxNTY0NTY1MDQwODQyMDE4MDUiPiLYqNmHINio2LHZhtin2YXZhyDYp9mF2qnYp9mGINmF24zigIzYr9mH2K8g2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LHYpyDYqNmHINi02KjaqdmH4oCM2YfYp9uMINmI2KfbjNmF2qnYsyDZhdiq2LXZhCDaqdix2K/ZhyDbjNinINin2KrYtdin2YQg2KLZhiDYsdinINin2LIg2KfbjNmGINi02KjaqdmH4oCM2YfYpyDZgti32Lkg2qnZhtivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2OTcwMjUwNDMwMDQ5MjM3OTgiPiLYqNmHINio2LHZhtin2YXZhyDYp9mF2qnYp9mGINmF24zigI7Yr9mH2K8g2KrYpyDYqtmE2YHZhiDYsdinINio2Ycg2LTYqNqp2YfigIzZh9in24wg2YjYp9uM2YXaqdizINmF2KrYtdmEINqp2LHYr9mHINuM2Kcg2KfYqti12KfZhCDYotmG2LHYpyDYp9iyINin24zZhiDYtNio2qnZh+KAjNmH2Kcg2YLYt9i5INqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaW1heFN0YXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjk3MDI1MDQzMDA0OTIzNzk4Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfZhdqp2KfZhiDZhduM4oCO2K/Zh9ivINiq2Kcg2KrZhNmB2YYg2LHYpyDYqNmHINi02KjaqdmH4oCM2YfYp9uMINmI2KfbjNmF2qnYsyDZhdiq2LXZhCDaqdix2K/ZhyDbjNinINin2KrYtdin2YQg2KLZhtix2Kcg2KfYsiDYp9uM2YYg2LTYqNqp2YfigIzZh9inINmC2LfYuSDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGgiIG1zZ2lkPSI2MTI3NzY5MzM2MzM5Mjc2ODI4Ij4i2KzZgdiqINqp2LHYr9mGINio2Kcg2K/Ys9iq2q/Yp9mH4oCM2YfYp9uMINio2YTZiNiq2YjYqyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQ4MDcyMjE4MTg1MjQzODYyOCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINm+24zaqdix2KjZhtiv24wg2KjZhNmI2KrZiNirINiv2LEg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LHYpyDZhdi02KfZh9iv2Ycg2qnZhtivINmIINin2KrYtdin2YQg2KjYpyDYr9iz2Krar9in2YfigIzZh9in24wg2YXYsdiq2KjYtyDYsdinINio2LHZgtix2KfYsSDaqdix2K/ZhyDZiCDYqNm+2LDbjNix2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzIwNzEwNjMyNDQ1MjMxMjczOSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINm+24zaqdix2KjZhtiv24wg2KjZhNmI2KrZiNirINiv2LEg2KrZhNmB2YYg2LHYpyDZhdi02KfZh9iv2Ycg2qnZhtiv2Iwg2Ygg2KfYqti12KfZhNin2Kog2K/Ys9iq2q/Yp9mH4oCM2YfYp9uMINmF2LHYqtio2Lcg2LHYpyDYqNix2YLYsdin2LEg2qnYsdiv2Ycg2Ygg2KjZvtiw24zYsdivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQ4MDcyMjE4MTg1MjQzODYyOCI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINm+24zaqdix2KjZhtiv24wg2KjZhNmI2KrZiNirINiv2LEg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LHYpyDZhdi02KfZh9iv2Ycg2qnZhtivINmIINin2KrYtdin2YQg2KjYpyDYr9iz2Krar9in2YfigIzZh9in24wg2YXYsdiq2KjYtyDYsdinINio2LHZgtix2KfYsSDaqdix2K/ZhyDZiCDYqNm+2LDbjNix2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzIwNzEwNjMyNDQ1MjMxMjczOSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINm+24zaqdix2KjZhtiv24wg2KjZhNmI2KrZiNirINiv2LEg2KrZhNmB2YYg2LHYpyDZhdi02KfZh9iv2Ycg2qnZhtiv2Iwg2Ygg2KfYqti12KfZhNin2Kog2K/Ys9iq2q/Yp9mH4oCM2YfYp9uMINmF2LHYqtio2Lcg2LHYpyDYqNix2YLYsdin2LEg2qnYsdiv2Ycg2Ygg2KjZvtiw24zYsdivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbmZjIiBtc2dpZD0iNDQyMzM1MTI3NDc1Nzg3Njk1MyI+Itqp2YbYqtix2YQg2KfYsdiq2KjYp9i3INix2KfZhyDZhtiy2K/bjNqpIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbmZjIiBtc2dpZD0iNzEyMDYxMTgxOTQwMTc4OTkwNyI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINio2Kcg2Krar9mH2KfbjCDYp9ix2KrYqNin2Lcg2YXbjNiv2KfZhiDZhtiy2K/bjNqpIChORkMp2Iwg2qnYp9ix2KrZh9inINmIINmB2KfbjNmEINiu2YjYp9mGINin2LHYqtio2KfYtyDYqNix2YLYsdin2LEg2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX25mYyIgbXNnaWQ9IjcxMjA2MTE4MTk0MDE3ODk5MDciPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYqNinINiq2q/Zh9in24wg2KfYsdiq2KjYp9i3INmF24zYr9in2YYg2YbYstiv24zaqSAoTkZDKdiMINqp2KfYsdiq2YfYpyDZiCDZgdin24zZhCDYrtmI2KfZhiDYp9ix2KrYqNin2Lcg2KjYsdmC2LHYp9ixINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Rpc2FibGVLZXlndWFyZCIgbXNnaWQ9IjM1OTg0OTYzMDE0ODY0MzkyNTgiPiLYutuM2LHZgdi52KfZhCDaqdix2K/ZhiDZgtmB2YQg2LXZgdit2Ycg2LTZhdinIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlzYWJsZUtleWd1YXJkIiBtc2dpZD0iNjAzNDIwMzA2NTA3NzEyMjk5MiI+Itio2Ycg2KjYsdmG2KfZhdmHINin2YXaqdin2YYg2YXbjOKAjNiv2YfYryDZgtmB2YQg2qnZhNuM2K8g2Ygg2YfYsSDar9mI2YbZhyDYp9mF2YbbjNiqINqv2LDYsdmI2KfamNmHINmF2LHYqtio2Lcg2LHYpyDYutuM2LHZgdi52KfZhCDaqdmG2K8uINio2YfigIzYudmG2YjYp9mGINmF2KvYp9mEINiq2YTZgdmGINmH2Ybar9in2YUg2K/YsduM2KfZgdiqINuM2qkg2KrZhdin2LMg2KrZhNmB2YbbjCDZiNix2YjYr9uMINmC2YHZhCDaqdmE24zYryDYsdinINi624zYsdmB2LnYp9mEINmF24zigIzaqdmG2K8g2Ygg2KjYudivINin2LIg2b7Yp9uM2KfZhiDYqtmF2KfYs9iMINmC2YHZhCDaqdmE24zYryDYsdinINiv2YjYqNin2LHZhyDZgdi52KfZhCDZhduM4oCM2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFN5bmNTZXR0aW5ncyIgbXNnaWQ9IjYyMDE4MTAwMDgyMzA1MDMwNTIiPiLYrtmI2KfZhtiv2YYg2KrZhti424zZhdin2Kog2YfZhdqv2KfZheKAjNiz2KfYstuMIjwvc3RyaW5nPgpAQCAtNjMxLDM5ICs2MzgsMzkgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFN5bmNTdGF0cyIgbXNnaWQ9IjczOTY1Nzc0NTEzNjAyMDI0NDgiPiLYrtmI2KfZhtiv2YYg2KfYt9mE2KfYudin2Kog2KLZhdin2LHbjCDZh9mF2q/Yp9mF4oCM2LPYp9iy24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1N0YXRzIiBtc2dpZD0iMTUxMDE0Mzc2MTc1NzYwNjE1NiI+Itio2Ycg24zaqSDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINmI2LbYuduM2Kog2YfZhdqv2KfZheKAjNiz2KfYstuMINuM2qkg2K3Ys9in2Kgg2LHYpyDYqNiu2YjYp9mG2K/YjCDYp9iyINis2YXZhNmHINiz2KfYqNmC2Ycg2LHZiNuM2K/Yp9iv2YfYp9uMINmH2YXar9in2YXigIzYs9in2LLbjCDZiCDZhduM2LLYp9mGINiv2KfYr9mH4oCM2YfYp9uMINmH2YXar9in2YXigIzYs9in2LLbjCDYtNiv2YcuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdWJzY3JpYmVkRmVlZHNSZWFkIiBtc2dpZD0iNDc1NjYwOTYzNzA1MzM1MzMxOCI+Itiu2YjYp9mG2K/ZhiDZgduM2K/Zh9in24wg2YXYtNiq2LHaqSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N1YnNjcmliZWRGZWVkc1JlYWQiIG1zZ2lkPSI1NTU3MDU4OTA3OTA2MTQ0NTA1Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KzYstim24zYp9iqINmF2LHYqNmI2Lcg2KjZhyDZgduM2K/Zh9in24wg2YfZhdqv2KfZhSDYtNiv2Ycg2qnZhtmI2YbbjCDYsdinINiv2LHbjNin2YHYqiDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3Vic2NyaWJlZEZlZWRzUmVhZCIgbXNnaWQ9IjU1NTcwNTg5MDc5MDYxNDQ1MDUiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYrNiy2KbbjNin2Kog2YXYsdio2YjYtyDYqNmHINmB24zYr9mH2KfbjCDZh9mF2q/Yp9mFINi02K/ZhyDaqdmG2YjZhtuMINix2Kcg2K/YsduM2KfZgdiqINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N1YnNjcmliZWRGZWVkc1dyaXRlIiBtc2dpZD0iOTAxNTI0NjMyNTQwODIwOTI5NiI+ItmG2YjYtNiq2YYg2YHbjNiv2YfYp9uMINmF2LTYqtix2qkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdWJzY3JpYmVkRmVlZHNXcml0ZSIgbXNnaWQ9IjY5Mjg5MzAxODg4MjYwODk0MTMiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZgduM2K/Zh9in24wg2YfZhdqv2KfZhSDYtNiv2Ycg2qnZhtmI2YbbjCDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiDYqNix2YbYp9mF2YfigI7Zh9in24wg2YXYrtix2Kgg2YXbjOKAjtiq2YjYp9mG2YbYryDZgduM2K/Zh9in24wg2YfZhdqv2KfZhSDYtNiv2Ycg2LHYpyDYqti624zbjNixINiv2YfZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N1YnNjcmliZWRGZWVkc1dyaXRlIiBtc2dpZD0iNjkyODkzMDE4ODgyNjA4OTQxMyI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmB24zYr9mH2KfbjCDZh9mF2q/Yp9mFINi02K/ZhyDaqdmG2YjZhtuMINix2Kcg2KrYutuM24zYsSDYr9mH2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINmB24zYr9mH2KfbjCDZh9mF2q/Yp9mFINi02K/ZhyDYsdinINiq2LrbjNuM2LEg2K/Zh9mG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjQxMDcxMDE1MjU3NDYwMzU3MTgiPiLYrtmI2KfZhtiv2YYg2YjYp9qY2YfigIzZh9in24zbjCDaqdmHINio2Ycg2YHYsdmH2Ybar+KAjCDZhNi62Kog2KfYttin2YHZhyDaqdix2K/bjNivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZERpY3Rpb25hcnkiIG1zZ2lkPSI2NTk2MTQ2MDAzMzg5MDQyNDMiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2YfZhdmHINqp2YTZhdmH2Iwg2YbYp9mFINmIINi52KjYp9ix2KfYqtuMINix2Kcg2qnZhyDaqdin2LHYqNixINiv2LEg2YHYsdmH2YbaryDZhNi62Kog2K7ZiNivINiw2K7bjNix2Ycg2qnYsdiv2Ycg2KfYs9iqINio2K7ZiNin2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjY1OTYxNDYwMDMzODkwNDI0MyI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDZh9mF2Ycg2qnZhNmF2YfYjCDZhtin2YUg2Ygg2LnYqNin2LHYp9iq24wg2LHYpyDaqdmHINqp2KfYsdio2LEg2K/YsSDZgdix2YfZhtqvINmE2LrYqiDYrtmI2K8g2LDYrtuM2LHZhyDaqdix2K/ZhyDYp9iz2Kog2KjYrtmI2KfZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iMjE4MzExMDQwMjMxNDQ0MTEwNiI+Itin2YHYstmI2K/ZhiDaqdmE2YXYp9iqINio2Ycg2YHYsdmH2YbaryDZhNi62Kog2KrYudix24zZgeKAjCDYtNiv2Ycg2KrZiNiz2Lcg2qnYp9ix2KjYsSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjgxODUzODU3MTYyNTUwNjUyOTEiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDaqdmE2YXYp9iqINis2K/bjNivINix2Kcg2K/YsSDZgdmH2LHYs9iqINqp2KfYsdio2LEg2KjZhtmI24zYs9ivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNjcyNzUwOTUxNTk0MDU0NjgiPiLYrtmI2KfZhtiv2YYg2YXYrdiq2YjbjNin2Kog2K3Yp9mB2LjZh9mUIFVTQiDYtNmF2KciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg4MTU2NDYyOTM0OTc3OTQwIj4i2K7ZiNin2YbYr9mGINmF2K3YqtmI24zYp9iqINqp2KfYsdiqIFNEINi02YXYpyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzQ0Njk4ODcxMjU5ODM4NjA3OSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDZhdit2KrZiNin2YfYp9uMINmB2LbYp9uMINiw2K7bjNix2YcgVVNCINix2Kcg2KjYrtmI2KfZhtivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNjA3MzYyNDczNjU0OTc1NDExIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINmF2K3YqtmI2KfZh9in24wg2qnYp9ix2KogU0Qg2LTZhdinINix2Kcg2KjYrtmI2KfZhtivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iODQ4NTk3OTA2MjI1NDY2Njc0OCI+Itin2LXZhNin2K0g24zYpyDYrdiw2YEg2YXYrdiq2YjbjNin2Kog2K3Yp9mB2LjZh9mUIFVTQiDYtNmF2KciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODgwNTY5MzYzMDA1MDQ1ODc2MyI+ItmF2K3YqtmI2KfbjCDaqdin2LHYqiBTRCDYtNmF2Kcg2LHYpyDYp9i12YTYp9itINqp2LHYr9mHINuM2Kcg2KrYutuM24zYsSDYr9mH2K8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRXcml0ZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MTc1NDA2Mjk5NDQ1NzEwODg4Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2K/YsSDYrdin2YHYuNmH2ZQgVVNCINio2YbZiNuM2LPYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQzMzc0MTc3OTA5MzY2MzIwOTAiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYr9ixINqp2KfYsdiqIFNEINio2YbZiNuM2LPYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSI4MTg1Mzg1NzE2MjU1MDY1MjkxIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2qnZhNmF2KfYqiDYrNiv24zYryDYsdinINiv2LEg2YHZh9ix2LPYqiDaqdin2LHYqNixINio2YbZiNuM2LPYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFJlYWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzY3Mjc1MDk1MTU5NDA1NDY4Ij4i4oCP2K7ZiNin2YbYr9mGINmF2K3YqtmI24zYp9iqINit2KfZgdi42YfZlCBVU0Ig2LTZhdinIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjE4ODE1NjQ2MjkzNDk3Nzk0MCI+IuKAj9iu2YjYp9mG2K/ZhiDZhdit2KrZiNuM2KfYqiDaqdin2LHYqiBTRCDYtNmF2KciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM0NDY5ODg3MTI1OTgzODYwNzkiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2YXYrdiq2YjYp9mH2KfbjCDZgdi22KfbjCDYsNiu24zYsdmHIFVTQiDYsdinINio2K7ZiNin2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjYwNzM2MjQ3MzY1NDk3NTQxMSI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDZhdit2KrZiNin2YfYp9uMINqp2KfYsdiqIFNEINi02YXYpyDYsdinINio2K7ZiNin2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijg0ODU5NzkwNjIyNTQ2NjY3NDgiPiLigI/Yp9i12YTYp9itINuM2Kcg2K3YsNmBINmF2K3YqtmI24zYp9iqINit2KfZgdi42YfZlCBVU0Ig2LTZhdinIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg4MDU2OTM2MzAwNTA0NTg3NjMiPiLigI/Zhdit2KrZiNin24wg2qnYp9ix2KogU0Qg2LTZhdinINix2Kcg2KfYtdmE2KfYrSDaqdix2K/ZhyDbjNinINiq2LrbjNuM2LEg2K/Zh9ivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE3NTQwNjI5OTQ0NTcxMDg4OCI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINiv2LEg2K3Yp9mB2LjZh9mUIFVTQiDYqNmG2YjbjNiz2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MzM3NDE3NzkwOTM2NjMyMDkwIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2K/YsSDaqdin2LHYqiBTRCDYqNmG2YjbjNiz2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTk4MzkxOTk3MDY4NzkwMTUiPiLYqti624zbjNixL9it2LDZgSDZhdit2KrZiNin2YfYp9uMINit2KfZgdi42Ycg2LHYs9in2YbZhyDYr9in2K7ZhNuMIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWVkaWFTdG9yYWdlV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MTg5MTYwNTk3Njk4NTI5MTg1Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2YXYrdiq2YjbjNin2Kog2K3Yp9mB2LjZhyDYsdiz2KfZhtmHINiv2KfYrtmE24wg2LHYpyDYqti624zbjNixINiv2YfYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgxODkxNjA1OTc2OTg1MjkxODUiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZhdit2KrZiNuM2KfYqiDYrdin2YHYuNmHINix2LPYp9mG2Ycg2K/Yp9iu2YTbjCDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlRG9jcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3NzgzMTg1OTg0NDg4NDk4MjkiPiLZhdiv24zYsduM2Kog2YHYttin24wg2LDYrtuM2LHZh+KAjNiz2KfYstuMINin2LPZhtin2K8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VEb2NzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODcwNDMyMzE3NjkxNDEyMTQ4NCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDZgdi22KfbjCDYsNiu24zYsdmH4oCM2LPYp9iy24wg2KfYs9mG2KfYryDYsdinINmF2K/bjNix24zYqiDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRBY2Nlc3NBbGwiIG1zZ2lkPSI4MTUwNjEzODIzOTAwNDYwNTc2Ij4i2K/Ys9iq2LHYs9uMINio2Ycg2K/Ys9iq2q/Yp9mHINiw2K7bjNix2Ycg2K7Yp9ix2KzbjCDYqtmF2KfZhSDaqdin2LHYqNix2KfZhiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZEFjY2Vzc0FsbCIgbXNnaWQ9IjMyMTUyMDgzNTc0MTU4OTEzMjAiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2KjZhyDYr9iz2Krar9in2Ycg2LDYrtuM2LHZhyDYrtin2LHYrNuMINio2LHYp9uMINmH2YXZhyDaqdin2LHYqNix2KfZhiDYr9iz2KrYsdiz24wg2K/Yp9i02KrZhyDYqNin2LTYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhY2hlX2ZpbGVzeXN0ZW0iIG1zZ2lkPSI1NjU2NDg3MjY0ODE5NjY5ODI0Ij4i2K/Ys9iq2LHYs9uMINio2Ycg2LPbjNiz2KrZhSDZgdin24zZhCDYrdin2YHYuNmH2ZQg2b7ZhtmH2KfZhiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhY2hlX2ZpbGVzeXN0ZW0iIG1zZ2lkPSI1NTc4OTY3NjQyMjY1NTUwOTU1Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2LPbjNiz2KrZhSDZgdin24zZhCDYrdin2YHYuNmH2ZQg2b7ZhtmH2KfZhiDYsdinINio2K7ZiNin2YbYryDZiCDYqNmG2YjbjNiz2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU1Nzg5Njc2NDIyNjU1NTA5NTUiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYs9uM2LPYqtmFINmB2KfbjNmEINit2KfZgdi42YfZlCDZvtmG2YfYp9mGINix2Kcg2KjYrtmI2KfZhtivINmIINio2YbZiNuM2LPYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VzZV9zaXAiIG1zZ2lkPSI1OTg2OTUyMzYyNzk1ODcwNTAyIj4i2LnZhNin2YXYquKAjNqv2LDYp9ix24wv2K/YsduM2KfZgdiqINiq2YXYp9iz4oCM2YfYp9uMINin24zZhtiq2LHZhtiq24wiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191c2Vfc2lwIiBtc2dpZD0iNDcxNzYzMjAwMDA2MjY3NDI5NCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINin2LIg2K7Yr9mF2KfYqiBTSVAg2KfYs9iq2YHYp9iv2Ycg2qnZhtivINmIINiq2YXYp9iz4oCM2YfYp9uMINin24zZhtiq2LHZhtiq24wg2Kjar9uM2LHYry/Yr9ix24zYp9mB2Kog2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZV9zaXAiIG1zZ2lkPSI0NzE3NjMyMDAwMDYyNjc0Mjk0Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KfYsiDYrtiv2YXYp9iqIFNJUCDYp9iz2KrZgdin2K/ZhyDaqdmG2K8g2Ygg2KrZhdin2LPigIzZh9in24wg2KfbjNmG2KrYsdmG2KrbjCDYqNqv24zYsdivL9iv2LHbjNin2YHYqiDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kX2NhbGxfc2VydmljZSIgbXNnaWQ9IjY3MjQwMDk3MjY2NzEyNDY1NTEiPiLYqti52KfZhdmEINio2Kcg2LXZgdit2YfigIzZhtmF2KfbjNi0INmH2Ybar9in2YUg2KrZhdin2LMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kX2NhbGxfc2VydmljZSIgbXNnaWQ9Ijg3MzI1NDc2NjI0NDI1NzI0MzUiPiLYqNmHINio2LHZhtin2YXZhyDYp9mF2qnYp9mGINmF24zigIzYr9mH2K8g2qnZhtiq2LHZhCDaqdmG2K8g2qnZhyDaqdin2LHYqNixINqG2Ycg2LLZhdin2YbbjCDZiCDahtqv2YjZhtmHINi12YHYrdmH4oCM2YbZhdin24zYtCDZh9mG2q/Yp9mFINiq2YXYp9izINix2Kcg2YXYtNin2YfYr9mHINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWROZXR3b3JrVXNhZ2VIaXN0b3J5IiBtc2dpZD0iNzg2MjU5MzI4MzYxMTQ5MzIzMiI+Itiu2YjYp9mG2K/ZhiDYs9in2KjZgtmHINin2LPYqtmB2KfYr9mHINin2LIg2LTYqNqp2YciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTmV0d29ya1VzYWdlSGlzdG9yeSIgbXNnaWQ9Ijc2ODkwNjA3NDk4MTkxMjY0NzIiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDaqdin2LHYqNix2K8g2LTYqNqp2Ycg2LHYpyDYr9ixINi32YjZhCDYstmF2KfZhiDYqNix2KfbjCDYqNix2YbYp9mF2YfigI7Zh9inINmIINi02KjaqdmH4oCO2YfYp9uMINiu2KfYtSDYqNiu2YjYp9mG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZE5ldHdvcmtVc2FnZUhpc3RvcnkiIG1zZ2lkPSI3Njg5MDYwNzQ5ODE5MTI2NDcyIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2qnYp9ix2KjYsdivINi02KjaqdmHINix2Kcg2K/YsSDYt9mI2YQg2LLZhdin2YYg2KjYsdin24wg2KjYsdmG2KfZhdmH4oCO2YfYpyDZiCDYtNio2qnZh+KAjtmH2KfbjCDYrtin2LUg2KjYrtmI2KfZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlTmV0d29ya1BvbGljeSIgbXNnaWQ9IjI1NjIwNTM1OTIzMzk4NTk5OTAiPiLZhdiv24zYsduM2Kog2K7YtyDZhdi024wg2LTYqNqp2YciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VOZXR3b3JrUG9saWN5IiBtc2dpZD0iNzUzNzU4Njc3MTU1OTM3MDY2OCI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINiu2Lcg2YXYtNuM4oCO2YfYp9uMINi02KjaqdmHINix2Kcg2YXYr9uM2LHbjNiqINqp2YbYryDZiCDZgtmI2KfZhtuM2YYg2K7Yp9i1INio2LHZhtin2YXZhyDYsdinINiq2LnbjNuM2YYg2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZU5ldHdvcmtQb2xpY3kiIG1zZ2lkPSI3NTM3NTg2NzcxNTU5MzcwNjY4Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2K7YtyDZhdi024zigI7Zh9in24wg2LTYqNqp2Ycg2LHYpyDZhdiv24zYsduM2Kog2qnZhtivINmIINmC2YjYp9mG24zZhiDYrtin2LUg2KjYsdmG2KfZhdmHINix2Kcg2KrYuduM24zZhiDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlOZXR3b3JrQWNjb3VudGluZyIgbXNnaWQ9IjUwODgyMTczMDkwODg3Mjk2NTAiPiLYp9i12YTYp9itINmF2K3Yp9iz2KjZhyDYp9iz2KrZgdin2K/ZhyDYp9iyINi02KjaqdmHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5TmV0d29ya0FjY291bnRpbmciIG1zZ2lkPSI1NDQzNDEyODY2NzQ2MTk4MTIzIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2YbYrdmI2Ycg2YXYrdin2LPYqNmHINqp2KfYsdio2LHYryDYtNio2qnZhyDYr9ixINio2LHZhtin2YXZhyDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiDYqNix2KfbjCDYp9iz2KrZgdin2K/ZhyDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YbbjNiz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5TmV0d29ya0FjY291bnRpbmciIG1zZ2lkPSI1NDQzNDEyODY2NzQ2MTk4MTIzIj4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2YbYrdmI2Ycg2YXYrdin2LPYqNmHINqp2KfYsdio2LHYryDYtNio2qnZhyDYr9ixINio2LHZhtin2YXZhyDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiDYqNix2KfbjCDYp9iz2KrZgdin2K/ZhyDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YbbjNiz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYXJrTmV0d29ya1NvY2tldCIgbXNnaWQ9IjM2NTg1MjcyMTQ5MTQ5NTk3NDkiPiLYqti624zbjNixINi52YTYp9im2YUg2LPZiNqp2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYXJrTmV0d29ya1NvY2tldCIgbXNnaWQ9Ijc2NTU1Njg0MzM2OTYzNTY1NzgiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2KjYsdin24wg2YXYs9uM2LHbjNin2KjbjCDYudmE2KfYptmFINiz2YjaqdiqINix2Kcg2KrYutuM24zYsSDYr9mH2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNzY3MzQxNjQ4Nzg3MzQzMjI2OCI+Itin2LnZhNin2YbigIzZh9in24wg2K/Ys9iq2LHYs9uMIjwvc3RyaW5nPgpAQCAtNjc1LDEwICs2ODIsMTAgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI4MjA2MDc3NDQ3ODM4OTA5NTE2Ij4i2q/ZiNi0INiv2KfYr9mGINio2LHYp9uMINio2LHYsdiz24wg2LTYsdin24zYtyDYtNio2qnZhyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05ldHdvcmtDb25kaXRpb25zIiBtc2dpZD0iNjg5OTEwMjA3NTgyNTI3MjIxMSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2YXaqdin2YYg2YXbjOKAjNiv2YfYryDYqNix2KfbjCDYqNix2LHYs9uMINi02LHYp9uM2Lcg2LTYqNqp2Ycg2q/ZiNi0INiv2YfYry4g2KfbjNmGINin2YXaqdin2YYg2YfYsdqv2LIg2YbYqNin24zYryDYqNix2KfbjCDYqNix2YbYp9mF2YfigIzZh9in24wg2YXYudmF2YjZhNuMINmF2YjYsdivINmG24zYp9iyINio2KfYtNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9saW1pdFBhc3N3b3JkIiBtc2dpZD0iNDQ5NzQyMDcyODg1NzU4NTc5MSI+Itiq2YbYuNuM2YUg2YLZiNin2YbbjNmGINix2YXYsiDZiNix2YjYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfbGltaXRQYXNzd29yZCIgbXNnaWQ9IjMyNTIxMTQyMDM5MTk1MTAzOTQiPiLYt9mI2YQg2Ygg2YbZiNuM2LPZh+KAjtmH2KfbjCDZhdis2KfYsiDYr9ixINqv2LDYsdmI2KfamNmH4oCM2YfYp9uMINio2KfYstqp2LHYr9mGINmC2YHZhCDYtdmB2K3ZhyDYsdinINqp2YbYqtix2YQg2qnZhtuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19saW1pdFBhc3N3b3JkIiBtc2dpZD0iMzI1MjExNDIwMzkxOTUxMDM5NCI+IuKAj9i32YjZhCDZiCDZhtmI24zYs9mH4oCO2YfYp9uMINmF2KzYp9iyINiv2LEg2q/YsNix2YjYp9qY2YfigIzZh9in24wg2KjYp9iy2qnYsdiv2YYg2YLZgdmEINi12YHYrdmHINix2Kcg2qnZhtiq2LHZhCDaqdmG24zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfd2F0Y2hMb2dpbiIgbXNnaWQ9IjkxNDEzMDY0Njk0MjE5OTUwMyI+ItmG2YXYp9uM2LQg2KrZhNin2LTigIzZh9in24wg2YLZgdmEINqv2LTYp9uM24wg2LXZgdit2YciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dhdGNoTG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMyMTU3MjkyOTQyMTUwNzAwNzIiPiLYqti52K/Yp9ivINqv2LDYsdmI2KfamNmH4oCO2YfYp9uMINin2LTYqtio2KfZhyDYqtin24zZviDYtNiv2Ycg2LHYpyDZh9mG2q/Yp9mFINio2KfYstqp2LHYr9mGINmC2YHZhCDYtdmB2K3ZhyDaqdmG2KrYsdmEINmF24zigIzaqdmG2K/YjCDZiCDbjNinINin2q/YsSDYr9mB2LnYp9iqINiy24zYp9iv24wg2q/YsNix2YjYp9qY2Ycg2KfYtNiq2KjYp9mHINiq2KfbjNm+INi02YjYryDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYsdinINmC2YHZhCDZhduM4oCO2qnZhtivINmIINmH2YXZhyDYr9in2K/Zh+KAjtmH2KfbjCDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYsdinINm+2KfaqSDZhduM4oCO2qnZhtivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2F0Y2hMb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MTIzMjMwOTE4NDY3NjEwNzMiPiLYqti52K/Yp9ivINqv2LDYsdmI2KfamNmH4oCO2YfYp9uMINmG2KfYr9ix2LPYqiDYqtin24zZviDYtNiv2Ycg2LHYpyDaqdmG2KrYsdmEINmF24zigI7aqdmG2K8uINmH2Ybar9in2YUg2KjYp9iy2qnYsdiv2YYg2YLZgdmEINi12YHYrdmHINin2q/YsSDYr9mB2LnYp9iqINiy24zYp9iv24wg2q/YsNix2YjYp9qY2Ycg2YbYp9iv2LHYs9iqINiq2KfbjNm+INqp2LHYr9mH4oCO2KfbjNiv2Iwg2KrZhNmB2YYg2LHYpyDZgtmB2YQg2qnZhtuM2K8g24zYpyDZh9mF2Ycg2K/Yp9iv2YfigI7Zh9in24wg2KrZhNmB2YYg2LHYpyDZvtin2qkg2qnZhtuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193YXRjaExvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjE1NzI5Mjk0MjE1MDcwMDcyIj4i4oCP2KrYudiv2KfYryDar9iw2LHZiNin2pjZh+KAjtmH2KfbjCDYp9i02KrYqNin2Ycg2KrYp9uM2b4g2LTYr9mHINix2Kcg2YfZhtqv2KfZhSDYqNin2LLaqdix2K/ZhiDZgtmB2YQg2LXZgdit2Ycg2qnZhtiq2LHZhCDZhduM4oCM2qnZhtiv2Iwg2Ygg24zYpyDYp9qv2LEg2K/Zgdi52KfYqiDYstuM2KfYr9uMINqv2LDYsdmI2KfamNmHINin2LTYqtio2KfZhyDYqtin24zZviDYtNmI2K8g2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LHYpyDZgtmB2YQg2YXbjOKAjtqp2YbYryDZiCDZh9mF2Ycg2K/Yp9iv2YfigI7Zh9in24wg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2LHYpyDZvtin2qkg2YXbjOKAjtqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dhdGNoTG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NzEyMzIzMDkxODQ2NzYxMDczIj4i4oCP2KrYudiv2KfYryDar9iw2LHZiNin2pjZh+KAjtmH2KfbjCDZhtin2K/Ysdiz2Kog2KrYp9uM2b4g2LTYr9mHINix2Kcg2qnZhtiq2LHZhCDZhduM4oCO2qnZhtivLiDZh9mG2q/Yp9mFINio2KfYstqp2LHYr9mGINmC2YHZhCDYtdmB2K3ZhyDYp9qv2LEg2K/Zgdi52KfYqiDYstuM2KfYr9uMINqv2LDYsdmI2KfamNmHINmG2KfYr9ix2LPYqiDYqtin24zZviDaqdix2K/Zh+KAjtin24zYr9iMINiq2YTZgdmGINix2Kcg2YLZgdmEINqp2YbbjNivINuM2Kcg2YfZhdmHINiv2KfYr9mH4oCO2YfYp9uMINiq2YTZgdmGINix2Kcg2b7Yp9qpINqp2YbbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9yZXNldFBhc3N3b3JkIiBtc2dpZD0iMjYyMDA3NzE5MTI0MjY4ODk1NSI+Itiq2LrbjNuM2LEg2LHZhdiyINmI2LHZiNivINmC2YHZhCDar9i02KfbjNuMINi12YHYrdmHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19yZXNldFBhc3N3b3JkIiBtc2dpZD0iNjA1OTYzOTYyMzAxOTA0NDU4Ij4i2q/YsNix2YjYp9qY2Ycg2KjYp9iy2q/YtNin24zbjCDZgtmB2YQg2LXZgdit2Ycg2LHYpyDYqti624zbjNixINiv2YfbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9mb3JjZUxvY2siIG1zZ2lkPSIyMjc0MDg1Mzg0NzA0MjQ4NDMxIj4i2YLZgdmEINqp2LHYr9mGINi12YHYrdmHIjwvc3RyaW5nPgpAQCAtNjkzLDcgKzcwMCw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9Ijg5MDEzMjYxOTk5MDkxMzI5MTUiPiLYqtmG2LjbjNmFINix2YXYstqv2LDYp9ix24wg2K3Yp9mB2LjZhyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9IjI2Mzc3MzIxMTUzMjUzMTY5OTIiPiLYqNin24zYryDYp9i32YTYp9i52KfYqiDYsNiu24zYsdmHINi02K/ZhyDYqNix2YbYp9mF2Ycg2LHZhdiy2q/YsNin2LHbjCDYtNmI2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2Rpc2FibGVDYW1lcmEiIG1zZ2lkPSI2Mzk1MzAxMDIzMTUyMjk3ODI2Ij4i2LrbjNixINmB2LnYp9mEINqp2LHYr9mGINiv2YjYsdio24zZhiDZh9inIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19kaXNhYmxlQ2FtZXJhIiBtc2dpZD0iMjMwNjM0OTA0MjgzNDc1NDU5NyI+Itin2LIg2KfYs9iq2YHYp9iv2Ycg2KfYsiDYqtmF2KfZhSDYr9mI2LHYqNuM2YbigI7Zh9in24wg2K/Ys9iq2q/Yp9mHINis2YTZiNqv24zYsduMINqp2YbbjNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUNhbWVyYSIgbXNnaWQ9IjIzMDYzNDkwNDI4MzQ3NTQ1OTciPiLigI/Yp9iyINin2LPYqtmB2KfYr9mHINin2LIg2KrZhdin2YUg2K/ZiNix2KjbjNmG4oCO2YfYp9uMINiv2LPYqtqv2KfZhyDYrNmE2Yjar9uM2LHbjCDaqdmG24zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIyNjYzMjkxMDQ1NDI2Mzg4MDIiPiLYutuM2LHZgdi52KfZhCDaqdix2K/ZhiDZiNuM2pjar9uM4oCM4oCM2YfYpyDYr9ixINmF2K3Yp9mB2Lgg2qnZhNuM2K8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2Rpc2FibGVLZXlndWFyZEZlYXR1cmVzIiBtc2dpZD0iMzQ2NzA4MjI3MjE4NjUzNDYxNCI+Itin2LIg2KfYs9iq2YHYp9iv2Ycg2KfYsiDYqNix2K7bjCDZiNuM2pjar9uM4oCM2YfYpyDYr9ixINmF2K3Yp9mB2Lgg2qnZhNuM2K8g2KzZhNmI2q/bjNix24wg2LTZiNivLiI8L3N0cmluZz4KICAgPHN0cmluZy1hcnJheSBuYW1lPSJwaG9uZVR5cGVzIj4KQEAgLTgxMCw4ICs4MTcsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVXb3JrIiBtc2dpZD0iNjkyMDcyNTczMDc5NzA5OTA0NyI+ItmF2K3ZhCDaqdin2LEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZU90aGVyIiBtc2dpZD0iNDQwODQzNjE2Mjk1MDExOTg0OSI+Itiz2KfbjNixINmF2YjYp9ix2K8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLZvtuM2YYg2qnYryDYsdinINmI2KfYsdivINqp2YbbjNivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iUFVLINmIINm+24zZhiDaqdivINis2K/bjNivINix2Kcg2KrYp9uM2b4g2qnZhtuM2K8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+Itqp2K8gUFVLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4i4oCPUFVLINmIINm+24zZhiDaqdivINis2K/bjNivINix2Kcg2KrYp9uM2b4g2qnZhtuM2K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IuKAj9qp2K8gUFVLIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLZvtuM2YYg2qnYryDYrNiv24zYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+Itio2LHYp9uMINiq2KfbjNm+INqv2LDYsdmI2KfamNmHINmE2YXYsyDaqdmG24zYryI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+Itio2LHYp9uMINio2KfYstqp2LHYr9mGINmC2YHZhNiMINqv2LDYsdmI2KfamNmHINix2Kcg2YjYp9ix2K8g2qnZhtuM2K8iPC9zdHJpbmc+CkBAIC04MjksNyArODM2LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGF0dGVybl9jb3JyZWN0IiBtc2dpZD0iOTAzOTAwODY1MDM2MjI2MTIzNyI+Iti12K3bjNitINin2LPYqiEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BhdHRlcm5fd3JvbmciIG1zZ2lkPSI0MzE3OTU1MDE0OTQ4MTA4Nzk0Ij4i2K/ZiNio2KfYsdmHINin2YXYqtit2KfZhiDaqdmG24zYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGFzc3dvcmRfd3JvbmciIG1zZ2lkPSI1NzM3ODE1MzkzMjUzMTY1MzAxIj4i2K/ZiNio2KfYsdmHINin2YXYqtit2KfZhiDaqdmG24zYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLYr9mB2LnYp9iqINiq2YTYp9i0INio2LHYp9uMIEZhY2UgVW5sb2NrINin2LIg2K3Yr9in2qnYq9ixINmF2KzYp9iyINio24zYtNiq2LEg2LTYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLigI/Yr9mB2LnYp9iqINiq2YTYp9i0INio2LHYp9uMIEZhY2UgVW5sb2NrINin2LIg2K3Yr9in2qnYq9ixINmF2KzYp9iyINio24zYtNiq2LEg2LTYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGx1Z2dlZF9pbiIgbXNnaWQ9IjgwNTc3NjI4MjgzNTU1NzIzMTUiPiLYr9ixINit2KfZhCDYtNin2LHamNiMIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2NoYXJnZWQiIG1zZ2lkPSIzMjE2MzU3NDU2ODQwNjA2MjQiPiLYtNin2LHamCDYtNivIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9iYXR0ZXJ5X3Nob3J0IiBtc2dpZD0iNDQ3NzI2NDg0OTM4Njg1MDI2NiI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CkBAIC04NDAsNyArODQ3LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTM3Mjc4NzEzODAyMzI3MjYxNSI+Itiz24zZhSDaqdin2LHYqiDYsdinINmI2KfYsdivINqp2YbbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zX2xvbmciIG1zZ2lkPSIzNTI2NTczMDk5MDE5MzE5NDcyIj4i2LPbjNmFINqp2KfYsdiqINmF2YjYrNmI2K8g2YbbjNiz2Kog24zYpyDZgtin2KjZhCDYrtmI2KfZhtiv2YYg2YbbjNiz2KouINuM2qkg2LPbjNmFINqp2KfYsdiqINmI2KfYsdivINqp2YbbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNTA5NjE0OTY2NTEzODkxNjE4NCI+Itiz24zZhSDaqdin2LHYqiDYutuM2LHZgtin2KjZhCDYp9iz2KrZgdin2K/ZhyDYp9iz2KouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjkxMDkwNDY0MzQzMzE1MTM3MSI+Itiz24zZhSDaqdin2LHYqiDYtNmF2Kcg2KjZhyDYt9mI2LEg2K/Yp9im2YUg2LrbjNixINmB2LnYp9mEINi02K/ZhyDYp9iz2KouIFxu2KjYsdin24wg2K/Yp9i02KrZhiDYs9uM2YUg2qnYp9ix2Kog2K/bjNqv2LEg2KjYpyDYp9ix2KfYptmH4oCO2K/Zh9mG2K/ZhyDYs9ix2YjbjNizINio24zigI7Ys9uM2YUg2K7ZiNivINiq2YXYp9izINio2q/bjNix24zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iOTEwOTA0NjQzNDMzMTUxMzcxIj4i4oCP2LPbjNmFINqp2KfYsdiqINi02YXYpyDYqNmHINi32YjYsSDYr9in2KbZhSDYutuM2LEg2YHYudin2YQg2LTYr9mHINin2LPYqi4gXG7YqNix2KfbjCDYr9in2LTYqtmGINiz24zZhSDaqdin2LHYqiDYr9uM2q/YsSDYqNinINin2LHYp9im2YfigI7Yr9mH2YbYr9mHINiz2LHZiNuM2LMg2KjbjOKAjtiz24zZhSDYrtmI2K8g2KrZhdin2LMg2Kjar9uM2LHbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMDE1OTQ5MDUxNTI3NDY4ODYiPiLYr9qp2YXZhyDYqtix2KfaqSDZgtio2YTbjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI2MDg5Mjk3NjUwNDgxMjkyMzYzIj4i2K/aqdmF2Ycg2KrYsdin2qkg2KjYudiv24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTkwODg3ODY3ODAxMjgwMDEiPiLYr9qp2YXZhyDZhdqp2KsiPC9zdHJpbmc+CkBAIC04NDgsMTUgKzg1NSwxNSBAQAogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1NjIzMTgzNzg3NjY5ODc2MDEiPiLYr9qp2YXZhyDYqtmI2YLZgSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImVtZXJnZW5jeV9jYWxsc19vbmx5IiBtc2dpZD0iNjczMzk3ODMwNDM4NjM2NTQwNyI+ItmB2YLYtyDYqtmF2KfYs+KAjNmH2KfbjCDYp9i22LfYsdin2LHbjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjE0MzM4OTIyNDk4NjAyODUwMSI+Iti02KjaqdmHINmC2YHZhCDYtNivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNzQ0MTc5NzMzOTk3NjIzMCI+Itiz24zZhSDaqdin2LHYqiDYqNinIFBVSyDZgtmB2YQg2LTYr9mHINin2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV9wdWtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI3NDQxNzk3MzM5OTc2MjMwIj4i4oCP2LPbjNmFINqp2KfYsdiqINio2KcgUFVLINmC2YHZhCDYtNiv2Ycg2KfYs9iqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3B1a19sb2NrZWRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iODEyNzkxNjI1NTI0NTE4MTA2MyI+ItmE2LfZgdin2Ysg2KjZhyDYsdin2YfZhtmF2KfbjCDaqdin2LHYqNixINmF2LHYp9is2LnZhyDaqdix2K/ZhyDbjNinINio2Kcg2YXYsdqp2LIg2b7YtNiq24zYqNin2YbbjCDYp9iyINmF2LTYqtix24zYp9mGINiq2YXYp9izINio2q/bjNix24zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV9sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjgwNjY2NjAxMjkyMDYwMDEwMzkiPiLYs9uM2YUg2qnYp9ix2Kog2YLZgdmEINi02K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNTk1MzIzMjE0MDUyODgxMjY0Ij4i2KjYp9iy2q/YtNin24zbjCDZgtmB2YQg2LPbjNmFINqp2KfYsdiqLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI2NDgxNjIzODMwMzQ0MTA3MjIyIj4i2KfZhNqv2YjbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhCDYrtmI2K8g2LHYpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfYtNiq2KjYp9mHINqp2LTbjNiv2YfigI7Yp9uM2K8uIFxuXG7ZhNi32YHYp9mLINm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYq9in2YbbjNmHINiv2YjYqNin2LHZhyDYp9mF2KrYrdin2YYg2qnZhtuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI2NDgxNjIzODMwMzQ0MTA3MjIyIj4i4oCP2KfZhNqv2YjbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhCDYrtmI2K8g2LHYpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfYtNiq2KjYp9mHINqp2LTbjNiv2YfigI7Yp9uM2K8uIFxuXG7ZhNi32YHYp9mLINm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYq9in2YbbjNmHINiv2YjYqNin2LHZhyDYp9mF2KrYrdin2YYg2qnZhtuM2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSIyNzI1OTczMjg2MjM5MzQ0NTU1Ij4i2q/YsNix2YjYp9qY2YfZlCDYrtmI2K8g2LHYpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfYtNiq2KjYp9mHINiq2KfbjNm+INqp2LHYr9mH4oCM2KfbjNivLiBcblxu2b7YsyDYp9iyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INir2KfZhtuM2Ycg2K/ZiNio2KfYsdmHINin2YXYqtit2KfZhiDaqdmG24zYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI2MjE2NjcyNzA2NTQ1Njk2OTU1Ij4i2b7bjNmGINix2Kc8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiAg2KjYp9ixINin2LTYqtio2KfZhyDYqtin24zZviDaqdix2K/Zh+KAjtin24zYry4gXG5cbtm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYq9in2YbbjNmHINiv2YjYqNin2LHZhyDYp9mF2KrYrdin2YYg2qnZhtuM2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iOTE5MTYxMTk4NDYyNTQ2MDgyMCI+Iti02YXYpyDYp9mE2q/ZiNuMINio2KfYstqv2LTYp9uM24wg2YLZgdmEINiu2YjYryDYsdinIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INio2KfYsSDYp9i02KrYqNin2Ycg2qnYtNuM2K/Zh+KAjtin24zYry4g2KjYudivINin2LIgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g2KrZhNin2LQg2YbYp9mF2YjZgdmC2Iwg2KfYsiDYtNmF2Kcg2K7ZiNin2LPYqtmHINmF24zigI7YtNmI2K8g2qnZhyDYqNix2KfbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhCDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDYrtmI2K8g2KjZhyBHb29nbGUg2YjYp9ix2K8g2LTZiNuM2K8uXG5cbiDZhNi32YHYp9mLINm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDYq9in2YbbjNmHINiv2YjYqNin2LHZhyDYp9mF2KrYrdin2YYg2qnZhtuM2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI1OTAyMjc1NTk3NjM3NjI3NTEiPiLYtNmF2Kcg2KfZhNqv2YjbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhCDYrtmI2K8g2LHYpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfYtNiq2KjYp9mHINqp2LTbjNiv2YfigIzYp9uM2K8uINm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYqtmE2KfYtCDZhtin2YXZiNmB2YIg2K/bjNqv2LEg2KfYsiDYtNmF2Kcg2K7ZiNin2LPYqtmHINmF24zigI7YtNmI2K8g2qnZhyDYqNix2KfbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhCDar9mI2LTbjCDYrtmI2K8g2KjZhyDYqNix2YbYp9mF2YfZlCBHb29nbGUg2YjYp9ix2K8g2LTZiNuM2K8uXG5cbiDZhNi32YHYp9mLINm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDYq9in2YbbjNmHINiv2YjYqNin2LHZhyDYp9mF2KrYrdin2YYg2qnZhtuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNjIxNjY3MjcwNjU0NTY5Njk1NSI+IuKAj9m+24zZhiDYsdinPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gINio2KfYsSDYp9i02KrYqNin2Ycg2KrYp9uM2b4g2qnYsdiv2YfigI7Yp9uM2K8uIFxuXG7ZvtizINin2LIgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g2KvYp9mG24zZhyDYr9mI2KjYp9ix2Ycg2KfZhdiq2K3Yp9mGINqp2YbbjNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjkxOTE2MTE5ODQ2MjU0NjA4MjAiPiLigI/YtNmF2Kcg2KfZhNqv2YjbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhCDYrtmI2K8g2LHYpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfYtNiq2KjYp9mHINqp2LTbjNiv2YfigI7Yp9uM2K8uINio2LnYryDYp9iyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INiq2YTYp9i0INmG2KfZhdmI2YHZgtiMINin2LIg2LTZhdinINiu2YjYp9iz2KrZhyDZhduM4oCO2LTZiNivINqp2Ycg2KjYsdin24wg2KjYp9iy2q/YtNin24zbjCDZgtmB2YQg2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2K7ZiNivINio2YcgR29vZ2xlINmI2KfYsdivINi02YjbjNivLlxuXG4g2YTYt9mB2KfZiyDZvtizINin2LIgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g2KvYp9mG24zZhyDYr9mI2KjYp9ix2Ycg2KfZhdiq2K3Yp9mGINqp2YbbjNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNTkwMjI3NTU5NzYzNzYyNzUxIj4i4oCP2LTZhdinINin2YTar9mI24wg2KjYp9iy2q/YtNin24zbjCDZgtmB2YQg2K7ZiNivINix2KcgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2KjYp9ixINin2LTYqtio2KfZhyDaqdi024zYr9mH4oCM2KfbjNivLiDZvtizINin2LIgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g2KrZhNin2LQg2YbYp9mF2YjZgdmCINiv24zar9ixINin2LIg2LTZhdinINiu2YjYp9iz2KrZhyDZhduM4oCO2LTZiNivINqp2Ycg2KjYsdin24wg2KjYp9iy2q/YtNin24zbjCDZgtmB2YQg2q/ZiNi024wg2K7ZiNivINio2Ycg2KjYsdmG2KfZhdmH2ZQgR29vZ2xlINmI2KfYsdivINi02YjbjNivLlxuXG4g2YTYt9mB2KfZiyDZvtizINin2LIgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g2KvYp9mG24zZhyDYr9mI2KjYp9ix2Ycg2KfZhdiq2K3Yp9mGINqp2YbbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2MTI4MTA2Mzk5NzQ1NzU1NjA0Ij4i2LTZhdinINio2Ycg2KfYtNiq2KjYp9mHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INio2KfYsSDYp9mC2K/Yp9mFINio2Ycg2KjYp9iyINqp2LHYr9mGINmC2YHZhCDYsdin24zYp9mG2YfZlCDZhNmI2K3bjCDaqdix2K/Zh+KAjNin24zYry4g2b7YsyDYp9iyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INiq2YTYp9i0INmG2KfZhdmI2YHZgiDYr9uM2q/YsdiMINix2KfbjNin2YbZh9mUINmE2YjYrduMINio2Ycg2b7bjNi04oCM2YHYsdi2INqp2KfYsdiu2KfZhtmHINio2KfYstmG2LTYp9mG24wg2YXbjOKAjNi02YjYryDZiCDYqtmF2KfZhSDYr9in2K/Zh+KAjNmH2KfbjCDaqdin2LHYqNixINin2LIg2K/Ys9iqINiu2YjYp9mH2K8g2LHZgdiqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODYwMzU2NTE0MjE1NjgyNjU2NSI+Iti02YXYpyDYqNmHINin2LTYqtio2KfZhyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfZgtiv2KfZhSDYqNmHINio2KfYsiDaqdix2K/ZhiDZgtmB2YQg2KrZhNmB2YYg2qnYsdiv2YfigIzYp9uM2K8uINm+2LMg2KfYsjx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INiq2YTYp9i0INmG2KfZhdmI2YHZgiDYr9uM2q/YsdiMINiq2YTZgdmGINio2Ycg2b7bjNi04oCM2YHYsdi2INqp2KfYsdiu2KfZhtmHINio2KfYstmG2LTYp9mG24wg2YXbjOKAjNi02YjYryDZiCDYqtmF2KfZhSDYr9in2K/Zh+KAjNmH2KfbjCDaqdin2LHYqNixINin2LIg2K/Ys9iqINiu2YjYp9mH2K8g2LHZgdiqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI4MDg3MzUxNjQ5MzkzNDM2NSI+Iti02YXYpyDYqNmHINin2LTYqtio2KfZhyDYp9mC2K/Yp9mFINio2Ycg2KjYp9iyINqp2LHYr9mGINmC2YHZhCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g2LHYp9uM2KfZhtmH2ZQg2YTZiNit24wg2qnYsdiv2YfigIzYp9uM2K8uINix2KfbjNin2YbZh9mUINmE2YjYrduMINiv2LEg2K3Yp9mEINit2KfYttixINio2Ycg2b7bjNi04oCM2YHYsdi2INqp2KfYsdiu2KfZhtmHINio2KfYstmG2LTYp9mG24wg2YXbjOKAjNi02YjYry4iPC9zdHJpbmc+CkBAIC04NjQsMTMgKzg3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfY291bnRkb3duIiBtc2dpZD0iNjI1MTQ4MDM0MzM5NDM4OTY2NSI+Itiv2LEgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INir2KfZhtuM2Ycg2K/ZiNio2KfYsdmHINin2YXYqtit2KfZhiDaqdmG24zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iMjYyNjk5OTQ0OTYxMDY5NTkzMCI+Itin2YTar9mIINix2Kcg2YHYsdin2YXZiNi0INqp2LHYr9mH4oCM2KfbjNiv2J8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9mb3Jnb3RfcGF0dGVybiIgbXNnaWQ9IjI1ODg1MjE1MDExNjYwMzI3NDciPiLYqNin2LLar9i02KfbjNuMINmC2YHZhCDYrdiz2KfYqCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iMjc1MTM2ODYwNTI4NzI4ODgwOCI+Itiq2YTYp9i04oCO2YfYp9uMINiy24zYp9iv24wg2KjYsdin24wg2qnYtNuM2K/ZhiDYp9mE2q/ZiCDYtdmI2LHYqiDar9ix2YHYqtmHINin2LPYqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5MzE4MTYyNTYxMDA3MDc3ODQiPiLYqNix2KfbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhNiMINio2Kcg2K3Ys9in2KggR29vZ2xlINiu2YjYryDZiNin2LHYryDYs9uM2LPYqtmFINi02YjbjNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iMjc1MTM2ODYwNTI4NzI4ODgwOCI+IuKAj9iq2YTYp9i04oCO2YfYp9uMINiy24zYp9iv24wg2KjYsdin24wg2qnYtNuM2K/ZhiDYp9mE2q/ZiCDYtdmI2LHYqiDar9ix2YHYqtmHINin2LPYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5MzE4MTYyNTYxMDA3MDc3ODQiPiLigI/YqNix2KfbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhNiMINio2Kcg2K3Ys9in2KggR29vZ2xlINiu2YjYryDZiNin2LHYryDYs9uM2LPYqtmFINi02YjbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI4ODQ2ODgxNDI0MTA2NDg0NDQ3Ij4i2YbYp9mFINqp2KfYsdio2LHbjCAo2KfbjNmF24zZhCkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iNTk1ODAyODM4Mzk1NDczODUyOCI+Itix2YXYsiDZiNix2YjYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI3MTMwODkzNjk0Nzk1Nzg2MzAwIj4i2YjYsdmI2K8g2KjZhyDYs9uM2LPYqtmFIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjEzNjQwNTE0NzMzNDc0ODU5MDgiPiLZhtin2YUg2qnYp9ix2KjYsSDbjNinINix2YXYsiDZiNix2YjYryDZhtin2YXYudiq2KjYsSDYp9iz2KouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iMTY5NjkyNDc2MzY5MDM3OTA3MyI+ItmG2KfZhSDaqdin2LHYqNix24wg24zYpyDar9iw2LHZiNin2pjZh9mUINiu2YjYryDYsdinINmB2LHYp9mF2YjYtCDaqdix2K/bjNiv2J9cbtin2LIgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iINio2KfYstiv24zYryDaqdmG24zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSIxNjk2OTI0NzYzNjkwMzc5MDczIj4i4oCP2YbYp9mFINqp2KfYsdio2LHbjCDbjNinINqv2LDYsdmI2KfamNmH2ZQg2K7ZiNivINix2Kcg2YHYsdin2YXZiNi0INqp2LHYr9uM2K/Yn1xu2KfYsiAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIg2KjYp9iy2K/bjNivINqp2YbbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iNzExNDYyNzM1MTI4NjkzMzg2NyI+Itiv2LEg2K3Yp9mEINio2LHYsdiz24wuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3VubG9ja19sYWJlbCIgbXNnaWQ9IjczNzQ0MDQ4MzIyMDY2NzA1NCI+Itio2KfYstqv2LTYp9uM24wg2YLZgdmEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zb3VuZF9vbl9sYWJlbCIgbXNnaWQ9IjkwNjg4Nzc1NzY1MTM0MjU5NzAiPiLYtdiv2Kcg2LHZiNi02YYiPC9zdHJpbmc+CkBAIC04NzksNyArODg2LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYWNjZXNzX3BhdHRlcm5fY2xlYXJlZCIgbXNnaWQ9IjU1ODM0Nzk3MjEwMDE2Mzk1NzkiPiLYp9mE2q/ZiCDZvtin2qkg2LTYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYWNjZXNzX3BhdHRlcm5fY2VsbF9hZGRlZCIgbXNnaWQ9IjY3NTYwMzEyMDgzNTkyOTI0ODciPiLYs9mE2YjZhCDYp9i22KfZgdmHINi02K8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2FjY2Vzc19wYXR0ZXJuX2RldGVjdGVkIiBtc2dpZD0iNDk4ODczMDg5NTU1NDA1NzA1OCI+Itin2YTar9mIINiq2qnZhduM2YQg2LTYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4g2KfYqNiy2KfYsdqpICUyJGQg2KfYsiAlMyRkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4i4oCPJTEkcy4g2KfYqNiy2KfYsdqpICUyJGQg2KfYsiAlMyRkLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiLYp9io2LLYp9ix2qkg2KfYttin2YHZhyDaqdmG24zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9lbXB0eV9zbG90IiBtc2dpZD0iMTI4MTUwNTcwMzMwNzkzMDc1NyI+Itiu2KfZhNuMIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLZhdmG2LfZgtmHINio2KfYstqv2LTYp9uM24wg2q/Ys9iq2LHYr9mHINi02K8uIjwvc3RyaW5nPgpAQCAtOTEwLDEwICs5MTcsMTAgQEAKICAgICA8c3RyaW5nIG5hbWU9ImhvdXJfYW1wbSIgbXNnaWQ9IjQ1ODQzMzgwODM1MjkzNTU5ODIiPiI8eGxpZmY6ZyBpZD0iSE9VUiI+JS1sPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJBTVBNIj4lUDwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJob3VyX2NhcF9hbXBtIiBtc2dpZD0iMjA4MzQ2NTk5Mjk0MDQ0NDM2NiI+Ijx4bGlmZjpnIGlkPSJIT1VSIj4lLWw8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IkFNUE0iPiVwPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X2ZhaWxlZCIgbXNnaWQ9IjU0MTAyNzAzMjkxMTQyMTIwNDEiPiLYqtiz2Kog2qnYp9ix2K7Yp9mG2Ycg2KfZhtis2KfZhSDZhti02K8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub3Rfc3lzdGVtIiBtc2dpZD0iNDQzNTIwMTY1Njc2NzI3NjcyMyI+Iti52YXZhNqp2LHYryBGQUNUT1JZX1RFU1Qg2KrZhtmH2Kcg2KjYsdin24wg2KjYs9iq2YfigIzZh9in24wg2YbYtdioINi02K/ZhyDYr9ixIC9zeXN0ZW0vYXBwINm+2LTYqtuM2KjYp9mG24wg2YXbjOKAjNi02YjYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub19hY3Rpb24iIG1zZ2lkPSI4NzI5OTE4NzQ3OTk5OTg1NjEiPiLYqNiz2KrZh+KAjNin24wg24zYp9mB2Kog2YbYtNivINqp2Ycg2LnZhdmE2qnYsdivIEZBQ1RPUllfVEVTVCDYsdinINin2LHYp9im2Ycg2qnZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X25vdF9zeXN0ZW0iIG1zZ2lkPSI0NDM1MjAxNjU2NzY3Mjc2NzIzIj4i4oCP2LnZhdmE2qnYsdivIEZBQ1RPUllfVEVTVCDYqtmG2YfYpyDYqNix2KfbjCDYqNiz2KrZh+KAjNmH2KfbjCDZhti12Kgg2LTYr9mHINiv2LEgL3N5c3RlbS9hcHAg2b7YtNiq24zYqNin2YbbjCDZhduM4oCM2LTZiNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X25vX2FjdGlvbiIgbXNnaWQ9Ijg3Mjk5MTg3NDc5OTk5ODU2MSI+IuKAj9io2LPYqtmH4oCM2KfbjCDbjNin2YHYqiDZhti02K8g2qnZhyDYudmF2YTaqdix2K8gRkFDVE9SWV9URVNUINix2Kcg2KfYsdin2KbZhyDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3RfcmVib290IiBtc2dpZD0iNjMyMDE2ODIwMzA1MDc5MTY0MyI+Itix2KfZh+KAjNin2YbYr9in2LLbjCDZhdis2K/YryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjE5ODc0ODM5Nzc4MzQ2MDM4NzIiPiLYtdmB2K3ZhyDYr9ixIFwiPHhsaWZmOmcgaWQ9IlRJVExFIj4lczwveGxpZmY6Zz5cIiDZhduM4oCO2q/ZiNuM2K86Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMTk4NzQ4Mzk3NzgzNDYwMzg3MiI+IuKAj9i12YHYrdmHINiv2LEgXCI8eGxpZmY6ZyBpZD0iVElUTEUiPiVzPC94bGlmZjpnPlwiINmF24zigI7ar9mI24zYrzoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfdGl0bGVfZGVmYXVsdCIgbXNnaWQ9IjY5NjE5MDMyMTM3Mjk2Njc1NzMiPiLYrNin2YjYpyDYp9iz2qnYsduM2b7YqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkX3RpdGxlIiBtc2dpZD0iMjYxOTM3NjU1NTUyNTExNjU5MyI+Itiq2KPbjNuM2K8g2b7bjNmF2KfbjNi0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWRfcG9zaXRpdmVfYnV0dG9uIiBtc2dpZD0iMzExMjc1MjAxMDYwMDQ4NDEzMCI+Itiq2LHaqSDYp9uM2YYg2LXZgdit2YciPC9zdHJpbmc+CkBAIC05NDUsMTcgKzk1MiwxNyBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2ODI1NTI3NDY5MTQ1NzYwOTIyIj4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINiz2KfYqNmC2Ycg2YXYsdmI2LHar9ixINuM2Kcg2YbYtNin2YbaqeKAjNmH2KfbjCDYsNiu24zYsdmHINi02K/ZhyDYr9ixINix2KfbjNin2YbZh9mUINmE2YjYrduMINi02YXYpyDYsdinINin2LXZhNin2K0g2qnZhtivLiDYp9uM2YYg2YjbjNqY2q/bjCDZhdmF2qnZhiDYp9iz2Kog2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDYr9mH2K8g2K/Yp9iv2YfigIzZh9in24wg2YXYsdmI2LHar9ixINix2Kcg2K3YsNmBINuM2Kcg2KfYtdmE2KfYrSDaqdmG2K8uINiq2YjYrNmHOiDYp9uM2YYg2YXYrNmI2LIg2YXZhdqp2YYg2KfYs9iqINiq2YjYs9i3INmF2LHZiNix2q/YsdmH2KfbjCDYtNiu2LUg2KvYp9mE2Ksg24zYpyDYs9in24zYsSDYqNix2YbYp9mF2YfigIzZh9in24wg2K/Yp9ix2KfbjCDZgtin2KjZhNuM2Kog2YXYsdmI2LEg2YjYqCDZgtin2KjZhCDYp9is2LHYpyDZhtio2KfYtNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0OTczODk1MzEwMTQxODU1MDkiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2LPYp9io2YLZhyDZhdix2YjYsdqv2LEg24zYpyDZhti02KfZhtqp4oCM2YfYp9uMINiw2K7bjNix2Ycg2LTYr9mHINiv2LEg2KrZhNmB2YYg2LTZhdinINix2Kcg2KfYtdmE2KfYrSDaqdmG2K8uINin24zZhiDZiNuM2pjar9uMINmF2YXaqdmGINin2LPYqiDYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINiv2YfYryDYr9in2K/Zh+KAjNmH2KfbjCDZhdix2YjYsdqv2LEg2LHYpyDYrdiw2YEg24zYpyDYp9i12YTYp9itINqp2YbYry4g2KrZiNis2Yc6INin24zZhiDZhdis2YjYsiDZhdmF2qnZhiDYp9iz2Kog2KrZiNiz2Lcg2YXYsdmI2LHar9ix2YfYp9uMINi02K7YtSDYq9in2YTYqyDbjNinINiz2KfbjNixINio2LHZhtin2YXZh+KAjNmH2KfbjCDYr9in2LHYp9uMINmC2KfYqNmE24zYqiDZhdix2YjYsSDZiNioINmC2KfYqNmEINin2KzYsdinINmG2KjYp9i02K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbGFybSIgbXNnaWQ9IjEzNzkyOTQ1NTYzNjIwOTE4MTQiPiLYqtmG2LjbjNmFINuM2qkg2YfYtNiv2KfYsSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFsYXJtIiBtc2dpZD0iMzE2MzkyMDM5MTU3NDczODQ4Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2YfYtNiv2KfYsduMINix2Kcg2K/YsSDYqNix2YbYp9mF2Ycg2LPYp9i52Kog2LLZhtqv2K/Yp9ixINmG2LXYqCDYtNiv2Ycg2KrZhti424zZhSDaqdmG2K8uINio2LHYrtuMINin2LIg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINiz2KfYudiqINiy2Ybar9iv2KfYsSDZhtmF24zigI7YqtmI2KfZhtmG2K8g2KfbjNmGINmI24zamNqv24wg2LHYpyDYp9i52YXYp9mEINqp2YbZhtivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFsYXJtIiBtc2dpZD0iMzE2MzkyMDM5MTU3NDczODQ4Ij4i4oCP2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2YfYtNiv2KfYsduMINix2Kcg2K/YsSDYqNix2YbYp9mF2Ycg2LPYp9i52Kog2LLZhtqv2K/Yp9ixINmG2LXYqCDYtNiv2Ycg2KrZhti424zZhSDaqdmG2K8uINio2LHYrtuMINin2LIg2KjYsdmG2KfZhdmH4oCO2YfYp9uMINiz2KfYudiqINiy2Ybar9iv2KfYsSDZhtmF24zigI7YqtmI2KfZhtmG2K8g2KfbjNmGINmI24zamNqv24wg2LHYpyDYp9i52YXYp9mEINqp2YbZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWRkVm9pY2VtYWlsIiBtc2dpZD0iNTUyNTY2MDAyNjA5MDk1OTA0NCI+Itin2YHYstmI2K/ZhiDZvtiz2Kog2LXZiNiq24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hZGRWb2ljZW1haWwiIG1zZ2lkPSI2NjA0NTA4NjUxNDI4MjUyNDM3Ij4i2KjZhyDYqNix2YbYp9mF2Ycg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINiq2Kcg2b7bjNin2YXigIzZh9inINix2Kcg2KjZhyDYtdmG2K/ZiNmCINiv2LHbjNin2YHYqiDZvtiz2Kog2LXZiNiq24wg2LTZhdinINin2LbYp9mB2Ycg2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iNTk2MjIyNDE1ODk1NTI3MzkzMiI+Itiq2LrbjNuM2LEg2YXYrNmI2LLZh9in24wg2YXaqdin2YYg2KzYutix2KfZgduM2KfbjNuMINmF2LHZiNix2q/YsSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlR2VvbG9jYXRpb25QZXJtaXNzaW9ucyIgbXNnaWQ9IjEwODM3NDMyMzQ1MjI2Mzg3NDciPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDZhdis2YjYstmH2KfbjCDYrNi62LHYp9mB24zYp9uM24wg2YXYsdmI2LHar9ixINix2Kcg2KrYutuM24zYsSDYr9mH2K8uINio2LHZhtin2YXZh+KAjtmH2KfbjCDZhdiu2LHYqCDZhduM4oCO2KrZiNin2YbZhtivINin2LIg2KLZhiDYp9iz2KrZgdin2K/ZhyDaqdmG2YbYryDYqtinINin2LfZhNin2LnYp9iqINmF2YjZgti524zYqiDZhdqp2KfZhtuMINix2Kcg2KjZhyDYs9in24zYquKAjNmH2KfbjCDZiNioINqp2KrYp9io2K7Yp9mG2Ycg2KjZgdix2LPYqtmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iMTA4Mzc0MzIzNDUyMjYzODc0NyI+IuKAj9io2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINmF2KzZiNiy2YfYp9uMINis2LrYsdin2YHbjNin24zbjCDZhdix2YjYsdqv2LEg2LHYpyDYqti624zbjNixINiv2YfYry4g2KjYsdmG2KfZhdmH4oCO2YfYp9uMINmF2K7YsdioINmF24zigI7YqtmI2KfZhtmG2K8g2KfYsiDYotmGINin2LPYqtmB2KfYr9mHINqp2YbZhtivINiq2Kcg2KfYt9mE2KfYudin2Kog2YXZiNmC2LnbjNiqINmF2qnYp9mG24wg2LHYpyDYqNmHINiz2KfbjNiq4oCM2YfYp9uMINmI2Kgg2qnYqtin2KjYrtin2YbZhyDYqNmB2LHYs9iq2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BhY2thZ2VWZXJpZmljYXRpb25BZ2VudCIgbXNnaWQ9IjU1NjgxMzkxMDA2NDU4MjkxMTciPiLYqtij24zbjNivINio2LPYqtmH4oCM2YfYpyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BhY2thZ2VWZXJpZmljYXRpb25BZ2VudCIgbXNnaWQ9Ijg0Mzc1OTAxOTA5OTA4NDMzODEiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2YLYp9io2YQg2YbYtdioINio2YjYr9mGINio2LPYqtmHINix2Kcg2KrYo9uM24zYryDaqdmG2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kUGFja2FnZVZlcmlmaWVyIiBtc2dpZD0iNDE4Nzc4Njc5MzM2MDMyNjY1NCI+Itin2KrYtdin2YQg2KjZhyDbjNqpINiq2KPbjNuM2K8g2qnZhtmG2K/ZhyDYqNiz2KrZhyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQYWNrYWdlVmVyaWZpZXIiIG1zZ2lkPSIzMTgwNzQxNzczMjMzODYyMTI2Ij4i2KjZhyDYr9in2LHZhtiv2Ycg2KfYrNin2LLZhyDZhduM4oCO2K/Zh9ivINiq2Kcg2KrYp9uM24zYr9qp2YbZhtiv2q/Yp9mGINio2LPYqtmHINix2Kcg2K/Ysdiu2YjYp9iz2Kog2qnZhtivLiDYqNix2KfbjCDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YbbjNin2LIg2YbbjNiz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFBhY2thZ2VWZXJpZmllciIgbXNnaWQ9IjMxODA3NDE3NzMyMzM4NjIxMjYiPiLigI/YqNmHINiv2KfYsdmG2K/ZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYqtin24zbjNiv2qnZhtmG2K/ar9in2YYg2KjYs9iq2Ycg2LHYpyDYr9ix2K7ZiNin2LPYqiDaqdmG2K8uINio2LHYp9uMINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhtuM2KfYsiDZhtuM2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlcmlhbFBvcnQiIG1zZ2lkPSI1NDYwODMzMjc2NTQ2MzEwNzYiPiLYr9iz2KrYsdiz24wg2KjZhyDYr9ix2q/Yp9mH4oCM2YfYp9uMINiz2LHbjNin2YQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXJpYWxQb3J0IiBtc2dpZD0iMjk5MTYzOTk4NTIyNDU5ODE5MyI+Itio2Ycg2K/Yp9ix2YbYr9mHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYqNinINin2LPYqtmB2KfYr9mHINin2LIgU2VyaWFsTWFuYWdlciBBUEkg2KjZhyDYr9ix2q/Yp9mH4oCM2YfYp9uMINiz2LHbjNin2YQg2K/Ys9iq2LHYs9uMINiv2KfYtNiq2Ycg2KjYp9i02K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VyaWFsUG9ydCIgbXNnaWQ9IjI5OTE2Mzk5ODUyMjQ1OTgxOTMiPiLigI/YqNmHINiv2KfYsdmG2K/ZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2KjYpyDYp9iz2KrZgdin2K/ZhyDYp9iyIFNlcmlhbE1hbmFnZXIgQVBJINio2Ycg2K/Ysdqv2KfZh+KAjNmH2KfbjCDYs9ix24zYp9mEINiv2LPYqtix2LPbjCDYr9in2LTYqtmHINio2KfYtNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzQ29udGVudFByb3ZpZGVyc0V4dGVybmFsbHkiIG1zZ2lkPSI1MDc3Nzc0Mjk3OTQzNDA5Mjg1Ij4i2K/Ys9iq2LHYs9uMINiu2KfYsdis24wg2KjZhyDYp9ix2KfYptmH4oCM2K/Zh9mG2K/ar9in2YYg2YXYrdiq2YjYpyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0NvbnRlbnRQcm92aWRlcnNFeHRlcm5hbGx5IiBtc2dpZD0iNDU0NDM0NjQ4NjY5Nzg1MzY4NSI+Itio2Ycg2K/Yp9ix2YbYr9mHINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfYryDYqtinINin2LIg2K7Yp9ix2Kwg2KjYsdmG2KfZhdmHINio2Ycg2KfYsdin2KbZh+KAjNiv2YfZhtiv2q/Yp9mGINmF2K3YqtmI2Kcg2K/Ys9iq2LHYs9uMINiv2KfYtNiq2Ycg2KjYp9i02K8uINmH2LHar9iyINio2LHYp9uMINio2LHZhtin2YXZh+KAjNmH2KfbjCDZhdi52YXZiNmE24wg2KjZhyDYotmGINmG24zYp9iy24wg2YbbjNiz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91cGRhdGVMb2NrIiBtc2dpZD0iMzUyNzU1ODM2NjYxNjY4MDg4OSI+Itiq2LHYutuM2Kgg2KjZhyDYp9mG2KzYp9mFINmG2K/Yp9iv2YYg2KjZh+KAjNix2YjYstix2LPYp9mG24zigIzZh9in24wg2K7ZiNiv2qnYp9ixINiv2LPYqtqv2KfZhyI8L3N0cmluZz4KQEAgLTEwOTUsNyArMTEwMiw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJwYXN0ZSIgbXNnaWQ9IjU2Mjk4ODA4MzY4MDUwMzY0MzMiPiLYrNin24wg2q/YsNin2LHbjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InJlcGxhY2UiIG1zZ2lkPSI1NzgxNjg2MDU5MDYzMTQ4OTMwIj4i2KzYp9uM2q/YstuM2YYg2LTZiNivLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlIiBtc2dpZD0iNjA5ODY4NDg0NDAyMTY5Nzc4OSI+Itit2LDZgSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvcHlVcmwiIG1zZ2lkPSIyNTM4MjExNTc5NTk2MDY3NDAyIj4i2qnZvtuMIFVSTCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvcHlVcmwiIG1zZ2lkPSIyNTM4MjExNTc5NTk2MDY3NDAyIj4i4oCP2qnZvtuMIFVSTCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNlbGVjdFRleHRNb2RlIiBtc2dpZD0iMTAxODY5MTgxNTE0MzE2NTMyNiI+Itin2YbYqtiu2KfYqCDZhdiq2YYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ0ZXh0U2VsZWN0aW9uQ0FCVGl0bGUiIG1zZ2lkPSI1MjM2ODUwMzk0MzcwODIwMzU3Ij4i2KfZhtiq2K7Yp9ioINmF2KrZhiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFkZFRvRGljdGlvbmFyeSIgbXNnaWQ9IjQzNTIxNjE1MzQ1MTAwNTc4NzQiPiLYp9mB2LLZiNiv2YYg2KjZhyDZgdix2YfZhtqv4oCM2YTYutiqIjwvc3RyaW5nPgpAQCAtMTExNywxOCArMTEyNCwxOCBAQAogICAgIDxzdHJpbmcgbmFtZT0id2hpY2hBcHBsaWNhdGlvbiIgbXNnaWQ9IjQ1MzMxODU5NDcwNjQ3NzMzODYiPiLYqtqp2YXbjNmEINi52YXZhNqp2LHYryDYqNinINin2LPYqtmB2KfYr9mHINin2LIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ3aGljaEhvbWVBcHBsaWNhdGlvbiIgbXNnaWQ9IjQ2MTY0MjAxNzI3MjczMjY3ODIiPiLYp9mG2KrYrtin2Kgg24zaqSDYqNix2YbYp9mF2Ycg2LXZgdit2Ycg2KfYtdmE24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbHdheXNVc2UiIG1zZ2lkPSI0NTgzMDE4MzY4MDAwNjEwNDM4Ij4i2KfYs9iq2YHYp9iv2Ycg2KjZhyDYtdmI2LHYqiDZvtuM2LTigIzZgdix2LYg2KjYsdin24wg2KfbjNmGINi52YXZhNqp2LHYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjbGVhckRlZmF1bHRIaW50TXNnIiBtc2dpZD0iMzI1MjU4NDY4OTUxMjA3NzI1NyI+Itm+24zYtOKAjNmB2LHYtiDYsdinINiv2LEg2KrZhti424zZhdin2Kog2LPbjNiz2KrZhSZndDsg2KjYsdmG2KfZhdmH4oCO2YfYpyZndDsg2YXZiNix2K8g2K/Yp9mG2YTZiNivINi02K/ZhyDZvtin2qkg2qnZhtuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2xlYXJEZWZhdWx0SGludE1zZyIgbXNnaWQ9IjMyNTI1ODQ2ODk1MTIwNzcyNTciPiLigI/ZvtuM2LTigIzZgdix2LYg2LHYpyDYr9ixINiq2YbYuNuM2YXYp9iqINiz24zYs9iq2YUmZ3Q7INio2LHZhtin2YXZh+KAjtmH2KcmZ3Q7INmF2YjYsdivINiv2KfZhtmE2YjYryDYtNiv2Ycg2b7Yp9qpINqp2YbbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNob29zZUFjdGl2aXR5IiBtc2dpZD0iNzQ4Njg3NjE0Nzc1MTgwMzMzMyI+Itin2YbYqtiu2KfYqCDYudmF2YTaqdix2K8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjaG9vc2VVc2JBY3Rpdml0eSIgbXNnaWQ9IjY4OTQ3NDg0MTYwNzM1ODM1MDkiPiLYp9mG2KrYrtin2Kgg2KjYsdmG2KfZhdmHINio2LHYp9uMINiv2LPYqtqv2KfZhyBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJub0FwcGxpY2F0aW9ucyIgbXNnaWQ9IjI5OTE4MTQyNzM5MzY1MDQ2ODkiPiLZh9uM2oYg2KjYsdmG2KfZhdmH4oCM2KfbjCDZhtmF24zigI7YqtmI2KfZhtivINin24zZhiDaqdin2LEg2LHYpyDYp9mG2KzYp9mFINiv2YfYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VVc2JBY3Rpdml0eSIgbXNnaWQ9IjY4OTQ3NDg0MTYwNzM1ODM1MDkiPiLigI/Yp9mG2KrYrtin2Kgg2KjYsdmG2KfZhdmHINio2LHYp9uMINiv2LPYqtqv2KfZhyBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub0FwcGxpY2F0aW9ucyIgbXNnaWQ9IjI5OTE4MTQyNzM5MzY1MDQ2ODkiPiLigI/Zh9uM2oYg2KjYsdmG2KfZhdmH4oCM2KfbjCDZhtmF24zigI7YqtmI2KfZhtivINin24zZhiDaqdin2LEg2LHYpyDYp9mG2KzYp9mFINiv2YfYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhZXJyX3RpdGxlIiBtc2dpZD0iMTkwNTgwMDU2MDMxNzEzNzc1MiI+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhZXJyX2FwcGxpY2F0aW9uIiBtc2dpZD0iOTMyNjI4NDg4MDEzMDkyNzc2Ij4i2YXYqtij2LPZgdin2YbZh9iMIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g2YXYqtmI2YLZgSDYtNiv2Ycg2KfYs9iqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFlcnJfcHJvY2VzcyIgbXNnaWQ9IjQ1MDcwNTg5OTcwMzU2OTc1NzkiPiLZhdiq2KPYs9mB2KfZhtmH2Iwg2b7Ysdiv2KfYsti0IDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDZhdiq2YjZgtmBINi02K/ZhyDYp9iz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYW5yX3RpdGxlIiBtc2dpZD0iNDM1MTk0ODQ4MTQ1OTEzNTcwOSI+PC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhbnJfYWN0aXZpdHlfYXBwbGljYXRpb24iIG1zZ2lkPSIxOTA0NDc3MTg5MDU3MTk5MDY2Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMiRzPC94bGlmZjpnPiDZvtin2LPYriDZhtmF24zigI7Yr9mH2K8uXG5cbtii24zYpyDZhduM4oCO2K7ZiNin2YfbjNivINii2YbYsdinINio2KjZhtiv24zYr9ifIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYW5yX2FjdGl2aXR5X3Byb2Nlc3MiIG1zZ2lkPSI1Nzc2MjA5ODgzMjk5MDg5NzY3Ij4i2YHYudin2YTbjNiqIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g2b7Yp9iz2K4g2YbZhduM4oCO2K/Zh9ivLlxuXG7YotuM2Kcg2YXbjOKAjtiu2YjYp9mH24zYryDYotmGINix2Kcg2KjYqNmG2K/bjNiv2J8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhbnJfYXBwbGljYXRpb25fcHJvY2VzcyIgbXNnaWQ9Ijg5NDE3NTc2MDczNDA0ODEwNTciPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+INm+2KfYs9iuINmG2YXbjOKAjtiv2YfYry4g2KLbjNinINmF24zigI7YrtmI2KfZh9uM2K8g2KLZhiDYsdinINio2KjZhtiv24zYr9ifIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYW5yX3Byb2Nlc3MiIG1zZ2lkPSI2NTEzMjA5ODc0ODgwNTE3MTI1Ij4i2LHZiNmG2K8gPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+INm+2KfYs9iuINmG2YXbjOKAjtiv2YfYry4gXG5cbtii24zYpyDZhduM4oCO2K7ZiNin2YfbjNivINii2YYg2LHYpyDYqNio2YbYr9uM2K/YnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hY3Rpdml0eV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjE5MDQ0NzcxODkwNTcxOTkwNjYiPiLigI88eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUyJHM8L3hsaWZmOmc+INm+2KfYs9iuINmG2YXbjOKAjtiv2YfYry5cblxu2KLbjNinINmF24zigI7YrtmI2KfZh9uM2K8g2KLZhtix2Kcg2KjYqNmG2K/bjNiv2J8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfYWN0aXZpdHlfcHJvY2VzcyIgbXNnaWQ9IjU3NzYyMDk4ODMyOTkwODk3NjciPiLigI/Zgdi52KfZhNuM2KogPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiDZvtin2LPYriDZhtmF24zigI7Yr9mH2K8uXG5cbtii24zYpyDZhduM4oCO2K7ZiNin2YfbjNivINii2YYg2LHYpyDYqNio2YbYr9uM2K/YnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hcHBsaWNhdGlvbl9wcm9jZXNzIiBtc2dpZD0iODk0MTc1NzYwNzM0MDQ4MTA1NyI+IuKAjzx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g2b7Yp9iz2K4g2YbZhduM4oCO2K/Zh9ivLiDYotuM2Kcg2YXbjOKAjtiu2YjYp9mH24zYryDYotmGINix2Kcg2KjYqNmG2K/bjNiv2J8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfcHJvY2VzcyIgbXNnaWQ9IjY1MTMyMDk4NzQ4ODA1MTcxMjUiPiLigI/YsdmI2YbYryA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz4g2b7Yp9iz2K4g2YbZhduM4oCO2K/Zh9ivLiBcblxu2KLbjNinINmF24zigI7YrtmI2KfZh9uM2K8g2KLZhiDYsdinINio2KjZhtiv24zYr9ifIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZm9yY2VfY2xvc2UiIG1zZ2lkPSI4MzQ2MDcyMDk0NTIxMjY1NjA1Ij4i2KrYo9uM24zYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InJlcG9ydCIgbXNnaWQ9IjQwNjAyMTgyNjA5ODQ3OTU3MDYiPiLar9iy2KfYsdi0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2FpdCIgbXNnaWQ9IjcxNDcxMTgyMTcyMjYzMTc3MzIiPiLZhdmG2KrYuNixINio2YXYp9mG24zYryI8L3N0cmluZz4KQEAgLTExMzgsOSArMTE0NSw5IEBACiAgICAgPHN0cmluZyBuYW1lPSJsYXVuY2hfd2FybmluZ19vcmlnaW5hbCIgbXNnaWQ9IjE4ODEwMjAyMzAyMTY2ODY4MyI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4g2KfYsiDYp9io2KrYr9inINix2KfZh+KAjNin2YbYr9in2LLbjCDYtNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9zY2FsZSIgbXNnaWQ9IjMyMDI5NTU2Njc2NzU5NDQ0OTkiPiLZhdmC24zYp9izIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX3Nob3ciIG1zZ2lkPSI0MDEzODc4ODc2NDg2NjU1ODkyIj4i2YfZhduM2LTZhyDZhti02KfZhiDYr9in2K/ZhyDYtNmI2K8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fY29tcGF0X21vZGVfaGludCIgbXNnaWQ9IjEwNjQ1MjQwODQ1NDMzMDQ0NTkiPiLYr9ixINiq2YbYuNuM2YXYp9iqINiz24zYs9iq2YUgJmd0O9io2LHZhtin2YXZh+KAjtmH2KcgJmd0OyDZhdmI2LHYryDYr9in2YbZhNmI2K8g2LTYr9mHINii2YYg2LHYpyDYr9mI2KjYp9ix2Ycg2YHYudin2YQg2qnZhtuM2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic212X2FwcGxpY2F0aW9uIiBtc2dpZD0iMzMwNzIwOTE5MjE1NTQ0MjgyOSI+Itio2LHZhtin2YXZhyA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+ICjZvtix2K/Yp9iy2LQgPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUyJHM8L3hsaWZmOmc+KSDYrti3INmF2LTbjCBTdHJpY3RNb2RlINin2KzYsdin24zbjCDYrtmI2K8g2LHYpyDZhtmC2LYg2qnYsdiv2Ycg2KfYs9iqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InNtdl9wcm9jZXNzIiBtc2dpZD0iNTEyMDM5NzAxMjA0NzQ2MjQ0NiI+ItmB2LHYotuM2YbYryA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz4g2K7YtyDZhdi024wgU3RyaWN0TW9kZSDYp9is2LHYp9uMINiu2YjYr9qp2KfYsSDYrtmI2K8g2LHYpyDZhtmC2LYg2qnYsdiv2Ycg2KfYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9oaW50IiBtc2dpZD0iMTA2NDUyNDA4NDU0MzMwNDQ1OSI+IuKAj9iv2LEg2KrZhti424zZhdin2Kog2LPbjNiz2KrZhSAmZ3Q72KjYsdmG2KfZhdmH4oCO2YfYpyAmZ3Q7INmF2YjYsdivINiv2KfZhtmE2YjYryDYtNiv2Ycg2KLZhiDYsdinINiv2YjYqNin2LHZhyDZgdi52KfZhCDaqdmG24zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXZfYXBwbGljYXRpb24iIG1zZ2lkPSIzMzA3MjA5MTkyMTU1NDQyODI5Ij4i4oCP2KjYsdmG2KfZhdmHIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4gKNm+2LHYr9in2LLYtCA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTIkczwveGxpZmY6Zz4pINiu2Lcg2YXYtNuMIFN0cmljdE1vZGUg2KfYrNix2KfbjNuMINiu2YjYryDYsdinINmG2YLYtiDaqdix2K/ZhyDYp9iz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic212X3Byb2Nlc3MiIG1zZ2lkPSI1MTIwMzk3MDEyMDQ3NDYyNDQ2Ij4i4oCP2YHYsdii24zZhtivIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDYrti3INmF2LTbjCBTdHJpY3RNb2RlINin2KzYsdin24wg2K7ZiNiv2qnYp9ixINiu2YjYryDYsdinINmG2YLYtiDaqdix2K/ZhyDYp9iz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfdGl0bGUiIG1zZ2lkPSIxNTg0MTkyMjg1NDQxNDA1NzQ2Ij4i4oCPQW5kcm9pZCDYr9ixINit2KfZhCDYp9ix2KrZgtinINin2LPYqi4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX2FwayIgbXNnaWQ9Ijc5MDQwNDI2ODIxMTE1MjYxNjkiPiLYr9ixINit2KfZhCDYqNmH24zZhtmH4oCM2LPYp9iy24wg2KjYsdmG2KfZhdmH2ZQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRkPC94bGlmZjpnPiDYp9iyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JTIkZDwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfc3RhcnRpbmdfYXBwcyIgbXNnaWQ9IjQ1MTQ2NDUxNjM0NjkyNjcxMyI+Itiv2LEg2K3Yp9mEINii2LrYp9iyINio2LHZhtin2YXZh+KAjNmH2KcuIjwvc3RyaW5nPgpAQCAtMTE3NCwyMyArMTE4MSwyMyBAQAogICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfcGlja2VyX3RpdGxlIiBtc2dpZD0iMzUxNTE0MzkzOTE3NTExOTA5NCI+Itii2YfZhtqv4oCM2YfYp9uMINiy2YbaryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX3Vua25vd24iIG1zZ2lkPSI1NDc3OTE5OTg4NzAxNzg0Nzg4Ij4i2KLZh9mG2q8g2LLZhtqvINmG2KfYtNmG2KfYsyI8L3N0cmluZz4KICAgPHBsdXJhbHMgbmFtZT0id2lmaV9hdmFpbGFibGUiPgotICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NjU0MTIzOTg3NDE4MTY4NjkzIj4i2LTYqNqp2YcgV2ktRmkg2YXZiNis2YjYryDYp9iz2KoiPC9pdGVtPgotICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQxOTI0MjQ0ODkxNjgzOTczODYiPiLYtNio2qnZh+KAjNmH2KfbjCBXaS1GaSDZhdmI2KzZiNivINmH2LPYqtmG2K8iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NjU0MTIzOTg3NDE4MTY4NjkzIj4i4oCP2LTYqNqp2YcgV2ktRmkg2YXZiNis2YjYryDYp9iz2KoiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQxOTI0MjQ0ODkxNjgzOTczODYiPiLigI/YtNio2qnZh+KAjNmH2KfbjCBXaS1GaSDZhdmI2KzZiNivINmH2LPYqtmG2K8iPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgIDxwbHVyYWxzIG5hbWU9IndpZmlfYXZhaWxhYmxlX2RldGFpbGVkIj4KLSAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMTYzNDEwMTQ1MDM0MzI3NzM0NSI+Iti02KjaqdmHIFdpLUZpINmF2YjYrNmI2K8g2LHYpyDYqNin2LIg2qnZhtuM2K8iPC9pdGVtPgotICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc5MTU4OTUzMjM2NDQyOTI3NjgiPiLYtNio2qnZh+KAjNmH2KfbjCBXaS1GaSDZhdmI2KzZiNivINix2Kcg2KjYp9iyINqp2YbbjNivIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMTYzNDEwMTQ1MDM0MzI3NzM0NSI+IuKAj9i02KjaqdmHIFdpLUZpINmF2YjYrNmI2K8g2LHYpyDYqNin2LIg2qnZhtuM2K8iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc5MTU4OTUzMjM2NDQyOTI3NjgiPiLigI/YtNio2qnZh+KAjNmH2KfbjCBXaS1GaSDZhdmI2KzZiNivINix2Kcg2KjYp9iyINqp2YbbjNivIjwvaXRlbT4KICAgPC9wbHVyYWxzPgotICAgIDxzdHJpbmcgbmFtZT0id2lmaV9hdmFpbGFibGVfc2lnbl9pbiIgbXNnaWQ9IjQwMjk0ODk3MTY2MDUyNTUzODYiPiLZiNix2YjYryDYqNmHINi02KjaqdmHIFdpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9hdmFpbGFibGVfc2lnbl9pbiIgbXNnaWQ9IjQwMjk0ODk3MTY2MDUyNTUzODYiPiLigI/ZiNix2YjYryDYqNmHINi02KjaqdmHIFdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmV0d29ya19hdmFpbGFibGVfc2lnbl9pbiIgbXNnaWQ9Ijg0OTUxNTU1OTMzNTgwNTQ2NzYiPiLZiNix2YjYryDYqNmHINi02KjaqdmHIjwvc3RyaW5nPgogICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIG5ldHdvcmtfYXZhaWxhYmxlX3NpZ25faW5fZGV0YWlsZWQgKDgwMDAwODE5NDE0NDc5NzYxMTgpIC0tPgogICAgIDxza2lwIC8+Ci0gICAgPHN0cmluZyBuYW1lPSJ3aWZpX3dhdGNoZG9nX25ldHdvcmtfZGlzYWJsZWQiIG1zZ2lkPSI3OTA0MjE0MjMxNjUxNTQ2MzQ3Ij4i2KfYqti12KfZhCDYqNmHIFdpLUZpINmF2YXaqdmGINmG24zYs9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkIiBtc2dpZD0iNzkwNDIxNDIzMTY1MTU0NjM0NyI+IuKAj9in2KrYtdin2YQg2KjZhyBXaS1GaSDZhdmF2qnZhiDZhtuM2LPYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IndpZmlfd2F0Y2hkb2dfbmV0d29ya19kaXNhYmxlZF9kZXRhaWxlZCIgbXNnaWQ9IjU1NDg3ODA3NzY0MTgzMzI2NzUiPiIg2KfYqti12KfZhCDYp9uM2YbYqtix2YbYqtuMINi22LnbjNmB24wg2K/Yp9ix2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZGlhbG9nX3RpdGxlIiBtc2dpZD0iOTc2MTE3ODI2NTkzMjQ1MTciPiJXaS1GaSBEaXJlY3QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF90dXJub25fbWVzc2FnZSIgbXNnaWQ9IjI5MDkyNTA5NDIyOTk2MjcyNDQiPiJXaS1GaSBEaXJlY3Qg2LHYpyDYtNix2YjYuSDaqdmG24zYry4g2KfbjNmGINqp2KfYsSDZhtmC2LfZhyDYp9iq2LXYp9mEL9iz2LHZiNuM2LMg2q/bjNix2YbYr9mHIFdpLUZpINix2Kcg2LrbjNix2YHYudin2YQg2K7ZiNin2YfYryDaqdix2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZmFpbGVkX21lc3NhZ2UiIG1zZ2lkPSIzNzYzNjY5Njc3OTM1NjIzMDg0Ij4iV2ktRmkgRGlyZWN0INi02LHZiNi5INmG2LTYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9lbmFibGVkX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIwNjgzMjE4ODE2NzM3MzQ4ODYiPiJXaS1GaSBEaXJlY3Qg2LHZiNi02YYg2KfYs9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfdHVybm9uX21lc3NhZ2UiIG1zZ2lkPSIyOTA5MjUwOTQyMjk5NjI3MjQ0Ij4i4oCPV2ktRmkgRGlyZWN0INix2Kcg2LTYsdmI2Lkg2qnZhtuM2K8uINin24zZhiDaqdin2LEg2YbZgti32Ycg2KfYqti12KfZhC/Ys9ix2YjbjNizINqv24zYsdmG2K/ZhyBXaS1GaSDYsdinINi624zYsdmB2LnYp9mEINiu2YjYp9mH2K8g2qnYsdivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZhaWxlZF9tZXNzYWdlIiBtc2dpZD0iMzc2MzY2OTY3NzkzNTYyMzA4NCI+IuKAj1dpLUZpIERpcmVjdCDYtNix2YjYuSDZhti02K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW5hYmxlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMDY4MzIxODgxNjczNzM0ODg2Ij4i4oCPV2ktRmkgRGlyZWN0INix2YjYtNmGINin2LPYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VuYWJsZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIxNjM4OTQ5OTUzOTkzODk0MzM1Ij4i2YTZhdizINqp2LHYr9mGINio2LHYp9uMINiq2YbYuNuM2YXYp9iqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMTY0NTI2NzI1OTI3MjgyOTU1OSI+Itm+2LDbjNix2LQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkZWNsaW5lIiBtc2dpZD0iMjExMjIyNTQ1MTcwNjEzNzg5NCI+Iti52K/ZhSDZvtiw24zYsdi0Ijwvc3RyaW5nPgpAQCAtMTIwMCwyMCArMTIwNywyMCBAQAogICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfdG9fbWVzc2FnZSIgbXNnaWQ9IjI0ODk2ODk3NDUyMjA0NDA5OSI+Itio2Yc6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW50ZXJfcGluX21lc3NhZ2UiIG1zZ2lkPSI1OTIwOTI5NTUwMzY3ODI4OTcwIj4i2b7bjNmGINmE2KfYstmFINix2Kcg2KrYp9uM2b4g2qnZhtuM2K86Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfc2hvd19waW5fbWVzc2FnZSIgbXNnaWQ9Ijg1MzA1NjMzMjM4ODA5MjEwOTQiPiLZvtuM2YY6Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZnJlcXVlbmN5X2NvbmZsaWN0X21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgwMTI5ODEyNTc3NDIyMzI0NzUiPiLYr9ixINit24zZhiDYp9iq2LXYp9mEINio2YcgPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiDYp9ix2KrYqNin2Lcg2KfbjNmGINix2KfbjNin2YbZhyDZhNmI2K3bjCDYqNinIFdpLUZpINmF2YjZgtiq2KfZiyDZgti32Lkg2K7ZiNin2YfYryDYtNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzM2MzkwNzIxMzc4NzQ2OTE1MSI+Itin24zZhiDar9mI2LTbjCDYqNmH4oCM2LfZiNixINmF2YjZgtiqINin2LIgV2ktRmkg2YLYt9i5INiu2YjYp9mH2K8g2LTYr9iMINiv2LEg2K3Yp9mE24wg2qnZhyDYqNmHIDx4bGlmZjpnIGlkPSJERVZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4g2YjYtdmEINin2LPYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MDEyOTgxMjU3NzQyMjMyNDc1Ij4i4oCP2K/YsSDYrduM2YYg2KfYqti12KfZhCDYqNmHIDx4bGlmZjpnIGlkPSJERVZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4g2KfYsdiq2KjYp9i3INin24zZhiDYsdin24zYp9mG2Ycg2YTZiNit24wg2KjYpyBXaS1GaSDZhdmI2YLYqtin2Ysg2YLYt9i5INiu2YjYp9mH2K8g2LTYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcmVxdWVuY3lfY29uZmxpY3RfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczNjM5MDcyMTM3ODc0NjkxNTEiPiLigI/Yp9uM2YYg2q/ZiNi024wg2KjZh+KAjNi32YjYsSDZhdmI2YLYqiDYp9iyIFdpLUZpINmC2LfYuSDYrtmI2KfZh9ivINi02K/YjCDYr9ixINit2KfZhNuMINqp2Ycg2KjZhyA8eGxpZmY6ZyBpZD0iREVWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+INmI2LXZhCDYp9iz2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfY2hhcmFjdGVyIiBtc2dpZD0iMzM2NTU1MDEyMDYxNzcwMTc0NSI+Itiv2LHYrCDZhtmI24zYs9mHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfdGl0bGUiIG1zZ2lkPSI3Mjk2NjEyNzgxMTI4OTE3NzE5Ij4i2KfYsdiz2KfZhCDZvtuM2KfZhdqpINmH2KciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9tZXNzYWdlIiBtc2dpZD0iMzg2Nzg5OTE2OTY1MTQ5NjQzMyI+IiZsdDtiJmd0Ozx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7INiv2LEg2K3Yp9mEINin2LHYs9in2YQg2KrYudiv2KfYryDYstuM2KfYr9uMINm+24zYp9mF2qkg2KfYs9iqLiDYotuM2Kcg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9uM2K8g2KfbjNmGINio2LHZhtin2YXZhyDZh9mF2obZhtin2YYg2b7bjNin2YXaqSDYp9ix2LPYp9mEINqp2YbYr9ifIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfbWVzc2FnZSIgbXNnaWQ9IjM4Njc4OTkxNjk2NTE0OTY0MzMiPiLigI8mbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyDYr9ixINit2KfZhCDYp9ix2LPYp9mEINiq2LnYr9in2K8g2LLbjNin2K/bjCDZvtuM2KfZhdqpINin2LPYqi4g2KLbjNinINin2KzYp9iy2Ycg2YXbjOKAjNiv2YfbjNivINin24zZhiDYqNix2YbYp9mF2Ycg2YfZhdqG2YbYp9mGINm+24zYp9mF2qkg2KfYsdiz2KfZhCDaqdmG2K/YnyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX3llcyIgbXNnaWQ9IjM2NjM3MjU5OTM4NTU4MTY4MDciPiLYp9is2KfYstmHINiv2KfYr9mGIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfbm8iIG1zZ2lkPSI2MjU0Mzg1NjEzOTU1MzQ5ODIiPiLYsdiv2qnYsdiv2YYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX21lc3NhZ2UiIG1zZ2lkPSIxNjQ1NDM2NDY2Mjg1MzEwODU1Ij4iJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDsg2YXYp9uM2YQg2KfYs9iqINm+24zYp9mF24wg2KjZhyAmbHQ7YiZndDs8eGxpZmY6ZyBpZD0iREVTVF9BRERSRVNTIj4lMiRzPC94bGlmZjpnPiZsdDsvYiZndDsg2KfYsdiz2KfZhCDaqdmG2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9tZXNzYWdlIiBtc2dpZD0iMTY0NTQzNjQ2NjI4NTMxMDg1NSI+IuKAjyZsdDtiJmd0Ozx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7INmF2KfbjNmEINin2LPYqiDZvtuM2KfZhduMINio2YcgJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkRFU1RfQUREUkVTUyI+JTIkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7INin2LHYs9in2YQg2qnZhtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSIzNDkyMDI1NzE5ODY4MDc4NDU3Ij4i2KfbjNmGINqp2KfYsSAiPGZvbnQgZmdjb2xvcj0iI2ZmZmZiMDYwIj4i2YXbjOKAjNiq2YjYp9mG2K8g2YXZhtis2LEg2KjZhyDYtNin2LHamCI8L2ZvbnQ+IiDYrdiz2KfYqCDYqtmE2YHZhiDZh9mF2LHYp9mHINi02YXYpyDYtNmI2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX3ByZW1pdW1fc2hvcnRfY29kZV9kZXRhaWxzIiBtc2dpZD0iNTUyMzgyNjM0OTEwNTEyMzY4NyI+PGZvbnQgZmdjb2xvcj0iI2ZmZmZiMDYwIj4i2KfbjNmGINqp2KfYsSDYrdiz2KfYqCDYqtmE2YHZhiDZh9mF2LHYp9mHINi02YXYpyDYsdinINi02KfYsdqYINiu2YjYp9mH2K8g2qnYsdivLiI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2FsbG93IiBtc2dpZD0iNDQ1ODg3ODYzNzExMTAyMzQxMyI+Itin2LHYs9in2YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2RlbnkiIG1zZ2lkPSIyOTI3Mzg5ODQwMjA5MTcwNzA2Ij4i2YTYutmIIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfcmVtZW1iZXJfY2hvaWNlIiBtc2dpZD0iNTI4OTUzODU5MjI3MjIxODEzNiI+Itin24zZhiDYp9mG2KrYrtin2Kgg2LHYpyDYqNmHINiu2KfYt9ixINio2LPZvtin2LEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9yZW1lbWJlcl91bmRvX2luc3RydWN0aW9uIiBtc2dpZD0iNDk2MDk0NDEzMzA1MjI4NzQ4NCI+ItmF24zigIzYqtmI2KfZhtuM2K8g2KjYudiv2KfZiyDYotmGINix2Kcg2K/YsSDYqtmG2LjbjNmF2KfYqiAmZ3Q7INio2LHZhtin2YXZh+KAjNmH2Kcg2KrYutuM24zYsSDYr9mH24zYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX3VuZG9faW5zdHJ1Y3Rpb24iIG1zZ2lkPSI0OTYwOTQ0MTMzMDUyMjg3NDg0Ij4i4oCP2YXbjOKAjNiq2YjYp9mG24zYryDYqNi52K/Yp9mLINii2YYg2LHYpyDYr9ixINiq2YbYuNuM2YXYp9iqICZndDsg2KjYsdmG2KfZhdmH4oCM2YfYpyDYqti624zbjNixINiv2YfbjNivIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9hbHdheXNfYWxsb3ciIG1zZ2lkPSIzMjQxMTgxMTU0ODY5NDkzMzY4Ij4i2YfZhduM2LTZhyDZhdis2KfYsiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fbmV2ZXJfYWxsb3ciIG1zZ2lkPSI0NDY5OTI3NjU3NzQyNjk2NzMiPiLZh9mF24zYtNmHINi624zYsdmF2KzYp9iyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2ltX3JlbW92ZWRfdGl0bGUiIG1zZ2lkPSI2MjI3NzEyMzE5MjIzMjI2MTg1Ij4i2LPbjNmFINqp2KfYsdiqINio2LHYr9in2LTYqtmHINi02K8iPC9zdHJpbmc+CkBAIC0xMjMwLDM4ICsxMjM3LDM4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtc19kZXNjcmlwdGlvbl9hcHAiIG1zZ2lkPSI1MTM5ODM2MTQzMjkzMjk5NDE3Ij4i2KfYsdin2KbZhyDYtNiv2Ycg2KrZiNiz2LcgPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibm9fcGVybWlzc2lvbnMiIG1zZ2lkPSI3MjgzMzU3NzI4MjE5MzM4MTEyIj4i2YXYrNmI2LLbjCDZhNin2LLZhSDZhtuM2LPYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1fY29zdHNfbW9uZXkiIG1zZ2lkPSI0OTAyNDcwMzI0MTQyMTUxMTE2Ij4i2YXZhdqp2YYg2KfYs9iqINio2LHYp9uMINi02YXYpyDZh9iy24zZhtmHINiv2KfYtNiq2Ycg2KjYp9i02K8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9hY3Rpdml0eV90aXRsZSIgbXNnaWQ9IjQ0NjUwNTUxNTcyMDk2NDg2NDEiPiLYrdin2YHYuNmHINin2YbYqNmI2YcgVVNCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfdGl0bGUiIG1zZ2lkPSI1OTAxNDU5MDQxMzk4NzUxNDk1Ij4iVVNCINmF2KrYtdmEINi02K8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMzMDg1MzgwOTQzMTY0Nzc4MzkiPiLYtNmF2Kcg2KfYsiDYt9ix24zZgiBVU0Ig2KjZhyDYsdin24zYp9mG2YfZlCDYrtmI2K8g2YXYqti12YQg2LTYr9mH4oCO2KfbjNivLiDYp9qv2LEg2YXbjOKAjtiu2YjYp9mH24zYryDZgdin24zZhOKAjtmH2Kcg2LHYpyDYqNuM2YYg2LHYp9uM2KfZhtmH2ZQg2K7ZiNivINmIINit2KfZgdi42YfZlCBVU0Ig2K/YsSBBbmRyb2lkINqp2b7bjCDaqdmG24zYr9iMINiv2qnZhdmHINiy24zYsSDYsdinINmE2YXYsyDaqdmG24zYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA1MzUxMDAwNDQ2MDM3ODExIj4i2LTZhdinINin2LIg2LfYsduM2YIgVVNCINio2Ycg2LHYp9uM2KfZhtmH2ZQg2K7ZiNivINmF2KrYtdmEINi02K/Zh+KAjtin24zYry4g2Kfar9ixINmF24zigI7YrtmI2KfZh9uM2K8g2YHYp9uM2YTigI7Zh9inINix2Kcg2KjbjNmGINix2KfbjNin2YbZh9mUINiu2YjYryDZiCDaqdin2LHYqiBTRCDYr9ixIEFuZHJvaWQg2qnZvtuMINqp2YbbjNiv2Iwg2K/aqdmF2Ycg2LLbjNixINix2Kcg2YTZhdizINqp2YbbjNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2J1dHRvbl9tb3VudCIgbXNnaWQ9IjEwNTIyNTk5MzAzNjk1MDgyMzUiPiLYsdmI2LTZhiDaqdix2K/ZhiDYr9iz2Krar9in2Ycg2LDYrtuM2LHZh+KAjNiz2KfYstuMIFVTQiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2Vycm9yX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzAxNzA0NTIxNzM2NTU0MDY1OCI+ItmH2Ybar9in2YUg2KfYs9iq2YHYp9iv2Ycg2KfYsiDYrdin2YHYuNmH2ZQgVVNCINio2LHYp9uMINit2KfZgdi42Ycg2KfZhtio2YjZhyBVU0Ig2YXYtNqp2YTbjCDYqNmI2KzZiNivINii2YXYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjg3NjAxODUxMjcxNjk3MDMxMyI+ItmH2Ybar9in2YUg2KfYs9iq2YHYp9iv2Ycg2KfYsiDaqdin2LHYqiBTRCDYqNix2KfbjCDYrdin2YHYuNmHINiw2K7bjNix2Ycg2KfZhtio2YjZhyBVU0Ig2YXYtNqp2YTbjCDYqNmI2KzZiNivINii2YXYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4MTc1ODkyNTU0NzU3MjE2NTI1Ij4iVVNCINmF2KrYtdmEINi02K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9hY3Rpdml0eV90aXRsZSIgbXNnaWQ9IjQ0NjUwNTUxNTcyMDk2NDg2NDEiPiLigI/Yrdin2YHYuNmHINin2YbYqNmI2YcgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfdGl0bGUiIG1zZ2lkPSI1OTAxNDU5MDQxMzk4NzUxNDk1Ij4i4oCPVVNCINmF2KrYtdmEINi02K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMzMDg1MzgwOTQzMTY0Nzc4MzkiPiLigI/YtNmF2Kcg2KfYsiDYt9ix24zZgiBVU0Ig2KjZhyDYsdin24zYp9mG2YfZlCDYrtmI2K8g2YXYqti12YQg2LTYr9mH4oCO2KfbjNivLiDYp9qv2LEg2YXbjOKAjtiu2YjYp9mH24zYryDZgdin24zZhOKAjtmH2Kcg2LHYpyDYqNuM2YYg2LHYp9uM2KfZhtmH2ZQg2K7ZiNivINmIINit2KfZgdi42YfZlCBVU0Ig2K/YsSBBbmRyb2lkINqp2b7bjCDaqdmG24zYr9iMINiv2qnZhdmHINiy24zYsSDYsdinINmE2YXYsyDaqdmG24zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA1MzUxMDAwNDQ2MDM3ODExIj4i4oCP2LTZhdinINin2LIg2LfYsduM2YIgVVNCINio2Ycg2LHYp9uM2KfZhtmH2ZQg2K7ZiNivINmF2KrYtdmEINi02K/Zh+KAjtin24zYry4g2Kfar9ixINmF24zigI7YrtmI2KfZh9uM2K8g2YHYp9uM2YTigI7Zh9inINix2Kcg2KjbjNmGINix2KfbjNin2YbZh9mUINiu2YjYryDZiCDaqdin2LHYqiBTRCDYr9ixIEFuZHJvaWQg2qnZvtuMINqp2YbbjNiv2Iwg2K/aqdmF2Ycg2LLbjNixINix2Kcg2YTZhdizINqp2YbbjNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2J1dHRvbl9tb3VudCIgbXNnaWQ9IjEwNTIyNTk5MzAzNjk1MDgyMzUiPiLigI/YsdmI2LTZhiDaqdix2K/ZhiDYr9iz2Krar9in2Ycg2LDYrtuM2LHZh+KAjNiz2KfYstuMIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2Vycm9yX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzAxNzA0NTIxNzM2NTU0MDY1OCI+IuKAj9mH2Ybar9in2YUg2KfYs9iq2YHYp9iv2Ycg2KfYsiDYrdin2YHYuNmH2ZQgVVNCINio2LHYp9uMINit2KfZgdi42Ycg2KfZhtio2YjZhyBVU0Ig2YXYtNqp2YTbjCDYqNmI2KzZiNivINii2YXYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjg3NjAxODUxMjcxNjk3MDMxMyI+IuKAj9mH2Ybar9in2YUg2KfYs9iq2YHYp9iv2Ycg2KfYsiDaqdin2LHYqiBTRCDYqNix2KfbjCDYrdin2YHYuNmHINiw2K7bjNix2Ycg2KfZhtio2YjZhyBVU0Ig2YXYtNqp2YTbjCDYqNmI2KzZiNivINii2YXYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4MTc1ODkyNTU0NzU3MjE2NTI1Ij4i4oCPVVNCINmF2KrYtdmEINi02K8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkzOTgyMjc4MzgyODE4Mzc2MyI+Itio2LHYp9uMINqp2b7bjCDaqdix2K/ZhiDZgdin24zZhOKAjNmH2Kcg2KfYsi/YqNmHINix2KfbjNin2YbZh9mUINiu2YjYryDZhNmF2LMg2qnZhtuM2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMzM2MDU4Mzk2NjYzNTE2MDE3Ij4i2K7Yp9mF2YjYtCDaqdix2K/ZhiDYr9iz2Krar9in2Ycg2LDYrtuM2LHZh+KAjNiz2KfYstuMIFVTQiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3Bfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIxNjU2ODUyMDk4NTU1NjIzODIyIj4i2KjYsdin24wg2LrbjNix2YHYudin2YQg2qnYsdiv2YYg2K3Yp9mB2LjZh9mUIFVTQtiMINmE2YXYsyDaqdmG24zYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX3RpdGxlIiBtc2dpZD0iNjYwMTI5ODUxNzA4Nzc1ODUzIj4i2K/Ys9iq2q/Yp9mHINiw2K7bjNix2YfigIzYs9in2LLbjCBVU0Ig2K/YsSDYrdin2YQg2KfYs9iq2YHYp9iv2Ycg2KfYs9iqIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQyNjQwMjUyODA3NzcyMTk1MjEiPiLZgtio2YQg2KfYsiDYutuM2LHZgdi52KfZhCDaqdix2K/ZhiDYrdin2YHYuNmH2ZQgVVNC2Iwg2K3Yp9mB2LjZh9mUIFVTQiDZhdix2KjZiNi3INio2YcgQW5kcm9pZCDYsdinINiv2LEg2LHYp9uM2KfZhtmH2ZQg2K7ZiNivINmE2LrZiCDZhti12Kgg2qnZhtuM2K8gKFwi2K7Yp9ix2Kwg2qnZhtuM2K9cIikuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA0Mzk2OTc4MjQ2MDYxMzExNCI+ItmC2KjZhCDYp9iyINi624zYsdmB2LnYp9mEINqp2LHYr9mGINit2KfZgdi42YfZlCBVU0LYjCDaqdin2LHYqiBTRCDZhdix2KjZiNi3INio2YcgQW5kcm9pZCDYsdinINiv2LEg2LHYp9uM2KfZhtmHINmE2LrZiCDZhti12Kgg2qnZhtuM2K8gKFwi2K7Yp9ix2Kwg2qnZhtuM2K9cIikuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9idXR0b25fbW91bnQiIG1zZ2lkPSI3MDYwMjE4MDM0OTAwNjk2MDI5Ij4i2K7Yp9mF2YjYtCDaqdix2K/ZhiDYr9iz2Krar9in2Ycg2LDYrtuM2LHZh+KAjNiz2KfYstuMIFVTQiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfZXJyb3JfbWVzc2FnZSIgbXNnaWQ9IjE5NzAzNzQ4OTgyNjMwNjM4MzYiPiLZh9mG2q/Yp9mFINi624zYsdmB2LnYp9mEINqp2LHYr9mGINit2KfZgdi42YfZlCBVU0Ig2YXYtNqp2YTbjCDYqNmI2KzZiNivINii2YXYry4g2KjYsdix2LPbjCDaqdmG24zYryDZhduM2LLYqNin2YYgVVNCINix2Kcg2YTYutmIINmG2LXYqCDaqdix2K/ZhyDYqNin2LTbjNiv2Iwg2LPZvtizINiv2YjYqNin2LHZhyDYp9mF2KrYrdin2YYg2qnZhtuM2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZGxnX2NvbmZpcm1fa2lsbF9zdG9yYWdlX3VzZXJzX3RpdGxlIiBtc2dpZD0iOTYzMDM5MDMzNDcwNDc4Njk3Ij4i2LHZiNi02YYg2qnYsdiv2YYg2K/Ys9iq2q/Yp9mHINiw2K7bjNix2YfigIzYs9in2LLbjCBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkbGdfY29uZmlybV9raWxsX3N0b3JhZ2VfdXNlcnNfdGV4dCIgbXNnaWQ9IjUxMDA0Mjg3NTcxMDc0Njk0NTQiPiLYr9ixINi12YjYsdiqINmB2LnYp9mEINqp2LHYr9mGINit2KfZgdi42YfZlCBVU0LYjCDYqNix2K7bjCDYp9iyINio2LHZhtin2YXZh+KAjtmH2KfbjNuMINqp2Ycg2KfYsiDYotmG4oCM2YfYpyDYp9iz2KrZgdin2K/ZhyDZhduM4oCO2qnZhtuM2K8g2YXYqtmI2YLZgSDZhduM4oCO2LTZiNmG2K8g2Ygg2KrYpyDYstmF2KfZhtuMINqp2Ycg2K3Yp9mB2LjZh9mUIFVTQiDYsdinINi624zYsdmB2LnYp9mEINmG2qnZhtuM2K8g2KfZhdqp2KfZhiDYp9iz2KrZgdin2K/ZhyDYp9iyINii2YbigIzZh9inINmI2KzZiNivINmG2K7ZiNin2YfYryDYr9in2LTYqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkbGdfZXJyb3JfdGl0bGUiIG1zZ2lkPSI3MzIzNjU4NDY5NjI2NTE0MjA3Ij4i2LHYp9mH4oCM2KfZhtiv2KfYstuMIFVTQiDZhtin2YXZiNmB2YIg2KjZiNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3Bfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjMzNjA1ODM5NjY2MzUxNjAxNyI+IuKAj9iu2KfZhdmI2LQg2qnYsdiv2YYg2K/Ys9iq2q/Yp9mHINiw2K7bjNix2YfigIzYs9in2LLbjCBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTY1Njg1MjA5ODU1NTYyMzgyMiI+IuKAj9io2LHYp9uMINi624zYsdmB2LnYp9mEINqp2LHYr9mGINit2KfZgdi42YfZlCBVU0LYjCDZhNmF2LMg2qnZhtuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF90aXRsZSIgbXNnaWQ9IjY2MDEyOTg1MTcwODc3NTg1MyI+IuKAj9iv2LPYqtqv2KfZhyDYsNiu24zYsdmH4oCM2LPYp9iy24wgVVNCINiv2LEg2K3Yp9mEINin2LPYqtmB2KfYr9mHINin2LPYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MjY0MDI1MjgwNzc3MjE5NTIxIj4i4oCP2YLYqNmEINin2LIg2LrbjNix2YHYudin2YQg2qnYsdiv2YYg2K3Yp9mB2LjZh9mUIFVTQtiMINit2KfZgdi42YfZlCBVU0Ig2YXYsdio2YjYtyDYqNmHIEFuZHJvaWQg2LHYpyDYr9ixINix2KfbjNin2YbZh9mUINiu2YjYryDZhNi62Ygg2YbYtdioINqp2YbbjNivIChcItiu2KfYsdisINqp2YbbjNivXCIpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgwNDM5Njk3ODI0NjA2MTMxMTQiPiLigI/Zgtio2YQg2KfYsiDYutuM2LHZgdi52KfZhCDaqdix2K/ZhiDYrdin2YHYuNmH2ZQgVVNC2Iwg2qnYp9ix2KogU0Qg2YXYsdio2YjYtyDYqNmHIEFuZHJvaWQg2LHYpyDYr9ixINix2KfbjNin2YbZhyDZhNi62Ygg2YbYtdioINqp2YbbjNivIChcItiu2KfYsdisINqp2YbbjNivXCIpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfYnV0dG9uX21vdW50IiBtc2dpZD0iNzA2MDIxODAzNDkwMDY5NjAyOSI+IuKAj9iu2KfZhdmI2LQg2qnYsdiv2YYg2K/Ys9iq2q/Yp9mHINiw2K7bjNix2YfigIzYs9in2LLbjCBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX2Vycm9yX21lc3NhZ2UiIG1zZ2lkPSIxOTcwMzc0ODk4MjYzMDYzODM2Ij4i4oCP2YfZhtqv2KfZhSDYutuM2LHZgdi52KfZhCDaqdix2K/ZhiDYrdin2YHYuNmH2ZQgVVNCINmF2LTaqdmE24wg2KjZiNis2YjYryDYotmF2K8uINio2LHYsdiz24wg2qnZhtuM2K8g2YXbjNiy2KjYp9mGIFVTQiDYsdinINmE2LrZiCDZhti12Kgg2qnYsdiv2Ycg2KjYp9i024zYr9iMINiz2b7YsyDYr9mI2KjYp9ix2Ycg2KfZhdiq2K3Yp9mGINqp2YbbjNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190aXRsZSIgbXNnaWQ9Ijk2MzAzOTAzMzQ3MDQ3ODY5NyI+IuKAj9ix2YjYtNmGINqp2LHYr9mGINiv2LPYqtqv2KfZhyDYsNiu24zYsdmH4oCM2LPYp9iy24wgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX2NvbmZpcm1fa2lsbF9zdG9yYWdlX3VzZXJzX3RleHQiIG1zZ2lkPSI1MTAwNDI4NzU3MTA3NDY5NDU0Ij4i4oCP2K/YsSDYtdmI2LHYqiDZgdi52KfZhCDaqdix2K/ZhiDYrdin2YHYuNmH2ZQgVVNC2Iwg2KjYsdiu24wg2KfYsiDYqNix2YbYp9mF2YfigI7Zh9in24zbjCDaqdmHINin2LIg2KLZhuKAjNmH2Kcg2KfYs9iq2YHYp9iv2Ycg2YXbjOKAjtqp2YbbjNivINmF2KrZiNmC2YEg2YXbjOKAjti02YjZhtivINmIINiq2Kcg2LLZhdin2YbbjCDaqdmHINit2KfZgdi42YfZlCBVU0Ig2LHYpyDYutuM2LHZgdi52KfZhCDZhtqp2YbbjNivINin2YXaqdin2YYg2KfYs9iq2YHYp9iv2Ycg2KfYsiDYotmG4oCM2YfYpyDZiNis2YjYryDZhtiu2YjYp9mH2K8g2K/Yp9i02KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX2Vycm9yX3RpdGxlIiBtc2dpZD0iNzMyMzY1ODQ2OTYyNjUxNDIwNyI+IuKAj9ix2KfZh+KAjNin2YbYr9in2LLbjCBVU0Ig2YbYp9mF2YjZgdmCINio2YjYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkbGdfb2siIG1zZ2lkPSI3Mzc2OTUzMTY3MDM5ODY1NzAxIj4i2KrYo9uM24zYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InVzYl9tdHBfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMzY5OTkxMzA5NzM5MTU1MDM5NCI+ItmF2KrYtdmEINi02K/ZhyDYqNmH4oCM2LnZhtmI2KfZhiDYr9iz2Krar9in2Ycg2LHYs9in2YbZh+KAjNin24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjE5NjA4MTcxOTIyMTYwNjQ4MzMiPiLZhdiq2LXZhCDYtNiv2Ycg2KjZh+KAjNi52YbZiNin2YYg2K/ZiNix2KjbjNmGIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXNiX2NkX2luc3RhbGxlcl9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2Nzc0NzEyODI3ODkyMDkwNzU0Ij4i2YXYqti12YQg2LTYr9mHINio2YfigIzYudmG2YjYp9mGINmG2LXYqCDaqdmG2YbYr9mHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI3ODQ4MjM2OTc0MDg3NjUzNjY2Ij4i2KjZhyDbjNqpINmI2LPbjNmE2Ycg2KzYp9mG2KjbjCBVU0Ig2YjYtdmEINi02K/ZhyDYp9iz2KoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIyMjkwODU5Mzk5OTgzNzIwMjcxIj4i2KjYsdin24wg2LPYp9uM2LEg2q/YstuM2YbZh+KAjNmH2KfbjCBVU0Ig2YTZhdizINqp2YbbjNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI5MDIwMDkyMTk2MDYxMDA3MjYyIj4i2K3Yp9mB2LjZh9mUIFVTQiDZgdix2YXYqiDYtNmI2K/YnyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2NDg0MTU5MjE1MjY1MjYwNjkiPiLaqdin2LHYqiBTRCDZgdix2YXYqiDYtNmI2K/YnyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5MzQwMTY4NTM0MjU3NjEwNzgiPiLZh9mF2Ycg2YHYp9uM2YTigIzZh9in24wg2LDYrtuM2LHZhyDYtNiv2Ycg2K/YsSDYrdin2YHYuNmH2ZQgVVNCINm+2KfaqSDYrtmI2KfZh9ivINi02K8uINin24zZhiDYudmF2YQg2LHYpyDZhtmF24zigI7YqtmI2KfZhiDYqNix2q/Ysdiv2KfZhtivISI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQxMzE4OTUwMjc1NDM4MzAiPiLYqtmF2KfZhSDYp9i32YTYp9i52KfYqiDYsdmI24wg2qnYp9ix2Kog2LTZhdinINin2LIg2KjbjNmGINmF24zigI7YsdmI2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI3ODQ4MjM2OTc0MDg3NjUzNjY2Ij4i4oCP2KjZhyDbjNqpINmI2LPbjNmE2Ycg2KzYp9mG2KjbjCBVU0Ig2YjYtdmEINi02K/ZhyDYp9iz2KoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIyMjkwODU5Mzk5OTgzNzIwMjcxIj4i4oCP2KjYsdin24wg2LPYp9uM2LEg2q/YstuM2YbZh+KAjNmH2KfbjCBVU0Ig2YTZhdizINqp2YbbjNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI5MDIwMDkyMTk2MDYxMDA3MjYyIj4i4oCP2K3Yp9mB2LjZh9mUIFVTQiDZgdix2YXYqiDYtNmI2K/YnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2NDg0MTU5MjE1MjY1MjYwNjkiPiLigI/aqdin2LHYqiBTRCDZgdix2YXYqiDYtNmI2K/YnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5MzQwMTY4NTM0MjU3NjEwNzgiPiLigI/Zh9mF2Ycg2YHYp9uM2YTigIzZh9in24wg2LDYrtuM2LHZhyDYtNiv2Ycg2K/YsSDYrdin2YHYuNmH2ZQgVVNCINm+2KfaqSDYrtmI2KfZh9ivINi02K8uINin24zZhiDYudmF2YQg2LHYpyDZhtmF24zigI7YqtmI2KfZhiDYqNix2q/Ysdiv2KfZhtivISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQxMzE4OTUwMjc1NDM4MzAiPiLigI/YqtmF2KfZhSDYp9i32YTYp9i52KfYqiDYsdmI24wg2qnYp9ix2Kog2LTZhdinINin2LIg2KjbjNmGINmF24zigI7YsdmI2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X2J1dHRvbl9mb3JtYXQiIG1zZ2lkPSI0MTMxMDY0NTYwMTI3NDc4Njk1Ij4i2YLYp9mE2KgiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhZGJfYWN0aXZlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY3MjkwNDQ3Nzg5NDkxODk5MTgiPiLYp9iq2LXYp9mEINix2YHYuSDYuduM2KggVVNCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjEwMTY2NTQ2Mjc2MjY0NzYxNDIiPiLYqNix2KfbjCDYutuM2LHZgdi52KfZhCDaqdix2K/ZhiDYp9i02qnYp9mEINiy2K/Yp9uM24wgVVNCINmE2YXYsyDaqdmG24zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGJfYWN0aXZlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY3MjkwNDQ3Nzg5NDkxODk5MTgiPiLigI/Yp9iq2LXYp9mEINix2YHYuSDYuduM2KggVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjEwMTY2NTQ2Mjc2MjY0NzYxNDIiPiLigI/YqNix2KfbjCDYutuM2LHZgdi52KfZhCDaqdix2K/ZhiDYp9i02qnYp9mEINiy2K/Yp9uM24wgVVNCINmE2YXYsyDaqdmG24zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaW5wdXRfbWV0aG9kIiBtc2dpZD0iNDY1MzM4NzMzNjc5MTIyMjk3OCI+Itin2YbYqtiu2KfYqCDYsdmI2LQg2YjYsdmI2K/bjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbmZpZ3VyZV9pbnB1dF9tZXRob2RzIiBtc2dpZD0iOTA5MTY1MjE1NzcyMjQ5NTExNiI+Itiq2YbYuNuM2YUg2LHZiNi04oCM2YfYp9uMINmI2LHZiNiv24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1c2VfcGh5c2ljYWxfa2V5Ym9hcmQiIG1zZ2lkPSI2MjAzMTEyNDc4MDk1MTE3NjI1Ij4i2LXZgdit2YfigIzaqdmE24zYryDZgduM2LLbjNqp24wiPC9zdHJpbmc+CkBAIC0xMjcxLDM0ICsxMjc4LDM0IEBACiAgICAgPHN0cmluZyBuYW1lPSJmYXN0X3Njcm9sbF9hbHBoYWJldCIgbXNnaWQ9IjU0MzMyNzU0ODU0OTkwMzkxOTkiPiIgQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJmYXN0X3Njcm9sbF9udW1lcmljX2FscGhhYmV0IiBtc2dpZD0iNDAzMDE3MDUyNDU5NTEyMzYxMCI+IiAwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjYW5kaWRhdGVzX3N0eWxlIiBtc2dpZD0iNDMzMzkxMzA4OTYzNzA2MjI1NyI+PHU+Itiv2KfZiNi32YTYqNuM2YYiPC91Pjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNDQ5ODE2MDA1MzUxNDY4NTYwIj4i2KLZhdin2K/ZhyDYs9in2LLbjCDYrdin2YHYuNmH2ZQgVVNCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU0NTc2MDM0MTg5NzA5OTQwNTAiPiLYotmF2KfYr9mHINqp2LHYr9mGINqp2KfYsdiqIFNEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNDQ5ODE2MDA1MzUxNDY4NTYwIj4i4oCP2KLZhdin2K/ZhyDYs9in2LLbjCDYrdin2YHYuNmH2ZQgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU0NTc2MDM0MTg5NzA5OTQwNTAiPiLigI/YotmF2KfYr9mHINqp2LHYr9mGINqp2KfYsdiqIFNEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iODI4NzMxOTg4MjkyNjczNzA1MyI+Itio2LHYsdiz24wg2K7Yt9in2YfYpy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzc4ODA0MDc0NTY4NjIyOTMwNyI+Itit2KfZgdi42YfZlCBVU0Ig2K7Yp9mE24wiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3ODA0Nzc4MzgyNDEyMTI5OTciPiLaqdin2LHYqiBTRCDYrtin2YTbjCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc4NDAxMjEwNjc0MjcyNjk1MDAiPiLYrdin2YHYuNmH2ZQgVVNCINiu2KfZhNuMINin2LPYqiDbjNinINiv2KfYsdin24wg2LPbjNiz2KrZhSDZgdin24zZhCDZvti02KrbjNio2KfZhtuMINmG2LTYr9mHINin2LPYqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2NDEwNjU2NDE3ODY5MjM2MDQiPiLaqdin2LHYqiBTRCDYrtin2YTbjCDYp9iz2Kog24zYpyDYr9in2LHYp9uMINiz24zYs9iq2YUg2YHYp9uM2YQg2b7YtNiq24zYqNin2YbbjCDZhti02K/ZhyDYp9iz2KouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIyMDkwMDQ2NzY5NTMyNzEzNTYzIj4i2K3Yp9mB2LjZh9mUIFVTQiDYrtix2KfYqCDYtNiv2YciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjQxMDcyMzkwNjAxOTEwMDE4OSI+Itqp2KfYsdiqIFNEINii2LPbjNioINiv24zYr9mHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE3OTU5MTc1NzgzOTUzMzMyODAiPiLYrdin2YHYuNmH2ZQgVVNCINiu2LHYp9ioINin2LPYqi4g2LPYuduMINqp2YbbjNivINii2YbYsdinINiv2YjYqNin2LHZhyDZgdix2YXYqiDaqdmG24zYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNzUzODk4NTY3NTI1NTY4MjUzIj4i2qnYp9ix2KogU0Qg2K7Ysdin2Kgg2KfYs9iqLiDYs9i524wg2qnZhtuM2K8g2KLZhtix2Kcg2K/ZiNio2KfYsdmHINmB2LHZhdiqINqp2YbbjNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIxNjYxNjgzMDMxMzMwOTUxMDczIj4i2K3Yp9mB2LjZh9mUIFVTQiDYqNmHINi12YjYsdiqINi624zYsdmF2YbYqti42LHZhyDYrNiv2Kcg2LTYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NzIxNTI4ODI2MDQ0MDc4MzciPiLaqdin2LHYqiBTRCDYqNmHINi12YjYsdiqINi624zYsdmF2YbYqti42LHZh+KAjNin24wg2KzYr9inINi02K8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MzI5ODQ4ODE5ODY1NTk0MjQxIj4i2KfYqti12KfZhCDYrdin2YHYuNmH2ZQgVVNCINix2Kcg2YLYqNmEINin2LIg2KjbjNix2YjZhiDYotmI2LHYr9mGINmC2LfYuSDaqdmG24zYryDYqtinINiz2KjYqCDYp9iyINio24zZhiDYsdmB2KrZhiDYr9in2K/Zh+KAjNmH2Kcg2YbYtNmI2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjYwMTgzMjkzNzQ3NDQ4MjQxIj4i2qnYp9ix2KogU0Qg2LHYpyDZgtio2YQg2KfYsiDYqNuM2LHZiNmGINii2YjYsdiv2YYg2KzYr9inINqp2YbbjNivINiq2Kcg2LPYqNioINin2LIg2KjbjNmGINix2YHYqtmGINiv2KfYr9mH4oCM2YfYpyDZhti02YjYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzOTY3OTczODkzMjcwMzYwMjMwIj4i2K3Yp9mB2LjZh9mUIFVTQiDYsdinINmF24zigIzYqtmI2KfZhtuM2K8g2KjYpyDYp9uM2YXZhtuMINis2K/YpyDaqdmG24zYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjcyOTgwMTEzMDc5MDYxNjIwMCI+Itqp2KfYsdiqIFNEINix2Kcg2YXbjOKAjNiq2YjYp9mGINio2Kcg2KfZhdmG24zYqiDaqdin2YXZhCDYrNiv2Kcg2qnYsdivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MTQyMTk1MzYxNjA2NDkzNTMwIj4i2LTZhdinINmF24zigIzYqtmI2KfZhtuM2K8g2K3Yp9mB2LjZh9mUIFVTQiDYsdinINio2Kcg2KfYt9mF24zZhtin2YYg2KzYr9inINqp2YbbjNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Njg4NDEyNzgxMzgzNzc2MDQiPiLaqdin2LHYqiBTRCDYsdinINmF24zigIzYqtmI2KfZhtuM2K8g2KjYpyDYp9mF2YbbjNiqINqp2KfZhdmEINiu2KfYsdisINqp2YbbjNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0NDg2Mzc3MjMwMTQwMjI3NjUxIj4i2KzYr9inINqp2LHYr9mGINit2KfZgdi42YfZlCBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4OTAyNTE4MDMwNDA0MzgxMzE4Ij4i2qnYp9ix2KogU0Qg2K3YsNmBINi02K/ZhyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjY5MjExMjYxNjI1ODA1NzQxNDMiPiLYrdin2YHYuNmH2ZQgVVNCINis2K/YpyDYtNivLiDbjNqpINix2LPYp9mG2Ycg2KzYr9uM2K8g2YXYqti12YQg2qnZhtuM2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzODcwMTIwNjUyOTgzNjU5NjQxIj4i2qnYp9ix2KogU0Qg2KzYr9inINi02K8uINuM2qkg2qnYp9ix2Kog2KzYr9uM2K8g2YjYp9ix2K8g2qnZhtuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc3ODgwNDA3NDU2ODYyMjkzMDciPiLigI/Yrdin2YHYuNmH2ZQgVVNCINiu2KfZhNuMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzgwNDc3ODM4MjQxMjEyOTk3Ij4i4oCP2qnYp9ix2KogU0Qg2K7Yp9mE24wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3ODQwMTIxMDY3NDI3MjY5NTAwIj4i4oCP2K3Yp9mB2LjZh9mUIFVTQiDYrtin2YTbjCDYp9iz2Kog24zYpyDYr9in2LHYp9uMINiz24zYs9iq2YUg2YHYp9uM2YQg2b7YtNiq24zYqNin2YbbjCDZhti02K/ZhyDYp9iz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NjQxMDY1NjQxNzg2OTIzNjA0Ij4i4oCP2qnYp9ix2KogU0Qg2K7Yp9mE24wg2KfYs9iqINuM2Kcg2K/Yp9ix2KfbjCDYs9uM2LPYqtmFINmB2KfbjNmEINm+2LTYqtuM2KjYp9mG24wg2YbYtNiv2Ycg2KfYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjA5MDA0Njc2OTUzMjcxMzU2MyI+IuKAj9it2KfZgdi42YfZlCBVU0Ig2K7Ysdin2Kgg2LTYr9mHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY0MTA3MjM5MDYwMTkxMDAxODkiPiLigI/aqdin2LHYqiBTRCDYotiz24zYqCDYr9uM2K/ZhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIxNzk1OTE3NTc4Mzk1MzMzMjgwIj4i4oCP2K3Yp9mB2LjZh9mUIFVTQiDYrtix2KfYqCDYp9iz2KouINiz2LnbjCDaqdmG24zYryDYotmG2LHYpyDYr9mI2KjYp9ix2Ycg2YHYsdmF2Kog2qnZhtuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTc1Mzg5ODU2NzUyNTU2ODI1MyI+IuKAj9qp2KfYsdiqIFNEINiu2LHYp9ioINin2LPYqi4g2LPYuduMINqp2YbbjNivINii2YbYsdinINiv2YjYqNin2LHZhyDZgdix2YXYqiDaqdmG24zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMTY2MTY4MzAzMTMzMDk1MTA3MyI+IuKAj9it2KfZgdi42YfZlCBVU0Ig2KjZhyDYtdmI2LHYqiDYutuM2LHZhdmG2KrYuNix2Ycg2KzYr9inINi02K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODcyMTUyODgyNjA0NDA3ODM3Ij4i4oCP2qnYp9ix2KogU0Qg2KjZhyDYtdmI2LHYqiDYutuM2LHZhdmG2KrYuNix2YfigIzYp9uMINis2K/YpyDYtNivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDMyOTg0ODgxOTg2NTU5NDI0MSI+IuKAj9in2KrYtdin2YQg2K3Yp9mB2LjZh9mUIFVTQiDYsdinINmC2KjZhCDYp9iyINio24zYsdmI2YYg2KLZiNix2K/ZhiDZgti32Lkg2qnZhtuM2K8g2KrYpyDYs9io2Kgg2KfYsiDYqNuM2YYg2LHZgdiq2YYg2K/Yp9iv2YfigIzZh9inINmG2LTZiNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzI2MDE4MzI5Mzc0NzQ0ODI0MSI+IuKAj9qp2KfYsdiqIFNEINix2Kcg2YLYqNmEINin2LIg2KjbjNix2YjZhiDYotmI2LHYr9mGINis2K/YpyDaqdmG24zYryDYqtinINiz2KjYqCDYp9iyINio24zZhiDYsdmB2KrZhiDYr9in2K/Zh+KAjNmH2Kcg2YbYtNmI2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzk2Nzk3Mzg5MzI3MDM2MDIzMCI+IuKAj9it2KfZgdi42YfZlCBVU0Ig2LHYpyDZhduM4oCM2KrZiNin2YbbjNivINio2Kcg2KfbjNmF2YbbjCDYrNiv2Kcg2qnZhtuM2K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY3Mjk4MDExMzA3OTA2MTYyMDAiPiLigI/aqdin2LHYqiBTRCDYsdinINmF24zigIzYqtmI2KfZhiDYqNinINin2YXZhtuM2Kog2qnYp9mF2YQg2KzYr9inINqp2LHYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE0MjE5NTM2MTYwNjQ5MzUzMCI+IuKAj9i02YXYpyDZhduM4oCM2KrZiNin2YbbjNivINit2KfZgdi42YfZlCBVU0Ig2LHYpyDYqNinINin2LfZhduM2YbYp9mGINis2K/YpyDaqdmG24zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTY4ODQxMjc4MTM4Mzc3NjA0Ij4i4oCP2qnYp9ix2KogU0Qg2LHYpyDZhduM4oCM2KrZiNin2YbbjNivINio2Kcg2KfZhdmG24zYqiDaqdin2YXZhCDYrtin2LHYrCDaqdmG24zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDQ4NjM3NzIzMDE0MDIyNzY1MSI+IuKAj9is2K/YpyDaqdix2K/ZhiDYrdin2YHYuNmH2ZQgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODkwMjUxODAzMDQwNDM4MTMxOCI+IuKAj9qp2KfYsdiqIFNEINit2LDZgSDYtNiv2YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2OTIxMTI2MTYyNTgwNTc0MTQzIj4i4oCP2K3Yp9mB2LjZh9mUIFVTQiDYrNiv2Kcg2LTYry4g24zaqSDYsdiz2KfZhtmHINis2K/bjNivINmF2KrYtdmEINqp2YbbjNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzg3MDEyMDY1Mjk4MzY1OTY0MSI+IuKAj9qp2KfYsdiqIFNEINis2K/YpyDYtNivLiDbjNqpINqp2KfYsdiqINis2K/bjNivINmI2KfYsdivINqp2YbbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2xpc3RfZW1wdHkiIG1zZ2lkPSIxNjc1Mzg4MzMwNzg2ODQxMDY2Ij4i2YHYudin2YTbjNiq24wg2YXYt9in2KjZgiDYqNinINin24zZhiDZhdmI2LHYryDbjNin2YHYqiDZhti02K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wa2dVc2FnZVN0YXRzIiBtc2dpZD0iODc4NzM1MjA3NDMyNjc0ODg5MiI+Itio2YfigIzYsdmI2LLYsdiz2KfZhtuMINii2YXYp9ixINmF2LHYqNmI2Lcg2KjZhyDYp9iz2KrZgdin2K/ZhyDZhdik2YTZgdmHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGtnVXNhZ2VTdGF0cyIgbXNnaWQ9IjExMDY2MTI0MjQyNTQyNzc2MzAiPiLYqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KLZhdin2LEg2KzZhdi54oCO2KLZiNix24wg2LTYr9mHINqp2KfYsdio2LHYryDZgti32LnZhyDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiDYqNix2KfbjCDYp9iz2KrZgdin2K/ZhyDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YbbjNiz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGtnVXNhZ2VTdGF0cyIgbXNnaWQ9IjExMDY2MTI0MjQyNTQyNzc2MzAiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KLZhdin2LEg2KzZhdi54oCO2KLZiNix24wg2LTYr9mHINqp2KfYsdio2LHYryDZgti32LnZhyDYsdinINiq2LrbjNuM2LEg2K/Zh9ivLiDYqNix2KfbjCDYp9iz2KrZgdin2K/ZhyDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YbbjNiz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzNDEwMzYzMTEyMTE0MDY2OTIiPiLaqdm+24wg2qnYsdiv2YYg2YXYrdiq2YjYpyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvcHlQcm90ZWN0ZWREYXRhIiBtc2dpZD0iNDM5MDY5NzEyNDI4ODMxNzgzMSI+Itio2Ycg2KjYsdmG2KfZhdmHINin2KzYp9iy2Ycg2YXbjOKAjtiv2YfYryDYqtinINiz2LHZiNuM2LMg2b7bjNi04oCM2YHYsdi2INix2Kcg2YHYsdin2K7ZiNin2YbbjCDaqdmG2K8g2Ygg2YXYrdiq2YjYpyDYsdinINqp2b7bjCDaqdmG2K8uINio2LHYp9uMINin2LPYqtmB2KfYr9mHINio2LHZhtin2YXZh+KAjtmH2KfbjCDYudin2K/bjCDZhdmI2LHYryDZhtuM2KfYsiDZhtuM2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzOTA2OTcxMjQyODgzMTc4MzEiPiLigI/YqNmHINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigI7Yr9mH2K8g2KrYpyDYs9ix2YjbjNizINm+24zYtOKAjNmB2LHYtiDYsdinINmB2LHYp9iu2YjYp9mG24wg2qnZhtivINmIINmF2K3YqtmI2Kcg2LHYpyDaqdm+24wg2qnZhtivLiDYqNix2KfbjCDYp9iz2KrZgdin2K/ZhyDYqNix2YbYp9mF2YfigI7Zh9in24wg2LnYp9iv24wg2YXZiNix2K8g2YbbjNin2LIg2YbbjNiz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yb3V0ZV9tZWRpYV9vdXRwdXQiIG1zZ2lkPSIxNjQyMDI0NDU1NzUwNDE0Njk0Ij4i2KrYuduM24zZhiDZhdiz24zYsSDYrtix2YjYrNuMINix2LPYp9mG2YciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yb3V0ZV9tZWRpYV9vdXRwdXQiIG1zZ2lkPSI0OTMyODE4NzQ5NTQ3MjQ0MzQ2Ij4i2KjZhyDbjNqpINio2LHZhtin2YXZhyDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2K7YsdmI2KzbjCDYsdiz2KfZhtmHINix2Kcg2KjZhyDYr9iz2Krar9in2YfigIzZh9in24wg2K7Yp9ix2KzbjCDYr9uM2q/YsSDYqti524zbjNmGINmF2LPbjNixINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc19rZXlndWFyZF9zZWN1cmVfc3RvcmFnZSIgbXNnaWQ9Ijc1NjU1NTIyMzc5Nzc4MTUwNDciPiLYr9iz2KrYsdiz24wg2KjZhyDZgdi22KfbjCDYsNiu24zYsdmH4oCM2LPYp9iy24wg2KfbjNmF2YYg2YXYrdin2YHYuCDaqdmE24zYryI8L3N0cmluZz4KQEAgLTEzMjksMTMgKzEzMzYsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9IndhbGxwYXBlcl9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMTI0MDA4Nzg0NDMwNDY4NzY2MiI+Itiq2LXZiNuM2LEg2LLZhduM2YbZhyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNob29zZXJfd2FsbHBhcGVyIiBtc2dpZD0iNzg3MzQ3NjE5OTI5NTE5MDI3OSI+Itiq2LrbjNuM2LEg2KrYtdmI24zYsSDYstmF24zZhtmHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibm90aWZpY2F0aW9uX2xpc3RlbmVyX2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSIyMDE0MTYyODM1NDgxOTA2NDI5Ij4i2LTZhtmI2YbYr9mHINin2LnZhNin2YYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ2cG5fdGl0bGUiIG1zZ2lkPSIxOTYxNTIxMzU1MjA0MjgyNyI+IlZQTiDZgdi52KfZhCDYtNivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idnBuX3RpdGxlX2xvbmciIG1zZ2lkPSI2NDAwNzE0Nzk4MDQ5MjUyMjk0Ij4iVlBOINiq2YjYs9i3IDx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiDZgdi52KfZhCDYtNiv2Ycg2KfYs9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RpdGxlIiBtc2dpZD0iMTk2MTUyMTM1NTIwNDI4MjciPiLigI9WUE4g2YHYudin2YQg2LTYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90aXRsZV9sb25nIiBtc2dpZD0iNjQwMDcxNDc5ODA0OTI1MjI5NCI+IuKAj1ZQTiDYqtmI2LPYtyA8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g2YHYudin2YQg2LTYr9mHINin2LPYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InZwbl90ZXh0IiBtc2dpZD0iMzAxMTMwNjYwNzEyNjQ1MDMyMiI+Itio2LHYp9uMINmF2K/bjNix24zYqiDYtNio2qnZhyDZhNmF2LMg2qnZhtuM2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idnBuX3RleHRfbG9uZyIgbXNnaWQ9IjY0MDczNTEwMDYyNDkxNzQ0NzMiPiLYqNmHIDx4bGlmZjpnIGlkPSJTRVNTSU9OIj4lczwveGxpZmY6Zz4g2YjYtdmEINi02K8uINio2LHYp9uMINmF2K/bjNix24zYqiDYtNio2qnZhyDZhNmF2LMg2qnZhtuM2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Nvbm5lY3RpbmciIG1zZ2lkPSI2NDQzNDM4OTY0NDQwOTYwNzQ1Ij4i2K/YsSDYrdin2YQg2KfYqti12KfZhCBWUE4g2YfZhduM2LTZhyDZgdi52KfZhOKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0ZWQiIG1zZ2lkPSI4MjAyNjc5Njc0ODE5MjEzOTMxIj4iVlBOINmH2YXbjNi02Ycg2YHYudin2YQg2YXYqti12YQg2LTYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9lcnJvciIgbXNnaWQ9IjYwMDkyNDk4MTQwMzQ3MDgxNzUiPiLYrti32KfbjCBWUE4g2YfZhduM2LTZhyDZgdi52KfZhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0aW5nIiBtc2dpZD0iNjQ0MzQzODk2NDQ0MDk2MDc0NSI+IuKAj9iv2LEg2K3Yp9mEINin2KrYtdin2YQgVlBOINmH2YXbjNi02Ycg2YHYudin2YTigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29ubmVjdGVkIiBtc2dpZD0iODIwMjY3OTY3NDgxOTIxMzkzMSI+IuKAj1ZQTiDZh9mF24zYtNmHINmB2LnYp9mEINmF2KrYtdmEINi02K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fZXJyb3IiIG1zZ2lkPSI2MDA5MjQ5ODE0MDM0NzA4MTc1Ij4i4oCP2K7Yt9in24wgVlBOINmH2YXbjNi02Ycg2YHYudin2YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29uZmlnIiBtc2dpZD0iNjQxNTg5OTE1MDY3MTUzNzk3MCI+Itio2LHYp9uMINm+24zaqdix2KjZhtiv24wg2YTZhdizINqp2YbbjNivIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXBsb2FkX2ZpbGUiIG1zZ2lkPSIyODk3OTU3MTcyMzY2NzMwNDE2Ij4i2KfZhtiq2K7Yp9ioINmB2KfbjNmEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibm9fZmlsZV9jaG9zZW4iIG1zZ2lkPSI2MzYzNjQ4NTYyMTcwNzU5NDY1Ij4i2YfbjNqGINmB2KfbjNmE24wg2KfZhtiq2K7Yp9ioINmG2LTYryI8L3N0cmluZz4KQEAgLTEzNTksMTggKzEzNjYsMTggQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NjQxODcyNzk3MDY3NjA5MTc3Ij4iPHhsaWZmOmcgaWQ9IklOREVYIj4lZDwveGxpZmY6Zz4g2KfYsiA8eGxpZmY6ZyBpZD0iVE9UQUwiPiVkPC94bGlmZjpnPiI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9tb2RlX2RvbmUiIG1zZ2lkPSI3MjE3NTgxNjQwNDYxOTIyMjg5Ij4i2KfZhtis2KfZhSDYtNivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfdW5tb3VudGluZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzOTIzODEwNDQ4NTA3NjEyNzQ2Ij4i2K/YsSDYrdin2YQg2YTYutmIINmG2LXYqCDYrdin2YHYuNmH2ZQgVVNCLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfdW5tb3VudGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjEzMjc4OTQ5OTg0MDk1MzcxOTAiPiLYr9ixINit2KfZhCDZhNi62Ygg2YbYtdioINqp2KfYsdiqIFNELi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfZXJhc2luZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0NTIxNTczMzIxNTI0MzQwMDU4Ij4i2K/YsSDYrdin2YQg2b7Yp9qpINqp2LHYr9mGINit2KfZgdi42YfZlCBVU0IuLi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc19lcmFzaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjU5Njk4ODg3NTUwNzA0MzA0MiI+Itiv2LEg2K3Yp9mEINm+2KfaqSDaqdix2K/ZhiDaqdin2LHYqiBTRC4uLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImZvcm1hdF9lcnJvciIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2Mjk5NzY5NTYzNjI0Nzc2OTQ4Ij4i2b7Yp9qpINqp2LHYr9mGINmF2K3ZhCDYsNiu24zYsdmHICBVU0Ig2YXZhdqp2YYg2YbbjNiz2KouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzMxNTI0ODY5NjY0NDUxMDkzNSI+Itm+2KfaqSDaqdix2K/ZhiDaqdin2LHYqiBTRCDZhdmF2qnZhiDZhtuM2LPYqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJtZWRpYV9iYWRfcmVtb3ZhbCIgbXNnaWQ9Ijc5NjA4NjQwNjEwMTY2MDMyODEiPiLaqdin2LHYqiBTRCDZgtio2YQg2KfYsiDZgti32Lkg2KfYqti12KfZhCDYp9iyINiv2LPYqtqv2KfZhyDYrtin2LHYrCDYtNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2NoZWNraW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQxODE4ODcyMDAwOTU2OTY5MyI+Itit2KfZgdi42YfZlCBVU0Ig2KfaqdmG2YjZhiDYr9ixINit2KfZhCDYqNix2LHYs9uMINi02K/ZhiDYp9iz2KouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfY2hlY2tpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MzM0NzYyNTAzOTA0ODI3NDgxIj4i2qnYp9ix2KogU0Qg2K/YsSDYrdin2YQg2K3Yp9i22LEg2K/YsSDYrdin2YQg2KjYsdix2LPbjCDYp9iz2KouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcmVtb3ZlZCIgbXNnaWQ9IjcwMDE1MjY5MDUwNTc5NTIwOTciPiLaqdin2LHYqiBTRCDYrdiw2YEg2LTYr9mHINin2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc191bm1vdW50aW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5MjM4MTA0NDg1MDc2MTI3NDYiPiLigI/Yr9ixINit2KfZhCDZhNi62Ygg2YbYtdioINit2KfZgdi42YfZlCBVU0IuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc191bm1vdW50aW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTMyNzg5NDk5ODQwOTUzNzE5MCI+IuKAj9iv2LEg2K3Yp9mEINmE2LrZiCDZhti12Kgg2qnYp9ix2KogU0QuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc19lcmFzaW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ1MjE1NzMzMjE1MjQzNDAwNTgiPiLigI/Yr9ixINit2KfZhCDZvtin2qkg2qnYsdiv2YYg2K3Yp9mB2LjZh9mUIFVTQi4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX2VyYXNpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NTk2OTg4ODc1NTA3MDQzMDQyIj4i4oCP2K/YsSDYrdin2YQg2b7Yp9qpINqp2LHYr9mGINqp2KfYsdiqIFNELi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyOTk3Njk1NjM2MjQ3NzY5NDgiPiLigI/Zvtin2qkg2qnYsdiv2YYg2YXYrdmEINiw2K7bjNix2YcgIFVTQiDZhdmF2qnZhiDZhtuM2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmb3JtYXRfZXJyb3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MzE1MjQ4Njk2NjQ0NTEwOTM1Ij4i4oCP2b7Yp9qpINqp2LHYr9mGINqp2KfYsdiqIFNEINmF2YXaqdmGINmG24zYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2JhZF9yZW1vdmFsIiBtc2dpZD0iNzk2MDg2NDA2MTAxNjYwMzI4MSI+IuKAj9qp2KfYsdiqIFNEINmC2KjZhCDYp9iyINmC2LfYuSDYp9iq2LXYp9mEINin2LIg2K/Ys9iq2q/Yp9mHINiu2KfYsdisINi02K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfY2hlY2tpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDE4MTg4NzIwMDA5NTY5NjkzIj4i4oCP2K3Yp9mB2LjZh9mUIFVTQiDYp9qp2YbZiNmGINiv2LEg2K3Yp9mEINio2LHYsdiz24wg2LTYr9mGINin2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9jaGVja2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMzQ3NjI1MDM5MDQ4Mjc0ODEiPiLigI/aqdin2LHYqiBTRCDYr9ixINit2KfZhCDYrdin2LbYsSDYr9ixINit2KfZhCDYqNix2LHYs9uMINin2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yZW1vdmVkIiBtc2dpZD0iNzAwMTUyNjkwNTA1Nzk1MjA5NyI+IuKAj9qp2KfYsdiqIFNEINit2LDZgSDYtNiv2Ycg2KfYs9iqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3NoYXJlZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI1ODMwODE0MzQ5MjUwODM0MjI1Ij4i2K3Yp9mB2LjZhyDYr9ixINit2KfZhCDYrdin2LbYsSDYqtmI2LPYtyDYsdin24zYp9mG2Ycg2K/bjNqv2LHbjCDYp9iz2KrZgdin2K/ZhyDZhduM4oCM2LTZiNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3NoYXJlZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MDYxMzA1NjgxMzM1NDA0MzUiPiLaqdin2LHYqiBTRCDYr9ixINit2KfZhCDYrdin2LbYsSDYqtmI2LPYtyDbjNqpINix2KfbjNin2YbZhyDYr9ixINit2KfZhCDYp9iz2KrZgdin2K/ZhyDYp9iz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfc2hhcmVkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTcwNjEzMDU2ODEzMzU0MDQzNSI+IuKAj9qp2KfYsdiqIFNEINiv2LEg2K3Yp9mEINit2KfYttixINiq2YjYs9i3INuM2qkg2LHYp9uM2KfZhtmHINiv2LEg2K3Yp9mEINin2LPYqtmB2KfYr9mHINin2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWRpYV91bmtub3duX3N0YXRlIiBtc2dpZD0iNzI5MTkyNzgyMTk3MjkwMzg1Ij4i2LHYs9in2YbZhyDYrtin2LHYrNuMINiv2LEg2K3Yp9mE2Kog2YbYp9i02YbYp9izINin2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZSIgbXNnaWQ9IjE3Nzg2ODY2MTgyMzAwMTE5NjQiPiLYp9i02KrYsdin2qnigIzar9iw2KfYsduMIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZmluZCIgbXNnaWQ9IjQ4MDgyNzA5MDAzMjI5ODU5NjAiPiLbjNin2YHYqtmGIjwvc3RyaW5nPgpAQCAtMTM4Myw3ICsxMzkwLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmWWVzIiBtc2dpZD0iMjM0NjU2NjA3Mjg2NzIxMzU2MyI+Itio2YTZhyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmTm8iIG1zZ2lkPSIxMTQ2NTY0OTM3MzQ2NDU0ODY1Ij4i2K7bjNixIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzIiBtc2dpZD0iNTI5NjMyMTg1MDY2Mjc0Njg5MCI+Itin2LIg2K3YryDZhdis2KfYsiDYrdiw2YEg2YHYsdin2KrYsSDYsdmB2KoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzeW5jX3Rvb19tYW55X2RlbGV0ZXNfZGVzYyIgbXNnaWQ9IjQ5NjU1MTY3MTAwODY5NDI0NSI+Ijx4bGlmZjpnIGlkPSJOVU1CRVJfT0ZfREVMRVRFRF9JVEVNUyI+JTEkZDwveGxpZmY6Zz4g2YXZiNix2K8g2K3YsNmBINi02K/ZhyDYqNix2KfbjCA8eGxpZmY6ZyBpZD0iVFlQRV9PRl9TWU5DIj4lMiRzPC94bGlmZjpnPtiMINit2LPYp9ioIDx4bGlmZjpnIGlkPSJBQ0NPVU5UX05BTUUiPiUzJHM8L3hsaWZmOmc+INmI2KzZiNivINiv2KfYsdivLiDZhduM4oCO2K7ZiNin2YfbjNivINqG2Ycg2qnYp9ix24wg2KfZhtis2KfZhSDYr9mH24zYr9ifIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzX2Rlc2MiIG1zZ2lkPSI0OTY1NTE2NzEwMDg2OTQyNDUiPiLigI88eGxpZmY6ZyBpZD0iTlVNQkVSX09GX0RFTEVURURfSVRFTVMiPiUxJGQ8L3hsaWZmOmc+INmF2YjYsdivINit2LDZgSDYtNiv2Ycg2KjYsdin24wgPHhsaWZmOmcgaWQ9IlRZUEVfT0ZfU1lOQyI+JTIkczwveGxpZmY6Zz7YjCDYrdiz2KfYqCA8eGxpZmY6ZyBpZD0iQUNDT1VOVF9OQU1FIj4lMyRzPC94bGlmZjpnPiDZiNis2YjYryDYr9in2LHYry4g2YXbjOKAjtiu2YjYp9mH24zYryDahtmHINqp2KfYsduMINin2YbYrNin2YUg2K/Zh9uM2K/YnyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN5bmNfcmVhbGx5X2RlbGV0ZSIgbXNnaWQ9IjI1NzI2MDAxMDMxMjI1OTYyNDMiPiLYrdiw2YEg2YXZiNin2LHYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN5bmNfdW5kb19kZWxldGVzIiBtc2dpZD0iMjk0MTMxNzM2MDYwMDMzODYwMiI+ItmE2LrZiCDZhdmI2KfYsdivINit2LDZgSDYtNiv2YciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzeW5jX2RvX25vdGhpbmciIG1zZ2lkPSIzNzQzNzY0NzQwNDMwODIxODQ1Ij4i2KfaqdmG2YjZhiDaqdin2LHbjCDYp9mG2KzYp9mFINmG2LTZiNivIjwvc3RyaW5nPgpAQCAtMTQxNCw2ICsxNDIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRW50ZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiLYp9mG2KrYrtin2Kgg2KjYsdmG2KfZhdmHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4i2LHYp9mH4oCM2KfZhtiv2KfYstuMIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4g2KfZhtis2KfZhSDZhti02K8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiLYp9i02KrYsdin2qnigIzar9iw2KfYsduMINio2KciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4i2KfYtNiq2LHYp9qp4oCM2q/YsNin2LHbjCDYqNinIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4i2KfZh9ix2YUg2qnZhtiq2LHZhCDYrdix2qnYqi4g2YTZhdizINqp2LHYr9mHINmIINmG2q/Zh9iv2KfYsduM2K8uIjwvc3RyaW5nPgpAQCAtMTQzNSwyMCArMTQ0MywyMCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX2Rlc2NyaXB0aW9uX2Zvcm1hdCIgbXNnaWQ9Ijc5NjU5ODQzNjA5MDM2OTM5MDMiPiLigI4lMSRzLCAlMiRzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX3N1YnRpdGxlX2Rlc2NyaXB0aW9uX2Zvcm1hdCIgbXNnaWQ9IjY5ODU1NDY1MzA0NzE3ODA3MjciPiLigI4lMSRzLCAlMiRzLCAlMyRzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RvcmFnZV9pbnRlcm5hbCIgbXNnaWQ9IjQ4OTE5MTY4MzM2NTc5MjkyNjMiPiLYrdin2YHYuNmH2ZQg2K/Yp9iu2YTbjCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2Vfc2RfY2FyZCIgbXNnaWQ9IjMyODI5NDg4NjEzNzgyODY3NDUiPiLaqdin2LHYqiBTRCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfdXNiIiBtc2dpZD0iMzAxNzk1NDA1OTUzODUxNzI3OCI+Itit2KfZgdi42YfZlCBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3NkX2NhcmQiIG1zZ2lkPSIzMjgyOTQ4ODYxMzc4Mjg2NzQ1Ij4i4oCP2qnYp9ix2KogU0QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3VzYiIgbXNnaWQ9IjMwMTc5NTQwNTk1Mzg1MTcyNzgiPiLigI/Yrdin2YHYuNmH2ZQgVVNCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXh0cmFjdF9lZGl0X21lbnVfYnV0dG9uIiBtc2dpZD0iODk0MDQ3ODczMDQ5NjYxMDEzNyI+ItmI24zYsdin24zYtCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2FybmluZ190aXRsZSIgbXNnaWQ9IjE5NTU2Mzg4NjIxMjIyMzIzNDIiPiLZh9i02K/Yp9ixINmF24zYstin2YYg2KfYs9iq2YHYp9iv2Ycg2KfYsiDYr9in2K/ZhyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2FybmluZ19ib2R5IiBtc2dpZD0iMjgxNDY3MzU1MTQ3MTk2OTk1NCI+Itio2LHYp9uMINmF2LTYp9mH2K/ZhyDaqdin2LHYqNix2K8g2Ygg2KrZhti424zZhdin2Kog2YTZhdizINqp2YbbjNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfM2dfbGltaXRfdGl0bGUiIG1zZ2lkPSI3MDkzMzM0NDE5NTE4NzA2Njg2Ij4i2K/Yp9iv2YfigIzZh9in24wgMkctM0cg2LrbjNix2YHYudin2YQg2LTYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfNGdfbGltaXRfdGl0bGUiIG1zZ2lkPSI3NjM2NDg5NDM2ODE5NDcwNzYxIj4i2K/Yp9iv2YcgNEcg2LrbjNixINmB2LnYp9mEINi02K/ZhyDYp9iz2KoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzA5MzMzNDQxOTUxODcwNjY4NiI+IuKAj9iv2KfYr9mH4oCM2YfYp9uMIDJHLTNHINi624zYsdmB2LnYp9mEINi02K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzRnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzYzNjQ4OTQzNjgxOTQ3MDc2MSI+IuKAj9iv2KfYr9mHIDRHINi624zYsSDZgdi52KfZhCDYtNiv2Ycg2KfYs9iqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9tb2JpbGVfbGltaXRfdGl0bGUiIG1zZ2lkPSI3ODY5NDAyNTE5MzkxNjMxODg0Ij4i2K/Yp9iv2YfigIzZh9in24wg2KrZhNmB2YYg2YfZhdix2KfZhyDYutuM2LHZgdi52KfZhCDYtNivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93aWZpX2xpbWl0X3RpdGxlIiBtc2dpZD0iODk5MjE1NDczNjQ0MTI4NDg2NSI+Itiv2KfYr9mH4oCM2YfYp9uMIFdpLUZpINi624zYsdmB2LnYp9mEINi02K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfdGl0bGUiIG1zZ2lkPSI4OTkyMTU0NzM2NDQxMjg0ODY1Ij4i4oCP2K/Yp9iv2YfigIzZh9in24wgV2ktRmkg2LrbjNix2YHYudin2YQg2LTYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbGltaXRfYm9keSIgbXNnaWQ9IjMzMTc5NjQ3MDY5NzM2MDEzODYiPiLYqNix2KfbjCDZgdi52KfZhCDaqdix2K/ZhiDZhNmF2LMg2qnZhtuM2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV8zZ19saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iNzAyNjczOTEyMTEzODAwNTIzMSI+Itin2LfZhNin2LnYp9iqIDJHLTNHINio24zYtCDYp9iyINit2K8g2YXYrNin2LIg2KfYs9iqIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV80Z19saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iMTEwNjU2Mjc3OTMxMTIwOTAzOSI+Itio24zYtCDYp9iyINit2K8g2YXYrNin2LIgNEcg2KfYs9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV8zZ19saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iNzAyNjczOTEyMTEzODAwNTIzMSI+IuKAj9in2LfZhNin2LnYp9iqIDJHLTNHINio24zYtCDYp9iyINit2K8g2YXYrNin2LIg2KfYs9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV80Z19saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iMTEwNjU2Mjc3OTMxMTIwOTAzOSI+IuKAj9io24zYtCDYp9iyINit2K8g2YXYrNin2LIgNEcg2KfYs9iqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9tb2JpbGVfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjI3OTI0MDU3MjE2NTQxMjE2OCI+Itiv2KfYr9mH4oCM2YfYp9uMINiq2YTZgdmGINmH2YXYsdin2Ycg2KfYsiDZhdmC2K/Yp9ixINmF2KzYp9iyINio24zYtNiq2LEg2KfYs9iqIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93aWZpX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSI4NzQzODU2MDA2Mzg0ODI1OTc0Ij4i2KfYsiDZhdit2K/ZiNiv2Ycg2YXYrNin2LIg2K/Yp9iv2YfigIzZh9in24wgV2ktRmkg2KjbjNi02KrYsSDYtNivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93aWZpX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSI4NzQzODU2MDA2Mzg0ODI1OTc0Ij4i4oCP2KfYsiDZhdit2K/ZiNiv2Ycg2YXYrNin2LIg2K/Yp9iv2YfigIzZh9in24wgV2ktRmkg2KjbjNi02KrYsSDYtNivIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9saW1pdF9zbm9vemVkX2JvZHkiIG1zZ2lkPSI3MDM1NDkwMjc4Mjk4NDQxNzY3Ij4iPHhsaWZmOmcgaWQ9IlNJWkUiPiVzPC94bGlmZjpnPiDYp9iyINit2K8g2KrYuduM24zZhiDYtNiv2Ycg2KjbjNi02KrYsSDYtNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfcmVzdHJpY3RlZF90aXRsZSIgbXNnaWQ9IjU5NjUxNTczNjEwMzYzMjE5MTQiPiLYr9in2K/ZhyDZvtiz4oCM2LLZhduM2YbZhyDZhdit2K/ZiNivINi02K8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3Jlc3RyaWN0ZWRfYm9keSIgbXNnaWQ9IjY3NDE1MjEzMzA5OTc0NTI5OTAiPiLYqNix2KfbjCDYrdiw2YEg2YXYrdiv2YjYr9uM2KrYjCDZhNmF2LMg2qnZhtuM2K8uIjwvc3RyaW5nPgpAQCAtMTQ2NCw4ICsxNDcyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9ImV4cGlyZXNfb24iIG1zZ2lkPSIzNjc2MjQyOTQ5OTE1OTU5ODIxIj4i2KrYp9ix24zYriDYp9mG2YLYttinOiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNlcmlhbF9udW1iZXIiIG1zZ2lkPSI3NTg4MTQwNjc2NjA4NjI0OTMiPiLYtNmF2KfYsdmH2ZQg2LPYsduM2KfZhDoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJmaW5nZXJwcmludHMiIG1zZ2lkPSI0NTE2MDE5NjE5ODUwNzYzMDQ5Ij4i2KfYq9ixINin2Ybar9i02Ko6Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic2hhMjU2X2ZpbmdlcnByaW50IiBtc2dpZD0iNDM5MTI3MTI4NjQ3NzI3OTI2MyI+Itin2KvYsSDYp9mG2q/YtNiqIFNIQS0yNTY6Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic2hhMV9maW5nZXJwcmludCIgbXNnaWQ9Ijc5MzAzMzAyMzUyNjk0MDQ1ODEiPiLYp9ir2LEg2KfZhtqv2LTYqiBTSEEtMSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYTI1Nl9maW5nZXJwcmludCIgbXNnaWQ9IjQzOTEyNzEyODY0NzcyNzkyNjMiPiLigI/Yp9ir2LEg2KfZhtqv2LTYqiBTSEEtMjU2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYTFfZmluZ2VycHJpbnQiIG1zZ2lkPSI3OTMwMzMwMjM1MjY5NDA0NTgxIj4i4oCP2KfYq9ixINin2Ybar9i02KogU0hBLTEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9jaG9vc2VyX3ZpZXdfc2VlX2FsbCIgbXNnaWQ9IjQyOTI1NjkzODM5NzY2MzYyMDAiPiLZhdi02KfZh9iv2YfZlCDZh9mF2YciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9jaG9vc2VyX3ZpZXdfZGlhbG9nX3RpdGxlX2RlZmF1bHQiIG1zZ2lkPSI0NzEwMDEzODY0OTc0MDQwNjE1Ij4i2KfZhtiq2K7Yp9ioINmB2LnYp9mE24zYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlX2FjdGlvbl9wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iNTI0NzY4NDQzNTk3OTE0OTIxNiI+Itin2LTYqtix2KfaqeKAjNqv2LDYp9ix24wg2KjYpyI8L3N0cmluZz4KQEAgLTE0OTEsNyArMTQ5OSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfbm90X2F2YWlsYWJsZSIgbXNnaWQ9IjY3Mzk4OTk5NjI2ODE4ODY0MDEiPiLYr9ixINiv2LPYqtix2LMg2YbbjNiz2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfaW5fdXNlIiBtc2dpZD0iNDUzMzc4NjAzMTA5MDE5ODA2MyI+Itiv2LEg2K3Yp9mEINin2LPYqtmB2KfYr9mHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX2J1aWx0X2luX2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjI1ODMxMzQyOTQyOTI1NjM5NDEiPiLYtdmB2K3ZhyDZhtmF2KfbjNi0INin2LIg2K7ZiNivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX2hkbWlfZGlzcGxheV9uYW1lIiBtc2dpZD0iMTU1NTI2NDU1OTIyNzQ3MDEwOSI+Iti12YHYrdmHIEhETUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfaGRtaV9kaXNwbGF5X25hbWUiIG1zZ2lkPSIxNTU1MjY0NTU5MjI3NDcwMTA5Ij4i4oCP2LXZgdit2YcgSERNSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9vdmVybGF5X2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjUxNDIzNjU5ODIyNzE2MjA3MTYiPiLZh9mF2b7ZiNi02KfZhtuMICM8eGxpZmY6ZyBpZD0iSUQiPiUxJGQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV90aXRsZSIgbXNnaWQ9IjY1MjEyNDUxNzY3MjI1NzE3MiI+Ijx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IldJRFRIIj4lMiRkPC94bGlmZjpnPng8eGxpZmY6ZyBpZD0iSEVJR0hUIj4lMyRkPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IkRQSSI+JTQkZDwveGxpZmY6Zz4gZHBpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9zZWN1cmVfc3VmZml4IiBtc2dpZD0iNjAyMjExOTcwMjYyODU3MjA4MCI+ItiMINin2YXZhiI8L3N0cmluZz4KQEAgLTE1MTcsMTMgKzE1MjUsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+Itm+24zZhiDaqdivINio2KfbjNivINu4INi52K/YryDbjNinINio24zYtNiq2LEg2KjYp9i02K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i2b7bjNmGINqp2K8g2LXYrduM2K0g2LHYpyDYr9mI2KjYp9ix2Ycg2YjYp9ix2K8g2qnZhtuM2K8uINiq2YTYp9i04oCM2YfYp9uMINmF2qnYsdixINio2YfigIzYt9mI2LEg2K/Yp9im2YUg2LPbjNmFINqp2KfYsdiqINix2Kcg2LrbjNix2YHYudin2YQg2K7ZiNin2YfYryDaqdix2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9jb25maXJtX3Bpbl9oaW50IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzAwMzQ2OTI2MTQ2NDU5MzUxNiI+Itm+24zZhiDaqdiv2YfYpyDZhdmG2LfYqNmCINmG24zYs9iq2YbYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+Itiq2YTYp9i04oCO2YfYp9uMINiy24zYp9iv24wg2KjYsdin24wg2qnYtNuM2K/ZhiDYp9mE2q/ZiCDYtdmI2LHYqiDar9ix2YHYqtmHINin2LPYqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLYqNix2KfbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhNiMINio2Kcg2K3Ys9in2KggR29vZ2xlINiu2YjYryDZiNin2LHYryDYs9uM2LPYqtmFINi02YjbjNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+IuKAj9iq2YTYp9i04oCO2YfYp9uMINiy24zYp9iv24wg2KjYsdin24wg2qnYtNuM2K/ZhiDYp9mE2q/ZiCDYtdmI2LHYqiDar9ix2YHYqtmHINin2LPYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLigI/YqNix2KfbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhNiMINio2Kcg2K3Ys9in2KggR29vZ2xlINiu2YjYryDZiNin2LHYryDYs9uM2LPYqtmFINi02YjbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4i2YbYp9mFINqp2KfYsdio2LHbjCAo2KfbjNmF24zZhCkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iOTA1NzI4OTEwMzgyNzI5ODU0OSI+Itqv2LDYsdmI2KfamNmHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiLZiNix2YjYryDYqNmHINiz24zYs9iq2YUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+ItmG2KfZhSDaqdin2LHYqNix24wg24zYpyDar9iw2LHZiNin2pjZhyDZhtin2YXYudiq2KjYsS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i2YbYp9mFINqp2KfYsdio2LHbjCDbjNinINqv2LDYsdmI2KfamNmHINiu2YjYryDYsdinINmB2LHYp9mF2YjYtCDaqdix2K/bjNiv2J9cbtin2LIgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iINio2KfYstiv24zYryDaqdmG24zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i4oCP2YbYp9mFINqp2KfYsdio2LHbjCDbjNinINqv2LDYsdmI2KfamNmHINiu2YjYryDYsdinINmB2LHYp9mF2YjYtCDaqdix2K/bjNiv2J9cbtin2LIgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iINio2KfYstiv24zYryDaqdmG24zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjEwNTI2ODUxOTc3MTAyNTIzOTUiPiLYr9ix2K3Yp9mEINio2LHYsdiz24wg2K3Ys9in2KguLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODI3Njc0NTY0MjA0OTUwMjU1MCI+Itm+24zZhiDYrtmI2K8g2LHYpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfYtNiq2KjYp9mHINiq2KfbjNm+INqp2LHYr9uM2K8uIFxuXG7ZvtizINin2LIgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g2KvYp9mG24zZhyDYr9mI2KjYp9ix2Ycg2KfZhdiq2K3Yp9mGINqp2YbbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiLar9iw2LHZiNin2pjZhyDYrtmI2K8g2LHYpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfYtNiq2KjYp9mHINiq2KfbjNm+INqp2LHYr9uM2K8uIFxuXG7ZvtizINin2LIgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g2KvYp9mG24zZhyDYr9mI2KjYp9ix2Ycg2KfZhdiq2K3Yp9mGINqp2YbbjNivLiI8L3N0cmluZz4KQEAgLTE1MzIsOCArMTU0MCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MDUxMDE1OTQzMDM4MTk5OTEwIj4i2LTZhdinINio2Ycg2KfYtNiq2KjYp9mHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INio2KfYsSDYp9mC2K/Yp9mFINio2Ycg2KjYp9iyINqp2LHYr9mGINmC2YHZhCDYqtmE2YHZhiDaqdix2K/Zh+KAjNin24zYry4g2b7YsyDYp9iyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INiq2YTYp9i0INmG2KfZhdmI2YHZgiDYr9uM2q/YsdiMINiq2YTZgdmGINio2Ycg2b7bjNi04oCM2YHYsdi2INqp2KfYsdiu2KfZhtmHINio2KfYstmG2LTYp9mG24wg2YXbjOKAjNi02YjYryDZiCDYqtmF2KfZhSDYr9in2K/Zh+KAjNmH2KfbjCDaqdin2LHYqNixINin2LIg2K/Ys9iqINiu2YjYp9mH2K8g2LHZgdiqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDcyOTk2MjY5MTQ4NDgzNjM3Ij4i2LTZhdinINio2Ycg2KfYtNiq2KjYp9mHIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfZgtiv2KfZhSDYqNmHINio2KfYsiDaqdix2K/ZhiDZgtmB2YQg2LHYp9uM2KfZhtmHINmE2YjYrduMINqp2LHYr9mH4oCM2KfbjNivLiDYsdin24zYp9mG2Ycg2YTZiNit24wg2KfaqdmG2YjZhiDYqNmHINm+24zYtOKAjNmB2LHYtiDaqdin2LHYrtin2YbZhyDYqNin2LLZhti02KfZhtuMINmF24zigIzYtNmI2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4i2LTZhdinINio2Ycg2KfYtNiq2KjYp9mHIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfZgtiv2KfZhSDYqNmHINio2KfYsiDaqdix2K/ZhiDZgtmB2YQg2KrZhNmB2YYg2qnYsdiv2YfigIzYp9uM2K8uINin24zZhiDYqtmE2YHZhiDYp9qp2YbZiNmGINio2Ycg2b7bjNi04oCM2YHYsdi2INqp2KfYsdiu2KfZhtmHINio2KfYstmG2LTYp9mG24wg2YXbjOKAjNi02YjYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4i2LTZhdinINin2YTar9mI24wg2KjYp9iy2q/YtNin24zbjCDZgtmB2YQg2K7ZiNivINix2KcgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2KjYp9ixINin2LTYqtio2KfZhyDaqdi024zYr9mH4oCO2KfbjNivLiDYqNi52K8g2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYqtmE2KfYtCDZhtin2YXZiNmB2YLYjCDYp9iyINi02YXYpyDYrtmI2KfYs9iq2Ycg2YXbjOKAjti02YjYryDaqdmHINio2Kcg2KfYs9iq2YHYp9iv2Ycg2KfYsiDbjNqpINit2LPYp9ioINin24zZhduM2YQg2YLZgdmEINix2KfbjNin2YbZhyDZhNmI2K3bjCDYrtmI2K8g2LHYpyDYqNin2LIg2qnZhtuM2K8uXG5cbiDZhNi32YHYp9mLINm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDYq9in2YbbjNmHINiv2YjYqNin2LHZhyDYp9mF2KrYrdin2YYg2qnZhtuM2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLYtNmF2Kcg2KfZhNqv2YjbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhCDYrtmI2K8g2LHYpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfYtNiq2KjYp9mHINqp2LTbjNiv2YfigIzYp9uM2K8uINm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYqtmE2KfYtCDZhtin2YXZiNmB2YLYjCDYp9iyINi02YXYpyDYrtmI2KfYs9iq2Ycg2YXbjOKAjti02YjYryDaqdmHINio2Kcg2KfYs9iq2YHYp9iv2Ycg2KfYsiDbjNqpINit2LPYp9ioINin24zZhduM2YQg2YLZgdmEINiq2YTZgdmGINiu2YjYryDYsdinINio2KfYsiDaqdmG24zYry5cblxuINmE2LfZgdin2Ysg2b7YsyDYp9iyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INir2KfZhtuM2Ycg2K/ZiNio2KfYsdmHINin2YXYqtit2KfZhiDaqdmG24zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4i4oCP2LTZhdinINin2YTar9mI24wg2KjYp9iy2q/YtNin24zbjCDZgtmB2YQg2K7ZiNivINix2KcgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2KjYp9ixINin2LTYqtio2KfZhyDaqdi024zYr9mH4oCO2KfbjNivLiDYqNi52K8g2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYqtmE2KfYtCDZhtin2YXZiNmB2YLYjCDYp9iyINi02YXYpyDYrtmI2KfYs9iq2Ycg2YXbjOKAjti02YjYryDaqdmHINio2Kcg2KfYs9iq2YHYp9iv2Ycg2KfYsiDbjNqpINit2LPYp9ioINin24zZhduM2YQg2YLZgdmEINix2KfbjNin2YbZhyDZhNmI2K3bjCDYrtmI2K8g2LHYpyDYqNin2LIg2qnZhtuM2K8uXG5cbiDZhNi32YHYp9mLINm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDYq9in2YbbjNmHINiv2YjYqNin2LHZhyDYp9mF2KrYrdin2YYg2qnZhtuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLigI/YtNmF2Kcg2KfZhNqv2YjbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhCDYrtmI2K8g2LHYpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfYtNiq2KjYp9mHINqp2LTbjNiv2YfigIzYp9uM2K8uINm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYqtmE2KfYtCDZhtin2YXZiNmB2YLYjCDYp9iyINi02YXYpyDYrtmI2KfYs9iq2Ycg2YXbjOKAjti02YjYryDaqdmHINio2Kcg2KfYs9iq2YHYp9iv2Ycg2KfYsiDbjNqpINit2LPYp9ioINin24zZhduM2YQg2YLZgdmEINiq2YTZgdmGINiu2YjYryDYsdinINio2KfYsiDaqdmG24zYry5cblxuINmE2LfZgdin2Ysg2b7YsyDYp9iyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INir2KfZhtuM2Ycg2K/ZiNio2KfYsdmHINin2YXYqtit2KfZhiDaqdmG24zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLYrdiw2YEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzYWZlX21lZGlhX3ZvbHVtZV93YXJuaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzMyNDE2MTkzOTQ3NTQ3ODA2NiI+Iti12K/YpyDYqNmHINio2KfZhNin2KrYsSDYp9iyINiz2LfYrSDYqtmI2LXbjNmHINi02K/ZhyDYp9mB2LLYp9uM2LQg24zYp9io2K/Yn1xu2q/ZiNi0INiv2KfYr9mGINio2Ycg2LXYr9in24wg2KjZhNmG2K8g2KjYsdin24wg2YXYr9iqINi32YjZhNin2YbbjCDZhduM4oCM2KrZiNin2YbYryDYqNmHINi02YbZiNin24zbjCDYtNmF2Kcg2KLYs9uM2Kgg2KjYsdiz2KfZhtivLiI8L3N0cmluZz4KQEAgLTE2NDksNSArMTY1NywxNiBAQAogICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ3MzA4Njg5MjA3NDI5NTI4MTciPiLYp9mF2KrYrdin2YYg2b7YsyDYp9iyIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INir2KfZhtuM2YciPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4i2KjYudiv2KfZiyDYr9mI2KjYp9ix2Ycg2KfZhdiq2K3Yp9mGINqp2YbbjNivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+Itio2LHYp9uMINiu2LHZiNisINin2LIg2KrZhdin2YUg2LXZgdit2Ycg2KfYsiDYqNin2YTYpyDYqNmHINm+2KfbjNuM2YYg2Kjaqdi024zYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiLYqNix2KfbjCDYrtix2YjYrCDYp9iyINit2KfZhNiqINiq2YXYp9mFINi12YHYrdmH2Iwg2KfZhtqv2LTYqiDYrtmI2K8g2LHYpyDYqNmHINiq2YbYr9uMINin2LIg2KjYp9mE2KfbjCDYtdmB2K3Zh8Kg2KjZhyDZvtin24zbjNmGINio2qnYtNuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiLYp9mG2KzYp9mFINi02K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiLZhNi62LLZhtiv2Ycg2K/Yp9uM2LHZh+KAjNin24wg2LPYp9i52KoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+ItmE2LrYstmG2K/ZhyDYr9in24zYsdmH4oCM2KfbjCDYr9mC24zZgtmHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+Itin2YbYqtiu2KfYqCDYs9in2LnYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+Itin2YbYqtiu2KfYqCDYr9mC24zZgtmHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiLYrNiv2YjZhCDYsdmI2LLZh9inINio2LHYp9iz2KfYsyDZhdin2YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLZhNuM2LPYqiDYs9in2YTigIzZh9inIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2RheSIgbXNnaWQ9Ijc3NzQ3NTk2MDQ3MDE3NzMzMzIiPiLYp9mG2KrYrtin2Kgg2YXYp9mHINmIINix2YjYsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+Itin2YbYqtiu2KfYqCDYs9in2YQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+INin2YbYqtiu2KfYqCDYtNivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4g2K3YsNmBINi02K8iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZmkvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWZpL3N0cmluZ3MueG1sCmluZGV4IDMxMzBjYmEuLjUwZWM0ZGIgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZmkvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1maS9zdHJpbmdzLnhtbApAQCAtNTAsNiArNTAsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4iS2lyam9pdGEgdsOkaGludMOkw6RuIDggbnVtZXJvbiBwaXR1aW5lbiBQVUsta29vZGkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IlNJTS1rb3J0dGlzaSBvbiBQVUstbHVraXR0dS4gUG9pc3RhIGx1a2l0dXMgYW50YW1hbGxhIFBVSy1rb29kaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJQdXJhIFNJTS1rb3J0aW4gZXN0byBhbnRhbWFsbGEgUFVLMi1rb29kaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiJFcMOkb25uaXN0dWksIG90YSBTSU0tL1JVSU0tbHVraXR1cyBrw6R5dHTDtsO2bi4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiJTaW51bGxhIG9uIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiB5cml0eXMgasOkbGplbGzDpCwgZW5uZW4ga3VpbiBTSU0ta29ydHRpIGx1a2l0YWFuLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+IlNpbnVsbGEgb24gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHlyaXR5c3TDpCBqw6RsamVsbMOkLCBlbm5lbiBrdWluIFNJTS1rb3J0dGkgbHVraXRhYW4uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJLWtvb2RpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiJTb2l0dGFqYW4gdHVubnVzIjwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiJBbnRhYSBzb3ZlbGx1a3NlbiBrw6R5dHTDpMOkIFN1cmZhY2VGbGluZ2VyaW4gbWF0YWxhbiB0YXNvbiBvbWluYWlzdXVrc2lhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+Imx1ZSBrZWh5c3B1c2t1cmlhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IkFudGFhIHNvdmVsbHVrc2VuIGx1a2VhIGtlaHlzcHVza3VyaW4gc2lzw6RsdMO2w6QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iSW5wdXRGbGluZ2VyaW4ga8OkeXR0w6RtaW5lbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJBbnRhYSBzb3ZlbGx1a3NlbiBrw6R5dHTDpMOkIElucHV0RmxpbmdlcmluIG1hdGFsYW4gdGFzb24gb21pbmFpc3V1a3NpYS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+Im3DpMOkcml0w6Qgd2lmaS1uw6R5dHTDtmplbiBhc2V0dWtzZXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJBbnRhYSBzb3ZlbGx1a3NlbiBtw6TDpHJpdHTDpMOkIHdpZmktbsOkeXR0w7Zqw6QgamEgbXVvZG9zdGFhIHlodGV5ZGVuIG5paWhpbi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+ImhhbGxpdHNlIHdpZmktbsOkeXR0w7Zqw6QiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IlZhbGl0c2Ugc292ZWxsdXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+IGVpIGvDpHlubmlzdHkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiJKYWEgc2V1cmFhdmllbiBrYW5zc2E6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IkphYSBzb3ZlbGx1a3Nlc3NhIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iTGl1a3V2YSB2YWxpdHNpbi4gS29za2V0YSBwaXRrw6TDpG4uIjwvc3RyaW5nPgpAQCAtMTY0OSw1ICsxNjU3LDE2IEBACiAgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDczMDg2ODkyMDc0Mjk1MjgxNyI+IllyaXTDpCB1dWQuIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHMga3VsLiI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJZcml0w6QgbXnDtmhlbW1pbiB1dWRlbGxlZW4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4iUG9pc3R1IGtva28gbsOkeXTDtm4gdGlsYXN0YSBsaXVcJ3V0dGFtYWxsYSBhbGFzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJQb2lzdHUga29rbyBuw6R5dMO2biB0aWxhc3RhIHB5eWhrw6Rpc2Vtw6RsbMOkIGFsYXMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiJWYWxtaXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiJUdW50aWVuIHltcHlyw6RubXVvdG9pbmVuIGxpdWt1c8Okw6RkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+Ik1pbnV1dHRpZW4geW1weXLDpG5tdW90b2luZW4gbGl1a3Vzw6TDpGRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiJWYWxpdHNlIHR1bm5pdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IlZhbGl0c2UgbWludXV0aXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+IlDDpGl2w6RydXVkdWtrbyBrdXVrYXVzaXR0YWluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4iVnVvc2lsdWV0dGVsbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iVmFsaXRzZSBrdXVrYXVzaSBqYSBww6RpdsOkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4iVmFsaXRzZSB2dW9zaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiI8eGxpZmY6ZyBpZD0iSVRFTSI+JTEkczwveGxpZmY6Zz4gb24gdmFsaXR0dSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+Ijx4bGlmZjpnIGlkPSJLRVkiPiUxJHM8L3hsaWZmOmc+IHBvaXN0ZXR0aWluIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCmluZGV4IDM4NWVkNGIuLjBiOTRhMmEgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJWZXVpbGxleiBzYWlzaXIgdW5lIGNsw6kgUFVLIGNvbXBvcnRhbnQgYXUgbW9pbnMgaHVpdMKgY2hpZmZyZXMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IlZvdHJlIGNhcnRlIFNJTSBlc3QgdmVycm91aWxsw6llIHBhciBjbMOpIFBVSy4gU2Fpc2lzc2V6IGxhIGNsw6kgUFVLIHBvdXIgbGEgZMOpdmVycm91aWxsZXIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iU2Fpc2lzc2V6IGxhIGNsw6kgUFVLMiBwb3VyIGTDqWJsb3F1ZXIgbGEgY2FydGUgU0lNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+Ik9ww6lyYXRpb24gaW5mcnVjdHVldXNlLiBBY3RpdmV6IGxlIHZlcnJvdWlsbGFnZSBTSU0vUlVJTS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiJJbCB2b3VzIHJlc3RlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiB0ZW50YXRpdmUgYXZhbnQgcXVlIHZvdHJlIGNhcnRlIFNJTSBzb2l0IHZlcnJvdWlsbMOpZS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJJbCB2b3VzIHJlc3RlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiB0ZW50YXRpdmUocykgYXZhbnQgcXVlIHZvdHJlIGNhcnRlIFNJTSBzb2l0IHZlcnJvdWlsbMOpZS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IkNvZGUgSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iTnVtw6lybyBkZSBsXCdhcHBlbGFudCAoZW50cmFudCkiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IlBlcm1ldCDDoCBsXCdhcHBsaWNhdGlvbiBkXCd1dGlsaXNlciBsZXMgZm9uY3Rpb25uYWxpdMOpcyBkZSBiYXMgbml2ZWF1IGRlIFN1cmZhY2VGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+ImxpcmUgbGEgbcOpbW9pcmUgdGFtcG9uIGdyYXBoaXF1ZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJQZXJtZXQgw6AgbFwnYXBwbGljYXRpb24gZGUgbGlyZSBsZSBjb250ZW51IGRlIGxhIG3DqW1vaXJlIHRhbXBvbiBncmFwaGlxdWUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iYWNjw6lkZXIgw6AgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IlBlcm1ldCDDoCBsXCdhcHBsaWNhdGlvbiBkXCd1dGlsaXNlciBsZXMgZm9uY3Rpb25uYWxpdMOpcyBkZSBiYXMgbml2ZWF1IGRlIFN1cmZhY2VGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4iY29uZmlndXJlciBsZXMgw6ljcmFucyBXaS1GaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IlBlcm1ldCDDoCBsXCdhcHBsaWNhdGlvbiBkZSBjb25maWd1cmVyIGRlcyDDqWNyYW5zIFdpLUZpIGV0IGRlIHNcJ3kgY29ubmVjdGVyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4iY29udHLDtGxlciBsZXMgw6ljcmFucyBXaS1GaSI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJNYWoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRyw6llIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4iU8OpbGVjdGlvbm5leiB1bmUgYXBwbGljYXRpb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiJJbXBvc3NpYmxlIGRlIGxhbmNlciBsXCdhcHBsaWNhdGlvbiA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4iUGFydGFnZXogYXZlYyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiJQYXJ0YWdlciBhdmVjIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iUG9pZ27DqWUgY291bGlzc2FudGUuIEFwcHV5ZXogZGUgbWFuacOocmUgcHJvbG9uZ8OpZS4iPC9zdHJpbmc+CkBAIC0xNjQ5LDUgKzE2NTcsMTYgQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NzMwODY4OTIwNzQyOTUyODE3Ij4iUsOpZXNzYXllciBkYW5zIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+wqBzIjwvaXRlbT4KICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+IlLDqWVzc2F5ZXogcGx1cyB0YXJkIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IkJhbGF5ZXogdmVycyBsZSBiYXMgcG91ciBxdWl0dGVyIHBsZWluIMOpY3JhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJCYWxheWV6IHZlcnMgbGUgYmFzIHBvdXIgcXVpdHRlciBsZSBtb2RlIHBsZWluIMOpY3JhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4iVGVybWluw6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiJDdXJzZXVyIGNpcmN1bGFpcmUgZGVzIGhldXJlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4iQ3Vyc2V1ciBjaXJjdWxhaXJlIGRlcyBtaW51dGVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IlPDqWxlY3Rpb25uZXogbGVzIGhldXJlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IlPDqWxlY3Rpb25uZXogbGVzIG1pbnV0ZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+IkNhbGVuZHJpZXIgbWVuc3VlbCBzb3VzIGZvcm1lIGRlIGdyaWxsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTUyNDMzMTIwNzQzNjA1MjQwMyI+Ikxpc3RlIGRlcyBhbm7DqWVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2RheSIgbXNnaWQ9Ijc3NzQ3NTk2MDQ3MDE3NzMzMzIiPiJTw6lsZWN0aW9ubmV6IHVuIG1vaXMgZXQgdW4gam91ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+IlPDqWxlY3Rpb25uZXogdW5lIGFubsOpZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiLCq8KgPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+wqDCuyBhIMOpdMOpIHPDqWxlY3Rpb25uw6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiLCq8KgPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz7CoMK7IGEgw6l0w6kgc3VwcHJpbcOpIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWZyL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1mci9zdHJpbmdzLnhtbAppbmRleCA5YTQ0YTMxLi4wMmE0ZjU0IDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWZyL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtZnIvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IlNhaXNpc3NleiB1biBjb2RlIFBVSyBjb21wb3J0YW50IGF1IG1vaW5zIGh1aXTCoGNoaWZmcmVzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJWb3RyZSBjYXJ0ZSBTSU0gZXN0IHZlcnJvdWlsbMOpZSBwYXIgY2zDqSBQVUsuIFNhaXNpc3NleiBsYSBjbMOpIFBVSyBwb3VyIGxhIGTDqXZlcnJvdWlsbGVyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IlNhaXNpc3NleiBsYSBjbMOpIFBVSzIgcG91ciBkw6libG9xdWVyIGxhIGNhcnRlIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiLDiWNoZWMgZGUgbFwnb3DDqXJhdGlvbi4gVmV1aWxsZXogYWN0aXZlciBsZSB2ZXJyb3VpbGxhZ2UgZGUgbGEgY2FydGUgU0lNL1JVSU0uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iSWwgdm91cyByZXN0ZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz7CoHRlbnRhdGl2ZSBhdmFudCBxdWUgdm90cmUgY2FydGUgU0lNIG5lIHNvaXQgdmVycm91aWxsw6llLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+IklsIHZvdXMgcmVzdGUgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+wqB0ZW50YXRpdmVzIGF2YW50IHF1ZSB2b3RyZSBjYXJ0ZSBTSU0gbmUgc29pdCB2ZXJyb3VpbGzDqWUuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJDb2RlIElNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+IkNvZGUgTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iTnVtw6lybyBkZSBsXCdhcHBlbGFudCAoZW50cmFudCkiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IlBlcm1ldCDDoCBsXCdhcHBsaWNhdGlvbiBkXCd1dGlsaXNlciBsZXMgZm9uY3Rpb25uYWxpdMOpcyBkZSBiYXMgbml2ZWF1IGRlIFN1cmZhY2VGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+IkxlY3R1cmUgZGUgbGEgbcOpbW9pcmUgdGFtcG9uIGdyYXBoaXF1ZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJQZXJtZXQgw6AgbFwnYXBwbGljYXRpb24gZGUgbGlyZSBsZSBjb250ZW51IGRlIGxhIG3DqW1vaXJlIHRhbXBvbiBncmFwaGlxdWUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iYWNjw6lkZXIgw6AgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IlBlcm1ldCDDoCBsXCdhcHBsaWNhdGlvbiBkXCd1dGlsaXNlciBsZXMgZm9uY3Rpb25uYWxpdMOpcyBkZSBiYXNlIGRcJ0lucHV0Rmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+ImNvbmZpZ3VyZXIgbGVzIMOpY3JhbnMgV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJQZXJtZXQgw6AgbFwnYXBwbGljYXRpb24gZGUgY29uZmlndXJlciBkZXMgw6ljcmFucyBXaS1GaSBldCBkZSBzXCd5IGNvbm5lY3Rlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+ImNvbnRyw7RsZXIgbGVzIMOpY3JhbnMgV2ktRmkiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iTWFqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRW50csOpZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IlPDqWxlY3Rpb25uZXogdW5lIGFwcGxpY2F0aW9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4iSW1wb3NzaWJsZSBkZSBsYW5jZXIgbFwnYXBwbGljYXRpb24gPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiJQYXJ0YWdlciBhdmVjIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IlBhcnRhZ2VyIGF2ZWMgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJQb2lnbsOpZSBjb3VsaXNzYW50ZS4gQXBwdXlleiBkZSBtYW5pw6hyZSBwcm9sb25nw6llLiI8L3N0cmluZz4KQEAgLTE2NDksNSArMTY1NywxNiBAQAogICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ3MzA4Njg5MjA3NDI5NTI4MTciPiJSw6llc3NheWVyIGRhbnMgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz7CoHMiPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4iVmV1aWxsZXogcsOpZXNzYXllciB1bHTDqXJpZXVyZW1lbnQuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IkJhbGF5ZXIgdmVycyBsZSBiYXMgcG91ciBxdWl0dGVyIGxlIHBsZWluIMOpY3JhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJGYWl0ZXMgZ2xpc3NlciBsZSBkb2lndCB2ZXJzIGxlIGJhcyBwb3VyIHF1aXR0ZXIgbGUgbW9kZSBwbGVpbiDDqWNyYW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiJPSyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IkN1cnNldXIgY2lyY3VsYWlyZSBkZXMgaGV1cmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiJDdXJzZXVyIGNpcmN1bGFpcmUgZGVzIG1pbnV0ZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4iU8OpbGVjdGlvbm5lciB1bmUgaGV1cmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiJTw6lsZWN0aW9ubmVyIGRlcyBtaW51dGVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiJDYWxlbmRyaWVyIG1lbnN1ZWwgc291cyBmb3JtZSBkZSBncmlsbGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiJMaXN0ZSBkZXMgYW5uw6llcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iU8OpbGVjdGlvbm5lciB1biBtb2lzIGV0IHVuIGpvdXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiJTw6lsZWN0aW9ubmVyIHVuZSBhbm7DqWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iXCI8eGxpZmY6ZyBpZD0iSVRFTSI+JTEkczwveGxpZmY6Zz5cIiBzw6lsZWN0aW9ubsOpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iXCI8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPlwiIHN1cHByaW3DqSI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1oaS9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwKaW5kZXggNzM1NzViZC4uZDE4ZWQ4MSAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1oaS9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiLgpJDgpLjgpL4gUFVLIOCksuCkv+CkluClh+CkgiDgpJzgpYsgOCDgpIXgpILgpJXgpYvgpIIg4KSv4KS+IOCkheCkp+Ckv+CklSDgpJXgpL4g4KS54KWLLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiLgpIbgpKrgpJXgpL4g4KS44KS/4KSuIOCkleCkvuCksOCljeCkoSBQVUsg4KSy4KWJ4KSVIOCkleCkv+Ckr+CkviDgpJfgpK/gpL4g4KS54KWILiDgpIfgpLjgpYcg4KSF4KSo4KSy4KWJ4KSVIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIFBVSyDgpJXgpYvgpKEg4KSy4KS/4KSW4KWH4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IuCkuOCkv+CkriDgpJXgpL7gpLDgpY3gpKEg4KSF4KSo4KSs4KWN4oCN4KSy4KWJ4KSVIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIFBVSzIg4KSy4KS/4KSW4KWH4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+IuCkheCkuOCkq+Cksiwg4KS44KS/4KSuLy9SVUlNIOCksuClieCklSDgpLjgpJXgpY3gpLfgpK4g4KSV4KSw4KWH4KSCLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IuCkuOCkv+CkriDgpJXgpYcg4KSy4KWJ4KSVIOCkueCliyDgpJzgpL7gpKjgpYcg4KS44KWHIOCkquCkueCksuClhyDgpIbgpKrgpJXgpYcg4KSq4KS+4KS4IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgpKrgpY3gpLDgpK/gpL7gpLgg4KS24KWH4KS3IOCkueCliC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiLgpLjgpL/gpK4g4KSV4KWHIOCksuClieCklSDgpLngpYsg4KSc4KS+4KSo4KWHIOCkuOClhyDgpKrgpLngpLLgpYcg4KSG4KSq4KSV4KWHIOCkquCkvuCkuCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4KSq4KWN4KSw4KSv4KS+4KS4IOCktuClh+CktyDgpLngpYjgpIIuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiLgpIfgpKjgpJXgpK7gpL/gpILgpJcg4KSV4KWJ4KSy4KSwIElEIjwvc3RyaW5nPgpAQCAtMTUwLDkgKzE1NSw5IEBACiAgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9jb25maXJtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjQ5NzkyMTc1MjQyODIxMzUzIj4i4KSG4KSq4KSV4KS+IOCkq+CkvOCli+CkqCDgpLbgpJ8g4KSh4KS+4KSJ4KSoIOCkueCliyDgpJzgpL7gpI/gpJfgpL4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2h1dGRvd25fY29uZmlybV9xdWVzdGlvbiIgbXNnaWQ9IjI5MDY1NDQ3Njg4ODExMzYxODMiPiLgpJXgpY3igI3gpK/gpL4g4KSG4KSqIOCktuCknyDgpKHgpL7gpIngpKgg4KSV4KSw4KSo4KS+IOCkmuCkvuCkueCkpOClhyDgpLngpYjgpII/Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icmVib290X3NhZmVtb2RlX3RpdGxlIiBtc2dpZD0iNzA1NDUwOTkxNDUwMDE0MDM2MSI+IuCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpK7gpYvgpKEg4KSu4KWH4KSCIOCksOClgOCkrOClguCknyDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJyZWJvb3Rfc2FmZW1vZGVfY29uZmlybSIgbXNnaWQ9IjU1MjkzOTQ0NTAyNzg0NjY4Ij4i4KSV4KWN4KSv4KS+IOCkhuCkqiDgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KSu4KWL4KShIOCkruClh+CkgiDgpLDgpYDgpKzgpYLgpJ8g4KSV4KSw4KSo4KS+IOCkmuCkvuCkueCkpOClhyDgpLngpYjgpII/IOCkh+CkuOCkuOClhyDgpIbgpKrgpJXgpYcg4KSH4KSC4KS44KWN4KSf4KWJ4KSyIOCkleCkv+CkjyDgpLngpYHgpI8g4KS44KSt4KWAIOCkpOClg+CkpOClgOCkryDgpKrgpJXgpY3gpLcg4KSP4KSq4KWN4KS4IOCkheCkleCljeCkt+CkriDgpLngpYsg4KSc4KS+4KSP4KSC4KSX4KWHLiDgpJzgpKwg4KSG4KSqIOCkq+Ckv+CksCDgpLjgpYcg4KSw4KWA4KSs4KWC4KSfIOCkleCksOClh+CkguCkl+ClhyDgpKTgpYsg4KS14KWHIOCkquClgeCkqOCksOCljeCkuOCljeCkpeCkvuCkquCkv+CkpCDgpLngpYsg4KSc4KS+4KSP4KSC4KSX4KWHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYm9vdF9zYWZlbW9kZV9jb25maXJtIiBtc2dpZD0iNTUyOTM5NDQ1MDI3ODQ2NjgiPiLgpJXgpY3gpK/gpL4g4KSG4KSqIOCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpK7gpYvgpKEg4KSu4KWH4KSCIOCksOClgOCkrOClguCknyDgpJXgpLDgpKjgpL4g4KSa4KS+4KS54KSk4KWHIOCkueCliOCkgj8g4KSH4KS44KS44KWHIOCkhuCkquCkleClhyDgpIfgpILgpLjgpY3gpJ/gpYngpLIg4KSV4KS/4KSPIOCkueClgeCkjyDgpLjgpK3gpYAg4KSk4KWD4KSk4KWA4KSvIOCkquCkleCljeCktyDgpJDgpKrgpY3gpLggIOCkheCkleCljeCkt+CkriDgpLngpYsg4KSc4KS+4KSP4KSC4KSX4KWHLiDgpJzgpKwg4KSG4KSqIOCkq+Ckv+CksCDgpLjgpYcg4KSw4KWA4KSs4KWC4KSfIOCkleCksOClh+CkguCkl+ClhyDgpKTgpYsg4KS14KWHIOCkquClgeCkqOCksOCljeCkuOCljeCkpeCkvuCkquCkv+CkpCDgpLngpYsg4KSc4KS+4KSP4KSC4KSX4KWHLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InJlY2VudF90YXNrc190aXRsZSIgbXNnaWQ9IjM2OTE3NjQ2MjM2MzgxMjc4ODgiPiLgpLngpL7gpLIg4KSV4KWHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibm9fcmVjZW50X3Rhc2tzIiBtc2dpZD0iODc5NDkwNjY1ODczMjE5MzQ3MyI+IuCkleCli+CkiCDgpLngpL7gpLIg4KS54KWAIOCkleClhyDgpI/gpKrgpY3gpLgg4KSo4KS54KWA4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX3JlY2VudF90YXNrcyIgbXNnaWQ9Ijg3OTQ5MDY2NTg3MzIxOTM0NzMiPiLgpJXgpYvgpIgg4KS54KS+4KSyIOCkueClgCDgpJXgpYcg4KSQ4KSq4KWN4KS4ICDgpKjgpLngpYDgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQwODQ3NzE0MDA4ODA1MzY2NSI+IuCkn+Clh+CkrOCksuClh+CknyDgpLXgpL/gpJXgpLLgpY3igI3gpKoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9ucyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI0MDY0MTY4MzE1NDE2MTUyNTgiPiLgpKvgpLzgpYvgpKgg4KS14KS/4KSV4KSy4KWN4oCN4KSqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9sb2NrIiBtc2dpZD0iMjg0NDk0NTE5MTc5MjExOTcxMiI+IuCkuOCljeKAjeCkleCljeCksOClgOCkqCDgpLLgpYngpJUiPC9zdHJpbmc+CkBAIC0yMDUsOCArMjEwLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfY2FtZXJhIiBtc2dpZD0iMjkzMzY2NzM3MjI4OTU2NzcxNCI+IuCkmuCkv+CkpOCljeCksCDgpK/gpL4g4KS14KWA4KSh4KS/4KSv4KWLIOCkleCliOCkquCljeKAjeCkmuCksCDgpJXgpYcg4KSy4KS/4KSPIOCkleCliOCkruCksOClhyDgpKrgpLAg4KS44KWA4KSn4KWAIOCkquCkueClgeCkguCkmi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc2NyZWVubG9jayIgbXNnaWQ9IjgyNzU1MDAxNzMzMzA3MTgxNjgiPiLgpLjgpY3igI3gpJXgpY3gpLDgpYDgpKgg4KSy4KWJ4KSVIOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc2NyZWVubG9jayIgbXNnaWQ9IjcwNjc0OTcxMjg5MjU0OTk0MDEiPiLgpIbgpKrgpJXgpYcg4KSJ4KSq4KSV4KSw4KSjIOCkleClgCDgpLLgpYngpJUg4KS44KWN4KSV4KWN4KSw4KWA4KSoIOCkleCkviDgpLXgpY3gpK/gpLXgpLngpL7gpLAg4KSq4KWN4KSw4KSt4KS+4KS14KS/4KSkIOCkleCksOCkqOClhyDgpJXgpYAg4KSV4KWN4KS34KSu4KSk4KS+LiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hcHBJbmZvIiBtc2dpZD0iODAyODc4OTc2MjYzNDE0NzcyNSI+IuCkhuCkquCkleClhyDgpI/gpKrgpY3igI3gpLgg4KSV4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYXBwSW5mbyIgbXNnaWQ9IjM5NTAzNzg1MzgwNDk2MjU5MDciPiLgpIXgpKrgpKjgpYcg4KSJ4KSq4KSV4KSw4KSjIOCkquCksCDgpIXgpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkleClhyDgpLXgpY3igI3gpK/gpLXgpLngpL7gpLAg4KSV4KWLIOCkquCljeCksOCkreCkvuCkteCkv+CkpCDgpJXgpLDgpKjgpYcg4KSV4KWAIOCkleCljeCkt+CkruCkpOCkvi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYXBwSW5mbyIgbXNnaWQ9IjgwMjg3ODk3NjI2MzQxNDc3MjUiPiLgpIbgpKrgpJXgpYcg4KSQ4KSq4KWN4KS4IOCkleClgCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FwcEluZm8iIG1zZ2lkPSIzOTUwMzc4NTM4MDQ5NjI1OTA3Ij4i4KSF4KSq4KSo4KWHIOCkieCkquCkleCksOCkoyDgpKrgpLAg4KSF4KSo4KWN4oCN4KSvIOCkkOCkquCljeCkuCDgpJXgpYcg4KS14KWN4oCN4KSv4KS14KS54KS+4KSwIOCkleCliyDgpKrgpY3gpLDgpK3gpL7gpLXgpL/gpKQg4KSV4KSw4KSo4KWHIOCkleClgCDgpJXgpY3gpLfgpK7gpKTgpL4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3dhbGxwYXBlciIgbXNnaWQ9IjM4NTAyODAxNTgwNDExNzU5OTgiPiLgpLXgpYngpLLgpKrgpYfgpKrgpLAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3dhbGxwYXBlciIgbXNnaWQ9IjU2MzA0MTc4NTQ3NTA1NDAxNTQiPiLgpIngpKrgpJXgpLDgpKMg4KSV4KWAIOCkteClieCksuCkquClh+CkquCksCDgpLjgpYfgpJ/gpL/gpILgpJcg4KSs4KSm4KSy4KWH4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zeXN0ZW1DbG9jayIgbXNnaWQ9IjQwNjUzNTc1OTIzNjYxMjk5MiI+IuCkmOCkoeCkvOClgCI8L3N0cmluZz4KQEAgLTIyNCw5ICsyMjksOSBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N5c3RlbVRvb2xzIiBtc2dpZD0iNDY1MjE5MTY0NDA4MjcxNDA0OCI+IuCkuOCkv+CkuOCljeKAjeCkn+CkriDgpJ/gpYLgpLIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N5c3RlbVRvb2xzIiBtc2dpZD0iODE2MjEwMjYwMjE5MDczNDMwNSI+IuCkuOCkv+CkuOCljeKAjeCkn+CkriDgpJXgpL4g4KSo4KS/4KSu4KWN4oCN4KSoLeCkuOCljeKAjeCkpOCksCDgpKrgpLngpYHgpILgpJog4KSU4KSwIOCkqOCkv+Ckr+CkguCkpOCljeCksOCkoy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGV2ZWxvcG1lbnRUb29scyIgbXNnaWQ9IjM0NDYxNjQ1ODQ3MTA1OTY1MTMiPiLgpKHgpYfgpLXgpLLgpKrgpK7gpYfgpILgpJ8g4KSf4KWC4KSyIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kZXZlbG9wbWVudFRvb2xzIiBtc2dpZD0iNzA1ODgyODAzMjM1ODE0MjAxOCI+IuCkuOClgeCkteCkv+Ckp+CkvuCkj+CkgiDgpJzgpYsg4KSV4KWH4KS14KSyIOCkj+CkquCljeCkuCDgpKHgpYfgpLXgpLLgpKrgpLAg4KSV4KWHIOCksuCkv+CkjyDgpIbgpLXgpLbgpY3gpK/gpJUg4KS54KWI4KSCLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaXNwbGF5IiBtc2dpZD0iNDI3OTkwOTY3NjAzNjQwMjYzNiI+IuCkheCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLggVUkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Rpc3BsYXkiIG1zZ2lkPSI2MDUxMDAyMDMxOTMzMDEzNzE0Ij4i4KSF4KSo4KWN4oCN4KSvIOCkj+CkquCljeKAjeCkuCDgpJXgpYcgVUkg4KSV4KWLIOCkquCljeCksOCkreCkvuCkteCkv+CkpCDgpJXgpLDgpYfgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kZXZlbG9wbWVudFRvb2xzIiBtc2dpZD0iNzA1ODgyODAzMjM1ODE0MjAxOCI+IuCkuOClgeCkteCkv+Ckp+CkvuCkj+CkgiDgpJzgpYsg4KSV4KWH4KS14KSyIOCkkOCkquCljeCkuCAg4KSh4KWH4KS14KSy4KSq4KSwIOCkleClhyDgpLLgpL/gpI8g4KSG4KS14KS24KWN4KSv4KSVIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGlzcGxheSIgbXNnaWQ9IjQyNzk5MDk2NzYwMzY0MDI2MzYiPiLgpIXgpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4IFVJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kaXNwbGF5IiBtc2dpZD0iNjA1MTAwMjAzMTkzMzAxMzcxNCI+IuCkheCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWHIFVJIOCkleCliyDgpKrgpY3gpLDgpK3gpL7gpLXgpL/gpKQg4KSV4KSw4KWH4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zdG9yYWdlIiBtc2dpZD0iMTk3MTExODc3MDU0NjMzNjk2NiI+IuCkuOCkguCkl+CljeCksOCkueCkoyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3NDQyMzE4NTAyNDQ2ODc0OTk5Ij4iVVNCIOCkuOCkguCkl+CljeCksOCkueCkoyDgpK7gpYfgpIIg4KSq4KS54KWB4KSC4KSa4KWH4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjkyMDMzMDIyMTQ5MTUzNTU3NzQiPiJTRCDgpJXgpL7gpLDgpY3gpKEg4KSu4KWH4KSCIOCkquCkueClgeCkguCkmuClh+Ckgi4iPC9zdHJpbmc+CkBAIC0yMzcsNDQzICsyNDIsNDQ1IEBACiAgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJlcXVlc3RUb3VjaEV4cGxvcmF0aW9uIiBtc2dpZD0iMzEwODcyMzM2NDY3NjY2NzMyMCI+IuCkuOCljeCkquCksOCljeCktiDgpKbgpY3gpLXgpL7gpLDgpL4g4KSP4KSV4KWN4KS44KSq4KWN4KSy4KWL4KSwIOCkleCksOClh+CkgiDgpJXgpYsg4KSa4KS+4KSy4KWCIOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXF1ZXN0VG91Y2hFeHBsb3JhdGlvbiIgbXNnaWQ9IjU4MDA1NTI1MTY3NzkyNDkzNTYiPiLgpLjgpY3gpKrgpLDgpY3gpLYg4KSV4KS/4KSPIOCkl+CkjyDgpIbgpIfgpJ/gpK4g4KSc4KS84KWL4KSwIOCkuOClhyDgpKzgpYvgpLLgpYcg4KSc4KS+4KSP4KSC4KSX4KWHIOCklOCksCDgpLjgpY3gpJXgpY3gpLDgpYDgpKgg4KSV4KWLIOCknOClh+CkuOCljeCkmuCksCDgpJXgpYcg4KSJ4KSq4KSv4KWL4KSXIOCkuOClhyDgpI/gpJXgpY3gpLjgpKrgpY3gpLLgpYvgpLAg4KSV4KS/4KSv4KS+IOCknOCkviDgpLjgpJXgpYfgpJfgpL4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXF1ZXN0RW5oYW5jZWRXZWJBY2Nlc3NpYmlsaXR5IiBtc2dpZD0iMTczOTg4MTc2NjUyMjU5NDA3MyI+IuCkj+CkqOCljeCkueCkvuCkguCkuCDgpJXgpYAg4KSX4KSIIOCkteClh+CkrCDgpIbgpLjgpL7gpKgg4KSk4KSw4KWA4KSV4KS+IOCkmuCkvuCksuClgiDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmVxdWVzdEVuaGFuY2VkV2ViQWNjZXNzaWJpbGl0eSIgbXNnaWQ9Ijc4ODEwNjM5NjE1MDc1MTE3NjUiPiLgpI/gpKrgpY3gpLgg4KS44KS+4KSu4KSX4KWN4KSw4KWAIOCkleCliyDgpIXgpKfgpL/gpJUg4KSq4KS54KWB4KSC4KSaLeCkr+Cli+Ckl+CljeCkryDgpKzgpKjgpL7gpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpLjgpY3gpJXgpY3gpLDgpL/gpKrgpY3gpJ8g4KSH4KSC4KS44KWN4KSf4KWJ4KSyIOCkleCkv+CkjyDgpJzgpL4g4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmVxdWVzdEVuaGFuY2VkV2ViQWNjZXNzaWJpbGl0eSIgbXNnaWQ9Ijc4ODEwNjM5NjE1MDc1MTE3NjUiPiLgpJDgpKrgpY3gpLggIOCkuOCkvuCkruCkl+CljeCksOClgCDgpJXgpYsg4KSF4KSn4KS/4KSVIOCkquCkueClgeCkguCkmi3gpK/gpYvgpJfgpY3gpK8g4KSs4KSo4KS+4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KS44KWN4KSV4KWN4KSw4KS/4KSq4KWN4KSfIOCkh+CkguCkuOCljeCkn+ClieCksiDgpJXgpL/gpI8g4KSc4KS+IOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXF1ZXN0RmlsdGVyS2V5RXZlbnRzIiBtc2dpZD0iMjEwMzQ0MDM5MTkwMjQxMjE3NCI+IuCkhuCkquCkleClhyDgpKbgpY3gpLXgpL7gpLDgpL4g4KSy4KS/4KSW4KWHIOCkueClgeCkjyDgpKrgpL7gpKAg4KSV4KWLIOCkp+CljeCkr+CkvuCkqCDgpLjgpYcg4KSm4KWH4KSW4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV9kZXNjX2NhblJlcXVlc3RGaWx0ZXJLZXlFdmVudHMiIG1zZ2lkPSI3NDYzMTM1MjkyMjA0MTUyODE4Ij4i4KSV4KWN4KSw4KWH4KSh4KS/4KSfIOCkleCkvuCksOCljeCkoSDgpKjgpILgpKzgpLAg4KSU4KSwIOCkquCkvuCkuOCkteCksOCljeCkoSDgpJzgpYjgpLjgpL4g4KS14KWN4KSv4KSV4KWN4KSk4KS/4KSX4KSkIOCkoeClh+Ckn+CkviDgpLbgpL7gpK7gpL/gpLIg4KS54KWL4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0YXR1c0JhciIgbXNnaWQ9Ijc0MTcxOTI2Mjk2MDE4OTA3OTEiPiLgpLjgpY3igI3gpKXgpL/gpKTgpL8g4KSs4KS+4KSwIOCkheCkleCljeCkt+CkriDgpK/gpL4g4KSs4KSm4KSy4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyIiBtc2dpZD0iODQzNDY2OTU0OTUwNDI5MDk3NSI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KS44KWN4KSl4KS/4KSk4KS/IOCkrOCkvuCksCDgpIXgpJXgpY3gpLfgpK4g4KSV4KSw4KSo4KWHIOCkr+CkviDgpLjgpL/gpLjgpY3igI3gpJ/gpK4g4KSG4KSH4KSV4KSoIOCkleCliyDgpJzgpYvgpKHgpLzgpKjgpYcg4KSv4KS+IOCkqOCkv+CkleCkvuCksuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXR1c0JhciIgbXNnaWQ9Ijg0MzQ2Njk1NDk1MDQyOTA5NzUiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpLjgpY3gpKXgpL/gpKTgpL8g4KSs4KS+4KSwIOCkheCkleCljeCkt+CkriDgpJXgpLDgpKjgpYcg4KSv4KS+IOCkuOCkv+CkuOCljeKAjeCkn+CkriDgpIbgpIfgpJXgpKgg4KSV4KWLIOCknOCli+CkoeCkvOCkqOClhyDgpK/gpL4g4KSo4KS/4KSV4KS+4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdGF0dXNCYXJTZXJ2aWNlIiBtc2dpZD0iNzI0NzI4MTkxMTM4NzkzMTQ4NSI+IuCkuOCljeKAjeCkpeCkv+CkpOCkvyDgpKzgpL7gpLAiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdGF0dXNCYXJTZXJ2aWNlIiBtc2dpZD0iNzE2MTEzNjYwNzk1OTc2MDYwIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpLjgpY3igI3gpKXgpL/gpKTgpL8g4KSs4KS+4KSwIOCkueCli+CkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXR1c0JhclNlcnZpY2UiIG1zZ2lkPSI3MTYxMTM2NjA3OTU5NzYwNjAiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkuOCljeKAjeCkpeCkv+CkpOCkvyDgpKzgpL7gpLAg4KS54KWL4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9leHBhbmRTdGF0dXNCYXIiIG1zZ2lkPSIxMTQ4MTk4Nzg1OTM3NDg5MjY0Ij4i4KS44KWN4oCN4KSl4KS/4KSk4KS/IOCkrOCkvuCksCDgpLXgpL/gpLjgpY3igI3gpKTgpYPgpKQv4KS44KSC4KSV4KWN4KS34KS/4KSq4KWN4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2V4cGFuZFN0YXR1c0JhciIgbXNnaWQ9IjY5MTc1NDk0MzcxMjk0MDExMzIiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkuOCljeCkpeCkv+CkpOCkvyDgpKzgpL7gpLAg4KSV4KWLIOCkteCkv+CkuOCljeCkpOClg+CkpCDgpK/gpL4g4KS44KSC4KSV4KWN4KS34KS/4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2V4cGFuZFN0YXR1c0JhciIgbXNnaWQ9IjY5MTc1NDk0MzcxMjk0MDExMzIiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpLjgpY3gpKXgpL/gpKTgpL8g4KSs4KS+4KSwIOCkleCliyDgpLXgpL/gpLjgpY3gpKTgpYPgpKQg4KSv4KS+IOCkuOCkguCkleCljeCkt+Ckv+CkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxfc2hvcnRjdXQiIG1zZ2lkPSI0Mjc5MDcwMjE2MzcxNTY0MjM0Ij4i4KS24KWJ4KSw4KWN4KSf4KSV4KSfIOCkh+CkguCkuOCljeKAjeCkn+ClieCksiDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnN0YWxsX3Nob3J0Y3V0IiBtc2dpZD0iODM0MTI5NTkxNjI4NjczNjk5NiI+IuCkj+CkquCljeKAjeCksuCkv+CkleClh+CktuCkqCDgpJXgpYsg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkleClhyDgpLngpLjgpY3igI3gpKTgpJXgpY3gpLfgpYfgpKog4KSV4KWHIOCkrOCkv+CkqOCkviDgpLngpYvgpK7gpLjgpY3igI3gpJXgpY3gpLDgpYDgpKgg4KS24KWJ4KSw4KWN4KSf4KSV4KSfIOCknOCli+CkoeCkvOCkqOClhyDgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91bmluc3RhbGxfc2hvcnRjdXQiIG1zZ2lkPSI0NzI5NjM0NTI0MDQ0MDAzNjk5Ij4i4KS24KWJ4KSw4KWN4KSf4KSV4KSfIOCkheCkqOCkh+CkguCkuOCljeCkn+ClieCksiDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191bmluc3RhbGxfc2hvcnRjdXQiIG1zZ2lkPSI2NzQ1NzQzNDc0MjY1MDU3OTc1Ij4i4KSP4KSq4KWN4oCN4KSy4KS/4KSV4KWH4KS24KSoIOCkleCliyDgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSV4KWHIOCkueCkuOCljeKAjeCkpOCkleCljeCkt+Clh+CkqiDgpJXgpYcg4KSs4KS/4KSo4KS+IOCkueCli+CkruCkuOCljeKAjeCkleCljeCksOClgOCkqCDgpLbgpYngpLDgpY3gpJ/gpJXgpJ8g4KSo4KS/4KSV4KS+4KSy4KSo4KWHIOCkleClgCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iMzkwNjAwNzgzMTE5Mjk5MDk0NiI+IuCkhuCkieCkn+Ckl+Cli+Ckh+CkguCklyDgpJXgpYngpLIg4KSV4KWLIOCkleCkueClgOCkgiDgpJTgpLAg4KSt4KWH4KSc4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcHJvY2Vzc091dGdvaW5nQ2FsbHMiIG1zZ2lkPSI1MzMxMzE4OTMxOTM3NDAyMDQwIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpIbgpIngpJ/gpJfgpYvgpIfgpILgpJcg4KSV4KWJ4KSyIOCkuOCkguCkuOCkvuCkp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSU4KSwIOCkoeCkvuCkr+CksiDgpJXgpL/gpI8g4KSc4KS+4KSo4KWHIOCkteCkvuCksuCkviDgpKjgpILgpKzgpLAg4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkr+CkuSDgpIXgpKjgpYHgpK7gpKTgpL8g4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpIbgpIngpJ/gpJfgpYvgpIfgpILgpJcg4KSV4KWJ4KSyIOCkleClgCDgpKjgpL/gpJfgpLDgpL7gpKjgpYAg4KSV4KSw4KSo4KWHLCDgpLDgpYDgpKHgpL7gpK/gpLDgpYfgpJXgpY3igI3gpJ8g4KSV4KSw4KSo4KWHLCDgpK/gpL4g4KSJ4KSo4KWN4oCN4KS54KWH4KSCIOCksOCli+CkleCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iNTMzMTMxODkzMTkzNzQwMjA0MCI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSG4KSJ4KSf4KSX4KWL4KSH4KSC4KSXIOCkleClieCksiDgpLjgpILgpLjgpL7gpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCklOCksCDgpKHgpL7gpK/gpLIg4KSV4KS/4KSPIOCknOCkvuCkqOClhyDgpLXgpL7gpLLgpL4g4KSo4KSC4KSs4KSwIOCkrOCkpuCksuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpK/gpLkg4KSF4KSo4KWB4KSu4KSk4KS/IOCkkOCkquCljeCkuCDgpJXgpYsg4KSG4KSJ4KSf4KSX4KWL4KSH4KSC4KSXIOCkleClieCksiDgpJXgpYAg4KSo4KS/4KSX4KSw4KS+4KSo4KWAIOCkleCksOCkqOClhywg4KSw4KWA4KSh4KS+4KSv4KSw4KWH4KSV4KWN4oCN4KSfIOCkleCksOCkqOClhywg4KSv4KS+IOCkieCkqOCljeKAjeCkueClh+CkgiDgpLDgpYvgpJXgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVTbXMiIG1zZ2lkPSI4NjczNDcxNzY4OTQ3ODk1MDgyIj4i4KSq4KS+4KSgIOCkuOCkguCkpuClh+CktiAoU01TKSDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVNtcyIgbXNnaWQ9IjY0MjQzODc3NTQyMjg3NjY5MzkiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIFNNUyDgpLjgpILgpKbgpYfgpLbgpYvgpIIg4KSV4KWLIOCkquCljeCksOCkvuCkquCljeKAjeCkpCDgpJTgpLAg4KS44KSC4KS44KS+4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpIfgpLjgpJXgpL4g4KSF4KSw4KWN4KSlIOCkueCliCDgpJXgpL8g4KSP4KSq4KWN4KS4IOCkhuCkquCkleClhyDgpIngpKrgpJXgpLDgpKMg4KSq4KSwIOCkreClh+CknOClhyDgpJfgpI8g4KS44KSC4KSm4KWH4KS24KWL4KSCIOCkleClgCDgpKjgpL/gpJfgpLDgpL7gpKjgpYAg4KSG4KSq4KSV4KWLIOCkpuCkv+CkluCkvuCkjyDgpKzgpL/gpKjgpL4g4KSV4KSwIOCkuOCkleCkpOCkviDgpLngpYgg4KSU4KSwIOCkieCkqOCljeKAjeCkueClh+CkgiDgpLngpJ/gpL4g4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlU21zIiBtc2dpZD0iNjQyNDM4Nzc1NDIyODc2NjkzOSI+IuCkkOCkquCljeCkuCAg4KSV4KWLIFNNUyDgpLjgpILgpKbgpYfgpLbgpYvgpIIg4KSV4KWLIOCkquCljeCksOCkvuCkquCljeKAjeCkpCDgpJTgpLAg4KS44KSC4KS44KS+4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpIfgpLjgpJXgpL4g4KSF4KSw4KWN4KSlIOCkueCliCDgpJXgpL8g4KSQ4KSq4KWN4KS4ICDgpIbgpKrgpJXgpYcg4KSJ4KSq4KSV4KSw4KSjIOCkquCksCDgpK3gpYfgpJzgpYcg4KSX4KSPIOCkuOCkguCkpuClh+CktuCli+CkgiDgpJXgpYAg4KSo4KS/4KSX4KSw4KS+4KSo4KWAIOCkhuCkquCkleCliyDgpKbgpL/gpJbgpL7gpI8g4KSs4KS/4KSo4KS+IOCkleCksCDgpLjgpJXgpKTgpL4g4KS54KWIIOCklOCksCDgpIngpKjgpY3igI3gpLngpYfgpIIg4KS54KSf4KS+IOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlTW1zIiBtc2dpZD0iMTgyMTMxNzM0NDY2ODI1NzA5OCI+IuCkquCkvuCkoCDgpLjgpILgpKbgpYfgpLYgKE1NUykg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVNbXMiIG1zZ2lkPSI1MzMwMTk0MzcyNjMyMTIyNjAiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIE1NUyDgpLjgpILgpKbgpYfgpLbgpYvgpIIg4KSV4KWLIOCkquCljeCksOCkvuCkquCljeKAjeCkpCDgpJTgpLAg4KS44KSC4KS44KS+4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpIfgpLjgpJXgpL4g4KSF4KSw4KWN4KSlIOCkueCliCDgpJXgpL8g4KSP4KSq4KWN4KS4IOCkhuCkquCkleClhyDgpIngpKrgpJXgpLDgpKMg4KSq4KSwIOCkreClh+CknOClhyDgpJfgpI8g4KS44KSC4KSm4KWH4KS24KWL4KSCIOCkleClgCDgpKjgpL/gpJfgpLDgpL7gpKjgpYAg4KSG4KSq4KSV4KWLIOCkpuCkv+CkluCkvuCkjyDgpKzgpL/gpKjgpL4g4KSV4KSwIOCkuOCkleCkpOCkviDgpLngpYgg4KSU4KSwIOCkieCkqOCljeKAjeCkueClh+CkgiDgpLngpJ/gpL4g4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlTW1zIiBtc2dpZD0iNTMzMDE5NDM3MjYzMjEyMjYwIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsgTU1TIOCkuOCkguCkpuClh+CktuCli+CkgiDgpJXgpYsg4KSq4KWN4KSw4KS+4KSq4KWN4oCN4KSkIOCklOCksCDgpLjgpILgpLjgpL7gpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkh+CkuOCkleCkviDgpIXgpLDgpY3gpKUg4KS54KWIIOCkleCkvyDgpJDgpKrgpY3gpLggIOCkhuCkquCkleClhyDgpIngpKrgpJXgpLDgpKMg4KSq4KSwIOCkreClh+CknOClhyDgpJfgpI8g4KS44KSC4KSm4KWH4KS24KWL4KSCIOCkleClgCDgpKjgpL/gpJfgpLDgpL7gpKjgpYAg4KSG4KSq4KSV4KWLIOCkpuCkv+CkluCkvuCkjyDgpKzgpL/gpKjgpL4g4KSV4KSwIOCkuOCkleCkpOCkviDgpLngpYgg4KSU4KSwIOCkieCkqOCljeKAjeCkueClh+CkgiDgpLngpJ/gpL4g4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVFbWVyZ2VuY3lCcm9hZGNhc3QiIG1zZ2lkPSIxODAzNDc3NjYwODQ2Mjg4MDg5Ij4i4KSG4KSq4KS+4KSk4KSV4KS+4KSy4KWA4KSoIOCkquCljeCksOCkuOCkvuCksOCkoyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9Ijg0ODUyNDA3MDI2MjQzMTk3NCI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSG4KSq4KS+4KSk4KSV4KS+4KSy4KWA4KSoIOCkquCljeCksOCkuOCkvuCksOCkoyDgpLjgpILgpKbgpYfgpLbgpYvgpIIg4KSV4KWLIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSU4KSwIOCkuOCkguCkuOCkvuCkp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkheCkqOClgeCkruCkpOCkvyDgpJXgpYfgpLXgpLIg4KS44KS/4KS44KWN4KSf4KSuIOCkj+CkquCljeCkuCDgpK7gpYfgpIIg4KSJ4KSq4KSy4KSs4KWN4KSnIOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlRW1lcmdlbmN5QnJvYWRjYXN0IiBtc2dpZD0iODQ4NTI0MDcwMjYyNDMxOTc0Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSG4KSq4KS+4KSk4KSV4KS+4KSy4KWA4KSoIOCkquCljeCksOCkuOCkvuCksOCkoyDgpLjgpILgpKbgpYfgpLbgpYvgpIIg4KSV4KWLIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSU4KSwIOCkuOCkguCkuOCkvuCkp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkheCkqOClgeCkruCkpOCkvyDgpJXgpYfgpLXgpLIg4KS44KS/4KS44KWN4KSf4KSuIOCkkOCkquCljeCkuCAg4KSu4KWH4KSCIOCkieCkquCksuCkrOCljeCkpyDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2VsbEJyb2FkY2FzdHMiIG1zZ2lkPSIxNTk4MzI4ODQzNjE5NjQ2MTY2Ij4i4KS44KWH4KSyIOCkquCljeCksOCkuOCkvuCksOCkoyDgpLjgpILgpKbgpYfgpLYg4KSq4KSi4KS84KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENlbGxCcm9hZGNhc3RzIiBtc2dpZD0iNjM2MTk3Mjc3NjA4MDQ1ODk3OSI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkieCkquCkleCksOCkoyDgpKbgpY3gpLXgpL7gpLDgpL4g4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkuOClh+CksiDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KS44KSC4KSm4KWH4KS24KWL4KSCIOCkleCliyDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSV4KWB4KSbIOCkuOCljeKAjeCkpeCkvuCkqOCli+CkgiDgpKrgpLAg4KSG4KSq4KSV4KWLIOCkhuCkquCkvuCkpOCkleCkvuCksuClgOCkqCDgpLjgpY3igI3gpKXgpL/gpKTgpL/gpK/gpYvgpIIg4KSV4KWAIOCkmuClh+CkpOCkvuCkteCkqOClgCDgpKbgpYfgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpLjgpYfgpLIg4KSq4KWN4KSw4KS44KS+4KSw4KSjIOCkheCksuCksOCljeCknyDgpLXgpL/gpKTgpLDgpL/gpKQg4KSV4KS/4KSPIOCknOCkvuCkpOClhyDgpLngpYjgpIIuIOCkhuCkquCkvuCkpOCkleCkvuCksuClgOCkqCDgpLjgpYfgpLIg4KSq4KWN4KSw4KS44KS+4KSw4KSjIOCkquCljeCksOCkvuCkquCljeCkpCDgpLngpYvgpKjgpYcg4KSq4KSwIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpI/gpKrgpY3igI3gpLgg4KSG4KSq4KSV4KWHIOCkieCkquCkleCksOCkoyDgpJXgpYcg4KSo4KS/4KS34KWN4oCN4KSq4KS+4KSm4KSoIOCkr+CkviDgpLjgpILgpJrgpL7gpLLgpKgg4KSu4KWH4KSCIOCkueCkuOCljeKAjeCkpOCkleCljeCkt+Clh+CkqiDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2VsbEJyb2FkY2FzdHMiIG1zZ2lkPSI2MzYxOTcyNzc2MDgwNDU4OTc5Ij4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpIbgpKrgpJXgpYcg4KSJ4KSq4KSV4KSw4KSjIOCkpuCljeCkteCkvuCksOCkviDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KS44KWH4KSyIOCkquCljeCksOCkuOCkvuCksOCkoyDgpLjgpILgpKbgpYfgpLbgpYvgpIIg4KSV4KWLIOCkquCkouCkvOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpJXgpYHgpJsg4KS44KWN4oCN4KSl4KS+4KSo4KWL4KSCIOCkquCksCDgpIbgpKrgpJXgpYsg4KSG4KSq4KS+4KSk4KSV4KS+4KSy4KWA4KSoIOCkuOCljeKAjeCkpeCkv+CkpOCkv+Ckr+Cli+CkgiDgpJXgpYAg4KSa4KWH4KSk4KS+4KS14KSo4KWAIOCkpuClh+CkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkuOClh+CksiDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KSF4KSy4KSw4KWN4KSfIOCkteCkv+CkpOCksOCkv+CkpCDgpJXgpL/gpI8g4KSc4KS+4KSk4KWHIOCkueCliOCkgi4g4KSG4KSq4KS+4KSk4KSV4KS+4KSy4KWA4KSoIOCkuOClh+CksiDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkueCli+CkqOClhyDgpKrgpLAg4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCDgpIbgpKrgpJXgpYcg4KSJ4KSq4KSV4KSw4KSjIOCkleClhyDgpKjgpL/gpLfgpY3igI3gpKrgpL7gpKbgpKgg4KSv4KS+IOCkuOCkguCkmuCkvuCksuCkqCDgpK7gpYfgpIIg4KS54KS44KWN4oCN4KSk4KSV4KWN4KS34KWH4KSqIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFNtcyIgbXNnaWQ9IjU2MDA4MzA2MTIxNDc2NzE1MjkiPiJTTVMg4KS44KSC4KSm4KWH4KS2IOCkreClh+CknOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRTbXMiIG1zZ2lkPSI3MDk0NzI5Mjk4MjA0OTM3NjY3Ij4i4KSP4KSq4KWN4KS4IOCkleCliyBTTVMg4KS44KSC4KSm4KWH4KS24KWL4KSCIOCkleCliyDgpK3gpYfgpJzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS44KSV4KWHIOCkquCksOCkv+Cko+CkvuCkruCkuOCljeCkteCksOClguCkqiDgpIXgpKrgpY3gpLDgpKTgpY3igI3gpK/gpL7gpLbgpL/gpKQg4KS24KWB4KSy4KWN4oCN4KSVIOCksuCkvuCkl+ClgiDgpLngpYsg4KS44KSV4KSk4KWHIOCkueCliOCkgi4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkj+CkquCljeCkuCDgpIbgpKrgpJXgpYAg4KSq4KWB4KS34KWN4KSf4KS/IOCkleClhyDgpKzgpL/gpKjgpL4g4KS44KSC4KSm4KWH4KS2IOCkreClh+CknOCkleCksCDgpIbgpKrgpJXgpL4g4KSn4KSoIOCkteCljeKAjeCkr+CkryDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZW5kU21zIiBtc2dpZD0iNzA5NDcyOTI5ODIwNDkzNzY2NyI+IuCkkOCkquCljeCkuCAg4KSV4KWLIFNNUyDgpLjgpILgpKbgpYfgpLbgpYvgpIIg4KSV4KWLIOCkreClh+CknOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpIfgpLjgpJXgpYcg4KSq4KSw4KS/4KSj4KS+4KSu4KS44KWN4KS14KSw4KWC4KSqIOCkheCkquCljeCksOCkpOCljeKAjeCkr+CkvuCktuCkv+CkpCDgpLbgpYHgpLLgpY3igI3gpJUg4KSy4KS+4KSX4KWCIOCkueCliyDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSQ4KSq4KWN4KS4ICDgpIbgpKrgpJXgpYAg4KSq4KWB4KS34KWN4KSf4KS/IOCkleClhyDgpKzgpL/gpKjgpL4g4KS44KSC4KSm4KWH4KS2IOCkreClh+CknOCkleCksCDgpIbgpKrgpJXgpL4g4KSn4KSoIOCkteCljeKAjeCkr+CkryDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlbmRSZXNwb25kVmlhTWVzc2FnZVJlcXVlc3QiIG1zZ2lkPSI4NzEzODg5MTA1MzA1OTQzMjAwIj4i4KS44KSC4KSm4KWH4KS2LeCkpuCljeCkteCkvuCksOCkvi3gpJzgpLXgpL7gpKwg4KSt4KWH4KSc4KWH4KSCIOCkiOCkteClh+CkguCknyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRSZXNwb25kVmlhTWVzc2FnZVJlcXVlc3QiIG1zZ2lkPSI3MTA3NjQ4NTQ4NDY4Nzc4NzM0Ij4i4KSH4KSo4KSV4KSu4KS/4KSC4KSXIOCkleClieCksiDgpJXgpYcg4KS44KSC4KSm4KWH4KS2LeCkpuCljeCkteCkvuCksOCkvi3gpJzgpLXgpL7gpKwg4KSm4KWH4KSo4KWHIOCkleClhyDgpIjgpLXgpYfgpILgpJ8g4KSq4KWN4KSw4KSs4KSC4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPLCDgpI/gpKrgpY3gpLgg4KSV4KWLIOCkheCkqOCljeCkryDgpLjgpILgpKbgpYfgpLYg4KS44KWH4KS14KS+IOCkj+CkquCljeCkuCDgpJXgpYsg4KSF4KSo4KWB4KSw4KWL4KSnIOCkreClh+CknOCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRSZXNwb25kVmlhTWVzc2FnZVJlcXVlc3QiIG1zZ2lkPSI3MTA3NjQ4NTQ4NDY4Nzc4NzM0Ij4i4KSH4KSo4KSV4KSu4KS/4KSC4KSXIOCkleClieCksiDgpJXgpYcg4KS44KSC4KSm4KWH4KS2LeCkpuCljeCkteCkvuCksOCkvi3gpJzgpLXgpL7gpKwg4KSm4KWH4KSo4KWHIOCkleClhyDgpIjgpLXgpYfgpILgpJ8g4KSq4KWN4KSw4KSs4KSC4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPLCDgpJDgpKrgpY3gpLggIOCkleCliyDgpIXgpKjgpY3gpK8g4KS44KSC4KSm4KWH4KS2IOCkuOClh+CkteCkviDgpJDgpKrgpY3gpLggIOCkleCliyDgpIXgpKjgpYHgpLDgpYvgpKcg4KSt4KWH4KSc4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU21zIiBtc2dpZD0iODc0NTA4NjU3MjIxMzI3MDQ4MCI+IuCkheCkquCkqOClhyDgpKrgpL7gpKAg4KS44KSC4KSm4KWH4KS2IChTTVMg4KSv4KS+IE1NUykg4KSq4KSi4KS84KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNtcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjQ2Nzk4MTU0ODY4NDczNTUyMiI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkn+Clh+CkrOCksuClh+CknyDgpK/gpL4gU0lNIOCkleCkvuCksOCljeCkoSDgpK7gpYfgpIIg4KS44KSC4KSX4KWN4KSw4KS54KWA4KSkIFNNUyDgpLjgpILgpKbgpYfgpLYg4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkh+CkuOCkuOClhyDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSv4KS+IOCkl+Cli+CkquCkqOClgOCkr+CkpOCkviDgpKrgpLAg4KSn4KWN4KSv4KS+4KSoIOCkpuCkv+CkjyDgpKzgpL/gpKjgpL4sIOCkj+CkquCljeCkuCDgpLjgpK3gpYAgU01TIOCkuOCkguCkpuClh+CktiDgpKrgpKLgpLwg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzY5NTk2NzUzMzQ1NzI0MDU1MCI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkq+CkvOCli+CkqCDgpK/gpL4gU0lNIOCkleCkvuCksOCljeCkoSDgpK7gpYfgpIIg4KS44KSC4KSX4KWN4KSw4KS54KWA4KSkIFNNUyDgpLjgpILgpKbgpYfgpLYg4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkh+CkuOCkuOClhyDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSv4KS+IOCkl+Cli+CkquCkqOClgOCkr+CkpOCkviDgpKrgpLAg4KSn4KWN4KSv4KS+4KSoIOCkpuCkv+CkjyDgpKzgpL/gpKjgpL4sIOCkj+CkquCljeCkuCDgpLjgpK3gpYAgU01TIOCkuOCkguCkpuClh+CktiDgpKrgpKLgpLwg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNDY3OTgxNTQ4Njg0NzM1NTIyIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkn+Clh+CkrOCksuClh+CknyDgpK/gpL4gU0lNIOCkleCkvuCksOCljeCkoSDgpK7gpYfgpIIg4KS44KSC4KSX4KWN4KSw4KS54KWA4KSkIFNNUyDgpLjgpILgpKbgpYfgpLYg4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkh+CkuOCkuOClhyDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSv4KS+IOCkl+Cli+CkquCkqOClgOCkr+CkpOCkviDgpKrgpLAg4KSn4KWN4KSv4KS+4KSoIOCkpuCkv+CkjyDgpKzgpL/gpKjgpL4sIOCkkOCkquCljeCkuCAg4KS44KSt4KWAIFNNUyDgpLjgpILgpKbgpYfgpLYg4KSq4KSi4KS8IOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2OTU5Njc1MzM0NTcyNDA1NTAiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpIbgpKrgpJXgpYcg4KSr4KS84KWL4KSoIOCkr+CkviBTSU0g4KSV4KS+4KSw4KWN4KShIOCkruClh+CkgiDgpLjgpILgpJfgpY3gpLDgpLngpYDgpKQgU01TIOCkuOCkguCkpuClh+CktiDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS44KS44KWHIOCkuOCkvuCkruCkl+CljeCksOClgCDgpK/gpL4g4KSX4KWL4KSq4KSo4KWA4KSv4KSk4KS+IOCkquCksCDgpKfgpY3gpK/gpL7gpKgg4KSm4KS/4KSPIOCkrOCkv+CkqOCkviwg4KSQ4KSq4KWN4KS4ICDgpLjgpK3gpYAgU01TIOCkuOCkguCkpuClh+CktiDgpKrgpKLgpLwg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU21zIiBtc2dpZD0iMzIxNjk1MDQ3MjYzNjIxNDc3NCI+IuCkheCkquCkqOClhyDgpKrgpL7gpKAg4KS44KSC4KSm4KWH4KS2IChTTVMg4KSv4KS+IE1NUykg4KS44KSC4KSq4KS+4KSm4KS/4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1MTYwNDEzOTQ3Nzk0NTAxNTM4Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIbgpKrgpJXgpYcg4KSf4KWH4KSs4KSy4KWH4KSfIOCkr+CkviDgpLjgpL/gpK4g4KSV4KS+4KSw4KWN4KShIOCkruClh+CkgiDgpLjgpILgpJfgpY3gpLDgpLngpYDgpKQgU01TIOCkuOCkguCkpuClh+CktuCli+CkgiDgpK7gpYfgpIIg4KSy4KS/4KSW4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpI/gpKrgpY3gpLgg4KSG4KSq4KSV4KWHIOCkuOCkguCkpuClh+CktuCli+CkgiDgpJXgpYsg4KS54KSf4KS+IOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjY4NjY4NzA5MDUyMzI4NTY3Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIbgpKrgpJXgpYcg4KSr4KS84KWL4KSoIOCkr+CkviDgpLjgpL/gpK4g4KSV4KS+4KSw4KWN4KShIOCkruClh+CkgiDgpLjgpILgpJfgpY3gpLDgpLngpYDgpKQgU01TIOCkuOCkguCkpuClh+CktuCli+CkgiDgpJXgpYsg4KSy4KS/4KSW4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguICDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4KS4IOCkhuCkquCkleClhyDgpLjgpILgpKbgpYfgpLbgpYvgpIIg4KSV4KWLIOCkueCkn+CkviDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1MTYwNDEzOTQ3Nzk0NTAxNTM4Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkn+Clh+CkrOCksuClh+CknyDgpK/gpL4g4KS44KS/4KSuIOCkleCkvuCksOCljeCkoSDgpK7gpYfgpIIg4KS44KSC4KSX4KWN4KSw4KS54KWA4KSkIFNNUyDgpLjgpILgpKbgpYfgpLbgpYvgpIIg4KSu4KWH4KSCIOCksuCkv+CkluCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSQ4KSq4KWN4KS4ICDgpIbgpKrgpJXgpYcg4KS44KSC4KSm4KWH4KS24KWL4KSCIOCkleCliyDgpLngpJ/gpL4g4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcyNjg2Njg3MDkwNTIzMjg1NjciPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpIbgpKrgpJXgpYcg4KSr4KS84KWL4KSoIOCkr+CkviDgpLjgpL/gpK4g4KSV4KS+4KSw4KWN4KShIOCkruClh+CkgiDgpLjgpILgpJfgpY3gpLDgpLngpYDgpKQgU01TIOCkuOCkguCkpuClh+CktuCli+CkgiDgpJXgpYsg4KSy4KS/4KSW4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguICDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSQ4KSq4KWN4KS4ICDgpIbgpKrgpJXgpYcg4KS44KSC4KSm4KWH4KS24KWL4KSCIOCkleCliyDgpLngpJ/gpL4g4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVXYXBQdXNoIiBtc2dpZD0iNTk5MTM5ODcxMTkzNjU5MDQxMCI+IuCkquCkvuCkoCDgpLjgpILgpKbgpYfgpLYgKFdBUCkg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVXYXBQdXNoIiBtc2dpZD0iNzQ4MjMyMTkwMjIwNTgzMzg1Ij4i4KSP4KSq4KWN4KS4IOCkleCliyBXQVAg4KS44KSC4KSm4KWH4KS24KWL4KSCIOCkleCliyDgpKrgpY3gpLDgpL7gpKrgpY3igI3gpKQg4KSU4KSwIOCkuOCkguCkuOCkvuCkp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS4IOCkheCkqOClgeCkruCkpOCkvyDgpK7gpYfgpIIg4KSG4KSq4KSV4KWLIOCkreClh+CknOClhyDgpJfgpI8g4KS44KSC4KSm4KWH4KS24KWL4KSCIOCkleClgCDgpKjgpL/gpJfgpLDgpL7gpKjgpYAg4KSG4KSq4KSV4KWLIOCkpuCkv+CkluCkvuCkjyDgpKzgpL/gpKjgpL4g4KSV4KSw4KSo4KWHIOCklOCksCDgpLngpJ/gpL7gpKjgpYcg4KSV4KWAIOCkleCljeCkt+CkruCkpOCkviDgpLbgpL7gpK7gpL/gpLIg4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0VGFza3MiIG1zZ2lkPSI2NDY2MDk1Mzk2NjIzOTMzOTA2Ij4i4KSa4KSyIOCksOCkueClhyDgpI/gpKrgpY3igI3gpLgg4KSq4KWB4KSo4KSw4KWN4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRhc2tzIiBtc2dpZD0iNzQ1NDIxNTk5NTg0NzY1ODEwMiI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KS14KSw4KWN4KSk4KSu4KS+4KSoIOCkruClh+CkgiDgpJTgpLAg4KS54KS+4KSyIOCkueClgCDgpK7gpYfgpIIg4KSa4KSyIOCksOCkueClhyDgpJXgpL7gpLDgpY3gpK/gpYvgpIIg4KSV4KWHIOCkrOCkvuCksOClhyDgpK7gpYfgpIIg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkleCliyDgpKrgpYHgpKg6IOCkquCljeCksOCkvuCkquCljeKAjeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS44KS44KWHIOCkj+CkquCljeCkuCDgpIngpKrgpJXgpLDgpKMg4KSq4KSwIOCkieCkquCkr+Cli+CklyDgpJXgpL/gpI8g4KSX4KSPIOCkj+CkquCljeCkuCDgpJXgpYcg4KSs4KS+4KSw4KWHIOCkruClh+CkgiDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSW4KWL4KScIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI3NDgyMzIxOTAyMjA1ODMzODUiPiLgpJDgpKrgpY3gpLggIOCkleCliyBXQVAg4KS44KSC4KSm4KWH4KS24KWL4KSCIOCkleCliyDgpKrgpY3gpLDgpL7gpKrgpY3igI3gpKQg4KSU4KSwIOCkuOCkguCkuOCkvuCkp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS4IOCkheCkqOClgeCkruCkpOCkvyDgpK7gpYfgpIIg4KSG4KSq4KSV4KWLIOCkreClh+CknOClhyDgpJfgpI8g4KS44KSC4KSm4KWH4KS24KWL4KSCIOCkleClgCDgpKjgpL/gpJfgpLDgpL7gpKjgpYAg4KSG4KSq4KSV4KWLIOCkpuCkv+CkluCkvuCkjyDgpKzgpL/gpKjgpL4g4KSV4KSw4KSo4KWHIOCklOCksCDgpLngpJ/gpL7gpKjgpYcg4KSV4KWAIOCkleCljeCkt+CkruCkpOCkviDgpLbgpL7gpK7gpL/gpLIg4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0VGFza3MiIG1zZ2lkPSI2NDY2MDk1Mzk2NjIzOTMzOTA2Ij4i4KSa4KSyIOCksOCkueClhyDgpJDgpKrgpY3gpLgg4KSq4KWB4KSo4KSw4KWN4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRhc2tzIiBtc2dpZD0iNzQ1NDIxNTk5NTg0NzY1ODEwMiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkteCksOCljeCkpOCkruCkvuCkqCDgpK7gpYfgpIIg4KSU4KSwIOCkueCkvuCksiDgpLngpYAg4KSu4KWH4KSCIOCkmuCksiDgpLDgpLngpYcg4KSV4KS+4KSw4KWN4KSv4KWL4KSCIOCkleClhyDgpKzgpL7gpLDgpYcg4KSu4KWH4KSCIOCknOCkvuCkqOCkleCkvuCksOClgCDgpJXgpYsg4KSq4KWB4KSoOiDgpKrgpY3gpLDgpL7gpKrgpY3igI3gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkh+CkuOCkuOClhyDgpJDgpKrgpY3gpLggIOCkieCkquCkleCksOCkoyDgpKrgpLAg4KSJ4KSq4KSv4KWL4KSXIOCkleCkv+CkjyDgpJfgpI8g4KSQ4KSq4KWN4KS4ICDgpJXgpYcg4KSs4KS+4KSw4KWHIOCkruClh+CkgiDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSW4KWL4KScIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcmFjdEFjcm9zc1VzZXJzIiBtc2dpZD0iNzExNDI1NTI4MTk0NDIxMTY4MiI+IuCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkvuCkk+CkgiDgpJXgpYcg4KSs4KWA4KSaIOCkuOCkueCkreCkvuCkl+Ckv+CkpOCkviDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcmFjdEFjcm9zc1VzZXJzIiBtc2dpZD0iMzY0NjcwOTYzNjIzMzg1Nzg2Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIngpKrgpJXgpLDgpKMg4KSq4KSwIOCkreCkv+CkqOCljeCkqCDgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpJPgpIIg4KSV4KWHIOCkrOClgOCkmiDgpJXgpL7gpLDgpY3gpK8g4KSo4KS/4KS34KWN4KSq4KS+4KSm4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4KS4IOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkvuCkk+CkgiDgpJXgpYcg4KSs4KWA4KSaIOCkuOClgeCksOCkleCljeCkt+CkviDgpJXgpL4g4KSJ4KSy4KWN4KSy4KSC4KSY4KSoIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJhY3RBY3Jvc3NVc2VycyIgbXNnaWQ9IjM2NDY3MDk2MzYyMzM4NTc4NiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkieCkquCkleCksOCkoyDgpKrgpLAg4KSt4KS/4KSo4KWN4KSoIOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkvuCkk+CkgiDgpJXgpYcg4KSs4KWA4KSaIOCkleCkvuCksOCljeCkryDgpKjgpL/gpLfgpY3gpKrgpL7gpKbgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLggIOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkvuCkk+CkgiDgpJXgpYcg4KSs4KWA4KSaIOCkuOClgeCksOCkleCljeCkt+CkviDgpJXgpL4g4KSJ4KSy4KWN4KSy4KSC4KSY4KSoIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcmFjdEFjcm9zc1VzZXJzRnVsbCIgbXNnaWQ9IjI1Njc3MzQyODU1NDUwNzQxMDUiPiLgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpJPgpIIg4KSV4KWHIOCkrOClgOCkmiDgpLjgpLngpK3gpL7gpJfgpL/gpKTgpL4g4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSq4KWC4KSw4KWN4KSjIOCksuCkvuCkh+CkuOClh+CkguCkuCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludGVyYWN0QWNyb3NzVXNlcnNGdWxsIiBtc2dpZD0iMzc2ODQxMzY4Mzk1NTAyMzY2Ij4i4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KST4KSCIOCkleClhyDgpKzgpYDgpJog4KS44KSt4KWAIOCkuOCkguCkreCktSDgpLjgpLngpK3gpL7gpJfgpL/gpKTgpL4g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VVc2VycyIgbXNnaWQ9IjE2NzYxNTA5MTE2NzIyODI0MjgiPiLgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSq4KWN4KSw4KSs4KSC4KSn4KS/4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZVVzZXJzIiBtc2dpZD0iODQwOTMwNjY2NzY0NTM1NTYzOCI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSJ4KSq4KSV4KSw4KSjIOCkquCksCDgpJXgpY3gpLXgpYfgpLDgpYAsIOCkqOCkv+CksOCljeCkruCkvuCkoyDgpJTgpLAg4KS54KSf4KS+4KSo4KWHIOCkuOCkueCkv+CkpCDgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpJPgpIIg4KSV4KWLIOCkquCljeCksOCkrOCkguCkp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSV4KWAIOCkuOClgeCkteCkv+Ckp+CkviDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0RGV0YWlsZWRUYXNrcyIgbXNnaWQ9IjYyMjk0Njg2NzQ3NTM1Mjk1MDEiPiLgpJrgpLIg4KSw4KS54KWHIOCkj+CkquCljeKAjeCkuCDgpJXgpYcg4KS14KS/4KS14KSw4KSjIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXREZXRhaWxlZFRhc2tzIiBtc2dpZD0iMTUzODI0NzQxNDQwNzE3NTk5Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpLXgpLDgpY3gpKTgpK7gpL7gpKgg4KSu4KWH4KSCIOCklOCksCDgpLngpL7gpLIg4KS54KWAIOCkruClh+CkgiDgpJrgpLIg4KSw4KS54KWHIOCkleCkvuCksOCljeCkr+Cli+CkgiDgpJXgpYAg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkj+CkquCljeCkuCDgpIXgpKjgpY3gpK8g4KSP4KSq4KWN4KS4IOCkleClhyDgpKzgpL7gpLDgpYcg4KSu4KWH4KSCIOCkqOCkv+CknOClgCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSW4KWL4KScIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZW9yZGVyVGFza3MiIG1zZ2lkPSIyMDE4NTc1NTI2OTM0NDIyNzc5Ij4i4KSa4KSyIOCksOCkueClhyDgpI/gpKrgpY3igI3gpLgg4KSq4KWB4KSoOiDgpJXgpY3gpLDgpK7gpL/gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVvcmRlclRhc2tzIiBtc2dpZD0iNzczNDIxNzc1NDg3NzQzOTM1MSI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSV4KS+4KSw4KWN4KSv4KWL4KSCIOCkleCliyDgpIXgpJfgpY3gpLDgpK3gpYLgpK7gpL8g4KSU4KSwIOCkquClg+Ckt+CljeKAjeCkoOCkreClguCkruCkvyDgpKrgpLAg4KSy4KWHIOCknOCkvuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpI/gpKrgpY3gpLgg4KSG4KSq4KSV4KWHIOCkh+CkqOCkquClgeCknyDgpJXgpYcg4KSs4KS/4KSo4KS+IOCkr+CkuSDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlbW92ZVRhc2tzIiBtc2dpZD0iNjgyMTUxMzQwMTg3MDM3NzQwMyI+IuCkmuCksuCkqOClhyDgpLXgpL7gpLLgpYcg4KSP4KSq4KWN4KS4IOCksOCli+CkleClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlbW92ZVRhc2tzIiBtc2dpZD0iMTM5NDcxNDM1MjA2MjYzNTQ5MyI+IuCkleCkv+CkuOClgCDgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkleCkvuCksOCljeCkr+Cli+CkgiDgpJXgpYsg4KSo4KS/4KSV4KS+4KSy4KSo4KWHIOCklOCksCDgpIngpKjgpJXgpYcg4KSP4KSq4KWN4oCN4KS4IOCkuOCkruCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkj+CkquCljeKAjeCkuCDgpIXgpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkleCkviDgpLXgpY3igI3gpK/gpLXgpLngpL7gpLAg4KSs4KS+4KSn4KS/4KSkIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZVVzZXJzIiBtc2dpZD0iODQwOTMwNjY2NzY0NTM1NTYzOCI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkieCkquCkleCksOCkoyDgpKrgpLAg4KSV4KWN4KS14KWH4KSw4KWALCDgpKjgpL/gpLDgpY3gpK7gpL7gpKMg4KSU4KSwIOCkueCkn+CkvuCkqOClhyDgpLjgpLngpL/gpKQg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KST4KSCIOCkleCliyDgpKrgpY3gpLDgpKzgpILgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkleClgCDgpLjgpYHgpLXgpL/gpKfgpL4g4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldERldGFpbGVkVGFza3MiIG1zZ2lkPSI2MjI5NDY4Njc0NzUzNTI5NTAxIj4i4KSa4KSyIOCksOCkueClhyDgpJDgpKrgpY3gpLgg4KSV4KWHIOCkteCkv+CkteCksOCkoyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0RGV0YWlsZWRUYXNrcyIgbXNnaWQ9IjE1MzgyNDc0MTQ0MDcxNzU5OSI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkteCksOCljeCkpOCkruCkvuCkqCDgpK7gpYfgpIIg4KSU4KSwIOCkueCkvuCksiDgpLngpYAg4KSu4KWH4KSCIOCkmuCksiDgpLDgpLngpYcg4KSV4KS+4KSw4KWN4KSv4KWL4KSCIOCkleClgCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSQ4KSq4KWN4KS4ICDgpIXgpKjgpY3gpK8g4KSQ4KSq4KWN4KS4ICDgpJXgpYcg4KSs4KS+4KSw4KWHIOCkruClh+CkgiDgpKjgpL/gpJzgpYAg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkluCli+CknCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVvcmRlclRhc2tzIiBtc2dpZD0iMjAxODU3NTUyNjkzNDQyMjc3OSI+IuCkmuCksiDgpLDgpLngpYcg4KSQ4KSq4KWN4KS4IOCkquClgeCkqDog4KSV4KWN4KSw4KSu4KS/4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Jlb3JkZXJUYXNrcyIgbXNnaWQ9Ijc3MzQyMTc3NTQ4Nzc0MzkzNTEiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpJXgpL7gpLDgpY3gpK/gpYvgpIIg4KSV4KWLIOCkheCkl+CljeCksOCkreClguCkruCkvyDgpJTgpLAg4KSq4KWD4KS34KWN4oCN4KSg4KSt4KWC4KSu4KS/IOCkquCksCDgpLLgpYcg4KSc4KS+4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkkOCkquCljeCkuCAg4KSG4KSq4KSV4KWHIOCkh+CkqOCkquClgeCknyDgpJXgpYcg4KSs4KS/4KSo4KS+IOCkr+CkuSDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlbW92ZVRhc2tzIiBtc2dpZD0iNjgyMTUxMzQwMTg3MDM3NzQwMyI+IuCkmuCksuCkqOClhyDgpLXgpL7gpLLgpYcg4KSQ4KSq4KWN4KS4ICDgpLDgpYvgpJXgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZW1vdmVUYXNrcyIgbXNnaWQ9IjEzOTQ3MTQzNTIwNjI2MzU0OTMiPiLgpJXgpL/gpLjgpYAg4KSQ4KSq4KWN4KS4IOCkleCliyDgpJXgpL7gpLDgpY3gpK/gpYvgpIIg4KSV4KWLIOCkqOCkv+CkleCkvuCksuCkqOClhyDgpJTgpLAg4KSJ4KSo4KSV4KWHIOCkkOCkquCljeCkuCDgpLjgpK7gpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLgg4KSF4KSo4KWN4oCN4KSvIOCkkOCkquCljeCkuCDgpJXgpL4g4KS14KWN4oCN4KSv4KS14KS54KS+4KSwIOCkrOCkvuCkp+Ckv+CkpCDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFjdGl2aXR5U3RhY2tzIiBtc2dpZD0iNzM5MTE5MTM4NDAyNzMwMzA2NSI+IuCkl+CkpOCkv+CkteCkv+Ckp+CkvyDgpLjgpY3gpJ/gpYjgpJUg4KSq4KWN4KSw4KSs4KSC4KSn4KS/4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFjdGl2aXR5U3RhY2tzIiBtc2dpZD0iMTYxNTg4MTkzMzAzNDA4NDQ0MCI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSQ4KS44KWHIOCkl+CkpOCkv+CkteCkv+Ckp+CkvyDgpLjgpY3gpJ/gpYjgpJUg4KSc4KWL4KSh4KS84KSo4KWHLCDgpKjgpL/gpJXgpL7gpLLgpKjgpYcsIOCklOCksCDgpKzgpKbgpLLgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCDgpJzgpL/gpKjgpK7gpYfgpIIg4KSF4KSo4KWN4KSvIOCkj+CkquCljeCkuCDgpJrgpLLgpKTgpYcg4KS54KWL4KSCLiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4KS4IOCkheCkqOCljeCkryDgpI/gpKrgpY3gpLgg4KSV4KWHIOCkteCljeCkr+CkteCkueCkvuCksCDgpK7gpYfgpIIg4KSs4KS+4KSn4KS+IOCkoeCkvuCksiDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFjdGl2aXR5U3RhY2tzIiBtc2dpZD0iMTYxNTg4MTkzMzAzNDA4NDQ0MCI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkkOCkuOClhyDgpJfgpKTgpL/gpLXgpL/gpKfgpL8g4KS44KWN4KSf4KWI4KSVIOCknOCli+CkoeCkvOCkqOClhywg4KSo4KS/4KSV4KS+4KSy4KSo4KWHLCDgpJTgpLAg4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgg4KSc4KS/4KSo4KSu4KWH4KSCIOCkheCkqOCljeCkryDgpJDgpKrgpY3gpLggIOCkmuCksuCkpOClhyDgpLngpYvgpIIuIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLggIOCkheCkqOCljeCkryDgpJDgpKrgpY3gpLggIOCkleClhyDgpLXgpY3gpK/gpLXgpLngpL7gpLAg4KSu4KWH4KSCIOCkrOCkvuCkp+CkviDgpKHgpL7gpLIg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0YXJ0QW55QWN0aXZpdHkiIG1zZ2lkPSIyOTE4NzY4MjM4MDQ1MjA2NDU2Ij4i4KSV4KWL4KSIIOCkl+CkpOCkv+CkteCkv+Ckp+CkvyDgpKrgpY3gpLDgpL7gpLDgpILgpK0g4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhcnRBbnlBY3Rpdml0eSIgbXNnaWQ9Ijk5NzgyMzY5NTM0MzU4NDAwMSI+IuCkheCkqOClgeCkruCkpOCkvyDgpLjgpYHgpLDgpJXgpY3gpLfgpL4g4KSv4KS+IOCkqOCkv+CksOCljeCkr+CkvuCkpCDgpJXgpYAg4KS44KWN4oCN4KSl4KS/4KSk4KS/IOCkquCksCDgpKfgpY3igI3gpK/gpL7gpKgg4KSm4KS/4KSPIOCkrOCkv+CkqOCkviwg4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpJXgpYvgpIgg4KSX4KSk4KS/4KS14KS/4KSn4KS/IOCkquCljeCksOCkvuCksOCkguCkrSDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdGFydEFueUFjdGl2aXR5IiBtc2dpZD0iOTk3ODIzNjk1MzQzNTg0MDAxIj4i4KSF4KSo4KWB4KSu4KSk4KS/IOCkuOClgeCksOCkleCljeCkt+CkviDgpK/gpL4g4KSo4KS/4KSw4KWN4KSv4KS+4KSkIOCkleClgCDgpLjgpY3igI3gpKXgpL/gpKTgpL8g4KSq4KSwIOCkp+CljeKAjeCkr+CkvuCkqCDgpKbgpL/gpI8g4KSs4KS/4KSo4KS+LCDgpJDgpKrgpY3gpLgg4KSV4KWLIOCkleCli+CkiCDgpJfgpKTgpL/gpLXgpL/gpKfgpL8g4KSq4KWN4KSw4KS+4KSw4KSC4KStIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0U2NyZWVuQ29tcGF0aWJpbGl0eSIgbXNnaWQ9IjY5NzUzODcxMTg4NjE4NDIwNjEiPiLgpLjgpY3igI3gpJXgpY3gpLDgpYDgpKgg4KS44KSC4KSX4KSk4KSk4KS+IOCkuOClh+CknyDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjkyMDQzNjE4NjkzOTE3Mzc0Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpIXgpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkleClhyDgpLjgpY3igI3gpJXgpY3gpLDgpYDgpKgg4KS44KSC4KSX4KSk4KSk4KS+IOCkruCli+CkoSDgpJXgpYsg4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4oCN4KS4IOCkheCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSV4KS+IOCkteCljeKAjeCkr+CkteCkueCkvuCksCDgpKzgpL7gpKfgpL/gpKQg4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXREZWJ1Z0FwcCIgbXNnaWQ9IjMwMjIxMDcxOTg2ODY1ODQwNTIiPiLgpI/gpKrgpY3igI3gpLgg4KSh4KWA4KSs4KSXIOCkleCksOCkqOCkviDgpLjgpJXgpY3gpLfgpK4g4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0RGVidWdBcHAiIG1zZ2lkPSI0NDc0NTEyNDE2Mjk5MDEzMjU2Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIXgpKjgpY3gpK8g4KSP4KSq4KWN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSh4KWA4KSs4KSXIOCkleCkv+Ckr+CkviDgpJzgpL7gpKjgpL4g4KSa4KS+4KSy4KWCIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4KS4IOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSF4KSo4KWN4KSvIOCkj+CkquCljeCkuCDgpJXgpYsg4KS44KSu4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFNjcmVlbkNvbXBhdGliaWxpdHkiIG1zZ2lkPSI2OTIwNDM2MTg2OTM5MTczNzQiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkheCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWHIOCkuOCljeKAjeCkleCljeCksOClgOCkqCDgpLjgpILgpJfgpKTgpKTgpL4g4KSu4KWL4KShIOCkleCliyDgpKjgpL/gpK/gpILgpKTgpY3gpLDgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLgg4KSF4KSo4KWN4oCN4KSvIOCkkOCkquCljeCkuCDgpJXgpL4g4KS14KWN4oCN4KSv4KS14KS54KS+4KSwIOCkrOCkvuCkp+Ckv+CkpCDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldERlYnVnQXBwIiBtc2dpZD0iMzAyMjEwNzE5ODY4NjU4NDA1MiI+IuCkkOCkquCljeCkuCDgpKHgpYDgpKzgpJcg4KSV4KSw4KSo4KS+IOCkuOCkleCljeCkt+CkriDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXREZWJ1Z0FwcCIgbXNnaWQ9IjQ0NzQ1MTI0MTYyOTkwMTMyNTYiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpIXgpKjgpY3gpK8g4KSQ4KSq4KWN4KS4ICDgpJXgpYcg4KSy4KS/4KSPIOCkoeClgOCkrOCklyDgpJXgpL/gpK/gpL4g4KSc4KS+4KSo4KS+IOCkmuCkvuCksuClgiDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCAg4KSH4KS44KSV4KS+IOCkieCkquCkr+Cli+CklyDgpIXgpKjgpY3gpK8g4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KS44KSu4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlQ29uZmlndXJhdGlvbiIgbXNnaWQ9IjQxNjIwOTIxODUxMjQyMzQ0ODAiPiLgpLjgpL/gpLjgpY3igI3gpJ/gpK4g4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIOCkuOClh+Ckn+Ckv+CkguCklyDgpKzgpKbgpLLgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb25maWd1cmF0aW9uIiBtc2dpZD0iNDM3MjIyMzg3MzE1NDI5NjA3NiI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KS14KSw4KWN4KSk4KSu4KS+4KSoIOCkleClieCkqOCljeCkq+CkvOCkv+Ckl+CksOClh+CktuCkqCwg4KSc4KWI4KS44KWHIOCkuOCljeCkpeCkvuCkqCDgpK/gpL4g4KS44KSu4KSX4KWN4KSwIOCkheCkleCljeCkt+CksOCli+CkgiDgpJXgpL4g4KSG4KSV4KS+4KSwLCDgpKzgpKbgpLLgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb25maWd1cmF0aW9uIiBtc2dpZD0iNDM3MjIyMzg3MzE1NDI5NjA3NiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkteCksOCljeCkpOCkruCkvuCkqCDgpJXgpYngpKjgpY3gpKvgpLzgpL/gpJfgpLDgpYfgpLbgpKgsIOCknOCliOCkuOClhyDgpLjgpY3gpKXgpL7gpKgg4KSv4KS+IOCkuOCkruCkl+CljeCksCDgpIXgpJXgpY3gpLfgpLDgpYvgpIIg4KSV4KS+IOCkhuCkleCkvuCksCwg4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9lbmFibGVDYXJNb2RlIiBtc2dpZD0iNTY4NDUwNDA1ODE5MjkyMTA5OCI+IuCkleCkvuCksCDgpK7gpYvgpKEg4KS44KSV4KWN4KS34KSuIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2VuYWJsZUNhck1vZGUiIG1zZ2lkPSI0ODUzMTg3NDI1NzUxNDE5NDY3Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpJXgpL7gpLAg4KSu4KWL4KShIOCkuOCkleCljeCkt+CkriDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iMzkxNDAyNjY4NzQyMDE3NzIwMiI+IuCkheCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSs4KSC4KSmIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iNDU5MzM1MzIzNTk1OTczMzExOSI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSF4KSo4KWN4oCN4KSvIOCkj+CkquCljeKAjeCkuCDgpJXgpYAg4KSq4KWD4KS34KWN4KSg4KSt4KWC4KSu4KS/IOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkvuCkk+CkgiDgpJXgpYsg4KS44KSu4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpK/gpLkg4KSF4KSo4KWN4KSvIOCkj+CkquCljeCkuCDgpJXgpL4g4KSa4KSy4KSo4KS+IOCksOCli+CklSDgpLjgpJXgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZm9yY2VTdG9wUGFja2FnZXMiIG1zZ2lkPSIyMzI5NjI3NDI4ODMyMDY3NzAwIj4i4KSF4KSo4KWN4oCN4KSvIOCkj+CkquCljeKAjeCkuCDgpKzgpLLgpKrgpYLgpLDgpY3gpLXgpJUg4KSs4KSC4KSmIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZvcmNlU3RvcFBhY2thZ2VzIiBtc2dpZD0iNTI1MzE1NzI5NjE4Mzk0MDgxMiI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSF4KSo4KWN4KSvIOCkj+CkquCljeCkuCDgpKzgpLLgpKrgpYLgpLDgpY3gpLXgpJUg4KSs4KSC4KSmIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZm9yY2VCYWNrIiBtc2dpZD0iNjUyOTM1MjA0MDcyNTg0NjE2Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpKzgpLLgpKrgpYLgpLDgpY3gpLXgpJUg4KSs4KSC4KSmIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZvcmNlQmFjayIgbXNnaWQ9IjM4OTIyOTU4MzA0MTk1MTM2MjMiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkheCkl+CljeCksOCkreClguCkruCkvyDgpK7gpYfgpIIg4KSa4KSyIOCksOCkueClgCDgpJXgpYvgpIgg4KSt4KWAIOCkl+CkpOCkv+CkteCkv+Ckp+CkvyDgpKzgpLLgpKrgpYLgpLDgpY3gpLXgpJUg4KSs4KSC4KSmIOCkleCksOCkqOClhyDgpJTgpLAg4KS14KS+4KSq4KS4IOCknOCkvuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZW5hYmxlQ2FyTW9kZSIgbXNnaWQ9IjQ4NTMxODc0MjU3NTE0MTk0NjciPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpJXgpL7gpLAg4KSu4KWL4KShIOCkuOCkleCljeCkt+CkriDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iMzkxNDAyNjY4NzQyMDE3NzIwMiI+IuCkheCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSs4KSC4KSmIOCkleCksOClh+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iNDU5MzM1MzIzNTk1OTczMzExOSI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkheCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWAIOCkquClg+Ckt+CljeCkoOCkreClguCkruCkvyDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL7gpJPgpIIg4KSV4KWLIOCkuOCkruCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkheCkqOCljeCkryDgpJDgpKrgpY3gpLggIOCkleCkviDgpJrgpLLgpKjgpL4g4KSw4KWL4KSVIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mb3JjZVN0b3BQYWNrYWdlcyIgbXNnaWQ9IjIzMjk2Mjc0Mjg4MzIwNjc3MDAiPiLgpIXgpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4IOCkrOCksuCkquClguCksOCljeCkteCklSDgpKzgpILgpKYg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZm9yY2VTdG9wUGFja2FnZXMiIG1zZ2lkPSI1MjUzMTU3Mjk2MTgzOTQwODEyIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSF4KSo4KWN4KSvIOCkkOCkquCljeCkuCAg4KSs4KSy4KSq4KWC4KSw4KWN4KS14KSVIOCkrOCkguCkpiDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZvcmNlQmFjayIgbXNnaWQ9IjY1MjkzNTIwNDA3MjU4NDYxNiI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSs4KSy4KSq4KWC4KSw4KWN4KS14KSVIOCkrOCkguCkpiDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mb3JjZUJhY2siIG1zZ2lkPSIzODkyMjk1ODMwNDE5NTEzNjIzIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSF4KSX4KWN4KSw4KSt4KWC4KSu4KS/IOCkruClh+CkgiDgpJrgpLIg4KSw4KS54KWAIOCkleCli+CkiCDgpK3gpYAg4KSX4KSk4KS/4KS14KS/4KSn4KS/IOCkrOCksuCkquClguCksOCljeCkteCklSDgpKzgpILgpKYg4KSV4KSw4KSo4KWHIOCklOCksCDgpLXgpL7gpKrgpLgg4KSc4KS+4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2R1bXAiIG1zZ2lkPSIxNjgxNzk5ODYyNDM4OTU0NzUyIj4i4KS44KS/4KS44KWN4oCN4KSf4KSuIOCkleClgCDgpIbgpILgpKTgpLDgpL/gpJUg4KS44KWN4oCN4KSl4KS/4KSk4KS/IOCkquClgeCkqOCksOCljeCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kdW1wIiBtc2dpZD0iMTc3ODI5OTA4ODY5MjI5MDMyOSI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KS44KS/4KS44KWN4oCN4KSf4KSuIOCkleClgCDgpIbgpILgpKTgpLDgpL/gpJUg4KS44KWN4oCN4KSl4KS/4KSk4KS/IOCkquClgeCkqOCksOCljeCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkj+CkquCljeKAjeCkuCDgpLXgpL/gpK3gpL/gpKjgpY3igI3gpKgg4KSq4KWN4KSw4KSV4KS+4KSwIOCkleClgCDgpKjgpL/gpJzgpYAg4KSU4KSwIOCkuOClgeCksOCkleCljeCkt+CkviDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCIOCknOCkv+CkqOCkleClgCDgpIngpKjgpY3igI3gpLngpYfgpIIg4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSv4KSkOiDgpIbgpLXgpLbgpY3igI3gpK/gpJXgpKTgpL4g4KSo4KS54KWA4KSCIOCkueCli+CkpOClgC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kdW1wIiBtc2dpZD0iMTc3ODI5OTA4ODY5MjI5MDMyOSI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KS44KS/4KS44KWN4oCN4KSf4KSuIOCkleClgCDgpIbgpILgpKTgpLDgpL/gpJUg4KS44KWN4oCN4KSl4KS/4KSk4KS/IOCkquClgeCkqOCksOCljeCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCDgpLXgpL/gpK3gpL/gpKjgpY3igI3gpKgg4KSq4KWN4KSw4KSV4KS+4KSwIOCkleClgCDgpKjgpL/gpJzgpYAg4KSU4KSwIOCkuOClgeCksOCkleCljeCkt+CkviDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCIOCknOCkv+CkqOCkleClgCDgpIngpKjgpY3igI3gpLngpYfgpIIg4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSv4KSkOiDgpIbgpLXgpLbgpY3igI3gpK/gpJXgpKTgpL4g4KSo4KS54KWA4KSCIOCkueCli+CkpOClgC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iODAyMjU4ODYwODk5NDU4OTkzOCI+IuCkuOCljeKAjeCkleCljeCksOClgOCkqCDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSq4KWB4KSo4KSw4KWN4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iMzE5MzI2OTA2OTQ2OTcwMDI2NSI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KS44KSV4KWN4KSw4KS/4KSvIOCkteCkv+CkguCkoeCliyDgpJXgpYAg4KS44KS+4KSu4KSX4KWN4KSw4KWAIOCkquClgeCkqOCksOCljeCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkj+CkquCljeKAjeCkuCDgpLXgpL/gpILgpKHgpYsg4KSV4KWAIOCkuOCkguCkquClguCksOCljeCkoyDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCIOCklOCksCDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSV4KWLIOCkm+Cli+CkoeCkvOCkleCksCDgpIfgpLjgpJXgpYcg4KS44KSt4KWAIOCkquCkvuCkoCDgpJzgpL7gpILgpJog4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZXRyaWV2ZV93aW5kb3dfY29udGVudCIgbXNnaWQ9IjMxOTMyNjkwNjk0Njk3MDAyNjUiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkuOCkleCljeCksOCkv+CkryDgpLXgpL/gpILgpKHgpYsg4KSV4KWAIOCkuOCkvuCkruCkl+CljeCksOClgCDgpKrgpYHgpKjgpLDgpY3gpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLgg4KS14KS/4KSC4KSh4KWLIOCkleClgCDgpLjgpILgpKrgpYLgpLDgpY3gpKMg4KS44KS+4KSu4KSX4KWN4KSw4KWAIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgiDgpJTgpLAg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkleCliyDgpJvgpYvgpKHgpLzgpJXgpLAg4KSH4KS44KSV4KWHIOCkuOCkreClgCDgpKrgpL7gpKAg4KSc4KS+4KSC4KSaIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl90ZW1wb3JhcnlfZW5hYmxlX2FjY2Vzc2liaWxpdHkiIG1zZ2lkPSIyMzEyNjEyMTM1MTI3MzEwMjU0Ij4i4KSG4KS44KS+4KSoIOCkpOCksOClgOCkleCkviDgpJXgpYsg4KSF4KS44KWN4KSl4KS+4KSv4KWAIOCksOClguCkqiDgpLjgpYcg4KS44KSV4KWN4KS34KSuIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3RlbXBvcmFyeV9lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjgwNzk0NTYyOTMxODI5NzU0NjQiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkieCkquCkleCksOCkoyDgpKrgpLAg4KSG4KS44KS+4KSoIOCkpOCksOClgOCkleCkviDgpJXgpYsg4KSF4KS44KWN4KSl4KS+4KSv4KWAIOCksOClguCkqiDgpLjgpYcg4KS44KSV4KWN4KS34KSuIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4KS4IOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpJXgpYAg4KS44KS54KSu4KSk4KS/IOCkleClhyDgpKzgpL/gpKjgpL4g4KSG4KS44KS+4KSoIOCkpOCksOClgOCkleCkviDgpJXgpYsg4KS44KSV4KWN4KS34KSuIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3RlbXBvcmFyeV9lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjgwNzk0NTYyOTMxODI5NzU0NjQiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpIngpKrgpJXgpLDgpKMg4KSq4KSwIOCkhuCkuOCkvuCkqCDgpKTgpLDgpYDgpJXgpL4g4KSV4KWLIOCkheCkuOCljeCkpeCkvuCkr+ClgCDgpLDgpYLgpKog4KS44KWHIOCkuOCkleCljeCkt+CkriDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCAg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkleClgCDgpLjgpLngpK7gpKTgpL8g4KSV4KWHIOCkrOCkv+CkqOCkviDgpIbgpLjgpL7gpKgg4KSk4KSw4KWA4KSV4KS+IOCkleCliyDgpLjgpJXgpY3gpLfgpK4g4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9Ijg1MzIyOTUxOTkxMTI1MTkzNzgiPiLgpLXgpL/gpILgpKHgpYsg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9IjQ5OTg4MzYzNzA0MjQxODY4NDkiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkteCkv+CkguCkoeCliyDgpKrgpY3gpLDgpKzgpILgpKfgpJUg4KS44KWHIHdpbmRvd3Mg4KSV4KWHIOCkrOCkvuCksOClhyDgpK7gpYfgpIIg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkj+CkquCljeKAjeCkuCDgpIbgpILgpKTgpLDgpL/gpJUg4KS44KS/4KS44KWN4KSf4KSuIOCkieCkquCkr+Cli+CklyDgpJXgpYcg4KSy4KS/4KSPIOCkheCkreCkv+CkquCljeCksOClh+CkpCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSV4KWLIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9IjQ5OTg4MzYzNzA0MjQxODY4NDkiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkteCkv+CkguCkoeCliyDgpKrgpY3gpLDgpKzgpILgpKfgpJUg4KS44KWHIHdpbmRvd3Mg4KSV4KWHIOCkrOCkvuCksOClhyDgpK7gpYfgpIIg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCDgpIbgpILgpKTgpLDgpL/gpJUg4KS44KS/4KS44KWN4KSf4KSuIOCkieCkquCkr+Cli+CklyDgpJXgpYcg4KSy4KS/4KSPIOCkheCkreCkv+CkquCljeCksOClh+CkpCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSV4KWLIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4Njc1NTM1NjQ4ODA3NDI3Mzg5Ij4i4KSI4KS14KWH4KSC4KSfIOCkq+CkvOCkv+CksuCljeCkn+CksCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19maWx0ZXJfZXZlbnRzIiBtc2dpZD0iODAwNjIzNjMxNTg4ODM0NzY4MCI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSH4KSo4KSq4KWB4KSfIOCkq+CkvOCkv+CksuCljeKAjeCkn+CksCDgpKrgpILgpJzgpYDgpJXgpYPgpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgsIOCknOCliyDgpLjgpK3gpYAg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkiOCkteClh+CkguCknyDgpJXgpYcg4KS44KWN4oCN4KSf4KWN4KSw4KWA4KSuIOCkleCliyDgpK3gpYfgpJzgpYcg4KSc4KS+4KSo4KWHIOCkuOClhyDgpKrgpLngpLLgpYcg4KSr4KS84KS/4KSy4KWN4oCN4KSf4KSwIOCkleCksOCkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpI/gpKrgpY3igI3gpLgg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkleClhyDgpLngpLjgpY3igI3gpKTgpJXgpY3gpLfgpYfgpKog4KSV4KWHIOCkrOCkv+CkqOCkviDgpLjgpL/gpLjgpY3igI3gpJ/gpK4gVUkg4KSV4KWLIOCkqOCkv+Ckr+CkguCkpOCljeCksOCkv+CkpCDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19maWx0ZXJfZXZlbnRzIiBtc2dpZD0iODAwNjIzNjMxNTg4ODM0NzY4MCI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSH4KSo4KSq4KWB4KSfIOCkq+CkvOCkv+CksuCljeKAjeCkn+CksCDgpKrgpILgpJzgpYDgpJXgpYPgpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgsIOCknOCliyDgpLjgpK3gpYAg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkiOCkteClh+CkguCknyDgpJXgpYcg4KS44KWN4oCN4KSf4KWN4KSw4KWA4KSuIOCkleCliyDgpK3gpYfgpJzgpYcg4KSc4KS+4KSo4KWHIOCkuOClhyDgpKrgpLngpLLgpYcg4KSr4KS84KS/4KSy4KWN4oCN4KSf4KSwIOCkleCksOCkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLgg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkleClhyDgpLngpLjgpY3igI3gpKTgpJXgpY3gpLfgpYfgpKog4KSV4KWHIOCkrOCkv+CkqOCkviDgpLjgpL/gpLjgpY3igI3gpJ/gpK4gVUkg4KSV4KWLIOCkqOCkv+Ckr+CkguCkpOCljeCksOCkv+CkpCDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hZ25pZnlfZGlzcGxheSIgbXNnaWQ9IjU5NzM2MjY3MzgxNzA2MTg3NzUiPiLgpKHgpL/gpLjgpY3gpKrgpY3gpLLgpYcg4KSV4KWLIOCkhuCkteCksOCljeCkp+Ckv+CkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI3MTIxMjM1Njg0NTE1MDAzNzkyIj4i4KSP4KSq4KWN4KS4IOCkleCliyDgpKHgpL/gpLjgpY3gpKrgpY3gpLLgpYcg4KSV4KWAIOCkuOCkvuCkruCkl+CljeCksOClgCDgpIbgpLXgpLDgpY3gpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpI/gpKrgpY3gpLgg4KSh4KS/4KS44KWN4KSq4KWN4KSy4KWHIOCkuOCkvuCkruCkl+CljeCksOClgCDgpJXgpYsg4KSH4KS4IOCkpOCksOCkuSDgpLjgpYcg4KSs4KSm4KSyIOCkuOCkleCkpOClhyDgpLngpYjgpIIg4KSV4KS/IOCkieCkquCkleCksOCkoyDgpIXgpKjgpYHgpKrgpK/gpYvgpJfgpYAg4KSw4KWH4KSC4KSh4KSwIOCkueCli+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFnbmlmeV9kaXNwbGF5IiBtc2dpZD0iNzEyMTIzNTY4NDUxNTAwMzc5MiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkoeCkv+CkuOCljeCkquCljeCksuClhyDgpJXgpYAg4KS44KS+4KSu4KSX4KWN4KSw4KWAIOCkhuCkteCksOCljeCkp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCAg4KSh4KS/4KS44KWN4KSq4KWN4KSy4KWHIOCkuOCkvuCkruCkl+CljeCksOClgCDgpJXgpYsg4KSH4KS4IOCkpOCksOCkuSDgpLjgpYcg4KSs4KSm4KSyIOCkuOCkleCkpOClhyDgpLngpYjgpIIg4KSV4KS/IOCkieCkquCkleCksOCkoyDgpIXgpKjgpYHgpKrgpK/gpYvgpJfgpYAg4KSw4KWH4KSC4KSh4KSwIOCkueCli+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zaHV0ZG93biIgbXNnaWQ9IjcxODU3NDc4MjQwMzg5MDkwMTYiPiLgpIbgpILgpLbgpL/gpJUg4KS24KSf4KSh4KS+4KSJ4KSoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2h1dGRvd24iIG1zZ2lkPSI3MDQ2NTAwODM4NzQ2MjkxNzc1Ij4i4KSX4KSk4KS/4KS14KS/4KSn4KS/IOCkquCljeCksOCkrOCkguCkp+CklSDgpJXgpYsg4KS24KSf4KSh4KS+4KSJ4KSoIOCkuOCljeKAjeCkpeCkv+CkpOCkvyDgpK7gpYfgpIIg4KSw4KSW4KSk4KS+IOCkueCliC4g4KSq4KWC4KSw4KWN4KSjIOCktuCkn+CkoeCkvuCkieCkqCDgpKjgpL/gpLfgpY3igI3gpKrgpL7gpKbgpL/gpKQg4KSo4KS54KWA4KSCIOCkleCksOCkpOCkviDgpLngpYguIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI0MTM4NjA4NjEwNzE3NDI1NTczIj4i4KSP4KSq4KWN4oCN4KS4IOCkuOCljeKAjeCkteCkv+CkmiDgpJXgpLDgpKjgpYcg4KS44KWHIOCksOCli+CkleCkpOCkviDgpLngpYgiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI4MjYyMTk1ODAyNTgyMjU1MDIxIj4i4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkleCliyDgpKbgpYLgpLjgpLDgpYcg4KSP4KSq4KWN4oCN4KS4IOCkquCksCDgpLjgpY3igI3gpLXgpL/gpJog4KSV4KSw4KSo4KWHIOCkuOClhyDgpLDgpYvgpJXgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0VG9wQWN0aXZpdHlJbmZvIiBtc2dpZD0iMjUzNzkyMjMxMTQxMTU0NjAxNiI+IuCkteCksOCljeCkpOCkruCkvuCkqCDgpI/gpKrgpY3gpLgg4KSV4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0VG9wQWN0aXZpdHlJbmZvIiBtc2dpZD0iMjUxMjQ0ODg1NTQ5NjA2NzEzMSI+IuCkp+CkvuCksOCklSDgpJXgpYsg4KS44KWN4KSV4KWN4KSw4KWA4KSoIOCkleClhyDgpIXgpJfgpY3gpLDgpK3gpL7gpJcg4KSu4KWH4KSCIOCkuOCljeCkpeCkv+CkpCDgpLXgpLDgpY3gpKTgpK7gpL7gpKgg4KSP4KSq4KWN4KS4IOCkleClhyDgpKzgpL7gpLDgpYcg4KSu4KWH4KSCIOCkqOCkv+CknOClgCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcnVuU2V0QWN0aXZpdHlXYXRjaGVyIiBtc2dpZD0iODkyMjM5MDk0ODY3MTgyNjU2Ij4i4KS44KSt4KWAIOCkj+CkquCljeKAjeCkuCDgpJXgpYAg4KSy4KWJ4KSo4KWN4oCN4KSa4KS/4KSC4KSXIOCkleClgCDgpKjgpL/gpJfgpLDgpL7gpKjgpYAg4KSV4KSw4KWH4KSCIOCklOCksCDgpIngpLjgpYcg4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3J1blNldEFjdGl2aXR5V2F0Y2hlciIgbXNnaWQ9IjYwMDM2MDMxNjI1Nzg1Nzc0MDYiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkr+CkuSDgpKjgpL/gpJfgpLDgpL7gpKjgpYAg4KSU4KSwIOCkqOCkv+Ckr+CkguCkpOCljeCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCDgpJXgpL8g4KS44KS/4KS44KWN4KSf4KSuIOCkleCliOCkuOClhyDgpJfgpKTgpL/gpLXgpL/gpKfgpL/gpK/gpL7gpIIg4KSy4KWJ4KSo4KWN4KSaIOCkleCksOCkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpI/gpKrgpY3gpLgg4KS44KS/4KS44KWN4KSf4KSuIOCkleCliyDgpKrgpYLgpLDgpYAg4KSk4KSw4KS5IOCkuOClhyDgpJzgpYvgpJbgpL/gpK4g4KSu4KWH4KSCIOCkoeCkvuCksiDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiDgpIfgpLgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkleClgCDgpIbgpLXgpLbgpY3gpK/gpJXgpKTgpL4g4KSV4KWH4KS14KSyIOCkteCkv+CkleCkvuCkuCDgpJXgpYcg4KSy4KS/4KSPIOCkueCliCwg4KS44KS+4KSu4KS+4KSo4KWN4KSvIOCkieCkquCkr+Cli+CklyDgpJXgpYcg4KSy4KS/4KSPIOCkleCkreClgCDgpKjgpLngpYDgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI0MTM4NjA4NjEwNzE3NDI1NTczIj4i4KSQ4KSq4KWN4KS4IOCkuOCljeKAjeCkteCkv+CkmiDgpJXgpLDgpKjgpYcg4KS44KWHIOCksOCli+CkleCkpOCkviDgpLngpYgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI4MjYyMTk1ODAyNTgyMjU1MDIxIj4i4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkleCliyDgpKbgpYLgpLjgpLDgpYcg4KSQ4KSq4KWN4KS4IOCkquCksCDgpLjgpY3igI3gpLXgpL/gpJog4KSV4KSw4KSo4KWHIOCkuOClhyDgpLDgpYvgpJXgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0VG9wQWN0aXZpdHlJbmZvIiBtc2dpZD0iMjUzNzkyMjMxMTQxMTU0NjAxNiI+IuCkteCksOCljeCkpOCkruCkvuCkqCDgpJDgpKrgpY3gpLggIOCkleClgCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRvcEFjdGl2aXR5SW5mbyIgbXNnaWQ9IjI1MTI0NDg4NTU0OTYwNjcxMzEiPiLgpKfgpL7gpLDgpJUg4KSV4KWLIOCkuOCljeCkleCljeCksOClgOCkqCDgpJXgpYcg4KSF4KSX4KWN4KSw4KSt4KS+4KSXIOCkruClh+CkgiDgpLjgpY3gpKXgpL/gpKQg4KS14KSw4KWN4KSk4KSu4KS+4KSoIOCkkOCkquCljeCkuCAg4KSV4KWHIOCkrOCkvuCksOClhyDgpK7gpYfgpIIg4KSo4KS/4KSc4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ydW5TZXRBY3Rpdml0eVdhdGNoZXIiIG1zZ2lkPSI4OTIyMzkwOTQ4NjcxODI2NTYiPiLgpLjgpK3gpYAg4KSQ4KSq4KWN4KS4IOCkleClgCDgpLLgpYngpKjgpY3igI3gpJrgpL/gpILgpJcg4KSV4KWAIOCkqOCkv+Ckl+CksOCkvuCkqOClgCDgpJXgpLDgpYfgpIIg4KSU4KSwIOCkieCkuOClhyDgpKjgpL/gpK/gpILgpKTgpY3gpLDgpL/gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcnVuU2V0QWN0aXZpdHlXYXRjaGVyIiBtc2dpZD0iNjAwMzYwMzE2MjU3ODU3NzQwNiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkr+CkuSDgpKjgpL/gpJfgpLDgpL7gpKjgpYAg4KSU4KSwIOCkqOCkv+Ckr+CkguCkpOCljeCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCDgpJXgpL8g4KS44KS/4KS44KWN4KSf4KSuIOCkleCliOCkuOClhyDgpJfgpKTgpL/gpLXgpL/gpKfgpL/gpK/gpL7gpIIg4KSy4KWJ4KSo4KWN4KSaIOCkleCksOCkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLggIOCkuOCkv+CkuOCljeCkn+CkriDgpJXgpYsg4KSq4KWC4KSw4KWAIOCkpOCksOCkuSDgpLjgpYcg4KSc4KWL4KSW4KS/4KSuIOCkruClh+CkgiDgpKHgpL7gpLIg4KS44KSV4KSk4KWHIOCkueCliOCkgi4g4KSH4KS4IOCkheCkqOClgeCkruCkpOCkvyDgpJXgpYAg4KSG4KS14KS24KWN4KSv4KSV4KSk4KS+IOCkleClh+CkteCksiDgpLXgpL/gpJXgpL7gpLgg4KSV4KWHIOCksuCkv+CkjyDgpLngpYgsIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIngpKrgpK/gpYvgpJcg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSo4KS54KWA4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSIyNTc2MzMzNDM0ODkzNTMyNDc1Ij4i4KSq4KWI4KSV4KWH4KScIOCkqOCkv+CkleCkvuCksuClhyDgpJfgpI8g4KSq4KWN4KSw4KS44KS+4KSw4KSjIOCkreClh+CknOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFBhY2thZ2VSZW1vdmVkIiBtc2dpZD0iNjYyMTkwMTIxNjIwNzkzMTA4OSI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSV4KWL4KSIIOCkkOCkuOClgCDgpLjgpYLgpJrgpKjgpL4g4KSq4KWN4KSw4KS44KS+4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCknOCkv+CkuOClhyDgpJXgpL/gpLjgpYAg4KSP4KSq4KWN4KS4IOCkquCliOCkleClh+CknCDgpKjgpYcg4KSo4KS/4KSV4KS+4KSyIOCkpuCkv+Ckr+CkviDgpJfgpK/gpL4g4KS54KWLLiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4KS4IOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSa4KSyIOCksOCkueClhyDgpIXgpKjgpY3gpK8g4KSP4KSq4KWN4KS4IOCkleCliyDgpLjgpK7gpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSI2NjIxOTAxMjE2MjA3OTMxMDg5Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSV4KWL4KSIIOCkkOCkuOClgCDgpLjgpYLgpJrgpKjgpL4g4KSq4KWN4KSw4KS44KS+4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCknOCkv+CkuOClhyDgpJXgpL/gpLjgpYAg4KSQ4KSq4KWN4KS4ICDgpKrgpYjgpJXgpYfgpJwg4KSo4KWHIOCkqOCkv+CkleCkvuCksiDgpKbgpL/gpK/gpL4g4KSX4KSv4KS+IOCkueCliy4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCAg4KSH4KS44KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJrgpLIg4KSw4KS54KWHIOCkheCkqOCljeCkryDgpJDgpKrgpY3gpLggIOCkleCliyDgpLjgpK7gpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RTbXNSZWNlaXZlZCIgbXNnaWQ9IjU2ODkwOTUwMDkwMzAzMzY1OTMiPiJTTVMt4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkquCljeCksOCkuOCkvuCksCDgpK3gpYfgpJzgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RTbXNSZWNlaXZlZCIgbXNnaWQ9IjQxNTIwMzc3MjAwMzQzNjU0OTIiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkteCkuSDgpLjgpYLgpJrgpKjgpL4g4KSq4KWN4KSw4KS44KS+4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCknOCliyBTTVMg4KS44KSC4KSm4KWH4KS2IOCkqOClhyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KWAIOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkj+CkquCljeCkuCDgpIfgpLjgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkqOCkleCksuClgCDgpIfgpKjgpJXgpK7gpL/gpILgpJcg4KS44KSC4KSm4KWH4KS2IOCkl+CkouCkvOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFNtc1JlY2VpdmVkIiBtc2dpZD0iNDE1MjAzNzcyMDAzNDM2NTQ5MiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkteCkuSDgpLjgpYLgpJrgpKjgpL4g4KSq4KWN4KSw4KS44KS+4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCknOCliyBTTVMg4KS44KSC4KSm4KWH4KS2IOCkqOClhyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KWAIOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCAg4KSH4KS44KSV4KS+IOCkieCkquCkr+Cli+CklyDgpKjgpJXgpLLgpYAg4KSH4KSo4KSV4KSu4KS/4KSC4KSXIOCkuOCkguCkpuClh+CktiDgpJfgpKLgpLzgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Jyb2FkY2FzdFdhcFB1c2giIG1zZ2lkPSIzMTQ1MzQ3NDEzMDI4NTgyMzcxIj4iV0FQLVBVU0gt4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkquCljeCksOCkuOCkvuCksOCkoyDgpK3gpYfgpJzgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RXYXBQdXNoIiBtc2dpZD0iNDc4MzQwMjUyNTAzOTQ0MjcyOSI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KS14KS5IOCkuOClguCkmuCkqOCkviDgpKrgpY3gpLDgpLjgpL7gpLDgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgg4KSc4KWLIFdBUCBQVVNIIOCkuOCkguCkpuClh+CktiDgpJXgpYsg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkueClgeCkhiDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpI/gpKrgpY3gpLgg4KSH4KS44KSV4KS+IOCkieCkquCkr+Cli+CklyDgpKjgpJXgpLLgpYAgTU1TIOCkuOCkguCkpuClh+CktiDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHIOCkr+CkviDgpJXgpL/gpLjgpYAg4KS14KWH4KSs4KSq4KWD4KS34KWN4KSgIOCkleClgCDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSV4KWLIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpKbgpYLgpLjgpLDgpYcg4KSw4KWC4KSqIOCkuOClhyDgpJrgpYHgpKrgpJrgpL7gpKog4KSq4KWN4KSw4KSk4KS/4KS44KWN4KSl4KS+4KSq4KS/4KSkIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFdhcFB1c2giIG1zZ2lkPSI0NzgzNDAyNTI1MDM5NDQyNzI5Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KS14KS5IOCkuOClguCkmuCkqOCkviDgpKrgpY3gpLDgpLjgpL7gpLDgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgg4KSc4KWLIFdBUCBQVVNIIOCkuOCkguCkpuClh+CktiDgpJXgpYsg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkueClgeCkhiDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLggIOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSo4KSV4KSy4KWAIE1NUyDgpLjgpILgpKbgpYfgpLYg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpK/gpL4g4KSV4KS/4KS44KWAIOCkteClh+CkrOCkquClg+Ckt+CljeCkoCDgpJXgpYAg4KS44KS+4KSu4KSX4KWN4KSw4KWAIOCkleCliyDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSm4KWC4KS44KSw4KWHIOCksOClguCkqiDgpLjgpYcg4KSa4KWB4KSq4KSa4KS+4KSqIOCkquCljeCksOCkpOCkv+CkuOCljeCkpeCkvuCkquCkv+CkpCDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFByb2Nlc3NMaW1pdCIgbXNnaWQ9IjI0NTE4NzM2NjQzNjM2NjI2NjYiPiLgpJrgpLIg4KSw4KS54KWAIOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkvuCkk+CkgiDgpJXgpYAg4KS44KSC4KSW4KWN4oCN4KSv4KS+IOCkuOClgOCkruCkv+CkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRQcm9jZXNzTGltaXQiIG1zZ2lkPSI3MzE4MDYxMzE0MDQwODc5NTQyIj4i4KSP4KSq4KWN4KS4IOCkleCliyDgpJrgpLLgpL7gpIgg4KSc4KS+4KSo4KWHIOCkteCkvuCksuClgCDgpIXgpKfgpL/gpJXgpKTgpK4g4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+4KST4KSCIOCkleCliyDgpKjgpL/gpK/gpILgpKTgpY3gpLDgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpI/gpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSG4KS14KS24KWN4KSv4KSVIOCkqOCkueClgOCkgiDgpLngpYvgpKTgpYAuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbHdheXNGaW5pc2giIG1zZ2lkPSI1NTA5NTg1MDc3OTg3OTY5NjUiPiLgpKrgpYPgpLfgpY3gpKDgpK3gpYLgpK7gpL8g4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpKzgpLLgpKrgpYLgpLDgpY3gpLXgpJUg4KSs4KSC4KSmIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFsd2F5c0ZpbmlzaCIgbXNnaWQ9Ijc0NzEzMTA2NTI4Njg4NDE0OTkiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkr+CkuSDgpKjgpL/gpK/gpILgpKTgpY3gpLDgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgg4KSV4KS/IOCkquClg+Ckt+CljeCkoOCkreClguCkruCkvyDgpK7gpYfgpIIg4KSc4KS+4KSk4KWHIOCkueClgCDgpJfgpKTgpL/gpLXgpL/gpKfgpL/gpK/gpL7gpIIg4KSq4KWC4KSw4KWN4KSjIOCkueCliyDgpJzgpL7gpKTgpYAg4KS54KWIIOCkr+CkviDgpKjgpLngpYAuIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpI/gpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSG4KS14KS24KWN4KSv4KSV4KSk4KS+IOCkqOCkueClgOCkgiDgpLngpYvgpKTgpYAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJvY2Vzc0xpbWl0IiBtc2dpZD0iNzMxODA2MTMxNDA0MDg3OTU0MiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkmuCksuCkvuCkiCDgpJzgpL7gpKjgpYcg4KS14KS+4KSy4KWAIOCkheCkp+Ckv+CkleCkpOCkriDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL7gpJPgpIIg4KSV4KWLIOCkqOCkv+Ckr+CkguCkpOCljeCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4KSvIOCkkOCkquCljeCkuCAg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSG4KS14KS24KWN4KSv4KSVIOCkqOCkueClgOCkgiDgpLngpYvgpKTgpYAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbHdheXNGaW5pc2giIG1zZ2lkPSI1NTA5NTg1MDc3OTg3OTY5NjUiPiLgpKrgpYPgpLfgpY3gpKDgpK3gpYLgpK7gpL8g4KSQ4KSq4KWN4KS4IOCkleCliyDgpKzgpLLgpKrgpYLgpLDgpY3gpLXgpJUg4KSs4KSC4KSmIOCkleCksOClh+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFsd2F5c0ZpbmlzaCIgbXNnaWQ9Ijc0NzEzMTA2NTI4Njg4NDE0OTkiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpK/gpLkg4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCkleCkvyDgpKrgpYPgpLfgpY3gpKDgpK3gpYLgpK7gpL8g4KSu4KWH4KSCIOCknOCkvuCkpOClhyDgpLngpYAg4KSX4KSk4KS/4KS14KS/4KSn4KS/4KSv4KS+4KSCIOCkquClguCksOCljeCkoyDgpLngpYsg4KSc4KS+4KSk4KWAIOCkueCliCDgpK/gpL4g4KSo4KS54KWALiDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSQ4KSq4KWN4KS4ICDgpJXgpYcg4KSy4KS/4KSPIOCkleCkreClgCDgpIbgpLXgpLbgpY3gpK/gpJXgpKTgpL4g4KSo4KS54KWA4KSCIOCkueCli+CkpOClgC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JhdHRlcnlTdGF0cyIgbXNnaWQ9IjI3ODk2MTA2NzM1MTQxMDMzNjQiPiLgpKzgpYjgpJ/gpLDgpYAg4KSV4KWHIOCkhuCkguCkleCkoeCkvOClhyDgpKrgpKLgpLzgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iYXR0ZXJ5U3RhdHMiIG1zZ2lkPSI1ODk3MzQ2NTgyODgyOTE1MTE0Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpLXgpLDgpY3gpKTgpK7gpL7gpKgg4KSo4KS/4KSu4KWN4KSoLeCkuOCljeCkpOCksOClgOCkryDgpKzgpYjgpJ/gpLDgpYAg4KSJ4KSq4KSv4KWL4KSXIOCkoeClh+Ckn+CkviDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliC4g4KSP4KSq4KWN4KS4IOCkleCliyDgpIbgpKrgpJXgpYcg4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpL/gpI8g4KSc4KS+4KSo4KWHIOCkteCkvuCksuClhyDgpI/gpKrgpY3gpLgg4KSV4KWHIOCkrOCkvuCksOClhyDgpK7gpYfgpIIg4KS14KS/4KS44KWN4KSk4KWD4KSkIOCknOCkvuCkqOCkleCkvuCksOClgCDgpKLgpYLgpILgpKLgpKjgpYcg4KSm4KWHIOCkuOCkleCkpOClgCDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmF0dGVyeVN0YXRzIiBtc2dpZD0iNTg5NzM0NjU4Mjg4MjkxNTExNCI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkteCksOCljeCkpOCkruCkvuCkqCDgpKjgpL/gpK7gpY3gpKgt4KS44KWN4KSk4KSw4KWA4KSvIOCkrOCliOCkn+CksOClgCDgpIngpKrgpK/gpYvgpJcg4KSh4KWH4KSf4KS+IOCkquCkouCkvOCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiDgpJDgpKrgpY3gpLggIOCkleCliyDgpIbgpKrgpJXgpYcg4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpL/gpI8g4KSc4KS+4KSo4KWHIOCkteCkvuCksuClhyDgpJDgpKrgpY3gpLggIOCkleClhyDgpKzgpL7gpLDgpYcg4KSu4KWH4KSCIOCkteCkv+CkuOCljeCkpOClg+CkpCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSi4KWC4KSC4KSi4KSo4KWHIOCkpuClhyDgpLjgpJXgpKTgpYAg4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlQmF0dGVyeVN0YXRzIiBtc2dpZD0iMzcxOTY4OTc2NDUzNjM3OTU1NyI+IuCkrOCliOCkn+CksOClgCDgpJXgpYcg4KSG4KSC4KSV4KSh4KS84KWHIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVCYXR0ZXJ5U3RhdHMiIG1zZ2lkPSI2ODYyODE3ODU3MTc4MDI1MDAyIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpKzgpYjgpJ/gpLDgpYAg4KSV4KWHIOCkuOCkguCkleCksuCkv+CkpCDgpIbgpILgpJXgpKHgpLzgpYvgpIIg4KSV4KWLIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkj+CkquCljeKAjeCkuCDgpJXgpYcg4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpKjgpLngpYDgpIIuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRBcHBPcHNTdGF0cyIgbXNnaWQ9IjE1MDg3Nzk2ODc0MzY1ODU3NDQiPiLgpI/gpKrgpY3gpLgg4KS44KSC4KSa4KS+4KSy4KSoIOCkhuCkguCkleCkoeCkvOClhyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QXBwT3BzU3RhdHMiIG1zZ2lkPSI2MjQzODg3MDQxNTc3OTEyODc3Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpLjgpILgpJXgpLLgpL/gpKQg4KSP4KSq4KWN4KS4IOCkuOCkguCkmuCkvuCksuCkqCDgpIbgpILgpJXgpKHgpLzgpYcg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSP4KSq4KWN4KS4IOCkleClhyDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleClhyDgpLLgpL/gpI8g4KSo4KS54KWA4KSCLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlQXBwT3BzU3RhdHMiIG1zZ2lkPSI4ODI5MDk3MzczODUxNTIxNTA1Ij4i4KSP4KSq4KWN4KS4IOCkleCkvuCksOCljeCkr+CkteCkvuCkueClgCDgpJXgpYcg4KSG4KSC4KSV4KSh4KS84KWHIOCkrOCkpuCksuClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VwZGF0ZUFwcE9wc1N0YXRzIiBtc2dpZD0iNTA3ODQ1OTY1OTQ0MDM0ODMiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkj+CkquCljeCkuCDgpJXgpL7gpLDgpY3gpK/gpLXgpL7gpLngpYAg4KSV4KWHIOCkj+CkleCkpOCljeCksOCkv+CkpCDgpIbgpILgpJXgpKHgpLzgpYcg4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpI/gpKrgpY3gpLgg4KSV4KWHIOCkpuCljeCkteCkvuCksOCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSo4KS54KWA4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VwZGF0ZUJhdHRlcnlTdGF0cyIgbXNnaWQ9IjY4NjI4MTc4NTcxNzgwMjUwMDIiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkrOCliOCkn+CksOClgCDgpJXgpYcg4KS44KSC4KSV4KSy4KS/4KSkIOCkhuCkguCkleCkoeCkvOCli+CkgiDgpJXgpYsg4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4IOCkleClhyDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkqOCkueClgOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldEFwcE9wc1N0YXRzIiBtc2dpZD0iMTUwODc3OTY4NzQzNjU4NTc0NCI+IuCkkOCkquCljeCkuCAg4KS44KSC4KSa4KS+4KSy4KSoIOCkhuCkguCkleCkoeCkvOClhyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QXBwT3BzU3RhdHMiIG1zZ2lkPSI2MjQzODg3MDQxNTc3OTEyODc3Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KS44KSC4KSV4KSy4KS/4KSkIOCkkOCkquCljeCkuCAg4KS44KSC4KSa4KS+4KSy4KSoIOCkhuCkguCkleCkoeCkvOClhyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpJDgpKrgpY3gpLggIOCkleClhyDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleClhyDgpLLgpL/gpI8g4KSo4KS54KWA4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlQXBwT3BzU3RhdHMiIG1zZ2lkPSI4ODI5MDk3MzczODUxNTIxNTA1Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpL7gpLDgpY3gpK/gpLXgpL7gpLngpYAg4KSV4KWHIOCkhuCkguCkleCkoeCkvOClhyDgpKzgpKbgpLLgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVBcHBPcHNTdGF0cyIgbXNnaWQ9IjUwNzg0NTk2NTk0NDAzNDgzIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSQ4KSq4KWN4KS4ICDgpJXgpL7gpLDgpY3gpK/gpLXgpL7gpLngpYAg4KSV4KWHIOCkj+CkleCkpOCljeCksOCkv+CkpCDgpIbgpILgpJXgpKHgpLzgpYcg4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpJDgpKrgpY3gpLggIOCkleClhyDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkqOCkueClgOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JhY2t1cCIgbXNnaWQ9IjQ3MDAxMzAyMjg2NTQ1MzkyMCI+IuCkuOCkv+CkuOCljeKAjeCkn+CkriDgpLjgpYHgpLDgpJXgpY3gpLfgpL4g4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCklOCksCDgpKrgpYHgpKjgpLDgpY3gpLjgpY3igI3gpKXgpL7gpKrgpL/gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmFja3VwIiBtc2dpZD0iNjkxMjIzMDUyNTE0MDU4OTg5MSI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KS44KS/4KS44KWN4KSf4KSuIOCkleClhyDgpKzgpYjgpJXgpIXgpKog4KSV4KWLIOCkqOCkv+Ckr+CkguCkpOCljeCksOCkv+CkpCDgpJTgpLAg4KSV4KWN4KSw4KS/4KSv4KS+4KS14KS/4KSn4KS/IOCkleCliyDgpKrgpYHgpLDgpY3gpKjgpLjgpY3gpKXgpL7gpKrgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpKjgpLngpYDgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmFja3VwIiBtc2dpZD0iNjkxMjIzMDUyNTE0MDU4OTg5MSI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkuOCkv+CkuOCljeCkn+CkriDgpJXgpYcg4KSs4KWI4KSV4KSF4KSqIOCkleCliyDgpKjgpL/gpK/gpILgpKTgpY3gpLDgpL/gpKQg4KSU4KSwIOCkleCljeCksOCkv+Ckr+CkvuCkteCkv+Ckp+CkvyDgpJXgpYsg4KSq4KWB4KSw4KWN4KSo4KS44KWN4KSl4KS+4KSq4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4IOCkpuCljeCkteCkvuCksOCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSo4KS54KWA4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlybV9mdWxsX2JhY2t1cCIgbXNnaWQ9IjU1NTcwNzEzMjU4MDQ0NjkxMDIiPiLgpKrgpYLgpLDgpY3gpKMg4KS44KWB4KSw4KSV4KWN4KS34KS+IOCkr+CkviDgpKrgpYHgpKjgpLDgpY3gpLjgpY3igI3gpKXgpL7gpKrgpKjgpL4g4KSV4KS+4KSw4KWN4KSv4KS14KS+4KS54KWAIOCkleClgCDgpKrgpYHgpLfgpY3gpJ/gpL8g4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlybV9mdWxsX2JhY2t1cCIgbXNnaWQ9IjE3NDg3NjIxNzE2Mzc2OTk1NjIiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkquClguCksOCljeCkoyDgpKzgpYjgpJXgpIXgpKog4KSq4KWB4KS34KWN4KSf4KS/4KSV4KSw4KSjIFVJIOCksuClieCkqOCljeKAjeCkmiDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSV4KS/4KS44KWAIOCkj+CkquCljeKAjeCkuCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleClhyDgpLLgpL/gpI8g4KSo4KS54KWA4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpcm1fZnVsbF9iYWNrdXAiIG1zZ2lkPSIxNzQ4NzYyMTcxNjM3Njk5NTYyIj4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpKrgpYLgpLDgpY3gpKMg4KSs4KWI4KSV4KSF4KSqIOCkquClgeCkt+CljeCkn+Ckv+CkleCksOCkoyBVSSDgpLLgpYngpKjgpY3igI3gpJog4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkleCkv+CkuOClgCDgpJDgpKrgpY3gpLgg4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpYcg4KSy4KS/4KSPIOCkqOCkueClgOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVybmFsU3lzdGVtV2luZG93IiBtc2dpZD0iMjE0ODU2MzYyODE0MDE5MzIzMSI+IuCkheCkqOCkp+Ckv+CkleClg+CkpCDgpLXgpL/gpILgpKHgpYsg4KSm4KS/4KSW4KS+4KSP4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJuYWxTeXN0ZW1XaW5kb3ciIG1zZ2lkPSI3NDU4Mzg3NzU5NDYxNDY2Mzk3Ij4i4KSV4KS/4KS44KWAIOCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSQ4KS44KWAIOCkteCkv+CkguCkoeCliyDgpKzgpKjgpL7gpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCDgpJzgpL/gpKjgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkhuCkguCkpOCksOCkv+CklSDgpLjgpL/gpLjgpY3igI3gpJ/gpK4g4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkh+CkguCkn+CksOCkq+CkvOClh+CkuCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSV4KS/4KSv4KS+IOCknOCkvuCkqOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpKjgpLngpYDgpIIuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zeXN0ZW1BbGVydFdpbmRvdyIgbXNnaWQ9IjM1NDMzNDc5ODA4Mzk1MTg2MTMiPiLgpIXgpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkquCksCDgpJbgpYDgpILgpJrgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zeXN0ZW1BbGVydFdpbmRvdyIgbXNnaWQ9Ijg1ODQ2NzgzODE5NzI4MjAxMTgiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkheCkqOCljeCkryDgpI/gpKrgpY3gpLgg4KSV4KWHIOCktuClgOCksOCljeCktyDgpKrgpLAg4KSv4KS+IOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpIfgpILgpJ/gpLDgpKvgpLzgpYfgpLgg4KSV4KWHIOCkueCkv+CkuOCljeCkuOCli+CkgiDgpKrgpLAg4KSG4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYguIOCkteClhyDgpJXgpL/gpLjgpYAg4KSt4KWAIOCkj+CkquCljeCkuCDgpK7gpYfgpIIg4KSH4KSC4KSf4KSw4KSr4KS84KWH4KS4IOCkleClhyDgpIbgpKrgpJXgpYcg4KSJ4KSq4KSv4KWL4KSXIOCkruClh+CkgiDgpLngpLjgpY3gpKTgpJXgpY3gpLfgpYfgpKog4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIsIOCkr+CkviDgpIngpLgg4KSa4KWA4KScIOCkleCliyDgpKzgpKbgpLIg4KS44KSV4KSk4KWAIOCkueCliCDgpJzgpL/gpLjgpJXgpYcg4KSs4KS+4KSw4KWHIOCkruClh+CkgiDgpIbgpKrgpJXgpYsg4KSy4KSX4KSk4KS+IOCkueCliCDgpJXgpL8g4KSG4KSqIOCkieCkuOClhyDgpIXgpKjgpY3gpK8g4KSP4KSq4KWN4KS4IOCkruClh+CkgiDgpKbgpYfgpJYg4KSw4KS54KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcm5hbFN5c3RlbVdpbmRvdyIgbXNnaWQ9Ijc0NTgzODc3NTk0NjE0NjYzOTciPiLgpJXgpL/gpLjgpYAg4KSQ4KSq4KWN4KS4IOCkleCliyDgpJDgpLjgpYAg4KS14KS/4KSC4KSh4KWLIOCkrOCkqOCkvuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCknOCkv+CkqOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSG4KSC4KSk4KSw4KS/4KSVIOCkuOCkv+CkuOCljeKAjeCkn+CkriDgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSH4KSC4KSf4KSw4KSr4KS84KWH4KS4IOCkpuCljeCkteCkvuCksOCkviDgpJXgpL/gpK/gpL4g4KSc4KS+4KSo4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkkOCkquCljeCkuCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkqOCkueClgOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N5c3RlbUFsZXJ0V2luZG93IiBtc2dpZD0iMzU0MzM0Nzk4MDgzOTUxODYxMyI+IuCkheCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSq4KSwIOCkluClgOCkguCkmuClh+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N5c3RlbUFsZXJ0V2luZG93IiBtc2dpZD0iODU4NDY3ODM4MTk3MjgyMDExOCI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkheCkqOCljeCkryDgpJDgpKrgpY3gpLggIOCkleClhyDgpLbgpYDgpLDgpY3gpLcg4KSq4KSwIOCkr+CkviDgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSH4KSC4KSf4KSw4KSr4KS84KWH4KS4IOCkleClhyDgpLngpL/gpLjgpY3gpLjgpYvgpIIg4KSq4KSwIOCkhuCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiDgpLXgpYcg4KSV4KS/4KS44KWAIOCkreClgCDgpJDgpKrgpY3gpLggIOCkruClh+CkgiDgpIfgpILgpJ/gpLDgpKvgpLzgpYfgpLgg4KSV4KWHIOCkhuCkquCkleClhyDgpIngpKrgpK/gpYvgpJcg4KSu4KWH4KSCIOCkueCkuOCljeCkpOCkleCljeCkt+Clh+CkqiDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgiwg4KSv4KS+IOCkieCkuCDgpJrgpYDgpJwg4KSV4KWLIOCkrOCkpuCksiDgpLjgpJXgpKTgpYAg4KS54KWIIOCknOCkv+CkuOCkleClhyDgpKzgpL7gpLDgpYcg4KSu4KWH4KSCIOCkhuCkquCkleCliyDgpLLgpJfgpKTgpL4g4KS54KWIIOCkleCkvyDgpIbgpKog4KSJ4KS44KWHIOCkheCkqOCljeCkryDgpJDgpKrgpY3gpLggIOCkruClh+CkgiDgpKbgpYfgpJYg4KSw4KS54KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldEFuaW1hdGlvblNjYWxlIiBtc2dpZD0iMjgwNTEwMzI0MTE1MzkwNzE3NCI+IuCkteCliOCktuCljeCkteCkv+CklSDgpI/gpKjgpL/gpK7gpYfgpLbgpKgg4KSX4KSk4KS/IOCkrOCkpuCksuClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFuaW1hdGlvblNjYWxlIiBtc2dpZD0iNzY5MDA2MzQyODkyNDM0MzU3MSI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSV4KS/4KS44KWAIOCkreClgCDgpLjgpK7gpK8g4KS14KWI4KS24KWN4KS14KS/4KSVIOCkj+CkqOCkv+CkruClh+CktuCkqCDgpJfgpKTgpL8gKOCkpOClh+CknOCkvCDgpK/gpL4g4KSn4KWA4KSu4KWHIOCkj+CkqOCkv+CkruClh+CktuCkqCkg4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VBcHBUb2tlbnMiIG1zZ2lkPSIxMjg2NTA1NzE3MDUwMTIxMzcwIj4i4KSP4KSq4KWN4oCN4KS4IOCkn+Cli+CkleCkqCDgpKrgpY3gpLDgpKzgpILgpKfgpL/gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQXBwVG9rZW5zIiBtc2dpZD0iODA0MzQzMTcxMzAxNDM5NTY3MSI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSJ4KSo4KSV4KWHIOCkuOCkvuCkruCkvuCkqOCljeCkryBaLeCkleCljeCksOCkruCli+CkgiDgpKrgpLAg4KSoIOCkquCkueClgeCkguCkmuCkpOClhyDgpLngpYHgpI8g4KSJ4KSo4KSV4KWHIOCkuOCljeCkteCkr+CkgiDgpJXgpYcg4KSf4KWL4KSV4KSoIOCkrOCkqOCkvuCkqOClhyDgpJTgpLAg4KSq4KWN4KSw4KSs4KSC4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QW5pbWF0aW9uU2NhbGUiIG1zZ2lkPSI3NjkwMDYzNDI4OTI0MzQzNTcxIj4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpJXgpL/gpLjgpYAg4KSt4KWAIOCkuOCkruCkryDgpLXgpYjgpLbgpY3gpLXgpL/gpJUg4KSP4KSo4KS/4KSu4KWH4KS24KSoIOCkl+CkpOCkvyAo4KSk4KWH4KSc4KS8IOCkr+CkviDgpKfgpYDgpK7gpYcg4KSP4KSo4KS/4KSu4KWH4KS24KSoKSDgpKzgpKbgpLLgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFwcFRva2VucyIgbXNnaWQ9IjEyODY1MDU3MTcwNTAxMjEzNzAiPiLgpJDgpKrgpY3gpLgg4KSf4KWL4KSV4KSoIOCkquCljeCksOCkrOCkguCkp+Ckv+CkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBcHBUb2tlbnMiIG1zZ2lkPSI4MDQzNDMxNzEzMDE0Mzk1NjcxIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSJ4KSo4KSV4KWHIOCkuOCkvuCkruCkvuCkqOCljeCkryBaLeCkleCljeCksOCkruCli+CkgiDgpKrgpLAg4KSoIOCkquCkueClgeCkguCkmuCkpOClhyDgpLngpYHgpI8g4KSJ4KSo4KSV4KWHIOCkuOCljeCkteCkr+CkgiDgpJXgpYcg4KSf4KWL4KSV4KSoIOCkrOCkqOCkvuCkqOClhyDgpJTgpLAg4KSq4KWN4KSw4KSs4KSC4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mcmVlemVTY3JlZW4iIG1zZ2lkPSI0NzA4MTgxMTg0NDQxODgwMTc1Ij4i4KS44KWN4KSV4KWN4KSw4KWA4KSoIOCkleCliyDgpLjgpY3gpKXgpL/gpLAg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZnJlZXplU2NyZWVuIiBtc2dpZD0iODU1ODkyMzc4OTIyMjY3MDA2NCI+IuCkquClguCksOCljeCkoy3gpLjgpY3gpJXgpY3gpLDgpYDgpKgg4KS44KSC4KSV4KWN4KSw4KSu4KSjIOCkleClhyDgpLLgpL/gpI8g4KSP4KSq4KWN4KS4IOCkleCliyDgpIXgpLjgpY3gpKXgpL7gpK/gpYAg4KSw4KWC4KSqIOCkuOClhyDgpLjgpY3gpJXgpY3gpLDgpYDgpKgg4KSV4KWLIOCkuOCljeCkpeCkv+CksCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mcmVlemVTY3JlZW4iIG1zZ2lkPSI4NTU4OTIzNzg5MjIyNjcwMDY0Ij4i4KSq4KWC4KSw4KWN4KSjLeCkuOCljeCkleCljeCksOClgOCkqCDgpLjgpILgpJXgpY3gpLDgpK7gpKMg4KSV4KWHIOCksuCkv+CkjyDgpJDgpKrgpY3gpLggIOCkleCliyDgpIXgpLjgpY3gpKXgpL7gpK/gpYAg4KSw4KWC4KSqIOCkuOClhyDgpLjgpY3gpJXgpY3gpLDgpYDgpKgg4KSV4KWLIOCkuOCljeCkpeCkv+CksCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luamVjdEV2ZW50cyIgbXNnaWQ9IjEzNzg3NDY1ODQwMjM1ODY2MDAiPiLgpJXgpYHgpILgpJzgpL/gpK/gpYvgpIIg4KSU4KSwIOCkqOCkv+Ckr+CkguCkpOCljeCksOCkoyDgpKzgpJ/gpKgg4KSV4KWLIOCkpuCkrOCkvuCkj+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA2MzUyNTY1NTk5OTY4NjMyIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpLjgpY3igI3gpLXgpK/gpIIg4KSV4KWHIOCkh+CkqOCkquClgeCknyDgpIjgpLXgpYfgpILgpJ8gKOCkleClgeCkguCknOClgCDgpKbgpKzgpL7gpKjgpL4sIOCkhuCkpuCkvykg4KSV4KWLIOCkheCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkteCkv+CkpOCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkj+CkquCljeKAjeCkuCDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSV4KWLIOCkn+Clh+CklSDgpJPgpLXgpLAg4KSV4KSw4KSo4KWHIOCkruClh+CkgiDgpIfgpLjgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1MzEyODA1NzU3MjMyNjI1MyI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KS44KWN4oCN4KS14KSv4KSCIOCkleClhyDgpIfgpKjgpKrgpYHgpJ8g4KSI4KS14KWH4KSC4KSfICjgpJXgpYHgpILgpJzgpYAg4KSm4KSs4KS+4KSo4KS+LCDgpIbgpKbgpL8pIOCkheCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkteCkv+CkpOCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkj+CkquCljeKAjeCkuCDgpIfgpLjgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkq+CkvOCli+CkqCDgpJXgpYsg4KSf4KWH4KSVIOCkk+CkteCksCDgpJXgpLDgpKjgpYcg4KSu4KWH4KSCIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA2MzUyNTY1NTk5OTY4NjMyIj4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpLjgpY3igI3gpLXgpK/gpIIg4KSV4KWHIOCkh+CkqOCkquClgeCknyDgpIjgpLXgpYfgpILgpJ8gKOCkleClgeCkguCknOClgCDgpKbgpKzgpL7gpKjgpL4sIOCkhuCkpuCkvykg4KSV4KWLIOCkheCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWLIOCkteCkv+CkpOCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSV4KWLIOCkn+Clh+CklSDgpJPgpLXgpLAg4KSV4KSw4KSo4KWHIOCkruClh+CkgiDgpIfgpLjgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1MzEyODA1NzU3MjMyNjI1MyI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KS44KWN4oCN4KS14KSv4KSCIOCkleClhyDgpIfgpKjgpKrgpYHgpJ8g4KSI4KS14KWH4KSC4KSfICjgpJXgpYHgpILgpJzgpYAg4KSm4KSs4KS+4KSo4KS+LCDgpIbgpKbgpL8pIOCkheCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWLIOCkteCkv+CkpOCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCDgpIfgpLjgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkq+CkvOCli+CkqCDgpJXgpYsg4KSf4KWH4KSVIOCkk+CkteCksCDgpJXgpLDgpKjgpYcg4KSu4KWH4KSCIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZElucHV0U3RhdGUiIG1zZ2lkPSI0Njk0Mjg5MDAwNDEyNDkyMzQiPiLgpIbgpKog4KSc4KWLIOCkreClgCDgpLLgpL/gpJbgpKTgpYcg4KS54KWI4KSCIOCklOCksCDgpJzgpYsg4KSV4KS+4KSw4KWN4KSv4KS14KS+4KS54KS/4KSv4KS+4KSCIOCkleCksOCkpOClhyDgpLngpYjgpIIg4KSJ4KSo4KWN4oCN4KS54KWH4KSCIOCksOCkv+CkleClieCksOCljeCkoSDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkSW5wdXRTdGF0ZSIgbXNnaWQ9IjgzODc3NTQ5MDE2ODg3MjgwNDMiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkheCkqOCljeCkryDgpI/gpKrgpY3gpLgg4KSV4KWHIOCkuOCkvuCkpSDgpLjgpLngpK3gpL7gpJfgpL/gpKTgpL4g4KSV4KSw4KSk4KWHIOCkuOCkruCkryDgpK3gpYAg4KSG4KSq4KSV4KWHIOCkpuCljeCkteCkvuCksOCkviDgpKbgpKzgpL7gpIgg4KSc4KS+4KSo4KWHIOCkteCkvuCksuClgCDgpJXgpYHgpILgpJzgpL/gpK/gpL7gpIIg4KSm4KWH4KSW4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYggKOCknOCliOCkuOClhyDgpJXgpYvgpIgg4KSq4KS+4KS44KS14KSw4KWN4KShIOCksuCkv+CkluCkqOCkvikuIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkSW5wdXRTdGF0ZSIgbXNnaWQ9IjgzODc3NTQ5MDE2ODg3MjgwNDMiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpIXgpKjgpY3gpK8g4KSQ4KSq4KWN4KS4ICDgpJXgpYcg4KS44KS+4KSlIOCkuOCkueCkreCkvuCkl+Ckv+CkpOCkviDgpJXgpLDgpKTgpYcg4KS44KSu4KSvIOCkreClgCDgpIbgpKrgpJXgpYcg4KSm4KWN4KS14KS+4KSw4KS+IOCkpuCkrOCkvuCkiCDgpJzgpL7gpKjgpYcg4KS14KS+4KSy4KWAIOCkleClgeCkguCknOCkv+Ckr+CkvuCkgiDgpKbgpYfgpJbgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCAo4KSc4KWI4KS44KWHIOCkleCli+CkiCDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSy4KS/4KSW4KSo4KS+KS4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkkOCkquCljeCkuCDgpJXgpYcg4KSy4KS/4KSPIOCkleCkreClgCDgpK3gpYAg4KSG4KS14KS24KWN4oCN4KSv4KSVIOCkqOCkueClgOCkgiDgpLngpYvgpKjgpL4g4KSa4KS+4KS54KS/4KSPLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZElucHV0TWV0aG9kIiBtc2dpZD0iMzM2MDA2NDYyMDIzMDUxNTc3NiI+IuCkleCkv+CkuOClgCDgpIfgpKjgpKrgpYHgpJ8g4KS14KS/4KSn4KS/IOCkuOClhyDgpIbgpKzgpKbgpY3gpKcg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZElucHV0TWV0aG9kIiBtc2dpZD0iMzI1MDQ0MDMyMjgwNzI4NjMzMSI+IuCkp+CkvuCksOCklSDgpJXgpYsg4KSV4KS/4KS44KWAIOCkh+CkqOCkquClgeCknyDgpLXgpL/gpKfgpL8g4KSV4KWHIOCktuClgOCksOCljeCkty3gpLjgpY3igI3gpKTgpLAg4KSH4KSC4KSf4KSw4KSr4KS84KWH4KS4IOCkuOClhyDgpIbgpKzgpKbgpY3gpKcg4KS54KWL4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kSW5wdXRNZXRob2QiIG1zZ2lkPSIzMjUwNDQwMzIyODA3Mjg2MzMxIj4i4KSn4KS+4KSw4KSVIOCkleCliyDgpJXgpL/gpLjgpYAg4KSH4KSo4KSq4KWB4KSfIOCkteCkv+Ckp+CkvyDgpJXgpYcg4KS24KWA4KSw4KWN4KS3LeCkuOCljeKAjeCkpOCksCDgpIfgpILgpJ/gpLDgpKvgpLzgpYfgpLgg4KS44KWHIOCkhuCkrOCkpuCljeCkpyDgpLngpYvgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkkOCkquCljeCkuCDgpJXgpYcg4KSy4KS/4KSPIOCkleCkreClgCDgpK3gpYAg4KSG4KS14KS24KWN4oCN4KSv4KSVIOCkqOCkueClgOCkgiDgpLngpYvgpKjgpL4g4KSa4KS+4KS54KS/4KSPLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZEFjY2Vzc2liaWxpdHlTZXJ2aWNlIiBtc2dpZD0iNTM1NzczMzk0MjU1NjAzMTU5MyI+IuCkhuCkuOCkvuCkqCDgpKTgpLDgpYDgpJXgpL4g4KS44KWH4KS14KS+IOCkuOClhyDgpIbgpKzgpKbgpY3gpKcg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZEFjY2Vzc2liaWxpdHlTZXJ2aWNlIiBtc2dpZD0iNzAzNDYxNTkyODYwOTMzMTM2OCI+IuCkp+CkvuCksOCklSDgpJXgpYsg4KSV4KS/4KS44KWAIOCkhuCkuOCkvuCkqCDgpKTgpLDgpYDgpJXgpL4g4KS44KWH4KS14KS+IOCkleClhyDgpLbgpYDgpLDgpY3gpLct4KS44KWN4oCN4KSk4KSwIOCkh+CkguCkn+CksOCkq+CkvOClh+CkuCDgpLjgpYcg4KSG4KSs4KSm4KWN4KSnIOCkueCli+CkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZEFjY2Vzc2liaWxpdHlTZXJ2aWNlIiBtc2dpZD0iNzAzNDYxNTkyODYwOTMzMTM2OCI+IuCkp+CkvuCksOCklSDgpJXgpYsg4KSV4KS/4KS44KWAIOCkhuCkuOCkvuCkqCDgpKTgpLDgpYDgpJXgpL4g4KS44KWH4KS14KS+IOCkleClhyDgpLbgpYDgpLDgpY3gpLct4KS44KWN4oCN4KSk4KSwIOCkh+CkguCkn+CksOCkq+CkvOClh+CkuCDgpLjgpYcg4KSG4KSs4KSm4KWN4KSnIOCkueCli+CkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kUHJpbnRTZXJ2aWNlIiBtc2dpZD0iODQ2MjgxNTE3OTU3Mjc0ODc2MSI+IuCkquCljeCksOCkv+CkguCknyDgpLjgpYfgpLXgpL4g4KS44KWHIOCkhuCkrOCkpuCljeCkpyDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUHJpbnRTZXJ2aWNlIiBtc2dpZD0iNzk2MDA2NzYyMzIwOTExMTEzNSI+IuCkp+CkvuCksOCklSDgpJXgpYsg4KSV4KS/4KS44KWAIOCkquCljeCksOCkv+CkguCknyDgpLjgpYfgpLXgpL4g4KSV4KWHIOCktuClgOCksOCljeCkty3gpLjgpY3igI3gpKTgpLAg4KSH4KSC4KSf4KSw4KSr4KS84KWH4KS4IOCkuOClhyDgpIbgpKzgpKbgpY3gpKcg4KS54KWL4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUHJpbnRTZXJ2aWNlIiBtc2dpZD0iNzk2MDA2NzYyMzIwOTExMTEzNSI+IuCkp+CkvuCksOCklSDgpJXgpYsg4KSV4KS/4KS44KWAIOCkquCljeCksOCkv+CkguCknyDgpLjgpYfgpLXgpL4g4KSV4KWHIOCktuClgOCksOCljeCkty3gpLjgpY3igI3gpKTgpLAg4KSH4KSC4KSf4KSw4KSr4KS84KWH4KS4IOCkuOClhyDgpIbgpKzgpKbgpY3gpKcg4KS54KWL4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRQcmludFNwb29sZXJTZXJ2aWNlIiBtc2dpZD0iNjgwNzc2Mjc4Mzc0NDEyNTk1NCI+IuCkquCljeCksOCkv+CkguCknyDgpLjgpY3gpKrgpYLgpLLgpLAg4KS44KWH4KS14KS+IOCkuOClhyDgpIbgpKzgpKbgpY3gpKcg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFByaW50U3Bvb2xlclNlcnZpY2UiIG1zZ2lkPSIzNjgwNTUyMjg1OTMzMzE4MzcyIj4i4KSn4KS+4KSw4KSVIOCkleCliyDgpKrgpY3gpLDgpL/gpILgpJ8g4KS44KWN4KSq4KWC4KSy4KSwIOCkuOClh+CkteCkviDgpJXgpYcg4KS24KWA4KSw4KWN4KS3LeCkuOCljeKAjeCkpOCksCDgpIfgpILgpJ/gpLDgpKvgpLzgpYfgpLgg4KS44KWHIOCkhuCkrOCkpuCljeCkpyDgpLngpYvgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkj+CkquCljeKAjeCkuCDgpJXgpYcg4KSy4KS/4KSPIOCkleCkreClgCDgpK3gpYAg4KSG4KS14KS24KWN4oCN4KSv4KSVIOCkqOCkueClgOCkgiDgpLngpYvgpKjgpL4g4KSa4KS+4KS54KS/4KSPLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQcmludFNwb29sZXJTZXJ2aWNlIiBtc2dpZD0iMzY4MDU1MjI4NTkzMzMxODM3MiI+IuCkp+CkvuCksOCklSDgpJXgpYsg4KSq4KWN4KSw4KS/4KSC4KSfIOCkuOCljeCkquClguCksuCksCDgpLjgpYfgpLXgpL4g4KSV4KWHIOCktuClgOCksOCljeCkty3gpLjgpY3igI3gpKTgpLAg4KSH4KSC4KSf4KSw4KSr4KS84KWH4KS4IOCkuOClhyDgpIbgpKzgpKbgpY3gpKcg4KS54KWL4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iMjc1MjczMTMwMDQxOTQxMDcyNCI+Ik5GQyDgpLjgpYfgpLXgpL4g4KS44KWHIOCkhuCkrOCkpuCljeCkpyDgpLDgpLngpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kTmZjU2VydmljZSIgbXNnaWQ9IjYxMjA2NDc2MjkxNzQwNjY4NjIiPiLgpKfgpL7gpLDgpJUg4KSV4KWLIOCkkOCkuOClhyDgpI/gpKrgpY3gpLgg4KS44KWHIOCkhuCkrOCkpuCljeCkpyDgpLDgpLngpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCDgpJzgpYsgTkZDIOCkleCkvuCksOCljeCkoSDgpJXgpL4g4KSF4KSo4KWB4KSV4KSw4KSjIOCkleCksCDgpLDgpLngpYcg4KS54KWI4KSCLiDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSP4KSq4KWN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSI2MTIwNjQ3NjI5MTc0MDY2ODYyIj4i4KSn4KS+4KSw4KSVIOCkleCliyDgpJDgpLjgpYcg4KSQ4KSq4KWN4KS4ICDgpLjgpYcg4KSG4KSs4KSm4KWN4KSnIOCksOCkueCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCknOCliyBORkMg4KSV4KS+4KSw4KWN4KShIOCkleCkviDgpIXgpKjgpYHgpJXgpLDgpKMg4KSV4KSwIOCksOCkueClhyDgpLngpYjgpIIuIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpJDgpKrgpY3gpLggIOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kVGV4dFNlcnZpY2UiIG1zZ2lkPSI3MzU4Mzc4NDAxOTE1Mjg3OTM4Ij4i4KSV4KS/4KS44KWAIOCkquCkvuCkoCDgpLjgpYfgpLXgpL4g4KSq4KSwIOCkrOCkqOClhyDgpLDgpLngpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVGV4dFNlcnZpY2UiIG1zZ2lkPSI4MTUxOTY4OTEwOTczOTk4NjcwIj4i4KSn4KS+4KSw4KSVIOCkleCliyDgpJXgpL/gpLjgpYAg4KSq4KS+4KSgIOCkuOClh+CkteCkviAo4KSJ4KSm4KS+LiBTcGVsbENoZWNrZXJTZXJ2aWNlKSDgpJXgpYcg4KS24KWA4KSw4KWN4KS3LeCkuOCljeKAjeCkpOCksCDgpIfgpILgpJ/gpLDgpKvgpLzgpYfgpLgg4KSq4KSwIOCkhuCkrOCkpuCljeCkpyDgpLngpYvgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkj+CkquCljeKAjeCkuCDgpJXgpYcg4KSy4KS/4KSPIOCkleCkreClgCDgpK3gpYAg4KSG4KS14KS24KWN4oCN4KSv4KSVIOCkqOCkueClgOCkgiDgpLngpYvgpKjgpL4g4KSa4KS+4KS54KS/4KSPLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRUZXh0U2VydmljZSIgbXNnaWQ9IjgxNTE5Njg5MTA5NzM5OTg2NzAiPiLgpKfgpL7gpLDgpJUg4KSV4KWLIOCkleCkv+CkuOClgCDgpKrgpL7gpKAg4KS44KWH4KS14KS+ICjgpIngpKbgpL4uIFNwZWxsQ2hlY2tlclNlcnZpY2UpIOCkleClhyDgpLbgpYDgpLDgpY3gpLct4KS44KWN4oCN4KSk4KSwIOCkh+CkguCkn+CksOCkq+CkvOClh+CkuCDgpKrgpLAg4KSG4KSs4KSm4KWN4KSnIOCkueCli+CkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kVnBuU2VydmljZSIgbXNnaWQ9IjQ3MDg1OTYwMjExNjE0NzMyNTUiPiLgpJXgpL/gpLjgpYAgVlBOIOCkuOClh+CkteCkviDgpLjgpYcg4KSG4KSs4KSm4KWN4KSnIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRWcG5TZXJ2aWNlIiBtc2dpZD0iMjA2Nzg0NTU2NDU4MTY5MzkwNSI+IuCkp+CkvuCksOCklSDgpJXgpYsg4KSV4KS/4KS44KWAIFZwbiDgpLjgpYfgpLXgpL4g4KSV4KWHIOCktuClgOCksOCljeCkty3gpLjgpY3igI3gpKTgpLAg4KSH4KSC4KSf4KSw4KSr4KS84KWH4KS4IOCkuOClhyDgpIbgpKzgpKbgpY3gpKcg4KS54KWL4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVnBuU2VydmljZSIgbXNnaWQ9IjIwNjc4NDU1NjQ1ODE2OTM5MDUiPiLgpKfgpL7gpLDgpJUg4KSV4KWLIOCkleCkv+CkuOClgCBWcG4g4KS44KWH4KS14KS+IOCkleClhyDgpLbgpYDgpLDgpY3gpLct4KS44KWN4oCN4KSk4KSwIOCkh+CkguCkn+CksOCkq+CkvOClh+CkuCDgpLjgpYcg4KSG4KSs4KSm4KWN4KSnIOCkueCli+CkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kV2FsbHBhcGVyIiBtc2dpZD0iODcxNjQwMDI3OTkzNzg1NjQ2MiI+IuCkteClieCksuCkquClh+CkquCksCDgpLjgpYcg4KSG4KSs4KSm4KWN4KSnIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRXYWxscGFwZXIiIG1zZ2lkPSI3MTA4NDI4NjkyNTk1NDkxNjY4Ij4i4KSn4KS+4KSw4KSVIOCkleCliyDgpJXgpL/gpLjgpYAg4KS14KWJ4KSy4KSq4KWH4KSq4KSwIOCkleClhyDgpLbgpYDgpLDgpY3gpLct4KS44KWN4oCN4KSk4KSwIOCkh+CkguCkn+CksOCkq+CkvOClh+CkuCDgpLjgpYcg4KSG4KSs4KSm4KWN4KSnIOCkueCli+CkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFdhbGxwYXBlciIgbXNnaWQ9IjcxMDg0Mjg2OTI1OTU0OTE2NjgiPiLgpKfgpL7gpLDgpJUg4KSV4KWLIOCkleCkv+CkuOClgCDgpLXgpYngpLLgpKrgpYfgpKrgpLAg4KSV4KWHIOCktuClgOCksOCljeCkty3gpLjgpY3igI3gpKTgpLAg4KSH4KSC4KSf4KSw4KSr4KS84KWH4KS4IOCkuOClhyDgpIbgpKzgpKbgpY3gpKcg4KS54KWL4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjU2OTc5ODc3NTk4OTczNjcwOTkiPiLgpJXgpL/gpLjgpYAg4KS14KS/4KSc4KWH4KSfIOCkuOClh+CkteCkviDgpLjgpYcg4KSG4KSs4KSm4KWN4KSnIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjQ3MTc5ODc4MTAxMzc2OTI1NzIiPiLgpKfgpL7gpLDgpJUg4KSV4KWLIOCkleCkv+CkuOClgCDgpLXgpL/gpJzgpYfgpJ8g4KS44KWH4KS14KS+IOCkleClhyDgpLbgpYDgpLDgpY3gpLct4KS44KWN4oCN4KSk4KSwIOCkh+CkguCkn+CksOCkq+CkvOClh+CkuCDgpLjgpYcg4KSG4KSs4KSm4KWN4KSnIOCkueCli+CkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFJlbW90ZVZpZXdzIiBtc2dpZD0iNDcxNzk4NzgxMDEzNzY5MjU3MiI+IuCkp+CkvuCksOCklSDgpJXgpYsg4KSV4KS/4KS44KWAIOCkteCkv+CknOClh+CknyDgpLjgpYfgpLXgpL4g4KSV4KWHIOCktuClgOCksOCljeCkty3gpLjgpY3igI3gpKTgpLAg4KSH4KSC4KSf4KSw4KSr4KS84KWH4KS4IOCkuOClhyDgpIbgpKzgpKbgpY3gpKcg4KS54KWL4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9Ijg3MDQ5ODYxNjM3MTE0NTUwMTAiPiLgpJXgpL/gpLjgpYAg4KSJ4KSq4KSV4KSw4KSjIOCkteCljeKAjeCkr+CkteCkuOCljeKAjeCkpeCkvuCkquCklSDgpJXgpYcg4KS44KS+4KSlIOCkuOCkueCkreCkvuCkl+Ckv+CkpOCkviDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kRGV2aWNlQWRtaW4iIG1zZ2lkPSI1Njk3MTU0MTk1NDM5MDc5MzAiPiLgpKfgpL7gpLDgpJUg4KSV4KWLIOCkleCkv+CkuOClgCDgpIngpKrgpJXgpLDgpKMg4KS14KWN4oCN4KSv4KS14KS44KWN4oCN4KSl4KS+4KSq4KSVIOCkleCliyDgpIngpKbgpY3gpKbgpYfgpLbgpY3gpK8g4KSt4KWH4KSc4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kRGV2aWNlQWRtaW4iIG1zZ2lkPSI1Njk3MTU0MTk1NDM5MDc5MzAiPiLgpKfgpL7gpLDgpJUg4KSV4KWLIOCkleCkv+CkuOClgCDgpIngpKrgpJXgpLDgpKMg4KS14KWN4oCN4KSv4KS14KS44KWN4oCN4KSl4KS+4KSq4KSVIOCkleCliyDgpIngpKbgpY3gpKbgpYfgpLbgpY3gpK8g4KSt4KWH4KSc4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZURldmljZUFkbWlucyIgbXNnaWQ9IjQyNDg4Mjg5MDAwNDU4MDg3MjIiPiLgpIngpKrgpJXgpLDgpKMg4KSJ4KSq4KSV4KSw4KSjIOCkuOClgeCkmuCkvuCksOClgiDgpKLgpLzgpILgpJcg4KS44KWHIOCkmuCksuCkvuCkqOClhyDgpLXgpL7gpLLgpYcg4KSV4KWLIOCknOCli+CkoeCkvOClh+CkgiDgpK/gpL4g4KSo4KS/4KSV4KS+4KSy4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNTAyNTYwODE2NzcwOTk0MjQ4NSI+IuCkp+CkvuCksOCklSDgpJXgpYsg4KS44KSV4KWN4KSw4KS/4KSvIOCkoeCkv+CkteCkvuCkh+CkuCDgpLXgpY3gpK/gpLXgpLjgpY3gpKXgpL7gpKrgpJXgpYvgpIIg4KSV4KWLIOCknOCli+CkoeCkvOCkqOClhyDgpK/gpL4g4KSo4KS/4KSV4KS+4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpI/gpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VEZXZpY2VBZG1pbnMiIG1zZ2lkPSI1MDI1NjA4MTY3NzA5OTQyNDg1Ij4i4KSn4KS+4KSw4KSVIOCkleCliyDgpLjgpJXgpY3gpLDgpL/gpK8g4KSh4KS/4KS14KS+4KSH4KS4IOCkteCljeCkr+CkteCkuOCljeCkpeCkvuCkquCkleCli+CkgiDgpJXgpYsg4KSc4KWL4KSh4KS84KSo4KWHIOCkr+CkviDgpKjgpL/gpJXgpL7gpLLgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4KSvIOCkkOCkquCljeCkuCAg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldE9yaWVudGF0aW9uIiBtc2dpZD0iMzM2NTk0NzcxNzE2Mzg2Njg0NCI+IuCkuOCljeKAjeCkleCljeCksOClgOCkqCDgpIXgpK3gpL/gpLXgpL/gpKjgpY3igI3gpK/gpL7gpLgg4KSs4KSm4KSy4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0T3JpZW50YXRpb24iIG1zZ2lkPSIzMDQ2MTI2NjE5MzE2NjcxNDc2Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpJXgpL/gpLjgpYAg4KSt4KWAIOCkuOCkruCkryDgpLjgpY3igI3gpJXgpY3gpLDgpYDgpKgg4KSV4KS+IOCksOCli+Ckn+Clh+CktuCkqCDgpKzgpKbgpLLgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkj+CkquCljeKAjeCkuCDgpJXgpYcg4KSy4KS/4KSPIOCkleCkreClgCDgpK3gpYAg4KSG4KS14KS24KWN4oCN4KSv4KSVIOCkqOCkueClgOCkgiDgpLngpYvgpKjgpL4g4KSa4KS+4KS54KS/4KSPLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldE9yaWVudGF0aW9uIiBtc2dpZD0iMzA0NjEyNjYxOTMxNjY3MTQ3NiI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSV4KS/4KS44KWAIOCkreClgCDgpLjgpK7gpK8g4KS44KWN4oCN4KSV4KWN4KSw4KWA4KSoIOCkleCkviDgpLDgpYvgpJ/gpYfgpLbgpKgg4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFBvaW50ZXJTcGVlZCIgbXNnaWQ9IjkxNzUzNzE2MTMzMjI1NjI5MzQiPiLgpLjgpYLgpJrgpJUg4KSX4KSk4KS/IOCkrOCkpuCksuClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFBvaW50ZXJTcGVlZCIgbXNnaWQ9IjY4NjY1NjMyMzQyNzQxMDQyMzMiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkruCkvuCkieCkuCDgpK/gpL4g4KSf4KWN4KSw4KWI4KSV4KSq4KWI4KShIOCkuOClguCkmuCklSDgpJfgpKTgpL8g4KSV4KWLIOCkleCkv+CkuOClgCDgpK3gpYAg4KS44KSu4KSvIOCkrOCkpuCksuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UG9pbnRlclNwZWVkIiBtc2dpZD0iNjg2NjU2MzIzNDI3NDEwNDIzMyI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkruCkvuCkieCkuCDgpK/gpL4g4KSf4KWN4KSw4KWI4KSV4KSq4KWI4KShIOCkuOClguCkmuCklSDgpJfgpKTgpL8g4KSV4KWLIOCkleCkv+CkuOClgCDgpK3gpYAg4KS44KSu4KSvIOCkrOCkpuCksuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9IjQ3Nzg3MzE3MDM2MDA5MDkzNDAiPiLgpJXgpYDgpKzgpYvgpLDgpY3gpKEg4KSy4KWH4KSG4KSJ4KSfIOCkrOCkpuCksuClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEtleWJvYXJkTGF5b3V0IiBtc2dpZD0iODQ4MDAxNjc3MTEzNDE3NTg3OSI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSV4KWA4KSs4KWL4KSw4KWN4KShIOCksuClh+CkhuCkieCknyDgpKzgpKbgpLLgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkj+CkquCljeKAjeCkuCDgpJXgpYcg4KSy4KS/4KSPIOCkleCkreClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0NTM5MDAyOTkxOTQ3Mzc2NjU5Ij4i4KSP4KSq4KWN4KS4IOCkleCliyBMaW51eCDgpLjgpL/gpJfgpY3gpKjgpLIg4KSt4KWH4KSc4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2lnbmFsUGVyc2lzdGVudFByb2Nlc3NlcyIgbXNnaWQ9IjQ4OTY5OTIwNzkxODI2NDkxNDEiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkr+CkuSDgpIXgpKjgpYHgpLDgpYvgpKcg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgg4KSV4KS/IOCkpuCkv+Ckr+CkviDgpJfgpK/gpL4g4KS44KS/4KSX4KWN4KSo4KSyIOCkuOCkreClgCDgpJzgpL7gpLDgpYAg4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+4KST4KSCIOCkleCliyDgpK3gpYfgpJzgpL4g4KSc4KS+4KSPLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyc2lzdGVudEFjdGl2aXR5IiBtc2dpZD0iODg0MTExMzYyNzk1NTU2MzkzOCI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KS54KSu4KWH4KS24KS+IOCkmuCksuCkqOClhyDgpLXgpL7gpLLgpL4g4KSs4KSo4KS+4KSP4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyc2lzdGVudEFjdGl2aXR5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTI1MTg5MjcyMzI5MDg2MTM3Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpLjgpY3gpK7gpYPgpKTgpL8g4KSu4KWH4KSCIOCkuOCljeKAjeCkteCkr+CkgiDgpJXgpYcg4KSV4KWB4KSbIOCkueCkv+CkuOCljeCkuOCli+CkgiDgpJXgpYsg4KSy4KSX4KS+4KSk4KS+4KSwIOCkrOCkqOCkvuCkqOClhyDgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuClh+CkpOCkviDgpLngpYguIOCkr+CkuSDgpIXgpKjgpY3igI3gpK8g4KSP4KSq4KWN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSJ4KSq4KSy4KSs4KWN4oCN4KSnIOCkuOCljeKAjeCkruClg+CkpOCkvyDgpJXgpYsg4KS44KWA4KSu4KS/4KSkIOCkleCksCDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSV4KWLIOCkp+ClgOCkruCkviDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0Mzg0NzYwMDQ3NTA4Mjc4MjcyIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpLjgpY3gpK7gpYPgpKTgpL8g4KSu4KWH4KSCIOCkuOCljeKAjeCkteCkr+CkgiDgpJXgpYcg4KSV4KWB4KSbIOCkueCkv+CkuOCljeCkuOCli+CkgiDgpJXgpYsg4KSy4KSX4KS+4KSk4KS+4KSwIOCkrOCkqOCkvuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpK/gpLkg4KSF4KSo4KWN4oCN4KSvIOCkj+CkquCljeCkuCDgpJXgpYcg4KSy4KS/4KSPIOCkieCkquCksuCkrOCljeKAjeCkpyDgpLjgpY3igI3gpK7gpYPgpKTgpL8g4KSV4KWLIOCkuOClgOCkruCkv+CkpCDgpJXgpLAg4KSr4KS84KWL4KSoIOCkleCliyDgpKfgpYDgpK7gpL4g4KSV4KSwIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZWxldGVQYWNrYWdlcyIgbXNnaWQ9IjE4NDM4NTEyOTUzNzcwNTkzOCI+IuCkj+CkquCljeKAjeCkuCDgpLngpJ/gpL7gpI/gpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZWxldGVQYWNrYWdlcyIgbXNnaWQ9Ijc0MTE0ODAyNzUxNjcyMDUwODEiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIEFuZHJvaWQg4KSq4KWI4KSV4KWH4KScIOCkueCkn+CkvuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4KS4IOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSu4KS54KSk4KWN4KS14KSq4KWC4KSw4KWN4KSjIOCkj+CkquCljeCkuCDgpLngpJ/gpL7gpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NsZWFyQXBwVXNlckRhdGEiIG1zZ2lkPSIyNzQxMDkxOTE4NDU4NDI3NTYiPiLgpIXgpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkleCkviDgpKHgpYfgpJ/gpL4g4KS54KSf4KS+4KSP4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBVc2VyRGF0YSIgbXNnaWQ9IjQ2MjUzMjM2ODQxMjU0NTk0ODgiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKHgpYfgpJ/gpL4g4KS44KS+4KSr4KS8IOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlQ2FjaGVGaWxlcyIgbXNnaWQ9IjMxMjg2NjU1NzE4Mzc0MDg2NzUiPiLgpIXgpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkleClhyDgpLjgpILgpJrgpK8g4KS54KSf4KS+4KSP4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGVsZXRlQ2FjaGVGaWxlcyIgbXNnaWQ9IjM4MTI5OTg1OTkwMDY3MzAxOTYiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkuOCkguCkmuCkryDgpKvgpLzgpL7gpIfgpLLgpYfgpIIg4KS54KSf4KS+4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9Ijc0NzI5MjE3NjgzNTc5ODE5ODYiPiLgpI/gpKrgpY3gpLgg4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkuOCljeCkpeCkvuCkqCDgpK7gpL7gpKrgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9IjM5MjEwNjgxNTQ0MjA3MzgyOTYiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkieCkuOCkleCkviDgpJXgpYvgpKEsIOCkoeClh+Ckn+Ckviwg4KSU4KSwIOCkuOCkguCkmuCkryDgpIbgpJXgpL7gpLDgpYvgpIIg4KSV4KWLIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iMjE5OTEyODQ4MjgyMDMwNjkyNCI+IuCkuOClgOCkp+ClhyDgpI/gpKrgpY3igI3gpLgg4KSH4KSC4KS44KWN4oCN4KSf4KWJ4KSyIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luc3RhbGxQYWNrYWdlcyIgbXNnaWQ9IjU2Mjg1MzA5NzI1NDgwNzEyODQiPiLgpI/gpKog4KSV4KWLIOCkqOCkjyDgpK/gpL4g4KSo4KSIIOCknOCkvuCkqOCkleCkvuCksOClgCDgpLXgpL7gpLLgpYcgQW5kcm9pZCDgpKrgpYjgpJXgpYfgpJwg4KSH4KSC4KS44KWN4KSf4KWJ4KSyIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4KS4IOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSF4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCksOClguCkqiDgpLjgpYcg4KS44KS24KSV4KWN4KSkIOCkheCkqOClgeCkruCkpOCkv+Ckr+Cli+CkgiDgpLXgpL7gpLLgpYcg4KSo4KSPIOCkj+CkquCljeCkuCDgpJzgpYvgpKHgpLzgpKjgpYcg4KSu4KWH4KSCIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2xlYXJBcHBDYWNoZSIgbXNnaWQ9Ijc0ODcyNzkzOTE3MjM1MjY4MTUiPiLgpLjgpK3gpYAg4KSP4KSq4KWN4KS4IOCkuOCkguCkmuCkryDgpKHgpYfgpJ/gpL4g4KS54KSf4KS+4KSP4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBDYWNoZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODk3NDY0MDg3MTk0NTQzNDU2NSI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSF4KSo4KWN4KSvIOCkj+CkquCljeCkuCDgpJXgpYAg4KS44KSC4KSa4KSvIOCkqOCkv+CksOCljeCkpuClh+CktuCkv+CkleCkvuCkk+CkgiDgpK7gpYfgpIIg4KS44KWHIOCkq+CkvOCkvuCkh+CksuClh+CkgiDgpLngpJ/gpL7gpJXgpLAg4KSf4KWH4KSs4KSy4KWH4KSfIOCkuOCkguCkl+CljeCksOCkueCkoyDgpJXgpYsg4KSW4KS+4KSy4KWAIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiDgpIfgpLjgpLjgpYcg4KSF4KSo4KWN4KSvIOCkj+CkquCljeCkuCDgpIXgpKfgpL/gpJUg4KSn4KWA4KSu4KWHIOCkquCljeCksOCkvuCksOCkguCkrSDgpLngpYsg4KS44KSV4KSk4KWHIOCkueCliOCkgiDgpJXgpY3gpK/gpYvgpILgpJXgpL8g4KSJ4KSo4KWN4KS54KWH4KSCIOCkheCkquCkqOCkviDgpKHgpYfgpJ/gpL4g4KSq4KWB4KSo4KSw4KWN4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpJXgpYAg4KSG4KS14KS24KWN4KSv4KSV4KSk4KS+IOCkueCli+CkpOClgCDgpLngpYguIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBDYWNoZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI0NTk0NDEwMjE5NTY0MzY3NzkiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkheCkqOCljeCkryDgpI/gpKrgpY3gpLgg4KSV4KWAIOCkuOCkguCkmuCkryDgpKjgpL/gpLDgpY3gpKbgpYfgpLbgpL/gpJXgpL7gpJPgpIIg4KSu4KWH4KSCIOCkuOClhyDgpKvgpLzgpL7gpIfgpLLgpYfgpIIg4KS54KSf4KS+4KSV4KSwIOCkq+CkvOCli+CkqCDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSV4KWLIOCkluCkvuCksuClgCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliC4g4KSH4KS44KS44KWHIOCkheCkqOCljeCkryDgpI/gpKrgpY3gpLgg4KSF4KSn4KS/4KSVIOCkp+ClgOCkruClhyDgpKrgpY3gpLDgpL7gpLDgpILgpK0g4KS54KWLIOCkuOCkleCkpOClhyDgpLngpYjgpIIg4KSV4KWN4KSv4KWL4KSC4KSV4KS/IOCkieCkqOCljeCkueClh+CkgiDgpIXgpKrgpKjgpL4g4KSh4KWH4KSf4KS+IOCkquClgeCkqOCksOCljeCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSV4KWAIOCkhuCkteCktuCljeCkr+CkleCkpOCkviDgpLngpYvgpKTgpYAg4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW92ZVBhY2thZ2UiIG1zZ2lkPSIzMjg5ODkwMjcxNjQ1OTIxNDExIj4i4KSP4KSq4KWN4oCN4KS4IOCkuOCkguCkuOCkvuCkp+CkqOCli+CkgiDgpJXgpYsg4KSy4KWHIOCknOCkvuCkj+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdmVQYWNrYWdlIiBtc2dpZD0iMzE5NTYyMjE3Nzc4MjQ0NTI0Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpI/gpKrgpY3igI3gpLgg4KS44KSC4KS44KS+4KSn4KSo4KWL4KSCIOCkleCliyDgpIbgpILgpKTgpLDgpL/gpJUg4KS44KWHIOCkrOCkvuCkueCksOClgCDgpK7gpYDgpKHgpL/gpK/gpL4g4KSu4KWH4KSCIOCklOCksCDgpIfgpLjgpJXgpYcg4KS14KS/4KSq4KSw4KWA4KSkIOCksuClhyDgpJzgpL7gpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9Ijg0ODAwMTY3NzExMzQxNzU4NzkiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkleClgOCkrOCli+CksOCljeCkoSDgpLLgpYfgpIbgpIngpJ8g4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSG4KS14KS24KWN4oCN4KSv4KSVIOCkqOCkueClgOCkgiDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zaWduYWxQZXJzaXN0ZW50UHJvY2Vzc2VzIiBtc2dpZD0iNDUzOTAwMjk5MTk0NzM3NjY1OSI+IuCkkOCkquCljeCkuCAg4KSV4KWLIExpbnV4IOCkuOCkv+Ckl+CljeCkqOCksiDgpK3gpYfgpJzgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zaWduYWxQZXJzaXN0ZW50UHJvY2Vzc2VzIiBtc2dpZD0iNDg5Njk5MjA3OTE4MjY0OTE0MSI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSv4KS5IOCkheCkqOClgeCksOCli+CkpyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCDgpJXgpL8g4KSm4KS/4KSv4KS+IOCkl+Ckr+CkviDgpLjgpL/gpJfgpY3gpKjgpLIg4KS44KSt4KWAIOCknOCkvuCksOClgCDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL7gpJPgpIIg4KSV4KWLIOCkreClh+CknOCkviDgpJzgpL7gpI8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJzaXN0ZW50QWN0aXZpdHkiIG1zZ2lkPSI4ODQxMTEzNjI3OTU1NTYzOTM4Ij4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpLngpK7gpYfgpLbgpL4g4KSa4KSy4KSo4KWHIOCkteCkvuCksuCkviDgpKzgpKjgpL7gpI/gpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg1MjUxODkyNzIzMjkwODYxMzciPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkuOCljeCkruClg+CkpOCkvyDgpK7gpYfgpIIg4KS44KWN4oCN4KS14KSv4KSCIOCkleClhyDgpJXgpYHgpJsg4KS54KS/4KS44KWN4KS44KWL4KSCIOCkleCliyDgpLLgpJfgpL7gpKTgpL7gpLAg4KSs4KSo4KS+4KSo4KWHIOCkleClgCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkheCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLggIOCkleClhyDgpLLgpL/gpI8g4KSJ4KSq4KSy4KSs4KWN4oCN4KSnIOCkuOCljeKAjeCkruClg+CkpOCkvyDgpJXgpYsg4KS44KWA4KSu4KS/4KSkIOCkleCksCDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSV4KWLIOCkp+ClgOCkruCkviDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0Mzg0NzYwMDQ3NTA4Mjc4MjcyIj4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpLjgpY3gpK7gpYPgpKTgpL8g4KSu4KWH4KSCIOCkuOCljeKAjeCkteCkr+CkgiDgpJXgpYcg4KSV4KWB4KSbIOCkueCkv+CkuOCljeCkuOCli+CkgiDgpJXgpYsg4KSy4KSX4KS+4KSk4KS+4KSwIOCkrOCkqOCkvuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpK/gpLkg4KSF4KSo4KWN4oCN4KSvIOCkkOCkquCljeCkuCAg4KSV4KWHIOCksuCkv+CkjyDgpIngpKrgpLLgpKzgpY3igI3gpKcg4KS44KWN4oCN4KSu4KWD4KSk4KS/IOCkleCliyDgpLjgpYDgpK7gpL/gpKQg4KSV4KSwIOCkq+CkvOCli+CkqCDgpJXgpYsg4KSn4KWA4KSu4KS+IOCkleCksCDgpLjgpJXgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSIxODQzODUxMjk1Mzc3MDU5MzgiPiLgpJDgpKrgpY3gpLgg4KS54KSf4KS+4KSP4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSI3NDExNDgwMjc1MTY3MjA1MDgxIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsgQW5kcm9pZCDgpKrgpYjgpJXgpYfgpJwg4KS54KSf4KS+4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLggIOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSu4KS54KSk4KWN4KS14KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCAg4KS54KSf4KS+4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jbGVhckFwcFVzZXJEYXRhIiBtc2dpZD0iMjc0MTA5MTkxODQ1ODQyNzU2Ij4i4KSF4KSo4KWN4oCN4KSvIOCkkOCkquCljeCkuCDgpJXgpL4g4KSh4KWH4KSf4KS+IOCkueCkn+CkvuCkj+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NsZWFyQXBwVXNlckRhdGEiIG1zZ2lkPSI0NjI1MzIzNjg0MTI1NDU5NDg4Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkoeClh+Ckn+CkviDgpLjgpL7gpKvgpLwg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZWxldGVDYWNoZUZpbGVzIiBtc2dpZD0iMzEyODY2NTU3MTgzNzQwODY3NSI+IuCkheCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWHIOCkuOCkguCkmuCkryDgpLngpJ/gpL7gpI/gpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZWxldGVDYWNoZUZpbGVzIiBtc2dpZD0iMzgxMjk5ODU5OTAwNjczMDE5NiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkuOCkguCkmuCkryDgpKvgpLzgpL7gpIfgpLLgpYfgpIIg4KS54KSf4KS+4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9Ijc0NzI5MjE3NjgzNTc5ODE5ODYiPiLgpJDgpKrgpY3gpLggIOCkuOCkguCkl+CljeCksOCkueCkoyDgpLjgpY3gpKXgpL7gpKgg4KSu4KS+4KSq4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0UGFja2FnZVNpemUiIG1zZ2lkPSIzOTIxMDY4MTU0NDIwNzM4Mjk2Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSJ4KS44KSV4KS+IOCkleCli+CkoSwg4KSh4KWH4KSf4KS+LCDgpJTgpLAg4KS44KSC4KSa4KSvIOCkhuCkleCkvuCksOCli+CkgiDgpJXgpYsg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnN0YWxsUGFja2FnZXMiIG1zZ2lkPSIyMTk5MTI4NDgyODIwMzA2OTI0Ij4i4KS44KWA4KSn4KWHIOCkkOCkquCljeCkuCDgpIfgpILgpLjgpY3igI3gpJ/gpYngpLIg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iNTYyODUzMDk3MjU0ODA3MTI4NCI+IuCkj+CkqiDgpJXgpYsg4KSo4KSPIOCkr+CkviDgpKjgpIgg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkteCkvuCksuClhyBBbmRyb2lkIOCkquCliOCkleClh+CknCDgpIfgpILgpLjgpY3gpJ/gpYngpLIg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLggIOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSF4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCksOClguCkqiDgpLjgpYcg4KS44KS24KSV4KWN4KSkIOCkheCkqOClgeCkruCkpOCkv+Ckr+Cli+CkgiDgpLXgpL7gpLLgpYcg4KSo4KSPIOCkkOCkquCljeCkuCAg4KSc4KWL4KSh4KS84KSo4KWHIOCkruClh+CkgiDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NsZWFyQXBwQ2FjaGUiIG1zZ2lkPSI3NDg3Mjc5MzkxNzIzNTI2ODE1Ij4i4KS44KSt4KWAIOCkkOCkquCljeCkuCAg4KS44KSC4KSa4KSvIOCkoeClh+Ckn+CkviDgpLngpJ/gpL7gpI/gpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4OTc0NjQwODcxOTQ1NDM0NTY1Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSF4KSo4KWN4KSvIOCkkOCkquCljeCkuCAg4KSV4KWAIOCkuOCkguCkmuCkryDgpKjgpL/gpLDgpY3gpKbgpYfgpLbgpL/gpJXgpL7gpJPgpIIg4KSu4KWH4KSCIOCkuOClhyDgpKvgpLzgpL7gpIfgpLLgpYfgpIIg4KS54KSf4KS+4KSV4KSwIOCkn+Clh+CkrOCksuClh+CknyDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSV4KWLIOCkluCkvuCksuClgCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliC4g4KSH4KS44KS44KWHIOCkheCkqOCljeCkryDgpJDgpKrgpY3gpLggIOCkheCkp+Ckv+CklSDgpKfgpYDgpK7gpYcg4KSq4KWN4KSw4KS+4KSw4KSC4KStIOCkueCliyDgpLjgpJXgpKTgpYcg4KS54KWI4KSCIOCkleCljeCkr+Cli+CkguCkleCkvyDgpIngpKjgpY3gpLngpYfgpIIg4KSF4KSq4KSo4KS+IOCkoeClh+Ckn+CkviDgpKrgpYHgpKjgpLDgpY3gpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHIOCkleClgCDgpIbgpLXgpLbgpY3gpK/gpJXgpKTgpL4g4KS54KWL4KSk4KWAIOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjQ1OTQ0MTAyMTk1NjQzNjc3OSI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkheCkqOCljeCkryDgpJDgpKrgpY3gpLggIOCkleClgCDgpLjgpILgpJrgpK8g4KSo4KS/4KSw4KWN4KSm4KWH4KS24KS/4KSV4KS+4KST4KSCIOCkruClh+CkgiDgpLjgpYcg4KSr4KS84KS+4KSH4KSy4KWH4KSCIOCkueCkn+CkvuCkleCksCDgpKvgpLzgpYvgpKgg4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkleCliyDgpJbgpL7gpLLgpYAg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYguIOCkh+CkuOCkuOClhyDgpIXgpKjgpY3gpK8g4KSQ4KSq4KWN4KS4ICDgpIXgpKfgpL/gpJUg4KSn4KWA4KSu4KWHIOCkquCljeCksOCkvuCksOCkguCkrSDgpLngpYsg4KS44KSV4KSk4KWHIOCkueCliOCkgiDgpJXgpY3gpK/gpYvgpILgpJXgpL8g4KSJ4KSo4KWN4KS54KWH4KSCIOCkheCkquCkqOCkviDgpKHgpYfgpJ/gpL4g4KSq4KWB4KSo4KSw4KWN4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpJXgpYAg4KSG4KS14KS24KWN4KSv4KSV4KSk4KS+IOCkueCli+CkpOClgCDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3ZlUGFja2FnZSIgbXNnaWQ9IjMyODk4OTAyNzE2NDU5MjE0MTEiPiLgpJDgpKrgpY3gpLgg4KS44KSC4KS44KS+4KSn4KSo4KWL4KSCIOCkleCliyDgpLLgpYcg4KSc4KS+4KSP4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW92ZVBhY2thZ2UiIG1zZ2lkPSIzMTk1NjIyMTc3NzgyNDQ1MjQiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkkOCkquCljeCkuCDgpLjgpILgpLjgpL7gpKfgpKjgpYvgpIIg4KSV4KWLIOCkhuCkguCkpOCksOCkv+CklSDgpLjgpYcg4KSs4KS+4KS54KSw4KWAIOCkruClgOCkoeCkv+Ckr+CkviDgpK7gpYfgpIIg4KSU4KSwIOCkh+CkuOCkleClhyDgpLXgpL/gpKrgpLDgpYDgpKQg4KSy4KWHIOCknOCkvuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZExvZ3MiIG1zZ2lkPSI2NjE1Nzc4NTQzMTk4OTY3NjE0Ij4i4KS44KSC4KS14KWH4KSm4KSo4KS24KWA4KSyIOCksuClieCklyDgpKHgpYfgpJ/gpL4g4KSq4KSi4KS84KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZExvZ3MiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgyMDYxMzEzMjkzNDU1MTUxIj4i4KSV4KS/4KS44KWAIOCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KS44KS/4KS44KWN4oCN4KSf4KSuIOCkleClgCDgpLXgpL/gpK3gpL/gpKjgpY3igI3gpKgg4KSy4KWJ4KSXIOCkq+CkvOCkvuCkh+CksuCli+CkgiDgpLjgpYcg4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkguCkreCkvuCkteCkv+CkpCDgpLDgpYLgpKog4KS44KWHIOCkteCljeCkr+CkleCljeCkpOCkv+Ckl+CkpCDgpK/gpL4g4KSo4KS/4KSc4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCDgpLbgpL7gpK7gpL/gpLIg4KSV4KSw4KSk4KWHIOCkueClgeCkjywg4KSf4KWH4KSs4KSy4KWH4KSfIOCkleClhyDgpLjgpL7gpKUg4KSG4KSqIOCkleCljeKAjeCkr+CkviDgpJXgpLAg4KSw4KS54KWHIOCkueCliOCkgiDgpIfgpLgg4KSs4KS+4KSw4KWHIOCkruClh+CkgiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkluCli+CknOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjA2MzQzODE0MDI0MTU2MDQ0MyI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KS44KS/4KS44KWN4oCN4KSf4KSuIOCkleClgCDgpLXgpL/gpK3gpL/gpKjgpY3igI3gpKgg4KSy4KWJ4KSXIOCkq+CkvOCkvuCkh+CksuClh+CkgiDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KSC4KSt4KS+4KS14KS/4KSkIOCksOClguCkqiDgpLjgpYcg4KS14KWN4KSv4KSV4KWN4KSk4KS/4KSX4KSkIOCkr+CkviDgpKjgpL/gpJzgpYAg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkuOCkueCkv+CkpCwg4KSv4KS5IOCkh+CkuOClhyDgpIfgpLgg4KSs4KS+4KSw4KWHIOCkruClh+CkgiDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkluCli+CknOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCkleCkvyDgpIbgpKog4KSr4KS84KWL4KSoIOCkuOClhyDgpJXgpY3igI3gpK/gpL4g4KSV4KSwIOCksOCkueClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZExvZ3MiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgyMDYxMzEzMjkzNDU1MTUxIj4i4KSV4KS/4KS44KWAIOCkkOCkquCljeCkuCDgpJXgpYsg4KS44KS/4KS44KWN4oCN4KSf4KSuIOCkleClgCDgpLXgpL/gpK3gpL/gpKjgpY3igI3gpKgg4KSy4KWJ4KSXIOCkq+CkvOCkvuCkh+CksuCli+CkgiDgpLjgpYcg4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkguCkreCkvuCkteCkv+CkpCDgpLDgpYLgpKog4KS44KWHIOCkteCljeCkr+CkleCljeCkpOCkv+Ckl+CkpCDgpK/gpL4g4KSo4KS/4KSc4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCDgpLbgpL7gpK7gpL/gpLIg4KSV4KSw4KSk4KWHIOCkueClgeCkjywg4KSf4KWH4KSs4KSy4KWH4KSfIOCkleClhyDgpLjgpL7gpKUg4KSG4KSqIOCkleCljeKAjeCkr+CkviDgpJXgpLAg4KSw4KS54KWHIOCkueCliOCkgiDgpIfgpLgg4KSs4KS+4KSw4KWHIOCkruClh+CkgiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkluCli+CknOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjA2MzQzODE0MDI0MTU2MDQ0MyI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KS44KS/4KS44KWN4oCN4KSf4KSuIOCkleClgCDgpLXgpL/gpK3gpL/gpKjgpY3igI3gpKgg4KSy4KWJ4KSXIOCkq+CkvOCkvuCkh+CksuClh+CkgiDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KSC4KSt4KS+4KS14KS/4KSkIOCksOClguCkqiDgpLjgpYcg4KS14KWN4KSv4KSV4KWN4KSk4KS/4KSX4KSkIOCkr+CkviDgpKjgpL/gpJzgpYAg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkuOCkueCkv+CkpCwg4KSv4KS5IOCkh+CkuOClhyDgpIfgpLgg4KSs4KS+4KSw4KWHIOCkruClh+CkgiDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkluCli+CknOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCkleCkvyDgpIbgpKog4KSr4KS84KWL4KSoIOCkuOClhyDgpJXgpY3igI3gpK/gpL4g4KSV4KSwIOCksOCkueClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hbnlDb2RlY0ZvclBsYXliYWNrIiBtc2dpZD0iNzE1ODA1NTU1ODIzODgxODE4Ij4i4KSq4KWN4KSy4KWH4KSs4KWI4KSVIOCkleClhyDgpLLgpL/gpI8g4KSV4KS/4KS44KWAIOCkreClgCDgpK7gpYDgpKHgpL/gpK/gpL4g4KSh4KWA4KSV4KWL4KSh4KSwIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjgyODM5MTI0ODg0MzMxODkwMTAiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkquCljeCksuClh+CkrOCliOCklSDgpKHgpYDgpJXgpYvgpKEg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSV4KS/4KS44KWAIOCkreClgCDgpIfgpILgpLjgpY3gpJ/gpYngpLIg4KSV4KS/4KSPIOCkl+CkjyDgpKHgpYDgpJXgpYvgpKHgpLAg4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hbnlDb2RlY0ZvclBsYXliYWNrIiBtc2dpZD0iODI4MzkxMjQ4ODQzMzE4OTAxMCI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkquCljeCksuClh+CkrOCliOCklSDgpKHgpYDgpJXgpYvgpKEg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSV4KS/4KS44KWAIOCkreClgCDgpIfgpILgpLjgpY3gpJ/gpYngpLIg4KSV4KS/4KSPIOCkl+CkjyDgpKHgpYDgpJXgpYvgpKHgpLAg4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUNhQ2VydGlmaWNhdGVzIiBtc2dpZD0iMTY3ODM5MTg5Njc4Njg4MjAxNCI+IuCkteCkv+CktuCljeCkteCkuOCkqOClgOCkryDgpJXgpY3gpLDgpYfgpKHgpYfgpILgpLbgpL/gpK/gpLIg4KSq4KWN4KSw4KSs4KSC4KSn4KS/4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUNhQ2VydGlmaWNhdGVzIiBtc2dpZD0iNDAxNTY0NDA0NzE5NjkzNzAxNCI+IuCkj+CkquCljeCkuCDgpJXgpYsgQ0Eg4KSq4KWN4KSw4KSu4KS+4KSj4KSq4KSk4KWN4KSw4KWL4KSCIOCkleCliyDgpLXgpL/gpLbgpY3gpLXgpLjgpKjgpYDgpK8g4KSV4KWN4KSw4KWH4KSh4KWH4KSC4KS24KS/4KSv4KSyIOCkleClhyDgpLDgpYLgpKog4KSu4KWH4KSCIOCkh+CkguCkuOCljeCkn+ClieCksiDgpJTgpLAg4KSF4KSo4KSH4KSC4KS44KWN4KSf4KWJ4KSyIOCkleCksOCkqOClhyDgpKbgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VDYUNlcnRpZmljYXRlcyIgbXNnaWQ9IjQwMTU2NDQwNDcxOTY5MzcwMTQiPiLgpJDgpKrgpY3gpLggIOCkleCliyBDQSDgpKrgpY3gpLDgpK7gpL7gpKPgpKrgpKTgpY3gpLDgpYvgpIIg4KSV4KWLIOCkteCkv+CktuCljeCkteCkuOCkqOClgOCkryDgpJXgpY3gpLDgpYfgpKHgpYfgpILgpLbgpL/gpK/gpLIg4KSV4KWHIOCksOClguCkqiDgpK7gpYfgpIIg4KSH4KSC4KS44KWN4KSf4KWJ4KSyIOCklOCksCDgpIXgpKjgpIfgpILgpLjgpY3gpJ/gpYngpLIg4KSV4KSw4KSo4KWHIOCkpuClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGlhZ25vc3RpYyIgbXNnaWQ9IjgwNzY3NDM5NTM5MDgwMDAzNDIiPiLgpKjgpL/gpKbgpL7gpKgg4KSV4KWHIOCkuOCljeKAjeCkteCkvuCkruCkv+CkpOCljeKAjeCktSDgpLXgpL7gpLLgpYcg4KS44KSC4KS44KS+4KSn4KSo4KWL4KSCIOCkleCliyDgpKrgpKLgpLzgpYfgpIIv4KSy4KS/4KSW4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlhZ25vc3RpYyIgbXNnaWQ9IjY2MDgyOTU2OTIwMDI0NTIyODMiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIGRpYWcg4KS44KSu4KWC4KS5IOCkleClhyDgpLjgpY3igI3gpLXgpL7gpK7gpL/gpKTgpY3igI3gpLUg4KS14KS+4KSy4KWHIOCkleCkv+CkuOClgCDgpLjgpILgpLjgpL7gpKfgpKgg4KSV4KWLIOCkquCkouCkvOCkqOClhyDgpJTgpLAg4KSJ4KS44KSu4KWH4KSCIOCksuCkv+CkluCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIOyDgpIngpKbgpL7gpLngpLDgpKMg4KSV4KWHIOCksuCkv+CkjywgL2RldiDgpJXgpYAg4KSr4KS84KS+4KSH4KSy4KWH4KSCLiDgpK/gpLkg4KS44KS/4KS44KWN4oCN4KSf4KSuIOCkleClgCDgpLjgpY3igI3gpKXgpL/gpLDgpKTgpL4g4KSU4KSwIOCkuOClgeCksOCkleCljeCkt+CkviDgpJXgpYsg4KS44KSC4KSt4KS+4KS14KS/4KSkIOCksOClguCkqiDgpLjgpYcg4KSq4KWN4KSw4KSt4KS+4KS14KS/4KSkIOCkleCksCDgpLjgpJXgpKTgpL4g4KS54KWILiDgpIfgpLjgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkqOCkv+CksOCljeCkruCkvuCkpOCkviDgpK/gpL4g4KSR4KSq4KSw4KWH4KSf4KSwIOCkpuCljeCkteCkvuCksOCkviDgpJXgpYfgpLXgpLIg4KS54KS+4KSw4KWN4KSh4KS14KWH4KSv4KSwLeCkteCkv+CktuCkv+Ckt+CljeCknyDgpKjgpL/gpKbgpL7gpKgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpL/gpK/gpL4g4KSc4KS+4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZUNvbXBvbmVudFN0YXRlIiBtc2dpZD0iNjMzNTU3Njc3NTcxMTA5NTkzMSI+IuCkj+CkquCljeKAjeCkuCDgpJjgpJ/gpJXgpYvgpIIg4KSV4KWLIOCkuOCkleCljeCkt+CkriDgpK/gpL4g4KSF4KSV4KWN4KS34KSuIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUNvbXBvbmVudFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4ODg3NDM1NzQwOTgyMjM3Mjk0Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpK/gpLkg4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgg4KSV4KS/IOCkleCkv+CkuOClgCDgpIXgpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkleCkviDgpJjgpJ/gpJUg4KS44KSV4KWN4KS34KSuIOCkueCliCDgpK/gpL4g4KSo4KS54KWA4KSCLiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4oCN4KS4IOCkruCkueCkpOCljeKAjeCkteCkquClguCksOCljeCkoyDgpKvgpLzgpYvgpKgg4KSV4KWN4KS34KSu4KSk4KS+4KST4KSCIOCkleCliyDgpIXgpJXgpY3gpLfgpK4g4KSV4KSw4KSo4KWHIOCkruClh+CkgiDgpIfgpLjgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiDgpIfgpLgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KS44KS+4KS14KSn4KS+4KSo4KWAIOCkleClhyDgpLjgpL7gpKUg4KSV4KSw4KSo4KS+IOCkmuCkvuCkueCkv+Ckjywg4KSV4KWN4KSv4KWL4KSC4KSV4KS/IOCkh+CkuOCkuOClhyDgpI/gpKrgpY3igI3gpLgg4KSY4KSf4KSV4KWL4KSCIOCkleClhyDgpIXgpKjgpYHgpKrgpK/gpYvgpJfgpYAsIOCkheCkuOCkguCkl+CkpCwg4KSv4KS+IOCkheCkuOCljeKAjeCkpeCkv+CksCDgpLjgpY3igI3gpKXgpL/gpKTgpL8g4KSu4KWH4KSCIOCknOCkvuCkqOClhyDgpJXgpYAg4KS44KSC4KSt4KS+4KS14KSo4KS+IOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE4MjcyMzI0ODQ0MTY1MDU2MTUiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkr+CkuSDgpKzgpKbgpLLgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCDgpJXgpL8g4KSV4KS/4KS44KWAIOCkheCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSV4KS+IOCkmOCkn+CklSDgpLjgpJXgpY3gpLfgpK4g4KS54KWIIOCkr+CkviDgpKjgpLngpYDgpIIuIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpI/gpKrgpY3igI3gpLgg4KSu4KS54KSk4KWN4oCN4KS14KSq4KWC4KSw4KWN4KSjIOCkq+CkvOCli+CkqCDgpJXgpY3gpLfgpK7gpKTgpL7gpJPgpIIg4KSV4KWLIOCkheCkleCljeCkt+CkriDgpJXgpLDgpKjgpYcg4KSu4KWH4KSCIOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIOCkh+CkuCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpLjgpL7gpLXgpKfgpL7gpKjgpYAg4KSV4KWHIOCkuOCkvuCkpSDgpJXgpLDgpKjgpL4g4KSa4KS+4KS54KS/4KSPLCDgpJXgpY3gpK/gpYvgpILgpJXgpL8g4KSH4KS44KS44KWHIOCkj+CkquCljeKAjeCkuCDgpJjgpJ/gpJXgpYvgpIIg4KSV4KWHIOCkheCkqOClgeCkquCkr+Cli+Ckl+ClgCwg4KSF4KS44KSC4KSX4KSkLCDgpK/gpL4g4KSF4KS44KWN4oCN4KSl4KS/4KSwIOCkuOCljeKAjeCkpeCkv+CkpOCkvyDgpK7gpYfgpIIg4KSc4KS+4KSo4KWHIOCkleClgCDgpLjgpILgpK3gpL7gpLXgpKjgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RpYWdub3N0aWMiIG1zZ2lkPSI2NjA4Mjk1NjkyMDAyNDUyMjgzIj4i4KSQ4KSq4KWN4KS4IOCkleCliyBkaWFnIOCkuOCkruClguCkuSDgpJXgpYcg4KS44KWN4oCN4KS14KS+4KSu4KS/4KSk4KWN4oCN4KS1IOCkteCkvuCksuClhyDgpJXgpL/gpLjgpYAg4KS44KSC4KS44KS+4KSn4KSoIOCkleCliyDgpKrgpKLgpLzgpKjgpYcg4KSU4KSwIOCkieCkuOCkruClh+CkgiDgpLLgpL/gpJbgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliDsg4KSJ4KSm4KS+4KS54KSw4KSjIOCkleClhyDgpLLgpL/gpI8sIC9kZXYg4KSV4KWAIOCkq+CkvOCkvuCkh+CksuClh+Ckgi4g4KSv4KS5IOCkuOCkv+CkuOCljeKAjeCkn+CkriDgpJXgpYAg4KS44KWN4oCN4KSl4KS/4KSw4KSk4KS+IOCklOCksCDgpLjgpYHgpLDgpJXgpY3gpLfgpL4g4KSV4KWLIOCkuOCkguCkreCkvuCkteCkv+CkpCDgpLDgpYLgpKog4KS44KWHIOCkquCljeCksOCkreCkvuCkteCkv+CkpCDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliC4g4KSH4KS44KSV4KS+IOCkieCkquCkr+Cli+CklyDgpKjgpL/gpLDgpY3gpK7gpL7gpKTgpL4g4KSv4KS+IOCkkeCkquCksOClh+Ckn+CksCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSV4KWH4KS14KSyIOCkueCkvuCksOCljeCkoeCkteClh+Ckr+CksC3gpLXgpL/gpLbgpL/gpLfgpY3gpJ8g4KSo4KS/4KSm4KS+4KSoIOCkleClhyDgpLLgpL/gpI8g4KSV4KS/4KSv4KS+IOCknOCkvuCkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VDb21wb25lbnRTdGF0ZSIgbXNnaWQ9IjYzMzU1NzY3NzU3MTEwOTU5MzEiPiLgpJDgpKrgpY3gpLgg4KSY4KSf4KSV4KWL4KSCIOCkleCliyDgpLjgpJXgpY3gpLfgpK4g4KSv4KS+IOCkheCkleCljeCkt+CkriDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODg4NzQzNTc0MDk4MjIzNzI5NCI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSv4KS5IOCkrOCkpuCksuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCkleCkvyDgpJXgpL/gpLjgpYAg4KSF4KSo4KWN4oCN4KSvIOCkkOCkquCljeCkuCDgpJXgpL4g4KSY4KSf4KSVIOCkuOCkleCljeCkt+CkriDgpLngpYgg4KSv4KS+IOCkqOCkueClgOCkgi4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCDgpK7gpLngpKTgpY3igI3gpLXgpKrgpYLgpLDgpY3gpKMg4KSr4KS84KWL4KSoIOCkleCljeCkt+CkruCkpOCkvuCkk+CkgiDgpJXgpYsg4KSF4KSV4KWN4KS34KSuIOCkleCksOCkqOClhyDgpK7gpYfgpIIg4KSH4KS44KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4g4KSH4KS4IOCkheCkqOClgeCkruCkpOCkvyDgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkuOCkvuCkteCkp+CkvuCkqOClgCDgpJXgpYcg4KS44KS+4KSlIOCkleCksOCkqOCkviDgpJrgpL7gpLngpL/gpI8sIOCkleCljeCkr+Cli+CkguCkleCkvyDgpIfgpLjgpLjgpYcg4KSQ4KSq4KWN4KS4IOCkmOCkn+CkleCli+CkgiDgpJXgpYcg4KSF4KSo4KWB4KSq4KSv4KWL4KSX4KWALCDgpIXgpLjgpILgpJfgpKQsIOCkr+CkviDgpIXgpLjgpY3igI3gpKXgpL/gpLAg4KS44KWN4oCN4KSl4KS/4KSk4KS/IOCkruClh+CkgiDgpJzgpL7gpKjgpYcg4KSV4KWAIOCkuOCkguCkreCkvuCkteCkqOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODI3MjMyNDg0NDE2NTA1NjE1Ij4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpK/gpLkg4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgg4KSV4KS/IOCkleCkv+CkuOClgCDgpIXgpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4IOCkleCkviDgpJjgpJ/gpJUg4KS44KSV4KWN4KS34KSuIOCkueCliCDgpK/gpL4g4KSo4KS54KWA4KSCLiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSQ4KSq4KWN4KS4IOCkruCkueCkpOCljeKAjeCkteCkquClguCksOCljeCkoyDgpKvgpLzgpYvgpKgg4KSV4KWN4KS34KSu4KSk4KS+4KST4KSCIOCkleCliyDgpIXgpJXgpY3gpLfgpK4g4KSV4KSw4KSo4KWHIOCkruClh+CkgiDgpIfgpLjgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiDgpIfgpLgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KS44KS+4KS14KSn4KS+4KSo4KWAIOCkleClhyDgpLjgpL7gpKUg4KSV4KSw4KSo4KS+IOCkmuCkvuCkueCkv+Ckjywg4KSV4KWN4KSv4KWL4KSC4KSV4KS/IOCkh+CkuOCkuOClhyDgpJDgpKrgpY3gpLgg4KSY4KSf4KSV4KWL4KSCIOCkleClhyDgpIXgpKjgpYHgpKrgpK/gpYvgpJfgpYAsIOCkheCkuOCkguCkl+CkpCwg4KSv4KS+IOCkheCkuOCljeKAjeCkpeCkv+CksCDgpLjgpY3igI3gpKXgpL/gpKTgpL8g4KSu4KWH4KSCIOCknOCkvuCkqOClhyDgpJXgpYAg4KS44KSC4KSt4KS+4KS14KSo4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dyYW50UmV2b2tlUGVybWlzc2lvbnMiIG1zZ2lkPSI0NjI3MzE1MzUxMDkzNTA4Nzk1Ij4i4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuClh+CkgiDgpK/gpL4g4KSw4KSm4KWN4KSmIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dyYW50UmV2b2tlUGVybWlzc2lvbnMiIG1zZ2lkPSI0MDg4NjQyNjU0MDg1ODUwNjYyIj4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIngpLjgpJXgpYcg4KSv4KS+IOCkheCkqOCljeCkryDgpI/gpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpLXgpL/gpLbgpYfgpLcg4KSF4KSo4KWB4KSu4KSk4KS/4KSv4KS+4KSCIOCkpuClh+CkqOClhyDgpK/gpL4g4KSw4KSm4KWN4KSmIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4KS4IOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSJ4KSoIOCkuOClgeCkteCkv+Ckp+CkvuCkk+CkgiDgpKTgpJUg4KSq4KS54KWB4KSC4KSa4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIg4KSc4KWLIOCkhuCkquCkqOClhyDgpIngpKjgpY3gpLngpYfgpIIg4KSo4KS54KWA4KSCIOCkpuClgCDgpLngpYjgpIIuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcmVmZXJyZWRBcHBsaWNhdGlvbnMiIG1zZ2lkPSI4NDYzMTgxNjI4Njk1Mzk2MzkxIj4i4KSq4KS44KSC4KSm4KWA4KSm4KS+IOCkj+CkquCljeKAjeCkuCDgpLjgpYfgpJ8g4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJlZmVycmVkQXBwbGljYXRpb25zIiBtc2dpZD0iNDk3Mzk4Njc2MjI0MTc4MzcxMiI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkquCkuOCkguCkpuClgOCkpuCkviDgpI/gpKrgpY3gpLgg4KSV4KWLIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkj+CkquCljeCkuCDgpIbgpKrgpLjgpYcg4KSo4KS/4KSc4KWAIOCkoeClh+Ckn+CkviDgpI/gpJXgpKTgpY3gpLDgpL/gpKQg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSG4KSq4KSV4KWHIOCkruCljOCknOClguCkpuCkviDgpI/gpKrgpY3gpLgg4KSV4KWLIOCkuOCljeCkquClguCkq+CkvCDgpJXgpLDgpJXgpYcsIOCkmuCksuCkvuCkjyDgpJzgpL7gpKjgpYcg4KS14KS+4KSy4KWHIOCkj+CkquCljeCkuCDgpJXgpYsg4KSa4KWB4KSq4KSa4KS+4KSqIOCkrOCkpuCksiDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dyYW50UmV2b2tlUGVybWlzc2lvbnMiIG1zZ2lkPSI0MDg4NjQyNjU0MDg1ODUwNjYyIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSJ4KS44KSV4KWHIOCkr+CkviDgpIXgpKjgpY3gpK8g4KSQ4KSq4KWN4KS4ICDgpJXgpYcg4KSy4KS/4KSPIOCkteCkv+CktuClh+CktyDgpIXgpKjgpYHgpK7gpKTgpL/gpK/gpL7gpIIg4KSm4KWH4KSo4KWHIOCkr+CkviDgpLDgpKbgpY3gpKYg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLggIOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSJ4KSoIOCkuOClgeCkteCkv+Ckp+CkvuCkk+CkgiDgpKTgpJUg4KSq4KS54KWB4KSC4KSa4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIg4KSc4KWLIOCkhuCkquCkqOClhyDgpIngpKjgpY3gpLngpYfgpIIg4KSo4KS54KWA4KSCIOCkpuClgCDgpLngpYjgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcmVmZXJyZWRBcHBsaWNhdGlvbnMiIG1zZ2lkPSI4NDYzMTgxNjI4Njk1Mzk2MzkxIj4i4KSq4KS44KSC4KSm4KWA4KSm4KS+IOCkkOCkquCljeCkuCDgpLjgpYfgpJ8g4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJlZmVycmVkQXBwbGljYXRpb25zIiBtc2dpZD0iNDk3Mzk4Njc2MjI0MTc4MzcxMiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkhuCkquCkleClhyDgpKrgpLjgpILgpKbgpYDgpKbgpL4g4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSQ4KSq4KWN4KS4ICDgpIbgpKrgpLjgpYcg4KSo4KS/4KSc4KWAIOCkoeClh+Ckn+CkviDgpI/gpJXgpKTgpY3gpLDgpL/gpKQg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSG4KSq4KSV4KWHIOCkruCljOCknOClguCkpuCkviDgpJDgpKrgpY3gpLggIOCkleCliyDgpLjgpY3gpKrgpYLgpKvgpLwg4KSV4KSw4KSV4KWHLCDgpJrgpLLgpL7gpI8g4KSc4KS+4KSo4KWHIOCkteCkvuCksuClhyDgpJDgpKrgpY3gpLggIOCkleCliyDgpJrgpYHgpKrgpJrgpL7gpKog4KSs4KSm4KSyIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNldHRpbmdzIiBtc2dpZD0iMjIyNjE5NTI5MDk1NTIyNDczMCI+IuCkuOCkv+CkuOCljeKAjeCkn+CkriDgpLjgpYfgpJ/gpL/gpILgpJcg4KSs4KSm4KSy4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTZXR0aW5ncyIgbXNnaWQ9Ijc3NzU3MjM0NDE1NTg5MDcxODEiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkuOCkv+CkuOCljeCkn+CkriDgpLjgpYfgpJ/gpL/gpILgpJcg4KSh4KWH4KSf4KS+IOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkj+CkquCljeCkuCDgpIbgpKrgpJXgpYcg4KS44KS/4KS44KWN4KSf4KSuIOCkleClhyDgpJXgpYngpKjgpY3gpKvgpLzgpL/gpJfgpLDgpYfgpLbgpKgg4KSV4KWLIOCkpuClguCkt+Ckv+CkpCDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNldHRpbmdzIiBtc2dpZD0iNzc3NTcyMzQ0MTU1ODkwNzE4MSI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkuOCkv+CkuOCljeCkn+CkriDgpLjgpYfgpJ/gpL/gpILgpJcg4KSh4KWH4KSf4KS+IOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCAg4KSG4KSq4KSV4KWHIOCkuOCkv+CkuOCljeCkn+CkriDgpJXgpYcg4KSV4KWJ4KSo4KWN4KSr4KS84KS/4KSX4KSw4KWH4KS24KSoIOCkleCliyDgpKbgpYLgpLfgpL/gpKQg4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNlY3VyZVNldHRpbmdzIiBtc2dpZD0iMjA0Njc2MjUxODc2NzE4Mjg4Ij4i4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkuOCkv+CkuOCljeKAjeCkn+CkriDgpLjgpYfgpJ/gpL/gpILgpJcg4KSs4KSm4KSy4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTZWN1cmVTZXR0aW5ncyIgbXNnaWQ9IjgxNTk1MzU2MTMwMjAxMzczOTEiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkuOCkv+CkuOCljeCkn+CkriDgpJXgpYcg4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkuOClh+Ckn+Ckv+CkguCklyDgpKHgpYfgpJ/gpL4g4KSV4KWLIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkj+CkquCljeKAjeCkuCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkqOCkueClgOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNlY3VyZVNldHRpbmdzIiBtc2dpZD0iODE1OTUzNTYxMzAyMDEzNzM5MSI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkuOCkv+CkuOCljeCkn+CkriDgpJXgpYcg4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkuOClh+Ckn+Ckv+CkguCklyDgpKHgpYfgpJ/gpL4g4KSV4KWLIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkkOCkquCljeCkuCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkqOCkueClgOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlR3NlcnZpY2VzIiBtc2dpZD0iMjE0OTQyNjY2NDIyNjE1MjE4NSI+Ikdvb2dsZSDgpLjgpYfgpLXgpL7gpI/gpIIg4KSo4KSV4KWN4KS24KS+IOCkrOCkpuCksuClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlR3NlcnZpY2VzIiBtc2dpZD0iMTI4NzMwOTQzNzYzODM4MDIyOSI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsgR29vZ2xlIOCkuOClh+CkteCkvuCkk+CkgiDgpJXgpL4g4KSo4KSV4KWN4KS24KWHIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkj+CkquCljeKAjeCkuCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkqOCkueClgOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUdzZXJ2aWNlcyIgbXNnaWQ9IjEyODczMDk0Mzc2MzgzODAyMjkiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIEdvb2dsZSDgpLjgpYfgpLXgpL7gpJPgpIIg4KSV4KS+IOCkqOCkleCljeCktuClhyDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpKjgpLngpYDgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlQm9vdENvbXBsZXRlZCIgbXNnaWQ9IjUzMTI5NjU1NjU5ODc4MDAwMjUiPiLgpKrgpY3gpLDgpL7gpLDgpILgpK0g4KS54KWL4KSo4KWHIOCkquCksCDgpJrgpLLgpL7gpI/gpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlQm9vdENvbXBsZXRlZCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzM5MDMwNDY2NDExNjg4MDcwNCI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KS44KS/4KS44KWN4KSf4KSuIOCkpuCljeCkteCkvuCksOCkviDgpKzgpYLgpJ/gpL/gpILgpJcg4KSq4KWC4KSw4KWN4KSjIOCkleCksOCkpOClhyDgpLngpYAg4KS44KWN4KS14KSk4KSDIOCkhuCksOCkguCkrSDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS44KS44KWHIOCkn+Clh+CkrOCksuClh+CknyDgpJXgpYsg4KSG4KSw4KSC4KStIOCkueCli+CkqOClhyDgpK7gpYfgpIIg4KSF4KSn4KS/4KSVIOCkuOCkruCkryDgpLLgpJcg4KS44KSV4KSk4KS+IOCkueCliCDgpJTgpLAg4KSP4KSq4KWN4KS4IOCkleCliyDgpKjgpL/gpLDgpILgpKTgpLAg4KSa4KSy4KS+4KSV4KSwIOCkuOCkguCkquClguCksOCljeCkoyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSV4KWLIOCkp+ClgOCkruCkviDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlQm9vdENvbXBsZXRlZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUxMzk1MDU4OTEwMjYxNzUwNCI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KS44KS/4KS44KWN4KSf4KSuIOCkpuCljeCkteCkvuCksOCkviDgpKzgpYLgpJ/gpL/gpILgpJcg4KSq4KWC4KSw4KWN4KSjIOCkleCksOCkpOClhyDgpLngpYAg4KS44KWN4KS14KSk4KSDIOCkquCljeCksOCkvuCksOCkguCkrSDgpLngpYvgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS44KS44KWHIOCkq+CkvOCli+CkqCDgpJXgpYsg4KSq4KWN4KSw4KS+4KSw4KSC4KStIOCkueCli+CkqOClhyDgpK7gpYfgpIIg4KSF4KSn4KS/4KSVIOCkuOCkruCkryDgpLLgpJcg4KS44KSV4KSk4KS+IOCkueCliCDgpJTgpLAg4KSP4KSq4KWN4KS4IOCkleClhyDgpKjgpL/gpLDgpILgpKTgpLAg4KSa4KSy4KSk4KWHIOCksOCkueCkqOClhyDgpLjgpYcg4KS44KSC4KSq4KWC4KSw4KWN4KSjIOCkq+CkvOCli+CkqCDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL7gpI/gpIIg4KSn4KWA4KSu4KWAIOCkueCliyDgpLjgpJXgpKTgpYAg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVCb290Q29tcGxldGVkIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3MzkwMzA0NjY0MTE2ODgwNzA0Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KS44KS/4KS44KWN4KSf4KSuIOCkpuCljeCkteCkvuCksOCkviDgpKzgpYLgpJ/gpL/gpILgpJcg4KSq4KWC4KSw4KWN4KSjIOCkleCksOCkpOClhyDgpLngpYAg4KS44KWN4KS14KSk4KSDIOCkhuCksOCkguCkrSDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS44KS44KWHIOCkn+Clh+CkrOCksuClh+CknyDgpJXgpYsg4KSG4KSw4KSC4KStIOCkueCli+CkqOClhyDgpK7gpYfgpIIg4KSF4KSn4KS/4KSVIOCkuOCkruCkryDgpLLgpJcg4KS44KSV4KSk4KS+IOCkueCliCDgpJTgpLAg4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSo4KS/4KSw4KSC4KSk4KSwIOCkmuCksuCkvuCkleCksCDgpLjgpILgpKrgpYLgpLDgpY3gpKMg4KSf4KWH4KSs4KSy4KWH4KSfIOCkleCliyDgpKfgpYDgpK7gpL4g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MTM5NTA1ODkxMDI2MTc1MDQiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpLjgpL/gpLjgpY3gpJ/gpK4g4KSm4KWN4KS14KS+4KSw4KS+IOCkrOClguCkn+Ckv+CkguCklyDgpKrgpYLgpLDgpY3gpKMg4KSV4KSw4KSk4KWHIOCkueClgCDgpLjgpY3gpLXgpKTgpIMg4KSq4KWN4KSw4KS+4KSw4KSC4KStIOCkueCli+CkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpIfgpLjgpLjgpYcg4KSr4KS84KWL4KSoIOCkleCliyDgpKrgpY3gpLDgpL7gpLDgpILgpK0g4KS54KWL4KSo4KWHIOCkruClh+CkgiDgpIXgpKfgpL/gpJUg4KS44KSu4KSvIOCksuCklyDgpLjgpJXgpKTgpL4g4KS54KWIIOCklOCksCDgpJDgpKrgpY3gpLggIOCkleClhyDgpKjgpL/gpLDgpILgpKTgpLAg4KSa4KSy4KSk4KWHIOCksOCkueCkqOClhyDgpLjgpYcg4KS44KSC4KSq4KWC4KSw4KWN4KSjIOCkq+CkvOCli+CkqCDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL7gpI/gpIIg4KSn4KWA4KSu4KWAIOCkueCliyDgpLjgpJXgpKTgpYAg4KS54KWI4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0U3RpY2t5IiBtc2dpZD0iNzkxOTEyNjM3MjYwNjg4MTYxNCI+IuCkuOCljeCkn+Ckv+CkleClgCDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KSt4KWH4KSc4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3NzQ5NzYwNDk0Mzk5OTE1NjUxIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpLjgpY3igI3gpJ/gpL/gpJXgpYAg4KSq4KWN4KSw4KS44KS+4KSw4KSjIOCkreClh+CknOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILCDgpJzgpYsg4KSq4KWN4KSw4KS44KS+4KSw4KSjIOCkuOCkruCkvuCkquCljeCkpCDgpLngpYvgpKjgpYcg4KSV4KWHIOCkrOCkvuCkpiDgpK3gpYAg4KSs4KSo4KWHIOCksOCkueCkpOClhyDgpLngpYjgpIIuIOCkheCkpOCljeCkr+Ckp+Ckv+CklSDgpIngpKrgpK/gpYvgpJcsIOCkn+Clh+CkrOCksuClh+CknyDgpJXgpYAg4KSs4KS54KWB4KSkIOCkheCkp+Ckv+CklSDgpLjgpY3gpK7gpYPgpKTgpL8g4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpJXgpYcg4KSJ4KS44KWHIOCkp+ClgOCkruCkviDgpK/gpL4g4KSF4KS44KWN4oCN4KSl4KS/4KSwIOCkleCksCDgpLjgpJXgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFN0aWNreSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4MjU4MDM3NjQyMzI0NDUwOTEiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkuOCljeKAjeCkn+Ckv+CkleClgCDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KSt4KWH4KSc4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgsIOCknOCliyDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KS44KSu4KS+4KSq4KWN4KSkIOCkueCli+CkqOClhyDgpJXgpYcg4KSs4KS+4KSmIOCkreClgCDgpKzgpKjgpYcg4KSw4KS54KSk4KWHIOCkueCliOCkgi4g4KSF4KSk4KWN4KSv4KSn4KS/4KSVIOCkieCkquCkr+Cli+Cklywg4KSr4KS84KWL4KSoIOCkleClgCDgpKzgpLngpYHgpKQg4KSF4KSn4KS/4KSVIOCkuOCljeCkruClg+CkpOCkvyDgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkleClhyDgpIngpLjgpYcg4KSn4KWA4KSu4KS+IOCkr+CkviDgpIXgpLjgpY3igI3gpKXgpL/gpLAg4KSV4KSwIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3NzQ5NzYwNDk0Mzk5OTE1NjUxIj4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpLjgpY3igI3gpJ/gpL/gpJXgpYAg4KSq4KWN4KSw4KS44KS+4KSw4KSjIOCkreClh+CknOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILCDgpJzgpYsg4KSq4KWN4KSw4KS44KS+4KSw4KSjIOCkuOCkruCkvuCkquCljeCkpCDgpLngpYvgpKjgpYcg4KSV4KWHIOCkrOCkvuCkpiDgpK3gpYAg4KSs4KSo4KWHIOCksOCkueCkpOClhyDgpLngpYjgpIIuIOCkheCkpOCljeCkr+Ckp+Ckv+CklSDgpIngpKrgpK/gpYvgpJcsIOCkn+Clh+CkrOCksuClh+CknyDgpJXgpYAg4KSs4KS54KWB4KSkIOCkheCkp+Ckv+CklSDgpLjgpY3gpK7gpYPgpKTgpL8g4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpJXgpYcg4KSJ4KS44KWHIOCkp+ClgOCkruCkviDgpK/gpL4g4KSF4KS44KWN4oCN4KSl4KS/4KSwIOCkleCksCDgpLjgpJXgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFN0aWNreSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4MjU4MDM3NjQyMzI0NDUwOTEiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkuOCljeKAjeCkn+Ckv+CkleClgCDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KSt4KWH4KSc4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgsIOCknOCliyDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KS44KSu4KS+4KSq4KWN4KSkIOCkueCli+CkqOClhyDgpJXgpYcg4KSs4KS+4KSmIOCkreClgCDgpKzgpKjgpYcg4KSw4KS54KSk4KWHIOCkueCliOCkgi4g4KSF4KSk4KWN4KSv4KSn4KS/4KSVIOCkieCkquCkr+Cli+Cklywg4KSr4KS84KWL4KSoIOCkleClgCDgpKzgpLngpYHgpKQg4KSF4KSn4KS/4KSVIOCkuOCljeCkruClg+CkpOCkvyDgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkleClhyDgpIngpLjgpYcg4KSn4KWA4KSu4KS+IOCkr+CkviDgpIXgpLjgpY3igI3gpKXgpL/gpLAg4KSV4KSwIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ29udGFjdHMiIG1zZ2lkPSI4MzQ4NDgxMTMxODk5ODg2MTMxIj4i4KSF4KSq4KSo4KWHIOCkuOCkguCkquCksOCljeCklSDgpKrgpKLgpLzgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ29udGFjdHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjUyOTQ4NjY4NTY5NDExNDk2MzkiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkhuCkquCkleClhyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSu4KWH4KSCIOCkuOCkguCkl+CljeCksOCkueClgOCkpCDgpLjgpILgpKrgpLDgpY3gpJXgpYvgpIIg4KSV4KWHIOCkoeClh+Ckn+CkviDgpJXgpYssIOCkuOCkvuCkpSDgpLngpYAg4KSG4KSq4KSV4KWHIOCkpuCljeCkteCkvuCksOCkviDgpLXgpL/gpLbgpL/gpLfgpY3gpJ8g4KS14KWN4KSv4KSV4KWN4KSk4KS/4KSv4KWL4KSCIOCkleCliyDgpJXgpYngpLIg4KSV4KSw4KSo4KWHLCDgpIjgpK7gpYfgpLIg4KSV4KSw4KSo4KWHLCDgpK/gpL4g4KSF4KSo4KWN4oCN4KSvIOCkpOCksOClgOCkleClhyDgpLjgpYcg4KS44KSC4KS14KS+4KSmIOCkleCksOCkqOClhyDgpJXgpYAg4KSG4KS14KWD4KSk4KWN4KSk4KS/IOCkleCliyDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkheCkqOClgeCkruCkpOCkvyDgpI/gpKrgpY3gpLgg4KSV4KWLIOCkhuCkquCkleClhyDgpLjgpILgpKrgpLDgpY3gpJUg4KSh4KWH4KSf4KS+IOCkleCliyDgpLjgpLngpYfgpJzgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliCwg4KSU4KSwIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpI/gpKrgpY3gpLgg4KSG4KSq4KSV4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCDgpJXgpYcg4KSs4KS/4KSo4KS+IOCkuOCkguCkquCksOCljeCklSDgpKHgpYfgpJ/gpL4g4KSV4KWLIOCkuOCkvuCkneCkviDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ29udGFjdHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NDQwNjU0MTUyNDU3MzAwNjYyIj4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIbgpKrgpJXgpYcg4KSr4KS84KWL4KSoIOCkruClh+CkgiDgpLjgpILgpJfgpY3gpLDgpLngpYDgpKQg4KS44KSC4KSq4KSw4KWN4KSV4KWL4KSCIOCkleClhyDgpKHgpYfgpJ/gpL4g4KSV4KWLLCDgpLjgpL7gpKUg4KS54KWAIOCkhuCkquCkleClhyDgpKbgpY3gpLXgpL7gpLDgpL4g4KS14KS/4KS24KS/4KS34KWN4KSfIOCkteCljeCkr+CkleCljeCkpOCkv+Ckr+Cli+CkgiDgpJXgpYsg4KSV4KWJ4KSyIOCkleCksOCkqOClhywg4KSI4KSu4KWH4KSyIOCkleCksOCkqOClhywg4KSv4KS+IOCkheCkqOCljeKAjeCkryDgpKTgpLDgpYDgpJXgpYcg4KS44KWHIOCkuOCkguCkteCkvuCkpiDgpJXgpLDgpKjgpYcg4KSV4KWAIOCkhuCkteClg+CkpOCljeCkpOCkvyDgpJXgpYsg4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkr+CkuSDgpIXgpKjgpYHgpK7gpKTgpL8g4KSP4KSq4KWN4KS4IOCkleCliyDgpIbgpKrgpJXgpYcg4KS44KSC4KSq4KSw4KWN4KSVIOCkoeClh+Ckn+CkviDgpJXgpYsg4KS44KS54KWH4KSc4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYgsIOCklOCksCDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4KS4IOCkhuCkquCkleClgCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSV4KWHIOCkrOCkv+CkqOCkviDgpLjgpILgpKrgpLDgpY3gpJUg4KSh4KWH4KSf4KS+IOCkleCliyDgpLjgpL7gpJ3gpL4g4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENvbnRhY3RzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1Mjk0ODY2ODU2OTQxMTQ5NjM5Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkn+Clh+CkrOCksuClh+CknyDgpK7gpYfgpIIg4KS44KSC4KSX4KWN4KSw4KS54KWA4KSkIOCkuOCkguCkquCksOCljeCkleCli+CkgiDgpJXgpYcg4KSh4KWH4KSf4KS+IOCkleCliywg4KS44KS+4KSlIOCkueClgCDgpIbgpKrgpJXgpYcg4KSm4KWN4KS14KS+4KSw4KS+IOCkteCkv+CktuCkv+Ckt+CljeCknyDgpLXgpY3gpK/gpJXgpY3gpKTgpL/gpK/gpYvgpIIg4KSV4KWLIOCkleClieCksiDgpJXgpLDgpKjgpYcsIOCkiOCkruClh+CksiDgpJXgpLDgpKjgpYcsIOCkr+CkviDgpIXgpKjgpY3igI3gpK8g4KSk4KSw4KWA4KSV4KWHIOCkuOClhyDgpLjgpILgpLXgpL7gpKYg4KSV4KSw4KSo4KWHIOCkleClgCDgpIbgpLXgpYPgpKTgpY3gpKTgpL8g4KSV4KWLIOCkquCkouCkvOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpK/gpLkg4KSF4KSo4KWB4KSu4KSk4KS/IOCkkOCkquCljeCkuCAg4KSV4KWLIOCkhuCkquCkleClhyDgpLjgpILgpKrgpLDgpY3gpJUg4KSh4KWH4KSf4KS+IOCkleCliyDgpLjgpLngpYfgpJzgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliCwg4KSU4KSwIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLggIOCkhuCkquCkleClgCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSV4KWHIOCkrOCkv+CkqOCkviDgpLjgpILgpKrgpLDgpY3gpJUg4KSh4KWH4KSf4KS+IOCkleCliyDgpLjgpL7gpJ3gpL4g4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENvbnRhY3RzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODQ0MDY1NDE1MjQ1NzMwMDY2MiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkhuCkquCkleClhyDgpKvgpLzgpYvgpKgg4KSu4KWH4KSCIOCkuOCkguCkl+CljeCksOCkueClgOCkpCDgpLjgpILgpKrgpLDgpY3gpJXgpYvgpIIg4KSV4KWHIOCkoeClh+Ckn+CkviDgpJXgpYssIOCkuOCkvuCkpSDgpLngpYAg4KSG4KSq4KSV4KWHIOCkpuCljeCkteCkvuCksOCkviDgpLXgpL/gpLbgpL/gpLfgpY3gpJ8g4KS14KWN4KSv4KSV4KWN4KSk4KS/4KSv4KWL4KSCIOCkleCliyDgpJXgpYngpLIg4KSV4KSw4KSo4KWHLCDgpIjgpK7gpYfgpLIg4KSV4KSw4KSo4KWHLCDgpK/gpL4g4KSF4KSo4KWN4oCN4KSvIOCkpOCksOClgOCkleClhyDgpLjgpYcg4KS44KSC4KS14KS+4KSmIOCkleCksOCkqOClhyDgpJXgpYAg4KSG4KS14KWD4KSk4KWN4KSk4KS/IOCkleCliyDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkheCkqOClgeCkruCkpOCkvyDgpJDgpKrgpY3gpLggIOCkleCliyDgpIbgpKrgpJXgpYcg4KS44KSC4KSq4KSw4KWN4KSVIOCkoeClh+Ckn+CkviDgpJXgpYsg4KS44KS54KWH4KSc4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYgsIOCklOCksCDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSQ4KSq4KWN4KS4ICDgpIbgpKrgpJXgpYAg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkleClhyDgpKzgpL/gpKjgpL4g4KS44KSC4KSq4KSw4KWN4KSVIOCkoeClh+Ckn+CkviDgpJXgpYsg4KS44KS+4KSd4KS+IOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVDb250YWN0cyIgbXNnaWQ9IjUxMDc0OTIwODY0MTY3OTM1NDQiPiLgpIXgpKrgpKjgpYcg4KS44KSC4KSq4KSw4KWN4KSVIOCkrOCkpuCksuClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ29udGFjdHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg5NzI0MzkzMjUyMTk1MzYwMiI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkn+Clh+CkrOCksuClh+CknyDgpK7gpYfgpIIg4KS44KSC4KSX4KWN4KSw4KS54KWA4KSkIOCkuOCkguCkquCksOCljeCkleCli+CkgiDgpJXgpYcg4KSh4KWH4KSf4KS+IOCkleCliywg4KS44KS+4KSlIOCkueClgCDgpIbgpKrgpJXgpYcg4KSm4KWN4KS14KS+4KSw4KS+IOCkteCkv+CktuCkv+Ckt+CljeCknyDgpLXgpY3gpK/gpJXgpY3gpKTgpL/gpK/gpYvgpIIg4KSV4KWLIOCkleClieCksiDgpJXgpLDgpKjgpYcsIOCkiOCkruClh+CksiDgpJXgpLDgpKjgpYcsIOCkr+CkviDgpIXgpKjgpY3igI3gpK8g4KSk4KSw4KWA4KSV4KWHIOCkuOClhyDgpLjgpILgpLXgpL7gpKYg4KSV4KSw4KSo4KWHIOCkleClgCDgpIbgpLXgpYPgpKTgpY3gpKTgpL8g4KSV4KWLIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkheCkqOClgeCkruCkpOCkvyDgpI/gpKrgpY3gpLgg4KSV4KWLIOCkhuCkquCkleClhyDgpLjgpILgpKrgpLDgpY3gpJUg4KSh4KWH4KSf4KS+IOCkleCliyDgpLngpJ/gpL7gpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNvbnRhY3RzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTg5ODY5MjI0NjI1MTYzNTU4Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIbgpKrgpJXgpYcg4KSr4KS84KWL4KSoIOCkruClh+CkgiDgpLjgpILgpJfgpY3gpLDgpLngpYDgpKQg4KS44KSC4KSq4KSw4KWN4KSV4KWL4KSCIOCkleClhyDgpKHgpYfgpJ/gpL4g4KSV4KWLLCDgpLjgpL7gpKUg4KS54KWAIOCkhuCkquCkleClhyDgpKbgpY3gpLXgpL7gpLDgpL4g4KS14KS/4KS24KS/4KS34KWN4KSfIOCkteCljeCkr+CkleCljeCkpOCkv+Ckr+Cli+CkgiDgpJXgpYsg4KSV4KWJ4KSyIOCkleCksOCkqOClhywg4KSI4KSu4KWH4KSyIOCkleCksOCkqOClhywg4KSv4KS+IOCkheCkqOCljeKAjeCkryDgpKTgpLDgpYDgpJXgpYcg4KS44KWHIOCkuOCkguCkteCkvuCkpiDgpJXgpLDgpKjgpYcg4KSV4KWAIOCkhuCkteClg+CkpOCljeCkpOCkvyDgpJXgpYsg4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpK/gpLkg4KSF4KSo4KWB4KSu4KSk4KS/IOCkj+CkquCljeCkuCDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkuOCkguCkquCksOCljeCklSDgpKHgpYfgpJ/gpL4g4KSV4KWLIOCkueCkn+CkvuCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ29udGFjdHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg5NzI0MzkzMjUyMTk1MzYwMiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkhuCkquCkleClhyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSu4KWH4KSCIOCkuOCkguCkl+CljeCksOCkueClgOCkpCDgpLjgpILgpKrgpLDgpY3gpJXgpYvgpIIg4KSV4KWHIOCkoeClh+Ckn+CkviDgpJXgpYssIOCkuOCkvuCkpSDgpLngpYAg4KSG4KSq4KSV4KWHIOCkpuCljeCkteCkvuCksOCkviDgpLXgpL/gpLbgpL/gpLfgpY3gpJ8g4KS14KWN4KSv4KSV4KWN4KSk4KS/4KSv4KWL4KSCIOCkleCliyDgpJXgpYngpLIg4KSV4KSw4KSo4KWHLCDgpIjgpK7gpYfgpLIg4KSV4KSw4KSo4KWHLCDgpK/gpL4g4KSF4KSo4KWN4oCN4KSvIOCkpOCksOClgOCkleClhyDgpLjgpYcg4KS44KSC4KS14KS+4KSmIOCkleCksOCkqOClhyDgpJXgpYAg4KSG4KS14KWD4KSk4KWN4KSk4KS/IOCkleCliyDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkr+CkuSDgpIXgpKjgpYHgpK7gpKTgpL8g4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkuOCkguCkquCksOCljeCklSDgpKHgpYfgpJ/gpL4g4KSV4KWLIOCkueCkn+CkvuCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ29udGFjdHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1ODk4NjkyMjQ2MjUxNjM1NTgiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpIbgpKrgpJXgpYcg4KSr4KS84KWL4KSoIOCkruClh+CkgiDgpLjgpILgpJfgpY3gpLDgpLngpYDgpKQg4KS44KSC4KSq4KSw4KWN4KSV4KWL4KSCIOCkleClhyDgpKHgpYfgpJ/gpL4g4KSV4KWLLCDgpLjgpL7gpKUg4KS54KWAIOCkhuCkquCkleClhyDgpKbgpY3gpLXgpL7gpLDgpL4g4KS14KS/4KS24KS/4KS34KWN4KSfIOCkteCljeCkr+CkleCljeCkpOCkv+Ckr+Cli+CkgiDgpJXgpYsg4KSV4KWJ4KSyIOCkleCksOCkqOClhywg4KSI4KSu4KWH4KSyIOCkleCksOCkqOClhywg4KSv4KS+IOCkheCkqOCljeKAjeCkryDgpKTgpLDgpYDgpJXgpYcg4KS44KWHIOCkuOCkguCkteCkvuCkpiDgpJXgpLDgpKjgpYcg4KSV4KWAIOCkhuCkteClg+CkpOCljeCkpOCkvyDgpJXgpYsg4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpK/gpLkg4KSF4KSo4KWB4KSu4KSk4KS/IOCkkOCkquCljeCkuCAg4KSV4KWLIOCkhuCkquCkleClhyDgpLjgpILgpKrgpLDgpY3gpJUg4KSh4KWH4KSf4KS+IOCkleCliyDgpLngpJ/gpL7gpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDYWxsTG9nIiBtc2dpZD0iMzQ3ODEzMzE4NDYyNDEwMjczOSI+IuCkleClieCksiDgpLLgpYngpJcg4KSq4KSi4KS84KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGxMb2ciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM3MDA2NDUxODQ4NzA3NjAyODUiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkhuCkquCkleClhyDgpKvgpLzgpYvgpKgg4KSV4KS+IOCkleClieCksiDgpLLgpYngpJcg4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgsIOCknOCkv+CkuOCkruClh+CkgiDgpIfgpKjgpJXgpK7gpL/gpILgpJcg4KSU4KSwIOCkhuCkieCkn+Ckl+Cli+Ckh+CkguCklyDgpJXgpYngpLIg4KSV4KS+IOCkoeClh+Ckn+CkviDgpLbgpL7gpK7gpL/gpLIg4KS54KWILiDgpK/gpLkg4KSF4KSo4KWB4KSu4KSk4KS/IOCkj+CkquCljeCkuCDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkleClieCksiDgpLLgpYngpJcg4KSh4KWH4KSf4KS+IOCkleCliyDgpLjgpLngpYfgpJzgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliCwg4KSU4KSwIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpI/gpKrgpY3gpLgg4KSG4KSq4KSV4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCDgpJXgpYcg4KSs4KS/4KSo4KS+IOCkleClieCksiDgpLLgpYngpJcg4KSh4KWH4KSf4KS+IOCkleCliyDgpLjgpL7gpJ3gpL4g4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGxMb2ciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzc3NzI1Nzk2ODEzMjE3MjQ0Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIbgpKrgpJXgpYcg4KSr4KS84KWL4KSoIOCkleCkviDgpJXgpYngpLIg4KSy4KWJ4KSXIOCkquCkouCkvOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILCDgpJzgpL/gpLjgpK7gpYfgpIIg4KSH4KSo4KSV4KSu4KS/4KSC4KSXIOCklOCksCDgpIbgpIngpJ/gpJfgpYvgpIfgpILgpJcg4KSV4KWJ4KSyIOCkleCkviDgpKHgpYfgpJ/gpL4g4KS24KS+4KSu4KS/4KSyIOCkueCliC4g4KSv4KS5IOCkheCkqOClgeCkruCkpOCkvyDgpI/gpKrgpY3gpLgg4KSV4KWLIOCkhuCkquCkleClhyDgpJXgpYngpLIg4KSy4KWJ4KSXIOCkoeClh+Ckn+CkviDgpJXgpYsg4KS44KS54KWH4KSc4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYgsIOCklOCksCDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4KS4IOCkhuCkquCkleClgCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSV4KWHIOCkrOCkv+CkqOCkviDgpJXgpYngpLIg4KSy4KWJ4KSXIOCkoeClh+Ckn+CkviDgpJXgpYsg4KS44KS+4KSd4KS+IOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDYWxsTG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzNzAwNjQ1MTg0ODcwNzYwMjg1Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkq+CkvOCli+CkqCDgpJXgpL4g4KSV4KWJ4KSyIOCksuClieCklyDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCwg4KSc4KS/4KS44KSu4KWH4KSCIOCkh+CkqOCkleCkruCkv+CkguCklyDgpJTgpLAg4KSG4KSJ4KSf4KSX4KWL4KSH4KSC4KSXIOCkleClieCksiDgpJXgpL4g4KSh4KWH4KSf4KS+IOCktuCkvuCkruCkv+CksiDgpLngpYguIOCkr+CkuSDgpIXgpKjgpYHgpK7gpKTgpL8g4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkleClieCksiDgpLLgpYngpJcg4KSh4KWH4KSf4KS+IOCkleCliyDgpLjgpLngpYfgpJzgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliCwg4KSU4KSwIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLggIOCkhuCkquCkleClgCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSV4KWHIOCkrOCkv+CkqOCkviDgpJXgpYngpLIg4KSy4KWJ4KSXIOCkoeClh+Ckn+CkviDgpJXgpYsg4KS44KS+4KSd4KS+IOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDYWxsTG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTc3NzcyNTc5NjgxMzIxNzI0NCI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkhuCkquCkleClhyDgpKvgpLzgpYvgpKgg4KSV4KS+IOCkleClieCksiDgpLLgpYngpJcg4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgsIOCknOCkv+CkuOCkruClh+CkgiDgpIfgpKjgpJXgpK7gpL/gpILgpJcg4KSU4KSwIOCkhuCkieCkn+Ckl+Cli+Ckh+CkguCklyDgpJXgpYngpLIg4KSV4KS+IOCkoeClh+Ckn+CkviDgpLbgpL7gpK7gpL/gpLIg4KS54KWILiDgpK/gpLkg4KSF4KSo4KWB4KSu4KSk4KS/IOCkkOCkquCljeCkuCAg4KSV4KWLIOCkhuCkquCkleClhyDgpJXgpYngpLIg4KSy4KWJ4KSXIOCkoeClh+Ckn+CkviDgpJXgpYsg4KS44KS54KWH4KSc4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYgsIOCklOCksCDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSQ4KSq4KWN4KS4ICDgpIbgpKrgpJXgpYAg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkleClhyDgpKzgpL/gpKjgpL4g4KSV4KWJ4KSyIOCksuClieCklyDgpKHgpYfgpJ/gpL4g4KSV4KWLIOCkuOCkvuCkneCkviDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ2FsbExvZyIgbXNnaWQ9Ijg1NTIwNDU2NjQ3NDM0OTkzNTQiPiLgpJXgpYngpLIg4KSy4KWJ4KSXIOCksuCkv+CkluClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsbExvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY2MTgwNjA2MjI3NDExOTI0NSI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSH4KSo4KSV4KSu4KS/4KSC4KSXIOCklOCksCDgpIbgpIngpJ/gpJfgpYvgpIfgpILgpJcg4KSV4KWJ4KSyIOCkleClhyDgpKHgpYfgpJ/gpL4g4KS44KS54KS/4KSkLCDgpIbgpKrgpJXgpYcg4KSf4KWH4KSs4KSy4KWH4KSfIOCkleCkviDgpJXgpYngpLIg4KSy4KWJ4KSXIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkj+CkquCljeKAjeCkuCDgpIbgpKrgpJXgpYcg4KSV4KWJ4KSyIOCksuClieCklyDgpJXgpYsg4KSu4KS/4KSf4KS+4KSo4KWHIOCkr+CkviDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSH4KS44KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGxMb2ciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODM5NDE3MzYzNTI3ODc4NDIiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkh+CkqOCkleCkruCkv+CkguCklyDgpJTgpLAg4KSG4KSJ4KSf4KSX4KWL4KSH4KSC4KSXIOCkleClieCksiDgpJXgpYcg4KSh4KWH4KSf4KS+IOCkuOCkueCkv+CkpCwg4KSG4KSq4KSV4KWHIOCkq+CkvOCli+CkqCDgpJXgpL4g4KSV4KWJ4KSyIOCksuClieCklyDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpI/gpKrgpY3igI3gpLgg4KSG4KSq4KSV4KWHIOCkleClieCksiDgpLLgpYngpJcg4KSV4KWLIOCkruCkv+Ckn+CkvuCkqOClhyDgpK/gpL4g4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxsTG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2NjYxODA2MDYyMjc0MTE5MjQ1Ij4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpIfgpKjgpJXgpK7gpL/gpILgpJcg4KSU4KSwIOCkhuCkieCkn+Ckl+Cli+Ckh+CkguCklyDgpJXgpYngpLIg4KSV4KWHIOCkoeClh+Ckn+CkviDgpLjgpLngpL/gpKQsIOCkhuCkquCkleClhyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSV4KS+IOCkleClieCksiDgpLLgpYngpJcg4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSQ4KSq4KWN4KS4IOCkhuCkquCkleClhyDgpJXgpYngpLIg4KSy4KWJ4KSXIOCkleCliyDgpK7gpL/gpJ/gpL7gpKjgpYcg4KSv4KS+IOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpIfgpLjgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsbExvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4Mzk0MTczNjM1Mjc4Nzg0MiI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSH4KSo4KSV4KSu4KS/4KSC4KSXIOCklOCksCDgpIbgpIngpJ/gpJfgpYvgpIfgpILgpJcg4KSV4KWJ4KSyIOCkleClhyDgpKHgpYfgpJ/gpL4g4KS44KS54KS/4KSkLCDgpIbgpKrgpJXgpYcg4KSr4KS84KWL4KSoIOCkleCkviDgpJXgpYngpLIg4KSy4KWJ4KSXIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCDgpIbgpKrgpJXgpYcg4KSV4KWJ4KSyIOCksuClieCklyDgpJXgpYsg4KSu4KS/4KSf4KS+4KSo4KWHIOCkr+CkviDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSH4KS44KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRQcm9maWxlIiBtc2dpZD0iNDcwMTg4OTg1MjYxMjcxNjY3OCI+IuCkuOCljeKAjeCkteCkr+CkgiDgpJXgpL4g4KS44KSC4KSq4KSw4KWN4KSVIOCkleCkvuCksOCljeCkoSDgpKrgpKLgpLzgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkUHJvZmlsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU0NjI0NzUxNTE4NDk4ODg4NDgiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkhuCkquCkleClhyDgpIngpKrgpJXgpLDgpKMg4KSu4KWH4KSCIOCkuOCkguCkl+CljeCksOCkueClgOCkpCDgpLXgpY3gpK/gpJXgpY3gpKTgpL/gpJfgpKQg4KSq4KWN4KSw4KWL4KSr4KS84KS+4KSH4KSyIOCknOCkvuCkqOCkleCkvuCksOClgCwg4KSc4KWI4KS44KWHIOCkhuCkquCkleCkviDgpKjgpL7gpK4g4KSU4KSwIOCkuOCkguCkquCksOCljeCklSDgpJzgpL7gpKjgpJXgpL7gpLDgpYAsIOCkquCkouCkvOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpIfgpLjgpJXgpL4g4KSF4KSw4KWN4KSlIOCkueCliCDgpJXgpL8g4KSP4KSq4KWN4KS4IOCkhuCkquCkleCliyDgpKrgpLngpJrgpL7gpKgg4KS44KSV4KSk4KS+IOCkueCliCDgpJTgpLAg4KSG4KSq4KSV4KWAIOCkquCljeCksOCli+Ckq+CkvOCkvuCkh+CksiDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSF4KSo4KWN4KSvIOCksuCli+Ckl+Cli+CkgiDgpJXgpYsg4KSt4KWH4KScIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFByb2ZpbGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NDYyNDc1MTUxODQ5ODg4ODQ4Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkieCkquCkleCksOCkoyDgpK7gpYfgpIIg4KS44KSC4KSX4KWN4KSw4KS54KWA4KSkIOCkteCljeCkr+CkleCljeCkpOCkv+Ckl+CkpCDgpKrgpY3gpLDgpYvgpKvgpLzgpL7gpIfgpLIg4KSc4KS+4KSo4KSV4KS+4KSw4KWALCDgpJzgpYjgpLjgpYcg4KSG4KSq4KSV4KS+IOCkqOCkvuCkriDgpJTgpLAg4KS44KSC4KSq4KSw4KWN4KSVIOCknOCkvuCkqOCkleCkvuCksOClgCwg4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkh+CkuOCkleCkviDgpIXgpLDgpY3gpKUg4KS54KWIIOCkleCkvyDgpJDgpKrgpY3gpLggIOCkhuCkquCkleCliyDgpKrgpLngpJrgpL7gpKgg4KS44KSV4KSk4KS+IOCkueCliCDgpJTgpLAg4KSG4KSq4KSV4KWAIOCkquCljeCksOCli+Ckq+CkvOCkvuCkh+CksiDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSF4KSo4KWN4KSvIOCksuCli+Ckl+Cli+CkgiDgpJXgpYsg4KSt4KWH4KScIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVByb2ZpbGUiIG1zZ2lkPSI5MDc3OTM2Mjg3NzczOTc2NDMiPiLgpLjgpY3igI3gpLXgpK/gpIIg4KSV4KS+IOCkuOCkguCkquCksOCljeCklSDgpJXgpL7gpLDgpY3gpKEg4KSs4KSm4KSy4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVQcm9maWxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTU1MjA4NDI5NDU5ODQ2NTg5OSI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkieCkquCkleCksOCkoyDgpK7gpYfgpIIg4KS44KSC4KSX4KWN4KSw4KS54KWA4KSkIOCkqOCkv+CknOClgCDgpKrgpY3gpLDgpYvgpKvgpLzgpL7gpIfgpLIg4KSc4KS+4KSo4KSV4KS+4KSw4KWALCDgpJzgpYjgpLjgpYcg4KSG4KSq4KSV4KS+IOCkqOCkvuCkriDgpJTgpLAg4KS44KSC4KSq4KSw4KWN4KSVIOCknOCkvuCkqOCkleCkvuCksOClgCDgpJXgpYsg4KSs4KSm4KSy4KSo4KWHIOCkr+CkviDgpIngpLjgpK7gpYfgpIIg4KSV4KWB4KSbIOCknOCli+CkoeCkvOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpIfgpLjgpJXgpL4g4KSF4KSw4KWN4KSlIOCkueCliCDgpJXgpL8g4KSP4KSq4KWN4KS4IOCkhuCkquCkleCliyDgpKrgpLngpJrgpL7gpKgg4KS44KSV4KSk4KS+IOCkueCliCDgpJTgpLAg4KSG4KSq4KSV4KWAIOCkquCljeCksOCli+Ckq+CkvOCkvuCkh+CksiDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSF4KSo4KWN4KSvIOCksuCli+Ckl+Cli+CkgiDgpJXgpYsg4KSt4KWH4KScIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVQcm9maWxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTU1MjA4NDI5NDU5ODQ2NTg5OSI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkhuCkquCkleClhyDgpIngpKrgpJXgpLDgpKMg4KSu4KWH4KSCIOCkuOCkguCkl+CljeCksOCkueClgOCkpCDgpKjgpL/gpJzgpYAg4KSq4KWN4KSw4KWL4KSr4KS84KS+4KSH4KSyIOCknOCkvuCkqOCkleCkvuCksOClgCwg4KSc4KWI4KS44KWHIOCkhuCkquCkleCkviDgpKjgpL7gpK4g4KSU4KSwIOCkuOCkguCkquCksOCljeCklSDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSV4KWLIOCkrOCkpuCksuCkqOClhyDgpK/gpL4g4KSJ4KS44KSu4KWH4KSCIOCkleClgeCkmyDgpJzgpYvgpKHgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS44KSV4KS+IOCkheCksOCljeCkpSDgpLngpYgg4KSV4KS/IOCkkOCkquCljeCkuCAg4KSG4KSq4KSV4KWLIOCkquCkueCkmuCkvuCkqCDgpLjgpJXgpKTgpL4g4KS54KWIIOCklOCksCDgpIbgpKrgpJXgpYAg4KSq4KWN4KSw4KWL4KSr4KS84KS+4KSH4KSyIOCknOCkvuCkqOCkleCkvuCksOClgCDgpIXgpKjgpY3gpK8g4KSy4KWL4KSX4KWL4KSCIOCkleCliyDgpK3gpYfgpJwg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMjY4OTIwOTU2MTUyNDE5MTcwIj4i4KSF4KSq4KSo4KWAIOCkuOCkvuCkruCkvuCknOCkv+CklSDgpLjgpY3igI3gpJ/gpY3gpLDgpYDgpK4g4KSq4KSi4KS84KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQyNTU3MDYwMjcxNzIwNTA4NzIiPiLgpI/gpKog4KSV4KWLIOCkhuCkquCkleClhyDgpJTgpLAg4KSG4KSq4KSV4KWHIOCkruCkv+CkpOCljeCksOCli+CkgiDgpJXgpYAg4KSo4KSIIOCkuOCkvuCkruCkvuCknOCkv+CklSDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSk4KSVIOCkquCkueClgeCkguCkmuCkqOClhyDgpJTgpLAg4KSJ4KSo4KWN4KS54KWH4KSCIOCkuOCkruCkqOCljeKAjeCkteCkr+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkuOCkvuCkneCkviDgpJXgpLDgpKTgpYcg4KS44KSu4KSvIOCkuOCkvuCkteCkp+CkvuCkqCDgpLDgpLngpYfgpIIgLSDgpIfgpLjgpLjgpYcg4KSX4KWL4KSq4KSo4KWA4KSv4KSk4KS+IOCkquCksCDgpKfgpY3gpK/gpL7gpKgg4KSm4KS/4KSPIOCkrOCkv+CkqOCkviwg4KSP4KSqIOCkuOCkvuCkruCkvuCknOCkv+CklSDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSq4KSwIOCkhuCkquCkleClhyDgpJTgpLAg4KSG4KSq4KSV4KWHIOCkruCkv+CkpOCljeCksOCli+CkgiDgpJXgpYcg4KSs4KWA4KSaIOCkuOCkguCkmuCkvuCksOCli+CkgiDgpJXgpYsg4KSq4KSi4KS8IOCkuOCkleCkpOCkviDgpLngpYguIOCkp+CljeKAjeCkr+CkvuCkqCDgpKbgpYfgpII6IOCkr+CkuSDgpIXgpKjgpYHgpK7gpKTgpL8g4KS44KSt4KWAIOCkuOCkvuCkruCkvuCknOCkv+CklSDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSq4KSwIOCksuCkvuCkl+ClgiDgpKjgpLngpYDgpIIg4KSV4KWAIOCknOCkviDgpLjgpJXgpKTgpYAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM1MDQxNzkyMjI0OTMyMzU2NDUiPiLgpLjgpL7gpK7gpL7gpJzgpL/gpJUg4KS44KWN4oCN4KSf4KWN4KSw4KWA4KSuIOCkruClh+CkgiDgpLLgpL/gpJbgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMwODY1NTc1NTIyMDQxMTQ4NDkiPiLgpI/gpKog4KSV4KWLIOCkhuCkquCkleClhyDgpK7gpL/gpKTgpY3gpLDgpYvgpIIg4KSV4KWAIOCkqOCkiCDgpLjgpL7gpK7gpL7gpJzgpL/gpJUg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkquCljeCksOCkpuCksOCljeCktuCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkuOCkvuCkneCkviDgpJXgpLDgpKTgpYcg4KS44KSu4KSvIOCkuOCkvuCkteCkp+CkvuCkqCDgpLDgpLngpYfgpIIgLSDgpIfgpLjgpLjgpYcg4KSP4KSq4KWN4KS4IOCkkOCkuOClhyDgpLjgpILgpKbgpYfgpLYg4KSs4KSo4KS+IOCkuOCkleCkpOCkviDgpLngpYgg4KSc4KWLIOCkleCkv+CkuOClgCDgpK7gpL/gpKTgpY3gpLAg4KSV4KWAIOCkk+CksCDgpLjgpYcg4KSG4KSk4KWHIOCkpuCkv+CkluCkvuCkiCDgpKbgpYfgpKTgpYcg4KS54KWI4KSCLiDgpKfgpY3igI3gpK/gpL7gpKgg4KSm4KWH4KSCOiDgpK/gpLkg4KSF4KSo4KWB4KSu4KSk4KS/IOCkuOCkreClgCDgpLjgpL7gpK7gpL7gpJzgpL/gpJUg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkquCksCDgpLLgpL7gpJfgpYIg4KSo4KS54KWA4KSCIOCkleClgCDgpJzgpL4g4KS44KSV4KSk4KWALiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzA4NjU1NzU1MjIwNDExNDg0OSI+IuCkj+CkqiDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkruCkv+CkpOCljeCksOCli+CkgiDgpJXgpYAg4KSo4KSIIOCkuOCkvuCkruCkvuCknOCkv+CklSDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KS44KS+4KSd4KS+IOCkleCksOCkpOClhyDgpLjgpK7gpK8g4KS44KS+4KS14KSn4KS+4KSoIOCksOCkueClh+CkgiAtIOCkh+CkuOCkuOClhyDgpJDgpKrgpY3gpLggIOCkkOCkuOClhyDgpLjgpILgpKbgpYfgpLYg4KSs4KSo4KS+IOCkuOCkleCkpOCkviDgpLngpYgg4KSc4KWLIOCkleCkv+CkuOClgCDgpK7gpL/gpKTgpY3gpLAg4KSV4KWAIOCkk+CksCDgpLjgpYcg4KSG4KSk4KWHIOCkpuCkv+CkluCkvuCkiCDgpKbgpYfgpKTgpYcg4KS54KWI4KSCLiDgpKfgpY3igI3gpK/gpL7gpKgg4KSm4KWH4KSCOiDgpK/gpLkg4KSF4KSo4KWB4KSu4KSk4KS/IOCkuOCkreClgCDgpLjgpL7gpK7gpL7gpJzgpL/gpJUg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkquCksCDgpLLgpL7gpJfgpYIg4KSo4KS54KWA4KSCIOCkleClgCDgpJzgpL4g4KS44KSV4KSk4KWALiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENhbGVuZGFyIiBtc2dpZD0iNTk3MjcyNzU2MDI1NzYxMjM5OCI+IuCkleClh+CksuCliOCkguCkoeCksCDgpIjgpLXgpYfgpILgpJ8g4KSV4KWHIOCkuOCkvuCkpS3gpLjgpL7gpKUg4KSX4KWL4KSq4KSo4KWA4KSvIOCknOCkvuCkqOCkleCkvuCksOClgCDgpKrgpKLgpLzgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsZW5kYXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQyMTY0NjIwNDkwNTc2NTg3MjMiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkruCkv+CkpOCljeCksOCli+CkgiDgpK/gpL4g4KS44KS54KSV4KSw4KWN4KSu4KS/4KSv4KWL4KSCIOCkleClhyDgpJXgpYjgpLLgpYfgpILgpKHgpLAg4KSH4KS14KWH4KSC4KSfIOCkuOCkueCkv+CkpCwg4KSG4KSq4KSV4KWHIOCkn+Clh+CkrOCksuClh+CknyDgpKrgpLAg4KS44KSC4KSX4KWN4KSw4KS54KWA4KSkIOCkleCliOCksuClh+CkguCkoeCksCDgpIfgpLXgpYfgpILgpJ8g4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkh+CkuOCkuOClhyDgpJfgpYvgpKrgpKjgpYDgpK/gpKTgpL4g4KSv4KS+IOCkuOCkguCkteClh+CkpuCkqOCktuClgOCksuCkpOCkviDgpKrgpLAg4KSn4KWN4KSv4KS+4KSoIOCkpuCkv+CkjyDgpKzgpL/gpKjgpL4sIOCkj+CkquCljeCkuCDgpIbgpKrgpJXgpYcg4KSV4KWI4KSy4KWH4KSC4KSh4KSwIOCkoeClh+Ckn+CkviDgpJXgpYsg4KS44KS+4KSd4KS+IOCkleCksCDgpLjgpJXgpKTgpL4g4KS54KWIIOCkr+CkviDgpLjgpLngpYfgpJwg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3NDM0NTQ4NjgyNDcwODUxNTgzIj4i4KSP4KSq4KWN4KS4IOCkleCliyDgpK7gpL/gpKTgpY3gpLDgpYvgpIIg4KSv4KS+IOCkuOCkueCkleCksOCljeCkruCkv+Ckr+Cli+CkgiDgpJXgpYcg4KSV4KWI4KSy4KWH4KSC4KSh4KSwIOCkh+CkteClh+CkguCknyDgpLjgpLngpL/gpKQsIOCkhuCkquCkleClhyDgpKvgpLzgpYvgpKgg4KSq4KSwIOCkuOCkguCkl+CljeCksOCkueClgOCkpCDgpJXgpYjgpLLgpYfgpILgpKHgpLAg4KSH4KS14KWH4KSC4KSfIOCkquCkouCkvOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpIfgpLjgpLjgpYcg4KSX4KWL4KSq4KSo4KWA4KSv4KSk4KS+IOCkr+CkviDgpLjgpILgpLXgpYfgpKbgpKjgpLbgpYDgpLLgpKTgpL4g4KSq4KSwIOCkp+CljeCkr+CkvuCkqCDgpKbgpL/gpI8g4KSs4KS/4KSo4KS+LCDgpI/gpKrgpY3gpLgg4KSG4KSq4KSV4KWHIOCkleCliOCksuClh+CkguCkoeCksCDgpKHgpYfgpJ/gpL4g4KSV4KWLIOCkuOCkvuCkneCkviDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliCDgpK/gpL4g4KS44KS54KWH4KScIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGVuZGFyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MjE2NDYyMDQ5MDU3NjU4NzIzIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSu4KS/4KSk4KWN4KSw4KWL4KSCIOCkr+CkviDgpLjgpLngpJXgpLDgpY3gpK7gpL/gpK/gpYvgpIIg4KSV4KWHIOCkleCliOCksuClh+CkguCkoeCksCDgpIfgpLXgpYfgpILgpJ8g4KS44KS54KS/4KSkLCDgpIbgpKrgpJXgpYcg4KSf4KWH4KSs4KSy4KWH4KSfIOCkquCksCDgpLjgpILgpJfgpY3gpLDgpLngpYDgpKQg4KSV4KWI4KSy4KWH4KSC4KSh4KSwIOCkh+CkteClh+CkguCknyDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS44KS44KWHIOCkl+Cli+CkquCkqOClgOCkr+CkpOCkviDgpK/gpL4g4KS44KSC4KS14KWH4KSm4KSo4KS24KWA4KSy4KSk4KS+IOCkquCksCDgpKfgpY3gpK/gpL7gpKgg4KSm4KS/4KSPIOCkrOCkv+CkqOCkviwg4KSQ4KSq4KWN4KS4ICDgpIbgpKrgpJXgpYcg4KSV4KWI4KSy4KWH4KSC4KSh4KSwIOCkoeClh+Ckn+CkviDgpJXgpYsg4KS44KS+4KSd4KS+IOCkleCksCDgpLjgpJXgpKTgpL4g4KS54KWIIOCkr+CkviDgpLjgpLngpYfgpJwg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3NDM0NTQ4NjgyNDcwODUxNTgzIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSu4KS/4KSk4KWN4KSw4KWL4KSCIOCkr+CkviDgpLjgpLngpJXgpLDgpY3gpK7gpL/gpK/gpYvgpIIg4KSV4KWHIOCkleCliOCksuClh+CkguCkoeCksCDgpIfgpLXgpYfgpILgpJ8g4KS44KS54KS/4KSkLCDgpIbgpKrgpJXgpYcg4KSr4KS84KWL4KSoIOCkquCksCDgpLjgpILgpJfgpY3gpLDgpLngpYDgpKQg4KSV4KWI4KSy4KWH4KSC4KSh4KSwIOCkh+CkteClh+CkguCknyDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS44KS44KWHIOCkl+Cli+CkquCkqOClgOCkr+CkpOCkviDgpK/gpL4g4KS44KSC4KS14KWH4KSm4KSo4KS24KWA4KSy4KSk4KS+IOCkquCksCDgpKfgpY3gpK/gpL7gpKgg4KSm4KS/4KSPIOCkrOCkv+CkqOCkviwg4KSQ4KSq4KWN4KS4ICDgpIbgpKrgpJXgpYcg4KSV4KWI4KSy4KWH4KSC4KSh4KSwIOCkoeClh+Ckn+CkviDgpJXgpYsg4KS44KS+4KSd4KS+IOCkleCksCDgpLjgpJXgpKTgpL4g4KS54KWIIOCkr+CkviDgpLjgpLngpYfgpJwg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ2FsZW5kYXIiIG1zZ2lkPSI4NDM4ODc0NzU1MTkzODI1NjQ3Ij4i4KSF4KSq4KSo4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCDgpJXgpYcg4KSs4KS/4oCN4KSo4KS+IOCkleCliOCksuClh+CkguCkoeCksCDgpIjgpLXgpYfgpILgpJ8g4KSc4KWL4KSh4KS84KWH4KSCIOCkr+CkviDgpLjgpILgpLbgpYvgpKfgpL/igI3gpKQg4KSV4KSw4KWH4KSCIOCklOCksCDgpIXgpKTgpL/igI3gpKXgpL/igI3gpK/gpYvgpIIg4KSV4KWLIOCkiOCkruClh+CksiDgpK3gpYfgpJzgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGVuZGFyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2Njc5MDM1NTIwMTEzNjY4NTI4Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpK7gpL/gpKTgpY3gpLDgpYvgpIIg4KSv4KS+IOCkuOCkueCkleCksOCljeCkruCkv+Ckr+Cli+CkgiDgpJXgpYcg4KSI4KS14KWH4KSC4KSfIOCkleClhyDgpLjgpL7gpKUg4KS54KWAIOCkteClhyDgpIjgpLXgpYfgpILgpJ8g4KSc4KWL4KSh4KS84KSo4KWHLCDgpKjgpL/gpJXgpL7gpLLgpKjgpYcsIOCkrOCkpuCksuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCknOCkv+CkqOCljeCkueClh+CkgiDgpIbgpKog4KSF4KSq4KSo4KWHIOCkn+Clh+CkrOCksuClh+CknyDgpKrgpLAg4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiDgpIfgpLjgpLjgpYcg4KSP4KSq4KWN4KS4LOCkheCkquCkqOClgCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSV4KWHIOCkrOCkv+CkqOCkviDgpIngpKgg4KS44KSC4KSm4KWH4KS24KWL4KSCIOCkleCliyDgpK3gpYfgpJwg4KS44KSV4KSk4KS+IOCkueCliCDgpJzgpYsg4KSV4KWI4KSy4KWH4KSC4KSh4KSwIOCkuOCljeCkteCkvuCkruCkv+Ckr+Cli+CkgiDgpJXgpYAg4KST4KSwIOCkuOClhyDgpIbgpKTgpYcg4KSm4KS/4KSW4KS+4KSIIOCkpuClh+CkpOClhyDgpLngpYjgpIIsIOCkr+CkviDgpIjgpLXgpYfgpILgpJ8g4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksCDgpLjgpJXgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMzI0NDY5NDk2MzI3MjQ5Mzc2Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpK7gpL/gpKTgpY3gpLDgpYvgpIIg4KSv4KS+IOCkuOCkueCkleCksOCljeCkruCkv+Ckr+Cli+CkgiDgpJXgpYcg4KSI4KS14KWH4KSC4KSfIOCkleClhyDgpLjgpL7gpKUg4KS54KWAIOCkteClhyDgpIjgpLXgpYfgpILgpJ8g4KSc4KWL4KSh4KS84KSo4KWHLCDgpKjgpL/gpJXgpL7gpLLgpKjgpYcsIOCkrOCkpuCksuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCknOCkv+CkqOCljeCkueClh+CkgiDgpIbgpKog4KSF4KSq4KSo4KWHIOCkq+CkvOCli+CkqCDgpKrgpLAg4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiDgpIfgpLjgpLjgpYcg4KSP4KSq4KWN4KS4LCDgpIXgpKrgpKjgpYAg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkleClhyDgpKzgpL/gpKjgpL4g4KSJ4KSoIOCkuOCkguCkpuClh+CktuCli+CkgiDgpJXgpYsg4KSt4KWH4KScIOCkuOCkleCkpOCkviDgpLngpYgg4KSc4KWLIOCkleCliOCksuClh+CkguCkoeCksCDgpLjgpY3gpLXgpL7gpK7gpL/gpK/gpYvgpIIg4KSV4KWAIOCkk+CksCDgpLjgpYcg4KSG4KSk4KWHIOCkpuCkv+CkluCkvuCkiCDgpKbgpYfgpKTgpYcg4KS54KWI4KSCLCDgpK/gpL4g4KSI4KS14KWH4KSC4KSfIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGVuZGFyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2Njc5MDM1NTIwMTEzNjY4NTI4Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSu4KS/4KSk4KWN4KSw4KWL4KSCIOCkr+CkviDgpLjgpLngpJXgpLDgpY3gpK7gpL/gpK/gpYvgpIIg4KSV4KWHIOCkiOCkteClh+CkguCknyDgpJXgpYcg4KS44KS+4KSlIOCkueClgCDgpLXgpYcg4KSI4KS14KWH4KSC4KSfIOCknOCli+CkoeCkvOCkqOClhywg4KSo4KS/4KSV4KS+4KSy4KSo4KWHLCDgpKzgpKbgpLLgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCDgpJzgpL/gpKjgpY3gpLngpYfgpIIg4KSG4KSqIOCkheCkquCkqOClhyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSq4KSwIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4g4KSH4KS44KS44KWHIOCkkOCkquCljeCkuCAs4KSF4KSq4KSo4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCDgpJXgpYcg4KSs4KS/4KSo4KS+IOCkieCkqCDgpLjgpILgpKbgpYfgpLbgpYvgpIIg4KSV4KWLIOCkreClh+CknCDgpLjgpJXgpKTgpL4g4KS54KWIIOCknOCliyDgpJXgpYjgpLLgpYfgpILgpKHgpLAg4KS44KWN4KS14KS+4KSu4KS/4KSv4KWL4KSCIOCkleClgCDgpJPgpLAg4KS44KWHIOCkhuCkpOClhyDgpKbgpL/gpJbgpL7gpIgg4KSm4KWH4KSk4KWHIOCkueCliOCkgiwg4KSv4KS+IOCkiOCkteClh+CkguCknyDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSwIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIzMjQ0Njk0OTYzMjcyNDkzNzYiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpK7gpL/gpKTgpY3gpLDgpYvgpIIg4KSv4KS+IOCkuOCkueCkleCksOCljeCkruCkv+Ckr+Cli+CkgiDgpJXgpYcg4KSI4KS14KWH4KSC4KSfIOCkleClhyDgpLjgpL7gpKUg4KS54KWAIOCkteClhyDgpIjgpLXgpYfgpILgpJ8g4KSc4KWL4KSh4KS84KSo4KWHLCDgpKjgpL/gpJXgpL7gpLLgpKjgpYcsIOCkrOCkpuCksuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCknOCkv+CkqOCljeCkueClh+CkgiDgpIbgpKog4KSF4KSq4KSo4KWHIOCkq+CkvOCli+CkqCDgpKrgpLAg4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiDgpIfgpLjgpLjgpYcg4KSQ4KSq4KWN4KS4ICwg4KSF4KSq4KSo4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCDgpJXgpYcg4KSs4KS/4KSo4KS+IOCkieCkqCDgpLjgpILgpKbgpYfgpLbgpYvgpIIg4KSV4KWLIOCkreClh+CknCDgpLjgpJXgpKTgpL4g4KS54KWIIOCknOCliyDgpJXgpYjgpLLgpYfgpILgpKHgpLAg4KS44KWN4KS14KS+4KSu4KS/4KSv4KWL4KSCIOCkleClgCDgpJPgpLAg4KS44KWHIOCkhuCkpOClhyDgpKbgpL/gpJbgpL7gpIgg4KSm4KWH4KSk4KWHIOCkueCliOCkgiwg4KSv4KS+IOCkiOCkteClh+CkguCknyDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSwIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NNb2NrTG9jYXRpb24iIG1zZ2lkPSI4Njg4MzM0OTc0MDM2ODIzMzMwIj4i4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkleClhyDgpLLgpL/gpI8g4KSo4KSV4KSy4KWAIOCkuOCljeKAjeCkpeCkvuCkqCDgpLjgpY3gpLDgpYvgpKQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NNb2NrTG9jYXRpb24iIG1zZ2lkPSI1ODA4NzExMDM5NDgyMDUxODI0Ij4i4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkleClhyDgpLLgpL/gpI8g4KSV4KWD4KSk4KWN4KSw4KS/4KSuIOCkuOCljeCkpeCkvuCkqCDgpLjgpY3gpLDgpYvgpKQg4KSs4KSo4KS+4KSP4KSCIOCkr+CkviDgpI/gpJUg4KSo4KSv4KS+IOCkuOCljeCkpeCkvuCkqCDgpKrgpY3gpLDgpKbgpL7gpKTgpL4g4KSH4KSC4KS44KWN4oCN4KSf4KWJ4KSyIOCkleCksOClh+Ckgi4g4KSv4KS5IOCkj+CkquCljeCkuCDgpJXgpYsg4KS44KWN4oCN4KSl4KS+4KSoIOCklOCksC/gpK/gpL4g4KSF4KSo4KWN4oCN4KSvIOCkuOCljeCkpeCkvuCkqCDgpLjgpY3gpLDgpYvgpKTgpYvgpIIg4KSc4KWI4KS44KWHIEdQUyDgpK/gpL4g4KS44KWN4oCN4KSl4KS+4KSoIOCkquCljeCksOCkpuCkvuCkpOCkvuCkk+CkgiDgpKbgpY3gpLXgpL7gpLDgpL4g4KSy4KWM4KSf4KS+4KSIIOCkl+CkiCDgpLjgpY3gpKXgpL/gpKTgpL8g4KSV4KWLIOCkk+CkteCksOCksOCkvuCkh+CkoSDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NNb2NrTG9jYXRpb24iIG1zZ2lkPSI1ODA4NzExMDM5NDgyMDUxODI0Ij4i4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkleClhyDgpLLgpL/gpI8g4KSV4KWD4KSk4KWN4KSw4KS/4KSuIOCkuOCljeCkpeCkvuCkqCDgpLjgpY3gpLDgpYvgpKQg4KSs4KSo4KS+4KSP4KSCIOCkr+CkviDgpI/gpJUg4KSo4KSv4KS+IOCkuOCljeCkpeCkvuCkqCDgpKrgpY3gpLDgpKbgpL7gpKTgpL4g4KSH4KSC4KS44KWN4oCN4KSf4KWJ4KSyIOCkleCksOClh+Ckgi4g4KSv4KS5IOCkkOCkquCljeCkuCAg4KSV4KWLIOCkuOCljeKAjeCkpeCkvuCkqCDgpJTgpLAv4KSv4KS+IOCkheCkqOCljeKAjeCkryDgpLjgpY3gpKXgpL7gpKgg4KS44KWN4KSw4KWL4KSk4KWL4KSCIOCknOCliOCkuOClhyBHUFMg4KSv4KS+IOCkuOCljeKAjeCkpeCkvuCkqCDgpKrgpY3gpLDgpKbgpL7gpKTgpL7gpJPgpIIg4KSm4KWN4KS14KS+4KSw4KS+IOCksuCljOCkn+CkvuCkiCDgpJfgpIgg4KS44KWN4KSl4KS/4KSk4KS/IOCkleCliyDgpJPgpLXgpLDgpLDgpL7gpIfgpKEg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NMb2NhdGlvbkV4dHJhQ29tbWFuZHMiIG1zZ2lkPSIyODM2MzA4MDc2NzIwNTUzODM3Ij4i4KSF4KSk4KS/4KSw4KS/4KSV4KWN4KSkIOCkuOCljeKAjeCkpeCkvuCkqCDgpKrgpY3gpLDgpKbgpL7gpKTgpL4g4KSG4KSm4KWH4KS24KWL4KSCIOCkruClh+CkgiDgpKrgpLngpYHgpILgpJrgpYciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NMb2NhdGlvbkV4dHJhQ29tbWFuZHMiIG1zZ2lkPSI1OTQ1MTY2NjQyMzM1ODAwNzYzIj4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIXgpKTgpL/gpLDgpL/gpJXgpY3gpKQg4KS44KWN4KSl4KS+4KSoIOCkquCljeCksOCkpuCkvuCkpOCkviDgpIbgpKbgpYfgpLbgpYvgpIIg4KSq4KSwIOCkquCkueClgeCkguCkmuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpK/gpLkg4KSP4KSq4KWN4KS4IOCkleCliyBHUFMg4KSv4KS+IOCkheCkqOCljeCkryDgpLjgpY3gpKXgpL7gpKgg4KS44KWN4KSw4KWL4KSk4KWL4KSCIOCkleClhyDgpLjgpILgpJrgpL7gpLLgpKgg4KSu4KWH4KSCIOCkrOCkvuCkp+CkviDgpKrgpLngpYHgpILgpJrgpL7gpKjgpYcg4KSm4KWHIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iNTk0NTE2NjY0MjMzNTgwMDc2MyI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkheCkpOCkv+CksOCkv+CkleCljeCkpCDgpLjgpY3gpKXgpL7gpKgg4KSq4KWN4KSw4KSm4KS+4KSk4KS+IOCkhuCkpuClh+CktuCli+CkgiDgpKrgpLAg4KSq4KS54KWB4KSC4KSa4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkr+CkuSDgpJDgpKrgpY3gpLggIOCkleCliyBHUFMg4KSv4KS+IOCkheCkqOCljeCkryDgpLjgpY3gpKXgpL7gpKgg4KS44KWN4KSw4KWL4KSk4KWL4KSCIOCkleClhyDgpLjgpILgpJrgpL7gpLLgpKgg4KSu4KWH4KSCIOCkrOCkvuCkp+CkviDgpKrgpLngpYHgpILgpJrgpL7gpKjgpYcg4KSm4KWHIOCkuOCkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnN0YWxsTG9jYXRpb25Qcm92aWRlciIgbXNnaWQ9IjY1NzgxMDExOTk4MjUxOTM4NzMiPiLgpJXgpL/gpLjgpYAg4KS44KWN4oCN4KSl4KS+4KSoIOCkquCljeCksOCkpuCkvuCkpOCkviDgpJXgpYsg4KSH4KSC4KS44KWN4oCN4KSf4KWJ4KSyIOCkleCksOCkqOClhyDgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI5MDY2MTQ2MTIwNDcwNTkxNTA5Ij4i4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkleClhyDgpLLgpL/gpI8g4KSV4KWD4KSk4KWN4KSw4KS/4KSuIOCkuOCljeCkpeCkvuCkqCDgpLjgpY3gpLDgpYvgpKQg4KSs4KSo4KS+4KSP4KSCIOCkr+CkviDgpI/gpJUg4KSo4KSPIOCkuOCljeCkpeCkvuCkqCDgpKrgpY3gpLDgpKbgpL7gpKTgpL4g4KSV4KWLIOCkh+CkguCkuOCljeKAjeCkn+ClieCksiDgpJXgpLDgpYfgpIIuIOCkr+CkuSDgpI/gpKrgpY3gpLgg4KSV4KWLIOCkuOCljeKAjeCkpeCkvuCkqCDgpJTgpLAv4KSv4KS+IOCkheCkqOCljeKAjeCkryDgpLjgpY3gpKXgpL7gpKgg4KS44KWN4KSw4KWL4KSk4KWL4KSCIOCknOCliOCkuOClhyBHUFMg4KSv4KS+IOCkuOCljeKAjeCkpeCkvuCkqCDgpKrgpY3gpLDgpKbgpL7gpKTgpL7gpJPgpIIg4KSm4KWN4KS14KS+4KSw4KS+IOCksuCljOCkn+CkvuCkiCDgpJfgpIgg4KS44KWN4KSl4KS/4KSk4KS/IOCkleCliyDgpJPgpLXgpLDgpLDgpL7gpIfgpKEg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI5MDY2MTQ2MTIwNDcwNTkxNTA5Ij4i4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkleClhyDgpLLgpL/gpI8g4KSV4KWD4KSk4KWN4KSw4KS/4KSuIOCkuOCljeCkpeCkvuCkqCDgpLjgpY3gpLDgpYvgpKQg4KSs4KSo4KS+4KSP4KSCIOCkr+CkviDgpI/gpJUg4KSo4KSPIOCkuOCljeCkpeCkvuCkqCDgpKrgpY3gpLDgpKbgpL7gpKTgpL4g4KSV4KWLIOCkh+CkguCkuOCljeKAjeCkn+ClieCksiDgpJXgpLDgpYfgpIIuIOCkr+CkuSDgpJDgpKrgpY3gpLggIOCkleCliyDgpLjgpY3igI3gpKXgpL7gpKgg4KSU4KSwL+Ckr+CkviDgpIXgpKjgpY3igI3gpK8g4KS44KWN4KSl4KS+4KSoIOCkuOCljeCksOCli+CkpOCli+CkgiDgpJzgpYjgpLjgpYcgR1BTIOCkr+CkviDgpLjgpY3igI3gpKXgpL7gpKgg4KSq4KWN4KSw4KSm4KS+4KSk4KS+4KST4KSCIOCkpuCljeCkteCkvuCksOCkviDgpLLgpYzgpJ/gpL7gpIgg4KSX4KSIIOCkuOCljeCkpeCkv+CkpOCkvyDgpJXgpYsg4KST4KS14KSw4KSw4KS+4KSH4KShIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzRmluZUxvY2F0aW9uIiBtc2dpZD0iMTE5MTg5ODA2MTk2NTI3MzM3MiI+IuCkuOCkn+ClgOCklSDgpLjgpY3gpKXgpL7gpKggKEdQUyDgpJTgpLAg4KSo4KWH4KSf4KS14KSw4KWN4KSVLeCkhuCkp+CkvuCksOCkv+CkpCkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSI1Mjk1MDQ3NTYzNTY0OTgxMjUwIj4i4KSP4KSq4KWN4KS4IOCkleCliyDgpJfgpY3gpLLgpYvgpKzgpLIg4KSq4KWL4KSc4KS84KS/4KS24KSo4KS/4KSC4KSXIOCkuOCkv+CkuOCljeCkn+CkriAoR1BTKSDgpK/gpL4g4KS44KWH4KSyIOCkn+ClieCkteCksCDgpJTgpLAgV2ktRmkg4KSc4KWI4KS44KWHIOCkqOClh+Ckn+CkteCksOCljeCklSDgpLjgpY3gpKXgpL7gpKgg4KS44KWN4KSw4KWL4KSk4KWL4KSCIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSV4KWHIOCkhuCkquCkleCkviDgpLjgpJ/gpYDgpJUg4KS44KWN4KSl4KS+4KSoIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliC4g4KSP4KSq4KWN4KS4IOCkpuCljeCkteCkvuCksOCkviDgpIfgpKgg4KS44KWN4KSl4KS+4KSoIOCkuOClh+CkteCkvuCkk+CkgiDgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCkv+CkjyDgpJzgpL7gpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpIfgpKjgpY3gpLngpYfgpIIg4KSa4KS+4KSy4KWCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8g4KSU4KSwIOCkhuCkquCkleClhyDgpIngpKrgpJXgpLDgpKMg4KSq4KSwIOCkieCkquCksuCkrOCljeCkpyDgpLngpYvgpKjgpL4g4KSa4KS+4KS54KS/4KSPLiDgpI/gpKrgpY3gpLgg4KSH4KS44KSV4KS+IOCkieCkquCkr+Cli+CklyDgpK/gpLkg4KSq4KSk4KS+IOCkleCksOCkqOClhyDgpK7gpYfgpIIg4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIg4KSV4KS/IOCkhuCkqiDgpJXgpLngpL7gpIIg4KSq4KSwIOCkueCliOCkgiwg4KSU4KSwIOCkheCkpOCkv+CksOCkv+CkleCljeCkpCDgpKzgpYjgpJ/gpLDgpYAg4KSV4KWAIOCkluCkquCkpCDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSI1Mjk1MDQ3NTYzNTY0OTgxMjUwIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSX4KWN4KSy4KWL4KSs4KSyIOCkquCli+CknOCkvOCkv+CktuCkqOCkv+CkguCklyDgpLjgpL/gpLjgpY3gpJ/gpK4gKEdQUykg4KSv4KS+IOCkuOClh+CksiDgpJ/gpYngpLXgpLAg4KSU4KSwIFdpLUZpIOCknOCliOCkuOClhyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KWN4KSl4KS+4KSoIOCkuOCljeCksOCli+CkpOCli+CkgiDgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkleClhyDgpIbgpKrgpJXgpL4g4KS44KSf4KWA4KSVIOCkuOCljeCkpeCkvuCkqCDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYguIOCkkOCkquCljeCkuCAg4KSm4KWN4KS14KS+4KSw4KS+IOCkh+CkqCDgpLjgpY3gpKXgpL7gpKgg4KS44KWH4KS14KS+4KST4KSCIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KS/4KSPIOCknOCkvuCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkh+CkqOCljeCkueClh+CkgiDgpJrgpL7gpLLgpYIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+CkjyDgpJTgpLAg4KSG4KSq4KSV4KWHIOCkieCkquCkleCksOCkoyDgpKrgpLAg4KSJ4KSq4KSy4KSs4KWN4KSnIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIOCkkOCkquCljeCkuCAg4KSH4KS44KSV4KS+IOCkieCkquCkr+Cli+CklyDgpK/gpLkg4KSq4KSk4KS+IOCkleCksOCkqOClhyDgpK7gpYfgpIIg4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIg4KSV4KS/IOCkhuCkqiDgpJXgpLngpL7gpIIg4KSq4KSwIOCkueCliOCkgiwg4KSU4KSwIOCkheCkpOCkv+CksOCkv+CkleCljeCkpCDgpKzgpYjgpJ/gpLDgpYAg4KSV4KWAIOCkluCkquCkpCDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0NvYXJzZUxvY2F0aW9uIiBtc2dpZD0iNDg4Nzg5NTM2MjM1NDIzOTYyOCI+IuCkheCkqOClgeCkruCkvuCkqOCkv+CkpCDgpLjgpY3gpKXgpL7gpKggKOCkqOClh+Ckn+CkteCksOCljeCklS3gpIbgpKfgpL7gpLDgpL/gpKQpIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSIyNTM4MjAwMTg0MzczMzAyMjk1Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIbgpKrgpJXgpL4g4KSF4KSo4KWB4KSu4KS+4KSo4KS/4KSkIOCkuOCljeCkpeCkvuCkqCDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYguIOCkh+CkuCDgpLjgpY3gpKXgpL7gpKgg4KSV4KWLIOCkuOClh+CksiDgpJ/gpYngpLXgpLAg4KSU4KSwIFdpLUZpIOCknOCliOCkuOClhyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KWN4KSl4KS+4KSoIOCkuOCljeCksOCli+CkpOCli+CkgiDgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkleClhyDgpLjgpY3gpKXgpL7gpKgg4KS44KWH4KS14KS+4KST4KSCIOCkpuCljeCkteCkvuCksOCkviDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KS/4KSv4KS+IOCkl+Ckr+CkviDgpLngpYguIOCkj+CkquCljeCkuCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSH4KSoIOCkuOCljeCkpeCkvuCkqCDgpLjgpYfgpLXgpL7gpJPgpIIg4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpIfgpKjgpY3gpLngpYfgpIIg4KSa4KS+4KSy4KWCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8g4KSU4KSwIOCkhuCkquCkleClhyDgpIngpKrgpJXgpLDgpKMg4KSu4KWH4KSCIOCkieCkquCksuCkrOCljeCkpyDgpLngpYvgpKjgpL4g4KSa4KS+4KS54KS/4KSPLiDgpI/gpKrgpY3gpLgg4KSH4KS44KSV4KS+IOCkieCkquCkr+Cli+CklyDgpK/gpLkg4KSq4KSk4KS+IOCksuCkl+CkvuCkqOClhyDgpK7gpYfgpIIg4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIg4KSV4KS/IOCkhuCkqiDgpLLgpJfgpK3gpJcg4KSV4KS54KS+4KSCIOCkquCksCDgpLngpYjgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSIyNTM4MjAwMTg0MzczMzAyMjk1Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSG4KSq4KSV4KS+IOCkheCkqOClgeCkruCkvuCkqOCkv+CkpCDgpLjgpY3gpKXgpL7gpKgg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiDgpIfgpLgg4KS44KWN4KSl4KS+4KSoIOCkleCliyDgpLjgpYfgpLIg4KSf4KWJ4KS14KSwIOCklOCksCBXaS1GaSDgpJzgpYjgpLjgpYcg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkuOCljeCkpeCkvuCkqCDgpLjgpY3gpLDgpYvgpKTgpYvgpIIg4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpJXgpYcg4KS44KWN4KSl4KS+4KSoIOCkuOClh+CkteCkvuCkk+CkgiDgpKbgpY3gpLXgpL7gpLDgpL4g4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCkv+Ckr+CkviDgpJfgpK/gpL4g4KS54KWILiDgpJDgpKrgpY3gpLggIOCkpuCljeCkteCkvuCksOCkviDgpIfgpKgg4KS44KWN4KSl4KS+4KSoIOCkuOClh+CkteCkvuCkk+CkgiDgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkh+CkqOCljeCkueClh+CkgiDgpJrgpL7gpLLgpYIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+CkjyDgpJTgpLAg4KSG4KSq4KSV4KWHIOCkieCkquCkleCksOCkoyDgpK7gpYfgpIIg4KSJ4KSq4KSy4KSs4KWN4KSnIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIOCkkOCkquCljeCkuCAg4KSH4KS44KSV4KS+IOCkieCkquCkr+Cli+CklyDgpK/gpLkg4KSq4KSk4KS+IOCksuCkl+CkvuCkqOClhyDgpK7gpYfgpIIg4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIg4KSV4KS/IOCkhuCkqiDgpLLgpJfgpK3gpJcg4KSV4KS54KS+4KSCIOCkquCksCDgpLngpYjgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjIzNjM5Njk2NDE3OTIzODg5NDciPiJTdXJmYWNlRmxpbmdlciDgpK7gpYfgpIIg4KSq4KS54KWB4KSC4KSa4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyBTdXJmYWNlRmxpbmdlciDgpKjgpL/gpK7gpY3igI3gpKgt4KS44KWN4oCN4KSk4KSwIOCkuOClgeCkteCkv+Ckp+CkvuCkj+CkgiDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4i4KSQ4KSq4KWN4KS4IOCkleCliyBTdXJmYWNlRmxpbmdlciDgpKjgpL/gpK7gpY3igI3gpKgt4KS44KWN4oCN4KSk4KSwIOCkuOClgeCkteCkv+Ckp+CkvuCkj+CkgiDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4i4KSr4KS84KWN4KSw4KWH4KSuIOCkrOCkq+CkvOCksCDgpKrgpKLgpLzgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpKvgpLzgpY3gpLDgpYfgpK4g4KSs4KSr4KS84KSwIOCkleClgCDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSr4KS84KWN4KSw4KWH4KSuIOCkrOCkq+CkvOCksCDgpJXgpYAg4KS44KS+4KSu4KSX4KWN4KSw4KWAIOCkquCkouCkvOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+IklucHV0RmxpbmdlciDgpI/gpJXgpY3gpLjgpYfgpLgg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IuCkkOCkquCljeCkuCDgpJXgpYsgSW5wdXRGbGluZ2VyIOCkqOCkv+CkruCljeKAjeCkqC3gpLjgpY3igI3gpKTgpLAg4KS44KWB4KS14KS/4KSn4KS+4KST4KSCIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJXaWZpIOCkoeCkv+CkuOCljeCkquCljeCksuClhyDgpJXgpYsg4KSV4KWJ4KSo4KWN4KSr4KS84KS/4KSX4KSwIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSV4KWJ4KSo4KWN4KSr4KS84KS/4KSX4KSwIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCklOCksCBXaWZpIOCkoeCkv+CkuOCljeCkquCljeCksuClhyDgpLjgpYcg4KSV4KSo4KWH4KSV4KWN4KSfIOCkleCksOCkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSV4KWJ4KSo4KWN4KSr4KS84KS/4KSX4KSwIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCklOCksCBXaWZpIOCkoeCkv+CkuOCljeCkquCljeCksuClhyDgpLjgpYcg4KSV4KSo4KWH4KSV4KWN4KSfIOCkleCksOCkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiJXaWZpIOCkoeCkv+CkuOCljeCkquCljeCksuClhyDgpJXgpYsg4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjQ1NDM5MTIyOTI2ODE4MjY5ODYiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIFdpZmkg4KSh4KS/4KS44KWN4KSq4KWN4KSy4KWHIOCkleClgCDgpKjgpL/gpK7gpY3gpKgt4KS44KWN4KSk4KSwIOCkleClgCDgpLjgpYHgpLXgpL/gpKfgpL7gpI/gpIIg4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjQ1NDM5MTIyOTI2ODE4MjY5ODYiPiLgpJDgpKrgpY3gpLggIOCkleCliyBXaWZpIOCkoeCkv+CkuOCljeCkquCljeCksuClhyDgpJXgpYAg4KSo4KS/4KSu4KWN4KSoLeCkuOCljeCkpOCksCDgpJXgpYAg4KS44KWB4KS14KS/4KSn4KS+4KSP4KSCIOCkqOCkv+Ckr+CkguCkpOCljeCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjY4NTcxMzQ0OTg0MDIzNDY3MDgiPiLgpJHgpKHgpL/gpK/gpYsg4KSG4KSJ4KSf4KSq4KWB4KSfIOCkleCliyDgpJXgpYjgpKrgpY3igI3gpJrgpLAg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZUF1ZGlvT3V0cHV0IiBtc2dpZD0iNjIxMDU5Nzc1NDIxMjIwODg1MyI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSR4KSh4KS/4KSv4KWLIOCkhuCkieCkn+CkquClgeCknyDgpJXgpYsg4KSV4KWI4KSq4KWN4oCN4KSa4KSwIOCklOCksCDgpLDgpYDgpKHgpL7gpK/gpLDgpYfgpJXgpY3igI3gpJ8g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZUF1ZGlvT3V0cHV0IiBtc2dpZD0iNjIxMDU5Nzc1NDIxMjIwODg1MyI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSR4KSh4KS/4KSv4KWLIOCkhuCkieCkn+CkquClgeCknyDgpJXgpYsg4KSV4KWI4KSq4KWN4oCN4KSa4KSwIOCklOCksCDgpLDgpYDgpKHgpL7gpK/gpLDgpYfgpJXgpY3igI3gpJ8g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlQXVkaW9Ib3R3b3JkIiBtc2dpZD0iMTg5MDU1MzkzNTY1MDM0OTgwOCI+IuCkueClieCkn+CkteCksOCljeCkoSDgpKrgpLngpJrgpL7gpKgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlQXVkaW9Ib3R3b3JkIiBtc2dpZD0iOTE1MTgwNzk1ODE1MzA1NjgxMCI+IuCkj+CkquCljeCksuCkv+CkleClh+CktuCkqCDgpJXgpYsg4KS54KWJ4KSf4KS14KSw4KWN4KShIOCkquCkueCkmuCkvuCkqCDgpJXgpYcg4KSy4KS/4KSPIOCkkeCkoeCkv+Ckr+CliyDgpJXgpYjgpKrgpY3gpJrgpLAg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYguIOCkleCliOCkquCljeCkmuCksCDgpKrgpYPgpLfgpY3gpKDgpK3gpYLgpK7gpL8g4KSu4KWH4KSCIOCkueCliyDgpLjgpJXgpKTgpL4g4KS54KWIIOCksuClh+CkleCkv+CkqCDgpLXgpLkg4KSF4KSo4KWN4KSvIOCkkeCkoeCkv+Ckr+CliyDgpJXgpYjgpKrgpY3gpJrgpLAgKOCkieCkpuCkvi4g4KSV4KWI4KSu4KSV4KWJ4KSw4KWN4KSh4KSwKSDgpJXgpYsg4KSo4KS54KWA4KSCIOCksOCli+CkleCkpOCkvi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjIyNDY4Mjg3NzM1ODkwOTQwMjMiPiLgpLXgpYDgpKHgpL/gpK/gpYsg4KSG4KSJ4KSf4KSq4KWB4KSfIOCkleCliyDgpJXgpYjgpKrgpY3igI3gpJrgpLAg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMzU5NDgxNjU4MDM0MTQ5ODYwIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpLXgpYDgpKHgpL/gpK/gpYsg4KSG4KSJ4KSf4KSq4KWB4KSfIOCkleCliyDgpJXgpYjgpKrgpY3igI3gpJrgpLAg4KSU4KSwIOCksOClgOCkoeCkvuCkr+CksOClh+CkleCljeKAjeCknyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIzNTk0ODE2NTgwMzQxNDk4NjAiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkteClgOCkoeCkv+Ckr+CliyDgpIbgpIngpJ/gpKrgpYHgpJ8g4KSV4KWLIOCkleCliOCkquCljeKAjeCkmuCksCDgpJTgpLAg4KSw4KWA4KSh4KS+4KSv4KSw4KWH4KSV4KWN4oCN4KSfIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iNzgxNTM5ODk2OTMwMzM4MjAxNiI+IuCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpLXgpYDgpKHgpL/gpK/gpYsg4KSG4KSJ4KSf4KSq4KWB4KSfIOCkleCliyDgpJXgpYjgpKrgpY3igI3gpJrgpLAg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMjc3OTc5MzA2NDcwOTM1MDI4OSI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkteClgOCkoeCkv+Ckr+CliyDgpIbgpIngpJ/gpKrgpYHgpJ8g4KSV4KWLIOCkleCliOCkquCljeKAjeCkmuCksCDgpJTgpLAg4KSw4KWA4KSh4KS+4KSv4KSw4KWH4KSV4KWN4oCN4KSfIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVTZWN1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjI3Nzk3OTMwNjQ3MDkzNTAyODkiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpLXgpYDgpKHgpL/gpK/gpYsg4KSG4KSJ4KSf4KSq4KWB4KSfIOCkleCliyDgpJXgpYjgpKrgpY3igI3gpJrgpLAg4KSU4KSwIOCksOClgOCkoeCkvuCkr+CksOClh+CkleCljeKAjeCknyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21lZGlhQ29udGVudENvbnRyb2wiIG1zZ2lkPSI4NzQ5NzkwNTYwNzIwNTYyNTExIj4i4KSu4KWA4KSh4KS/4KSv4KS+IOCkquCljeCksuClh+CkrOCliOCklSDgpJTgpLAg4KSu4KWH4KSf4KS+4KSh4KWH4KSf4KS+IOCkj+CkleCljeCkuOClh+CkuCDgpKjgpL/gpK/gpILgpKTgpY3gpLDgpL/gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWVkaWFDb250ZW50Q29udHJvbCIgbXNnaWQ9IjE2Mzc0NzgyMDAyNzIwNjIiPiLgpI/gpKrgpY3gpLLgpL/gpJXgpYfgpLbgpKgg4KSV4KWLIOCkruClgOCkoeCkv+Ckr+CkviDgpKrgpY3gpLLgpYfgpKzgpYjgpJUg4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWIIOCklOCksCDgpK7gpYDgpKHgpL/gpK/gpL4g4KSc4KS+4KSo4KSV4KS+4KSw4KWAICjgpLbgpYDgpLDgpY3gpLfgpJUsIOCksuClh+CkluCklS4uLikg4KSP4KSV4KWN4KS44KWH4KS4IOCkleCksOCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjYwOTU4NTk5MzcwNjkxNDYwODYiPiLgpIXgpKrgpKjgpYAg4KSR4KSh4KS/4KSv4KWLIOCkuOClh+Ckn+Ckv+CkguCklyDgpKzgpKbgpLLgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb2RpZnlBdWRpb1NldHRpbmdzIiBtc2dpZD0iMzUyMjU2NTM2NjgwNjI0ODUxNyI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KS14KWI4KS24KWN4KS14KS/4KSVIOCkkeCkoeCkv+Ckr+CliyDgpLjgpYfgpJ/gpL/gpILgpJcsIOCknOCliOCkuOClhyDgpLXgpYngpLLgpY3igI3gpK/gpYLgpK4g4KSU4KSwIOCkleCljOCkqC3gpLjgpL4g4KS44KWN4KSq4KWA4KSV4KSwIOCkhuCkieCkn+CkquClgeCknyDgpJXgpYcg4KSy4KS/4KSPIOCkieCkquCkr+Cli+CklyDgpJXgpL/gpK/gpL4g4KSX4KSv4KS+LCDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjM1MjI1NjUzNjY4MDYyNDg1MTciPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpLXgpYjgpLbgpY3gpLXgpL/gpJUg4KSR4KSh4KS/4KSv4KWLIOCkuOClh+Ckn+Ckv+CkguCklywg4KSc4KWI4KS44KWHIOCkteClieCksuCljeKAjeCkr+ClguCkriDgpJTgpLAg4KSV4KWM4KSoLeCkuOCkviDgpLjgpY3gpKrgpYDgpJXgpLAg4KSG4KSJ4KSf4KSq4KWB4KSfIOCkleClhyDgpLLgpL/gpI8g4KSJ4KSq4KSv4KWL4KSXIOCkleCkv+Ckr+CkviDgpJfgpK/gpL4sIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY29yZEF1ZGlvIiBtc2dpZD0iMzg3NjA0OTc3MTQyNzQ2NjMyMyI+IuCkkeCkoeCkv+Ckr+CliyDgpLDgpL/gpJXgpYngpLDgpY3gpKEg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjb3JkQXVkaW8iIG1zZ2lkPSI0OTA2ODM5MzAxMDg3OTgwNjgwIj4i4KSP4KSq4KWN4KS4IOCkleCliyDgpK7gpL7gpIfgpJXgpY3gpLDgpYvgpKvgpLzgpYvgpKgg4KSm4KWN4KS14KS+4KSw4KS+IOCkkeCkoeCkv+Ckr+CliyDgpLDgpL/gpJXgpL7gpLDgpY3gpKEg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkr+CkuSDgpIXgpKjgpYHgpK7gpKTgpL8g4KSP4KSq4KWN4KS4IOCkleCliyDgpIbgpKrgpJXgpYAg4KSq4KWB4KS34KWN4KSf4KS/IOCkleClhyDgpKzgpL/gpKjgpL4g4KSV4KS/4KS44KWAIOCkreClgCDgpLjgpK7gpK8g4KSR4KSh4KS/4KSv4KWLIOCksOCkv+CkleCkvuCksOCljeCkoSDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNvcmRBdWRpbyIgbXNnaWQ9IjQ5MDY4MzkzMDEwODc5ODA2ODAiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpK7gpL7gpIfgpJXgpY3gpLDgpYvgpKvgpLzgpYvgpKgg4KSm4KWN4KS14KS+4KSw4KS+IOCkkeCkoeCkv+Ckr+CliyDgpLDgpL/gpJXgpL7gpLDgpY3gpKEg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkr+CkuSDgpIXgpKjgpYHgpK7gpKTgpL8g4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSG4KSq4KSV4KWAIOCkquClgeCkt+CljeCkn+CkvyDgpJXgpYcg4KSs4KS/4KSo4KS+IOCkleCkv+CkuOClgCDgpK3gpYAg4KS44KSu4KSvIOCkkeCkoeCkv+Ckr+CliyDgpLDgpL/gpJXgpL7gpLDgpY3gpKEg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYW1lcmEiIG1zZ2lkPSIzNjE2MzkxOTE5NTU5NzUxMTkyIj4i4KSa4KS/4KSk4KWN4KSwIOCklOCksCDgpLXgpYDgpKHgpL/gpK/gpYsg4KSy4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhIiBtc2dpZD0iODQ5NzIxNjUyNDczNTUzNTAwOSI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSV4KWI4KSu4KSw4KWHIOCkuOClhyDgpJrgpL/gpKTgpY3gpLAg4KSU4KSwIOCkteClgOCkoeCkv+Ckr+CliyDgpLLgpYfgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkheCkqOClgeCkruCkpOCkvyDgpI/gpKrgpY3gpLgg4KSV4KWLIOCkleCkv+CkuOClgCDgpK3gpYAg4KS44KSu4KSvIOCkhuCkquCkleClgCDgpKrgpYHgpLfgpY3gpJ/gpL8g4KSV4KWHIOCkrOCkv+CkqOCkviDgpJXgpYjgpK7gpLDgpYcg4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYW1lcmEiIG1zZ2lkPSI4NDk3MjE2NTI0NzM1NTM1MDA5Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSV4KWI4KSu4KSw4KWHIOCkuOClhyDgpJrgpL/gpKTgpY3gpLAg4KSU4KSwIOCkteClgOCkoeCkv+Ckr+CliyDgpLLgpYfgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkheCkqOClgeCkruCkpOCkvyDgpJDgpKrgpY3gpLggIOCkleCliyDgpJXgpL/gpLjgpYAg4KSt4KWAIOCkuOCkruCkryDgpIbgpKrgpJXgpYAg4KSq4KWB4KS34KWN4KSf4KS/IOCkleClhyDgpKzgpL/gpKjgpL4g4KSV4KWI4KSu4KSw4KWHIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYW1lcmFEaXNhYmxlVHJhbnNtaXRMZWQiIG1zZ2lkPSIyNjUxMDcyNjMwNTAxMTI2MjIyIj4i4KSV4KWI4KSu4KSw4KS+IOCkieCkquCkr+Cli+CklyDgpK7gpYfgpIIg4KS54KWL4KSo4KWHIOCkquCksCDgpLjgpILgpJrgpL7gpLDgpKMg4KS44KSC4KSV4KWH4KSk4KSVIExFRCDgpIXgpJXgpY3gpLfgpK4g4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhRGlzYWJsZVRyYW5zbWl0TGVkIiBtc2dpZD0iNDc2NDU4NTQ2NTQ4MDI5NTM0MSI+IuCkquCkueCksuClhyDgpLjgpYcg4KSH4KSC4KS44KWN4KSf4KWJ4KSyIOCkleCkv+CkjyDgpJfgpI8g4KS44KS/4KS44KWN4KSf4KSuIOCkj+CkquCljeCkuCDgpJXgpYsg4KSV4KWI4KSu4KSw4KWHIOCkleCliyDgpLjgpILgpJXgpYfgpKTgpJUgTEVEIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkuOClhyDgpIXgpJXgpY3gpLfgpK4g4KSV4KSw4KSk4KWAIOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYW1lcmFEaXNhYmxlVHJhbnNtaXRMZWQiIG1zZ2lkPSI0NzY0NTg1NDY1NDgwMjk1MzQxIj4i4KSq4KS54KSy4KWHIOCkuOClhyDgpIfgpILgpLjgpY3gpJ/gpYngpLIg4KSV4KS/4KSPIOCkl+CkjyDgpLjgpL/gpLjgpY3gpJ/gpK4g4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSV4KWI4KSu4KSw4KWHIOCkleCliyDgpLjgpILgpJXgpYfgpKTgpJUgTEVEIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkuOClhyDgpIXgpJXgpY3gpLfgpK4g4KSV4KSw4KSk4KWAIOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyOTYxMjkyMjA1NzY0NDg4MzA0Ij4i4KS44KWN4oCN4KSl4KS+4KSv4KWAIOCksOClguCkqiDgpLjgpYcg4KSf4KWH4KSs4KSy4KWH4KSfIOCkheCkleCljeCkt+CkriDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JyaWNrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODMzNzgxNzA5MzMyNjM3MDUzNyI+IuCkq+CkvOCli+CkqCDgpJXgpYsg4KS44KWN4oCN4KSl4KS+4KSv4KWAIOCksOClguCkqiDgpLjgpYcg4KSF4KSV4KWN4KS34KSuIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzM0ODE4ODA4MDAxNjk5NTMwIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpLjgpILgpKrgpYLgpLDgpY3gpKMg4KSf4KWH4KSs4KSy4KWH4KSfIOCkleCliyDgpLjgpY3igI3gpKXgpL7gpK/gpYAg4KSw4KWC4KSqIOCkuOClhyDgpIXgpJXgpY3gpLfgpK4g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkr+CkuSDgpKzgpLngpYHgpKQg4KSW4KSk4KSw4KSo4KS+4KSVIOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icmljayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3ODg5MDMyOTc2MjcyODMwOTkiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkuOCkguCkquClguCksOCljeCkoyDgpKvgpLzgpYvgpKgg4KSV4KWLIOCkuOCljeKAjeCkpeCkvuCkr+ClgCDgpLDgpYLgpKog4KS44KWHIOCkheCkleCljeCkt+CkriDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkrOCkueClgeCkpCDgpJbgpKTgpLDgpKjgpL7gpJUg4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzM0ODE4ODA4MDAxNjk5NTMwIj4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpLjgpILgpKrgpYLgpLDgpY3gpKMg4KSf4KWH4KSs4KSy4KWH4KSfIOCkleCliyDgpLjgpY3igI3gpKXgpL7gpK/gpYAg4KSw4KWC4KSqIOCkuOClhyDgpIXgpJXgpY3gpLfgpK4g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkr+CkuSDgpKzgpLngpYHgpKQg4KSW4KSk4KSw4KSo4KS+4KSVIOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icmljayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3ODg5MDMyOTc2MjcyODMwOTkiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkuOCkguCkquClguCksOCljeCkoyDgpKvgpLzgpYvgpKgg4KSV4KWLIOCkuOCljeKAjeCkpeCkvuCkr+ClgCDgpLDgpYLgpKog4KS44KWHIOCkheCkleCljeCkt+CkriDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkrOCkueClgeCkpCDgpJbgpKTgpLDgpKjgpL7gpJUg4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVib290IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzNDM2NjM0OTcyNTYxNzk1MDAyIj4i4KSf4KWH4KSs4KSy4KWH4KSfIOCksOClgOCkrOClguCknyDgpJXgpYcg4KSy4KS/4KSPIOCkrOCkvuCkp+CljeKAjeCkryDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4OTg1NjA4NzI0NjI2MzgyNDIiPiLgpKvgpLzgpYvgpKgg4KSw4KWA4KSs4KWC4KSfIOCkleClhyDgpLLgpL/gpI8g4KSs4KS+4KSn4KWN4oCN4KSvIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYm9vdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODE3MjA1NjE4MDA2MzcwMDc0MSI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSf4KWH4KSs4KSy4KWH4KSfIOCksOClgOCkrOClguCknyDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpKzgpL7gpKfgpY3igI3gpK8g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVib290IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTMyNjAwODEyNDI4OTk4OTk2OSI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSr4KS84KWL4KSoIOCkrOCksuCkquClguCksOCljeCkteCklSDgpLDgpYDgpKzgpYLgpJ8g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVib290IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MTcyMDU2MTgwMDYzNzAwNzQxIj4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSw4KWA4KSs4KWC4KSfIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkrOCkvuCkp+CljeKAjeCkryDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MzI2MDA4MTI0Mjg5OTg5OTY5Ij4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpKvgpLzgpYvgpKgg4KSs4KSy4KSq4KWC4KSw4KWN4KS14KSVIOCksOClgOCkrOClguCknyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjkyNzM2MTUzNzk0MjU5MTg0MSI+IlVTQiDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSr4KS84KS+4KSH4KSyIOCkuOCkv+CkuOCljeKAjeCkn+CkriDgpKrgpLAg4KSq4KS54KWB4KSC4KSa4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDQwMjMwNTA0OTg5MDk1MzgxMCI+IlNEIOCkleCkvuCksOCljeCkoSDgpKvgpLzgpL7gpIfgpLIg4KS44KS/4KS44KWN4oCN4KSf4KSuIOCkquCksCDgpKrgpLngpYHgpILgpJrgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBtc2dpZD0iMTgyOTI5MDcwMTY1ODk5MjM0NyI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSo4KS/4KSV4KS+4KSy4KWHIOCknOCkvuCkqOClhyDgpK/gpYvgpJfgpY3igI3gpK8g4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkleClhyDgpLLgpL/gpI8g4KSr4KS84KS+4KSH4KSyIOCkuOCkv+CkuOCljeKAjeCkn+CkriDgpK7gpL7gpIngpILgpJ8g4KSU4KSwIOCkheCkqOCkruCkvuCkieCkguCknyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBtc2dpZD0iMTgyOTI5MDcwMTY1ODk5MjM0NyI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSo4KS/4KSV4KS+4KSy4KWHIOCknOCkvuCkqOClhyDgpK/gpYvgpJfgpY3igI3gpK8g4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkleClhyDgpLLgpL/gpI8g4KSr4KS84KS+4KSH4KSyIOCkuOCkv+CkuOCljeKAjeCkn+CkriDgpK7gpL7gpIngpILgpJ8g4KSU4KSwIOCkheCkqOCkruCkvuCkieCkguCknyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MjI3ODE5NTgyNjI0OTA0OTcyIj4iVVNCIOCkuOCkguCkl+CljeCksOCkueCkoyDgpK7gpL/gpJ/gpL7gpI/gpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI2MjU4MjY5ODYzOTI3NDA1NiI+IlNEIOCkleCkvuCksOCljeCkoSDgpK7gpL/gpJ/gpL7gpI/gpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIG1zZ2lkPSI4Nzg0MjY4MjQ2Nzc5MTk4NjI3Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpKjgpL/gpJXgpL7gpLLgpKjgpYcg4KSv4KWL4KSX4KWN4oCN4KSvIOCkuOCkguCkl+CljeCksOCkueCkoyDgpKvgpLzgpYngpLDgpY3gpK7gpYfgpJ8g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBtc2dpZD0iODc4NDI2ODI0Njc3OTE5ODYyNyI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSo4KS/4KSV4KS+4KSy4KSo4KWHIOCkr+Cli+Ckl+CljeKAjeCkryDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSr4KS84KWJ4KSw4KWN4KSu4KWH4KSfIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19hY2Nlc3MiIG1zZ2lkPSIzNDExMzM4NjMyMDAyMTkzODQ2Ij4i4KSu4KWL4KSs4KS+4KSH4KSyIOCkuOCkguCkl+CljeCksOCkueCkoyDgpKrgpLAg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX2FjY2VzcyIgbXNnaWQ9IjMwOTQ1NjM4NDQ1OTM4Nzg1NDgiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkruCli+CkrOCkvuCkh+CksiDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSV4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCDgpKrgpY3gpLDgpL7gpKrgpY3igI3gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19hY2Nlc3MiIG1zZ2lkPSIzMDk0NTYzODQ0NTkzODc4NTQ4Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSu4KWL4KSs4KS+4KSH4KSyIOCkuOCkguCkl+CljeCksOCkueCkoyDgpJXgpYAg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkquCljeCksOCkvuCkquCljeKAjeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfY3JlYXRlIiBtc2dpZD0iNjQxNDc1NzIzNDc4OTMzNjMyNyI+IuCkruCli+CkrOCkvuCkh+CksiDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSs4KSo4KS+4KSP4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19jcmVhdGUiIG1zZ2lkPSI0NTU4ODY5MjczNTg1ODU2ODc2Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpK7gpYvgpKzgpL7gpIfgpLIg4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkrOCkqOCkvuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfY3JlYXRlIiBtc2dpZD0iNDU1ODg2OTI3MzU4NTg1Njg3NiI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSu4KWL4KSs4KS+4KSH4KSyIOCkuOCkguCkl+CljeCksOCkueCkoyDgpKzgpKjgpL7gpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjUyNjkyODMyODMwMTYxODAyMiI+IuCkruCli+CkrOCkvuCkh+CksiDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSo4KS34KWN4KSfIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjcyMTg3NDkyODYxNDU1MjY1MzciPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkruCli+CkrOCkvuCkh+CksiDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSo4KS34KWN4KSfIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjcyMTg3NDkyODYxNDU1MjY1MzciPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkruCli+CkrOCkvuCkh+CksiDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSo4KS34KWN4KSfIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19tb3VudF91bm1vdW50IiBtc2dpZD0iODg3Nzk5ODEwMTk0NDk5OTM4NiI+IuCkruCli+CkrOCkvuCkh+CksiDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSu4KS+4KSJ4KSC4KSfL+CkheCkqOCkruCkvuCkieCkguCknyDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX21vdW50X3VubW91bnQiIG1zZ2lkPSIzNDUxMzYwMTE0OTAyNDkwOTI5Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpK7gpYvgpKzgpL7gpIfgpLIg4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkruCkvuCkieCkguCkny/gpIXgpKjgpK7gpL7gpIngpILgpJ8g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19tb3VudF91bm1vdW50IiBtc2dpZD0iMzQ1MTM2MDExNDkwMjQ5MDkyOSI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSu4KWL4KSs4KS+4KSH4KSyIOCkuOCkguCkl+CljeCksOCkueCkoyDgpK7gpL7gpIngpILgpJ8v4KSF4KSo4KSu4KS+4KSJ4KSC4KSfIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19yZW5hbWUiIG1zZ2lkPSI3NDk2NjMzOTU0MDgwNDcyNDE3Ij4i4KSu4KWL4KSs4KS+4KSH4KSyIOCkuOCkguCkl+CljeCksOCkueCkoyDgpJXgpL4g4KSo4KS+4KSuIOCkrOCkpuCksuClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfcmVuYW1lIiBtc2dpZD0iMTc5NDc1NzU4ODQ3MjEyNzY3NSI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSu4KWL4KSs4KS+4KSH4KSyIOCkuOCkguCkl+CljeCksOCkueCkoyDgpJXgpL4g4KSo4KS+4KSuIOCkrOCkpuCksuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfcmVuYW1lIiBtc2dpZD0iMTc5NDc1NzU4ODQ3MjEyNzY3NSI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSu4KWL4KSs4KS+4KSH4KSyIOCkuOCkguCkl+CljeCksOCkueCkoyDgpJXgpL4g4KSo4KS+4KSuIOCkrOCkpuCksuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdmlicmF0ZSIgbXNnaWQ9Ijc2OTY0MjcwMjYwNTc3MDU4MzQiPiLgpJXgpILgpKrgpKgg4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3ZpYnJhdGUiIG1zZ2lkPSI2Mjg0OTg5MjQ1OTAyMzAwOTQ1Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpJXgpILgpKrgpKjgpJXgpLDgpY3gpKTgpL4g4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3ZpYnJhdGUiIG1zZ2lkPSI2Mjg0OTg5MjQ1OTAyMzAwOTQ1Ij4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpJXgpILgpKrgpKjgpJXgpLDgpY3gpKTgpL4g4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZmxhc2hsaWdodCIgbXNnaWQ9IjIxNTU5MjA4MTAxMjE5ODQyMTUiPiLgpKvgpLzgpY3gpLLgpYjgpLbgpLLgpL7gpIfgpJ8g4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZsYXNobGlnaHQiIG1zZ2lkPSI2NTIyMjg0Nzk0NTY4MzY4MzEwIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpKvgpLzgpY3gpLLgpYjgpLbgpLLgpL7gpIfgpJ8g4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZsYXNobGlnaHQiIG1zZ2lkPSI2NTIyMjg0Nzk0NTY4MzY4MzEwIj4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpKvgpLzgpY3gpLLgpYjgpLbgpLLgpL7gpIfgpJ8g4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlVXNiIiBtc2dpZD0iMTExMzQ1MzQzMDY0NTQwMjcyMyI+IlVTQiDgpIngpKrgpJXgpLDgpKPgpYvgpIIg4KSV4KWAIOCkquCljeCksOCkvuCkpeCkruCkv+CkleCkpOCkvuCkj+CkgiDgpJTgpLAg4KSF4KSo4KWB4KSu4KSk4KS/4KSv4KS+4KSCIOCkquCljeCksOCkrOCkguCkp+Ckv+CkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VVc2IiIG1zZ2lkPSI3Nzc2MTU1NDMwMjE4MjM5ODMzIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyBVU0Ig4KSJ4KSq4KSV4KSw4KSj4KWL4KSCIOCkleClgCDgpKrgpY3gpLDgpL7gpKXgpK7gpL/gpJXgpKTgpL7gpJPgpIIg4KSU4KSwIOCkheCkqOClgeCkruCkpOCkv+Ckr+Cli+CkgiDgpJXgpYsg4KSq4KWN4KSw4KSs4KSC4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZVVzYiIgbXNnaWQ9Ijc3NzYxNTU0MzAyMTgyMzk4MzMiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIFVTQiDgpIngpKrgpJXgpLDgpKPgpYvgpIIg4KSV4KWAIOCkquCljeCksOCkvuCkpeCkruCkv+CkleCkpOCkvuCkk+CkgiDgpJTgpLAg4KSF4KSo4KWB4KSu4KSk4KS/4KSv4KWL4KSCIOCkleCliyDgpKrgpY3gpLDgpKzgpILgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NNdHAiIG1zZ2lkPSI0OTUzNDY4Njc2Nzk1OTE3MDQyIj4iTVRQIOCkquCljeCksOCli+Ckn+Cli+CkleClieCksiDgpLLgpL7gpJfgpYIg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTXRwIiBtc2dpZD0iNjUzMjk2MTIwMDQ4Njc5MTU3MCI+Ik1UUCBVU0Ig4KSq4KWN4KSw4KWL4KSf4KWL4KSV4KWJ4KSyIOCksuCkvuCkl+ClgiDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpJXgpLDgpY3gpKjgpYfgpLIgTVRQIOCkoeCljeCksOCkvuCkh+CkteCksCDgpK7gpYfgpIIg4KSq4KS54KWB4KSC4KSaIOCkleClgCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2hhcmR3YXJlX3Rlc3QiIG1zZ2lkPSI0MTQ4MjkwODYwNDAwNjU5MTQ2Ij4i4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkueCkvuCksOCljeCkoeCkteClh+Ckr+CksCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2hhcmR3YXJlX3Rlc3QiIG1zZ2lkPSI2NTk3OTY0MTkxMjA4MDE2NjA1Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpLngpL7gpLDgpY3gpKHgpLXgpYfgpK/gpLAg4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkleClhyDgpLLgpL/gpI8g4KS14KS/4KS14KS/4KSnIOCkuOCkueCkvuCkr+CklSDgpIngpKrgpJXgpLDgpKPgpYvgpIIg4KSV4KWLIOCkqOCkv+Ckr+CkguCkpOCljeCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19oYXJkd2FyZV90ZXN0IiBtc2dpZD0iNjU5Nzk2NDE5MTIwODAxNjYwNSI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KS54KS+4KSw4KWN4KSh4KS14KWH4KSv4KSwIOCkquCksOClgOCkleCljeCkt+CkoyDgpJXgpYcg4KSy4KS/4KSPIOCkteCkv+CkteCkv+CkpyDgpLjgpLngpL7gpK/gpJUg4KSJ4KSq4KSV4KSw4KSj4KWL4KSCIOCkleCliyDgpKjgpL/gpK/gpILgpKTgpY3gpLDgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWxsUGhvbmUiIG1zZ2lkPSIzOTI1ODM2MzQ3NjgxODQ3OTU0Ij4i4KSr4KS84KWL4KSoIOCkqOCkguCkrOCksCDgpKrgpLAg4KS44KWA4KSn4KWHIOCkleClieCksiDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYWxsUGhvbmUiIG1zZ2lkPSIzNzQwNzk3NTc2MTEzNzYwODI3Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIbgpKrgpJXgpYcg4KS54KS44KWN4oCN4KSk4KSV4KWN4KS34KWH4KSqIOCkleClhyDgpKzgpL/gpKjgpL4g4KSr4KS84KWL4KSoIOCkqOCkguCkrOCksCDgpKrgpLAg4KSV4KWJ4KSyIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpIfgpLjgpJXgpYcg4KSq4KSw4KS/4KSj4KS+4KSuIOCkheCkquCljeCksOCkpOCljeKAjeCkr+CkvuCktuCkv+CkpCDgpLbgpYHgpLLgpY3igI3gpJUg4KSv4KS+IOCkleClieCksiDgpLngpYsg4KS44KSV4KSk4KWHIOCkueCliOCkgi4g4KSn4KWN4KSv4KS+4KSoIOCkpuClh+CkgiDgpJXgpL8g4KSv4KS5IOCkj+CkquCljeCkuCDgpJXgpYsg4KSG4KSq4KS+4KSk4KSV4KS+4KSy4KWA4KSoIOCkqOCkguCkrOCksCDgpKrgpLAg4KSV4KWJ4KSyIOCkqOCkueClgOCkgiDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+LiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4KS4IOCkhuCkquCkleClgCDgpKrgpYHgpLfgpY3gpJ/gpL8g4KSV4KWHIOCkrOCkv+CkqOCkviDgpJXgpYngpLIg4KSV4KSw4KSV4KWHIOCkhuCkquCkleCkviDgpKfgpKgg4KS14KWN4oCN4KSv4KSvIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbGxQaG9uZSIgbXNnaWQ9IjM3NDA3OTc1NzYxMTM3NjA4MjciPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpIbgpKrgpJXgpYcg4KS54KS44KWN4oCN4KSk4KSV4KWN4KS34KWH4KSqIOCkleClhyDgpKzgpL/gpKjgpL4g4KSr4KS84KWL4KSoIOCkqOCkguCkrOCksCDgpKrgpLAg4KSV4KWJ4KSyIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpIfgpLjgpJXgpYcg4KSq4KSw4KS/4KSj4KS+4KSuIOCkheCkquCljeCksOCkpOCljeKAjeCkr+CkvuCktuCkv+CkpCDgpLbgpYHgpLLgpY3igI3gpJUg4KSv4KS+IOCkleClieCksiDgpLngpYsg4KS44KSV4KSk4KWHIOCkueCliOCkgi4g4KSn4KWN4KSv4KS+4KSoIOCkpuClh+CkgiDgpJXgpL8g4KSv4KS5IOCkkOCkquCljeCkuCAg4KSV4KWLIOCkhuCkquCkvuCkpOCkleCkvuCksuClgOCkqCDgpKjgpILgpKzgpLAg4KSq4KSwIOCkleClieCksiDgpKjgpLngpYDgpIIg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkvi4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCAg4KSG4KSq4KSV4KWAIOCkquClgeCkt+CljeCkn+CkvyDgpJXgpYcg4KSs4KS/4KSo4KS+IOCkleClieCksiDgpJXgpLDgpJXgpYcg4KSG4KSq4KSV4KS+IOCkp+CkqCDgpLXgpY3igI3gpK/gpK8g4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWxsUHJpdmlsZWdlZCIgbXNnaWQ9IjQxOTgzNDkyMTExMDg0OTc4NzkiPiLgpJXgpL/gpLjgpYAg4KSt4KWAIOCkq+CkvOCli+CkqCDgpKjgpILgpKzgpLAg4KSq4KSwIOCkuOClgOCkp+ClhyDgpJXgpYngpLIg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FsbFByaXZpbGVnZWQiIG1zZ2lkPSIxNjg5MDI0OTAxNTA5OTk2ODEwIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpIbgpKrgpJXgpYcg4KS54KS44KWN4oCN4KSk4KSV4KWN4KS34KWH4KSqIOCkleClhyDgpKzgpL/gpKjgpL4g4KSG4KSq4KS+4KSk4KSV4KS+4KSy4KWA4KSoIOCkqOCkguCkrOCksOCli+CkgiDgpLjgpLngpL/gpKQsIOCkleCkv+CkuOClgCDgpK3gpYAg4KSr4KS84KWL4KSoIOCkqOCkguCkrOCksCDgpKrgpLAg4KSV4KWJ4KSyIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4oCN4KS4IOCkhuCkquCkvuCkpOCkleCkvuCksuClgOCkqCDgpLjgpYfgpLXgpL7gpJPgpIIg4KSq4KSwIOCkheCkqOCkvuCkteCktuCljeKAjeCkr+CklSDgpJTgpLAg4KSF4KS14KWI4KSnIOCkleClieCksiDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYWxsUHJpdmlsZWdlZCIgbXNnaWQ9IjE2ODkwMjQ5MDE1MDk5OTY4MTAiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkhuCkquCkleClhyDgpLngpLjgpY3igI3gpKTgpJXgpY3gpLfgpYfgpKog4KSV4KWHIOCkrOCkv+CkqOCkviDgpIbgpKrgpL7gpKTgpJXgpL7gpLLgpYDgpKgg4KSo4KSC4KSs4KSw4KWL4KSCIOCkuOCkueCkv+CkpCwg4KSV4KS/4KS44KWAIOCkreClgCDgpKvgpLzgpYvgpKgg4KSo4KSC4KSs4KSwIOCkquCksCDgpJXgpYngpLIg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpJDgpKrgpY3gpLgg4KSG4KSq4KS+4KSk4KSV4KS+4KSy4KWA4KSoIOCkuOClh+CkteCkvuCkk+CkgiDgpKrgpLAg4KSF4KSo4KS+4KS14KS24KWN4oCN4KSv4KSVIOCklOCksCDgpIXgpLXgpYjgpKcg4KSV4KWJ4KSyIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQ4NDI1NzY5OTQxNDQ2MDQ4MjEiPiLgpLjgpYDgpKfgpYcgQ0RNQSDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KS44KWH4KSf4KSF4KSqIOCkquCljeCksOCkvuCksOCkguCkrSDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTYwNDg0ODA5NTMxNTQyMTQyNSI+IuCkuOClgOCkp+ClhyBDRE1BIOCkq+CkvOCli+CkqCDgpLjgpYfgpJ/gpIXgpKog4KSq4KWN4KSw4KS+4KSw4KSC4KStIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBtc2dpZD0iMTk5NDE5MzUzODgwMjMxNDE4NiI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsgQ0RNQSDgpKrgpY3gpLDgpL7gpLXgpKfgpL7gpKgg4KSq4KWN4KSw4KS+4KSw4KSC4KStIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4oCN4KS4IOCkheCkqOCkvuCkteCktuCljeKAjeCkr+CklSDgpLDgpYLgpKog4KS44KWHIENETUEg4KSq4KWN4KSw4KS+4KS14KSn4KS+4KSoIOCkquCljeCksOCkvuCksOCkguCkrSDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgbXNnaWQ9IjE5OTQxOTM1Mzg4MDIzMTQxODYiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIENETUEg4KSq4KWN4KSw4KS+4KS14KSn4KS+4KSoIOCkquCljeCksOCkvuCksOCkguCkrSDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCDgpIXgpKjgpL7gpLXgpLbgpY3igI3gpK/gpJUg4KSw4KWC4KSqIOCkuOClhyBDRE1BIOCkquCljeCksOCkvuCkteCkp+CkvuCkqCDgpKrgpY3gpLDgpL7gpLDgpILgpK0g4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9sb2NhdGlvblVwZGF0ZXMiIG1zZ2lkPSI3Nzg1NDA4MjUzMzY0MzM1NzQwIj4i4KS44KWN4oCN4KSl4KS+4KSoIOCkleClhyDgpKzgpL7gpLDgpYcg4KSu4KWH4KSCIOCkqOCkiCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSV4KWAIOCkuOClguCkmuCkqOCkvuCkk+CkgiDgpJXgpYsg4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2xvY2F0aW9uVXBkYXRlcyIgbXNnaWQ9IjExMjA3NDE1NTc4OTE0Mzg4NzYiPiLgpI/gpKog4KSV4KWLIOCksOClh+CkoeCkv+Ckr+CliyDgpLjgpYcg4KS44KWN4oCN4KSl4KS+4KSoIOCkleClhyDgpKzgpL7gpLDgpYcg4KSu4KWH4KSCIOCkqOCkiCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSV4KWAIOCkuOClguCkmuCkqOCkvuCkj+CkgiDgpLjgpJXgpY3gpLfgpK4v4KSF4KSV4KWN4KS34KSuIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkpuCljeCkteCkvuCksOCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSo4KS54KWA4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2xvY2F0aW9uVXBkYXRlcyIgbXNnaWQ9IjExMjA3NDE1NTc4OTE0Mzg4NzYiPiLgpI/gpKog4KSV4KWLIOCksOClh+CkoeCkv+Ckr+CliyDgpLjgpYcg4KS44KWN4oCN4KSl4KS+4KSoIOCkleClhyDgpKzgpL7gpLDgpYcg4KSu4KWH4KSCIOCkqOCkiCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSV4KWAIOCkuOClguCkmuCkqOCkvuCkj+CkgiDgpLjgpJXgpY3gpLfgpK4v4KSF4KSV4KWN4KS34KSuIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4IOCkpuCljeCkteCkvuCksOCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSo4KS54KWA4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI3ODU1MjU5NDYxMjY4NzM0OTE0Ij4i4KSa4KWH4KSV4KSH4KSoIOCkl+ClgeCko+Cli+CkgiDgpK7gpYfgpIIg4KSq4KS54KWB4KSC4KSa4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI0MDI0NTI2OTY4NjMwMTk0MTI4Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpJrgpYfgpJXgpIfgpKgg4KS44KWH4KS14KS+IOCkpuCljeCkteCkvuCksOCkviDgpIXgpKrgpLLgpYvgpKEg4KSV4KS/4KSPIOCkl+CkjyDgpJfgpYHgpKPgpYvgpIIg4KSq4KSwIOCkquCkouCkvOClh+Ckgi/gpLLgpL/gpJbgpYfgpIIg4KSq4KS54KWB4KSC4KSaIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpKjgpLngpYDgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI0MDI0NTI2OTY4NjMwMTk0MTI4Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSa4KWH4KSV4KSH4KSoIOCkuOClh+CkteCkviDgpKbgpY3gpLXgpL7gpLDgpL4g4KSF4KSq4KSy4KWL4KShIOCkleCkv+CkjyDgpJfgpI8g4KSX4KWB4KSj4KWL4KSCIOCkquCksCDgpKrgpKLgpLzgpYfgpIIv4KSy4KS/4KSW4KWH4KSCIOCkquCkueClgeCkguCkmiDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4IOCkpuCljeCkteCkvuCksOCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSo4KS54KWA4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZEdhZGdldCIgbXNnaWQ9Ijc3NjkwNTMzOTAxNTg2MzQ3MSI+IuCkteCkv+CknOClh+CknyDgpJrgpYHgpKjgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kR2FkZ2V0IiBtc2dpZD0iODI2MTMyNjkzODU5OTA0OTI5MCI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KS44KS/4KS44KWN4KSf4KSuIOCkleCliyDgpK/gpLkg4KSs4KSk4KS+4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgg4KSV4KS/IOCkleCkv+CkuCDgpI/gpKrgpY3gpLgg4KSm4KWN4KS14KS+4KSw4KS+IOCkleCljOCkqCDgpLjgpYcg4KS14KS/4KSc4KWH4KSfIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KS/4KSv4KS+IOCknOCkviDgpLjgpJXgpKTgpL4g4KS54KWILiDgpJXgpYvgpIgg4KSP4KSq4KWN4KS4LCDgpIfgpLgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkleClhyDgpLjgpL7gpKUg4KSF4KSo4KWN4KSvIOCkj+CkquCljeCkuCDgpJXgpYcg4KSo4KS/4KSc4KWAIOCkoeClh+Ckn+CkviDgpKrgpLAg4KSq4KS54KWB4KSC4KSaIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpKjgpLngpYDgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZEdhZGdldCIgbXNnaWQ9IjgyNjEzMjY5Mzg1OTkwNDkyOTAiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpLjgpL/gpLjgpY3gpJ/gpK4g4KSV4KWLIOCkr+CkuSDgpKzgpKTgpL7gpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCDgpJXgpL8g4KSV4KS/4KS4IOCkkOCkquCljeCkuCAg4KSm4KWN4KS14KS+4KSw4KS+IOCkleCljOCkqCDgpLjgpYcg4KS14KS/4KSc4KWH4KSfIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KS/4KSv4KS+IOCknOCkviDgpLjgpJXgpKTgpL4g4KS54KWILiDgpJXgpYvgpIgg4KSQ4KSq4KWN4KS4ICwg4KSH4KS4IOCkheCkqOClgeCkruCkpOCkvyDgpJXgpYcg4KS44KS+4KSlIOCkheCkqOCljeCkryDgpJDgpKrgpY3gpLggIOCkleClhyDgpKjgpL/gpJzgpYAg4KSh4KWH4KSf4KS+IOCkquCksCDgpKrgpLngpYHgpILgpJog4KS44KSV4KSk4KWHIOCkueCliOCkgi4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkkOCkquCljeCkuCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkqOCkueClgOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeVBob25lU3RhdGUiIG1zZ2lkPSI4NDIzOTIzNzc3NjU5MjkyMjI4Ij4i4KSr4KS84KWL4KSoIOCkuOCljeKAjeCkpeCkv+CkpOCkvyDgpKzgpKbgpLLgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb2RpZnlQaG9uZVN0YXRlIiBtc2dpZD0iMTAyOTg3NzUyOTAwNzY4NjczMiI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSJ4KSq4KSV4KSw4KSjIOCkleClgCDgpKvgpLzgpYvgpKgg4KS44KWB4KS14KS/4KSn4KS+4KSP4KSCIOCkqOCkv+Ckr+CkguCkpOCljeCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS4IOCkheCkqOClgeCkruCkpOCkvyDgpLXgpL7gpLLgpL4g4KSV4KWL4KSIIOCkj+CkquCljeKAjeCkuCDgpIbgpKrgpJXgpYsg4KS44KWC4KSa4KS/4KSkIOCkleCkv+CkjyDgpKzgpL/gpKjgpL4g4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkuOCljeKAjeCkteCkv+CkmiDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliCwg4KSr4KS84KWL4KSoIOCkleCkviDgpLDgpYfgpKHgpL/gpK/gpYsg4KSa4KS+4KSy4KWCIOCklOCksCDgpKzgpILgpKYg4KSV4KSwIOCkuOCkleCkpOCkviDgpLngpYgg4KSU4KSwIOCkkOCkuOClhyDgpLngpYAg4KSF4KSo4KWN4KSvIOCkleCkvuCksOCljeCkryDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb2RpZnlQaG9uZVN0YXRlIiBtc2dpZD0iMTAyOTg3NzUyOTAwNzY4NjczMiI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSJ4KSq4KSV4KSw4KSjIOCkleClgCDgpKvgpLzgpYvgpKgg4KS44KWB4KS14KS/4KSn4KS+4KSP4KSCIOCkqOCkv+Ckr+CkguCkpOCljeCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS4IOCkheCkqOClgeCkruCkpOCkvyDgpLXgpL7gpLLgpL4g4KSV4KWL4KSIIOCkkOCkquCljeCkuCDgpIbgpKrgpJXgpYsg4KS44KWC4KSa4KS/4KSkIOCkleCkv+CkjyDgpKzgpL/gpKjgpL4g4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkuOCljeKAjeCkteCkv+CkmiDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliCwg4KSr4KS84KWL4KSoIOCkleCkviDgpLDgpYfgpKHgpL/gpK/gpYsg4KSa4KS+4KSy4KWCIOCklOCksCDgpKzgpILgpKYg4KSV4KSwIOCkuOCkleCkpOCkviDgpLngpYgg4KSU4KSwIOCkkOCkuOClhyDgpLngpYAg4KSF4KSo4KWN4KSvIOCkleCkvuCksOCljeCkryDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRQaG9uZVN0YXRlIiBtc2dpZD0iOTE3ODIyODUyNDUwNzYxMDQ4NiI+IuCkq+CkvOCli+CkqCDgpJXgpYAg4KS44KWN4oCN4KSl4KS/4KSk4KS/IOCklOCksCDgpKrgpLngpJrgpL7gpKgg4KSq4KSi4KS84KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFBob25lU3RhdGUiIG1zZ2lkPSIxNjM5MjEyNzcxODI2MTI1NTI4Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIngpKrgpJXgpLDgpKMg4KSV4KWAIOCkq+CkvOCli+CkqCDgpLjgpYHgpLXgpL/gpKfgpL7gpJPgpIIg4KSk4KSVIOCkquCkueClgeCkguCkmuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpK/gpLkg4KSF4KSo4KWB4KSu4KSk4KS/IOCkj+CkquCljeCkuCDgpJXgpYsg4KSr4KS84KWL4KSoIOCkqOCkguCkrOCksCDgpJTgpLAg4KSJ4KSq4KSV4KSw4KSjIOCkhuCkiOCkoeClgCwg4KSV4KWJ4KSyIOCkuOCkleCljeCksOCkv+CkryDgpLngpYgg4KSv4KS+IOCkqOCkueClgOCkgiwg4KSU4KSwIOCkleClieCksiDgpKbgpY3gpLXgpL7gpLDgpL4g4KSV4KSo4KWH4KSV4KWN4KSfIOCkleCkv+Ckr+CkviDgpJfgpK/gpL4g4KSm4KWC4KSw4KS44KWN4oCN4KSlIOCkqOCkguCkrOCksCDgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFBob25lU3RhdGUiIG1zZ2lkPSIxNjM5MjEyNzcxODI2MTI1NTI4Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSJ4KSq4KSV4KSw4KSjIOCkleClgCDgpKvgpLzgpYvgpKgg4KS44KWB4KS14KS/4KSn4KS+4KST4KSCIOCkpOCklSDgpKrgpLngpYHgpILgpJrgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkheCkqOClgeCkruCkpOCkvyDgpJDgpKrgpY3gpLggIOCkleCliyDgpKvgpLzgpYvgpKgg4KSo4KSC4KSs4KSwIOCklOCksCDgpIngpKrgpJXgpLDgpKMg4KSG4KSI4KSh4KWALCDgpJXgpYngpLIg4KS44KSV4KWN4KSw4KS/4KSvIOCkueCliCDgpK/gpL4g4KSo4KS54KWA4KSCLCDgpJTgpLAg4KSV4KWJ4KSyIOCkpuCljeCkteCkvuCksOCkviDgpJXgpKjgpYfgpJXgpY3gpJ8g4KSV4KS/4KSv4KS+IOCkl+Ckr+CkviDgpKbgpYLgpLDgpLjgpY3igI3gpKUg4KSo4KSC4KSs4KSwIOCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dha2VMb2NrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTMxNzMxNDM1MDExNDk1MDE1Ij4i4KSf4KWH4KSs4KSy4KWH4KSfIOCkleCliyDgpKjgpL/gpLfgpY3igI3gpJXgpY3gpLDgpL/gpK8g4KS54KWL4KSo4KWHIOCkuOClhyDgpLDgpYvgpJXgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dha2VMb2NrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTczNDgwMTg3OTQxNDk2MTMwIj4i4KSr4KS84KWL4KSoIOCkleCliyDgpKjgpL/gpLfgpY3igI3gpJXgpY3gpLDgpL/gpK8g4KS54KWL4KSo4KWHIOCkuOClhyDgpLDgpYvgpJXgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193YWtlTG9jayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzMxMTMxOTgyNDQwMDQ0Nzg2OCI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSf4KWH4KSs4KSy4KWH4KSfIOCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJcg4KSu4KWH4KSCIOCkqOCkueClgOCkgiDgpLngpYsg4KSc4KS+4KSo4KWHIOCkuOClhyDgpLDgpYvgpJXgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dha2VMb2NrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODU1OTEwMDY3NzM3MjkyODc1NCI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSr4KS84KWL4KSoIOCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJcg4KSu4KWH4KSCIOCkqOCkueClgOCkgiDgpLngpYvgpKjgpYcg4KS44KWHIOCksOCli+CkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd2FrZUxvY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjczMTEzMTk4MjQ0MDA0NDc4NjgiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSV4KWLIOCkquCljeCksOCkr+Cli+CklyDgpK7gpYfgpIIg4KSo4KS54KWA4KSCIOCkueCliyDgpJzgpL7gpKjgpYcg4KS44KWHIOCksOCli+CkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd2FrZUxvY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NTU5MTAwNjc3MzcyOTI4NzU0Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSr4KS84KWL4KSoIOCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJcg4KSu4KWH4KSCIOCkqOCkueClgOCkgiDgpLngpYvgpKjgpYcg4KS44KWHIOCksOCli+CkleCkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl90cmFuc21pdElyIiBtc2dpZD0iNzU0NTg1ODUwNDIzODUzMDEwNSI+IuCkh+CkguCkq+CkvOCljeCksOCkvuCksOClh+CkoSDgpLjgpILgpJrgpL7gpLDgpL/gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdHJhbnNtaXRJciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNTM1ODMwODg1NDMwNjUyOTE3MCI+IuCkj+CkquCljeCksuCkv+CkleClh+CktuCkqCDgpJXgpYsg4KSf4KWH4KSs4KSy4KWH4KSfIOCkleClhyDgpIfgpILgpKvgpLzgpY3gpLDgpL7gpLDgpYfgpKEg4KSf4KWN4KSw4KS+4KSC4KS44KSu4KWA4KSf4KSwIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdHJhbnNtaXRJciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijc5NTc3NjM3NDUwMjAzMDA3MjUiPiLgpI/gpKrgpY3gpLLgpL/gpJXgpYfgpLbgpKgg4KSV4KWLIOCkq+CkvOCli+CkqCDgpJXgpYcg4KSH4KSC4KSr4KS84KWN4KSw4KS+4KSw4KWH4KShIOCkn+CljeCksOCkvuCkguCkuOCkruClgOCkn+CksCDgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI3ODcwMzQ3MjI2MTYzNTA0MTciPiLgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSa4KS+4KSy4KWCIOCkr+CkviDgpKzgpILgpKYg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZXZpY2VQb3dlciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ5Mjg2MjI0NzA5ODA5NDMyMDYiPiLgpKvgpLzgpYvgpKgg4KSa4KS+4KSy4KWCIOCkr+CkviDgpKzgpILgpKYg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY2ODk4NjI4Nzg5ODQ2MzE4MzEiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkn+Clh+CkrOCksuClh+CknyDgpJrgpL7gpLLgpYIg4KSv4KS+IOCkrOCkguCkpiDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZXZpY2VQb3dlciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjYwMzcwNTczNDg0NjMxMzEwMzIiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkq+CkvOCli+CkqCDgpJrgpL7gpLLgpYIg4KSv4KS+IOCkrOCkguCkpiDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZXZpY2VQb3dlciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY4OTg2Mjg3ODk4NDYzMTgzMSI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSf4KWH4KSs4KSy4KWH4KSfIOCkmuCkvuCksuClgiDgpK/gpL4g4KSs4KSC4KSmIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RldmljZVBvd2VyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjAzNzA1NzM0ODQ2MzEzMTAzMiI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSr4KS84KWL4KSoIOCkmuCkvuCksuClgiDgpK/gpL4g4KSs4KSC4KSmIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZmFjdG9yeVRlc3QiIG1zZ2lkPSIzNzE1MjI1NDkyNjk2NDE2MTg3Ij4i4KSr4KS84KWI4KSV4KWN4oCN4KSf4KWN4KSw4KWAIOCkquCksOClgOCkleCljeCkt+CkoyDgpK7gpYvgpKEg4KSu4KWH4KSCIOCkmuCksuCkvuCkj+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZhY3RvcnlUZXN0IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzOTUyMDU5MzE4MzU5NjUzMDkxIj4i4KSf4KWH4KSs4KSy4KWH4KSfIOCkueCkvuCksOCljeCkoeCkteClh+Ckr+CksCDgpK7gpYfgpIIg4KSq4KWC4KSw4KWN4KSjIOCkquCkueClgeCkguCkmiDgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuClh+CkpOClhyDgpLngpYHgpI8g4KSo4KS/4KSu4KWN4oCN4KSoLeCkuOCljeKAjeCkpOCksCDgpKjgpL/gpLDgpY3gpK7gpL7gpKTgpL4g4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkleClhyDgpLDgpYLgpKog4KSu4KWH4KSCIOCkmuCksuCkvuCkj+Ckgi4g4KSV4KWH4KS14KSyIOCkpOCkreClgCDgpIngpKrgpLLgpKzgpY3igI3gpKcg4KSc4KSsIOCkleCli+CkiCDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSo4KS/4KSw4KWN4KSu4KS+4KSk4KS+IOCkquCksOClgOCkleCljeCkt+CkoyDgpK7gpYvgpKEg4KSu4KWH4KSCIOCkmuCksiDgpLDgpLngpL4g4KS54KWLLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZhY3RvcnlUZXN0IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODEzNjY0NDk5MDMxOTI0NDgwMiI+IuCkq+CkvOCli+CkqCDgpLngpL7gpLDgpY3gpKHgpLXgpYfgpK/gpLAg4KSu4KWH4KSCIOCkquClguCksOCljeCkoyDgpKrgpLngpYHgpILgpJog4KSV4KWAIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpYfgpKTgpYcg4KS54KWB4KSPIOCkqOCkv+CkruCljeKAjeCkqC3gpLjgpY3igI3gpKTgpLAg4KSo4KS/4KSw4KWN4KSu4KS+4KSk4KS+IOCkquCksOClgOCkleCljeCkt+CkoyDgpJXgpYcg4KSw4KWC4KSqIOCkruClh+CkgiDgpJrgpLLgpL7gpI/gpIIuIOCkleClh+CkteCksiDgpKTgpK3gpYAg4KSJ4KSq4KSy4KSs4KWN4oCN4KSnIOCknOCkrCDgpJXgpYvgpIgg4KSr4KS84KWL4KSoIOCkqOCkv+CksOCljeCkruCkvuCkpOCkviDgpKrgpLDgpYDgpJXgpY3gpLfgpKMg4KSu4KWL4KShIOCkruClh+CkgiDgpJrgpLIg4KSw4KS54KS+IOCkueCliy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFdhbGxwYXBlciIgbXNnaWQ9IjY2MjcxOTIzMzMzNzM0NjUxNDMiPiLgpLXgpYngpLLgpKrgpYfgpKrgpLAg4KS44KWH4KSfIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFdhbGxwYXBlciIgbXNnaWQ9IjczNzM0NDc5MjA5Nzc2MjQ3NDUiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkuOCkv+CkuOCljeKAjeCkn+CkriDgpLXgpYngpLLgpKrgpYfgpKrgpLAg4KS44KWH4KSfIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFdhbGxwYXBlciIgbXNnaWQ9IjczNzM0NDc5MjA5Nzc2MjQ3NDUiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkuOCkv+CkuOCljeKAjeCkn+CkriDgpLXgpYngpLLgpKrgpYfgpKrgpLAg4KS44KWH4KSfIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0V2FsbHBhcGVySGludHMiIG1zZ2lkPSIzMjc4NjA4MTY1OTc3NzM2NTM4Ij4i4KSF4KSq4KSo4KWHIOCkteClieCksuCkquClh+CkquCksCDgpJXgpL4g4KSG4KSV4KS+4KSwIOCkj+CkoeCknOCkuOCljeCknyDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRXYWxscGFwZXJIaW50cyIgbXNnaWQ9IjgyMzU3ODQzODQyMjM3MzAwOTEiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkuOCkv+CkuOCljeKAjeCkn+CkriDgpLXgpYngpLLgpKrgpYfgpKrgpLAg4KSG4KSV4KS+4KSwIOCkuOCkguCkleClh+CkpCDgpLjgpYfgpJ8g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0V2FsbHBhcGVySGludHMiIG1zZ2lkPSI4MjM1Nzg0Mzg0MjIzNzMwMDkxIj4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpLjgpL/gpLjgpY3igI3gpJ/gpK4g4KS14KWJ4KSy4KSq4KWH4KSq4KSwIOCkhuCkleCkvuCksCDgpLjgpILgpJXgpYfgpKQg4KS44KWH4KSfIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFzdGVyQ2xlYXIiIG1zZ2lkPSIyMzE1NzUwNDIzMTM5Njk3Mzk3Ij4i4KSr4KS84KWI4KSV4KWN4oCN4KSf4KWN4KSw4KWAIOCkoeCkv+Ckq+CkvOClieCksuCljeKAjeCknyDgpKrgpLAg4KS44KS/4KS44KWN4oCN4KSf4KSuIOCksOClgOCkuOClh+CknyDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYXN0ZXJDbGVhciIgbXNnaWQ9IjM2NjUzODA0OTI2MzM5MTAyMjYiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkuOCkreClgCDgpKHgpYfgpJ/gpL4sIOCkleClieCkqOCljeCkq+CkvOCkv+Ckl+CksOClh+CktuCkqCwg4KSU4KSwIOCkh+CkguCkuOCljeCkn+ClieCksiDgpI/gpKrgpY3gpLgg4KSu4KS/4KSf4KS+4KSV4KSwLCDgpLjgpL/gpLjgpY3gpJ/gpK4g4KSV4KWLIOCkquClguCksOClgCDgpKTgpLDgpLkg4KSJ4KS44KSV4KWAIOCkq+CkvOCliOCkleCljeCkn+CksOClgCDgpLjgpYfgpJ/gpL/gpILgpJcg4KSq4KSwIOCksOClgOCkuOClh+CknyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYXN0ZXJDbGVhciIgbXNnaWQ9IjM2NjUzODA0OTI2MzM5MTAyMjYiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpLjgpK3gpYAg4KSh4KWH4KSf4KS+LCDgpJXgpYngpKjgpY3gpKvgpLzgpL/gpJfgpLDgpYfgpLbgpKgsIOCklOCksCDgpIfgpILgpLjgpY3gpJ/gpYngpLIg4KSQ4KSq4KWN4KS4ICDgpK7gpL/gpJ/gpL7gpJXgpLAsIOCkuOCkv+CkuOCljeCkn+CkriDgpJXgpYsg4KSq4KWC4KSw4KWAIOCkpOCksOCkuSDgpIngpLjgpJXgpYAg4KSr4KS84KWI4KSV4KWN4KSf4KSw4KWAIOCkuOClh+Ckn+Ckv+CkguCklyDgpKrgpLAg4KSw4KWA4KS44KWH4KSfIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0VGltZSIgbXNnaWQ9IjIwMjE2MTQ4Mjk1OTE3NzU2NDYiPiLgpLjgpK7gpK8g4KS44KWH4KSfIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE4OTYzNDE0MzgxNTExNTI4ODEiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkn+Clh+CkrOCksuClh+CknyDgpJXgpYAg4KSY4KSh4KS84KWAIOCkleCkviDgpLjgpK7gpK8g4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE4NTU3MDI3MzA3MzgwMjAiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkq+CkvOCli+CkqCDgpJXgpYAg4KSY4KSh4KS84KWAIOCkleCkviDgpLjgpK7gpK8g4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTg5NjM0MTQzODE1MTE1Mjg4MSI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSf4KWH4KSs4KSy4KWH4KSfIOCkleClgCDgpJjgpKHgpLzgpYAg4KSV4KS+IOCkuOCkruCkryDgpKzgpKbgpLLgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTg1NTcwMjczMDczODAyMCI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSr4KS84KWL4KSoIOCkleClgCDgpJjgpKHgpLzgpYAg4KSV4KS+IOCkuOCkruCkryDgpKzgpKbgpLLgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFRpbWVab25lIiBtc2dpZD0iMjk0NTA3OTgwMTAxMzA3NzM0MCI+IuCkuOCkruCkryDgpJXgpY3gpLfgpYfgpKTgpY3gpLAg4KS44KWH4KSfIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNjc2OTgzNzEyMzE1ODI3NjQ1Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSV4KS+IOCkuOCkruCkryDgpJXgpY3gpLfgpYfgpKTgpY3gpLAg4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZVpvbmUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDk5OTQzNDg4NDM2NjMzMzk4Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSV4KS+IOCkuOCkruCkryDgpJXgpY3gpLfgpYfgpKTgpY3gpLAg4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZVpvbmUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE2NzY5ODM3MTIzMTU4Mjc2NDUiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkn+Clh+CkrOCksuClh+CknyDgpJXgpL4g4KS44KSu4KSvIOCkleCljeCkt+Clh+CkpOCljeCksCDgpKzgpKbgpLLgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lWm9uZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ0OTk5NDM0ODg0MzY2MzMzOTgiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkn+Clh+CkrOCksuClh+CknyDgpJXgpL4g4KS44KSu4KSvIOCkleCljeCkt+Clh+CkpOCljeCksCDgpKzgpKbgpLLgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjQ4MjkyNjIzNDk2OTEzODY5ODYiPiLgpJbgpL7gpKTgpL4g4KSq4KWN4KSw4KSs4KSC4KSn4KSVIOCkuOClh+CkteCkviDgpJXgpYcg4KSw4KWC4KSqIOCkruClh+CkgiDgpJXgpL7gpLDgpY3gpK8g4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjb3VudE1hbmFnZXJTZXJ2aWNlIiBtc2dpZD0iMTk0ODQ1NTU1MjMzMzYxNTk1NCI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSW4KS+4KSk4KS+IOCkquCljeCksOCkruCkvuCko+CkleCli+CkgiDgpJXgpYsg4KSV4KWJ4KSyIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjE5NDg0NTU1NTIzMzM2MTU5NTQiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkluCkvuCkpOCkviDgpKrgpY3gpLDgpK7gpL7gpKPgpJXgpYvgpIIg4KSV4KWLIOCkleClieCksiDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldEFjY291bnRzIiBtc2dpZD0iMTA4Njc5NTQ2Nzc2MDEyMjExNCI+IuCkieCkquCkleCksOCkoyDgpKrgpLAg4KSW4KS+4KSk4KWHIOCkouClguCkguCkouClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNzQxNDk2NTM0NzY5NjYwMDI3Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSm4KWN4KS14KS+4KSw4KS+IOCknOCljeCknuCkvuCkpCDgpJbgpL7gpKTgpYvgpIIg4KSV4KWAIOCkuOClguCkmuClgCDgpKrgpY3gpLDgpL7gpKrgpY3igI3gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkh+CkuOCkruClh+CkgiDgpLXgpYcg4KSW4KS+4KSk4KWHIOCktuCkvuCkruCkv+CksiDgpLngpYsg4KS44KSV4KSk4KWHIOCkueCliOCkgiDgpJzgpL/gpKjgpY3igI3gpLngpYfgpIIg4KSG4KSq4KSV4KWHIOCkpuCljeCkteCkvuCksOCkviDgpIfgpILgpLjgpY3igI3gpJ/gpYngpLIg4KSV4KS/4KSPIOCkl+CkjyDgpI/gpKrgpY3gpLgg4KSo4KWHIOCkrOCkqOCkvuCkr+CkviDgpLngpYguIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QWNjb3VudHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDQ4MzE2ODIyNDUxODA3MzgyIj4i4KSP4KSq4KWN4KS4IOCkleCliyDgpKvgpLzgpYvgpKgg4KSm4KWN4KS14KS+4KSw4KS+IOCknOCljeCknuCkvuCkpCDgpJbgpL7gpKTgpYvgpIIg4KSV4KWAIOCkuOClguCkmuClgCDgpKrgpY3gpLDgpL7gpKrgpY3igI3gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkh+CkuOCkruClh+CkgiDgpLXgpYcg4KSW4KS+4KSk4KWHIOCktuCkvuCkruCkv+CksiDgpLngpYsg4KS44KSV4KSk4KWHIOCkueCliOCkgiDgpJzgpL/gpKjgpY3igI3gpLngpYfgpIIg4KSG4KSq4KSV4KWHIOCkpuCljeCkteCkvuCksOCkviDgpIfgpILgpLjgpY3igI3gpJ/gpYngpLIg4KSV4KS/4KSPIOCkl+CkjyDgpI/gpKrgpY3gpLgg4KSo4KWHIOCkrOCkqOCkvuCkr+CkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QWNjb3VudHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI3NDE0OTY1MzQ3Njk2NjAwMjciPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSm4KWN4KS14KS+4KSw4KS+IOCknOCljeCknuCkvuCkpCDgpJbgpL7gpKTgpYvgpIIg4KSV4KWAIOCkuOClguCkmuClgCDgpKrgpY3gpLDgpL7gpKrgpY3igI3gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkh+CkuOCkruClh+CkgiDgpLXgpYcg4KSW4KS+4KSk4KWHIOCktuCkvuCkruCkv+CksiDgpLngpYsg4KS44KSV4KSk4KWHIOCkueCliOCkgiDgpJzgpL/gpKjgpY3igI3gpLngpYfgpIIg4KSG4KSq4KSV4KWHIOCkpuCljeCkteCkvuCksOCkviDgpIfgpILgpLjgpY3igI3gpJ/gpYngpLIg4KSV4KS/4KSPIOCkl+CkjyDgpJDgpKrgpY3gpLggIOCkqOClhyDgpKzgpKjgpL7gpK/gpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ0ODMxNjgyMjQ1MTgwNzM4MiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkq+CkvOCli+CkqCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSc4KWN4KSe4KS+4KSkIOCkluCkvuCkpOCli+CkgiDgpJXgpYAg4KS44KWC4KSa4KWAIOCkquCljeCksOCkvuCkquCljeKAjeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS44KSu4KWH4KSCIOCkteClhyDgpJbgpL7gpKTgpYcg4KS24KS+4KSu4KS/4KSyIOCkueCliyDgpLjgpJXgpKTgpYcg4KS54KWI4KSCIOCknOCkv+CkqOCljeKAjeCkueClh+CkgiDgpIbgpKrgpJXgpYcg4KSm4KWN4KS14KS+4KSw4KS+IOCkh+CkguCkuOCljeKAjeCkn+ClieCksiDgpJXgpL/gpI8g4KSX4KSPIOCkkOCkquCljeCkuCAg4KSo4KWHIOCkrOCkqOCkvuCkr+CkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hdXRoZW50aWNhdGVBY2NvdW50cyIgbXNnaWQ9IjUyNjU5MDg0ODExNzI3MzY5MzMiPiLgpJbgpL7gpKTgpYcg4KSs4KSo4KS+4KSP4KSCIOCklOCksCDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KS44KWH4KSfIOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2F1dGhlbnRpY2F0ZUFjY291bnRzIiBtc2dpZD0iNTQ3MjEyNDI5NjkwODk3NzI2MCI+IuCkj+CkquCljeKAjeCkv+CksuCkleClh+CktuCkqCDgpJXgpYsg4KSW4KS+4KSk4KS+IOCkrOCkqOCkvuCkqOClhyDgpJTgpLAg4KSJ4KSo4KSV4KWHIOCkquCkvuCkuOCkteCksOCljeCkoSDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHIOCklOCksCDgpLjgpYfgpJ8g4KSV4KSw4KSo4KWHIOCkuOCkueCkv+CkpCwg4KSW4KS+4KSk4KS+IOCkquCljeCksOCkrOCkguCkp+CklSDgpJXgpYAg4KSW4KS+4KSk4KS+IOCkquCljeCksOCkruCkvuCko+CklSDgpJXgpY3gpLfgpK7gpKTgpL7gpJPgpIIg4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFjY291bnRzIiBtc2dpZD0iNDk4MzEyNjMwNDc1NzE3NzMwNSI+IuCkluCkvuCkpOClhyDgpJzgpYvgpKHgpYfgpIIg4KSv4KS+IOCkqOCkv+CkleCkvuCksuClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFjY291bnRzIiBtc2dpZD0iODY5ODI5NTYyNTQ4ODI5MjUwNiI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSW4KS+4KSk4KWHIOCknOCli+CkoeCkvOCkqOCkviDgpJTgpLAg4KSo4KS/4KSV4KS+4KSy4KSo4KS+IOCklOCksCDgpIngpKjgpJXgpYcg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkueCkn+CkvuCkqOClhyDgpJzgpYjgpLjgpYcg4KSV4KS+4KSw4KWN4KSvIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFjY291bnRzIiBtc2dpZD0iODY5ODI5NTYyNTQ4ODI5MjUwNiI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSW4KS+4KSk4KWHIOCknOCli+CkoeCkvOCkqOCkviDgpJTgpLAg4KSo4KS/4KSV4KS+4KSy4KSo4KS+IOCklOCksCDgpIngpKjgpJXgpYcg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkueCkn+CkvuCkqOClhyDgpJzgpYjgpLjgpYcg4KSV4KS+4KSw4KWN4KSvIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXNlQ3JlZGVudGlhbHMiIG1zZ2lkPSIyMzU0ODEzOTYxNjM4Nzc2NDIiPiLgpIngpKrgpJXgpLDgpKMg4KSq4KSwIOCkluCkvuCkpOCli+CkgiDgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZUNyZWRlbnRpYWxzIiBtc2dpZD0iNzk4NDIyNzE0NzQwMzM0NjQyMiI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSq4KWN4KSw4KSu4KS+4KSj4KWA4KSV4KSw4KSjIOCkn+Cli+CkleCkqCDgpJXgpL4g4KSF4KSo4KWB4KSw4KWL4KSnIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZUNyZWRlbnRpYWxzIiBtc2dpZD0iNzk4NDIyNzE0NzQwMzM0NjQyMiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkquCljeCksOCkruCkvuCko+ClgOCkleCksOCkoyDgpJ/gpYvgpJXgpKgg4KSV4KS+IOCkheCkqOClgeCksOCli+CkpyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjQ5NTEwMjc5NjQzNDg5NzQ3NzMiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSV4KSo4KWH4KSV4KWN4oCN4KS24KSoIOCkpuClh+CkluClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjgzMTg5NjQ0MjQ2NzU5NjA5NzUiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkqOClh+Ckn+CkteCksOCljeCklSDgpJXgpKjgpYfgpJXgpY3igI3gpLbgpKgg4KSV4KWHIOCkrOCkvuCksOClhyDgpK7gpYfgpIIg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkpuClh+CkluCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIOCknOCliOCkuOClhyDgpJXgpYzgpKgg4KS44KWHIOCkqOClh+Ckn+CkteCksOCljeCklSDgpK7gpYzgpJzgpYLgpKYg4KS54KWI4KSCIOCklOCksCDgpJXgpKjgpYfgpJXgpY3igI3gpJ8g4KS54KWI4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjgzMTg5NjQ0MjQ2NzU5NjA5NzUiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSV4KSo4KWH4KSV4KWN4oCN4KS24KSoIOCkleClhyDgpKzgpL7gpLDgpYcg4KSu4KWH4KSCIOCknOCkvuCkqOCkleCkvuCksOClgCDgpKbgpYfgpJbgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCDgpJzgpYjgpLjgpYcg4KSV4KWM4KSoIOCkuOClhyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSu4KWM4KSc4KWC4KSmIOCkueCliOCkgiDgpJTgpLAg4KSV4KSo4KWH4KSV4KWN4oCN4KSfIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iODAxODc1ODEzNjQwNDMyMzY1OCI+IuCkquClguCksOCljeCkoyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSq4KS54KWB4KSC4KSaIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY3JlYXRlTmV0d29ya1NvY2tldHMiIG1zZ2lkPSIzNDAzMDYyMTg3Nzc5NzI0MTg1Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KWJ4KSV4KWH4KSfIOCkrOCkqOCkvuCkqOClhyDgpJTgpLAg4KSV4KS44KWN4oCN4KSf4KSuIOCkqOClh+Ckn+CkteCksOCljeCklSDgpKrgpY3gpLDgpYvgpJ/gpYvgpJXgpYngpLIg4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSs4KWN4KSw4KS+4KSJ4KSc4KS84KSwIOCklOCksCDgpIXgpKjgpY3igI3gpK8g4KSP4KSq4KWN4KS4IOCkh+CkguCkn+CksOCkqOClh+CknyDgpJXgpYsg4KSh4KWH4KSf4KS+IOCkreClh+CknOCkqOClhyDgpJXgpYcg4KS44KS+4KSn4KSoIOCkieCkquCksuCkrOCljeKAjeCkpyDgpJXgpLDgpL7gpKTgpYcg4KS54KWI4KSCLCDgpKTgpL7gpJXgpL8g4KSH4KSC4KSf4KSw4KSo4KWH4KSfIOCkleCliyDgpKHgpYfgpJ/gpL4g4KSt4KWH4KSc4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSH4KS4IOCkheCkqOClgeCkruCkpOCkvyDgpJXgpYAg4KSG4KS14KS24KWN4oCN4KSv4KSV4KSk4KS+IOCkqOCkueClgOCkgiDgpLngpYsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY3JlYXRlTmV0d29ya1NvY2tldHMiIG1zZ2lkPSIzNDAzMDYyMTg3Nzc5NzI0MTg1Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkuOClieCkleClh+CknyDgpKzgpKjgpL7gpKjgpYcg4KSU4KSwIOCkleCkuOCljeKAjeCkn+CkriDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSq4KWN4KSw4KWL4KSf4KWL4KSV4KWJ4KSyIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkrOCljeCksOCkvuCkieCknOCkvOCksCDgpJTgpLAg4KSF4KSo4KWN4oCN4KSvIOCkkOCkquCljeCkuCAg4KSH4KSC4KSf4KSw4KSo4KWH4KSfIOCkleCliyDgpKHgpYfgpJ/gpL4g4KSt4KWH4KSc4KSo4KWHIOCkleClhyDgpLjgpL7gpKfgpKgg4KSJ4KSq4KSy4KSs4KWN4oCN4KSnIOCkleCksOCkvuCkpOClhyDgpLngpYjgpIIsIOCkpOCkvuCkleCkvyDgpIfgpILgpJ/gpLDgpKjgpYfgpJ8g4KSV4KWLIOCkoeClh+Ckn+CkviDgpK3gpYfgpJzgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpIfgpLgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkleClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJXgpKTgpL4g4KSo4KS54KWA4KSCIOCkueCliy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MDU2NjAxNTk2NzU3NTE4OTYiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KWH4KSf4KS/4KSC4KSXIOCklOCksCDgpJ/gpY3gpLDgpYjgpKvgpLzgpL/gpJUg4KSs4KSm4KSy4KWH4KSCL+CksOCli+CkleClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MzMzNzk4ODg2NDEyNzE0MTkzIj4i4KSP4KSq4KWN4KS4IOCkleCliyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KWH4KSf4KS/4KSC4KSXIOCkrOCkpuCksuCkqOClhyDgpJTgpLAg4KS44KSt4KWAIOCkn+CljeCksOCliOCkq+CkvOCkv+CklSDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSV4KWLIOCkrOCkvuCkp+Ckv+CkpCDgpJTgpLAg4KSo4KS/4KSw4KWA4KSV4KWN4KS34KSjIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILCDgpIngpKbgpL7gpLngpLDgpKMg4KSV4KWHIOCksuCkv+CkjyDgpJXgpL/gpLjgpYAgQVBOIOCkleCkviDgpKrgpY3gpLDgpYngpJXgpY3gpLjgpYAg4KSU4KSwIOCkquCli+CksOCljeCknyDgpKzgpKbgpLLgpKjgpL4uIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpI/gpKrgpY3gpLgg4KSG4KSq4KSV4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCDgpJXgpYcg4KSs4KS/4KSo4KS+IOCkqOClh+Ckn+CkteCksOCljeCklSDgpKrgpYjgpJXgpYfgpJ8g4KSV4KWAIOCkqOCkv+Ckl+CksOCkvuCkqOClgCDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgiwg4KSJ4KSo4KWN4KS54KWH4KSCIOCksOClgOCkoeCkvuCkr+CksOClh+CkleCljeCknywg4KSv4KS+IOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUFwblNldHRpbmdzIiBtc2dpZD0iNTMzMzc5ODg4NjQxMjcxNDE5MyI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkqOClh+Ckn+CkteCksOCljeCklSDgpLjgpYfgpJ/gpL/gpILgpJcg4KSs4KSm4KSy4KSo4KWHIOCklOCksCDgpLjgpK3gpYAg4KSf4KWN4KSw4KWI4KSr4KS84KS/4KSVIOCkqOClh+Ckn+CkteCksOCljeCklSDgpJXgpYsg4KSs4KS+4KSn4KS/4KSkIOCklOCksCDgpKjgpL/gpLDgpYDgpJXgpY3gpLfgpKMg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgsIOCkieCkpuCkvuCkueCksOCkoyDgpJXgpYcg4KSy4KS/4KSPIOCkleCkv+CkuOClgCBBUE4g4KSV4KS+IOCkquCljeCksOClieCkleCljeCkuOClgCDgpJTgpLAg4KSq4KWL4KSw4KWN4KSfIOCkrOCkpuCksuCkqOCkvi4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCAg4KSG4KSq4KSV4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCDgpJXgpYcg4KSs4KS/4KSo4KS+IOCkqOClh+Ckn+CkteCksOCljeCklSDgpKrgpYjgpJXgpYfgpJ8g4KSV4KWAIOCkqOCkv+Ckl+CksOCkvuCkqOClgCDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgiwg4KSJ4KSo4KWN4KS54KWH4KSCIOCksOClgOCkoeCkvuCkr+CksOClh+CkleCljeCknywg4KSv4KS+IOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLAg4KS44KSV4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZU5ldHdvcmtTdGF0ZSIgbXNnaWQ9Ijk1ODg4NDI5MTQ1NDMyNzMwOSI+IuCkqOClh+Ckn+CkteCksOCljeCklSDgpJXgpKjgpYfgpJXgpY3igI3gpJ/gpL/gpLXgpL/gpJ/gpYAg4KSs4KSm4KSy4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlTmV0d29ya1N0YXRlIiBtc2dpZD0iNjc4OTEyMzkxMjQ3NjQxNjIxNCI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkleCkqOClh+CkleCljeCkn+Ckv+CkteCkv+Ckn+ClgCDgpJXgpYAg4KS44KWN4KSl4KS/4KSk4KS/IOCkrOCkpuCksuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZU5ldHdvcmtTdGF0ZSIgbXNnaWQ9IjY3ODkxMjM5MTI0NzY0MTYyMTQiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSV4KSo4KWH4KSV4KWN4KSf4KS/4KS14KS/4KSf4KWAIOCkleClgCDgpLjgpY3gpKXgpL/gpKTgpL8g4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VUZXRoZXJTdGF0ZSIgbXNnaWQ9IjU5NTI1ODQ5NjQzNzMwMTc5NjAiPiLgpJ/gpYfgpKbgpLAg4KSV4KWAIOCkl+CkiCDgpJXgpKjgpYfgpJXgpY3igI3gpJ/gpL/gpLXgpL/gpJ/gpYAg4KSs4KSm4KSy4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlVGV0aGVyU3RhdGUiIG1zZ2lkPSIxNTI0NDQxMzQ0NDEyMzE5NzgwIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpJ/gpYfgpKbgpLAg4KSV4KWAIOCkl+CkiCDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSV4KSo4KWH4KSV4KWN4oCN4KSf4KS/4KS14KS/4KSf4KWAIOCkleClgCDgpLjgpY3igI3gpKXgpL/gpKTgpL8g4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlVGV0aGVyU3RhdGUiIG1zZ2lkPSIxNTI0NDQxMzQ0NDEyMzE5NzgwIj4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpJ/gpYfgpKbgpLAg4KSV4KWAIOCkl+CkiCDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSV4KSo4KWH4KSV4KWN4oCN4KSf4KS/4KS14KS/4KSf4KWAIOCkleClgCDgpLjgpY3igI3gpKXgpL/gpKTgpL8g4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSIxNDAwNjY2MDEyNjcxNjQ4NzQxIj4i4KSq4KWD4KS34KWN4KSg4KSt4KWC4KSu4KS/IOCkoeClh+Ckn+CkviDgpIngpKrgpK/gpYvgpJcg4KS44KWH4KSf4KS/4KSC4KSXIOCkrOCkpuCksuClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUJhY2tncm91bmREYXRhU2V0dGluZyIgbXNnaWQ9IjUzNDc3Mjk1Nzg0Njg3NDQzNzkiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkquClg+Ckt+CljeCkoOCkreClguCkruCkvyDgpKHgpYfgpJ/gpL4g4KSJ4KSq4KSv4KWL4KSXIOCkuOClh+Ckn+Ckv+CkguCklyDgpKzgpKbgpLLgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSI1MzQ3NzI5NTc4NDY4NzQ0Mzc5Ij4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpKrgpYPgpLfgpY3gpKDgpK3gpYLgpK7gpL8g4KSh4KWH4KSf4KS+IOCkieCkquCkr+Cli+CklyDgpLjgpYfgpJ/gpL/gpILgpJcg4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MjAyMDEyOTQ5MjQ3MDQwMDExIj4iV2ktRmkg4KSV4KSo4KWH4KSV4KWN4oCN4KS24KSoIOCkpuClh+CkluClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1dpZmlTdGF0ZSIgbXNnaWQ9IjUwMDI3OTgwNzczODc4MDM3MjYiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIFdpLUZpIOCkqOClh+Ckn+CkteCksOCljeCklSDgpJXgpYcg4KSs4KS+4KSw4KWHIOCkruClh+CkgiDgpJzgpL7gpKjgpJXgpL7gpLDgpYAsIOCknOCliOCkuOClhyBXSS1GaSDgpLjgpJXgpY3gpLfgpK4g4KS54KWIIOCkr+CkviDgpKjgpLngpYDgpIIg4KSU4KSwIOCkleCkqOClh+CkleCljeKAjeCknyDgpJXgpL/gpI8g4KSX4KSPIFdpLUZpIOCkieCkquCkleCksOCko+Cli+CkgiDgpJXgpYcg4KSo4KS+4KSuLCDgpKbgpYfgpJbgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MDAyNzk4MDc3Mzg3ODAzNzI2Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsgV2ktRmkg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkleClhyDgpKzgpL7gpLDgpYcg4KSu4KWH4KSCIOCknOCkvuCkqOCkleCkvuCksOClgCwg4KSc4KWI4KS44KWHIFdJLUZpIOCkuOCkleCljeCkt+CkriDgpLngpYgg4KSv4KS+IOCkqOCkueClgOCkgiDgpJTgpLAg4KSV4KSo4KWH4KSV4KWN4oCN4KSfIOCkleCkv+CkjyDgpJfgpI8gV2ktRmkg4KSJ4KSq4KSV4KSw4KSj4KWL4KSCIOCkleClhyDgpKjgpL7gpK4sIOCkpuClh+CkluCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2lmaVN0YXRlIiBtc2dpZD0iNjU1MDY0MTE4ODc0OTEyODAzNSI+IldpLUZpIOCkuOClhyDgpJXgpKjgpYfgpJXgpY3igI3gpJ8g4KSU4KSwIOCkoeCkv+CkuOCljeKAjeCkleCkqOClh+CkleCljeKAjeCknyDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI3MTM3OTUwMjk3Mzg2MTI3NTMzIj4i4KSP4KSq4KWN4KS4IOCkleCliyBXaS1GaSDgpKrgpLngpYHgpILgpJog4KSs4KS/4KSC4KSm4KWB4KST4KSCIOCkuOClhyDgpJXgpKjgpYfgpJXgpY3gpJ8g4KSU4KSwIOCkoeCkv+CkuOCljeCkleCkqOClh+CkleCljeCknyDgpJXgpLDgpKjgpYcg4KSU4KSwIFdpLUZpIOCkqOClh+Ckn+CkteCksOCljeCklSDgpJXgpYcg4KSy4KS/4KSPIOCkieCkquCkleCksOCkoyDgpJXgpYngpKjgpY3gpKvgpLzgpL/gpJfgpLDgpYfgpLbgpKgg4KSu4KWH4KSCIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI3MTM3OTUwMjk3Mzg2MTI3NTMzIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsgV2ktRmkg4KSq4KS54KWB4KSC4KSaIOCkrOCkv+CkguCkpuClgeCkk+CkgiDgpLjgpYcg4KSV4KSo4KWH4KSV4KWN4KSfIOCklOCksCDgpKHgpL/gpLjgpY3gpJXgpKjgpYfgpJXgpY3gpJ8g4KSV4KSw4KSo4KWHIOCklOCksCBXaS1GaSDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSV4KWHIOCksuCkv+CkjyDgpIngpKrgpJXgpLDgpKMg4KSV4KWJ4KSo4KWN4KSr4KS84KS/4KSX4KSw4KWH4KS24KSoIOCkruClh+CkgiDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIG1zZ2lkPSIxMzY4MjUzODcxNDgzMjU0Nzg0Ij4iV2ktRmkg4KSu4KSy4KWN4oCN4KSf4KWA4KSV4KS+4KS44KWN4oCN4KSfIOCkquCljeCksOCkvuCkquCljeCkpOCkvyDgpJXgpYsg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzk2OTc3NDAyMTI1NjMzNjU0OCI+IuCkj+CkquCljeCkuCDgpJXgpYsgV2ktRmkg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkquCksCDgpK7gpLLgpY3gpJ/gpYDgpJXgpL7gpLjgpY3gpJ8g4KSq4KSk4KWHIOCkleClhyDgpIngpKrgpK/gpYvgpJcg4KS44KWHIOCkleClh+CkteCksiDgpIbgpKrgpJXgpYcg4KSf4KWH4KSs4KSy4KWH4KSfIOCkquCksCDgpLngpYAg4KSo4KS54KWA4KSCLCDgpKzgpLLgpY3gpJXgpL8g4KS44KSt4KWAIOCkieCkquCkleCksOCko+Cli+CkgiDgpKrgpLAg4KSt4KWH4KSc4KWHIOCkl+CkjyDgpKrgpYjgpJXgpYfgpJ8g4KSq4KWN4KSw4KS+4KSq4KWN4oCN4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpK/gpLkg4KSX4KWI4KSwLeCkruCksuCljeCkn+ClgOCkleCkvuCkuOCljeCknyDgpK7gpYvgpKEg4KS44KWHIOCkheCkp+Ckv+CklSDgpKrgpL7gpLXgpLAg4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTE5NDk3MDYwMjUzNDk5MjYiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIFdpLUZpIOCkqOClh+Ckn+CkteCksOCljeCklSDgpKrgpLAg4KSu4KSy4KWN4KSf4KWA4KSV4KS+4KS44KWN4KSfIOCkquCkpOClhyDgpJXgpYcg4KSJ4KSq4KSv4KWL4KSXIOCkuOClhyDgpJXgpYfgpLXgpLIg4KSG4KSq4KSV4KWHIOCkq+CkvOCli+CkqCDgpKrgpLAg4KS54KWAIOCkqOCkueClgOCkgiwg4KSs4KSy4KWN4KSV4KS/IOCkuOCkreClgCDgpIngpKrgpJXgpLDgpKPgpYvgpIIg4KSq4KSwIOCkreClh+CknOClhyDgpJfgpI8g4KSq4KWI4KSV4KWH4KSfIOCkquCljeCksOCkvuCkquCljeKAjeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkl+CliOCksC3gpK7gpLLgpY3gpJ/gpYDgpJXgpL7gpLjgpY3gpJ8g4KSu4KWL4KShIOCkuOClhyDgpIXgpKfgpL/gpJUg4KSq4KS+4KS14KSwIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijc5Njk3NzQwMjEyNTYzMzY1NDgiPiLgpJDgpKrgpY3gpLggIOCkleCliyBXaS1GaSDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSq4KSwIOCkruCksuCljeCkn+ClgOCkleCkvuCkuOCljeCknyDgpKrgpKTgpYcg4KSV4KWHIOCkieCkquCkr+Cli+CklyDgpLjgpYcg4KSV4KWH4KS14KSyIOCkhuCkquCkleClhyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSq4KSwIOCkueClgCDgpKjgpLngpYDgpIIsIOCkrOCksuCljeCkleCkvyDgpLjgpK3gpYAg4KSJ4KSq4KSV4KSw4KSj4KWL4KSCIOCkquCksCDgpK3gpYfgpJzgpYcg4KSX4KSPIOCkquCliOCkleClh+CknyDgpKrgpY3gpLDgpL7gpKrgpY3igI3gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkr+CkuSDgpJfgpYjgpLAt4KSu4KSy4KWN4KSf4KWA4KSV4KS+4KS44KWN4KSfIOCkruCli+CkoSDgpLjgpYcg4KSF4KSn4KS/4KSVIOCkquCkvuCkteCksCDgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjg1MTk0OTcwNjAyNTM0OTkyNiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIFdpLUZpIOCkqOClh+Ckn+CkteCksOCljeCklSDgpKrgpLAg4KSu4KSy4KWN4KSf4KWA4KSV4KS+4KS44KWN4KSfIOCkquCkpOClhyDgpJXgpYcg4KSJ4KSq4KSv4KWL4KSXIOCkuOClhyDgpJXgpYfgpLXgpLIg4KSG4KSq4KSV4KWHIOCkq+CkvOCli+CkqCDgpKrgpLAg4KS54KWAIOCkqOCkueClgOCkgiwg4KSs4KSy4KWN4KSV4KS/IOCkuOCkreClgCDgpIngpKrgpJXgpLDgpKPgpYvgpIIg4KSq4KSwIOCkreClh+CknOClhyDgpJfgpI8g4KSq4KWI4KSV4KWH4KSfIOCkquCljeCksOCkvuCkquCljeKAjeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSv4KS5IOCkl+CliOCksC3gpK7gpLLgpY3gpJ/gpYDgpJXgpL7gpLjgpY3gpJ8g4KSu4KWL4KShIOCkuOClhyDgpIXgpKfgpL/gpJUg4KSq4KS+4KS14KSwIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JsdWV0b290aEFkbWluIiBtc2dpZD0iNjAwNjk2NzM3MzkzNTkyNjY1OSI+IkJsdWV0b290aCDgpLjgpYfgpJ/gpL/gpILgpJcg4KSq4KSwIOCkquCkueClgeCkguCkmuClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aEFkbWluIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2OTIxMTc3NDcxNzQ4ODgyMTM3Ij4i4KSV4KS/4KS44KWAIOCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KS44KWN4oCN4KSl4KS+4KSo4KWA4KSvIEJsdWV0b290aCDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSV4KWJ4KSo4KWN4oCN4KSr4KS84KS/4KSX4KSwIOCkleCksOCkqOClhyDgpJXgpYAg4KSU4KSwIOCksOCkv+CkruCli+CknyDgpIngpKrgpJXgpLDgpKPgpYvgpIIg4KSV4KWHIOCkuOCkvuCkpSDgpJbgpYvgpJzgpKjgpYcg4KSU4KSwIOCkr+ClgeCkl+CljeKAjeCkruCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhBZG1pbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MzE2ODIxNTkzMzE1NDIxMzciPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkuOCljeKAjeCkpeCkvuCkqOClgOCkryBCbHVldG9vdGgg4KSr4KS84KWL4KSoIOCkleClieCkqOCljeKAjeCkq+CkvOCkv+Ckl+CksCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCwg4KSU4KSwIOCksOCkv+CkruCli+CknyDgpIngpKrgpJXgpLDgpKPgpYvgpIIg4KSV4KWHIOCkuOCkvuCkpSDgpJbgpYvgpJzgpKjgpYcg4KSU4KSwIOCkr+ClgeCkl+CljeKAjeCkruCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhBZG1pbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjkyMTE3NzQ3MTc0ODg4MjEzNyI+IuCkleCkv+CkuOClgCDgpJDgpKrgpY3gpLgg4KSV4KWLIOCkuOCljeKAjeCkpeCkvuCkqOClgOCkryBCbHVldG9vdGgg4KSf4KWH4KSs4KSy4KWH4KSfIOCkleClieCkqOCljeKAjeCkq+CkvOCkv+Ckl+CksCDgpJXgpLDgpKjgpYcg4KSV4KWAIOCklOCksCDgpLDgpL/gpK7gpYvgpJ8g4KSJ4KSq4KSV4KSw4KSj4KWL4KSCIOCkleClhyDgpLjgpL7gpKUg4KSW4KWL4KSc4KSo4KWHIOCklOCksCDgpK/gpYHgpJfgpY3igI3gpK7gpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4OTMxNjgyMTU5MzMxNTQyMTM3Ij4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpLjgpY3igI3gpKXgpL7gpKjgpYDgpK8gQmx1ZXRvb3RoIOCkq+CkvOCli+CkqCDgpJXgpYngpKjgpY3igI3gpKvgpLzgpL/gpJfgpLAg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgsIOCklOCksCDgpLDgpL/gpK7gpYvgpJ8g4KSJ4KSq4KSV4KSw4KSj4KWL4KSCIOCkleClhyDgpLjgpL7gpKUg4KSW4KWL4KSc4KSo4KWHIOCklOCksCDgpK/gpYHgpJfgpY3igI3gpK7gpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGhQcml2IiBtc2dpZD0iNDAwOTQ5NDI0NjAwOTUxMzgyOCI+IuCkj+CkquCljeKAjeCksuCkv+CkleClh+CktuCkqCDgpJXgpYcg4KSm4KWN4KS14KS+4KSw4KS+IEJsdWV0b290aCDgpK/gpYHgpJfgpY3igI3gpK7gpKgg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhQcml2IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MDQ1NzM1MTkzNDE3NDY4ODU3Ij4i4KSP4KSq4KWN4oCN4KSy4KS/4KSV4KWH4KS24KSoIOCkleCliyDgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSV4KWHIOCkh+CkguCkn+CksOCliOCkleCljeCktuCkqCDgpJXgpYcg4KSs4KS/4KSo4KS+IOCkpuClguCksOCkuOCljeKAjeCkpSDgpIngpKrgpJXgpLDgpKPgpYvgpIIg4KSV4KWHIOCkuOCkvuCkpSDgpK/gpYHgpJfgpY3igI3gpK7gpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoUHJpdiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgwNDU3MzUxOTM0MTc0Njg4NTciPiLgpI/gpKrgpY3igI3gpLLgpL/gpJXgpYfgpLbgpKgg4KSV4KWLIOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpJXgpYcg4KSH4KSC4KSf4KSw4KWI4KSV4KWN4KS24KSoIOCkleClhyDgpKzgpL/gpKjgpL4g4KSm4KWC4KSw4KS44KWN4oCN4KSlIOCkieCkquCkleCksOCko+Cli+CkgiDgpJXgpYcg4KS44KS+4KSlIOCkr+ClgeCkl+CljeKAjeCkruCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1dpbWF4U3RhdGUiIG1zZ2lkPSI0MTk1OTA3MDEwNjEwMjA1NzAzIj4iV2lNQVgg4KS44KWHIOCkleCkqOClh+CkleCljeCknyDgpJTgpLAg4KSh4KS/4KS44KWN4KSV4KSo4KWH4KSV4KWN4KSfIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1dpbWF4U3RhdGUiIG1zZ2lkPSI2MzYwMTAyODc3MjYxOTc4ODg3Ij4i4KSP4KSq4KWN4KS4IOCkleCliyBXaU1BWCDgpLjgpJXgpY3gpLfgpK4g4KS54KWIIOCkr+CkviDgpKjgpLngpYDgpIIg4KSU4KSwIOCkleCkqOClh+CkleCljeKAjeCknyDgpJXgpL/gpI8g4KSX4KSPIOCkleCkv+CkuOClgCBXaU1BWCDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSV4KWHIOCkrOCkvuCksOClhyDgpK7gpYfgpIIg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaW1heFN0YXRlIiBtc2dpZD0iNjM2MDEwMjg3NzI2MTk3ODg4NyI+IuCkkOCkquCljeCkuCAg4KSV4KWLIFdpTUFYIOCkuOCkleCljeCkt+CkriDgpLngpYgg4KSv4KS+IOCkqOCkueClgOCkgiDgpJTgpLAg4KSV4KSo4KWH4KSV4KWN4oCN4KSfIOCkleCkv+CkjyDgpJfgpI8g4KSV4KS/4KS44KWAIFdpTUFYIOCkqOClh+Ckn+CkteCksOCljeCklSDgpJXgpYcg4KSs4KS+4KSw4KWHIOCkruClh+CkgiDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2ltYXhTdGF0ZSIgbXNnaWQ9IjI0MDUwNDIyNjcxMzE0OTY1NzkiPiJXaU1BWCDgpLjgpY3igI3gpKXgpL/gpKTgpL8g4KSs4KSm4KSy4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2ltYXhTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzE1NjQ1NjUwNDA4NDIwMTgwNSI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsgV2lNQVgg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkuOClhyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSV4KWLIOCkleCkqOClh+CkleCljeKAjeCknyDgpJTgpLAg4KSh4KS/4KS44KWN4oCN4KSV4KSo4KWH4KSV4KWN4oCN4KSfIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2OTcwMjUwNDMwMDQ5MjM3OTgiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIFdpTUFYIOCkqOClh+Ckn+CkteCksOCljeCklSDgpLjgpYcg4KSr4KS84KWL4KSoIOCkleCliyDgpJXgpKjgpYfgpJXgpY3igI3gpJ8g4KSU4KSwIOCkoeCkv+CkuOCljeKAjeCkleCkqOClh+CkleCljeKAjeCknyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaW1heFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMTU2NDU2NTA0MDg0MjAxODA1Ij4i4KSQ4KSq4KWN4KS4IOCkleCliyBXaU1BWCDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KWHIOCkn+Clh+CkrOCksuClh+CknyDgpJXgpYsg4KSV4KSo4KWH4KSV4KWN4oCN4KSfIOCklOCksCDgpKHgpL/gpLjgpY3igI3gpJXgpKjgpYfgpJXgpY3igI3gpJ8g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2ltYXhTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY5NzAyNTA0MzAwNDkyMzc5OCI+IuCkkOCkquCljeCkuCDgpJXgpYsgV2lNQVgg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkuOClhyDgpKvgpLzgpYvgpKgg4KSV4KWLIOCkleCkqOClh+CkleCljeKAjeCknyDgpJTgpLAg4KSh4KS/4KS44KWN4oCN4KSV4KSo4KWH4KSV4KWN4oCN4KSfIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmx1ZXRvb3RoIiBtc2dpZD0iNjEyNzc2OTMzNjMzOTI3NjgyOCI+IkJsdWV0b290aCDgpIngpKrgpJXgpLDgpKPgpYvgpIIg4KSV4KWHIOCkuOCkvuCkpSDgpK/gpYHgpJfgpY3gpK7gpL/gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzNDgwNzIyMTgxODUyNDM4NjI4Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSq4KSwIEJsdWV0b290aCDgpJXgpL4g4KSV4KWJ4KSo4KWN4oCN4KSr4KS84KS/4KSX4KSw4KWH4KS24KSoIOCkpuClh+CkluCkqOClhywg4KSU4KSwIOCkr+ClgeCkl+CljeKAjeCkruCkv+CkpCDgpIngpKrgpJXgpLDgpKPgpYvgpIIg4KSV4KWHIOCkuOCkvuCkpSDgpJXgpKjgpYfgpJXgpY3igI3gpLbgpKgg4KSs4KSo4KS+4KSo4KWHIOCklOCksCDgpLjgpY3igI3gpLXgpYDgpJXgpL7gpLAg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzIwNzEwNjMyNDQ1MjMxMjczOSI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSr4KS84KWL4KSoIOCkquCksCBCbHVldG9vdGgg4KSV4KS+IOCkleClieCkqOCljeKAjeCkq+CkvOCkv+Ckl+CksOClh+CktuCkqCDgpKbgpYfgpJbgpKjgpYcsIOCklOCksCDgpK/gpYHgpJfgpY3igI3gpK7gpL/gpKQg4KSJ4KSq4KSV4KSw4KSj4KWL4KSCIOCkleClhyDgpLjgpL7gpKUg4KSV4KSo4KWH4KSV4KWN4oCN4KS24KSoIOCkrOCkqOCkvuCkqOClhyDgpJTgpLAg4KS44KWN4oCN4KS14KWA4KSV4KS+4KSwIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQ4MDcyMjE4MTg1MjQzODYyOCI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSf4KWH4KSs4KSy4KWH4KSfIOCkquCksCBCbHVldG9vdGgg4KSV4KS+IOCkleClieCkqOCljeKAjeCkq+CkvOCkv+Ckl+CksOClh+CktuCkqCDgpKbgpYfgpJbgpKjgpYcsIOCklOCksCDgpK/gpYHgpJfgpY3igI3gpK7gpL/gpKQg4KSJ4KSq4KSV4KSw4KSj4KWL4KSCIOCkleClhyDgpLjgpL7gpKUg4KSV4KSo4KWH4KSV4KWN4oCN4KS24KSoIOCkrOCkqOCkvuCkqOClhyDgpJTgpLAg4KS44KWN4oCN4KS14KWA4KSV4KS+4KSwIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMyMDcxMDYzMjQ0NTIzMTI3MzkiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkq+CkvOCli+CkqCDgpKrgpLAgQmx1ZXRvb3RoIOCkleCkviDgpJXgpYngpKjgpY3igI3gpKvgpLzgpL/gpJfgpLDgpYfgpLbgpKgg4KSm4KWH4KSW4KSo4KWHLCDgpJTgpLAg4KSv4KWB4KSX4KWN4oCN4KSu4KS/4KSkIOCkieCkquCkleCksOCko+Cli+CkgiDgpJXgpYcg4KS44KS+4KSlIOCkleCkqOClh+CkleCljeKAjeCktuCkqCDgpKzgpKjgpL7gpKjgpYcg4KSU4KSwIOCkuOCljeKAjeCkteClgOCkleCkvuCksCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX25mYyIgbXNnaWQ9IjQ0MjMzNTEyNzQ3NTc4NzY5NTMiPiLgpKjgpL/gpK/gpLAg4KSr4KS84KWA4KSy4KWN4oCN4KShIOCkleCkruCljeKAjeCkr+ClguCkqOCkv+CkleClh+CktuCkqCDgpKjgpL/gpK/gpILgpKTgpY3gpLDgpL/gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbmZjIiBtc2dpZD0iNzEyMDYxMTgxOTQwMTc4OTkwNyI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSo4KS/4KSv4KSwIOCkq+CkvOClgOCksuCljeCkoSDgpJXgpK7gpY3gpK/gpYLgpKjgpL/gpJXgpYfgpLbgpKggKE5GQykg4KSf4KWI4KSXLCDgpJXgpL7gpLDgpY3gpKEsIOCklOCksCDgpLDgpYDgpKHgpLAg4KSV4KWHIOCkuOCkvuCkpSDgpLjgpILgpJrgpL7gpLAg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbmZjIiBtc2dpZD0iNzEyMDYxMTgxOTQwMTc4OTkwNyI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkqOCkv+Ckr+CksCDgpKvgpLzgpYDgpLLgpY3gpKEg4KSV4KSu4KWN4KSv4KWC4KSo4KS/4KSV4KWH4KS24KSoIChORkMpIOCkn+CliOCklywg4KSV4KS+4KSw4KWN4KShLCDgpJTgpLAg4KSw4KWA4KSh4KSwIOCkleClhyDgpLjgpL7gpKUg4KS44KSC4KSa4KS+4KSwIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGlzYWJsZUtleWd1YXJkIiBtc2dpZD0iMzU5ODQ5NjMwMTQ4NjQzOTI1OCI+IuCkheCkquCkqOCkviDgpLjgpY3igI3gpJXgpY3gpLDgpYDgpKgg4KSy4KWJ4KSVIOCkheCkleCljeCkt+CkriDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kaXNhYmxlS2V5Z3VhcmQiIG1zZ2lkPSI2MDM0MjAzMDY1MDc3MTIyOTkyIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpJXgpYDgpLLgpYngpJUg4KSU4KSwIOCkleCli+CkiCDgpK3gpYAg4KS44KSC4KSs4KSm4KWN4KSnIOCkquCkvuCkuOCkteCksOCljeCkoSDgpLjgpYHgpLDgpJXgpY3gpLfgpL4g4KSF4KSV4KWN4KS34KSuIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpIngpKbgpL7gpLngpLDgpKMg4KSV4KWHIOCksuCkv+Ckjywg4KSH4KSo4KSV4KSu4KS/4KSC4KSXIOCkq+CkvOCli+CkqCDgpJXgpYngpLIg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOCkpOClhyDgpLjgpK7gpK8g4KSr4KS84KWL4KSoLCDgpJXgpYDgpLLgpYngpJUg4KSV4KWLIOCkheCkleCljeCkt+CkriDgpJXgpLAg4KSm4KWH4KSk4KS+IOCkueCliCwg4KSr4KS/4KSwIOCkleClieCksiDgpLjgpK7gpL7gpKrgpY3gpKQg4KS54KWL4KSo4KWHIOCkquCksCDgpJXgpYDgpLLgpYngpJUg4KSV4KWLIOCkquClgeCkqDog4KS44KSV4KWN4KS34KSuIOCkleCksCDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Rpc2FibGVLZXlndWFyZCIgbXNnaWQ9IjYwMzQyMDMwNjUwNzcxMjI5OTIiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkleClgOCksuClieCklSDgpJTgpLAg4KSV4KWL4KSIIOCkreClgCDgpLjgpILgpKzgpKbgpY3gpKcg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkuOClgeCksOCkleCljeCkt+CkviDgpIXgpJXgpY3gpLfgpK4g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkieCkpuCkvuCkueCksOCkoyDgpJXgpYcg4KSy4KS/4KSPLCDgpIfgpKjgpJXgpK7gpL/gpILgpJcg4KSr4KS84KWL4KSoIOCkleClieCksiDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KSk4KWHIOCkuOCkruCkryDgpKvgpLzgpYvgpKgsIOCkleClgOCksuClieCklSDgpJXgpYsg4KSF4KSV4KWN4KS34KSuIOCkleCksCDgpKbgpYfgpKTgpL4g4KS54KWILCDgpKvgpL/gpLAg4KSV4KWJ4KSyIOCkuOCkruCkvuCkquCljeCkpCDgpLngpYvgpKjgpYcg4KSq4KSwIOCkleClgOCksuClieCklSDgpJXgpYsg4KSq4KWB4KSoOiDgpLjgpJXgpY3gpLfgpK4g4KSV4KSwIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU3luY1NldHRpbmdzIiBtc2dpZD0iNjIwMTgxMDAwODIzMDUwMzA1MiI+IuCkuOCkruCkqOCljeCkteCkr+CkqCDgpLjgpYfgpJ/gpL/gpILgpJcg4KSq4KSi4KS84KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFN5bmNTZXR0aW5ncyIgbXNnaWQ9IjI3MDY3NDU2NzQ1Njk2Nzg2NDQiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkleCkv+CkuOClgCDgpJbgpL7gpKTgpYcg4KSV4KWAIOCkuOCkruCkqOCljeCkteCkr+CkqCDgpLjgpYfgpJ/gpL/gpILgpJcg4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkieCkpuCkvuCkueCksOCkoyDgpJXgpYcg4KSy4KS/4KSPLCDgpIfgpLjgpLjgpYcg4KSv4KS5IOCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpCDgpJXgpL/gpK/gpL4g4KSc4KS+IOCkuOCkleCkpOCkviDgpLngpYgg4KSV4KS/IOCksuCli+CklyDgpI/gpKrgpY3gpLgg4KSV4KS/4KS44KWAIOCkluCkvuCkpOClhyDgpJXgpYcg4KS44KS+4KSlIOCkuOCkruCkqOCljeKAjeCkteCkr+Ckv+CkpCDgpLngpYgg4KSv4KS+IOCkqOCkueClgOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1NldHRpbmdzIiBtc2dpZD0iMjcwNjc0NTY3NDU2OTY3ODY0NCI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkleCkv+CkuOClgCDgpJbgpL7gpKTgpYcg4KSV4KWAIOCkuOCkruCkqOCljeCkteCkr+CkqCDgpLjgpYfgpJ/gpL/gpILgpJcg4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkieCkpuCkvuCkueCksOCkoyDgpJXgpYcg4KSy4KS/4KSPLCDgpIfgpLjgpLjgpYcg4KSv4KS5IOCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpCDgpJXgpL/gpK/gpL4g4KSc4KS+IOCkuOCkleCkpOCkviDgpLngpYgg4KSV4KS/IOCksuCli+CklyDgpJDgpKrgpY3gpLggIOCkleCkv+CkuOClgCDgpJbgpL7gpKTgpYcg4KSV4KWHIOCkuOCkvuCkpSDgpLjgpK7gpKjgpY3igI3gpLXgpK/gpL/gpKQg4KS54KWIIOCkr+CkviDgpKjgpLngpYDgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9IjU0MDg2OTQ4NzU3OTM5NDUzMTQiPiLgpLjgpK7gpKjgpY3igI3gpLXgpK/gpKgg4KSs4KSC4KSmIOCkr+CkviDgpJrgpL7gpLLgpYIg4KSf4KWJ4KSX4KSyIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU3luY1NldHRpbmdzIiBtc2dpZD0iODk1NjI2MjU5MTMwNjM2OTg2OCI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSV4KS/4KS44KWAIOCkluCkvuCkpOClhyDgpJXgpYAg4KS44KSu4KSo4KWN4KS14KSv4KSoIOCkuOClh+Ckn+Ckv+CkguCklyDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkieCkpuCkvuCkueCksOCkoyDgpJXgpYcg4KSy4KS/4KSPLCDgpIfgpLjgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCksuCli+CklyDgpI/gpKrgpY3gpLgg4KSV4KS+IOCkuOCkruCkqOCljeKAjeCkteCkr+CkqCDgpJXgpL/gpLjgpYAg4KSW4KS+4KSk4KWHIOCkuOClhyDgpLjgpJXgpY3gpLfgpK4g4KSV4KSw4KSo4KWHIOCkruClh+CkgiDgpLngpYsg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9Ijg5NTYyNjI1OTEzMDYzNjk4NjgiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpJXgpL/gpLjgpYAg4KSW4KS+4KSk4KWHIOCkleClgCDgpLjgpK7gpKjgpY3gpLXgpK/gpKgg4KS44KWH4KSf4KS/4KSC4KSXIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSJ4KSm4KS+4KS54KSw4KSjIOCkleClhyDgpLLgpL/gpI8sIOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSy4KWL4KSXIOCkkOCkquCljeCkuCAg4KSV4KS+IOCkuOCkruCkqOCljeKAjeCkteCkr+CkqCDgpJXgpL/gpLjgpYAg4KSW4KS+4KSk4KWHIOCkuOClhyDgpLjgpJXgpY3gpLfgpK4g4KSV4KSw4KSo4KWHIOCkruClh+CkgiDgpLngpYsg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTeW5jU3RhdHMiIG1zZ2lkPSI3Mzk2NTc3NDUxMzYwMjAyNDQ4Ij4i4KS44KSu4KSo4KWN4KS14KSv4KSoIOCkhuCkguCkleCkoeCkvOClhyDgpKrgpKLgpLzgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1N0YXRzIiBtc2dpZD0iMTUxMDE0Mzc2MTc1NzYwNjE1NiI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSV4KS/4KS44KWAIOCkluCkvuCkpOClhyDgpJXgpYcg4KS44KSu4KSo4KWN4KS14KSv4KSoIOCkhuCkguCkleCkoeCkvOClhywg4KS44KS+4KSlIOCkueClgCDgpLjgpK7gpKjgpY3igI3gpLXgpK/gpL/gpKQg4KSI4KS14KWH4KSC4KSfIOCkleCkviDgpIfgpKTgpL/gpLngpL7gpLgg4KSU4KSwIOCkuOCkruCkqOCljeKAjeCkteCkr+Ckv+CkpCDgpKHgpYfgpJ/gpL4g4KSV4KWAIOCkruCkvuCkpOCljeCksOCkviDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1N0YXRzIiBtc2dpZD0iMTUxMDE0Mzc2MTc1NzYwNjE1NiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkleCkv+CkuOClgCDgpJbgpL7gpKTgpYcg4KSV4KWHIOCkuOCkruCkqOCljeCkteCkr+CkqCDgpIbgpILgpJXgpKHgpLzgpYcsIOCkuOCkvuCkpSDgpLngpYAg4KS44KSu4KSo4KWN4oCN4KS14KSv4KS/4KSkIOCkiOCkteClh+CkguCknyDgpJXgpL4g4KSH4KSk4KS/4KS54KS+4KS4IOCklOCksCDgpLjgpK7gpKjgpY3igI3gpLXgpK/gpL/gpKQg4KSh4KWH4KSf4KS+IOCkleClgCDgpK7gpL7gpKTgpY3gpLDgpL4g4KSq4KSi4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdWJzY3JpYmVkRmVlZHNSZWFkIiBtc2dpZD0iNDc1NjYwOTYzNzA1MzM1MzMxOCI+IuCkl+CljeCksOCkvuCkueCkleClgC3gpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSr4KS84KWA4KShIOCkquCkouCkvOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N1YnNjcmliZWRGZWVkc1JlYWQiIG1zZ2lkPSI1NTU3MDU4OTA3OTA2MTQ0NTA1Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpLXgpLDgpY3gpKTgpK7gpL7gpKgg4KSu4KWH4KSCIOCkuOCkruCkqOCljeCkteCkr+Ckv+CkpCDgpKvgpLzgpYDgpKEg4KSV4KWHIOCkrOCkvuCksOClhyDgpK7gpYfgpIIg4KS14KS/4KS14KSw4KSjIOCkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdWJzY3JpYmVkRmVlZHNSZWFkIiBtc2dpZD0iNTU1NzA1ODkwNzkwNjE0NDUwNSI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KS14KSw4KWN4KSk4KSu4KS+4KSoIOCkruClh+CkgiDgpLjgpK7gpKjgpY3gpLXgpK/gpL/gpKQg4KSr4KS84KWA4KShIOCkleClhyDgpKzgpL7gpLDgpYcg4KSu4KWH4KSCIOCkteCkv+CkteCksOCkoyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdWJzY3JpYmVkRmVlZHNXcml0ZSIgbXNnaWQ9IjkwMTUyNDYzMjU0MDgyMDkyOTYiPiLgpJfgpY3gpLDgpL7gpLngpJXgpYAt4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkq+CkvOClgOCkoSDgpLLgpL/gpJbgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdWJzY3JpYmVkRmVlZHNXcml0ZSIgbXNnaWQ9IjY5Mjg5MzAxODg4MjYwODk0MTMiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkhuCkquCkleClhyDgpLXgpLDgpY3gpKTgpK7gpL7gpKgg4KS44KSu4KSo4KWN4KS14KSv4KS/4KSkIOCkq+CkvOClgOCkoSDgpJXgpYsg4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSP4KSq4KWN4KS4IOCkhuCkquCkleClhyDgpLjgpK7gpKjgpY3gpLXgpK/gpL/gpKQg4KSr4KS84KWA4KShIOCkleCliyDgpKzgpKbgpLIg4KS44KSV4KSk4KWHIOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdWJzY3JpYmVkRmVlZHNXcml0ZSIgbXNnaWQ9IjY5Mjg5MzAxODg4MjYwODk0MTMiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpIbgpKrgpJXgpYcg4KS14KSw4KWN4KSk4KSu4KS+4KSoIOCkuOCkruCkqOCljeCkteCkr+Ckv+CkpCDgpKvgpLzgpYDgpKEg4KSV4KWLIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkkOCkquCljeCkuCAg4KSG4KSq4KSV4KWHIOCkuOCkruCkqOCljeCkteCkr+Ckv+CkpCDgpKvgpLzgpYDgpKEg4KSV4KWLIOCkrOCkpuCksiDgpLjgpJXgpKTgpYcg4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZERpY3Rpb25hcnkiIG1zZ2lkPSI0MTA3MTAxNTI1NzQ2MDM1NzE4Ij4i4KS24KSs4KWN4KSm4KSV4KWL4KS2IOCkruClh+CkgiDgpIbgpKrgpJXgpYcg4KSm4KWN4KS14KS+4KSw4KS+IOCknOCli+CkoeCkvOClhyDgpJfgpI8g4KS24KSs4KWN4oCN4KSm4KWL4KSCIOCkleCliyDgpKrgpKLgpLzgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjY1OTYxNDYwMDMzODkwNDI0MyI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSQ4KS44KWHIOCkuOCkreClgCDgpLbgpKzgpY3igI3gpKbgpYvgpIIsIOCkqOCkvuCkruCli+CkgiDgpJTgpLAg4KS14KS+4KSV4KWN4KSv4KS+4KSC4KS24KWL4KSCIOCkleCliyDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCDgpJzgpYsg4KS44KSC4KSt4KS14KSkOiDgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDigI3gpLbgpKzgpY3gpKbgpJXgpYvgpLYg4KSu4KWH4KSCIOCkuOCkguCkl+CljeCksOCkueClgOCkpCDgpJXgpL/gpI8g4KSX4KSPIOCkueCli+Ckgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjY1OTYxNDYwMDMzODkwNDI0MyI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSQ4KS44KWHIOCkuOCkreClgCDgpLbgpKzgpY3igI3gpKbgpYvgpIIsIOCkqOCkvuCkruCli+CkgiDgpJTgpLAg4KS14KS+4KSV4KWN4KSv4KS+4KSC4KS24KWL4KSCIOCkleCliyDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliCDgpJzgpYsg4KS44KSC4KSt4KS14KSkOiDgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDigI3gpLbgpKzgpY3gpKbgpJXgpYvgpLYg4KSu4KWH4KSCIOCkuOCkguCkl+CljeCksOCkueClgOCkpCDgpJXgpL/gpI8g4KSX4KSPIOCkueCli+Ckgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjIxODMxMTA0MDIzMTQ0NDExMDYiPiLgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSm4KWN4KS14KS+4KSw4KS+IOCkquCksOCkv+CkreCkvuCkt+Ckv+CkpCDgpLbgpKzgpY3gpKbgpJXgpYvgpLYg4KSu4KWH4KSCIOCktuCkrOCljeCkpiDgpJzgpYvgpKHgpLzgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSI4MTg1Mzg1NzE2MjU1MDY1MjkxIj4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KS24KSs4KWN4KSm4KSV4KWL4KS2IOCkruClh+CkgiDgpKjgpI8g4KS24KSs4KWN4KSmIOCksuCkv+CkluCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjgxODUzODU3MTYyNTUwNjUyOTEiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KS24KSs4KWN4KSm4KSV4KWL4KS2IOCkruClh+CkgiDgpKjgpI8g4KS24KSs4KWN4KSmIOCksuCkv+CkluCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNjcyNzUwOTUxNTk0MDU0NjgiPiLgpIXgpKrgpKjgpYcgVVNCIOCkuOCkguCkl+CljeCksOCkueCkoyDgpJXgpYAg4KS44KS+4KSu4KSX4KWN4KSw4KWAIOCkquCkouCkvOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIxODgxNTY0NjI5MzQ5Nzc5NDAiPiLgpIXgpKrgpKjgpYcgU0Qg4KSV4KS+4KSw4KWN4KShIOCkleClgCDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSq4KSi4KS84KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNDQ2OTg4NzEyNTk4Mzg2MDc5Ij4i4KSP4KSq4KWN4oCN4KSy4KS/4KSV4KWH4KS24KSoIOCkleCliyDgpIbgpKrgpJXgpYcgVVNCIOCkuOCkguCkl+CljeCksOCkueCkoyDgpJXgpYAg4KS44KS+4KSu4KSX4KWN4KSw4KWAIOCkquCkouCkvOCkqOClhyDgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkUmVhZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI2MDczNjI0NzM2NTQ5NzU0MTEiPiLgpI/gpKrgpY3igI3gpLLgpL/gpJXgpYfgpLbgpKgg4KSV4KWLIOCkhuCkquCkleClhyBTRCDgpJXgpL7gpLDgpY3gpKEg4KSV4KWAIOCkuOCkvuCkruCkl+CljeCksOClgCDgpKrgpKLgpLzgpKjgpYcg4KSV4KWAIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iODQ4NTk3OTA2MjI1NDY2Njc0OCI+IuCkheCkquCkqOClhyBVU0Ig4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkleClgCDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSs4KSm4KSy4KWH4KSCIOCkr+CkviDgpLngpJ/gpL7gpI/gpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODgwNTY5MzYzMDA1MDQ1ODc2MyI+IuCkheCkquCkqOClhyBTRCDgpJXgpL7gpLDgpY3gpKEg4KSV4KWAIOCkuOCkvuCkruCkl+CljeCksOClgCDgpKzgpKbgpLLgpYfgpIIg4KSv4KS+IOCkueCkn+CkvuCkj+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYxNzU0MDYyOTk0NDU3MTA4ODgiPiLgpI/gpKrgpY3gpLLgpL8uIOCkleCliyBVU0Ig4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkruClh+CkgiDgpLLgpL/gpJbgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQzMzc0MTc3OTA5MzY2MzIwOTAiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIFNEIOCkleCkvuCksOCljeCkoSDgpKrgpLAg4KSy4KS/4KSW4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE3NTQwNjI5OTQ0NTcxMDg4OCI+IuCkkOCkquCljeCkuCDgpJXgpYsgVVNCIOCkuOCkguCkl+CljeCksOCkueCkoyDgpK7gpYfgpIIg4KSy4KS/4KSW4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MzM3NDE3NzkwOTM2NjMyMDkwIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsgU0Qg4KSV4KS+4KSw4KWN4KShIOCkquCksCDgpLLgpL/gpJbgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21lZGlhU3RvcmFnZVdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjg1OTgzOTE5OTcwNjg3OTAxNSI+IuCkhuCkguCkpOCksOCkv+CklSDgpK7gpYDgpKHgpL/gpK/gpL4g4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkuOCkvuCkruCkl+CljeCksOCkv+Ckr+Cli+CkgiDgpJXgpYsg4KSs4KSm4KSy4KWH4KSCL+CkueCkn+CkvuCkj+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21lZGlhU3RvcmFnZVdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODE4OTE2MDU5NzY5ODUyOTE4NSI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSG4KSC4KSk4KSw4KS/4KSVIOCkruClgOCkoeCkv+Ckr+CkviDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSV4KWAIOCkuOCkvuCkruCkl+CljeCksOClgCDgpJXgpYsg4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21lZGlhU3RvcmFnZVdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODE4OTE2MDU5NzY5ODUyOTE4NSI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkhuCkguCkpOCksOCkv+CklSDgpK7gpYDgpKHgpL/gpK/gpL4g4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkleClgCDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSV4KWLIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZURvY3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzc4MzE4NTk4NDQ4ODQ5ODI5Ij4i4KSm4KS44KWN4KSk4KS+4KS14KWH4KSc4KS8IOCkuOCkguCkl+CljeCksOCkueCkoyDgpKrgpY3gpLDgpKzgpILgpKfgpL/gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlRG9jcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg3MDQzMjMxNzY5MTQxMjE0ODQiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkpuCkuOCljeCkpOCkvuCkteClh+CknOCkvCDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSq4KWN4KSw4KSs4KSC4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuClh+Ckgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VEb2NzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODcwNDMyMzE3NjkxNDEyMTQ4NCI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkpuCkuOCljeCkpOCkvuCkteClh+CknOCkvCDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSq4KWN4KSw4KSs4KSC4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuClh+Ckgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZEFjY2Vzc0FsbCIgbXNnaWQ9IjgxNTA2MTM4MjM5MDA0NjA1NzYiPiLgpLjgpK3gpYAg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KST4KSCIOCkleClhyDgpKzgpL7gpLngpLDgpYAg4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkpOCklSDgpKrgpLngpYHgpILgpJrgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRBY2Nlc3NBbGwiIG1zZ2lkPSIzMjE1MjA4MzU3NDE1ODkxMzIwIj4i4KSP4KSq4KWN4KS4IOCkleCliyDgpLjgpK3gpYAg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KST4KSCIOCkleClhyDgpKzgpL7gpLngpLDgpYAg4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkpOCklSDgpKrgpLngpYHgpILgpJrgpKjgpYcg4KSm4KWH4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZEFjY2Vzc0FsbCIgbXNnaWQ9IjMyMTUyMDgzNTc0MTU4OTEzMjAiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpLjgpK3gpYAg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KST4KSCIOCkleClhyDgpKzgpL7gpLngpLDgpYAg4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkpOCklSDgpKrgpLngpYHgpILgpJrgpKjgpYcg4KSm4KWH4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU2NTY0ODcyNjQ4MTk2Njk4MjQiPiLgpJXgpYjgpLYg4KSr4KS84KS+4KSH4KSyIOCkuOCkv+CkuOCljeKAjeCkn+CkriDgpK7gpYfgpIIg4KSq4KS54KSC4KSa4KWHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU1Nzg5Njc2NDIyNjU1NTA5NTUiPiLgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkuOCkguCkmuCkryDgpKvgpLzgpL7gpIfgpLIg4KS44KS/4KS44KWN4oCN4KSf4KSuIOCkquCkouCkvOCkqOClhyDgpJTgpLAg4KSy4KS/4KSW4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU1Nzg5Njc2NDIyNjU1NTA5NTUiPiLgpJDgpKrgpY3gpLgg4KSV4KWLIOCkuOCkguCkmuCkryDgpKvgpLzgpL7gpIfgpLIg4KS44KS/4KS44KWN4oCN4KSf4KSuIOCkquCkouCkvOCkqOClhyDgpJTgpLAg4KSy4KS/4KSW4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91c2Vfc2lwIiBtc2dpZD0iNTk4Njk1MjM2Mjc5NTg3MDUwMiI+IuCkh+CkguCkn+CksOCkqOClh+CknyDgpJXgpYngpLIg4KSV4KSw4KWH4KSCL+CkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191c2Vfc2lwIiBtc2dpZD0iNDcxNzYzMjAwMDA2MjY3NDI5NCI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSH4KSC4KSf4KSw4KSo4KWH4KSfIOCkleClieCksiDgpJXgpLDgpKjgpYcv4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIFNJUCDgpLjgpYfgpLXgpL4g4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191c2Vfc2lwIiBtc2dpZD0iNDcxNzYzMjAwMDA2MjY3NDI5NCI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkh+CkguCkn+CksOCkqOClh+CknyDgpJXgpYngpLIg4KSV4KSw4KSo4KWHL+CkquCljeCksOCkvuCkquCljeCkpCDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyBTSVAg4KS44KWH4KS14KS+IOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kX2NhbGxfc2VydmljZSIgbXNnaWQ9IjY3MjQwMDk3MjY2NzEyNDY1NTEiPiLgpIfgpKgt4KSV4KWJ4KSyIOCkuOCljeCkleCljeCksOClgOCkqCDgpLjgpYcg4KS44KS54KSt4KS+4KSX4KS/4KSk4KS+IOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRfY2FsbF9zZXJ2aWNlIiBtc2dpZD0iODczMjU0NzY2MjQ0MjU3MjQzNSI+IuCkj+CkquCljeCksuCkv+CkleClh+CktuCkqCDgpJXgpYsg4KSv4KS5IOCkqOCkv+Ckr+CkguCkpOCljeCksOCkv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliCDgpJXgpL8g4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkleCliyDgpIfgpKgt4KSV4KWJ4KSyIOCkuOCljeCkleCljeCksOClgOCkqCDgpJXgpKwg4KSU4KSwIOCkleCliOCkuOClgCDgpKbgpL/gpJbgpL7gpIgg4KSm4KWH4KSk4KWAIOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWROZXR3b3JrVXNhZ2VIaXN0b3J5IiBtc2dpZD0iNzg2MjU5MzI4MzYxMTQ5MzIzMiI+IuCkkOCkpOCkv+CkueCkvuCkuOCkv+CklSDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSJ4KSq4KSv4KWL4KSXIOCkquCkouClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWROZXR3b3JrVXNhZ2VIaXN0b3J5IiBtc2dpZD0iNzY4OTA2MDc0OTgxOTEyNjQ3MiI+IuCkleCkv+CkuOClgCDgpI/gpKrgpY3gpLgg4KSV4KWLIOCkteCkv+CktuCkv+Ckt+CljeCknyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSU4KSwIOCkj+CkquCljeKAjeCkuCDgpJXgpYcg4KSy4KS/4KSPIOCkkOCkpOCkv+CkueCkvuCkuOCkv+CklSDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSJ4KSq4KSv4KWL4KSXIOCkleCliyDgpKrgpKLgpLzgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTmV0d29ya1VzYWdlSGlzdG9yeSIgbXNnaWQ9Ijc2ODkwNjA3NDk4MTkxMjY0NzIiPiLgpJXgpL/gpLjgpYAg4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KS14KS/4KS24KS/4KS34KWN4KSfIOCkqOClh+Ckn+CkteCksOCljeCklSDgpJTgpLAg4KSQ4KSq4KWN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSQ4KSk4KS/4KS54KS+4KS44KS/4KSVIOCkqOClh+Ckn+CkteCksOCljeCklSDgpIngpKrgpK/gpYvgpJcg4KSV4KWLIOCkquCkouCkvOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlTmV0d29ya1BvbGljeSIgbXNnaWQ9IjI1NjIwNTM1OTIzMzk4NTk5OTAiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSo4KWA4KSk4KS/IOCkquCljeCksOCkrOCkguCkp+Ckv+CkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VOZXR3b3JrUG9saWN5IiBtc2dpZD0iNzUzNzU4Njc3MTU1OTM3MDY2OCI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkqOClgOCkpOCkv+Ckr+CkvuCkgiDgpKrgpY3gpLDgpKzgpILgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCklOCksCDgpI/gpKrgpY3igI3gpLgt4KS14KS/4KS24KS/4KS34KWN4oCN4KSfIOCkqOCkv+Ckr+CkruCli+CkgiDgpJXgpYsg4KSq4KSw4KS/4KSt4KS+4KS34KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZU5ldHdvcmtQb2xpY3kiIG1zZ2lkPSI3NTM3NTg2NzcxNTU5MzcwNjY4Ij4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSo4KWA4KSk4KS/4KSv4KS+4KSCIOCkquCljeCksOCkrOCkguCkp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSU4KSwIOCkkOCkquCljeCkuC3gpLXgpL/gpLbgpL/gpLfgpY3igI3gpJ8g4KSo4KS/4KSv4KSu4KWL4KSCIOCkleCliyDgpKrgpLDgpL/gpK3gpL7gpLfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlOZXR3b3JrQWNjb3VudGluZyIgbXNnaWQ9IjUwODgyMTczMDkwODg3Mjk2NTAiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSJ4KSq4KSv4KWL4KSXIOCkueCkv+CkuOCkvuCkrCDgpKzgpKbgpLLgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb2RpZnlOZXR3b3JrQWNjb3VudGluZyIgbXNnaWQ9IjU0NDM0MTI4NjY3NDYxOTgxMjMiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkr+CkuSDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgg4KSV4KS/IOCkj+CkquCljeKAjeCkuCDgpJXgpYAg4KSk4KWB4KSy4KSo4KS+IOCkruClh+CkgiDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSJ4KSq4KSv4KWL4KSXIOCkleCkviDgpK7gpYLgpLLgpY3gpK/gpL7gpILgpJXgpKgg4KSV4KWI4KS44KWHIOCkleCkv+Ckr+CkviDgpJzgpL7gpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkpuCljeCkteCkvuCksOCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSo4KS54KWA4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeU5ldHdvcmtBY2NvdW50aW5nIiBtc2dpZD0iNTQ0MzQxMjg2Njc0NjE5ODEyMyI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkr+CkuSDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgg4KSV4KS/IOCkkOCkquCljeCkuCDgpJXgpYAg4KSk4KWB4KSy4KSo4KS+IOCkruClh+CkgiDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSJ4KSq4KSv4KWL4KSXIOCkleCkviDgpK7gpYLgpLLgpY3gpK/gpL7gpILgpJXgpKgg4KSV4KWI4KS44KWHIOCkleCkv+Ckr+CkviDgpJzgpL7gpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4IOCkpuCljeCkteCkvuCksOCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSo4KS54KWA4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSIzNjU4NTI3MjE0OTE0OTU5NzQ5Ij4i4KS44KWJ4KSV4KWH4KSfIOCkruCkvuCksOCljeCklSDgpKzgpKbgpLLgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYXJrTmV0d29ya1NvY2tldCIgbXNnaWQ9Ijc2NTU1Njg0MzM2OTYzNTY1NzgiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCksOClguCkn+Ckv+CkguCklyDgpJXgpYcg4KSy4KS/4KSPIOCkuOClieCkleClh+CknyDgpK7gpL7gpLDgpY3gpJUg4KSs4KSm4KSy4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYXJrTmV0d29ya1NvY2tldCIgbXNnaWQ9Ijc2NTU1Njg0MzM2OTYzNTY1NzgiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpLDgpYLgpJ/gpL/gpILgpJcg4KSV4KWHIOCksuCkv+CkjyDgpLjgpYngpJXgpYfgpJ8g4KSu4KS+4KSw4KWN4KSVIOCkrOCkpuCksuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWIIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNzY3MzQxNjQ4Nzg3MzQzMjI2OCI+IuCkuOClguCkmuCkqOCkvuCkk+CkgiDgpKTgpJUg4KSq4KS54KWB4KSC4KSa4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTm90aWZpY2F0aW9ucyIgbXNnaWQ9IjQ1ODQ1Nzc0MjY4MzQzMTM4NyI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KS44KWC4KSa4KSo4KS+4KST4KSCIOCkleCliyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHLCDgpJzgpL7gpILgpJog4KSV4KSw4KSo4KWHLCDgpJTgpLAg4KS44KS+4KSr4KS8IOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILCDgpJzgpL/gpKjgpK7gpYfgpIIg4KSF4KSo4KWN4KSvIOCkj+CkquCljeCkuCDgpJXgpYcg4KSm4KWN4KS14KS+4KSw4KS+IOCkquCli+CkuOCljeCknyDgpJXgpYAg4KSX4KSIIOCkuOClguCkmuCkqOCkvuCkj+CkgiDgpK3gpYAg4KS24KS+4KSu4KS/4KSyIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNDU4NDU3NzQyNjgzNDMxMzg3Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KS44KWC4KSa4KSo4KS+4KST4KSCIOCkleCliyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KSw4KSo4KWHLCDgpJzgpL7gpILgpJog4KSV4KSw4KSo4KWHLCDgpJTgpLAg4KS44KS+4KSr4KS8IOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILCDgpJzgpL/gpKjgpK7gpYfgpIIg4KSF4KSo4KWN4KSvIOCkkOCkquCljeCkuCAg4KSV4KWHIOCkpuCljeCkteCkvuCksOCkviDgpKrgpYvgpLjgpY3gpJ8g4KSV4KWAIOCkl+CkiCDgpLjgpYLgpJrgpKjgpL7gpI/gpIIg4KSt4KWAIOCktuCkvuCkruCkv+CksiDgpLngpYjgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kTm90aWZpY2F0aW9uTGlzdGVuZXJTZXJ2aWNlIiBtc2dpZD0iNzA1Nzc2NDc0MjIxMTY1NjY1NCI+IuCkuOClguCkmuCkqOCkviDgpLbgpY3gpLDgpLXgpKPgpJXgpLDgpY3gpKTgpL4g4KS44KWH4KS14KS+IOCkuOClhyDgpJzgpYHgpKHgpLzgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kTm90aWZpY2F0aW9uTGlzdGVuZXJTZXJ2aWNlIiBtc2dpZD0iOTg1Njk3OTE4NTc2OTAyOTg2Ij4i4KSn4KS+4KSw4KSVIOCkleCliyDgpLjgpYLgpJrgpKjgpL4g4KS24KWN4KSw4KS14KSj4KSV4KSw4KWN4KSk4KS+IOCkuOClh+CkteCkviDgpJXgpYcg4KS24KWA4KSw4KWN4KS3IOCkuOCljeCkpOCksOClgOCkryDgpIfgpILgpJ/gpLDgpKvgpLzgpYfgpLgg4KS44KWHIOCknOClgeCkoeCkvOCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSP4KSq4KWN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOClgCDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnZva2VDYXJyaWVyU2V0dXAiIG1zZ2lkPSIzNjk5NjAwODMzOTc1MTE3NDc4Ij4i4KS14KS+4KS54KSVIOCkleClhyDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSy4KSs4KWN4KSnIOCkleCksOCkvuCkr+CkviDgpJfgpK/gpL4g4KSV4KWJ4KSo4KWN4KSr4KS84KS/4KSX4KSw4KWH4KS24KSoIOCkj+CkquCljeCkuCDgpKrgpY3gpLDgpL7gpLDgpILgpK0g4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW52b2tlQ2FycmllclNldHVwIiBtc2dpZD0iNDE1OTU0OTE1MjUyOTExMTkyMCI+IuCkp+CkvuCksOCklSDgpJXgpYsg4KS14KS+4KS54KSVIOCkleClhyDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSy4KSs4KWN4KSnIOCkleCksOCkvuCkr+CkviDgpJfgpK/gpL4g4KSV4KWJ4KSo4KWN4KSr4KS84KS/4KSX4KSw4KWH4KS24KSoIOCkj+CkquCljeCkuCDgpKrgpY3gpLDgpL7gpLDgpILgpK0g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpI/gpKrgpY3igI3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kTm90aWZpY2F0aW9uTGlzdGVuZXJTZXJ2aWNlIiBtc2dpZD0iOTg1Njk3OTE4NTc2OTAyOTg2Ij4i4KSn4KS+4KSw4KSVIOCkleCliyDgpLjgpYLgpJrgpKjgpL4g4KS24KWN4KSw4KS14KSj4KSV4KSw4KWN4KSk4KS+IOCkuOClh+CkteCkviDgpJXgpYcg4KS24KWA4KSw4KWN4KS3IOCkuOCljeCkpOCksOClgOCkryDgpIfgpILgpJ/gpLDgpKvgpLzgpYfgpLgg4KS44KWHIOCknOClgeCkoeCkvOCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSQ4KSq4KWN4KS4ICDgpJXgpYcg4KSy4KS/4KSPIOCkleCkreClgCDgpK3gpYAg4KSG4KS14KS24KWN4KSv4KSVIOCkqOCkueClgOCkgiDgpLngpYvgpKjgpYAg4KSa4KS+4KS54KS/4KSPLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW52b2tlQ2FycmllclNldHVwIiBtc2dpZD0iMzY5OTYwMDgzMzk3NTExNzQ3OCI+IuCkteCkvuCkueCklSDgpJXgpYcg4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCksuCkrOCljeCkpyDgpJXgpLDgpL7gpK/gpL4g4KSX4KSv4KS+IOCkleClieCkqOCljeCkq+CkvOCkv+Ckl+CksOClh+CktuCkqCDgpJDgpKrgpY3gpLggIOCkquCljeCksOCkvuCksOCkguCkrSDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnZva2VDYXJyaWVyU2V0dXAiIG1zZ2lkPSI0MTU5NTQ5MTUyNTI5MTExOTIwIj4i4KSn4KS+4KSw4KSVIOCkleCliyDgpLXgpL7gpLngpJUg4KSV4KWHIOCkpuCljeCkteCkvuCksOCkviDgpIngpKrgpLLgpKzgpY3gpKcg4KSV4KSw4KS+4KSv4KS+IOCkl+Ckr+CkviDgpJXgpYngpKjgpY3gpKvgpLzgpL/gpJfgpLDgpYfgpLbgpKgg4KSQ4KSq4KWN4KS4ICDgpKrgpY3gpLDgpL7gpLDgpILgpK0g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05ldHdvcmtDb25kaXRpb25zIiBtc2dpZD0iODIwNjA3NzQ0NzgzODkwOTUxNiI+IuCkqOClh+Ckn+CkteCksOCljeCklSDgpLjgpY3gpKXgpL/gpKTgpL/gpK/gpYvgpIIg4KSV4KWHIOCkheCkteCksuCli+CkleCkqOCli+CkgiDgpJXgpYsg4KS44KWB4KSo4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI2ODk5MTAyMDc1ODI1MjcyMjExIj4i4KSP4KSq4KWN4KS4IOCkleCliyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KWN4KSl4KS/4KSk4KS/4KSv4KWL4KSCIOCkleClhyDgpIXgpLXgpLLgpYvgpJXgpKjgpYvgpIIg4KSV4KWLIOCkuOClgeCkqOCkqOClh8Kg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4KSvIOCkj+CkquCljeCkuCDgpJXgpYcg4KSy4KS/4KSPIOCkleCkreClgCDgpK3gpYAg4KSG4KS14KS24KWN4KSv4KSVIOCkqOCkueClgOCkgiDgpLngpYvgpKjgpL4g4KSa4KS+4KS54KS/4KSPLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05ldHdvcmtDb25kaXRpb25zIiBtc2dpZD0iNjg5OTEwMjA3NTgyNTI3MjIxMSI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkqOClh+Ckn+CkteCksOCljeCklSDgpLjgpY3gpKXgpL/gpKTgpL/gpK/gpYvgpIIg4KSV4KWHIOCkheCkteCksuCli+CkleCkqOCli+CkgiDgpJXgpYsg4KS44KWB4KSo4KSo4KWHwqDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSQ4KSq4KWN4KS4ICDgpJXgpYcg4KSy4KS/4KSPIOCkleCkreClgCDgpK3gpYAg4KSG4KS14KS24KWN4KSv4KSVIOCkqOCkueClgOCkgiDgpLngpYvgpKjgpL4g4KSa4KS+4KS54KS/4KSPLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9saW1pdFBhc3N3b3JkIiBtc2dpZD0iNDQ5NzQyMDcyODg1NzU4NTc5MSI+IuCkquCkvuCkuOCkteCksOCljeCkoSDgpKjgpL/gpK/gpK4g4KS44KWH4KSfIOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfbGltaXRQYXNzd29yZCIgbXNnaWQ9IjMyNTIxMTQyMDM5MTk1MTAzOTQiPiLgpLjgpY3igI3gpJXgpY3gpLDgpYDgpKgt4KSF4KSo4KSy4KWJ4KSVIOCkquCkvuCkuOCkteCksOCljeCkoSDgpK7gpYfgpIIg4KSF4KSo4KWB4KSu4KSk4KS/IOCkquCljeCksOCkvuCkquCljeCkpCDgpLLgpILgpKzgpL7gpIgg4KSU4KSwIOCkteCksOCljeCko+Cli+CkgiDgpJXgpYsg4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOClh+Ckgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfd2F0Y2hMb2dpbiIgbXNnaWQ9IjkxNDEzMDY0Njk0MjE5OTUwMyI+IuCkuOCljeKAjeCkleCljeCksOClgOCkqC3gpIXgpKjgpLLgpYngpJUg4KSV4KWHIOCkquCljeCksOCkr+CkvuCkuOCli+CkgiDgpKrgpLAg4KSo4KS/4KSX4KSw4KS+4KSo4KWAIOCksOCkluClh+CkgiI8L3N0cmluZz4KQEAgLTY5MSw3ICs2OTgsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2V4cGlyZVBhc3N3b3JkIiBtc2dpZD0iODg1Mjc5MTUxODQ3MjU0MDU2Ij4i4KS44KWN4oCN4KSV4KWN4KSw4KWA4KSoIOCksuClieCklSDgpJXgpLDgpYfgpIIg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkuOCkruCkvuCkquCljeCkpOCkvyDgpLjgpYfgpJ8g4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19leHBpcmVQYXNzd29yZCIgbXNnaWQ9IjE3Mjk3MjUyMjYzMTQ2OTE1OTEiPiLgpKjgpL/gpK/gpILgpKTgpY3gpLDgpL/gpKQg4KSV4KSw4KWH4KSCIOCkleCkvyDgpJXgpL/gpKTgpKjgpYcg4KS44KSu4KSvIOCkruClh+CkgiDgpLLgpYngpJUt4KS44KWN4oCN4KSV4KWN4KSw4KWA4KSoIOCkquCkvuCkuOCkteCksOCljeCkoSDgpKzgpKbgpLLgpL4g4KSc4KS+4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9Ijg5MDEzMjYxOTk5MDkxMzI5MTUiPiLgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSP4KSo4KWN4oCN4KSV4KWN4KSw4KS/4KSq4KWN4oCN4KS24KSoIOCkuOClh+CknyDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2VuY3J5cHRlZFN0b3JhZ2UiIG1zZ2lkPSIyNjM3NzMyMTE1MzI1MzE2OTkyIj4i4KS44KSC4KSX4KWN4KSw4KS54KWA4KSkIOCkj+CkquCljeKAjeCkuCDgpKHgpYfgpJ/gpL4g4KSV4KWLIOCkj+CkqOCljeCkleCljeCksOCkv+CkquCljeCknyDgpJXgpL/gpK/gpL4g4KSc4KS+4KSo4KS+IOCkhuCkteCktuCljeKAjeCkr+CklSDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19lbmNyeXB0ZWRTdG9yYWdlIiBtc2dpZD0iMjYzNzczMjExNTMyNTMxNjk5MiI+IuCkuOCkguCkl+CljeCksOCkueClgOCkpCDgpJDgpKrgpY3gpLgg4KSh4KWH4KSf4KS+IOCkleCliyDgpI/gpKjgpY3gpJXgpY3gpLDgpL/gpKrgpY3gpJ8g4KSV4KS/4KSv4KS+IOCknOCkvuCkqOCkviDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9kaXNhYmxlQ2FtZXJhIiBtc2dpZD0iNjM5NTMwMTAyMzE1MjI5NzgyNiI+IuCkleCliOCkruCksOCli+CkgiDgpJXgpYsg4KSF4KSV4KWN4KS34KSuIOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUNhbWVyYSIgbXNnaWQ9IjIzMDYzNDkwNDI4MzQ3NTQ1OTciPiLgpLjgpK3gpYAg4KSJ4KSq4KSV4KSw4KSjIOCkleCliOCkruCksOCli+CkgiDgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCksOCli+CkleClh+Ckgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIyNjYzMjkxMDQ1NDI2Mzg4MDIiPiLgpJXgpYDgpJfgpL7gpLDgpY3gpKEg4KSu4KWH4KSCIOCkuOClgeCkteCkv+Ckp+CkvuCkj+CkgiDgpIXgpJXgpY3gpLfgpK4g4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgpAQCAtOTQwLDI0ICs5NDcsMjQgQEAKICAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FyZWEiIG1zZ2lkPSIzNTQ3NDA5MDUwODg5OTUyNDIzIj4i4KSV4KWN4KS34KWH4KSk4KWN4KSwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZW1pcmF0ZSIgbXNnaWQ9IjI4OTM4ODA5Nzg4MzU2OTg4MTgiPiLgpIXgpK7gpYDgpLDgpL7gpKQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iMzc3NTI2NTc3NTQwNTEwNjk4MyI+IuCkheCkquCkqOClhyDgpLXgpYfgpKwg4KSs4KWB4KSV4KSu4KS+4KSw4KWN4KSVIOCklOCksCDgpIfgpKTgpL/gpLngpL7gpLgg4KSq4KSi4KS84KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSI4NDYyMzc4MjI2NjAwNDM5NjU4Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpKzgpY3gpLDgpL7gpIngpJzgpLzgpLAg4KSm4KWN4KS14KS+4KSw4KS+IOCkteCkv+CknOCkvOCkv+CknyDgpJXgpL/gpI8g4KSX4KSPIOCkuOCkreClgCBVUkwg4KSV4KWHIOCkh+CkpOCkv+CkueCkvuCkuCwg4KSU4KSwIOCkuOCkreClgCDgpKzgpY3gpLDgpL7gpIngpJzgpLzgpLAg4KSs4KWB4KSV4KSu4KS+4KSw4KWN4KSVIOCkquCkouCkvOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKfgpY3igI3gpK/gpL7gpKgg4KSm4KWH4KSCOiDgpK/gpLkg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpOClg+CkpOClgOCkry3gpKrgpJXgpY3gpLcg4KSs4KWN4KSw4KS+4KSJ4KSc4KS84KSwIOCkr+CkviDgpLXgpYfgpKwg4KSs4KWN4KSw4KS+4KSJ4KSc4KS84KS/4KSC4KSXIOCkleCljeCkt+CkruCkpOCkvuCkk+CkgiDgpLXgpL7gpLLgpYcg4KSF4KSo4KWN4oCN4KSvIOCkj+CkquCljeCkuCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSy4KS+4KSX4KWCIOCkqOCkueClgOCkgiDgpJXgpYAg4KSc4KS+IOCkuOCkleCkpOClgC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9Ijg0NjIzNzgyMjY2MDA0Mzk2NTgiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpKzgpY3gpLDgpL7gpIngpJzgpLzgpLAg4KSm4KWN4KS14KS+4KSw4KS+IOCkteCkv+CknOCkvOCkv+CknyDgpJXgpL/gpI8g4KSX4KSPIOCkuOCkreClgCBVUkwg4KSV4KWHIOCkh+CkpOCkv+CkueCkvuCkuCwg4KSU4KSwIOCkuOCkreClgCDgpKzgpY3gpLDgpL7gpIngpJzgpLzgpLAg4KSs4KWB4KSV4KSu4KS+4KSw4KWN4KSVIOCkquCkouCkvOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKfgpY3igI3gpK/gpL7gpKgg4KSm4KWH4KSCOiDgpK/gpLkg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpOClg+CkpOClgOCkry3gpKrgpJXgpY3gpLcg4KSs4KWN4KSw4KS+4KSJ4KSc4KS84KSwIOCkr+CkviDgpLXgpYfgpKwg4KSs4KWN4KSw4KS+4KSJ4KSc4KS84KS/4KSC4KSXIOCkleCljeCkt+CkruCkpOCkvuCkk+CkgiDgpLXgpL7gpLLgpYcg4KSF4KSo4KWN4oCN4KSvIOCkkOCkquCljeCkuCAg4KSm4KWN4KS14KS+4KSw4KS+IOCksuCkvuCkl+ClgiDgpKjgpLngpYDgpIIg4KSV4KWAIOCknOCkviDgpLjgpJXgpKTgpYAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSIzNzE0Nzg1MTY1MjczMzE0NDkwIj4i4KS14KWH4KSsIOCkrOClgeCkleCkruCkvuCksOCljeCklSDgpJTgpLAg4KSH4KSk4KS/4KS54KS+4KS4IOCksuCkv+CkluClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjgyNTUyNzQ2OTE0NTc2MDkyMiI+IuCkj+CkquCljeCkuCDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkn+Clh+CkrOCksuClh+CknyDgpK7gpYfgpIIg4KS44KSC4KSX4KWN4KSw4KS54KWA4KSkIOCkrOCljeCksOCkvuCkieCknOCkvOCksCDgpJXgpYcg4KSH4KSk4KS/4KS54KS+4KS4IOCkr+CkviDgpKzgpYHgpJXgpK7gpL7gpLDgpY3gpJUg4KSV4KWLIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS44KS44KWHIOCkj+CkquCljeCkuCDgpKzgpY3gpLDgpL7gpIngpJzgpLzgpLAg4KSh4KWH4KSf4KS+IOCkleCliyDgpK7gpL/gpJ/gpL4g4KS44KSV4KSk4KS+IOCkueCliCDgpK/gpL4g4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksCDgpLjgpJXgpKTgpL4g4KS54KWILiDgpKfgpY3igI3gpK/gpL7gpKgg4KSm4KWH4KSCOiDgpK/gpLkg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpOClg+CkpOClgOCkry3gpKrgpJXgpY3gpLcg4KSs4KWN4KSw4KS+4KSJ4KSc4KS84KSwIOCkr+CkviDgpLXgpYfgpKwg4KSs4KWN4KSw4KS+4KSJ4KSc4KS84KS/4KSC4KSXIOCkleCljeCkt+CkruCkpOCkvuCkk+CkgiDgpLXgpL7gpLLgpYcg4KSF4KSo4KWN4oCN4KSvIOCkj+CkquCljeCkuCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSy4KS+4KSX4KWCIOCkqOCkueClgOCkgiDgpJXgpYAg4KSc4KS+IOCkuOCkleCkpOClgC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUhpc3RvcnlCb29rbWFya3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NDk3Mzg5NTMxMDE0MTg1NTA5Ij4i4KSP4KSq4KWN4KS4IOCkleCliyDgpIbgpKrgpJXgpYcg4KSr4KS84KWL4KSoIOCkruClh+CkgiDgpLjgpILgpJfgpY3gpLDgpLngpYDgpKQg4KSs4KWN4KSw4KS+4KSJ4KSc4KS84KSwIOCkleClhyDgpIfgpKTgpL/gpLngpL7gpLgg4KSv4KS+IOCkrOClgeCkleCkruCkvuCksOCljeCklSDgpJXgpYsg4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpIfgpLjgpLjgpYcg4KSP4KSq4KWN4KS4IOCkrOCljeCksOCkvuCkieCknOCkvOCksCDgpKHgpYfgpJ/gpL4g4KSV4KWLIOCkruCkv+Ckn+CkviDgpLjgpJXgpKTgpL4g4KS54KWIIOCkr+CkviDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSwIOCkuOCkleCkpOCkviDgpLngpYguIOCkp+CljeKAjeCkr+CkvuCkqCDgpKbgpYfgpII6IOCkr+CkuSDgpIXgpKjgpYHgpK7gpKTgpL8g4KSk4KWD4KSk4KWA4KSvLeCkquCkleCljeCktyDgpKzgpY3gpLDgpL7gpIngpJzgpLzgpLAg4KSv4KS+IOCkteClh+CkrCDgpKzgpY3gpLDgpL7gpIngpJzgpLzgpL/gpILgpJcg4KSV4KWN4KS34KSu4KSk4KS+4KST4KSCIOCkteCkvuCksuClhyDgpIXgpKjgpY3igI3gpK8g4KSP4KSq4KWN4KS4IOCkpuCljeCkteCkvuCksOCkviDgpLLgpL7gpJfgpYIg4KSo4KS54KWA4KSCIOCkleClgCDgpJzgpL4g4KS44KSV4KSk4KWALiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjgyNTUyNzQ2OTE0NTc2MDkyMiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkhuCkquCkleClhyDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSu4KWH4KSCIOCkuOCkguCkl+CljeCksOCkueClgOCkpCDgpKzgpY3gpLDgpL7gpIngpJzgpLzgpLAg4KSV4KWHIOCkh+CkpOCkv+CkueCkvuCkuCDgpK/gpL4g4KSs4KWB4KSV4KSu4KS+4KSw4KWN4KSVIOCkleCliyDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkh+CkuOCkuOClhyDgpJDgpKrgpY3gpLggIOCkrOCljeCksOCkvuCkieCknOCkvOCksCDgpKHgpYfgpJ/gpL4g4KSV4KWLIOCkruCkv+Ckn+CkviDgpLjgpJXgpKTgpL4g4KS54KWIIOCkr+CkviDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSwIOCkuOCkleCkpOCkviDgpLngpYguIOCkp+CljeKAjeCkr+CkvuCkqCDgpKbgpYfgpII6IOCkr+CkuSDgpIXgpKjgpYHgpK7gpKTgpL8g4KSk4KWD4KSk4KWA4KSvLeCkquCkleCljeCktyDgpKzgpY3gpLDgpL7gpIngpJzgpLzgpLAg4KSv4KS+IOCkteClh+CkrCDgpKzgpY3gpLDgpL7gpIngpJzgpLzgpL/gpILgpJcg4KSV4KWN4KS34KSu4KSk4KS+4KST4KSCIOCkteCkvuCksuClhyDgpIXgpKjgpY3igI3gpK8g4KSQ4KSq4KWN4KS4ICDgpKbgpY3gpLXgpL7gpLDgpL4g4KSy4KS+4KSX4KWCIOCkqOCkueClgOCkgiDgpJXgpYAg4KSc4KS+IOCkuOCkleCkpOClgC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUhpc3RvcnlCb29rbWFya3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NDk3Mzg5NTMxMDE0MTg1NTA5Ij4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSG4KSq4KSV4KWHIOCkq+CkvOCli+CkqCDgpK7gpYfgpIIg4KS44KSC4KSX4KWN4KSw4KS54KWA4KSkIOCkrOCljeCksOCkvuCkieCknOCkvOCksCDgpJXgpYcg4KSH4KSk4KS/4KS54KS+4KS4IOCkr+CkviDgpKzgpYHgpJXgpK7gpL7gpLDgpY3gpJUg4KSV4KWLIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KSH4KS44KS44KWHIOCkkOCkquCljeCkuCAg4KSs4KWN4KSw4KS+4KSJ4KSc4KS84KSwIOCkoeClh+Ckn+CkviDgpJXgpYsg4KSu4KS/4KSf4KS+IOCkuOCkleCkpOCkviDgpLngpYgg4KSv4KS+IOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLAg4KS44KSV4KSk4KS+IOCkueCliC4g4KSn4KWN4oCN4KSv4KS+4KSoIOCkpuClh+Ckgjog4KSv4KS5IOCkheCkqOClgeCkruCkpOCkvyDgpKTgpYPgpKTgpYDgpK8t4KSq4KSV4KWN4KS3IOCkrOCljeCksOCkvuCkieCknOCkvOCksCDgpK/gpL4g4KS14KWH4KSsIOCkrOCljeCksOCkvuCkieCknOCkvOCkv+CkguCklyDgpJXgpY3gpLfgpK7gpKTgpL7gpJPgpIIg4KS14KS+4KSy4KWHIOCkheCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLggIOCkpuCljeCkteCkvuCksOCkviDgpLLgpL7gpJfgpYIg4KSo4KS54KWA4KSCIOCkleClgCDgpJzgpL4g4KS44KSV4KSk4KWALiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0QWxhcm0iIG1zZ2lkPSIxMzc5Mjk0NTU2MzYyMDkxODE0Ij4i4KSF4KSy4KS+4KSw4KWN4KSuIOCkuOClh+CknyDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbGFybSIgbXNnaWQ9IjMxNjM5MjAzOTE1NzQ3Mzg0OCI+IuCkj+CkquCljeKAjeCkuCDgpJXgpYsg4KSH4KSC4KS44KWN4oCN4KSf4KWJ4KSyIOCkleCkv+CkjyDgpJfgpI8g4KSF4KSy4KS+4KSw4KWN4KSuIOCkmOCkoeCkvOClgCDgpI/gpKrgpY3igI3gpLgg4KSu4KWH4KSCIOCkheCksuCkvuCksOCljeCkriDgpLjgpYfgpJ8g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkueCliyDgpLjgpJXgpKTgpL4g4KS54KWIIOCkleClgeCkmyDgpIXgpLLgpL7gpLDgpY3gpK4g4KSY4KSh4KS84KWAIOCkj+CkquCljeKAjeCkuCDgpK7gpYfgpIIg4KSv4KS5IOCkuOClgeCkteCkv+Ckp+CkviDgpKgg4KS54KWLLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFsYXJtIiBtc2dpZD0iMzE2MzkyMDM5MTU3NDczODQ4Ij4i4KSQ4KSq4KWN4KS4IOCkleCliyDgpIfgpILgpLjgpY3igI3gpJ/gpYngpLIg4KSV4KS/4KSPIOCkl+CkjyDgpIXgpLLgpL7gpLDgpY3gpK4g4KSY4KSh4KS84KWAIOCkkOCkquCljeCkuCDgpK7gpYfgpIIg4KSF4KSy4KS+4KSw4KWN4KSuIOCkuOClh+CknyDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS54KWLIOCkuOCkleCkpOCkviDgpLngpYgg4KSV4KWB4KSbIOCkheCksuCkvuCksOCljeCkriDgpJjgpKHgpLzgpYAg4KSQ4KSq4KWN4KS4IOCkruClh+CkgiDgpK/gpLkg4KS44KWB4KS14KS/4KSn4KS+IOCkqCDgpLngpYsuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hZGRWb2ljZW1haWwiIG1zZ2lkPSI1NTI1NjYwMDI2MDkwOTU5MDQ0Ij4i4KSn4KWN4oCN4KS14KSo4KS/4KSu4KWH4KSyIOCknOCli+CkoeCkvOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FkZFZvaWNlbWFpbCIgbXNnaWQ9IjY2MDQ1MDg2NTE0MjgyNTI0MzciPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkhuCkquCkleClhyDgpKfgpY3igI3gpLXgpKjgpL/gpK7gpYfgpLIg4KSH4KSo4KSs4KWJ4KSV4KWN4oCN4KS4IOCkruClh+CkgiDgpLjgpILgpKbgpYfgpLYg4KSc4KWL4KSh4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWRkVm9pY2VtYWlsIiBtc2dpZD0iNjYwNDUwODY1MTQyODI1MjQzNyI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkhuCkquCkleClhyDgpKfgpY3igI3gpLXgpKjgpL/gpK7gpYfgpLIg4KSH4KSo4KSs4KWJ4KSV4KWN4oCN4KS4IOCkruClh+CkgiDgpLjgpILgpKbgpYfgpLYg4KSc4KWL4KSh4KS84KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUdlb2xvY2F0aW9uUGVybWlzc2lvbnMiIG1zZ2lkPSI1OTYyMjI0MTU4OTU1MjczOTMyIj4i4KSs4KWN4KSw4KS+4KSJ4KSc4KS84KSwIOCkreCljOCkl+Cli+CksuCkv+CklS3gpLjgpY3gpKXgpL7gpKgg4KSF4KSo4KWB4KSu4KSk4KS/4KSv4KWL4KSCIOCkleCliyDgpKzgpKbgpLLgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUdlb2xvY2F0aW9uUGVybWlzc2lvbnMiIG1zZ2lkPSIxMDgzNzQzMjM0NTIyNjM4NzQ3Ij4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpKzgpY3gpLDgpL7gpIngpJzgpLzgpLAg4KSV4KWHIOCkreCljOCkl+Cli+CksuCkv+CklS3gpLjgpY3igI3gpKXgpL7gpKgg4KSV4KWAIOCkheCkqOClgeCkruCkpOCkv+Ckr+CkvuCkgiDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkpuClgeCksOCljeCkreCkvuCkteCkqOCkvuCkquClguCksOCljeCkoyDgpI/gpKrgpY3igI3gpLgg4KSH4KS44KSV4KS+IOCkieCkquCkr+Cli+CklyDgpI/gpJXgpKrgpJXgpY3gpLfgpYDgpK8g4KS14KWH4KSs4KS44KS+4KSH4KSfIOCkleCliyDgpLjgpY3igI3gpKXgpL7gpKgg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkreClh+CknOCkqOClhyDgpK7gpYfgpIIg4KSV4KSwIOCkuOCkleCkpOClhyDgpLngpYjgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iMTA4Mzc0MzIzNDUyMjYzODc0NyI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSs4KWN4KSw4KS+4KSJ4KSc4KS84KSwIOCkleClhyDgpK3gpYzgpJfgpYvgpLLgpL/gpJUt4KS44KWN4oCN4KSl4KS+4KSoIOCkleClgCDgpIXgpKjgpYHgpK7gpKTgpL/gpK/gpL7gpIIg4KS44KSC4KS24KWL4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpKbgpYHgpLDgpY3gpK3gpL7gpLXgpKjgpL7gpKrgpYLgpLDgpY3gpKMg4KSQ4KSq4KWN4KS4IOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSP4KSV4KSq4KSV4KWN4KS34KWA4KSvIOCkteClh+CkrOCkuOCkvuCkh+CknyDgpJXgpYsg4KS44KWN4oCN4KSl4KS+4KSoIOCknOCkvuCkqOCkleCkvuCksOClgCDgpK3gpYfgpJzgpKjgpYcg4KSu4KWH4KSCIOCkleCksCDgpLjgpJXgpKTgpYcg4KS54KWI4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGFja2FnZVZlcmlmaWNhdGlvbkFnZW50IiBtc2dpZD0iNTU2ODEzOTEwMDY0NTgyOTExNyI+IuCkquCliOCkleClh+CknCDgpLjgpKTgpY3igI3gpK/gpL7gpKrgpL/igI3gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGFja2FnZVZlcmlmaWNhdGlvbkFnZW50IiBtc2dpZD0iODQzNzU5MDE5MDk5MDg0MzM4MSI+IuCkj+CkquCljeKAjeCksuCkv+KAjeCkleClh+CktuCkqCDgpJXgpYsg4KSH4KSC4KS44KWN4oCN4KSf4KWJ4KSyIOCkleCksOCkqOClhyDgpK/gpYvgpJfgpY3igI3gpK8g4KSq4KWI4KSV4KWH4KScIOCkuOCkpOCljeKAjeCkr+CkvuCkquCkv+KAjeCkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRQYWNrYWdlVmVyaWZpZXIiIG1zZ2lkPSI0MTg3Nzg2NzkzMzYwMzI2NjU0Ij4i4KSq4KWI4KSV4KWH4KScIOCkquCljeCksOCkruCkvuCko+CklSDgpLjgpYcg4KSG4KSs4KSm4KWN4KSnIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQYWNrYWdlVmVyaWZpZXIiIG1zZ2lkPSIzMTgwNzQxNzczMjMzODYyMTI2Ij4i4KSn4KS+4KSw4KSVIOCkleCliyDgpKrgpYjgpJXgpYfgpJwg4KSq4KWN4KSw4KSu4KS+4KSj4KSVIOCkleClhyDgpIXgpKjgpYHgpLDgpYvgpKcg4KSV4KWAIOCkheCkqOClgeCkruCkpOCkv+KAjSDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3igI3gpK8g4KSP4KSq4KWN4oCN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KSo4KS54KWA4KSCIOCkueCli+CkqOCkviDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFBhY2thZ2VWZXJpZmllciIgbXNnaWQ9IjMxODA3NDE3NzMyMzM4NjIxMjYiPiLgpKfgpL7gpLDgpJUg4KSV4KWLIOCkquCliOCkleClh+CknCDgpKrgpY3gpLDgpK7gpL7gpKPgpJUg4KSV4KWHIOCkheCkqOClgeCksOCli+CkpyDgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/4oCNIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSV4KWHIOCksuCkv+CkjyDgpJXgpK3gpYAg4KSt4KWAIOCkhuCkteCktuCljeKAjeCkr+CklSDgpKjgpLngpYDgpIIg4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlcmlhbFBvcnQiIG1zZ2lkPSI1NDYwODMzMjc2NTQ2MzEwNzYiPiLgpLjgpYDgpLDgpL/gpK/gpLIg4KSq4KWL4KSw4KWN4KSfIOCkquCksCDgpKrgpLngpYHgpILgpJrgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXJpYWxQb3J0IiBtc2dpZD0iMjk5MTYzOTk4NTIyNDU5ODE5MyI+IlNlcmlhbE1hbmFnZXIgQVBJIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KSw4KSV4KWHIOCkp+CkvuCksOCklSDgpJXgpYsg4KS44KWA4KSw4KS/4KSv4KSyIOCkquCli+CksOCljeCknyDgpKrgpLAg4KSq4KS54KWB4KSC4KSaIOCkquCljeCksOCkpuCkvuCkqCDgpJXgpLDgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzQ29udGVudFByb3ZpZGVyc0V4dGVybmFsbHkiIG1zZ2lkPSI1MDc3Nzc0Mjk3OTQzNDA5Mjg1Ij4i4KSs4KS+4KS54KWN4KSvIOCksOClguCkqiDgpLjgpYcg4KS44KS+4KSu4KSX4KWN4KSw4KWAIOCkquCljeCksOCkpuCkvuCkpOCkvuCkk+CkgiDgpKrgpLAg4KSq4KS54KWB4KSC4KSaIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29udGVudFByb3ZpZGVyc0V4dGVybmFsbHkiIG1zZ2lkPSI0NTQ0MzQ2NDg2Njk3ODUzNjg1Ij4i4KSn4KS+4KSw4KSVIOCkleCliyDgpLbgpYfgpLIg4KS44KWHIOCkuOCkvuCkruCkl+CljeCksOClgCDgpKrgpY3gpLDgpKbgpL7gpKTgpL7gpJPgpIIg4KSk4KSVIOCkquCkueClgeCkguCkmuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSP4KSq4KWN4KS4IOCkleClhyDgpLLgpL/gpI8g4KSV4KSt4KWAIOCkreClgCDgpIbgpLXgpLbgpY3gpK/gpJXgpKTgpL4g4KSo4KS54KWA4KSCIOCkueCli+CkqOClgCDgpJrgpL7gpLngpL/gpI8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29udGVudFByb3ZpZGVyc0V4dGVybmFsbHkiIG1zZ2lkPSI0NTQ0MzQ2NDg2Njk3ODUzNjg1Ij4i4KSn4KS+4KSw4KSVIOCkleCliyDgpLbgpYfgpLIg4KS44KWHIOCkuOCkvuCkruCkl+CljeCksOClgCDgpKrgpY3gpLDgpKbgpL7gpKTgpL7gpJPgpIIg4KSk4KSVIOCkquCkueClgeCkguCkmuCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSQ4KSq4KWN4KS4ICDgpJXgpYcg4KSy4KS/4KSPIOCkleCkreClgCDgpK3gpYAg4KSG4KS14KS24KWN4KSv4KSV4KSk4KS+IOCkqOCkueClgOCkgiDgpLngpYvgpKjgpYAg4KSa4KS+4KS54KS/4KSPLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlTG9jayIgbXNnaWQ9IjM1Mjc1NTgzNjY2MTY2ODA4ODkiPiLgpIXgpKrgpKjgpYfgpIbgpKog4KSJ4KSq4KSV4KSw4KSjIOCkleClgCDgpKjgpIgg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkqCDgpLLgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVMb2NrIiBtc2dpZD0iMTY1NTYyNTgzMjE2Njc3ODQ5MiI+IuCkp+CkvuCksOCklSDgpJXgpYsg4KSJ4KSq4KSV4KSw4KSjIOCkheCkquCkl+CljeCksOClh+CkoSDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+Ckjywg4KSX4KWI4KSwLeCkuOCkueCkreCkvuCkl+ClgCDgpLDgpYDgpKzgpYLgpJ8g4KSV4KWHIOCkoOClgOCklSDgpLjgpK7gpK8g4KSV4KWHIOCkrOCkvuCksOClhyDgpK7gpYfgpIIg4KS44KS/4KS44KWN4KSf4KSuIOCkquCksCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSq4KWN4KSw4KS44KWN4KSk4KWB4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfbWVzc2FnZSIgbXNnaWQ9Ijc2NzM0NDY4NzEzOTE5NTc5MCI+IuCkleCljeKAjeCkr+CkviDgpIbgpKog4KSa4KS+4KS54KSk4KWHIOCkueCliOCkgiDgpJXgpL8g4KSs4KWN4KSw4KS+4KSJ4KSc4KS84KSwIOCkquCkvuCkuOCkteCksOCljeCkoSDgpJXgpYsg4KSv4KS+4KSmIOCksOCkluClhz8iPC9zdHJpbmc+CkBAIC0xMTA1LDcgKzExMTIsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ibG93X2ludGVybmFsX3N0b3JhZ2Vfdmlld190aXRsZSIgbXNnaWQ9IjU1NzYyNzI0OTYzNjU2ODQ4MzQiPiLgpLjgpILgpJfgpY3gpLDgpLngpKMg4KS44KWN4oCN4KSl4KS+4KSoIOCkuOCkruCkvuCkquCljeKAjeCkpCDgpLngpYsg4KSw4KS54KS+IOCkueCliCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imxvd19pbnRlcm5hbF9zdG9yYWdlX3ZpZXdfdGV4dCIgbXNnaWQ9IjY2NDA1MDU4MTc2MTc0MTQzNzEiPiLgpLngpYsg4KS44KSV4KSk4KS+IOCkueCliCDgpJXgpYHgpJsg4KS44KS/4KS44KWN4KSf4KSuIOCkq+CkvOCkguCkleCljeCktuCkqCDgpJXgpL7gpLDgpY3gpK8g4KSoIOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFwcF9ydW5uaW5nX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9Ijg3MTgzMzUxMjEwNjA3ODc5MTQiPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+IOCkmuCksiDgpLDgpLngpL4g4KS54KWIIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYXBwX3J1bm5pbmdfbm90aWZpY2F0aW9uX3RleHQiIG1zZ2lkPSI0NjUzNTg2OTQ3NzQ3MzMwMDU4Ij4i4KSF4KSn4KS/4KSVIOCknOCkvuCkqOCkleCkvuCksOClgCDgpJXgpYcg4KSy4KS/4KSPIOCkr+CkviDgpI/gpKrgpY3gpLgg4KSw4KWL4KSV4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KS44KWN4KSq4KSw4KWN4KS2IOCkleCksOClh+Ckgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfcnVubmluZ19ub3RpZmljYXRpb25fdGV4dCIgbXNnaWQ9IjQ2NTM1ODY5NDc3NDczMzAwNTgiPiLgpIXgpKfgpL/gpJUg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkleClhyDgpLLgpL/gpI8g4KSv4KS+IOCkkOCkquCljeCkuCAg4KSw4KWL4KSV4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KS44KWN4KSq4KSw4KWN4KS2IOCkleCksOClh+Ckgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJvayIgbXNnaWQ9IjU5NzAwNjA0MzA1NjI1MjQ5MTAiPiLgpKDgpYDgpJUg4KS54KWIIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNjQ0MjU2MDU3MTI1OTkzNTEzMCI+IuCksOCkpuCljeCkpiDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ5ZXMiIG1zZ2lkPSI1MzYyOTgyMzAzMzM3OTY5MzEyIj4i4KSg4KWA4KSVIOCkueCliCI8L3N0cmluZz4KQEAgLTExMTksOCArMTEyNiw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJhbHdheXNVc2UiIG1zZ2lkPSI0NTgzMDE4MzY4MDAwNjEwNDM4Ij4i4KSH4KS4IOCkleCljeCksOCkv+Ckr+CkviDgpJXgpYcg4KSy4KS/4KSPIOCkoeCkv+Ckq+CkvOClieCksuCljeKAjeCknyDgpLDgpYLgpKog4KS44KWHIOCkieCkquCkr+Cli+CklyDgpJXgpLDgpYfgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY2xlYXJEZWZhdWx0SGludE1zZyIgbXNnaWQ9IjMyNTI1ODQ2ODk1MTIwNzcyNTciPiLgpLjgpL/gpLjgpY3igI3gpJ/gpK4g4KS44KWH4KSf4KS/4KSC4KSXICZndDsgQXBwcyAmZ3Q7IOCkoeCkvuCkieCkqOCksuCli+CkoSDgpJXgpL/gpI8g4KSX4KSPIOCkruClh+CkgiDgpKHgpL/gpKvgpLzgpYngpLLgpY3igI3gpJ8g4KS44KS+4KSrIOCkleCksOClh+Ckgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VBY3Rpdml0eSIgbXNnaWQ9Ijc0ODY4NzYxNDc3NTE4MDMzMzMiPiLgpJXgpYvgpIgg4KSV4KWN4KSw4KS/4KSv4KS+IOCkmuClgeCkqOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNob29zZVVzYkFjdGl2aXR5IiBtc2dpZD0iNjg5NDc0ODQxNjA3MzU4MzUwOSI+IlVTQiDgpIngpKrgpJXgpLDgpKMg4KSV4KWHIOCksuCkv+CkjyDgpJXgpYvgpIgg4KSP4KSq4KWN4KS4IOCkmuClgeCkqOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Im5vQXBwbGljYXRpb25zIiBtc2dpZD0iMjk5MTgxNDI3MzkzNjUwNDY4OSI+IuCkleCli+CkiCDgpK3gpYAg4KSP4KSq4KWN4oCN4KS4IOCkr+CkuSDgpJXgpL7gpLDgpY3gpK/gpLXgpL7gpLngpYAg4KSo4KS54KWA4KSCIOCkleCksCDgpLjgpJXgpKTgpL4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlVXNiQWN0aXZpdHkiIG1zZ2lkPSI2ODk0NzQ4NDE2MDczNTgzNTA5Ij4iVVNCIOCkieCkquCkleCksOCkoyDgpJXgpYcg4KSy4KS/4KSPIOCkleCli+CkiCDgpJDgpKrgpY3gpLggIOCkmuClgeCkqOClh+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vQXBwbGljYXRpb25zIiBtc2dpZD0iMjk5MTgxNDI3MzkzNjUwNDY4OSI+IuCkleCli+CkiCDgpK3gpYAg4KSQ4KSq4KWN4KS4IOCkr+CkuSDgpJXgpL7gpLDgpY3gpK/gpLXgpL7gpLngpYAg4KSo4KS54KWA4KSCIOCkleCksCDgpLjgpJXgpKTgpL4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWVycl90aXRsZSIgbXNnaWQ9IjE5MDU4MDA1NjAzMTcxMzc3NTIiPjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWVycl9hcHBsaWNhdGlvbiIgbXNnaWQ9IjkzMjYyODQ4ODAxMzA5Mjc3NiI+IuCkpuClgeCksOCljeCkreCkvuCkl+CljeKAjeCkr+CkteCktiwgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDgpLDgpYHgpJUg4KSX4KSv4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhZXJyX3Byb2Nlc3MiIG1zZ2lkPSI0NTA3MDU4OTk3MDM1Njk3NTc5Ij4i4KSm4KWB4KSw4KWN4KSt4KS+4KSX4KWN4oCN4KSv4KS14KS2LCA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz4g4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+IOCksOClgeCklSDgpJfgpIgg4KS54KWILiI8L3N0cmluZz4KQEAgLTExMzksMjAgKzExNDYsMjAgQEAKICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9zY2FsZSIgbXNnaWQ9IjMyMDI5NTU2Njc2NzU5NDQ0OTkiPiLgpLjgpY3gpJXgpYfgpLIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fY29tcGF0X21vZGVfc2hvdyIgbXNnaWQ9IjQwMTM4Nzg4NzY0ODY2NTU4OTIiPiLgpLngpK7gpYfgpLbgpL4g4KSm4KS/4KSW4KS+4KSP4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX2hpbnQiIG1zZ2lkPSIxMDY0NTI0MDg0NTQzMzA0NDU5Ij4i4KSH4KS44KWHIOCkuOCkv+CkuOCljeKAjeCkn+CkriDgpLjgpYfgpJ/gpL/gpILgpJcgJmd0OyBBcHBzICZndDsg4KSh4KS+4KSJ4KSo4KSy4KWL4KShIOCkleCkv+CkjyDgpJfgpI8g4KSu4KWH4KSCIOCkquClgeCkqDog4KS44KSV4KWN4KS34KSuIOCkleCksOClh+Ckgi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzbXZfYXBwbGljYXRpb24iIG1zZ2lkPSIzMzA3MjA5MTkyMTU1NDQyODI5Ij4i4KSP4KSq4KWN4oCN4KS4IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4gKOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkviA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTIkczwveGxpZmY6Zz4pIOCkqOClhyDgpIngpLjgpJXgpYAg4KS44KWN4oCN4KS14KSv4KSCIOCksuCkvuCkl+ClgiDgpLngpYvgpKjgpYcg4KS14KS+4KSy4KWAIFN0cmljdE1vZGUg4KSo4KWA4KSk4KS/IOCkleCkviDgpIngpLLgpY3igI3gpLLgpILgpJjgpKgg4KSV4KS/4KSv4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXZfYXBwbGljYXRpb24iIG1zZ2lkPSIzMzA3MjA5MTkyMTU1NDQyODI5Ij4i4KSQ4KSq4KWN4KS4IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4gKOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkviA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTIkczwveGxpZmY6Zz4pIOCkqOClhyDgpIngpLjgpJXgpYAg4KS44KWN4oCN4KS14KSv4KSCIOCksuCkvuCkl+ClgiDgpLngpYvgpKjgpYcg4KS14KS+4KSy4KWAIFN0cmljdE1vZGUg4KSo4KWA4KSk4KS/IOCkleCkviDgpIngpLLgpY3igI3gpLLgpILgpJjgpKgg4KSV4KS/4KSv4KS+IOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzbXZfcHJvY2VzcyIgbXNnaWQ9IjUxMjAzOTcwMTIwNDc0NjI0NDYiPiLgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL4gPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+IOCkqOClhyDgpIngpLjgpJXgpYAg4KS44KWN4oCN4KS1LeCkquCljeCksOCkteCksOCljeCkpOCkv+CkpCBTdHJpY3RNb2RlIOCkqOClgOCkpOCkvyDgpJXgpL4g4KSJ4KSy4KWN4oCN4KSy4KSC4KSY4KSoIOCkleCkv+Ckr+CkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfdGl0bGUiIG1zZ2lkPSIxNTg0MTkyMjg1NDQxNDA1NzQ2Ij4iQW5kcm9pZCDgpIXgpKrgpJfgpY3gpLDgpYfgpKEg4KS54KWLIOCksOCkueCkviDgpLngpYguLi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19hcGsiIG1zZ2lkPSI3OTA0MDQyNjgyMTExNTI2MTY5Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRkPC94bGlmZjpnPiDgpK7gpYfgpIIg4KS44KWHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JTEkZDwveGxpZmY6Zz4g4KSP4KSq4KWN4KS4IOCkheCkqOClgeCkleClguCksuCkv+CkpCDgpLngpYsg4KSw4KS54KS+IOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19zdGFydGluZ19hcHBzIiBtc2dpZD0iNDUxNDY0NTE2MzQ2OTI2NzEzIj4i4KSP4KSq4KWN4KS4IOCkquCljeCksOCkvuCksOCkguCkrSDgpLngpYvgpKjgpYcg4KS14KS+4KSy4KWHIOCkueCliOCkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX2FwayIgbXNnaWQ9Ijc5MDQwNDI2ODIxMTE1MjYxNjkiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJGQ8L3hsaWZmOmc+IOCkruClh+CkgiDgpLjgpYcgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRkPC94bGlmZjpnPiDgpJDgpKrgpY3gpLggIOCkheCkqOClgeCkleClguCksuCkv+CkpCDgpLngpYsg4KSw4KS54KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19zdGFydGluZ19hcHBzIiBtc2dpZD0iNDUxNDY0NTE2MzQ2OTI2NzEzIj4i4KSQ4KSq4KWN4KS4ICDgpKrgpY3gpLDgpL7gpLDgpILgpK0g4KS54KWL4KSo4KWHIOCkteCkvuCksuClhyDgpLngpYjgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19jb21wbGV0ZSIgbXNnaWQ9IjE0MDU5NTQ3NTQxMTI5OTkyMjkiPiLgpKzgpYLgpJ8g4KS44KSu4KS+4KSq4KWN4oCN4KSkIOCkueCliyDgpLDgpLngpL4g4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9ub3RpZmljYXRpb24iIG1zZ2lkPSI5MDg3MDYzOTg1Nzc2NjI2MTY2Ij4iPHhsaWZmOmcgaWQ9IkFQUCI+JTEkczwveGxpZmY6Zz4g4KSa4KSyIOCksOCkueClgCDgpLngpYgiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfbm90aWZpY2F0aW9uX2RldGFpbCIgbXNnaWQ9IjE3MjE2ODE3NDE2MTc4OTg4NjUiPiLgpI/gpKrgpY3igI3gpLgg4KSq4KSwIOCkuOCljeKAjeCkteCkv+CkmiDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpLjgpY3igI3gpKrgpLDgpY3gpLYg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X3N3aXRjaGVyX3RpdGxlIiBtc2dpZD0iNzE1MzE2NzA4NTQwMzI5ODE2OSI+IuCkj+CkquCljeCkuCDgpLjgpY3gpLXgpL/gpJog4KSV4KSw4KWH4KSCPyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9zd2l0Y2hlcl90ZXh0IiBtc2dpZD0iNzAyMjYzMTkyNDUzNDQwNjQwMyI+IuCkpuClguCkuOCksOCkviDgpI/gpKrgpY3gpLgg4KSq4KS54KSy4KWHIOCkuOClhyDgpJrgpLIg4KSw4KS54KS+IOCkueCliCDgpJzgpL/gpLjgpYcg4KSV4KS/4KS44KWAIOCkqOCkjyDgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkquCljeCksOCkvuCksOCkguCkrSDgpJXgpLDgpKjgpYcg4KSV4KWHIOCkquCkueCksuClhyDgpKzgpILgpKYg4KSV4KS/4KSv4KS+IOCknOCkvuCkqOCkviDgpIbgpLXgpLbgpY3igI3gpK/gpJUg4KS54KWILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9ub3RpZmljYXRpb25fZGV0YWlsIiBtc2dpZD0iMTcyMTY4MTc0MTYxNzg5ODg2NSI+IuCkkOCkquCljeCkuCDgpKrgpLAg4KS44KWN4oCN4KS14KS/4KSaIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkuOCljeKAjeCkquCksOCljeCktiDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfc3dpdGNoZXJfdGl0bGUiIG1zZ2lkPSI3MTUzMTY3MDg1NDAzMjk4MTY5Ij4i4KSQ4KSq4KWN4KS4ICDgpLjgpY3gpLXgpL/gpJog4KSV4KSw4KWH4KSCPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9zd2l0Y2hlcl90ZXh0IiBtc2dpZD0iNzAyMjYzMTkyNDUzNDQwNjQwMyI+IuCkpuClguCkuOCksOCkviDgpJDgpKrgpY3gpLggIOCkquCkueCksuClhyDgpLjgpYcg4KSa4KSyIOCksOCkueCkviDgpLngpYgg4KSc4KS/4KS44KWHIOCkleCkv+CkuOClgCDgpKjgpI8g4KSQ4KSq4KWN4KS4IOCkleCliyDgpKrgpY3gpLDgpL7gpLDgpILgpK0g4KSV4KSw4KSo4KWHIOCkleClhyDgpKrgpLngpLLgpYcg4KSs4KSC4KSmIOCkleCkv+Ckr+CkviDgpJzgpL7gpKjgpL4g4KSG4KS14KS24KWN4oCN4KSv4KSVIOCkueCliC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJvbGRfYXBwX2FjdGlvbiIgbXNnaWQ9IjQ5MzEyOTE3MjIzODU2NjI4MiI+Ijx4bGlmZjpnIGlkPSJPTERfQVBQIj4lMSRzPC94bGlmZjpnPiDgpKrgpLAg4KS14KS+4KSq4KS4IOCksuCljOCkn+Clh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Im9sZF9hcHBfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMDgyMDk0Mjc1NTgwMzU4MDQ5Ij4i4KSo4KSv4KS+IOCkj+CkquCljeKAjeCkuCDgpKrgpY3gpLDgpL7gpLDgpILgpK0g4KSoIOCkleCksOClh+Ckgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvbGRfYXBwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjA4MjA5NDI3NTU4MDM1ODA0OSI+IuCkqOCkr+CkviDgpJDgpKrgpY3gpLgg4KSq4KWN4KSw4KS+4KSw4KSC4KStIOCkqCDgpJXgpLDgpYfgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmV3X2FwcF9hY3Rpb24iIG1zZ2lkPSI1NDcyNzU2OTI2OTQ1NDQwNzA2Ij4iPHhsaWZmOmcgaWQ9Ik9MRF9BUFAiPiUxJHM8L3hsaWZmOmc+IOCkquCljeCksOCkvuCksOCkguCkrSDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJuZXdfYXBwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTkzMjE0MzU5ODM3MTUzNzM0MCI+IuCkquClgeCksOCkvuCkqOClhyDgpI/gpKrgpY3igI3gpLgg4KSV4KWLIOCkrOCkv+CkqOCkviDgpLjgpLngpYfgpJzgpYcg4KSs4KSC4KSmIOCkleCksOClh+Ckgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXdfYXBwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTkzMjE0MzU5ODM3MTUzNzM0MCI+IuCkquClgeCksOCkvuCkqOClhyDgpJDgpKrgpY3gpLgg4KSV4KWLIOCkrOCkv+CkqOCkviDgpLjgpLngpYfgpJzgpYcg4KSs4KSC4KSmIOCkleCksOClh+Ckgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZW5kVGV4dCIgbXNnaWQ9IjUyMDk4NzQ1NzE5NTk0NjkxNDIiPiLgpKrgpL7gpKAg4KSV4KWHIOCksuCkv+CkjyDgpJXgpL/gpLjgpYAg4KSV4KWN4KSw4KS/4KSv4KS+IOCkleCliyDgpJrgpYHgpKjgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfcmluZ3RvbmUiIG1zZ2lkPSI2ODg1NDIxNDA2ODQ1NzM0NjUwIj4i4KSw4KS/4KSC4KSX4KSwIOCkteClieCksuCljeKAjeCkr+ClguCkriI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9tdXNpYyIgbXNnaWQ9IjU0MjE2NTExNTcxMzg2MjgxNzEiPiLgpK7gpYDgpKHgpL/gpK/gpL4g4KS14KWJ4KSy4KWN4oCN4KSv4KWC4KSuIjwvc3RyaW5nPgpAQCAtMTIwNCw3ICsxMjExLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzM2MzkwNzIxMzc4NzQ2OTE1MSI+IuCkq+CkvOCli+CkqCA8eGxpZmY6ZyBpZD0iREVWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+IOCkuOClhyDgpJXgpKjgpYfgpJXgpY3gpJ8g4KSw4KS54KSk4KWHIOCkuOCkruCkryBXaS1GaSDgpLjgpYcg4KSF4KS44KWN4KSl4KS+4KSv4KWAIOCksOClguCkqiDgpLjgpYcg4KSh4KS/4KS44KWN4KSV4KSo4KWH4KSV4KWN4KSfIOCkueCliyDgpJzgpL7gpI/gpJfgpL4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfY2hhcmFjdGVyIiBtc2dpZD0iMzM2NTU1MDEyMDYxNzcwMTc0NSI+IuCkteCksOCljeCkoyDgpLjgpK7gpY3igI3gpK7gpL/gpLLgpL/gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfdGl0bGUiIG1zZ2lkPSI3Mjk2NjEyNzgxMTI4OTE3NzE5Ij4iU01TIOCkuOCkguCkpuClh+CktiDgpK3gpYfgpJwg4KSw4KS54KS+IOCkueCliCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX21lc3NhZ2UiIG1zZ2lkPSIzODY3ODk5MTY5NjUxNDk2NDMzIj4iJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDsg4KSs4KSh4KS84KWAIOCkuOCkguCkluCljeCkr+CkviDgpK7gpYfgpIIgU01TIOCkuOCkguCkpuClh+CktiDgpK3gpYfgpJwg4KSw4KS54KS+IOCkueCliC4g4KSV4KWN4KSv4KS+IOCkhuCkqiDgpIfgpLgg4KSP4KSq4KWN4KS4IOCkleCliyDgpLjgpILgpKbgpYfgpLYg4KSt4KWH4KSc4KSo4KS+IOCknOCkvuCksOClgCDgpLDgpJbgpKjgpYcg4KSm4KWH4KSo4KS+IOCkmuCkvuCkueCkpOClhyDgpLngpYjgpII/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfbWVzc2FnZSIgbXNnaWQ9IjM4Njc4OTkxNjk2NTE0OTY0MzMiPiImbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyDgpKzgpKHgpLzgpYAg4KS44KSC4KSW4KWN4KSv4KS+IOCkruClh+CkgiBTTVMg4KS44KSC4KSm4KWH4KS2IOCkreClh+CknCDgpLDgpLngpL4g4KS54KWILiDgpJXgpY3gpK/gpL4g4KSG4KSqIOCkh+CkuCDgpJDgpKrgpY3gpLggIOCkleCliyDgpLjgpILgpKbgpYfgpLYg4KSt4KWH4KSc4KSo4KS+IOCknOCkvuCksOClgCDgpLDgpJbgpKjgpYcg4KSm4KWH4KSo4KS+IOCkmuCkvuCkueCkpOClhyDgpLngpYjgpII/Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfeWVzIiBtc2dpZD0iMzY2MzcyNTk5Mzg1NTgxNjgwNyI+IuCkheCkqOClgeCkruCkpOCkvyDgpKbgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9ubyIgbXNnaWQ9IjYyNTQzODU2MTM5NTUzNDk4MiI+IuCkheCkuOCljeCkteClgOCkleCkvuCksCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX21lc3NhZ2UiIG1zZ2lkPSIxNjQ1NDM2NDY2Mjg1MzEwODU1Ij4iJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDssICZsdDtiJmd0Ozx4bGlmZjpnIGlkPSJERVNUX0FERFJFU1MiPiUyJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyDgpKrgpLAg4KS44KSC4KSm4KWH4KS2IOCkreClh+CknOCkqOCkviDgpJrgpL7gpLngpKTgpL4g4KS54KWILiI8L3N0cmluZz4KQEAgLTEyMTMsNyArMTIyMCw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2FsbG93IiBtc2dpZD0iNDQ1ODg3ODYzNzExMTAyMzQxMyI+IuCkreClh+CknOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fZGVueSIgbXNnaWQ9IjI5MjczODk4NDAyMDkxNzA3MDYiPiLgpLDgpKbgpY3gpKYg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfcmVtZW1iZXJfY2hvaWNlIiBtc2dpZD0iNTI4OTUzODU5MjI3MjIxODEzNiI+IuCkruClh+CksOClgCDgpKrgpLjgpILgpKYg4KSV4KWLIOCkr+CkvuCkpiDgpLDgpJbgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9yZW1lbWJlcl91bmRvX2luc3RydWN0aW9uIiBtc2dpZD0iNDk2MDk0NDEzMzA1MjI4NzQ4NCI+IuCkhuCkqiDgpIfgpLjgpYcg4KSs4KS+4KSmIOCkruClh+CkgiDgpLjgpYfgpJ/gpL/gpILgpJfCoCZndDvCoOCkj+CkquCljeCkuCDgpK7gpYfgpIIg4KSs4KSm4KSyIOCkuOCkleCkpOClhyDgpLngpYjgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9yZW1lbWJlcl91bmRvX2luc3RydWN0aW9uIiBtc2dpZD0iNDk2MDk0NDEzMzA1MjI4NzQ4NCI+IuCkhuCkqiDgpIfgpLjgpYcg4KSs4KS+4KSmIOCkruClh+CkgiDgpLjgpYfgpJ/gpL/gpILgpJfCoCZndDvCoOCkkOCkquCljeCkuCAg4KSu4KWH4KSCIOCkrOCkpuCksiDgpLjgpJXgpKTgpYcg4KS54KWI4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9hbHdheXNfYWxsb3ciIG1zZ2lkPSIzMjQxMTgxMTU0ODY5NDkzMzY4Ij4i4KS54KSu4KWH4KS24KS+IOCkheCkqOClgeCkruCkpOCkvyDgpKbgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX25ldmVyX2FsbG93IiBtc2dpZD0iNDQ2OTkyNzY1Nzc0MjY5NjczIj4i4KSV4KSt4KWAIOCkreClgCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSoIOCkpuClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNpbV9yZW1vdmVkX3RpdGxlIiBtc2dpZD0iNjIyNzcxMjMxOTIyMzIyNjE4NSI+IuCkuOCkv+CkruCkleCkvuCksOCljeCkoSDgpKjgpL/gpJXgpL7gpLLgpL4g4KSX4KSv4KS+Ijwvc3RyaW5nPgpAQCAtMTI0Nyw3ICsxMjU0LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfYnV0dG9uX21vdW50IiBtc2dpZD0iNzA2MDIxODAzNDkwMDY5NjAyOSI+IlVTQiDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSs4KSC4KSmIOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfZXJyb3JfbWVzc2FnZSIgbXNnaWQ9IjE5NzAzNzQ4OTgyNjMwNjM4MzYiPiJVU0Ig4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkrOCkguCkpiDgpJXgpLDgpKjgpYcg4KSu4KWH4KSCIOCkleCli+CkiCDgpLjgpK7gpLjgpY3igI3gpK/gpL4g4KS54KWB4KSIIOCkpeClgC4g4KSc4KS+4KSC4KSa4KWH4KSCIOCkleCkvyDgpIbgpKrgpKjgpYcgVVNCIOCkueCli+CkuOCljeKAjeCknyDgpIXgpKjgpK7gpL7gpIngpILgpJ8g4KSV4KS/4KSv4KS+IOCkueCliCDgpK/gpL4g4KSo4KS54KWA4KSCLCDgpKTgpKwg4KSq4KWB4KSoOiDgpKrgpY3gpLDgpK/gpL7gpLgg4KSV4KSw4KWH4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190aXRsZSIgbXNnaWQ9Ijk2MzAzOTAzMzQ3MDQ3ODY5NyI+IlVTQiDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSa4KS+4KSy4KWCIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190ZXh0IiBtc2dpZD0iNTEwMDQyODc1NzEwNzQ2OTQ1NCI+IuCkr+CkpuCkvyDgpIbgpKogVVNCIOCkuOCkguCkl+CljeCksOCkueCkoyDgpJrgpL7gpLLgpYIg4KSV4KSw4KSk4KWHIOCkueCliOCkgiwg4KSk4KWLIOCkhuCkquCkleClhyDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCkv+CkjyDgpJzgpL4g4KSw4KS54KWHIOCkleClgeCkmyDgpI/gpKrgpY3igI3gpLgg4KSw4KWB4KSVIOCknOCkvuCkj+CkguCkl+ClhyDgpJTgpLAg4KS54KWLIOCkuOCkleCkpOCkviDgpLngpYgg4KSV4KS/IOCkteClhyDgpKTgpKwg4KSk4KSVIOCkheCkqOClgeCkquCksuCkrOCljeKAjeCkpyDgpLDgpLngpYfgpIIg4KSc4KSsIOCkpOCklSDgpJXgpL8g4KSG4KSqIFVTQiDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSs4KSC4KSmIOCkqOCkueClgOCkgiDgpJXgpLAg4KSm4KWH4KSk4KWHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190ZXh0IiBtc2dpZD0iNTEwMDQyODc1NzEwNzQ2OTQ1NCI+IuCkr+CkpuCkvyDgpIbgpKogVVNCIOCkuOCkguCkl+CljeCksOCkueCkoyDgpJrgpL7gpLLgpYIg4KSV4KSw4KSk4KWHIOCkueCliOCkgiwg4KSk4KWLIOCkhuCkquCkleClhyDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCkv+CkjyDgpJzgpL4g4KSw4KS54KWHIOCkleClgeCkmyDgpJDgpKrgpY3gpLgg4KSw4KWB4KSVIOCknOCkvuCkj+CkguCkl+ClhyDgpJTgpLAg4KS54KWLIOCkuOCkleCkpOCkviDgpLngpYgg4KSV4KS/IOCkteClhyDgpKTgpKwg4KSk4KSVIOCkheCkqOClgeCkquCksuCkrOCljeKAjeCkpyDgpLDgpLngpYfgpIIg4KSc4KSsIOCkpOCklSDgpJXgpL8g4KSG4KSqIFVTQiDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSs4KSC4KSmIOCkqOCkueClgOCkgiDgpJXgpLAg4KSm4KWH4KSk4KWHLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRsZ19lcnJvcl90aXRsZSIgbXNnaWQ9IjczMjM2NTg0Njk2MjY1MTQyMDciPiJVU0Ig4KSV4KS+4KSw4KWN4KSv4KS14KS+4KS54KWAIOCkteCkv+Ckq+CksiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRsZ19vayIgbXNnaWQ9IjczNzY5NTMxNjcwMzk4NjU3MDEiPiLgpKDgpYDgpJUg4KS54KWIIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXNiX210cF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIzNjk5OTEzMDk3MzkxNTUwMzk0Ij4i4KSV4KS/4KS44KWAIOCkruClgOCkoeCkv+Ckr+CkviDgpIngpKrgpJXgpLDgpKMg4KSV4KWHIOCksOClguCkqiDgpK7gpYfgpIIg4KSV4KSo4KWH4KSV4KWN4oCN4KSfIOCkleCkv+Ckr+CkviDgpJfgpK/gpL4iPC9zdHJpbmc+CkBAIC0xMjk2LDE1ICsxMzAzLDE1IEBACiAgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM4NzAxMjA2NTI5ODM2NTk2NDEiPiJTRCDgpJXgpL7gpLDgpY3gpKEg4KSo4KS/4KSV4KS+4KSy4KS+IOCkl+Ckr+Ckvi4g4KSP4KSVIOCkqOCkr+CkviDgpLjgpK7gpY3igI3gpK7gpL/gpLLgpL/gpKQg4KSV4KSw4KWH4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2xpc3RfZW1wdHkiIG1zZ2lkPSIxNjc1Mzg4MzMwNzg2ODQxMDY2Ij4i4KSV4KWL4KSIIOCkruCkv+CksuCkpOClgC3gpJzgpYHgpLLgpKTgpYAg4KSX4KSk4KS/4KS14KS/4KSn4KS/IOCkqOCkueClgOCkgiDgpK7gpL/gpLLgpYAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wa2dVc2FnZVN0YXRzIiBtc2dpZD0iODc4NzM1MjA3NDMyNjc0ODg5MiI+IuCkmOCkn+CklSDgpIngpKrgpK/gpYvgpJcg4KSG4KSC4KSV4KSh4KS84KWL4KSCIOCkleClgCDgpKjgpIgg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkquCkvuCkj+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BrZ1VzYWdlU3RhdHMiIG1zZ2lkPSIxMTA2NjEyNDI0MjU0Mjc3NjMwIj4i4KSP4KSq4KWN4oCN4KS4IOCkleCliyDgpJjgpJ/gpJUg4KSJ4KSq4KSv4KWL4KSXIOCkleClhyDgpLjgpILgpJXgpLLgpL/gpKQg4KSG4KSC4KSV4KSh4KS84KWHIOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkj+CkquCljeKAjeCkuCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkqOCkueClgOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wa2dVc2FnZVN0YXRzIiBtc2dpZD0iMTEwNjYxMjQyNDI1NDI3NzYzMCI+IuCkkOCkquCljeCkuCDgpJXgpYsg4KSY4KSf4KSVIOCkieCkquCkr+Cli+CklyDgpJXgpYcg4KS44KSC4KSV4KSy4KS/4KSkIOCkhuCkguCkleCkoeCkvOClhyDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpKjgpLngpYDgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzNDEwMzYzMTEyMTE0MDY2OTIiPiLgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSV4KWAIOCkquCljeCksOCkpOCkv+CksuCkv+CkquCkvyDgpKzgpKjgpL7gpI/gpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzOTA2OTcxMjQyODgzMTc4MzEiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkuOCkvuCkruCkl+CljeCksOClgCDgpJXgpYAg4KSq4KWN4KSw4KSk4KS/4KSy4KS/4KSq4KS/IOCkrOCkqOCkvuCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkoeCkv+Ckq+CkvOClieCksuCljeCknyDgpJXgpILgpJ/gpYfgpKjgpLAg4KS44KWH4KS14KS+IOCktuClgeCksOClgiDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KS+IOCkueCliC4g4KS44KS+4KSu4KS+4KSo4KWN4oCN4KSvIOCkj+CkquCljeKAjeCkuCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkqOCkueClgOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzOTA2OTcxMjQyODgzMTc4MzEiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSV4KWAIOCkquCljeCksOCkpOCkv+CksuCkv+CkquCkvyDgpKzgpKjgpL7gpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpKHgpL/gpKvgpLzgpYngpLLgpY3gpJ8g4KSV4KSC4KSf4KWH4KSo4KSwIOCkuOClh+CkteCkviDgpLbgpYHgpLDgpYIg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIOCkuOCkvuCkruCkvuCkqOCljeKAjeCkryDgpJDgpKrgpY3gpLgg4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpKjgpLngpYDgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yb3V0ZV9tZWRpYV9vdXRwdXQiIG1zZ2lkPSIxNjQyMDI0NDU1NzUwNDE0Njk0Ij4i4KSu4KWA4KSh4KS/4KSv4KS+IOCkhuCkieCkn+CkquClgeCknyDgpJXgpYsg4KSw4KWC4KSfIOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JvdXRlX21lZGlhX291dHB1dCIgbXNnaWQ9IjQ5MzI4MTg3NDk1NDcyNDQzNDYiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkruClgOCkoeCkv+Ckr+CkviDgpIbgpIngpJ/gpKrgpYHgpJ8g4KSV4KWLIOCkheCkqOCljeCkryDgpKzgpL7gpLngpLDgpYAg4KSJ4KSq4KSV4KSw4KSj4KWL4KSCIOCkquCksCDgpLDgpYLgpJ8g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfcm91dGVfbWVkaWFfb3V0cHV0IiBtc2dpZD0iNDkzMjgxODc0OTU0NzI0NDM0NiI+IuCkkOCkquCljeCkuCAg4KSV4KWLIOCkruClgOCkoeCkv+Ckr+CkviDgpIbgpIngpJ/gpKrgpYHgpJ8g4KSV4KWLIOCkheCkqOCljeCkryDgpKzgpL7gpLngpLDgpYAg4KSJ4KSq4KSV4KSw4KSj4KWL4KSCIOCkquCksCDgpLDgpYLgpJ8g4KSV4KSw4KSo4KWHIOCkpuClh+CkpOCkviDgpLngpYguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3Nfa2V5Z3VhcmRfc2VjdXJlX3N0b3JhZ2UiIG1zZ2lkPSI3NTY1NTUyMjM3OTc3ODE1MDQ3Ij4i4KSV4KWA4KSX4KS+4KSw4KWN4KShIOCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSP4KSV4KWN4KS44KWH4KS4IOCkleCksOClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc19rZXlndWFyZF9zZWN1cmVfc3RvcmFnZSIgbXNnaWQ9IjU4NjYyNDU0ODQzMDMyODU3NjIiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkleClgOCkl+CkvuCksOCljeCkoSDgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkj+CkleCljeCkuOClh+CkuCDgpJXgpLDgpKjgpYcg4KSm4KWH4KSk4KWAIOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3Nfa2V5Z3VhcmRfc2VjdXJlX3N0b3JhZ2UiIG1zZ2lkPSI1ODY2MjQ1NDg0MzAzMjg1NzYyIj4i4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KSV4KWA4KSX4KS+4KSw4KWN4KShIOCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpLjgpILgpJfgpY3gpLDgpLngpKMg4KSP4KSV4KWN4KS44KWH4KS4IOCkleCksOCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbF9rZXlndWFyZCIgbXNnaWQ9IjE3MjE5NTE4NDIwNzgyODM4NyI+IuCkleClgOCkl+CkvuCksOCljeCkoSDgpKbgpL/gpJbgpL7gpKjgpL4g4KSU4KSwIOCkm+Ckv+CkquCkvuCkqOCkviDgpKjgpL/gpK/gpILgpKTgpY3gpLDgpL/gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29udHJvbF9rZXlndWFyZCIgbXNnaWQ9IjMwNDM3MzIyOTA1MTg2MjkwNjEiPiLgpI/gpKrgpY3gpLgg4KSV4KWLIOCkleClgOCkl+CkvuCksOCljeCkoSDgpKjgpL/gpK/gpILgpKTgpY3gpLDgpL/gpKQg4KSV4KSw4KSo4KWHIOCkpuClh+CkpOClgCDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29udHJvbF9rZXlndWFyZCIgbXNnaWQ9IjMwNDM3MzIyOTA1MTg2MjkwNjEiPiLgpJDgpKrgpY3gpLggIOCkleCliyDgpJXgpYDgpJfgpL7gpLDgpY3gpKEg4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KS/4KSkIOCkleCksOCkqOClhyDgpKbgpYfgpKTgpYAg4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InR1dG9yaWFsX2RvdWJsZV90YXBfdG9fem9vbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNDA3MDQzMzIwODE2MDA2MzUzOCI+IuCknOCkvOClguCkriDgpKjgpL/gpK/gpILgpKTgpY3gpLDgpKMg4KSV4KWHIOCksuCkv+CkjyDgpKbgpYsg4KSs4KS+4KSwIOCkuOCljeCkquCksOCljeCktiDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJnYWRnZXRfaG9zdF9lcnJvcl9pbmZsYXRpbmciIG1zZ2lkPSI0ODgyMDA0MzE0OTA2NDY2MTYyIj4i4KS14KS/4KSc4KWH4KSfIOCkqOCkueClgOCkgiDgpJzgpYvgpKHgpLzgpL4g4KSc4KS+IOCkuOCkleCkvi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX2dvIiBtc2dpZD0iODMyMDg0NTY1MTczNzM2OTAyNyI+IuCknOCkvuCkj+CkgiI8L3N0cmluZz4KQEAgLTEzMTYsNyArMTMyMyw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX2RlZmF1bHQiIG1zZ2lkPSIyODQwOTIxODg1NTU4MDQ1NzIxIj4i4KSo4KS/4KS34KWN4oCN4KSq4KS+4KSm4KS/4KSkIOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRpYWxfbnVtYmVyX3VzaW5nIiBtc2dpZD0iNTc4OTE3NjQyNTE2NzU3MzU4NiI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVzPC94bGlmZjpnPiDgpJXgpYcg4KSJ4KSq4KSv4KWL4KSXIOCkpuCljeCkteCkvuCksOCkviBcbiDgpKjgpILgpKzgpLAg4KSh4KS+4KSv4KSyIOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9jb250YWN0X3VzaW5nIiBtc2dpZD0iNDk0NzQwNTIyNjc4ODEwNDUzOCI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVzPC94bGlmZjpnPiDgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkleClh1xuIOCkuOCkguCkquCksOCljeCklSDgpKzgpKjgpL7gpI/gpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJncmFudF9jcmVkZW50aWFsc19wZXJtaXNzaW9uX21lc3NhZ2VfaGVhZGVyIiBtc2dpZD0iMjEwNjEwMzgxNzkzNzg1OTY2MiI+IuCkqOCkv+CkruCljeKAjeCkqCDgpI/gpJUg4KSv4KS+IOCkheCkp+Ckv+CklSDgpI/gpKrgpY3igI3gpLgg4KSF4KSt4KWAIOCklOCksCDgpK3gpLXgpL/gpLfgpY3igI3gpK8g4KSu4KWH4KSCIOCkhuCkquCkleClhyDgpJbgpL7gpKTgpYcg4KSu4KWH4KSCIOCkquCkueClgeCkguCkmiDgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/IOCkleCkviDgpIXgpKjgpYHgpLDgpYvgpKcg4KSV4KSw4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9jcmVkZW50aWFsc19wZXJtaXNzaW9uX21lc3NhZ2VfaGVhZGVyIiBtc2dpZD0iMjEwNjEwMzgxNzkzNzg1OTY2MiI+IuCkqOCkv+CkruCljeKAjeCkqCDgpI/gpJUg4KSv4KS+IOCkheCkp+Ckv+CklSDgpJDgpKrgpY3gpLgg4KSF4KSt4KWAIOCklOCksCDgpK3gpLXgpL/gpLfgpY3igI3gpK8g4KSu4KWH4KSCIOCkhuCkquCkleClhyDgpJbgpL7gpKTgpYcg4KSu4KWH4KSCIOCkquCkueClgeCkguCkmiDgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/IOCkleCkviDgpIXgpKjgpYHgpLDgpYvgpKcg4KSV4KSw4KSk4KWHIOCkueCliOCkgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncmFudF9jcmVkZW50aWFsc19wZXJtaXNzaW9uX21lc3NhZ2VfZm9vdGVyIiBtc2dpZD0iMzEyNTIxMTM0MzM3OTM3NjU2MSI+IuCkleCljeCkr+CkviDgpIbgpKog4KSH4KS4IOCkheCkqOClgeCksOCli+CkpyDgpJXgpYsg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuClh+CkqOCkviDgpJrgpL7gpLngpKTgpYcg4KS54KWI4KSCPyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImdyYW50X3Blcm1pc3Npb25zX2hlYWRlcl90ZXh0IiBtc2dpZD0iNjg3NDQ5NzQwODIwMTgyNjcwOCI+IuCkquCkueClgeCkguCkmiDgpIXgpKjgpYHgpLDgpYvgpKciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbGxvdyIgbXNnaWQ9IjcyMjU5NDg4MTEyOTYzODY1NTEiPiLgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KWH4KSCIjwvc3RyaW5nPgpAQCAtMTQxMyw3ICsxNDIwLDggQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX21vZGVfY2hhbmdlIiBtc2dpZD0iNDU0NzM4Nzc0MTkwNjUzNzUxOSI+Ik1vZGUgY2hhbmdlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IuCkleCli+CkiCDgpI/gpKrgpY3igI3gpLgg4KSa4KWB4KSo4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4i4KSV4KWL4KSIIOCkkOCkquCljeCkuCDgpJrgpYHgpKjgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+IOCkleCliyDgpLLgpYngpKjgpY3gpJog4KSo4KS54KWA4KSCIOCkleCkv+Ckr+CkviDgpJzgpL4g4KS44KSV4KS+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4i4KSH4KS44KSV4KWHIOCkuOCkvuCkpSDgpLjgpL7gpJ3gpL4g4KSV4KSw4KWH4KSCOiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+IOCkleClhyDgpLjgpL7gpKUg4KS44KS+4KSd4KS+IOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiLgpLjgpY3gpLLgpL7gpIfgpKHgpL/gpILgpJcg4KS54KWI4KSC4KSh4KSyLiDgpLjgpY3gpKrgpLDgpY3gpLYg4KSV4KSw4KSV4KWHIOCksOCkluClh+Ckgi4iPC9zdHJpbmc+CkBAIC0xNTQzLDggKzE1NTEsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNlcl9zd2l0Y2hlZCIgbXNnaWQ9IjM3NjgwMDY3ODMxNjY5ODQ0MTAiPiLgpLXgpLDgpY3gpKTgpK7gpL7gpKgg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IDx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJvd25lcl9uYW1lIiBtc2dpZD0iMjcxNjc1NTQ2MDM3NjAyODE1NCI+IuCkuOCljeCkteCkvuCkruClgCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImVycm9yX21lc3NhZ2VfdGl0bGUiIG1zZ2lkPSI0NTEwMzczMDgzMDgyNTAwMTk1Ij4i4KSk4KWN4KSw4KWB4KSf4KS/Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYXBwX25vX3Jlc3RyaWN0ZWRfYWNjb3VudHMiIG1zZ2lkPSI1NzM5NDYzMjQ5NjczNzI3NzM2Ij4i4KSv4KS5IOCkj+CkquCljeCkuCDgpKrgpY3gpLDgpKTgpL/gpKzgpILgpKfgpL/gpKQg4KSq4KWN4KSw4KWL4KSr4KS84KS+4KSH4KSyIOCkleClhyDgpJbgpL7gpKTgpYvgpIIg4KSV4KS+IOCkuOCkruCksOCljeCkpeCkqCDgpKjgpLngpYDgpIIg4KSV4KSw4KSk4KS+IOCkueCliCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFwcF9ub3RfZm91bmQiIG1zZ2lkPSIzNDI5MTQxODUzNDk4OTI3Mzc5Ij4i4KSH4KS4IOCkleCkvuCksOCljeCkr+CkteCkvuCkueClgCDgpJXgpYsg4KSq4KWN4KSw4KSs4KSC4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkleCli+CkiCDgpI/gpKrgpY3gpLgg4KSo4KS54KWA4KSCIOCkruCkv+CksuCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9ub19yZXN0cmljdGVkX2FjY291bnRzIiBtc2dpZD0iNTczOTQ2MzI0OTY3MzcyNzczNiI+IuCkr+CkuSDgpJDgpKrgpY3gpLggIOCkquCljeCksOCkpOCkv+CkrOCkguCkp+Ckv+CkpCDgpKrgpY3gpLDgpYvgpKvgpLzgpL7gpIfgpLIg4KSV4KWHIOCkluCkvuCkpOCli+CkgiDgpJXgpL4g4KS44KSu4KSw4KWN4KSl4KSoIOCkqOCkueClgOCkgiDgpJXgpLDgpKTgpL4g4KS54KWIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX25vdF9mb3VuZCIgbXNnaWQ9IjM0MjkxNDE4NTM0OTg5MjczNzkiPiLgpIfgpLgg4KSV4KS+4KSw4KWN4KSv4KS14KS+4KS54KWAIOCkleCliyDgpKrgpY3gpLDgpKzgpILgpKfgpL/gpKQg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSV4KWL4KSIIOCkkOCkquCljeCkuCAg4KSo4KS54KWA4KSCIOCkruCkv+CksuCkviI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InJldm9rZSIgbXNnaWQ9IjU0MDQ0NzkxODUyMjgyNzE1ODYiPiLgpKjgpL/gpLDgpLjgpY3igI3gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFzaXplX2lzb19hMCIgbXNnaWQ9IjE5OTQ0NzQyNTI5MzEyOTQxNzIiPiJJU08gQTAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWRpYXNpemVfaXNvX2ExIiBtc2dpZD0iMzMzMzA2MDQyMTUyOTc5MTc4NiI+IklTTyBBMSI8L3N0cmluZz4KQEAgLTE2NTAsNCArMTY1OCwxNSBAQAogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4i4KSs4KS+4KSmIOCkruClh+CkgiDgpKrgpYHgpKjgpIMg4KSq4KWN4KSw4KSv4KS+4KS4IOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiLgpKrgpYLgpLDgpY3gpKMg4KS44KWN4KSV4KWN4KSw4KWA4KSoIOCkuOClhyDgpKzgpL7gpLngpLAg4KSG4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSK4KSq4KSwIOCkuOClhyDgpKjgpYDgpJrgpYcg4KS44KWN4KS14KS+4KSH4KSqIOCkleCksOClh+Ckgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IuCkquClguCksOCljeCkoyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IuCkmOCkguCkn+CliyDgpJXgpL4g4KSa4KSV4KWN4KSw4KS+4KSV4KS+4KSwIOCkuOCljeCksuCkvuCkh+CkoeCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4i4KSu4KS/4KSo4KSf4KWL4KSCIOCkleCkviDgpJrgpJXgpY3gpLDgpL7gpJXgpL7gpLAg4KS44KWN4KSy4KS+4KSH4KSh4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IuCkmOCkguCkn+ClhyDgpJrgpYHgpKjgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiLgpK7gpL/gpKjgpJ8g4KSa4KWB4KSo4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiLgpKbgpL/gpKjgpYvgpIIg4KSV4KWAIOCkruCkvuCkuSDgpJfgpY3gpLDgpL/gpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLgpLXgpLDgpY3gpLcg4KSV4KWAIOCkuOClguCkmuClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4i4KSu4KS+4KS5IOCklOCksCDgpKbgpL/gpKgg4KSa4KWB4KSo4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4i4KS14KSw4KWN4KS3IOCkmuClgeCkqOClh+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiI8eGxpZmY6ZyBpZD0iSVRFTSI+JTEkczwveGxpZmY6Zz4g4KSa4KSv4KSo4KS/4KSkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4g4KSV4KWLIOCkueCkn+CkviDgpKbgpL/gpK/gpL4g4KSX4KSv4KS+Ijwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWhyL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1oci9zdHJpbmdzLnhtbAppbmRleCAzN2RjMTQxLi5lOTFhNzczIDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWhyL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtaHIvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IlVwacWhaXRlIFBVSyBrb2ppIHNlIHNhc3Rvamkgb2QgYmFyZW0gOCBicm9qZXZhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJWYcWhYSBqZSBTSU0ga2FydGljYSB6YWtsanXEjWFuYSBQVUstb20uIFVuZXNpdGUgUFVLIGvDtGQgZGEgYmlzdGUgamUgb3RrbGp1xI1hbGkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iVW5lc2l0ZSBQVUsyIGRhIGJpc3RlIG9kYmxva2lyYWxpIFNJTSBrYXJ0aWN1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+Ik5ldXNwamXFoW5vOyBvbW9ndcSHaSB6YWtsanXEjWF2YW5qZSBTSU0vUlVJTS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiJJbWF0ZSBqb8WhIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwb2t1xaFhaiBwcmlqZSB6YWtsanXEjWF2YW5qYSBTSU0ga2FydGljZS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJJbWF0ZSBqb8WhIG5la29saWtvIHByZW9zdGFsaWggcG9rdcWhYWphICg8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4pIHByaWplIHpha2xqdcSNYXZhbmphIFNJTSBrYXJ0aWNlLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iSUQgZG9sYXpub2cgcG96aXZhdGVsamEiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IkFwbGlrYWNpamkgb21vZ3XEh3VqZSB1cG90cmVidSB6bmHEjWFqa2kgbmlza2UgcmF6aW5lIFN1cmZhY2VGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+IsSNaXRhbmplIG1lxJF1c3ByZW1uaWthIG9rdmlyYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJBcGxpa2FjaWppIG9tb2d1xId1amUgxI1pdGFuamUgc2FkcsW+YWphIG1lxJF1c3ByZW1uaWthIG9rdmlyYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJwcmlzdHVwaSBJbnB1dEZsaW5nZXJ1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IkRvcHXFoXRhIGFwbGlrYWNpamkgdXBvdHJlYnUgem5hxI1hamtpIG5pc2tlIHJhemluZSBJbnB1dEZsaW5nZXJhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4ia29uZmlndXJpcmFqIFdpZmkgemFzbG9uZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+Ik9tb2d1xId1amUgYXBsaWthY2lqaSBrb25maWd1cmlyYW5qZSBpIHBvdmV6aXZhbmplIHMgV2ktRmkgemFzbG9uaW1hLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4idXByYXZsamFqIFdpZmkgemFzbG9uaW1hIjwvc3RyaW5nPgpAQCAtMTQxNCw2ICsxNDIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRW50ZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiJPZGFiaXIgYXBsaWthY2lqZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+Ik5pamUgbW9ndcSHZSBwb2tyZW51dGkgYXBsaWthY2lqdSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4iRGlqZWxqZW5qZSBzYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiJEaWplbGkgcyBhcGxpa2FjaWpvbSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+IktsaXpuYSBydcSNa2EuIERvZGlybml0ZSBpIGRyxb5pdGUuIjwvc3RyaW5nPgpAQCAtMTY1MCw0ICsxNjU4LDE1IEBACiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJQb2t1xaFhanRlIHBvbm92byBrYXNuaWplIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IlByaWplxJFpdGUgcHJzdG9tIHMgdnJoYSBwcmVtYSBkb2xqZSB6YSBpemxheiBpeiBjaWplbG9nIHphc2xvbmEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiJHb3Rvdm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiJLcnXFvm5pIGtsaXphxI0gc2F0aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4iS3J1xb5uaSBrbGl6YcSNIG1pbnV0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiJPZGFiZXJpdGUgc2F0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+Ik9kYWJlcml0ZSBtaW51dGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+Ik1yZcW+YSBkYW5hIHUgbWplc2VjdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTUyNDMzMTIwNzQzNjA1MjQwMyI+IlBvcGlzIGdvZGluYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iT2RhYmVyaXRlIG1qZXNlYyBpIGRhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+Ik9kYWJlcml0ZSBnb2RpbnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iT2RhYnJhbmEgamUgc3RhdmthIDx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+Ikl6YnJpc2FuIGplIGJyb2ogPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtaHUvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWh1L3N0cmluZ3MueG1sCmluZGV4IDRhZTU5MzguLjhjZjZmNzQgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtaHUvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1odS9zdHJpbmdzLnhtbApAQCAtNTAsNiArNTAsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4iOCBzesOhbWplZ3nFsSB2YWd5IGhvc3N6YWJiIFBVSyBrw7Nkb3Qgw61yam9uIGJlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJBIFNJTS1rw6FydHlhIGxlIHZhbiB6w6FydmEgYSBQVUsta8OzZGRhbC4gQSBmZWxvbGTDoXNob3ogYWRqYSBtZWcgYSBQVUsta8OzZG90LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IkEgU0lNLWvDoXJ0eWEgZmVsb2xkw6Fzw6Fob3ogYWRqYSBtZWcgYSBQVUsyLWvDs2RvdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiJTaWtlcnRlbGVuLCBlbmdlZMOpbHllenplIGEgU0lNLS9SVUlNLXrDoXJvbMOhc3QuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iTcOpZyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gcHLDs2LDoWxrb3rDoXNhIHZhbiwgbWllbMWRdHQgesOhcm9sanVrIGEgU0lNIGvDoXJ0ecOhdC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJNw6lnIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwcsOzYsOhbGtvesOhc2EgdmFuLCBtaWVsxZF0dCB6w6Fyb2xqdWsgYSBTSU0ga8OhcnR5w6F0LiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iQmXDqXJrZXrFkSBow612w7Nhem9ub3PDrXTDsyI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4iTGVoZXTFkXbDqSB0ZXN6aSBheiBhbGthbG1hesOhcyBzesOhbcOhcmEgYSBTdXJmYWNlRmxpbmdlciBhbGFjc29ueSBzemludMWxIGZ1bmtjacOzayBoYXN6bsOhbGF0w6F0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+ImtlcmV0cHVmZmVyIG9sdmFzw6FzYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJMZWhldMWRdsOpIHRlc3ppIGF6IGFsa2FsbWF6w6FzIHN6w6Ftw6FyYSBhIGtlcmV0cHVmZmVyIHRhcnRhbG3DoW5hayBvbHZhc8Ohc8OhdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJob3p6w6Fmw6lyw6lzIGF6IElucHV0RmxpbmdlcmhleiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJMZWhldMWRdsOpIHRlc3ppIGF6IGFsa2FsbWF6w6FzIHN6w6Ftw6FyYSBheiBJbnB1dEZsaW5nZXIgYWxhY3Nvbnkgc3ppbnTFsSBmdW5rY2nDs2sgaGFzem7DoWxhdMOhdC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+IldpLUZpIGtpamVsesWRayBrb25maWd1csOhbMOhc2EiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJMZWhldMWRdsOpIHRlc3ppLCBob2d5IGF6IGFsa2FsbWF6w6FzIFdpLUZpIGtpamVsesWRa2V0IGtvbmZpZ3Vyw6Fsam9uLCDDqXMgY3NhdGxha296em9uIGhvenrDoWp1ay4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+IldpLUZpIGtpamVsesWRayBpcsOhbnnDrXTDoXNhIjwvc3RyaW5nPgpAQCAtMTQxNCw2ICsxNDIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRW50ZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiJWw6FsYXNzem9uIGtpIGVneSBhbGthbG1hesOhc3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiJBKHopIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4gYWxrYWxtYXrDoXN0IGluZMOtdMOhc2EgbmVtIHNpa2Vyw7xsdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+Ik1lZ29zenTDoXMgYSBrw7Z2ZXRrZXrFkXZlbDoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4iT3NzemEgbWVnIGEga8O2dmV0a2V6xZEgYWxrYWxtYXrDoXNzYWw6IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iQ3PDunN6dGF0aGF0w7MgZm9nYW50ecO6LiDDiXJpbnRzZSBtZWcgw6lzIHRhcnRzYS4iPC9zdHJpbmc+CkBAIC0xNjQ5LDUgKzE2NTcsMTYgQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NzMwODY4OTIwNzQyOTUyODE3Ij4iUHLDs2LDoWxqYSDDumpyYSA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBtw6Fzb2RwZXJjIG3Dumx2YSI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJQcsOzYsOhbGtvenpvbiBrw6lzxZFiYiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJBIHRlbGplcyBrw6lwZXJuecWRcyBuw6l6ZXRixZFsIHZhbMOzIGtpbMOpcMOpc2hleiBow7p6emEgdWpqw6F0IGEgdGV0ZWrDqXTFkWwgbGVmZWzDqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4iQSB0ZWxqZXMga8OpcGVybnnFkXMgbsOpemV0YsWRbCB2YWzDsyBraWzDqXDDqXNoZXogaMO6enphIHVqasOhdCBhIGvDqXBlcm55xZEgdGV0ZWrDqXTFkWwgbGVmZWzDqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IkvDqXN6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4iw5NyYSBrw7ZyIGFsYWvDuiBjc8O6c3prw6FqYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4iUGVyYyBrw7ZyIGFsYWvDuiBjc8O6c3prw6FqYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiLDk3JhIGtpdsOhbGFzenTDoXNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4iUGVyYyBraXbDoWxhc3p0w6FzYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4iTmFwb2sgaGF2aSBsZW9zenTDoXNiYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLDiXZlayBsaXN0w6FqYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iVsOhbGFzc3phIGtpIGEgaMOzbmFwb3Qgw6lzIGEgbmFwb3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiJWw6FsYXNzemEga2kgYXogw6l2ZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+IGtpdsOhbGFzenR2YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+IkEoeikgPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4gw6lydMOpayB0w7Zyw7ZsdmUiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwKaW5kZXggOTZmZjMxZS4uNmJmYTdmNSAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+ItWE1bjWgtW/1oTVodWj1oDVpdaEwqBQVUssINW41oDVtiA4INWv1aHVtCDVodW+1aXVrCDVqdWr1b4g1bjWgtW21as6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+ItWB1aXWgCBTSU0g1oTVodaA1b/VqCBQVUst1bjVviDVr9W41bLVutW+1aHVriDVpzog1YTVuNaC1b/WhNWh1aPWgNWl1oQgUFVLINWv1bjVpNWoINWh1bXVtiDVodW61aHVr9W41bLVutWl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4i1YTVuNaC1b/WhNWh1aPWgNWl1oQgUFVLMi3VqGAgU0lNINaE1aHWgNW/1bYg1aHWgNWj1aXVrNWh1aLVodaB1aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiLVgdWh1a3VuNWy1b7VpdaBOiDVhNWr1aHWgdaA1aXWhCBTSU0vUlVJTSDVr9W41bLVutW41oLVtNWoOiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+ItWE1bbVodaBIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDWg9W41oDVsdWdINW01avVttW51ocgU0lNLdWrINWh1oDVo9Wl1azVodaD1aHVr9W41oLVtNWoOiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+ItWE1bbVodaBIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDWg9W41oDVsdWdINW01avVttW51ocgU0lNLdWrINWh1oDVo9Wl1azVodaD1aHVr9W41oLVtNWoOiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4i1YTVuNaC1b/WhNWh1bXVq9W2INWm1aHVttWj1bjVstWrIElEIjwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oXVo9W/1aHVo9W41oDVrtWl1awgU3VyZmFjZUZsaW5nZXIg1oHVodWu1oAg1bTVodWv1aHWgNWk1aHVr9WrINWj1bjWgNWu1aHVvNW41oLVtdWp1bbVpdaA1ag6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4i1a/VodaA1aTVodWsINW31oDVu9Wh1bbVodWv1asg1brVodWw1bbVodWv1agiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHWgNWk1aHVrCDVt9aA1bvVodW21aHVr9WrINW61aHVsNW21aHVr9WrINWi1bjVvtWh1bbVpNWh1a/VuNaC1anVtdW41oLVttWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+ItW01bjWgtW/1oQg1aPVuNaA1a7VpdWsIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1a7WgNWh1aPWgNWr1bYg1oXVo9W/1aHVo9W41oDVrtWl1awgSW5wdXRGbGluZ2VyINaB1aHVrtaAINW01aHVr9Wh1oDVpNWh1a/VqyDVo9W41oDVrtWh1bzVuNaC1bXVqdW21aXWgNWoOiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4i1a/VodaA1aPVodW+1bjWgNWl1awgV2lGaS3VqyDWgdW41oLWgdWh1aTWgNW41oLVtNWoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHWgNWj1aHVvtW41oDVpdWsINaHINW01avVodW21aHVrCBXaUZpINaB1bjWgtaB1aHVpNaA1avVudW21aXWgNWr1bY6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiLVr9Wh1bzVodW+1aHWgNWl1awgV2lmaS3VqyDWgdW41oLWgdWh1aTWgNW41oLVtNWoIjwvc3RyaW5nPgpAQCAtMTQxNCw2ICsxNDIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4i1YTVuNaC1b/WhCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+ItS41bbVv9aA1aXVrCDVrtaA1aHVo9Wr1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiLVidWw1aHVu9W41bLVvtWl1oEg1aPVuNaA1a7VodaA1a/VpdWsIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4g1a7WgNWh1aPVq9aA1agiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiLVj9Wh1oDVodWu1aXVrCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiLVgNWh1bTWhdWj1b/VodWj1bjWgNWu1aXVrCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+LdWrINWw1aXVvyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiLVjdWh1bDVuNWyINWi1bzVttWh1a86INWA1brVpdWswqAmYW1wOyDVutWh1bDVpdWsOiI8L3N0cmluZz4KQEAgLTE2NTAsNCArMTY1OCwxNSBAQAogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4i1L/WgNWv1avVtiDWg9W41oDVsdWl1oQg1bTVqyDWg9W41oTWgCDVuNaC1bciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4i1Y3VodWw1aHVsNWh1oDVvtWh1a7VpdaEINW+1aXWgNWr1oEg1b7VodaA1Z0g1aHVtNWi1bjVstW71aHVr9Wh1bYg1afVr9aA1aHVttWr1oEg1aTVuNaC1oDVvSDVo9Wh1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiLVitWh1b/WgNWh1b3VvyDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+ItS61aHVtNWl1oDVqyDVqNW21b/WgNW41oLVqdW11bjWgtW2INWp1b7VodW/1aHVrdW/1aHVr9Wr1oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+ItWQ1bjVutWl1bbVpdaA1asg1ajVttW/1oDVuNaC1anVtdW41oLVtiDVqdW+1aHVv9Wh1a3Vv9Wh1a/Vq9aBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+ItS41bbVv9aA1aXWhCDVqtWh1bTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+ItS41bbVv9aA1aXWhCDWgNW41brVpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiLUsdW01b3VodWp1b7VqyDVqNW21b/WgNW41oLVqdW11aHVtiDVutWh1b/VuNaC1bDVodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4i1Y/VodaA1avVttWl1oDVqyDWgdWh1bbVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4i1LjVttW/1oDVpdaEINWh1bTVq9W91bYg1bjWgiDWhdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiLUuNW21b/WgNWl1oQg1b/VodaA1avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiLUuNW21b/WgNW+1aHVriDVpyA8eGxpZmY6ZyBpZD0iSVRFTSI+JTEkczwveGxpZmY6Zz4g1b/VodaA1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+Ijx4bGlmZjpnIGlkPSJLRVkiPiUxJHM8L3hsaWZmOmc+INWp1avVvtWoINW71bbVu9W+1aHVriDVpyI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1oeS9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtaHkvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBjNWM1NQotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtaHkvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwxNTg2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qIC8vZGV2aWNlL2FwcHMvY29tbW9uL2Fzc2V0cy9yZXMvYW55L3N0cmluZ3MueG1sCisqKgorKiogQ29weXJpZ2h0IDIwMDYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImJ5dGVTaG9ydCIgbXNnaWQ9IjgzNDA5NzM4OTI3NDIwMTkxMDEiPiLUsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtpbG9ieXRlU2hvcnQiIG1zZ2lkPSI1OTczNzg5NzgzNTA0NzcxODc4Ij4i1L/VoiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZ2FieXRlU2hvcnQiIG1zZ2lkPSI2MzU1ODUxNTc2NzcwNDI4OTIyIj4i1YTVoiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdpZ2FieXRlU2hvcnQiIG1zZ2lkPSIzMjU5ODgyNDU1MjEyMTkzMjE0Ij4i1LPVoiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRlcmFieXRlU2hvcnQiIG1zZ2lkPSIyMzE2MTMwMTgxNTkxODY5NjIiPiLVj9WiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGV0YWJ5dGVTaG9ydCIgbXNnaWQ9IjU2Mzc4MTY2ODAxNDQ5OTAyMTkiPiLVitWiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmlsZVNpemVTdWZmaXgiIG1zZ2lkPSI5MTY0MjkyNzkxNTAwNTMxOTQ5Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JTEkczwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iVU5JVCI+JTIkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1bnRpdGxlZCIgbXNnaWQ9IjQ2Mzg5NTY5NTQ4NTI3ODI1NzYiPiImbHQ71LHVttWh1bbVuNaC1bYmZ3Q7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXMiIG1zZ2lkPSI3ODk5ODI5NTE2MDQ4ODEzMjM3Ij4i4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXNfdHdvX2RvdHMiIG1zZ2lkPSIxMjI4MDc4OTk0ODY2MDMwNzM2Ij4i4oClIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHlQaG9uZU51bWJlciIgbXNnaWQ9Ijc2OTQwNjMwNDIwNzk2NzY1MTciPiIo1YDVpdW81aHVrdW41b3VodWw1aHVtNWh1oAg1bnVr9WhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVua25vd25OYW1lIiBtc2dpZD0iMjI3NzU1NjU0Njc0Mjc0NjUyMiI+IijUsdW21bDVodW11b8pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdFZvaWNlTWFpbEFscGhhVGFnIiBtc2dpZD0iMjY2MDAyMDk5MDA5NzczMzA3NyI+ItWB1aHVtdW21aHVtdWr1bYg1oPVuNW91b8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0TXNpc2RuQWxwaGFUYWciIG1zZ2lkPSIyODUwODg5NzU0OTE5NTg0Njc0Ij4iTVNJU0ROMSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1taUVycm9yIiBtc2dpZD0iNTE1NDQ5OTQ1NzczOTA1MjkwNyI+ItWE1avVodaB1bTVodW2INWt1bbVpNWr1oAg1a/VodW0INWh1bbVvtWh1b7VpdaAIE1NSSDVrtWh1a7VodWv1aHVo9Wr1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pRmRuRXJyb3IiIG1zZ2lkPSI1MjI0Mzk4MjE2Mzg1MzE2NDcxIj4i1LPVuNaA1a7VuNWy1bjWgtWp1bXVuNaC1bbVqCDVvdWh1bDVtNWh1bbVodaD1aHVr9W+1aHVriDVpyDVtNWr1aHVtdW2INWh1bTWgNWh1a/VodW11b7VodWuINWw1aXVvNWh1a3VuNW91aHVsNWh1bTVodaA1bbVpdaA1asg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRW5hYmxlZCIgbXNnaWQ9IjgxNDcyNzgzNDY0MTQ3MTQzMTUiPiLUvtWh1bzVodW11bjWgtWp1bXVuNaC1bbVqCDVtNWr1aHWgdW+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRW5hYmxlZEZvciIgbXNnaWQ9IjY4NTYyMjgxNDA0NTM0NzEwNDEiPiLUvtWh1bzVodW11bjWgtWp1bXVuNaC1bbVqCDVtNWr1aHWgdW+1aHVriDVp2AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRGlzYWJsZWQiIG1zZ2lkPSIxOTM3NTUzMjI2NTkyNTE2NDExIj4i1L7VodW81aHVtdW41oLVqdW11bjWgtW21bYg1aHVttW71aHVv9W+1aXVrCDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlUmVnaXN0ZXJlZCIgbXNnaWQ9IjYyNzUwMTkwODI1OTgxMDI0OTMiPiLUs9aA1aHVttaB1bjWgtW01agg1bDVodW71bjVstW+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRXJhc2VkIiBtc2dpZD0iMTI4ODU4NDY5NTI5NzIwMDk3MiI+ItWL1bbVu9W41oLVtNWoINWw1aHVu9W41bIg1afWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZEluY29ycmVjdCIgbXNnaWQ9Ijc2MTIyMDg4Mzk0NTAxMjg3MTUiPiLVjdWt1aHVrCDVo9Wh1bLVv9W21aHVotWh1bw6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pQ29tcGxldGUiIG1zZ2lkPSI4MjMyNTI3NDk1NDExNjk4MzU5Ij4iTU1JLdWoINWh1b7VodaA1b/VvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFkUGluIiBtc2dpZD0iOTAxNTI3NzY0NTU0NjcxMDAxNCI+ItWB1aXWgCDVtNW41oLVv9aE1aHVo9aA1aHVriDVsNWr1bYgUElOLdWoINWz1avVt9W/INW51ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFkUHVrIiBtc2dpZD0iNTQ4NzI1NzY0NzA4MTEzMjIwMSI+ItWB1aXWgCDVtNW41oLVv9aE1aHVo9aA1aHVriBQVUst1agg1bPVq9W31b8g1bnVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaXNtYXRjaFBpbiIgbXNnaWQ9IjYwOTM3OTA1NDQ5Njg2MzQxOSI+ItWB1aXWgCDVtNW41oLVv9aE1aHVo9aA1aHVriBQSU4t1aXWgNWoINW51aXVtiDVsNWh1bTVqNW21a/VttW41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUGluIiBtc2dpZD0iMzg1MDAxODQ0NTE4NzQ3NTM3NyI+ItWE1bjWgtW/1oTVodWj1oDVpdaEIFBJTiwg1bjWgNWoIDQt1avWgSA4INWp1avVviDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+ItWE1bjWgtW/1oTVodWj1oDVpdaEwqBQVUssINW41oDVtiA4INWv1aHVtCDVodW+1aXVrCDVqdWr1b4g1bjWgtW21as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+ItWB1aXWgCBTSU0g1oTVodaA1b/VqCBQVUst1bjVviDVr9W41bLVutW+1aHVriDVpzog1YTVuNaC1b/WhNWh1aPWgNWl1oQgUFVLINWv1bjVpNWoINWh1bXVtiDVodW61aHVr9W41bLVutWl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4i1YTVuNaC1b/WhNWh1aPWgNWl1oQgUFVLMi3VqGAgU0lNINaE1aHWgNW/1bYg1aHWgNWj1aXVrNWh1aLVodaB1aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+ItWE1bjWgtW/1oTVodW11avVtiDVptWh1bbVo9W41bLVqyBJRCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNsaXJNbWkiIG1zZ2lkPSI3Nzg0NjczNjczNDQ2ODMzMDkxIj4i1LXVrNaE1aHVtdWr1bYg1abVodW21aPVuNWy1asgSUQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDZk1taSIgbXNnaWQ9IjUxMjMyMTg5ODkxNDE1NzM1MTUiPiLUttWh1bbVo9WrINW+1aXWgNWh1bDVodW91oHVpdWh1b7VuNaA1bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ3dNbWkiIG1zZ2lkPSI5MTI5Njc4MDU2Nzk1MDE2ODY3Ij4i1LbVodW21aPVqyDVvdW61aHVvdW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkJhTW1pIiBtc2dpZD0iNDU1MTkzMDY3OTI2NzcwNTgxIj4i1LbVodW21aPVqyDVodaA1aPVpdWs1aHWg9Wh1a/VuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJQd2RNbWkiIG1zZ2lkPSI3MDQzNzE1Njg3OTA1MjU0MTk5Ij4i1LPVodWy1b/VttWh1aLVodW81asg1oPVuNaD1bjVrdW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlBpbk1taSIgbXNnaWQ9IjMxMTMxMTc3ODAzNjExOTAzMDQiPiJQSU4t1asg1oPVuNaD1bjVrdW41oLVqdW11bjWgtW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ25pcE1taSIgbXNnaWQ9IjMxMTA1MzQ2ODA1NTc4NTcxNjIiPiLUttWh1bbVo9W41bIg1bDVodW01aHWgNWoINWh1bzVr9WhINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ25pck1taSIgbXNnaWQ9IjMwNjIxMDIxMjE0MzA1NDg3MzEiPiLUttWh1bbVo9W41bIg1bDVpdW81aHVrdW41b3VodWw1aHVtNWh1oDVqCDVvdWh1bDVtNWh1bbVodaD1aHVr9W+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlRocmVlV0NNbWkiIG1zZ2lkPSI5MDUxMDQ3MTcwMzIxMTkwMzY4Ij4i1LXWgNWl1oQg1a/VuNWy1bTVuNW+INWm1aHVttWjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUnVhY01taSIgbXNnaWQ9Ijc4Mjc4ODc0NTkxMzgzMDg4ODYiPiLUsdW21oHVodW21a/VodWs1asg1b7WgNWk1bjVvtWl1oHVttW41bIg1abVodW21aPVpdaA1asg1bTVpdaA1arVuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbmRNbWkiIG1zZ2lkPSIzMTE2NDQ2MjM3MDgxNTc1ODA4Ij4i1LbVodW21aPVuNWyINWw1aHVtNWh1oDVqyDVodW81aHWhNW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkRuZE1taSIgbXNnaWQ9IjEyNjU0Nzg5MzI0MTgzMzQzMzEiPiLVidWt1aHVttWj1aHWgNWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSRGVmYXVsdE9uTmV4dENhbGxPbiIgbXNnaWQ9IjQyOTQxNTQwOTE0NTc4MTkyMyI+ItS21aHVttWj1bjVstWrIElELdW2INWs1bzVpdWs1bXVodW11bYg1b3VodWw1bTVodW21aHWg9Wh1a/VvtWh1a4g1ac6INWA1aHVu9W41oDVpCDVptWh1bbVo9WoYCDVvdWh1bDVtNWh1bbVodaD1aHVr9W+1aHVriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T25OZXh0Q2FsbE9mZiIgbXNnaWQ9IjMwOTI5MTgwMDYwNzc4NjQ2MjQiPiLUttWh1bbVo9W41bLVqyBJRC3VtiDVrNW81aXVrNW11aHVtdW2INW91aHVsNW01aHVttWh1oPVodWv1b7VodWuINWnOiDVgNWh1bvVuNaA1aQg1abVodW21aPVqGAg1bnVvdWh1bDVtNWh1bbVodaD1aHVr9W+1aHVriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T2ZmTmV4dENhbGxPbiIgbXNnaWQ9IjYxNzk0MjUxODI4NTY0MTg0NjUiPiLUttWh1bbVo9W41bLVqyBJRC3VtiDVrNW81aXVrNW11aHVtdW2INW51b3VodWw1bTVodW21aHWg9Wh1a/VvtWh1a4g1ac6INWA1aHVu9W41oDVpCDVptWh1bbVo9WoYCDVjdWh1bDVtNWh1bbVodaD1aHVr9W+1aHVriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T2ZmTmV4dENhbGxPZmYiIG1zZ2lkPSIyNTY3OTk4NjMzMTI0NDA4NTUyIj4i1LbVodW21aPVuNWy1asgSUQt1bYg1azVvNWl1azVtdWh1bXVtiDVudW91aHVsNW01aHVttWh1oPVodWv1b7VodWuINWnOiDVgNWh1bvVuNaA1aQg1abVodW21aPVqGAg1bnVvdWh1bDVtNWh1bbVodaD1aHVr9W+1aHVriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VOb3RQcm92aXNpb25lZCIgbXNnaWQ9Ijg2MTQ4MzAxODA1MDg2ODY2NjYiPiLUvtWh1bzVodW11bjWgtWp1bXVuNaC1bbVqCDVudWrINW/1oDVodW01aHVpNaA1b7VuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUlBlcm1hbmVudCIgbXNnaWQ9IjMzNzczNzExNDU5MjY4MzU2NzEiPiLUtNW41oLWhCDVudWl1oQg1a/VodaA1bjVsiDWg9W41a3VpdWsINWm1aHVttWj1bjVstWrIElELdWrINWv1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oDVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkQ2hhbmdlZFRpdGxlIiBtc2dpZD0iNTU5MjE4OTM5ODk1NjE4NzQ5OCI+ItWN1aHVsNW01aHVttWh1oPVodWv1b7VodWuINW01bjWgtW/1oTVqCDWg9W41a3VvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25EYXRhIiBtc2dpZD0iODY1Mzc5NDc4NDY5MDA2NTU0MCI+ItWP1b7VtdWh1azVttWl1oDVqyDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bbVtiDVodaA1aPVpdWs1aHWg9Wh1a/VvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uRW1lcmdlbmN5IiBtc2dpZD0iNjU4MTE2Mzc3OTA3MjgzMzY2NSI+ItSx1oDVv9Wh1a/VodaA1aMg1avWgNWh1b7Vq9Wz1aHVr9WrINWu1aHVvNWh1bXVuNaC1anVtdW41oLVttW2INWh1oDVo9Wl1azVodaD1aHVr9W+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25Ob3JtYWwiIG1zZ2lkPSI0OTUzODY3MDExMzg5NzUwNjczIj4i1YHVodW11bbVodW11avVtiDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bbVqCDVodaA1aPVpdWs1aHWg9Wh1a/VvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uQWxsVm9pY2UiIG1zZ2lkPSIzMzk2OTYzNjUyMTA4MTUxMjYwIj4i1LLVuNWs1bjWgCDVsdWh1bXVttWh1bXVq9W2INWu1aHVvNWh1bXVuNaC1anVtdW41oLVttW21aXWgNWoINWh1oDVo9Wl1azVodaD1aHVr9W+1aHVriDVpdW2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblNtcyIgbXNnaWQ9IjgzMTQzNTIzMjc0NjE2Mzg4OTciPiJTTVMg1a7VodW81aHVtdW41oLVqdW11bjWgtW21bYg1aHWgNWj1aXVrNWh1oPVodWv1b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblZvaWNlRGF0YSIgbXNnaWQ9Ijk5NjYzNjQ4NzEwNjE3MTMyMCI+ItWB1aHVtdW21aHVtdWr1bYg1a/VodW0INW/1b7VtdWh1azVttWl1oDVqyDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bbVttWl1oDVtiDVodaA1aPVpdWs1aHWg9Wh1a/VvtWh1a4g1aXVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25Wb2ljZVNtcyIgbXNnaWQ9IjE4ODg1ODgxNTI3OTIwMjM4NzMiPiLVgdWh1bXVttWh1bXVq9W2L1NNUyDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bbVttWl1oDVqCDVodaA1aPVpdWs1aHWg9Wh1a/VvtWh1a4g1aXVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25BbGwiIG1zZ2lkPSI1NjQzMDI4MjY0NDY2MDkyODIxIj4i1LLVuNWs1bjWgCDVsdWh1bXVttWh1bXVq9W2L9W/1b7VtdWh1azVttWl1oDVqy9TTVMg1a7VodW81aHVtdW41oLVqdW11bjWgtW21bbVpdaA1agg1aHWgNWj1aXVrNWh1oPVodWv1b7VodWuINWl1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzVm9pY2UiIG1zZ2lkPSIxMjU4MzkzODEyMzM1MjU4MDE5Ij4i1YHVodW11bbVodW11avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0RhdGEiIG1zZ2lkPSI4NzI0NTY3ODIwNzc5Mzc4OTMiPiLVj9W+1bXVodWs1bbVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRkFYIiBtc2dpZD0iNTU2NjYyNDk5ODg0MDQ4NjQ3NSI+ItWW1aHWhNW9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzU01TIiBtc2dpZD0iMjAxNTQ2MDM3MzcwMTUyNzQ4OSI+IlNNUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0RhdGFBc3luYyIgbXNnaWQ9IjQ1MjM0NTQ3ODM0OTg1NTE0NjgiPiLVidWw1aHVtNWh1arVodW01aXWgdW+1aHVriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0RhdGFTeW5jIiBtc2dpZD0iNzUzMDAwMDUxOTY0NjA1NDc3NiI+ItWA1aHVtNWh1arVodW01aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1BhY2tldCIgbXNnaWQ9IjY5OTEwMDY1NTc5OTM0MjM0NTMiPiLVk9Wh1anVpdWpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzUEFEIiBtc2dpZD0iMzIzNTI1OTA4NTY0ODI3MTAzNyI+ItWA1aHWgNWp1aHVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MCIgbXNnaWQ9IjcxNzAzMzU0NzIxOTg2OTQ5NDUiPiLVjNW41bjWgtW01avVttWj1asg1oHVuNaC1oHVq9W51agg1bTVq9Wh1oHVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDEiIG1zZ2lkPSI1MzE0ODYxNTE5NzUyNTM4OTIyIj4i1YzVuNW41oLVtNWr1bbVo9WrINaB1bjWgtaB1avVudWoINWh1bbVu9Wh1b/VvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDIiIG1zZ2lkPSI4OTY5OTI5MDQ5MDgxMjY4MTE1Ij4i1YzVuNW41oLVtNWr1bbVo9WrINaB1bjWgtaB1avVudWoINWp1aHWgNWp1bjWgtW0INWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQzIiBtc2dpZD0iNTE0ODI1NTAyNzA0Mzk0MzMxNyI+ItWH1oDVu9Wh1a/VodW11oTVq9aBINWk1bjWgtaA1b0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDQiIG1zZ2lkPSI4ODA4NDU2NjgyNTUwNzk2NTMwIj4i1YfVpdW21oTVq9aBINWk1bjWgtaA1b0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDUiIG1zZ2lkPSI3NjA0MDYzMjUyODUwMzU0MzUwIj4i1YzVuNW41oLVtNWr1bbVo2Ag1bbVodWt1ajVttW/1oDVpdWs1asg1bDVodW01aHVr9Wh1oDVoyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NiIgbXNnaWQ9IjIwNTk0NDA4MjU3ODI4NzE1MTMiPiLVjNW41bjWgtW01avVttWjYCDVsNWh1b3VodW21aXVrNWrINWw1aHVtNWh1a/VodaA1aMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDciIG1zZ2lkPSI3MTEyMDc4NzI0MDk3MjMzNjA1Ij4i1YzVuNW41oLVtNWr1bbVo2Ag1aTVodW31bbVodW11avVtiDVo9W41oDVrtWo1bbVr9Wl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDgiIG1zZ2lkPSI1OTg5NTY5Nzc4NjA0MDg5MjkxIj4i1YzVuNW41oLVtNWr1bbVo2Ag1aHVvNWh1bvVttWh1a/VodaA1aMg1aPVuNaA1a7VqNW21a/VpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ5IiBtc2dpZD0iNzk2OTI5NjgxMTM1NTE1MjQ5MSI+ItWM1bjVuNaC1bTVq9W21aNgINWs1avVodaA1arVpdaEINWu1aHVvNWh1bXVuNaC1anVtdWh1bYg1aPVuNaA1a7VodW81bjWgtWp1bXVuNaC1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDEwIiBtc2dpZD0iMzk5MjkwNjk5OTgxNTMxNjQxNyI+ItWM1bjVuNaC1bTVq9W21aNgINWE1aHVvdW21aHVr9WrINWu1aHVvNWh1bXVuNaC1anVtdWh1bYg1aPVuNaA1a7VodW81bjWgtWp1bXVuNaC1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDExIiBtc2dpZD0iNDE1NDQ3Njg1NDQyNjkyMDk3MCI+ItWM1bjVuNaC1bTVq9W21aPVqyDVodWm1aTVpdaA1avVptWoINW01avVodaB1b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxMiIgbXNnaWQ9IjExODkwNzExMTk5OTI3MjYzMjAiPiLVjNW41bjWgtW01avVttWj1asg1aHVptWk1aXWgNWr1abVtiDVodW21bvVodW/1b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHRTZWFyY2hpbmciIG1zZ2lkPSI4MzYwMTQxODg1OTcyMjc5OTYzIj4i1L7VodW81aHVtdW41oLVqdW11aHVtiDVuNaA1bjVttW41oLVtC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVOb3RGb3J3YXJkZWQiIG1zZ2lkPSIxNjgzNjg1ODgzODQxMjcyNTYwIj4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz4uINWJ1asg1b7VpdaA1aHVsNWh1b3WgdWl1aHVvtW41oDVvtWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlRm9yd2FyZGVkIiBtc2dpZD0iMTMwMjkyMjExNzQ5ODU5MDUyMSI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iRElBTElOR19OVU1CRVIiPnsxfTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlRm9yd2FyZGVkVGltZSIgbXNnaWQ9IjkyMDYyNTE3MzY1MjcwODUyNTYiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9IkRJQUxJTkdfTlVNQkVSIj57MX08L3hsaWZmOmc+IDx4bGlmZjpnIGlkPSJUSU1FX0RFTEFZIj57Mn08L3hsaWZmOmc+INW+1aHVtdaA1a/VtdWh1bbVq9aBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZVJlZ2lzdGVyZWQiIG1zZ2lkPSI1MDczMjM3ODI3NjIwMTY2Mjg1Ij4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz4uINWJ1asg1b7VpdaA1aHVsNWh1b3WgdWl1aHVvtW41oDVvtWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlUmVnaXN0ZXJlZFRpbWUiIG1zZ2lkPSI2NzgxNjIxOTY0MzIwNjM1MTcyIj4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz4uINWJ1asg1b7VpdaA1aHVsNWh1b3WgdWl1aHVvtW41oDVvtWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmY0NvbXBsZXRlIiBtc2dpZD0iMzExODg0ODIzMDk2Njg4NjU3NSI+ItWA1aHVv9Wv1bjWgtWp1bXVodW2INWv1bjVpNWoINWh1bTVotW41bLVu9Wh1a/VodW2INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZjRXJyb3IiIG1zZ2lkPSIzMzI3NTYwMTI2NTg4NTAwNzc3Ij4i1L/VodW61asg1a3VttWk1avWgCDVr9Wh1bQg1aHVttW+1aHVvtWl1oAg1aPVuNaA1a7VodW81bjWgtW11anVqyDVr9W41aQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yT2siIG1zZ2lkPSIxMTkxOTE5Mzc4MDgzNDcyMjA0Ij4i1LzVodW+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yIiBtc2dpZD0iNzk1NjM5MjUxMTE0NjY5ODUyMiI+ItWR1aHVttaB1aHVtdWr1bYg1b3VrdWh1awg1afWgCDVv9Wl1bLVqyDVuNaC1bbVpdaB1aXVrDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JMb29rdXAiIG1zZ2lkPSI0NzExNjg3NDU2MTExOTYzMTYzIj4iVVJMLdWoINW51bDVodW71bjVstW+1aXWgSDVo9W/1bbVpdWsOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclVuc3VwcG9ydGVkQXV0aFNjaGVtZSIgbXNnaWQ9IjYyOTk5ODAyODA0NDIwNzY3OTkiPiLUv9Wh1bXWhNWrINW21bjWgtW11bbVodWv1aHVttWh1oHVtNWh1bYg1b3VrdWl1bTVodW2INW51asg1aHVu9Wh1a/WgdW+1bjWgtW0OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckF1dGgiIG1zZ2lkPSIxNDM1MDY1NjI5NDM4MDQ0NTM0Ij4i1YnVsNWh1bvVuNWy1b7VpdaBINW21bjWgtW11bbVodWv1aHVttWh1oHVttWl1aw6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yUHJveHlBdXRoIiBtc2dpZD0iMTc4ODIwNzAxMDU1OTA4MTMzMSI+ItWG1bjWgtW11bbVodWv1aHVttWh1oHVuNaC1bTVqMKg1brWgNW41oTVvdWrINW91aXWgNW+1aXWgNWrINW01avVu9W41oHVuNW+INWh1bbVsNWh1bvVuNWyINWn1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yQ29ubmVjdCIgbXNnaWQ9Ijg3MTQyNzMyMzYzNjQ2NDA1NDkiPiLVidWw1aHVu9W41bLVvtWl1oEg1bTVq9Wh1bbVodWsINW91aXWgNW+1aXWgNWr1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9ySU8iIG1zZ2lkPSIyMzQwNTU4MTk3NDg5MzAyMTg4Ij4i1L/VodW61agg1b3VpdaA1b7VpdaA1asg1bDVpdW/INW51bDVodW71bjVstW+1aXWgTrCoNWT1bjWgNWx1aXWhCDVr9aA1a/Vq9W2INWh1b7VpdWs1asg1bjWgtW3OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclRpbWVvdXQiIG1zZ2lkPSI0NzQzNDAzNzAzNzYyODgzOTU0Ij4i1Y3VpdaA1b7VpdaA1asg1bDVpdW/INWv1aHVutWh1a/WgdW01aHVtiDVqtWh1bTVodW21aHVr9WoINW91brVodW81b7VpdWsINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclJlZGlyZWN0TG9vcCIgbXNnaWQ9Ijg2Nzk1OTYwOTAzOTI3Nzk1MTYiPiLUt9W71agg1brVodaA1bjWgtW21aHVr9W41oLVtCDVpyDVudWh1oPVodWm1aHVttaBINW31aHVvyDVvdWl1oDVvtWl1oDVqyDVvtWl1oDVodWw1bLVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVW5zdXBwb3J0ZWRTY2hlbWUiIG1zZ2lkPSI1MDE1NzMwODEyOTA2MTkyMjA4Ij4i1YrWgNW41b/VuNWv1bjVrNWoINW51asg1aHVu9Wh1a/WgdW+1bjWgtW0OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckZhaWxlZFNzbEhhbmRzaGFrZSIgbXNnaWQ9Ijk2NTQ5NjA2MDAwNjU4NjQxIj4i1YnVsNWh1bvVuNWy1b7VpdaBINWw1aHVvdW/1aHVv9Wl1awg1aHVutWh1bDVuNW+INWv1aHVujoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JCYWRVcmwiIG1zZ2lkPSIzNjM2OTI5NzIyNzI4ODgxOTcyIj4i1YnVsNWh1bvVuNWy1b7VpdaBINWi1aHWgdWl1awg1afVu9WoLCDVuNaA1bjVvtWw1aXVv9aHIFVSTC3VqCDVodW21b7VodW+1aXWgCDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGaWxlIiBtc2dpZD0iMjE3MDc4ODUxNTA1MjU1ODY3NiI+ItWJ1bDVodW71bjVstW+1aXWgSDVtNW41oLVv9aEINWj1bjWgNWu1aXVrCDWhtWh1bXVrDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGaWxlTm90Rm91bmQiIG1zZ2lkPSI2MjAzODU2NjEyMDQyNjU1MDg0Ij4i1YnVsNWh1bvVuNWy1b7VpdaBINWj1b/VttWl1awg1bDVodaA1oHVvtW41bIg1obVodW11azVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JUb29NYW55UmVxdWVzdHMiIG1zZ2lkPSIxMjM1Mzk2OTI3MDg3MTg4MjUzIj4i1YnVodaD1avWgSDVt9Wh1b8g1bDVodaA1oHVuNaC1bTVttWl1oAg1aXVtiDVtNW31aHVr9W+1bjWgtW0OiDVk9W41oDVsdWl1oQg1a/WgNWv1avVtiDVodW+1aXVrNWrINW41oLVtzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4OTY3NzEwMDI1MDM2MTYzODIyIj4i1YTVuNaC1b/WhCDVo9W41oDVrtWl1azVuNaCINW91a3VodWsYCA8eGxpZmY6ZyBpZD0iQUNDT1VOVCI+JTEkczwveGxpZmY6Zz4t1asg1bDVodW01aHWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRTZXJ2aWNlU3luYyIgbXNnaWQ9IjgzNTM1MjMwNjAyNjkzMzU2NjciPiLVgNWh1bTVodWq1aHVtNWl1oHVttWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250ZW50U2VydmljZVN5bmNOb3RpZmljYXRpb25UaXRsZSIgbXNnaWQ9IjM5Nzc0MzM0OTE5MTkwMTQ1OCI+ItWA1aHVtNWh1arVodW01aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRTZXJ2aWNlVG9vTWFueURlbGV0ZXNOb3RpZmljYXRpb25EZXNjIiBtc2dpZD0iODEwMDk4MTQzNTA4MDY5NjQzMSI+ItWJ1aHWg9Wr1oEg1bfVodW/IDx4bGlmZjpnIGlkPSJDT05URU5UX1RZUEUiPiVzPC94bGlmZjpnPiDVsNWl1bzVodaB1bjWgtW01bbVpdaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxvd19tZW1vcnkiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY0OTQwMTkyMzQxMDIxNTQ4OTYiPiLUs9aA1aHVvdWh1azVq9Wv1asg1brVodWw1bjWgdWoINWs1avWhNW2INWnOiDVi9W21bvVpdaEINW01asg1oTVodW21asg1obVodW11axgINW/1aHWgNWh1a7WhCDVodWm1aHVv9Wl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X21lbW9yeSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0NzU5OTkyODY2ODAwMDA1NDEiPiLVgNWl1bzVodWt1bjVvdWrINW61aHVsNW41oHVqCDVrNWr1oTVtiDVpzog1YvVttW71aXWhCDVtNWrINaE1aHVttWrINaG1aHVtdWs1aXWgGAg1b/VodaA1aHVrtW41oLVqdW11bjWgtW2INWh1abVodW/1aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZSIgbXNnaWQ9IjY1NDU2OTYwMDc2MzE0MDQyOTIiPiLUu9W0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfZGlhbG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTQ1MzUxNDIwODY1MjAyODUzIj4i1LPWgNWh1b3VodWs1avVr9WrINWo1bbVv9aA1aHVttaE1bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3dlcl9kaWFsb2ciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMzE5OTE5MDc1NDYzOTg4NjM4Ij4i1YDVpdW81aHVrdW41b3VqyDVqNW21b/WgNWh1bbWhNW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlIiBtc2dpZD0iNzE2NzcwMzM4OTgwMjYxODY2MyI+ItSx1bbVsdWh1bXVtiDVvNWl1arVq9W0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHVybl9vbl9yYWRpbyIgbXNnaWQ9IjM5MTI3OTMwOTIzMzk5NjIzNzEiPiLVhNWr1aHWgdW21aXVrCDVodW21azVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHVybl9vZmZfcmFkaW8iIG1zZ2lkPSI4MTk4Nzg0OTQ5OTg3MDYyMzQ2Ij4i1LHVttWs1aHWgNWoINWh1bbVu9Wh1b/VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2xvY2siIG1zZ2lkPSI3OTkwOTQ2NTU0OTYwOTgxNTMiPiLVp9Wv1oDVodW21asg1a/VuNWy1brVpdaEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfb2ZmIiBtc2dpZD0iNDI2NjYxNDEwNzQxMjg2NTA0OCI+ItSx1bbVu9Wh1b/VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfc2lsZW50IiBtc2dpZD0iMzE5Mjk4MTYzMDE4NDczMDc4Ij4i1LbVodW21aPVodWv1bYg1aHVttW71aHVv9W+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3ZpYnJhdGUiIG1zZ2lkPSI3MDcyMDQzMzg4NTgxNTUxMzk1Ij4i1LbVodW21aPVodWv1asg1anWgNWp1bzVuNaBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfcmluZyIgbXNnaWQ9Ijg1OTIyNDE4MTYxOTQwNzQzNTMiPiLUttWh1bbVo9Wh1a/VqCDVtNWr1aHWgdW+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX3Byb2dyZXNzIiBtc2dpZD0iMjI4MTA3OTI1NzMyOTk4MTIwMyI+ItSx1bbVu9Wh1b/VvtW41oLVtCDVp+KApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm0iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMzODU3NDUxNzk1NTU3MzE0NzAiPiLVgdWl1oAg1aPWgNWh1b3VodWs1avVr9WoINWv1aHVttW71aHVv9W+1as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2h1dGRvd25fY29uZmlybSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY0OTc5MjE3NTI0MjgyMTM1MyI+ItWB1aXWgCDVsNWl1bzVodWt1bjVvdWoINWv1aHVttW71aHVv9W+1as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2h1dGRvd25fY29uZmlybV9xdWVzdGlvbiIgbXNnaWQ9IjI5MDY1NDQ3Njg4ODExMzYxODMiPiLVkdWh1bbVr9Wh1bbVuNaC1Z7VtCDVpdaEINWh1bbVu9Wh1b/VpdWsOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYm9vdF9zYWZlbW9kZV90aXRsZSIgbXNnaWQ9IjcwNTQ1MDk5MTQ1MDAxNDAzNjEiPiLVjtWl1oDVodWi1aXVvNW21aXVrCDVodW21b7Vv9Wh1bbVoyDVvNWl1arVq9W01asiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWJvb3Rfc2FmZW1vZGVfY29uZmlybSIgbXNnaWQ9IjU1MjkzOTQ0NTAyNzg0NjY4Ij4i1ZHVodW21a/VodW21bjWgtWe1bQg1aXWhCDVvtWl1oDVodWi1aXVvNW21aXVrCDVodW21b7Vv9Wh1bbVoyDVvNWl1arVq9W01as6INWN1aEg1a/Vr9Wh1b3VpdaB1bbVqyDVsdWl1oAg1b/VpdWy1aHVpNaA1aHVriDVotW41azVuNaAINWv1bjVstW01bbVodWv1asg1a7WgNWh1aPWgNWl1oDVqDog1LTWgNWh1bbWhCDVr9W+1aXWgNWh1a/VodW21aPVttW+1aXVtiwg1aXWgNWiINWk1bjWgtaEINWv1oDVr9Wr1bYg1b7VpdaA1aHVotWl1bzVttWl1oQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVjZW50X3Rhc2tzX3RpdGxlIiBtc2dpZD0iMzY5MTc2NDYyMzYzODEyNzg4OCI+ItWO1aXWgNW71avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX3JlY2VudF90YXNrcyIgbXNnaWQ9Ijg3OTQ5MDY2NTg3MzIxOTM0NzMiPiLVhtW41oAg1bDVodW+1aXVrNW+1aHVrtWl1oAg1bnVr9Wh1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQwODQ3NzE0MDA4ODA1MzY2NSI+ItSz1oDVodW91aHVrNWr1a/VqyDVqNW21b/WgNWh1bbWhNW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNDA2NDE2ODMxNTQxNjE1MjU4Ij4i1YDVpdW81aHVrdW41b3VqyDVqNW21b/WgNWh1bbWhNW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fbG9jayIgbXNnaWQ9IjI4NDQ5NDUxOTE3OTIxMTk3MTIiPiLUt9Wv1oDVodW21asg1oPVodWv1aHVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fcG93ZXJfb2ZmIiBtc2dpZD0iNDQ3MTg3OTQ0MDgzOTg3OTcyMiI+ItSx1bbVu9Wh1b/VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9idWdfcmVwb3J0IiBtc2dpZD0iNzkzNDAxMDU3ODkyMjMwNDc5OSI+ItWO1oDVq9W61aHVr9WrINWm1aXVr9W41oLVtdaBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X3RpdGxlIiBtc2dpZD0iMjY2NzQ5NDgwMzc0MjU0ODUzMyI+ItSz1oDVpdWsINW91a3VodWs1asg1abVpdWv1bjWgtW11oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfbWVzc2FnZSIgbXNnaWQ9IjM5ODQ0NzA0ODc1MDM1MDQ1NiI+ItWN1aEg1b/VpdWy1aXVr9W41oLVqdW11bjWgtW21bbVpdaAINWv1bDVodW+1aHWhNWh1aPWgNWrINWx1aXWgCDVvdWh1oDWhNWrINWh1bzVr9WhINWv1aHWgNWj1aHVvtWr1bPVodWv1asg1bTVodW91avVtiDWhyDVr9W41oLVstWh1oDVr9WrINWh1bXVtiDVp9Ws1aXVr9W/1oDVuNW21aHVtdWr1bYg1bbVodW01aHVr9W41b46INWI1oDVuNW31aHVr9WrINWq1aHVtNWh1bbVodWvINWv1brVodWw1aHVttW71b7VqyDVvtaA1avVutWh1a/VqyDVtNWh1b3Vq9W2INWm1aXVr9W41oLWgdWl1azVuNaCINW61aHVsNWr1oEg1b3Vr9W91aHVriDVtNWr1bbVuSDVuNaC1bLVodaA1a/VpdWs1ag6INS91bbVpNaA1bjWgtW0INWl1bbWhCDWg9W41oTWgC3Vq9W21bkg1bDVodW01aLVpdaA1aHVv9Wh1oAg1azVq9W21aXVrDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3RvZ2dsZV9zaWxlbnRfbW9kZSIgbXNnaWQ9IjgyMTk1MjUzNDQyNDY4MTA5MjUiPiLUsdW21bHVodW11bYg1bzVpdWq1avVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fc2lsZW50X21vZGVfb25fc3RhdHVzIiBtc2dpZD0iMzI4OTg0MTkzNzAwMzc1ODgwNiI+ItWB1aHVtdW21agg1aHVttW71aHVv9W+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fc2lsZW50X21vZGVfb2ZmX3N0YXR1cyIgbXNnaWQ9IjE1MDYwNDY1NzkxNzcwNjY0MTkiPiLVgdWh1bXVttWoINW01avVodaB1b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnNfdG9nZ2xlX2FpcnBsYW5lX21vZGUiIG1zZ2lkPSI1ODg0MzMwMzA2OTI2MzA3NDU2Ij4i1LvVttaE1bbVodWp1avVvNWh1bXVq9W2INW81aXVqtWr1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uc19haXJwbGFuZV9tb2RlX29uX3N0YXR1cyIgbXNnaWQ9IjI3MTk1NTc5ODI2MDg5MTk3NTAiPiLUu9W21oTVttWh1anVq9W81aHVtdWr1bYg1bzVpdWq1avVtNWoINW01avVodaB1b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnNfYWlycGxhbmVfbW9kZV9vZmZfc3RhdHVzIiBtc2dpZD0iNTA3NTA3MDQ0Mjg1NDQ5MDI5NiI+ItS71bbWhNW21aHVqdWr1bzVodW11avVtiDVvNWl1arVq9W01agg1aHVttW71aHVv9W+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luZm9fb3ZlcmZsb3ciIG1zZ2lkPSI1MzAxOTgxNzQxNzA1MzU0OTkzIj4iOTk5KyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhZmVNb2RlIiBtc2dpZD0iMjc4ODIyODA2MTU0NzkzMDI0NiI+ItSx1bbVvtW/1aHVttWjINW81aXVqtWr1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3N5c3RlbV9sYWJlbCIgbXNnaWQ9IjY1NzczNzUzMzU3Mjg1NTEzMzYiPiJBbmRyb2lkINWw1aHVtNWh1a/VodaA1aMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfY29zdE1vbmV5IiBtc2dpZD0iNTQyOTgwODIxNzg2MTQ2MDQwMSI+ItS+1aHVvNWh1bXVuNaC1anVtdW41oLVttW21aXWgCwg1bjWgNW41bbWgSDVsNWh1bTVodaAINWv1aPVodW21bHVvtWl1oQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Nvc3RNb25leSIgbXNnaWQ9IjMyOTMzMDE5MDM0MDk4Njk0OTUiPiLUv9Wh1b/VodaA1aXVrCDVo9W41oDVrtW41bLVuNaC1anVtdW41oLVttW21aXWgCwg1bjWgNWrINWk1avVtNWh1oEg1bHVpdaAINWw1aHVt9W+1avWgSDVo9W41oLVtNWh1oAg1a/VrtWh1a3VvdW+1as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX21lc3NhZ2VzIiBtc2dpZD0iNzUyMTI0OTE0ODQ0NTQ1NjY2MiI+ItWB1aXWgCDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19tZXNzYWdlcyIgbXNnaWQ9Ijc4MjE5OTkwNzEwMDM2OTkyMzYiPiLUv9Wh1oDVpNWh1awg1ocg1aPWgNWl1awg1bHVpdaAIFNNUy3VqCwg1bbVodW01aHVr9WoINaHINWh1bXVrCDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfcGVyc29uYWxJbmZvIiBtc2dpZD0iMzUxOTE2MzE0MTA3MDUzMzQ3NCI+ItWB1aXWgCDVodW21bHVttWh1a/VodW2INW/1aXVstWl1a/VuNaC1anVtdW41oLVttW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19wZXJzb25hbEluZm8iIG1zZ2lkPSI4NDI2NDUzMTI5Nzg4ODYxMzM4Ij4i1YjWgtWy1bLVodWv1asg1bTVuNaC1b/WhCDVsdWl1oAg1bTVodW91avVtiDVv9Wl1bLVpdWv1bjWgtWp1bXVuNaC1bbVttWl1oBgINW61aHVsNW+1aHVriDVsdWl1oAg1a/VuNW21b/VodWv1b/VodW11avVtiDWhNWh1oDVv9W41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc29jaWFsSW5mbyIgbXNnaWQ9IjU3OTkwOTY2MjM0MTIwNDM3OTEiPiLVgdWl1oAg1b3VuNaB1avVodWs1aHVr9Wh1bYg1b/VpdWy1aXVr9W41oLVqdW11bjWgtW21bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3NvY2lhbEluZm8iIG1zZ2lkPSI3MTI5ODQyNDU3NjExNjQzNDkzIj4i1YjWgtWy1bLVodWv1asg1bTVuNaC1b/WhCDVsdWl1oAg1a/VuNW21b/VodWv1b/VttWl1oDVqyDVtNWh1b3Vq9W2INW/1aXVstWl1a/VuNaC1anVtdW41oLVttW21aXWgCDWhyDVvdW41oHVq9Wh1azVodWv1aHVtiDVr9Wh1brVpdaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9sb2NhdGlvbiIgbXNnaWQ9IjYzNTE0OTc0MjQzNjY5MjA0OSI+ItWB1aXWgCDVv9Wl1bLVodWk1oDVuNaC1anVtdW41oLVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19sb2NhdGlvbiIgbXNnaWQ9IjU3MDQ2Nzk3NjMxMjQxNzAxMDAiPiLVjtWl1oDVodWw1b3Vr9Wl1awg1bHVpdaAINaG1avVptWr1a/VodWv1aHVtiDVv9Wl1bLVodWk1oDVuNaC1anVtdW41oLVttWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9uZXR3b3JrIiBtc2dpZD0iNTgwODk4MzM3NzcyNzEwOTgzMSI+ItWR1aHVttaB1aHVtdWr1bYg1bDVodWy1bjWgNWk1aHVr9aB1bjWgtWp1bXVuNaC1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX25ldHdvcmsiIG1zZ2lkPSI0NDc4Mjk5NDEzMjQxODYxOTg3Ij4i1YTVuNaC1b/WhCDVo9W41oDVrtWl1awg1oHVodW21oHVqyDVv9Wh1oDVotWl1oAg1aPVuNaA1a7VodW81bjWgtW11anVttWl1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2JsdWV0b290aE5ldHdvcmsiIG1zZ2lkPSIxNTg1NDAzNTQ0MTYyMTI4MTA5Ij4iQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19ibHVldG9vdGhOZXR3b3JrIiBtc2dpZD0iNTYyNTI4ODU3NzE2NDI4MjM5MSI+ItWE1bjWgtW/1oQg1aPVuNaA1a7VpdWsINW91aHWgNaE1aXWgCDWhyDWgdWh1bbWgdWl1oAgQmx1ZXRvb3RoLdWrINW01avVu9W41oHVuNW+OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hdWRpb1NldHRpbmdzIiBtc2dpZD0iODMyOTI2MTY3MDE1MTg3MTIzNSI+ItWB1aHVtdW21aHVttW11bjWgtWp1asg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjI2NDE1MTU0MDMzNDc1NjgxMzAiPiLVk9W41a3VpdWsINWx1aHVtdW21aHVttW11bjWgtWp1asg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hZmZlY3RzQmF0dGVyeSIgbXNnaWQ9IjYyMDkyNDY2NTM0MjQ3OTgwMzMiPiLUsdWm1aTVuNaC1bQg1acg1bTVodaA1b/Vr9W41oHVqyDVvtaA1aEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FmZmVjdHNCYXR0ZXJ5IiBtc2dpZD0iNjQ0MTI3NTMyMDYzODkxNjk0NyI+ItWV1aPVv9Wh1aPVuNaA1a7VpdWsINWj1bjWgNWu1avWhNW21aXWgNWoLCDVuNaA1bjVttaEINWv1aHWgNW41bIg1aXVtiDVodaA1aHVoyDVvdW61aHVvNWl1awg1bTVodaA1b/Vr9W41oHVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfY2FsZW5kYXIiIG1zZ2lkPSI1ODYzNTA4NDM3NzgzNjgzOTAyIj4i1ZXWgNWh1oHVuNaC1bXWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfY2FsZW5kYXIiIG1zZ2lkPSI1Nzc3NTM0MzE2OTgyMTg0NDE2Ij4i1LHVttW01avVu9Wh1a/VodW2INW01bjWgtW/1oQg1oXWgNWh1oHVuNaC1bXWgSDWhyDVq9aA1aHVpNWh1oDVsdW41oLVqdW11bjWgtW21bbVpdaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaWN0aW9uYXJ5IiBtc2dpZD0iNDE0ODU5NzEyODg0MzY0MTM3OSI+ItS/1aHWgNWk1aHVrCDWhdWj1b/VvtW41bLVqyDVotWh1bzVodaA1aHVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kaWN0aW9uYXJ5IiBtc2dpZD0iNzkyMTE2NjM1NTk2NDc2NDQ5MCI+ItS/1aHWgNWk1aHVrCDVotWh1bzVpdaA1agg1oXVo9W/1b7VuNWy1asg1aLVodW81aHWgNWh1bbVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjgwOTAyMzc3MDI0MzI1NzY3ODgiPiLUs9aA1aXVrCDWhdWj1b/VvtW41bLVqyDVotWh1bzVodaA1aHVttW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iMjcxMTU2MTk5NDQ5NzM2MTY0NiI+ItSx1b7VpdWs1aHWgdW21aXVrCDVotWh1bzVpdaAINaF1aPVv9W+1bjVstWrINWi1aHVvNWh1oDVodW21bjWgtW0OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9ib29rbWFya3MiIG1zZ2lkPSIxOTQ5NTE5NjczMTAzOTY4MjI5Ij4i1LfVu9Wh1bbVq9W31aXWgCDWhyDVutWh1b/VtNW41oLVqdW11bjWgtW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19ib29rbWFya3MiIG1zZ2lkPSI0MTY5NzcxNjA2MjU3OTYzMDI4Ij4i1YjWgtWy1bLVodWv1asg1bTVuNaC1b/WhCDVpNWl1brVqyDVp9W71aHVttWr1bfVpdaAINaHINWk1avVv9Wh1oDVr9W51asg1brVodW/1bTVuNaC1anVtdW41oLVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGV2aWNlQWxhcm1zIiBtc2dpZD0iNjExNzcwNDYyOTcyODgyNDEwMSI+ItSx1abVpNWh1bbVt9Wh1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RldmljZUFsYXJtcyIgbXNnaWQ9IjQ3NjkzNTYzNjIyNTE2NDExNzUiPiLUv9Wh1oDVo9Wh1b7VuNaA1aXVrCDVptWh1oDVqdW41oLWgdWr1bnVqyDVqtWh1bTVodaB1bjWgtW11oHVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfdm9pY2VtYWlsIiBtc2dpZD0iNDE2MjIzNzE0NTAyNzU5MjEzMyI+ItWB1aHVtdW21aHVtdWr1bYg1oPVuNW91b8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3ZvaWNlbWFpbCIgbXNnaWQ9IjI0OTg0MDM5Njk4NjI5NTEzOTMiPiLViNaC1bLVstWh1a/VqyDVtNW41oLVv9aEINWk1aXVutWrINWx1aHVtdW21aHVtdWr1bYg1oPVuNW91b86Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX21pY3JvcGhvbmUiIG1zZ2lkPSIxNzE1Mzk5MDAyNTAwNDM0NjQiPiLUstWh1oDVsdaA1aHVrdW41b0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX21pY3JvcGhvbmUiIG1zZ2lkPSI3MTA2NjE4Mjg2OTA1NzM4NDA4Ij4i1YjWgtWy1bLVodWv1asg1bTVuNaC1b/WhCDVpNWl1brVqyDVotWh1oDVsdaA1aHVrdW41b1gINWx1aHVtdW21aHVttW11bjWgtWpINWx1aHVtdW21aHVo9aA1aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfY2FtZXJhIiBtc2dpZD0iNDgyMDM3MjQ5NTg5NDU4NjYxNSI+ItWW1bjVv9W41a3WgdWr1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2NhbWVyYSIgbXNnaWQ9IjI5MzM2NjczNzIyODk1Njc3MTQiPiLViNaC1bLVstWh1a/VqyDVtNW41oLVv9aEINWk1aXVutWrINaG1bjVv9W41a3WgdWr1a9gINWs1bjWgtW91aHVttWv1aHWgNWl1azVuNaCINWv1aHVtCDVv9Wl1b3VodW21a/VodaA1aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc2NyZWVubG9jayIgbXNnaWQ9IjgyNzU1MDAxNzMzMzA3MTgxNjgiPiLUv9W41bLVutWl1awg1afVr9aA1aHVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zY3JlZW5sb2NrIiBtc2dpZD0iNzA2NzQ5NzEyODkyNTQ5OTQwMSI+ItWA1bbVodaA1aHVvtW41oDVuNaC1anVtdW41oLVtiDVuNaC1bbVqyDVodWm1aTVpdWs1bjWgiDVsdWl1oAg1b3VodaA1oTVqyDVr9W41bLVutWn1a/WgNWh1bbVqyDVvNWl1arVq9W01asg1b7WgNWhOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hcHBJbmZvIiBtc2dpZD0iODAyODc4OTc2MjYzNDE0NzcyNSI+ItWB1aXWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1b/VpdWy1aXVr9W41oLVqdW11bjWgtW21bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FwcEluZm8iIG1zZ2lkPSIzOTUwMzc4NTM4MDQ5NjI1OTA3Ij4i1YDVttWh1oDVodW+1bjWgNW41oLVqdW11bjWgtW2YCDVodWm1aTVpdWs1bjWgiDVtNW11bjWgtW9INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVvtWh1oDWhNWh1aPVrtWrINW+1oDVoSDVsdWl1oAg1b3VodaA1oTVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3dhbGxwYXBlciIgbXNnaWQ9IjM4NTAyODAxNTgwNDExNzU5OTgiPiLVitWh1b3Vv9Wh1bwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3dhbGxwYXBlciIgbXNnaWQ9IjU2MzA0MTc4NTQ3NTA1NDAxNTQiPiLVk9W41a3VpdWsINW91aHWgNaE1asg1brVodW91b/VodW81asg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zeXN0ZW1DbG9jayIgbXNnaWQ9IjQwNjUzNTc1OTIzNjYxMjk5MiI+ItS61aHVtNWh1oHVuNaC1bXWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3lzdGVtQ2xvY2siIG1zZ2lkPSIzOTQ0MzU5ODMzNjI0MDk0OTkyIj4i1ZPVuNWt1aXVrCDVvdWh1oDWhNWrINWq1aHVtNWoINWv1aHVtCDVqtWh1bTVodW11avVtiDVo9W41b/Vq9W2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zdGF0dXNCYXIiIG1zZ2lkPSIyMDk1ODYyNTY4MTEzOTQ1Mzk4Ij4i1L/VodaA1aPVodW+1avVs9Wh1a/VqyDVo9W41b/VqyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RhdHVzQmFyIiBtc2dpZD0iNjI0MjU5MzQzMjIyNjgwNzE3MSI+ItWT1bjVrdWl1awg1b3VodaA1oTVqyDVr9Wh1oDVo9Wh1b7Vq9Wz1aHVr9WrINWj1bjVv9W41oIg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zeW5jU2V0dGluZ3MiIG1zZ2lkPSIzMzQxOTkwOTg2MTQ3ODI2NTQxIj4i1YDVodW01aHVqtWh1bTVpdaB1bTVodW2INWv1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N5bmNTZXR0aW5ncyIgbXNnaWQ9Ijc2MDMxOTUyNjUxMjkwMzE3OTciPiLVhNW41oLVv9aEINWj1bjWgNWu1aXVrCDVsNWh1bTVodWq1aHVtNWl1oHVtNWh1bYg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYWNjb3VudHMiIG1zZ2lkPSIzMzU5NjQ2MjkxMTI1MzI1NTE5Ij4i1YHVpdaAINWw1aHVt9Wr1b7VttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWNjb3VudHMiIG1zZ2lkPSI0OTQ4NzMyNjQxODI3MDkxMzEyIj4i1YTVuNaC1b/WhNWrINWw1bbVodaA1aHVvtW41oDVuNaC1anVtdW41oLVtiDVodW81a/VoSDVsNWh1bfVq9W+1bbVpdaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9oYXJkd2FyZUNvbnRyb2xzIiBtc2dpZD0iNzk5ODIxNDk2ODc5MTU5OTMyNiI+ItWN1aHWgNaE1aHVt9Wh1oDVqyDVr9Wh1oDVo9Wh1b7VuNaA1bjWgtW01bbVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19oYXJkd2FyZUNvbnRyb2xzIiBtc2dpZD0iNDM1NzA1Nzg2MTIyNTQ2MjcwMiI+ItSx1bbVtNWr1bvVodWv1aHVtiDVtNW41oLVv9aEINWw1aXVvNWh1a3VuNW91asg1b3VodaA1oTVodW31aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfcGhvbmVDYWxscyIgbXNnaWQ9IjkwNjcxNzM5ODgzMjU4NjU5MjMiPiLVgNWl1bzVodWt1bjVvdWh1bXVq9W2INWm1aHVttWj1aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19waG9uZUNhbGxzIiBtc2dpZD0iNzQ4OTcwMTYyMDQ0NjE4Mzc3MCI+ItWO1aXWgNWh1bDVvdWv1aXVrCwg1bHVodW11bbVodWj1oDVpdWs1aXVrCDWhyDVr9Wh1b/VodaA1aXVrCDVsNWl1bzVodWt1bjVvdWh1abVodW21aPVpdaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zeXN0ZW1Ub29scyIgbXNnaWQ9IjQ2NTIxOTE2NDQwODI3MTQwNDgiPiLVgNWh1bTVodWv1aHWgNWj1asg1aPVuNaA1a7Vq9aE1bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N5c3RlbVRvb2xzIiBtc2dpZD0iODE2MjEwMjYwMjE5MDczNDMwNSI+ItWA1aHVtNWh1a/VodaA1aPVqyDVodW+1aXVrNWrINaB1aHVrtaAINW01aHVr9Wh1oDVpNWh1a/VqyDVtNWh1b/VudW41oLVtCDWhyDVvtWl1oDVodWw1b3Vr9W41bLVuNaC1anVtdW41oLVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGV2ZWxvcG1lbnRUb29scyIgbXNnaWQ9IjM0NDYxNjQ1ODQ3MTA1OTY1MTMiPiLUvtaA1aHVo9aA1aHVvtW41oDVtNWh1bYg1aPVuNaA1a7Vq9aE1bbVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kZXZlbG9wbWVudFRvb2xzIiBtc2dpZD0iNzA1ODgyODAzMjM1ODE0MjAxOCI+ItSz1bjWgNWu1aHVvNW41oLVtdWp1bbVpdaALCDVuNaAINWh1bbVsNaA1aHVqtWl1bfVvyDVpdW2INW01avVodW11bYg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINWu1oDVodWj1oDVodW+1bjWgNW41bLVttWl1oDVq9W2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaXNwbGF5IiBtc2dpZD0iNDI3OTkwOTY3NjAzNjQwMjYzNiI+ItSx1bXVrCDVsNWh1b7VpdWs1b7VodWu1asgVUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Rpc3BsYXkiIG1zZ2lkPSI2MDUxMDAyMDMxOTMzMDEzNzE0Ij4i1LHVptWk1aXVrCDVodW11awg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrIFVJLdW21aXWgNWr1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N0b3JhZ2UiIG1zZ2lkPSIxOTcxMTE4NzcwNTQ2MzM2OTY2Ij4i1YrVodWw1bjWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3NDQyMzE4NTAyNDQ2ODc0OTk5Ij4i1YTVuNaC1b/WhCDVo9W41oDVrtWl1awgVVNCINW61aHVsNW41oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdG9yYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iOTIwMzMwMjIxNDkxNTM1NTc3NCI+ItWE1bjWgtW/1oQg1aPVuNaA1a7VpdWsIFNEINaE1aHWgNW/OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hY2Nlc3NpYmlsaXR5RmVhdHVyZXMiIG1zZ2lkPSI3OTE5MDI1NjAyMjgzNTkzOTA3Ij4i1YTVodW/1bnVpdWs1avVuNaC1anVtdWh1bYg1aPVuNaA1a7Vq9aE1bbVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hY2Nlc3NpYmlsaXR5RmVhdHVyZXMiIG1zZ2lkPSI0MjA1MTk2ODgxNjc4MTQ0MzM1Ij4i1YDVodW/1a/VuNaC1anVtdW41oLVttW21aXWgCwg1bjWgCDWhdWq1aHVttWk1aHVr9W41bIg1b/VpdWt1bbVuNWs1bjVo9Wr1aHVtiDVr9Wh1oDVuNWyINWnINWw1aHVtdaB1aXVrDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJldHJpZXZlV2luZG93Q29udGVudCIgbXNnaWQ9IjM5MDE3MTc5MzY5MzAxNzAzMjAiPiLUsdW81aLVpdaA1aXVrCDVutWh1b/VuNaC1bDVodW21asg1aLVuNW+1aHVttWk1aHVr9W41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmV0cmlldmVXaW5kb3dDb250ZW50IiBtc2dpZD0iMzc3MjIyNTAwODYwNTMxMDY3MiI+ItWN1b/VuNaC1aPVpdaEwqDVutWh1b/VuNaC1bDVodW21asg1aLVuNW+1aHVttWk1aHVr9W41oLVqdW11bjWgtW21agsINW41oDVqyDVsNWl1b8g1oPVuNWt1aPVuNaA1a7VodWv1oHVuNaC1bQg1aXWhDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJlcXVlc3RUb3VjaEV4cGxvcmF0aW9uIiBtc2dpZD0iMzEwODcyMzM2NDY3NjY2NzMyMCI+ItWE1avVodaB1bbVpdWsINWA1brVtNWh1bYg1bTVq9W71bjWgdW41b4g1bDVpdW/1aHVptW41b/VuNaC1bTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXF1ZXN0VG91Y2hFeHBsb3JhdGlvbiIgbXNnaWQ9IjU4MDA1NTI1MTY3NzkyNDkzNTYiPiLVj9Wh1oDWgNWl1oDVqCwg1bjWgNW41bbWgSDVsNW61aXWhCwg1aLVodaA1bHWgNWh1bHVodW11bYg1a/VrdW41b3VpdW2LCDWhyDVp9Wv1oDVodW21agg1bDVttWh1oDVodW+1bjWgCDVr9Ws1avVttWrINW41oLVvdW41oLVtNW21aHVvdWr1oDVpdWsINWq1aXVvdW/1aXWgNW41b46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXF1ZXN0RW5oYW5jZWRXZWJBY2Nlc3NpYmlsaXR5IiBtc2dpZD0iMTczOTg4MTc2NjUyMjU5NDA3MyI+ItWE1avVodaB1bbVpdWsINWo1bbVpNWs1aHVtdW21b7VodWuINW+1aXVoiDVtNWh1b/VudWl1azVq9W41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmVxdWVzdEVuaGFuY2VkV2ViQWNjZXNzaWJpbGl0eSIgbXNnaWQ9Ijc4ODEwNjM5NjE1MDc1MTE3NjUiPiLVgNW21aHWgNWh1b7VuNaAINWnINW91a/WgNWr1brVv9W21aXWgCDVv9Wl1bLVodWk1oDVvtWl1bZgINWu1oDVodWj1oDVqyDVotW41b7VodW21aTVodWv1bjWgtWp1bXVuNaC1bbVtiDVodW+1aXVrNWrINW01aHVv9W51aXVrNWrINWk1aHWgNWx1bbVpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdEZpbHRlcktleUV2ZW50cyIgbXNnaWQ9IjIxMDM0NDAzOTE5MDI0MTIxNzQiPiLUttW21bbVpdWsINWx1aXWgCDVtNW41oLVv9aE1aHVo9aA1aHVriDVv9Wl1oTVvdW/1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmVxdWVzdEZpbHRlcktleUV2ZW50cyIgbXNnaWQ9Ijc0NjMxMzUyOTIyMDQxNTI4MTgiPiLVhtWl1oDVodW81bjWgtW0INWnINWh1bbVsdW21aHVr9Wh1bYg1b/VvtW11aHVrNW21aXWgCwg1avVttW51brVq9W91avWhCDVpdW2INW+1aHWgNWv1aHVtdWr1bYg1oTVodaA1b/VpdaA1asg1bDVodW01aHWgNW21aXWgNWoINaHINWj1aHVstW/1bbVodWi1aHVvNWl1oDVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0YXR1c0JhciIgbXNnaWQ9Ijc0MTcxOTI2Mjk2MDE4OTA3OTEiPiLVodW21bvVodW/1aXVrCDVr9Wh1bQg1oPVuNaD1bjVrdWl1awg1a/VodaA1aPVodW+1avVs9Wh1a/VqyDVo9W41b/Vq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyIiBtc2dpZD0iODQzNDY2OTU0OTUwNDI5MDk3NSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVodW21bvVodW/1aXVrCDVr9Wh1oDVo9Wh1b7Vq9Wz1aHVr9WrINWj1bjVv9Wr1bYg1a/VodW0INWh1b7VpdWs1aHWgdW21aXVrCDVuNaCINWw1aXVvNWh1oHVttWl1awg1bDVodW01aHVr9Wh1oDVo9WrINW61aHVv9Wv1aXWgNWh1a/VttWl1oDVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0YXR1c0JhclNlcnZpY2UiIG1zZ2lkPSI3MjQ3MjgxOTExMzg3OTMxNDg1Ij4i1a/VodaA1aPVodW+1avVs9Wh1a/VqyDVo9W41b/VqyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXR1c0JhclNlcnZpY2UiIG1zZ2lkPSI3MTYxMTM2NjA3OTU5NzYwNjAiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1a/VodaA1aPVodW+1avVs9Wh1a/VqyDVo9W41b/Vq9W2INWs1avVttWl1aw6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9leHBhbmRTdGF0dXNCYXIiIG1zZ2lkPSIxMTQ4MTk4Nzg1OTM3NDg5MjY0Ij4i1ajVttWk1azVodW11bbVpdWsINWv1aHVtCDVpdW/INWu1aHVrNWl1awg1a/VodaA1aPVodW+1avVs9Wh1a/VqyDVo9W41b/Vq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZXhwYW5kU3RhdHVzQmFyIiBtc2dpZD0iNjkxNzU0OTQzNzEyOTQwMTEzMiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVrtaA1aHVo9aA1avVtiDVqNW21aTVrNWh1bXVttWl1awg1a/VodW0INWl1b8g1a7VodWs1aXVrCDVr9Wh1oDVo9Wh1b7Vq9Wz1aHVr9WrINWj1bjVv9Wr1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wcm9jZXNzT3V0Z29pbmdDYWxscyIgbXNnaWQ9IjM5MDYwMDc4MzExOTI5OTA5NDYiPiLVvtWl1oDVodW41oLVstWy1aXVrCDVpdWs1oTVodW11avVtiDVptWh1bbVo9Wl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iNTMzMTMxODkzMTkzNzQwMjA0MCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVtNW31aHVr9Wl1awg1aXVrNaE1aHVtdWr1bYg1abVodW21aPVpdaA1agg1ocg1oPVuNWt1aXVrCDVsNWh1bTVodaA1bDVodW+1aHWhNW41oLVtNWoOiDVjtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bYg1b7VpdaA1aHVsNW91a/VpdWsLCDVvtWl1oDVodWw1aHVvdaB1aXVodW+1bjWgNWl1awg1a/VodW0INWv1aHVttWt1aXVrCDVpdWs1oTVodW11avVtiDVptWh1bbVo9Wl1oDVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVTbXMiIG1zZ2lkPSI4NjczNDcxNzY4OTQ3ODk1MDgyIj4i1b3Vv9Wh1bbVodWsINW/1aXWhNW91b/VodW11avVtiDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgCAoU01TKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVTbXMiIG1zZ2lkPSI2NDI0Mzg3NzU0MjI4NzY2OTM5Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW91b/VodW21aHVrCDWhyDVtNW31aHVr9Wl1awgU01TINWw1aHVstW41oDVpNWh1aPWgNW41oLVqdW11bjWgtW21bbVpdaA1ag6INWN1aEg1bbVt9Wh1bbVodWv1bjWgtW0INWnLCDVuNaAINWw1aHVvtWl1azVvtWh1a7VqCDVr9Wh1oDVuNWyINWnINW91b/VuNaC1aPVpdWsINWv1aHVtCDVu9W21bvVpdWsINWx1aXWgCDVvdWh1oDWhNWr1bYg1bjWgtWy1aHWgNWv1b7VodWuINWw1aHVstW41oDVpNWh1aPWgNW41oLVqdW11bjWgtW21bbVpdaA1ahgINWh1bzVodW21oEg1aTWgNWh1bbWhCDVsdWl1aYg1oHVuNaC1oHVodWk1oDVpdWs1bjWgjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVNbXMiIG1zZ2lkPSIxODIxMzE3MzQ0NjY4MjU3MDk4Ij4i1b3Vv9Wh1bbVodWsINW/1aXWhNW91b/VodW11avVtiDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgCAoTU1TKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVNbXMiIG1zZ2lkPSI1MzMwMTk0MzcyNjMyMTIyNjAiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1b3Vv9Wh1bbVodWsINaHINW01bfVodWv1aXVrCBNTVMg1bDVodWy1bjWgNWk1aHVo9aA1bjWgtWp1bXVuNaC1bbVttWl1oDVqDog1Y3VoSDVttW31aHVttWh1a/VuNaC1bQg1acsINW41oAg1bDVodW+1aXVrNW+1aHVrtWoINWv1aHWgNW41bIg1acg1b3Vv9W41oLVo9Wl1awg1a/VodW0INW71bbVu9Wl1awg1bHVpdaAINW91aHWgNaE1avVtiDVuNaC1bLVodaA1a/VvtWh1a4g1bDVodWy1bjWgNWk1aHVo9aA1bjWgtWp1bXVuNaC1bbVttWl1oDVqGAg1aHVvNWh1bbWgSDVpNaA1aHVttaEINWx1aXVpiDWgdW41oLWgdWh1aTWgNWl1azVuNaCOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9IjE4MDM0Nzc2NjA4NDYyODgwODkiPiLVvdW/1aHVttWh1awg1aHWgNW/1aHVr9Wh1oDVoyDVq9aA1aHVvtWr1bPVodWv1bbVpdaA1asg1bDVodWy1bjWgNWk1bjWgtW01bbVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9Ijg0ODUyNDA3MDI2MjQzMTk3NCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVvdW/1aHVttWh1awg1ocg1bTVt9Wh1a/VpdWsINWu1aHVttW41oLWgdW+1bjVsiDVodaA1b/VodWv1aHWgNWjINWw1aHVstW41oDVpNWh1a/WgdW41oLVqdW11bjWgtW21bbVpdaA1ag6INSx1bXVvSDVqdW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW21agg1bDVodW91aHVttWl1azVqyDVpyDVtNWr1aHVtdW2INWw1aHVtNWh1a/VodaA1aPVodW11avVtiDVrtaA1aHVo9aA1aXWgNWr1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2VsbEJyb2FkY2FzdHMiIG1zZ2lkPSIxNTk4MzI4ODQzNjE5NjQ2MTY2Ij4i1a/VodaA1aTVodWsINWi1bvVu9Wh1bXVq9W2INWm1aXVr9W41oLWgdW+1bjVsiDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENlbGxCcm9hZGNhc3RzIiBtc2dpZD0iNjM2MTk3Mjc3NjA4MDQ1ODk3OSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVr9Wh1oDVpNWh1awg1bHVpdaAINW91aHWgNaE1asg1a/VuNWy1bTVq9aBINW91b/VodaB1b7VodWuINWi1bvVu9Wh1bXVq9W2INWw1aXVvNWh1oDVsdWh1a/VvtW41bIg1bDVodWy1bjWgNWk1aHVo9aA1bjWgtWp1bXVuNaC1bbVttWl1oDVqDog1LLVu9W71aHVtdWr1bYg1bDVpdW81aHWgNWx1aHVr9W+1bjVsiDVptWj1bjWgtW31aHWgdW41oLVtNW21aXWgNWoINW41oLVstWh1oDVr9W+1bjWgtW0INWl1bYg1bjWgNW41bcg1b7VodW11oDVpdaA1bjWgtW0YCDVodaA1b/VodWv1aHWgNWjINWr1oDVodW+1avVs9Wh1a/VttWl1oDVqyDVtNWh1b3Vq9W2INWx1aXVpiDVptWj1bjWgtW31aHWgdW21aXVrNW41oIg1bDVodW01aHWgDog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INWt1aHVttWj1aHWgNWl1awg1bHVpdaAINW91aHWgNaE1asg1aHWgNWk1bXVuNaC1bbVodW+1aXVv9W41oLVqdW11aHVttWoINWv1aHVtCDVt9Wh1bDVodWj1bjWgNWu1bTVodW21agsINWl1oDVoiDVvdW/1aHWgdW+1bjWgtW0INWnINWh1oDVv9Wh1a/VodaA1aMg1avWgNWh1b7Vq9Wz1aHVr9WrINW01aHVvdWr1bYg1aLVu9W71aHVtdWr1bYg1bDVodWy1bjWgNWk1bjWgtW0OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFNtcyIgbXNnaWQ9IjU2MDA4MzA2MTIxNDc2NzE1MjkiPiLVuNaC1bLVodaA1a/VpdWsIFNNUyDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRTbXMiIG1zZ2lkPSI3MDk0NzI5Mjk4MjA0OTM3NjY3Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW41oLVstWh1oDVr9Wl1awgU01TINWw1aHVstW41oDVpNWh1aPWgNW41oLVqdW11bjWgtW21bbVpdaAOiDUsdW11bYg1a/VodaA1bjVsiDVpyDVodW21b3VutWh1b3VpdWs1asg1a7VodWt1b3VpdaA1asg1brVodW/1bPVodW8INWk1aHVvNW21aHVrDog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INWx1aXWgCDVsNWh1bfVvtWr1oEg1aPVuNaC1bTVodaAINWu1aHVrdW91aXVrGAg1bjWgtWy1aHWgNWv1aXVrNW41b4g1bDVodWy1bjWgNWk1aHVo9aA1bjWgtWp1bXVuNaC1bbVttWl1oBgICDVodW81aHVttaBINWx1aXWgCDVsNWh1b3Vv9Wh1b/VtNWh1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZW5kUmVzcG9uZFZpYU1lc3NhZ2VSZXF1ZXN0IiBtc2dpZD0iODcxMzg4OTEwNTMwNTk0MzIwMCI+ItW61aHVv9Wh1b3VrdWh1bbVpdWswqDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdWh1bYg1bTVq9W71bjWgdW41b4g1avWgNWh1aTVodaA1bHVuNaC1anVtdW41oLVttW21aXWgCDVuNaC1bLVodaA1a/VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9IjcxMDc2NDg1NDg0Njg3Nzg3MzQiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1bDVodaA1oHVuNaC1bTVttWl1oAg1bjWgtWy1aHWgNWv1aXVrCDVodW11awg1bDVodWy1bjWgNWk1aHVo9aA1bjWgtWp1bXVuNaC1bbVttWl1oDVqyDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1avVtmAg1a/VodW81aHVvtWh1oDVpdWs1bjWgiDVtNW41oLVv9aE1aHVtdWr1bYg1abVodW21aPVpdaA1avVtiDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdWh1bYg1bTVq9W71bjWgdW41b4g1brVodW/1aHVvdWt1aHVttWl1azVuNaCINWk1aXVutaE1aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFNtcyIgbXNnaWQ9Ijg3NDUwODY1NzIyMTMyNzA0ODAiPiLVr9Wh1oDVpNWh1awg1bHVpdaAINW/1aXWhNW91b/VodW11avVtiDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgNWoIChTTVMg1a/VodW0IE1NUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNDY3OTgxNTQ4Njg0NzM1NTIyIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHWgNWk1aHVrMKg1bHVpdaAINWj1oDVodW91aHVrNWr1a/VuNaC1bQg1a/VodW0IFNJTSDWhNWh1oDVv9W41oLVtMKg1brVodWw1b7VodWuIFNNUyDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgNWoOiDVjdWhINWp1bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVr9Wh1oDVpNWh1awg1aLVuNWs1bjWgCBTTVMg1bDVodWy1bjWgNWk1aHVo9aA1bjWgtWp1bXVuNaC1bbVttWl1oDVqGAg1aHVttWv1aHVrSDVotW41b7VodW21aTVodWv1bjWgtWp1bXVuNaC1bbVq9aBINWv1aHVtCDVo9Wh1bLVv9W21avVuNaC1anVtdW41oLVttWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2OTU5Njc1MzM0NTcyNDA1NTAiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1a/VodaA1aTVodWsINWx1aXWgCDVsNWl1bzVodWt1bjVvdW41oLVtCDVr9Wh1bQgU0lNINaE1aHWgNW/1bjWgtW0INW61aHVsNW+1aHVriBTTVMg1bDVodWy1bjWgNWk1aHVo9aA1bjWgtWp1bXVuNaC1bbVttWl1oDVqDog1Y3VoSDVqdW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1a/VodaA1aTVodWsINWi1bjVrNW41oAgU01TINWw1aHVstW41oDVpNWh1aPWgNW41oLVqdW11bjWgtW21bbVpdaA1ahgINWh1bbVr9Wh1a0g1aLVuNW+1aHVttWk1aHVr9W41oLVqdW11bjWgtW21avWgSDVr9Wh1bQg1aPVodWy1b/VttWr1bjWgtWp1bXVuNaC1bbVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTbXMiIG1zZ2lkPSIzMjE2OTUwNDcyNjM2MjE0Nzc0Ij4i1a3VtNWi1aHVo9aA1aXVrCDVsdWl1oAg1b/VpdaE1b3Vv9Wh1bXVq9W2INWw1aHVstW41oDVpNWh1aPWgNW41oLVqdW11bjWgtW21bbVpdaA1aggKFNNUyDVr9Wh1bQgTU1TKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1MTYwNDEzOTQ3Nzk0NTAxNTM4Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW61aHVv9Wh1b3VrdWh1bbVpdWsINWx1aXWgCDVo9aA1aHVvdWh1azVq9Wv1bjWgtW0INWv1aHVtCBTSU0g1oTVodaA1b/VuNaC1bQg1brVodWw1b7VodWuIFNNUyDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgNWr1bY6INWO1bbVodW91aHWgNWh1oAg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoINWv1aHWgNW41bIg1aXVtiDVu9W21bvVpdWsINWx1aXWgCDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzI2ODY2ODcwOTA1MjMyODU2NyI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVutWh1b/VodW91a3VodW21aXVrCDVsdWl1oAg1bDVpdW81aHVrdW41b3VuNaC1bQg1a/VodW0IFNJTSDWhNWh1oDVv9W41oLVtCDVutWh1bDVvtWh1a4gU01TINWw1aHVstW41oDVpNWh1aPWgNW41oLVqdW11bjWgtW21bbVpdaA1avVtjog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INW71bbVu9Wl1awg1bHVpdaAINWw1aHVstW41oDVpNWh1aPWgNW41oLVqdW11bjWgtW21bbVpdaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9IjU5OTEzOTg3MTE5MzY1OTA0MTAiPiLVvdW/1aHVttWh1awg1b/VpdaE1b3Vv9Wh1bXVq9W2INWw1aHVstW41oDVpNWh1aPWgNW41oLVqdW11bjWgtW21bbVpdaAIChXQVApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI3NDgyMzIxOTAyMjA1ODMzODUiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1b3Vv9Wh1bbVodWsINaHINWj1bjWgNWu1aHWgNWv1aXVrCBXQVAg1bDVodWy1bjWgNWk1aHVo9aA1bjWgtWp1bXVuNaC1bbVttWl1oDVqDog1LHVtdW9INWp1bjWgtW11azVv9W+1bjWgtWp1bXVuNaC1bbVqCDVttWl1oDVodW81bjWgtW0INWnINWx1aXVpiDVuNaC1bLVodaA1a/VvtWh1a4g1bDVodWy1bjWgNWk1aHVo9aA1bjWgtWp1bXVuNaC1bbVttWl1oDVqCDVsNWl1b/Wh9Wl1azVuNaCINWv1aHVtCDVu9W21bvVpdWs1bjWgsKg1a/VodaA1bjVstW41oLVqdW11bjWgtW21ahgINWh1bzVodW21oEg1bHVpdaAINW/1aXVvdW21aXVrNW41oI6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRUYXNrcyIgbXNnaWQ9IjY0NjYwOTUzOTY2MjM5MzM5MDYiPiLVodW81aLVpdaA1aXVrCDVodW31a3VodW/1bjVsiDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRUYXNrcyIgbXNnaWQ9Ijc0NTQyMTU5OTU4NDc2NTgxMDIiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1aHVvNWi1aXWgNWl1awg1bTVodW21oDVodW01aHVvdW2INW/1aXVstWl1a/VuNaC1anVtdW41oLVttW21aXWgCDVodW81a/VoSDWhyDVvtWl1oDVu9Wl1oDVvSDVodW31a3VodW/1bjVsiDVodW81aHVu9Wh1aTWgNWh1bbWhNW21aXWgNWrINW01aHVvdWr1bY6INWN1aEg1a/VodaA1bjVsiDVpyDVqdW41oLVtdWsINW/1aHVrCDVsNWh1b7VpdWs1b7VodWu1avVtiDVsNWh1bXVv9W21aHVotWl1oDVpdWsINWh1bbVsdW21aHVr9Wh1bYg1b/VpdWy1aXVr9W41oLVqdW11bjWgtW21bbVpdaAINWh1bXVrCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1b7VpdaA1aHVotWl1oDVtdWh1aw6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcmFjdEFjcm9zc1VzZXJzIiBtc2dpZD0iNzExNDI1NTI4MTk0NDIxMTY4MiI+ItWw1aHVstW41oDVpNWh1a/WgdW+1aXVrCDWhdWj1b/VvtW41bLVttWl1oDVqyDVtNWr1bvWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludGVyYWN0QWNyb3NzVXNlcnMiIG1zZ2lkPSIzNjQ2NzA5NjM2MjMzODU3ODYiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1avWgNWh1a/VodW21aHWgdW21aXVrCDVo9W41oDVrtW41bLVuNaC1anVtdW41oLVttW21aXWgCDVvdWh1oDWhNWrINW/1aHWgNWi1aXWgCDWhdWj1b/VvtW41bLVttWl1oDVqyDVtNWr1bvVuNaB1bjVvjog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INaF1aPVv9Wh1aPVuNaA1a7VpdWsINW91aFgINWt1aHVrdW/1aXVrNW41oIg1oXVo9W/1b7VuNWy1bbVpdaA1asg1bTVq9W71ocg1brVodW31b/VutWh1bbVuNaC1anVtdW41oLVttWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW50ZXJhY3RBY3Jvc3NVc2Vyc0Z1bGwiIG1zZ2lkPSIyNTY3NzM0Mjg1NTQ1MDc0MTA1Ij4i1aHVtNWi1bjVstW71aHVr9Wh1bYg1bDVodWy1bjWgNWk1aHVr9aB1b7VpdWs1bjWgiDVodaA1b/VuNW21bjWgtWp1bXVuNaC1bYg1oXVo9W/1b7VuNWy1bbVpdaA1asg1bTVq9W71ociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcmFjdEFjcm9zc1VzZXJzRnVsbCIgbXNnaWQ9IjM3Njg0MTM2ODM5NTUwMjM2NiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVotW41azVuNaAINWw1bbVodaA1aHVvtW41oAg1bDVodWy1bjWgNWk1aHVr9aB1bjWgtWp1bXVodW2INWl1bLVodW21aHVr9W21aXWgNWoINaF1aPVv9W+1bjVstW21aXWgNWrINW01avVu9aHOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlVXNlcnMiIG1zZ2lkPSIxNjc2MTUwOTExNjcyMjgyNDI4Ij4i1a/VodW81aHVvtWh1oDVpdWsINaF1aPVv9W+1bjVstW21aXWgNWr1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VVc2VycyIgbXNnaWQ9Ijg0MDkzMDY2Njc2NDUzNTU2MzgiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtW21aXWgNWr1bYg1a/VodW81aHVvtWh1oDVpdWsINW91aHWgNaE1asg1oXVo9W/1aHVo9W41oDVrtW41bLVttWl1oDVq9W2LCDVodW11aQg1anVvtW41oLVtGAg1bDVodaA1oHVuNaC1bTVttWl1oDVqCwg1b3Vv9Wl1bLVrtW41oLVtNW2INW41oIg1bvVttW71bjWgtW01ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXREZXRhaWxlZFRhc2tzIiBtc2dpZD0iNjIyOTQ2ODY3NDc1MzUyOTUwMSI+ItWh1bzVotWl1oDVpdWsINWh1bfVrdWh1b/VuNWyINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVtNWh1bbWgNWh1bTVodW91bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXREZXRhaWxlZFRhc2tzIiBtc2dpZD0iMTUzODI0NzQxNDQwNzE3NTk5Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWh1bzVotWl1oDVpdWsINW01aHVttaA1aHVtNWh1b3VtiDVv9Wl1bLVpdWv1bjWgtWp1bXVuNaC1bbVttWl1oAg1aHVvNWv1aEg1ocg1b7VpdaA1bvVpdaA1b0g1aHVt9Wt1aHVv9W41bIg1aHVvNWh1bvVodWk1oDVodW21oTVttWl1oDVqyDVtNWh1b3Vq9W2OiDVjtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bYg1bDVodW11b/VttWh1aLVpdaA1aXVrCDVodW21bHVttWh1a/VodW2INW/1aXVstWl1a/VuNaC1anVtdW41oLVttW21aXWgCDVodW11awg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINW+1aXWgNWh1aLVpdaA1bXVodWsOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVvcmRlclRhc2tzIiBtc2dpZD0iMjAxODU3NTUyNjkzNDQyMjc3OSI+ItW+1aXWgNWh1aTVodW91aHVvtW41oDVpdWsINWh1bfVrdWh1b/VuNWyINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Jlb3JkZXJUYXNrcyIgbXNnaWQ9Ijc3MzQyMTc3NTQ4Nzc0MzkzNTEiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oPVuNWt1aHVttaB1aXVrCDVodW81aHVu9Wh1aTWgNWh1bbWhNW21aXWgNWoINWh1bzVu9aH1oQg1ocg1bDVpdW/1bbVodW31aXWgNW/OiDVgNWh1b7VpdWs1b7VodWu1agg1a/VodaA1bjVsiDVpyDVvdWhINWh1bbVpdWsINWh1bzVodW21oEg1bHVpdaAINW21aXWgNWh1a7VtNWh1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZW1vdmVUYXNrcyIgbXNnaWQ9IjY4MjE1MTM0MDE4NzAzNzc0MDMiPiLVpNWh1aTVodaA1aXWgdW21aXVrCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1aHVt9Wt1aHVv9Wh1bbWhNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVtb3ZlVGFza3MiIG1zZ2lkPSIxMzk0NzE0MzUyMDYyNjM1NDkzIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWw1aXVvNWh1oHVttWl1awg1aHVvNWh1bvVodWk1oDVodaE1bbVpdaA1agg1ocg1b7VpdaA1aHWgdW21aXVrCDVpNaA1aHVttaBINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqDog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INWt1aHVttWj1aHWgNWl1awg1aHVtdWsINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVo9W41oDVrtW41oLVttWl1bjWgtWp1bXVodW21ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjczOTExOTEzODQwMjczMDMwNjUiPiLVr9Wh1bzVodW+1aHWgNWl1awg1aPVuNaA1a7VuNaC1bbVpdW41oLVqdW11aHVtiDVr9W41oLVtdW/1aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQWN0aXZpdHlTdGFja3MiIG1zZ2lkPSIxNjE1ODgxOTMzMDM0MDg0NDQwIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWu1oDVodWj1oDVq9W2INWh1b7VpdWs1aHWgdW21aXVrCwg1bDVpdW81aHWgdW21aXVrCDWhyDWg9W41oPVuNWt1aXVrCDVo9W41oDVrtW41oLVttWl1bjWgtWp1bXVodW2INWv1bjWgtW11b/VpdaA1agsINW41oDVuNW21oHVuNaC1bQg1aHVt9Wt1aHVv9W41oLVtCDVpdW2INWh1bXVrCDVrtaA1aHVo9aA1aXWgDog1Y7VttWh1b3VodWv1aHWgCDVrtaA1aHVo9aA1aXWgNWoINWv1aHWgNW41bIg1aXVtiDVrdWh1anVodaA1aXVrCDVodW11awg1a7WgNWh1aPWgNWl1oDVqyDVvtWh1oDWhNWh1aPVq9Wu1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdGFydEFueUFjdGl2aXR5IiBtc2dpZD0iMjkxODc2ODIzODA0NTIwNjQ1NiI+ItW01aXVr9W21aHWgNWv1aXVrCDWgdWh1bbVr9Wh1oHVodWuINWj1bjWgNWu1bjWgtW21aXVuNaC1anVtdW41oLVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXJ0QW55QWN0aXZpdHkiIG1zZ2lkPSI5OTc4MjM2OTUzNDM1ODQwMDEiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1bTVpdWv1bbVodaA1a/VpdWsINaB1aHVttWv1aHWgdWh1a4g1aPVuNaA1a7VuNaC1bbVpdW41oLVqdW11bjWgtW2YCDVodW21a/VodWtINWp1bjWgtW11azVv9W+1bjWgtWp1bXVodW2INW61aHVt9W/1brVodW21b7VodWu1bjWgtWp1bXVuNaC1bbVq9aBINWv1aHVtCDVodaA1b/VodWw1aHVttW01aHVtiDVr9Wh1oDVo9Wh1b7Vq9Wz1aHVr9Wr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjk3NTM4NzExODg2MTg0MjA2MSI+ItWv1aHWgNWj1aHVvtW41oDVpdWsINWn1a/WgNWh1bbVqyDVsNWh1bTVodW/1aXVstWl1azVq9W41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjkyMDQzNjE4NjkzOTE3Mzc0Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW+1aXWgNWh1bDVvdWv1aXVrCDVodW11awg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINWn1a/WgNWh1bbVqyDVsNWh1bTVodW/1aXVstWl1azVq9W41oLVqdW11aHVtiDVvNWl1arVq9W01ag6INWO1bbVodW91aHWgNWh1oAg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoINWv1aHWgNW41bIg1aXVtiDVrdWh1anVodaA1aXVrCDVodW11awg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINW+1aHWgNaE1aHVo9Wr1a7VqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldERlYnVnQXBwIiBtc2dpZD0iMzAyMjEwNzE5ODY4NjU4NDA1MiI+ItW01avVodaB1bbVpdWsINWw1aHVvtWl1azVvtWh1a7VqyDVvtaA1avVutWh1abVpdaA1a7VuNaC1bTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldERlYnVnQXBwIiBtc2dpZD0iNDQ3NDUxMjQxNjI5OTAxMzI1NiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVtNWr1aHWgdW21aXVrCDVvtaA1avVutWh1abVpdaA1a7VuNaC1bTVqCDVodW11awg1bDVodW+1aXVrNW+1aHVrtWrINWw1aHVtNWh1oA6INWO1bbVodW91aHWgNWh1oAg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoINWv1aHWgNW41bIg1aXVtiDWhdWj1b/VodWj1bjWgNWu1aXVrCDVvdWhYCDVtNW11bjWgtW9INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVvtWl1oDVodaB1bbVpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlQ29uZmlndXJhdGlvbiIgbXNnaWQ9IjQxNjIwOTIxODUxMjQyMzQ0ODAiPiLWg9W41a3VpdWsINWw1aHVtNWh1a/VodaA1aPVqyDWgdW41oLWgdWh1aTWgNW01aHVtiDVr9Wh1oDVo9Wh1b7VuNaA1bjWgtW01bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb25maWd1cmF0aW9uIiBtc2dpZD0iNDM3MjIyMzg3MzE1NDI5NjA3NiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWg9W41a3VpdWsINWh1bzVr9WhINWv1aHWgNWj1aHVvtW41oDVuNaC1bTVqCwg1avVttW51brVpdW9INaF1oDVq9W21aHVryDVv9Wl1bLVuNaC1bXVqdWrINWv1aHVtCDVqNW21aTVsNWh1bbVuNaC1oAg1b/VodW81aHVudWh1oPVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2VuYWJsZUNhck1vZGUiIG1zZ2lkPSI1Njg0NTA0MDU4MTkyOTIxMDk4Ij4i1bTVq9Wh1oHVttWl1awg1bTVpdaE1aXVttWh1bXVqyDVvNWl1arVq9W01agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19lbmFibGVDYXJNb2RlIiBtc2dpZD0iNDg1MzE4NzQyNTc1MTQxOTQ2NyI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVtNWr1aHWgdW21aXVrCDVtNWl1oTVpdW21aHVtdWrINW81aXVqtWr1bTVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iMzkxNDAyNjY4NzQyMDE3NzIwMiI+ItaD1aHVr9Wl1awg1aHVtdWsINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iNDU5MzM1MzIzNTk1OTczMzExOSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVvtWl1oDVuyDVv9Wh1awg1aHVtdWsINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVsNWl1b/VttWh1bfVpdaA1b/VqyDVo9W41oDVrtWo1bbVqdWh1oHVttWl1oDVqDog1Y3VoSDVr9Wh1oDVuNWyINWnINW61aHVv9Wz1aHVvCDVpNWh1bzVttWh1awsINW41oAg1aHVtdWsINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVpNWh1aTVodaA1aXVtiDVodW31a3VodW/1aXVrDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZvcmNlU3RvcFBhY2thZ2VzIiBtc2dpZD0iMjMyOTYyNzQyODgzMjA2NzcwMCI+ItW91b/Vq9W61aXVrCDVpNWh1aTVodaA1aXWgdW21aXVrCDVodW11awg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZm9yY2VTdG9wUGFja2FnZXMiIG1zZ2lkPSI1MjUzMTU3Mjk2MTgzOTQwODEyIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW91b/Vq9W61bjVstWh1aLVodaAINWk1aHVpNWh1oDVpdaB1bbVpdWsINWh1bXVrCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mb3JjZUJhY2siIG1zZ2lkPSI2NTI5MzUyMDQwNzI1ODQ2MTYiPiLVvdW/1avVutWl1awsINW41oAg1bDVodW+1aXVrNW+1aHVrtWoINaD1aHVr9W+1asiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mb3JjZUJhY2siIG1zZ2lkPSIzODkyMjk1ODMwNDE5NTEzNjIzIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW91b/Vq9W61aXVrCDVuNaA1ofVpyDVo9W41oDVrtW41oLVttWl1bjWgtWp1bXVuNaC1bYsINW41oDVqCDVo9W/1bbVvtW41oLVtCDVpyDVodW81bvWh9aE1bjWgtW0LCDWg9Wh1a/VpdWsINW41oIg1aXVvyDVo9W21aHVrDog1Y3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVsNWh1bTVodaAINWl1oDVotaH1acgINWh1bbVsNaA1aHVqtWl1bfVvyDVudW61aXVv9aEINWnINWs1avVttWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZHVtcCIgbXNnaWQ9IjE2ODE3OTk4NjI0Mzg5NTQ3NTIiPiLVodW81aLVpdaA1aXVrCDVsNWh1bTVodWv1aHWgNWj1asg1bbVpdaA1oTVq9W2INWv1aHWgNWj1aHVvtWr1bPVodWv1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kdW1wIiBtc2dpZD0iMTc3ODI5OTA4ODY5MjI5MDMyOSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVodW81aLVpdaA1aXVrMKg1bDVodW01aHVr9Wh1oDVo9WrINW21aXWgNaE1avVtiDVr9Wh1oDVo9Wh1b7Vq9Wz1aHVr9WoOiDVjtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bYg1aHVvNWi1aXWgNWl1awg1aLVodWm1bTVodWp1avVviDVodW21bHVttWh1a/VodW2INaHINWh1brVodWw1bjVviDVv9Wl1bLVpdWv1bjWgtWp1bXVuNaC1bbVttWl1oAsINW41oDVuNW21oQg1aXWgNWi1aXWhCDVvdW41b7VuNaA1aHVotWh1oAg1aHVttWw1oDVodWq1aXVt9W/INW51aXVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iODAyMjU4ODYwODk5NDU4OTkzOCI+ItWh1bzVotWl1oDVpdWsINWn1a/WgNWh1bbVqyDVotW41b7VodW21aTVodWv1bjWgtWp1bXVuNaC1bbVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iMzE5MzI2OTA2OTQ2OTcwMDI2NSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVodW81aLVpdaA1aXVrMKg1aHVr9W/1avVviDVutWh1b/VuNaC1bDVodW21asg1brVodaA1bjWgtW21aHVr9W41oLVqdW11bjWgtW21ag6INWO1bbVodW91aHWgNWh1oAg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoINWv1aHWgNW41bIg1aXVtiDVodW81aLVpdaA1aXVrCDVutWh1b/VuNaC1bDVodW21asg1azWgNWr1b4g1brVodaA1bjWgtW21aHVr9W41oLVqdW11bjWgtW21agg1ocg1bDVpdW/1aHVptW41b/VpdWsINWk1oDVoSDVodW01aLVuNWy1bsg1b/VpdaE1b3Vv9WoYCDVotWh1oHVodW81bjWgtWp1bXVodW01aIg1aPVodWy1b/VttWh1aLVodW81aXWgNWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdGVtcG9yYXJ5X2VuYWJsZV9hY2Nlc3NpYmlsaXR5IiBtc2dpZD0iMjMxMjYxMjEzNTEyNzMxMDI1NCI+ItWq1aHVtNWh1bbVodWv1aHVvtW41oAg1bTVq9Wh1oHVttWl1awg1bTVuNaC1b/WhNWrINWw1bbVodaA1aHVvtW41oDVuNaC1anVtdW41oLVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdGVtcG9yYXJ5X2VuYWJsZV9hY2Nlc3NpYmlsaXR5IiBtc2dpZD0iODA3OTQ1NjI5MzE4Mjk3NTQ2NCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVqtWh1bTVodW21aHVr9Wh1b7VuNaA1aHVutWl1b0g1bTVuNaC1b/WhNWrINWw1bbVodaA1aHVvtW41oDVuNaC1anVtdW41oLVtiDVv9Wh1awg1b3VodaA1oTVq9W2OiDVjtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bYg1bTVuNaC1b/WhNWrINWw1bbVodaA1aHVvtW41oDVuNaC1anVtdW41oLVtiDVqNW21bHVpdW81aXVrCDVodW81aHVttaBINaF1aPVv9W+1bjVstWrINWw1aHVtNWh1bHVodW11bbVuNaC1anVtdWh1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9Ijg1MzIyOTUxOTkxMTI1MTkzNzgiPiLVodW81aLVpdaA1aXVrCDVutWh1b/VuNaC1bDVodW21asg1b/VpdWy1aXVr9W41oLVqdW11bjWgtW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmV0cmlldmVfd2luZG93X2luZm8iIG1zZ2lkPSI0OTk4ODM2MzcwNDI0MTg2ODQ5Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWh1bzVotWl1oDVpdWswqDVutWh1b/VuNaC1bDVodW21bbVpdaA1asg1bTVodW91avVtiDVv9Wl1bLVpdWv1aHVv9W+1bjWgtWp1bXVuNaC1bbVttWl1oDCoCDVutWh1b/VuNaC1bDVodW21asg1a/VodW81aHVvtWh1oDVudWr1oE6INWO1bbVodW91aHWgNWh1oAg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoINWv1aHWgNW41bIg1aXVtiDVodW81aLVpdaA1aXVrCDVv9Wl1bLVpdWv1bjWgtWp1bXVuNaC1bbVttWl1oAsINW41oDVqCDVttWh1a3VodW/1aXVvdW+1aHVriDVpyDVttWl1oDWhNWr1bYg1bDVodW01aHVr9Wh1oDVo9WrINaF1aPVv9Wh1aPVuNaA1a7VtNWh1bYg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4Njc1NTM1NjQ4ODA3NDI3Mzg5Ij4i1abVv9Wl1awg1avWgNWh1aTVodaA1bHVuNaC1anVtdW41oLVttW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmlsdGVyX2V2ZW50cyIgbXNnaWQ9IjgwMDYyMzYzMTU4ODgzNDc2ODAiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1aPWgNWh1bbWgdWl1awg1bTVuNaC1b/WhNWh1aPWgNW01aHVtiDVptW/1avVuSwg1bjWgNWoINWm1b/VuNaC1bQg1acg1oXVo9W/1b7VuNWy1asg1avWgNWh1aTVodaA1bHVuNaC1anVtdW41oLVttW21aXWgNWrINWh1bTVotW41bLVuyDVsNW41b3WhNWoYCDVttWh1a3WhNWh1bYg1aTWgNWh1bbWhCDVr9W41oLVstWh1oDVr9W+1aXVtjog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1agg1a/VodaA1bjVsiDVpyDVr9Wh1bzVodW+1aHWgNWl1awg1bDVodW01aHVr9Wh1oDVo9WrIFVJLdWoYCDVodW81aHVttaBINWx1aXWgCDVtNWr1bvVodW01b/VuNaC1anVtdWh1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI1OTczNjI2NzM4MTcwNjE4Nzc1Ij4i1a3VuNW31bjWgNWh1oHVttWl1awg1oHVuNaC1oHVodWk1oDVq9W51agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI3MTIxMjM1Njg0NTE1MDAzNzkyIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWt1bjVt9W41oDVodaB1bbVpdWsINaB1bjWgtaB1aHVpNaA1avVudWrINWi1bjVvtWh1bbVpNWh1a/VuNaC1anVtdW41oLVttWoOiDVjtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bYg1oPVuNWt1aHVr9Wl1oDVutWl1awg1oHVuNaC1oHVodWk1oDVq9W51asg1aLVuNW+1aHVttWk1aHVr9W41oLVqdW11bjWgtW21agg1aHVtdW21brVpdW9LCDVuNaAINW91aHWgNaE1agg1aTVodW81bbVoSDVodW21brVq9W/1aHVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NodXRkb3duIiBtc2dpZD0iNzE4NTc0NzgyNDAzODkwOTAxNiI+ItW01aHVvdW21aHVr9WrINWh1bbVu9Wh1b/VuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zaHV0ZG93biIgbXNnaWQ9IjcwNDY1MDA4Mzg3NDYyOTE3NzUiPiLUtNW21bjWgtW0INWnINWj1bjWgNWu1bjWgtW21aXVuNaC1anVtdWh1bYg1a/VodW81aHVvtWh1oDVudWr1bYg1aHVttW71aHVv9W01aHVtiDVr9Wh1oDVo9Wh1b7Vq9Wz1aHVr9WrINW01aXVuzog1YnVqyDVq9aA1aHVr9Wh1bbVodaB1bbVuNaC1bQg1aHVtNWi1bjVstW71aHVr9Wh1bYg1aHVttW71aHVv9W41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0b3BBcHBTd2l0Y2hlcyIgbXNnaWQ9IjQxMzg2MDg2MTA3MTc0MjU1NzMiPiLVr9Wh1bbVrdWl1awg1a7WgNWh1aPWgNWrINaD1bjVrdWh1oDVr9W41oLVtNW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RvcEFwcFN3aXRjaGVzIiBtc2dpZD0iODI2MjE5NTgwMjU4MjI1NTAyMSI+ItS/1aHVttWt1bjWgtW0INWnINaF1aPVv9W+1bjVstWrINWh1bbWgdW41oLVtNWoINWh1bXVrCDVsNWh1b7VpdWs1b7VodWu1as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRUb3BBY3Rpdml0eUluZm8iIG1zZ2lkPSIyNTM3OTIyMzExNDExNTQ2MDE2Ij4i1b3Vv9Wh1bbVodWsINWo1bbVqdWh1oHVq9WvINWw1aHVvtWl1azVvtWh1a7VqyDVtNWh1b3Vq9W2INW/1aXVstWl1a/VuNaC1anVtdW41oLVttW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRvcEFjdGl2aXR5SW5mbyIgbXNnaWQ9IjgxNTM2NTE0MzQxNDUxMzI1MDUiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1b3VpdaD1aHVr9Wh1bbVodW/1avWgNW41bvVqCDVodW81aLVpdaA1aXVrCDVo9Wh1bLVv9W21asg1b/VpdWy1aXVr9W41oLVqdW11bjWgtW21bbVpdaAINWo1bbVqdWh1oHVq9WvINWw1aHVvtWl1azVvtWh1a7VqyDWhyDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bbVttWl1oDVqyDVtNWh1b3Vq9W2INWn1a/WgNWh1bbVqyDVodW81aHVu9Wr1bYg1brVrNWh1bbVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ydW5TZXRBY3Rpdml0eVdhdGNoZXIiIG1zZ2lkPSI4OTIyMzkwOTQ4NjcxODI2NTYiPiLVvtWl1oDVodWw1b3Vr9Wl1awg1ocg1a/VodW81aHVvtWh1oDVpdWsINWi1bjVrNW41oAg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINWp1bjVstWh1oDVr9W41oLVtNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcnVuU2V0QWN0aXZpdHlXYXRjaGVyIiBtc2dpZD0iNjAwMzYwMzE2MjU3ODU3NzQwNiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVsNWl1b/Wh9Wl1awg1ocg1b7VpdaA1aHVsNW91a/VpdWsLCDVqdWlINWr1bbVudW61aXVvSDVpyDVsNWh1bTVodWv1aHWgNWj1agg1aPVuNaA1a7VodaA1a/VuNaC1bQg1aPVuNaA1a7VuNWy1bjWgtWp1bXVuNaC1bbVttWl1oDVqDog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INWh1bTVotW41bLVu9W41oLVqdW11aHVtNWiINW+1bbVodW91aXVrCDVsNWh1bTVodWv1aHWgNWj1ag6INSx1bXVvSDVqdW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW21agg1aHVttWw1oDVodWq1aXVt9W/INWnINW01avVodW11bYg1a7WgNWh1aPWgNWh1b7VuNaA1bTVodW2INWw1aHVtNWh1oAg1ocg1bjVuSDVpdaA1aLVpdaEINW91bjVvtW41oDVodWv1aHVtiDWhdWj1b/VodWj1bjWgNWu1bTVodW2INWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RQYWNrYWdlUmVtb3ZlZCIgbXNnaWQ9IjI1NzYzMzM0MzQ4OTM1MzI0NzUiPiLVuNaC1bLVodaA1a/VpdWsINWw1aXVvNWh1oHVvtWh1a4g1oPVodWp1aXVqdWrINW01aHVvdWr1bYg1bDVodWy1bjWgNWk1bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSI2NjIxOTAxMjE2MjA3OTMxMDg5Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWw1aHVstW41oDVpNWl1awg1a7VodW21bjWgtaB1bjWgtW0LCDVuNaAINWw1aXVvNWh1oHVvtWl1awg1acg1bDVodW+1aXVrNW+1aHVrtWrINaD1aHVqdWl1ak6INWO1bbVodW91aHWgNWh1oAg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoINWv1aHWgNW41bIg1aXVtiDWhdWj1b/VodWj1bjWgNWu1aXVrCDVvdWhINaB1aHVttWv1aHWgdWh1a4g1aHVtdWsINWh1bfVrdWh1b/VuNWyINWw1aHVvtWl1azVvtWh1a4g1b3VutWh1bbVpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI1Njg5MDk1MDA5MDMwMzM2NTkzIj4i1bjWgtWy1aHWgNWv1aXVrCDVvdW/1aHWgdW+1aHVriBTTVMt1asg1bDVodWy1bjWgNWk1bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI0MTUyMDM3NzIwMDM0MzY1NDkyIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWw1aHVstW41oDVpNWl1awg1a7VodW21bjWgtaB1bjWgtW0LCDVuNaAINW91b/VodaB1b7VpdWsINWnIFNNUyDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVtjog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INaF1aPVv9Wh1aPVuNaA1a7VpdWsINW91aFgINWv1aXVstWu1aXVrNW41oIg1bTVuNaC1b/WhNWh1bXVq9W2IFNNUyDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjMxNDUzNDc0MTMwMjg1ODIzNzEiPiLVuNaC1bLVodaA1a/VpdWsINW91b/VodaB1b7VodWuIFdBUC1QVVNILdWrICDVsNWh1bLVuNaA1aTVuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RXYXBQdXNoIiBtc2dpZD0iNDc4MzQwMjUyNTAzOTQ0MjcyOSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVsNWh1bLVuNaA1aTVpdWsINWu1aHVttW41oLWgdW41oLVtCwg1bjWgCDVvdW/1aHWgdW+1aXVrCDVpyBXQVAgUFVTSCDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVtjog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INaF1aPVv9Wh1aPVuNaA1a7VpdWsINW91aFgINWv1aXVstWu1aXVrNW41oIgTU1TINWw1aHVstW41oDVpNWh1aPWgNW41oLVqdW11aHVtiDVvdW/1aHWgdW41oLVtNWoINWv1aHVtCDVodW21bbVr9Wh1b8g1oPVuNWt1aHWgNWr1bbVpdWs1bjWgiDWgdWh1bbVr9Wh1oHVodWuINWv1aHVtdaE1asg1aLVuNW+1aHVttWk1aHVr9W41oLVqdW11bjWgtW21agg1b7VttWh1b3VodaA1aHWgCDVv9Wh1oDVotWl1oDVodWv1bbVpdaA1bjVvjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFByb2Nlc3NMaW1pdCIgbXNnaWQ9IjI0NTE4NzM2NjQzNjM2NjI2NjYiPiLVvdWh1bDVtNWh1bbVodaD1aHVr9Wl1awg1aHVt9Wt1aHVv9W41bIg1aPVuNaA1a7VqNW21anVodaB1bbVpdaA1asg1anVq9W+1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRQcm9jZXNzTGltaXQiIG1zZ2lkPSI3MzE4MDYxMzE0MDQwODc5NTQyIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW+1aXWgNWh1bDVvdWv1aXVrCDVo9W41oDVrtWo1bbVqdWh1oHVttWl1oDVqyDVodW81aHVvtWl1azVodWj1bjWgtW11bYg1anVq9W+1agsINW41oAg1aHVt9Wt1aHVv9Wl1azVuNaCINWl1bY6INS11oDVotaH1acg1aHVttWw1oDVodWq1aXVt9W/INW51acg1b3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0QWx3YXlzRmluaXNoIiBtc2dpZD0iNTUwOTU4NTA3Nzk4Nzk2OTY1Ij4i1b3Vv9Wr1brVpdWsLCDVuNaAINWh1bzVodW71avVtiDVutWs1aHVttWrINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDWg9Wh1a/VvtWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbHdheXNGaW5pc2giIG1zZ2lkPSI3NDcxMzEwNjUyODY4ODQxNDk5Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW+1aXWgNWh1bDVvdWv1aXVrCDVodaA1aTVtdW41oQg1aPVuNaA1a7VuNWy1bjWgtWp1bXVuNaC1bbVttWl1oDVqCDVtNWr1bfVvyDVodW+1aHWgNW/1b7VodWuINWl1bYsINWl1oDVoiDVo9W21bjWgtW0INWl1bYg1bDVpdW/1avVtiDVutWs1aHVtjog1LXWgNWi1ofVpyDVodW21bDWgNWh1arVpdW31b8g1bnVpyDVvdW41b7VuNaA1aHVr9Wh1bYg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iYXR0ZXJ5U3RhdHMiIG1zZ2lkPSIyNzg5NjEwNjczNTE0MTAzMzY0Ij4i1a/VodaA1aTVodWsINW01aHWgNW/1a/VuNaB1asg1a/VodaA1aPVodW+1avVs9Wh1a/VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JhdHRlcnlTdGF0cyIgbXNnaWQ9IjU4OTczNDY1ODI4ODI5MTUxMTQiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1a/VodaA1aTVodWsINWo1bbVqdWh1oHVq9WvINaB1aHVrtaAINW01aHVr9Wh1oDVpNWh1a/VqyDVtNWh1oDVv9Wv1bjWgdWrINaF1aPVv9Wh1aPVuNaA1a7VtNWh1bYg1b/VvtW11aHVrNW21aXWgNWoOiDUv9Wh1oDVuNWyINWnINWp1bjWgtW11awg1b/VodWsINWw1aHVvtWl1azVvtWh1a7Vq9W2INW61aHWgNWm1aXVrCDVtNWh1bbWgNWh1bTVodW91bYg1b/VpdWy1aXVr9W41oLVqdW11bjWgtW21bbVpdaALCDVqdWlINW41oAg1bDVodW+1aXVrNW+1aHVrtW21aXWgNW2INWl1oQg1oXVo9W/1aHVo9W41oDVrtW41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUJhdHRlcnlTdGF0cyIgbXNnaWQ9IjM3MTk2ODk3NjQ1MzYzNzk1NTciPiLWg9W41oPVuNWt1aXVrCDVtNWh1oDVv9Wv1bjWgdWrINW+1avVs9Wh1a/VodWj1oDVuNaC1anVtdW41oLVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXBkYXRlQmF0dGVyeVN0YXRzIiBtc2dpZD0iNjg2MjgxNzg1NzE3ODAyNTAwMiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWg9W41oPVuNWt1aXVrCDVtNWh1oDVv9Wv1bjWgdWrINWw1aHVvtWh1oTVodWj1oDVvtWh1a4g1b7Vq9Wz1aHVr9Wh1aPWgNW41oLVqdW11bjWgtW21ag6INWN1bjVvtW41oDVodWv1aHVtiDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1oXVo9W/1aHVo9W41oDVrtW01aHVtiDVsNWh1bTVodaAINW51ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRBcHBPcHNTdGF0cyIgbXNnaWQ9IjE1MDg3Nzk2ODc0MzY1ODU3NDQiPiLVodW81aLVpdaA1aXVrCDVrtaA1aHVo9aA1asgb3BzINW+1avVs9Wh1a/VodWj1oDVuNaC1anVtdW41oLVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QXBwT3BzU3RhdHMiIG1zZ2lkPSI2MjQzODg3MDQxNTc3OTEyODc3Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWh1bzVotWl1oDVpdWsINWw1aHVvtWl1azVvtWh1a7Vq8Kg1bDVodW+1aHWhNWh1aPWgNW+1aHVriDVo9W41oDVrtW41bLVuNaC1anVtdWh1bYg1a/VodaA1aPVodW+1avVs9Wh1a/VqDog1Y3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVq8Kg1oXVo9W/1aHVo9W41oDVrtW01aHVtiDVsNWh1bTVodaAINW51ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91cGRhdGVBcHBPcHNTdGF0cyIgbXNnaWQ9Ijg4MjkwOTczNzM4NTE1MjE1MDUiPiLWg9W41oPVuNWt1aXVrCDVrtaA1aHVo9aA1asg1aPVuNaA1a7VuNWy1bjWgtWp1bXVuNaC1bbVttWl1oDVqyDVvtWr1bPVodWv1aHVo9aA1bjWgtWp1bXVuNaC1bbVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VwZGF0ZUFwcE9wc1N0YXRzIiBtc2dpZD0iNTA3ODQ1OTY1OTQ0MDM0ODMiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oPVuNaD1bjVrdWl1awg1aPVuNaA1a7VuNWy1bjWgtWp1bXVuNaC1bbVttWl1oDVqyDVsNWh1b7VodaE1aHVo9aA1b7VodWuINW+1avVs9Wh1a/VodWj1oDVuNaC1anVtdW41oLVttWoOiDVjdW41b7VuNaA1aHVr9Wh1bYg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINaF1aPVv9Wh1aPVuNaA1a7VtNWh1bYg1bDVodW01aHWgCDVudWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmFja3VwIiBtc2dpZD0iNDcwMDEzMDIyODY1NDUzOTIwIj4i1bDVvdWv1aXVrCDVsNWh1bTVodWv1aHWgNWj1asg1brVodWw1bjWgtW91b/VodW+1bjWgNW41oLVtNWoINaHINW+1aXWgNWh1a/VodW21aPVttW41oLVtNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmFja3VwIiBtc2dpZD0iNjkxMjIzMDUyNTE0MDU4OTg5MSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVvtWl1oDVodWw1b3Vr9Wl1awg1bDVodW01aHVr9Wh1oDVo9WrINW61aHVsNW41oLVvdW/1aHVvtW41oDVtNWh1bYg1ocg1b7VpdaA1aHVr9Wh1bbVo9W21bTVodW2INW01aXVrdWh1bbVq9Wm1bTVqDog1Y3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVr9W41bLVtNWr1oEg1oXVo9W/1aHVo9W41oDVrtW01aHVtiDVsNWh1bTVodaAINW51ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maXJtX2Z1bGxfYmFja3VwIiBtc2dpZD0iNTU1NzA3MTMyNTgwNDQ2OTEwMiI+ItWw1aHVvdW/1aHVv9Wl1awg1aHVtNWi1bjVstW71aHVr9Wh1bYg1brVodWw1bjWgtW91b/VodW+1bjWgNW01aHVtiDVr9Wh1bQg1b7VpdaA1aHVr9Wh1bbVo9W21bTVodW2INWj1bjWgNWu1bjVstW41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maXJtX2Z1bGxfYmFja3VwIiBtc2dpZD0iMTc0ODc2MjE3MTYzNzY5OTU2MiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVo9W41oDVrtWh1oDVr9Wl1awg1aHVtNWi1bjVstW71aHVr9Wh1bbCoNW61aHVsNW41oLVvdW/1aHVvtW41oDVtNWh1bYg1bDVodW91b/VodW/1bTVodW2wqBVSS3VqDog1YjWgNaH1acg1bDVodW+1aXVrNW+1aHVrtWrINWv1bjVstW01avWgSDWhdWj1b/VodWj1bjWgNWu1bTVodW2INWw1aHVtNWh1oAg1bnVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVybmFsU3lzdGVtV2luZG93IiBtc2dpZD0iMjE0ODU2MzYyODE0MDE5MzIzMSI+ItaB1bjWgtaB1aHVpNaA1aXVrCDVudWh1oDVv9W41bbVvtWh1a4g1brVodW/1bjWgtWw1aHVttW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJuYWxTeXN0ZW1XaW5kb3ciIG1zZ2lkPSI3NDU4Mzg3NzU5NDYxNDY2Mzk3Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW91b/VpdWy1a7VpdWsINW61aHVv9W41oLVsNWh1bbVttWl1oAsINW41oDVuNW21oQg1bbVodWt1aHVv9Wl1b3VvtWh1a4g1aXVtiDVttWl1oDWhNWr1bYg1bDVodW01aHVr9Wh1oDVo9WrINaF1aPVv9W+1bjVstWrINWr1bbVv9Wl1oDWhtWl1bXVvdWrINaF1aPVv9Wh1aPVuNaA1a7VtNWh1bYg1bDVodW01aHWgDog1Y3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDWhdWj1b/VodWj1bjWgNWu1bTVodW2INWw1aHVtNWh1oAg1bnVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N5c3RlbUFsZXJ0V2luZG93IiBtc2dpZD0iMzU0MzM0Nzk4MDgzOTUxODYxMyI+ItWh1bbWgdW21aXVrCDVodW11awg1a7WgNWh1aPWgNWl1oDVqyDVvtaA1aHVtdW41b4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zeXN0ZW1BbGVydFdpbmRvdyIgbXNnaWQ9Ijg1ODQ2NzgzODE5NzI4MjAxMTgiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1aXWgNaH1aHVrCDVodW11awg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINW+1aXWgNaH1bjWgtW0INWv1aHVtCDWhdWj1b/VvtW41bLVqyDVq9W21b/VpdaA1obVpdW11b3VqyDVtNWh1b3VpdaA1bjWgtW0OiDUtNaA1aHVttaEINWv1aHWgNW41bIg1aXVtiDVrdW41bnVqNW21aTVuNW/1aXVrCDVsdWl1oAg1avVttW/1aXWgNaG1aXVtdW91asg1oXVo9W/1aHVo9W41oDVrtW01aHVttWoINaB1aHVttWv1aHWgdWh1a4g1bDVodW+1aXVrNW+1aHVrtW41oLVtCDVr9Wh1bQg1oPVuNWt1aXVrCDVodW11bYsINWr1bbVudWoINWv1aHWgNWu1bjWgtW0INWl1oQsINW41oAg1b/VpdW91bbVuNaC1bQg1aXWhCDVodW11awg1bDVodW+1aXVrNW+1aHVrtW21aXWgNW41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldEFuaW1hdGlvblNjYWxlIiBtc2dpZD0iMjgwNTEwMzI0MTE1MzkwNzE3NCI+ItaD1bjWg9W41a3VpdWsINWw1aHVtNWh1bfVrdWh1oDVsNWh1bXVq9W2INWh1bbVq9W01aHWgdWr1bjVtiDVodaA1aHVo9W41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9Ijc2OTAwNjM0Mjg5MjQzNDM1NzEiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oPVuNWt1aXVrCDVsNWh1bTVodW31a3VodaA1bDVodW11avVtiDVodW21avVtNWh1oHVq9W41bYg1aHWgNWh1aPVuNaC1anVtdW41oLVttWoICjVodW+1aXVrNWrINWh1oDVodWjINWv1aHVtCDVpNWh1bbVpNWh1bIg1aHVttWr1bTVodaB1avVodW21aXWgCkg1oHVodW21a/VodaB1aHVriDVqtWh1bTVodW21aHVrzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFwcFRva2VucyIgbXNnaWQ9IjEyODY1MDU3MTcwNTAxMjEzNzAiPiLVr9Wh1bzVodW+1aHWgNWl1awg1a7WgNWh1aPWgNWrINWh1bXVrNWh1bbVq9W31aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQXBwVG9rZW5zIiBtc2dpZD0iODA0MzQzMTcxMzAxNDM5NTY3MSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVvdW/1aXVstWu1aXVrCDWhyDVr9Wh1bzVodW+1aHWgNWl1awg1avWgNWl1bbWgSDVvdWl1oPVodWv1aHVtiDVttW31aHVttW21aXWgNWoYCDVt9aA1bvVodW21oHVpdWs1bjVviDVq9aA1aXVttaBINW91bjVvtW41oDVodWv1aHVtiBaINWw1aXWgNWp1aHVr9Wh1bbVuNaC1anVtdW41oLVttWoOiDVjdW41b7VuNaA1aHVr9Wh1bYg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINWw1aHVtNWh1oAg1aXWgNWi1ofVpyDVudW61aXVv9aEINWnINWh1bbVsNaA1aHVqtWl1bfVvyDVrNWr1bbVqzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZyZWV6ZVNjcmVlbiIgbXNnaWQ9IjQ3MDgxODExODQ0NDE4ODAxNzUiPiLVvdWh1bzVpdaB1bbVpdWsINWn1a/WgNWh1bbVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZyZWV6ZVNjcmVlbiIgbXNnaWQ9Ijg1NTg5MjM3ODkyMjI2NzAwNjQiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1arVodW01aHVttWh1a/VodW+1bjWgNWh1brVpdW9INW91aHVvNWl1oHVttWl1awg1afVr9aA1aHVttWoYCDVrNaA1avVviDVp9Wv1oDVodW21avVtiDVodW21oHVttWl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbmplY3RFdmVudHMiIG1zZ2lkPSIxMzc4NzQ2NTg0MDIzNTg2NjAwIj4i1b3VpdWy1bTVpdWsINW91b/VpdWy1bbVpdaA1agg1ocg1a/VodW81aHVvtWh1oDVtNWh1bYg1a/VuNWz1aHVr9W21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5qZWN0RXZlbnRzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDYzNTI1NjU1OTk5Njg2MzIiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1b/WgNWh1bTVodWk1oDVpdWsINWr1oAg1b3VpdaD1aHVr9Wh1bYg1bTVuNaC1b/WhNWh1aPWgNW+1aHVriDVq9aA1aHVpNWh1oDVsdW41oLVqdW11bjWgtW21bbVpdaA1bYgKNW91b/VpdWy1bbVpdaA1asg1b3VpdWy1bTVuNaC1bTVttWl1oAg1ocg1aHVtdWs1bYpINWh1bXVrCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1avVtjog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INW91aEg1oXVo9W/1aHVo9W41oDVrtWl1awg1aPWgNWh1b3VodWs1avVr9WrINWh1bfVrdWh1b/VodW21oTVq9W2INW01avVu9Wh1bTVv9Wl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5qZWN0RXZlbnRzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjUzMTI4MDU3NTcyMzI2MjUzIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWh1bzVodaE1aXVrCDVq9aAINW91aXWg9Wh1a/VodW2INW21aXWgNWh1a7VtNWh1bYg1avWgNWh1aTVodaA1bHVuNaC1anVtdW41oLVttW21aXWgNWoICjVvdW/1aXVstW21asg1b3VpdWy1bTVuNaC1bTVttWl1oAg1ocg1aHVtdWs1bYpINWh1bXVrCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1avVtjog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INW91aEg1oXVo9W/1aHVo9W41oDVrtWl1awg1aPWgNWh1b3VodWs1avVr9WoINW+1bbVodW91aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRJbnB1dFN0YXRlIiBtc2dpZD0iNDY5NDI4OTAwMDQxMjQ5MjM0Ij4i1aPWgNWh1bzVpdWsINWx1aXWgCDVtNW41oLVv9aE1aHVo9aA1bjWgtW01bbVpdaA1agg1ocg1aPVuNaA1a7VuNWy1bjWgtWp1bXVuNaC1bbVttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRJbnB1dFN0YXRlIiBtc2dpZD0iODM4Nzc1NDkwMTY4ODcyODA0MyI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVv9Wl1b3VttWl1awg1bHVpdaAINW91aXVstW01aHVriDVvdW/1aXVstW21aXWgNWoLCDVttW41oLVtdW21avVvdWvINWh1bXVtiDVqtWh1bTVodW21aHVrywg1aXWgNWiINaD1bjVrdWj1bjWgNWu1aHVr9aB1bjWgtW0INWl1oQg1aHVtdWsINWw1aHVvtWl1azVvtWh1a7VqyDVsNWl1b8gKNaF1oDVq9W21aHVr2DCoNWj1aHVstW/1bbVodWi1aHVvNWrINW01bjWgtW/1oTVodWj1oDVuNaC1bTVqCk6INS11oDVotWl1oQg1aHVttWw1oDVodWq1aXVt9W/INW51brVpdW/1oQg1acg1azVq9W21asg1b3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZElucHV0TWV0aG9kIiBtc2dpZD0iMzM2MDA2NDYyMDIzMDUxNTc3NiI+ItW01avVodW21aHVrCDVtNW41oLVv9aE1aHVo9aA1bTVodW2INWl1bLVodW21aHVr9Wr1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kSW5wdXRNZXRob2QiIG1zZ2lkPSIzMjUwNDQwMzIyODA3Mjg2MzMxIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INW91aXWg9Wh1a/VodW21aHVv9Wr1oDVuNW71agg1bTVq9Wh1bbVodWsINW01bjWgtW/1oTVodWj1oDVtNWh1bYg1aXVstWh1bbVodWv1asg1b7VpdaA1avVtiDVtNWh1a/VodaA1aTVodWv1asg1avVttW/1aXWgNaG1aXVtdW91avVtjog1Y3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVsNWh1bTVodaAINWl1oDVotaH1acg1bnVutWl1b/WhCDVpyDVodW21bDWgNWh1arVpdW31b8g1azVq9W21as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kQWNjZXNzaWJpbGl0eVNlcnZpY2UiIG1zZ2lkPSI1MzU3NzMzOTQyNTU2MDMxNTkzIj4i1a/VodW61b7VpdWsINW01aHVv9W51aXVrNWr1bjWgtWp1bXVodW2INWu1aHVvNWh1bXVuNaC1anVtdWh1bYg1bDVpdW/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZEFjY2Vzc2liaWxpdHlTZXJ2aWNlIiBtc2dpZD0iNzAzNDYxNTkyODYwOTMzMTM2OCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVvdWl1oPVodWv1aHVttWh1b/Vq9aA1bjVu9WoINW01avVodW21aHVrCDVsNWh1b3VodW21aXVrNWr1bjWgtWp1bXVodW2INWu1aHVvNWh1bXVuNaC1anVtdWh1bYg1b7VpdaA1avVtiDVtNWh1a/VodaA1aTVodWv1asg1avVttW/1aXWgNaG1aXVtdW91avVtjog1Y3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVsNWh1bTVodaAINWl1oDVotaH1acg1bnVutWl1b/WhCDVpyDVodW21bDWgNWh1arVpdW31b8g1azVq9W21as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kUHJpbnRTZXJ2aWNlIiBtc2dpZD0iODQ2MjgxNTE3OTU3Mjc0ODc2MSI+ItW01avVodW21aHVrCDVv9W61bTVodW2INWu1aHVvNWh1bXVuNaC1anVtdWh1bbVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQcmludFNlcnZpY2UiIG1zZ2lkPSI3OTYwMDY3NjIzMjA5MTExMTM1Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INW91aXWg9Wh1a/VodW21aHVv9Wr1oDVuNW71agg1bTVq9Wh1bbVodWsINW/1brVtNWh1bYg1a7VodW81aHVtdW41oLVqdW11aHVtiDVvtWl1oDVq9W2INW01aHVr9Wh1oDVpNWh1a/VqyDVq9W21b/VpdaA1obVpdW11b3Vq9W2OiDVjdW41b7VuNaA1aHVr9Wh1bYg1a7WgNWh1aPWgNWl1oDVqyDVsNWh1bTVodaAINWl1oDVotaH1acg1bnVutWl1b/WhCDVpyDVodW21bDWgNWh1arVpdW31b8g1azVq9W21as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NBbGxQcmludEpvYnMiIG1zZ2lkPSIxMTIwNzkyNDY4NDY1NzExMTU5Ij4i1bTVuNaC1b/WhNWrINWj1bjWgNWu1aXVrCDVotW41azVuNaAINW/1brVtNWh1bYg1aHVt9Wt1aHVv9Wh1bbWhNW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0FsbFByaW50Sm9icyIgbXNnaWQ9IjI5NzgxODUzMTEwNDE4NjQ3NjIiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1b3VpdaD1aHVr9Wh1bbVodW/1avWgNW41bvVqCDVtNW41oLVv9aEINW41oLVttWl1bbVodWsINW01aXVryDVodW11awg1a7WgNWh1aPWgNWrINWv1bjVstW01avWgSDVvdW/1aXVstWu1b7VodWuINW/1brVtNWh1bYg1aHVt9Wt1aHVv9Wh1bbWhNW21aXWgDog1Y3VuNW+1bjWgNWh1a/VodW2INWu1oDVodWj1oDVpdaA1asg1bDVodW01aHWgCDVpdaA1aLWh9WnINW51brVpdW/1oQg1acg1aHVttWw1oDVodWq1aXVt9W/INWs1avVttWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSIyNzUyNzMxMzAwNDE5NDEwNzI0Ij4i1a/VodW61b7VpdWsIE5GQyDVrtWh1bzVodW11bjWgtWp1bXVodW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kTmZjU2VydmljZSIgbXNnaWQ9IjYxMjA2NDc2MjkxNzQwNjY4NjIiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1b/Vq9aA1bjVu9WoINWv1aHVutW+1aXVrCDVrtaA1aHVo9aA1aXWgNWr1bYsINW41oDVuNW21oQg1oXVo9W/1aHVo9W41oDVrtW41oLVtCDVpdW2IE5GQyDWhNWh1oDVv9Wl1oA6INWN1bjVvtW41oDVodWv1aHVtiDVrtaA1aHVo9aA1aXWgNWrINWw1aHVtNWh1oAg1aXWgNWi1aXWhCDVodW21bDWgNWh1arVpdW31b8g1bnVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRUZXh0U2VydmljZSIgbXNnaWQ9IjczNTgzNzg0MDE5MTUyODc5MzgiPiLVtNWr1aHVttWh1awg1b/VpdaE1b3Vv9Wh1bXVq9W2INWu1aHVvNWh1bXVuNaC1anVtdWh1bbVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRUZXh0U2VydmljZSIgbXNnaWQ9IjgxNTE5Njg5MTA5NzM5OTg2NzAiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1b3VpdaD1aHVr9Wh1bbVodW/1avWgNW41bvVqCDVr9Wh1brVvtWl1awg1b/VpdaE1b3Vv9Wh1bXVq9W2INWu1aHVvNWh1bXVuNaC1anVtdWh1bYg1aLVodaA1bHWgCDVtNWh1a/VodaA1aTVodWv1asg1avVttW/1aXWgNaG1aXVtdW91avVtiAo1oXWgNWr1bbVodWvYCDViNaC1bLVstWh1aPWgNW41oLVqdW11aHVtiDVvdW/1bjWgtWj1bTVodW2INWu1aHVvNWh1bXVuNaC1anVtdWh1bbVqCk6INWN1bjVvtW41oDVodWv1aHVtiDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1bDVodW01aHWgCDVpdaA1aLWh9WnINW51brVpdW/1oQg1acg1aHVttWw1oDVodWq1aXVt9W/INWs1avVttWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSI0NzA4NTk2MDIxMTYxNDczMjU1Ij4i1a/VodW61b7VpdWsIFZQTiDVrtWh1bzVodW11bjWgtWp1bXVodW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVnBuU2VydmljZSIgbXNnaWQ9IjIwNjc4NDU1NjQ1ODE2OTM5MDUiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1b3VpdaD1aHVr9Wh1bbVodW/1avWgNW41bvVqCDVtNWr1aHVttWh1awgVnBuINWu1aHVvNWh1bXVuNaC1anVtdWh1bYg1b7VpdaA1avVtiDVtNWh1a/VodaA1aTVodWv1asg1avVttW/1aXWgNaG1aXVtdW91avVtjog1Y3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVsNWh1bTVodaAINWl1oDVotaH1acg1bnVutWl1b/WhCDVpyDVodW21bDWgNWh1arVpdW31b8g1azVq9W21as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kV2FsbHBhcGVyIiBtc2dpZD0iODcxNjQwMDI3OTkzNzg1NjQ2MiI+ItW01avVodW21aHVrCDVutWh1b3Vv9Wh1bzVq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFdhbGxwYXBlciIgbXNnaWQ9IjcxMDg0Mjg2OTI1OTU0OTE2NjgiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1b3VpdaD1aHVr9Wh1bbVodW/1avWgNW41bvVqCDVtNWr1aHVttWh1azCoNW61aHVvdW/1aHVvNWrINW+1aXWgNWr1bYg1bTVodWv1aHWgNWk1aHVr9WrINWr1bbVv9Wl1oDWhtWl1bXVvdWr1bY6wqDVjdW41b7VuNaA1aHVr9Wh1bYg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINWw1aHVtNWh1oAg1aXWgNWi1ofVp8Kg1bnVutWl1b/WhCDVpyDVodW21bDWgNWh1arVpdW31b8g1azVq9W21as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kUmVtb3RlVmlld3MiIG1zZ2lkPSI1Njk3OTg3NzU5ODk3MzY3MDk5Ij4i1bTVq9Wh1bbVodWsINW+1avVu9Wl1akg1a7VodW81aHVtdW41oLVqdW11aHVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFJlbW90ZVZpZXdzIiBtc2dpZD0iNDcxNzk4NzgxMDEzNzY5MjU3MiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVvdWl1oPVodWv1aHVttWh1b/Vq9aA1bjVu9WoINW01avVodW21aHVrCDVvtWr1bvVpdWpINWu1aHVvNWh1bXVuNaC1anVtdWh1bYg1b7VpdaA1avVtiDVtNWh1a/VodaA1aTVodWv1asg1avVttW/1aXWgNaG1aXVtdW91avVtjog1Y3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVsNWh1bTVodaAINWl1oDVotaH1acg1bnVutWl1b/WhCDVpyDVodW21bDWgNWh1arVpdW31b8g1azVq9W21as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kRGV2aWNlQWRtaW4iIG1zZ2lkPSI4NzA0OTg2MTYzNzExNDU1MDEwIj4i1oPVuNWt1aPVuNaA1a7VodWv1oHVpdWsINW91aHWgNaE1asg1a/VodW81aHVvtWh1oDVudWrINWw1aXVvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9IjU2OTcxNTQxOTU0MzkwNzkzMCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVvdWl1oPVodWv1aHVttWh1b/Vq9aA1bjVu9WoINW41oLVstWh1oDVr9Wl1awg1bTVv9Wh1aTWgNW41oLVqdW11bjWgtW21bbVpdaAINW91aHWgNaE1asg1a/VodW81aHVvtWh1oDVudWr1bY6INWN1bjVvtW41oDVodWv1aHVtiDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1bDVodW01aHWgCDVpdaA1aLWh9WnINW51brVpdW/1oQg1acg1aHVttWw1oDVodWq1aXVt9W/INWs1avVttWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNDI0ODgyODkwMDA0NTgwODcyMiI+ItWh1b7VpdWs1aHWgdW21aXVrCDVr9Wh1bQg1bDVpdW81aHWgdW21aXVrCDVvdWh1oDWhNWrINWh1oDVpNW01avVttWr1b3Vv9aA1aHVv9W41oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VEZXZpY2VBZG1pbnMiIG1zZ2lkPSI1MDI1NjA4MTY3NzA5OTQyNDg1Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INW91aXWg9Wh1a/VodW21aHVv9Wr1oDVuNW71agg1aHVvtWl1azVodaB1bbVpdWsINWv1aHVtCDVsNWl1bzVodaB1bbVpdWsINW91aHWgNaE1asg1aHVr9W/1avVviDVodWk1bTVq9W21avVvdW/1oDVodW/1bjWgNW21aXWgDog1LXWgNWi1aXWhCDVudW61aXVv9aEINWnINWh1bbVsNaA1aHVqtWl1bfVvyDVrNWr1bbVqyDVvdW41b7VuNaA1aHVr9Wh1bYg1a7WgNWh1aPWgNWl1oDVq9W2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0T3JpZW50YXRpb24iIG1zZ2lkPSIzMzY1OTQ3NzE3MTYzODY2ODQ0Ij4i1oPVuNWt1aXVrCDVp9Wv1oDVodW21asg1aTVq9aA1oTVodW+1bjWgNW41oLVtNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0T3JpZW50YXRpb24iIG1zZ2lkPSIzMDQ2MTI2NjE5MzE2NjcxNDc2Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaD1bjVrdWl1awg1afVr9aA1aHVttWrINW61b/Vv9W41oLVtNWoINaB1aHVttWv1aHWgdWh1a4g1arVodW01aHVttWh1a86INWN1bjVvtW41oDVodWv1aHVtiDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1bDVodW01aHWgCDVpdaA1aLWh9WnINW51brVpdW/1oQg1acg1aHVttWw1oDVodWq1aXVt9W/INWs1avVttWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0UG9pbnRlclNwZWVkIiBtc2dpZD0iOTE3NTM3MTYxMzMyMjU2MjkzNCI+ItaD1bjVrdWl1awg1oHVuNaC1oHVudWrINWh1oDVodWj1bjWgtWp1bXVuNaC1bbVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFBvaW50ZXJTcGVlZCIgbXNnaWQ9IjY4NjY1NjMyMzQyNzQxMDQyMzMiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oPVuNWt1aXVrCDVtNWv1bbVq9Wv1asg1a/VodW0INWw1brVodWw1aHWgNWp1aHVr9WrINW91azVodaE1asg1aHWgNWh1aPVuNaC1anVtdW41oLVttWoINaB1aHVttWv1aHWgdWh1a4g1arVodW01aHVttWh1a86INS11oDVotaH1acg1aHVttWw1oDVodWq1aXVt9W/INW51brVpdW/1oQg1acg1azVq9W21asg1b3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0S2V5Ym9hcmRMYXlvdXQiIG1zZ2lkPSI0Nzc4NzMxNzAzNjAwOTA5MzQwIj4i1oPVuNWt1aXVrCDVvdW/1aXVstW21aHVt9Wh1oDVqyDVpNWr1oDWhNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0S2V5Ym9hcmRMYXlvdXQiIG1zZ2lkPSI4NDgwMDE2NzcxMTM0MTc1ODc5Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaD1bjVrdWl1awg1b3Vv9Wl1bLVttWh1bfVodaA1asg1aTVq9aA1oTVqDog1Y3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVsNWh1bTVodaAINWl1oDVotaH1acg1bnVutWl1b/WhCDVpyDVodW21bDWgNWh1arVpdW31b8g1azVq9W21as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zaWduYWxQZXJzaXN0ZW50UHJvY2Vzc2VzIiBtc2dpZD0iNDUzOTAwMjk5MTk0NzM3NjY1OSI+ItW41oLVstWh1oDVr9Wl1awgTGludXgg1aHVptWk1aHVttW31aHVttW21aXWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0ODk2OTkyMDc5MTgyNjQ5MTQxIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWw1aHVtdaB1aXVrCwg1bjWgCDVv9aA1aHVtNWh1aTWgNW+1aHVriDVodWm1aTVodW21bfVodW21agg1bjWgtWy1aHWgNWv1b7VqyDVotW41azVuNaAINW01bfVv9Wh1a/VodW2INWj1bjWgNWu1ajVttWp1aHWgdW21aXWgNWr1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJzaXN0ZW50QWN0aXZpdHkiIG1zZ2lkPSI4ODQxMTEzNjI3OTU1NTYzOTM4Ij4i1bTVq9W31b8g1aHVt9Wt1aHVv9Wl1oHVttWl1awg1bDVodW+1aXVrNW+1aHVrtWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyc2lzdGVudEFjdGl2aXR5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTI1MTg5MjcyMzI5MDg2MTM3Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW01bbVodW11bjWgtW2INWk1aHWgNWx1bbVpdWsINWr1oAg1bTVodW91aXWgNWoINWw1avVt9W41bLVuNaC1anVtdWh1bYg1bTVpdW7OiDVjdWhINWv1aHWgNW41bIg1acg1b3VodWw1bTVodW21aHWg9Wh1a/VpdWsINWh1bXVrCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1avVtiDVsNWh1b3VodW21aXVrNWrINWw1avVt9W41bLVuNaC1anVtdW41oLVttWoYCDVpNWh1bbVpNWh1bLVpdaB1bbVpdWs1bjVviDVo9aA1aHVvdWh1azVq9Wv1asg1aHVt9Wt1aHVv9Wh1bbWhNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcnNpc3RlbnRBY3Rpdml0eSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQzODQ3NjAwNDc1MDgyNzgyNzIiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1bTVttWh1bXVuNaC1bYg1aTVodaA1bHVttWl1awg1avWgCDVtNWh1b3VpdaA1agg1bDVq9W31bjVstW41oLVqdW11aHVtiDVtNWl1bs6INWN1aEg1a/VodaA1bjVsiDVpyDVvdWh1bDVtNWh1bbVodaD1aHVr9Wl1awg1aHVtdWsINWw1aHVvtWl1azVvtWh1a7VttWl1oDVq9W2INWw1aHVvdWh1bbVpdWs1asg1bDVq9W31bjVstW41oLVqdW11bjWgtW21ahgINWk1aHVttWk1aHVstWl1oHVttWl1azVuNW+INWw1aXVvNWh1a3VuNW91asg1aHVt9Wt1aHVv9Wh1bbWhNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSIxODQzODUxMjk1Mzc3MDU5MzgiPiLVu9W21bvVpdWsINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RlbGV0ZVBhY2thZ2VzIiBtc2dpZD0iNzQxMTQ4MDI3NTE2NzIwNTA4MSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVu9W21bvVpdWsIEFuZHJvaWQg1oPVodWp1aXVqdW21aXWgNWoOiDVjtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bYg1oXVo9W/1aHVo9W41oDVrtWl1awg1b3VoWAg1a/VodaA1ofVuNaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVu9W21bvVpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2xlYXJBcHBVc2VyRGF0YSIgbXNnaWQ9IjI3NDEwOTE5MTg0NTg0Mjc1NiI+ItW71bbVu9Wl1awg1aHVtdWsINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVv9W+1bXVodWs1bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcFVzZXJEYXRhIiBtc2dpZD0iNDYyNTMyMzY4NDEyNTQ1OTQ4OCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVtNWh1oTWgNWl1awg1oXVo9W/1b7VuNWy1asg1b/VvtW11aHVrNW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlQ2FjaGVGaWxlcyIgbXNnaWQ9IjMxMjg2NjU1NzE4Mzc0MDg2NzUiPiLVu9W21bvVpdWsINWh1bXVrCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1oTVpdW31aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGVsZXRlQ2FjaGVGaWxlcyIgbXNnaWQ9IjM4MTI5OTg1OTkwMDY3MzAxOTYiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1bvVttW71aXVrCDWhNWl1bcg1obVodW11azVpdaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9Ijc0NzI5MjE3NjgzNTc5ODE5ODYiPiLVudWh1oPVpdWsINWw1aHVvtWl1azVvtWh1a7VqyDVutWh1bDVuNaB1asg1b/VodaA1aHVrtaE1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9IjM5MjEwNjgxNTQ0MjA3MzgyOTYiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1aHVvNWi1aXWgNWl1awg1avWgCDVr9W41aTVqCwg1b/VvtW11aHVrNW21aXWgNWoINaHINaE1aXVt9WrINW51aHWg9Wl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iMjE5OTEyODQ4MjgyMDMwNjkyNCI+ItW41oLVstWy1aHVr9Wr1bjWgNWl1bYg1b/VpdWy1aHVpNaA1aXVrCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnN0YWxsUGFja2FnZXMiIG1zZ2lkPSI1NjI4NTMwOTcyNTQ4MDcxMjg0Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW/1aXVstWh1aTWgNWl1awg1bbVuNaAINWv1aHVtCDVqdWh1oDVtNWh1oHVvtWh1a4gQW5kcm9pZCDWg9Wh1anVpdWp1bbVpdaAOiDVjtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bYg1oXVo9W/1aHVo9W41oDVrtWl1awg1b3VoWAg1aHVvtWl1azVodaB1bbVpdWs1bjWgiDVttW41oAg1bDVodW+1aXVrNW+1aHVrtW21aXWgGAg1a/VodW01aHVtdWh1a/VodW21bjWgNWl1bYg1bDVptW41oAg1anVuNaC1bXVrNW/1b7VuNaC1anVtdW41oLVttW21aXWgNW41b46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jbGVhckFwcENhY2hlIiBtc2dpZD0iNzQ4NzI3OTM5MTcyMzUyNjgxNSI+ItW71bbVu9Wl1awg1bDVodW+1aXVrNW+1aHVrtWrINaE1aXVt9WrINWi1bjVrNW41oAg1b/VvtW11aHVrNW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBDYWNoZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODk3NDY0MDg3MTk0NTQzNDU2NSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVodWm1aHVv9Wl1awg1aPWgNWh1b3VodWs1avVr9WrINW61aHVsNW41oHVqGAg1bvVttW71aXVrNW41b4g1obVodW11azVpdaA1agg1aHVtdWsINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDWhNWl1bcg1aPWgNWh1oHVuNaC1oHVodWv1bbVpdaA1bjWgtW0OiDVjdWhINWv1aHWgNW41bIg1acg1brVodW/1bPVodW8INWk1aHVvNW21aHVrCwg1bjWgCDVodW11awg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoINWh1b7VpdWs1asg1aTVodW21aTVodWyINW01aXVr9W21aHWgNWv1aXVtiwg1oTVodW21asg1bjWgCDVpNaA1aHVttaEINW61aXVv9aEINWnINW21bjWgNWr1oEg1aHVvNWi1aXWgNWl1bYg1avWgNWl1bbWgSDVv9W+1bXVodWs1bbVpdaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBDYWNoZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI0NTk0NDEwMjE5NTY0MzY3NzkiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1aHVptWh1b/VpdWsINWw1aXVvNWh1a3VuNW91asg1brVodWw1bjWgtW91b/VqGAg1bvVttW71aXVrNW41b4g1obVodW11azVpdaA1agg1aHVtdWsINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDWhNWl1bcg1aPWgNWh1oHVuNaC1oHVodWv1bbVpdaA1bjWgtW0OiDVjdWhINWv1aHWgNW41bIg1acg1brVodW/1bPVodW8INWk1aHVvNW21aHVrCwg1bjWgCDVodW11awg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoINWh1b7VpdWs1asg1aTVodW21aTVodWyINW01aXVr9W21aHWgNWv1aXVtiwg1oTVodW21asg1bjWgCDVttaA1aHVttaEINW61aXVv9aEINWnINW21bjWgNWr1oEg1aHVvNWi1aXWgNWl1bYg1avWgNWl1bbWgSDVv9W+1bXVodWs1bbVpdaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3ZlUGFja2FnZSIgbXNnaWQ9IjMyODk4OTAyNzE2NDU5MjE0MTEiPiLVj9Wl1bLVodaD1bjVrdWl1awg1bDVodW+1aXVrNW+1aHVrtWrINW81aXVvdW41oLWgNW91bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3ZlUGFja2FnZSIgbXNnaWQ9IjMxOTU2MjIxNzc3ODI0NDUyNCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVv9Wl1bLVodaD1bjVrdWl1awg1a7WgNWh1aPWgNWh1bXVq9W2INW81aXVvdW41oLWgNW91bbVpdaA1agg1bbVpdaA1oTVq9W2INW01aXVpNWr1aHVttWl1oDVq9aBINWh1oDVv9Wh1oTVq9W21avVtiDWhyDVsNWh1a/VodW81aHVr9WoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZExvZ3MiIG1zZ2lkPSI2NjE1Nzc4NTQzMTk4OTY3NjE0Ij4i1a/VodaA1aTVodWsINWw1bjVvdaE1asg1abVo9Wh1bXVuNaC1bYg1b/VvtW11aHVrNW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZExvZ3MiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgyMDYxMzEzMjkzNDU1MTUxIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHWgNWk1aHVrCDVsNWh1bTVodWv1aHWgNWj1asg1b/VodaA1aLVpdaAINWj1oDVodW21oHVodW01aHVv9W11aHVttWh1bXVq9W2INaG1aHVtdWs1aXWgNWr1oE6INWN1aEg1anVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INW91b/VodW21aHVrCDVqNW21aTVsNWh1bbVuNaC1oAg1b/VpdWy1aXVr9W41oLVqdW11bjWgtW21bbVpdaAINWh1bXVtiDVtNWh1b3Vq9W2LCDVqdWlINWr1bbVuSDVpdaEINWh1bbVuNaC1bQg1aPWgNWh1b3VodWs1avVr9W41b4sINWh1bXVpCDVqdW+1bjWgtW0YCDVodW21bHVttWh1a/VodW2INWv1aHVtCDVo9Wh1bLVv9W21asg1b/VpdWy1aXVr9W41oLVqdW11bjWgtW21bbVpdaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjA2MzQzODE0MDI0MTU2MDQ0MyI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVr9Wh1oDVpNWh1awg1bDVodW01aHVr9Wh1oDVo9WrINW/1aHWgNWi1aXWgCDVo9aA1aHVttaB1aHVtNWh1b/VtdWh1bbVodW11avVtiDWhtWh1bXVrNWl1oDVq9aBOiDVjdWhINWp1bjWgtW11awg1acg1b/VodWs1avVvSDVvdW/1aHVttWh1awg1ajVttWk1bDVodW21bjWgtaAINW/1aXVstWl1a/VuNaC1anVtdW41oLVttW21aXWgCDVodW11bYg1bTVodW91avVtiwg1anVpSDVq9W21bkg1aXWhCDVodW21bjWgtW0INWw1aXVvNWh1a3VuNW91bjVviwg1aHVtdWkINWp1b7VuNaC1bRgINWh1bbVsdW21aHVr9Wh1bYg1a/VodW0INWj1aHVstW/1bbVqyDVv9Wl1bLVpdWv1bjWgtWp1bXVuNaC1bbVttWl1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hbnlDb2RlY0ZvclBsYXliYWNrIiBtc2dpZD0iNzE1ODA1NTU1ODIzODgxODE4Ij4i1oXVo9W/1aHVo9W41oDVrtWl1awg1oHVodW21a/VodaB1aHVriDVtNWl1aTVq9WhINW+1aXWgNWu1aHVttWr1bkg1bbVvtWh1aPVodaA1a/VtNWh1bYg1bDVodW01aHWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI4MjgzOTEyNDg4NDMzMTg5MDEwIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaF1aPVv9Wh1aPVuNaA1a7VpdWsINaB1aHVttWv1aHWgdWh1a4g1b/VpdWy1aHVpNaA1b7VodWuINW01aXVpNWr1aEg1b7VpdaA1a7VodW21avVuWAg1bbVvtWh1aPVodaA1a/VuNaC1bTVqCDVodW61aHVr9W41aTVodW+1bjWgNWl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VDYUNlcnRpZmljYXRlcyIgbXNnaWQ9IjE2NzgzOTE4OTY3ODY4ODIwMTQiPiLVr9Wh1bzVodW+1aHWgNWl1oQg1b7VvdW/1aHVsNWl1azVqyDVvtWv1aHVtdWh1aPWgNWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUNhQ2VydGlmaWNhdGVzIiBtc2dpZD0iNDAxNTY0NDA0NzE5NjkzNzAxNCI+ItS51bjWgtW11azVodW/1oDVuNaC1bQg1acg1bDVodW+1aXVrNW+1aHVrtWr1bYg1b/VpdWy1aHVpNaA1aXVrCDWhyDVodW61aHVv9Wl1bLVodWk1oDVpdWsIENBINW+1a/VodW11aHVo9aA1aXWgNWo1Z0g1bjWgNW61aXVvSDVvtW91b/VodWw1aXVrNWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGlhZ25vc3RpYyIgbXNnaWQ9IjgwNzY3NDM5NTM5MDgwMDAzNDIiPiLVr9Wh1oDVpNWh1awg1a/VodW0INWj1oDVpdWswqDVodWt1b/VuNaA1bjVt9Wr1bnVq9W2INW61aHVv9Wv1aHVttW41bIg1bzVpdW91bjWgtaA1b3VttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RpYWdub3N0aWMiIG1zZ2lkPSI2NjA4Mjk1NjkyMDAyNDUyMjgzIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHWgNWk1aHVrCDWhyDVo9aA1aXVrCDVodWt1b/VuNaA1bjVt9Wr1bkg1a3VtNWi1avVtiDVutWh1b/Vr9Wh1bbVuNWyINaB1aHVttWv1aHWgdWh1a4g1bzVpdW91bjWgtaA1b3VuNaC1bQsINWr1bbVudW61aXVvSDWhdaA1avVttWh1a8g1obVodW11azVpdaA1aggL2Rldi3VuNaC1bQ6INS01aEg1a/VodaA1bjVsiDVpyDVodWm1aTVpdWsINWw1aHVtNWh1a/VodaA1aPVqyDVr9Wh1bXVuNaC1bbVuNaC1anVtdWh1bYg1ocg1aHVttW+1b/VodW21aPVuNaC1anVtdWh1bYg1b7WgNWhOiDVjdWhINW61aXVv9aEINWnINaF1aPVv9Wh1aPVuNaA1a7VpdWsINW01avVodW11bYg1aHWgNW/1aHVpNaA1bjVstWrINWv1aHVtCDWhdW61aXWgNWh1b/VuNaA1asg1a/VuNWy1bTVq9aBINW91aHWgNaE1avVtiDVsNWh1b/VuNaC1a8g1aHVrdW/1bjWgNW41bfVtNWh1bYg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZUNvbXBvbmVudFN0YXRlIiBtc2dpZD0iNjMzNTU3Njc3NTcxMTA5NTkzMSI+ItW01avVodaB1bbVpdWsINWv1aHVtCDVodW21bvVodW/1aXVrCDVsNWh1b7VpdWs1b7VodWu1asg1aLVodWy1aHVpNaA1avVudW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg4ODc0MzU3NDA5ODIyMzcyOTQiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oPVuNWt1aXVrCwg1aHWgNWk1bXVuNaEINWh1bXVrCDVsNWh1b7VpdWs1b7VodWu1asg1aLVodWy1aHVpNaA1avVudWoINWs1avVttWrINW01avVodaB1b7VodWuINWp1aUg1aHVttW71aHVv9W+1aHVrjog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INW91aEg1oXVo9W/1aHVo9W41oDVrtWl1axgINWh1bbVu9Wh1b/VpdWs1bjWgiDVo9aA1aHVvdWh1azVq9Wv1asg1a/VodaA1ofVuNaAINWw1bbVodaA1aHVvtW41oDVuNaC1anVtdW41oLVttW21aXWgNWoOiDUsdW11b0g1anVuNaC1bXVrNW/1b7VuNaC1anVtdW41oLVttWoINW61aXVv9aEINWnINaF1aPVv9Wh1aPVuNaA1a7VpdWsINWm1aPVuNaC1bfVuNaC1anVtdWh1bTVoiwg1oTVodW21asg1bjWgCDVsNW21aHWgNWh1b7VuNaAINWnINWw1aHVvtWl1azVvtWh1a7VqyDVotWh1bLVodWk1oDVq9W51bbVpdaA1agg1bDVodW11b/VttW+1aXVtiDVodW21brVq9W/1aHVtiwg1aHVttWw1aHVtNWh1brVodW/1aHVvdWt1aHVtiDVr9Wh1bQg1aHVttWv1aHVtdW41oLVtiDVr9Wh1oDVo9Wh1b7Vq9Wz1aHVr9W41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE4MjcyMzI0ODQ0MTY1MDU2MTUiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oPVuNWt1aXVrCwg1aHWgNWk1bXVuNaEINWh1bXVrCDVsNWh1b7VpdWs1b7VodWu1asg1aLVodWy1aHVpNaA1avVudWoINWs1avVttWrINW01avVodaB1b7VodWuINWp1aUg1aHVttW71aHVv9W+1aHVrjog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INW91aEg1oXVo9W/1aHVo9W41oDVrtWl1axgINWh1bbVu9Wh1b/VpdWs1bjWgiDVsNWl1bzVodWt1bjVvdWrINWv1aHWgNaH1bjWgCDVsNW21aHWgNWh1b7VuNaA1bjWgtWp1bXVuNaC1bbVttWl1oDVqDog1LHVtdW9INWp1bjWgtW11azVv9W+1bjWgtWp1bXVuNaC1bbVqCDVutWl1b/WhCDVpyDWhdWj1b/VodWj1bjWgNWu1aXVrCDVptWj1bjWgtW31bjWgtWp1bXVodW01aIsINaE1aHVttWrINW41oAg1bDVttWh1oDVodW+1bjWgCDVpyDVsNWh1b7VpdWs1b7VodWu1asg1aLVodWy1aHVpNaA1avVudW21aXWgNWoINWw1aHVtdW/1bbVvtWl1bYg1aHVttW61avVv9Wh1bYsINWh1bbVsNWh1bTVodW61aHVv9Wh1b3VrdWh1bYg1a/VodW0INWh1bbVr9Wh1bXVuNaC1bYg1a/VodaA1aPVodW+1avVs9Wh1a/VuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ncmFudFJldm9rZVBlcm1pc3Npb25zIiBtc2dpZD0iNDYyNzMxNTM1MTA5MzUwODc5NSI+ItW31bbVuNaA1bDVpdWsINWv1aHVtCDVudWl1bLVodaA1a/VpdWsINWp1bjWgtW11azVv9W+1bjWgtWp1bXVuNaC1bbVttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ncmFudFJldm9rZVBlcm1pc3Npb25zIiBtc2dpZD0iNDA4ODY0MjY1NDA4NTg1MDY2MiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVsNWh1b/VuNaC1a8g1anVuNaC1bXVrNW/1b7VuNaC1anVtdW41oLVtiDVt9W21bjWgNWw1aXVrCDVr9Wh1bQg1bnVpdWy1aHWgNWv1aXVrCDVodW11aQg1a/VodW0INWh1bXVrCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1bDVodW01aHWgDog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INaF1aPVv9Wh1aPVuNaA1a7VpdWsINW91aFgINW01bjWgtW/1oQg1aPVuNaA1a7VpdWs1bjWgiDVsdWl1oAg1a/VuNWy1bTVq9aBINW51anVuNaC1bXVrNWh1b/WgNW+1aHVriDVo9W41oDVrtWr1oTVttWl1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcmVmZXJyZWRBcHBsaWNhdGlvbnMiIG1zZ2lkPSI4NDYzMTgxNjI4Njk1Mzk2MzkxIj4i1b3VodWw1bTVodW21aXVrCDVttWh1a3VqNW21b/WgNWh1a4g1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJlZmVycmVkQXBwbGljYXRpb25zIiBtc2dpZD0iNDk3Mzk4Njc2MjI0MTc4MzcxMiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWg9W41oPVuNWt1aXVrCDVsdWl1oAg1bbVodWt1ajVttW/1oDVodWuINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqDog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INWh1bbVttWv1aHVvyDWg9W41a3VpdWsINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCwg1bjWgNW41bbWhCDVr9Wl1bLVrtW41oLVtCDVpdW2INWx1aXWgCDVodW81a/VoSDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1aHVt9Wt1aHVv9Wh1bbWhNWoYCDVsdWl1abVodW21avWgSDVodW21bHVttWh1a/VodW2INW/1b7VtdWh1azVttWl1oAg1bDVodW+1aHWhNWh1aPWgNWl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNldHRpbmdzIiBtc2dpZD0iMjIyNjE5NTI5MDk1NTIyNDczMCI+ItaD1bjWg9W41a3VpdWsINWw1aHVtNWh1a/VodaA1aPVqyDVr9Wh1oDVo9Wh1b7VuNaA1bjWgtW01bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNldHRpbmdzIiBtc2dpZD0iNzc3NTcyMzQ0MTU1ODkwNzE4MSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWg9W41oPVuNWt1aXVrCDVsNWh1bTVodWv1aHWgNWj1asg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgNWrINW/1b7VtdWh1azVttWl1oDVqDog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INW+1bbVodW91aXVrCDVsdWl1oAg1bDVodW01aHVr9Wh1oDVo9WrINWv1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oDVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSIyMDQ2NzYyNTE4NzY3MTgyODgiPiLWg9W41oPVuNWt1aXVrCDVodW21b7Vv9Wh1bbVoyDVsNWh1bTVodWv1aHWgNWj1asg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTZWN1cmVTZXR0aW5ncyIgbXNnaWQ9IjgxNTk1MzU2MTMwMjAxMzczOTEiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oPVuNaD1bjVrdWl1awg1bDVodW01aHVr9Wh1oDVo9WrINWh1bbVvtW/1aHVttWjINWv1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oDVqyDVv9W+1bXVodWs1bbVpdaA1ag6INWG1aHVrdWh1b/VpdW91b7VodWuINW51acg1b3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVr9W41bLVtNWr1oEg1oXVo9W/1aHVo9W41oDVrtW01aHVtiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIyMTQ5NDI2NjY0MjI2MTUyMTg1Ij4i1oPVuNaD1bjVrdWl1awgR29vZ2xlINWu1aHVvNWh1bXVuNaC1anVtdW41oLVttW21aXWgNWrINaE1aHWgNW/1aXVptWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIxMjg3MzA5NDM3NjM4MzgwMjI5Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaD1bjWg9W41a3VpdWsIEdvb2dsZS3VqyDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bbVttWl1oDVqyDWhNWh1oDVv9Wl1abVqDog1Y3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDWhdWj1b/VodWj1bjWgNWu1bTVodW2INWw1aHVtNWh1oAg1bnVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVCb290Q29tcGxldGVkIiBtc2dpZD0iNTMxMjk2NTU2NTk4NzgwMDAyNSI+ItWh1bfVrdWh1b/VpdWsINW01aXVr9W21aHWgNWv1aHVtdWr1bYg1bzVpdWq1avVtNW41b4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlQm9vdENvbXBsZXRlZCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzM5MDMwNDY2NDExNjg4MDcwNCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVq9W21oTVttW41oLWgNW41oLVtdW2INW01aXVr9W21aHWgNWv1aXVrCDVsNWh1bTVodWv1aHWgNWj1asg1aLVpdW81bbVtNWh1bYg1aHVvtWh1oDVv9Wr1oEg1bDVpdW/1bg6INWN1aEg1a/VodaA1bjVsiDVpyDVpdaA1a/VodaA1aHWgdW21aXVrCDVo9aA1aHVvdWh1azVq9Wv1asg1bTVpdWv1bbVodaA1a/VqCDWhyDVqdW41oLVtdWsINW/1aHVrCDVsNWh1b7VpdWs1aHVvtWh1a7Vq9W2INWk1aHVttWk1aHVstWl1oHVttWl1awg1aHVtNWi1bjVstW7INWj1oDVodW91aHVrNWr1a/VqyDVodW31a3VodW/1aHVttaE1ahgINW01avVt9W/INWh1bfVrdWh1b/VpdWs1bjVvjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlQm9vdENvbXBsZXRlZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUxMzk1MDU4OTEwMjYxNzUwNCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVq9W21oTVtiDVq9aA1aXVtiDVvdWv1b3VpdWsYCDVsNWh1bTVodWv1aHWgNWj1asg1aLVpdW81bbVuNaC1bTVtiDVodW+1aHWgNW/1b7VpdWs1bjWgtW2INW61aXVvTog1Y3VoSDVr9Wh1oDVuNWyINWnINWw1aXVvNWh1a3VuNW91asg1bTVpdWv1bbVodaA1a/VqCDVpNWh1oDVsdW21aXVrCDVodW+1aXVrNWrINWl1oDVr9Wh1oAg1ocg1anVuNaC1bXVrCDVv9Wh1awsINW41oAg1bDVodW+1aXVrNW+1aHVrtWoINWk1aHVttWk1aHVstWl1oHVttWrINWo1bbVpNWw1aHVttW41oLWgCDVsNWl1bzVodWt1bjVvdWrINWh1bfVrdWh1b/VodW21oTVqGAg1bTVq9W31b8g1aHVt9Wt1aHVv9Wl1azVuNW+OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0U3RpY2t5IiBtc2dpZD0iNzkxOTEyNjM3MjYwNjg4MTYxNCI+ItW41oLVstWh1oDVr9Wl1awg1a/VutW51bjWgtW2INWw1aHVstW41oDVpNW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFN0aWNreSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzc0OTc2MDQ5NDM5OTkxNTY1MSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVuNaC1bLVodaA1a/VpdWsINWv1brVudW41oLVtiDVsNWh1bLVuNaA1aTVuNaC1bTVttWl1oAsINW41oDVuNW21oQg1bTVttW41oLVtCDVpdW2INWw1aHVstW41oDVpNW01aHVtiDVodW+1aHWgNW/1avWgSDVsNWl1b/VuDog1YnVodaD1aHVptWh1bbWgSDVt9Wh1b8g1oXVo9W/1aHVo9W41oDVrtW41oLVtNWoINWv1aHWgNW41bIg1acg1aPWgNWh1b3VodWs1avVr9WrINWh1bfVrdWh1b/VodW21oTVqCDVpNWh1bbVpNWh1bLVpdaB1bbVpdWsINWv1aHVtCDVpNWh1oDVsdW21aXVrCDVodW21a/VodW11bjWgtW2YCDVutWh1b/Vs9Wh1bwg1aTVodW81bbVodWs1bjVviDVudWh1oPVodWm1aHVttaBINW01aXVriDVsNWr1bfVuNWy1bjWgtWp1bXVodW2INaF1aPVv9Wh1aPVuNaA1a7VtNWh1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjgyNTgwMzc2NDIzMjQ0NTA5MSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVuNaC1bLVodaA1a/VpdWsINWv1brVudW41oLVtiDVsNWh1bLVuNaA1aTVuNaC1bTVttWl1oAsINW41oDVuNW21oQg1bTVttW41oLVtCDVpdW2INWw1aHVstW41oDVpNW01aHVtiDVodW+1aHWgNW/1avWgSDVsNWl1b/VuDog1YnVodaD1aHVptWh1bbWgSDVt9Wh1b8g1oXVo9W/1aHVo9W41oDVrtW41oLVtNWoINWv1aHWgNW41bIg1acg1bDVpdW81aHVrdW41b3VqyDVodW31a3VodW/1aHVttaE1agg1aTVodW21aTVodWy1aXWgdW21aXVrCDVr9Wh1bQg1aTVodaA1bHVttWl1awg1aHVttWv1aHVtdW41oLVtmAg1brVodW/1bPVodW8INWk1aHVvNW21aHVrNW41b4g1bnVodaD1aHVptWh1bbWgSDVtNWl1a4g1bDVq9W31bjVstW41oLVqdW11aHVtiDWhdWj1b/VodWj1bjWgNWu1bTVodW2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENvbnRhY3RzIiBtc2dpZD0iODM0ODQ4MTEzMTg5OTg4NjEzMSI+ItWv1aHWgNWk1aHVrCDVsdWl1oAg1a/VuNW21b/VodWv1b/VttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDb250YWN0cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNTI5NDg2Njg1Njk0MTE0OTYzOSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVr9Wh1oDVpNWh1awg1bHVpdaAINWj1oDVodW91aHVrNWr1a/VuNaC1bQg1brVodWw1b7VodWuINWv1bjVttW/1aHVr9W/1bbVpdaA1asg1bTVodW91avVtiDVv9W+1bXVodWs1bbVpdaA1agsINWh1bXVpCDVqdW+1bjWgtW0YCDVsdWl1oAg1a/VodW/1aHWgNWh1a4g1abVodW21aPVpdaA1assINWj1oDVodWuINW21aHVtNWh1a/VttWl1oDVqyDVr9Wh1bQg1bjWgNW41bfVodWv1asg1aHVttWw1aHVv9W21aXWgNWrINWw1aXVvyDVodW11awg1aXVstWh1bbVodWv1bjVviDVt9aD1bTVodW2INWw1aHVs9Wh1a3VodWv1aHVttW41oLVqdW11bjWgtW21ag6INSx1bXVvSDVqdW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW21agg1bDVttWh1oDVodW+1bjWgNW41oLVqdW11bjWgtW2INWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtW21aXWgNWr1bYg1brVodWw1aXVrCDVsdWl1oAg1a/VuNW21b/VodWv1b/VodW11avVtiDVv9W+1bXVodWs1bbVpdaA1agsINWr1b3VryDVvtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bYg1b/VodaA1aHVrtWl1awg1a/VuNW21b/VodWv1b/VodW11avVtiDVv9W+1bXVodWs1bbVpdaA1ahgINWh1bzVodW21oEg1bHVpdaAINWr1bTVodaB1bjWgtWp1bXVodW2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDb250YWN0cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0NDA2NTQxNTI0NTczMDA2NjIiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1a/VodaA1aTVodWsINWx1aXWgCDVsNWl1bzVodWt1bjVvdW41oLVtCDVutWh1bDVvtWh1a4g1a/VuNW21b/VodWv1b/VttWl1oDVqyDVtNWh1b3Vq9W2INW/1b7VtdWh1azVttWl1oDVqCwg1aHVtdWkINWp1b7VuNaC1bRgINWx1aXWgCDVr9Wh1b/VodaA1aHVriDVptWh1bbVo9Wl1oDVqywg1aPWgNWh1a4g1bbVodW01aHVr9W21aXWgNWrINWv1aHVtCDVuNaA1bjVt9Wh1a/VqyDVodW21bDVodW/1bbVpdaA1asg1bDVpdW/INWh1bXVrCDVpdWy1aHVttWh1a/VuNW+INW31oPVtNWh1bYg1bDVodWz1aHVrdWh1a/VodW21bjWgtWp1bXVuNaC1bbVqDog1LHVtdW9INWp1bjWgtW11azVv9W+1bjWgtWp1bXVuNaC1bbVqCDVsNW21aHWgNWh1b7VuNaA1bjWgtWp1bXVuNaC1bYg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1avVtiDVutWh1bDVpdWsINWx1aXWgCDVr9W41bbVv9Wh1a/Vv9Wh1bXVq9W2INW/1b7VtdWh1azVttWl1oDVqCwg1avVvdWvINW+1bbVodW91aHWgNWh1oAg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoINWv1aHWgNW41bIg1aXVtiDVv9Wh1oDVodWu1aXVrCDVr9W41bbVv9Wh1a/Vv9Wh1bXVq9W2INW/1b7VtdWh1azVttWl1oDVqGAg1aHVvNWh1bbWgSDVsdWl1oAg1avVtNWh1oHVuNaC1anVtdWh1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUNvbnRhY3RzIiBtc2dpZD0iNTEwNzQ5MjA4NjQxNjc5MzU0NCI+ItaD1bjWg9W41a3VpdWsINWx1aXWgCDVr9W41bbVv9Wh1a/Vv9W21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDb250YWN0cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODk3MjQzOTMyNTIxOTUzNjAyIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaD1bjWg9W41a3VpdWsINWx1aXWgCDVo9aA1aHVvdWh1azVq9Wv1bjWgtW0INW61aHVsNW+1aHVriDVr9W41bbVv9Wh1a/Vv9W21aXWgNWrINW01aHVvdWr1bYg1b/VvtW11aHVrNW21aXWgNWoLCDVodW11aQg1anVvtW41oLVtGAg1bHVpdaAINWv1aHVv9Wh1oDVodWuINWm1aHVttWj1aXWgNWrLCDVo9aA1aHVriDVttWh1bTVodWv1bbVpdaA1asg1a/VodW0INW41oDVuNW31aHVr9WrINWh1bbVsNWh1b/VttWl1oDVqyDVsNWl1b8g1aHVtdWsINWl1bLVodW21aHVr9W41b4g1bfWg9W01aHVtiDVsNWh1bPVodWt1aHVr9Wh1bbVuNaC1anVtdW41oLVttWoOiDUsdW11b0g1anVuNaC1bXVrNW/1b7VuNaC1anVtdW41oLVttWoINWw1bbVodaA1aHVvtW41oDVuNaC1anVtdW41oLVtiDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7VttWl1oDVq9W2INW71bbVu9Wl1awg1a/VuNW21b/VodWv1b/VodW11avVtiDVv9W+1bXVodWs1bbVpdaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDb250YWN0cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU4OTg2OTIyNDYyNTE2MzU1OCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWg9W41oPVuNWt1aXVrCDVsdWl1oAg1aPWgNWh1b3VodWs1avVr9W41oLVtCDVutWh1bDVvtWh1a4g1a/VuNW21b/VodWv1b/VttWl1oDVqyDVv9W+1bXVodWs1bbVpdaA1agsINWh1bXVpCDVqdW+1bjWgtW0YCDVsdWl1oAg1a/VodW/1aHWgNWh1a4g1abVodW21aPVpdaA1assINWj1oDVodWuINW21aHVtNWh1a/VttWl1oDVqyDVr9Wh1bQg1bjWgNW41bfVodWv1asg1aHVttWw1aHVv9W21aXWgNWrINWw1aXVvyDVodW11awg1aXVstWh1bbVodWv1bjVviDVt9aD1bTVodW2INWw1aHVs9Wh1a3VodWv1aHVttW41oLVqdW11bjWgtW21ag6INSx1bXVvSDVqdW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW21agg1bDVttWh1oDVodW+1bjWgNW41oLVqdW11bjWgtW2INWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtW21aXWgNWr1bYg1bvVttW71aXVrCDVr9W41bbVv9Wh1a/Vv9Wh1bXVq9W2INW/1b7VtdWh1azVttWl1oDVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDYWxsTG9nIiBtc2dpZD0iMzQ3ODEzMzE4NDYyNDEwMjczOSI+ItWv1aHWgNWk1aHVrCDVptWh1bbVo9Wl1oDVqyDVtNWh1b/VtdWh1bbVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDYWxsTG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzNzAwNjQ1MTg0ODcwNzYwMjg1Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHWgNWk1aHVrCDVsdWl1oAg1aPWgNWh1b3VodWs1avVr9WrINWm1aHVttWj1aXWgNWrINWj1oDVodW21oHVodW01aHVv9W11aHVttWoLCDVodW11aQg1anVvtW41oLVtGAg1bTVuNaC1b/WhNWh1bXVq9W2INaHINWl1azWhNWh1bXVq9W2INWm1aHVttWj1aXWgNWrINW/1b7VtdWh1azVttWl1oDVqDog1Y3VoSDVqdW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1brVodWw1aXVrCDVsdWl1oAg1abVodW21aPVpdaA1asg1aPWgNWh1bbWgdWh1bTVodW/1bXVodW21asg1b/VvtW11aHVrNW21aXWgNWoLCDWhyDVvtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bYg1b/VodaA1aHVrtWl1awg1aTWgNWh1bbWhGAg1aHVvNWh1bbWgSDVsdWl1oAg1avVtNWh1oHVuNaC1anVtdWh1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGxMb2ciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzc3NzI1Nzk2ODEzMjE3MjQ0Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9wqDVsNWh1b7VpdWs1b7VodWu1avVtiDVr9Wh1oDVpNWh1awg1bHVpdaAINWw1aXVvNWh1a3VuNW91asg1abVodW21aPVpdaA1asg1aPWgNWh1bbWgdWh1bTVodW/1bXVodW21agsINWh1bXVpCDVqdW+1bjWgtW0YCDVtNW41oLVv9aE1aHVtdWr1bYg1ocg1aXVrNaE1aHVtdWr1bYg1abVodW21aPVpdaA1asg1b/VvtW11aHVrNW21aXWgNWoOiDUudW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW21agg1bDVttWh1oDVodW+1bjWgNW41oLVqdW11bjWgtW2INWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1brVodWw1brVodW21aXVrCDVsdWl1oAg1abVodW21aPVpdaA1asg1aPWgNWh1bbWgdWh1bTVodW/1bXVodW21asg1b/VvtW11aHVrNW21aXWgNWoLCDWhyDVvtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bYg1b/VodaA1aHVrtWl1awg1aPWgNWh1bbWgdWh1bTVodW/1bXVodW21asg1b/VvtW11aHVrNW21aXWgNW2INWh1bzVodW21oEg1bHVpdaAINWr1bTVodaB1bjWgtWp1bXVodW2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVDYWxsTG9nIiBtc2dpZD0iODU1MjA0NTY2NDc0MzQ5OTM1NCI+ItW/1aXVvdW21aXVrCDVptWh1bbVo9Wl1oDVqyDVo9aA1aHVttaB1aHVtNWh1b/VtdWh1bbVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsbExvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY2MTgwNjA2MjI3NDExOTI0NSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWg9W41oPVuNWt1aXVrCDVsdWl1oAg1aPWgNWh1b3VodWs1avVr9WrINWm1aHVttWj1aXWgNWrINW01aHVv9W11aHVttWoLCDVodW11aQg1anVvtW41oLVtGAg1bTVuNaC1b/WhNWh1bXVq9W2INaHINWl1azWhNWh1bXVq9W2INWm1aHVttWj1aXWgNWrINW01aHVvdWr1bYg1b/VvtW11aHVrNW21aXWgNWoOiDVjtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bYg1b3VoSDWhdWj1b/VodWj1bjWgNWu1aXVrGAg1bHVpdaAINWm1aHVttWj1aXWgNWrINW01aHVv9W11aHVttWoINW71bbVu9Wl1azVuNaCINWv1aHVtCDWg9W41oPVuNWt1aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGxMb2ciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODM5NDE3MzYzNTI3ODc4NDIiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oPVuNaD1bjVrdWl1awg1bHVpdaAINWw1aXVvNWh1a3VuNW91asg1abVodW21aPVpdaA1asg1bTVodW/1bXVodW21agsINWh1bXVpCDVqdW+1bjWgtW0YCDVtNW41oLVv9aE1aHVtdWr1bYg1ocg1aXVrNaE1aHVtdWr1bYg1abVodW21aPVpdaA1asg1bTVodW91avVtiDVv9W+1bXVodWs1bbVpdaA1ag6INWO1bbVodW91aHWgNWh1oAg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoINWv1aHWgNW41bIg1aXVtiDVvdWhINaF1aPVv9Wh1aPVuNaA1a7VpdWsYCDVsdWl1oAg1abVodW21aPVpdaA1asg1bTVodW/1bXVodW21agg1bvVttW71aXVrNW41oIg1a/VodW0INaD1bjWg9W41a3VpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFByb2ZpbGUiIG1zZ2lkPSI0NzAxODg5ODUyNjEyNzE2Njc4Ij4i1a/VodaA1aTVodWsINWx1aXWgCDVvdWl1oPVodWv1aHVtiDVr9W41bbVv9Wh1a/Vv9Wh1bXVq9W2INaE1aHWgNW/1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkUHJvZmlsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU0NjI0NzUxNTE4NDk4ODg4NDgiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1a/VodaA1aTVodWsINWx1aXWgCDVvdWh1oDWhNW41oLVtCDVutWh1bDVvtWh1a4g1aHVttWw1aHVv9Wh1a/VodW2IOKAi+KAi9W61oDVuNaG1avVrNWrINW/1b7VtdWh1azVttWl1oDVqCwg1avVttW51brVq9W91avWhCDVpdW2INWx1aXWgCDVodW21bjWgtW21agg1ocg1a/VuNW21b/VodWv1b/VodW11avVtiDVv9W+1bXVodWs1bbVpdaA1ag6INWN1aEg1bbVt9Wh1bbVodWv1bjWgtW0INWnLCDVuNaAINWw1aHVvtWl1azVvtWh1a7VqCDVr9Wh1oDVuNWyINWnINWx1aXVpiDVs9Wh1bbVodW51aXVrCDWhyDVuNaC1bLVodaA1a/VpdWsINWx1aXWgCDVutaA1bjWhtWr1azVqyDVv9W+1bXVodWs1bbVpdaA1agg1bjWgtaA1avVt9W21aXWgNWr1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVByb2ZpbGUiIG1zZ2lkPSI5MDc3OTM2Mjg3NzczOTc2NDMiPiLWg9W41oPVuNWt1aXVrCDVsdWl1oAg1b3VpdaD1aHVr9Wh1bYg1a/VuNW21b/VodWv1b/VodW11avVtiDWhNWh1oDVv9WoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVQcm9maWxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTU1MjA4NDI5NDU5ODQ2NTg5OSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWg9W41a3VpdWsINWv1aHVtCDVodW+1aXVrNWh1oHVttWl1awg1bHVpdaAINW91aHWgNaE1bjWgtW0INW61aHVsNW+1aHVriDVodW21bDVodW/1aHVr9Wh1bYg4oCL4oCL1brWgNW41obVq9Ws1asg1b/VvtW11aHVrNW21aXWgNWoLCDVq9W21bnVutWr1b3Vq9aEINWl1bYg1bHVpdaAINWh1bbVuNaC1bbVqCDWhyDVr9W41bbVv9Wh1a/Vv9Wh1bXVq9W2INW/1b7VtdWh1azVttWl1oDVqDog1Y3VoSDVttW31aHVttWh1a/VuNaC1bQg1acsINW41oAg1bDVodW+1aXVrNW+1aHVrtWoINWv1aHWgNW41bIg1acg1bHVpdWmINWz1aHVttWh1bnVpdWsINaHINW41oLVstWh1oDVr9Wl1awg1bHVpdaAINW61oDVuNaG1avVrNWrINW/1b7VtdWh1azVttWl1oDVqCDVuNaC1oDVq9W31bbVpdaA1avVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMjY4OTIwOTU2MTUyNDE5MTcwIj4i1a/VodaA1aTVodWsINWx1aXWgCDVvdW41oHVq9Wh1azVodWv1aHVtiDVsNW41b3WhNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQyNTU3MDYwMjcxNzIwNTA4NzIiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1bTVuNaC1b/WhCDVo9W41oDVrtWl1awg1ocg1bDVodW01aHVqtWh1bTVpdaB1bbVpdWsINWx1aXWgCDWhyDVsdWl1oAg1ajVttWv1aXWgNW21aXWgNWrINW91bjWgdWr1aHVrNWh1a/VodW2INWp1aHWgNW01aHWgdW41oLVtNW21aXWgNWoOiDUttWj1bjWgtW11bcg1aXVstWl1oQg1b/VpdWy1aXVr9W41oLVqdW11bjWgtW21bbVpdaAINW/1aHWgNWh1a7VpdWs1avVvS4g1aHVtdW2INWp1bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVr9Wh1oDVpNWh1awg1bHVpdaAINaHINWx1aXWgCDVqNW21a/VpdaA1bbVpdaA1asg1bTVq9W71ocg1aHVttWx1bbVodWv1aHVtiDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgNWoINW91bjWgdWr1aHVrNWh1a/VodW2INaB1aHVttaB1aXWgNW41oLVtGAg1aHVttWv1aHVrSDVo9Wh1bLVv9W21avVuNaC1anVtdW41oLVttWr1oE6INWG1bfVuNaC1bQuINWh1bXVvSDVqdW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW21agg1bnVqyDVr9Wh1oDVuNWyINWj1bjWgNWu1aHVrtW+1aXVrCDVotW41azVuNaAINW91bjWgdWr1aHVrNWh1a/VodW2INaB1aHVttaB1aXWgNW41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzUwNDE3OTIyMjQ5MzIzNTY0NSI+ItWj1oDVpdWsINWx1aXWgCDVvdW41oHVq9Wh1azVodWv1aHVtiDVsNW41b3WhNW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzA4NjU1NzU1MjIwNDExNDg0OSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWgdW41oLWgdWh1aTWgNWl1awg1bHVpdaAINWo1bbVr9Wl1oDVttWl1oDVqyDVvdW41oHVq9Wh1azVodWv1aHVtiDVqdWh1oDVtNWh1oHVuNaC1bTVttWl1oDVqDog1LbVo9W41oLVtdW3INWl1bLVpdaEINW/1aXVstWl1a/VuNaC1anVtdW41oLVttW21aXWgCDVv9Wh1oDVodWu1aXVrNWr1b0uINWh1bXVtiDVqdW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1bDVodWy1bjWgNWk1aHVo9W41oLVqdW11bjWgtW21bbVpdaAINW91b/VpdWy1a7VpdWsLCDVuNaA1bjVttaEINWr1aLWgNaHINW91b/VodaB1b7VuNaC1bQg1aXVtiDVqNW21a/VpdaA1bjVu9Wr1oE6INWG1bfVuNaC1bQuINWh1bXVvSDVqdW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW21agg1bnVqyDVr9Wh1oDVuNWyINWj1bjWgNWu1aHVrtW+1aXVrCDVotW41azVuNaAINW91bjWgdWr1aHVrNWh1a/VodW2INaB1aHVttaB1aXWgNW41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDYWxlbmRhciIgbXNnaWQ9IjU5NzI3Mjc1NjAyNTc2MTIzOTgiPiLVr9Wh1oDVpNWh1awg1oXWgNWh1oHVuNaC1oHVodW11avVtiDVq9aA1aHVpNWh1oDVsdW41oLVqdW11bjWgtW21bbVpdaA1agg1ocg1aPVodWy1b/VttWrINW/1aXVstWl1a/VuNaC1anVtdW41oLVttW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGVuZGFyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MjE2NDYyMDQ5MDU3NjU4NzIzIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHWgNWk1aHVrCDVsdWl1oAg1aPWgNWh1b3VodWs1avVr9W41oLVtCDVutWh1bDVvtWh1a4g1aLVuNWs1bjWgCDWhdaA1aHWgdW41oLWgdWh1bXVq9W2INWr1oDVodWk1aHWgNWx1bjWgtWp1bXVuNaC1bbVttWl1oDVqCwg1aHVtdWkINWp1b7VuNaC1bRgINWo1bbVr9Wl1oDVttWl1oDVqyDVr9Wh1bQg1aPVuNaA1a7VqNW21a/VpdaA1bbVpdaA1as6INWN1aEg1a/VodaA1bjVsiDVpyDVqdW41oLVtdWsINW/1aHVrCDVsNWh1b7VpdWs1b7VodWu1avVtiDVv9Wh1oDVodWu1aXVrCDVr9Wh1bQg1brVodWw1aXVrCDVsdWl1oAg1oXWgNWh1oHVuNaC1oHVodW11avVtiDVv9W+1bXVodWs1bbVpdaA1ahgINWh1bbVr9Wh1a0g1aPVodWy1b/VttWr1bjWgtWp1bXVuNaC1bbVq9aBINWv1aHVtCDVptWj1aHVtdW41oLVttW41oLVqdW11bjWgtW21avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3NDM0NTQ4NjgyNDcwODUxNTgzIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHWgNWk1aHVrCDVsdWl1oAg1bDVpdW81aHVrdW41b3VuNaC1bQg1brVodWw1b7VodWuINWi1bjVrNW41oAg1oXWgNWh1oHVuNaC1oHVodW11avVtiDVq9aA1aHVpNWh1oDVsdW41oLVqdW11bjWgtW21bbVpdaA1agsINWh1bXVpCDVqdW+1bjWgtW0YCDVqNW21a/VpdaA1bbVpdaA1asg1a/VodW0INWj1bjWgNWu1ajVttWv1aXWgNW21aXWgNWrOiDVjdWhINWv1aHWgNW41bIg1acg1anVuNaC1bXVrCDVv9Wh1awg1bDVodW+1aXVrNW+1aHVrtWr1bYg1b/VodaA1aHVrtWl1awg1a/VodW0INW61aHVsNWl1awg1bHVpdaAINaF1oDVodaB1bjWgtaB1aHVtdWr1bYg1b/VvtW11aHVrNW21aXWgNWoYCDVodW21a/VodWtINWj1aHVstW/1bbVq9W41oLVqdW11bjWgtW21avWgSDVr9Wh1bQg1abVo9Wh1bXVuNaC1bbVuNaC1anVtdW41oLVttWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUNhbGVuZGFyIiBtc2dpZD0iODQzODg3NDc1NTE5MzgyNTY0NyI+ItWh1b7VpdWs1aHWgdW21aXVrCDVr9Wh1bQg1oPVuNaD1bjVrdWl1awg1oXWgNWh1oHVuNaC1oHVodW11avVtiDVq9aA1aHVpNWh1oDVsdW41oLVqdW11bjWgtW21bbVpdaA1agg1ocg1bjWgtWy1aHWgNWv1aXVrCDVttWh1bTVodWvINWw1bXVuNaC1oDVpdaA1avVtmAg1aHVvNWh1bbWgSDVvdWl1oPVodWv1aHVttWh1b/VpdaA1aXWgNWrINWr1bTVodaB1bjWgtWp1bXVodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY3OTAzNTUyMDExMzY2ODUyOCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVodW+1aXVrNWh1oHVttWl1awsINWw1aXVvNWh1oHVttWl1awsINaD1bjVrdWl1awg1avWgNWh1aTVodaA1bHVuNaC1anVtdW41oLVttW21aXWgCwg1bjWgNW41bbWhCDVpNW41oLWhCDVr9Wh1oDVuNWyINWl1oQg1oPVuNaD1bjVrdWl1awg1bHVpdaAINWj1oDVodW91aHVrNWr1a/VuNaC1bQsINWh1bXVpCDVqdW+1bjWgtW0INWo1bbVr9Wl1oDVttWl1oDVqyDVr9Wh1bQg1aHVt9Wt1aHVv9Wh1a/Vq9aB1bbVpdaA1asg1avWgNWh1aTVodaA1bHVuNaC1anVtdW41oLVttW21aXWgNWoOiDVjdWhINWv1aHWgNW41bIg1acg1anVuNaC1bXVrCDVv9Wh1awg1bDVodW+1aXVrNW+1aHVrtWr1bYg1bjWgtWy1aHWgNWv1aXVrCDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgCwg1bjWgNW41bbWhCDVpdaA1ofVuNaC1bQg1aXVtiDVuNaA1brVpdW9wqDWhdaA1aHWgdW41oLVtdaB1asg1b3VpdaD1aHVr9Wh1bbVodW/1aXWgNWl1oDVq9aBINW41oLVstWh1oDVr9W+1aHVriwg1a/VodW0INaD1bjWg9W41a3VpdWsINWr1oDVodWk1aHWgNWx1bjWgtWp1bXVuNaC1bbVttWl1oDVtiDVodW81aHVttaBINW91aXWg9Wh1a/VodW21aHVv9Wl1oDVpdaA1asg1avVtNWh1oHVuNaC1anVtdWh1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIzMjQ0Njk0OTYzMjcyNDkzNzYiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1aHVvtWl1azVodaB1bbVpdWsLCDVsNWl1bzVodaB1bbVpdWsLCDWg9W41a3VpdWsINWh1bXVtiDVq9aA1aHVpNWh1oDVsdW41oLVqdW11bjWgtW21bbVpdaA1agsINW41oDVuNW21oQg1a/VodaA1bjVsiDVpdaEINaD1bjWg9W41a3VpdWsINWx1aXWgCDVsNWl1bzVodWt1bjVvdWr1oEsINWh1bXVpCDVqdW+1bjWgtW0YCDVqNW21a/VpdaA1bbVpdaA1asg1a/VodW0INWj1bjWgNWu1ajVttWv1aXWgNW21aXWgNWrOiDVjdWhINWv1aHWgNW41bIg1acg1anVuNaC1bXVrCDVv9Wh1awg1bDVodW+1aXVrNW+1aHVrtWr1bYg1bjWgtWy1aHWgNWv1aXVrCDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgCwg1bjWgNW41bbWhCDVq9Wi1oDWhyDVo9Wh1azVq9W9INWl1bYg1oXWgNWh1oHVuNaC1bXWgdWrINW91aXWg9Wh1a/VodW21aHVv9Wr1oDVuNW71avWgSwg1a/VodW0INaD1bjWg9W41a3VpdWsINWr1oDVodWk1aHWgNWx1bjWgtWp1bXVuNaC1bbVttWl1oDVqGAg1aHVvNWh1bbWgSDVvdWl1oPVodWv1aHVttWh1b/Vq9aA1bjVuyDVq9W01aHWgdW41oLVqdW11aHVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc01vY2tMb2NhdGlvbiIgbXNnaWQ9Ijg2ODgzMzQ5NzQwMzY4MjMzMzAiPiLVr9Wl1bLVriDVv9Wl1bLVodW21oTVqyDVodWy1aLVtdW41oLWgNW21aXWgCDWg9W41oDVsdWh1oDVr9W01aHVtiDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTW9ja0xvY2F0aW9uIiBtc2dpZD0iNTgwODcxMTAzOTQ4MjA1MTgyNCI+ItWN1b/VpdWy1a7VpdWsINWv1aXVstWuINW/1aXVstWh1bbWhNWrINWh1bLVotW11bjWgtaA1bbVpdaAYCDWg9W41oDVsdWh1oDVr9W01aHVtiDVr9Wh1bQg1b/VpdWy1aHVpNaA1bjWgtWp1bXVodW2INW21bjWgCDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bYg1bTVodW/1bjWgtaB1bjVstWrINW/1aXVstWh1aTWgNW01aHVtiDVsNWh1bTVodaAOiDVjdWhINWw1bbVodaA1aHVvtW41oDVuNaC1anVtdW41oLVtiDVpyDVv9Wh1azVq9W9LCDVuNaAINWu1oDVodWj1avWgNWoINWh1bbVv9Wl1b3VqyDVv9Wl1bLVodWk1oDVuNaC1anVtdW41oLVttWoINaHL9Wv1aHVtCDVr9Wh1oDVo9Wh1b7Vq9Wz1aHVr9WoYCDVv9aA1aHVtNWh1aTWgNW+1aHVriDVv9Wl1bLVodW21oTVqyDVodW11awg1aHVstWi1bXVuNaC1oDVttWl1oDVqyDVr9W41bLVtNWr1oEsINWr1bbVudW61avVvdWr1oQg1aXVtiBHUFMt1agg1a/VodW0INW/1aXVstWh1aTWgNW41oLVqdW11aHVtiDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bYg1bTVodW/1bjWgtaB1bjVstW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iMjgzNjMwODA3NjcyMDU1MzgzNyI+ItaF1aPVv9Wh1aPVuNaA1a7VpdWsINW/1aXVstWh1aTWgNW41oLVqdW11bjWgtW2INW/1oDVodW01aHVpNaA1bjVsiDVsNWh1b7VpdWs1b7VtdWh1awg1bDWgNWh1bTVodW21bbVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iNTk0NTE2NjY0MjMzNTgwMDc2MyI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWhdWj1b/VodWj1bjWgNWu1aXVrCDVv9Wl1bLVodWk1oDVuNaC1anVtdWh1bYg1a7VodW81aHVtdW41oLVqdW11bjWgtW2INW01aHVv9W41oLWgdW41bLVttWl1oDVqyDVrNaA1aHWgdW41oLWgdWr1bkg1bDWgNWh1bTVodW21bbVpdaA1ag6INWN1aEg1a/VodaA1bjVsiDVpyDVqdW41oLVtdWsINW/1aHVrNWw1aHVvtWl1azVvtWh1a7Vq9W2INWt1aHVttWj1aHWgNWl1awgR1BTLdWrINWv1aHVtCDVodW11awg1b/VpdWy1aHVttaE1asg1aHVstWi1bXVuNaC1oDVttWl1oDVqyDVodW31a3VodW/1aHVttaE1avVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iNjU3ODEwMTE5OTgyNTE5Mzg3MyI+ItW/1aXVstWh1aTWgNW41oLVqdW11aHVtiDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bYg1bTVodW/1bjWgtaB1bjVstWrINW/1aXVstWh1aTWgNW01aHVtiDVqdW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI5MDY2MTQ2MTIwNDcwNTkxNTA5Ij4i1Y3Vv9Wl1bLVrtWl1awg1a/VpdWy1a4g1b/VpdWy1aHVttaE1asg1aHVstWi1bXVuNaC1oDVttWl1oBgINaD1bjWgNWx1aHWgNWv1bTVodW2INWv1aHVtCDVv9Wl1bLVodWk1oDVuNaC1anVtdWh1bYg1bbVuNaAINWu1aHVvNWh1bXVuNaC1anVtdW41oLVtiDVtNWh1b/VuNaC1oHVuNWy1asg1b/VpdWy1aHVpNaA1bTVodW2INWw1aHVtNWh1oA6INWN1aEg1bDVttWh1oDVodW+1bjWgNW41oLVqdW11bjWgtW2INWnINW/1aHVrNWr1b0sINW41oAg1bDVodW+1aXVrNW+1aHVrtW2INWh1bbVv9Wl1b3VqyDVv9Wl1bLVodWk1oDVuNaC1anVtdW41oLVttWoINaHL9Wv1aHVtCDVr9Wh1oDVo9Wh1b7Vq9Wz1aHVr9WoYCDVv9aA1aHVtNWh1aTWgNW+1aHVriDVv9Wl1bLVodW21oTVqyDVodW11awg1aHVstWi1bXVuNaC1oDVttWl1oDVqyDVr9W41bLVtNWr1oEsINWr1bbVudW61avVvdWr1oQg1aXVtiBHUFMt1agg1a/VodW0INW/1aXVstWh1aTWgNW41oLVqdW11aHVtiDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bYg1bTVodW/1bjWgtaB1bjVstW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzRmluZUxvY2F0aW9uIiBtc2dpZD0iMTE5MTg5ODA2MTk2NTI3MzM3MiI+ItWz1bfVo9aA1avVvyDVvtWh1bXWgNWoICjVqNW91b8gR1BTLdWrINaHwqDWgdWh1bbWgdWrKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0ZpbmVMb2NhdGlvbiIgbXNnaWQ9IjUyOTUwNDc1NjM1NjQ5ODEyNTAiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1b3Vv9Wh1bbVodWsINWx1aXWgCDVs9W31aPWgNWr1b8g1b/VpdWy1aHVpNaA1bjWgtWp1bXVuNaC1bbVqGAg1oXVo9W/1aHVo9W41oDVrtWl1azVuNW+INSz1azVuNWi1aHVrCDUtNWr1oDWhNWh1b7VuNaA1bTVodW2INWA1aHVtNWh1a/VodaA1aPVqCAoR1BTKSDVr9Wh1bQg1oHVodW21oHVodW11avVtiDVv9Wl1bLVodW21oTVqyDVodWy1aLVtdW41oLWgNW21aXWgNWoLCDVq9W21bnVutWl1b0g1oXWgNWr1bbVodWvYCDVotW71bvVodW11avVtiDVodW31b/VodaA1aHVr9W21aXWgNWoINaHIFdpLUZpLdWoOiDUsdW11b0g1b/VpdWy1aHVpNaA1bjWgtWp1bXVodW2INWu1aHVvNWh1bXVuNaC1anVtdW41oLVttW21aXWgNWoINW61aXVv9aEINWnINW01avVodaB1b7VpdW2INaHINWw1aHVvdWh1bbVpdWs1asg1azVq9W21aXVtiDVsdWl1oAg1b3VodaA1oTVqyDVsNWh1bTVodaALCDVuNaA1brVpdW91abVqyDVsNWh1b7VpdWs1b7VodWu1bYg1oXVo9W/1aHVo9W41oDVrtWrINWk1oDVodW21oQ6INWA1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bbCoNW91aEg1oXVo9W/1aHVo9W41oDVrtWl1axgINW41oDVuNW31aXVrNW41oIg1bDVodW01aHWgCDVsdWl1oAg1aPVv9W21b7VpdWs1bjWgiDVvtWh1bXWgNWoINaHINWv1aHWgNW41bIg1aXVtiDVvdW61aHVvNWl1awg1bTVodaA1b/Vr9W41oHVq8Kg1azWgNWh1oHVuNaC1oHVq9W5INWs1avWgdaEOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSI0ODg3ODk1MzYyMzU0MjM5NjI4Ij4i1bTVuNW/1aHVvtW41oAg1b/VpdWy1aHVpNaA1bjWgtWp1bXVuNaC1bbVqCAo1oHVodW21oHVodW11avVtikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjI1MzgyMDAxODQzNzMzMDIyOTUiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1b3Vv9Wh1bbVodWsINWx1aXWgCDVtNW41b/VodW+1bjWgCDVv9Wl1bLVodWk1oDVuNaC1anVtdW41oLVttWoOiDUsdW11b0g1b/VpdWy1aHVpNaA1bjWgtWp1bXVuNaC1bbVqCDVvdW/1aHWgdW+1bjWgtW0INWnINW/1aXVstWh1bbWhNWrINWu1aHVvNWh1bXVuNaC1anVtdW41oLVttW21aXWgNWrINWv1bjVstW01avWgSwg1avVttW51brVpdW9INaF1oDVq9W21aHVr2Ag1aLVu9W71aHVtdWr1bYg1aHVt9W/1aHWgNWh1a/VttWl1oDVq9aBINaHIFdpLUZpLdWr1oE6INSx1bXVvSDVv9Wl1bLVodW21oTVqyDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bbVttWl1oDVqCDVutWl1b/WhCDVpyDVtNWr1aHWgdW+1aHVriDWhyDVsNWh1b3VodW21aXVrNWrINWs1avVttWl1bYg1bHVpdaAINW91aHWgNaE1avVtiwg1bjWgNW61aXVvdWm1asg1bDVodW+1aXVrNW+1aHVrtW2INaF1aPVv9Wh1aPVuNaA1a7VqyDVpNaA1aHVttaEOiDVgNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INW91aEg1oXVo9W/1aHVo9W41oDVrtWl1axgINWx1aXWgCDVtNW41b/VodW+1bjWgCDVo9W/1bbVvtWl1azVuNaCINW+1aHVtdaA1agg1bjWgNW41bfVpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIyMzYzOTY5NjQxNzkyMzg4OTQ3Ij4i1bTVuNaC1b/WhCBTdXJmYWNlRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWhdWj1b/VodWj1bjWgNWu1aXVrCBTdXJmYWNlRmxpbmdlciDWgdWh1a7WgCDVtNWh1a/VodaA1aTVodWv1asg1aPVuNaA1a7VodW81bjWgtW11anVttWl1oDVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiLVr9Wh1oDVpNWh1awg1bfWgNW71aHVttWh1a/VqyDVutWh1bDVttWh1a/VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1a/VodaA1aTVodWsINW31oDVu9Wh1bbVodWv1asg1brVodWw1bbVodWv1asg1aLVuNW+1aHVttWk1aHVr9W41oLVqdW11bjWgtW21ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4i1bTVuNaC1b/WhCDVo9W41oDVrtWl1awgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVrtaA1aHVo9aA1avVtiDWhdWj1b/VodWj1bjWgNWu1aXVrCBJbnB1dEZsaW5nZXIg1oHVodWu1oAg1bTVodWv1aHWgNWk1aHVr9WrINWj1bjWgNWu1aHVvNW41oLVtdWp1bbVpdaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiLVr9Wh1oDVo9Wh1b7VuNaA1aXVrCBXaUZpLdWrINaB1bjWgtaB1aHVpNaA1bjWgtW01agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1a/VodaA1aPVodW+1bjWgNWl1awg1ocg1bTVq9Wh1bbVodWsIFdpRmkg1oHVuNaC1oHVodWk1oDVq9W51bbVpdaA1avVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+ItWv1aHVvNWh1b7VodaA1aXVrCBXaWZpLdWrINaB1bjWgtaB1aHVpNaA1bjWgtW01agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSI0NTQzOTEyMjkyNjgxODI2OTg2Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHVvNWh1b7VodaA1aXVrCBXaUZpINaB1bjWgtaB1aHVpNaA1avVudW21aXWgNWrINaB1aHVrtaAINW01aHVr9Wh1oDVpNWh1a/VqyDVo9W41oDVrtWh1bzVuNaC1bXVqdW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZUF1ZGlvT3V0cHV0IiBtc2dpZD0iNjg1NzEzNDQ5ODQwMjM0NjcwOCI+ItW61aHVsNWl1awg1aHVuNaC1aTVq9W4INWh1oDVv9Wh1a7VuNaC1bTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjYyMTA1OTc3NTQyMTIyMDg4NTMiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1a7WgNWh1aPWgNWr1bYg1brVodWw1aXVrCDWhyDVvtWl1oDVodWw1bLVpdWsINWh1bjWgtWk1avVuCDVodaA1b/VodWu1bjWgtW01ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIyMjQ2ODI4NzczNTg5MDk0MDIzIj4i1brVodWw1aXVrCDVvtWr1aTVpdW4INWh1oDVv9Wh1a7VuNaC1bTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjM1OTQ4MTY1ODAzNDE0OTg2MCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVrtaA1aHVo9aA1avVtiDVutWh1bDVpdWsINaHINW+1aXWgNWh1bDVstWl1awg1b7Vq9Wk1aXVuCDVodaA1b/VodWu1bjWgtW01ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlU2VjdXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSI3ODE1Mzk4OTY5MzAzMzgyMDE2Ij4i1brVodWw1aXVrCDVodW21b7Vv9Wh1bbVoyDVvtWr1aTVpdW4INWh1oDVv9Wh1a7VuNaC1bTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVTZWN1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjI3Nzk3OTMwNjQ3MDkzNTAyODkiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1a7WgNWh1aPWgNWr1bYg1brVodWw1aXVrCDWhyDVvtWl1oDVodWw1bLVpdWsINWh1bbVvtW/1aHVttWjINW+1avVpNWl1bgg1aHWgNW/1aHVrtW41oLVtNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjYwOTU4NTk5MzcwNjkxNDYwODYiPiLWg9W41a3VpdWsINWx1aXWgCDVodW41oLVpNWr1bgg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjM1MjI1NjUzNjY4MDYyNDg1MTciPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oPVuNaD1bjVrdWl1awg1bHVodW11bbVodW21bXVuNaC1anVq8Kg1aPVrNW41aLVodWsINWv1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oDVqCwg1avVttW51brVpdW9INaF1oDVq9W21aHVr2Ag1bHVodW11bbVqCDWhyDVqdWlINW41oAg1a3VuNW91aHWg9W41bLVtiDVpyDWhdWj1b/VodWj1bjWgNWu1b7VodWuINWh1oDVv9Wh1a7VtNWh1bYg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY29yZEF1ZGlvIiBtc2dpZD0iMzg3NjA0OTc3MTQyNzQ2NjMyMyI+ItWx1aHVtdW21aHVo9aA1aXVrCDVsdWh1bXVttWh1bbVtdW41oLVqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY29yZEF1ZGlvIiBtc2dpZD0iNDkwNjgzOTMwMTA4Nzk4MDY4MCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVotWh1oDVsdaA1aHVrdW41b3VuNW+INWx1aHVtdW21aHVo9aA1aXVrCDVsdWh1bXVttWh1bbVtdW41oLVqTog1LHVtdW9INWp1bjWgtW11azVv9W+1bjWgtWp1bXVuNaC1bbVqCDVsNW21aHWgNWh1b7VuNaA1bjWgtWp1bXVuNaC1bYg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVsdWh1bXVttWh1bbVtdW41oLVqSDVsdWh1bXVttWh1aPWgNWl1awg1oHVodW21a/VodaB1aHVriDVqtWh1bTVodW21aHVr2Ag1aHVvNWh1bbWgSDVsdWl1oAg1bDVodW91b/VodW/1bTVodW2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FtZXJhIiBtc2dpZD0iMzYxNjM5MTkxOTU1OTc1MTE5MiI+ItWs1bjWgtW91aHVttWv1aHWgNWl1awg1ocg1b/VpdW91aHVttWv1aHWgNWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYW1lcmEiIG1zZ2lkPSI4NDk3MjE2NTI0NzM1NTM1MDA5Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaG1bjVv9W41a3WgdWr1a/VuNW+INWs1bjWgtW91aHVttWv1aHWgNWl1awg1ocg1b/VpdW91aHVttWv1aHWgNWl1aw6INSx1bXVvSDVqdW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW21agg1bDVttWh1oDVodW+1bjWgNW41oLVqdW11bjWgtW2INWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oXVo9W/1aHVo9W41oDVrtWl1awg1obVuNW/1bjVrdaB1avVr9WoINaB1aHVttWv1aHWgdWh1a4g1arVodW01aHVttWh1a9gINWh1bzVodW21oEg1bHVpdaAINWw1aHVvdW/1aHVv9W01aHVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYURpc2FibGVUcmFuc21pdExlZCIgbXNnaWQ9IjI2NTEwNzI2MzA1MDExMjYyMjIiPiLVodW21bvVodW/1aXVrCDWg9W41a3VodW21oHVuNWyIExFRCDWgdW41oLWgdWr1bnVqCwg1aXWgNWiINaG1bjVv9W41a3WgdWr1a/VqCDWhdWj1b/VodWj1bjWgNWu1b7VuNaC1bQg1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYW1lcmFEaXNhYmxlVHJhbnNtaXRMZWQiIG1zZ2lkPSI0NzY0NTg1NDY1NDgwMjk1MzQxIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INW21aHVrdWh1brVpdW9INW/1aXVstWh1aTWgNW+1aHVriDVsNWh1bTVodWv1aHWgNWj1aHVtdWr1bYg1a7WgNWh1aPWgNWr1bYg1aHVttW71aHVv9Wl1awg1obVuNW/1bjVrdaB1avVr9WrINaF1aPVv9Wh1aPVuNaA1a7VtNWh1bYgTEVEINaB1bjWgtaB1avVudWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJpY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI5NjEyOTIyMDU3NjQ0ODgzMDQiPiLVtNW31b/VodW61aXVvSDVodW21bvVodW/1aXVrCDVo9aA1aHVvdWh1azVq9Wv1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JyaWNrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODMzNzgxNzA5MzMyNjM3MDUzNyI+ItWo1bbVpNW01avVt9W/INWv1aHVvdWl1oHVttWl1awg1bDVpdW81aHVrdW41b3VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzM0ODE4ODA4MDAxNjk5NTMwIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWo1bbVpNW01avVt9W/INWh1bbVu9Wh1b/VpdWsINWh1bTVotW41bLVuyDVo9aA1aHVvdWh1azVq9Wv1ag6INWN1aEg1bfVodW/INW+1b/VodW21aPVodW+1bjWgCDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icmljayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3ODg5MDMyOTc2MjcyODMwOTkiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1ajVttWk1bTVq9W31b8g1aHVttW71aHVv9Wl1awg1aHVtNWi1bjVstW7INWw1aXVvNWh1a3VuNW91ag6INWN1aEg1bfVodW/INW+1b/VodW21aPVodW+1bjWgCDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQzNjYzNDk3MjU2MTc5NTAwMiI+ItW91b/Vq9W61aXVrCwg1bjWgCDVo9aA1aHVvdWh1azVq9Wv1agg1b7VpdaA1aHVotWl1bzVttW+1asiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4OTg1NjA4NzI0NjI2MzgyNDIiPiLVvdW/1avVutWl1awsINW41oAg1bDVpdW81aHVrdW41b3VqCDVvtWl1oDVodWi1aXVvNW21b7VqyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYm9vdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODE3MjA1NjE4MDA2MzcwMDc0MSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVvdW/1avVutWl1awsINW41oAg1aPWgNWh1b3VodWs1avVr9WoINW+1aXWgNWh1aLVpdW81bbVvtWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYm9vdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUzMjYwMDgxMjQyODk5ODk5NjkiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1b3Vv9Wr1brVpdWsLCDVuNaAINWw1aXVvNWh1a3VuNW91agg1b7VpdaA1aHVotWl1bzVttW+1as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjI5MjczNjE1Mzc5NDI1OTE4NDEiPiLVtNW41oLVv9aEINW41oLVttWl1bbVodWsIFVTQiDVr9aA1avVudWrINaG1aHVtdWs1aHVtdWr1bYg1bDVodW01aHVr9Wh1oDVoyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfdW5tb3VudF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ0MDIzMDUwNDk4OTA5NTM4MTAiPiLVtNW41oLVv9aEINW41oLVttWl1bbVodWsIFNEINaE1aHWgNW/1asg1obVodW11azVodW11avVtiDVsNWh1bTVodWv1aHWgNWjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW91bnRfdW5tb3VudF9maWxlc3lzdGVtcyIgbXNnaWQ9IjE4MjkyOTA3MDE2NTg5OTIzNDciPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1bTVq9Wh1oHVttWl1awg1ocg1aHVttW71aHVv9Wl1awg1bfVodaA1arVodWv1aHVtiDVr9aA1avVudW21aXWgNWrINaG1aHVtdWs1aHVtdWr1bYg1bDVodW01aHVr9Wh1oDVo9Wl1oDVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MjI3ODE5NTgyNjI0OTA0OTcyIj4i1bvVttW71aXVrCBVU0Ig1a/WgNWr1bnVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjYyNTgyNjk4NjM5Mjc0MDU2Ij4i1bvVttW71aXVrCBTRCDWhNWh1oDVv9WoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBtc2dpZD0iODc4NDI2ODI0Njc3OTE5ODYyNyI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWhtW41oDVtNWh1b/VodW+1bjWgNWl1awg1bfVodaA1arVodWv1aHVtiDVr9aA1avVudWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19hY2Nlc3MiIG1zZ2lkPSIzNDExMzM4NjMyMDAyMTkzODQ2Ij4i1b/VpdWy1aXVr9W41oLVqdW11bjWgtW21bbVpdaAINW91b/VodW21aHVrCDVttWl1oDWhNWr1bYg1brVodWw1bjWgdWrINW+1aXWgNWh1aLVpdaA1bXVodWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19hY2Nlc3MiIG1zZ2lkPSIzMDk0NTYzODQ0NTkzODc4NTQ4Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2wqDVvdW/1aHVttWh1awg1b/VpdWy1aXVr9W41oLVqdW11bjWgtW21bbVpdaAINW21aXWgNaE1avVtiDVutWh1bDVuNaB1asg1b7VpdaA1aHVotWl1oDVtdWh1aw6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX2NyZWF0ZSIgbXNnaWQ9IjY0MTQ3NTcyMzQ3ODkzMzYzMjciPiLVvdW/1aXVstWu1aXVrCDVttWl1oDWhNWr1bYg1brVodWw1bjWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfY3JlYXRlIiBtc2dpZD0iNDU1ODg2OTI3MzU4NTg1Njg3NiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVvdW/1aXVstWu1aXVrCDVttWl1oDWhNWr1bYg1brVodWw1bjWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjUyNjkyODMyODMwMTYxODAyMiI+ItW41bnVttW51aHWgdW21aXVrCDVttWl1oDWhNWr1bYg1brVodWw1bjWgdWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19kZXN0cm95IiBtc2dpZD0iNzIxODc0OTI4NjE0NTUyNjUzNyI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVuNW51bbVudWh1oHVttWl1awg1bbVpdaA1oTVq9W2INW61aHVsNW41oHVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfbW91bnRfdW5tb3VudCIgbXNnaWQ9Ijg4Nzc5OTgxMDE5NDQ5OTkzODYiPiLVtNWr1aHWgdW21aXVrCDVr9Wh1bQg1aHVttW71aHVv9Wl1awg1bbVpdaA1oTVq9W2INW61aHVsNW41oHVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfbW91bnRfdW5tb3VudCIgbXNnaWQ9IjM0NTEzNjAxMTQ5MDI0OTA5MjkiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1bTVq9Wh1oHVttWl1awv1aHVttW71aHVv9Wl1awg1bbVpdaA1oTVq9W2INW61aHVsNW41oHVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfcmVuYW1lIiBtc2dpZD0iNzQ5NjYzMzk1NDA4MDQ3MjQxNyI+ItW+1aXWgNWh1bbVvtWh1bbVpdWsINW21aXWgNaE1avVtiDVutWh1bDVuNaB1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX3JlbmFtZSIgbXNnaWQ9IjE3OTQ3NTc1ODg0NzIxMjc2NzUiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1b7VpdaA1aHVttW+1aHVttWl1awg1bbVpdaA1oTVq9W2INW61aHVsNW41oHVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3ZpYnJhdGUiIG1zZ2lkPSI3Njk2NDI3MDI2MDU3NzA1ODM0Ij4i1a/VodW81aHVvtWh1oDVpdWsINWp1oDVqdW81bjWgtW01agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY192aWJyYXRlIiBtc2dpZD0iNjI4NDk4OTI0NTkwMjMwMDk0NSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVr9Wh1bzVodW+1aHWgNWl1awg1anWgNWp1bzVuNaB1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mbGFzaGxpZ2h0IiBtc2dpZD0iMjE1NTkyMDgxMDEyMTk4NDIxNSI+ItWv1aHVvNWh1b7VodaA1aXVrCDVrNWh1brVv9Wl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZsYXNobGlnaHQiIG1zZ2lkPSI2NTIyMjg0Nzk0NTY4MzY4MzEwIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHVvNWh1b7VodaA1aXVrCDVrNWh1brVv9Wl1oDVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzYiIgbXNnaWQ9IjExMTM0NTM0MzA2NDU0MDI3MjMiPiLVr9Wh1bzVodW+1aHWgNWl1awg1bbVodWt1aHVutWh1b/VvtW41oLVqdW11bjWgtW21bbVpdaA1agg1ocg1anVuNaC1bXVrNW/1b7VuNaC1anVtdW41oLVttW21aXWgNWoIFVTQiDVvdWh1oDWhNWl1oDVqyDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNiIiBtc2dpZD0iNzc3NjE1NTQzMDIxODIzOTgzMyI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVr9Wh1bzVodW+1aHWgNWl1awg1bbVodWt1aHVvdWr1oDVuNaC1anVtdW41oLVttW21aXWgNW2INW41oIg1anVuNaC1bXVrNW/1b7VuNaC1anVtdW41oLVttW21aXWgNWoIFVTQiDVvdWh1oDWhNWl1oDVqyDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTXRwIiBtc2dpZD0iNDk1MzQ2ODY3Njc5NTkxNzA0MiI+ItWv1avWgNWh1bzVpdWsIE1UUCDVutaA1bjVv9W41a/VuNWs1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NNdHAiIG1zZ2lkPSI2NTMyOTYxMjAwNDg2NzkxNTcwIj4i1YTVuNaC1b/WhNWrINWw1bbVodaA1aHVvtW41oDVuNaC1anVtdW41oLVtiDVpyDVv9Wh1azVq9W9INW01avVu9W41oLVr9WrIE1UUCDVvdWh1oDWhNWh1b7VodaA1avVtsKgTVRQIFVTQiDVutaA1bjVv9W41a/VuNWs1agg1a/Vq9aA1aHVvNWl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9oYXJkd2FyZV90ZXN0IiBtc2dpZD0iNDE0ODI5MDg2MDQwMDY1OTE0NiI+ItaD1bjWgNWx1aHWgNWv1aXVrCDVvdWh1oDWhNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjY1OTc5NjQxOTEyMDgwMTY2MDUiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1a/VodW81aHVvtWh1oDVpdWsINW/1aHWgNWi1aXWgCDVodaA1b/VodaE1avVtiDVvdWh1oDWhNWh1b7VuNaA1bjWgtW01aXWgGAg1b3VodaA1oTVodW31aHWgNWrINaD1bjWgNWx1aHWgNWv1bTVodW2INW21brVodW/1aHVr9W41b46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWxsUGhvbmUiIG1zZ2lkPSIzOTI1ODM2MzQ3NjgxODQ3OTU0Ij4i1bjWgtWy1bLVodWv1avVuNaA1aXVtiDVptWh1bbVo9Wl1awg1bDVpdW81aHVrdW41b3VodWw1aHVtNWh1oDVttWl1oDVq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FsbFBob25lIiBtc2dpZD0iMzc0MDc5NzU3NjExMzc2MDgyNyI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVptWh1bbVo9Wl1awg1bDVpdW81aHVrdW41b3VodWw1aHVtNWh1oDVttWl1oDVq9W2INWh1bzVodW21oEg1bHVpdaAINW01avVu9Wh1bTVv9W41oLVqdW11aHVtjog1Y3VoSDVr9Wh1oDVuNWyINWnINWw1aHVttWj1aXWgdW21aXVrCDVodW21a/VodW21a3VodW/1aXVvdWl1azVqyDVo9Wh1bbVsdW41oLVtNW21aXWgNWrINWv1aHVtCDVptWh1bbVo9Wl1oDVqzog1YbVr9Wh1b/VqyDVuNaC1bbVpdaB1aXWhCwg1bjWgCDVvdWhINWp1bjWgtW11awg1bnVqyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWm1aHVttWj1aXVrCDVodaA1b/VodWv1aHWgNWjINWr1oDVodW+1avVs9Wh1a/VttWl1oDVqyDVsNWh1bTVodaA1bbVpdaA1avVtjog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2wqDVsdWl1oAg1bDVodW31b7Vq9aBINWm1aHVttWj1aXWgCDVr9Wh1b/VodaA1aXVrGAg1aHVvNWh1bbWgSDVsdWl1oAg1bDVodW91b/VodW/1bTVodW2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FsbFByaXZpbGVnZWQiIG1zZ2lkPSI0MTk4MzQ5MjExMTA4NDk3ODc5Ij4i1bjWgtWy1bLVodWv1avVuNaA1aXVtiDVptWh1bbVo9Wh1bDVodaA1aXVrCDVuNaA1ofVpyDVsNWl1bzVodWt1bjVvdWh1bDVodW01aHWgNWrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FsbFByaXZpbGVnZWQiIG1zZ2lkPSIxNjg5MDI0OTAxNTA5OTk2ODEwIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWm1aHVttWj1aXVrCDWgdWh1bbVr9Wh1oHVodWuINWw1aXVvNWh1a3VuNW91aHVsNWh1bTVodaA1assINWh1bXVpCDVqdW+1bjWgtW0YCDVodaA1b/VodWv1aHWgNWjINWr1oDVodW+1avVs9Wh1a/VttWl1oDVqyDVsNWh1bTVodaA1bbVpdaA1avVtmAg1aHVvNWh1bbWgSDVsdWl1oAg1bTVq9W71aHVtNW/1bjWgtWp1bXVodW2OiDVjtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bYg1a/VodW/1aHWgNWl1awg1aHVttaB1aHVttWv1aHVrNWrINaHINWh1bbWhdaA1avVttWh1a/VodW2INWm1aHVttWj1aXWgCDVodaA1b/VodWv1aHWgNWjINWr1oDVodW+1avVs9Wh1a/VttWl1oDVqyDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bbVttWl1oDVq9W2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQ4NDI1NzY5OTQxNDQ2MDQ4MjEiPiLVuNaC1bLVstWh1a/Vq9W41oDVpdW2INW91a/VvdWl1awgQ0RNQSDVo9aA1aHVvdWh1azVq9Wv1asg1a/VodWj1aHVvtW41oDVuNaC1bTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NjA0ODQ4MDk1MzE1NDIxNDI1Ij4i1bjWgtWy1bLVodWv1avVuNaA1aXVtiDVvdWv1b3VpdWsIENETUEg1bDVpdW81aHVrdW41b3VqyDVr9Wh1oDVo9Wh1b7VuNaA1bjWgtW01agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgbXNnaWQ9IjE5OTQxOTM1Mzg4MDIzMTQxODYiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1bTVpdWv1bbVodaA1a/VpdWsIENETUEt1asg1b/WgNWh1bTVodWk1oDVuNaC1bTVqDog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INWh1bbVv9Wl1bLVqyDVvdWv1b3VpdWsIENETUEt1asg1b/WgNWh1bTVodWk1oDVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9sb2NhdGlvblVwZGF0ZXMiIG1zZ2lkPSI3Nzg1NDA4MjUzMzY0MzM1NzQwIj4i1b7VpdaA1aHVsNW91a/VpdWsINW/1aXVstWh1bbWhNWrINWp1aHWgNW01aHWgdW01aHVtiDVrtWh1bbVuNaC1oHVuNaC1bTVttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2xvY2F0aW9uVXBkYXRlcyIgbXNnaWQ9IjExMjA3NDE1NTc4OTE0Mzg4NzYiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1bTVq9Wh1oHVttWl1awg1a/VodW0INWh1bbVu9Wh1b/VpdWsINW/1aXVstWh1bbWhNWrINWp1aHWgNW01aHWgdW01aHVtiDVrtWh1bbVuNaC1oHVuNaC1bTVttWl1oDVqCDVvNWh1aTVq9W41bXVq9aBOiDVjdW41b7VuNaA1aHVr9Wh1bYg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINaF1aPVv9Wh1aPVuNaA1a7VtNWh1bYg1bDVodW01aHWgCDVudWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI3ODU1MjU5NDYxMjY4NzM0OTE0Ij4i1bTVuNaC1b/WhCDVo9W41oDVrtWl1awg1aPWgNWh1bbWgdWh1bbVt9W01aHVtiDVr9Wh1oDVo9Wh1b7VuNaA1bjWgtW01bbVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI0MDI0NTI2OTY4NjMwMTk0MTI4Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHWgNWk1aHVrC/Vo9aA1aXVrCDVo9aA1aHVttaB1aHVttW31bTVodW2INWu1aHVvNWh1bXVuNaC1anVtdWh1bYg1a/VuNWy1bTVq9aBINW+1aXWgNWi1aXVvNW21b7VodWuINWw1aHVv9Wv1bjWgtWp1bXVuNaC1bbVttWl1oDVqyDVtNW41oLVv9aE1ag6INWN1bjVvtW41oDVodWv1aHVtiDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1oXVo9W/1aHVo9W41oDVrtW01aHVtiDVsNWh1bTVodaAINW51ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kR2FkZ2V0IiBtc2dpZD0iNzc2OTA1MzM5MDE1ODYzNDcxIj4i1ajVttW/1oDVpdWsINW+1avVu9Wl1anVttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kR2FkZ2V0IiBtc2dpZD0iODI2MTMyNjkzODU5OTA0OTI5MCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVqdWl1azVodWk1oDVpdWsINWw1aHVtNWh1a/VodaA1aPVq9W2LCDVqdWlINW41oAg1b7Vq9W71aXVqdW21aXWgNWoINW41oAg1bDVodW+1aXVrNW+1aHVrtWrINW01avVu9W41oHVuNW+INWnINWw1bbVodaA1aHVvtW41oAg1oXVo9W/1aHVo9W41oDVrtWl1aw6INSx1bXVvSDVqdW41oLVtdWs1b/VvtW41oLVqdW11aHVtNWiINWw1aHVvtWl1azVvtWh1a7VqCDVr9Wh1oDVuNWyINWnINWh1bXVrCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1avVtiDVtNW41oLVv9aEINW/1aHVrCDVpNWl1brVqyDVodW21bHVttWh1a/VodW2INW/1b7VtdWh1azVttWl1oA6INWN1bjVvtW41oDVodWv1aHVtiDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1oXVo9W/1aHVo9W41oDVrtW01aHVtiDVsNWh1bTVodaAINW51ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlQaG9uZVN0YXRlIiBtc2dpZD0iODQyMzkyMzc3NzY1OTI5MjIyOCI+ItaD1bjWg9W41a3VpdWsINWw1aXVvNWh1a3VuNW91asg1a/VodaA1aPVodW+1avVs9Wh1a/VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeVBob25lU3RhdGUiIG1zZ2lkPSIxMDI5ODc3NTI5MDA3Njg2NzMyIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHVvNWh1b7VodaA1aXVrCDVvdWh1oDWhNWrINWw1aXVvNWh1a3VuNW91aHVtdWr1bYg1aPVuNaA1a7Vq9aE1bbVpdaA1ag6INSx1bXVvSDVqdW41oLVtdWs1b/VvtW41oLVqdW11aHVtNWiINWw1aHVvtWl1azVvtWh1a7VqCDVr9Wh1oDVuNWyINWnINaD1bjVrdWh1oDVr9Wl1awg1oHVodW21oHVpdaA1agsINW01avVodaB1bbVpdWs1ocg1aHVttW71aHVv9Wl1awg1bDVpdW81aHVrdW41b3VqyDVvNWh1aTVq9W41bYg1ocg1bbVtNWh1bYg1aHVtdWsINWi1aHVttWl1oBgINWh1bzVodW21oEg1bHVpdWmINWl1oDVotaH1acg1b/VpdWy1aXVr9Wh1oHVttWl1azVuNaCOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFBob25lU3RhdGUiIG1zZ2lkPSI5MTc4MjI4NTI0NTA3NjEwNDg2Ij4i1a/VodaA1aTVodWsINWw1aXVvNWh1a3VuNW91asg1a/VodaA1aPVodW+1avVs9Wh1a/VqCDWhyDVq9W21oTVttW41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkUGhvbmVTdGF0ZSIgbXNnaWQ9IjE2MzkyMTI3NzE4MjYxMjU1MjgiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oXVo9W/1aHVo9W41oDVrtWl1awg1b3VodaA1oTVqyDVsNWl1bzVodWt1bjVvdWh1bXVq9W2INWj1bjWgNWu1avWhNW21aXWgNWoOiDUsdW11b0g1anVuNaC1bXVrNW/1b7VuNaC1anVtdW41oLVttWoINWw1aHVvtWl1azVvtWh1a7Vq9W2INWw1bbVodaA1aHVvtW41oDVuNaC1anVtdW41oLVtiDVpyDVv9Wh1azVq9W9INW41oDVuNW31aXVrCDVsNWl1bzVodWt1bjVvdWh1bDVodW01aHWgNWoINaHINW91aHWgNaE1asgSUQt1bbVpdaA1agsINWh1oDVpNW11bjWhCDVptWh1bbVo9WoINWh1a/Vv9Wr1b4g1acg1ocg1bTVq9Wh1oHVvtWh1a4g1abVodW21aPVqyDVsNWl1bzVodWv1aEg1bDVpdW81aHVrdW41b3VodWw1aHVtNWh1oDVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dha2VMb2NrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTMxNzMxNDM1MDExNDk1MDE1Ij4i1abVpdaA1a4g1brVodWw1aXVrCDVo9aA1aHVvdWh1azVq9Wv1agg1oTVttWl1azVuNaC1oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dha2VMb2NrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTczNDgwMTg3OTQxNDk2MTMwIj4i1a/VodW21a3VpdWsINWw1aXVvNWh1a3VuNW91asg1oTVttWrINW81aXVqtWr1bTVq9W2INWh1bbWgdW21aXVrNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd2FrZUxvY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjczMTEzMTk4MjQ0MDA0NDc4NjgiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1a/VodW21a3VpdWsINWj1oDVodW91aHVrNWr1a/Vq2Ag1oTVttWrINW81aXVqtWr1bTVq9W2INWh1bbWgdW21aXVrNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dha2VMb2NrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODU1OTEwMDY3NzM3MjkyODc1NCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVr9Wh1bbVrdWl1awg1bDVpdW81aHVrdW41b3Vq2Ag1oTVttWrINW81aXVqtWr1bTVq9W2INWh1bbWgdW21aXVrNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI3ODcwMzQ3MjI2MTYzNTA0MTciPiLVo9aA1aHVvdWh1azVq9Wv1agg1bTVq9Wh1oHVttWl1awg1a/VodW0INWh1bbVu9Wh1b/VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZXZpY2VQb3dlciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ5Mjg2MjI0NzA5ODA5NDMyMDYiPiLVsNWl1bzVodWt1bjVvdWoINW01avVodaB1bbVpdWsINWv1aHVtCDVodW21bvVodW/1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RldmljZVBvd2VyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2Njg5ODYyODc4OTg0NjMxODMxIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW01avVodaB1bbVpdWsINWv1aHVtCDVodW21bvVodW/1aXVrCDVo9aA1aHVvdWh1azVq9Wv1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2MDM3MDU3MzQ4NDYzMTMxMDMyIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW01avVodaB1bbVpdWsINWv1aHVtCDVodW21bvVodW/1aXVrCDVsNWl1bzVodWt1bjVvdWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZmFjdG9yeVRlc3QiIG1zZ2lkPSIzNzE1MjI1NDkyNjk2NDE2MTg3Ij4i1aHVt9Wt1aHVv9Wl1awg1aPVuNaA1a7VodaA1aHVttWh1bXVq9W2INaD1bjWgNWx1bbVodWv1aHVtiDVvNWl1arVq9W01bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM5NTIwNTkzMTgzNTk2NTMwOTEiPiLUsdW31a3VodW/1aXWgdW21aXVrCDVuNaA1brVpdW9INWh1oDVv9Wh1aTWgNW41bLVqyDWgdWh1a7WgCDVtNWh1a/VodaA1aTVodWv1asg1oPVuNaA1bHVodaA1a/VuNaC1bRgINWp1bjWgtW11azVodW/1oDVpdWs1bjVviDVo9aA1aHVvdWh1azVq9Wv1asg1b3VodaA1oTVq9W2INWs1avVodaA1arVpdaEINW01bjWgtW/1oQ6INWA1aHVvdWh1bbVpdWs1asg1acg1bTVq9Wh1bXVtiDVodW11bYg1arVodW01aHVttWh1a8sINWl1oDVoiDVo9aA1aHVvdWh1azVq9Wv1agg1aHVt9Wt1aHVv9W41oLVtCDVpyDVodaA1b/VodWk1oDVuNWy1asg1oPVuNaA1bHVttWh1a/VodW2INW81aXVqtWr1bTVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MTM2NjQ0OTkwMzE5MjQ0ODAyIj4i1LHVt9Wt1aHVv9Wl1oHVttWl1awg1bjWgNW61aXVvSDVodaA1b/VodWk1oDVuNWy1asg1oHVodWu1oAg1bTVodWv1aHWgNWk1aHVr9WrINaD1bjWgNWx1aHWgNWv1bjWgtW0YCDVqdW41oLVtdWs1aHVv9aA1aXVrNW41b7CoNWs1avVodaA1arVpdaEINW01bjWgtW/1oQg1bDVpdW81aHVrdW41b3VqyDVvdWh1oDWhNWh1bfVodaA1avVtjog1YDVodW91aHVttWl1azVqyDVpyDVtNWr1aHVtdW2INWh1bXVtiDVqtWh1bTVodW21aHVrywg1aXWgNWiINWw1aXVvNWh1a3VuNW91bYg1aHVt9Wt1aHVv9W41oLVtCDVpyDVodaA1b/VodWk1oDVuNWy1asg1oPVuNaA1bHVttWh1a/VodW2INW81aXVqtWr1bTVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRXYWxscGFwZXIiIG1zZ2lkPSI2NjI3MTkyMzMzMzczNDY1MTQzIj4i1aTVttWl1awg1brVodW91b/VodW8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0V2FsbHBhcGVyIiBtc2dpZD0iNzM3MzQ0NzkyMDk3NzYyNDc0NSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVv9Wl1bLVodWk1oDVpdWsINWw1aHVtNWh1a/VodaA1aPVqyDVutWh1b3Vv9Wh1bzVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFdhbGxwYXBlckhpbnRzIiBtc2dpZD0iMzI3ODYwODE2NTk3NzczNjUzOCI+ItWv1aHWgNWj1aHVotWl1oDVpdWsINWx1aXWgCDVutWh1b3Vv9Wh1bzVqyDVudWh1oPVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRXYWxscGFwZXJIaW50cyIgbXNnaWQ9IjgyMzU3ODQzODQyMjM3MzAwOTEiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1b/VpdWy1aHVpNaA1aXVrCDVsNWh1bTVodWv1aHWgNWj1asg1brVodW91b/VodW81asg1bnVodaD1asg1bDVuNaC1bfVuNaC1bTVttWl1oDVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hc3RlckNsZWFyIiBtc2dpZD0iMjMxNTc1MDQyMzEzOTY5NzM5NyI+ItW+1aXWgNWh1a/VodW11aXVrCDVsNWh1bTVodWv1aHWgNWj1agg1aPVuNaA1a7VodaA1aHVttWh1bXVq9W2INWs1bzVpdWs1bXVodW11bbVqyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hc3RlckNsZWFyIiBtc2dpZD0iMzY2NTM4MDQ5MjYzMzkxMDIyNiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVodW01aLVuNWy1bvVuNaC1anVtdWh1bTVoiDVvtWl1oDVodWv1aHVtdWl1awg1bDVodW01aHVr9Wh1oDVo9WoINWr1oAg1aPVuNaA1a7VodaA1aHVttWh1bXVq9W2INWv1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oDVq9W2YCDVu9W21bvVpdWs1bjVviDVotW41azVuNaAINW/1b7VtdWh1azVttWl1oDVqCwg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgNWoINaHINW/1aXVstWh1aTWgNW+1aHVriDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRUaW1lIiBtc2dpZD0iMjAyMTYxNDgyOTU5MTc3NTY0NiI+ItWv1aHWgNWj1aHVvtW41oDVpdWsINWq1aHVtNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTg5NjM0MTQzODE1MTE1Mjg4MSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWg9W41a3VpdWsINWj1oDVodW91aHVrNWr1a/VqyDVqtWh1bTVodaB1bjWgtW11oHVqyDVqtWh1bTVodW21aHVr9WoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODU1NzAyNzMwNzM4MDIwIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaD1bjVrdWl1awg1bDVpdW81aHVrdW41b3VqyDVqtWh1bTVodaB1bjWgtW11oHVqyDVqtWh1bTVodW21aHVr9WoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0VGltZVpvbmUiIG1zZ2lkPSIyOTQ1MDc5ODAxMDEzMDc3MzQwIj4i1a/VodaA1aPVodW+1bjWgNWl1awg1arVodW01aHVtdWr1bYg1aPVuNW/1avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNjc2OTgzNzEyMzE1ODI3NjQ1Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaD1bjVrdWl1awg1aPWgNWh1b3VodWs1avVr9WrINWq1aHVtNWh1bXVq9W2INWj1bjVv9Wr1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZVpvbmUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDk5OTQzNDg4NDM2NjMzMzk4Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaD1bjVrdWl1awg1bDVpdW81aHVrdW41b3VqyDVqtWh1bTVodW11avVtiDVo9W41b/Vq9W2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjb3VudE1hbmFnZXJTZXJ2aWNlIiBtc2dpZD0iNDgyOTI2MjM0OTY5MTM4Njk4NiI+ItWj1bjWgNWu1aXVrCDVuNaA1brVpdW9INWA1aHVt9W+1asg1a/VodW81aHVvtWh1oDVq9W5INWu1aHVvNWh1bXVuNaC1anVtdW41oLVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjE5NDg0NTU1NTIzMzM2MTU5NTQiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1abVodW21aPVpdWsINWA1aHVt9W+1asg1avVvdWv1bjWgNW41bfVq9W51bbVpdaA1avVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldEFjY291bnRzIiBtc2dpZD0iMTA4Njc5NTQ2Nzc2MDEyMjExNCI+ItWj1b/VttWl1awg1bDVodW31avVvtW21aXWgCDVvdWh1oDWhNW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNzQxNDk2NTM0NzY5NjYwMDI3Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW91b/VodW21aHVrCDVo9aA1aHVvdWh1azVq9Wv1asg1a/VuNWy1bTVq9aBINWz1aHVttWh1bnVvtWh1a4g1bDVodW31avVvtW21aXWgNWrINaB1aHVttWv1ag6INWN1aEg1a/VodaA1bjVsiDVpyDVttWl1oDVodW81aXVrCDWgdWh1bbVr9Wh1oHVodWuINWw1aHVt9Wr1b4sINW41oAg1b3Vv9Wl1bLVrtW+1aXVrCDVpyDVsdWl1oAg1b/VpdWy1aHVpNaA1aHVriDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1a/VuNWy1bTVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ0ODMxNjgyMjQ1MTgwNzM4MiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVvdW/1aHVttWh1awg1bDVpdW81aHVrdW41b3VqyDVr9W41bLVtNWr1oEg1bPVodW21aHVudW+1aHVriDVsNWh1bfVq9W+1bbVpdaA1asg1oHVodW21a/VqDog1Y3VoSDVr9Wh1oDVuNWyINWnINW21aXWgNWh1bzVpdWsINaB1aHVttWv1aHWgdWh1a4g1bDVodW31avVviwg1bjWgCDVvdW/1aXVstWu1b7VpdWsINWnINWx1aXWgCDVv9Wl1bLVodWk1oDVodWuINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVr9W41bLVtNWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hdXRoZW50aWNhdGVBY2NvdW50cyIgbXNnaWQ9IjUyNjU5MDg0ODExNzI3MzY5MzMiPiLVvdW/1aXVstWu1aXVrCDVsNWh1bfVq9W+1bbVpdaAINaHINWk1bbVpdWsINWj1aHVstW/1bbVodWi1aHVvNWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hdXRoZW50aWNhdGVBY2NvdW50cyIgbXNnaWQ9IjU0NzIxMjQyOTY5MDg5NzcyNjAiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oXVo9W/1aHVo9W41oDVrtWl1azCoNWw1aHVt9W+1asg1a/VodW81aHVvtWh1oDVudWrINW21bjWgtW11bbVodWv1aHVttWh1oHVttW41bIg1bDVttWh1oDVodW+1bjWgNW41oLVqdW11bjWgtW21bbVpdaA1agsINWr1bbVudW61aXVvSDVttWh1ocg1b3Vv9Wl1bLVrtWl1awg1bDVodW31avVvtW21aXWgCwg1b3Vv9Wh1bbVodWsINaHINWv1aHWgNWj1aHVvtW41oDVpdWsINWk1oDVodW21oEg1aPVodWy1b/VttWh1aLVodW81aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI0OTgzMTI2MzA0NzU3MTc3MzA1Ij4i1aHVvtWl1azVodaB1bbVpdWsINWv1aHVtCDVsNWl1bzVodaB1bbVpdWsINWw1aHVt9Wr1b7VttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBY2NvdW50cyIgbXNnaWQ9Ijg2OTgyOTU2MjU0ODgyOTI1MDYiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1avWgNWh1a/VodW21aHWgdW21aXVrCDVo9W41oDVrtW41bLVuNaC1anVtdW41oLVttW21aXWgCwg1avVttW51brVq9W91avWhCDVpdW2YCDVodW+1aXVrNWh1oHVttWl1awg1ocg1bDVpdW81aHWgdW21aXVrCDVsNWh1bfVq9W+1bbVpdaAINaHINW71bbVu9Wl1awg1aTWgNWh1bbWgSDVo9Wh1bLVv9W21aHVotWh1bzVpdaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91c2VDcmVkZW50aWFscyIgbXNnaWQ9IjIzNTQ4MTM5NjE2Mzg3NzY0MiI+ItaF1aPVv9Wh1aPVuNaA1a7VpdWsINW91aHWgNaE1asg1bDVodW31avVvtW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXNlQ3JlZGVudGlhbHMiIG1zZ2lkPSI3OTg0MjI3MTQ3NDAzMzQ2NDIyIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWw1aHVtdaB1aXVrCDVttW41oLVtdW21aHVr9Wh1bbVodaB1bTVodW2INW21bfVodW21bbVpdaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTmV0d29ya1N0YXRlIiBtc2dpZD0iNDk1MTAyNzk2NDM0ODk3NDc3MyI+ItWk1avVv9Wl1awg1oHVodW21oHVodW11avVtiDVtNWr1aHWgdW41oLVtNW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTmV0d29ya1N0YXRlIiBtc2dpZD0iODMxODk2NDQyNDY3NTk2MDk3NSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVv9Wl1b3VttWl1awg1oHVodW21oHVodW11avVtiDVr9Wh1brVpdaA1asg1bTVodW91avVtiDVv9Wl1bLVpdWv1bjWgtWp1bXVuNaC1bbVttWl1oAsINWr1bbVudW61aXVvSDWhdaA1avVttWh1a8sINWp1aUg1avVttW5INWv1aHVutWl1oAg1a/VodW2INaHINW41oDVuNW21oQg1aXVtiDVtNWr1aHWgdW+1aHVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iODAxODc1ODEzNjQwNDMyMzY1OCI+ItWs1oDVq9W+INaB1aHVttaB1aHVtdWr1bYg1bTVuNaC1b/WhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iMzQwMzA2MjE4Nzc3OTcyNDE4NSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVvdW/1aXVstWu1aXVrCDWgdWh1bbWgdWh1bXVq9W2INWi1bbVq9Wv1bbVpdaAINaHINaF1aPVv9Wh1aPVuNaA1a7VpdWsINWw1aHVv9W41oLVryDWgdWh1bbWgdWh1bXVq9W2INW61oDVuNW/1bjVr9W41azVttWl1oA6INS21bbVttWh1oDVr9Wr1bnVqCDWhyDVodW11awg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWowqDVtNWr1bvVuNaB1bbVpdaAINWl1bYg1b/WgNWh1bTVodWk1oDVuNaC1bQg1avVttW/1aXWgNW21aXVv9Wr1bYg1b/VvtW11aHVrNW21aXWgCDVuNaC1bLVodaA1a/VpdWs1bjWgiDVsNWh1bTVodaALCDVuNaC1b3Vv9WrINWh1bXVvSDVqdW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW21agg1bnVqyDVutWh1bDVodW21bvVvtW41oLVtMKg1avVttW/1aXWgNW21aXVv9Wr1bYg1b/VvtW11aHVrNW21aXWgCDVuNaC1bLVodaA1a/VpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVBcG5TZXR0aW5ncyIgbXNnaWQ9IjUwNTY2MDE1OTY3NTc1MTg5NiI+ItaD1bjVrdWl1awv1a/VodW91aXWgdW21aXVrCDWgdWh1bbWgdWh1bXVq9W2INWv1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oDVqCDWhyDVt9Wh1oDVqtWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVBcG5TZXR0aW5ncyIgbXNnaWQ9IjUzMzM3OTg4ODY0MTI3MTQxOTMiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oPVuNWt1aXVrCDWgdWh1bbWgdWh1bXVq9W2INWv1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oDVqCDWhyDVr9Wh1b3VpdaB1bbVpdWsINW41oIg1b3Vv9W41oLVo9Wl1awg1aHVtNWi1bjVstW7INaB1aHVttaB1aHVtdWr1bYg1bfVodaA1arVqCwg1oXWgNWr1bbVodWvYCDWg9W41a3VpdWsINaB1aHVttWv1aHWgdWh1a4gQVBOLdWrINW61oDVuNaE1b3Vq9W2INaHINW01avVodaB1oTVqDog1Y7VttWh1b3VodaA1aHWgCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1agg1a/VodaA1bjVsiDVpdW2INWw1aXVv9aH1aXVrCwg1b7VpdaA1aHVsNWh1b3WgdWl1aHVvtW41oDVpdWsINWv1aHVtCDWg9W41oPVuNWt1aXVrCDWgdWh1bbWgdWh1bXVq9W2INaD1aHVqdWl1anVttWl1oDVqGAg1aHVvNWh1bbWgSDVsdWl1oAg1avVtNWh1oHVuNaC1anVtdWh1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VOZXR3b3JrU3RhdGUiIG1zZ2lkPSI5NTg4ODQyOTE0NTQzMjczMDkiPiLWg9W41a3VpdWsINaB1aHVttaB1asg1a/VodW61agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VOZXR3b3JrU3RhdGUiIG1zZ2lkPSI2Nzg5MTIzOTEyNDc2NDE2MjE0Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaD1bjVrdWl1awg1oHVodW21oHVqyDVtNWr1aHWgdW01aHVtiDVr9Wh1oDVo9Wh1b7Vq9Wz1aHVr9WoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlVGV0aGVyU3RhdGUiIG1zZ2lkPSI1OTUyNTg0OTY0MzczMDE3OTYwIj4i1oPVuNWt1aXVrCDVtNWr1aHWgdW+1aHVriDVr9Wh1brVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVRldGhlclN0YXRlIiBtc2dpZD0iMTUyNDQ0MTM0NDQxMjMxOTc4MCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWg9W41a3VpdWsINWv1aHVutW+1aHVriDWgdWh1bbWgdWrINW01avVodaB1bTVodW2INWv1aHWgNWj1aHVvtWr1bPVodWv1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSIxNDAwNjY2MDEyNjcxNjQ4NzQxIj4i1oPVuNWt1aXVrCDWhtW41bbVodW11avVtiDVv9W+1bXVodWs1bbVpdaA1asg1oXVo9W/1aHVo9W41oDVrtW01aHVtiDVr9Wh1oDVo9Wh1b7VuNaA1bjWgtW01agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSI1MzQ3NzI5NTc4NDY4NzQ0Mzc5Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaD1bjVrdWl1awg1obVuNW21aHVtdWr1bYg1b/VvtW11aHVrNW21aXWgNWrINaF1aPVv9Wh1aPVuNaA1a7VtNWh1bYg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2lmaVN0YXRlIiBtc2dpZD0iNTIwMjAxMjk0OTI0NzA0MDAxMSI+ItWk1avVv9Wl1awgV2ktRmkg1a/VodW61aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzV2lmaVN0YXRlIiBtc2dpZD0iNTAwMjc5ODA3NzM4NzgwMzcyNiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVv9Wl1b3VttWl1awgV2ktRmkg1oHVodW21oHVqyDVv9Wl1bLVpdWv1bjWgtWp1bXVuNaC1bbVttWl1oAsINWr1bbVudW61aXVvSDWhdaA1avVttWh1a9gINWh1oDVpNW11bjWhCBXaS1GaS3VqCDVtNWr1aHWgdW+1aHVriDVpywg1anVpWAg1bjVuSwg1ocg1bTVq9Wh1oHVvtWh1a4gV2ktRmkg1b3VodaA1oTVqyDVodW21bjWgtW21ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI2NTUwNjQxMTg4NzQ5MTI4MDM1Ij4i1bTVq9Wh1bbVodWsIFdpLUZpLdWr1bYg1ocg1aHVttW71aHVv9W+1aXVrCDVpNaA1aHVttWr1oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI3MTM3OTUwMjk3Mzg2MTI3NTMzIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW01avVodW21aHVrCBXaS1GaSDVtNW41oLVv9aE1asg1a/VpdW/1aXWgNWr1bYg1ocg1aHVttW71aHVv9W+1aXVrCDVodW11aQg1a/VpdW/1aXWgNWr1oEsINWr1bbVudW61aXVvSDVttWh1ocg1a/VodW/1aHWgNWl1awg1b3VodaA1oTVqyDVr9Wh1oDVo9Wh1b7VuNaA1bTVodW2INaD1bjWg9W41a3VuNaC1anVtdW41oLVttW21aXWgCBXaS1GaSDWgdWh1bbWgdWl1oDVqyDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBtc2dpZD0iMTM2ODI1Mzg3MTQ4MzI1NDc4NCI+ItWp1bjWgtW11azVodW/1oDVpdWsINSy1aHVptW01aHVvdaD1bXVuNaC1bwgV2ktRmkt1asg1ajVttWk1bjWgtW21bjWgtW01agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijc5Njk3NzQwMjEyNTYzMzY1NDgiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1b3Vv9Wh1bbVodWsIFdpLUZpINaB1aHVttaB1asg1aLVuNWs1bjWgCDVvdWh1oDWhNWl1oDVq9W2INW41oLVstWh1oDVr9W+1aHVriDWg9Wh1anVpdWp1bbVpdaA1ahgINaF1aPVv9Wh1aPVuNaA1a7VpdWs1bjVviDVuNW5INW01avVodW11bYg1bHVpdaAINWj1oDVodW91aHVrNWr1a/VqCwg1aHVtdWsINW21aHWhyDVotWh1abVtNWh1b3Wg9W11bjWgtW8INWw1aHVvdaB1aXVttWl1oDVqDog1LHVtdW2INaF1aPVv9Wh1aPVuNaA1a7VuNaC1bQg1acg1aHVvtWl1azVqyDVt9Wh1b8g1azVq9aB1oQsINaE1aHVtiDVuNW5INWi1aHVptW01aHVvdaD1bXVuNaC1bwg1bzVpdWq1avVtNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTE5NDk3MDYwMjUzNDk5MjYiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1b3Vv9Wh1bbVodWswqBXaS1GaSDWgdWh1bbWgdWrwqDVotW41azVuNaAINW91aHWgNaE1aXWgNWr1bYg1bjWgtWy1aHWgNWv1b7VodWuINaD1aHVqdWl1anVttWl1oDVqGAg1oXVo9W/1aHVo9W41oDVrtWl1azVuNW+wqDVuNW5INW01avVodW11bYg1bHVpdaAINWw1aXVvNWh1a3VuNW91agsINWh1bXVrCDVttWh1ocg1aLVodWm1bTVodW91oPVtdW41oLVvCDVsNWh1b3WgdWl1bbVpdaA1ag6INSx1bXVtsKg1oXVo9W/1aHVo9W41oDVrtW41oLVtCDVpyDVodW+1aXVrNWrINW31aHVvyDVrNWr1oHWhCwg1oTVodW2INW41bkg1aLVodWm1bTVodW91oPVtdW41oLVvCDVvNWl1arVq9W01ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGhBZG1pbiIgbXNnaWQ9IjYwMDY5NjczNzM5MzU5MjY2NTkiPiLVtNW41oLVv9aEINWj1bjWgNWu1aXVrCBCbHVldG9vdGgt1asg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aEFkbWluIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2OTIxMTc3NDcxNzQ4ODgyMTM3Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHWgNWj1aHVvtW41oDVpdWsINW/1aXVstWh1bXVq9W2IEJsdWV0b290aCDVo9aA1aHVvdWh1azVq9Wv1agg1ocg1bDVodW11b/VttWh1aLVpdaA1aXVrCDVuNaCINWm1bjWgtWj1aHVr9aB1b7VpdWsINWw1aXVvNWh1a/VoSDVvdWh1oDWhNWl1oDVqyDVsNWl1b86Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4OTMxNjgyMTU5MzMxNTQyMTM3Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHWgNWj1aHVvtW41oDVpdWsINW/1aXVstWh1bXVq9W2IEJsdWV0b290aCDVsNWl1bzVodWt1bjVvdWoINaHINWw1aHVtdW/1bbVodWi1aXWgNWl1awg1bjWgiDVptW41oLVo9Wh1a/WgdW+1aXVrCDVsNWl1bzVodWv1aEg1b3VodaA1oTVpdaA1asg1bDVpdW/OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2ltYXhTdGF0ZSIgbXNnaWQ9IjQxOTU5MDcwMTA2MTAyMDU3MDMiPiLVtNWr1aHVttWh1awgV2lNQVgt1avVtiDWhyDVodW21bvVodW/1b7VpdWsINWk1oDVodW21avWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1dpbWF4U3RhdGUiIG1zZ2lkPSI2MzYwMTAyODc3MjYxOTc4ODg3Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW61aHWgNWm1aXVrCwg1aHWgNWk1bXVuNaEIFdpTUFYLdWoINW01avVodaB1b7VodWuINWnINaHINaB1aHVttWv1aHWgdWh1a4g1bTVq9Wh1oHVvtWh1a4gV2lNQVgg1oHVodW21oHVqyDVtNWh1b3Vq9W2INW/1aXVstWl1a/VuNaC1anVtdW41oLVttW21aXWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVdpbWF4U3RhdGUiIG1zZ2lkPSIyNDA1MDQyMjY3MTMxNDk2NTc5Ij4i1ZPVuNWt1aXVrCBXaU1BWC3VqyDVr9Wh1oDVo9Wh1b7Vq9Wz1aHVr9WoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2ltYXhTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzE1NjQ1NjUwNDA4NDIwMTgwNSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVo9aA1aHVvdWh1azVq9Wv1agg1bTVq9Wh1oHVttWl1awgV2lNQVgg1oHVodW21oHVq9W2INaHINWh1bbVu9Wh1b/VvtWl1awg1aHVtdWkINaB1aHVttaB1avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaW1heFN0YXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjk3MDI1MDQzMDA0OTIzNzk4Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWw1aXVvNWh1a3VuNW91agg1bTVq9Wh1oHVttWl1awgV2lNQVgg1oHVodW21oHVq9W2INaHINWh1bbVu9Wh1b/VpdWsINWh1bXVpCDWgdWh1bbWgdWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGgiIG1zZ2lkPSI2MTI3NzY5MzM2MzM5Mjc2ODI4Ij4i1abVuNaC1aPVodWv1oHVvtWl1awgQmx1ZXRvb3RoINW91aHWgNaE1aXWgNWrINWw1aXVvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQ4MDcyMjE4MTg1MjQzODYyOCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVv9Wl1b3VttWl1awgQmx1ZXRvb3RoLdWrINWv1aHWgNWj1aHVvtW41oDVuNaC1bTVqCDVo9aA1aHVvdWh1azVq9Wv1asg1b7WgNWhINaHINWv1aHVutW+1aXVrCDVuNaCINWv1aHVutWl1oAg1ajVttWk1bjWgtW21aXVrCDVptW41oLVo9Wh1a/WgdW+1aHVriDVvdWh1oDWhNWl1oDVqyDVsNWl1b86Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzIwNzEwNjMyNDQ1MjMxMjczOSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVv9Wl1b3VttWl1awgQmx1ZXRvb3RoLdWrINWv1aHWgNWj1aHVvtW41oDVuNaC1bTVqCDVsNWl1bzVodWt1bjVvdWrINW+1oDVoSDWhyDVr9Wh1brVvtWl1awg1bjWgiDVr9Wh1brVpdaAINWo1bbVpNW41oLVttWl1awg1abVuNaC1aPVodWv1oHVvtWh1a4g1b3VodaA1oTVpdaA1asg1bDVpdW/OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbmZjIiBtc2dpZD0iNDQyMzM1MTI3NDc1Nzg3Njk1MyI+ItW+1aXWgNWh1bDVvdWv1aXVrCDVhNW41b8g1Y/VodaA1aHVrtW41oLVqdW11aHVtNWiINWA1aHVstW41oDVpNWh1a/WgdW41oLVtNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbmZjIiBtc2dpZD0iNzEyMDYxMTgxOTQwMTc4OTkwNyI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVsNWh1bLVuNaA1aTVodWv1oHVvtWl1awg1YTVuNW/INW/1aHWgNWh1a7VuNaC1anVtdWh1bTVoiDVsNWh1bLVuNaA1aTVodWv1oHVtNWh1bYgKE5GQykg1brVq9W/1aHVr9W21aXWgNWrLCDWhNWh1oDVv9Wl1oDVqyDWhyDVqNW21anVpdaA1oHVq9W51bbVpdaA1asg1bDVpdW/OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGlzYWJsZUtleWd1YXJkIiBtc2dpZD0iMzU5ODQ5NjMwMTQ4NjQzOTI1OCI+ItWh1bbVu9Wh1b/VpdWsINWx1aXWgCDVp9Wv1oDVodW21asg1a/VuNWy1brVpdaE1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kaXNhYmxlS2V5Z3VhcmQiIG1zZ2lkPSI2MDM0MjAzMDY1MDc3MTIyOTkyIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWh1bbVu9Wh1b/VpdWsINW91b/VpdWy1bbVodW31aHWgNWrINWv1bjVstW61bjWgtW01agg1ocg1oHVodW21a/VodaB1aHVriDVsNWh1bTVodWv1oHVvtWh1a4g1aPVodWy1b/VttWh1aLVodW81asg1brVodW31b/VutWh1bbVvtWh1a7VuNaC1anVtdW41oLVttWoOiDVjdaA1aEg1bPVq9W31b8g1oXWgNWr1bbVodWv1bYg1acsINWl1oDVoiDVsNWl1bzVodWt1bjVvdWoINWh1bbVu9Wh1b/VuNaC1bQg1acg1b3Vv9Wl1bLVttWh1bfVodaA1asg1a/VuNWy1brVuNaC1bTVqCDVtNW41oLVv9aE1aHVtdWr1bYg1abVodW21aMg1b3Vv9Wh1bbVodWs1avVvSwg1bDVpdW/1bgg1aHVtdW2INWv1oDVr9Wr1bYg1bTVq9Wh1oHVttW41oLVtCDVpywg1aXWgNWiINWm1aHVttWj1agg1aHVvtWh1oDVv9W+1bjWgtW0INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFN5bmNTZXR0aW5ncyIgbXNnaWQ9IjYyMDE4MTAwMDgyMzA1MDMwNTIiPiLVr9Wh1oDVpNWh1awg1bDVodW01aHVqtWh1bTVpdaB1bTVodW2INWv1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTeW5jU2V0dGluZ3MiIG1zZ2lkPSIyNzA2NzQ1Njc0NTY5Njc4NjQ0Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHWgNWk1aHVrCDVsNWh1bTVodWq1aHVtNWl1oHVtNWh1bYg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgNWoINWw1aHVt9W+1asg1bDVodW01aHWgDog1ZXWgNWr1bbVodWvYCDVodW11bYg1a/VodaA1bjVsiDVpyDVuNaA1bjVt9Wl1awsINWh1oDVpNW11bjWhCDVhNWh1oDVpNWr1a8g1bDVodW+1aXVrNW+1aHVrtWoINWw1aHVtNWh1arVodW01aXWgdW+1aHVriDVpyDVsNWh1bfVvtWrINWw1aXVvzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU3luY1NldHRpbmdzIiBtc2dpZD0iNTQwODY5NDg3NTc5Mzk0NTMxNCI+ItWw1aHVtNWh1arVodW01aXWgdW41oLVtNWoINaD1bjVrdWh1oDVr9Wl1awg1bTVq9Wh1oHVvtWh1a7VqyDWhyDVodW21bvVodW/1b7VodWu1asiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9Ijg5NTYyNjI1OTEzMDYzNjk4NjgiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oPVuNaD1bjVrdWl1awg1bDVodW01aHVqtWh1bTVpdaB1bTVodW2INWv1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oDVqCDVsNWh1bfVvtWrINWw1aHVtNWh1oA6INWV1oDVq9W21aHVrywg1aHVtdW2INWv1aHWgNW41bIg1acg1oXVo9W/1aHVo9W41oDVrtW+1aXVrGAg1bTVq9Wh1oHVttWl1azVuNaCINWE1aHWgNWk1avVryDVsNWh1b7VpdWs1b7VodWu1asg1bDVodW01aHVqtWh1bTVpdaB1bjWgtW01agg1bDVodW31b7VqyDVsNWl1b86Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU3luY1N0YXRzIiBtc2dpZD0iNzM5NjU3NzQ1MTM2MDIwMjQ0OCI+ItWv1aHWgNWk1aHVrCDVsNWh1bTVodWq1aHVtNWl1oHVtNWh1bYg1b7Vq9Wz1aHVr9Wh1aPWgNW41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1N0YXRzIiBtc2dpZD0iMTUxMDE0Mzc2MTc1NzYwNjE1NiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVr9Wh1oDVpNWh1awg1bDVodW31b7VqyDVsNWh1bTVodWq1aHVtNWl1oHVtNWh1bYg1b7Vq9Wz1aHVr9Wh1aPWgNW41oLVqdW11bjWgtW21agsINWh1bXVpCDVqdW+1bjWgtW0YCDVsNWh1bTVodWq1aHVtNWl1oHVtNWh1bYg1avWgNWh1aTVodaA1bHVuNaC1anVtdW41oLVttW21aXWgNWrINW61aHVv9W01bjWgtWp1bXVuNaC1bbVqCDWhyDVqdWlINW41oDWhNWh1bYg1b/VvtW11aHVrCDVpyDVsNWh1bTVodWq1aHVtNWl1oHVvtWh1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdWJzY3JpYmVkRmVlZHNSZWFkIiBtc2dpZD0iNDc1NjYwOTYzNzA1MzM1MzMxOCI+ItWv1aHWgNWk1aHVrCDVotWh1arVodW21bjWgNWk1aHVo9aA1b7VodWuINWw1bjVvdaE1aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3Vic2NyaWJlZEZlZWRzUmVhZCIgbXNnaWQ9IjU1NTcwNTg5MDc5MDYxNDQ1MDUiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1bTVodW21oDVodW01aHVvdW21aXWgCDVvdW/1aHVttWh1awg1ajVttWp1aHWgdWr1a8g1bDVodW01aHVqtWh1bTVpdaB1b7VodWuINWw1bjVvdaE1aXWgNWrINW01aHVvdWr1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdWJzY3JpYmVkRmVlZHNXcml0ZSIgbXNnaWQ9IjkwMTUyNDYzMjU0MDgyMDkyOTYiPiLVo9aA1aXVrCDVotWh1arVodW21bjWgNWk1aHVo9aA1b7VodWuINWw1bjVvdaE1aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3Vic2NyaWJlZEZlZWRzV3JpdGUiIG1zZ2lkPSI2OTI4OTMwMTg4ODI2MDg5NDEzIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaD1bjWg9W41a3VpdWsINWx1aXWgCDVttWl1oDVr9Wh1bXVuNaC1bTVvSDVsNWh1bTVodWq1aHVtNWl1oHVvtWh1a4g1bDVuNW91oTVpdaA1ag6INWO1bbVodW91aHWgNWh1oAg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoINWv1aHWgNW41bIg1aXVtiDWg9W41a3VpdWsINWx1aXWgCDVsNWh1bTVodWq1aHVtNWl1oHVvtWh1a4g1bDVuNW91oTVpdaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjQxMDcxMDE1MjU3NDYwMzU3MTgiPiLVr9Wh1oDVpNWh1awg1brVodW11bTVodW21bbVpdaA1agsINW41oAg1aHVvtWl1azVodaB1oDVpdWsINWl1oQg1aLVodW81aHWgNWh1bbVuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjY1OTYxNDYwMDMzODkwNDI0MyI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVr9Wh1oDVpNWh1awg1aLVuNWs1bjWgCDVotWh1bzVpdaA1agsINWh1bbVuNaC1bbVttWl1oDVqCDWhyDVodaA1b/VodWw1aHVtdW/1bjWgtWp1bXVuNaC1bbVttWl1oDVqCwg1bjWgNW41bbWhCDWhdWj1b/VodWj1bjWgNWu1bjVstWoINWw1bbVodaA1aHVvtW41oAg1acg1brVodWw1aXVrCDVpyDWhdWj1b/VvtW41bLVqyDVotWh1bzVodaA1aHVttW41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjIxODMxMTA0MDIzMTQ0NDExMDYiPiLVodW+1aXVrNWh1oHVttWl1awg1aLVodW81aXWgCDWhdWj1b/VvtW41bLVqyDVsNWh1bTVodaAINW91aHVsNW01aHVttW+1aHVriDVotWh1bzVodaA1aHVttW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjgxODUzODU3MTYyNTUwNjUyOTEiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1aPWgNWl1awg1bbVuNaAINWi1aHVvNWl1oAg1oXVo9W/1b7VuNWy1asg1aLVodW81aHWgNWh1bbVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRSZWFkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjgyMzUzNDE1MTU2MDU1NTk2NzciPiLWg9W41oDVsdWh1oDVr9Wl1awg1bTVuNaC1b/WhNWoINWk1aXVutWrINW61aHVt9W/1brVodW21b7VodWuINW61aHVsNW41oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MjM1MzQxNTE1NjA1NTU5Njc3Ij4i1oPVuNaA1bHVodaA1a/VpdWsINW01bjWgtW/1oTVqCDVpNWl1brVqyDVutWh1bfVv9W61aHVttW+1aHVriDVutWh1bDVuNaBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNjQyNDczMjkyMzQ4MTMyMDcyIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaD1bjWgNWx1aHWgNWv1aXVrCBVU0Ig1a/WgNWr1bnVqyDVqdW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW21agsINW41oDVqCDVsNWh1b3VodW21aXVrNWrINWv1azVq9W21asg1bDVpdW/1aHVo9WhINW91aHWgNaE1aXWgNW41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTkxNDQwMjY4NDY4NTg0ODgyOCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWg9W41oDVsdWh1oDVr9Wl1awgU0Qg1oTVodaA1b/VqyDVqdW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW21agsINW41oDVqCDVsNWh1b3VodW21aXVrNWrINWv1azVq9W21asg1bDVpdW/1aHVo9WhINW91aHWgNaE1aXWgNWrINW+1oDVoToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijg0ODU5NzkwNjIyNTQ2NjY3NDgiPiLWg9W41oPVuNWt1aXVrCDVr9Wh1bQg1bvVttW71aXVrCDVsdWl1oAgVVNCINWv1oDVq9W51asg1aLVuNW+1aHVttWk1aHVr9W41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODgwNTY5MzYzMDA1MDQ1ODc2MyI+ItaD1bjWg9W41a3VpdWsINWv1aHVtCDVu9W21bvVpdWsINWx1aXWgCBTRCDWhNWh1oDVv9WrINWi1bjVvtWh1bbVpNWh1a/VuNaC1anVtdW41oLVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE3NTQwNjI5OTQ0NTcxMDg4OCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVo9aA1aXVrCBVU0Ig1a/WgNWr1bnVqyDVvtaA1aE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MzM3NDE3NzkwOTM2NjMyMDkwIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWj1oDVpdWsIFNEINaE1aHWgNW/1asg1b7WgNWhOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWVkaWFTdG9yYWdlV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODU5ODM5MTk5NzA2ODc5MDE1Ij4i1oPVuNaD1bjVrdWl1awv1bvVttW71aXVrCDVttWl1oDWhNWr1bYg1bTVpdWk1avVoSDVr9aA1avVudWrINWi1bjVvtWh1bbVpNWh1a/VuNaC1anVtdW41oLVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWVkaWFTdG9yYWdlV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MTg5MTYwNTk3Njk4NTI5MTg1Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaD1bjWg9W41a3VpdWsINW21aXWgNaE1avVtiDVtNWl1aTVq9WhINW61aHVsNW41oHVqyDVotW41b7VodW21aTVodWv1bjWgtWp1bXVuNaC1bbVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZURvY3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzc4MzE4NTk4NDQ4ODQ5ODI5Ij4i1a/VodW81aHVvtWh1oDVpdWsINaD1aHVvdW/1aHVqdWy1anVpdaA1asg1brVodWw1bjWgdWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlRG9jcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg3MDQzMjMxNzY5MTQxMjE0ODQiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1a/VodW81aHVvtWh1oDVpdWsINaD1aHVvdW/1aHVqdWy1anVqyDVutWh1bDVuNaB1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRBY2Nlc3NBbGwiIG1zZ2lkPSI4MTUwNjEzODIzOTAwNDYwNTc2Ij4i1bTVuNaC1b/WhMKg1bjWgtW21aXVttWh1awg1aLVuNWs1bjWgCDWhdWj1b/VvtW41bLVttWl1oDVqyDVodaA1b/VodaE1avVtiDVutWh1bDVuNaBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkQWNjZXNzQWxsIiBtc2dpZD0iMzIxNTIwODM1NzQxNTg5MTMyMCI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVtNW41oLVv9aEINWj1bjWgNWu1aXVrCDVodaA1b/VodaE1avVtiDVutWh1bDVuNaBwqDVotW41azVuNaAINaF1aPVv9W+1bjVstW21aXWgNWrINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWNoZV9maWxlc3lzdGVtIiBtc2dpZD0iNTY1NjQ4NzI2NDgxOTY2OTgyNCI+ItW01bjWgtW/1oQg1oTVpdW31asg1obVodW11azVpdaA1asg1bDVodW01aHVr9Wh1oDVoyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhY2hlX2ZpbGVzeXN0ZW0iIG1zZ2lkPSI1NTc4OTY3NjQyMjY1NTUwOTU1Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWj1oDVpdWsINaHINWv1aHWgNWk1aHVrCDWhNWl1bcg1obVodW11azVodW11avVtiDVsNWh1bTVodWv1aHWgNWj1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91c2Vfc2lwIiBtc2dpZD0iNTk4Njk1MjM2Mjc5NTg3MDUwMiI+ItWv1aHVv9Wh1oDVpdWsINWv1aHVtCDVvdW/1aHVttWh1awg1avVttW/1aXWgNW21aXVv9Wh1bXVq9W2INWm1aHVttWj1aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZV9zaXAiIG1zZ2lkPSI0NzE3NjMyMDAwMDYyNjc0Mjk0Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaF1aPVv9Wh1aPVuNaA1a7VpdWsIFNJUCDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bbVqGAg1avVttW/1aXWgNW21aXVv9Wh1bXVq9W2INWm1aHVttWj1aXWgCDVr9Wh1b/VodaA1aXVrNW41oIv1b3Vv9Wh1bbVodWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZE5ldHdvcmtVc2FnZUhpc3RvcnkiIG1zZ2lkPSI3ODYyNTkzMjgzNjExNDkzMjMyIj4i1a/VodaA1aTVodWsINW61aHVv9W01aHVr9Wh1bYg1oHVodW21oHVqyDWhdWj1b/VodWj1bjWgNWu1bjWgtW01agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTmV0d29ya1VzYWdlSGlzdG9yeSIgbXNnaWQ9Ijc2ODkwNjA3NDk4MTkxMjY0NzIiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1a/VodaA1aTVodWsINWw1aHVv9W41oLVryDWgdWh1bbWgdWl1oDVqyDWhyDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1bDVodW01aHWgCDWgdWh1bbWgdWrINaF1aPVv9Wh1aPVuNaA1a7VtNWh1bYg1brVodW/1bTVuNaC1anVtdW41oLVttWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlTmV0d29ya1BvbGljeSIgbXNnaWQ9IjI1NjIwNTM1OTIzMzk4NTk5OTAiPiLVr9Wh1bzVodW+1aHWgNWl1awg1oHVodW21oHVqyDWhNWh1bLVodaE1aHVr9Wh1bbVuNaC1anVtdW41oLVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlTmV0d29ya1BvbGljeSIgbXNnaWQ9Ijc1Mzc1ODY3NzE1NTkzNzA2NjgiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1a/VodW81aHVvtWh1oDVpdWsINaB1aHVttaB1aHVtdWr1bYg1oTVodWy1aHWhNWh1a/VodW21bjWgtWp1bXVuNaC1bbVqCDWhyDVvdWh1bDVtNWh1bbVpdWsINWw1aHVvtWl1azVvtWh1a7VqyDVsNWh1b/VuNaC1a8g1a/VodW21bjVttW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW9kaWZ5TmV0d29ya0FjY291bnRpbmciIG1zZ2lkPSI1MDg4MjE3MzA5MDg4NzI5NjUwIj4i1oPVuNaD1bjVrdWl1awg1oHVodW21oHVqyDWhdWj1b/VodWj1bjWgNWu1bTVodW2INWw1aHVt9W+1aHVvNW41oLVtNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5TmV0d29ya0FjY291bnRpbmciIG1zZ2lkPSI1NDQzNDEyODY2NzQ2MTk4MTIzIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INaD1bjWg9W41a3VpdWsLCDVqdWlINWr1bbVudW61aXVvSDVpyDWgdWh1bbWgdWrINaF1aPVv9Wh1aPVuNaA1a7VuNaC1bTVqCDVsNWh1bfVvtWh1oDVr9W+1bjWgtW0INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVsNWh1bTVodaAOiDVjdW41b7VuNaA1aHVr9Wh1bYg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINaF1aPVv9Wh1aPVuNaA1a7VtNWh1bYg1bDVodW01aHWgCDVudWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSIzNjU4NTI3MjE0OTE0OTU5NzQ5Ij4i1oPVuNaD1bjVrdWl1awg1aLVttWr1a/VqyDVttW31aHVttW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSI3NjU1NTY4NDMzNjk2MzU2NTc4Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWu1oDVodWj1oDVq9W2INaD1bjWg9W41a3VpdWsINWi1bbVq9Wv1asg1bbVt9Wh1bbVttWl1oDVqCDVpdaA1anVuNaC1bLVtNWh1bYg1bDVodW01aHWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTm90aWZpY2F0aW9ucyIgbXNnaWQ9Ijc2NzM0MTY0ODc4NzM0MzIyNjgiPiLVtNW41oLVv9aEINWj1bjWgNWu1aXVrCDVrtWh1bbVuNaC1oHVuNaC1bTVttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNDU4NDU3NzQyNjgzNDMxMzg3Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWh1bzVotWl1oDVpdWsLCDVuNaC1b3VuNaC1bTVttWh1b3Vq9aA1aXVrCDWhyDVtNWh1oTWgNWl1awg1a7VodW21bjWgtaB1bjWgtW01bbVpdaA1bYsINWh1bXVpCDVqdW+1bjWgtW0INW21aHWhyDVodW11awg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINWv1bjVstW01avWgSDVo9aA1aHVvNW+1aHVrtW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZE5vdGlmaWNhdGlvbkxpc3RlbmVyU2VydmljZSIgbXNnaWQ9IjcwNTc3NjQ3NDIyMTE2NTY2NTQiPiLVtNWr1aHVttWh1awg1a7VodW21bjWgtaB1bjWgtW01bbVpdaA1asg1bjWgtW21a/VttWk1oDVq9W5INWu1aHVvNWh1bXVuNaC1anVtdWh1bbVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmROb3RpZmljYXRpb25MaXN0ZW5lclNlcnZpY2UiIG1zZ2lkPSI5ODU2OTc5MTg1NzY5MDI5ODYiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1b3VpdaD1aHVr9Wh1bbVodW/1avWgNW41bvVqCDVtNWr1aHVttWh1awg1a7VodW21bjWgtaB1bjWgtW01bbVpdaA1agg1bjWgtW21a/VttWk1oDVuNWyINWu1aHVvNWh1bXVuNaC1anVtdWh1bYg1b7VpdaA1avVtiDVtNWh1a/VodaA1aTVodWv1asg1avVttW/1aXWgNaG1aXVtdW91avVtjog1Y3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVsNWh1bTVodaAINWl1oDVotaH1acg1bnVutWl1b/WhCDVpyDVodW21bDWgNWh1arVpdW31b8g1azVq9W21as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnZva2VDYXJyaWVyU2V0dXAiIG1zZ2lkPSIzNjk5NjAwODMzOTc1MTE3NDc4Ij4i1aPVuNaA1a7VodaA1a/VpdWsINaF1brVpdaA1aHVv9W41oDVqyDVr9W41bLVtNWr1oEg1b/WgNWh1bTVodWk1oDVvtWh1a4g1a/VodWm1bTVodWx1ofVtNWh1bYg1a7WgNWh1aPVq9aA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnZva2VDYXJyaWVyU2V0dXAiIG1zZ2lkPSI0MTU5NTQ5MTUyNTI5MTExOTIwIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INW91aXWg9Wh1a/VodW21aHVv9Wr1oDVuNW71agg1aPVuNaA1a7VodaA1a/VpdWsINaF1brVpdaA1aHVv9W41oDVqyDVr9W41bLVtNWr1oEg1b/WgNWh1bTVodWk1oDVvtWh1a4g1a/VodWm1bTVodWx1ofVtNWh1bYg1a7WgNWh1aPVq9aA1ag6INWN1bjVvtW41oDVodWv1aHVtiDVrtaA1aHVo9aA1aXWgNWrINWw1aHVtNWh1oAg1aXWgNWi1ofVpyDVudW61aXVv9aEINWnINWh1bbVsNaA1aHVqtWl1bfVvyDVrNWr1bbVqzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05ldHdvcmtDb25kaXRpb25zIiBtc2dpZD0iODIwNjA3NzQ0NzgzODkwOTUxNiI+ItWs1b3VpdWsINWk1avVv9Wh1oDVr9W41oLVtNW21aXWgCDWgdWh1bbWgdWh1bXVq9W2INW61aHVtdW01aHVttW21aXWgNWrINW+1aXWgNWh1aLVpdaA1bXVodWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI2ODk5MTAyMDc1ODI1MjcyMjExIj4i1YDVodW+1aXVrNW+1aHVrtWr1bYg1anVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWs1b3VpdWsINWk1avVv9Wh1oDVr9W41oLVtNW21aXWgCDWgdWh1bbWgdWh1bXVq9W2INW61aHVtdW01aHVttW21aXWgNWrINW+1aXWgNWh1aLVpdaA1bXVodWsOiDVjdW41b7VuNaA1aHVr9Wh1bYg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINWw1aHVtNWh1oAg1aXWgNWi1aXWhCDVutWl1b/WhCDVudWrINWj1aHVrNWr1b06Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2xpbWl0UGFzc3dvcmQiIG1zZ2lkPSI0NDk3NDIwNzI4ODU3NTg1NzkxIj4i1Y3VodWw1bTVodW21aXVrCDVo9Wh1bLVv9W21aHVotWh1bzVqyDVr9Wh1bbVuNW21bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2xpbWl0UGFzc3dvcmQiIG1zZ2lkPSIzMjUyMTE0MjAzOTE5NTEwMzk0Ij4i1Y7VpdaA1aHVsNW91a/VpdWsINWn1a/WgNWh1bbVqyDVodW61aHVr9W41bLVutW01aHVtiDVo9Wh1bLVv9W21aHVotWh1bzVpdaA1asg1anVuNaC1bXVrNWh1b/WgNWl1azVqyDVpdaA1a/VodaA1bjWgtWp1bXVuNaC1bbVtiDVuNaCINWj1oDVodW21bfVodW21bbVpdaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dhdGNoTG9naW4iIG1zZ2lkPSI5MTQxMzA2NDY5NDIxOTk1MDMiPiLVjtWl1oDVodWw1b3Vr9Wl1awg1afVr9aA1aHVttWrINWh1brVodWv1bjVstW61bTVodW2INaD1bjWgNWx1aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193YXRjaExvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjE1NzI5Mjk0MjE1MDcwMDcyIj4i1Y7VpdaA1aHVsNW91a/VpdWsINW91a3VodWsINWj1aHVstW/1bbVodWi1aHVvNWl1oDVqyDVqdWr1b7VqCwg1bjWgNW41bbWhCDVtNW41oLVv9aE1aHVo9aA1b7VpdWsINWl1bYg1afVr9aA1aHVttW2INWh1brVodWv1bjVstW61aXVrNWr1b0sINaHINWv1bjVstW61aXVrCDVo9aA1aHVvdWh1azVq9Wv1agg1a/VodW0INW71bbVu9Wl1awg1aPWgNWh1b3VodWs1avVr9WrINWi1bjVrNW41oAg1b/VvtW11aHVrNW21aXWgNWoLCDVpdWp1aUg1bTVuNaC1b/WhNWh1aPWgNW+1aXVrCDVpdW2INW51aHWg9Wr1oEg1bfVodW/INW91a3VodWsINWj1aHVstW/1bbVodWi1aHVvNWl1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193YXRjaExvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTcxMjMyMzA5MTg0Njc2MTA3MyI+ItWO1aXWgNWh1bDVvdWv1aXVrCDVvdWt1aHVrCDVo9Wh1bLVv9W21aHVotWh1bzVpdaA1asg1anVq9W+1agsINW41oDVuNW21oQg1bTVuNaC1b/WhNWh1aPWgNW+1aXVrCDVpdW2INWn1a/WgNWh1bbVtiDVodW61aHVr9W41bLVutWl1azVq9W9LCDWhyDVr9W41bLVutWl1awg1bDVpdW81aHVrdW41b3VqCDVr9Wh1bQg1bvVttW71aXVrCDVsNWl1bzVodWt1bjVvdWrINWi1bjVrNW41oAg1b/VvtW11aHVrNW21aXWgNWoLCDVpdWp1aUg1bTVuNaC1b/WhNWh1aPWgNW+1aXVrCDVpdW2INW51aHWg9Wr1oEg1bfVodW/INW91a3VodWsINWj1aHVstW/1bbVodWi1aHVvNWl1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3Jlc2V0UGFzc3dvcmQiIG1zZ2lkPSIyNjIwMDc3MTkxMjQyNjg4OTU1Ij4i1ZPVuNWt1aXVrCDVp9Wv1oDVodW21asg1aHVutWh1a/VuNWy1brVtNWh1bYg1aPVodWy1b/VttWh1aLVodW81agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3Jlc2V0UGFzc3dvcmQiIG1zZ2lkPSI2MDU5NjM5NjIzMDE5MDQ0NTgiPiLVk9W41a3VpdWsINWn1a/WgNWh1bbVqyDVodW61aHVr9W41bLVutW01aHVtiDVo9Wh1bLVv9W21aHVotWh1bzVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZm9yY2VMb2NrIiBtc2dpZD0iMjI3NDA4NTM4NDcwNDI0ODQzMSI+ItS/1bjVstW61aXVrCDVp9Wv1oDVodW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2ZvcmNlTG9jayIgbXNnaWQ9IjExNDE3OTc1ODg0MDM4MjcxMzgiPiLVjtWl1oDVodWw1b3Vr9Wl1axgINWr1bbVudW61aXVvSDWhyDVpdaA1aIg1acg1afVr9aA1aHVttWoINWv1bjVstW61b7VuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dpcGVEYXRhIiBtc2dpZD0iMzkxMDU0NTQ0Njc1ODYzOTcxMyI+ItWL1bbVu9Wl1awg1aLVuNWs1bjWgCDVv9W+1bXVodWs1bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dpcGVEYXRhIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzA2MTg0MDk2MDY3NzU2ODc2Ij4i1YvVttW71aXVrCDVo9aA1aHVvdWh1azVq9Wv1asg1b/VvtW11aHVrNW21aXWgNW2INWh1bzVodW21oEg1bbVodWt1aHVptWj1bjWgtW31aHWgdW01aHVtmAg1a/VodW/1aHWgNWl1azVuNW+INWj1bjWgNWu1aHWgNWh1bbVodW11avVtiDVv9W+1bXVodWs1bbVpdaA1asg1b7VpdaA1aHVr9Wh1bXVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193aXBlRGF0YSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUwOTY4OTU2MDQ1NzQxODgzOTEiPiLVi9W21bvVpdWsINWw1aXVvNWh1a3VuNW91asg1b/VvtW11aHVrNW21aXWgNW2INWh1bzVodW21oEg1bbVodWt1aHVptWj1bjWgtW31aHWgdW01aHVtmAg1a/VodW/1aHWgNWl1azVuNW+INWj1bjWgNWu1aHWgNWh1bbVodW11avVtiDVv9W+1bXVodWs1bbVpdaA1asg1b7VpdaA1aHVr9Wh1bXVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3NldEdsb2JhbFByb3h5IiBtc2dpZD0iMjc4NDgyODI5Mzc0Nzc5MTQ0NiI+ItS/1aHWgNWj1aHVvtW41oDVpdWsINW91aHWgNaE1asg1bDVodW01aHVt9Wt1aHWgNWw1aHVtdWr1bYg1brWgNW41oTVvdWr1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3NldEdsb2JhbFByb3h5IiBtc2dpZD0iNjM4NzQ5NzQ2NjY2MDE1NDkzMSI+ItWN1aHWgNaE1agg1a/VodaA1aPVodW+1bjWgNWl1awsINW41oAg1bDVodW01aHVt9Wt1aHWgNWw1aHVtdWr1bYg1brWgNW41oTVvdWr1bYg1oXVo9W/1aHVo9W41oDVrtW+1assINWl1oDVoiDWhNWh1bLVodaE1aHVr9Wh1bbVuNaC1anVtdW41oLVttWoINW01avVodaB1b7VodWuINWnOiDVhNWr1aHVtdW2INWh1bzVodW71avVtiDVvdWh1oDWhNWrINWv1aHVvNWh1b7VodaA1avVudW2INWnINWv1aHWgNWj1aHVvtW41oDVuNaC1bQg1aPVuNaA1a7VuNWyINWw1aHVtNWh1bfVrdWh1oDVsNWh1bXVq9W2INW61oDVuNaE1b3Vq9W2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9leHBpcmVQYXNzd29yZCIgbXNnaWQ9Ijg4NTI3OTE1MTg0NzI1NDA1NiI+ItWN1aHVsNW01aHVttWl1awg1afVr9aA1aHVttWrINWv1bjVstW61bTVodW2INWj1aHVstW/1bbVodWi1aHVvNWrINW91brVodW81bTVodW2INWq1aHVtNWv1aXVv9WoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19leHBpcmVQYXNzd29yZCIgbXNnaWQ9IjE3Mjk3MjUyMjYzMTQ2OTE1OTEiPiLVjtWl1oDVodWw1b3Vr9Wl1axgINWr1bbVuSDVsNWh1bPVodWt1aHVr9Wh1bbVuNaC1anVtdWh1bTVoiDVutWl1b/WhCDVpyDVp9Wv1oDVodW21asg1a/VuNWy1brVtNWh1bYg1aPVodWy1b/VttWh1aLVodW81agg1oPVuNWt1b7VqzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9Ijg5MDEzMjYxOTk5MDkxMzI5MTUiPiLUv9Wh1oDVo9Wh1b7VuNaA1aXVrCDVutWh1bDVuNaB1asg1a/VuNWk1aHVvtW41oDVuNaC1bTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9IjI2Mzc3MzIxMTUzMjUzMTY5OTIiPiLVitWh1bDVodW21bvVpdWsLCDVuNaAINW61aHVsNW+1bjVsiDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1b/VvtW11aHVrNW21aXWgNWoINWs1avVttWl1bYg1a/VuNWk1aHVvtW41oDVvtWh1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2Rpc2FibGVDYW1lcmEiIG1zZ2lkPSI2Mzk1MzAxMDIzMTUyMjk3ODI2Ij4i1L/VodW91aXWgdW21aXVrCDVv9Wl1b3VodWt1oHVq9Wv1bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2Rpc2FibGVDYW1lcmEiIG1zZ2lkPSIyMzA2MzQ5MDQyODM0NzU0NTk3Ij4i1L/VodW21a3VpdWswqDVotW41azVuNaAINW91aHWgNaE1aXWgNWrINaG1bjVv9W41a3WgdWr1a/VttWl1oDVqyDWhdWj1b/VodWj1bjWgNWu1bjWgtW01ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2Rpc2FibGVLZXlndWFyZEZlYXR1cmVzIiBtc2dpZD0iMjY2MzI5MTA0NTQyNjM4ODAyIj4i1LHVttW71aHVv9Wl1awg1b3Vv9Wl1bLVttWh1a/VuNWy1brVpdaE1asg1aPVuNaA1a7VodW81bjWgtW11anVttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIzNDY3MDgyMjcyMTg2NTM0NjE0Ij4i1L/VodW21a3VpdWsINW91b/VpdWy1bbVodWv1bjVstW61aXWhNWrINW41oDVuNW3INWj1bjWgNWu1aHVvNW41oLVtdWp1bbVpdaA1asg1oXVo9W/1aHVo9W41oDVrtW41oLVtNWoOiI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwaG9uZVR5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iODkwMTA5ODMzNjY1ODcxMDM1OSI+ItWP1bbVodW11avVtiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9Ijg2OTkyMzY1MDUyNzEzNjYxNSI+ItSy1bvVu9Wh1bXVq9W2IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg5NzU0NDY1NDI0Mjg3NDU0MyI+ItSx1bfVrdWh1b/VodW21oTVodW11avVtiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjExMDM2MDE0MzMzODIxNTgxNTUiPiLUsdW31a3VodW/1aHVttaE1aHVtdWr1bYg1obVodaE1b0iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxNzM1MTc3MTQ0OTQ4MzI5MzcwIj4i1Y/VttWh1bXVq9W2INaG1aHWhNW9IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjAzODc4Njc0NDc3MjA3Mzk0Ij4i1ZPVpdW11bvVpdaAIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTY1MDgyNDI3NTE3NzkzMTYzNyI+ItSx1bXVrCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjkxOTI1MTQ4MDY5NzU4OTg5NjEiPiLVgNWh1b/VuNaC1a8iPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJlbWFpbEFkZHJlc3NUeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9IjgwNzM5OTQzNTI5NTYxMjkxMjciPiLVj9W41oLVtiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjcwODQyMzczNTY2MDI2MjU2MDQiPiLUsdW31a3VodW/1aHVttaE1aHVtdWr1bYiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxMTEyMDQ0NDEwNjU5MDExMDIzIj4i1LHVtdWsIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjM3NDkxMzk1Mjg3MDExMDYxOCI+ItWA1aHVv9W41oLVryI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBvc3RhbEFkZHJlc3NUeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9IjY4ODAyNTc2MjY3NDAwNDcyODYiPiLVj9W21aHVtdWr1bYiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI1NjI5MTUzOTU2MDQ1MTA5MjUxIj4i1LHVt9Wt1aHVv9Wh1bbWhNWh1bXVq9W2IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNDk2NjYwNDI2NDUwMDM0MzQ2OSI+ItSx1bXVrCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjQ5MzI2ODI4NDc1OTUyOTkzNjkiPiLVgNWh1b/VuNaC1a8iPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJpbUFkZHJlc3NUeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9IjE3Mzg1ODUxOTQ2MDE0NzY2OTQiPiLVj9W21aHVtdWr1bYiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxMzU5NjQ0NTY1NjQ3MzgzNzA4Ij4i1LHVt9Wt1aHVv9Wh1bbWhNWh1bXVq9W2IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg2ODU0OTQwMTA1MzYxNTY3NyI+ItSx1bXVrCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxNDUxMTg5NDQ2Mzk4Njk4MDkiPiLVgNWh1b/VuNaC1a8iPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmdhbml6YXRpb25UeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc1NDYzMzU2MTIxODkxMTU2MTUiPiLUsdW31a3VodW/1aHVttaE1aHVtdWr1bYiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0Mzc4MDc0MTI5MDQ5NTIwMzczIj4i1LHVtdWsIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzQ1NTA0NzQ2ODU4Mzk2NTEwNCI+ItWA1aHVv9W41oLVryI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImltUHJvdG9jb2xzIj4KKyAgICA8aXRlbSBtc2dpZD0iODU5NTI2MTM2MzUxODQ1OTU2NSI+IkFJTSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjczOTA0NzM2MjgyNzU0OTA3MDAiPiJXaW5kb3dzIExpdmUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3ODgyODc3MTM0OTMxNDU4MjE3Ij4iWWFob28iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI1MDM1Mzc2MzEzMjAwNTg1MjQyIj4iU2t5cGUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3NTMyMzYzMTc4NDU5NDQ0OTQzIj4iUVEiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzNzEzNDQxMDM0Mjk5NjYwNzQ5Ij4iR29vZ2xlIFRhbGsiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNTA2ODU3MzEyNzE4NjMwODIzIj4iSUNRIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTY0ODc5NzkwMzc4NTI3OTM1MyI+IkphYmJlciI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlQ3VzdG9tIiBtc2dpZD0iMTY0NDczODA1OTA1MzM1NTgyMCI+ItWA1aHVv9W41oLVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUhvbWUiIG1zZ2lkPSIyNTcwOTIzNDYzMDMzOTg1ODg3Ij4i1Y/VttWh1bXVq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlTW9iaWxlIiBtc2dpZD0iNjUwMTQ2MzU1Nzc1NDc1MTAzNyI+ItSy1bvVu9Wh1bXVq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlV29yayIgbXNnaWQ9Ijg4NjM5Mzk2NjcwNTk5MTE2MzMiPiLUsdW31a3VodW/1aHVttaE1aHVtdWr1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVGYXhXb3JrIiBtc2dpZD0iMzUxNzc5MjE2MDAwODg5MDkxMiI+ItSx1bfVrdWh1b/VodW21oTVodW11avVtiDWhtWh1oTVvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUZheEhvbWUiIG1zZ2lkPSIyMDY3MjY1OTcyMzIyOTcxNDY3Ij4i1Y/VttWh1bXVq9W2INaG1aHWhNW9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlUGFnZXIiIG1zZ2lkPSI3NTgyMzU5OTU1Mzk0OTIxNzMyIj4i1ZPVpdW11bvVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlT3RoZXIiIG1zZ2lkPSIxNTQ0NDI1ODQ3ODY4NzY1OTkwIj4i1LHVtdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlQ2FsbGJhY2siIG1zZ2lkPSIyNzEyMTc1MjAzMDY1Njc4MjA2Ij4i1LXVv9Wm1aHVttWjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlQ2FyIiBtc2dpZD0iODczODM2MDY4OTYxNjcxNjk4MiI+ItWE1aXWhNWl1bbVoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNvbXBhbnlNYWluIiBtc2dpZD0iNTQwNDM0MzU2NDYxNDc4OTE2Ij4i1LjVttWv1aXWgNW41oLVqdW11aHVtiDVo9Ws1a3VodW+1bjWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUlzZG4iIG1zZ2lkPSI4MDIyNDUzMTkzMTcxMzcwMzM3Ij4iSVNETiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU1haW4iIG1zZ2lkPSI2NzY2MTM3MDEwNjI4MzI2OTE2Ij4i1YDVq9W01bbVodWv1aHVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU90aGVyRmF4IiBtc2dpZD0iODU4NzY1NzE0NTA3MjQ0NjU2NSI+ItSx1bXVrCDWhtWh1oTVvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVJhZGlvIiBtc2dpZD0iNDA5MzczODA3OTkwODY2NzUxMyI+ItWM1aHVpNWr1bgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVUZWxleCIgbXNnaWQ9IjMzNjc4Nzk5NTI0NzYyNTA1MTIiPiLVj9Wl1azVpdaE1b0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVUdHlUZGQiIG1zZ2lkPSI4NjA2NTE0Mzc4NTg1MDAwMDQ0Ij4iVFRZIFRERCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVdvcmtNb2JpbGUiIG1zZ2lkPSIxMzExNDI2OTg5MTg0MDY1NzA5Ij4i1LHVt9Wt1aHVv9Wh1bbWhNWh1bXVq9W2INWi1bvVu9Wh1bXVq9W2INWw1aHVtNWh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVXb3JrUGFnZXIiIG1zZ2lkPSI2NDk5Mzg3MzEyMzExNTcwNTYiPiLUsdW31a3VodW/1aHVttaE1aHVtdWr1bYg1oPVpdW11bvVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlQXNzaXN0YW50IiBtc2dpZD0iNTU5Njc3MjYzNjEyODU2Mjg4NCI+ItWV1aPVttWh1a/VodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlTW1zIiBtc2dpZD0iNzI1NDQ5MjI3NTUwMjc2ODk5MiI+Ik1NUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZUN1c3RvbSIgbXNnaWQ9Ijc4Mzc1ODYxOTg0NTgwNzM0MDQiPiLVgNWh1b/VuNaC1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVCaXJ0aGRheSIgbXNnaWQ9IjI4MTMzNzk4NDQyMTEzOTA3NDAiPiLUvtW21bbVpNW11aHVtiDWhdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXZlbnRUeXBlQW5uaXZlcnNhcnkiIG1zZ2lkPSIzODc2Nzc5NzQ0NTE4Mjg0MDAwIj4i1Y/VodaA1aXVpNWh1oDVsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZU90aGVyIiBtc2dpZD0iNzM4ODE3ODkzOTAxMDE0MzA3NyI+ItSx1bXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZUN1c3RvbSIgbXNnaWQ9Ijg1MjU5NjAyNTc4MDQyMTM4NDYiPiLVgNWh1b/VuNaC1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVIb21lIiBtc2dpZD0iNDQ5MjI3MjM2MTQwNDMzOTE5Ij4i1Y/VttWh1bXVq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlV29yayIgbXNnaWQ9IjM1NDgwNTgwNTk2MDExNDk5NzMiPiLUsdW31a3VodW/1aHVttaE1aHVtdWr1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVPdGhlciIgbXNnaWQ9IjI5MjMwMDg2OTUyNzI2Mzk1NDkiPiLUsdW11awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVNb2JpbGUiIG1zZ2lkPSIxMTk5MTkwMDUzMjExNjYyMDUiPiLUstW71bvVodW11avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVDdXN0b20iIG1zZ2lkPSI4OTAzMjA2OTAzMDYwNDc5OTAyIj4i1YDVodW/1bjWgtWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZUhvbWUiIG1zZ2lkPSI4MTY1NzU2OTc3MTg0NDgzMDk3Ij4i1Y/VttWh1bXVq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZVdvcmsiIG1zZ2lkPSI1MjY4MTcyNzcyMzg3Njk0NDk1Ij4i1LHVt9Wt1aHVv9Wh1bbWhNWh1bXVq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZU90aGVyIiBtc2dpZD0iMjcyNjExMTk2NjYyMzU4NDM0MSI+ItSx1bXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZUN1c3RvbSIgbXNnaWQ9IjIwNzQwMjg3NTU1Mjc4MjYwNDYiPiLVgNWh1b/VuNaC1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVR5cGVIb21lIiBtc2dpZD0iNjI0MTE4MTAzMjk1NDI2Mzg5MiI+ItWP1bjWgtW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlV29yayIgbXNnaWQ9IjEzNzE0ODkyOTAyNDI0MzMwOTAiPiLUsdW31a3VodW/1aHVttaE1aHVtdWr1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVR5cGVPdGhlciIgbXNnaWQ9IjUzNzcwMDc0OTU3MzU5MTU0NzgiPiLUsdW11awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sQ3VzdG9tIiBtc2dpZD0iNjkxOTQ1MzgzNjYxODc0OTk5MiI+ItWA1aHVv9W41oLVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xBaW0iIG1zZ2lkPSI3MDUwMzYwNjEyMzY4MzgzNDE3Ij4iQUlNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE1zbiIgbXNnaWQ9IjE0NDU1NjU0NTQyMDc2OTQ0MiI+IldpbmRvd3MgTGl2ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xZYWhvbyIgbXNnaWQ9IjgyNzE0Mzk0MDg0NjkwMjEyNzMiPiJZYWhvbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xTa3lwZSIgbXNnaWQ9IjkwMTkyOTY3NDQ2MjI4MzI5NTEiPiJTa3lwZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xRcSIgbXNnaWQ9Ijg4ODc0ODQzNzk0OTQxMTE4ODQiPiJRUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xHb29nbGVUYWxrIiBtc2dpZD0iNDkzOTAyMzIxMTQwMjc3MzA0Ij4iSGFuZ291dHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sSWNxIiBtc2dpZD0iMTU3NDg3MDQzMzYwNjUxNzMxNSI+IklDUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xKYWJiZXIiIG1zZ2lkPSIyMjc5OTE3NjMwODc1NzcxNzIyIj4iSmFiYmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE5ldE1lZXRpbmciIG1zZ2lkPSI4Mjg3NjI1NjU1OTg2ODI3OTcxIj4iTmV0TWVldGluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ1R5cGVXb3JrIiBtc2dpZD0iMjkyNjg4NzA1MDUzNjM4NzIiPiLUsdW31a3VodW/1aHVttaE1aHVtdWr1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdUeXBlT3RoZXIiIG1zZ2lkPSIzOTUxNzgxMTMxNTcwMTI0MDgyIj4i1LHVtdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnVHlwZUN1c3RvbSIgbXNnaWQ9IjIyNTUyMzQxNTM3MjA4ODMyMiI+ItWA1aHVv9W41oLVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUN1c3RvbSIgbXNnaWQ9IjM1NDI0MDM2Nzk4MjcyOTczMDAiPiLVgNWh1b/VuNaC1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVBc3Npc3RhbnQiIG1zZ2lkPSI2Mjc0MzM0ODI1MTk1Mzc5MDc2Ij4i1ZXVo9W21aHVr9Wh1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVCcm90aGVyIiBtc2dpZD0iODc1NzkxMzUwNjc4NDA2NzcxMyI+ItS11bLVotWh1bXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUNoaWxkIiBtc2dpZD0iMTg5MDc0NjI3NzI3Njg4MTYyNiI+ItS11oDVpdWt1aEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVEb21lc3RpY1BhcnRuZXIiIG1zZ2lkPSI2OTA0ODA3MTEyMTIxMTIyMTMzIj4i1Y/VpdWy1aHVr9Wh1bYg1aPVuNaA1a7VqNW21a/VpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlRmF0aGVyIiBtc2dpZD0iNTIyODAzNDY4NzA4MjA1MDcyNSI+ItWA1aHVtdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlRnJpZW5kIiBtc2dpZD0iNzMxMzEwNjc2MjQ4MzM5MTI2MiI+ItS41bbVr9Wl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVNYW5hZ2VyIiBtc2dpZD0iNjM2NTY3Nzg2MTYxMDEzNzg5NSI+ItS/1aHVvNWh1b7VodaA1avVuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZU1vdGhlciIgbXNnaWQ9IjQ1Nzg1NzEzNTI5NjI3NTgzMDQiPiLVhNWh1bXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVBhcmVudCIgbXNnaWQ9IjQ3NTU2MzU1Njc1NjI5MjUyMjYiPiLUvtW21bjVsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVBhcnRuZXIiIG1zZ2lkPSI3MjY2NDkwMjg1MTIwMjYyNzgxIj4i1LPVuNaA1a7VqNW21a/VpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUmVmZXJyZWRCeSIgbXNnaWQ9IjEwMTU3MzA1OTg0NDEzNTUyNCI+ItWA1bLVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVSZWxhdGl2ZSIgbXNnaWQ9IjE3OTk4MTk5MzAwODU2MTAyNzEiPiLUstWh1oDVpdWv1aHVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVNpc3RlciIgbXNnaWQ9IjE3MzU5ODM1NTQ0NzkwNzY0ODEiPiLVlNW41oLVtdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlU3BvdXNlIiBtc2dpZD0iMzk0MTM2OTM5NDI4Njk4MTE3Ij4i1LHVtNW41oLVvdWr1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZUN1c3RvbSIgbXNnaWQ9IjI0NzM1ODA1OTMxMTE1OTA5NDUiPiLVgNWh1b/VuNaC1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZUhvbWUiIG1zZ2lkPSI2MDkzNTk4MTgxMDY5MzU5Mjk1Ij4i1Y/VttWh1bXVq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVXb3JrIiBtc2dpZD0iNjkyMDcyNTczMDc5NzA5OTA0NyI+ItSx1bfVrdWh1b/VodW21oTVodW11avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlT3RoZXIiIG1zZ2lkPSI0NDA4NDM2MTYyOTUwMTE5ODQ5Ij4i1LHVtdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4i1YTVuNaC1b/WhNWh1aPWgNWl1oQgUElOINWv1bjVpNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4i1YTVuNaC1b/WhNWh1aPWgNWl1oQgUFVLLdWoINaHINW21bjWgCBQSU4g1a/VuNWk1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IlBVSyDVr9W41aQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+ItWG1bjWgCBQSU4g1a7VodWu1a/VodWj1avWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+ItWA1brVpdaEYCDVo9Wh1bLVv9W21aHVotWh1bzVqCDVtNW41oLVv9aE1aHVo9aA1aXVrNW41oIg1bDVodW01aHWgCI8L2ZvbnQ+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+ItWE1bjWgtW/1oTVodWj1oDVpdaEINWj1aHVstW/1bbVodWi1aHVvNWoINWh1brVodWv1bjVstW61bTVodW2INWw1aHVtNWh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLVhNW41oLVv9aE1aHVo9aA1aXWhCBQSU4t1agg1aHVutWh1a/VuNWy1brVtNWh1bYg1bDVodW01aHWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMjQyMjIyNTU5MTAwNjEzNDkzNiI+ItWN1a3VodWsIFBJTiDVrtWh1a7Vr9Wh1aPVq9aAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xhYmVsX3RleHQiIG1zZ2lkPSI4NjE3OTY0NjEwMjgyOTg0MjQiPiLUsdW61aHVr9W41bLVutW01aHVtiDVsNWh1bTVodaAINW91aXVstW01aXWhCDVkdWh1bbVrywg1aHVutWhIDA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1lcmdlbmN5X2NhbGxfZGlhbG9nX251bWJlcl9mb3JfZGlzcGxheSIgbXNnaWQ9IjY5NjE5MjEwMzE5NTA5MDk3MCI+ItSx1oDVv9Wh1a/VodaA1aMg1avWgNWh1b7Vq9Wz1aHVr9W21aXWgNWrINWw1aXVvNWh1a3VuNW91aHVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9jYXJyaWVyX2RlZmF1bHQiIG1zZ2lkPSI4OTYzODM5MjQyNTY1NjUzMTkyIj4i1L7VodW81aHVtdW41oLVqdW11bjWgtW2INW51a/VoToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NjcmVlbl9sb2NrZWQiIG1zZ2lkPSI3Mjg4NDQzMDc0ODA2ODMyOTA0Ij4i1LfVr9aA1aHVttWoINWv1bjVstW61b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5faW5zdHJ1Y3Rpb25zX3doZW5fcGF0dGVybl9lbmFibGVkIiBtc2dpZD0iNDYxNTQwNTE2MTQxMjYwNDkiPiLVjdWl1bLVtNWl1oQg1ZHVodW21a9gINWh1brVodWv1bjVstW61aXVrNW41oIg1bDVodW01aHWgCwg1a/VodW0INWv1aHVv9Wh1oDVpdaEINWh1oDVv9Wh1a/VodaA1aMg1avWgNWh1b7Vq9Wz1aHVr9W21aXWgNWrINWm1aHVttWjOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5faW5zdHJ1Y3Rpb25zX3doZW5fcGF0dGVybl9kaXNhYmxlZCIgbXNnaWQ9IjY4NjI2MDAyODc5NzE1ODM2NCI+ItSx1brVodWv1bjVstW61aXVrNW41oIg1bDVodW01aHWgCDVvdWl1bLVtNWl1oQg1ZHVodW21a/VqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BhdHRlcm5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNzQ3ODcwMzI1NDk2NDgxMDMwMiI+ItWA1aHVvtWh1oTVpdaEINW91a3VpdW01aHVtmAg1aHVutWh1a/VuNWy1brVpdWs1bjWgiDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9lbWVyZ2VuY3lfY2FsbCIgbXNnaWQ9IjUzNDc2MzM3ODQ0MDEyODUyMjUiPiLUsdaA1b/VodWv1aHWgNWjINWr1oDVodW+1avVs9Wh1a/VttWl1oDVqyDVsNWl1bzVodWt1bjVvdWh1abVodW21aMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3JldHVybl90b19jYWxsIiBtc2dpZD0iNTI0NDI1OTc4NTUwMDA0MDAyMSI+ItWO1aXWgNWh1aTVodW81bbVodWsINWm1aHVttWj1avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGF0dGVybl9jb3JyZWN0IiBtc2dpZD0iOTAzOTAwODY1MDM2MjI2MTIzNyI+ItWD1avVt9W/INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGF0dGVybl93cm9uZyIgbXNnaWQ9IjQzMTc5NTUwMTQ5NDgxMDg3OTQiPiLUv9aA1a/Vq9W2INaD1bjWgNWx1aXWhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGFzc3dvcmRfd3JvbmciIG1zZ2lkPSI1NzM3ODE1MzkzMjUzMTY1MzAxIj4i1L/WgNWv1avVtiDWg9W41oDVsdWl1oQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWNldW5sb2NrX211bHRpcGxlX2ZhaWx1cmVzIiBtc2dpZD0iNzU0MTM3NTgzMDIyNzkyNDI5Ij4i1LHVvNWh1b7VpdWs1aHVo9W41oLVtdW2INS01aXVtNaE1bjVviDVodW61aHVr9W41bLVutW01aHVtiDWg9W41oDVsdWl1oDVqCDVo9Wl1oDVodWm1aHVttaB1b7VodWuINWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BsdWdnZWRfaW4iIG1zZ2lkPSI4MDU3NzYyODI4MzU1NTcyMzE1Ij4i1LzVq9aB1oTVodW+1bjWgNW41oLVtCwgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fY2hhcmdlZCIgbXNnaWQ9IjMyMTYzNTc0NTY4NDA2MDYyNCI+ItS81avWgdaE1aHVvtW41oDVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2JhdHRlcnlfc2hvcnQiIG1zZ2lkPSI0NDc3MjY0ODQ5Mzg2ODUwMjY2Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbG93X2JhdHRlcnkiIG1zZ2lkPSIxNDgyODczOTgxOTE5MjQ5NzQwIj4i1YTVq9Wh1oHWgNWl1oQg1bHVpdaAINWs1avWgdaE1aHVvtW41oDVq9W51ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNTA5OTQzOTI3NzgxOTIxNTM5OSI+IlNJTSDWhNWh1oDVvyDVudWv1aEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1MTY1OTE5NjA5NTc5MTQ3NCI+ItSz1oDVodW91aHVrNWr1a/VuNaC1bQgU0lNINaE1aHWgNW/INW51a/VoToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg2OTIwNTg1Njk1MTY5MDc4Ij4i1YDVpdW81aHVrdW41b3VuNaC1bQgU0lNINaE1aHWgNW/INW51a/VoToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUzNzI3ODcxMzgwMjMyNzI2MTUiPiLVhNW/1oHWgNWl1oQgU0lNINaE1aHWgNW/1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjM1MjY1NzMwOTkwMTkzMTk0NzIiPiJTSU0g1oTVodaA1b/VqCDVotWh1oHVodWv1aHVtdW41oLVtCDVpyDVr9Wh1bQg1bnVqyDVr9Wh1oDVuNWyINWv1aHWgNWk1aHWgdW+1aXVrDog1YTVv9aB1oDVpdaEIFNJTSDWhNWh1oDVvzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjUwOTYxNDk2NjUxMzg5MTYxODQiPiLUsdW21brVq9W/1aHVtiBTSU0g1oTVodaA1b86Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjkxMDkwNDY0MzQzMzE1MTM3MSI+ItWB1aXWgCBTSU0g1oTVodaA1b/VqCDVqNW21aTVtNWr1bfVvyDVr9Wh1b3VpdaB1b7VodWuINWnOlxuINS/1aHVutW+1aXWhCDVsdWl1oAg1aHVttWs1aHWgCDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bbVttWl1oDVqyDVtNWh1b/VodWv1aHWgNWh1oDVqyDVsNWl1b8g1bTVpdWvINWh1bXVrCBTSU0g1oTVodaA1b/VqyDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMDE1OTQ5MDUxNTI3NDY4ODYiPiLVhtWh1a3VuNaA1aQg1bDVpdW/1oTVqyDVr9W41bPVodWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjYwODkyOTc2NTA0ODEyOTIzNjMiPiLVgNWh1bvVuNaA1aQg1bDVpdW/1aHVo9Wu1asg1a/VuNWz1aHVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1OTA4ODc4Njc4MDEyODAwMSI+ItS01aHVpNWh1oDVqyDVr9W41bPVodWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU4ODg0MjI5MzgzNTEwMTk0MjYiPiLVhtW+1aHVo9Wh1oDVr9W01aHVtiDVr9W41bPVodWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1NjIzMTgzNzg3NjY5ODc2MDEiPiLUv9Wh1bbVo9WrINWv1bjVs9Wh1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWVyZ2VuY3lfY2FsbHNfb25seSIgbXNnaWQ9IjY3MzM5NzgzMDQzODYzNjU0MDciPiLVhNWr1aHVtdW2INWh1oDVv9Wh1a/VodaA1aMg1avWgNWh1b7Vq9Wz1aHVr9W21aXWgNWrINWm1aHVttWj1aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjE0MzM4OTIyNDk4NjAyODUwMSI+ItWR1aHVttaB1agg1a/VuNWy1brVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV9wdWtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI3NDQxNzk3MzM5OTc2MjMwIj4iU0lNINaE1aHWgNW/1aggUFVLLdW41b4g1a/VuNWy1brVvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI4MTI3OTE2MjU1MjQ1MTgxMDYzIj4i1Y/VpdW91aXWhCDVldWj1b/VvtW41bLVqyDVuNaC1bLVpdaB1bjWgtW11oHVqCDVr9Wh1bQg1aTVq9W01aXWhCDUstWh1arVodW21bjWgNWk1bbVpdaA1asg1b3VutWh1b3VodaA1a/VtNWh1bYg1a/VpdW21b/WgNW41bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI4MDY2NjYwMTI5MjA2MDAxMDM5Ij4iU0lNINaE1aHWgNW/1agg1a/VuNWy1brVvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNTk1MzIzMjE0MDUyODgxMjY0Ij4iU0lNINaE1aHWgNW/1agg1aHVutWh1a/VuNWy1brVvtW41oLVtCDVp+KApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNjQ4MTYyMzgzMDM0NDEwNzIyMiI+ItS01bjWgtaEwqA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDVodW21aPVodW0INW91a3VodWsINWl1oQg1bDVodW+1aHWhNWl1awg1bHVpdaAINWh1brVodWv1bjVstW61bTVodW2INW91a3VpdW01aHVtjogXG5cbtWT1bjWgNWx1aXWhCDVr9aA1a/Vq9W2IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INW+1aHVtdaA1a/VtdWh1bbVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iMjcyNTk3MzI4NjIzOTM0NDU1NSI+ItS01bjWgtaEINW91a3VodWsINWl1oQg1bTVuNaC1b/WhNWh1aPWgNWl1awg1bHVpdaAINWj1aHVstW/1bbVodWi1aHVvNWoIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQ6IFxuXG4g1ZPVuNaA1bHVpdaEINWv1oDVr9Wr1bYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g1b7VodW11oDVr9W11aHVttWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNjIxNjY3MjcwNjU0NTY5Njk1NSI+ItS01bjWgtaEwqA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDVodW21aPVodW0INW91a3VodWsINWl1oQg1bTVuNaC1b/WhNWh1aPWgNWl1awg1bHVpdaAIFBJTi3VqDogXG5cbtWT1bjWgNWx1aXWhCDVr9aA1a/Vq9W2IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INW+1aHVtdaA1a/VtdWh1bbVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjkxOTE2MTE5ODQ2MjU0NjA4MjAiPiLUtNW41oLWhMKgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtCDVvdWt1aHVrCDVpdaEINWw1aHVvtWh1oTVpdWsINWx1aXWgCDVodW61aHVr9W41bLVutW01aHVtiDVvdWt1aXVtNWh1bY6IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bTVq9aBINWh1b7VpdWsINWh1bbVsNWh1bvVuNWyINaD1bjWgNWx1aXWgNWr1oEg1bDVpdW/1bgg1bHVpdWmINWv1aHVvNWh1bvVodaA1a/VvtWrINWh1brVodWv1bjVstW61aXVrCDVsdWl1oAg1aPWgNWh1b3VodWs1avVr9WoYCDWhdWj1b/VodWj1bjWgNWu1aXVrNW41b4g1bHVpdaAIEdvb2dsZS3VqyDVtNW41oLVv9aE1asg1oXVo9W/1aHVttW41oLVttWoOlxuIFxuINWT1bjWgNWx1aXWhCDVr9aA1a/Vq9W2IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INW+1aHVtdaA1a/VtdWh1bbVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNTkwMjI3NTU5NzYzNzYyNzUxIj4i1LTVuNaC1oQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtCDVvdWt1aHVrCDVpdaEINWw1aHVvtWh1oTVpdWsINWx1aXWgCDVodW61aHVr9W41bLVutW01aHVtiDVvdWt1aXVtNWh1bY6INS11b7VvSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVodW21bDVodW71bjVsiDWg9W41oDVsdWr1oEg1bDVpdW/1bgg1bHVpdWmINWv1aHVvNWh1bvVodaA1a/VvtWrINWh1brVodWv1bjVstW61aXVrCDVsdWl1oAg1bDVpdW81aHVrdW41b3VqGAg1oXVo9W/1aHVo9W41oDVrtWl1azVuNW+IEdvb2dsZS3VqyDVsdWl1oAg1bTVuNaC1b/WhNWoOlxuIFxuINWT1bjWgNWx1aXWhCDVr9aA1a/Vq9W2IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INW+1aHVtdaA1a/VtdWh1bbVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2MTI4MTA2Mzk5NzQ1NzU1NjA0Ij4i1LTVuNaC1oQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtCDVo9aA1aHVvdWh1azVq9Wv1bYg1aHVutWh1a/VuNWy1brVpdWs1bjWgiDVvdWt1aHVrCDWg9W41oDVsSDVpdaEINWh1oDVpdWsOiDUtdW+1b0gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g1aHVttWw1aHVu9W41bIg1oPVuNaA1bHVq9aBINWw1aXVv9W4INWj1oDVodW91aHVrNWr1a/VqCDVr9W+1aXWgNWh1a/VodaA1aPVodW+1bjWgNW+1asg1aPVuNaA1a7VodaA1aHVttWh1bXVq9W2INWs1bzVpdWs1bXVodW11bbVqywg1ocg1oXVo9W/1b7VuNWy1asg1aLVuNWs1bjWgCDVv9W+1bXVodWs1bbVpdaA1agg1a/Vr9W41oDVpdW2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODYwMzU2NTE0MjE1NjgyNjU2NSI+ItS01bjWgtaEIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQg1bDVpdW81aHVrdW41b3VqCDVodW61aHVr9W41bLVutWl1azVuNaCINW91a3VodWsINaD1bjWgNWxINWl1oQg1aHWgNWl1aw6INS11b7VvSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVodW21bDVodW71bjVsiDWg9W41oDVsdWr1oEg1bDVpdW/1bgg1bDVpdW81aHVrdW41b3VqCDVr9W+1aXWgNWh1a/VodaA1aPVodW+1bjWgNW+1asg1aPVuNaA1a7VodaA1aHVttWh1bXVq9W2INW91a/VptWi1bbVodWk1avWgCDVvNWl1arVq9W01assINaHINaF1aPVv9W+1bjVstWrINWi1bjVrNW41oAg1b/VvtW11aHVrNW21aXWgNWoINWv1a/VuNaA1aXVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyODA4NzM1MTY0OTM5MzQzNjUiPiLUtNW41oLWhCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtCDVvdWt1aHVrCDWg9W41oDVsSDVpdaEINWh1oDVpdWsINWj1oDVodW91aHVrNWr1a/VtiDVodW61aHVr9W41bLVutWl1azVuNaCINWw1aHVtNWh1oA6INSz1oDVodW91aHVrNWr1a/VtiDVodW11arVtCDVr9W+1aXWgNWh1a/VodaA1aPVodW+1bjWgNW+1asg1aPVuNaA1a7VodaA1aHVttWh1bXVq9W2INWs1bzVpdWs1bXVodW11bbVqzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzAyNTUwNDcyMTc2NDkyMjI0NiI+ItS01bjWgtaEIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDVodW21aPVodW0INWw1aXVvNWh1a3VuNW91agg1aHVutWh1a/VuNWy1brVpdWs1bjWgiDVvdWt1aHVrCDWg9W41oDVsSDVpdaEINWh1oDVpdWsOiDVgNWl1bzVodWt1bjVvdW2INWh1bXVqtW0INWv1b7VpdaA1aHVr9Wh1oDVo9Wh1b7VuNaA1b7VqyDVo9W41oDVrtWh1oDVodW21aHVtdWr1bYg1b3Vr9Wm1aLVttWh1aTVq9aAINW81aXVqtWr1bTVqzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MjUxNDgwMzQzMzk0Mzg5NjY1Ij4i1ZPVuNaA1bHVpdaEINWv1oDVr9Wr1bYgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INW+1aHVtdaA1a/VtdWh1bbVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSIyNjI2OTk5NDQ5NjEwNjk1OTMwIj4i1YTVuNW81aHWgdWl1Z7VrCDVpdaEINW91a3VpdW01aHVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9mb3Jnb3RfcGF0dGVybiIgbXNnaWQ9IjI1ODg1MjE1MDExNjYwMzI3NDciPiLVgNWh1bfVvtWrINWh1brVodWv1bjVstW61bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSIyNzUxMzY4NjA1Mjg3Mjg4ODA4Ij4i1YnVodaD1avWgSDVt9Wh1b8g1b3VrdWl1bTVodW11asg1oPVuNaA1bHVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzkzMTgxNjI1NjEwMDcwNzc4NCI+ItSx1brVodWv1bjVstW61aXVrNW41oIg1bDVodW01aHWgGAg1bTVuNaC1b/WhCDVo9W41oDVrtWl1oQg1bHVpdaAIEdvb2dsZSDVsNWh1bfVvtW41b46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9Ijg4NDY4ODE0MjQxMDY0ODQ0NDciPiLVldWj1b/VodW21bjWgtW2ICjVp9Ws1oPVuNW91b8pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjU5NTgwMjgzODM5NTQ3Mzg1MjgiPiLUs9Wh1bLVv9W21aHVotWh1bwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNzEzMDg5MzY5NDc5NTc4NjMwMCI+ItWE1bjWgtW/1oQg1aPVuNaA1a7VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjEzNjQwNTE0NzMzNDc0ODU5MDgiPiLUsdW21b7VodW+1aXWgCDWhdWj1b/VodW21bjWgtW2INWv1aHVtCDVo9Wh1bLVv9W21aHVotWh1bw6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iMTY5NjkyNDc2MzY5MDM3OTA3MyI+ItWE1bjVvNWh1oHVpdWe1awg1aXWhCDVsdWl1oAg1oXVo9W/1aHVttW41oLVttWoINWv1aHVtCDVo9Wh1bLVv9W21aHVotWh1bzVqDpcbtSx1bXWgdWl1azVpdaEICI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+IjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjcxMTQ2MjczNTEyODY5MzM4NjciPiLVjdW/1bjWgtWj1b7VuNaC1bQg1acuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3VubG9ja19sYWJlbCIgbXNnaWQ9IjczNzQ0MDQ4MzIyMDY2NzA1NCI+ItSx1brVodWv1bjVstW61aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc291bmRfb25fbGFiZWwiIG1zZ2lkPSI5MDY4ODc3NTc2NTEzNDI1OTcwIj4i1YHVodW11bbVqCDVtNWr1aHWgdW21aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc291bmRfb2ZmX2xhYmVsIiBtc2dpZD0iOTk2ODIyODI1MTU0MzE5MDI2Ij4i1LHVttWx1aHVtdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9zdGFydCIgbXNnaWQ9IjM5NDEwNDU1MDI5MzMxNDI4NDciPiLVjdWt1aXVtNWh1bXVqyDVsNWh1b7VodaE1bjWgtW01agg1b3Vr9W91b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9jbGVhcmVkIiBtc2dpZD0iNTU4MzQ3OTcyMTAwMTYzOTU3OSI+ItWN1a3VpdW01aHVtiDVtNWh1oTWgNW+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYWNjZXNzX3BhdHRlcm5fY2VsbF9hZGRlZCIgbXNnaWQ9IjY3NTYwMzEyMDgzNTkyOTI0ODciPiLUsdW+1aXVrNWh1oHVvtWl1awg1acg1b7VodW21aTVodWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9kZXRlY3RlZCIgbXNnaWQ9IjQ5ODg3MzA4OTU1NTQwNTcwNTgiPiLVjdWt1aXVtNWh1bXVqyDVsNWh1b7VodaE1bjWgtW01bYg1aHVvtWh1oDVv9W+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4g1Y7Vq9W71aXVqSAlMiRkIG9mICUzJGQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9hZGRfd2lkZ2V0IiBtc2dpZD0iODI3MzI3NzA1ODcyNDkyNDY1NCI+ItSx1b7VpdWs1aHWgdW21aXVrCDVvtWr1bvVpdWpOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i1LTVodW/1aHWgNWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLUsdW61aHVr9W41bLVutW01aHVtiDVv9Wh1oDVodWu1oTVtiDVqNW21aTVrNWh1bXVttW+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2NvbGxhcHNlZCIgbXNnaWQ9IjYzNjY5OTIwNjY5MzYwNzYzOTYiPiLUsdW61aHVr9W41bLVutW01aHVtiDVv9Wh1oDVodWu1oTVqCDVpdW/INWnINWu1aHVrNW+1aHVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldCIgbXNnaWQ9IjY1MjcxMzEwMzk3NDE4MDgyNDAiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDVvtWr1bvVpdWpOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdXNlcl9zZWxlY3RvciIgbXNnaWQ9IjEyMjY3OTgzNzA5MTM2OTg4OTYiPiLVldWj1b/VvtW41bLVqyDVqNW21b/WgNWr1bkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3N0YXR1cyIgbXNnaWQ9IjgwMDgyNjQ2MDM5MzU5MzA2MTEiPiLUv9Wh1oDVo9Wh1b7Vq9Wz1aHVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfY2FtZXJhIiBtc2dpZD0iODkwNDIzMTE5NDE4MTExNDYwMyI+ItWW1bjVv9W41a3WgdWr1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlnYXVyZF9hY2Nlc3NpYmlsaXR5X21lZGlhX2NvbnRyb2xzIiBtc2dpZD0iMjYyMjA5NjU0MjkyMTYxODA2Ij4i1YTVpdWk1avVoSDVr9Wh1oDVo9Wh1b7VuNaA1bjWgtW01bbVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9zdGFydCIgbXNnaWQ9Ijg3MzY4NTM2MTU1ODg4MjgxOTciPiLVjtWr1bvVpdWp1bbVpdaA1asg1b7VpdaA1aHVpNWh1b3VodW+1bjWgNW41oLVtNWoINW01aXVr9W21aHWgNWv1aXVrCDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiLVjtWr1bvVpdWp1asg1b7VpdaA1aHVpNWh1b3VodW+1bjWgNW41oLVtNW2INWh1b7VodaA1b/VvtWl1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZGVsZXRlZCIgbXNnaWQ9IjQ0MjYyMDQyNjM5MjkyMjQ0MzQiPiLVjtWr1bvVpdWpIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+LdWoINW71bbVu9W+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2V4cGFuZF9sb2NrX2FyZWEiIG1zZ2lkPSI1MTk4NTk3MjA5MzQxNzgwMjQiPiLUuNW21aTVrNWh1bXVttWl1awg1aHVutWh1a/VuNWy1brVtNWh1bYg1b/VodaA1aHVrtW41oLVqdW11bjWgtW21ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV91bmxvY2siIG1zZ2lkPSIyOTU5OTI4NDc4NzY0Njk3MjU0Ij4i1LfVu9WrINWh1brVodWv1bjVstW61bjWgtW0OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl91bmxvY2siIG1zZ2lkPSIxNDkwODQwNzA2MDc1MjQ2NjEyIj4i1Y3VrdWl1bTVodW11bjVviDVodW61aHVr9W41bLVutW41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+ItS01aXVtNaE1bjVviDVodW61aHVr9W41bLVutW41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4iUGluLdW2INWh1brVodWv1bjVstW61b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGFzc3dvcmRfdW5sb2NrIiBtc2dpZD0iNzY3NTc3NzYyMzkxMjE1NTA4OSI+ItSz1aHVstW/1bbVodWi1aHVvNWrINWh1brVodWv1bjVstW61bjWgtW0OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl9hcmVhIiBtc2dpZD0iNzY3OTg5MTMyNDUwOTU5NzkwNCI+ItWN1a3VpdW01aHVtdWrINW/1aHWgNWh1a7WhDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4i1Y3VodWw1aXWgdW01aHVtiDVv9Wh1oDVodWu1oQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF9jaGFyYWN0ZXIiIG1zZ2lkPSI3MzM2NDcwNTM1Mzg1MDA5NTIzIj4i1aLVttW41oLVtdWp1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF93b3JkIiBtc2dpZD0iNzA3NTU3MDMyODM3NDkxODY2MCI+ItWi1aHVvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW51bGFyaXR5X2xhYmVsX2xpbmsiIG1zZ2lkPSI1ODE1NTA4ODgwNzgyNDg4MjY3Ij4i1bDVstW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW51bGFyaXR5X2xhYmVsX2xpbmUiIG1zZ2lkPSI1NzY0MjY3MjM1MDI2MTIwODg4Ij4i1aPVq9WuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9hbXBtIiBtc2dpZD0iNDU4NDMzODA4MzUyOTM1NTk4MiI+Ijx4bGlmZjpnIGlkPSJIT1VSIj4lLWw8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IkFNUE0iPiVQPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfY2FwX2FtcG0iIG1zZ2lkPSIyMDgzNDY1OTkyOTQwNDQ0MzY2Ij4iPHhsaWZmOmcgaWQ9IkhPVVIiPiUtbDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iQU1QTSI+JXA8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3RfZmFpbGVkIiBtc2dpZD0iNTQxMDI3MDMyOTExNDIxMjA0MSI+ItSz1bjWgNWu1aHWgNWh1bbVodW11avVtiDVqdWl1b3Vv9WoINWx1aHVrdW41bLVvtWl1oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub3Rfc3lzdGVtIiBtc2dpZD0iNDQzNTIwMTY1Njc2NzI3NjcyMyI+IkZBQ1RPUllfVEVTVCDVo9W41oDVrtW41bLVuNaC1anVtdW41oLVttWoINW01avVodW11bYg1aHVu9Wh1a/WgdW+1bjWgtW0INWnIC/VsNWh1bTVodWv1aHWgNWj1bjWgtW0L9Wu1oDVodWj1oDVuNaC1bTCoNW/1aXVstWh1aTWgNW+1aHVrsKg1oPVodWp1aXVqdW21aXWgNWrINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3Rfbm9fYWN0aW9uIiBtc2dpZD0iODcyOTkxODc0Nzk5OTk4NTYxIj4i1YnVqyDVo9W/1bbVvtWl1awg1bjVuSDVtNWrINaD1aHVqdWl1aksINW41oDVqCDVodW61aHVsNW41b7VuNaC1bQg1acgRkFDVE9SWV9URVNUINWj1bjWgNWu1bjVstW41oLVqdW11bjWgtW21ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3RfcmVib290IiBtc2dpZD0iNjMyMDE2ODIwMzA1MDc5MTY0MyI+ItWO1aXWgNWh1aLVpdW81bbVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMTk4NzQ4Mzk3NzgzNDYwMzg3MiI+IsKrPHhsaWZmOmcgaWQ9IlRJVExFIj4lczwveGxpZmY6Zz7Cuy3VqyDVp9W71bjWgtW0INWh1b3VvtW41oLVtCDVp2AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfdGl0bGVfZGVmYXVsdCIgbXNnaWQ9IjY5NjE5MDMyMTM3Mjk2Njc1NzMiPiJKYXZhU2NyaXB0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWRfdGl0bGUiIG1zZ2lkPSIyNjE5Mzc2NTU1NTI1MTE2NTkzIj4i1YDVodW91b/VodW/1aXVrCDVr9W41bLVtNW21bjWgNW41bfVuNaC1bTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkX3Bvc2l0aXZlX2J1dHRvbiIgbXNnaWQ9IjMxMTI3NTIwMTA2MDA0ODQxMzAiPiLUvNaE1aXVrCDVodW11b0g1afVu9WoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWRfbmVnYXRpdmVfYnV0dG9uIiBtc2dpZD0iNTYxNDg2MTI5MzAyNjA5OTcxNSI+ItWE1bbVodWsINWh1bXVvSDVp9W71bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWQiIG1zZ2lkPSIzNDY4ODE2MzU3MDk1Mzc4NTkwIj4iPHhsaWZmOmcgaWQ9Ik1FU1NBR0UiPiVzPC94bGlmZjpnPlxuXG7VjtW91b/VodWe1bAg1aXWhCwg1bjWgCDWgdWh1bbVr9Wh1bbVuNaC1bQg1aXWhCDVsNWl1bzVodW21aHVrCDVodW11b0g1afVu9Wr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9sYWJlbCIgbXNnaWQ9IjY4NjAyNjE3NTg2NjU4MjUwNjkiPiLVgNWh1b3Vv9Wh1b/VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG91YmxlX3RhcF90b2FzdCIgbXNnaWQ9IjQ1OTUwNDY1MTU0MDAyNjg4ODEiPiLVgNW41oLVt9Wh1a9gINWv1oDVr9W21aHVr9WrINWw1brVpdaEYCDVtNWl1a7VodaB1bbVpdWs1bjWgiDWhyDWg9W41oTWgNWh1oHVttWl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfdGhpc19mb3JtIiBtc2dpZD0iNDYxNjc1ODg0MTE1NzgxNjY3NiI+ItS71bbWhNW21aHVrNaA1aHWgdW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNldHVwX2F1dG9maWxsIiBtc2dpZD0iNzEwMzQ5NTA3MDE4MDU5MDgxNCI+ItS01bbVpdWsINWr1bbWhNW21aHVrNaA1aHWgdW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3NfbmFtZV9zZXBhcmF0b3IiIG1zZ2lkPSI2MzUwMTQ1MTU0Nzc5NzA2NzcyIj4iICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3Nfc3VtbWFyeV9uYW1lX2Zvcm1hdCIgbXNnaWQ9IjMyNjgwNDEwNTQ4OTkyMTQ5NDUiPiIkMSQyJDMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX3N1bW1hcnlfc2VwYXJhdG9yIiBtc2dpZD0iNzQ4MzMwNzg5MzE3MDMyNDEyOSI+IiwgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYWRkcmVzc19zdW1tYXJ5X2Zvcm1hdCIgbXNnaWQ9IjQ4NzQ0NTk0NTU3ODY4MjczNDQiPiIkMSQyJDMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wcm92aW5jZSIgbXNnaWQ9IjIyMzE4MDY1NTM4NjM0MjIzMDAiPiLUs9Wh1b7VodW8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcG9zdGFsX2NvZGUiIG1zZ2lkPSI0Njk2NDMwNDA3Njg5Mzc3MTA4Ij4i1ZPVuNW91b/VodW11avVtiDVq9W21aTVpdaE1b0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9zdGF0ZSIgbXNnaWQ9IjY5ODg4OTQxOTU1MjAwNDQ2MTMiPiLVhtWh1bDVodW21aMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF96aXBfY29kZSIgbXNnaWQ9Ijg2OTc1NDQ1OTI2MjczMjI5NDYiPiLVk9W41b3Vv9Wh1bXVq9W2INWv1bjVpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2NvdW50eSIgbXNnaWQ9IjIzNzA3Mzc3MTAyMDM2Mjg5MSI+ItWE1aHWgNWmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfaXNsYW5kIiBtc2dpZD0iNDAyMDEwMDg3NTk4NDY2NzAyNSI+ItS/1bLVptWrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZGlzdHJpY3QiIG1zZ2lkPSI4NDAwNzM1MDczMzkyMjY3NjcyIj4i1YfWgNW71aHVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2RlcGFydG1lbnQiIG1zZ2lkPSI1MzQzMjc5NDYyNTY0NDUzMzA5Ij4i1LTVpdW61aHWgNW/1aHVtNWl1bbVvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3ByZWZlY3R1cmUiIG1zZ2lkPSIyMDI4NDk5NDg1MDY1ODAwNDE5Ij4i1YrWgNWl1obVpdWv1b/VuNaC1oDVoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3BhcmlzaCIgbXNnaWQ9IjgyMDIyMDYxMDU0Njg4MjAwNTciPiLUvtW41oLVrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FyZWEiIG1zZ2lkPSIzNTQ3NDA5MDUwODg5OTUyNDIzIj4i1Y/VodaA1aHVrtaEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZW1pcmF0ZSIgbXNnaWQ9IjI4OTM4ODA5Nzg4MzU2OTg4MTgiPiLUt9W01avWgNW41oLVqdW11bjWgtW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9IjM3NzUyNjU3NzU0MDUxMDY5ODMiPiLVr9Wh1oDVpNWh1awg1bHVpdaAINW+1aXVoiDVp9W71aHVttWr1bfVpdaA1agg1ocg1brVodW/1bTVuNaC1anVtdW41oLVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSI4NDYyMzc4MjI2NjAwNDM5NjU4Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWv1aHWgNWk1aHVrCDVpNWr1b/VodaA1a/VudWrINWh1bXWgdWl1azVodWuINWi1bjVrNW41oAgVVJMLdW21aXWgNWrINW61aHVv9W01bjWgtWp1bXVuNaC1bbVqCDWhyDVpNWr1b/VodaA1a/VudWrINWi1bjVrNW41oAg1afVu9Wh1bbVq9W31aXWgNWoOiDVhtW31bjWgtW0LiDVodW11b0g1anVuNaC1bXVrNW/1b7VuNaC1anVtdW41oLVttWoINW51asg1a/VodaA1bjVsiDVo9W41oDVrtWh1a7VvtWl1awg1a/VuNWy1bTVttWh1a/VqyDVpNWr1b/VodaA1a/Vq9W51bbVpdaA1asg1a/VodW0INW+1aXVoiDVptW21bbVodaA1a/VtNWh1bYg1bDVttWh1oDVodW+1bjWgNW41oLVqdW11bjWgtW21bbVpdaA1bjVviDVodW11awg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINWv1bjVstW01avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9IjM3MTQ3ODUxNjUyNzMzMTQ0OTAiPiLVo9aA1aXVrCDVvtWl1aIg1afVu9Wh1bbVq9W31aXWgNWoINaHINW61aHVv9W01bjWgtWp1bXVuNaC1bbVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjgyNTUyNzQ2OTE0NTc2MDkyMiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWg9W41oPVuNWt1aXVrCDVpNWr1b/VodaA1a/VudWrINW61aHVv9W01bjWgtWp1bXVuNaC1bbVqCDVr9Wh1bQg1bHVpdaAINWj1oDVodW91aHVrNWr1a/VuNaC1bQg1brVodWw1b7VodWuINWn1bvVodW21avVt9Wl1oDVqDog1LHVtdW2INWv1aHWgNW41bIg1acg1anVuNaC1bXVrCDVv9Wh1awg1bDVodW+1aXVrNW+1aHVrtWr1bYg1bvVttW71aXVrCDVr9Wh1bQg1oPVuNaD1bjVrdWl1awg1aTVq9W/1aHWgNWv1bnVqyDVv9W+1bXVodWs1bbVpdaA1ag6INWG1bfVuNaC1bQuINWh1bXVvSDVqdW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW21agg1bnVqyDVr9Wh1oDVuNWyINWj1bjWgNWu1aHVrtW+1aXVrCDVr9W41bLVtNW21aHVr9WrINWk1avVv9Wh1oDVr9Wr1bnVttWl1oDVqyDVr9Wh1bQg1b7VpdWiINWm1bbVttWh1oDVr9W01aHVtiDVsNW21aHWgNWh1b7VuNaA1bjWgtWp1bXVuNaC1bbVttWl1oDVuNW+INWh1bXVrCDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1a/VuNWy1bTVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0OTczODk1MzEwMTQxODU1MDkiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oPVuNaD1bjVrdWl1awg1aTVq9W/1aHWgNWv1bnVqyDVutWh1b/VtNW41oLVqdW11bjWgtW21agg1a/VodW0INWx1aXWgCDVsNWl1bzVodWt1bjVvdW41oLVtCDVutWh1bDVvtWh1a4g1afVu9Wh1bbVq9W31aXWgNWoOiDUsdW11bYg1a/VodaA1bjVsiDVpyDVqdW41oLVtdWsINW/1aHVrCDVsNWh1b7VpdWs1b7VodWu1avVtiDVu9W21bvVpdWsINWv1aHVtCDWg9W41oPVuNWt1aXVrCDVpNWr1b/VodaA1a/VudWrINW/1b7VtdWh1azVttWl1oDVqDog1YbVt9W41oLVtC4g1aHVtdW9INWp1bjWgtW11azVv9W+1bjWgtWp1bXVuNaC1bbVqCDVudWrINWv1aHWgNW41bIg1aPVuNaA1a7VodWu1b7VpdWsINWv1bjVstW01bbVodWv1asg1aTVq9W/1aHWgNWv1avVudW21aXWgNWrINWv1aHVtCDVvtWl1aIg1abVttW21aHWgNWv1bTVodW2INWw1bbVodaA1aHVvtW41oDVuNaC1anVtdW41oLVttW21aXWgNW41b4g1aHVtdWsINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVr9W41bLVtNWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbGFybSIgbXNnaWQ9IjEzNzkyOTQ1NTYzNjIwOTE4MTQiPiLVpNW21aXVrCDVodWm1aTVodW21bfVodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QWxhcm0iIG1zZ2lkPSIzMTYzOTIwMzkxNTc0NzM4NDgiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1b3VodWw1bTVodW21aXVrCDVptWh1oDVqdW41oLWgdWr1bnVqyDVrtaA1aHVo9aA1bjWgtW0INW/1aXVstWh1aTWgNW+1aHVrsKg1aHVptWk1aHVttW31aHVttWoOiDUttWh1oDVqdW41oLWgdWr1bnVqyDVuNaA1bjVtyDVsNWh1b7VpdWs1b7VodWu1bbVpdaAINW51aXVtiDVr9Wh1oDVuNWyINWv1avWgNWh1bzVpdWsINWh1bXVvSDVsNWh1b/Vr9W41oLVqdW11bjWgtW21ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hZGRWb2ljZW1haWwiIG1zZ2lkPSI1NTI1NjYwMDI2MDkwOTU5MDQ0Ij4i1aHVvtWl1azVodaB1bbVpdWsINWx1aHVtdW21aHVtdWr1bYg1oPVuNW91b8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hZGRWb2ljZW1haWwiIG1zZ2lkPSI2NjA0NTA4NjUxNDI4MjUyNDM3Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INWh1b7VpdWs1aHWgdW21aXVrCDVsNWh1bLVuNaA1aTVodWj1oDVuNaC1anVtdW41oLVttW21aXWgCDVsdWl1oAg1bHVodW11bbVodW11avVtiDWg9W41b3Vv9WrINWh1oDVr9Wy1bjWgtW0OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iNTk2MjIyNDE1ODk1NTI3MzkzMiI+ItaD1bjWg9W41a3VpdWsINWk1avVv9Wh1oDVr9W51asg1aHVt9Wt1aHWgNWw1aHVo9aA1aHVr9Wh1bYg1b/VpdWy1aHVttaE1asg1anVuNaC1bXVrNW/1b7VuNaC1anVtdW41oLVttW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iMTA4Mzc0MzIzNDUyMjYzODc0NyI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDWg9W41oPVuNWt1aXVrCDVptW21bbVodaA1a/VudWrINWh1bfVrdWh1oDVsNWh1aPWgNWh1a/VodW2INWk1avWgNaE1asg1anVuNaC1bXVrNW/1b7VuNaC1anVtdW41oLVttW21aXWgNWoOiDVjtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqCDVr9Wh1oDVuNWyINWl1bYg1oXVo9W/1aHVo9W41oDVrtWl1awg1b3VoWAg1anVuNaC1bXVrNWh1b/WgNWl1azVuNaCINW41oLVstWh1oDVr9Wl1awg1b/VpdWy1aHVpNaA1bjWgtWp1bXVodW2INW+1aXWgNWh1aLVpdaA1bXVodWsINW/1aXVstWl1a/VuNaC1anVtdW41oLVttW21aXWgNWoINWv1aHVtNWh1bXVodWv1aHVtiDVvtWl1aIg1a/VodW11oTVpdaA1avVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BhY2thZ2VWZXJpZmljYXRpb25BZ2VudCIgbXNnaWQ9IjU1NjgxMzkxMDA2NDU4MjkxMTciPiLVsNWh1b3Vv9Wh1b/VpdWsINaD1aHVqdWl1anVttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BhY2thZ2VWZXJpZmljYXRpb25BZ2VudCIgbXNnaWQ9Ijg0Mzc1OTAxOTA5OTA4NDMzODEiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1bDVodW91b/VodW/1aXVrCwg1bjWgCDWg9Wh1anVpdWp1agg1b/VpdWy1aHVpNaA1aXVrNWrINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFBhY2thZ2VWZXJpZmllciIgbXNnaWQ9IjQxODc3ODY3OTMzNjAzMjY2NTQiPiLVtNWr1aHVttWh1awg1oPVodWp1aXVqdWrINW91b/VuNaC1aPVq9W51avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQYWNrYWdlVmVyaWZpZXIiIG1zZ2lkPSIzMTgwNzQxNzczMjMzODYyMTI2Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INW91aXWg9Wh1a/VodW21aHVv9Wr1oDVuNW71agg1oPVodWp1aXVqdWrINW91b/VuNaC1aPVq9W51bbVpdaA1asg1bDVodaA1oHVuNaC1bQg1a/VodW/1aHWgNWl1aw6INWN1bjVvtW41oDVodWv1aHVtiDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1bDVodW01aHWgCDVpdaA1aLWh9WnINW51brVpdW/1oQg1acg1aHVttWw1oDVodWq1aXVt9W/INWs1avVttWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VyaWFsUG9ydCIgbXNnaWQ9IjU0NjA4MzMyNzY1NDYzMTA3NiI+ItW01bjWgtW/1oQg1aPVuNaA1a7VpdWsINWw1aHVu9W41oDVpNWh1a/VodW2INW01avVodaB1oTVttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXJpYWxQb3J0IiBtc2dpZD0iMjk5MTYzOTk4NTIyNDU5ODE5MyI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVvdWl1oPVodWv1aHVttWh1b/Vq9aA1bjVu9WoINW01bjWgtW/1oQg1aPVuNaA1a7VpdWsINWw1aHVu9W41oDVpNWh1a/VodW2INW01avVodaB1oTVttWl1oBgINaF1aPVv9Wh1aPVuNaA1a7VpdWs1bjVviBTZXJpYWxNYW5hZ2VyIEFQSS3VqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0NvbnRlbnRQcm92aWRlcnNFeHRlcm5hbGx5IiBtc2dpZD0iNTA3Nzc3NDI5Nzk0MzQwOTI4NSI+ItWk1oDVvdWr1oEg1bTVodW/1bnVpdWsINWi1bjVvtWh1bbVpNWh1a/VuNaC1anVtdW41oLVtiDVv9aA1aHVtNWh1aTWgNW41bLVttWl1oDVq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29udGVudFByb3ZpZGVyc0V4dGVybmFsbHkiIG1zZ2lkPSI0NTQ0MzQ2NDg2Njk3ODUzNjg1Ij4i1Y3VpdaD1aHVr9Wh1bbVodW/1avWgNW41bvVqCDVsNW21aHWgNWh1b7VuNaA1bjWgtWp1bXVuNaC1bYg1acg1b/VodWs1avVvSDVr9Wh1brVvtWl1awg1a7VodW81aHVtdW41oLVqdW11aHVtiDVtNWh1b/VodWv1aHWgNWh1oDVttWl1oDVqyDVsNWl1b8g1b7VodWw1aHVttWh1a/Vq9aBOsKg1Y3VuNW+1bjWgNWh1a/VodW2INWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVsNWh1bTVodaAINWl1oDVotaH1acg1bnVutWl1b/WhCDVp8Kg1aHVttWw1oDVodWq1aXVt9W/INWs1avVttWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlTG9jayIgbXNnaWQ9IjM1Mjc1NTgzNjY2MTY2ODA4ODkiPiLVr9Wh1b3VpdaB1bbVpdWsINW91aHWgNaE1asg1aHVvtW/1bjVtNWh1b8g1anVodaA1bTVodaB1bjWgtW01bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVMb2NrIiBtc2dpZD0iMTY1NTYyNTgzMjE2Njc3ODQ5MiI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVvdWl1oPVodWv1aHVttWh1b/Vq9aA1bjVu9WoINWw1aHVtNWh1a/VodaA1aPVq9W2INW/1aXVstWl1a/VodaB1bbVpdWsINWw1aHWgNW01aHWgCDVqtWh1bTVodW21aHVr9WrINW01aHVvdWr1bZgINW91aHWgNaE1agg1bbVuNaA1aHWgdW21aXVrNW41oIg1bbVutWh1b/VodWv1bjVviDVuNW5INaD1bjVrdWh1abVpNWh1a/VodW2INW+1aXWgNWh1aLVpdW81bbVtNWh1bYg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX21lc3NhZ2UiIG1zZ2lkPSI3NjczNDQ2ODcxMzkxOTU3OTAiPiLVkdWh1bbVr9Wh1bbVuNaC1Z7VtCDVpdaELCDVuNaAINWk1avVv9Wh1oDVr9Wr1bnVqCDVsNWr1bfVqyDVodW11b0g1aPVodWy1b/VttWh1aLVodW81ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9ub3Rub3ciIG1zZ2lkPSI2Mzg5Njc1MzE2NzA2Njk5NzU4Ij4i1YjVuSDVsNWr1bTVoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfcmVtZW1iZXIiIG1zZ2lkPSI2NDkxODc5Njc4OTk2NzQ5NDY2Ij4i1YDVq9W31aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfbmV2ZXIiIG1zZ2lkPSI4Mjc0MzMwMjk2Nzg1ODU1MTA1Ij4i1LXWgNWi1aXWhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9wZW5fcGVybWlzc2lvbl9kZW55IiBtc2dpZD0iNzM3NDAzNjcwODMxNjYyOTgwMCI+ItS01bjWgtaEINW51bjWgtW21aXWhCDVodW11b0g1afVu9WoINWi1aHWgdWl1azVuNaCINWp1bjWgtW11azVv9W+1bjWgtWp1bXVuNaC1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV4dF9jb3BpZWQiIG1zZ2lkPSI0OTg1NzI5NTI0NjcwMTMxMzg1Ij4i1Y/VpdaE1b3Vv9WoINW61aHVv9Wz1aXVttW+1aHVriDVpyDVvdWl1bLVtNWh1b/VodWt1b/VodWv1avVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb3JlX2l0ZW1fbGFiZWwiIG1zZ2lkPSI0NjUwOTE4OTIzMDgzMzIwNDk1Ij4i1LHVvtWl1azVq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlcGVuZF9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI1NzIyMTQ0NjE2NzYwMTU2NDIiPiLVkdWh1bbVrysiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NwYWNlX3Nob3J0Y3V0X2xhYmVsIiBtc2dpZD0iMjQxMDMyODYzOTI3MjE2MjUzNyI+ItWi1aHWgdWh1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2VudGVyX3Nob3J0Y3V0X2xhYmVsIiBtc2dpZD0iMjc0MzM2Mjc4NTExMTMwOTY2OCI+ItW01bjWgtW/1oQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZV9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjM2NTgxNzgwMDcyMDI3NDgxNjQiPiLVu9W21bvVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoX2dvIiBtc2dpZD0iODI5ODAxNjY2OTgyMjE0MTcxOSI+ItWI1oDVuNW21aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fc2VhcmNoIiBtc2dpZD0iNjc0OTgyNjYzOTA5ODUxMjEyMCI+ItWI1oDVuNW21aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fcXVlcnkiIG1zZ2lkPSI1OTExNzc4NTkzMTI1MzU1MTI0Ij4i1YjWgNW41bbVpdWsINWw1aHWgNaB1bjWgtW01agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX2NsZWFyIiBtc2dpZD0iMTMzMDI4MTk5MDk1MTgzMzAzMyI+ItWE1aHWhNaA1aXVrCDVsNWh1oDWgdW41oLVtNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9zdWJtaXQiIG1zZ2lkPSIyNjg4NDUwMTMzMjk3OTgzNTQyIj4i1YjWgtWy1aHWgNWv1aXVrCDVsNWh1oDWgdW41oLVtNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl92b2ljZSIgbXNnaWQ9IjI0NTMyMDM2OTU2NzQ5OTQ0NDAiPiLVgdWh1bXVttWh1bXVq9W2INW41oDVuNW21bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ190aXRsZSIgbXNnaWQ9Ijc0NjA2OTQwNzAzMDk3MzAxNDkiPiLVhNWr1aHWgdW21aXVntWsICDVgNW61bTVodW2INW01avVu9W41oHVuNW+INWw1aXVv9Wh1abVuNW/1bjWgtW01ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ19tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NjU1ODg3NTM5MDg5OTEwNTc3Ij4iPHhsaWZmOmcgaWQ9IkFDQ0VTU0lCSUxJVFlfU0VSVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPi3VqCDWgdWh1bbVr9Wh1bbVuNaC1bQg1acg1bTVq9Wh1oHVttWl1awgwqvVgNWl1b/VodWm1bjVv9W41oLVtCDVsNW61bTVodW2INW01avVu9W41oHVuNW+wrsg1bzVpdWq1avVtNWoOiDUtdaA1aIg1bTVq9Wh1oHVvtWh1a4g1acgwqvVgNWl1b/VodWm1bjVv9W41oLVtCDVsNW61bTVodW2INW01avVu9W41oHVuNW+wrsg1bzVpdWq1avVtNWoLCDVpNW41oLWhCDVr9Wh1oDVuNWyINWl1oQg1azVvdWl1awg1a/VodW0INW/1aXVvdW21aXVrCDVttWv1aHWgNWh1aPWgNW41oLVqdW11bjWgtW21agsINWp1aUg1avVttW5INWnINWx1aXWgCDVtNWh1b/VqyDVv9Wh1a8sINWv1aHVtCDVr9Wh1b/VodaA1aXVrCDVqtWl1b3Vv9Wl1oBgICDVo9aA1aHVvdWh1azVq9Wv1asg1bDVpdW/INaD1bjVrdWj1bjWgNWu1aHVr9aB1aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVfZXhwbG9yZV9ieV90b3VjaF93YXJuaW5nX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNzA4MTk5NjcyODUyMzczMTk1Ij4iPHhsaWZmOmcgaWQ9IkFDQ0VTU0lCSUxJVFlfU0VSVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPi3VqCDWgdWh1bbVr9Wh1bbVuNaC1bQg1acg1bTVq9Wh1oHVttWl1awgwqvVgNWl1b/VodWm1bjVv9W41oLVtCDVsNW61bTVodW2INW01avVu9W41oHVuNW+wrsg1bzVpdWq1avVtNWoOiDUtdaA1aIg1bTVq9Wh1oHVvtWh1a4g1acgwqvVgNWl1b/VodWm1bjVv9W41oLVtCDVsNW61bTVodW2INW01avVu9W41oHVuNW+wrsg1bzVpdWq1avVtNWoLCDVpNW41oLWhCDVr9Wh1oDVuNWyINWl1oQg1azVvdWl1awg1a/VodW0INW/1aXVvdW21aXVrCDVttWv1aHWgNWh1aPWgNW41oLVqdW11bjWgtW21agsINWp1aUg1avVttW5INWnINWx1aXWgCDVtNWh1b/VqyDVv9Wh1a8sINWv1aHVtCDVr9Wh1b/VodaA1aXVrCDVqtWl1b3Vv9Wl1oBgICDVsNWl1bzVodWt1bjVvdWrINWw1aXVvyDWg9W41a3Vo9W41oDVrtWh1a/WgdWl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib25lTW9udGhEdXJhdGlvblBhc3QiIG1zZ2lkPSI3Mzk2Mzg0NTA4OTUzNzc5OTI1Ij4iMSDVodW01avVvSDVodW81aHVuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJlZm9yZU9uZU1vbnRoRHVyYXRpb25QYXN0IiBtc2dpZD0iOTA5MTM0NTQ2ODM2NDk5ODI2Ij4i1LHVvtWl1azVqyDVt9W41oLVvyDWhNWh1bYgMSDVodW01avVvSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX3NlY29uZHNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDg2OTg3MDA1NjU0Nzg5NjAxMSI+IjEg1b7VodW11oDVr9W11aHVtiDVodW81aHVuyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzkwMzcwNjgwNDM0OTU1NjM3OSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INW+1aHVtdaA1a/VtdWh1bYg1aHVvNWh1bsiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Im51bV9taW51dGVzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMzMDY3ODc0MzMwODg4MTAxOTEiPiIxINaA1bjVutWlINWh1bzVodW7IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMTc2OTQyMDA4OTE1NDU1MTE2Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g1oDVuNW61aUg1aHVvNWh1bsiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Im51bV9ob3Vyc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI5MTUwNzk3OTQ0NjEwODIxODQ5Ij4iMSDVqtWh1bQg1aHVvNWh1bsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI0NjcyNzMyMzk1ODc1ODc1NjkiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDVqtWh1bQg1aHVvNWh1bsiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Imxhc3RfbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjMwNjk5OTI4MDgxNjQzMTgyNjgiPiLVjtWl1oDVu9Wr1bYgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g1oXWgNWl1oDVq9W2IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ibGFzdF9tb250aCIgbXNnaWQ9IjM5NTkzNDY3Mzk5NzkwNTU0MzIiPiLUsdW21oHVtdWh1awg1aHVtNWr1b0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvbGRlciIgbXNnaWQ9IjUyMTE5NzUwMjI4MTU1NTQ4NDAiPiLUsdW+1aXVrNWrINWw1avVtiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX2RheXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODYxMzU4NTM0Mzk4MTE1ODIwIj4i1aXWgNWl1a8iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI0Nzk1ODY0NjYxNTMzMTQ2MzMiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDWhdaAINWh1bzVodW7IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fc2Vjb25kcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjI3Mjk3NDU1NjA5NTQ5MDUxMDIiPiIxINW+1aHVtdaA1a/VtdWh1bbVq9aBIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMjQxOTI2MTE2NDQzOTc0Njg3Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g1b7VodW11oDVr9W11aHVttWr1oEiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImluX251bV9taW51dGVzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODc5MzA5NTI1MTMyNTIwMDM5NSI+IjEg1oDVuNW61aXVq9aBIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzMzMwNzEzOTM2Mzk5NDQ4NzQ5Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g1oDVuNW61aXVq9aBIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1faG91cnMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI3MTY0MzUzMzQyNDc3NzY5OTk5Ij4iMSDVqtWh1bTVq9aBIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDcyOTA2NzczNTM3MjczODkiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDVqtWh1bTVq9aBIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fZGF5cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU0MTMwODg3NDMwMDk4Mzk1MTgiPiLVvtWh1bLVqCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTEwOTQ0OTM3NTEwMDk1MzI0NyI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INaF1oDVq9aBIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX3NlY29uZHNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMTg0OTAzNjg0MDIwMDA2OTExOCI+IjEg1b7WgNWvINWh1bzVodW7IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzNjk5MTY5MzY2NjUwOTMwNDE1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g1b7WgNWvLiDVodW81aHVuyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X251bV9taW51dGVzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjYzNjE0OTAxNDcxMTM4NzE1NDUiPiIxINaA1bjVutWlINWh1bzVodW7IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NTExNjQ5Njg1OTcxNTA3MTAiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDWgNW41brVpSDVodW81aHVuyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X251bV9ob3Vyc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0Nzk2MjEyMDM5NzI0NzIyMTE2Ij4iMSDVqtWh1bQg1aHVvNWh1bsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY4ODk5NzA3NDU3NDg1Mzg5MDEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDVqtWh1bQg1aHVvNWh1bsiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1fZGF5c19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4NDYzMTYxNzExNDkyNjgwMzA5Ij4i1aXWgNWl1a8iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM0NTMzNDI2Mzk2MTY0ODExOTEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDWhdaAINWh1bzVodW7IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfaW5fbnVtX3NlY29uZHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODQyMjI1MzcwNzk1MDY2Mjk5Ij4iMSDVvtaA1a8t1avWgSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ5NTg4MDEwODgyNTgwNTEwOCI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INW+1oDVry3Vq9aBIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfaW5fbnVtX21pbnV0ZXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1NjI3ODYxNDk5MjgyODQ4NzgiPiIxINaA1bjVutWl1avWgSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDIxNjExMzI5MjcwNjU2ODcyNiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INaA1bjVutWl1avWgSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNzQ3MDgxMTgxMjQwNDUyNDYiPiIxINWq1aHVtNWr1oEiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM3MDUzNzM3NjY3OTgwMTM0MDYiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDVqtWh1bTVq9aBIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfaW5fbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIyMTc4NTc2MjU0Mzg1NzM5ODU1Ij4i1b7VodWy1agiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI5NzMwNjI5NjgwMzgzNTU5OTEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDWhdaA1avWgSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl9kYXRlIiBtc2dpZD0iOTA5Mzk0OTc1Nzc1NzQ0NTExNyI+Ijx4bGlmZjpnIGlkPSJEQVRFIj4lczwveGxpZmY6Zz4t1avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl90aW1lIiBtc2dpZD0iNTUwNjgzMTI0NDI2MzA4Mzc5MyI+ItWq1aHVtNWoIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4t1avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl95ZWFyIiBtc2dpZD0iNTA0MDM5NTY0MDcxMTg2NzE3NyI+Ijx4bGlmZjpnIGlkPSJZRUFSIj4lczwveGxpZmY6Zz4g1anVvtWh1a/VodW21avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheSIgbXNnaWQ9IjgxNDQxOTU3NzYwNTgxMTk0MjQiPiLWhdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5cyIgbXNnaWQ9IjQ3NzQ1NDc2NjEwMjEzNDQ2MDIiPiLWhdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91ciIgbXNnaWQ9IjIxMjY3NzE5MTY0MjYxODk0ODEiPiLVqtWh1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VycyIgbXNnaWQ9Ijg5NDQyNDAwNTI2Njg1Mjk5MyI+ItWq1aHVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZSIgbXNnaWQ9IjkxNDg4Nzg2NTc3MDM3Njk4NjgiPiLWgNW41brVpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZXMiIG1zZ2lkPSI1NjQ2MDAxMDA1ODI3MDM0NTA5Ij4i1oDVuNW61aUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWNvbmQiIG1zZ2lkPSIzMTg0MjM1ODA4MDIxNDc4Ij4i1b7WgNWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vjb25kcyIgbXNnaWQ9IjMxNjE1MTUzNDcyMTY1ODkyMzUiPiLVvtaA1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWVrIiBtc2dpZD0iNTYxNzk2MTUzNzE3MzA2MTU4MyI+ItW31aHVotWh1akiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWVrcyIgbXNnaWQ9IjY1MDk2MjM4MzQ1ODM5NDQ1MTgiPiLVt9Wh1aLVodWpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhciIgbXNnaWQ9IjQwMDExMTgyMjEwMTM4OTIwNzYiPiLVv9Wh1oDVqyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJzIiBtc2dpZD0iNjg4MTU3NzcxNzk5MzIxMzUyMiI+ItW/1aHWgNWrIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJkdXJhdGlvbl9zZWNvbmRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjk2MjAxNTUyODM3Mjk2OTQ4MSI+IjEg1b7VodW11oDVr9W11aHVtiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTg4NjEwNzc2NjU3NzE2Njc4NiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INW+1aHVtdaA1a/VtdWh1bYiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImR1cmF0aW9uX21pbnV0ZXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0OTE1NDE0MDAyNTQ2MDg1NjE3Ij4iMSDWgNW41brVpSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzE2NTE4NzE2OTIyNDkwODc3NSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INaA1bjVutWlIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJkdXJhdGlvbl9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9Ijg5MTc0Njc0OTEyNDg4MDk5NzIiPiIxINWq1aHVtCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzg2Mzk2Mjg1NDI0Njc3MzkzMCI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INWq1aHVtCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9IlZpZGVvVmlld19lcnJvcl90aXRsZSIgbXNnaWQ9IjM1MzQ1MDkxMzU0MzgzNTMwNzciPiLVj9Wl1b3VodW21bXVuNaC1anVqyDVrdW21aTVq9aAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RleHRfaW52YWxpZF9wcm9ncmVzc2l2ZV9wbGF5YmFjayIgbXNnaWQ9IjMxODY2NzAzMzU5Mzg2NzA0NDQiPiLUsdW11b0g1b/VpdW91aHVttW11bjWgtWp1agg1bDVpdW81aHWgNWx1aHVr9W01aHVtiDVpdW21anVodWv1aEg1bnVpyDVodW11b0g1b3VodaA1oTVuNW+OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlZpZGVvVmlld19lcnJvcl90ZXh0X3Vua25vd24iIG1zZ2lkPSIzNDUwNDM5MTU1MTg3ODEwMDg1Ij4i1LHVtdW9INW/1aXVvdWh1bbVtdW41oLVqdWoINWw1bbVodaA1aHVvtW41oAg1bnVpyDVttW+1aHVo9Wh1oDVr9Wl1aw6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX2J1dHRvbiIgbXNnaWQ9IjI4MjIyMzgyMTUxMDA2Nzk1OTIiPiLUvNWh1b4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGl2ZV90aW1lIiBtc2dpZD0iMTgxODU1NzE3NzgyOTQxMTQxNyI+Ijx4bGlmZjpnIGlkPSJEQVRFIj4lMSRzPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IlRJTUUiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9vbiIgbXNnaWQ9IjcyNDUzNTM1Mjg4MTg1ODc5MDgiPiLVr9Wl1b3WhdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iTm9vbiIgbXNnaWQ9IjMzNDIxMjc3NDUyMzAwMTMxMjciPiLUv9Wl1b3WhdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWlkbmlnaHQiIG1zZ2lkPSI3MTY2MjU5NTA4ODUwNDU3NTk1Ij4i1a/VpdW91aPVq9W31aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Ik1pZG5pZ2h0IiBtc2dpZD0iNTYzMDgwNjkwNjg5Nzg5MjIwMSI+ItS/1aXVvdWj1avVt9Wl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGFwc2VkX3RpbWVfc2hvcnRfZm9ybWF0X21tX3NzIiBtc2dpZD0iNDQzMTU1NTk0MzgyODcxMTQ3MyI+Ijx4bGlmZjpnIGlkPSJNSU5VVEVTIj4lMSQwMmQ8L3hsaWZmOmc+Ojx4bGlmZjpnIGlkPSJTRUNPTkRTIj4lMiQwMmQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxhcHNlZF90aW1lX3Nob3J0X2Zvcm1hdF9oX21tX3NzIiBtc2dpZD0iMTg0NjA3MTk5NzYxNjY1NDEyNCI+Ijx4bGlmZjpnIGlkPSJIT1VSUyI+JTEkZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9Ik1JTlVURVMiPiUyJDAyZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9IlNFQ09ORFMiPiUzJDAyZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RBbGwiIG1zZ2lkPSI2ODc2NTE4OTI1ODQ0MTI5MzMxIj4i1LjVttW/1oDVpdWsINWi1bjVrNW41oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1dCIgbXNnaWQ9IjMwOTI1Njk0MDg0Mzg2MjYyNjEiPiLUv9W/1oDVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29weSIgbXNnaWQ9IjI2ODE5NDYyMjk1MzM1MTE5ODciPiLVitWh1b/Vs9Wl1bbVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzdGUiIG1zZ2lkPSI1NjI5ODgwODM2ODA1MDM2NDMzIj4i1Y/VpdWy1aHVpNaA1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlcGxhY2UiIG1zZ2lkPSI1NzgxNjg2MDU5MDYzMTQ4OTMwIj4i1ZPVuNWt1aHWgNWr1bbVpdWsLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlIiBtc2dpZD0iNjA5ODY4NDg0NDAyMTY5Nzc4OSI+ItWL1bbVu9Wl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb3B5VXJsIiBtc2dpZD0iMjUzODIxMTU3OTU5NjA2NzQwMiI+ItWK1aHVv9Wz1aXVttWl1awgVVJMLdWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0VGV4dE1vZGUiIG1zZ2lkPSIxMDE4NjkxODE1MTQzMTY1MzI2Ij4i1LjVttW/1oDVpdWsINW/1aXWhNW91b8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXh0U2VsZWN0aW9uQ0FCVGl0bGUiIG1zZ2lkPSI1MjM2ODUwMzk0MzcwODIwMzU3Ij4i1Y/VpdaE1b3Vv9WrINWo1bbVv9aA1bjWgtWp1bXVuNaC1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRUb0RpY3Rpb25hcnkiIG1zZ2lkPSI0MzUyMTYxNTM0NTEwMDU3ODc0Ij4i1LHVvtWl1azVodaB1bbVpdWsINWi1aHVvNWh1oDVodW21bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlVGV4dCIgbXNnaWQ9IjY5Nzk2Njg0Mjg0NTgxOTkwMzQiPiLVi9W21bvVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5wdXRNZXRob2QiIG1zZ2lkPSIxNjUzNjMwMDYyMzA0NTY3ODc5Ij4i1YTVuNaC1b/WhNWh1aPWgNW01aHVtiDVpdWy1aHVttWh1a/VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVkaXRUZXh0TWVudVRpdGxlIiBtc2dpZD0iNDkwOTEzNTU2NDk0MTgxNTQ5NCI+ItWP1aXWhNW91b/VqyDVo9W41oDVrtW41bLVuNaC1anVtdW41oLVttW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X2ludGVybmFsX3N0b3JhZ2Vfdmlld190aXRsZSIgbXNnaWQ9IjU1NzYyNzI0OTYzNjU2ODQ4MzQiPiLVitWh1bDVuNaB1aHVtdWr1bYg1b/VodaA1aHVrtaE1agg1b3VutWh1bzVvtW41oLVtCDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxvd19pbnRlcm5hbF9zdG9yYWdlX3ZpZXdfdGV4dCIgbXNnaWQ9IjY2NDA1MDU4MTc2MTc0MTQzNzEiPiLVgNWh1bTVodWv1aHWgNWj1asg1bjWgNW41bcg1aPVuNaA1a7VodW81bjWgtW11anVttWl1oAg1bDVttWh1oDVodW+1bjWgCDVpyDVudWh1bfVrdWh1b/VpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX3J1bm5pbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODcxODMzNTEyMTA2MDc4NzkxNCI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4t1bYg1aHVt9Wt1aHVv9Wl1oHVvtW41oLVtCDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9ydW5uaW5nX25vdGlmaWNhdGlvbl90ZXh0IiBtc2dpZD0iNDY1MzU4Njk0Nzc0NzMzMDA1OCI+ItWA1brVpdaEYCDVrNaA1aHWgdW41oLWgdWr1bkg1b/VpdWy1aXVr9W41oLVqdW11bjWgtW21bbVpdaA1agg1a/VodW0wqDVrtaA1aHVo9Wr1oDVqCDVpNWh1aTVodaA1aXWgdW21aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvayIgbXNnaWQ9IjU5NzAwNjA0MzA1NjI1MjQ5MTAiPiLUvNWh1b4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI2NDQyNTYwNTcxMjU5OTM1MTMwIj4i1YnVpdWy1aHWgNWv1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllcyIgbXNnaWQ9IjUzNjI5ODIzMDMzMzc5NjkzMTIiPiLUvNWh1b4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJubyIgbXNnaWQ9IjUxNDE1MzEwNDQ5MzU1NDE0OTciPiLVidWl1bLVodaA1a/VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlhbG9nX2FsZXJ0X3RpdGxlIiBtc2dpZD0iMjA0OTY1ODcwODYwOTA0MzEwMyI+ItWI1oLVt9Wh1aTWgNW41oLVqdW11bjWgtW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9hZGluZyIgbXNnaWQ9Ijc5MzM2ODEyNjAyOTYwMjExODAiPiLUstWl1bzVttW41oLVtC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGl0YWxfb24iIG1zZ2lkPSIxNTQ0NjgyNzU1NTE0NDk0Mjk4Ij4i1YTVq9Wh1oHVttWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBpdGFsX29mZiIgbXNnaWQ9IjY4MTU4NzAzODY5NzI4MDU4MzIiPiLUsdW21bvVodW/1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndoaWNoQXBwbGljYXRpb24iIG1zZ2lkPSI0NTMzMTg1OTQ3MDY0NzczMzg2Ij4i1aHVvtWh1oDVv9Wl1awg1aPVuNaA1a7VuNWy1bjWgtWp1bXVuNaC1bbVqGAg1oXVo9W/1aHVo9W41oDVrtWl1azVuNW+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzVXNlIiBtc2dpZD0iNDU4MzAxODM2ODAwMDYxMDQzOCI+ItWV1aPVv9Wh1aPVuNaA1a7VpdWsINWs1bzVpdWs1bXVodW11bYg1aHVtdW9INWj1bjWgNWu1bjVstW41oLVqdW11aHVtiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNsZWFyRGVmYXVsdEhpbnRNc2ciIG1zZ2lkPSIzMjUyNTg0Njg5NTEyMDc3MjU3Ij4i1YTVodaE1oDVpdWsINWs1bzVpdWs1bXVodW11bbVqCDVgNWh1bTVodWv1aHWgNWj1asg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgCAmZ3Q7INS+1oDVodWj1oDVpdaAICZndDvVhtWl1oDVotWl1bzVttW+1aHVriDVp9W71avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VBY3Rpdml0eSIgbXNnaWQ9Ijc0ODY4NzYxNDc3NTE4MDMzMzMiPiLUuNW21b/WgNWl1awg1aPVuNaA1a7VuNWy1bjWgtWp1bXVuNaC1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VVc2JBY3Rpdml0eSIgbXNnaWQ9IjY4OTQ3NDg0MTYwNzM1ODM1MDkiPiLUuNW21b/WgNWl1oQg1bDVodW+1aXVrNW+1aHVriBVU0Ig1b3VodaA1oTVqyDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9BcHBsaWNhdGlvbnMiIG1zZ2lkPSIyOTkxODE0MjczOTM2NTA0Njg5Ij4i1YjVuSDVtNWrINWw1aHVvtWl1azVvtWh1a4g1bnVqyDVr9Wh1oDVuNWyINWv1aHVv9Wh1oDVpdWsINWh1bXVvSDVo9W41oDVrtW41bLVuNaC1anVtdW41oLVttWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFlcnJfdGl0bGUiIG1zZ2lkPSIxOTA1ODAwNTYwMzE3MTM3NzUyIj48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFlcnJfYXBwbGljYXRpb24iIG1zZ2lkPSI5MzI2Mjg0ODgwMTMwOTI3NzYiPiLVkdWh1b7VuNaELCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+LdWoINWo1bbVpNWw1aHVv9W+1aXVrCDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX3Byb2Nlc3MiIG1zZ2lkPSI0NTA3MDU4OTk3MDM1Njk3NTc5Ij4i1ZHVodW+1bjWhCwgPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+INWj1bjWgNWu1ajVttWp1aHWgdWoINWk1aHVpNWh1oDVpdWsINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl90aXRsZSIgbXNnaWQ9IjQzNTE5NDg0ODE0NTkxMzU3MDkiPjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX2FjdGl2aXR5X2FwcGxpY2F0aW9uIiBtc2dpZD0iMTkwNDQ3NzE4OTA1NzE5OTA2NiI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTIkczwveGxpZmY6Zz4t1agg1bnVqyDVodaA1bHVodWj1aHVttaE1bjWgtW0OlxuXG7VkdWh1bbVr9Wh1bbVuNaC1Z7VtCDVpdaEINaD1aHVr9Wl1awg1aHVtdW2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hY3Rpdml0eV9wcm9jZXNzIiBtc2dpZD0iNTc3NjIwOTg4MzI5OTA4OTc2NyI+Ijx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g1aPVuNaA1a7VuNWy1bjWgtWp1bXVuNaC1bbVqCDVudWrINW61aHVv9Wh1b3VrdWh1bbVuNaC1bQ6XG5cbtWR1aHVttWv1aHVttW41oLVntW0INWl1oQg1aHVtdW2INaD1aHVr9Wl1aw6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX2FwcGxpY2F0aW9uX3Byb2Nlc3MiIG1zZ2lkPSI4OTQxNzU3NjA3MzQwNDgxMDU3Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPi3VqCDVudWrINWh1oDVsdWh1aPVodW21oTVuNaC1bQ6INWR1aHVttWv1aHVttW41oLVntW0INWl1oQg1oPVodWv1aXVrCDVodW11bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX3Byb2Nlc3MiIG1zZ2lkPSI2NTEzMjA5ODc0ODgwNTE3MTI1Ij4iPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+INWj1bjWgNWu1ajVttWp1aHWgdWoINW51asg1aHWgNWx1aHVo9Wh1bbWhNW41oLVtDpcblxu1ZHVodW21a/VodW21bjWgtWe1bQg1aXWhCDWg9Wh1a/VpdWsINWh1bXVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmb3JjZV9jbG9zZSIgbXNnaWQ9IjgzNDYwNzIwOTQ1MjEyNjU2MDUiPiLUvNWh1b4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXBvcnQiIG1zZ2lkPSI0MDYwMjE4MjYwOTg0Nzk1NzA2Ij4i1LbVpdWv1bjWgtW11oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YWl0IiBtc2dpZD0iNzE0NzExODIxNzIyNjMxNzczMiI+ItWN1brVodW91aXWhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlYnBhZ2VfdW5yZXNwb25zaXZlIiBtc2dpZD0iMzI3Mjc1ODM1MTEzODEyMjUwMyI+ItS31bvVqCDVudWrINW61aHVv9Wh1b3VrdWh1bbVuNaC1bQ6XG5cbtWR1aHVttWv1aHVttW41oLVntW0INWl1oQg1oPVodWv1aXVrCDVodW11bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSIxNTQ3OTk3NzgwNTA2NzEzNTgxIj4i1YDVodW+1aXVrNW+1aHVrtWoINW+1aXWgNWh1bDVstW+1aXVrCDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX3JlcGxhY2UiIG1zZ2lkPSI2MjAyNDk4OTQ5OTcwMjgxNDEyIj4iPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPi3VtiDVodW11arVtCDVodW31a3VodW/1bjWgtW0INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX29yaWdpbmFsIiBtc2dpZD0iMTg4MTAyMDIzMDIxNjY4NjgzIj4iPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPi3VqCDVqyDVvdWv1abVotWh1bbVpSDVqdW41bLVodaA1a/VvtWl1awg1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX3NjYWxlIiBtc2dpZD0iMzIwMjk1NTY2NzY3NTk0NDQ5OSI+ItSx1b3Vv9Wr1bPVodW21aHVr9Wh1oDVo9Wl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fY29tcGF0X21vZGVfc2hvdyIgbXNnaWQ9IjQwMTM4Nzg4NzY0ODY2NTU4OTIiPiLVhNWr1bfVvyDWgdW41oLVtdaBINW/1aHVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9oaW50IiBtc2dpZD0iMTA2NDUyNDA4NDU0MzMwNDQ1OSI+ItS/1oDVr9Wr1bYg1aHVr9W/1avVvtWh1oHVttWl1awg1b3VoSDVgNWh1bTVodWv1aHWgNWj1asg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgNW41oLVtCAmYW1wO2d0INS+1oDVodWj1oDVpdaAICZndDsg1YbVpdaA1aLVpdW81bbVuNaC1bTVttWl1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic212X2FwcGxpY2F0aW9uIiBtc2dpZD0iMzMwNzIwOTE5MjE1NTQ0MjgyOSI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g1a7WgNWh1aPVq9aA1aggKNWj1bjWgNWu1ajVttWp1aHWgSA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTIkczwveGxpZmY6Zz4pINWt1aHVrdW/1aXVrCDVpyDVq9aAINWr1bbWhNW21aHVsNWh1oDVr9Wh1aTWgNW+1aHVriDUvdWr1b3VvyDVvNWl1arVq9W0ICDWhNWh1bLVodaE1aHVr9Wh1bbVuNaC1anVtdW41oLVttWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtdl9wcm9jZXNzIiBtc2dpZD0iNTEyMDM5NzAxMjA0NzQ2MjQ0NiI+Ijx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDVo9W41oDVrtWo1bbVqdWh1oHVqCDVrdWh1a3Vv9Wl1awg1acg1avWgCDVq9W21oTVttWh1bDVodaA1a/VodWk1oDVvtWh1a4g1L3Vq9W91b8g1bzVpdWq1avVtCDWhNWh1bLVodaE1aHVr9Wh1bbVuNaC1anVtdW41oLVttWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX3RpdGxlIiBtc2dpZD0iMTU4NDE5MjI4NTQ0MTQwNTc0NiI+IkFuZHJvaWQt1agg1bbVuNaA1aHWgdW+1bjWgtW0INWnLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfYXBrIiBtc2dpZD0iNzkwNDA0MjY4MjExMTUyNjE2OSI+ItWA1aHVvtWl1azVvtWh1a7VqCDWhdW61b/Vq9W01aHVrNWh1oHVvtW41oLVtCDVpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiUxJGQ8L3hsaWZmOmc+LdWr1oEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRkPC94bGlmZjpnPi3VqzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19zdGFydGluZ19hcHBzIiBtc2dpZD0iNDUxNDY0NTE2MzQ2OTI2NzEzIj4i1YDVodW+1aXVrNW+1aHVrtW21aXWgNWoINW01aXVr9W21aHWgNWv1bjWgtW0INWl1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfY29tcGxldGUiIG1zZ2lkPSIxNDA1OTU0NzU0MTEyOTk5MjI5Ij4i1LLVpdW81bbVuNaC1bTVtiDVodW+1aHWgNW/1b7VuNaC1bQg1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X25vdGlmaWNhdGlvbiIgbXNnaWQ9IjkwODcwNjM5ODU3NzY2MjYxNjYiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lMSRzPC94bGlmZjpnPi3VtiDVodW31a3VodW/1bjWgtW0INWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X25vdGlmaWNhdGlvbl9kZXRhaWwiIG1zZ2lkPSIxNzIxNjgxNzQxNjE3ODk4ODY1Ij4i1YDVutWl1oRgINWw1aHVvtWl1azVvtWh1a7Vq9W2INWh1bbWgdW21aXVrNW41oIg1bDVodW01aHWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9zd2l0Y2hlcl90aXRsZSIgbXNnaWQ9IjcxNTMxNjcwODU0MDMyOTgxNjkiPiLVk9W41a3VodaA1a/VpdWe1awg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9zd2l0Y2hlcl90ZXh0IiBtc2dpZD0iNzAyMjYzMTkyNDUzNDQwNjQwMyI+ItWE1aXVryDVodW11awg1a7WgNWh1aPVq9aAINWh1oDVpNWl1bYg1aHVt9Wt1aHVv9W41oLVtCDVpywg1bjWgNWoINW61aXVv9aEINWnINWk1aHVpNWh1oDVpdaB1bbVpdWsLCDVttWh1a3WhNWh1bYg1aTVuNaC1oQg1a/Vr9Wh1oDVuNWy1aHVttWh1oQg1b3Vr9W91aXVrCDVttW41oDVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvbGRfYXBwX2FjdGlvbiIgbXNnaWQ9IjQ5MzEyOTE3MjIzODU2NjI4MiI+ItWO1aXWgNWh1aTVodW81bbVodWsIDx4bGlmZjpnIGlkPSJPTERfQVBQIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9sZF9hcHBfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMDgyMDk0Mjc1NTgwMzU4MDQ5Ij4i1YnVvdWv1b3VpdWsINW21bjWgCDVsNWh1b7VpdWs1b7VodWuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5ld19hcHBfYWN0aW9uIiBtc2dpZD0iNTQ3Mjc1NjkyNjk0NTQ0MDcwNiI+ItWN1a/Vq9Wm1aIgPHhsaWZmOmcgaWQ9Ik9MRF9BUFAiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmV3X2FwcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjE5MzIxNDM1OTgzNzE1MzczNDAiPiLUtNWh1aTVodaA1aXWgdW21aXVrCDVttWh1a3Vr9Wr1bYg1a7WgNWh1aPVq9aA1bYg1aHVvNWh1bbWgSDVutWh1bDVutWh1bbVtNWh1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VuZFRleHQiIG1zZ2lkPSI1MjA5ODc0NTcxOTU5NDY5MTQyIj4i1LjVttW/1oDVpdaEINWj1bjWgNWu1bjVstW41oLVqdW11bjWgtW2INW/1aXWhNW91b/VqyDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX3Jpbmd0b25lIiBtc2dpZD0iNjg4NTQyMTQwNjg0NTczNDY1MCI+ItS21aHVttWj1aHVr9WrINWx1aHVtdW21asg1bjWgtWq1aPVttW41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfbXVzaWMiIG1zZ2lkPSI1NDIxNjUxMTU3MTM4NjI4MTcxIj4i1YTVpdWk1avVoSDVsdWh1bXVttWrINWi1aHWgNWx1oDVuNaC1anVtdW41oLVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9tdXNpY19oaW50X3BsYXlpbmdfdGhyb3VnaF9ibHVldG9vdGgiIG1zZ2lkPSI5MTY1OTg0Mzc5Mzk0NjAxNTMzIj4i1YbVvtWh1aPVodaA1a/VuNaC1bQg1afCoEJsdWV0b290aC3VqyDVtNWr1bvVuNaB1bjVviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9tdXNpY19oaW50X3NpbGVudF9yaW5ndG9uZV9zZWxlY3RlZCIgbXNnaWQ9IjgzMTA3Mzk5NjA5NzMxNTYyNzIiPiLVjdWh1bDVtNWh1bbVvtWl1awg1acg1aHVttWx1aHVtdW2INWm1aHVttWj1aXWgNWh1bbVoyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9jYWxsIiBtc2dpZD0iMzk0MTY4MDA0MTI4Mjc4ODcxMSI+ItWE1bjWgtW/1oTVodW11avVtiDVptWh1bbVo9WrINWx1aHVtdW21asg1bjWgtWq1aPVttW41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfYmx1ZXRvb3RoX2NhbGwiIG1zZ2lkPSIyMDAyODkxOTI2MzUxMTUxNTM0Ij4iQmx1ZXRvb3RoLdWrINW21aXWgNWm1aHVttWj1asg1aLVodaA1bHWgNW41oLVqdW11bjWgtW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2FsYXJtIiBtc2dpZD0iMTk4NTE5MTYxNjA0MjY4OTEwMCI+ItS21aHWgNWp1bjWgtaB1avVudWrINWx1aHVtdW21asg1bjWgtWq1aPVttW41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfbm90aWZpY2F0aW9uIiBtc2dpZD0iMjQyMjI2NTY1Njc0NDI3NjcxNSI+ItS+1aHVttW41oLWgdW41oLVtNW21aXWgNWrINWx1aHVtdW21asg1bjWgtWq1aPVttW41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfdW5rbm93biIgbXNnaWQ9IjE0MDAyMTk2Njk3NzA0NDU5MDIiPiLVgdWh1bXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX2JsdWV0b290aCIgbXNnaWQ9IjY1Mzg4OTQxNzcyNTU5NjQzNDAiPiJCbHVldG9vdGgt1asg1bHVodW11bbVqyDVuNaC1arVo9W21bjWgtWp1bXVuNaC1bbVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX3JpbmdlciIgbXNnaWQ9IjMzMjYwMDM4NDcwMDYxNjI0OTYiPiLUttWh1bbVo9Wl1oDVodW21aPVqyDVotWh1oDVsdaA1bjWgtWp1bXVuNaC1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9pbmNhbGwiIG1zZ2lkPSI4ODkwMDczMjE4MTU0NTQzMzk3Ij4i1LbVodW21aPVqyDVsdWh1bXVttWrINWi1aHWgNWx1oDVuNaC1anVtdW41oLVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX21lZGlhIiBtc2dpZD0iNDIxNzMxMTcxOTY2NTE5NDIxNSI+ItWE1aXVpNWr1aEg1bHVodW11bbVqyDVotWh1oDVsdaA1bjWgtWp1bXVuNaC1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9ub3RpZmljYXRpb24iIG1zZ2lkPSI3MDQ0OTg2NTQ2NDc3MjgyMjc0Ij4i1L7VodW21bjWgtaB1bjWgtW01bbVpdaA1asg1bHVodW11bbVqyDVuNaC1arVo9W21bjWgtWp1bXVuNaC1bbVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX2RlZmF1bHQiIG1zZ2lkPSIzNzg5NzU4OTgwMzU3Njk2OTM2Ij4i1LzVvNWl1azVtdWh1bXVtiDVptWh1bbVo9Wl1oDVodW21aMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV9kZWZhdWx0X3dpdGhfYWN0dWFsIiBtc2dpZD0iODEyOTU2MzQ4MDg5NTk5MDM3MiI+ItS81bzVpdWs1bXVodW11bYg1abVodW21aPVpdaA1aHVttWjICg8eGxpZmY6ZyBpZD0iQUNUVUFMX1JJTkdUT05FIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV9zaWxlbnQiIG1zZ2lkPSI3OTM3NjM0MzkyNDA4OTc3MDYyIj4i1YjVuSDVtNWl1a/VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX3BpY2tlcl90aXRsZSIgbXNnaWQ9IjM1MTUxNDM5MzkxNzUxMTkwOTQiPiLUttWh1bbVo9Wl1oDVodW21aPVttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV91bmtub3duIiBtc2dpZD0iNTQ3NzkxOTk4ODcwMTc4NDc4OCI+ItSx1bbVsNWh1bXVvyDVptWh1bbVo9Wl1oDVodW21aMiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9IndpZmlfYXZhaWxhYmxlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjY1NDEyMzk4NzQxODE2ODY5MyI+IldpLUZpINaB1aHVttaB1agg1bDVodW91aHVttWl1azVqyDVpyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDE5MjQyNDQ4OTE2ODM5NzM4NiI+ItWw1aHVvdWh1bbVpdWs1asg1aXVtiBXaS1GaSDWgdWh1bbWgdWl1oAiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9IndpZmlfYXZhaWxhYmxlX2RldGFpbGVkIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMTYzNDEwMTQ1MDM0MzI3NzM0NSI+ItSy1aHWgSBXaS1GaSDWgdWh1bbWgdWoINWw1aHVvdWh1bbVpdWs1asg1aciPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc5MTU4OTUzMjM2NDQyOTI3NjgiPiLVgNWh1b3VodW21aXVrNWrINWl1bYg1aLVodaBIFdpLUZpINaB1aHVttaB1aXWgCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfYXZhaWxhYmxlX3NpZ25faW4iIG1zZ2lkPSI0MDI5NDg5NzE2NjA1MjU1Mzg2Ij4i1YTVuNaC1b/WhCDVo9W41oDVrtWl1oQgV2ktRmkg1oHVodW21oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXR3b3JrX2F2YWlsYWJsZV9zaWduX2luIiBtc2dpZD0iODQ5NTE1NTU5MzM1ODA1NDY3NiI+ItWE1bjWgtW/1oQg1aPVuNaA1a7VpdWsINaB1aHVttaBIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIG5ldHdvcmtfYXZhaWxhYmxlX3NpZ25faW5fZGV0YWlsZWQgKDgwMDAwODE5NDE0NDc5NzYxMTgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3dhdGNoZG9nX25ldHdvcmtfZGlzYWJsZWQiIG1zZ2lkPSI3OTA0MjE0MjMxNjUxNTQ2MzQ3Ij4i1YnVsNWh1bvVuNWy1b7VpdaBINW01avVodW21aHVrCBXaS1GaS3Vq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkX2RldGFpbGVkIiBtc2dpZD0iNTU0ODc4MDc3NjQxODMzMjY3NSI+IiDVuNaC1bbVqyDVqdW41oLVtdWsINWr1bbVv9Wl1oDVttWl1b8g1a/VodW6OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijk3NjExNzgyNjU5MzI0NTE3Ij4iV2ktRmkg1bjWgtWy1avVsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX3R1cm5vbl9tZXNzYWdlIiBtc2dpZD0iMjkwOTI1MDk0MjI5OTYyNzI0NCI+ItWE1aXVr9W21aHWgNWv1aXVrCBXaS1GaSDVuNaC1bLVq9W2OiDUsdW11bYg1a/VodW21bvVodW/1asgV2ktRmkg1bDVodWz1aHVrdW41oDVpC/VqdWl1aog1a/VpdW/INWj1bjWgNWu1bjVstW41oLVqdW11bjWgtW21ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZmFpbGVkX21lc3NhZ2UiIG1zZ2lkPSIzNzYzNjY5Njc3OTM1NjIzMDg0Ij4i1YnVsNWh1bvVuNWy1b7VpdaBINW01aXVr9W21aHWgNWv1aXVrCBXaS1GaSDVuNaC1bLVq9W2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VuYWJsZWRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjA2ODMyMTg4MTY3MzczNDg4NiI+IldpLUZpINW41oLVstWr1bLVtiDVodW81oHVodW21oEg1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9lbmFibGVkX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTYzODk0OTk1Mzk5Mzg5NDMzNSI+ItWA1brVpdaEINWv1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oDVqyDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMTY0NTI2NzI1OTI3MjgyOTU1OSI+ItS41bbVpNW41oLVttWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWNsaW5lIiBtc2dpZD0iMjExMjIyNTQ1MTcwNjEzNzg5NCI+ItWE1aXWgNWq1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ludml0YXRpb25fc2VudF90aXRsZSIgbXNnaWQ9IjEzMTg5NzUxODUxMTIwNzA3MzQiPiLVgNaA1aHVvtWl1oDVtiDVuNaC1bLVodaA1a/VvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9pbnZpdGF0aW9uX3RvX2Nvbm5lY3RfdGl0bGUiIG1zZ2lkPSI0OTU4ODAzOTQ4NjU4NTMzNjM3Ij4i1YTVq9Wh1oHVtNWh1bYg1bDWgNWh1b7VpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZnJvbV9tZXNzYWdlIiBtc2dpZD0iNTcwMzg5MTc0NzMxOTUxNzY5Ij4i1YjWgtWy1aHWgNWv1bjVsmAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF90b19tZXNzYWdlIiBtc2dpZD0iMjQ4OTY4OTc0NTIyMDQ0MDk5Ij4i1YjWgtW0YCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VudGVyX3Bpbl9tZXNzYWdlIiBtc2dpZD0iNTkyMDkyOTU1MDM2NzgyODk3MCI+ItWE1bjWgtW/1oTVodWj1oDVpdaEINW61aHVsNWh1bbVu9W+1bjVsiBQSU4t1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfc2hvd19waW5fbWVzc2FnZSIgbXNnaWQ9Ijg1MzA1NjMzMjM4ODA5MjEwOTQiPiJQSU4t1ahgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZnJlcXVlbmN5X2NvbmZsaWN0X21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgwMTI5ODEyNTc3NDIyMzI0NzUiPiLUs9aA1aHVvdWh1azVq9Wv1agg1arVodW01aHVttWh1a/VodW+1bjWgNWh1brVpdW9INWv1aHVttW71aHVv9W+1asgV2ktRmkt1avWgSwg1oTVodW21asg1aTVpdW8INWh1bXVtiDVr9Wh1brVodWv1oHVvtWh1a4g1acgPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPi3Vq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZnJlcXVlbmN5X2NvbmZsaWN0X21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MzYzOTA3MjEzNzg3NDY5MTUxIj4i1YDVpdW81aHVrdW41b3VqCDVqtWh1bTVodW21aHVr9Wh1b7VuNaA1aHVutWl1b0g1a/VodW21bvVodW/1b7VqyBXaS1GaS3Vq9aBLCDWhNWh1bbVqyDVpNWl1bwg1aHVtdW2INW01avVodaB1b7VodWuINWnIDx4bGlmZjpnIGlkPSJERVZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4t1avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9jaGFyYWN0ZXIiIG1zZ2lkPSIzMzY1NTUwMTIwNjE3NzAxNzQ1Ij4i1LbVpdW/1aXVstWl1awg1bbVt9Wh1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF90aXRsZSIgbXNnaWQ9IjcyOTY2MTI3ODExMjg5MTc3MTkiPiJTTVMg1bDVodWy1bjWgNWk1aHVo9aA1bjWgtWp1bXVuNaC1bbVttWl1oDVqyDVuNaC1bLVodaA1a/VuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9tZXNzYWdlIiBtc2dpZD0iMzg2Nzg5OTE2OTY1MTQ5NjQzMyI+IiZsdDtiJmd0Ozx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7LdWoINW41oLVstWh1oDVr9W41oLVtCDVpyDVtNWl1a4g1anVvtW41b4gU01TINWw1aHVstW41oDVpNWh1aPWgNW41oLVqdW11bjWgtW21bbVpdaAOiDVkdWh1bbVr9Wh1bbVuNaC1Z7VtCDVpdaEINWp1bjWgtW11azVodW/1oDVpdWsINWh1bXVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVt9Wh1oDVuNaC1bbVodWv1aXVrCDVuNaC1bLVodaA1a/VpdWsINWw1aHVstW41oDVpNWh1aPWgNW41oLVqdW11bjWgtW21bbVpdaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX3llcyIgbXNnaWQ9IjM2NjM3MjU5OTM4NTU4MTY4MDciPiLUudW41oLVtdWs1aHVv9aA1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX25vIiBtc2dpZD0iNjI1NDM4NTYxMzk1NTM0OTgyIj4i1LrVrdW/1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fbWVzc2FnZSIgbXNnaWQ9IjE2NDU0MzY0NjYyODUzMTA4NTUiPiImbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+LdWoJmx0Oy9iJmd0OyDVuNaC1abVuNaC1bQg1acg1bDVodWy1bjWgNWk1aHVo9aA1bjWgtWp1bXVuNaC1bYg1bjWgtWy1aHWgNWv1aXVrCAmbHQ7YiZndDs8eGxpZmY6ZyBpZD0iREVTVF9BRERSRVNTIj4lMiRzPC94bGlmZjpnPi3Vq9W2Jmx0Oy9iJmd0OzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9kZXRhaWxzIiBtc2dpZD0iMzQ5MjAyNTcxOTg2ODA3ODQ1NyI+ItSx1bXVvSAiPGZvbnQgZmdjb2xvcj0iI2ZmZmZiMDYwIj4iLdWoINWv1aHWgNW41bIg1acg1aPVodW21bHVuNaC1bTVttWl1oAg1aHVvNWh1bvVodaB1bbVpdWsIjwvZm9udD4iINWx1aXWgCDVotW71bvVodW11avVtiDVsNWh1bfVvtWrINW+1oDVoToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfcHJlbWl1bV9zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSI1NTIzODI2MzQ5MTA1MTIzNjg3Ij48Zm9udCBmZ2NvbG9yPSIjZmZmZmIwNjAiPiLVjdaA1aEg1bDVpdW/1ofVodW21oTVuNW+INWx1aXWgCDVotW71bvVodW11avVtiDVsNWh1bfVvtWr1bYg1a/VttWl1oDVr9Wh1bXVodaB1b7VqyDVsNWh1bfVq9W+OiI8L2ZvbnQ+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2FsbG93IiBtc2dpZD0iNDQ1ODg3ODYzNzExMTAyMzQxMyI+ItWI1oLVstWh1oDVr9Wl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2RlbnkiIG1zZ2lkPSIyOTI3Mzg5ODQwMjA5MTcwNzA2Ij4i1YnVpdWy1aHWgNWv1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX2Nob2ljZSIgbXNnaWQ9IjUyODk1Mzg1OTIyNzIyMTgxMzYiPiLVgNWr1bfVpdWsINWr1bQg1ajVttW/1oDVuNaC1anVtdW41oLVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfcmVtZW1iZXJfdW5kb19pbnN0cnVjdGlvbiIgbXNnaWQ9IjQ5NjA5NDQxMzMwNTIyODc0ODQiPiLUtNW41oLWhCDVr9Wh1oDVuNWyINWl1oQg1oPVuNWt1aXVrCDVvdWhINWh1b7VpdWs1asg1bjWgtW3INS/1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oDVuNaC1bTCoMKgJmd0OyDUvtaA1aHVo9aA1aXWgNW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fYWx3YXlzX2FsbG93IiBtc2dpZD0iMzI0MTE4MTE1NDg2OTQ5MzM2OCI+ItWE1avVt9W/INWp1bjWgtW11azVodW/1oDVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9uZXZlcl9hbGxvdyIgbXNnaWQ9IjQ0Njk5Mjc2NTc3NDI2OTY3MyI+ItS11oDVotWl1oQg1bnVqdW41oLVtdWs1aHVv9aA1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9yZW1vdmVkX3RpdGxlIiBtc2dpZD0iNjIyNzcxMjMxOTIyMzIyNjE4NSI+IlNJTSDWhNWh1oDVv9WoINWw1aXVvNWh1oHVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVtb3ZlZF9tZXNzYWdlIiBtc2dpZD0iMjMzMzE2NDU1OTk3MDk1ODY0NSI+ItSy1bvVu9Wh1bXVq9W2INaB1aHVttaB1agg1aHVttWw1aHVvdWh1bbVpdWs1asg1a/VrNWr1bbVqywg1bTVq9W21bnWhyDVudW+1aXWgNWh1aPVuNaA1a7VodaA1a/VpdaEINW+1aHVvtWl1oAgU0lNINaE1aHWgNW/INW/1aXVstWh1aTWgNWl1azVuNaC1oEg1bDVpdW/1bg6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX2RvbmVfYnV0dG9uIiBtc2dpZD0iODI3OTQ5OTg5MzY5OTYzNzc1Ij4i1L/VodW/1aHWgNW+1aHVriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9hZGRlZF90aXRsZSIgbXNnaWQ9IjM3MTk2NzA1MTI4ODk2NzQ2OTMiPiJTSU0g1oTVodaA1b/VqCDVodW+1aXVrNWh1oHVvtWl1awg1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fYWRkZWRfbWVzc2FnZSIgbXNnaWQ9IjY1OTk5NDUzMDExNDEwNTAyMTYiPiLVjtWl1oDVodWj1bjWgNWu1aHWgNWv1aXWhCDVsdWl1oAg1b3VodaA1oTVqGAg1aLVu9W71aHVtdWr1bYg1oHVodW21oEg1bTVuNaC1b/WhCDVuNaC1bbVpdW21aHVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVzdGFydF9idXR0b24iIG1zZ2lkPSI0NzIyNDA3ODQyODE1MjMyMzQ3Ij4i1Y7VpdaA1aHVo9W41oDVrtWh1oDVr9Wl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4MzQ5MzYyNjIzMDY4ODE5Mjk1Ij4i1Y3VodWw1bTVodW21aXVrCDVqtWh1bTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjU4Nzk0NTA2NTk0NTM3ODIyNzgiPiLVjdWh1bDVtNWh1bbVpdWsINWh1bTVvdWh1anVq9W+1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3RpbWVfc2V0IiBtc2dpZD0iNTc3NzA3NTYxNDMyMTA4Nzc1OCI+ItWN1aHVsNW01aHVttWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3RpbWVfZG9uZSIgbXNnaWQ9IjI1MDc2ODM3NTE3NTkzMDg4MjgiPiLUv9Wh1b/VodaA1b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybXNfbmV3X3Blcm1fcHJlZml4IiBtc2dpZD0iODI1Nzc0MDcxMDc1NDMwMTQwNyI+PGZvbnQgc2l6ZT0iMTIiIGZnY29sb3I9IiNmZjMzYjVlNSI+ItWG1bjWgGAgIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1zX2Rlc2NyaXB0aW9uX2FwcCIgbXNnaWQ9IjUxMzk4MzYxNDMyOTMyOTk0MTciPiLVj9aA1aHVtNWh1aTWgNW+1aHVriDVpyA8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+LdWrINWv1bjVstW01avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19wZXJtaXNzaW9ucyIgbXNnaWQ9IjcyODMzNTc3MjgyMTkzMzgxMTIiPiLUudW41oLVtdWs1b/VvtW41oLVqdW11bjWgtW21bbVpdaAINW51aXVtiDVutWh1bDVodW21bvVvtW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1fY29zdHNfbW9uZXkiIG1zZ2lkPSI0OTAyNDcwMzI0MTQyMTUxMTE2Ij4i1Y3VoSDVr9Wh1oDVuNWyINWnINWj1bjWgtW01aHWgCDVutWh1bDVodW21bvVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfYWN0aXZpdHlfdGl0bGUiIG1zZ2lkPSI0NDY1MDU1MTU3MjA5NjQ4NjQxIj4iVVNCINWm1aHVttWj1b7VodWu1aHVtdWr1bYg1a/WgNWr1bkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV90aXRsZSIgbXNnaWQ9IjU5MDE0NTkwNDEzOTg3NTE0OTUiPiJVU0It1bYg1a/VodW61aHVr9aB1b7VodWuICDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzMwODUzODA5NDMxNjQ3NzgzOSI+ItS01bjWgtaEINWv1aHVutWh1a/WgdW+1aXVrCDVpdaEINWx1aXWgCDVsNWh1bTVodWv1aHWgNWj1bnVq9W2IFVTQi3VqyDVtNWr1bvVuNaB1bjVvjog1YDVutWl1oQg1bbVpdaA1oTWh9WrINWv1bjVs9Wh1a/VqCwg1aXVqdWlINaB1aHVttWv1aHVttW41oLVtCDVpdaEINW61aHVv9Wz1aXVttWl1awg1obVodW11azVpdaA1agg1bHVpdaAINWw1aHVtNWh1a/VodaA1aPVudWrINaHINWx1aXWgCBBbmRyb2lkLdWrIFVTQiDVr9aA1avVudWrINW01avVu9aHOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MDUzNTEwMDA0NDYwMzc4MTEiPiLUtNW41oLWhCDVtNWr1aHWgdWl1awg1aXWhCDVsdWl1oAg1bDVodW01aHVr9Wh1oDVo9W51avVtiBVU0It1asg1bTVq9W71bjWgdW41b46INWA1brVpdaEINW21aXWgNaE1ofVqyDVr9W41bPVodWv1avVtiwg1aXVqdWlINaB1aHVttWv1aHVttW41oLVtCDVpdaEINW61aHVv9Wz1aXVttWl1awg1obVodW11azVpdaA1agg1bHVpdaAINWw1aHVtNWh1a/VodaA1aPVudWrINaHINWx1aXWgCBBbmRyb2lkLdWrIFNEINaE1aHWgNW/1asg1bTVq9W71oc6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfYnV0dG9uX21vdW50IiBtc2dpZD0iMTA1MjI1OTkzMDM2OTUwODIzNSI+ItWE1avVodaB1bbVpdWsIFVTQiDVr9aA1avVudWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfZXJyb3JfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzMDE3MDQ1MjE3MzY1NTQwNjU4Ij4i1L3VttWk1avWgCDVpyDVrtWh1aPVpdWswqDVsdWl1oAgVVNCINWv1oDVq9W51aggVVNCINWm1aHVttWj1b7VodWu1aHVtdWr1bYg1a/WgNWr1bnVqyDVsNWh1bTVodaAINaF1aPVv9Wh1aPVuNaA1a7VpdWs1avVvToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjg3NjAxODUxMjcxNjk3MDMxMyI+ItS91bbVpNWr1oAg1acg1a7VodWj1aXVrCDVsdWl1oAgU0Qg1oTVodaA1b/VqCBVU0Ig1abVodW21aPVvtWh1a7VodW11avVtsKg1a/WgNWr1bnVqyDVsNWh1bTVodaAINaF1aPVv9Wh1aPVuNaA1a7VpdWs1avVvToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4MTc1ODkyNTU0NzU3MjE2NTI1Ij4iVVNCLdW2INWv1aHVutWh1a/WgdW+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTM5ODIyNzgzODI4MTgzNzYzIj4i1YDVutWl1oRgINaG1aHVtdWs1aXWgNWoINW61aHVv9Wz1aXVttWl1azVuNaCINWw1aHVtNWh1oAg1bHVpdaAINWw1aHVtNWh1a/VodaA1aPVudW41oLVtCDVr9Wh1bQg1bDVodW01aHVr9Wh1oDVo9W51avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIzMzYwNTgzOTY2NjM1MTYwMTciPiLUsdW21bvVodW/1aXVrCBVU0Ig1a/WgNWr1bnVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3Bfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIxNjU2ODUyMDk4NTU1NjIzODIyIj4i1YDVutWl1oRgIFVTQiDVr9aA1avVudW2INWh1bbVu9Wh1b/VpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfdGl0bGUiIG1zZ2lkPSI2NjAxMjk4NTE3MDg3NzU4NTMiPiJVU0Ig1a/WgNWr1bnVqCDWhdWj1b/VodWj1bjWgNWu1b7VuNaC1bQg1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDI2NDAyNTI4MDc3NzIxOTUyMSI+ItWG1aHVrdaE1aHVtiBVU0Ig1a/WgNWr1bnVtiDVodW21bvVodW/1aXVrNWoLCDVodW21bvVodW/1aXWhCAowqvVsNWh1bbVpdaEwrspINWx1aXWgCBBbmRyb2lkLdWrIFVTQiDVr9aA1avVudWoINWw1aHVtNWh1a/VodaA1aPVudWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA0Mzk2OTc4MjQ2MDYxMzExNCI+ItWG1aHVrdaE1aHVtiBVU0Ig1a/WgNWr1bnVtiDVodW21bvVodW/1aXVrNWoLCDVodW21bvVodW/1aXWhCAowqvVsNWh1bbVpdaEwrspINWx1aXWgCBBbmRyb2lkLdWrIFNEINaE1aHWgNW/1agg1bDVodW01aHVr9Wh1oDVo9W51avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX2J1dHRvbl9tb3VudCIgbXNnaWQ9IjcwNjAyMTgwMzQ5MDA2OTYwMjkiPiLUsdW21bvVodW/1aXVrCBVU0Ig1a/WgNWr1bnVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfZXJyb3JfbWVzc2FnZSIgbXNnaWQ9IjE5NzAzNzQ4OTgyNjMwNjM4MzYiPiLUvdW21aTVq9aAINWh1bzVodW71aHWgdWh1b4gVVNCINWv1oDVq9W51bYg1aHVttW71aHVv9Wl1azVq9W9OiDVjdW/1bjWgtWj1aXWhCwg1aHWgNWk1bXVuNaEINWh1bbVu9Wh1b/VpdWsINWl1oQgVVNCINWw1aHVttWj1bjWgtW11oHVqCwg1aHVutWhINaD1bjWgNWx1aXWhCDVr9aA1a/Vq9W2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190aXRsZSIgbXNnaWQ9Ijk2MzAzOTAzMzQ3MDQ3ODY5NyI+ItWE1avVodaB1bbVpdWsIFVTQiDVr9aA1avVudWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX2NvbmZpcm1fa2lsbF9zdG9yYWdlX3VzZXJzX3RleHQiIG1zZ2lkPSI1MTAwNDI4NzU3MTA3NDY5NDU0Ij4i1LXVqdWlIOKAi+KAi9Wk1bjWgtaEINW01avVodaB1bbVpdaEIFVTQiDVr9aA1avVudWoLCDVuNaA1bjVtyDVrtaA1aHVo9aA1aXWgCzVuNaA1bjVttaB1avWgSDWhdWj1b/VvtW41oLVtCDVpdaELCDVr9Wk1aHVpNWh1oDVpdW2INWh1bfVrdWh1b/VpdWsINaHINWv1aHWgNW41bIg1aXVtiDVodW21bDVodW91aHVttWl1azVqyDVrNWr1bbVpdWsLCDWhNWh1bbVqyDVpNWl1bwg1bnVpdaEINWh1bbVu9Wh1b/VpdWsIFVTQiDVr9aA1avVudWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19lcnJvcl90aXRsZSIgbXNnaWQ9IjczMjM2NTg0Njk2MjY1MTQyMDciPiJVU0Ig1aPVuNaA1a7VuNWy1bjWgtWp1bXVuNaC1bbVqCDVodW21bDVodW71bjVsiDVp9aAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX29rIiBtc2dpZD0iNzM3Njk1MzE2NzAzOTg2NTcwMSI+ItS81aHVviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9tdHBfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMzY5OTkxMzA5NzM5MTU1MDM5NCI+ItS/1aHVutWh1a/WgdW+1aHVriDVpyDVuNaA1brVpdW9INW01aXVpNWr1aEg1b3VodaA1oQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjE5NjA4MTcxOTIyMTYwNjQ4MzMiPiLVhNWr1aHWgdW+1aHVriDVpyDVuNaA1brVpdW9INaG1bjVv9W41a3WgdWr1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfY2RfaW5zdGFsbGVyX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY3NzQ3MTI4Mjc4OTIwOTA3NTQiPiLVhNWr1aHWgdW+1aHVriDVpyDVuNaA1brVpdW9INW/1aXVstWh1aTWgNWr1bkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9Ijc4NDgyMzY5NzQwODc2NTM2NjYiPiLUv9Wh1brVodWv1oHVvtWh1a4g1acgVVNCINWs1oDVodW91aHWgNaE1asiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIyMjkwODU5Mzk5OTgzNzIwMjcxIj4i1YDVutWl1oRgINWh1bXVrMKgVVNCINWo1bbVv9aA1aHVttaE1bbVpdaA1asg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iOTAyMDA5MjE5NjA2MTAwNzI2MiI+ItWW1bjWgNW01aHVv9Wh1b7VuNaA1aXVntWsIFVTQiDVr9aA1avVudWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2NDg0MTU5MjE1MjY1MjYwNjkiPiLVltW41oDVtNWh1b/VodW+1bjWgNWl1Z7VrCBTRCDWhNWh1oDVv9WoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5MzQwMTY4NTM0MjU3NjEwNzgiPiLVgdWl1oAgVVNCINWv1oDVq9W51bjWgtW0INW61aHVsNW+1bjVsiDVotW41azVuNaAINaG1aHVtdWs1aXWgNWoINWv1bvVttW71b7VpdW2OiDUsdW11b0g1aPVuNaA1a7VuNWy1bjWgtWp1bXVuNaC1bbVqCDVodW21bfWgNW71aXVrNWrINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQxMzE4OTUwMjc1NDM4MzAiPiLVgdWl1oAg1oTVodaA1b/VqyDVotW41azVuNaAINW/1b7VtdWh1azVttWl1oDVqCDVr9Wv1bjWgNWl1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X2J1dHRvbl9mb3JtYXQiIG1zZ2lkPSI0MTMxMDY0NTYwMTI3NDc4Njk1Ij4i1YHWh9Wh1bnVodaDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2NzI5MDQ0Nzc4OTQ5MTg5OTE4Ij4iVVNCINW+1oDVq9W61aHVptWl1oDVrtW41oLVtNWoINW01avVodaB1b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjEwMTY2NTQ2Mjc2MjY0NzYxNDIiPiLVgNW61aXWhGAgVVNCINWv1aHWgNWj1aHVotWl1oDVuNaC1bTVqCDVr9Wh1b3VpdaB1bbVpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9pbnB1dF9tZXRob2QiIG1zZ2lkPSI0NjUzMzg3MzM2NzkxMjIyOTc4Ij4i1LjVttW/1oDVpdaEINW01bjWgtW/1oTVodWj1oDVtNWh1bYg1aXVstWh1bbVodWv1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjkwOTE2NTIxNTc3MjI0OTUxMTYiPiLUv9Wh1oDVo9Wh1b7VuNaA1aXVrCDVttWl1oDVodWu1bTVodW2INWl1bLVodW21aHVr9W21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNjIwMzExMjQ3ODA5NTExNzYyNSI+ItWW1avVptWr1a/VodWv1aHVtiDVvdW/1aXVstW21aHVt9Wh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoYXJkd2FyZSIgbXNnaWQ9Ijc1MTc4MjEwODY4ODg5OTAyNzgiPiLVjdWh1oDWhNWh1bfVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2tleWJvYXJkX2xheW91dF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIxNDA3MzY3MDE3MjYzMDMwNzczIj4i1LjVttW/1oDVpdaEINW91b/VpdWy1bbVodW31aHWgNWrINWk1avWgNaE1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3Rfa2V5Ym9hcmRfbGF5b3V0X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iNDQ2NTkwNzcwMDQ0OTI1NzA2MyI+ItWA1brVpdaEYCDVvdW/1aXVstW21aHVt9Wh1oDVqyDVpNWr1oDWhNWoINWo1bbVv9aA1aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYXN0X3Njcm9sbF9hbHBoYWJldCIgbXNnaWQ9IjU0MzMyNzU0ODU0OTkwMzkxOTkiPiIg1LHUstSz1LTUtdS21LfUuNS51LrUu9S81L3UvtS/1YDVgdWC1YPVhNWF1YbVh9WI1YnVitWL1YzVjdWO1Y/VkNWR1YjVktWT1ZTUtdaC1ZXVliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhc3Rfc2Nyb2xsX251bWVyaWNfYWxwaGFiZXQiIG1zZ2lkPSI0MDMwMTcwNTI0NTk1MTIzNjEwIj4iIDAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmRpZGF0ZXNfc3R5bGUiIG1zZ2lkPSI0MzMzOTEzMDg5NjM3MDYyMjU3Ij48dT4i1anVpdWv1bbVodWu1bjWgtW21aXWgNWoIjwvdT48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9jaGVja2luZ19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzQ0OTgxNjAwNTM1MTQ2ODU2MCI+ItWK1aHVv9aA1aHVvdW/1bjWgtW0INWnIFVTQiDVr9aA1avVudWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU0NTc2MDM0MTg5NzA5OTQwNTAiPiLVitWh1b/WgNWh1b3Vv9W+1bjWgtW0INWnIFNEINaE1aHWgNW/1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI4Mjg3MzE5ODgyOTI2NzM3MDUzIj4i1Y3VrdWh1azVttWl1oDVqyDVvdW/1bjWgtWj1bjWgtW0OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3Nzg4MDQwNzQ1Njg2MjI5MzA3Ij4iVVNCINWv1oDVq9W51agg1aTVodW/1aHWgNWvINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzgwNDc3ODM4MjQxMjEyOTk3Ij4i1LTVodW/1aHWgNWvIFNEINaE1aHWgNW/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzg0MDEyMTA2NzQyNzI2OTUwMCI+IlVTQiDVr9aA1avVudWoINWk1aHVv9Wh1oDVryDVpyDVr9Wh1bQg1bjWgtW21asg1bnVodW71aHVr9aB1b7VuNWyINaG1aHVtdWs1aHVtdWr1bYg1bDVodW01aHVr9Wh1oDVozoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2NDEwNjU2NDE3ODY5MjM2MDQiPiJTRCDWhNWh1oDVv9WoINWk1aHVv9Wh1oDVryDVpyDVr9Wh1bQg1bjWgtW21asg1bnVodW71aHVr9aB1b7VuNWyINaG1aHVtdWs1aHVtdWr1bYg1bDVodW01aHVr9Wh1oDVozoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjIwOTAwNDY3Njk1MzI3MTM1NjMiPiLVjtW21aHVvdW+1aHVriBVU0Ig1a/WgNWr1bkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjQxMDcyMzkwNjAxOTEwMDE4OSI+ItWO1bbVodW91b7VodWuIFNEINaE1aHWgNW/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE3OTU5MTc1NzgzOTUzMzMyODAiPiJVU0Ig1a/WgNWr1bnVqCDVvtW21aHVvdW+1aHVriDVpzog1ZPVuNaA1bHVpdaEINW+1aXWgNWh1obVuNaA1bTVodW/1aHVvtW41oDVpdWsINWh1bXVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNzUzODk4NTY3NTI1NTY4MjUzIj4iU0Qg1oTVodaA1b/VqCDVvtW21aHVvdW+1aHVriDVpzog1ZPVuNaA1bHVpdaEINW+1aXWgNWh1obVuNaA1bTVodW/1aHVvtW41oDVpdWsINWh1bXVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMTY2MTY4MzAzMTMzMDk1MTA3MyI+IlVTQiDVr9aA1avVudW2INWh1bbVvdW61aHVvdWl1azVq9W41oDVpdW2INWw1aXVvNWh1oHVvtWl1awg1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODcyMTUyODgyNjA0NDA3ODM3Ij4iU0Qg1oTVodaA1b/VqCDVodW21b3VutWh1b3VpdWs1avVuNaA1aXVtiDVsNWl1bzVodaB1b7VpdWsINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDMyOTg0ODgxOTg2NTU5NDI0MSI+ItSx1bbVu9Wh1b/VpdWsIFVTQiDVr9aA1avVudWoINWw1aXVvNWh1oHVttWl1azVuNaC1oEg1aHVvNWh1btgINW/1b7VtdWh1azVttWl1oDVqyDVr9W41oDVvdW/1avWgSDVrdW41oLVvdWh1oPVpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzI2MDE4MzI5Mzc0NzQ0ODI0MSI+ItSx1bbVu9Wh1b/VpdWsIFNEINaE1aHWgNW/1agg1bDVpdW81aHWgdW21aXVrNW41oLWgSDVodW81aHVu2Ag1b/VvtW11aHVrNW21aXWgNWrINWv1bjWgNW91b/Vq9aBINWt1bjWgtW91aHWg9Wl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzk2Nzk3Mzg5MzI3MDM2MDIzMCI+IlVTQiDVr9aA1avVudWoINWv1aHWgNW41bIg1acg1aHVttW+1b/VodW21aMg1bDVpdW81aHWgdW+1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjcyOTgwMTEzMDc5MDYxNjIwMCI+IlNEINaE1aHWgNW/1bYg1aHVttW+1b/VodW21aMg1acg1bDVpdW81aHWgdW01aHVtiDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MTQyMTk1MzYxNjA2NDkzNTMwIj4i1LTVuNaC1oQg1a/VodaA1bjVsiDVpdaEINWh1brVodWw1bjVviDVsNWl1bzVodaB1bbVpdWsIFVTQiDVr9aA1avVudWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Njg4NDEyNzgxMzgzNzc2MDQiPiLUtNW41oLWhCDVr9Wh1oDVuNWyINWl1oQg1aHVttW+1b/VodW21aMg1bDVpdW81aHWgdW21aXVrCBTRCDWhNWh1oDVv9WoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0NDg2Mzc3MjMwMTQwMjI3NjUxIj4iVVNCINWv1oDVq9W51agg1bDVpdW81aHWgdW+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MDI1MTgwMzA0MDQzODEzMTgiPiJTRCDWhNWh1oDVv9WoINWw1aXVvNWh1oHVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2OTIxMTI2MTYyNTgwNTc0MTQzIj4iVVNCINWv1oDVq9W51agg1bDVpdW81aHWgdW+1aHVriDVpzog1YTVv9aB1oDVpdaEINW21bjWgCDVr9aA1avVuToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM4NzAxMjA2NTI5ODM2NTk2NDEiPiJTRCDWhNWh1oDVv9WoINWw1aXVvNWh1oHVvtWh1a4g1ac6INWP1aXVstWh1aTWgNWl1oQg1bbVuNaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfbGlzdF9lbXB0eSIgbXNnaWQ9IjE2NzUzODgzMzA3ODY4NDEwNjYiPiLVgNWh1bTVqNW21a/VttW41bIg1aPVuNaA1a7VuNaC1bbVpdW41oLVqdW11bjWgtW21bbVpdaAINW51aPVv9W21b7VpdaB1avVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BrZ1VzYWdlU3RhdHMiIG1zZ2lkPSI4Nzg3MzUyMDc0MzI2NzQ4ODkyIj4i1anVodaA1bTVodaB1bbVpdWsINWi1aHVstWh1aTWgNWr1bnVqyDWhdWj1b/VodWj1bjWgNWu1bTVodW2INW+1avVs9Wh1a/VodWj1oDVuNaC1anVtdW41oLVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGtnVXNhZ2VTdGF0cyIgbXNnaWQ9IjExMDY2MTI0MjQyNTQyNzc2MzAiPiLUudW41oLVtdWsINWnINW/1aHVrNWr1b0g1bDVodW+1aXVrNW+1aHVrtWr1bYg1oPVuNaD1bjVrdWl1awg1bDVodW+1aHWhNWh1aPWgNW+1aHVriDVotWh1bLVodWk1oDVq9W51asg1b7Vq9Wz1aHVr9Wh1aPWgNW41oLVqdW11bjWgtW21ag6INWN1bjVvtW41oDVodWv1aHVtiDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1asg1oXVo9W/1aHVo9W41oDVrtW01aHVtiDVsNWh1bTVodaAINW51ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzNDEwMzYzMTEyMTE0MDY2OTIiPiLVutWh1b/Vs9Wl1bbVpdWsINWi1bjVvtWh1bbVpNWh1a/VuNaC1anVtdW41oLVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29weVByb3RlY3RlZERhdGEiIG1zZ2lkPSI0MzkwNjk3MTI0Mjg4MzE3ODMxIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVtdaB1aXVrCDVrNW81aXVrNW11aHVtdW2INWm1aXVv9Wl1bLVodaA1aHVttWrINWu1aHVvNWh1bXVuNaC1anVtdW41oLVttWoYCDVotW41b7VodW21aTVodWv1bjWgtWp1bXVuNaC1bbVqCDVutWh1b/Vs9Wl1bbVpdWs1bjWgiDVsNWh1bTVodaAOiDVjdW41b7VuNaA1aHVr9Wh1bYg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINaF1aPVv9Wh1aPVuNaA1a7VtNWh1bYg1bDVodW01aHWgCDVudWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcm91dGVfbWVkaWFfb3V0cHV0IiBtc2dpZD0iMTY0MjAyNDQ1NTc1MDQxNDY5NCI+ItS11oDVqdW41oLVstWl1awg1bTVpdWk1avVoSDVodaA1b/VodWu1bjWgtW01agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yb3V0ZV9tZWRpYV9vdXRwdXQiIG1zZ2lkPSI0OTMyODE4NzQ5NTQ3MjQ0MzQ2Ij4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW01aXVpNWr1aEg1aHWgNW/1aHVrtW41oLVtNWoINWl1oDVqdW41oLVstWl1awg1aHVtdWsINWh1oDVv9Wh1oTVq9W2INW91aHWgNaE1aXWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc19rZXlndWFyZF9zZWN1cmVfc3RvcmFnZSIgbXNnaWQ9Ijc1NjU1NTIyMzc5Nzc4MTUwNDciPiLVhNW41oLVv9aEINWj1bjWgNWu1aXVrCDVvdW/1aXVstW21aHVr9W41bLVutWl1oTVuNW+INW61aHVt9W/1brVodW21b7VodWuINW61aHVsNW41oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3Nfa2V5Z3VhcmRfc2VjdXJlX3N0b3JhZ2UiIG1zZ2lkPSI1ODY2MjQ1NDg0MzAzMjg1NzYyIj4i1LnVuNaC1bXVrCDVpyDVv9Wh1azVq9W9INWw1aHVvtWl1azVvtWh1a7Vq9W2INW01bjWgtW/1oQg1aPVuNaA1a7VpdWsINW91b/VpdWy1bbVodWv1bjVstW61aXWhNW41b4g1brVodW31b/VutWh1bbVvtWh1a4g1brVodWw1bjWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xfa2V5Z3VhcmQiIG1zZ2lkPSIxNzIxOTUxODQyMDc4MjgzODciPiLUv9Wh1bzVodW+1aHWgNWl1awg1b3Vv9Wl1bLVttWh1a/VuNWy1brVpdaE1asg1oHVuNaC1oHVodWk1oDVuNaC1bTVqCDWhyDVqdWh1oTWgdW21bjWgtW01agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sX2tleWd1YXJkIiBtc2dpZD0iMzA0MzczMjI5MDUxODYyOTA2MSI+ItS51bjWgtW11awg1acg1b/VodWs1avVvSDVsNWh1b7VpdWs1b7VodWu1avVtiDVr9Wh1bzVodW+1aHWgNWl1awg1b3Vv9Wl1bLVttWh1bfVodaA1asg1brVodW31b/VutWh1bbVq9W51ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHV0b3JpYWxfZG91YmxlX3RhcF90b196b29tX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0MDcwNDMzMjA4MTYwMDYzNTM4Ij4i1YDVutWl1oQg1aXWgNWv1bjWgiDVodW21aPVodW0YCDVpNWr1b/VodaD1bjVrdW01aHVtiDVr9Wh1oDVo9Wh1b7VuNaA1bTVodW2INWw1aHVtNWh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnYWRnZXRfaG9zdF9lcnJvcl9pbmZsYXRpbmciIG1zZ2lkPSI0ODgyMDA0MzE0OTA2NDY2MTYyIj4i1YnVsNWh1bvVuNWy1b7VpdaBINW+1avVu9Wl1akg1aHVvtWl1azVodaB1bbVpdWsOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZ28iIG1zZ2lkPSI4MzIwODQ1NjUxNzM3MzY5MDI3Ij4i1LHVvNWh1bsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3NlYXJjaCIgbXNnaWQ9IjY1ODExMDI3MTgyMjgwNzgxMSI+ItWI1oDVuNW21aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fc2VuZCIgbXNnaWQ9IjIzMTYxNjY1NTYzNDkzMTQ0MjQiPiLViNaC1bLVodaA1a/VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9uZXh0IiBtc2dpZD0iMzEzODg0MzkwNDAwOTgxMzgzNCI+ItWA1aHVu9W41oDVpNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9kb25lIiBtc2dpZD0iODk3MTUxNjExNzkxMDkzNDYwNSI+ItS/1aHVv9Wh1oDVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3ByZXZpb3VzIiBtc2dpZD0iMTQ0MzU1MDAzOTI1MDEwNTk0OCI+ItWG1aHVrdW41oDVpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZGVmYXVsdCIgbXNnaWQ9IjI4NDA5MjE4ODU1NTgwNDU3MjEiPiLUv9Wh1b/VodaA1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpYWxfbnVtYmVyX3VzaW5nIiBtc2dpZD0iNTc4OTE3NjQyNTE2NzU3MzU4NiI+ItWA1aHVvtWh1oTVpdWsINWw1aXVvNWh1a3VuNW91aHVsNWh1bTVodaA1ahgXG7WhdWj1b/VodWj1bjWgNWu1aXVrNW41b4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JXM8L3hsaWZmOmc+LdWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2NvbnRhY3RfdXNpbmciIG1zZ2lkPSI0OTQ3NDA1MjI2Nzg4MTA0NTM4Ij4i1Y3Vv9Wl1bLVrtWl1awg1a/VuNW21b/VodWv1b9gXG7WhdWj1b/VodWj1bjWgNWu1aXVrNW41b4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JXM8L3hsaWZmOmc+LdWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnRfY3JlZGVudGlhbHNfcGVybWlzc2lvbl9tZXNzYWdlX2hlYWRlciIgbXNnaWQ9IjIxMDYxMDM4MTc5Mzc4NTk2NjIiPiLVgNWl1b/Wh9W11aHVrCDVtNWl1a8g1a/VodW0INWh1b7VpdWsINWw1aHVvtWl1azVvtWh1a7VttWl1oAg1bTVuNaC1b/WhNWrwqDVqdW41oLVtdWs1b/VvtW41oLVqdW11aHVtiDVsNWh1oDWgdW41oLVtCDVpdW2INWh1bbVuNaC1bRgwqDVodW11arVtCDWhyDVsNWl1b/VodWj1aHVtdW41oLVtCDVsdWl1oAg1bDVodW31b7Vq9W2INW01bjWgtW/1oQg1bjWgtW21aXVttWh1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnRfY3JlZGVudGlhbHNfcGVybWlzc2lvbl9tZXNzYWdlX2Zvb3RlciIgbXNnaWQ9IjMxMjUyMTEzNDMzNzkzNzY1NjEiPiLVkdWh1bbVr9Wh1bbVuNaC1Z7VtCDVpdaEINWp1bjWgtW11azVodW/1oDVpdWsINWh1bXVvSDVsNWh1oDWgdW41oLVtNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW50X3Blcm1pc3Npb25zX2hlYWRlcl90ZXh0IiBtc2dpZD0iNjg3NDQ5NzQwODIwMTgyNjcwOCI+ItWE1bjWgtW/1oTVqyDVsNWh1oDWgdW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93IiBtc2dpZD0iNzIyNTk0ODgxMTI5NjM4NjU1MSI+ItS51bjWgtW11azVodW/1oDVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueSIgbXNnaWQ9IjIwODE4Nzk4ODU3NTU0MzQ1MDYiPiLVhNWl1oDVqtWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtaXNzaW9uX3JlcXVlc3Rfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjQ4Njc1OTc5NTkyNjIzNzkwNyI+ItS51bjWgtW11azVv9W+1bjWgtWp1bXVodW2INWw1aHWgNaB1bjWgtW0INWnINWh1oDVvtWh1a4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtaXNzaW9uX3JlcXVlc3Rfbm90aWZpY2F0aW9uX3dpdGhfc3VidGl0bGUiIG1zZ2lkPSI4NTMwMzkzMTM5NjM5NTYwMTg5Ij4i1LnVuNaC1bXVrNW/1b7VuNaC1anVtdWh1bYg1bDVodaA1oHVuNaC1bQg1acg1aHWgNW+1aHVrlxuPHhsaWZmOmcgaWQ9IkFDQ09VTlQiPiVzPC94bGlmZjpnPiDVsNWh1bfVvtWrINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5wdXRfbWV0aG9kX2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSIxMjgzNTU3MTc5OTQ0OTkyNjQ5Ij4i1YbVpdaA1aHVrtW01aHVtiDVpdWy1aHVttWh1a/VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjM2ODc5NjkxMzgzNzUwOTI0MjMiPiLVgNWh1bTVodWq1aHVtNWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSI0MTQ4MTIwNzQyMDk2NDc0NjQxIj4i1YTVodW/1bnVpdWs1avVuNaC1anVtdW41oLVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FsbHBhcGVyX2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSIxMjQwMDg3ODQ0MzA0Njg3NjYyIj4i1YrVodW91b/VodW8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3Nlcl93YWxscGFwZXIiIG1zZ2lkPSI3ODczNDc2MTk5Mjk1MTkwMjc5Ij4i1ZPVuNWt1aXVrCDVutWh1b3Vv9Wh1bzVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vdGlmaWNhdGlvbl9saXN0ZW5lcl9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMjAxNDE2MjgzNTQ4MTkwNjQyOSI+ItS+1aHVttW41oLWgdW01aHVtiDVuNaC1bbVr9W21aTVq9aAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RpdGxlIiBtc2dpZD0iMTk2MTUyMTM1NTIwNDI4MjciPiJWUE4t1agg1aHVr9W/1avVvtWh1oHVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGl0bGVfbG9uZyIgbXNnaWQ9IjY0MDA3MTQ3OTgwNDkyNTIyOTQiPiJWUE4t1bYg1aHVr9W/1avVvtWh1oHVvtWh1a4g1acgPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+LdWrINWv1bjVstW01avWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90ZXh0IiBtc2dpZD0iMzAxMTMwNjYwNzEyNjQ1MDMyMiI+ItWA1brVpdaEYMKg1oHVodW21oHVqyDVr9Wh1bzVodW+1aHWgNW01aHVtiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90ZXh0X2xvbmciIG1zZ2lkPSI2NDA3MzUxMDA2MjQ5MTc0NDczIj4i1YTVq9Wh1oHVvtWh1a4g1acgPHhsaWZmOmcgaWQ9IlNFU1NJT04iPiVzPC94bGlmZjpnPi3Vq9W2OiDVgNW61aXWhGAg1oHVodW21oHVqCDVr9Wh1bzVodW+1aHWgNWl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Nvbm5lY3RpbmciIG1zZ2lkPSI2NDQzNDM4OTY0NDQwOTYwNzQ1Ij4i1YTVq9W31b8t1bTVq9Wh1oHVvtWh1a4gVlBOLdWoINWv1aHVutW+1bjWgtW0INWnLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Nvbm5lY3RlZCIgbXNnaWQ9IjgyMDI2Nzk2NzQ4MTkyMTM5MzEiPiLVhNWr1bfVvy3VodW81oHVodW21oEgVlBOLdWoINWv1aHVutWh1a/WgdW+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9lcnJvciIgbXNnaWQ9IjYwMDkyNDk4MTQwMzQ3MDgxNzUiPiJWUE4g1b3VrdWh1azVqCDVtNWr1bfVvyDVtNWr1aHWgdW+1aHVriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25maWciIG1zZ2lkPSI2NDE1ODk5MTUwNjcxNTM3OTcwIj4i1YDVutWl1oQg1a/VodaA1aPVodW+1bjWgNWl1azVuNaCINWw1aHVtNWh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1cGxvYWRfZmlsZSIgbXNnaWQ9IjI4OTc5NTcxNzIzNjY3MzA0MTYiPiLUuNW21b/WgNWl1awg1obVodW11azVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2ZpbGVfY2hvc2VuIiBtc2dpZD0iNjM2MzY0ODU2MjE3MDc1OTQ2NSI+ItWI1bkg1bTVqyDWhtWh1bXVrCDVudWrINWo1bbVv9aA1b7VodWuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzZXQiIG1zZ2lkPSIyNDQ4MTY4MDgwOTY0MjA5OTA4Ij4i1Y7VpdaA1aHVr9Wh1bXVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3VibWl0IiBtc2dpZD0iMTYwMjMzNTU3MjA4OTkxMTk0MSI+ItWI1oLVstWh1oDVr9Wl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXJfbW9kZV9kaXNhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjMxNjQ3NjgyMTIwMDM4NjQzMTYiPiLVhNWl1oTVpdW21aHVtdWrINW81aXVqtWr1bTVqCDVtNWr1aHWgdW+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcl9tb2RlX2Rpc2FibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI4MDM1MjMwNTM3NTYzNTAzMjYyIj4i1YDVutWl1oRgINW01aXWhNWl1bbVodW11asg1bzVpdWq1avVtNWr1oEg1aTVuNaC1oDVvSDVo9Wh1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV0aGVyZWRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMzE0NjY5NDIzNDM5ODIwMjYwMSI+ItWE1bjWgtW/1oTVqCDVr9Wh1bQg1anVpdWqINWv1aXVv9WoINWh1a/Vv9Wr1b4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXRoZXJlZF9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjY4NTcwMzE3NjAxMDMwNjI5ODIiPiLVgNW61aXWhCDVr9Wh1oDVo9Wh1b7VuNaA1aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjIzMDA0NzAwMDQ1MDMzNDM0MzkiPiLVgNWl1b8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXh0X2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjEwODA1NTUxMDQ2Nzc5OTI0MDgiPiLVgNWh1bvVuNaA1aTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNraXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTI3NTM2MjI5OTQ3MTYzMTgxOSI+ItSy1aHWgSDVqdW41bLVttWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZV93YXJuaW5nX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjQ4OTA4OTQyNjc0NTQ4NjcyNzYiPiLVh9Wh1oDVqtWh1a/VodW2INW/1b7VtdWh1azVttWl1oDVqyDWhdWj1b/VodWj1bjWgNWu1bTVodW2INWi1aHWgNWx1oAg1bTVodWv1aHWgNWk1aHVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlX3dhcm5pbmdfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIzMzQwODIyMjI4NTk5MzM3NzQzIj4i1YDVutWl1oRgINW31aHWgNWq1aHVr9Wh1bYg1b/VvtW11aHVrNW21aXWgNWrINaF1aPVv9Wh1aPVuNaA1a7VtNWh1bYg1bTVodW91avVtiDVodW+1aXVrNWr1bYg1avVtNWh1bbVodWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2MjY5NTQxODk3NzI5NzgxMzMyIj4i1YfVodaA1arVodWv1aHVtiDVv9W+1bXVodWs1bbVpdaA1asg1b3VodWw1bTVodW21agg1aPVpdaA1aHVptWh1bbWgdW+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlZF9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjU0NDM0NTczMjEzNTQ5MDcxODEiPiLVgNW61aXVrGAg1bfVodaA1arVodWv1aHVtiDVv9W+1bXVodWs1bbVpdaA1asg1oXVo9W/1aHVo9W41oDVrtW01aHVtsKg1bTVodW91avVtsKg1aHVvtWl1azVq9W2INWr1bTVodW21aHVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19tYXRjaGVzIiBtc2dpZD0iODEyOTQyMTkwODkxNTg0MDczNyI+ItWA1aHVtNWo1bbVr9W21bjWgtW0INW51a/VoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmRfb25fcGFnZSIgbXNnaWQ9IjE5NDY3OTkyMzM4MjI4MjAzODQiPiLUs9W/1aXWhCDVp9W71bjWgtW0Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJtYXRjaGVzX2ZvdW5kIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODE2NzE0NzA4MTEzNjU3OTQzOSI+IjEg1bDVodW01ajVttWv1bbVuNaC1bQiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ2NDE4NzI3OTcwNjc2MDkxNzciPiI8eGxpZmY6ZyBpZD0iVE9UQUwiPiVkPC94bGlmZjpnPi3Vq9aBIDx4bGlmZjpnIGlkPSJJTkRFWCI+JWQ8L3hsaWZmOmc+LdWoIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX21vZGVfZG9uZSIgbXNnaWQ9IjcyMTc1ODE2NDA0NjE5MjIyODkiPiLUv9Wh1b/VodaA1b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfdW5tb3VudGluZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzOTIzODEwNDQ4NTA3NjEyNzQ2Ij4i1LHVttW71aHVv9W+1bjWgtW0INWnIFVTQiDVr9aA1avVudWoLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfdW5tb3VudGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjEzMjc4OTQ5OTg0MDk1MzcxOTAiPiLUsdW21bvVodW/1bjWgtW0INWnIFNEINaE1aHWgNW/1aguLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc19lcmFzaW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ1MjE1NzMzMjE1MjQzNDAwNTgiPiLVi9W21bvVuNaC1bQg1acgVVNCINWv1oDVq9W51aguLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc19lcmFzaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjU5Njk4ODg3NTUwNzA0MzA0MiI+ItWL1bbVu9W41oLVtCDVpyBTRCDWhNWh1oDVv9WoLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyOTk3Njk1NjM2MjQ3NzY5NDgiPiLVidWw1aHVu9W41bLVvtWl1oEg1bvVttW71aXVrCBVU0Ig1a/WgNWr1bnVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmb3JtYXRfZXJyb3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MzE1MjQ4Njk2NjQ0NTEwOTM1Ij4iU0Qg1oTVodaA1b/VqCDVudWw1aHVu9W41bLVvtWl1oEg1bvVttW71aXVrDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9iYWRfcmVtb3ZhbCIgbXNnaWQ9Ijc5NjA4NjQwNjEwMTY2MDMyODEiPiJTRCDWhNWh1oDVv9WoINWw1aXVvNWh1oHVvtWl1awg1acg1bbVodWt1oTVodW2INWh1bbVu9Wh1b/VpdWs1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfY2hlY2tpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDE4MTg4NzIwMDA5NTY5NjkzIj4iVVNCINWv1oDVq9W51bYg1aHVtdWq1bQg1b3Vv9W41oLVo9W+1bjWgtW0INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2NoZWNraW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzMzNDc2MjUwMzkwNDgyNzQ4MSI+IlNEINaE1aHWgNW/1agg1aHVtdWq1bQg1b3Vv9W41oLVo9W+1bjWgtW0INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JlbW92ZWQiIG1zZ2lkPSI3MDAxNTI2OTA1MDU3OTUyMDk3Ij4iU0Qg1oTVodaA1b/VqCDVsNWl1bzVodaB1b7VpdWsINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3NoYXJlZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI1ODMwODE0MzQ5MjUwODM0MjI1Ij4iVVNCINWv1oDVq9W51bYg1aHVtdWq1bQg1oXVo9W/1aHVo9W41oDVrtW+1bjWgtW0INWnINWw1aHVtNWh1a/VodaA1aPVudWrINWv1bjVstW01avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9zaGFyZWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NzA2MTMwNTY4MTMzNTQwNDM1Ij4iU0Qg1oTVodaA1b/VtiDVodW11arVtCDWhdWj1b/VodWj1bjWgNWu1b7VuNaC1bQg1acg1bDVodW01aHVr9Wh1oDVo9W51asg1a/VuNWy1bTVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3Vua25vd25fc3RhdGUiIG1zZ2lkPSI3MjkxOTI3ODIxOTcyOTAzODUiPiLUsdaA1b/VodaE1avVtiDVtNWl1aTVq9Wh1bYg1aHVttWw1aHVtdW/INWnINW+1avVs9Wh1a/VuNaC1bQg1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmUiIG1zZ2lkPSIxNzc4Njg2NjE4MjMwMDExOTY0Ij4i1Y/VodaA1aHVrtWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kIiBtc2dpZD0iNDgwODI3MDkwMDMyMjk4NTk2MCI+ItSz1b/VttWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWJzZWFyY2giIG1zZ2lkPSI0MzM3MTU3OTc3NDAwMjExNTg5Ij4i1Y7VpdWi1asg1bjWgNW41bbVuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kX25leHQiIG1zZ2lkPSI1NzQyMTI0NjE4OTQyMTkzOTc4Ij4i1LPVv9W21aXVrCDVsNWh1bvVuNaA1aTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmRfcHJldmlvdXMiIG1zZ2lkPSIyMTk2NzIzNjY5Mzg4MzYwNTA2Ij4i1LPVv9W21aXVrCDVttWh1a3VuNaA1aTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc05vdGlmVGlja2VyIiBtc2dpZD0iNTYyMjY4MzkxMjYxNjQ5NjE3MiI+ItWP1aXVstWh1aTWgNW41oLVqdW11aHVtiDVsNWh1oDWgdW41oLVtCA8eGxpZmY6ZyBpZD0iTkFNRSI+JXM8L3hsaWZmOmc+LdWr1oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNOb3RpZlRpdGxlIiBtc2dpZD0iNTQ0Njg1ODcxNzE1NzQxNjgzOSI+ItWP1aXVstWh1aTWgNW41oLVqdW11aHVtiDVsNWh1oDWgdW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc05vdGlmTWVzc2FnZSIgbXNnaWQ9IjEzNzQ3MTgwMjMyMjQwMDA3MDIiPiI8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz4gKDx4bGlmZjpnIGlkPSJTRVJWSUNFIj4lMiRzPC94bGlmZjpnPikt1asg1bDVodaA1oHVtNWh1bTVoiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmWWVzIiBtc2dpZD0iMjM0NjU2NjA3Mjg2NzIxMzU2MyI+ItSx1bXVuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmTm8iIG1zZ2lkPSIxMTQ2NTY0OTM3MzQ2NDU0ODY1Ij4i1YjVuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfdG9vX21hbnlfZGVsZXRlcyIgbXNnaWQ9IjUyOTYzMjE4NTA2NjI3NDY4OTAiPiLVi9W21bvVpdWs1bjWgiDVvdWh1bDVtNWh1bbVqCDVo9Wl1oDVodWm1aHVttaB1b7VpdWsINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzX2Rlc2MiIG1zZ2lkPSI0OTY1NTE2NzEwMDg2OTQyNDUiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSX09GX0RFTEVURURfSVRFTVMiPiUxJGQ8L3hsaWZmOmc+INW71bbVu9W+1aHVriDVv9Wh1oDWgCDVr9WhIDx4bGlmZjpnIGlkPSJUWVBFX09GX1NZTkMiPiUyJHM8L3hsaWZmOmc+LdWrINWw1aHVtNWh1oAsIDx4bGlmZjpnIGlkPSJBQ0NPVU5UX05BTUUiPiUzJHM8L3hsaWZmOmc+LdWrINWw1aHVt9Wr1b46INS71Z7VttW5INWl1oQg1oHVodW21a/VodW21bjWgtW0INWh1bbVpdWsOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfcmVhbGx5X2RlbGV0ZSIgbXNnaWQ9IjI1NzI2MDAxMDMxMjI1OTYyNDMiPiLVi9W21bvVpdWsINW/1aHWgNaA1aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY191bmRvX2RlbGV0ZXMiIG1zZ2lkPSIyOTQxMzE3MzYwNjAwMzM4NjAyIj4i1YDVpdW/1aHWgNWv1aXVrCDVu9W21bvVuNaC1bTVttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfZG9fbm90aGluZyIgbXNnaWQ9IjM3NDM3NjQ3NDA0MzA4MjE4NDUiPiLUsdW81aHVtdWq1bQg1bjVudWr1bbVuSDVudWh1bbVpdaEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX2FjY291bnRfbGFiZWwiIG1zZ2lkPSI1NjU1MjAzMDg5NzQ2NDIzOTI3Ij4i1LjVttW/1oDVpdWsINWw1aHVt9Wr1b7VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9hY2NvdW50X2xhYmVsIiBtc2dpZD0iMjkzNTI2NzM0NDg0OTk5MzU1MyI+ItSx1b7VpdWs1aHWgdW21aXVrCDVsNWh1bfVq9W+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX2FjY291bnRfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMzYxMTk4Mjg5NDg1MzQzNTg3NCI+ItSx1b7VpdWs1aHWgdW21aXVrCDVsNWh1bfVq9W+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfYnV0dG9uIiBtc2dpZD0iMjQxMjA3MjI3MjgzMjI4NDMxMyI+ItSx1b7VpdWs1aHWgdW21aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfZGVjcmVtZW50X2J1dHRvbiIgbXNnaWQ9IjQ3NjA1MDc3ODM4Njc3OTA2NyI+ItWG1b7VodWm1aXWgdW21aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfaW5jcmVtZW50X3Njcm9sbF9tb2RlIiBtc2dpZD0iMzA3MzEwMTA2NzQ0MTYzODQyOCI+Ijx4bGlmZjpnIGlkPSJWQUxVRSI+JXM8L3hsaWZmOmc+INWw1brVpdaEINaHINW61aHVsNWl1oQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfc2Nyb2xsX2FjdGlvbiIgbXNnaWQ9IjkxMDE0NzMwNDU4OTE4MzU0OTAiPiLVjdWh1bDVpdaB1oDVpdaEINW+1aXWgNaHYCDVodW+1aXVrNWh1oHVttWl1azVuNaCINWw1aHVtNWh1oAsINaHINW21aXWgNaE1odgINW21b7VodWm1aXWgdW21aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9pbmNyZW1lbnRfbWludXRlX2J1dHRvbiIgbXNnaWQ9Ijg4NjU4ODUxMTQwMjg2MTQzMjEiPiLUsdWz1aXWgdW21aXVrCDWgNW41brVpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGVjcmVtZW50X21pbnV0ZV9idXR0b24iIG1zZ2lkPSI2MjQ2ODM0OTM3MDgwNjg0NzkxIj4i1YbVvtWh1abVpdaB1bbVpdWsINaA1bjVutWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9pbmNyZW1lbnRfaG91cl9idXR0b24iIG1zZ2lkPSIzNjUyMDU2MDU1ODEwMjIzMTM5Ij4i1LHVs9Wl1oHVttWl1awg1arVodW01agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfaG91cl9idXR0b24iIG1zZ2lkPSIxMzc3NDc5ODYzNDI5MjE0NzkyIj4i1YbVvtWh1abVpdaB1bbVpdWsINWq1aHVtNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfaW5jcmVtZW50X3NldF9wbV9idXR0b24iIG1zZ2lkPSI0MTQ3NTkwNjk2MTUxMjMwODYzIj4i1LTVttWl1awgUE0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfc2V0X2FtX2J1dHRvbiIgbXNnaWQ9IjgzMDIxNDAzNTM1Mzk0ODY3NTIiPiLUtNW21aXVrCBBTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2luY3JlbWVudF9tb250aF9idXR0b24iIG1zZ2lkPSI1MzY5OTk4NDc5MDY3OTM0MTEwIj4i1LHVs9Wl1oHVttWl1awg1aHVtNWr1b3VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF9tb250aF9idXR0b24iIG1zZ2lkPSIxODMyNjk4OTk1NTQxNzI2MDE5Ij4i1YbVvtWh1abVpdaB1bbVpdWsINWh1bTVq9W91agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9pbmNyZW1lbnRfZGF5X2J1dHRvbiIgbXNnaWQ9IjcxMzA0NjU0MTIzMDgxNzM5MDMiPiLUsdWz1aXWgdW21aXVrCDWhdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kZWNyZW1lbnRfZGF5X2J1dHRvbiIgbXNnaWQ9IjQxMzE4ODE1MjE4MTg3NTAwMzEiPiLVhtW+1aHVptWl1oHVttWl1awg1oXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X3llYXJfYnV0dG9uIiBtc2dpZD0iNjMxODY5NzM4NDMxMDgwODg5OSI+ItSx1bPVpdaB1bbVpdWsINW/1aHWgNWr1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kZWNyZW1lbnRfeWVhcl9idXR0b24iIG1zZ2lkPSI0NDgyMDIxODEzNDkxMTIxNzE3Ij4i1YbVvtWh1abVpdaB1bbVpdWsINW/1aHWgNWr1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9hbHQiIG1zZ2lkPSI0ODU2ODY4ODIwMDQwMDUxOTM5Ij4iQWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfY2FuY2VsIiBtc2dpZD0iMTIwMzk4NDAxNzI0NTc4MzI0NCI+ItWJ1aXVstWh1oDVr9Wl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kZWxldGUiIG1zZ2lkPSIzMzM3OTE0ODMzMjA2NjM1NzQ0Ij4i1YvVttW71aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RvbmUiIG1zZ2lkPSIxOTkyNTcxMTE4NDY2Njc5Nzc1Ij4i1L/VodW/1aHWgNW+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX21vZGVfY2hhbmdlIiBtc2dpZD0iNDU0NzM4Nzc0MTkwNjUzNzUxOSI+ItWM1aXVqtWr1bTVqyDWg9W41oPVuNWt1bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiLVhNW41oLVv9aEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4i1LjVttW/1oDVpdWsINWu1oDVodWj1avWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+ItWP1aHWgNWh1a7VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+ItWA1aHVtNaF1aPVv9Wh1aPVuNaA1a7VpdWsIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4t1asg1bDVpdW/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+ItWN1aHVsNW41bIg1aLVvNW21aHVrzog1YDVutWl1azCoCZhbXA7INW61aHVsNWl1aw6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3VwIiBtc2dpZD0iNzE2OTAzMjQ3ODI1OTQ4NTE4MCI+ItWN1aHVsNWl1oHWgNWl1oQg1b7VpdaA1ocgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LdWrINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2Rvd24iIG1zZ2lkPSI1MDg3NzM5NzI4NjM5MDE0NTk1Ij4i1Y3VodWw1aXWgdaA1aXWhCDWgdWh1a4gPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LdWrINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2xlZnQiIG1zZ2lkPSI3MjA3NDc4NzE5ODA1NTYyMTY1Ij4i1Y3VodWw1aXWgdaA1aXWhCDVsdWh1a1gIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi3VqyDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiLVjdWh1bDVpdaB1oDVpdaEINWh1btgIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi3VqyDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF91bmxvY2siIG1zZ2lkPSIyMjI4NTI0OTAwNDM5ODAxNDUzIj4i1LHVutWh1a/VuNWy1brVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X2NhbWVyYSIgbXNnaWQ9Ijk2OTA3MTk5NzU1MjQ4NjgxNCI+ItWW1bjVv9W41a3WgdWr1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2lsZW50IiBtc2dpZD0iODkzNTUxMjg3NzQ2NTIyMTgyIj4i1LzVuNaC1bwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4i1YHVodW11bbVqCDVtNWr1aHWgdW21aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zZWFyY2giIG1zZ2lkPSIzMDkxNTg3MjQ5Nzc2MDMzMTM5Ij4i1YjWgNW41bbVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9ja190YWJsZXQiIG1zZ2lkPSIzODMzMTk1MzM1NjI5Nzk1MDU1Ij4i1Y3VodWw1aXWgdaA1aXWhGAg1aHVutWh1a/VuNWy1brVpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2hlYWRzZXRfcmVxdWlyZWRfdG9faGVhcl9wYXNzd29yZCIgbXNnaWQ9IjcwMTE5MjczNTIyNjc2Njg2NTciPiLVhNWr1aHWgdaA1aXWhCDVodWv1aHVttW71aHVr9Wh1azVttWl1oDVqGAg1aHWgNW/1aHVvdWh1bbVvtW41bIg1aPVodWy1b/VttWh1aLVodW81agg1azVvdWl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfcGFzc3dvcmRfY2hhcmFjdGVyX25vX2hlYWRzZXQiIG1zZ2lkPSIyODU5ODczNzcwODg2MTUzNjc4Ij4i1L/VpdW/OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUyOTM2MDA0OTY2MDE0OTAyMTYiPiLViNaC1bLVstW+1aXVrCDVv9W41oLVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMjM3NDk2NTYyOTUyMTUyNTg5Ij4i1YjWgtWy1bLVvtWl1awg1b7VpdaA1ociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fbWVudV9vdmVyZmxvd19kZXNjcmlwdGlvbiIgbXNnaWQ9IjIyOTU2NTkwMzc1MDkwMDg0NTMiPiLUsdW+1aXVrNWrINW31aHVvyDVqNW21b/WgNWh1bbWhNW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI3OTY1OTg0MzYwOTAzNjkzOTAzIj4iJTEkcywgJTIkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9zdWJ0aXRsZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI2OTg1NTQ2NTMwNDcxNzgwNzI3Ij4iJTEkcywgJTIkcywgJTMkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfaW50ZXJuYWwiIG1zZ2lkPSI0ODkxOTE2ODMzNjU3OTI5MjYzIj4i1YbVpdaA1oTVq9W2INW61aHVsNW41oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3NkX2NhcmQiIG1zZ2lkPSIzMjgyOTQ4ODYxMzc4Mjg2NzQ1Ij4iU0Qg1oTVodaA1b8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3VzYiIgbXNnaWQ9IjMwMTc5NTQwNTk1Mzg1MTcyNzgiPiJVU0Ig1a/WgNWr1bkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRyYWN0X2VkaXRfbWVudV9idXR0b24iIG1zZ2lkPSI4OTQwNDc4NzMwNDk2NjEwMTM3Ij4i1L3VtNWi1aHVo9aA1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2FybmluZ190aXRsZSIgbXNnaWQ9IjE5NTU2Mzg4NjIxMjIyMzIzNDIiPiLVj9W+1bXVodWs1bbVpdaA1asg1oXVo9W/1aHVo9W41oDVrtW01aHVtiDVttWh1a3VodWm1aPVuNaC1bfVodaB1bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93YXJuaW5nX2JvZHkiIG1zZ2lkPSIyODE0NjczNTUxNDcxOTY5OTU0Ij4i1YDVutWl1oRgINaF1aPVv9Wh1aPVuNaA1a7VuNaC1bTVqCDWhyDVr9Wh1oDVo9Wh1b7VuNaA1bjWgtW01bbVpdaA1agg1b/VpdW91bbVpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfM2dfbGltaXRfdGl0bGUiIG1zZ2lkPSI3MDkzMzM0NDE5NTE4NzA2Njg2Ij4iMkctM0cg1b/VvtW11aHVrNW21aXWgNWoINWv1aHVvdWl1oHVvtWh1a4g1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfNGdfbGltaXRfdGl0bGUiIG1zZ2lkPSI3NjM2NDg5NDM2ODE5NDcwNzYxIj4iNEcg1b/VvtW11aHVrNW21aXWgNWoINWh1bbVu9Wh1b/VvtWh1a4g1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbW9iaWxlX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzg2OTQwMjUxOTM5MTYzMTg4NCI+ItWH1aHWgNWq1aHVr9Wh1bYg1b/VvtW11aHVrNW21aXWgNWoINWv1aHVvdWl1oHVvtWh1a4g1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2lmaV9saW1pdF90aXRsZSIgbXNnaWQ9Ijg5OTIxNTQ3MzY0NDEyODQ4NjUiPiJXaS1GaSDVv9W+1bXVodWs1bbVpdaA1agg1aHVttW71aHVv9W+1aHVriDVpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9saW1pdF9ib2R5IiBtc2dpZD0iMzMxNzk2NDcwNjk3MzYwMTM4NiI+ItWA1brVpdaEYCDVtNWr1aHWgdW21aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSI3MDI2NzM5MTIxMTM4MDA1MjMxIj4iMkctM0cg1b/VvtW11aHVrNW21aXWgNWrINW91aHVsNW01aHVttWoINWj1aXWgNWh1abVodW21oHVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzRnX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSIxMTA2NTYyNzc5MzExMjA5MDM5Ij4iNEcg1b/VvtW11aHVrNW21aXWgNWrINW91aHVsNW01aHVttWoINWj1aXWgNWh1abVodW21oHVvtWl1awg1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX21vYmlsZV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iMjc5MjQwNTcyMTY1NDEyMTY4Ij4i1YfVodaA1arVodWv1aHVtiDVv9W+1bXVodWs1bbVpdaA1asg1b3VodWw1bTVodW21agg1aPVpdaA1aHVptWh1bbWgdW+1aXVrCDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2lmaV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iODc0Mzg1NjAwNjM4NDgyNTk3NCI+IldpLUZpINW/1b7VtdWh1azVttWl1oDVqyDVvdWh1bDVtNWh1bbVqCDVo9Wl1oDVodWm1aHVttaB1b7VpdWsINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9saW1pdF9zbm9vemVkX2JvZHkiIG1zZ2lkPSI3MDM1NDkwMjc4Mjk4NDQxNzY3Ij4iPHhsaWZmOmcgaWQ9IlNJWkUiPiVzPC94bGlmZjpnPi3VqCDVo9Wl1oDVodWm1aHVttaB1bjWgtW0INWnINW21bfVvtWh1a4g1b3VodWw1bTVodW21aHVudWh1oPVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3Jlc3RyaWN0ZWRfdGl0bGUiIG1zZ2lkPSI1OTY1MTU3MzYxMDM2MzIxOTE0Ij4i1YDVpdW/1bbVodW31aXWgNW/1aHVtdWr1bYg1b/VvtW11aHVrNW21aXWgNWoINW91aHVsNW01aHVttWh1oPVodWvINWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3Jlc3RyaWN0ZWRfYm9keSIgbXNnaWQ9IjY3NDE1MjEzMzA5OTc0NTI5OTAiPiLVgNW61aXWhGAg1b3VodWw1bTVodW21aHWg9Wh1a/VuNaC1bTVqCDVsNWl1bzVodaB1bbVpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jZXJ0aWZpY2F0ZSIgbXNnaWQ9IjY1MTAwNDA0ODYwNDkyMzc2MzkiPiLUsdW21b7Vv9Wh1bbVo9W41oLVqdW11aHVtiDVvtWv1aHVtdWh1a/VodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NlcnRpZmljYXRlX2lzX3ZhbGlkIiBtc2dpZD0iNjgyNTI2MzI1MDc3NDU2OTM3MyI+ItSx1bXVvSDVvtWv1aHVtdWh1a/VodW21agg1b7VodW+1aXWgCDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfdG8iIG1zZ2lkPSI0NTQyMzk0ODAyNzQ5MjEwMzIiPiLUudW41bLVodaA1a/VvtWl1awg1adgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tbW9uX25hbWUiIG1zZ2lkPSIyMjMzMjA5Mjk5NDM0MTcyNjQ2Ij4i1LjVttWk1bDVodW21bjWgtaAINWh1bbVuNaC1bbVqGAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdfbmFtZSIgbXNnaWQ9IjY5NzM1NjExOTA3NjIwODUyMzYiPiLUv9Wh1abVtNWh1a/VpdaA1brVuNaC1anVtdW41oLVtmAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdfdW5pdCIgbXNnaWQ9IjcyNjU5ODE4OTA0MjIwNzAzODMiPiLUv9Wh1abVtNWh1a/VpdaA1brVodWv1aHVtiDVtNWr1aHVvtW41oBgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXNzdWVkX2J5IiBtc2dpZD0iMjY0NzU4NDk4ODA1NzQ4MTU2NiI+ItS51bjVstWh1oDVr9W+1aXVrCDVp2AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2YWxpZGl0eV9wZXJpb2QiIG1zZ2lkPSI4ODE4ODg2MTM3NTQ1OTgzMTEwIj4i1Y7VodW+1aXWgNWh1a/VodW21bjWgtWp1bXVuNaC1bZgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXNzdWVkX29uIiBtc2dpZD0iNTg5NTAxNzQwNDM2MTM5NzIzMiI+ItS51bjVstWh1oDVr9W+1aXVrCDVp2AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHBpcmVzX29uIiBtc2dpZD0iMzY3NjI0Mjk0OTkxNTk1OTgyMSI+ItWN1brVodW81b7VuNaC1bQg1adgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VyaWFsX251bWJlciIgbXNnaWQ9Ijc1ODgxNDA2NzY2MDg2MjQ5MyI+ItWA1aXWgNWp1aHVr9Wh1bYg1bDVodW01aHWgNWoYCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmdlcnByaW50cyIgbXNnaWQ9IjQ1MTYwMTk2MTk4NTA3NjMwNDkiPiLVhNWh1b/VttWh1bDVpdW/1oTVpdaA1ahgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhMjU2X2ZpbmdlcnByaW50IiBtc2dpZD0iNDM5MTI3MTI4NjQ3NzI3OTI2MyI+IlNIQS0yNTYg1bTVodW/1bbVodWw1aXVv9aEYCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYTFfZmluZ2VycHJpbnQiIG1zZ2lkPSI3OTMwMzMwMjM1MjY5NDA0NTgxIj4iU0hBLTHVtNWh1b/VttWh1bDVpdW/1oRgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfY2hvb3Nlcl92aWV3X3NlZV9hbGwiIG1zZ2lkPSI0MjkyNTY5MzgzOTc2NjM2MjAwIj4i1Y/VpdW91bbVpdWsINWi1bjVrNW41oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2Nob29zZXJfdmlld19kaWFsb2dfdGl0bGVfZGVmYXVsdCIgbXNnaWQ9IjQ3MTAwMTM4NjQ5NzQwNDA2MTUiPiLUuNW21b/WgNWl1awg1aPVuNaA1a7VuNaC1bbVpdW41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV9hY3Rpb25fcHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjUyNDc2ODQ0MzU5NzkxNDkyMTYiPiLVj9Wh1oDVodWu1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfZGV2aWNlX2xvY2tlZCIgbXNnaWQ9IjMwOTI3MDM0NDg2OTA2Njk3NjgiPiLVjdWh1oDWhNWoINWv1bjVstW61b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxpc3RfZGVsaW1ldGVyIiBtc2dpZD0iMzk3NTExNzU3MjE4NTQ5NDE1MiI+IiwgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VuZGluZyIgbXNnaWQ9IjMyNDU2NTM2ODEwMDgyMTgwMzAiPiLViNaC1bLVodaA1a/VvtW41oLVtCDVpy4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaEJyb3dzZXJEZWZhdWx0IiBtc2dpZD0iMjA1Nzk1MTk0NzI5NzYxNDcyNSI+ItSz1bjWgNWu1aHWgNWv1aXVntWsINWm1bbVttWh1oDVr9Wr1bnVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJTZXR1cENhbGxEZWZhdWx0IiBtc2dpZD0iNTgzNDk0ODQ2OTI1Mzc1ODU3NSI+ItS41bbVpNW41oLVttWl1Z7VrCDVptWh1bbVo9WoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X3Jlc29sdmVyX3VzZV9hbHdheXMiIG1zZ2lkPSI4MDE3NzcwNzQ3ODAxNDk0OTMzIj4i1YTVq9W31b8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9yZXNvbHZlcl91c2Vfb25jZSIgbXNnaWQ9IjI0MDQ2NDQ3OTcxNDkxNzM3NTgiPiLVhNWr1aHVtdW2INW01aXVryDVodW21aPVodW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0NjE3MDUzODk4MTY3MTI3NDcxIj4i1LPWgNWh1b3VodWs1avVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfbmFtZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQyMzkyOTEyNzM0MjAxNDAxMjMiPiLVgNWl1bzVodWt1bjVvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfbmFtZV9oZWFkcGhvbmVzIiBtc2dpZD0iODExOTk3MTg0MzgwMzQzOTExMCI+ItSx1a/VodW21bvVodWv1aHVrNW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfbmFtZV9kb2NrX3NwZWFrZXJzIiBtc2dpZD0iNjI0MDYwMjk4MjI3NjU5MTg2NCI+ItWA1aHVtNWh1a/WgdW+1aHVriDVotWh1oDVsdaA1aHVrdW41b3VttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X21lZGlhX3JvdXRlX25hbWVfaGRtaSIgbXNnaWQ9IjI0NTA5NzAzOTkwMjM0NzgwNTUiPiJIRE1JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9jYXRlZ29yeV9uYW1lIiBtc2dpZD0iMzcyMjgxMTE3NDAwMzg4Njk0NiI+ItWA1aHVtNWh1a/VodaA1aMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfYTJkcF9hdWRpb19yb3V0ZV9uYW1lIiBtc2dpZD0iODU3NTYyNDAzMDQwNjc3MTAxNSI+IkJsdWV0b290aC3VqyDVsdWh1bXVttWh1bbVtdW41oLVqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpcmVsZXNzX2Rpc3BsYXlfcm91dGVfZGVzY3JpcHRpb24iIG1zZ2lkPSI5MDcwMzQ2NDI1MDIzOTc5NjUxIj4i1LHVttWs1aHWgCDVp9Wv1oDVodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfY2hvb3Nlcl9ncm91cGluZ19kb25lIiBtc2dpZD0iNzk2NjQzODMwNzcyMzMxNzE2OSI+ItS/1aHVv9Wh1oDVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9idXR0b25fY29udGVudF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU3NTg1NTM1NjcwNjUxNDUyNzYiPiLVhNWl1aTVq9WhINWh1oDVv9Wh1a7VuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfc2Nhbm5pbmciIG1zZ2lkPSI3Mjc5OTA4NzYxNzU4MjkzNzgzIj4i1Y3Vr9Wh1bbVodW+1bjWgNW41oLVtC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19jb25uZWN0aW5nIiBtc2dpZD0iNjQyMjU3MTcxNjAwNzgyNTQ0MCI+ItWE1avVodW21bjWgtW0INWnLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2F2YWlsYWJsZSIgbXNnaWQ9IjY5ODMyNTgwNjcxOTQ2NDkzOTEiPiLVgNWh1b3VodW21aXVrNWrINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX25vdF9hdmFpbGFibGUiIG1zZ2lkPSI2NzM5ODk5OTYyNjgxODg2NDAxIj4i1YDVodW91aHVttWl1azVqyDVudWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2luX3VzZSIgbXNnaWQ9IjQ1MzM3ODYwMzEwOTAxOTgwNjMiPiLUttWi1aHVstWl1oHVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfYnVpbHRfaW5fZGlzcGxheV9uYW1lIiBtc2dpZD0iMjU4MzEzNDI5NDI5MjU2Mzk0MSI+ItWG1aXWgNWv1aHVvNW41oLWgdW+1aHVriDVp9Wv1oDVodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX2hkbWlfZGlzcGxheV9uYW1lIiBtc2dpZD0iMTU1NTI2NDU1OTIyNzQ3MDEwOSI+IkhETUkg1afVr9aA1aHVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9vdmVybGF5X2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjUxNDIzNjU5ODIyNzE2MjA3MTYiPiLVjtWl1oDVodWu1aHVrtWvICM8eGxpZmY6ZyBpZD0iSUQiPiUxJGQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV90aXRsZSIgbXNnaWQ9IjY1MjEyNDUxNzY3MjI1NzE3MiI+Ijx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9IldJRFRIIj4lMiRkPC94bGlmZjpnPng8eGxpZmY6ZyBpZD0iSEVJR0hUIj4lMyRkPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IkRQSSI+JTQkZDwveGxpZmY6Zz4g1a/VtNW+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9zZWN1cmVfc3VmZml4IiBtc2dpZD0iNjAyMjExOTcwMjYyODU3MjA4MCI+Iiwg1aHVttW+1b/VodW21aMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjIyMzA1MDY0OTI0MDMyNjU1NyI+ItSx1bbVrNWh1oAg1oHVuNaC1oHVodWk1oDVuNaC1bTVqCDVr9Wh1brVodWv1oHVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDk4ODAyMDEyNDY0MTcwNjg1Ij4i1LHVtdW9INWn1a/WgNWh1bbVqCDWgdW41oLWgdWh1aTWgNW+1bjWgtW0INWnINWh1bXVrCDVvdWh1oDWhNW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfZGlzcGxheV9ub3RpZmljYXRpb25fZGlzY29ubmVjdCIgbXNnaWQ9IjYxODM3NTQ0NjM1NjExNTMzNzIiPiLUsdW21bvVodW/1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VtZXJnZW5jeV9jYWxsX2xhYmVsIiBtc2dpZD0iNjg0OTQ2MTkyNTIzODMwNTMxIj4i1LHWgNW/1aHVr9Wh1oDVoyDVq9aA1aHVvtWr1bPVodWv1asg1bDVpdW81aHVrdW41b3VodWm1aHVttWjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSI4ODUyMDIxNDY3ODY4MjIwNjA4Ij4i1YTVuNW81aHWgdWl1awg1aXVtCDVvdWt1aXVtNWh1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXR0ZXJuIiBtc2dpZD0iMTg1MDgwNjA3MDgwMTM1ODgzMCI+ItWN1a3VodWsINW91a3VpdW01aEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiLVjdWt1aHVrCDVo9Wh1bLVv9W21aHVotWh1bwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4i1Y3VrdWh1awgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiLVk9W41oDVsdWl1oQg1a/WgNWv1avVtiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRkPC94bGlmZjpnPiDVvtWh1bXWgNWv1bXVodW21avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5ODk3ODYxMTY4MzA3NTg2OCI+ItWA1aHVvtWh1oTVpdaEINWx1aXWgCDVvdWt1aXVtNWh1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiLVhNW41oLVv9aE1aHVo9aA1aXWhCBTSU0t1asgUElOLdWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiLVhNW41oLVv9aE1aHVo9aA1aXWhCBQSU4t1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1NzUzNjQ2NTU2MTg2OTM2ODE5Ij4i1YTVuNaC1b/WhNWh1aPWgNWl1oQg1aPVodWy1b/VttWh1aLVodW81agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcHVrX2hpbnQiIG1zZ2lkPSI0NTMyMjcxNDM4NjE3MzU1MzciPiJTSU0t1agg1aHVtdW9INW61aHVsNWr1bYg1aHVttW71aHVv9W+1aHVriDVpzog1YTVuNaC1b/WhNWh1aPWgNWl1oQgUFVLINWv1bjVpNWoINW31aHWgNW41oLVttWh1a/VpdWs1bjWgiDVsNWh1bTVodaAOiDVhNWh1bbWgNWh1bTVodW91bbVpdaA1asg1bDVodW01aHWgCDVr9Wh1brVvtWl1oQg1oXVutWl1oDVodW/1bjWgNWrINWw1aXVvzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i1YTVuNaC1b/WhNWh1aPWgNWl1oQg1oHVodW21a/VodWs1asgUElOINWu1aHVrtWv1aHVo9Wr1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLVgNWh1b3Vv9Wh1b/VpdaEINaB1aHVttWv1aHVrNWrIFBJTiDVrtWh1a7Vr9Wh1aPVq9aA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+ItSx1brVodWv1bjVstW61bjWgtW0INWnIFNJTSDWhNWh1oDVv9WoIC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+ItWN1a3VodWsIFBJTiDVrtWh1a7Vr9Wh1aPVq9aAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+ItWE1bjWgtW/1oTVodWj1oDVpdaEwqBQSU4sINW41oDVqCA0LdWr1oEgOCDVqdWr1b4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iUFVLINWv1bjVpNWoINW61aXVv9aEINWnINWs1avVttWrIDgg1a/VodW0INWh1b7VpdWs1asg1anVq9W+OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+ItWO1aXWgNWh1bTVuNaC1b/WhNWh1aPWgNWl1oQg1bPVq9W31b8gUFVLINWu1aHVrtWv1aHVo9Wr1oDVqDog1L/WgNWv1bbVvtW41bIg1oPVuNaA1bHVpdaA1agg1ajVttWk1bTVq9W31b8g1a/Vr9Wh1b3VpdaB1bbVpdW2IFNJTSDWhNWh1oDVv9WoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfY29uZmlybV9waW5faGludCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcwMDM0NjkyNjE0NjQ1OTM1MTYiPiJQSU4g1a7VodWu1a/VodWj1oDVpdaA1agg1bnVpdW2INWw1aHVtNWo1bbVr9W21bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4i1YnVodaD1avWgSDVt9Wh1b8g1b3VrdWl1bTVodW11asg1oPVuNaA1bHVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMTEwMDU1MTI2MTI2NTUwNjQ0OCI+ItSx1brVodWv1bjVstW61aXVrNW41oIg1bDVodW01aHWgGAg1bTVuNaC1b/WhCDVo9W41oDVrtWl1oQg1bHVpdaAIEdvb2dsZSDVsNWh1bfVvtW41b46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9IjU3MTg1MzQyNzIwNzA5MjAzNjQiPiLVldWj1b/VodW21bjWgtW2ICjVp9Ws1oPVuNW91b8pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjkwNTcyODkxMDM4MjcyOTg1NDkiPiLUs9Wh1bLVv9W21aHVotWh1bzVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI1MzU1OTA0NTgyNjc0MDU0NzAyIj4i1YTVuNaC1b/WhCDVo9W41oDVrtWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+ItWN1a3VodWsINaF1aPVv9Wh1bbVuNaC1bYg1a/VodW0INWj1aHVstW/1bbVodWi1aHVvDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i1YTVuNW81aHWgdWl1Z7VrCDVpdaEINWx1aXWgCDWhdWj1b/VodW21bjWgtW21agg1a/VodW0INWj1aHVstW/1bbVodWi1aHVvNWoOlxu1LHVtdaB1aXVrNWl1oQgIjxiPiJnb29nbGUuY29tIC9hY2NvdW50cy9yZWNvdmVyeSI8L2I+IjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjEwNTI2ODUxOTc3MTAyNTIzOTUiPiLVgNWh1bfVq9W+1agg1b3Vv9W41oLVo9W+1bjWgtW0INWnLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiLUtNW41oLWhMKgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtCDVvdWt1aHVrCDVpdaEINW01bjWgtW/1oTVodWj1oDVpdWsINWx1aXWgCBQSU4t1ag6IFxuXG7Vk9W41oDVsdWl1oQg1a/WgNWv1avVtiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVvtWh1bXWgNWv1bXVodW21avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3ODEzNzEzMzg5NDIyMjI2NTMxIj4i1LTVuNaC1oQg1b3VrdWh1awg1aXWhCDVtNW41oLVv9aE1aHVo9aA1aXVrCDVsdWl1oAg1aPVodWy1b/VttWh1aLVodW81aggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtDogXG5cbtWT1bjWgNWx1aXWhCDVr9aA1a/Vq9W2IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INW+1aHVtdaA1a/VtdWh1bbVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXR0ZXJuX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzQwODk0NzU5NjUwNTA4MDUiPiLUtNW41oLWhMKgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtCDVvdWt1aHVrCDVpdaEINWw1aHVvtWh1oTVpdWsINWx1aXWgCDVodW61aHVr9W41bLVutW01aHVtiDVvdWt1aXVtNWh1bY6IFxuXG7Vk9W41oDVsdWl1oQg1a/WgNWv1avVtiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVvtWh1bXWgNWv1bXVodW21avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1NzU1NTcyMDA2MjcxMjg5NDkiPiLUtNW41oLWhMKgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtCDVvdWt1aHVrCDWg9W41oDVsSDVpdaEINWh1oDVpdWsINWj1oDVodW91aHVrNWr1a/VtiDVodW61aHVr9W41bLVutWl1azVuNaCINWw1aHVtNWh1oA6IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bTVq9aBINWh1b7VpdWsINWh1bbVsNWh1bvVuNWyINaD1bjWgNWx1aXWgNWr1oEg1bDVpdW/1bgg1aPWgNWh1b3VodWs1avVr9WoINWv1b7VpdaA1aHVr9Wh1oDVo9Wh1b7VuNaA1b7VqyDVo9W41oDVrtWh1oDVodW21aHVtdWr1bYg1azVvNWl1azVtdWh1bXVttWrLCDWhyDWhdWj1b/VvtW41bLVqyDVotW41azVuNaAINW/1b7VtdWh1azVttWl1oDVqCDVr9Wv1bjWgNWl1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDA1MTAxNTk0MzAzODE5OTkxMCI+ItS01bjWgtaEwqA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDVodW21aPVodW0INW91a3VodWsINaD1bjWgNWxINWl1oQg1aHWgNWl1awg1bDVpdW81aHVrdW41b3VtiDVodW61aHVr9W41bLVutWl1azVuNaCINWw1aHVtNWh1oA6IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bTVq9aBINWh1b7VpdWsINWh1bbVsNWh1bvVuNWyINaD1bjWgNWx1aXWgNWr1oEg1bDVpdW/1bgg1bDVpdW81aHVrdW41b3VqCDVr9W+1aXWgNWh1a/VodaA1aPVodW+1bjWgNW+1asg1aPVuNaA1a7VodaA1aHVttWh1bXVq9W2INWs1bzVpdWs1bXVodW11bbVqywg1ocg1oXVo9W/1b7VuNWy1asg1aLVuNWs1bjWgCDVv9W+1bXVodWs1bbVpdaA1agg1a/Vr9W41oDVpdW2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDcyOTk2MjY5MTQ4NDgzNjM3Ij4i1LTVuNaC1oQgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQg1b3VrdWh1awg1oPVuNaA1bEg1aXWhCDVodaA1aXVrCDVo9aA1aHVvdWh1azVq9Wv1bYg1aHVutWh1a/VuNWy1brVpdWs1bjWgiDVsNWh1bTVodaAOiDUs9aA1aHVvdWh1azVq9Wv1bYg1aHVtdWq1bQg1a/VvtWl1oDVodWv1aHWgNWj1aHVvtW41oDVvtWrINWj1bjWgNWu1aHWgNWh1bbVodW11avVtiDVrNW81aXVrNW11aHVtdW21as6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4i1LTVuNaC1oTCoDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDVodW21aPVodW0INW91a3VodWsINaD1bjWgNWxINWl1oQg1aHWgNWl1azCoNWw1aXVvNWh1a3VuNW91bYg1aHVutWh1a/VuNWy1brVpdWs1bjWgiDVsNWh1bTVodaAOiDVgNWl1bzVodWt1bjVvdW2INWh1bXVqtW0INWv1b7VpdaA1aHVr9Wh1oDVo9Wh1b7VuNaA1b7VqyDVo9W41oDVrtWh1oDVodW21aHVtdWr1bYg1azVvNWl1azVtdWh1bXVttWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMyNTM1NzU1NzIxMTg5MTQzNzAiPiLUtNW41oLWhCDVvdWt1aHVrCDVpdaEINWw1aHVvtWh1oTVpdWsINWx1aXWgCDVodW61aHVr9W41bLVutW01aHVtiDVvdWt1aXVtNWh1bYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtDog1LXVvtW9IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INWh1bbVsNWh1bvVuNWyINaD1bjWgNWx1avWgSDVsNWl1b/VuCDVsdWl1abVodW21avWgSDVr9W61aHVsNWh1bbVu9W+1asg1aHVutWh1a/VuNWy1brVpdWsINWx1aXWgCDVo9aA1aHVvdWh1azVq9Wv1ahgINaF1aPVv9Wh1aPVuNaA1a7VpdWs1bjVviDVp9Ws1oPVuNW91b/VqyDVsNWh1bfVq9W+OlxuXG4g1ZPVuNaA1bHVpdaEINWv1oDVr9Wr1bYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g1b7VodW11oDVr9W11aHVttWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLUtNW41oLWhMKgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtCDVvdWt1aHVrCDVpdaEINWw1aHVvtWh1oTVpdWsINWx1aXWgCDVodW61aHVr9W41bLVutW01aHVtiDVttW01bjWgtW31ag6IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bTVq9aBINWh1b7VpdWsINWh1bbVsNWh1bvVuNWyINaD1bjWgNWx1aXWgNWr1oEg1bDVpdW/1bgg1bHVpdWmINWv1aHVvNWh1bvVodaA1a/VvtWrINWh1brVodWv1bjVstW61aXVrCDVsdWl1oAg1bDVpdW81aHVrdW41b3VqGAg1oXVo9W/1aHVo9W41oDVrtWl1azVuNW+INWn1azWg9W41b3Vv9WrINWw1aHVt9Wr1b46XG5cbiDVk9W41oDVsdWl1oQg1a/WgNWv1avVtiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDVvtWh1bXWgNWv1bXVodW21avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLVgNWl1bzVodaB1bbVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2FmZV9tZWRpYV92b2x1bWVfd2FybmluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMjQxNjE5Mzk0NzU0NzgwNjYiPiLUstWh1oDVsdaA1aHWgdW21aXVntWsINWx1aHVtdW21agg1aHVvNWh1bvVodaA1a/VvtW41bIg1bfVpdW01avWgSDVotWh1oDVsdaAOlxu1LXWgNWv1aHWgCDVqtWh1bTVodW21aHVryDVotWh1oDVsdaA1aHVsdWh1bXVtiDVrNW91aXVrNWoINWv1aHWgNW41bIg1acg1b7VttWh1b3VpdWsINWx1aXWgCDVrNW91bjVstW41oLVqdW11bjWgtW21ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGludWVfdG9fZW5hYmxlX2FjY2Vzc2liaWxpdHkiIG1zZ2lkPSIxNjI2NDI3MzcyMzE2MDcwMjU4Ij4i1Y3VpdWy1bTVodWuINW61aHVsNWl1oQg1aXWgNWv1bjWgiDVtNWh1b/VttWl1oDVqGAg1bTVodW/1bnVpdWs1avVuNaC1anVtdW41oLVttWoINW01avVodaB1bbVpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZW5hYmxlZCIgbXNnaWQ9IjEzODE5NzIwNDg1NjQ1NDc2ODUiPiLVhNWh1b/VudWl1azVq9W41oLVqdW11bjWgtW21agg1bTVq9Wh1oHVvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2FjY2Vzc2liaWxpdHlfY2FuY2VsZWQiIG1zZ2lkPSIzODMzOTIzMjU3OTY2NjM1NjczIj4i1YTVuNaC1b/WhNWrINWw1bbVodaA1aHVvtW41oDVuNaC1anVtdW41oLVttWoINW51aXVstWh1oDVr9W+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VyX3N3aXRjaGVkIiBtc2dpZD0iMzc2ODAwNjc4MzE2Njk4NDQxMCI+ItWG1aXWgNWv1aHVtdWr1b0g1oXVo9W/1b7VuNWy1aggPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im93bmVyX25hbWUiIG1zZ2lkPSIyNzE2NzU1NDYwMzc2MDI4MTU0Ij4i1Y3VpdaD1aHVr9Wh1bbVodW/1aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVycm9yX21lc3NhZ2VfdGl0bGUiIG1zZ2lkPSI0NTEwMzczMDgzMDgyNTAwMTk1Ij4i1Y3VrdWh1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbm9fcmVzdHJpY3RlZF9hY2NvdW50cyIgbXNnaWQ9IjU3Mzk0NjMyNDk2NzM3Mjc3MzYiPiLUsdW11b0g1a7WgNWh1aPVq9aA1agg1bnVqyDVodW71aHVr9aB1bjWgtW0INW91aHVsNW01aHVttWh1oPVodWv1b7VodWuINW61oDVuNaG1avVrNW21aXWgNWrINWw1aHVt9Wr1b7VttWl1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX25vdF9mb3VuZCIgbXNnaWQ9IjM0MjkxNDE4NTM0OTg5MjczNzkiPiLUsdW11b0g1aPVuNaA1a7VuNWy1bjWgtWp1bXVuNaC1bbVqCDVr9Wh1b/VodaA1aXVrNW41oIg1bDVodW01aHWgCDVuNW5INW01asg1a7WgNWh1aPVq9aAINW51asg1aPVv9W21b7VpdWsOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJldm9rZSIgbXNnaWQ9IjU0MDQ0NzkxODUyMjgyNzE1ODYiPiLVidWl1bLVodaA1a/VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMCIgbXNnaWQ9Ijc4NzU0Mjc0ODk0MjA4MjE3OTMiPiJJU08gQTAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2ExIiBtc2dpZD0iMzc2MDczNDQ5OTA1MDg3NTM1NiI+IklTTyBBMSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTIiIG1zZ2lkPSI1OTczMjY2Mzc4MDIwMTQ0MzgyIj4iSVNPIEEyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMyIgbXNnaWQ9IjEzNzM0MDcxMDU2ODczMDA4ODQiPiJJU08gQTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E0IiBtc2dpZD0iNjY4OTc3MjgwNzk4MjU5NzI1NCI+IklTTyBBNCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTUiIG1zZ2lkPSI1MzUzNTQ5NjUyMDE1NzQxMDQwIj4iSVNPIEE1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNiIgbXNnaWQ9Ijg1ODUwMzgwNDg2NzQ5MTE5MDciPiJJU08gQTYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E3IiBtc2dpZD0iNjY0MTgzNjcxNjk2MzgzOTExOSI+IklTTyBBNyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTgiIG1zZ2lkPSI3NTcxMTM5NDM3NDY1NjkzMzU1Ij4iSVNPIEE4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hOSIgbXNnaWQ9IjEzNzg0NTU4OTE5NTcxMTUwNzkiPiJJU08gQTkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2ExMCIgbXNnaWQ9IjI0ODA3NDc0NTc0Mjk0NzUzNDQiPiJJU08gQTEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMCIgbXNnaWQ9IjM5NjU5MzUwOTc2NjExMDgwMzkiPiJJU08gQjAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IxIiBtc2dpZD0iMjUwNTc1MzI4NTAxMDExNTQzNyI+IklTTyBCMSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjIiIG1zZ2lkPSI4NzYzODc0NzA5ODU5NDU4NDUzIj4iSVNPIEIyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMyIgbXNnaWQ9IjQyMTA1MDY2ODgxOTE3NjQwNzYiPiJJU08gQjMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I0IiBtc2dpZD0iNTc0OTQwNDE2NTg4ODUyNjAzNCI+IklTTyBCNCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjUiIG1zZ2lkPSI3NjQwNjI3NDE0NjIxOTA0NzMzIj4iSVNPIEI1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNiIgbXNnaWQ9IjczNDI5ODg4NjQ3MTI3NDg1NDQiPiJJU08gQjYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I3IiBtc2dpZD0iNTA2OTg0NDA2NTIzNTM4MjQyOSI+IklTTyBCNyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjgiIG1zZ2lkPSI3MzE2ODE4OTIyMjc4Nzc5Nzc0Ij4iSVNPIEI4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iOSIgbXNnaWQ9IjU0MTQ3MjcwOTQwMjY1MzIzNDEiPiJJU08gQjkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IxMCIgbXNnaWQ9IjUyNTEyNTM3MzE4MzIwNDgxODUiPiJJU08gQjEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMCIgbXNnaWQ9IjQwMDMxMzgzNDI2NzE5NjQyMTciPiJJU08gQzAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MxIiBtc2dpZD0iMTkzNTE4ODA2MzM5MzU1MzAwOCI+IklTTyBDMSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzIiIG1zZ2lkPSIzMTk3MzA3OTY5NzEyMDY5OTA0Ij4iSVNPIEMyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMyIgbXNnaWQ9IjQzMzU4MjYwODczMjE5MTM1MDgiPiJJU08gQzMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M0IiBtc2dpZD0iMzc0NTYzOTU5ODI4MTAxNTAwNSI+IklTTyBDNCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzUiIG1zZ2lkPSI4MjY5NDU3NzY1ODIyNzkxMDEzIj4iSVNPIEM1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNiIgbXNnaWQ9IjU2NjY2NjEwNTI2MDM0NjkzMCI+IklTTyBDNiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzciIG1zZ2lkPSI4Njc4NDEzMTgwNzgyNjA4NDk4Ij4iSVNPIEM3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jOCIgbXNnaWQ9IjgzOTIzNzYyMDY2MjcwNDE3MzAiPiJJU08gQzgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M5IiBtc2dpZD0iOTE5MTYxMzM3MjMyNDg0NTQwNSI+IklTTyBDOSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzEwIiBtc2dpZD0iNzMyNzcwOTY5OTE4NDkyMDgyMiI+IklTTyBDMTAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGV0dGVyIiBtc2dpZD0iNDE5MTgwNTYxNTgyOTQ3Mjk1MyI+IkxldHRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9ndnJubXRfbGV0dGVyIiBtc2dpZD0iNzg1MzM4MjE5MjY0OTQwNTUwNyI+IkdvdmVybm1lbnQgTGV0dGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2xlZ2FsIiBtc2dpZD0iNjY5Nzk4Mjk4ODI4MzgyMzE1MCI+IkxlZ2FsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2p1bmlvcl9sZWdhbCIgbXNnaWQ9IjM3Mjc3NDM5Njk5MDI3NTg5NDgiPiJKdW5pb3IgTGVnYWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGVkZ2VyIiBtc2dpZD0iMjgxODcxNDY0ODk2NjAxMjM2Ij4iTGVkZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX3RhYmxvaWQiIG1zZ2lkPSI1Nzc1OTY2NDE2MzMzNTc4MTI3Ij4iVGFibG9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndyaXRlX2ZhaWxfcmVhc29uX2NhbmNlbGxlZCIgbXNnaWQ9IjcwOTEyNTgzNzgxMjE2Mjc2MjQiPiLVidWl1bLVodaA1a/VvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3cml0ZV9mYWlsX3JlYXNvbl9jYW5ub3Rfd3JpdGUiIG1zZ2lkPSI4MTMyNTA1NDE3OTM1MzM3NzI0Ij4i1LLVuNW+1aHVttWk1aHVr9W41oLVqdW11aHVtiDVo9aA1aXVrNW41oIg1b3VrdWh1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfcGluIiBtc2dpZD0iMzM5NTk1MzQyMTM2ODQ3NjEwMyI+ItWE1bjWgtW/1oTVodWj1oDVpdaEIFBJTi3VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9vbGRfcGluIiBtc2dpZD0iMTQ2MjIwNjIyNTUxMjkxMDc1NyI+ItS41bbVqdWh1oHVq9WvIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9uZXdfcGluIiBtc2dpZD0iNTk1OTYwNjY5MTYxOTk1OTE4NCI+ItWG1bjWgCBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fY29uZmlybV9waW4iIG1zZ2lkPSI4NTAxNTIzODI5NjMzMTQ2MjM5Ij4i1YDVodW91b/VodW/1aXWhCDVttW41oAgUElOLdWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2NyZWF0ZV9waW4iIG1zZ2lkPSI4MDE3NjAwMDAwMjYzNDUwMzM3Ij4i1Y3Vv9Wl1bLVrtWl1awgUElO1Z0g1b3VodWw1bTVodW21aHWg9Wh1a/VuNaC1bTVttWl1oDVqCDWg9W41oPVuNWt1aXVrNW41oIg1bDVodW01aHWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lcnJvcl9kb2VzbnRfbWF0Y2giIG1zZ2lkPSIyMjI0MjE0MTkwOTA2OTk0NTQ4Ij4iUElOLdWl1oDVqCDVudWl1bYg1bDVodW01ajVttWv1bbVuNaC1bQ6INWT1bjWgNWx1aXWhCDVr9aA1a/Vq9W2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lcnJvcl90b29fc2hvcnQiIG1zZ2lkPSI4MTczOTgyNzU2MjY1Nzc3NzkyIj4iUElOLdWoINW51aHWg9Wh1abVodW21oEg1a/VodaA1bMg1ac6INWK1aXVv9aEINWnINW41oLVttWl1bbVoSDVodW81bbVvtWh1abVtiA0INWp1b7VodW21avVtzoiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InJlc3RyX3Bpbl9jb3VudGRvd24iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0ODM1NjM5OTY5NTAzNzI5ODc0Ij4iUElOLdWoINW91a3VodWsINWnOiDVk9W41oDVsdWl1oQg1a/WgNWv1avVtiAxINW+1aHVtdaA1a/VtdWh1bbVq9aBOiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODAzMDYwNzM0MzIyMzI4NzY1NCI+IlBJTi3VqCDVvdWt1aHVrCDVpzog1ZPVuNaA1bHVpdaEINWv1oDVr9Wr1bYgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g1b7VodW11oDVr9W11aHVttWr1oE6IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0idHJhbnNpZW50X25hdmlnYXRpb25fY29uZmlybWF0aW9uIiBtc2dpZD0iNDkwNzg0NDA0MzYxMTEyMzQyNiI+ItWN1aHVsNWl1oHWgNWl1oQg1afVr9aA1aHVttWrINWl1abWgNW41b7VnSDVo9W41b/Vq9W2INWi1aHWgdWl1azVuNaCINWw1aHVtNWh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0cmFuc2llbnRfbmF2aWdhdGlvbl9jb25maXJtYXRpb25fbG9uZyIgbXNnaWQ9IjgwNjE2ODU5MjA1MDgwODY2OTciPiLVjdWh1bDVpdaB1oDVpdaEINWn1a/WgNWh1bbVqyDVpdWm1oDVuNW+1Z0g1bDVodW01aHVr9Wh1oDVo9Wh1bXVq9W2INWj1bjVv9Wr1bYg1aLVodaB1aXVrNW41oIg1bDVodW01aHWgCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1pbi9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtaW4vc3RyaW5ncy54bWwKaW5kZXggNDE3YzE4ZS4uMWVkYmQ2NCAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1pbi9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWluL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJLZXRpayBQVUsgeWFuZyB0ZXJkaXJpIGRhcmkgOCBhbmdrYSBhdGF1IGxlYmloLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJLYXJ0dSBTSU0gQW5kYSBkaWt1bmNpIFBVSy4gS2V0aWtrYW4ga29kZSBQVUsgdW50dWsgbWVtYnVrYW55YS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJLZXRpa2thbiBQVUsyIHVudHVrIG1lbWJ1a2Ega2FydHUgU0lNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iR2FnYWwsIGFrdGlma2FuIEt1bmNpIFNJTS9SVUlNLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IlNpc2EgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHBlcmNvYmFhbiBzZWJlbHVtIFNJTSB0ZXJrdW5jaS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJTaXNhIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwZXJjb2JhYW4gc2ViZWx1bSBTSU0gdGVya3VuY2kuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiJOb21vciBQZW5lbGVwb24gTWFzdWsiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+Ik1lbmdpemlua2FuIGFwbCBtZW5nZ3VuYWthbiBmaXR1ciB0aW5na2F0IHJlbmRhaCBTdXJmYWNlRmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJiYWNhIGJ1ZmZlciBmcmFtZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJNZW5naXppbmthbiBhcGwgbWVtYmFjYSBrb250ZW4gcGVueWFuZ2dhIGZyYW1lLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+Im1lbmdha3NlcyBJbnB1dEZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4iTWVtdW5na2lua2FuIGFwbGlrYXNpIG1lbmdndW5ha2FuIGZpdHVyIHRpbmdrYXQgcmVuZGFoIElucHV0Rmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+Im1lbmdvbmZpZ3VyYXNpIHRhbXBpbGFuIFdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4iSXppbmthbiBhcGxpa2FzaSBtZW5nb25maWd1cmFzaSBkYW4gdGVyaHVidW5nIGtlIHRhbXBpbGFuIFdpLUZpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4ibWVuZ29udHJvbCB0YW1waWxhbiBXaS1GaSI8L3N0cmluZz4KQEAgLTExNDIsMTUgKzExNDksMTUgQEAKICAgICA8c3RyaW5nIG5hbWU9InNtdl9hcHBsaWNhdGlvbiIgbXNnaWQ9IjMzMDcyMDkxOTIxNTU0NDI4MjkiPiJBcGwgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiAocHJvc2VzIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMiRzPC94bGlmZjpnPikgdGVsYWggbWVsYW5nZ2FyIGtlYmlqYWthbiBTdHJpY3RNb2RlIHlhbmcgZGliZXJsYWt1a2FubnlhIHNlbmRpcmkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic212X3Byb2Nlc3MiIG1zZ2lkPSI1MTIwMzk3MDEyMDQ3NDYyNDQ2Ij4iUHJvc2VzIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiB0ZWxhaCBtZWxhbmdnYXIga2ViaWpha2FuIFN0cmljdE1vZGUgeWFuZyBkaWJlcmxha3VrYW4gc2VjYXJhIG90b21hdGlzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX3RpdGxlIiBtc2dpZD0iMTU4NDE5MjI4NTQ0MTQwNTc0NiI+IkFuZHJvaWQgc2VkYW5nIG1lbmluZ2thdGthbiB2ZXJzaS4uLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX2FwayIgbXNnaWQ9Ijc5MDQwNDI2ODIxMTE1MjYxNjkiPiJNZW5nb3B0aW1hbGthbiBhcGwgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRkPC94bGlmZjpnPiBkYXJpIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JTIkZDwveGxpZmY6Zz4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfc3RhcnRpbmdfYXBwcyIgbXNnaWQ9IjQ1MTQ2NDUxNjM0NjkyNjcxMyI+Ik1lbXVsYWkgYXBsLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX2FwayIgbXNnaWQ9Ijc5MDQwNDI2ODIxMTE1MjYxNjkiPiJNZW5nb3B0aW1hbGthbiBhcGxpa2FzaSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiUxJGQ8L3hsaWZmOmc+IGRhcmkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRkPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19zdGFydGluZ19hcHBzIiBtc2dpZD0iNDUxNDY0NTE2MzQ2OTI2NzEzIj4iTWVtdWxhaSBhcGxpa2FzaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19jb21wbGV0ZSIgbXNnaWQ9IjE0MDU5NTQ3NTQxMTI5OTkyMjkiPiJNZW55ZWxlc2Fpa2FuIGJvb3QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X25vdGlmaWNhdGlvbiIgbXNnaWQ9IjkwODcwNjM5ODU3NzY2MjYxNjYiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lMSRzPC94bGlmZjpnPiBiZXJqYWxhbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9ub3RpZmljYXRpb25fZGV0YWlsIiBtc2dpZD0iMTcyMTY4MTc0MTYxNzg5ODg2NSI+IlNlbnR1aCB1bnR1ayBiZXJhbGloIGtlIGFwbCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9zd2l0Y2hlcl90aXRsZSIgbXNnaWQ9IjcxNTMxNjcwODU0MDMyOTgxNjkiPiJCZXJhbGloIGFwbD8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfc3dpdGNoZXJfdGV4dCIgbXNnaWQ9IjcwMjI2MzE5MjQ1MzQ0MDY0MDMiPiJBcGwgbGFpbiBzdWRhaCBiZXJqYWxhbiBkYW4gaGFydXMgZGloZW50aWthbiBhZ2FyIEFuZGEgZGFwYXQgbWVtdWxhaSB5YW5nIGJhcnUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ib2xkX2FwcF9hY3Rpb24iIG1zZ2lkPSI0OTMxMjkxNzIyMzg1NjYyODIiPiJLZW1iYWxpIGtlPHhsaWZmOmcgaWQ9Ik9MRF9BUFAiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ib2xkX2FwcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIwODIwOTQyNzU1ODAzNTgwNDkiPiJKYW5nYW4gbWVtdWxhaSBhcGwgYmFydS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvbGRfYXBwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjA4MjA5NDI3NTU4MDM1ODA0OSI+IkphbmdhbiBtZW11bGFpIGFwbGlrYXNpIGJhcnUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmV3X2FwcF9hY3Rpb24iIG1zZ2lkPSI1NDcyNzU2OTI2OTQ1NDQwNzA2Ij4iTXVsYWkgPHhsaWZmOmcgaWQ9Ik9MRF9BUFAiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmV3X2FwcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjE5MzIxNDM1OTgzNzE1MzczNDAiPiJIZW50aWthbiBhcGwgbGFtYSB0YW5wYSBtZW55aW1wYW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2VuZFRleHQiIG1zZ2lkPSI1MjA5ODc0NTcxOTU5NDY5MTQyIj4iUGlsaWggdGluZGFrYW4gdW50dWsgdGVrcyI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkVudGVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4iUGlsaWggYXBsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4iVGlkYWsgZGFwYXQgbWVsdW5jdXJrYW4gPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IkJlcmJhZ2kgZGVuZ2FuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IkJlcmJhZ2kgZGVuZ2FuIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iR2FnYW5nIGdlc2VyLiBTZW50dWggJmFtcDsgdGFoYW4uIjwvc3RyaW5nPgpAQCAtMTY0OSw1ICsxNjU3LDE2IEBACiAgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDczMDg2ODkyMDc0Mjk1MjgxNyI+IkNvYmEgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gZGV0aWsgbGFnaSI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJDb2JhIGxhZ2kgbmFudGkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4iR2VzZWsga2UgYmF3YWggdW50dWsga2VsdWFyIGRhcmkgbGF5YXIgcGVudWgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4iR2VzZWsgZGFyaSBhdGFzIGtlIGJhd2FoIHVudHVrIGtlbHVhciBkYXJpIGxheWFyIHBlbnVoLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4iU2VsZXNhaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IlBlbmdnZXNlciBwdXRhciBqYW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+IlBlbmdnZXNlciBwdXRhciBtZW5pdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiJQaWxpaCBqYW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiJQaWxpaCBtZW5pdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4iS2lzaSBoYXJpIHBhZGEgYnVsYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiJEYWZ0YXIgdGFodW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IlBpbGloIGJ1bGFuIGRhbiBoYXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4iUGlsaWggdGFodW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+IGRpcGlsaWgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiI8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiBkaWhhcHVzIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWl0L3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1pdC9zdHJpbmdzLnhtbAppbmRleCBkMmRiZmMzLi42YTVlNDE1IDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWl0L3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtaXQvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IkRpZ2l0YSB1biBQVUsgZm9ybWF0byBkYSBhbG1lbm8gOCBudW1lcmkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IkxhIFNJTSDDqCBibG9jY2F0YSB0cmFtaXRlIFBVSy4gRGlnaXRhIGlsIGNvZGljZSBQVUsgcGVyIHNibG9jY2FybGEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iRGlnaXRhIGlsIFBVSzIgcGVyIHNibG9jY2FyZSBsYSBTSU0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iT3BlcmF6aW9uZSBub24gcml1c2NpdGE7IGF0dGl2YSBibG9jY28gU0lNL1JVSU0uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iSGFpIGFuY29yYSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gdGVudGF0aXZvIGEgZGlzcG9zaXppb25lIHByaW1hIGNoZSBsYSBTSU0gdmVuZ2EgYmxvY2NhdGEuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4iSGFpIGFuY29yYSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gdGVudGF0aXZpIGEgZGlzcG9zaXppb25lIHByaW1hIGNoZSBsYSBTSU0gdmVuZ2EgYmxvY2NhdGEuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiJJRCBjaGlhbWFudGUgaW4gZW50cmF0YSI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4iQ29uc2VudGUgYWxsXCdhcHBsaWNhemlvbmUgbFwndXRpbGl6em8gZGkgZnVuemlvbmkgZGkgYmFzc28gbGl2ZWxsbyBTdXJmYWNlRmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJsZXR0dXJhIGJ1ZmZlciBkaSBmcmFtZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJDb25zZW50ZSBhbGxcJ2FwcGxpY2F6aW9uZSBkaSBsZWdnZXJlIGkgY29udGVudXRpIGRlbCBidWZmZXIgZGkgZnJhbWUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iYWNjZXNzbyBhIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJDb25zZW50ZSBhbGxcJ2FwcGxpY2F6aW9uZSBkaSB1dGlsaXp6YXJlIGZ1bnppb25pIGRpIGJhc3NvIGxpdmVsbG8gSW5wdXRGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4iY29uZmlndXJhemlvbmUgZGkgc2NoZXJtaSBXaS1GaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IkNvbnNlbnRlIGFsbFwnYXBwbGljYXppb25lIGRpIGNvbmZpZ3VyYXJlIHNjaGVybWkgV2ktRmkgZSBkaSBjb2xsZWdhcnNpIGEgZXNzaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+ImNvbnRyb2xsbyBkaSBzY2hlcm1pIFdpLUZpIjwvc3RyaW5nPgpAQCAtMTQxNCw2ICsxNDIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+Ik1haXVzY29sbyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkludmlvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4iU2NlZ2xpIHVuXCdhcHBsaWNhemlvbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiJJbXBvc3NpYmlsZSBhdnZpYXJlIGxcJ2FwcGxpY2F6aW9uZSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4iQ29uZGl2aWRpIGNvbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiJDb25kaXZpZGkgY29uIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iTWFuaWdsaWEgc2NvcnJldm9sZS4gVG9jY2EgZSB0aWVuaSBwcmVtdXRvLiI8L3N0cmluZz4KQEAgLTE2NTAsNCArMTY1OCwxNSBAQAogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4iUmlwcm92YSBwacO5IHRhcmRpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IlNjb3JyaSBkYWxsXCdhbHRvIHZlcnNvIGlsIGJhc3NvIHBlciB1c2NpcmUgZGFsbGEgbW9kYWxpdMOgIHNjaGVybW8gaW50ZXJvLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4iRmluZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IkRpc3Bvc2l0aXZvIGRpIHNjb3JyaW1lbnRvIGNpcmNvbGFyZSBwZXIgbGUgb3JlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiJEaXNwb3NpdGl2byBkaSBzY29ycmltZW50byBjaXJjb2xhcmUgcGVyIGkgbWludXRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IlNlbGV6aW9uYSBsZSBvcmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiJTZWxlemlvbmEgaSBtaW51dGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+IkdyaWdsaWEgZGkgZ2lvcm5pIHBlciBtZXNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4iRWxlbmNvIGRlZ2xpIGFubmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IlNlbGV6aW9uYSBtZXNlIGUgZ2lvcm5vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4iU2VsZXppb25hIGFubm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iRWxlbWVudG8gc2VsZXppb25hdG86IDx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+Ijx4bGlmZjpnIGlkPSJLRVkiPiUxJHM8L3hsaWZmOmc+IGVsaW1pbmF0byI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1pdy9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtaXcvc3RyaW5ncy54bWwKaW5kZXggNTFmMzg4OS4uMWMzMDE3OCAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1pdy9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWl3L3N0cmluZ3MueG1sCkBAIC0yMywxOCArMjMsMTggQEAKICAgICA8c3RyaW5nIG5hbWU9ImJ5dGVTaG9ydCIgbXNnaWQ9IjgzNDA5NzM4OTI3NDIwMTkxMDEiPiJCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2lsb2J5dGVTaG9ydCIgbXNnaWQ9IjU5NzM3ODk3ODM1MDQ3NzE4NzgiPiJLQiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1lZ2FieXRlU2hvcnQiIG1zZ2lkPSI2MzU1ODUxNTc2NzcwNDI4OTIyIj4iTUIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJnaWdhYnl0ZVNob3J0IiBtc2dpZD0iMzI1OTg4MjQ1NTIxMjE5MzIxNCI+IkdC4oCP4oCPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2lnYWJ5dGVTaG9ydCIgbXNnaWQ9IjMyNTk4ODI0NTUyMTIxOTMyMTQiPiLigI9HQuKAj+KAjyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InRlcmFieXRlU2hvcnQiIG1zZ2lkPSIyMzE2MTMwMTgxNTkxODY5NjIiPiJUQiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBldGFieXRlU2hvcnQiIG1zZ2lkPSI1NjM3ODE2NjgwMTQ0OTkwMjE5Ij4iUEIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJmaWxlU2l6ZVN1ZmZpeCIgbXNnaWQ9IjkxNjQyOTI3OTE1MDA1MzE5NDkiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRzPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJVTklUIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVudGl0bGVkIiBtc2dpZD0iNDYzODk1Njk1NDg1Mjc4MjU3NiI+IiZndDvXnNec15Ag15vXldeq16jXqiZsdDsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1bnRpdGxlZCIgbXNnaWQ9IjQ2Mzg5NTY5NTQ4NTI3ODI1NzYiPiLigI8mZ3Q715zXnNeQINeb15XXqteo16ombHQ7Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXMiIG1zZ2lkPSI3ODk5ODI5NTE2MDQ4ODEzMjM3Ij4iLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXNfdHdvX2RvdHMiIG1zZ2lkPSIxMjI4MDc4OTk0ODY2MDMwNzM2Ij4i4oClIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZW1wdHlQaG9uZU51bWJlciIgbXNnaWQ9Ijc2OTQwNjMwNDIwNzk2NzY1MTciPiIo15DXmdefINee16HXpNeoINeY15zXpNeV158pIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idW5rbm93bk5hbWUiIG1zZ2lkPSIyMjc3NTU2NTQ2NzQyNzQ2NTIyIj4iKNec15Ag15nXk9eV16IpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdFZvaWNlTWFpbEFscGhhVGFnIiBtc2dpZD0iMjY2MDAyMDk5MDA5NzczMzA3NyI+IteT15XXkNeoINen15XXnNeZIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdE1zaXNkbkFscGhhVGFnIiBtc2dpZD0iMjg1MDg4OTc1NDkxOTU4NDY3NCI+Ik1TSVNETjEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJtbWlFcnJvciIgbXNnaWQ9IjUxNTQ0OTk0NTc3MzkwNTI5MDciPiLXkdei15nXlCDXkdeX15nXkdeV16gg15DXlSDXp9eV15MgTU1JINec15Ag15fXlden15kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pRXJyb3IiIG1zZ2lkPSI1MTU0NDk5NDU3NzM5MDUyOTA3Ij4i4oCP15HXoteZ15Qg15HXl9eZ15HXldeoINeQ15Ug16fXldeTIE1NSSDXnNeQINeX15XXp9eZLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1taUZkbkVycm9yIiBtc2dpZD0iNTIyNDM5ODIxNjM4NTMxNjQ3MSI+IteU16TXoteV15zXlCDXnteV15LXkdec16og15zXnteh16TXqNeZINeX15nXldeSINen15HXldei15nXnSDXkdec15HXky4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRW5hYmxlZCIgbXNnaWQ9IjgxNDcyNzgzNDY0MTQ3MTQzMTUiPiLXlNep15nXqNeV16og15TXldek16LXnC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRW5hYmxlZEZvciIgbXNnaWQ9IjY4NTYyMjgxNDA0NTM0NzEwNDEiPiLXlNep15nXqNeV16og15TXldek16LXnCDXoteR15XXqDoiPC9zdHJpbmc+CkBAIC00MiwxNCArNDIsMTkgQEAKICAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VSZWdpc3RlcmVkIiBtc2dpZD0iNjI3NTAxOTA4MjU5ODEwMjQ5MyI+IteU15TXqNep157XlCDXkdeV16bXoteUINeR15TXptec15fXlC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRXJhc2VkIiBtc2dpZD0iMTI4ODU4NDY5NTI5NzIwMDk3MiI+IteU157Xl9eZ16fXlCDXkdeV16bXoteUINeR15TXptec15fXlC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZEluY29ycmVjdCIgbXNnaWQ9Ijc2MTIyMDg4Mzk0NTAxMjg3MTUiPiLXodeZ16HXnteUINep15LXldeZ15QuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibW1pQ29tcGxldGUiIG1zZ2lkPSI4MjMyNTI3NDk1NDExNjk4MzU5Ij4iTU1JINeU15XXqdec150uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYmFkUGluIiBtc2dpZD0iOTAxNTI3NzY0NTU0NjcxMDAxNCI+IteULVBJTiDXlNeZ16nXnyDXqdeU16fXnNeT16og16nXkteV15kuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYmFkUHVrIiBtc2dpZD0iNTQ4NzI1NzY0NzA4MTEzMjIwMSI+IteULVBVSyDXqdeU16fXnNeT16og16nXkteV15kuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibWlzbWF0Y2hQaW4iIG1zZ2lkPSI2MDkzNzkwNTQ0OTY4NjM0MTkiPiLXp9eV15PXmSDXlC1QSU4g16nXlNen15zXk9eqINec15Ag16rXldeQ157XmdedLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQaW4iIG1zZ2lkPSIzODUwMDE4NDQ1MTg3NDc1Mzc3Ij4i15TXp9ec15MgUElOINep15DXldeo15vXlSA0INei15MgOCDXodek16jXldeqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4i15TXp9ec15MgUFVLINeR15DXldeo15ogOCDXnteh16TXqNeZ150g15DXlSDXmdeV16rXqC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4i15vXqNeY15nXoSDXlC1TSU0g16DXoteV15wg15HXkNee16bXoteV16ogUFVLLiDXlNen15zXkyDXkNeqINen15XXkyBQVUsg15vXk9eZINec15HXmNecINeQ16og16DXoteZ15zXqteVLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IteU16fXnNeTIFBVSzIg15vXk9eZINec15HXmNecINeQ16og15fXodeZ157XqiDXm9eo15jXmdehINeULVNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtbWlDb21wbGV0ZSIgbXNnaWQ9IjgyMzI1Mjc0OTU0MTE2OTgzNTkiPiLigI9NTUkg15TXldep15zXnS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWRQaW4iIG1zZ2lkPSI5MDE1Mjc3NjQ1NTQ2NzEwMDE0Ij4i4oCP15QtUElOINeU15nXqdefINep15TXp9ec15PXqiDXqdeS15XXmS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWRQdWsiIG1zZ2lkPSI1NDg3MjU3NjQ3MDgxMTMyMjAxIj4i4oCP15QtUFVLINep15TXp9ec15PXqiDXqdeS15XXmS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaXNtYXRjaFBpbiIgbXNnaWQ9IjYwOTM3OTA1NDQ5Njg2MzQxOSI+IuKAj9en15XXk9eZINeULVBJTiDXqdeU16fXnNeT16og15zXkCDXqteV15DXnteZ150uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFBpbiIgbXNnaWQ9IjM4NTAwMTg0NDUxODc0NzUzNzciPiLigI/XlNen15zXkyBQSU4g16nXkNeV16jXm9eVIDQg16LXkyA4INeh16TXqNeV16ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiLigI/XlNen15zXkyBQVUsg15HXkNeV16jXmiA4INee16HXpNeo15nXnSDXkNeVINeZ15XXqteoLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiLigI/Xm9eo15jXmdehINeULVNJTSDXoNei15XXnCDXkdeQ157Xptei15XXqiBQVUsuINeU16fXnNeTINeQ16og16fXldeTIFBVSyDXm9eT15kg15zXkdeY15wg15DXqiDXoNei15nXnNeq15UuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4i4oCP15TXp9ec15MgUFVLMiDXm9eT15kg15zXkdeY15wg15DXqiDXl9eh15nXnteqINeb16jXmNeZ16Eg15QtU0lNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+IuKAj9ec15Ag15TXptec15fXqi4g15TXpNei15wg16DXoteZ15zXqiBTSU0vUlVJTS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiLigI/XoNeV16rXqCDXnNeaINeg15nXodeZ15XXnyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g15zXpNeg15kg16DXoteZ15zXqiDXm9eo15jXmdehINeULVNJTS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiLigI/XoNeV16rXqNeVINec15ogPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INeg15nXodeZ15XXoNeV16og15zXpNeg15kg16DXoteZ15zXqiDXm9eo15jXmdehINeULVNJTS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IteW15nXlNeV15kg157Xqten16nXqCDXqdecINep15nXl9eUINeg15vXoNeh16oiPC9zdHJpbmc+CkBAIC01OCw3ICs2Myw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJDd01taSIgbXNnaWQ9IjkxMjk2NzgwNTY3OTUwMTY4NjciPiLXqdeZ15fXlCDXntee16rXmdeg15QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJCYU1taSIgbXNnaWQ9IjQ1NTE5MzA2NzkyNjc3MDU4MSI+IteX16HXmdee16og16nXmdeX15XXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IlB3ZE1taSIgbXNnaWQ9IjcwNDM3MTU2ODc5MDUyNTQxOTkiPiLXqdeZ16DXldeZINeh15nXodee15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJQaW5NbWkiIG1zZ2lkPSIzMTEzMTE3NzgwMzYxMTkwMzA0Ij4i16nXoNeUINeQ16og15QtUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUGluTW1pIiBtc2dpZD0iMzExMzExNzc4MDM2MTE5MDMwNCI+IuKAj9ep16DXlCDXkNeqINeULVBJTiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNuaXBNbWkiIG1zZ2lkPSIzMTEwNTM0NjgwNTU3ODU3MTYyIj4i157Xodek16gg157Xqten16nXqCDXoNee16bXkCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNuaXJNbWkiIG1zZ2lkPSIzMDYyMTAyMTIxNDMwNTQ4NzMxIj4i157Xodek16gg157Xqten16nXqCDXl9eh15XXmSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IlRocmVlV0NNbWkiIG1zZ2lkPSI5MDUxMDQ3MTcwMzIxMTkwMzY4Ij4i16nXmdeX15Qg16LXnSDXqdec15XXqdeUINee16nXqteq16TXmdedIjwvc3RyaW5nPgpAQCAtNzYsMTAgKzgxLDEwIEBACiAgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25FbWVyZ2VuY3kiIG1zZ2lkPSI2NTgxMTYzNzc5MDcyODMzNjY1Ij4i16nXmdeo15XXqiDXl9eZ16jXldedINeX16HXldedLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbk5vcm1hbCIgbXNnaWQ9IjQ5NTM4NjcwMTEzODk3NTA2NzMiPiLXlNep15nXqNeV16og15TXp9eV15zXmSDXl9eh15XXnS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25BbGxWb2ljZSIgbXNnaWQ9IjMzOTY5NjM2NTIxMDgxNTEyNjAiPiLXm9ecINeU16nXmdeo15XXqteZ150g15TXp9eV15zXmdeZ150g15fXodeV157XmdedLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblNtcyIgbXNnaWQ9IjgzMTQzNTIzMjc0NjE2Mzg4OTciPiLXqdeZ16jXldeqIFNNUyDXl9eh15XXnS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25TbXMiIG1zZ2lkPSI4MzE0MzUyMzI3NDYxNjM4ODk3Ij4i4oCP16nXmdeo15XXqiBTTVMg15fXodeV150uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VEYXRhIiBtc2dpZD0iOTk2NjM2NDg3MTA2MTcxMzIwIj4i16nXmdeo15XXqteZINeU16fXldecL9eg16rXldeg15nXnSDXl9eh15XXnteZ150uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VTbXMiIG1zZ2lkPSIxODg4NTg4MTUyNzkyMDIzODczIj4i16nXmdeo15XXqteZINen15XXnC9TTVMg15fXodeV157XmdedLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkFsbCIgbXNnaWQ9IjU2NDMwMjgyNjQ0NjYwOTI4MjEiPiLXm9ecINeU16nXmdeo15XXqteZ150g16nXnCDXp9eV15wv16DXqteV16DXmdedL1NNUyDXl9eh15XXnteZ150uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VTbXMiIG1zZ2lkPSIxODg4NTg4MTUyNzkyMDIzODczIj4i4oCP16nXmdeo15XXqteZINen15XXnC9TTVMg15fXodeV157XmdedLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkFsbCIgbXNnaWQ9IjU2NDMwMjgyNjQ0NjYwOTI4MjEiPiLigI/Xm9ecINeU16nXmdeo15XXqteZ150g16nXnCDXp9eV15wv16DXqteV16DXmdedL1NNUyDXl9eh15XXnteZ150uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzVm9pY2UiIG1zZ2lkPSIxMjU4MzkzODEyMzM1MjU4MDE5Ij4iR29vZ2xlIFZvaWNlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRGF0YSIgbXNnaWQ9Ijg3MjQ1Njc4MjA3NzkzNzg5MyI+Ikdvb2dsZSBEYXRhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRkFYIiBtc2dpZD0iNTU2NjYyNDk5ODg0MDQ4NjQ3NSI+Itek16fXoSI8L3N0cmluZz4KQEAgLTExNCw3ICsxMTksNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yTG9va3VwIiBtc2dpZD0iNDcxMTY4NzQ1NjExMTk2MzE2MyI+Itec15Ag16DXmdeq158g15zXntem15XXkCDXkNeqINeb16rXldeR16og15TXkNeq16guIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVW5zdXBwb3J0ZWRBdXRoU2NoZW1lIiBtc2dpZD0iNjI5OTk4MDI4MDQ0MjA3Njc5OSI+Iteh15vXmdee16og15DXmdee15XXqiDXlNeQ16rXqCDXkNeZ16DXlCDXoNeq157Xm9eqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckF1dGgiIG1zZ2lkPSIxNDM1MDY1NjI5NDM4MDQ0NTM0Ij4i15TXkNeZ157XldeqINeg15vXqdecLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclByb3h5QXV0aCIgbXNnaWQ9IjE3ODgyMDcwMTA1NTkwODEzMzEiPiLXlNeQ15nXnteV16og15PXqNeaINep16jXqiDXlC1Qcm94eSDXoNeb16nXnC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JQcm94eUF1dGgiIG1zZ2lkPSIxNzg4MjA3MDEwNTU5MDgxMzMxIj4i4oCP15TXkNeZ157XldeqINeT16jXmiDXqdeo16og15QtUHJveHkg16DXm9ep15wuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yQ29ubmVjdCIgbXNnaWQ9Ijg3MTQyNzMyMzYzNjQ2NDA1NDkiPiLXnNeQINeg15nXqtefINec15TXqteX15HXqCDXnNep16jXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JJTyIgbXNnaWQ9IjIzNDA1NTgxOTc0ODkzMDIxODgiPiLXnNeQINeg15nXqtefINec16rXp9ep16gg16LXnSDXlNep16jXqi4g16DXodeUINep15XXkSDXnteQ15XXl9eoINeZ15XXqteoLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclRpbWVvdXQiIG1zZ2lkPSI0NzQzNDAzNzAzNzYyODgzOTU0Ij4i15fXnNejINeU15bXntefINeU16fXpteV15Eg16nXnCDXlNeX15nXkdeV16gg15zXqdeo16ouIjwvc3RyaW5nPgpAQCAtMTY4LDExICsxNzMsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zX2FpcnBsYW5lX21vZGVfb2ZmX3N0YXR1cyIgbXNnaWQ9IjUwNzUwNzA0NDI4NTQ0OTAyOTYiPiLXntem15Eg15jXmdeh15Qg15vXkdeV15kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbmZvX292ZXJmbG93IiBtc2dpZD0iNTMwMTk4MTc0MTcwNTM1NDk5MyI+Ijk5OSsiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzYWZlTW9kZSIgbXNnaWQ9IjI3ODgyMjgwNjE1NDc5MzAyNDYiPiLXntem15Eg15HXmNeV15ciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3N5c3RlbV9sYWJlbCIgbXNnaWQ9IjY1NzczNzUzMzU3Mjg1NTEzMzYiPiLXntei16jXm9eqIEFuZHJvaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3N5c3RlbV9sYWJlbCIgbXNnaWQ9IjY1NzczNzUzMzU3Mjg1NTEzMzYiPiLigI/Xntei16jXm9eqIEFuZHJvaWQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfY29zdE1vbmV5IiBtc2dpZD0iNTQyOTgwODIxNzg2MTQ2MDQwMSI+Itep15nXqNeV16rXmdedINep16LXldec15nXnSDXm9eh16MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Nvc3RNb25leSIgbXNnaWQ9IjMyOTMzMDE5MDM0MDk4Njk0OTUiPiLXkdeZ16bXldeiINek16LXldec15XXqiDXqdei16nXldeZ15XXqiDXnNei15zXldeqINec15og15vXodejLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9tZXNzYWdlcyIgbXNnaWQ9Ijc1MjEyNDkxNDg0NDU0NTY2NjIiPiLXlNeU15XXk9ei15XXqiDXqdec15oiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX21lc3NhZ2VzIiBtc2dpZD0iNzgyMTk5OTA3MTAwMzY5OTIzNiI+Iten16jXmdeQ15Qg15XXm9eq15nXkdeUINeR15TXldeT16LXldeqINeULVNNUywg15TXk9eV15BcItecINeV15TXldeT16LXldeqINeQ15fXqNeV16og16nXnNeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbWVzc2FnZXMiIG1zZ2lkPSI3ODIxOTk5MDcxMDAzNjk5MjM2Ij4i4oCP16fXqNeZ15DXlCDXldeb16rXmdeR15Qg15HXlNeV15PXoteV16og15QtU01TLCDXlNeT15XXkFwi15wg15XXlNeV15PXoteV16og15DXl9eo15XXqiDXqdec15ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3BlcnNvbmFsSW5mbyIgbXNnaWQ9IjM1MTkxNjMxNDEwNzA1MzM0NzQiPiLXlNee15nXk9eiINeU15DXmdep15kg16nXnNeaIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19wZXJzb25hbEluZm8iIG1zZ2lkPSI4NDI2NDUzMTI5Nzg4ODYxMzM4Ij4i15LXmdep15Qg15nXqdeZ16jXlCDXnNee15nXk9eiINei15zXmdeaLCDXlNee15DXldeX16HXnyDXkdeb16jXmNeZ16Eg15DXmdepINeU16fXqdeoINep15zXmi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc29jaWFsSW5mbyIgbXNnaWQ9IjU3OTkwOTY2MjM0MTIwNDM3OTEiPiLXnteZ15PXoiDXotecINeU16fXqdeo15nXnSDXlNeX15HXqNeq15nXmdedINep15zXmiI8L3N0cmluZz4KQEAgLTE4Miw3ICsxODcsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX25ldHdvcmsiIG1zZ2lkPSI1ODA4OTgzMzc3NzI3MTA5ODMxIj4i16rXp9ep15XXqNeqINeo16nXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbmV0d29yayIgbXNnaWQ9IjQ0NzgyOTk0MTMyNDE4NjE5ODciPiLXlNeo16nXkNeqINeS15nXqdeUINec16rXm9eV16DXldeqINeo16nXqiDXqdeV16DXldeqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9ibHVldG9vdGhOZXR3b3JrIiBtc2dpZD0iMTU4NTQwMzU0NDE2MjEyODEwOSI+IkJsdWV0b290aCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYmx1ZXRvb3RoTmV0d29yayIgbXNnaWQ9IjU2MjUyODg1NzcxNjQyODIzOTEiPiLXkteZ16nXlCDXnNee15vXqdeZ16jXmdedINeV15zXqNep16rXldeqINeR15DXntem16LXldeqIEJsdWV0b290aC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2JsdWV0b290aE5ldHdvcmsiIG1zZ2lkPSI1NjI1Mjg4NTc3MTY0MjgyMzkxIj4i4oCP15LXmdep15Qg15zXnteb16nXmdeo15nXnSDXldec16jXqdeq15XXqiDXkdeQ157Xptei15XXqiBCbHVldG9vdGguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2F1ZGlvU2V0dGluZ3MiIG1zZ2lkPSI4MzI5MjYxNjcwMTUxODcxMjM1Ij4i15TXkteT16jXldeqINeQ15XXk9eZ15UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2F1ZGlvU2V0dGluZ3MiIG1zZ2lkPSIyNjQxNTE1NDAzMzQ3NTY4MTMwIj4i16nXmdeg15XXmSDXlNeS15PXqNeV16og15TXkNeV15PXmdeVLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hZmZlY3RzQmF0dGVyeSIgbXNnaWQ9IjYyMDkyNDY2NTM0MjQ3OTgwMzMiPiLXlNep16TXoteUINei15wg15TXodeV15zXnNeUIjwvc3RyaW5nPgpAQCAtMjI4LDggKzIzMyw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGlzcGxheSIgbXNnaWQ9IjQyNzk5MDk2NzYwMzY0MDI2MzYiPiLXntee16nXpyDXlNee16nXqtee16kg16nXnCDXkNek15zXmden16bXmdeUINeQ15fXqNeqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kaXNwbGF5IiBtc2dpZD0iNjA1MTAwMjAzMTkzMzAxMzcxNCI+IteU16nXpNei15Qg16LXnCDXntee16nXpyDXlNee16nXqtee16kg16nXnCDXkNek15zXmden16bXmdeV16og15DXl9eo15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3RvcmFnZSIgbXNnaWQ9IjE5NzExMTg3NzA1NDYzMzY5NjYiPiLXkNeX16HXldefIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdG9yYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc0NDIzMTg1MDI0NDY4NzQ5OTkiPiLXkteZ16nXlCDXnNeQ157Xptei15kg15DXl9eh15XXnyDXnteh15XXkiBVU0IuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdG9yYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iOTIwMzMwMjIxNDkxNTM1NTc3NCI+IteS16kg15zXm9eo15jXmdehIFNELiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3NDQyMzE4NTAyNDQ2ODc0OTk5Ij4i4oCP15LXmdep15Qg15zXkNee16bXoteZINeQ15fXodeV158g157XodeV15IgVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjkyMDMzMDIyMTQ5MTUzNTU3NzQiPiLigI/XktepINec15vXqNeY15nXoSBTRC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNzkxOTAyNTYwMjI4MzU5MzkwNyI+Iteq15vXldeg15XXqiDXoNeS15nXqdeV16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FjY2Vzc2liaWxpdHlGZWF0dXJlcyIgbXNnaWQ9IjQyMDUxOTY4ODE2NzgxNDQzMzUiPiLXqteb15XXoNeV16og16nXmNeb16DXldec15XXkteZ15Qg157XodeZ15nXoteqINeZ15vXldec15Qg15zXkden16kuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXRyaWV2ZVdpbmRvd0NvbnRlbnQiIG1zZ2lkPSIzOTAxNzE3OTM2OTMwMTcwMzIwIj4i15DXl9eW16gg16rXldeb158g16nXnCDXl9ec15XXnyI8L3N0cmluZz4KQEAgLTI1MiwyNiArMjU3LDI2IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191bmluc3RhbGxfc2hvcnRjdXQiIG1zZ2lkPSI2NzQ1NzQzNDc0MjY1MDU3OTc1Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNeh15nXqCDXp9eZ16bXldeo15kg15PXqNeaINeR157XodeaINeT16Mg15TXkdeZ16og15zXnNeQINeU16rXoteo15HXldeqINeU157Xqdeq157XqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iMzkwNjAwNzgzMTE5Mjk5MDk0NiI+Iteg15nXqteV15Eg157Xl9eT16kg16nXnCDXqdeZ15fXldeqINeZ15XXpteQ15XXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iNTMzMTMxODkzMTkzNzQwMjA0MCI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16LXkdeTINep15nXl9eV16og15nXldem15DXldeqINeV15zXqdeg15XXqiDXkNeqINeU157Xodek16gg16nXmdepINec15fXmdeZ15IuINeQ15nXqdeV16gg15bXlCDXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNei16fXldeRINeQ15fXqCDXqdeZ15fXldeqINeZ15XXpteQ15XXqiwg15zXkdem16Ig15TXpNeg15nXlCDXnteX15PXqSDXqdec15TXnyDXkNeVINeQ16Mg15zXnteg15XXoiDXkNeqINeR15nXpteV16LXny4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVTbXMiIG1zZ2lkPSI4NjczNDcxNzY4OTQ3ODk1MDgyIj4i16fXkdec16og15TXldeT16LXldeqINeY16fXodeYIChTTVMpIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVNtcyIgbXNnaWQ9IjY0MjQzODc3NTQyMjg3NjY5MzkiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNen15HXnCDXldec16LXkdeTINeU15XXk9ei15XXqiBTTVMuINee16nXntei15XXqiDXlNeT15HXqCDXlNeZ15Ag16nXlNeQ16TXnNeZ16fXpteZ15Qg15nXm9eV15zXlCDXnNei16fXldeRINeQ15fXqCDXlNeV15PXoteV16og16nXoNep15zXl9eVINec157Xm9ep15nXqCDXkNeVINec157Xl9eV16cg15DXldeq158g157Xkdec15kg15zXlNem15nXkiDXnNeaINeQ15XXqtefLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZU1tcyIgbXNnaWQ9IjE4MjEzMTczNDQ2NjgyNTcwOTgiPiLXp9eR15zXqiDXlNeV15PXoteV16og15jXp9eh15ggKE1NUykiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlTW1zIiBtc2dpZD0iNTMzMDE5NDM3MjYzMjEyMjYwIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eR15wg15XXnNei15HXkyDXlNeV15PXoteV16ogTU1TLiDXntep157XoteV16og15TXk9eR16gg15TXmdeQINep15TXkNek15zXmden16bXmdeUINeZ15vXldec15Qg15zXoten15XXkSDXkNeX16gg15TXldeT16LXldeqINep16DXqdec15fXlSDXnNee15vXqdeZ16gg15DXlSDXnNee15fXldenINeQ15XXqtefINee15HXnNeZINec15TXpteZ15Ig15zXmiDXkNeV16rXny4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVTbXMiIG1zZ2lkPSI4NjczNDcxNzY4OTQ3ODk1MDgyIj4i4oCP16fXkdec16og15TXldeT16LXldeqINeY16fXodeYIChTTVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVNtcyIgbXNnaWQ9IjY0MjQzODc3NTQyMjg3NjY5MzkiPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNen15HXnCDXldec16LXkdeTINeU15XXk9ei15XXqiBTTVMuINee16nXntei15XXqiDXlNeT15HXqCDXlNeZ15Ag16nXlNeQ16TXnNeZ16fXpteZ15Qg15nXm9eV15zXlCDXnNei16fXldeRINeQ15fXqCDXlNeV15PXoteV16og16nXoNep15zXl9eVINec157Xm9ep15nXqCDXkNeVINec157Xl9eV16cg15DXldeq158g157Xkdec15kg15zXlNem15nXkiDXnNeaINeQ15XXqtefLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZU1tcyIgbXNnaWQ9IjE4MjEzMTczNDQ2NjgyNTcwOTgiPiLigI/Xp9eR15zXqiDXlNeV15PXoteV16og15jXp9eh15ggKE1NUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlTW1zIiBtc2dpZD0iNTMzMDE5NDM3MjYzMjEyMjYwIj4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eR15wg15XXnNei15HXkyDXlNeV15PXoteV16ogTU1TLiDXntep157XoteV16og15TXk9eR16gg15TXmdeQINep15TXkNek15zXmden16bXmdeUINeZ15vXldec15Qg15zXoten15XXkSDXkNeX16gg15TXldeT16LXldeqINep16DXqdec15fXlSDXnNee15vXqdeZ16gg15DXlSDXnNee15fXldenINeQ15XXqtefINee15HXnNeZINec15TXpteZ15Ig15zXmiDXkNeV16rXny4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVFbWVyZ2VuY3lCcm9hZGNhc3QiIG1zZ2lkPSIxODAzNDc3NjYwODQ2Mjg4MDg5Ij4i16fXkdecINep15nXk9eV16jXmSDXl9eZ16jXldedIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9Ijg0ODUyNDA3MDI2MjQzMTk3NCI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16fXkdecINeV15zXoteR15Mg15zXqdeT16gg15TXldeT16LXldeqINeX15nXqNeV150g157XqdeV15PXqNeV16ouINeU16jXqdeQ15Qg15bXlSDXltee15nXoNeUINeo16cg15zXkNek15zXmden16bXmdeV16og157Xoteo15vXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDZWxsQnJvYWRjYXN0cyIgbXNnaWQ9IjE1OTgzMjg4NDM2MTk2NDYxNjYiPiLXp9eo15nXkNeqINeU15XXk9ei15XXqiDXqdeZ15PXldeoINeh15zXldec16jXmSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDZWxsQnJvYWRjYXN0cyIgbXNnaWQ9IjYzNjE5NzI3NzYwODA0NTg5NzkiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNen16jXldeQINeU15XXk9ei15XXqiDXqdeZ15PXldeoINeh15zXldec16jXmSDXqdeU16rXp9eR15zXlSDXkdee15vXqdeZ16gg16nXnNeaLiDXlNeq16jXkNeV16og16nXmdeT15XXqCDXodec15XXnNeo15kg16DXqdec15fXldeqINeR157Xp9eV157XldeqINee16HXldeZ157XmdedINei15wg157XoNeqINec15TXlteU15nXqCDXkNeV16rXmiDXntek16DXmSDXntem15HXmSDXl9eZ16jXldedLiDXkNek15zXmden16bXmdeV16og15bXk9eV16DXmdeV16og16LXqdeV15nXldeqINec15TXpNeo15nXoiDXnNeR15nXpteV16LXmdedINeQ15Ug15zXpNei15XXnNeUINep15wg15TXnteb16nXmdeoINep15zXmiDXm9eQ16nXqCDXnteq16fXkdecINep15nXk9eV16gg15fXmdeo15XXnSDXodec15XXnNeo15kuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZW5kU21zIiBtc2dpZD0iNTYwMDgzMDYxMjE0NzY3MTUyOSI+Itep15zXldeXINeU15XXk9ei15XXqiBTTVMiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZW5kU21zIiBtc2dpZD0iNzA5NDcyOTI5ODIwNDkzNzY2NyI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXnNeV15cg15TXldeT16LXldeqIFNNUy4g15TXk9eR16gg16LXqdeV15kg15zXkteo15XXnSDXnNeX15nXldeR15nXnSDXkdec16rXmSDXptek15XXmdeZ150uINeQ16TXnNeZ16fXpteZ15XXqiDXlteT15XXoNeZ15XXqiDXotec15XXnNeV16og15zXkteo15XXnSDXnNei15zXldeZ15XXqiDXotecINeZ15PXmSDXqdec15nXl9eqINeU15XXk9ei15XXqiDXnNec15Ag15DXmdep15XXqNeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFNtcyIgbXNnaWQ9IjU2MDA4MzA2MTIxNDc2NzE1MjkiPiLigI/Xqdec15XXlyDXlNeV15PXoteV16ogU01TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VuZFNtcyIgbXNnaWQ9IjcwOTQ3MjkyOTgyMDQ5Mzc2NjciPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNep15zXldeXINeU15XXk9ei15XXqiBTTVMuINeU15PXkdeoINei16nXldeZINec15LXqNeV150g15zXl9eZ15XXkdeZ150g15HXnNeq15kg16bXpNeV15nXmdedLiDXkNek15zXmden16bXmdeV16og15bXk9eV16DXmdeV16og16LXnNeV15zXldeqINec15LXqNeV150g15zXotec15XXmdeV16og16LXnCDXmdeT15kg16nXnNeZ15fXqiDXlNeV15PXoteV16og15zXnNeQINeQ15nXqdeV16jXmi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlbmRSZXNwb25kVmlhTWVzc2FnZVJlcXVlc3QiIG1zZ2lkPSI4NzEzODg5MTA1MzA1OTQzMjAwIj4i16nXnNeZ15fXqiDXkNeZ16jXldei15kgXCfXqteS15XXkdeUINeR15DXntem16LXldeqINeU15XXk9ei15RcJyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRSZXNwb25kVmlhTWVzc2FnZVJlcXVlc3QiIG1zZ2lkPSI3MTA3NjQ4NTQ4NDY4Nzc4NzM0Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdec15XXlyDXkden16nXldeqINec15DXpNec15nXp9em15nXldeqINeQ15fXqNeZ150g16nXnCDXlNei15HXqNeqINeU15XXk9ei15XXqiDXm9eT15kg15zXmNek15wg15HXkNeZ16jXldei15kgXCfXqteS15XXkdeUINeR15DXntem16LXldeqINeU15XXk9ei15RcJyDXoteR15XXqCDXqdeZ15fXldeqINeg15vXoNeh15XXqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTbXMiIG1zZ2lkPSI4NzQ1MDg2NTcyMjEzMjcwNDgwIj4i16fXqNeZ15DXqiDXlNeV15PXoteV16og15TXmNen16HXmCDXqdec15ogKFNNUyDXkNeVIE1NUykiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNDY3OTgxNTQ4Njg0NzM1NTIyIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eo15XXkCDXlNeV15PXoteV16ogU01TINeU157XkNeV15fXodeg15XXqiDXkdeY15DXkdec15gg15DXlSDXkdeb16jXmNeZ16Eg15QtU0lNLiDXk9eR16gg15bXlCDXnteq15nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eo15XXkCDXkNeqINeb15wg15TXldeT16LXldeqINeULVNNUywg15zXnNeQINeU16rXl9ep15HXldeqINeR16rXldeb158g15DXlSDXkdeh15XXk9eZ15XXqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzY5NTk2NzUzMzQ1NzI0MDU1MCI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16fXqNeV15Ag15TXldeT16LXldeqIFNNUyDXlNee15DXldeX16HXoNeV16og15HXmNec16TXldefINeQ15Ug15HXm9eo15jXmdehINeULVNJTS4g15PXkdeoINeW15Qg157XqteZ16gg15zXkNek15zXmden16bXmdeUINec16fXqNeV15Ag15DXqiDXm9ecINeU15XXk9ei15XXqiDXlC1TTVMsINec15zXkCDXlNeq15fXqdeR15XXqiDXkdeq15XXm9efINeQ15Ug15HXodeV15PXmdeV16ouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNtcyIgbXNnaWQ9IjMyMTY5NTA0NzI2MzYyMTQ3NzQiPiLXoteo15nXm9eqINeU15XXk9ei15XXqiDXlNeY16fXodeYINep15zXmiAoU01TINeQ15UgTU1TKSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1MTYwNDEzOTQ3Nzk0NTAxNTM4Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXm9eq15XXkSDXnNeU15XXk9ei15XXqiBTTVMg15TXnteQ15XXl9eh16DXldeqINeR15jXkNeR15zXmCDXkNeVINeR15vXqNeY15nXoSDXlC1TSU0g16nXnNeaLiDXkNek15zXmden16bXmdeV16og15bXk9eV16DXmdeV16og16LXnNeV15zXldeqINec157Xl9eV16cg15DXqiDXlNeU15XXk9ei15XXqiDXqdec15ouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjY4NjY4NzA5MDUyMzI4NTY3Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXm9eq15XXkSDXnNeU15XXk9ei15XXqiBTTVMg15TXnteQ15XXl9eh16DXldeqINeR15jXnNek15XXnyDXkNeVINeR15vXqNeY15nXoSDXlC1TSU0g16nXnNeaLiDXkNek15zXmden16bXmdeV16og15bXk9eV16DXmdeV16og16LXnNeV15zXldeqINec157Xl9eV16cg15DXqiDXlNeU15XXk9ei15XXqiDXqdec15ouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9IjU5OTEzOTg3MTE5MzY1OTA0MTAiPiLXp9eR15zXqiDXlNeV15PXoteV16og15jXp9eh15ggKFdBUCkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9Ijc0ODIzMjE5MDIyMDU4MzM4NSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16fXkdecINeV15zXoteR15Mg15TXldeT16LXldeqIFdBUC4g15DXmdep15XXqCDXlteUINeb15XXnNecINeQ16og15TXmdeb15XXnNeqINec16LXp9eV15Eg15DXl9eoINeU15XXk9ei15XXqiDXqdeg16nXnNeX15Ug15DXnNeZ15og15XXnNee15fXldenINeQ15XXqtefINee15HXnNeZINec15TXpteZ15Ig15zXmiDXkNeV16rXny4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTbXMiIG1zZ2lkPSI4NzQ1MDg2NTcyMjEzMjcwNDgwIj4i4oCP16fXqNeZ15DXqiDXlNeV15PXoteV16og15TXmNen16HXmCDXqdec15ogKFNNUyDXkNeVIE1NUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNDY3OTgxNTQ4Njg0NzM1NTIyIj4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eo15XXkCDXlNeV15PXoteV16ogU01TINeU157XkNeV15fXodeg15XXqiDXkdeY15DXkdec15gg15DXlSDXkdeb16jXmNeZ16Eg15QtU0lNLiDXk9eR16gg15bXlCDXnteq15nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eo15XXkCDXkNeqINeb15wg15TXldeT16LXldeqINeULVNNUywg15zXnNeQINeU16rXl9ep15HXldeqINeR16rXldeb158g15DXlSDXkdeh15XXk9eZ15XXqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzY5NTk2NzUzMzQ1NzI0MDU1MCI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16fXqNeV15Ag15TXldeT16LXldeqIFNNUyDXlNee15DXldeX16HXoNeV16og15HXmNec16TXldefINeQ15Ug15HXm9eo15jXmdehINeULVNJTS4g15PXkdeoINeW15Qg157XqteZ16gg15zXkNek15zXmden16bXmdeUINec16fXqNeV15Ag15DXqiDXm9ecINeU15XXk9ei15XXqiDXlC1TTVMsINec15zXkCDXlNeq15fXqdeR15XXqiDXkdeq15XXm9efINeQ15Ug15HXodeV15PXmdeV16ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNtcyIgbXNnaWQ9IjMyMTY5NTA0NzI2MzYyMTQ3NzQiPiLigI/Xoteo15nXm9eqINeU15XXk9ei15XXqiDXlNeY16fXodeYINep15zXmiAoU01TINeQ15UgTU1TKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1MTYwNDEzOTQ3Nzk0NTAxNTM4Ij4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXm9eq15XXkSDXnNeU15XXk9ei15XXqiBTTVMg15TXnteQ15XXl9eh16DXldeqINeR15jXkNeR15zXmCDXkNeVINeR15vXqNeY15nXoSDXlC1TSU0g16nXnNeaLiDXkNek15zXmden16bXmdeV16og15bXk9eV16DXmdeV16og16LXnNeV15zXldeqINec157Xl9eV16cg15DXqiDXlNeU15XXk9ei15XXqiDXqdec15ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjY4NjY4NzA5MDUyMzI4NTY3Ij4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXm9eq15XXkSDXnNeU15XXk9ei15XXqiBTTVMg15TXnteQ15XXl9eh16DXldeqINeR15jXnNek15XXnyDXkNeVINeR15vXqNeY15nXoSDXlC1TSU0g16nXnNeaLiDXkNek15zXmden16bXmdeV16og15bXk9eV16DXmdeV16og16LXnNeV15zXldeqINec157Xl9eV16cg15DXqiDXlNeU15XXk9ei15XXqiDXqdec15ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9IjU5OTEzOTg3MTE5MzY1OTA0MTAiPiLigI/Xp9eR15zXqiDXlNeV15PXoteV16og15jXp9eh15ggKFdBUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9Ijc0ODIzMjE5MDIyMDU4MzM4NSI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16fXkdecINeV15zXoteR15Mg15TXldeT16LXldeqIFdBUC4g15DXmdep15XXqCDXlteUINeb15XXnNecINeQ16og15TXmdeb15XXnNeqINec16LXp9eV15Eg15DXl9eoINeU15XXk9ei15XXqiDXqdeg16nXnNeX15Ug15DXnNeZ15og15XXnNee15fXldenINeQ15XXqtefINee15HXnNeZINec15TXpteZ15Ig15zXmiDXkNeV16rXny4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFRhc2tzIiBtc2dpZD0iNjQ2NjA5NTM5NjYyMzkzMzkwNiI+IteQ15fXlteV16gg15DXpNec15nXp9em15nXldeqINek16LXmdec15XXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRhc2tzIiBtc2dpZD0iNzQ1NDIxNTk5NTg0NzY1ODEwMiI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15DXl9eW16gg157XmdeT16Ig15zXkteR15kg157XqdeZ157XldeqINeU16TXldei15zXldeqINeb16jXkteiINeV16nXpNei15zXlSDXnNeQ15fXqNeV16DXlC4g15nXmdeq15vXnyDXqdeU15PXkdeoINeZ16rXmdeoINec15DXpNec15nXp9em15nXlCDXnNeS15zXldeqINee15nXk9eiINec15LXkdeZINeU15DXpNec15nXp9em15nXldeqINep15HXlNefINeg16LXqdeUINep15nXnteV16kg15HXnteb16nXmdeoLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW50ZXJhY3RBY3Jvc3NVc2VycyIgbXNnaWQ9IjcxMTQyNTUyODE5NDQyMTE2ODIiPiLXkNeZ16DXmNeo15DXp9em15nXlCDXkdeZ158g157Xqdeq157XqdeZ150iPC9zdHJpbmc+CkBAIC0zMTMsNyArMzE4LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmV0cmlldmVfd2luZG93X2luZm8iIG1zZ2lkPSI4NTMyMjk1MTk5MTEyNTE5Mzc4Ij4i15DXl9eW16gg157XmdeT16Ig15fXnNeV158iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9IjQ5OTg4MzYzNzA0MjQxODY4NDkiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeQ15fXlteoINee15nXk9eiINec15LXkdeZINeU15fXnNeV16DXldeqINee157XoNeU15wg15TXl9ec15XXoNeV16ouINeQ16TXnNeZ16fXpteZ15XXqiDXlteT15XXoNeZ15XXqiDXotep15XXmdeV16og15zXkNeX15bXqCDXnteZ15PXoiDXlNee15nXldei15Mg15zXqdeZ157XldepINee16LXqNeb16og16TXoNeZ157XmS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4Njc1NTM1NjQ4ODA3NDI3Mzg5Ij4i16HXoNefINeQ15nXqNeV16LXmdedIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmlsdGVyX2V2ZW50cyIgbXNnaWQ9IjgwMDYyMzYzMTU4ODgzNDc2ODAiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeo16nXldedINee16HXoNefINen15zXmCDXqdee16HXoNefINeQ16og15TXlteo150g16nXnCDXm9ecINeQ15nXqNeV16LXmSDXlNee16nXqtee16kg15zXpNeg15kg16nXlNedINeg16nXnNeX15nXnS4g15DXpNec15nXp9em15nXlCDXlteT15XXoNeZ16og16LXqdeV15nXlCDXnNep15zXldeYINeRLVVJINep15wg15TXntei16jXm9eqINec15zXkCDXlNeq16LXqNeR15XXqiDXntep16rXntepLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4MDA2MjM2MzE1ODg4MzQ3NjgwIj4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqNep15XXnSDXnteh16DXnyDXp9ec15gg16nXnteh16DXnyDXkNeqINeU15bXqNedINep15wg15vXnCDXkNeZ16jXldei15kg15TXntep16rXntepINec16TXoNeZINep15TXnSDXoNep15zXl9eZ150uINeQ16TXnNeZ16fXpteZ15Qg15bXk9eV16DXmdeqINei16nXldeZ15Qg15zXqdec15XXmCDXkS1VSSDXqdecINeU157Xoteo15vXqiDXnNec15Ag15TXqtei16jXkdeV16og157Xqdeq157XqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hZ25pZnlfZGlzcGxheSIgbXNnaWQ9IjU5NzM2MjY3MzgxNzA2MTg3NzUiPiLXlNeS15PXnNeqINeq16bXldeS15QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI3MTIxMjM1Njg0NTE1MDAzNzkyIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNeS15PXmdecINeQ16og15TXqteV15vXnyDXqdecINeq16bXldeS15QuINeQ16TXnNeZ16fXpteZ15XXqiDXlteT15XXoNeZ15XXqiDXotec15XXnNeV16og15zXqdeg15XXqiDXkNeqINeq15XXm9efINeU16rXpteV15LXlCDXm9eaINep15TXnteb16nXmdeoINeZ15TXpNeV15og15zXkdec16rXmSDXqdee15nXqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NodXRkb3duIiBtc2dpZD0iNzE4NTc0NzgyNDAzODkwOTAxNiI+Iteb15nXkdeV15kg15fXnNen15kiPC9zdHJpbmc+CkBAIC0zMjYsMTAgKzMzMSwxMCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcnVuU2V0QWN0aXZpdHlXYXRjaGVyIiBtc2dpZD0iNjAwMzYwMzE2MjU3ODU3NzQwNiI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16DXlNecINee16LXp9eRINeQ15fXqCDXlNeQ15XXpNefINep15HXlSDXlNee16LXqNeb16og157XpNei15nXnNeUINek16LXmdec15XXmdeV16osINeV15zXqdec15XXmCDXkdeVLiDXkNek15zXmden16bXmdeV16og15bXk9eV16DXmdeV16og16LXnNeV15zXldeqINec16HXm9efINeQ16og15TXntei16jXm9eqINeb15XXnNeULiDXlNeo16nXkNeUINeW15Ug15DXmdeg15Qg16DXl9eV16bXlCDXnNep15nXnteV16kg16jXkteZ15wsINeQ15zXkCDXnNek15nXqteV15cg15HXnNeR15MuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RQYWNrYWdlUmVtb3ZlZCIgbXNnaWQ9IjI1NzYzMzM0MzQ4OTM1MzI0NzUiPiLXqdec15cg16nXmdeT15XXqCDXqdeU15XXodeoINee15fXkdeZ15zXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFBhY2thZ2VSZW1vdmVkIiBtc2dpZD0iNjYyMTkwMTIxNjIwNzkzMTA4OSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXk9eoINeU16rXqNeQ15Qg16LXnCDXm9eaINep15fXkdeZ15zXqiDXkNek15zXmden16bXmdeV16og15TXldeh16jXlC4g15DXpNec15nXp9em15nXldeqINeW15PXldeg15nXldeqINei15zXldec15XXqiDXnNeU16nXqtee16kg15HXm9eaINeb15PXmSDXnNeh15LXldeoINeQ16TXnNeZ16fXpteZ15XXqiDXpNei15nXnNeV16og15DXl9eo15XXqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Jyb2FkY2FzdFNtc1JlY2VpdmVkIiBtc2dpZD0iNTY4OTA5NTAwOTAzMDMzNjU5MyI+Itep15zXlyDXqdeZ15PXldeoINep15TXqten15HXnCDXkS1TTVMiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RTbXNSZWNlaXZlZCIgbXNnaWQ9IjQxNTIwMzc3MjAwMzQzNjU0OTIiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNep15PXqCDXlNeq16jXkNeUINei15wg15vXmiDXqdeU16rXp9eR15zXlCDXlNeV15PXoteqIFNNUy4g15DXpNec15nXp9em15nXldeqINeW15PXldeg15nXldeqINei15zXldec15XXqiDXnNeU16nXqtee16kg15HXm9eaINeb15PXmSDXnNeW15nXmdejINeU15XXk9ei15XXqiBTTVMg16DXm9eg16HXldeqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjMxNDUzNDc0MTMwMjg1ODIzNzEiPiLXqdec15cg16nXmdeT15XXqCDXqdeU16rXp9eR15wg15HXkNee16bXoteV16ogV0FQLVBVU0giPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RXYXBQdXNoIiBtc2dpZD0iNDc4MzQwMjUyNTAzOTQ0MjcyOSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXk9eoINeU16rXqNeQ15Qg16LXnCDXm9eaINep15TXqten15HXnNeUINeU15XXk9ei15Qg157XodeV15IgV0FQIFBVU0guINeQ16TXnNeZ16fXpteZ15XXqiDXlteT15XXoNeZ15XXqiDXotec15XXnNeV16og15zXlNep16rXntepINeR15vXmiDXm9eT15kg15zXlteZ15nXoyDXp9eR15zXlCDXqdecINeU15XXk9ei15XXqiBNTVMg15DXlSDXm9eT15kg15zXlNeX15zXmdejINeR15fXqdeQ15kg15DXqiDXlNeq15XXm9efINep15wg15PXoyDXkNeZ16DXmNeo16DXmCDXm9ec16nXlNeVINeR15LXmdeo16HXkNeV16og15bXk9eV16DXmdeV16ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RTbXNSZWNlaXZlZCIgbXNnaWQ9IjU2ODkwOTUwMDkwMzAzMzY1OTMiPiLigI/Xqdec15cg16nXmdeT15XXqCDXqdeU16rXp9eR15wg15EtU01TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI0MTUyMDM3NzIwMDM0MzY1NDkyIj4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdeT16gg15TXqteo15DXlCDXotecINeb15og16nXlNeq16fXkdec15Qg15TXldeT16LXqiBTTVMuINeQ16TXnNeZ16fXpteZ15XXqiDXlteT15XXoNeZ15XXqiDXotec15XXnNeV16og15zXlNep16rXntepINeR15vXmiDXm9eT15kg15zXlteZ15nXoyDXlNeV15PXoteV16ogU01TINeg15vXoNeh15XXqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Jyb2FkY2FzdFdhcFB1c2giIG1zZ2lkPSIzMTQ1MzQ3NDEzMDI4NTgyMzcxIj4i4oCP16nXnNeXINep15nXk9eV16gg16nXlNeq16fXkdecINeR15DXntem16LXldeqIFdBUC1QVVNIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjQ3ODM0MDI1MjUwMzk0NDI3MjkiPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNep15PXqCDXlNeq16jXkNeUINei15wg15vXmiDXqdeU16rXp9eR15zXlCDXlNeV15PXoteUINee16HXldeSIFdBUCBQVVNILiDXkNek15zXmden16bXmdeV16og15bXk9eV16DXmdeV16og16LXnNeV15zXldeqINec15TXqdeq157XqSDXkdeb15og15vXk9eZINec15bXmdeZ16Mg16fXkdec15Qg16nXnCDXlNeV15PXoteV16ogTU1TINeQ15Ug15vXk9eZINec15TXl9ec15nXoyDXkdeX16nXkNeZINeQ16og15TXqteV15vXnyDXqdecINeT16Mg15DXmdeg15jXqNeg15gg15vXnNep15TXlSDXkdeS15nXqNeh15DXldeqINeW15PXldeg15nXldeqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0UHJvY2Vzc0xpbWl0IiBtc2dpZD0iMjQ1MTg3MzY2NDM2MzY2MjY2NiI+IteU15LXkdecINeQ16og157Xodek16gg15TXqteU15zXmdeb15nXnSDXlNek15XXotec15nXnSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFByb2Nlc3NMaW1pdCIgbXNnaWQ9IjczMTgwNjEzMTQwNDA4Nzk1NDIiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNep15zXldeYINei15wg15TXnteh16TXqCDXlNee16jXkdeZINep15wg16rXlNec15nXm9eZ150g16nXmdek16LXnNeVLiDXlNeo16nXkNeUINeW15Ug15zXoteV15zXnSDXkNeZ16DXlCDXoNeX15XXpteUINec15DXpNec15nXp9em15nXldeqINeo15LXmdec15nXnS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldEFsd2F5c0ZpbmlzaCIgbXNnaWQ9IjU1MDk1ODUwNzc5ODc5Njk2NSI+IteQ15nXnNeV16Ug16HXkteZ16jXlCDXqdecINeQ16TXnNeZ16fXpteZ15XXqiDXkdeo16fXoiI8L3N0cmluZz4KQEAgLTM1Myw3ICszNTgsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9IjI4MDUxMDMyNDExNTM5MDcxNzQiPiLXqdeg15Qg15DXqiDXnteU15nXqNeV16og15TXlNeg16TXqdeUINeU15LXnNeV15HXnNeZ16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9Ijc2OTAwNjM0Mjg5MjQzNDM1NzEiPiLXlNeo16nXkNeUINeW15Ug157XkNek16nXqNeqINec15DXpNec15nXp9em15nXlCDXnNep16DXldeqINeQ16og157XlNeZ16jXldeqINeU15TXoNek16nXlCDXlNeb15zXnNeZ16ogKNeU16DXpNep15XXqiDXnteU15nXqNeV16og15DXlSDXkNeZ15jXmdeV16og15nXldeq16gpINeR15vXnCDXoteqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQXBwVG9rZW5zIiBtc2dpZD0iMTI4NjUwNTcxNzA1MDEyMTM3MCI+Iteg15nXlNeV15wg15DXodeZ157Xldeg15kg15DXpNec15nXp9em15nXldeqIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQXBwVG9rZW5zIiBtc2dpZD0iODA0MzQzMTcxMzAxNDM5NTY3MSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15nXpteV16gg15XXnNeg15TXnCDXkNeh15nXnteV16DXmdedINee16nXnNeU150sINeq15XXmiDXoten15nXpNeqINeh15nXk9eV16gg15QtWiDXlNeo15LXmdecINep15zXlNedLiDXlNeo16nXkNeUINeW15Ug15zXoteV15zXnSDXkNeZ16DXlCDXoNeX15XXpteUINec15DXpNec15nXp9em15nXldeqINeo15LXmdec15nXnS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBcHBUb2tlbnMiIG1zZ2lkPSI4MDQzNDMxNzEzMDE0Mzk1NjcxIj4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXmdem15XXqCDXldec16DXlNecINeQ16HXmdee15XXoNeZ150g157Xqdec15TXnSwg16rXldeaINei16fXmdek16og16HXmdeT15XXqCDXlC1aINeU16jXkteZ15wg16nXnNeU150uINeU16jXqdeQ15Qg15bXlSDXnNei15XXnNedINeQ15nXoNeUINeg15fXldem15Qg15zXkNek15zXmden16bXmdeV16og16jXkteZ15zXmdedLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZnJlZXplU2NyZWVuIiBtc2dpZD0iNDcwODE4MTE4NDQ0MTg4MDE3NSI+IteU16fXpNeQ16og157XodeaIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZnJlZXplU2NyZWVuIiBtc2dpZD0iODU1ODkyMzc4OTIyMjY3MDA2NCI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15TXp9ek15nXkCDXkdeQ15XXpNefINeW157XoNeZINeQ16og15TXnteh15og15zXntei15HXqCDXnNee16HXmiDXntec15AuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbmplY3RFdmVudHMiIG1zZ2lkPSIxMzc4NzQ2NTg0MDIzNTg2NjAwIj4i15zXl9elINei15wg157Xp9ep15nXnSDXldep15zXldeYINeR15zXl9em16DXmdedIjwvc3RyaW5nPgpAQCAtMzY5LDE2ICszNzQsMTYgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQcmludFNlcnZpY2UiIG1zZ2lkPSI3OTYwMDY3NjIzMjA5MTExMTM1Ij4i15TXlNeo16nXkNeUINeU15bXlSDXnteQ16TXqdeo16og15zXkdei15zXmdedINec15HXpteiINeQ15nXkteV15Mg15zXntee16nXpyDXlNeo157XlCDXlNei15zXmdeV16DXlCDXqdecINep15nXqNeV16og15TXk9ek16HXlC4g15zXoteV15zXnSDXnNeQINeQ157Xldeo15Qg15zXlNeZ15XXqiDXoNeX15XXpteUINei15HXldeoINeQ16TXnNeZ16fXpteZ15XXqiDXqNeS15nXnNeV16ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kUHJpbnRTcG9vbGVyU2VydmljZSIgbXNnaWQ9IjY4MDc3NjI3ODM3NDQxMjU5NTQiPiLXkNeZ15LXldeTINec16nXmdeo15XXqiDXlNeT16TXodeUIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFByaW50U3Bvb2xlclNlcnZpY2UiIG1zZ2lkPSIzNjgwNTUyMjg1OTMzMzE4MzcyIj4i157XkNek16nXqNeqINec15HXotec15nXnSDXnNeR16bXoiDXkNeZ15LXldeTINec157Xntep16cg15HXqNee15Qg15TXotec15nXldeg15Qg16nXnCDXqdeZ16jXldeqINeU15PXpNeh15QuINec16LXldec150g15zXkCDXkNee15XXqNeUINec15TXmdeV16og16DXl9eV16bXlCDXoteR15XXqCDXkNek15zXmden16bXmdeV16og16jXkteZ15zXldeqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSIyNzUyNzMxMzAwNDE5NDEwNzI0Ij4i15DXmdeS15XXkyDXnNep15nXqNeV16ogTkZDIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSI2MTIwNjQ3NjI5MTc0MDY2ODYyIj4i157XkNek16nXqNeqINec15HXotec15nXnSDXnNeQ15LXkyDXkNeqINeU15DXpNec15nXp9em15nXldeqINeU157Xl9en15XXqiDXm9eo15jXmdeh15nXldeqIE5GQy4g15zXoteV15zXnSDXnNeQINeQ157Xldeo15Qg15zXlNeZ15XXqiDXoNeX15XXpteUINei15HXldeoINeQ16TXnNeZ16fXpteZ15XXqiDXqNeS15nXnNeV16ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kTmZjU2VydmljZSIgbXNnaWQ9IjI3NTI3MzEzMDA0MTk0MTA3MjQiPiLigI/XkNeZ15LXldeTINec16nXmdeo15XXqiBORkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kTmZjU2VydmljZSIgbXNnaWQ9IjYxMjA2NDc2MjkxNzQwNjY4NjIiPiLigI/XnteQ16TXqdeo16og15zXkdei15zXmdedINec15DXkteTINeQ16og15TXkNek15zXmden16bXmdeV16og15TXnteX16fXldeqINeb16jXmNeZ16HXmdeV16ogTkZDLiDXnNei15XXnNedINec15Ag15DXnteV16jXlCDXnNeU15nXldeqINeg15fXldem15Qg16LXkdeV16gg15DXpNec15nXp9em15nXldeqINeo15LXmdec15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRUZXh0U2VydmljZSIgbXNnaWQ9IjczNTgzNzg0MDE5MTUyODc5MzgiPiLXlNeb16TXpNeUINec16nXmdeo15XXqiDXmNen16HXmCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRUZXh0U2VydmljZSIgbXNnaWQ9IjgxNTE5Njg5MTA5NzM5OTg2NzAiPiLXnteQ16TXqdeoINec157Xqdeq157XqSDXnNeZ16bXldeoINeQ15nXkteV15Mg15zXntee16nXpyDXlNeo157XlCDXlNei15zXmdeV16DXlCDXqdecINep15nXqNeV16og15jXp9eh15ggKNec157XqdecLCBTcGVsbENoZWNrZXJTZXJ2aWNlKS4g15TXqNep15DXlCDXlteVINec16LXldec150g15DXmdeg15Qg16DXl9eV16bXlCDXnNeQ16TXnNeZ16fXpteZ15XXqiDXqNeS15nXnNeZ150uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kVnBuU2VydmljZSIgbXNnaWQ9IjQ3MDg1OTYwMjExNjE0NzMyNTUiPiLXkNeS15Mg15zXqdeZ16jXldeqIFZQTiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRWcG5TZXJ2aWNlIiBtc2dpZD0iMjA2Nzg0NTU2NDU4MTY5MzkwNSI+Itee15DXpNep16gg15zXntep16rXntepINec15HXpteiINeQ15nXkteV15Mg15zXntee16nXpyDXkdeo157XlCDXotec15nXldeg15Qg16nXnCDXqdeZ16jXldeqIFZQTi4g15TXqNep15DXlCDXlteVINec16LXldec150g15DXmdeg15Qg16DXl9eV16bXlCDXnNeQ16TXnNeZ16fXpteZ15XXqiDXqNeS15nXnNeZ150uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iODE1MTk2ODkxMDk3Mzk5ODY3MCI+IuKAj9ee15DXpNep16gg15zXntep16rXntepINec15nXpteV16gg15DXmdeS15XXkyDXnNee157XqdenINeU16jXnteUINeU16LXnNeZ15XXoNeUINep15wg16nXmdeo15XXqiDXmNen16HXmCAo15zXntep15wsIFNwZWxsQ2hlY2tlclNlcnZpY2UpLiDXlNeo16nXkNeUINeW15Ug15zXoteV15zXnSDXkNeZ16DXlCDXoNeX15XXpteUINec15DXpNec15nXp9em15nXldeqINeo15LXmdec15nXnS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRWcG5TZXJ2aWNlIiBtc2dpZD0iNDcwODU5NjAyMTE2MTQ3MzI1NSI+IuKAj9eQ15LXkyDXnNep15nXqNeV16ogVlBOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSIyMDY3ODQ1NTY0NTgxNjkzOTA1Ij4i4oCP157XkNek16nXqCDXnNee16nXqtee16kg15zXkdem16Ig15DXmdeS15XXkyDXnNee157XqdenINeR16jXnteUINei15zXmdeV16DXlCDXqdecINep15nXqNeV16ogVlBOLiDXlNeo16nXkNeUINeW15Ug15zXoteV15zXnSDXkNeZ16DXlCDXoNeX15XXpteUINec15DXpNec15nXp9em15nXldeqINeo15LXmdec15nXnS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRXYWxscGFwZXIiIG1zZ2lkPSI4NzE2NDAwMjc5OTM3ODU2NDYyIj4i16fXqdeV16gg15zXmNek15giPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kV2FsbHBhcGVyIiBtc2dpZD0iNzEwODQyODY5MjU5NTQ5MTY2OCI+Itee15DXpNep16gg15zXntep16rXntepINec15HXpteiINeQ15nXkteV15Mg15zXntee16nXpyDXlNeo157XlCDXlNei15zXmdeV16DXlCDXqdecINeY16TXmC4g15TXqNep15DXlCDXlteVINec16LXldec150g15DXmdeg15Qg16DXl9eV16bXlCDXnNeQ16TXnNeZ16fXpteZ15XXqiDXqNeS15nXnNeZ150uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kUmVtb3RlVmlld3MiIG1zZ2lkPSI1Njk3OTg3NzU5ODk3MzY3MDk5Ij4i15TXm9ek16TXlCDXnNep15nXqNeV16ogV2lkZ2V0Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFJlbW90ZVZpZXdzIiBtc2dpZD0iNDcxNzk4NzgxMDEzNzY5MjU3MiI+Itee15DXpNep16gg15zXntep16rXntepINec15HXpteiINeQ15nXkteV15Mg15zXntee16nXpyDXlNeo157XlCDXlNei15zXmdeV16DXlCDXqdecINep15nXqNeV16ogV2lkZ2V0LiDXlNeo16nXkNeUINeW15Ug15zXoteV15zXnSDXkNeZ16DXlCDXoNeX15XXpteUINec15DXpNec15nXp9em15nXldeqINeo15LXmdec15nXnS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjU2OTc5ODc3NTk4OTczNjcwOTkiPiLigI/XlNeb16TXpNeUINec16nXmdeo15XXqiBXaWRnZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUmVtb3RlVmlld3MiIG1zZ2lkPSI0NzE3OTg3ODEwMTM3NjkyNTcyIj4i4oCP157XkNek16nXqCDXnNee16nXqtee16kg15zXkdem16Ig15DXmdeS15XXkyDXnNee157XqdenINeU16jXnteUINeU16LXnNeZ15XXoNeUINep15wg16nXmdeo15XXqiBXaWRnZXQuINeU16jXqdeQ15Qg15bXlSDXnNei15XXnNedINeQ15nXoNeUINeg15fXldem15Qg15zXkNek15zXmden16bXmdeV16og16jXkteZ15zXmdedLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZERldmljZUFkbWluIiBtc2dpZD0iODcwNDk4NjE2MzcxMTQ1NTAxMCI+Iten15nXmdedINeQ15nXoNeY16jXkNen16bXmdeUINei150g157XoNeU15wg15TXnteb16nXmdeoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZERldmljZUFkbWluIiBtc2dpZD0iNTY5NzE1NDE5NTQzOTA3OTMwIj4i157XkNek16nXqCDXnNee16nXqtee16kg15zXqdec15XXlyDXm9eV15XXoNeV16og15zXnteg15TXnCDXlNeq16fXoNeZ150uINeU16jXqdeQ15Qg15bXlSDXnNei15XXnNedINeQ15nXoNeUINeg15fXldem15Qg15zXkNek15zXmden16bXmdeV16og16jXkteZ15zXmdedLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNDI0ODgyODkwMDA0NTgwODcyMiI+IteU15XXodek15Qg15DXlSDXlNeh16jXlCDXqdecINee16DXlNec15kg157Xm9ep15nXqCI8L3N0cmluZz4KQEAgLTM4OSwxMyArMzk0LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRQb2ludGVyU3BlZWQiIG1zZ2lkPSI2ODY2NTYzMjM0Mjc0MTA0MjMzIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdeg15XXqiDXkNeqINeU157XlNeZ16jXldeqINep15wg157XpteR15nXoiDXlNei15vXkdeoINeQ15Ug15zXldeXINeU157XkteiINeR15vXnCDXoteqLiDXkNek15zXmden16bXmdeV16og16jXkteZ15zXldeqINec15Ag15DXnteV16jXmdedINec16LXldec150g15zXlNeW15PXp9enINec15TXqNep15DXlCDXlteVLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0S2V5Ym9hcmRMYXlvdXQiIG1zZ2lkPSI0Nzc4NzMxNzAzNjAwOTA5MzQwIj4i16nXoNeUINeQ16og16TXqNeZ16HXqiDXlNee16fXnNeT16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9Ijg0ODAwMTY3NzExMzQxNzU4NzkiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNep16DXldeqINeQ16og16TXqNeZ16HXqiDXlNee16fXnNeT16ouINeU16jXqdeQ15Qg15bXlSDXnNei15XXnNedINeQ15nXoNeUINeQ157Xldeo15Qg15zXlNeZ15XXqiDXoNeX15XXpteUINei15HXldeoINeQ16TXnNeZ16fXpteZ15XXqiDXqNeS15nXnNeV16ouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zaWduYWxQZXJzaXN0ZW50UHJvY2Vzc2VzIiBtc2dpZD0iNDUzOTAwMjk5MTk0NzM3NjY1OSI+Itep15zXmdeX16og15DXldeq15XXqiBMaW51eCDXnNeQ16TXnNeZ16fXpteZ15XXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2lnbmFsUGVyc2lzdGVudFByb2Nlc3NlcyIgbXNnaWQ9IjQ1MzkwMDI5OTE5NDczNzY2NTkiPiLigI/Xqdec15nXl9eqINeQ15XXqteV16ogTGludXgg15zXkNek15zXmden16bXmdeV16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zaWduYWxQZXJzaXN0ZW50UHJvY2Vzc2VzIiBtc2dpZD0iNDg5Njk5MjA3OTE4MjY0OTE0MSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15HXp9epINep15TXkNeV16og16nXoNen15zXmCDXmdeZ16nXnNeXINec15vXnCDXlNeq15TXnNeZ15vXmdedINeU157Xqtee16nXm9eZ150uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJzaXN0ZW50QWN0aXZpdHkiIG1zZ2lkPSI4ODQxMTEzNjI3OTU1NTYzOTM4Ij4i15TXkteT16jXqiDXlNeQ16TXnNeZ16fXpteZ15Qg15zXpNei15XXnCDXqtee15nXkyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcnNpc3RlbnRBY3Rpdml0eSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODUyNTE4OTI3MjMyOTA4NjEzNyI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15TXpNeV15og15fXnNen15nXnSDXntee16DXlSDXnNen15HXldei15nXnSDXkdeW15nXm9eo15XXny4g16TXoteV15zXlCDXlteVINei16nXldeZ15Qg15zXlNeS15HXmdecINeQ16og15TXlteZ15vXqNeV158g15TXltee15nXnyDXnNeQ16TXnNeZ16fXpteZ15XXqiDXkNeX16jXmdedINeV15zXlNeQ15gg15DXqiDXpNei15XXnNeqINeU15jXkNeR15zXmC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0Mzg0NzYwMDQ3NTA4Mjc4MjcyIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNek15XXmiDXl9ec16fXmdedINee157XoNeVINec16fXkdeV16LXmdedINeR15bXmdeb16jXldefLiDXpNei15XXnNeUINeW15Ug16LXqdeV15nXlCDXnNeU15LXkdeZ15wg15DXqiDXlNeW15nXm9eo15XXnyDXlNeW157XmdefINec15DXpNec15nXp9em15nXldeqINeQ15fXqNeZ150g15XXnNeU15DXmCDXkNeqINek16LXldec16og15TXmNec16TXldefLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSIxODQzODUxMjk1Mzc3MDU5MzgiPiLXnteX15nXp9eqINeQ16TXnNeZ16fXpteZ15XXqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RlbGV0ZVBhY2thZ2VzIiBtc2dpZD0iNzQxMTQ4MDI3NTE2NzIwNTA4MSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec157Xl9eV16cg15fXkdeZ15zXldeqIEFuZHJvaWQuINeQ16TXnNeZ16fXpteZ15XXqiDXlteT15XXoNeZ15XXqiDXotec15XXnNeV16og15zXlNep16rXntepINeR15vXmiDXm9eT15kg15zXnteX15XXpyDXkNek15zXmden16bXmdeV16og15fXqdeV15HXldeqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RlbGV0ZVBhY2thZ2VzIiBtc2dpZD0iNzQxMTQ4MDI3NTE2NzIwNTA4MSI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec157Xl9eV16cg15fXkdeZ15zXldeqIEFuZHJvaWQuINeQ16TXnNeZ16fXpteZ15XXqiDXlteT15XXoNeZ15XXqiDXotec15XXnNeV16og15zXlNep16rXntepINeR15vXmiDXm9eT15kg15zXnteX15XXpyDXkNek15zXmden16bXmdeV16og15fXqdeV15HXldeqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2xlYXJBcHBVc2VyRGF0YSIgbXNnaWQ9IjI3NDEwOTE5MTg0NTg0Mjc1NiI+Itee15fXmden16og16DXqteV16DXmdedINep15wg15DXpNec15nXp9em15nXldeqINeQ15fXqNeV16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcFVzZXJEYXRhIiBtc2dpZD0iNDYyNTMyMzY4NDEyNTQ1OTQ4OCI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16DXp9eV16og15DXqiDXoNeq15XXoNeZINeU157Xqdeq157XqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RlbGV0ZUNhY2hlRmlsZXMiIG1zZ2lkPSIzMTI4NjY1NTcxODM3NDA4Njc1Ij4i157Xl9eZ16fXqiDXp9eR16bXmdedINep157Xldeo15nXnSDXqdecINeQ16TXnNeZ16fXpteZ15XXqiDXkNeX16jXldeqIjwvc3RyaW5nPgpAQCAtNDAzLDcgKzQwOCw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFBhY2thZ2VTaXplIiBtc2dpZD0iNzQ3MjkyMTc2ODM1Nzk4MTk4NiI+Itee15PXmdeT16og16DXpNeXINeU15DXl9eh15XXnyDXqdecINeQ16TXnNeZ16fXpteZ15XXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFBhY2thZ2VTaXplIiBtc2dpZD0iMzkyMTA2ODE1NDQyMDczODI5NiI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15DXl9eW16gg15DXqiDXlNen15XXkywg15TXoNeq15XXoNeZ150sINeV15LXldeT15zXmSDXlNen15HXpteZ150g15TXqdee15XXqNeZ150g16nXnNeVIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnN0YWxsUGFja2FnZXMiIG1zZ2lkPSIyMTk5MTI4NDgyODIwMzA2OTI0Ij4i15TXqten16DXlCDXmdep15nXqNeUINep15wg15DXpNec15nXp9em15nXldeqIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iNTYyODUzMDk3MjU0ODA3MTI4NCI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15TXqten15nXnyDXl9eR15nXnNeV16ogQW5kcm9pZCDXl9eT16nXldeqINeQ15Ug157XoteV15PXm9eg15XXqi4g15DXpNec15nXp9em15nXldeqINeW15PXldeg15nXldeqINei15zXldec15XXqiDXnNeU16nXqtee16kg15HXm9eaINeb15PXmSDXnNeU15XXodeZ16Mg15DXpNec15nXp9em15nXldeqINeX15PXqdeV16og15HXotec15kg15TXqNep15DXldeqINeW15Qg15vXk9eZINec15TXldeh15nXoyDXkNek15zXmden16bXmdeV16og15fXk9ep15XXqiDXotedINeU16jXqdeQ15XXqiDXqNeR15XXqi3XoteV16bXnteUINeQ16fXqNeQ15nXldeqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luc3RhbGxQYWNrYWdlcyIgbXNnaWQ9IjU2Mjg1MzA5NzI1NDgwNzEyODQiPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeU16rXp9eZ158g15fXkdeZ15zXldeqIEFuZHJvaWQg15fXk9ep15XXqiDXkNeVINee16LXldeT15vXoNeV16ouINeQ16TXnNeZ16fXpteZ15XXqiDXlteT15XXoNeZ15XXqiDXotec15XXnNeV16og15zXlNep16rXntepINeR15vXmiDXm9eT15kg15zXlNeV16HXmdejINeQ16TXnNeZ16fXpteZ15XXqiDXl9eT16nXldeqINeR16LXnNeZINeU16jXqdeQ15XXqiDXlteUINeb15PXmSDXnNeU15XXodeZ16Mg15DXpNec15nXp9em15nXldeqINeX15PXqdeV16og16LXnSDXlNeo16nXkNeV16og16jXkdeV16ot16LXldem157XlCDXkNen16jXkNeZ15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NsZWFyQXBwQ2FjaGUiIG1zZ2lkPSI3NDg3Mjc5MzkxNzIzNTI2ODE1Ij4i157Xl9eZ16fXqiDXm9ecINeU16DXqteV16DXmdedINeR16fXkdem15nXnSDXqdee15XXqNeZ150g16nXnCDXkNek15zXmden16bXmdeV16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4OTc0NjQwODcxOTQ1NDM0NTY1Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdeX16jXqCDXqdeY15cg15DXl9eh15XXnyDXkdeY15DXkdec15gg16LXnCDXmdeT15kg157Xl9eZ16fXqiDXp9eR16bXmdedINeR16HXpNeo15nXldeqINeU16fXkdem15nXnSDXlNep157Xldeo15nXnSDXqdecINeQ16TXnNeZ16fXpteZ15XXqiDXkNeX16jXldeqLiDXlNeT15HXqCDXotep15XXmSDXnNeS16jXldedINec15TXpNei15zXlCDXqdecINeQ16TXnNeZ16fXpteZ15XXqiDXkNeX16jXldeqINec15TXmdeV16og15DXmdeY15nXqiDXmdeV16rXqCDXnteb15nXldeV158g16nXotec15nXlNedINec15DXl9eW16gg157Xl9eT16kg15DXqiDXlNeg16rXldeg15nXnS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjQ1OTQ0MTAyMTk1NjQzNjc3OSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16TXoNeV16og16nXmNeXINeQ15fXodeV158g15HXmNec16TXldefINei15wg15nXk9eZINee15fXmden16og16fXkdem15nXnSDXkdeh16TXqNeZ15XXqiDXlNen15HXpteZ150g15TXqdee15XXqNeZ150g16nXnCDXkNek15zXmden16bXmdeV16og15DXl9eo15XXqi4g15TXk9eR16gg16LXqdeV15kg15zXkteo15XXnSDXnNeU16TXotec15Qg16nXnCDXkNek15zXmden16bXmdeV16og15DXl9eo15XXqiDXnNeU15nXldeqINeQ15nXmNeZ16og15nXldeq16gg157Xm9eZ15XXldefINep16LXnNeZ15TXnSDXnNeQ15fXlteoINee15fXk9epINeQ16og15TXoNeq15XXoNeZ150uIjwvc3RyaW5nPgpAQCAtNDE1LDkgKzQyMCw5IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI3MTU4MDU1NTU4MjM4ODE4MTgiPiLXqdeZ157XldepINeR15vXnCDXntek16LXoNeXINee15PXmdeUINep15TXldeQINec15TXpNei15zXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI4MjgzOTEyNDg4NDMzMTg5MDEwIj4i15TXqNep15DXlCDXlteVINee15DXpNep16jXqiDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNep16rXntepINeR15vXnCDXntek16LXoNeXINee15PXmdeUINee15XXqten158g15vXk9eZINec15HXpteiINek16LXoNeV15cg15zXlNep157XoteULiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQ2FDZXJ0aWZpY2F0ZXMiIG1zZ2lkPSIxNjc4MzkxODk2Nzg2ODgyMDE0Ij4i16DXmdeU15XXnCDXpNeo15jXmSDXm9eg15nXodeUINee15TXmdee16DXmdedIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQ2FDZXJ0aWZpY2F0ZXMiIG1zZ2lkPSI0MDE1NjQ0MDQ3MTk2OTM3MDE0Ij4i157XkNek16nXqNeqINec15DXpNec15nXp9em15nXlCDXnNeU16rXp9eZ158g15XXnNeU16HXmdeoINeQ15nXqdeV16jXmSBDQSDXm9ek16jXmNeZINeb16DXmdeh15Qg157XlNeZ157XoNeZ150uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kaWFnbm9zdGljIiBtc2dpZD0iODA3Njc0Mzk1MzkwODAwMDM0MiI+Iten16jXkC/Xm9eq15XXkSDXkdee16nXkNeR15nXnSDXkdeR16LXnNeV16ogZGlhZyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RpYWdub3N0aWMiIG1zZ2lkPSI2NjA4Mjk1NjkyMDAyNDUyMjgzIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eo15XXkCDXldec15vXqteV15Eg15HXm9ecINee16nXkNeRINep15HXkdei15zXldeqINen15HXldem16og15QtZGlhZzsg15zXk9eV15LXnteULCDXp9eR16bXmdedINeRLeKAji9kZXYuINek16LXldec15Qg15bXlSDXotep15XXmdeUINec15TXqdek15nXoiDXotecINeU15nXpteZ15HXldeqINeV15TXkNeR15jXl9eUINep15wg15TXntei16jXm9eqLiDXkNek16nXqNeV16og15bXlSDXpteo15nXm9eUINec16nXntepINeo16cg15DXqiDXlNeZ16bXqNefINeQ15Ug15TXntek16LXmdecLCDXnNem15XXqNeaINeQ15HXl9eV16DXmdedINeh16TXpteZ16TXmdeZ150g15zXl9eV157XqNeULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUNhQ2VydGlmaWNhdGVzIiBtc2dpZD0iNDAxNTY0NDA0NzE5NjkzNzAxNCI+IuKAj9ee15DXpNep16jXqiDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNeq16fXmdefINeV15zXlNeh15nXqCDXkNeZ16nXldeo15kgQ0Eg15vXpNeo15jXmSDXm9eg15nXodeUINee15TXmdee16DXmdedLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGlhZ25vc3RpYyIgbXNnaWQ9IjgwNzY3NDM5NTM5MDgwMDAzNDIiPiLigI/Xp9eo15Av15vXqteV15Eg15HXntep15DXkdeZ150g15HXkdei15zXldeqIGRpYWciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kaWFnbm9zdGljIiBtc2dpZD0iNjYwODI5NTY5MjAwMjQ1MjI4MyI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16fXqNeV15Ag15XXnNeb16rXldeRINeR15vXnCDXntep15DXkSDXqdeR15HXotec15XXqiDXp9eR15XXpteqINeULWRpYWc7INec15PXldeS157XlCwg16fXkdem15nXnSDXkS3igI4vZGV2LiDXpNei15XXnNeUINeW15Ug16LXqdeV15nXlCDXnNeU16nXpNeZ16Ig16LXnCDXlNeZ16bXmdeR15XXqiDXldeU15DXkdeY15fXlCDXqdecINeU157Xoteo15vXqi4g15DXpNep16jXldeqINeW15Ug16bXqNeZ15vXlCDXnNep157XqSDXqNenINeQ16og15TXmdem16jXnyDXkNeVINeU157XpNei15nXnCwg15zXpteV16jXmiDXkNeR15fXldeg15nXnSDXodek16bXmdek15nXmdedINec15fXldee16jXlC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZUNvbXBvbmVudFN0YXRlIiBtc2dpZD0iNjMzNTU3Njc3NTcxMTA5NTkzMSI+IteU16TXotec15Qg15DXlSDXlNep15HXqteUINep15wg16jXm9eZ15HXmSDXkNek15zXmden16bXmdeV16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODg4NzQzNTc0MDk4MjIzNzI5NCI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXoNeV16og15DXqiDXntem15Eg15TXlNek16LXnNeUINep15wg16jXm9eZ15Eg15HXkNek15zXmden16bXmdeUINeQ15fXqNeqLiDXkNek15zXmden16bXmdeV16og15bXk9eV16DXmdeV16og16LXnNeV15zXldeqINec15TXqdeq157XqSDXkdeb15og15vXk9eZINec15TXqdeR15nXqiDXmdeb15XXnNeV16og15fXqdeV15HXldeqINep15wg15TXmNeQ15HXnNeYLiDXmdepINec16DXlNeV15Ig15HXlNeo16nXkNeUINeW15Ug15HXlteU15nXqNeV16osINee15vXmdeV15XXnyDXqdeU15nXkCDXmdeb15XXnNeUINec15TXkdeZ15Ag16jXm9eZ15HXmSDXkNek15zXmden16bXmdeV16og15zXntem15Eg15zXkCDXqdee15nXqSwg15zXkCDXoten15HXmSDXkNeVINec15Ag15nXpteZ15EuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODI3MjMyNDg0NDE2NTA1NjE1Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdeg15XXqiDXkNeqINee16bXkSDXlNeU16TXotec15Qg16nXnCDXqNeb15nXkSDXkdeQ16TXnNeZ16fXpteZ15Qg15DXl9eo16ouINeQ16TXnNeZ16fXpteZ15XXqiDXlteT15XXoNeZ15XXqiDXotec15XXnNeV16og15zXlNep16rXntepINeR15vXmiDXm9eT15kg15zXlNep15HXmdeqINeZ15vXldec15XXqiDXl9ep15XXkdeV16og16nXnCDXlNeY15zXpNeV158uINeZ16kg15zXoNeU15XXkiDXkdeU16jXqdeQ15Qg15bXlSDXkdeW15TXmdeo15XXqiwg157Xm9eZ15XXldefINep15TXmdeQINeZ15vXldec15Qg15zXlNeR15nXkCDXqNeb15nXkdeZINeQ16TXnNeZ16fXpteZ15XXqiDXnNee16bXkSDXnNeQINep157XmdepLCDXnNeQINei16fXkdeZINeQ15Ug15zXkCDXmdem15nXkS4iPC9zdHJpbmc+CkBAIC00MjksOCArNDM0LDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU2V0dGluZ3MiIG1zZ2lkPSI3Nzc1NzIzNDQxNTU4OTA3MTgxIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdeg15XXqiDXkNeqINeg16rXldeg15kg15TXkteT16jXldeqINeU157Xoteo15vXqi4g15DXpNec15nXp9em15nXldeqINeW15PXldeg15nXldeqINei15zXldec15XXqiDXnNep15HXqSDXkNeqINeq16bXldeo16og15TXntei16jXm9eqINep15zXmi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSIyMDQ2NzYyNTE4NzY3MTgyODgiPiLXqdeg15Qg15DXqiDXlNeS15PXqNeV16og15TXntei16jXm9eqINeU157XkNeV15HXmNeX16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNlY3VyZVNldHRpbmdzIiBtc2dpZD0iODE1OTUzNTYxMzAyMDEzNzM5MSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXoNeV16og15DXqiDXoNeq15XXoNeZINeU15TXkteT16jXldeqINeU157XkNeV15HXmNeX15nXnSDXqdecINeU157Xoteo15vXqi4g15zXkCDXnteZ15XXoteTINec16nXmdee15XXqSDXotecINeZ15PXmSDXkNek15zXmden16bXmdeV16og16jXkteZ15zXldeqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIyMTQ5NDI2NjY0MjI2MTUyMTg1Ij4i16nXoNeUINeQ16og157XpNeqINeU16nXmdeo15XXqteZ150g16nXnCBHb29nbGUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUdzZXJ2aWNlcyIgbXNnaWQ9IjEyODczMDk0Mzc2MzgzODAyMjkiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNep16DXldeqINeQ16og157XpNeqINep15nXqNeV16rXmSBHb29nbGUuINec15Ag157XmdeV16LXkyDXnNep15nXnteV16kg16LXnCDXmdeT15kg15DXpNec15nXp9em15nXldeqINeo15LXmdec15XXqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlR3NlcnZpY2VzIiBtc2dpZD0iMjE0OTQyNjY2NDIyNjE1MjE4NSI+IuKAj9ep16DXlCDXkNeqINee16TXqiDXlNep15nXqNeV16rXmdedINep15wgR29vZ2xlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIxMjg3MzA5NDM3NjM4MzgwMjI5Ij4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdeg15XXqiDXkNeqINee16TXqiDXqdeZ16jXldeq15kgR29vZ2xlLiDXnNeQINee15nXldei15Mg15zXqdeZ157XldepINei15wg15nXk9eZINeQ16TXnNeZ16fXpteZ15XXqiDXqNeS15nXnNeV16ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlQm9vdENvbXBsZXRlZCIgbXNnaWQ9IjUzMTI5NjU1NjU5ODc4MDAwMjUiPiLXlNek16LXnNeUINeR16LXqiDXkNeq15fXldecIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjczOTAzMDQ2NjQxMTY4ODA3MDQiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeU16TXoteZ15wg15DXqiDXotem157XlSDXnteZ15Mg16LXnSDXodeZ15XXnSDXqteU15zXmdeaINeU15DXqteX15XXnCDXqdecINeU157Xoteo15vXqi4g157XqdeV150g15vXmiDXlNek16LXnNeqINeU15jXkNeR15zXmCDXotep15XXmdeUINec15TXqteQ16jXmiDXldeU15DXpNec15nXp9em15nXlCDXotec15XXnNeUINec15TXkNeYINeQ16og15TXpNei15nXnNeV16og15TXm9ec15zXmdeqINep15wg15TXmNeQ15HXnNeYLCDXkdep15wg16TXoteZ15zXldeq15Qg15TXqtee15nXk9eZ16ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MTM5NTA1ODkxMDI2MTc1MDQiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeU16TXoteZ15wg15DXqiDXotem157XlSDXnteZ15Mg16LXnSDXlNep15zXnteqINeq15TXnNeZ15og15TXkNeq15fXldecINep15wg15TXntei16jXm9eqLiDXntep15XXnSDXm9eaINeU16TXotec16og15TXmNec16TXldefINei16nXldeZ15Qg15zXlNeq15DXqNeaINeV15TXkNek15zXmden16bXmdeUINei15zXldec15Qg15zXlNeQ15gg15DXqiDXlNek16LXmdec15XXqiDXlNeb15zXnNeZ16og16nXnCDXlNeY15zXpNeV158sINeR16nXnCDXpNei15nXnNeV16rXlCDXlNeq157XmdeT15nXqi4iPC9zdHJpbmc+CkBAIC00NjQsMjMgKzQ2OSwyNSBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY3OTAzNTUyMDExMzY2ODUyOCI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15TXldeh15nXoywg15zXlNeh15nXqCDXldec16nXoNeV16og15DXmdeo15XXoteZ150g16nXkNeq15Qg15nXm9eV15wg15zXqdeg15XXqiDXkdeY15DXkdec15gsINeb15XXnNecINeQ15zXlCDXqdecINeX15HXqNeZ150g15DXlSDXotee15nXqteZ150g15zXoteR15XXk9eULiDXlNeT15HXqCDXotep15XXmSDXnNeU16rXmdeoINec15DXpNec15nXp9em15nXlCDXnNep15zXldeXINeU15XXk9ei15XXqiDXlNeg16jXkNeV16og15vXkNeZ15zXlSDXqdeg16nXnNeX15Ug157Xkdei15zXmSDXnNeV15cg16nXoNeUINeQ15Ug15zXqdeg15XXqiDXkNeZ16jXldei15nXnSDXnNec15Ag15nXk9eZ16LXqiDXlNeR16LXnNeZ150uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIzMjQ0Njk0OTYzMjcyNDkzNzYiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeU15XXodeZ16MsINec15TXodeZ16gg15XXnNep16DXldeqINeQ15nXqNeV16LXmdedINep15DXqteUINeZ15vXldecINec16nXoNeV16og15HXmNec16TXldefLCDXm9eV15zXnCDXkNec15Qg16nXnCDXl9eR16jXmdedINeQ15Ug16LXnteZ16rXmdedINec16LXkdeV15PXlC4g15TXk9eR16gg16LXqdeV15kg15zXlNeq15nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdec15XXlyDXlNeV15PXoteV16og15TXoNeo15DXldeqINeb15DXmdec15Ug16nXoNep15zXl9eVINee15HXotec15kg15zXldeXINep16DXlCDXkNeVINec16nXoNeV16og15DXmdeo15XXoteZ150g15zXnNeQINeZ15PXmdei16og15TXkdei15zXmdedLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTW9ja0xvY2F0aW9uIiBtc2dpZD0iODY4ODMzNDk3NDAzNjgyMzMzMCI+Item15XXqCDXnten15XXqNeV16og157Xmden15XXnSDXnteT15XXnteZ150g15zXpteV16jXmiDXkdeT15nXp9eUIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTW9ja0xvY2F0aW9uIiBtc2dpZD0iNTgwODcxMTAzOTQ4MjA1MTgyNCI+Item15XXqCDXnten15XXqNeV16og157Xmden15XXnSDXnteT15XXnteZ150g15zXkdeT15nXp9eULCDXkNeVINeU16rXp9efINeh16TXpyDXnteZ16fXldedINeX15PXqS4g16TXoteV15zXlCDXlteVINee15DXpNep16jXqiDXnNeQ16TXnNeZ16fXpteZ15Qg15zXoten15XXoyDXkNeqINeU157Xmden15XXnSDXlS/XkNeVINeU16HXmNeY15XXoSDXlNee15XXl9eW16jXmdedINei15wg15nXk9eZINee16fXldeo15XXqiDXnteZ16fXldedINeQ15fXqNeZ150g15vXnteVIEdQUyDXkNeVINeh16TXp9eZINee15nXp9eV150uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTW9ja0xvY2F0aW9uIiBtc2dpZD0iNTgwODcxMTAzOTQ4MjA1MTgyNCI+IuKAj9em15XXqCDXnten15XXqNeV16og157Xmden15XXnSDXnteT15XXnteZ150g15zXkdeT15nXp9eULCDXkNeVINeU16rXp9efINeh16TXpyDXnteZ16fXldedINeX15PXqS4g16TXoteV15zXlCDXlteVINee15DXpNep16jXqiDXnNeQ16TXnNeZ16fXpteZ15Qg15zXoten15XXoyDXkNeqINeU157Xmden15XXnSDXlS/XkNeVINeU16HXmNeY15XXoSDXlNee15XXl9eW16jXmdedINei15wg15nXk9eZINee16fXldeo15XXqiDXnteZ16fXldedINeQ15fXqNeZ150g15vXnteVIEdQUyDXkNeVINeh16TXp9eZINee15nXp9eV150uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NMb2NhdGlvbkV4dHJhQ29tbWFuZHMiIG1zZ2lkPSIyODM2MzA4MDc2NzIwNTUzODM3Ij4i15LXmdep15Qg15zXpNen15XXk9eV16og16HXpNenINee15nXp9eV150g16DXldeh16TXldeqIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iNTk0NTE2NjY0MjMzNTgwMDc2MyI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15LXqdeqINec16TXp9eV15PXldeqINeg15XXodek15XXqiDXqdecINeh16TXpyDXqdeZ16jXldeqINeU157Xmden15XXnS4g15DXmdep15XXqCDXlteUINei16nXldeZINec15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXkdepINeQ16og16TXoteV15zXqiDXlC1HUFMg15DXlSDXnten15XXqNeV16og157Xmden15XXnSDXkNeX16jXmdedLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0xvY2F0aW9uRXh0cmFDb21tYW5kcyIgbXNnaWQ9IjU5NDUxNjY2NDIzMzU4MDA3NjMiPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeS16nXqiDXnNek16fXldeT15XXqiDXoNeV16HXpNeV16og16nXnCDXodek16cg16nXmdeo15XXqiDXlNee15nXp9eV150uINeQ15nXqdeV16gg15bXlCDXotep15XXmSDXnNeQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNep15HXqSDXkNeqINek16LXldec16og15QtR1BTINeQ15Ug157Xp9eV16jXldeqINee15nXp9eV150g15DXl9eo15nXnS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iNjU3ODEwMTE5OTgyNTE5Mzg3MyI+IteU16jXqdeQ15Qg15zXlNeq16fXmdefINeh16TXpyDXnteZ16fXldedIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI5MDY2MTQ2MTIwNDcwNTkxNTA5Ij4i16bXldeoINee16fXldeo15XXqiDXnteZ16fXldedINee15PXldee15nXnSDXnNeR15PXmden15QsINeQ15Ug15TXqten158g16HXpNenINee15nXp9eV150g15fXk9epLiDXpNei15XXnNeUINeW15Ug157XkNek16nXqNeqINec15DXpNec15nXp9em15nXlCDXnNei16fXldejINeQ16og15TXnteZ16fXldedINeVL9eQ15Ug15TXodeY15jXldehINeU157XldeX15bXqNeZ150g16LXnCDXmdeT15kg157Xp9eV16jXldeqINee15nXp9eV150g15DXl9eo15nXnSDXm9ee15UgR1BTINeQ15Ug16HXpNen15kg157Xmden15XXnS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0ZpbmVMb2NhdGlvbiIgbXNnaWQ9IjExOTE4OTgwNjE5NjUyNzMzNzIiPiLXnteZ16fXldedINee15PXldeZ16cgKNee15HXldeh16EgR1BTINeV16jXqdeqKSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0ZpbmVMb2NhdGlvbiIgbXNnaWQ9IjUyOTUwNDc1NjM1NjQ5ODEyNTAiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNen15HXnCDXkNeqINeU157Xmden15XXnSDXlNee15PXldeZ16cg16nXnNeaINeR15DXntem16LXldeqINee16LXqNeb16og15TXnteZ16fXldedINeU15LXnNeV15HXnNeZ16ogKEdQUykg15DXlSDXnten15XXqNeV16og157Xmden15XXnSDXkdeo16nXqiDXm9eS15XXnyDXkNeg15jXoNeV16og16HXnNeV15zXqNeZ15XXqiDXlS1XaS1GaS4g16nXmdeo15XXqteZINee15nXp9eV150g15DXnNeUINeX15nXmdeR15nXnSDXnNeU15nXldeqINee15XXpNei15zXmdedINeV16DXkteZ16nXmdedINec157Xm9ep15nXqCDXqdec15og15vXk9eZINep15TXkNek15zXmden16bXmdeUINeq16nXqtee16kg15HXlNedLiDXmdeZ16rXm9efINep15DXpNec15nXp9em15nXldeqINeZ16LXqdeVINeR15vXmiDXqdeZ157XldepINeb15PXmSDXnNen15HXldeiINeU15nXm9efINeQ16rXlCDXoNee16bXkCDXldec15LXqNeV150g15zXpteo15nXm9eqINeh15XXnNec15Qg157XldeS15HXqNeqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iOTA2NjE0NjEyMDQ3MDU5MTUwOSI+IuKAj9em15XXqCDXnten15XXqNeV16og157Xmden15XXnSDXnteT15XXnteZ150g15zXkdeT15nXp9eULCDXkNeVINeU16rXp9efINeh16TXpyDXnteZ16fXldedINeX15PXqS4g16TXoteV15zXlCDXlteVINee15DXpNep16jXqiDXnNeQ16TXnNeZ16fXpteZ15Qg15zXoten15XXoyDXkNeqINeU157Xmden15XXnSDXlS/XkNeVINeU16HXmNeY15XXoSDXlNee15XXl9eW16jXmdedINei15wg15nXk9eZINee16fXldeo15XXqiDXnteZ16fXldedINeQ15fXqNeZ150g15vXnteVIEdQUyDXkNeVINeh16TXp9eZINee15nXp9eV150uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSIxMTkxODk4MDYxOTY1MjczMzcyIj4i4oCP157Xmden15XXnSDXnteT15XXmdenICjXnteR15XXodehIEdQUyDXldeo16nXqikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSI1Mjk1MDQ3NTYzNTY0OTgxMjUwIj4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eR15wg15DXqiDXlNee15nXp9eV150g15TXnteT15XXmdenINep15zXmiDXkdeQ157Xptei15XXqiDXntei16jXm9eqINeU157Xmden15XXnSDXlNeS15zXldeR15zXmdeqIChHUFMpINeQ15Ug157Xp9eV16jXldeqINee15nXp9eV150g15HXqNep16og15vXkteV158g15DXoNeY16DXldeqINeh15zXldec16jXmdeV16og15UtV2ktRmkuINep15nXqNeV16rXmSDXnteZ16fXldedINeQ15zXlCDXl9eZ15nXkdeZ150g15zXlNeZ15XXqiDXnteV16TXotec15nXnSDXldeg15LXmdep15nXnSDXnNee15vXqdeZ16gg16nXnNeaINeb15PXmSDXqdeU15DXpNec15nXp9em15nXlCDXqtep16rXntepINeR15TXnS4g15nXmdeq15vXnyDXqdeQ16TXnNeZ16fXpteZ15XXqiDXmdei16nXlSDXkdeb15og16nXmdee15XXqSDXm9eT15kg15zXp9eR15XXoiDXlNeZ15vXnyDXkNeq15Qg16DXntem15Ag15XXnNeS16jXldedINec16bXqNeZ15vXqiDXodeV15zXnNeUINee15XXkteR16jXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0NvYXJzZUxvY2F0aW9uIiBtc2dpZD0iNDg4Nzg5NTM2MjM1NDIzOTYyOCI+Itee15nXp9eV150g157XqdeV16LXqCAo157XkdeV16HXoSDXqNep16opIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSIyNTM4MjAwMTg0MzczMzAyMjk1Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eR15wg15DXqiDXnteZ16fXldee15og15TXntep15XXoteoLiDXnteZ16fXldedINeW15Qg16DXkteW16gg16LXnC3XpNeZINep15nXqNeV16rXmSDXnteZ16fXldedINeU16LXldep15nXnSDXqdeZ157XldepINeR157Xp9eV16jXldeqINee15nXp9eV150g15HXqNep16osINeb15LXldefINeQ16DXmNeg15XXqiDXodec15XXnNeo15nXldeqINeVLVdpLUZpLiDXqdeZ16jXldeq15kg157Xmden15XXnSDXkNec15Qg15fXmdeZ15HXmdedINec15TXmdeV16og157Xldek16LXnNeZ150g15XXoNeS15nXqdeZ150g15zXnteb16nXmdeoINep15zXmiDXm9eT15kg16nXlNeQ16TXnNeZ16fXpteZ15Qg16rXqdeq157XqSDXkdeU150uINeZ15nXqteb158g16nXkNek15zXmden16bXmdeV16og15nXotep15Ug15HXm9eaINep15nXnteV16kg15vXk9eZINec16fXkdeV16Ig15DXqiDXnteZ16fXldee15og15TXntep15XXoteoLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIyMzYzOTY5NjQxNzkyMzg4OTQ3Ij4i15LXmdep15Qg15wtU3VyZmFjZUZsaW5nZXIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeU16nXqtee16kg15HXqteb15XXoNeV16og15HXqNee15Qg15TXoNee15XXm9eUINep15wgU3VyZmFjZUZsaW5nZXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSIyNTM4MjAwMTg0MzczMzAyMjk1Ij4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eR15wg15DXqiDXnteZ16fXldee15og15TXntep15XXoteoLiDXnteZ16fXldedINeW15Qg16DXkteW16gg16LXnC3XpNeZINep15nXqNeV16rXmSDXnteZ16fXldedINeU16LXldep15nXnSDXqdeZ157XldepINeR157Xp9eV16jXldeqINee15nXp9eV150g15HXqNep16osINeb15LXldefINeQ16DXmNeg15XXqiDXodec15XXnNeo15nXldeqINeVLVdpLUZpLiDXqdeZ16jXldeq15kg157Xmden15XXnSDXkNec15Qg15fXmdeZ15HXmdedINec15TXmdeV16og157Xldek16LXnNeZ150g15XXoNeS15nXqdeZ150g15zXnteb16nXmdeoINep15zXmiDXm9eT15kg16nXlNeQ16TXnNeZ16fXpteZ15Qg16rXqdeq157XqSDXkdeU150uINeZ15nXqteb158g16nXkNek15zXmden16bXmdeV16og15nXotep15Ug15HXm9eaINep15nXnteV16kg15vXk9eZINec16fXkdeV16Ig15DXqiDXnteZ16fXldee15og15TXntep15XXoteoLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIyMzYzOTY5NjQxNzkyMzg4OTQ3Ij4i4oCP15LXmdep15Qg15wtU3VyZmFjZUZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeU16nXqtee16kg15HXqteb15XXoNeV16og15HXqNee15Qg15TXoNee15XXm9eUINep15wgU3VyZmFjZUZsaW5nZXIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4i15DXl9eh15XXnyDXltee16DXmSDXqdecINee16HXkteo16og16fXqNeZ15DXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNen16jXldeQINeQ16og15TXqteV15vXnyDXqdecINee15DXkteoINeU16DXqteV16DXmdedINeU15bXnteg15kg16nXnCDXlNee16HXkteo15XXqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+IteU15LXk9eoINeq16bXldeS15XXqiBXaS1GaSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15TXkteT15nXqCDXldec15TXqteX15HXqCDXnNeq16bXldeS15XXqiBXaS1GaS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+Itep15zXldeYINeR16rXpteV15LXldeqIFdpLUZpIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iNDU0MzkxMjI5MjY4MTgyNjk4NiI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXnNeV15gg15HXqteb15XXoNeV16og15HXqNee15Qg16DXnteV15vXlCDXqdecINeq16bXldeS15XXqiBXaS1GaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiLigI/XkteZ16nXlCDXkNecIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiLigI/XnteQ16TXqdeo16og15zXkNek15zXmden16bXmdeUINec15TXqdeq157XqSDXkdeq15vXldeg15XXqiDXkdeo157XlCDXoNee15XXm9eUINep15wgSW5wdXRGbGluZ2VyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4i4oCP15TXkteT16gg16rXpteV15LXldeqIFdpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNeS15PXmdeoINeV15zXlNeq15fXkdeoINec16rXpteV15LXldeqIFdpLUZpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4i4oCP16nXnNeV15gg15HXqtem15XXkteV16ogV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSI0NTQzOTEyMjkyNjgxODI2OTg2Ij4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdec15XXmCDXkdeq15vXldeg15XXqiDXkdeo157XlCDXoNee15XXm9eUINep15wg16rXpteV15LXldeqIFdpLUZpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZUF1ZGlvT3V0cHV0IiBtc2dpZD0iNjg1NzEzNDQ5ODQwMjM0NjcwOCI+Iten15zXmdeY16og16TXnNeYINeQ15XXk9eZ15UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlQXVkaW9PdXRwdXQiIG1zZ2lkPSI2MjEwNTk3NzU0MjEyMjA4ODUzIj4i157XkNek16nXqNeqINec15DXpNec15nXp9em15nXlCDXnNen15zXldeYINeV15zXlNek16DXldeqINee15fXk9epINek15zXmCDXkNeV15PXmdeVLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZUF1ZGlvSG90d29yZCIgbXNnaWQ9IjE4OTA1NTM5MzU2NTAzNDk4MDgiPiLXlteZ15TXldeZINep15wg157Xmdec16og15TXpNei15zXlCI8L3N0cmluZz4KQEAgLTUwNywxMSArNTE0LDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4OTg1NjA4NzI0NjI2MzgyNDIiPiLXkNec16Ug15DXqteX15XXnCDXnteX15PXqSDXqdecINeU15jXnNek15XXnyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYm9vdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODE3MjA1NjE4MDA2MzcwMDc0MSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15DXnNelINeQ16og15TXmNeQ15HXnNeYINec15HXpteiINeQ16rXl9eV15wuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVib290IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTMyNjAwODEyNDI4OTk4OTk2OSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15DXnNelINeQ16og15TXmNec16TXldefINec15HXpteiINeQ16rXl9eV15wuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjI5MjczNjE1Mzc5NDI1OTE4NDEiPiLXkteZ16nXlCDXnNee16LXqNeb16og15TXp9eR16bXmdedINep15wg15DXl9eh15XXnyBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDAyMzA1MDQ5ODkwOTUzODEwIj4i15LXmdep15Qg15zXntei16jXm9eqINeU16fXkdem15nXnSDXqdecINeb16jXmNeZ16EgU0QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjkyNzM2MTUzNzk0MjU5MTg0MSI+IuKAj9eS15nXqdeUINec157Xoteo15vXqiDXlNen15HXpteZ150g16nXnCDXkNeX16HXldefIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfdW5tb3VudF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ0MDIzMDUwNDk4OTA5NTM4MTAiPiLigI/XkteZ16nXlCDXnNee16LXqNeb16og15TXp9eR16bXmdedINep15wg15vXqNeY15nXoSBTRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIG1zZ2lkPSIxODI5MjkwNzAxNjU4OTkyMzQ3Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXmNei15XXnyDXldec15HXmNecINeY16LXmdeg15Qg16nXnCDXntei16jXm9eV16og16fXkdem15nXnSDXkdeQ157Xptei15kg15DXl9eh15XXnyDXoNep15zXpNeZ150uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjIyNzgxOTU4MjYyNDkwNDk3MiI+Itee15fXmden16og15DXl9eh15XXnyBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI2MjU4MjY5ODYzOTI3NDA1NiI+Itee15fXmden16og15vXqNeY15nXoSBTRCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyMjc4MTk1ODI2MjQ5MDQ5NzIiPiLigI/XnteX15nXp9eqINeQ15fXodeV158gVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNjI1ODI2OTg2MzkyNzQwNTYiPiLigI/XnteX15nXp9eqINeb16jXmNeZ16EgU0QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIG1zZ2lkPSI4Nzg0MjY4MjQ2Nzc5MTk4NjI3Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXpNeo157XmCDXkNee16bXoteZINeQ15fXodeV158g16DXqdec16TXmdedLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19hY2Nlc3MiIG1zZ2lkPSIzNDExMzM4NjMyMDAyMTkzODQ2Ij4i16fXkdecINee15nXk9eiINei15wg15DXl9eh15XXnyDXpNeg15nXnteZIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19hY2Nlc3MiIG1zZ2lkPSIzMDk0NTYzODQ0NTkzODc4NTQ4Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eR15wg157XmdeT16Ig16LXnCDXkNee16bXoteZINeU15DXl9eh15XXnyDXlNek16DXmdee15kuIjwvc3RyaW5nPgpAQCAtNTI3LDI1ICs1MzQsMjUgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3ZpYnJhdGUiIG1zZ2lkPSI2Mjg0OTg5MjQ1OTAyMzAwOTQ1Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdec15XXmCDXkdeo15jXmC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZsYXNobGlnaHQiIG1zZ2lkPSIyMTU1OTIwODEwMTIxOTg0MjE1Ij4i16nXnNeZ15jXlCDXkdek16DXoSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZsYXNobGlnaHQiIG1zZ2lkPSI2NTIyMjg0Nzk0NTY4MzY4MzEwIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdec15XXmCDXkdek16DXoS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzYiIgbXNnaWQ9IjExMTM0NTM0MzA2NDU0MDI3MjMiPiLXoNeU15wg15TXoteT16TXldeqINeV15DXmdep15XXqNeZ150g16LXkdeV16gg157Xm9ep15nXqNeZIFVTQiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZVVzYiIgbXNnaWQ9Ijc3NzYxNTU0MzAyMTgyMzk4MzMiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeg15TXnCDXlNei15PXpNeV16og15XXlNeo16nXkNeV16og16LXkdeV16gg157Xm9ep15nXqNeZIFVTQi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc010cCIgbXNnaWQ9IjQ5NTM0Njg2NzY3OTU5MTcwNDIiPiLXmdeZ16nXnSDXpNeo15XXmNeV16fXldecIE1UUCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc010cCIgbXNnaWQ9IjY1MzI5NjEyMDA0ODY3OTE1NzAiPiLXnteQ16TXqdeoINeS15nXqdeUINec157XoNeU15wg15TXqten158gTVRQINep15wg15TXnNeZ15HXlCDXm9eT15kg15zXmdeZ16nXnSDXkNeqINek16jXldeY15XXp9eV15wg15QtVVNCINep15wg15QtTVRQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlVXNiIiBtc2dpZD0iMTExMzQ1MzQzMDY0NTQwMjcyMyI+IuKAj9eg15TXnCDXlNei15PXpNeV16og15XXkNeZ16nXldeo15nXnSDXoteR15XXqCDXnteb16nXmdeo15kgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNiIiBtc2dpZD0iNzc3NjE1NTQzMDIxODIzOTgzMyI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16DXlNecINeU16LXk9ek15XXqiDXldeU16jXqdeQ15XXqiDXoteR15XXqCDXnteb16nXmdeo15kgVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTXRwIiBtc2dpZD0iNDk1MzQ2ODY3Njc5NTkxNzA0MiI+IuKAj9eZ15nXqdedINek16jXldeY15XXp9eV15wgTVRQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTXRwIiBtc2dpZD0iNjUzMjk2MTIwMDQ4Njc5MTU3MCI+IuKAj9ee15DXpNep16gg15LXmdep15Qg15zXnteg15TXnCDXlNeq16fXnyBNVFAg16nXnCDXlNec15nXkdeUINeb15PXmSDXnNeZ15nXqdedINeQ16og16TXqNeV15jXlden15XXnCDXlC1VU0Ig16nXnCDXlC1NVFAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9oYXJkd2FyZV90ZXN0IiBtc2dpZD0iNDE0ODI5MDg2MDQwMDY1OTE0NiI+IteR15PXldenINeX15XXnteo15QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19oYXJkd2FyZV90ZXN0IiBtc2dpZD0iNjU5Nzk2NDE5MTIwODAxNjYwNSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXnNeV15gg15HXpNeo15nXmNeZINem15nXldeTINeU15nXp9ek15kg16nXldeg15nXnSDXnNem15XXqNeaINeR15PXmden16og15TXl9eV157XqNeULiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FsbFBob25lIiBtc2dpZD0iMzkyNTgzNjM0NzY4MTg0Nzk1NCI+IteU16rXp9ep16gg15nXqdeZ16jXldeqINec157Xodek16jXmSDXmNec16TXldefIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FsbFBob25lIiBtc2dpZD0iMzc0MDc5NzU3NjExMzc2MDgyNyI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15TXqten16nXqCDXnNee16HXpNeo15kg15jXnNek15XXnyDXnNec15Ag15TXqtei16jXkdeV16rXmi4g16TXoteV15zXlCDXlteVINei16nXldeZ15Qg15zXkteo15XXnSDXnNep15nXl9eV16og15DXlSDXnNeX15nXldeR15nXnSDXnNeQINem16TXldeZ15nXnS4g16nXmdedINec15Eg16nXlNeT15HXqCDXnNeQINee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15TXqten16nXqCDXnNee16HXpNeo15kg15fXmdeo15XXnS4g15DXpNec15nXp9em15nXldeqINeW15PXldeg15nXldeqINei16nXldeZ15XXqiDXnNeS16jXldedINec16LXnNeV15nXldeqINei15wg15nXk9eZINeR15nXpteV16Ig16nXmdeX15XXqiDXnNec15Ag15TXqtei16jXkdeV16rXmi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbGxQcml2aWxlZ2VkIiBtc2dpZD0iNDE5ODM0OTIxMTEwODQ5Nzg3OSI+IteU16rXp9ep16gg15nXqdeZ16jXldeqINec15vXnCDXnteh16TXqCDXmNec16TXldefIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FsbFByaXZpbGVnZWQiIG1zZ2lkPSIxNjg5MDI0OTAxNTA5OTk2ODEwIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNeq16fXqdeoINec15vXnCDXnteh16TXqCDXmNec16TXldefINep15TXldeQLCDXm9eV15zXnCDXnteh16TXqNeZINeX15nXqNeV150sINec15zXkCDXlNeq16LXqNeR15XXqteaLiDXkNek15zXmden16bXmdeV16og15bXk9eV16DXmdeV16og16LXnNeV15zXldeqINec15HXpteiINep15nXl9eV16og157XmdeV16rXqNeV16og15XXnNeQINeX15XXp9eZ15XXqiDXnNep15nXqNeV16rXmSDXl9eZ16jXldedLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQ4NDI1NzY5OTQxNDQ2MDQ4MjEiPiLXlNek16LXnCDXmdep15nXqNeV16og15TXqten16DXqiDXmNeQ15HXnNeYINee16HXldeSIENETUEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTYwNDg0ODA5NTMxNTQyMTQyNSI+IteU16TXotecINeZ16nXmdeo15XXqiDXlNeS15PXqNeUINep15wg15jXnNek15XXnyBDRE1BIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIG1zZ2lkPSIxOTk0MTkzNTM4ODAyMzE0MTg2Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNek16LXmdecINeU16fXpteQ16ogQ0RNQS4g15DXpNec15nXp9em15nXldeqINeW15PXldeg15nXldeqINei15zXldec15XXqiDXnNeU16TXoteZ15wg15TXp9em15DXqiBDRE1BINec15zXkCDXpteV16jXmi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0ODQyNTc2OTk0MTQ0NjA0ODIxIj4i4oCP15TXpNei15wg15nXqdeZ16jXldeqINeU16rXp9eg16og15jXkNeR15zXmCDXnteh15XXkiBDRE1BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU2MDQ4NDgwOTUzMTU0MjE0MjUiPiLigI/XlNek16LXnCDXmdep15nXqNeV16og15TXkteT16jXlCDXqdecINeY15zXpNeV158gQ0RNQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBtc2dpZD0iMTk5NDE5MzUzODgwMjMxNDE4NiI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15TXpNei15nXnCDXlNen16bXkNeqIENETUEuINeQ16TXnNeZ16fXpteZ15XXqiDXlteT15XXoNeZ15XXqiDXotec15XXnNeV16og15zXlNek16LXmdecINeU16fXpteQ16ogQ0RNQSDXnNec15Ag16bXldeo15ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9sb2NhdGlvblVwZGF0ZXMiIG1zZ2lkPSI3Nzg1NDA4MjUzMzY0MzM1NzQwIj4i16nXnNeV15gg15HXlNeq16jXkNeV16og16LXnCDXoteT15vXldefINee15nXp9eV150iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19sb2NhdGlvblVwZGF0ZXMiIG1zZ2lkPSIxMTIwNzQxNTU3ODkxNDM4ODc2Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXkNek16nXqC/XnNeU16nXkdeZ16og15TXqteo15DXldeqINec15LXkdeZINei15PXm9eV16DXmSDXnteZ16fXldedINee15TXqNeT15nXlS4g15zXkCDXnteZ15XXoteTINec16nXmdee15XXqSDXotecINeZ15PXmSDXkNek15zXmden16bXmdeV16og16jXkteZ15zXldeqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI3ODU1MjU5NDYxMjY4NzM0OTE0Ij4i15LXmdep15Qg15zXnteQ16TXmdeZ16DXmSDXm9eg15nXodeUIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI0MDI0NTI2OTY4NjMwMTk0MTI4Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eR15wg15LXmdep15Qg15zXp9eo15nXkNeUL9eb16rXmdeR15Qg15zXnteQ16TXmdeZ16DXmdedINep15TXldei15zXlSDXotecINeZ15PXmSDXqdeZ16jXldeqINeU15vXoNeZ16HXlC4g15zXkCDXnteZ15XXoteTINec16nXmdee15XXqSDXotecINeZ15PXmSDXkNek15zXmden16bXmdeV16og16jXkteZ15zXldeqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZEdhZGdldCIgbXNnaWQ9Ijc3NjkwNTMzOTAxNTg2MzQ3MSI+IteR15fXqCDXqNeb15nXkdeZIFdpZGdldCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRHYWRnZXQiIG1zZ2lkPSI4MjYxMzI2OTM4NTk5MDQ5MjkwIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXmdeZ15PXoiDXkNeqINeU157Xoteo15vXqiDXkdeQ15nXnNeVINek16jXmdeY15kgV2lkZ2V0INeZ15vXldecINec15TXqdeq157XqSDXm9ecINeQ16TXnNeZ16fXpteZ15QuINeQ16TXnNeZ16fXpteZ15Qg15HXotec16og15TXqNep15DXlCDXlteVINeZ15vXldecINec16HXpNenINec15DXpNec15nXp9em15nXldeqINeQ15fXqNeV16og15LXmdep15Qg15zXoNeq15XXoNeZ150g15DXmdep15nXmdedLiDXnNeQINee15nXldei15Mg15zXqdeZ157XldepINei15wg15nXk9eZINeQ16TXnNeZ16fXpteZ15XXqiDXqNeS15nXnNeV16ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kR2FkZ2V0IiBtc2dpZD0iNzc2OTA1MzM5MDE1ODYzNDcxIj4i4oCP15HXl9eoINeo15vXmdeR15kgV2lkZ2V0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZEdhZGdldCIgbXNnaWQ9IjgyNjEzMjY5Mzg1OTkwNDkyOTAiPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeZ15nXk9eiINeQ16og15TXntei16jXm9eqINeR15DXmdec15Ug16TXqNeZ15jXmSBXaWRnZXQg15nXm9eV15wg15zXlNep16rXntepINeb15wg15DXpNec15nXp9em15nXlC4g15DXpNec15nXp9em15nXlCDXkdei15zXqiDXlNeo16nXkNeUINeW15Ug15nXm9eV15wg15zXodek16cg15zXkNek15zXmden16bXmdeV16og15DXl9eo15XXqiDXkteZ16nXlCDXnNeg16rXldeg15nXnSDXkNeZ16nXmdeZ150uINec15Ag157XmdeV16LXkyDXnNep15nXnteV16kg16LXnCDXmdeT15kg15DXpNec15nXp9em15nXldeqINeo15LXmdec15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeVBob25lU3RhdGUiIG1zZ2lkPSI4NDIzOTIzNzc3NjU5MjkyMjI4Ij4i16nXoNeUINeQ16og157XpteRINeU15jXnNek15XXnyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeVBob25lU3RhdGUiIG1zZ2lkPSIxMDI5ODc3NTI5MDA3Njg2NzMyIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdec15XXmCDXkdeq15vXldeg15XXqiDXlNeY15zXpNeV158g16nXnCDXlNee15vXqdeZ16guINeQ16TXnNeZ16fXpteZ15Qg15HXotec16og15TXqNep15DXlCDXlteVINeZ15vXldec15Qg15zXoteR15XXqCDXkdeZ158g16jXqdeq15XXqiwg15zXlNek16LXmdecINeV15zXm9eR15XXqiDXkNeqINeU16jXk9eZ15Ug15HXmNec16TXldefINeV15zXkdem16Ig16TXoteV15zXldeqINeg15XXodek15XXqiDXk9eV157XldeqINee15HXnNeZINec15nXmdeT16Ig15DXldeq15ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkUGhvbmVTdGF0ZSIgbXNnaWQ9IjkxNzgyMjg1MjQ1MDc2MTA0ODYiPiLXp9eo15nXkNeqINeU16HXmNeY15XXoSDXldeU15bXlNeV16og16nXnCDXlNeY15zXpNeV158iPC9zdHJpbmc+CkBAIC01NzYsOCArNTgzLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0VGltZVpvbmUiIG1zZ2lkPSIyOTQ1MDc5ODAxMDEzMDc3MzQwIj4i15TXkteT16gg15DXlteV16gg15bXntefIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZVpvbmUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE2NzY5ODM3MTIzMTU4Mjc2NDUiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNep16DXldeqINeQ16og15DXlteV16gg15TXltee158g16nXnCDXlNeY15DXkdec15guIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZVpvbmUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDk5OTQzNDg4NDM2NjMzMzk4Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdeg15XXqiDXkNeqINeQ15bXldeoINeU15bXntefINep15wg15TXmNec16TXldefLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjb3VudE1hbmFnZXJTZXJ2aWNlIiBtc2dpZD0iNDgyOTI2MjM0OTY5MTM4Njk4NiI+Itek16LXnCDXkdeq15XXqCDXlC1BY2NvdW50TWFuYWdlclNlcnZpY2UiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2NvdW50TWFuYWdlclNlcnZpY2UiIG1zZ2lkPSIxOTQ4NDU1NTUyMzMzNjE1OTU0Ij4i15TXqNep15DXlCDXlteVINee15DXpNep16jXqiDXnNeQ16TXnNeZ16fXpteZ15Qg15zXkdem16Ig16nXmdeX15XXqiDXkNecIEFjY291bnRBdXRoZW50aWNhdG9ycy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjQ4MjkyNjIzNDk2OTEzODY5ODYiPiLigI/XpNei15wg15HXqteV16gg15QtQWNjb3VudE1hbmFnZXJTZXJ2aWNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjb3VudE1hbmFnZXJTZXJ2aWNlIiBtc2dpZD0iMTk0ODQ1NTU1MjMzMzYxNTk1NCI+IuKAj9eU16jXqdeQ15Qg15bXlSDXnteQ16TXqdeo16og15zXkNek15zXmden16bXmdeUINec15HXpteiINep15nXl9eV16og15DXnCBBY2NvdW50QXV0aGVudGljYXRvcnMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRBY2NvdW50cyIgbXNnaWQ9IjEwODY3OTU0Njc3NjAxMjIxMTQiPiLXl9eZ16TXldepINeX16nXkdeV16DXldeqINeR157Xm9ep15nXqCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNzQxNDk2NTM0NzY5NjYwMDI3Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eR15wg16jXqdeZ157XlCDXqdecINeX16nXkdeV16DXldeqINeU157Xldeb16jXmdedINec15jXkNeR15zXmC4g15TXk9eR16gg16LXqdeV15kg15zXm9ec15XXnCDXl9ep15HXldeg15XXqiDXqdeg15XXpteo15Ug16LXnCDXmdeT15kg15DXpNec15nXp9em15nXldeqINep15TXqten16DXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRBY2NvdW50cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0NDgzMTY4MjI0NTE4MDczODIiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNen15HXnCDXqNep15nXnteUINep15wg15fXqdeR15XXoNeV16og15TXnteV15vXqNeZ150g15zXmNec16TXldefLiDXlNeT15HXqCDXotep15XXmSDXnNeb15zXldecINeX16nXkdeV16DXldeqINep16DXldem16jXlSDXotecINeZ15PXmSDXkNek15zXmden16bXmdeV16og16nXlNeq16fXoNeqLiI8L3N0cmluZz4KQEAgLTU5MCwzNyArNTk3LDM3IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjQ5NTEwMjc5NjQzNDg5NzQ3NzMiPiLXlNem15Ig15fXmdeR15XXqNeZINeo16nXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjgzMTg5NjQ0MjQ2NzU5NjA5NzUiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeU16bXmdeSINee15nXk9eiINec15LXkdeZINeX15nXkdeV16jXmSDXqNep16osINec157XqdecLCDXkNeZ15zXlSDXqNep16rXldeqINen15nXmdee15XXqiDXldee15fXldeR16jXldeqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY3JlYXRlTmV0d29ya1NvY2tldHMiIG1zZ2lkPSI4MDE4NzU4MTM2NDA0MzIzNjU4Ij4i15LXmdep16og16jXqdeqINee15zXkNeUIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY3JlYXRlTmV0d29ya1NvY2tldHMiIG1zZ2lkPSIzNDAzMDYyMTg3Nzc5NzI0MTg1Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXmdem15XXqCBTb2NrZXRzINeV15zXlNep16rXntepINeR16TXqNeV15jXlden15XXnNeZINeo16nXqiDXnteV16rXkNee15nXnSDXkNeZ16nXmdeqLiDXlNeT16TXk9ek158g15XXkNek15zXmden16bXmdeV16ogINeQ15fXqNeV16og157Xodek16fXldeqINeQ157Xptei15nXnSDXnNep15zXmdeX16og16DXqteV16DXmdedINec15DXmdeg15jXqNeg15gsINeb15og16nXkNeZ16nXldeoINeW15Qg15DXmdeg15Ug16DXl9eV16Ug15zXqdec15nXl9eqINeg16rXldeg15nXnSDXnNeQ15nXoNeY16jXoNeYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iMzQwMzA2MjE4Nzc3OTcyNDE4NSI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15nXpteV16ggU29ja2V0cyDXldec15TXqdeq157XqSDXkdek16jXldeY15XXp9eV15zXmSDXqNep16og157Xldeq15DXnteZ150g15DXmdep15nXqi4g15TXk9ek15PXpNefINeV15DXpNec15nXp9em15nXldeqICDXkNeX16jXldeqINee16HXpNen15XXqiDXkNee16bXoteZ150g15zXqdec15nXl9eqINeg16rXldeg15nXnSDXnNeQ15nXoNeY16jXoNeYLCDXm9eaINep15DXmdep15XXqCDXlteUINeQ15nXoNeVINeg15fXldelINec16nXnNeZ15fXqiDXoNeq15XXoNeZ150g15zXkNeZ16DXmNeo16DXmC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MDU2NjAxNTk2NzU3NTE4OTYiPiLXqdeg15Qv16LXm9eRINeU15LXk9eo15XXqiDXqNep16og15XXqteg15XXoteUIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVBcG5TZXR0aW5ncyIgbXNnaWQ9IjUzMzM3OTg4ODY0MTI3MTQxOTMiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNep16DXldeqINeQ16og15TXkteT16jXldeqINeU16jXqdeqINeV15zXoteb15Eg15XXnNeR15PXldenINeQ16og15vXnCDXqteg15XXoteqINeU16jXqdeqLCDXnNeT15XXktee15QsINec16nXoNeV16og15DXqiDXlC1wcm94eSDXldeU15nXpteZ15DXlCDXqdecINeb15wg16jXqdeqIEFQTi4g15DXpNec15nXp9em15nXldeqINeW15PXldeg15nXldeqINei15zXldec15XXqiDXnNei16fXldeRINeQ15fXqCDXl9eR15nXnNeV16og16jXqdeqLCDXnNeR16bXoiDXlNek16DXmdeUINee15fXk9epINep15zXlNefINeQ15Ug15zXqdeg15XXqiDXkNeV16rXnywg15zXnNeQINeZ15PXmdei16rXmi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUFwblNldHRpbmdzIiBtc2dpZD0iNTMzMzc5ODg4NjQxMjcxNDE5MyI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXoNeV16og15DXqiDXlNeS15PXqNeV16og15TXqNep16og15XXnNei15vXkSDXldec15HXk9eV16cg15DXqiDXm9ecINeq16DXldei16og15TXqNep16osINec15PXldeS157XlCwg15zXqdeg15XXqiDXkNeqINeULXByb3h5INeV15TXmdem15nXkNeUINep15wg15vXnCDXqNep16ogQVBOLiDXkNek15zXmden16bXmdeV16og15bXk9eV16DXmdeV16og16LXnNeV15zXldeqINec16LXp9eV15Eg15DXl9eoINeX15HXmdec15XXqiDXqNep16osINec15HXpteiINeU16TXoNeZ15Qg157Xl9eT16kg16nXnNeU158g15DXlSDXnNep16DXldeqINeQ15XXqtefLCDXnNec15Ag15nXk9eZ16LXqteaLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlTmV0d29ya1N0YXRlIiBtc2dpZD0iOTU4ODg0MjkxNDU0MzI3MzA5Ij4i16nXoNeUINeQ16og16fXmdep15XXqNeZ15XXqiDXlNeo16nXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZU5ldHdvcmtTdGF0ZSIgbXNnaWQ9IjY3ODkxMjM5MTI0NzY0MTYyMTQiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNep16DXldeqINeQ16og157XpteRINeU16fXmdep15XXqNeZ15XXqiDXqdecINeU16jXqdeqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlVGV0aGVyU3RhdGUiIG1zZ2lkPSI1OTUyNTg0OTY0MzczMDE3OTYwIj4i16nXmdeg15XXmSDXqdecINen15nXqdeV16jXmdeV16og16fXqdeV16jXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVRldGhlclN0YXRlIiBtc2dpZD0iMTUyNDQ0MTM0NDQxMjMxOTc4MCI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXoNeV16og15DXqiDXntem15Eg15TXp9eZ16nXldeo15nXldeqINep15wg16jXqdeqINen16nXldeo15QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSIxNDAwNjY2MDEyNjcxNjQ4NzQxIj4i16nXoNeUINeQ16og15TXkteT16jXldeqINeU16nXmdee15XXqSDXkdeg16rXldeg15kg15TXqNen16IiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSI1MzQ3NzI5NTc4NDY4NzQ0Mzc5Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdeg15XXqiDXkNeqINeU15LXk9eo16og15TXqdeZ157XldepINeR16DXqteV16DXmSDXqNen16IuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MjAyMDEyOTQ5MjQ3MDQwMDExIj4i15TXpteSINeX15nXkdeV16jXmSBXaS1GaSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1dpZmlTdGF0ZSIgbXNnaWQ9IjUwMDI3OTgwNzczODc4MDM3MjYiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeU16bXmdeSINee15nXk9eiINei15wg16jXqdeq15XXqiBXaS1GaSwg15zXntep15wsINeU15DXnSBXaS1GaSDXnteV16TXotecLCDXm9ee15Ug15LXnSDXqdedINee15vXqdeZ16jXmSDXlC1XaS1GaSDXlNee15fXldeR16jXmdedLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2lmaVN0YXRlIiBtc2dpZD0iNjU1MDY0MTE4ODc0OTEyODAzNSI+IteU16rXl9eR16jXldeqINeV15TXqteg16rXp9eV16og154tV2ktRmkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI3MTM3OTUwMjk3Mzg2MTI3NTMzIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNeq15fXkdeoINec16DXp9eV15PXldeqINeS15nXqdeqIFdpLUZpINeV15zXlNeq16DXqtenINee15TXnywg15XXm9efINec15HXpteiINep15nXoNeV15nXmdedINeR16rXpteV16jXqiDXlNee15vXqdeZ16gg16LXkdeV16gg16jXqdeq15XXqiBXaS1GaS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgbXNnaWQ9IjEzNjgyNTM4NzE0ODMyNTQ3ODQiPiLXkNek16nXqCDXp9eR15zXqiDXqdeZ15PXldeo15nXnSDXnteo15XXkdeZ150g15EtV2ktRmkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijc5Njk3NzQwMjEyNTYzMzY1NDgiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNen15HXnCDXl9eR15nXnNeV16og16nXoNep15zXl9eVINec15vXnCDXlNee15vXqdeZ16jXmdedINeR16jXqdeqIFdpLUZpINeR15DXntem16LXldeqINeb16rXldeR15XXqiDXqdeZ15PXldeoINec16fXkdeV16bXlCwg15XXnNeQINeo16cg15HXmNeQ15HXnNeYINep15zXmi4g16bXqNeZ15vXqiDXlNeX16nXntecINeS15HXldeU15Qg15nXldeq16gg157XkNep16gg15HXntem15Eg16nXkNeZ16DXlSDXqdeZ15PXldeoINec16fXkdeV16bXlC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODUxOTQ5NzA2MDI1MzQ5OTI2Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eR15wg15fXkdeZ15zXldeqINep16DXqdec15fXlSDXnNeb15wg15TXnteb16nXmdeo15nXnSDXkdeo16nXqiBXaS1GaSDXkdeQ157Xptei15XXqiDXm9eq15XXkdeV16og16nXmdeT15XXqCDXnNen15HXldem15QsINeV15zXkCDXqNenINeR15jXnNek15XXnyDXqdec15ouINem16jXmdeb16og15TXl9ep157XnCDXkteR15XXlNeUINeZ15XXqteoINee15DXqdeoINeR157XpteRINep15DXmdeg15Ug16nXmdeT15XXqCDXnNen15HXldem15QuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGhBZG1pbiIgbXNnaWQ9IjYwMDY5NjczNzM5MzU5MjY2NTkiPiLXkteZ16nXlCDXnNeU15LXk9eo15XXqiBCbHVldG9vdGgiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhBZG1pbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjkyMTE3NzQ3MTc0ODg4MjEzNyI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15TXkteT15nXqCDXkNeqINeq16bXldeo16rXlSDXqdecINeU15jXkNeR15zXmCDXlNee16fXldee15kg157XodeV15IgQmx1ZXRvb3RoINeV15vXnyDXnNeS15zXldeqINee15vXqdeZ16jXmdedINee16jXldeX16fXmdedINeV15zXkdem16Ig15TXqteQ157XlCDXkNeZ16rXnS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhBZG1pbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MzE2ODIxNTkzMzE1NDIxMzciPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeU15LXk9eZ16gg15DXqiDXqtem15XXqNeq15Ug16nXnCDXlNeY15zXpNeV158g15TXnten15XXnteZINee16HXldeSIEJsdWV0b290aCDXldeb158g15zXktec15XXqiDXnteb16nXmdeo15nXnSDXnteo15XXl9en15nXnSDXldec15HXpteiINeU16rXkNee15Qg15DXmdeq150uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGhQcml2IiBtc2dpZD0iNDAwOTQ5NDI0NjAwOTUxMzgyOCI+IteQ16TXqdeoINeU16rXkNee16ogQmx1ZXRvb3RoINei15wg15nXk9eZINeU15DXpNec15nXp9em15nXlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2lmaVN0YXRlIiBtc2dpZD0iNTIwMjAxMjk0OTI0NzA0MDAxMSI+IuKAj9eU16bXkiDXl9eZ15HXldeo15kgV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MDAyNzk4MDc3Mzg3ODAzNzI2Ij4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNem15nXkiDXnteZ15PXoiDXotecINeo16nXqteV16ogV2ktRmksINec157XqdecLCDXlNeQ150gV2ktRmkg157Xldek16LXnCwg15vXnteVINeS150g16nXnSDXnteb16nXmdeo15kg15QtV2ktRmkg15TXnteX15XXkdeo15nXnS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVdpZmlTdGF0ZSIgbXNnaWQ9IjY1NTA2NDExODg3NDkxMjgwMzUiPiLigI/XlNeq15fXkdeo15XXqiDXldeU16rXoNeq16fXldeqINeeLVdpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaVN0YXRlIiBtc2dpZD0iNzEzNzk1MDI5NzM4NjEyNzUzMyI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15TXqteX15HXqCDXnNeg16fXldeT15XXqiDXkteZ16nXqiBXaS1GaSDXldec15TXqteg16rXpyDXnteU158sINeV15vXnyDXnNeR16bXoiDXqdeZ16DXldeZ15nXnSDXkdeq16bXldeo16og15TXnteb16nXmdeoINei15HXldeoINeo16nXqteV16ogV2ktRmkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIG1zZ2lkPSIxMzY4MjUzODcxNDgzMjU0Nzg0Ij4i4oCP15DXpNep16gg16fXkdec16og16nXmdeT15XXqNeZ150g157XqNeV15HXmdedINeRLVdpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3OTY5Nzc0MDIxMjU2MzM2NTQ4Ij4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eR15wg15fXkdeZ15zXldeqINep16DXqdec15fXlSDXnNeb15wg15TXnteb16nXmdeo15nXnSDXkdeo16nXqiBXaS1GaSDXkdeQ157Xptei15XXqiDXm9eq15XXkdeV16og16nXmdeT15XXqCDXnNen15HXldem15QsINeV15zXkCDXqNenINeR15jXkNeR15zXmCDXqdec15ouINem16jXmdeb16og15TXl9ep157XnCDXkteR15XXlNeUINeZ15XXqteoINee15DXqdeoINeR157XpteRINep15DXmdeg15Ug16nXmdeT15XXqCDXnNen15HXldem15QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjg1MTk0OTcwNjAyNTM0OTkyNiI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16fXkdecINeX15HXmdec15XXqiDXqdeg16nXnNeX15Ug15zXm9ecINeU157Xm9ep15nXqNeZ150g15HXqNep16ogV2ktRmkg15HXkNee16bXoteV16og15vXqteV15HXldeqINep15nXk9eV16gg15zXp9eR15XXpteULCDXldec15Ag16jXpyDXkdeY15zXpNeV158g16nXnNeaLiDXpteo15nXm9eqINeU15fXqdee15wg15LXkdeV15TXlCDXmdeV16rXqCDXnteQ16nXqCDXkdee16bXkSDXqdeQ15nXoNeVINep15nXk9eV16gg15zXp9eR15XXpteULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmx1ZXRvb3RoQWRtaW4iIG1zZ2lkPSI2MDA2OTY3MzczOTM1OTI2NjU5Ij4i4oCP15LXmdep15Qg15zXlNeS15PXqNeV16ogQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY5MjExNzc0NzE3NDg4ODIxMzciPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeU15LXk9eZ16gg15DXqiDXqtem15XXqNeq15Ug16nXnCDXlNeY15DXkdec15gg15TXnten15XXnteZINee16HXldeSIEJsdWV0b290aCDXldeb158g15zXktec15XXqiDXnteb16nXmdeo15nXnSDXnteo15XXl9en15nXnSDXldec15HXpteiINeU16rXkNee15Qg15DXmdeq150uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4OTMxNjgyMTU5MzMxNTQyMTM3Ij4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNeS15PXmdeoINeQ16og16rXpteV16jXqteVINep15wg15TXmNec16TXldefINeU157Xp9eV157XmSDXnteh15XXkiBCbHVldG9vdGgg15XXm9efINec15LXnNeV16og157Xm9ep15nXqNeZ150g157XqNeV15fXp9eZ150g15XXnNeR16bXoiDXlNeq15DXnteUINeQ15nXqtedLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmx1ZXRvb3RoUHJpdiIgbXNnaWQ9IjQwMDk0OTQyNDYwMDk1MTM4MjgiPiLigI/XkNek16nXqCDXlNeq15DXnteqIEJsdWV0b290aCDXotecINeZ15PXmSDXlNeQ16TXnNeZ16fXpteZ15QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhQcml2IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MDQ1NzM1MTkzNDE3NDY4ODU3Ij4i157XkNek16nXqNeqINec15DXpNec15nXp9em15nXlCDXnNeR16bXoiDXlNeq15DXnteUINei150g157Xm9ep15nXqNeZ150g157XqNeV15fXp9eZ150g15zXnNeQINeU16rXoteo15HXldeqINeU157Xqdeq157XqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhQcml2IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA0NTczNTE5MzQxNzQ2ODg1NyI+Itee15DXpNep16jXqiDXnNeQ16TXnNeZ16fXpteZ15Qg15zXkdem16Ig15TXqteQ157XlCDXotedINee15vXqdeZ16jXmdedINee16jXldeX16fXmdedINec15zXkCDXlNeq16LXqNeR15XXqiDXlNee16nXqtee16kuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NXaW1heFN0YXRlIiBtc2dpZD0iNDE5NTkwNzAxMDYxMDIwNTcwMyI+IteU16rXl9eR16jXldeqINeV15TXqteg16rXp9eV16og154tV2lNQVgiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaW1heFN0YXRlIiBtc2dpZD0iNjM2MDEwMjg3NzI2MTk3ODg4NyI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15PXoteqINeU15DXnSBXaU5NQVgg157Xldek16LXnCwg15vXnteVINeS150g15zXp9eR15wg157XmdeT16Ig15TXkNedINeo16nXqteV16ogV2lOTUFYINeb15zXqdeU158g157Xl9eV15HXqNeV16ouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaW1heFN0YXRlIiBtc2dpZD0iMjQwNTA0MjI2NzEzMTQ5NjU3OSI+Itep16DXlCDXkNeqINee16bXkSBXaU1BWCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMxNTY0NTY1MDQwODQyMDE4MDUiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeX15HXqCDXkNeqINeU15jXkNeR15zXmCDXnNeo16nXqteV16ogV2lNQVgg15XXnNeU16rXoNeq16cg157XlNefLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2OTcwMjUwNDMwMDQ5MjM3OTgiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeX15HXqCDXkNeqINeU15jXnNek15XXnyDXnNeo16nXqteV16ogV2lNQVgg15XXnNeU16rXoNeq16cg157XlNefLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmx1ZXRvb3RoIiBtc2dpZD0iNjEyNzc2OTMzNjMzOTI3NjgyOCI+IteU16rXkNee15Qg15zXnteb16nXmdeo15kgQmx1ZXRvb3RoIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzNDgwNzIyMTgxODUyNDM4NjI4Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNem15nXkiDXkNeqINeq16bXldeo16og15QtQmx1ZXRvb3RoINeR15jXkNeR15zXmCwg15XXm9efINec15nXpteV16gg15XXnNen15HXnCDXl9eZ15HXldeo15nXnSDXotedINee15vXqdeZ16jXmdedINee15XXqteQ157XmdedLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMyMDcxMDYzMjQ0NTIzMTI3MzkiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeU16bXmdeSINeQ16og16rXpteV16jXqiDXlC1CbHVldG9vdGgg15HXmNec16TXldefLCDXldeb158g15zXmdem15XXqCDXldec16fXkdecINeX15nXkdeV16jXmdedINei150g157Xm9ep15nXqNeZ150g157Xldeq15DXnteZ150uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9uZmMiIG1zZ2lkPSI0NDIzMzUxMjc0NzU3ODc2OTUzIj4i16nXnNeV15gg15EtTmVhciBGaWVsZCBDb21tdW5pY2F0aW9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NXaW1heFN0YXRlIiBtc2dpZD0iNDE5NTkwNzAxMDYxMDIwNTcwMyI+IuKAj9eU16rXl9eR16jXldeqINeV15TXqteg16rXp9eV16og154tV2lNQVgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaW1heFN0YXRlIiBtc2dpZD0iNjM2MDEwMjg3NzI2MTk3ODg4NyI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15PXoteqINeU15DXnSBXaU5NQVgg157Xldek16LXnCwg15vXnteVINeS150g15zXp9eR15wg157XmdeT16Ig15TXkNedINeo16nXqteV16ogV2lOTUFYINeb15zXqdeU158g157Xl9eV15HXqNeV16ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaW1heFN0YXRlIiBtc2dpZD0iMjQwNTA0MjI2NzEzMTQ5NjU3OSI+IuKAj9ep16DXlCDXkNeqINee16bXkSBXaU1BWCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMxNTY0NTY1MDQwODQyMDE4MDUiPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeX15HXqCDXkNeqINeU15jXkNeR15zXmCDXnNeo16nXqteV16ogV2lNQVgg15XXnNeU16rXoNeq16cg157XlNefLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2OTcwMjUwNDMwMDQ5MjM3OTgiPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeX15HXqCDXkNeqINeU15jXnNek15XXnyDXnNeo16nXqteV16ogV2lNQVgg15XXnNeU16rXoNeq16cg157XlNefLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmx1ZXRvb3RoIiBtc2dpZD0iNjEyNzc2OTMzNjMzOTI3NjgyOCI+IuKAj9eU16rXkNee15Qg15zXnteb16nXmdeo15kgQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzNDgwNzIyMTgxODUyNDM4NjI4Ij4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNem15nXkiDXkNeqINeq16bXldeo16og15QtQmx1ZXRvb3RoINeR15jXkNeR15zXmCwg15XXm9efINec15nXpteV16gg15XXnNen15HXnCDXl9eZ15HXldeo15nXnSDXotedINee15vXqdeZ16jXmdedINee15XXqteQ157XmdedLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMyMDcxMDYzMjQ0NTIzMTI3MzkiPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeU16bXmdeSINeQ16og16rXpteV16jXqiDXlC1CbHVldG9vdGgg15HXmNec16TXldefLCDXldeb158g15zXmdem15XXqCDXldec16fXkdecINeX15nXkdeV16jXmdedINei150g157Xm9ep15nXqNeZ150g157Xldeq15DXnteZ150uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9uZmMiIG1zZ2lkPSI0NDIzMzUxMjc0NzU3ODc2OTUzIj4i4oCP16nXnNeV15gg15EtTmVhciBGaWVsZCBDb21tdW5pY2F0aW9uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbmZjIiBtc2dpZD0iNzEyMDYxMTgxOTQwMTc4OTkwNyI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINeg15TXnCDXqten16nXldeo16og16LXnSDXqteS15nXnSwg15vXqNeY15nXodeZ150g15XXp9eV16jXkNeZ150g157XodeV15IgXCfXqten16nXldeo16og157XmNeV15XXlyDXp9em16hcJy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Rpc2FibGVLZXlndWFyZCIgbXNnaWQ9IjM1OTg0OTYzMDE0ODY0MzkyNTgiPiLXkdeZ15jXldecINeg16LXmdec16og15TXnteh15og16nXnNeaIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlzYWJsZUtleWd1YXJkIiBtc2dpZD0iNjAzNDIwMzA2NTA3NzEyMjk5MiI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15TXqdeR15nXqiDXkNeqINeg16LXmdec16og15TXnten16nXmdedINeV15vXnCDXkNee16bXoteZINeQ15HXmNeX15Qg157XqdeV15nXmiDXlNee15HXldeh16Eg16LXnCDXodeZ16HXnteULiDXnNeT15XXktee15QsINeU15jXnNek15XXnyDXntep15HXmdeqINeQ16og16DXoteZ15zXqiDXlNee16fXqdeZ150g15HXoteqINen15HXnNeUINep15wg16nXmdeX16og15jXnNek15XXnyDXoNeb16DXodeqLCDXldec15DXl9eoINee15vXnyDXntek16LXmdecINee15fXk9epINeQ16og16DXoteZ15zXqiDXlNee16fXqdeZ150g16LXnSDXodeZ15XXnSDXlNep15nXl9eULiI8L3N0cmluZz4KQEAgLTYzOCwxNCArNjQ1LDE0IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjY1OTYxNDYwMDMzODkwNDI0MyI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16fXqNeV15Ag15DXqiDXm9ecINeU157Xmdec15nXnSwg15TXqdee15XXqiDXldeU15HXmdeY15XXmdeZ150g16nXlNee16nXqtee16kg15DXl9eh158g15HXnteZ15zXldefINeU157Xqdeq157XqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjIxODMxMTA0MDIzMTQ0NDExMDYiPiLXlNeV16HXpNeqINee15nXnNeZ150g15zXnteZ15zXldefINee15XXkteT16gt157Xqdeq157XqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjgxODUzODU3MTYyNTUwNjUyOTEiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeb16rXldeRINee15nXnNeZ150g15fXk9ep15XXqiDXkdee15nXnNeV158g15TXntep16rXntepLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNjcyNzUwOTUxNTk0MDU0NjgiPiLXp9eo15nXkNeqINeU16rXldeb158g16nXnCDXkNeX16HXldefINeULVVTQiDXqdec15oiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg4MTU2NDYyOTM0OTc3OTQwIj4i16fXqNeZ15DXqiDXlNeq15XXm9efINep15wg15vXqNeY15nXoSDXlC1TRCDXqdec15oiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM0NDY5ODg3MTI1OTgzODYwNzkiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNen16jXldeQINeQ16og16rXldeb158g15DXl9eh15XXnyDXlC1VU0Ig16nXnNeaLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNjA3MzYyNDczNjU0OTc1NDExIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eo15XXkCDXkNeqINeq15XXm9efINeb16jXmNeZ16Eg15QtU0Qg16nXnNeaLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iODQ4NTk3OTA2MjI1NDY2Njc0OCI+Itep15nXoNeV15kg15DXlSDXnteX15nXp9eUINep15wg16rXldeb158g15DXl9eh15XXnyDXlC1VU0Ig16nXnNeaIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg4MDU2OTM2MzAwNTA0NTg3NjMiPiLXqdeZ16DXldeZINeQ15Ug157Xl9eZ16fXlCDXqdecINeq15XXm9efINeb16jXmNeZ16Eg15QtU0Qg16nXnNeaIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE3NTQwNjI5OTQ0NTcxMDg4OCI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15vXqteV15Eg15zXlNeq16fXnyDXlNeQ15fXodeV158g157XodeV15IgVVNCLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDMzNzQxNzc5MDkzNjYzMjA5MCI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15vXqteV15Eg15zXm9eo15jXmdehINeULVNELiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNjcyNzUwOTUxNTk0MDU0NjgiPiLigI/Xp9eo15nXkNeqINeU16rXldeb158g16nXnCDXkNeX16HXldefINeULVVTQiDXqdec15oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg4MTU2NDYyOTM0OTc3OTQwIj4i4oCP16fXqNeZ15DXqiDXlNeq15XXm9efINep15wg15vXqNeY15nXoSDXlC1TRCDXqdec15oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM0NDY5ODg3MTI1OTgzODYwNzkiPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNen16jXldeQINeQ16og16rXldeb158g15DXl9eh15XXnyDXlC1VU0Ig16nXnNeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNjA3MzYyNDczNjU0OTc1NDExIj4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXp9eo15XXkCDXkNeqINeq15XXm9efINeb16jXmNeZ16Eg15QtU0Qg16nXnNeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iODQ4NTk3OTA2MjI1NDY2Njc0OCI+IuKAj9ep15nXoNeV15kg15DXlSDXnteX15nXp9eUINep15wg16rXldeb158g15DXl9eh15XXnyDXlC1VU0Ig16nXnNeaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg4MDU2OTM2MzAwNTA0NTg3NjMiPiLigI/XqdeZ16DXldeZINeQ15Ug157Xl9eZ16fXlCDXqdecINeq15XXm9efINeb16jXmNeZ16Eg15QtU0Qg16nXnNeaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE3NTQwNjI5OTQ0NTcxMDg4OCI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15vXqteV15Eg15zXlNeq16fXnyDXlNeQ15fXodeV158g157XodeV15IgVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDMzNzQxNzc5MDkzNjYzMjA5MCI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15vXqteV15Eg15zXm9eo15jXmdehINeULVNELiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWVkaWFTdG9yYWdlV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODU5ODM5MTk5NzA2ODc5MDE1Ij4i16nXoNeUL9ee15fXpyDXqteV15vXnyDXqdecINeQ15fXodeV158g157Xk9eZ15Qg16TXoNeZ157XmSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21lZGlhU3RvcmFnZVdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODE4OTE2MDU5NzY5ODUyOTE4NSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXoNeV16og15DXqiDXlNeq15XXm9efINep15wg15DXntem16LXmSDXlNeQ15fXodeV158g15TXpNeg15nXnteZINec157Xk9eZ15QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VEb2NzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTc3ODMxODU5ODQ0ODg0OTgyOSI+Iteg15nXlNeV15wg16nXnCDXkNeX16HXldefINee16HXnteb15nXnSI8L3N0cmluZz4KQEAgLTY1NSw3ICs2NjIsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWNoZV9maWxlc3lzdGVtIiBtc2dpZD0iNTY1NjQ4NzI2NDgxOTY2OTgyNCI+IteS15nXqdeUINec157Xoteo15vXqiDXlNen15HXpteZ150g15HXp9eV15HXpSDXlNep157XldeoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU1Nzg5Njc2NDIyNjU1NTA5NTUiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNen16jXldeQINeV15zXm9eq15XXkSDXkdee16LXqNeb16og15TXp9eR16bXmdedINep15wg15TXp9eR16bXmdedINeU16nXnteV16jXmdedLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXNlX3NpcCIgbXNnaWQ9IjU5ODY5NTIzNjI3OTU4NzA1MDIiPiLXkdem16Iv16fXkdecINep15nXl9eV16og15DXmdeg15jXqNeg15giPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191c2Vfc2lwIiBtc2dpZD0iNDcxNzYzMjAwMDA2MjY3NDI5NCI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec15TXqdeq157XqSDXkdep15nXqNeV16ogU0lQINeb15PXmSDXnNeR16bXoi/XnNen15HXnCDXqdeZ15fXldeqINeQ15nXoNeY16jXoNeYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZV9zaXAiIG1zZ2lkPSI0NzE3NjMyMDAwMDYyNjc0Mjk0Ij4i4oCP157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNep16rXntepINeR16nXmdeo15XXqiBTSVAg15vXk9eZINec15HXpteiL9ec16fXkdecINep15nXl9eV16og15DXmdeg15jXqNeg15guIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kX2NhbGxfc2VydmljZSIgbXNnaWQ9IjY3MjQwMDk3MjY2NzEyNDY1NTEiPiLXpteV16gg15DXmdeg15jXqNeQ16fXpteZ15Qg16LXnSDXnteh15og16nXmdeX15Qg16DXm9eg16HXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRfY2FsbF9zZXJ2aWNlIiBtc2dpZD0iODczMjU0NzY2MjQ0MjU3MjQzNSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16fXkdeV16Ig157XqteZINeV15DXmdeaINeU157Xqdeq157XqSDXmdeo15DXlCDXqdeZ15fXlCDXoNeb16DXodeqINei15wg15TXnteh15ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkTmV0d29ya1VzYWdlSGlzdG9yeSIgbXNnaWQ9Ijc4NjI1OTMyODM2MTE0OTMyMzIiPiLXp9eo15nXkNeqINeg16rXldeg15kg16nXmdee15XXqSDXlNeZ16HXmNeV16jXmdeZ150g15HXqNep16oiPC9zdHJpbmc+CkBAIC02NjQsOCArNjcxLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZU5ldHdvcmtQb2xpY3kiIG1zZ2lkPSI3NTM3NTg2NzcxNTU5MzcwNjY4Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXoNeU15wg157Xk9eZ16DXmdeV16og15TXqNep16og15zXlNeS15PXmdeoINeb15zXnNeZ150g16HXpNem15nXpNeZ15nXnS3XnNeQ16TXnNeZ16fXpteZ15QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlOZXR3b3JrQWNjb3VudGluZyIgbXNnaWQ9IjUwODgyMTczMDkwODg3Mjk2NTAiPiLXqdeg15Qg16DXmdeU15XXnCDXl9ep15HXldeg15XXqiDXqdecINep15nXnteV16kg15HXqNep16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb2RpZnlOZXR3b3JrQWNjb3VudGluZyIgbXNnaWQ9IjU0NDM0MTI4NjY3NDYxOTgxMjMiPiLXlNeo16nXkNeUINeW15Ug157XkNek16nXqNeqINec15DXpNec15nXp9em15nXlCDXnNep16DXldeqINeQ16og15DXldek158g15TXl9eZ16nXldeRINep15wg16DXqteV16DXmSDXqdeZ157XldepINeR16jXqdeqINee15XXnCDXm9ecINeQ16TXnNeZ16fXpteZ15QuINec15Ag157XmdeV16LXkyDXnNep15nXnteV16kg15HXkNek15zXmden16bXmdeV16og16jXkteZ15zXldeqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSIzNjU4NTI3MjE0OTE0OTU5NzQ5Ij4i16nXmdeg15XXmSDXqdecINeh15nXnteg15kgU29ja2V0Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSI3NjU1NTY4NDMzNjk2MzU2NTc4Ij4i15TXlNeo16nXkNeUINeU15bXlSDXnteQ16TXqdeo16og15zXkNek15zXmden16bXmdeUINec16nXoNeV16og16HXmdee16DXmSBTb2NrZXQg16LXkdeV16gg16DXmdeq15XXkSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSIzNjU4NTI3MjE0OTE0OTU5NzQ5Ij4i4oCP16nXmdeg15XXmSDXqdecINeh15nXnteg15kgU29ja2V0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSI3NjU1NTY4NDMzNjk2MzU2NTc4Ij4i4oCP15TXlNeo16nXkNeUINeU15bXlSDXnteQ16TXqdeo16og15zXkNek15zXmden16bXmdeUINec16nXoNeV16og16HXmdee16DXmSBTb2NrZXQg16LXkdeV16gg16DXmdeq15XXkSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTm90aWZpY2F0aW9ucyIgbXNnaWQ9Ijc2NzM0MTY0ODc4NzM0MzIyNjgiPiLXkteZ16nXlCDXnNeU16rXqNeQ15XXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05vdGlmaWNhdGlvbnMiIG1zZ2lkPSI0NTg0NTc3NDI2ODM0MzEzODciPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNeQ15fXlteoLCDXnNeR15PXldenINeV15zXnteX15XXpyDXlNeq16jXkNeV16osINeb15XXnNecINeb15DXnNeUINep16TXldeo16HXnteVINei15wg15nXk9eZINeQ16TXnNeZ16fXpteZ15XXqiDXkNeX16jXldeqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZE5vdGlmaWNhdGlvbkxpc3RlbmVyU2VydmljZSIgbXNnaWQ9IjcwNTc3NjQ3NDIyMTE2NTY2NTQiPiLXkNeZ15LXldeTINec16nXmdeo15XXqiDXqdecINee15DXlteZ158g15zXlNeq16jXkNeV16oiPC9zdHJpbmc+CkBAIC02ODYsMTYgKzY5MywxNiBAQAogICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dpcGVEYXRhIiBtc2dpZD0iMzkxMDU0NTQ0Njc1ODYzOTcxMyI+Itee15fXpyDXkNeqINeb15wg15TXoNeq15XXoNeZ150iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dpcGVEYXRhIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzA2MTg0MDk2MDY3NzU2ODc2Ij4i157Xl9enINeQ16og16DXqteV16DXmSDXlNeY15DXkdec15gg15zXnNeQINeQ15bXlNeo15Qg16LXnCDXmdeT15kg15HXmdem15XXoiDXkNeZ16TXldehINeg16rXldeg15kg15nXpteo158uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193aXBlRGF0YSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUwOTY4OTU2MDQ1NzQxODgzOTEiPiLXnteX16cg15DXqiDXoNeq15XXoNeZINeU15jXnNek15XXnyDXnNec15Ag15DXlteU16jXlCDXotecINeZ15PXmSDXkdeZ16bXldeiINeQ15nXpNeV16Eg16DXqteV16DXmSDXmdem16jXny4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfc2V0R2xvYmFsUHJveHkiIG1zZ2lkPSIyNzg0ODI4MjkzNzQ3NzkxNDQ2Ij4i15TXkteT16gg15DXqiDXqdeo16og15QtUHJveHkg15TXm9ec15zXmSDXqdecINeU157Xm9ep15nXqCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfc2V0R2xvYmFsUHJveHkiIG1zZ2lkPSI2Mzg3NDk3NDY2NjYwMTU0OTMxIj4i15TXkteT16gg16nXmdee15XXqSDXkdep16jXqiDXlC1Qcm94eSDXlNeS15zXldeR15zXmSDXqdecINeU157Xm9ep15nXqCDXm9eQ16nXqCDXlNee15PXmdeg15nXldeqINee15XXpNei15zXqi4g16jXpyDXnteg15TXnCDXlNee15vXqdeZ16gg15TXqNeQ16nXldefINee15LXk9eZ16gg15DXqiDXqdeo16og15QtUHJveHkg15TXktec15XXkdec15kg15TXpNei15nXnC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfc2V0R2xvYmFsUHJveHkiIG1zZ2lkPSIyNzg0ODI4MjkzNzQ3NzkxNDQ2Ij4i4oCP15TXkteT16gg15DXqiDXqdeo16og15QtUHJveHkg15TXm9ec15zXmSDXqdecINeU157Xm9ep15nXqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfc2V0R2xvYmFsUHJveHkiIG1zZ2lkPSI2Mzg3NDk3NDY2NjYwMTU0OTMxIj4i4oCP15TXkteT16gg16nXmdee15XXqSDXkdep16jXqiDXlC1Qcm94eSDXlNeS15zXldeR15zXmSDXqdecINeU157Xm9ep15nXqCDXm9eQ16nXqCDXlNee15PXmdeg15nXldeqINee15XXpNei15zXqi4g16jXpyDXnteg15TXnCDXlNee15vXqdeZ16gg15TXqNeQ16nXldefINee15LXk9eZ16gg15DXqiDXqdeo16og15QtUHJveHkg15TXktec15XXkdec15kg15TXpNei15nXnC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZXhwaXJlUGFzc3dvcmQiIG1zZ2lkPSI4ODUyNzkxNTE4NDcyNTQwNTYiPiLXlNeS15PXqCDXqteQ16jXmdeaINeq16TXldeS15Qg15zXodeZ16HXnteUINep15wg16DXoteZ15zXqiDXlNee16HXmiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZXhwaXJlUGFzc3dvcmQiIG1zZ2lkPSIxNzI5NzI1MjI2MzE0NjkxNTkxIj4i16nXnNeV15gg15HXqteT15nXqNeV16og16nXkdeUINeZ16kg15zXqdeg15XXqiDXkNeqINeU16HXmdeh157XlCDXqdecINeg16LXmdec16og15TXnteh15ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2VuY3J5cHRlZFN0b3JhZ2UiIG1zZ2lkPSI4OTAxMzI2MTk5OTA5MTMyOTE1Ij4i15TXkteT16gg15TXptek16DXqiDXkNeX16HXldefIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19lbmNyeXB0ZWRTdG9yYWdlIiBtc2dpZD0iMjYzNzczMjExNTMyNTMxNjk5MiI+IteT16jXldepINep16DXqteV16DXmSDXkNek15zXmden16bXmdeV16og157XkNeV15fXodeg15XXqiDXmdeU15nXlSDXnteV16bXpNeg15nXnS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZGlzYWJsZUNhbWVyYSIgbXNnaWQ9IjYzOTUzMDEwMjMxNTIyOTc4MjYiPiLXlNep15HXqiDXntem15zXnteV16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2Rpc2FibGVDYW1lcmEiIG1zZ2lkPSIyMzA2MzQ5MDQyODM0NzU0NTk3Ij4i157XoNeiINep15nXnteV16kg15HXm9ecINeU157Xptec157XldeqINep15HXnteb16nXmdeoLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9kaXNhYmxlS2V5Z3VhcmRGZWF0dXJlcyIgbXNnaWQ9IjI2NjMyOTEwNDU0MjYzODgwMiI+IteU16nXkdeqINeq15vXldeg15XXqiDXkS1LZXlndWFyZCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIzNDY3MDgyMjcyMTg2NTM0NjE0Ij4i157XoNeiINep15nXnteV16kg15HXqteb15XXoNeV16og157XodeV15nXnteV16og15EtS2V5Z3VhcmQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2Rpc2FibGVLZXlndWFyZEZlYXR1cmVzIiBtc2dpZD0iMjY2MzI5MTA0NTQyNjM4ODAyIj4i4oCP15TXqdeR16og16rXm9eV16DXldeqINeRLUtleWd1YXJkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19kaXNhYmxlS2V5Z3VhcmRGZWF0dXJlcyIgbXNnaWQ9IjM0NjcwODIyNzIxODY1MzQ2MTQiPiLigI/Xnteg16Ig16nXmdee15XXqSDXkdeq15vXldeg15XXqiDXnteh15XXmdee15XXqiDXkS1LZXlndWFyZC4iPC9zdHJpbmc+CiAgIDxzdHJpbmctYXJyYXkgbmFtZT0icGhvbmVUeXBlcyI+CiAgICAgPGl0ZW0gbXNnaWQ9Ijg5MDEwOTgzMzY2NTg3MTAzNTkiPiLXkdeZ16oiPC9pdGVtPgogICAgIDxpdGVtIG1zZ2lkPSI4Njk5MjM2NTA1MjcxMzY2MTUiPiLXoNeZ15nXkyI8L2l0ZW0+CkBAIC04MDksMTQgKzgxNiwxNCBAQAogICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVIb21lIiBtc2dpZD0iNjA5MzU5ODE4MTA2OTM1OTI5NSI+IteT16Mg15TXkdeZ16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZVdvcmsiIG1zZ2lkPSI2OTIwNzI1NzMwNzk3MDk5MDQ3Ij4i16LXkdeV15PXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlT3RoZXIiIG1zZ2lkPSI0NDA4NDM2MTYyOTUwMTE5ODQ5Ij4i15DXl9eoIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4i15TXp9ec15Mg16fXldeTIFBJTiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IteU16fXnNeTINeQ16og16fXldeTINeULVBVSyDXlden15XXkyAg15QtUElOINeU15fXk9epIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiLXp9eV15MgUFVLIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLXp9eV15MgUElOINeX15PXqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IuKAj9eU16fXnNeTINen15XXkyBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiLigI/XlNen15zXkyDXkNeqINen15XXkyDXlC1QVUsg15XXp9eV15MgINeULVBJTiDXlNeX15PXqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4i4oCP16fXldeTIFBVSyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4i4oCP16fXldeTIFBJTiDXl9eT16kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiLXkteiINeb15PXmSDXnNeU16fXnNeZ15Mg15DXqiDXlNeh15nXodee15QiPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLXlNen15zXkyDXodeZ16HXnteUINec15HXmdeY15XXnCDXlNeg16LXmdec15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLXlNen15zXkyDXp9eV15MgUElOINec15HXmdeY15XXnCDXlNeg16LXmdec15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLXp9eV15MgUElOINep15LXldeZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i4oCP15TXp9ec15Mg16fXldeTIFBJTiDXnNeR15nXmNeV15wg15TXoNei15nXnNeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIyNDIyMjI1NTkxMDA2MTM0OTM2Ij4i4oCP16fXldeTIFBJTiDXqdeS15XXmSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xhYmVsX3RleHQiIG1zZ2lkPSI4NjE3OTY0NjEwMjgyOTg0MjQiPiLXm9eT15kg15zXkdeY15wg15DXqiDXlNeg16LXmdec15QsINec15fXpSDXotecIFwn16rXpNeo15nXmFwnINeV15zXkNeX16gg157Xm9efINei15wgMC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJlbWVyZ2VuY3lfY2FsbF9kaWFsb2dfbnVtYmVyX2Zvcl9kaXNwbGF5IiBtc2dpZD0iNjk2MTkyMTAzMTk1MDkwOTcwIj4i157Xodek16gg15fXmdeo15XXnSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fY2Fycmllcl9kZWZhdWx0IiBtc2dpZD0iODk2MzgzOTI0MjU2NTY1MzE5MiI+IteQ15nXnyDXqdeZ16jXldeqIjwvc3RyaW5nPgpAQCAtODM0LDEzICs4NDEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fY2hhcmdlZCIgbXNnaWQ9IjMyMTYzNTc0NTY4NDA2MDYyNCI+IteY16LXldefIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9iYXR0ZXJ5X3Nob3J0IiBtc2dpZD0iNDQ3NzI2NDg0OTM4Njg1MDI2NiI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2xvd19iYXR0ZXJ5IiBtc2dpZD0iMTQ4Mjg3Mzk4MTkxOTI0OTc0MCI+IteX15HXqCDXkNeqINeU157XmNei158uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNTA5OTQzOTI3NzgxOTIxNTM5OSI+IteQ15nXnyDXm9eo15jXmdehIFNJTSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUxNjU5MTk2MDk1NzkxNDc0Ij4i15DXmdefINeb16jXmNeZ16EgU0lNINeR15jXkNeR15zXmC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg2OTIwNTg1Njk1MTY5MDc4Ij4i15DXmdefINeb16jXmNeZ16EgU0lNINeR15jXnNek15XXny4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUzNzI3ODcxMzgwMjMyNzI2MTUiPiLXlNeb16DXoSDXm9eo15jXmdehIFNJTS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iMzUyNjU3MzA5OTAxOTMxOTQ3MiI+Iteb16jXmNeZ16Eg15QtU0lNINeX16HXqCDXkNeVINep15zXkCDXoNeZ16rXnyDXnNen16jXldeQINeQ15XXqteVLiDXlNeb16DXoSDXm9eo15jXmdehIFNJTS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjUwOTYxNDk2NjUxMzg5MTYxODQiPiLXnNeQINeg15nXqtefINec15TXqdeq157XqSDXkdeb16jXmNeZ16EgU0lNINeW15QuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjkxMDkwNDY0MzQzMzE1MTM3MSI+Iteb16jXmNeZ16Eg15QtU0lNINep15zXmiDXlNeV16nXkdeqINec16bXnteZ16rXldeqLlxu16TXoNeUINec16HXpNenINeU16nXmdeo15XXqiDXlNeQ15zXl9eV15jXmSDXqdec15og15zXp9eR15zXqiDXm9eo15jXmdehIFNJTSDXkNeX16guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNTA5OTQzOTI3NzgxOTIxNTM5OSI+IuKAj9eQ15nXnyDXm9eo15jXmdehIFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUxNjU5MTk2MDk1NzkxNDc0Ij4i4oCP15DXmdefINeb16jXmNeZ16EgU0lNINeR15jXkNeR15zXmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg2OTIwNTg1Njk1MTY5MDc4Ij4i4oCP15DXmdefINeb16jXmNeZ16EgU0lNINeR15jXnNek15XXny4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUzNzI3ODcxMzgwMjMyNzI2MTUiPiLigI/XlNeb16DXoSDXm9eo15jXmdehIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iMzUyNjU3MzA5OTAxOTMxOTQ3MiI+IuKAj9eb16jXmNeZ16Eg15QtU0lNINeX16HXqCDXkNeVINep15zXkCDXoNeZ16rXnyDXnNen16jXldeQINeQ15XXqteVLiDXlNeb16DXoSDXm9eo15jXmdehIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjUwOTYxNDk2NjUxMzg5MTYxODQiPiLigI/XnNeQINeg15nXqtefINec15TXqdeq157XqSDXkdeb16jXmNeZ16EgU0lNINeW15QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjkxMDkwNDY0MzQzMzE1MTM3MSI+IuKAj9eb16jXmNeZ16Eg15QtU0lNINep15zXmiDXlNeV16nXkdeqINec16bXnteZ16rXldeqLlxu16TXoNeUINec16HXpNenINeU16nXmdeo15XXqiDXlNeQ15zXl9eV15jXmSDXqdec15og15zXp9eR15zXqiDXm9eo15jXmdehIFNJTSDXkNeX16guIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIwMTU5NDkwNTE1Mjc0Njg4NiI+Itec15fXptefINeU16jXpteV16LXlCDXlNen15XXk9ee16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjA4OTI5NzY1MDQ4MTI5MjM2MyI+Itec15fXptefINeU16jXpteV16LXlCDXlNeR15DXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1OTA4ODc4Njc4MDEyODAwMSI+Itec15fXptefINeU15TXqdeU15nXlCI8L3N0cmluZz4KQEAgLTg0OCwxNSArODU1LDE1IEBACiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDU2MjMxODM3ODc2Njk4NzYwMSI+Itec15fXptefINeU16LXpteZ16jXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImVtZXJnZW5jeV9jYWxsc19vbmx5IiBtc2dpZD0iNjczMzk3ODMwNDM4NjM2NTQwNyI+Itep15nXl9eV16og15fXmdeo15XXnSDXkdec15HXkyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjE0MzM4OTIyNDk4NjAyODUwMSI+Iteo16nXqiDXoNei15XXnNeUIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNzQ0MTc5NzMzOTk3NjIzMCI+Iteb16jXmNeZ16EgU0lNINeg16LXldecINeR15DXntem16LXldeqIFBVSy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV9wdWtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI3NDQxNzk3MzM5OTc2MjMwIj4i4oCP15vXqNeY15nXoSBTSU0g16DXoteV15wg15HXkNee16bXoteV16ogUFVLLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3B1a19sb2NrZWRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iODEyNzkxNjI1NTI0NTE4MTA2MyI+Itei15nXmdefINeR157Xk9eo15nXmiDXnNee16nXqtee16kg15DXlSDXpNeg15Qg15zXqdeZ16jXldeqINeU15zXp9eV15fXldeqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iODA2NjY2MDEyOTIwNjAwMTAzOSI+Iteb16jXmNeZ16Eg15QtU0lNINeg16LXldecLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjU5NTMyMzIxNDA1Mjg4MTI2NCI+Itee15HXmNecINeg16LXmdec15Qg16nXnCDXm9eo15jXmdehIFNJTeKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iODA2NjY2MDEyOTIwNjAwMTAzOSI+IuKAj9eb16jXmNeZ16Eg15QtU0lNINeg16LXldecLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjU5NTMyMzIxNDA1Mjg4MTI2NCI+IuKAj9ee15HXmNecINeg16LXmdec15Qg16nXnCDXm9eo15jXmdehIFNJTeKApiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNjQ4MTYyMzgzMDM0NDEwNzIyMiI+Itep16jXmNeY16og15DXqiDXp9eVINeR15nXmNeV15wg15TXoNei15nXnNeUINeR15DXldek158g16nXkteV15kgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g16TXotee15nXnS4gXG5cbteg16HXlCDXqdeV15Eg15HXoteV15MgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g16nXoNeZ15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjI3MjU5NzMyODYyMzkzNDQ1NTUiPiLXlNen15zXk9eqINeh15nXodee15Qg16nXkteV15nXlCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDXpNei157XmdedLlxuXG7XoNeh15Qg16nXldeRINeR16LXldeTIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INep16DXmdeV16ouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNjIxNjY3MjcwNjU0NTY5Njk1NSI+IteU16fXnNeT16og16fXldeTIFBJTiDXqdeS15XXmSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDXpNei157XmdedLlxuXG7XoNeh15Qg16nXldeRINeR16LXldeTIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INep16DXmdeV16ouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iOTE5MTYxMTk4NDYyNTQ2MDgyMCI+Itep16jXmNeY16og15HXkNeV16TXnyDXqdeS15XXmSDXkNeqINen15Ug15HXmdeY15XXnCDXlNeg16LXmdec15QgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g16TXotee15nXnS4g15zXkNeX16ggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g16DXmdeh15nXldeg15XXqiDXm9eV16nXnNeZ150g16DXldeh16TXmdedLCDXqteq15HXp9epINec15HXmNecINeQ16og16DXoteZ15zXqiDXlNeY15DXkdec15gg15HXkNee16bXoteV16og16TXqNeY15kg15TXm9eg15nXodeUINep15zXmiDXnC1Hb29nbGUuXG5cbteg16HXlCDXqdeV15Eg15HXoteV15MgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g16nXoNeZ15XXqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfZ2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjU5MDIyNzU1OTc2Mzc2Mjc1MSI+Itep16jXmNeY16og15DXqiDXp9eVINeR15nXmNeV15wg15TXoNei15nXnNeUINeR15DXldek158g16nXkteV15kgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g16TXotee15nXnS4g15HXoteV15MgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g16DXmdeh15nXldeg15XXqiDXm9eV16nXnNeZ150g16DXldeh16TXmdedLCDXqteq15HXp9epINec15HXmNecINeQ16og16DXoteZ15zXqiDXlNeY15zXpNeV158g15HXkNee16bXoteV16og16TXqNeY15kg15TXm9eg15nXodeUINep15zXmiDXnC1Hb29nbGXigI8uXG5cbiDXoNeh15Qg16nXldeRINeR16LXldeTIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INep16DXmdeV16ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNjIxNjY3MjcwNjU0NTY5Njk1NSI+IuKAj9eU16fXnNeT16og16fXldeTIFBJTiDXqdeS15XXmSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDXpNei157XmdedLlxuXG7XoNeh15Qg16nXldeRINeR16LXldeTIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INep16DXmdeV16ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iOTE5MTYxMTk4NDYyNTQ2MDgyMCI+IuKAj9ep16jXmNeY16og15HXkNeV16TXnyDXqdeS15XXmSDXkNeqINen15Ug15HXmdeY15XXnCDXlNeg16LXmdec15QgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g16TXotee15nXnS4g15zXkNeX16ggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g16DXmdeh15nXldeg15XXqiDXm9eV16nXnNeZ150g16DXldeh16TXmdedLCDXqteq15HXp9epINec15HXmNecINeQ16og16DXoteZ15zXqiDXlNeY15DXkdec15gg15HXkNee16bXoteV16og16TXqNeY15kg15TXm9eg15nXodeUINep15zXmiDXnC1Hb29nbGUuXG5cbteg16HXlCDXqdeV15Eg15HXoteV15MgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g16nXoNeZ15XXqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfZ2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjU5MDIyNzU1OTc2Mzc2Mjc1MSI+IuKAj9ep16jXmNeY16og15DXqiDXp9eVINeR15nXmNeV15wg15TXoNei15nXnNeUINeR15DXldek158g16nXkteV15kgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g16TXotee15nXnS4g15HXoteV15MgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g16DXmdeh15nXldeg15XXqiDXm9eV16nXnNeZ150g16DXldeh16TXmdedLCDXqteq15HXp9epINec15HXmNecINeQ16og16DXoteZ15zXqiDXlNeY15zXpNeV158g15HXkNee16bXoteV16og16TXqNeY15kg15TXm9eg15nXodeUINep15zXmiDXnC1Hb29nbGXigI8uXG5cbiDXoNeh15Qg16nXldeRINeR16LXldeTIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INep16DXmdeV16ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjYxMjgxMDYzOTk3NDU3NTU2MDQiPiLXkdeZ16bXoteqIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INeg15nXodeZ15XXoNeV16og16nXkteV15nXmdedINec15HXmdeY15XXnCDXoNei15nXnNeqINeU15jXkNeR15zXmC4g15zXkNeX16ggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g16DXmdeh15nXldeg15XXqiDXm9eV16nXnNeZ150g16DXldeh16TXmdedLCDXlNeY15DXkdec15gg15nXoteR15XXqCDXkNeZ16TXldehINec15HXqNeZ16jXqiDXlNee15fXk9ecINep15wg15TXmdem16jXnyDXldeb15wg16DXqteV16DXmSDXlNee16nXqtee16kg15nXkNeR15PXlS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2MDM1NjUxNDIxNTY4MjY1NjUiPiLXkdeZ16bXoteqIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INeg15nXodeZ15XXoNeV16og16nXkteV15nXmdedINec15HXmdeY15XXnCDXoNei15nXnNeqINeU15jXnNek15XXny4g15zXkNeX16ggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g16DXmdeh15nXldeg15XXqiDXm9eV16nXnNeZ150g16DXldeh16TXmdedLCDXlNeY15zXpNeV158g15nXoteR15XXqCDXkNeZ16TXldehINec15HXqNeZ16jXqiDXlNee15fXk9ecINep15wg15TXmdem16jXnyDXldeb15wg16DXqteV16DXmSDXlNee16nXqtee16kg15nXkNeR15PXlS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyODA4NzM1MTY0OTM5MzQzNjUiPiLXkdeZ16bXoteqIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDXoNeZ16HXmdeV16DXldeqINep15LXldeZ15nXnSDXnNeR15nXmNeV15wg16DXoteZ15zXqiDXlNeY15DXkdec15guINeU15jXkNeR15zXmCDXmdei15HXldeoINeb16LXqiDXkNeZ16TXldehINec15HXqNeZ16jXqiDXlNee15fXk9ecINep15wg15TXmdem16jXny4iPC9zdHJpbmc+CkBAIC04NjUsMTIgKzg3MiwxMiBAQAogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9IjI2MjY5OTk0NDk2MTA2OTU5MzAiPiLXqdeb15fXqiDXkNeqINeU16fXlT8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9mb3Jnb3RfcGF0dGVybiIgbXNnaWQ9IjI1ODg1MjE1MDExNjYwMzI3NDciPiLXkdeZ15jXldecINeg16LXmdec16og15fXqdeR15XXnyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iMjc1MTM2ODYwNTI4NzI4ODgwOCI+IteR15XXptei15Ug16DXmdeh15nXldeg15XXqiDXqNeR15nXnSDXnteT15kg15zXqdeo15jXldeYINen15Ug15HXmdeY15XXnCDXoNei15nXnNeULiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5MzE4MTYyNTYxMDA3MDc3ODQiPiLXm9eT15kg15zXkdeY15wg15DXqiDXlNeg16LXmdec15QsINeU15nXm9eg16Eg15HXkNee16bXoteV16og15fXqdeR15XXnyBHb29nbGUg16nXnNeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5MzE4MTYyNTYxMDA3MDc3ODQiPiLigI/Xm9eT15kg15zXkdeY15wg15DXqiDXlNeg16LXmdec15QsINeU15nXm9eg16Eg15HXkNee16bXoteV16og15fXqdeR15XXnyBHb29nbGUg16nXnNeaLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI4ODQ2ODgxNDI0MTA2NDg0NDQ3Ij4i16nXnSDXntep16rXntepICjXk9eV15BcItecKSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI1OTU4MDI4MzgzOTU0NzM4NTI4Ij4i16HXmdeh157XlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI3MTMwODkzNjk0Nzk1Nzg2MzAwIj4i15vXoNeZ16HXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSIxMzY0MDUxNDczMzQ3NDg1OTA4Ij4i16nXnSDXntep16rXntepINeQ15Ug16HXmdeh157XlCDXnNeQINeX15XXp9eZ15nXnS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSIxNjk2OTI0NzYzNjkwMzc5MDczIj4i16nXm9eX16og15DXqiDXqdedINeU157Xqdeq157XqSDXkNeVINeU16HXmdeh157XlD9cbteR16fXqCDXkdeb16rXldeR16ogIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2FjY291bnRfcmVjb3ZlcnlfaGludCIgbXNnaWQ9IjE2OTY5MjQ3NjM2OTAzNzkwNzMiPiLigI/Xqdeb15fXqiDXkNeqINep150g15TXntep16rXntepINeQ15Ug15TXodeZ16HXnteUP1xu15HXp9eoINeR15vXqteV15HXqiAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSI3MTE0NjI3MzUxMjg2OTMzODY3Ij4i15HXldeT16cuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3VubG9ja19sYWJlbCIgbXNnaWQ9IjczNzQ0MDQ4MzIyMDY2NzA1NCI+IteR15jXnCDXoNei15nXnNeUIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zb3VuZF9vbl9sYWJlbCIgbXNnaWQ9IjkwNjg4Nzc1NzY1MTM0MjU5NzAiPiLXp9eV15wg16TXldei15wiPC9zdHJpbmc+CkBAIC04NzksMjQgKzg4NiwyNCBAQAogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9jbGVhcmVkIiBtc2dpZD0iNTU4MzQ3OTcyMTAwMTYzOTU3OSI+IteU16rXkdeg15nXqiDXoNee15fXp9eUIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9jZWxsX2FkZGVkIiBtc2dpZD0iNjc1NjAzMTIwODM1OTI5MjQ4NyI+IteU16rXkCDXoNeV16HXoyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYWNjZXNzX3BhdHRlcm5fZGV0ZWN0ZWQiIG1zZ2lkPSI0OTg4NzMwODk1NTU0MDU3MDU4Ij4i15TXqteR16DXmdeqINeU15XXqdec157XlCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4gV2lkZ2V0ICUyJGQg157XqteV15ogJTMkZC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2FkZF93aWRnZXQiIG1zZ2lkPSI4MjczMjc3MDU4NzI0OTI0NjU0Ij4i15TXldeh16MgV2lkZ2V0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4i4oCPJTEkcy4gV2lkZ2V0ICUyJGQg157XqteV15ogJTMkZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2FkZF93aWRnZXQiIG1zZ2lkPSI4MjczMjc3MDU4NzI0OTI0NjU0Ij4i4oCP15TXldeh16MgV2lkZ2V0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i16jXmdenIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLXkNeW15XXqCDXkdeZ15jXldecINeU16DXoteZ15zXlCDXlNeV16jXl9eRLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfY29sbGFwc2VkIiBtc2dpZD0iNjM2Njk5MjA2NjkzNjA3NjM5NiI+IteQ15bXldeoINeR15nXmNeV15wg15TXoNei15nXnNeUINeb15XXldelLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0IiBtc2dpZD0iNjUyNzEzMTAzOTc0MTgwODI0MCI+IldpZGdldCDigI88eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldCIgbXNnaWQ9IjY1MjcxMzEwMzk3NDE4MDgyNDAiPiLigI9XaWRnZXQg4oCPPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91c2VyX3NlbGVjdG9yIiBtc2dpZD0iMTIyNjc5ODM3MDkxMzY5ODg5NiI+IteR15XXl9eoINee16nXqtee16nXmdedIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zdGF0dXMiIG1zZ2lkPSI4MDA4MjY0NjAzOTM1OTMwNjExIj4i16HXmNeY15XXoSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfY2FtZXJhIiBtc2dpZD0iODkwNDIzMTE5NDE4MTExNDYwMyI+Itee16bXnNee15QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlnYXVyZF9hY2Nlc3NpYmlsaXR5X21lZGlhX2NvbnRyb2xzIiBtc2dpZD0iMjYyMjA5NjU0MjkyMTYxODA2Ij4i16TXp9eT15kg157Xk9eZ15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+Iteh15nXk9eV16gg157Xl9eT16kg16nXnCBXaWRnZXRzINeU16rXl9eZ15wuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9lbmQiIG1zZ2lkPSI3MTcwMTkwOTUwODcwNDY4MzIwIj4i16HXmdeT15XXqCDXnteX15PXqSDXqdecIFdpZGdldHMg15TXodeq15nXmdedLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4iV2lkZ2V0IOKAjzx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+INeg157Xl9enLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfc3RhcnQiIG1zZ2lkPSI4NzM2ODUzNjE1NTg4ODI4MTk3Ij4i4oCP16HXmdeT15XXqCDXnteX15PXqSDXqdecIFdpZGdldHMg15TXqteX15nXnC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiLigI/XodeZ15PXldeoINee15fXk9epINep15wgV2lkZ2V0cyDXlNeh16rXmdeZ150uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZGVsZXRlZCIgbXNnaWQ9IjQ0MjYyMDQyNjM5MjkyMjQ0MzQiPiLigI9XaWRnZXQg4oCPPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g16DXnteX16cuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4i15TXqNeX15Eg15DXqiDXkNeW15XXqCDXkdeZ15jXldecINeU16DXoteZ15zXlC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiLXkdeZ15jXldecINeg16LXmdec15Qg15HXkNee16bXoteV16og15TXodeY15QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLXkdeZ15jXldecINeg16LXmdec15Qg15HXkNee16bXoteV16og16bXmdeV16gg16fXlS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+IteR15nXmNeV15wg16DXoteZ15zXlCDXkdeQ157Xptei15XXqiDXlteZ15TXldeZINek16DXmdedLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiLXkdeZ15jXldecINeg16LXmdec15Qg15HXkNee16bXoteV16og157Xodek16ggUElOLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiLigI/XkdeZ15jXldecINeg16LXmdec15Qg15HXkNee16bXoteV16og157Xodek16ggUElOLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGFzc3dvcmRfdW5sb2NrIiBtc2dpZD0iNzY3NTc3NzYyMzkxMjE1NTA4OSI+IteR15nXmNeV15wg16DXoteZ15zXlCDXkdeQ157Xptei15XXqiDXodeZ16HXnteULiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl9hcmVhIiBtc2dpZD0iNzY3OTg5MTMyNDUwOTU5NzkwNCI+IteQ15bXldeoINem15nXldeoINen15UuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV9hcmVhIiBtc2dpZD0iNjczNjA2NDQ5NDAxOTk3OTU0NCI+IteQ15bXldeoINeU16HXmNeULiI8L3N0cmluZz4KQEAgLTkxMCw4ICs5MTcsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iaG91cl9hbXBtIiBtc2dpZD0iNDU4NDMzODA4MzUyOTM1NTk4MiI+Ijx4bGlmZjpnIGlkPSJIT1VSIj4lLWw8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IkFNUE0iPiVQPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImhvdXJfY2FwX2FtcG0iIG1zZ2lkPSIyMDgzNDY1OTkyOTQwNDQ0MzY2Ij4iPHhsaWZmOmcgaWQ9IkhPVVIiPiUtbDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iQU1QTSI+JXA8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3RfZmFpbGVkIiBtc2dpZD0iNTQxMDI3MDMyOTExNDIxMjA0MSI+IteR15PXmden16og15TXmdem16jXnyDXoNeb16nXnNeUIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3Rfbm90X3N5c3RlbSIgbXNnaWQ9IjQ0MzUyMDE2NTY3NjcyNzY3MjMiPiLXlNek16LXldec15QgRkFDVE9SWV9URVNUINeg16rXnteb16og16jXpyDXoteR15XXqCDXl9eR15nXnNeV16og16nXlNeV16rXp9eg15Ug15Et4oCOL3N5c3RlbS9hcHAuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3Rfbm9fYWN0aW9uIiBtc2dpZD0iODcyOTkxODc0Nzk5OTk4NTYxIj4i15zXkCDXoNee16bXkNeUINeX15HXmdec15Qg15TXnteh16TXp9eqINeQ16og15TXpNei15XXnNeUIEZBQ1RPUllfVEVTVC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub3Rfc3lzdGVtIiBtc2dpZD0iNDQzNTIwMTY1Njc2NzI3NjcyMyI+IuKAj9eU16TXoteV15zXlCBGQUNUT1JZX1RFU1Qg16DXqtee15vXqiDXqNenINei15HXldeoINeX15HXmdec15XXqiDXqdeU15XXqten16DXlSDXkS3igI4vc3lzdGVtL2FwcC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub19hY3Rpb24iIG1zZ2lkPSI4NzI5OTE4NzQ3OTk5OTg1NjEiPiLigI/XnNeQINeg157XpteQ15Qg15fXkdeZ15zXlCDXlNee16HXpNen16og15DXqiDXlNek16LXldec15QgRkFDVE9SWV9URVNULiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X3JlYm9vdCIgbXNnaWQ9IjYzMjAxNjgyMDMwNTA3OTE2NDMiPiLXkNeq15fXnCDXnteX15PXqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjE5ODc0ODM5Nzc4MzQ2MDM4NzIiPiLXkdeT16Mg16nXkdeb16rXldeR16ogXCc8eGxpZmY6ZyBpZD0iVElUTEUiPiVzPC94bGlmZjpnPlwnINeb16rXldeRINeb15o6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX3RpdGxlX2RlZmF1bHQiIG1zZ2lkPSI2OTYxOTAzMjEzNzI5NjY3NTczIj4iSmF2YVNjcmlwdCI8L3N0cmluZz4KQEAgLTk0MCwxMCArOTQ3LDEwIEBACiAgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hcmVhIiBtc2dpZD0iMzU0NzQwOTA1MDg4OTk1MjQyMyI+IteQ15bXldeoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZW1pcmF0ZSIgbXNnaWQ9IjI4OTM4ODA5Nzg4MzU2OTg4MTgiPiLXkNee15nXqNeV16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iMzc3NTI2NTc3NTQwNTEwNjk4MyI+Iten16jXmdeQ16og16HXmdee16DXmdeV16og15XXlNeZ16HXmNeV16jXmdeZ16og15TXkNeZ16DXmNeo16DXmCDXqdec15oiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9Ijg0NjIzNzgyMjY2MDA0Mzk2NTgiPiLXnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNen16jXldeQINeQ16og15TXlNeZ16HXmNeV16jXmdeUINep15wg15vXnCDXm9eq15XXkdeV16og15TXkNeq16jXmdedINep15HXlNefINeU15PXpNeT16TXnyDXkdeZ16fXqCwg15XXkNeqINeb15wg15QtQm9va21hcmtzINep15wg15TXk9ek15PXpNefLiDXqdeZ150g15zXkTog15PXpNeT16TXoNeZINem15Mg16nXnNeZ16nXmSDXkNeVINeQ16TXnNeZ16fXpteZ15XXqiDXkNeX16jXldeqINei150g15nXm9eV15zXldeqINec15PXpNeT15XXoyDXkdeQ15nXoNeY16jXoNeYINeQ15nXoNedINeZ15vXldec15nXnSDXnNeQ15vXldejINeQ15nXqdeV16gg15bXlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9Ijg0NjIzNzgyMjY2MDA0Mzk2NTgiPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNen16jXldeQINeQ16og15TXlNeZ16HXmNeV16jXmdeUINep15wg15vXnCDXm9eq15XXkdeV16og15TXkNeq16jXmdedINep15HXlNefINeU15PXpNeT16TXnyDXkdeZ16fXqCwg15XXkNeqINeb15wg15QtQm9va21hcmtzINep15wg15TXk9ek15PXpNefLiDXqdeZ150g15zXkTog15PXpNeT16TXoNeZINem15Mg16nXnNeZ16nXmSDXkNeVINeQ16TXnNeZ16fXpteZ15XXqiDXkNeX16jXldeqINei150g15nXm9eV15zXldeqINec15PXpNeT15XXoyDXkdeQ15nXoNeY16jXoNeYINeQ15nXoNedINeZ15vXldec15nXnSDXnNeQ15vXldejINeQ15nXqdeV16gg15bXlC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9IjM3MTQ3ODUxNjUyNzMzMTQ0OTAiPiLXm9eq15nXkdeqINeh15nXnteg15nXldeqINeV15TXmdeh15jXldeo15nXmdeqINeQ15nXoNeY16jXoNeYIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2ODI1NTI3NDY5MTQ1NzYwOTIyIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdeg15XXqiDXkNeqINeU15TXmdeh15jXldeo15nXlCDXkNeVINeULUJvb2ttYXJrcyDXqdecINeU15PXpNeT16TXnyDXlNee15DXldeX16HXoNeZ150g15HXmNeQ15HXnNeYLiDXlNeT15HXqCDXotep15XXmSDXnNeQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNee15fXldenINeQ15Ug15zXqdeg15XXqiDXoNeq15XXoNeZINeT16TXk9ek158uINep15nXnSDXnNeROiDXkNeZ16nXldeoINeW15Qg15DXmdeg15Ug16DXmdeq158g15zXkNeb15nXpNeUINei15wg15nXk9eZINeT16TXk9ek16DXmSDXpteTINep15zXmdep15kg15DXlSDXkNek15zXmden16bXmdeV16og15DXl9eo15XXqiDXkdei15zXldeqINeZ15vXldec15XXqiDXktec15nXqdeUINeR15DXmdeg15jXqNeg15guIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODQ5NzM4OTUzMTAxNDE4NTUwOSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXoNeV16og15DXqiDXlNeU15nXodeY15XXqNeZ15Qg15DXlSDXlC1Cb29rbWFya3Mg16nXnCDXlNeT16TXk9ek158g15TXnteQ15XXl9eh16DXmdedINeR15jXnNek15XXny4g15TXk9eR16gg16LXqdeV15kg15zXkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXnteX15XXpyDXkNeVINec16nXoNeV16og16DXqteV16DXmSDXk9ek15PXpNefLiDXqdeZ150g15zXkTog15DXmdep15XXqCDXlteUINeQ15nXoNeVINeg15nXqtefINec15DXm9eZ16TXlCDXotecINeZ15PXmSDXk9ek15PXpNeg15kg16bXkyDXqdec15nXqdeZINeQ15Ug15DXpNec15nXp9em15nXldeqINeQ15fXqNeV16og15HXotec15XXqiDXmdeb15XXnNeV16og15LXnNeZ16nXlCDXkdeQ15nXoNeY16jXoNeYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjgyNTUyNzQ2OTE0NTc2MDkyMiI+IuKAj9ee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXoNeV16og15DXqiDXlNeU15nXodeY15XXqNeZ15Qg15DXlSDXlC1Cb29rbWFya3Mg16nXnCDXlNeT16TXk9ek158g15TXnteQ15XXl9eh16DXmdedINeR15jXkNeR15zXmC4g15TXk9eR16gg16LXqdeV15kg15zXkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXnteX15XXpyDXkNeVINec16nXoNeV16og16DXqteV16DXmSDXk9ek15PXpNefLiDXqdeZ150g15zXkTog15DXmdep15XXqCDXlteUINeQ15nXoNeVINeg15nXqtefINec15DXm9eZ16TXlCDXotecINeZ15PXmSDXk9ek15PXpNeg15kg16bXkyDXqdec15nXqdeZINeQ15Ug15DXpNec15nXp9em15nXldeqINeQ15fXqNeV16og15HXotec15XXqiDXmdeb15XXnNeV16og15LXnNeZ16nXlCDXkdeQ15nXoNeY16jXoNeYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0OTczODk1MzEwMTQxODU1MDkiPiLigI/XnteQ16TXqdeoINec15DXpNec15nXp9em15nXlCDXnNep16DXldeqINeQ16og15TXlNeZ16HXmNeV16jXmdeUINeQ15Ug15QtQm9va21hcmtzINep15wg15TXk9ek15PXpNefINeU157XkNeV15fXodeg15nXnSDXkdeY15zXpNeV158uINeU15PXkdeoINei16nXldeZINec15DXpNep16gg15zXkNek15zXmden16bXmdeUINec157Xl9eV16cg15DXlSDXnNep16DXldeqINeg16rXldeg15kg15PXpNeT16TXny4g16nXmdedINec15E6INeQ15nXqdeV16gg15bXlCDXkNeZ16DXlSDXoNeZ16rXnyDXnNeQ15vXmdek15Qg16LXnCDXmdeT15kg15PXpNeT16TXoNeZINem15Mg16nXnNeZ16nXmSDXkNeVINeQ16TXnNeZ16fXpteZ15XXqiDXkNeX16jXldeqINeR16LXnNeV16og15nXm9eV15zXldeqINeS15zXmdep15Qg15HXkNeZ16DXmNeo16DXmC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldEFsYXJtIiBtc2dpZD0iMTM3OTI5NDU1NjM2MjA5MTgxNCI+IteU15LXk9eo16og15TXqteo15DXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFsYXJtIiBtc2dpZD0iMzE2MzkyMDM5MTU3NDczODQ4Ij4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXlNeS15PXmdeoINeU16rXqNeQ15Qg15HXkNek15zXmden16bXmdeUINee15XXqten16DXqiDXqdecINep16LXldefINee16LXldeo16guINeQ16TXnNeZ16fXpteZ15XXqiDXnteh15XXmdee15XXqiDXqdecINep16LXldefINee16LXldeo16gg15DXmdeg158g157XmdeZ16nXnteV16og16rXm9eV16DXlCDXlteVLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWRkVm9pY2VtYWlsIiBtc2dpZD0iNTUyNTY2MDAyNjA5MDk1OTA0NCI+IteU15XXodejINeT15XXkNeoINen15XXnNeZIjwvc3RyaW5nPgpAQCAtOTU1LDcgKzk2Miw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRQYWNrYWdlVmVyaWZpZXIiIG1zZ2lkPSI0MTg3Nzg2NzkzMzYwMzI2NjU0Ij4i15TXm9ek16TXlCDXnNee15DXnteqINeX15HXmdec15QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUGFja2FnZVZlcmlmaWVyIiBtc2dpZD0iMzE4MDc0MTc3MzIzMzg2MjEyNiI+Itee15DXpNep16gg15zXntep16rXntepINec15TXkteZ16kg15HXp9ep15XXqiDXqdecINee15DXnteq15kg15fXkdeZ15zXldeqLiDXlNeo16nXkNeUINeW15Ug15zXoteV15zXnSDXkNeZ16DXlCDXoNeX15XXpteUINec15DXpNec15nXp9em15nXldeqINeo15LXmdec15nXnS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlcmlhbFBvcnQiIG1zZ2lkPSI1NDYwODMzMjc2NTQ2MzEwNzYiPiLXkteZ16nXlCDXnNeZ16bXmdeQ15XXqiDXmNeV16jXmdeV16oiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXJpYWxQb3J0IiBtc2dpZD0iMjk5MTYzOTk4NTIyNDU5ODE5MyI+Itee15DXpNep16gg15zXkdei15zXmdedINec15LXqdeqINec15nXpteZ15DXldeqINeY15XXqNeZ15XXqiDXkdeQ157Xptei15XXqiDXntee16nXpyDXlC0gQVBJINep15wgU2VyaWFsTWFuYWdlci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXJpYWxQb3J0IiBtc2dpZD0iMjk5MTYzOTk4NTIyNDU5ODE5MyI+IuKAj9ee15DXpNep16gg15zXkdei15zXmdedINec15LXqdeqINec15nXpteZ15DXldeqINeY15XXqNeZ15XXqiDXkdeQ157Xptei15XXqiDXntee16nXpyDXlC0gQVBJINep15wgU2VyaWFsTWFuYWdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0NvbnRlbnRQcm92aWRlcnNFeHRlcm5hbGx5IiBtc2dpZD0iNTA3Nzc3NDI5Nzk0MzQwOTI4NSI+IteS15nXqdeUINec16HXpNen15kg16rXldeb158g15HXkNeV16TXnyDXl9eZ16bXldeg15kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NDb250ZW50UHJvdmlkZXJzRXh0ZXJuYWxseSIgbXNnaWQ9IjQ1NDQzNDY0ODY2OTc4NTM2ODUiPiLXnteQ16TXqdeoINec15HXotec15nXnSDXnNeS16nXqiDXnNeh16TXp9eZINeq15XXm9efINee15TXntei15jXpNeqLiDXnNei15XXnNedINec15Ag15DXnteV16gg15zXlNeZ15XXqiDXpteV16jXmiDXoteR15XXqCDXkNek15zXmden16bXmdeV16og16jXkteZ15zXldeqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlTG9jayIgbXNnaWQ9IjM1Mjc1NTgzNjY2MTY2ODA4ODkiPiLXk9eX15Qg16LXk9eb15XXoNeZINee15vXqdeZ16gg15DXldeY15XXnteY15nXmdedIjwvc3RyaW5nPgpAQCAtMTExNyw5ICsxMTI0LDkgQEAKICAgICA8c3RyaW5nIG5hbWU9IndoaWNoQXBwbGljYXRpb24iIG1zZ2lkPSI0NTMzMTg1OTQ3MDY0NzczMzg2Ij4i15TXqdec157XqiDXpNei15XXnNeUINeR15DXntem16LXldeqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2hpY2hIb21lQXBwbGljYXRpb24iIG1zZ2lkPSI0NjE2NDIwMTcyNzI3MzI2NzgyIj4i15HXl9eoINeQ16TXnNeZ16fXpteZ15Qg15zXk9ejINeU15HXmdeqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzVXNlIiBtc2dpZD0iNDU4MzAxODM2ODAwMDYxMDQzOCI+IteU16nXqtee16kg15vXkdeo15nXqNeqINee15fXk9ecINei15HXldeoINek16LXldec15Qg15bXlS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjbGVhckRlZmF1bHRIaW50TXNnIiBtc2dpZD0iMzI1MjU4NDY4OTUxMjA3NzI1NyI+Iteg16fXlCDXkNeqINeU15LXk9eo16og15TXnteX15PXnCDXkVwn15TXkteT16jXldeqINee16LXqNeb16pcJyAmbHQ74oCPIEdvb2dsZSBBcHBz4oCPICZsdDsgXCfXlNeV16jXk9eV16pcJy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjbGVhckRlZmF1bHRIaW50TXNnIiBtc2dpZD0iMzI1MjU4NDY4OTUxMjA3NzI1NyI+IuKAj9eg16fXlCDXkNeqINeU15LXk9eo16og15TXnteX15PXnCDXkVwn15TXkteT16jXldeqINee16LXqNeb16pcJyAmbHQ74oCPIEdvb2dsZSBBcHBz4oCPICZsdDsgXCfXlNeV16jXk9eV16pcJy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VBY3Rpdml0eSIgbXNnaWQ9Ijc0ODY4NzYxNDc3NTE4MDMzMzMiPiLXkdeX15nXqNeqINek16LXldec15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjaG9vc2VVc2JBY3Rpdml0eSIgbXNnaWQ9IjY4OTQ3NDg0MTYwNzM1ODM1MDkiPiLXkdeX16gg15DXpNec15nXp9em15nXlCDXoteR15XXqCDXlNeq16fXnyDXlC1VU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VVc2JBY3Rpdml0eSIgbXNnaWQ9IjY4OTQ3NDg0MTYwNzM1ODM1MDkiPiLigI/XkdeX16gg15DXpNec15nXp9em15nXlCDXoteR15XXqCDXlNeq16fXnyDXlC1VU0IiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJub0FwcGxpY2F0aW9ucyIgbXNnaWQ9IjI5OTE4MTQyNzM5MzY1MDQ2ODkiPiLXkNeZ158g15DXpNec15nXp9em15nXldeqINep15nXm9eV15zXldeqINec15HXpteiINek16LXldec15Qg15bXlS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhZXJyX3RpdGxlIiBtc2dpZD0iMTkwNTgwMDU2MDMxNzEzNzc1MiI+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhZXJyX2FwcGxpY2F0aW9uIiBtc2dpZD0iOTMyNjI4NDg4MDEzMDkyNzc2Ij4i15zXptei16jXoNeVLCDXpNei15XXnNeqIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g15TXldek16HXp9eULiI8L3N0cmluZz4KQEAgLTExMzgsOSArMTE0NSw5IEBACiAgICAgPHN0cmluZyBuYW1lPSJsYXVuY2hfd2FybmluZ19vcmlnaW5hbCIgbXNnaWQ9IjE4ODEwMjAyMzAyMTY2ODY4MyI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4g15TXldek16LXnCDXkdee16fXldeoLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9zY2FsZSIgbXNnaWQ9IjMyMDI5NTU2Njc2NzU5NDQ0OTkiPiLXqdeZ16DXldeZINen16DXlC3XnteZ15PXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9zaG93IiBtc2dpZD0iNDAxMzg3ODg3NjQ4NjY1NTg5MiI+IteU16bXkiDXqtee15nXkyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9oaW50IiBtc2dpZD0iMTA2NDUyNDA4NDU0MzMwNDQ1OSI+IteQ16TXqdeoINeq15vXldeg15Qg15bXlSDXnteX15PXqSDXkVwn15TXkteT16jXldeqINee16LXqNeb16pcJyAmbHQ74oCPIEdvb2dsZSBBcHBz4oCPICZsdDsgXCfXlNeV16jXk9eV16pcJy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzbXZfYXBwbGljYXRpb24iIG1zZ2lkPSIzMzA3MjA5MTkyMTU1NDQyODI5Ij4i15TXkNek15zXmden16bXmdeUIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4gKNeq15TXnNeZ15ogPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUyJHM8L3hsaWZmOmc+KSDXlNek16gg15DXqiDXnteT15nXoNeZ15XXqiBTdHJpY3RNb2RlINeR15DXm9eZ16TXlCDXotem157XmdeqINep15zXlS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzbXZfcHJvY2VzcyIgbXNnaWQ9IjUxMjAzOTcwMTIwNDc0NjI0NDYiPiLXlNeq15TXnNeZ15ogPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+INeU16TXqCDXkNeqINee15PXmdeg15nXldeqIFN0cmljdE1vZGUg15HXkNeb15nXpNeUINei16bXnteZ16ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX2hpbnQiIG1zZ2lkPSIxMDY0NTI0MDg0NTQzMzA0NDU5Ij4i4oCP15DXpNep16gg16rXm9eV16DXlCDXlteVINee15fXk9epINeRXCfXlNeS15PXqNeV16og157Xoteo15vXqlwnICZsdDvigI8gR29vZ2xlIEFwcHPigI8gJmx0OyBcJ9eU15XXqNeT15XXqlwnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtdl9hcHBsaWNhdGlvbiIgbXNnaWQ9IjMzMDcyMDkxOTIxNTU0NDI4MjkiPiLigI/XlNeQ16TXnNeZ16fXpteZ15QgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiAo16rXlNec15nXmiA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTIkczwveGxpZmY6Zz4pINeU16TXqCDXkNeqINee15PXmdeg15nXldeqIFN0cmljdE1vZGUg15HXkNeb15nXpNeUINei16bXnteZ16og16nXnNeVLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtdl9wcm9jZXNzIiBtc2dpZD0iNTEyMDM5NzAxMjA0NzQ2MjQ0NiI+IuKAj9eU16rXlNec15nXmiA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz4g15TXpNeoINeQ16og157Xk9eZ16DXmdeV16ogU3RyaWN0TW9kZSDXkdeQ15vXmdek15Qg16LXptee15nXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ190aXRsZSIgbXNnaWQ9IjE1ODQxOTIyODU0NDE0MDU3NDYiPiLigI9BbmRyb2lkINee15HXpteiINep15PXqNeV15LigKYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19hcGsiIG1zZ2lkPSI3OTA0MDQyNjgyMTExNTI2MTY5Ij4i157Xkdem16Ig15DXldek15jXmdee15nXltem15nXlCDXqdecINeQ16TXnNeZ16fXpteZ15QgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRkPC94bGlmZjpnPiDXnteq15XXmiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJGQ8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX3N0YXJ0aW5nX2FwcHMiIG1zZ2lkPSI0NTE0NjQ1MTYzNDY5MjY3MTMiPiLXntek16LXmdecINeQ16TXnNeZ16fXpteZ15XXqi4iPC9zdHJpbmc+CkBAIC0xMTU2LDE0ICsxMTYzLDE0IEBACiAgICAgPHN0cmluZyBuYW1lPSJzZW5kVGV4dCIgbXNnaWQ9IjUyMDk4NzQ1NzE5NTk0NjkxNDIiPiLXkdeX15nXqNeqINek16LXldec15Qg15zXkdeZ16bXldeiINei150g15jXp9eh15giPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfcmluZ3RvbmUiIG1zZ2lkPSI2ODg1NDIxNDA2ODQ1NzM0NjUwIj4i16LXldem157XqiDXp9eV15wg16nXnCDXptec16bXldecIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljIiBtc2dpZD0iNTQyMTY1MTE1NzEzODYyODE3MSI+Itei15XXptee16og16fXldecINep15wg157Xk9eZ15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfbXVzaWNfaGludF9wbGF5aW5nX3Rocm91Z2hfYmx1ZXRvb3RoIiBtc2dpZD0iOTE2NTk4NDM3OTM5NDYwMTUzMyI+IteU16TXotec15Qg15HXkNee16bXoteV16ogQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljX2hpbnRfcGxheWluZ190aHJvdWdoX2JsdWV0b290aCIgbXNnaWQ9IjkxNjU5ODQzNzkzOTQ2MDE1MzMiPiLigI/XlNek16LXnNeUINeR15DXntem16LXldeqIEJsdWV0b290aCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9tdXNpY19oaW50X3NpbGVudF9yaW5ndG9uZV9zZWxlY3RlZCIgbXNnaWQ9IjgzMTA3Mzk5NjA5NzMxNTYyNzIiPiLXlNeV15LXk9eoINeo15nXoNeS15jXldefINep16fXmCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9jYWxsIiBtc2dpZD0iMzk0MTY4MDA0MTI4Mjc4ODcxMSI+Itei15XXptee16og16fXldecINeR16nXmdeX15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfYmx1ZXRvb3RoX2NhbGwiIG1zZ2lkPSIyMDAyODkxOTI2MzUxMTUxNTM0Ij4i16LXldem157XqiDXlNen15XXnCDXkdep15nXl9eUINeRLUJsdWV0b290aCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9ibHVldG9vdGhfY2FsbCIgbXNnaWQ9IjIwMDI4OTE5MjYzNTExNTE1MzQiPiLigI/XoteV16bXnteqINeU16fXldecINeR16nXmdeX15Qg15EtQmx1ZXRvb3RoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2FsYXJtIiBtc2dpZD0iMTk4NTE5MTYxNjA0MjY4OTEwMCI+Itei15XXptee16og16fXldecINep15wg15TXqteo15DXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9ub3RpZmljYXRpb24iIG1zZ2lkPSIyNDIyMjY1NjU2NzQ0Mjc2NzE1Ij4i16LXldem157XqiDXp9eV15wg16nXnCDXlNeq16jXkNeV16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfdW5rbm93biIgbXNnaWQ9IjE0MDAyMTk2Njk3NzA0NDU5MDIiPiLXoteV16bXnteqINen15XXnCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX2JsdWV0b290aCIgbXNnaWQ9IjY1Mzg4OTQxNzcyNTU5NjQzNDAiPiLXoteV16bXnteqINen15XXnCDXqdecIEJsdWV0b290aCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX2JsdWV0b290aCIgbXNnaWQ9IjY1Mzg4OTQxNzcyNTU5NjQzNDAiPiLigI/XoteV16bXnteqINen15XXnCDXqdecIEJsdWV0b290aCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX3JpbmdlciIgbXNnaWQ9IjMzMjYwMDM4NDcwMDYxNjI0OTYiPiLXoteV16bXnteqINen15XXnCDXqdecINeo15nXoNeS15jXldefIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2ljb25fZGVzY3JpcHRpb25faW5jYWxsIiBtc2dpZD0iODg5MDA3MzIxODE1NDU0MzM5NyI+Itei15XXptee16og16fXldecINep15wg16nXmdeX15XXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX21lZGlhIiBtc2dpZD0iNDIxNzMxMTcxOTY2NTE5NDIxNSI+Itei15XXptee16og16fXldecINep15wg157Xk9eZ15QiPC9zdHJpbmc+CkBAIC0xMTc0LDIzICsxMTgxLDIzIEBACiAgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV9waWNrZXJfdGl0bGUiIG1zZ2lkPSIzNTE1MTQzOTM5MTc1MTE5MDk0Ij4i16jXmdeg15LXmNeV16DXmdedIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfdW5rbm93biIgbXNnaWQ9IjU0Nzc5MTk5ODg3MDE3ODQ3ODgiPiLXqNeZ16DXkteY15XXnyDXnNeQINeZ15PXldeiIjwvc3RyaW5nPgogICA8cGx1cmFscyBuYW1lPSJ3aWZpX2F2YWlsYWJsZSI+Ci0gICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY2NTQxMjM5ODc0MTgxNjg2OTMiPiLXqNep16ogV2ktRmkg15bXnteZ16DXlCI8L2l0ZW0+Ci0gICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDE5MjQyNDQ4OTE2ODM5NzM4NiI+Iteo16nXqteV16ogV2ktRmkg15bXnteZ16DXldeqIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjY1NDEyMzk4NzQxODE2ODY5MyI+IuKAj9eo16nXqiBXaS1GaSDXltee15nXoNeUIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0MTkyNDI0NDg5MTY4Mzk3Mzg2Ij4i4oCP16jXqdeq15XXqiBXaS1GaSDXltee15nXoNeV16oiPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgIDxwbHVyYWxzIG5hbWU9IndpZmlfYXZhaWxhYmxlX2RldGFpbGVkIj4KLSAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMTYzNDEwMTQ1MDM0MzI3NzM0NSI+Iteo16nXqiBXaS1GaSDXpNeq15XXl9eUINeW157Xmdeg15QiPC9pdGVtPgotICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc5MTU4OTUzMjM2NDQyOTI3NjgiPiLXqNep16rXldeqIFdpLUZpINek16rXldeX15XXqiDXltee15nXoNeV16oiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIxNjM0MTAxNDUwMzQzMjc3MzQ1Ij4i4oCP16jXqdeqIFdpLUZpINek16rXldeX15Qg15bXnteZ16DXlCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzkxNTg5NTMyMzY0NDI5Mjc2OCI+IuKAj9eo16nXqteV16ogV2ktRmkg16TXqteV15fXldeqINeW157Xmdeg15XXqiI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KLSAgICA8c3RyaW5nIG5hbWU9IndpZmlfYXZhaWxhYmxlX3NpZ25faW4iIG1zZ2lkPSI0MDI5NDg5NzE2NjA1MjU1Mzg2Ij4i15vXoNeZ16HXlCDXnNeo16nXqiBXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfYXZhaWxhYmxlX3NpZ25faW4iIG1zZ2lkPSI0MDI5NDg5NzE2NjA1MjU1Mzg2Ij4i4oCP15vXoNeZ16HXlCDXnNeo16nXqiBXaS1GaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5ldHdvcmtfYXZhaWxhYmxlX3NpZ25faW4iIG1zZ2lkPSI4NDk1MTU1NTkzMzU4MDU0Njc2Ij4i15TXmdeb16DXoSDXnNeo16nXqiI8L3N0cmluZz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBuZXR3b3JrX2F2YWlsYWJsZV9zaWduX2luX2RldGFpbGVkICg4MDAwMDgxOTQxNDQ3OTc2MTE4KSAtLT4KICAgICA8c2tpcCAvPgotICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkIiBtc2dpZD0iNzkwNDIxNDIzMTY1MTU0NjM0NyI+IteQ15nXnyDXkNek16nXqNeV16og15zXlNeq15fXkdeoINecLVdpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkIiBtc2dpZD0iNzkwNDIxNDIzMTY1MTU0NjM0NyI+IuKAj9eQ15nXnyDXkNek16nXqNeV16og15zXlNeq15fXkdeoINecLVdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkX2RldGFpbGVkIiBtc2dpZD0iNTU0ODc4MDc3NjQxODMzMjY3NSI+IiDXkNeZ16DXlSDXnteX15XXkdeoINeU15nXmNeRINec15DXmdeg15jXqNeg15guIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZGlhbG9nX3RpdGxlIiBtc2dpZD0iOTc2MTE3ODI2NTkzMjQ1MTciPiJXaS1GaSDXmdep15nXqCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX3R1cm5vbl9tZXNzYWdlIiBtc2dpZD0iMjkwOTI1MDk0MjI5OTYyNzI0NCI+IteU16TXotecIFdpLUZpINeZ16nXmdeoLiDXpNei15XXnNeUINeW15Ug16rXm9eR15Qg15DXqiDXlNec16fXldeXL9eU16DXp9eV15PXlCDXlNeX157XlCDXqdecINeULVdpLUZpLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZhaWxlZF9tZXNzYWdlIiBtc2dpZD0iMzc2MzY2OTY3NzkzNTYyMzA4NCI+Itec15Ag16DXmdeq158g15zXlNek16LXmdecIFdpLUZpINeZ16nXmdeoIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW5hYmxlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMDY4MzIxODgxNjczNzM0ODg2Ij4iV2ktRmkg15nXqdeZ16gg157Xldek16LXnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijk3NjExNzgyNjU5MzI0NTE3Ij4i4oCPV2ktRmkg15nXqdeZ16giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF90dXJub25fbWVzc2FnZSIgbXNnaWQ9IjI5MDkyNTA5NDIyOTk2MjcyNDQiPiLigI/XlNek16LXnCBXaS1GaSDXmdep15nXqC4g16TXoteV15zXlCDXlteVINeq15vXkdeUINeQ16og15TXnNen15XXly/XlNeg16fXldeT15Qg15TXl9ee15Qg16nXnCDXlC1XaS1GaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mYWlsZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NjM2Njk2Nzc5MzU2MjMwODQiPiLigI/XnNeQINeg15nXqtefINec15TXpNei15nXnCBXaS1GaSDXmdep15nXqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VuYWJsZWRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjA2ODMyMTg4MTY3MzczNDg4NiI+IuKAj1dpLUZpINeZ16nXmdeoINee15XXpNei15wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9lbmFibGVkX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTYzODk0OTk1Mzk5Mzg5NDMzNSI+IteS16Ig16LXkdeV16gg15TXkteT16jXldeqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMTY0NTI2NzI1OTI3MjgyOTU1OSI+Iten15HXnCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRlY2xpbmUiIG1zZ2lkPSIyMTEyMjI1NDUxNzA2MTM3ODk0Ij4i15PXl9eUIjwvc3RyaW5nPgpAQCAtMTE5OCwyOCArMTIwNSwyOCBAQAogICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfaW52aXRhdGlvbl90b19jb25uZWN0X3RpdGxlIiBtc2dpZD0iNDk1ODgwMzk0ODY1ODUzMzYzNyI+IteU15bXnteg15Qg15zXlNeq15fXkdeoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZnJvbV9tZXNzYWdlIiBtc2dpZD0iNTcwMzg5MTc0NzMxOTUxNzY5Ij4i157XkNeqOiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX3RvX21lc3NhZ2UiIG1zZ2lkPSIyNDg5Njg5NzQ1MjIwNDQwOTkiPiLXkNecOiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VudGVyX3Bpbl9tZXNzYWdlIiBtc2dpZD0iNTkyMDkyOTU1MDM2NzgyODk3MCI+IteU16fXnNeTINeQ16og16fXldeTINeULVBJTiDXlNeg15PXqNepLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VudGVyX3Bpbl9tZXNzYWdlIiBtc2dpZD0iNTkyMDkyOTU1MDM2NzgyODk3MCI+IuKAj9eU16fXnNeTINeQ16og16fXldeTINeULVBJTiDXlNeg15PXqNepLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX3Nob3dfcGluX21lc3NhZ2UiIG1zZ2lkPSI4NTMwNTYzMzIzODgwOTIxMDk0Ij4iUElOOiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MDEyOTgxMjU3NzQyMjMyNDc1Ij4i15TXmNeQ15HXnNeYINeZ16rXoNeq16cg157XqNep16og15QtV2ktRmkg15HXkNeV16TXnyDXltee16DXmSDXkdep16LXlCDXqdeU15XXkCDXnteX15XXkdeoINeQ15wgPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzM2MzkwNzIxMzc4NzQ2OTE1MSI+IteU15jXnNek15XXnyDXmdeq16DXqtenINee16jXqdeqINeULVdpLUZpINeR15DXldek158g15bXnteg15kg15HXqdei15Qg16nXlNeV15Ag157Xl9eV15HXqCDXkNecIDx4bGlmZjpnIGlkPSJERVZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcmVxdWVuY3lfY29uZmxpY3RfbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODAxMjk4MTI1Nzc0MjIzMjQ3NSI+IuKAj9eU15jXkNeR15zXmCDXmdeq16DXqtenINee16jXqdeqINeULVdpLUZpINeR15DXldek158g15bXnteg15kg15HXqdei15Qg16nXlNeV15Ag157Xl9eV15HXqCDXkNecIDx4bGlmZjpnIGlkPSJERVZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcmVxdWVuY3lfY29uZmxpY3RfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczNjM5MDcyMTM3ODc0NjkxNTEiPiLigI/XlNeY15zXpNeV158g15nXqteg16rXpyDXnteo16nXqiDXlC1XaS1GaSDXkdeQ15XXpNefINeW157XoNeZINeR16nXoteUINep15TXldeQINee15fXldeR16gg15DXnCA8eGxpZmY6ZyBpZD0iREVWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2NoYXJhY3RlciIgbXNnaWQ9IjMzNjU1NTAxMjA2MTc3MDE3NDUiPiLXlNeV16HXoyDXqteVIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfdGl0bGUiIG1zZ2lkPSI3Mjk2NjEyNzgxMTI4OTE3NzE5Ij4i16nXldec15cg15TXldeT16LXldeqIFNNUyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX21lc3NhZ2UiIG1zZ2lkPSIzODY3ODk5MTY5NjUxNDk2NDMzIj4iJmx0O2ImZ3Q7IDx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4gJmx0Oy8gYiZndDsg16nXldec15cg157Xodek16gg16jXkSDXqdecINeU15XXk9ei15XXqiBTTVMuINeU15DXnSDXkdeo16bXldeg15og15zXkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15bXlSDXnNeU157XqdeZ15og15zXqdec15XXlyDXlNeV15PXoteV16o/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfdGl0bGUiIG1zZ2lkPSI3Mjk2NjEyNzgxMTI4OTE3NzE5Ij4i4oCP16nXldec15cg15TXldeT16LXldeqIFNNUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX21lc3NhZ2UiIG1zZ2lkPSIzODY3ODk5MTY5NjUxNDk2NDMzIj4i4oCPJmx0O2ImZ3Q7IDx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4gJmx0Oy8gYiZndDsg16nXldec15cg157Xodek16gg16jXkSDXqdecINeU15XXk9ei15XXqiBTTVMuINeU15DXnSDXkdeo16bXldeg15og15zXkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15bXlSDXnNeU157XqdeZ15og15zXqdec15XXlyDXlNeV15PXoteV16o/Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfeWVzIiBtc2dpZD0iMzY2MzcyNTk5Mzg1NTgxNjgwNyI+IteQ16TXqdeoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfbm8iIG1zZ2lkPSI2MjU0Mzg1NjEzOTU1MzQ5ODIiPiLXk9eX15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX21lc3NhZ2UiIG1zZ2lkPSIxNjQ1NDM2NDY2Mjg1MzEwODU1Ij4iJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDsg16jXldem15Qg15zXqdec15XXlyDXlNeV15PXoteUINeQ15wgJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkRFU1RfQUREUkVTUyI+JTIkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fbWVzc2FnZSIgbXNnaWQ9IjE2NDU0MzY0NjYyODUzMTA4NTUiPiLigI8mbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyDXqNeV16bXlCDXnNep15zXldeXINeU15XXk9ei15Qg15DXnCAmbHQ7YiZndDs8eGxpZmY6ZyBpZD0iREVTVF9BRERSRVNTIj4lMiRzPC94bGlmZjpnPiZsdDsvYiZndDsuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfZGV0YWlscyIgbXNnaWQ9IjM0OTIwMjU3MTk4NjgwNzg0NTciPiLXlNek16LXldec15QgIjxmb250IGZnY29sb3I9IiNmZmZmYjA2MCI+Itei16nXldeZ15Qg15zXkteo15XXnSDXnNeX15nXldeR15nXnSI8L2ZvbnQ+IiDXkdeX16nXkdeV158g15TXnteb16nXmdeoINeU16DXmdeZ15Mg16nXnNeaLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNtc19wcmVtaXVtX3Nob3J0X2NvZGVfZGV0YWlscyIgbXNnaWQ9IjU1MjM4MjYzNDkxMDUxMjM2ODciPjxmb250IGZnY29sb3I9IiNmZmZmYjA2MCI+IteU16TXoteV15zXlCDXqteS16jXldedINec15fXmdeV15HXmdedINeR15fXqdeR15XXnyDXlNee15vXqdeZ16gg15TXoNeZ15nXkyDXqdec15ouIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fYWxsb3ciIG1zZ2lkPSI0NDU4ODc4NjM3MTExMDIzNDEzIj4i16nXnNeXIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9kZW55IiBtc2dpZD0iMjkyNzM4OTg0MDIwOTE3MDcwNiI+IteR15jXnCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX2Nob2ljZSIgbXNnaWQ9IjUyODk1Mzg1OTIyNzIyMTgxMzYiPiLXlteb15XXqCDXkNeqINeU15HXl9eZ16jXlCDXqdec15kiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9yZW1lbWJlcl91bmRvX2luc3RydWN0aW9uIiBtc2dpZD0iNDk2MDk0NDEzMzA1MjI4NzQ4NCI+Iteg15nXqtefINec16nXoNeV16og15bXkNeqINee15DXldeX16gg15nXldeq16gg15FcJ9eU15LXk9eo15XXqlwnICZndDsgXCfXkNek15zXmden16bXmdeV16pcJyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX3VuZG9faW5zdHJ1Y3Rpb24iIG1zZ2lkPSI0OTYwOTQ0MTMzMDUyMjg3NDg0Ij4i4oCP16DXmdeq158g15zXqdeg15XXqiDXlteQ16og157XkNeV15fXqCDXmdeV16rXqCDXkVwn15TXkteT16jXldeqXCcgJmd0OyBcJ9eQ16TXnNeZ16fXpteZ15XXqlwnIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9hbHdheXNfYWxsb3ciIG1zZ2lkPSIzMjQxMTgxMTU0ODY5NDkzMzY4Ij4i15DXpNep16gg16rXnteZ15MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX25ldmVyX2FsbG93IiBtc2dpZD0iNDQ2OTkyNzY1Nzc0MjY5NjczIj4i15zXoteV15zXnSDXkNecINeq15DXpNep16giPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzaW1fcmVtb3ZlZF90aXRsZSIgbXNnaWQ9IjYyMjc3MTIzMTkyMjMyMjYxODUiPiLXm9eo15jXmdehINeULVNJTSDXlNeV16HXqCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InNpbV9yZW1vdmVkX21lc3NhZ2UiIG1zZ2lkPSIyMzMzMTY0NTU5OTcwOTU4NjQ1Ij4i15TXqNep16og15TXodec15XXnNeo15nXqiDXnNeQINeq15TXmdeUINeW157Xmdeg15Qg16LXkyDXqdeq16TXoteZ15wg157Xl9eT16kg15zXkNeX16gg15TXm9eg16HXqiDXm9eo15jXmdehIFNJTSDXl9eV16fXmS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVtb3ZlZF90aXRsZSIgbXNnaWQ9IjYyMjc3MTIzMTkyMjMyMjYxODUiPiLigI/Xm9eo15jXmdehINeULVNJTSDXlNeV16HXqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9yZW1vdmVkX21lc3NhZ2UiIG1zZ2lkPSIyMzMzMTY0NTU5OTcwOTU4NjQ1Ij4i4oCP15TXqNep16og15TXodec15XXnNeo15nXqiDXnNeQINeq15TXmdeUINeW157Xmdeg15Qg16LXkyDXqdeq16TXoteZ15wg157Xl9eT16kg15zXkNeX16gg15TXm9eg16HXqiDXm9eo15jXmdehIFNJTSDXl9eV16fXmS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaW1fZG9uZV9idXR0b24iIG1zZ2lkPSI4Mjc5NDk5ODkzNjk5NjM3NzUiPiLXodeZ15XXnSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InNpbV9hZGRlZF90aXRsZSIgbXNnaWQ9IjM3MTk2NzA1MTI4ODk2NzQ2OTMiPiLXm9eo15jXmdehINeULVNJTSDXoNeV16HXoyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9hZGRlZF90aXRsZSIgbXNnaWQ9IjM3MTk2NzA1MTI4ODk2NzQ2OTMiPiLigI/Xm9eo15jXmdehINeULVNJTSDXoNeV16HXoyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNpbV9hZGRlZF9tZXNzYWdlIiBtc2dpZD0iNjU5OTk0NTMwMTE0MTA1MDIxNiI+IteU16TXotecINee15fXk9epINeQ16og15TXnteb16nXmdeoINeb15PXmSDXnNeS16nXqiDXkNecINeU16jXqdeqINeU16HXnNeV15zXqNeZ16ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2ltX3Jlc3RhcnRfYnV0dG9uIiBtc2dpZD0iNDcyMjQwNzg0MjgxNTIzMjM0NyI+IteU16TXotecINee15fXk9epIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODM0OTM2MjYyMzA2ODgxOTI5NSI+IteU15LXk9eo16og16nXoteUIjwvc3RyaW5nPgpAQCAtMTIzMCwzOCArMTIzNywzOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybXNfZGVzY3JpcHRpb25fYXBwIiBtc2dpZD0iNTEzOTgzNjE0MzI5MzI5OTQxNyI+Itee15jXotedIDx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibm9fcGVybWlzc2lvbnMiIG1zZ2lkPSI3MjgzMzU3NzI4MjE5MzM4MTEyIj4i15zXkCDXk9eo15XXqdeZ150g15DXmdep15XXqNeZ150iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtX2Nvc3RzX21vbmV5IiBtc2dpZD0iNDkwMjQ3MDMyNDE0MjE1MTExNiI+Itek16LXldec15Qg15bXlSDXotep15XXmdeUINec15fXmdeZ15Eg15DXldeq15og15HXm9eh16M6Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfYWN0aXZpdHlfdGl0bGUiIG1zZ2lkPSI0NDY1MDU1MTU3MjA5NjQ4NjQxIj4i15DXntem16LXmSDXnteh15XXkiBVU0Ig15zXkNeX16HXldefINeR16DXpNeXINeS15PXldecIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfdGl0bGUiIG1zZ2lkPSI1OTAxNDU5MDQxMzk4NzUxNDk1Ij4iVVNCINee15fXldeR16giPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMzMDg1MzgwOTQzMTY0Nzc4MzkiPiLXlNeq15fXkdeo16og15zXnteX16nXkSDXkdeQ157Xptei15XXqiBVU0IuINeS16Ig15HXnNeX16bXnyDXqdeR15TXntep15og15DXnSDXkdeo16bXldeg15og15zXlNei16rXmdenINen15HXpteZ150g15HXmdefINeU157Xl9ep15Eg15zXkNeX16HXldefINeULVVTQiDXqdecINee15vXqdeZ16gg15QtQW5kcm9pZCDXqdec15ouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgwNTM1MTAwMDQ0NjAzNzgxMSI+IteU16rXl9eR16jXqiDXnNee15fXqdeRINeR15DXntem16LXldeqIFVTQi4g15LXoiDXkdec15fXptefINep15HXlNee16nXmiDXkNedINeR16jXpteV16DXmiDXnNeU16LXqteZ16cg16fXkdem15nXnSDXkdeZ158g15TXnteX16nXkSDXnNeR15nXnyDXm9eo15jXmdehINeULVNEINep15wg157Xm9ep15nXqCDXlC1BbmRyb2lkLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2J1dHRvbl9tb3VudCIgbXNnaWQ9IjEwNTIyNTk5MzAzNjk1MDgyMzUiPiLXlNek16LXnCDXkNeX16HXldefIFVTQiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2Vycm9yX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzAxNzA0NTIxNzM2NTU0MDY1OCI+IteZ16kg15HXoteZ15Qg15HXqdeZ157XldepINeR15DXl9eh15XXnyDXlC1VU0Ig16nXnNeaINec15DXl9eh15XXnyDXkdeg16TXlyDXkteT15XXnCDXkS1VU0IuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfZXJyb3JfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4NzYwMTg1MTI3MTY5NzAzMTMiPiLXmdepINeR16LXmdeUINeR16nXmdee15XXqSDXkdeb16jXmNeZ16Eg15QtU0Qg16nXnNeaINec15DXl9eh15XXnyDXkdeg16TXlyDXkteT15XXnCDXkS1VU0IuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODE3NTg5MjU1NDc1NzIxNjUyNSI+IlVTQiDXnteX15XXkdeoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfYWN0aXZpdHlfdGl0bGUiIG1zZ2lkPSI0NDY1MDU1MTU3MjA5NjQ4NjQxIj4i4oCP15DXntem16LXmSDXnteh15XXkiBVU0Ig15zXkNeX16HXldefINeR16DXpNeXINeS15PXldecIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfdGl0bGUiIG1zZ2lkPSI1OTAxNDU5MDQxMzk4NzUxNDk1Ij4i4oCPVVNCINee15fXldeR16giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMzMDg1MzgwOTQzMTY0Nzc4MzkiPiLigI/XlNeq15fXkdeo16og15zXnteX16nXkSDXkdeQ157Xptei15XXqiBVU0IuINeS16Ig15HXnNeX16bXnyDXqdeR15TXntep15og15DXnSDXkdeo16bXldeg15og15zXlNei16rXmdenINen15HXpteZ150g15HXmdefINeU157Xl9ep15Eg15zXkNeX16HXldefINeULVVTQiDXqdecINee15vXqdeZ16gg15QtQW5kcm9pZCDXqdec15ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgwNTM1MTAwMDQ0NjAzNzgxMSI+IuKAj9eU16rXl9eR16jXqiDXnNee15fXqdeRINeR15DXntem16LXldeqIFVTQi4g15LXoiDXkdec15fXptefINep15HXlNee16nXmiDXkNedINeR16jXpteV16DXmiDXnNeU16LXqteZ16cg16fXkdem15nXnSDXkdeZ158g15TXnteX16nXkSDXnNeR15nXnyDXm9eo15jXmdehINeULVNEINep15wg157Xm9ep15nXqCDXlC1BbmRyb2lkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2J1dHRvbl9tb3VudCIgbXNnaWQ9IjEwNTIyNTk5MzAzNjk1MDgyMzUiPiLigI/XlNek16LXnCDXkNeX16HXldefIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2Vycm9yX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzAxNzA0NTIxNzM2NTU0MDY1OCI+IuKAj9eZ16kg15HXoteZ15Qg15HXqdeZ157XldepINeR15DXl9eh15XXnyDXlC1VU0Ig16nXnNeaINec15DXl9eh15XXnyDXkdeg16TXlyDXkteT15XXnCDXkS1VU0IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfZXJyb3JfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4NzYwMTg1MTI3MTY5NzAzMTMiPiLigI/XmdepINeR16LXmdeUINeR16nXmdee15XXqSDXkdeb16jXmNeZ16Eg15QtU0Qg16nXnNeaINec15DXl9eh15XXnyDXkdeg16TXlyDXkteT15XXnCDXkS1VU0IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODE3NTg5MjU1NDc1NzIxNjUyNSI+IuKAj1VTQiDXnteX15XXkdeoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5Mzk4MjI3ODM4MjgxODM3NjMiPiLXkteiINeb15PXmSDXnNeU16LXqteZ16cg16fXkdem15nXnSDXnNee15fXqdeRL9ee15TXnteX16nXkS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIzMzYwNTgzOTY2NjM1MTYwMTciPiLXm9eR15Qg15DXl9eh15XXnyBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTY1Njg1MjA5ODU1NTYyMzgyMiI+IteS16Ig15vXk9eZINec15vXkdeV16og15DXqiDXkNeX16HXldefINeULVVTQi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX3RpdGxlIiBtc2dpZD0iNjYwMTI5ODUxNzA4Nzc1ODUzIj4i15DXl9eh15XXnyBVU0Ig16nXoNee16bXkCDXkdep15nXnteV16kiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDI2NDAyNTI4MDc3NzIxOTUyMSI+Itec16TXoNeZINep16rXm9eR15Qg15DXqiDXkNeX16HXldefINeULVVTQiwg15HXmNecINeQ16og15TXmNei15nXoNeUIChcIteU15XXpteQXCIpINep15wg15DXl9eh15XXnyDXlC1VU0Ig16nXnCDXlC1BbmRyb2lkINep15zXmiDXnteU157Xl9ep15EuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA0Mzk2OTc4MjQ2MDYxMzExNCI+Itec16TXoNeZINep16rXm9eR15Qg15DXqiDXkNeX16HXldefINeULVVTQiwg15XXk9eQINep15HXmdeY15zXqiDXkNeqINeU15jXoteZ16DXlCAoXCLXlNeV16bXkNeqXCIpINep15wg15vXqNeY15nXoSDXlC1TRCDXqdecINeULUFuZHJvaWQg16nXnNeaINee15TXnteX16nXkS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX2J1dHRvbl9tb3VudCIgbXNnaWQ9IjcwNjAyMTgwMzQ5MDA2OTYwMjkiPiLXm9eR15Qg15DXl9eh15XXnyBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX2Vycm9yX21lc3NhZ2UiIG1zZ2lkPSIxOTcwMzc0ODk4MjYzMDYzODM2Ij4i15TXmdeq15Qg15HXoteZ15Qg15HXm9eZ15HXldeZINeQ15fXodeV158g15QtVVNCLiDXldeT15Ag16nXkdeZ15jXnNeqINeQ16og15jXoteZ16DXqiDXnteQ16jXlyDXlC1VU0IsINeV15zXkNeX16gg157Xm9efINeg16HXlCDXqdeV15EuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZGxnX2NvbmZpcm1fa2lsbF9zdG9yYWdlX3VzZXJzX3RpdGxlIiBtc2dpZD0iOTYzMDM5MDMzNDcwNDc4Njk3Ij4i15TXpNei15wg15DXl9eh15XXnyBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkbGdfY29uZmlybV9raWxsX3N0b3JhZ2VfdXNlcnNfdGV4dCIgbXNnaWQ9IjUxMDA0Mjg3NTcxMDc0Njk0NTQiPiLXkNedINeq16TXoteZ15wg15DXl9eh15XXnyBVU0IsINeQ16TXnNeZ16fXpteZ15XXqiDXnteh15XXmdee15XXqiDXqdeR15TXnyDXkNeq15Qg157Xqdeq157XqSDXmdek16HXmden15Ug15zXpNei15XXnCwg15XXmdeZ16rXm9efINep15TXnyDXnNeQINeZ15TXmdeVINeW157Xmdeg15XXqiDXoteTINep16rXm9eR15Qg15DXqiDXkNeX16HXldefINeULVVTQi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkbGdfZXJyb3JfdGl0bGUiIG1zZ2lkPSI3MzIzNjU4NDY5NjI2NTE0MjA3Ij4i16TXoteV15zXqiBVU0Ig16DXm9ep15zXlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3Bfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjMzNjA1ODM5NjY2MzUxNjAxNyI+IuKAj9eb15HXlCDXkNeX16HXldefIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3Bfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIxNjU2ODUyMDk4NTU1NjIzODIyIj4i4oCP15LXoiDXm9eT15kg15zXm9eR15XXqiDXkNeqINeQ15fXodeV158g15QtVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfdGl0bGUiIG1zZ2lkPSI2NjAxMjk4NTE3MDg3NzU4NTMiPiLigI/XkNeX16HXldefIFVTQiDXqdeg157XpteQINeR16nXmdee15XXqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MjY0MDI1MjgwNzc3MjE5NTIxIj4i4oCP15zXpNeg15kg16nXqteb15HXlCDXkNeqINeQ15fXodeV158g15QtVVNCLCDXkdeY15wg15DXqiDXlNeY16LXmdeg15QgKFwi15TXldem15BcIikg16nXnCDXkNeX16HXldefINeULVVTQiDXqdecINeULUFuZHJvaWQg16nXnNeaINee15TXnteX16nXkS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MDQzOTY5NzgyNDYwNjEzMTE0Ij4i4oCP15zXpNeg15kg16nXqteb15HXlCDXkNeqINeQ15fXodeV158g15QtVVNCLCDXldeT15Ag16nXkdeZ15jXnNeqINeQ16og15TXmNei15nXoNeUIChcIteU15XXpteQ16pcIikg16nXnCDXm9eo15jXmdehINeULVNEINep15wg15QtQW5kcm9pZCDXqdec15og157XlNee15fXqdeRLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfYnV0dG9uX21vdW50IiBtc2dpZD0iNzA2MDIxODAzNDkwMDY5NjAyOSI+IuKAj9eb15HXlCDXkNeX16HXldefIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfZXJyb3JfbWVzc2FnZSIgbXNnaWQ9IjE5NzAzNzQ4OTgyNjMwNjM4MzYiPiLigI/XlNeZ16rXlCDXkdei15nXlCDXkdeb15nXkdeV15kg15DXl9eh15XXnyDXlC1VU0IuINeV15PXkCDXqdeR15nXmNec16og15DXqiDXmNei15nXoNeqINee15DXqNeXINeULVVTQiwg15XXnNeQ15fXqCDXnteb158g16DXodeUINep15XXkS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfY29uZmlybV9raWxsX3N0b3JhZ2VfdXNlcnNfdGl0bGUiIG1zZ2lkPSI5NjMwMzkwMzM0NzA0Nzg2OTciPiLigI/XlNek16LXnCDXkNeX16HXldefIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190ZXh0IiBtc2dpZD0iNTEwMDQyODc1NzEwNzQ2OTQ1NCI+IuKAj9eQ150g16rXpNei15nXnCDXkNeX16HXldefIFVTQiwg15DXpNec15nXp9em15nXldeqINee16HXldeZ157XldeqINep15HXlNefINeQ16rXlCDXntep16rXntepINeZ16TXodeZ16fXlSDXnNek16LXldecLCDXldeZ15nXqteb158g16nXlNefINec15Ag15nXlNeZ15Ug15bXnteZ16DXldeqINei15Mg16nXqteb15HXlCDXkNeqINeQ15fXodeV158g15QtVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19lcnJvcl90aXRsZSIgbXNnaWQ9IjczMjM2NTg0Njk2MjY1MTQyMDciPiLigI/XpNei15XXnNeqIFVTQiDXoNeb16nXnNeUIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGxnX29rIiBtc2dpZD0iNzM3Njk1MzE2NzAzOTg2NTcwMSI+IteQ15nXqdeV16giPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfbXRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjM2OTk5MTMwOTczOTE1NTAzOTQiPiLXnteX15XXkdeoINeb157Xm9ep15nXqCDXnteT15nXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InVzYl9wdHBfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMTk2MDgxNzE5MjIxNjA2NDgzMyI+Itee15fXldeR16gg15vXntem15zXnteUIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXNiX2NkX2luc3RhbGxlcl9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2Nzc0NzEyODI3ODkyMDkwNzU0Ij4i157Xl9eV15HXqCDXm9ee16rXp9eZ158iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9Ijc4NDgyMzY5NzQwODc2NTM2NjYiPiLXnteX15XXkdeoINec15DXkdeZ15bXqCBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2Jfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIyMjkwODU5Mzk5OTgzNzIwMjcxIj4i15LXoiDXnNen15HXnNeqINeQ16TXqdeo15XXmdeV16ogVVNCINeg15XXodek15XXqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iOTAyMDA5MjE5NjA2MTAwNzI2MiI+Itec16TXqNee15gg15DXqiDXkNee16bXoteZINeU15DXl9eh15XXnyDXnteh15XXkiBVU0I/Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzY0ODQxNTkyMTUyNjUyNjA2OSI+Itec16TXqNee15gg15DXqiDXm9eo15jXmdehINeULVNEPyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5MzQwMTY4NTM0MjU3NjEwNzgiPiLXm9ecINeU16fXkdem15nXnSDXqdep157Xldeo15nXnSDXkdeQ157Xptei15kg15TXkNeX16HXldefINee16HXldeSIFVTQiDXqdec15og15nXmdee15fXp9eVLiDXpNei15XXnNeUINeW15Ug15TXmdeQINeR15zXqteZINeU16TXmdeb15QhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI3ODQ4MjM2OTc0MDg3NjUzNjY2Ij4i4oCP157Xl9eV15HXqCDXnNeQ15HXmdeW16ggVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMjI5MDg1OTM5OTk4MzcyMDI3MSI+IuKAj9eS16Ig15zXp9eR15zXqiDXkNek16nXqNeV15nXldeqIFVTQiDXoNeV16HXpNeV16ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjkwMjAwOTIxOTYwNjEwMDcyNjIiPiLigI/XnNek16jXnteYINeQ16og15DXntem16LXmSDXlNeQ15fXodeV158g157XodeV15IgVVNCPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2NDg0MTU5MjE1MjY1MjYwNjkiPiLigI/XnNek16jXnteYINeQ16og15vXqNeY15nXoSDXlC1TRD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzOTM0MDE2ODUzNDI1NzYxMDc4Ij4i4oCP15vXnCDXlNen15HXpteZ150g16nXqdee15XXqNeZ150g15HXkNee16bXoteZINeU15DXl9eh15XXnyDXnteh15XXkiBVU0Ig16nXnNeaINeZ15nXnteX16fXlS4g16TXoteV15zXlCDXlteVINeU15nXkCDXkdec16rXmSDXlNek15nXm9eUISI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQxMzE4OTUwMjc1NDM4MzAiPiLXm9ecINeU16DXqteV16DXmdedINep157XkNeV15fXodeg15nXnSDXkdeb16jXmNeZ16Eg15nXkNeR15PXlS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfYnV0dG9uX2Zvcm1hdCIgbXNnaWQ9IjQxMzEwNjQ1NjAxMjc0Nzg2OTUiPiLXpNeo157XldeYIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2NzI5MDQ0Nzc4OTQ5MTg5OTE4Ij4i16DXmden15XXmSDXkdeQ15LXmdedINep15wgVVNCINee15fXldeR16giPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhZGJfYWN0aXZlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTAxNjY1NDYyNzYyNjQ3NjE0MiI+IteS16Ig15vXk9eZINec15TXqdeR15nXqiDXkNeqINeg15nXp9eV15kg15TXkdeQ15LXmdedINeR15TXqten158g15QtVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkYl9hY3RpdmVfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjcyOTA0NDc3ODk0OTE4OTkxOCI+IuKAj9eg15nXp9eV15kg15HXkNeS15nXnSDXqdecIFVTQiDXnteX15XXkdeoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjEwMTY2NTQ2Mjc2MjY0NzYxNDIiPiLigI/XkteiINeb15PXmSDXnNeU16nXkdeZ16og15DXqiDXoNeZ16fXldeZINeU15HXkNeS15nXnSDXkdeU16rXp9efINeULVVTQi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaW5wdXRfbWV0aG9kIiBtc2dpZD0iNDY1MzM4NzMzNjc5MTIyMjk3OCI+IteR15fXqCDXqdeZ15jXqiDXlNeW16DXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbmZpZ3VyZV9pbnB1dF9tZXRob2RzIiBtc2dpZD0iOTA5MTY1MjE1NzcyMjQ5NTExNiI+IteU15LXk9eoINep15nXmNeV16og16fXnNeYIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNjIwMzExMjQ3ODA5NTExNzYyNSI+Itee16fXnNeT16og16TXmdeW15nXqiI8L3N0cmluZz4KQEAgLTEyNzEsMjkgKzEyNzgsMjkgQEAKICAgICA8c3RyaW5nIG5hbWU9ImZhc3Rfc2Nyb2xsX2FscGhhYmV0IiBtc2dpZD0iNTQzMzI3NTQ4NTQ5OTAzOTE5OSI+IiBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImZhc3Rfc2Nyb2xsX251bWVyaWNfYWxwaGFiZXQiIG1zZ2lkPSI0MDMwMTcwNTI0NTk1MTIzNjEwIj4iIDAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNhbmRpZGF0ZXNfc3R5bGUiIG1zZ2lkPSI0MzMzOTEzMDg5NjM3MDYyMjU3Ij48dT4i157Xldei157Xk9eZ150iPC91Pjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNDQ5ODE2MDA1MzUxNDY4NTYwIj4i157Xm9eZ158g15DXl9eh15XXnyBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTQ1NzYwMzQxODk3MDk5NDA1MCI+Itee15vXmdefINeQ16og15vXqNeY15nXoSBTRCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9jaGVja2luZ19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzQ0OTgxNjAwNTM1MTQ2ODU2MCI+IuKAj9ee15vXmdefINeQ15fXodeV158gVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU0NTc2MDM0MTg5NzA5OTQwNTAiPiLigI/Xnteb15nXnyDXkNeqINeb16jXmNeZ16EgU0QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI4Mjg3MzE5ODgyOTI2NzM3MDUzIj4i15HXldeT16cg15DXnSDXmdepINep15LXmdeQ15XXqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzc4ODA0MDc0NTY4NjIyOTMwNyI+IteQ157Xptei15kg15DXl9eh15XXnyDXqNeZ16cg157XodeV15IgVVNCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzgwNDc3ODM4MjQxMjEyOTk3Ij4i15vXqNeY15nXoSBTRCDXqNeZ16ciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3ODQwMTIxMDY3NDI3MjY5NTAwIj4i15DXl9eh15XXnyDXlC1VU0Ig16jXmdenINeQ15Ug16nXntei16jXm9eqINeU16fXkdem15nXnSDXqdec15Ug15DXmdeg15Qg16DXqtee15vXqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2NDEwNjU2NDE3ODY5MjM2MDQiPiLXm9eo15jXmdehINeULVNEINeo15nXpyDXkNeVINep157Xoteo15vXqiDXlNen15HXpteZ150g16nXnNeVINeQ15nXoNeUINeg16rXnteb16ouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIyMDkwMDQ2NzY5NTMyNzEzNTYzIj4i15DXntem16LXmSDXkNeX16HXldefINek15LXldedINee16HXldeSIFVTQiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NDEwNzIzOTA2MDE5MTAwMTg5Ij4i15vXqNeY15nXoSBTRCDXpNeS15XXnSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIxNzk1OTE3NTc4Mzk1MzMzMjgwIj4i15DXl9eh15XXnyDXlC1VU0Ig16TXkteV150uINeg16HXlCDXnNek16jXnteYINeQ15XXqteVINee15fXk9epLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE3NTM4OTg1Njc1MjU1NjgyNTMiPiLXm9eo15jXmdehINeULVNEINek15LXldedLiDXoNeh15Qg15zXpNeo157XmCDXkNeV16rXlSDXnteX15PXqS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMTY2MTY4MzAzMTMzMDk1MTA3MyI+IteQ15fXodeV158gVVNCINeU15XXodeoINeR15DXldek158g15HXnNeq15kg16bXpNeV15kiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODcyMTUyODgyNjA0NDA3ODM3Ij4i15vXqNeY15nXoSBTRCDXlNeV16HXqCDXkdeQ15XXpNefINec15Ag16bXpNeV15kiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MzI5ODQ4ODE5ODY1NTk0MjQxIj4i15HXmNecINeY16LXmdeg15Qg16nXnCDXkNeX16HXldefIFVTQiDXnNek16DXmSDXlNeh16jXqteVINeb15PXmSDXnNee16DXldeiINeQ15XXkdeT158g16DXqteV16DXmdedLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzI2MDE4MzI5Mzc0NzQ0ODI0MSI+IteR15jXnCDXkNeqINeY16LXmdeg16og15vXqNeY15nXoSBTRCDXnNek16DXmSDXlNeh16jXqteVINeb15PXmSDXnNee16DXldeiINeQ15XXkdeT158g16DXqteV16DXmdedLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5Njc5NzM4OTMyNzAzNjAyMzAiPiLXoNeZ16rXnyDXnNeU16HXmdeoINeQ16og15DXntem16LXmSDXlNeQ15fXodeV158g157XodeV15IgVVNCINeR15HXmNeX15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY3Mjk4MDExMzA3OTA2MTYyMDAiPiLXkNek16nXqCDXnNeU16HXmdeoINeQ16og15vXqNeY15nXoSBTRCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE0MjE5NTM2MTYwNjQ5MzUzMCI+IteQ16rXlCDXmdeb15XXnCDXnNeU16HXmdeoINeR15HXmNeX15Qg15DXqiDXkNeX16HXldefINeULVVTQi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTY4ODQxMjc4MTM4Mzc3NjA0Ij4i16DXmdeq158g15zXlNeh15nXqCDXkdeR15jXl9eUINeb16jXmNeZ16EgU0QuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ0ODYzNzcyMzAxNDAyMjc2NTEiPiLXkNeX16HXldefIFVTQiDXlNeV16HXqCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MDI1MTgwMzA0MDQzODEzMTgiPiLXm9eo15jXmdehIFNEINeU15XXodeoIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjkyMTEyNjE2MjU4MDU3NDE0MyI+IteQ15fXodeV158gVVNCINeU15XXodeoLiDXlNeb16DXoSDXnteT15nXlCDXl9eT16nXlC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM4NzAxMjA2NTI5ODM2NTk2NDEiPiLXm9eo15jXmdehIFNEINeU15XXodeoLiDXlNeb16DXoSDXm9eo15jXmdehINeX15PXqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzc4ODA0MDc0NTY4NjIyOTMwNyI+IuKAj9eQ157Xptei15kg15DXl9eh15XXnyDXqNeZ16cg157XodeV15IgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzgwNDc3ODM4MjQxMjEyOTk3Ij4i4oCP15vXqNeY15nXoSBTRCDXqNeZ16ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3ODQwMTIxMDY3NDI3MjY5NTAwIj4i4oCP15DXl9eh15XXnyDXlC1VU0Ig16jXmdenINeQ15Ug16nXntei16jXm9eqINeU16fXkdem15nXnSDXqdec15Ug15DXmdeg15Qg16DXqtee15vXqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2NDEwNjU2NDE3ODY5MjM2MDQiPiLigI/Xm9eo15jXmdehINeULVNEINeo15nXpyDXkNeVINep157Xoteo15vXqiDXlNen15HXpteZ150g16nXnNeVINeQ15nXoNeUINeg16rXnteb16ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIyMDkwMDQ2NzY5NTMyNzEzNTYzIj4i4oCP15DXntem16LXmSDXkNeX16HXldefINek15LXldedINee16HXldeSIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NDEwNzIzOTA2MDE5MTAwMTg5Ij4i4oCP15vXqNeY15nXoSBTRCDXpNeS15XXnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIxNzk1OTE3NTc4Mzk1MzMzMjgwIj4i4oCP15DXl9eh15XXnyDXlC1VU0Ig16TXkteV150uINeg16HXlCDXnNek16jXnteYINeQ15XXqteVINee15fXk9epLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE3NTM4OTg1Njc1MjU1NjgyNTMiPiLigI/Xm9eo15jXmdehINeULVNEINek15LXldedLiDXoNeh15Qg15zXpNeo157XmCDXkNeV16rXlSDXnteX15PXqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMTY2MTY4MzAzMTMzMDk1MTA3MyI+IuKAj9eQ15fXodeV158gVVNCINeU15XXodeoINeR15DXldek158g15HXnNeq15kg16bXpNeV15kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODcyMTUyODgyNjA0NDA3ODM3Ij4i4oCP15vXqNeY15nXoSBTRCDXlNeV16HXqCDXkdeQ15XXpNefINec15Ag16bXpNeV15kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MzI5ODQ4ODE5ODY1NTk0MjQxIj4i4oCP15HXmNecINeY16LXmdeg15Qg16nXnCDXkNeX16HXldefIFVTQiDXnNek16DXmSDXlNeh16jXqteVINeb15PXmSDXnNee16DXldeiINeQ15XXkdeT158g16DXqteV16DXmdedLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzI2MDE4MzI5Mzc0NzQ0ODI0MSI+IuKAj9eR15jXnCDXkNeqINeY16LXmdeg16og15vXqNeY15nXoSBTRCDXnNek16DXmSDXlNeh16jXqteVINeb15PXmSDXnNee16DXldeiINeQ15XXkdeT158g16DXqteV16DXmdedLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5Njc5NzM4OTMyNzAzNjAyMzAiPiLigI/XoNeZ16rXnyDXnNeU16HXmdeoINeQ16og15DXntem16LXmSDXlNeQ15fXodeV158g157XodeV15IgVVNCINeR15HXmNeX15QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY3Mjk4MDExMzA3OTA2MTYyMDAiPiLigI/XkNek16nXqCDXnNeU16HXmdeoINeQ16og15vXqNeY15nXoSBTRCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE0MjE5NTM2MTYwNjQ5MzUzMCI+IuKAj9eQ16rXlCDXmdeb15XXnCDXnNeU16HXmdeoINeR15HXmNeX15Qg15DXqiDXkNeX16HXldefINeULVVTQi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTY4ODQxMjc4MTM4Mzc3NjA0Ij4i4oCP16DXmdeq158g15zXlNeh15nXqCDXkdeR15jXl9eUINeb16jXmNeZ16EgU0QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ0ODYzNzcyMzAxNDAyMjc2NTEiPiLigI/XkNeX16HXldefIFVTQiDXlNeV16HXqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MDI1MTgwMzA0MDQzODEzMTgiPiLigI/Xm9eo15jXmdehIFNEINeU15XXodeoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjkyMTEyNjE2MjU4MDU3NDE0MyI+IuKAj9eQ15fXodeV158gVVNCINeU15XXodeoLiDXlNeb16DXoSDXnteT15nXlCDXl9eT16nXlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM4NzAxMjA2NTI5ODM2NTk2NDEiPiLigI/Xm9eo15jXmdehIFNEINeU15XXodeoLiDXlNeb16DXoSDXm9eo15jXmdehINeX15PXqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9saXN0X2VtcHR5IiBtc2dpZD0iMTY3NTM4ODMzMDc4Njg0MTA2NiI+Itec15Ag16DXntem15DXlSDXpNei15nXnNeV15nXldeqINeq15XXkNee15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BrZ1VzYWdlU3RhdHMiIG1zZ2lkPSI4Nzg3MzUyMDc0MzI2NzQ4ODkyIj4i16LXk9eb158g16DXqteV16DXmdedINeh15jXmNeZ16HXmNeZ15nXnSDXotecINep15nXnteV16kg15HXqNeb15nXkSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BrZ1VzYWdlU3RhdHMiIG1zZ2lkPSIxMTA2NjEyNDI0MjU0Mjc3NjMwIj4i157XkNek16nXqCDXnNeQ16TXnNeZ16fXpteZ15Qg15zXqdeg15XXqiDXodeY15jXmdeh15jXmden15XXqiDXqdeZ157XldepINep16DXkNeh16TXlSDXnNeS15HXmSDXqNeb15nXkdeZ150g16nXldeg15nXnS4g15zXkCDXnteZ15XXoteTINec16nXmdee15XXqSDXotecINeZ15PXmSDXkNek15zXmden16bXmdeV16og16jXkteZ15zXldeqLiI8L3N0cmluZz4KQEAgLTEzMDYsNyArMTMxMyw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xfa2V5Z3VhcmQiIG1zZ2lkPSIxNzIxOTUxODQyMDc4MjgzODciPiLXqdec15XXmCDXkdeU16bXkteUINeV15TXodeq16jXlCDXqdecINee15LXnyDXlNee16fXnNeT16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sX2tleWd1YXJkIiBtc2dpZD0iMzA0MzczMjI5MDUxODYyOTA2MSI+Itee15DXpNep16gg15zXkNek15zXmden16bXmdeUINec16nXnNeV15gg15HXnteS158g15TXnten15zXk9eqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InR1dG9yaWFsX2RvdWJsZV90YXBfdG9fem9vbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNDA3MDQzMzIwODE2MDA2MzUzOCI+IteS16Ig16TXotee15nXmdedINec15HXp9eo16og157XqNeX16cg157Xqtem15XXkteUIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZ2FkZ2V0X2hvc3RfZXJyb3JfaW5mbGF0aW5nIiBtc2dpZD0iNDg4MjAwNDMxNDkwNjQ2NjE2MiI+Itec15Ag16DXmdeq158g15zXlNeV16HXmdejIHdpZGdldC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnYWRnZXRfaG9zdF9lcnJvcl9pbmZsYXRpbmciIG1zZ2lkPSI0ODgyMDA0MzE0OTA2NDY2MTYyIj4i4oCP15zXkCDXoNeZ16rXnyDXnNeU15XXodeZ16Mgd2lkZ2V0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZ28iIG1zZ2lkPSI4MzIwODQ1NjUxNzM3MzY5MDI3Ij4i15TXqteX15wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3NlYXJjaCIgbXNnaWQ9IjY1ODExMDI3MTgyMjgwNzgxMSI+IteX16TXqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fc2VuZCIgbXNnaWQ9IjIzMTYxNjY1NTYzNDkzMTQ0MjQiPiLXqdec15ciPC9zdHJpbmc+CkBAIC0xMzI5LDEzICsxMzM2LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJ3YWxscGFwZXJfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjEyNDAwODc4NDQzMDQ2ODc2NjIiPiLXmNek15giPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VyX3dhbGxwYXBlciIgbXNnaWQ9Ijc4NzM0NzYxOTkyOTUxOTAyNzkiPiLXqdeg15Qg15jXpNeYIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibm90aWZpY2F0aW9uX2xpc3RlbmVyX2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSIyMDE0MTYyODM1NDgxOTA2NDI5Ij4i157XkNeW15nXnyDXnNeU16rXqNeQ15XXqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InZwbl90aXRsZSIgbXNnaWQ9IjE5NjE1MjEzNTUyMDQyODI3Ij4iVlBOINee15XXpNei15wiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ2cG5fdGl0bGVfbG9uZyIgbXNnaWQ9IjY0MDA3MTQ3OTgwNDkyNTIyOTQiPiJWUE4g157Xldek16LXnCDXotecINeZ15PXmSA8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGl0bGUiIG1zZ2lkPSIxOTYxNTIxMzU1MjA0MjgyNyI+IuKAj1ZQTiDXnteV16TXotecIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RpdGxlX2xvbmciIG1zZ2lkPSI2NDAwNzE0Nzk4MDQ5MjUyMjk0Ij4i4oCPVlBOINee15XXpNei15wg16LXnCDXmdeT15kgPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idnBuX3RleHQiIG1zZ2lkPSIzMDExMzA2NjA3MTI2NDUwMzIyIj4i15LXoiDXm9eT15kg15zXoNeU15wg15DXqiDXlNeo16nXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGV4dF9sb25nIiBtc2dpZD0iNjQwNzM1MTAwNjI0OTE3NDQ3MyI+Itee15fXldeR16gg15DXnCA8eGxpZmY6ZyBpZD0iU0VTU0lPTiI+JXM8L3hsaWZmOmc+LiDXkteiINeb15PXmSDXnNeg15TXnCDXkNeqINeU16jXqdeqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0aW5nIiBtc2dpZD0iNjQ0MzQzODk2NDQ0MDk2MDc0NSI+IteULVZQTiDXqdee15XXpNei15wg16rXnteZ15MsINee16rXl9eR16guLi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29ubmVjdGVkIiBtc2dpZD0iODIwMjY3OTY3NDgxOTIxMzkzMSI+IteULVZQTiDXqdek15XXotecINeq157XmdeTLCDXnteX15XXkdeoIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Vycm9yIiBtc2dpZD0iNjAwOTI0OTgxNDAzNDcwODE3NSI+Itep15LXmdeQ16ogVlBOINep157Xldek16LXnCDXqtee15nXkyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0aW5nIiBtc2dpZD0iNjQ0MzQzODk2NDQ0MDk2MDc0NSI+IuKAj9eULVZQTiDXqdee15XXpNei15wg16rXnteZ15MsINee16rXl9eR16guLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29ubmVjdGVkIiBtc2dpZD0iODIwMjY3OTY3NDgxOTIxMzkzMSI+IuKAj9eULVZQTiDXqdek15XXotecINeq157XmdeTLCDXnteX15XXkdeoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Vycm9yIiBtc2dpZD0iNjAwOTI0OTgxNDAzNDcwODE3NSI+IuKAj9ep15LXmdeQ16ogVlBOINep157Xldek16LXnCDXqtee15nXkyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25maWciIG1zZ2lkPSI2NDE1ODk5MTUwNjcxNTM3OTcwIj4i15LXoiDXm9eT15kg15zXlNeS15PXmdeoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXBsb2FkX2ZpbGUiIG1zZ2lkPSIyODk3OTU3MTcyMzY2NzMwNDE2Ij4i15HXl9eoINen15XXkdelIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibm9fZmlsZV9jaG9zZW4iIG1zZ2lkPSI2MzYzNjQ4NTYyMTcwNzU5NDY1Ij4i15zXkCDXoNeR15fXqCDXp9eV15HXpSI8L3N0cmluZz4KQEAgLTEzNTksMTggKzEzNjYsMTggQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NjQxODcyNzk3MDY3NjA5MTc3Ij4iPHhsaWZmOmcgaWQ9IklOREVYIj4lZDwveGxpZmY6Zz4g157XqteV15ogPHhsaWZmOmcgaWQ9IlRPVEFMIj4lZDwveGxpZmY6Zz4iPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fbW9kZV9kb25lIiBtc2dpZD0iNzIxNzU4MTY0MDQ2MTkyMjI4OSI+Iteh15nXldedIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfdW5tb3VudGluZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzOTIzODEwNDQ4NTA3NjEyNzQ2Ij4i157XkdeY15wg15jXoteZ16DXlCDXqdecINeQ15fXodeV158gVVNCLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfdW5tb3VudGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjEzMjc4OTQ5OTg0MDk1MzcxOTAiPiLXnteR15jXnCDXmNei15nXoNeUINep15wg15vXqNeY15nXoSBTRC4uLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX2VyYXNpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDUyMTU3MzMyMTUyNDM0MDA1OCI+Itee15XXl9enINeQ15fXodeV158gVVNCLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfZXJhc2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1OTY5ODg4NzU1MDcwNDMwNDIiPiLXnteV15fXpyDXm9eo15jXmdehIFNELi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyOTk3Njk1NjM2MjQ3NzY5NDgiPiLXnNeQINeg15nXqtefINec157Xl9eV16cg15DXqiDXkNeX16HXldefINeULSBVU0IuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzMxNTI0ODY5NjY0NDUxMDkzNSI+Itec15Ag16DXmdeq158g15zXnteX15XXpyDXkNeqINeb16jXmNeZ16Eg15QtU0QuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfYmFkX3JlbW92YWwiIG1zZ2lkPSI3OTYwODY0MDYxMDE2NjAzMjgxIj4i15vXqNeY15nXoSBTRCDXlNeV16HXqCDXnNek16DXmSDXqdeY16LXmdeg16rXlSDXkdeV15jXnNeULiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2NoZWNraW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQxODE4ODcyMDAwOTU2OTY5MyI+IteQ15fXodeV158gVVNCINeg15HXk9enINeb16LXqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJtZWRpYV9jaGVja2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMzQ3NjI1MDM5MDQ4Mjc0ODEiPiLXm9eo15jXmdehIFNEINeg15HXk9enINeb16LXqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yZW1vdmVkIiBtc2dpZD0iNzAwMTUyNjkwNTA1Nzk1MjA5NyI+Iteb16jXmNeZ16EgU0Qg15TXldeh16guIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfc2hhcmVkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjU4MzA4MTQzNDkyNTA4MzQyMjUiPiLXkNeX16HXldefIFVTQiDXoNee16bXkCDXm9ei16og15HXqdeZ157XldepINep15wg157Xl9ep15EuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfc2hhcmVkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTcwNjEzMDU2ODEzMzU0MDQzNSI+Iteb16jXmNeZ16EgU0Qg16DXntem15Ag15vXoteqINeR16nXmdee15XXqSDXqdecINee15fXqdeRLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkyMzgxMDQ0ODUwNzYxMjc0NiI+IuKAj9ee15HXmNecINeY16LXmdeg15Qg16nXnCDXkNeX16HXldefIFVTQi4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMzI3ODk0OTk4NDA5NTM3MTkwIj4i4oCP157XkdeY15wg15jXoteZ16DXlCDXqdecINeb16jXmNeZ16EgU0QuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc19lcmFzaW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ1MjE1NzMzMjE1MjQzNDAwNTgiPiLigI/XnteV15fXpyDXkNeX16HXldefIFVTQi4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX2VyYXNpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NTk2OTg4ODc1NTA3MDQzMDQyIj4i4oCP157XldeX16cg15vXqNeY15nXoSBTRC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcm1hdF9lcnJvciIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2Mjk5NzY5NTYzNjI0Nzc2OTQ4Ij4i4oCP15zXkCDXoNeZ16rXnyDXnNee15fXldenINeQ16og15DXl9eh15XXnyDXlC0gVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcm1hdF9lcnJvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMTUyNDg2OTY2NDQ1MTA5MzUiPiLigI/XnNeQINeg15nXqtefINec157Xl9eV16cg15DXqiDXm9eo15jXmdehINeULVNELiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2JhZF9yZW1vdmFsIiBtc2dpZD0iNzk2MDg2NDA2MTAxNjYwMzI4MSI+IuKAj9eb16jXmNeZ16EgU0Qg15TXldeh16gg15zXpNeg15kg16nXmNei15nXoNeq15Ug15HXldeY15zXlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9jaGVja2luZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MTgxODg3MjAwMDk1Njk2OTMiPiLigI/XkNeX16HXldefIFVTQiDXoNeR15PXpyDXm9ei16ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfY2hlY2tpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MzM0NzYyNTAzOTA0ODI3NDgxIj4i4oCP15vXqNeY15nXoSBTRCDXoNeR15PXpyDXm9ei16ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcmVtb3ZlZCIgbXNnaWQ9IjcwMDE1MjY5MDUwNTc5NTIwOTciPiLigI/Xm9eo15jXmdehIFNEINeU15XXodeoLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3NoYXJlZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI1ODMwODE0MzQ5MjUwODM0MjI1Ij4i4oCP15DXl9eh15XXnyBVU0Ig16DXntem15Ag15vXoteqINeR16nXmdee15XXqSDXqdecINee15fXqdeRLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3NoYXJlZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MDYxMzA1NjgxMzM1NDA0MzUiPiLigI/Xm9eo15jXmdehIFNEINeg157XpteQINeb16LXqiDXkdep15nXnteV16kg16nXnCDXnteX16nXkS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWRpYV91bmtub3duX3N0YXRlIiBtc2dpZD0iNzI5MTkyNzgyMTk3MjkwMzg1Ij4i157Xk9eZ15Qg15fXmdem15XXoNeZ16og15HXntem15Eg15zXkCDXmdeT15XXoi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZSIgbXNnaWQ9IjE3Nzg2ODY2MTgyMzAwMTE5NjQiPiLXqdeq16MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJmaW5kIiBtc2dpZD0iNDgwODI3MDkwMDMyMjk4NTk2MCI+Itee16bXkCI8L3N0cmluZz4KQEAgLTEzOTgsOCArMTQwNSw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfbWludXRlX2J1dHRvbiIgbXNnaWQ9IjYyNDY4MzQ5MzcwODA2ODQ3OTEiPiLXlNek15fXqiDXk9en15QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9pbmNyZW1lbnRfaG91cl9idXR0b24iIG1zZ2lkPSIzNjUyMDU2MDU1ODEwMjIzMTM5Ij4i15TXldeh16Mg16nXoteUIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGVjcmVtZW50X2hvdXJfYnV0dG9uIiBtc2dpZD0iMTM3NzQ3OTg2MzQyOTIxNDc5MiI+IteU16TXl9eqINep16LXlCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2luY3JlbWVudF9zZXRfcG1fYnV0dG9uIiBtc2dpZD0iNDE0NzU5MDY5NjE1MTIzMDg2MyI+IteU15LXk9eoIFBNIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGVjcmVtZW50X3NldF9hbV9idXR0b24iIG1zZ2lkPSI4MzAyMTQwMzUzNTM5NDg2NzUyIj4i15TXkteT16ggQU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9pbmNyZW1lbnRfc2V0X3BtX2J1dHRvbiIgbXNnaWQ9IjQxNDc1OTA2OTYxNTEyMzA4NjMiPiLigI/XlNeS15PXqCBQTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2RlY3JlbWVudF9zZXRfYW1fYnV0dG9uIiBtc2dpZD0iODMwMjE0MDM1MzUzOTQ4Njc1MiI+IuKAj9eU15LXk9eoIEFNIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X21vbnRoX2J1dHRvbiIgbXNnaWQ9IjUzNjk5OTg0NzkwNjc5MzQxMTAiPiLXlNeV16HXoyDXl9eV15PXqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF9tb250aF9idXR0b24iIG1zZ2lkPSIxODMyNjk4OTk1NTQxNzI2MDE5Ij4i15TXpNeX16og15fXldeT16kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9pbmNyZW1lbnRfZGF5X2J1dHRvbiIgbXNnaWQ9IjcxMzA0NjU0MTIzMDgxNzM5MDMiPiLXlNeV16HXoyDXmdeV150iPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IteR15fXqCDXkNek15zXmden16bXmdeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4i15zXkCDXoNeZ16rXnyDXlNeZ15Qg15zXlNek16LXmdecINeQ16ogPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+Itep16rXoyDXotedIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+Itep16rXoyDXotedIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4i15nXk9eZ16og15zXlNeX15zXp9eULiDXkteiINeV15TXl9eW16cuIjwvc3RyaW5nPgpAQCAtMTQzMiwyMyArMTQ0MCwyMyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTI5MzYwMDQ5NjYwMTQ5MDIxNiI+Iteg15XXldeYINec15PXoyDXlNeR15nXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMjM3NDk2NTYyOTUyMTUyNTg5Ij4i16DXldeV15gg15zXntei15zXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9tZW51X292ZXJmbG93X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjI5NTY1OTAzNzUwOTAwODQ1MyI+IteQ16TXqdeo15XXmdeV16og16DXldeh16TXldeqIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX2Rlc2NyaXB0aW9uX2Zvcm1hdCIgbXNnaWQ9Ijc5NjU5ODQzNjA5MDM2OTM5MDMiPiIlMSRz4oCPLCAlMiRzIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX3N1YnRpdGxlX2Rlc2NyaXB0aW9uX2Zvcm1hdCIgbXNnaWQ9IjY5ODU1NDY1MzA0NzE3ODA3MjciPiIlMSRz4oCPLCAlMiRz4oCPLCAlMyRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX2Rlc2NyaXB0aW9uX2Zvcm1hdCIgbXNnaWQ9Ijc5NjU5ODQzNjA5MDM2OTM5MDMiPiLigI8lMSRz4oCPLCAlMiRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX3N1YnRpdGxlX2Rlc2NyaXB0aW9uX2Zvcm1hdCIgbXNnaWQ9IjY5ODU1NDY1MzA0NzE3ODA3MjciPiLigI8lMSRz4oCPLCAlMiRz4oCPLCAlMyRzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RvcmFnZV9pbnRlcm5hbCIgbXNnaWQ9IjQ4OTE5MTY4MzM2NTc5MjkyNjMiPiLXkNeX16HXldefINek16DXmdee15kiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3NkX2NhcmQiIG1zZ2lkPSIzMjgyOTQ4ODYxMzc4Mjg2NzQ1Ij4i15vXqNeY15nXoSBTRCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfdXNiIiBtc2dpZD0iMzAxNzk1NDA1OTUzODUxNzI3OCI+IteQ15fXodeV158gVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RvcmFnZV9zZF9jYXJkIiBtc2dpZD0iMzI4Mjk0ODg2MTM3ODI4Njc0NSI+IuKAj9eb16jXmNeZ16EgU0QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3VzYiIgbXNnaWQ9IjMwMTc5NTQwNTk1Mzg1MTcyNzgiPiLigI/XkNeX16HXldefIFVTQiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV4dHJhY3RfZWRpdF9tZW51X2J1dHRvbiIgbXNnaWQ9Ijg5NDA0Nzg3MzA0OTY2MTAxMzciPiLXoteo15XXmiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2FybmluZ190aXRsZSIgbXNnaWQ9IjE5NTU2Mzg4NjIxMjIyMzIzNDIiPiLXkNeW15TXqNeqINep15nXnteV16kg15HXoNeq15XXoNeZ150iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dhcm5pbmdfYm9keSIgbXNnaWQ9IjI4MTQ2NzM1NTE0NzE5Njk5NTQiPiLXkteiINeb15PXmSDXnNeU16bXmdeSINeg16rXldeg15kg16nXmdee15XXqSDXldeU15LXk9eo15XXqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzA5MzMzNDQxOTUxODcwNjY4NiI+Iteg16rXldeg15kgMkctM0cg157Xldep15HXqteZ150iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzRnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzYzNjQ4OTQzNjgxOTQ3MDc2MSI+Iteg16rXldeg15kgNEcg157Xldep15HXqteZ150iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzA5MzMzNDQxOTUxODcwNjY4NiI+IuKAj9eg16rXldeg15kgMkctM0cg157Xldep15HXqteZ150iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzRnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzYzNjQ4OTQzNjgxOTQ3MDc2MSI+IuKAj9eg16rXldeg15kgNEcg157Xldep15HXqteZ150iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX21vYmlsZV9saW1pdF90aXRsZSIgbXNnaWQ9Ijc4Njk0MDI1MTkzOTE2MzE4ODQiPiLXoNeq15XXoNeZ150g15zXoNeZ15nXkyDXnteV16nXkdeq15nXnSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2lmaV9saW1pdF90aXRsZSIgbXNnaWQ9Ijg5OTIxNTQ3MzY0NDEyODQ4NjUiPiLXoNeq15XXoNeZIFdpLUZpINeU15XXqdeR16rXlSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2lmaV9saW1pdF90aXRsZSIgbXNnaWQ9Ijg5OTIxNTQ3MzY0NDEyODQ4NjUiPiLigI/XoNeq15XXoNeZIFdpLUZpINeU15XXqdeR16rXlSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbGltaXRfYm9keSIgbXNnaWQ9IjMzMTc5NjQ3MDY5NzM2MDEzODYiPiLXkteiINeb15PXmSDXnNeU16TXoteZ15wiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSI3MDI2NzM5MTIxMTM4MDA1MjMxIj4i15DXmdeo16LXlCDXl9eo15nXkteUINee157XkteR15zXqiDXlNeg16rXldeg15nXnSDXqdecIDJHLTNHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV80Z19saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iMTEwNjU2Mjc3OTMxMTIwOTAzOSI+IteQ15nXqNei15Qg15fXqNeZ15LXlCDXntee15LXkdec16og15TXoNeq15XXoNeZ150g16nXnCA0RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfM2dfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjcwMjY3MzkxMjExMzgwMDUyMzEiPiLigI/XkNeZ16jXoteUINeX16jXmdeS15Qg157XnteS15HXnNeqINeU16DXqteV16DXmdedINep15wgMkctM0ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzRnX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSIxMTA2NTYyNzc5MzExMjA5MDM5Ij4i4oCP15DXmdeo16LXlCDXl9eo15nXkteUINee157XkteR15zXqiDXlNeg16rXldeg15nXnSDXqdecIDRHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9tb2JpbGVfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjI3OTI0MDU3MjE2NTQxMjE2OCI+IteQ15nXqNei15Qg15fXqNeZ15LXlCDXntee15LXkdec16og15TXoNeq15XXoNeZ150g15zXoNeZ15nXkyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2lmaV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iODc0Mzg1NjAwNjM4NDgyNTk3NCI+IteQ15nXqNei15Qg15fXqNeZ15LXlCDXntee15LXkdec16og15TXoNeq15XXoNeZ150g16nXnCBXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2lmaV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iODc0Mzg1NjAwNjM4NDgyNTk3NCI+IuKAj9eQ15nXqNei15Qg15fXqNeZ15LXlCDXntee15LXkdec16og15TXoNeq15XXoNeZ150g16nXnCBXaS1GaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbGltaXRfc25vb3plZF9ib2R5IiBtc2dpZD0iNzAzNTQ5MDI3ODI5ODQ0MTc2NyI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lczwveGxpZmY6Zz4g157XotecINec157XkteR15zXlCDXqdem15XXmdeg15QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9yZXN0cmljdGVkX3RpdGxlIiBtc2dpZD0iNTk2NTE1NzM2MTAzNjMyMTkxNCI+Iteg16rXldeg15kg15TXqNen16Ig157XldeS15HXnNeZ150iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3Jlc3RyaWN0ZWRfYm9keSIgbXNnaWQ9IjY3NDE1MjEzMzA5OTc0NTI5OTAiPiLXkteiINeb15PXmSDXnNeU16HXmdeoINeQ16og15TXlNeS15HXnNeULiI8L3N0cmluZz4KQEAgLTE0NjQsOCArMTQ3Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJleHBpcmVzX29uIiBtc2dpZD0iMzY3NjI0Mjk0OTkxNTk1OTgyMSI+Iteq15DXqNeZ15og16rXpNeV15LXlDoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZXJpYWxfbnVtYmVyIiBtc2dpZD0iNzU4ODE0MDY3NjYwODYyNDkzIj4i157Xodek16gg16HXmdeT15XXqNeZOiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImZpbmdlcnByaW50cyIgbXNnaWQ9IjQ1MTYwMTk2MTk4NTA3NjMwNDkiPiLXmNeR15nXoteV16og15DXpteR16I6Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic2hhMjU2X2ZpbmdlcnByaW50IiBtc2dpZD0iNDM5MTI3MTI4NjQ3NzI3OTI2MyI+IteY15HXmdei16og15DXpteR16IgU0hBLTI1NjoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzaGExX2ZpbmdlcnByaW50IiBtc2dpZD0iNzkzMDMzMDIzNTI2OTQwNDU4MSI+IteY15HXmdei16og15DXpteR16IgU0hBLTE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhMjU2X2ZpbmdlcnByaW50IiBtc2dpZD0iNDM5MTI3MTI4NjQ3NzI3OTI2MyI+IuKAj9eY15HXmdei16og15DXpteR16IgU0hBLTI1NjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGExX2ZpbmdlcnByaW50IiBtc2dpZD0iNzkzMDMzMDIzNTI2OTQwNDU4MSI+IuKAj9eY15HXmdei16og15DXpteR16IgU0hBLTE6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfY2hvb3Nlcl92aWV3X3NlZV9hbGwiIG1zZ2lkPSI0MjkyNTY5MzgzOTc2NjM2MjAwIj4i15TXpteSINeU15vXnCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2Nob29zZXJfdmlld19kaWFsb2dfdGl0bGVfZGVmYXVsdCIgbXNnaWQ9IjQ3MTAwMTM4NjQ5NzQwNDA2MTUiPiLXkdeX16gg16TXoteZ15zXldeqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfYWN0aW9uX3Byb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI1MjQ3Njg0NDM1OTc5MTQ5MjE2Ij4i16nXqtejINei150iPC9zdHJpbmc+CkBAIC0xNDgxLDcgKzE0ODksNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lX2RvY2tfc3BlYWtlcnMiIG1zZ2lkPSI2MjQwNjAyOTgyMjc2NTkxODY0Ij4i16jXnten15XXnNeZ150g16nXnCDXntei15LXnyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfbWVkaWFfcm91dGVfbmFtZV9oZG1pIiBtc2dpZD0iMjQ1MDk3MDM5OTAyMzQ3ODA1NSI+IkhETUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX2NhdGVnb3J5X25hbWUiIG1zZ2lkPSIzNzIyODExMTc0MDAzODg2OTQ2Ij4i157Xoteo15vXqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImJsdWV0b290aF9hMmRwX2F1ZGlvX3JvdXRlX25hbWUiIG1zZ2lkPSI4NTc1NjI0MDMwNDA2NzcxMDE1Ij4i15DXldeT15nXlSBCbHVldG9vdGgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfYTJkcF9hdWRpb19yb3V0ZV9uYW1lIiBtc2dpZD0iODU3NTYyNDAzMDQwNjc3MTAxNSI+IuKAj9eQ15XXk9eZ15UgQmx1ZXRvb3RoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2lyZWxlc3NfZGlzcGxheV9yb3V0ZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjkwNzAzNDY0MjUwMjM5Nzk2NTEiPiLXpteSINeQ15zXl9eV15jXmSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX2Nob29zZXJfZ3JvdXBpbmdfZG9uZSIgbXNnaWQ9Ijc5NjY0MzgzMDc3MjMzMTcxNjkiPiLXodeZ15XXnSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX2J1dHRvbl9jb250ZW50X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTc1ODU1MzU2NzA2NTE0NTI3NiI+Itek15zXmCDXnteT15nXlCI8L3N0cmluZz4KQEAgLTE0OTEsOSArMTQ5OSw5IEBACiAgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfbm90X2F2YWlsYWJsZSIgbXNnaWQ9IjY3Mzk4OTk5NjI2ODE4ODY0MDEiPiLXnNeQINeW157XmdefIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2luX3VzZSIgbXNnaWQ9IjQ1MzM3ODYwMzEwOTAxOTgwNjMiPiLXkdep15nXnteV16kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfYnVpbHRfaW5fZGlzcGxheV9uYW1lIiBtc2dpZD0iMjU4MzEzNDI5NDI5MjU2Mzk0MSI+Itee16HXmiDXnteV15HXoNeUIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX2hkbWlfZGlzcGxheV9uYW1lIiBtc2dpZD0iMTU1NTI2NDU1OTIyNzQ3MDEwOSI+Itee16HXmiBIRE1JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX2hkbWlfZGlzcGxheV9uYW1lIiBtc2dpZD0iMTU1NTI2NDU1OTIyNzQ3MDEwOSI+IuKAj9ee16HXmiBIRE1JIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9uYW1lIiBtc2dpZD0iNTE0MjM2NTk4MjI3MTYyMDcxNiI+Itep15vXkdeqINei15wgIzx4bGlmZjpnIGlkPSJJRCI+JTEkZDwveGxpZmY6Zz4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X3RpdGxlIiBtc2dpZD0iNjUyMTI0NTE3NjcyMjU3MTcyIj4iPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+OiDigI48eGxpZmY6ZyBpZD0iV0lEVEgiPiUyJGQ8L3hsaWZmOmc+eDx4bGlmZjpnIGlkPSJIRUlHSFQiPiUzJGQ8L3hsaWZmOmc+4oCOLCDigI88eGxpZmY6ZyBpZD0iRFBJIj4lNCRkPC94bGlmZjpnPiBkcGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X3RpdGxlIiBtc2dpZD0iNjUyMTI0NTE3NjcyMjU3MTcyIj4i4oCPPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+OiDigI48eGxpZmY6ZyBpZD0iV0lEVEgiPiUyJGQ8L3hsaWZmOmc+eDx4bGlmZjpnIGlkPSJIRUlHSFQiPiUzJGQ8L3hsaWZmOmc+4oCOLCDigI88eGxpZmY6ZyBpZD0iRFBJIj4lNCRkPC94bGlmZjpnPiBkcGkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X3NlY3VyZV9zdWZmaXgiIG1zZ2lkPSI2MDIyMTE5NzAyNjI4NTcyMDgwIj4iLCDXnteQ15XXkdeY15ciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjIyMzA1MDY0OTI0MDMyNjU1NyI+Itee16HXmiDXkNec15fXldeY15kg157Xl9eV15HXqCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IndpZmlfZGlzcGxheV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjQ0OTg4MDIwMTI0NjQxNzA2ODUiPiLXnteh15og15bXlCDXnteV16bXkiDXkdee15vXqdeZ16gg15DXl9eoIjwvc3RyaW5nPgpAQCAtMTUwMiwzMCArMTUxMCwzMCBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSI4ODUyMDIxNDY3ODY4MjIwNjA4Ij4i16nXm9eX16og15DXqiDXlNen15UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXR0ZXJuIiBtc2dpZD0iMTg1MDgwNjA3MDgwMTM1ODgzMCI+Iten15Ug15HXmdeY15XXnCDXoNei15nXnNeUINep15LXldeZIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGFzc3dvcmQiIG1zZ2lkPSIyMzMzMjgxNzYyMTI4MTEzMTU3Ij4i16HXmdeh157XlCDXqdeS15XXmdeUIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGluIiBtc2dpZD0iMTEzMTMwNjUxMDgzMzU2MzgwMSI+Itee16HXpNeoIFBJTiDXqdeS15XXmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiLigI/Xnteh16TXqCBQSU4g16nXkteV15kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfY291bnRkb3duIiBtc2dpZD0iNjM1ODExMDIyMTYwMzI5NzU0OCI+Iteg16HXlCDXqdeV15Eg15HXoteV15MgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JTEkZDwveGxpZmY6Zz4g16nXoNeZ15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5ODk3ODYxMTY4MzA3NTg2OCI+Itep16jXmNeYINeQ16og16fXlSDXkdeZ15jXldecINeU16DXoteZ15zXlCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV9waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjMxOTUwODU1MDkzNDU1NzMzMSI+IteU15bXnyDXnteh16TXqCBQSU4g15wtU0lNIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiLXlNeW158g157Xodek16ggUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4i4oCP15TXltefINee16HXpNeoIFBJTiDXnC1TSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IuKAj9eU15bXnyDXnteh16TXqCBQSU4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1NzUzNjQ2NTU2MTg2OTM2ODE5Ij4i15TXltefINeQ16og15TXodeZ16HXnteUIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4i15vXqNeY15nXoSDXlC1TSU0g157Xldep15HXqiDXm9ei16ouINeU15bXnyDXp9eV15MgUFVLINeb15PXmSDXnNeU157XqdeZ15ouINek16DXlCDXkNecINeU16HXpNenINec16TXqNeY15nXnS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i15TXltefINeQ16og16fXldeTINeULVBJTiDXlNeo16bXldeZIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IteQ16nXqCDXkNeqINen15XXkyDXlC1QSU4g15TXqNem15XXmSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4i157XkdeY15wg16DXoteZ15zXlCDXqdecINeb16jXmNeZ16EgU0lN4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i16fXldeTIFBJTiDXqdeS15XXmS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLXlNen15zXkyDXnteh16TXqCBQSU4g16nXkNeV16jXm9eVIDQg16LXkyA4INeh16TXqNeV16ouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4i16fXldeTIFBVSyDXpteo15nXmiDXnNeU15nXldeqINeR158gOCDXodek16jXldeqINeQ15Ug15nXldeq16guIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i15TXltefINee15fXk9epINeQ16og16fXldeTIFBVSyDXlNeg15vXldefLiDXoNeZ16HXmdeV16DXldeqINeX15XXlteo15nXnSDXmdep15HXmdeq15Ug15zXptee15nXqteV16og15DXqiDXm9eo15jXmdehINeULVNJTS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4i16fXldeT15kg15QtUElOINeQ15nXoNedINeq15XXkNee15nXnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+IuKAj9eb16jXmNeZ16Eg15QtU0lNINee15XXqdeR16og15vXoteqLiDXlNeW158g16fXldeTIFBVSyDXm9eT15kg15zXlNee16nXmdeaLiDXpNeg15Qg15DXnCDXlNeh16TXpyDXnNek16jXmNeZ150uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IuKAj9eU15bXnyDXkNeqINen15XXkyDXlC1QSU4g15TXqNem15XXmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLigI/XkNep16gg15DXqiDXp9eV15Mg15QtUElOINeU16jXpteV15kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IuKAj9ee15HXmNecINeg16LXmdec15Qg16nXnCDXm9eo15jXmdehIFNJTeKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IuKAj9en15XXkyBQSU4g16nXkteV15kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4i4oCP15TXp9ec15Mg157Xodek16ggUElOINep15DXldeo15vXlSA0INei15MgOCDXodek16jXldeqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IuKAj9en15XXkyBQVUsg16bXqNeZ15og15zXlNeZ15XXqiDXkdefIDgg16HXpNeo15XXqiDXkNeVINeZ15XXqteoLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IuKAj9eU15bXnyDXnteX15PXqSDXkNeqINen15XXkyBQVUsg15TXoNeb15XXny4g16DXmdeh15nXldeg15XXqiDXl9eV15bXqNeZ150g15nXqdeR15nXqteVINec16bXnteZ16rXldeqINeQ16og15vXqNeY15nXoSDXlC1TSU0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9jb25maXJtX3Bpbl9oaW50IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzAwMzQ2OTI2MTQ2NDU5MzUxNiI+IuKAj9en15XXk9eZINeULVBJTiDXkNeZ16DXnSDXqteV15DXnteZ150iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjY0ODY4NDIwOTQwMDU2OTg0NzUiPiLXoNeZ16HXmdeV16DXldeqINeo15HXmdedINee15PXmSDXnNep16jXmNeV15gg16fXlSDXkdeZ15jXldecINeg16LXmdec15QuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMTEwMDU1MTI2MTI2NTUwNjQ0OCI+Iteb15PXmSDXnNeR15jXnCDXkNeqINeU16DXoteZ15zXlCwg15TXmdeb16DXoSDXkdeQ157Xptei15XXqiDXl9ep15HXldefIEdvb2dsZSDXqdec15ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMTEwMDU1MTI2MTI2NTUwNjQ0OCI+IuKAj9eb15PXmSDXnNeR15jXnCDXkNeqINeU16DXoteZ15zXlCwg15TXmdeb16DXoSDXkdeQ157Xptei15XXqiDXl9ep15HXldefIEdvb2dsZSDXqdec15ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9IjU3MTg1MzQyNzIwNzA5MjAzNjQiPiLXqdedINee16nXqtee16kgKNeT15XXkFwi15wpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjkwNTcyODkxMDM4MjcyOTg1NDkiPiLXodeZ16HXnteUIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiLXlNeZ15vXoNehIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjU3NTQ2NjQxMTkzMTk4NzIxOTciPiLXqdedINee16nXqtee16kg15DXlSDXodeZ16HXnteUINec15Ag15fXlden15nXmdedLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2FjY291bnRfcmVjb3ZlcnlfaGludCIgbXNnaWQ9IjU2OTA3MDkxMzI4NDE3NTI5NzQiPiLXqdeb15fXqiDXkNeqINep150g15TXntep16rXntepINeQ15Ug15TXodeZ16HXnteUP1xu15HXp9eoINeR15vXqteV15HXqiAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IuKAj9ep15vXl9eqINeQ16og16nXnSDXlNee16nXqtee16kg15DXlSDXlNeh15nXodee15Q/XG7Xkden16gg15HXm9eq15XXkdeqICI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjEwNTI2ODUxOTc3MTAyNTIzOTUiPiLXkdeV15PXpyDXl9ep15HXldef4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiLXlNen15zXk9eqINee16HXpNeoIFBJTiDXqdeS15XXmSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDXpNei157XmdedLiBcblxu16DXodeUINep15XXkSDXkdei15XXkyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDXqdeg15nXldeqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i4oCP15TXp9ec15PXqiDXnteh16TXqCBQSU4g16nXkteV15kgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g16TXotee15nXnS4gXG5cbteg16HXlCDXqdeV15Eg15HXoteV15MgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g16nXoNeZ15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3ODEzNzEzMzg5NDIyMjI2NTMxIj4i15TXp9ec15PXqiDXodeZ16HXnteUINep15LXldeZ15QgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g16TXotee15nXnS5cblxu16DXodeUINep15XXkSDXkdei15XXkyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDXqdeg15nXldeqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXR0ZXJuX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzQwODk0NzU5NjUwNTA4MDUiPiLXqdeo15jXmNeqINeQ16og16fXlSDXkdeZ15jXldecINeU16DXoteZ15zXlCDXkdeQ15XXpNefINep15LXldeZIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INek16LXnteZ150uIFxuXG7XoNeh15Qg16nXldeRINeR16LXldeTIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INep16DXmdeV16ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTc1NTU3MjAwNjI3MTI4OTQ5Ij4i15HXmdem16LXqiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDXoNeZ16HXmdeV16DXldeqINep15LXldeZ15nXnSDXnNeR15nXmNeV15wg16DXoteZ15zXqiDXlNeY15zXpNeV158uINec15DXl9eoIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INeg15nXodeZ15XXoNeV16og15vXldep15zXmdedINeg15XXodek15nXnSwg15TXmNeQ15HXnNeYINeZ16LXkdeV16gg15DXmdek15XXoSDXnNeR16jXmdeo16og15TXnteX15PXnCDXqdecINeU15nXpteo158g15XXm9ecINeg16rXldeg15kg15TXntep16rXntepINeZ15DXkdeT15UuIjwvc3RyaW5nPgpAQCAtMTU4NSw5ICsxNTkzLDkgQEAKICAgICA8c3RyaW5nIG5hbWU9Im1lZGlhc2l6ZV9uYV9qdW5pb3JfbGVnYWwiIG1zZ2lkPSIzMzA5MzI0MTYyMTU1MDg1OTA0Ij4iSnVuaW9yIExlZ2FsIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFzaXplX25hX2xlZGdlciIgbXNnaWQ9IjU1NjcwMzAzNDA1MDkwNzUzMzMiPiJMZWRnZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWRpYXNpemVfbmFfdGFibG9pZCIgbXNnaWQ9IjQ1NzE3MzUwMzg1MDE2NjE3NTciPiJUYWJsb2lkIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFzaXplX25hX2luZGV4XzN4NSIgbXNnaWQ9IjUxODI5MDE5MTc4MTg2MjUxMjYiPiLXm9eo15jXmdehINeQ15nXoNeT16fXoSAzeDUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJtZWRpYXNpemVfbmFfaW5kZXhfNHg2IiBtc2dpZD0iNzY4NzYyMDYyNTQyMjMxMjM5NiI+Iteb16jXmNeZ16Eg15DXmdeg15PXp9ehIDR4NiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Im1lZGlhc2l6ZV9uYV9pbmRleF81eDgiIG1zZ2lkPSI4ODM0MjE1Mjg0NjQ2ODcyODAwIj4i15vXqNeY15nXoSDXkNeZ16DXk9en16EgNXg4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFzaXplX25hX2luZGV4XzN4NSIgbXNnaWQ9IjUxODI5MDE5MTc4MTg2MjUxMjYiPiLigI/Xm9eo15jXmdehINeQ15nXoNeT16fXoSAzeDUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYXNpemVfbmFfaW5kZXhfNHg2IiBtc2dpZD0iNzY4NzYyMDYyNTQyMjMxMjM5NiI+IuKAj9eb16jXmNeZ16Eg15DXmdeg15PXp9ehIDR4NiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhc2l6ZV9uYV9pbmRleF81eDgiIG1zZ2lkPSI4ODM0MjE1Mjg0NjQ2ODcyODAwIj4i4oCP15vXqNeY15nXoSDXkNeZ16DXk9en16EgNXg4Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFzaXplX25hX21vbmFyY2giIG1zZ2lkPSIyMTM2Mzk5MDY5NTY1NTA3NTQiPiJNb25hcmNoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFzaXplX25hX3F1YXJ0byIgbXNnaWQ9IjgzNTc3ODQ5MzU5MzAyMzIyMyI+IlF1YXJ0byI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1lZGlhc2l6ZV9uYV9mb29sc2NhcCIgbXNnaWQ9IjE1NzM5MTEyMzc5ODM2NzcxMzgiPiJGb29sc2NhcCI8L3N0cmluZz4KQEAgLTE2MzUsMTkgKzE2NDMsMzAgQEAKICAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl9zZXJ2aWNlX3VuYXZhaWxhYmxlIiBtc2dpZD0iNzgyNDAwODczMjI0MzkwMzI2OCI+Itep15nXqNeV16og15TXlNeT16TXodeUINec15Ag15TXldek16LXnCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlcnZpY2VfaW5zdGFsbGVkX3RpdGxlIiBtc2dpZD0iMjI0NjMxNzE2OTQ0NDA4MTYyOCI+Itep15nXqNeV16ogPHhsaWZmOmcgaWQ9Ik5BTUUiPiVzPC94bGlmZjpnPiDXnteV16rXp9efIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VydmljZV9pbnN0YWxsZWRfbWVzc2FnZSIgbXNnaWQ9IjU4OTczNjI5MzEwNzA0NTkxNTIiPiLXlNen16kg15vXk9eZINec15TXpNei15nXnCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9hZG1pbl9waW4iIG1zZ2lkPSI3ODM2NDM3MzE4OTUxNDM5NzAiPiLXlNeW158g15DXqiDXnteh16TXqCDXlC1QSU4g16nXnCDXnteg15TXnCDXlNee16LXqNeb16oiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfcGluIiBtc2dpZD0iMzM5NTk1MzQyMTM2ODQ3NjEwMyI+IteU15bXnyDXnteh16TXqCBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfYWRtaW5fcGluIiBtc2dpZD0iNzgzNjQzNzMxODk1MTQzOTcwIj4i4oCP15TXltefINeQ16og157Xodek16gg15QtUElOINep15wg157XoNeU15wg15TXntei16jXm9eqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2VudGVyX3BpbiIgbXNnaWQ9IjMzOTU5NTM0MjEzNjg0NzYxMDMiPiLigI/XlNeW158g157Xodek16ggUElOIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2luY29ycmVjdCIgbXNnaWQ9Ijg1NzE1MTIwMDM5NTUwNzc5MjQiPiLXqdeS15XXmSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9vbGRfcGluIiBtc2dpZD0iMTQ2MjIwNjIyNTUxMjkxMDc1NyI+Itee16HXpNeoIFBJTiDXoNeV15vXl9eZIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2VudGVyX25ld19waW4iIG1zZ2lkPSI1OTU5NjA2NjkxNjE5OTU5MTg0Ij4i157Xodek16ggUElOINeX15PXqSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9jb25maXJtX3BpbiIgbXNnaWQ9Ijg1MDE1MjM4Mjk2MzMxNDYyMzkiPiLXkNep16gg15DXqiDXnteh16TXqCDXlC1QSU4g15TXl9eT16kiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fY3JlYXRlX3BpbiIgbXNnaWQ9IjgwMTc2MDAwMDAyNjM0NTAzMzciPiLXpteV16gg157Xodek16ggUElOINec16nXmdeg15XXmSDXlNeS15HXnNeV16oiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZXJyb3JfZG9lc250X21hdGNoIiBtc2dpZD0iMjIyNDIxNDE5MDkwNjk5NDU0OCI+Itee16HXpNeo15kg15QtUElOINec15Ag16rXldeQ157XmdedLiDXoNeh15Qg16nXldeRLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lcnJvcl90b29fc2hvcnQiIG1zZ2lkPSI4MTczOTgyNzU2MjY1Nzc3NzkyIj4i157Xodek16gg15QtUElOINen16bXqCDXnteT15kuINeX15nXmdeRINec15TXmdeV16og15HXkNeV16jXmiA0INeh16TXqNeV16og15zXpNeX15XXqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfb2xkX3BpbiIgbXNnaWQ9IjE0NjIyMDYyMjU1MTI5MTA3NTciPiLigI/Xnteh16TXqCBQSU4g16DXldeb15fXmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9uZXdfcGluIiBtc2dpZD0iNTk1OTYwNjY5MTYxOTk1OTE4NCI+IuKAj9ee16HXpNeoIFBJTiDXl9eT16kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fY29uZmlybV9waW4iIG1zZ2lkPSI4NTAxNTIzODI5NjMzMTQ2MjM5Ij4i4oCP15DXqdeoINeQ16og157Xodek16gg15QtUElOINeU15fXk9epIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2NyZWF0ZV9waW4iIG1zZ2lkPSI4MDE3NjAwMDAwMjYzNDUwMzM3Ij4i4oCP16bXldeoINee16HXpNeoIFBJTiDXnNep15nXoNeV15kg15TXkteR15zXldeqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2Vycm9yX2RvZXNudF9tYXRjaCIgbXNnaWQ9IjIyMjQyMTQxOTA5MDY5OTQ1NDgiPiLigI/Xnteh16TXqNeZINeULVBJTiDXnNeQINeq15XXkNee15nXnS4g16DXodeUINep15XXkS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZXJyb3JfdG9vX3Nob3J0IiBtc2dpZD0iODE3Mzk4Mjc1NjI2NTc3Nzc5MiI+IuKAj9ee16HXpNeoINeULVBJTiDXp9em16gg157Xk9eZLiDXl9eZ15nXkSDXnNeU15nXldeqINeR15DXldeo15ogNCDXodek16jXldeqINec16TXl9eV16ouIjwvc3RyaW5nPgogICA8cGx1cmFscyBuYW1lPSJyZXN0cl9waW5fY291bnRkb3duIj4KICAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzExMDUwOTk1MTk4NTQ4Njc1Ij4i16DXodeUINep15XXkSDXkdei15XXkyDXqdeg15nXmdeUIjwvaXRlbT4KICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NzMwODY4OTIwNzQyOTUyODE3Ij4i16DXodeUINep15XXkSDXkdei15XXkyA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDXqdeg15nXldeqIjwvaXRlbT4KICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+Iteg16HXlCDXqdeV15Eg157XkNeV15fXqCDXmdeV16rXqCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiLXlNeX15zXpyDXnteY15Qg157XlNeX15zXpyDXlNei15zXmdeV158g15vXk9eZINec16bXkNeqINee157XodeaINee15zXkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IteR15XXpteiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4i157Xl9eV15XXnyDXqdei15XXqiDXntei15LXnNeZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiLXnteX15XXldefINeT16fXldeqINee16LXktec15kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4i15HXl9eoINep16LXldeqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4i15HXl9eoINeT16fXldeqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiLXkdeX15nXqNeqINeZ157XmdedINeR15fXldeT16kg15HXqtem15XXkteqINeo16nXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTUyNDMzMTIwNzQzNjA1MjQwMyI+Iteo16nXmdee16og16nXoNeZ150iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IteR15fXqCDXl9eV15PXqSDXldeZ15XXnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+IteR15fXqCDXqdeg15QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+INeg15HXl9eoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4g16DXnteX16ciPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtamEvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWphL3N0cmluZ3MueG1sCmluZGV4IDI0NmE4MmUuLjRhNjVhOGEgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtamEvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1qYS9zdHJpbmdzLnhtbApAQCAtNTAsNiArNTAsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4iUFVL44GvOOahgeS7peS4iuOBp+WFpeWKm+OBl+OBpuOBj+OBoOOBleOBhOOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJTSU3jgqvjg7zjg4njga9QVUvjgafjg63jg4Pjgq/jgZXjgozjgabjgYTjgb7jgZnjgILjg63jg4Pjgq/jgpLop6PpmaTjgZnjgovjgavjga9QVUvjgrPjg7zjg4njgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJTSU3jgqvjg7zjg4njga7jg63jg4Pjgq/op6PpmaTjga7jgZ/jgoFQVUsy44KS5YWl5Yqb44GX44G+44GZ44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iU0lNL1JVSU3jg63jg4Pjgq/jgpLmnInlirnjgavjgZfjgabjgY/jgaDjgZXjgYTjgIIiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiLlhaXlipvjgafjgY3jgovjga7jga/jgYLjgag8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz7lm57jgafjgZnjgILjgZPjga7lm57mlbDjgpLotoXjgYjjgovjgahTSU3jgYzjg63jg4Pjgq/jgZXjgozjgb7jgZnjgIIiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiLlhaXlipvjgafjgY3jgovjga7jga/jgYLjgag8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz7lm57jgafjgZnjgILjgZPjga7lm57mlbDjgpLotoXjgYjjgovjgahTSU3jgYzjg63jg4Pjgq/jgZXjgozjgb7jgZnjgIIiPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IuedgOS/oeaZguOBrueZuuS/oeiAheeVquWPtyI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4iU3VyZmFjZUZsaW5nZXLjga7kvY7jg6zjg5njg6vjga7mqZ/og73jga7kvb/nlKjjgpLjgqLjg5fjg6rjgavoqLHlj6/jgZfjgb7jgZnjgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiLjg5Xjg6zjg7zjg6Djg5Djg4Pjg5XjgqHjga7oqq3jgb/lj5bjgooiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4i44OV44Os44O844Og44OQ44OD44OV44Kh44Gu5YaF5a6544Gu6Kqt44G/5Y+W44KK44KS44Ki44OX44Oq44Gr6Kix5Y+v44GX44G+44GZ44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iSW5wdXRGbGluZ2Vy44G444Gu44Ki44Kv44K744K5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IklucHV0RmxpbmdlcuOBruS9juODrOODmeODq+OBruapn+iDveOCkuS9v+eUqOOBmeOCi+OBk+OBqOOCkuOCouODl+ODquOBq+ioseWPr+OBl+OBvuOBmeOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4iV2ktRmnjg4fjgqPjgrnjg5fjg6zjgqTjga7oqK3lrpoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJXaS1GaeODh+OCo+OCueODl+ODrOOCpOOCkuioreWumuOBl+OBpuaOpee2muOBmeOCi+OBk+OBqOOCkuOCouODl+ODquOBq+ioseWPr+OBl+OBvuOBmeOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4iV2ktRmnjg4fjgqPjgrnjg5fjg6zjgqTjga7liLblvqEiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IuOCouODl+ODquOBrumBuOaKniI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz7jgpLotbfli5XjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiLlhbHmnIkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPuOBqOWFseaciSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiLjgrnjg6njgqTjg4Djg7zjg4/jg7Pjg4njg6vjgafjgZnjgILmirzjgZfntprjgZHjgb7jgZnjgIIiPC9zdHJpbmc+CkBAIC0xNjUwLDQgKzE2NTgsMTUgQEAKICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+IuOBl+OBsOOCieOBj+OBl+OBpuOBi+OCieWGjeippuihjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiLlhajnlLvpnaLooajnpLrjgpLntYLkuobjgZnjgovjgavjga/jgIHkuIrjgYvjgonkuIvjgavjgrnjg6/jgqTjg5ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IuWujOS6hiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IuWGhuW9ouOCueODqeOCpOODgOODvO+8iOaZgu+8iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4i5YaG5b2i44K544Op44Kk44OA44O877yI5YiG77yJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IuaZgumWk+OCkumBuOaKniI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IuWIhuOCkumBuOaKniI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4i5pel44Kw44Oq44OD44OJ77yI5pyI5Yil77yJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4i5bm044Oq44K544OIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2RheSIgbXNnaWQ9Ijc3NzQ3NTk2MDQ3MDE3NzMzMzIiPiLmnIjjgajml6XjgpLpgbjmip4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiLlubTjgpLpgbjmip4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+44KS6YG45oqe44GX44G+44GX44GfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz7jgpLliYrpmaTjgZfjgb7jgZfjgZ8iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwKaW5kZXggYTgwMjVkOC4uYWU3MWQ0MyAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IuGDkOGDmeGDoOGDmOGDpOGDlOGDlyBQVUssIOGDoOGDneGDm+GDlOGDmuGDmOGDqiDhg6Dhg5Xhg5Ag4YOQ4YOcIOGDm+GDlOGDouGDmCDhg6rhg5jhg6Thg6Dhg5jhg6Hhg5Lhg5Dhg5wg4YOo4YOU4YOT4YOS4YOU4YOR4YOQLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiLhg5fhg6Xhg5Xhg5Thg5zhg5ggU0lNIOGDkeGDkOGDoOGDkOGDl+GDmCDhg5Phg5Dhg5Hhg5rhg53hg5nhg5jhg5rhg5jhg5AgUFVLIOGDmeGDneGDk+GDmOGDly4g4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOY4YOh4YOX4YOV4YOY4YOhIOGDqOGDlOGDmOGDp+GDleGDkOGDnOGDlOGDlyBQVUsg4YOZ4YOd4YOT4YOYLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IlNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5jhg6Eg4YOS4YOQ4YOc4YOh4YOQ4YOR4YOa4YOd4YOZ4YOQ4YOTIOGDkOGDmeGDoOGDmOGDpOGDlOGDlyBQVUsyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+IuGDrOGDkOGDoOGDo+GDm+GDkOGDouGDlOGDkeGDlOGDmuGDmCDhg5vhg6rhg5Phg5Thg5rhg53hg5Hhg5AuIOGDqeGDkOGDoOGDl+GDlOGDlyBTSU0vUlVJTSDhg6nhg5Dhg5nhg5Thg6Lhg5Xhg5AuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4i4YOX4YOl4YOV4YOU4YOcIOGDk+GDkOGDkuGDoOGDqeGDkOGDlyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4YOb4YOq4YOT4YOU4YOa4YOd4YOR4YOQLCDhg6Hhg5Dhg5zhg5Dhg5sgU0lNIOGDk+GDkOGDmOGDkeGDmuGDneGDmeGDlOGDkeGDneGDk+GDlOGDoS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiLhg5fhg6Xhg5Xhg5Thg5wg4YOT4YOQ4YOS4YOg4YOp4YOQ4YOXIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhg5vhg6rhg5Phg5Thg5rhg53hg5Hhg5AsIOGDoeGDkOGDnOGDkOGDmyBTSU0g4YOT4YOQ4YOY4YOR4YOa4YOd4YOZ4YOU4YOR4YOd4YOT4YOU4YOhLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4i4YOo4YOU4YOb4YOd4YOb4YOQ4YOV4YOQ4YOa4YOYIOGDluGDkOGDoOGDmOGDoSDhg5Dhg5Hhg53hg5zhg5Thg5zhg6Lhg5jhg6EgSUQiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDneGDoSBTdXJmYWNlRmxpbmdlci3hg5jhg6Eg4YOT4YOQ4YOR4YOQ4YOa4YOYIOGDk+GDneGDnOGDmOGDoSDhg5Thg5rhg5Thg5vhg5Thg5zhg6Lhg5Thg5Hhg5guIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4i4YOZ4YOQ4YOT4YOg4YOY4YOhIOGDkeGDo+GDpOGDlOGDoOGDmOGDoSAo4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDqOGDmOGDkuGDl+GDkOGDleGDoeGDmOGDoSkg4YOs4YOQ4YOZ4YOY4YOX4YOu4YOV4YOQIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOs4YOQ4YOY4YOZ4YOY4YOX4YOu4YOd4YOhIOGDkeGDo+GDpOGDlOGDoOGDo+GDmuGDmCDhg6nhg5Dhg6Dhg6nhg53hg6Eg4YOZ4YOd4YOc4YOi4YOU4YOc4YOi4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+IklucHV0Rmxpbmdlci3hg5bhg5Qg4YOs4YOV4YOT4YOd4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDneGDoSBJbnB1dEZsaW5nZXIt4YOY4YOhIOGDk+GDkOGDkeGDkOGDmuGDmCDhg5Phg53hg5zhg5jhg6Eg4YOk4YOj4YOc4YOl4YOq4YOY4YOU4YOR4YOYLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4iV2lmaSDhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOZ4YOd4YOc4YOk4YOY4YOS4YOj4YOg4YOQ4YOq4YOY4YOQIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCBXaWZpIOGDlOGDmeGDoOGDkOGDnOGDlOGDkeGDl+GDkOGDnCDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg5Ag4YOT4YOQIOGDk+GDkOGDmeGDneGDnOGDpOGDmOGDkuGDo+GDoOGDmOGDoOGDlOGDkeGDkC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+IldpZmkg4YOU4YOZ4YOg4YOQ4YOc4YOU4YOR4YOY4YOhIOGDm+GDkOGDoOGDl+GDleGDkCI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdC0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiLhg6jhg5Thg6fhg5Xhg5Dhg5zhg5AiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiLhg5Dhg57hg5jhg6Eg4YOQ4YOg4YOp4YOU4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiDhg5Xhg5Thg6Ag4YOS4YOQ4YOU4YOo4YOV4YOQIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4i4YOS4YOQ4YOW4YOY4YOQ4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IuGDkuGDkOGDo+GDluGDmOGDkOGDoOGDlOGDlyA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+LeGDoSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiLhg5Lhg5Dhg6Hhg6Dhg5jhg5Dhg5rhg5Thg5Hhg5jhg5cg4YOb4YOQ4YOg4YOX4YOV4YOQLiDhg6jhg5Thg5Thg67hg5Thg5cgJmFtcDsg4YOQ4YOgIOGDkOGDo+GDqOGDleGDkOGDly4iPC9zdHJpbmc+CkBAIC0xNjQ5LDUgKzE2NTcsMTYgQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NzMwODY4OTIwNzQyOTUyODE3Ij4i4YOZ4YOY4YOT4YOU4YOVIOGDlOGDoOGDl+GDruGDlOGDmiDhg6Hhg6rhg5Dhg5Phg5Thg5cgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOb4YOo4YOYIjwvaXRlbT4KICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+IuGDoeGDquGDkOGDk+GDlOGDlyDhg5vhg53hg5Lhg5Xhg5jhg5Dhg5zhg5Thg5Hhg5jhg5ciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4i4YOp4YOQ4YOb4YOd4YOQ4YOh4YOg4YOY4YOQ4YOa4YOU4YOXIOGDluGDlOGDleGDmOGDk+GDkOGDnCDhg6Hhg6Dhg6Phg5rhg5gg4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDk+GDkOGDoeGDkOGDruGDo+GDoOGDkOGDkyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiLhg6nhg5Dhg5vhg53hg5Dhg6Hhg6Dhg5jhg5Dhg5rhg5Thg5cg4YOW4YOU4YOV4YOY4YOT4YOQ4YOcIOGDoeGDoOGDo+GDmuGDmCDhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOT4YOQ4YOh4YOQ4YOu4YOj4YOg4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4i4YOT4YOQ4YOh4YOg4YOj4YOa4YOT4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4i4YOh4YOQ4YOQ4YOX4YOU4YOR4YOY4YOhIOGDrOGDoOGDmOGDo+GDmuGDmCDhg6Hhg5rhg5Dhg5jhg5Phg5Thg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+IuGDrOGDo+GDl+GDlOGDkeGDmOGDoSDhg6zhg6Dhg5jhg6Phg5rhg5gg4YOh4YOa4YOQ4YOY4YOT4YOU4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IuGDkOGDmOGDoOGDqeGDmOGDlOGDlyDhg6Hhg5Dhg5Dhg5fhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiLhg5Dhg5jhg6Dhg6nhg5jhg5Thg5cg4YOs4YOj4YOX4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiLhg5Phg6bhg5Thg5Thg5Hhg5jhg6Eg4YOR4YOQ4YOT4YOUIOGDl+GDleGDlOGDluGDlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTUyNDMzMTIwNzQzNjA1MjQwMyI+IuGDrOGDmuGDmOGDoSDhg6Hhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IuGDkOGDmOGDoOGDqeGDmOGDlOGDlyDhg5fhg5Xhg5Qg4YOT4YOQIOGDoOGDmOGDquGDruGDleGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+IuGDkOGDmOGDoOGDqeGDmOGDlOGDlyDhg6zhg5Thg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4i4YOQ4YOg4YOp4YOU4YOj4YOa4YOY4YOQIDx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+Ijx4bGlmZjpnIGlkPSJLRVkiPiUxJHM8L3hsaWZmOmc+IOGDrOGDkOGDmOGDqOGDkOGDmuGDkCI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1rYS9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMta2Evc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRmYjhkMAotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMta2Evc3RyaW5ncy54bWwKQEAgLTAsMCArMSwxNTg4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qIC8vZGV2aWNlL2FwcHMvY29tbW9uL2Fzc2V0cy9yZXMvYW55L3N0cmluZ3MueG1sCisqKgorKiogQ29weXJpZ2h0IDIwMDYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImJ5dGVTaG9ydCIgbXNnaWQ9IjgzNDA5NzM4OTI3NDIwMTkxMDEiPiJCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2lsb2J5dGVTaG9ydCIgbXNnaWQ9IjU5NzM3ODk3ODM1MDQ3NzE4NzgiPiLhg5nhg5Hhg5Dhg5jhg6Lhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWdhYnl0ZVNob3J0IiBtc2dpZD0iNjM1NTg1MTU3Njc3MDQyODkyMiI+IuGDm+GDkeGDkOGDmOGDouGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdpZ2FieXRlU2hvcnQiIG1zZ2lkPSIzMjU5ODgyNDU1MjEyMTkzMjE0Ij4i4YOS4YOR4YOQ4YOY4YOi4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGVyYWJ5dGVTaG9ydCIgbXNnaWQ9IjIzMTYxMzAxODE1OTE4Njk2MiI+IuGDouGDkeGDkOGDmOGDouGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBldGFieXRlU2hvcnQiIG1zZ2lkPSI1NjM3ODE2NjgwMTQ0OTkwMjE5Ij4iUEIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaWxlU2l6ZVN1ZmZpeCIgbXNnaWQ9IjkxNjQyOTI3OTE1MDA1MzE5NDkiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRzPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJVTklUIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVudGl0bGVkIiBtc2dpZD0iNDYzODk1Njk1NDg1Mjc4MjU3NiI+IuGDo+GDoeGDkOGDl+GDkOGDo+GDoOGDnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVsbGlwc2lzIiBtc2dpZD0iNzg5OTgyOTUxNjA0ODgxMzIzNyI+IuKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVsbGlwc2lzX3R3b19kb3RzIiBtc2dpZD0iMTIyODA3ODk5NDg2NjAzMDczNiI+IuKApSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5UGhvbmVOdW1iZXIiIG1zZ2lkPSI3Njk0MDYzMDQyMDc5Njc2NTE3Ij4iKOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5zhg53hg5vhg6Dhg5jhg6Eg4YOS4YOQ4YOg4YOU4YOo4YOUKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVua25vd25OYW1lIiBtc2dpZD0iMjI3NzU1NjU0Njc0Mjc0NjUyMiI+IuGDo+GDquGDnOGDneGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRWb2ljZU1haWxBbHBoYVRhZyIgbXNnaWQ9IjI2NjAwMjA5OTAwOTc3MzMwNzciPiLhg67hg5vhg53hg5Xhg5Dhg5zhg5gg4YOk4YOd4YOh4YOi4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdE1zaXNkbkFscGhhVGFnIiBtc2dpZD0iMjg1MDg4OTc1NDkxOTU4NDY3NCI+Ik1TSVNETjEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtbWlFcnJvciIgbXNnaWQ9IjUxNTQ0OTk0NTc3MzkwNTI5MDciPiLhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5jhg6Eg4YOe4YOg4YOd4YOR4YOa4YOU4YOb4YOQIOGDkOGDnCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5ggTU1JIOGDmeGDneGDk+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtbWlGZG5FcnJvciIgbXNnaWQ9IjUyMjQzOTgyMTYzODUzMTY0NzEiPiLhg53hg57hg5Thg6Dhg5Dhg6rhg5jhg5Ag4YOo4YOU4YOW4YOm4YOj4YOT4YOj4YOa4YOY4YOQIOGDm+GDruGDneGDmuGDneGDkyDhg5Phg5Dhg6jhg5Xhg5Thg5Hhg6Phg5og4YOc4YOd4YOb4YOg4YOU4YOR4YOW4YOULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VFbmFibGVkIiBtc2dpZD0iODE0NzI3ODM0NjQxNDcxNDMxNSI+IuGDoeGDlOGDoOGDleGDmOGDoeGDmCDhg6nhg5Dhg6Dhg5fhg6Phg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUVuYWJsZWRGb3IiIG1zZ2lkPSI2ODU2MjI4MTQwNDUzNDcxMDQxIj4i4YOh4YOU4YOg4YOV4YOY4YOh4YOYIOGDqeGDkOGDoOGDl+GDo+GDmuGDmOGDkCDhg6jhg5Thg5vhg5Phg5Thg5Lhg5jhg6Hhg5fhg5Xhg5jhg6E6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZURpc2FibGVkIiBtc2dpZD0iMTkzNzU1MzIyNjU5MjUxNjQxMSI+IuGDoeGDlOGDoOGDleGDmOGDoeGDmCDhg5Lhg5Dhg5vhg53hg6Dhg5fhg6Phg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZVJlZ2lzdGVyZWQiIG1zZ2lkPSI2Mjc1MDE5MDgyNTk4MTAyNDkzIj4i4YOg4YOU4YOS4YOY4YOh4YOi4YOg4YOQ4YOq4YOY4YOQIOGDrOGDkOGDoOGDm+GDkOGDouGDlOGDkeGDmOGDlyDhg5Lhg5Dhg5zhg67hg53hg6Dhg6rhg5jhg5Thg5rhg5Phg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUVyYXNlZCIgbXNnaWQ9IjEyODg1ODQ2OTUyOTcyMDA5NzIiPiLhg6zhg5Dhg6jhg5rhg5Ag4YOs4YOQ4YOg4YOb4YOQ4YOi4YOU4YOR4YOY4YOXIOGDkuGDkOGDnOGDruGDneGDoOGDquGDmOGDlOGDmuGDk+GDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZEluY29ycmVjdCIgbXNnaWQ9Ijc2MTIyMDg4Mzk0NTAxMjg3MTUiPiLhg57hg5Dhg6Dhg53hg5rhg5gg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pQ29tcGxldGUiIG1zZ2lkPSI4MjMyNTI3NDk1NDExNjk4MzU5Ij4iTU1JIOGDk+GDkOGDoeGDoOGDo+GDmuGDk+GDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWRQaW4iIG1zZ2lkPSI5MDE1Mjc3NjQ1NTQ2NzEwMDE0Ij4i4YOX4YOl4YOV4YOU4YOcIOGDm+GDmOGDlOGDoCDhg6jhg5Thg6fhg5Xhg5Dhg5zhg5jhg5rhg5gg4YOr4YOV4YOU4YOa4YOYIOGDnuGDmOGDnC3hg5nhg53hg5Phg5gg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhZFB1ayIgbXNnaWQ9IjU0ODcyNTc2NDcwODExMzIyMDEiPiLhg5fhg6Xhg5Xhg5Thg5wg4YOb4YOY4YOU4YOgIOGDqOGDlOGDp+GDleGDkOGDnOGDmOGDmuGDmCBQVUsg4YOZ4YOd4YOT4YOYIOGDkOGDoOGDkOGDoeGDrOGDneGDoOGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaXNtYXRjaFBpbiIgbXNnaWQ9IjYwOTM3OTA1NDQ5Njg2MzQxOSI+IuGDl+GDpeGDleGDlOGDnCDhg5vhg5jhg5Thg6Ag4YOo4YOU4YOn4YOV4YOQ4YOc4YOY4YOa4YOYIFBJTiDhg5nhg53hg5Phg5Thg5Hhg5gg4YOQ4YOgIOGDqOGDlOGDlOGDoeGDkOGDouGDp+GDleGDmOGDoeGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUGluIiBtc2dpZD0iMzg1MDAxODQ0NTE4NzQ3NTM3NyI+IuGDkOGDmeGDoOGDmOGDpOGDlOGDlyBQSU4sIOGDoOGDneGDm+GDlOGDmuGDmOGDqiDhg6jhg5Thg5Phg5Lhg5Thg5Hhg5AgNC3hg5Phg5Dhg5wgOCDhg6rhg5jhg6Thg6Dhg5Dhg5vhg5Phg5QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiLhg5Dhg5nhg6Dhg5jhg6Thg5Thg5cgUFVLLCDhg6Dhg53hg5vhg5Thg5rhg5jhg6og4YOg4YOV4YOQIOGDkOGDnCDhg5vhg5Thg6Lhg5gg4YOq4YOY4YOk4YOg4YOY4YOh4YOS4YOQ4YOcIOGDqOGDlOGDk+GDkuGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4i4YOX4YOl4YOV4YOU4YOc4YOYIFNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5gg4YOT4YOQ4YOR4YOa4YOd4YOZ4YOY4YOa4YOY4YOQIFBVSyDhg5nhg53hg5Phg5jhg5cuIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoeGDl+GDleGDmOGDoSDhg6jhg5Thg5jhg6fhg5Xhg5Dhg5zhg5Thg5cgUFVLIOGDmeGDneGDk+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOY4YOhIOGDkuGDkOGDnOGDoeGDkOGDkeGDmuGDneGDmeGDkOGDkyDhg5Dhg5nhg6Dhg5jhg6Thg5Thg5cgUFVLMi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IuGDqOGDlOGDm+GDneGDm+GDkOGDleGDkOGDmuGDmCDhg5bhg5Dhg6Dhg5jhg6Eg4YOQ4YOR4YOd4YOc4YOU4YOc4YOi4YOY4YOhIElEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2xpck1taSIgbXNnaWQ9Ijc3ODQ2NzM2NzM0NDY4MzMwOTEiPiLhg5Lhg5Dhg5vhg5Dhg5Xhg5Dhg5rhg5gg4YOb4YOg4YOU4YOZ4YOQ4YOV4YOY4YOhIElEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2ZNbWkiIG1zZ2lkPSI1MTIzMjE4OTg5MTQxNTczNTE1Ij4i4YOW4YOQ4YOg4YOY4YOhIOGDkuGDkOGDk+GDkOGDm+GDmOGDoeGDkOGDm+GDkOGDoOGDl+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkN3TW1pIiBtc2dpZD0iOTEyOTY3ODA1Njc5NTAxNjg2NyI+IuGDluGDkOGDoOGDmOGDoSDhg5rhg53hg5Phg5jhg5zhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJCYU1taSIgbXNnaWQ9IjQ1NTE5MzA2NzkyNjc3MDU4MSI+IuGDluGDkOGDoOGDmOGDoSDhg5Dhg5nhg6Dhg6vhg5Dhg5rhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJQd2RNbWkiIG1zZ2lkPSI3MDQzNzE1Njg3OTA1MjU0MTk5Ij4i4YOe4YOQ4YOg4YOd4YOa4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlBpbk1taSIgbXNnaWQ9IjMxMTMxMTc3ODAzNjExOTAzMDQiPiJQSU4t4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNuaXBNbWkiIG1zZ2lkPSIzMTEwNTM0NjgwNTU3ODU3MTYyIj4i4YOS4YOQ4YOb4YOd4YOb4YOr4YOQ4YOu4YOU4YOR4YOa4YOY4YOhIOGDnOGDneGDm+GDlOGDoOGDmCDhg6zhg5Dhg6Dhg5vhg53hg5Phg5Lhg5Thg5zhg5jhg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbmlyTW1pIiBtc2dpZD0iMzA2MjEwMjEyMTQzMDU0ODczMSI+IuGDqOGDlOGDm+GDneGDoeGDo+GDmuGDmCDhg5bhg5Dhg6Dhg5gg4YOo4YOU4YOW4YOm4YOj4YOT4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVGhyZWVXQ01taSIgbXNnaWQ9IjkwNTEwNDcxNzAzMjExOTAzNjgiPiLhg5Phg5Dhg6Dhg5Thg5nhg5Xhg5jhg6Eg4YOh4YOQ4YOb4YOYIOGDkuGDluGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJ1YWNNbWkiIG1zZ2lkPSI3ODI3ODg3NDU5MTM4MzA4ODg2Ij4i4YOQ4YOg4YOQ4YOh4YOQ4YOh4YOj4YOg4YOV4YOU4YOa4YOYIOGDm+GDneGDm+GDkOGDkeGDlOGDluGDoOGDlOGDkeGDlOGDmuGDmCDhg5bhg5Dhg6Dhg5Thg5Hhg5jhg6Eg4YOj4YOQ4YOg4YOn4YOd4YOk4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ25kTW1pIiBtc2dpZD0iMzExNjQ0NjIzNzA4MTU3NTgwOCI+IuGDk+GDkOGDm+GDoOGDlOGDmeGDkOGDleGDmCDhg5zhg53hg5vhg6Dhg5jhg6Eg4YOb4YOd4YOs4YOd4YOT4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iRG5kTW1pIiBtc2dpZD0iMTI2NTQ3ODkzMjQxODMzNDMzMSI+IuGDkOGDoCDhg6jhg5Thg5vhg5Dhg6zhg6Phg67hg53hg5ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSRGVmYXVsdE9uTmV4dENhbGxPbiIgbXNnaWQ9IjQyOTQxNTQwOTE0NTc4MTkyMyI+IuGDm+GDoOGDlOGDmeGDkOGDleGDmOGDoSBJRCDhg5zhg5Dhg5Lhg6Phg5rhg5jhg6Hhg67hg5vhg5Thg5Xhg5Dhg5Mg4YOo4YOU4YOW4YOm4YOj4YOT4YOj4YOa4YOY4YOQLiDhg6jhg5Thg5vhg5Phg5Thg5Lhg5gg4YOW4YOQ4YOg4YOYOiDhg6jhg5Thg5bhg6bhg6Phg5Phg6Phg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPbk5leHRDYWxsT2ZmIiBtc2dpZD0iMzA5MjkxODAwNjA3Nzg2NDYyNCI+IuGDkOGDkeGDneGDnOGDlOGDnOGDouGDmOGDoSBJRCDhg5zhg5Dhg5Lhg6Phg5rhg5jhg6Hhg67hg5vhg5Thg5Xhg5Dhg5Mg4YOo4YOU4YOW4YOm4YOj4YOT4YOj4YOa4YOY4YOQLiDhg6jhg5Thg5vhg5Phg5Thg5Lhg5gg4YOW4YOQ4YOg4YOYOiDhg6jhg5Thg6Phg5bhg6bhg6Phg5Phg5Dhg5Xhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPZmZOZXh0Q2FsbE9uIiBtc2dpZD0iNjE3OTQyNTE4Mjg1NjQxODQ2NSI+IuGDkOGDkeGDneGDnOGDlOGDnOGDouGDmOGDoSBJRCDhg6Phg57hg5jhg6Dhg53hg5Hhg53hg5Mg4YOo4YOU4YOW4YOm4YOj4YOT4YOj4YOa4YOYIOGDkOGDoCDhg5Dhg6Dhg5jhg6EuIOGDqOGDlOGDm+GDk+GDlOGDkuGDmCDhg5bhg5Dhg6Dhg5g6IOGDqOGDlOGDluGDpuGDo+GDk+GDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSRGVmYXVsdE9mZk5leHRDYWxsT2ZmIiBtc2dpZD0iMjU2Nzk5ODYzMzEyNDQwODU1MiI+IuGDkOGDkeGDneGDnOGDlOGDnOGDouGDmOGDoSBJRCDhg5zhg5Dhg5Lhg6Phg5rhg5jhg6Hhg67hg5vhg5Thg5Xhg5Dhg5Mg4YOo4YOU4YOW4YOm4YOj4YOT4YOj4YOa4YOYIOGDkOGDoCDhg5Dhg6Dhg5jhg6EuIOGDqOGDlOGDm+GDk+GDlOGDkuGDmCDhg5bhg5Dhg6Dhg5g6IOGDqOGDlOGDo+GDluGDpuGDo+GDk+GDkOGDleGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlTm90UHJvdmlzaW9uZWQiIG1zZ2lkPSI4NjE0ODMwMTgwNTA4Njg2NjY2Ij4i4YOh4YOU4YOg4YOV4YOY4YOh4YOYIOGDkOGDoCDhg5Dhg6Dhg5jhg6Eg4YOb4YOY4YOs4YOd4YOT4YOU4YOR4YOj4YOa4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJQZXJtYW5lbnQiIG1zZ2lkPSIzMzc3MzcxMTQ1OTI2ODM1NjcxIj4i4YOQ4YOgIOGDqOGDlOGDkuGDmOGDq+GDmuGDmOGDkOGDlyDhg5Dhg5Hhg53hg5zhg5Thg5zhg6Lhg5jhg6EgSUQg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkQ2hhbmdlZFRpdGxlIiBtc2dpZD0iNTU5MjE4OTM5ODk1NjE4NzQ5OCI+IuGDrOGDleGDk+GDneGDm+GDmOGDoSDhg6jhg5Thg5bhg6bhg6Phg5Phg5Xhg5Thg5Hhg5gg4YOo4YOU4YOq4YOV4YOa4YOY4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uRGF0YSIgbXNnaWQ9Ijg2NTM3OTQ3ODQ2OTAwNjU1NDAiPiLhg5jhg5zhg6Lhg5Thg6Dhg5zhg5Thg6Lhg5gg4YOT4YOQ4YOR4YOa4YOd4YOZ4YOY4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkVtZXJnZW5jeSIgbXNnaWQ9IjY1ODExNjM3NzkwNzI4MzM2NjUiPiLhg5Lhg5Dhg5Phg5Dhg6Phg5Phg5Thg5Hhg5Thg5rhg5gg4YOh4YOQ4YOb4YOh4YOQ4YOu4YOj4YOg4YOYIOGDk+GDkOGDkeGDmuGDneGDmeGDmOGDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25Ob3JtYWwiIG1zZ2lkPSI0OTUzODY3MDExMzg5NzUwNjczIj4i4YOu4YOb4YOd4YOV4YOQ4YOc4YOYIOGDm+GDneGDm+GDoeGDkOGDruGDo+GDoOGDlOGDkeGDkCDhg5Phg5Dhg5Hhg5rhg53hg5nhg5jhg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uQWxsVm9pY2UiIG1zZ2lkPSIzMzk2OTYzNjUyMTA4MTUxMjYwIj4i4YOn4YOV4YOU4YOa4YOQIOGDruGDm+GDneGDleGDkOGDnOGDmCDhg6Hhg5Thg6Dhg5Xhg5jhg6Hhg5gg4YOT4YOQ4YOR4YOa4YOd4YOZ4YOY4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblNtcyIgbXNnaWQ9IjgzMTQzNTIzMjc0NjE2Mzg4OTciPiJTTVMg4YOb4YOd4YOb4YOh4YOQ4YOu4YOj4YOg4YOU4YOR4YOQIOGDk+GDkOGDkeGDmuGDneGDmeGDmOGDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25Wb2ljZURhdGEiIG1zZ2lkPSI5OTY2MzY0ODcxMDYxNzEzMjAiPiLhg67hg5vhg5jhg6Ev4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDoeGDlOGDoOGDleGDmOGDoeGDlOGDkeGDmCDhg5Phg5Dhg5Hhg5rhg53hg5nhg5jhg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VTbXMiIG1zZ2lkPSIxODg4NTg4MTUyNzkyMDIzODczIj4i4YOn4YOV4YOU4YOa4YOQIOGDruGDm+GDneGDleGDkOGDnOGDmC9TTVMt4YOY4YOhIOGDoeGDlOGDoOGDleGDmOGDoeGDmCDhg5Phg5Dhg5Hhg5rhg53hg5nhg5jhg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uQWxsIiBtc2dpZD0iNTY0MzAyODI2NDQ2NjA5MjgyMSI+IuGDruGDm+GDmOGDoS/hg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5jhg6EvU01TLeGDmOGDoSDhg6fhg5Xhg5Thg5rhg5Ag4YOh4YOU4YOg4YOV4YOY4YOh4YOYIOGDk+GDkOGDkeGDmuGDneGDmeGDmOGDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NWb2ljZSIgbXNnaWQ9IjEyNTgzOTM4MTIzMzUyNTgwMTkiPiLhg67hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhIiBtc2dpZD0iODcyNDU2NzgyMDc3OTM3ODkzIj4i4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRkFYIiBtc2dpZD0iNTU2NjYyNDk5ODg0MDQ4NjQ3NSI+IuGDpOGDkOGDpeGDoeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1NNUyIgbXNnaWQ9IjIwMTU0NjAzNzM3MDE1Mjc0ODkiPiJTTVMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhQXN5bmMiIG1zZ2lkPSI0NTIzNDU0NzgzNDk4NTUxNDY4Ij4i4YOQ4YOh4YOY4YOc4YOl4YOg4YOd4YOc4YOj4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRGF0YVN5bmMiIG1zZ2lkPSI3NTMwMDAwNTE5NjQ2MDU0Nzc2Ij4i4YOh4YOY4YOc4YOl4YOg4YOd4YOc4YOY4YOW4YOQ4YOq4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzUGFja2V0IiBtc2dpZD0iNjk5MTAwNjU1Nzk5MzQyMzQ1MyI+IuGDnuGDkOGDmeGDlOGDouGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1BBRCIgbXNnaWQ9IjMyMzUyNTkwODU2NDgyNzEwMzciPiJQQUQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDAiIG1zZ2lkPSI3MTcwMzM1NDcyMTk4Njk0OTQ1Ij4i4YOg4YOd4YOj4YOb4YOY4YOc4YOS4YOY4YOhIOGDm+GDkOGDqeGDleGDlOGDnOGDlOGDkeGDlOGDmuGDmCDhg6nhg5Dhg6Dhg5fhg6Phg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxIiBtc2dpZD0iNTMxNDg2MTUxOTc1MjUzODkyMiI+IuGDoOGDneGDo+GDm+GDmOGDnOGDkuGDmOGDoSDhg5vhg5Dhg6nhg5Xhg5Thg5zhg5Thg5Hhg5Thg5rhg5gg4YOS4YOQ4YOb4YOd4YOg4YOX4YOj4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MiIgbXNnaWQ9Ijg5Njk5MjkwNDkwODEyNjgxMTUiPiLhg6Dhg53hg6Phg5vhg5jhg5zhg5Lhg5jhg6Eg4YOb4YOQ4YOp4YOV4YOU4YOc4YOU4YOR4YOa4YOY4YOhIOGDquGDmOGDm+GDquGDmOGDm+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MyIgbXNnaWQ9IjUxNDgyNTUwMjcwNDM5NDMzMTciPiLhg6Hhg5Dhg5vhg5Thg5bhg53hg5Hhg5rhg53hg6Eg4YOb4YOY4YOm4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ0IiBtc2dpZD0iODgwODQ1NjY4MjU1MDc5NjUzMCI+IuGDqOGDlOGDnOGDneGDkeGDmOGDoSDhg5Lhg5Dhg6Dhg5Thg5ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDUiIG1zZ2lkPSI3NjA0MDYzMjUyODUwMzU0MzUwIj4i4YOg4YOd4YOj4YOb4YOY4YOc4YOS4YOYIC0g4YOj4YOe4YOY4YOg4YOQ4YOi4YOU4YOh4YOYIOGDoeGDmOGDoeGDouGDlOGDm+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NiIgbXNnaWQ9IjIwNTk0NDA4MjU3ODI4NzE1MTMiPiLhg6Dhg53hg6Phg5vhg5jhg5zhg5Lhg5ggLSDhg67hg5Thg5rhg5vhg5jhg6Hhg5Dhg6zhg5Xhg5Phg53hg5vhg5gg4YOh4YOY4YOh4YOi4YOU4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ3IiBtc2dpZD0iNzExMjA3ODcyNDA5NzIzMzYwNSI+IuGDoOGDneGDo+GDm+GDmOGDnOGDkuGDmCAtIOGDkOGDmuGDmOGDkOGDnOGDoeGDmOGDoSDhg57hg5Dhg6Dhg6Lhg5zhg5jhg53hg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDgiIG1zZ2lkPSI1OTg5NTY5Nzc4NjA0MDg5MjkxIj4i4YOg4YOd4YOj4YOb4YOY4YOc4YOS4YOYIC0g4YOe4YOg4YOU4YOb4YOY4YOj4YObIOGDnuGDkOGDoOGDouGDnOGDmOGDneGDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0OSIgbXNnaWQ9Ijc5NjkyOTY4MTEzNTUxNTI0OTEiPiJSb2FtaW5nIC0gRnVsbCBTZXJ2aWNlIEZ1bmN0aW9uYWxpdHkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDEwIiBtc2dpZD0iMzk5MjkwNjk5OTgxNTMxNjQxNyI+IlJvYW1pbmcgLSBQYXJ0aWFsIFNlcnZpY2UgRnVuY3Rpb25hbGl0eSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MTEiIG1zZ2lkPSI0MTU0NDc2ODU0NDI2OTIwOTcwIj4iUm9hbWluZyBCYW5uZXIg4YOp4YOQ4YOg4YOX4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxMiIgbXNnaWQ9IjExODkwNzExMTk5OTI3MjYzMjAiPiLhg6Dhg53hg6Phg5vhg5jhg5zhg5Lhg5jhg6Eg4YOR4YOQ4YOc4YOU4YOg4YOYIOGDkuGDkOGDm+GDneGDoOGDl+GDo+GDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0U2VhcmNoaW5nIiBtc2dpZD0iODM2MDE0MTg4NTk3MjI3OTk2MyI+IuGDoeGDlOGDoOGDleGDmOGDoeGDmOGDoSDhg6vhg5jhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlTm90Rm9yd2FyZGVkIiBtc2dpZD0iMTY4MzY4NTg4Mzg0MTI3MjU2MCI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+OiDhg5Dhg6Ag4YOQ4YOg4YOY4YOhIOGDkuGDkOGDk+GDkOGDm+GDmOGDoeGDkOGDm+GDkOGDoOGDl+GDlOGDkeGDo+GDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVGb3J3YXJkZWQiIG1zZ2lkPSIxMzAyOTIyMTE3NDk4NTkwNTIxIj4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz46IDx4bGlmZjpnIGlkPSJESUFMSU5HX05VTUJFUiI+ezF9PC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVGb3J3YXJkZWRUaW1lIiBtc2dpZD0iOTIwNjI1MTczNjUyNzA4NTI1NiI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+OiA8eGxpZmY6ZyBpZD0iRElBTElOR19OVU1CRVIiPnsxfTwveGxpZmY6Zz4gPHhsaWZmOmcgaWQ9IlRJTUVfREVMQVkiPnsyfTwveGxpZmY6Zz4g4YOs4YOQ4YOb4YOY4YOhIOGDqOGDlOGDm+GDk+GDlOGDkiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVSZWdpc3RlcmVkIiBtc2dpZD0iNTA3MzIzNzgyNzYyMDE2NjI4NSI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+OiDhg5Dhg6Ag4YOQ4YOg4YOY4YOhIOGDkuGDkOGDk+GDkOGDm+GDmOGDoeGDkOGDm+GDkOGDoOGDl+GDlOGDkeGDo+GDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVSZWdpc3RlcmVkVGltZSIgbXNnaWQ9IjY3ODE2MjE5NjQzMjA2MzUxNzIiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjog4YOQ4YOgIOGDkOGDoOGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg5vhg5jhg6Hhg5Dhg5vhg5Dhg6Dhg5fhg5Thg5Hhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmY0NvbXBsZXRlIiBtc2dpZD0iMzExODg0ODIzMDk2Njg4NjU3NSI+IuGDpOGDo+GDnOGDpeGDquGDmOGDmOGDoSDhg5nhg53hg5Phg5gg4YOo4YOU4YOh4YOg4YOj4YOa4YOT4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZjRXJyb3IiIG1zZ2lkPSIzMzI3NTYwMTI2NTg4NTAwNzc3Ij4i4YOZ4YOQ4YOV4YOo4YOY4YOg4YOY4YOhIOGDnuGDoOGDneGDkeGDmuGDlOGDm+GDkOGDkCDhg5Dhg5wg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOYIOGDpOGDo+GDnOGDpeGDquGDmOGDo+GDoOGDmCDhg5nhg53hg5Phg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yT2siIG1zZ2lkPSIxMTkxOTE5Mzc4MDgzNDcyMjA0Ij4i4YOZ4YOQ4YOg4YOS4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yIiBtc2dpZD0iNzk1NjM5MjUxMTE0NjY5ODUyMiI+IuGDpeGDoeGDlOGDmuGDmOGDoSDhg6jhg5Thg6rhg5Phg53hg5vhg5Ag4YOY4YOn4YOdLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckxvb2t1cCIgbXNnaWQ9IjQ3MTE2ODc0NTYxMTE5NjMxNjMiPiJVUkwt4YOY4YOhIOGDm+GDneGDq+GDmOGDlOGDkeGDkCDhg5Xhg5Thg6Ag4YOb4YOd4YOu4YOU4YOg4YOu4YOT4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclVuc3VwcG9ydGVkQXV0aFNjaGVtZSIgbXNnaWQ9IjYyOTk5ODAyODA0NDIwNzY3OTkiPiLhg6Hhg5Dhg5jhg6Lhg5jhg6Eg4YOQ4YOV4YOi4YOd4YOg4YOY4YOW4YOQ4YOq4YOY4YOY4YOhIOGDoeGDpeGDlOGDm+GDkOGDoSDhg5vhg67hg5Dhg6Dhg5Phg5Dhg63hg5Thg6Dhg5Ag4YOQ4YOgIOGDkOGDpeGDleGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JBdXRoIiBtc2dpZD0iMTQzNTA2NTYyOTQzODA0NDUzNCI+IuGDkOGDleGDouGDneGDoOGDmOGDluGDkOGDquGDmOGDkCDhg5Xhg5Thg6Ag4YOu4YOU4YOg4YOu4YOT4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclByb3h5QXV0aCIgbXNnaWQ9IjE3ODgyMDcwMTA1NTkwODEzMzEiPiLhg5Dhg5Xhg6Lhg53hg6Dhg5jhg5bhg5Dhg6rhg5jhg5Ag4YOe4YOg4YOd4YOl4YOh4YOYLeGDoeGDlOGDoOGDleGDlOGDoOGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg5cg4YOs4YOQ4YOg4YOj4YOb4YOQ4YOi4YOU4YOR4YOU4YOa4YOQ4YOTIOGDk+GDkOGDoeGDoOGDo+GDmuGDk+GDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JDb25uZWN0IiBtc2dpZD0iODcxNDI3MzIzNjM2NDY0MDU0OSI+IuGDoeGDlOGDoOGDleGDlOGDoOGDl+GDkOGDnCDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg5Ag4YOV4YOU4YOgIOGDm+GDneGDruGDlOGDoOGDruGDk+GDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JJTyIgbXNnaWQ9IjIzNDA1NTgxOTc0ODkzMDIxODgiPiLhg6Hhg5Thg6Dhg5Xhg5Thg6Dhg5fhg5Dhg5wg4YOZ4YOd4YOb4YOj4YOc4YOY4YOZ4YOQ4YOq4YOY4YOQIOGDleGDlOGDoCDhg5Lhg5Dhg5zhg5Dhg67hg53hg6Dhg6rhg5jhg5Thg5rhg5AuIOGDoeGDquGDkOGDk+GDlOGDlyDhg67hg5Thg5rhg5Dhg67hg5rhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVGltZW91dCIgbXNnaWQ9IjQ3NDM0MDM3MDM3NjI4ODM5NTQiPiLhg6Hhg5Thg6Dhg5Xhg5Thg6Dhg5fhg5Dhg5wg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOY4YOh4YOQ4YOhIOGDkOGDm+GDneGDmOGDrOGDo+GDoOGDkCDhg5rhg53hg5Phg5jhg5zhg5jhg6Eg4YOT4YOg4YOdLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclJlZGlyZWN0TG9vcCIgbXNnaWQ9Ijg2Nzk1OTYwOTAzOTI3Nzk1MTYiPiLhg5Thg6Eg4YOS4YOV4YOU4YOg4YOT4YOYIOGDqOGDlOGDmOGDquGDkOGDleGDoSDhg6Hhg5Thg6Dhg5Xhg5Thg6Dhg5jhg6Eg4YOr4YOQ4YOa4YOY4YOQ4YOcIOGDkeGDlOGDleGDoCDhg5Lhg5Dhg5Phg5Dhg5vhg5jhg6Hhg5Dhg5vhg5Dhg6Dhg5fhg5Thg5Hhg5Dhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVW5zdXBwb3J0ZWRTY2hlbWUiIG1zZ2lkPSI1MDE1NzMwODEyOTA2MTkyMjA4Ij4i4YOe4YOg4YOd4YOi4YOd4YOZ4YOd4YOa4YOhIOGDm+GDruGDkOGDoOGDk+GDkOGDreGDlOGDoOGDkCDhg5Dhg6Ag4YOQ4YOl4YOV4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckZhaWxlZFNzbEhhbmRzaGFrZSIgbXNnaWQ9Ijk2NTQ5NjA2MDAwNjU4NjQxIj4i4YOT4YOQ4YOq4YOj4YOa4YOYIOGDmeGDkOGDleGDqOGDmOGDoOGDmOGDoSDhg5Phg5Dhg5vhg6fhg5Dhg6Dhg5Thg5Hhg5Ag4YOo4YOU4YOj4YOr4YOa4YOU4YOR4YOU4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckJhZFVybCIgbXNnaWQ9IjM2MzY5Mjk3MjI3Mjg4ODE5NzIiPiLhg5Lhg5Xhg5Thg6Dhg5Phg5gg4YOV4YOU4YOgIOGDkuGDkOGDmOGDruGDoeGDnOGDkCwg4YOg4YOQ4YOT4YOS4YOQ4YOc4YOQ4YOqIFVSTCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yRmlsZSIgbXNnaWQ9IjIxNzA3ODg1MTUwNTI1NTg2NzYiPiLhg6Thg5Dhg5jhg5rhg5fhg5Dhg5wg4YOs4YOV4YOT4YOd4YOb4YOQIOGDleGDlOGDoCDhg67hg5Thg6Dhg67hg5Phg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yRmlsZU5vdEZvdW5kIiBtc2dpZD0iNjIwMzg1NjYxMjA0MjY1NTA4NCI+IuGDm+GDneGDl+GDruGDneGDleGDnOGDmOGDmuGDmCDhg6Thg5Dhg5jhg5rhg5jhg6Eg4YOb4YOd4YOr4YOY4YOU4YOR4YOQIOGDleGDlOGDoCDhg5vhg53hg67hg5Thg6Dhg67hg5Phg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVG9vTWFueVJlcXVlc3RzIiBtc2dpZD0iMTIzNTM5NjkyNzA4NzE4ODI1MyI+IuGDq+GDkOGDmuGDmOGDkOGDnCDhg5Hhg5Thg5Xhg6Dhg5gg4YOb4YOd4YOX4YOu4YOd4YOV4YOc4YOQIOGDm+GDo+GDqOGDkOGDleGDk+GDlOGDkeGDkC4g4YOh4YOq4YOQ4YOT4YOU4YOXIOGDm+GDneGDkuGDleGDmOGDkOGDnOGDlOGDkeGDmOGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4OTY3NzEwMDI1MDM2MTYzODIyIj4iPHhsaWZmOmcgaWQ9IkFDQ09VTlQiPiUxJHM8L3hsaWZmOmc+IOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoSDhg5Dhg5Xhg6Lhg53hg6Dhg5jhg5bhg5Dhg6rhg5jhg5jhg6Eg4YOo4YOU4YOq4YOT4YOd4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VTeW5jIiBtc2dpZD0iODM1MzUyMzA2MDI2OTMzNTY2NyI+IuGDoeGDmOGDnOGDpeGDoOGDneGDnOGDmOGDluGDkOGDquGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRTZXJ2aWNlU3luY05vdGlmaWNhdGlvblRpdGxlIiBtc2dpZD0iMzk3NzQzMzQ5MTkxOTAxNDU4Ij4i4YOh4YOY4YOc4YOl4YOg4YOd4YOc4YOY4YOW4YOQ4YOq4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VUb29NYW55RGVsZXRlc05vdGlmaWNhdGlvbkRlc2MiIG1zZ2lkPSI4MTAwOTgxNDM1MDgwNjk2NDMxIj4iPHhsaWZmOmcgaWQ9IkNPTlRFTlRfVFlQRSI+JXM8L3hsaWZmOmc+LeGDmOGDoSDhg6vhg5Dhg5rhg5jhg5Dhg5wg4YOR4YOU4YOV4YOg4YOYIOGDrOGDkOGDqOGDmuGDmOGDmuGDlOGDkeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfbWVtb3J5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2NDk0MDE5MjM0MTAyMTU0ODk2Ij4i4YOi4YOQ4YOR4YOa4YOU4YOi4YOY4YOhIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDkCDhg5Lhg5Dhg5Xhg6Hhg5Thg5Hhg6Phg5rhg5jhg5AuIOGDkOGDk+GDkuGDmOGDmuGDmOGDoSDhg5Lhg5Dhg6Hhg5Dhg5fhg5Dhg5Xhg5jhg6Hhg6Phg6Thg5rhg5Thg5Hhg5rhg5Dhg5Mg4YOs4YOQ4YOo4YOQ4YOa4YOU4YOXIOGDpOGDkOGDmOGDmuGDlOGDkeGDmOGDoSDhg5zhg5Dhg6zhg5jhg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X21lbW9yeSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0NzU5OTkyODY2ODAwMDA1NDEiPiLhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOQIOGDkuGDkOGDleGDoeGDlOGDkeGDo+GDmuGDmOGDkC4g4YOQ4YOT4YOS4YOY4YOa4YOY4YOhIOGDkuGDkOGDoeGDkOGDl+GDkOGDleGDmOGDoeGDo+GDpOGDmuGDlOGDkeGDmuGDkOGDkyDhg6zhg5Dhg6jhg5Dhg5rhg5Thg5cg4YOk4YOQ4YOY4YOa4YOU4YOR4YOY4YOhIOGDnOGDkOGDrOGDmOGDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZSIgbXNnaWQ9IjY1NDU2OTYwMDc2MzE0MDQyOTIiPiLhg5vhg5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3dlcl9kaWFsb2ciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg1NDUzNTE0MjA4NjUyMDI4NTMiPiLhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5jhg6Eg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfZGlhbG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTMxOTkxOTA3NTQ2Mzk4ODYzOCI+IuGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaWxlbnRfbW9kZSIgbXNnaWQ9IjcxNjc3MDMzODk4MDI2MTg2NjMiPiLhg6nhg6Phg5vhg5gg4YOg4YOU4YOf4YOY4YOb4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHVybl9vbl9yYWRpbyIgbXNnaWQ9IjM5MTI3OTMwOTIzMzk5NjIzNzEiPiLhg6Phg6Hhg5Dhg5Phg5Thg5zhg53hg6Eg4YOp4YOQ4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHVybl9vZmZfcmFkaW8iIG1zZ2lkPSI4MTk4Nzg0OTQ5OTg3MDYyMzQ2Ij4i4YOj4YOh4YOQ4YOT4YOU4YOc4YOdIOGDmOGDnOGDouGDlOGDoOGDnOGDlOGDouGDmOGDoSDhg5Lhg5Dhg5vhg53hg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fbG9jayIgbXNnaWQ9Ijc5OTA5NDY1NTQ5NjA5ODE1MyI+IuGDlOGDmeGDoOGDkOGDnOGDmOGDoSDhg5Phg5Dhg5Hhg5rhg53hg5nhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3dlcl9vZmYiIG1zZ2lkPSI0MjY2NjE0MTA3NDEyODY1MDQ4Ij4i4YOS4YOQ4YOb4YOd4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfc2lsZW50IiBtc2dpZD0iMzE5Mjk4MTYzMDE4NDczMDc4Ij4i4YOb4YOg4YOU4YOZ4YOQ4YOV4YOYIOGDkuGDkOGDl+GDmOGDqOGDo+GDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3ZpYnJhdGUiIG1zZ2lkPSI3MDcyMDQzMzg4NTgxNTUxMzk1Ij4i4YOV4YOY4YOR4YOg4YOQ4YOq4YOY4YOY4YOhIOGDoOGDlOGDn+GDmOGDm+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3JpbmciIG1zZ2lkPSI4NTkyMjQxODE2MTk0MDc0MzUzIj4i4YOW4YOQ4YOg4YOYIOGDqeGDkOGDoOGDl+GDo+GDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX3Byb2dyZXNzIiBtc2dpZD0iMjI4MTA3OTI1NzMyOTk4MTIwMyI+IuGDkuGDkOGDm+GDneGDoOGDl+GDleGDkOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm0iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMzODU3NDUxNzk1NTU3MzE0NzAiPiLhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOi4YOQ4YOR4YOa4YOU4YOi4YOYIOGDkuGDkOGDmOGDl+GDmOGDqOGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9jb25maXJtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjQ5NzkyMTc1MjQyODIxMzUzIj4i4YOX4YOl4YOV4YOU4YOc4YOYIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmCDhg5Lhg5Dhg5jhg5fhg5jhg6jhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2h1dGRvd25fY29uZmlybV9xdWVzdGlvbiIgbXNnaWQ9IjI5MDY1NDQ3Njg4ODExMzYxODMiPiLhg5Lhg6Hhg6Phg6Dhg5cg4YOS4YOQ4YOb4YOd4YOg4YOX4YOV4YOQPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYm9vdF9zYWZlbW9kZV90aXRsZSIgbXNnaWQ9IjcwNTQ1MDk5MTQ1MDAxNDAzNjEiPiLhg6Phg6Hhg5Dhg6Thg6Dhg5fhg67hg50g4YOg4YOU4YOf4YOY4YOb4YOY4YOhIOGDqeGDkOGDouGDleGDmOGDoOGDl+GDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYm9vdF9zYWZlbW9kZV9jb25maXJtIiBtc2dpZD0iNTUyOTM5NDQ1MDI3ODQ2NjgiPiLhg5Lhg6Hhg6Phg6Dhg5csIOGDo+GDoeGDkOGDpOGDoOGDl+GDruGDnSDhg6Dhg5Thg5/hg5jhg5vhg5jhg6Eg4YOu4YOU4YOa4YOQ4YOu4YOQ4YOa4YOYIOGDqeGDkOGDouGDleGDmOGDoOGDl+GDleGDkD8g4YOQ4YOb4YOY4YOXIOGDkuGDkOGDmOGDl+GDmOGDqOGDlOGDkeGDkCDhg6fhg5Xhg5Thg5rhg5Ag4YOb4YOU4YOh4YOQ4YOb4YOUIOGDnuGDmOGDoOGDmCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5AsIOGDoOGDneGDm+GDlOGDmuGDmOGDqiDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg6Phg5rhg5gg4YOS4YOQ4YOl4YOV4YOXLiDhg5jhg6Hhg5jhg5zhg5gg4YOQ4YOm4YOT4YOS4YOU4YOR4YOQIOGDm+GDneGDm+GDk+GDlOGDleGDnOGDnSDhg67hg5Thg5rhg5Dhg67hg5Dhg5rhg5gg4YOp4YOQ4YOi4YOV4YOY4YOg4YOX4YOV4YOY4YOhIOGDqOGDlOGDm+GDk+GDlOGDki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWNlbnRfdGFza3NfdGl0bGUiIG1zZ2lkPSIzNjkxNzY0NjIzNjM4MTI3ODg4Ij4i4YOj4YOQ4YOu4YOa4YOU4YOh4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fcmVjZW50X3Rhc2tzIiBtc2dpZD0iODc5NDkwNjY1ODczMjE5MzQ3MyI+IuGDkOGDoCDhg5Dhg6Dhg5jhg6Eg4YOR4YOd4YOa4YOd4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDo+GDmuGDmCDhg5Dhg57hg5Thg5Hhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQwODQ3NzE0MDA4ODA1MzY2NSI+IuGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9ucyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI0MDY0MTY4MzE1NDE2MTUyNTgiPiLhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9sb2NrIiBtc2dpZD0iMjg0NDk0NTE5MTc5MjExOTcxMiI+IuGDlOGDmeGDoOGDkOGDnOGDmOGDoSDhg5Phg5Dhg5Hhg5rhg53hg5nhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3Bvd2VyX29mZiIgbXNnaWQ9IjQ0NzE4Nzk0NDA4Mzk4Nzk3MjIiPiLhg5Lhg5Dhg5vhg53hg6Dhg5fhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX2J1Z19yZXBvcnQiIG1zZ2lkPSI3OTM0MDEwNTc4OTIyMzA0Nzk5Ij4i4YOu4YOQ4YOg4YOV4YOU4YOW4YOY4YOhIOGDqOGDlOGDoeGDkOGDruGDlOGDkSDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfdGl0bGUiIG1zZ2lkPSIyNjY3NDk0ODAzNzQyNTQ4NTMzIj4i4YOo4YOU4YOl4YOb4YOU4YOc4YOY4YOXIOGDqOGDlOGDquGDk+GDneGDm+GDmOGDoSDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfbWVzc2FnZSIgbXNnaWQ9IjM5ODQ0NzA0ODc1MDM1MDQ1NiI+IuGDmOGDkuGDmCDhg6jhg5Thg5Dhg5Lhg6Dhg53hg5Xhg5Thg5Hhg6Eg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOQ4YOhIOGDl+GDpeGDleGDlOGDnOGDmCDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5jhg6Eg4YOQ4YOb4YOf4YOQ4YOb4YOY4YOc4YOT4YOU4YOa4YOYIOGDm+GDk+GDkuGDneGDm+GDkOGDoOGDlOGDneGDkeGDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5EsIOGDoOGDkOGDl+GDkCDhg5jhg6Eg4YOU4YOa4YOk4YOd4YOh4YOi4YOY4YOhIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDmOGDoSDhg6Hhg5Dhg67hg5jhg5cg4YOS4YOQ4YOQ4YOS4YOW4YOQ4YOV4YOc4YOd4YOhLiDhg67hg5Dhg6Dhg5Xhg5Thg5bhg5jhg6Eg4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOY4YOhIOGDm+GDneGDm+GDluGDkOGDk+GDlOGDkeGDkOGDoeGDkCDhg5Phg5Ag4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOY4YOhIOGDkuGDkOGDkuGDluGDkOGDleGDnOGDkOGDoSDhg5Lhg5Dhg6Dhg5nhg5Xhg5Thg6Phg5rhg5gg4YOT4YOg4YOdIOGDoeGDreGDmOGDoOGDk+GDlOGDkeGDkC4g4YOS4YOX4YOu4YOd4YOV4YOXLCDhg5vhg53hg5jhg5fhg5vhg5jhg5zhg53hg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl90b2dnbGVfc2lsZW50X21vZGUiIG1zZ2lkPSI4MjE5NTI1MzQ0MjQ2ODEwOTI1Ij4i4YOp4YOj4YOb4YOYIOGDoOGDlOGDn+GDmOGDm+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fc2lsZW50X21vZGVfb25fc3RhdHVzIiBtc2dpZD0iMzI4OTg0MTkzNzAwMzc1ODgwNiI+IuGDruGDm+GDkCDhg5Lhg5Dhg5vhg53hg6Dhg5fhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3NpbGVudF9tb2RlX29mZl9zdGF0dXMiIG1zZ2lkPSIxNTA2MDQ2NTc5MTc3MDY2NDE5Ij4i4YOu4YOb4YOQIOGDqeGDkOGDoOGDl+GDo+GDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zX3RvZ2dsZV9haXJwbGFuZV9tb2RlIiBtc2dpZD0iNTg4NDMzMDMwNjkyNjMwNzQ1NiI+IuGDl+GDleGDmOGDl+GDm+GDpOGDoOGDmOGDnOGDkOGDleGDmOGDoSDhg6Dhg5Thg5/hg5jhg5vhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uc19haXJwbGFuZV9tb2RlX29uX3N0YXR1cyIgbXNnaWQ9IjI3MTk1NTc5ODI2MDg5MTk3NTAiPiLhg5fhg5Xhg5jhg5fhg5vhg6Thg6Dhg5jhg5zhg5Dhg5Xhg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOYIOGDqeGDkOGDoOGDl+GDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uc19haXJwbGFuZV9tb2RlX29mZl9zdGF0dXMiIG1zZ2lkPSI1MDc1MDcwNDQyODU0NDkwMjk2Ij4i4YOX4YOV4YOY4YOX4YOb4YOk4YOg4YOY4YOc4YOQ4YOV4YOY4YOhIOGDoOGDlOGDn+GDmOGDm+GDmCDhg5Lhg5Dhg5vhg53hg6Dhg5fhg6Phg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5mb19vdmVyZmxvdyIgbXNnaWQ9IjUzMDE5ODE3NDE3MDUzNTQ5OTMiPiI5OTkrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2FmZU1vZGUiIG1zZ2lkPSIyNzg4MjI4MDYxNTQ3OTMwMjQ2Ij4i4YOj4YOh4YOQ4YOk4YOg4YOX4YOu4YOdIOGDoOGDlOGDn+GDmOGDm+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfc3lzdGVtX2xhYmVsIiBtc2dpZD0iNjU3NzM3NTMzNTcyODU1MTMzNiI+IkFuZHJvaWQt4YOY4YOhIOGDoeGDmOGDoeGDouGDlOGDm+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jb3N0TW9uZXkiIG1zZ2lkPSI1NDI5ODA4MjE3ODYxNDYwNDAxIj4i4YOh4YOU4YOg4YOV4YOY4YOh4YOU4YOR4YOYLCDhg6Dhg53hg5vhg5Thg5rhg6jhg5jhg6og4YOk4YOj4YOa4YOY4YOhIOGDkuGDkOGDk+GDkOGDruGDk+GDkCDhg5Lhg5jhg6zhg5Thg5Xhg5ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Nvc3RNb25leSIgbXNnaWQ9IjMyOTMzMDE5MDM0MDk4Njk0OTUiPiLhg5jhg6Hhg5Thg5fhg5gg4YOQ4YOl4YOi4YOY4YOV4YOd4YOR4YOU4YOR4YOY4YOhIOGDkuGDkOGDnOGDruGDneGDoOGDquGDmOGDlOGDmuGDlOGDkeGDkCwg4YOg4YOd4YOb4YOa4YOU4YOR4YOo4YOY4YOqIOGDpOGDo+GDmuGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg67hg5Phg5Ag4YOb4YOd4YOS4YOY4YOs4YOU4YOV4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9tZXNzYWdlcyIgbXNnaWQ9Ijc1MjEyNDkxNDg0NDU0NTY2NjIiPiLhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19tZXNzYWdlcyIgbXNnaWQ9Ijc4MjE5OTkwNzEwMDM2OTkyMzYiPiLhg5fhg6Xhg5Xhg5Thg5zhg5ggU01TLeGDmOGDoSwg4YOU4YOa4YOk4YOd4YOi4YOY4YOhIOGDk+GDkCDhg6Hhg67hg5Xhg5Ag4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOY4YOhIOGDrOGDkOGDmeGDmOGDl+GDruGDleGDkCDhg5Phg5Ag4YOT4YOQ4YOs4YOU4YOg4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9wZXJzb25hbEluZm8iIG1zZ2lkPSIzNTE5MTYzMTQxMDcwNTMzNDc0Ij4i4YOX4YOl4YOV4YOU4YOc4YOYIOGDnuGDmOGDoOGDkOGDk+GDmCDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3BlcnNvbmFsSW5mbyIgbXNnaWQ9Ijg0MjY0NTMxMjk3ODg4NjEzMzgiPiLhg57hg5jhg6Dhg5Phg5Dhg57hg5jhg6Dhg5gg4YOs4YOV4YOT4YOd4YOb4YOQIOGDl+GDpeGDleGDlOGDnCDhg6jhg5Thg6Hhg5Dhg67hg5Thg5Eg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOQ4YOW4YOULCDhg6Dhg53hg5vhg5Thg5rhg5jhg6og4YOh4YOQ4YOZ4YOd4YOc4YOi4YOQ4YOl4YOi4YOdIOGDkeGDkOGDoOGDkOGDl+GDluGDlOGDkCDhg6jhg5Thg5zhg5Dhg67hg6Phg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3NvY2lhbEluZm8iIG1zZ2lkPSI1Nzk5MDk2NjIzNDEyMDQzNzkxIj4i4YOX4YOl4YOV4YOU4YOc4YOYIOGDoeGDneGDquGDmOGDkOGDmuGDo+GDoOGDmCDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3NvY2lhbEluZm8iIG1zZ2lkPSI3MTI5ODQyNDU3NjExNjQzNDkzIj4i4YOX4YOl4YOV4YOU4YOc4YOhIOGDmeGDneGDnOGDouGDkOGDpeGDouGDlOGDkeGDmOGDoeGDkCDhg5Phg5Ag4YOh4YOd4YOq4YOY4YOQ4YOa4YOj4YOgIOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5Eg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOQ4YOW4YOUIOGDnuGDmOGDoOGDk+GDkOGDnuGDmOGDoOGDmCDhg6zhg5Xhg5Phg53hg5vhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2xvY2F0aW9uIiBtc2dpZD0iNjM1MTQ5NzQyNDM2NjkyMDQ5Ij4i4YOX4YOl4YOV4YOU4YOc4YOYIOGDm+GDk+GDlOGDkeGDkOGDoOGDlOGDneGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbG9jYXRpb24iIG1zZ2lkPSI1NzA0Njc5NzYzMTI0MTcwMTAwIj4i4YOX4YOl4YOV4YOU4YOc4YOYIOGDpOGDmOGDluGDmOGDmeGDo+GDoOGDmCDhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOb4YOd4YOc4YOY4YOi4YOd4YOg4YOY4YOc4YOS4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX25ldHdvcmsiIG1zZ2lkPSI1ODA4OTgzMzc3NzI3MTA5ODMxIj4i4YOl4YOh4YOU4YOa4YOY4YOhIOGDmeGDneGDm+GDo+GDnOGDmOGDmeGDkOGDquGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbmV0d29yayIgbXNnaWQ9IjQ0NzgyOTk0MTMyNDE4NjE5ODciPiLhg6zhg5Xhg5Phg53hg5vhg5Ag4YOl4YOh4YOU4YOa4YOY4YOhIOGDoeGDruGDleGDkOGDk+GDkOGDoeGDruGDleGDkCDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5fhg5Dhg5wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2JsdWV0b290aE5ldHdvcmsiIG1zZ2lkPSIxNTg1NDAzNTQ0MTYyMTI4MTA5Ij4iQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19ibHVldG9vdGhOZXR3b3JrIiBtc2dpZD0iNTYyNTI4ODU3NzE2NDI4MjM5MSI+IuGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDlOGDkeGDl+GDkOGDnCDhg5Phg5Ag4YOl4YOh4YOU4YOa4YOU4YOR4YOX4YOQ4YOcIOGDrOGDleGDk+GDneGDm+GDkCBCbHVldG9vdGgg4YOb4YOU4YOo4YOV4YOU4YOd4YOR4YOY4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hdWRpb1NldHRpbmdzIiBtc2dpZD0iODMyOTI2MTY3MDE1MTg3MTIzNSI+IuGDkOGDo+GDk+GDmOGDnSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2F1ZGlvU2V0dGluZ3MiIG1zZ2lkPSIyNjQxNTE1NDAzMzQ3NTY4MTMwIj4i4YOQ4YOj4YOT4YOY4YOdIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2FmZmVjdHNCYXR0ZXJ5IiBtc2dpZD0iNjIwOTI0NjY1MzQyNDc5ODAzMyI+IuGDkOGDluGDmOGDkOGDnOGDlOGDkeGDoSDhg5Thg5rhg5Thg5vhg5Thg5zhg6Lhg6EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FmZmVjdHNCYXR0ZXJ5IiBtc2dpZD0iNjQ0MTI3NTMyMDYzODkxNjk0NyI+IuGDmOGDmyDhg6Thg6Phg5zhg6Xhg6rhg5jhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOQLCDhg6Dhg53hg5vhg5Thg5rhg5jhg6og4YOU4YOa4YOU4YOb4YOU4YOc4YOi4YOhIOGDoeGDrOGDoOGDkOGDpOGDkOGDkyDhg5Phg5Dhg67hg5rhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2NhbGVuZGFyIiBtc2dpZD0iNTg2MzUwODQzNzc4MzY4MzkwMiI+IuGDmeGDkOGDmuGDlOGDnOGDk+GDkOGDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfY2FsZW5kYXIiIG1zZ2lkPSI1Nzc3NTM0MzE2OTgyMTg0NDE2Ij4i4YOZ4YOQ4YOa4YOU4YOc4YOT4YOQ4YOg4YOh4YOQIOGDk+GDkCDhg6bhg53hg5zhg5jhg6Hhg6vhg5jhg5Thg5Hhg5Thg5Hhg5bhg5Qg4YOe4YOY4YOg4YOT4YOQ4YOe4YOY4YOg4YOYIOGDrOGDleGDk+GDneGDm+GDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGljdGlvbmFyeSIgbXNnaWQ9IjQxNDg1OTcxMjg4NDM2NDEzNzkiPiLhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOa4YOU4YOl4YOh4YOY4YOZ4YOd4YOc4YOY4YOhIOGDrOGDkOGDmeGDmOGDl+GDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfZGljdGlvbmFyeSIgbXNnaWQ9Ijc5MjExNjYzNTU5NjQ3NjQ0OTAiPiLhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOa4YOU4YOl4YOh4YOY4YOZ4YOd4YOc4YOo4YOYIOGDoeGDmOGDouGDp+GDleGDlOGDkeGDmOGDoSDhg6zhg5Dhg5nhg5jhg5fhg67hg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iODA5MDIzNzcwMjQzMjU3Njc4OCI+IuGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg5rhg5Thg6Xhg6Hhg5jhg5nhg53hg5zhg6jhg5gg4YOp4YOQ4YOs4YOU4YOg4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY193cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSIyNzExNTYxOTk0NDk3MzYxNjQ2Ij4i4YOb4YOd4YOb4YOu4YOb4YOQ4YOg4YOU4YOR4YOa4YOY4YOhIOGDmuGDlOGDpeGDoeGDmOGDmeGDneGDnOGDqOGDmCDhg6Hhg5jhg6Lhg6fhg5Xhg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9ib29rbWFya3MiIG1zZ2lkPSIxOTQ5NTE5NjczMTAzOTY4MjI5Ij4i4YOh4YOQ4YOc4YOY4YOo4YOc4YOU4YOU4YOR4YOYIOGDk+GDkCDhg5jhg6Hhg6Lhg53hg6Dhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Jvb2ttYXJrcyIgbXNnaWQ9IjQxNjk3NzE2MDYyNTc5NjMwMjgiPiLhg57hg5jhg6Dhg5Phg5Dhg57hg5jhg6Dhg5gg4YOs4YOV4YOT4YOd4YOb4YOQIOGDoeGDkOGDnOGDmOGDqOGDnOGDlOGDlOGDkeGDoeGDkCDhg5Phg5Ag4YOR4YOg4YOQ4YOj4YOW4YOU4YOg4YOY4YOhIOGDmOGDoeGDouGDneGDoOGDmOGDkOGDluGDlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kZXZpY2VBbGFybXMiIG1zZ2lkPSI2MTE3NzA0NjI5NzI4ODI0MTAxIj4i4YOb4YOQ4YOm4YOV4YOY4YOr4YOQ4YOg4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kZXZpY2VBbGFybXMiIG1zZ2lkPSI0NzY5MzU2MzYyMjUxNjQxMTc1Ij4i4YOb4YOQ4YOm4YOV4YOY4YOr4YOQ4YOg4YOY4YOhIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfdm9pY2VtYWlsIiBtc2dpZD0iNDE2MjIzNzE0NTAyNzU5MjEzMyI+IuGDruGDm+GDneGDleGDkOGDnOGDmCDhg6Thg53hg6Hhg6Lhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3ZvaWNlbWFpbCIgbXNnaWQ9IjI0OTg0MDM5Njk4NjI5NTEzOTMiPiLhg57hg5jhg6Dhg5Phg5Dhg57hg5jhg6Dhg5gg4YOs4YOV4YOT4YOd4YOb4YOQIOGDruGDm+GDneGDleGDkOGDnCDhg6Thg53hg6Hhg6Lhg5Dhg5bhg5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbWljcm9waG9uZSIgbXNnaWQ9IjE3MTUzOTkwMDI1MDA0MzQ2NCI+IuGDm+GDmOGDmeGDoOGDneGDpOGDneGDnOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbWljcm9waG9uZSIgbXNnaWQ9IjcxMDY2MTgyODY5MDU3Mzg0MDgiPiLhg57hg5jhg6Dhg5Phg5Dhg57hg5jhg6Dhg5gg4YOs4YOV4YOT4YOd4YOb4YOQIOGDm+GDmOGDmeGDoOGDneGDpOGDneGDnOGDluGDlCDhg5Dhg6Phg5Phg5jhg53hg6Eg4YOp4YOQ4YOh4YOQ4YOs4YOU4YOg4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jYW1lcmEiIG1zZ2lkPSI0ODIwMzcyNDk1ODk0NTg2NjE1Ij4i4YOZ4YOQ4YOb4YOU4YOg4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19jYW1lcmEiIG1zZ2lkPSIyOTMzNjY3MzcyMjg5NTY3NzE0Ij4i4YOe4YOY4YOg4YOT4YOQ4YOe4YOY4YOg4YOYIOGDrOGDleGDk+GDneGDm+GDkCDhg5nhg5Dhg5vhg5Thg6Dhg5Dhg5bhg5Qg4YOh4YOj4YOg4YOQ4YOX4YOY4YOhIOGDkOGDnCDhg5Xhg5jhg5Phg5Thg53hg6Eg4YOS4YOQ4YOT4YOQ4YOh4YOQ4YOm4YOU4YOR4YOQ4YOTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3NjcmVlbmxvY2siIG1zZ2lkPSI4Mjc1NTAwMTczMzMwNzE4MTY4Ij4i4YOp4YOQ4YOZ4YOU4YOi4YOY4YOa4YOYIOGDlOGDmeGDoOGDkOGDnOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc2NyZWVubG9jayIgbXNnaWQ9IjcwNjc0OTcxMjg5MjU0OTk0MDEiPiLhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5jhg6Eg4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDqeGDkOGDm+GDmeGDlOGDouGDmOGDoSDhg6Xhg6rhg5Thg5Xhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOY4YOhIOGDqOGDlOGDoeGDkOGDq+GDmuGDlOGDkeGDmuGDneGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYXBwSW5mbyIgbXNnaWQ9IjgwMjg3ODk3NjI2MzQxNDc3MjUiPiLhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOU4YOR4YOY4YOhIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYXBwSW5mbyIgbXNnaWQ9IjM5NTAzNzg1MzgwNDk2MjU5MDciPiLhg5fhg6Xhg5Xhg5Thg5zhg6Eg4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOQ4YOW4YOUIOGDoeGDruGDleGDkCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Thg5Hhg5jhg6Eg4YOl4YOq4YOU4YOV4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDmOGDoSDhg6jhg5Thg6Hhg5Dhg6vhg5rhg5Thg5Hhg5rhg53hg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3dhbGxwYXBlciIgbXNnaWQ9IjM4NTAyODAxNTgwNDExNzU5OTgiPiLhg6Thg53hg5zhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3dhbGxwYXBlciIgbXNnaWQ9IjU2MzA0MTc4NTQ3NTA1NDAxNTQiPiLhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5jhg6Eg4YOk4YOd4YOc4YOY4YOhIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N5c3RlbUNsb2NrIiBtc2dpZD0iNDA2NTM1NzU5MjM2NjEyOTkyIj4i4YOh4YOQ4YOQ4YOX4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeXN0ZW1DbG9jayIgbXNnaWQ9IjM5NDQzNTk4MzM2MjQwOTQ5OTIiPiLhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5jhg6Eg4YOT4YOg4YOd4YOY4YOhIOGDkOGDnCDhg5Phg6Dhg53hg5jhg5fhg5gg4YOh4YOQ4YOg4YOi4YOn4YOa4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3RhdHVzQmFyIiBtc2dpZD0iMjA5NTg2MjU2ODExMzk0NTM5OCI+IuGDoeGDouGDkOGDouGDo+GDoeGDmOGDoSDhg5bhg53hg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N0YXR1c0JhciIgbXNnaWQ9IjYyNDI1OTM0MzIyMjY4MDcxNzEiPiLhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5jhg6Eg4YOh4YOi4YOQ4YOi4YOj4YOh4YOU4YOR4YOY4YOhIOGDluGDneGDmuGDmOGDoSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zeW5jU2V0dGluZ3MiIG1zZ2lkPSIzMzQxOTkwOTg2MTQ3ODI2NTQxIj4i4YOh4YOY4YOc4YOl4YOg4YOd4YOc4YOY4YOW4YOQ4YOq4YOY4YOY4YOhIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3luY1NldHRpbmdzIiBtc2dpZD0iNzYwMzE5NTI2NTEyOTAzMTc5NyI+IuGDoeGDmOGDnOGDpeGDoOGDneGDnOGDmOGDluGDkOGDquGDmOGDmOGDoSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5bhg5Qg4YOs4YOV4YOT4YOd4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2FjY291bnRzIiBtc2dpZD0iMzM1OTY0NjI5MTEyNTMyNTUxOSI+IuGDl+GDpeGDleGDlOGDnOGDmCDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FjY291bnRzIiBtc2dpZD0iNDk0ODczMjY0MTgyNzA5MTMxMiI+IuGDruGDlOGDmuGDm+GDmOGDoeGDkOGDrOGDleGDk+GDneGDmyDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5Thg5Hhg5bhg5Qg4YOs4YOV4YOT4YOd4YOb4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9oYXJkd2FyZUNvbnRyb2xzIiBtc2dpZD0iNzk5ODIxNDk2ODc5MTU5OTMyNiI+IuGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDlOGDkeGDmOGDoSDhg5vhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2hhcmR3YXJlQ29udHJvbHMiIG1zZ2lkPSI0MzU3MDU3ODYxMjI1NDYyNzAyIj4i4YOn4YOj4YOg4YOh4YOQ4YOq4YOV4YOQ4YOb4YOY4YOhIOGDkOGDnuGDkOGDoOGDkOGDouGDo+GDoOGDo+GDmiDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Dhg5bhg5Qg4YOe4YOY4YOg4YOT4YOQ4YOe4YOY4YOg4YOYIOGDrOGDleGDk+GDneGDm+GDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfcGhvbmVDYWxscyIgbXNnaWQ9IjkwNjcxNzM5ODgzMjU4NjU5MjMiPiLhg6Hhg5Dhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg50g4YOW4YOQ4YOg4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19waG9uZUNhbGxzIiBtc2dpZD0iNzQ4OTcwMTYyMDQ0NjE4Mzc3MCI+IuGDoeGDkOGDouGDlOGDmuGDlOGDpOGDneGDnOGDnSDhg5bhg5Dhg6Dhg5Thg5Hhg5jhg6Eg4YOb4YOd4YOc4YOY4YOi4YOd4YOg4YOY4YOc4YOS4YOYLCDhg6nhg5Dhg6zhg5Thg6Dhg5Ag4YOT4YOQIOGDkuGDkOGDnOGDruGDneGDoOGDquGDmOGDlOGDmuGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3lzdGVtVG9vbHMiIG1zZ2lkPSI0NjUyMTkxNjQ0MDgyNzE0MDQ4Ij4i4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDruGDlOGDmuGDoeGDkOGDrOGDp+GDneGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3lzdGVtVG9vbHMiIG1zZ2lkPSI4MTYyMTAyNjAyMTkwNzM0MzA1Ij4i4YOT4YOQ4YOR4YOQ4YOa4YOYIOGDrOGDleGDk+GDneGDm+GDkCDhg5Phg5Ag4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDmeGDneGDnOGDouGDoOGDneGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kZXZlbG9wbWVudFRvb2xzIiBtc2dpZD0iMzQ0NjE2NDU4NDcxMDU5NjUxMyI+IuGDk+GDlOGDleGDlOGDmuGDneGDnuGDm+GDlOGDnOGDouGDmOGDoSDhg5jhg5zhg6Hhg6Lhg6Dhg6Phg5vhg5Thg5zhg6Lhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RldmVsb3BtZW50VG9vbHMiIG1zZ2lkPSI3MDU4ODI4MDMyMzU4MTQyMDE4Ij4i4YOU4YOa4YOU4YOb4YOU4YOc4YOi4YOU4YOR4YOYLCDhg6Dhg53hg5vhg5rhg5Thg5Hhg5jhg6og4YOb4YOu4YOd4YOa4YOd4YOTIOGDkOGDnuGDlOGDkeGDmOGDoSDhg5Phg5Thg5Xhg5Thg5rhg53hg57hg5Thg6Dhg5Thg5Hhg6Eg4YOh4YOt4YOY4YOg4YOT4YOU4YOR4YOQ4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaXNwbGF5IiBtc2dpZD0iNDI3OTkwOTY3NjAzNjQwMjYzNiI+IuGDoeGDruGDleGDkCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5jhg6EgVUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Rpc3BsYXkiIG1zZ2lkPSI2MDUxMDAyMDMxOTMzMDEzNzE0Ij4i4YOh4YOu4YOV4YOQIOGDkOGDnuGDmuGDmOGDmeGDkOGDquGDmOGDlOGDkeGDmOGDoSBVSS3hg5jhg6Eg4YOU4YOk4YOU4YOl4YOi4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zdG9yYWdlIiBtc2dpZD0iMTk3MTExODc3MDU0NjMzNjk2NiI+IuGDqOGDlOGDoeGDkOGDnOGDkOGDruGDmCDhg6Hhg5jhg5Xhg6Dhg6rhg5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N0b3JhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzQ0MjMxODUwMjQ0Njg3NDk5OSI+IlVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5Dhg6Hhg5fhg5Dhg5wg4YOs4YOV4YOT4YOd4YOb4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjkyMDMzMDIyMTQ5MTUzNTU3NzQiPiJTRCDhg5Hhg5Dhg6Dhg5Dhg5fhg5fhg5Dhg5wg4YOs4YOV4YOT4YOd4YOb4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hY2Nlc3NpYmlsaXR5RmVhdHVyZXMiIG1zZ2lkPSI3OTE5MDI1NjAyMjgzNTkzOTA3Ij4i4YOs4YOV4YOT4YOd4YOb4YOY4YOhIOGDpOGDo+GDnOGDpeGDquGDmOGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNDIwNTE5Njg4MTY3ODE0NDMzNSI+IuGDpOGDo+GDnOGDpeGDquGDmOGDlOGDkeGDmCwg4YOg4YOd4YOb4YOU4YOa4YOY4YOqIOGDqOGDlOGDoeGDkOGDq+GDmuGDneGDkCDhg5vhg53hg5jhg5fhg67hg53hg5Xhg53hg6Eg4YOT4YOQ4YOb4YOu4YOb4YOQ4YOg4YOUIOGDouGDlOGDpeGDnOGDneGDmuGDneGDkuGDmOGDkOGDmy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJldHJpZXZlV2luZG93Q29udGVudCIgbXNnaWQ9IjM5MDE3MTc5MzY5MzAxNzAzMjAiPiLhg6Thg5Dhg5zhg6/hg6Dhg5jhg6Eg4YOZ4YOd4YOc4YOi4YOU4YOc4YOi4YOY4YOhIOGDm+GDneGDq+GDmOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXRyaWV2ZVdpbmRvd0NvbnRlbnQiIG1zZ2lkPSIzNzcyMjI1MDA4NjA1MzEwNjcyIj4i4YOo4YOU4YOQ4YOb4YOd4YOs4YOb4YOU4YOXIOGDmOGDmyDhg6Thg5Dhg5zhg6/hg6Dhg5jhg6Eg4YOZ4YOd4YOc4YOi4YOU4YOl4YOi4YOYLCDhg6Dhg53hg5vhg5Thg5rhg6jhg5jhg6og4YOb4YOj4YOo4YOQ4YOd4YOR4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdFRvdWNoRXhwbG9yYXRpb24iIG1zZ2lkPSIzMTA4NzIzMzY0Njc2NjY3MzIwIj4i4oCe4YOo4YOU4YOu4YOU4YOR4YOY4YOXIOGDkOGDpuGDm+GDneGDqeGDlOGDnOGDmOGDoeKAnCDhg6nhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmVxdWVzdFRvdWNoRXhwbG9yYXRpb24iIG1zZ2lkPSI1ODAwNTUyNTE2Nzc5MjQ5MzU2Ij4i4YOY4YOhIOGDlOGDoOGDl+GDlOGDo+GDmuGDlOGDkeGDmCwg4YOg4YOd4YOb4YOa4YOU4YOR4YOh4YOQ4YOqIOGDqOGDlOGDlOGDruGDlOGDkeGDmOGDlywg4YOs4YOQ4YOY4YOZ4YOY4YOX4YOu4YOU4YOR4YOQIOGDruGDm+GDkOGDm+GDkOGDpuGDmuGDkCDhg5Phg5Ag4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDmeGDleGDmuGDlOGDleGDkCDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOf4YOU4YOh4YOi4YOU4YOR4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJlcXVlc3RFbmhhbmNlZFdlYkFjY2Vzc2liaWxpdHkiIG1zZ2lkPSIxNzM5ODgxNzY2NTIyNTk0MDczIj4i4YOV4YOU4YOR4YOW4YOUIOGDkuGDkOGDm+GDkOGDoOGDouGDmOGDleGDlOGDkeGDo+GDmuGDmCDhg6zhg5Xhg5Phg53hg5vhg5jhg6Eg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOY4YOX4YOYIOGDqOGDlOGDoeGDkOGDq+GDmuGDlOGDkeGDmuGDneGDkeGDlOGDkeGDmOGDoSDhg6nhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmVxdWVzdEVuaGFuY2VkV2ViQWNjZXNzaWJpbGl0eSIgbXNnaWQ9Ijc4ODEwNjM5NjE1MDc1MTE3NjUiPiLhg6jhg5Thg6Hhg5Dhg6vhg5rhg5Thg5Hhg5Thg5rhg5jhg5Ag4YOh4YOZ4YOg4YOY4YOe4YOi4YOU4YOR4YOY4YOhIOGDmOGDnOGDoeGDouGDkOGDmuGDkOGDquGDmOGDkCDhg5Dhg57hg5jhg6Eg4YOZ4YOd4YOc4YOi4YOU4YOc4YOi4YOY4YOhIOGDrOGDleGDk+GDneGDm+GDkOGDk+GDneGDkeGDmOGDoSDhg6Phg5bhg6Dhg6Phg5zhg5Xhg5Thg5rhg6Hhg5Dhg6fhg53hg6Thg5Dhg5MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXF1ZXN0RmlsdGVyS2V5RXZlbnRzIiBtc2dpZD0iMjEwMzQ0MDM5MTkwMjQxMjE3NCI+IuGDl+GDpeGDleGDlOGDnCDhg5vhg5jhg5Thg6Ag4YOQ4YOZ4YOg4YOU4YOk4YOY4YOaIOGDouGDlOGDpeGDoeGDouGDluGDlCDhg5Phg5Dhg5nhg5Xhg5jhg6Dhg5Xhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmVxdWVzdEZpbHRlcktleUV2ZW50cyIgbXNnaWQ9Ijc0NjMxMzUyOTIyMDQxNTI4MTgiPiLhg6jhg5Thg5jhg6rhg5Dhg5Xhg6Eg4YOY4YOh4YOU4YOXIOGDnuGDmOGDoOGDkOGDkyDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg6EsIOGDoOGDneGDkuGDneGDoOGDmOGDquGDkOGDkCDhg6Hhg5Dhg5nhg6Dhg5Thg5Phg5jhg6Lhg50g4YOR4YOQ4YOg4YOQ4YOX4YOY4YOhIOGDnOGDneGDm+GDoOGDlOGDkeGDmCDhg5Phg5Ag4YOe4YOQ4YOg4YOd4YOa4YOU4YOR4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhdHVzQmFyIiBtc2dpZD0iNzQxNzE5MjYyOTYwMTg5MDc5MSI+IuGDoeGDouGDkOGDouGDo+GDoeGDmOGDoSDhg5bhg53hg5rhg5jhg6Eg4YOS4YOQ4YOX4YOY4YOo4YOV4YOQIOGDkOGDnCDhg6rhg5Xhg5rhg5jhg5rhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdGF0dXNCYXIiIG1zZ2lkPSI4NDM0NjY5NTQ5NTA0MjkwOTc1Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg6Hhg6Lhg5Dhg6Lhg6Phg6Hhg5Thg5Hhg5jhg6Eg4YOW4YOd4YOa4YOY4YOhIOGDkuGDkOGDl+GDmOGDqOGDleGDkCDhg5Phg5Ag4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDruGDkOGDouGDo+GDmuGDlOGDkeGDmOGDoSDhg5Phg5Dhg5vhg5Dhg6Lhg5Thg5Hhg5Av4YOs4YOQ4YOo4YOa4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhdHVzQmFyU2VydmljZSIgbXNnaWQ9IjcyNDcyODE5MTEzODc5MzE0ODUiPiLhg6Hhg6Lhg5Dhg6Lhg6Phg6Hhg5jhg6Eg4YOW4YOd4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyU2VydmljZSIgbXNnaWQ9IjcxNjExMzY2MDc5NTk3NjA2MCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOh4YOi4YOQ4YOi4YOj4YOh4YOY4YOhIOGDluGDneGDmuGDmOGDoSDhg6nhg5Dhg5zhg5Dhg6rhg5Xhg5rhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9leHBhbmRTdGF0dXNCYXIiIG1zZ2lkPSIxMTQ4MTk4Nzg1OTM3NDg5MjY0Ij4i4YOh4YOi4YOQ4YOi4YOj4YOh4YOU4YOR4YOY4YOhIOGDluGDneGDmuGDmOGDoSDhg5Lhg5Dhg6Thg5Dhg6Dhg5fhg53hg5Thg5Hhg5Av4YOQ4YOZ4YOU4YOq4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZXhwYW5kU3RhdHVzQmFyIiBtc2dpZD0iNjkxNzU0OTQzNzEyOTQwMTEzMiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOh4YOi4YOQ4YOi4YOj4YOh4YOY4YOhIOGDluGDneGDmuGDmOGDoSDhg5Lhg5Dhg67hg6Hhg5zhg5At4YOT4YOQ4YOu4YOj4YOg4YOV4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcHJvY2Vzc091dGdvaW5nQ2FsbHMiIG1zZ2lkPSIzOTA2MDA3ODMxMTkyOTkwOTQ2Ij4i4YOS4YOQ4YOb4YOQ4YOV4YOQ4YOa4YOYIOGDluGDkOGDoOGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg5vhg5jhg6Hhg5Dhg5vhg5Dhg6Dhg5fhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wcm9jZXNzT3V0Z29pbmdDYWxscyIgbXNnaWQ9IjUzMzEzMTg5MzE5Mzc0MDIwNDAiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDkuGDkOGDm+GDkOGDleGDkOGDmuGDmCDhg5bhg5Dhg6Dhg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOb4YOj4YOo4YOQ4YOV4YOU4YOR4YOQIOGDk+GDkCDhg5Dhg6Hhg5Dhg5nhg6Dhg5Thg6Thg5gg4YOc4YOd4YOb4YOg4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkC4g4YOU4YOhIOGDo+GDpOGDmuGDlOGDkeGDkCDhg5Dhg57hg6Eg4YOQ4YOr4YOa4YOU4YOV4YOhIOGDqOGDlOGDoeGDkOGDq+GDmuGDlOGDkeGDmuGDneGDkeGDkOGDoSDhg5Dhg5nhg53hg5zhg6Lhg6Dhg53hg5rhg53hg6EsIOGDkuGDkOGDk+GDkOGDkOGDm+GDmOGDoeGDkOGDm+GDkOGDoOGDl+GDneGDoSDhg5Dhg5wg4YOQ4YOm4YOZ4YOV4YOU4YOX4YOd4YOhIOGDkuGDkOGDm+GDkOGDleGDkOGDmuGDmCDhg5bhg5Dhg6Dhg5Thg5Hhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlU21zIiBtc2dpZD0iODY3MzQ3MTc2ODk0Nzg5NTA4MiI+IuGDouGDlOGDpeGDoeGDouGDo+GDoOGDmCDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5jhg6EgKFNNUykg4YOb4YOY4YOm4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVNtcyIgbXNnaWQ9IjY0MjQzODc3NTQyMjg3NjY5MzkiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIFNNUyDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5jhg6Eg4YOb4YOY4YOm4YOU4YOR4YOQIOGDk+GDkCDhg5Phg5Dhg5vhg6Phg6jhg5Dhg5Xhg5Thg5Hhg5AuIOGDlOGDoSDhg5zhg5jhg6jhg5zhg5Dhg5Xhg6EsIOGDoOGDneGDmyDhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDl+GDpeGDleGDlOGDnCDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Dhg5bhg5Qg4YOS4YOQ4YOb4YOd4YOS4YOW4YOQ4YOV4YOc4YOY4YOa4YOYIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmOGDoSDhg5vhg53hg5zhg5jhg6Lhg53hg6Dhg5jhg5zhg5Lhg5gg4YOT4YOQIOGDm+GDkOGDl+GDmCDhg6zhg5Dhg6jhg5rhg5Ag4YOX4YOl4YOV4YOU4YOc4YOX4YOV4YOY4YOhIOGDqeGDleGDlOGDnOGDlOGDkeGDmOGDoSDhg5Lhg5Dhg6Dhg5Thg6jhg5QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlTW1zIiBtc2dpZD0iMTgyMTMxNzM0NDY2ODI1NzA5OCI+IuGDouGDlOGDpeGDoeGDouGDo+GDoOGDmCDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5jhg6EgKE1NUykg4YOb4YOY4YOm4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZU1tcyIgbXNnaWQ9IjUzMzAxOTQzNzI2MzIxMjI2MCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AgTU1TIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmOGDoSDhg5vhg5jhg6bhg5Thg5Hhg5Ag4YOT4YOQIOGDk+GDkOGDm+GDo+GDqOGDkOGDleGDlOGDkeGDkC4g4YOU4YOhIOGDnOGDmOGDqOGDnOGDkOGDleGDoSwg4YOg4YOd4YObIOGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOY4YOhIOGDm+GDneGDnOGDmOGDouGDneGDoOGDmOGDnOGDkuGDmCDhg5Phg5Ag4YOb4YOQ4YOX4YOYIOGDrOGDkOGDqOGDmuGDkCDhg5fhg6Xhg5Xhg5Thg5zhg5fhg5Xhg5jhg6Eg4YOp4YOV4YOU4YOc4YOU4YOR4YOY4YOhIOGDkuGDkOGDoOGDlOGDqOGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVFbWVyZ2VuY3lCcm9hZGNhc3QiIG1zZ2lkPSIxODAzNDc3NjYwODQ2Mjg4MDg5Ij4i4YOS4YOQ4YOT4YOQ4YOj4YOT4YOU4YOR4YOU4YOa4YOYIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmOGDoSDhg5vhg5jhg6bhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlRW1lcmdlbmN5QnJvYWRjYXN0IiBtc2dpZD0iODQ4NTI0MDcwMjYyNDMxOTc0Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOb4YOY4YOY4YOm4YOd4YOhIOGDk+GDkCDhg5Phg5Dhg5Dhg5vhg6Phg6jhg5Dhg53hg6Eg4YOh4YOQ4YOS4YOQ4YOc4YOS4YOU4YOR4YOdIOGDoeGDkOGDm+GDkOGDo+GDrOGDp+GDlOGDkeGDmuGDnSDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5guIOGDlOGDoSDhg5zhg5Thg5Hhg5Dhg6Dhg5fhg5Xhg5Ag4YOu4YOU4YOa4YOb4YOY4YOh4YOQ4YOs4YOV4YOT4YOd4YOb4YOY4YOQIOGDm+GDruGDneGDmuGDneGDkyAg4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDkOGDnuGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDZWxsQnJvYWRjYXN0cyIgbXNnaWQ9IjE1OTgzMjg4NDM2MTk2NDYxNjYiPiLhg5vhg5Dhg6Hhg5jhg6Phg6Dhg5gg4YOT4YOQ4YOS4YOW4YOQ4YOV4YOc4YOY4YOhIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmOGDoSDhg6zhg5Dhg5nhg5jhg5fhg67hg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2VsbEJyb2FkY2FzdHMiIG1zZ2lkPSI2MzYxOTcyNzc2MDgwNDU4OTc5Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOs4YOQ4YOY4YOZ4YOY4YOX4YOu4YOd4YOhIOGDl+GDpeGDleGDlOGDnOGDoSDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Dhg5bhg5Qg4YOS4YOQ4YOb4YOd4YOS4YOW4YOQ4YOV4YOc4YOY4YOa4YOYIOGDpeGDoeGDlOGDmuGDmOGDoSDhg6Hhg5Dhg5vhg5Dhg6Phg6zhg6fhg5Thg5Hhg5rhg50g4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOYLiDhg6Hhg5Dhg5vhg5Dhg6Phg6zhg6fhg5Thg5Hhg5rhg50g4YOS4YOQ4YOk4YOg4YOX4YOu4YOY4YOa4YOU4YOR4YOU4YOR4YOYIOGDm+GDneGDkuGDlOGDrOGDneGDk+GDlOGDkeGDkOGDlyDhg5bhg53hg5Lhg5jhg5Thg6Dhg5cg4YOQ4YOT4YOS4YOY4YOa4YOW4YOUIOGDlOGDpeGDoeGDouGDoOGDlOGDm+GDkOGDmuGDo+GDoOGDmCDhg6Hhg5jhg6Lhg6Phg5Dhg6rhg5jhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOu4YOU4YORIOGDkuGDkOGDoeGDkOGDpOGDoOGDl+GDruGDmOGDmuGDlOGDkeGDmuGDkOGDky4g4YOl4YOh4YOU4YOa4YOY4YOhIOGDkuGDkOGDk+GDkOGDo+GDk+GDlOGDkeGDlOGDmuGDmCDhg6jhg5Thg6Lhg6fhg53hg5zhg5jhg5Hhg5Thg5zhg5jhg6Eg4YOb4YOY4YOm4YOU4YOR4YOY4YOhIOGDk+GDoOGDneGDoSDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOU4YOR4YOb4YOQIOGDqOGDlOGDmOGDq+GDmuGDlOGDkeGDkCDhg67hg5Thg5rhg5gg4YOo4YOU4YOj4YOo4YOQ4YOa4YOd4YOcIOGDl+GDpeGDleGDlOGDnOGDmCDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5jhg6Eg4YOk4YOj4YOc4YOl4YOq4YOY4YOd4YOc4YOY4YOg4YOU4YOR4YOQ4YOhIOGDkOGDnCDhg53hg57hg5Thg6Dhg5Dhg6rhg5jhg5Thg5Hhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZW5kU21zIiBtc2dpZD0iNTYwMDgzMDYxMjE0NzY3MTUyOSI+IlNNUyDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg6Eg4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VuZFNtcyIgbXNnaWQ9IjcwOTQ3MjkyOTgyMDQ5Mzc2NjciPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg53hg6EgU01TIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmCwg4YOg4YOQ4YOb4YOQ4YOqIOGDqOGDlOGDmOGDq+GDmuGDlOGDkeGDkCDhg5Lhg5Dhg6Phg5fhg5Xhg5Dhg5rhg5jhg6Hhg6zhg5jhg5zhg5Thg5Hhg5Thg5rhg5gg4YOu4YOQ4YOg4YOv4YOU4YOR4YOYIOGDkuGDkOGDm+GDneGDmOGDrOGDleGDmOGDneGDoS4g4YOb4YOQ4YOV4YOc4YOUIOGDkOGDnuGDlOGDkeGDm+GDkCDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOT4YOQ4YOS4YOY4YOu4YOQ4YOg4YOv4YOd4YOcIOGDpOGDo+GDmuGDmCDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5jhg6Eg4YOX4YOl4YOV4YOU4YOc4YOYIOGDl+GDkOGDnOGDruGDm+GDneGDkeGDmOGDoSDhg5Lhg5Dhg6Dhg5Thg6jhg5Qg4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOY4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9Ijg3MTM4ODkxMDUzMDU5NDMyMDAiPiLhg6bhg53hg5zhg5jhg6Hhg6vhg5jhg5Thg5Hhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOQICjhg57hg5Dhg6Hhg6Phg67hg5jhg6Eg4YOb4YOY4YOm4YOU4YOR4YOQIOGDm+GDruGDneGDmuGDneGDkyDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5jhg5cpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9IjcxMDc2NDg1NDg0Njg3Nzg3MzQiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg5Lhg5Dhg6Phg5Lhg5bhg5Dhg5Xhg5zhg53hg6Eg4YOb4YOd4YOX4YOu4YOd4YOV4YOc4YOU4YOR4YOYIOGDoeGDruGDleGDkCDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5jhg6Eg4YOQ4YOe4YOU4YOR4YOhIOGDqOGDlOGDm+GDneGDm+GDkOGDleGDkOGDmiDhg5bhg5Dhg6Dhg5Thg5Hhg5bhg5Qg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOY4YOXIOGDnuGDkOGDoeGDo+GDruGDmOGDoSDhg5vhg53hg5Xhg5rhg5Thg5zhg5Thg5Hhg5fhg5Dhg5wg4YOS4YOQ4YOh4YOQ4YOb4YOZ4YOa4YOQ4YOV4YOU4YOR4YOa4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFNtcyIgbXNnaWQ9Ijg3NDUwODY1NzIyMTMyNzA0ODAiPiLhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOi4YOU4YOl4YOh4YOi4YOj4YOg4YOYIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmOGDoSAoU01TIOGDkOGDnCBNTVMpIOGDrOGDkOGDmeGDmOGDl+GDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTbXMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI0Njc5ODE1NDg2ODQ3MzU1MjIiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDl+GDpeGDleGDlOGDnOGDoSDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg6jhg5gg4YOQ4YOcIFNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg6jhg5gg4YOo4YOU4YOc4YOQ4YOu4YOj4YOa4YOYIFNNUyDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5jhg6Eg4YOs4YOQ4YOZ4YOY4YOX4YOu4YOV4YOQLiDhg5Dhg5vhg5Lhg5Xhg5Dhg6Dhg5Dhg5MsIOGDkOGDnuGDoSDhg5Thg6Xhg5zhg5Thg5Hhg5Ag4YOo4YOU4YOh4YOQ4YOr4YOa4YOU4YOR4YOa4YOd4YOR4YOQIOGDrOGDkOGDmOGDmeGDmOGDl+GDruGDneGDoSDhg6fhg5Xhg5Thg5rhg5AgU01TIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDkCwg4YOb4YOQ4YOX4YOYIOGDmeGDneGDnOGDouGDlOGDnOGDouGDmOGDoeGDkCDhg5Phg5Ag4YOZ4YOd4YOc4YOk4YOY4YOT4YOU4YOc4YOq4YOY4YOQ4YOa4YOj4YOg4YOd4YOR4YOY4YOhIOGDm+GDmOGDo+GDruGDlOGDk+GDkOGDleGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzY5NTk2NzUzMzQ1NzI0MDU1MCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOX4YOl4YOV4YOU4YOc4YOhIOGDouGDkOGDkeGDmuGDlOGDouGDqOGDmCDhg5Dhg5wgU0lNIOGDkeGDkOGDoOGDkOGDl+GDqOGDmCDhg6jhg5Thg5zhg5Dhg67hg6Phg5rhg5ggU01TIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmOGDoSDhg6zhg5Dhg5nhg5jhg5fhg67hg5Xhg5AuIOGDkOGDm+GDkuGDleGDkOGDoOGDkOGDkywg4YOQ4YOe4YOhIOGDlOGDpeGDnOGDlOGDkeGDkCDhg6jhg5Thg6Hhg5Dhg6vhg5rhg5Thg5Hhg5rhg53hg5Hhg5Ag4YOs4YOQ4YOY4YOZ4YOY4YOX4YOu4YOd4YOhIOGDp+GDleGDlOGDmuGDkCBTTVMg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOQLCDhg5vhg5Dhg5fhg5gg4YOZ4YOd4YOc4YOi4YOU4YOc4YOi4YOY4YOh4YOQIOGDk+GDkCDhg5nhg53hg5zhg6Thg5jhg5Phg5Thg5zhg6rhg5jhg5Dhg5rhg6Phg6Dhg53hg5Hhg5jhg6Eg4YOb4YOY4YOj4YOu4YOU4YOT4YOQ4YOV4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTbXMiIG1zZ2lkPSIzMjE2OTUwNDcyNjM2MjE0Nzc0Ij4i4YOX4YOl4YOV4YOU4YOc4YOYIOGDouGDlOGDpeGDoeGDouGDo+GDoOGDmCDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5jhg6EgKFNNUyDhg5Dhg5wgTU1TKSDhg6Dhg5Thg5Phg5Dhg6Xhg6Lhg5jhg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNtcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNTE2MDQxMzk0Nzc5NDUwMTUzOCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDo+GDnuGDkOGDoeGDo+GDruGDneGDoSDhg5fhg6Xhg5Xhg5Thg5wg4YOi4YOQ4YOR4YOa4YOU4YOi4YOo4YOYIOGDkOGDnCBTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOW4YOUIOGDqOGDlOGDnOGDkOGDruGDo+GDmiBTTVMg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOhLiDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOU4YOR4YOb4YOQIOGDqOGDlOGDmOGDq+GDmuGDlOGDkeGDkCDhg6zhg5Dhg6jhg5Dhg5rhg53hg5wg4YOX4YOl4YOV4YOU4YOc4YOYIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcyNjg2Njg3MDkwNTIzMjg1NjciPiLhg5Dhg57hg6Eg4YOj4YOk4YOa4YOU4YOR4YOQIOGDlOGDpeGDnOGDlOGDkeGDkCAsIOGDo+GDnuGDkOGDoeGDo+GDruGDneGDoSDhg5fhg6Xhg5Xhg5Thg5wg4YOi4YOQ4YOR4YOa4YOU4YOi4YOo4YOYIOGDkOGDnCBTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOW4YOUIOGDqOGDlOGDnOGDkOGDruGDo+GDmiBTTVMg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOhLiDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOU4YOR4YOb4YOQIOGDqOGDlOGDmOGDq+GDmuGDlOGDkeGDkCDhg6zhg5Dhg6jhg5Dhg5rhg53hg5wg4YOX4YOl4YOV4YOU4YOc4YOYIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVXYXBQdXNoIiBtc2dpZD0iNTk5MTM5ODcxMTkzNjU5MDQxMCI+IuGDouGDlOGDpeGDoeGDouGDo+GDoOGDmCDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5jhg6EgKFdBUCkg4YOb4YOY4YOm4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI3NDgyMzIxOTAyMjA1ODMzODUiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIFdBUCDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5jhg6Eg4YOb4YOY4YOm4YOU4YOR4YOQIOGDk+GDkCDhg5Lhg5Thg5zhg5Thg6Dhg5jhg6Dhg5Thg5Hhg5AuIOGDkOGDmyDhg6Phg6Thg5rhg5Thg5Hhg5jhg5cg4YOQ4YOe4YOYIOGDmOGDoeGDlCDhg5Phg5Dhg5Dhg5nhg5Xhg5jhg6Dhg5Phg5Thg5Hhg5Ag4YOT4YOQIOGDrOGDkOGDqOGDmuGDmOGDoSDhg5fhg6Xhg5Xhg5Thg5zhg5fhg5Xhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOS4YOW4YOQ4YOV4YOc4YOY4YOaIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDoSwg4YOg4YOd4YObIOGDl+GDpeGDleGDlOGDnCDhg5Xhg5Thg6Dhg6og4YOc4YOQ4YOu4YOQ4YOV4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0VGFza3MiIG1zZ2lkPSI2NDY2MDk1Mzk2NjIzOTMzOTA2Ij4i4YOb4YOd4YOl4YOb4YOU4YOT4YOYIOGDkOGDnuGDlOGDkeGDmOGDoSDhg5vhg53hg6vhg5jhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRUYXNrcyIgbXNnaWQ9Ijc0NTQyMTU5OTU4NDc2NTgxMDIiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDm+GDneGDmOGDq+GDmOGDneGDoSDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5Ag4YOQ4YOb4YOf4YOQ4YOb4YOQ4YOTIOGDk+GDkCDhg6Phg5Dhg67hg5rhg53hg5Thg6Eg4YOs4YOQ4YOg4YOh4YOj4YOa4YOo4YOYIOGDm+GDmOGDm+GDk+GDmOGDnOGDkOGDoOGDlCDhg5Dhg5vhg53hg6rhg5Dhg5zhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOu4YOU4YORLiDhg5Dhg5vhg5Lhg5Xhg5Dhg6Dhg5Dhg5MsIOGDkOGDnuGDoSDhg5Dhg6Xhg5Xhg6Eg4YOo4YOU4YOh4YOQ4YOr4YOa4YOU4YOR4YOa4YOd4YOR4YOQIOGDkOGDpuGDm+GDneGDkOGDqeGDmOGDnOGDneGDoSDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5Ag4YOY4YOb4YOY4YOhIOGDqOGDlOGDoeGDkOGDruGDlOGDkSwg4YOX4YOjIOGDoOGDneGDm+GDlOGDmuGDmCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Thg5Hhg5jhg5Ag4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOj4YOa4YOYIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDkOGDluGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVyYWN0QWNyb3NzVXNlcnMiIG1zZ2lkPSI3MTE0MjU1MjgxOTQ0MjExNjgyIj4i4YOb4YOd4YOb4YOu4YOb4YOQ4YOg4YOU4YOR4YOa4YOU4YOR4YOhIOGDqOGDneGDoOGDmOGDoSDhg5jhg5zhg6Lhg5Thg6Dhg5Dhg6Xhg6rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcmFjdEFjcm9zc1VzZXJzIiBtc2dpZD0iMzY0NjcwOTYzNjIzMzg1Nzg2Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOh4YOu4YOV4YOQ4YOT4YOQ4YOh4YOu4YOV4YOQIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg5vhg53hg6Xhg5vhg5Thg5Phg5Thg5Hhg5Thg5Hhg5gg4YOo4YOU4YOQ4YOh4YOg4YOj4YOa4YOd4YOhIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDkOGDluGDlC4g4YOb4YOQ4YOV4YOc4YOUIOGDkOGDnuGDlOGDkeGDm+GDkCDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOb4YOd4YOb4YOu4YOb4YOQ4YOg4YOU4YOR4YOa4YOU4YOR4YOhIOGDqOGDneGDoOGDmOGDoSDhg5Phg5Dhg6rhg5Xhg5jhg6Eg4YOT4YOQ4YOh4YOQ4YOg4YOm4YOV4YOU4YOV4YOQ4YOTIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDneGDnC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVyYWN0QWNyb3NzVXNlcnNGdWxsIiBtc2dpZD0iMjU2NzczNDI4NTU0NTA3NDEwNSI+IuGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDlOGDkeGDl+GDkOGDnCDhg5jhg5zhg6Lhg5Thg6Dhg5Dhg6Xhg6rhg5jhg5jhg6Eg4YOh4YOg4YOj4YOa4YOYIOGDmuGDmOGDquGDlOGDnOGDluGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludGVyYWN0QWNyb3NzVXNlcnNGdWxsIiBtc2dpZD0iMzc2ODQxMzY4Mzk1NTAyMzY2Ij4i4YOQ4YOr4YOa4YOU4YOV4YOhIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDlOGDkeGDoSDhg6jhg53hg6Dhg5jhg6Eg4YOn4YOV4YOU4YOa4YOQIOGDqOGDlOGDoeGDkOGDq+GDmuGDnSDhg5jhg5zhg6Lhg5Thg6Dhg5Dhg6Xhg6rhg5jhg5jhg6Eg4YOj4YOk4YOa4YOU4YOR4YOQ4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlVXNlcnMiIG1zZ2lkPSIxNjc2MTUwOTExNjcyMjgyNDI4Ij4i4YOb4YOd4YOb4YOu4YOb4YOQ4YOg4YOU4YOR4YOa4YOU4YOR4YOY4YOhIOGDm+GDkOGDoOGDl+GDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZVVzZXJzIiBtc2dpZD0iODQwOTMwNjY2NzY0NTM1NTYzOCI+IuGDkOGDnuGDoSDhg6jhg5Thg6Phg6vhg5rhg5jhg5Ag4YOb4YOd4YOb4YOu4YOb4YOQ4YOg4YOU4YOR4YOa4YOU4YOR4YOY4YOhIOGDm+GDkOGDoOGDl+GDleGDkCDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Dhg5bhg5QsIOGDm+GDkOGDlyDhg6jhg53hg6Dhg5jhg6Eg4YOb4YOd4YOX4YOu4YOd4YOV4YOc4YOY4YOhLCDhg6jhg5Thg6Xhg5vhg5zhg5jhg6Eg4YOT4YOQIOGDrOGDkOGDqOGDmuGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldERldGFpbGVkVGFza3MiIG1zZ2lkPSI2MjI5NDY4Njc0NzUzNTI5NTAxIj4i4YOb4YOd4YOl4YOb4YOU4YOT4YOYIOGDkOGDnuGDlOGDkeGDmOGDoSDhg5Phg5Thg6Lhg5Dhg5rhg5Thg5Hhg5jhg6Eg4YOb4YOd4YOr4YOY4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0RGV0YWlsZWRUYXNrcyIgbXNnaWQ9IjE1MzgyNDc0MTQ0MDcxNzU5OSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOb4YOd4YOY4YOr4YOY4YOd4YOhIOGDk+GDlOGDouGDkOGDmuGDo+GDoOGDmCDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5Ag4YOQ4YOb4YOf4YOQ4YOb4YOQ4YOTIOGDk+GDkCDhg6Phg5Dhg67hg5rhg53hg5Thg6Eg4YOs4YOQ4YOg4YOh4YOj4YOa4YOo4YOYIOGDm+GDmOGDm+GDk+GDmOGDnOGDkOGDoOGDlCDhg5Dhg5vhg53hg6rhg5Dhg5zhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOu4YOU4YORLiDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOU4YOR4YOhIOGDqOGDlOGDo+GDq+GDmuGDmOGDkOGDlyDhg5Dhg6bhg5vhg53hg5Dhg6nhg5jhg5zhg53hg5wg4YOe4YOY4YOg4YOQ4YOT4YOYIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDkCDhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOU4YOR4YOY4YOhIOGDqOGDlOGDoeGDkOGDruGDlOGDkS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3Jlb3JkZXJUYXNrcyIgbXNnaWQ9IjIwMTg1NzU1MjY5MzQ0MjI3NzkiPiLhg5vhg53hg6Xhg5vhg5Thg5Phg5gg4YOQ4YOe4YOU4YOR4YOY4YOhIOGDrOGDp+GDneGDkeGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZW9yZGVyVGFza3MiIG1zZ2lkPSI3NzM0MjE3NzU0ODc3NDM5MzUxIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5Dhg5vhg53hg6rhg5Dhg5zhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOT4YOQ4YOi4YOQ4YOc4YOQIOGDrOGDmOGDnOGDkCDhg5Phg5Ag4YOj4YOZ4YOQ4YOc4YOQIOGDnuGDmuGDkOGDnOGDluGDlC4g4YOQ4YOb4YOQ4YOhIOGDl+GDpeGDleGDlOGDnOGDmCDhg6nhg5Dhg6Dhg5Thg5Xhg5jhg6Eg4YOS4YOQ4YOg4YOU4YOo4YOUIOGDkuGDkOGDkOGDmeGDlOGDl+GDlOGDkeGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlbW92ZVRhc2tzIiBtc2dpZD0iNjgyMTUxMzQwMTg3MDM3NzQwMyI+IuGDkuGDkOGDqOGDleGDlOGDkeGDo+GDmuGDmCDhg5Dhg57hg5Thg5Hhg5jhg6Eg4YOo4YOU4YOs4YOn4YOV4YOU4YOi4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVtb3ZlVGFza3MiIG1zZ2lkPSIxMzk0NzE0MzUyMDYyNjM1NDkzIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5Dhg5vhg53hg6rhg5Dhg5zhg5Thg5Hhg5jhg6Eg4YOs4YOQ4YOo4YOa4YOQIOGDk+GDkCDhg5vhg5Dhg5fhg5gg4YOQ4YOe4YOU4YOR4YOY4YOhIOGDkuGDkOGDo+GDpeGDm+GDlOGDkeGDkC4g4YOb4YOQ4YOV4YOc4YOUIOGDkOGDnuGDlOGDkeGDm+GDkCDhg6jhg5Thg6Hhg5Dhg6vhg5rhg53hg5Ag4YOT4YOQ4YOQ4YOg4YOm4YOV4YOY4YOd4YOcIOGDoeGDruGDleGDkCDhg5Dhg57hg5Thg5Hhg5jhg6Eg4YOb4YOd4YOl4YOb4YOU4YOT4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQWN0aXZpdHlTdGFja3MiIG1zZ2lkPSI3MzkxMTkxMzg0MDI3MzAzMDY1Ij4i4YOQ4YOl4YOi4YOY4YOV4YOd4YOR4YOY4YOhIOGDk+GDkOGDoeGDouGDlOGDkeGDmOGDoSDhg5vhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjE2MTU4ODE5MzMwMzQwODQ0NDAiPiLhg6Hhg5Dhg6jhg6Phg5Dhg5rhg5Thg5Hhg5Dhg6Eg4YOQ4YOr4YOa4YOU4YOV4YOhIOGDkOGDnuGDoSDhg5Phg5Dhg5Dhg5vhg5Dhg6Lhg53hg6EsIOGDkOGDm+GDneGDqOGDkOGDmuGDneGDoSDhg5Phg5Ag4YOo4YOU4YOq4YOV4YOQ4YOa4YOd4YOhIOGDkOGDpeGDouGDmOGDleGDneGDkeGDmOGDoSDhg5Phg5Dhg6Hhg6Lhg5Thg5Hhg5gsIOGDoOGDkOGDqOGDmOGDqiDhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOU4YOR4YOYIOGDlOGDqOGDleGDlOGDkeGDkC4g4YOb4YOQ4YOV4YOc4YOUIOGDkOGDnuGDlOGDkeGDmCDhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOU4YOR4YOhIOGDpeGDquGDlOGDleGDmOGDoSDhg67hg5Thg5rhg5jhg6Eg4YOo4YOU4YOo4YOa4YOQ4YOhIOGDqOGDlOGDq+GDmuGDlOGDkeGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0YXJ0QW55QWN0aXZpdHkiIG1zZ2lkPSIyOTE4NzY4MjM4MDQ1MjA2NDU2Ij4i4YOc4YOU4YOR4YOY4YOh4YOb4YOY4YOU4YOg4YOYIOGDkOGDpeGDouGDmOGDleGDneGDkeGDmOGDoSDhg6zhg5Dhg5vhg53hg6zhg6fhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdGFydEFueUFjdGl2aXR5IiBtc2dpZD0iOTk3ODIzNjk1MzQzNTg0MDAxIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5Phg5Dhg5jhg6zhg6fhg53hg6Eg4YOc4YOU4YOR4YOY4YOh4YOb4YOY4YOU4YOg4YOYIOGDkOGDpeGDouGDmOGDleGDneGDkeGDkCwg4YOn4YOd4YOV4YOU4YOa4YOS4YOV4YOQ4YOg4YOYIOGDo+GDpOGDmuGDlOGDkeGDmOGDoeGDkCDhg5Phg5Ag4YOh4YOi4YOQ4YOi4YOj4YOh4YOY4YOhIOGDkuGDkOGDoOGDlOGDqOGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFNjcmVlbkNvbXBhdGliaWxpdHkiIG1zZ2lkPSI2OTc1Mzg3MTE4ODYxODQyMDYxIj4i4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDl+GDkOGDleGDoeGDlOGDkeGDkOGDk+GDneGDkeGDmOGDoSDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjkyMDQzNjE4NjkzOTE3Mzc0Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOU4YOR4YOX4YOQ4YOcIOGDlOGDmeGDoOGDkOGDnOGDmOGDoSDhg5fhg5Dhg5Xhg6Hhg5Thg5Hhg5Dhg5Phg53hg5Hhg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOY4YOhIOGDmeGDneGDnOGDouGDoOGDneGDmuGDmC4g4YOb4YOQ4YOV4YOc4YOUIOGDkOGDnuGDmuGDmOGDmeGDkOGDquGDmOGDlOGDkeGDm+GDkCDhg6jhg5Thg6Hhg5Dhg6vhg5rhg53hg5Ag4YOh4YOu4YOV4YOQIOGDkOGDnuGDmuGDmOGDkOGDmeGDquGDmOGDlOGDkeGDmOGDoSDhg6Xhg6rhg5Thg5Xhg5Ag4YOo4YOU4YOq4YOV4YOQ4YOa4YOd4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0RGVidWdBcHAiIG1zZ2lkPSIzMDIyMTA3MTk4Njg2NTg0MDUyIj4i4YOQ4YOe4YOY4YOhIOGDkuGDkOGDm+GDkOGDoOGDl+GDleGDmOGDoSDhg5Lhg5Dhg5Dhg6Xhg6Lhg5jhg6Phg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXREZWJ1Z0FwcCIgbXNnaWQ9IjQ0NzQ1MTI0MTYyOTkwMTMyNTYiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDoeGDruGDleGDkCDhg5Dhg57hg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOS4YOQ4YOb4YOQ4YOg4YOX4YOV4YOY4YOhIOGDoOGDlOGDn+GDmOGDm+GDmOGDoSDhg6nhg5Dhg6Dhg5fhg5Xhg5AuIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Thg5Hhg6Eg4YOQ4YObIOGDpOGDo+GDnOGDpeGDquGDmOGDmOGDlyDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Dhg5cg4YOh4YOu4YOV4YOQIOGDkOGDnuGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5fhg5jhg6jhg5Xhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VDb25maWd1cmF0aW9uIiBtc2dpZD0iNDE2MjA5MjE4NTEyNDIzNDQ4MCI+IuGDoeGDmOGDoeGDouGDlOGDm+GDmOGDoSDhg5jhg5zhg6Lhg5Thg6Dhg6Thg5Thg5jhg6Hhg5jhg6Eg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUNvbmZpZ3VyYXRpb24iIG1zZ2lkPSI0MzcyMjIzODczMTU0Mjk2MDc2Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOo4YOU4YOq4YOV4YOQ4YOa4YOd4YOhIOGDkOGDm+GDn+GDkOGDm+GDmOGDnOGDk+GDlOGDmuGDmCDhg5nhg53hg5zhg6Thg5jhg5Lhg6Phg6Dhg5Dhg6rhg5jhg5AsIOGDm+GDkOGDkuGDkOGDmuGDmOGDl+GDkOGDkywg4YOU4YOc4YOQIOGDk+GDkCDhg6Xhg5Xhg5Thg6fhg5zhg5jhg6Eg4YOZ4YOd4YOT4YOYIOGDkOGDnCDhg6jhg6Dhg5jhg6Thg6Lhg5jhg6Eg4YOW4YOd4YOb4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZW5hYmxlQ2FyTW9kZSIgbXNnaWQ9IjU2ODQ1MDQwNTgxOTI5MjEwOTgiPiLhg5vhg5Dhg5zhg6Xhg5Dhg5zhg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOY4YOhIOGDqeGDkOGDoOGDl+GDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2VuYWJsZUNhck1vZGUiIG1zZ2lkPSI0ODUzMTg3NDI1NzUxNDE5NDY3Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5vhg5Dhg5zhg6Xhg5Dhg5zhg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOY4YOhIOGDqeGDkOGDoOGDl+GDleGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iMzkxNDAyNjY4NzQyMDE3NzIwMiI+IuGDoeGDruGDleGDkCDhg5Dhg57hg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOu4YOj4YOg4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfa2lsbEJhY2tncm91bmRQcm9jZXNzZXMiIG1zZ2lkPSI0NTkzMzUzMjM1OTU5NzMzMTE5Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOT4YOQ4YOQ4YOh4YOg4YOj4YOa4YOd4YOhIOGDoeGDruGDleGDkCDhg5Dhg57hg5Thg5Hhg5jhg6Eg4YOk4YOd4YOc4YOj4YOg4YOYIOGDnuGDoOGDneGDquGDlOGDoeGDlOGDkeGDmC4g4YOQ4YOb4YOQ4YOcIOGDqOGDlOGDmOGDq+GDmuGDlOGDkeGDkCDhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOU4YOR4YOY4YOhIOGDqOGDlOGDqeGDlOGDoOGDlOGDkeGDkCDhg5Lhg5Dhg5vhg53hg5jhg6zhg5Xhg5jhg53hg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mb3JjZVN0b3BQYWNrYWdlcyIgbXNnaWQ9IjIzMjk2Mjc0Mjg4MzIwNjc3MDAiPiLhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOU4YOR4YOY4YOhIOGDmOGDq+GDo+GDmuGDlOGDkeGDmOGDl+GDmCDhg6jhg5Thg6nhg5Thg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mb3JjZVN0b3BQYWNrYWdlcyIgbXNnaWQ9IjUyNTMxNTcyOTYxODM5NDA4MTIiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDmOGDq+GDo+GDmuGDlOGDkeGDmOGDlyDhg6jhg5Thg6zhg6fhg5Xhg5jhg6Lhg53hg6Eg4YOh4YOu4YOV4YOQIOGDkOGDnuGDlOGDkeGDmOGDoSDhg5vhg6Phg6jhg5Dhg53hg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mb3JjZUJhY2siIG1zZ2lkPSI2NTI5MzUyMDQwNzI1ODQ2MTYiPiLhg5Dhg57hg5jhg6Eg4YOr4YOQ4YOa4YOY4YOXIOGDk+GDkOGDruGDo+GDoOGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZvcmNlQmFjayIgbXNnaWQ9IjM4OTIyOTU4MzA0MTk1MTM2MjMiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDmOGDq+GDo+GDmuGDlOGDkeGDmOGDlyDhg5Phg5Dhg5Dhg6Hhg6Dhg6Phg5rhg53hg6Eg4YOs4YOY4YOc4YOQIOGDnuGDmuGDkOGDnOGDluGDlCDhg5vhg5jhg5vhg5Phg5jhg5zhg5Dhg6Dhg5Qg4YOc4YOU4YOR4YOY4YOh4YOb4YOY4YOU4YOg4YOYIOGDkOGDpeGDouGDmOGDleGDneGDkeGDkCDhg5Phg5Ag4YOT4YOQ4YOR4YOg4YOj4YOc4YOT4YOU4YOhIOGDo+GDmeGDkOGDnC4g4YOp4YOV4YOU4YOj4YOa4YOU4YOR4YOg4YOY4YOVIOGDkOGDnuGDlOGDkeGDoSDhg5vhg6Hhg5Lhg5Dhg5Xhg6Hhg5gg4YOg4YOQ4YObIOGDkOGDoOGDkOGDoeGDneGDk+GDlOGDoSDhg6Hhg63hg5jhg6Dhg5Phg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kdW1wIiBtc2dpZD0iMTY4MTc5OTg2MjQzODk1NDc1MiI+IuGDoeGDmOGDoeGDouGDlOGDm+GDmOGDoSDhg5vhg5Phg5Lhg53hg5vhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOu4YOU4YORIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDmOGDoSDhg5vhg5jhg6bhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kdW1wIiBtc2dpZD0iMTc3ODI5OTA4ODY5MjI5MDMyOSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDqOGDmOGDk+GDkCDhg5vhg5Phg5Lhg53hg5vhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOc4YOQ4YOu4YOV4YOQLiDhg5vhg5Dhg5Xhg5zhg5Qg4YOe4YOg4YOd4YOS4YOg4YOQ4YOb4YOU4YOR4YOYIOGDqOGDlOGDq+GDmuGDlOGDkeGDlOGDnCDhg57hg5jhg6Dhg5Dhg5Phg5gg4YOT4YOQIOGDk+GDkOGDquGDo+GDmuGDmCDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5jhg6Eg4YOc4YOQ4YOu4YOV4YOQ4YOhLCDhg6Dhg53hg5vhg5Thg5rhg5fhg5Dhg5wg4YOs4YOV4YOT4YOd4YOb4YOY4YOhIOGDoeGDkOGDqOGDo+GDkOGDmuGDlOGDkeGDkOGDqiDhg5vhg5Dhg5cg4YOQ4YOgIOGDo+GDnOGDk+GDkCDhg7Dhg6Xhg53hg5zhg5Phg5Thg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZXRyaWV2ZV93aW5kb3dfY29udGVudCIgbXNnaWQ9IjgwMjI1ODg2MDg5OTQ1ODk5MzgiPiLhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOZ4YOd4YOc4YOi4YOU4YOc4YOi4YOY4YOhIOGDm+GDneGDq+GDmOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iMzE5MzI2OTA2OTQ2OTcwMDI2NSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOQ4YOl4YOi4YOY4YOj4YOg4YOYIOGDpOGDkOGDnOGDr+GDoOGDmOGDk+GDkOGDnCDhg5nhg53hg5zhg6Lhg5Thg5zhg6Lhg5jhg6Eg4YOb4YOd4YOr4YOY4YOU4YOR4YOQLiDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOU4YOR4YOhIOGDqOGDlOGDo+GDq+GDmuGDmOGDkOGDlyDhg6Thg5Dhg5zhg6/hg6Dhg5jhg6Eg4YOh4YOg4YOj4YOa4YOYIOGDmeGDneGDnOGDouGDlOGDnOGDouGDmOGDoSDhg5vhg53hg6vhg5jhg5Thg5Hhg5Ag4YOT4YOQIOGDp+GDleGDlOGDmuGDkCDhg6Lhg5Thg6Xhg6Hhg6Lhg5jhg6Eg4YOs4YOQ4YOZ4YOY4YOX4YOu4YOV4YOQIOGDnuGDkOGDoOGDneGDmuGDlOGDkeGDmOGDoSDhg5Lhg5Dhg6Dhg5Phg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl90ZW1wb3JhcnlfZW5hYmxlX2FjY2Vzc2liaWxpdHkiIG1zZ2lkPSIyMzEyNjEyMTM1MTI3MzEwMjU0Ij4i4YOb4YOQ4YOg4YOi4YOY4YOV4YOYIOGDrOGDleGDk+GDneGDm+GDmOGDoSDhg5Phg6Dhg53hg5Thg5Hhg5jhg5cg4YOS4YOQ4YOQ4YOl4YOi4YOY4YOj4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdGVtcG9yYXJ5X2VuYWJsZV9hY2Nlc3NpYmlsaXR5IiBtc2dpZD0iODA3OTQ1NjI5MzE4Mjk3NTQ2NCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOQ4YOW4YOUIOGDkuGDkOGDm+GDkOGDoOGDouGDmOGDleGDlOGDkeGDo+GDmuGDmCDhg6Dhg5Thg5/hg5jhg5vhg5jhg6Eg4YOp4YOQ4YOg4YOX4YOV4YOQLiDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOU4YOR4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkOGDlyDhg5Dhg5sg4YOg4YOU4YOf4YOY4YOb4YOY4YOhIOGDqeGDkOGDoOGDl+GDleGDkCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOS4YOQ4YOk4YOg4YOX4YOu4YOY4YOa4YOU4YOR4YOY4YOhIOGDkuGDkOGDoOGDlOGDqOGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JldHJpZXZlX3dpbmRvd19pbmZvIiBtc2dpZD0iODUzMjI5NTE5OTExMjUxOTM3OCI+IuGDpOGDkOGDnOGDr+GDoOGDmOGDoSDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5jhg6Eg4YOb4YOd4YOr4YOY4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmV0cmlldmVfd2luZG93X2luZm8iIG1zZ2lkPSI0OTk4ODM2MzcwNDI0MTg2ODQ5Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg6Thg5Dhg5zhg6/hg6Dhg5Thg5Hhg5jhg6Eg4YOb4YOU4YOc4YOU4YOv4YOU4YOg4YOY4YOhIOGDm+GDlOGDqOGDleGDlOGDneGDkeGDmOGDlyDhg6Thg5Dhg5zhg6/hg6Dhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOu4YOU4YORIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDmOGDoSDhg5vhg53hg57hg53hg5Xhg5Thg5Hhg5AuIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Thg5Hhg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQ4YOXIOGDmOGDoeGDlOGDl+GDmCDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5jhg6Eg4YOb4YOd4YOe4YOd4YOV4YOU4YOR4YOQLCDhg6Dhg53hg5vhg5Thg5rhg5jhg6og4YOo4YOY4YOT4YOQIOGDoeGDmOGDoeGDouGDlOGDm+GDo+GDoOGDmCDhg5vhg53hg67hg5vhg5Dhg6Dhg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOQ4YOg4YOY4YOhIOGDkuGDkOGDnOGDmeGDo+GDl+GDleGDnOGDmOGDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4Njc1NTM1NjQ4ODA3NDI3Mzg5Ij4i4YOm4YOd4YOc4YOY4YOh4YOr4YOY4YOU4YOR4YOU4YOR4YOY4YOhIOGDkuGDkOGDpOGDmOGDmuGDouGDleGDoOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4MDA2MjM2MzE1ODg4MzQ3NjgwIj4i4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOQ4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg6Dhg5Thg5Lhg5jhg6Hhg6Lhg6Dhg5Dhg6rhg5jhg5Ag4YOo4YOU4YOi4YOQ4YOc4YOY4YOhIOGDpOGDmOGDmuGDouGDoOGDlOGDkeGDmOGDoeGDkCwg4YOg4YOd4YOb4YOa4YOU4YOR4YOY4YOqIOGDkOGDoeGDo+GDpOGDl+GDkOGDleGDlOGDkeGDlOGDnCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOm4YOd4YOc4YOY4YOh4YOr4YOY4YOU4YOR4YOY4YOhIOGDp+GDleGDlOGDmuGDkCDhg5Phg5jhg5zhg5Thg5Hhg5Dhg6EuIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5vhg5Ag4YOo4YOU4YOh4YOQ4YOr4YOa4YOd4YOQIOGDlOGDoSDhg6Thg6Phg5zhg6Xhg6rhg5jhg5Ag4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIFVJIOGDmeGDneGDnOGDouGDoOGDneGDmuGDmOGDoeGDl+GDleGDmOGDoSDhg5Lhg5Dhg5vhg53hg5jhg6fhg5Thg5zhg53hg6EsIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg5jhg5zhg6Lhg5Thg6Dhg5Xhg5Thg5zhg6rhg5jhg5jhg6Eg4YOS4YOQ4YOg4YOU4YOo4YOULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFnbmlmeV9kaXNwbGF5IiBtc2dpZD0iNTk3MzYyNjczODE3MDYxODc3NSI+IuGDlOGDmeGDoOGDkOGDnOGDmOGDoSDhg5Lhg5Dhg5Phg5jhg5Phg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI3MTIxMjM1Njg0NTE1MDAzNzkyIj4i4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOQ4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOo4YOU4YOq4YOV4YOQ4YOa4YOd4YOhIOGDk+GDmOGDoeGDnuGDmuGDlOGDmOGDoSDhg5nhg53hg5zhg6Lhg5Thg5zhg6Lhg5guIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5Thg5Hhg5vhg5Ag4YOo4YOU4YOY4YOr4YOa4YOU4YOR4YOQIOGDmOGDm+GDkuGDleGDkOGDoOGDkOGDkyDhg5Lhg5Dhg6Dhg5Phg5Dhg6Xhg5vhg5zhg5Dhg5wg4YOT4YOY4YOh4YOe4YOa4YOU4YOY4YOhIOGDmeGDneGDnOGDouGDlOGDnOGDouGDmCwg4YOg4YOd4YObwqAg4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOQIOGDkuGDkOGDm+GDneGDo+GDoeGDkOGDk+GDlOGDkuGDkOGDoOGDmCDhg5Lhg5Dhg67hg5Phg5Thg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zaHV0ZG93biIgbXNnaWQ9IjcxODU3NDc4MjQwMzg5MDkwMTYiPiLhg5zhg5Dhg6zhg5jhg5rhg53hg5Hhg6Dhg5jhg5Xhg5gg4YOS4YOQ4YOb4YOd4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2h1dGRvd24iIG1zZ2lkPSI3MDQ2NTAwODM4NzQ2MjkxNzc1Ij4i4YOQ4YOl4YOi4YOY4YOV4YOd4YOR4YOU4YOR4YOY4YOhIOGDm+GDlOGDnOGDlOGDr+GDlOGDoOGDoSDhg5Lhg5Dhg5fhg5jhg6jhg5Xhg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOo4YOYIOGDkOGDp+GDlOGDnOGDlOGDkeGDoS4g4YOh4YOg4YOj4YOaIOGDkuGDkOGDl+GDmOGDqOGDleGDkOGDoSDhg5Dhg6Ag4YOQ4YOu4YOd4YOg4YOq4YOY4YOU4YOa4YOU4YOR4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RvcEFwcFN3aXRjaGVzIiBtc2dpZD0iNDEzODYwODYxMDcxNzQyNTU3MyI+IuGDkOGDnuGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg6Dhg5fhg5Xhg5Thg5Hhg5jhg6Hhg5Lhg5Dhg5wg4YOT4YOQ4YOq4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RvcEFwcFN3aXRjaGVzIiBtc2dpZD0iODI2MjE5NTgwMjU4MjI1NTAyMSI+IuGDruGDlOGDmuGDoSDhg6Phg6jhg5rhg5jhg6Eg4YOb4YOd4YOb4YOu4YOb4YOQ4YOg4YOU4YOR4YOa4YOY4YOhIOGDoeGDruGDleGDkCDhg5Dhg57hg5bhg5Qg4YOS4YOQ4YOT4YOQ4YOg4YOX4YOV4YOQ4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0VG9wQWN0aXZpdHlJbmZvIiBtc2dpZD0iMjUzNzkyMjMxMTQxMTU0NjAxNiI+IuGDkOGDm+GDn+GDkOGDm+GDmOGDnOGDk+GDlOGDmuGDmCDhg5Dhg57hg5jhg6Eg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOY4YOhIOGDm+GDmOGDpuGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRvcEFjdGl2aXR5SW5mbyIgbXNnaWQ9IjgxNTM2NTE0MzQxNDUxMzI1MDUiPiLhg5zhg5Thg5Hhg5Dhg6Eg4YOg4YOX4YOQ4YOV4YOhIOGDm+GDpOGDmuGDneGDkeGDlOGDmuGDoSwg4YOb4YOd4YOY4YOe4YOd4YOV4YOd4YOhIOGDm+GDmOGDm+GDk+GDmOGDnOGDkOGDoOGDlCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5jhg6Eg4YOT4YOQIOGDoeGDlOGDoOGDleGDmOGDoeGDlOGDkeGDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5Eg4YOe4YOY4YOg4YOQ4YOT4YOYIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDkCDhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOs4YOY4YOc4YOQIOGDnuGDmuGDkOGDnOGDluGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3J1blNldEFjdGl2aXR5V2F0Y2hlciIgbXNnaWQ9Ijg5MjIzOTA5NDg2NzE4MjY1NiI+IuGDp+GDleGDlOGDmuGDkCDhg5Dhg57hg5jhg6Eg4YOS4YOQ4YOo4YOV4YOU4YOR4YOY4YOhIOGDm+GDneGDnOGDmOGDouGDneGDoOGDmOGDnOGDkuGDmCDhg5Mg4YOZ4YOd4YOc4YOi4YOg4YOd4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcnVuU2V0QWN0aXZpdHlXYXRjaGVyIiBtc2dpZD0iNjAwMzYwMzE2MjU3ODU3NzQwNiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDm+GDmOGDlOGDoCDhg5Lhg5Dhg5vhg53hg6vhg5Dhg67hg5Thg5Hhg6Phg5rhg5gg4YOQ4YOl4YOi4YOY4YOV4YOd4YOR4YOU4YOR4YOY4YOhIOGDm+GDneGDnOGDmOGDouGDneGDoOGDmOGDnOGDkuGDmCDhg5Phg5Ag4YOb4YOQ4YOg4YOX4YOV4YOQLiDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOU4YOR4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkOGDlyDhg6Hhg5jhg6Hhg6Lhg5Thg5vhg5jhg6Eg4YOh4YOg4YOj4YOa4YOYIOGDmeGDneGDnOGDouGDoOGDneGDmuGDmC4g4YOU4YOhIOGDnOGDlOGDkeGDkOGDoOGDl+GDleGDkCDhg6Hhg5Dhg63hg6Dhg53hg5Ag4YOb4YOu4YOd4YOa4YOd4YOTIOGDk+GDlOGDleGDlOGDmuGDneGDnuGDm+GDlOGDnOGDouGDmOGDoeGDl+GDleGDmOGDoSDhg5Phg5Ag4YOp4YOV4YOU4YOj4YOa4YOU4YOR4YOg4YOY4YOV4YOYIOGDm+GDneGDruGDm+GDkOGDoOGDlOGDkeGDmOGDoeGDl+GDmOGDoSDhg5Dhg6Ag4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSIyNTc2MzMzNDM0ODkzNTMyNDc1Ij4i4YOe4YOQ4YOZ4YOU4YOi4YOU4YOR4YOY4YOhIOGDrOGDkOGDqOGDmuGDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5Eg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOY4YOhIOGDkuGDkOGDkuGDluGDkOGDleGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFBhY2thZ2VSZW1vdmVkIiBtc2dpZD0iNjYyMTkwMTIxNjIwNzkzMTA4OSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDkuGDkOGDkuGDluGDkOGDleGDnOGDneGDoSDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5AsIOGDoOGDneGDmyDhg5Dhg57hg5jhg6Eg4YOe4YOQ4YOZ4YOU4YOi4YOYIOGDrOGDkOGDmOGDqOGDkOGDmuGDkC4g4YOb4YOQ4YOV4YOc4YOUIOGDkOGDnuGDlOGDkeGDm+GDkCDhg5Thg6Eg4YOj4YOk4YOa4YOU4YOR4YOQIOGDqOGDlOGDmOGDq+GDmuGDlOGDkeGDkCDhg5Lhg5Dhg5vhg53hg5jhg6fhg5Thg5zhg53hg5wg4YOh4YOu4YOV4YOQIOGDnOGDlOGDkeGDmOGDoeGDm+GDmOGDlOGDoOGDmCDhg5Lhg5Dhg6jhg5Xhg5Thg5Hhg6Phg5rhg5gg4YOQ4YOe4YOU4YOR4YOY4YOhwqDhg6jhg5Thg6Hhg5Dhg6zhg6fhg5Xhg5Thg6Lhg5Dhg5MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RTbXNSZWNlaXZlZCIgbXNnaWQ9IjU2ODkwOTUwMDkwMzAzMzY1OTMiPiJTTVMt4YOY4YOXIOGDm+GDmOGDpuGDlOGDkeGDo+GDmuGDmCDhg6Hhg5Dhg5vhg5Dhg6Phg6zhg6fhg5Thg5Hhg5rhg50g4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOY4YOhIOGDkuGDkOGDkuGDluGDkOGDleGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFNtc1JlY2VpdmVkIiBtc2dpZD0iNDE1MjAzNzcyMDAzNDM2NTQ5MiI+IuGDkOGDnuGDoSDhg6Hhg5Dhg6jhg6Phg5Dhg5rhg5Thg5Hhg5Dhg6Eg4YOQ4YOr4YOa4YOU4YOV4YOhIOGDkuGDkOGDkOGDkuGDluGDkOGDleGDnOGDneGDoSDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5AgU01TIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDmOGDoSDhg5vhg5jhg6bhg5Thg5Hhg5jhg6Eg4YOX4YOQ4YOd4YOR4YOQ4YOW4YOULiDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOU4YOR4YOo4YOYIOGDlOGDoSDhg6Thg6Phg5zhg6Xhg6rhg5jhg5Ag4YOo4YOU4YOY4YOr4YOa4YOU4YOR4YOQIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDo+GDmuGDmCDhg5jhg6Xhg5zhg5Dhg6EgU01TIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmOGDoSDhg5vhg5jhg6bhg5Thg5Hhg5jhg6Eg4YOY4YOb4YOY4YOi4YOQ4YOq4YOY4YOY4YOY4YOh4YOQ4YOX4YOV4YOY4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjMxNDUzNDc0MTMwMjg1ODIzNzEiPiJXQVAtUFVTSC3hg5jhg5cg4YOb4YOY4YOm4YOU4YOR4YOj4YOa4YOYIOGDoeGDkOGDm+GDkOGDo+GDrOGDp+GDlOGDkeGDmuGDnSDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjQ3ODM0MDI1MjUwMzk0NDI3MjkiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg53hg6Eg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOQIFdBUCBQVVNIIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDmOGDoSDhg5vhg5jhg6bhg5Thg5Hhg5jhg6Eg4YOX4YOQ4YOd4YOR4YOQ4YOW4YOULiDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOU4YOR4YOb4YOQIOGDlOGDoSDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOd4YOcIE1NUyDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5jhg6Eg4YOb4YOY4YOm4YOU4YOR4YOY4YOhIOGDkuGDkOGDoeGDkOGDp+GDkOGDmuGDkeGDlOGDkeGDmuGDkOGDkyDhg5Dhg5wg4YOc4YOU4YOR4YOY4YOh4YOb4YOY4YOU4YOg4YOYIOGDleGDlOGDkeGDkuGDleGDlOGDoOGDk+GDmOGDoSDhg5nhg53hg5zhg6Lhg5Thg5zhg6Lhg5jhg6Eg4YOh4YOQ4YOu4YOY4YOk4YOQ4YOX4YOdIOGDleGDkOGDoOGDmOGDkOGDnOGDouGDlOGDkeGDmOGDlyDhg6nhg6Phg5vhg5Dhg5Mg4YOp4YOQ4YOh4YOQ4YOc4YOQ4YOq4YOV4YOa4YOU4YOR4YOa4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0UHJvY2Vzc0xpbWl0IiBtc2dpZD0iMjQ1MTg3MzY2NDM2MzY2MjY2NiI+IuGDm+GDmOGDm+GDk+GDmOGDnOGDkOGDoOGDlCDhg57hg6Dhg53hg6rhg5Thg6Hhg5Thg5Hhg5jhg6Eg4YOg4YOQ4YOd4YOT4YOU4YOc4YOd4YOR4YOY4YOhIOGDmuGDmOGDm+GDmOGDouGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFByb2Nlc3NMaW1pdCIgbXNnaWQ9IjczMTgwNjEzMTQwNDA4Nzk1NDIiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg5Lhg5Dhg5Dhg5nhg53hg5zhg6Lhg6Dhg53hg5rhg53hg6Eg4YOb4YOY4YOb4YOT4YOY4YOc4YOQ4YOg4YOUIOGDnuGDoOGDneGDquGDlOGDoeGDlOGDkeGDmOGDoSDhg5vhg5Dhg6Xhg6Hhg5jhg5vhg5Dhg5rhg6Phg6Dhg5gg4YOg4YOQ4YOd4YOT4YOU4YOc4YOd4YOR4YOQLiDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Ug4YOQ4YOe4YOU4YOR4YOo4YOYIOGDkOGDoOGDkOGDoeGDk+GDoOGDneGDoSDhg5Dhg6Dhg5jhg6Eg4YOh4YOQ4YOt4YOY4YOg4YOdLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0QWx3YXlzRmluaXNoIiBtc2dpZD0iNTUwOTU4NTA3Nzk4Nzk2OTY1Ij4i4YOj4YOZ4YOQ4YOc4YOQIOGDpOGDneGDnOGDmOGDoSDhg5Dhg57hg5jhg6Eg4YOY4YOr4YOj4YOa4YOU4YOR4YOY4YOXIOGDk+GDkOGDruGDo+GDoOGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFsd2F5c0ZpbmlzaCIgbXNnaWQ9Ijc0NzEzMTA2NTI4Njg4NDE0OTkiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDkuGDkOGDkOGDmeGDneGDnOGDouGDoOGDneGDmuGDneGDoSwg4YOQ4YOg4YOY4YOhIOGDl+GDoyDhg5Dhg6Dhg5Ag4YOQ4YOl4YOi4YOY4YOV4YOd4YOR4YOU4YOR4YOYIOGDp+GDneGDleGDlOGDmuGDl+GDleGDmOGDoSDhg5Phg5Dhg6Hhg6Dhg6Phg5rhg5Thg5Hhg6Phg5rhg5gg4YOb4YOQ4YOX4YOYIOGDo+GDmeGDkOGDnOGDkCDhg6Thg53hg5zhg5bhg5Qg4YOS4YOQ4YOT4YOQ4YOh4YOV4YOa4YOY4YOhIOGDk+GDoOGDneGDoS4g4YOQ4YOg4YOQ4YOh4YOT4YOg4YOd4YOhIOGDkOGDoOGDmOGDoSDhg6Hhg5Dhg63hg5jhg6Dhg50g4YOp4YOV4YOU4YOj4YOa4YOU4YOR4YOg4YOY4YOVIOGDkOGDnuGDlOGDkeGDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JhdHRlcnlTdGF0cyIgbXNnaWQ9IjI3ODk2MTA2NzM1MTQxMDMzNjQiPiLhg5Thg5rhg5Thg5vhg5Thg5zhg6Lhg5jhg6Eg4YOh4YOi4YOQ4YOi4YOY4YOh4YOi4YOY4YOZ4YOY4YOhIOGDrOGDkOGDmeGDmOGDl+GDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JhdHRlcnlTdGF0cyIgbXNnaWQ9IjU4OTczNDY1ODI4ODI5MTUxMTQiPiLhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Dhg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDkOGDm+GDn+GDkOGDm+GDmOGDnOGDk+GDlOGDmuGDmCDhg5Phg5Dhg5Hhg5Dhg5rhg5gg4YOT4YOQ4YOb4YOj4YOu4YOi4YOV4YOY4YOhIOGDlOGDmuGDlOGDm+GDlOGDnOGDouGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg6Eg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDrOGDkOGDmeGDmOGDl+GDruGDleGDkC4g4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOQ4YObIOGDqOGDlOGDoeGDkOGDq+GDmuGDneGDkCDhg5vhg53hg5Dhg67hg5Thg6Dhg67hg53hg6Eg4YOX4YOl4YOV4YOU4YOcIOGDm+GDmOGDlOGDoCDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg6Phg5rhg5gg4YOQ4YOe4YOU4YOR4YOY4YOhIOGDqOGDlOGDoeGDkOGDruGDlOGDkSDhg5Phg5Thg6Lhg5Dhg5rhg6Phg6Dhg5gg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOY4YOhIOGDm+GDneGDq+GDmOGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUJhdHRlcnlTdGF0cyIgbXNnaWQ9IjM3MTk2ODk3NjQ1MzYzNzk1NTciPiLhg5Thg5rhg5Thg5vhg5Thg5zhg6Lhg5jhg6Eg4YOh4YOi4YOQ4YOi4YOY4YOh4YOi4YOY4YOZ4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VwZGF0ZUJhdHRlcnlTdGF0cyIgbXNnaWQ9IjY4NjI4MTc4NTcxNzgwMjUwMDIiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg6jhg5Thg6rhg5Xhg5Dhg5rhg53hg6Eg4YOR4YOQ4YOi4YOQ4YOg4YOU4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDoSDhg6jhg5Thg5Lhg6Dhg53hg5Xhg5Thg5Hhg6Phg5rhg5gg4YOh4YOi4YOQ4YOi4YOY4YOh4YOi4YOY4YOZ4YOQLiDhg5Dhg6Ag4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOU4YOR4YOQIOGDqeGDleGDlOGDo+GDmuGDlOGDkeGDoOGDmOGDlSDhg5Dhg57hg5Thg5Hhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRBcHBPcHNTdGF0cyIgbXNnaWQ9IjE1MDg3Nzk2ODc0MzY1ODU3NDQiPiLhg5Dhg57hg5jhg6Eg4YOh4YOQ4YOb4YOj4YOo4YOQ4YOdIOGDn+GDo+GDoOGDnOGDkOGDmuGDmOGDoSDhg6Hhg6Lhg5Dhg6Lhg5jhg6Hhg6Lhg5jhg5nhg5jhg6Eg4YOb4YOd4YOr4YOY4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QXBwT3BzU3RhdHMiIG1zZ2lkPSI2MjQzODg3MDQxNTc3OTEyODc3Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Dhg5fhg5Ag4YOd4YOe4YOU4YOg4YOQ4YOq4YOY4YOU4YOR4YOY4YOhIOGDqOGDlOGDkuGDoOGDneGDleGDlOGDkeGDo+GDmuGDmCDhg6Hhg6Lhg5Dhg6Lhg5jhg6Hhg6Lhg5jhg5nhg5jhg6Eg4YOb4YOd4YOe4YOd4YOV4YOU4YOR4YOQLiDhg5Dhg6Ag4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOU4YOR4YOQIOGDqeGDleGDlOGDo+GDmuGDlOGDkeGDoOGDmOGDlSDhg5Dhg57hg5Thg5Hhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91cGRhdGVBcHBPcHNTdGF0cyIgbXNnaWQ9Ijg4MjkwOTczNzM4NTE1MjE1MDUiPiLhg5Dhg57hg5jhg6Eg4YOh4YOQ4YOb4YOj4YOo4YOQ4YOdIOGDn+GDo+GDoOGDnOGDkOGDmuGDmOGDoSDhg6Hhg6Lhg5Dhg6Lhg5jhg6Hhg6Lhg5jhg5nhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXBkYXRlQXBwT3BzU3RhdHMiIG1zZ2lkPSI1MDc4NDU5NjU5NDQwMzQ4MyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOY4YOhIOGDneGDnuGDlOGDoOGDkOGDquGDmOGDlOGDkeGDmOGDoSDhg6jhg5Thg5Lhg6Dhg53hg5Xhg5Thg5Hhg6Phg5rhg5gg4YOh4YOi4YOQ4YOi4YOY4YOh4YOi4YOY4YOZ4YOY4YOhIOGDm+GDneGDnuGDneGDleGDlOGDkeGDkC4g4YOQ4YOgIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDlOGDkeGDkCDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Ug4YOQ4YOe4YOU4YOR4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmFja3VwIiBtc2dpZD0iNDcwMDEzMDIyODY1NDUzOTIwIj4i4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDoeGDkOGDoOGDlOGDluGDlOGDoOGDleGDnSDhg5Dhg6Hhg5rhg5Thg5Hhg5jhg6Eg4YOZ4YOd4YOc4YOi4YOg4YOd4YOa4YOYIOGDk+GDkCDhg5Dhg6bhg5Phg5Lhg5Thg5zhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iYWNrdXAiIG1zZ2lkPSI2OTEyMjMwNTI1MTQwNTg5ODkxIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg6Hhg5jhg6Hhg6Lhg5Thg5vhg5jhg6Eg4YOh4YOQ4YOg4YOU4YOW4YOU4YOg4YOV4YOdIOGDkOGDoeGDmuGDlOGDkeGDmOGDoSDhg5nhg53hg5zhg6Lhg6Dhg53hg5rhg5gg4YOT4YOQIOGDm+GDlOGDpeGDkOGDnOGDmOGDluGDm+GDmOGDoSDhg5Dhg6bhg5Phg5Lhg5Thg5zhg5AuIOGDqeGDleGDlOGDo+GDmuGDlOGDkeGDoOGDmOGDleGDmCDhg5Dhg57hg5Thg5Hhg5gg4YOb4YOh4YOS4YOQ4YOV4YOhIOGDqOGDlOGDoeGDkOGDq+GDmuGDlOGDkeGDmuGDneGDkeGDlOGDkeGDoSDhg5Dhg6Ag4YOY4YOn4YOU4YOc4YOU4YOR4YOU4YOcLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlybV9mdWxsX2JhY2t1cCIgbXNnaWQ9IjU1NTcwNzEzMjU4MDQ0NjkxMDIiPiLhg6Hhg6Dhg6Phg5rhg5gg4YOh4YOQ4YOg4YOU4YOW4YOU4YOg4YOV4YOdIOGDkOGDoeGDmuGDlOGDkeGDmOGDoSDhg5Phg5Dhg5Phg5Dhg6Hhg6Lhg6Phg6Dhg5Thg5Hhg5Ag4YOQ4YOcIOGDneGDnuGDlOGDoOGDkOGDquGDmOGDmOGDoSDhg5Dhg6bhg5Phg5Lhg5Thg5zhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maXJtX2Z1bGxfYmFja3VwIiBtc2dpZD0iMTc0ODc2MjE3MTYzNzY5OTU2MiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOS4YOQ4YOj4YOo4YOV4YOQ4YOhIOGDoeGDoOGDo+GDmuGDmCDhg6Hhg5Dhg6Dhg5Thg5bhg5Thg6Dhg5Xhg50g4YOQ4YOh4YOa4YOU4YOR4YOY4YOhIFVJIOGDk+GDkOGDk+GDkOGDoeGDouGDo+GDoOGDlOGDkeGDkC4g4YOQ4YOgIOGDmOGDp+GDlOGDnOGDlOGDkeGDoSDhg5Dhg6Dhg6og4YOU4YOg4YOX4YOYIOGDoeGDruGDleGDkCDhg5Dhg57hg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcm5hbFN5c3RlbVdpbmRvdyIgbXNnaWQ9IjIxNDg1NjM2MjgxNDAxOTMyMzEiPiLhg5Dhg6Dhg5Dhg5Dhg5Xhg6Lhg53hg6Dhg5jhg5bhg5Thg5Hhg6Phg5rhg5gg4YOk4YOQ4YOc4YOv4YOg4YOU4YOR4YOY4YOhIOGDqeGDleGDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludGVybmFsU3lzdGVtV2luZG93IiBtc2dpZD0iNzQ1ODM4Nzc1OTQ2MTQ2NjM5NyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDqOGDlOGDpeGDm+GDnOGDkOGDoSDhg6jhg5jhg5Phg5Ag4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg5jhg5zhg6Lhg5Thg6Dhg6Thg5Thg5jhg6Hhg5jhg6Eg4YOb4YOY4YOU4YOgIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSDhg5Lhg5Dhg5zhg5nhg6Phg5fhg5Xhg5zhg5jhg5rhg5gg4YOk4YOQ4YOc4YOv4YOg4YOU4YOR4YOYLiDhg5Dhg6Ag4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOU4YOR4YOQIOGDqeGDleGDlOGDo+GDmuGDlOGDkeGDoOGDmOGDlSDhg5Dhg57hg5Thg5Hhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zeXN0ZW1BbGVydFdpbmRvdyIgbXNnaWQ9IjM1NDMzNDc5ODA4Mzk1MTg2MTMiPiLhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOU4YOR4YOY4YOhIOGDmOGDnOGDouGDlOGDoOGDpOGDlOGDmOGDoeGDluGDlCDhg5Lhg5Dhg5Phg5Dhg6zhg5Thg6Dhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zeXN0ZW1BbGVydFdpbmRvdyIgbXNnaWQ9Ijg1ODQ2NzgzODE5NzI4MjAxMTgiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDl+GDkOGDleGDmOGDoeGDmCDhg5jhg5zhg6Lhg5Thg6Dhg6Thg5Thg5jhg6Hhg5gg4YOW4YOU4YOb4YOd4YOT4YOQ4YOcIOGDkuGDkOGDk+GDkOGDkOGDrOGDlOGDoOGDneGDoSDhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOU4YOR4YOhIOGDkOGDnCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOY4YOc4YOi4YOU4YOg4YOk4YOU4YOY4YOh4YOY4YOhIOGDnOGDkOGDrOGDmOGDmuGDlOGDkeGDoS4g4YOQ4YOb4YOS4YOV4YOQ4YOg4YOQ4YOTLCDhg6jhg5Thg6Hhg5Dhg6vhg5rhg53hg5Ag4YOo4YOU4YOY4YOq4YOV4YOQ4YOa4YOd4YOhIOGDoeGDruGDleGDkCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5jhg6Eg4YOY4YOc4YOi4YOU4YOg4YOk4YOU4YOY4YOh4YOYIOGDk+GDkCDhg67hg5Thg5rhg5gg4YOo4YOU4YOS4YOU4YOo4YOQ4YOa4YOd4YOXIOGDoeGDruGDleGDkCDhg5vhg5Dhg6Hhg5fhg5Dhg5wg4YOb4YOj4YOo4YOQ4YOd4YOR4YOY4YOh4YOQ4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0QW5pbWF0aW9uU2NhbGUiIG1zZ2lkPSIyODA1MTAzMjQxMTUzOTA3MTc0Ij4i4YOQ4YOc4YOY4YOb4YOQ4YOq4YOY4YOY4YOhIOGDkuGDmuGDneGDkeGDkOGDmuGDo+GDoOGDmCDhg6Hhg5jhg6nhg6Xhg5Dhg6Dhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QW5pbWF0aW9uU2NhbGUiIG1zZ2lkPSI3NjkwMDYzNDI4OTI0MzQzNTcxIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5Lhg5rhg53hg5Hhg5Dhg5rhg6Phg6Dhg5gg4YOQ4YOc4YOY4YOb4YOQ4YOq4YOY4YOY4YOhIOGDoeGDmOGDqeGDpeGDkOGDoOGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AgKOGDoeGDrOGDoOGDkOGDpOGDmCDhg5Dhg5wg4YOc4YOU4YOa4YOYIOGDkOGDnOGDmOGDm+GDkOGDquGDmOGDkCkg4YOc4YOU4YOR4YOY4YOh4YOb4YOY4YOU4YOgIOGDk+GDoOGDneGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFwcFRva2VucyIgbXNnaWQ9IjEyODY1MDU3MTcwNTAxMjEzNzAiPiLhg5Dhg57hg5jhg6Eg4YOs4YOY4YOc4YOQ4YOh4YOs4YOQ4YOg4YOYIOGDkuGDkOGDk+GDkOGDruGDk+GDmOGDoSDhg5Hhg5Dhg6Dhg5Dhg5fhg5Thg5Hhg5jhg6Eg4YOb4YOQ4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQXBwVG9rZW5zIiBtc2dpZD0iODA0MzQzMTcxMzAxNDM5NTY3MSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDqOGDlOGDpeGDm+GDnOGDkOGDoSDhg5Phg5Ag4YOb4YOQ4YOg4YOX4YOd4YOhIOGDoeGDkOGDmeGDo+GDl+GDkOGDoOGDmCDhg5jhg5Phg5Thg5zhg6Lhg5jhg6Thg5jhg5nhg5Dhg6rhg5jhg5jhg6Eg4YOc4YOY4YOo4YOc4YOU4YOR4YOYLCDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Xhg5ggWi3hg6zhg6fhg53hg5Hhg5jhg6Eg4YOj4YOS4YOj4YOa4YOV4YOU4YOR4YOU4YOa4YOn4YOd4YOk4YOY4YOXLiDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Xhg5gg4YOQ4YOe4YOU4YOR4YOY4YOh4YOX4YOV4YOY4YOhIOGDm+GDmOGDoeGDmCDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5Ag4YOQ4YOg4YOQ4YOh4YOT4YOg4YOd4YOhIOGDkOGDoOGDmOGDoSDhg6Hhg5Dhg63hg5jhg6Dhg50uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mcmVlemVTY3JlZW4iIG1zZ2lkPSI0NzA4MTgxMTg0NDQxODgwMTc1Ij4i4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDkuGDkOGDp+GDmOGDnOGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZyZWV6ZVNjcmVlbiIgbXNnaWQ9Ijg1NTg5MjM3ODkyMjI2NzAwNjQiPiLhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Dhg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDlOGDmeGDoOGDkOGDnOGDmOGDoSDhg5Phg6Dhg53hg5Thg5Hhg5jhg5cg4YOS4YOQ4YOo4YOU4YOo4YOU4YOR4YOQIOGDoeGDoOGDo+GDmiDhg5Thg5nhg6Dhg5Dhg5zhg5bhg5Qg4YOS4YOQ4YOT4YOQ4YOh4YOQ4YOh4YOV4YOa4YOU4YOa4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW5qZWN0RXZlbnRzIiBtc2dpZD0iMTM3ODc0NjU4NDAyMzU4NjYwMCI+IuGDkuGDkOGDoeGDkOGDpuGDlOGDkeGDluGDlCDhg5Phg5Dhg63hg5Thg6Dhg5Ag4YOT4YOQIOGDpuGDmOGDmuGDkOGDmeGDlOGDkeGDmOGDoSDhg5vhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbmplY3RFdmVudHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNjM1MjU2NTU5OTk2ODYzMiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOo4YOU4YOn4YOV4YOQ4YOc4YOY4YOhIOGDoeGDkOGDmeGDo+GDl+GDkOGDoOGDmCDhg5vhg53hg5Xhg5rhg5Thg5zhg5Thg5Hhg5jhg6EgKOGDkuGDkOGDoeGDkOGDpuGDlOGDkeGDmCDhg5Phg5Ag4YOQLuGDqC4pIOGDoeGDruGDleGDkCDhg5Dhg57hg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOS4YOQ4YOT4YOQ4YOq4YOU4YOb4YOQLiDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOU4YOR4YOb4YOQIOGDqOGDlOGDoeGDkOGDq+GDmuGDneGDkCDhg5Thg6Eg4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOd4YOcIOGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg6Hhg5Dhg5nhg53hg5zhg6Lhg6Dhg53hg5rhg53hg5MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5qZWN0RXZlbnRzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjUzMTI4MDU3NTcyMzI2MjUzIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg6jhg5Thg6fhg5Xhg5Dhg5zhg5jhg6Eg4YOh4YOQ4YOZ4YOj4YOX4YOQ4YOg4YOYIOGDm+GDneGDleGDmuGDlOGDnOGDlOGDkeGDmOGDoSAo4YOS4YOQ4YOh4YOQ4YOm4YOU4YOR4YOYIOGDk+GDkCDhg5Au4YOoLikg4YOh4YOu4YOV4YOQIOGDkOGDnuGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg6rhg5Thg5vhg5AuIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5Thg5Hhg5vhg5Ag4YOo4YOU4YOh4YOQ4YOr4YOa4YOd4YOQIOGDlOGDoSDhg5Lhg5Dhg5vhg53hg5jhg6fhg5Thg5zhg53hg5wg4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOY4YOhIOGDoeGDkOGDmeGDneGDnOGDouGDoOGDneGDmuGDneGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRJbnB1dFN0YXRlIiBtc2dpZD0iNDY5NDI4OTAwMDQxMjQ5MjM0Ij4i4YOp4YOQ4YOs4YOU4YOg4YOU4YOXIOGDoOGDkOGDoeGDkOGDqiDhg5Hhg5Thg63hg5Phg5Dhg5Xhg5cg4YOT4YOQIOGDoOGDkCDhg6Xhg5vhg5Thg5Phg5Thg5Hhg5Thg5Hhg6Hhg5Dhg6og4YOb4YOY4YOb4YOQ4YOg4YOX4YOQ4YOV4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRJbnB1dFN0YXRlIiBtc2dpZD0iODM4Nzc1NDkwMTY4ODcyODA0MyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOT4YOQ4YOY4YOc4YOQ4YOu4YOd4YOhIOGDkuGDkOGDoeGDkOGDpuGDlOGDkeGDmCwg4YOg4YOd4YOT4YOU4YOh4YOQ4YOqIOGDm+GDkOGDoSDhg5Hhg5Thg63hg5Phg5Dhg5Xhg5cg4YOX4YOj4YOc4YOT4YOQ4YOqIOGDoeGDruGDleGDkCDhg5Dhg57hg6jhg5gg4YOb4YOj4YOo4YOQ4YOd4YOR4YOY4YOhIOGDk+GDoOGDneGDoSAo4YOb4YOQ4YOS4YOQ4YOa4YOY4YOX4YOQ4YOTLCDhg57hg5Dhg6Dhg53hg5rhg5jhg6Eg4YOQ4YOZ4YOg4YOU4YOk4YOQKS4g4YOp4YOV4YOU4YOj4YOa4YOU4YOR4YOg4YOY4YOVIOGDkOGDnuGDlOGDkeGDoSDhg5vhg6Hhg5Lhg5Dhg5Xhg6Hhg5gg4YOg4YOQ4YObIOGDkOGDoOGDkOGDoeGDneGDk+GDlOGDoSDhg6Hhg63hg5jhg6Dhg5Phg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kSW5wdXRNZXRob2QiIG1zZ2lkPSIzMzYwMDY0NjIwMjMwNTE1Nzc2Ij4i4YOo4YOU4YOi4YOQ4YOc4YOY4YOhIOGDm+GDlOGDl+GDneGDk+GDl+GDkOGDnCDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kSW5wdXRNZXRob2QiIG1zZ2lkPSIzMjUwNDQwMzIyODA3Mjg2MzMxIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5bhg5Thg5Phg5Ag4YOT4YOd4YOc4YOY4YOhIOGDmOGDnOGDouGDlOGDoOGDpOGDlOGDmOGDoeGDmOGDoSDhg6zhg5Xhg5Phg53hg5vhg5jhg6Eg4YOh4YOY4YOh4YOi4YOU4YOb4YOQ4YOh4YOX4YOQ4YOcIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDkC4g4YOQ4YOg4YOQ4YOh4YOT4YOg4YOd4YOhIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDlOGDkeGDkCDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Ug4YOQ4YOe4YOU4YOR4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZEFjY2Vzc2liaWxpdHlTZXJ2aWNlIiBtc2dpZD0iNTM1NzczMzk0MjU1NjAzMTU5MyI+IuGDkuGDkOGDm+GDkOGDoOGDouGDmOGDleGDlOGDkeGDo+GDmuGDmCDhg6zhg5Xhg5Phg53hg5vhg5jhg6Eg4YOh4YOU4YOg4YOV4YOY4YOh4YOX4YOQ4YOcIOGDm+GDmOGDlOGDoOGDl+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRBY2Nlc3NpYmlsaXR5U2VydmljZSIgbXNnaWQ9IjcwMzQ2MTU5Mjg2MDkzMzEzNjgiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDkuGDkOGDm+GDkOGDoOGDouGDmOGDleGDlOGDkeGDo+GDmuGDmCDhg6zhg5Xhg5Phg53hg5vhg5jhg6Eg4YOh4YOU4YOg4YOV4YOY4YOh4YOY4YOhIOGDluGDlOGDk+GDkCDhg5Phg53hg5zhg5jhg6Eg4YOY4YOc4YOi4YOU4YOg4YOk4YOU4YOY4YOh4YOX4YOQ4YOcIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDkC4g4YOQ4YOg4YOQ4YOh4YOT4YOg4YOd4YOhIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDlOGDkeGDkCDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Ug4YOQ4YOe4YOU4YOR4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFByaW50U2VydmljZSIgbXNnaWQ9Ijg0NjI4MTUxNzk1NzI3NDg3NjEiPiLhg5Hhg5Thg63hg5Phg5Xhg5jhg6Eg4YOh4YOU4YOV4YOY4YOh4YOW4YOUIOGDm+GDmOGDkeGDm+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQcmludFNlcnZpY2UiIG1zZ2lkPSI3OTYwMDY3NjIzMjA5MTExMTM1Ij4i4YOb4YOk4YOa4YOd4YOR4YOU4YOa4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5vhg5jhg5Thg5Hhg5Dhg6Eg4YOR4YOU4YOt4YOT4YOV4YOY4YOhIOGDoeGDlOGDoOGDleGDmOGDoeGDlOGDkeGDmOGDoSDhg5bhg5Thg5Phg5Ag4YOT4YOd4YOc4YOY4YOhIOGDmOGDnOGDouGDlOGDoOGDpOGDlOGDmOGDoeGDoS4g4YOp4YOV4YOU4YOj4YOa4YOU4YOR4YOg4YOY4YOVIOGDkOGDnuGDoSDhg5Thg6Eg4YOs4YOU4YOh4YOY4YOXIOGDkOGDoOGDkOGDoeGDneGDk+GDlOGDoSDhg5Dhg6Ag4YOj4YOc4YOT4YOQIOGDk+GDkOGDreGDmOGDoOGDk+GDlOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0FsbFByaW50Sm9icyIgbXNnaWQ9IjExMjA3OTI0Njg0NjU3MTExNTkiPiLhg5Hhg5Thg63hg5Phg5Xhg5jhg6Eg4YOn4YOV4YOU4YOa4YOQIOGDk+GDkOGDleGDkOGDmuGDlOGDkeGDkOGDluGDlCDhg6zhg5Xhg5Phg53hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NBbGxQcmludEpvYnMiIG1zZ2lkPSIyOTc4MTg1MzExMDQxODY0NzYyIj4i4YOh4YOQ4YOo4YOj4YOQ4YOa4YOU4YOR4YOQ4YOhIOGDkOGDq+GDmuGDlOGDleGDoSDhg5vhg6Thg5rhg53hg5Hhg5Thg5rhg6Eg4YOY4YOl4YOd4YOc4YOY4YOd4YOhIOGDrOGDleGDk+GDneGDm+GDkCDhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOY4YOhIOGDm+GDmOGDlOGDoCDhg6jhg5Thg6Xhg5vhg5zhg5jhg5og4YOR4YOU4YOt4YOT4YOV4YOY4YOhIOGDk+GDkOGDleGDkOGDmuGDlOGDkeGDlOGDkeGDluGDlC4g4YOp4YOV4YOU4YOj4YOa4YOU4YOR4YOg4YOY4YOVIOGDkOGDnuGDoSDhg5Thg6Eg4YOs4YOU4YOh4YOY4YOXIOGDkOGDoOGDkOGDoeGDneGDk+GDlOGDoSDhg5Dhg6Ag4YOj4YOc4YOT4YOQIOGDk+GDkOGDreGDmOGDoOGDk+GDlOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iMjc1MjczMTMwMDQxOTQxMDcyNCI+Ik5GQyDhg6Hhg5Thg6Dhg5Xhg5jhg6Hhg5fhg5Dhg5wg4YOo4YOU4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSI2MTIwNjQ3NjI5MTc0MDY2ODYyIj4i4YOh4YOQ4YOo4YOj4YOQ4YOa4YOU4YOR4YOQ4YOhIOGDkOGDq+GDmuGDlOGDleGDoSDhg5vhg6Thg5rhg53hg5Hhg5Thg5rhg6Eg4YOo4YOU4YOZ4YOQ4YOV4YOo4YOY4YOg4YOT4YOU4YOhIOGDkOGDnuGDmuGDmOGDmeGDkOGDquGDmOGDlOGDkeGDl+GDkOGDnCwg4YOg4YOd4YOb4YOa4YOU4YOR4YOY4YOqIE5GQyDhg5Hhg5Dhg6Dhg5Dhg5fhg5Thg5Hhg5jhg6Eg4YOh4YOY4YOb4YOj4YOa4YOQ4YOq4YOY4YOQ4YOhIOGDkOGDruGDk+GDlOGDnOGDoS4g4YOp4YOV4YOU4YOj4YOa4YOU4YOR4YOg4YOY4YOVIOGDkOGDnuGDlOGDkeGDoSDhg6Phg5vhg5Thg6Lhg5Thg6Eg4YOo4YOU4YOb4YOX4YOu4YOV4YOU4YOV4YOQ4YOo4YOYIOGDkOGDoCDhg5Phg5Dhg63hg5jhg6Dhg5Phg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kVGV4dFNlcnZpY2UiIG1zZ2lkPSI3MzU4Mzc4NDAxOTE1Mjg3OTM4Ij4i4YOi4YOU4YOl4YOh4YOiIOGDoeGDlOGDoOGDleGDmOGDoeGDl+GDkOGDnCDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVGV4dFNlcnZpY2UiIG1zZ2lkPSI4MTUxOTY4OTEwOTczOTk4NjcwIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5bhg5Thg5Phg5Ag4YOT4YOd4YOc4YOY4YOhIOGDmOGDnOGDouGDlOGDoOGDpOGDlOGDmOGDoeGDmOGDoSDhg6Lhg5Thg6Xhg6Hhg6Lhg6Phg6Dhg5gg4YOh4YOQ4YOb4YOh4YOQ4YOu4YOj4YOg4YOX4YOQ4YOcICjhg5vhg5Dhg5IuIFNwZWxsQ2hlY2tlclNlcnZpY2UpIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDkC4g4YOQ4YOg4YOQ4YOh4YOT4YOg4YOd4YOhIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDlOGDkeGDkCDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Ug4YOQ4YOe4YOU4YOR4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSI0NzA4NTk2MDIxMTYxNDczMjU1Ij4iVlBOIOGDoeGDlOGDoOGDleGDmOGDoeGDl+GDkOGDnCDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVnBuU2VydmljZSIgbXNnaWQ9IjIwNjc4NDU1NjQ1ODE2OTM5MDUiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIFZwbiDhg6Hhg5Thg6Dhg5Xhg5jhg6Hhg5jhg6Eg4YOW4YOU4YOT4YOQIOGDk+GDneGDnOGDmOGDoSDhg5jhg5zhg6Lhg5Thg6Dhg6Thg5Thg5jhg6Hhg5fhg5Dhg5wg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOQLiDhg5Dhg6Dhg5Dhg6Hhg5Phg6Dhg53hg6Eg4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOU4YOR4YOQIOGDqeGDleGDlOGDo+GDmuGDlOGDkeGDoOGDmOGDlSDhg5Dhg57hg5Thg5Hhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kV2FsbHBhcGVyIiBtc2dpZD0iODcxNjQwMDI3OTkzNzg1NjQ2MiI+IuGDpOGDneGDnOGDluGDlCDhg5vhg5jhg63hg5Thg5Phg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kV2FsbHBhcGVyIiBtc2dpZD0iNzEwODQyODY5MjU5NTQ5MTY2OCI+IuGDm+GDpOGDmuGDneGDkeGDlOGDmuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOk4YOd4YOc4YOY4YOhIOGDluGDlOGDk+GDkCDhg5Phg53hg5zhg5jhg6Eg4YOY4YOc4YOi4YOU4YOg4YOk4YOU4YOY4YOh4YOX4YOQ4YOcIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDkC4g4YOQ4YOg4YOQ4YOh4YOT4YOg4YOd4YOhIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDlOGDkeGDkCDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Ug4YOQ4YOe4YOU4YOR4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFJlbW90ZVZpZXdzIiBtc2dpZD0iNTY5Nzk4Nzc1OTg5NzM2NzA5OSI+IuGDleGDmOGDr+GDlOGDoiDhg6Hhg5Thg6Dhg5Xhg5jhg6Hhg5fhg5Dhg5wg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFJlbW90ZVZpZXdzIiBtc2dpZD0iNDcxNzk4NzgxMDEzNzY5MjU3MiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOW4YOU4YOT4YOQIOGDk+GDneGDnOGDmOGDoSDhg5jhg5zhg6Lhg5Thg6Dhg6Thg5Thg5jhg6Hhg5jhg6Eg4YOV4YOY4YOv4YOU4YOi4YOX4YOQ4YOcIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDkC4g4YOQ4YOg4YOQ4YOh4YOT4YOg4YOd4YOhIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDlOGDkeGDkCDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Ug4YOQ4YOe4YOU4YOR4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZERldmljZUFkbWluIiBtc2dpZD0iODcwNDk4NjE2MzcxMTQ1NTAxMCI+IuGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDmOGDoSDhg5Dhg5Phg5vhg5jhg5zhg5fhg5Dhg5wg4YOY4YOc4YOi4YOU4YOg4YOQ4YOl4YOq4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZERldmljZUFkbWluIiBtc2dpZD0iNTY5NzE1NDE5NTQzOTA3OTMwIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5jhg6Eg4YOQ4YOT4YOb4YOY4YOc4YOY4YOh4YOi4YOg4YOQ4YOi4YOd4YOg4YOY4YOh4YOX4YOV4YOY4YOhIGludGVudCDhg53hg5Hhg5jhg5Thg6Xhg6Lhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOQLiDhg5Dhg6Dhg5Dhg6Hhg5Phg6Dhg53hg6Eg4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOU4YOR4YOQIOGDqeGDleGDlOGDo+GDmuGDlOGDkeGDoOGDmOGDlSDhg5Dhg57hg5Thg5Hhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VEZXZpY2VBZG1pbnMiIG1zZ2lkPSI0MjQ4ODI4OTAwMDQ1ODA4NzIyIj4i4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOY4YOhIOGDkOGDk+GDm+GDmOGDnOGDmOGDoeGDouGDoOGDkOGDouGDneGDoOGDoSDhg5Phg5Dhg5vhg5Dhg6Lhg5Thg5Hhg5Ag4YOQ4YOcIOGDkOGDm+GDneGDqOGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZURldmljZUFkbWlucyIgbXNnaWQ9IjUwMjU2MDgxNjc3MDk5NDI0ODUiPiLhg6Hhg5Dhg6jhg6Phg5Dhg5rhg5Thg5Hhg5Dhg6Eg4YOQ4YOr4YOa4YOU4YOV4YOhIOGDm+GDpOGDmuGDneGDkeGDlOGDmuGDoSDhg5Phg5Dhg5Dhg5vhg5Dhg6Lhg53hg6Eg4YOQ4YOcIOGDkOGDm+GDneGDqOGDkOGDmuGDneGDoSDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5jhg6Eg4YOQ4YOl4YOi4YOY4YOj4YOg4YOYIOGDkOGDk+GDm+GDmOGDnOGDmOGDoeGDouGDoOGDkOGDouGDneGDoOGDlOGDkeGDmC4g4YOp4YOV4YOU4YOj4YOa4YOU4YOR4YOg4YOY4YOVIOGDkOGDnuGDlOGDkeGDoSwg4YOQ4YOa4YOR4YOQ4YOXLCDhg5Dhg6Dhg5Dhg6Hhg53hg5Phg5Thg6Eg4YOT4YOQ4YOt4YOY4YOg4YOT4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRPcmllbnRhdGlvbiIgbXNnaWQ9IjMzNjU5NDc3MTcxNjM4NjY4NDQiPiLhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOd4YOg4YOY4YOU4YOc4YOi4YOQ4YOq4YOY4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldE9yaWVudGF0aW9uIiBtc2dpZD0iMzA0NjEyNjYxOTMxNjY3MTQ3NiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDkOGDouGDoOGDmOGDkOGDmuGDneGDoSDhg5Thg5nhg6Dhg5Dhg5zhg5gg4YOc4YOU4YOR4YOY4YOh4YOb4YOY4YOU4YOgIOGDk+GDoOGDneGDoS4g4YOQ4YOg4YOQ4YOh4YOT4YOg4YOd4YOhIOGDmOGDpeGDnOGDlOGDkeGDkCDhg6Hhg5Dhg63hg5jhg6Dhg50g4YOp4YOV4YOU4YOj4YOa4YOU4YOR4YOg4YOY4YOVIOGDkOGDnuGDlOGDkeGDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFBvaW50ZXJTcGVlZCIgbXNnaWQ9IjkxNzUzNzE2MTMzMjI1NjI5MzQiPiLhg5vhg5Dhg6nhg5Xhg5Thg5zhg5Thg5Hhg5rhg5jhg6Eg4YOh4YOY4YOp4YOl4YOQ4YOg4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFBvaW50ZXJTcGVlZCIgbXNnaWQ9IjY4NjY1NjMyMzQyNzQxMDQyMzMiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg6jhg5Thg6rhg5Xhg5Dhg5rhg53hg6Eg4YOb4YOQ4YOj4YOh4YOY4YOhIOGDkOGDnCDhg5fhg6Dhg5Thg6Xhg57hg5Thg5Phg5jhg6Eg4YOZ4YOj4YOg4YOh4YOd4YOg4YOY4YOhIOGDoeGDmOGDqeGDpeGDkOGDoOGDlCDhg5zhg5Thg5Hhg5jhg6Hhg5vhg5jhg5Thg6Ag4YOT4YOg4YOd4YOhLiDhg5Dhg6Dhg5Dhg6Hhg5Phg6Dhg53hg6Eg4YOY4YOl4YOc4YOU4YOR4YOQIOGDoeGDkOGDreGDmOGDoOGDnSDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Ug4YOQ4YOe4YOU4YOR4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0S2V5Ym9hcmRMYXlvdXQiIG1zZ2lkPSI0Nzc4NzMxNzAzNjAwOTA5MzQwIj4i4YOZ4YOa4YOQ4YOV4YOY4YOQ4YOi4YOj4YOg4YOY4YOhIOGDkuGDkOGDnOGDmuGDkOGDkuGDlOGDkeGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9Ijg0ODAwMTY3NzExMzQxNzU4NzkiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDqOGDlOGDquGDleGDkOGDmuGDneGDoSDhg5nhg5rhg5Dhg5Xhg5jhg5Dhg6Lhg6Phg6Dhg5jhg6Eg4YOS4YOQ4YOc4YOa4YOQ4YOS4YOU4YOR4YOQLiDhg5Thg6Eg4YOk4YOj4YOc4YOl4YOq4YOY4YOQIOGDkOGDoOGDkOGDoeGDk+GDoOGDneGDoSDhg5jhg6Xhg5zhg5Thg5Hhg5Ag4YOh4YOQ4YOt4YOY4YOg4YOdIOGDqeGDleGDlOGDo+GDmuGDlOGDkeGDoOGDmOGDlSDhg5Dhg57hg5Thg5Hhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zaWduYWxQZXJzaXN0ZW50UHJvY2Vzc2VzIiBtc2dpZD0iNDUzOTAwMjk5MTk0NzM3NjY1OSI+IuGDkOGDnuGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSBMaW51eC3hg5jhg6Eg4YOh4YOY4YOS4YOc4YOQ4YOa4YOU4YOR4YOY4YOhIOGDkuGDkOGDkuGDluGDkOGDleGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0ODk2OTkyMDc5MTgyNjQ5MTQxIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5vhg53hg5jhg5fhg67hg53hg5Xhg53hg6Eg4YOj4YOW4YOg4YOj4YOc4YOV4YOU4YOa4YOn4YOd4YOk4YOY4YOa4YOYIOGDoeGDmOGDkuGDnOGDkOGDmuGDmOGDoSDhg5vhg6Phg5Phg5vhg5jhg5Ug4YOe4YOg4YOd4YOq4YOU4YOh4YOU4YOR4YOY4YOh4YOX4YOV4YOY4YOhIOGDkuGDkOGDkuGDluGDkOGDleGDnOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcnNpc3RlbnRBY3Rpdml0eSIgbXNnaWQ9Ijg4NDExMTM2Mjc5NTU1NjM5MzgiPiLhg5Phg5Dhg5Dhg6fhg5Thg5zhg53hg6Eg4YOQ4YOe4YOYIOGDm+GDo+GDk+GDm+GDmOGDleGDkOGDkyDhg6nhg5Dhg6Dhg5fhg6Phg5rhg5Dhg5MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg1MjUxODkyNzIzMjkwODYxMzciPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg6Hhg5Dhg5nhg6Phg5fhg5Dhg6Dhg5gg4YOc4YOQ4YOs4YOY4YOa4YOU4YOR4YOYIOGDm+GDo+GDk+GDm+GDmOGDleGDkOGDkyDhg6nhg5Dhg6zhg5Thg6Dhg53hg6Eg4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOQ4YOo4YOYLiDhg5Thg6Eg4YOo4YOU4YOW4YOm4YOj4YOT4YOQ4YOV4YOhIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg67hg5Thg5rhg5vhg5jhg6Hhg5Dhg6zhg5Xhg5Phg53hg5vhg53hg5Hhg5Dhg6Eg4YOh4YOu4YOV4YOQIOGDkOGDnuGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSDhg5Phg5Ag4YOo4YOU4YOQ4YOc4YOU4YOa4YOU4YOR4YOhIOGDouGDkOGDkeGDmuGDlOGDouGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0Mzg0NzYwMDQ3NTA4Mjc4MjcyIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOh4YOQ4YOZ4YOj4YOX4YOQ4YOg4YOYIOGDnOGDkOGDrOGDmOGDmuGDlOGDkeGDmCDhg5vhg6Phg5Phg5vhg5jhg5Xhg5Dhg5Mg4YOp4YOQ4YOs4YOU4YOg4YOd4YOhIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDkOGDqOGDmC4g4YOU4YOhIOGDqOGDlOGDluGDpuGDo+GDk+GDkOGDleGDoSDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOu4YOU4YOa4YOb4YOY4YOh4YOQ4YOs4YOV4YOT4YOd4YOb4YOd4YOR4YOQ4YOhIOGDoeGDruGDleGDkCDhg5Dhg57hg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOT4YOQIOGDqOGDlOGDkOGDnOGDlOGDmuGDlOGDkeGDoSDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZWxldGVQYWNrYWdlcyIgbXNnaWQ9IjE4NDM4NTEyOTUzNzcwNTkzOCI+IuGDkOGDnuGDlOGDkeGDmOGDoSDhg6zhg5Dhg6jhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZWxldGVQYWNrYWdlcyIgbXNnaWQ9Ijc0MTE0ODAyNzUxNjcyMDUwODEiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIEFuZHJvaWQg4YOe4YOQ4YOZ4YOU4YOi4YOU4YOR4YOY4YOhIOGDrOGDkOGDqOGDmuGDkC4g4YOb4YOQ4YOV4YOc4YOUIOGDkOGDnuGDlOGDkeGDm+GDkCDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOd4YOcIOGDm+GDnOGDmOGDqOGDleGDnOGDlOGDmuGDneGDleGDkOGDnOGDmCDhg5Dhg57hg5Thg5Hhg5jhg6Eg4YOs4YOQ4YOh4YOQ4YOo4YOa4YOU4YOa4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2xlYXJBcHBVc2VyRGF0YSIgbXNnaWQ9IjI3NDEwOTE5MTg0NTg0Mjc1NiI+IuGDoeGDruGDleGDkCDhg5Dhg57hg5Thg5Hhg5jhg6Eg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDrOGDkOGDqOGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NsZWFyQXBwVXNlckRhdGEiIG1zZ2lkPSI0NjI1MzIzNjg0MTI1NDU5NDg4Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDrOGDkOGDqOGDmuGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RlbGV0ZUNhY2hlRmlsZXMiIG1zZ2lkPSIzMTI4NjY1NTcxODM3NDA4Njc1Ij4i4YOh4YOu4YOV4YOQIOGDkOGDnuGDlOGDkeGDmOGDoSDhg6Xhg5Thg6jhg5jhg6Eg4YOs4YOQ4YOo4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGVsZXRlQ2FjaGVGaWxlcyIgbXNnaWQ9IjM4MTI5OTg1OTkwMDY3MzAxOTYiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDpeGDlOGDqOGDmOGDoSDhg6Thg5Dhg5jhg5rhg5Thg5Hhg5jhg6Eg4YOs4YOQ4YOo4YOa4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0UGFja2FnZVNpemUiIG1zZ2lkPSI3NDcyOTIxNzY4MzU3OTgxOTg2Ij4i4YOQ4YOe4YOY4YOhIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg6Hhg5jhg5Xhg6Dhg6rhg5jhg6Eg4YOS4YOQ4YOW4YOd4YOb4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0UGFja2FnZVNpemUiIG1zZ2lkPSIzOTIxMDY4MTU0NDIwNzM4Mjk2Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOb4YOd4YOY4YOe4YOd4YOV4YOd4YOhIOGDl+GDkOGDleGDmOGDoeGDmCDhg5nhg53hg5Phg5gsIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmCDhg5Phg5Ag4YOl4YOU4YOo4YOY4YOhIOGDluGDneGDm+GDlOGDkeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxQYWNrYWdlcyIgbXNnaWQ9IjIxOTkxMjg0ODI4MjAzMDY5MjQiPiLhg5Dhg57hg5Thg5Hhg5jhg6Eg4YOe4YOY4YOg4YOT4YOQ4YOe4YOY4YOg4YOYIOGDmOGDnOGDoeGDouGDkOGDmuGDkOGDquGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luc3RhbGxQYWNrYWdlcyIgbXNnaWQ9IjU2Mjg1MzA5NzI1NDgwNzEyODQiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIEFuZHJvaWQt4YOY4YOhIOGDkOGDruGDkOGDmuGDmCDhg5Dhg5wg4YOS4YOQ4YOc4YOQ4YOu4YOa4YOU4YOR4YOj4YOa4YOYIOGDnuGDkOGDmeGDlOGDouGDlOGDkeGDmOGDoSDhg5jhg5zhg6Hhg6Lhg5Dhg5rhg5Dhg6rhg5jhg5AuIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5Thg5Hhg5vhg5Ag4YOo4YOU4YOh4YOQ4YOr4YOa4YOd4YOQIOGDlOGDoSDhg5Lhg5Dhg5vhg53hg5jhg6fhg5Thg5zhg53hg5wg4YOQ4YOu4YOQ4YOa4YOYIOGDkOGDnuGDlOGDkeGDmOGDoSDhg5Phg5Dhg6Hhg5Dhg5vhg5Dhg6Lhg5Thg5Hhg5rhg5Dhg5Mg4YOX4YOV4YOY4YOX4YOc4YOU4YOR4YOj4YOg4YOQ4YOTLCDhg5vhg5zhg5jhg6jhg5Xhg5zhg5Thg5rhg53hg5Xhg5Dhg5zhg5gg4YOj4YOk4YOa4YOU4YOR4YOU4YOR4YOY4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2xlYXJBcHBDYWNoZSIgbXNnaWQ9Ijc0ODcyNzkzOTE3MjM1MjY4MTUiPiLhg6fhg5Xhg5Thg5rhg5Ag4YOQ4YOe4YOY4YOhIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDl+GDkCDhg6Xhg5Thg6jhg5jhg6Eg4YOs4YOQ4YOo4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBDYWNoZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODk3NDY0MDg3MTk0NTQzNDU2NSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDkuGDkOGDkOGDoeGDo+GDpOGDl+GDkOGDleGDneGDoSDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5jhg6Eg4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOQIOGDoeGDruGDleGDkCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Thg5Hhg5jhg6Eg4YOl4YOU4YOo4YOY4YOhIOGDoeGDkOGDpeGDkOGDpuGDkOGDmuGDk+GDlOGDlOGDkeGDqOGDmCDhg6Thg5Dhg5jhg5rhg5Thg5Hhg5jhg6Eg4YOs4YOQ4YOo4YOa4YOY4YOXLsKg4YOQ4YOb4YOQ4YOcIOGDqOGDlOGDmOGDq+GDmuGDlOGDkeGDkCDhg5Lhg5Dhg5vhg53hg5jhg6zhg5Xhg5jhg53hg6Eg4YOh4YOu4YOV4YOQIOGDkOGDnuGDmuGDmOGDmeGDkOGDquGDmOGDlOGDkeGDmOGDoSDhg6Phg6Thg6Dhg50g4YOc4YOU4YOa4YOYIOGDkuGDkOGDqOGDleGDlOGDkeGDkCwg4YOg4YOQ4YOT4YOS4YOQ4YOc4YOQ4YOqIOGDm+GDkOGDlyDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5jhg6Eg4YOu4YOU4YOa4YOQ4YOu4YOa4YOQIOGDnuGDneGDleGDnOGDkCDhg6Hhg63hg5jhg6Dhg5Phg5Thg5Hhg5Dhg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBDYWNoZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI0NTk0NDEwMjE5NTY0MzY3NzkiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg5Lhg5Dhg5Dhg6Hhg6Phg6Thg5fhg5Dhg5Xhg53hg6Eg4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOY4YOhIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDkCDhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOU4YOR4YOY4YOhIOGDpeGDlOGDqOGDmOGDoSDhg6Hhg5Dhg6Xhg5Dhg6bhg5Dhg5rhg5Phg5Thg5Thg5Hhg6jhg5gg4YOk4YOQ4YOY4YOa4YOU4YOR4YOY4YOhIOGDrOGDkOGDqOGDmuGDmOGDly7CoOGDkOGDm+GDkOGDnCDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOS4YOQ4YOb4YOd4YOY4YOs4YOV4YOY4YOd4YOhIOGDoeGDruGDleGDkCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Thg5Hhg5jhg6Eg4YOj4YOk4YOg4YOdIOGDnOGDlOGDmuGDmCDhg5Lhg5Dhg6jhg5Xhg5Thg5Hhg5AsIOGDoOGDkOGDk+GDkuGDkOGDnOGDkOGDqiDhg5vhg5Dhg5cg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDruGDlOGDmuGDkOGDruGDmuGDkCDhg57hg53hg5Xhg5zhg5Ag4YOh4YOt4YOY4YOg4YOT4YOU4YOR4YOQ4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW92ZVBhY2thZ2UiIG1zZ2lkPSIzMjg5ODkwMjcxNjQ1OTIxNDExIj4i4YOQ4YOe4YOY4YOhIOGDoOGDlOGDoeGDo+GDoOGDoeGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg6Lhg5Dhg5zhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3ZlUGFja2FnZSIgbXNnaWQ9IjMxOTU2MjIxNzc3ODI0NDUyNCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOQ4YOe4YOU4YOR4YOY4YOhIOGDoOGDlOGDoeGDo+GDoOGDoeGDoeGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg6Lhg5Dhg5zhg5Ag4YOS4YOQ4YOg4YOU4YOT4YOQ4YOcIOGDqOGDmOGDk+GDkCDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5Dhg5bhg5Qg4YOT4YOQIOGDnuGDmOGDoOGDmOGDpeGDmOGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRMb2dzIiBtc2dpZD0iNjYxNTc3ODU0MzE5ODk2NzYxNCI+IuGDn+GDo+GDoOGDnOGDkOGDmuGDmOGDoSDhg6Hhg5Thg5zhg6Hhg5jhg6Lhg5jhg6Phg6Dhg5gg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDrOGDkOGDmeGDmOGDl+GDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MjA2MTMxMzI5MzQ1NTE1MSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDoeGDruGDleGDkOGDk+GDkOGDoeGDruGDleGDkCDhg5/hg6Phg6Dhg5zhg5Dhg5rhg5jhg6Eg4YOk4YOQ4YOY4YOa4YOU4YOR4YOY4YOhIOGDrOGDkOGDmeGDmOGDl+GDruGDleGDkC4g4YOU4YOhIOGDo+GDpOGDmuGDlOGDkeGDkOGDoSDhg5Dhg6vhg5rhg5Thg5Xhg6EsIOGDkuGDkOGDmOGDkuGDneGDoSDhg5bhg53hg5Lhg5Dhg5Phg5gg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOQIOGDmOGDm+GDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5EsIOGDl+GDoyDhg6Dhg5Dhg6Eg4YOQ4YOZ4YOU4YOX4YOU4YOR4YOXIOGDouGDkOGDkeGDmuGDlOGDouGDluGDlCDhg5Phg5AsIOGDnuGDneGDouGDlOGDnOGDquGDmOGDo+GDoOGDkOGDkywg4YOe4YOY4YOg4YOQ4YOT4YOYIOGDkOGDnCDhg5nhg53hg5zhg6Thg5jhg5Phg5Thg5zhg6rhg5jhg5Dhg5rhg6Phg6Dhg5gg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOQ4YOqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjA2MzQzODE0MDI0MTU2MDQ0MyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDoeGDruGDleGDkOGDk+GDkOGDoeGDruGDleGDkCDhg5/hg6Phg6Dhg5zhg5Dhg5rhg5jhg6Eg4YOk4YOQ4YOY4YOa4YOU4YOR4YOY4YOhIOGDrOGDkOGDmeGDmOGDl+GDruGDleGDkC4g4YOU4YOhIOGDo+GDpOGDmuGDlOGDkeGDkOGDoSDhg5Dhg6vhg5rhg5Thg5Xhg6EsIOGDkuGDkOGDmOGDkuGDneGDoSDhg5bhg53hg5Lhg5Dhg5Phg5gg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOQIOGDmOGDm+GDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5EsIOGDl+GDoyDhg6Dhg5Dhg6Eg4YOQ4YOZ4YOU4YOX4YOU4YOR4YOXIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDluGDlCDhg5Phg5AsIOGDnuGDneGDouGDlOGDnOGDquGDmOGDo+GDoOGDkOGDkywg4YOe4YOY4YOg4YOQ4YOT4YOYIOGDkOGDnCDhg5nhg53hg5zhg6Thg5jhg5Phg5Thg5zhg6rhg5jhg5Dhg5rhg6Phg6Dhg5gg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOQ4YOqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjcxNTgwNTU1NTgyMzg4MTgxOCI+IuGDnOGDlOGDkeGDmOGDoeGDm+GDmOGDlOGDoOGDmCDhg5vhg5Thg5Phg5jhg5Ag4YOT4YOU4YOZ4YOd4YOT4YOU4YOg4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI4MjgzOTEyNDg4NDMzMTg5MDEwIj4i4YOQ4YOe4YOhIOGDk+GDkOGDoeGDkOGDmeGDoOGDkOGDleGDkOGDkyDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOd4YOhIOGDnOGDlOGDkeGDmOGDoeGDm+GDmOGDlOGDoOGDmCDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg6Phg5rhg5gg4YOb4YOU4YOT4YOY4YOQIOGDk+GDlOGDmeGDneGDk+GDlOGDoOGDmC4iPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGVybWxhYl9tYW5hZ2VDYUNlcnRpZmljYXRlcyAoMTY3ODM5MTg5Njc4Njg4MjAxNCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwZXJtZGVzY19tYW5hZ2VDYUNlcnRpZmljYXRlcyAoNDAxNTY0NDA0NzE5NjkzNzAxNCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGlhZ25vc3RpYyIgbXNnaWQ9IjgwNzY3NDM5NTM5MDgwMDAzNDIiPiLhg6Hhg5jhg6Hhg6Lhg5Thg5vhg5jhg6Eg4YOT4YOY4YOQ4YOS4YOc4YOd4YOh4YOi4YOY4YOZ4YOY4YOhIOGDoOGDlOGDoeGDo+GDoOGDoeGDlOGDkeGDqOGDmCDhg6zhg5Dhg5nhg5jhg5fhg67hg5Xhg5Av4YOp4YOQ4YOs4YOU4YOg4YOY4YOhIOGDo+GDpOGDmuGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RpYWdub3N0aWMiIG1zZ2lkPSI2NjA4Mjk1NjkyMDAyNDUyMjgzIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOs4YOQ4YOY4YOZ4YOY4YOX4YOu4YOd4YOhIOGDkOGDnCDhg6nhg5Dhg6zhg5Thg6Dhg53hg6Eg4YOc4YOU4YOR4YOY4YOh4YOb4YOY4YOU4YOgIOGDoOGDlOGDoeGDo+GDoOGDoeGDqOGDmCwg4YOg4YOd4YOb4YOU4YOa4YOY4YOqIOGDk+GDmOGDkOGDkuGDnOGDneGDoeGDouGDmOGDmeGDmOGDoSDhg6/hg5Lhg6Phg6Thg6Eg4YOU4YOZ4YOj4YOX4YOV4YOc4YOY4YOhLCDhg5vhg5Dhg5Lhg5Dhg5rhg5jhg5fhg5Dhg5MsIOGDpOGDkOGDmOGDmuGDlOGDkeGDmCAvZGV2LeGDqOGDmC4g4YOQ4YOb4YOQ4YOcIOGDqOGDlOGDoeGDkOGDq+GDmuGDneGDkCDhg5jhg5vhg53hg6Xhg5vhg5Thg5Phg53hg6Eg4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDoeGDouGDkOGDkeGDmOGDmuGDo+GDoOGDneGDkeGDkOGDoeGDkCDhg5Phg5Ag4YOj4YOh4YOQ4YOk4YOg4YOX4YOu4YOd4YOU4YOR4YOQ4YOW4YOULiDhg5vhg5jhg6Hhg5gg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOQIOGDm+GDruGDneGDmuGDneGDkyDhg5vhg6zhg5Dhg6Dhg5vhg53hg5Thg5Hhg5rhg5jhg6Eg4YOQ4YOcIOGDneGDnuGDlOGDoOGDkOGDouGDneGDoOGDmOGDoSDhg5vhg5jhg5Thg6Ag4YOi4YOU4YOl4YOc4YOY4YOZ4YOY4YOhIOGDoeGDnuGDlOGDquGDmOGDpOGDmOGDmeGDo+GDoOGDmCDhg5Phg5jhg5Dhg5Lhg5zhg53hg6Hhg6Lhg5jhg5nhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOj4YOc4YOT4YOQIOGDm+GDneGDruGDk+GDlOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZUNvbXBvbmVudFN0YXRlIiBtc2dpZD0iNjMzNTU3Njc3NTcxMTA5NTkzMSI+IuGDkOGDnuGDmOGDoSDhg5nhg53hg5vhg57hg53hg5zhg5Thg5zhg6Lhg5Thg5Hhg5jhg6Eg4YOp4YOQ4YOg4YOX4YOV4YOQIOGDkOGDnCDhg5Lhg5Dhg5vhg53hg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODg4NzQzNTc0MDk4MjIzNzI5NCI+IuGDkOGDnuGDlOGDkeGDoSDhg6Hhg5Dhg6jhg6Phg5Dhg5rhg5Thg5Hhg5Dhg6Eg4YOQ4YOr4YOa4YOU4YOV4YOhLCDhg6jhg5Thg6rhg5Xhg5Dhg5rhg53hg5wg4YOh4YOu4YOV4YOQIOGDkOGDnuGDlOGDkeGDmOGDoSDhg5nhg53hg5vhg57hg53hg5zhg5Thg5zhg6Lhg5Thg5Hhg5guIOGDkOGDmyDhg5Lhg5bhg5jhg5cg4YOb4YOQ4YOV4YOc4YOUIOGDkOGDnuGDlOGDkeGDmCDhg6jhg5Thg6vhg5rhg5Thg5Hhg5Thg5wg4YOi4YOQ4YOR4YOa4YOU4YOi4YOY4YOhIOGDm+GDnOGDmOGDqOGDleGDnOGDlOGDmuGDleGDkOGDnOGDmCDhg6Thg6Phg5zhg6Xhg6rhg5jhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOX4YOY4YOo4YOV4YOQ4YOhLiDhg5Thg6Eg4YOc4YOU4YOR4YOQ4YOg4YOX4YOV4YOQIOGDoeGDmOGDpOGDoOGDl+GDruGDmOGDmuGDmOGDlyDhg5Lhg5Dhg5vhg53hg5jhg6fhg5Thg5zhg5Thg5csIOGDoOGDkOGDl+GDkCDhg6jhg5Thg5vhg5fhg67hg5Xhg5Thg5Xhg5jhg5cg4YOQ4YOgIOGDk+GDkOGDkOGDoOGDpuGDleGDmOGDneGDlyDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5jhg6Eg4YOZ4YOd4YOb4YOe4YOd4YOc4YOU4YOc4YOi4YOU4YOR4YOY4YOhIOGDm+GDo+GDqOGDkOGDneGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE4MjcyMzI0ODQ0MTY1MDU2MTUiPiLhg5Dhg57hg5Thg5Hhg6Eg4YOh4YOQ4YOo4YOj4YOQ4YOa4YOU4YOR4YOQ4YOhIOGDkOGDq+GDmuGDlOGDleGDoSwg4YOo4YOU4YOq4YOV4YOQ4YOa4YOd4YOcIOGDoeGDruGDleGDkCDhg5Dhg57hg5Thg5Hhg5jhg6Eg4YOZ4YOd4YOb4YOe4YOd4YOc4YOU4YOc4YOi4YOU4YOR4YOYLiDhg5Dhg5sg4YOS4YOW4YOY4YOXIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5Thg5Hhg5gg4YOo4YOU4YOr4YOa4YOU4YOR4YOU4YOcIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5vhg5zhg5jhg6jhg5Xhg5zhg5Thg5rhg5Xhg5Dhg5zhg5gg4YOk4YOj4YOc4YOl4YOq4YOY4YOU4YOR4YOY4YOhIOGDkuGDkOGDl+GDmOGDqOGDleGDkOGDoS4g4YOU4YOhIOGDnOGDlOGDkeGDkOGDoOGDl+GDleGDkCDhg6Hhg5jhg6Thg6Dhg5fhg67hg5jhg5rhg5jhg5cg4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOU4YOXLCDhg6Dhg5Dhg5fhg5Ag4YOo4YOU4YOb4YOX4YOu4YOV4YOU4YOV4YOY4YOXIOGDkOGDoCDhg5Phg5Dhg5Dhg6Dhg6bhg5Xhg5jhg53hg5cg4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOY4YOhIOGDmeGDneGDm+GDnuGDneGDnOGDlOGDnOGDouGDlOGDkeGDmOGDoSDhg5vhg6Phg6jhg5Dhg53hg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ncmFudFJldm9rZVBlcm1pc3Npb25zIiBtc2dpZD0iNDYyNzMxNTM1MTA5MzUwODc5NSI+IuGDnOGDlOGDkeGDkOGDoOGDl+GDleGDlOGDkeGDmOGDoSDhg5vhg5jhg6rhg5Thg5vhg5Ag4YOQ4YOcIOGDkuGDkOGDo+GDpeGDm+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dyYW50UmV2b2tlUGVybWlzc2lvbnMiIG1zZ2lkPSI0MDg4NjQyNjU0MDg1ODUwNjYyIj4i4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOQ4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOS4YOQ4YOh4YOq4YOU4YOhIOGDkOGDnCDhg5Lhg5Dhg5Dhg6Phg6Xhg5vhg53hg6Eg4YOS4YOQ4YOc4YOh4YOQ4YOZ4YOj4YOX4YOg4YOU4YOR4YOj4YOa4YOYIOGDnOGDlOGDkeGDkOGDoOGDl+GDleGDlOGDkeGDmCDhg5vhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOQ4YOcIOGDoeGDruGDleGDkCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6EuIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Thg5Hhg5vhg5Ag4YOo4YOU4YOY4YOr4YOa4YOU4YOR4YOQIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDneGDnCDhg5jhg5sg4YOX4YOV4YOY4YOh4YOU4YOR4YOU4YOR4YOW4YOUIOGDrOGDleGDk+GDneGDm+GDmOGDoeGDl+GDleGDmOGDoSwg4YOg4YOd4YOb4YOa4YOU4YOR4YOY4YOqIOGDm+GDkOGDlyDhg5Dhg6Ag4YOb4YOY4YOQ4YOc4YOY4YOt4YOU4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0UHJlZmVycmVkQXBwbGljYXRpb25zIiBtc2dpZD0iODQ2MzE4MTYyODY5NTM5NjM5MSI+IuGDoeGDkOGDoeGDo+GDoOGDleGDlOGDmuGDmCDhg5Dhg57hg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOn4YOU4YOc4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJlZmVycmVkQXBwbGljYXRpb25zIiBtc2dpZD0iNDk3Mzk4Njc2MjI0MTc4MzcxMiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOo4YOU4YOq4YOV4YOQ4YOa4YOd4YOhIOGDl+GDpeGDleGDlOGDnOGDmCDhg6Hhg5Dhg6Hhg6Phg6Dhg5Xhg5Thg5rhg5gg4YOQ4YOe4YOU4YOR4YOYLiDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOU4YOR4YOb4YOQIOGDlOGDoSDhg6jhg5Thg6Hhg5Dhg6vhg5rhg53hg5Ag4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOd4YOcIOGDl+GDpeGDleGDlOGDnCDhg5vhg5jhg5Thg6Ag4YOb4YOd4YOu4YOb4YOQ4YOg4YOU4YOR4YOQ4YOT4YOYIOGDkOGDnuGDlOGDkeGDmOGDoSDhg6nhg6Phg5vhg5Dhg5Mg4YOo4YOU4YOh4YOQ4YOq4YOV4YOa4YOU4YOa4YOQ4YOTLCDhg5fhg6Xhg5Xhg5Thg5zhg5Lhg5Dhg5wg4YOe4YOY4YOg4YOQ4YOT4YOYIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDmOGDoSDhg5vhg53hg6Hhg5Dhg5Lhg6Dhg53hg5Xhg5Thg5Hhg5rhg5Dhg5MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNldHRpbmdzIiBtc2dpZD0iMjIyNjE5NTI5MDk1NTIyNDczMCI+IuGDoeGDmOGDoeGDouGDlOGDm+GDmOGDoSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTZXR0aW5ncyIgbXNnaWQ9Ijc3NzU3MjM0NDE1NTg5MDcxODEiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg6jhg5Thg6rhg5Xhg5Dhg5rhg53hg6Eg4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmOGDoSDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5guIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5Thg5Hhg6Eg4YOo4YOU4YOj4YOr4YOa4YOY4YOQ4YOXIOGDk+GDkOGDkOGDluGDmOGDkOGDnOGDneGDnCDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDmeGDneGDnOGDpOGDmOGDkuGDo+GDoOGDkOGDquGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSIyMDQ2NzYyNTE4NzY3MTgyODgiPiLhg6Hhg5jhg6Hhg6Lhg5Thg5vhg5jhg6Eg4YOj4YOW4YOg4YOj4YOc4YOV4YOU4YOa4YOn4YOd4YOk4YOY4YOhIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNlY3VyZVNldHRpbmdzIiBtc2dpZD0iODE1OTUzNTYxMzAyMDEzNzM5MSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDo+GDoeGDkOGDpOGDoOGDl+GDruGDneGDlOGDkeGDmOGDoSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5jhg6Eg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkC4g4YOQ4YObIOGDqOGDlOGDoeGDkOGDq+GDmuGDlOGDkeGDmuGDneGDkeGDkOGDoSDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Xhg5gg4YOQ4YOe4YOU4YOR4YOY4YOhIOGDkOGDoOGDkOGDoeGDneGDk+GDlOGDoSDhg5jhg6fhg5Thg5zhg5Thg5Hhg5Thg5wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUdzZXJ2aWNlcyIgbXNnaWQ9IjIxNDk0MjY2NjQyMjYxNTIxODUiPiJHb29nbGUg4YOh4YOU4YOg4YOV4YOY4YOh4YOU4YOR4YOY4YOhIOGDoOGDo+GDmeGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUdzZXJ2aWNlcyIgbXNnaWQ9IjEyODczMDk0Mzc2MzgzODAyMjkiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIEdvb2dsZSDhg6Hhg5Thg6Dhg5Xhg5jhg6Hhg5Thg5Hhg5jhg6Eg4YOg4YOj4YOZ4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkC4g4YOQ4YOgIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDlOGDkeGDkCDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Ug4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOU4YOR4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIG1zZ2lkPSI1MzEyOTY1NTY1OTg3ODAwMDI1Ij4i4YOS4YOQ4YOo4YOV4YOU4YOR4YOQIOGDoeGDmOGDoeGDouGDlOGDm+GDmOGDoSDhg6nhg5Dhg6Dhg5fhg5Xhg5jhg6Hhg5Dhg6EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlQm9vdENvbXBsZXRlZCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzM5MDMwNDY2NDExNjg4MDcwNCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOh4YOQ4YOZ4YOj4YOX4YOQ4YOg4YOYIOGDl+GDkOGDleGDmOGDoSDhg6Hhg5jhg6Hhg6Lhg5Thg5vhg5jhg6Eg4YOp4YOQ4YOi4YOV4YOY4YOg4YOX4YOV4YOY4YOh4YOQ4YOhIOGDqeGDkOGDoOGDl+GDleGDkC4g4YOQ4YOb4YOQ4YOcIOGDqOGDlOGDmOGDq+GDmuGDlOGDkeGDkCDhg5Lhg5Dhg5vhg53hg5jhg6zhg5Xhg5jhg53hg6Eg4YOp4YOQ4YOi4YOV4YOY4YOg4YOX4YOV4YOY4YOhIOGDk+GDoOGDneGDmOGDoSDhg5Lhg5Dhg5bhg6Dhg5Phg5Ag4YOT4YOQIOGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg6jhg5Thg5zhg5Thg5rhg5Thg5Hhg5AsIOGDoOGDkOGDk+GDkuGDkOGDnCDhg5Dhg57hg5gg4YOn4YOd4YOV4YOU4YOa4YOX4YOV4YOY4YOhIOGDqeGDkOGDoOGDl+GDo+GDmuGDmCDhg5jhg6Xhg5zhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MTM5NTA1ODkxMDI2MTc1MDQiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDoeGDkOGDmeGDo+GDl+GDkOGDoOGDmCDhg5fhg5Dhg5Xhg5jhg6Eg4YOp4YOQ4YOg4YOX4YOV4YOQIOGDoeGDmOGDoeGDouGDlOGDm+GDmOGDoSDhg6nhg5Dhg6Lhg5Xhg5jhg6Dhg5fhg5Xhg5jhg6Hhg5fhg5Dhg5zhg5Dhg5Xhg5QuIOGDkOGDm+GDkOGDnCDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOS4YOQ4YOb4YOd4YOY4YOs4YOV4YOY4YOd4YOhIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg6nhg5Dhg6Lhg5Xhg5jhg6Dhg5fhg5Xhg5jhg6Eg4YOT4YOg4YOd4YOY4YOhIOGDkuGDkOGDluGDoOGDk+GDkCDhg5Phg5Ag4YOW4YOd4YOS4YOQ4YOT4YOQ4YOTIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg6jhg5Thg5zhg5Thg5rhg5Thg5Hhg5AsIOGDoOGDkOGDk+GDkuGDkOGDnCDhg5Dhg57hg5gg4YOn4YOd4YOV4YOU4YOa4YOX4YOV4YOY4YOhIOGDqeGDkOGDoOGDl+GDo+GDmuGDmCDhg5jhg6Xhg5zhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RTdGlja3kiIG1zZ2lkPSI3OTE5MTI2MzcyNjA2ODgxNjE0Ij4i4YOY4YOh4YOU4YOX4YOYIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5AsIOGDoOGDneGDm+GDmuGDlOGDkeGDmOGDqiDhg5Dhg6Ag4YOY4YOo4YOa4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3NzQ5NzYwNDk0Mzk5OTE1NjUxIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5Dhg6Dhg5Dhg6Hhg5Dhg6nhg6Xhg5Dhg6Dhg50g4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOY4YOhIOGDkuGDkOGDkuGDluGDkOGDleGDnOGDkCwg4YOg4YOd4YOb4YOa4YOU4YOR4YOY4YOqIOGDoOGDqeGDlOGDkeGDmOGDkOGDnCDhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5jhg6Eg4YOT4YOQ4YOh4YOg4YOj4YOa4YOU4YOR4YOY4YOhIOGDqOGDlOGDm+GDk+GDlOGDkuGDkOGDqi4g4YOQ4YObIOGDkuGDkOGDk+GDkOGDkuGDluGDkOGDleGDnOGDmOGDoSDhg5bhg53hg5vhg5Dhg5bhg5Qg4YOb4YOU4YOi4YOQ4YOTIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDkOGDmyDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOo4YOU4YOQ4YOc4YOU4YOa4YOd4YOhIOGDkOGDnCDhg6jhg5Thg5Dhg6Thg5Thg6Dhg67hg53hg6Eg4YOX4YOl4YOV4YOU4YOc4YOYIOGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg5vhg6Phg6jhg5Dhg53hg5Hhg5Ag4YOW4YOU4YOT4YOb4YOU4YOi4YOQ4YOTIOGDk+GDmOGDk+GDmCDhg5vhg53hg6rhg6Phg5rhg53hg5Hhg5jhg6Eg4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDoSDhg6jhg5Thg5Phg5Thg5Lhg5Dhg5MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjgyNTgwMzc2NDIzMjQ0NTA5MSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOQ4YOg4YOQ4YOh4YOQ4YOp4YOl4YOQ4YOg4YOdIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5AsIOGDoOGDneGDm+GDlOGDmuGDmOGDqiDhg6Dhg6nhg5Thg5Hhg5jhg5Dhg5wg4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOY4YOhIOGDk+GDkOGDoeGDoOGDo+GDmuGDlOGDkeGDmOGDoSDhg6jhg5Thg5vhg5Phg5Thg5Lhg5Dhg6ouIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Thg5Hhg6Eg4YOo4YOU4YOj4YOr4YOa4YOY4YOQ4YOXIOGDl+GDpeGDleGDlOGDnOGDmCDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOb4YOj4YOo4YOQ4YOd4YOR4YOY4YOhIOGDqOGDlOGDnOGDlOGDmuGDlOGDkeGDkCDhg5Dhg5wg4YOo4YOU4YOk4YOU4YOg4YOu4YOU4YOR4YOQIOGDluGDlOGDk+GDm+GDlOGDouGDkOGDkyDhg5Phg5jhg5Phg5gg4YOb4YOd4YOq4YOj4YOa4YOd4YOR4YOY4YOhIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOT4YOU4YOS4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENvbnRhY3RzIiBtc2dpZD0iODM0ODQ4MTEzMTg5OTg4NjEzMSI+IuGDl+GDpeGDleGDlOGDnOGDmCDhg5nhg53hg5zhg6Lhg5Dhg6Xhg6Lhg5Thg5Hhg5jhg6Eg4YOs4YOQ4YOZ4YOY4YOX4YOu4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENvbnRhY3RzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1Mjk0ODY2ODU2OTQxMTQ5NjM5Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOs4YOQ4YOY4YOZ4YOY4YOX4YOu4YOd4YOhIOGDl+GDpeGDleGDlOGDnCDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5bhg5Qg4YOo4YOU4YOc4YOQ4YOu4YOj4YOa4YOYIOGDmeGDneGDnOGDouGDkOGDpeGDouGDlOGDkeGDmOGDoSDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5gsIOGDm+GDkOGDlyDhg6jhg53hg6Dhg5jhg6Eg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOQIOGDmeGDneGDnOGDmeGDoOGDlOGDouGDo+GDmiDhg5Dhg5Phg5Dhg5vhg5jhg5Dhg5zhg5Thg5Hhg5fhg5Dhg5wg4YOX4YOl4YOV4YOU4YOc4YOYIOGDk+GDkOGDoOGDlOGDmeGDleGDmOGDoSwg4YOU4YOa4YOk4YOd4YOh4YOi4YOY4YOhIOGDkuGDkOGDkuGDluGDkOGDleGDnOGDmOGDoSDhg5Dhg5wg4YOZ4YOd4YOb4YOj4YOc4YOY4YOZ4YOQ4YOq4YOY4YOY4YOhIOGDoeGDmOGDruGDqOGDmOGDoOGDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5EuIOGDlOGDoSDhg5zhg5Thg5Hhg5Dhg6Dhg5fhg5Xhg5Ag4YOj4YOk4YOa4YOU4YOR4YOQ4YOhIOGDkOGDq+GDmuGDlOGDleGDoSDhg5Dhg57hg5Thg5Hhg6EsIOGDqOGDlOGDmOGDnOGDkOGDruGDneGDnCDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOZ4YOd4YOc4YOi4YOQ4YOl4YOi4YOU4YOR4YOY4YOhIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmCDhg5Phg5Ag4YOb4YOQ4YOV4YOc4YOUIOGDkOGDnuGDlOGDkeGDm+GDkCDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOS4YOQ4YOQ4YOW4YOY4YOQ4YOg4YOd4YOcIOGDoeGDkOGDmeGDneGDnOGDouGDkOGDpeGDouGDnSDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5gg4YOX4YOl4YOV4YOU4YOc4YOS4YOQ4YOcIOGDk+GDkOGDm+GDneGDo+GDmeGDmOGDk+GDlOGDkeGDmuGDkOGDky7CoCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDb250YWN0cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0NDA2NTQxNTI0NTczMDA2NjIiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg6zhg5Dhg5jhg5nhg5jhg5fhg67hg53hg6Eg4YOX4YOl4YOV4YOU4YOcIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDluGDlCDhg6jhg5Thg5zhg5Dhg67hg6Phg5rhg5gg4YOZ4YOd4YOc4YOi4YOQ4YOl4YOi4YOU4YOR4YOY4YOhIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmCwg4YOb4YOQ4YOXIOGDqOGDneGDoOGDmOGDoSDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5Ag4YOZ4YOd4YOc4YOZ4YOg4YOU4YOi4YOj4YOaIOGDkOGDk+GDkOGDm+GDmOGDkOGDnOGDlOGDkeGDl+GDkOGDnCDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOT4YOQ4YOg4YOU4YOZ4YOV4YOY4YOhLCDhg5Thg5rhg6Thg53hg6Hhg6Lhg5jhg6Eg4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOY4YOhIOGDkOGDnCDhg5nhg53hg5vhg6Phg5zhg5jhg5nhg5Dhg6rhg5jhg5jhg6Eg4YOh4YOY4YOu4YOo4YOY4YOg4YOY4YOhIOGDqOGDlOGDoeGDkOGDruGDlOGDkS4g4YOU4YOhIOGDnOGDlOGDkeGDkOGDoOGDl+GDleGDkCDhg6Phg6Thg5rhg5Thg5Hhg5Dhg6Eg4YOQ4YOr4YOa4YOU4YOV4YOhIOGDkOGDnuGDlOGDkeGDoSwg4YOo4YOU4YOY4YOc4YOQ4YOu4YOd4YOcIOGDl+GDpeGDleGDlOGDnOGDmCDhg5nhg53hg5zhg6Lhg5Dhg6Xhg6Lhg5Thg5Hhg5jhg6Eg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOYIOGDk+GDkCDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOU4YOR4YOb4YOQIOGDqOGDlOGDmOGDq+GDmuGDlOGDkeGDkCDhg5Lhg5Dhg5Dhg5bhg5jhg5Dhg6Dhg53hg5wg4YOh4YOQ4YOZ4YOd4YOc4YOi4YOQ4YOl4YOi4YOdIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmCDhg5fhg6Xhg5Xhg5Thg5zhg5Lhg5Dhg5wg4YOT4YOQ4YOb4YOd4YOj4YOZ4YOY4YOT4YOU4YOR4YOa4YOQ4YOTLsKgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUNvbnRhY3RzIiBtc2dpZD0iNTEwNzQ5MjA4NjQxNjc5MzU0NCI+IuGDl+GDpeGDleGDlOGDnOGDmCDhg5nhg53hg5zhg6Lhg5Dhg6Xhg6Lhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDb250YWN0cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODk3MjQzOTMyNTIxOTUzNjAyIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOo4YOU4YOq4YOV4YOQ4YOa4YOd4YOhIOGDl+GDpeGDleGDlOGDnCDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5bhg5Qg4YOo4YOU4YOc4YOQ4YOu4YOj4YOa4YOYIOGDmeGDneGDnOGDouGDkOGDpeGDouGDlOGDkeGDmOGDoSDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5gsIOGDm+GDkOGDlyDhg6jhg53hg6Dhg5jhg6Eg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOQIOGDmeGDneGDnOGDmeGDoOGDlOGDouGDo+GDmiDhg5jhg5zhg5Phg5jhg5Xhg5jhg5Phg6Phg5Dhg5rhg5Thg5Hhg5fhg5Dhg5wg4YOX4YOl4YOV4YOU4YOc4YOYIOGDk+GDkOGDoOGDlOGDmeGDleGDmOGDoSwg4YOU4YOa4YOk4YOd4YOh4YOi4YOY4YOhIOGDkuGDkOGDkuGDluGDkOGDleGDnOGDmOGDoSDhg5Dhg5wg4YOZ4YOd4YOb4YOj4YOc4YOY4YOZ4YOQ4YOq4YOY4YOY4YOhIOGDoeGDmOGDruGDqOGDmOGDoOGDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5EuIOGDlOGDoSDhg5zhg5Thg5Hhg5Dhg6Dhg5fhg5Xhg5Ag4YOj4YOk4YOa4YOU4YOR4YOQ4YOhIOGDkOGDq+GDmuGDlOGDleGDoSDhg5Dhg57hg5Thg5Hhg6EsIOGDrOGDkOGDqOGDkOGDmuGDneGDoSDhg6Hhg5Dhg5nhg53hg5zhg6Lhg5Dhg6Xhg6Lhg50g4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOYLsKgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDb250YWN0cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU4OTg2OTIyNDYyNTE2MzU1OCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDqOGDlOGDquGDleGDkOGDmuGDneGDoSDhg5fhg6Xhg5Xhg5Thg5wg4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOW4YOUIOGDqOGDlOGDnOGDkOGDruGDo+GDmuGDmCDhg5nhg53hg5zhg6Lhg5Dhg6Xhg6Lhg5Thg5Hhg5jhg6Eg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOYLCDhg5vhg5Dhg5cg4YOo4YOd4YOg4YOY4YOhIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDkCDhg5nhg53hg5zhg5nhg6Dhg5Thg6Lhg6Phg5og4YOY4YOc4YOT4YOY4YOV4YOY4YOT4YOj4YOQ4YOa4YOU4YOR4YOX4YOQ4YOcIOGDl+GDpeGDleGDlOGDnOGDmCDhg5Phg5Dhg6Dhg5Thg5nhg5Xhg5jhg6EsIOGDlOGDmuGDpOGDneGDoeGDouGDmOGDoSDhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5jhg6Eg4YOQ4YOcIOGDmeGDneGDm+GDo+GDnOGDmOGDmeGDkOGDquGDmOGDmOGDoSDhg6Hhg5jhg67hg6jhg5jhg6Dhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOu4YOU4YORLiDhg5Thg6Eg4YOc4YOU4YOR4YOQ4YOg4YOX4YOV4YOQIOGDo+GDpOGDmuGDlOGDkeGDkOGDoSDhg5Dhg6vhg5rhg5Thg5Xhg6Eg4YOQ4YOe4YOU4YOR4YOhLCDhg6zhg5Dhg6jhg5Dhg5rhg53hg6Eg4YOh4YOQ4YOZ4YOd4YOc4YOi4YOQ4YOl4YOi4YOdIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmC7CoCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENhbGxMb2ciIG1zZ2lkPSIzNDc4MTMzMTg0NjI0MTAyNzM5Ij4i4YOW4YOQ4YOg4YOU4YOR4YOY4YOhIOGDn+GDo+GDoOGDnOGDkOGDmuGDmOGDoSDhg6zhg5Dhg5nhg5jhg5fhg67hg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsbExvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzcwMDY0NTE4NDg3MDc2MDI4NSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOX4YOl4YOV4YOU4YOc4YOYIOGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg5Lhg5Dhg5vhg5Dhg5Xhg5Dhg5rhg5gg4YOT4YOQIOGDqOGDlOGDm+GDneGDm+GDkOGDleGDkOGDmuGDmCDhg5bhg5Dhg6Dhg5Thg5Hhg5jhg6Eg4YOf4YOj4YOg4YOc4YOQ4YOa4YOY4YOhIOGDnOGDkOGDruGDleGDkCwg4YOQ4YOh4YOU4YOV4YOUIOGDlOGDpeGDnOGDlOGDkeGDkCDhg5Dhg5sg4YOf4YOj4YOg4YOc4YOQ4YOa4YOY4YOhIOGDqOGDlOGDnOGDkOGDruGDleGDmOGDoSDhg6Phg6Thg5rhg5Thg5Hhg5AuIOGDlOGDoSDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOU4YOR4YOhIOGDoeGDkOGDqOGDo+GDkOGDmuGDlOGDkeGDkOGDoSDhg5vhg5jhg6Hhg6rhg5Thg5vhg6Eg4YOc4YOU4YOR4YOQ4YOg4YOX4YOV4YOY4YOhIOGDkuGDkOGDoOGDlOGDqOGDlCDhg5Lhg5Dhg5Dhg5bhg5jhg5Dhg6Dhg53hg5wg4YOX4YOl4YOV4YOU4YOc4YOYIOGDluGDkOGDoOGDlOGDkeGDmOGDoSDhg5/hg6Phg6Dhg5zhg5Dhg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGxMb2ciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzc3NzI1Nzk2ODEzMjE3MjQ0Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOY4YOhIOGDkuGDkOGDm+GDkOGDleGDkOGDmuGDmCDhg5Phg5Ag4YOo4YOU4YOb4YOd4YOb4YOQ4YOV4YOQ4YOa4YOYIOGDluGDkOGDoOGDlOGDkeGDmOGDoSDhg5/hg6Phg6Dhg5zhg5Dhg5rhg5jhg6Eg4YOc4YOQ4YOu4YOV4YOQLCDhg5Dhg6Hhg5Thg5Xhg5Qg4YOU4YOl4YOc4YOU4YOR4YOQIOGDkOGDmyDhg5/hg6Phg6Dhg5zhg5Dhg5rhg5jhg6Eg4YOo4YOU4YOc4YOQ4YOu4YOV4YOY4YOhIOGDo+GDpOGDmuGDlOGDkeGDkC4g4YOU4YOhIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Thg5Hhg6Eg4YOh4YOQ4YOo4YOj4YOQ4YOa4YOU4YOR4YOQ4YOhIOGDm+GDmOGDoeGDquGDlOGDm+GDoSDhg5zhg5Thg5Hhg5Dhg6Dhg5fhg5Xhg5jhg6Eg4YOS4YOQ4YOg4YOU4YOo4YOUIOGDkuGDkOGDkOGDluGDmOGDkOGDoOGDneGDnCDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOW4YOQ4YOg4YOU4YOR4YOY4YOhIOGDn+GDo+GDoOGDnOGDkOGDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ2FsbExvZyIgbXNnaWQ9Ijg1NTIwNDU2NjQ3NDM0OTkzNTQiPiLhg5bhg5Dhg6Dhg5Thg5Hhg5jhg6Eg4YOf4YOj4YOg4YOc4YOQ4YOa4YOo4YOYIOGDqeGDkOGDrOGDlOGDoOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsbExvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY2MTgwNjA2MjI3NDExOTI0NSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDqOGDlOGDquGDleGDkOGDmuGDneGDoSDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOi4YOQ4YOR4YOa4YOU4YOi4YOY4YOhIOGDluGDkOGDoOGDlOGDkeGDmOGDoSDhg5/hg6Phg6Dhg5zhg5Dhg5rhg5gsIOGDm+GDkOGDlyDhg6jhg53hg6Dhg5jhg6Eg4YOo4YOU4YOb4YOd4YOb4YOQ4YOV4YOQ4YOa4YOYIOGDk+GDkCDhg5Lhg5Dhg5vhg5Dhg5Xhg5Dhg5rhg5gg4YOW4YOQ4YOg4YOU4YOR4YOY4YOhIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmC4g4YOb4YOQ4YOV4YOc4YOUIOGDkOGDnuGDlOGDkeGDm+GDkCDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOd4YOcIOGDlOGDoSDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOW4YOQ4YOg4YOU4YOR4YOY4YOhIOGDn+GDo+GDoOGDnOGDkOGDmuGDmOGDoSDhg6zhg5Dhg6Hhg5Dhg6jhg5rhg5Thg5rhg5Dhg5Mg4YOQ4YOcIOGDqOGDlOGDoeGDkOGDquGDleGDmuGDlOGDmuGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGxMb2ciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODM5NDE3MzYzNTI3ODc4NDIiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg6jhg5Thg6rhg5Xhg5Dhg5rhg53hg6Eg4YOX4YOl4YOV4YOU4YOc4YOYIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5bhg5Dhg6Dhg5Thg5Hhg5jhg6Eg4YOf4YOj4YOg4YOc4YOQ4YOa4YOYLCDhg5vhg5Dhg5cg4YOo4YOd4YOg4YOY4YOhIOGDqOGDlOGDm+GDneGDm+GDkOGDleGDkOGDmuGDmCDhg5Phg5Ag4YOS4YOQ4YOb4YOQ4YOV4YOQ4YOa4YOYIOGDluGDkOGDoOGDlOGDkeGDmOGDoSDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5guIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5Thg5Hhg5vhg5Ag4YOo4YOU4YOY4YOr4YOa4YOU4YOR4YOQIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDneGDnCDhg5Thg6Eg4YOX4YOl4YOV4YOU4YOc4YOYIOGDluGDkOGDoOGDlOGDkeGDmOGDoSDhg5/hg6Phg6Dhg5zhg5Dhg5rhg5jhg6Eg4YOs4YOQ4YOh4YOQ4YOo4YOa4YOU4YOa4YOQ4YOTIOGDkOGDnCDhg6jhg5Thg6Hhg5Dhg6rhg5Xhg5rhg5Thg5rhg5Dhg5MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkUHJvZmlsZSIgbXNnaWQ9IjQ3MDE4ODk4NTI2MTI3MTY2NzgiPiLhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOh4YOQ4YOZ4YOd4YOc4YOi4YOQ4YOl4YOi4YOdIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDmOGDoSDhg5zhg5Dhg67hg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkUHJvZmlsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU0NjI0NzUxNTE4NDk4ODg4NDgiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDkOGDluGDlCDhg6jhg5Thg5zhg5Dhg67hg6Phg5rhg5gg4YOe4YOY4YOg4YOQ4YOT4YOYIOGDnuGDoOGDneGDpOGDmOGDmuGDmOGDoSDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5jhg6Eg4YOs4YOQ4YOZ4YOY4YOX4YOu4YOV4YOQLCDhg5vhg5Dhg5Lhg5Dhg5rhg5jhg5fhg5Dhg5MsIOGDl+GDpeGDleGDlOGDnOGDmCDhg6Hhg5Dhg67hg5Thg5rhg5jhg6Hhg5Ag4YOT4YOQIOGDoeGDkOGDmeGDneGDnOGDouGDkOGDpeGDouGDnSDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5jhg6EuIOGDlOGDoSDhg5zhg5jhg6jhg5zhg5Dhg5Xhg6EsIOGDoOGDneGDmyDhg5Dhg57hg6Eg4YOo4YOU4YOj4YOr4YOa4YOY4YOQIOGDl+GDpeGDleGDlOGDnOGDmCDhg5jhg5Phg5Thg5zhg6Lhg5jhg6Thg5jhg6rhg5jhg6Dhg5Thg5Hhg5Ag4YOT4YOQIOGDl+GDpeGDleGDlOGDnOGDmCDhg57hg5jhg6Dhg5Dhg5Phg5gg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOY4YOhIOGDoeGDruGDleGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSDhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVByb2ZpbGUiIG1zZ2lkPSI5MDc3OTM2Mjg3NzczOTc2NDMiPiLhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOh4YOQ4YOZ4YOd4YOc4YOi4YOQ4YOl4YOi4YOdIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVByb2ZpbGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NTUyMDg0Mjk0NTk4NDY1ODk5Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Dhg5bhg5Qg4YOo4YOU4YOc4YOQ4YOu4YOj4YOa4YOYIOGDnuGDmOGDoOGDkOGDk+GDmCDhg57hg6Dhg53hg6Thg5jhg5rhg5jhg6Eg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkCDhg5Dhg5wg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOQLCDhg5vhg5Dhg5Lhg5Dhg5rhg5jhg5fhg5Dhg5MsIOGDl+GDpeGDleGDlOGDnOGDmCDhg6Hhg5Dhg67hg5Thg5rhg5jhg6Hhg5Ag4YOT4YOQIOGDoeGDkOGDmeGDneGDnOGDouGDkOGDpeGDouGDnSDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5jhg6EuIOGDlOGDoSDhg5zhg5jhg6jhg5zhg5Dhg5Xhg6EsIOGDoOGDneGDmyDhg5Dhg57hg6Eg4YOo4YOU4YOj4YOr4YOa4YOY4YOQIOGDl+GDpeGDleGDlOGDnOGDmCDhg5jhg5Phg5Thg5zhg6Lhg5jhg6Thg5jhg6rhg5jhg6Dhg5Thg5Hhg5Ag4YOT4YOQIOGDl+GDpeGDleGDlOGDnOGDmCDhg57hg5jhg6Dhg5Dhg5Phg5gg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOY4YOhIOGDoeGDruGDleGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSDhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTI2ODkyMDk1NjE1MjQxOTE3MCI+IuGDoeGDneGDquGDmOGDkOGDmuGDo+GDoOGDmCDhg5zhg5Dhg5nhg5Dhg5Phg5jhg6Eg4YOs4YOQ4YOZ4YOY4YOX4YOu4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQyNTU3MDYwMjcxNzIwNTA4NzIiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDl+GDpeGDleGDlOGDnOGDmCDhg5Phg5Ag4YOX4YOl4YOV4YOU4YOc4YOYIOGDm+GDlOGDkuGDneGDkeGDoOGDlOGDkeGDmOGDoSDhg6Hhg53hg6rhg5jhg5Dhg5rhg6Phg6Dhg5gg4YOS4YOQ4YOc4YOQ4YOu4YOa4YOU4YOR4YOU4YOR4YOX4YOQ4YOcIOGDrOGDleGDk+GDneGDm+GDkCDhg5Phg5Ag4YOh4YOY4YOc4YOl4YOg4YOd4YOc4YOY4YOW4YOQ4YOq4YOY4YOQLiDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5jhg6Eg4YOS4YOQ4YOW4YOY4YOQ4YOg4YOU4YOR4YOY4YOh4YOQ4YOhIOGDmOGDp+GDkOGDleGDmOGDlyDhg6Thg6Dhg5fhg67hg5jhg5Dhg5MgLSDhg5Dhg57hg6Eg4YOU4YOl4YOc4YOU4YOR4YOQIOGDqOGDlOGDoeGDkOGDq+GDmuGDlOGDkeGDmuGDneGDkeGDkCwg4YOg4YOd4YObIOGDrOGDkOGDmOGDmeGDmOGDl+GDruGDneGDoSDhg6Hhg53hg6rhg5jhg5Dhg5rhg6Phg6Ag4YOl4YOh4YOU4YOa4YOU4YOR4YOo4YOYIOGDmeGDneGDm+GDo+GDnOGDmOGDmeGDkOGDquGDmOGDkCDhg5fhg6Xhg5Xhg5Thg5zhg6Hhg5Ag4YOT4YOQIOGDl+GDpeGDleGDlOGDnOGDoSDhg5vhg5Thg5Lhg53hg5Hhg6Dhg5Thg5Hhg6Eg4YOo4YOd4YOg4YOY4YOhIOGDmeGDneGDnOGDpOGDmOGDk+GDlOGDnOGDquGDmOGDkOGDmuGDo+GDoOGDneGDkeGDmOGDoSDhg5vhg5jhg6Phg67hg5Thg5Phg5Dhg5Xhg5Dhg5MuIOGDqOGDlOGDnOGDmOGDqOGDleGDnOGDkDog4YOU4YOhIOGDo+GDpOGDmuGDlOGDkeGDkCDhg6jhg5Thg6Hhg5Dhg6vhg5rhg53hg5Ag4YOV4YOU4YOgIOGDmOGDp+GDneGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg6Phg5rhg5gg4YOn4YOV4YOU4YOa4YOQIOGDoeGDneGDquGDmOGDkOGDmuGDo+GDoCDhg6Xhg6Hhg5Thg5rhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM1MDQxNzkyMjI0OTMyMzU2NDUiPiLhg5fhg6Xhg5Xhg5Thg5zhg6Eg4YOh4YOd4YOq4YOY4YOQ4YOa4YOj4YOgIOGDm+GDkOGDo+GDrOGDp+GDlOGDkeGDmuGDneGDkeGDkOGDluGDlCDhg5Phg5Dhg6zhg5Thg6Dhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMwODY1NTc1NTIyMDQxMTQ4NDkiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg5Lhg5jhg6nhg5Xhg5Thg5zhg53hg5cg4YOX4YOl4YOV4YOU4YOc4YOYIOGDm+GDlOGDkuGDneGDkeGDoOGDlOGDkeGDmOGDoSDhg6Hhg53hg6rhg5jhg5Dhg5rhg6Phg6Dhg5gg4YOh4YOY4YOQ4YOu4YOa4YOU4YOU4YOR4YOYLiDhg6Thg6Dhg5fhg67hg5jhg5rhg5Dhg5Mg4YOY4YOn4YOQ4YOV4YOY4YOXIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDmOGDoSDhg5Lhg5Dhg5bhg5jhg5Dhg6Dhg5Thg5Hhg5jhg6Hhg5Dhg6EgLSDhg5Dhg57hg6Eg4YOo4YOU4YOj4YOr4YOa4YOY4YOQIOGDqOGDlOGDpeGDm+GDnOGDkOGDoSDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5AsIOGDoOGDneGDm+GDlOGDmuGDmOGDqiDhg5fhg5jhg5fhg6Xhg53hg6Hhg5Phg5Ag4YOb4YOU4YOS4YOd4YOR4YOg4YOY4YOh4YOS4YOQ4YOcIOGDkOGDoOGDmOGDoSDhg5vhg53hg6zhg5Thg6Dhg5jhg5rhg5guIOGDqOGDlOGDnOGDmOGDqOGDleGDnOGDkDog4YOU4YOhIOGDnOGDlOGDkeGDkOGDoOGDl+GDleGDkCDhg5Dhg6Ag4YOo4YOU4YOY4YOr4YOa4YOU4YOR4YOQIOGDqOGDlOGDoeGDoOGDo+GDmuGDk+GDlOGDoSDhg6fhg5Xhg5Thg5rhg5Ag4YOh4YOd4YOq4YOY4YOQ4YOa4YOj4YOgIOGDpeGDoeGDlOGDmuGDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDYWxlbmRhciIgbXNnaWQ9IjU5NzI3Mjc1NjAyNTc2MTIzOTgiPiLhg5nhg5Dhg5rhg5Thg5zhg5Phg6Dhg5jhg6Eg4YOm4YOd4YOc4YOY4YOh4YOr4YOY4YOU4YOR4YOU4YOR4YOY4YOh4YOQIOGDk+GDkCDhg5nhg53hg5zhg6Thg5jhg5Phg5Thg5zhg6rhg5jhg5Dhg5rhg6Phg6Dhg5gg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOY4YOhIOGDrOGDkOGDmeGDmOGDl+GDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDYWxlbmRhciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDIxNjQ2MjA0OTA1NzY1ODcyMyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDrOGDkOGDmOGDmeGDmOGDl+GDruGDneGDoSDhg5fhg6Xhg5Xhg5Thg5wg4YOi4YOQ4YOR4YOa4YOU4YOi4YOW4YOUIOGDqOGDlOGDnOGDkOGDruGDo+GDmuGDmCDhg5nhg5Dhg5rhg5Thg5zhg5Phg6Dhg5jhg6Eg4YOn4YOV4YOU4YOa4YOQIOGDm+GDneGDleGDmuGDlOGDnOGDkCwg4YOb4YOQ4YOXIOGDqOGDneGDoOGDmOGDoSDhg5vhg5Thg5Lhg53hg5Hhg6Dhg5Thg5Hhg5jhg6Hhg5Ag4YOT4YOQIOGDl+GDkOGDnOGDkOGDm+GDqOGDoOGDneGDm+GDmuGDlOGDkeGDmOGDoSDhg5vhg53hg5Xhg5rhg5Thg5zhg5Thg5Hhg5jhg6ouIOGDkOGDm+GDkOGDnCDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOj4YOk4YOa4YOU4YOR4YOQIOGDm+GDmOGDoeGDquGDlOGDoSDhg5Dhg57hg6EsIOGDkuGDkOGDkOGDluGDmOGDkOGDoOGDneGDoSDhg5Dhg5wg4YOo4YOU4YOY4YOc4YOQ4YOu4YOd4YOhIOGDl+GDpeGDleGDlOGDnOGDmCDhg5nhg5Dhg5rhg5Thg5zhg5Phg6Dhg5jhg6Eg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOYLCDhg5vhg5jhg6Phg67hg5Thg5Phg5Dhg5Xhg5Dhg5Mg4YOZ4YOd4YOc4YOk4YOY4YOT4YOU4YOc4YOq4YOY4YOQ4YOa4YOj4YOg4YOd4YOR4YOY4YOh4YOQIOGDl+GDoyDhg5vhg5Lhg6Dhg6vhg53hg5Hhg5jhg5Dhg6Dhg53hg5Hhg5jhg6Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGVuZGFyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzQzNDU0ODY4MjQ3MDg1MTU4MyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDrOGDkOGDmOGDmeGDmOGDl+GDruGDneGDoSDhg5fhg6Xhg5Xhg5Thg5zhg6Eg4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOW4YOUIOGDqOGDlOGDnOGDkOGDruGDo+GDmuGDmCDhg5nhg5Dhg5rhg5Thg5zhg5Phg6Dhg5jhg6Eg4YOn4YOV4YOU4YOa4YOQIOGDm+GDneGDleGDmuGDlOGDnOGDkCwg4YOb4YOQ4YOXIOGDqOGDneGDoOGDmOGDoSDhg5vhg5Thg5Lhg53hg5Hhg6Dhg5Thg5Hhg5jhg6Hhg5Ag4YOT4YOQIOGDl+GDkOGDnOGDkOGDm+GDqOGDoOGDneGDm+GDmuGDlOGDkeGDmOGDoSDhg5vhg53hg5Xhg5rhg5Thg5zhg5Thg5Hhg5jhg6ouIOGDkOGDm+GDkOGDnCDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOj4YOk4YOa4YOU4YOR4YOQIOGDm+GDmOGDoeGDquGDlOGDoSDhg5Dhg57hg6EsIOGDkuGDkOGDkOGDluGDmOGDkOGDoOGDneGDoSDhg5Dhg5wg4YOo4YOU4YOY4YOc4YOQ4YOu4YOd4YOhIOGDl+GDpeGDleGDlOGDnOGDmCDhg5nhg5Dhg5rhg5Thg5zhg5Phg6Dhg5jhg6Eg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOYLCDhg5vhg5jhg6Phg67hg5Thg5Phg5Dhg5Xhg5Dhg5Mg4YOZ4YOd4YOc4YOk4YOY4YOT4YOU4YOc4YOq4YOY4YOQ4YOa4YOj4YOg4YOd4YOR4YOY4YOh4YOQIOGDl+GDoyDhg5vhg5Lhg6Dhg6vhg53hg5Hhg5jhg5Dhg6Dhg53hg5Hhg5jhg6Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUNhbGVuZGFyIiBtc2dpZD0iODQzODg3NDc1NTE5MzgyNTY0NyI+IuGDmeGDkOGDmuGDlOGDnOGDk+GDoOGDmOGDoSDhg6bhg53hg5zhg5jhg6Hhg6vhg5jhg5Thg5Hhg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOQIOGDk+GDkCDhg6jhg5Thg6rhg5Xhg5rhg5Ag4YOT4YOQIOGDm+GDpOGDmuGDneGDkeGDlOGDmuGDmOGDoSDhg5Lhg5Dhg6Dhg5Thg6jhg5Qg4YOU4YOa4YOk4YOd4YOh4YOi4YOY4YOhIOGDkuGDkOGDkuGDluGDkOGDleGDnOGDkCDhg6Hhg6Lhg6Phg5vhg6Dhg5Thg5Hhg5fhg5Dhg5wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY3OTAzNTUyMDExMzY2ODUyOCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOY4YObIOGDpuGDneGDnOGDmOGDoeGDq+GDmOGDlOGDkeGDlOGDkeGDmOGDoSDhg5Phg5Dhg5vhg5Dhg6Lhg5Thg5Hhg5AsIOGDrOGDkOGDqOGDmuGDkCDhg5Phg5Ag4YOo4YOU4YOq4YOV4YOa4YOQLCDhg6Dhg53hg5vhg5rhg5Thg5Hhg6Hhg5Dhg6og4YOX4YOl4YOV4YOU4YOc4YOhIOGDouGDkOGDkeGDmuGDlOGDouGDluGDlCDhg6Xhg5vhg5zhg5jhg5csIOGDkOGDoeGDlOGDleGDlCDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOb4YOU4YOS4YOd4YOR4YOg4YOU4YOR4YOY4YOhIOGDk+GDkCDhg5fhg5Dhg5zhg5Dhg5vhg6jhg6Dhg53hg5vhg5rhg5Thg5Hhg5jhg6Eg4YOm4YOd4YOc4YOY4YOh4YOr4YOY4YOU4YOR4YOU4YOR4YOY4YOqLiDhg5Dhg5vhg5Lhg5Xhg5Dhg6Dhg5Dhg5MsIOGDkOGDnuGDoSDhg5Thg6Xhg5zhg5Thg5Hhg5Ag4YOo4YOU4YOh4YOQ4YOr4YOa4YOU4YOR4YOa4YOd4YOR4YOQIOGDmOGDoeGDlCDhg5Phg5Dhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg53hg6Eg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOYIOGDmeGDkOGDmuGDlOGDnOGDk+GDoOGDmOGDoSDhg5vhg6Thg5rhg53hg5Hhg5Thg5rhg5jhg6Eg4YOh4YOQ4YOu4YOU4YOa4YOY4YOXIOGDkOGDnCDhg6jhg5Thg6rhg5Xhg5Dhg5rhg53hg6Eg4YOm4YOd4YOc4YOY4YOh4YOr4YOY4YOU4YOR4YOU4YOR4YOYLCDhg6Dhg53hg5sg4YOb4YOk4YOa4YOd4YOR4YOU4YOa4YOb4YOQIOGDkOGDm+GDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5Eg4YOQ4YOg4YOQ4YOk4YOU4YOg4YOYIOGDmOGDquGDneGDk+GDlOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGVuZGFyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjMyNDQ2OTQ5NjMyNzI0OTM3NiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOY4YObIOGDpuGDneGDnOGDmOGDoeGDq+GDmOGDlOGDkeGDlOGDkeGDmOGDoSDhg5Phg5Dhg5vhg5Dhg6Lhg5Thg5Hhg5AsIOGDrOGDkOGDqOGDmuGDkCDhg5Phg5Ag4YOo4YOU4YOq4YOV4YOa4YOQLCDhg6Dhg53hg5vhg5rhg5Thg5Hhg6Hhg5Dhg6og4YOX4YOl4YOV4YOU4YOc4YOhIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDluGDlCDhg6Xhg5vhg5zhg5jhg5csIOGDkOGDoeGDlOGDleGDlCDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOb4YOU4YOS4YOd4YOR4YOg4YOU4YOR4YOY4YOhIOGDk+GDkCDhg5fhg5Dhg5zhg5Dhg5vhg6jhg6Dhg53hg5vhg5rhg5Thg5Hhg5jhg6Eg4YOm4YOd4YOc4YOY4YOh4YOr4YOY4YOU4YOR4YOU4YOR4YOY4YOqLiDhg5Dhg5vhg5Lhg5Xhg5Dhg6Dhg5Dhg5MsIOGDkOGDnuGDoSDhg5Thg6Xhg5zhg5Thg5Hhg5Ag4YOo4YOU4YOh4YOQ4YOr4YOa4YOU4YOR4YOa4YOd4YOR4YOQIOGDmOGDoeGDlCDhg5Phg5Dhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg53hg6Eg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOYIOGDmeGDkOGDmuGDlOGDnOGDk+GDoOGDmOGDoSDhg5vhg6Thg5rhg53hg5Hhg5Thg5rhg5jhg6Eg4YOh4YOQ4YOu4YOU4YOa4YOY4YOXIOGDkOGDnCDhg6jhg5Thg6rhg5Xhg5Dhg5rhg53hg6Eg4YOm4YOd4YOc4YOY4YOh4YOr4YOY4YOU4YOR4YOU4YOR4YOYLCDhg6Dhg53hg5sg4YOb4YOk4YOa4YOd4YOR4YOU4YOa4YOb4YOQIOGDkOGDm+GDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5Eg4YOQ4YOg4YOQ4YOk4YOU4YOg4YOYIOGDmOGDquGDneGDk+GDlOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc01vY2tMb2NhdGlvbiIgbXNnaWQ9Ijg2ODgzMzQ5NzQwMzY4MjMzMzAiPiLhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOs4YOn4YOQ4YOg4YOd4YOU4YOR4YOY4YOhIOGDmOGDm+GDmOGDouGDmOGDoOGDlOGDkeGDkCDhg6Lhg5Thg6Hhg6Lhg5jhg6Dhg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NNb2NrTG9jYXRpb24iIG1zZ2lkPSI1ODA4NzExMDM5NDgyMDUxODI0Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg6Lhg5Thg6Hhg6Lhg5jhg6Dhg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOn4YOQ4YOa4YOR4YOYIOGDmuGDneGDmeGDkOGDquGDmOGDlOGDkeGDmOGDoSDhg6jhg5Thg6Xhg5vhg5zhg5AsIOGDkOGDnCDhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOQ4YOu4YOQ4YOa4YOYIOGDnuGDoOGDneGDleGDkOGDmOGDk+GDlOGDoOGDmOGDoSDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg5AuIOGDlOGDoSDhg6Phg6Thg5rhg5Thg5Hhg5Dhg6Eg4YOb4YOY4YOh4YOq4YOU4YOb4YOhIOGDkOGDnuGDoSwg4YOo4YOU4YOq4YOV4YOQ4YOa4YOd4YOhIOGDm+GDk+GDlOGDkeGDkOGDoOGDlOGDneGDkeGDmOGDoSDhg6Hhg67hg5Xhg5Ag4YOs4YOn4YOQ4YOg4YOd4YOU4YOR4YOY4YOhIOGDm+GDmOGDlOGDoCwg4YOb4YOQ4YOSLiBHUFMgIOGDkOGDnCDhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOe4YOg4YOd4YOV4YOQ4YOY4YOT4YOU4YOg4YOU4YOR4YOY4YOhIOGDm+GDmOGDlOGDoCDhg5vhg53hg6zhg53hg5Phg5Thg5Hhg6Phg5rhg5gg4YOb4YOT4YOU4YOR4YOQ4YOg4YOU4YOd4YOR4YOQIOGDk+GDkC8g4YOQ4YOcIOGDoeGDouGDkOGDouGDo+GDoeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0xvY2F0aW9uRXh0cmFDb21tYW5kcyIgbXNnaWQ9IjI4MzYzMDgwNzY3MjA1NTM4MzciPiLhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOe4YOg4YOd4YOV4YOQ4YOY4YOT4YOU4YOg4YOY4YOhIOGDk+GDkOGDm+GDkOGDouGDlOGDkeGDmOGDlyDhg5Hhg6Dhg6vhg5Dhg5zhg5Thg5Hhg5Thg5Hhg5bhg5Qg4YOs4YOV4YOT4YOd4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iNTk0NTE2NjY0MjMzNTgwMDc2MyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOs4YOV4YOT4YOd4YOb4YOQIOGDsOGDpeGDneGDnOGDk+GDlOGDoSDhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOh4YOU4YOg4YOV4YOY4YOh4YOY4YOhIOGDk+GDkOGDm+GDkOGDouGDlOGDkeGDmOGDlyDhg5Hhg6Dhg6vhg5Dhg5zhg5Thg5Hhg5Thg5Hhg5bhg5QuIOGDqOGDlOGDoeGDkOGDq+GDmuGDneGDkCDhg5Dhg57hg5vhg5Ag4YOU4YOhIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDneGDoSBHUFMt4YOY4YOh4YOQIOGDk+GDkCDhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOh4YOu4YOV4YOQIOGDrOGDp+GDkOGDoOGDneGDlOGDkeGDmOGDoSDhg5vhg6Phg6jhg5Dhg53hg5Hhg5jhg6Eg4YOe4YOg4YOd4YOq4YOU4YOh4YOo4YOYIOGDqeGDkOGDoOGDlOGDleGDmOGDoeGDl+GDleGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iNjU3ODEwMTE5OTgyNTE5Mzg3MyI+IuGDm+GDk+GDlOGDkeGDkOGDoOGDlOGDneGDkeGDmOGDoSDhg57hg6Dhg53hg5Xhg5Dhg5jhg5Phg5Thg6Dhg5jhg6Eg4YOY4YOc4YOh4YOi4YOQ4YOa4YOQ4YOq4YOY4YOY4YOhIOGDo+GDpOGDmuGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iOTA2NjE0NjEyMDQ3MDU5MTUwOSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOi4YOU4YOh4YOi4YOY4YOg4YOU4YOR4YOY4YOh4YOX4YOV4YOY4YOhIOGDp+GDkOGDmuGDkeGDmCDhg5rhg53hg5nhg5Dhg6rhg5jhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOl4YOb4YOc4YOQLCDhg5Dhg5wg4YOb4YOT4YOU4YOR4YOQ4YOg4YOU4YOd4YOR4YOY4YOhIOGDkOGDruGDkOGDmuGDmCDhg57hg6Dhg53hg5Xhg5Dhg5jhg5Phg5Thg6Dhg5jhg6Eg4YOT4YOQ4YOn4YOU4YOc4YOU4YOR4YOQLiDhg5Dhg57hg6Eg4YOh4YOQ4YOo4YOj4YOQ4YOa4YOU4YOR4YOQIOGDm+GDmOGDlOGDquGDlOGDm+GDkCDhg5Lhg5Dhg5Phg5Dhg5Dhg5nhg5Thg5fhg53hg6Eg4YOh4YOu4YOV4YOQIOGDrOGDp+GDkOGDoOGDneGDlOGDkeGDmOGDoSDhg5vhg5Dhg5IuOiBHUFMg4YOQ4YOcIOGDm+GDk+GDlOGDkeGDkOGDoOGDlOGDneGDkeGDmOGDoSDhg57hg6Dhg53hg5Xhg5Dhg5jhg5Phg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOb4YOd4YOs4YOd4YOT4YOU4YOR4YOj4YOa4YOYIOGDm+GDk+GDlOGDkeGDkOGDoOGDlOGDneGDkeGDkCDhg5Dhg5wv4YOT4YOQIOGDoeGDouGDkOGDouGDo+GDoeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0ZpbmVMb2NhdGlvbiIgbXNnaWQ9IjExOTE4OTgwNjE5NjUyNzMzNzIiPiLhg5bhg6Phg6Hhg6Lhg5gg4YOb4YOT4YOU4YOR4YOQ4YOg4YOU4YOd4YOR4YOQIChHUFMg4YOT4YOQIOGDpeGDoeGDlOGDmuGDmOGDoSDhg5nhg53hg53hg6Dhg5Phg5jhg5zhg5Dhg6Lhg5Thg5Hhg5jhg6Eg4YOb4YOY4YOu4YOU4YOT4YOV4YOY4YOXKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0ZpbmVMb2NhdGlvbiIgbXNnaWQ9IjUyOTUwNDc1NjM1NjQ5ODEyNTAiPiLhg5Dhg6vhg5rhg5Thg5Xhg6Eg4YOQ4YOe4YOhIOGDo+GDpOGDmuGDlOGDkeGDkOGDoSDhg5vhg53hg5jhg57hg53hg5Xhg53hg6Eg4YOW4YOj4YOh4YOi4YOYIOGDm+GDk+GDlOGDkeGDkOGDoOGDlOGDneGDkeGDkCDhg5Lhg5rhg53hg5Hhg5Dhg5rhg6Phg6Dhg5gg4YOe4YOd4YOW4YOY4YOq4YOY4YOd4YOc4YOY4YOg4YOU4YOR4YOY4YOhIOGDoeGDmOGDoeGDouGDlOGDm+GDmOGDoSAoR1BTKSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg5cg4YOQ4YOcIOGDpeGDoeGDlOGDmuGDmOGDoSDhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOs4YOn4YOQ4YOg4YOd4YOhIOGDm+GDmOGDruGDlOGDk+GDleGDmOGDlywg4YOg4YOd4YOS4YOd4YOg4YOY4YOq4YOQ4YOQIOGDpeGDoeGDlOGDmuGDmOGDoSDhg5Dhg5zhg6vhg5Thg5Hhg5gg4YOT4YOQIFdpLUZpLiDhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOU4YOhIOGDoeGDlOGDoOGDleGDmOGDoeGDlOGDkeGDmCDhg6nhg5Dhg6Dhg5fhg6Phg5rhg5gg4YOj4YOc4YOT4YOQIOGDmOGDp+GDneGDoSDhg5Phg5Ag4YOX4YOl4YOV4YOU4YOc4YOhIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDkOGDluGDlCDhg5Dhg57hg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOb4YOY4YOh4YOQ4YOs4YOV4YOT4YOd4YOb4YOYLCDhg6Dhg5Dhg5fhg5Ag4YOo4YOU4YOr4YOa4YOd4YOhIOGDm+GDkOGDl+GDmCDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5AuIOGDkOGDnuGDlOGDkeGDqOGDmCDhg6jhg5Thg6Hhg5Dhg6vhg5rhg5Thg5Hhg5Thg5rhg5jhg5Ag4YOb4YOQ4YOX4YOYIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDkCDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOb4YOT4YOU4YOR4YOQ4YOg4YOU4YOd4YOR4YOY4YOhIOGDkuGDkOGDnOGDoeGDkOGDoeGDkOGDluGDpuGDleGDoOGDkOGDkyDhg5Phg5Ag4YOQ4YOb4YOQ4YOcIOGDlOGDmuGDlOGDm+GDlOGDnOGDouGDmOGDoSDhg5Phg5Dhg5vhg5Dhg6Lhg5Thg5Hhg5jhg5fhg5gg4YOu4YOQ4YOg4YOv4YOV4YOQIOGDqOGDlOGDmOGDq+GDmuGDlOGDkeGDkCDhg5Lhg5Dhg5vhg53hg5jhg6zhg5Xhg5jhg53hg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjQ4ODc4OTUzNjIzNTQyMzk2MjgiPiLhg6Hhg5Dhg5Xhg5Dhg6Dhg5Dhg6Phg5Phg50gKOGDpeGDoeGDlOGDmuGDmOGDoSDhg5nhg53hg53hg6Dhg5Phg5jhg5zhg5Dhg6Lhg5Thg5Hhg5jhg6Eg4YOb4YOY4YOu4YOU4YOT4YOV4YOY4YOXKSDhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjI1MzgyMDAxODQzNzMzMDIyOTUiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDkuGDkOGDmOGDkuGDneGDoSDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOh4YOQ4YOV4YOQ4YOg4YOQ4YOj4YOT4YOdIOGDm+GDk+GDlOGDkeGDkOGDoOGDlOGDneGDkeGDkC4g4YOY4YOhIOGDkuGDkOGDm+GDneGDmOGDl+GDleGDmuGDlOGDkeGDkCDhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOh4YOU4YOg4YOV4YOY4YOh4YOY4YOhIOGDm+GDmOGDlOGDoCDhg6Xhg6Hhg5Thg5rhg5jhg6Eg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIC0g4YOb4YOd4YOR4YOY4YOa4YOj4YOg4YOYIOGDmeGDkOGDleGDqOGDmOGDoOGDkuGDkOGDkeGDm+GDo+GDmuGDneGDkeGDmOGDoSDhg5Dhg5zhg6vhg5Thg5Hhg5jhg6Hhg5Ag4YOT4YOQIFdpLUZpLeGDmOGDoSDhg5vhg5jhg67hg5Thg5Phg5Xhg5jhg5cuIOGDlOGDoSDhg6Hhg5Thg6Dhg5Xhg5jhg6Hhg5Thg5Hhg5gg4YOp4YOQ4YOg4YOX4YOj4YOa4YOYIOGDo+GDnOGDk+GDkCDhg5jhg6fhg53hg6Eg4YOX4YOl4YOV4YOU4YOc4YOhIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDkOGDluGDlCwg4YOu4YOd4YOa4YOdIOGDkOGDnuGDlOGDkeGDoSDhg6Phg5zhg5Phg5Ag4YOw4YOl4YOd4YOc4YOT4YOU4YOXIOGDm+GDkOGDl+GDmCDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg6Eg4YOj4YOk4YOa4YOU4YOR4YOQLiDhg5Dhg57hg5Thg5Hhg5gg4YOb4YOQ4YOX4YOYIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmOGDoSDhg5vhg5jhg67hg5Thg5Phg5Xhg5jhg5cg4YOh4YOQ4YOV4YOQ4YOg4YOQ4YOj4YOT4YOdIOGDm+GDk+GDlOGDkeGDkOGDoOGDlOGDneGDkeGDmOGDoSDhg5Lhg5Dhg5vhg53hg5fhg5Xhg5rhg5Dhg6Eg4YOo4YOU4YOr4YOa4YOU4YOR4YOU4YOcLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIyMzYzOTY5NjQxNzkyMzg4OTQ3Ij4iU3VyZmFjZUZsaW5nZXIt4YOW4YOUIOGDrOGDleGDk+GDneGDm+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDneGDoSBTdXJmYWNlRmxpbmdlci3hg5jhg6Eg4YOT4YOQ4YOR4YOQ4YOa4YOYIOGDk+GDneGDnOGDmOGDoSDhg5Thg5rhg5Thg5vhg5Thg5zhg6Lhg5Thg5Hhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4i4YOp4YOQ4YOg4YOp4YOd4YOhIOGDkeGDo+GDpOGDlOGDoOGDmOGDoSDhg6zhg5Dhg5nhg5jhg5fhg67hg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg6zhg5Dhg5jhg5nhg5jhg5fhg67hg53hg6Eg4YOR4YOj4YOk4YOU4YOg4YOj4YOa4YOYIOGDqeGDkOGDoOGDqeGDneGDoSDhg5nhg53hg5zhg6Lhg5Thg5zhg6Lhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iSW5wdXRGbGluZ2VyLeGDluGDlCDhg6zhg5Xhg5Phg53hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOd4YOhIElucHV0Rmxpbmdlci3hg5jhg6Eg4YOT4YOQ4YOR4YOQ4YOa4YOYIOGDk+GDneGDnOGDmOGDoSDhg6Thg6Phg5zhg6Xhg6rhg5jhg5Thg5Hhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJXaWZpIOGDlOGDmeGDoOGDkOGDnOGDmOGDoSDhg5nhg53hg5zhg6Thg5jhg5Lhg6Phg6Dhg5Dhg6rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIFdpZmkg4YOU4YOZ4YOg4YOQ4YOc4YOU4YOR4YOX4YOQ4YOcIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDkCDhg5Phg5Ag4YOT4YOQ4YOZ4YOd4YOc4YOk4YOY4YOS4YOj4YOg4YOY4YOg4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4iV2lmaSDhg5Thg5nhg6Dhg5Dhg5zhg5Thg5Hhg5jhg6Eg4YOb4YOQ4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iNDU0MzkxMjI5MjY4MTgyNjk4NiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOQ4YOZ4YOd4YOc4YOi4YOg4YOd4YOa4YOd4YOhIFdpZmkg4YOU4YOZ4YOg4YOQ4YOc4YOU4YOR4YOY4YOhIOGDk+GDkOGDkeGDkOGDmuGDmCDhg5Phg53hg5zhg5jhg6Eg4YOk4YOj4YOc4YOl4YOq4YOY4YOU4YOR4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZUF1ZGlvT3V0cHV0IiBtc2dpZD0iNjg1NzEzNDQ5ODQwMjM0NjcwOCI+IuGDkuGDkOGDm+GDneGDm+GDkOGDleGDkOGDmuGDmCDhg5Dhg6Phg5Phg5jhg53hg6Eg4YOT4YOQ4YOt4YOU4YOg4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZUF1ZGlvT3V0cHV0IiBtc2dpZD0iNjIxMDU5Nzc1NDIxMjIwODg1MyI+IuGDoeGDkOGDqOGDo+GDkOGDmuGDlOGDkeGDkOGDoSDhg5Dhg6vhg5rhg5Thg5Xhg6Eg4YOQ4YOe4YOhIOGDk+GDkOGDmOGDreGDmOGDoOGDneGDoSDhg5Phg5Ag4YOS4YOQ4YOT4YOQ4YOQ4YOb4YOY4YOh4YOQ4YOb4YOQ4YOg4YOX4YOd4YOhIOGDkuGDkOGDm+GDneGDm+GDkOGDleGDkOGDmuGDmCDhg5Dhg6Phg5Phg5jhg50uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIyMjQ2ODI4NzczNTg5MDk0MDIzIj4i4YOS4YOQ4YOb4YOd4YOb4YOQ4YOV4YOQ4YOa4YOYIOGDleGDmOGDk+GDlOGDneGDoSDhg5Phg5Dhg63hg5Thg6Dhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIzNTk0ODE2NTgwMzQxNDk4NjAiPiLhg6Hhg5Dhg6jhg6Phg5Dhg5rhg5Thg5Hhg5Dhg6Eg4YOQ4YOr4YOa4YOU4YOV4YOhIOGDkOGDnuGDoSDhg5Phg5Dhg5jhg63hg5jhg6Dhg53hg6Eg4YOT4YOQIOGDkuGDkOGDk+GDkOGDkOGDm+GDmOGDoeGDkOGDm+GDkOGDoOGDl+GDneGDoSDhg5Lhg5Dhg5vhg53hg5vhg5Dhg5Xhg5Dhg5rhg5gg4YOV4YOY4YOT4YOU4YOdLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iNzgxNTM5ODk2OTMwMzM4MjAxNiI+IuGDkuGDkOGDm+GDneGDm+GDkOGDleGDkOGDmuGDmCDhg5Phg5Dhg6rhg6Phg5rhg5gg4YOV4YOY4YOT4YOU4YOd4YOhIOGDk+GDkOGDreGDlOGDoOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVTZWN1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjI3Nzk3OTMwNjQ3MDkzNTAyODkiPiLhg6Hhg5Dhg6jhg6Phg5Dhg5rhg5Thg5Hhg5Dhg6Eg4YOQ4YOr4YOa4YOU4YOV4YOhIOGDkOGDnuGDoSDhg5Phg5Dhg5jhg63hg5jhg6Dhg53hg6Eg4YOT4YOQIOGDkuGDkOGDk+GDkOGDkOGDm+GDmOGDoeGDkOGDm+GDkOGDoOGDl+GDneGDoSDhg5Lhg5Dhg5vhg53hg5vhg5Dhg5Xhg5Dhg5rhg5gg4YOT4YOQ4YOq4YOj4YOa4YOYIOGDleGDmOGDk+GDlOGDnS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeUF1ZGlvU2V0dGluZ3MiIG1zZ2lkPSI2MDk1ODU5OTM3MDY5MTQ2MDg2Ij4i4YOX4YOl4YOV4YOU4YOc4YOYIOGDkOGDo+GDk+GDmOGDnSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjM1MjI1NjUzNjY4MDYyNDg1MTciPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDkOGDo+GDk+GDmOGDneGDoSDhg5Lhg5rhg53hg5Hhg5Dhg5rhg6Phg6Dhg5gg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkC4g4YOb4YOQ4YOSLjog4YOu4YOb4YOY4YOhIOGDoeGDmOGDm+GDkOGDpuGDmuGDlCDhg5Phg5Ag4YOg4YOd4YOb4YOU4YOa4YOYIOGDk+GDmOGDnOGDkOGDm+GDmOGDmeGDmCDhg5Lhg5Dhg5vhg53hg5jhg6fhg5Thg5zhg5Thg5Hhg5Ag4YOh4YOY4YOS4YOc4YOQ4YOa4YOY4YOhIOGDkuGDkOGDm+GDneGDoeGDouGDkOGDnOGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY29yZEF1ZGlvIiBtc2dpZD0iMzg3NjA0OTc3MTQyNzQ2NjMyMyI+IuGDkOGDo+GDk+GDmOGDneGDoSDhg6nhg5Dhg6zhg5Thg6Dhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNvcmRBdWRpbyIgbXNnaWQ9IjQ5MDY4MzkzMDEwODc5ODA2ODAiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDkOGDo+GDk+GDmOGDnSDhg6nhg5Dhg6zhg5Thg6Dhg5Ag4YOb4YOY4YOZ4YOg4YOd4YOk4YOd4YOc4YOY4YOXLiDhg5zhg5Thg5Hhg5Dhg6Dhg5fhg5Xhg5Ag4YOQ4YOe4YOhIOGDkOGDo+GDk+GDmOGDnSDhg6nhg5Dhg6zhg5Thg6Dhg5jhg6Eg4YOj4YOk4YOa4YOU4YOR4YOQ4YOhIOGDkOGDq+GDmuGDlOGDleGDoSDhg5zhg5Thg5Hhg5jhg6Hhg5vhg5jhg5Thg6Ag4YOT4YOg4YOd4YOhLCDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOX4YOQ4YOc4YOu4YOb4YOd4YOR4YOY4YOhIOGDkuGDkOGDoOGDlOGDqOGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYSIgbXNnaWQ9IjM2MTYzOTE5MTk1NTk3NTExOTIiPiLhg6Hhg6Phg6Dhg5Dhg5fhg5Thg5Hhg5jhg6Hhg5Ag4YOT4YOQIOGDleGDmOGDk+GDlOGDneGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg6bhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYW1lcmEiIG1zZ2lkPSI4NDk3MjE2NTI0NzM1NTM1MDA5Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5nhg5Dhg5vhg5Thg6Dhg5jhg5cg4YOh4YOj4YOg4YOQ4YOX4YOY4YOh4YOQIOGDk+GDkCDhg5Xhg5jhg5Phg5Thg53hg6Eg4YOS4YOQ4YOT4YOQ4YOm4YOU4YOR4YOQLiDhg5Thg6Eg4YOc4YOU4YOR4YOQ4YOg4YOX4YOV4YOQIOGDkOGDnuGDoSDhg6Phg6Thg5rhg5Thg5Hhg5Dhg6Eg4YOQ4YOr4YOa4YOU4YOV4YOhLCDhg5zhg5Thg5Hhg5jhg6Hhg5vhg5jhg5Thg6Ag4YOT4YOg4YOd4YOhIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDneGDoSDhg5nhg5Dhg5vhg5Thg6Dhg5Ag4YOX4YOl4YOV4YOU4YOc4YOYIOGDk+GDkOGDk+GDkOGDoeGDouGDo+GDoOGDlOGDkeGDmOGDoSDhg5Lhg5Dhg6Dhg5Thg6jhg5QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYW1lcmFEaXNhYmxlVHJhbnNtaXRMZWQiIG1zZ2lkPSIyNjUxMDcyNjMwNTAxMTI2MjIyIj4i4YOZ4YOQ4YOb4YOU4YOg4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDoeGDkOGDoSDhg5Lhg5Dhg5Phg5Dhg5vhg6rhg5Thg5vhg5gg4YOY4YOc4YOT4YOY4YOZ4YOQ4YOi4YOd4YOg4YOY4YOhIExFRCDhg5Lhg5Dhg5fhg5jhg6jhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYW1lcmFEaXNhYmxlVHJhbnNtaXRMZWQiIG1zZ2lkPSI0NzY0NTg1NDY1NDgwMjk1MzQxIj4i4YOc4YOU4YOR4YOQ4YOhIOGDoOGDl+GDkOGDleGDoSDhg6zhg5jhg5zhg5Dhg6Hhg6zhg5Dhg6Ag4YOT4YOQ4YOn4YOU4YOc4YOU4YOR4YOj4YOa4YOYIOGDoeGDmOGDoeGDouGDlOGDm+GDmOGDoSDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Dhg6EsIOGDkuGDkOGDm+GDneGDoOGDl+GDneGDoSDhg5nhg5Dhg5vhg5Thg6Dhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOY4YOhIOGDmOGDnOGDk+GDmOGDmeGDkOGDouGDneGDoOGDmCBMRUQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icmljayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjk2MTI5MjIwNTc2NDQ4ODMwNCI+IuGDm+GDo+GDk+GDm+GDmOGDleGDkOGDkyDhg5Lhg5Dhg5vhg53hg6Dhg5fhg6Phg5rhg5gg4YOi4YOQ4YOR4YOa4YOU4YOi4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icmljayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgzMzc4MTcwOTMzMjYzNzA1MzciPiLhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOh4YOQ4YOb4YOj4YOT4YOQ4YOb4YOd4YOTIOGDk+GDlOGDkOGDpeGDouGDmOGDleGDkOGDquGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzM0ODE4ODA4MDAxNjk5NTMwIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5vhg5fhg5Thg5rhg5gg4YOi4YOQ4YOR4YOa4YOU4YOi4YOY4YOhIOGDoeGDkOGDm+GDo+GDk+GDkOGDm+GDneGDkyDhg5Lhg5Dhg5fhg5jhg6jhg5Xhg5AuIOGDlOGDoSDhg6vhg5Dhg5rhg5jhg5Dhg5wg4YOh4YOQ4YOu4YOY4YOk4YOQ4YOX4YOd4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JyaWNrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTc4ODkwMzI5NzYyNzI4MzA5OSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOb4YOX4YOU4YOa4YOYIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg6Hhg5Dhg5vhg6Phg5Phg5Dhg5vhg53hg5Mg4YOS4YOQ4YOX4YOY4YOo4YOV4YOQLiDhg5Thg6Eg4YOr4YOQ4YOa4YOY4YOQ4YOcIOGDoeGDkOGDruGDmOGDpOGDkOGDl+GDneGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQzNjYzNDk3MjU2MTc5NTAwMiI+IuGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg6Lhg5Xhg5jhg6Dhg5fhg5Xhg5jhg6Eg4YOY4YOr4YOj4YOa4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyODk4NTYwODcyNDYyNjM4MjQyIj4i4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOY4YOhIOGDkuGDkOGDk+GDkOGDouGDleGDmOGDoOGDl+GDleGDmOGDoSDhg5jhg6vhg6Phg5rhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgxNzIwNTYxODAwNjM3MDA3NDEiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg5jhg6vhg6Phg5rhg5Thg5Hhg5jhg5fhg5gg4YOS4YOQ4YOT4YOQ4YOi4YOV4YOY4YOg4YOX4YOV4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYm9vdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUzMjYwMDgxMjQyODk5ODk5NjkiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDmOGDoSDhg5jhg6vhg6Phg5rhg5Thg5Hhg5jhg5fhg5gg4YOS4YOQ4YOT4YOQ4YOi4YOV4YOY4YOg4YOX4YOV4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfdW5tb3VudF9maWxlc3lzdGVtcyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIyOTI3MzYxNTM3OTQyNTkxODQxIj4iVUJTIOGDkeGDkOGDoOGDkOGDl+GDmOGDoSDhg6Thg5Dhg5jhg5rhg6Phg6Ag4YOh4YOY4YOh4YOi4YOU4YOb4YOQ4YOW4YOUIOGDrOGDleGDk+GDneGDm+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfdW5tb3VudF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ0MDIzMDUwNDk4OTA5NTM4MTAiPiJTRCDhg5Hhg5Dhg6Dhg5Dhg5fhg5jhg6Eg4YOk4YOQ4YOY4YOa4YOj4YOgIOGDoeGDmOGDoeGDouGDlOGDm+GDkOGDluGDlCDhg6zhg5Xhg5Phg53hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBtc2dpZD0iMTgyOTI5MDcwMTY1ODk5MjM0NyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDm+GDmOGDo+GDlOGDoOGDl+GDneGDoSDhg5Phg5Ag4YOS4YOQ4YOb4YOd4YOQ4YOU4YOg4YOX4YOd4YOhIOGDpOGDkOGDmOGDmuGDlOGDkeGDmOGDoSDhg6Hhg5jhg6Hhg6Lhg5Thg5vhg5Thg5Hhg5gg4YOb4YOd4YOh4YOQ4YOu4YOh4YOc4YOU4YOa4YOYIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MjI3ODE5NTgyNjI0OTA0OTcyIj4iVVNCIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg6zhg5Dhg6jhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI2MjU4MjY5ODYzOTI3NDA1NiI+IlNEIOGDkeGDkOGDoOGDkOGDl+GDmOGDoSDhg6zhg5Dhg6jhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIG1zZ2lkPSI4Nzg0MjY4MjQ2Nzc5MTk4NjI3Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOT4YOQ4YOQ4YOk4YOd4YOg4YOb4YOQ4YOi4YOd4YOhIOGDm+GDneGDoeGDkOGDruGDoeGDnOGDlOGDmuGDmCDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX2FjY2VzcyIgbXNnaWQ9IjM0MTEzMzg2MzIwMDIxOTM4NDYiPiLhg6jhg5jhg5Phg5Ag4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOY4YOhIOGDqOGDlOGDoeGDkOGDruGDlOGDkSDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5jhg6Eg4YOb4YOY4YOm4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19hY2Nlc3MiIG1zZ2lkPSIzMDk0NTYzODQ0NTkzODc4NTQ4Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOb4YOY4YOY4YOm4YOd4YOhIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDkCDhg6jhg5jhg5Phg5Ag4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOQ4YOW4YOULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19jcmVhdGUiIG1zZ2lkPSI2NDE0NzU3MjM0Nzg5MzM2MzI3Ij4i4YOo4YOY4YOT4YOQIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg6jhg5Thg6Xhg5vhg5zhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX2NyZWF0ZSIgbXNnaWQ9IjQ1NTg4NjkyNzM1ODU4NTY4NzYiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg6jhg5jhg5Phg5Ag4YOh4YOQ4YOq4YOQ4YOV4YOY4YOhIOGDqOGDlOGDpeGDm+GDnOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjUyNjkyODMyODMwMTYxODAyMiI+IuGDqOGDmOGDk+GDkCDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOc4YOQ4YOT4YOS4YOj4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19kZXN0cm95IiBtc2dpZD0iNzIxODc0OTI4NjE0NTUyNjUzNyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOo4YOY4YOT4YOQIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5zhg5Dhg5Phg5Lhg6Phg6Dhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX21vdW50X3VubW91bnQiIG1zZ2lkPSI4ODc3OTk4MTAxOTQ0OTk5Mzg2Ij4i4YOo4YOY4YOT4YOQIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg5vhg5jhg5Thg6Dhg5fhg5Thg5Hhg5Av4YOS4YOQ4YOb4YOd4YOU4YOg4YOX4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19tb3VudF91bm1vdW50IiBtc2dpZD0iMzQ1MTM2MDExNDkwMjQ5MDkyOSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOo4YOY4YOT4YOQIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg5vhg5jhg5Thg6Dhg5fhg5Thg5Hhg5AgLyDhg5Lhg5Dhg5vhg53hg5Thg6Dhg5fhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX3JlbmFtZSIgbXNnaWQ9Ijc0OTY2MzM5NTQwODA0NzI0MTciPiLhg6jhg5jhg5Phg5Ag4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOY4YOh4YOX4YOV4YOY4YOhIOGDoeGDkOGDruGDlOGDmuGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg6Dhg6Xhg5vhg5Thg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX3JlbmFtZSIgbXNnaWQ9IjE3OTQ3NTc1ODg0NzIxMjc2NzUiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDqOGDmOGDk+GDkCDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOh4YOQ4YOu4YOU4YOa4YOY4YOhIOGDkuGDkOGDk+GDkOGDoOGDpeGDm+GDlOGDleGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3ZpYnJhdGUiIG1zZ2lkPSI3Njk2NDI3MDI2MDU3NzA1ODM0Ij4i4YOV4YOY4YOR4YOg4YOQ4YOq4YOY4YOY4YOhIOGDmeGDneGDnOGDouGDoOGDneGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3ZpYnJhdGUiIG1zZ2lkPSI2Mjg0OTg5MjQ1OTAyMzAwOTQ1Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOb4YOQ4YOg4YOX4YOd4YOhIOGDleGDmOGDkeGDoOGDmOGDoOGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZsYXNobGlnaHQiIG1zZ2lkPSIyMTU1OTIwODEwMTIxOTg0MjE1Ij4i4YOh4YOQ4YOh4YOY4YOS4YOc4YOQ4YOa4YOdIOGDqOGDo+GDpeGDmOGDoSDhg5vhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mbGFzaGxpZ2h0IiBtc2dpZD0iNjUyMjI4NDc5NDU2ODM2ODMxMCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDm+GDkOGDoOGDl+GDneGDoSDhg5Lhg5Dhg5zhg5Dhg5fhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VVc2IiIG1zZ2lkPSIxMTEzNDUzNDMwNjQ1NDAyNzIzIj4iVVNCIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDlOGDkeGDmOGDoSDhg6Phg6Thg5rhg5Thg5Hhg5Thg5Hhg5jhg6Hhg5Ag4YOT4YOQIOGDoeGDkOGDoeGDo+GDoOGDleGDlOGDmuGDmCDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5jhg6Eg4YOb4YOQ4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNiIiBtc2dpZD0iNzc3NjE1NTQzMDIxODIzOTgzMyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AgVVNCIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDlOGDkeGDmOGDoSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5jhg6Hhg5Ag4YOT4YOQIOGDnOGDlOGDkeGDkOGDoOGDl+GDleGDlOGDkeGDmOGDoSDhg5vhg5Dhg6Dhg5fhg5Xhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NNdHAiIG1zZ2lkPSI0OTUzNDY4Njc2Nzk1OTE3MDQyIj4iTVRQIOGDnuGDoOGDneGDouGDneGDmeGDneGDmuGDmOGDoSDhg5Phg5Dhg5zhg5Thg6Dhg5Lhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NNdHAiIG1zZ2lkPSI2NTMyOTYxMjAwNDg2NzkxNTcwIj4i4YOQ4YOc4YOY4YOt4YOU4YOR4YOhIOGDrOGDleGDk+GDneGDm+GDkOGDoSBrZXJuZWwgTVRQIOGDk+GDoOGDkOGDmOGDleGDlOGDoOGDoSBNVFAgVVNCIOGDnuGDoOGDneGDouGDneGDmeGDneGDmuGDmOGDoSDhg5jhg5vhg57hg5rhg5Thg5vhg5Thg5zhg6Lhg5Dhg6rhg5jhg5jhg6Hhg5fhg5Xhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9oYXJkd2FyZV90ZXN0IiBtc2dpZD0iNDE0ODI5MDg2MDQwMDY1OTE0NiI+IuGDkOGDnuGDkOGDoOGDkOGDouGDo+GDoOGDo+GDmuGDmCDhg5Dhg6bhg63hg6Phg6Dhg5Xhg5jhg5rhg53hg5Hhg5jhg6Eg4YOi4YOU4YOh4YOi4YOY4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjY1OTc5NjQxOTEyMDgwMTY2MDUiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg5vhg5Dhg6Dhg5fhg53hg6Eg4YOh4YOu4YOV4YOQ4YOT4YOQ4YOh4YOu4YOV4YOQIOGDnuGDlOGDoOGDmOGDpOGDlOGDoOGDmOGDo+GDmuGDmCDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Ag4YOQ4YOe4YOQ4YOg4YOQ4YOi4YOj4YOg4YOY4YOhIOGDouGDlOGDoeGDouGDmOGDoOGDlOGDkeGDmOGDoSDhg5vhg5jhg5bhg5zhg5jhg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWxsUGhvbmUiIG1zZ2lkPSIzOTI1ODM2MzQ3NjgxODQ3OTU0Ij4i4YOe4YOY4YOg4YOT4YOQ4YOe4YOY4YOg4YOYIOGDk+GDkOGDoOGDlOGDmeGDleGDkCDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOc4YOd4YOb4YOg4YOU4YOR4YOW4YOUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FsbFBob25lIiBtc2dpZD0iMzc0MDc5NzU3NjExMzc2MDgyNyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOT4YOQ4YOg4YOU4YOZ4YOd4YOhIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5zhg53hg5vhg6Dhg5Thg5Hhg5bhg5Qg4YOX4YOl4YOV4YOU4YOc4YOYIOGDqeGDkOGDoOGDlOGDleGDmOGDoSDhg5Lhg5Dhg6Dhg5Thg6jhg5QuIOGDkOGDm+GDkOGDnCDhg6jhg5Thg6Hhg5Dhg6vhg5rhg53hg5Ag4YOS4YOQ4YOb4YOd4YOY4YOs4YOV4YOY4YOd4YOhIOGDl+GDpeGDleGDlOGDnOGDoSDhg6Hhg5Dhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5gg4YOl4YOV4YOY4YOX4YOQ4YOg4YOW4YOUIOGDm+GDneGDo+GDmuGDneGDk+GDnOGDlOGDmuGDmCDhg67hg5Dhg6Dhg6/hg5Thg5Hhg5jhg6Hhg5Ag4YOT4YOQIOGDluGDkOGDoOGDlOGDkeGDmOGDoSDhg5Lhg5Dhg6nhg5Thg5zhg5AuIOGDkuGDkOGDmOGDl+GDleGDkOGDmuGDmOGDoeGDrOGDmOGDnOGDlOGDlywg4YOg4YOd4YObIOGDkOGDnuGDoSDhg5Lhg5Dhg5Phg5Dhg6Phg5Phg5Thg5Hhg5Thg5rhg5gg4YOT4YOQ4YOu4YOb4YOQ4YOg4YOU4YOR4YOY4YOhIOGDnOGDneGDm+GDoOGDlOGDkeGDluGDlCDhg5Phg5Dhg6Dhg5Thg5nhg5Xhg5Ag4YOQ4YOgIOGDqOGDlOGDo+GDq+GDmuGDmOGDkC4g4YOb4YOQ4YOV4YOc4YOUIOGDkOGDnuGDlOGDkeGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOX4YOl4YOV4YOU4YOc4YOYIOGDk+GDkOGDk+GDkOGDoeGDouGDo+GDoOGDlOGDkeGDmOGDoSDhg5Lhg5Dhg6Dhg5Thg6jhg5Qg4YOW4YOQ4YOg4YOU4YOR4YOY4YOhIOGDkuGDkOGDnOGDruGDneGDoOGDquGDmOGDlOGDmuGDlOGDkeGDkCDhg5Phg5Ag4YOo4YOU4YOh4YOQ4YOR4YOQ4YOb4YOY4YOh4YOYIOGDoeGDkOGDpOGDkOGDoeGDo+GDoOGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg67hg5Phg5Dhg6og4YOb4YOd4YOS4YOY4YOs4YOU4YOV4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FsbFByaXZpbGVnZWQiIG1zZ2lkPSI0MTk4MzQ5MjExMTA4NDk3ODc5Ij4i4YOe4YOY4YOg4YOT4YOQ4YOe4YOY4YOg4YOYIOGDk+GDkOGDoOGDlOGDmeGDleGDkCDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOc4YOU4YOR4YOY4YOh4YOb4YOY4YOU4YOgIOGDnOGDneGDm+GDlOGDoOGDluGDlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbGxQcml2aWxlZ2VkIiBtc2dpZD0iMTY4OTAyNDkwMTUwOTk5NjgxMCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOX4YOl4YOV4YOU4YOc4YOYIOGDm+GDneGDnOGDkOGDrOGDmOGDmuGDlOGDneGDkeGDmOGDoSDhg5Lhg5Dhg6Dhg5Thg6jhg5Qg4YOT4YOQ4YOg4YOU4YOZ4YOd4YOhIOGDnOGDlOGDkeGDmOGDoeGDm+GDmOGDlOGDoCDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOc4YOd4YOb4YOU4YOg4YOW4YOULCDhg5vhg5Dhg5cg4YOo4YOd4YOg4YOY4YOhIOGDoeGDkOGDkuGDkOGDnOGDkuGDlOGDkeGDnSDhg5zhg53hg5vhg6Dhg5Thg5Hhg5bhg5QuIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5Thg5Hhg5gg4YOo4YOU4YOr4YOa4YOU4YOR4YOU4YOcIOGDkOGDoOGDkOGDoeGDkOGDoeGDo+GDoOGDleGDlOGDmuGDmCDhg5Dhg5wg4YOj4YOZ4YOQ4YOc4YOd4YOc4YOdIOGDluGDkOGDoOGDlOGDkeGDmOGDoSDhg6Hhg5Dhg5Lhg5Dhg5zhg5Lhg5Thg5Hhg50g4YOh4YOQ4YOb4YOh4YOQ4YOu4YOj4YOg4YOU4YOR4YOY4YOhIOGDoeGDmOGDlOGDkeGDqOGDmCDhg5Lhg5Dhg5zhg5fhg5Dhg5Xhg6Hhg5Thg5Hhg5Dhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDg0MjU3Njk5NDE0NDYwNDgyMSI+IkNETUEg4YOi4YOQ4YOR4YOa4YOU4YOi4YOY4YOhIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDmOGDoSDhg57hg5jhg6Dhg5Phg5Dhg57hg5jhg6Ag4YOT4YOQ4YOs4YOn4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU2MDQ4NDgwOTUzMTU0MjE0MjUiPiJDRE1BIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg5jhg6Eg4YOe4YOY4YOg4YOT4YOQ4YOe4YOY4YOgIOGDk+GDkOGDrOGDp+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBtc2dpZD0iMTk5NDE5MzUzODgwMjMxNDE4NiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDk+GDkOGDmOGDrOGDp+GDneGDoSBDRE1BIOGDo+GDluGDoOGDo+GDnOGDleGDlOGDmuGDp+GDneGDpOGDkC4g4YOb4YOQ4YOV4YOc4YOUIOGDkOGDnuGDlOGDkeGDm+GDkCDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOW4YOU4YOT4YOb4YOU4YOi4YOQ4YOTLCDhg6Hhg5Dhg63hg5jhg6Dhg53hg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOg4YOU4YOo4YOUIOGDk+GDkOGDmOGDrOGDp+GDneGDnCBDRE1BIOGDo+GDluGDoOGDo+GDnOGDleGDlOGDmuGDp+GDneGDpOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2xvY2F0aW9uVXBkYXRlcyIgbXNnaWQ9Ijc3ODU0MDgyNTMzNjQzMzU3NDAiPiLhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOS4YOQ4YOc4YOQ4YOu4YOa4YOU4YOR4YOY4YOhIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmOGDoSDhg5nhg53hg5zhg6Lhg6Dhg53hg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19sb2NhdGlvblVwZGF0ZXMiIG1zZ2lkPSIxMTIwNzQxNTU3ODkxNDM4ODc2Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOS4YOQ4YOc4YOQ4YOu4YOa4YOU4YOR4YOY4YOhIOGDqOGDlOGDoeGDkOGDruGDlOGDkSDhg6Dhg5Dhg5Phg5jhg50g4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOY4YOhIOGDkOGDpeGDouGDmOGDleGDkOGDquGDmOGDkC/hg5Phg5Thg5Dhg6Xhg6Lhg5jhg5Xhg5Dhg6rhg5jhg5AuIOGDqeGDleGDlOGDo+GDmuGDlOGDkeGDoOGDmOGDleGDmCDhg5Dhg57hg5Thg5Hhg5gg4YOQ4YObIOGDpOGDo+GDnOGDpeGDquGDmOGDkOGDoSDhg5Dhg6Ag4YOY4YOn4YOU4YOc4YOU4YOR4YOU4YOcLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI3ODU1MjU5NDYxMjY4NzM0OTE0Ij4i4YOh4YOQ4YOg4YOU4YOS4YOY4YOh4YOi4YOg4YOQ4YOq4YOY4YOdIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDluGDlCDhg6zhg5Xhg5Phg53hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGVja2luUHJvcGVydGllcyIgbXNnaWQ9IjQwMjQ1MjY5Njg2MzAxOTQxMjgiPiLhg5Dhg57hg5Thg5Hhg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQ4YOXIOGDoOGDlOGDkuGDmOGDoeGDouGDoOGDkOGDquGDmOGDmOGDoSDhg6Hhg5Dhg5vhg6Hhg5Dhg67hg6Phg6Dhg5jhg6Eg4YOb4YOU4YOo4YOV4YOU4YOd4YOR4YOY4YOXIOGDk+GDkOGDm+GDkOGDouGDlOGDkeGDo+GDmuGDmCDhg5fhg5Xhg5jhg6Hhg5Thg5Hhg5Thg5Hhg5jhg6Eg4YOs4YOQ4YOh4YOQ4YOZ4YOY4YOX4YOu4YOQ4YOTIOGDkOGDnCDhg6nhg5Dhg6Hhg5Dhg6zhg5Thg6Dhg5Dhg5Mg4YOs4YOV4YOT4YOd4YOb4YOQLiDhg5Dhg6Ag4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOU4YOR4YOQIOGDqeGDleGDlOGDo+GDmuGDlOGDkeGDoOGDmOGDlSDhg5Dhg57hg5Thg5Hhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kR2FkZ2V0IiBtc2dpZD0iNzc2OTA1MzM5MDE1ODYzNDcxIj4i4YOV4YOY4YOv4YOU4YOi4YOU4YOR4YOY4YOhIOGDkOGDoOGDqeGDlOGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRHYWRnZXQiIG1zZ2lkPSI4MjYxMzI2OTM4NTk5MDQ5MjkwIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg6Phg5fhg67hg6Dhg5Dhg6Eg4YOh4YOY4YOh4YOi4YOU4YOb4YOQ4YOhLCDhg5fhg6Mg4YOg4YOd4YOb4YOU4YOa4YOb4YOQIOGDkOGDnuGDm+GDkCDhg6Dhg53hg5vhg5Thg5rhg5gg4YOV4YOY4YOv4YOU4YOi4YOYIOGDqOGDlOGDmOGDq+GDmuGDlOGDkeGDkCDhg5Lhg5Dhg5vhg53hg5jhg6fhg5Thg5zhg53hg6EuIOGDkOGDmyDhg5zhg5Thg5Hhg5Dhg6Dhg5fhg5Xhg5jhg6Eg4YOb4YOl4YOd4YOc4YOUIOGDkOGDnuGDoSDhg6jhg5Thg6Phg6vhg5rhg5jhg5AsIOGDnuGDmOGDoOGDkOGDkyDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5bhg5Qg4YOs4YOV4YOT4YOd4YOb4YOQIOGDm+GDmOGDoeGDquGDlOGDoSDhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOU4YOR4YOhLiDhg5Dhg6Ag4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOU4YOR4YOQIOGDqeGDleGDlOGDo+GDmuGDlOGDkeGDoOGDmOGDlSDhg5Dhg57hg5Thg5Hhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlQaG9uZVN0YXRlIiBtc2dpZD0iODQyMzkyMzc3NzY1OTI5MjIyOCI+IuGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5vhg5Phg5Lhg53hg5vhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5UGhvbmVTdGF0ZSIgbXNnaWQ9IjEwMjk4Nzc1MjkwMDc2ODY3MzIiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDkOGDmeGDneGDnOGDouGDoOGDneGDmuGDneGDoSDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Dhg5bhg5Qg4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOY4YOhIOGDpOGDo+GDnOGDpeGDquGDmOGDlOGDkeGDmC4g4YOQ4YObIOGDo+GDpOGDmuGDlOGDkeGDmOGDoSDhg5vhg6Xhg53hg5zhg5Qg4YOQ4YOe4YOhIOGDqOGDlOGDo+GDq+GDmuGDmOGDkCDhg6Xhg6Hhg5Thg5rhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOT4YOQ4YOg4YOX4YOV4YOQLCDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOg4YOQ4YOT4YOY4YOd4YOhIOGDqeGDkOGDoOGDl+GDleGDkCDhg5Phg5Ag4YOS4YOQ4YOb4YOd4YOg4YOX4YOV4YOQLCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Hhg5Dhg5fhg5Xhg5jhg6Eg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOY4YOhIOGDkuGDkOGDoOGDlOGDqOGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRQaG9uZVN0YXRlIiBtc2dpZD0iOTE3ODIyODUyNDUwNzYxMDQ4NiI+IuGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg6Hhg6Lhg5Dhg6Lhg6Phg6Hhg5jhg6Hhg5Ag4YOT4YOQIOGDmOGDk+GDlOGDnOGDouGDneGDkeGDmOGDoSDhg6zhg5Dhg5nhg5jhg5fhg67hg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkUGhvbmVTdGF0ZSIgbXNnaWQ9IjE2MzkyMTI3NzE4MjYxMjU1MjgiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDsOGDpeGDneGDnOGDk+GDlOGDoSDhg6zhg5Xhg5Phg53hg5vhg5Ag4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOY4YOhIOGDoeGDkOGDouGDlOGDmuGDlOGDpOGDneGDnOGDnSDhg6Thg6Phg5zhg6Xhg6rhg5jhg5Thg5Hhg5bhg5QuIOGDkOGDnuGDm+GDkCDhg5vhg6Hhg5Lhg5Dhg5Xhg6Hhg5gg4YOj4YOk4YOa4YOU4YOR4YOY4YOXIOGDqOGDlOGDq+GDmuGDlOGDkeGDoSDhg5Phg5Dhg5Dhg5Phg5Lhg5jhg5zhg53hg6Eg4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOY4YOhIOGDnOGDneGDm+GDlOGDoOGDmCwg4YOb4YOY4YOh4YOYIOGDoeGDlOGDoOGDmOGDo+GDmuGDmCDhg5Lhg5Dhg5vhg53hg6rhg5Thg5vhg5AsIOGDkOGDpeGDouGDmOGDo+GDoOGDmCDhg5bhg5Dhg6Dhg5gsIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDo+GDmuGDmCDhg5zhg53hg5vhg5Thg6Dhg5gg4YOT4YOQIOGDm+GDoeGDkuGDkOGDleGDoeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dha2VMb2NrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTMxNzMxNDM1MDExNDk1MDE1Ij4i4YOT4YOQ4YOY4YOq4YOQ4YOV4YOY4YOXIOGDouGDkOGDkeGDmuGDlOGDouGDmCDhg5Phg5Dhg6vhg5jhg5zhg5Thg5Hhg5jhg6Hhg5Lhg5Dhg5wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dha2VMb2NrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTczNDgwMTg3OTQxNDk2MTMwIj4i4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOY4YOhIOGDq+GDmOGDmuGDmOGDoSDhg6Dhg5Thg5/hg5jhg5vhg6jhg5gg4YOS4YOQ4YOT4YOQ4YOh4YOV4YOa4YOY4YOhIOGDkOGDpuGDmeGDleGDlOGDl+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dha2VMb2NrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3MzExMzE5ODI0NDAwNDQ3ODY4Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg67hg5Thg5rhg5gg4YOo4YOU4YOj4YOo4YOQ4YOa4YOd4YOhIOGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg5Phg5Dhg6vhg5jhg5zhg5Thg5Hhg5Dhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd2FrZUxvY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NTU5MTAwNjc3MzcyOTI4NzU0Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg67hg5Thg5rhg5gg4YOo4YOU4YOj4YOo4YOQ4YOa4YOd4YOhIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5Phg5Dhg6vhg5jhg5zhg5Thg5Hhg5Dhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZXZpY2VQb3dlciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjc4NzAzNDcyMjYxNjM1MDQxNyI+IuGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg6nhg5Dhg6Dhg5fhg5Xhg5Ag4YOQ4YOcIOGDkuGDkOGDm+GDneGDoOGDl+GDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0OTI4NjIyNDcwOTgwOTQzMjA2Ij4i4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOY4YOhIOGDqeGDkOGDoOGDl+GDleGDkCDhg5Dhg5wg4YOS4YOQ4YOb4YOd4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY2ODk4NjI4Nzg5ODQ2MzE4MzEiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg6nhg5Dhg6Dhg5fhg53hg6Eg4YOQ4YOcIOGDkuGDkOGDm+GDneGDoOGDl+GDneGDoSDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2MDM3MDU3MzQ4NDYzMTMxMDMyIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOp4YOQ4YOg4YOX4YOd4YOhIOGDkOGDnCDhg5Lhg5Dhg5vhg53hg6Dhg5fhg53hg6Eg4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZmFjdG9yeVRlc3QiIG1zZ2lkPSIzNzE1MjI1NDkyNjk2NDE2MTg3Ij4i4YOl4YOQ4YOg4YOu4YOc4YOj4YOaIOGDoeGDkOGDouGDlOGDoeGDouGDnSDhg6Dhg5Thg5/hg5jhg5vhg6jhg5gg4YOS4YOQ4YOo4YOV4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM5NTIwNTkzMTgzNTk2NTMwOTEiPiLhg5vhg6zhg5Dhg6Dhg5vhg53hg5Thg5Hhg5rhg5jhg6Eg4YOT4YOQ4YOR4YOQ4YOa4YOYIOGDk+GDneGDnOGDmOGDoSDhg6Lhg5Thg6Hhg6Lhg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOo4YOYIOGDkuGDkOGDqOGDleGDlOGDkeGDkCwg4YOg4YOd4YOb4YOa4YOY4YOhIOGDk+GDoOGDneGDoeGDkOGDqiDhg6Hhg6Dhg6Phg5rhg5Dhg5Mg4YOQ4YOg4YOY4YOhIOGDruGDlOGDmuGDm+GDmOGDoeGDkOGDrOGDleGDk+GDneGDm+GDmCDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5jhg6Eg4YOQ4YOe4YOQ4YOg4YOQ4YOi4YOj4YOa4YOYIOGDo+GDluGDoOGDo+GDnOGDleGDlOGDmuGDp+GDneGDpOGDkC4g4YOu4YOU4YOa4YOb4YOY4YOh4YOQ4YOs4YOV4YOT4YOd4YOb4YOY4YOQIOGDm+GDruGDneGDmuGDneGDkyDhg5vhg6zhg5Dhg6Dhg5vhg53hg5Thg5Hhg5rhg5jhg6Eg4YOi4YOU4YOh4YOi4YOY4YOhIOGDoOGDlOGDn+GDmOGDm+GDqOGDmCDhg6nhg5Dhg6Dhg5fhg6Phg5og4YOi4YOQ4YOR4YOa4YOU4YOi4YOW4YOULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZhY3RvcnlUZXN0IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODEzNjY0NDk5MDMxOTI0NDgwMiI+IuGDm+GDrOGDkOGDoOGDm+GDneGDlOGDkeGDmuGDmOGDoSDhg5Phg5Dhg5Hhg5Dhg5rhg5gg4YOT4YOd4YOc4YOY4YOhIOGDouGDlOGDoeGDouGDmOGDoSDhg6Dhg5Thg5/hg5jhg5vhg6jhg5gg4YOS4YOQ4YOo4YOV4YOU4YOR4YOQLCDhg6Dhg53hg5vhg5rhg5jhg6Eg4YOT4YOg4YOd4YOh4YOQ4YOqIOGDoeGDoOGDo+GDmuGDkOGDkyDhg5Dhg6Dhg5jhg6Eg4YOu4YOU4YOa4YOb4YOY4YOh4YOQ4YOs4YOV4YOT4YOd4YOb4YOYIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5Dhg57hg5Dhg6Dhg5Dhg6Lhg6Phg5rhg5gg4YOj4YOW4YOg4YOj4YOc4YOV4YOU4YOa4YOn4YOd4YOk4YOQLiDhg67hg5Thg5rhg5vhg5jhg6Hhg5Dhg6zhg5Xhg5Phg53hg5vhg5jhg5Ag4YOb4YOu4YOd4YOa4YOd4YOTIOGDm+GDrOGDkOGDoOGDm+GDneGDlOGDkeGDmuGDmOGDoSDhg6Lhg5Thg6Hhg6Lhg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOo4YOYIOGDqeGDkOGDoOGDl+GDo+GDmiDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5bhg5QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRXYWxscGFwZXIiIG1zZ2lkPSI2NjI3MTkyMzMzMzczNDY1MTQzIj4i4YOk4YOd4YOc4YOY4YOhIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFdhbGxwYXBlciIgbXNnaWQ9IjczNzM0NDc5MjA5Nzc2MjQ3NDUiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg5Phg5Dhg5Dhg6fhg5Thg5zhg53hg6Eg4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDpOGDneGDnOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFdhbGxwYXBlckhpbnRzIiBtc2dpZD0iMzI3ODYwODE2NTk3NzczNjUzOCI+IuGDpOGDneGDnOGDmOGDoSDhg5bhg53hg5vhg5jhg6Eg4YOo4YOU4YOh4YOs4YOd4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0V2FsbHBhcGVySGludHMiIG1zZ2lkPSI4MjM1Nzg0Mzg0MjIzNzMwMDkxIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5vhg5jhg5zhg5jhg6jhg5zhg5Thg5Hhg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOn4YOU4YOc4YOU4YOR4YOQIOGDoeGDmOGDoeGDouGDlOGDm+GDmOGDoSDhg6Thg53hg5zhg5jhg6Eg4YOW4YOd4YOb4YOY4YOhIOGDm+GDmOGDruGDlOGDk+GDleGDmOGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hc3RlckNsZWFyIiBtc2dpZD0iMjMxNTc1MDQyMzEzOTY5NzM5NyI+IuGDoeGDmOGDoeGDouGDlOGDm+GDmOGDoSDhg5Phg5Dhg5Hhg6Dhg6Phg5zhg5Thg5Hhg5Ag4YOl4YOQ4YOg4YOu4YOc4YOj4YOaIOGDnOGDkOGDkuGDo+GDmuGDmOGDoeGDruGDm+GDlOGDlSDhg5vhg5Phg5Lhg53hg5vhg5Dhg6Dhg5Thg53hg5Hhg5Dhg6jhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYXN0ZXJDbGVhciIgbXNnaWQ9IjM2NjUzODA0OTI2MzM5MTAyMjYiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg6Hhg5jhg6Hhg6Lhg5Thg5vhg5Ag4YOh4YOg4YOj4YOa4YOQ4YOTIOGDkuGDkOGDk+GDkOGDp+GDlOGDnOGDneGDoSDhg6Xhg5Dhg6Dhg67hg5zhg6Phg5og4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOW4YOUIOGDk+GDkCDhg6zhg5Dhg6jhg5Dhg5rhg53hg6Eg4YOn4YOV4YOU4YOa4YOQIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDmCwg4YOZ4YOd4YOc4YOk4YOY4YOS4YOj4YOg4YOQ4YOq4YOY4YOQIOGDk+GDkCDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg6Phg5rhg5gg4YOQ4YOe4YOU4YOR4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0VGltZSIgbXNnaWQ9IjIwMjE2MTQ4Mjk1OTE3NzU2NDYiPiLhg5Phg6Dhg53hg5jhg6Eg4YOT4YOQ4YOn4YOU4YOc4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTg5NjM0MTQzODE1MTE1Mjg4MSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOi4YOQ4YOR4YOa4YOU4YOi4YOY4YOhIOGDoeGDkOGDkOGDl+GDmOGDoSDhg5Phg6Dhg53hg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODU1NzAyNzMwNzM4MDIwIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOh4YOQ4YOQ4YOX4YOY4YOhIOGDk+GDoOGDneGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRUaW1lWm9uZSIgbXNnaWQ9IjI5NDUwNzk4MDEwMTMwNzczNDAiPiLhg5Phg6Dhg53hg5jhg6Eg4YOh4YOQ4YOg4YOi4YOn4YOa4YOY4YOhIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNjc2OTgzNzEyMzE1ODI3NjQ1Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOo4YOU4YOq4YOV4YOQ4YOa4YOd4YOhIOGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg5Phg6Dhg53hg5jhg6Eg4YOh4YOQ4YOg4YOi4YOn4YOU4YOa4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDQ5OTk0MzQ4ODQzNjYzMzM5OCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOY4YOhIOGDk+GDoOGDneGDmOGDoSDhg6Hhg5Dhg6Dhg6Lhg6fhg5Thg5rhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjb3VudE1hbmFnZXJTZXJ2aWNlIiBtc2dpZD0iNDgyOTI2MjM0OTY5MTM4Njk4NiI+IuGDmOGDm+GDneGDpeGDm+GDlOGDk+GDlOGDlyDhg6Dhg53hg5Lhg53hg6Dhg6ogQWNjb3VudE1hbmFnZXJTZXJ2aWNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjb3VudE1hbmFnZXJTZXJ2aWNlIiBtc2dpZD0iMTk0ODQ1NTU1MjMzMzYxNTk1NCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOS4YOQ4YOc4YOQ4YOu4YOd4YOg4YOq4YOY4YOU4YOa4YOd4YOhIOGDluGDkOGDoOGDlOGDkeGDmCBBY2NvdW50QXV0aGVudGljYXRvcnMt4YOW4YOULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0QWNjb3VudHMiIG1zZ2lkPSIxMDg2Nzk1NDY3NzYwMTIyMTE0Ij4i4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOQ4YOW4YOUIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDlOGDkeGDmOGDoSDhg5vhg53hg6vhg5jhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRBY2NvdW50cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjc0MTQ5NjUzNDc2OTY2MDAyNyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDm+GDmOGDmOGDpuGDneGDoSDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOq4YOc4YOd4YOR4YOY4YOa4YOYIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDlOGDkeGDmOGDoSDhg6Hhg5jhg5AuIOGDlOGDoSDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOb4YOd4YOY4YOq4YOQ4YOV4YOT4YOU4YOhIOGDnOGDlOGDkeGDmOGDoeGDm+GDmOGDlOGDoCDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg6EsIOGDoOGDneGDm+GDlOGDmuGDmOGDqiDhg5fhg6Xhg5Xhg5Thg5wg4YOb4YOY4YOU4YOgIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDo+GDmuGDmCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Thg5Hhg5jhg5cg4YOo4YOU4YOY4YOl4YOb4YOc4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ0ODMxNjgyMjQ1MTgwNzM4MiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDm+GDmOGDmOGDpuGDneGDoSDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOq4YOc4YOd4YOR4YOY4YOa4YOYIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDlOGDkeGDmOGDoSDhg6Hhg5jhg5AuIOGDlOGDoSDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOb4YOd4YOY4YOq4YOQ4YOV4YOT4YOU4YOhIOGDnOGDlOGDkeGDmOGDoeGDm+GDmOGDlOGDoCDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg6EsIOGDoOGDneGDm+GDlOGDmuGDmOGDqiDhg5fhg6Xhg5Xhg5Thg5wg4YOb4YOY4YOU4YOgIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDo+GDmuGDmCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Thg5Hhg5jhg5cg4YOo4YOU4YOY4YOl4YOb4YOc4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXV0aGVudGljYXRlQWNjb3VudHMiIG1zZ2lkPSI1MjY1OTA4NDgxMTcyNzM2OTMzIj4i4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOU4YOR4YOY4YOhIOGDqOGDlOGDpeGDm+GDnOGDkCDhg5Phg5Ag4YOe4YOQ4YOg4YOd4YOa4YOU4YOR4YOY4YOhIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2F1dGhlbnRpY2F0ZUFjY291bnRzIiBtc2dpZD0iNTQ3MjEyNDI5NjkwODk3NzI2MCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOU4YOR4YOY4YOhIOGDm+GDlOGDnOGDlOGDr+GDlOGDoOGDmOGDoSDhg5Dhg5Xhg6Lhg53hg6Dhg5jhg5bhg5Dhg6rhg5jhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOr4YOa4YOU4YOR4YOa4YOd4YOR4YOU4YOR4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDkC4g4YOb4YOQ4YOXIOGDqOGDneGDoOGDmOGDoSDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOl4YOb4YOc4YOQIOGDk+GDkCDhg5vhg5Dhg5fhg5fhg5Xhg5jhg6Eg4YOe4YOQ4YOg4YOd4YOa4YOU4YOR4YOY4YOhIOGDm+GDmOGDpuGDlOGDkeGDkCDhg5Phg5Ag4YOT4YOQ4YOn4YOU4YOc4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI0OTgzMTI2MzA0NzU3MTc3MzA1Ij4i4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOU4YOR4YOY4YOhIOGDk+GDkOGDm+GDkOGDouGDlOGDkeGDkCDhg5Dhg5wg4YOs4YOQ4YOo4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI4Njk4Mjk1NjI1NDg4MjkyNTA2Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg5jhg6Hhg5Thg5fhg5gg4YOd4YOe4YOU4YOg4YOQ4YOq4YOY4YOU4YOR4YOY4YOhIOGDkuGDkOGDnOGDruGDneGDoOGDquGDmOGDlOGDmuGDlOGDkeGDkCwg4YOg4YOd4YOS4YOd4YOg4YOY4YOq4YOQ4YOQIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDlOGDkeGDmOGDoSDhg5Phg5Dhg5vhg5Dhg6Lhg5Thg5Hhg5Ag4YOT4YOQIOGDrOGDkOGDqOGDmuGDkCwg4YOQ4YOh4YOU4YOV4YOUIOGDm+GDkOGDl+GDmCDhg57hg5Dhg6Dhg53hg5rhg5Thg5Hhg5jhg6Eg4YOs4YOQ4YOo4YOa4YOQ4YOqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXNlQ3JlZGVudGlhbHMiIG1zZ2lkPSIyMzU0ODEzOTYxNjM4Nzc2NDIiPiLhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Dhg5bhg5Qg4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOU4YOR4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZUNyZWRlbnRpYWxzIiBtc2dpZD0iNzk4NDIyNzE0NzQwMzM0NjQyMiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDm+GDneGDmOGDl+GDruGDneGDleGDneGDoSDhg5Dhg5Xhg6Lhg53hg6Dhg5jhg5bhg5Dhg6rhg5jhg5jhg6Eg4YOh4YOQ4YOY4YOT4YOU4YOc4YOi4YOY4YOk4YOY4YOZ4YOQ4YOq4YOY4YOdIOGDnOGDmOGDqOGDnOGDlOGDkeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjQ5NTEwMjc5NjQzNDg5NzQ3NzMiPiLhg6Xhg6Hhg5Thg5rhg5jhg6Eg4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOY4YOhIOGDnOGDkOGDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjgzMTg5NjQ0MjQ2NzU5NjA5NzUiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDpeGDoeGDlOGDmuGDmOGDoSDhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOu4YOU4YORIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDmOGDoSDhg5zhg5Dhg67hg5Xhg5AsIOGDm+GDkOGDki4g4YOg4YOd4YOb4YOU4YOa4YOYIOGDpeGDoeGDlOGDmuGDlOGDkeGDmCDhg5Dhg6Dhg6Hhg5Thg5Hhg53hg5Hhg6Eg4YOT4YOQIOGDoOGDneGDm+GDlOGDmuGDmOGDkCDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg6Phg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jcmVhdGVOZXR3b3JrU29ja2V0cyIgbXNnaWQ9IjgwMTg3NTgxMzY0MDQzMjM2NTgiPiLhg6Xhg6Hhg5Thg5rhg5bhg5Qg4YOh4YOg4YOj4YOa4YOYIOGDrOGDleGDk+GDneGDm+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iMzQwMzA2MjE4Nzc3OTcyNDE4NSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOo4YOU4YOl4YOb4YOc4YOQ4YOhIOGDpeGDoeGDlOGDmuGDo+GDoOGDmCDhg5Hhg6Phg5Phg5Thg5Thg5Hhg5gg4YOT4YOQIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDneGDoSDhg5vhg53hg6Dhg5Lhg5Thg5Hhg6Phg5rhg5gg4YOl4YOh4YOU4YOa4YOY4YOhIOGDnuGDoOGDneGDouGDneGDmeGDneGDmuGDlOGDkeGDmC4g4YOR4YOg4YOQ4YOj4YOW4YOU4YOg4YOYIOGDk+GDkCDhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOU4YOR4YOYIOGDo+GDluGDoOGDo+GDnOGDleGDlOGDmuGDp+GDneGDpOGDoSDhg5jhg5zhg6Lhg5Thg6Dhg5zhg5Thg6Lhg6jhg5gg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDkuGDkOGDkuGDluGDkOGDleGDnOGDmOGDoSDhg6Hhg5Dhg6jhg6Phg5Dhg5rhg5Thg5Hhg5Dhg6EsIOGDkOGDm+GDkuGDleGDkOGDoOGDkOGDkyDhg5Thg6Eg4YOj4YOk4YOa4YOU4YOR4YOQIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDmOGDoSDhg5Lhg5Dhg6Hhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5Dhg5Mg4YOh4YOQ4YOt4YOY4YOg4YOdIOGDkOGDoOGDkOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MDU2NjAxNTk2NzU3NTE4OTYiPiLhg6Xhg6Hhg5Thg5rhg5jhg6Eg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOY4YOh4YOQIOGDk+GDkCDhg6Lhg6Dhg5Dhg6Thg5jhg5nhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIC8g4YOo4YOU4YOs4YOn4YOV4YOU4YOi4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVBcG5TZXR0aW5ncyIgbXNnaWQ9IjUzMzM3OTg4ODY0MTI3MTQxOTMiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDpeGDoeGDlOGDmuGDmOGDoSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQLCDhg5vhg5fhg5Thg5rhg5gg4YOl4YOh4YOU4YOa4YOY4YOhIOGDouGDoOGDkOGDpOGDmOGDmeGDmOGDoSDhg6jhg5Thg6zhg6fhg5Xhg5Thg6Lhg5Ag4YOT4YOQIOGDmOGDnOGDoeGDnuGDlOGDpeGDouGDmOGDoOGDlOGDkeGDkCwg4YOb4YOQ4YOS4YOQ4YOa4YOY4YOX4YOQ4YOTLCDhg5zhg5Thg5Hhg5jhg6Hhg5vhg5jhg5Thg6Dhg5ggQVBOLeGDmOGDoSDhg57hg53hg6Dhg6Lhg5jhg6Hhg5Ag4YOT4YOQIOGDnuGDoOGDneGDpeGDoeGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AuIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5Thg5Hhg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQ4YOXIOGDpeGDoeGDlOGDmuGDmOGDoSDhg57hg5Dhg5nhg5Thg6Lhg5Thg5Hhg5jhg6Eg4YOb4YOd4YOc4YOY4YOi4YOd4YOg4YOY4YOc4YOS4YOYLCDhg5Lhg5Dhg5Phg5Dhg5vhg5jhg6Hhg5Dhg5vhg5Dhg6Dhg5fhg5Thg5Hhg5Ag4YOQ4YOcIOGDqOGDlOGDquGDleGDmuGDkCDhg5fhg6Xhg5Xhg5Thg5zhg5fhg5Xhg5jhg6Eg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOY4YOhIOGDkuGDkOGDoOGDlOGDqOGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZU5ldHdvcmtTdGF0ZSIgbXNnaWQ9Ijk1ODg4NDI5MTQ1NDMyNzMwOSI+IuGDpeGDoeGDlOGDmuGDmOGDoSDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg6Phg5rhg53hg5Hhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlTmV0d29ya1N0YXRlIiBtc2dpZD0iNjc4OTEyMzkxMjQ3NjQxNjIxNCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDqOGDlOGDquGDleGDkOGDmuGDneGDoSDhg6Xhg6Hhg5Thg5rhg5jhg6Eg4YOZ4YOQ4YOV4YOo4YOY4YOg4YOY4YOhIOGDm+GDk+GDkuGDneGDm+GDkOGDoOGDlOGDneGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVRldGhlclN0YXRlIiBtc2dpZD0iNTk1MjU4NDk2NDM3MzAxNzk2MCI+IuGDm+GDmOGDlOGDoOGDl+GDlOGDkeGDo+GDmuGDmCDhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlVGV0aGVyU3RhdGUiIG1zZ2lkPSIxNTI0NDQxMzQ0NDEyMzE5NzgwIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOo4YOU4YOq4YOV4YOQ4YOa4YOd4YOhIOGDm+GDneGDkeGDmOGDmuGDo+GDoOGDmCDhg6Xhg6Hhg5Thg5rhg5jhg6Eg4YOZ4YOQ4YOV4YOo4YOY4YOg4YOY4YOhIOGDm+GDk+GDkuGDneGDm+GDkOGDoOGDlOGDneGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZUJhY2tncm91bmREYXRhU2V0dGluZyIgbXNnaWQ9IjE0MDA2NjYwMTI2NzE2NDg3NDEiPiLhg6Thg53hg5zhg6Phg6Dhg5gg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDoSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQmFja2dyb3VuZERhdGFTZXR0aW5nIiBtc2dpZD0iNTM0NzcyOTU3ODQ2ODc0NDM3OSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDqOGDlOGDquGDleGDkOGDmuGDneGDoSDhg6Phg5nhg5Dhg5zhg5Ag4YOk4YOd4YOc4YOY4YOhIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg6Eg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2lmaVN0YXRlIiBtc2dpZD0iNTIwMjAxMjk0OTI0NzA0MDAxMSI+IldpLUZpIOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDmOGDoSDhg5zhg5Dhg67hg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MDAyNzk4MDc3Mzg3ODAzNzI2Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCBXaS1GaSDhg6Xhg6Hhg5Thg5rhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOu4YOU4YORIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDmOGDoSDhg5zhg5Dhg67hg5Xhg5AsIOGDm+GDkOGDkuGDkOGDmuGDmOGDl+GDkOGDkywgV2ktRmkg4YOp4YOQ4YOg4YOX4YOj4YOa4YOY4YOQIOGDl+GDoyDhg5Dhg6Dhg5AsIOGDkOGDoeGDlOGDleGDlCDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg6Phg5rhg5ggV2ktRmkg4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOY4YOhIOGDoeGDkOGDruGDlOGDmuGDmOGDoSDhg5zhg5Dhg67hg5Xhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI2NTUwNjQxMTg4NzQ5MTI4MDM1Ij4iV2ktRmkt4YOY4YOh4YOX4YOQ4YOcIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDkCDhg5Dhg5wg4YOZ4YOQ4YOV4YOo4YOY4YOg4YOY4YOhIOGDqOGDlOGDrOGDp+GDleGDlOGDouGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlTdGF0ZSIgbXNnaWQ9IjcxMzc5NTAyOTczODYxMjc1MzMiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIFdpLUZpIOGDrOGDleGDk+GDneGDm+GDmOGDoSDhg6zhg5Thg6Dhg6Lhg5jhg5rhg5Thg5Hhg5fhg5Dhg5wg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOQIOGDk+GDkCDhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5jhg6Eg4YOS4YOQ4YOs4YOn4YOV4YOU4YOi4YOQIOGDk+GDkCDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5jhg6Eg4YOZ4YOd4YOc4YOk4YOY4YOS4YOj4YOg4YOQ4YOq4YOY4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkCBXaS1GaSDhg6Xhg6Hhg5Thg5rhg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIG1zZ2lkPSIxMzY4MjUzODcxNDgzMjU0Nzg0Ij4i4YOc4YOU4YOR4YOQ4YOg4YOX4YOV4YOQIFdpLUZpIOGDm+GDoOGDkOGDleGDkOGDmuGDm+GDmOGDoeGDkOGDm+GDkOGDoOGDl+GDmOGDkOGDnCDhg5vhg5jhg6bhg5Thg5Hhg5Dhg5bhg5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijc5Njk3NzQwMjEyNTYzMzY1NDgiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg5vhg5jhg5jhg6bhg53hg6EgV2ktRmkg4YOl4YOh4YOU4YOa4YOo4YOYIOGDp+GDleGDlOGDmuGDkCDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Dhg5bhg5Qg4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOY4YOa4YOYIOGDnuGDkOGDmeGDlOGDouGDlOGDkeGDmCDhg6/hg5Lhg6Phg6Thg6Phg6Dhg5gg4YOb4YOY4YOh4YOQ4YOb4YOQ4YOg4YOX4YOU4YOR4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDly4g4YOb4YOd4YOY4YOu4YOb4YOQ4YOg4YOhIOGDm+GDlOGDoiDhg5Thg5zhg5Thg6Dhg5Lhg5jhg5Dhg6EsIOGDleGDmOGDk+GDoOGDlCDhg5Dhg6Dhg5Dhg5vhg6Dhg5Dhg5Xhg5Dhg5rhg5vhg5jhg6Hhg5Dhg5vhg5Dhg6Dhg5fhg5jhg5Dhg5zhg5gg4YOg4YOU4YOf4YOY4YOb4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTE5NDk3MDYwMjUzNDk5MjYiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg5vhg5jhg5jhg6bhg53hg6EgV2ktRmkg4YOl4YOh4YOU4YOa4YOo4YOYIOGDp+GDleGDlOGDmuGDkCDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Dhg5bhg5Qg4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOY4YOa4YOYIOGDnuGDkOGDmeGDlOGDouGDlOGDkeGDmCDhg6/hg5Lhg6Phg6Thg6Phg6Dhg5gg4YOb4YOY4YOh4YOQ4YOb4YOQ4YOg4YOX4YOU4YOR4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDly4g4YOb4YOd4YOY4YOu4YOb4YOQ4YOg4YOhIOGDm+GDlOGDoiDhg5Thg5zhg5Thg6Dhg5Lhg5jhg5Dhg6EsIOGDleGDmOGDk+GDoOGDlCDhg5Dhg6Dhg5Dhg5vhg6Dhg5Dhg5Xhg5Dhg5rhg5vhg5jhg6Hhg5Dhg5vhg5Dhg6Dhg5fhg5jhg5Dhg5zhg5gg4YOg4YOU4YOf4YOY4YOb4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmx1ZXRvb3RoQWRtaW4iIG1zZ2lkPSI2MDA2OTY3MzczOTM1OTI2NjU5Ij4iQmx1ZXRvb3RoLeGDmOGDoSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5bhg5Qg4YOs4YOV4YOT4YOd4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY5MjExNzc0NzE3NDg4ODIxMzciPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDkOGDk+GDkuGDmOGDmuGDneGDkeGDoOGDmOGDleGDmCBCbHVldG9vdGgg4YOi4YOQ4YOR4YOa4YOU4YOi4YOY4YOhIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmOGDoSDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg5Ag4YOT4YOQIOGDk+GDmOGDoeGDouGDkOGDnOGDquGDmOGDo+GDoOGDmCDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Thg5Hhg5jhg6Eg4YOQ4YOm4YOb4YOd4YOp4YOU4YOc4YOQIOGDk+GDkCDhg5Phg5Dhg6zhg6fhg5Xhg5jhg5rhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4OTMxNjgyMTU5MzMxNTQyMTM3Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOQ4YOT4YOS4YOY4YOa4YOd4YOR4YOg4YOY4YOV4YOYIEJsdWV0b290aCDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOn4YOU4YOc4YOU4YOR4YOQIOGDk+GDkCDhg5Phg5jhg6Hhg6Lhg5Dhg5zhg6rhg5jhg6Phg6Dhg5gg4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOU4YOR4YOY4YOhIOGDkOGDpuGDm+GDneGDqeGDlOGDnOGDkCDhg5Phg5Ag4YOT4YOQ4YOs4YOn4YOV4YOY4YOa4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2ltYXhTdGF0ZSIgbXNnaWQ9IjQxOTU5MDcwMTA2MTAyMDU3MDMiPiJXaU1BWC3hg5fhg5Dhg5wg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOQIOGDk+GDkCDhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5jhg6Eg4YOS4YOQ4YOs4YOn4YOV4YOU4YOi4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzV2ltYXhTdGF0ZSIgbXNnaWQ9IjYzNjAxMDI4NzcyNjE5Nzg4ODciPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDkuGDkOGDnOGDoeGDkOGDluGDpuGDleGDoOGDneGDoSwgV2lNQVgg4YOQ4YOg4YOY4YOhIOGDl+GDoyDhg5Dhg6Dhg5Ag4YOp4YOQ4YOg4YOX4YOj4YOa4YOYIOGDk+GDkCDhg5Dhg6Hhg5Thg5Xhg5Qg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOQIOGDnOGDlOGDkeGDmOGDoeGDm+GDmOGDlOGDoOGDmCDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg6Phg5rhg5ggV2lNQVgg4YOl4YOh4YOU4YOa4YOY4YOhIOGDqOGDlOGDoeGDkOGDruGDlOGDkS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVdpbWF4U3RhdGUiIG1zZ2lkPSIyNDA1MDQyMjY3MTMxNDk2NTc5Ij4iV2lNQVgg4YOb4YOT4YOS4YOd4YOb4YOQ4YOg4YOU4YOd4YOR4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMxNTY0NTY1MDQwODQyMDE4MDUiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg5Phg5Dhg6Phg5nhg5Dhg5Xhg6jhg5jhg6Dhg53hg6Eg4YOT4YOQIOGDkuGDkOGDm+GDneGDkOGDlOGDoOGDl+GDneGDoSDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5ggV2lNQVgg4YOl4YOh4YOU4YOa4YOU4YOR4YOY4YOT4YOQ4YOcLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2OTcwMjUwNDMwMDQ5MjM3OTgiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg5Phg5Dhg6Phg5nhg5Dhg5Xhg6jhg5jhg6Dhg53hg6Eg4YOT4YOQIOGDkuGDkOGDm+GDneGDkOGDlOGDoOGDl+GDneGDoSDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5ggV2lNQVgg4YOl4YOh4YOU4YOa4YOU4YOR4YOY4YOT4YOQ4YOcLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmx1ZXRvb3RoIiBtc2dpZD0iNjEyNzc2OTMzNjMzOTI3NjgyOCI+IkJsdWV0b290aCDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Thg5Hhg5fhg5Dhg5wg4YOT4YOQ4YOs4YOn4YOV4YOY4YOa4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzNDgwNzIyMTgxODUyNDM4NjI4Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOc4YOQ4YOu4YOd4YOhIEJsdWV0b290aC3hg5jhg6Eg4YOZ4YOd4YOc4YOk4YOY4YOS4YOj4YOg4YOQ4YOq4YOY4YOQIOGDouGDkOGDkeGDmuGDlOGDouGDluGDlCwg4YOo4YOU4YOl4YOb4YOc4YOQ4YOhIOGDk+GDkCDhg5vhg5jhg5jhg6bhg53hg6Eg4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOYIOGDk+GDkOGDrOGDp+GDleGDmOGDmuGDlOGDkeGDo+GDmiDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Thg5Hhg5fhg5Dhg5wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzIwNzEwNjMyNDQ1MjMxMjczOSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDnOGDkOGDruGDneGDoSBCbHVldG9vdGgt4YOY4YOhIOGDmeGDneGDnOGDpOGDmOGDkuGDo+GDoOGDkOGDquGDmOGDkCDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5bhg5Qg4YOT4YOQIOGDqOGDlOGDpeGDm+GDnOGDkOGDoSDhg5Phg5Ag4YOb4YOY4YOY4YOm4YOd4YOhIOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDmCDhg5Phg5Dhg6zhg6fhg5Xhg5jhg5rhg5Thg5Hhg6Phg5og4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOU4YOR4YOX4YOQ4YOcLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbmZjIiBtc2dpZD0iNDQyMzM1MTI3NDc1Nzg3Njk1MyI+IuGDkOGDruGDmuGDnSDhg5vhg53hg6Xhg5vhg5Thg5Phg5Thg5Hhg5jhg6Eg4YOg4YOQ4YOT4YOY4YOd4YOZ4YOQ4YOV4YOo4YOY4YOg4YOYIChORkMpIOGDm+GDkOGDoOGDl+GDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX25mYyIgbXNnaWQ9IjcxMjA2MTE4MTk0MDE3ODk5MDciPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDkOGDruGDmuGDnSDhg5vhg53hg6Xhg5vhg5Thg5Phg5Thg5Hhg5jhg6Eg4YOg4YOQ4YOT4YOY4YOd4YOZ4YOQ4YOV4YOo4YOY4YOg4YOY4YOhIChORkMpIOGDm+GDlOGDqOGDleGDlOGDneGDkeGDmOGDlyDhg6Lhg5Thg5Lhg5Thg5Hhg5jhg6EsIOGDkeGDkOGDoOGDkOGDl+GDlOGDkeGDmOGDoeGDkCDhg5Phg5Ag4YOs4YOQ4YOb4YOZ4YOY4YOX4YOu4YOV4YOU4YOa4YOU4YOR4YOY4YOhIOGDqOGDlOGDm+GDquGDleGDlOGDmuGDmCDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5jhg6Eg4YOb4YOY4YOb4YOd4YOq4YOV4YOa4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGlzYWJsZUtleWd1YXJkIiBtc2dpZD0iMzU5ODQ5NjMwMTQ4NjQzOTI1OCI+IuGDl+GDpeGDleGDlOGDnOGDmCDhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOR4YOa4YOd4YOZ4YOY4YOhIOGDkuGDkOGDl+GDmOGDqOGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Rpc2FibGVLZXlndWFyZCIgbXNnaWQ9IjYwMzQyMDMwNjUwNzcxMjI5OTIiPiLhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOZ4YOa4YOQ4YOV4YOY4YOQ4YOi4YOj4YOg4YOY4YOhIOGDk+GDkOGDkeGDmuGDneGDmeGDleGDmOGDoeGDkCDhg5Phg5Ag4YOe4YOQ4YOg4YOd4YOa4YOY4YOXIOGDo+GDluGDoOGDo+GDnOGDleGDlOGDmuGDp+GDneGDpOGDmOGDmuGDmCDhg5zhg5Thg5Hhg5jhg6Hhg5vhg5jhg5Thg6Dhg5gg4YOj4YOh4YOQ4YOk4YOg4YOX4YOu4YOd4YOU4YOR4YOY4YOhIOGDpOGDo+GDnOGDpeGDquGDmOGDmOGDoSDhg5Phg5Thg5Dhg6Xhg6Lhg5jhg5Xhg5Dhg6rhg5jhg5AuIOGDm+GDkOGDkuGDkOGDmuGDmOGDl+GDkOGDkywg4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOYIOGDqOGDlOGDm+GDneGDm+GDkOGDleGDkOGDmuGDmCDhg5bhg5Dhg6Dhg5jhg6Eg4YOT4YOg4YOd4YOhIOGDkOGDo+GDpeGDm+GDlOGDkeGDoSDhg5nhg5rhg5Dhg5Xhg5jhg5Dhg6Lhg6Phg6Dhg5jhg6Eg4YOT4YOQ4YOR4YOa4YOd4YOZ4YOV4YOQ4YOhIOGDk+GDkCDhg5nhg5Xhg5rhg5Dhg5Ug4YOQ4YOQ4YOl4YOi4YOY4YOj4YOg4YOU4YOR4YOhIOGDm+GDkOGDoSwg4YOg4YOd4YOS4YOd4YOg4YOqIOGDmeGDmCDhg5bhg5Dhg6Dhg5gg4YOT4YOQ4YOh4YOg4YOj4YOa4YOT4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFN5bmNTZXR0aW5ncyIgbXNnaWQ9IjYyMDE4MTAwMDgyMzA1MDMwNTIiPiLhg6Hhg5jhg5zhg6Xhg6Dhg53hg5zhg5jhg5bhg5Dhg6rhg5jhg5jhg6Eg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOY4YOhIOGDrOGDkOGDmeGDmOGDl+GDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTeW5jU2V0dGluZ3MiIG1zZ2lkPSIyNzA2NzQ1Njc0NTY5Njc4NjQ0Ij4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOs4YOQ4YOY4YOZ4YOY4YOX4YOu4YOd4YOhIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoSDhg6Hhg5jhg5zhg6Xhg6Dhg53hg5zhg5jhg5bhg5Dhg6rhg5jhg5jhg6Eg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYLiDhg5vhg5Dhg5Lhg5Dhg5rhg5jhg5fhg5Dhg5MsIOGDm+GDkOGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOS4YOQ4YOc4YOh4YOQ4YOW4YOm4YOV4YOg4YOd4YOhLCDhg5Dhg6Dhg5jhg6Eg4YOX4YOjIOGDkOGDoOGDkCBQZW9wbGUg4YOQ4YOe4YOYIOGDoeGDmOGDnOGDpeGDoOGDneGDnOGDmOGDluGDlOGDkeGDo+GDmuGDmCDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5fhg5Dhg5wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9IjU0MDg2OTQ4NzU3OTM5NDUzMTQiPiLhg6Hhg5jhg5zhg6Xhg6Dhg53hg5zhg5jhg5bhg5Dhg6rhg5jhg5jhg6Eg4YOp4YOQ4YOg4YOX4YOV4YOQIOGDk+GDkCDhg5Lhg5Dhg5vhg53hg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9Ijg5NTYyNjI1OTEzMDYzNjk4NjgiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg6jhg5Thg6rhg5Xhg5Dhg5rhg53hg6Eg4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOY4YOhIOGDoeGDmOGDnOGDpeGDoOGDneGDnOGDmOGDluGDkOGDquGDmOGDmOGDoSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5guIOGDm+GDkOGDkuGDkOGDmuGDmOGDl+GDkOGDkywg4YOb4YOY4YOh4YOYIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDkCDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOY4YOhIFBlb3BsZSDhg5Dhg57hg5fhg5Dhg5wg4YOh4YOY4YOc4YOl4YOg4YOd4YOc4YOY4YOW4YOQ4YOq4YOY4YOY4YOhIOGDqeGDkOGDoeGDkOGDoOGDl+GDkOGDleGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTeW5jU3RhdHMiIG1zZ2lkPSI3Mzk2NTc3NDUxMzYwMjAyNDQ4Ij4i4YOh4YOY4YOc4YOl4YOg4YOd4YOc4YOY4YOW4YOQ4YOq4YOY4YOY4YOhIOGDoeGDouGDkOGDouGDmOGDoeGDouGDmOGDmeGDlOGDkeGDmOGDoSDhg6zhg5Dhg5nhg5jhg5fhg67hg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1N0YXRzIiBtc2dpZD0iMTUxMDE0Mzc2MTc1NzYwNjE1NiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOY4YOhIOGDoeGDmOGDnOGDpeGDoOGDneGDnOGDmOGDluGDkOGDquGDmOGDmOGDoSDhg6Hhg6Lhg5Dhg6Lhg5jhg6Hhg6Lhg5jhg5nhg5jhg6EsIOGDm+GDkOGDlyDhg6jhg53hg6Dhg5jhg6Eg4YOh4YOY4YOc4YOl4YOg4YOd4YOc4YOY4YOW4YOQ4YOq4YOY4YOY4YOhIOGDm+GDneGDleGDmuGDlOGDnOGDlOGDkeGDmOGDoSDhg5jhg6Hhg6Lhg53hg6Dhg5jhg5jhg6Hhg5Ag4YOT4YOQIOGDoeGDmOGDnOGDpeGDoOGDneGDnOGDmOGDluGDkOGDquGDmOGDmOGDoeGDkOGDoSDhg5Lhg5Dhg5Phg5Dhg6rhg5Thg5vhg6Phg5rhg5gg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDoOGDkOGDneGDk+GDlOGDnOGDneGDkeGDmOGDoSDhg6zhg5Dhg5nhg5jhg5fhg67hg5Xhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdWJzY3JpYmVkRmVlZHNSZWFkIiBtc2dpZD0iNDc1NjYwOTYzNzA1MzM1MzMxOCI+IuGDkuGDkOGDm+GDneGDrOGDlOGDoOGDmOGDmuGDmCDhg5Dhg6Dhg67hg5Thg5Hhg5jhg6Eg4YOs4YOQ4YOZ4YOY4YOX4YOu4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3Vic2NyaWJlZEZlZWRzUmVhZCIgbXNnaWQ9IjU1NTcwNTg5MDc5MDYxNDQ1MDUiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDmOGDoSDhg5vhg53hg57hg53hg5Xhg5Thg5Hhg5Ag4YOR4YOd4YOa4YOd4YOhIOGDoeGDmOGDnOGDpeGDoOGDneGDnOGDmOGDluGDlOGDkeGDo+GDmuGDmCDhg5Dhg6Dhg67hg5Thg5Hhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOu4YOU4YORLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3Vic2NyaWJlZEZlZWRzV3JpdGUiIG1zZ2lkPSI5MDE1MjQ2MzI1NDA4MjA5Mjk2Ij4i4YOS4YOQ4YOb4YOd4YOs4YOU4YOg4YOY4YOa4YOYIOGDkOGDoOGDruGDlOGDkeGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdWJzY3JpYmVkRmVlZHNXcml0ZSIgbXNnaWQ9IjY5Mjg5MzAxODg4MjYwODk0MTMiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDl+GDpeGDleGDlOGDnOGDmCDhg5Dhg5vhg5/hg5Dhg5vhg5jhg5zhg5Phg5Thg5rhg5gg4YOh4YOY4YOc4YOl4YOg4YOd4YOc4YOY4YOW4YOU4YOR4YOj4YOa4YOYIOGDkOGDoOGDruGDlOGDkeGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AuIOGDm+GDkOGDleGDnOGDlCDhg5Dhg57hg5Thg5Hhg5vhg5Ag4YOo4YOU4YOh4YOQ4YOr4YOd4YOQIOGDqOGDlOGDquGDleGDkOGDmuGDneGDnCDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOh4YOY4YOc4YOl4YOg4YOd4YOc4YOY4YOW4YOU4YOR4YOj4YOa4YOYIOGDkOGDoOGDruGDlOGDkeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWREaWN0aW9uYXJ5IiBtc2dpZD0iNDEwNzEwMTUyNTc0NjAzNTcxOCI+IuGDmuGDlOGDpeGDoeGDmOGDmeGDneGDnOGDqOGDmCDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOj4YOa4YOYIOGDouGDlOGDoOGDm+GDmOGDnOGDlOGDkeGDmOGDoSDhg5zhg5Dhg67hg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjY1OTYxNDYwMDMzODkwNDI0MyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOs4YOQ4YOY4YOZ4YOY4YOX4YOu4YOd4YOhIOGDp+GDleGDlOGDmuGDkCDhg6Hhg5jhg6Lhg6fhg5Xhg5AsIOGDoeGDkOGDruGDlOGDmuGDmCDhg5Phg5Ag4YOk4YOg4YOQ4YOW4YOQLCDhg6Dhg53hg5vhg5Thg5rhg5jhg6og4YOo4YOU4YOY4YOr4YOa4YOU4YOR4YOQIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDlOGDmuGDm+GDkCDhg6jhg5Thg5jhg6Lhg5Dhg5zhg5Ag4YOb4YOd4YOb4YOu4YOb4YOQ4YOg4YOU4YOR4YOa4YOY4YOhIOGDmuGDlOGDpeGDoeGDmOGDmeGDneGDnOGDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjIxODMxMTA0MDIzMTQ0NDExMDYiPiLhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOS4YOQ4YOc4YOZ4YOj4YOX4YOV4YOc4YOY4YOaIOGDmuGDlOGDpeGDoeGDmOGDmeGDneGDnOGDqOGDmCDhg6Hhg5jhg6Lhg6fhg5Xhg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjgxODUzODU3MTYyNTUwNjUyOTEiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDkOGDruGDkOGDmuGDmCDhg6Hhg5jhg6Lhg6fhg5Xhg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOQIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg5rhg5Thg6Xhg6Hhg5jhg5nhg53hg5zhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRSZWFkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjgyMzUzNDE1MTU2MDU1NTk2NzciPiLhg5Phg5Dhg6rhg6Phg5og4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOQ4YOW4YOUIOGDoeGDkOGDquGDk+GDlOGDmuGDmCDhg6zhg5Xhg5Phg53hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MjM1MzQxNTE1NjA1NTU5Njc3Ij4i4YOT4YOQ4YOq4YOj4YOaIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDkOGDluGDlCDhg6Hhg5Dhg6rhg5Phg5Thg5rhg5gg4YOs4YOV4YOT4YOd4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNjQyNDczMjkyMzQ4MTMyMDcyIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOb4YOY4YOQ4YOs4YOd4YOT4YOd4YOhIFVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5Dhg6Eg4YOc4YOU4YOR4YOQ4YOg4YOX4YOV4YOQLCDhg6Dhg53hg5vhg5rhg5Thg5Hhg5jhg6og4YOo4YOU4YOb4YOT4YOS4YOd4YObIOGDoeGDruGDleGDkCDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Thg5Hhg5bhg5Thg6og4YOY4YOl4YOc4YOU4YOR4YOQIOGDruGDlOGDmuGDm+GDmOGDoeGDkOGDrOGDleGDk+GDneGDm+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTkxNDQwMjY4NDY4NTg0ODgyOCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AgU0Qg4YOR4YOQ4YOg4YOQ4YOX4YOY4YOhIOGDnOGDlOGDkeGDkOGDoOGDl+GDleGDlOGDkeGDmOGDoSDhg6jhg5Thg5vhg53hg6zhg5vhg5Thg5Hhg5AsIOGDoOGDneGDm+GDmuGDlOGDkeGDmOGDqiDhg6jhg5Thg5vhg5Phg5Lhg53hg5sg4YOh4YOu4YOV4YOQIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDlOGDkeGDluGDlOGDqiDhg5Lhg5Dhg5Xhg6Dhg6rhg5Thg5rhg5Phg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRXcml0ZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI4NDg1OTc5MDYyMjU0NjY2NzQ4Ij4i4YOX4YOl4YOV4YOU4YOc4YOYIFVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOZ4YOd4YOc4YOi4YOU4YOc4YOi4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkCDhg5Dhg5wg4YOs4YOQ4YOo4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg4MDU2OTM2MzAwNTA0NTg3NjMiPiLhg5fhg6Xhg5Xhg5Thg5zhg5ggU0Qg4YOR4YOQ4YOg4YOQ4YOX4YOY4YOhIOGDmeGDneGDnOGDouGDlOGDnOGDouGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5Ag4YOQ4YOcIOGDrOGDkOGDqOGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYxNzU0MDYyOTk0NDU3MTA4ODgiPiLhg6Phg6Thg5rhg5Thg5Hhg5Dhg6Eg4YOQ4YOr4YOa4YOU4YOV4YOhIOGDkOGDnuGDoSwg4YOp4YOQ4YOs4YOU4YOg4YOd4YOhIFVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5Dhg5bhg5QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MzM3NDE3NzkwOTM2NjMyMDkwIj4i4YOj4YOk4YOa4YOU4YOR4YOQ4YOhIOGDkOGDq+GDmuGDlOGDleGDoSDhg5Dhg57hg6EsIOGDqeGDkOGDrOGDlOGDoOGDneGDoSBTRCDhg5Hhg5Dhg6Dhg5Dhg5fhg5bhg5QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTk4MzkxOTk3MDY4NzkwMTUiPiLhg6jhg5jhg5Phg5Ag4YOb4YOU4YOT4YOY4YOQIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg5nhg53hg5zhg6Lhg5Thg5zhg6Lhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQL+GDrOGDkOGDqOGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21lZGlhU3RvcmFnZVdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODE4OTE2MDU5NzY5ODUyOTE4NSI+IuGDkOGDnuGDmuGDmOGDmeGDkOGDquGDmOGDkOGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOo4YOY4YOT4YOQIOGDm+GDlOGDk+GDmOGDkCDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOZ4YOd4YOc4YOi4YOU4YOc4YOi4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZURvY3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzc4MzE4NTk4NDQ4ODQ5ODI5Ij4i4YOT4YOd4YOZ4YOj4YOb4YOU4YOc4YOi4YOU4YOR4YOY4YOhIOGDoeGDkOGDquGDkOGDleGDmOGDoSDhg5vhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VEb2NzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODcwNDMyMzE3NjkxNDEyMTQ4NCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOT4YOd4YOZ4YOj4YOb4YOU4YOc4YOi4YOU4YOR4YOY4YOhIOGDoeGDkOGDquGDkOGDleGDmOGDoSDhg5vhg5Dhg6Dhg5fhg5Xhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRBY2Nlc3NBbGwiIG1zZ2lkPSI4MTUwNjEzODIzOTAwNDYwNTc2Ij4i4YOn4YOV4YOU4YOa4YOQIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg5Lhg5Dhg6Dhg5Qg4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOQ4YOW4YOUIOGDrOGDleGDk+GDneGDm+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZEFjY2Vzc0FsbCIgbXNnaWQ9IjMyMTUyMDgzNTc0MTU4OTEzMjAiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDp+GDleGDlOGDmuGDkCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOS4YOQ4YOg4YOUIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDkOGDoeGDl+GDkOGDnCDhg6zhg5Xhg5Phg53hg5vhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWNoZV9maWxlc3lzdGVtIiBtc2dpZD0iNTY1NjQ4NzI2NDgxOTY2OTgyNCI+IuGDpeGDlOGDqOGDmOGDoSDhg6Thg5Dhg5jhg5rhg6Phg6Ag4YOh4YOY4YOh4YOi4YOU4YOb4YOQ4YOW4YOUIOGDrOGDleGDk+GDneGDm+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhY2hlX2ZpbGVzeXN0ZW0iIG1zZ2lkPSI1NTc4OTY3NjQyMjY1NTUwOTU1Ij4i4YOQ4YOe4YOU4YOR4YOhIOGDkOGDq+GDmuGDlOGDleGDoSDhg6Xhg5Thg6jhg5jhg6Dhg5Thg5Hhg6Phg5rhg5gg4YOh4YOY4YOh4YOi4YOU4YOb4YOj4YOg4YOYIOGDpOGDkOGDmOGDmuGDlOGDkeGDmOGDoSDhg6zhg5Dhg5nhg5jhg5fhg67hg5Xhg5jhg6Hhg5Ag4YOT4YOQIOGDm+GDkOGDl+GDqOGDmCDhg6nhg5Dhg5zhg5Dhg6zhg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOZ4YOU4YOX4YOU4YOR4YOY4YOhIOGDoeGDkOGDqOGDo+GDkOGDmuGDlOGDkeGDkOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VzZV9zaXAiIG1zZ2lkPSI1OTg2OTUyMzYyNzk1ODcwNTAyIj4i4YOY4YOc4YOi4YOU4YOg4YOc4YOU4YOiLeGDluGDkOGDoOGDlOGDkeGDmOGDoSDhg6zhg5Dhg5vhg53hg6zhg6fhg5Thg5Hhg5Av4YOb4YOY4YOm4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXNlX3NpcCIgbXNnaWQ9IjQ3MTc2MzIwMDAwNjI2NzQyOTQiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg5Lhg5Dhg5vhg53hg5jhg6fhg5Thg5zhg53hg6EgU0lQIOGDoeGDlOGDoOGDleGDmOGDoeGDmCDhg5jhg5zhg6Lhg5Thg6Dhg5zhg5Thg6Ig4YOW4YOQ4YOg4YOU4YOR4YOY4YOhIOGDkuGDkOGDnOGDoeGDkOGDruGDneGDoOGDquGDmOGDlOGDmuGDlOGDkeGDmuGDkOGDkyAvIOGDoeGDkOGDnuGDkOGDoeGDo+GDruGDneGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWROZXR3b3JrVXNhZ2VIaXN0b3J5IiBtc2dpZD0iNzg2MjU5MzI4MzYxMTQ5MzIzMiI+IuGDpeGDoeGDlOGDmuGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg6Eg4YOY4YOh4YOi4YOd4YOg4YOY4YOY4YOhIOGDrOGDkOGDmeGDmOGDl+GDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWROZXR3b3JrVXNhZ2VIaXN0b3J5IiBtc2dpZD0iNzY4OTA2MDc0OTgxOTEyNjQ3MiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOZ4YOd4YOc4YOZ4YOg4YOU4YOi4YOj4YOa4YOYIOGDpeGDoeGDlOGDmuGDmOGDoeGDkCDhg5Phg5Ag4YOQ4YOe4YOU4YOR4YOY4YOhIOGDmOGDoeGDouGDneGDoOGDmOGDo+GDmuGDmCDhg6Xhg6Hhg5Thg5rhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOY4YOhIOGDrOGDkOGDmeGDmOGDl+GDruGDleGDkOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZU5ldHdvcmtQb2xpY3kiIG1zZ2lkPSIyNTYyMDUzNTkyMzM5ODU5OTkwIj4i4YOl4YOh4YOU4YOa4YOY4YOhIOGDk+GDlOGDkeGDo+GDmuGDlOGDkeGDmOGDoSDhg5vhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VOZXR3b3JrUG9saWN5IiBtc2dpZD0iNzUzNzU4Njc3MTU1OTM3MDY2OCI+IuGDkOGDnuGDoSDhg6Hhg5Dhg6jhg6Phg5Dhg5rhg5Thg5Hhg5Ag4YOU4YOl4YOc4YOU4YOR4YOQIOGDm+GDkOGDoOGDl+GDneGDoSDhg6Xhg6Hhg5Thg5rhg5jhg6Eg4YOe4YOd4YOa4YOY4YOi4YOY4YOZ4YOQIOGDk+GDkCDhg5Phg5Dhg5Dhg6zhg5Thg6Hhg53hg6Eg4YOs4YOU4YOh4YOU4YOR4YOYIOGDquGDkOGDmuGDmeGDlOGDo+GDmuGDmCDhg5Dhg57hg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlOZXR3b3JrQWNjb3VudGluZyIgbXNnaWQ9IjUwODgyMTczMDkwODg3Mjk2NTAiPiLhg6Xhg6Hhg5Thg5rhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOY4YOhIOGDkOGDpuGDoOGDmOGDquGDruGDleGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb2RpZnlOZXR3b3JrQWNjb3VudGluZyIgbXNnaWQ9IjU0NDM0MTI4NjY3NDYxOTgxMjMiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg6jhg5Thg6rhg5Xhg5Dhg5rhg53hg6Eg4YOl4YOh4YOU4YOa4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDoSDhg5Dhg6bhg6Dhg5jhg6rhg67hg5Xhg5Ag4YOQ4YOe4YOU4YOR4YOX4YOQ4YOcIOGDm+GDmOGDm+GDkOGDoOGDl+GDlOGDkeGDkOGDqOGDmC4g4YOQ4YOgIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDlOGDkeGDkCDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Ug4YOQ4YOe4YOU4YOR4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSIzNjU4NTI3MjE0OTE0OTU5NzQ5Ij4i4YOh4YOd4YOZ4YOU4YOi4YOY4YOhIOGDnOGDmOGDqOGDnOGDlOGDkeGDmOGDoSDhg6jhg5Thg6rhg5Xhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYXJrTmV0d29ya1NvY2tldCIgbXNnaWQ9Ijc2NTU1Njg0MzM2OTYzNTY1NzgiPiLhg6Hhg5Dhg6jhg6Phg5Dhg5rhg5Thg5Hhg5Dhg6Eg4YOQ4YOr4YOa4YOU4YOV4YOhIOGDkOGDnuGDoSDhg6jhg5Thg6rhg5Xhg5Dhg5rhg53hg6Eg4YOb4YOQ4YOg4YOo4YOg4YOj4YOi4YOY4YOW4YOQ4YOq4YOY4YOY4YOhIOGDoeGDneGDmeGDlOGDouGDmOGDoSDhg5zhg5jhg6jhg5zhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05vdGlmaWNhdGlvbnMiIG1zZ2lkPSI3NjczNDE2NDg3ODczNDMyMjY4Ij4i4YOs4YOV4YOT4YOd4YOb4YOQIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDl+GDkOGDnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05vdGlmaWNhdGlvbnMiIG1zZ2lkPSI0NTg0NTc3NDI2ODM0MzEzODciPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDm+GDneGDmOGDq+GDmOGDneGDoSwg4YOS4YOQ4YOb4YOd4YOY4YOZ4YOV4YOa4YOY4YOd4YOhIOGDk+GDkCDhg6zhg5Dhg6jhg5Dhg5rhg53hg6Eg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOYLCDhg5vhg5Dhg5cg4YOo4YOd4YOg4YOY4YOhIOGDoeGDruGDleGDkCDhg5Dhg57hg5Thg5Hhg5jhg6Eg4YOb4YOY4YOU4YOgIOGDkuGDkOGDm+GDneGDpeGDleGDlOGDp+GDnOGDlOGDkeGDo+GDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROb3RpZmljYXRpb25MaXN0ZW5lclNlcnZpY2UiIG1zZ2lkPSI3MDU3NzY0NzQyMjExNjU2NjU0Ij4i4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOY4YOhIOGDm+GDneGDoeGDm+GDlOGDnOGDmOGDoSDhg6Hhg5Thg6Dhg5Xhg5jhg6Hhg5fhg5Dhg5wg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5vdGlmaWNhdGlvbkxpc3RlbmVyU2VydmljZSIgbXNnaWQ9Ijk4NTY5NzkxODU3NjkwMjk4NiI+IuGDm+GDpOGDmuGDneGDkeGDlOGDmuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOY4YOhIOGDm+GDoeGDm+GDlOGDnOGDmuGDmOGDoSDhg6Hhg5Thg6Dhg5Xhg5jhg6Hhg5jhg6Eg4YOW4YOU4YOT4YOQIOGDk+GDneGDnOGDmOGDoSDhg5jhg5zhg6Lhg5Thg6Dhg6Thg5Thg5jhg6Hhg5fhg5Dhg5wg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOQLiDhg5Dhg6Ag4YOj4YOc4YOT4YOQIOGDm+GDneGDruGDk+GDlOGDoSDhg5vhg5jhg6Hhg5gg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOQIOGDqeGDleGDlOGDo+GDlOGDmuGDlOGDkeGDoOGDmOGDleGDmCDhg5Dhg57hg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6Eu4YOkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnZva2VDYXJyaWVyU2V0dXAiIG1zZ2lkPSIzNjk5NjAwODMzOTc1MTE3NDc4Ij4i4YOd4YOe4YOU4YOg4YOQ4YOi4YOd4YOg4YOY4YOhIOGDm+GDmOGDlOGDoCDhg5vhg53hg6zhg53hg5Phg5Thg5Hhg6Phg5rhg5gg4YOZ4YOd4YOk4YOY4YOS4YOj4YOg4YOQ4YOq4YOY4YOY4YOhIOGDkOGDnuGDmOGDoSDhg5Lhg5Dhg5vhg53hg67hg5vhg53hg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnZva2VDYXJyaWVyU2V0dXAiIG1zZ2lkPSI0MTU5NTQ5MTUyNTI5MTExOTIwIj4i4YOh4YOQ4YOo4YOj4YOQ4YOa4YOU4YOR4YOQ4YOhIOGDkOGDq+GDmuGDlOGDleGDoSDhg5vhg6Thg5rhg53hg5Hhg5Thg5rhg6Eg4YOS4YOQ4YOb4YOd4YOY4YOs4YOV4YOY4YOd4YOhIOGDneGDnuGDlOGDoOGDkOGDouGDneGDoOGDmOGDoSDhg5vhg5jhg5Thg6Ag4YOb4YOd4YOs4YOd4YOT4YOU4YOR4YOj4YOa4YOYIOGDmeGDneGDnOGDpOGDmOGDkuGDo+GDoOGDkOGDquGDmOGDmOGDoSDhg5Dhg57hg5guIOGDqeGDleGDlOGDo+GDmuGDlOGDkeGDoOGDmOGDlSDhg5Dhg57hg6Eg4YOU4YOhIOGDrOGDlOGDoeGDmOGDlyDhg5Dhg6Dhg5Dhg6Hhg53hg5Phg5Thg6Eg4YOQ4YOgIOGDo+GDnOGDk+GDkCDhg5Phg5Dhg63hg5jhg6Dhg5Phg5Thg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOZXR3b3JrQ29uZGl0aW9ucyIgbXNnaWQ9IjgyMDYwNzc0NDc4Mzg5MDk1MTYiPiLhg5Lhg5Dhg5zhg67hg53hg6Dhg6rhg5jhg5Thg5rhg5Phg5Thg6Eg4YOl4YOh4YOU4YOa4YOY4YOhIOGDm+GDk+GDkuGDneGDm+GDkOGDoOGDlOGDneGDkeGDmOGDoSDhg5vhg53hg5zhg5jhg6Lhg53hg6Dhg5jhg5zhg5Lhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOZXR3b3JrQ29uZGl0aW9ucyIgbXNnaWQ9IjY4OTkxMDIwNzU4MjUyNzIyMTEiPiLhg6Hhg5Dhg6jhg6Phg5Dhg5rhg5Thg5Hhg5Dhg6Eg4YOQ4YOr4YOa4YOU4YOV4YOhIOGDkOGDnuGDmuGDmOGDmeGDkOGDquGDmOGDlOGDkeGDoSDhg5Lhg5Dhg5zhg5Dhg67hg53hg6Dhg6rhg5jhg5Thg5rhg53hg6Eg4YOl4YOh4YOU4YOa4YOY4YOhIOGDm+GDk+GDkuGDneGDm+GDkOGDoOGDlOGDneGDkeGDmOGDoSDhg5vhg53hg5zhg5jhg6Lhg53hg6Dhg5jhg5zhg5Lhg5guIOGDlOGDoSDhg6Thg6Phg5zhg6Xhg6rhg5jhg5Ag4YOp4YOV4YOU4YOj4YOa4YOU4YOR4YOg4YOY4YOVIOGDkOGDnuGDlOGDkeGDoSDhg5Dhg6Ag4YOt4YOY4YOg4YOT4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9saW1pdFBhc3N3b3JkIiBtc2dpZD0iNDQ5NzQyMDcyODg1NzU4NTc5MSI+IuGDnuGDkOGDoOGDneGDmuGDmOGDoSDhg6zhg5Thg6Hhg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOn4YOU4YOc4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19saW1pdFBhc3N3b3JkIiBtc2dpZD0iMzI1MjExNDIwMzkxOTUxMDM5NCI+IuGDkuGDkOGDkOGDmeGDneGDnOGDouGDoOGDneGDmuGDlOGDlyDhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOY4YOhIOGDnuGDkOGDoOGDneGDmuGDqOGDmCDhg5Phg5Dhg6jhg5Xhg5Thg5Hhg6Phg5rhg5gg4YOh4YOY4YOb4YOR4YOd4YOa4YOd4YOU4YOR4YOYIOGDk+GDkCDhg5vhg5jhg6Hhg5gg4YOh4YOY4YOS4YOg4YOr4YOULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl93YXRjaExvZ2luIiBtc2dpZD0iOTE0MTMwNjQ2OTQyMTk5NTAzIj4i4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg5vhg6rhg5Phg5Thg5rhg53hg5Hhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOZ4YOd4YOc4YOi4YOg4YOd4YOa4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193YXRjaExvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjE1NzI5Mjk0MjE1MDcwMDcyIj4i4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoeGDl+GDleGDmOGDoSDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOQ4YOZ4YOg4YOU4YOk4YOY4YOa4YOYIOGDnuGDkOGDoOGDneGDmuGDlOGDkeGDmOGDoSDhg6Dhg5Dhg53hg5Phg5Thg5zhg53hg5Hhg5jhg6Eg4YOb4YOd4YOc4YOY4YOi4YOd4YOg4YOY4YOc4YOS4YOYLiDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5jhg6Eg4YOT4YOQ4YOR4YOa4YOd4YOZ4YOV4YOQIOGDkOGDnCDhg5vhg5Dhg6Hhg5bhg5Qg4YOQ4YOg4YOh4YOU4YOR4YOj4YOa4YOYIOGDp+GDleGDlOGDmuGDkCDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5jhg6Eg4YOs4YOQ4YOo4YOa4YOQIOGDq+GDkOGDmuGDmOGDkOGDnCDhg5Hhg5Thg5Xhg6Dhg6/hg5Thg6Ag4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOYIOGDnuGDkOGDoOGDneGDmuGDmOGDoSDhg6jhg5Thg6fhg5Xhg5Dhg5zhg5jhg6Eg4YOo4YOU4YOb4YOX4YOu4YOV4YOU4YOV4YOQ4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2F0Y2hMb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MTIzMjMwOTE4NDY3NjEwNzMiPiLhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOY4YOh4YOX4YOV4YOY4YOhIOGDkOGDoOGDkOGDoeGDrOGDneGDoOGDkOGDkyDhg5Dhg5nhg6Dhg5Thg6Thg5jhg5rhg5gg4YOe4YOQ4YOg4YOd4YOa4YOU4YOR4YOY4YOhIOGDoOGDkOGDneGDk+GDlOGDnOGDneGDkeGDmOGDoSDhg5vhg53hg5zhg5jhg6Lhg53hg6Dhg5jhg5zhg5Lhg5guIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5Phg5Dhg5Hhg5rhg53hg5nhg5Xhg5Ag4YOQ4YOcIOGDm+GDkOGDoeGDluGDlCDhg5Dhg6Dhg6Hhg5Thg5Hhg6Phg5rhg5gg4YOn4YOV4YOU4YOa4YOQIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDmOGDoSDhg6zhg5Dhg6jhg5rhg5Ag4YOr4YOQ4YOa4YOY4YOQ4YOcIOGDkeGDlOGDleGDoOGDr+GDlOGDoCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5gg4YOe4YOQ4YOg4YOd4YOa4YOY4YOhIOGDqOGDlOGDp+GDleGDkOGDnOGDmOGDoSDhg6jhg5Thg5vhg5fhg67hg5Xhg5Thg5Xhg5Dhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3Jlc2V0UGFzc3dvcmQiIG1zZ2lkPSIyNjIwMDc3MTkxMjQyNjg4OTU1Ij4i4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg57hg5Dhg6Dhg53hg5rhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19yZXNldFBhc3N3b3JkIiBtc2dpZD0iNjA1OTYzOTYyMzAxOTA0NDU4Ij4i4YOo4YOU4YOq4YOV4YOQ4YOa4YOU4YOXIOGDlOGDmeGDoOGDkOGDnOGDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Eg4YOe4YOQ4YOg4YOd4YOa4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9mb3JjZUxvY2siIG1zZ2lkPSIyMjc0MDg1Mzg0NzA0MjQ4NDMxIj4i4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDk+GDkOGDkeGDmuGDneGDmeGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZm9yY2VMb2NrIiBtc2dpZD0iMTE0MTc5NzU4ODQwMzgyNzEzOCI+IuGDkuGDkOGDkOGDmeGDneGDnOGDouGDoOGDneGDmuGDlOGDlywg4YOg4YOd4YOS4YOd4YOgIOGDk+GDkCDhg6Dhg53hg5Phg5jhg6Eg4YOT4YOQ4YOY4YOR4YOa4YOd4YOZ4YOd4YOhIOGDlOGDmeGDoOGDkOGDnOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfd2lwZURhdGEiIG1zZ2lkPSIzOTEwNTQ1NDQ2NzU4NjM5NzEzIj4i4YOn4YOV4YOU4YOa4YOQIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDmOGDoSDhg6zhg5Dhg6jhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dpcGVEYXRhIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzA2MTg0MDk2MDY3NzU2ODc2Ij4i4YOi4YOQ4YOR4YOa4YOU4YOi4YOY4YOhIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmOGDoSDhg5Lhg5Dhg6Phg6Thg6Dhg5fhg67hg5jhg5rhg5Thg5Hhg5rhg5Dhg5Mg4YOs4YOQ4YOo4YOa4YOQLCDhg6Xhg5Dhg6Dhg67hg5zhg6Phg5rhg5gg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDkOGDpuGDk+GDkuGDlOGDnOGDmOGDlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2lwZURhdGEiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MDk2ODk1NjA0NTc0MTg4MzkxIj4i4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOY4YOhIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmOGDoSDhg5Lhg5Dhg6Phg6Thg6Dhg5fhg67hg5jhg5rhg5Thg5Hhg5rhg5Dhg5Mg4YOs4YOQ4YOo4YOa4YOQLCDhg6Xhg5Dhg6Dhg67hg5zhg6Phg5rhg5gg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDkOGDpuGDk+GDkuGDlOGDnOGDmOGDlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9zZXRHbG9iYWxQcm94eSIgbXNnaWQ9IjI3ODQ4MjgyOTM3NDc3OTE0NDYiPiLhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5jhg6Eg4YOS4YOa4YOd4YOR4YOQ4YOa4YOj4YOg4YOYIOGDnuGDoOGDneGDpeGDoeGDmOGDoSDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3NldEdsb2JhbFByb3h5IiBtc2dpZD0iNjM4NzQ5NzQ2NjY2MDE1NDkzMSI+IuGDk+GDkOGDkOGDp+GDlOGDnOGDlOGDlyDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Ag4YOS4YOa4YOd4YOR4YOQ4YOa4YOj4YOgIOGDnuGDoOGDneGDpeGDoeGDmOGDoSDhg6Hhg5Thg6Dhg5Xhg5Thg6Dhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOh4YOQ4YOn4YOU4YOc4YOU4YOR4YOa4YOQ4YOTLCDhg6Dhg53hg5Phg5Thg6Hhg5Dhg6og4YOT4YOU4YOR4YOj4YOa4YOU4YOR4YOQIOGDkuGDkOGDkOGDpeGDouGDmOGDo+GDoOGDlOGDkeGDo+GDmuGDmOGDkC4g4YOb4YOu4YOd4YOa4YOd4YOTIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDmOGDoSDhg57hg5jhg6Dhg5Xhg5Thg5rhg5gg4YOQ4YOT4YOb4YOY4YOc4YOYIOGDkOGDp+GDlOGDnOGDlOGDkeGDoSDhg5Thg6Thg5Thg6Xhg6Lhg6Phg6Ag4YOS4YOa4YOd4YOR4YOQ4YOa4YOj4YOgIOGDnuGDoOGDneGDpeGDoeGDmCDhg6Hhg5Thg6Dhg5Xhg5Thg6Dhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2V4cGlyZVBhc3N3b3JkIiBtc2dpZD0iODg1Mjc5MTUxODQ3MjU0MDU2Ij4i4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDnuGDkOGDoOGDneGDmuGDmOGDoSDhg5Xhg5Dhg5Phg5jhg6Eg4YOT4YOQ4YOn4YOU4YOc4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19leHBpcmVQYXNzd29yZCIgbXNnaWQ9IjE3Mjk3MjUyMjYzMTQ2OTE1OTEiPiLhg5Lhg5Dhg5Dhg5nhg53hg5zhg6Lhg6Dhg53hg5rhg5Thg5csIOGDl+GDoyDhg6Dhg5Dhg5vhg5Phg5Thg5zhg5Dhg5Mg4YOu4YOo4YOY4YOg4YOQ4YOTIOGDo+GDnOGDk+GDkCDhg6jhg5Thg5jhg6rhg5Xhg5Dhg5rhg53hg6Eg4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDk+GDkOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg57hg5Dhg6Dhg53hg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2VuY3J5cHRlZFN0b3JhZ2UiIG1zZ2lkPSI4OTAxMzI2MTk5OTA5MTMyOTE1Ij4i4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOY4YOhIOGDk+GDkOGDqOGDmOGDpOGDoOGDleGDmOGDoSDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2VuY3J5cHRlZFN0b3JhZ2UiIG1zZ2lkPSIyNjM3NzMyMTE1MzI1MzE2OTkyIj4i4YOh4YOQ4YOt4YOY4YOg4YOd4YOQIOGDqOGDlOGDnOGDkOGDruGDo+GDmuGDmCDhg5Dhg57hg5jhg6Eg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDk+GDkOGDqOGDmOGDpOGDoOGDleGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZGlzYWJsZUNhbWVyYSIgbXNnaWQ9IjYzOTUzMDEwMjMxNTIyOTc4MjYiPiLhg5nhg5Dhg5vhg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOX4YOY4YOo4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19kaXNhYmxlQ2FtZXJhIiBtc2dpZD0iMjMwNjM0OTA0MjgzNDc1NDU5NyI+IuGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDmOGDoSDhg5nhg5Dhg5vhg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOY4YOhIOGDkOGDpuGDmeGDleGDlOGDl+GDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIyNjYzMjkxMDQ1NDI2Mzg4MDIiPiLhg5Phg5Dhg5Hhg5rhg53hg5nhg5Xhg5jhg6Eg4YOk4YOj4YOc4YOl4YOq4YOY4YOU4YOR4YOY4YOhIOGDkuGDkOGDl+GDmOGDqOGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIzNDY3MDgyMjcyMTg2NTM0NjE0Ij4i4YOT4YOQ4YOR4YOa4YOd4YOZ4YOV4YOY4YOh4YOQ4YOhIOGDluGDneGDkuGDmOGDlOGDoOGDl+GDmCDhg6Thg6Phg5zhg6Xhg6rhg5jhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOY4YOhIOGDl+GDkOGDleGDmOGDk+GDkOGDnCDhg5Dhg6rhg5jhg5rhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBob25lVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI4OTAxMDk4MzM2NjU4NzEwMzU5Ij4i4YOh4YOQ4YOu4YOa4YOYIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iODY5OTIzNjUwNTI3MTM2NjE1Ij4i4YOb4YOd4YOR4YOY4YOa4YOj4YOg4YOYIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg5NzU0NDY1NDI0Mjg3NDU0MyI+IuGDoeGDkOGDm+GDoeGDkOGDruGDo+GDoOGDmCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjExMDM2MDE0MzMzODIxNTgxNTUiPiLhg6Hhg5Dhg5vhg6Hhg5Dhg67hg6Phg6Dhg5jhg6Eg4YOk4YOQ4YOl4YOh4YOYIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTczNTE3NzE0NDk0ODMyOTM3MCI+IuGDoeGDkOGDruGDmuGDmOGDoSDhg6Thg5Dhg6Xhg6Hhg5giPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2MDM4Nzg2NzQ0NzcyMDczOTQiPiLhg57hg5Thg5jhg6/hg5Thg6Dhg5giPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxNjUwODI0Mjc1MTc3OTMxNjM3Ij4i4YOh4YOu4YOV4YOQIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iOTE5MjUxNDgwNjk3NTg5ODk2MSI+IuGDm+GDneGDoOGDkuGDlOGDkeGDo+GDmuGDmCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImVtYWlsQWRkcmVzc1R5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iODA3Mzk5NDM1Mjk1NjEyOTEyNyI+IuGDoeGDkOGDruGDmuGDmCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjcwODQyMzczNTY2MDI2MjU2MDQiPiLhg6Hhg5Dhg5vhg6Hhg5Dhg67hg6Phg6Dhg5giPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxMTEyMDQ0NDEwNjU5MDExMDIzIj4i4YOh4YOu4YOV4YOQIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjM3NDkxMzk1Mjg3MDExMDYxOCI+IuGDm+GDneGDoOGDkuGDlOGDkeGDo+GDmuGDmCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBvc3RhbEFkZHJlc3NUeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9IjY4ODAyNTc2MjY3NDAwNDcyODYiPiLhg6Hhg5Dhg67hg5rhg5giPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI1NjI5MTUzOTU2MDQ1MTA5MjUxIj4i4YOh4YOQ4YOb4YOh4YOQ4YOu4YOj4YOg4YOYIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNDk2NjYwNDI2NDUwMDM0MzQ2OSI+IuGDoeGDruGDleGDkCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjQ5MzI2ODI4NDc1OTUyOTkzNjkiPiLhg5vhg53hg6Dhg5Lhg5Thg5Hhg6Phg5rhg5giPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJpbUFkZHJlc3NUeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9IjE3Mzg1ODUxOTQ2MDE0NzY2OTQiPiLhg6Hhg5Dhg67hg5rhg5giPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxMzU5NjQ0NTY1NjQ3MzgzNzA4Ij4i4YOh4YOQ4YOb4YOh4YOQ4YOu4YOj4YOg4YOYIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg2ODU0OTQwMTA1MzYxNTY3NyI+IuGDoeGDruGDleGDkCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxNDUxMTg5NDQ2Mzk4Njk4MDkiPiLhg5vhg53hg6Dhg5Lhg5Thg5Hhg6Phg5rhg5giPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmdhbml6YXRpb25UeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc1NDYzMzU2MTIxODkxMTU2MTUiPiLhg6Hhg5Dhg5vhg6Hhg5Dhg67hg6Phg6Dhg5giPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0Mzc4MDc0MTI5MDQ5NTIwMzczIj4i4YOh4YOu4YOV4YOQIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzQ1NTA0NzQ2ODU4Mzk2NTEwNCI+IuGDm+GDneGDoOGDkuGDlOGDkeGDo+GDmuGDmCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImltUHJvdG9jb2xzIj4KKyAgICA8aXRlbSBtc2dpZD0iODU5NTI2MTM2MzUxODQ1OTU2NSI+IkFJTSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjczOTA0NzM2MjgyNzU0OTA3MDAiPiJXaW5kb3dzIExpdmUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3ODgyODc3MTM0OTMxNDU4MjE3Ij4iWWFob28iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI1MDM1Mzc2MzEzMjAwNTg1MjQyIj4iU2t5cGUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3NTMyMzYzMTc4NDU5NDQ0OTQzIj4iUVEiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzNzEzNDQxMDM0Mjk5NjYwNzQ5Ij4iR29vZ2xlIFRhbGsiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNTA2ODU3MzEyNzE4NjMwODIzIj4iSUNRIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTY0ODc5NzkwMzc4NTI3OTM1MyI+IkphYmJlciI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlQ3VzdG9tIiBtc2dpZD0iMTY0NDczODA1OTA1MzM1NTgyMCI+IuGDm+GDneGDoOGDkuGDlOGDkeGDo+GDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUhvbWUiIG1zZ2lkPSIyNTcwOTIzNDYzMDMzOTg1ODg3Ij4i4YOh4YOQ4YOu4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlTW9iaWxlIiBtc2dpZD0iNjUwMTQ2MzU1Nzc1NDc1MTAzNyI+IuGDm+GDneGDkeGDmOGDmuGDo+GDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVdvcmsiIG1zZ2lkPSI4ODYzOTM5NjY3MDU5OTExNjMzIj4i4YOh4YOQ4YOb4YOh4YOQ4YOu4YOj4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlRmF4V29yayIgbXNnaWQ9IjM1MTc3OTIxNjAwMDg4OTA5MTIiPiLhg6Hhg5Dhg5vhg6Hhg5Dhg67hg6Phg6Dhg5jhg6Eg4YOk4YOQ4YOl4YOh4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlRmF4SG9tZSIgbXNnaWQ9IjIwNjcyNjU5NzIzMjI5NzE0NjciPiLhg6Hhg5Dhg67hg5rhg5jhg6Eg4YOk4YOQ4YOl4YOh4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlUGFnZXIiIG1zZ2lkPSI3NTgyMzU5OTU1Mzk0OTIxNzMyIj4i4YOe4YOU4YOY4YOv4YOU4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlT3RoZXIiIG1zZ2lkPSIxNTQ0NDI1ODQ3ODY4NzY1OTkwIj4i4YOh4YOu4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlQ2FsbGJhY2siIG1zZ2lkPSIyNzEyMTc1MjAzMDY1Njc4MjA2Ij4i4YOS4YOQ4YOT4YOb4YOd4YOh4YOQ4YOg4YOU4YOZ4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlQ2FyIiBtc2dpZD0iODczODM2MDY4OTYxNjcxNjk4MiI+IuGDm+GDkOGDnOGDpeGDkOGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNvbXBhbnlNYWluIiBtc2dpZD0iNTQwNDM0MzU2NDYxNDc4OTE2Ij4i4YOZ4YOd4YOb4YOe4YOQ4YOc4YOY4YOY4YOhIOGDq+GDmOGDoC4g4YOc4YOd4YOb4YOU4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlSXNkbiIgbXNnaWQ9IjgwMjI0NTMxOTMxNzEzNzAzMzciPiJJU0ROIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlTWFpbiIgbXNnaWQ9IjY3NjYxMzcwMTA2MjgzMjY5MTYiPiLhg5vhg5fhg5Dhg5Xhg5Dhg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVPdGhlckZheCIgbXNnaWQ9Ijg1ODc2NTcxNDUwNzI0NDY1NjUiPiLhg6Hhg67hg5Xhg5Ag4YOk4YOQ4YOl4YOh4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlUmFkaW8iIG1zZ2lkPSI0MDkzNzM4MDc5OTA4NjY3NTEzIj4i4YOg4YOQ4YOT4YOY4YOdIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlVGVsZXgiIG1zZ2lkPSIzMzY3ODc5OTUyNDc2MjUwNTEyIj4iVGVsZXgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVUdHlUZGQiIG1zZ2lkPSI4NjA2NTE0Mzc4NTg1MDAwMDQ0Ij4iVFRZIFRERCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVdvcmtNb2JpbGUiIG1zZ2lkPSIxMzExNDI2OTg5MTg0MDY1NzA5Ij4i4YOh4YOQ4YOb4YOh4YOQ4YOu4YOj4YOg4YOY4YOhIOGDm+GDneGDkeGDmOGDmuGDo+GDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVdvcmtQYWdlciIgbXNnaWQ9IjY0OTkzODczMTIzMTE1NzA1NiI+IuGDoeGDkOGDm+GDo+GDqOGDkOGDnSDhg57hg5Thg5jhg6/hg5Thg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVBc3Npc3RhbnQiIG1zZ2lkPSI1NTk2NzcyNjM2MTI4NTYyODg0Ij4i4YOT4YOQ4YOb4YOu4YOb4YOQ4YOg4YOUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlTW1zIiBtc2dpZD0iNzI1NDQ5MjI3NTUwMjc2ODk5MiI+Ik1NUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZUN1c3RvbSIgbXNnaWQ9Ijc4Mzc1ODYxOTg0NTgwNzM0MDQiPiLhg5vhg53hg6Dhg5Lhg5Thg5Hhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVCaXJ0aGRheSIgbXNnaWQ9IjI4MTMzNzk4NDQyMTEzOTA3NDAiPiLhg5Phg5Dhg5Hhg5Dhg5Phg5Thg5Hhg5jhg6Eg4YOT4YOm4YOUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXZlbnRUeXBlQW5uaXZlcnNhcnkiIG1zZ2lkPSIzODc2Nzc5NzQ0NTE4Mjg0MDAwIj4i4YOY4YOj4YOR4YOY4YOa4YOUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXZlbnRUeXBlT3RoZXIiIG1zZ2lkPSI3Mzg4MTc4OTM5MDEwMTQzMDc3Ij4i4YOh4YOu4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlQ3VzdG9tIiBtc2dpZD0iODUyNTk2MDI1NzgwNDIxMzg0NiI+IuGDm+GDneGDoOGDkuGDlOGDkeGDo+GDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZUhvbWUiIG1zZ2lkPSI0NDkyMjcyMzYxNDA0MzM5MTkiPiLhg6Hhg5Dhg67hg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVXb3JrIiBtc2dpZD0iMzU0ODA1ODA1OTYwMTE0OTk3MyI+IuGDoeGDkOGDm+GDoeGDkOGDruGDo+GDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZU90aGVyIiBtc2dpZD0iMjkyMzAwODY5NTI3MjYzOTU0OSI+IuGDoeGDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZU1vYmlsZSIgbXNnaWQ9IjExOTkxOTAwNTMyMTE2NjIwNSI+IuGDm+GDneGDkeGDmOGDmuGDo+GDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVDdXN0b20iIG1zZ2lkPSI4OTAzMjA2OTAzMDYwNDc5OTAyIj4i4YOb4YOd4YOg4YOS4YOU4YOR4YOj4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZUhvbWUiIG1zZ2lkPSI4MTY1NzU2OTc3MTg0NDgzMDk3Ij4i4YOh4YOQ4YOu4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZVdvcmsiIG1zZ2lkPSI1MjY4MTcyNzcyMzg3Njk0NDk1Ij4i4YOh4YOQ4YOb4YOh4YOQ4YOu4YOj4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZU90aGVyIiBtc2dpZD0iMjcyNjExMTk2NjYyMzU4NDM0MSI+IuGDoeGDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZUN1c3RvbSIgbXNnaWQ9IjIwNzQwMjg3NTU1Mjc4MjYwNDYiPiLhg5vhg53hg6Dhg5Lhg5Thg5Hhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVR5cGVIb21lIiBtc2dpZD0iNjI0MTE4MTAzMjk1NDI2Mzg5MiI+IuGDoeGDkOGDruGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZVdvcmsiIG1zZ2lkPSIxMzcxNDg5MjkwMjQyNDMzMDkwIj4i4YOh4YOQ4YOb4YOh4YOQ4YOu4YOj4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlT3RoZXIiIG1zZ2lkPSI1Mzc3MDA3NDk1NzM1OTE1NDc4Ij4i4YOh4YOu4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbEN1c3RvbSIgbXNnaWQ9IjY5MTk0NTM4MzY2MTg3NDk5OTIiPiLhg5vhg53hg6Dhg5Lhg5Thg5Hhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sQWltIiBtc2dpZD0iNzA1MDM2MDYxMjM2ODM4MzQxNyI+IkFJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xNc24iIG1zZ2lkPSIxNDQ1NTY1NDU0MjA3Njk0NDIiPiJXaW5kb3dzIExpdmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sWWFob28iIG1zZ2lkPSI4MjcxNDM5NDA4NDY5MDIxMjczIj4iWWFob28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sU2t5cGUiIG1zZ2lkPSI5MDE5Mjk2NzQ0NjIyODMyOTUxIj4iU2t5cGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sUXEiIG1zZ2lkPSI4ODg3NDg0Mzc5NDk0MTExODg0Ij4iUVEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sR29vZ2xlVGFsayIgbXNnaWQ9IjQ5MzkwMjMyMTE0MDI3NzMwNCI+IkhhbmdvdXRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbEljcSIgbXNnaWQ9IjE1NzQ4NzA0MzM2MDY1MTczMTUiPiJJQ1EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sSmFiYmVyIiBtc2dpZD0iMjI3OTkxNzYzMDg3NTc3MTcyMiI+IkphYmJlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xOZXRNZWV0aW5nIiBtc2dpZD0iODI4NzYyNTY1NTk4NjgyNzk3MSI+Ik5ldG1lZXRpbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdUeXBlV29yayIgbXNnaWQ9IjI5MjY4ODcwNTA1MzYzODcyIj4i4YOh4YOQ4YOb4YOh4YOQ4YOu4YOj4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnVHlwZU90aGVyIiBtc2dpZD0iMzk1MTc4MTEzMTU3MDEyNDA4MiI+IuGDoeGDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ1R5cGVDdXN0b20iIG1zZ2lkPSIyMjU1MjM0MTUzNzIwODgzMjIiPiLhg5vhg53hg6Dhg5Lhg5Thg5Hhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVDdXN0b20iIG1zZ2lkPSIzNTQyNDAzNjc5ODI3Mjk3MzAwIj4i4YOb4YOd4YOg4YOS4YOU4YOR4YOj4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlQXNzaXN0YW50IiBtc2dpZD0iNjI3NDMzNDgyNTE5NTM3OTA3NiI+IuGDkOGDoeGDmOGDoeGDouGDlOGDnOGDouGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUJyb3RoZXIiIG1zZ2lkPSI4NzU3OTEzNTA2Nzg0MDY3NzEzIj4i4YOr4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlQ2hpbGQiIG1zZ2lkPSIxODkwNzQ2Mjc3Mjc2ODgxNjI2Ij4i4YOo4YOV4YOY4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlRG9tZXN0aWNQYXJ0bmVyIiBtc2dpZD0iNjkwNDgwNzExMjEyMTEyMjEzMyI+IuGDoeGDkOGDneGDr+GDkOGDruGDnSDhg57hg5Dhg6Dhg6Lhg5zhg5jhg53hg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVGYXRoZXIiIG1zZ2lkPSI1MjI4MDM0Njg3MDgyMDUwNzI1Ij4i4YOb4YOQ4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlRnJpZW5kIiBtc2dpZD0iNzMxMzEwNjc2MjQ4MzM5MTI2MiI+IuGDm+GDlOGDkuGDneGDkeGDkOGDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZU1hbmFnZXIiIG1zZ2lkPSI2MzY1Njc3ODYxNjEwMTM3ODk1Ij4i4YOb4YOU4YOc4YOU4YOv4YOU4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlTW90aGVyIiBtc2dpZD0iNDU3ODU3MTM1Mjk2Mjc1ODMwNCI+IuGDk+GDlOGDk+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVBhcmVudCIgbXNnaWQ9IjQ3NTU2MzU1Njc1NjI5MjUyMjYiPiLhg5vhg6jhg53hg5Hhg5Thg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVQYXJ0bmVyIiBtc2dpZD0iNzI2NjQ5MDI4NTEyMDI2Mjc4MSI+IuGDnuGDkOGDoOGDouGDnOGDmOGDneGDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVJlZmVycmVkQnkiIG1zZ2lkPSIxMDE1NzMwNTk4NDQxMzU1MjQiPiLhg6Dhg5Thg5nhg53hg5vhg5Thg5zhg5Phg5Dhg6Lhg53hg6Dhg5g6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUmVsYXRpdmUiIG1zZ2lkPSIxNzk5ODE5OTMwMDg1NjEwMjcxIj4i4YOc4YOQ4YOX4YOU4YOh4YOQ4YOV4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlU2lzdGVyIiBtc2dpZD0iMTczNTk4MzU1NDQ3OTA3NjQ4MSI+IuGDk+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVNwb3VzZSIgbXNnaWQ9IjM5NDEzNjkzOTQyODY5ODExNyI+IuGDm+GDlOGDo+GDpuGDmuGDlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlQ3VzdG9tIiBtc2dpZD0iMjQ3MzU4MDU5MzExMTU5MDk0NSI+IuGDm+GDneGDoOGDkuGDlOGDkeGDo+GDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlSG9tZSIgbXNnaWQ9IjYwOTM1OTgxODEwNjkzNTkyOTUiPiLhg6Hhg5Dhg67hg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZVdvcmsiIG1zZ2lkPSI2OTIwNzI1NzMwNzk3MDk5MDQ3Ij4i4YOh4YOQ4YOb4YOh4YOQ4YOu4YOj4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVPdGhlciIgbXNnaWQ9IjQ0MDg0MzYxNjI5NTAxMTk4NDkiPiLhg6Hhg67hg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLhg5Dhg5nhg6Dhg5jhg6Thg5Thg5cgUElOIOGDmeGDneGDk+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IuGDk+GDkOGDkeGDlOGDreGDk+GDlOGDlyBQVUsg4YOZ4YOd4YOT4YOYIOGDk+GDkCDhg5Dhg67hg5Dhg5rhg5ggUElOIOGDmeGDneGDk+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IlBVSyDhg5nhg53hg5Phg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+IuGDkOGDruGDkOGDmuGDmCBQSU4g4YOZ4YOd4YOT4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPiLhg6jhg5Thg5Thg67hg5Thg5cgIjxmb250IHNpemU9IjE3Ij4iLeGDoSDhg57hg5Dhg6Dhg53hg5rhg5jhg6EiPC9mb250PiIg4YOT4YOQ4YOh4YOQ4YOR4YOU4YOt4YOT4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4i4YOS4YOQ4YOc4YOh4YOQ4YOR4YOa4YOd4YOZ4YOQ4YOTIOGDkOGDmeGDoOGDmOGDpOGDlOGDlyDhg57hg5Dhg6Dhg53hg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLhg5Lhg5Dhg5zhg6Hhg5Dhg5Hhg5rhg53hg5nhg5Dhg5Mg4YOQ4YOZ4YOg4YOY4YOk4YOU4YOXIFBJTiDhg5nhg53hg5Phg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5ggUElOIOGDmeGDneGDk+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4i4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOY4YOh4YOQ4YOX4YOV4YOY4YOhIOGDk+GDkOGDkOGDreGDmOGDoOGDlOGDlyDhg5vhg5Thg5zhg5jhg6Phg6Eg4YOT4YOQIOGDqOGDlOGDm+GDk+GDlOGDkiAwLeGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWVyZ2VuY3lfY2FsbF9kaWFsb2dfbnVtYmVyX2Zvcl9kaXNwbGF5IiBtc2dpZD0iNjk2MTkyMTAzMTk1MDkwOTcwIj4i4YOS4YOQ4YOT4YOQ4YOj4YOT4YOU4YOR4YOU4YOa4YOYIOGDk+GDkOGDruGDm+GDkOGDoOGDlOGDkeGDmOGDoSDhg5zhg53hg5vhg6Dhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2NhcnJpZXJfZGVmYXVsdCIgbXNnaWQ9Ijg5NjM4MzkyNDI1NjU2NTMxOTIiPiLhg6Hhg5Thg6Dhg5Xhg5jhg6Hhg5gg4YOQ4YOgIOGDkOGDoOGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NjcmVlbl9sb2NrZWQiIG1zZ2lkPSI3Mjg4NDQzMDc0ODA2ODMyOTA0Ij4i4YOU4YOZ4YOg4YOQ4YOc4YOYIOGDk+GDkOGDkeGDmuGDneGDmeGDmOGDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZW5hYmxlZCIgbXNnaWQ9IjQ2MTU0MDUxNjE0MTI2MDQ5Ij4i4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOY4YOh4YOX4YOV4YOY4YOhIOGDkOGDnCDhg5Lhg5Dhg5Phg5Dhg6Phg5Phg5Thg5Hhg5Thg5rhg5gg4YOW4YOQ4YOg4YOY4YOh4YOX4YOV4YOY4YOhIOGDk+GDkOGDkOGDreGDmOGDoOGDlOGDlyDhg5vhg5Thg5zhg5jhg6Phg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iNjg2MjYwMDI4Nzk3MTU4MzY0Ij4i4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOY4YOh4YOX4YOV4YOY4YOhIOGDk+GDkOGDkOGDreGDmOGDoOGDlOGDlyDhg5vhg5Thg5zhg5jhg6Phg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9Ijc0Nzg3MDMyNTQ5NjQ4MTAzMDIiPiLhg5Lhg5Dhg5zhg6Hhg5Dhg5Hhg5rhg53hg5nhg5Dhg5Mg4YOT4YOQ4YOu4YOQ4YOi4YOU4YOXIOGDnOGDmOGDm+GDo+GDqOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZW1lcmdlbmN5X2NhbGwiIG1zZ2lkPSI1MzQ3NjMzNzg0NDAxMjg1MjI1Ij4i4YOS4YOQ4YOT4YOQ4YOj4YOT4YOU4YOR4YOU4YOa4YOYIOGDluGDkOGDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcmV0dXJuX3RvX2NhbGwiIG1zZ2lkPSI1MjQ0MjU5Nzg1NTAwMDQwMDIxIj4i4YOW4YOQ4YOg4YOW4YOUIOGDk+GDkOGDkeGDoOGDo+GDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGF0dGVybl9jb3JyZWN0IiBtc2dpZD0iOTAzOTAwODY1MDM2MjI2MTIzNyI+IuGDoeGDrOGDneGDoOGDmOGDkCEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BhdHRlcm5fd3JvbmciIG1zZ2lkPSI0MzE3OTU1MDE0OTQ4MTA4Nzk0Ij4i4YOZ4YOY4YOT4YOU4YOVIOGDoeGDquGDkOGDk+GDlOGDlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGFzc3dvcmRfd3JvbmciIG1zZ2lkPSI1NzM3ODE1MzkzMjUzMTY1MzAxIj4i4YOZ4YOY4YOT4YOU4YOVIOGDoeGDquGDkOGDk+GDlOGDlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLhg6Hhg5Dhg67hg5jhg6Eg4YOQ4YOb4YOd4YOq4YOc4YOd4YOR4YOY4YOXIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg5vhg6rhg5Phg5Thg5rhg53hg5Hhg5Dhg5sg4YOT4YOQ4YOo4YOV4YOU4YOR4YOj4YOaIOGDoOGDkOGDneGDk+GDlOGDnOGDneGDkeGDkOGDoSDhg5Lhg5Dhg5Phg5Dhg5Dhg63hg5Dhg6Dhg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BsdWdnZWRfaW4iIG1zZ2lkPSI4MDU3NzYyODI4MzU1NTcyMzE1Ij4i4YOT4YOQ4YOb4YOj4YOu4YOi4YOV4YOQLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9jaGFyZ2VkIiBtc2dpZD0iMzIxNjM1NzQ1Njg0MDYwNjI0Ij4i4YOT4YOQ4YOb4YOj4YOu4YOi4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9iYXR0ZXJ5X3Nob3J0IiBtc2dpZD0iNDQ3NzI2NDg0OTM4Njg1MDI2NiI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2xvd19iYXR0ZXJ5IiBtc2dpZD0iMTQ4Mjg3Mzk4MTkxOTI0OTc0MCI+IuGDqOGDlOGDkOGDlOGDoOGDl+GDlOGDlyDhg5Phg5Dhg5vhg6Lhg5Thg5zhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNTA5OTQzOTI3NzgxOTIxNTM5OSI+IlNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5gg4YOQ4YOgIOGDkOGDoOGDmOGDoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUxNjU5MTk2MDk1NzkxNDc0Ij4i4YOi4YOQ4YOR4YOa4YOU4YOi4YOo4YOYIOGDkOGDoCDhg5Phg5Thg5Xhg6EgU0lNIOGDkeGDkOGDoOGDkOGDl+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg2OTIwNTg1Njk1MTY5MDc4Ij4i4YOQ4YOgIOGDkOGDoOGDmOGDoSBTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOYIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUzNzI3ODcxMzgwMjMyNzI2MTUiPiLhg6nhg5Dhg5Phg5Thg5cgU0lNIOGDkeGDkOGDoOGDkOGDl+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iMzUyNjU3MzA5OTAxOTMxOTQ3MiI+IlNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5gg4YOQ4YOgIOGDkOGDoOGDmOGDoSDhg5Dhg5wg4YOQ4YOgIOGDmOGDmeGDmOGDl+GDruGDlOGDkeGDkC4g4YOp4YOQ4YOT4YOU4YOXIFNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI1MDk2MTQ5NjY1MTM4OTE2MTg0Ij4i4YOQ4YOg4YOQ4YOb4YOd4YOu4YOb4YOQ4YOg4YOU4YOR4YOQ4YOT4YOYIFNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjkxMDkwNDY0MzQzMzE1MTM3MSI+IuGDl+GDpeGDleGDlOGDnOGDmCBTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOYIOGDkuGDkOGDm+GDo+GDk+GDm+GDlOGDkeGDmOGDlyDhg5Lhg5Dhg5vhg53hg6Dhg5fhg6Phg5rhg5gg4YOY4YOn4YOdLlxuIOGDk+GDkOGDo+GDmeGDkOGDleGDqOGDmOGDoOGDk+GDmOGDlyDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOj4YOZ4YOQ4YOR4YOU4YOa4YOdIOGDoeGDlOGDoOGDleGDmOGDoeGDmOGDoSDhg57hg6Dhg53hg5Xhg5Dhg5jhg5Phg5Thg6Dhg6Eg4YOh4YOu4YOV4YOQIFNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5jhg6Hhg5fhg5Xhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIwMTU5NDkwNTE1Mjc0Njg4NiI+IuGDrOGDmOGDnOGDkCDhg6nhg5Dhg5zhg5Dhg6zhg5Thg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjA4OTI5NzY1MDQ4MTI5MjM2MyI+IuGDqOGDlOGDm+GDk+GDlOGDkuGDmCDhg6nhg5Dhg5zhg5Dhg6zhg5Thg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTkwODg3ODY3ODAxMjgwMDEiPiLhg57hg5Dhg6Phg5bhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTg4ODQyMjkzODM1MTAxOTQyNiI+IuGDk+GDkOGDmeGDleGDoOGDmOGDoSDhg6bhg5jhg5rhg5Dhg5nhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDU2MjMxODM3ODc2Njk4NzYwMSI+IuGDqOGDlOGDrOGDp+GDleGDlOGDouGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtZXJnZW5jeV9jYWxsc19vbmx5IiBtc2dpZD0iNjczMzk3ODMwNDM4NjM2NTQwNyI+IuGDm+GDruGDneGDmuGDneGDkyDhg5Lhg5Dhg5Phg5Dhg6Phg5Phg5Thg5Hhg5Thg5rhg5gg4YOT4YOQ4YOu4YOb4YOQ4YOg4YOU4YOR4YOY4YOhIOGDluGDkOGDoOGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjE0MzM4OTIyNDk4NjAyODUwMSI+IuGDpeGDoeGDlOGDmuGDmCDhg6nhg5Dhg5nhg5Thg6Lhg5jhg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV9wdWtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI3NDQxNzk3MzM5OTc2MjMwIj4iU0lNIOGDkeGDkOGDoOGDkOGDl+GDmCDhg5Dhg6Dhg5jhg6EgUFVLLeGDmOGDlyDhg5Phg5Dhg5Hhg5rhg53hg5nhg5jhg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI4MTI3OTE2MjU1MjQ1MTgxMDYzIj4i4YOY4YOu4YOY4YOa4YOU4YOXIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg6Hhg5Dhg67hg5Thg5rhg5vhg6vhg6bhg5Xhg5Dhg5zhg5Thg5rhg50g4YOQ4YOcIOGDk+GDkOGDo+GDmeGDkOGDleGDqOGDmOGDoOGDk+GDmOGDlyDhg5nhg5rhg5jhg5Thg5zhg6Lhg5Thg5Hhg5jhg6Eg4YOb4YOd4YOb4YOh4YOQ4YOu4YOj4YOg4YOU4YOR4YOQ4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iODA2NjY2MDEyOTIwNjAwMTAzOSI+IlNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5gg4YOT4YOQ4YOR4YOa4YOd4YOZ4YOY4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjU5NTMyMzIxNDA1Mjg4MTI2NCI+IlNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQ4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI2NDgxNjIzODMwMzQ0MTA3MjIyIj4i4YOX4YOl4YOV4YOU4YOcIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+LeGDr+GDlOGDoCDhg5Phg5Dhg67hg5Dhg6Lhg5Thg5cg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOY4YOhIOGDnOGDmOGDm+GDo+GDqOGDmC4gXG5cbuGDoeGDquGDkOGDk+GDlOGDlyDhg67hg5Thg5rhg5Dhg67hg5rhg5AgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOb4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iMjcyNTk3MzI4NjIzOTM0NDU1NSI+IuGDl+GDpeGDleGDlOGDnCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOT4YOQ4YOR4YOU4YOt4YOT4YOU4YOXIOGDl+GDpeGDleGDlOGDnOGDmCDhg57hg5Dhg6Dhg53hg5rhg5ggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4YOv4YOU4YOgLiBcblxu4YOu4YOU4YOa4YOQ4YOu4YOa4YOQIOGDoeGDquGDkOGDk+GDlOGDlyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg5vhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNjIxNjY3MjcwNjU0NTY5Njk1NSI+IuGDl+GDpeGDleGDlOGDnCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPi3hg6/hg5Thg6Ag4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDqOGDlOGDmOGDp+GDleGDkOGDnOGDlOGDlyBQSU4g4YOZ4YOd4YOT4YOYLiBcblxu4YOh4YOq4YOQ4YOT4YOU4YOXIOGDruGDlOGDmuGDkOGDruGDmuGDkCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg5vhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iOTE5MTYxMTk4NDYyNTQ2MDgyMCI+IuGDl+GDpeGDleGDlOGDnCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOT4YOQ4YOu4YOQ4YOi4YOU4YOXIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg5zhg5jhg5vhg6Phg6jhg5ggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4t4YOv4YOU4YOgLiDhg5nhg5jhg5Phg5Thg5UgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOg4YOj4YOb4YOQ4YOi4YOU4YOR4YOU4YOa4YOYIOGDquGDk+GDmOGDoSDhg6jhg5Thg5vhg5Phg5Thg5Ig4YOT4YOQ4YOS4YOt4YOY4YOg4YOT4YOU4YOR4YOQ4YOXIOGDl+GDpeGDleGDlOGDnOGDmCDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIEdvb2dsZS3hg6jhg5gg4YOo4YOU4YOh4YOV4YOa4YOY4YOXLlxuXG4g4YOS4YOX4YOu4YOd4YOV4YOXLCDhg67hg5Thg5rhg5Dhg67hg5rhg5Ag4YOh4YOq4YOQ4YOT4YOd4YOXIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDm+GDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfZ2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjU5MDIyNzU1OTc2Mzc2Mjc1MSI+IuGDl+GDpeGDleGDlOGDnCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOT4YOQ4YOu4YOQ4YOi4YOU4YOXIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg5zhg5jhg5vhg6Phg6jhg5ggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4t4YOv4YOU4YOgLiDhg5nhg5jhg5Phg5Thg5UgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOg4YOj4YOb4YOQ4YOi4YOU4YOR4YOU4YOa4YOYIOGDquGDk+GDmOGDoSDhg6jhg5Thg5vhg5Phg5Thg5Ig4YOT4YOQ4YOS4YOt4YOY4YOg4YOT4YOU4YOR4YOQ4YOXIOGDl+GDpeGDleGDlOGDnOGDmCDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIEdvb2dsZS3hg6jhg5gg4YOo4YOU4YOh4YOV4YOa4YOY4YOXLlxuXG4g4YOS4YOX4YOu4YOd4YOV4YOXLCDhg67hg5Thg5rhg5Dhg67hg5rhg5Ag4YOh4YOq4YOQ4YOT4YOd4YOXIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDm+GDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjEyODEwNjM5OTc0NTc1NTYwNCI+IuGDl+GDpeGDleGDlOGDnCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOh4YOq4YOQ4YOT4YOU4YOXIOGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5AgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4t4YOv4YOU4YOgLiDhg5nhg5jhg5Phg5Thg5UgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOg4YOj4YOb4YOQ4YOi4YOU4YOR4YOU4YOa4YOYIOGDquGDk+GDmOGDoSDhg6jhg5Thg5vhg5Phg5Thg5Ig4YOi4YOQ4YOR4YOa4YOU4YOi4YOW4YOUIOGDk+GDkOGDp+GDlOGDnOGDk+GDlOGDkeGDkCDhg6Hhg5Dhg6zhg6fhg5jhg6Hhg5gsIOGDpeGDkOGDoOGDruGDnOGDo+GDmuGDmCDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5gg4YOT4YOQIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg6fhg5Xhg5Thg5rhg5Ag4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOYIOGDk+GDkOGDmOGDmeGDkOGDoOGDkuGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2MDM1NjUxNDIxNTY4MjY1NjUiPiLhg5fhg6Xhg5Xhg5Thg5wg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDoeGDquGDkOGDk+GDlOGDlyDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOGDr+GDlOGDoC4g4YOZ4YOY4YOT4YOU4YOVIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDoOGDo+GDm+GDkOGDouGDlOGDkeGDlOGDmuGDmCDhg6rhg5Phg5jhg6Eg4YOo4YOU4YOb4YOT4YOU4YOSIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDluGDlCDhg5Phg5Dhg6fhg5Thg5zhg5Phg5Thg5Hhg5Ag4YOh4YOQ4YOs4YOn4YOY4YOh4YOYLCDhg6Xhg5Dhg6Dhg67hg5zhg6Phg5rhg5gg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYIOGDk+GDkCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOn4YOV4YOU4YOa4YOQIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDmCDhg5Phg5Dhg5jhg5nhg5Dhg6Dhg5Lhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjgwODczNTE2NDkzOTM0MzY1Ij4i4YOX4YOl4YOV4YOU4YOcIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPi3hg6/hg5Thg6Ag4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDoeGDquGDkOGDk+GDlOGDlyDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQLiDhg5Dhg5vhg5jhg6Lhg53hg5sg4YOi4YOQ4YOR4YOa4YOU4YOi4YOW4YOUIOGDk+GDkOGDk+GDkuGDlOGDkeGDkCDhg6Hhg5Dhg6zhg6fhg5jhg6Hhg5gsIOGDpeGDkOGDoOGDruGDnOGDo+GDmuGDmCDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMwMjU1MDQ3MjE3NjQ5MjIyNDYiPiLhg5fhg6Xhg5Xhg5Thg5wg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDoeGDquGDkOGDk+GDlOGDlyDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhg6/hg5Thg6AuIOGDkOGDruGDmuGDkCDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5bhg5Qg4YOT4YOQ4YOn4YOU4YOc4YOT4YOU4YOR4YOQIOGDoeGDkOGDrOGDp+GDmOGDoeGDmCwg4YOl4YOQ4YOg4YOu4YOc4YOj4YOa4YOYIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MjUxNDgwMzQzMzk0Mzg5NjY1Ij4i4YOZ4YOY4YOT4YOU4YOVIOGDoeGDquGDkOGDk+GDlOGDlyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOb4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSIyNjI2OTk5NDQ5NjEwNjk1OTMwIj4i4YOT4YOQ4YOS4YOQ4YOV4YOY4YOs4YOn4YOT4YOQ4YOXIOGDnOGDmOGDm+GDo+GDqOGDmD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9mb3Jnb3RfcGF0dGVybiIgbXNnaWQ9IjI1ODg1MjE1MDExNjYwMzI3NDciPiLhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5jhg5cg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSIyNzUxMzY4NjA1Mjg3Mjg4ODA4Ij4i4YOc4YOQ4YOu4YOQ4YOi4YOYIOGDnOGDmOGDm+GDo+GDqOGDmOGDoSDhg6vhg5Dhg5rhg5jhg5Dhg5wg4YOR4YOU4YOV4YOg4YOYIOGDm+GDquGDk+GDlOGDmuGDneGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5MzE4MTYyNTYxMDA3MDc3ODQiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOS4YOQ4YOY4YOQ4YOg4YOU4YOXIOGDkOGDleGDouGDneGDoOGDmOGDluGDkOGDquGDmOGDkCDhg5fhg6Xhg5Xhg5Thg5zhg5ggR29vZ2xlICDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5jhg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9Ijg4NDY4ODE0MjQxMDY0ODQ0NDciPiLhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOh4YOQ4YOu4YOU4YOa4YOYICjhg5Thg5rhg6Thg53hg6Hhg6Lhg5ApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjU5NTgwMjgzODM5NTQ3Mzg1MjgiPiLhg57hg5Dhg6Dhg53hg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNzEzMDg5MzY5NDc5NTc4NjMwMCI+IuGDqOGDlOGDoeGDleGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSIxMzY0MDUxNDczMzQ3NDg1OTA4Ij4i4YOb4YOd4YOb4YOu4YOb4YOQ4YOg4YOU4YOR4YOa4YOY4YOhIOGDkOGDoOGDkOGDoeGDrOGDneGDoOGDmCDhg6Hhg5Dhg67hg5Thg5rhg5gg4YOQ4YOcIOGDnuGDkOGDoOGDneGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2FjY291bnRfcmVjb3ZlcnlfaGludCIgbXNnaWQ9IjE2OTY5MjQ3NjM2OTAzNzkwNzMiPiLhg5Phg5Dhg5Lhg5Dhg5Xhg5jhg6zhg6fhg5Phg5Dhg5cg4YOb4YOd4YOb4YOu4YOb4YOQ4YOg4YOU4YOR4YOa4YOY4YOhIOGDoeGDkOGDruGDlOGDmuGDmCDhg5Phg5Ag4YOe4YOQ4YOg4YOd4YOa4YOYP1xu4YOU4YOs4YOV4YOY4YOU4YOXIOGDkeGDm+GDo+GDmuGDoSAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSI3MTE0NjI3MzUxMjg2OTMzODY3Ij4i4YOo4YOU4YOb4YOd4YOs4YOb4YOU4YOR4YOQLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl91bmxvY2tfbGFiZWwiIG1zZ2lkPSI3Mzc0NDA0ODMyMjA2NjcwNTQiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NvdW5kX29uX2xhYmVsIiBtc2dpZD0iOTA2ODg3NzU3NjUxMzQyNTk3MCI+IuGDruGDm+GDlOGDkeGDmOGDoSDhg6nhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NvdW5kX29mZl9sYWJlbCIgbXNnaWQ9Ijk5NjgyMjgyNTE1NDMxOTAyNiI+IuGDruGDm+GDmOGDoSDhg5Lhg5Dhg5vhg53hg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2FjY2Vzc19wYXR0ZXJuX3N0YXJ0IiBtc2dpZD0iMzk0MTA0NTUwMjkzMzE0Mjg0NyI+IuGDnOGDmOGDm+GDo+GDqOGDmOGDoSDhg6jhg5Thg6Xhg5vhg5zhg5Ag4YOT4YOQ4YOs4YOn4YOU4YOR4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9jbGVhcmVkIiBtc2dpZD0iNTU4MzQ3OTcyMTAwMTYzOTU3OSI+IuGDnOGDmOGDm+GDo+GDqOGDmCDhg6zhg5Dhg5jhg6jhg5Dhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2FjY2Vzc19wYXR0ZXJuX2NlbGxfYWRkZWQiIG1zZ2lkPSI2NzU2MDMxMjA4MzU5MjkyNDg3Ij4i4YOj4YOv4YOg4YOU4YOT4YOYIOGDk+GDkOGDlOGDm+GDkOGDouGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2FjY2Vzc19wYXR0ZXJuX2RldGVjdGVkIiBtc2dpZD0iNDk4ODczMDg5NTU1NDA1NzA1OCI+IuGDnOGDmOGDm+GDo+GDqOGDmOGDoSDhg6jhg5Thg6Xhg5vhg5zhg5Ag4YOT4YOQ4YOh4YOg4YOj4YOa4YOU4YOR4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiIlMSRzLiDhg5Xhg5jhg6/hg5Thg6Lhg5ggJTIkZCBvZiAlMyRkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiLhg5Xhg5jhg6/hg5Thg6Lhg5jhg6Eg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZW1wdHlfc2xvdCIgbXNnaWQ9IjEyODE1MDU3MDMzMDc5MzA3NTciPiLhg6rhg5Dhg6Dhg5jhg5Thg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2V4cGFuZGVkIiBtc2dpZD0iMjI3ODEwNjAyMjMxMTE3MDI5OSI+IuGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg6Hhg5jhg5Xhg6Dhg6rhg5Qg4YOS4YOQ4YOo4YOa4YOY4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfY29sbGFwc2VkIiBtc2dpZD0iNjM2Njk5MjA2NjkzNjA3NjM5NiI+IuGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg6Hhg5jhg5Xhg6Dhg6rhg5Qg4YOp4YOQ4YOZ4YOU4YOq4YOY4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0IiBtc2dpZD0iNjUyNzEzMTAzOTc0MTgwODI0MCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOGDleGDmOGDr+GDlOGDouGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VzZXJfc2VsZWN0b3IiIG1zZ2lkPSIxMjI2Nzk4MzcwOTEzNjk4ODk2Ij4i4YOb4YOd4YOb4YOu4YOb4YOQ4YOg4YOU4YOR4YOa4YOY4YOhIOGDkOGDm+GDneGDm+GDoOGDqeGDlOGDleGDlOGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc3RhdHVzIiBtc2dpZD0iODAwODI2NDYwMzkzNTkzMDYxMSI+IuGDoeGDouGDkOGDouGDo+GDoeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfY2FtZXJhIiBtc2dpZD0iODkwNDIzMTE5NDE4MTExNDYwMyI+IuGDmeGDkOGDm+GDlOGDoOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWdhdXJkX2FjY2Vzc2liaWxpdHlfbWVkaWFfY29udHJvbHMiIG1zZ2lkPSIyNjIyMDk2NTQyOTIxNjE4MDYiPiLhg5vhg5Thg5Phg5jhg5jhg6Eg4YOb4YOQ4YOg4YOX4YOV4YOY4YOhIOGDlOGDmuGDlOGDm+GDlOGDnOGDouGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfc3RhcnQiIG1zZ2lkPSI4NzM2ODUzNjE1NTg4ODI4MTk3Ij4i4YOT4YOQ4YOY4YOs4YOn4YOdIOGDleGDmOGDr+GDlOGDouGDmOGDoSDhg67hg5Thg5rhg5Dhg67hg5rhg5Ag4YOS4YOQ4YOc4YOa4YOQ4YOS4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfZW5kIiBtc2dpZD0iNzE3MDE5MDk1MDg3MDQ2ODMyMCI+IuGDleGDmOGDr+GDlOGDouGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg67hg5Dhg6Dhg5jhg6Hhg67hg5Thg5Hhg5Ag4YOT4YOQ4YOh4YOg4YOj4YOa4YOU4YOR4YOj4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4i4YOV4YOY4YOv4YOU4YOi4YOYIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOGDrOGDkOGDmOGDqOGDkOGDmuGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2V4cGFuZF9sb2NrX2FyZWEiIG1zZ2lkPSI1MTk4NTk3MjA5MzQxNzgwMjQiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Eg4YOh4YOY4YOV4YOg4YOq4YOY4YOhIOGDkuGDkOGDqOGDmuGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiLhg5Lhg5Dhg6Hhg6Dhg5jhg5Dhg5rhg5Thg5Hhg5jhg5cg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5Ag4YOc4YOY4YOb4YOj4YOo4YOY4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZmFjZV91bmxvY2siIG1zZ2lkPSI0ODE3MjgyNTQzMzUxNzE4NTM1Ij4i4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIOGDoeGDkOGDruGDmOGDlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5AgUGluLeGDmOGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLhg57hg5Dhg6Dhg53hg5rhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4i4YOc4YOY4YOb4YOj4YOo4YOU4YOR4YOY4YOhIOGDoeGDmOGDleGDoOGDquGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4i4YOS4YOQ4YOT4YOQ4YOh4YOg4YOY4YOQ4YOa4YOU4YOR4YOY4YOhIOGDoeGDmOGDleGDoOGDquGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW51bGFyaXR5X2xhYmVsX2NoYXJhY3RlciIgbXNnaWQ9IjczMzY0NzA1MzUzODUwMDk1MjMiPiLhg6Hhg5jhg5vhg5Hhg53hg5rhg50iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF93b3JkIiBtc2dpZD0iNzA3NTU3MDMyODM3NDkxODY2MCI+IuGDoeGDmOGDouGDp+GDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW51bGFyaXR5X2xhYmVsX2xpbmsiIG1zZ2lkPSI1ODE1NTA4ODgwNzgyNDg4MjY3Ij4i4YOR4YOb4YOj4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfbGluZSIgbXNnaWQ9IjU3NjQyNjcyMzUwMjYxMjA4ODgiPiLhg6Hhg6Lhg6Dhg5jhg6Xhg53hg5zhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX2FtcG0iIG1zZ2lkPSI0NTg0MzM4MDgzNTI5MzU1OTgyIj4iPHhsaWZmOmcgaWQ9IkhPVVIiPiUtbDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iQU1QTSI+JVA8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9jYXBfYW1wbSIgbXNnaWQ9IjIwODM0NjU5OTI5NDA0NDQzNjYiPiI8eGxpZmY6ZyBpZD0iSE9VUiI+JS1sPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJBTVBNIj4lcDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9mYWlsZWQiIG1zZ2lkPSI1NDEwMjcwMzI5MTE0MjEyMDQxIj4i4YOs4YOQ4YOg4YOb4YOd4YOU4YOR4YOY4YOhIOGDouGDlOGDoeGDouGDmCDhg5Xhg5Thg6Ag4YOS4YOQ4YOc4YOu4YOd4YOg4YOq4YOY4YOU4YOa4YOT4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3Rfbm90X3N5c3RlbSIgbXNnaWQ9IjQ0MzUyMDE2NTY3NjcyNzY3MjMiPiLhg5Dhg6Xhg6Lhg5jhg5Xhg53hg5Hhg5AgRkFDVE9SWV9URVNUIOGDm+GDruGDkOGDoOGDk+GDkOGDreGDlOGDoOGDmOGDmuGDmOGDkCDhg5vhg67hg53hg5rhg53hg5Mg4YOY4YObIOGDnuGDkOGDmeGDlOGDouGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSwg4YOg4YOd4YOb4YOa4YOU4YOR4YOY4YOqIOGDm+GDneGDl+GDkOGDleGDoeGDlOGDkeGDo+GDmuGDmOGDkCAvc3lzdGVtL2FwcC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub19hY3Rpb24iIG1zZ2lkPSI4NzI5OTE4NzQ3OTk5OTg1NjEiPiLhg5Xhg5Thg6Ag4YOb4YOd4YOY4YOr4YOU4YOR4YOc4YOQIOGDnuGDkOGDmeGDlOGDouGDmCwg4YOg4YOd4YOb4YOU4YOa4YOY4YOqIOGDo+GDluGDoOGDo+GDnOGDleGDlOGDmuGDp+GDneGDpOGDoSDhg6Xhg5Dhg6Dhg67hg5zhg6Phg5og4YOi4YOU4YOh4YOiIOGDpeGDm+GDlOGDk+GDlOGDkeGDkOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9yZWJvb3QiIG1zZ2lkPSI2MzIwMTY4MjAzMDUwNzkxNjQzIj4i4YOS4YOQ4YOT4YOQ4YOi4YOV4YOY4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMTk4NzQ4Mzk3NzgzNDYwMzg3MiI+IuKAnjx4bGlmZjpnIGlkPSJUSVRMRSI+JXM8L3hsaWZmOmc+4oCcLeGDl+GDkOGDnCDhg5Lhg5Xhg5Thg6Dhg5Phg5gg4YOQ4YOb4YOR4YOd4YOR4YOhOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZV9kZWZhdWx0IiBtc2dpZD0iNjk2MTkwMzIxMzcyOTY2NzU3MyI+IkphdmFTY3JpcHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfYmVmb3JlX3VubG9hZF90aXRsZSIgbXNnaWQ9IjI2MTkzNzY1NTU1MjUxMTY1OTMiPiLhg5zhg5Dhg5Xhg5jhg5Lhg5Dhg6rhg5jhg5jhg6Eg4YOT4YOQ4YOT4YOQ4YOh4YOi4YOj4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWRfcG9zaXRpdmVfYnV0dG9uIiBtc2dpZD0iMzExMjc1MjAxMDYwMDQ4NDEzMCI+IuGDkuGDleGDlOGDoOGDk+GDmOGDoSDhg5Phg5Dhg6Lhg53hg5Xhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfYmVmb3JlX3VubG9hZF9uZWdhdGl2ZV9idXR0b24iIG1zZ2lkPSI1NjE0ODYxMjkzMDI2MDk5NzE1Ij4i4YOQ4YObIOGDkuGDleGDlOGDoOGDk+GDluGDlCDhg5Phg5Dhg6Dhg6nhg5Thg5zhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfYmVmb3JlX3VubG9hZCIgbXNnaWQ9IjM0Njg4MTYzNTcwOTUzNzg1OTAiPiI8eGxpZmY6ZyBpZD0iTUVTU0FHRSI+JXM8L3hsaWZmOmc+XG5cbuGDk+GDkOGDoOGDrOGDm+GDo+GDnOGDlOGDkeGDo+GDmuGDmCDhg67hg5Dhg6Dhg5csIOGDoOGDneGDmyDhg5Lhg6Hhg6Phg6Dhg5cg4YOQ4YObIOGDkuGDleGDlOGDoOGDk+GDmOGDk+GDkOGDnCDhg5Lhg5Dhg5Phg5Dhg6Hhg5Xhg5rhg5A/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9sYWJlbCIgbXNnaWQ9IjY4NjAyNjE3NTg2NjU4MjUwNjkiPiLhg5Phg5Dhg5Phg5Dhg6Hhg6Lhg6Phg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb3VibGVfdGFwX3RvYXN0IiBtc2dpZD0iNDU5NTA0NjUxNTQwMDI2ODg4MSI+IuGDoOGDqeGDlOGDleGDkDog4YOb4YOQ4YOh4YOo4YOi4YOQ4YOR4YOY4YOhIOGDqOGDlOGDoeGDkOGDquGDleGDmuGDlOGDmuGDkOGDkyDhg5Lhg5Dhg5vhg53hg5jhg6fhg5Thg5zhg5Thg5cg4YOd4YOg4YOb4YOQ4YOS4YOYIOGDqOGDlOGDruGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF90aGlzX2Zvcm0iIG1zZ2lkPSI0NjE2NzU4ODQxMTU3ODE2Njc2Ij4i4YOQ4YOV4YOi4YOd4YOo4YOU4YOV4YOh4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2V0dXBfYXV0b2ZpbGwiIG1zZ2lkPSI3MTAzNDk1MDcwMTgwNTkwODE0Ij4i4YOQ4YOV4YOi4YOd4YOo4YOU4YOV4YOh4YOU4YOR4YOY4YOhIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3NfbmFtZV9zZXBhcmF0b3IiIG1zZ2lkPSI2MzUwMTQ1MTU0Nzc5NzA2NzcyIj4iICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3Nfc3VtbWFyeV9uYW1lX2Zvcm1hdCIgbXNnaWQ9IjMyNjgwNDEwNTQ4OTkyMTQ5NDUiPiIkMSQyJDMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX3N1bW1hcnlfc2VwYXJhdG9yIiBtc2dpZD0iNzQ4MzMwNzg5MzE3MDMyNDEyOSI+IiwgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYWRkcmVzc19zdW1tYXJ5X2Zvcm1hdCIgbXNnaWQ9IjQ4NzQ0NTk0NTU3ODY4MjczNDQiPiIkMSQyJDMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wcm92aW5jZSIgbXNnaWQ9IjIyMzE4MDY1NTM4NjM0MjIzMDAiPiLhg57hg6Dhg53hg5Xhg5jhg5zhg6rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wb3N0YWxfY29kZSIgbXNnaWQ9IjQ2OTY0MzA0MDc2ODkzNzcxMDgiPiLhg6Hhg5Dhg6Thg53hg6Hhg6Lhg5gg4YOb4YOY4YOh4YOQ4YOb4YOQ4YOg4YOX4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfc3RhdGUiIG1zZ2lkPSI2OTg4ODk0MTk1NTIwMDQ0NjEzIj4i4YOo4YOi4YOQ4YOi4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfemlwX2NvZGUiIG1zZ2lkPSI4Njk3NTQ0NTkyNjI3MzIyOTQ2Ij4iWklQIOGDmeGDneGDk+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2NvdW50eSIgbXNnaWQ9IjIzNzA3Mzc3MTAyMDM2Mjg5MSI+IuGDpeGDleGDlOGDp+GDkOGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2lzbGFuZCIgbXNnaWQ9IjQwMjAxMDA4NzU5ODQ2NjcwMjUiPiLhg5nhg6Phg5zhg6vhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9kaXN0cmljdCIgbXNnaWQ9Ijg0MDA3MzUwNzMzOTIyNjc2NzIiPiLhg53hg5rhg6Xhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9kZXBhcnRtZW50IiBtc2dpZD0iNTM0MzI3OTQ2MjU2NDQ1MzMwOSI+IuGDk+GDlOGDnuGDkOGDoOGDouGDkOGDm+GDlOGDnOGDouGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3ByZWZlY3R1cmUiIG1zZ2lkPSIyMDI4NDk5NDg1MDY1ODAwNDE5Ij4i4YOe4YOg4YOU4YOk4YOU4YOl4YOi4YOj4YOg4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcGFyaXNoIiBtc2dpZD0iODIwMjIwNjEwNTQ2ODgyMDA1NyI+IuGDoeGDkOGDm+GDneGDpeGDkOGDmuGDkOGDpeGDnSDhg53hg5rhg6Xhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hcmVhIiBtc2dpZD0iMzU0NzQwOTA1MDg4OTk1MjQyMyI+IuGDoOGDlOGDkuGDmOGDneGDnOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2VtaXJhdGUiIG1zZ2lkPSIyODkzODgwOTc4ODM1Njk4ODE4Ij4i4YOU4YOb4YOY4YOg4YOQ4YOi4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9IjM3NzUyNjU3NzU0MDUxMDY5ODMiPiLhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOV4YOU4YORIOGDoeGDkOGDnOGDmOGDqOGDnOGDlOGDlOGDkeGDmOGDoeGDkCDhg5Phg5Ag4YOY4YOh4YOi4YOd4YOg4YOY4YOY4YOhIOGDrOGDkOGDmeGDmOGDl+GDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iODQ2MjM3ODIyNjYwMDQzOTY1OCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOs4YOQ4YOY4YOZ4YOY4YOX4YOu4YOd4YOhIOGDp+GDleGDlOGDmuGDkCBVUkwt4YOY4YOhIOGDmOGDoeGDouGDneGDoOGDmOGDkCwg4YOh4YOQ4YOT4YOQ4YOqIOGDmeGDmCDhg5Hhg6Dhg5Dhg6Phg5bhg5Thg6Dhg5gg4YOo4YOU4YOh4YOj4YOa4YOQLCDhg5Dhg6Hhg5Thg5Xhg5Qg4YOR4YOg4YOQ4YOj4YOW4YOU4YOg4YOY4YOhIOGDoeGDkOGDnOGDmOGDqOGDnOGDlOGDlOGDkeGDmC4g4YOo4YOU4YOc4YOY4YOo4YOV4YOc4YOQOiDhg5Thg6Eg4YOj4YOk4YOa4YOU4YOR4YOQIOGDqOGDlOGDoeGDkOGDq+GDmuGDneGDkCDhg5Dhg6Ag4YOb4YOd4YOY4YOq4YOQ4YOV4YOT4YOU4YOhIOGDm+GDlOGDoeGDkOGDm+GDlCDhg5vhg67hg5Dhg6Dhg5jhg6Eg4YOR4YOg4YOQ4YOj4YOW4YOU4YOg4YOU4YOR4YOhIOGDkOGDnCDhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOU4YOR4YOhLCDhg6Dhg53hg5vhg5rhg5Thg5Hhg6Hhg5Dhg6og4YOV4YOU4YOR4YOo4YOYIOGDq+GDmOGDlOGDkeGDkCDhg6jhg5Thg6Phg6vhg5rhg5jhg5Dhg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSIzNzE0Nzg1MTY1MjczMzE0NDkwIj4i4YOV4YOU4YORIOGDoeGDkOGDnOGDmOGDqOGDnOGDlOGDlOGDkeGDmOGDoeGDkCDhg5Phg5Ag4YOY4YOh4YOi4YOd4YOg4YOY4YOY4YOhIOGDqeGDkOGDrOGDlOGDoOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjgyNTUyNzQ2OTE0NTc2MDkyMiI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5AsIOGDqOGDlOGDquGDleGDkOGDmuGDneGDoSDhg5Hhg6Dhg5Dhg6Phg5bhg5Thg6Dhg5jhg6Eg4YOY4YOh4YOi4YOd4YOg4YOY4YOQIOGDk+GDkCDhg5fhg6Xhg5Xhg5Thg5wg4YOi4YOQ4YOR4YOa4YOU4YOi4YOo4YOYIOGDqOGDlOGDnOGDkOGDruGDo+GDmuGDmCDhg6Hhg5Dhg5zhg5jhg6jhg5zhg5Thg5Thg5Hhg5guIOGDkOGDm+GDkOGDnCDhg6jhg5Thg5jhg6vhg5rhg5Thg5Hhg5Ag4YOj4YOk4YOa4YOU4YOR4YOQIOGDm+GDmOGDoeGDquGDlOGDoSDhg5Dhg57hg6EsIOGDrOGDkOGDqOGDkOGDmuGDneGDoSDhg5Dhg5wg4YOo4YOU4YOq4YOV4YOQ4YOa4YOd4YOhIOGDkeGDoOGDkOGDo+GDluGDlOGDoOGDmOGDoSDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5guIOGDqOGDlOGDnOGDmOGDqOGDleGDnOGDkDog4YOU4YOhIOGDnOGDlOGDkeGDkOGDoOGDl+GDleGDkCDhg5Dhg6Ag4YOo4YOU4YOY4YOr4YOa4YOU4YOR4YOQIOGDqOGDlOGDoeGDoOGDo+GDmuGDk+GDlOGDoSDhg5vhg5Thg6Hhg5Dhg5vhg5Qg4YOb4YOu4YOQ4YOg4YOY4YOhIOGDkeGDoOGDkOGDo+GDluGDlOGDoOGDlOGDkeGDmOGDoSDhg5Dhg5wg4YOV4YOU4YORIOGDk+GDkOGDl+GDleGDkOGDmuGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg6jhg5Thg6Hhg5Dhg6vhg5rhg5Thg5Hhg5rhg53hg5Hhg5jhg6Eg4YOb4YOl4YOd4YOc4YOUIOGDoeGDruGDleGDkCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Thg5Hhg5jhg6Eg4YOb4YOY4YOU4YOgLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0OTczODk1MzEwMTQxODU1MDkiPiLhg5Dhg57hg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQLCDhg6jhg5Thg6rhg5Xhg5Dhg5rhg53hg6Eg4YOR4YOg4YOQ4YOj4YOW4YOU4YOg4YOY4YOhIOGDmOGDoeGDouGDneGDoOGDmOGDkCDhg5Phg5Ag4YOX4YOl4YOV4YOU4YOcIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDqOGDmCDhg6jhg5Thg5zhg5Dhg67hg6Phg5rhg5gg4YOh4YOQ4YOc4YOY4YOo4YOc4YOU4YOU4YOR4YOYLiDhg5Dhg5vhg5Dhg5wg4YOo4YOU4YOY4YOr4YOa4YOU4YOR4YOQIOGDo+GDpOGDmuGDlOGDkeGDkCDhg5vhg5jhg6Hhg6rhg5Thg6Eg4YOQ4YOe4YOhLCDhg6zhg5Dhg6jhg5Dhg5rhg53hg6Eg4YOQ4YOcIOGDqOGDlOGDquGDleGDkOGDmuGDneGDoSDhg5Hhg6Dhg5Dhg6Phg5bhg5Thg6Dhg5jhg6Eg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOYLiDhg6jhg5Thg5zhg5jhg6jhg5Xhg5zhg5A6IOGDlOGDoSDhg5zhg5Thg5Hhg5Dhg6Dhg5fhg5Xhg5Ag4YOQ4YOgIOGDqOGDlOGDmOGDq+GDmuGDlOGDkeGDkCDhg6jhg5Thg6Hhg6Dhg6Phg5rhg5Phg5Thg6Eg4YOb4YOU4YOh4YOQ4YOb4YOUIOGDm+GDruGDkOGDoOGDmOGDoSDhg5Hhg6Dhg5Dhg6Phg5bhg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOQ4YOcIOGDleGDlOGDkSDhg5Phg5Dhg5fhg5Xhg5Dhg5rhg5jhg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOr4YOa4YOU4YOR4YOa4YOd4YOR4YOY4YOhIOGDm+GDpeGDneGDnOGDlCDhg6Hhg67hg5Xhg5Ag4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOU4YOR4YOY4YOhIOGDm+GDmOGDlOGDoC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldEFsYXJtIiBtc2dpZD0iMTM3OTI5NDU1NjM2MjA5MTgxNCI+IuGDm+GDkOGDpuGDleGDmOGDq+GDkOGDoOGDkOGDoSDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbGFybSIgbXNnaWQ9IjMxNjM5MjAzOTE1NzQ3Mzg0OCI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOb4YOQ4YOm4YOV4YOY4YOr4YOQ4YOg4YOQ4YOhIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDkCDhg5Phg5Dhg5jhg5zhg6Hhg6Lhg5Dhg5rhg5jhg6Dhg5Thg5Hhg6Phg5rhg5gg4YOb4YOQ4YOm4YOV4YOY4YOr4YOQ4YOg4YOQ4YOhIOGDkOGDnuGDmuGDmOGDmeGDkOGDquGDmOGDkOGDqOGDmC4g4YOQ4YObIOGDpOGDo+GDnOGDpeGDquGDmOGDkOGDoSDhg5vhg5Dhg6bhg5Xhg5jhg6vhg5Dhg6Dhg5Dhg6Eg4YOW4YOd4YOS4YOY4YOU4YOg4YOX4YOYIOGDkOGDnuGDmCDhg5Dhg6Ag4YOY4YOn4YOU4YOc4YOU4YOR4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWRkVm9pY2VtYWlsIiBtc2dpZD0iNTUyNTY2MDAyNjA5MDk1OTA0NCI+IuGDruGDm+GDneGDleGDkOGDnOGDmCDhg6Thg53hg6Hhg6Lhg5jhg6Eg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWRkVm9pY2VtYWlsIiBtc2dpZD0iNjYwNDUwODY1MTQyODI1MjQzNyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOT4YOQ4YOQ4YOb4YOQ4YOi4YOd4YOhIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmCDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOu4YOb4YOd4YOV4YOQ4YOc4YOYIOGDpOGDneGDoeGDouGDmOGDoSDhg6jhg5Thg5vhg53hg6Hhg6Phg5rhg5Thg5Hhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUdlb2xvY2F0aW9uUGVybWlzc2lvbnMiIG1zZ2lkPSI1OTYyMjI0MTU4OTU1MjczOTMyIj4i4YOR4YOg4YOQ4YOj4YOW4YOU4YOg4YOY4YOhIOGDkuGDlOGDneGDmuGDneGDmeGDkOGDquGDmOGDmOGDoSDhg6Phg6Thg5rhg5Thg5Hhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iMTA4Mzc0MzIzNDUyMjYzODc0NyI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOR4YOg4YOQ4YOj4YOW4YOU4YOg4YOY4YOhIOGDkuGDlOGDneGDmuGDneGDmeGDkOGDquGDmOGDmOGDoSDhg6Phg6Thg5rhg5Thg5Hhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQLiDhg5vhg5Dhg5Xhg5zhg5Qg4YOQ4YOe4YOU4YOR4YOb4YOQIOGDlOGDoSDhg6jhg5Thg6Hhg5Dhg6vhg5rhg53hg5Ag4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOd4YOcICDhg5zhg5Thg5Hhg5jhg6Hhg5vhg5jhg5Thg6Dhg5gg4YOV4YOU4YOR4YOh4YOQ4YOY4YOi4YOY4YOh4YOX4YOV4YOY4YOhIOGDm+GDk+GDlOGDkeGDkOGDoOGDlOGDneGDkeGDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5Eg4YOY4YOc4YOk4YOd4YOg4YOb4YOQ4YOq4YOY4YOY4YOhIOGDkuGDkOGDoeGDkOGDkuGDluGDkOGDleGDnOGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BhY2thZ2VWZXJpZmljYXRpb25BZ2VudCIgbXNnaWQ9IjU1NjgxMzkxMDA2NDU4MjkxMTciPiLhg57hg5Dhg5nhg5Thg6Lhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOT4YOQ4YOb4YOd4YOs4YOb4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGFja2FnZVZlcmlmaWNhdGlvbkFnZW50IiBtc2dpZD0iODQzNzU5MDE5MDk5MDg0MzM4MSI+IuGDkOGDnuGDoSDhg6jhg5Thg6Phg6vhg5rhg5jhg5Ag4YOT4YOQ4YOQ4YOT4YOQ4YOh4YOi4YOj4YOg4YOd4YOhIOGDnuGDkOGDmeGDlOGDouGDmOGDoSDhg5Phg5Dhg6fhg5Dhg5zhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOr4YOa4YOU4YOR4YOa4YOd4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFBhY2thZ2VWZXJpZmllciIgbXNnaWQ9IjQxODc3ODY3OTMzNjAzMjY2NTQiPiLhg57hg5Dhg5nhg5Thg6Lhg5Thg5Hhg5jhg6Eg4YOV4YOU4YOg4YOY4YOk4YOY4YOZ4YOQ4YOi4YOd4YOg4YOU4YOR4YOX4YOQ4YOcIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQYWNrYWdlVmVyaWZpZXIiIG1zZ2lkPSIzMTgwNzQxNzczMjMzODYyMTI2Ij4i4YOb4YOk4YOa4YOd4YOR4YOU4YOa4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg57hg5Dhg5nhg5Thg6Lhg5jhg6Eg4YOV4YOU4YOg4YOY4YOk4YOY4YOZ4YOQ4YOi4YOd4YOg4YOU4YOR4YOY4YOhIOGDm+GDneGDl+GDruGDneGDleGDnOGDkC4g4YOQ4YOg4YOQ4YOh4YOT4YOg4YOd4YOhIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDlOGDkeGDkCDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Ug4YOQ4YOe4YOU4YOR4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VyaWFsUG9ydCIgbXNnaWQ9IjU0NjA4MzMyNzY1NDYzMTA3NiI+IuGDoeGDlOGDoOGDmOGDo+GDmiDhg57hg53hg6Dhg6Lhg5Thg5Hhg5bhg5Qg4YOs4YOV4YOT4YOd4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VyaWFsUG9ydCIgbXNnaWQ9IjI5OTE2Mzk5ODUyMjQ1OTgxOTMiPiLhg5vhg6Thg5rhg53hg5Hhg5Thg5rhg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDoeGDlOGDoOGDmOGDo+GDmiDhg57hg53hg6Dhg6Lhg5Thg5Hhg5bhg5Qg4YOs4YOV4YOT4YOd4YOb4YOQIOGDoeGDlOGDoOGDmOGDo+GDmuGDmCDhg5vhg5Thg5zhg5Thg6/hg5Thg6Dhg5jhg6EgIEFQSS3hg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOY4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzQ29udGVudFByb3ZpZGVyc0V4dGVybmFsbHkiIG1zZ2lkPSI1MDc3Nzc0Mjk3OTQzNDA5Mjg1Ij4i4YOZ4YOd4YOc4YOi4YOU4YOc4YOi4YOY4YOhIOGDm+GDneGDm+GDrOGDneGDk+GDlOGDkeGDmuGDlOGDkeGDl+GDkOGDnCDhg5Lhg5Dhg6Dhg5Thg5Phg5Dhg5wg4YOs4YOV4YOT4YOd4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29udGVudFByb3ZpZGVyc0V4dGVybmFsbHkiIG1zZ2lkPSI0NTQ0MzQ2NDg2Njk3ODUzNjg1Ij4i4YOb4YOk4YOa4YOd4YOR4YOU4YOa4YOhIOGDkOGDq+GDmuGDlOGDleGDoSDhg5nhg53hg5zhg6Lhg5Thg5zhg6Ig4YOe4YOg4YOd4YOV4YOQ4YOY4YOT4YOU4YOg4YOU4YOR4YOW4YOUIOGDrOGDleGDk+GDneGDm+GDkOGDoSDhg5Lhg5Dhg6Dhg5Thg5vhg53hg5Phg5Dhg5wuIOGDqeGDleGDlOGDo+GDmuGDlOGDkeGDoOGDmOGDlSDhg5Dhg57hg5Thg5Hhg6jhg5gg4YOQ4YOg4YOQ4YOh4YOd4YOT4YOU4YOhIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUxvY2siIG1zZ2lkPSIzNTI3NTU4MzY2NjE2NjgwODg5Ij4i4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOY4YOhIOGDkOGDleGDouGDneGDm+GDkOGDouGDo+GDoOGDmCDhg5Lhg5Dhg5zhg5Dhg67hg5rhg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOo4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXBkYXRlTG9jayIgbXNnaWQ9IjE2NTU2MjU4MzIxNjY3Nzg0OTIiPiLhg5vhg6Thg5rhg53hg5Hhg5Thg5rhg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDoeGDmOGDoeGDouGDlOGDm+GDmOGDoeGDl+GDleGDmOGDoSDhg5jhg5zhg6Thg53hg6Dhg5vhg5Dhg6rhg5jhg5jhg6Eg4YOb4YOY4YOs4YOd4YOT4YOU4YOR4YOQLCDhg5fhg6Mg4YOg4YOd4YOT4YOY4YOhIOGDmOGDpeGDnOGDlOGDkeGDkCDhg6jhg5Thg6Hhg5Dhg6Thg5Thg6Dhg5jhg6Hhg5gg4YOT4YOg4YOdIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDmOGDoSDhg5Lhg5Dhg6Hhg5Dhg5Dhg67hg5rhg5Thg5Hhg5rhg5Dhg5Mg4YOQ4YOg4YOQ4YOY4YOc4YOi4YOU4YOg4YOQ4YOl4YOi4YOY4YOj4YOa4YOYIOGDkuGDkOGDk+GDkOGDouGDleGDmOGDoOGDl+GDleGDmOGDoeGDl+GDleGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX21lc3NhZ2UiIG1zZ2lkPSI3NjczNDQ2ODcxMzkxOTU3OTAiPiLhg5Lhg6Hhg6Phg6Dhg5csIOGDoOGDneGDmyDhg5Hhg6Dhg5Dhg6Phg5bhg5Thg6Dhg5vhg5Ag4YOT4YOQ4YOY4YOb4YOQ4YOu4YOh4YOd4YOV4YOg4YOd4YOhIOGDnuGDkOGDoOGDneGDmuGDmD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX25vdG5vdyIgbXNnaWQ9IjYzODk2NzUzMTY3MDY2OTk3NTgiPiLhg5Dhg67hg5rhg5Ag4YOQ4YOg4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9yZW1lbWJlciIgbXNnaWQ9IjY0OTE4Nzk2Nzg5OTY3NDk0NjYiPiLhg5Phg5Dhg5vhg5Dhg67hg6Hhg53hg5Xhg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX25ldmVyIiBtc2dpZD0iODI3NDMzMDI5Njc4NTg1NTEwNSI+IuGDkOGDoOGDkOGDoeGDneGDk+GDlOGDoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9wZW5fcGVybWlzc2lvbl9kZW55IiBtc2dpZD0iNzM3NDAzNjcwODMxNjYyOTgwMCI+IuGDkOGDmyDhg5Lhg5Xhg5Thg6Dhg5Phg5jhg6Eg4YOS4YOQ4YOu4YOh4YOc4YOY4YOhIOGDo+GDpOGDmuGDlOGDkeGDkCDhg5Dhg6Ag4YOS4YOQ4YOl4YOV4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRleHRfY29waWVkIiBtc2dpZD0iNDk4NTcyOTUyNDY3MDEzMTM4NSI+IuGDouGDlOGDpeGDoeGDouGDmCDhg5Phg5Dhg5nhg53hg57hg5jhg6Dhg5Thg5Hhg6Phg5rhg5jhg5Ag4YOS4YOQ4YOq4YOV4YOa4YOY4YOhIOGDkeGDo+GDpOGDlOGDoOGDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb3JlX2l0ZW1fbGFiZWwiIG1zZ2lkPSI0NjUwOTE4OTIzMDgzMzIwNDk1Ij4i4YOb4YOU4YOi4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlcGVuZF9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI1NzIyMTQ0NjE2NzYwMTU2NDIiPiLhg5vhg5Thg5zhg5jhg6MrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zcGFjZV9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI0MTAzMjg2MzkyNzIxNjI1MzciPiJb4YOY4YOc4YOi4YOU4YOg4YOV4YOQ4YOa4YOYXSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZW50ZXJfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIyNzQzMzYyNzg1MTExMzA5NjY4Ij4iZW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZV9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjM2NTgxNzgwMDcyMDI3NDgxNjQiPiLhg6zhg5Dhg6jhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2hfZ28iIG1zZ2lkPSI4Mjk4MDE2NjY5ODIyMTQxNzE5Ij4i4YOr4YOY4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9zZWFyY2giIG1zZ2lkPSI2NzQ5ODI2NjM5MDk4NTEyMTIwIj4i4YOr4YOY4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9xdWVyeSIgbXNnaWQ9IjU5MTE3Nzg1OTMxMjUzNTUxMjQiPiLhg5vhg53hg5fhg67hg53hg5Xhg5zhg5jhg6Eg4YOr4YOY4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9jbGVhciIgbXNnaWQ9IjEzMzAyODE5OTA5NTE4MzMwMzMiPiLhg6Dhg5jhg5Lhg5jhg6Eg4YOS4YOQ4YOh4YOj4YOk4YOX4YOQ4YOV4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9zdWJtaXQiIG1zZ2lkPSIyNjg4NDUwMTMzMjk3OTgzNTQyIj4i4YOo4YOU4YOZ4YOY4YOX4YOu4YOV4YOY4YOhIOGDkuGDkOGDkuGDluGDkOGDleGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fdm9pY2UiIG1zZ2lkPSIyNDUzMjAzNjk1Njc0OTk0NDQwIj4i4YOu4YOb4YOd4YOV4YOQ4YOc4YOYIOGDq+GDmOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSI3NDYwNjk0MDcwMzA5NzMwMTQ5Ij4i4YOp4YOQ4YOV4YOg4YOX4YOd4YOXIOGDqOGDlOGDruGDlOGDkeGDmOGDlyDhg5Phg5Dhg5fhg5Xhg5Dhg5rhg5jhg5Thg6Dhg5Thg5Hhg5A/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ19tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NjU1ODg3NTM5MDg5OTEwNTc3Ij4iPHhsaWZmOmcgaWQ9IkFDQ0VTU0lCSUxJVFlfU0VSVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPi3hg6Eg4YOh4YOj4YOg4YOhIOKAnuGDqOGDlOGDruGDlOGDkeGDmOGDlyDhg6jhg5Thg6Hhg6zhg5Dhg5Xhg5rhg5jhg6HigJwg4YOg4YOU4YOf4YOY4YOb4YOY4YOhIOGDqeGDoOGDl+GDleGDkC4g4YOU4YOhIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5/hg5Thg6Hhg6Lhg5Thg5Hhg5jhg5cg4YOb4YOQ4YOg4YOX4YOV4YOY4YOh4YOQIOGDk+GDkCDhg5jhg5sg4YOU4YOa4YOU4YOb4YOU4YOc4YOi4YOU4YOR4YOY4YOhIOGDkOGDpuGDrOGDlOGDoOGDmOGDoSDhg5vhg53hg6Hhg5vhg5Thg5zhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOr4YOa4YOU4YOR4YOa4YOd4YOR4YOQ4YOhIOGDm+GDneGDkuGDquGDlOGDm+GDlywg4YOg4YOd4YOb4YOU4YOa4YOh4YOQ4YOqIOGDqOGDlOGDlOGDruGDlOGDkeGDmOGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVfZXhwbG9yZV9ieV90b3VjaF93YXJuaW5nX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNzA4MTk5NjcyODUyMzczMTk1Ij4iPHhsaWZmOmcgaWQ9IkFDQ0VTU0lCSUxJVFlfU0VSVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPi3hg6Eg4YOh4YOj4YOg4YOhIOKAnuGDqOGDlOGDruGDlOGDkeGDmOGDlyDhg6jhg5Thg6Hhg6zhg5Dhg5Xhg5rhg5jhg6HigJwg4YOg4YOU4YOf4YOY4YOb4YOY4YOhIOGDqeGDoOGDl+GDleGDkC4g4YOU4YOhIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5/hg5Thg6Hhg6Lhg5Thg5Hhg5jhg5cg4YOb4YOQ4YOg4YOX4YOV4YOY4YOh4YOQIOGDk+GDkCDhg5jhg5sg4YOU4YOa4YOU4YOb4YOU4YOc4YOi4YOU4YOR4YOY4YOhIOGDkOGDpuGDrOGDlOGDoOGDmOGDoSDhg5vhg53hg6Hhg5vhg5Thg5zhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOr4YOa4YOU4YOR4YOa4YOd4YOR4YOQ4YOhIOGDm+GDneGDkuGDquGDlOGDm+GDlywg4YOg4YOd4YOb4YOU4YOa4YOh4YOQ4YOqIOGDqOGDlOGDlOGDruGDlOGDkeGDmOGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvbmVNb250aER1cmF0aW9uUGFzdCIgbXNnaWQ9IjczOTYzODQ1MDg5NTM3Nzk5MjUiPiLhg5Thg6Dhg5fhg5gg4YOX4YOV4YOY4YOhIOGDrOGDmOGDnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJlZm9yZU9uZU1vbnRoRHVyYXRpb25QYXN0IiBtc2dpZD0iOTA5MTM0NTQ2ODM2NDk5ODI2Ij4i4YOj4YOk4YOg4YOdIOGDkOGDk+GDoOGDlCwg4YOV4YOY4YOT4YOg4YOUIOGDlOGDoOGDl+GDmCDhg5fhg5Xhg5jhg6Eg4YOs4YOY4YOcIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJudW1fc2Vjb25kc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0ODY5ODcwMDU2NTQ3ODk2MDExIj4iMSDhg6zhg5Dhg5vhg5jhg6Eg4YOs4YOY4YOcIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzOTAzNzA2ODA0MzQ5NTU2Mzc5Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOb4YOY4YOhIOGDrOGDmOGDnCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX21pbnV0ZXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzMwNjc4NzQzMzA4ODgxMDE5MSI+IjEg4YOs4YOj4YOX4YOY4YOhIOGDo+GDmeGDkOGDnCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjE3Njk0MjAwODkxNTQ1NTExNiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOGDrOGDo+GDl+GDmOGDoSDhg6zhg5jhg5wiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Im51bV9ob3Vyc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI5MTUwNzk3OTQ0NjEwODIxODQ5Ij4iMcKg4YOh4YOQ4YOQ4YOX4YOY4YOhIOGDrOGDmOGDnCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjQ2NzI3MzIzOTU4NzU4NzU2OSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOGDoeGDkOGDkOGDl+GDmOGDoSDhg6zhg5jhg5wiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Imxhc3RfbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjMwNjk5OTI4MDgxNjQzMTgyNjgiPiLhg5Hhg53hg5rhg50gPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4YOT4YOm4YOUIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ibGFzdF9tb250aCIgbXNnaWQ9IjM5NTkzNDY3Mzk5NzkwNTU0MzIiPiLhg5Lhg5Dhg6Hhg6Phg5rhg5gg4YOX4YOV4YOUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkZXIiIG1zZ2lkPSI1MjExOTc1MDIyODE1NTU0ODQwIj4i4YOj4YOk4YOg4YOdIOGDq+GDleGDlOGDmuGDmCI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX2RheXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODYxMzU4NTM0Mzk4MTE1ODIwIj4i4YOS4YOj4YOo4YOY4YOcIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyNDc5NTg2NDY2MTUzMzE0NjMzIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4YOT4YOm4YOY4YOhIOGDrOGDmOGDnCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iaW5fbnVtX3NlY29uZHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIyNzI5NzQ1NTYwOTU0OTA1MTAyIj4iMSDhg6zhg5Dhg5vhg6jhg5giPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjEyNDE5MjYxMTY0NDM5NzQ2ODciPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg5vhg6jhg5giPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImluX251bV9taW51dGVzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODc5MzA5NTI1MTMyNTIwMDM5NSI+IjEg4YOs4YOj4YOX4YOo4YOYIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzMzMwNzEzOTM2Mzk5NDQ4NzQ5Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4YOs4YOj4YOX4YOo4YOYIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1faG91cnMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI3MTY0MzUzMzQyNDc3NzY5OTk5Ij4iMSDhg6Hhg5Dhg5Dhg5fhg6jhg5giPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzI5MDY3NzM1MzcyNzM4OSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOGDoeGDkOGDkOGDl+GDqOGDmCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iaW5fbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1NDEzMDg4NzQzMDA5ODM5NTE4Ij4i4YOu4YOV4YOQ4YOaIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1MTA5NDQ5Mzc1MTAwOTUzMjQ3Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4YOT4YOm4YOU4YOo4YOYIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX3NlY29uZHNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMTg0OTAzNjg0MDIwMDA2OTExOCI+IjEg4YOs4YObLiDhg6zhg5jhg5wiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM2OTkxNjkzNjY2NTA5MzA0MTUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg5vhg5jhg6Eg4YOs4YOY4YOcIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX21pbnV0ZXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjM2MTQ5MDE0NzExMzg3MTU0NSI+IjEg4YOs4YOj4YOX4YOY4YOhIOGDrOGDmOGDnCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODUxMTY0OTY4NTk3MTUwNzEwIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4YOs4YOj4YOX4YOY4YOhIOGDrOGDmOGDnCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X251bV9ob3Vyc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0Nzk2MjEyMDM5NzI0NzIyMTE2Ij4iMcKg4YOh4YOQ4YOQ4YOX4YOY4YOhIOGDrOGDmOGDnCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjg4OTk3MDc0NTc0ODUzODkwMSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOGDoeGDkOGDkOGDl+GDmOGDoSDhg6zhg5jhg5wiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1fZGF5c19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4NDYzMTYxNzExNDkyNjgwMzA5Ij4i4YOS4YOj4YOo4YOY4YOcIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzNDUzMzQyNjM5NjE2NDgxMTkxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4YOT4YOm4YOY4YOhIOGDrOGDmOGDnCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9zZWNvbmRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg0MjIyNTM3MDc5NTA2NjI5OSI+IjEg4YOs4YOQ4YOb4YOo4YOYIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDk1ODgwMTA4ODI1ODA1MTA4Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOb4YOY4YOhIOGDrOGDmOGDnCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9taW51dGVzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTYyNzg2MTQ5OTI4Mjg0ODc4Ij4iMSDhg6zhg6Phg5fhg6jhg5giPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQyMTYxMTMyOTI3MDY1Njg3MjYiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhg6zhg6Phg5fhg6jhg5giPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1faG91cnMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjc0NzA4MTE4MTI0MDQ1MjQ2Ij4iMSDhg6Hhg5Dhg5Dhg5fhg6jhg5giPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM3MDUzNzM3NjY3OTgwMTM0MDYiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhg6Hhg5Dhg5Dhg5fhg6jhg5giPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fZGF5cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjIxNzg1NzYyNTQzODU3Mzk4NTUiPiLhg67hg5Xhg5Dhg5oiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI5NzMwNjI5NjgwMzgzNTU5OTEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhg5Phg6bhg5Thg6jhg5giPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJwcmVwb3NpdGlvbl9mb3JfZGF0ZSIgbXNnaWQ9IjkwOTM5NDk3NTc3NTc0NDUxMTciPiLhg5fhg5Dhg6Dhg5jhg6bhg5g6IDx4bGlmZjpnIGlkPSJEQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVwb3NpdGlvbl9mb3JfdGltZSIgbXNnaWQ9IjU1MDY4MzEyNDQyNjMwODM3OTMiPiI8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+LeGDluGDlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl95ZWFyIiBtc2dpZD0iNTA0MDM5NTY0MDcxMTg2NzE3NyI+Ijx4bGlmZjpnIGlkPSJZRUFSIj4lczwveGxpZmY6Zz4g4YOs4YOU4YOa4YOhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5IiBtc2dpZD0iODE0NDE5NTc3NjA1ODExOTQyNCI+IuGDk+GDpuGDlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheXMiIG1zZ2lkPSI0Nzc0NTQ3NjYxMDIxMzQ0NjAyIj4i4YOT4YOm4YOU4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91ciIgbXNnaWQ9IjIxMjY3NzE5MTY0MjYxODk0ODEiPiLhg6Hhg5Dhg5Dhg5fhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VycyIgbXNnaWQ9Ijg5NDQyNDAwNTI2Njg1Mjk5MyI+IuGDoeGDkOGDkOGDl+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZSIgbXNnaWQ9IjkxNDg4Nzg2NTc3MDM3Njk4NjgiPiLhg6zhg5ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVzIiBtc2dpZD0iNTY0NjAwMTAwNTgyNzAzNDUwOSI+IuGDrOGDo+GDl+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlY29uZCIgbXNnaWQ9IjMxODQyMzU4MDgwMjE0NzgiPiLhg6zhg5suIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vjb25kcyIgbXNnaWQ9IjMxNjE1MTUzNDcyMTY1ODkyMzUiPiLhg6zhg5Dhg5vhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWVrIiBtc2dpZD0iNTYxNzk2MTUzNzE3MzA2MTU4MyI+IuGDmeGDleGDmOGDoOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlZWtzIiBtc2dpZD0iNjUwOTYyMzgzNDU4Mzk0NDUxOCI+IuGDmeGDleGDmOGDoOGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXIiIG1zZ2lkPSI0MDAxMTE4MjIxMDEzODkyMDc2Ij4i4YOs4YOU4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcnMiIG1zZ2lkPSI2ODgxNTc3NzE3OTkzMjEzNTIyIj4i4YOs4YOU4YOa4YOYIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJkdXJhdGlvbl9zZWNvbmRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjk2MjAxNTUyODM3Mjk2OTQ4MSI+IjEg4YOs4YOQ4YOb4YOYIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxODg2MTA3NzY2NTc3MTY2Nzg2Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOb4YOYIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJkdXJhdGlvbl9taW51dGVzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDkxNTQxNDAwMjU0NjA4NTYxNyI+IjEg4YOs4YOj4YOX4YOYIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzMTY1MTg3MTY5MjI0OTA4Nzc1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4YOs4YOj4YOX4YOYIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJkdXJhdGlvbl9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9Ijg5MTc0Njc0OTEyNDg4MDk5NzIiPiIxIOGDoeGDkOGDkOGDl+GDmCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzg2Mzk2Mjg1NDI0Njc3MzkzMCI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOGDoeGDkOGDkOGDl+GDqOGDmCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9IlZpZGVvVmlld19lcnJvcl90aXRsZSIgbXNnaWQ9IjM1MzQ1MDkxMzU0MzgzNTMwNzciPiLhg57hg6Dhg53hg5Hhg5rhg5Thg5vhg5Thg5Hhg5gg4YOV4YOY4YOT4YOU4YOd4YOh4YOX4YOQ4YOcIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RleHRfaW52YWxpZF9wcm9ncmVzc2l2ZV9wbGF5YmFjayIgbXNnaWQ9IjMxODY2NzAzMzU5Mzg2NzA0NDQiPiLhg5Thg6Eg4YOV4YOY4YOT4YOU4YOdIOGDkOGDoCDhg5Lhg5Dhg5vhg53hg5Phg5Lhg5Thg5Hhg5Ag4YOQ4YObIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDkOGDluGDlCDhg6Hhg6Lhg6Dhg5jhg5vhg5jhg5zhg5Lhg5jhg6Hhg5fhg5Xhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RleHRfdW5rbm93biIgbXNnaWQ9IjM0NTA0MzkxNTUxODc4MTAwODUiPiLhg5Xhg5jhg5Phg5Thg53hg6Eg4YOT4YOQ4YOZ4YOV4YOg4YOQIOGDkOGDoCDhg5Dhg6Dhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOr4YOa4YOU4YOR4YOU4YOa4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlZpZGVvVmlld19lcnJvcl9idXR0b24iIG1zZ2lkPSIyODIyMjM4MjE1MTAwNjc5NTkyIj4i4YOZ4YOQ4YOg4YOS4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpdmVfdGltZSIgbXNnaWQ9IjE4MTg1NTcxNzc4Mjk0MTE0MTciPiI8eGxpZmY6ZyBpZD0iREFURSI+JTEkczwveGxpZmY6Zz4sIDx4bGlmZjpnIGlkPSJUSU1FIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vb24iIG1zZ2lkPSI3MjQ1MzUzNTI4ODE4NTg3OTA4Ij4i4YOo4YOj4YOQ4YOT4YOm4YOUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iTm9vbiIgbXNnaWQ9IjMzNDIxMjc3NDUyMzAwMTMxMjciPiLhg6jhg6Phg5Dhg5Phg6bhg5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaWRuaWdodCIgbXNnaWQ9IjcxNjYyNTk1MDg4NTA0NTc1OTUiPiLhg6jhg6Phg5Dhg6bhg5Dhg5vhg5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJNaWRuaWdodCIgbXNnaWQ9IjU2MzA4MDY5MDY4OTc4OTIyMDEiPiLhg6jhg6Phg5Dhg6bhg5Dhg5vhg5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGFwc2VkX3RpbWVfc2hvcnRfZm9ybWF0X21tX3NzIiBtc2dpZD0iNDQzMTU1NTk0MzgyODcxMTQ3MyI+Ijx4bGlmZjpnIGlkPSJNSU5VVEVTIj4lMSQwMmQ8L3hsaWZmOmc+Ojx4bGlmZjpnIGlkPSJTRUNPTkRTIj4lMiQwMmQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxhcHNlZF90aW1lX3Nob3J0X2Zvcm1hdF9oX21tX3NzIiBtc2dpZD0iMTg0NjA3MTk5NzYxNjY1NDEyNCI+Ijx4bGlmZjpnIGlkPSJIT1VSUyI+JTEkZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9Ik1JTlVURVMiPiUyJDAyZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9IlNFQ09ORFMiPiUzJDAyZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RBbGwiIG1zZ2lkPSI2ODc2NTE4OTI1ODQ0MTI5MzMxIj4i4YOn4YOV4YOU4YOa4YOQ4YOhIOGDkOGDoOGDqeGDlOGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1dCIgbXNnaWQ9IjMwOTI1Njk0MDg0Mzg2MjYyNjEiPiLhg5Dhg5vhg53hg63hg6Dhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb3B5IiBtc2dpZD0iMjY4MTk0NjIyOTUzMzUxMTk4NyI+IuGDmeGDneGDnuGDmOGDoOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3RlIiBtc2dpZD0iNTYyOTg4MDgzNjgwNTAzNjQzMyI+IuGDqeGDkOGDoeGDm+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlcGxhY2UiIG1zZ2lkPSI1NzgxNjg2MDU5MDYzMTQ4OTMwIj4i4YOp4YOQ4YOc4YOQ4YOq4YOV4YOa4YOU4YOR4YOQ4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlIiBtc2dpZD0iNjA5ODY4NDg0NDAyMTY5Nzc4OSI+IuGDrOGDkOGDqOGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvcHlVcmwiIG1zZ2lkPSIyNTM4MjExNTc5NTk2MDY3NDAyIj4iVVJMIOGDmeGDneGDnuGDmOGDoOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdFRleHRNb2RlIiBtc2dpZD0iMTAxODY5MTgxNTE0MzE2NTMyNiI+IuGDouGDlOGDpeGDoeGDouGDmOGDoSDhg5vhg53hg5zhg5jhg6jhg5Xhg5zhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXh0U2VsZWN0aW9uQ0FCVGl0bGUiIG1zZ2lkPSI1MjM2ODUwMzk0MzcwODIwMzU3Ij4i4YOi4YOU4YOl4YOh4YOi4YOY4YOhIOGDm+GDneGDnOGDmOGDqOGDleGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZFRvRGljdGlvbmFyeSIgbXNnaWQ9IjQzNTIxNjE1MzQ1MTAwNTc4NzQiPiLhg5rhg5Thg6Xhg6Hhg5jhg5nhg53hg5zhg6jhg5gg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlVGV4dCIgbXNnaWQ9IjY5Nzk2Njg0Mjg0NTgxOTkwMzQiPiLhg6zhg5Dhg6jhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnB1dE1ldGhvZCIgbXNnaWQ9IjE2NTM2MzAwNjIzMDQ1Njc4NzkiPiLhg6jhg5Thg6fhg5Xhg5Dhg5zhg5jhg6Eg4YOb4YOU4YOX4YOd4YOT4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWRpdFRleHRNZW51VGl0bGUiIG1zZ2lkPSI0OTA5MTM1NTY0OTQxODE1NDk0Ij4i4YOl4YOb4YOU4YOT4YOU4YOR4YOU4YOR4YOYIOGDouGDlOGDpeGDoeGDouGDluGDlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxvd19pbnRlcm5hbF9zdG9yYWdlX3ZpZXdfdGl0bGUiIG1zZ2lkPSI1NTc2MjcyNDk2MzY1Njg0ODM0Ij4i4YOX4YOQ4YOV4YOY4YOh4YOj4YOk4YOQ4YOa4YOYIOGDkOGDk+GDkuGDmOGDmuGDmCDhg5jhg6zhg6Phg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfaW50ZXJuYWxfc3RvcmFnZV92aWV3X3RleHQiIG1zZ2lkPSI2NjQwNTA1ODE3NjE3NDE0MzcxIj4i4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDluGDneGDkuGDmOGDlOGDoOGDl+GDm+GDkCDhg6Thg6Phg5zhg6Xhg6rhg5jhg5Dhg5sg4YOo4YOU4YOh4YOQ4YOr4YOa4YOd4YOQIOGDkOGDoCDhg5jhg5vhg6Phg6jhg5Dhg5Xhg53hg6EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfcnVubmluZ19ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4NzE4MzM1MTIxMDYwNzg3OTE0Ij4iPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiDhg5Lhg5Dhg6jhg5Xhg5Thg5Hhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfcnVubmluZ19ub3RpZmljYXRpb25fdGV4dCIgbXNnaWQ9IjQ2NTM1ODY5NDc3NDczMzAwNTgiPiLhg6jhg5Thg5Thg67hg5Thg5cg4YOb4YOU4YOi4YOYIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDmOGDoeGDkOGDl+GDleGDmOGDoSDhg5Dhg5wg4YOQ4YOe4YOY4YOhIOGDqOGDlOGDoeGDkOGDrOGDp+GDleGDlOGDouGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvayIgbXNnaWQ9IjU5NzAwNjA0MzA1NjI1MjQ5MTAiPiJPSyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjY0NDI1NjA1NzEyNTk5MzUxMzAiPiLhg5Lhg5Dhg6Phg6Xhg5vhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZXMiIG1zZ2lkPSI1MzYyOTgyMzAzMzM3OTY5MzEyIj4iT0siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJubyIgbXNnaWQ9IjUxNDE1MzEwNDQ5MzU1NDE0OTciPiLhg5Lhg5Dhg6Phg6Xhg5vhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaWFsb2dfYWxlcnRfdGl0bGUiIG1zZ2lkPSIyMDQ5NjU4NzA4NjA5MDQzMTAzIj4i4YOn4YOj4YOg4YOQ4YOT4YOm4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9hZGluZyIgbXNnaWQ9Ijc5MzM2ODEyNjAyOTYwMjExODAiPiLhg6nhg5Dhg6Lhg5Xhg5jhg6Dhg5fhg5Xhg5DigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBpdGFsX29uIiBtc2dpZD0iMTU0NDY4Mjc1NTUxNDQ5NDI5OCI+IuGDqeGDkOGDoOGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBpdGFsX29mZiIgbXNnaWQ9IjY4MTU4NzAzODY5NzI4MDU4MzIiPiLhg5Lhg5Dhg5vhg53hg6Dhg5fhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aGljaEFwcGxpY2F0aW9uIiBtc2dpZD0iNDUzMzE4NTk0NzA2NDc3MzM4NiI+IuGDm+GDneGDpeGDm+GDlOGDk+GDlOGDkeGDmOGDoSDhg5Phg5Dhg6Hhg6Dhg6Phg5rhg5Thg5Hhg5Ag4YOo4YOU4YOb4YOT4YOU4YOS4YOYIOGDoeGDkOGDqOGDo+GDkOGDmuGDlOGDkeGDmOGDlzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNVc2UiIG1zZ2lkPSI0NTgzMDE4MzY4MDAwNjEwNDM4Ij4i4YOQ4YObIOGDpeGDm+GDlOGDk+GDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSDhg5zhg5Dhg5Lhg6Phg5rhg5jhg6Hhg67hg5vhg5Thg5Xhg5Dhg5Mg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNsZWFyRGVmYXVsdEhpbnRNc2ciIG1zZ2lkPSIzMjUyNTg0Njg5NTEyMDc3MjU3Ij4i4YOc4YOQ4YOS4YOj4YOa4YOY4YOh4YOu4YOb4YOU4YOV4YOYIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmOGDoSDhg6zhg5Dhg6jhg5rhg5Ag4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDqOGDmCAmZ3Q7IOGDkOGDnuGDlOGDkeGDqOGDmCAmZ3Q7IOGDqeGDkOGDm+GDneGDouGDleGDmOGDoOGDl+GDo+GDmuGDlOGDkeGDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VBY3Rpdml0eSIgbXNnaWQ9Ijc0ODY4NzYxNDc3NTE4MDMzMzMiPiLhg5Dhg5jhg6Dhg6nhg5jhg5Thg5cg4YOb4YOd4YOl4YOb4YOU4YOT4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlVXNiQWN0aXZpdHkiIG1zZ2lkPSI2ODk0NzQ4NDE2MDczNTgzNTA5Ij4iVVNCIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDmOGDoeGDkOGDl+GDleGDmOGDoSDhg5Dhg57hg5jhg6Eg4YOo4YOU4YOg4YOp4YOU4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9BcHBsaWNhdGlvbnMiIG1zZ2lkPSIyOTkxODE0MjczOTM2NTA0Njg5Ij4i4YOV4YOU4YOg4YOqIOGDlOGDoOGDl+GDmCDhg5Dhg57hg5gg4YOV4YOU4YOgIOGDqOGDlOGDkOGDoeGDoOGDo+GDmuGDlOGDkeGDoSDhg5Dhg5sg4YOl4YOb4YOU4YOT4YOU4YOR4YOQ4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFlcnJfdGl0bGUiIG1zZ2lkPSIxOTA1ODAwNTYwMzE3MTM3NzUyIj48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFlcnJfYXBwbGljYXRpb24iIG1zZ2lkPSI5MzI2Mjg0ODgwMTMwOTI3NzYiPiLhg6Hhg5Dhg5vhg6zhg6Phg67hg5Dhg6Dhg53hg5MsIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g4YOo4YOU4YOs4YOn4YOT4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFlcnJfcHJvY2VzcyIgbXNnaWQ9IjQ1MDcwNTg5OTcwMzU2OTc1NzkiPiLhg6Hhg5Dhg5vhg6zhg6Phg67hg5Dhg6Dhg53hg5MsIOGDnuGDoOGDneGDquGDlOGDoeGDmCA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz4g4YOo4YOU4YOs4YOn4YOT4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl90aXRsZSIgbXNnaWQ9IjQzNTE5NDg0ODE0NTkxMzU3MDkiPjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX2FjdGl2aXR5X2FwcGxpY2F0aW9uIiBtc2dpZD0iMTkwNDQ3NzE4OTA1NzE5OTA2NiI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTIkczwveGxpZmY6Zz4g4YOQ4YOgIOGDoOGDlOGDkOGDkuGDmOGDoOGDlOGDkeGDoS5cblxu4YOS4YOh4YOj4YOg4YOXLCDhg5vhg5jhg6Hhg5gg4YOT4YOQ4YOu4YOj4YOg4YOV4YOQPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hY3Rpdml0eV9wcm9jZXNzIiBtc2dpZD0iNTc3NjIwOTg4MzI5OTA4OTc2NyI+Ijx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g4YOQ4YOl4YOi4YOY4YOV4YOd4YOR4YOQIOGDkOGDoCDhg6Dhg5Thg5Dhg5Lhg5jhg6Dhg5Thg5Hhg6EuXG5cbuGDkuGDoeGDo+GDoOGDlyDhg5vhg5jhg6Hhg5gg4YOT4YOQ4YOu4YOj4YOg4YOV4YOQPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hcHBsaWNhdGlvbl9wcm9jZXNzIiBtc2dpZD0iODk0MTc1NzYwNzM0MDQ4MTA1NyI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g4YOQ4YOgIOGDoOGDlOGDkOGDkuGDmOGDoOGDlOGDkeGDoS4g4YOS4YOh4YOj4YOg4YOXIOGDm+GDmOGDoeGDmCDhg5Phg5Dhg67hg6Phg6Dhg5Xhg5A/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX3Byb2Nlc3MiIG1zZ2lkPSI2NTEzMjA5ODc0ODgwNTE3MTI1Ij4i4YOe4YOg4YOd4YOq4YOU4YOh4YOYIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDhg5Dhg6Ag4YOg4YOU4YOQ4YOS4YOY4YOg4YOU4YOR4YOhLlxuXG7hg5Lhg6Hhg6Phg6Dhg5csIOGDm+GDmOGDoeGDmCDhg5Phg5Dhg67hg6Phg6Dhg5Xhg5A/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZm9yY2VfY2xvc2UiIG1zZ2lkPSI4MzQ2MDcyMDk0NTIxMjY1NjA1Ij4iT0siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXBvcnQiIG1zZ2lkPSI0MDYwMjE4MjYwOTg0Nzk1NzA2Ij4i4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FpdCIgbXNnaWQ9IjcxNDcxMTgyMTcyMjYzMTc3MzIiPiLhg5vhg53hg6rhg5Phg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWJwYWdlX3VucmVzcG9uc2l2ZSIgbXNnaWQ9IjMyNzI3NTgzNTExMzgxMjI1MDMiPiLhg5Lhg5Xhg5Thg6Dhg5Phg5gg4YOQ4YOm4YOQ4YOgIOGDoOGDlOGDkOGDkuGDmOGDoOGDlOGDkeGDoS5cblxu4YOS4YOh4YOj4YOg4YOXIOGDm+GDmOGDoeGDmCDhg5Phg5Dhg67hg6Phg6Dhg5Xhg5A/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSIxNTQ3OTk3NzgwNTA2NzEzNTgxIj4i4YOQ4YOe4YOYIOGDkuGDkOGDk+GDkOGDm+GDmOGDoeGDkOGDm+GDkOGDoOGDl+GDlOGDkeGDo+GDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX3JlcGxhY2UiIG1zZ2lkPSI2MjAyNDk4OTQ5OTcwMjgxNDEyIj4iPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiDhg5Lhg5Dhg6jhg5Xhg5Thg5Hhg6Phg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoX3dhcm5pbmdfb3JpZ2luYWwiIG1zZ2lkPSIxODgxMDIwMjMwMjE2Njg2ODMiPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+IOGDl+GDkOGDleGDk+GDkOGDnuGDmOGDoOGDleGDlOGDmuGDkOGDkyDhg5Lhg5Dhg5Thg6jhg5Xhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX3NjYWxlIiBtc2dpZD0iMzIwMjk1NTY2NzY3NTk0NDQ5OSI+IuGDm+GDkOGDoeGDqOGDouGDkOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9zaG93IiBtc2dpZD0iNDAxMzg3ODg3NjQ4NjY1NTg5MiI+IuGDp+GDneGDleGDlOGDmuGDl+GDleGDmOGDoSDhg6nhg5Xhg5Thg5zhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fY29tcGF0X21vZGVfaGludCIgbXNnaWQ9IjEwNjQ1MjQwODQ1NDMzMDQ0NTkiPiLhg67hg5Thg5rhg5Dhg67hg5Dhg5rhg5gg4YOS4YOQ4YOQ4YOl4YOi4YOY4YOj4YOg4YOU4YOR4YOQIOGDkuGDkOGDnOGDp+GDneGDpOGDmOGDmuGDlOGDkeGDkOGDqOGDmDog4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmCAmZ3Q7IOGDkOGDnuGDlOGDkeGDmCAmZ3Q7IOGDqeGDkOGDm+GDneGDouGDleGDmOGDoOGDl+GDo+GDmuGDlOGDkeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXZfYXBwbGljYXRpb24iIG1zZ2lkPSIzMzA3MjA5MTkyMTU1NDQyODI5Ij4i4YOQ4YOe4YOb4YOQIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4gKOGDnuGDoOGDneGDquGDlOGDoeGDmCA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTIkczwveGxpZmY6Zz4pIOGDk+GDkOGDkOGDoOGDpuGDleGDmOGDkCDhg6Hhg5Dhg5nhg6Phg5fhg5Dhg6Dhg5ggU3RyaWN0TW9kZSDhg5Phg5Thg5Hhg6Phg5rhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic212X3Byb2Nlc3MiIG1zZ2lkPSI1MTIwMzk3MDEyMDQ3NDYyNDQ2Ij4i4YOQ4YObIOGDnuGDoOGDneGDquGDlOGDoeGDm+GDkCA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz4g4YOT4YOQ4YOQ4YOW4YOY4YOQ4YOc4YOQIOGDoeGDkOGDmeGDo+GDl+GDkOGDoOGDmCBTdHJpY3RNb2RlIOGDk+GDlOGDkeGDo+GDmuGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ190aXRsZSIgbXNnaWQ9IjE1ODQxOTIyODU0NDE0MDU3NDYiPiJBbmRyb2lkIOGDkOGDruGDkOGDmiDhg5Xhg5Thg6Dhg6Hhg5jhg5Dhg5bhg5Qg4YOS4YOQ4YOT4YOQ4YOT4YOY4YOh4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfYXBrIiBtc2dpZD0iNzkwNDA0MjY4MjExMTUyNjE2OSI+Ijx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JTEkZDwveGxpZmY6Zz4g4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOY4YOhICjhg6Hhg6Phg5ogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRkPC94bGlmZjpnPi3hg5Phg5Dhg5wpICDhg53hg57hg6Lhg5jhg5vhg5jhg5bhg5Dhg6rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfc3RhcnRpbmdfYXBwcyIgbXNnaWQ9IjQ1MTQ2NDUxNjM0NjkyNjcxMyI+IuGDkOGDnuGDlOGDkeGDmOGDoSDhg6nhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19jb21wbGV0ZSIgbXNnaWQ9IjE0MDU5NTQ3NTQxMTI5OTkyMjkiPiLhg6nhg5Dhg6Lhg5Xhg5jhg6Dhg5fhg5Xhg5jhg6Eg4YOT4YOQ4YOh4YOQ4YOh4YOg4YOj4YOa4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9ub3RpZmljYXRpb24iIG1zZ2lkPSI5MDg3MDYzOTg1Nzc2NjI2MTY2Ij4iPHhsaWZmOmcgaWQ9IkFQUCI+JTEkczwveGxpZmY6Zz4g4YOS4YOQ4YOo4YOV4YOU4YOR4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X25vdGlmaWNhdGlvbl9kZXRhaWwiIG1zZ2lkPSIxNzIxNjgxNzQxNjE3ODk4ODY1Ij4i4YOQ4YOe4YOW4YOUIOGDkuGDkOGDk+GDkOGDoeGDkOGDoOGDl+GDleGDlOGDmuGDkOGDkyDhg6jhg5Thg5Thg67hg5Thg5ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfc3dpdGNoZXJfdGl0bGUiIG1zZ2lkPSI3MTUzMTY3MDg1NDAzMjk4MTY5Ij4i4YOS4YOh4YOj4YOg4YOXLCDhg5Dhg57hg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOT4YOQ4YOg4YOX4YOV4YOQPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9zd2l0Y2hlcl90ZXh0IiBtc2dpZD0iNzAyMjYzMTkyNDUzNDQwNjQwMyI+IuGDoeGDruGDleGDkCDhg5Dhg57hg5gg4YOQ4YOg4YOY4YOhIOGDo+GDmeGDleGDlCDhg5Lhg5Dhg6jhg5Xhg5Thg5Hhg6Phg5rhg5gsIOGDoOGDneGDm+GDlOGDmuGDmOGDqiDhg6Phg5zhg5Phg5Ag4YOo4YOU4YOp4YOU4YOg4YOT4YOU4YOhIOGDkOGDruGDmuGDmOGDoSDhg5Phg5Dhg6zhg6fhg5Thg5Hhg5Dhg5vhg5Phg5QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkX2FwcF9hY3Rpb24iIG1zZ2lkPSI0OTMxMjkxNzIyMzg1NjYyODIiPiI8eGxpZmY6ZyBpZD0iT0xEX0FQUCI+JTEkczwveGxpZmY6Zz4t4YOX4YOQ4YOcIOGDk+GDkOGDkeGDoOGDo+GDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9sZF9hcHBfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMDgyMDk0Mjc1NTgwMzU4MDQ5Ij4i4YOQ4YOgIOGDqeGDkOGDoOGDl+GDneGDlyDhg5Dhg67hg5Dhg5rhg5gg4YOQ4YOe4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5ld19hcHBfYWN0aW9uIiBtc2dpZD0iNTQ3Mjc1NjkyNjk0NTQ0MDcwNiI+IuGDk+GDkOGDoeGDkOGDrOGDp+GDmOGDoeGDmCA8eGxpZmY6ZyBpZD0iT0xEX0FQUCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXdfYXBwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTkzMjE0MzU5ODM3MTUzNzM0MCI+IuGDqOGDlOGDkOGDqeGDlOGDoOGDlCDhg6vhg5Xhg5Thg5rhg5gg4YOQ4YOe4YOYIOGDquGDleGDmuGDmOGDmuGDlOGDkeGDlOGDkeGDmOGDoSDhg6jhg5Thg5zhg5Dhg67hg5Xhg5jhg6Eg4YOS4YOQ4YOg4YOU4YOo4YOULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbmRUZXh0IiBtc2dpZD0iNTIwOTg3NDU3MTk1OTQ2OTE0MiI+IuGDqOGDlOGDkOGDoOGDqeGDmOGDlOGDlyDhg6Xhg5vhg5Thg5Phg5Thg5Hhg5Ag4YOi4YOU4YOl4YOh4YOi4YOY4YOh4YOX4YOV4YOY4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9yaW5ndG9uZSIgbXNnaWQ9IjY4ODU0MjE0MDY4NDU3MzQ2NTAiPiLhg5vhg6Dhg5Thg5nhg5Dhg5Xhg5jhg6Eg4YOu4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljIiBtc2dpZD0iNTQyMTY1MTE1NzEzODYyODE3MSI+IuGDm+GDlOGDk+GDmOGDmOGDoSDhg67hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfbXVzaWNfaGludF9wbGF5aW5nX3Rocm91Z2hfYmx1ZXRvb3RoIiBtc2dpZD0iOTE2NTk4NDM3OTM5NDYwMTUzMyI+IuGDk+GDkOGDmeGDleGDoOGDkCBCbHVldG9vdGgt4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9tdXNpY19oaW50X3NpbGVudF9yaW5ndG9uZV9zZWxlY3RlZCIgbXNnaWQ9IjgzMTA3Mzk5NjA5NzMxNTYyNzIiPiLhg5Dhg6Dhg6nhg5Thg6Phg5rhg5jhg5Ag4YOj4YOu4YOb4YOdIOGDoOGDlOGDn+GDmOGDm+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9jYWxsIiBtc2dpZD0iMzk0MTY4MDA0MTI4Mjc4ODcxMSI+IuGDruGDm+GDmOGDoSDhg6Hhg5jhg5vhg5Dhg6bhg5rhg5Qg4YOW4YOQ4YOg4YOY4YOhIOGDk+GDoOGDneGDoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9ibHVldG9vdGhfY2FsbCIgbXNnaWQ9IjIwMDI4OTE5MjYzNTExNTE1MzQiPiJCbHVldG9vdGgg4YOu4YOb4YOY4YOhIOGDoeGDmOGDm+GDkOGDpuGDmuGDlCDhg5bhg5Dhg6Dhg5jhg6Eg4YOT4YOg4YOd4YOhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2FsYXJtIiBtc2dpZD0iMTk4NTE5MTYxNjA0MjY4OTEwMCI+IuGDm+GDkOGDpuGDleGDmOGDq+GDkOGDoOGDkOGDoSDhg67hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfbm90aWZpY2F0aW9uIiBtc2dpZD0iMjQyMjI2NTY1Njc0NDI3NjcxNSI+IuGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDmOGDoSDhg67hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfdW5rbm93biIgbXNnaWQ9IjE0MDAyMTk2Njk3NzA0NDU5MDIiPiLhg67hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9ibHVldG9vdGgiIG1zZ2lkPSI2NTM4ODk0MTc3MjU1OTY0MzQwIj4iQmx1ZXRvb3RoLeGDmOGDoSDhg67hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9yaW5nZXIiIG1zZ2lkPSIzMzI2MDAzODQ3MDA2MTYyNDk2Ij4i4YOW4YOQ4YOg4YOY4YOhIOGDoeGDmOGDm+GDkOGDpuGDmuGDlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX2luY2FsbCIgbXNnaWQ9Ijg4OTAwNzMyMTgxNTQ1NDMzOTciPiLhg5bhg5Dhg6Dhg5jhg6Eg4YOu4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2ljb25fZGVzY3JpcHRpb25fbWVkaWEiIG1zZ2lkPSI0MjE3MzExNzE5NjY1MTk0MjE1Ij4i4YOb4YOU4YOT4YOY4YOY4YOhIOGDruGDm+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjcwNDQ5ODY1NDY0NzcyODIyNzQiPiLhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5jhg6Eg4YOu4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfZGVmYXVsdCIgbXNnaWQ9IjM3ODk3NTg5ODAzNTc2OTY5MzYiPiLhg5zhg5Dhg5Lhg6Phg5rhg5jhg6Hhg67hg5vhg5Thg5Xhg5gg4YOW4YOQ4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfZGVmYXVsdF93aXRoX2FjdHVhbCIgbXNnaWQ9IjgxMjk1NjM0ODA4OTU5OTAzNzIiPiLhg5zhg5Dhg5Lhg6Phg5rhg5jhg6Hhg67hg5vhg5Thg5Xhg5gg4YOW4YOQ4YOg4YOYICg8eGxpZmY6ZyBpZD0iQUNUVUFMX1JJTkdUT05FIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV9zaWxlbnQiIG1zZ2lkPSI3OTM3NjM0MzkyNDA4OTc3MDYyIj4i4YOQ4YOg4YOqIOGDlOGDoOGDl+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX3BpY2tlcl90aXRsZSIgbXNnaWQ9IjM1MTUxNDM5MzkxNzUxMTkwOTQiPiLhg5bhg5Dhg6Dhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV91bmtub3duIiBtc2dpZD0iNTQ3NzkxOTk4ODcwMTc4NDc4OCI+IuGDo+GDquGDnOGDneGDkeGDmCDhg5bhg5Dhg6Dhg5giPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9IndpZmlfYXZhaWxhYmxlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjY1NDEyMzk4NzQxODE2ODY5MyI+IldpLUZpIOGDpeGDoeGDlOGDmuGDmCDhg67hg5Thg5rhg5vhg5jhg6Hhg5Dhg6zhg5Xhg5Phg53hg5vhg5jhg5AiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQxOTI0MjQ0ODkxNjgzOTczODYiPiJXaS1GaSDhg6Xhg6Hhg5Thg5rhg5Thg5Hhg5gg4YOu4YOU4YOa4YOb4YOY4YOh4YOQ4YOs4YOV4YOT4YOd4YOb4YOY4YOQLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0id2lmaV9hdmFpbGFibGVfZGV0YWlsZWQiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIxNjM0MTAxNDUwMzQzMjc3MzQ1Ij4i4YOu4YOU4YOa4YOb4YOY4YOh4YOQ4YOs4YOV4YOT4YOd4YOb4YOYIFdpLUZpIOGDpeGDoeGDlOGDmuGDlOGDkeGDmOGDoSDhg5Lhg5Dhg67hg6Hhg5zhg5AiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc5MTU4OTUzMjM2NDQyOTI3NjgiPiLhg67hg5Thg5rhg5vhg5jhg6Hhg5Dhg6zhg5Xhg5Phg53hg5vhg5ggV2ktRmkg4YOl4YOh4YOU4YOa4YOU4YOR4YOY4YOhIOGDkuGDkOGDruGDoeGDnOGDkCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfYXZhaWxhYmxlX3NpZ25faW4iIG1zZ2lkPSI0MDI5NDg5NzE2NjA1MjU1Mzg2Ij4iV2ktRmkg4YOl4YOh4YOU4YOa4YOX4YOQ4YOcIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5ldHdvcmtfYXZhaWxhYmxlX3NpZ25faW4iIG1zZ2lkPSI4NDk1MTU1NTkzMzU4MDU0Njc2Ij4i4YOl4YOh4YOU4YOa4YOo4YOYIOGDqOGDlOGDoeGDleGDmuGDkCI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBuZXR3b3JrX2F2YWlsYWJsZV9zaWduX2luX2RldGFpbGVkICg4MDAwMDgxOTQxNDQ3OTc2MTE4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkIiBtc2dpZD0iNzkwNDIxNDIzMTY1MTU0NjM0NyI+IldpLUZpLeGDl+GDkOGDnCDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg5Ag4YOV4YOU4YOgIOGDm+GDneGDruGDlOGDoOGDruGDk+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfd2F0Y2hkb2dfbmV0d29ya19kaXNhYmxlZF9kZXRhaWxlZCIgbXNnaWQ9IjU1NDg3ODA3NzY0MTgzMzI2NzUiPiIg4YOQ4YOl4YOV4YOhIOGDquGDo+GDk+GDmCDhg5jhg5zhg6Lhg5Thg6Dhg5zhg5Thg6Ig4YOZ4YOQ4YOV4YOo4YOY4YOg4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijk3NjExNzgyNjU5MzI0NTE3Ij4iV2ktRmkgRGlyZWN0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfdHVybm9uX21lc3NhZ2UiIG1zZ2lkPSIyOTA5MjUwOTQyMjk5NjI3MjQ0Ij4i4YOp4YOQ4YOg4YOX4YOU4YOXIFdpLUZpIERpcmVjdC4g4YOU4YOhIOGDkuGDkOGDm+GDneGDmOGDrOGDleGDlOGDleGDoSBXaS1GaSDhg5nhg5rhg5jhg5Thg5zhg6Lhg5jhg6Hhg5Av4YOj4YOh4YOQ4YOT4YOU4YOc4YOdIOGDpeGDoeGDlOGDmuGDmOGDoSDhg5Lhg5Dhg5vhg53hg6Dhg5fhg5Xhg5Dhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZmFpbGVkX21lc3NhZ2UiIG1zZ2lkPSIzNzYzNjY5Njc3OTM1NjIzMDg0Ij4i4YOV4YOU4YOgIOGDm+GDneGDruGDlOGDoOGDruGDk+GDkCBXaS1GaSBEaXJlY3Qt4YOY4YOhIOGDkuGDkOGDqOGDleGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9lbmFibGVkX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIwNjgzMjE4ODE2NzM3MzQ4ODYiPiJXaS1GaSBEaXJlY3Qg4YOp4YOQ4YOg4YOX4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW5hYmxlZF9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjE2Mzg5NDk5NTM5OTM4OTQzMzUiPiLhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOo4YOU4YOU4YOu4YOU4YOXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMTY0NTI2NzI1OTI3MjgyOTU1OSI+IuGDm+GDmOGDpuGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlY2xpbmUiIG1zZ2lkPSIyMTEyMjI1NDUxNzA2MTM3ODk0Ij4i4YOj4YOQ4YOg4YOn4YOd4YOk4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfaW52aXRhdGlvbl9zZW50X3RpdGxlIiBtc2dpZD0iMTMxODk3NTE4NTExMjA3MDczNCI+IuGDm+GDneGDrOGDleGDlOGDleGDkCDhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5jhg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9pbnZpdGF0aW9uX3RvX2Nvbm5lY3RfdGl0bGUiIG1zZ2lkPSI0OTU4ODAzOTQ4NjU4NTMzNjM3Ij4i4YOb4YOd4YOs4YOV4YOU4YOV4YOQIOGDk+GDkOGDoeGDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDmuGDkOGDkyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2Zyb21fbWVzc2FnZSIgbXNnaWQ9IjU3MDM4OTE3NDczMTk1MTc2OSI+IuGDkuGDkOGDm+GDkuGDluGDkOGDleGDnOGDmDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF90b19tZXNzYWdlIiBtc2dpZD0iMjQ4OTY4OTc0NTIyMDQ0MDk5Ij4i4YOb4YOY4YOb4YOm4YOU4YOR4YOYOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VudGVyX3Bpbl9tZXNzYWdlIiBtc2dpZD0iNTkyMDkyOTU1MDM2NzgyODk3MCI+IuGDqOGDlOGDmOGDp+GDleGDkOGDnOGDlOGDlyDhg6Hhg5Dhg63hg5jhg6Dhg50gUElOOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX3Nob3dfcGluX21lc3NhZ2UiIG1zZ2lkPSI4NTMwNTYzMzIzODgwOTIxMDk0Ij4i4YOe4YOY4YOcLeGDmeGDneGDk+GDmDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcmVxdWVuY3lfY29uZmxpY3RfbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODAxMjk4MTI1Nzc0MjIzMjQ3NSI+IuGDouGDkOGDkeGDmuGDlOGDouGDmCDhg5Phg6Dhg53hg5Thg5Hhg5jhg5cg4YOS4YOQ4YOY4YOX4YOY4YOo4YOU4YOR4YOQIFdpLUZpLeGDk+GDkOGDnCwg4YOh4YOQ4YOc4YOQ4YObIOGDm+GDmOGDlOGDoOGDl+GDlOGDkeGDo+GDmuGDmOGDkCA8eGxpZmY6ZyBpZD0iREVWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+LeGDluGDlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzM2MzkwNzIxMzc4NzQ2OTE1MSI+IuGDouGDlOGDmuGDlOGDpOGDneGDnOGDmCDhg5Phg6Dhg53hg5Thg5Hhg5jhg5cg4YOS4YOQ4YOY4YOX4YOY4YOo4YOU4YOR4YOQIFdpLUZpLeGDk+GDkOGDnCwg4YOh4YOQ4YOc4YOQ4YObIOGDm+GDmOGDlOGDoOGDl+GDlOGDkeGDo+GDmuGDmOGDkCA8eGxpZmY6ZyBpZD0iREVWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+LeGDluGDlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9jaGFyYWN0ZXIiIG1zZ2lkPSIzMzY1NTUwMTIwNjE3NzAxNzQ1Ij4i4YOh4YOY4YOb4YOR4YOd4YOa4YOd4YOhIOGDqeGDkOGDoeGDm+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX3RpdGxlIiBtc2dpZD0iNzI5NjYxMjc4MTEyODkxNzcxOSI+IlNNUyDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5gg4YOY4YOS4YOW4YOQ4YOV4YOc4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfbWVzc2FnZSIgbXNnaWQ9IjM4Njc4OTkxNjk2NTE0OTY0MzMiPiImbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0O+GDkOGDkuGDluGDkOGDleGDnOGDmOGDoSDhg5Phg5jhg5Phg5gg4YOg4YOQ4YOd4YOT4YOU4YOc4YOd4YOR4YOY4YOhIFNNUyDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg6EuIOGDkuGDoeGDo+GDoOGDlywg4YOb4YOY4YOh4YOq4YOU4YOXIOGDkOGDmyDhg5Dhg57hg6Eg4YOj4YOk4YOa4YOU4YOR4YOQIOGDkuGDkOGDkOGDkuGDoOGDq+GDlOGDmuGDneGDoSDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOS4YOW4YOQ4YOV4YOc4YOQPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX3llcyIgbXNnaWQ9IjM2NjM3MjU5OTM4NTU4MTY4MDciPiLhg6Phg6Thg5rhg5Thg5Hhg5jhg6Eg4YOb4YOY4YOq4YOU4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfbm8iIG1zZ2lkPSI2MjU0Mzg1NjEzOTU1MzQ5ODIiPiLhg6Phg5Dhg6Dhg6fhg53hg6Thg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX21lc3NhZ2UiIG1zZ2lkPSIxNjQ1NDM2NDY2Mjg1MzEwODU1Ij4iJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDsg4YOh4YOj4YOg4YOhIOGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5AgJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkRFU1RfQUREUkVTUyI+JTIkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7LeGDmOGDoeGDl+GDleGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9kZXRhaWxzIiBtc2dpZD0iMzQ5MjAyNTcxOTg2ODA3ODQ1NyI+IuGDkOGDm+GDkOGDnCAiPGZvbnQgZmdjb2xvcj0iI2ZmZmZiMDYwIj4i4YOo4YOU4YOh4YOQ4YOr4YOa4YOd4YOQIOGDkuGDkOGDm+GDneGDmOGDrOGDleGDmOGDneGDoSDhg6rhg5Xhg5rhg5jhg5rhg5Thg5Hhg5Thg5Hhg5giPC9mb250PiIg4YOX4YOl4YOV4YOU4YOc4YOYIOGDm+GDneGDkeGDmOGDmuGDo+GDoOGDmOGDoSDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5bhg5QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3ByZW1pdW1fc2hvcnRfY29kZV9kZXRhaWxzIiBtc2dpZD0iNTUyMzgyNjM0OTEwNTEyMzY4NyI+PGZvbnQgZmdjb2xvcj0iI2ZmZmZiMDYwIj4i4YOU4YOhIOGDkuGDkOGDm+GDneGDmOGDrOGDleGDlOGDleGDoSDhg5Phg5Dhg5zhg5Dhg67hg5Dhg6Dhg6/hg5Thg5Hhg6Eg4YOX4YOl4YOV4YOU4YOcIOGDm+GDneGDkeGDmOGDmuGDo+GDoCDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5bhg5QuIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fYWxsb3ciIG1zZ2lkPSI0NDU4ODc4NjM3MTExMDIzNDEzIj4i4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9kZW55IiBtc2dpZD0iMjkyNzM4OTg0MDIwOTE3MDcwNiI+IuGDkuGDkOGDo+GDpeGDm+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX2Nob2ljZSIgbXNnaWQ9IjUyODk1Mzg1OTIyNzIyMTgxMzYiPiLhg6nhg5Thg5vhg5gg4YOQ4YOg4YOp4YOU4YOV4YOQ4YOc4YOY4YOhIOGDk+GDkOGDm+GDkOGDruGDoeGDneGDleGDoOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX3VuZG9faW5zdHJ1Y3Rpb24iIG1zZ2lkPSI0OTYwOTQ0MTMzMDUyMjg3NDg0Ij4i4YOQ4YOb4YOY4YOhIOGDqOGDlOGDquGDleGDmuGDkCDhg6jhg5Thg5Lhg5jhg6vhg5rhg5jhg5Dhg5cg4YOb4YOd4YOS4YOV4YOY4YOQ4YOc4YOU4YOR4YOY4YOXIOGDkOGDnuGDlOGDkeGDmOGDoSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5jhg5Phg5Dhg5wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9hbHdheXNfYWxsb3ciIG1zZ2lkPSIzMjQxMTgxMTU0ODY5NDkzMzY4Ij4i4YOc4YOU4YOR4YOQ4YOg4YOX4YOV4YOY4YOhIOGDm+GDmOGDquGDlOGDm+GDkCAtIOGDp+GDneGDleGDlOGDmuGDl+GDleGDmOGDoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fbmV2ZXJfYWxsb3ciIG1zZ2lkPSI0NDY5OTI3NjU3NzQyNjk2NzMiPiLhg5Dhg6Dhg5Dhg6Hhg53hg5Phg5Thg6Eg4YOb4YOY4YOh4YOq4YOUIOGDo+GDpOGDmuGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9yZW1vdmVkX3RpdGxlIiBtc2dpZD0iNjIyNzcxMjMxOTIyMzIyNjE4NSI+IlNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5gg4YOQ4YOb4YOd4YOm4YOU4YOR4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX3JlbW92ZWRfbWVzc2FnZSIgbXNnaWQ9IjIzMzMxNjQ1NTk5NzA5NTg2NDUiPiLhg5vhg53hg5Hhg5jhg5rhg6Phg6Dhg5gg4YOZ4YOQ4YOV4YOo4YOY4YOg4YOYIOGDkOGDoCDhg5jhg6Xhg5zhg5Thg5Hhg5Ag4YOu4YOU4YOa4YOb4YOY4YOh4YOQ4YOs4YOV4YOT4YOd4YOb4YOYLCDhg5Xhg5jhg5Phg6Dhg5Qg4YOQ4YOgIOGDqeGDkOGDk+GDlOGDkeGDlyDhg6Xhg5vhg5Thg5Phg5jhg5cgU0lNIOGDkeGDkOGDoOGDkOGDl+GDoSDhg5Phg5Ag4YOS4YOQ4YOT4YOQ4YOi4YOV4YOY4YOg4YOX4YOQ4YOV4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9kb25lX2J1dHRvbiIgbXNnaWQ9IjgyNzk0OTk4OTM2OTk2Mzc3NSI+IuGDk+GDkOGDoeGDoOGDo+GDmuGDk+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9hZGRlZF90aXRsZSIgbXNnaWQ9IjM3MTk2NzA1MTI4ODk2NzQ2OTMiPiJTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOYIOGDk+GDkOGDlOGDm+GDkOGDouGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9hZGRlZF9tZXNzYWdlIiBtc2dpZD0iNjU5OTk0NTMwMTE0MTA1MDIxNiI+IuGDkuGDkOGDk+GDkOGDouGDleGDmOGDoOGDl+GDlOGDlyDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOQIOGDm+GDneGDkeGDmOGDmuGDo+GDoCDhg6Xhg6Hhg5Thg5rhg5bhg5Qg4YOs4YOV4YOT4YOd4YOb4YOY4YOh4YOX4YOV4YOY4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9yZXN0YXJ0X2J1dHRvbiIgbXNnaWQ9IjQ3MjI0MDc4NDI4MTUyMzIzNDciPiLhg5Lhg5Dhg5Phg5Dhg6Lhg5Xhg5jhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4MzQ5MzYyNjIzMDY4ODE5Mjk1Ij4i4YOT4YOg4YOd4YOY4YOhIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjU4Nzk0NTA2NTk0NTM3ODIyNzgiPiLhg5fhg5Dhg6Dhg5jhg6bhg5jhg6Eg4YOT4YOQ4YOn4YOU4YOc4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV90aW1lX3NldCIgbXNnaWQ9IjU3NzcwNzU2MTQzMjEwODc3NTgiPiLhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3RpbWVfZG9uZSIgbXNnaWQ9IjI1MDc2ODM3NTE3NTkzMDg4MjgiPiLhg5Phg5Dhg6Hhg6Dhg6Phg5rhg5Phg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtc19uZXdfcGVybV9wcmVmaXgiIG1zZ2lkPSI4MjU3NzQwNzEwNzU0MzAxNDA3Ij48Zm9udCBzaXplPSIxMiIgZmdjb2xvcj0iI2ZmMzNiNWU1Ij4i4YOQ4YOu4YOQ4YOa4YOYOiAiPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybXNfZGVzY3JpcHRpb25fYXBwIiBtc2dpZD0iNTEzOTgzNjE0MzI5MzI5OTQxNyI+IuGDm+GDneGDm+GDrOGDneGDk+GDlOGDkeGDlOGDmuGDmDogPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19wZXJtaXNzaW9ucyIgbXNnaWQ9IjcyODMzNTc3MjgyMTkzMzgxMTIiPiLhg5zhg5Thg5Hhg5Dhg6Dhg5fhg5Xhg5Ag4YOh4YOQ4YOt4YOY4YOg4YOdIOGDkOGDoCDhg5Dhg6Dhg5jhg6EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtX2Nvc3RzX21vbmV5IiBtc2dpZD0iNDkwMjQ3MDMyNDE0MjE1MTExNiI+IuGDkOGDm+GDmOGDoeGDkOGDl+GDleGDmOGDoSDhg6jhg5Thg6Hhg5Dhg6vhg5rhg53hg5Ag4YOb4YOd4YOS4YOY4YOs4YOY4YOd4YOXIOGDl+GDkOGDnOGDruGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg67hg5Phg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9hY3Rpdml0eV90aXRsZSIgbXNnaWQ9IjQ0NjUwNTUxNTcyMDk2NDg2NDEiPiJVU0Ig4YOb4YOQ4YOh4YOY4YOj4YOg4YOYIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3RpdGxlIiBtc2dpZD0iNTkwMTQ1OTA0MTM5ODc1MTQ5NSI+IlVTQiDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMzMDg1MzgwOTQzMTY0Nzc4MzkiPiLhg5fhg6Xhg5Xhg5Thg5wg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOj4YOa4YOYIOGDruGDkOGDoOGDlyDhg5nhg53hg5vhg57hg5jhg6Phg6Lhg5Thg6Dhg5fhg5Dhg5wgVVNCLeGDmOGDoSDhg5vhg5Thg6jhg5Xhg5Thg53hg5Hhg5jhg5cuIOGDl+GDoyDhg5Lhg6Hhg6Phg6Dhg5cg4YOZ4YOd4YOb4YOe4YOY4YOj4YOi4YOU4YOg4YOh4YOQIOGDk+GDkCDhg5fhg6Xhg5Xhg5Thg5zhg6EgQW5kcm9pZCBVU0Ig4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOQ4YOhIOGDqOGDneGDoOGDmOGDoSDhg6Thg5Dhg5jhg5rhg5Thg5Hhg5jhg6Eg4YOZ4YOd4YOe4YOY4YOg4YOU4YOR4YOQIOGDqOGDlOGDlOGDruGDlOGDlyDhg6Xhg5Xhg5Thg5vhg53hg5cg4YOb4YOT4YOU4YOR4YOQ4YOg4YOUIOGDpuGDmOGDmuGDkOGDmeGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA1MzUxMDAwNDQ2MDM3ODExIj4i4YOX4YOl4YOV4YOU4YOcIOGDk+GDkOGDo+GDmeGDkOGDleGDqOGDmOGDoOGDk+GDmOGDlyDhg5nhg53hg5vhg57hg5jhg6Phg6Lhg5Thg6Dhg6EgVVNCLeGDmOGDoSDhg5vhg5Thg6jhg5Xhg5Thg53hg5Hhg5jhg5cuIOGDqOGDlOGDlOGDruGDlOGDlyDhg6Xhg5Xhg5Thg5vhg53hg5cg4YOb4YOT4YOU4YOR4YOQ4YOg4YOUIOGDpuGDmOGDmuGDkOGDmeGDoSwg4YOX4YOjIOGDkuGDoeGDo+GDoOGDlyDhg6Thg5Dhg5jhg5rhg5Thg5Hhg5jhg6Eg4YOZ4YOd4YOe4YOY4YOg4YOU4YOR4YOQIOGDl+GDpeGDleGDlOGDnCDhg5nhg53hg5vhg57hg5jhg6Phg6Lhg5Thg6Dhg6Hhg5Ag4YOT4YOQIEFuZHJvaWQgU0Qg4YOR4YOQ4YOg4YOQ4YOX4YOhIOGDqOGDneGDoOGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9idXR0b25fbW91bnQiIG1zZ2lkPSIxMDUyMjU5OTMwMzY5NTA4MjM1Ij4iVVNCIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg6nhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMwMTcwNDUyMTczNjU1NDA2NTgiPiJVU0Ig4YOb4YOQ4YOh4YOY4YOj4YOg4YOYIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSDhg5fhg6Xhg5Xhg5Thg5zhg5ggVVNCIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5Ag4YOe4YOg4YOd4YOR4YOa4YOU4YOb4YOQ4YOhIOGDpeGDm+GDnOGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjg3NjAxODUxMjcxNjk3MDMxMyI+IlVTQiDhg5vhg5Dhg6Hhg5jhg6Phg6Dhg5gg4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOY4YOh4YOX4YOV4YOY4YOhIOGDl+GDpeGDleGDlOGDnOGDmCBTRCDhg5Hhg5Dhg6Dhg5Dhg5fhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOQIOGDnuGDoOGDneGDkeGDmuGDlOGDm+GDkOGDoSDhg6Xhg5vhg5zhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODE3NTg5MjU1NDc1NzIxNjUyNSI+IlVTQiDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkzOTgyMjc4MzgyODE4Mzc2MyI+IuGDqOGDlOGDlOGDruGDlOGDlyDhg6Thg5Dhg5jhg5rhg5Thg5Hhg5jhg6Eg4YOZ4YOd4YOe4YOY4YOg4YOU4YOR4YOY4YOh4YOQ4YOX4YOV4YOY4YOhIOGDmeGDneGDm+GDnuGDmOGDo+GDouGDlOGDoOGDqOGDmC/hg5nhg53hg5vhg57hg5jhg6Phg6Lhg5Thg6Dhg5jhg5Phg5Dhg5wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMzM2MDU4Mzk2NjYzNTE2MDE3Ij4iVVNCIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5vhg53hg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTY1Njg1MjA5ODU1NTYyMzgyMiI+IuGDqOGDlOGDlOGDruGDlOGDlyBVU0Ig4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOY4YOhIOGDkuGDkOGDm+GDneGDoeGDkOGDoOGDl+GDleGDlOGDmuGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX3RpdGxlIiBtc2dpZD0iNjYwMTI5ODUxNzA4Nzc1ODUzIj4i4YOu4YOT4YOU4YOR4YOQIFVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQyNjQwMjUyODA3NzcyMTk1MjEiPiJVU0Ig4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOY4YOhIOGDkuGDkOGDm+GDneGDoOGDl+GDleGDkOGDm+GDk+GDlCwg4YOS4YOQ4YOb4YOd4YOY4YOm4YOU4YOXIOGDl+GDpeGDleGDlOGDnOGDmCBBbmRyb2lkLeGDmOGDoSBVU0Ig4YOX4YOl4YOV4YOU4YOc4YOYIOGDmeGDneGDm+GDnuGDmOGDo+GDouGDlOGDoOGDmOGDk+GDkOGDnC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MDQzOTY5NzgyNDYwNjEzMTE0Ij4iVVNCIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5vhg53hg6Dhg5fhg5Xhg5Dhg5vhg5Phg5QsIOGDkuGDkOGDm+GDneGDkOGDlOGDoOGDl+GDlOGDlyDhg5fhg6Xhg5Xhg5Thg5zhg5ggQW5kcm9pZCBTRCDhg5Hhg5Dhg6Dhg5Dhg5fhg5gg4YOZ4YOd4YOb4YOe4YOY4YOj4YOi4YOU4YOg4YOY4YOT4YOQ4YOcLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfYnV0dG9uX21vdW50IiBtc2dpZD0iNzA2MDIxODAzNDkwMDY5NjAyOSI+IlVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9lcnJvcl9tZXNzYWdlIiBtc2dpZD0iMTk3MDM3NDg5ODI2MzA2MzgzNiI+IlVTQi3hg5Lhg5Dhg5vhg53hg6Dhg5fhg5Xhg5jhg6Hhg5Dhg6Eg4YOs4YOQ4YOg4YOb4YOd4YOY4YOo4YOV4YOQIOGDqOGDlOGDquGDk+GDneGDm+GDkC4g4YOo4YOU4YOQ4YOb4YOd4YOs4YOb4YOU4YOXLCDhg6Dhg53hg5sg4YOS4YOQ4YOX4YOY4YOo4YOU4YOXIOGDl+GDpeGDleGDlOGDnOGDmCBVU0Ig4YOw4YOd4YOh4YOi4YOYLCDhg6jhg5Thg5vhg5Phg5Thg5Ig4YOh4YOq4YOQ4YOT4YOU4YOXIOGDruGDlOGDmuGDkOGDruGDmuGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfY29uZmlybV9raWxsX3N0b3JhZ2VfdXNlcnNfdGl0bGUiIG1zZ2lkPSI5NjMwMzkwMzM0NzA0Nzg2OTciPiJVU0Ig4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOY4YOhIOGDqeGDkOGDoOGDl+GDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190ZXh0IiBtc2dpZD0iNTEwMDQyODc1NzEwNzQ2OTQ1NCI+IuGDl+GDoyBVU0Ig4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOQ4YOhIOGDqeGDkOGDoOGDl+GDkOGDleGDlywg4YOX4YOl4YOV4YOU4YOcIOGDm+GDmOGDlOGDoCDhg5vhg53hg67hg5vhg5Dhg6Dhg5Thg5Hhg5Dhg5Phg5gg4YOg4YOQ4YOb4YOT4YOU4YOc4YOY4YOb4YOUIOGDkOGDnuGDmCDhg6jhg5Thg6zhg6fhg5Xhg5Thg6Lhg6Eg4YOb4YOj4YOo4YOQ4YOd4YOR4YOQ4YOhIOGDk+GDkCDhg6jhg5Thg6Hhg5Dhg6vhg5rhg53hg5Ag4YOb4YOY4YOj4YOs4YOV4YOT4YOd4YOb4YOU4YOa4YOYIOGDkuGDkOGDruGDk+GDlOGDoSBVU0Ig4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOY4YOhIOGDkuGDkOGDm+GDneGDoOGDl+GDleGDkOGDm+GDk+GDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfZXJyb3JfdGl0bGUiIG1zZ2lkPSI3MzIzNjU4NDY5NjI2NTE0MjA3Ij4iVVNCIOGDneGDnuGDlOGDoOGDkOGDquGDmOGDkCDhg6zhg5Dhg6Dhg6Phg5vhg5Dhg6Lhg5Thg5Hhg5Thg5rhg5gg4YOY4YOn4YOdIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX29rIiBtc2dpZD0iNzM3Njk1MzE2NzAzOTg2NTcwMSI+Ik9LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX210cF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIzNjk5OTEzMDk3MzkxNTUwMzk0Ij4i4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOj4YOa4YOY4YOQIOGDoOGDneGDkuGDneGDoOGDqiDhg5vhg5Thg5Phg5jhg5Ag4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3B0cF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIxOTYwODE3MTkyMjE2MDY0ODMzIj4i4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOj4YOa4YOY4YOQIOGDoOGDneGDkuGDneGDoOGDqiDhg5nhg5Dhg5vhg5Thg6Dhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfY2RfaW5zdGFsbGVyX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY3NzQ3MTI4Mjc4OTIwOTA3NTQiPiLhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg6Phg5rhg5jhg5Ag4YOg4YOd4YOS4YOd4YOg4YOqIOGDk+GDkOGDm+GDp+GDlOGDnOGDlOGDkeGDlOGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3Nvcnlfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNzg0ODIzNjk3NDA4NzY1MzY2NiI+IuGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDo+GDmuGDmOGDkCBVU0Ig4YOQ4YOl4YOh4YOU4YOh4YOj4YOQ4YOg4YOX4YOQ4YOcIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMjI5MDg1OTM5OTk4MzcyMDI3MSI+IuGDqOGDlOGDlOGDruGDlOGDlyBVU0It4YOY4YOhIOGDoeGDruGDleGDkCDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5jhg6Eg4YOh4YOQ4YOc4YOQ4YOu4YOQ4YOV4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI5MDIwMDkyMTk2MDYxMDA3MjYyIj4i4YOT4YOQ4YOV4YOQ4YOk4YOd4YOg4YOb4YOQ4YOi4YOdIFVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5A/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzY0ODQxNTkyMTUyNjUyNjA2OSI+IuGDkuGDoeGDo+GDoOGDlyBTRCDhg5Hhg5Dhg6Dhg5Dhg5fhg5jhg6Eg4YOT4YOQ4YOk4YOd4YOg4YOb4YOQ4YOi4YOU4YOR4YOQPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5MzQwMTY4NTM0MjU3NjEwNzgiPiLhg5fhg6Xhg5Xhg5Thg5wgVVNCIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDkOGDqOGDmCDhg6jhg5Thg5zhg5Dhg67hg6Phg5rhg5gg4YOn4YOV4YOU4YOa4YOQIOGDpOGDkOGDmOGDmuGDmCDhg6zhg5Dhg5jhg6jhg5rhg5Thg5Hhg5AuIOGDlOGDoSDhg5vhg53hg6Xhg5vhg5Thg5Phg5Thg5Hhg5Ag4YOV4YOU4YOm4YOQ4YOgIOGDqOGDlOGDmOGDquGDleGDmuGDlOGDkeGDkCEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0MTMxODk1MDI3NTQzODMwIj4i4YOX4YOl4YOV4YOU4YOc4YOhIOGDkeGDkOGDoOGDkOGDl+GDluGDlCDhg6fhg5Xhg5Thg5rhg5Ag4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOYIOGDk+GDkOGDmOGDmeGDkOGDoOGDkuGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfYnV0dG9uX2Zvcm1hdCIgbXNnaWQ9IjQxMzEwNjQ1NjAxMjc0Nzg2OTUiPiLhg5Phg5Dhg6Thg53hg6Dhg5vhg5Dhg6Lhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGJfYWN0aXZlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY3MjkwNDQ3Nzg5NDkxODk5MTgiPiJVU0Ig4YOS4YOQ4YOb4YOQ4YOg4YOX4YOV4YOQIOGDqOGDlOGDlOGDoOGDl+GDlOGDkeGDo+GDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkYl9hY3RpdmVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIxMDE2NjU0NjI3NjI2NDc2MTQyIj4i4YOo4YOU4YOU4YOu4YOU4YOXLCDhg6Dhg5Dhg5fhg5Ag4YOo4YOU4YOs4YOn4YOV4YOY4YOi4YOd4YOXIFVTQi3hg5jhg6Eg4YOS4YOQ4YOb4YOQ4YOg4YOX4YOV4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9pbnB1dF9tZXRob2QiIG1zZ2lkPSI0NjUzMzg3MzM2NzkxMjIyOTc4Ij4i4YOQ4YOY4YOg4YOp4YOY4YOU4YOXIOGDqOGDlOGDp+GDleGDkOGDnOGDmOGDoSDhg5vhg5Thg5fhg53hg5Phg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjkwOTE2NTIxNTc3MjI0OTUxMTYiPiLhg6jhg5Thg6fhg5Xhg5Dhg5zhg5jhg6Eg4YOb4YOU4YOX4YOd4YOT4YOU4YOR4YOY4YOhIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9IjYyMDMxMTI0NzgwOTUxMTc2MjUiPiLhg6Thg5jhg5bhg5jhg5nhg6Phg6Dhg5gg4YOZ4YOa4YOQ4YOV4YOY4YOQ4YOi4YOj4YOg4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGFyZHdhcmUiIG1zZ2lkPSI3NTE3ODIxMDg2ODg4OTkwMjc4Ij4i4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2tleWJvYXJkX2xheW91dF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIxNDA3MzY3MDE3MjYzMDMwNzczIj4i4YOo4YOU4YOQ4YOg4YOp4YOY4YOU4YOXIOGDmeGDmuGDkOGDleGDmOGDkOGDouGDo+GDoOGDmOGDoSDhg5Lhg5Dhg5zhg5rhg5Dhg5Lhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2tleWJvYXJkX2xheW91dF9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjQ0NjU5MDc3MDA0NDkyNTcwNjMiPiLhg5nhg5rhg5Dhg5Xhg5jhg5Dhg6Lhg6Phg6Dhg5jhg6Eg4YOS4YOQ4YOc4YOa4YOQ4YOS4YOU4YOR4YOY4YOhIOGDqOGDlOGDoeGDkOGDoOGDqeGDlOGDleGDkOGDkyDhg6jhg5Thg5Thg67hg5Thg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFzdF9zY3JvbGxfYWxwaGFiZXQiIG1zZ2lkPSI1NDMzMjc1NDg1NDk5MDM5MTk5Ij4iIEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFzdF9zY3JvbGxfbnVtZXJpY19hbHBoYWJldCIgbXNnaWQ9IjQwMzAxNzA1MjQ1OTUxMjM2MTAiPiIgMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuZGlkYXRlc19zdHlsZSIgbXNnaWQ9IjQzMzM5MTMwODk2MzcwNjIyNTciPjx1PiLhg5nhg5Dhg5zhg5Phg5jhg5Phg5Dhg6Lhg5Thg5Hhg5giPC91Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNDQ5ODE2MDA1MzUxNDY4NTYwIj4iVVNCIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg5vhg53hg5vhg5bhg5Dhg5Phg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTQ1NzYwMzQxODk3MDk5NDA1MCI+IlNEIOGDkeGDkOGDoOGDkOGDl+GDmOGDoSDhg5vhg53hg5vhg5bhg5Dhg5Phg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI4Mjg3MzE5ODgyOTI2NzM3MDUzIj4i4YOo4YOU4YOq4YOT4YOd4YOb4YOU4YOR4YOY4YOhIOGDqOGDlOGDm+GDneGDrOGDm+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3Nzg4MDQwNzQ1Njg2MjI5MzA3Ij4i4YOq4YOQ4YOg4YOY4YOU4YOa4YOYIFVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3ODA0Nzc4MzgyNDEyMTI5OTciPiLhg6rhg5Dhg6Dhg5jhg5Thg5rhg5ggU0Qg4YOR4YOQ4YOg4YOQ4YOX4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzg0MDEyMTA2NzQyNzI2OTUwMCI+IlVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5Ag4YOq4YOQ4YOg4YOY4YOU4YOa4YOY4YOQIOGDkOGDnCDhg5vhg67hg5Dhg6Dhg5Phg5Dhg6Phg63hg5Thg6Dhg5Thg5rhg5gg4YOk4YOQ4YOY4YOa4YOj4YOg4YOYIOGDoeGDmOGDoeGDouGDlOGDm+GDkCDhg5Dhg6Xhg5Xhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NjQxMDY1NjQxNzg2OTIzNjA0Ij4iU0Qg4YOR4YOQ4YOg4YOQ4YOX4YOYIOGDquGDkOGDoOGDmOGDlOGDmuGDmOGDkCDhg5Dhg5wg4YOk4YOQ4YOY4YOa4YOj4YOg4YOYIOGDoeGDmOGDoeGDouGDlOGDm+GDkCDhg5vhg67hg5Dhg6Dhg5Phg5Dhg6Phg63hg5Thg6Dhg5Thg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIyMDkwMDQ2NzY5NTMyNzEzNTYzIj4i4YOT4YOQ4YOW4YOY4YOQ4YOc4YOU4YOR4YOj4YOa4YOYIFVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjQxMDcyMzkwNjAxOTEwMDE4OSI+IuGDk+GDkOGDluGDmOGDkOGDnOGDlOGDkeGDo+GDmuGDmCBTRCDhg5Hhg5Dhg6Dhg5Dhg5fhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMTc5NTkxNzU3ODM5NTMzMzI4MCI+IlVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5Ag4YOT4YOQ4YOW4YOY4YOQ4YOc4YOU4YOR4YOj4YOa4YOY4YOQLiDhg6Hhg6rhg5Dhg5Phg5Thg5cg4YOb4YOY4YOh4YOYIOGDruGDlOGDmuGDkOGDruGDmuGDkCDhg5Phg5Dhg6Thg53hg6Dhg5vhg5Dhg6Lhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTc1Mzg5ODU2NzUyNTU2ODI1MyI+IlNEIOGDkeGDkOGDoOGDkOGDl+GDmCDhg5Phg5Dhg5bhg5jhg5Dhg5zhg5Thg5Hhg6Phg5rhg5jhg5AuIOGDoeGDquGDkOGDk+GDlOGDlyDhg5vhg5jhg6Hhg5gg4YOu4YOU4YOa4YOQ4YOu4YOa4YOQIOGDk+GDkOGDpOGDneGDoOGDm+GDkOGDouGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMTY2MTY4MzAzMTMzMDk1MTA3MyI+IlVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5Ag4YOb4YOd4YOj4YOa4YOd4YOT4YOc4YOU4YOa4YOQ4YOTIOGDkuGDkOGDm+GDneGDmOGDoOGDl+GDnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NzIxNTI4ODI2MDQ0MDc4MzciPiJTRCDhg5Hhg5Dhg6Dhg5Dhg5fhg5gg4YOb4YOd4YOj4YOa4YOd4YOT4YOc4YOU4YOa4YOQ4YOTIOGDm+GDneGDmOGDruGDoeGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQzMjk4NDg4MTk4NjU1OTQyNDEiPiLhg5Lhg5Dhg5vhg53hg5Thg6Dhg5fhg5Thg5Hhg5Dhg5vhg5Phg5Qg4YOS4YOQ4YOX4YOY4YOo4YOU4YOXIFVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5AsIOGDoOGDkOGDl+GDkCDhg5fhg5Dhg5Xhg5jhg5Phg5Dhg5wg4YOQ4YOY4YOq4YOY4YOa4YOd4YOXIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmOGDoSDhg5Phg5Dhg5nhg5Dhg6Dhg5Lhg5Xhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjYwMTgzMjkzNzQ3NDQ4MjQxIj4i4YOS4YOQ4YOb4YOd4YOU4YOg4YOX4YOU4YOR4YOQ4YOb4YOT4YOUIOGDkuGDkOGDl+GDmOGDqOGDlOGDlyBTRCDhg5Hhg5Dhg6Dhg5Dhg5fhg5gsIOGDoOGDkOGDl+GDkCDhg5fhg5Dhg5Xhg5jhg5Phg5Dhg5wg4YOQ4YOY4YOq4YOY4YOa4YOd4YOXIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmOGDoSDhg5Phg5Dhg5nhg5Dhg6Dhg5Lhg5Xhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzk2Nzk3Mzg5MzI3MDM2MDIzMCI+IlVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOg4YOX4YOV4YOQIOGDo+GDoeGDkOGDpOGDoOGDl+GDruGDneGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjcyOTgwMTEzMDc5MDYxNjIwMCI+IlNEIOGDkeGDkOGDoOGDkOGDl+GDmOGDoSDhg5vhg53hg67hg6Hhg5zhg5Ag4YOj4YOh4YOQ4YOk4YOg4YOX4YOu4YOd4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MTQyMTk1MzYxNjA2NDkzNTMwIj4i4YOo4YOU4YOS4YOY4YOr4YOa4YOY4YOQ4YOXIOGDo+GDoeGDkOGDpOGDoOGDl+GDruGDneGDkyDhg5Lhg5Dhg5vhg53hg5Dhg5Thg6Dhg5fhg53hg5cgVVNCIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTY4ODQxMjc4MTM4Mzc3NjA0Ij4i4YOo4YOU4YOS4YOY4YOr4YOa4YOY4YOQ4YOXIOGDo+GDoeGDkOGDpOGDoOGDl+GDruGDneGDkyDhg5Lhg5Dhg5vhg53hg5Dhg5Thg6Dhg5fhg53hg5cgU0Qg4YOR4YOQ4YOg4YOQ4YOX4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0NDg2Mzc3MjMwMTQwMjI3NjUxIj4i4YOS4YOQ4YOb4YOd4YOg4YOX4YOj4YOa4YOYIFVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4OTAyNTE4MDMwNDA0MzgxMzE4Ij4i4YOS4YOQ4YOb4YOd4YOm4YOU4YOR4YOj4YOa4YOY4YOQIFNEIOGDkeGDkOGDoOGDkOGDl+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2OTIxMTI2MTYyNTgwNTc0MTQzIj4iVVNCIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDkCDhg5Lhg5Dhg5vhg53hg5Thg6Dhg5fhg5Thg5Hhg6Phg5rhg5jhg5AuIOGDm+GDmOGDo+GDlOGDoOGDl+GDlOGDlyDhg5Dhg67hg5Dhg5rhg5gg4YOb4YOU4YOT4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzg3MDEyMDY1Mjk4MzY1OTY0MSI+IlNEIOGDkeGDkOGDoOGDkOGDl+GDmCDhg5vhg53hg67hg6Hhg5zhg5jhg5rhg5jhg5AuIOGDqeGDkOGDoeGDleGDmOGDlyDhg5Dhg67hg5Dhg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfbGlzdF9lbXB0eSIgbXNnaWQ9IjE2NzUzODgzMzA3ODY4NDEwNjYiPiLhg6jhg5Thg6Hhg5Dhg6Lhg6fhg5Xhg5jhg6Hhg5gg4YOQ4YOl4YOi4YOY4YOV4YOd4YOR4YOU4YOR4YOYIOGDkOGDoCDhg5Dhg6Dhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wa2dVc2FnZVN0YXRzIiBtc2dpZD0iODc4NzM1MjA3NDMyNjc0ODg5MiI+IuGDmeGDneGDm+GDnuGDneGDnOGDlOGDnOGDouGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg6Eg4YOh4YOi4YOQ4YOi4YOY4YOh4YOi4YOY4YOZ4YOY4YOhIOGDkuGDkOGDnOGDkOGDruGDmuGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BrZ1VzYWdlU3RhdHMiIG1zZ2lkPSIxMTA2NjEyNDI0MjU0Mjc3NjMwIj4i4YOQ4YOe4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCwg4YOo4YOU4YOq4YOV4YOQ4YOa4YOd4YOhIOGDmeGDneGDm+GDnuGDneGDnOGDlOGDnOGDouGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOS4YOg4YOd4YOV4YOU4YOR4YOj4YOa4YOYIOGDoeGDouGDkOGDouGDmOGDoeGDouGDmOGDmeGDkC4g4YOQ4YOgIOGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDlOGDkeGDkCDhg6nhg5Xhg5Thg6Phg5rhg5Thg5Hhg6Dhg5jhg5Ug4YOQ4YOe4YOU4YOR4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29weVByb3RlY3RlZERhdGEiIG1zZ2lkPSI0MzQxMDM2MzExMjExNDA2NjkyIj4i4YOZ4YOd4YOc4YOi4YOU4YOc4YOi4YOY4YOhIOGDmeGDneGDnuGDmOGDoOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvcHlQcm90ZWN0ZWREYXRhIiBtc2dpZD0iNDM5MDY5NzEyNDI4ODMxNzgzMSI+IuGDkOGDnuGDoSDhg6jhg5Thg5Thg6vhg5rhg5Thg5Hhg5Ag4YOZ4YOd4YOc4YOi4YOU4YOc4YOi4YOY4YOhIOGDmeGDneGDnuGDmOGDoOGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSDhg5nhg53hg5zhg6Lhg5Thg5jhg5zhg5Thg6Dhg5jhg6Eg4YOc4YOQ4YOS4YOj4YOa4YOY4YOh4YOu4YOb4YOU4YOV4YOYIOGDoeGDlOGDoOGDleGDmOGDoeGDmOGDoSDhg5Lhg5Dhg5vhg53hg6vhg5Dhg67hg5Thg5Hhg5AuIOGDkOGDoCDhg5Lhg5Dhg5vhg53hg5jhg6fhg5Thg5zhg5Thg5Hhg5Ag4YOp4YOV4YOU4YOj4YOa4YOU4YOR4YOg4YOY4YOVIOGDkOGDnuGDlOGDkeGDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JvdXRlX21lZGlhX291dHB1dCIgbXNnaWQ9IjE2NDIwMjQ0NTU3NTA0MTQ2OTQiPiLhg5vhg6Phg5rhg6Lhg5jhg5vhg5Thg5Phg5jhg5Ag4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDkuGDkOGDk+GDkOGDm+GDmOGDoeGDkOGDm+GDkOGDoOGDl+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JvdXRlX21lZGlhX291dHB1dCIgbXNnaWQ9IjQ5MzI4MTg3NDk1NDcyNDQzNDYiPiLhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Dhg6Eg4YOo4YOU4YOU4YOr4YOa4YOU4YOR4YOQIOGDkuGDkOGDk+GDkOGDkOGDm+GDmOGDoeGDkOGDm+GDkOGDoOGDl+GDneGDoSDhg5vhg6Phg5rhg6Lhg5jhg5vhg5Thg5Phg5jhg5Ag4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOYIOGDoeGDruGDleGDkCDhg5Lhg5Dhg6Dhg5Qg4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOU4YOR4YOY4YOh4YOZ4YOU4YOcLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzX2tleWd1YXJkX3NlY3VyZV9zdG9yYWdlIiBtc2dpZD0iNzU2NTU1MjIzNzk3NzgxNTA0NyI+IuGDpuGDmOGDmuGDkOGDmeGDlOGDkeGDmOGDoSDhg5Phg5Dhg5vhg6rhg5Dhg5Xhg5jhg6Eg4YOj4YOh4YOQ4YOk4YOg4YOX4YOu4YOdIOGDoeGDkOGDquGDkOGDleGDluGDlCDhg6zhg5Xhg5Phg53hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3Nfa2V5Z3VhcmRfc2VjdXJlX3N0b3JhZ2UiIG1zZ2lkPSI1ODY2MjQ1NDg0MzAzMjg1NzYyIj4i4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOQ4YOhIOGDpuGDmOGDmuGDkOGDmeGDlOGDkeGDmOGDoSDhg5Phg5Dhg5vhg6rhg5Dhg5Xhg5jhg6Eg4YOj4YOh4YOQ4YOk4YOg4YOX4YOu4YOdIOGDoeGDkOGDquGDkOGDleGDluGDlCDhg6zhg5Xhg5Phg53hg5vhg5jhg6Eg4YOj4YOk4YOa4YOU4YOR4YOQIOGDlOGDpeGDnOGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xfa2V5Z3VhcmQiIG1zZ2lkPSIxNzIxOTUxODQyMDc4MjgzODciPiLhg6bhg5jhg5rhg5Dhg5nhg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOb4YOq4YOQ4YOV4YOY4YOhIOGDkuGDkOGDm+GDneGDqeGDlOGDnOGDmOGDoeGDkCDhg5Phg5Ag4YOT4YOQ4YOb4YOQ4YOa4YOV4YOY4YOhIOGDm+GDkOGDoOGDl+GDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbnRyb2xfa2V5Z3VhcmQiIG1zZ2lkPSIzMDQzNzMyMjkwNTE4NjI5MDYxIj4i4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOQ4YOhIOGDqOGDlOGDlOGDq+GDmuGDlOGDkeGDkCDhg6bhg5jhg5rhg5Dhg5nhg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOb4YOq4YOQ4YOV4YOY4YOhIOGDmeGDneGDnOGDouGDoOGDneGDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0dXRvcmlhbF9kb3VibGVfdGFwX3RvX3pvb21fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjQwNzA0MzMyMDgxNjAwNjM1MzgiPiLhg5vhg5Dhg6Hhg6jhg6Lhg5Dhg5Hhg5jhg6Eg4YOb4YOQ4YOg4YOX4YOV4YOY4YOh4YOX4YOV4YOY4YOhIOGDqOGDlOGDlOGDruGDlOGDlyDhg53hg6Dhg6/hg5Thg6AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2FkZ2V0X2hvc3RfZXJyb3JfaW5mbGF0aW5nIiBtc2dpZD0iNDg4MjAwNDMxNDkwNjQ2NjE2MiI+IuGDleGDlOGDoCDhg5Phg5Dhg5Thg5vhg5Dhg6Lhg5Ag4YOV4YOY4YOv4YOU4YOi4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZ28iIG1zZ2lkPSI4MzIwODQ1NjUxNzM3MzY5MDI3Ij4i4YOS4YOQ4YOT4YOQ4YOh4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9zZWFyY2giIG1zZ2lkPSI2NTgxMTAyNzE4MjI4MDc4MTEiPiLhg6vhg5Thg5Hhg5zhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3NlbmQiIG1zZ2lkPSIyMzE2MTY2NTU2MzQ5MzE0NDI0Ij4i4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9uZXh0IiBtc2dpZD0iMzEzODg0MzkwNDAwOTgxMzgzNCI+IuGDm+GDneGDm+GDk+GDlOGDleGDnOGDnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZG9uZSIgbXNnaWQ9Ijg5NzE1MTYxMTc5MTA5MzQ2MDUiPiLhg5Phg5Dhg6Hhg6Dhg6Phg5rhg5Phg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3ByZXZpb3VzIiBtc2dpZD0iMTQ0MzU1MDAzOTI1MDEwNTk0OCI+IuGDrOGDmOGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZGVmYXVsdCIgbXNnaWQ9IjI4NDA5MjE4ODU1NTgwNDU3MjEiPiLhg5Lhg5Dhg5zhg67hg53hg6Dhg6rhg5jhg5Thg5rhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaWFsX251bWJlcl91c2luZyIgbXNnaWQ9IjU3ODkxNzY0MjUxNjc1NzM1ODYiPiLhg5zhg53hg5vhg5Thg6Dhg5bhg5Qg4YOT4YOQ4YOg4YOU4YOZ4YOV4YOQXG48eGxpZmY6ZyBpZD0iTlVNQkVSIj4lczwveGxpZmY6Zz4t4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9jb250YWN0X3VzaW5nIiBtc2dpZD0iNDk0NzQwNTIyNjc4ODEwNDUzOCI+IuGDmeGDneGDnOGDouGDkOGDpeGDouGDmOGDoSDhg6jhg5Thg6Xhg5vhg5zhg5BcbiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lczwveGxpZmY6Zz4t4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW50X2NyZWRlbnRpYWxzX3Blcm1pc3Npb25fbWVzc2FnZV9oZWFkZXIiIG1zZ2lkPSIyMTA2MTAzODE3OTM3ODU5NjYyIj4i4YOb4YOY4YOX4YOY4YOX4YOU4YOR4YOj4YOa4YOYIOGDlOGDoOGDl+GDmCDhg5Dhg5wg4YOg4YOQ4YOb4YOT4YOU4YOc4YOY4YOb4YOUIOGDkOGDnuGDmCDhg5jhg5fhg67hg53hg5Xhg6Eg4YOX4YOl4YOV4YOU4YOc4YOhIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDluGDlCDhg6zhg5Xhg5Phg53hg5vhg5jhg6Eg4YOj4YOk4YOa4YOU4YOR4YOQ4YOhLCDhg5Dhg67hg5rhg5Ag4YOT4YOQIOGDm+GDneGDm+GDkOGDleGDkOGDmuGDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9jcmVkZW50aWFsc19wZXJtaXNzaW9uX21lc3NhZ2VfZm9vdGVyIiBtc2dpZD0iMzEyNTIxMTM0MzM3OTM3NjU2MSI+IuGDkuGDoeGDo+GDoOGDlyDhg5Dhg5sg4YOb4YOd4YOX4YOu4YOd4YOV4YOc4YOY4YOhIOGDk+GDkOGDmeGDm+GDkOGDp+GDneGDpOGDmOGDmuGDlOGDkeGDkD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9wZXJtaXNzaW9uc19oZWFkZXJfdGV4dCIgbXNnaWQ9IjY4NzQ0OTc0MDgyMDE4MjY3MDgiPiLhg6zhg5Xhg5Phg53hg5vhg5jhg6Eg4YOb4YOd4YOX4YOu4YOd4YOV4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3ciIG1zZ2lkPSI3MjI1OTQ4ODExMjk2Mzg2NTUxIj4i4YOj4YOk4YOa4YOU4YOR4YOY4YOhIOGDm+GDmOGDquGDlOGDm+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnkiIG1zZ2lkPSIyMDgxODc5ODg1NzU1NDM0NTA2Ij4i4YOQ4YOZ4YOg4YOr4YOQ4YOa4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWlzc2lvbl9yZXF1ZXN0X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY0ODY3NTk3OTU5MjYyMzc5MDciPiLhg5vhg53hg5fhg67hg53hg5Xhg5zhg5jhg5rhg5jhg5Ag4YOc4YOU4YOR4YOQ4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWlzc2lvbl9yZXF1ZXN0X25vdGlmaWNhdGlvbl93aXRoX3N1YnRpdGxlIiBtc2dpZD0iODUzMDM5MzEzOTYzOTU2MDE4OSI+IuGDm+GDneGDl+GDruGDneGDleGDnOGDmOGDmuGDmOGDkCDhg5zhg5Thg5Hhg6Dhg5Dhg5fhg5Xhg5AgXG7hg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5jhg6Hhg5fhg5Xhg5jhg6E6IDx4bGlmZjpnIGlkPSJBQ0NPVU5UIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnB1dF9tZXRob2RfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjEyODM1NTcxNzk5NDQ5OTI2NDkiPiLhg6jhg5Thg6fhg5Xhg5Dhg5zhg5jhg6Eg4YOb4YOU4YOX4YOd4YOT4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY19iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMzY4Nzk2OTEzODM3NTA5MjQyMyI+IuGDoeGDmOGDnOGDpeGDoOGDneGDnOGDmOGDluGDkOGDquGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjQxNDgxMjA3NDIwOTY0NzQ2NDEiPiLhg6zhg5Xhg5Phg53hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YWxscGFwZXJfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjEyNDAwODc4NDQzMDQ2ODc2NjIiPiLhg6Thg53hg5zhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VyX3dhbGxwYXBlciIgbXNnaWQ9Ijc4NzM0NzYxOTkyOTUxOTAyNzkiPiLhg6Thg53hg5zhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm90aWZpY2F0aW9uX2xpc3RlbmVyX2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSIyMDE0MTYyODM1NDgxOTA2NDI5Ij4i4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOY4YOhIOGDm+GDoeGDm+GDlOGDnOGDlOGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90aXRsZSIgbXNnaWQ9IjE5NjE1MjEzNTUyMDQyODI3Ij4iVlBOIOGDkuGDkOGDkOGDpeGDouGDmOGDo+GDoOGDlOGDkeGDo+GDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90aXRsZV9sb25nIiBtc2dpZD0iNjQwMDcxNDc5ODA0OTI1MjI5NCI+IlZQTiDhg5Lhg5Dhg5Dhg6Xhg6Lhg5jhg6Phg6Dhg5Thg5Hhg6Phg5rhg5jhg5AgPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+LeGDmOGDoSDhg5vhg5jhg5Thg6AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGV4dCIgbXNnaWQ9IjMwMTEzMDY2MDcxMjY0NTAzMjIiPiLhg6jhg5Thg5Thg67hg5Thg5cg4YOl4YOh4YOU4YOa4YOY4YOhIOGDoeGDkOGDm+GDkOGDoOGDl+GDkOGDleGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGV4dF9sb25nIiBtc2dpZD0iNjQwNzM1MTAwNjI0OTE3NDQ3MyI+IuGDm+GDmOGDlOGDoOGDl+GDlOGDkeGDo+GDmuGDmOGDkCA8eGxpZmY6ZyBpZD0iU0VTU0lPTiI+JXM8L3hsaWZmOmc+LeGDluGDlC4g4YOo4YOU4YOU4YOu4YOU4YOXIOGDpeGDoeGDlOGDmuGDmOGDoSDhg6Hhg5Dhg5vhg5Dhg6Dhg5fhg5Dhg5Xhg5Dhg5MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Nvbm5lY3RpbmciIG1zZ2lkPSI2NDQzNDM4OTY0NDQwOTYwNzQ1Ij4i4YOb4YOY4YOb4YOT4YOY4YOc4YOQ4YOg4YOU4YOd4YOR4YOhIOGDm+GDo+GDk+GDm+GDmOGDleGDkOGDkyDhg6nhg5Dhg6Dhg5fhg6Phg5rhg5ggVlBOLeGDmOGDoSDhg5vhg5jhg5Thg6Dhg5fhg5Thg5Hhg5DigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29ubmVjdGVkIiBtc2dpZD0iODIwMjY3OTY3NDgxOTIxMzkzMSI+IuGDm+GDo+GDk+GDm+GDmOGDleGDkOGDkyDhg6nhg5Dhg6Dhg5fhg6Phg5rhg5ggVlBOLeGDmOGDoSDhg5vhg5jhg5Thg6Dhg5fhg5Thg5Hhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fZXJyb3IiIG1zZ2lkPSI2MDA5MjQ5ODE0MDM0NzA4MTc1Ij4i4YOo4YOU4YOq4YOT4YOd4YOb4YOQIOGDm+GDo+GDk+GDkOGDmyBWUE4t4YOW4YOUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2NvbmZpZyIgbXNnaWQ9IjY0MTU4OTkxNTA2NzE1Mzc5NzAiPiLhg5nhg53hg5zhg6Thg5jhg5Lhg6Phg6Dhg5Dhg6rhg5jhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOo4YOU4YOU4YOu4YOU4YOXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXBsb2FkX2ZpbGUiIG1zZ2lkPSIyODk3OTU3MTcyMzY2NzMwNDE2Ij4i4YOk4YOQ4YOY4YOa4YOY4YOhIOGDkOGDoOGDqeGDlOGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2ZpbGVfY2hvc2VuIiBtc2dpZD0iNjM2MzY0ODU2MjE3MDc1OTQ2NSI+IuGDpOGDkOGDmOGDmuGDmCDhg5Dhg6Dhg6nhg5Thg6Phg5rhg5gg4YOQ4YOgIOGDkOGDoOGDmOGDoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc2V0IiBtc2dpZD0iMjQ0ODE2ODA4MDk2NDIwOTkwOCI+IuGDoeGDkOGDrOGDp+GDmOGDoeGDluGDlCDhg5Phg5Dhg5Hhg6Dhg6Phg5zhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdWJtaXQiIG1zZ2lkPSIxNjAyMzM1NTcyMDg5OTExOTQxIj4i4YOS4YOQ4YOS4YOW4YOQ4YOV4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FyX21vZGVfZGlzYWJsZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIzMTY0NzY4MjEyMDAzODY0MzE2Ij4i4YOb4YOQ4YOc4YOl4YOQ4YOc4YOY4YOhIOGDoOGDlOGDn+GDmOGDm+GDmCDhg6nhg5Dhg6Dhg5fhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXJfbW9kZV9kaXNhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iODAzNTIzMDUzNzU2MzUwMzI2MiI+IuGDqOGDlOGDlOGDruGDlOGDlyDhg5vhg5Dhg5zhg6Xhg5Dhg5zhg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOY4YOT4YOQ4YOcIOGDkuGDkOGDm+GDneGDoeGDkOGDoeGDleGDmuGDlOGDmuGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXRoZXJlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIzMTQ2Njk0MjM0Mzk4MjAyNjAxIj4i4YOY4YOc4YOi4YOU4YOg4YOc4YOU4YOi4YOY4YOhIOGDm+GDmOGDlOGDoOGDl+GDlOGDkeGDkCDhg5Dhg5wg4YOj4YOh4YOQ4YOT4YOU4YOc4YOdIOGDpeGDoeGDlOGDmuGDmCDhg5Dhg6Xhg6Lhg5jhg6Phg6Dhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV0aGVyZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI2ODU3MDMxNzYwMTAzMDYyOTgyIj4i4YOo4YOU4YOh4YOQ4YOl4YOb4YOc4YOU4YOa4YOQ4YOTIOGDqOGDlOGDlOGDruGDlOGDlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2tfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMjMwMDQ3MDAwNDUwMzM0MzQzOSI+IuGDo+GDmeGDkOGDnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5leHRfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTA4MDU1NTEwNDY3Nzk5MjQwOCI+IuGDm+GDneGDm+GDk+GDlOGDleGDnOGDnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNraXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTI3NTM2MjI5OTQ3MTYzMTgxOSI+IuGDkuGDkOGDm+GDneGDouGDneGDleGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlX3dhcm5pbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNDg5MDg5NDI2NzQ1NDg2NzI3NiI+IuGDm+GDneGDkeGDmOGDmuGDo+GDoOGDmCDhg5jhg5zhg6Lhg5Thg6Dhg5zhg5Thg6Lhg5jhg6Eg4YOb4YOQ4YOm4YOQ4YOa4YOYIOGDm+GDneGDruGDm+GDkOGDoOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlX3dhcm5pbmdfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIzMzQwODIyMjI4NTk5MzM3NzQzIj4i4YOo4YOU4YOU4YOu4YOU4YOXLCDhg6Dhg5Dhg5fhg5Ag4YOo4YOU4YOY4YOi4YOn4YOd4YOXIOGDm+GDlOGDouGDmCDhg5vhg53hg5Hhg5jhg5rhg6Phg6Dhg5jhg6Eg4YOY4YOc4YOi4YOU4YOg4YOc4YOU4YOi4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGhyb3R0bGVkX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjYyNjk1NDE4OTc3Mjk3ODEzMzIiPiLhg5vhg53hg5Hhg5jhg5rhg6Phg6Dhg5gg4YOY4YOc4YOi4YOU4YOg4YOc4YOU4YOi4YOY4YOhIOGDmuGDmOGDm+GDmOGDouGDmCDhg5Lhg5Dhg5Phg5Dhg63hg5Dhg6Dhg5Hhg5Thg5Hhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI1NDQzNDU3MzIxMzU0OTA3MTgxIj4i4YOo4YOU4YOU4YOu4YOU4YOXLCDhg6Dhg5Dhg5fhg5Ag4YOo4YOU4YOY4YOi4YOn4YOd4YOXIOGDm+GDlOGDouGDmCDhg5vhg53hg5Hhg5jhg5rhg6Phg6Dhg5jhg6Eg4YOY4YOc4YOi4YOU4YOg4YOc4YOU4YOi4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fbWF0Y2hlcyIgbXNnaWQ9IjgxMjk0MjE5MDg5MTU4NDA3MzciPiLhg6jhg5Thg6Hhg5Dhg6Lhg6fhg5Xhg5jhg6Hhg5Thg5Hhg5gg4YOQ4YOgIOGDkOGDoOGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kX29uX3BhZ2UiIG1zZ2lkPSIxOTQ2Nzk5MjMzODIyODIwMzg0Ij4i4YOS4YOV4YOU4YOg4YOT4YOW4YOUIOGDq+GDlOGDkeGDnOGDkCI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibWF0Y2hlc19mb3VuZCI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxNjcxNDcwODExMzY1Nzk0MzkiPiIxIOGDk+GDkOGDm+GDl+GDruGDleGDlOGDleGDkCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDY0MTg3Mjc5NzA2NzYwOTE3NyI+Ijx4bGlmZjpnIGlkPSJJTkRFWCI+JWQ8L3hsaWZmOmc+IDx4bGlmZjpnIGlkPSJUT1RBTCI+JWQ8L3hsaWZmOmc+LeGDk+GDkOGDnCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9tb2RlX2RvbmUiIG1zZ2lkPSI3MjE3NTgxNjQwNDYxOTIyMjg5Ij4i4YOT4YOQ4YOh4YOg4YOj4YOa4YOT4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfdW5tb3VudGluZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzOTIzODEwNDQ4NTA3NjEyNzQ2Ij4iVVNCIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5fhg5jhg6jhg5Xhg5DigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc191bm1vdW50aW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTMyNzg5NDk5ODQwOTUzNzE5MCI+IuGDm+GDmOGDm+GDk+GDmOGDnOGDkOGDoOGDlOGDneGDkeGDoSBTRCDhg5Hhg5Dhg6Dhg5Dhg5fhg5jhg6Eg4YOb4YOd4YOu4YOh4YOc4YOQ4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfZXJhc2luZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0NTIxNTczMzIxNTI0MzQwMDU4Ij4i4YOb4YOY4YOb4YOT4YOY4YOc4YOQ4YOg4YOU4YOd4YOR4YOhIFVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOh4YOj4YOk4YOX4YOQ4YOV4YOU4YOR4YOQ4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfZXJhc2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1OTY5ODg4NzU1MDcwNDMwNDIiPiJTRCDhg5Hhg5Dhg6Dhg5Dhg5fhg5jhg6Eg4YOs4YOQ4YOo4YOa4YOQLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyOTk3Njk1NjM2MjQ3NzY5NDgiPiJVU0Ig4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOY4YOhIOGDrOGDkOGDqOGDmuGDkCDhg5Xhg5Thg6Ag4YOb4YOd4YOu4YOU4YOg4YOu4YOT4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcm1hdF9lcnJvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMTUyNDg2OTY2NDQ1MTA5MzUiPiJTRCDhg5Hhg5Dhg6Dhg5Dhg5fhg5jhg6Eg4YOs4YOQ4YOo4YOa4YOQIOGDleGDlOGDoCDhg5vhg53hg67hg5Thg6Dhg67hg5Phg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfYmFkX3JlbW92YWwiIG1zZ2lkPSI3OTYwODY0MDYxMDE2NjAzMjgxIj4iU0Qg4YOR4YOQ4YOg4YOQ4YOX4YOYIOGDm+GDkOGDnOGDkOGDmyDhg5vhg53hg5jhg67hg6Hhg5zhg5AsIOGDleGDmOGDk+GDoOGDlCDhg5Lhg5Dhg5vhg53hg5Thg6Dhg5fhg5Thg5Hhg6Phg5rhg5gg4YOY4YOl4YOc4YOU4YOR4YOd4YOT4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2NoZWNraW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQxODE4ODcyMDAwOTU2OTY5MyI+IlVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5Ag4YOQ4YOb4YOf4YOQ4YOb4YOQ4YOTIOGDqOGDlOGDm+GDneGDrOGDm+GDlOGDkeGDmOGDoSDhg57hg6Dhg53hg6rhg5Thg6Hhg6jhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfY2hlY2tpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MzM0NzYyNTAzOTA0ODI3NDgxIj4i4YOQ4YOb4YOf4YOQ4YOb4YOQ4YOTIOGDm+GDmOGDm+GDk+GDmOGDnOGDkOGDoOGDlOGDneGDkeGDoSBTRCDhg5Hhg5Dhg6Dhg5Dhg5fhg5jhg6Eg4YOo4YOU4YOb4YOd4YOs4YOb4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JlbW92ZWQiIG1zZ2lkPSI3MDAxNTI2OTA1MDU3OTUyMDk3Ij4iU0Qg4YOR4YOQ4YOg4YOQ4YOX4YOYIOGDkuGDkOGDm+GDneGDlOGDoOGDl+GDlOGDkeGDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9zaGFyZWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNTgzMDgxNDM0OTI1MDgzNDIyNSI+IlVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5Dhg6Eg4YOZ4YOd4YOb4YOe4YOY4YOj4YOi4YOU4YOg4YOYIOGDmOGDp+GDlOGDnOGDlOGDkeGDoSDhg5Dhg5vhg5/hg5Dhg5vhg5Dhg5MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfc2hhcmVkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTcwNjEzMDU2ODEzMzU0MDQzNSI+IlNEIOGDkeGDkOGDoOGDkOGDl+GDoSDhg5nhg53hg5vhg57hg5jhg6Phg6Lhg5Thg6Dhg5gg4YOY4YOn4YOU4YOc4YOU4YOR4YOhIOGDkOGDm+GDn+GDkOGDm+GDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV91bmtub3duX3N0YXRlIiBtc2dpZD0iNzI5MTkyNzgyMTk3MjkwMzg1Ij4i4YOS4YOQ4YOg4YOUIOGDm+GDlOGDk+GDmOGDkCDhg6Phg6rhg5zhg53hg5Eg4YOb4YOT4YOS4YOd4YOb4YOQ4YOg4YOU4YOd4YOR4YOQ4YOo4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlIiBtc2dpZD0iMTc3ODY4NjYxODIzMDAxMTk2NCI+IuGDkuGDkOGDluGDmOGDkOGDoOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmQiIG1zZ2lkPSI0ODA4MjcwOTAwMzIyOTg1OTYwIj4i4YOr4YOY4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2Vic2VhcmNoIiBtc2dpZD0iNDMzNzE1Nzk3NzQwMDIxMTU4OSI+IuGDleGDlOGDkS3hg6vhg5jhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kX25leHQiIG1zZ2lkPSI1NzQyMTI0NjE4OTQyMTkzOTc4Ij4i4YOb4YOd4YOb4YOT4YOU4YOV4YOc4YOd4YOhIOGDm+GDneGDq+GDlOGDkeGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmRfcHJldmlvdXMiIG1zZ2lkPSIyMTk2NzIzNjY5Mzg4MzYwNTA2Ij4i4YOs4YOY4YOc4YOQ4YOhIOGDnuGDneGDleGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc05vdGlmVGlja2VyIiBtc2dpZD0iNTYyMjY4MzkxMjYxNjQ5NjE3MiI+IuGDm+GDk+GDlOGDkeGDkOGDoOGDlOGDneGDkeGDkCDhg5vhg53hg5fhg67hg53hg5Xhg5zhg5jhg5rhg5gg4YOY4YOn4YOdIDx4bGlmZjpnIGlkPSJOQU1FIj4lczwveGxpZmY6Zz4t4YOY4YOh4YOS4YOQ4YOcIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZUaXRsZSIgbXNnaWQ9IjU0NDY4NTg3MTcxNTc0MTY4MzkiPiLhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOb4YOd4YOX4YOu4YOd4YOV4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZNZXNzYWdlIiBtc2dpZD0iMTM3NDcxODAyMzIyNDAwMDcwMiI+IuGDm+GDneGDl+GDruGDneGDleGDnOGDmOGDmuGDmOGDkCA8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz4t4YOY4YOhIOGDm+GDmOGDlOGDoCAoPHhsaWZmOmcgaWQ9IlNFUlZJQ0UiPiUyJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmWWVzIiBtc2dpZD0iMjM0NjU2NjA3Mjg2NzIxMzU2MyI+IuGDk+GDmOGDkOGDriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmTm8iIG1zZ2lkPSIxMTQ2NTY0OTM3MzQ2NDU0ODY1Ij4i4YOQ4YOg4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzIiBtc2dpZD0iNTI5NjMyMTg1MDY2Mjc0Njg5MCI+IuGDrOGDkOGDqOGDmuGDmOGDoSDhg6jhg5Thg5bhg6bhg6Phg5Phg5Xhg5Ag4YOS4YOQ4YOT4YOQ4YOt4YOQ4YOg4YOR4YOU4YOR4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzX2Rlc2MiIG1zZ2lkPSI0OTY1NTE2NzEwMDg2OTQyNDUiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSX09GX0RFTEVURURfSVRFTVMiPiUxJGQ8L3hsaWZmOmc+IOGDrOGDkOGDqOGDmuGDmOGDmuGDmCDhg5Thg6Dhg5fhg5Thg6Phg5rhg5jhg5AgPHhsaWZmOmcgaWQ9IlRZUEVfT0ZfU1lOQyI+JTIkczwveGxpZmY6Zz4t4YOX4YOV4YOY4YOhLCDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5ggPHhsaWZmOmcgaWQ9IkFDQ09VTlRfTkFNRSI+JTMkczwveGxpZmY6Zz4uIOGDoOGDmOGDoeGDmCDhg5Lhg5Dhg5nhg5Thg5fhg5Thg5Hhg5Ag4YOS4YOh4YOj4YOg4YOXPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfcmVhbGx5X2RlbGV0ZSIgbXNnaWQ9IjI1NzI2MDAxMDMxMjI1OTYyNDMiPiLhg5Thg6Dhg5fhg5Thg6Phg5rhg5Thg5Hhg5jhg6Eg4YOs4YOQ4YOo4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY191bmRvX2RlbGV0ZXMiIG1zZ2lkPSIyOTQxMzE3MzYwNjAwMzM4NjAyIj4i4YOs4YOQ4YOo4YOa4YOU4YOR4YOY4YOhIOGDkuGDkOGDo+GDpeGDm+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfZG9fbm90aGluZyIgbXNnaWQ9IjM3NDM3NjQ3NDA0MzA4MjE4NDUiPiLhg5Dhg5vhg5/hg5Dhg5vhg5Dhg5Mg4YOQ4YOg4YOQ4YOk4YOU4YOg4YOYIOGDkuGDkOGDkOGDmeGDlOGDl+GDnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9hY2NvdW50X2xhYmVsIiBtc2dpZD0iNTY1NTIwMzA4OTc0NjQyMzkyNyI+IuGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoSDhg5Dhg6Dhg6nhg5Thg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfYWNjb3VudF9sYWJlbCIgbXNnaWQ9IjI5MzUyNjczNDQ4NDk5OTM1NTMiPiLhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5jhg6Eg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX2FjY291bnRfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMzYxMTk4Mjg5NDg1MzQzNTg3NCI+IuGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoSDhg5Phg5Dhg5vhg5Dhg6Lhg5Thg5Hhg5AgJmFtcDtyYXF1bzsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJudW1iZXJfcGlja2VyX2luY3JlbWVudF9idXR0b24iIG1zZ2lkPSIyNDEyMDcyMjcyODMyMjg0MzEzIj4i4YOS4YOQ4YOW4YOg4YOT4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9kZWNyZW1lbnRfYnV0dG9uIiBtc2dpZD0iNDc2MDUwNzc4Mzg2Nzc5MDY3Ij4i4YOo4YOU4YOb4YOq4YOY4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfc2Nyb2xsX21vZGUiIG1zZ2lkPSIzMDczMTAxMDY3NDQxNjM4NDI4Ij4iPHhsaWZmOmcgaWQ9IlZBTFVFIj4lczwveGxpZmY6Zz4t4YOhIOGDqOGDlOGDlOGDruGDlOGDlyDhg5Phg5Ag4YOQ4YOgIOGDkOGDo+GDqOGDleGDkOGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJudW1iZXJfcGlja2VyX2luY3JlbWVudF9zY3JvbGxfYWN0aW9uIiBtc2dpZD0iOTEwMTQ3MzA0NTg5MTgzNTQ5MCI+IuGDkOGDkOGDoeGDoOGDmOGDkOGDmuGDlOGDlyDhg5bhg5Thg5vhg53hg5cg4YOS4YOQ4YOh4YOQ4YOW4YOg4YOT4YOU4YOa4YOQ4YOTIOGDk+GDkCDhg6nhg5Dhg5Dhg6Hhg6Dhg5jhg5Dhg5rhg5Thg5cg4YOl4YOV4YOU4YOb4YOd4YOXIOGDqOGDlOGDoeGDkOGDm+GDquGDmOGDoOGDlOGDkeGDmuGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9pbmNyZW1lbnRfbWludXRlX2J1dHRvbiIgbXNnaWQ9Ijg4NjU4ODUxMTQwMjg2MTQzMjEiPiLhg5Thg6Dhg5fhg5gg4YOs4YOj4YOX4YOY4YOXIOGDrOGDmOGDnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2RlY3JlbWVudF9taW51dGVfYnV0dG9uIiBtc2dpZD0iNjI0NjgzNDkzNzA4MDY4NDc5MSI+IuGDrOGDo+GDl+GDlOGDkeGDmOGDoSDhg6jhg5Thg5vhg6rhg5jhg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9pbmNyZW1lbnRfaG91cl9idXR0b24iIG1zZ2lkPSIzNjUyMDU2MDU1ODEwMjIzMTM5Ij4i4YOh4YOQ4YOQ4YOX4YOY4YOhIOGDm+GDneGDm+GDkOGDouGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2RlY3JlbWVudF9ob3VyX2J1dHRvbiIgbXNnaWQ9IjEzNzc0Nzk4NjM0MjkyMTQ3OTIiPiLhg6Hhg5Dhg5Dhg5fhg5jhg5cg4YOj4YOZ4YOQ4YOcIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfaW5jcmVtZW50X3NldF9wbV9idXR0b24iIG1zZ2lkPSI0MTQ3NTkwNjk2MTUxMjMwODYzIj4iUE0t4YOY4YOhIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2RlY3JlbWVudF9zZXRfYW1fYnV0dG9uIiBtc2dpZD0iODMwMjE0MDM1MzUzOTQ4Njc1MiI+IkFNLeGDmOGDoSDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9pbmNyZW1lbnRfbW9udGhfYnV0dG9uIiBtc2dpZD0iNTM2OTk5ODQ3OTA2NzkzNDExMCI+IuGDl+GDleGDmOGDoSDhg5vhg53hg5vhg5Dhg6Lhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kZWNyZW1lbnRfbW9udGhfYnV0dG9uIiBtc2dpZD0iMTgzMjY5ODk5NTU0MTcyNjAxOSI+IuGDlOGDoOGDl+GDmCDhg5fhg5Xhg5jhg5cg4YOj4YOZ4YOQ4YOcIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X2RheV9idXR0b24iIG1zZ2lkPSI3MTMwNDY1NDEyMzA4MTczOTAzIj4i4YOT4YOm4YOY4YOhIOGDm+GDneGDm+GDkOGDouGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF9kYXlfYnV0dG9uIiBtc2dpZD0iNDEzMTg4MTUyMTgxODc1MDAzMSI+IuGDk+GDpuGDmOGDoSDhg5vhg53hg5nhg5rhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9pbmNyZW1lbnRfeWVhcl9idXR0b24iIG1zZ2lkPSI2MzE4Njk3Mzg0MzEwODA4ODk5Ij4i4YOs4YOa4YOY4YOhIOGDm+GDneGDm+GDkOGDouGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF95ZWFyX2J1dHRvbiIgbXNnaWQ9IjQ0ODIwMjE4MTM0OTExMjE3MTciPiLhg6zhg5rhg5jhg6Eg4YOb4YOd4YOZ4YOa4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfYWx0IiBtc2dpZD0iNDg1Njg2ODgyMDA0MDA1MTkzOSI+IkFsdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2NhbmNlbCIgbXNnaWQ9IjEyMDM5ODQwMTcyNDU3ODMyNDQiPiLhg5Lhg5Dhg6Phg6Xhg5vhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kZWxldGUiIG1zZ2lkPSIzMzM3OTE0ODMzMjA2NjM1NzQ0Ij4i4YOs4YOQ4YOo4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZG9uZSIgbXNnaWQ9IjE5OTI1NzExMTg0NjY2Nzk3NzUiPiLhg5Phg5Dhg6Hhg6Dhg6Phg5rhg5Phg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9tb2RlX2NoYW5nZSIgbXNnaWQ9IjQ1NDczODc3NDE5MDY1Mzc1MTkiPiLhg6Dhg5Thg5/hg5jhg5vhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4i4YOo4YOU4YOn4YOV4YOQ4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4i4YOQ4YOe4YOY4YOhIOGDkOGDoOGDqeGDlOGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IuGDkuGDkOGDluGDmOGDkOGDoOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiLhg5Lhg5Dhg6Phg5bhg5jhg5Dhg6Dhg5Thg5cgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPi3hg6EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4i4YOS4YOQ4YOh4YOg4YOY4YOQ4YOa4YOU4YOR4YOY4YOXIOGDm+GDkOGDoOGDl+GDleGDkC4g4YOo4YOU4YOU4YOu4YOU4YOXICZhbXA7IOGDkOGDoCDhg5Dhg6Phg6jhg5Xhg5Dhg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3VwIiBtc2dpZD0iNzE2OTAzMjQ3ODI1OTQ4NTE4MCI+IuGDkuGDkOGDkOGDoeGDoOGDmOGDkOGDmuGDlOGDlyDhg5bhg5Thg5vhg53hg5cgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LeGDl+GDleGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fZG93biIgbXNnaWQ9IjUwODc3Mzk3Mjg2MzkwMTQ1OTUiPiLhg5Lhg5Dhg5Dhg6Hhg6Dhg5jhg5Dhg5rhg5Thg5cg4YOl4YOV4YOU4YOb4YOd4YOXIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi3hg5fhg5Xhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2xlZnQiIG1zZ2lkPSI3MjA3NDc4NzE5ODA1NTYyMTY1Ij4i4YOS4YOQ4YOQ4YOh4YOg4YOY4YOQ4YOa4YOU4YOXIOGDm+GDkOGDoOGDquGDruGDnOGDmOGDlSA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4t4YOX4YOV4YOY4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiLhg5Lhg5Dhg5Dhg6Hhg6Dhg5jhg5Dhg5rhg5Thg5cg4YOb4YOQ4YOg4YOv4YOV4YOc4YOY4YOVIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi3hg5fhg5Xhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9jayIgbXNnaWQ9IjIyMjg1MjQ5MDA0Mzk4MDE0NTMiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfY2FtZXJhIiBtc2dpZD0iOTY5MDcxOTk3NTUyNDg2ODE0Ij4i4YOZ4YOQ4YOb4YOU4YOg4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NpbGVudCIgbXNnaWQ9Ijg5MzU1MTI4Nzc0NjUyMjE4MiI+IuGDo+GDruGDm+GDnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zb3VuZG9uIiBtc2dpZD0iMzAwNTI0NjY2NzU1MDAxNzIiPiLhg67hg5vhg5jhg6Eg4YOp4YOQ4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiLhg6vhg5jhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrX3RhYmxldCIgbXNnaWQ9IjM4MzMxOTUzMzU2Mjk3OTUwNTUiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Hhg5Dhg5fhg5Xhg5jhg6Eg4YOS4YOQ4YOT4YOQ4YOk4YOj4YOg4YOq4YOa4YOU4YOXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfaGVhZHNldF9yZXF1aXJlZF90b19oZWFyX3Bhc3N3b3JkIiBtc2dpZD0iNzAxMTkyNzM1MjI2NzY2ODY1NyI+IuGDqOGDlOGDkOGDlOGDoOGDl+GDlOGDkyDhg6fhg6Phg6Dhg6Hhg5Dhg6Hhg5vhg5Thg5zhg5Thg5Hhg5gsIOGDnuGDkOGDoOGDneGDmuGDmOGDoSDhg6bhg5jhg5rhg5Dhg5nhg5Thg5Hhg5gg4YOg4YOd4YObIOGDkuGDkOGDmOGDkuGDneGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9wYXNzd29yZF9jaGFyYWN0ZXJfbm9faGVhZHNldCIgbXNnaWQ9IjI4NTk4NzM3NzA4ODYxNTM2NzgiPiLhg6zhg5Thg6Dhg6Lhg5jhg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTI5MzYwMDQ5NjYwMTQ5MDIxNiI+IuGDm+GDl+GDkOGDleGDkOGDoOGDluGDlCDhg5zhg5Dhg5Xhg5jhg5Lhg5Dhg6rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fYmFyX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjIzNzQ5NjU2Mjk1MjE1MjU4OSI+IuGDluGDlOGDm+GDneGDlyDhg5zhg5Dhg5Xhg5jhg5Lhg5Dhg6rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fbWVudV9vdmVyZmxvd19kZXNjcmlwdGlvbiIgbXNnaWQ9IjIyOTU2NTkwMzc1MDkwMDg0NTMiPiLhg5vhg5Thg6Lhg5gg4YOV4YOQ4YOg4YOY4YOQ4YOc4YOi4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX2Rlc2NyaXB0aW9uX2Zvcm1hdCIgbXNnaWQ9Ijc5NjU5ODQzNjA5MDM2OTM5MDMiPiIlMSRzLCAlMiRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX3N1YnRpdGxlX2Rlc2NyaXB0aW9uX2Zvcm1hdCIgbXNnaWQ9IjY5ODU1NDY1MzA0NzE3ODA3MjciPiIlMSRzLCAlMiRzLCAlMyRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RvcmFnZV9pbnRlcm5hbCIgbXNnaWQ9IjQ4OTE5MTY4MzM2NTc5MjkyNjMiPiLhg6jhg5jhg5Phg5Ag4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RvcmFnZV9zZF9jYXJkIiBtc2dpZD0iMzI4Mjk0ODg2MTM3ODI4Njc0NSI+IlNEIOGDkeGDkOGDoOGDkOGDl+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfdXNiIiBtc2dpZD0iMzAxNzk1NDA1OTUzODUxNzI3OCI+IlVTQiDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRyYWN0X2VkaXRfbWVudV9idXR0b24iIG1zZ2lkPSI4OTQwNDc4NzMwNDk2NjEwMTM3Ij4i4YOg4YOU4YOT4YOQ4YOl4YOi4YOY4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93YXJuaW5nX3RpdGxlIiBtc2dpZD0iMTk1NTYzODg2MjEyMjIzMjM0MiI+IuGDmOGDnOGDouGDlOGDoOGDnOGDlOGDouGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOk4YOg4YOX4YOu4YOY4YOa4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93YXJuaW5nX2JvZHkiIG1zZ2lkPSIyODE0NjczNTUxNDcxOTY5OTU0Ij4i4YOo4YOU4YOU4YOu4YOU4YOXIOGDm+GDneGDruGDm+GDkOGDoOGDlOGDkeGDmOGDoeGDkCDhg5Phg5Ag4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOY4YOhIOGDoeGDkOGDnOGDkOGDruGDkOGDleGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzA5MzMzNDQxOTUxODcwNjY4NiI+IjJHLTNHIOGDmOGDnOGDouGDlOGDoOGDnOGDlOGDouGDmCDhg5Lhg5Dhg5jhg5fhg5jhg6jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV80Z19saW1pdF90aXRsZSIgbXNnaWQ9Ijc2MzY0ODk0MzY4MTk0NzA3NjEiPiI0RyDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5gg4YOS4YOQ4YOX4YOY4YOo4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9tb2JpbGVfbGltaXRfdGl0bGUiIG1zZ2lkPSI3ODY5NDAyNTE5MzkxNjMxODg0Ij4i4YOb4YOd4YOR4YOY4YOa4YOj4YOg4YOYIOGDmOGDnOGDouGDlOGDoOGDnOGDlOGDouGDmCDhg5Lhg5Dhg5jhg5fhg5jhg6jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfdGl0bGUiIG1zZ2lkPSI4OTkyMTU0NzM2NDQxMjg0ODY1Ij4iV2nigJFGaSDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5fhg5Ag4YOS4YOQ4YOb4YOd4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9saW1pdF9ib2R5IiBtc2dpZD0iMzMxNzk2NDcwNjk3MzYwMTM4NiI+IuGDkuGDkOGDoeGDkOGDkOGDpeGDouGDmOGDo+GDoOGDlOGDkeGDmuGDkOGDkyDhg6jhg5Thg5Thg67hg5Thg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV8zZ19saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iNzAyNjczOTEyMTEzODAwNTIzMSI+IuGDkuGDkOGDk+GDkOGDreGDkOGDoOGDkeGDlOGDkeGDo+GDmuGDmOGDkCAyRy0zRyDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5jhg6Eg4YOa4YOY4YOb4YOY4YOi4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV80Z19saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iMTEwNjU2Mjc3OTMxMTIwOTAzOSI+IjRHIOGDmuGDmOGDm+GDmOGDouGDmCDhg5Lhg5Dhg5Phg5Dhg63hg5Dhg6Dhg5Hhg5Thg5Hhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX21vYmlsZV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iMjc5MjQwNTcyMTY1NDEyMTY4Ij4i4YOb4YOd4YOR4YOY4YOa4YOj4YOg4YOYIOGDmOGDnOGDouGDlOGDoOGDnOGDlOGDouGDmOGDoSDhg5rhg5jhg5vhg5jhg6Lhg5gg4YOS4YOQ4YOT4YOQ4YOt4YOQ4YOg4YOR4YOU4YOR4YOj4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2lmaV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iODc0Mzg1NjAwNjM4NDgyNTk3NCI+Ildp4oCRRmkg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOX4YOQIOGDmuGDmOGDm+GDmOGDouGDmCDhg5Lhg5Dhg5Phg5Dhg63hg5Dhg6Dhg5Hhg5Thg5Hhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2xpbWl0X3Nub296ZWRfYm9keSIgbXNnaWQ9IjcwMzU0OTAyNzgyOTg0NDE3NjciPiLhg5rhg5jhg5vhg5jhg6Lhg5gg4YOS4YOQ4YOT4YOQ4YOt4YOQ4YOg4YOR4YOU4YOR4YOj4YOa4YOY4YOQIDx4bGlmZjpnIGlkPSJTSVpFIj4lczwveGxpZmY6Zz4t4YOY4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfcmVzdHJpY3RlZF90aXRsZSIgbXNnaWQ9IjU5NjUxNTczNjEwMzYzMjE5MTQiPiLhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5fhg5Ag4YOk4YOd4YOc4YOj4YOg4YOYIOGDkuGDkOGDk+GDkOGDquGDlOGDm+GDkCDhg6jhg5Thg5bhg6bhg6Phg5Phg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3Jlc3RyaWN0ZWRfYm9keSIgbXNnaWQ9IjY3NDE1MjEzMzA5OTc0NTI5OTAiPiLhg6jhg5Thg5Thg67hg5Thg5cg4YOo4YOU4YOW4YOm4YOj4YOT4YOV4YOY4YOhIOGDm+GDneGDoeGDkOGDruGDoeGDnOGDlOGDmuGDkOGDkyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jZXJ0aWZpY2F0ZSIgbXNnaWQ9IjY1MTAwNDA0ODYwNDkyMzc2MzkiPiLhg6Phg6Hhg5Dhg6Thg6Dhg5fhg67hg53hg5Thg5Hhg5jhg6Eg4YOh4YOU4YOg4YOi4YOY4YOk4YOY4YOZ4YOQ4YOi4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NlcnRpZmljYXRlX2lzX3ZhbGlkIiBtc2dpZD0iNjgyNTI2MzI1MDc3NDU2OTM3MyI+IuGDlOGDoSDhg6Hhg5Thg6Dhg6Lhg5jhg6Thg5jhg5nhg5Dhg6Lhg5gg4YOh4YOs4YOd4YOg4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imlzc3VlZF90byIgbXNnaWQ9IjQ1NDIzOTQ4MDI3NDkyMTAzMiI+IuGDm+GDmOGDlOGDquGDkDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21tb25fbmFtZSIgbXNnaWQ9IjIyMzMyMDkyOTk0MzQxNzI2NDYiPiLhg6Hhg6Lhg5Dhg5zhg5Phg5Dhg6Dhg6Lhg6Phg5rhg5gg4YOh4YOQ4YOu4YOU4YOa4YOYOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ19uYW1lIiBtc2dpZD0iNjk3MzU2MTE5MDc2MjA4NTIzNiI+IuGDneGDoOGDkuGDkOGDnOGDmOGDluGDkOGDquGDmOGDkDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdfdW5pdCIgbXNnaWQ9IjcyNjU5ODE4OTA0MjIwNzAzODMiPiLhg53hg6Dhg5Lhg5Dhg5zhg5jhg5bhg5Dhg6rhg5jhg6Phg5rhg5gg4YOU4YOg4YOX4YOU4YOj4YOa4YOYOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imlzc3VlZF9ieSIgbXNnaWQ9IjI2NDc1ODQ5ODgwNTc0ODE1NjYiPiLhg5Lhg5Dhg5vhg6rhg5Thg5vhg5g6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idmFsaWRpdHlfcGVyaW9kIiBtc2dpZD0iODgxODg4NjEzNzU0NTk4MzExMCI+IuGDleGDkOGDmuGDmOGDk+GDo+GDoOGDneGDkeGDkDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfb24iIG1zZ2lkPSI1ODk1MDE3NDA0MzYxMzk3MjMyIj4i4YOS4YOQ4YOq4YOU4YOb4YOj4YOa4YOYOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4cGlyZXNfb24iIG1zZ2lkPSIzNjc2MjQyOTQ5OTE1OTU5ODIxIj4i4YOV4YOQ4YOT4YOQIOGDmOGDrOGDo+GDoOGDlOGDkeGDkDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJpYWxfbnVtYmVyIiBtc2dpZD0iNzU4ODE0MDY3NjYwODYyNDkzIj4i4YOh4YOU4YOg4YOY4YOj4YOa4YOYIOGDnOGDneGDm+GDlOGDoOGDmDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5nZXJwcmludHMiIG1zZ2lkPSI0NTE2MDE5NjE5ODUwNzYzMDQ5Ij4i4YOQ4YOc4YOQ4YOR4YOU4YOt4YOT4YOU4YOR4YOYOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYTI1Nl9maW5nZXJwcmludCIgbXNnaWQ9IjQzOTEyNzEyODY0NzcyNzkyNjMiPiJTSEEtMjU2IOGDkOGDnOGDkOGDkeGDlOGDreGDk+GDmDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGExX2ZpbmdlcnByaW50IiBtc2dpZD0iNzkzMDMzMDIzNTI2OTQwNDU4MSI+IlNIQS0xIOGDl+GDmOGDl+GDmOGDoSDhg5Dhg5zhg5Dhg5Hhg5Thg63hg5Phg5g6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfY2hvb3Nlcl92aWV3X3NlZV9hbGwiIG1zZ2lkPSI0MjkyNTY5MzgzOTc2NjM2MjAwIj4i4YOn4YOV4YOU4YOa4YOQ4YOhIOGDnOGDkOGDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2Nob29zZXJfdmlld19kaWFsb2dfdGl0bGVfZGVmYXVsdCIgbXNnaWQ9IjQ3MTAwMTM4NjQ5NzQwNDA2MTUiPiLhg5Dhg6Xhg6Lhg5jhg5Xhg53hg5Hhg5jhg6Eg4YOQ4YOg4YOp4YOU4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfYWN0aW9uX3Byb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI1MjQ3Njg0NDM1OTc5MTQ5MjE2Ij4i4YOS4YOQ4YOW4YOY4YOQ4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9kZXZpY2VfbG9ja2VkIiBtc2dpZD0iMzA5MjcwMzQ0ODY5MDY2OTc2OCI+IuGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDkCDhg6nhg5Dhg5nhg5Thg6Lhg5jhg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGlzdF9kZWxpbWV0ZXIiIG1zZ2lkPSIzOTc1MTE3NTcyMTg1NDk0MTUyIj4iLCAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZW5kaW5nIiBtc2dpZD0iMzI0NTY1MzY4MTAwODIxODAzMCI+IuGDmOGDkuGDluGDkOGDleGDnOGDlOGDkeGDkC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaEJyb3dzZXJEZWZhdWx0IiBtc2dpZD0iMjA1Nzk1MTk0NzI5NzYxNDcyNSI+IuGDkuGDoeGDo+GDoOGDlyDhg5Hhg6Dhg5Dhg6Phg5bhg5Thg6Dhg5jhg6Eg4YOS4YOQ4YOo4YOV4YOU4YOR4YOQPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlNldHVwQ2FsbERlZmF1bHQiIG1zZ2lkPSI1ODM0OTQ4NDY5MjUzNzU4NTc1Ij4i4YOj4YOe4YOQ4YOh4YOj4YOu4YOU4YOR4YOXIOGDluGDkOGDoOGDoT8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9yZXNvbHZlcl91c2VfYWx3YXlzIiBtc2dpZD0iODAxNzc3MDc0NzgwMTQ5NDkzMyI+IuGDp+GDneGDleGDlOGDmuGDl+GDleGDmOGDoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X3Jlc29sdmVyX3VzZV9vbmNlIiBtc2dpZD0iMjQwNDY0NDc5NzE0OTE3Mzc1OCI+IuGDm+GDruGDneGDmuGDneGDkyDhg5Thg6Dhg5fhg67hg5Thg5oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQ2MTcwNTM4OTgxNjcxMjc0NzEiPiLhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MjM5MjkxMjczNDIwMTQwMTIzIj4i4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lX2hlYWRwaG9uZXMiIG1zZ2lkPSI4MTE5OTcxODQzODAzNDM5MTEwIj4i4YOn4YOj4YOg4YOh4YOQ4YOh4YOb4YOU4YOc4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lX2RvY2tfc3BlYWtlcnMiIG1zZ2lkPSI2MjQwNjAyOTgyMjc2NTkxODY0Ij4i4YOh4YOe4YOY4YOZ4YOU4YOg4YOU4YOR4YOY4YOhIOGDm+GDmOGDm+GDkOGDkuGDoOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfbWVkaWFfcm91dGVfbmFtZV9oZG1pIiBtc2dpZD0iMjQ1MDk3MDM5OTAyMzQ3ODA1NSI+IkhETUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX2NhdGVnb3J5X25hbWUiIG1zZ2lkPSIzNzIyODExMTc0MDAzODg2OTQ2Ij4i4YOh4YOY4YOh4YOi4YOU4YOb4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmx1ZXRvb3RoX2EyZHBfYXVkaW9fcm91dGVfbmFtZSIgbXNnaWQ9Ijg1NzU2MjQwMzA0MDY3NzEwMTUiPiJCbHVldG9vdGgg4YOQ4YOj4YOT4YOY4YOdIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lyZWxlc3NfZGlzcGxheV9yb3V0ZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjkwNzAzNDY0MjUwMjM5Nzk2NTEiPiLhg6Phg6Hhg5Dhg5Phg5Thg5zhg50g4YOU4YOZ4YOg4YOQ4YOc4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfY2hvb3Nlcl9ncm91cGluZ19kb25lIiBtc2dpZD0iNzk2NjQzODMwNzcyMzMxNzE2OSI+IuGDk+GDkOGDoeGDoOGDo+GDmuGDk+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX2J1dHRvbl9jb250ZW50X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTc1ODU1MzU2NzA2NTE0NTI3NiI+IuGDm+GDlOGDk+GDmOGDkCDhg5Lhg5Dhg5vhg53hg5vhg5Dhg5Xhg5Dhg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfc2Nhbm5pbmciIG1zZ2lkPSI3Mjc5OTA4NzYxNzU4MjkzNzgzIj4i4YOh4YOZ4YOQ4YOc4YOY4YOg4YOU4YOR4YOQLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2Nvbm5lY3RpbmciIG1zZ2lkPSI2NDIyNTcxNzE2MDA3ODI1NDQwIj4i4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOQLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2F2YWlsYWJsZSIgbXNnaWQ9IjY5ODMyNTgwNjcxOTQ2NDkzOTEiPiLhg67hg5Thg5rhg5vhg5jhg6Hhg5Dhg6zhg5Xhg5Phg53hg5vhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfbm90X2F2YWlsYWJsZSIgbXNnaWQ9IjY3Mzk4OTk5NjI2ODE4ODY0MDEiPiLhg5vhg5jhg6Phg6zhg5Xhg5Phg53hg5vhg5Thg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfaW5fdXNlIiBtc2dpZD0iNDUzMzc4NjAzMTA5MDE5ODA2MyI+IuGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9idWlsdF9pbl9kaXNwbGF5X25hbWUiIG1zZ2lkPSIyNTgzMTM0Mjk0MjkyNTYzOTQxIj4i4YOp4YOQ4YOb4YOd4YOc4YOi4YOQ4YOf4YOU4YOR4YOj4YOa4YOYIOGDlOGDmeGDoOGDkOGDnOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9oZG1pX2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjE1NTUyNjQ1NTkyMjc0NzAxMDkiPiJIRE1JIOGDlOGDmeGDoOGDkOGDnOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9vdmVybGF5X2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjUxNDIzNjU5ODIyNzE2MjA3MTYiPiLhg5Lhg5Dhg5Phg5Dhg6Thg5Dhg6Dhg5Xhg5AgIzx4bGlmZjpnIGlkPSJJRCI+JTEkZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X3RpdGxlIiBtc2dpZD0iNjUyMTI0NTE3NjcyMjU3MTcyIj4iPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+OiA8eGxpZmY6ZyBpZD0iV0lEVEgiPiUyJGQ8L3hsaWZmOmc+eDx4bGlmZjpnIGlkPSJIRUlHSFQiPiUzJGQ8L3hsaWZmOmc+LCA8eGxpZmY6ZyBpZD0iRFBJIj4lNCRkPC94bGlmZjpnPiBkcGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X3NlY3VyZV9zdWZmaXgiIG1zZ2lkPSI2MDIyMTE5NzAyNjI4NTcyMDgwIj4iLCDhg5Phg5Dhg6rhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjIyMzA1MDY0OTI0MDMyNjU1NyI+IuGDo+GDoeGDkOGDk+GDlOGDnOGDnSDhg5Thg5nhg6Dhg5Dhg5zhg5gg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iNDQ5ODgwMjAxMjQ2NDE3MDY4NSI+IuGDkuGDkOGDm+GDneGDoeGDkOGDruGDo+GDmuGDlOGDkeGDkCDhg5Lhg5Dhg5Phg5Dhg5Thg6rhg5Thg5vhg5Ag4YOh4YOu4YOV4YOQIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDkOGDoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfZGlzcGxheV9ub3RpZmljYXRpb25fZGlzY29ubmVjdCIgbXNnaWQ9IjYxODM3NTQ0NjM1NjExNTMzNzIiPiLhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5jhg6Eg4YOS4YOQ4YOs4YOn4YOV4YOU4YOi4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW1lcmdlbmN5X2NhbGxfbGFiZWwiIG1zZ2lkPSI2ODQ5NDYxOTI1MjM4MzA1MzEiPiLhg5Lhg5Dhg5Phg5Dhg6Phg5Phg5Thg5Hhg5Thg5rhg5gg4YOT4YOQ4YOu4YOb4YOQ4YOg4YOU4YOR4YOY4YOhIOGDluGDkOGDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iODg1MjAyMTQ2Nzg2ODIyMDYwOCI+IuGDk+GDkOGDkuGDkOGDleGDmOGDrOGDp+GDk+GDkOGDlyDhg5zhg5jhg5vhg6Phg6jhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXR0ZXJuIiBtc2dpZD0iMTg1MDgwNjA3MDgwMTM1ODgzMCI+IuGDkOGDoOGDkOGDoeGDrOGDneGDoOGDmCDhg5zhg5jhg5vhg6Phg6jhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiLhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5gg4YOe4YOQ4YOg4YOd4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGluIiBtc2dpZD0iMTEzMTMwNjUxMDgzMzU2MzgwMSI+IuGDkOGDoOGDkOGDoeGDrOGDneGDoOGDmCBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfY291bnRkb3duIiBtc2dpZD0iNjM1ODExMDIyMTYwMzI5NzU0OCI+IuGDmeGDmOGDk+GDlOGDlSDhg6Hhg6rhg5Dhg5Phg5Thg5cgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JTEkZDwveGxpZmY6Zz4g4YOs4YOQ4YOb4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3BhdHRlcm5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzk4OTc4NjExNjgzMDc1ODY4Ij4i4YOT4YOQ4YOu4YOQ4YOi4YOU4YOXIOGDl+GDpeGDleGDlOGDnOGDmCDhg5zhg5jhg5vhg6Phg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4iU0lNIFBJTi3hg5jhg6Eg4YOo4YOU4YOn4YOV4YOQ4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiLhg6jhg5Thg5jhg6fhg5Xhg5Dhg5zhg5Thg5cgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+IuGDnuGDkOGDoOGDneGDmuGDmOGDoSDhg6jhg5Thg6fhg5Xhg5Dhg5zhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcHVrX2hpbnQiIG1zZ2lkPSI0NTMyMjcxNDM4NjE3MzU1MzciPiJTSU0g4YOQ4YOb4YOf4YOQ4YOb4YOQ4YOTIOGDk+GDlOGDkOGDpeGDouGDmOGDleGDmOGDoOGDlOGDkeGDo+GDmuGDmOGDkC4g4YOS4YOQ4YOh4YOQ4YOS4YOg4YOr4YOU4YOa4YOU4YOR4YOa4YOQ4YOTIOGDqOGDlOGDmOGDp+GDleGDkOGDnOGDlOGDlyBQVUsg4YOZ4YOd4YOT4YOYLiDhg5Phg5Thg6Lhg5Dhg5rhg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOb4YOY4YOb4YOQ4YOg4YOX4YOU4YOXIOGDm+GDneGDkeGDmOGDmuGDo+GDoCDhg53hg57hg5Thg6Dhg5Dhg6Lhg53hg6Dhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IuGDoeGDkOGDoeGDo+GDoOGDleGDlOGDmuGDmCBQSU4g4YOZ4YOd4YOT4YOY4YOhIOGDqOGDlOGDp+GDleGDkOGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLhg6Hhg5Dhg6Hhg6Phg6Dhg5Xhg5Thg5rhg5ggUElOIOGDmeGDneGDk+GDmOGDoSDhg5Phg5Dhg5Phg5Dhg6Hhg6Lhg6Phg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQ4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOYIFBJTiDhg5nhg53hg5Phg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4i4YOQ4YOZ4YOg4YOY4YOk4YOU4YOXIFBJTiwg4YOg4YOd4YOb4YOU4YOa4YOY4YOqIOGDqOGDlOGDk+GDkuGDlOGDkeGDkCA0LeGDk+GDkOGDnCA4IOGDquGDmOGDpOGDoOGDkOGDm+GDk+GDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJQVUsg4YOZ4YOd4YOT4YOYIOGDo+GDnOGDk+GDkCDhg5jhg6fhg53hg6Eg4YOg4YOV4YOQIOGDkOGDnCDhg5vhg5Thg6Lhg5gg4YOq4YOY4YOk4YOg4YOY4YOh4YOS4YOQ4YOcIOGDqOGDlOGDm+GDk+GDkuGDkOGDoOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLhg67hg5Thg5rhg5Dhg67hg5rhg5Ag4YOo4YOU4YOY4YOn4YOV4YOQ4YOc4YOU4YOXIOGDoeGDrOGDneGDoOGDmCBQVUsg4YOZ4YOd4YOT4YOYLiDhg6Dhg5Dhg5vhg5Phg5Thg5zhg5jhg5vhg5Qg4YOs4YOQ4YOg4YOj4YOb4YOQ4YOi4YOU4YOR4YOU4YOa4YOYIOGDm+GDquGDk+GDlOGDmuGDneGDkeGDkCDhg5Lhg5Dhg5vhg53hg5jhg6zhg5Xhg5Thg5Xhg6EgU0lNIOGDkeGDkOGDoOGDkOGDl+GDmOGDoSDhg5Phg5Dhg5Hhg5rhg53hg5nhg5Xhg5Dhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9jb25maXJtX3Bpbl9oaW50IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzAwMzQ2OTI2MTQ2NDU5MzUxNiI+IlBJTiDhg5nhg53hg5Phg5Thg5Hhg5gg4YOQ4YOgIOGDlOGDm+GDl+GDruGDleGDlOGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+IuGDnOGDkOGDruGDkOGDouGDmCDhg5zhg5jhg5vhg6Phg6jhg5jhg6Eg4YOr4YOQ4YOa4YOY4YOQ4YOcIOGDkeGDlOGDleGDoOGDmCDhg5vhg6rhg5Phg5Thg5rhg53hg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIxMTAwNTUxMjYxMjY1NTA2NDQ4Ij4i4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOY4YOh4YOX4YOV4YOY4YOhIOGDkuGDkOGDmOGDkOGDoOGDlOGDlyDhg5Dhg5Xhg6Lhg53hg6Dhg5jhg5bhg5Dhg6rhg5jhg5Ag4YOX4YOl4YOV4YOU4YOc4YOYIEdvb2dsZSAg4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOY4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4i4YOb4YOd4YOb4YOu4YOb4YOQ4YOg4YOU4YOR4YOa4YOY4YOhIOGDoeGDkOGDruGDlOGDmuGDmCAo4YOU4YOa4YOk4YOd4YOh4YOi4YOQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4i4YOe4YOQ4YOg4YOd4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiLhg6jhg5Thg6Hhg5Xhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+IuGDkOGDoOGDkOGDoeGDrOGDneGDoOGDmCDhg6Hhg5Dhg67hg5Thg5rhg5gsIOGDkOGDnCDhg57hg5Dhg6Dhg53hg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IuGDk+GDkOGDkuGDkOGDleGDmOGDrOGDp+GDk+GDkOGDlyDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOh4YOQ4YOu4YOU4YOa4YOYIOGDk+GDkCDhg57hg5Dhg6Dhg53hg5rhg5g/XG7hg5Thg6zhg5Xhg5jhg5Thg5cgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IuGDm+GDmOGDm+GDk+GDmOGDnOGDkOGDoOGDlOGDneGDkeGDoSDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5jhg6Eg4YOo4YOU4YOb4YOd4YOs4YOb4YOU4YOR4YOQ4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiLhg5fhg6Xhg5Xhg5Thg5wgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4t4YOv4YOU4YOgIOGDkOGDoOGDkOGDoeGDrOGDneGDoOGDkOGDkyDhg6jhg5Thg5jhg6fhg5Xhg5Dhg5zhg5Thg5cgUElOIOGDmeGDneGDk+GDmC4gXG5cbuGDoeGDquGDkOGDk+GDlOGDlyDhg67hg5Thg5rhg5Dhg67hg5rhg5AgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOb4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiLhg5fhg6Xhg5Xhg5Thg5wgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4t4YOv4YOU4YOgIOGDkOGDoOGDkOGDoeGDrOGDneGDoOGDkOGDkyDhg5Phg5Dhg5Hhg5Thg63hg5Phg5Thg5cg4YOX4YOl4YOV4YOU4YOc4YOYIOGDnuGDkOGDoOGDneGDmuGDmC4gXG5cbuGDruGDlOGDmuGDkOGDruGDmuGDkCDhg6Hhg6rhg5Dhg5Phg5Thg5cgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOb4YOo4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXR0ZXJuX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzQwODk0NzU5NjUwNTA4MDUiPiLhg5fhg6Xhg5Xhg5Thg5wgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4t4YOv4YOU4YOgIOGDk+GDkOGDruGDkOGDouGDlOGDlyDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Eg4YOc4YOY4YOb4YOj4YOo4YOYLiBcblxu4YOh4YOq4YOQ4YOT4YOU4YOXIOGDruGDlOGDmuGDkOGDruGDmuGDkCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg5vhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTc1NTU3MjAwNjI3MTI4OTQ5Ij4i4YOX4YOl4YOV4YOU4YOcIOGDkOGDoOGDkOGDoeGDrOGDneGDoOGDkOGDkyDhg6Hhg6rhg5Dhg5Phg5Thg5cg4YOi4YOQ4YOR4YOa4YOU4YOi4YOY4YOhIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDkCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPi3hg6/hg5Thg6AuIOGDmeGDmOGDk+GDlOGDlSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg6Dhg6Phg5vhg5Dhg6Lhg5Thg5Hhg5Thg5rhg5gg4YOq4YOT4YOY4YOhIOGDqOGDlOGDm+GDk+GDlOGDkiDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5bhg5Qg4YOT4YOQ4YOn4YOU4YOc4YOT4YOU4YOR4YOQIOGDoeGDkOGDrOGDp+GDmOGDoeGDmCwg4YOl4YOQ4YOg4YOu4YOc4YOj4YOa4YOYIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmCDhg5Phg5Ag4YOb4YOd4YOb4YOu4YOb4YOQ4YOg4YOU4YOR4YOa4YOY4YOhIOGDp+GDleGDlOGDmuGDkCDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5gg4YOT4YOQ4YOY4YOZ4YOQ4YOg4YOS4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQwNTEwMTU5NDMwMzgxOTk5MTAiPiLhg5fhg6Xhg5Xhg5Thg5wg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDoeGDquGDkOGDk+GDlOGDlyDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+LeGDr+GDlOGDoC4g4YOZ4YOY4YOT4YOU4YOVIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDoOGDo+GDm+GDkOGDouGDlOGDkeGDlOGDmuGDmCDhg6rhg5Phg5jhg6Eg4YOo4YOU4YOb4YOT4YOU4YOSIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDluGDlCDhg5Phg5Dhg6fhg5Thg5zhg5Phg5Thg5Hhg5Ag4YOh4YOQ4YOs4YOn4YOY4YOh4YOYLCDhg6Xhg5Dhg6Dhg67hg5zhg6Phg5rhg5gg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYIOGDk+GDkCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOn4YOV4YOU4YOa4YOQIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDmCDhg5Phg5Dhg5jhg5nhg5Dhg6Dhg5Lhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNzI5OTYyNjkxNDg0ODM2MzciPiLhg5fhg6Xhg5Xhg5Thg5wg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDoeGDquGDkOGDk+GDlOGDlyDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPi3hg6/hg5Thg6AuIOGDouGDkOGDkeGDmuGDlOGDouGDluGDlCDhg5Phg5Dhg6fhg5Thg5zhg5Phg5Thg5Hhg5Ag4YOh4YOQ4YOs4YOn4YOY4YOh4YOYLCDhg6Xhg5Dhg6Dhg67hg5zhg6Phg5rhg5gg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYIOGDk+GDkCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOn4YOV4YOU4YOa4YOQIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDmCDhg5Phg5Dhg5jhg5nhg5Dhg6Dhg5Lhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4i4YOX4YOl4YOV4YOU4YOcIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPi3hg6/hg5Thg6Ag4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDoeGDquGDkOGDk+GDlOGDlyDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQLiDhg5Dhg5vhg5jhg6Lhg53hg5sg4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOW4YOUIOGDk+GDkOGDk+GDkuGDlOGDkeGDkCDhg6Hhg5Dhg6zhg6fhg5jhg6Hhg5gsIOGDpeGDkOGDoOGDruGDnOGDo+GDmuGDmCDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IuGDl+GDpeGDleGDlOGDnCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOT4YOQ4YOu4YOQ4YOi4YOU4YOXIOGDl+GDpeGDleGDlOGDnOGDmCDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Eg4YOc4YOY4YOb4YOj4YOo4YOYIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOGDr+GDlOGDoC4g4YOZ4YOY4YOT4YOU4YOVIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDoOGDo+GDm+GDkOGDouGDlOGDkeGDlOGDmuGDmCDhg6rhg5Phg5jhg6Eg4YOo4YOU4YOb4YOT4YOU4YOSIOGDm+GDneGDkuGDl+GDruGDneGDleGDlyDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQ4YOhIOGDlOGDmuGDpOGDneGDoeGDouGDmOGDoSDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOY4YOXLlxuXG4g4YOu4YOU4YOa4YOQ4YOu4YOa4YOQIOGDoeGDquGDkOGDk+GDlOGDlyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg5vhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLhg5fhg6Xhg5Xhg5Thg5wg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDk+GDkOGDruGDkOGDouGDlOGDlyDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOY4YOhIOGDnOGDmOGDm+GDo+GDqOGDmCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPi3hg6/hg5Thg6AuIOGDmeGDmOGDk+GDlOGDlSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg6Dhg6Phg5vhg5Dhg6Lhg5Thg5Hhg5Thg5rhg5gg4YOq4YOT4YOY4YOhIOGDqOGDlOGDm+GDk+GDlOGDkiwg4YOT4YOQ4YOS4YOt4YOY4YOg4YOT4YOU4YOR4YOQ4YOXIOGDl+GDpeGDleGDlOGDnOGDmCDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIOGDlOGDmuGDpOGDneGDoeGDouGDmOGDoSDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOY4YOXLlxuXG4g4YOu4YOU4YOa4YOQ4YOu4YOa4YOQIOGDoeGDquGDkOGDk+GDlOGDlyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg5vhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i4YOQ4YOb4YOd4YOo4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2FmZV9tZWRpYV92b2x1bWVfd2FybmluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMjQxNjE5Mzk0NzU0NzgwNjYiPiLhg6Dhg5Thg5nhg53hg5vhg5Thg5zhg5Phg5Thg5Hhg6Phg5og4YOT4YOd4YOc4YOU4YOW4YOUIOGDm+GDkOGDpuGDmuGDkCDhg5Lhg6Hhg6Phg6Dhg5cg4YOu4YOb4YOY4YOhIOGDkOGDrOGDlOGDleGDkD9cbuGDk+GDmOGDk+GDmCDhg67hg5zhg5jhg6Eg4YOS4YOQ4YOc4YOb4YOQ4YOV4YOa4YOd4YOR4YOQ4YOo4YOYIOGDq+GDkOGDmuGDmOGDkOGDnCDhg67hg5vhg5Dhg5vhg5Dhg6bhg5rhg5Ag4YOb4YOd4YOh4YOb4YOU4YOc4YOQ4YObIOGDqOGDlOGDoeGDkOGDq+GDmuGDneGDkCDhg6Hhg5vhg5Thg5zhg5Ag4YOT4YOQ4YOS4YOY4YOW4YOY4YOQ4YOc4YOd4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRpbnVlX3RvX2VuYWJsZV9hY2Nlc3NpYmlsaXR5IiBtc2dpZD0iMTYyNjQyNzM3MjMxNjA3MDI1OCI+IuGDkuGDlOGDreGDmOGDoOGDneGDlyDhg53hg6Dhg5gg4YOX4YOY4YOX4YOYIOGDm+GDkOGDoOGDouGDmOGDleGDmCDhg6zhg5Xhg5Phg53hg5vhg5jhg6Eg4YOp4YOQ4YOh4YOQ4YOg4YOX4YOQ4YOV4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZW5hYmxlZCIgbXNnaWQ9IjEzODE5NzIwNDg1NjQ1NDc2ODUiPiLhg5vhg5Dhg6Dhg6Lhg5jhg5Xhg5gg4YOs4YOV4YOT4YOd4YOb4YOQIOGDqeGDkOGDoOGDl+GDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVfYWNjZXNzaWJpbGl0eV9jYW5jZWxlZCIgbXNnaWQ9IjM4MzM5MjMyNTc5NjY2MzU2NzMiPiLhg5vhg5Dhg6Dhg6Lhg5jhg5Xhg5gg4YOs4YOV4YOT4YOd4YOb4YOQIOGDkuGDkOGDo+GDpeGDm+GDk+GDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VyX3N3aXRjaGVkIiBtc2dpZD0iMzc2ODAwNjc4MzE2Njk4NDQxMCI+IuGDkOGDm+GDn+GDkOGDm+GDmOGDnOGDk+GDlOGDmuGDmCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5Thg5rhg5ggPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im93bmVyX25hbWUiIG1zZ2lkPSIyNzE2NzU1NDYwMzc2MDI4MTU0Ij4i4YOb4YOk4YOa4YOd4YOR4YOU4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXJyb3JfbWVzc2FnZV90aXRsZSIgbXNnaWQ9IjQ1MTAzNzMwODMwODI1MDAxOTUiPiLhg6jhg5Thg6rhg5Phg53hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbm9fcmVzdHJpY3RlZF9hY2NvdW50cyIgbXNnaWQ9IjU3Mzk0NjMyNDk2NzM3Mjc3MzYiPiLhg5Dhg5sg4YOQ4YOe4YOhIOGDqOGDlOGDluGDpuGDo+GDk+GDo+GDmuGDmCDhg57hg6Dhg53hg6Thg5jhg5rhg5Thg5Hhg5jhg6Eg4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOU4YOR4YOY4YOhIOGDm+GDruGDkOGDoOGDk+GDkOGDreGDlOGDoOGDkCDhg5Dhg6Ag4YOQ4YOl4YOV4YOhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX25vdF9mb3VuZCIgbXNnaWQ9IjM0MjkxNDE4NTM0OTg5MjczNzkiPiLhg5Dhg5sg4YOb4YOd4YOl4YOb4YOU4YOT4YOU4YOR4YOY4YOhIOGDqOGDlOGDoeGDkOGDoeGDoOGDo+GDmuGDlOGDkeGDmuGDkOGDkyDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Ag4YOV4YOU4YOgIOGDm+GDneGDmOGDq+GDlOGDkeGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJldm9rZSIgbXNnaWQ9IjU0MDQ0NzkxODUyMjgyNzE1ODYiPiLhg5Lhg5Dhg6Phg6Xhg5vhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2EwIiBtc2dpZD0iNzg3NTQyNzQ4OTQyMDgyMTc5MyI+IklTTyBBMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTEiIG1zZ2lkPSIzNzYwNzM0NDk5MDUwODc1MzU2Ij4iSVNPIEExIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMiIgbXNnaWQ9IjU5NzMyNjYzNzgwMjAxNDQzODIiPiJJU08gQTIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2EzIiBtc2dpZD0iMTM3MzQwNzEwNTY4NzMwMDg4NCI+IklTTyBBMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTQiIG1zZ2lkPSI2Njg5NzcyODA3OTgyNTk3MjU0Ij4iSVNPIEE0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNSIgbXNnaWQ9IjUzNTM1NDk2NTIwMTU3NDEwNDAiPiJJU08gQTUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E2IiBtc2dpZD0iODU4NTAzODA0ODY3NDkxMTkwNyI+IklTTyBBNiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTciIG1zZ2lkPSI2NjQxODM2NzE2OTYzODM5MTE5Ij4iSVNPIEE3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hOCIgbXNnaWQ9Ijc1NzExMzk0Mzc0NjU2OTMzNTUiPiJJU08gQTgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E5IiBtc2dpZD0iMTM3ODQ1NTg5MTk1NzExNTA3OSI+IklTTyBBOSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTEwIiBtc2dpZD0iMjQ4MDc0NzQ1NzQyOTQ3NTM0NCI+IklTTyBBMTAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IwIiBtc2dpZD0iMzk2NTkzNTA5NzY2MTEwODAzOSI+IklTTyBCMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjEiIG1zZ2lkPSIyNTA1NzUzMjg1MDEwMTE1NDM3Ij4iSVNPIEIxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMiIgbXNnaWQ9Ijg3NjM4NzQ3MDk4NTk0NTg0NTMiPiJJU08gQjIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IzIiBtc2dpZD0iNDIxMDUwNjY4ODE5MTc2NDA3NiI+IklTTyBCMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjQiIG1zZ2lkPSI1NzQ5NDA0MTY1ODg4NTI2MDM0Ij4iSVNPIEI0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNSIgbXNnaWQ9Ijc2NDA2Mjc0MTQ2MjE5MDQ3MzMiPiJJU08gQjUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I2IiBtc2dpZD0iNzM0Mjk4ODg2NDcxMjc0ODU0NCI+IklTTyBCNiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjciIG1zZ2lkPSI1MDY5ODQ0MDY1MjM1MzgyNDI5Ij4iSVNPIEI3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iOCIgbXNnaWQ9IjczMTY4MTg5MjIyNzg3Nzk3NzQiPiJJU08gQjgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I5IiBtc2dpZD0iNTQxNDcyNzA5NDAyNjUzMjM0MSI+IklTTyBCOSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjEwIiBtc2dpZD0iNTI1MTI1MzczMTgzMjA0ODE4NSI+IklTTyBCMTAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MwIiBtc2dpZD0iNDAwMzEzODM0MjY3MTk2NDIxNyI+IklTTyBDMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzEiIG1zZ2lkPSIxOTM1MTg4MDYzMzkzNTUzMDA4Ij4iSVNPIEMxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMiIgbXNnaWQ9IjMxOTczMDc5Njk3MTIwNjk5MDQiPiJJU08gQzIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MzIiBtc2dpZD0iNDMzNTgyNjA4NzMyMTkxMzUwOCI+IklTTyBDMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzQiIG1zZ2lkPSIzNzQ1NjM5NTk4MjgxMDE1MDA1Ij4iSVNPIEM0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNSIgbXNnaWQ9IjgyNjk0NTc3NjU4MjI3OTEwMTMiPiJJU08gQzUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M2IiBtc2dpZD0iNTY2NjY2MTA1MjYwMzQ2OTMwIj4iSVNPIEM2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNyIgbXNnaWQ9Ijg2Nzg0MTMxODA3ODI2MDg0OTgiPiJJU08gQzciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M4IiBtc2dpZD0iODM5MjM3NjIwNjYyNzA0MTczMCI+IklTTyBDOCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzkiIG1zZ2lkPSI5MTkxNjEzMzcyMzI0ODQ1NDA1Ij4iSVNPIEM5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMTAiIG1zZ2lkPSI3MzI3NzA5Njk5MTg0OTIwODIyIj4iSVNPIEMxMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9sZXR0ZXIiIG1zZ2lkPSI0MTkxODA1NjE1ODI5NDcyOTUzIj4iTGV0dGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2d2cm5tdF9sZXR0ZXIiIG1zZ2lkPSI3ODUzMzgyMTkyNjQ5NDA1NTA3Ij4iR292ZXJubWVudCBMZXR0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGVnYWwiIG1zZ2lkPSI2Njk3OTgyOTg4MjgzODIzMTUwIj4iTGVnYWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfanVuaW9yX2xlZ2FsIiBtc2dpZD0iMzcyNzc0Mzk2OTkwMjc1ODk0OCI+Ikp1bmlvciBMZWdhbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9sZWRnZXIiIG1zZ2lkPSIyODE4NzE0NjQ4OTY2MDEyMzYiPiJMZWRnZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfdGFibG9pZCIgbXNnaWQ9IjU3NzU5NjY0MTYzMzM1NzgxMjciPiJUYWJsb2lkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id3JpdGVfZmFpbF9yZWFzb25fY2FuY2VsbGVkIiBtc2dpZD0iNzA5MTI1ODM3ODEyMTYyNzYyNCI+IuGDkuGDkOGDo+GDpeGDm+GDlOGDkeGDo+GDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndyaXRlX2ZhaWxfcmVhc29uX2Nhbm5vdF93cml0ZSIgbXNnaWQ9IjgxMzI1MDU0MTc5MzUzMzc3MjQiPiLhg6jhg5Thg6rhg5Phg53hg5vhg5Ag4YOZ4YOd4YOc4YOi4YOU4YOc4YOi4YOY4YOhIOGDqeGDkOGDrOGDlOGDoOGDmOGDoeGDkOGDoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9waW4iIG1zZ2lkPSIzMzk1OTUzNDIxMzY4NDc2MTAzIj4i4YOo4YOU4YOY4YOn4YOV4YOQ4YOc4YOU4YOXIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9vbGRfcGluIiBtc2dpZD0iMTQ2MjIwNjIyNTUxMjkxMDc1NyI+IuGDkOGDm+GDn+GDkOGDm+GDmOGDnOGDk+GDlOGDmuGDmCBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfbmV3X3BpbiIgbXNnaWQ9IjU5NTk2MDY2OTE2MTk5NTkxODQiPiLhg5Dhg67hg5Dhg5rhg5ggUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2NvbmZpcm1fcGluIiBtc2dpZD0iODUwMTUyMzgyOTYzMzE0NjIzOSI+IuGDkuGDkOGDmOGDm+GDlOGDneGDoOGDlOGDlyDhg5Dhg67hg5Dhg5rhg5ggUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2NyZWF0ZV9waW4iIG1zZ2lkPSI4MDE3NjAwMDAwMjYzNDUwMzM3Ij4i4YOo4YOU4YOl4YOb4YOU4YOc4YOY4YOXIFBJTiDhg6jhg5Thg5bhg6bhg6Phg5Phg5Xhg5Thg5Hhg5jhg6Eg4YOq4YOV4YOa4YOY4YOa4YOU4YOR4YOU4YOR4YOY4YOh4YOQ4YOX4YOV4YOY4YOhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2Vycm9yX2RvZXNudF9tYXRjaCIgbXNnaWQ9IjIyMjQyMTQxOTA5MDY5OTQ1NDgiPiJQSU4t4YOU4YOR4YOYIOGDkOGDoCDhg5Thg5vhg5fhg67hg5Xhg5Thg5Xhg5AuIOGDoeGDquGDkOGDk+GDlOGDlyDhg67hg5Thg5rhg5Dhg67hg5rhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2Vycm9yX3Rvb19zaG9ydCIgbXNnaWQ9IjgxNzM5ODI3NTYyNjU3Nzc3OTIiPiJQSU4g4YOr4YOQ4YOa4YOY4YOQ4YOcIOGDm+GDneGDmeGDmuGDlOGDkC4g4YOj4YOc4YOT4YOQIOGDqOGDlOGDk+GDkuGDlOGDkeGDneGDk+GDlOGDoSDhg6Hhg6Phg5og4YOq4YOd4YOi4YOQIDQg4YOq4YOY4YOk4YOg4YOY4YOh4YOS4YOQ4YOcLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icmVzdHJfcGluX2NvdW50ZG93biI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ4MzU2Mzk5Njk1MDM3Mjk4NzQiPiLhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5ggUElOLiDhg6Hhg6rhg5Dhg5Phg5Thg5cg4YOY4YOh4YOU4YOVIDEg4YOs4YOQ4YOb4YOo4YOYLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODAzMDYwNzM0MzIyMzI4NzY1NCI+IuGDkOGDoOGDkOGDoeGDrOGDneGDoOGDmCBQSU4uIOGDoeGDquGDkOGDk+GDlOGDlyDhg5jhg6Hhg5Thg5UgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOb4YOo4YOYLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InRyYW5zaWVudF9uYXZpZ2F0aW9uX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjQ5MDc4NDQwNDM2MTExMjM0MjYiPiLhg5Lhg5Dhg5Dhg6Hhg6Dhg5jhg5Dhg5rhg5Thg5cg4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDmeGDmOGDk+GDlOGDluGDlCDhg5bhg53hg5rhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOh4YOQ4YOp4YOU4YOc4YOQ4YOTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHJhbnNpZW50X25hdmlnYXRpb25fY29uZmlybWF0aW9uX2xvbmciIG1zZ2lkPSI4MDYxNjg1OTIwNTA4MDg2Njk3Ij4i4YOS4YOQ4YOQ4YOh4YOg4YOY4YOQ4YOa4YOU4YOXIOGDlOGDmeGDoOGDkOGDnOGDmOGDoSDhg5nhg5jhg5Phg5jhg5Phg5Dhg5wg4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDluGDneGDmuGDmOGDoSDhg5Lhg5Dhg5vhg53hg6Hhg5Dhg6nhg5Thg5zhg5Dhg5MiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1rbS1yS0gvc3RyaW5ncy54bWwKaW5kZXggNmRhY2UzYy4uMTVkNDE4MSAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1rbS1yS0gvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1rbS1yS0gvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IuGelOGeieGfkuGeheGevOGem+KAi+GegOGevOGeiiBQVUsg4Z6K4Z+C4Z6b4oCL4Z6Y4Z624Z6T4oCL4Z6W4Z644oCLIOGfqCDhnpvhn4HhnoHigIsg4Z6s4oCL4Z6c4Z+C4Z6E4oCL4Z6H4Z624Z6E4oCL4Z6T4Z+B4Z+H4Z+UIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IuGen+GfiuGeuOGemOGegOGetuGej+KAi+KAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+Geh+GetuGelOGfi+KAi+GegOGevOGeiiBQVUsg4Z+UIOGelOGeieGfkuGeheGevOGem+KAi+GegOGevOGeiiBQVUsg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4Z+UIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6KIFBVSzIg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6f4Z+K4Z644Z6Y4oCL4Z6A4Z624Z6P4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4i4Z6U4Z6a4Z624Z6H4Z+Q4Z6ZLCDhnpThnr7hnoDigIvhnoDhnrbhnprigIvhnoXhnrbhnoDhn4vhnp/hn4TigIvhnp/hn4rhnrjigIvhnpggLyBSVUlNIOGflCI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IuGeouGfkuGek+GegOKAi+GemOGetuGekyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4Z6A4Z624Z6a4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6K4Z+C4Z6b4oCL4Z6T4Z+F4Z6f4Z6b4Z+L4oCL4Z6Y4Z674Z6T4oCL4Z6W4Z+B4Z6b4oCL4Z6f4Z+K4Z644oCL4Z6Y4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6F4Z624Z6A4Z+L4Z6f4Z+E4oCL4Z+UIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6Y4Z624Z6TIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhnoDhnrbhnprigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnorhn4LhnpvigIvhnpPhn4Xhnp/hnpvhn4vigIvhnpjhnrvhnpPigIvhnpbhn4HhnpvigIvhnp/hn4rhnrjigIvhnpjigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnoXhnrbhnoDhn4vhnp/hn4TigIvhn5QiPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IuGem+GfgeGegeKAi+Gen+GemOGfkuGeguGetuGem+Gfi+KAi+GeouGfkuGek+GegOKAi+GeoOGfheKAi+KAi+GeheGevOGemyI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6b4Z6A4Z+S4Z6B4Z6O4Z+I4oCL4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4Z6R4Z624Z6U4oCL4Z6a4Z6U4Z6f4Z+LIFN1cmZhY2VGbGluZ2VyIOGflCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+IuGeouGetuGek+KAi+GeouGehOGfkuGeguKAi+GeheGehOGeheGetuGfhuKAi+GelOGejuGfkuGeiuGfhOGfh+KAi+GeouGetuGen+Gek+GfkuGekyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhnrbhnpPigIvhnpjhnrbhno/hnrfhnoDhnrbigIvhnpPhn4PigIvhnqLhnoThn5LhnoLigIvhnoXhnoThnoXhnrbhn4bigIvhnpThno7hn5Lhnorhn4Thn4figIvhnqLhnrbhnp/hnpPhn5LhnpPhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiLhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnpogSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGfkuGemuGevuKAi+Gem+GegOGfkuGegeGejuGfiOKAi+GegOGemOGfkuGemuGet+Gej+KAi+GekeGetuGelCBJbnB1dEZsaW5nZXIg4Z+UIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiLhnoDhn4bhno7hno/hn4vigIvhnprhnoXhnpPhnrbhnp/hnpjhn5Lhnpbhn5DhnpPhn5LhnpLigIvhnoDhnrbhnprigIvhnpThnoThn5LhnqDhnrbhnonigIvhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoDhn4bhno7hno/hn4vigIvhnprhnoXhnpPhnrbhnp/hnpjhn5Lhnpbhn5DhnpPhn5LhnpLigIsg4Z6T4Z634Z6E4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6R4Z+F4oCL4Z6A4Z624Z6a4oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6Z4Z+UIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiLhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnoDhnrbhnprigIvhnpThnoThn5LhnqDhnrbhnonigIvhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpkiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IuGeh+GfkuGemuGevuGen+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+IuGemOGet+Gek+KAi+GeouGetuGeheKAi+GeheGetuGelOGfi+GeleGfkuGeiuGevuGemCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4i4Z6F4Z+C4Z6A4Z6a4Z+G4Z6b4Z+C4Z6A4oCL4Z6H4Z624oCL4Z6Y4Z694Z6ZIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IuGeheGfguGegOKAi+GemuGfhuGem+GfguGegOKAi+Geh+GetuKAi+GemOGeveGemSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+IuGeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+GegOGetuGemuKAi+GemuGeu+GeieGflCDhnpThn4nhn4cgJmFtcDsg4Z6f4Z6E4Z+S4Z6A4Z6P4Z+L4Z+UIjwvc3RyaW5nPgpAQCAtMTY0OSw1ICsxNjU3LDE2IEBACiAgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDczMDg2ODkyMDc0Mjk1MjgxNyI+IuGen+GevOGemOKAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGej+KAi+GegOGfkuGek+Geu+GehOKAi+GemuGemeGfiOGeluGfgeGemyA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhnpzhnrfhnpPhnrbhnpHhnrgiPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4i4Z6f4Z684Z6Y4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6Y4Z+S4Z6K4Z6E4Z6R4Z+A4Z6P4oCL4Z6T4Z+F4oCL4Z6W4Z+B4Z6b4oCL4Z6A4Z+S4Z6a4Z+E4Z6Z4Z+UIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IuGeouGevOGen+KAi+KAi+KAi+GeheGeu+Gfh+GegOGfkuGemuGfhOGemCDhnorhnr7hnpjhn5LhnpThnrjigIvhnoXhn4HhnonigIvhnpbhnrjigIvhnoDhnrbhnprigIvhnpThnoThn5LhnqDhnrbhnonigIvhnpbhn4HhnonigIvhnqLhn4HhnoDhn5LhnprhnoThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4i4Z6i4Z684Z6f4oCL4oCL4oCL4oCL4Z6W4Z644Z6b4Z6+4oCL4Z6F4Z674Z+H4Z6A4Z+S4Z6a4Z+E4Z6YIOGeiuGevuGemOGfkuGelOGeuOKAi+GeheGfgeGeieKAi+GeluGeuOKAi+GegOGetuGemuKAi+GelOGehOGfkuGeoOGetuGeieKAi+GeluGfgeGeieKAi+GeouGfgeGegOGfkuGemuGehOGfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4i4Z6a4Z694Z6F4Z6a4Z624Z6b4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4i4Z6C4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6a4Z+G4Z6A4Z634Z6b4oCL4Z6a4Z6E4Z+S4Z6c4Z6E4Z+L4oCL4Z6Y4Z+J4Z+E4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiLhnoLhn5LhnprhnrbhnpThn4vigIvhnprhn4bhnoDhnrfhnpvigIvhnprhnoThn5LhnpzhnoThn4vigIvhnpPhnrbhnpHhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4i4Z6H4Z+S4Z6a4Z6+4Z6f4oCL4Z6Y4Z+J4Z+E4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4i4Z6H4Z+S4Z6a4Z6+4Z6f4oCL4Z6T4Z624Z6R4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiLhnoDhn5LhnprhnqHhnrbigIvigIvigIvhnoHhn4LigIvhnpPhn4PigIvhnpDhn5LhnoThn4MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLhnpThnonhn5LhnofhnrjigIvhnobhn5LhnpPhnrbhn4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IuGeh+GfkuGemuGevuGen+KAi+GegeGfgiDhnpPhnrfhnoTigIvhnpDhn5LhnoThn4MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiLhnofhn5Lhnprhnr7hnp/igIvhnobhn5LhnpPhnrbhn4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4i4Z6U4Z624Z6T4oCL4Z6H4Z+S4Z6a4Z6+4Z6fIDx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+IuGelOGetuGek+KAi+Gem+Geu+GelCA8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1rbS9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMta20vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZThjOGJiNAotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMta20vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwxNTg4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qIC8vZGV2aWNlL2FwcHMvY29tbW9uL2Fzc2V0cy9yZXMvYW55L3N0cmluZ3MueG1sCisqKgorKiogQ29weXJpZ2h0IDIwMDYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImJ5dGVTaG9ydCIgbXNnaWQ9IjgzNDA5NzM4OTI3NDIwMTkxMDEiPiJCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2lsb2J5dGVTaG9ydCIgbXNnaWQ9IjU5NzM3ODk3ODM1MDQ3NzE4NzgiPiLhnoLhnrjhnqHhnrzhnpThn4MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWdhYnl0ZVNob3J0IiBtc2dpZD0iNjM1NTg1MTU3Njc3MDQyODkyMiI+IuGemOGfgeGegOGetuGelOGfgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdpZ2FieXRlU2hvcnQiIG1zZ2lkPSIzMjU5ODgyNDU1MjEyMTkzMjE0Ij4i4Z6H4Z644Z6A4Z624Z6U4Z+DIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGVyYWJ5dGVTaG9ydCIgbXNnaWQ9IjIzMTYxMzAxODE1OTE4Njk2MiI+IuGej+GfgeGemuGfieGetuGelOGfgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBldGFieXRlU2hvcnQiIG1zZ2lkPSI1NjM3ODE2NjgwMTQ0OTkwMjE5Ij4iUEIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaWxlU2l6ZVN1ZmZpeCIgbXNnaWQ9IjkxNjQyOTI3OTE1MDA1MzE5NDkiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRzPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJVTklUIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVudGl0bGVkIiBtc2dpZD0iNDYzODk1Njk1NDg1Mjc4MjU3NiI+IiZsdDvhnoLhn5LhnpjhnrbhnpPigIvhnoXhn4bhno7hnoTigIvhnofhnr7hnoQmZ3Q7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXMiIG1zZ2lkPSI3ODk5ODI5NTE2MDQ4ODEzMjM3Ij4i4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXNfdHdvX2RvdHMiIG1zZ2lkPSIxMjI4MDc4OTk0ODY2MDMwNzM2Ij4i4oClIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHlQaG9uZU51bWJlciIgbXNnaWQ9Ijc2OTQwNjMwNDIwNzk2NzY1MTciPiIo4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6b4Z+B4Z6B4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6RKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVua25vd25OYW1lIiBtc2dpZD0iMjI3NzU1NjU0Njc0Mjc0NjUyMiI+IijhnpjhnrfhnpPigIvhnp/hn5LhnoLhnrbhnpvhn4spIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdFZvaWNlTWFpbEFscGhhVGFnIiBtc2dpZD0iMjY2MDAyMDk5MDA5NzczMzA3NyI+IuGen+GetuGemuKAi+Geh+GetuKAi+Gen+GfhuGeoeGfgeGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRNc2lzZG5BbHBoYVRhZyIgbXNnaWQ9IjI4NTA4ODk3NTQ5MTk1ODQ2NzQiPiJNU0lTRE4xIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pRXJyb3IiIG1zZ2lkPSI1MTU0NDk5NDU3NzM5MDUyOTA3Ij4i4Z6U4Z6J4Z+S4Z6g4Z624oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6A4Z624Z6a4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCLIOGerOKAi+GegOGevOGeiiBNTUkg4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pRmRuRXJyb3IiIG1zZ2lkPSI1MjI0Mzk4MjE2Mzg1MzE2NDcxIj4i4Z6U4Z+S4Z6a4Z6P4Z634Z6U4Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6K4Z624Z6A4Z+L4oCL4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4oCL4oCL4Z6F4Z+G4Z6W4Z+E4Z+H4oCL4Z6b4Z+B4Z6B4oCL4Z6g4Z+F4oCL4Z6Q4Z+B4Z6a4oCL4Z6P4Z+C4oCL4Z6U4Z+J4Z674Z6O4Z+S4Z6O4Z+E4Z+H4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUVuYWJsZWQiIG1zZ2lkPSI4MTQ3Mjc4MzQ2NDE0NzE0MzE1Ij4i4Z6U4Z624Z6T4oCL4Z6U4Z6+4Z6A4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6Y4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUVuYWJsZWRGb3IiIG1zZ2lkPSI2ODU2MjI4MTQwNDUzNDcxMDQxIj4i4Z6U4Z624Z6T4oCL4Z6U4Z6+4Z6A4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6Y4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4Z+WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZURpc2FibGVkIiBtc2dpZD0iMTkzNzU1MzIyNjU5MjUxNjQxMSI+IuGelOGetuGek+KAi+GelOGet+GekeKAi+Gen+GfgeGenOGetuGegOGemOGfkuGemOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VSZWdpc3RlcmVkIiBtc2dpZD0iNjI3NTAxOTA4MjU5ODEwMjQ5MyI+IuGegOGetuGemuKAi+GeheGeu+Gfh+GeiOGfkuGemOGfhOGfh+KAi+Geh+GfhOGeguKAi+Geh+GfkOGemeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VFcmFzZWQiIG1zZ2lkPSIxMjg4NTg0Njk1Mjk3MjAwOTcyIj4i4Z6A4Z624Z6a4oCL4Z6b4Z674Z6U4oCL4Z6U4Z624Z6T4oCL4Z6H4Z+E4Z6C4Z6H4Z+Q4Z6Z4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRJbmNvcnJlY3QiIG1zZ2lkPSI3NjEyMjA4ODM5NDUwMTI4NzE1Ij4i4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4oCL4Z6P4Z+S4Z6a4Z684Z6cIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pQ29tcGxldGUiIG1zZ2lkPSI4MjMyNTI3NDk1NDExNjk4MzU5Ij4iTU1JIOGelOGeieGfkuGeheGelOGfi+KAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhZFBpbiIgbXNnaWQ9IjkwMTUyNzc2NDU1NDY3MTAwMTQiPiLhnoDhnrzhnoogUElOIOGeheGetuGen+Gfi+KAi+GeiuGfguGem+KAi+GeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GelOGeieGfkuGeheGevOGem+KAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhZFB1ayIgbXNnaWQ9IjU0ODcyNTc2NDcwODExMzIyMDEiPiLhnoDhnrzhnoogUFVLIOGeiuGfguGem+KAi+GeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GelOGeieGfkuGeheGevOGem+KAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pc21hdGNoUGluIiBtc2dpZD0iNjA5Mzc5MDU0NDk2ODYzNDE5Ij4i4Z6A4Z684Z6K4oCLIFBJTiDhnorhn4LhnpvigIvhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnpThnonhn5LhnoXhnrzhnpvigIvigIvhnpjhnrfhnpPigIvhnorhnrzhnoXigIvhnoLhn5LhnpPhnrbhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUGluIiBtc2dpZD0iMzg1MDAxODQ0NTE4NzQ3NTM3NyI+IuGelOGeieGfkuGeheGevOGem+KAi+GegOGevOGeiiBQSU4g4Z6K4Z+C4Z6b4oCL4Z6Y4Z624Z6T4oCL4oCL4oCL4Z6W4Z64IOGfpCDhnorhnpvhn4sg4Z+o4oCL4Z6b4Z+B4Z6BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiLhnpThnonhn5LhnoXhnrzhnpvigIvhnoDhnrzhnoogUFVLIOGeiuGfguGem+KAi+GemOGetuGek+KAi+GeluGeuOKAiyDhn6gg4Z6b4Z+B4Z6B4oCLIOGerOKAi+GenOGfguGehOKAi+Geh+GetuGehOKAi+Gek+GfgeGfh+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiLhnp/hn4rhnrjhnpjhnoDhnrbhno/igIvigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnofhnrbhnpThn4vigIvhnoDhnrzhnoogUFVLIOGflCDhnpThnonhn5LhnoXhnrzhnpvigIvhnoDhnrzhnoogUFVLIOGeiuGevuGemOGfkuGelOGeuOKAi+GeiuGfhOGfh+KAi+Gen+GfhOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IuGelOGeieGfkuGeheGevOGem+KAi+GegOGevOGeiiBQVUsyIOGeiuGevuGemOGfkuGelOGeuOKAi+GeiuGfhOGfh+KAi+Gen+GfhOKAi+Gen+GfiuGeuOGemOKAi+GegOGetuGej+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4i4Z6b4Z+B4Z6B4oCL4Z6f4Z6Y4Z+S4Z6C4Z624Z6b4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6g4Z+F4oCL4oCL4Z6F4Z684Z6bIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2xpck1taSIgbXNnaWQ9Ijc3ODQ2NzM2NzM0NDY4MzMwOTEiPiLhnpvhn4HhnoHigIvhnp/hnpjhn5LhnoLhnrbhnpvhn4vigIvhnqLhn5LhnpPhnoDigIvhnqDhn4XigIvhnoXhn4HhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDZk1taSIgbXNnaWQ9IjUxMjMyMTg5ODkxNDE1NzM1MTUiPiLhnpThnonhn5LhnofhnrzhnpPigIvhnoDhnrbhnprigIvhnqDhn4XigIvhnpThnpPhn5Lhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDd01taSIgbXNnaWQ9IjkxMjk2NzgwNTY3OTUwMTY4NjciPiLhnprhnoThn4vhnoXhnrbhn4bigIvhnoDhnrbhnprigIvhnqDhn4UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJCYU1taSIgbXNnaWQ9IjQ1NTE5MzA2NzkyNjc3MDU4MSI+IuGemuGetuGemuGetuGfhuGehOKAi+GegOGetuGemuKAi+GeoOGfhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlB3ZE1taSIgbXNnaWQ9IjcwNDM3MTU2ODc5MDUyNTQxOTkiPiLhnpThn5LhnorhnrzhnprigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJQaW5NbWkiIG1zZ2lkPSIzMTEzMTE3NzgwMzYxMTkwMzA0Ij4i4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6A4Z684Z6KIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNuaXBNbWkiIG1zZ2lkPSIzMTEwNTM0NjgwNTU3ODU3MTYyIj4i4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6A4Z624Z6a4oCL4Z6g4Z+F4oCL4Z6b4Z+B4Z6BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ25pck1taSIgbXNnaWQ9IjMwNjIxMDIxMjE0MzA1NDg3MzEiPiLhnpThnrbhnpPigIvhnorhnrbhnoDhn4vigIvhnoDhnpjhn5Lhnprhnrfhno/igIvhnoDhnrbhnprigIvhnqDhn4XigIvhnpvhn4HhnoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJUaHJlZVdDTW1pIiBtc2dpZD0iOTA1MTA0NzE3MDMyMTE5MDM2OCI+IuGegOGetuGemuKAi+GeoOGfheKAi+GelOGeuOKAi+GeleGfkuGem+GevOGenCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJ1YWNNbWkiIG1zZ2lkPSI3ODI3ODg3NDU5MTM4MzA4ODg2Ij4i4Z6U4Z6K4Z634Z6f4Z+B4Z6S4oCL4Z6A4Z624Z6a4oCL4Z6g4Z+F4oCL4Z6a4Z+G4Z6B4Z624Z6T4oCL4Z6K4Z+C4Z6b4oCL4Z6Y4Z634Z6T4oCL4Z6F4Z6E4Z+L4Z6U4Z624Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ25kTW1pIiBtc2dpZD0iMzExNjQ0NjIzNzA4MTU3NTgwOCI+IuGegOGetuGemuKAi+GelOGeieGfkuGeh+GevOGek+KAi+Gem+GfgeGegeKAi+GeoOGfhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkRuZE1taSIgbXNnaWQ9IjEyNjU0Nzg5MzI0MTgzMzQzMzEiPiLhnoDhnrvhn4bigIvhnprhn4bhnoHhnrbhnpMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSRGVmYXVsdE9uTmV4dENhbGxPbiIgbXNnaWQ9IjQyOTQxNTQwOTE0NTc4MTkyMyI+IuGelOGetuGek+KAi+GeiuGetuGegOGfi+KAi+GegOGemOGfkuGemuGet+Gej+KAi+Gem+GfhuGek+GetuGfhuGeiuGevuGemOKAi+Gem+GfgeGegeKAi+Gen+GemOGfkuGeguGetuGem+Gfi+KAi+GeouGfkuGek+GegOKAi+GeoOGfheGflOKAi+KAi+KAiyDhnoDhnrbhnprigIvhnqDhn4XigIvhnpThnpPhn5LhnpHhnrbhnpThn4vhn5bigIsg4Z6U4Z624Z6T4oCL4Z6K4Z624Z6A4Z+L4Z6A4Z6Y4Z+S4Z6a4Z634Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPbk5leHRDYWxsT2ZmIiBtc2dpZD0iMzA5MjkxODAwNjA3Nzg2NDYyNCI+IuGemOGet+Gek+KAi+GelOGetuGek+KAi+GeiuGetuGegOGfi+GegOGemOGfkuGemuGet+Gej+KAi+Gem+GfhuGek+GetuGfhuGeiuGevuGemOKAi+Gem+GfgeGegeKAi+Gen+GemOGfkuGeguGetuGem+Gfi+KAi+GeouGfkuGek+GegOKAi+GeoOGfheGflCDhnoDhnrbhnprigIvhnqDhn4XigIvhnpThnpPhn5LhnpHhnrbhnpThn4vhn5Yg4Z6Y4Z634Z6T4oCL4Z6U4Z624Z6T4oCL4Z6K4Z624Z6A4Z+L4oCL4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPZmZOZXh0Q2FsbE9uIiBtc2dpZD0iNjE3OTQyNTE4Mjg1NjQxODQ2NSI+IuGemOGet+Gek+KAi+GelOGetuGek+KAi+GeiuGetuGegOGfi+KAi+GegOGemOGfkuGemuGet+Gej+KAi+Gem+GfgeGegeKAi+Gen+GemOGfkuGeguGetuGem+Gfi+KAi+GeouGfkuGek+GegOKAi+GeoOGfheKAi+Gem+GfhuGek+GetuGfhuKAi+GeiuGevuGemOGflCDhnoDhnrbhnprigIvhnqDhn4XigIvhnpThnpPhn5LhnpHhnrbhnpThn4vhn5bigIsg4Z6U4Z624Z6T4oCL4Z6K4Z624Z6A4Z+L4Z6A4Z6Y4Z+S4Z6a4Z634Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPZmZOZXh0Q2FsbE9mZiIgbXNnaWQ9IjI1Njc5OTg2MzMxMjQ0MDg1NTIiPiLhnpjhnrfhnpPigIvhnpThnrbhnpPigIvhnorhnrbhnoDhn4vhnoDhnpjhn5Lhnprhnrfhno/igIvhnpvhn4bhnpPhnrbhn4bhnorhnr7hnpjigIvhnpvhn4HhnoHigIvhnp/hnpjhn5LhnoLhnrbhnpvhn4vigIvhnqLhn5LhnpPhnoDigIvhnqDhn4Xhn5Qg4Z6A4Z624Z6a4oCL4Z6g4Z+F4oCL4Z6U4Z6T4Z+S4Z6R4Z624Z6U4Z+L4Z+WIOGemOGet+Gek+KAi+GelOGetuGek+KAi+GeiuGetuGegOGfi+KAi+GegOGemOGfkuGemuGet+Gej+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VOb3RQcm92aXNpb25lZCIgbXNnaWQ9Ijg2MTQ4MzAxODA1MDg2ODY2NjYiPiLhnpjhnrfhnpPigIvhnpThnrbhnpPigIvhnpXhn5Lhnorhnpvhn4vigIvhnp/hn4HhnpzhnrbhnoDhnpjhn5Lhnpjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSUGVybWFuZW50IiBtc2dpZD0iMzM3NzM3MTE0NTkyNjgzNTY3MSI+IuGeouGfkuGek+GegOKAi+GemOGet+Gek+KAi+GeouGetuGeheKAi+GelOGfkuGeiuGevOGemuKAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+Gem+GfgeGegeKAi+Gen+GemOGfkuGeguGetuGem+Gfi+KAi+GeouGfkuGek+GegOKAi+GeoOGfheKAi+GelOGetuGek+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRDaGFuZ2VkVGl0bGUiIG1zZ2lkPSI1NTkyMTg5Mzk4OTU2MTg3NDk4Ij4i4Z6U4Z624Z6T4oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6A4Z624Z6a4oCL4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6K4Z624Z6A4Z+L4oCL4oCL4Z6A4Z6Y4Z+S4Z6a4Z634Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uRGF0YSIgbXNnaWQ9Ijg2NTM3OTQ3ODQ2OTAwNjU1NDAiPiLhnpThnrbhnpPigIvhnpHhnpThn4vhnp/hn5LhnoDhnrbhno/hn4vigIvhnp/hn4HhnpzhnrbhnoDhnpjhn5LhnpjigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5Dhnpnhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25FbWVyZ2VuY3kiIG1zZ2lkPSI2NTgxMTYzNzc5MDcyODMzNjY1Ij4i4Z6U4Z624Z6T4oCL4Z6R4Z6U4Z+L4Z6f4Z+S4Z6A4Z624Z6P4Z+L4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6Y4oCL4Z6W4Z+B4Z6b4oCL4Z6i4Z624Z6f4Z6T4Z+S4Z6T4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uTm9ybWFsIiBtc2dpZD0iNDk1Mzg2NzAxMTM4OTc1MDY3MyI+IuGen+GfgeGenOGetuGegOGemOGfkuGemOKAi+Gen+GfhuGeoeGfgeGehOKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GekeGelOGfi+Gen+GfkuGegOGetuGej+Gfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkFsbFZvaWNlIiBtc2dpZD0iMzM5Njk2MzY1MjEwODE1MTI2MCI+IuGelOGetuGek+KAi+GekeGelOGfi+Gen+GfkuGegOGetuGej+Gfi+KAi+Gen+GfgeGenOGetuGegOGemOGfkuGemOKAi+Gen+GfhuGeoeGfgeGehOKAi+GekeGetuGfhuGehOGeouGen+Gfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblNtcyIgbXNnaWQ9IjgzMTQzNTIzMjc0NjE2Mzg4OTciPiLhnpThnrbhnpPigIvhnpHhnpThn4vhnp/hn5LhnoDhnrbhno/hn4vigIvhnp/hn4HhnpzhnrbhnoDhnpjhn5LhnpjigIsgU01TIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblZvaWNlRGF0YSIgbXNnaWQ9Ijk5NjYzNjQ4NzEwNjE3MTMyMCI+IuGelOGetuGek+KAi+GekeGelOGfi+KAi+Gen+GfkuGegOGetuGej+Gfi+KAi+Gen+GfgeGenOGetuGegOGemOGfkuGemOKAi+Gen+GfhuGeoeGfgeGehC/hnpHhnrfhnpPhn5LhnpPhnpPhn5Dhnpnhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25Wb2ljZVNtcyIgbXNnaWQ9IjE4ODg1ODgxNTI3OTIwMjM4NzMiPiLhnpThnrbhnpPigIvhnpHhnpThn4vhnp/hn5LhnoDhnrbhno/hn4vigIvhnp/hn4HhnpzhnrbhnoDhnpjhn5LhnpjigIvhnp/hn4bhnqHhn4HhnoQv4Z6f4Z624Z6aIFNNUyDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25BbGwiIG1zZ2lkPSI1NjQzMDI4MjY0NDY2MDkyODIxIj4i4Z6f4Z+G4Z6h4Z+B4Z6EL+GekeGet+Gek+GfkuGek+Gek+GfkOGemS/hnp/hn4HhnpzhnrbhnoDhnpjhn5LhnpggU01TIOGekeGetuGfhuGehOGeouGen+Gfi+KAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GekeGelOGfi+KAi+Gen+GfkuGegOGetuGej+Gfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1ZvaWNlIiBtc2dpZD0iMTI1ODM5MzgxMjMzNTI1ODAxOSI+IuGen+GfhuGeoeGfgeGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0RhdGEiIG1zZ2lkPSI4NzI0NTY3ODIwNzc5Mzc4OTMiPiLhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NGQVgiIG1zZ2lkPSI1NTY2NjI0OTk4ODQwNDg2NDc1Ij4i4Z6R4Z684Z6a4Z6f4Z624Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzU01TIiBtc2dpZD0iMjAxNTQ2MDM3MzcwMTUyNzQ4OSI+IuGen+GetuGemiBTTVMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhQXN5bmMiIG1zZ2lkPSI0NTIzNDU0NzgzNDk4NTUxNDY4Ij4i4Z6i4oCL4Z6f4Z6Y4oCL4Z6A4Z624Z6b4Z6A4Z6Y4Z+S4Z6YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRGF0YVN5bmMiIG1zZ2lkPSI3NTMwMDAwNTE5NjQ2MDU0Nzc2Ij4i4Z6S4Z+S4Z6c4Z6+4oCL4Z6f4Z6Y4oCL4Z6A4Z624Z6b4oCL4Z6A4Z6Y4Z+S4Z6YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzUGFja2V0IiBtc2dpZD0iNjk5MTAwNjU1Nzk5MzQyMzQ1MyI+IuGegOGeieGfkuGeheGelOGfi+KAi+GeluGfkOGej+GfjOGemOGetuGekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1BBRCIgbXNnaWQ9IjMyMzUyNTkwODU2NDgyNzEwMzciPiJQQUQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDAiIG1zZ2lkPSI3MTcwMzM1NDcyMTk4Njk0OTQ1Ij4i4Z6U4Z6+4Z6A4oCL4Z6R4Z+S4Z6a4Z6T4Z634Z6F4oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6a4Z+J4Z684Z6Y4Z644Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxIiBtc2dpZD0iNTMxNDg2MTUxOTc1MjUzODkyMiI+IuGelOGet+GekeKAi+GekeGfkuGemuGek+Get+GeheKAi+GelOGehOGfkuGeoOGetuGeieKAi+GemuGfieGevOGemOGeuOGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MiIgbXNnaWQ9Ijg5Njk5MjkwNDkwODEyNjgxMTUiPiLhnpbhnpPhn5LhnpvhnrrigIvigIvhnpHhn5LhnprhnpPhnrfhnoXigIvhnpThnoThn5LhnqDhnrbhnonigIvhnprhn4nhnrzhnpjhnrjhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDMiIG1zZ2lkPSI1MTQ4MjU1MDI3MDQzOTQzMzE3Ij4i4Z6F4Z+B4Z6J4oCL4Z6W4Z644oCL4Z6i4Z+S4Z6T4Z6A4Z6H4Z634Z6P4Z6B4Z624Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ0IiBtc2dpZD0iODgwODQ1NjY4MjU1MDc5NjUzMCI+IuGegOGfkuGemuGfheKAi+KAi+GeouGetuGeguGetuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NSIgbXNnaWQ9Ijc2MDQwNjMyNTI4NTAzNTQzNTAiPiLhnprhn4nhnrzhnpjhnrjhnoQgLSDhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLigIvhnpbhn4HhnonhnoXhnrfhno/hn5Lhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDYiIG1zZ2lkPSIyMDU5NDQwODI1NzgyODcxNTEzIj4i4Z6a4Z+J4Z684oCL4Z6Y4Z644Z6EIC0g4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4oCL4oCL4Z6i4Z624Z6F4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6U4Z624Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ3IiBtc2dpZD0iNzExMjA3ODcyNDA5NzIzMzYwNSI+IuGemuGfieGevOKAi+GemOGeuOGehCAtIOKAi+Gen+GemOGfkuGeluGek+GfkuGekuGel+GetuGeliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0OCIgbXNnaWQ9IjU5ODk1Njk3Nzg2MDQwODkyOTEiPiLhnprhn4nhnrzigIvhnpjhnrjhnoQgLSDhnorhn4PhnoLhnrzigIvhnpbhnrfhnp/hn4Hhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDkiIG1zZ2lkPSI3OTY5Mjk2ODExMzU1MTUyNDkxIj4i4Z6a4Z+J4Z684oCL4Z6Y4Z644Z6EIC0g4Z6Y4Z674Z6B4Z6E4Z624Z6a4oCL4Z6f4Z+B4Z6c4Z624oCL4Z6A4Z6Y4Z+S4Z6Y4oCL4Z6W4Z+B4Z6J4Z6b4Z+B4Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxMCIgbXNnaWQ9IjM5OTI5MDY5OTk4MTUzMTY0MTciPiLhnprhn4nhnrzigIvhnpjhnrjhnoQgLSDhnpjhnrvhnoHhnoThnrbhnprigIvhnp/hn4HhnpzhnrbigIvhno/hnrbhnpjigIvigIvhnpXhn5LhnpPhn4LhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDExIiBtc2dpZD0iNDE1NDQ3Njg1NDQyNjkyMDk3MCI+IuGelOGevuGegOKAi+GelOGeiuGetuKAi+GemuGfieGevOGemOGeuOGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MTIiIG1zZ2lkPSIxMTg5MDcxMTE5OTkyNzI2MzIwIj4i4Z6U4Z634Z6R4oCL4Z6U4Z6K4Z624oCL4Z6a4Z+J4Z684Z6Y4Z644Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHRTZWFyY2hpbmciIG1zZ2lkPSI4MzYwMTQxODg1OTcyMjc5OTYzIj4i4oCL4Z6f4Z+S4Z6c4Z+C4Z6E4oCL4Z6a4Z6A4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZU5vdEZvcndhcmRlZCIgbXNnaWQ9IjE2ODM2ODU4ODM4NDEyNzI1NjAiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPiDhn5Yg4Z6Y4Z634Z6T4oCL4Z6U4Z624Z6T4oCL4Z6U4Z6J4Z+S4Z6H4Z684Z6T4oCL4Z6U4Z6T4Z+S4Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZUZvcndhcmRlZCIgbXNnaWQ9IjEzMDI5MjIxMTc0OTg1OTA1MjEiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IkRJQUxJTkdfTlVNQkVSIj57MX08L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZUZvcndhcmRlZFRpbWUiIG1zZ2lkPSI5MjA2MjUxNzM2NTI3MDg1MjU2Ij4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz46IDx4bGlmZjpnIGlkPSJESUFMSU5HX05VTUJFUiI+ezF9PC94bGlmZjpnPiDhnpThnpPhn5LhnpHhnrbhnpThn4vigIvhnpbhnrggPHhsaWZmOmcgaWQ9IlRJTUVfREVMQVkiPnsyfTwveGxpZmY6Zz4g4Z6c4Z634Z6T4Z624Z6R4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZVJlZ2lzdGVyZWQiIG1zZ2lkPSI1MDczMjM3ODI3NjIwMTY2Mjg1Ij4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz4g4Z+WIOGemOGet+Gek+KAi+GelOGetuGek+KAi+GelOGeieGfkuGeh+GevOGek+KAi+GelOGek+GfkuGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVSZWdpc3RlcmVkVGltZSIgbXNnaWQ9IjY3ODE2MjE5NjQzMjA2MzUxNzIiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPiDhn5Yg4Z6Y4Z634Z6T4oCL4Z6U4Z624Z6T4oCL4Z6U4Z6J4Z+S4Z6H4Z684Z6T4oCL4Z6U4Z6T4Z+S4Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmNDb21wbGV0ZSIgbXNnaWQ9IjMxMTg4NDgyMzA5NjY4ODY1NzUiPiLhnoDhnrzhnorigIvhnpvhnoDhn5LhnoHhno7hn4jigIvhnpbhn4Hhnonhnpvhn4Hhnonhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmY0Vycm9yIiBtc2dpZD0iMzMyNzU2MDEyNjU4ODUwMDc3NyI+IuGelOGeieGfkuGeoOGetuKAi+GegOGetuGemuKAi+Gej+Gel+GfkuGeh+GetuGelOGfi+KAiyDhnqzigIvhnoDhnrzhnorigIvhnpvhnoDhn5LhnoHhno7hn4jigIvigIvigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JPayIgbXNnaWQ9IjExOTE5MTkzNzgwODM0NzIyMDQiPiLhnpnhnpvhn4vigIvhnpbhn5LhnprhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3IiIG1zZ2lkPSI3OTU2MzkyNTExMTQ2Njk4NTIyIj4i4Z6Y4Z624Z6T4oCL4Z6A4Z+G4Z6g4Z674Z6f4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yTG9va3VwIiBtc2dpZD0iNDcxMTY4NzQ1NjExMTk2MzE2MyI+IuGemuGegOKAi+GemOGet+Gek+KAi+Geg+GevuGeiSBVUkwg4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVW5zdXBwb3J0ZWRBdXRoU2NoZW1lIiBtc2dpZD0iNjI5OTk4MDI4MDQ0MjA3Njc5OSI+IuGeguGfkuGemuGfhOGehOGegOGetuGemuGejuGfjeKAi+GeleGfkuGekeGfgOGehOGeleGfkuGekeGetuGej+Gfi+KAi+Gej+GfhuGelOGek+Gfi+GelOGejuGfkuGeiuGetuGeieKAi+GemOGet+Gek+KAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GeguGetuGfhuGekeGfkuGemuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckF1dGgiIG1zZ2lkPSIxNDM1MDY1NjI5NDM4MDQ0NTM0Ij4i4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6V4Z+S4Z6R4Z+A4Z6E4Z6V4Z+S4Z6R4Z624Z6P4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yUHJveHlBdXRoIiBtc2dpZD0iMTc4ODIwNzAxMDU1OTA4MTMzMSI+IuGegOGetuGemuKAi+GeleGfkuGekeGfgOGehOGeleGfkuGekeGetuGej+Gfi+KAi+KAi+Gej+GetuGemOKAi+GemuGemeGfiOKAi+GemOGfieGetuGen+GfiuGeuOGek+KAi+KAi+GemOGfgeKAi+KAi+GelOGfkuGemuGevOGegOGen+GfiuGeuOKAi+GemOGet+Gek+KAi+GelOGetuGek+KAi+Geh+GfhOGeguGeh+GfkOGemeKAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckNvbm5lY3QiIG1zZ2lkPSI4NzE0MjczMjM2MzY0NjQwNTQ5Ij4i4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6Y4Z+J4Z624Z6f4Z+K4Z644Z6T4oCL4Z6Y4Z+B4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9ySU8iIG1zZ2lkPSIyMzQwNTU4MTk3NDg5MzAyMTg4Ij4i4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6R4Z624Z6A4Z+L4Z6R4Z6E4oCL4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4Z6Y4Z+J4Z624Z6f4Z+K4Z644Z6T4oCL4Z6Y4Z+B4Z+UIOGeluGfkuGemeGetuGemeGetuGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGej+KAi+GeluGfgeGem+KAi+GegOGfkuGemuGfhOGemeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclRpbWVvdXQiIG1zZ2lkPSI0NzQzNDAzNzAzNzYyODgzOTU0Ij4i4Z6i4Z6f4Z+L4oCL4Z6W4Z+B4Z6b4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6R4Z+F4oCL4Z6Y4Z+J4Z624Z6f4Z+K4Z644Z6T4oCL4Z6Y4Z+B4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yUmVkaXJlY3RMb29wIiBtc2dpZD0iODY3OTU5NjA5MDM5Mjc3OTUxNiI+IuGekeGfhuGeluGfkOGemuKAi+GemOGetuGek+KAi+GegOGetuGemuKAi+GelOGeieGfkuGeh+GevOGek+KAi+GemOGfieGetuGen+GfiuGeuOGek+KAi+GemOGfgeKAi+GelOGek+GfkuGej+KAi+GeheGfkuGemuGevuGek+KAi+GeluGfgeGegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclVuc3VwcG9ydGVkU2NoZW1lIiBtc2dpZD0iNTAxNTczMDgxMjkwNjE5MjIwOCI+IuGemOGet+Gek+KAi+GelOGetuGek+KAi+GeguGetuGfhuGekeGfkuGemuKAi+GeluGet+GekuGeuOGegOGetuGemuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckZhaWxlZFNzbEhhbmRzaGFrZSIgbXNnaWQ9Ijk2NTQ5NjA2MDAwNjU4NjQxIj4i4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6U4Z6E4Z+S4Z6A4Z6+4Z6P4oCL4Z6A4Z624Z6a4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6Y4Z624Z6T4oCL4Z6f4Z674Z6c4Z6P4Z+S4Z6Q4Z634Z6X4Z624Z6W4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yQmFkVXJsIiBtc2dpZD0iMzYzNjkyOTcyMjcyODg4MTk3MiI+IuGemOGet+Gek+KAi+GeouGetuGeheKAi+GelOGevuGegOKAi+GekeGfhuGeluGfkOGemuKAi+GelOGetuGek+KAi+GekeGfgSDhnpbhn5Lhnprhn4Thn4figIsgVVJMIOGej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckZpbGUiIG1zZ2lkPSIyMTcwNzg4NTE1MDUyNTU4Njc2Ij4i4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6v4Z6A4Z6f4Z624Z6a4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yRmlsZU5vdEZvdW5kIiBtc2dpZD0iNjIwMzg1NjYxMjA0MjY1NTA4NCI+IuGemuGegOKAi+GemOGet+Gek+KAi+Geg+GevuGeieKAi+Ger+GegOGen+GetuGemuKAi+GelOGetuGek+KAi+Gen+GfkuGek+GevuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclRvb01hbnlSZXF1ZXN0cyIgbXNnaWQ9IjEyMzUzOTY5MjcwODcxODgyNTMiPiLhnoDhn4bhnpbhnrvhnoTigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnp/hn4bhno7hnr7igIvigIvigIvhnoXhn5Lhnprhnr7hnpPigIvhnpbhn4HhnoDhn5Qg4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6Y4Z+S4Z6K4Z6E4oCL4Z6R4Z+A4Z6P4oCL4Z6W4Z+B4Z6b4oCL4Z6A4Z+S4Z6a4Z+E4Z6Z4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODk2NzcxMDAyNTAzNjE2MzgyMiI+IuGegOGfhuGeoOGeu+Gen+KAi+GegOGfkuGek+Geu+GehOKAi+GegOGetuGemuKAi+GeheGevOGem+KAi+Gen+GemOGfkuGemuGetuGelOGfiyA8eGxpZmY6ZyBpZD0iQUNDT1VOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250ZW50U2VydmljZVN5bmMiIG1zZ2lkPSI4MzUzNTIzMDYwMjY5MzM1NjY3Ij4i4Z6S4Z+S4Z6c4Z6+4oCL4Z6f4Z6Y4oCL4Z6A4Z624Z6b4oCL4Z6A4Z6Y4Z+S4Z6YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VTeW5jTm90aWZpY2F0aW9uVGl0bGUiIG1zZ2lkPSIzOTc3NDMzNDkxOTE5MDE0NTgiPiLhnpLhn5Lhnpzhnr7igIvhnp/hnpjigIvhnoDhnrbhnpvigIvhnoDhnpjhn5LhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250ZW50U2VydmljZVRvb01hbnlEZWxldGVzTm90aWZpY2F0aW9uRGVzYyIgbXNnaWQ9IjgxMDA5ODE0MzUwODA2OTY0MzEiPiLhnpjhnrbhnpPigIvhnoDhnrbhnprigIvhnpvhnrvhnpQgPHhsaWZmOmcgaWQ9IkNPTlRFTlRfVFlQRSI+JXM8L3hsaWZmOmc+IOGeheGfkuGemuGevuGek+KAi+GeluGfgeGegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxvd19tZW1vcnkiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY0OTQwMTkyMzQxMDIxNTQ4OTYiPiLhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnpPhn4PigIvigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4figIvhnpbhn4Hhnonhn5Qg4Z6b4Z674Z6U4oCL4Z6v4Z6A4Z6f4Z624Z6a4oCL4Z6Y4Z694Z6Z4oCL4Z6F4Z+G4Z6T4Z694Z6T4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X21lbW9yeSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0NzU5OTkyODY2ODAwMDA1NDEiPiLhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnpbhn4HhnokhIOGem+Geu+GelOKAi+Ger+GegOGen+GetuGemuKAi+GemOGeveGemeKAi+GeheGfhuGek+GeveGek+KAi+GeiuGevuGemOGfkuGelOGeuOKAi+GelOGehOGfkuGegOGevuGek+KAi+GekeGfhuGeoOGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lIiBtc2dpZD0iNjU0NTY5NjAwNzYzMTQwNDI5MiI+IuGegeGfkuGeieGeu+GfhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvd2VyX2RpYWxvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODU0NTM1MTQyMDg2NTIwMjg1MyI+IuGeh+GemOGfkuGemuGevuGen+KAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvd2VyX2RpYWxvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjEzMTk5MTkwNzU0NjM5ODg2MzgiPiLhnofhnpjhn5Lhnprhnr7hnp/igIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaWxlbnRfbW9kZSIgbXNnaWQ9IjcxNjc3MDMzODk4MDI2MTg2NjMiPiLhnprhnpThn4DhnpTigIvhnp/hn5LhnoThnrbhno/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0dXJuX29uX3JhZGlvIiBtc2dpZD0iMzkxMjc5MzA5MjMzOTk2MjM3MSI+IuGelOGevuGegOKAi+GelOGejuGfkuGeiuGetuGeieKAi+GepeGej+KAi+GegeGfkuGen+GfgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InR1cm5fb2ZmX3JhZGlvIiBtc2dpZD0iODE5ODc4NDk0OTk4NzA2MjM0NiI+IuGelOGet+GekeKAi+GelOGejuGfkuGeiuGetuGeieKAi+GepeGej+GegeGfkuGen+GfgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9sb2NrIiBtc2dpZD0iNzk5MDk0NjU1NDk2MDk4MTUzIj4i4Z6F4Z624Z6A4Z+L4oCL4Z6f4Z+E4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfb2ZmIiBtc2dpZD0iNDI2NjYxNDEwNzQxMjg2NTA0OCI+IuGelOGet+GekSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3NpbGVudCIgbXNnaWQ9IjMxOTI5ODE2MzAxODQ3MzA3OCI+IuGelOGet+GekeKAi+GegOGemOGfkuGemOKAi+GenOGet+GekuGeuOKAi+GemuGfhOGekeGfjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3ZpYnJhdGUiIG1zZ2lkPSI3MDcyMDQzMzg4NTgxNTUxMzk1Ij4i4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6a4Z+E4Z6R4Z+N4oCL4Z6J4Z+Q4Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfcmluZyIgbXNnaWQ9Ijg1OTIyNDE4MTYxOTQwNzQzNTMiPiLhnpThnr7hnoDigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnprhn4ThnpHhn40iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9wcm9ncmVzcyIgbXNnaWQ9IjIyODEwNzkyNTczMjk5ODEyMDMiPiLhnoDhn4bhnpbhnrvhnoTigIvhnpThnrfhnpEuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9jb25maXJtIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMzg1NzQ1MTc5NTU1NzMxNDcwIj4i4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6T4Z654Z6E4oCL4Z6U4Z634Z6R4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2h1dGRvd25fY29uZmlybSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY0OTc5MjE3NTI0MjgyMTM1MyI+IuGekeGevOGemuGen+GfkOGeluGfkuGekeKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+Gek+GeueGehOKAi+GelOGet+GekeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm1fcXVlc3Rpb24iIG1zZ2lkPSIyOTA2NTQ0NzY4ODgxMTM2MTgzIj4i4Z6P4Z6+4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6F4Z6E4Z+L4oCL4Z6U4Z634Z6R4oCLPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYm9vdF9zYWZlbW9kZV90aXRsZSIgbXNnaWQ9IjcwNTQ1MDk5MTQ1MDAxNDAzNjEiPiLhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnqHhnr7hnoThnpzhnrfhnonigIvhnorhnr7hnpjhn5LhnpThnrjigIvhnoXhnrzhnpvigIvhnprhnpThn4DhnpTigIvhnp/hnrvhnpzhno/hn5LhnpDhnrfhnpfhnrbhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWJvb3Rfc2FmZW1vZGVfY29uZmlybSIgbXNnaWQ9IjU1MjkzOTQ0NTAyNzg0NjY4Ij4i4Z6P4Z6+4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6F4Z6E4Z+L4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6h4Z6+4Z6E4Z6c4Z634Z6J4oCL4Z6F4Z684Z6b4oCL4Z6a4Z6U4Z+A4Z6U4oCL4Z6f4Z674Z6c4Z6P4Z+S4Z6Q4Z634Z6X4Z624Z6WPyDhnpzhnrbigIvhnpPhnrnhnoTigIvhnpThnrfhnpHigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpfhnrbhnoLhnrjigIvhnpHhnrjigIvhnpThnrjigIvhnorhn4LhnpvigIvhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnorhn4bhnqHhnr7hnoThn5Qg4Z6W4Z694Z6A4oCL4Z6c4Z624oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6f4Z+S4Z6K4Z624Z6a4oCL4Z6h4Z6+4Z6E4Z6c4Z634Z6J4oCL4Z6W4Z+B4Z6b4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6Y4Z+S4Z6K4Z6E4oCL4Z6R4Z+A4Z6P4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVjZW50X3Rhc2tzX3RpdGxlIiBtc2dpZD0iMzY5MTc2NDYyMzYzODEyNzg4OCI+IuGekOGfkuGemOGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX3JlY2VudF90YXNrcyIgbXNnaWQ9Ijg3OTQ5MDY2NTg3MzIxOTM0NzMiPiLhnoLhn5LhnpjhnrbhnpPigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpDhn5LhnpjhnrjigIvigIvhn5figIvigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9ucyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDA4NDc3MTQwMDg4MDUzNjY1Ij4i4Z6H4Z6Y4Z+S4Z6a4Z6+4Z6f4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+HIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNDA2NDE2ODMxNTQxNjE1MjU4Ij4i4Z6H4Z6Y4Z+S4Z6a4Z6+4Z6f4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6RIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9sb2NrIiBtc2dpZD0iMjg0NDk0NTE5MTc5MjExOTcxMiI+IuGeheGetuGegOGfi+KAi+Gen+GfhOKAi+GeouGfgeGegOGfkuGemuGehOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fcG93ZXJfb2ZmIiBtc2dpZD0iNDQ3MTg3OTQ0MDgzOTg3OTcyMiI+IuGelOGet+GekSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fYnVnX3JlcG9ydCIgbXNnaWQ9Ijc5MzQwMTA1Nzg5MjIzMDQ3OTkiPiLhnprhnpThnrbhnpnhnoDhnrbhnprhno7hn43igIvhnoDhn4bhnqDhnrvhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfdGl0bGUiIG1zZ2lkPSIyNjY3NDk0ODAzNzQyNTQ4NTMzIj4i4Z6Z4Z6A4oCL4Z6a4Z6U4Z624Z6Z4Z6A4Z624Z6a4Z6O4Z+N4oCL4Z6A4Z+G4Z6g4Z674Z6fIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X21lc3NhZ2UiIG1zZ2lkPSIzOTg0NDcwNDg3NTAzNTA0NTYiPiLhnpzhnrbigIvhnpPhnrnhnoTigIvigIvhnpThn5LhnprhnpjhnrzhnpvigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnqLhn4bhnpbhnrjigIvhnp/hn5LhnpDhnrbhnpPhnpfhnrbhnpbigIvhnqfhnpThnoDhnprhno7hn43igIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6V4Z+S4Z6J4Z6+4oCL4Z6H4Z624oCL4Z6f4Z624Z6a4oCL4Z6i4Z+K4Z644Z6Y4Z+C4Z6b4Z+UIOGenOGetuKAi+Gek+GeueGehOKAi+GeheGfhuGejuGetuGemeKAi+GeluGfgeGem+KAi+Gej+Get+GeheKAi+GeluGeuOKAi+GeluGfgeGem+KAi+GeheGetuGelOGfi+GeleGfkuGeiuGevuGemOKAi+GemuGelOGetuGemeGegOGetuGemuGejuGfjeKAi+GemuGeoOGevOGej+KAi+GeiuGem+Gfi+KAi+GeluGfgeGem+KAi+GenOGetuKAi+GemuGeveGeheGemuGetuGem+Gfi+KAi+GeiuGevuGemOGfkuGelOGeuOKAi+GeleGfkuGeieGeviDhnp/hnrzhnpjigIvhnqLhno/hn4vhnpLhn5Lhnpjhno/hn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3RvZ2dsZV9zaWxlbnRfbW9kZSIgbXNnaWQ9IjgyMTk1MjUzNDQyNDY4MTA5MjUiPiLhnprhnpThn4DhnpTigIvhnp/hn5LhnoThnrbhno/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3NpbGVudF9tb2RlX29uX3N0YXR1cyIgbXNnaWQ9IjMyODk4NDE5MzcwMDM3NTg4MDYiPiLhnpThnrfhnpHigIvhnp/hn4bhnqHhn4HhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3NpbGVudF9tb2RlX29mZl9zdGF0dXMiIG1zZ2lkPSIxNTA2MDQ2NTc5MTc3MDY2NDE5Ij4i4Z6U4Z6+4Z6A4oCL4Z6f4Z+G4Z6h4Z+B4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnNfdG9nZ2xlX2FpcnBsYW5lX21vZGUiIG1zZ2lkPSI1ODg0MzMwMzA2OTI2MzA3NDU2Ij4i4Z6a4Z6U4Z+A4Z6U4oCL4Z6H4Z634Z+H4oCL4Z6Z4Z6T4Z+S4Z6P4Z6g4Z+E4Z+HIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnNfYWlycGxhbmVfbW9kZV9vbl9zdGF0dXMiIG1zZ2lkPSIyNzE5NTU3OTgyNjA4OTE5NzUwIj4i4Z6U4Z624Z6T4oCL4Z6U4Z6+4Z6A4oCL4Z6a4Z6U4Z+A4Z6U4oCL4Z6W4Z+B4Z6b4oCL4Z6H4Z634Z+H4oCL4Z6Z4Z6T4Z+S4Z6P4oCL4Z6g4Z+E4Z+HIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnNfYWlycGxhbmVfbW9kZV9vZmZfc3RhdHVzIiBtc2dpZD0iNTA3NTA3MDQ0Mjg1NDQ5MDI5NiI+IuGelOGetuGek+KAi+GelOGet+GekeKAi+GemuGelOGfgOGelOKAi+GemeGek+GfkuGej+GeoOGfhOGfhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luZm9fb3ZlcmZsb3ciIG1zZ2lkPSI1MzAxOTgxNzQxNzA1MzU0OTkzIj4iOTk5KyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhZmVNb2RlIiBtc2dpZD0iMjc4ODIyODA2MTU0NzkzMDI0NiI+IuGemuGelOGfgOGelOKAi+KAi+KAi+Gen+Geu+GenOGej+GfkuGekOGet+Gel+GetuGeliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfc3lzdGVtX2xhYmVsIiBtc2dpZD0iNjU3NzM3NTMzNTcyODU1MTMzNiI+IuGelOGfkuGemuGeluGfkOGek+GfkuGekuKAi+KAiyBBbmRyb2lkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2Nvc3RNb25leSIgbXNnaWQ9IjU0Mjk4MDgyMTc4NjE0NjA0MDEiPiLhnp/hn4HhnpzhnrbhnoDhnpjhn5LhnpjigIvhnorhn4LhnpvigIvhnoDhnrbhno/hn4vigIvhnpvhnrvhnpnigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Nvc3RNb25leSIgbXNnaWQ9IjMyOTMzMDE5MDM0MDk4Njk0OTUiPiLhnpLhn5Lhnpzhnr7igIvhnqLhn5LhnpzhnrjigIvhnorhn4LhnpvigIvhnqLhnrbhnoXigIvhnoDhnrbhno/hn4vigIvhnpvhnrvhnpnigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbWVzc2FnZXMiIG1zZ2lkPSI3NTIxMjQ5MTQ4NDQ1NDU2NjYyIj4i4Z6f4Z624Z6a4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19tZXNzYWdlcyIgbXNnaWQ9Ijc4MjE5OTkwNzEwMDM2OTkyMzYiPiLhnqLhnrbhnpMg4Z6T4Z634Z6E4oCL4Z6f4Z6a4Z6f4Z+B4Z6a4oCL4Z6f4Z624Z6aIFNNUywg4Z6i4Z+K4Z644Z6Y4Z+C4Z6bIOGek+Get+GehOKAi+Gen+GetuGemuKAi+GeleGfkuGen+GfgeGehOGfl+KAi+GekeGfgOGej+KAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9wZXJzb25hbEluZm8iIG1zZ2lkPSIzNTE5MTYzMTQxMDcwNTMzNDc0Ij4i4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+L4Z6B4Z+S4Z6b4Z694Z6T4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19wZXJzb25hbEluZm8iIG1zZ2lkPSI4NDI2NDUzMTI5Nzg4ODYxMzM4Ij4i4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6K4Z+E4Z6Z4oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+L4oCL4Z6i4Z+G4Z6W4Z644oCL4Z6i4Z+S4Z6T4Z6A4oCLIOGeiuGfguGem+KAi+GelOGetuKAi+Gek+KAi+GemuGegOGfkuGen+GetuGekeGeu+GegOKAi+GegOGfkuGek+Geu+GehOKAi+GegOGetuGej+KAi+GekeGfhuGek+GetuGegOGfi+GekeGfhuGek+GehOKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zb2NpYWxJbmZvIiBtc2dpZD0iNTc5OTA5NjYyMzQxMjA0Mzc5MSI+IuGeluGfkOGej+GfjOGemOGetuGek+KAi+Gen+GehOGfkuGeguGemOKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc29jaWFsSW5mbyIgbXNnaWQ9IjcxMjk4NDI0NTc2MTE2NDM0OTMiPiLhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnorhn4ThnpnigIvhnpXhn5LhnpHhnrbhnpvhn4vigIvhnqLhn4bhnpbhnrjigIvhnpHhn4bhnpPhnrbhnoDhn4vhnpHhn4bhnpPhnoQg4Z6T4Z634Z6E4oCL4Z6A4Z624Z6a4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6f4Z6E4Z+S4Z6C4Z6Y4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2xvY2F0aW9uIiBtc2dpZD0iNjM1MTQ5NzQyNDM2NjkyMDQ5Ij4i4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19sb2NhdGlvbiIgbXNnaWQ9IjU3MDQ2Nzk3NjMxMjQxNzAxMDAiPiLhno/hnrbhnpjhnorhnrbhnpPigIvhnpHhnrjhno/hnrbhn4bhnoTigIvhnofhnrbhnoDhn4vhnp/hn5Lhnorhn4LhnoTigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbmV0d29yayIgbXNnaWQ9IjU4MDg5ODMzNzc3MjcxMDk4MzEiPiLhnoDhnrbhnprigIvhnpHhnrbhnoDhn4vhnpHhnoTigIvhnpThno7hn5LhnorhnrbhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX25ldHdvcmsiIG1zZ2lkPSI0NDc4Mjk5NDEzMjQxODYxOTg3Ij4i4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6b4Z6A4Z+S4Z6B4Z6O4Z+I4oCL4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2JsdWV0b290aE5ldHdvcmsiIG1zZ2lkPSIxNTg1NDAzNTQ0MTYyMTI4MTA5Ij4i4Z6U4Z+K4Z+S4Z6b4Z684Z6S4Z684Z6fIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19ibHVldG9vdGhOZXR3b3JrIiBtc2dpZD0iNTYyNTI4ODU3NzE2NDI4MjM5MSI+IuGeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+Gep+GelOGegOGemuGejuGfjSDhnpPhnrfhnoTigIvhnpThno7hn5LhnorhnrbhnonigIvhno/hnrbhnpjigIvhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjgzMjkyNjE2NzAxNTE4NzEyMzUiPiLhnoDhnrbhnprigIvhnoDhn4bhno7hno/hn4vigIvhnqLhnrzhnozhnrjhnpnhn4nhnrwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2F1ZGlvU2V0dGluZ3MiIG1zZ2lkPSIyNjQxNTE1NDAzMzQ3NTY4MTMwIj4i4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6A4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6i4Z684Z6M4Z644Z6Z4Z+J4Z684Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2FmZmVjdHNCYXR0ZXJ5IiBtc2dpZD0iNjIwOTI0NjY1MzQyNDc5ODAzMyI+IuGelOGfieGfh+GeluGetuGem+Gfi+KAi+GeiuGem+Gfi+KAi+GekOGfkuGemCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWZmZWN0c0JhdHRlcnkiIG1zZ2lkPSI2NDQxMjc1MzIwNjM4OTE2OTQ3Ij4i4Z6U4Z+S4Z6a4Z6+4oCL4Z6b4Z6A4Z+S4Z6B4Z6O4Z+I4oCL4Z6K4Z+C4Z6b4oCL4Z6i4Z624Z6F4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6Q4Z624Z6Y4Z6W4Z6b4oCL4Z6Q4Z+S4Z6Y4oCL4Z6Z4Z+J4Z624Z6E4oCL4Z6a4Z6g4Z+Q4Z6f4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2NhbGVuZGFyIiBtc2dpZD0iNTg2MzUwODQzNzc4MzY4MzkwMiI+IuGelOGfkuGemuGej+Get+GekeGet+GekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfY2FsZW5kYXIiIG1zZ2lkPSI1Nzc3NTM0MzE2OTgyMTg0NDE2Ij4i4oCL4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4oCL4Z6U4Z+S4Z6a4Z6P4Z634Z6R4Z634Z6T4oCLXCLhnpPhnrfhnoTigIvhnpbhn5Lhnprhnrnhno/hn5Lhno/hnrfhnoDhnrbhnprhno7hn43igIvhnorhn4ThnpnigIvhnpXhn5LhnpHhnrbhnpvhn4vigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGljdGlvbmFyeSIgbXNnaWQ9IjQxNDg1OTcxMjg4NDM2NDEzNzkiPiLhnqLhnrbhnpPigIvhnpzhnoXhnpPhnrbhnpPhnrvhnoDhn5LhnprhnpjigIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RpY3Rpb25hcnkiIG1zZ2lkPSI3OTIxMTY2MzU1OTY0NzY0NDkwIj4i4Z6i4Z624Z6T4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6T4Z+F4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6c4Z6F4Z6T4Z624Z6T4Z674Z6A4Z+S4Z6a4Z6Y4oCL4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjgwOTAyMzc3MDI0MzI1NzY3ODgiPiLhnp/hnprhnp/hn4HhnprigIvhnpzhnoXhnpPhnrbhnpPhnrvhnoDhn5LhnprhnpjigIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjI3MTE1NjE5OTQ0OTczNjE2NDYiPiLhnpThnpPhn5LhnpDhn4LhnpjigIvhnpbhnrbhnoDhn5LhnpnigIvhnpHhn4XigIvhnpzhnoXhnpPhnrbhnpPhnrvhnoDhn5LhnprhnpjigIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr7hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYm9va21hcmtzIiBtc2dpZD0iMTk0OTUxOTY3MzEwMzk2ODIyOSI+IuGeheGfhuGejuGetuGfhuKAiyDhnpPhnrfhnoTigIvhnpThn5Lhnprhnpzhno/hn5Lhno/hnrciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Jvb2ttYXJrcyIgbXNnaWQ9IjQxNjk3NzE2MDYyNTc5NjMwMjgiPiLhnoXhnrzhnpvigIvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnoXhn4bhno7hnrbhn4Yg4Z6T4Z634Z6E4oCL4Z6U4Z+S4Z6a4Z6c4Z6P4Z+S4Z6P4Z634oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z+K4Z644Z6T4Z6S4Z664Z6O4Z634Z6P4oCL4Z6K4Z+E4Z6Z4oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2RldmljZUFsYXJtcyIgbXNnaWQ9IjYxMTc3MDQ2Mjk3Mjg4MjQxMDEiPiLhnprhn4ThnpHhn40iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RldmljZUFsYXJtcyIgbXNnaWQ9IjQ3NjkzNTYzNjIyNTE2NDExNzUiPiLhnoDhn4bhno7hno/hn4vigIvhnpPhnrbhnqHhnrfhnoDhnrbigIvhnprhn4ThnpHhn40iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfdm9pY2VtYWlsIiBtc2dpZD0iNDE2MjIzNzE0NTAyNzU5MjEzMyI+IuGen+GetuGemuKAi+Geh+GetuKAi+Gen+GfhuGeoeGfgeGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfdm9pY2VtYWlsIiBtc2dpZD0iMjQ5ODQwMzk2OTg2Mjk1MTM5MyI+IuGeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+Gen+GetuGemuKAi+Geh+GetuKAi+Gen+GfhuGeoeGfgeGehOKAi+GeiuGfhOGemeKAi+GeleGfkuGekeGetuGem+Gfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9taWNyb3Bob25lIiBtc2dpZD0iMTcxNTM5OTAwMjUwMDQzNDY0Ij4i4Z6Y4Z644Z6A4Z+S4Z6a4Z684oCL4Z6g4Z+S4Z6c4Z684Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19taWNyb3Bob25lIiBtc2dpZD0iNzEwNjYxODI4NjkwNTczODQwOCI+IuGeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+KAi+GemOGeuOGegOGfkuGemuGevOGeoOGfkuGenOGevOGek+KAi+GeiuGfhOGemeKAi+GeleGfkuGekeGetuGem+GfiyDigIvhnorhnr7hnpjhn5LhnpThnrjigIvhnpDhno/igIvhnp/hn4bhnqHhn4HhnoTigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfY2FtZXJhIiBtc2dpZD0iNDgyMDM3MjQ5NTg5NDU4NjYxNSI+IuGemOGfieGetuGen+GfiuGeuOGek+KAi+GekOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfY2FtZXJhIiBtc2dpZD0iMjkzMzY2NzM3MjI4OTU2NzcxNCI+IuGeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+GemOGfieGetuGen+GfiuGeuOGek+KAi+GekOGej+KAi+GemuGevOGelCDhnqzigIvhnpzhnrjhnorhn4HhnqLhnrzigIvhnorhn4ThnpnigIvhnpXhn5LhnpHhnrbhnpvhn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc2NyZWVubG9jayIgbXNnaWQ9IjgyNzU1MDAxNzMzMzA3MTgxNjgiPiLhnoXhnrbhnoDhn4vhnp/hn4TigIvigIvhnqLhn4HhnoDhn5LhnprhnoThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3NjcmVlbmxvY2siIG1zZ2lkPSI3MDY3NDk3MTI4OTI1NDk5NDAxIj4i4Z6Y4Z624Z6T4oCL4Z6f4Z6Y4Z6P4Z+S4Z6Q4Z6X4Z624Z6W4oCL4Z6U4Z+J4Z+H4Z6W4Z624Z6b4Z+L4oCL4Z6l4Z6a4Z634Z6Z4Z624Z6U4Z6Q4oCL4Z6A4Z624Z6a4oCL4Z6F4Z624Z6A4Z+L4oCL4Z6f4Z+E4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4oCL4Z6b4Z6+4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2FwcEluZm8iIG1zZ2lkPSI4MDI4Nzg5NzYyNjM0MTQ3NzI1Ij4i4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hcHBJbmZvIiBtc2dpZD0iMzk1MDM3ODUzODA0OTYyNTkwNyI+IuGem+GekeGfkuGekuGel+GetuGeluKAi+GelOGfieGfh+GeluGetuGem+Gfi+KAi+GeiuGem+Gfi+KAi+GepeGemuGet+GemeGetuGelOGekOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGen+GfgeGehOGfl+KAi+Gem+GevuKAi+Gep+GelOGegOGemuGejuGfjeKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl93YWxscGFwZXIiIG1zZ2lkPSIzODUwMjgwMTU4MDQxMTc1OTk4Ij4i4Z6V4Z+S4Z6R4Z624Z+G4Z6E4oCL4Z6a4Z684Z6U4Z6X4Z624Z6WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY193YWxscGFwZXIiIG1zZ2lkPSI1NjMwNDE3ODU0NzUwNTQwMTU0Ij4i4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6A4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6V4Z+S4Z6R4Z624Z+G4Z6E4oCL4Z6a4Z684Z6U4Z6X4Z624Z6W4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N5c3RlbUNsb2NrIiBtc2dpZD0iNDA2NTM1NzU5MjM2NjEyOTkyIj4i4Z6T4Z624Z6h4Z634Z6A4Z62Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeXN0ZW1DbG9jayIgbXNnaWQ9IjM5NDQzNTk4MzM2MjQwOTQ5OTIiPiLhnpThn5LhnorhnrzhnprigIvhnpbhn4Hhnpvhnpzhn4HhnpvhnrYg4Z6s4oCL4Z6P4Z+G4Z6U4Z6T4Z+L4oCL4Z6W4Z+B4Z6b4Z6c4Z+B4Z6b4Z624oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N0YXR1c0JhciIgbXNnaWQ9IjIwOTU4NjI1NjgxMTM5NDUzOTgiPiLhnprhnpThnrbhnprigIvhnp/hn5LhnpDhnrbhnpPhnpfhnrbhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N0YXR1c0JhciIgbXNnaWQ9IjYyNDI1OTM0MzIyMjY4MDcxNzEiPiLhnpThn5LhnorhnrzhnprigIvhnoDhnrbhnprigIvhnoDhn4bhno7hno/hn4vigIvhnprhnpThnrbhnprigIvhnp/hn5LhnpDhnrbhnpPhnpfhnrbhnpbigIvhnqfhnpThnoDhnprhno7hn43hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3luY1NldHRpbmdzIiBtc2dpZD0iMzM0MTk5MDk4NjE0NzgyNjU0MSI+IuGegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+KAi+KAi+GekuGfkuGenOGevuKAi+Gen+GemOKAi+GegOGetuGem+KAi+GegOGemOGfkuGemCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3luY1NldHRpbmdzIiBtc2dpZD0iNzYwMzE5NTI2NTEyOTAzMTc5NyI+IuGeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GekuGfkuGenOGevuKAi+Gen+GemOKAi+GegOGetuGem+KAi+GegOGemOGfkuGemOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hY2NvdW50cyIgbXNnaWQ9IjMzNTk2NDYyOTExMjUzMjU1MTkiPiLhnoLhno7hnpPhnrjigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FjY291bnRzIiBtc2dpZD0iNDk0ODczMjY0MTgyNzA5MTMxMiI+IuGeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+GeguGejuGek+GeuOKAi+GeiuGfguGem+KAi+GemOGetuGek+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9oYXJkd2FyZUNvbnRyb2xzIiBtc2dpZD0iNzk5ODIxNDk2ODc5MTU5OTMyNiI+IuGeluGet+Gek+Get+Gej+GfkuGemeKAi+GeleGfkuGek+GfguGegOGemuGeueGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfaGFyZHdhcmVDb250cm9scyIgbXNnaWQ9IjQzNTcwNTc4NjEyMjU0NjI3MDIiPiLhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnpXhn5LhnpPhn4LhnoDigIvhnprhnrnhnoTigIvhnorhn4ThnpnigIvhnpXhn5LhnpHhnrbhnpvhn4vigIvhnoDhn5LhnpPhnrvhnoTigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfcGhvbmVDYWxscyIgbXNnaWQ9IjkwNjcxNzM5ODgzMjU4NjU5MjMiPiLhnqDhn4XigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3Bob25lQ2FsbHMiIG1zZ2lkPSI3NDg5NzAxNjIwNDQ2MTgzNzcwIj4i4Z6P4Z624Z6Y4Z6K4Z624Z6TIOGekOGejyDhnpPhnrfhnoTigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnoDhnrbhnprigIvhnqDhn4XigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3lzdGVtVG9vbHMiIG1zZ2lkPSI0NjUyMTkxNjQ0MDgyNzE0MDQ4Ij4i4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6SIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeXN0ZW1Ub29scyIgbXNnaWQ9IjgxNjIxMDI2MDIxOTA3MzQzMDUiPiLhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnoDhnpjhn5Lhnprhnrfhno/igIvhnpHhnrbhnpQg4Z6T4Z634Z6E4oCL4Z6W4Z634Z6T4Z634Z6P4Z+S4Z6Z4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2RldmVsb3BtZW50VG9vbHMiIG1zZ2lkPSIzNDQ2MTY0NTg0NzEwNTk2NTEzIj4i4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4oCL4Z6i4Z6X4Z634Z6c4Z6M4Z+S4Z6NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kZXZlbG9wbWVudFRvb2xzIiBtc2dpZD0iNzA1ODgyODAzMjM1ODE0MjAxOCI+IuGem+GegOGfkuGegeGejuGfiOKAi+GeheGetuGfhuGelOGetuGeheGfi+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+Gej+GfguKAi+GeouGfkuGek+GegOKAi+GeouGel+Get+GenOGejOGfkuGejeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaXNwbGF5IiBtc2dpZD0iNDI3OTkwOTY3NjAzNjQwMjYzNiI+IuGeheGfhuGejuGeu+GeheKAi+GelOGfkuGemuGekeGetuGegOGfi+KAi+GeouGfkuGek+GegOKAi+GelOGfkuGemuGevuKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGen+GfgeGehOGflyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfZGlzcGxheSIgbXNnaWQ9IjYwNTEwMDIwMzE5MzMwMTM3MTQiPiLhnpThn5Lhnprhnp/hnrfhnpHhn5LhnpLigIvhnpfhnrbhnpbigIvhnoXhn4bhno7hnrvhnoXigIvhnpThn5LhnprhnpHhnrbhnoDhn4vigIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr7igIvhnpPhn4PigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnp/hn4HhnoThn5fhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3RvcmFnZSIgbXNnaWQ9IjE5NzExMTg3NzA1NDYzMzY5NjYiPiLhnoDhnrbhnprigIvhnpXhn5LhnpHhnrvhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N0b3JhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzQ0MjMxODUwMjQ0Njg3NDk5OSI+IuGeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjkyMDMzMDIyMTQ5MTUzNTU3NzQiPiLhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnoDhnrbhno/igIvhnqLhn4Hhnp/hnozhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNzkxOTAyNTYwMjI4MzU5MzkwNyI+IuGem+GegOGfkuGegeGejuGfiOKAi+Gel+GetuGeluKAi+GehOGetuGemeGen+GfkuGemuGeveGemyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNDIwNTE5Njg4MTY3ODE0NDMzNSI+IuGem+GegOGfkuGegeGejuGfiOKAi+GeiuGfguGem+KAi+Geh+GetuKAi+GelOGeheGfkuGeheGfgeGegOGenOGet+GekeGfkuGemeGetuKAi+Geh+GfhuGek+GeveGemeKAi+GeouGetuGeheKAi+Gen+GfkuGek+GevuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmV0cmlldmVXaW5kb3dDb250ZW50IiBtc2dpZD0iMzkwMTcxNzkzNjkzMDE3MDMyMCI+IuGekeGfheKAi+GemeGegOKAi+GemOGetuGej+Get+GegOGetuKAi+GelOGehOGfkuGeouGeveGehSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXRyaWV2ZVdpbmRvd0NvbnRlbnQiIG1zZ2lkPSIzNzcyMjI1MDA4NjA1MzEwNjcyIj4i4Z6W4Z634Z6T4Z634Z6P4Z+S4Z6Z4oCL4Z6Y4Z624Z6P4Z634Z6A4Z624oCL4Z6U4Z6E4Z+S4Z6i4Z694Z6F4oCL4Z6K4Z+C4Z6b4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6R4Z624Z6A4Z+L4Z6R4Z6E4oCL4Z6H4Z624oCL4Z6Y4Z694Z6Z4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXF1ZXN0VG91Y2hFeHBsb3JhdGlvbiIgbXNnaWQ9IjMxMDg3MjMzNjQ2NzY2NjczMjAiPiLhnpThnr7hnoDigIvhnoDhnrbhnprigIvhnprhnoDigIvhnpjhnr7hnpvigIvigIvhnorhn4ThnpnigIvhnpThn4nhn4ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmVxdWVzdFRvdWNoRXhwbG9yYXRpb24iIG1zZ2lkPSI1ODAwNTUyNTE2Nzc5MjQ5MzU2Ij4i4Z6S4Z624Z6P4Z674oCL4Z6U4Z624Z6T4oCL4Z6U4Z+J4Z+H4oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6i4Z624Z6T4oCL4Z6u4oCL4Z+XIOGeouGfgeGegOGfkuGemuGehOGfi+KAi+GeouGetuGeheKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+Gen+GfkuGenOGfguGehOGemuGegOKAi+GeiuGfhOGemeKAi+GelOGfkuGemuGevuKAi+GegOGetuGemeGenOGet+GegOGetuGemuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdEVuaGFuY2VkV2ViQWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjE3Mzk4ODE3NjY1MjI1OTQwNzMiPiLhnpThnr7hnoDigIvhnoDhnrbhnprigIvhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnpThno7hn5LhnorhnrbhnonigIvhnorhn4LhnpvigIvhnpThnrbhnpPigIvhnpLhn5Lhnpzhnr7igIvhnrLhn5LhnpnigIvhnpThn5Lhnprhnp/hnr7hnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmVxdWVzdEVuaGFuY2VkV2ViQWNjZXNzaWJpbGl0eSIgbXNnaWQ9Ijc4ODEwNjM5NjE1MDc1MTE3NjUiPiLhnp/hn5LhnoLhn5LhnprhnrjhnpTigIvhnqLhnrbhnoXigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnorhn4bhnqHhnr7hnoTigIsg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6S4Z+S4Z6c4Z6+4oCL4Z6y4Z+S4Z6Z4oCL4Z6Y4Z624Z6P4Z634Z6A4Z624oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6F4oCL4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6U4Z624Z6T4oCL4Z6A4Z624Z6T4Z+L4Z6P4Z+C4oCL4Z6F4Z+S4Z6a4Z6+4Z6T4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXF1ZXN0RmlsdGVyS2V5RXZlbnRzIiBtc2dpZD0iMjEwMzQ0MDM5MTkwMjQxMjE3NCI+IuGemOGevuGem+KAi+GeouGej+GfkuGekOGelOGekeKAi+GeiuGfguGem+KAi+GenOGetuGemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXF1ZXN0RmlsdGVyS2V5RXZlbnRzIiBtc2dpZD0iNzQ2MzEzNTI5MjIwNDE1MjgxOCI+IuGemuGeveGemOKAi+GelOGeieGfkuGeheGevOGem+KAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GeleGfkuGekeGetuGem+Gfi+KAi+GegeGfkuGem+GeveGek+KAiyDhnorhnrzhnoXhnofhnrbigIvhnpvhn4HhnoHigIvhnoDhnrbhno/igIvhnqXhno7hnpHhnrbhnpMg4Z6T4Z634Z6E4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdGF0dXNCYXIiIG1zZ2lkPSI3NDE3MTkyNjI5NjAxODkwNzkxIj4i4Z6U4Z634Z6RIOGerOKAi+GegOGfguKAi+GemuGelOGetuGemuKAi+Gen+GfkuGekOGetuGek+Gel+GetuGeliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXR1c0JhciIgbXNnaWQ9Ijg0MzQ2Njk1NDk1MDQyOTA5NzUiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThnrfhnpHigIvhnprhnpThnrbhnprigIvhnp/hn5LhnpDhnrbhnpPhnpfhnrbhnpYg4Z6s4oCL4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6YIOGek+Get+GehOKAi+Gem+Geu+GelOKAi+GemuGevOGelOKAi+Gej+GfhuGejuGetuGehOKAi+GelOGfkuGemuGeluGfkOGek+GfkuGekuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhdHVzQmFyU2VydmljZSIgbXNnaWQ9IjcyNDcyODE5MTEzODc5MzE0ODUiPiLhnprhnpThnrbhnprigIvhnp/hn5LhnpDhnrbhnpPhnpfhnrbhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdGF0dXNCYXJTZXJ2aWNlIiBtc2dpZD0iNzE2MTEzNjYwNzk1OTc2MDYwIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+S4Z6b4Z624Z6Z4oCL4Z6H4Z624oCL4Z6a4Z6U4Z624Z6a4oCL4Z6f4Z+S4Z6Q4Z624Z6T4Z6X4Z624Z6W4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9leHBhbmRTdGF0dXNCYXIiIG1zZ2lkPSIxMTQ4MTk4Nzg1OTM3NDg5MjY0Ij4i4Z6W4Z6E4Z+S4Z6a4Z644Z6AL+GelOGehOGfkuGemuGeveGemOKAi+GemuGelOGetuGemuKAi+Gen+GfkuGekOGetuGek+KAi+Gel+GetuGeliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2V4cGFuZFN0YXR1c0JhciIgbXNnaWQ9IjY5MTc1NDk0MzcxMjk0MDExMzIiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhnoThn5LhnprhnrjhnoAg4Z6s4oCL4Z6U4Z6E4Z+S4Z6a4Z694Z6Y4oCL4Z6a4Z6U4Z624Z6a4oCL4Z6f4Z+S4Z6Q4Z624Z6T4Z6X4Z624Z6W4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wcm9jZXNzT3V0Z29pbmdDYWxscyIgbXNnaWQ9IjM5MDYwMDc4MzExOTI5OTA5NDYiPiLhnpPhnrbhn4bigIvhnpXhn5LhnpvhnrzhnpzigIvhnoDhnrbhnprigIvhnqDhn4XigIvhnoXhn4HhnonigIvhnqHhnr7hnoThnpzhnrfhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wcm9jZXNzT3V0Z29pbmdDYWxscyIgbXNnaWQ9IjUzMzEzMTg5MzE5Mzc0MDIwNDAiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnoDhnrbhnprigIvhnqDhn4XigIvhnoXhn4Hhnokg4Z6T4Z634Z6E4oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6b4Z+B4Z6B4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6g4Z+F4Z+UIOGen+Get+GekeGfkuGekuGet+KAi+Gek+GfgeGfh+KAi+GeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gej+GetuGemOGeiuGetuGekyDhnpThn5LhnorhnrzhnprigIvhnpHhnrfhnp8g4Z6s4oCL4Z6A4Z624Z6a4Z6W4Z624Z6a4oCL4Z6A4Z624Z6a4oCL4Z6g4Z+F4oCL4Z6F4Z+B4Z6J4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlU21zIiBtc2dpZD0iODY3MzQ3MTc2ODk0Nzg5NTA4MiI+IuGekeGekeGeveGem+KAi+Gen+GetuGemuKAi+GeouGej+GfkuGekOGelOGekSAo4Z6f4Z624Z6aIFNNU+KAiykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlU21zIiBtc2dpZD0iNjQyNDM4Nzc1NDIyODc2NjkzOSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekeGekeGeveGemyDhnpPhnrfhnoTigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvigIvhnp/hnrbhnpogTU1TIOGflCDhnpjhnrbhnpPigIvhnpPhn5DhnpnigIvhnpDhnrYg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6F4oCL4Z6P4Z+S4Z6a4Z694Z6P4Z6W4Z634Z6T4Z634Z6P4Z+S4Z6Z4oCLIOGerOKAi+Gem+Geu+GelOKAi+Gen+GetuGemuKAi+GeiuGfguGem+KAi+GelOGetuGek+KAi+GeleGfkuGeieGevuKAi+GekeGfheKAi+Gep+GelOGegOGemuGejuGfjeKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegCDhnorhn4ThnpnigIvigIvhnpjhnrfhnpPigIvhnpThnoThn5LhnqDhnrbhnonigIvhnqLhn5LhnpPhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVNbXMiIG1zZ2lkPSIxODIxMzE3MzQ0NjY4MjU3MDk4Ij4i4Z6R4Z6R4Z694Z6b4oCL4Z6f4Z624Z6a4oCL4Z6i4Z6P4Z+S4Z6Q4Z6U4Z6RIChNTVPigIspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZU1tcyIgbXNnaWQ9IjUzMzAxOTQzNzI2MzIxMjI2MCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekeGekeGeveGemyDhnpPhnrfhnoTigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvigIvhnp/hnrbhnprigIsgTU1TIOGflCDhnpzhnrbigIvhnpjhnrbhnpPigIvhnpPhn5DhnpnigIvhnpDhnrYg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6F4oCL4Z6P4Z624Z6Y4Z6K4Z624Z6T4oCLIOGerOKAi+Gem+Geu+GelOKAi+Gen+GetuGemuKAi+GeiuGfguGem+KAi+GelOGetuGek+KAi+GeleGfkuGeieGevuKAi+GekeGfheKAi+Gep+GelOGegOGemuGejuGfjeKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+GeiuGfhOGemeKAi+GemOGet+Gek+KAi+GelOGehOGfkuGeoOGetuGeieKAi+GeluGeveGegOGenOGetuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9IjE4MDM0Nzc2NjA4NDYyODgwODkiPiLhnpHhnpHhnr3hnpvigIvhnoDhnrbhnprigIvhnpThn5LhnprhnoDhnrbhnp/igIvhnpbhn4HhnpvigIvigIvigIvhnqLhnrbhnp/hnpPhn5LhnpMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlRW1lcmdlbmN5QnJvYWRjYXN0IiBtc2dpZD0iODQ4NTI0MDcwMjYyNDMxOTc0Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6R4Z6R4Z694Z6b4oCL4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6f4Z624Z6a4oCL4Z6U4Z+S4Z6a4Z6A4Z624Z6f4oCL4Z6W4Z+B4Z6b4oCL4Z6i4Z624Z6f4Z6T4Z+S4Z6T4Z+UIOGen+Get+GekeGfkuGekuGet+KAi+Gek+GfgeGfh+KAi+GemOGetuGek+KAi+Gej+GfguKAi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGfkuGemuGeluGfkOGek+GfkuGekuKAi+GelOGfieGeu+GejuGfkuGejuGfhOGfh+KAi+KAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GelOGetuGek+KAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENlbGxCcm9hZGNhc3RzIiBtc2dpZD0iMTU5ODMyODg0MzYxOTY0NjE2NiI+IuGeouGetuGek+KAi+Gen+GetuGemuKAi+GelOGfkuGemuGegOGetuGen+KAi+GeheGem+GfkOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDZWxsQnJvYWRjYXN0cyIgbXNnaWQ9IjYzNjE5NzI3NzYwODA0NTg5NzkiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhnrbhnpPigIvhnp/hnrbhnprigIvhnpThn5LhnprhnoDhnrbhnp/igIvhnoDhnrbhnprigIvhnqDhn4XigIvhnorhn4LhnpvigIvhnqfhnpThnoDhnprhno7hn43igIvhnprhnpThnp/hn4vigIvigIvhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnpHhnpHhnr3hnpvhn5Qg4Z6A4Z624Z6a4oCL4Z6H4Z684Z6T4oCL4Z6K4Z+G4Z6O4Z654Z6E4oCL4Z6U4Z+S4Z6a4Z6A4Z624Z6f4oCL4Z6F4Z6b4Z+Q4Z6P4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6U4Z6J4Z+S4Z6H4Z684Z6T4oCL4Z6R4Z+F4oCL4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4Z6Y4Z694Z6Z4oCL4Z6F4Z+G4Z6T4Z694Z6TIOGeiuGevuGemOGfkuGelOGeuOKAi+GeluGfkuGemuGemOGetuGek+KAi+GeouGfkuGek+GegOKAi+GeouGfhuGeluGeuOKAi+Gen+GfkuGekOGetuGek+Gel+GetuGeluKAi+GeouGetuGen+Gek+GfkuGek+GflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnofhn5Lhnprhn4Dhno/hnofhn5Lhnprhn4LhnoDigIvhnoDhnrbhnprigIvhnqLhnpPhnrvhnpzhno/hn5Lhno8g4Z6s4oCL4Z6U4Z+S4Z6a4Z6P4Z634Z6U4Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4oCL4Z6W4Z+B4Z6b4oCL4Z6R4Z6R4Z694Z6b4oCL4Z6A4Z624Z6a4oCL4Z6U4Z+S4Z6a4Z6A4Z624Z6f4oCL4Z6F4Z6b4Z+Q4Z6P4oCL4Z6W4Z+B4Z6b4oCL4Z6i4Z624Z6f4Z6T4Z+S4Z6T4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZW5kU21zIiBtc2dpZD0iNTYwMDgzMDYxMjE0NzY3MTUyOSI+IuGeleGfkuGeieGevuKAi+Gen+GetuGemiBTTVMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZW5kU21zIiBtc2dpZD0iNzA5NDcyOTI5ODIwNDkzNzY2NyI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGeieGevuKAi+Gen+GetuGemuKAiyBTTVMg4Z+UIOGenOGetuKAi+GeouGetuGeheKAi+GeguGet+Gej+KAi+GekOGfkuGem+Gfg+KAi+Gen+GfgeGenOGetuGegOGemOGfkuGemOKAi+GeiuGfguGem+KAi+GemOGet+Gek+KAi+GemuGfhuGeluGeueGehOKAi+GekeGeu+GegOGflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnoLhnrfhno/igIvhnpDhn5Lhnpvhn4PigIvhnp/hn4HhnpzhnrbhnoDhnpjhn5LhnpjigIvhnpbhnrjigIvhnqLhn5LhnpPhnoDigIsg4Z6K4Z+E4Z6Z4oCL4Z6V4Z+S4Z6J4Z6+4oCL4Z6f4Z624Z6a4oCL4Z6K4Z+E4Z6Z4oCL4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6A4Z624Z6a4oCL4Z6U4Z6J4Z+S4Z6H4Z624Z6A4Z+L4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZW5kUmVzcG9uZFZpYU1lc3NhZ2VSZXF1ZXN0IiBtc2dpZD0iODcxMzg4OTEwNTMwNTk0MzIwMCI+IuGeleGfkuGeieGevuKAi+GeluGfkuGemuGeueGej+GfkuGej+Get+GegOGetuGemuGejuGfjeKAi+Gen+GetuGemuKAi+Gej+GetuGemOGemuGemeGfiOKAi+GegOGetuGemuKAi+GehuGfkuGem+GevuGemeGej+GelCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRSZXNwb25kVmlhTWVzc2FnZVJlcXVlc3QiIG1zZ2lkPSI3MTA3NjQ4NTQ4NDY4Nzc4NzM0Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6J4Z6+4oCL4Z6f4Z+G4Z6O4Z6+4oCL4Z6R4Z+F4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6J4Z6+4oCL4Z6f4Z624Z6aIOGeiuGevuGemOGfkuGelOGeuOKAi+GeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+GeluGfkuGemuGeueGej+GfkuGej+Get+GegOGetuGemuGejuGfjeKAi+Gen+GetuGemuKAi+Gej+GetuGemOKAi+GemuGemeGfiOKAi+GegOGetuGemuKAi+GehuGfkuGem+GevuGemeGej+GelOKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGetuGemuKAi+GeoOGfheKAi+GeheGevOGem+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFNtcyIgbXNnaWQ9Ijg3NDUwODY1NzIyMTMyNzA0ODAiPiLhnqLhnrbhnpPigIvhnp/hnrbhnprigIvhnqLhno/hn5LhnpDhnpThnpHigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAgKFNNUyDhnqwgTU1T4oCLKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTbXMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI0Njc5ODE1NDg2ODQ3MzU1MjIiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvigIvhnqLhnrbhnpPigIvhnp/hnrbhnpogU01TIOGeiuGfguGem+KAi+GemOGetuGek+KAi+GegOGfkuGek+Geu+GehOKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfhyDhnqzigIvhnp/hn4rhnrjhnpjigIvhnoDhnrbhno/hn5Qg4Z6c4Z624oCL4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6T4oCL4Z6f4Z624Z6aIFNNUyDhnpHhnrbhnoDhn4vhnpHhnoTigIvhnpPhnrnhnoTigIvhnpjhnrbhno/hnrfhnoDhnrYg4Z6s4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2OTU5Njc1MzM0NTcyNDA1NTAiPiLhnrLhn5LhnpnigIvigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhnrbhnpPigIvhnp/hnrbhnpogU01TIOGeiuGfguGem+KAi+GelOGetuGek+KAi+GemuGegOGfkuGen+GetuGekeGeu+GegOKAi+GegOGfkuGek+Geu+GehOKAi+GekeGevOGemuGen+GfkOGeluGfkuGekSDhnqzigIvigIvhnp/hn4rhnrjhnpjigIvhnoDhnrbhno/igIvhn5Qg4Z6c4Z624oCL4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6T4oCL4Z6f4Z624Z6aIFNNUyDhnpHhnrbhn4bhnoTigIvhnqLhnp/hn4vigIsg4Z6R4Z624Z6A4Z+L4Z6R4Z6E4oCL4Z6T4Z654Z6E4oCL4Z6Y4Z624Z6P4Z634Z6A4Z624oCLIOGerOKAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+Gen+GemOGfkuGehOGetuGej+Gfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTbXMiIG1zZ2lkPSIzMjE2OTUwNDcyNjM2MjE0Nzc0Ij4i4Z6A4Z+C4Z6f4Z6Y4Z+S4Z6a4Z694Z6b4oCL4Z6f4Z624Z6a4oCL4Z6i4Z6P4Z+S4Z6Q4Z6U4Z6R4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AICjhnp/hnrbhnpogU01TIOGerCBNTVPigIspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjUxNjA0MTM5NDc3OTQ1MDE1MzgiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnp/hnprhnp/hn4HhnprigIvhnp/hnrbhnpogU01TIOGeiuGfguGem+KAi+KAi+GelOGetuGek+KAi+GemuGegOGfkuGen+GetuGekeGeu+GegOKAi+GegOGfkuGek+Geu+GehOKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfhyDhnqzigIvhnp/hn4rhnrjhnpjigIvhnoDhnrbhno/igIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6b4Z674Z6U4oCL4Z6f4Z624Z6a4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjY4NjY4NzA5MDUyMzI4NTY3Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6f4Z6a4Z6f4Z+B4Z6a4oCL4Z6f4Z624Z6aIFNNUyDhnorhn4LhnpvigIvhnpThnrbhnpPigIvhnprhnoDhn5Lhnp/hnrbhnpHhnrvhnoDigIvhnoDhn5LhnpPhnrvhnoTigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpEg4Z6s4oCL4oCL4Z6f4Z+K4Z644Z6Y4oCL4Z6A4Z624Z6P4Z+UIOGegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGfkuGemeGetuGelOGetuGekeKAi+GeouGetuGeheKAi+Gem+Geu+GelOKAi+Gen+GetuGemuKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI1OTkxMzk4NzExOTM2NTkwNDEwIj4i4Z6R4Z6R4Z694Z6b4oCL4Z6f4Z624Z6a4oCL4Z6i4Z6P4Z+S4Z6Q4Z6U4Z6RIChXQVDigIspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI3NDgyMzIxOTAyMjA1ODMzODUiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpHhnpHhnr3hnpsg4Z6T4Z634Z6E4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6f4Z624Z6aIFdBUCDhn5Qg4Z6f4Z634Z6R4Z+S4Z6S4Z634oCL4Z6T4Z+B4Z+H4oCL4oCL4Z6Y4Z624Z6T4Z6b4Z6R4Z+S4Z6S4Z6X4Z624Z6W4oCL4Z6P4Z624Z6Y4Z6K4Z624Z6TIOGerOKAi+Gem+Geu+GelOKAi+Gen+GetuGemuKAi+GeiuGfguGem+KAi+GelOGetuGek+KAi+GeleGfkuGeieGevuKAi+GesuGfkuGemeKAi+GeouGfkuGek+GegOKAi+GeiuGfhOGemeKAi+GemOGet+Gek+KAi+GelOGehOGfkuGeoOGetuKAi+GeieGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0VGFza3MiIG1zZ2lkPSI2NDY2MDk1Mzk2NjIzOTMzOTA2Ij4i4Z6R4Z+F4oCL4Z6Z4Z6A4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0VGFza3MiIG1zZ2lkPSI3NDU0MjE1OTk1ODQ3NjU4MTAyIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6R4Z+F4oCL4Z6Z4Z6A4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6b4Z6Y4Z+S4Z6i4Z634Z6P4oCL4Z6i4Z+G4Z6W4Z644oCL4Z6A4Z634Z6F4Z+S4Z6F4Z6A4Z624Z6a4oCL4Z6K4Z+C4Z6b4oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6U4Z6F4Z+S4Z6F4Z674Z6U4Z+S4Z6U4Z6T4Z+S4Z6T4Z+UIOGenOGetuKAi+GeouGetuGeheKAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GemuGegOGemOGevuGem+KAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+GekOGetuKAi+Gej+GevuKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GejuGetuGemOGeveGemeKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GelOGfkuGemuGevuKAi+Gem+GevuKAi+Gep+GelOGegOGemuGejuGfjeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW50ZXJhY3RBY3Jvc3NVc2VycyIgbXNnaWQ9IjcxMTQyNTUyODE5NDQyMTE2ODIiPiLhnqLhnpPhn5Lhno/hnprhnoDhnpjhn5LhnpjigIvhno/hnrbhnpjigIvigIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcmFjdEFjcm9zc1VzZXJzIiBtc2dpZD0iMzY0NjcwOTYzNjIzMzg1Nzg2Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z6T4Z674Z6c4Z6P4Z+S4Z6P4oCL4Z6f4Z6A4Z6Y4Z+S4Z6Y4Z6X4Z624Z6W4oCL4Z6G4Z+S4Z6b4Z6E4oCL4Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+4oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4oCL4oCL4Z6b4Z6+4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4Z+UIOGegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGfkuGemeGetuGelOGetuGekeKAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GenOGetiDhnorhnr7hnpjhn5LhnpThnrjigIvhnpThn4bhnpbhnrbhnpPigIvhnoDhnrbhnprigIvhnoDhnrbhnprhnpbhnrbhnprigIvhnprhnpzhnrbhnoTigIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr7hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVyYWN0QWNyb3NzVXNlcnNGdWxsIiBtc2dpZD0iMjU2NzczNDI4NTU0NTA3NDEwNSI+IuGeouGetuGeh+GfkuGeieGetuGelOGfkOGejuGfkuGejuKAi+GeluGfgeGeieGem+GfgeGeieKAiyDhnorhnr7hnpjhn5LhnpThnrjigIvhnpHhnrbhnoDhn4vhnpHhnoTigIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcmFjdEFjcm9zc1VzZXJzRnVsbCIgbXNnaWQ9IjM3Njg0MTM2ODM5NTUwMjM2NiI+IuGesuGfkuGemeKAi+GeouGek+GfkuGej+GemuGegOGemOGfkuGemOKAi+GeiuGfguGem+KAi+GemOGetuGek+KAi+GekeGetuGfhuGehOKAi+GeouGen+Gfi+KAi+GeguGfkuGemuGelOGfi+KAi+GeouGfkuGek+GegOKAi+GelOGfkuGemuGevuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlVXNlcnMiIG1zZ2lkPSIxNjc2MTUwOTExNjcyMjgyNDI4Ij4i4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6E4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z+S4Z6a4Z6+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNlcnMiIG1zZ2lkPSI4NDA5MzA2NjY3NjQ1MzU1NjM4Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6E4oCL4Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+4oCL4Z6b4Z6+4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+NIOGemuGeveGemOGemOGetuGek+KAi+GegOGetuGemuKAi+GeheGfkuGemuGfhOGfhyDhnpThnoThn5LhnoDhnr7hno8g4Z6T4Z634Z6E4oCL4Z6b4Z674Z6U4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXREZXRhaWxlZFRhc2tzIiBtc2dpZD0iNjIyOTQ2ODY3NDc1MzUyOTUwMSI+IuGekeGfheKAi+GemeGegOKAi+Gen+GfgeGeheGegOGfkuGeiuGeuOKAi+Gem+GemOGfkuGeouGet+Gej+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GegOGfhuGeluGeu+GehOKAi+GeiuGfhuGejuGevuGemuGegOGetuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldERldGFpbGVkVGFza3MiIG1zZ2lkPSIxNTM4MjQ3NDE0NDA3MTc1OTkiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpHhn4XigIvhnpnhnoDigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnpvhnpjhn5LhnqLhnrfhno/igIvhnqLhn4bhnpbhnrjigIvhnoDhnrfhnoXhn5LhnoXhnoDhnrbhnprigIvhnorhn4LhnpvigIvhnoDhn4bhnpbhnrvhnoTigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnpThnoXhn5LhnoXhnrvhnpThn5LhnpThnpPhn5LhnpPhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6a4Z6A4Z6Y4Z6+4Z6b4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6v4Z6A4Z6H4Z6T4oCL4Z6i4Z+G4Z6W4Z644oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZW9yZGVyVGFza3MiIG1zZ2lkPSIyMDE4NTc1NTI2OTM0NDIyNzc5Ij4i4Z6P4Z6Y4Z+S4Z6a4Z+A4Z6U4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6h4Z6+4Z6E4Z6c4Z634Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVvcmRlclRhc2tzIiBtc2dpZD0iNzczNDIxNzc1NDg3NzQzOTM1MSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGem+GetuGen+Gfi+GekeGeuOKAi+Gel+GetuGemuGegOGet+GeheGfkuGeheKAi+KAi+GekeGfheKAi+GeleGfkuGekeGfg+KAi+GegeGetuGehOKAi+GemOGeu+GegeGflOKAiyDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhnrbhnoXigIvhnpLhn5Lhnpzhnr7igIvhnpzhnrbigIvhnorhn4ThnpnigIvhnoLhn5LhnpjhnrbhnpPigIvhnoDhnrbhnprigIvhnpThnonhn5LhnoXhnrzhnpvigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlbW92ZVRhc2tzIiBtc2dpZD0iNjgyMTUxMzQwMTg3MDM3NzQwMyI+IuGelOGeieGfkuGeiOGelOGfi+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+GegOGemOGfkuGemOGenOGet+GekuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlbW92ZVRhc2tzIiBtc2dpZD0iMTM5NDcxNDM1MjA2MjYzNTQ5MyI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gem+Geu+GelOKAi+Gel+GetuGemuGegOGet+GeheGfkuGeheKAiyDhnpPhnrfhnoTigIvhnpThnonhn5LhnojhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnprhnpThnp/hn4vigIvhnpbhnr3hnoDhnpzhnrbhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6a4Z+G4Z6B4Z624Z6T4oCL4Z6l4Z6a4Z634Z6Z4Z624Z6U4Z6Q4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjczOTExOTEzODQwMjczMDMwNjUiPiLhnoLhn5LhnprhnpThn4vhnoLhn5LhnprhnoTigIvhnofhnoThn4vigIvhnp/hnoDhnpjhn5LhnpjhnpfhnrbhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjE2MTU4ODE5MzMwMzQwODQ0NDAiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThnpPhn5LhnpDhn4LhnpgsIOGem+Geu+GelCDhnpPhnrfhnoTigIvhnoDhn4LigIvhnofhnoThn4vigIvhnp/hnoDhnpjhn5LhnpjhnpfhnrbhnpbigIvhnorhn4LhnpvigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnp/hn4HhnoTigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6a4Z+G4Z6B4Z624Z6T4oCL4Z6l4Z6a4Z634Z6Z4Z624Z6U4Z6Q4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdGFydEFueUFjdGl2aXR5IiBtc2dpZD0iMjkxODc2ODIzODA0NTIwNjQ1NiI+IuGeheGetuGelOGfi+GeleGfkuGeiuGevuGemOKAi+Gen+GegOGemOGfkuGemOGel+GetuGeluKAi+GejuGetuKAi+GemOGeveGemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXJ0QW55QWN0aXZpdHkiIG1zZ2lkPSI5OTc4MjM2OTUzNDM1ODQwMDEiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnp/hnoDhnpjhn5LhnpjhnpfhnrbhnpbigIvhno7hnrbigIvhnpjhnr3hnpkg4Z6R4Z624Z6A4Z+L4Z6R4Z6E4oCL4Z6T4Z654Z6E4oCL4Z6f4Z634Z6R4Z+S4Z6S4Z634oCL4Z6A4Z624Z6a4Z6W4Z624Z6a4oCLIOGerOKAi+Gen+GfkuGekOGetuGek+Gel+GetuGeluKAi+GelOGetuGek+KAi+Gek+GetuGfhuGeheGfgeGeieGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0U2NyZWVuQ29tcGF0aWJpbGl0eSIgbXNnaWQ9IjY5NzUzODcxMTg4NjE4NDIwNjEiPiLhnoDhn4bhno7hno/hn4vigIvhnpfhnrbhnpbigIvhnobhnpTigIvhnoLhn5LhnpPhnrbigIvhnpPhn4PigIvhnqLhn4HhnoDhn5LhnprhnoThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjkyMDQzNjE4NjkzOTE3Mzc0Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z634Z6T4Z634Z6P4Z+S4Z6Z4oCL4Z6a4Z6U4Z+A4Z6U4oCL4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4oCL4Z6C4Z+S4Z6T4Z624oCL4Z6a4Z6U4Z6f4Z+L4oCL4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4oCL4Z6T4Z+D4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4Z+UIOGegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGfkuGemeGetuGelOGetuGekeKAi+GeouGetuGeheKAi+GelOGfhuGeleGfkuGem+GetuGeieKAi+GepeGemuGet+GemeGetuGelOGekOKAi+Gek+Gfg+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGen+GfgeGehOGfl+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0RGVidWdBcHAiIG1zZ2lkPSIzMDIyMTA3MTk4Njg2NTg0MDUyIj4i4Z6U4Z6+4Z6A4oCL4Z6A4Z624Z6a4oCL4Z6A4Z+C4oCL4Z6A4Z+G4Z6g4Z674Z6f4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0RGVidWdBcHAiIG1zZ2lkPSI0NDc0NTEyNDE2Mjk5MDEzMjU2Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6+4Z6A4oCL4Z6A4Z624Z6a4oCL4Z6A4Z+C4oCL4Z6A4Z+G4Z6g4Z674Z6f4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4oCL4Z6R4Z+A4Z6P4Z+UIOGegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGfkuGemeGetuGelOGetuGekeKAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GenOGetiDhnorhnr7hnpjhn5LhnpThnrjigIvhnpThnonhn5LhnojhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnp/hn4HhnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZUNvbmZpZ3VyYXRpb24iIG1zZ2lkPSI0MTYyMDkyMTg1MTI0MjM0NDgwIj4i4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6A4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6SIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29uZmlndXJhdGlvbiIgbXNnaWQ9IjQzNzIyMjM4NzMxNTQyOTYwNzYiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThn5LhnorhnrzhnprigIvhnoDhnrbhnprigIvhnoDhn4bhno7hno/hn4vigIvigIvhnprhnoXhnpPhnrbhnp/hnpjhn5Lhnpbhn5DhnpPhn5LhnpLigIvhnpThnoXhn5LhnoXhnrvhnpThn5LhnpThnpPhn5LhnpMg4Z6K4Z684Z6F4oCL4Z6H4Z624oCL4Z6Y4Z684Z6b4Z6K4Z+S4Z6L4Z624Z6TIOGerOKAi+GekeGfhuGeoOGfhuKAi+GeluGeu+GemOGfkuGeluGeouGegOGfkuGen+GemuKAi+GekeGetuGfhuGehOGeouGen+Gfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZW5hYmxlQ2FyTW9kZSIgbXNnaWQ9IjU2ODQ1MDQwNTgxOTI5MjEwOTgiPiLhnpThnr7hnoDigIvhnprhnpThn4DhnpTigIvhnprhnpDhnpnhnpPhn5Lhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19lbmFibGVDYXJNb2RlIiBtc2dpZD0iNDg1MzE4NzQyNTc1MTQxOTQ2NyI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGevuGegOKAi+GemuGelOGfgOGelOKAi+GemuGekOGemeGek+GfkuGej+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfa2lsbEJhY2tncm91bmRQcm9jZXNzZXMiIG1zZ2lkPSIzOTE0MDI2Njg3NDIwMTc3MjAyIj4i4Z6U4Z634Z6R4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+XIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfa2lsbEJhY2tncm91bmRQcm9jZXNzZXMiIG1zZ2lkPSI0NTkzMzUzMjM1OTU5NzMzMTE5Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6J4Z+S4Z6I4Z6U4Z+L4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4oCL4Z6V4Z+S4Z6R4Z+D4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6a4Z+E4Z6Z4oCL4Z6T4Z+D4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4oCL4Z+UIOGenOGetuKAi+GeouGetuGeheKAi+GekuGfkuGenOGevuKAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGen+GfgeGehOKAi+GeiOGelOGfi+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZm9yY2VTdG9wUGFja2FnZXMiIG1zZ2lkPSIyMzI5NjI3NDI4ODMyMDY3NzAwIj4i4Z6U4Z6E4Z+S4Z6B4Z+G4oCL4Z6y4Z+S4Z6Z4oCL4Z6U4Z6J4Z+S4Z6I4Z6U4Z+L4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZm9yY2VTdG9wUGFja2FnZXMiIG1zZ2lkPSI1MjUzMTU3Mjk2MTgzOTQwODEyIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6J4Z+S4Z6I4Z6U4Z+L4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4oCL4Z6K4Z+E4Z6Z4oCL4Z6U4Z6E4Z+S4Z6B4Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mb3JjZUJhY2siIG1zZ2lkPSI2NTI5MzUyMDQwNzI1ODQ2MTYiPiLhnpThnoThn5LhnoHhn4bigIvhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThnrfhnpEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mb3JjZUJhY2siIG1zZ2lkPSIzODkyMjk1ODMwNDE5NTEzNjIzIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6E4Z+S4Z6B4Z+G4oCL4Z6f4Z6A4Z6Y4Z+S4Z6Y4Z6X4Z624Z6W4oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4oCL4Z6K4Z+C4Z6b4oCL4Z6T4Z+F4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6V4Z+S4Z6R4Z+D4oCL4Z6B4Z624Z6E4oCL4Z6Y4Z674Z6B4oCL4Z6U4Z634Z6RIOGek+Get+GehOKAi+GekeGfheKAi+GegOGfkuGek+Geu+GehOKAi+GeleGfkuGekeGfg+KAi+GegeGetuGehOKAi+GegOGfkuGemuGfhOGemeGflCDhnpjhnrfhnpPigIvhnoLhnr3hnprigIvhnoXhnrbhn4bhnpThnrbhnoXhn4vigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpLhnpjhn5Lhnpjhno/hnrbigIvhnpHhn4Hhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2R1bXAiIG1zZ2lkPSIxNjgxNzk5ODYyNDM4OTU0NzUyIj4i4Z6R4Z+F4oCL4Z6Z4Z6A4oCL4Z6f4Z+S4Z6Q4Z624Z6T4Z6X4Z624Z6W4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6SIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZHVtcCIgbXNnaWQ9IjE3NzgyOTkwODg2OTIyOTAzMjkiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpHhn4XigIvhnpnhnoDigIvhnp/hn5LhnpDhnrbhnpPhnpfhnrbhnpbigIvhnoHhnrbhnoTigIvhnoDhn5LhnpPhnrvhnoTigIvhnpPhn4PigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6R4Z+F4oCL4Z6Z4Z6A4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6v4Z6A4Z6H4Z6T4oCL4Z6T4Z634Z6E4oCL4Z6Y4Z624Z6T4oCL4Z6f4Z674Z6c4Z6P4Z+S4Z6Q4Z634Z6X4Z624Z6W4oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4oCL4Z6K4Z+C4Z6b4oCL4Z6W4Z694Z6A4Z6c4Z624oCL4Z6Y4Z634Z6T4oCL4Z6C4Z694Z6a4oCL4Z6P4Z+S4Z6a4Z684Z6c4Z6A4Z624Z6a4oCL4Z6P4Z624Z6Y4oCL4Z6S4Z6Y4Z+S4Z6Y4Z6P4Z624Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZXRyaWV2ZV93aW5kb3dfY29udGVudCIgbXNnaWQ9IjgwMjI1ODg2MDg5OTQ1ODk5MzgiPiLhnpHhn4XigIvhnpnhnoDigIvhnpjhnrbhno/hnrfhnoDhnrbigIvhnqLhn4HhnoDhn5LhnprhnoThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZXRyaWV2ZV93aW5kb3dfY29udGVudCIgbXNnaWQ9IjMxOTMyNjkwNjk0Njk3MDAyNjUiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpHhn4XigIvhnpnhnoDigIvhnpjhnrbhno/hnrfhnoDhnrbigIvhnpThnoThn5LhnqLhnr3hnoXigIvhnp/hnoDhnpjhn5Lhnpjhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6R4Z+F4oCL4Z6Z4Z6A4oCL4Z6Y4Z624Z6P4Z634Z6A4Z624oCL4Z6U4Z6E4Z+S4Z6i4Z694Z6F4oCL4Z6R4Z624Z+G4Z6E4oCL4Z6Y4Z684Z6bIOGek+Get+GehOKAi+GeluGet+Gek+Get+Gej+GfkuGemeKAi+GeouGej+GfkuGekOGelOGekeKAi+GekeGetuGfhuGehOGeouGen+GfiyDhnpvhnr7hnoDhnpvhn4LhnoTigIvhno/hn4LigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3RlbXBvcmFyeV9lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjIzMTI2MTIxMzUxMjczMTAyNTQiPiLhnpThnr7hnoDigIvhnpjhnpLhn5Lhnpnhn4ThnpThnrbhnpnigIvhnoThnrbhnpnhnp/hn5Lhnprhnr3hnpvigIvhnofhnrbigIvhnpThno7hn5Lhnorhn4Thn4figIvhnqLhnrbhnp/hnpPhn5LhnpMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY190ZW1wb3JhcnlfZW5hYmxlX2FjY2Vzc2liaWxpdHkiIG1zZ2lkPSI4MDc5NDU2MjkzMTgyOTc1NDY0Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6+4Z6A4oCL4Z6X4Z624Z6W4oCL4Z6E4Z624Z6Z4Z6f4Z+S4Z6a4Z694Z6b4oCL4Z6b4Z6+4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6H4Z624oCL4Z6U4Z6O4Z+S4Z6K4Z+E4Z+H4Z6i4Z624Z6f4Z6T4Z+S4Z6T4Z+UIOGegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGfkuGemeGetuGelOGetuGekeKAi+GeouGetuGeheKAi+GelOGevuGegOKAi+Gel+GetuGeluKAi+GehOGetuGemeGen+GfkuGemuGeveGem+KAi+GeiuGfhOGemeKAi+GemOGet+Gek+KAi+GesuGfkuGemeKAi+GeouGfkuGek+GegOKAi+GelOGfkuGemuGevuKAi+GeiuGeueGehOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmV0cmlldmVfd2luZG93X2luZm8iIG1zZ2lkPSI4NTMyMjk1MTk5MTEyNTE5Mzc4Ij4i4Z6R4Z+F4oCL4Z6Z4Z6A4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6U4Z6E4Z+S4Z6i4Z694Z6FIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmV0cmlldmVfd2luZG93X2luZm8iIG1zZ2lkPSI0OTk4ODM2MzcwNDI0MTg2ODQ5Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64IOGekeGfheKAi+GemeGegOKAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+GeouGfhuGeluGeuOKAi+GelOGehOGfkuGeouGeveGeheKAi+GeluGeuOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+GelOGehOGfkuGeouGeveGeheGflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnpHhn4XigIvhnpnhnoDigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnorhn4LhnpvigIvhnpjhnrbhnpPigIvhnpThn4bhno7hnoTigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhnrbhnprigIvhnpThn5Lhnprhnr7igIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLigIvhnoHhnrbhnoTigIvhnoDhn5LhnpPhnrvhnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4Njc1NTM1NjQ4ODA3NDI3Mzg5Ij4i4Z6F4Z+S4Z6a4Z+E4Z+H4oCL4Z6W4Z+S4Z6a4Z654Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4Z6O4Z+NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmlsdGVyX2V2ZW50cyIgbXNnaWQ9IjgwMDYyMzYzMTU4ODgzNDc2ODAiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoXhnrvhn4figIvhnojhn5Lhnpjhn4Thn4figIvhno/hnpjhn5LhnprhnoTigIvhnpThnonhn5LhnoXhnrzhnpvigIvigIvhnorhn4LhnpvigIvhnoXhn5Lhnprhn4Thn4figIvigIvhnpbhn5Lhnprhnrnhno/hn5Lhno/hnrfhnoDhnrbhnprhno7hn43igIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr7igIvhnpHhnrbhn4bhnoThnqLhnp/hn4vigIvhnpjhnrvhnpPigIvhnpbhn4HhnpvigIvhnpbhnr3hnoDigIvhnpzhnrbigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnpXhn5LhnorhnrbhnoXhn4vhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6W4Z634Z6T4Z634Z6P4Z+S4Z6Z4oCL4Z6F4Z+G4Z6O4Z674Z6F4oCL4Z6U4Z+S4Z6a4Z6R4Z624Z6A4Z+L4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4oCL4Z6K4Z+E4Z6Z4oCL4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6i4Z+G4Z6W4Z6+4oCL4Z6W4Z644oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z+S4Z6a4Z6+4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI1OTczNjI2NzM4MTcwNjE4Nzc1Ij4i4Z6W4Z6E4Z+S4Z6a4Z644Z6A4oCL4Z6A4Z624Z6a4oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFnbmlmeV9kaXNwbGF5IiBtc2dpZD0iNzEyMTIzNTY4NDUxNTAwMzc5MiI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGehOGfkuGemuGeuOGegOKAi+GemOGetuGej+Get+GegOGetuKAi+Gek+Gfg+KAi+GegOGetuGemuKAi+GelOGehOGfkuGeoOGetuGeieGflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnpThn5LhnorhnrzhnprigIvhnpjhnrbhno/hnrfhnoDhnrbigIvhnoDhnrbhnprigIvhnpThnoThn5LhnqDhnrbhnonigIvhno/hnrbhnpjhnpzhnrfhnpLhnrjigIvhnorhn4LhnpvigIvhnpThnoThn5LhnqDhnrbhnonigIvhnpDhnrbigIvhnqfhnpThnoDhnprhno7hn43igIvhnpjhnrfhnpPigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpThnrbhnpPhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NodXRkb3duIiBtc2dpZD0iNzE4NTc0NzgyNDAzODkwOTAxNiI+IuGelOGet+GekeKAi+KAi+GeiuGfhOGemeKAi+GeleGfkuGek+GfguGegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NodXRkb3duIiBtc2dpZD0iNzA0NjUwMDgzODc0NjI5MTc3NSI+IuGeiuGetuGegOGfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+KAi+Gen+GegOGemOGfkuGemOGel+GetuGeluKAi+GegOGfkuGek+Geu+GehOKAi+Gen+GfkuGekOGetuGek+KAi+Gel+GetuGeluKAi+GelOGet+GekeGflCDhnpjhnrfhnpPigIvhnqLhnpPhnrvhnpzhno/hn5Lhno/igIvhnoDhnrbhnprigIvhnpThnrfhnpHigIvhnpbhn4Hhnonhnpvhn4HhnonigIvhnpHhn4Hhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0b3BBcHBTd2l0Y2hlcyIgbXNnaWQ9IjQxMzg2MDg2MTA3MTc0MjU1NzMiPiLhnoDhnrbhnprigIvhnpbhnrbhnprigIvigIvhnoDhnrbhnprigIvhnpThn5LhnorhnrzhnprigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI4MjYyMTk1ODAyNTgyMjU1MDIxIj4i4Z6A4Z624Z6a4oCL4Z6W4Z624Z6a4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6Y4Z634Z6T4oCL4Z6y4Z+S4Z6Z4oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4oCL4Z6R4Z+F4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRUb3BBY3Rpdml0eUluZm8iIG1zZ2lkPSIyNTM3OTIyMzExNDExNTQ2MDE2Ij4i4Z6Z4Z6A4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6F4Z+S4Z6F4Z674Z6U4Z+S4Z6U4Z6T4Z+S4Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0VG9wQWN0aXZpdHlJbmZvIiBtc2dpZD0iODE1MzY1MTQzNDE0NTEzMjUwNSI+IuGeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GeseGfkuGemeKAi+GemOGfkuGeheGetuGen+Gfi+GekeGfheKAi+GemeGegOKAi+GeluGfkOKAi+Gej+GfjOKAi+GemOGetuGek+KAi+Ger+GegOGeh+Gek+KAi+GeouGfhuGeluGeuOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGeheGfkuGeheGeu+GelOGfkuGelOGek+GfkuGekyDigIvhnpPhnrfhnoTigIvhnp/hn4HhnpzhnrbhnoDhnpjhn5LhnpjigIvhnpPhn4XigIvhnoDhn5LhnpPhnrvhnoTigIvhnpXhn5LhnpHhn4PigIvhnoHhnrbhnoThnpjhnrvhnoHigIvhnprhnpThnp/hn4vigIvhnqLhn4HhnoDhn5LhnprhnoThn4vigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3J1blNldEFjdGl2aXR5V2F0Y2hlciIgbXNnaWQ9Ijg5MjIzOTA5NDg2NzE4MjY1NiI+IuGej+GetuGemOGeiuGetuGekyDhnpPhnrfhnoTigIvhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnoDhnrbhnprigIvhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ydW5TZXRBY3Rpdml0eVdhdGNoZXIiIG1zZ2lkPSI2MDAzNjAzMTYyNTc4NTc3NDA2Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6P4Z624Z6Y4Z6K4Z624Z6TIOGek+Get+GehOKAi+GeluGet+Gek+Get+Gej+GfkuGemeKAi+GenOGet+GekuGeuOKAi+GeiuGfguGem+KAi+GelOGfkuGemuGeluGfkOGek+GfkuGekuKAi+GeheGetuGelOGfi+GeleGfkuGeiuGevuGemOKAi+KAi+Gen+GegOGemOGfkuGemOGel+GetuGeluGflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvigIvhnp/hnpjhn5LhnprhnpThnp/hnpjhn5Lhnprhnr3hnpvigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLigIvhnpHhnrbhn4bhnoTigIvhnp/hn5LhnprhnrvhnoThn5Qg4Z6f4Z634Z6R4Z+S4Z6S4Z634oCL4Z6T4Z+B4Z+H4oCL4Z6F4Z624Z+G4Z6U4Z624Z6F4Z+L4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6P4Z+C4oCL4Z6A4Z624Z6a4oCL4Z6i4Z6X4Z634Z6c4Z6M4Z+S4Z6NIOGemOGet+Gek+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+KAi+GelOGfkuGemuGevuKAi+GekuGemOGfkuGemOKAi+Gej+GetuKAi+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSIyNTc2MzMzNDM0ODkzNTMyNDc1Ij4i4Z6V4Z+S4Z6J4Z6+4oCL4Z6A4Z6J4Z+S4Z6F4Z6U4Z+L4oCL4oCL4Z6A4Z624Z6a4oCL4Z6U4Z+S4Z6a4Z6A4Z624Z6f4oCL4Z6U4Z624Z6T4oCL4Z6Z4Z6A4Z6F4Z+B4Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSI2NjIxOTAxMjE2MjA3OTMxMDg5Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z+S4Z6a4Z6A4Z624Z6f4oCL4Z6A4Z624Z6a4oCL4Z6H4Z684Z6T4oCL4Z6K4Z+G4Z6O4Z654Z6E4oCL4Z6Q4Z62IOGegOGeieGfkuGeheGelOGfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+Gem+Geu+GelOKAi+GflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpzhnrYg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4oCL4Z6U4Z6J4Z+S4Z6I4Z6U4Z+L4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6K4Z+C4Z6b4oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4oCL4Z6A4Z624Z6a4oCL4Z6V4Z+S4Z6f4Z+B4Z6E4oCL4Z+X4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RTbXNSZWNlaXZlZCIgbXNnaWQ9IjU2ODkwOTUwMDkwMzAzMzY1OTMiPiLhnpXhn5Lhnonhnr7igIvhnoDhnrbhnprigIvhnpThn5LhnprhnoDhnrbhnp/igIvhnpThnrbhnpPigIvhnpHhnpHhnr3hnpsgU01TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI0MTUyMDM3NzIwMDM0MzY1NDkyIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z+S4Z6a4Z6A4Z624Z6f4oCL4Z6A4Z624Z6a4oCL4Z6H4Z684Z6T4oCL4Z6K4Z+G4Z6O4Z654Z6E4oCL4oCL4Z6A4Z624Z6a4oCL4Z6R4Z6R4Z694Z6b4oCL4Z6f4Z624Z6a4oCLIFNNUyDhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6c4Z624oCL4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4oCL4Z6U4Z6T4Z+S4Z6b4Z+G4oCL4Z6f4Z624Z6aIFNNUyDhnoXhnrzhnpvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Jyb2FkY2FzdFdhcFB1c2giIG1zZ2lkPSIzMTQ1MzQ3NDEzMDI4NTgyMzcxIj4i4Z6V4Z+S4Z6J4Z6+4oCL4Z6A4Z624Z6a4oCL4Z6U4Z+S4Z6a4Z6A4Z624Z6f4oCL4Z6U4Z624Z6T4oCL4Z6R4Z6R4Z694Z6b4oCLIFdBUC1QVVNIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjQ3ODM0MDI1MjUwMzk0NDI3MjkiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThn5LhnprhnoDhnrbhnp/igIvhnoDhnrbhnprigIvhnofhnrzhnpPigIvhnorhn4bhno7hnrnhnoTigIvhnpDhnrbigIvhnpThnrbhnpPigIvhnpHhnpHhnr3hnpvigIvhnp/hnrbhnpogV0FQIFBVU0gg4Z+UIOGegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGfkuGemeGetuGelOGetuGekeKAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GenOGetuKAi+GeiuGevuGemOGfkuGelOGeuOKAi+KAi+GegOGfkuGem+GfguGehOKAi+KAi+GelOGehOGfkuGegOGetuGek+Gfi+GeiuGfg+KAi+Gen+GetuGemiBNTVMg4Z6s4oCL4Z6H4Z+G4Z6T4Z694Z6f4oCL4Z6Y4Z624Z6P4Z634Z6A4Z624oCL4Z6R4Z+G4Z6W4Z+Q4Z6a4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6O4Z624Z6Y4Z694Z6Z4oCL4Z6f4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z+X4oCL4oCL4oCL4Z6K4Z+E4Z6Z4oCL4Z6i4Z+S4Z6c4Z644oCL4Z6K4Z+C4Z6b4oCL4Z6A4Z+S4Z6b4Z+C4Z6E4Z6A4Z+S4Z6b4Z624Z6Z4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcm9jZXNzTGltaXQiIG1zZ2lkPSIyNDUxODczNjY0MzYzNjYyNjY2Ij4i4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6F4Z+G4Z6T4Z694Z6T4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6K4Z+C4Z6b4oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJvY2Vzc0xpbWl0IiBtc2dpZD0iNzMxODA2MTMxNDA0MDg3OTU0MiI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGet+Gek+Get+Gej+GfkuGemeKAi+GeheGfhuGek+GeveGek+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+GeouGej+Get+GelOGemuGemOGetuKAi+GeiuGfguGem+KAi+Gek+GeueGehOKAi+GeiuGfhuGejuGevuGemuGegOGetuGemuGflCDhnpjhnrfhnpPigIvhnoXhnrbhn4bhnpThnrbhnoXhn4vigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpLhnpjhn5Lhnpjhno/hnrbigIvhnpHhn4Hhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldEFsd2F5c0ZpbmlzaCIgbXNnaWQ9IjU1MDk1ODUwNzc5ODc5Njk2NSI+IuGelOGehOGfkuGegeGfhuKAi+KAi+GesuGfkuGemeKAi+GelOGet+GekeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GegOGfkuGek+Geu+GehOKAi+GeleGfkuGekeGfg+KAi+GegeGetuGehOKAi+GegOGfkuGemuGfhOGemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFsd2F5c0ZpbmlzaCIgbXNnaWQ9Ijc0NzEzMTA2NTI4Njg4NDE0OTkiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnpDhnrbigIvhno/hnr7igIvhnp/hnoDhnpjhn5LhnpjhnpfhnrbhnpbigIvigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnpThnonhn5LhnoXhnpThn4vigIvhnofhnrbigIvhnpPhnrfhnoXhn5LhnoXigIvhnorhnprhnrbhnpTigIvhno7hnrbigIvhnpbhnr3hnoDhnoLhn4HigIvigIvhnpHhn4XigIvhnoDhn5LhnpPhnrvhnoTigIvhnpXhn5LhnpHhn4PigIvhnoHhnrbhnoTigIvhnoDhn5Lhnprhn4Thnpnhn5Qg4Z6Y4Z634Z6T4oCL4Z6F4Z624Z+G4Z6U4Z624Z6F4Z+L4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6S4Z6Y4Z+S4Z6Y4Z6P4Z624oCL4Z6R4Z+B4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iYXR0ZXJ5U3RhdHMiIG1zZ2lkPSIyNzg5NjEwNjczNTE0MTAzMzY0Ij4i4Z6i4Z624Z6T4oCL4Z6f4Z+S4Z6Q4Z634Z6P4Z634oCL4Z6Q4Z+S4Z6YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmF0dGVyeVN0YXRzIiBtc2dpZD0iNTg5NzM0NjU4Mjg4MjkxNTExNCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeouGetuGek+KAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GelOGfkuGemuGevuKAi+GekOGfkuGemOKAi+GegOGemOGfkuGemuGet+Gej+KAi+GekeGetuGelOKAi+GelOGeheGfkuGeheGeu+GelOGfkuGelOGek+GfkuGek+GflCDhnqLhnrbhnoXigIvhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnp/hn5Lhnpzhn4LhnoThnpnhnpvhn4vigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnpvhnpjhn5LhnqLhnrfhno/igIvhnqLhn4bhnpbhnrjigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnorhn4LhnpvigIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr7hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUJhdHRlcnlTdGF0cyIgbXNnaWQ9IjM3MTk2ODk3NjQ1MzYzNzk1NTciPiLhnoDhn4LigIvhnp/hn5LhnpDhnrfhno/hnrfigIvhnpDhn5LhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVCYXR0ZXJ5U3RhdHMiIG1zZ2lkPSI2ODYyODE3ODU3MTc4MDI1MDAyIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+C4oCL4Z6f4Z+S4Z6Q4Z634Z6P4Z634oCL4Z6Q4Z+S4Z6Y4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6U4Z+S4Z6a4Z6Y4Z684Z6b4Z+UIOGemOGet+Gek+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GelOGfkuGemuGevuKAi+GeiuGfhOGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuKAi+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0QXBwT3BzU3RhdHMiIG1zZ2lkPSIxNTA4Nzc5Njg3NDM2NTg1NzQ0Ij4i4Z6R4Z+F4oCL4Z6Z4Z6A4oCL4Z6f4Z+S4Z6Q4Z634Z6P4Z634oCL4Z6U4Z+S4Z6a4Z6P4Z634Z6U4Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QXBwT3BzU3RhdHMiIG1zZ2lkPSI2MjQzODg3MDQxNTc3OTEyODc3Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6R4Z+F4oCL4Z6Z4Z6A4oCL4Z6f4Z+S4Z6Q4Z634Z6P4Z634oCL4Z6U4Z+S4Z6a4Z6P4Z634Z6U4Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z624Z6T4oCL4Z6U4Z+S4Z6a4Z6Y4Z684Z6b4Z+UIOGemOGet+Gek+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GelOGfkuGemuGevuKAi+GeiuGfhOGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlQXBwT3BzU3RhdHMiIG1zZ2lkPSI4ODI5MDk3MzczODUxNTIxNTA1Ij4i4Z6A4Z+C4oCL4Z6f4Z+S4Z6Q4Z634Z6P4Z634oCL4Z6U4Z+S4Z6a4Z6P4Z634Z6U4Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4oCL4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXBkYXRlQXBwT3BzU3RhdHMiIG1zZ2lkPSI1MDc4NDU5NjU5NDQwMzQ4MyI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GegOGfguKAi+Gen+GfkuGekOGet+Gej+Get+KAi+GelOGfkuGemuGej+Get+GelOGej+GfkuGej+Get+GegOGetuGemuKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGetuGek+KAi+GelOGfkuGemuGemOGevOGem+GflCDhnpjhnrfhnpPigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnpThn5Lhnprhnr7igIvhnorhn4ThnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpLhnpjhn5Lhnpjhno/hnrbhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JhY2t1cCIgbXNnaWQ9IjQ3MDAxMzAyMjg2NTQ1MzkyMCI+IuGeluGet+Gek+Get+Gej+GfkuGemeKAi+GegOGetuGemuKAi+Gen+GfkuGeiuGetuGemiDhnpPhnrfhnoTigIvhnpThnpjhn5LhnprhnrvhnoTigIvhnpHhnrvhnoDigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iYWNrdXAiIG1zZ2lkPSI2OTEyMjMwNTI1MTQwNTg5ODkxIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z634Z6T4Z634Z6P4Z+S4Z6Z4oCL4oCL4Z6Z4Z6T4Z+S4Z6P4Z6A4Z624Z6a4oCL4oCL4Z6U4Z6Y4Z+S4Z6a4Z674Z6E4Z6R4Z674Z6A4oCLIOGek+Get+GehOKAi+Gen+GfkuGeiuGetuGemuKAi+GeoeGevuGehOGenOGet+GeieKAi+GemuGelOGen+Gfi+KAi+GelOGfkuGemuGeluGfkOGek+GfkuGekuGflCDhnpjhnrfhnpPigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnpThn5Lhnprhnr7igIvhnorhn4ThnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpLhnpjhn5Lhnpjhno/hnrbigIvhnpHhn4Hhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpcm1fZnVsbF9iYWNrdXAiIG1zZ2lkPSI1NTU3MDcxMzI1ODA0NDY5MTAyIj4i4Z6U4Z6J4Z+S4Z6H4Z624Z6A4Z+L4oCL4oCL4Z6U4Z+S4Z6a4Z6P4Z634Z6U4Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4oCL4Z6f4Z+S4Z6K4Z624Z6a4oCL4Z6h4Z6+4Z6E4Z6c4Z634Z6JIOGerOKAi+GelOGemOGfkuGemuGeu+GehOKAi+GekeGeu+GegOKAi+GeluGfgeGeieGem+GfgeGeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpcm1fZnVsbF9iYWNrdXAiIG1zZ2lkPSIxNzQ4NzYyMTcxNjM3Njk5NTYyIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6F4Z+G4Z6O4Z674Z6F4oCL4Z6U4Z+S4Z6a4Z6R4Z624Z6A4Z+L4oCL4oCL4Z6U4Z6J4Z+S4Z6H4Z624Z6A4Z+L4oCL4Z6A4Z624Z6a4oCL4Z6U4Z6Y4Z+S4Z6a4Z674Z6E4oCL4Z6R4Z674Z6A4oCL4Z6W4Z+B4Z6J4Z6b4Z+B4Z6J4Z+UIOGemOGet+Gek+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GelOGfkuGemuGevuKAi+GeiuGfhOGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuKAi+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW50ZXJuYWxTeXN0ZW1XaW5kb3ciIG1zZ2lkPSIyMTQ4NTYzNjI4MTQwMTkzMjMxIj4i4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6U4Z6E4Z+S4Z6i4Z694Z6F4oCL4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6f4Z634Z6R4Z+S4Z6S4Z63Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJuYWxTeXN0ZW1XaW5kb3ciIG1zZ2lkPSI3NDU4Mzg3NzU5NDYxNDY2Mzk3Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6E4Z+S4Z6A4Z6+4Z6P4oCL4Z6U4Z6E4Z+S4Z6i4Z694Z6F4oCL4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6K4Z+E4Z6Z4oCL4Z6F4Z+G4Z6O4Z674Z6F4oCL4Z6U4Z+S4Z6a4Z6R4Z624Z6A4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6T4Z674Z6E4Z+UIOGemOGet+Gek+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GelOGfkuGemuGevuKAi+GeiuGfhOGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuKAi+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3lzdGVtQWxlcnRXaW5kb3ciIG1zZ2lkPSIzNTQzMzQ3OTgwODM5NTE4NjEzIj4i4Z6C4Z684Z6a4oCL4Z6b4Z6+4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3lzdGVtQWxlcnRXaW5kb3ciIG1zZ2lkPSI4NTg0Njc4MzgxOTcyODIwMTE4Ij4i4Z6y4Z+S4Z6Z4oCL4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6C4Z684Z6a4oCL4Z6b4Z6+4oCL4Z6V4Z+S4Z6T4Z+C4Z6A4oCL4Z6B4Z624Z6E4oCL4Z6b4Z6+4oCL4Z6T4Z+D4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+XIOGerOKAi+Geh+GetuKAi+GeleGfkuGek+GfguGegOKAi+Gek+Gfg+KAi+GeheGfhuGejuGeu+GeheKAi+GelOGfkuGemuGekeGetuGegOGfi+GflCDhnpzhnrbigIvhnqLhnrbhnoXigIvhnprhn4bhnoHhnrbhnpPigIvhnoDhnrbhnprigIvhnpThn5Lhnprhnr7igIvhnoXhn4bhno7hnrvhnoXigIvhnpThn5LhnprhnpHhnrbhnoDhn4vigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvigIvhnoDhn5LhnpPhnrvhnoTigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhno7hnrbhnpjhnr3hnpkg4Z6s4oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6i4Z+S4Z6c4Z644oCL4Z6K4Z+C4Z6b4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6C4Z634Z6P4oCL4Z6Q4Z624oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6Y4Z6+4Z6b4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9IjI4MDUxMDMyNDExNTM5MDcxNzQiPiLhnoDhn4LigIvhnpvhn5LhnpThnr/hnpPigIvhnoXhnpvhnpPhnrbigIvhnp/hnoDhnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9Ijc2OTAwNjM0Mjg5MjQzNDM1NzEiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThn5LhnorhnrzhnprigIvhnpvhn5LhnpThnr/hnpPigIvhnoXhnpvhnpPhnrbigIvhnp/hnoDhnpsgKOGeheGem+Gek+GetuKAi+Gem+Gev+Gek+KAiyDhnqzigIvhnpnhnrrhno8pIOGek+GfheKAi+GeluGfgeGem+GejuGetuKAi+GemOGeveGemeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQXBwVG9rZW5zIiBtc2dpZD0iMTI4NjUwNTcxNzA1MDEyMTM3MCI+IuGeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+Gek+Get+GemOGet+Gej+GfkuGej+Gen+GeieGfkuGeieGetuKAi+GegOGemOGfkuGemOGenOGet+GekuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFwcFRva2VucyIgbXNnaWQ9IjgwNDM0MzE3MTMwMTQzOTU2NzEiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThnoThn5LhnoDhnr7hno8g4Z6T4Z634Z6E4oCL4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6E4oCL4Z6T4Z634Z6Y4Z634Z6P4Z+S4Z6P4Z6f4Z6J4Z+S4Z6J4Z624oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+L4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6W4Z694Z6A4oCL4Z6c4Z62IOGeiuGfhOGemeKAi+GehuGfkuGem+GehOKAi+GegOGetuGej+Gfi+KAi+Gem+GfhuGeiuGetuGelOGfiyBaIOGekuGemOGfkuGemOGej+GetuKAi+GemuGelOGen+Gfi+KAi+GenOGetuGflCDhnpjhnrfhnpPigIvhnoLhnr3hnprigIvigIvhnoXhnrbhn4bhnpThnrbhnoXhn4vigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpLhnpjhn5Lhnpjhno/hnrbigIvhnpHhn4Hhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZyZWV6ZVNjcmVlbiIgbXNnaWQ9IjQ3MDgxODExODQ0NDE4ODAxNzUiPiLhnpThnoThn5LhnoDigIvhnoDigIvigIvhnqLhn4HhnoDhn5LhnprhnoThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mcmVlemVTY3JlZW4iIG1zZ2lkPSI4NTU4OTIzNzg5MjIyNjcwMDY0Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6E4Z+S4Z6A4Z6A4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4oCL4Z6H4Z624oCL4Z6U4Z6O4Z+S4Z6K4Z+E4Z+H4Z6i4Z624Z6f4Z6T4Z+S4Z6T4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4oCL4Z6A4Z624Z6a4oCL4oCL4Z6V4Z+S4Z6b4Z624Z6f4Z+L4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6W4Z+B4Z6J4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbmplY3RFdmVudHMiIG1zZ2lkPSIxMzc4NzQ2NTg0MDIzNTg2NjAwIj4i4Z6F4Z674Z6F4oCL4Z6C4Z+S4Z6a4Z624Z6U4Z+L4Z6F4Z674Z6FIOGek+Get+GehOKAi+GeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+GelOGfiuGevOGej+Geu+GehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA2MzUyNTY1NTk5OTY4NjMyIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6K4Z6b4Z+L4oCL4Z6W4Z+S4Z6a4Z654Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4Z6O4Z+N4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+L4oCL4Z6B4Z+S4Z6b4Z694Z6T4oCLKOGeheGeu+GeheKAi+GeguGfkuGemuGetuGelOGfi+GeheGeu+GehSDhn5Thnpvhn5QpIOGekeGfheKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGen+GfgeGehOGflOKAiyDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpzhnrbigIvhnorhnr7hnpjhn5LhnpThnrjigIvhnoLhn5LhnprhnpThn4vhnoLhn5LhnprhnoTigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4fhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbmplY3RFdmVudHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NTMxMjgwNTc1NzIzMjYyNTMiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnorhnpvhn4vigIvhnpbhn5Lhnprhnrnhno/hn5Lhno/hnrfhnoDhnrbhnprhno7hn43igIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpXhn5LhnpHhnrbhnpvhn4vigIvhnoHhn5Lhnpvhnr3hnpPigIvhnprhnpThnp/hn4vigIvhnpzhnrYgKOGeheGeu+GeheKAi+GeguGfkuGemuGetuGelOGfi+KAi+GeheGeu+GehSDhn5Thnpvhn5QpIOGeheGfhuGeluGfhOGfh+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGen+GfgeGehOGfl+GflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpzhnrbigIvhnorhnr7hnpjhn5LhnpThnrjigIvhnoLhn5LhnprhnpThn4vhnoLhn5LhnprhnoTigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRJbnB1dFN0YXRlIiBtc2dpZD0iNDY5NDI4OTAwMDQxMjQ5MjM0Ij4i4Z6A4Z6P4Z+L4Z6P4Z+S4Z6a4Z624oCL4Z6T4Z684Z6c4oCL4Z6i4Z+S4Z6c4Z644oCL4Z6K4Z+C4Z6b4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6c4Z624Z6Z4oCLIOGek+Get+GehOKAi+Gen+GegOGemOGfkuGemOGel+GetuGeluKAi+GeiuGfguGem+KAi+GeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GemeGegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRJbnB1dFN0YXRlIiBtc2dpZD0iODM4Nzc1NDkwMTY4ODcyODA0MyI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GemOGevuGem+KAi+GeguGfkuGemuGetuGelOGfi+KAi+GeheGeu+GeheKAi+GeiuGfguGem+KAi+GeouGfkuGek+GegOKAi+GeheGeu+GeheKAi+GeluGfgeGem+KAi+GemOGetuGek+KAi+GeouGek+GfkuGej+GemuGegOGemOGfkuGemOKAi+Geh+GetuKAi+GemOGeveGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGen+GfgeGehCAo4Z6K4Z684Z6F4Z6H4Z62IOGelOGeieGfkuGeheGevOGem+KAi+GeluGetuGegOGfkuGemeKAi+Gen+GemOGfkuGehOGetuGej+Gfiynhn5Qg4Z6Y4Z634Z6T4oCL4Z6C4Z694Z6a4oCL4Z6F4Z624Z+G4Z6U4Z624Z6F4Z+L4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6S4Z6Y4Z+S4Z6Y4Z6P4Z624oCL4Z6R4Z+B4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kSW5wdXRNZXRob2QiIG1zZ2lkPSIzMzYwMDY0NjIwMjMwNTE1Nzc2Ij4i4Z6F4Z6E4oCL4Z6R4Z+F4oCL4Z6c4Z634Z6S4Z644Z6f4Z624Z6f4Z+S4Z6P4Z+S4Z6a4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6bIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZElucHV0TWV0aG9kIiBtc2dpZD0iMzI1MDQ0MDMyMjgwNzI4NjMzMSI+IuGesuGfkuGemeKAi+GemOGfkuGeheGetuGen+Gfi+KAi+GeheGehOKAi+GeheGfhuGejuGeu+GeheKAi+GelOGfkuGemuGekeGetuGegOGfi+KAi+GegOGemOGfkuGemuGet+Gej+KAi+GegOGfhuGeluGevOGem+KAi+Gek+Gfg+KAi+GenOGet+GekuGeuOKAi+Gen+GetuGen+GfkuGej+GfkuGemuKAi+GelOGeieGfkuGeheGevOGem+GflCDhnpjhnrfhnpPigIvhnoLhnr3hnprigIvigIvhnoXhnrbhn4bhnpThnrbhnoXhn4vigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpLhnpjhn5Lhnpjhno/hnrbigIvhnpHhn4Hhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRBY2Nlc3NpYmlsaXR5U2VydmljZSIgbXNnaWQ9IjUzNTc3MzM5NDI1NTYwMzE1OTMiPiLhnoXhnoTigIvhnp/hn4HhnpzhnrbigIvhnoDhnpjhn5LhnpjigIvhnpfhnrbhnpbigIvhnpjhnpLhn5Lhnpnhn4ThnpThnrbhnpnigIvhnoThnrbhnpnhnp/hn5Lhnprhnr3hnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kQWNjZXNzaWJpbGl0eVNlcnZpY2UiIG1zZ2lkPSI3MDM0NjE1OTI4NjA5MzMxMzY4Ij4i4Z6y4Z+S4Z6Z4oCL4oCL4Z6Y4Z+S4Z6F4Z624Z6f4Z+L4oCL4Z6F4Z6E4oCL4Z6F4Z+G4Z6O4Z674Z6F4oCL4Z6U4Z+S4Z6a4Z6R4Z624Z6A4Z+L4oCL4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4Z6A4Z+G4Z6W4Z684Z6b4oCL4Z6T4Z+D4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6Y4oCL4Z6X4Z624Z6W4oCL4Z6E4Z624Z6Z4Z6f4Z+S4Z6a4Z694Z6b4Z+UIOGemOGet+Gek+KAi+GeguGeveGemuKAi+GeheGetuGfhuGelOGetuGeheGfi+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuKAi+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFByaW50U2VydmljZSIgbXNnaWQ9Ijg0NjI4MTUxNzk1NzI3NDg3NjEiPiLhnoXhnoTigIvhnp/hn4HhnpzhnrbhnoDhnpjhn5LhnpjigIvigIvhnpThn4Thn4fhnpbhnrvhnpjhn5LhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUHJpbnRTZXJ2aWNlIiBtc2dpZD0iNzk2MDA2NzYyMzIwOTExMTEzNSI+IuGesuGfkuGemeKAi+GemOGfkuGeheGetuGen+Gfi+KAi+GeheGehOKAi+GeheGfhuGejuGeu+GeheKAi+GelOGfkuGemuGekeGetuGegOGfi+KAi+GegOGemOGfkuGemuGet+Gej+KAi+GegOGfhuGeluGevOGem+KAi+Gek+Gfg+KAi+Gen+GfgeGenOGetuGegOGemOGfkuGemOKAi+GekuGetuGej+Geu+KAi+GegOGfkuGemuGetuGeoOGfkuGenOGet+GegOGflCDhnpjhnrfhnpPigIvhnoLhnr3hnprigIvigIvhnoXhnrbhn4bhnpThnrbhnoXhn4vigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpLhnpjhn5Lhnpjhno/hnrbigIvhnpHhn4Hhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0FsbFByaW50Sm9icyIgbXNnaWQ9IjExMjA3OTI0Njg0NjU3MTExNTkiPiLhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvigIvhnoDhnrbhnprhnoThnrbhnprigIvhnpThn4Thn4fhnpbhnrvhnpjhn5LhnpbigIvhnpHhnrbhn4bhnoThnqLhnp/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NBbGxQcmludEpvYnMiIG1zZ2lkPSIyOTc4MTg1MzExMDQxODY0NzYyIj4i4Z6i4Z6T4Z674Z6J4Z+S4Z6J4Z624Z6P4oCL4Z6y4Z+S4Z6Z4oCL4Z6Y4Z+S4Z6F4Z624Z6f4Z+L4oCL4Z6i4Z624Z6F4oCL4Z6U4Z+E4Z+H4Z6W4Z674Z6Y4Z+S4Z6W4oCL4Z6A4Z624Z6a4Z6E4Z624Z6a4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6U4Z6E4Z+S4Z6A4Z6+4Z6P4oCL4Z6K4Z+E4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+UIOGemOGet+Gek+KAi+GeguGeveGemuKAi+GeheGetuGfhuGelOGetuGeheGfi+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuKAi+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSIyNzUyNzMxMzAwNDE5NDEwNzI0Ij4i4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6H4Z624Z6Y4Z694Z6Z4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6YIE5GQyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iNjEyMDY0NzYyOTE3NDA2Njg2MiI+IuGeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GesuGfkuGemeKAi+KAi+Gel+GfkuGeh+GetuGelOGfi+KAi+KAi+KAi+GelOGeieGfkuGeh+GeuOKAi+Geh+GetuGemOGeveGemeKAi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeiuGfguGem+KAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+Gej+GfkuGemuGetuGelOGfi+KAi+Gej+GetuGemOKAi+KAi+GegOGetuGejyBORkMg4Z+UIOGemOGet+Gek+KAi+GeguGeveGemuKAi+Gej+GfkuGemuGevOGenOKAi+KAi+GegOGetuGemuKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuKAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iNzM1ODM3ODQwMTkxNTI4NzkzOCI+IuGeheGehOKAi+Gen+GfgeGenOGetuKAi+GegOGemOGfkuGemOKAi+GeouGej+GfkuGekOGelOGekSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRUZXh0U2VydmljZSIgbXNnaWQ9IjgxNTE5Njg5MTA5NzM5OTg2NzAiPiLhnrLhn5LhnpnigIvhnpjhn5LhnoXhnrbhnp/hn4vigIvhnoXhnoTigIvhnoXhn4bhno7hnrvhnoXigIvhnpThn5LhnprhnpHhnrbhnoDhn4vigIvhnoDhnpjhn5Lhnprhnrfhno/igIvhnoDhn4bhnpbhnrzhnpvigIvhnpPhn4PigIvhnp/hn4HhnpzhnrbhnoDhnpjhn5LhnpjigIvhnqLhno/hn5LhnpDhnpThnpEgKOGepy4gU3BlbGxDaGVja2VyU2VydmljZSkg4Z+UIOGemOGet+Gek+KAi+GeguGeveGemuKAi+GelOGfkuGemuGevuKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuKAi+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSI0NzA4NTk2MDIxMTYxNDczMjU1Ij4i4Z6F4Z6E4oCL4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6YIFZQTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRWcG5TZXJ2aWNlIiBtc2dpZD0iMjA2Nzg0NTU2NDU4MTY5MzkwNSI+IuGesuGfkuGemeKAi+GemOGfkuGeheGetuGen+Gfi+KAi+GeheGehOKAi+GeheGfhuGejuGeu+GeheKAi+GelOGfkuGemuGekeGetuGegOGfi+KAi+GegOGemOGfkuGemuGet+Gej+KAi+GegOGfhuGeluGevOGem+KAi+Gek+Gfg+KAi+Gen+GfgeGenOGetuGegOGemOGfkuGemCBWcG4g4Z+U4oCLIOGemOGet+Gek+KAi+GeguGeveGemuKAi+GeheGetuGfhuGelOGetuGeheGfi+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuKAi+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFdhbGxwYXBlciIgbXNnaWQ9Ijg3MTY0MDAyNzk5Mzc4NTY0NjIiPiLhnoXhnoTigIvhnpHhn4XigIvhnpXhn5LhnpHhnrbhn4bhnoTigIvhnprhnrzhnpThnpfhnrbhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kV2FsbHBhcGVyIiBtc2dpZD0iNzEwODQyODY5MjU5NTQ5MTY2OCI+IuGesuGfkuGemeKAi+GemOGfkuGeheGetuGen+Gfi+KAi+GeheGehOKAi+GeheGfhuGejuGeu+GeheGelOGfkuGemuGekeGetuGegOGfi+KAi+GegOGemOGfkuGemuGet+Gej+KAi+GegOGfhuGeluGevOGem+KAi+Gek+Gfg+KAi+GeleGfkuGekeGetuGfhuGehOKAi+GemuGevOGelOGel+GetuGeluGflCDhnpjhnrfhnpPigIvhnoLhnr3hnprigIvhnoXhnrbhn4bhnpThnrbhnoXhn4vigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpLhnpjhn5Lhnpjhno/hnrbigIvhnpHhn4Hhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjU2OTc5ODc3NTk4OTczNjcwOTkiPiLhnoXhnoTigIvhnp/hn4HhnpzhnrbigIvhnoDhnpjhn5LhnpjigIvhnpLhnrbhno/hnrvigIvhnoDhn5LhnprhnrbhnqDhn5LhnpzhnrfhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUmVtb3RlVmlld3MiIG1zZ2lkPSI0NzE3OTg3ODEwMTM3NjkyNTcyIj4i4Z6y4Z+S4Z6Z4oCL4Z6Y4Z+S4Z6F4Z624Z6f4Z+L4oCL4Z6F4Z6E4oCL4Z6F4Z+G4Z6O4Z674Z6F4oCL4Z6U4Z+S4Z6a4Z6R4Z624Z6A4Z+L4oCL4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4Z6A4Z+G4Z6W4Z684Z6b4oCL4Z6T4Z+D4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6Y4oCL4Z6S4Z624Z6P4Z674oCL4Z6A4Z+S4Z6a4Z624Z6g4Z+S4Z6c4Z634Z6A4Z+UIOGemOGet+Gek+KAi+GeguGeveGemuKAi+KAi+GeheGetuGfhuGelOGetuGeheGfi+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuKAi+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZERldmljZUFkbWluIiBtc2dpZD0iODcwNDk4NjE2MzcxMTQ1NTAxMCI+IuGekeGetuGegOGfi+GekeGehOKAi+Geh+GetuKAi+GemOGeveGemeKAi+GeouGfkuGek+GegOGeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+Gep+GelOGegOGemuGejuGfjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9IjU2OTcxNTQxOTU0MzkwNzkzMCI+IuGesuGfkuGemeKAi+GemOGfkuGeheGetuGen+Gfi+KAi+GeleGfkuGeieGevuKAi+GeguGfhOGem+GelOGfhuGejuGehOKAi+KAi+GekeGfheKAi+GeouGfkuGek+GegOKAi+GeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+Gep+GelOGegOGemuGejuGfjeGflCDhnpjhnrfhnpPigIvhnoLhnr3hnprigIvhnoXhnrbhn4bhnpThnrbhnoXhn4vigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpLhnpjhn5Lhnpjhno/hnrbigIvhnpHhn4Hhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZURldmljZUFkbWlucyIgbXNnaWQ9IjQyNDg4Mjg5MDAwNDU4MDg3MjIiPiLhnpThnpPhn5LhnpDhn4LhnpjigIsg4Z6s4oCL4Z6b4Z674Z6U4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6E4oCL4oCL4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNTAyNTYwODE2NzcwOTk0MjQ4NSI+IuGeouGek+Geu+GeieGfkuGeieGetuGej+KAi+KAi+KAi+GesuGfkuGemeKAi+GemOGfkuGeheGetuGen+Gfi+KAi+KAi+KAi+GelOGek+GfkuGekOGfguGemOKAiyDhnqzigIvhnpvhnrvhnpTigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoLhn5LhnprhnpThn4vhnoLhn5LhnprhnoTigIvhnqfhnpThnoDhnprhno7hn43igIvhnp/hnoDhnpjhn5LhnpjigIvhnoXhn4HhnonigIvhn5Qg4Z6Y4Z634Z6T4oCL4Z6C4Z694Z6a4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4oCL4Z6S4Z6Y4Z+S4Z6Y4Z6P4Z624oCL4Z6R4Z+B4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRPcmllbnRhdGlvbiIgbXNnaWQ9IjMzNjU5NDc3MTcxNjM4NjY4NDQiPiLhnpThn5LhnorhnrzhnprigIvhnpHhnrfhnp/igIvhnqLhn4HhnoDhn5LhnprhnoThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRPcmllbnRhdGlvbiIgbXNnaWQ9IjMwNDYxMjY2MTkzMTY2NzE0NzYiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThn5LhnorhnrzhnprigIvhnoDhnrbhnprigIvhnpThnoThn5LhnpzhnrfhnpvigIvhnqLhn4HhnoDhn5LhnprhnoThn4vigIvhnpPhn4XigIvhnpbhn4HhnpvigIvhno7hnrbigIvhnpjhnr3hnpnhn5Qg4Z6Y4Z634Z6T4oCL4Z6F4Z624Z+G4Z6U4Z624Z6F4Z+L4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6S4Z6Y4Z+S4Z6Y4Z6P4Z624oCL4Z6R4Z+B4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQb2ludGVyU3BlZWQiIG1zZ2lkPSI5MTc1MzcxNjEzMzIyNTYyOTM0Ij4i4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6b4Z+S4Z6U4Z6/4Z6T4oCL4Z6R4Z+S4Z6a4Z6T4Z634Z6FIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UG9pbnRlclNwZWVkIiBtc2dpZD0iNjg2NjU2MzIzNDI3NDEwNDIzMyI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGfkuGeiuGevOGemuKAi+Gem+GfkuGelOGev+Gek+KAi+GekeGfkuGemuGek+Get+GeheKAi+KAi+GegOGejuGfkuGeiuGeu+GemiDhnqzigIvhnpThnpPhn5LhnpHhn4figIvhnpThn4nhn4figIvigIvigIvhnpPhn4XigIvhnpbhn4HhnpvigIvhno7hnrbigIvhnpjhnr3hnpnhn5Qg4Z6Y4Z634Z6T4oCL4Z6C4Z694Z6a4oCL4Z6F4Z624Z+G4Z6U4Z624Z6F4Z+L4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6S4Z6Y4Z+S4Z6Y4Z6P4Z624oCL4Z6R4Z+B4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9IjQ3Nzg3MzE3MDM2MDA5MDkzNDAiPiLhnpThn5LhnorhnrzhnprigIvhnpThn5LhnpvhnoThn4vigIvhnoDhn5LhnorhnrbhnprigIvhnoXhnrvhnoUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9Ijg0ODAwMTY3NzExMzQxNzU4NzkiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThn5LhnorhnrzhnprigIvhnpThn5LhnpvhnoThn4vigIvhnoDhn5LhnorhnrbhnprigIvhnoXhnrvhnoXhn5Qg4Z6Y4Z634Z6T4oCL4Z6C4Z694Z6a4oCL4Z6F4Z624Z+G4Z6U4Z624Z6F4Z+L4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6S4Z6Y4Z+S4Z6Y4Z6P4Z624oCL4Z6R4Z+B4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zaWduYWxQZXJzaXN0ZW50UHJvY2Vzc2VzIiBtc2dpZD0iNDUzOTAwMjk5MTk0NzM3NjY1OSI+IuGeleGfkuGeieGevuKAi+Gen+GeieGfkuGeieGetuKAi+Gem+GeuOGek+Geu+GeheKAi+GekeGfheKAi+GegOGemOGfkuGemOGenOGet+GekuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0ODk2OTkyMDc5MTgyNjQ5MTQxIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6f4Z+S4Z6T4Z6+4oCL4oCL4Z6f4Z6J4Z+S4Z6J4Z624oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6V4Z+S4Z6K4Z6b4Z+L4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6V4Z+S4Z6J4Z6+4oCL4Z6R4Z+F4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6f4Z+S4Z6Q4Z634Z6P4Z6f4Z+S4Z6Q4Z+B4Z6a4oCL4oCL4Z6R4Z624Z+G4Z6E4oCL4Z6i4Z6f4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJzaXN0ZW50QWN0aXZpdHkiIG1zZ2lkPSI4ODQxMTEzNjI3OTU1NTYzOTM4Ij4i4Z6S4Z+S4Z6c4Z6+4oCL4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6H4Z624oCL4Z6T4Z634Z6F4Z+S4Z6FIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyc2lzdGVudEFjdGl2aXR5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTI1MTg5MjcyMzI5MDg2MTM3Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6S4Z+S4Z6c4Z6+4Z6H4Z624oCL4Z6V4Z+S4Z6T4Z+C4Z6A4oCL4oCL4Z6f4Z+S4Z6Q4Z634Z6P4Z6f4Z+S4Z6Q4Z+B4Z6a4oCL4Z6K4Z+E4Z6Z4oCL4Z6B4Z+S4Z6b4Z694Z6T4oCL4Z6v4Z6E4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6i4Z6E4Z+S4Z6C4oCL4Z6F4Z6E4Z6F4Z624Z+G4Z+UIOGenOGetuKAi+GeouGetuGeheKAi+GegOGfhuGejuGej+Gfi+KAi+GeouGehOGfkuGeguKAi+GeheGehOGeheGetuGfhuKAi+GeiuGfguGem+KAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GelOGetuGek+KAi+GeheGfhuGeluGfhOGfh+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGen+GfgeGehOGfl+KAiyDhnorhn4ThnpnigIvhnpLhn5Lhnpzhnr7hnrLhn5LhnpnigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4figIvhnpnhnrrhno/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0Mzg0NzYwMDQ3NTA4Mjc4MjcyIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64IOGekuGfkuGenOGevuGeh+GetuKAi+GeleGfkuGek+GfguGegOKAi+GeouGeheGet+Gek+GfkuGej+GfkuGemuGfg+GemeGfjeKAi+Gek+Gfg+KAi+GegeGfkuGem+GeveGek+KAi+GegOGfkuGek+Geu+GehOKAi+GeouGehOGfkuGeguKAi+GeheGehOGeheGetuGfhuGflCDhnpzhnrbigIvhnqLhnrbhnoXigIvhnoDhnpjhn5Lhnprhnrfhno/igIvhnqLhnoThn5LhnoLigIvhnoXhnoThnoXhnrbhn4bigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpThnrbhnpPigIsg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6S4Z+S4Z6c4Z6+4oCL4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4oCL4Z6S4Z+S4Z6c4Z6+4oCL4Z6y4Z+S4Z6Z4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6Z4Z664Z6P4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZWxldGVQYWNrYWdlcyIgbXNnaWQ9IjE4NDM4NTEyOTUzNzcwNTkzOCI+IuGem+Geu+GelOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RlbGV0ZVBhY2thZ2VzIiBtc2dpZD0iNzQxMTQ4MDI3NTE2NzIwNTA4MSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gem+Geu+GelOKAi+GegOGeieGfkuGeheGelOGfiyBBbmRyb2lkIOGflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpzhnrYg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6b4Z674Z6U4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6f4Z+G4Z6B4Z624Z6T4Z+L4oCL4Z+X4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jbGVhckFwcFVzZXJEYXRhIiBtc2dpZD0iMjc0MTA5MTkxODQ1ODQyNzU2Ij4i4Z6b4Z674Z6U4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6a4Z6U4Z6f4Z+L4oCL4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBVc2VyRGF0YSIgbXNnaWQ9IjQ2MjUzMjM2ODQxMjU0NTk0ODgiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnp/hnpjhn5LhnqLhnrbhno/igIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr7hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RlbGV0ZUNhY2hlRmlsZXMiIG1zZ2lkPSIzMTI4NjY1NTcxODM3NDA4Njc1Ij4i4Z6b4Z674Z6U4oCL4Z6D4Z+S4Z6b4Z624Z+G4Z6E4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+XIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGVsZXRlQ2FjaGVGaWxlcyIgbXNnaWQ9IjM4MTI5OTg1OTkwMDY3MzAxOTYiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpvhnrvhnpTigIvhnq/hnoDhnp/hnrbhnprigIvhnoPhn5Lhnpvhnrbhn4bhnoTigIvhnp/hnpjhn5LhnoThnrbhno/hn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFBhY2thZ2VTaXplIiBtc2dpZD0iNzQ3MjkyMTc2ODM1Nzk4MTk4NiI+IuGenOGetuGen+Gfi+KAi+GekeGfhuGeoOGfhuKAi+GegOGetuGemuKAi+GeleGfkuGekeGeu+GegOKAi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFBhY2thZ2VTaXplIiBtc2dpZD0iMzkyMTA2ODE1NDQyMDczODI5NiI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekeGfheKAi+GemeGegOKAi+GegOGevOGeiiDhnpHhnrfhnpPhn5LhnpPhnpPhn5Dhnpkg4Z6T4Z634Z6E4oCL4Z6R4Z+G4Z6g4Z+G4oCL4Z6D4Z+S4Z6b4Z624Z+G4Z6E4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6c4Z62Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnN0YWxsUGFja2FnZXMiIG1zZ2lkPSIyMTk5MTI4NDgyODIwMzA2OTI0Ij4i4Z6K4Z+G4Z6h4Z6+4Z6E4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6K4Z+E4Z6Z4oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iNTYyODUzMDk3MjU0ODA3MTI4NCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeiuGfhuGeoeGevuGehOKAi+GegOGeieGfkuGeheGelOGfi+KAiyBBbmRyb2lkIOGeiuGfguGem+KAi+GelOGetuGek+KAi+GekuGfkuGenOGevuKAi+GelOGeheGfkuGeheGeu+GelOGfkuGelOGek+GfkuGekyDhnqzigIvhnpDhn5Lhnpjhnrjhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6c4Z62IOGeiuGevuGemOGfkuGelOGeuOKAi+GelOGek+GfkuGekOGfguGemOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeiuGfguGem+KAi+GemOGetuGek+KAi+Gen+Get+GekeGfkuGekuGet+KAi+GeiuGfhOGemeKAi+GelOGfhuGeluGetuGek+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2xlYXJBcHBDYWNoZSIgbXNnaWQ9Ijc0ODcyNzkzOTE3MjM1MjY4MTUiPiLhnpvhnrvhnpTigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnoPhn5Lhnpvhnrbhn4bhnoTigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpHhnrbhn4bhnoThnqLhnp/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4OTc0NjQwODcxOTQ1NDM0NTY1Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6E4Z+S4Z6A4Z6+4Z6T4oCL4Z6R4Z+G4Z6g4Z+G4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+HIOGeiuGfhOGemeKAi+Gem+Geu+GelOKAi+Ger+GegOGen+GetuGemuKAi+GegOGfkuGek+Geu+GehOKAi+GekOGej+KAi+Geg+GfkuGem+GetuGfhuGehOKAi+Gen+GemOGfkuGehOGetuGej+Gfi+KAi+Gek+Gfg+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGen+GfgeGehOGflCDhnpzhnrbigIvhnqLhnrbhnoXigIvhnpLhn5Lhnpzhnr7igIvhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnp/hn4HhnoTigIvhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnpnhnrrhno/igIvhnpbhn5Lhnprhn4Thn4fhnpDhnrbigIvigIvhnpbhnr3hnoDhnpzhnrbigIvhno/hn5LhnprhnrzhnpzigIvhnpHhn4XigIvhnpnhnoDigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnqHhnr7hnoThnpzhnrfhnonhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjQ1OTQ0MTAyMTk1NjQzNjc3OSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGehOGfkuGegOGevuGek+KAi+GekeGfhuGeoOGfhuKAi+GeleGfkuGekeGeu+GegOKAi+GekeGevOGemuGen+GfkOGeluGfkuGekeKAiyDhnorhn4ThnpnigIvhnpvhnrvhnpTigIvhnq/hnoDhnp/hnrbhnprigIvhnoDhn5LhnpPhnrvhnoTigIvhnpDhno/igIvhnoPhn5Lhnpvhnrbhn4bhnoTigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjhn5Qg4Z6c4Z624oCL4Z6i4Z624Z6F4oCL4Z6S4Z+S4Z6c4Z6+4oCL4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4oCL4Z6A4Z624Z6T4Z+L4oCL4Z6P4Z+C4oCL4Z6Z4Z664Z6PIOGeluGfkuGemuGfhOGfh+KAi+GekOGetuKAi+GeluGeveGegOGenOGetuKAi+KAi+Gej+GfkuGemuGevOGenOKAi+GekeGfheKAi+GemeGegOKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GemuGelOGen+Gfi+KAi+GeluGeveGegOGenOGetuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW92ZVBhY2thZ2UiIG1zZ2lkPSIzMjg5ODkwMjcxNjQ1OTIxNDExIj4i4Z6V4Z+S4Z6b4Z624Z6f4Z+L4Z6R4Z644oCL4Z6S4Z6T4Z6S4Z624Z6T4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW92ZVBhY2thZ2UiIG1zZ2lkPSIzMTk1NjIyMTc3NzgyNDQ1MjQiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnpvhnrbhnp/hn4vhnpHhnrjigIvhnpThn5LhnprhnpfhnpbigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhnrjigIvhnpjhn4Hhnozhn4DigIvhnoHhnrbhnoTigIvhnoDhn5LhnpPhnrvhnoTigIvhnpHhn4XigIvhnoHhnrbhnoTigIvhnoDhn5Lhnprhn4XigIvigIsg4Z6T4Z634Z6E4oCL4Z6V4Z+S4Z6R4Z674Z6Z4oCL4Z6Y4Z6A4oCL4Z6c4Z634Z6J4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkTG9ncyIgbXNnaWQ9IjY2MTU3Nzg1NDMxOTg5Njc2MTQiPiLhnqLhnrbhnpPigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnoDhn4bhno7hno/hn4vigIvhnqDhn4Hhno/hnrvigIvhnpThn5Lhnprhn4LhnpThn5Lhnprhnr3hnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTG9ncyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODIwNjEzMTMyOTM0NTUxNTEiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhnrbhnpPigIvhnpbhnrjigIvhnq/hnoDhnp/hnrbhnprigIvhnoDhn4bhno7hno/hn4vhnqDhn4Hhno/hnrvigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLhn5Qg4Z6c4Z624oCL4Z6i4Z6T4Z674Z6J4Z+S4Z6J4Z624Z6P4oCL4Z6y4Z+S4Z6Z4oCL4Z6a4Z6A4oCL4Z6Y4Z6+4Z6b4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6R4Z684Z6R4Z+F4oCL4Z6i4Z+G4Z6W4Z644oCL4Z6i4Z+S4Z6c4Z644oCL4Z6K4Z+C4Z6b4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6S4Z+S4Z6c4Z6+4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+HIOGen+GfhuGegeGetuGek+Gfi+KAi+GemuGeveGemOGemOGetuGek+KAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+GeleGfkuGekeGetuGem+Gfi+KAi+GegeGfkuGem+GeveGek+KAiyDhnqzigIvhnq/hnoDhnofhnpPhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTG9ncyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIwNjM0MzgxNDAyNDE1NjA0NDMiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhnrbhnpPigIvhnpbhnrjigIvhnq/hnoDhnp/hnrbhnprigIvhnoDhn4bhno7hno/hn4vhnqDhn4Hhno/hnrvigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLhn5Qg4Z6c4Z624oCL4Z6i4Z6T4Z674Z6J4Z+S4Z6J4Z624Z6P4oCL4Z6y4Z+S4Z6Z4oCL4Z6a4Z6A4oCL4Z6Y4Z6+4Z6b4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6R4Z684Z6R4Z+F4oCL4Z6i4Z+G4Z6W4Z644oCL4Z6i4Z+S4Z6c4Z644oCL4Z6K4Z+C4Z6b4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6S4Z+S4Z6c4Z6+4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+HIOGen+GfhuGegeGetuGek+Gfi+KAi+GemuGeveGemOGemOGetuGek+KAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+GeleGfkuGekeGetuGem+Gfi+KAi+GegeGfkuGem+GeveGek+KAiyDhnqzigIvhnq/hnoDhnofhnpPhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI3MTU4MDU1NTU4MjM4ODE4MTgiPiLhnpThn5Lhnprhnr7igIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnozhnrfhnoDhnrzhnorigIvigIvhnpjhn4Hhnozhn4DigIvhno7hnrbigIvhnpjhnr3hnpnigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoXhnrbhnoDhn4vigIvhnqHhnr7hnoThnpzhnrfhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hbnlDb2RlY0ZvclBsYXliYWNrIiBtc2dpZD0iODI4MzkxMjQ4ODQzMzE4OTAxMCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGfkuGemuGevuKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GejOGet+GegOGevOGeiuKAi+GemOGfgeGejOGfgOKAi+GeiuGfguGem+KAi+GelOGetuGek+KAi+GeiuGfhuGeoeGevuGehCDhnorhnr7hnpjhn5LhnpThnrjigIvhnozhnrfhnoDhnrzhnorigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhnrbhnprigIvhnoXhnrbhnoDhn4vigIvhnqHhnr7hnoThnpzhnrfhnonhn5QiPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGVybWxhYl9tYW5hZ2VDYUNlcnRpZmljYXRlcyAoMTY3ODM5MTg5Njc4Njg4MjAxNCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwZXJtZGVzY19tYW5hZ2VDYUNlcnRpZmljYXRlcyAoNDAxNTY0NDA0NzE5NjkzNzAxNCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGlhZ25vc3RpYyIgbXNnaWQ9IjgwNzY3NDM5NTM5MDgwMDAzNDIiPiLhnqLhnrbhnpMv4Z6f4Z6a4Z6f4Z+B4Z6a4oCL4Z6S4Z6T4Z6S4Z624Z6T4oCL4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6E4oCL4Z6U4Z+S4Z6a4Z6i4Z6U4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlhZ25vc3RpYyIgbXNnaWQ9IjY2MDgyOTU2OTIwMDI0NTIyODMiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhnrbhnpMg4Z6T4Z634Z6E4oCL4Z6f4Z6a4Z6f4Z+B4Z6a4oCL4Z6U4Z+S4Z6a4Z6X4Z6W4oCL4Z6O4Z624Z6Y4Z694Z6Z4oCL4Z6K4Z+C4Z6b4oCL4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6E4oCL4Z6K4Z+E4Z6Z4oCL4Z6A4Z+S4Z6a4Z674Z6Y4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6c4Z634Z6T4Z634Z6F4Z+S4Z6G4Z+Q4Z6ZIOGep+GekeGetuGeoOGemuGejuGfjSDhnq/hnoDhnp/hnrbhnprigIvhnpPhn4XigIvhnoDhn5LhnpPhnrvhnoQgL2RldiDhn5Qg4Z6c4Z624oCL4Z6i4Z624Z6F4oCL4Z6U4Z+J4Z+H4Z6W4Z624Z6b4Z+L4oCL4Z6Z4Z+J4Z624Z6E4oCL4Z6B4Z+S4Z6b4Z624Z+G4Z6E4oCL4Z6K4Z6b4Z+L4oCL4Z6f4Z+S4Z6Q4Z+B4Z6a4oCL4Z6X4Z624Z6W4oCLIOGek+Get+GehOKAi+Gen+Geu+GenOGej+GfkuGekOGet+Gel+GetuGeluKAi+GelOGfkuGemuGeluGfkOGek+GfkuGekuGflCDhnpzhnrbigIvhnoLhnr3hnprigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnpThn5Lhnprhnr7igIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnpzhnrfhnpPhnrfhnoXhn5Lhnobhn5DhnpnigIvhnpXhn5LhnpPhn4LhnoDigIvhnprhnrnhnoTigIvhnofhnrbhnoDhn4vigIvhnpvhnrbhnoDhn4vigIvhnorhn4ThnpnigIvhnoDhn5LhnprhnrvhnpjhnqDhn4rhnrvhnpPigIvhnpXhnpvhnrfhno8g4Z6s4oCL4Z6U4Z+S4Z6a4Z6P4Z634Z6U4Z6P4Z+S4Z6P4Z634oCL4Z6A4Z6a4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VDb21wb25lbnRTdGF0ZSIgbXNnaWQ9IjYzMzU1NzY3NzU3MTEwOTU5MzEiPiLhnpThnrfhnpEg4Z6s4oCL4Z6U4Z6+4Z6A4oCL4Z6f4Z6Y4Z624Z6f4Z6S4Z624Z6P4Z674oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg4ODc0MzU3NDA5ODIyMzcyOTQiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThn5LhnorhnrzhnprigIvhnpDhnrbigIvhno/hnr7igIvhnp/hnpjhnrbhnp/hnpLhnrbhno/hnrvigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnp/hn4HhnoTigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnpThnr7hnoDigIvigIsg4Z6s4oCL4Z6A4Z+P4oCL4Z6i4Z6P4Z+L4Z+UIOGegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGfkuGemeGetuGelOGetuGekeKAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GenOGetiDhnorhnr7hnpjhn5LhnpThnrjigIvhnpThnrfhnpHigIvhnp/hnpjhno/hn5LhnpDhnpfhnrbhnpbigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnp/hn4bhnoHhnrbhnpPhn4vhn5Qg4Z6U4Z+S4Z6a4Z6+4oCL4Z6K4Z+E4Z6Z4oCL4Z6U4Z+S4Z6a4Z674Z6E4Z6U4Z+S4Z6a4Z6Z4Z+Q4Z6P4Z+S4Z6T4oCL4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4oCL4Z6f4Z634Z6R4Z+S4Z6S4Z634oCL4Z6T4Z+B4Z+HIOGeluGfkuGemuGfhOGfh+KAi+GekOGetuKAi+GenOGetuKAi+GeouGetuGeheKAi+GekuGfkuGenOGevuKAi+GesuGfkuGemeKAi+Gen+GemOGetuGen+GekuGetuGej+Geu+KAi+GemOGet+Gek+KAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GelOGetuGek+KAiyDhnp/hn5LhnpDhnrfhno/hnp/hn5LhnpDhn4Hhnpog4Z6s4oCL4oCL4Z6Y4Z634Z6T4oCL4Z6f4Z+S4Z6Q4Z634Z6P4Z6f4Z+S4Z6Q4Z+B4Z6a4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODI3MjMyNDg0NDE2NTA1NjE1Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6Q4Z624Z6P4Z6+4oCL4Z6f4Z6Y4Z624Z6f4Z6S4Z624Z6P4Z674oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6U4Z6+4Z6A4oCL4oCLIOGerOKAi+GegOGfj+KAi+GeouGej+Gfi+GflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpzhnrYg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z634Z6R4oCL4Z6f4Z6Y4Z6P4Z+S4Z6Q4Z6X4Z624Z6W4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6f4Z+G4Z6B4Z624Z6T4Z+L4Z+UIOGelOGfkuGemuGevuKAi+GeiuGfhOGemeKAi+GelOGfkuGemuGeu+GehOGelOGfkuGemuGemeGfkOGej+GfkuGek+KAi+Geh+GetuKAi+GemOGeveGemeKAi+KAi+Gen+Get+GekeGfkuGekuGet+KAi+Gek+GfgeGfhyDhnpbhn5Lhnprhn4Thn4figIvhnpDhnrbigIvhnpzhnrbigIvhnqLhnrbhnoXigIvhnpLhn5Lhnpzhnr7igIvhnrLhn5LhnpnigIvhnp/hnpjhnrbhnp/hnpLhnrbhno/hnrvigIvhnpjhnrfhnpPigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpThnrbhnpPigIsg4Z6f4Z+S4Z6Q4Z634Z6P4Z6f4Z+S4Z6Q4Z+B4Z6aIOGerOKAi+KAi+GemOGet+Gek+KAi+Gen+GfkuGekOGet+Gej+Gen+GfkuGekOGfgeGemuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ3JhbnRSZXZva2VQZXJtaXNzaW9ucyIgbXNnaWQ9IjQ2MjczMTUzNTEwOTM1MDg3OTUiPiLhnpXhn5Lhnorhnpvhn4sg4Z6s4oCL4Z6K4Z6A4oCL4Z6f4Z634Z6R4Z+S4Z6S4Z63Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ3JhbnRSZXZva2VQZXJtaXNzaW9ucyIgbXNnaWQ9IjQwODg2NDI2NTQwODU4NTA2NjIiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnorhnpvhn4sg4Z6s4oCL4Z6K4Z6A4oCL4Z6f4Z634Z6R4Z+S4Z6S4Z634oCL4Z6H4Z624Z6A4Z+L4Z6b4Z624Z6A4Z+L4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6c4Z62IOGerOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGen+GfgeGehOGflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpzhnrbigIvhnorhnr7hnpjhn5LhnpThnrjigIvhnoXhnrzhnpvigIvhnpvhnoDhn5LhnoHhno7hn4jigIvhnorhn4LhnpvigIvhnqLhn5LhnpPhnoDigIvhnpjhnrfhnpPigIvhnpThnrbhnpPigIvhnpXhn5Lhnorhnpvhn4vigIvhnrLhn5LhnpnigIvhnpbhnr3hnoDhnpzhnrbhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFByZWZlcnJlZEFwcGxpY2F0aW9ucyIgbXNnaWQ9Ijg0NjMxODE2Mjg2OTUzOTYzOTEiPiLhnoDhn4bhno7hno/hn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn4HhnonigIvhnoXhnrfhno/hn5Lhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRQcmVmZXJyZWRBcHBsaWNhdGlvbnMiIG1zZ2lkPSI0OTczOTg2NzYyMjQxNzgzNzEyIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+C4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6K4Z+C4Z6b4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6W4Z+B4Z6J4oCL4Z6F4Z634Z6P4Z+S4Z6P4Z+UIOGegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGfkuGemeGetuGelOGetuGekeKAi+GeouGetuGeheKAi+GelOGfkuGeiuGevOGemuKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeiuGfguGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+Gen+GfkuGehOGetuGej+Gfi+KAi+GflyDhnorhn4ThnpnigIvigIvigIvhnpThnonhn5Lhnobhn4Thno/igIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnorhn4LhnpvigIvhnpjhnrbhnpPigIvhnp/hn5LhnprhnrbhnpThn4vigIvigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIsg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z+S4Z6a4Z6Y4Z684Z6b4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6v4Z6A4Z6H4Z6T4oCL4oCL4Z6W4Z644oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNldHRpbmdzIiBtc2dpZD0iMjIyNjE5NTI5MDk1NTIyNDczMCI+IuGegOGfguKAi+KAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GelOGfkuGemuGeluGfkOGek+GfkuGekiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU2V0dGluZ3MiIG1zZ2lkPSI3Nzc1NzIzNDQxNTU4OTA3MTgxIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+C4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4Z+UIOGegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGfkuGemeGetuGelOGetuGekeKAi+GeouGetuGeheKAi+GelOGehOGfkuGegeGevOGeheKAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GemuGeheGek+GetuGen+GemOGfkOGfkuGeluGek+GfkuGekuKAi+Gek+Gfg+KAi+GelOGfkuGemuGeluGfkOGek+GfkuGekuKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTZWN1cmVTZXR0aW5ncyIgbXNnaWQ9IjIwNDY3NjI1MTg3NjcxODI4OCI+IuGegOGfguKAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GelOGfkuGemuGeluGfkOGek+GfkuGekuKAi+Gen+Geu+GenOGej+GfkuGekOGet+Gel+GetuGeliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSI4MTU5NTM1NjEzMDIwMTM3MzkxIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+C4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4oCL4Z6f4Z674Z6c4Z6P4Z+S4Z6Q4Z634Z6X4Z624Z6W4oCL4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4Z+UIOGemOGet+Gek+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GelOGfkuGemuGevuKAi+GeiuGfhOGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuKAi+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIyMTQ5NDI2NjY0MjI2MTUyMTg1Ij4i4Z6A4Z+C4oCL4Z6V4Z+C4Z6T4Z6R4Z644oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6Y4oCLIEdvb2dsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlR3NlcnZpY2VzIiBtc2dpZD0iMTI4NzMwOTQzNzYzODM4MDIyOSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GegOGfguKAi+GeleGfguGek+GekeGeuOKAi+Gen+GfgeGenOGetuGegOGemOGfkuGemOKAiyBHb29nbGUg4Z+UIOGemOGet+Gek+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GelOGfkuGemuGevuKAi+GeiuGfhOGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuKAi+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIG1zZ2lkPSI1MzEyOTY1NTY1OTg3ODAwMDI1Ij4i4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6W4Z+B4Z6b4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjczOTAzMDQ2NjQxMTY4ODA3MDQiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnorhn4ThnpnigIvhnoHhn5Lhnpvhnr3hnpPigIvhnpzhnrbigIvhnpXhn5LhnpHhnrbhnpvhn4vigIvhnorhnprhnrbhnpTigIvigIvhno7hnrbigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLigIvigIvhnpThnrbhnpPigIvhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvigIvhnprhnr3hnoXhnprhnrbhnpvhn4vhn5Qg4Z6c4Z624oCL4Z6i4Z624Z6F4oCL4oCL4Z6F4Z+G4Z6O4Z624Z6Z4oCL4Z6W4Z+B4Z6b4oCL4Z6Z4Z684Z6a4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+HIOGek+Get+GehOKAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGfkuGenOGevuKAi+GesuGfkuGemeKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+GemeGeuuGej+KAi+GeiuGfhOGemeKAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+Geh+GetuKAi+Gek+Get+GeheGfkuGeheGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVCb290Q29tcGxldGVkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTEzOTUwNTg5MTAyNjE3NTA0Ij4i4Z6y4Z+S4Z6Z4oCL4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6K4Z+E4Z6Z4oCL4Z6B4Z+S4Z6b4Z694Z6T4oCL4Z6c4Z624oCL4oCL4Z6X4Z+S4Z6b4Z624Z6Y4oCL4Z+X4oCL4Z6W4Z+B4Z6b4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4oCL4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6F4Z6U4Z+L4Z+UIOKAi+GenOGetuKAi+GeouGetuGeheKAi+GekuGfkuGenOGevuKAi+GesuGfkuGemeKAi+GeheGfhuGejuGetuGemeKAi+GeluGfgeGem+KAi+GemeGevOGemuKAi+GeiuGevuGemOGfkuGelOGeuOKAi+GeheGetuGelOGfi+GeleGfkuGeiuGevuGemOKAi+GekeGevOGemuGen+GfkOGeluGfkuGekSDigIvhnpPhnrfhnoTigIvhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpLhn5Lhnpzhnr7igIvhnrLhn5LhnpnigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnpnhnrrhno/igIvhnorhn4ThnpnigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnofhnrbigIvhnpPhnrfhnoXhn5LhnoXhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Jyb2FkY2FzdFN0aWNreSIgbXNnaWQ9Ijc5MTkxMjYzNzI2MDY4ODE2MTQiPiLhnpXhn5Lhnonhnr7igIvhnoDhnrbhnprigIvhnpThn5LhnprhnoDhnrbhnp/igIvhnpHhnrbhnoDhn4vhnpHhnrbhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RTdGlja3kiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijc3NDk3NjA0OTQzOTk5MTU2NTEiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnonhnr7igIvhnoDhnrbhnprhnpThn5LhnprhnoDhnrbhnp/igIvigIvhnorhn4LhnpvigIvhnpHhnrbhnoDhn4vhnpHhnrbhnokg4Z6K4Z+C4Z6b4oCL4Z6Y4Z624Z6T4oCL4Z6U4Z6T4Z+S4Z6R4Z624Z6U4Z+L4oCL4Z6W4Z644oCL4Z6A4Z624Z6a4oCL4Z6U4Z+S4Z6a4Z6A4Z624Z6f4oCL4Z6F4Z6U4Z+L4Z+UIOGegOGetuGemuKAi+GelOGfkuGemuGevuKAi+Gem+GevuGen+KAi+KAi+GeouGetuGeheKAi+GekuGfkuGenOGevuGesuGfkuGemeKAi+GekeGevOGemuGen+GfkOGeluGfkuGekeKAi+GemeGeuuGejyDhnqzigIvhnpjhnrfhnpPigIvhnp/hn5LhnpDhnrfhno/hnp/hn5LhnpDhn4HhnprigIvhnorhn4ThnpnhnpLhn5Lhnpzhnr7igIvhnrLhn5LhnpnigIvhnpzhnrbigIvhnpThn5Lhnprhnr7igIvhnqLhnoThn5LhnoLigIvhnoXhnoThnoXhnrbhn4bigIvhnpLhn4bigIvhnpbhn4HhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RTdGlja3kiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyODI1ODAzNzY0MjMyNDQ1MDkxIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6J4Z6+4oCL4Z6A4Z624Z6a4Z6U4Z+S4Z6a4Z6A4Z624Z6f4oCL4oCL4Z6K4Z+C4Z6b4oCL4Z6R4Z624Z6A4Z+L4Z6R4Z624Z6JIOGeiuGfguGem+KAi+GemOGetuGek+KAi+GelOGek+GfkuGekeGetuGelOGfi+KAi+GeluGeuOKAi+GegOGetuGemuKAi+GelOGfkuGemuGegOGetuGen+KAi+GeheGelOGfi+GflCDhnoDhnrbhnprigIvhnpThn5Lhnprhnr7igIvhnpvhnr7hnp/igIvigIvhnqLhnrbhnoXigIvhnpLhn5Lhnpzhnr7hnrLhn5LhnpnigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnpnhnrrhno8g4Z6s4oCL4Z6Y4Z634Z6T4oCL4Z6f4Z+S4Z6Q4Z634Z6P4Z6f4Z+S4Z6Q4Z+B4Z6a4oCL4Z6K4Z+E4Z6Z4Z6S4Z+S4Z6c4Z6+4oCL4Z6y4Z+S4Z6Z4oCL4Z6c4Z624oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6i4Z6E4Z+S4Z6C4oCL4Z6F4Z6E4Z6F4Z624Z+G4oCL4Z6S4Z+G4oCL4Z6W4Z+B4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ29udGFjdHMiIG1zZ2lkPSI4MzQ4NDgxMTMxODk5ODg2MTMxIj4i4Z6i4Z624Z6T4oCL4Z6R4Z+G4Z6T4Z624Z6A4Z+L4Z6R4Z+G4Z6T4Z6E4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENvbnRhY3RzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1Mjk0ODY2ODU2OTQxMTQ5NjM5Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6T4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6i4Z+G4Z6W4Z644oCL4Z6R4Z+G4Z6T4Z624Z6A4Z+L4Z6R4Z+G4Z6T4Z6E4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6K4Z+C4Z6b4oCL4Z6Y4Z624Z6T4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIOGemuGeveGemOGemOGetuGek+KAi+GelOGfkuGemuGfgeGegOGehOGfi+KAi+GeiuGfguGem+KAi+GeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GeoOGfheKAiyDhnqLhn4rhnrjhnpjhn4Lhnpsg4Z6s4oCL4Z6R4Z624Z6A4Z+L4Z6R4Z6E4oCL4Z6P4Z624Z6Y4oCL4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4oCL4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4Z6Y4Z6T4Z674Z6f4Z+S4Z6f4oCL4Z6O4Z624oCL4Z6Y4Z+S4Z6T4Z624Z6A4Z+L4Z+UIOGen+Get+GekeGfkuGekuGet+KAi+Gek+GfgeGfh+KAi+GeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GemuGegOGfkuGen+GetuGekeGeu+GegOKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GekeGfhuGek+GetuGegOGfi+GekeGfhuGek+GehOKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegCDhnqDhnr7hnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnoXhn4LhnoDhnprhn4bhnpvhn4LhnoDigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpHhn4bhnpPhnrbhnoDhn4vhnpHhn4bhnpPhnoTigIvhnorhn4ThnpnigIvhnpjhnrfhnpPigIvhnrLhn5LhnpnigIvhnqLhn5LhnpPhnoDigIvhnorhnrnhnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ29udGFjdHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NDQwNjU0MTUyNDU3MzAwNjYyIj4i4Z6y4Z+S4Z6Z4oCL4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6T4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6i4Z+G4Z6W4Z644oCL4Z6R4Z+G4Z6T4Z624Z6A4Z+L4Z6R4Z+G4Z6T4Z6E4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6a4Z6A4Z+S4Z6f4Z624Z6R4Z674Z6A4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6RIOGemuGeveGemOGemOGetuGek+KAi+GelOGfkuGemuGfgeGegOGehOGfi+KAi+GeiuGfguGem+KAi+GeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GeoOGfhSDhnqLhn4rhnrjhnpjhn4Lhnpsg4Z6s4oCL4Z6R4Z624Z6A4Z+L4Z6R4Z6E4oCL4Z6P4Z624Z6Y4oCL4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4oCL4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6O4Z624oCL4Z6Y4Z+S4Z6T4Z624Z6A4Z+L4Z+UIOGen+Get+GekeGfkuGekuGet+KAi+Gek+GfgeGfh+KAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GemuGegOGfkuGen+GetuGekeGeu+GegOKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GekeGfhuGek+GetuGegOGfi+GekeGfhuGek+GehOKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegCDhnqDhnr7hnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnoXhn4LhnoDhnprhn4bhnpvhn4LhnoDigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpHhn4bhnpPhnrbhnoDhn4vhnpHhn4bhnpPhnoTigIvigIvhnorhn4ThnpnigIvhnpjhnrfhnpPigIvhnrLhn5LhnpnigIvhnqLhn5LhnpPhnoDhnorhnrnhnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ29udGFjdHMiIG1zZ2lkPSI1MTA3NDkyMDg2NDE2NzkzNTQ0Ij4i4Z6A4Z+C4oCL4Z6R4Z+G4Z6T4Z624Z6A4Z+L4Z6R4Z+G4Z6T4Z6E4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDb250YWN0cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODk3MjQzOTMyNTIxOTUzNjAyIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+C4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6i4Z+G4Z6W4Z644oCL4Z6R4Z+G4Z6T4Z624Z6A4Z+L4Z6R4Z+G4Z6T4Z6E4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6a4Z6A4Z+S4Z6f4Z624Z6R4Z674Z6A4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+HIOGemuGeveGemOGemOGetuGek+KAi+GelOGfkuGemuGfgeGegOGehOGfi+KAi+KAi+GeiuGfguGem+KAi+GeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GeoOGfhSDhnqLhn4rhnrjhnpjhn4Lhnpsg4Z6s4oCL4Z6R4Z624Z6A4Z+L4Z6R4Z6E4oCL4Z6P4Z624Z6Y4oCL4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4oCL4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4Z6R4Z+G4Z6T4Z624Z6A4Z+L4Z6R4Z+G4Z6T4Z6E4oCL4Z6H4Z624Z6A4Z+L4Z6b4Z624Z6A4Z+L4Z+UIOGen+Get+GekeGfkuGekuGet+KAi+KAi+Gek+GfgeGfh+KAi+GeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GesuGfkuGemeKAi+KAi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gem+Geu+GelOKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GekeGfhuGek+GetuGegOGfi+GekeGfhuGek+GehOKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ29udGFjdHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1ODk4NjkyMjQ2MjUxNjM1NTgiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoDhn4LigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnqLhn4bhnpbhnrjigIvhnpHhn4bhnpPhnrbhnoDhn4vhnpHhn4bhnpPhnoTigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnorhn4LhnpvigIvhnpThnrbhnpPigIvhnprhnoDhn5Lhnp/hnrbhnpHhnrvhnoDigIvhnoDhn5LhnpPhnrvhnoTigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAg4Z6a4Z694Z6Y4Z6Y4Z624Z6T4oCL4Z6U4Z+S4Z6a4Z+B4Z6A4Z6E4Z+L4oCL4Z6K4Z+C4Z6b4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6g4Z+FIOGeouGfiuGeuOGemOGfguGemyDhnqzigIvhnpThnrbhnpPigIvhnpHhnrbhnoDhn4vhnpHhnoTigIvigIvhno/hnrbhnpjigIvhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnp/hn4HhnoThn5figIvhnofhnrbigIvhnpjhnr3hnpnigIvhnpHhn4bhnpPhnrbhnoDhn4vigIvhnpHhn4bhnpPhnrbhnoDhn4vigIvhnofhnrbhnoDhn4vhnpvhnrbhnoDhn4vhn5Qg4Z6f4Z634Z6R4Z+S4Z6S4Z634oCL4Z6T4Z+B4Z+H4oCL4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6b4Z674Z6U4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6R4Z+G4Z6T4Z624Z6A4Z+L4Z6R4Z+G4Z6T4Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2FsbExvZyIgbXNnaWQ9IjM0NzgxMzMxODQ2MjQxMDI3MzkiPiLhnqLhnrbhnpPigIvigIvhnoDhn4bhno7hno/hn4vigIvhnqDhn4Hhno/hnrvigIvigIvigIvhnqDhn4UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsbExvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzcwMDY0NTE4NDg3MDc2MDI4NSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeouGetuGek+KAi+GelOGeieGfkuGeh+GeuOKAi+GeoOGfheKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegCDhnprhnr3hnpjhnpjhnrbhnpPigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnqLhn4bhnpbhnrjigIvhnoDhnrbhnprigIvhnqDhn4XigIvhnoXhnrzhnpsg4Z6T4Z634Z6E4oCL4Z6F4Z+B4Z6J4Z+UIOGen+Get+GekeGfkuGekuGet+KAi+Gek+GfgeGfh+KAi+GeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GemuGegOGfkuGen+GetuGekeGeu+GegOKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GelOGeieGfkuGeh+GeuOKAi+GeoOGfheKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegCDhnqDhnr7hnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnoXhn4LhnoDhnprhn4bhnpvhn4LhnoDigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpThnonhn5LhnofhnrjigIvhnqDhn4XigIvhnorhn4ThnpnigIvhnpjhnrfhnpPigIvhnrLhn5LhnpnigIvhnqLhn5LhnpPhnoDigIvhnorhnrnhnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsbExvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3Nzc3MjU3OTY4MTMyMTcyNDQiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhnrbhnpPigIvigIvigIvhnpThnonhn5LhnofhnrjigIvhnqDhn4XigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAg4Z6a4Z694Z6Y4Z6Y4Z624Z6T4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6i4Z+G4Z6W4Z644oCL4Z6A4Z624Z6a4oCL4Z6g4Z+F4oCL4Z6F4Z684Z6bIOGek+Get+GehOKAi+GeheGfgeGeieGflCDhnp/hnrfhnpHhn5LhnpLhnrfigIvhnpPhn4Hhn4figIvhnqLhnpPhnrvhnonhn5Lhnonhnrbhno/igIvhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnprhnoDhn5Lhnp/hnrbhnpHhnrvhnoDigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpThnonhn5LhnofhnrjigIvhnqDhn4XigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAg4Z6g4Z6+4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6F4Z+C4Z6A4Z6a4Z+G4Z6b4Z+C4Z6A4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6U4Z6J4Z+S4Z6H4Z644oCL4Z6g4Z+F4oCL4Z6K4Z+E4Z6Z4oCL4Z6Y4Z634Z6T4oCL4Z6y4Z+S4Z6Z4oCL4Z6i4Z+S4Z6T4Z6A4Z6K4Z654Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUNhbGxMb2ciIG1zZ2lkPSI4NTUyMDQ1NjY0NzQzNDk5MzU0Ij4i4Z6f4Z6a4Z6f4Z+B4Z6a4oCL4Z6U4Z6J4Z+S4Z6H4Z644oCL4Z6g4Z+FIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxsTG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2NjYxODA2MDYyMjc0MTE5MjQ1Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+C4oCL4Z6U4Z6J4Z+S4Z6H4Z644oCL4Z6g4Z+F4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6a4Z694Z6Y4Z6Y4Z624Z6T4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6i4Z+G4Z6W4Z644oCL4Z6A4Z624Z6a4oCL4Z6g4Z+F4oCL4Z6F4Z684Z6bIOGek+Get+GehOKAi+GeheGfgeGeieGflOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGfkuGemeGetuGelOGetuGekeKAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GenOGetiDhnorhnr7hnpjhn5LhnpThnrjigIvhnpvhnrvhnpQg4Z6s4oCL4Z6A4Z+C4oCL4Z6U4Z6J4Z+S4Z6H4Z644oCL4Z6g4Z+F4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxsTG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjgzOTQxNzM2MzUyNzg3ODQyIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+C4oCL4Z6U4Z6J4Z+S4Z6H4Z644oCL4Z6g4Z+F4oCL4Z6T4Z+D4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIOGemuGeveGemOGemOGetuGek+KAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GeouGfhuGeluGeuOKAi+GegOGetuGemuKAi+GeoOGfheKAi+GeheGevOGemyDhnpPhnrfhnoTigIvhnoXhn4Hhnonhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6c4Z62IOGeiuGevuGemOGfkuGelOGeuOKAi+Gem+Geu+GelCDhnqzigIvhnoDhn4LigIvhnpThnonhn5LhnofhnrjigIvhnoDhnrbhnprigIvhnqDhn4XigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRQcm9maWxlIiBtc2dpZD0iNDcwMTg4OTg1MjYxMjcxNjY3OCI+IuGeouGetuGek+KAi+GegOGetuGej+KAi+GekeGfhuGek+GetuGegOGfi+GekeGfhuGek+GehOKAi+GeleGfkuGekeGetuGem+Gfi+GegeGfkuGem+GeveGek+KAi+KAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRQcm9maWxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTQ2MjQ3NTE1MTg0OTg4ODg0OCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeouGetuGek+KAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+GelOGfkuGemuGenOGej+GfkuGej+Get+GemuGevOGelOKAi+GeleGfkuGekeGetuGem+Gfi+GegeGfkuGem+GeveGek+KAi+GeiuGfguGem+KAi+GemOGetuGek+KAi+Gem+GevuKAi+Gep+GelOGegOGemuGejuGfjeKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegCDhnorhnrzhnoXigIvhnofhnrYg4Z6I4Z+S4Z6Y4Z+E4Z+HIOGek+Get+GehOKAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+GekeGfhuGek+GetuGegOGfi+GekeGfhuGek+GehOGflCDhnpzhnrbigIvhnpjhnrbhnpPigIvhnpPhn5DhnpnigIvhnpDhnrYg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6F4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIOGek+Get+GehOKAi+GeouGetuGeheKAi+GeleGfkuGeieGevuKAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+GelOGfkuGemuGenOGej+GfkuGej+Get+GemuGevOGelOKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+GekeGfheKAi+GeouGfkuGek+GegOKAi+GeleGfkuGen+GfgeGehOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVQcm9maWxlIiBtc2dpZD0iOTA3NzkzNjI4Nzc3Mzk3NjQzIj4i4Z6A4Z+C4oCL4Z6A4Z624Z6P4oCL4Z6R4Z+G4Z6T4Z624Z6A4Z+L4Z6R4Z+G4Z6T4Z6E4oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+L4oCL4Z6B4Z+S4Z6b4Z694Z6T4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVQcm9maWxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTU1MjA4NDI5NDU5ODQ2NTg5OSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGfkuGeiuGevOGemiDhnqzigIvhnpThnpPhn5LhnpDhn4LhnpjigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnpThn5Lhnprhnpzhno/hn5Lhno/hnrfhnprhnrzhnpTigIvhnpXhn5LhnpHhnrbhnpvhn4vigIvhnoHhn5Lhnpvhnr3hnpPigIvhnorhn4LhnpvigIvhnpThnrbhnpPigIvhnprhnoDhn5Lhnp/hnrbhnpHhnrvhnoDigIvhnoDhn5LhnpPhnrvhnoTigIvhnqfhnpThnoDhnprhno7hn43igIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAg4Z6K4Z684Z6F4Z6H4Z62IOGeiOGfkuGemOGfhOGfhyDhnpPhnrfhnoTigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnpHhn4bhnpPhnrbhnoDhn4vhnpHhn4bhnpPhnoTigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDhn5Qg4Z6T4Z+B4Z+H4oCL4Z6Y4Z624Z6T4oCL4Z6T4Z+Q4Z6Z4oCL4Z6Q4Z624oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6F4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIOGek+Get+GehOKAi+GeleGfkuGeieGevuKAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+GelOGfkuGemuGenOGej+GfkuGej+Get+GemuGevOGelOKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+GekeGfheKAi+GeouGfkuGek+GegOKAi+GeleGfkuGen+GfgeGehOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjEyNjg5MjA5NTYxNTI0MTkxNzAiPiLhnqLhnrbhnpPigIvhnoXhnprhnpPhn5Lhno/igIvigIvhnp/hnoThn5LhnoLhnpjigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDI1NTcwNjAyNzE3MjA1MDg3MiI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemiDhnpPhnrfhnoTigIvhnpLhn5Lhnpzhnr7igIvhnp/hnpjigIvhnoDhnrbhnpvigIvhnoDhnpjhn5LhnpjigIvhnpThnoXhn5LhnoXhnrvhnpThn5LhnpThnpPhn5LhnpPhnpfhnrbhnpbigIvhnp/hnoThn5LhnoLhnpjigIvhnpbhnrjigIvhnqLhn5LhnpPhnoDigIsg4Z6T4Z634Z6E4oCL4Z6Y4Z634Z6P4Z+S4Z6P4Z6X4Z+Q4Z6A4Z+S4Z6K4Z634Z+UIOGelOGfkuGemuGemeGfkOGej+GfkuGek+KAi+GeluGfgeGem+KAi+GeheGfguGegOGemuGfhuGem+GfguGegOKAi+GeluGfkOGej+GfjOGemOGetuGekyDhnpzhnrbigIvhnqLhnpPhnrvhnonhn5Lhnonhnrbhno/igIvhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhnrbhnpPigIvhnoDhnrbhnprigIvhnpHhnrbhnoDhn4vhnpHhnoTigIvhnprhnpzhnrbhnoTigIvhnqLhn5LhnpPhnoDigIsg4Z6T4Z634Z6E4oCL4Z6Y4Z634Z6P4Z+S4Z6P4Z6X4Z+Q4Z6A4Z+S4Z6K4Z634oCL4Z6b4Z6+4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6f4Z6E4Z+S4Z6C4Z6YIOGekeGetuGegOGfi+GekeGehOKAi+Gek+GeueGehOKAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+Gen+GemOGfkuGehOGetuGej+Gfi+GflCDhnoXhn4bhno7hnrbhn4bhn5bigIsg4Z6f4Z634Z6R4Z+S4Z6S4Z634oCL4Z6T4Z+B4Z+H4oCL4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4oCL4Z6i4Z6T4Z674Z6c4Z6P4Z+S4Z6P4oCL4Z6b4Z6+4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6f4Z6E4Z+S4Z6C4Z6Y4oCL4Z6R4Z624Z+G4Z6E4oCL4Z6i4Z6f4Z+L4oCL4Z6U4Z624Z6T4oCL4Z6R4Z+B4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM1MDQxNzkyMjI0OTMyMzU2NDUiPiLhnp/hnprhnp/hn4HhnprigIvhnpHhn4XigIvhnoXhnprhnpPhn5Lhno/igIvhnp/hnoThn5LhnoLhnpjigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMwODY1NTc1NTIyMDQxMTQ4NDkiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThnoThn5LhnqDhnrbhnonigIvhnpThnoXhn5LhnoXhnrvhnpThn5LhnpThnpPhn5LhnpPhnpfhnrbhnpbigIvhnp/hnoThn5LhnoLhnpjigIvhnpbhnrjigIvhnpjhnrfhno/hn5Lhno/hnpfhn5DhnoDhn5LhnorhnrfigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDhn5Qg4Z6U4Z+S4Z6a4Z6Z4Z+Q4Z6P4Z+S4Z6T4oCL4Z6W4Z+B4Z6b4oCL4Z6F4Z+C4Z6A4Z6a4Z+G4Z6b4Z+C4Z6A4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6TIOGenOGetuKAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGehOGfkuGegOGevuGej+KAi+KAi+KAi+Gen+GetuGemuKAi+KAi+GeiuGfguGem+KAi+GeouGetuGeheKAi+GelOGehOGfkuGeoOGetuGeieKAi+GekOGetuKAi+GemOGegOKAi+GeluGeuOKAi+GemOGet+Gej+GfkuGej+Gel+GfkOGegOGfkuGeiuGet+GflCDhnoXhn4bhno7hnrbhn4bhn5Yg4Z6f4Z634Z6R4Z+S4Z6S4Z634oCL4Z6T4Z+B4Z+H4oCL4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6b4Z6+4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6f4Z6E4Z+S4Z6C4Z6Y4oCL4Z6U4Z624Z6T4oCL4Z6R4Z+B4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2FsZW5kYXIiIG1zZ2lkPSI1OTcyNzI3NTYwMjU3NjEyMzk4Ij4i4Z6i4Z624Z6T4oCL4Z6W4Z+S4Z6a4Z654Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4Z6O4Z+N4oCL4Z6U4Z+S4Z6a4Z6P4Z634Z6R4Z634Z6T4oCL4oCL4Z6T4Z634Z6E4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGVuZGFyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MjE2NDYyMDQ5MDU3NjU4NzIzIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6F4oCL4oCL4Z6W4Z+S4Z6a4Z654Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4Z6O4Z+N4oCL4Z6U4Z+S4Z6a4Z6P4Z634Z6R4Z634Z6T4oCL4Z6R4Z624Z+G4Z6E4Z6i4Z6f4Z+L4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6a4Z6A4Z+S4Z6f4Z624Z6R4Z674Z6A4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AICDhnprhnr3hnpjhnpjhnrbhnpPigIvhnpjhnrfhno/hn5Lhno/hnpfhn5DhnoDhn5Lhnorhnrcg4Z6T4Z634Z6E4oCL4Z6Y4Z634Z6P4Z+S4Z6P4oCL4Z6a4Z694Z6Y4oCL4Z6A4Z624Z6a4Z6E4Z624Z6a4Z+UIOGenOGetuKAi+GeouGetuGeheKAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeheGfguGegOGemuGfhuGem+GfguGegOKAiyDhnqzigIvhnprhnoDhn5Lhnp/hnrbhnpHhnrvhnoDigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpThn5Lhnprhno/hnrfhnpHhnrfhnpPigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvigIvhnorhn4ThnpnigIvhnpjhnrfhnpPigIvhnoLhnrfhno/igIvhnpbhnrjigIvhnoDhnrbhnprigIvhnp/hnpjhn5LhnoThnrbhno/hn4sg4Z6s4oCL4Z6A4Z624Z6a4oCL4Z6Z4Z6b4Z+L4oCL4Z6K4Z654Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGVuZGFyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzQzNDU0ODY4MjQ3MDg1MTU4MyI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeouGetuGek+KAi+GeluGfkuGemuGeueGej+GfkuGej+Get+GegOGetuGemuGejuGfjeKAi+GelOGfkuGemuGej+Get+GekeGet+Gek+KAi+GekeGetuGfhuGehOGeouGen+Gfi+KAi+GeiuGfguGem+KAi+GemOGetuGek+KAi+GegOGfkuGek+Geu+GehOKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegCDhnprhnr3hnpjhnpjhnrbhnpPigIvhnpjhnrfhno/hn5Lhno/hnpfhn5DhnoDhn5Lhnorhnrcg4Z6s4oCL4Z6Y4Z634Z6P4Z+S4Z6P4oCL4Z6a4Z694Z6Y4oCL4Z6A4Z624Z6a4Z6E4Z624Z6a4Z+UIOGenOGetuKAi+GeouGetuGeheKAi+GeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GesuGfkuGemeKAi+GemeKAi+GegOGemOGfkuGemOKAi+GenOGet+GekuGeuOKAi+GeheGfguGegOGemuGfhuGem+GfguGegCDhnqzigIvhnprhnoDhn5Lhnp/hnrbhnpHhnrvhnoDigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpThn5Lhnprhno/hnrfhnpHhnrfhnpPigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnorhn4LhnpvigIvhnpHhnrbhnoDhn4vhnpHhnoTigIvhnpPhnrnhnoTigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnp/hnpjhn5LhnoThnrbhno/hn4sg4Z6s4oCL4oCL4Z6A4Z624Z6a4oCL4Z6U4Z+S4Z6a4Z+C4Z6U4Z+S4Z6a4Z694Z6b4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUNhbGVuZGFyIiBtc2dpZD0iODQzODg3NDc1NTE5MzgyNTY0NyI+IuGelOGek+GfkuGekOGfguGemCDhnqzigIvhnoDhn4LigIvhnpbhn5Lhnprhnrnhno/hn5Lhno/hnrfhnoDhnrbhnprhno7hn43igIvhnpThn5Lhnprhno/hnrfhnpHhnrfhnpPigIsg4Z6T4Z634Z6E4oCL4Z6V4Z+S4Z6J4Z6+4oCL4Z6i4Z+K4Z644Z6Y4Z+C4Z6b4oCL4Z6R4Z+F4oCL4Z6X4Z+S4Z6J4Z+A4Z6c4oCL4Z6K4Z+E4Z6Z4oCL4Z6Y4Z634Z6T4oCL4Z6y4Z+S4Z6Z4oCL4Z6Y4Z+S4Z6F4Z624Z6f4Z+L4oCL4Z6K4Z654Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY3OTAzNTUyMDExMzY2ODUyOCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGek+GfkuGekOGfguGemCDhnpvhnrvhnpQg4Z6s4oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6W4Z+S4Z6a4Z654Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4Z6O4Z+N4oCL4Z6K4Z+C4Z6b4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6i4Z624Z6F4oCL4Z6A4Z+C4oCL4Z6b4Z6+4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIOGemuGeveGemOGemOGetuGek+KAi+GemOGet+Gej+GfkuGej+Gel+GfkOGegOGfkuGeiuGetyDhnqzigIvhnpjhnrfhno/hn5Lhno/igIvhnprhnr3hnpjigIvhnoDhnrbhnprhnoThnrbhnprhn5Qg4Z6c4Z624oCL4Z6i4Z624Z6F4oCL4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6J4Z6+4oCL4Z6f4Z624Z6a4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6Q4Z624oCL4Z6Y4Z6A4oCL4Z6W4Z644oCL4Z6Y4Z+S4Z6F4Z624Z6f4Z+L4oCL4Z6U4Z+S4Z6a4Z6P4Z634Z6R4Z634Z6T4oCLIOGerOKAi+GegOGfguKAi+GeluGfkuGemuGeueGej+GfkuGej+Get+GegOGetuGemuGejuGfjeKAi+GeiuGfhOGemeKAi+GemOGet+Gek+KAi+GesuGfkuGemeKAi+GemOGfkuGeheGetuGen+Gfi+KAi+GeiuGeueGehOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMzI0NDY5NDk2MzI3MjQ5Mzc2Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6YIOGem+Geu+GelCDhnqzigIvhnpThn5LhnorhnrzhnprigIvhnpbhn5Lhnprhnrnhno/hn5Lhno/hnrfhnoDhnrbhnprhno7hn43igIvhnorhn4LhnpvigIvhnqLhn5LhnpPhnoDigIvhnqLhnrbhnoXigIvhnoDhn4LhnpThn5Lhnprhn4LigIvhnpvhnr7igIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAg4Z6a4Z694Z6Y4Z6Y4Z624Z6T4oCL4Z6Y4Z634Z6P4Z+S4Z6P4Z6X4Z+Q4Z6A4Z+S4Z6K4Z63IOGerOKAi+GemOGet+Gej+GfkuGej+KAi+GemuGeveGemOKAi+GegOGetuGemuGehOGetuGemuGflCDhnpzhnrbigIvigIvhnqLhnrbhnoXigIvhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnonhnr7igIvhnp/hnrbhnprigIvhnorhn4LhnpvigIvhnpThnoThn5LhnqDhnrbhnonigIvhnpDhnrbigIvhnpjhnoDigIvhnpbhnrjigIvhnpjhn5LhnoXhnrbhnp/hn4vigIvhnpThn5Lhnprhno/hnrfhnpHhnrfhnpMg4Z6s4oCL4Z6A4Z+C4oCL4Z6W4Z+S4Z6a4Z654Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4Z6O4Z+N4oCL4Z6K4Z+E4Z6Z4oCL4Z6Y4Z634Z6T4oCL4Z6y4Z+S4Z6Z4oCL4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6K4Z654Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NNb2NrTG9jYXRpb24iIG1zZ2lkPSI4Njg4MzM0OTc0MDM2ODIzMzMwIj4i4Z6A4Z+S4Z6b4Z+C4Z6E4oCL4Z6U4Z+S4Z6a4Z6X4Z6W4oCL4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6f4Z624Z6A4Z6b4Z+S4Z6U4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTW9ja0xvY2F0aW9uIiBtc2dpZD0iNTgwODcxMTAzOTQ4MjA1MTgyNCI+IuGelOGehOGfkuGegOGevuGej+KAi+GelOGfkuGemuGel+GeluKAi+GekeGeuOGej+GetuGfhuGehOKAi+GegOGfkuGem+GfguGehOKAi+GegOGfkuGem+GetuGemeKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+Gen+GetuGegOGem+GfkuGelOGehCDhnqzigIvhnorhn4bhnqHhnr7hnoTigIvhnoDhn5LhnprhnrvhnpjhnqDhn4rhnrvhnpPigIvhnpXhn5Lhnorhnpvhn4vigIvhnpHhnrjhno/hnrbhn4bhnoTigIvhnpDhn5Lhnpjhnrjhn5Qg4Z6c4Z624oCL4Z6i4Z6T4Z674Z6J4Z+S4Z6J4Z624Z6P4oCL4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6K4Z634Z6f4Z+B4Z6S4oCL4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4oCLIOGek+Get+GehC/hnqzigIvhnp/hn5LhnpDhnrbhnpPhnpfhnrbhnpbigIvhnpThnrbhnpPigIvhno/hn5LhnprhnqHhnpThn4vigIvhnorhn4ThnpnigIvhnpThn5LhnprhnpfhnpbigIvhnpHhnrjhno/hnrbhn4bhnoTigIvhnpXhn5Lhnp/hn4HhnoTigIvhnorhnrzhnoXigIvhnofhnrYgR1BTIOGerOKAi+GegOGfkuGemuGeu+GemOGeoOGfiuGeu+Gek+KAi+GeleGfkuGeiuGem+Gfi+KAi+GekeGeuOGej+GetuGfhuGehOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iMjgzNjMwODA3NjcyMDU1MzgzNyI+IuGeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+GeluGetuGegOGfkuGemeKAi+GelOGeieGfkuGeh+GetuKAi+GegOGfkuGemuGeu+GemOGeoOGfiuGeu+Gek+KAi+GeleGfkuGeiuGem+Gfi+KAi+GekeGeuOGej+GetuGfhuGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0xvY2F0aW9uRXh0cmFDb21tYW5kcyIgbXNnaWQ9IjU5NDUxNjY2NDIzMzU4MDA3NjMiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnpThnonhn5LhnofhnrbigIvhnoDhn5LhnprhnrvhnpjhnqDhn4rhnrvhnpPigIvhnpXhn5Lhnorhnpvhn4vigIvhnpHhnrjhno/hnrbhn4bhnoTigIvhnpThnpPhn5LhnpDhn4Lhnpjhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6c4Z624oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6H4Z+S4Z6a4Z+A4Z6P4Z6H4Z+S4Z6a4Z+C4Z6A4oCL4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4Z6U4Z+S4Z6a4Z6P4Z634Z6U4Z6P4Z+S4Z6P4Z634Z6A4Z624Z6a4oCLIEdQUyDhnqzigIvhnpThn5LhnprhnpfhnpbigIvhnpHhnrjhno/hnrbhn4bhnoTigIvhnpXhn5Lhnp/hn4HhnoTigIvhnpHhn4Dhno/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iNjU3ODEwMTE5OTgyNTE5Mzg3MyI+IuGen+Get+GekeGfkuGekuGetyDhnorhnr7hnpjhn5LhnpThnrjigIvhnorhn4bhnqHhnr7hnoTigIvhnoDhn5LhnprhnrvhnpjhnqDhn4rhnrvhnpPigIvhnpXhn5Lhnorhnpvhn4vigIvhnpHhnrjhno/hnrbhn4bhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnN0YWxsTG9jYXRpb25Qcm92aWRlciIgbXNnaWQ9IjkwNjYxNDYxMjA0NzA1OTE1MDkiPiLhnpThnoThn5LhnoDhnr7hno/igIvhnpThn5LhnprhnpfhnpbigIvhnpHhnrjhno/hnrbhn4bhnoTigIvhnoDhn5Lhnpvhn4LhnoThnoDhn5LhnpvhnrbhnpnigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnp/hnrbhnoDhnpvhn5LhnpThnoQg4Z6s4oCL4Z6K4Z+G4Z6h4Z6+4Z6E4oCL4Z6A4Z+S4Z6a4Z674Z6Y4Z6g4Z+K4Z674Z6T4oCL4Z6V4Z+S4Z6K4Z6b4Z+L4oCL4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4Z6Q4Z+S4Z6Y4Z644Z+UIOGenOGetuKAi+GeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGeiuGet+Gen+GfgeGekuKAi+GekeGeuOGej+GetuGfhuGehOKAiyDhnpPhnrfhnoQv4Z6s4oCL4Z6f4Z+S4Z6Q4Z624Z6T4Z6X4Z624Z6W4oCL4Z6U4Z624Z6T4oCL4Z6P4Z+S4Z6a4Z6h4Z6U4Z+L4oCL4Z6K4Z+E4Z6Z4oCL4Z6U4Z+S4Z6a4Z6X4Z6W4oCL4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4oCL4Z6K4Z684Z6F4Z6H4Z62IEdQUyDhnqzigIvhnoDhn5LhnprhnrvhnpjhnqDhn4rhnrvhnpPigIvhnpXhn5Lhnorhnpvhn4vigIvhnpHhnrjhno/hnrbhn4bhnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0ZpbmVMb2NhdGlvbiIgbXNnaWQ9IjExOTE4OTgwNjE5NjUyNzMzNzIiPiLhnpHhnrjhno/hnrbhn4bhnoTigIvhnpbhnrfhno/hnpThn5LhnprhnrbhnoDhnoogKEdQUyDhnpPhnrfhnoTigIvhnpjhnrbhnpPigIvhnpjhnrzhnpvhnorhn5LhnovhnrbhnpPigIvhnpvhnr7igIvhnpThno7hn5LhnorhnrbhnokpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzRmluZUxvY2F0aW9uIiBtc2dpZD0iNTI5NTA0NzU2MzU2NDk4MTI1MCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekeGekeGeveGem+KAi+GekeGeuOGej+GetuGfhuGehOKAi+GeluGet+Gej+GelOGfkuGemuGetuGegOGeiuKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegCDhnorhn4ThnpnigIvhnpThn5Lhnprhnr7igIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLigIvhnoDhn4bhno7hno/hn4vigIvhnpHhnrjhno/hnrbhn4bhnoTigIvhnp/hnoDhnpjhn5LhnpggKEdQUykg4Z6s4oCL4Z6U4Z+S4Z6a4Z6X4Z6W4oCL4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6K4Z684Z6F4oCL4Z6H4Z62IOGeouGehOGfi+Gej+GfguGek+KAi+GeheGem+GfkOGejyDhnpPhnrfhnoTigIvhnpzhn4nhnrbhnpnhnqDhn5Lhnpzhnrbhnpnhn5Qg4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6Y4oCL4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4Z6R4Z624Z+G4Z6E4oCL4Z6T4Z+B4Z+H4oCL4Z6P4Z+S4Z6a4Z684Z6c4Z6P4Z+C4oCL4Z6U4Z6+4Z6AIOGek+Get+GehOKAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GeheGfhuGeluGfhOGfh+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeiuGfguGem+KAi+GelOGfkuGemuGevuKAi+GeluGeveGegOKAi+GenOGetuGflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpzhnrYg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4oCL4Z6R4Z644Z6A4Z6T4Z+S4Z6b4Z+C4Z6E4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIOGek+Get+GehOKAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GekOGetuGemOGeluGem+KAi+GekOGfkuGemOKAi+GelOGek+GfkuGekOGfguGemOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSI0ODg3ODk1MzYyMzU0MjM5NjI4Ij4i4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4Z6U4Z+S4Z6a4Z6g4Z624Z6A4Z+L4Z6U4Z+S4Z6a4Z6g4Z+C4Z6bICjigIvigIvhnpjhnrbhnpPigIvhnpjhnrzhnpvhnorhn5LhnovhnrbhnpPigIvhnpvhnr7igIvhnpThno7hn5LhnorhnrbhnokpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSIyNTM4MjAwMTg0MzczMzAyMjk1Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6R4Z6R4Z694Z6b4oCL4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4Z6U4Z+S4Z6a4Z6g4Z624Z6A4Z+L4Z6U4Z+S4Z6a4Z6g4Z+C4Z6b4Z+UIOGekeGeuOGej+GetuGfhuGehOKAi+Gek+GfgeGfh+KAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GekeGekeGeveGem+KAi+Gej+GetuGemOKAi+Gen+GfgeGenOGetuGegOGemOGfkuGemOKAi+GekeGeuOGej+GetuGfhuGehOKAi+GeiuGfhOGemeKAi+GelOGfkuGemuGevuKAi+GelOGfkuGemuGel+GeluKAi+GekeGeuOGej+GetuGfhuGehOKAi+GelOGejuGfkuGeiuGetuGeieKAi+GeiuGevOGeheKAi+Geh+GetiDhnqLhnoThn4vhno/hn4LhnpMg4Z6T4Z634Z6E4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6Z4Z+UIOGen+GfgeGenOGetuGegOGemOGfkuGemOKAi+GekeGeuOGej+GetuGfhuGehOKAi+GekeGetuGfhuGehOKAi+Gek+GfgeGfh+KAi+Gej+GfkuGemuGevOGenOKAi+Gej+GfguKAi+GelOGevuGegCDhnpPhnrfhnoTigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpThnrbhnpPigIvhnoXhn4bhnpbhn4Thn4figIvhnqfhnpThnoDhnprhno7hn43igIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnorhn4LhnpvigIvhnpThn5Lhnprhnr7igIvhnpbhnr3hnoDhnpzhnrbhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6F4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6c4Z62IOGeiuGevuGemOGfkuGelOGeuOKAi+GegOGfhuGejuGej+Gfi+GegOGek+GfkuGem+GfguGehOKAi+GeiuGfguGem+KAi+GeouGfkuGek+GegOKAi+Gek+GfheKAi+GelOGfkuGemuGeoOGetuGegOGfi+GelOGfkuGemuGeoOGfguGem+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIyMzYzOTY5NjQxNzkyMzg4OTQ3Ij4i4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCLIFN1cmZhY2VGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6b4Z6A4Z+S4Z6B4Z6O4Z+I4oCL4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4Z6R4Z624Z6U4oCL4Z6a4Z6U4Z6f4Z+LIFN1cmZhY2VGbGluZ2VyIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+IuGeouGetuGek+KAi+GeouGehOGfkuGeguKAi+GeheGehOGeheGetuGfhuKAi+GelOGejuGfkuGeiuGfhOGfh+KAi+GeouGetuGen+Gek+GfkuGekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhnrbhnpPigIvhnpjhnrbhno/hnrfhnoDhnrbigIvhnpPhn4PigIvhnqLhnoThn5LhnoLigIvhnoXhnoThnoXhnrbhn4bigIvhnpThno7hn5Lhnorhn4Thn4figIvhnqLhnrbhnp/hnpPhn5LhnpPhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiLhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnpogSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGfkuGemuGevuKAi+Gem+GegOGfkuGegeGejuGfiOKAi+GegOGemOGfkuGemuGet+Gej+KAi+GekeGetuGelCBJbnB1dEZsaW5nZXIg4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiLhnoDhn4bhno7hno/hn4vigIvhnprhnoXhnpPhnrbhnp/hnpjhn5Lhnpbhn5DhnpPhn5LhnpLigIvhnoDhnrbhnprigIvhnpThnoThn5LhnqDhnrbhnonigIvhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoDhn4bhno7hno/hn4vigIvhnprhnoXhnpPhnrbhnp/hnpjhn5Lhnpbhn5DhnpPhn5LhnpLigIsg4Z6T4Z634Z6E4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6R4Z+F4oCL4Z6A4Z624Z6a4oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6Z4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiLhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnoDhnrbhnprigIvhnpThnoThn5LhnqDhnrbhnonigIvhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSI0NTQzOTEyMjkyNjgxODI2OTg2Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z634Z6T4Z634Z6P4Z+S4Z6Z4oCL4Z6b4Z6A4Z+S4Z6B4Z6O4Z+I4oCL4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4Z6R4Z624Z6U4oCL4oCL4Z6T4Z+D4oCL4Z6A4Z624Z6a4oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6Z4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlQXVkaW9PdXRwdXQiIG1zZ2lkPSI2ODU3MTM0NDk4NDAyMzQ2NzA4Ij4i4Z6F4Z624Z6U4Z+L4oCL4Z6Z4Z6A4oCL4Z6b4Z6R4Z+S4Z6S4Z6V4Z6b4oCL4Z6i4Z684Z6M4Z644Z6Z4Z+J4Z68Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZUF1ZGlvT3V0cHV0IiBtc2dpZD0iNjIxMDU5Nzc1NDIxMjIwODg1MyI+IuKAi+GeseGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeiuGevuGemOGfkuGelOGeuOKAi+GeheGetuGelOGfi+KAi+GemeGegOKAiyDhnpPhnrfhnoTigIvigIvhnpThn5LhnorhnrzhnprigIvigIvhnpHhnrfhnp/igIvhnpvhnpHhn5LhnpLhnpXhnpvigIvhnqLhnrzhnozhnrjhnpnhn4nhnrzigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjIyNDY4Mjg3NzM1ODkwOTQwMjMiPiLhnoXhnrbhnpThn4vigIvhnpnhnoDigIvhnpvhnpHhn5LhnpLhnpXhnpvigIvhnpzhnrjhnorhn4HhnqLhnrwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIzNTk0ODE2NTgwMzQxNDk4NjAiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoXhnrbhnpThn4vigIvhnpnhnoDigIsg4Z6T4Z634Z6E4oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4oCL4Z6R4Z634Z6f4oCL4Z6b4Z6R4Z+S4Z6S4Z6V4Z6b4oCL4Z6c4Z644Z6K4Z+B4Z6i4Z684oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlU2VjdXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSI3ODE1Mzk4OTY5MzAzMzgyMDE2Ij4i4Z6F4Z624Z6U4Z+L4oCL4Z6Z4Z6A4oCL4Z6b4Z6R4Z+S4Z6S4Z6V4Z6b4oCL4Z6c4Z644Z6K4Z+B4Z6i4Z684oCL4Z6f4Z674Z6c4Z6P4Z+S4Z6Q4Z634Z6X4Z624Z6WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMjc3OTc5MzA2NDcwOTM1MDI4OSI+IuGesuGfkuGemeKAi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+KAi+KAi+GeheGetuGelOGfi+KAi+GemeGegCDigIvhnpPhnrfhnoTigIvhnpThn5LhnorhnrzhnprigIvhnpHhnrfhnp/igIvhnpvhnpHhn5LhnpLhnpXhnpvigIvhnpzhnrjhnorhn4HhnqLhnrzigIvhnorhn4LhnpvigIvhnpjhnrbhnpPigIvhnp/hnrvhnpzhno/hn5LhnpDhnrfhnpfhnrbhnpbigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeUF1ZGlvU2V0dGluZ3MiIG1zZ2lkPSI2MDk1ODU5OTM3MDY5MTQ2MDg2Ij4i4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6A4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6i4Z684Z6M4Z644Z6Z4Z684oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjM1MjI1NjUzNjY4MDYyNDg1MTciPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoDhn4LigIvhnoDhnrbhnprigIvhnoDhn4bhno7hno/hn4vigIvhnp/hn4bhnqHhn4HhnoTigIvhnp/hnoDhnpsg4Z6K4Z684Z6F4oCL4Z6H4Z624oCL4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4Z6f4Z+G4Z6h4Z+B4Z6EIOGek+Get+GehOKAi+GeouGevOGelOGfieGetuGem+GfkOGemuKAi+GeiuGfguGem+KAi+GelOGetuGek+KAi+GelOGfkuGemuGevuKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+Gem+GekeGfkuGekuGeleGem+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjb3JkQXVkaW8iIG1zZ2lkPSIzODc2MDQ5NzcxNDI3NDY2MzIzIj4i4Z6Q4Z6P4oCL4Z6f4Z+G4Z6h4Z+B4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjb3JkQXVkaW8iIG1zZ2lkPSI0OTA2ODM5MzAxMDg3OTgwNjgwIj4i4oCL4Z6x4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6Q4Z6P4oCL4Z6f4Z+G4Z6h4Z+B4Z6E4oCL4oCL4Z6H4Z624Z6Y4Z694Z6Z4oCL4Z6Y4Z644Z6A4Z+S4Z6a4Z684Z6g4Z+S4Z6c4Z684Z6T4oCL4oCL4oCL4Z+UIOGen+Get+GekeGfkuGekuGet+KAi+Gek+GfgeGfh+KAi+GeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekOGej+KAi+Gen+GfhuGeoeGfgeGehOKAi+KAi+Gek+GfheKAi+GeluGfgeGem+KAi+GejuGetuKAi+GemOGeveGemeKAi+GeiuGfhOGemeKAi+GeguGfkuGemOGetuGek+KAi+GegOGetuGemuKAi+GelOGeieGfkuGeh+GetuGegOGfi+KAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FtZXJhIiBtc2dpZD0iMzYxNjM5MTkxOTU1OTc1MTE5MiI+IuGekOGej+KAi+GemuGevOGelCDhnpPhnrfhnoThnpzhnrjhnorhn4HhnqLhnrwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYW1lcmEiIG1zZ2lkPSI4NDk3MjE2NTI0NzM1NTM1MDA5Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6Q4Z6P4oCL4Z6a4Z684Z6UIOGek+Get+GehOKAi+GenOGeuOGeiuGfgeGeouGevOKAi+GeiuGfhOGemeKAi+GelOGfkuGemuGevuKAi+GemOGfieGetuGen+GfiuGeuOGek+KAi+GekOGej+GflCDhnpzhnrbigIvhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvigIvhnpThn5Lhnprhnr7igIvhnpjhn4nhnrbhnp/hn4rhnrjhnpPigIvhnpDhno/igIvhnpPhn4XigIvhnpbhn4HhnpvigIvigIvhno7hnrbhnpjhnr3hnpnigIvhnorhn4ThnpnigIvhnoLhn5LhnpjhnrbhnpPigIvhnoDhnrbhnprigIvhnpThnonhn5LhnofhnrbhnoDhn4vigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYURpc2FibGVUcmFuc21pdExlZCIgbXNnaWQ9IjI2NTEwNzI2MzA1MDExMjYyMjIiPiLhnpThnrfhnpHigIvigIvhnpbhnpPhn5LhnpvhnrrigIvhnpThnoThn5LhnqDhnrbhnonigIvhnoDhnrbhnprigIvhnpThnonhn5LhnofhnrzhnpPigIvigIvhnpbhn4HhnpvigIvhnpjhn4nhnrbhnp/hn4rhnrjhnpPigIvhnpDhno/igIvhnoDhn4bhnpbhnrvhnoTigIvhnpThn5Lhnprhnr4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYW1lcmFEaXNhYmxlVHJhbnNtaXRMZWQiIG1zZ2lkPSI0NzY0NTg1NDY1NDgwMjk1MzQxIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6K4Z+G4Z6h4Z6+4Z6E4oCL4Z6a4Z694Z6F4oCL4Z6U4Z634Z6R4oCL4oCLIExFRCDhnpThnoThn5LhnqDhnrbhnonigIvhnoDhnrbhnprigIvhnpThn5Lhnprhnr7igIvhnpjhn4nhnrbhnp/hn4rhnrjhnpPigIvhnpDhno/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyOTYxMjkyMjA1NzY0NDg4MzA0Ij4i4Z6U4Z634Z6R4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6H4Z624oCL4Z6i4Z6F4Z634Z6T4Z+S4Z6P4Z+S4Z6a4Z+D4Z6Z4Z+NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icmljayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgzMzc4MTcwOTMzMjYzNzA1MzciPiLhnpThnrfhnpHigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnofhnrbigIvhnqLhnoXhnrfhnpPhn5Lhno/hn5Lhnprhn4Phnpnhn40iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icmljayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDMzNDgxODgwODAwMTY5OTUzMCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGet+GekeKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+KAi+KAi+Geh+GetuKAi+GeouGeheGet+Gek+GfkuGej+GfkuGemuGfg+GemeGfjeGflCDhnpzhnrbigIvhnpjhnrbhnpPigIvhnoLhn5Lhnprhn4Thn4fhnpDhn5LhnpPhnrbhnoDhn4vigIvhno7hnrbhnp/hn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icmljayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3ODg5MDMyOTc2MjcyODMwOTkiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThnrfhnpHigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnpHhnrbhn4bhnoTigIvhnpjhnrzhnpvigIvigIvhnofhnrbigIvhnqLhnoXhnrfhnpPhn5Lhno/hn5Lhnprhn4Phnpnhn43hn5Qg4Z6c4Z624oCL4Z6Y4Z624Z6T4oCL4Z6C4Z+S4Z6a4Z+E4Z+H4oCL4Z6Q4Z+S4Z6T4Z624Z6A4Z+L4oCL4Z6O4Z624Z6f4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWJvb3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM0MzY2MzQ5NzI1NjE3OTUwMDIiPiLhnpThnoThn5LhnoHhn4bigIvhnrLhn5LhnpnigIvhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4figIvhnqHhnr7hnoTigIvhnpzhnrfhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4OTg1NjA4NzI0NjI2MzgyNDIiPiLhnpThnoThn5LhnoHhn4bigIvhnrLhn5LhnpnigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnqHhnr7hnoThnpzhnrfhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgxNzIwNTYxODAwNjM3MDA3NDEiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThnoThn5LhnoHhn4bigIvhnrLhn5LhnpnigIvigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4figIvhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnqHhnr7hnoThnpzhnrfhnonhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MzI2MDA4MTI0Mjg5OTg5OTY5Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6E4Z+S4Z6B4Z+G4oCL4oCL4Z6y4Z+S4Z6Z4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6h4Z6+4Z6E4Z6c4Z634Z6J4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjI5MjczNjE1Mzc5NDI1OTE4NDEiPiLhnoDhnrbhnprigIvhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLigIvhnq/hnoDhnp/hnrbhnprigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDAyMzA1MDQ5ODkwOTUzODEwIj4i4Z6A4Z624Z6a4oCL4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4oCL4Z6v4Z6A4Z6f4Z624Z6a4oCL4Z6A4Z624Z6P4oCL4Z6i4Z+B4Z6f4Z6M4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW91bnRfdW5tb3VudF9maWxlc3lzdGVtcyIgbXNnaWQ9IjE4MjkyOTA3MDE2NTg5OTIzNDciPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpfhn5LhnofhnrbhnpThn4sg4Z6T4Z634Z6E4oCL4Z6V4Z+S4Z6K4Z624Z6F4Z+L4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4oCL4Z6v4Z6A4Z6f4Z624Z6a4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6F4Z6b4Z+Q4Z6P4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjIyNzgxOTU4MjYyNDkwNDk3MiI+IuGem+Geu+GelOKAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjYyNTgyNjk4NjM5Mjc0MDU2Ij4i4Z6b4Z674Z6U4oCL4Z6A4Z624Z6P4oCL4Z6i4Z+B4Z6f4Z6M4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBtc2dpZD0iODc4NDI2ODI0Njc3OTE5ODYyNyI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGfkuGenOGevuKAi+GekeGfkuGemuGehOGfi+GekeGfkuGemuGetuGemeKAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GeheGem+GfkOGej+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19hY2Nlc3MiIG1zZ2lkPSIzNDExMzM4NjMyMDAyMTkzODQ2Ij4i4Z6Z4Z6A4oCL4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6T4Z+F4oCL4Z6b4Z6+4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6B4Z624Z6E4Z6A4Z+S4Z6T4Z674Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19hY2Nlc3MiIG1zZ2lkPSIzMDk0NTYzODQ0NTkzODc4NTQ4Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6Z4Z6A4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6b4Z6+4oCL4Z6A4Z624Z6a4oCL4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6T4Z674Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX2NyZWF0ZSIgbXNnaWQ9IjY0MTQ3NTcyMzQ3ODkzMzYzMjciPiLhnpThnoThn5LhnoDhnr7hno/igIvigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnoHhnrbhnoThnoDhn5LhnpPhnrvhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX2NyZWF0ZSIgbXNnaWQ9IjQ1NTg4NjkyNzM1ODU4NTY4NzYiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThnoThn5LhnoDhnr7hno/igIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnoHhnrbhnoTigIvhnoDhn5LhnpPhnrvhnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjUyNjkyODMyODMwMTYxODAyMiI+IuGelOGfhuGeleGfkuGem+GetuGeieKAi+KAi+Gep+GelOGegOGemuGejuGfjeKAi+KAi+GeleGfkuGekeGeu+GegOKAi+GegeGetuGehOGegOGfkuGek+Geu+GehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjcyMTg3NDkyODYxNDU1MjY1MzciPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThn4bhnpXhn5LhnpvhnrbhnonigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnoHhnrbhnoTigIvhnoDhn5LhnpPhnrvhnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfbW91bnRfdW5tb3VudCIgbXNnaWQ9Ijg4Nzc5OTgxMDE5NDQ5OTkzODYiPiLhnpfhn5LhnofhnrbhnpThn4sv4Z6V4Z+S4Z6K4Z624Z6F4Z+L4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6T4Z674Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19tb3VudF91bm1vdW50IiBtc2dpZD0iMzQ1MTM2MDExNDkwMjQ5MDkyOSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gel+GfkuGeh+GetuGelOGfiy/hnpXhn5LhnorhnrbhnoXhn4vigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnoHhnrbhnoTigIvhnoDhn5LhnpPhnrvhnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfcmVuYW1lIiBtc2dpZD0iNzQ5NjYzMzk1NDA4MDQ3MjQxNyI+IuGelOGfkuGeiuGevOGemuKAi+GeiOGfkuGemOGfhOGfh+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GegeGetuGehOKAi+GegOGfkuGek+Geu+GehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfcmVuYW1lIiBtc2dpZD0iMTc5NDc1NzU4ODQ3MjEyNzY3NSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGfkuGeiuGevOGemuKAi+GeiOGfkuGemOGfhOGfh+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GegeGetuGehOKAi+GegOGfkuGek+Geu+GehOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdmlicmF0ZSIgbXNnaWQ9Ijc2OTY0MjcwMjYwNTc3MDU4MzQiPiLhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnoDhnrbhnprigIvhnonhn5DhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY192aWJyYXRlIiBtc2dpZD0iNjI4NDk4OTI0NTkwMjMwMDk0NSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeieGfkOGemuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZmxhc2hsaWdodCIgbXNnaWQ9IjIxNTU5MjA4MTAxMjE5ODQyMTUiPiLhno/hn5Lhnprhnr3hno/hnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnpbhnrfhnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mbGFzaGxpZ2h0IiBtc2dpZD0iNjUyMjI4NDc5NDU2ODM2ODMxMCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGet+Gek+Get+Gej+GfkuGemeKAi+GeluGet+Gem+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlVXNiIiBtc2dpZD0iMTExMzQ1MzQzMDY0NTQwMjcyMyI+IuGeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+GeheGfhuGejuGevOGem+KAi+GeheGet+Gej+GfkuGejyDhnpPhnrfhnoTigIvhnp/hnrfhnpHhn5LhnpLhnrfigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnqfhnpThnoDhnprhno7hn43igIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VVc2IiIG1zZ2lkPSI3Nzc2MTU1NDMwMjE4MjM5ODMzIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6E4oCL4Z6F4Z+G4Z6O4Z684Z6b4oCL4Z6F4Z634Z6P4Z+S4Z6PIOGek+Get+GehOKAi+Gen+Get+GekeGfkuGekuGet+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTXRwIiBtc2dpZD0iNDk1MzQ2ODY3Njc5NTkxNzA0MiI+IuGeouGek+Geu+GenOGej+GfkuGej+KAi+GeluGet+GekuGeuOGegOGetuGemiBNVFAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NNdHAiIG1zZ2lkPSI2NTMyOTYxMjAwNDg2NzkxNTcwIj4i4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6J4Z+S4Z6H4Z62IGtlcm5lbCBNVFAg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6i4Z6T4Z674Z6c4Z6P4Z+S4Z6P4oCL4Z6W4Z634Z6S4Z644Z6A4Z624Z6a4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z64IE1UUCDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2hhcmR3YXJlX3Rlc3QiIG1zZ2lkPSI0MTQ4MjkwODYwNDAwNjU5MTQ2Ij4i4Z6f4Z624Z6A4Z6b4Z+S4Z6U4Z6E4oCL4Z6V4Z+S4Z6T4Z+C4Z6A4oCL4Z6a4Z654Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjY1OTc5NjQxOTEyMDgwMTY2MDUiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnoLhn5Lhnprhnr/hnoTigIvhnpXhn5Lhnp/hn4HhnoThn5figIvigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnp/hnrbhnoDhnpvhn5LhnpThnoTigIvhnpXhn5LhnpPhn4LhnoDigIvhnprhnrnhnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbGxQaG9uZSIgbXNnaWQ9IjM5MjU4MzYzNDc2ODE4NDc5NTQiPiLhnqDhn4XigIvhnpvhn4HhnoHigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnorhn4ThnpnigIvhnpXhn5LhnpHhnrbhnpvhn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYWxsUGhvbmUiIG1zZ2lkPSIzNzQwNzk3NTc2MTEzNzYwODI3Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6g4Z+F4oCL4Z6b4Z+B4Z6B4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6K4Z+E4Z6Z4oCL4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6f4Z6A4Z6Y4Z+S4Z6Y4Z6X4Z624Z6W4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+U4oCLIOGenOGetuKAi+GeouGetuGeheKAi+GegOGetuGej+Gfi+KAi+Gem+Geu+GemeKAiyDhnqzigIvhnqDhn4XigIvhnorhn4ThnpnigIvhnpjhnrfhnpPigIvhnprhn4bhnpbhnrnhnoTigIvhnpHhnrvhnoDhn5Qg4Z6F4Z+G4Z6O4Z624Z+G4oCL4Z6Q4Z624oCLIOGenOGetuKAi+GemOGet+Gek+KAi+GeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeoOGfheKAi+Gem+GfgeGegeKAi+GeluGfgeGem+KAi+GeouGetuGen+Gek+GfkuGek+KAi+GekeGfgeGflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnoDhnrbhno/hn4vigIvhnpvhnrvhnpnigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIsg4Z6K4Z+E4Z6Z4oCL4Z6S4Z+S4Z6c4Z6+4Z6A4Z624Z6a4oCL4Z6g4Z+F4oCL4Z6K4Z+E4Z6Z4oCL4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6A4Z624Z6a4oCL4Z6U4Z6J4Z+S4Z6H4Z624Z6A4Z+L4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWxsUHJpdmlsZWdlZCIgbXNnaWQ9IjQxOTgzNDkyMTExMDg0OTc4NzkiPiLhnqDhn4XigIvhnpvhn4HhnoHigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhno7hnrbhnpjhnr3hnpnigIvhnorhn4ThnpnigIvhnpXhn5LhnpHhnrbhnpvhn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYWxsUHJpdmlsZWdlZCIgbXNnaWQ9IjE2ODkwMjQ5MDE1MDk5OTY4MTAiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqDhn4XigIvhnpvhn4HhnoHigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpEg4Z6a4Z694Z6Y4Z6Y4Z624Z6T4oCL4Z6b4Z+B4Z6B4oCL4Z6W4Z+B4Z6b4oCL4Z6i4Z624Z6f4Z6T4Z+S4Z6T4oCL4Z6K4Z+E4Z6Z4oCL4Z6C4Z+S4Z6Y4Z624Z6T4oCL4oCL4Z6i4Z+G4Z6W4Z6+4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIOGegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGfkuGemeGetuGelOGetuGekeKAi+GeouGetuGeheKAi+GeiuGetuGegOGfi+KAi+GegOGetuGemuKAi+GeoOGfheKAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenCDhnpPhnrfhnoTigIvhnoXhnrbhn4bhnpThnrbhnoXhn4vigIvhnpHhn4XigIvhnp/hn4HhnpzhnrbhnoDhnpjhn5LhnpjigIvhnpbhn4HhnpvigIvhnqLhnrbhnp/hnpPhn5LhnpPhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0ODQyNTc2OTk0MTQ0NjA0ODIxIj4i4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6a4Z+A4Z6U4Z6F4Z+G4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+HIENETUEg4Z6K4Z+E4Z6Z4oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU2MDQ4NDgwOTUzMTU0MjE0MjUiPiLhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnprhn4DhnpThnoXhn4bigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4cgQ0RNQSDhnorhn4ThnpnigIvhnpXhn5LhnpHhnrbhnpvhn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgbXNnaWQ9IjE5OTQxOTM1Mzg4MDIzMTQxODYiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnoDhnrbhnprigIvhnpXhn5Lhnorhnpvhn4sgQ0RNQSDhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6Y4Z634Z6T4oCL4Z6F4Z624Z+G4Z6U4Z624Z6F4Z+L4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6A4Z624Z6a4oCL4Z6V4Z+S4Z6K4Z6b4Z+LIENETUEg4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9sb2NhdGlvblVwZGF0ZXMiIG1zZ2lkPSI3Nzg1NDA4MjUzMzY0MzM1NzQwIj4i4Z6W4Z634Z6T4Z634Z6P4Z+S4Z6Z4oCL4oCL4Z6A4Z624Z6a4oCL4Z6H4Z684Z6T4oCL4Z6K4Z+G4Z6O4Z654Z6E4oCL4Z6U4Z6F4Z+S4Z6F4Z674Z6U4Z+S4Z6U4Z6T4Z+S4Z6T4oCL4Z6X4Z624Z6W4oCL4Z6R4Z644Z6P4Z624Z+G4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbG9jYXRpb25VcGRhdGVzIiBtc2dpZD0iMTEyMDc0MTU1Nzg5MTQzODg3NiI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGet+GekS/hnpThnr7hnoDigIvhnoDhnrbhnprigIvhnofhnrzhnpPigIvhnorhn4bhno7hnrnhnoTigIvhnpThnoXhn5LhnoXhnrvhnpThn5LhnpThnpPhn5LhnpPhnpfhnrbhnpbigIvhnpHhnrjhno/hnrbhn4bhnoTigIvhnpbhnrjigIvhnpzhnrfhnpHhn5Lhnpnhnrvhn5Qg4Z6Y4Z634Z6T4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6K4Z+E4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6S4Z6Y4Z+S4Z6Y4Z6P4Z624oCL4Z6R4Z+B4Z+U4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGVja2luUHJvcGVydGllcyIgbXNnaWQ9Ijc4NTUyNTk0NjEyNjg3MzQ5MTQiPiLhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnpvhnoDhn5LhnoHhno7hn4jigIvhnp/hnpjhn5LhnpThno/hn5Lhno/hnrfigIvhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnpjhnr7hnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGVja2luUHJvcGVydGllcyIgbXNnaWQ9IjQwMjQ1MjY5Njg2MzAxOTQxMjgiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhnrbhnpMv4Z6f4Z6a4Z6f4Z+B4Z6a4oCL4Z6b4Z6A4Z+S4Z6B4Z6O4Z6f4Z6Y4Z+S4Z6U4Z6P4Z+S4Z6P4Z634oCL4Z6U4Z624Z6T4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6h4Z6+4Z6E4oCL4Z6K4Z+E4Z6Z4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6Y4oCL4Z6W4Z634Z6T4Z634Z6P4Z+S4Z6Z4oCL4Z6Y4Z6+4Z6b4Z+UIOGemOGet+Gek+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GelOGfkuGemuGevuKAi+GeiuGfhOGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZEdhZGdldCIgbXNnaWQ9Ijc3NjkwNTMzOTAxNTg2MzQ3MSI+IuGeh+GfkuGemuGevuGen+KAi+KAi+GekuGetuGej+Geu+KAi+GegOGfkuGemuGetuGeoOGfkuGenOGet+GegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRHYWRnZXQiIG1zZ2lkPSI4MjYxMzI2OTM4NTk5MDQ5MjkwIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4oCL4Z6Q4Z624oCL4Z6S4Z624Z6P4Z674oCL4Z6A4Z+S4Z6a4Z624Z6g4Z+S4Z6c4Z634Z6A4oCL4Z6O4Z624Z6Y4Z694Z6Z4oCL4oCL4Z6i4Z624Z6F4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6K4Z+E4Z6Z4oCL4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6O4Z624oCL4Z6Y4Z694Z6Z4Z+U4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6K4Z+C4Z6b4oCL4Z6Y4Z624Z6T4oCL4Z6f4Z634Z6R4Z+S4Z6S4Z634oCL4Z6T4Z+B4Z+H4oCL4Z6i4Z624Z6F4oCL4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4oCL4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+L4Z6B4Z+S4Z6b4Z694Z6T4Z+UIOGemOGet+Gek+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GelOGfkuGemuGevuKAi+GeiuGfhOGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW9kaWZ5UGhvbmVTdGF0ZSIgbXNnaWQ9Ijg0MjM5MjM3Nzc2NTkyOTIyMjgiPiLhnoDhn4LigIvhnp/hn5LhnpDhnrbhnpPhnpfhnrbhnpbigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb2RpZnlQaG9uZVN0YXRlIiBtc2dpZD0iMTAyOTg3NzUyOTAwNzY4NjczMiI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeluGet+Gek+Get+Gej+GfkuGemeKAi+Gem+GegOGfkuGegeGejuGfiOKAi+GekeGevOGemuGen+GfkOGeluGfkuGekeKAi+Gek+Gfg+KAi+Gep+GelOGegOGemuGejuGfjeGflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnorhn4LhnpvigIvhnpjhnrbhnpPigIvhnp/hnrfhnpHhn5LhnpLhnrfigIvhnpPhn4Hhn4figIvhnqLhnrbhnoXigIvhnpThn5LhnorhnrzhnprigIvhnpThno7hn5Lhnorhnrbhnokg4Z6U4Z634Z6RIOGek+Get+GehOKAi+GelOGevuGegOGenOGet+GekeGfkuGemeGeu+KAi+GegOGfkuGek+Geu+GehOKAi+GekeGevOGemuGen+GfkOGeluGfkuGekeKAi+GeiuGfhOGemeKAi+GemOGet+Gek+KAi+Geh+GevOGek+KAi+GeiuGfhuGejuGeueGehOKAi+GeouGfkuGek+GegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFBob25lU3RhdGUiIG1zZ2lkPSI5MTc4MjI4NTI0NTA3NjEwNDg2Ij4i4Z6i4Z624Z6T4oCL4Z6f4Z+S4Z6Q4Z624Z6T4Z6X4Z624Z6WIOGek+Get+GehOKAi+GeouGej+GfkuGej+Gen+GeieGfkuGeieGetuGejuKAi+GekeGevOGemuGen+GfkOGeluGfkuGekSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRQaG9uZVN0YXRlIiBtc2dpZD0iMTYzOTIxMjc3MTgyNjEyNTUyOCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+Gem+GegOGfkuGegeGejuGfiOKAi+GekeGevOGemuGen+GfkOGeluGfkuGekeKAi+Gek+Gfg+KAi+Gep+GelOGegOGemuGejuGfjeGflCDhnp/hnrfhnpHhn5LhnpLhnrfigIvhnpPhn4Hhn4figIvigIvhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoDhn4bhno7hno/hn4vigIvhnpvhn4HhnoHigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpEg4Z6T4Z634Z6E4oCL4Z6b4Z+B4Z6B4oCL4Z6f4Z6Y4Z+S4Z6C4Z624Z6b4Z+L4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+NIOGekOGetuKAi+Gej+GevuKAi+GegOGetuGemuKAi+GeoOGfheKAi+Gen+GegOGemOGfkuGemCDhnpPhnrfhnoTigIvhnpvhn4HhnoHigIvhnpbhnrjigIvhnoXhnpjhn5LhnoThnrbhnpnigIvhnpThnrbhnpPigIvhnpfhn5LhnofhnrbhnpThn4vigIvhnorhn4ThnpnigIvhnoDhnrbhnprigIvhnqDhn4Xhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dha2VMb2NrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTMxNzMxNDM1MDExNDk1MDE1Ij4i4Z6A4Z624Z6a4Z6W4Z624Z6a4oCL4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6Y4Z634Z6T4oCL4Z6y4Z+S4Z6Z4oCL4Z6K4Z+B4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93YWtlTG9jayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MzQ4MDE4Nzk0MTQ5NjEzMCI+IuGegOGetuGemuKAi+GeluGetuGemuKAi+GekeGevOGemuGen+GfkOGeluGfkuGekeKAi+GemOGet+Gek+KAi+GesuGfkuGemeKAi+GeiuGfgeGegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dha2VMb2NrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3MzExMzE5ODI0NDAwNDQ3ODY4Ij4i4Z6y4Z+S4Z6Z4oCL4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z624Z6a4Z6W4Z624Z6a4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6Y4Z634Z6T4oCL4Z6y4Z+S4Z6Z4oCL4Z6K4Z+B4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd2FrZUxvY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NTU5MTAwNjc3MzcyOTI4NzU0Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z624Z6a4Z6W4Z624Z6a4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6Y4Z634Z6T4oCL4Z6y4Z+S4Z6Z4oCL4Z6K4Z+B4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZXZpY2VQb3dlciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjc4NzAzNDcyMjYxNjM1MDQxNyI+IuGelOGet+GekS/hnpThnr7hnoDigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RldmljZVBvd2VyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDkyODYyMjQ3MDk4MDk0MzIwNiI+IuGelOGet+GekS/hnpThnr7hnoDigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZXZpY2VQb3dlciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY4OTg2Mjg3ODk4NDYzMTgzMSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGet+GekS/hnpThnr7hnoDigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4fhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZXZpY2VQb3dlciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjYwMzcwNTczNDg0NjMxMzEwMzIiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThnrfhnpEv4Z6U4Z6+4Z6A4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mYWN0b3J5VGVzdCIgbXNnaWQ9IjM3MTUyMjU0OTI2OTY0MTYxODciPiLhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnoDhn5LhnpPhnrvhnoTigIvhnprhnpThn4DhnpTigIvhnp/hnrbhnoDhnpvhn5LhnpThnoTigIvhnpbhnrjigIvhnprhn4ThnoThnoXhnoDhn5LhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mYWN0b3J5VGVzdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzk1MjA1OTMxODM1OTY1MzA5MSI+IuGeiuGfhuGejuGevuGemuGegOGetuGemuKAi+Gen+GetuGegOGem+GfkuGelOGehOKAi+GegOGfkuGemuGeu+GemOGeoOGfiuGeu+Gek+KAi+GeleGem+Get+Gej+KAi+GegOGemOGfkuGemuGet+Gej+KAi+GekeGetuGelCDhnorhn4ThnpnigIvhnqLhnpPhnrvhnonhn5Lhnonhnrbhno/igIvhnrLhn5LhnpnigIvhnoXhnrzhnpvigIvhnpXhn5LhnpPhn4LhnoDigIvhnprhnrnhnoTigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4fhn5Qg4Z6i4Z624Z6F4oCL4Z6U4Z+S4Z6a4Z6+4oCL4oCL4Z6U4Z624Z6T4oCL4Z6P4Z+C4oCL4Z6W4Z+B4Z6b4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6a4Z6U4Z+A4Z6U4oCL4Z6f4Z624Z6A4Z6b4Z+S4Z6U4Z6E4oCL4Z6A4Z+S4Z6a4Z674Z6Y4Z6g4Z+K4Z674Z6T4oCL4Z6V4Z6b4Z634Z6P4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MTM2NjQ0OTkwMzE5MjQ0ODAyIj4i4Z6K4Z+G4Z6O4Z6+4Z6a4oCL4Z6A4Z624Z6a4oCL4Z6A4Z624Z6a4oCL4Z6f4Z624Z6A4Z6b4Z+S4Z6U4Z6E4oCL4Z6A4Z+S4Z6a4Z674Z6Y4Z6g4Z+K4Z674Z6T4oCL4Z6V4Z6b4Z634Z6P4oCL4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4Z6R4Z624Z6UIOGeiuGfhOGemeKAi+GeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GegOGetuGemuKAi+GeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+GeleGfkuGek+GfguGegOKAi+GemuGeueGehOKAi+GekeGevOGemuGen+GfkOGeluGfkuGekeGflCDhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpThnrbhnpPigIvhno/hn4LigIvhnpPhn4XigIvhnpbhn4HhnpvigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnoDhn4bhnpbhnrvhnoTigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnprhnpThn4DhnpTigIvhnp/hnrbhnoDhnpvhn5LhnpThnoTigIvhnoDhn5LhnprhnrvhnpjhnqDhn4rhnrvhnpPigIvhnpXhnpvhnrfhno/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFdhbGxwYXBlciIgbXNnaWQ9IjY2MjcxOTIzMzMzNzM0NjUxNDMiPiLhnoDhn4bhno7hno/hn4vigIvhnpXhn5LhnpHhnrbhn4bhnoTigIvhnprhnrzhnpThnpfhnrbhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRXYWxscGFwZXIiIG1zZ2lkPSI3MzczNDQ3OTIwOTc3NjI0NzQ1Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6V4Z+S4Z6R4Z624Z+G4Z6E4oCL4Z6a4Z684Z6U4Z6X4Z624Z6W4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRXYWxscGFwZXJIaW50cyIgbXNnaWQ9IjMyNzg2MDgxNjU5Nzc3MzY1MzgiPiLhnoDhn4Lhno/hnpjhn5LhnprhnrzhnpzigIvhnpHhn4bhnqDhn4bigIvhnpXhn5LhnpHhnrbhn4bhnoTigIvhnprhnrzhnpThnpfhnrbhnpbigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRXYWxscGFwZXJIaW50cyIgbXNnaWQ9IjgyMzU3ODQzODQyMjM3MzAwOTEiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoDhn4bhno7hno/hn4vigIvhnofhn4bhnpPhnr3hnpnigIvhnpHhn4bhnqDhn4bigIvhnpXhn5LhnpHhnrbhn4bhnoTigIvhnprhnrzhnpThnpfhnrbhnpbigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hc3RlckNsZWFyIiBtc2dpZD0iMjMxNTc1MDQyMzEzOTY5NzM5NyI+IuGegOGfhuGejuGej+Gfi+KAi+GelOGfkuGemuGeluGfkOGek+GfkuGekuKAi+GekeGfheKAi+Gem+GfhuGek+GetuGfhuGeiuGevuGemOKAi+GemuGfhOGehOGeheGegOGfkuGemuKAi+GeoeGevuGehOGenOGet+GeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hc3RlckNsZWFyIiBtc2dpZD0iMzY2NTM4MDQ5MjYzMzkxMDIyNiI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GegOGfhuGejuGej+Gfi+KAi+GelOGfkuGemuGeluGfkOGek+GfkuGekuKAi+KAi+GeiuGevOGeheKAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GeheGfgeGeieKAi+GeluGeuOKAi+GemuGfhOGehOGeheGegOGfkuGemuKAi+GeoeGevuGehOGenOGet+GeieKAi+GeluGfgeGeieGem+GfgeGeiSDhnorhn4ThnpnigIvhnpvhnrvhnpTigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5Dhnpkg4Z6A4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6a4Z6F4Z6T4Z624Z6f4Z6Y4Z+S4Z6W4Z+Q4Z6T4Z+S4Z6SIOGek+Get+GehOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGetuGek+KAi+GeiuGfhuGeoeGevuGehOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0VGltZSIgbXNnaWQ9IjIwMjE2MTQ4Mjk1OTE3NzU2NDYiPiLhnoDhn4bhno7hno/hn4vigIvigIvhnpjhn4nhn4ThnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxODk2MzQxNDM4MTUxMTUyODgxIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6Y4Z+J4Z+E4Z6E4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE4NTU3MDI3MzA3MzgwMjAiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThn5LhnorhnrzhnprigIvhnpjhn4nhn4ThnoTigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFRpbWVab25lIiBtc2dpZD0iMjk0NTA3OTgwMTAxMzA3NzM0MCI+IuGegOGfhuGejuGej+Gfi+KAi+Gej+GfhuGelOGek+Gfi+KAi+GeluGfgeGem+GenOGfgeGem+GetiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNjc2OTgzNzEyMzE1ODI3NjQ1Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6P4Z+G4Z6U4Z6T4Z+L4oCL4Z6W4Z+B4Z6b4Z6c4Z+B4Z6b4Z624oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6T4Z+B4Z+H4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZVpvbmUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDk5OTQzNDg4NDM2NjMzMzk4Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6P4Z+G4Z6U4Z6T4Z+L4oCL4Z6W4Z+B4Z6b4Z6c4Z+B4Z6b4Z624oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2NvdW50TWFuYWdlclNlcnZpY2UiIG1zZ2lkPSI0ODI5MjYyMzQ5NjkxMzg2OTg2Ij4i4Z6K4Z6+4Z6a4oCL4Z6P4Z694oCL4Z6H4Z62IEFjY291bnRNYW5hZ2VyU2VydmljZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjE5NDg0NTU1NTIzMzM2MTU5NTQiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqDhn4XigIvhnpHhn4XigIvigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvigIvhnpXhn5LhnpHhn4DhnoThnpXhn5LhnpHhnrbhno/hn4vigIvhnoLhno7hnpPhnrjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldEFjY291bnRzIiBtc2dpZD0iMTA4Njc5NTQ2Nzc2MDEyMjExNCI+IuGemuGegOKAi+GeguGejuGek+GeuOKAi+Gem+GevuKAi+Gep+GelOGegOGemuGejuGfjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNzQxNDk2NTM0NzY5NjYwMDI3Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6R4Z6R4Z694Z6b4oCL4Z6U4Z6J4Z+S4Z6H4Z644oCL4Z6C4Z6O4Z6T4Z644oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6f4Z+S4Z6C4Z624Z6b4Z+L4oCL4Z6K4Z+E4Z6Z4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4Z+UIOGenOGetuKAi+GeouGetuGeheKAi+GemuGeveGemOKAi+GemOGetuGek+KAi+GeguGejuGek+GeuOKAi+GejuGetuGemOGeveGemeKAi+GeiuGfguGem+KAi+GelOGetuGek+KAi+GelOGehOGfkuGegOGevuGej+KAi+GeiuGfhOGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeiuGfguGem+KAi+GeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GeiuGfhuGeoeGevuGehOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ0ODMxNjgyMjQ1MTgwNzM4MiI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekeGekeGeveGem+KAi+GelOGeieGfkuGeh+GeuOKAi+GeguGejuGek+GeuOKAi+GeiuGfguGem+KAi+GekeGevOGemuGen+GfkOGeluGfkuGekeKAi+KAi+GelOGetuGek+KAi+Gen+GfkuGeguGetuGem+Gfi+KAi+GflCDhnpzhnrbigIvhnqLhnrbhnoXigIvhnpjhnrbhnpPigIvhnoLhno7hnpPhnrjigIvhnorhn4LhnpvigIvhnpThnrbhnpPigIvhnpThnoThn5LhnoDhnr7hno/igIvhnorhn4ThnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnorhn4LhnpvigIvhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnorhn4bhnqHhnr7hnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2F1dGhlbnRpY2F0ZUFjY291bnRzIiBtc2dpZD0iNTI2NTkwODQ4MTE3MjczNjkzMyI+IuGelOGehOGfkuGegOGevuGej+KAi+GeguGejuGek+GeuCDhnpPhnrfhnoTigIvhnoDhn4bhno7hno/hn4vigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hdXRoZW50aWNhdGVBY2NvdW50cyIgbXNnaWQ9IjU0NzIxMjQyOTY5MDg5NzcyNjAiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThn5Lhnprhnr7igIvhnp/hnpjhno/hn5LhnpDhnpfhnrbhnpbigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5LhnpHhn4DhnoThnpXhn5LhnpHhnrbhno/hn4vigIvhnoLhno7hnpPhnrjigIvhnpPhn4PigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoLhn5LhnprhnpThn4vhnoLhn5LhnprhnoTigIvhnoLhno7hnpPhnrgg4Z6a4Z694Z6Y4Z6Y4Z624Z6T4oCL4Z6U4Z6E4Z+S4Z6A4Z6+4Z6P4oCL4Z6C4Z6O4Z6T4Z64IOGek+Get+GehOKAi+GekeGekeGeveGemyDhnpbhn5LhnprhnpjigIvhnpHhnrbhn4bhnoTigIvhnoDhn4bhno7hno/hn4vigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFjY291bnRzIiBtc2dpZD0iNDk4MzEyNjMwNDc1NzE3NzMwNSI+IuGelOGek+GfkuGekOGfguGemOKAiyDhnqzigIvhnpvhnrvhnpTigIvigIvhnoLhno7hnpPhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBY2NvdW50cyIgbXNnaWQ9Ijg2OTgyOTU2MjU0ODgyOTI1MDYiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvigIvhnqLhnpPhnrvhnpzhno/hn5Lhno/igIvhnpThn5Lhnprhno/hnrfhnpThno/hn5Lhno/hnrfhnoDhnrbhnprigIvhnorhnrzhnoXhnofhnrYg4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6YIOGek+Get+GehOKAi+Gem+Geu+GelOKAi+GeguGejuGek+GeuCDhnpbhn5LhnprhnpjigIvhnpHhnrbhn4bhnoTigIvhnpvhnrvhnpTigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VzZUNyZWRlbnRpYWxzIiBtc2dpZD0iMjM1NDgxMzk2MTYzODc3NjQyIj4i4Z6U4Z+S4Z6a4Z6+4oCL4Z6C4Z6O4Z6T4Z644oCL4oCL4oCL4Z6b4Z6+4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXNlQ3JlZGVudGlhbHMiIG1zZ2lkPSI3OTg0MjI3MTQ3NDAzMzQ2NDIyIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6f4Z+S4Z6T4Z6+4oCL4Z6T4Z634Z6Y4Z634Z6P4Z+S4Z6P4Z6f4Z6J4Z+S4Z6J4Z624oCL4Z6V4Z+S4Z6R4Z+A4Z6E4Z6V4Z+S4Z6R4Z624Z6P4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOZXR3b3JrU3RhdGUiIG1zZ2lkPSI0OTUxMDI3OTY0MzQ4OTc0NzczIj4i4Z6Y4Z6+4Z6b4oCL4Z6A4Z624Z6a4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTmV0d29ya1N0YXRlIiBtc2dpZD0iODMxODk2NDQyNDY3NTk2MDk3NSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GemOGevuGem+KAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+GeouGfhuGeluGeuOKAi+GegOGetuGemuKAi+Gej+Gel+GfkuGeh+GetuGelOGfi+KAi+GelOGejuGfkuGeiuGetuGeieKAi+GeiuGevOGeheGeh+GetuKAi+KAi+GemOGetuGek+KAi+GelOGejuGfkuGeiuGetuGeieKAi+GejuGetuGemOGeveGemeKAiyDhnpPhnrfhnoTigIvhnpThno7hn5LhnorhnrbhnonigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnpfhn5LhnofhnrbhnpThn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iODAxODc1ODEzNjQwNDMyMzY1OCI+IuGeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+GelOGejuGfkuGeiuGetuGeieKAi+GeluGfgeGeieKAi+Gem+GfgeGeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iMzQwMzA2MjE4Nzc3OTcyNDE4NSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGehOGfkuGegOGevuGej+KAi+GemuGek+GfkuGekuKAi+GelOGejuGfkuGeiuGetuGeieKAiyDhnpPhnrfhnoTigIvhnpThn5Lhnprhnr7igIvhnpbhnrfhnpLhnrjhnoDhnrbhnprigIvhnpThno7hn5LhnorhnrbhnonigIvhno/hnrbhnpjigIvhnpThn4bhno7hnoThn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z+K4Z644Z6T4Z6S4Z664Z6O4Z634Z6P4oCLIOGek+Get+GehOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGen+GfgeGehOKAi+Gfl+KAi+GeleGfkuGeiuGem+Gfi+KAi+GenOGet+GekuGeuOKAi+GeleGfkuGeieGevuKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GekeGfheKAi+GeouGfiuGeuOGek+GekuGeuuGejuGet+GejyDhnorhnrzhnoXhn5LhnpPhn4Hhn4figIvhnp/hnrfhnpHhn5LhnpLhnrfigIvhnpPhn4Hhn4figIvhnpjhnrfhnpPigIvhnpHhnrbhnpjhnpHhnrbhnprigIvhnrLhn5LhnpnigIvhnpXhn5Lhnonhnr7igIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpHhn4XigIvhnqLhn4rhnrjhnpPhnpLhnrrhno7hnrfhno/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MDU2NjAxNTk2NzU3NTE4OTYiPiLhnpThn5Lhnorhnrzhnpov4Z6U4Z6J4Z+S4Z6I4Z6U4Z+L4oCL4Z6F4Z6a4Z624Z6F4Z6a4Z6O4Z+NIOGek+Get+GehOKAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+KAi+GelOGejuGfkuGeiuGetuGeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MzMzNzk4ODg2NDEyNzE0MTkzIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6A4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6JIOGek+Get+GehOKAi+GemuGetuGemuGetuGfhuGehOKAiyDhnpPhnrfhnoTigIvhno/hnrbhnpjhnorhnrbhnpPigIvhnoXhnprhnrbhnoXhnprhno7hn43igIvhnpThno7hn5Lhnorhnrbhnokg4Z6n4Z6R4Z624Z6g4Z6a4Z6O4Z+NIOGeiuGevuGemOGfkuGelOGeuOKAi+GelOGfkuGeiuGevOGemuKAi+GelOGfkuGemuGevOGegOGen+GfiuGeuCDhnpPhnrfhnoTigIvhnoXhn5LhnprhnoAgQVBOIOGflOKAiyDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnpbhnrfhnpPhnrfhno/hn5Lhnpkg4Z6U4Z6J4Z+S4Z6H4Z684Z6T4oCL4Z6U4Z6T4Z+S4Z6PIOGerOKAi+GegOGfguKAi+GegOGeieGfkuGeheGelOGfi+KAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+GelOGejuGfkuGeiuGetuGeieKAi+GeiuGfhOGemeKAi+GemOGet+Gek+KAi+GesuGfkuGemeKAi+GeouGfkuGek+GegOKAi+GeiuGeueGehOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlTmV0d29ya1N0YXRlIiBtc2dpZD0iOTU4ODg0MjkxNDU0MzI3MzA5Ij4i4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6A4Z624Z6a4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlTmV0d29ya1N0YXRlIiBtc2dpZD0iNjc4OTEyMzkxMjQ3NjQxNjIxNCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGfkuGeiuGevOGemuKAi+Gen+GfkuGekOGetuGek+Gel+GetuGeluKAi+Gej+Gel+GfkuGeh+GetuGelOGfi+KAi+GelOGejuGfkuGeiuGetuGeieGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlVGV0aGVyU3RhdGUiIG1zZ2lkPSI1OTUyNTg0OTY0MzczMDE3OTYwIj4i4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6A4Z624Z6a4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlVGV0aGVyU3RhdGUiIG1zZ2lkPSIxNTI0NDQxMzQ0NDEyMzE5NzgwIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6f4Z+S4Z6Q4Z624Z6T4Z6X4Z624Z6W4oCL4Z6A4Z624Z6a4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSIxNDAwNjY2MDEyNjcxNjQ4NzQxIj4i4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6A4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6V4Z+S4Z6R4Z+D4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6a4Z+E4Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQmFja2dyb3VuZERhdGFTZXR0aW5nIiBtc2dpZD0iNTM0NzcyOTU3ODQ2ODc0NDM3OSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGfkuGeiuGevOGemuKAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GegOGetuGemuKAi+GelOGfkuGemuGevuKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GeleGfkuGekeGfg+KAi+GegeGetuGehOKAi+GegOGfkuGemuGfhOGemeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2lmaVN0YXRlIiBtc2dpZD0iNTIwMjAxMjk0OTI0NzA0MDAxMSI+IuGemOGevuGem+KAi+GegOGetuGemuKAi+Gej+Gel+GfkuGeh+GetuGelOGfi+KAi+GenOGfieGetuGemeGeoOGfkuGenOGetuGemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1dpZmlTdGF0ZSIgbXNnaWQ9IjUwMDI3OTgwNzczODc4MDM3MjYiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpjhnr7hnpvigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnqLhn4bhnpbhnrjigIvhnpThno7hn5LhnorhnrbhnonigIvhnpzhn4nhnrbhnpnhnqDhn5Lhnpzhnrbhnpkg4Z6K4Z684Z6F4oCL4Z6H4Z624oCL4Z6Q4Z624oCL4Z6P4Z6+4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6Z4oCL4Z6U4Z624Z6T4oCL4Z6U4Z6+4Z6A4oCL4Z6K4Z+C4Z6a4oCL4Z6s4Z6R4Z+BIOGek+Get+GehOKAi+GeiOGfkuGemOGfhOGfh+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GenOGfieGetuGemeGeoOGfkuGenOGetuGemeKAi+GeiuGfguGem+KAi+GelOGetuGek+KAi+Gej+Gel+GfkuGeh+GetuGelOGfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2lmaVN0YXRlIiBtc2dpZD0iNjU1MDY0MTE4ODc0OTEyODAzNSI+IuGel+GfkuGeh+GetuGelOGfiyDhnpPhnrfhnoTigIvhnpXhn5LhnorhnrbhnoXhn4vigIvhnpbhnrjigIvhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI3MTM3OTUwMjk3Mzg2MTI3NTMzIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+LIOGek+Get+GehOKAi+GeleGfkuGeiuGetuGeheGfi+KAi+GeluGeuOKAi+GeheGfhuGejuGeu+GeheKAi+GeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+GenOGfieGetuGemeGeoOGfkuGenOGetuGemSDhnpPhnrfhnoTigIvigIvhnpLhn5Lhnpzhnr7hnoDhnrbhnprigIvhnpXhn5Lhnpvhnrbhnp/hn4vhnpThn5LhnorhnrzhnprigIvhnoDhnrbhnprigIvhnoDhn4bhno7hno/hn4vigIvhnprhnoXhnpPhnrbhnp/hnpjhn5Lhnpbhn5DhnpPhn5LhnpLigIvhnqfhnpThnoDhnprhno7hn43igIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnpThno7hn5LhnorhnrbhnonigIvhnpzhn4nhnrbhnpnhnqDhn5Lhnpzhnrbhnpnhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgbXNnaWQ9IjEzNjgyNTM4NzE0ODMyNTQ3ODQiPiLhnqLhnpPhnrvhnonhn5Lhnonhnrbhno/igIvhnpHhnpHhnr3hnpvigIvigIvhnpjhn4nhnrbhnpvhn4vhnpLhnrjhnoHhnrbhnp/igIvhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijc5Njk3NzQwMjEyNTYzMzY1NDgiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpHhnpHhnr3hnpvigIvhnoDhnonhn5LhnoXhnpThn4vigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnorhn4LhnpvigIvhnpThnrbhnpPigIvhnpXhn5Lhnonhnr7igIvhnpHhn4XigIvhnqfhnpThnoDhnprhno7hn43igIvhnpHhnrbhn4bhnoThnqLhnp/hn4vigIvhnpvhnr7igIvhnpThno7hn5LhnorhnrbhnonigIvhnpzhn4nhnrbhnpnigIvhnqDhn5Lhnpzhnrbhnpkg4Z6K4Z+E4Z6Z4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6i4Z624Z6f4Z6Z4Z6K4Z+S4Z6L4Z624Z6T4oCL4Z6U4Z+S4Z6a4Z6A4Z624Z6f4oCL4Z6F4Z+S4Z6a4Z6+4Z6TIOGemOGet+Gek+KAi+GeguGfkuGemuGetuGek+Gfi+Gej+GfguKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+GekeGfgeGflCDhnpzhnrbigIvhnpThn5Lhnprhnr7igIvhnpDhnrbhnpjhnpbhnpvigIvhnoXhn5Lhnprhnr7hnpPigIvhnofhnrbhnoTigIvhnprhnpThn4DhnpTigIvhnpjhnrfhnpPigIvhnpThn5LhnprhnoDhnrbhnp/igIvhnoXhn5Lhnprhnr7hnpPhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODUxOTQ5NzA2MDI1MzQ5OTI2Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6R4Z6R4Z694Z6b4oCL4Z6A4Z6J4Z+S4Z6F4Z6U4Z+L4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6U4Z624Z6T4oCL4Z6V4Z+S4Z6J4Z6+4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6R4Z624Z+G4Z6E4Z6i4Z6f4Z+L4oCL4oCL4Z6b4Z6+4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6ZIOKAi+GeiuGfhOGemeKAi+GelOGfkuGemuGevuKAi+GeouGetuGen+GemeGeiuGfkuGei+GetuGek+KAi+KAi+GemOGfieGetuGem+Gfi+GekuGeuOGegeGetuGenyDhnpjhnrfhnpPigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhno/hn4LigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnpHhn4Hhn5Qg4Z6c4Z624oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6Q4Z624Z6Y4Z6W4Z6b4oCL4Z6F4Z+S4Z6a4Z6+4Z6T4oCL4Z6H4Z624Z6E4oCL4Z6a4Z6U4Z+A4Z6U4oCL4Z6Y4Z634Z6T4oCL4oCL4Z6Y4Z+J4Z624Z6b4Z+L4Z6S4Z644Z6B4Z624Z6f4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGhBZG1pbiIgbXNnaWQ9IjYwMDY5NjczNzM5MzU5MjY2NTkiPiLhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvigIvhnoDhnrbhnprigIvhnoDhn4bhno7hno/hn4vigIvhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhBZG1pbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjkyMTE3NzQ3MTc0ODg4MjEzNyI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GegOGfhuGejuGej+Gfi+KAi+GemuGeheGek+GetuGen+GemOGfkuGeluGfkOGek+GfkuGekuKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+GelOGfiuGfkuGem+GevOGekuGevOGen+KAi+GemOGevOGem+GeiuGfkuGei+GetuGekyDhnpPhnrfhnoTigIvhnprhnoDhnpjhnr7hnpsg4Z6W4Z+S4Z6a4Z6Y4oCL4Z6R4Z624Z+G4Z6E4oCL4Z6V4Z+S4Z6C4Z684Z6V4Z+S4Z6C4Z6E4oCL4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6W4Z644oCL4Z6F4Z6Y4Z+S4Z6E4Z624Z6Z4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4OTMxNjgyMTU5MzMxNTQyMTM3Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6Y4Z6+4Z6b4oCL4oCL4Z6A4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6a4Z6F4Z6T4Z624Z6f4Z6Y4Z+S4Z6W4Z+Q4Z6T4Z+S4Z6S4oCL4Z6U4Z+K4Z+S4Z6b4Z684Z6S4Z684Z6f4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6RIOGeiuGevuGemOGfkuGelOGeuOKAi+GemuGegOGemOGevuGemyDhnpPhnrfhnoTigIvhnpXhn5LhnoLhnrzhnpXhn5LhnoLhnoTigIvhnofhnrbigIvhnpjhnr3hnpnigIvhnqfhnpThnoDhnprhno7hn43igIvhnpbhnrjigIvhnoXhnpjhn5LhnoThnrbhnpnhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1dpbWF4U3RhdGUiIG1zZ2lkPSI0MTk1OTA3MDEwNjEwMjA1NzAzIj4i4Z6X4Z+S4Z6H4Z624Z6U4Z+LIOGek+Get+GehOKAi+GeleGfkuGeiuGetuGeheGfi+KAi+GeluGeuCBXaU1BWCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1dpbWF4U3RhdGUiIG1zZ2lkPSI2MzYwMTAyODc3MjYxOTc4ODg3Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6Q4Z624oCL4Z6P4Z6+IFdpTUFYIOGej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GelOGevuGegCDhnpPhnrfhnoTigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnqLhn4bhnpbhnrjigIvhnpThno7hn5LhnorhnrbhnokgV2lNQVgg4Z6K4Z+C4Z6b4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaW1heFN0YXRlIiBtc2dpZD0iMjQwNTA0MjI2NzEzMTQ5NjU3OSI+IuGelOGfkuGeiuGevOGemuKAi+Gen+GfkuGekOGetuGek+Gel+GetuGeliBXaU1BWCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMxNTY0NTY1MDQwODQyMDE4MDUiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhno/hnpfhn5LhnofhnrbhnpThn4vigIsg4Z6T4Z634Z6E4oCL4Z6V4Z+S4Z6K4Z624Z6F4Z+L4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6W4Z644oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6JIFdpTUFYIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2OTcwMjUwNDMwMDQ5MjM3OTgiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpfhn5LhnofhnrbhnpThn4vigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIsg4Z6T4Z634Z6E4oCL4Z6V4Z+S4Z6K4Z624Z6F4Z+L4oCL4Z6W4Z644oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6JIFdpTUFYIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmx1ZXRvb3RoIiBtc2dpZD0iNjEyNzc2OTMzNjMzOTI3NjgyOCI+IuGeleGfkuGeguGevOGeleGfkuGeguGehOKAi+Geh+GetuKAi+GemOGeveGemeKAi+Gep+GelOGegOGemuGejuGfjeKAi+GelOGfiuGfkuGem+GevOGekuGevOGenyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQ4MDcyMjE4MTg1MjQzODYyOCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GemOGevuGem+KAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GemuGeheGek+GetuGen+GemOGfkuGeluGfkOGek+GfkuGekuKAi+KAi+GelOGfiuGfkuGem+GevOGekuGevOGen+KAi+Gem+GevuKAi+KAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfhyDhnpbhn5LhnprhnpjigIvhnpHhnrbhn4bhnoTigIvhnpLhn5Lhnpzhnr7igIvhnoDhnrbhnprigIvhno/hnpfhn5LhnofhnrbhnpThn4sg4Z6T4Z634Z6E4oCL4Z6R4Z6R4Z694Z6b4oCL4oCL4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6U4Z624Z6T4oCL4Z6V4Z+S4Z6C4Z684Z6V4Z+S4Z6C4Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzIwNzEwNjMyNDQ1MjMxMjczOSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GemOGevuGem+KAi+KAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GemuGeheGek+GetuGen+GemOGfkuGeluGfkOGek+GfkuGekuKAi+GelOGfiuGfkuGem+GevOGekuGevOGen+KAi+GegOGfkuGek+Geu+GehOKAi+GekeGevOGemuGen+GfkOGeluGfkuGekSDhnorhnr7hnpjhn5LhnpThnrjigIvhnpHhnpHhnr3hnpsg4Z6T4Z634Z6E4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6U4Z624Z6T4oCL4Z6V4Z+S4Z6C4Z684Z6V4Z+S4Z6C4Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9uZmMiIG1zZ2lkPSI0NDIzMzUxMjc0NzU3ODc2OTUzIj4i4Z6W4Z634Z6T4Z634Z6P4Z+S4Z6Z4oCL4Z6A4Z624Z6a4oCL4Z6R4Z624Z6A4Z+L4Z6R4Z6E4oCL4Z6T4Z+F4oCL4Z6A4Z+S4Z6U4Z+C4Z6aIChORkMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbmZjIiBtc2dpZD0iNzEyMDYxMTgxOTQwMTc4OTkwNyI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekeGetuGegOGfi+GekeGehOKAi+Geh+GetuKAi+GemOGeveGemeKAi+Gen+GfkuGem+GetuGegCAoTkZDKSDhnoDhnrbhno8g4Z6T4Z634Z6E4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6T4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kaXNhYmxlS2V5Z3VhcmQiIG1zZ2lkPSIzNTk4NDk2MzAxNDg2NDM5MjU4Ij4i4Z6U4Z634Z6R4oCL4Z6A4Z624Z6a4oCL4Z6F4Z624Z6A4Z+L4oCL4Z6f4Z+E4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlzYWJsZUtleWd1YXJkIiBtc2dpZD0iNjAzNDIwMzA2NTA3NzEyMjk5MiI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGet+GekeKAi+GegOGetuGemuKAi+GeheGetuGegOGfi+Gen+GfhOKAi+Gen+Geu+GenOGej+GfkuGekOGet+Gel+GetuGeluKAi+GeluGetuGegOGfkuGemeKAi+Gen+GemOGfkuGehOGetuGej+Gfi+KAi+GeiuGfguGem+KAi+GelOGetuGek+KAi+Gel+GfkuGeh+GetuGelOGfi+KAi+GejuGetuKAi+GemOGeveGemeGflCDigIvhnqfhnpHhnrbhnqDhnprhno7hn43igIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvigIvigIvhnpPhn4PigIvhnoDhnrbhnprigIvhnpThnrfhnpHigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnpbhn4HhnpvigIvhnpHhnpHhnr3hnpvhnoDhnrbhnprigIvhnqDhn4XigIvhnoXhnrzhnpsg4Z6U4Z6T4Z+S4Z6R4Z624Z6U4Z+L4oCL4Z6Y4oCL4Z6U4Z6+4Z6A4oCL4Z6f4Z+E4oCL4Z6W4Z+B4Z6b4oCL4Z6A4Z624Z6a4oCL4Z6g4Z+F4oCL4Z6U4Z624Z6T4oCL4Z6U4Z6J4Z+S4Z6F4Z6U4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU3luY1NldHRpbmdzIiBtc2dpZD0iNjIwMTgxMDAwODIzMDUwMzA1MiI+IuGeouGetuGek+KAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GekuGfkuGenOGevuKAi+Gen+GemOKAi+GegOGetuGem+KAi+GegOGemOGfkuGemCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTeW5jU2V0dGluZ3MiIG1zZ2lkPSIyNzA2NzQ1Njc0NTY5Njc4NjQ0Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6T4oCL4Z6A4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6S4Z+S4Z6c4Z6+4oCL4Z6f4Z6Y4oCL4Z6A4Z624Z6b4oCL4Z6A4Z6Y4Z+S4Z6Y4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6C4Z6O4Z6T4Z644Z+UIOGep+GekeGetuGeoOGemuGejuGfjSDhnpzhnrbigIvhnqLhnrbhnoXigIvhnoDhn4bhno7hno/hn4vigIvhnpDhnrbigIvhno/hnr7igIvigIvigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnpThnr7hnoDigIvhnofhnrbigIvhnpjhnr3hnpnigIvhnoLhno7hnpPhnrjigIvhnorhn4LhnprigIvhnqzhnpHhn4Hhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU3luY1NldHRpbmdzIiBtc2dpZD0iNTQwODY5NDg3NTc5Mzk0NTMxNCI+IuGelOGet+GekS/hnpThnr7hnoDigIvhnoDhnrbhnprigIvhnpLhn5Lhnpzhnr7igIvhnp/hnpjigIvhnoDhnrbhnpvigIvhnoDhnpjhn5LhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9Ijg5NTYyNjI1OTEzMDYzNjk4NjgiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoDhn4LigIvhnoDhnrbhnprigIvhnoDhn4bhno7hno/hn4vigIvhnpLhn5Lhnpzhnr7igIvhnp/hnpjigIvhnoDhnrbhnpvigIvhnoDhnpjhn5LhnpjigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoLhno7hnpPhnrjhn5Qg4Z6n4Z6R4Z624Z6g4Z6a4Z6O4Z+NIOGenOGetuKAi+GeouGetuGeheKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GelOGfkuGemuGevuKAi+GeiuGevuGemOGfkuGelOGeuOKAi+GelOGevuGegOKAi+GegOGetuGemuKAi+GekuGfkuGenOGevuKAi+Gen+GemOKAi+GegOGetuGem+KAi+GegOGemOGfkuGemOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GemuGelOGen+Gfi+KAi+GemOGek+Geu+Gen+GfkuGen+KAi+Geh+GetuKAi+GemOGeveGemeKAi+GeguGejuGek+GeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFN5bmNTdGF0cyIgbXNnaWQ9IjczOTY1Nzc0NTEzNjAyMDI0NDgiPiLhnqLhnrbhnpPigIvhnp/hn5LhnpDhnrfhno/hnrfigIvhnpLhn5Lhnpzhnr7igIvhnp/hnpjigIvhnoDhnrbhnpvigIvhnoDhnpjhn5LhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1N0YXRzIiBtc2dpZD0iMTUxMDE0Mzc2MTc1NzYwNjE1NiI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeouGetuGek+KAi+Gen+GfkuGekOGetuGek+Gel+GetuGeluKAi+GekuGfkuGenOGevuKAi+Gen+GemOKAi+GegOGetuGem+KAi+GegOGemOGfkuGemOKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GeguGejuGek+GeuCDhnprhnr3hnpjhnpjhnrbhnpPigIvhnpbhn5Lhnprhnrnhno/hn5Lhno/hnrfhnoDhnrbhnprhno7hn43igIvhnpThn5Lhnprhnpzhno/hn5Lhno/hnrfigIvhnpLhn5Lhnpzhnr7igIvhnp/hnpjigIvhnoDhnrbhnpvigIvhnoDhnpjhn5Lhnpgg4oCL4Z6T4Z634Z6E4oCL4Z6R4Z+G4Z6g4Z+G4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6U4Z624Z6T4oCL4Z6S4Z+S4Z6c4Z6+4oCL4Z6f4Z6Y4oCL4Z6A4Z624Z6b4oCL4Z6A4Z6Y4Z+S4Z6Y4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdWJzY3JpYmVkRmVlZHNSZWFkIiBtc2dpZD0iNDc1NjYwOTYzNzA1MzM1MzMxOCI+IuGeouGetuGek+KAi+GeouGej+GfkuGekOGelOGekeKAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+GelOGetuGek+KAi+Geh+GetuGenCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N1YnNjcmliZWRGZWVkc1JlYWQiIG1zZ2lkPSI1NTU3MDU4OTA3OTA2MTQ0NTA1Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6R4Z6R4Z694Z6b4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6b4Z6Y4Z+S4Z6i4Z634Z6P4oCL4Z6i4Z+G4Z6W4Z644oCL4Z6i4Z6P4Z+S4Z6Q4Z6U4Z6R4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4oCL4Z6U4Z624Z6T4oCL4Z6S4Z+S4Z6c4Z6+4oCL4Z6f4Z6Y4oCL4Z6A4Z624Z6b4oCL4Z6A4Z6Y4Z+S4Z6Y4oCL4Z6U4Z6F4Z+S4Z6F4Z674Z6U4Z+S4Z6U4Z6T4Z+S4Z6T4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdWJzY3JpYmVkRmVlZHNXcml0ZSIgbXNnaWQ9IjkwMTUyNDYzMjU0MDgyMDkyOTYiPiLhnp/hnprhnp/hn4HhnprigIvigIvhnqLhno/hn5LhnpDhnpThnpHigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnorhn4LhnpvigIvigIvhnpThnrbhnpPigIvhnofhnrbhnpwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdWJzY3JpYmVkRmVlZHNXcml0ZSIgbXNnaWQ9IjY5Mjg5MzAxODg4MjYwODk0MTMiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoDhn4LigIvhnqLhno/hn5LhnpDhnpThnpHigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnpThnrbhnpPigIvhnpLhn5Lhnpzhnr7igIvhnp/hnpjigIvhnoDhnrbhnpvigIvhnoDhnpjhn5LhnpjigIvhnpThnoXhn5LhnoXhnrvhnpThn5LhnpThnpPhn5LhnpPigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDhn5Qg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4oCL4Z6i4Z624Z6F4oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6i4Z6P4Z+S4Z6Q4Z6U4Z6R4oCL4Z6U4Z624Z6T4oCL4Z6S4Z+S4Z6c4Z6+4oCL4Z6f4Z6Y4oCL4Z6A4Z624Z6b4oCL4Z6A4Z6Y4Z+S4Z6Y4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjQxMDcxMDE1MjU3NDYwMzU3MTgiPiLhnqLhnrbhnpPigIvhnpbhnrbhnoDhn5LhnpnigIvhnorhn4LhnpvigIvhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnpThnpPhn5LhnpDhn4LhnpjigIvhnpHhn4XigIvhnpzhnoXhnpPhnrbhnpPhnrvhnoDhn5LhnprhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjY1OTYxNDYwMDMzODkwNDI0MyI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeouGetuGek+KAi+GeluGetuGegOGfkuGemSDhnojhn5Lhnpjhn4Thn4cg4Z6T4Z634Z6E4oCL4Z6D4Z+S4Z6b4Z624oCL4Z6R4Z624Z+G4Z6E4Z6i4Z6f4Z+L4oCL4Z6K4Z+C4Z6b4oCL4Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+4oCL4Z6i4Z624Z6F4oCL4oCL4Z6a4Z6A4Z+S4Z6f4Z624Z6R4Z674Z6A4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6c4Z6F4Z6T4Z624Z6T4Z674Z6A4Z+S4Z6a4Z6Y4oCL4oCL4Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSIyMTgzMTEwNDAyMzE0NDQxMTA2Ij4i4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6R4Z+F4oCL4Z6c4Z6F4Z6T4Z624Z6T4Z674Z6A4Z+S4Z6a4Z6Y4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6K4Z+E4Z6Z4oCL4Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iODE4NTM4NTcxNjI1NTA2NTI5MSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gen+GemuGen+GfgeGemuKAi+GeluGetuGegOGfkuGemeKAi+GekOGfkuGemOGeuOKAi+GegOGfkuGek+Geu+GehOKAi+GenOGeheGek+GetuGek+Geu+GegOGfkuGemuGemOKAi+GeouGfkuGek+GegOGelOGfkuGemuGevuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI4MjM1MzQxNTE1NjA1NTU5Njc3Ij4i4Z6f4Z624Z6A4Z6b4Z+S4Z6U4Z6E4oCL4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6A4Z624Z6a4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6A4Z624Z6a4Z6W4Z624Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODIzNTM0MTUxNTYwNTU1OTY3NyI+IuGen+GetuGegOGem+GfkuGelOGehOKAi+GeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+GegOGetuGemuKAi+GeleGfkuGekeGeu+GegOKAi+GeiuGfguGem+KAi+GelOGetuGek+KAi+GegOGetuGemuGeluGetuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzY0MjQ3MzI5MjM0ODEzMjA3MiI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gen+GetuGegOGem+GfkuGelOGehOKAi+Gen+Get+GekeGfkuGekuGet+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuCDhnorhn4LhnpvigIvhnpPhnrnhnoTigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpThnrbhnpPigIvhnpvhnr7igIvhnqfhnpThnoDhnprhno7hn43igIvigIvhnpbhn4HhnpvigIvhnqLhnpPhnrbhnoLhno/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTkxNDQwMjY4NDY4NTg0ODgyOCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gen+GetuGegOGem+GfkuGelOGehOKAi+Gen+Get+GekeGfkuGekuGet+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGetuGej+KAi+GeouGfgeGen+GejOGeuOKAi+GeiuGfguGem+KAi+Gek+GeueGehOKAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GelOGetuGek+KAi+Gem+GevuKAi+Gep+GelOGegOGemuGejuGfjeKAi+Gek+GetuKAi+GeluGfgeGem+KAi+GeouGek+GetuGeguGej+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iODQ4NTk3OTA2MjI1NDY2Njc0OCI+IuGegOGfguKAiyDhnqzigIvhnpvhnrvhnpTigIvhnpjhnrbhno/hnrfhnoDhnrbigIvhnpPhn4PigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrjigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODgwNTY5MzYzMDA1MDQ1ODc2MyI+IuGegOGfgiDhnqzigIvhnpvhnrvhnpTigIvhnpjhnrbhno/hnrfhnoDhnrbigIvhnoDhnrbhno/igIvhnqLhn4Hhnp/hnozhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRXcml0ZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MTc1NDA2Mjk5NDQ1NzEwODg4Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6f4Z6a4Z6f4Z+B4Z6a4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MzM3NDE3NzkwOTM2NjMyMDkwIj4i4Z6y4Z+S4Z6Z4oCL4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6f4Z6a4Z6f4Z+B4Z6a4oCL4Z6R4Z+F4oCL4Z6A4Z624Z6P4oCL4Z6i4Z+B4Z6f4Z6M4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTk4MzkxOTk3MDY4NzkwMTUiPiLhnoDhn4Iv4Z6b4Z674Z6U4oCL4Z6Y4Z624Z6P4Z634Z6A4Z624oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Y4Z+B4Z6M4Z+A4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6T4Z674Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWVkaWFTdG9yYWdlV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MTg5MTYwNTk3Njk4NTI5MTg1Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+C4oCL4Z6Y4Z624Z6P4Z634Z6A4Z624oCL4Z6T4Z+D4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6T4Z674Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VEb2NzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTc3ODMxODU5ODQ0ODg0OTgyOSI+IuGeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+GegOGetuGemuKAi+GeleGfkuGekeGeu+GegOKAi+Ger+GegOGen+GetuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZURvY3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NzA0MzIzMTc2OTE0MTIxNDg0Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6E4oCL4Z6A4Z624Z6a4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6v4Z6A4Z6f4Z624Z6a4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRBY2Nlc3NBbGwiIG1zZ2lkPSI4MTUwNjEzODIzOTAwNDYwNTc2Ij4i4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6a4Z+F4oCL4Z6T4Z+D4oCL4Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+4oCL4Z6R4Z624Z+G4Z6E4Z6i4Z6f4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkQWNjZXNzQWxsIiBtc2dpZD0iMzIxNTIwODM1NzQxNTg5MTMyMCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GegeGetuGehOKAi+GegOGfkuGemuGfheKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GeouGfkuGek+GegOGelOGfkuGemuGevuKAi+GekeGetuGfhuGehOGeouGen+Gfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU2NTY0ODcyNjQ4MTk2Njk4MjQiPiLhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLigIvigIvigIvhnq/hnoDhnp/hnrbhnprigIvhnoPhn5Lhnpvhnrbhn4bhnoTigIvhnp/hnpjhn5LhnoThnrbhno/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYWNoZV9maWxlc3lzdGVtIiBtc2dpZD0iNTU3ODk2NzY0MjI2NTU1MDk1NSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeouGetuGekyDhnpPhnrfhnoTigIvhnp/hnprhnp/hn4HhnprigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLigIvhnq/hnoDhnp/hnrbhnprigIvhnoPhn5Lhnpvhnrbhn4bhnoTigIvhnp/hnpjhn5LhnoThnrbhno/hn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VzZV9zaXAiIG1zZ2lkPSI1OTg2OTUyMzYyNzk1ODcwNTAyIj4i4Z6S4Z+S4Z6c4Z6+4oCL4Z6A4Z624Z6a4oCL4Z6g4Z+FL+GekeGekeGeveGem+KAi+Gej+GetuGemOKAi+GeouGfiuGeuOGek+GekuGeuuGejuGet+GejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZV9zaXAiIG1zZ2lkPSI0NzE3NjMyMDAwMDYyNjc0Mjk0Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6YIFNJUCDhnorhnr7hnpjhn5LhnpThnrjigIvigIvigIvhnqDhn4Uv4Z6R4Z6R4Z694Z6b4oCL4oCL4oCL4Z6P4Z624Z6Y4oCL4Z6i4Z+K4Z644Z6T4Z6S4Z664Z6O4Z634Z6P4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkTmV0d29ya1VzYWdlSGlzdG9yeSIgbXNnaWQ9Ijc4NjI1OTMyODM2MTE0OTMyMzIiPiLhnqLhnrbhnpPigIvhnoDhnrbhnprigIvhnpThn5Lhnprhnr7igIvhnpThno7hn5LhnorhnrbhnonigIvhnpbhnrfhnp/hn4Hhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTmV0d29ya1VzYWdlSGlzdG9yeSIgbXNnaWQ9Ijc2ODkwNjA3NDk4MTkxMjY0NzIiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhnrbhnpPigIvhnoDhnrbhnprigIvhnpThn5Lhnprhnr7igIvhnpThno7hn5LhnorhnrbhnonigIvhnofhnrbigIvhnpThn5Lhnprhnpzhno/hn5Lhno/hnrfigIvhnp/hnrbhnp/hn5Lhno/hn5LhnprigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnpThno7hn5Lhnorhnrbhnokg4Z6T4Z634Z6E4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6H4Z624Z6A4Z+L4Z6b4Z624Z6A4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VOZXR3b3JrUG9saWN5IiBtc2dpZD0iMjU2MjA1MzU5MjMzOTg1OTk5MCI+IuGeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+GeguGfhOGem+Gek+GemeGfhOGelOGetuGemeKAi+GelOGejuGfkuGeiuGetuGeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZU5ldHdvcmtQb2xpY3kiIG1zZ2lkPSI3NTM3NTg2NzcxNTU5MzcwNjY4Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6E4oCL4Z6C4Z+E4Z6b4Z6T4Z6Z4Z+E4Z6U4Z624Z6Z4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6JIOGek+Get+GehOKAi+GegOGfhuGejuGej+Gfi+KAi+GegOGfkuGelOGeveGek+KAi+Geh+GetuGegOGfi+Gem+GetuGegOGfi+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW9kaWZ5TmV0d29ya0FjY291bnRpbmciIG1zZ2lkPSI1MDg4MjE3MzA5MDg4NzI5NjUwIj4i4Z6A4Z+C4oCL4Z6C4Z6O4Z6T4Z644oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5TmV0d29ya0FjY291bnRpbmciIG1zZ2lkPSI1NDQzNDEyODY2NzQ2MTk4MTIzIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+C4oCL4Z6c4Z634Z6S4Z644oCL4Z6C4Z634Z6P4oCL4Z6Q4Z+S4Z6b4Z+D4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6Y4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4oCL4Z6P4Z624Z6Y4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644Z+UIOGemOGet+Gek+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GelOGfkuGemuGevuKAi+GeiuGfhOGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSIzNjU4NTI3MjE0OTE0OTU5NzQ5Ij4i4Z6A4Z+C4Z6U4Z+S4Z6a4Z+C4oCL4Z6f4Z6J4Z+S4Z6J4Z624oCL4Z6a4Z6T4Z+S4Z6SIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSI3NjU1NTY4NDMzNjk2MzU2NTc4Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+C4oCL4Z6f4Z6J4Z+S4Z6J4Z624oCL4Z6a4Z6T4Z+S4Z6S4oCL4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6T4Z624Z+G4oCL4Z6V4Z+S4Z6b4Z684Z6cIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNzY3MzQxNjQ4Nzg3MzQzMjI2OCI+IuGeheGevOGem+KAi+GeiuGfhuGejuGevuGemuKAi+GegOGetuGemuKAi+GegOGetuGemuKAi+Geh+GevOGek+KAi+GeiuGfhuGejuGeueGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05vdGlmaWNhdGlvbnMiIG1zZ2lkPSI0NTg0NTc3NDI2ODM0MzEzODciPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpHhn4XigIvhnpnhnoAg4Z6W4Z634Z6T4Z634Z6P4Z+S4Z6ZIOGek+Get+GehOKAi+Gen+GemOGfkuGeouGetuGej+KAi+GegOGetuGemuKAi+Geh+GevOGek+KAi+GeiuGfhuGejuGeueGehCDhnprhnr3hnpjhnpjhnrbhnpPigIvigIvhnpThn5LhnprhnoDhnrbhnp/igIvhnorhn4ThnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnp/hn4HhnoThn5fhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROb3RpZmljYXRpb25MaXN0ZW5lclNlcnZpY2UiIG1zZ2lkPSI3MDU3NzY0NzQyMjExNjU2NjU0Ij4i4Z6F4Z6E4oCL4Z6R4Z+F4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6Y4oCL4Z6f4Z+S4Z6K4Z624Z6U4Z+L4oCL4Z6A4Z624Z6a4oCL4Z6H4Z684Z6T4oCL4Z6K4Z+G4Z6O4Z654Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5vdGlmaWNhdGlvbkxpc3RlbmVyU2VydmljZSIgbXNnaWQ9Ijk4NTY5NzkxODU3NjkwMjk4NiI+IuGesuGfkuGemeKAi+GemOGfkuGeheGetuGen+Gfi+KAi+GeheGehOKAi+GeheGfhuGejuGeu+GeheKAi+GelOGfkuGemuGekeGetuGegOGfi+KAi+GegOGemOGfkuGemuGet+Gej+KAi+GegOGfhuGeluGevOGem+KAi+Gek+Gfg+KAi+Gen+GfgeGenOGetuGegOGemOGfkuGemOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gen+GfkuGeiuGetuGelOGfi+KAi+GegOGetuGemuKAi+Geh+GevOGek+KAi+GeiuGfhuGejuGeueGehOGflCDhnpjhnrfhnpPigIvhnoLhnr3hnprigIvhnoXhnrbhn4bhnpThnrbhnoXhn4vigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpLhnpjhn5Lhnpjhno/hnrbigIvigIvhnpHhn4Hhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludm9rZUNhcnJpZXJTZXR1cCIgbXNnaWQ9IjM2OTk2MDA4MzM5NzUxMTc0NzgiPiLhnorhnoDhnqDhnrzhno/igIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoDhn4bhno7hno/hn4vigIvhnprhnoXhnpPhnrbhnp/hnpjhn5Lhnpbhn5DhnpPhn5LhnpLigIvhnorhn4LhnpvigIvhnpThnrbhnpPigIvhnpXhn5Lhnorhnpvhn4vigIvhnorhn4ThnpnigIvhnoDhn5LhnprhnrvhnpjhnqDhn4rhnrvhnpPigIvhnpThnonhn5LhnofhnrzhnpMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnZva2VDYXJyaWVyU2V0dXAiIG1zZ2lkPSI0MTU5NTQ5MTUyNTI5MTExOTIwIj4i4Z6i4Z6T4Z674Z6J4Z+S4Z6J4Z624Z6P4oCL4Z6y4Z+S4Z6Z4oCL4Z6Y4Z+S4Z6F4Z624Z6f4Z+L4oCL4Z6K4Z6A4oCL4Z6g4Z684Z6P4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6a4Z6F4Z6T4Z624Z6f4Z6Y4Z+S4Z6W4Z+Q4Z6T4Z+S4Z6S4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6V4Z+S4Z6K4Z6b4Z+L4oCL4Z6K4Z+E4Z6Z4oCL4Z6A4Z+S4Z6a4Z674Z6Y4Z6g4Z+K4Z674Z6T4oCL4Z6U4Z6J4Z+S4Z6H4Z684Z6T4Z+UIOGemOGet+Gek+KAi+GeguGeveGemuKAi+GeheGetuGfhuGelOGetuGeheGfi+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuKAi+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI4MjA2MDc3NDQ3ODM4OTA5NTE2Ij4i4Z6f4Z6E4Z+S4Z6A4Z+B4Z6P4oCL4Z6Y4Z6+4Z6b4oCL4Z6b4Z6+4oCL4Z6b4Z6A4Z+S4Z6B4Z6B4Z6O4Z+S4Z6M4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI2ODk5MTAyMDc1ODI1MjcyMjExIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6f4Z6E4Z+S4Z6A4Z+B4Z6P4oCL4Z6Y4Z6+4Z6b4oCL4oCL4Z6b4Z6+4oCL4Z6b4Z6A4Z+S4Z6B4Z6B4Z6O4Z+S4Z6M4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z+UIOGemOGet+Gek+KAi+GeguGeveGemuKAi+GeheGetuGfhuGelOGetuGeheGfi+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekuGemOGfkuGemOGej+GetuKAi+GekeGfgeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9saW1pdFBhc3N3b3JkIiBtc2dpZD0iNDQ5NzQyMDcyODg1NzU4NTc5MSI+IuGegOGfhuGejuGej+Gfi+KAi+GegOGfkuGelOGeveGek+KAi+GeluGetuGegOGfkuGemeKAi+Gen+GemOGfkuGehOGetuGej+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfbGltaXRQYXNzd29yZCIgbXNnaWQ9IjMyNTIxMTQyMDM5MTk1MTAzOTQiPiLhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnpThn5Lhnprhnpzhn4LhnoQg4Z6T4Z634Z6E4oCL4Z6P4Z694Z6i4Z6A4Z+S4Z6f4Z6a4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6i4Z6T4Z674Z6J4Z+S4Z6J4Z624Z6P4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6F4Z624Z6A4Z+L4oCL4Z6f4Z+E4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dhdGNoTG9naW4iIG1zZ2lkPSI5MTQxMzA2NDY5NDIxOTk1MDMiPiLhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnoDhnrbhnprigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnorhn4Thn4figIvhnp/hn4TigIvhnqLhn4HhnoDhn5LhnprhnoThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dhdGNoTG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMyMTU3MjkyOTQyMTUwNzAwNzIiPiLhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnoXhn4bhnpPhnr3hnpPigIvigIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5Lhnprhnrzhnpzhn5Qg4Z6W4Z+B4Z6b4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+LIOGek+Get+GehOKAi+GeheGetuGegOGfi+KAi+Gen+GfhOKAi+GekeGevOGemuGen+GfkOGeluGfkuGekSDhnqzigIvhnpvhnrvhnpTigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnpHhnrbhn4bhnoThnqLhnp/hn4vigIsg4Z6U4Z+S4Z6a4Z6f4Z634Z6T4oCL4Z6U4Z6+4oCL4Z6Y4Z624Z6T4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6F4Z+S4Z6a4Z6+4Z6T4oCL4Z6K4Z6E4oCL4Z6W4Z+B4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193YXRjaExvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTcxMjMyMzA5MTg0Njc2MTA3MyI+IuGeluGet+Gek+Get+Gej+GfkuGemeKAi+GeheGfhuGek+GeveGek+KAi+KAi+GelOGeieGfkuGeheGevOGem+KAi+GeluGetuGegOGfkuGemeKAi+Gen+GemOGfkuGehOGetuGej+Gfi+KAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGflCDhnpbhn4HhnpvigIvhnorhn4Thn4figIvhnp/hn4TigIvhnqLhn4HhnoDhn5LhnprhnoThn4sg4Z6T4Z634Z6E4oCL4Z6F4Z624Z6A4Z+L4oCL4Z6f4Z+E4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6RIOGerOKAi+Gem+Geu+GelOKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GekeGevOGemuGen+GfkOGeluGfkuGekeKAi+GekeGetuGfhuGehOGeouGen+Gfi+KAiyDhnpThn5Lhnprhnp/hnrfhnpPigIvhnpThnr7igIvhnpjhnrbhnpPigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnoXhn5Lhnprhnr7hnpPigIvhnorhnoTigIvhnpbhn4HhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfcmVzZXRQYXNzd29yZCIgbXNnaWQ9IjI2MjAwNzcxOTEyNDI2ODg5NTUiPiLhnpThn5LhnorhnrzhnprigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnorhn4Thn4figIvhnp/hn4TigIvhnqLhn4HhnoDhn5LhnprhnoThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3Jlc2V0UGFzc3dvcmQiIG1zZ2lkPSI2MDU5NjM5NjIzMDE5MDQ0NTgiPiLhnpThn5LhnorhnrzhnprigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvigIvhnorhn4Thn4figIvhnp/hn4TigIvhnqLhn4HhnoDhn5LhnprhnoThn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZm9yY2VMb2NrIiBtc2dpZD0iMjI3NDA4NTM4NDcwNDI0ODQzMSI+IuGeheGetuGegOGfi+Gen+GfhOKAi+GeouGfgeGegOGfkuGemuGehOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZm9yY2VMb2NrIiBtc2dpZD0iMTE0MTc5NzU4ODQwMzgyNzEzOCI+IuGeluGet+Gek+Get+Gej+GfkuGemeKAi+GenOGet+GekuGeuCDhnpPhnrfhnoTigIvhnpbhn4Hhnpvhnpzhn4HhnpvhnrbigIvhnoXhnrbhnoDhn4vhnp/hn4TigIvhnqLhn4HhnoDhn5LhnprhnoThn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfd2lwZURhdGEiIG1zZ2lkPSIzOTEwNTQ1NDQ2NzU4NjM5NzEzIj4i4Z6b4Z674Z6U4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6R4Z624Z+G4Z6E4oCL4Z6i4Z6f4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193aXBlRGF0YSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDMwNjE4NDA5NjA2Nzc1Njg3NiI+IuGem+Geu+GelOKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+GeiuGfhOGemeKAi+GemOGet+Gek+KAi+KAi+GeluGfkuGemuGemOGetuGek+KAi+GeiuGfhOGemeKAi+GeouGek+Geu+GenOGej+GfkuGej+KAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GeiuGevOGeheKAi+GeheGfgeGeieKAi+GeluGeuOKAi+GemuGfhOGehOGeheGegOGfkuGemuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2lwZURhdGEiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MDk2ODk1NjA0NTc0MTg4MzkxIj4i4Z6b4Z674Z6U4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6K4Z+E4Z6Z4oCL4Z6Y4Z634Z6T4oCL4Z6W4Z+S4Z6a4Z6Y4Z624Z6TIOGeiuGfhOGemeKAi+GeouGek+Geu+GenOGej+GfkuGej+KAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GeiuGevOGeheKAi+GeheGfgeGeieKAi+GeluGeuOKAi+GemuGfhOGehOGeheGegOGfkuGemiDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfc2V0R2xvYmFsUHJveHkiIG1zZ2lkPSIyNzg0ODI4MjkzNzQ3NzkxNDQ2Ij4i4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6U4Z+S4Z6a4Z684Z6A4Z6f4Z+K4Z644oCL4Z6f4Z6A4Z6b4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19zZXRHbG9iYWxQcm94eSIgbXNnaWQ9IjYzODc0OTc0NjY2NjAxNTQ5MzEiPiLhnoDhn4bhno7hno/hn4vigIvhnpThn5LhnprhnrzhnoDhnp/hn4rhnrjigIvhnp/hnoDhnpvigIvhnprhnpThnp/hn4vigIvhnqfhnpThnoDhnprhno7hn43igIvhno/hn5LhnprhnrzhnpzigIvhnpThn5Lhnprhnr7igIvhnpbhn4HhnpvigIvhnpThnrbhnpPigIvhnpThnr7hnoDigIvhnoLhn4ThnpvhnpPhnpnhn4ThnpThnrbhnpnhn5Qg4Z6Y4Z624Z6T4oCL4Z6P4Z+C4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6E4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6K4Z+G4Z6U4Z684Z6E4oCL4Z6U4Z+J4Z674Z6O4Z+S4Z6O4Z+E4Z+H4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6U4Z+S4Z6a4Z684Z6A4Z6f4Z+K4Z644oCL4Z6f4Z6A4Z6b4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2V4cGlyZVBhc3N3b3JkIiBtc2dpZD0iODg1Mjc5MTUxODQ3MjU0MDU2Ij4i4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6f4Z674Z6W4Z6b4Z6X4Z624Z6W4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6F4Z624Z6A4Z+L4Z6f4Z+E4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19leHBpcmVQYXNzd29yZCIgbXNnaWQ9IjE3Mjk3MjUyMjYzMTQ2OTE1OTEiPiLhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnpzhnrfhnpLhnrjigIvhnorhn4LhnpvigIvhnpThn5LhnorhnrzhnprigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnoXhnrbhnoDhn4vigIvhnp/hn4TigIvhnqLhn4HhnoDhn5LhnprhnoThn4vigIvhnonhnrnhnoDhnonhnrbhnpThn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9Ijg5MDEzMjYxOTk5MDkxMzI5MTUiPiLhnoDhn4bhno7hno/hn4vigIvhnoDhnrbhnprigIvhnorhnrbhnoDhn4vhnpvhn4HhnoHigIvhnoDhnrzhnorigIvhnoDhnrbhnprigIvhnpXhn5LhnpHhnrvhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2VuY3J5cHRlZFN0b3JhZ2UiIG1zZ2lkPSIyNjM3NzMyMTE1MzI1MzE2OTkyIj4i4Z6P4Z6Y4Z+S4Z6a4Z684Z6c4oCL4Z6y4Z+S4Z6Z4oCL4Z6K4Z624Z6A4Z+L4oCL4Z6b4Z+B4Z6B4oCL4Z6A4Z684Z6K4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z624Z6T4oCL4Z6a4Z6A4Z+S4Z6f4Z624Z6R4Z674Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2Rpc2FibGVDYW1lcmEiIG1zZ2lkPSI2Mzk1MzAxMDIzMTUyMjk3ODI2Ij4i4Z6U4Z634Z6R4oCL4Z6Y4Z+J4Z624Z6f4Z+K4Z644Z6T4oCL4Z6Q4Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19kaXNhYmxlQ2FtZXJhIiBtc2dpZD0iMjMwNjM0OTA0MjgzNDc1NDU5NyI+IuGegOGetuGemuGeluGetuGemuKAi+GegOGetuGemuKAi+GelOGfkuGemuGevuKAi+GemOGfieGetuGen+GfiuGeuOGek+KAi+GekOGej+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GekeGetuGfhuGehOGeouGen+Gfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9kaXNhYmxlS2V5Z3VhcmRGZWF0dXJlcyIgbXNnaWQ9IjI2NjMyOTEwNDU0MjYzODgwMiI+IuGelOGet+GekeKAi+Gem+GegOGfkuGegeGejuGfiOKAi+GegOGfkuGek+Geu+GehOKAi+GegOGetuGemuKAi+GeheGetuGegOGfi+Gen+GfhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIzNDY3MDgyMjcyMTg2NTM0NjE0Ij4i4Z6A4Z624Z6a4oCL4Z6W4Z624Z6a4oCL4Z6Y4Z634Z6T4oCL4Z6y4Z+S4Z6Z4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6b4Z6A4Z+S4Z6B4Z6O4Z+I4oCL4Z6Y4Z694Z6Z4oCL4Z6F4Z+G4Z6T4Z694Z6T4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6A4Z624Z6a4oCL4Z6F4Z624Z6A4Z+L4Z6f4Z+E4Z+UIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBob25lVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI4OTAxMDk4MzM2NjU4NzEwMzU5Ij4i4Z6V4Z+S4Z6R4Z+HIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iODY5OTIzNjUwNTI3MTM2NjE1Ij4i4oCL4Z6F4Z6b4Z+Q4Z6PIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg5NzU0NDY1NDI0Mjg3NDU0MyI+IuGegOGek+GfkuGem+GfguGehOKAi+GekuGfkuGenOGevuGegOGetuGemiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjExMDM2MDE0MzMzODIxNTgxNTUiPiLhnpHhnrzhnprhnp/hnrbhnprigIvhnoDhnpPhn5Lhnpvhn4LhnoTigIvhnpLhn5Lhnpzhnr4iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxNzM1MTc3MTQ0OTQ4MzI5MzcwIj4i4Z6R4Z684Z6a4Z6f4Z624Z6a4oCL4Z6V4Z+S4Z6R4Z+HIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjAzODc4Njc0NDc3MjA3Mzk0Ij4i4Z6X4Z+B4Z6Z4Z+Q4Z6aIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTY1MDgyNDI3NTE3NzkzMTYzNyI+IuGeleGfkuGen+GfgeGehOGflyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjkxOTI1MTQ4MDY5NzU4OTg5NjEiPiLhno/hnrbhnpjigIvhnpThn4bhno7hnoQiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJlbWFpbEFkZHJlc3NUeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9IjgwNzM5OTQzNTI5NTYxMjkxMjciPiLhnpXhn5LhnpHhn4ciPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3MDg0MjM3MzU2NjAyNjI1NjA0Ij4i4Z6A4Z6T4Z+S4Z6b4Z+C4Z6E4oCL4Z6S4Z+S4Z6c4Z6+4Z6A4Z624Z6aIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTExMjA0NDQxMDY1OTAxMTAyMyI+IuGeleGfkuGen+GfgeGehOGflyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjIzNzQ5MTM5NTI4NzAxMTA2MTgiPiLhno/hnrbhnpjigIvhno/hnpjhn5LhnprhnrzhnpzigIvhnoDhnrbhnpoiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwb3N0YWxBZGRyZXNzVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI2ODgwMjU3NjI2NzQwMDQ3Mjg2Ij4i4Z6V4Z+S4Z6R4Z+HIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNTYyOTE1Mzk1NjA0NTEwOTI1MSI+IuGegOGek+GfkuGem+GfguGehOKAi+GekuGfkuGenOGevuGegOGetuGemiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjQ5NjY2MDQyNjQ1MDAzNDM0NjkiPiLhnpXhn5Lhnp/hn4HhnoThn5ciPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0OTMyNjgyODQ3NTk1Mjk5MzY5Ij4i4Z6P4Z624Z6Y4oCL4Z6U4Z+G4Z6O4Z6EIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iaW1BZGRyZXNzVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSIxNzM4NTg1MTk0NjAxNDc2Njk0Ij4i4Z6V4Z+S4Z6R4Z+HIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTM1OTY0NDU2NTY0NzM4MzcwOCI+IuGegOGek+GfkuGem+GfguGehOKAi+GekuGfkuGenOGevuGegOGetuGemiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9Ijc4Njg1NDk0MDEwNTM2MTU2NzciPiLhnpXhn5Lhnp/hn4HhnoThn5ciPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTQ1MTE4OTQ0NjM5ODY5ODA5Ij4i4Z6P4Z624Z6Y4oCL4Z6P4Z6Y4Z+S4Z6a4Z684Z6c4Z6A4Z624Z6aIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JnYW5pemF0aW9uVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NTQ2MzM1NjEyMTg5MTE1NjE1Ij4i4Z6A4Z6T4Z+S4Z6b4Z+C4Z6E4oCL4Z6S4Z+S4Z6c4Z6+4Z6A4Z624Z6aIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNDM3ODA3NDEyOTA0OTUyMDM3MyI+IuGeleGfkuGen+GfgeGehOGflyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjM0NTUwNDc0Njg1ODM5NjUxMDQiPiLhno/hnrbhnpjigIvhno/hnpjhn5LhnprhnrzhnpzigIvhnoDhnrbhnpoiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJpbVByb3RvY29scyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijg1OTUyNjEzNjM1MTg0NTk1NjUiPiJBSU0iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3MzkwNDczNjI4Mjc1NDkwNzAwIj4iV2luZG93cyBMaXZlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg4Mjg3NzEzNDkzMTQ1ODIxNyI+IllhaG9vIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNTAzNTM3NjMxMzIwMDU4NTI0MiI+IlNreXBlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzUzMjM2MzE3ODQ1OTQ0NDk0MyI+IlFRIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzcxMzQ0MTAzNDI5OTY2MDc0OSI+IuGeh+Geh+GfguGegOKAiyBHb29nbGUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNTA2ODU3MzEyNzE4NjMwODIzIj4iSUNRIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTY0ODc5NzkwMzc4NTI3OTM1MyI+IkphYmJlciI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlQ3VzdG9tIiBtc2dpZD0iMTY0NDczODA1OTA1MzM1NTgyMCI+IuGej+GetuGemOKAi+GelOGfhuGejuGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUhvbWUiIG1zZ2lkPSIyNTcwOTIzNDYzMDMzOTg1ODg3Ij4i4Z6V4Z+S4Z6R4Z+HIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlTW9iaWxlIiBtc2dpZD0iNjUwMTQ2MzU1Nzc1NDc1MTAzNyI+IuKAi+GeheGem+GfkOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVdvcmsiIG1zZ2lkPSI4ODYzOTM5NjY3MDU5OTExNjMzIj4i4Z6A4Z6T4Z+S4Z6b4Z+C4Z6E4oCL4Z6S4Z+S4Z6c4Z6+4Z6A4Z624Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlRmF4V29yayIgbXNnaWQ9IjM1MTc3OTIxNjAwMDg4OTA5MTIiPiLhnpHhnrzhnprhnp/hnrbhnprigIvhnoDhnpPhn5Lhnpvhn4LhnoTigIvhnpLhn5Lhnpzhnr7hnoDhnrbhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVGYXhIb21lIiBtc2dpZD0iMjA2NzI2NTk3MjMyMjk3MTQ2NyI+IuGekeGevOGemuGen+GetuGemuKAi+GeleGfkuGekeGfhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVBhZ2VyIiBtc2dpZD0iNzU4MjM1OTk1NTM5NDkyMTczMiI+IuGel+GfgeGemeGfkOGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU90aGVyIiBtc2dpZD0iMTU0NDQyNTg0Nzg2ODc2NTk5MCI+IuGeleGfkuGen+GfgeGehOGflyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNhbGxiYWNrIiBtc2dpZD0iMjcxMjE3NTIwMzA2NTY3ODIwNiI+IuGeoOGfheKAi+GemOGegOKAi+GenOGet+GeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNhciIgbXNnaWQ9Ijg3MzgzNjA2ODk2MTY3MTY5ODIiPiLhnprhnpDhnpnhnpPhn5Lhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVDb21wYW55TWFpbiIgbXNnaWQ9IjU0MDQzNDM1NjQ2MTQ3ODkxNiI+IuGem+GfgeGegeKAi+Gen+GfhuGegeGetuGek+Gfi+KAi+GegOGfkuGemuGeu+GemOGeoOGfiuGeu+GekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUlzZG4iIG1zZ2lkPSI4MDIyNDUzMTkzMTcxMzcwMzM3Ij4iSVNETiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU1haW4iIG1zZ2lkPSI2NzY2MTM3MDEwNjI4MzI2OTE2Ij4i4Z6b4Z+B4Z6B4oCL4Z6f4Z+G4Z6B4Z624Z6T4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlT3RoZXJGYXgiIG1zZ2lkPSI4NTg3NjU3MTQ1MDcyNDQ2NTY1Ij4i4Z6R4Z684Z6a4Z6f4Z624Z6a4oCL4Z6V4Z+S4Z6f4Z+B4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlUmFkaW8iIG1zZ2lkPSI0MDkzNzM4MDc5OTA4NjY3NTEzIj4i4Z6c4Z634Z6R4Z+S4Z6Z4Z67Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlVGVsZXgiIG1zZ2lkPSIzMzY3ODc5OTUyNDc2MjUwNTEyIj4i4Z6R4Z684Z6a4Z6f4Z624Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlVHR5VGRkIiBtc2dpZD0iODYwNjUxNDM3ODU4NTAwMDA0NCI+IlRUWSBUREQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVXb3JrTW9iaWxlIiBtc2dpZD0iMTMxMTQyNjk4OTE4NDA2NTcwOSI+IuGekeGevOGemuGen+GfkOGeluGfkuGekeKAi+KAi+GegOGek+GfkuGem+GfguGehOGekuGfkuGenOGevuGegOGetuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVdvcmtQYWdlciIgbXNnaWQ9IjY0OTkzODczMTIzMTE1NzA1NiI+IuGel+GfgeGemeGfkOGemuKAi+GegOGek+GfkuGem+GfguGehOKAi+GekuGfkuGenOGevuKAi+GegOGetuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUFzc2lzdGFudCIgbXNnaWQ9IjU1OTY3NzI2MzYxMjg1NjI4ODQiPiLhnqLhn5LhnpPhnoDigIvhnofhn4bhnpPhnr3hnpnigIvhnoDhnrbhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVNbXMiIG1zZ2lkPSI3MjU0NDkyMjc1NTAyNzY4OTkyIj4i4Z6f4Z624Z6aIE1NUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZUN1c3RvbSIgbXNnaWQ9Ijc4Mzc1ODYxOTg0NTgwNzM0MDQiPiLhno/hnrbhnpjigIvhno/hnpjhn5LhnprhnrzhnpzigIvhnoDhnrbhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVCaXJ0aGRheSIgbXNnaWQ9IjI4MTMzNzk4NDQyMTEzOTA3NDAiPiLhnpDhn5LhnoThn4PigIvhnoHhnr3hnpTigIvhnoDhn4bhno7hnr7hno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVBbm5pdmVyc2FyeSIgbXNnaWQ9IjM4NzY3Nzk3NDQ1MTgyODQwMDAiPiLhnpThnrvhno7hn5LhnpnhnoHhnr3hnpQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVPdGhlciIgbXNnaWQ9IjczODgxNzg5MzkwMTAxNDMwNzciPiLhnpXhn5Lhnp/hn4HhnoThn5ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVDdXN0b20iIG1zZ2lkPSI4NTI1OTYwMjU3ODA0MjEzODQ2Ij4i4Z6P4Z624Z6Y4oCL4Z6P4Z6Y4Z+S4Z6a4Z684Z6c4oCL4Z6A4Z624Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlSG9tZSIgbXNnaWQ9IjQ0OTIyNzIzNjE0MDQzMzkxOSI+IuGeleGfkuGekeGfhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZVdvcmsiIG1zZ2lkPSIzNTQ4MDU4MDU5NjAxMTQ5OTczIj4i4Z6A4Z6T4Z+S4Z6b4Z+C4Z6E4oCL4Z6S4Z+S4Z6c4Z6+4Z6A4Z624Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlT3RoZXIiIG1zZ2lkPSIyOTIzMDA4Njk1MjcyNjM5NTQ5Ij4i4Z6V4Z+S4Z6f4Z+B4Z6E4Z+XIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlTW9iaWxlIiBtc2dpZD0iMTE5OTE5MDA1MzIxMTY2MjA1Ij4i4Z6F4Z6b4Z+Q4Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZUN1c3RvbSIgbXNnaWQ9Ijg5MDMyMDY5MDMwNjA0Nzk5MDIiPiLhno/hnrbhnpjigIvhno/hnpjhn5LhnprhnrzhnpzigIvhnoDhnrbhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3N0YWxUeXBlSG9tZSIgbXNnaWQ9IjgxNjU3NTY5NzcxODQ0ODMwOTciPiLhnpXhn5LhnpHhn4ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3N0YWxUeXBlV29yayIgbXNnaWQ9IjUyNjgxNzI3NzIzODc2OTQ0OTUiPiLhnoDhnpPhn5Lhnpvhn4LhnoTigIvhnpLhn5Lhnpzhnr7hnoDhnrbhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3N0YWxUeXBlT3RoZXIiIG1zZ2lkPSIyNzI2MTExOTY2NjIzNTg0MzQxIj4i4Z6V4Z+S4Z6f4Z+B4Z6E4Z+XIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlQ3VzdG9tIiBtc2dpZD0iMjA3NDAyODc1NTUyNzgyNjA0NiI+IuGej+GetuGemOKAi+GelOGfhuGejuGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZUhvbWUiIG1zZ2lkPSI2MjQxMTgxMDMyOTU0MjYzODkyIj4i4Z6V4Z+S4Z6R4Z+HIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlV29yayIgbXNnaWQ9IjEzNzE0ODkyOTAyNDI0MzMwOTAiPiLhnoDhnpPhn5Lhnpvhn4LhnoTigIvhnpLhn5Lhnpzhnr7hnoDhnrbhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVR5cGVPdGhlciIgbXNnaWQ9IjUzNzcwMDc0OTU3MzU5MTU0NzgiPiLhnpXhn5Lhnp/hn4HhnoThn5ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sQ3VzdG9tIiBtc2dpZD0iNjkxOTQ1MzgzNjYxODc0OTk5MiI+IuGej+GetuGemOKAi+GelOGfhuGejuGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xBaW0iIG1zZ2lkPSI3MDUwMzYwNjEyMzY4MzgzNDE3Ij4iQUlNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE1zbiIgbXNnaWQ9IjE0NDU1NjU0NTQyMDc2OTQ0MiI+IldpbmRvd3MgTGl2ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xZYWhvbyIgbXNnaWQ9IjgyNzE0Mzk0MDg0NjkwMjEyNzMiPiJZYWhvbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xTa3lwZSIgbXNnaWQ9IjkwMTkyOTY3NDQ2MjI4MzI5NTEiPiJTa3lwZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xRcSIgbXNnaWQ9Ijg4ODc0ODQzNzk0OTQxMTE4ODQiPiJRUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xHb29nbGVUYWxrIiBtc2dpZD0iNDkzOTAyMzIxMTQwMjc3MzA0Ij4i4Z6A4Z624Z6a4oCL4Z6H4Z6H4Z+C4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbEljcSIgbXNnaWQ9IjE1NzQ4NzA0MzM2MDY1MTczMTUiPiJJQ1EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sSmFiYmVyIiBtc2dpZD0iMjI3OTkxNzYzMDg3NTc3MTcyMiI+IkphYmJlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xOZXRNZWV0aW5nIiBtc2dpZD0iODI4NzYyNTY1NTk4NjgyNzk3MSI+Ik5ldE1lZXRpbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdUeXBlV29yayIgbXNnaWQ9IjI5MjY4ODcwNTA1MzYzODcyIj4i4Z6A4Z6T4Z+S4Z6b4Z+C4Z6E4oCL4Z6S4Z+S4Z6c4Z6+4Z6A4Z624Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnVHlwZU90aGVyIiBtc2dpZD0iMzk1MTc4MTEzMTU3MDEyNDA4MiI+IuGeleGfkuGen+GfgeGehOGflyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ1R5cGVDdXN0b20iIG1zZ2lkPSIyMjU1MjM0MTUzNzIwODgzMjIiPiLhno/hnrbhnpjigIvhno/hnpjhn5LhnprhnrzhnpzhnoDhnrbhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVDdXN0b20iIG1zZ2lkPSIzNTQyNDAzNjc5ODI3Mjk3MzAwIj4i4Z6P4Z624Z6Y4oCL4Z6U4Z+G4Z6O4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlQXNzaXN0YW50IiBtc2dpZD0iNjI3NDMzNDgyNTE5NTM3OTA3NiI+IuGeouGfkuGek+GegOKAi+Geh+GfhuGek+GeveGemeKAi+GegOGetuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUJyb3RoZXIiIG1zZ2lkPSI4NzU3OTEzNTA2Nzg0MDY3NzEzIj4i4Z6U4Z6E4Z6U4Z+S4Z6i4Z684Z6T4oCL4Z6U4Z+S4Z6a4Z674Z6fIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlQ2hpbGQiIG1zZ2lkPSIxODkwNzQ2Mjc3Mjc2ODgxNjI2Ij4i4Z6A4Z684Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlRG9tZXN0aWNQYXJ0bmVyIiBtc2dpZD0iNjkwNDgwNzExMjEyMTEyMjEzMyI+IuGeiuGfg+GeguGevOKAi+GegOGfkuGek+Geu+GehOGen+GfkuGemuGeu+GegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUZhdGhlciIgbXNnaWQ9IjUyMjgwMzQ2ODcwODIwNTA3MjUiPiLhnqrhnpbhnrvhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVGcmllbmQiIG1zZ2lkPSI3MzEzMTA2NzYyNDgzMzkxMjYyIj4i4Z6Y4Z634Z6P4Z+S4Z6P4Z6X4Z+Q4Z6A4Z+S4Z6K4Z63Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlTWFuYWdlciIgbXNnaWQ9IjYzNjU2Nzc4NjE2MTAxMzc4OTUiPiLhnqLhn5LhnpPhnoDigIvhnoLhn5LhnprhnpThn4vhnoLhn5LhnprhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVNb3RoZXIiIG1zZ2lkPSI0NTc4NTcxMzUyOTYyNzU4MzA0Ij4i4Z6Y4Z+S4Z6K4Z624Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUGFyZW50IiBtc2dpZD0iNDc1NTYzNTU2NzU2MjkyNTIyNiI+IuGequGeluGeu+GegOGemOGfkuGeiuGetuGemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVBhcnRuZXIiIG1zZ2lkPSI3MjY2NDkwMjg1MTIwMjYyNzgxIj4i4Z6K4Z+D4Z6C4Z68Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUmVmZXJyZWRCeSIgbXNnaWQ9IjEwMTU3MzA1OTg0NDEzNTUyNCI+IuGemeGfhOGehOKAi+GeiuGfhOGemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVJlbGF0aXZlIiBtc2dpZD0iMTc5OTgxOTkzMDA4NTYxMDI3MSI+IuGen+GetuGeheGfi+GeieGetuGej+GetyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVNpc3RlciIgbXNnaWQ9IjE3MzU5ODM1NTQ0NzkwNzY0ODEiPiLhnpThnoThnpThn5LhnqLhnrzhnpPigIvhnp/hn5LhnprhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVTcG91c2UiIG1zZ2lkPSIzOTQxMzY5Mzk0Mjg2OTgxMTciPiLhnpThn5Lhnorhnrgv4oCL4oCL4Z6U4Z+S4Z6a4Z6W4Z6T4Z+S4Z6SIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVDdXN0b20iIG1zZ2lkPSIyNDczNTgwNTkzMTExNTkwOTQ1Ij4i4Z6P4Z624Z6Y4oCL4Z6U4Z+G4Z6O4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVIb21lIiBtc2dpZD0iNjA5MzU5ODE4MTA2OTM1OTI5NSI+IuGeguGfgeGeoOKAi+GekeGfhuGeluGfkOGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlV29yayIgbXNnaWQ9IjY5MjA3MjU3MzA3OTcwOTkwNDciPiLhnoDhnpPhn5Lhnpvhn4LhnoTigIvhnpLhn5Lhnpzhnr7hnoDhnrbhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZU90aGVyIiBtc2dpZD0iNDQwODQzNjE2Mjk1MDExOTg0OSI+IuGeleGfkuGen+GfgeGehOGflyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IuGelOGeieGfkuGeheGevOGem+KAi+GegOGevOGeiiBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiLhnpThnonhn5LhnoXhnrzhnpvigIvhnoDhnrzhnoogUFVLIOGek+Get+GehOKAiyBQSU4g4Z6Q4Z+S4Z6Y4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiLhnoDhnrzhnoogUFVLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLhnoDhnrzhnoogUElOIOGekOGfkuGemOGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IuGelOGfieGfhyDhnorhnr7hnpjhn5LhnpThnrjigIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4siPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLhnpThnonhn5LhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIsg4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6KIFBJTiDhnorhnr7hnpjhn5LhnpThnrjigIvhnorhn4Thn4figIvhnp/hn4QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLhnoDhnrzhnoogUElOIOGemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xhYmVsX3RleHQiIG1zZ2lkPSI4NjE3OTY0NjEwMjgyOTg0MjQiPiLhnorhnr7hnpjhn5LhnpThnrjigIvhnorhn4Thn4figIvhnp/hn4TigIvigIsg4Z6F4Z674Z6F4oCL4Z6Y4Z+J4Z664Z6T4Z674Z6Z4oCLIOGelOGek+GfkuGekeGetuGelOGfi+GemOGegCAwIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtZXJnZW5jeV9jYWxsX2RpYWxvZ19udW1iZXJfZm9yX2Rpc3BsYXkiIG1zZ2lkPSI2OTYxOTIxMDMxOTUwOTA5NzAiPiLhnpvhn4HhnoHigIvhnpbhn4HhnpvigIvhnqLhnrbhnp/hnpPhn5LhnpMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2NhcnJpZXJfZGVmYXVsdCIgbXNnaWQ9Ijg5NjM4MzkyNDI1NjU2NTMxOTIiPiLhnoLhn5LhnpjhnrbhnpPigIvhnp/hn4Hhnpzhnrbhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NjcmVlbl9sb2NrZWQiIG1zZ2lkPSI3Mjg4NDQzMDc0ODA2ODMyOTA0Ij4i4Z6F4Z624Z6A4Z+L4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2VuYWJsZWQiIG1zZ2lkPSI0NjE1NDA1MTYxNDEyNjA0OSI+IuGeheGeu+GeheKAi+GemOGfieGeuuGek+Geu+GemSDhnorhnr7hnpjhn5LhnpThnrjigIvhnorhn4Thn4figIvhnp/hn4TigIsg4Z6s4oCL4Z6g4Z+F4oCL4Z6W4Z+B4Z6b4oCL4Z6i4Z624Z6f4Z6T4Z+S4Z6T4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iNjg2MjYwMDI4Nzk3MTU4MzY0Ij4i4Z6F4Z674Z6F4oCL4Z6Y4Z+J4Z664Z6T4Z674Z6ZIOGeiuGevuGemOGfkuGelOGeuOKAi+GeiuGfhOGfh+KAi+Gen+GfhOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI3NDc4NzAzMjU0OTY0ODEwMzAyIj4i4Z6C4Z684Z6a4oCL4Z6b4Z+G4Z6T4Z624Z+GIOGeiuGevuGemOGfkuGelOGeuOKAi+GeiuGfhOGfh+KAi+Gen+GfhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZW1lcmdlbmN5X2NhbGwiIG1zZ2lkPSI1MzQ3NjMzNzg0NDAxMjg1MjI1Ij4i4Z6A4Z624Z6a4oCL4Z6g4Z+F4oCL4oCL4Z6W4Z+B4Z6b4oCL4Z6i4Z624Z6f4Z6T4Z+S4Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9yZXR1cm5fdG9fY2FsbCIgbXNnaWQ9IjUyNDQyNTk3ODU1MDAwNDAwMjEiPiLhno/hn5LhnprhnqHhnpThn4vigIvhnpHhn4XigIvhnoDhnrbhnprigIvhnqDhn4UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BhdHRlcm5fY29ycmVjdCIgbXNnaWQ9IjkwMzkwMDg2NTAzNjIyNjEyMzciPiLhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpwhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX3dyb25nIiBtc2dpZD0iNDMxNzk1NTAxNDk0ODEwODc5NCI+IuGeluGfkuGemeGetuGemeGetuGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGFzc3dvcmRfd3JvbmciIG1zZ2lkPSI1NzM3ODE1MzkzMjUzMTY1MzAxIj4i4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6Y4Z+S4Z6K4Z6E4oCL4Z6R4Z+A4Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjZXVubG9ja19tdWx0aXBsZV9mYWlsdXJlcyIgbXNnaWQ9Ijc1NDEzNzU4MzAyMjc5MjQyOSI+IuGelOGetuGek+KAi+Gem+GevuGen+KAi+GegOGetuGemuKAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GeiuGfhOGfh+KAi+Gen+GfhOKAi+Gej+GetuGemOKAi+GekeGemOGfkuGemuGehOGfi+KAi+GemOGeu+GegSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGx1Z2dlZF9pbiIgbXNnaWQ9IjgwNTc3NjI4MjgzNTU1NzIzMTUiPiLhnpThnonhn5LhnoXhnrzhnpvigIvhnpDhn5LhnpggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fY2hhcmdlZCIgbXNnaWQ9IjMyMTYzNTc0NTY4NDA2MDYyNCI+IuGelOGetuGek+KAi+GelOGeieGfkuGeheGevOGem+KAi+GeluGfgeGeieGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYmF0dGVyeV9zaG9ydCIgbXNnaWQ9IjQ0NzcyNjQ4NDkzODY4NTAyNjYiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9sb3dfYmF0dGVyeSIgbXNnaWQ9IjE0ODI4NzM5ODE5MTkyNDk3NDAiPiLhnpfhn5LhnofhnrbhnpThn4vigIvhnqfhnpThnoDhnprhno7hn43igIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpDhn5Lhnpjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI1MDk5NDM5Mjc3ODE5MjE1Mzk5Ij4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6f4Z+K4Z644oCL4Z6Y4oCL4Z6A4Z624Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTE2NTkxOTYwOTU3OTE0NzQiPiLhnoLhn5LhnpjhnrbhnpPigIvhnp/hn4rhnrjhnpjigIvhnoDhnrbhno/igIvhnoDhn5LhnpPhnrvhnoTigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4fhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg2OTIwNTg1Njk1MTY5MDc4Ij4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6f4Z+K4Z644Z6Y4oCL4Z6A4Z624Z6P4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1MzcyNzg3MTM4MDIzMjcyNjE1Ij4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4oCL4Z6f4Z+K4Z644oCL4Z6Y4oCL4Z6A4Z624Z6P4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjM1MjY1NzMwOTkwMTkzMTk0NzIiPiLhnpThnrbhno/hn4vigIsg4Z6s4oCL4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6i4Z624Z6T4oCL4Z6f4Z+K4Z644Z6Y4oCL4Z6A4Z624Z6P4Z+UIOGelOGeieGfkuGeheGevOGem+KAi+Gen+GfiuGeuOGemOKAi+GegOGetuGej+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNTA5NjE0OTY2NTEzODkxNjE4NCI+IuGen+GfiuGeuOKAi+GemOKAi+GegOGetuGej+KAi+GemOGet+Gek+KAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GelOGetuGek+KAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGVybWFuZW50X2Rpc2FibGVkX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI5MTA5MDQ2NDM0MzMxNTEzNzEiPiLhnp/hn4rhnrjhnpjigIvhnoDhnrbhno/igIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnpThnrfhnpHigIvhnofhnrbigIvhnqLhnoXhnrfhnpPhn5Lhno/hn5Lhnprhn4Phnpnhn43hn5RcbiDhnpHhnrbhnoDhn4vhnpHhnoTigIvhnoDhn5LhnprhnrvhnpjhnqDhn4rhnrvhnpPigIvhnpXhn5Lhnorhnpvhn4vigIvhnp/hn4HhnpzhnrbhnoDhnpjhn5LhnpjigIvhnqXhno/igIvhnoHhn5Lhnp/hn4LigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnp/hn4rhnrjhnpjigIvhnoDhnrbhno/igIvhnpXhn5Lhnp/hn4HhnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjAxNTk0OTA1MTUyNzQ2ODg2Ij4i4Z6U4Z+K4Z684Z6P4Z674Z6E4oCL4Z6U4Z6R4oCL4Z6Y4Z674Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjYwODkyOTc2NTA0ODEyOTIzNjMiPiLhnpThn4rhnrzhno/hnrvhnoTigIvhnpThnpHigIvhnpThnpPhn5LhnpHhnrbhnpThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTkwODg3ODY3ODAxMjgwMDEiPiLhnpThn4rhnrzhno/hnrvhnoTigIvigIvhnpXhn5LhnqLhnrbhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTg4ODQyMjkzODM1MTAxOTQyNiI+IuGelOGfiuGevOGej+Geu+GehOKAi+GeheGetuGegOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTYyMzE4Mzc4NzY2OTg3NjAxIj4i4Z6U4Z+K4Z684Z6P4Z674Z6E4oCL4Z6U4Z6J4Z+S4Z6I4Z6U4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1lcmdlbmN5X2NhbGxzX29ubHkiIG1zZ2lkPSI2NzMzOTc4MzA0Mzg2MzY1NDA3Ij4i4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6P4Z+C4oCL4Z6g4Z+F4oCL4Z6W4Z+B4Z6b4oCL4Z6i4Z624Z6f4Z6T4Z+S4Z6T4oCL4Z6U4Z+J4Z674Z6O4Z+S4Z6O4Z+E4Z+HIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9uZXR3b3JrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMTQzMzg5MjI0OTg2MDI4NTAxIj4i4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6H4Z624Z6U4Z+L4oCL4Z6f4Z+EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNzQ0MTc5NzMzOTk3NjIzMCI+IuGen+GfiuGeuOGemOKAi+GegOGetuGej+KAi+Geh+GetuGelOGfi+KAi+Gen+GfhCBQVUvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV9wdWtfbG9ja2VkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjgxMjc5MTYyNTUyNDUxODEwNjMiPiLhnpjhnr7hnpvigIvhnpjhnoLhn5LhnoLhnrvhnpHhn5LhnpHhn4Hhnp/hnoDhn43igIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr4g4Z6s4oCL4Z6R4Z624Z6A4Z+L4Z6R4Z6E4oCL4Z6f4Z+B4Z6c4Z624oCL4Z6i4Z6P4Z634Z6Q4Z634Z6H4Z6T4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI4MDY2NjYwMTI5MjA2MDAxMDM5Ij4i4Z6f4Z+K4Z644Z6Y4Z6A4Z624Z6P4oCL4oCL4Z6H4Z624Z6U4Z+L4oCL4Z6f4Z+E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNTk1MzIzMjE0MDUyODgxMjY0Ij4i4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6f4Z+K4Z644Z6Y4Z6A4Z624Z6PLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI2NDgxNjIzODMwMzQ0MTA3MjIyIj4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6C4Z684Z6a4oCL4Z6b4Z+G4Z6T4Z624Z+G4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6F4Z+G4Z6T4Z694Z6TIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOGeiuGehOGflCBcblxu4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6Y4Z+S4Z6K4Z6E4oCL4Z6R4Z+A4Z6P4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6a4Z6Z4Z+I4oCL4Z6W4Z+B4Z6bIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGenOGet+Gek+GetuGekeGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iMjcyNTk3MzI4NjIzOTM0NDU1NSI+IuGeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GelOGeieGfkuGeheGevOGem+KAi+GeluGetuGegOGfkuGemeKAi+Gen+GemOGfkuGehOGetuGej+Gfi+KAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDhnorhnoThn5QgXG5cbuGeluGfkuGemeGetuGemeGetuGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGej+KAi+GegOGfkuGek+Geu+GehOKAi+GemuGemeGfiOKAi+GeluGfgeGemyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhnpzhnrfhnpPhnrbhnpHhnrjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI2MjE2NjcyNzA2NTQ1Njk2OTU1Ij4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6K4oCLIFBJTiDhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnoXhn4bhnpPhnr3hnpMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UIFxuXG4g4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6Y4Z+S4Z6K4Z6E4oCL4Z6R4Z+A4Z6P4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6a4Z6Z4Z+I4oCL4Z6W4Z+B4Z6bIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGenOGet+Gek+GetuGekeGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjkxOTE2MTE5ODQ2MjU0NjA4MjAiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnoLhnrzhnprigIvhnpvhn4bhnpPhnrbhn4bigIvhnorhn4Thn4figIvhnp/hn4TigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnoXhn4bhnpPhnr3hnpMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UIOGelOGek+GfkuGekeGetuGelOGfi+KAi+GeluGeuOKAi+GegOGetuGemuKAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GemOGet+Gek+KAi+Geh+GfhOGeguGeh+GfkOGemeKAi+KAi+GeheGfkuGemuGevuGek+KAi+Geh+GetuGehCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhnorhnoQg4Z6i4Z+S4Z6T4Z6A4oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6f4Z+S4Z6T4Z6+4oCL4Z6y4Z+S4Z6Z4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIOGeiuGfhOGemeKAi+GelOGfkuGemuGevuKAi+GegOGetuGemuKAi+GeheGevOGem+KAi+GegOGfkuGek+Geu+GehOKAi+GeguGejuGek+GeuCBHb29nbGUg4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UXG5cbiDhnp/hnrzhnpjigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhn5LhnorhnoTigIvhnpHhn4Dhno/igIvhnoDhn5LhnpPhnrvhnoTigIvhnprhnpnhn4jigIvhnpbhn4HhnpsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Z6c4Z634Z6T4Z624Z6R4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI1OTAyMjc1NTk3NjM3NjI3NTEiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnoLhnrzhnprigIvhnpvhn4bhnpPhnrbhn4bigIvhnorhn4Thn4figIvhnp/hn4TigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpwgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UIOGelOGek+GfkuGekeGetuGelOGfi+KAi+GeluGeuOKAi+GegOGetuGemuKAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GemOGet+Gek+KAi+Geh+GfhOGeguGeh+GfkOGemSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhnorhnoTigIvhnpHhn4Dhno8g4Z6i4Z+S4Z6T4Z6A4oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6f4Z+S4Z6T4Z6+4oCL4Z6y4Z+S4Z6Z4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6K4Z+E4Z6Z4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6A4Z624Z6a4oCL4Z6F4Z684Z6b4oCLIEdvb2dsZSDhn5RcblxuIOGeluGfkuGemeGetuGemeGetuGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGej+KAi+GegOGfkuGek+Geu+GehOKAi+GemuGemeGfiOKAi+GeluGfgeGemyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDhnpzhnrfhnpPhnrbhnpHhnrjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjEyODEwNjM5OTc0NTc1NTYwNCI+IuGeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GeiuGfhOGfh+KAi+Gen+GfhOKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDhnorhnoThn5Qg4Z6U4Z6T4Z+S4Z6R4Z624Z6U4Z+L4oCL4Z6W4Z644oCL4Z6A4Z624Z6a4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6Y4Z634Z6T4oCL4Z6H4Z+E4Z6C4Z6H4Z+Q4Z6Z4oCLIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGeiuGehOKAi+GekeGfgOGejyDhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4figIvhnpPhnrnhnoTigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnoDhn4bhno7hno/hn4vigIvhnorhnrzhnoXigIvhnoXhn4HhnonigIvhnpbhnrjigIvhnprhn4ThnoThnoXhnoDhn5LhnprigIvhnqHhnr7hnoThnpzhnrfhnokg4Z6g4Z6+4Z6Z4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6R4Z624Z+G4Z6E4Z6i4Z6f4Z+L4oCL4Z6T4Z654Z6E4oCL4Z6U4Z624Z6P4Z+L4Z6U4Z6E4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NjAzNTY1MTQyMTU2ODI2NTY1Ij4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4oCLIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOGeiuGehOGflCDhnpThnpPhn5LhnpHhnrbhnpThn4vigIvhnpbhnrjigIvhnoDhnrbhnprigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhnrfhnpPigIvhnofhn4ThnoLhnofhn5DhnpkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6K4Z684Z6F4oCL4Z6F4Z+B4Z6J4oCL4Z6W4Z644oCL4Z6a4Z+E4Z6E4Z6F4Z6A4Z+S4Z6a4oCL4Z6h4Z6+4Z6E4Z6c4Z634Z6JIOGeoOGevuGemeKAi+GelOGetuGej+Gfi+GelOGehOGfi+KAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GeouGfkuGek+GegOKAi+GelOGfkuGemuGevuKAi+GekeGetuGfhuGehOGeouGen+Gfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI4MDg3MzUxNjQ5MzkzNDM2NSI+IuGeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GeiuGfhOGfh+KAi+Gen+GfhOKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOKAi+GeheGfhuGek+GeveGekyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UIOGepeGeoeGevOGenOKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+Gek+GeueGehOKAi+GegOGfhuGejuGej+Gfi+KAi+GekeGfheKAi+Gem+GfhuGek+GetuGfhuGeiuGevuGemOKAi+GeiuGevOGeheKAi+GeheGfgeGeieKAi+GeluGeuOKAi+GemuGfhOGehOKAi+GeheGegOGfkuGemuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzMDI1NTA0NzIxNzY0OTIyMjQ2Ij4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6cIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhnorhnoThn5Qg4Z6l4Z6h4Z684Z6c4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6R4Z+F4oCL4Z6b4Z+G4Z6T4Z624Z+G4Z6K4Z6+4Z6Y4oCL4oCL4Z6K4Z684Z6F4oCL4Z6F4Z+B4Z6J4oCL4Z6W4Z644oCL4Z6a4Z+E4Z6E4Z6F4Z6A4Z+S4Z6a4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfY291bnRkb3duIiBtc2dpZD0iNjI1MTQ4MDM0MzM5NDM4OTY2NSI+IuGeluGfkuGemeGetuGemeGetuGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGej+KAi+GegOGfkuGek+Geu+GehOKAi+GemuGemeGfiCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4Z6c4Z634Z6T4Z624Z6R4Z644oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9IjI2MjY5OTk0NDk2MTA2OTU5MzAiPiLhnpfhn5Lhnpvhn4HhnoXigIvhnpvhn4bhnpPhnrbhn4bigIs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fZm9yZ290X3BhdHRlcm4iIG1zZ2lkPSIyNTg4NTIxNTAxMTY2MDMyNzQ3Ij4i4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6C4Z6O4Z6T4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSIyNzUxMzY4NjA1Mjg3Mjg4ODA4Ij4i4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6b4Z+G4Z6T4Z624Z+G4oCL4Z6F4Z+S4Z6a4Z6+4Z6T4oCL4Z6W4Z+B4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzkzMTgxNjI1NjEwMDcwNzc4NCI+IuGeiuGevuGemOGfkuGelOGeuOKAi+GeiuGfhOGfh+KAi+Gen+GfhCDhnoXhnrzhnpvigIvhnoLhno7hnpPhnrggR29vZ2xlIOGemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI4ODQ2ODgxNDI0MTA2NDg0NDQ3Ij4i4Z6I4Z+S4Z6Y4Z+E4Z+H4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z+S4Z6a4Z6+ICjhnqLhn4rhnrjhnpjhn4LhnpvigIspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjU5NTgwMjgzODM5NTQ3Mzg1MjgiPiLhnpbhnrbhnoDhn5Lhnpnhnp/hnpjhn5LhnoThnrbhno/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNzEzMDg5MzY5NDc5NTc4NjMwMCI+IuGeheGevOGemyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSIxMzY0MDUxNDczMzQ3NDg1OTA4Ij4i4Z6I4Z+S4Z6Y4Z+E4Z+H4oCL4Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+IOGerOKAi+GeluGetuGegOGfkuGemeKAi+Gen+GemOGfkuGehOGetuGej+Gfi+KAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2FjY291bnRfcmVjb3ZlcnlfaGludCIgbXNnaWQ9IjE2OTY5MjQ3NjM2OTAzNzkwNzMiPiLhnpfhn5Lhnpvhn4HhnoXigIvhnojhn5Lhnpjhn4Thn4figIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr4g4Z6s4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AP1xu4Z6Y4Z6+4Z6bICI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+IiDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjcxMTQ2MjczNTEyODY5MzM4NjciPiLhnoDhn4bhnpbhnrvhnoTigIvhnpbhnrfhnpPhnrfhno/hn5LhnpkuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3VubG9ja19sYWJlbCIgbXNnaWQ9IjczNzQ0MDQ4MzIyMDY2NzA1NCI+IuGeiuGfhOGfh+KAi+Gen+GfhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc291bmRfb25fbGFiZWwiIG1zZ2lkPSI5MDY4ODc3NTc2NTEzNDI1OTcwIj4i4Z6U4Z6+4Z6A4oCL4Z6f4Z+G4Z6h4Z+B4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zb3VuZF9vZmZfbGFiZWwiIG1zZ2lkPSI5OTY4MjI4MjUxNTQzMTkwMjYiPiLhnpThnrfhnpHhnp/hn4bhnqHhn4HhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2FjY2Vzc19wYXR0ZXJuX3N0YXJ0IiBtc2dpZD0iMzk0MTA0NTUwMjkzMzE0Mjg0NyI+IuGelOGetuGek+KAi+GeheGetuGelOGfi+KAi+GeleGfkuGeiuGevuGemOKAi+Gem+GfhuGek+GetuGfhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYWNjZXNzX3BhdHRlcm5fY2xlYXJlZCIgbXNnaWQ9IjU1ODM0Nzk3MjEwMDE2Mzk1NzkiPiLhnpThnrbhnpPigIvhnp/hnpjhn5LhnqLhnrbhno/igIvhnpvhn4bhnpPhnrbhn4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2FjY2Vzc19wYXR0ZXJuX2NlbGxfYWRkZWQiIG1zZ2lkPSI2NzU2MDMxMjA4MzU5MjkyNDg3Ij4i4Z6U4Z624Z6T4oCL4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4oCL4Z6A4Z+S4Z6a4Z6h4Z62Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9kZXRlY3RlZCIgbXNnaWQ9IjQ5ODg3MzA4OTU1NTQwNTcwNTgiPiLhnpThnrbhnpPigIvhnpThnonhn5LhnoXhnpThn4vigIvhnpvhn4bhnpPhnrbhn4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9jaGFuZ2VkIiBtc2dpZD0iNTY3ODYyNDYyNDY4MTQwMDE5MSI+IiUxJHMuIOGekuGetuGej+Geu+KAi+GegOGfkuGemuGetuGeoOGfkuGenOGet+GegCAlMiRkIOGek+GfgyAlMyRkIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiLhnpThnpPhn5LhnpDhn4LhnpjigIvhnpLhnrbhno/hnrvigIvhnoDhn5LhnprhnrbhnqDhn5LhnpzhnrfhnoDigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9lbXB0eV9zbG90IiBtc2dpZD0iMTI4MTUwNTcwMzMwNzkzMDc1NyI+IuGekeGekeGfgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfZXhwYW5kZWQiIG1zZ2lkPSIyMjc4MTA2MDIyMzExMTcwMjk5Ij4i4Z6U4Z624Z6T4oCL4Z6W4Z6E4Z+S4Z6a4Z644Z6A4oCL4Z6V4Z+S4Z6R4Z+D4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9jb2xsYXBzZWQiIG1zZ2lkPSI2MzY2OTkyMDY2OTM2MDc2Mzk2Ij4i4Z6U4Z624Z6T4oCL4Z6U4Z6E4Z+S4Z6a4Z694Z6Y4oCL4Z6V4Z+S4Z6R4Z+D4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXQiIG1zZ2lkPSI2NTI3MTMxMDM5NzQxODA4MjQwIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4Z6S4Z624Z6P4Z674oCL4Z6A4Z+S4Z6a4Z624Z6g4Z+S4Z6c4Z634Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91c2VyX3NlbGVjdG9yIiBtc2dpZD0iMTIyNjc5ODM3MDkxMzY5ODg5NiI+IuGep+GelOGegOGemuGejuGfjeKAi+Geh+GfkuGemuGevuGen+KAi+GeouGfkuGek+GegOKAi+GelOGfkuGemuGeviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc3RhdHVzIiBtc2dpZD0iODAwODI2NDYwMzkzNTkzMDYxMSI+IuGen+GfkuGekOGetuGek+Gel+GetuGeliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfY2FtZXJhIiBtc2dpZD0iODkwNDIzMTE5NDE4MTExNDYwMyI+IuGemOGfieGetuGen+GfiuGeuOGek+KAi+GekOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWdhdXJkX2FjY2Vzc2liaWxpdHlfbWVkaWFfY29udHJvbHMiIG1zZ2lkPSIyNjIyMDk2NTQyOTIxNjE4MDYiPiLhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnpjhn4Hhnozhn4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+IuGelOGetuGek+KAi+GeheGetuGelOGfi+GeleGfkuGeiuGevuGemOKAi+Gej+GemOGfkuGemuGfgOGelOKAi+GekuGetuGej+Geu+KAi+GegOGfkuGemuGetuGeoOGfkuGenOGet+GegOKAi+GeoeGevuGehOGenOGet+GeieGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfZW5kIiBtc2dpZD0iNzE3MDE5MDk1MDg3MDQ2ODMyMCI+IuGelOGetuGek+KAi+GelOGeieGfkuGeheGelOGfi+KAi+GegOGetuGemuKAi+GelOGehOGfkuGeoOGetuGeieKAi+GekuGetuGej+Geu+KAi+GegOGfkuGemuGetuGeoOGfkuGenOGet+GegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4i4Z6U4Z624Z6T4oCL4Z6b4Z674Z6U4oCL4Z6S4Z624Z6P4Z674oCL4Z6A4Z+S4Z6a4Z624Z6g4Z+S4Z6c4Z634Z6AIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZXhwYW5kX2xvY2tfYXJlYSIgbXNnaWQ9IjUxOTg1OTcyMDkzNDE3ODAyNCI+IuGeluGehOGfkuGemuGeuOGegOKAi+Gej+GfhuGelOGek+Gfi+KAi+GeiuGfhOGfh+KAi+Gen+GfhOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfdW5sb2NrIiBtc2dpZD0iMjk1OTkyODQ3ODc2NDY5NzI1NCI+IuGemuGeu+GeieKAi+GeiuGfhOGfh+KAi+Gen+GfhOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl91bmxvY2siIG1zZ2lkPSIxNDkwODQwNzA2MDc1MjQ2NjEyIj4i4Z6b4Z+G4Z6T4Z624Z+G4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9mYWNlX3VubG9jayIgbXNnaWQ9IjQ4MTcyODI1NDMzNTE3MTg1MzUiPiLhnorhn4Thn4figIvhnp/hn4TigIvhno/hnrbhnpjigIvigIvhnpHhnpjhn5LhnprhnoThn4vigIvhnpjhnrvhnoHhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4i4Z6A4Z684Z6KIFBJTiDhnorhn4Thn4figIvhnp/hn4Thn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnorhn4Thn4figIvhnp/hn4TigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fYXJlYSIgbXNnaWQ9Ijc2Nzk4OTEzMjQ1MDk1OTc5MDQiPiLhnpXhn5LhnpHhn4PigIvhnpvhn4bhnpPhnrbhn4bhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4i4Z6V4Z+S4Z6R4Z+D4oCL4Z6a4Z674Z6J4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF9jaGFyYWN0ZXIiIG1zZ2lkPSI3MzM2NDcwNTM1Mzg1MDA5NTIzIj4i4Z6P4Z694Z6i4Z6A4Z+S4Z6f4Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfd29yZCIgbXNnaWQ9IjcwNzU1NzAzMjgzNzQ5MTg2NjAiPiLhnpbhnrbhnoDhn5LhnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF9saW5rIiBtc2dpZD0iNTgxNTUwODg4MDc4MjQ4ODI2NyI+IuGej+GfhuGejiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW51bGFyaXR5X2xhYmVsX2xpbmUiIG1zZ2lkPSI1NzY0MjY3MjM1MDI2MTIwODg4Ij4i4Z6U4Z6T4Z+S4Z6R4Z624Z6P4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9hbXBtIiBtc2dpZD0iNDU4NDMzODA4MzUyOTM1NTk4MiI+Ijx4bGlmZjpnIGlkPSJIT1VSIj4lLWw8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IkFNUE0iPiVQPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfY2FwX2FtcG0iIG1zZ2lkPSIyMDgzNDY1OTkyOTQwNDQ0MzY2Ij4iPHhsaWZmOmcgaWQ9IkhPVVIiPiUtbDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iQU1QTSI+JXA8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3RfZmFpbGVkIiBtc2dpZD0iNTQxMDI3MDMyOTExNDIxMjA0MSI+IuGelOGetuGek+KAi+GelOGemuGetuGeh+GfkOGemeKAi+GegOGfkuGek+Geu+GehOKAi+GegOGetuGemuKAi+Gen+GetuGegOGem+GfkuGelOGehOKAi+GemuGfhOGehOGeheGegOGfkuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X25vdF9zeXN0ZW0iIG1zZ2lkPSI0NDM1MjAxNjU2NzY3Mjc2NzIzIj4i4Z6f4Z6A4Z6Y4Z+S4Z6Y4Z6X4Z624Z6WIEZBQ1RPUllfVEVTVCDhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnoLhnrbhn4bhnpHhn5LhnprigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhno/hn4LigIvhnoDhnonhn5LhnoXhnpThn4vigIvhnpThnrbhnpPigIvhnorhn4bhnqHhnr7hnoTigIvhnoDhn5LhnpPhnrvhnoQgL3N5c3RlbS9hcHAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3Rfbm9fYWN0aW9uIiBtc2dpZD0iODcyOTkxODc0Nzk5OTk4NTYxIj4i4Z6a4Z6A4oCL4Z6Y4Z634Z6T4oCL4Z6D4Z6+4Z6J4oCL4Z6A4Z6J4Z+S4Z6F4Z6U4Z+L4oCL4Z6K4Z+C4Z6b4oCL4Z6V4Z+S4Z6K4Z6b4Z+L4oCL4Z6f4Z6A4Z6Y4Z+S4Z6Y4Z6X4Z624Z6WIEZBQ1RPUllfVEVTVCDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9yZWJvb3QiIG1zZ2lkPSI2MzIwMTY4MjAzMDUwNzkxNjQzIj4i4Z6F4Z624Z6U4Z+L4oCL4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6h4Z6+4Z6E4oCL4Z6c4Z634Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMTk4NzQ4Mzk3NzgzNDYwMzg3MiI+IuGekeGfhuGeluGfkOGemuKAi+GemOGetuGek+KAi+GeheGfhuGejuGehOGeh+GevuGehCBcIjx4bGlmZjpnIGlkPSJUSVRMRSI+JXM8L3hsaWZmOmc+XCIg4Z6f4Z6a4Z6f4Z+B4Z6a4Z+WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX3RpdGxlX2RlZmF1bHQiIG1zZ2lkPSI2OTYxOTAzMjEzNzI5NjY3NTczIj4iSmF2YVNjcmlwdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkX3RpdGxlIiBtc2dpZD0iMjYxOTM3NjU1NTUyNTExNjU5MyI+IuGelOGeieGfkuGeh+GetuGegOGfi+KAi+GegOGetuGemuKAi+GemuGeu+GegOGemuGegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkX3Bvc2l0aXZlX2J1dHRvbiIgbXNnaWQ9IjMxMTI3NTIwMTA2MDA0ODQxMzAiPiLhnoXhnrbhnoDhnoXhn4HhnonigIvhnpbhnrjigIvhnpHhn4bhnpbhn5DhnprigIvhnpPhn4Hhn4ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfYmVmb3JlX3VubG9hZF9uZWdhdGl2ZV9idXR0b24iIG1zZ2lkPSI1NjE0ODYxMjkzMDI2MDk5NzE1Ij4i4Z6T4Z+F4oCL4Z6b4Z6+4oCL4Z6R4Z+G4Z6W4Z+Q4Z6a4oCL4Z6T4Z+B4Z+HIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWQiIG1zZ2lkPSIzNDY4ODE2MzU3MDk1Mzc4NTkwIj4iPHhsaWZmOmcgaWQ9Ik1FU1NBR0UiPiVzPC94bGlmZjpnPlxuXG7hno/hnr7igIvhnqLhn5LhnpPhnoDigIvhnpThn5LhnprhnrbhnoDhnorigIvhnofhnrbigIvhnoXhnoThn4vigIvhnoXhn4HhnonigIvhnpbhnrjigIvhnpHhn4bhnpbhn5DhnprigIvhnpPhn4Hhn4figIvhnqw/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9sYWJlbCIgbXNnaWQ9IjY4NjAyNjE3NTg2NjU4MjUwNjkiPiLhnpThnonhn5LhnofhnrbhnoDhn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb3VibGVfdGFwX3RvYXN0IiBtc2dpZD0iNDU5NTA0NjUxNTQwMDI2ODg4MSI+IuGeh+GfhuGek+GeveGemeGfliDhnpThn4nhn4figIvhnpbhnrjhnprigIvhnorhnoQg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6W4Z6E4Z+S4Z6a4Z644Z6AIOGek+Get+GehOKAi+GelOGehOGfkuGemuGeveGemOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3RoaXNfZm9ybSIgbXNnaWQ9IjQ2MTY3NTg4NDExNTc4MTY2NzYiPiLhnpThn4bhnpbhn4HhnonigIvhnp/hn5Lhnpzhn5DhnpnigIvhnpThn5Lhnprhnpzhno/hn5Lhno/hnrciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXR1cF9hdXRvZmlsbCIgbXNnaWQ9IjcxMDM0OTUwNzAxODA1OTA4MTQiPiLhnprhn4DhnpThnoXhn4bigIvhnoDhnrbhnprigIvhnpThn4bhnpbhn4HhnonigIvhnp/hn5Lhnpzhn5DhnpnigIvhnpThn5Lhnprhnpzhno/hn5Lhno/hnrciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX25hbWVfc2VwYXJhdG9yIiBtc2dpZD0iNjM1MDE0NTE1NDc3OTcwNjc3MiI+IiAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX3N1bW1hcnlfbmFtZV9mb3JtYXQiIG1zZ2lkPSIzMjY4MDQxMDU0ODk5MjE0OTQ1Ij4iJDEkMiQzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYWRkcmVzc19zdW1tYXJ5X3NlcGFyYXRvciIgbXNnaWQ9Ijc0ODMzMDc4OTMxNzAzMjQxMjkiPiIsICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3Nfc3VtbWFyeV9mb3JtYXQiIG1zZ2lkPSI0ODc0NDU5NDU1Nzg2ODI3MzQ0Ij4iJDEkMiQzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcHJvdmluY2UiIG1zZ2lkPSIyMjMxODA2NTUzODYzNDIyMzAwIj4i4Z6B4Z+B4Z6P4Z+S4Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcG9zdGFsX2NvZGUiIG1zZ2lkPSI0Njk2NDMwNDA3Njg5Mzc3MTA4Ij4i4Z6b4Z+B4Z6B4oCL4Z6U4Z+S4Z6a4Z+D4Z6f4Z6O4Z644Z6Z4Z+NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfc3RhdGUiIG1zZ2lkPSI2OTg4ODk0MTk1NTIwMDQ0NjEzIj4i4Z6a4Z6K4Z+S4Z6LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfemlwX2NvZGUiIG1zZ2lkPSI4Njk3NTQ0NTkyNjI3MzIyOTQ2Ij4i4Z6A4Z684Z6K4oCL4Z6P4Z+G4Z6U4Z6T4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfY291bnR5IiBtc2dpZD0iMjM3MDczNzcxMDIwMzYyODkxIj4i4Z6U4Z+S4Z6a4Z6R4Z+B4Z6fIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfaXNsYW5kIiBtc2dpZD0iNDAyMDEwMDg3NTk4NDY2NzAyNSI+IuGegOGfhOGfhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2Rpc3RyaWN0IiBtc2dpZD0iODQwMDczNTA3MzM5MjI2NzY3MiI+IuGen+GfkuGemuGeu+GegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2RlcGFydG1lbnQiIG1zZ2lkPSI1MzQzMjc5NDYyNTY0NDUzMzA5Ij4i4Z6V4Z+S4Z6T4Z+C4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcHJlZmVjdHVyZSIgbXNnaWQ9IjIwMjg0OTk0ODUwNjU4MDA0MTkiPiJQcmVmZWN0dXJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcGFyaXNoIiBtc2dpZD0iODIwMjIwNjEwNTQ2ODgyMDA1NyI+IlBhcmlzaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FyZWEiIG1zZ2lkPSIzNTQ3NDA5MDUwODg5OTUyNDIzIj4i4Z6P4Z+G4Z6U4Z6T4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZW1pcmF0ZSIgbXNnaWQ9IjI4OTM4ODA5Nzg4MzU2OTg4MTgiPiJFbWlyYXRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9IjM3NzUyNjU3NzU0MDUxMDY5ODMiPiLhnqLhnrbhnpPigIvhnpThn5Lhnprhnpzhno/hn5Lhno/hnrcg4Z6T4Z634Z6E4oCL4Z6F4Z+G4Z6O4Z624Z+G4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSI4NDYyMzc4MjI2NjAwNDM5NjU4Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6T4oCL4Z6U4Z+S4Z6a4Z6c4Z6P4Z+S4Z6P4Z63IFVSTHMg4Z6R4Z624Z+G4Z6E4oCL4Z6i4Z6f4Z+L4oCL4Z6K4Z+C4Z6b4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z+K4Z644Z6T4Z6S4Z664Z6O4Z634Z6P4oCL4Z6U4Z624Z6T4oCL4Z6R4Z6f4Z+S4Z6f4Z6T4Z62IOGeluGfkuGemuGemOKAi+GekeGetuGfhuGehOKAi+GeheGfhuGejuGetuGfhuKAi+GemuGelOGen+Gfi+KAi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeouGfiuGeuOGek+GekuGeuuGejuGet+Gej+GflCDhnoXhn4bhno7hnrbhn4bhn5Yg4Z6f4Z634Z6R4Z+S4Z6S4Z634oCL4Z6T4Z+B4Z+H4oCL4oCL4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6i4Z6T4Z674Z6c4Z6P4Z+S4Z6P4oCL4Z6K4Z+E4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z+K4Z644Z6T4Z6S4Z664Z6O4Z634Z6P4oCL4Z6X4Z624Z6C4Z644oCL4Z6R4Z644Z6U4Z64IOGerOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeiuGfguGem+KAi+GemOGetuGek+KAi+Gen+GemOGej+GfkuGekOGel+GetuGeluKAi+GemuGeu+GegOGemuGegOKAi+GelOGejuGfkuGeiuGetuGeieGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iMzcxNDc4NTE2NTI3MzMxNDQ5MCI+IuGen+GemuGen+GfgeGemuKAi+GeheGfhuGejuGetuGfhiDhnpPhnrfhnoTigIvhnpThn5Lhnprhnpzhno/hn5Lhno/hnrfigIvhnpThno7hn5LhnorhnrbhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUhpc3RvcnlCb29rbWFya3MiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY4MjU1Mjc0NjkxNDU3NjA5MjIiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoDhn4LigIvhnpThn5Lhnprhnpzhno/hn5Lhno/hnrfigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhn4rhnrjhnpPhnpLhnrrhno7hnrfhno8g4Z6s4oCL4Z6F4Z+G4Z6O4Z624Z+G4oCL4Z6K4Z+C4Z6b4oCL4Z6Y4Z624Z6T4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIOGenOGetuKAi+GeouGetuGeheKAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gem+Geu+GelCDhnqzigIvhnoDhn4LigIvigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhn4rhnrjhnpPhnpLhnrrhno7hnrfhno/hn5Qg4Z6F4Z+G4Z6O4Z624Z+G4Z+WIOGen+Get+GekeGfkuGekuGet+KAi+Gek+GfgeGfh+KAi+KAi+GeouGetuGeheKAi+GegOGej+Gfi+KAi+Gen+GemOGfkuGeguGetuGem+Gfi+KAi+GekOGetuKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GeouGek+Geu+GenOGej+GfkuGej+KAi+GeiuGfhOGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeouGfiuGeuOGek+GekuGeuuGejuGet+Gej+KAi+Gel+GetuGeguGeuOKAi+GekeGeuOKAi+GelOGeuCDhnqzigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnp/hn4HhnoTigIvhnorhn4LhnpvigIvhnpjhnrbhnpPigIvhnp/hnpjhno/hn5LhnpDhnpfhnrbhnpbigIvigIvhnprhnrvhnoDhnprhnoDigIvhnpThno7hn5Lhnorhnrbhnonhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUhpc3RvcnlCb29rbWFya3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NDk3Mzg5NTMxMDE0MTg1NTA5Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6A4Z+C4oCL4Z6U4Z+S4Z6a4Z6c4Z6P4Z+S4Z6P4Z63IOGerOKAi+GeheGfhuGejuGetuGfhuKAi+GemuGelOGen+Gfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeouGfiuGeuOGek+GekuGeuuGejuGet+Gej+KAi+GeiuGfguGem+KAi+GelOGetuGek+KAi+GemuGegOGfkuGen+GetuGekeGeu+GegOKAi+GegOGfkuGek+Geu+GehOKAi+GekeGevOGemuGen+GfkOGeluGfkuGekeKAi+KAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOGflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpzhnrbigIvhnorhnr7hnpjhn5LhnpThnrjigIvhnpvhnrvhnpQg4Z6s4oCL4Z6A4Z+C4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6T4Z+D4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z+K4Z644Z6T4Z6S4Z664Z6O4Z634Z6P4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIOGeheGfhuGejuGetuGfhuGfliDhnp/hnrfhnpHhn5LhnpLhnrfigIvhnpPhn4Hhn4figIvhnqLhnrbhnoXigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnpThnoThn5LhnoHhn4bigIvhnorhn4ThnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhn4rhnrjhnpPhnpLhnrrhno7hnrfhno/igIvigIvhnpfhnrbhnoLhnrjigIvhnpHhnrjhnpThnrjigIsg4Z6s4oCL4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6V4Z+S4Z6f4Z+B4Z6E4oCL4Z6K4Z+C4Z6b4oCL4Z6Y4Z624Z6T4oCL4Z6f4Z6Y4Z6P4Z+S4Z6Q4Z6X4Z624Z6W4oCL4Z6a4Z674Z6A4Z6a4Z6A4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4Z+U4Z6fIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbGFybSIgbXNnaWQ9IjEzNzkyOTQ1NTYzNjIwOTE4MTQiPiLhnoDhn4bhno7hno/hn4vigIvhnp/hn4bhnqHhn4HhnoTigIvhnprhn4ThnpHhn40iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbGFybSIgbXNnaWQ9IjMxNjM5MjAzOTE1NzQ3Mzg0OCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GegOGfhuGejuGej+Gfi+KAi+KAi+Gen+GfhuGeoeGfgeGehOKAi+GemuGfhOGekeGfjeKAi+GegOGfkuGek+Geu+GehOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gek+GetuGeoeGet+GegOGetuKAi+GemuGfhOGekeGfjeKAi+GelOGetuGek+KAi+GeiuGfhuGeoeGevuGehOGflOKAiyDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpPhnrbhnqHhnrfhnoDhnrbigIvhnprhn4ThnpHhn43igIvhnpjhnr3hnpnigIvhnoXhn4bhnpPhnr3hnpPigIvhnqLhnrbhnoXigIvhnpjhnrfhnpPigIvhnqLhnpPhnrvhnpzhno/hn5Lhno/igIvhnpvhnoDhn5LhnoHhno7hn4jigIvhnpPhn4Hhn4fhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FkZFZvaWNlbWFpbCIgbXNnaWQ9IjU1MjU2NjAwMjYwOTA5NTkwNDQiPiLhnpThnpPhn5LhnpDhn4LhnpjigIvhnp/hnrbhnprigIvhnofhnrbigIvhnp/hn4bhnqHhn4HhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hZGRWb2ljZW1haWwiIG1zZ2lkPSI2NjA0NTA4NjUxNDI4MjUyNDM3Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4oCL4Z6f4Z624Z6a4oCL4Z6R4Z+F4oCL4Z6U4Z+S4Z6a4Z6i4Z6U4Z+L4oCL4Z6R4Z6R4Z694Z6b4oCL4Z6f4Z624Z6a4oCL4Z6H4Z624oCL4Z6f4Z+G4Z6h4Z+B4Z6E4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUdlb2xvY2F0aW9uUGVybWlzc2lvbnMiIG1zZ2lkPSI1OTYyMjI0MTU4OTU1MjczOTMyIj4i4Z6A4Z+C4oCL4Z6f4Z634Z6R4Z+S4Z6S4Z634oCL4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4Z6X4Z684Z6Y4Z634Z6f4Z624Z6f4Z+S4Z6P4Z+S4Z6a4oCL4Z6a4Z6U4Z6f4Z+L4oCL4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z+K4Z644Z6T4Z6S4Z664Z6O4Z634Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iMTA4Mzc0MzIzNDUyMjYzODc0NyI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GegOGfguKAi+KAi+Gen+Get+GekeGfkuGekuGet+KAi+GekeGeuOKAi+Gej+GetuGfhuGehOKAi+Gel+GevOGemOGet+Gen+GetuGen+GfkuGej+GfkuGemuKAi+GemuGelOGen+Gfi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeouGfiuGeuOGek+GekuGeuuGejuGet+Gej+GflCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpzhnrYg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6y4Z+S4Z6Z4oCL4Z6V4Z+S4Z6J4Z6+4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4Z6R4Z+F4oCL4Z6P4Z+G4Z6U4Z6T4Z+L4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6K4Z+E4Z6Z4oCL4Z6U4Z+G4Z6W4Z624Z6T4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wYWNrYWdlVmVyaWZpY2F0aW9uQWdlbnQiIG1zZ2lkPSI1NTY4MTM5MTAwNjQ1ODI5MTE3Ij4i4Z6V4Z+S4Z6R4Z+A4Z6E4Z6V4Z+S4Z6R4Z624Z6P4Z+L4oCL4Z6A4Z6J4Z+S4Z6F4Z6U4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGFja2FnZVZlcmlmaWNhdGlvbkFnZW50IiBtc2dpZD0iODQzNzU5MDE5MDk5MDg0MzM4MSI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGekeGfgOGehOGeleGfkuGekeGetuGej+Gfi+KAi+GegOGeieGfkuGeheGelOGfi+KAi+GeiuGfguGem+KAi+GeouGetuGeheKAi+GeiuGfhuGeoeGevuGehOKAi+GelOGetuGek+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFBhY2thZ2VWZXJpZmllciIgbXNnaWQ9IjQxODc3ODY3OTMzNjAzMjY2NTQiPiLhnoXhnoTigIvhnpHhn4XigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5LhnpHhn4DhnoThnpXhn5LhnpHhnrbhno/hn4vigIvhnoDhnonhn5LhnoXhnpThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUGFja2FnZVZlcmlmaWVyIiBtc2dpZD0iMzE4MDc0MTc3MzIzMzg2MjEyNiI+IuGesuGfkuGemeKAi+GemOGfkuGeheGetuGen+Gfi+KAi+Gen+GfkuGek+GevuKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGekeGfgOGehOGeleGfkuGekeGetuGej+Gfi+KAi+GegOGeieGfkuGeheGelOGfi+GflCDhnpjhnrfhnpPigIvhnoLhnr3hnprigIvhnoXhnrbhn4bhnpThnrbhnoXhn4vigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpLhnpjhn5Lhnpjhno/hnrbigIvhnpHhn4Hhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlcmlhbFBvcnQiIG1zZ2lkPSI1NDYwODMzMjc2NTQ2MzEwNzYiPiLhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnoXhn5LhnprhnoDigIvhnp/hn4rhn4HhnprhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXJpYWxQb3J0IiBtc2dpZD0iMjk5MTYzOTk4NTIyNDU5ODE5MyI+IuGeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GeseGfkuGemeKAi+GeheGevOGem+KAi+GeiuGfhuGejuGevuGemuKAi+GegOGetuGemuKAi+GekeGfheKAi+GegOGetuGek+Gfi+KAi+GeheGfkuGemuGegOKAi+Gen+GfgOGemuGfgOGem+KAi+GeiuGfhOGemeKAi+GelOGfkuGemuGeviBTZXJpYWxNYW5hZ2VyIEFQSSDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0NvbnRlbnRQcm92aWRlcnNFeHRlcm5hbGx5IiBtc2dpZD0iNTA3Nzc3NDI5Nzk0MzQwOTI4NSI+IuGeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+GegOGfkuGemuGeu+GemOGeoOGfiuGeu+Gek+KAi+GeleGfkuGeiuGem+Gfi+KAi+GemOGetuGej+Get+GegOGetuKAi+GegeGetuGehOKAi+GegOGfkuGemuGfhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0NvbnRlbnRQcm92aWRlcnNFeHRlcm5hbGx5IiBtc2dpZD0iNDU0NDM0NjQ4NjY5Nzg1MzY4NSI+IuGesuGfkuGemeKAi+GemOGfkuGeheGetuGen+Gfi+KAi+GeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+GegOGfkuGemuGeu+GemOGeoOGfiuGeu+Gek+KAi+GeleGfkuGeiuGem+Gfi+KAi+GemOGetuGej+Get+GegOGetuKAi+GeluGeuOKAi+Gen+GfguGem+GflCDhnpjhnrfhnpPigIvhnoLhnr3hnprigIvhnoXhnrbhn4bhnpThnrbhnoXhn4vigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpLhnpjhn5Lhnpjhno/hnrbigIvhnpHhn4Hhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUxvY2siIG1zZ2lkPSIzNTI3NTU4MzY2NjE2NjgwODg5Ij4i4Z6A4Z624Z6a4oCL4Z6W4Z624Z6a4oCL4Z6U4Z6F4Z+S4Z6F4Z674Z6U4Z+S4Z6U4Z6T4Z+S4Z6T4Z6X4Z624Z6W4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6f4Z+S4Z6c4Z+Q4Z6Z4oCL4Z6U4Z+S4Z6a4Z6c4Z6P4Z+S4Z6P4Z63Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXBkYXRlTG9jayIgbXNnaWQ9IjE2NTU2MjU4MzIxNjY3Nzg0OTIiPiLhnrLhn5LhnpnigIvhnpjhn5LhnoXhnrbhnp/hn4vigIvhnpXhn5Lhnorhnpvhn4vigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnpHhn4XigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLigIvhnqLhn4bhnpbhnrjigIvhnpbhn4Hhnpvhnpzhn4HhnpvhnrbigIvhnorhn4LhnpvigIvhnpvhn5LhnqLigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnqHhnr7hnoThnpzhnrfhnonigIvhnorhn4ThnpnigIvhnoLhn5LhnpjhnrbhnpPigIvhnqLhnpPhn5Lhno/hnprhnoDhnpjhn5Lhnpgg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6S4Z+S4Z6c4Z6+4oCL4Z6U4Z6F4Z+S4Z6F4Z674Z6U4Z+S4Z6U4Z6T4Z+S4Z6T4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9tZXNzYWdlIiBtc2dpZD0iNzY3MzQ0Njg3MTM5MTk1NzkwIj4i4Z6P4Z6+4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6F4Z6E4Z+L4oCL4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z+K4Z644Z6T4Z6S4Z664Z6O4Z634Z6P4oCL4Z6F4Z6E4Z6F4Z624Z+G4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6T4Z+B4Z+HPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfbm90bm93IiBtc2dpZD0iNjM4OTY3NTMxNjcwNjY5OTc1OCI+IuGemOGet+Gek+GemOGfguGek+KAi+GepeGeoeGevOGenCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfcmVtZW1iZXIiIG1zZ2lkPSI2NDkxODc5Njc4OTk2NzQ5NDY2Ij4i4Z6F4Z6E4Z6F4Z624Z+GIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9uZXZlciIgbXNnaWQ9IjgyNzQzMzAyOTY3ODU4NTUxMDUiPiLhnoDhnrvhn4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcGVuX3Blcm1pc3Npb25fZGVueSIgbXNnaWQ9IjczNzQwMzY3MDgzMTY2Mjk4MDAiPiLhnqLhn5LhnpPhnoDigIvhnpjhnrfhnpPigIvhnpjhnrbhnpPigIvhnp/hnrfhnpHhn5LhnpLhnrcg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z6+4Z6A4oCL4Z6R4Z+G4Z6W4Z+Q4Z6a4oCL4Z6T4Z+B4Z+H4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV4dF9jb3BpZWQiIG1zZ2lkPSI0OTg1NzI5NTI0NjcwMTMxMzg1Ij4i4Z6U4Z624Z6T4oCL4Z6F4Z6Y4Z+S4Z6b4Z6E4oCL4Z6i4Z6P4Z+S4Z6Q4Z6U4Z6R4oCL4Z6R4Z+F4oCL4Z6A4Z+S4Z6K4Z624Z6a4oCL4Z6P4Z6Y4Z+S4Z6U4Z+A4Z6P4oCL4Z6B4Z+S4Z6R4Z624Z6f4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9yZV9pdGVtX2xhYmVsIiBtc2dpZD0iNDY1MDkxODkyMzA4MzMyMDQ5NSI+IuGeheGfkuGemuGevuGek+KAi+GekeGfgOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBlbmRfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIyNTcyMjE0NDYxNjc2MDE1NjQyIj4i4Z6Y4Z+J4Z664Z6T4Z674Z6ZICsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NwYWNlX3Nob3J0Y3V0X2xhYmVsIiBtc2dpZD0iMjQxMDMyODYzOTI3MjE2MjUzNyI+IuGeiuGegOGeg+GfkuGem+GetiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZW50ZXJfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIyNzQzMzYyNzg1MTExMzA5NjY4Ij4iZW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZV9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjM2NTgxNzgwMDcyMDI3NDgxNjQiPiLhnpvhnrvhnpQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2hfZ28iIG1zZ2lkPSI4Mjk4MDE2NjY5ODIyMTQxNzE5Ij4i4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9zZWFyY2giIG1zZ2lkPSI2NzQ5ODI2NjM5MDk4NTEyMTIwIj4i4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9xdWVyeSIgbXNnaWQ9IjU5MTE3Nzg1OTMxMjUzNTUxMjQiPiLhnp/hn5Lhnpzhn4LhnoThnprhnoDigIvhnp/hn4bhno7hnr3hnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX2NsZWFyIiBtc2dpZD0iMTMzMDI4MTk5MDk1MTgzMzAzMyI+IuGen+GemOGfkuGeouGetuGej+KAi+Gen+GfhuGejuGeveGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fc3VibWl0IiBtc2dpZD0iMjY4ODQ1MDEzMzI5Nzk4MzU0MiI+IuGeiuGetuGegOGfi+KAi+KAi+KAi+Gen+GfkuGek+GevuKAi+Gen+GfhuGejuGeveGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fdm9pY2UiIG1zZ2lkPSIyNDUzMjAzNjk1Njc0OTk0NDQwIj4i4Z6A4Z624Z6a4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6A4oCL4Z6f4Z+G4Z6h4Z+B4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ190aXRsZSIgbXNnaWQ9Ijc0NjA2OTQwNzAzMDk3MzAxNDkiPiLhnpThnr7hnoDigIvhnoDhnrbhnprigIvhnprhnoDigIvhnpjhnr7hnpsg4Z6K4Z+E4Z6Z4oCL4Z6U4Z+J4Z+HPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODY1NTg4NzUzOTA4OTkxMDU3NyI+Ijx4bGlmZjpnIGlkPSJBQ0NFU1NJQklMSVRZX1NFUlZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz7hnoXhnoThn4vigIvhnpThnr7hnoDigIvhnoDhnrbhnprigIvhnprhnrvhnoDhnprigIvhnoDigIvhnorhn4ThnpnigIvhnpThn4nhn4fhn5Qg4Z6W4Z+B4Z6b4oCL4Z6a4Z674Z6A4Z6a4Z6A4oCL4Z6K4Z+E4Z6Z4oCL4Z6U4Z+J4Z+H4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6U4Z6+4Z6A4oCL4oCLIOGeouGfkuGek+GegOKAi+GeouGetuGeheKAi+Gen+GfkuGeiuGetuGelOGfi+KAi+GeruKAiyDhnqzigIvhnoPhnr7hnonigIvhnoDhnrbhnprigIvhnpbhno7hn4zhnpPhnrbigIvhnqLhn5LhnpzhnrjigIvhnorhn4LhnpvigIvhnpPhn4XigIvhnoDhn5Lhnprhn4ThnpjigIvhnpjhn5Lhnprhnrbhnpjhnorhn4PigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvigIsg4Z6s4oCL4Z6i4Z6T4Z674Z6c4Z6P4Z+S4Z6P4oCL4Z6A4Z624Z6Z4Z6c4Z634Z6A4Z624Z6a4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6Y4Z624Z6T4oCL4Z6i4Z6T4Z+S4Z6P4Z6a4Z6A4Z6Y4Z+S4Z6Y4oCL4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ19tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjcwODE5OTY3Mjg1MjM3MzE5NSI+Ijx4bGlmZjpnIGlkPSJBQ0NFU1NJQklMSVRZX1NFUlZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4g4Z6F4Z6E4Z+L4oCL4Z6U4Z6+4Z6A4oCL4Z6A4Z624Z6a4oCL4Z6a4Z674Z6A4Z6a4oCL4Z6A4oCL4Z6K4Z+E4Z6Z4oCL4Z6U4Z+J4Z+H4Z+UIOGeluGfgeGem+KAi+GemuGeu+GegOGemuGegOKAi+GeiuGfhOGemeKAi+GelOGfieGfh+KAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GelOGevuGegOKAi+KAiyDhnqLhn5LhnpPhnoDigIvhnqLhnrbhnoXigIvhnp/hn5LhnorhnrbhnpThn4vigIvhnq7igIsg4Z6s4oCL4Z6D4Z6+4Z6J4oCL4Z6A4Z624Z6a4oCL4Z6W4Z6O4Z+M4Z6T4Z624oCL4Z6i4Z+S4Z6c4Z644oCL4Z6K4Z+C4Z6b4oCL4Z6T4Z+F4oCL4Z6A4Z+S4Z6a4Z+E4Z6Y4oCL4Z6Y4Z+S4Z6a4Z624Z6Y4Z6K4Z+D4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4oCLIOGerOKAi+GeouGek+Geu+GenOGej+GfkuGej+KAi+GegOGetuGemeGenOGet+GegOGetuGemuKAi+GeiuGevuGemOGfkuGelOGeuOKAi+GemOGetuGek+KAi+GeouGek+GfkuGej+GemuGegOGemOGfkuGemOKAi+Geh+GetuKAi+GemOGeveGemeKAi+GekeGevOGemuGen+GfkOGeluGfkuGekeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9uZU1vbnRoRHVyYXRpb25QYXN0IiBtc2dpZD0iNzM5NjM4NDUwODk1Mzc3OTkyNSI+IjEg4Z6B4Z+C4oCL4Z6Y4Z674Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmVmb3JlT25lTW9udGhEdXJhdGlvblBhc3QiIG1zZ2lkPSI5MDkxMzQ1NDY4MzY0OTk4MjYiPiLhnpjhnrvhnpPigIvhnpbhn4Hhnpsg4Z+hIOGegeGfguKAi+GemOGeu+GekyI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX3NlY29uZHNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDg2OTg3MDA1NjU0Nzg5NjAxMSI+IuGfoSDhnpzhnrfhnpPhnrbhnpHhnrjigIvhnpjhnrvhnpMiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM5MDM3MDY4MDQzNDk1NTYzNzkiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhnpzhnrfhnpPhnrbhnpHhnrjigIvhnpjhnrvhnpMiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Im51bV9taW51dGVzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMzMDY3ODc0MzMwODg4MTAxOTEiPiLhn6Eg4Z6T4Z624Z6R4Z644oCL4Z6Y4Z674Z6TIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMTc2OTQyMDA4OTE1NDU1MTE2Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Z6T4Z624Z6R4Z644oCL4oCL4Z6Y4Z674Z6TIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJudW1faG91cnNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iOTE1MDc5Nzk0NDYxMDgyMTg0OSI+IuGfoSDhnpjhn4nhn4ThnoTigIvhnpjhnrvhnpMiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI0NjcyNzMyMzk1ODc1ODc1NjkiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhnpjhn4nhn4ThnoTigIvhnpjhnrvhnpMiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Imxhc3RfbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjMwNjk5OTI4MDgxNjQzMTgyNjgiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhnpDhn5LhnoThn4PigIvhnoXhnrvhnoThnoDhn5Lhnprhn4ThnpkiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJsYXN0X21vbnRoIiBtc2dpZD0iMzk1OTM0NjczOTk3OTA1NTQzMiI+IuGegeGfguKAi+GemOGeu+GekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9sZGVyIiBtc2dpZD0iNTIxMTk3NTAyMjgxNTU1NDg0MCI+IuGeheGetuGen+Gfi+KAi+Geh+GetuGehCI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX2RheXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODYxMzU4NTM0Mzk4MTE1ODIwIj4i4Z6Y4Z+S4Z6f4Z634Z6b4Z6Y4Z634Z6JIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyNDc5NTg2NDY2MTUzMzE0NjMzIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Z6Q4Z+S4Z6E4Z+D4oCL4Z6Y4Z674Z6TIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fc2Vjb25kcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjI3Mjk3NDU1NjA5NTQ5MDUxMDIiPiLhnoDhn5LhnpPhnrvhnoTigIvhnprhnpnhn4jigIvhnpbhn4Hhnpsg4Z+hIOGenOGet+Gek+GetuGekeGeuCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTI0MTkyNjExNjQ0Mzk3NDY4NyI+IuGegOGfkuGek+Geu+GehOKAi+GemuGemeGfiOKAi+GeluGfgeGemyA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhnpzhnrfhnpPhnrbhnpHhnrgiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImluX251bV9taW51dGVzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODc5MzA5NTI1MTMyNTIwMDM5NSI+IuGegOGfkuGek+Geu+GehOKAi+GemuGemeGfiOGeluGfgeGemyDhn6Eg4Z6T4Z624Z6R4Z64IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzMzMwNzEzOTM2Mzk5NDQ4NzQ5Ij4i4Z6a4Z6Z4Z+I4Z6W4Z+B4Z6bIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOGek+GetuGekeGeuCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iaW5fbnVtX2hvdXJzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNzE2NDM1MzM0MjQ3Nzc2OTk5OSI+IuGemuGemeGfiOGeluGfgeGemyDhn6Eg4Z6Y4Z+J4Z+E4Z6EIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDcyOTA2NzczNTM3MjczODkiPiLhnprhnpnhn4jhnpbhn4HhnpsgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Z6Y4Z+J4Z+E4Z6EIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fZGF5cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU0MTMwODg3NDMwMDk4Mzk1MTgiPiLhnpDhn5LhnoThn4Phnp/hn5LhnqLhn4LhnoAiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjUxMDk0NDkzNzUxMDA5NTMyNDciPiLhnprhnpnhn4jhnpbhn4HhnpsgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Z6Q4Z+S4Z6E4Z+DIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX3NlY29uZHNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMTg0OTAzNjg0MDIwMDA2OTExOCI+IuGfoSDhnpzhnrfhnpPhnrbhnpHhnrjigIvhnpjhnrvhnpMiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM2OTkxNjkzNjY2NTA5MzA0MTUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhnpzhnrfhnpPhnrbhnpHhnrjigIvhnpjhnrvhnpMiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1fbWludXRlc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2MzYxNDkwMTQ3MTEzODcxNTQ1Ij4i4Z+hIOGek+GetuGekeGeuOKAi+GemOGeu+GekyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODUxMTY0OTY4NTk3MTUwNzEwIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Z6T4Z624Z6R4Z644oCL4oCL4Z6Y4Z674Z6TIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX2hvdXJzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ3OTYyMTIwMzk3MjQ3MjIxMTYiPiLhn6Eg4Z6Y4Z+J4Z+E4Z6E4oCL4Z6Y4Z674Z6TIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2ODg5OTcwNzQ1NzQ4NTM4OTAxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Z6Y4Z+J4Z+E4Z6E4oCL4Z6Y4Z674Z6TIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX2RheXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODQ2MzE2MTcxMTQ5MjY4MDMwOSI+IuGemOGfkuGen+Get+Gem+GemOGet+GeiSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzQ1MzM0MjYzOTYxNjQ4MTE5MSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOGekOGfkuGehOGfg+KAi+KAi+GemOGeu+GekyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9zZWNvbmRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg0MjIyNTM3MDc5NTA2NjI5OSI+IuGegOGfkuGek+Geu+GehOKAi+GeluGfgeGem+KAiyAxIOGenOGet+Gek+GetuGekeGeuCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ5NTg4MDEwODgyNTgwNTEwOCI+IuGegOGfkuGek+Geu+GehOKAi+GeluGfgeGemyA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhnpzhnrfhnpPhnrbhnpHhnrgiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU2Mjc4NjE0OTkyODI4NDg3OCI+IuGegOGfkuGek+Geu+GehOKAi+GeluGfgeGemyAxIOGek+GetuGekeGeuCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDIxNjExMzI5MjcwNjU2ODcyNiI+IuGek+GfheKAi+GemuGemeGfiOGeluGfgeGemyA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhnpPhnrbhnpHhnrgiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1faG91cnMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjc0NzA4MTE4MTI0MDQ1MjQ2Ij4i4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6a4Z6Z4Z+I4oCL4Z6W4Z+B4Z6bIOGfoSDhnpjhn4nhn4ThnoQiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM3MDUzNzM3NjY3OTgwMTM0MDYiPiLhnoDhn5LhnpPhnrvhnoTigIvhnprhnpnhn4jigIvhnpbhn4HhnpsgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Z6Y4Z+J4Z+E4Z6EIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfaW5fbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIyMTc4NTc2MjU0Mzg1NzM5ODU1Ij4i4Z6Q4Z+S4Z6E4Z+D4Z6f4Z+S4Z6i4Z+C4Z6AIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyOTczMDYyOTY4MDM4MzU1OTkxIj4i4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6a4Z6Z4Z+I4oCL4Z6W4Z+B4Z6bIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOGekOGfkuGehOGfgyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl9kYXRlIiBtc2dpZD0iOTA5Mzk0OTc1Nzc1NzQ0NTExNyI+IuGek+GfhSA8eGxpZmY6ZyBpZD0iREFURSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlcG9zaXRpb25fZm9yX3RpbWUiIG1zZ2lkPSI1NTA2ODMxMjQ0MjYzMDgzNzkzIj4i4Z6T4Z+F4oCL4Z6Y4Z+J4Z+E4Z6EIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVwb3NpdGlvbl9mb3JfeWVhciIgbXNnaWQ9IjUwNDAzOTU2NDA3MTE4NjcxNzciPiLhnoDhn5LhnpPhnrvhnoTigIvhnobhn5LhnpPhnrbhn4YgPHhsaWZmOmcgaWQ9IllFQVIiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheSIgbXNnaWQ9IjgxNDQxOTU3NzYwNTgxMTk0MjQiPiLhnpDhn5LhnoThn4MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlzIiBtc2dpZD0iNDc3NDU0NzY2MTAyMTM0NDYwMiI+IuKAi+GekOGfkuGehOGfgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXIiIG1zZ2lkPSIyMTI2NzcxOTE2NDI2MTg5NDgxIj4i4Z6Y4Z+J4Z+E4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cnMiIG1zZ2lkPSI4OTQ0MjQwMDUyNjY4NTI5OTMiPiLhnpjhn4nhn4ThnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGUiIG1zZ2lkPSI5MTQ4ODc4NjU3NzAzNzY5ODY4Ij4i4Z6T4Z624Z6R4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlcyIgbXNnaWQ9IjU2NDYwMDEwMDU4MjcwMzQ1MDkiPiLhnpPhnrbhnpHhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWNvbmQiIG1zZ2lkPSIzMTg0MjM1ODA4MDIxNDc4Ij4i4Z6c4Z634Z6T4Z624Z6R4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vjb25kcyIgbXNnaWQ9IjMxNjE1MTUzNDcyMTY1ODkyMzUiPiLhnpzhnrfhnpPhnrbhnpHhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWVrIiBtc2dpZD0iNTYxNzk2MTUzNzE3MzA2MTU4MyI+IuGen+GelOGfkuGeiuGetuGeoOGfjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlZWtzIiBtc2dpZD0iNjUwOTYyMzgzNDU4Mzk0NDUxOCI+IuGen+GelOGfkuGeiuGetuGeoOGfjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXIiIG1zZ2lkPSI0MDAxMTE4MjIxMDEzODkyMDc2Ij4i4Z6G4Z+S4Z6T4Z624Z+GIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcnMiIG1zZ2lkPSI2ODgxNTc3NzE3OTkzMjEzNTIyIj4i4Z6G4Z+S4Z6T4Z624Z+GIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJkdXJhdGlvbl9zZWNvbmRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjk2MjAxNTUyODM3Mjk2OTQ4MSI+IjEg4Z6c4Z634Z6T4Z624Z6R4Z64IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxODg2MTA3NzY2NTc3MTY2Nzg2Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Z6c4Z634Z6T4Z624Z6R4Z64IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJkdXJhdGlvbl9taW51dGVzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDkxNTQxNDAwMjU0NjA4NTYxNyI+IuGfoSDhnpPhnrbhnpHhnrgiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjMxNjUxODcxNjkyMjQ5MDg3NzUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhnpPhnrbhnpHhnrgiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImR1cmF0aW9uX2hvdXJzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODkxNzQ2NzQ5MTI0ODgwOTk3MiI+IuGfoSDhnpjhn4nhn4ThnoQiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM4NjM5NjI4NTQyNDY3NzM5MzAiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDhnpjhn4nhn4ThnoQiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfdGl0bGUiIG1zZ2lkPSIzNTM0NTA5MTM1NDM4MzUzMDc3Ij4i4Z6U4Z6J4Z+S4Z6g4Z624oCL4Z6c4Z644Z6K4Z+B4Z6i4Z68Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RleHRfaW52YWxpZF9wcm9ncmVzc2l2ZV9wbGF5YmFjayIgbXNnaWQ9IjMxODY2NzAzMzU5Mzg2NzA0NDQiPiLhnpzhnrjhnorhn4HhnqLhnrzigIvhnpPhn4Hhn4figIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvigIvhnoXhnprhnpPhn5Lhno/igIvhnoXhnrzhnpvigIvhnqfhnpThnoDhnprhno7hn43igIvhnpPhn4Hhn4fhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfdGV4dF91bmtub3duIiBtc2dpZD0iMzQ1MDQzOTE1NTE4NzgxMDA4NSI+IuGemOGet+Gek+KAi+GeouGetuGeheKAi+GeheGetuGegOGfi+KAi+GenOGeuOGeiuGfgeGeouGevOKAi+Gek+GfgeGfh+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlZpZGVvVmlld19lcnJvcl9idXR0b24iIG1zZ2lkPSIyODIyMjM4MjE1MTAwNjc5NTkyIj4i4Z6Z4Z6b4Z+L4oCL4Z6W4Z+S4Z6a4Z6YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpdmVfdGltZSIgbXNnaWQ9IjE4MTg1NTcxNzc4Mjk0MTE0MTciPiI8eGxpZmY6ZyBpZD0iREFURSI+JTEkczwveGxpZmY6Zz4sIDx4bGlmZjpnIGlkPSJUSU1FIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vb24iIG1zZ2lkPSI3MjQ1MzUzNTI4ODE4NTg3OTA4Ij4i4Z6a4Z6f4Z+A4Z6bIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iTm9vbiIgbXNnaWQ9IjMzNDIxMjc3NDUyMzAwMTMxMjciPiLhnprhnp/hn4DhnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaWRuaWdodCIgbXNnaWQ9IjcxNjYyNTk1MDg4NTA0NTc1OTUiPiLhnoDhno7hn5LhnorhnrbhnpvhnqLhnpLhn5Lhnprhnrbhno/hn5LhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJNaWRuaWdodCIgbXNnaWQ9IjU2MzA4MDY5MDY4OTc4OTIyMDEiPiLhnoDhno7hn5LhnorhnrbhnpvigIvhnqLhnpLhn5Lhnprhnrbhno/hn5LhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGFwc2VkX3RpbWVfc2hvcnRfZm9ybWF0X21tX3NzIiBtc2dpZD0iNDQzMTU1NTk0MzgyODcxMTQ3MyI+Ijx4bGlmZjpnIGlkPSJNSU5VVEVTIj4lMSQwMmQ8L3hsaWZmOmc+Ojx4bGlmZjpnIGlkPSJTRUNPTkRTIj4lMiQwMmQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxhcHNlZF90aW1lX3Nob3J0X2Zvcm1hdF9oX21tX3NzIiBtc2dpZD0iMTg0NjA3MTk5NzYxNjY1NDEyNCI+Ijx4bGlmZjpnIGlkPSJIT1VSUyI+JTEkZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9Ik1JTlVURVMiPiUyJDAyZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9IlNFQ09ORFMiPiUzJDAyZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RBbGwiIG1zZ2lkPSI2ODc2NTE4OTI1ODQ0MTI5MzMxIj4i4Z6H4Z+S4Z6a4Z6+4Z6f4oCL4Z6R4Z624Z+G4Z6E4Z6i4Z6f4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3V0IiBtc2dpZD0iMzA5MjU2OTQwODQzODYyNjI2MSI+IuGegOGetuGej+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvcHkiIG1zZ2lkPSIyNjgxOTQ2MjI5NTMzNTExOTg3Ij4i4Z6F4Z6Y4Z+S4Z6b4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzdGUiIG1zZ2lkPSI1NjI5ODgwODM2ODA1MDM2NDMzIj4i4Z6U4Z634Z6R4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVwbGFjZSIgbXNnaWQ9IjU3ODE2ODYwNTkwNjMxNDg5MzAiPiLhnofhn4bhnpPhnr3hnp8uLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGUiIG1zZ2lkPSI2MDk4Njg0ODQ0MDIxNjk3Nzg5Ij4i4Z6b4Z674Z6UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29weVVybCIgbXNnaWQ9IjI1MzgyMTE1Nzk1OTYwNjc0MDIiPiLhnoXhnpjhn5LhnpvhnoQgVVJMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0VGV4dE1vZGUiIG1zZ2lkPSIxMDE4NjkxODE1MTQzMTY1MzI2Ij4i4Z6H4Z+S4Z6a4Z6+4Z6f4oCL4Z6i4Z6P4Z+S4Z6Q4Z6U4Z6RIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV4dFNlbGVjdGlvbkNBQlRpdGxlIiBtc2dpZD0iNTIzNjg1MDM5NDM3MDgyMDM1NyI+IuGegOGetuGemuKAi+Geh+GfkuGemuGevuGen+KAi+GeouGej+GfkuGekOGelOGekSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZFRvRGljdGlvbmFyeSIgbXNnaWQ9IjQzNTIxNjE1MzQ1MTAwNTc4NzQiPiLhnpThnpPhn5LhnpDhn4LhnpjigIvhnpHhn4XigIvhnpzhnoXhnpPhnrbhnpPhnrvhnoDhn5LhnprhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVUZXh0IiBtc2dpZD0iNjk3OTY2ODQyODQ1ODE5OTAzNCI+IuGem+Geu+GelCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImlucHV0TWV0aG9kIiBtc2dpZD0iMTY1MzYzMDA2MjMwNDU2Nzg3OSI+IuGenOGet+GekuGeuOGen+GetuGen+GfkuGej+GfkuGemuKAi+GelOGeieGfkuGeheGevOGemyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVkaXRUZXh0TWVudVRpdGxlIiBtc2dpZD0iNDkwOTEzNTU2NDk0MTgxNTQ5NCI+IuGen+GegOGemOGfkuGemOGel+GetuGeluKAi+GeouGej+GfkuGekOGelOGekSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxvd19pbnRlcm5hbF9zdG9yYWdlX3ZpZXdfdGl0bGUiIG1zZ2lkPSI1NTc2MjcyNDk2MzY1Njg0ODM0Ij4i4Z6i4Z6f4Z+L4oCL4Z6R4Z+G4Z6g4Z+G4oCL4Z6V4Z+S4Z6R4Z674Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X2ludGVybmFsX3N0b3JhZ2Vfdmlld190ZXh0IiBtc2dpZD0iNjY0MDUwNTgxNzYxNzQxNDM3MSI+IuGemOGeu+GegeGehOGetuGemuKAi+GelOGfkuGemuGeluGfkOGek+GfkuGekuKAi+GemOGeveGemeKAi+GeheGfhuGek+GeveGek+KAi+GeouGetuGeheKAi+GemOGet+Gek+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9ydW5uaW5nX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9Ijg3MTgzMzUxMjEwNjA3ODc5MTQiPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+IOGegOGfhuGeluGeu+GehOKAi+GeiuGfhuGejuGevuGemuGegOGetuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9ydW5uaW5nX25vdGlmaWNhdGlvbl90ZXh0IiBtc2dpZD0iNDY1MzU4Njk0Nzc0NzMzMDA1OCI+IuGelOGfieGfh+KAiyDhnorhnr7hnpjhn5LhnpThnrjigIvhnpjhnr7hnpvigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnpThnpPhn5LhnpDhn4Lhnpgg4Z6s4oCL4Z6U4Z6J4Z+S4Z6I4Z6U4Z+L4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2siIG1zZ2lkPSI1OTcwMDYwNDMwNTYyNTI0OTEwIj4i4Z6Z4Z6b4Z+L4oCL4Z6W4Z+S4Z6a4Z6YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNjQ0MjU2MDU3MTI1OTkzNTEzMCI+IuGelOGfhOGfh+KAi+GelOGehOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllcyIgbXNnaWQ9IjUzNjI5ODIzMDMzMzc5NjkzMTIiPiLhnpnhnpvhn4vigIvhnpbhn5LhnprhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJubyIgbXNnaWQ9IjUxNDE1MzEwNDQ5MzU1NDE0OTciPiLhnpThn4Thn4figIvhnpThnoThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaWFsb2dfYWxlcnRfdGl0bGUiIG1zZ2lkPSIyMDQ5NjU4NzA4NjA5MDQzMTAzIj4i4Z6U4Z+S4Z6a4Z6Z4Z+Q4Z6P4Z+S4Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9hZGluZyIgbXNnaWQ9Ijc5MzM2ODEyNjAyOTYwMjExODAiPiLhnoDhn4bhnpbhnrvhnoTigIvhnpXhn5LhnpHhnrvhnoAuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBpdGFsX29uIiBtc2dpZD0iMTU0NDY4Mjc1NTUxNDQ5NDI5OCI+IuGelOGevuGegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGl0YWxfb2ZmIiBtc2dpZD0iNjgxNTg3MDM4Njk3MjgwNTgzMiI+IuGelOGet+GekSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndoaWNoQXBwbGljYXRpb24iIG1zZ2lkPSI0NTMzMTg1OTQ3MDY0NzczMzg2Ij4i4Z6U4Z6J4Z+S4Z6F4Z6U4Z+L4oCL4Z6f4Z6A4Z6Y4Z+S4Z6Y4Z6X4Z624Z6W4oCL4Z6K4Z+E4Z6Z4oCL4Z6U4Z+S4Z6a4Z6+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzVXNlIiBtc2dpZD0iNDU4MzAxODM2ODAwMDYxMDQzOCI+IuGelOGfkuGemuGevuKAi+Gej+GetuGemOKAi+Gem+GfhuGek+GetuGfhuGeiuGevuGemOKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+Gen+GegOGemOGfkuGemOGel+GetuGeluKAi+Gek+GfgeGfh+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNsZWFyRGVmYXVsdEhpbnRNc2ciIG1zZ2lkPSIzMjUyNTg0Njg5NTEyMDc3MjU3Ij4i4Z6f4Z6Y4Z+S4Z6i4Z624Z6P4oCL4Z6b4Z+G4Z6T4Z624Z+G4Z6K4Z6+4Z6Y4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6A4Z624Z6a4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6SICZndDsg4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64ICZndDsg4Z6R4Z624Z6J4oCL4Z6Z4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlQWN0aXZpdHkiIG1zZ2lkPSI3NDg2ODc2MTQ3NzUxODAzMzMzIj4i4Z6H4Z+S4Z6a4Z6+4Z6f4oCL4Z6f4Z6A4Z6Y4Z+S4Z6Y4Z6X4Z624Z6WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlVXNiQWN0aXZpdHkiIG1zZ2lkPSI2ODk0NzQ4NDE2MDczNTgzNTA5Ij4i4Z6H4Z+S4Z6a4Z6+4Z6f4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9BcHBsaWNhdGlvbnMiIG1zZ2lkPSIyOTkxODE0MjczOTM2NTA0Njg5Ij4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6i4Z624Z6F4oCL4Z6i4Z6T4Z674Z6c4Z6P4Z+S4Z6P4oCL4Z6f4Z6A4Z6Y4Z+S4Z6Y4Z6X4Z624Z6W4oCL4Z6T4Z+B4Z+H4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWVycl90aXRsZSIgbXNnaWQ9IjE5MDU4MDA1NjAzMTcxMzc3NTIiPjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWVycl9hcHBsaWNhdGlvbiIgbXNnaWQ9IjkzMjYyODQ4ODAxMzA5Mjc3NiI+IuGeiuGfhOGemeKAi+GelOGemuGetuGeh+GfkOGemSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IOGelOGetuGek+KAi+GelOGeieGfkuGeiOGelOGfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFlcnJfcHJvY2VzcyIgbXNnaWQ9IjQ1MDcwNTg5OTcwMzU2OTc1NzkiPiLhnofhnrbigIvhnqLhnoDhnrvhnp/hnpsg4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6aIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDhnpThnrbhnpPigIvhnpThnonhn5LhnojhnpThn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfdGl0bGUiIG1zZ2lkPSI0MzUxOTQ4NDgxNDU5MTM1NzA5Ij48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hY3Rpdml0eV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjE5MDQ0NzcxODkwNTcxOTkwNjYiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUyJHM8L3hsaWZmOmc+IOGemOGet+Gek+KAi+GehuGfkuGem+GevuGemeGej+GelOGflFxuXG7hno/hnr7igIvhnqLhn5LhnpPhnoDigIvhnoXhnoThn4vigIvhnpThnrfhnpHigIvhnpzhnrbigIvhnqw/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX2FjdGl2aXR5X3Byb2Nlc3MiIG1zZ2lkPSI1Nzc2MjA5ODgzMjk5MDg5NzY3Ij4i4Z6f4Z6A4Z6Y4Z+S4Z6Y4Z6X4Z624Z6WIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g4Z6Y4Z634Z6T4oCL4Z6G4Z+S4Z6b4Z6+4Z6Z4Z6P4Z6U4Z+UXG5cbuGej+GevuKAi+GeouGfkuGek+GegOKAi+GeheGehOGfi+KAi+GelOGet+GekeKAi+GenOGetj8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfYXBwbGljYXRpb25fcHJvY2VzcyIgbXNnaWQ9Ijg5NDE3NTc2MDczNDA0ODEwNTciPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IOGemOGet+Gek+KAi+GehuGfkuGem+GevuGemeGej+GelOGflCDhno/hnr7igIvhnqLhn5LhnpPhnoDigIvhnoXhnoThn4vigIvhnpThnrfhnpHigIvhnpzhnrY/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX3Byb2Nlc3MiIG1zZ2lkPSI2NTEzMjA5ODc0ODgwNTE3MTI1Ij4i4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6aIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDhnpjhnrfhnpPigIvhnobhn5Lhnpvhnr7hnpnhno/hnpThn5QgXG5cbuGej+GevuKAi+GeouGfkuGek+GegOKAi+GeheGehOGfi+KAi+GelOGet+GekeKAi+GenOGetuKAi+GerD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmb3JjZV9jbG9zZSIgbXNnaWQ9IjgzNDYwNzIwOTQ1MjEyNjU2MDUiPiLhnpnhnpvhn4vigIvhnpbhn5LhnprhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXBvcnQiIG1zZ2lkPSI0MDYwMjE4MjYwOTg0Nzk1NzA2Ij4i4Z6a4Z6U4Z624Z6Z4Z6A4Z624Z6a4Z6O4Z+NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FpdCIgbXNnaWQ9IjcxNDcxMTgyMTcyMjYzMTc3MzIiPiLhnprhnoThn4vhnoXhnrbhn4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWJwYWdlX3VucmVzcG9uc2l2ZSIgbXNnaWQ9IjMyNzI3NTgzNTExMzgxMjI1MDMiPiLhnpHhn4bhnpbhn5DhnprigIvhnoDhn5LhnpvhnrbhnpnigIvhnofhnrbigIvhnpjhnrfhnpPigIvhnobhn5Lhnpvhnr7hnpnhno/hnpThn5Rcblxu4Z6P4Z6+4oCL4Z6i4Z+S4Z6T4Z6A4oCL4oCL4Z6F4Z6E4Z+L4oCL4Z6U4Z634Z6R4oCL4Z6c4Z62PyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX3RpdGxlIiBtc2dpZD0iMTU0Nzk5Nzc4MDUwNjcxMzU4MSI+IuGelOGetuGek+KAi+GelOGfkuGeiuGevOGemuKAi+GekeGet+Gen+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX3JlcGxhY2UiIG1zZ2lkPSI2MjAyNDk4OTQ5OTcwMjgxNDEyIj4iPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiDhnqXhnqHhnrzhnpzigIvhnoDhn4bhnpbhnrvhnoTigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYXVuY2hfd2FybmluZ19vcmlnaW5hbCIgbXNnaWQ9IjE4ODEwMjAyMzAyMTY2ODY4MyI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4g4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6W4Z644oCL4Z6K4Z+G4Z6U4Z684Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX3NjYWxlIiBtc2dpZD0iMzIwMjk1NTY2NzY3NTk0NDQ5OSI+IuGemOGetuGej+GfkuGemuGeiuGfkuGei+GetuGekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9zaG93IiBtc2dpZD0iNDAxMzg3ODg3NjQ4NjY1NTg5MiI+IuGelOGehOGfkuGeoOGetuGeieKAi+Geh+GetuKAi+Gek+Get+GeheGfkuGehSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9oaW50IiBtc2dpZD0iMTA2NDUyNDA4NDU0MzMwNDQ1OSI+IuGelOGevuGegOKAi+GenOGetuKAi+GeoeGevuGehOGenOGet+GeieKAi+GegOGfkuGek+Geu+GehOKAi+GegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GelOGfkuGemuGeluGfkOGek+GfkuGekiAmZ3Q7IOGegOGemOGfkuGemOGenOGet+GekuGeuCAmZ3Q7IOGekeGetuGeieKAi+GemeGegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtdl9hcHBsaWNhdGlvbiIgbXNnaWQ9IjMzMDcyMDkxOTIxNTU0NDI4MjkiPiLhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrggPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiAo4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6aIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMiRzPC94bGlmZjpnPikg4Z6U4Z624Z6T4oCL4Z6U4Z+G4Z6W4Z624Z6T4oCL4Z6C4Z+E4Z6b4Z6T4Z6Z4Z+E4Z6U4Z624Z6Z4oCL4Z6a4Z6U4Z+A4Z6U4oCL4Z6P4Z654Z6E4Z6a4Z+J4Z654Z6E4oCL4Z6i4Z6T4Z674Z6c4Z6P4Z+S4Z6P4oCL4Z6K4Z+E4Z6Z4oCL4Z6B4Z+S4Z6b4Z694Z6T4oCL4oCL4Z6v4Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic212X3Byb2Nlc3MiIG1zZ2lkPSI1MTIwMzk3MDEyMDQ3NDYyNDQ2Ij4i4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6aIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDhnpThnrbhnpPigIvhnpThn4bhnpbhnrbhnpPigIvhnoLhn4ThnpvhnpPhnpnhn4ThnpThnrbhnpnigIvigIvhnprhnpThn4DhnpTigIvigIvhno/hnrnhnoTigIvhnprhnrnhnoTigIvigIvigIvhnpThnoThn5LhnoHhn4bigIvhnorhn4ThnpnigIvhnoHhn5Lhnpvhnr3hnpPigIvhnq/hnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ190aXRsZSIgbXNnaWQ9IjE1ODQxOTIyODU0NDE0MDU3NDYiPiJBbmRyb2lkIOGegOGfhuGeluGeu+GehOKAi+GekuGfkuGenOGevuKAi+GelOGeheGfkuGeheGeu+GelOGfkuGelOGek+GfkuGek+Gel+GetuGeli4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX2FwayIgbXNnaWQ9Ijc5MDQwNDI2ODIxMTE1MjYxNjkiPiLhnpLhn5Lhnpzhnr7igIvhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThn5Lhnprhnp/hnr7hnprigIvhnqHhnr7hnoQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRkPC94bGlmZjpnPiDhnpPhn4MgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRkPC94bGlmZjpnPiDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19zdGFydGluZ19hcHBzIiBtc2dpZD0iNDUxNDY0NTE2MzQ2OTI2NzEzIj4i4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfY29tcGxldGUiIG1zZ2lkPSIxNDA1OTU0NzU0MTEyOTk5MjI5Ij4i4Z6U4Z6J4Z+S4Z6F4Z6U4Z+L4oCL4Z6A4Z624Z6a4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X25vdGlmaWNhdGlvbiIgbXNnaWQ9IjkwODcwNjM5ODU3NzY2MjYxNjYiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lMSRzPC94bGlmZjpnPiDhnoDhn4bhnpbhnrvhnoTigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfbm90aWZpY2F0aW9uX2RldGFpbCIgbXNnaWQ9IjE3MjE2ODE3NDE2MTc4OTg4NjUiPiLhnpThn4nhn4figIsg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z+S4Z6K4Z684Z6a4oCL4oCL4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X3N3aXRjaGVyX3RpdGxlIiBtc2dpZD0iNzE1MzE2NzA4NTQwMzI5ODE2OSI+IuGelOGfkuGeiuGevOGemuKAi+GegOGemOGfkuGemOGenOGet+GekuGeuD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfc3dpdGNoZXJfdGV4dCIgbXNnaWQ9IjcwMjI2MzE5MjQ1MzQ0MDY0MDMiPiLhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5Lhnp/hn4HhnoTigIvhnoDhn4bhnpbhnrvhnoTigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnprhnr3hnoXigIvhnqDhnr7hnpnigIsg4Z6K4Z+C4Z6b4oCL4Z6P4Z6Y4Z+S4Z6a4Z684Z6c4oCL4Z6y4Z+S4Z6Z4oCL4Z6U4Z6J4Z+S4Z6I4Z6U4Z+L4oCL4Z6Y4Z674Z6T4oCL4Z6W4Z+B4Z6b4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6i4Z624Z6F4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6Q4Z+S4Z6Y4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkX2FwcF9hY3Rpb24iIG1zZ2lkPSI0OTMxMjkxNzIyMzg1NjYyODIiPiLhno/hn5LhnprhnqHhnpThn4vigIvhnpHhn4UgPHhsaWZmOmcgaWQ9Ik9MRF9BUFAiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkX2FwcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIwODIwOTQyNzU1ODAzNTgwNDkiPiLhnoDhnrvhn4bigIvhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpDhn5Lhnpjhnrjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXdfYXBwX2FjdGlvbiIgbXNnaWQ9IjU0NzI3NTY5MjY5NDU0NDA3MDYiPiLhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpggPHhsaWZmOmcgaWQ9Ik9MRF9BUFAiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmV3X2FwcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjE5MzIxNDM1OTgzNzE1MzczNDAiPiLhnpThnonhn5LhnojhnpThn4vigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoXhnrbhnp/hn4vigIvhnorhn4ThnpnigIvhnpjhnrfhnpPigIvhnprhnoDhn5Lhnp/hnrbhnpHhnrvhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZW5kVGV4dCIgbXNnaWQ9IjUyMDk4NzQ1NzE5NTk0NjkxNDIiPiLhnofhn5Lhnprhnr7hnp/igIvhnp/hnoDhnpjhn5LhnpjhnpfhnrbhnpbigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnqLhno/hn5LhnpDhnpThnpEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfcmluZ3RvbmUiIG1zZ2lkPSI2ODg1NDIxNDA2ODQ1NzM0NjUwIj4i4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4Z6f4Z+G4Z6h4Z+B4Z6E4oCL4Z6a4Z+E4Z6R4Z+NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljIiBtc2dpZD0iNTQyMTY1MTE1NzEzODYyODE3MSI+IuGegOGemOGfkuGemuGet+Gej+KAi+Gen+GfhuGeoeGfgeGehOKAi+GemOGfgeGejOGfgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9tdXNpY19oaW50X3BsYXlpbmdfdGhyb3VnaF9ibHVldG9vdGgiIG1zZ2lkPSI5MTY1OTg0Mzc5Mzk0NjAxNTMzIj4i4Z6F4Z624Z6A4Z+L4oCL4Z6P4Z624Z6Y4oCL4Z6U4Z+K4Z+S4Z6b4Z684Z6S4Z684Z6fIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljX2hpbnRfc2lsZW50X3Jpbmd0b25lX3NlbGVjdGVkIiBtc2dpZD0iODMxMDczOTk2MDk3MzE1NjI3MiI+IuGegOGfhuGejuGej+Gfi+KAi+Gen+GfhuGeoeGfgeGehOKAi+GemuGfhOGekeGfjeKAi+Gen+GfkuGehOGetuGej+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9jYWxsIiBtc2dpZD0iMzk0MTY4MDA0MTI4Mjc4ODcxMSI+IuGegOGemOGfkuGemuGet+Gej+KAi+Gen+GfhuGeoeGfgeGehOKAi+GeoOGfheKAi+GeheGevOGemyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9ibHVldG9vdGhfY2FsbCIgbXNnaWQ9IjIwMDI4OTE5MjYzNTExNTE1MzQiPiLhnoDhnpjhn5Lhnprhnrfhno/igIvhnp/hn4bhnqHhn4HhnoTigIvhnqDhn4XigIvhnoXhnrzhnpvigIvhno/hnrbhnpjigIvhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfYWxhcm0iIG1zZ2lkPSIxOTg1MTkxNjE2MDQyNjg5MTAwIj4i4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4Z6f4Z+G4Z6h4Z+B4Z6E4oCL4Z6a4Z+E4Z6R4Z+NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjI0MjIyNjU2NTY3NDQyNzY3MTUiPiLhnoDhnpjhn5Lhnprhnrfhno/igIvhnp/hn4bhnqHhn4HhnoTigIvhnoDhnrbhnprigIvhnofhnrzhnpPigIvhnorhn4bhno7hnrnhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfdW5rbm93biIgbXNnaWQ9IjE0MDAyMTk2Njk3NzA0NDU5MDIiPiLhnoDhnpjhn5Lhnprhnrfhno/igIvhnp/hn4bhnqHhn4HhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9ibHVldG9vdGgiIG1zZ2lkPSI2NTM4ODk0MTc3MjU1OTY0MzQwIj4i4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4Z6f4Z+G4Z6h4Z+B4Z6E4oCL4Z6U4Z+K4Z+S4Z6b4Z684Z6S4Z684Z6fIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2ljb25fZGVzY3JpcHRpb25fcmluZ2VyIiBtc2dpZD0iMzMyNjAwMzg0NzAwNjE2MjQ5NiI+IuGegOGemOGfkuGemuGet+Gej+KAi+Gen+GfhuGeoeGfgeGehOKAi+GemuGfhOGekeGfjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX2luY2FsbCIgbXNnaWQ9Ijg4OTAwNzMyMTgxNTQ1NDMzOTciPiLhnoDhnpjhn5Lhnprhnrfhno/igIvhnp/hn4bhnqHhn4HhnoTigIvhnqDhn4UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9tZWRpYSIgbXNnaWQ9IjQyMTczMTE3MTk2NjUxOTQyMTUiPiLhnoDhnpjhn5Lhnprhnrfhno/igIvhnp/hn4bhnqHhn4HhnoTigIvhnpjhn4Hhnozhn4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9ub3RpZmljYXRpb24iIG1zZ2lkPSI3MDQ0OTg2NTQ2NDc3MjgyMjc0Ij4i4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4Z6f4Z+G4Z6h4Z+B4Z6E4oCL4Z6A4Z624Z6a4oCL4Z6H4Z684Z6T4oCL4Z6K4Z+G4Z6O4Z654Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfZGVmYXVsdCIgbXNnaWQ9IjM3ODk3NTg5ODAzNTc2OTY5MzYiPiLhnp/hn4bhnqHhn4HhnoTigIvhnprhn4ThnpHhn43igIvhnpvhn4bhnpPhnrbhn4bhnorhnr7hnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV9kZWZhdWx0X3dpdGhfYWN0dWFsIiBtc2dpZD0iODEyOTU2MzQ4MDg5NTk5MDM3MiI+IuGen+GfhuGeoeGfgeGehOKAi+GemuGfhOGekeGfjeKAi+Gem+GfhuGek+GetuGfhuGeiuGevuGemCAoPHhsaWZmOmcgaWQ9IkFDVFVBTF9SSU5HVE9ORSI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfc2lsZW50IiBtc2dpZD0iNzkzNzYzNDM5MjQwODk3NzA2MiI+IuGeguGfkuGemOGetuGekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX3BpY2tlcl90aXRsZSIgbXNnaWQ9IjM1MTUxNDM5MzkxNzUxMTkwOTQiPiLhnp/hn4bhnqHhn4HhnoTigIvhnprhn4ThnpHhn40iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV91bmtub3duIiBtc2dpZD0iNTQ3NzkxOTk4ODcwMTc4NDc4OCI+IuGen+GfhuGeoeGfgeGehOKAi+GemuGfhOGekeGfjeKAi+GemOGet+Gek+KAi+Gen+GfkuGeguGetuGem+GfiyI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0id2lmaV9hdmFpbGFibGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NjU0MTIzOTg3NDE4MTY4NjkzIj4i4Z6Y4Z624Z6T4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6ZIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0MTkyNDI0NDg5MTY4Mzk3Mzg2Ij4i4Z6Y4Z624Z6T4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6ZIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJ3aWZpX2F2YWlsYWJsZV9kZXRhaWxlZCI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjE2MzQxMDE0NTAzNDMyNzczNDUiPiLhnpThnr7hnoDigIvhnpThno7hn5LhnorhnrbhnonigIvhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpnigIvigIvhnorhn4LhnpvigIvhnpjhnrbhnpMiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc5MTU4OTUzMjM2NDQyOTI3NjgiPiLhnpjhnrbhnpPigIvhnpThno7hn5LhnorhnrbhnonigIvhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpnigIvhnpThnr7hnoAiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2F2YWlsYWJsZV9zaWduX2luIiBtc2dpZD0iNDAyOTQ4OTcxNjYwNTI1NTM4NiI+IuGeheGevOGem+KAi+GelOGejuGfkuGeiuGetuGeieKAi+GenOGfieGetuGemeGeoOGfkuGenOGetuGemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5ldHdvcmtfYXZhaWxhYmxlX3NpZ25faW4iIG1zZ2lkPSI4NDk1MTU1NTkzMzU4MDU0Njc2Ij4i4Z6F4Z684Z6b4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6JIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIG5ldHdvcmtfYXZhaWxhYmxlX3NpZ25faW5fZGV0YWlsZWQgKDgwMDAwODE5NDE0NDc5NzYxMTgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3dhdGNoZG9nX25ldHdvcmtfZGlzYWJsZWQiIG1zZ2lkPSI3OTA0MjE0MjMxNjUxNTQ2MzQ3Ij4i4Z6Y4Z634Z6T4oCL4oCL4Z6i4Z624Z6F4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkX2RldGFpbGVkIiBtc2dpZD0iNTU0ODc4MDc3NjQxODMzMjY3NSI+IiDhnpjhnrbhnpPigIvhnoDhnrbhnprigIvhno/hnpfhn5LhnofhnrbhnpThn4vigIvhnqLhn4rhnrjhnpPhnpLhnrrhno7hnrfhno/igIvhnpjhnrfhnpPigIvhnpvhn5LhnqLhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9kaWFsb2dfdGl0bGUiIG1zZ2lkPSI5NzYxMTc4MjY1OTMyNDUxNyI+IuGenOGfieGetuGemeGeoOGfkuGenOGetuGemeKAi+GeleGfkuGekeGetuGem+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX3R1cm5vbl9tZXNzYWdlIiBtc2dpZD0iMjkwOTI1MDk0MjI5OTYyNzI0NCI+IuGeheGetuGelOGfi+GeleGfkuGeiuGevuGemOKAi+GenOGfieGetuGemeGeoOGfkuGenOGetuGemeKAi+GeiuGfhOGemeKAi+GeleGfkuGekeGetuGem+Gfi+GflCDhnpzhnrbigIvhnpPhnrnhnoTigIvhnpThnrfhnpHigIvhnpzhn4nhnrbhnpnhnqDhn5Lhnpzhnrbhnpkg4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZmFpbGVkX21lc3NhZ2UiIG1zZ2lkPSIzNzYzNjY5Njc3OTM1NjIzMDg0Ij4i4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624oCL4Z6K4Z+E4Z6Z4oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW5hYmxlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMDY4MzIxODgxNjczNzM0ODg2Ij4i4Z6U4Z6+4Z6A4oCL4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6Z4oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW5hYmxlZF9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjE2Mzg5NDk5NTM5OTM4OTQzMzUiPiLhnpThn4nhn4figIsg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6A4Z+G4Z6O4Z6P4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMTY0NTI2NzI1OTI3MjgyOTU1OSI+IuGekeGekeGeveGemyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlY2xpbmUiIG1zZ2lkPSIyMTEyMjI1NDUxNzA2MTM3ODk0Ij4i4Z6U4Z6K4Z634Z6f4Z+B4Z6SIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfaW52aXRhdGlvbl9zZW50X3RpdGxlIiBtc2dpZD0iMTMxODk3NTE4NTExMjA3MDczNCI+IuGelOGetuKAi+Gek+KAi+GeleGfkuGeieGevuKAi+Gem+Get+GegeGet+Gej+KAi+GeouGeieGfkuGeh+GevuGeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ludml0YXRpb25fdG9fY29ubmVjdF90aXRsZSIgbXNnaWQ9IjQ5NTg4MDM5NDg2NTg1MzM2MzciPiLhnqLhnonhn5Lhnofhnr7hnonigIvhnrLhn5LhnpnigIvhnpfhn5LhnofhnrbhnpThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcm9tX21lc3NhZ2UiIG1zZ2lkPSI1NzAzODkxNzQ3MzE5NTE3NjkiPiLhnpbhnrjhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF90b19tZXNzYWdlIiBtc2dpZD0iMjQ4OTY4OTc0NTIyMDQ0MDk5Ij4i4Z6R4Z+F4Z+WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW50ZXJfcGluX21lc3NhZ2UiIG1zZ2lkPSI1OTIwOTI5NTUwMzY3ODI4OTcwIj4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6KIFBJTiDhnorhn4LhnpvigIvhnpHhnrbhnpjhnpHhnrbhnprhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9zaG93X3Bpbl9tZXNzYWdlIiBtc2dpZD0iODUzMDU2MzMyMzg4MDkyMTA5NCI+IuGegOGevOGeiiBQSU4g4Z+WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZnJlcXVlbmN5X2NvbmZsaWN0X21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgwMTI5ODEyNTc3NDIyMzI0NzUiPiLhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4figIvhnpPhnrnhnoTigIvhnpXhn5LhnorhnrbhnoXhn4vigIvhnofhnrbigIvhnpThno7hn5Lhnorhn4Thn4fhnqLhnrbhnp/hnpPhn5LhnpPigIvhnpbhnrjigIvhnpzhn4nhnrbhnpnhnqDhn5Lhnpzhnrbhnpkg4Z6B4Z6O4Z+I4oCL4Z6K4Z+C4Z6b4oCL4Z6c4Z624oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCLIDx4bGlmZjpnIGlkPSJERVZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcmVxdWVuY3lfY29uZmxpY3RfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczNjM5MDcyMTM3ODc0NjkxNTEiPiLhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnpPhnrnhnoTigIvigIvhnpXhn5LhnorhnrbhnoXhn4vigIvhnpbhnrjigIvhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpnigIvhnoHhno7hn4jigIvhnorhn4LhnpvigIvhnpzhnrbigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhno/hnpfhn5LhnofhnrbhnpThn4vigIvhnpHhn4UgPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9jaGFyYWN0ZXIiIG1zZ2lkPSIzMzY1NTUwMTIwNjE3NzAxNzQ1Ij4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6P4Z694Z6i4Z6A4Z+S4Z6f4Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfdGl0bGUiIG1zZ2lkPSI3Mjk2NjEyNzgxMTI4OTE3NzE5Ij4i4Z6V4Z+S4Z6J4Z6+4oCL4Z6f4Z624Z6aIFNNUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX21lc3NhZ2UiIG1zZ2lkPSIzODY3ODk5MTY5NjUxNDk2NDMzIj4iJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDsg4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6V4Z+S4Z6J4Z6+4oCL4Z6f4Z624Z6a4oCLIFNNUyDhnpjhnr3hnpnigIvhnoXhn4bhnpPhnr3hnpPigIvhnpLhn4bhn5Qg4Z6P4Z6+4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6F4Z6E4Z+L4oCL4Z6y4Z+S4Z6Z4oCL4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6T4Z+B4Z+H4oCL4Z6U4Z6T4Z+S4Z6P4oCL4Z6V4Z+S4Z6J4Z6+4oCL4Z6f4Z624Z6aPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX3llcyIgbXNnaWQ9IjM2NjM3MjU5OTM4NTU4MTY4MDciPiLhnqLhnpPhnrvhnonhn5Lhnonhnrbhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9ubyIgbXNnaWQ9IjYyNTQzODU2MTM5NTUzNDk4MiI+IuGelOGeiuGet+Gen+GfgeGekiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fbWVzc2FnZSIgbXNnaWQ9IjE2NDU0MzY0NjYyODUzMTA4NTUiPiImbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyDhnoXhnoThn4vigIvhnpXhn5Lhnonhnr7igIvhnp/hnrbhnprigIvhnpHhn4UgJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkRFU1RfQUREUkVTUyI+JTIkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSIzNDkyMDI1NzE5ODY4MDc4NDU3Ij48Zm9udCBmZ2NvbG9yPSIjZmZmZmIwNjAiPiLhnpPhn4Hhn4figIvhnqLhnrbhnoXigIvhnoDhnrbhno/hn4vigIvhnpvhnrvhnpkiPC9mb250PiIg4Z6b4Z6+4oCL4Z6C4Z6O4Z6T4Z644oCL4Z6F4Z6b4Z+Q4Z6P4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3ByZW1pdW1fc2hvcnRfY29kZV9kZXRhaWxzIiBtc2dpZD0iNTUyMzgyNjM0OTEwNTEyMzY4NyI+PGZvbnQgZmdjb2xvcj0iI2ZmZmZiMDYwIj4i4Z6c4Z624oCL4Z6T4Z654Z6E4oCL4Z6C4Z634Z6P4oCL4Z6Q4Z+S4Z6b4Z+D4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6Y4oCL4Z6b4Z6+4oCL4Z6C4Z6O4Z6T4Z644oCL4Z6F4Z6b4Z+Q4Z6P4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fYWxsb3ciIG1zZ2lkPSI0NDU4ODc4NjM3MTExMDIzNDEzIj4i4Z6V4Z+S4Z6J4Z6+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9kZW55IiBtc2dpZD0iMjkyNzM4OTg0MDIwOTE3MDcwNiI+IuGelOGfhOGfh+KAi+GelOGehOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX2Nob2ljZSIgbXNnaWQ9IjUyODk1Mzg1OTIyNzIyMTgxMzYiPiLhnoXhnoThnoXhnrbhn4bigIvhnofhnpjhn5Lhnprhnr7hnp/igIvhnprhnpThnp/hn4vigIvhnoHhn5Lhnonhnrvhn4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9yZW1lbWJlcl91bmRvX2luc3RydWN0aW9uIiBtc2dpZD0iNDk2MDk0NDEzMzA1MjI4NzQ4NCI+IuGeouGfkuGek+GegOKAi+GeouGetuGeheKAi+GelOGfkuGeiuGevOGemuKAi+GenOGetuKAi+GeluGfgeGem+KAi+GegOGfkuGemuGfhOGemeKAi+GegOGfkuGek+Geu+GehOKAi+GegOGetuGemuKAi+GegOGfhuGejuGej+GfiyAmZ3Q7IOGegOGemOGfkuGemOGenOGet+GekuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fYWx3YXlzX2FsbG93IiBtc2dpZD0iMzI0MTE4MTE1NDg2OTQ5MzM2OCI+IuGeouGek+Geu+GeieGfkuGeieGetuGej+KAi+Geh+GetuKAi+Gek+Get+GeheGfkuGehSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fbmV2ZXJfYWxsb3ciIG1zZ2lkPSI0NDY5OTI3NjU3NzQyNjk2NzMiPiLhnoDhnrvhn4bigIvhnqLhnpPhnrvhnonhn5Lhnonhnrbhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVtb3ZlZF90aXRsZSIgbXNnaWQ9IjYyMjc3MTIzMTkyMjMyMjYxODUiPiLhnpThnrbhnpPigIvhnorhnoDigIvhnp/hn4rhnrjhnpjigIvhnoDhnrbhno/igIvhnoXhn4HhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVtb3ZlZF9tZXNzYWdlIiBtc2dpZD0iMjMzMzE2NDU1OTk3MDk1ODY0NSI+IuGelOGejuGfkuGeiuGetuGeieKAi+GeheGem+GfkOGej+KAi+Gek+GeueGehOKAi+GelOGfkuGemuGevuKAi+Gem+GfguGehOKAi+GelOGetuGek+KAi+GemuGeoOGevOGej+KAi+GeiuGem+Gfi+KAi+GeouGfkuGek+GegOKAi+GeheGetuGelOGfi+GeleGfkuGeiuGevuGemOKAi+Geh+GetuKAi+GemOGeveGemeKAi+Gen+GfiuGeuOGemOKAi+GegOGetuGej+KAi+GeiuGfguGem+KAi+GelOGetuKAi+GelOGeieGfkuGeheGevOGem+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9kb25lX2J1dHRvbiIgbXNnaWQ9IjgyNzk0OTk4OTM2OTk2Mzc3NSI+IuGemuGeveGeheGemuGetuGem+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9hZGRlZF90aXRsZSIgbXNnaWQ9IjM3MTk2NzA1MTI4ODk2NzQ2OTMiPiLhnpThnrbhnpPigIvhnpThnpPhn5LhnpDhn4LhnpjigIvhnp/hn4rhnrjhnpjigIvhnoDhnrbhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fYWRkZWRfbWVzc2FnZSIgbXNnaWQ9IjY1OTk5NDUzMDExNDEwNTAyMTYiPiLhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnqfhnpThnoDhnprhno7hn43igIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnqHhnr7hnoTigIvhnpzhnrfhnokg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6F4Z6b4Z+Q4Z6P4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX3Jlc3RhcnRfYnV0dG9uIiBtc2dpZD0iNDcyMjQwNzg0MjgxNTIzMjM0NyI+IuGeheGetuGelOGfi+GeleGfkuGeiuGevuGemOKAi+GeoeGevuGehOGenOGet+GeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjgzNDkzNjI2MjMwNjg4MTkyOTUiPiLhnoDhn4bhno7hno/hn4vigIvhnpjhn4nhn4ThnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kaWFsb2dfdGl0bGUiIG1zZ2lkPSI1ODc5NDUwNjU5NDUzNzgyMjc4Ij4i4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6A4Z624Z6b4oCL4Z6U4Z6a4Z634Z6F4Z+S4Z6G4Z+B4Z6RIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV90aW1lX3NldCIgbXNnaWQ9IjU3NzcwNzU2MTQzMjEwODc3NTgiPiLhnoDhn4bhno7hno/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3RpbWVfZG9uZSIgbXNnaWQ9IjI1MDc2ODM3NTE3NTkzMDg4MjgiPiLhnprhnr3hnoXhnprhnrbhnpvhn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtc19uZXdfcGVybV9wcmVmaXgiIG1zZ2lkPSI4MjU3NzQwNzEwNzU0MzAxNDA3Ij48Zm9udCBzaXplPSIxMiIgZmdjb2xvcj0iI2ZmMzNiNWU1Ij4i4Z6Q4Z+S4Z6Y4Z644Z+WICI8L2ZvbnQ+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtc19kZXNjcmlwdGlvbl9hcHAiIG1zZ2lkPSI1MTM5ODM2MTQzMjkzMjk5NDE3Ij4i4Z6U4Z624Z6T4oCL4Z6V4Z+S4Z6K4Z6b4Z+L4oCL4Z6K4Z+E4Z6ZIDx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4g4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fcGVybWlzc2lvbnMiIG1zZ2lkPSI3MjgzMzU3NzI4MjE5MzM4MTEyIj4i4Z6Y4Z634Z6T4oCL4Z6R4Z624Z6Y4Z6R4Z624Z6a4oCL4Z6f4Z634Z6R4Z+S4Z6S4Z63Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybV9jb3N0c19tb25leSIgbXNnaWQ9IjQ5MDI0NzAzMjQxNDIxNTExMTYiPiLhnpzhnrbigIvhnqLhnrbhnoXigIvhnoDhnrbhno/hn4vigIvhnpvhnrvhnpnigIvigIvhnqLhn5LhnpPhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9hY3Rpdml0eV90aXRsZSIgbXNnaWQ9IjQ0NjUwNTUxNTcyMDk2NDg2NDEiPiLhnqfhnpThnoDhnprhno7hn43igIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV90aXRsZSIgbXNnaWQ9IjU5MDE0NTkwNDEzOTg3NTE0OTUiPiLhnpThnrbhnpPigIvhnpfhn5LhnofhnrbhnpThn4vigIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMzMDg1MzgwOTQzMTY0Nzc4MzkiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnpfhn5LhnofhnrbhnpThn4vigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhno/hnrbhnpjigIvigIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrjhn5Qg4Z6U4Z+J4Z+HIOGelOGfiuGevOGej+Geu+GehOKAi+GegeGetuGehOKAi+GegOGfkuGemuGfhOGemCDhnpThnr7igIvhnqLhn5LhnpPhnoDigIvhnoXhnoThn4vigIvhnoXhnpjhn5LhnpvhnoTigIvhnq/hnoDhnp/hnrbhnprigIvhnprhnpzhnrbhnoTigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5Dhnpog4Z6T4Z634Z6E4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6AIEFuZHJvaWQg4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgwNTM1MTAwMDQ0NjAzNzgxMSI+IuGeouGfkuGek+GegOKAi+GelOGetuGek+KAi+Gel+GfkuGeh+GetuGelOGfi+KAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+Gej+GetuGemOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOGflCDhnpThn4nhn4cg4Z6U4Z+K4Z684Z6P4Z674Z6E4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6a4Z+E4Z6Y4oCL4Z6U4Z+S4Z6a4Z6f4Z634Z6T4oCL4Z6U4Z6+4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6F4Z6E4Z+L4oCL4Z6F4Z6Y4Z+S4Z6b4Z6E4oCL4Z6v4Z6A4Z6f4Z624Z6a4oCL4Z6a4Z6c4Z624Z6E4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIOGek+Get+GehOKAi+GegOGetuGej+KAi+GeouGfgeGen+GejOGeuOKAi+Gek+GfgyBBbmRyb2lkIOGemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2J1dHRvbl9tb3VudCIgbXNnaWQ9IjEwNTIyNTk5MzAzNjk1MDgyMzUiPiLhnpThnr7hnoDigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMwMTcwNDUyMTczNjU1NDA2NTgiPiLhnpjhnrbhnpPigIvhnpThnonhn5LhnqDhnrbigIvhnoDhn5LhnpPhnrvhnoTigIvhnoDhnrbhnprigIvhnpXhn5LhnqLhnrbhnoDigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrjigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnofhnrbigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjg3NjAxODUxMjcxNjk3MDMxMyI+IuGemOGetuGek+KAi+GelOGeieGfkuGeoOGetuKAi+GegOGfkuGek+Geu+GehOKAi+GegOGetuGemuKAi+GelOGfkuGemuGevuKAi+GegOGetuGej+KAi+GeouGfgeGen+GejOGeuOKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjgxNzU4OTI1NTQ3NTcyMTY1MjUiPiLhnpThnrbhnpPigIvhnpfhn5LhnofhnrbhnpThn4vigIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkzOTgyMjc4MzgyODE4Mzc2MyI+IuGelOGfieGfhyDhnorhnr7hnpjhn5LhnpThnrjigIvhnoXhnpjhn5LhnpvhnoTigIvhnq/hnoDhnp/hnrbhnprigIvhnpHhn4Uv4Z6W4Z644oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6a4Z6U4Z6f4Z+L4oCL4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMzM2MDU4Mzk2NjYzNTE2MDE3Ij4i4Z6U4Z634Z6R4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjE2NTY4NTIwOTg1NTU2MjM4MjIiPiLhnpThn4nhn4cg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z634Z6R4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF90aXRsZSIgbXNnaWQ9IjY2MDEyOTg1MTcwODc3NTg1MyI+IuGep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOKAi+GegOGfhuGeluGeu+GehOKAi+GelOGfkuGemuGeviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MjY0MDI1MjgwNzc3MjE5NTIxIj4i4Z6Y4Z674Z6T4oCL4Z6W4Z+B4Z6b4oCL4Z6U4Z634Z6R4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z64IOGeleGfkuGeiuGetuGeheGfiyAoXCLhnpThnorhnrfhnp/hn4HhnpJcIikg4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z64IEFuZHJvaWQg4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6W4Z644oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA0Mzk2OTc4MjQ2MDYxMzExNCI+IuGemOGeu+Gek+KAi+GeluGfgeGem+KAi+GelOGet+GekeKAi+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuCDhnpXhn5LhnorhnrbhnoXhn4sgKFwi4Z6U4Z6K4Z634Z6f4Z+B4Z6SXCIpIOGegOGetuGej+KAi+GeouGfgeGen+GejOGeuCBBbmRyb2lkIOGemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+GeluGeuOKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfYnV0dG9uX21vdW50IiBtc2dpZD0iNzA2MDIxODAzNDkwMDY5NjAyOSI+IuGelOGet+GekeKAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfZXJyb3JfbWVzc2FnZSIgbXNnaWQ9IjE5NzAzNzQ4OTgyNjMwNjM4MzYiPiLhnpjhnrbhnpPigIvhnpThnonhn5LhnqDhnrbigIvhnoDhn5LhnpPhnrvhnoTigIvhnoDhnrbhnprigIvhnpThnrfhnpHigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrjhn5Qg4Z6W4Z634Z6T4Z634Z6P4Z+S4Z6Z4oCL4Z6Q4Z624oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6V4Z+S4Z6K4Z624Z6F4Z+L4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z64IOGelOGek+GfkuGekeGetuGelOGfi+KAi+GemOGegOKAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGej+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190aXRsZSIgbXNnaWQ9Ijk2MzAzOTAzMzQ3MDQ3ODY5NyI+IuGelOGevuGegOKAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190ZXh0IiBtc2dpZD0iNTEwMDQyODc1NzEwNzQ2OTQ1NCI+IuGelOGevuKAi+GeouGfkuGek+GegOKAi+GelOGevuGegOKAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuCDhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpjhnr3hnpnigIvhnoXhn4bhnpPhnr3hnpPigIvhnorhn4LhnpvigIvhnqLhn5LhnpPhnoDigIvhnoDhn4bhnpbhnrvhnoTigIvhnpThn5Lhnprhnr7igIvhnpPhnrnhnoTigIvhnpThnonhn5LhnojhnpThn4sg4Z6g4Z6+4Z6Z4oCL4Z6i4Z624Z6F4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6b4Z+C4Z6E4oCL4Z6U4Z624Z6T4oCL4Z6a4Z6g4Z684Z6P4oCL4Z6K4Z6b4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z634Z6R4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX2Vycm9yX3RpdGxlIiBtc2dpZD0iNzMyMzY1ODQ2OTYyNjUxNDIwNyI+IuGelOGfkuGemuGej+Get+GelOGej+GfkuGej+Get+GegOGetuGemuKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOKAi+KAi+GelOGemuGetuGeh+GfkOGemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19vayIgbXNnaWQ9IjczNzY5NTMxNjcwMzk4NjU3MDEiPiLhnpnhnpvhn4vhnpbhn5LhnprhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfbXRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjM2OTk5MTMwOTczOTE1NTAzOTQiPiLhnpThnrbhnpPigIvhno/hnpfhn5LhnofhnrbhnpThn4vigIvhnofhnrbigIvhnqfhnpThnoDhnprhno7hn43igIvigIvhnpXhn5LhnpHhnrvhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjE5NjA4MTcxOTIyMTYwNjQ4MzMiPiLhnpThnrbhnpPigIvhnpfhn5LhnofhnrbhnpThn4vigIvhnofhnrbigIvhnpjhn4nhnrbhnp/hn4rhnrjhnpPigIvhnpDhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfY2RfaW5zdGFsbGVyX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY3NzQ3MTI4Mjc4OTIwOTA3NTQiPiLhnpThnrbhnpPigIvhnpfhn5LhnofhnrbhnpThn4vigIvhnofhnrbigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnorhn4bhnqHhnr7hnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9Ijc4NDgyMzY5NzQwODc2NTM2NjYiPiLhnpThnrbhnpPigIvhnpfhn5LhnofhnrbhnpThn4vigIvhnqfhnpThnoDhnprhno7hn43igIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIyMjkwODU5Mzk5OTgzNzIwMjcxIj4i4Z6U4Z+J4Z+HIOGeiuGevuGemOGfkuGelOGeuOKAi+GemOGevuGem+KAi+Geh+GemOGfkuGemuGevuGen+KAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOKAi+GeleGfkuGen+GfgeGehOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI5MDIwMDkyMTk2MDYxMDA3MjYyIj4i4Z6S4Z+S4Z6c4Z6+4oCL4Z6R4Z+S4Z6a4Z6E4Z+L4Z6R4Z+S4Z6a4Z624Z6Z4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z64PyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2NDg0MTU5MjE1MjY1MjYwNjkiPiLhnpLhn5Lhnpzhnr7igIvhnpHhn5LhnprhnoThn4vhnpHhn5LhnprhnrbhnpnigIvhnoDhnrbhno/igIvhnqLhn4Hhnp/hnozhnrg/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkzNDAxNjg1MzQyNTc2MTA3OCI+IuGer+GegOGen+GetuGemuKAi+GekeGetuGfhuGehOGeouGen+Gfi+KAi+GeiuGfguGem+KAi+GelOGetuGek+KAi+GemuGegOGfkuGen+GetuGekeGeu+GegOKAi+GegOGfkuGek+Geu+GehOKAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOKAi+Gek+GeueGehOKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+Gem+Geu+GelOGflCDhnp/hnoDhnpjhn5LhnpjhnpfhnrbhnpbigIvhnpPhn4Hhn4figIvhnpjhnrfhnpPigIvhnqLhnrbhnoXigIvhno/hn5LhnprhnqHhnpThn4vigIvhnpzhnrfhnonigIvhnpThnrbhnpPigIvhnpHhn4EhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDEzMTg5NTAyNzU0MzgzMCI+IuGekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GekeGetuGfhuGehOGeouGen+Gfi+KAi+GegOGfkuGek+Geu+GehOKAi+GegOGetuGej+KAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+Gek+GeueGehOKAi+GelOGetuGej+Gfi+GelOGehOGfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9idXR0b25fZm9ybWF0IiBtc2dpZD0iNDEzMTA2NDU2MDEyNzQ3ODY5NSI+IuGekuGfkuGenOGevuKAi+GekeGfkuGemuGehOGfi+GekeGfkuGemuGetuGemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkYl9hY3RpdmVfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjcyOTA0NDc3ODk0OTE4OTkxOCI+IuGelOGetuGek+KAi+Gel+GfkuGeh+GetuGelOGfi+KAi+GegOGetuGemuKAi+GegOGfguKAi+GegOGfhuGeoOGeu+Gen+KAi+GemeGevOGeouGfgeGen+GelOGfiuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkYl9hY3RpdmVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIxMDE2NjU0NjI3NjI2NDc2MTQyIj4i4Z6U4Z+J4Z+HIOGeiuGevuGemOGfkuGelOGeuOKAi+GelOGet+GekeKAi+GegOGetuGemuKAi+GegOGfguKAi+GegOGfhuGeoOGeu+Gen+KAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9pbnB1dF9tZXRob2QiIG1zZ2lkPSI0NjUzMzg3MzM2NzkxMjIyOTc4Ij4i4Z6H4Z+S4Z6a4Z6+4Z6f4oCL4Z6c4Z634Z6S4Z644Z6f4Z624Z6f4Z+S4Z6P4Z+S4Z6a4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6bIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSI5MDkxNjUyMTU3NzIyNDk1MTE2Ij4i4Z6a4Z+A4Z6U4Z6F4Z+G4oCL4Z6c4Z634Z6S4Z644Z6f4Z624Z6f4Z+S4Z6P4Z+S4Z6a4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6bIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNjIwMzExMjQ3ODA5NTExNzYyNSI+IuGegOGfkuGeiuGetuGemuKAi+GeheGeu+GeheKAi+KAi+GeluGet+Gej+GelOGfkuGemuGetuGegOGeiiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhhcmR3YXJlIiBtc2dpZD0iNzUxNzgyMTA4Njg4ODk5MDI3OCI+IuGeleGfkuGek+GfguGegOKAi+GemuGeueGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMTQwNzM2NzAxNzI2MzAzMDc3MyI+IuGeh+GfkuGemuGevuGen+KAi+GelOGfkuGem+GehOGfi+KAi+GegOGfkuGeiuGetuGemuKAi+GeheGeu+GehSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDY1OTA3NzAwNDQ5MjU3MDYzIj4i4Z6U4Z+J4Z+HIOKAi+GeiuGevuGemOGfkuGelOGeuOKAi+Geh+GfkuGemuGevuGen+KAi+GelOGfkuGem+GehOGfi+KAi+KAi+GegOGfkuGeiuGetuGemuGeheGeu+GeheGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhc3Rfc2Nyb2xsX2FscGhhYmV0IiBtc2dpZD0iNTQzMzI3NTQ4NTQ5OTAzOTE5OSI+IiBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhc3Rfc2Nyb2xsX251bWVyaWNfYWxwaGFiZXQiIG1zZ2lkPSI0MDMwMTcwNTI0NTk1MTIzNjEwIj4iIDAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmRpZGF0ZXNfc3R5bGUiIG1zZ2lkPSI0MzMzOTEzMDg5NjM3MDYyMjU3Ij48dT4i4Z6U4Z+B4Z6A4Z+S4Z6B4Z6H4Z6TIjwvdT48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9jaGVja2luZ19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzQ0OTgxNjAwNTM1MTQ2ODU2MCI+IuGemuGfgOGelOGeheGfhuKAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9jaGVja2luZ19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NDU3NjAzNDE4OTcwOTk0MDUwIj4i4Z6a4Z+A4Z6U4Z6F4Z+G4oCL4Z6A4Z624Z6P4oCL4Z6i4Z+B4Z6f4Z6M4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iODI4NzMxOTg4MjkyNjczNzA1MyI+IuGeluGet+Gek+Get+Gej+GfkuGemeKAi+GemuGegOKAi+GegOGfhuGeoOGeu+Gen+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3Nzg4MDQwNzQ1Njg2MjI5MzA3Ij4i4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z644oCL4Z6R4Z6R4Z+BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzgwNDc3ODM4MjQxMjEyOTk3Ij4i4Z6A4Z624Z6a4oCL4oCL4Z6i4Z+B4Z6f4Z6M4Z644oCL4Z6R4Z6R4Z+BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzg0MDEyMTA2NzQyNzI2OTUwMCI+IuGep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOKAi+GekeGekeGfgSDhnqzigIvhnpjhnrbhnpPigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLigIvhnq/hnoDhnp/hnrbhnprigIvhnorhn4LhnpvigIvhnpjhnrfhnpPigIvhnpThnrbigIvhnoLhnrbhn4bhnpHhn5Lhnprhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2NDEwNjU2NDE3ODY5MjM2MDQiPiLhnoDhnrbhno/igIvhnqLhn4Hhnp/hnozhnrjigIvhnpHhnpHhn4Eg4Z6s4oCL4Z6Y4Z624Z6T4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6S4oCL4Z6v4Z6A4Z6f4Z624Z6a4oCL4Z6Y4Z634Z6T4oCL4Z6U4Z624Z6T4oCL4Z6C4Z624Z+G4Z6R4Z+S4Z6a4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIyMDkwMDQ2NzY5NTMyNzEzNTYzIj4i4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z644oCL4Z6B4Z684Z6FIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY0MTA3MjM5MDYwMTkxMDAxODkiPiLhnoDhnrbhno/igIvhnqLhn4Hhnp/hnozhnrjigIvhnoHhnrzhnoUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMTc5NTkxNzU3ODM5NTMzMzI4MCI+IuGep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOKAi+GegeGevOGeheGflCDhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpLhn5Lhnpzhnr7igIvhnpHhn5LhnprhnoThn4vhnpHhn5LhnprhnrbhnpnigIvhnpzhnrbigIvhnqHhnr7hnoThnpzhnrfhnonhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNzUzODk4NTY3NTI1NTY4MjUzIj4i4Z6A4Z624Z6P4oCL4Z6i4Z+B4Z6f4Z6M4Z644oCL4Z6B4Z684Z6F4Z+UIOGeluGfkuGemeGetuGemeGetuGemOKAi+GekuGfkuGenOGevuKAi+GekeGfkuGemuGehOGfi+GekeGfkuGemuGetuGemeKAi+GenOGetuKAi+GeoeGevuGehOGenOGet+GeieGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIxNjYxNjgzMDMxMzMwOTUxMDczIj4i4Z6U4Z624Z6T4oCL4Z6K4Z6A4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z644oCL4Z6K4Z+E4Z6Z4oCL4Z6Y4Z634Z6T4oCL4Z6a4Z+G4Z6W4Z654Z6E4oCL4Z6R4Z674Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjg3MjE1Mjg4MjYwNDQwNzgzNyI+IuGelOGetuGek+KAi+GeiuGegOKAi+GegOGetuGej+KAi+GeouGfgeGen+GejOGeuOKAi+GeiuGfhOGemeKAi+GemOGet+Gek+KAi+GemuGfhuGeluGeueGehOKAi+GekeGeu+GegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQzMjk4NDg4MTk4NjU1OTQyNDEiPiLhnpXhn5LhnorhnrbhnoXhn4vigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrjigIvhnpjhnrvhnpPigIvhnpPhnrnhnoTigIvigIvhnpvhnrvhnpTigIvigIvigIvhnofhn4Dhnp/hnpzhnrbhnoTigIvhnoDhnrbhnprigIvhnpThnrbhno/hn4vigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5Dhnpnhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcyNjAxODMyOTM3NDc0NDgyNDEiPiLhnpXhn5LhnorhnrbhnoXhn4vigIvhnoDhnrbhno/igIvhnqLhn4Hhnp/hnozhnrjigIvhnpjhnrvhnpPigIvhnpPhnrnhnoTigIvhnorhnoDhn4vigIvhnoXhn4Hhnokg4Z6H4Z+A4Z6f4Z6c4Z624Z6E4oCL4Z6U4Z624Z6P4Z+L4Z6U4Z6E4Z+L4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzk2Nzk3Mzg5MzI3MDM2MDIzMCI+IuGep+GelOGegOGemuGejuGfjeKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOKAi+GemOGetuGek+KAi+Gen+Geu+GenOGej+GfkuGekOGet+Gel+GetuGeliDhnorhnr7hnpjhn5LhnpThnrjigIvhnorhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY3Mjk4MDExMzA3OTA2MTYyMDAiPiLhnpjhnrbhnpPigIvhnp/hnrvhnpzhno/hn5LhnpDhnrfhnpfhnrbhnpbigIvhnoDhn5LhnpPhnrvhnoTigIvhnoDhnrbhnprigIvhnorhnoDigIvhnoDhnrbhno/igIvhnqLhn4Hhnp/hnozhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYxNDIxOTUzNjE2MDY0OTM1MzAiPiLhnqLhn5LhnpPhnoDigIvhnqLhnrbhnoXigIvhnorhnoDigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrjigIvhnorhn4ThnpnigIvhnp/hnrvhnpzhno/hn5LhnpDhnrfhnpfhnrbhnpbhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTY4ODQxMjc4MTM4Mzc3NjA0Ij4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6i4Z624Z6F4oCL4Z6K4Z6A4oCL4Z6A4Z624Z6P4oCL4Z6i4Z+B4Z6f4Z6M4Z644oCL4Z6K4Z+E4Z6Z4oCL4Z6Y4Z624Z6T4oCL4Z6f4Z674Z6c4Z6P4Z+S4Z6Q4Z634Z6X4Z624Z6W4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ0ODYzNzcyMzAxNDAyMjc2NTEiPiLhnpThnrbhnpPigIvhnpvhnrvhnpTigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4OTAyNTE4MDMwNDA0MzgxMzE4Ij4i4Z6U4Z624Z6T4oCL4Z6K4Z6A4oCL4Z6A4Z624Z6P4oCL4Z6i4Z+B4Z6f4Z6M4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjkyMTEyNjE2MjU4MDU3NDE0MyI+IuGelOGetuGek+KAi+GeiuGegOKAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOGflCDhnpThnonhn5LhnoXhnrzhnpvigIvhnpjhn4Hhnozhn4DigIvhnpDhn5Lhnpjhnrjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM4NzAxMjA2NTI5ODM2NTk2NDEiPiLhnpThnrbhnpPigIvhnorhnoDigIvhnoDhnrbhno/igIvhnqLhn4Hhnp/hnozhnrjhn5Qg4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6Q4Z+S4Z6Y4Z644oCL4Z6Y4Z694Z6Z4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfbGlzdF9lbXB0eSIgbXNnaWQ9IjE2NzUzODgzMzA3ODY4NDEwNjYiPiLhnprhnoDigIvhnpjhnrfhnpPigIvhnoPhnr7hnonigIvhnp/hnoDhnpjhn5LhnpjhnpfhnrbhnpbigIvhnpXhn5LhnoLhnrzhnpXhn5LhnoLhnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BrZ1VzYWdlU3RhdHMiIG1zZ2lkPSI4Nzg3MzUyMDc0MzI2NzQ4ODkyIj4i4Z6S4Z+S4Z6c4Z6+4oCL4Z6U4Z6F4Z+S4Z6F4Z674Z6U4Z+S4Z6U4Z6T4Z+S4Z6T4oCL4Z6f4Z6Y4Z624Z6f4Z6S4Z624Z6P4Z674oCL4Z6f4Z+S4Z6Q4Z634Z6P4Z634oCL4Z6A4Z624Z6a4oCL4Z6U4Z+S4Z6a4Z6+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGtnVXNhZ2VTdGF0cyIgbXNnaWQ9IjExMDY2MTI0MjQyNTQyNzc2MzAiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoDhn4LigIvhnp/hn5LhnpDhnrfhno/hnrfigIvhnpThn5Lhnprhnr7igIvhnp/hnpjhnrbhnp/hnpfhnrbhnoLigIvhnorhn4LhnpvigIvhnpThnrbigIvhnpPigIvhnpThn5Lhnprhnpjhnrzhnpvhn5TigIvigIsg4Z6Y4Z634Z6T4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6K4Z+E4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6S4Z6Y4Z+S4Z6Y4Z6P4Z624oCL4Z6R4Z+B4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzNDEwMzYzMTEyMTE0MDY2OTIiPiLhnoXhnpjhn5LhnpvhnoTigIvhnpjhnrbhno/hnrfhnoDhnrYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzOTA2OTcxMjQyODgzMTc4MzEiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnorhnoDigIvhnp/hn4HhnpzhnrbhnoDhnpjhn5LhnpjigIvhnpPhn4PigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5LhnpHhnrvhnoDigIvigIvhnpvhn4bhnpPhnrbhn4bhnorhnr7hnpgg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6F4Z6Y4Z+S4Z6b4Z6E4oCL4Z6Y4Z624Z6P4Z634Z6A4Z624Z+U4oCLIOGemOGet+Gek+KAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GelOGfkuGemuGevuKAi+GeiuGfhOGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gem+GfhuGek+GetuGfhuGeiuGevuGemOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcm91dGVfbWVkaWFfb3V0cHV0IiBtc2dpZD0iMTY0MjAyNDQ1NTc1MDQxNDY5NCI+IuGek+GetuGfhuKAi+GeleGfkuGem+GevOGenOKAi+Gem+GekeGfkuGekuGeleGem+KAi+GemOGfgeGejOGfgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JvdXRlX21lZGlhX291dHB1dCIgbXNnaWQ9IjQ5MzI4MTg3NDk1NDcyNDQzNDYiPiLhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpPhnrbhn4bigIvhnpXhn5LhnpvhnrzhnpzigIvhnpvhnpHhn5LhnpLhnpXhnpvigIvhnpjhn4Hhnozhn4DigIvhnpHhn4XigIvhnqfhnpThnoDhnprhno7hn43igIvigIvhnoHhnrbhnoTigIvhnoDhn5Lhnprhn4XigIvhnpXhn5Lhnp/hn4HhnoThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc19rZXlndWFyZF9zZWN1cmVfc3RvcmFnZSIgbXNnaWQ9Ijc1NjU1NTIyMzc5Nzc4MTUwNDciPiLhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnp/hnrvhnpzhno/hn5LhnpDhnrfhnpfhnrbhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3Nfa2V5Z3VhcmRfc2VjdXJlX3N0b3JhZ2UiIG1zZ2lkPSI1ODY2MjQ1NDg0MzAzMjg1NzYyIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6F4Z684Z6b4oCL4oCL4Z6A4Z624Z6a4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Y4Z624Z6T4oCL4Z6f4Z674Z6c4Z6P4Z+S4Z6Q4Z634Z6X4Z624Z6WIGtlZ3VhcmQg4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sX2tleWd1YXJkIiBtc2dpZD0iMTcyMTk1MTg0MjA3ODI4Mzg3Ij4i4Z6W4Z634Z6T4Z634Z6P4Z+S4Z6Z4oCL4Z6A4Z624Z6a4oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6JIOGek+Get+GehOKAi+Gem+GetuGegOGfi+KAi+GegOGetuGemuKAi+GegOGetuGemuGeluGetuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbnRyb2xfa2V5Z3VhcmQiIG1zZ2lkPSIzMDQzNzMyMjkwNTE4NjI5MDYxIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6EIGtlZ3VhcmQg4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHV0b3JpYWxfZG91YmxlX3RhcF90b196b29tX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0MDcwNDMzMjA4MTYwMDYzNTM4Ij4i4Z6U4Z+J4Z+H4oCL4Z6W4Z644Z6a4oCL4Z6K4Z6EIOKAi+KAi+GeiuGevuGemOGfkuGelOGeuOKAi+GeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+GegOGetuGemuKAi+GeluGehOGfkuGemuGeuOGegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdhZGdldF9ob3N0X2Vycm9yX2luZmxhdGluZyIgbXNnaWQ9IjQ4ODIwMDQzMTQ5MDY0NjYxNjIiPiLhnpjhnrfhnpPigIvhnqLhnrbhnoXigIvhnpThnpPhn5LhnpDhn4LhnpjigIvhnpLhnrbhno/hnrvigIvhnoDhn5LhnprhnrbhnqDhn5LhnpzhnrfhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX2dvIiBtc2dpZD0iODMyMDg0NTY1MTczNzM2OTAyNyI+IuGekeGfhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fc2VhcmNoIiBtc2dpZD0iNjU4MTEwMjcxODIyODA3ODExIj4i4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9zZW5kIiBtc2dpZD0iMjMxNjE2NjU1NjM0OTMxNDQyNCI+IuGeleGfkuGeieGeviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fbmV4dCIgbXNnaWQ9IjMxMzg4NDM5MDQwMDk4MTM4MzQiPiLhnpThnpPhn5LhnpHhnrbhnpThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX2RvbmUiIG1zZ2lkPSI4OTcxNTE2MTE3OTEwOTM0NjA1Ij4i4Z6a4Z694Z6F4Z6a4Z624Z6b4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9wcmV2aW91cyIgbXNnaWQ9IjE0NDM1NTAwMzkyNTAxMDU5NDgiPiLhnpjhnrvhnpMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX2RlZmF1bHQiIG1zZ2lkPSIyODQwOTIxODg1NTU4MDQ1NzIxIj4i4Z6i4Z6T4Z674Z6c4Z6P4Z+S4Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlhbF9udW1iZXJfdXNpbmciIG1zZ2lkPSI1Nzg5MTc2NDI1MTY3NTczNTg2Ij4i4Z6F4Z674Z6F4oCL4Z6b4Z+B4Z6B4oCLXG7hnorhn4ThnpnigIvhnpThn5Lhnprhnr4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2NvbnRhY3RfdXNpbmciIG1zZ2lkPSI0OTQ3NDA1MjI2Nzg4MTA0NTM4Ij4i4Z6U4Z6E4Z+S4Z6A4Z6+4Z6P4oCL4Z6R4Z+G4Z6T4Z624Z6A4Z+L4Z6R4Z+G4Z6T4Z6EXG7hnorhn4ThnpnigIvhnpThn5Lhnprhnr4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnRfY3JlZGVudGlhbHNfcGVybWlzc2lvbl9tZXNzYWdlX2hlYWRlciIgbXNnaWQ9IjIxMDYxMDM4MTc5Mzc4NTk2NjIiPiLhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpjhnr3hnpkg4Z6s4oCL4Z6F4Z+S4Z6a4Z6+4Z6T4oCL4Z6K4Z684Z6F4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6a4Z+E4Z6Y4oCL4Z6f4Z+S4Z6T4Z6+4oCL4Z6f4Z634Z6R4Z+S4Z6S4Z63IOGeiuGevuGemOGfkuGelOGeuOKAi+GeheGevOGem+KAi+GeguGejuGek+GeuOKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+GepeGeoeGevOGenCDhnpPhnrfhnoTigIvhnpbhn4HhnpvigIvhnqLhnpPhnrbhnoLhno/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9jcmVkZW50aWFsc19wZXJtaXNzaW9uX21lc3NhZ2VfZm9vdGVyIiBtc2dpZD0iMzEyNTIxMTM0MzM3OTM3NjU2MSI+IuGej+GevuKAi+GeouGfkuGek+GegOKAi+GeheGehOGfi+KAi+GeouGek+Geu+GeieGfkuGeieGetuGej+KAi+Gen+GfhuGejuGevuKAi+Gek+GfgeGfhz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9wZXJtaXNzaW9uc19oZWFkZXJfdGV4dCIgbXNnaWQ9IjY4NzQ0OTc0MDgyMDE4MjY3MDgiPiLhnp/hn5LhnpPhnr7igIvhnoXhnrzhnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvdyIgbXNnaWQ9IjcyMjU5NDg4MTEyOTYzODY1NTEiPiLhnqLhnpPhnrvhnonhn5Lhnonhnrbhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55IiBtc2dpZD0iMjA4MTg3OTg4NTc1NTQzNDUwNiI+IuGelOGeiuGet+Gen+GfgeGekiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1pc3Npb25fcmVxdWVzdF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2NDg2NzU5Nzk1OTI2MjM3OTA3Ij4i4Z6U4Z624Z6T4oCL4Z6f4Z+S4Z6T4Z6+4oCL4Z6f4Z634Z6R4Z+S4Z6S4Z63Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWlzc2lvbl9yZXF1ZXN0X25vdGlmaWNhdGlvbl93aXRoX3N1YnRpdGxlIiBtc2dpZD0iODUzMDM5MzEzOTYzOTU2MDE4OSI+IuGelOGetuGek+KAi+Gen+GfkuGek+GevuKAi+Gen+Get+GekeGfkuGekuGet1xu4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6C4Z6O4Z6T4Z64IDx4bGlmZjpnIGlkPSJBQ0NPVU5UIj4lczwveGxpZmY6Zz4g4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5wdXRfbWV0aG9kX2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSIxMjgzNTU3MTc5OTQ0OTkyNjQ5Ij4i4Z6c4Z634Z6S4Z644Z6f4Z624Z6f4Z+S4Z6P4Z+S4Z6a4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6bIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY19iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMzY4Nzk2OTEzODM3NTA5MjQyMyI+IuGekuGfkuGenOGevuKAi+Gen+GemOKAi+GegOGetuGem+KAi+GegOGemOGfkuGemCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjQxNDgxMjA3NDIwOTY0NzQ2NDEiPiLhnpfhnrbhnpbigIvhnoThnrbhnpnhnp/hn5Lhnprhnr3hnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YWxscGFwZXJfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjEyNDAwODc4NDQzMDQ2ODc2NjIiPiLhnpXhn5LhnpHhnrbhn4bhnoTigIvhnprhnrzhnpThnpfhnrbhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VyX3dhbGxwYXBlciIgbXNnaWQ9Ijc4NzM0NzYxOTkyOTUxOTAyNzkiPiLhnpThn5LhnorhnrzhnprigIvhnpXhn5LhnpHhnrbhn4bhnoTigIvhnprhnrzhnpThnpfhnrbhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub3RpZmljYXRpb25fbGlzdGVuZXJfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjIwMTQxNjI4MzU0ODE5MDY0MjkiPiLhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnp/hn5LhnorhnrbhnpThn4vigIvhnoDhnrbhnprigIvhnofhnrzhnpPigIvhnorhn4bhno7hnrnhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGl0bGUiIG1zZ2lkPSIxOTYxNTIxMzU1MjA0MjgyNyI+IuGelOGetuGek+KAi+GekuGfkuGenOGevuKAi+GesuGfkuGemSBWUE4g4Z6f4Z6A4Z6Y4Z+S4Z6YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RpdGxlX2xvbmciIG1zZ2lkPSI2NDAwNzE0Nzk4MDQ5MjUyMjk0Ij4i4Z6U4Z624Z6T4oCL4Z6S4Z+S4Z6c4Z6+4oCL4Z6y4Z+S4Z6ZIFZQTiDhnp/hnoDhnpjhn5LhnpjigIvhnorhn4ThnpkgPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RleHQiIG1zZ2lkPSIzMDExMzA2NjA3MTI2NDUwMzIyIj4i4Z6U4Z+J4Z+HIOGeiuGevuGemOGfkuGelOGeuOKAi+GeguGfkuGemuGelOGfi+GeguGfkuGemuGehOKAi+GelOGejuGfkuGeiuGetuGeieGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90ZXh0X2xvbmciIG1zZ2lkPSI2NDA3MzUxMDA2MjQ5MTc0NDczIj4i4Z6U4Z624Z6T4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6R4Z+FIDx4bGlmZjpnIGlkPSJTRVNTSU9OIj4lczwveGxpZmY6Zz4g4Z+UIOGelOGfieGfhyDhnorhnr7hnpjhn5LhnpThnrjigIvhnoLhn5LhnprhnpThn4vhnoLhn5LhnprhnoTigIvhnpThno7hn5Lhnorhnrbhnonhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29ubmVjdGluZyIgbXNnaWQ9IjY0NDM0Mzg5NjQ0NDA5NjA3NDUiPiLhnpThnr7hnoDigIvhnoDhnrbhnprigIvhno/hnpfhn5LhnofhnrbhnpThn4sgVlBOIOGeh+GetuKAi+Gek+Get+GeheGfkuGehS4u4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Nvbm5lY3RlZCIgbXNnaWQ9IjgyMDI2Nzk2NzQ4MTkyMTM5MzEiPiLhnpfhn5LhnofhnrbhnpThn4sgVlBOIOGeh+GetuKAi+Gek+Get+GeheGfkuGehSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9lcnJvciIgbXNnaWQ9IjYwMDkyNDk4MTQwMzQ3MDgxNzUiPiLhnpThnr7hnoDigIvhnoDhn4bhnqDhnrvhnp8gVlBOIOGeh+GetuKAi+Gek+Get+GeheGfkuGehSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25maWciIG1zZ2lkPSI2NDE1ODk5MTUwNjcxNTM3OTcwIj4i4Z6U4Z+J4Z+HIOKAi+GeiuGevuGemOGfkuGelOGeuOKAi+GegOGfhuGejuGej+Gfi+KAi+GemuGeheGek+GetuKAi+Gen+GemOGfkuGeluGfkOGek+GfkuGekiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVwbG9hZF9maWxlIiBtc2dpZD0iMjg5Nzk1NzE3MjM2NjczMDQxNiI+IuGeh+GfkuGemuGevuGen+KAi+KAi+Ger+GegOGen+GetuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2ZpbGVfY2hvc2VuIiBtc2dpZD0iNjM2MzY0ODU2MjE3MDc1OTQ2NSI+IuGeguGfkuGemOGetuGek+KAi+Ger+GegOGen+GetuGemuKAi+GelOGetuGek+KAi+Geh+GfkuGemuGevuGenyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc2V0IiBtc2dpZD0iMjQ0ODE2ODA4MDk2NDIwOTkwOCI+IuGegOGfhuGejuGej+Gfi+KAi+GeoeGevuGehOGenOGet+GeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN1Ym1pdCIgbXNnaWQ9IjE2MDIzMzU1NzIwODk5MTE5NDEiPiLhnorhnrbhnoDhn4vigIvhnp/hn5LhnpPhnr4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXJfbW9kZV9kaXNhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjMxNjQ3NjgyMTIwMDM4NjQzMTYiPiLhnpThnrbhnpPigIvhnpThnr7hnoDigIvhnprhnpThn4DhnpTigIvhnprhnpDhnpnhnpPhn5Lhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXJfbW9kZV9kaXNhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iODAzNTIzMDUzNzU2MzUwMzI2MiI+IuGelOGfieGfh+KAiyDhnorhnr7hnpjhn5LhnpThnrjigIvhnoXhn4HhnonigIvhnpbhnrjigIvhnprhnpThn4DhnpTigIvhnprhnpDhnpnhnpPhn5Lhno/igIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXRoZXJlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIzMTQ2Njk0MjM0Mzk4MjAyNjAxIj4i4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+LIOGerOKAiyBob3RzcG90IOGen+GegOGemOGfkuGemCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRldGhlcmVkX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iNjg1NzAzMTc2MDEwMzA2Mjk4MiI+IuGelOGfieGfh+KAiyDhnorhnr7hnpjhn5LhnpThnrjigIvhnprhn4DhnpThnoXhn4bhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjIzMDA0NzAwMDQ1MDMzNDM0MzkiPiLhnpDhnpnhnoDhn5Lhnprhn4ThnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXh0X2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjEwODA1NTUxMDQ2Nzc5OTI0MDgiPiLhnpThnpPhn5LhnpHhnrbhnpThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJza2lwX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjEyNzUzNjIyOTk0NzE2MzE4MTkiPiLhnprhn4bhnpvhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZV93YXJuaW5nX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjQ4OTA4OTQyNjc0NTQ4NjcyNzYiPiLhnoDhnrbhnprigIvhnpThn5Lhnprhnr7igIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnoXhnpvhn5Dhno/igIvhnoHhn5Lhnpbhnp/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZV93YXJuaW5nX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMzM0MDgyMjIyODU5OTMzNzc0MyI+IuGelOGfieGfh+KAiyDhnorhnr7hnpjhn5LhnpThnrjigIvigIvhnp/hn5Lhnpzhn4LhnoThnpnhnpvhn4vigIvhnpThnpPhn5LhnpDhn4LhnpjigIvhnqLhn4bhnpbhnrjigIvhnoDhnrbhnprigIvhnpThn5Lhnprhnr7igIvigIvigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnoXhnpvhn5Dhno/igIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZWRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjI2OTU0MTg5NzcyOTc4MTMzMiI+IuGem+GevuGegOKAi+GeiuGfguGek+KAi+GegOGfhuGejuGej+Gfi+KAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GeheGem+GfkOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlZF9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjU0NDM0NTczMjEzNTQ5MDcxODEiPiLhnpThn4nhn4cg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6f4Z+S4Z6c4Z+C4Z6E4Z6Z4Z6b4Z+L4oCL4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4oCL4Z6i4Z+G4Z6W4Z644oCL4Z6A4Z624Z6a4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6F4Z6b4Z+Q4Z6P4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fbWF0Y2hlcyIgbXNnaWQ9IjgxMjk0MjE5MDg5MTU4NDA3MzciPiLhnoLhn5LhnpjhnrbhnpPigIvhnoDhnrbhnprigIvhnpXhn5LhnoLhnrzhnpXhn5LhnoLhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kX29uX3BhZ2UiIG1zZ2lkPSIxOTQ2Nzk5MjMzODIyODIwMzg0Ij4i4Z6a4Z6A4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6R4Z+G4Z6W4Z+Q4Z6aIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJtYXRjaGVzX2ZvdW5kIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODE2NzE0NzA4MTEzNjU3OTQzOSI+IuGfoSDhnpThn5LhnprhnoDhnr3hno8iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ2NDE4NzI3OTcwNjc2MDkxNzciPiI8eGxpZmY6ZyBpZD0iSU5ERVgiPiVkPC94bGlmZjpnPiDhnpPhn4MgPHhsaWZmOmcgaWQ9IlRPVEFMIj4lZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fbW9kZV9kb25lIiBtc2dpZD0iNzIxNzU4MTY0MDQ2MTkyMjI4OSI+IuGemuGeveGeheGemuGetuGem+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkyMzgxMDQ0ODUwNzYxMjc0NiI+IuGegOGfhuGeluGeu+GehOKAi+GeleGfkuGeiuGetuGeheGfi+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMzI3ODk0OTk4NDA5NTM3MTkwIj4i4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6V4Z+S4Z6K4Z624Z6F4Z+L4oCL4Z6A4Z624Z6P4oCL4Z6i4Z+B4Z6f4Z6M4Z64Li4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfZXJhc2luZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0NTIxNTczMzIxNTI0MzQwMDU4Ij4i4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6b4Z674Z6U4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z64Li4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfZXJhc2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1OTY5ODg4NzU1MDcwNDMwNDIiPiLhnoDhn4bhnpbhnrvhnoTigIvhnpvhnrvhnpTigIvhnoDhnrbhno/igIvhnqLhn4Hhnp/hnozhnrguLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmb3JtYXRfZXJyb3IiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjI5OTc2OTU2MzYyNDc3Njk0OCI+IuGemOGet+Gek+KAi+KAi+GeouGetuGeheKAi+Gem+Geu+GelOKAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcm1hdF9lcnJvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMTUyNDg2OTY2NDQ1MTA5MzUiPiLhnpjhnrfhnpPigIvhnqLhnrbhnoXigIvhnpvhnrvhnpTigIvhnoDhnrbhno/igIvhnqLhn4Hhnp/hnozhnrjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9iYWRfcmVtb3ZhbCIgbXNnaWQ9Ijc5NjA4NjQwNjEwMTY2MDMyODEiPiLhnpThnrbhnpPigIvhnorhnoDigIvhnoDhnrbhno/igIvhnqLhn4Hhnp/hnozhnrjigIvhnpjhnrvhnpPigIvhnpPhnrnhnoTigIvhnpXhn5LhnorhnrbhnoXhn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9jaGVja2luZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MTgxODg3MjAwMDk1Njk2OTMiPiLhnpThnoXhn5LhnoXhnrvhnpThn5LhnpThnpPhn5LhnpPigIvhnoDhn4bhnpbhnrvhnoTigIvhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9jaGVja2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMzQ3NjI1MDM5MDQ4Mjc0ODEiPiLhnpThnoXhn5LhnoXhnrvhnpThn5LhnpThnpPhn5LhnpPigIvhnoDhn4bhnpbhnrvhnoTigIvhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnpjhnr7hnpvigIvhnoDhnrbhno/igIvhnqLhn4Hhnp/hnozhnrjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yZW1vdmVkIiBtc2dpZD0iNzAwMTUyNjkwNTA1Nzk1MjA5NyI+IuGelOGetuGek+KAi+GeiuGegOKAi+GegOGetuGej+KAi+GeouGfgeGen+GejOGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3NoYXJlZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI1ODMwODE0MzQ5MjUwODM0MjI1Ij4i4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z644oCL4Z6U4Z6F4Z+S4Z6F4Z674Z6U4Z+S4Z6U4Z6T4Z+S4Z6T4oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6K4Z+E4Z6Z4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfc2hhcmVkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTcwNjEzMDU2ODEzMzU0MDQzNSI+IuGelOGeheGfkuGeheGeu+GelOGfkuGelOGek+GfkuGek+KAi+GegOGetuGej+KAi+GeouGfgeGen+GejOGeuOKAi+GegOGfhuGeluGeu+GehOKAi+GelOGfkuGemuGevuKAi+GeiuGfhOGemeKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3Vua25vd25fc3RhdGUiIG1zZ2lkPSI3MjkxOTI3ODIxOTcyOTAzODUiPiLhnpjhnrfhnpPigIvhnp/hn5LhnoLhnrbhnpvhn4vigIvhnp/hn5LhnpDhnrbhnpPhnpfhnrbhnpbigIvhnpjhn4Hhnozhn4DigIvhnoHhnrbhnoTigIvhnoDhn5Lhnprhn4Xhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZSIgbXNnaWQ9IjE3Nzg2ODY2MTgyMzAwMTE5NjQiPiLhnoXhn4LhnoDigIvhnprhn4bhnpvhn4LhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kIiBtc2dpZD0iNDgwODI3MDkwMDMyMjk4NTk2MCI+IuGemuGegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlYnNlYXJjaCIgbXNnaWQ9IjQzMzcxNTc5Nzc0MDAyMTE1ODkiPiLhnp/hn5Lhnpzhn4LhnoThnprhnoDigIvhno/hnrbhnpjigIvhnpThno7hn5LhnorhnrbhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kX25leHQiIG1zZ2lkPSI1NzQyMTI0NjE4OTQyMTkzOTc4Ij4i4Z6a4Z6A4oCL4Z6U4Z6T4Z+S4Z6R4Z624Z6U4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZF9wcmV2aW91cyIgbXNnaWQ9IjIxOTY3MjM2NjkzODgzNjA1MDYiPiLhnprhnoDigIvhnpbhnrjigIvhnpjhnrvhnpMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNOb3RpZlRpY2tlciIgbXNnaWQ9IjU2MjI2ODM5MTI2MTY0OTYxNzIiPiLhnp/hn5LhnpPhnr7igIvhnpHhnrjhno/hnrbhn4bhnoTigIvhnpbhnrggPHhsaWZmOmcgaWQ9Ik5BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc05vdGlmVGl0bGUiIG1zZ2lkPSI1NDQ2ODU4NzE3MTU3NDE2ODM5Ij4i4Z6f4Z+G4Z6O4Z6+4oCL4Z6R4Z644Z6P4Z624Z+G4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZNZXNzYWdlIiBtc2dpZD0iMTM3NDcxODAyMzIyNDAwMDcwMiI+IuGelOGetuGek+KAi+Gen+GfkuGek+GevuKAi+GeiuGfhOGemSA8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz4gKDx4bGlmZjpnIGlkPSJTRVJWSUNFIj4lMiRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNWZXJpZlllcyIgbXNnaWQ9IjIzNDY1NjYwNzI4NjcyMTM1NjMiPiLhnpThnrbhnpEv4Z6F4Z624Z6fIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzVmVyaWZObyIgbXNnaWQ9IjExNDY1NjQ5MzczNDY0NTQ4NjUiPiLhnpHhn4EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzeW5jX3Rvb19tYW55X2RlbGV0ZXMiIG1zZ2lkPSI1Mjk2MzIxODUwNjYyNzQ2ODkwIj4i4Z6b4Z674Z6U4oCL4oCL4Z6b4Z6+4Z6f4oCL4Z6K4Z+C4Z6T4oCL4Z6A4Z+G4Z6O4Z6P4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzX2Rlc2MiIG1zZ2lkPSI0OTY1NTE2NzEwMDg2OTQyNDUiPiLhnpjhnrbhnpPigIvhnpLhnrbhno/hnrvigIvhnpThnrbhnpPigIvhnpvhnrvhnpQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl9PRl9ERUxFVEVEX0lURU1TIj4lMSRkPC94bGlmZjpnPiDhnp/hnpjhn5LhnprhnrbhnpThn4sgPHhsaWZmOmcgaWQ9IlRZUEVfT0ZfU1lOQyI+JTIkczwveGxpZmY6Zz4g4Z6C4Z6O4Z6T4Z64IDx4bGlmZjpnIGlkPSJBQ0NPVU5UX05BTUUiPiUzJHM8L3hsaWZmOmc+IOGflCDhno/hnr7igIvhnqLhn5LhnpPhnoDigIvhnoXhnoThn4vigIvhnpLhn5Lhnpzhnr7igIvhnqLhn5LhnpzhnrjigIvhnoHhn5Lhnpvhn4figIs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY19yZWFsbHlfZGVsZXRlIiBtc2dpZD0iMjU3MjYwMDEwMzEyMjU5NjI0MyI+IuGem+Geu+GelOKAi+GekuGetuGej+GeuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfdW5kb19kZWxldGVzIiBtc2dpZD0iMjk0MTMxNzM2MDYwMDMzODYwMiI+IuGemOGet+Gek+KAi+GekuGfkuGenOGevuKAi+GegOGetuGemuKAi+Gem+Geu+GelOKAi+GenOGet+GeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfZG9fbm90aGluZyIgbXNnaWQ9IjM3NDM3NjQ3NDA0MzA4MjE4NDUiPiLhnpjhnrfhnpPigIvhnpLhn5Lhnpzhnr7hnqLhn5LhnpzhnrjigIvhnpHhn4HigIvhnqXhnqHhnrzhnpwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfYWNjb3VudF9sYWJlbCIgbXNnaWQ9IjU2NTUyMDMwODk3NDY0MjM5MjciPiLhnofhn5Lhnprhnr7hnp/igIvhnoLhno7hnpPhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfYWNjb3VudF9sYWJlbCIgbXNnaWQ9IjI5MzUyNjczNDQ4NDk5OTM1NTMiPiLhnpThnpPhn5LhnpDhn4LhnpjigIvhnoLhno7hnpPhnrjigIvhnpDhn5LhnpjhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfYWNjb3VudF9idXR0b25fbGFiZWwiIG1zZ2lkPSIzNjExOTgyODk0ODUzNDM1ODc0Ij4i4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4oCL4Z6C4Z6O4Z6T4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfYnV0dG9uIiBtc2dpZD0iMjQxMjA3MjI3MjgzMjI4NDMxMyI+IuGelOGehOGfkuGegOGevuGekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfZGVjcmVtZW50X2J1dHRvbiIgbXNnaWQ9IjQ3NjA1MDc3ODM4Njc3OTA2NyI+IuGelOGek+GfkuGekOGemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfaW5jcmVtZW50X3Njcm9sbF9tb2RlIiBtc2dpZD0iMzA3MzEwMTA2NzQ0MTYzODQyOCI+Ijx4bGlmZjpnIGlkPSJWQUxVRSI+JXM8L3hsaWZmOmc+IOGelOGfieGfhyDhnpPhnrfhnoTigIvhnp/hnoThn5LhnoDhno/hn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJudW1iZXJfcGlja2VyX2luY3JlbWVudF9zY3JvbGxfYWN0aW9uIiBtc2dpZD0iOTEwMTQ3MzA0NTg5MTgzNTQ5MCI+IuGemuGeu+GeieKAi+GeoeGevuGehOGem+GeviDhnorhnr7hnpjhn5LhnpThnrjigIvhnpThnoThn5LhnoDhnr7hnpMg4Z6T4Z634Z6E4oCL4Z6F4Z674Z+H4Z6A4Z+S4Z6a4Z+E4Z6Y4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z6T4Z+S4Z6Q4Z6Z4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfaW5jcmVtZW50X21pbnV0ZV9idXR0b24iIG1zZ2lkPSI4ODY1ODg1MTE0MDI4NjE0MzIxIj4i4Z6U4Z6E4Z+S4Z6A4Z6+4Z6T4oCL4Z6T4Z624Z6R4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGVjcmVtZW50X21pbnV0ZV9idXR0b24iIG1zZ2lkPSI2MjQ2ODM0OTM3MDgwNjg0NzkxIj4i4Z6U4Z6T4Z+S4Z6Q4Z6Z4oCL4Z6T4Z624Z6R4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfaW5jcmVtZW50X2hvdXJfYnV0dG9uIiBtc2dpZD0iMzY1MjA1NjA1NTgxMDIyMzEzOSI+IuGelOGehOGfkuGegOGevuGek+KAi+GemOGfieGfhOGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2RlY3JlbWVudF9ob3VyX2J1dHRvbiIgbXNnaWQ9IjEzNzc0Nzk4NjM0MjkyMTQ3OTIiPiLhnpThnpPhn5LhnpDhnpnigIvhnpjhn4nhn4ThnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9pbmNyZW1lbnRfc2V0X3BtX2J1dHRvbiIgbXNnaWQ9IjQxNDc1OTA2OTYxNTEyMzA4NjMiPiLhnoDhn4bhno7hno/hn4vigIsgUE0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfc2V0X2FtX2J1dHRvbiIgbXNnaWQ9IjgzMDIxNDAzNTM1Mzk0ODY3NTIiPiLhnoDhn4bhno7hno/hn4sgQU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9pbmNyZW1lbnRfbW9udGhfYnV0dG9uIiBtc2dpZD0iNTM2OTk5ODQ3OTA2NzkzNDExMCI+IuGelOGehOGfkuGegOGevuGek+KAi+GegeGfgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF9tb250aF9idXR0b24iIG1zZ2lkPSIxODMyNjk4OTk1NTQxNzI2MDE5Ij4i4Z6U4Z6T4Z+S4Z6Q4Z6Z4oCL4Z6B4Z+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X2RheV9idXR0b24iIG1zZ2lkPSI3MTMwNDY1NDEyMzA4MTczOTAzIj4i4Z6U4Z6E4Z+S4Z6A4Z6+4Z6T4oCL4Z6Q4Z+S4Z6E4Z+DIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfZGVjcmVtZW50X2RheV9idXR0b24iIG1zZ2lkPSI0MTMxODgxNTIxODE4NzUwMDMxIj4i4Z6U4Z6T4Z+S4Z6Q4Z6Z4oCL4Z6Q4Z+S4Z6E4Z+DIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X3llYXJfYnV0dG9uIiBtc2dpZD0iNjMxODY5NzM4NDMxMDgwODg5OSI+IuGelOGehOGfkuGegOGevuGek+KAi+KAi+GehuGfkuGek+GetuGfhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF95ZWFyX2J1dHRvbiIgbXNnaWQ9IjQ0ODIwMjE4MTM0OTExMjE3MTciPiLhnpThnpPhn5LhnpDhnpnigIvhnobhn5LhnpPhnrbhn4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9hbHQiIG1zZ2lkPSI0ODU2ODY4ODIwMDQwMDUxOTM5Ij4iQWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfY2FuY2VsIiBtc2dpZD0iMTIwMzk4NDAxNzI0NTc4MzI0NCI+IuGelOGfhOGfh+KAi+GelOGehOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiLhnpvhnrvhnpQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kb25lIiBtc2dpZD0iMTk5MjU3MTExODQ2NjY3OTc3NSI+IuGemuGeveGeheGemuGetuGem+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX21vZGVfY2hhbmdlIiBtc2dpZD0iNDU0NzM4Nzc0MTkwNjUzNzUxOSI+IuGelOGfkuGeiuGevOGemuKAi+GemuGelOGfgOGelCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiLhnofhn5Lhnprhnr7hnp/igIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiLhnoXhn4LhnoDhnprhn4bhnpvhn4LhnoDigIvhnofhnrbigIvhnpjhnr3hnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4i4Z6F4Z+C4Z6A4oCL4Z6a4Z+G4Z6b4Z+C4Z6A4oCL4Z6H4Z624oCL4Z6Y4Z694Z6ZIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4i4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6E4oCL4Z6A4Z624Z6a4oCL4Z6a4Z674Z6J4Z+UIOGelOGfieGfhyAmYW1wOyDhnp/hnoThn5LhnoDhno/hn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4i4Z6a4Z674Z6J4oCL4Z6h4Z6+4Z6E4oCL4Z6b4Z6+4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z64IDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fZG93biIgbXNnaWQ9IjUwODc3Mzk3Mjg2MzkwMTQ1OTUiPiLhnprhnrvhnonigIvhnoXhnrvhn4fhnoDhn5Lhnprhn4ThnpjigIvhnp/hnpjhn5LhnprhnrbhnpThn4sgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9sZWZ0IiBtc2dpZD0iNzIwNzQ3ODcxOTgwNTU2MjE2NSI+IuGemuGeu+GeieKAi+GekeGfheKAi+GehuGfkuGenOGfgeGehOKAi+GeiuGevuGemOGfkuGelOGeuCA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3JpZ2h0IiBtc2dpZD0iODAzNDQzMzI0MjU3OTYwMDk4MCI+IuGemuGeu+GeieKAi+KAi+GekeGfheKAi+Gen+GfkuGeiuGetuGfhuKAi+GeiuGevuGemOGfkuGelOGeuCA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9jayIgbXNnaWQ9IjIyMjg1MjQ5MDA0Mzk4MDE0NTMiPiLhnorhn4Thn4figIvigIvhnp/hn4QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfY2FtZXJhIiBtc2dpZD0iOTY5MDcxOTk3NTUyNDg2ODE0Ij4i4Z6Y4Z+J4Z624Z6f4Z+K4Z644Z6T4oCL4Z6Q4Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NpbGVudCIgbXNnaWQ9Ijg5MzU1MTI4Nzc0NjUyMjE4MiI+IuGen+GfkuGehOGetuGej+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zb3VuZG9uIiBtc2dpZD0iMzAwNTI0NjY2NzU1MDAxNzIiPiLhnpThnr7hnoDigIvhnp/hn4bhnqHhn4HhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2VhcmNoIiBtc2dpZD0iMzA5MTU4NzI0OTc3NjAzMzEzOSI+IuGen+GfkuGenOGfguGehOGemuGegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF91bmxvY2tfdGFibGV0IiBtc2dpZD0iMzgzMzE5NTMzNTYyOTc5NTA1NSI+IuGeouGevOGen+KAiyDhnorhnr7hnpjhn5LhnpThnrjigIvhnorhn4Thn4figIvhnp/hn4Thn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9oZWFkc2V0X3JlcXVpcmVkX3RvX2hlYXJfcGFzc3dvcmQiIG1zZ2lkPSI3MDExOTI3MzUyMjY3NjY4NjU3Ij4i4Z6K4Z+E4Z6P4oCL4Z6A4Z624Z6f4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6f4Z+S4Z6K4Z624Z6U4Z+L4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6U4Z624Z6T4oCL4Z6T4Z634Z6Z4Z624Z6Z4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfcGFzc3dvcmRfY2hhcmFjdGVyX25vX2hlYWRzZXQiIG1zZ2lkPSIyODU5ODczNzcwODg2MTUzNjc4Ij4iRG90LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUyOTM2MDA0OTY2MDE0OTAyMTYiPiLhnprhnoDhnpjhnr7hnpvigIvhnpHhn4XigIvhnorhnr7hnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fYmFyX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjIzNzQ5NjU2Mjk1MjE1MjU4OSI+IuGemuGegOGemOGevuGem+KAi+GeoeGevuGehOGem+GeviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9tZW51X292ZXJmbG93X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjI5NTY1OTAzNzUwOTAwODQ1MyI+IuGeh+GemOGfkuGemuGevuGen+KAi+GeheGfkuGemuGevuGek+KAi+GekeGfgOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI3OTY1OTg0MzYwOTAzNjkzOTAzIj4iJTEkcywgJTIkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9zdWJ0aXRsZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI2OTg1NTQ2NTMwNDcxNzgwNzI3Ij4iJTEkcywgJTIkcywgJTMkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfaW50ZXJuYWwiIG1zZ2lkPSI0ODkxOTE2ODMzNjU3OTI5MjYzIj4i4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6T4Z674Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RvcmFnZV9zZF9jYXJkIiBtc2dpZD0iMzI4Mjk0ODg2MTM3ODI4Njc0NSI+IuGegOGetuGej+KAi+GeouGfgeGen+GejOGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfdXNiIiBtc2dpZD0iMzAxNzk1NDA1OTUzODUxNzI3OCI+IuGep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dHJhY3RfZWRpdF9tZW51X2J1dHRvbiIgbXNnaWQ9Ijg5NDA0Nzg3MzA0OTY2MTAxMzciPiLhnoDhn4Lhnp/hnpjhn5Lhnprhnr3hnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSIxOTU1NjM4ODYyMTIyMjMyMzQyIj4i4Z6A4Z624Z6a4Z6W4Z+S4Z6a4Z6Y4Z624Z6T4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93YXJuaW5nX2JvZHkiIG1zZ2lkPSIyODE0NjczNTUxNDcxOTY5OTU0Ij4i4Z6U4Z+J4Z+HIOGeiuGevuGemOGfkuGelOGeuOKAi+GemOGevuGem+KAi+GegOGetuGemuKAi+GelOGfkuGemuGeviDhnpPhnrfhnoTigIvhnoDhnrbhnprigIvhnoDhn4bhno7hno/hn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzA5MzMzNDQxOTUxODcwNjY4NiI+IuGelOGetuGek+KAi+GelOGet+GekeKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemSAyR+KAiy0zRyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfNGdfbGltaXRfdGl0bGUiIG1zZ2lkPSI3NjM2NDg5NDM2ODE5NDcwNzYxIj4i4Z6U4Z624Z6T4oCL4Z6U4Z634Z6R4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6ZIDRHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9tb2JpbGVfbGltaXRfdGl0bGUiIG1zZ2lkPSI3ODY5NDAyNTE5MzkxNjMxODg0Ij4i4Z6U4Z624Z6T4oCL4Z6U4Z634Z6R4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6F4Z6b4Z+Q4Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93aWZpX2xpbWl0X3RpdGxlIiBtc2dpZD0iODk5MjE1NDczNjQ0MTI4NDg2NSI+IuGelOGetuGek+KAi+GelOGet+GekeKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GenOGfieGetuGemeGeoOGfkuGenOGetuGemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbGltaXRfYm9keSIgbXNnaWQ9IjMzMTc5NjQ3MDY5NzM2MDEzODYiPiLhnpThn4nhn4figIvigIsg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z6+4Z6A4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV8zZ19saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iNzAyNjczOTEyMTEzODAwNTIzMSI+IuGem+GevuGen+KAi+GeiuGfguGek+KAi+GegOGfhuGejuGej+Gfi+KAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemSAyR+KAiy0zRyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfNGdfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjExMDY1NjI3NzkzMTEyMDkwMzkiPiLhnpThnrbhnpPigIvhnpvhnr7hnp/igIvhnorhn4LhnpPigIvhnoDhn4bhno7hno/hn4vigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpkgNEciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX21vYmlsZV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iMjc5MjQwNTcyMTY1NDEyMTY4Ij4i4Z6U4Z624Z6T4oCL4Z6b4Z6+4Z6f4oCL4Z6K4Z+C4Z6T4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6F4Z6b4Z+Q4Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93aWZpX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSI4NzQzODU2MDA2Mzg0ODI1OTc0Ij4i4Z6b4Z6+4Z6f4oCL4Z6K4Z+C4Z6T4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9saW1pdF9zbm9vemVkX2JvZHkiIG1zZ2lkPSI3MDM1NDkwMjc4Mjk4NDQxNzY3Ij4iPHhsaWZmOmcgaWQ9IlNJWkUiPiVzPC94bGlmZjpnPiDhnpvhnr7igIvhnorhn4LhnpPigIvhnoDhn4bhno7hno/hn4vigIvhnpThnrbhnpPigIvhnpThnonhn5LhnofhnrbhnoDhn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3Jlc3RyaWN0ZWRfdGl0bGUiIG1zZ2lkPSI1OTY1MTU3MzYxMDM2MzIxOTE0Ij4i4Z6U4Z624Z6T4oCL4Z6K4Z624Z6A4Z+L4oCL4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6V4Z+S4Z6R4Z+D4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6a4Z+E4Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9yZXN0cmljdGVkX2JvZHkiIG1zZ2lkPSI2NzQxNTIxMzMwOTk3NDUyOTkwIj4i4Z6U4Z+J4Z+HIOGeiuGevuGemOGfkuGelOGeuOKAi+Gem+Geu+GelOKAi+GegOGetuGemuKAi+GeiuGetuGegOGfi+GegOGemOGfkuGemuGet+Gej+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jZXJ0aWZpY2F0ZSIgbXNnaWQ9IjY1MTAwNDA0ODYwNDkyMzc2MzkiPiLhnpzhnrfhnonhn5LhnonhnrbhnpThnpPhnpThno/hn5LhnprigIvhnp/hnrvhnpzhno/hn5LhnpDhnrfhnpfhnrbhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2VydGlmaWNhdGVfaXNfdmFsaWQiIG1zZ2lkPSI2ODI1MjYzMjUwNzc0NTY5MzczIj4i4Z6c4Z634Z6J4Z+S4Z6J4Z624Z6U4Z6T4Z6U4Z6P4Z+S4Z6a4oCL4Z6T4Z+B4Z+H4oCL4oCL4oCL4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXNzdWVkX3RvIiBtc2dpZD0iNDU0MjM5NDgwMjc0OTIxMDMyIj4i4Z6U4Z624Z6T4oCL4Z6F4Z+B4Z6J4oCL4Z6y4Z+S4Z6Z4oCL4Z+WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tbW9uX25hbWUiIG1zZ2lkPSIyMjMzMjA5Mjk5NDM0MTcyNjQ2Ij4i4Z6I4Z+S4Z6Y4Z+E4Z+H4oCL4Z6R4Z684Z6R4Z+F4Z+WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnX25hbWUiIG1zZ2lkPSI2OTczNTYxMTkwNzYyMDg1MjM2Ij4i4Z6f4Z+S4Z6Q4Z624Z6U4Z+Q4Z6T4Z+WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnX3VuaXQiIG1zZ2lkPSI3MjY1OTgxODkwNDIyMDcwMzgzIj4i4Z6V4Z+S4Z6T4Z+C4Z6A4oCL4Z6T4Z+D4oCL4Z6f4Z+S4Z6Q4Z624Z6U4Z+Q4Z6T4Z+WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXNzdWVkX2J5IiBtc2dpZD0iMjY0NzU4NDk4ODA1NzQ4MTU2NiI+IuGelOGetuGek+KAi+GeheGfgeGeieKAi+GeiuGfhOGemeKAi+GfliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZhbGlkaXR5X3BlcmlvZCIgbXNnaWQ9Ijg4MTg4ODYxMzc1NDU5ODMxMTAiPiLhnp/hnrvhnpbhnpvhnpfhnrbhnpbhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfb24iIG1zZ2lkPSI1ODk1MDE3NDA0MzYxMzk3MjMyIj4i4Z6F4Z+B4Z6J4oCL4Z6T4Z+F4Z+WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXhwaXJlc19vbiIgbXNnaWQ9IjM2NzYyNDI5NDk5MTU5NTk4MjEiPiLhnpXhnrvhno/igIvhnoDhn4bhno7hno/hn4vigIvhnpPhn4Xhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJpYWxfbnVtYmVyIiBtc2dpZD0iNzU4ODE0MDY3NjYwODYyNDkzIj4i4Z6b4Z+B4Z6B4oCL4Z6f4Z+K4Z+B4Z6a4Z644Z+WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZ2VycHJpbnRzIiBtc2dpZD0iNDUxNjAxOTYxOTg1MDc2MzA0OSI+IuGen+GfkuGek+GetuGemOKAi+GemOGfkuGemuGetuGemOGeiuGfg+KAi+GfliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYTI1Nl9maW5nZXJwcmludCIgbXNnaWQ9IjQzOTEyNzEyODY0NzcyNzkyNjMiPiLhnp/hn5LhnpPhnrbhnpjigIvhnpjhn5Lhnprhnrbhnpjhnorhn4MgU0hB4oCLLTI1NiDigIvhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGExX2ZpbmdlcnByaW50IiBtc2dpZD0iNzkzMDMzMDIzNTI2OTQwNDU4MSI+IuGen+GfkuGek+GetuGemOKAi+GemOGfkuGemuGetuGemOKAi+GeiuGfgyBTSEEtMSDhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9jaG9vc2VyX3ZpZXdfc2VlX2FsbCIgbXNnaWQ9IjQyOTI1NjkzODM5NzY2MzYyMDAiPiLhnpjhnr7hnpvigIvhnpHhnrbhn4bhnoThnqLhnp/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9jaG9vc2VyX3ZpZXdfZGlhbG9nX3RpdGxlX2RlZmF1bHQiIG1zZ2lkPSI0NzEwMDEzODY0OTc0MDQwNjE1Ij4i4Z6H4Z+S4Z6a4Z6+4Z6f4oCL4Z6f4Z6A4Z6Y4Z+S4Z6Y4Z6X4Z624Z6WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfYWN0aW9uX3Byb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI1MjQ3Njg0NDM1OTc5MTQ5MjE2Ij4i4Z6F4Z+C4Z6A4Z6a4Z+G4Z6b4Z+C4Z6A4oCL4Z6H4Z624oCL4Z6Y4Z694Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9kZXZpY2VfbG9ja2VkIiBtc2dpZD0iMzA5MjcwMzQ0ODY5MDY2OTc2OCI+IuGep+GelOGegOGemuGejuGfjeKAi+Geh+GetuGelOGfi+KAi+Gen+GfhOKAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxpc3RfZGVsaW1ldGVyIiBtc2dpZD0iMzk3NTExNzU3MjE4NTQ5NDE1MiI+IiwgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VuZGluZyIgbXNnaWQ9IjMyNDU2NTM2ODEwMDgyMTgwMzAiPiLhnoDhn4bhnpbhnrvhnoTigIvhnpXhn5Lhnonhnr4uLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYXVuY2hCcm93c2VyRGVmYXVsdCIgbXNnaWQ9IjIwNTc5NTE5NDcyOTc2MTQ3MjUiPiLhnoXhnrbhnpThn4vhnpXhn5Lhnorhnr7hnpjigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnqLhn4rhnrjhnpPhnpLhnrrhno7hnrfhno8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iU2V0dXBDYWxsRGVmYXVsdCIgbXNnaWQ9IjU4MzQ5NDg0NjkyNTM3NTg1NzUiPiLhnpHhnpHhnr3hnpvigIvhnoDhnrbhnprigIvhnqDhn4XigIs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfcmVzb2x2ZXJfdXNlX2Fsd2F5cyIgbXNnaWQ9IjgwMTc3NzA3NDc4MDE0OTQ5MzMiPiLhnofhnrbigIvhnpPhnrfhnoXhn5LhnoUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9yZXNvbHZlcl91c2Vfb25jZSIgbXNnaWQ9IjI0MDQ2NDQ3OTcxNDkxNzM3NTgiPiLhno/hn4LigIvhnpjhn5LhnorhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQ2MTcwNTM4OTgxNjcxMjc0NzEiPiLhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MjM5MjkxMjczNDIwMTQwMTIzIj4i4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6RIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lX2hlYWRwaG9uZXMiIG1zZ2lkPSI4MTE5OTcxODQzODAzNDM5MTEwIj4i4Z6A4Z624Z6fIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lX2RvY2tfc3BlYWtlcnMiIG1zZ2lkPSI2MjQwNjAyOTgyMjc2NTkxODY0Ij4i4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6i4Z684Z6U4Z+J4Z624Z6b4Z+Q4Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9tZWRpYV9yb3V0ZV9uYW1lX2hkbWkiIG1zZ2lkPSIyNDUwOTcwMzk5MDIzNDc4MDU1Ij4iSERNSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfY2F0ZWdvcnlfbmFtZSIgbXNnaWQ9IjM3MjI4MTExNzQwMDM4ODY5NDYiPiLhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfYTJkcF9hdWRpb19yb3V0ZV9uYW1lIiBtc2dpZD0iODU3NTYyNDAzMDQwNjc3MTAxNSI+IuGen+GfhuGeoeGfgeGehOKAi+GelOGfiuGfkuGem+GevOGekuGevOGenyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpcmVsZXNzX2Rpc3BsYXlfcm91dGVfZGVzY3JpcHRpb24iIG1zZ2lkPSI5MDcwMzQ2NDI1MDIzOTc5NjUxIj4i4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6l4Z6P4oCL4Z6B4Z+S4Z6f4Z+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfY2hvb3Nlcl9ncm91cGluZ19kb25lIiBtc2dpZD0iNzk2NjQzODMwNzcyMzMxNzE2OSI+IuGemuGeveGeheGemuGetuGem+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX2J1dHRvbl9jb250ZW50X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTc1ODU1MzU2NzA2NTE0NTI3NiI+IuGem+GekeGfkuGekuGeleGem+KAi+GemOGfgeGejOGfgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19zY2FubmluZyIgbXNnaWQ9IjcyNzk5MDg3NjE3NTgyOTM3ODMiPiLhnoDhn4bhnpbhnrvhnoTigIvhnpzhnrfhnpfhnrbhnoLigIvhnprhnoDigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfY29ubmVjdGluZyIgbXNnaWQ9IjY0MjI1NzE3MTYwMDc4MjU0NDAiPiLhnoDhn4bhnpbhnrvhnoTigIvigIvigIvhnpfhn5LhnofhnrbhnpThn4vigIvigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfYXZhaWxhYmxlIiBtc2dpZD0iNjk4MzI1ODA2NzE5NDY0OTM5MSI+IuGekeGfhuGek+GfgeGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19ub3RfYXZhaWxhYmxlIiBtc2dpZD0iNjczOTg5OTk2MjY4MTg4NjQwMSI+IuGemOGet+Gek+KAi+GekeGfhuGek+GfgeGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19pbl91c2UiIG1zZ2lkPSI0NTMzNzg2MDMxMDkwMTk4MDYzIj4i4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6U4Z+S4Z6a4Z6+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX2J1aWx0X2luX2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjI1ODMxMzQyOTQyOTI1NjM5NDEiPiLhnqLhn4HhnoDhn5LhnprhnoThn4vigIvhnofhnrbhnpThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfaGRtaV9kaXNwbGF5X25hbWUiIG1zZ2lkPSIxNTU1MjY0NTU5MjI3NDcwMTA5Ij4i4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+LIEhETUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X25hbWUiIG1zZ2lkPSI1MTQyMzY1OTgyMjcxNjIwNzE2Ij4iIzx4bGlmZjpnIGlkPSJJRCI+JTEkZDwveGxpZmY6Zz4g4Z6P4Z+S4Z6a4Z694Z6P4oCL4Z6C4Z+S4Z6T4Z62Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV90aXRsZSIgbXNnaWQ9IjY1MjEyNDUxNzY3MjI1NzE3MiI+Ijx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IldJRFRIIj4lMiRkPC94bGlmZjpnPng8eGxpZmY6ZyBpZD0iSEVJR0hUIj4lMyRkPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IkRQSSI+JTQkZDwveGxpZmY6Zz4gZHBpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9zZWN1cmVfc3VmZml4IiBtc2dpZD0iNjAyMjExOTcwMjYyODU3MjA4MCI+Iiwg4Z6f4Z674Z6c4Z6P4Z+S4Z6Q4Z634Z6X4Z624Z6WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIyMjMwNTA2NDkyNDAzMjY1NTciPiLhnpThnrbhnpPigIvhnpfhn5LhnofhnrbhnpThn4vigIvhnoDhnrbhnprigIvhnpThnoThn5LhnqDhnrbhnonigIvhnpThno7hn5LhnorhnrbhnonigIvhnqXhno/igIvhnoHhn5Lhnp/hn4IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDk4ODAyMDEyNDY0MTcwNjg1Ij4i4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4oCL4Z6T4Z+B4Z+H4oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6b4Z6+4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6f4Z+B4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl9kaXNjb25uZWN0IiBtc2dpZD0iNjE4Mzc1NDQ2MzU2MTE1MzM3MiI+IuGeleGfkuGeiuGetuGeheGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VtZXJnZW5jeV9jYWxsX2xhYmVsIiBtc2dpZD0iNjg0OTQ2MTkyNTIzODMwNTMxIj4i4Z6A4Z624Z6a4oCL4Z6g4Z+F4oCL4Z6W4Z+B4Z6b4oCL4Z6i4Z624Z6f4Z6T4Z+S4Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSI4ODUyMDIxNDY3ODY4MjIwNjA4Ij4i4Z6X4Z+S4Z6b4Z+B4Z6F4oCL4oCL4Z6b4Z+G4Z6T4Z624Z+GIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiLhnpvhn4bhnpPhnrbhn4bigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiLhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4i4Z6A4Z684Z6KIFBJTiDhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfY291bnRkb3duIiBtc2dpZD0iNjM1ODExMDIyMTYwMzI5NzU0OCI+IuGeluGfkuGemeGetuGemeGetuGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGej+KAi+GegOGfkuGek+Geu+GehOKAi+GemuGemeGfiOKAi+GeluGfgeGemyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRkPC94bGlmZjpnPiDhnpzhnrfhnpPhnrbhnpHhnrjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5ODk3ODYxMTY4MzA3NTg2OCI+IuGeguGevOGemuKAi+Gem+GfhuGek+GetuGfhuKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV9waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjMxOTUwODU1MDkzNDU1NzMzMSI+IuGelOGeieGfkuGeheGevOGem+KAi+GegOGevOGeiiBQSU4g4Z6f4Z+K4Z644Z6Y4oCL4Z6A4Z624Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiLhnpThnonhn5LhnoXhnrzhnpvigIvigIvhnoDhnrzhnoogUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+IuGelOGeieGfkuGeheGevOGem+KAi+GeluGetuGegOGfkuGemeKAi+Gen+GemOGfkuGehOGetuGej+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+IuGepeGeoeGevOGenOKAi+Gen+GfiuGeuOGemOGegOGetuGej+KAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GelOGet+GekeGflCDhnpThnonhn5LhnoXhnrzhnpvigIvhnoDhnrzhnoogUFVLIOGeiuGevuGemOGfkuGelOGeuOKAi+GelOGek+GfkuGej+GflCDhnoXhn4bhnpbhn4Thn4figIvhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnpvhnpjhn5LhnqLhnrfhno/igIvhnpHhnrbhnoDhn4vhnpHhnoTigIvhnoDhn5LhnprhnrvhnpjhnqDhn4rhnrvhnpPigIvhnpThnonhn5LhnofhnrzhnpPigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6KIFBJTiDhnorhn4LhnpvigIvhnoXhnoThn4vigIvhnpThnrbhnpMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4i4Z6U4Z6J4Z+S4Z6H4Z624Z6A4Z+L4oCL4Z6A4Z684Z6KIFBJTiDhnorhn4LhnpvigIvhnoXhnoThn4vigIvhnpThnrbhnpMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IuGegOGfhuGeluGeu+GehOKAi+GeiuGfhOGfh+KAi+Gen+GfhOKAi+KAi+Gen+GfiuGeuOGemOKAi+GegOGetuGejy4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IuGegOGevOGeiiBQSU4g4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6KIFBJTiDhnorhn4LhnpvigIvhnpjhnrbhnpPigIvhnpbhnrgg4Z+kIOGeiuGem+GfiyDhn6gg4Z6b4Z+B4Z6B4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4i4Z6A4Z684Z6KIFBVSyDhnoLhnr3hnprigIvhno/hn4LigIvhnpjhnrbhnpPigIvigIsg4Z+oIOGem+GfgeGegSDhnqzigIvigIvhnoXhn5Lhnprhnr7hnpPigIvhnofhnrbhnoTigIvhnpPhn4Hhn4fhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLhnpThnonhn5LhnoXhnrzhnpvigIvhnoDhnrzhnoogUFVLIOGemOGfkuGeiuGehOKAi+GekeGfgOGej+GflCDhnoDhnrbhnprigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnorhnorhn4LhnpvigIvhnoXhn5Lhnprhnr7hnpPigIvhnorhnrnhnoTigIvhnpPhnrnhnoTigIvhnpThnrfhnpHigIvhnp/hn4rhnrjhnpjigIvhnoDhnrbhno/igIvhnofhnrbigIvhnqLhnoXhnrfhnpPhn5Lhno/hn5Lhnprhn4Phnpnhn43hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4i4Z6A4Z684Z6KIFBJTiDhnpjhnrfhnpPigIvhnorhnrzhnoXigIvhnoLhn5LhnpPhnrYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjY0ODY4NDIwOTQwMDU2OTg0NzUiPiLhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpvhn4bhnpPhnrbhn4bigIvhnoXhn5Lhnprhnr7hnpPigIvhnpbhn4HhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIxMTAwNTUxMjYxMjY1NTA2NDQ4Ij4i4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+EIOGeheGevOGem+KAi+GegOGfkuGek+Geu+GehOKAi+GeguGejuGek+GeuCBHb29nbGUg4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9IjU3MTg1MzQyNzIwNzA5MjAzNjQiPiLhnojhn5Lhnpjhn4Thn4figIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr4gKOGeouGfiuGeuOKAi+GemOGfieGfguKAi+Gem+KAiykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iOTA1NzI4OTEwMzgyNzI5ODU0OSI+IuGeluGetuGegOGfkuGemeGen+GemOGfkuGehOGetuGej+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI1MzU1OTA0NTgyNjc0MDU0NzAyIj4i4Z6F4Z684Z6bIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjU3NTQ2NjQxMTkzMTk4NzIxOTciPiLhnojhn5Lhnpjhn4Thn4figIvhnqLhn5LhnpPhnoDhnpThn5Lhnprhnr4g4Z6s4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IuGel+GfkuGem+GfgeGeheKAi+GeiOGfkuGemOGfhOGfh+KAi+GeouGfkuGek+GegOGelOGfkuGemuGeviDhnqzigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoA/XG7hnpjhnr7hnpsgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IuGegOGfhuGeluGeu+GehOKAi+GeluGet+Gek+Get+Gej+GfkuGemeKAi+GemOGevuGem+KAi+GeguGejuGek+GeuC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6KIFBJTiDhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnoXhn4bhnpPhnr3hnpMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UXG5cbiDhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhn5LhnorhnoTigIvhnpHhn4Dhno/igIvhnoDhn5LhnpPhnrvhnoTigIvhnprhnpnhn4jigIvhnpbhn4HhnpsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Z6c4Z634Z6T4Z624Z6R4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+IuGeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GelOGeieGfkuGeheGevOGem+KAi+GeluGetuGegOGfkuGemeKAi+Gen+GemOGfkuGehOGetuGej+Gfi+KAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDhnorhnoThn5Rcblxu4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6Y4Z+S4Z6K4Z6E4oCL4Z6R4Z+A4Z6P4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6a4Z6Z4Z+I4oCL4Z6W4Z+B4Z6bIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGenOGet+Gek+GetuGekeGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXR0ZXJuX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzQwODk0NzU5NjUwNTA4MDUiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvigIvhnoLhnrzhnprigIvhnpvhn4bhnpPhnrbhn4bigIvhnorhn4Thn4figIvhnp/hn4TigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnoXhn4bhnpPhnr3hnpMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UXG5cbuGeluGfkuGemeGetuGemeGetuGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGej+KAi+GegOGfkuGek+Geu+GehOKAi+GemuGemeGfiOKAi+GeluGfgeGemyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhnpzhnrfhnpPhnrbhnpHhnrjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1NzU1NTcyMDA2MjcxMjg5NDkiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnorhn4Thn4figIvhnp/hn4TigIvigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4figIvigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnoXhn4bhnpPhnr3hnpMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UIOGelOGek+GfkuGekeGetuGelOGfi+KAi+GeluGeuOKAi+GegOGetuGemuKAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GemOGet+Gek+KAi+Geh+GfhOGeguGeh+GfkOGemeKAi+KAi+GeheGfkuGemuGevuGek+KAi+Geh+GetuGehCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhnorhnoQg4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6R4Z+F4oCL4Z6b4Z+G4Z6T4Z624Z+G4Z6K4Z6+4Z6Y4oCL4Z6K4Z684Z6F4oCL4Z6F4Z+B4Z6J4oCL4Z6W4Z644oCL4Z6a4Z+E4Z6E4Z6F4Z6A4Z+S4Z6aIOGeoOGevuGemeKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GeouGfkuGek+GegOGelOGfkuGemuGevuKAi+Gek+GeueGehOKAi+GelOGetuGej+Gfi+GelOGehOGfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQwNTEwMTU5NDMwMzgxOTk5MTAiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnorhn4Thn4figIvhnp/hn4TigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnoXhn4bhnpPhnr3hnpMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UIOGelOGek+GfkuGekeGetuGelOGfi+KAi+GeluGeuOKAi+GegOGetuGemuKAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GemOGet+Gek+KAi+Geh+GfhOGeguGeh+GfkOGemeKAi+KAi+GeheGfkuGemuGevuGek+KAi+Geh+GetuGehCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhnorhnoQg4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6R4Z+F4oCL4Z6b4Z+G4Z6T4Z624Z+G4Z6K4Z6+4Z6Y4oCL4Z6K4Z684Z6F4oCL4Z6F4Z+B4Z6J4oCL4Z6W4Z644oCL4Z6a4Z+E4Z6E4Z6F4Z6A4Z+S4Z6aIOGeoOGevuGemeKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GeouGfkuGek+GegOGelOGfkuGemuGevuKAi+Gek+GeueGehOKAi+GelOGetuGej+Gfi+GelOGehOGfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDcyOTk2MjY5MTQ4NDgzNjM3Ij4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6F4Z+G4Z6T4Z694Z6T4oCLIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhnorhnoThn5Qg4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6R4Z+F4oCL4Z6b4Z+G4Z6T4Z624Z+G4Z6K4Z6+4Z6Y4oCL4Z6K4Z684Z6F4oCL4Z6F4Z+B4Z6J4oCL4Z6W4Z644oCL4Z6a4Z+E4Z6E4Z6F4Z6A4Z+S4Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6F4Z+G4Z6T4Z694Z6TIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhnorhnoThn5Qg4Z6l4Z6h4Z684Z6c4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6T4Z654Z6E4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6R4Z+F4oCL4Z6b4Z+G4Z6T4Z624Z+G4oCL4Z6K4Z6+4Z6Y4oCL4Z6K4Z684Z6F4oCL4Z6F4Z+B4Z6J4oCL4Z6W4Z644oCL4Z6a4Z+E4Z6E4Z6F4Z6A4Z+S4Z6a4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IuGeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GeguGevOGemuKAi+Gem+GfhuGek+GetuGfhuKAi+GeiuGfhOGfh+KAi+Gen+GfhOKAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDhnorhnoThn5Qg4Z6U4Z6T4Z+S4Z6R4Z624Z6U4Z+L4oCL4Z6W4Z644oCL4Z6A4Z624Z6a4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6YIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGeiuGehOKAi+GemOGet+Gek+KAi+Geh+GfhOGeguGeh+GfkOGemSDhnqLhn5LhnpPhnoDigIvhnpPhnrnhnoTigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnp/hn5LhnpPhnr7igIvhnrLhn5LhnpnigIvhnorhn4Thn4figIvhnp/hn4TigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4figIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAg4Z6K4Z+E4Z6Z4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6C4Z6O4Z6T4Z644oCL4Z6i4Z+K4Z644Z6Y4Z+C4Z6b4Z+UXG5cbiDhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhn5LhnorhnoTigIvhnpHhn4Dhno/igIvhnoDhn5LhnpPhnrvhnoTigIvhnprhnpnhn4jigIvhnpbhn4HhnpsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Z6c4Z634Z6T4Z624Z6R4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnoLhnrzhnprigIvhnpvhn4bhnpPhnrbhn4bigIvhnorhn4Thn4figIvigIvhnp/hn4TigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnoXhn4bhnpPhnr3hnpMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UIOGelOGek+GfkuGekeGetuGelOGfi+KAi+GeluGeuOKAi+GegOGetuGemuKAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GemOGet+Gek+KAi+Geh+GfhOGeguGeh+GfkOGemeKAi+KAi+GeheGfkuGemuGevuGek+Geh+GetuGehCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhnorhnoQg4Z6i4Z+S4Z6T4Z6A4oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4oCL4Z6f4Z+S4Z6T4Z6+4oCL4Z6y4Z+S4Z6Z4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6K4Z+E4Z6Z4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6C4Z6O4Z6T4Z644oCL4Z6i4Z+K4Z644Z6Y4Z+C4Z6b4Z+UXG5cbiDhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhn5LhnorhnoTigIvhnpHhn4Dhno/igIvhnoDhn5LhnpPhnrvhnoTigIvhnprhnpnhn4jigIvhnpbhn4HhnpsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Z6c4Z634Z6T4Z624Z6R4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i4Z6b4Z674Z6U4oCL4Z6F4Z+B4Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2FmZV9tZWRpYV92b2x1bWVfd2FybmluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMjQxNjE5Mzk0NzU0NzgwNjYiPiLhnpThnoThn5LhnoDhnr7hnpPigIvhnoDhnpjhn5Lhnprhnrfhno/igIvhnp/hn4bhnqHhn4HhnoTigIvhnoHhnrbhnoTigIvhnpvhnr7igIvhnoDhnpjhn5Lhnprhnrfhno/igIvhnpThnrbhnpPigIvigIvhno7hn4LhnpPhnrbhn4Y/XG7hnp/hn5LhnorhnrbhnpThn4vigIvhnoDhnpjhn5Lhnprhnrfhno/igIvhnp/hn4bhnqHhn4HhnoTigIvhnoHhn5Lhnpbhnp/hn4vigIvhnprhnpnhn4jigIvhnpbhn4HhnpvigIvhnpnhnrzhnprigIvhnqLhnrbhnoXigIvhnrLhn5LhnpnigIvhnoHhnrzhnoXigIvhno/hn5LhnprhnoXhn4DhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250aW51ZV90b19lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjE2MjY0MjczNzIzMTYwNzAyNTgiPiLhnp/hnoThn5LhnoDhno/hn4vigIvhnorhn4ThnpnigIvhnpjhn5Lhnprhnrbhnpjhnorhn4PigIvhnpbhnrjhnpog4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z6+4Z6A4oCL4Z6X4Z624Z6W4oCL4Z6E4Z624Z6Z4Z6f4Z+S4Z6a4Z694Z6b4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9lbmFibGVkIiBtc2dpZD0iMTM4MTk3MjA0ODU2NDU0NzY4NSI+IuGelOGetuGek+KAi+GelOGevuGegOKAi+GemOGekuGfkuGemeGfhOGelOGetuGemeKAi+GehOGetuGemeGen+GfkuGemuGeveGem+KAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9hY2Nlc3NpYmlsaXR5X2NhbmNlbGVkIiBtc2dpZD0iMzgzMzkyMzI1Nzk2NjYzNTY3MyI+IuGelOGetuGek+KAi+GelOGfhOGfh+GelOGehOGfi+KAi+Gel+GetuGeluKAi+GehOGetuGemeGen+GfkuGemuGeveGem+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZXJfc3dpdGNoZWQiIG1zZ2lkPSIzNzY4MDA2NzgzMTY2OTg0NDEwIj4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6U4Z6F4Z+S4Z6F4Z674Z6U4Z+S4Z6U4Z6T4Z+S4Z6TIDx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPiDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvd25lcl9uYW1lIiBtc2dpZD0iMjcxNjc1NTQ2MDM3NjAyODE1NCI+IuGemOGfkuGeheGetuGen+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVycm9yX21lc3NhZ2VfdGl0bGUiIG1zZ2lkPSI0NTEwMzczMDgzMDgyNTAwMTk1Ij4i4Z6A4Z+G4Z6g4Z674Z6fIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX25vX3Jlc3RyaWN0ZWRfYWNjb3VudHMiIG1zZ2lkPSI1NzM5NDYzMjQ5NjczNzI3NzM2Ij4i4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6T4Z+B4Z+H4oCL4Z6Y4Z634Z6T4oCL4Z6C4Z624Z+G4Z6R4Z+S4Z6a4oCL4Z6C4Z6O4Z6T4Z644oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6U4Z+S4Z6a4Z6c4Z6P4Z+S4Z6P4Z634Z6a4Z684Z6U4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6K4Z624Z6A4Z+L4oCL4Z6A4Z6Y4Z+S4Z6a4Z634Z6P4oCL4Z6R4Z+BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX25vdF9mb3VuZCIgbXNnaWQ9IjM0MjkxNDE4NTM0OTg5MjczNzkiPiLhnprhnoDigIvhnpjhnrfhnpPigIvhnoPhnr7hnonigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIsg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6E4oCL4Z6f4Z6A4Z6Y4Z+S4Z6Y4Z6X4Z624Z6W4oCL4Z6T4Z+B4Z+HIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmV2b2tlIiBtc2dpZD0iNTQwNDQ3OTE4NTIyODI3MTU4NiI+IuGeiuGegOGeoOGevOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTAiIG1zZ2lkPSI3ODc1NDI3NDg5NDIwODIxNzkzIj4iSVNPIEEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMSIgbXNnaWQ9IjM3NjA3MzQ0OTkwNTA4NzUzNTYiPiJJU08gQTEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2EyIiBtc2dpZD0iNTk3MzI2NjM3ODAyMDE0NDM4MiI+IklTTyBBMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTMiIG1zZ2lkPSIxMzczNDA3MTA1Njg3MzAwODg0Ij4iSVNPIEEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNCIgbXNnaWQ9IjY2ODk3NzI4MDc5ODI1OTcyNTQiPiJJU08gQTQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E1IiBtc2dpZD0iNTM1MzU0OTY1MjAxNTc0MTA0MCI+IklTTyBBNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTYiIG1zZ2lkPSI4NTg1MDM4MDQ4Njc0OTExOTA3Ij4iSVNPIEE2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNyIgbXNnaWQ9IjY2NDE4MzY3MTY5NjM4MzkxMTkiPiJJU08gQTciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E4IiBtc2dpZD0iNzU3MTEzOTQzNzQ2NTY5MzM1NSI+IklTTyBBOCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTkiIG1zZ2lkPSIxMzc4NDU1ODkxOTU3MTE1MDc5Ij4iSVNPIEE5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMTAiIG1zZ2lkPSIyNDgwNzQ3NDU3NDI5NDc1MzQ0Ij4iSVNPIEExMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjAiIG1zZ2lkPSIzOTY1OTM1MDk3NjYxMTA4MDM5Ij4iSVNPIEIwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMSIgbXNnaWQ9IjI1MDU3NTMyODUwMTAxMTU0MzciPiJJU08gQjEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IyIiBtc2dpZD0iODc2Mzg3NDcwOTg1OTQ1ODQ1MyI+IklTTyBCMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjMiIG1zZ2lkPSI0MjEwNTA2Njg4MTkxNzY0MDc2Ij4iSVNPIEIzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNCIgbXNnaWQ9IjU3NDk0MDQxNjU4ODg1MjYwMzQiPiJJU08gQjQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I1IiBtc2dpZD0iNzY0MDYyNzQxNDYyMTkwNDczMyI+IklTTyBCNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjYiIG1zZ2lkPSI3MzQyOTg4ODY0NzEyNzQ4NTQ0Ij4iSVNPIEI2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNyIgbXNnaWQ9IjUwNjk4NDQwNjUyMzUzODI0MjkiPiJJU08gQjciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I4IiBtc2dpZD0iNzMxNjgxODkyMjI3ODc3OTc3NCI+IklTTyBCOCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjkiIG1zZ2lkPSI1NDE0NzI3MDk0MDI2NTMyMzQxIj4iSVNPIEI5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMTAiIG1zZ2lkPSI1MjUxMjUzNzMxODMyMDQ4MTg1Ij4iSVNPIEIxMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzAiIG1zZ2lkPSI0MDAzMTM4MzQyNjcxOTY0MjE3Ij4iSVNPIEMwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMSIgbXNnaWQ9IjE5MzUxODgwNjMzOTM1NTMwMDgiPiJJU08gQzEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MyIiBtc2dpZD0iMzE5NzMwNzk2OTcxMjA2OTkwNCI+IklTTyBDMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzMiIG1zZ2lkPSI0MzM1ODI2MDg3MzIxOTEzNTA4Ij4iSVNPIEMzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNCIgbXNnaWQ9IjM3NDU2Mzk1OTgyODEwMTUwMDUiPiJJU08gQzQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M1IiBtc2dpZD0iODI2OTQ1Nzc2NTgyMjc5MTAxMyI+IklTTyBDNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzYiIG1zZ2lkPSI1NjY2NjYxMDUyNjAzNDY5MzAiPiJJU08gQzYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M3IiBtc2dpZD0iODY3ODQxMzE4MDc4MjYwODQ5OCI+IklTTyBDNyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzgiIG1zZ2lkPSI4MzkyMzc2MjA2NjI3MDQxNzMwIj4iSVNPIEM4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jOSIgbXNnaWQ9IjkxOTE2MTMzNzIzMjQ4NDU0MDUiPiJJU08gQzkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MxMCIgbXNnaWQ9IjczMjc3MDk2OTkxODQ5MjA4MjIiPiJJU08gQzEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2xldHRlciIgbXNnaWQ9IjQxOTE4MDU2MTU4Mjk0NzI5NTMiPiJMZXR0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfZ3Zybm10X2xldHRlciIgbXNnaWQ9Ijc4NTMzODIxOTI2NDk0MDU1MDciPiLhnpvhnrfhnoHhnrfhno/igIvhnprhnorhn5LhnovhnrbhnpfhnrfhnpThnrbhnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGVnYWwiIG1zZ2lkPSI2Njk3OTgyOTg4MjgzODIzMTUwIj4iTGVnYWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfanVuaW9yX2xlZ2FsIiBtc2dpZD0iMzcyNzc0Mzk2OTkwMjc1ODk0OCI+Ikp1bmlvciBMZWdhbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9sZWRnZXIiIG1zZ2lkPSIyODE4NzE0NjQ4OTY2MDEyMzYiPiJMZWRnZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfdGFibG9pZCIgbXNnaWQ9IjU3NzU5NjY0MTYzMzM1NzgxMjciPiJUYWJsb2lkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id3JpdGVfZmFpbF9yZWFzb25fY2FuY2VsbGVkIiBtc2dpZD0iNzA5MTI1ODM3ODEyMTYyNzYyNCI+IuGelOGetuGek+KAi+GelOGfhOGfh+KAi+GelOGehOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndyaXRlX2ZhaWxfcmVhc29uX2Nhbm5vdF93cml0ZSIgbXNnaWQ9IjgxMzI1MDU0MTc5MzUzMzc3MjQiPiLhnoDhn4bhnqDhnrvhnp/igIvhnoDhn5LhnpPhnrvhnoTigIvhnoDhnrbhnprigIvhnp/hnprhnp/hn4HhnprigIvhnpjhnrbhno/hnrfhnoDhnrYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfcGluIiBtc2dpZD0iMzM5NTk1MzQyMTM2ODQ3NjEwMyI+IuGelOGeieGfkuGeheGevOGem+KAi+KAi+GegOGevOGeiiBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfb2xkX3BpbiIgbXNnaWQ9IjE0NjIyMDYyMjU1MTI5MTA3NTciPiLhnoDhnrzhnoogUElOIOGelOGeheGfkuGeheGeu+GelOGfkuGelOGek+GfkuGekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9uZXdfcGluIiBtc2dpZD0iNTk1OTYwNjY5MTYxOTk1OTE4NCI+IuGegOGevOGeiiBQSU4g4Z6Q4Z+S4Z6Y4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2NvbmZpcm1fcGluIiBtc2dpZD0iODUwMTUyMzgyOTYzMzE0NjIzOSI+IuGelOGeieGfkuGeh+GetuGegOGfi+KAi+GegOGevOGeiiBQSU4g4Z6Q4Z+S4Z6Y4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2NyZWF0ZV9waW4iIG1zZ2lkPSI4MDE3NjAwMDAwMjYzNDUwMzM3Ij4i4Z6U4Z6E4Z+S4Z6A4Z6+4Z6P4oCL4Z6A4Z684Z6KIFBJTiDhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnoDhn4LigIvhnoDhnrbhnprigIvhnorhnrbhnoDhn4vigIvhnoDhnpjhn5Lhnprhnrfhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZXJyb3JfZG9lc250X21hdGNoIiBtc2dpZD0iMjIyNDIxNDE5MDkwNjk5NDU0OCI+IuGegOGevOGeiiBQSU4g4Z6Y4Z634Z6T4oCL4Z6K4Z684Z6F4oCL4Z6C4Z+S4Z6T4Z624Z+UIOGeluGfkuGemeGetuGemeGetuGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGej+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lcnJvcl90b29fc2hvcnQiIG1zZ2lkPSI4MTczOTgyNzU2MjY1Nzc3NzkyIj4i4Z6A4Z684Z6K4oCLIFBJTiDhnoHhn5LhnpvhnrjigIvhnpbhn4HhnoDhn5Qg4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6P4Z+C4oCL4Z6Y4Z624Z6T4oCL4Z6Z4Z+J4Z624Z6E4oCL4Z6g4Z+E4Z6F4oCL4Z6O4Z624Z6f4Z+LIOGfpCDhno/hnr3hn5QiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InJlc3RyX3Bpbl9jb3VudGRvd24iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0ODM1NjM5OTY5NTAzNzI5ODc0Ij4i4Z6b4Z+B4Z6B4oCL4Z6A4Z684Z6K4oCLIFBJTiDhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5Lhnprhnrzhnpzhn5Qg4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6Y4Z+S4Z6K4Z6E4oCL4Z6R4Z+A4Z6P4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6a4Z6Z4Z+I4oCL4Z6W4Z+B4Z6bIOGfoSDhnpzhnrfhnpPhnrbhnpHhnrjhn5QiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjgwMzA2MDczNDMyMjMyODc2NTQiPiLhnpvhn4HhnoHigIvhnoDhnrzhnorigIsgUElOIOGemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGflCDhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhn5LhnorhnoTigIvhnpHhn4Dhno/igIvhnoDhn5LhnpPhnrvhnoTigIvhnprhnpnhn4jigIvhnpbhn4HhnpsgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Z6c4Z634Z6T4Z624Z6R4Z644oCL4Z+UIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0idHJhbnNpZW50X25hdmlnYXRpb25fY29uZmlybWF0aW9uIiBtc2dpZD0iNDkwNzg0NDA0MzYxMTEyMzQyNiI+IuGeouGevOGen+KAi+GeguGfguGemOKAi+GeouGfgeGegOGfkuGemuGehOGfiyDhnorhnr7hnpjhn5LhnpThnrjigIvhnpThnoThn5LhnqDhnrbhnonigIvhnprhnpThnrbhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0cmFuc2llbnRfbmF2aWdhdGlvbl9jb25maXJtYXRpb25fbG9uZyIgbXNnaWQ9IjgwNjE2ODU5MjA1MDgwODY2OTciPiLhnqLhnrzhnp/igIvhnpbhnrjigIvhnoLhn4LhnpjigIvhnqLhn4HhnoDhn5LhnprhnoThn4sg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6a4Z6U4Z624Z6a4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6SIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWtvL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1rby9zdHJpbmdzLnhtbAppbmRleCAxYTBiMmQ5Li40MTQ3YzM5IDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWtvL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMta28vc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IjjsnpDrpqwg7J207IOB7J2YIOyIq+yekCBQVUvrpbwg7J6F66Cl7ZWp64uI64ukLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJTSU0g7Lm065Oc7J2YIFBVS+qwgCDsnqDqsqgg7J6I7Iq164uI64ukLiDsnqDquIjtlbTsoJztlZjroKTrqbQgUFVLIOy9lOuTnOulvCDsnoXroKXtlZjshLjsmpQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iU0lNIOy5tOuTnCDsnqDquIjsnYQg7ZW07KCc7ZWY66Ck66m0IFBVSzLrpbwg7J6F66Cl7ZWY7IS47JqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+IuyLpO2MqO2WiOyKteuLiOuLpC4gU0lNL1JVSU0g7J6g6riI7J2EIOyCrOyaqSDshKTsoJXtlZjshLjsmpQuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+7ZqMIOydtOyDgSDsi6TtjKjtlaAg6rK97JqwIFNJTeydtCDsnqDquYHri4jri6QuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+7ZqMIOydtOyDgSDsi6TtjKjtlaAg6rK97JqwIFNJTeydtCDsnqDquYHri4jri6QuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiLrsJzsi6DsnpAg67KI7Zi4Ijwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiLslbHsnbQgU3VyZmFjZUZsaW5nZXLsnZgg7ZWY7JyEIOyImOykgCDquLDriqXsnYQg7IKs7Jqp7ZWgIOyImCDsnojrj4TroZ0g7ZeI7Jqp7ZWp64uI64ukLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+Iu2UhOugiOyehCDrsoTtjbwg7J296riwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IuyVseydtCDtlITroIjsnoQg67KE7Y287J2YIOuCtOyaqeydhCDsnb3snYQg7IiYIOyeiOuPhOuhnSDtl4jsmqntlanri4jri6QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iSW5wdXRGbGluZ2Vy7JeQIOyVoeyEuOyKpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiLslbHsnbQgSW5wdXRGbGluZ2Vy7J2YIO2VmOychCDsiJjspIAg6riw64ql7J2EIOyCrOyaqe2VmOuPhOuhnSDtlanri4jri6QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJXaS1GaSDrlJTsiqTtlIzroIjsnbQg7ISk7KCVIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i7JWx7J20IFdpLUZpIOuUlOyKpO2UjOugiOydtOulvCDshKTsoJXtlZjqs6Ag7Jew6rKw7ZWY64+E66GdIO2XiOyaqe2VqeuLiOuLpC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+IldpLUZpIOuUlOyKpO2UjOugiOydtCDsoJzslrQiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQg7YKkIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRW50ZXIg7YKkIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4i7JWxIOyEoO2DnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz7snYQo66W8KSDsi6TtlontlaAg7IiYIOyXhuyKteuLiOuLpC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiLqs7XsnKAg64yA7IOBOiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+7JmAKOqzvCkg6rO17JygIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+IuyKrOudvOydtOuUqSDtlbjrk6TsnYQg6ri46rKMIO2EsOy5mO2VmOyEuOyalC4iPC9zdHJpbmc+CkBAIC0xNjQ5LDUgKzE2NTcsMTYgQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NzMwODY4OTIwNzQyOTUyODE3Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz7stIgg7ZuE7JeQIOuLpOyLnCDsi5zrj4TtlZjshLjsmpQuIjwvaXRlbT4KICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+IuuCmOykkeyXkCDri6Tsi5wg7Iuc64+EIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IuyghOyytO2ZlOuptOydhCDsooXro4ztlZjroKTrqbQg7JyE7JeQ7IScIOyVhOuemOuhnCDsiqTsmYDsnbTtlIQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4i7KCE7LK07ZmU66m07J2EIOyiheujjO2VmOugpOuptCDsnITsl5DshJwg7JWE656Y66GcIOyKpOyZgOydtO2UhO2VmOyEuOyalC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IuyZhOujjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IuyLnOqwhCDsm5DtmJUg7Iqs65287J20642UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiLrtoQg7JuQ7ZiVIOyKrOudvOydtOuNlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiLsi5zqsIQg7ISg7YOdIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4i67aEIOyEoO2DnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4i7JuU67OEIOuwlOuRke2MkOyLnSDrgqDsp5wg7ZGc7IucIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4i64WEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2RheSIgbXNnaWQ9Ijc3NzQ3NTk2MDQ3MDE3NzMzMzIiPiLsm5Qv7J28IOyEoO2DnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+IuyXsOuPhCDshKDtg50iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+7J20KOqwgCkg7ISg7YOd65CoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4g7IKt7KCc65CoIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWxhbmQvZGltZW5zLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbGFuZC9kaW1lbnMueG1sCmluZGV4IGRjNTlmNjEuLjY0MGNhMWUgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbGFuZC9kaW1lbnMueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbGFuZC9kaW1lbnMueG1sCkBAIC02MSw2ICs2MSwxMCBAQAogICAgIExhbmRzY2FwZSdzIGxheW91dCBhbGxvd3MgdGhpcyB0byBiZSBzbWFsbGVyIHRoYW4gZm9yIHBvcnRyYWl0LiAtLT4KICAgICA8ZGltZW4gbmFtZT0ia2dfc3F1YXNoZWRfbGF5b3V0X3RocmVzaG9sZCI+NDAwZHA8L2RpbWVuPgogCisgICAgPCEtLSBOZXcgVGltZVBpY2tlciBkaW1lbnNpb25zLiAtLT4KKyAgICA8ZGltZW4gbmFtZT0idGltZXBpY2tlcl9sZWZ0X3NpZGVfd2lkdGgiPjI1MGRpcDwvZGltZW4+CisKICAgICA8IS0tIHdpZHRoIG9mIEltbWVyc2l2ZU1vZGVDb25maXJtYXRpb24gKC0xIGZvciBtYXRjaF9wYXJlbnQpIC0tPgogICAgIDxkaW1lbiBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jbGluZ193aWR0aCI+MzgwZHA8L2RpbWVuPgorCiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbG8tckxBL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKaW5kZXggMDAzYjNmOS4uODE2ZjdmYyAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IuC6nuC6tOC6oeC6peC6sOC6q+C6seC6lCBQVUsg4LqX4Lq14LuI4Lqh4Lq1IDgg4LuC4LqV4LuA4Lql4LqBIOC6q+C6vOC6t+C6q+C6vOC6suC6jeC6geC6p+C7iOC6suC6meC6seC7ieC6mS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4i4LqK4Lq04Lqh4LqB4Lqy4LqU4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LqW4Lq34LqB4Lql4Lqx4Lqt4LqB4LqU4LuJ4Lqn4LqN4Lql4Lqw4Lqr4Lqx4LqUIFBVSy4g4LuD4Lqr4LuJ4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqUIFBVSyDgu4Dgup7gurfgu4jguq3gupvgurvgupTguqXgurHguq3guoHguqHgurHgupkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4i4Lqe4Lq04LqhIFBVSzIg4LuA4Lqe4Lq34LuI4Lqt4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBIFNJTSBjYXJkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+IuC6muC7jeC7iOC6quC6s+C7gOC6peC6seC6lCwg4LuA4Lqb4Lq14LqU4LqZ4LuN4Lqy4LuD4LqK4LuJ4LqB4Lqy4LqZ4Lql4Lqx4Lqt4LqB4LqC4Lqt4LqHIFNJTS9SVUlNLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IuC6l+C7iOC6suC6meC6quC6suC6oeC6suC6lOC6peC6reC6h+C7hOC6lOC7ieC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4LuA4LqX4Lq34LuI4Lqt4LqB4LuI4Lqt4LqZ4LqX4Lq14LuIIFNJTSDguoLguq3guofgupfgu4jgurLgupnguojgurDgupbgurfguoHguqXgurHguq3guoEuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4i4LqX4LuI4Lqy4LqZ4Lqq4Lqy4Lqh4Lqy4LqU4Lql4Lqt4LqH4LuE4LqU4LuJ4Lqt4Lq14LqBIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3guoHgu4jguq3gupngupfgurXgu4ggU0lNIOC6guC6reC6h+C6l+C7iOC6suC6meC6iOC6sOC6luC6t+C6geC6peC6seC6reC6gS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IuC7neC6suC6jeC7gOC6peC6geC6nOC6ueC7iOC7guC6l+C7gOC6guC6u+C7ieC6siI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LqZ4Lqz4LuD4LqK4LuJ4LqE4Lqn4Lqy4Lqh4Lqq4Lqy4Lqh4Lqy4LqU4Lql4Lqw4LqU4Lqx4Lqa4LqV4LuI4LqzIFN1cmZhY2VGbGluZ2VyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4i4Lqt4LuI4Lqy4LqZ4LuA4Lqf4Lqj4Lqh4Lqa4Lqx4Lqa4LuA4Lqf4Lq1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6reC7iOC6suC6meC7gOC6meC6t+C7ieC6reC6q+C6suC6guC6reC6h+C7gOC6n+C6o+C6oeC6muC6seC6muC7gOC6n+C6tS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiLgu4DguoLgurvgu4ngurLgu4DgupbgurTguocgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6meC6s+C7g+C6iuC7ieC6hOC6p+C6suC6oeC6quC6suC6oeC6suC6lCBJbnB1dEZsaW5nZXIg4Lql4Lqw4LqU4Lqx4Lqa4LqV4LuI4LqzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiLgupvgurHguprguoTgu4jgurLguoHgurLgupnguqrgurDgu4HgupTguofgupzgurvgupkgV2lGaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6leC6seC7ieC6h+C6hOC7iOC6siDgu4HguqXgurDgu4Dguorgurfgu4jguq3guqHgupXgu43gu4jguojgu43guqrgurDgu4HgupTguofgupzgurvgupkgV2lGaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+IuC6hOC6p+C6muC6hOC6uOC6oeC6geC6suC6meC6quC6sOC7geC6lOC6hyBXaUZpIjwvc3RyaW5nPgpAQCAtMTExNCw3ICsxMTIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImxvYWRpbmciIG1zZ2lkPSI3OTMzNjgxMjYwMjk2MDIxMTgwIj4i4LqB4Lqz4Lql4Lqx4LqH4LuC4Lqr4Lql4LqULi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY2FwaXRhbF9vbiIgbXNnaWQ9IjE1NDQ2ODI3NTU1MTQ0OTQyOTgiPiLgu4DgupvgurXgupQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjYXBpdGFsX29mZiIgbXNnaWQ9IjY4MTU4NzAzODY5NzI4MDU4MzIiPiLgupvgurTgupQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ3aGljaEFwcGxpY2F0aW9uIiBtc2dpZD0iNDUzMzE4NTk0NzA2NDc3MzM4NiI+IuC7gOC6ruC6seC6lOC6p+C6veC6geC7g+C6q+C7ieC6quC6s+C7gOC6peC6seC6lOC7guC6lOC6jeC7g+C6iuC7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndoaWNoQXBwbGljYXRpb24iIG1zZ2lkPSI0NTMzMTg1OTQ3MDY0NzczMzg2Ij4i4LqU4Lqz4LuA4LqZ4Lq14LqZ4LqB4Lqy4LqZ4LuC4LqU4LqN4LuD4LqK4LuJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2hpY2hIb21lQXBwbGljYXRpb24iIG1zZ2lkPSI0NjE2NDIwMTcyNzI3MzI2NzgyIj4i4LuA4Lql4Lq34Lqt4LqB4LuB4Lqt4Lqx4Lqa4LqvIEhvbWUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbHdheXNVc2UiIG1zZ2lkPSI0NTgzMDE4MzY4MDAwNjEwNDM4Ij4i4LuD4LqK4LuJ4LuC4LqU4LqN4LqE4LuI4Lqy4LuA4Lql4Lq14LuI4Lqh4LqV4Lq74LqZ4Lqq4Lqz4Lql4Lqx4Lqa4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqZ4Lq14LuJLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNsZWFyRGVmYXVsdEhpbnRNc2ciIG1zZ2lkPSIzMjUyNTg0Njg5NTEyMDc3MjU3Ij4i4Lql4Lq24Lqa4Lql4LuJ4Lqy4LqH4LqE4LuI4Lqy4LuA4Lql4Lq14LuI4Lqh4LqV4Lq74LuJ4LqZIOC7g+C6mSDguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLguqXgurDguprgurvgupogJmd0OyDgu4Hguq3gurHguprguq8gJmd0OyDgupTgurLguqfgu4LguqvguqXgupTgu4HguqXgu4nguqcuIjwvc3RyaW5nPgpAQCAtMTQxNCw2ICsxNDIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRW50ZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiLgu4DguqXgurfguq3guoHgu4Hguq3gurHguprguq8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiLguprgu43gu4jigIvguqrgurLigIvguqHgurLgupTigIvgu4DgupvgurXgupQgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiDgu4TgupTgu4kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiLgu4Hguprgu4jguofgupvgurHgupnguoHgurHgupoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4i4LuB4Lqa4LuI4LqH4Lqb4Lqx4LqZ4LuD4Lqr4LuJIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4i4LuA4Lql4Lq34LuI4Lqt4LqZ4Lqa4LuI4Lqt4LqZ4LqW4Lq3IOC7geC6peC7ieC6p+C7geC6leC6sOC6hOC7ieC6suC6h+C7hOC6p+C7iS4iPC9zdHJpbmc+CkBAIC0xNjUwLDQgKzE2NTgsMTUgQEAKICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+IuC6peC6reC6h+C7g+C7neC7iOC6reC6teC6geC6hOC6seC7ieC6h+C7g+C6meC6nuC6suC6jeC6q+C6peC6seC6hy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4i4Lqb4Lqx4LqU4Lql4Lq74LqH4Lqh4Lqy4LqI4Lqy4LqB4LqX4Lqy4LqH4LuA4LqX4Lq04LqH4LuA4Lqe4Lq34LuI4Lqt4Lqt4Lqt4LqB4LqI4Lqy4LqB4LuC4Lud4LqU4LuA4LqV4Lqx4Lqh4Luc4LuJ4Lqy4LqI4LuNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4i4LuB4Lql4LuJ4Lqn4LuGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4i4LuC4LqV4Lud4Lq44LqZ4Lqb4Lqx4Lqa4LqK4Lq74LuI4Lqn4LuC4Lqh4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiLgu4LgupXgu53gurjgupngupvgurHguprgupngurLgupfgurUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4i4LuA4Lql4Lq34Lqt4LqB4oCL4LqK4Lq74LuI4Lqn4oCL4LuC4Lqh4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4i4LuA4Lql4Lq34Lqt4LqB4LqZ4Lqy4oCL4LqX4Lq1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiLgupXgurLgupXgurLguqXgurLguofguqfgurHgupngupfgurXgu4DgupTgurfguq3gupngupvgurUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLguqXgurLguo3guoHgurLgupngupvgurUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IuC7gOC6peC6t+C6reC6geC7gOC6lOC6t+C6reC6mSDgu4HguqXgurAg4Lqn4Lqx4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4i4LuA4Lql4Lq34Lqt4LqB4oCL4Lqb4Lq1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+Ijx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiDgupbgurfguoHgu4DguqXgurfguq3guoHgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiI8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiDgupbgurfguoHguqXgurbguprgu4HguqXgu4nguqciPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbG8vc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWxvL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkMDdhZTYKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWxvL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMTU4OCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJieXRlU2hvcnQiIG1zZ2lkPSI4MzQwOTczODkyNzQyMDE5MTAxIj4iQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtpbG9ieXRlU2hvcnQiIG1zZ2lkPSI1OTczNzg5NzgzNTA0NzcxODc4Ij4iS0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWdhYnl0ZVNob3J0IiBtc2dpZD0iNjM1NTg1MTU3Njc3MDQyODkyMiI+Ik1CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2lnYWJ5dGVTaG9ydCIgbXNnaWQ9IjMyNTk4ODI0NTUyMTIxOTMyMTQiPiJHQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRlcmFieXRlU2hvcnQiIG1zZ2lkPSIyMzE2MTMwMTgxNTkxODY5NjIiPiJUQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBldGFieXRlU2hvcnQiIG1zZ2lkPSI1NjM3ODE2NjgwMTQ0OTkwMjE5Ij4iUEIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaWxlU2l6ZVN1ZmZpeCIgbXNnaWQ9IjkxNjQyOTI3OTE1MDA1MzE5NDkiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRzPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJVTklUIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVudGl0bGVkIiBtc2dpZD0iNDYzODk1Njk1NDg1Mjc4MjU3NiI+IiZsdDvguprgu43gu4jguqHgurXguorgurfgu4gmZ3Q7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXMiIG1zZ2lkPSI3ODk5ODI5NTE2MDQ4ODEzMjM3Ij4i4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXNfdHdvX2RvdHMiIG1zZ2lkPSIxMjI4MDc4OTk0ODY2MDMwNzM2Ij4i4oClIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHlQaG9uZU51bWJlciIgbXNnaWQ9Ijc2OTQwNjMwNDIwNzk2NzY1MTciPiIo4Lqa4LuN4LuI4Lqh4Lq14LuA4Lqa4Lq14LuC4LqX4Lql4Lqw4Lqq4Lqx4LqaKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVua25vd25OYW1lIiBtc2dpZD0iMjI3NzU1NjU0Njc0Mjc0NjUyMiI+Iijguprgu43gu4jguq7gurngu4kpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdFZvaWNlTWFpbEFscGhhVGFnIiBtc2dpZD0iMjY2MDAyMDk5MDA5NzczMzA3NyI+IuC6guC7jeC7ieC6hOC6p+C6suC6oeC6quC6veC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRNc2lzZG5BbHBoYVRhZyIgbXNnaWQ9IjI4NTA4ODk3NTQ5MTk1ODQ2NzQiPiJNU0lTRE4xIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pRXJyb3IiIG1zZ2lkPSI1MTU0NDk5NDU3NzM5MDUyOTA3Ij4i4Lqh4Lq14Lqa4Lqx4LqZ4Lqr4Lqy4LuD4LqZ4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuIIOC6q+C6vOC6t+C6peC6sOC6q+C6seC6lCBNTUkg4Lqa4LuN4LuI4LqW4Lq34LqB4LqV4LuJ4Lqt4LqHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1taUZkbkVycm9yIiBtc2dpZD0iNTIyNDM5ODIxNjM4NTMxNjQ3MSI+IuC6geC6suC6meC6lOC6s+C7gOC6meC6teC6meC6geC6suC6meC6luC6t+C6geC6iOC6s+C6geC6seC6lOC7gOC6m+C6seC6mSDguojgurPguoHgurHgupTgu53gurLguo3gu4DguqXguoHgu4Lgupfguq3guq3guoHgu4Dgupfgurvgu4jgurLgupngurHgu4ngupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUVuYWJsZWQiIG1zZ2lkPSI4MTQ3Mjc4MzQ2NDE0NzE0MzE1Ij4i4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZ4LqW4Lq34LqB4LuA4Lqb4Lq14LqU4LuE4Lqn4LuJ4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VFbmFibGVkRm9yIiBtc2dpZD0iNjg1NjIyODE0MDQ1MzQ3MTA0MSI+IuC6muC7jeC6peC6tOC6geC6suC6meC6luC6t+C6geC7gOC6m+C6teC6lOC7g+C6iuC7ieC6quC6s+C6peC6seC6mjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRGlzYWJsZWQiIG1zZ2lkPSIxOTM3NTUzMjI2NTkyNTE2NDExIj4i4Lqa4LuN4oCL4Lql4Lq04oCL4LqB4Lqy4LqZ4oCL4LuE4LqU4LuJ4oCL4LqW4Lq34LqB4oCL4Lqb4Lq04LqU4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VSZWdpc3RlcmVkIiBtc2dpZD0iNjI3NTAxOTA4MjU5ODEwMjQ5MyI+IuC6geC6suC6meC6peC6u+C6h+C6l+C6sOC6muC6veC6meC6quC6s+C7gOC6peC6seC6lOC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRXJhc2VkIiBtc2dpZD0iMTI4ODU4NDY5NTI5NzIwMDk3MiI+IuC6geC6suC6meC6peC6tuC6muC6quC6u+C6oeC6muC6ueC6meC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZEluY29ycmVjdCIgbXNnaWQ9Ijc2MTIyMDg4Mzk0NTAxMjg3MTUiPiLguqXgurDguqvgurHgupTgupzgu4jgurLgupnguprgu43gu4jgupbgurfguoHgupXgu4nguq3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtbWlDb21wbGV0ZSIgbXNnaWQ9IjgyMzI1Mjc0OTU0MTE2OTgzNTkiPiJNTUkg4Lqq4Lqz4LuA4Lql4Lqx4LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhZFBpbiIgbXNnaWQ9IjkwMTUyNzc2NDU1NDY3MTAwMTQiPiLguqXgurDguqvgurHgupQgUElOIOC7gOC6geC6u+C7iOC6suC6l+C6teC7iOC6l+C7iOC6suC6meC6nuC6tOC6oeC6meC6seC7ieC6meC6muC7jeC7iOC6luC6t+C6geC6leC7ieC6reC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWRQdWsiIG1zZ2lkPSI1NDg3MjU3NjQ3MDgxMTMyMjAxIj4i4Lql4Lqw4Lqr4Lqx4LqUIFBVSyDgupfgurXgu4jgupfgu4jgurLgupngup7gurTguqHgupngurHgu4ngupnguprgu43gu4jgupbgurfguoHgupXgu4nguq3guocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWlzbWF0Y2hQaW4iIG1zZ2lkPSI2MDkzNzkwNTQ0OTY4NjM0MTkiPiLguqXgurDguqvgurHgupQgUElOIOC6l+C6teC7iOC6l+C7iOC6suC6meC6nuC6tOC6oeC7hOC6m+C6meC6seC7ieC6meC6muC7jeC7iOC6geC6u+C6h+C6geC6seC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUGluIiBtc2dpZD0iMzg1MDAxODQ0NTE4NzQ3NTM3NyI+IuC6nuC6tOC6oeC6peC6sOC6q+C6seC6lCBQSU4g4LqX4Lq14LuI4Lqh4Lq1IDQg4Lqr4LqyIDgg4LuC4LqV4LuA4Lql4LqBLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4i4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqUIFBVSyDgupfgurXgu4jguqHgurUgOCDgu4LgupXgu4DguqXguoEg4Lqr4Lq84Lq34Lqr4Lq84Lqy4LqN4LqB4Lqn4LuI4Lqy4LqZ4Lqx4LuJ4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiLguorgurTguqHguoHgurLgupTguoLguq3guofgupfgu4jgurLgupngupbgurfguoHguqXgurHguq3guoHgupTgu4nguqfguo3guqXgurDguqvgurHgupQgUFVLLiDgu4Pguqvgu4ngup7gurTguqHguqXgurDguqvgurHgupQgUFVLIOC7gOC6nuC6t+C7iOC6reC6m+C6u+C6lOC6peC6seC6reC6geC6oeC6seC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiLgup7gurTguqEgUFVLMiDgu4Dgup7gurfgu4jguq3gupvgurvgupTguqXgurHguq3guoEgU0lNIGNhcmQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiLgu53gurLguo3gu4DguqXguoHgupzgurngu4jgu4Lgupfgu4DguoLgurvgu4ngurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbGlyTW1pIiBtc2dpZD0iNzc4NDY3MzY3MzQ0NjgzMzA5MSI+IuC7neC6suC6jeC7gOC6peC6geC6nOC6ueC7iOC7guC6l+C6reC6reC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNmTW1pIiBtc2dpZD0iNTEyMzIxODk4OTE0MTU3MzUxNSI+IuC6geC6suC6meC7guC6reC6meC6quC6suC6jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkN3TW1pIiBtc2dpZD0iOTEyOTY3ODA1Njc5NTAxNjg2NyI+IuC6quC6suC6jeC6iuC7ieC6reC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkJhTW1pIiBtc2dpZD0iNDU1MTkzMDY3OTI2NzcwNTgxIj4i4LqB4Lqy4LqZ4Lql4Lqw4LqH4Lqx4Lqa4LqB4Lqy4LqZ4LuC4LqXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUHdkTW1pIiBtc2dpZD0iNzA0MzcxNTY4NzkwNTI1NDE5OSI+IuC6geC6suC6meC6m+C7iOC6veC6meC6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlBpbk1taSIgbXNnaWQ9IjMxMTMxMTc3ODAzNjExOTAzMDQiPiLguoHgurLgupngupvgu4jgur3gupngu4HgupvguocgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ25pcE1taSIgbXNnaWQ9IjMxMTA1MzQ2ODA1NTc4NTcxNjIiPiLguqrgurDgu4HgupTguofgu53gurLguo3gu4DguqXguoHgupfgurXgu4jgu4LgupciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbmlyTW1pIiBtc2dpZD0iMzA2MjEwMjEyMTQzMDU0ODczMSI+IuC7gOC6muC6teC7guC6l+C6l+C6teC7iOC6luC6t+C6geC6iOC6s+C6geC6seC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlRocmVlV0NNbWkiIG1zZ2lkPSI5MDUxMDQ3MTcwMzIxMTkwMzY4Ij4i4LqB4Lqy4LqZ4LuC4LqX4Lqq4Lqy4Lqh4Lqq4Lqy4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUnVhY01taSIgbXNnaWQ9Ijc4Mjc4ODc0NTkxMzgzMDg4ODYiPiLgupvgurDgupXgurTgu4DguqrgupTguqrgurLguo3gupfgurXgu4jguprgu43gu4jgupXgu4nguq3guofguoHgurLgupnguq7gurHgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbmRNbWkiIG1zZ2lkPSIzMTE2NDQ2MjM3MDgxNTc1ODA4Ij4i4LqB4Lqy4LqZ4Lqq4Lq74LuI4LqH4Lud4Lqy4LqN4LuA4Lql4LqB4LqX4Lq14LuI4LuC4LqXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iRG5kTW1pIiBtc2dpZD0iMTI2NTQ3ODkzMjQxODMzNDMzMSI+IuC6q+C7ieC6suC6oeC6peC6u+C6muC6geC6p+C6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T25OZXh0Q2FsbE9uIiBtc2dpZD0iNDI5NDE1NDA5MTQ1NzgxOTIzIj4i4Lud4Lqy4LqN4LuA4Lql4LqB4Lqc4Lq54LuI4LuC4LqX4LqW4Lq34LqB4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4LuA4Lql4Lq14LuI4Lqh4LqV4Lq74LuJ4LqZ4LuD4Lqr4LuJ4LqW4Lq34LqB4LqI4Lqz4LqB4Lqx4LqULiDguoHgurLgupngu4LgupfguoTgurHgu4nguofgupXgu43gu4jgu4Tgups6IOC6luC6t+C6geC6iOC6s+C6geC6seC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T25OZXh0Q2FsbE9mZiIgbXNnaWQ9IjMwOTI5MTgwMDYwNzc4NjQ2MjQiPiLgu53gurLguo3gu4DguqXguoHgupzgurngu4jgu4Lgupcg4LuE4LqU4LuJ4Lqu4Lqx4Lqa4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4LuA4Lql4Lq14LuI4Lqh4LqV4Lq74LuJ4LqZ4LuA4Lqb4Lqx4LqZIOC6luC6t+C6geC6iOC6s+C6geC6seC6lC4g4LqB4Lqy4LqZ4LuC4LqX4LqE4Lqx4LuJ4LqH4LqV4LuN4LuI4LuE4LqbOiDguprgu43gu4jgupbgurfguoHguojgurPguoHgurHgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPZmZOZXh0Q2FsbE9uIiBtc2dpZD0iNjE3OTQyNTE4Mjg1NjQxODQ2NSI+IkNhbGxlciBJRCDgu4LgupTguo3gu4DguqXgurXgu4jguqHgupXgurvgu4ngupngupbgurfguoHgupvgurHguprgu4Pguqvgu4nguprgu43gu4jguqHgurXguoHgurLgupngupvgurTgupTguoHgurHgu4ngupkuIOC6geC6suC6meC7guC6l+C6leC7jeC7iOC7hOC6mzrgupvgurTgupTguoHgurHgu4ngupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSRGVmYXVsdE9mZk5leHRDYWxsT2ZmIiBtc2dpZD0iMjU2Nzk5ODYzMzEyNDQwODU1MiI+IuC7neC6suC6jeC7gOC6peC6geC6nOC6ueC7iOC7guC6lyDgu4TgupTgu4nguq7gurHguprguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLgu4DguqXgurXgu4jguqHgupXgurvgu4ngupngu4DgupvgurHgupkg4Lqa4LuN4LuI4LqW4Lq34LqB4LqI4Lqz4LqB4Lqx4LqULiDguoHgurLgupngu4LgupfguoTgurHgu4nguofgupXgu43gu4jgu4Tgups6IOC6muC7jeC7iOC6luC6t+C6geC6iOC6s+C6geC6seC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlTm90UHJvdmlzaW9uZWQiIG1zZ2lkPSI4NjE0ODMwMTgwNTA4Njg2NjY2Ij4i4Lqa4LuN4LuI4LuE4LqU4LuJ4LuA4Lqb4Lq14LqU4LuD4LqK4LuJ4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJQZXJtYW5lbnQiIG1zZ2lkPSIzMzc3MzcxMTQ1OTI2ODM1NjcxIj4i4LqX4LuI4Lqy4LqZ4Lqa4LuN4LuI4Lqq4Lqy4Lqh4Lqy4LqU4Lqb4LuI4Lq94LqZ4LuB4Lqb4LqH4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4LqyIENhbGxlciBJRCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRDaGFuZ2VkVGl0bGUiIG1zZ2lkPSI1NTkyMTg5Mzk4OTU2MTg3NDk4Ij4i4Lqb4LuI4Lq94LqZ4LqB4Lqy4LqZ4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqH4LqX4Lq14LuI4LqW4Lq34LqB4LqI4Lqz4LqB4Lqx4LqU4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uRGF0YSIgbXNnaWQ9Ijg2NTM3OTQ3ODQ2OTAwNjU1NDAiPiLguprgu43guqXgurTguoHgurLgupnguoLgu43gu4nguqHgurngupngupbgurfguoHguprguqXgurHguq3guoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uRW1lcmdlbmN5IiBtc2dpZD0iNjU4MTE2Mzc3OTA3MjgzMzY2NSI+IuC6muC7jeC6peC6tOC6geC6suC6meC6quC6uOC6geC7gOC6quC6teC6meC6luC6t+C6geC6muC6peC6seC6reC6gS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25Ob3JtYWwiIG1zZ2lkPSI0OTUzODY3MDExMzg5NzUwNjczIj4i4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZ4LqB4Lqy4LqZ4LuC4LqX4LqW4Lq34LqB4Lqb4Lq04LqU4LqB4Lqx4LuJ4LqZ4LuE4Lqn4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkFsbFZvaWNlIiBtc2dpZD0iMzM5Njk2MzY1MjEwODE1MTI2MCI+IuC6muC7jeC6peC6tOC6geC6suC6meC6quC6veC6h+C6l+C6seC6h+C7neC6u+C6lOC6luC6t+C6geC6muC6peC6seC6reC6gS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25TbXMiIG1zZ2lkPSI4MzE0MzUyMzI3NDYxNjM4ODk3Ij4i4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZIFNNUyDgupbgurfguoHguprguqXgurHguq3guoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VEYXRhIiBtc2dpZD0iOTk2NjM2NDg3MTA2MTcxMzIwIj4i4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZIOC6guC7jeC7ieC6oeC6ueC6mS/guqrgur3guocg4LqW4Lq34LqB4Lqa4Lql4Lqx4Lqt4LqBLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblZvaWNlU21zIiBtc2dpZD0iMTg4ODU4ODE1Mjc5MjAyMzg3MyI+IuC6muC7jeC6peC6tOC6geC6suC6mSDguqrgur3guocvU01TIOC6luC6t+C6geC6muC6peC6seC6reC6gS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25BbGwiIG1zZ2lkPSI1NjQzMDI4MjY0NDY2MDkyODIxIj4i4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZIOC6geC6suC6meC7guC6ly/guq3gurTgupngu4DgupXgurXgu4DgupngurHgupQvU01TIOC6luC6t+C6geC6m+C6tOC6lOC6geC6seC7ieC6meC7hOC6p+C7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NWb2ljZSIgbXNnaWQ9IjEyNTgzOTM4MTIzMzUyNTgwMTkiPiLguqrgur3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhIiBtc2dpZD0iODcyNDU2NzgyMDc3OTM3ODkzIj4i4LqC4LuN4LuJ4Lqh4Lq54LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRkFYIiBtc2dpZD0iNTU2NjYyNDk5ODg0MDQ4NjQ3NSI+IuC7geC6n+C6seC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1NNUyIgbXNnaWQ9IjIwMTU0NjAzNzM3MDE1Mjc0ODkiPiJTTVMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhQXN5bmMiIG1zZ2lkPSI0NTIzNDU0NzgzNDk4NTUxNDY4Ij4i4Lqa4LuN4LuI4LqB4Lq74LqH4LqB4Lqx4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRGF0YVN5bmMiIG1zZ2lkPSI3NTMwMDAwNTE5NjQ2MDU0Nzc2Ij4i4LqK4Lq04LuJ4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzUGFja2V0IiBtc2dpZD0iNjk5MTAwNjU1Nzk5MzQyMzQ1MyI+IuC7geC6nuC6seC6geC7gOC6geC6seC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1BBRCIgbXNnaWQ9IjMyMzUyNTkwODU2NDgyNzEwMzciPiJQQUQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDAiIG1zZ2lkPSI3MTcwMzM1NDcyMTk4Njk0OTQ1Ij4i4LuC4LqV4Lqa4Lqt4LqB4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LqB4Lqx4Lqa4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqN4Lqe4Lqy4LqN4LqZ4Lqt4LqB4LuA4Lqb4Lq14LqU4Lqi4Lq54LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxIiBtc2dpZD0iNTMxNDg2MTUxOTc1MjUzODkyMiI+IuC7guC6leC6muC6reC6geC6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6geC6seC6muC7gOC6hOC6t+C6reC6guC7iOC6suC6jeC6nuC6suC6jeC6meC6reC6geC6m+C6tOC6lOC6ouC6ueC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MiIgbXNnaWQ9Ijg5Njk5MjkwNDkwODEyNjgxMTUiPiLgu4LgupXguprguq3guoHguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4jguoHgurHguprgu4DguoTgurfguq3guoLgu4jgurLguo3gup7gurLguo3gupnguq3guoHguoHgurDgup7gurTgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDMiIG1zZ2lkPSI1MTQ4MjU1MDI3MDQzOTQzMzE3Ij4i4Lqi4Lq54LuI4LqZ4Lqt4LqB4LuA4LqC4LqU4LuD4LqB4LuJ4LqE4Lq94LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ0IiBtc2dpZD0iODgwODQ1NjY4MjU1MDc5NjUzMCI+IuC6lOC7ieC6suC6meC6meC6reC6geC6guC6reC6h+C6reC6suC6hOC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NSIgbXNnaWQ9Ijc2MDQwNjMyNTI4NTAzNTQzNTAiPiLgu4LguqPguqHguqHgurTguocgLSDguqXgurDguprgurvguprgupfgurXgu4jgupXgu4nguq3guofguoHgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDYiIG1zZ2lkPSIyMDU5NDQwODI1NzgyODcxNTEzIj4i4LuC4Lqj4Lqh4Lqh4Lq04LqHIC0g4Lql4Lqw4Lqa4Lq74Lqa4LqX4Lq14LuI4LuD4LqK4LuJ4LuE4LqU4LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ3IiBtc2dpZD0iNzExMjA3ODcyNDA5NzIzMzYwNSI+IuC7guC6o+C6oeC6oeC6tOC6hyAtIOC6ruC6uOC7ieC6meC6quC7iOC6p+C6meC6nuC6seC6meC6l+C6sOC6oeC6tOC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0OCIgbXNnaWQ9IjU5ODk1Njk3Nzg2MDQwODkyOTEiPiLgu4LguqPguqHguqHgurTguocgLSDguq7gurjgu4ngupnguqrgu4jguqfgupngup7guqPgurXguqHgur3guqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDkiIG1zZ2lkPSI3OTY5Mjk2ODExMzU1MTUyNDkxIj4i4LuC4Lqj4Lqh4Lqh4Lq04LqHIC0g4Lqf4Lqx4LqH4LqK4Lqx4LqZ4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZ4LuA4LqV4Lqx4Lqh4Lqu4Lq54Lqa4LuB4Lqa4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxMCIgbXNnaWQ9IjM5OTI5MDY5OTk4MTUzMTY0MTciPiLgu4LguqPguqHguqHgurTguocgLSDgup/gurHguofguorgurHgupnguprgu43guqXgurTguoHgurLgupnguprgurLguofguqrgu4jguqfgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDExIiBtc2dpZD0iNDE1NDQ3Njg1NDQyNjkyMDk3MCI+IuC7gOC6m+C6teC6lOC7guC6o+C6oeC6oeC6tOC6h+C7geC6muC6meC7gOC6meC6tSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MTIiIG1zZ2lkPSIxMTg5MDcxMTE5OTkyNzI2MzIwIj4i4Lqb4Lq04LqU4LuC4Lqj4Lqh4Lqh4Lq04LqH4LuB4Lqa4LqZ4LuA4LqZ4Lq1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHRTZWFyY2hpbmciIG1zZ2lkPSI4MzYwMTQxODg1OTcyMjc5OTYzIj4i4LqK4Lqt4LqB4Lqr4Lqy4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZU5vdEZvcndhcmRlZCIgbXNnaWQ9IjE2ODM2ODU4ODM4NDEyNzI1NjAiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjog4Lqa4LuN4LuI4LqW4Lq34LqB4Lqq4Lq74LuI4LqH4LqV4LuN4LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZUZvcndhcmRlZCIgbXNnaWQ9IjEzMDI5MjIxMTc0OTg1OTA1MjEiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IkRJQUxJTkdfTlVNQkVSIj57MX08L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZUZvcndhcmRlZFRpbWUiIG1zZ2lkPSI5MjA2MjUxNzM2NTI3MDg1MjU2Ij4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz46IDx4bGlmZjpnIGlkPSJESUFMSU5HX05VTUJFUiI+ezF9PC94bGlmZjpnPiDguqvgurzgurHguofguojgurLguoEgPHhsaWZmOmcgaWQ9IlRJTUVfREVMQVkiPnsyfTwveGxpZmY6Zz4g4Lqn4Lq04LqZ4Lqy4LqX4Lq1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZVJlZ2lzdGVyZWQiIG1zZ2lkPSI1MDczMjM3ODI3NjIwMTY2Mjg1Ij4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz46IOC6muC7jeC7iOC6luC6t+C6geC6quC6u+C7iOC6h+C6leC7jeC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVSZWdpc3RlcmVkVGltZSIgbXNnaWQ9IjY3ODE2MjE5NjQzMjA2MzUxNzIiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjog4Lqa4LuN4LuI4LqW4Lq34LqB4Lqq4Lq74LuI4LqH4LqV4LuN4LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmNDb21wbGV0ZSIgbXNnaWQ9IjMxMTg4NDgyMzA5NjY4ODY1NzUiPiLguqXgurDguqvgurHgupTguoTgurjgupnguqrgurvguqHguprgurHgupTguqrgurPgu4DguqXgurHgupTgu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmNFcnJvciIgbXNnaWQ9IjMzMjc1NjAxMjY1ODg1MDA3NzciPiLgu4DguoHgurXgupTguprgurHgupnguqvgurLguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4gg4Lqr4Lq84Lq34Lql4Lqw4Lqr4Lqx4LqU4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4Lqa4LuN4LuI4LqW4Lq34LqB4LqV4LuJ4Lqt4LqHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvck9rIiBtc2dpZD0iMTE5MTkxOTM3ODA4MzQ3MjIwNCI+IuC6leC6u+C6geC6peC6u+C6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvciIgbXNnaWQ9Ijc5NTYzOTI1MTExNDY2OTg1MjIiPiLguqHgurXguoLgu43gu4ngupzgurTgupTgup7gurLgupTgupfgurLguofgu4DguoTgurfguq3guoLgu4jgurLguo0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yTG9va3VwIiBtc2dpZD0iNDcxMTY4NzQ1NjExMTk2MzE2MyI+IuC6muC7jeC7iOC6nuC6u+C6miBVUkwuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVW5zdXBwb3J0ZWRBdXRoU2NoZW1lIiBtc2dpZD0iNjI5OTk4MDI4MDQ0MjA3Njc5OSI+IuC6muC7jeC7iOC6ruC6reC6h+C6ruC6seC6muC6ruC6ueC6muC7geC6muC6muC6geC6suC6meC6nuC6tOC6quC6ueC6lOC6ouC6t+C6meC6ouC6seC6meC6guC6reC6h+C7gOC6p+C6seC6muC7hOC6ii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JBdXRoIiBtc2dpZD0iMTQzNTA2NTYyOTQzODA0NDUzNCI+IuC6muC7jeC7iOC6quC6suC6oeC6suC6lOC6nuC6tOC6quC6ueC6lOC6ouC6t+C6meC6ouC6seC6meC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JQcm94eUF1dGgiIG1zZ2lkPSIxNzg4MjA3MDEwNTU5MDgxMzMxIj4i4LqB4Lqy4LqZ4Lqe4Lq04Lqq4Lq54LqU4Lqi4Lq34LqZ4Lqi4Lqx4LqZ4Lqc4LuI4Lqy4LqZ4LuA4LqK4Lq14Lqa4LuA4Lqn4Lq1IFByb3h5IOC6muC7jeC7iOC6quC6s+C7gOC6peC6seC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JDb25uZWN0IiBtc2dpZD0iODcxNDI3MzIzNjM2NDY0MDU0OSI+IuC6muC7jeC7iOC6quC6suC6oeC6suC6lOC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6geC6seC6muC7gOC6iuC6teC6muC7gOC6p+C6teC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JJTyIgbXNnaWQ9IjIzNDA1NTgxOTc0ODkzMDIxODgiPiLguprgu43gu4jguqrgurLguqHgurLgupTguqrgurfgu4jguqrgurLgupnguoHgurHguprgu4DguorgurXguprgu4DguqfgurXgu4TgupTgu4kuIOC6geC6sOC6peC6uOC6meC6suC6peC6reC6h+C7g+C7neC7iOC7g+C6meC6nuC6suC6jeC6q+C6vOC6seC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JUaW1lb3V0IiBtc2dpZD0iNDc0MzQwMzcwMzc2Mjg4Mzk1NCI+IuC7neC6u+C6lOC7gOC6p+C6peC6suC6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6q+C6suC7gOC6iuC6teC6muC7gOC6p+C6tS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JSZWRpcmVjdExvb3AiIG1zZ2lkPSI4Njc5NTk2MDkwMzkyNzc5NTE2Ij4i4Luc4LuJ4Lqy4LqZ4Lq14LuJ4Lqh4Lq14LqB4Lqy4LqZ4Lqb4LuI4Lq94LqZ4LuA4Lqq4Lqx4LuJ4LqZ4LqX4Lqy4LqH4LuA4LqK4Lq14Lqa4LuA4Lqn4Lq14Lqr4Lq84Lqy4LqN4LuA4LqB4Lq14LqZ4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclVuc3VwcG9ydGVkU2NoZW1lIiBtc2dpZD0iNTAxNTczMDgxMjkwNjE5MjIwOCI+IuC6muC7jeC7iOC6ruC6reC6h+C6ruC6seC6muC7guC6m+C6o+C7guC6leC6hOC6reC6meC6lOC6seC7iOC6h+C6geC7iOC6suC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGYWlsZWRTc2xIYW5kc2hha2UiIG1zZ2lkPSI5NjU0OTYwNjAwMDY1ODY0MSI+IuC6muC7jeC7iOC6quC6suC6oeC6suC6lOC7gOC6m+C6teC6lOC7g+C6iuC7ieC6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6l+C6teC7iOC6m+C6reC6lOC7hOC6nuC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JCYWRVcmwiIG1zZ2lkPSIzNjM2OTI5NzIyNzI4ODgxOTcyIj4i4Lqa4LuN4LuI4Lqq4Lqy4Lqh4Lqy4LqU4LuA4Lqb4Lq14LqU4Luc4LuJ4Lqy4LuA4Lqn4Lqx4Lqa4LuE4LqU4LuJ4LuA4LqZ4Lq34LuI4Lqt4LqH4LqI4Lqy4LqBIFVSTCDguprgu43gu4jgupbgurfguoHgupXgu4nguq3guocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yRmlsZSIgbXNnaWQ9IjIxNzA3ODg1MTUwNTI1NTg2NzYiPiLguprgu43gu4jguqrgurLguqHgurLgupTgu4DguoLgurvgu4ngurLgu4DgupbgurTguofgu4Tgup/guqXgu4zgu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yRmlsZU5vdEZvdW5kIiBtc2dpZD0iNjIwMzg1NjYxMjA0MjY1NTA4NCI+IuC6muC7jeC7iOC6nuC6u+C6muC7hOC6n+C6peC7jOC6l+C6teC7iOC6ruC7ieC6reC6h+C6guC7jS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JUb29NYW55UmVxdWVzdHMiIG1zZ2lkPSIxMjM1Mzk2OTI3MDg3MTg4MjUzIj4i4Lqh4Lq14LqB4Lqy4LqZ4Lqu4LuJ4Lqt4LqH4LqC4LuN4Lqr4Lq84Lqy4LqN4LuA4LqB4Lq14LqZ4LuE4LqbLCDguoHgurDguqXgurjgupngurLguqXguq3guofgu4Pgu53gu4jgup7gurLguo3guqvgurzgurHguocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODk2NzcxMDAyNTAzNjE2MzgyMiI+IuC6geC6suC6meC7gOC6guC6u+C7ieC6suC6quC6ueC7iOC6peC6sOC6muC6u+C6muC6guC6reC6hyA8eGxpZmY6ZyBpZD0iQUNDT1VOVCI+JTEkczwveGxpZmY6Zz4g4Lqc4Lq04LqU4Lqe4Lqy4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VTeW5jIiBtc2dpZD0iODM1MzUyMzA2MDI2OTMzNTY2NyI+IuC6geC6suC6meC6iuC6tOC7ieC6h+C6guC7jeC7ieC6oeC6ueC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRTZXJ2aWNlU3luY05vdGlmaWNhdGlvblRpdGxlIiBtc2dpZD0iMzk3NzQzMzQ5MTkxOTAxNDU4Ij4i4LqK4Lq04LuJ4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VUb29NYW55RGVsZXRlc05vdGlmaWNhdGlvbkRlc2MiIG1zZ2lkPSI4MTAwOTgxNDM1MDgwNjk2NDMxIj4i4Lqh4Lq14LqB4Lqy4LqZ4Lql4Lq24LqaIDx4bGlmZjpnIGlkPSJDT05URU5UX1RZUEUiPiVzPC94bGlmZjpnPiDguqvgurzgurLguo3gu4DguoHgurXgupngu4TgupsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X21lbW9yeSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjQ5NDAxOTIzNDEwMjE1NDg5NiI+IuC6nuC6t+C7ieC6meC6l+C6teC7iOC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC7g+C6meC7geC6l+C6seC6muC7gOC6peC6seC6lOC7gOC6leC6seC6oS4g4Lql4Lq24Lqa4Lqa4Lqy4LqH4LuE4Lqf4Lql4LuM4Lqt4Lqt4LqB4LuA4Lqe4Lq34LuI4Lqt4LuA4Lqe4Lq14LuI4Lqh4Lqe4Lq34LuJ4LqZ4LqX4Lq14LuI4Lqr4Lqn4LuI4Lqy4LqHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxvd19tZW1vcnkiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDc1OTk5Mjg2NjgwMDAwNTQxIj4i4Lqe4Lq34LuJ4LqZ4LqX4Lq14LuI4LuD4LqZ4LuC4LqX4Lql4Lqw4Lqq4Lqx4Lqa4LuA4LqV4Lqx4Lqh4LuB4Lql4LuJ4LqnLiDguoHgurDguqXgurjgupngurLguqXgurbguprguprgurLguofgu4Tgup/guqXgu4zguq3guq3guoHgu4Dgup7gurfgu4jguq3gu4Dgup7gurXgu4jguqHgup7gurfgu4ngupngupfgurXgu4jguqvguqfgu4jgurLguocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWUiIG1zZ2lkPSI2NTQ1Njk2MDA3NjMxNDA0MjkyIj4i4LqC4LuJ4Lqy4Lqe4Lqw4LuA4LqI4Lq74LuJ4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfZGlhbG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTQ1MzUxNDIwODY1MjAyODUzIj4i4LuC4LqV4LuA4Lql4Lq34Lqt4LqB4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfZGlhbG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTMxOTkxOTA3NTQ2Mzk4ODYzOCI+IuC7guC6leC7gOC6peC6t+C6reC6geC7guC6l+C6peC6sOC6quC6seC6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlIiBtc2dpZD0iNzE2NzcwMzM4OTgwMjYxODY2MyI+IuC7guC7neC6lOC6m+C6tOC6lOC6quC6veC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InR1cm5fb25fcmFkaW8iIG1zZ2lkPSIzOTEyNzkzMDkyMzM5OTYyMzcxIj4i4LuA4Lqb4Lq14LqU4Lql4Lqw4Lqa4Lq74Lqa4LuE4Lqu4LuJ4Lqq4Lqy4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHVybl9vZmZfcmFkaW8iIG1zZ2lkPSI4MTk4Nzg0OTQ5OTg3MDYyMzQ2Ij4i4Lqb4Lq04LqUIHdpcmVsZXNzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2xvY2siIG1zZ2lkPSI3OTkwOTQ2NTU0OTYwOTgxNTMiPiLguqXgurHguq3guoHgu5zgu4ngurLguojgu40iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3dlcl9vZmYiIG1zZ2lkPSI0MjY2NjE0MTA3NDEyODY1MDQ4Ij4i4Lqb4Lq04LqU4LuA4LqE4Lq34LuI4Lqt4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfc2lsZW50IiBtc2dpZD0iMzE5Mjk4MTYzMDE4NDczMDc4Ij4i4Lqb4Lq04LqU4Lqq4Lq94LqH4Lqj4Lq04LqH4LuC4LqX4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfdmlicmF0ZSIgbXNnaWQ9IjcwNzIwNDMzODg1ODE1NTEzOTUiPiLguqrgurHgu4jgupngup7gu4nguq3guqHguqrgur3guofguqPgurTguofgu4LgupfgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaWxlbnRfbW9kZV9yaW5nIiBtc2dpZD0iODU5MjI0MTgxNjE5NDA3NDM1MyI+IuC7gOC6m+C6teC6lOC6quC6veC6h+C7guC6l+C7gOC6guC6u+C7ieC6suC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX3Byb2dyZXNzIiBtc2dpZD0iMjI4MTA3OTI1NzMyOTk4MTIwMyI+IuC6geC6s+C6peC6seC6h+C6m+C6tOC6lOC6peC6u+C6hy4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm0iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMzODU3NDUxNzk1NTU3MzE0NzAiPiLgu4HgupfgurHguprgu4DguqXgurHgupTguoLguq3guofgupfgu4jgurLgupnguojgurDgupbgurfguoHgupvgurTgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2h1dGRvd25fY29uZmlybSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY0OTc5MjE3NTI0MjgyMTM1MyI+IuC7guC6l+C6peC6sOC6quC6seC6muC6guC6reC6h+C6l+C7iOC6suC6meC6iOC6sOC6luC6t+C6geC6m+C6tOC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9jb25maXJtX3F1ZXN0aW9uIiBtc2dpZD0iMjkwNjU0NDc2ODg4MTEzNjE4MyI+IuC6l+C7iOC6suC6meC6leC7ieC6reC6h+C6geC6suC6meC6l+C6teC7iOC6iOC6sOC6m+C6tOC6lOC6muC7jeC7iD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWJvb3Rfc2FmZW1vZGVfdGl0bGUiIG1zZ2lkPSI3MDU0NTA5OTE0NTAwMTQwMzYxIj4i4Lqj4Lq14Lqa4Lq54LqU4LuA4LqC4Lq74LuJ4LqyIHNhZmUgbW9kZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYm9vdF9zYWZlbW9kZV9jb25maXJtIiBtc2dpZD0iNTUyOTM5NDQ1MDI3ODQ2NjgiPiLgupfgu4jgurLgupngupXgu4nguq3guofguoHgurLgupnguqPgurXguprgurngupTgu4DguoLgurvgu4ngurIgc2FmZSBtb2RlIOC6q+C6vOC6t+C6muC7jeC7iD8g4LqZ4Lq14LuJ4LqI4Lqw4LuA4Lqb4Lqx4LqZ4LqB4Lqy4LqZ4Lqb4Lq04LqU4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqC4Lqt4LqH4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZIOC6iOC6suC6geC6nuC6suC6geC6quC7iOC6p+C6meC6l+C6teC6quC6suC6oeC6l+C6seC6h+C7neC6u+C6lOC6l+C6teC7iOC6l+C7iOC6suC6meC7hOC6lOC7ieC6leC6tOC6lOC6leC6seC7ieC6h+C7hOC6p+C7iS4g4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4LuA4Lqr4Lq84Lq74LuI4Lqy4LqZ4Lqx4LuJ4LqZIOC6iOC6sOC6geC6seC6muC6oeC6suC7gOC6ruC6seC6lOC6p+C6veC6geC7hOC6lOC7ieC6reC6teC6geC6q+C6vOC6seC6h+C6iOC6suC6geC6l+C7iOC6suC6meC6o+C6teC6muC6ueC6lOC6reC6teC6geC6hOC6seC7ieC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWNlbnRfdGFza3NfdGl0bGUiIG1zZ2lkPSIzNjkxNzY0NjIzNjM4MTI3ODg4Ij4i4Lqr4Lqy4LqB4LuN4LuD4LqK4LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fcmVjZW50X3Rhc2tzIiBtc2dpZD0iODc5NDkwNjY1ODczMjE5MzQ3MyI+IuC6muC7jeC7iOC6oeC6teC7geC6reC6seC6muC6r+C6q+C6vOC7ieC6suC6quC6uOC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MDg0NzcxNDAwODgwNTM2NjUiPiLgu4LgupXgu4DguqXgurfguq3guoHgu4HgupfgurHguprgu4DguqXgurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9ucyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI0MDY0MTY4MzE1NDE2MTUyNTgiPiLgu4LgupXgu4DguqXgurfguq3guoHgu4LgupfguqXgurDguqrgurHgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX2xvY2siIG1zZ2lkPSIyODQ0OTQ1MTkxNzkyMTE5NzEyIj4i4Lql4Lqx4Lqt4LqB4Luc4LuJ4Lqy4LqI4LuNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9wb3dlcl9vZmYiIG1zZ2lkPSI0NDcxODc5NDQwODM5ODc5NzIyIj4i4Lqb4Lq04LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9idWdfcmVwb3J0IiBtc2dpZD0iNzkzNDAxMDU3ODkyMjMwNDc5OSI+IuC6peC6suC6jeC6h+C6suC6meC6guC7jeC7ieC6nOC6tOC6lOC6nuC6suC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF90aXRsZSIgbXNnaWQ9IjI2Njc0OTQ4MDM3NDI1NDg1MzMiPiLgu4Pguorgu4nguqXgurLguo3guofgurLgupnguoLgu43gu4nguprgurvguoHgup7gu4jguq3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfbWVzc2FnZSIgbXNnaWQ9IjM5ODQ0NzA0ODc1MDM1MDQ1NiI+IuC6meC6teC7ieC6iOC6sOC7gOC6m+C6seC6meC6geC6suC6meC7gOC6geC6seC6muC6geC6s+C6guC7jeC7ieC6oeC6ueC6meC6geC7iOC6veC6p+C6geC6seC6miDguqrgurDgupbgurLgupngurDgupvgurHgupTguojgurjguprgurHgupnguoLguq3guofguq3gurjgupvgurDguoHguq3gupngupfgu4jgurLgupkg4LuA4Lqe4Lq34LuI4Lqt4Lqq4Lq74LuI4LqH4LuA4Lqb4Lqx4LqZ4LqC4LuN4LuJ4LqE4Lqn4Lqy4Lqh4LqX4Lqy4LqH4Lqt4Lq14LuA4Lqh4LqnLiDguqHgurHgupnguojgurDgu4Pguorgu4ngu4DguqfguqXgurLgu5zgu4nguq3guo3gupngurbgu4jguocg4LuD4LqZ4LqB4Lqy4LqZ4LuA4Lql4Lq14LuI4Lqh4LqV4Lq74LuJ4LqZ4LqB4Lqy4LqZ4Lql4Lqy4LqN4LqH4Lqy4LqZ4LqC4LuN4LuJ4Lqc4Lq04LqU4Lqe4Lqy4LqUIOC6iOC6u+C6meC6geC6p+C7iOC6suC6iOC6sOC6nuC7ieC6reC6oeC6l+C6teC7iOC6iOC6sOC6quC6u+C7iOC6h+C7hOC6lOC7iSwg4LqB4Lqw4Lql4Lq44LqZ4Lqy4Lql4LuN4LqW4LuJ4LqyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fdG9nZ2xlX3NpbGVudF9tb2RlIiBtc2dpZD0iODIxOTUyNTM0NDI0NjgxMDkyNSI+IuC7guC7neC6lOC6m+C6tOC6lOC6quC6veC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fc2lsZW50X21vZGVfb25fc3RhdHVzIiBtc2dpZD0iMzI4OTg0MTkzNzAwMzc1ODgwNiI+IuC6m+C6tOC6lOC6quC6veC6h+C7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fc2lsZW50X21vZGVfb2ZmX3N0YXR1cyIgbXNnaWQ9IjE1MDYwNDY1NzkxNzcwNjY0MTkiPiLgu4DgupvgurTgupTguqrgur3guofgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uc190b2dnbGVfYWlycGxhbmVfbW9kZSIgbXNnaWQ9IjU4ODQzMzAzMDY5MjYzMDc0NTYiPiLgu4Lgu53gupTgu4Pgupnguo3gurvgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uc19haXJwbGFuZV9tb2RlX29uX3N0YXR1cyIgbXNnaWQ9IjI3MTk1NTc5ODI2MDg5MTk3NTAiPiLgu4DgupvgurXgupTgu4Lgu53gupTguqLgurngu4jgu4Pgupnguo3gurvgupngu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uc19haXJwbGFuZV9tb2RlX29mZl9zdGF0dXMiIG1zZ2lkPSI1MDc1MDcwNDQyODU0NDkwMjk2Ij4i4Lqb4Lq04LqU4LuC4Lud4LqU4LuD4LqZ4LqN4Lq74LqZ4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5mb19vdmVyZmxvdyIgbXNnaWQ9IjUzMDE5ODE3NDE3MDUzNTQ5OTMiPiI5OTkrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2FmZU1vZGUiIG1zZ2lkPSIyNzg4MjI4MDYxNTQ3OTMwMjQ2Ij4iU2FmZSBtb2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF9zeXN0ZW1fbGFiZWwiIG1zZ2lkPSI2NTc3Mzc1MzM1NzI4NTUxMzM2Ij4i4Lql4Lqw4Lqa4Lq74LqaIEFuZHJvaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfY29zdE1vbmV5IiBtc2dpZD0iNTQyOTgwODIxNzg2MTQ2MDQwMSI+IuC6muC7jeC6peC6tOC6geC6suC6meC6l+C6teC7iOC7gOC6ruC6seC6lOC7g+C6q+C7ieC6l+C7iOC6suC6meC7gOC6quC6jeC7gOC6h+C6tOC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfY29zdE1vbmV5IiBtc2dpZD0iMzI5MzMwMTkwMzQwOTg2OTQ5NSI+IuC7gOC6ruC6seC6lOC6quC6tOC7iOC6h+C6l+C6teC7iOC6l+C7iOC6suC6meC6leC7ieC6reC6h+C7gOC6quC6jeC6hOC7iOC6suC7g+C6iuC7ieC6iOC7iOC6suC6jS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbWVzc2FnZXMiIG1zZ2lkPSI3NTIxMjQ5MTQ4NDQ1NDU2NjYyIj4i4LqC4LuN4LuJ4LqE4Lqn4Lqy4Lqh4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19tZXNzYWdlcyIgbXNnaWQ9Ijc4MjE5OTkwNzEwMDM2OTkyMzYiPiLguq3gu4jgurLgupkg4LuB4Lql4Lqw4LqC4Lq94LqZIFNNUywg4Lqt4Lq14LuA4Lqh4LqnIOC7geC6peC6sOC6guC7jeC7ieC6hOC6p+C6suC6oeC6reC6t+C7iOC6meC7huC6guC6reC6h+C6l+C7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfcGVyc29uYWxJbmZvIiBtc2dpZD0iMzUxOTE2MzE0MTA3MDUzMzQ3NCI+IuC6guC7jeC7ieC6oeC6ueC6meC6quC7iOC6p+C6meC7guC6leC6guC6reC6h+C6l+C7iOC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfcGVyc29uYWxJbmZvIiBtc2dpZD0iODQyNjQ1MzEyOTc4ODg2MTMzOCI+IuC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C6guC7jeC7ieC6oeC6ueC6meC6geC7iOC6veC6p+C6geC6seC6muC6l+C7iOC6suC6meC7guC6lOC6jeC6geC6u+C6hywg4Lqa4Lqx4LqZ4LqX4Lq24LqB4LuE4Lqn4LuJ4LuD4LqZ4Lqa4Lqx4LqU4Lql4Lqy4LqN4LqK4Lq34LuI4Lqc4Lq54LuI4LqV4Lq04LqU4LqV4LuN4LuI4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zb2NpYWxJbmZvIiBtc2dpZD0iNTc5OTA5NjYyMzQxMjA0Mzc5MSI+IuC6guC7jeC7ieC6oeC6ueC6meC6quC6seC6h+C6hOC6u+C6oeC6guC6reC6h+C6l+C7iOC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc29jaWFsSW5mbyIgbXNnaWQ9IjcxMjk4NDI0NTc2MTE2NDM0OTMiPiLgu4DguoLgurvgu4ngurLgu4DgupbgurTguofguoLgu43gu4nguqHgurngupnguoHgu4jgur3guqfguoHgurHguprguqXgurLguo3guorgurfgu4jgupzgurngu4jgupXgurTgupTgupXgu43gu4gg4LuB4Lql4Lqw4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LqX4Lqy4LqH4Lqq4Lqx4LqH4LqE4Lq74Lqh4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LuC4LqU4LqN4LqB4Lq74LqHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9sb2NhdGlvbiIgbXNnaWQ9IjYzNTE0OTc0MjQzNjY5MjA0OSI+IuC6quC6sOC6luC6suC6meC6l+C6teC7iOC6guC6reC6h+C6l+C7iOC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbG9jYXRpb24iIG1zZ2lkPSI1NzA0Njc5NzYzMTI0MTcwMTAwIj4i4LqV4Lq04LqU4LqV4Lqy4Lqh4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4LqX4Lqy4LqH4LqB4Lqy4LqN4Lqw4Lqe4Lqy4Lqa4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9uZXR3b3JrIiBtc2dpZD0iNTgwODk4MzM3NzcyNzEwOTgzMSI+IuC6geC6suC6meC6quC6t+C7iOC6quC6suC6meC7gOC6hOC6t+C6reC6guC7iOC6suC6jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbmV0d29yayIgbXNnaWQ9IjQ0NzgyOTk0MTMyNDE4NjE5ODciPiLgu4DguoLgurvgu4ngurLgu4DgupbgurTguofguoTgurjgupnguqrgurvguqHguprgurHgupTgupXgu4jgurLguofgu4bguoLguq3guofgu4DguoTgurfguq3guoLgu4jgurLguo0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2JsdWV0b290aE5ldHdvcmsiIG1zZ2lkPSIxNTg1NDAzNTQ0MTYyMTI4MTA5Ij4iQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19ibHVldG9vdGhOZXR3b3JrIiBtc2dpZD0iNTYyNTI4ODU3NzE2NDI4MjM5MSI+IuC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C6reC6uOC6m+C6sOC6geC6reC6mSDgu4HguqXgurDgu4DguoTgurfguq3guoLgu4jgurLguo3gupzgu4jgurLgupkgQmx1ZXRvb3RoLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hdWRpb1NldHRpbmdzIiBtc2dpZD0iODMyOTI2MTY3MDE1MTg3MTIzNSI+IuC6geC6suC6meC6leC6seC7ieC6h+C6hOC7iOC6suC6quC6veC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjI2NDE1MTU0MDMzNDc1NjgxMzAiPiLgupvgu4jgur3gupnguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLguqrgur3guocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2FmZmVjdHNCYXR0ZXJ5IiBtc2dpZD0iNjIwOTI0NjY1MzQyNDc5ODAzMyI+IuC6quC6u+C7iOC6h+C6nOC6u+C6meC6leC7jeC7iOC7geC6muC6seC6lOC7gOC6leC6teC6o+C6tSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWZmZWN0c0JhdHRlcnkiIG1zZ2lkPSI2NDQxMjc1MzIwNjM4OTE2OTQ3Ij4i4LuD4LqK4LuJ4LqE4Lqn4Lqy4Lqh4Lqq4Lqy4Lqh4Lqy4LqU4LqX4Lq14LuI4LuA4Lqu4Lqx4LqU4LuD4Lqr4LuJ4Lqe4Lqw4Lql4Lqx4LqH4LqH4Lqy4LqZ4LuB4Lqa4Lqx4LqU4LuA4LqV4Lq14Lqj4Lq14Lqr4Lq84Lq44LqU4Lql4Lq74LqH4Lqi4LuI4Lqy4LqH4LuE4Lqn4Lqn4LqyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jYWxlbmRhciIgbXNnaWQ9IjU4NjM1MDg0Mzc3ODM2ODM5MDIiPiLgupvgurDgupXgurTgupfgurTgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2NhbGVuZGFyIiBtc2dpZD0iNTc3NzUzNDMxNjk4MjE4NDQxNiI+IuC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C6m+C6sOC6leC6tOC6l+C6tOC6mSDgu4HguqXgurDgupngurHgupTgu53gurLguo3gu4LgupTguo3guoHgurvguocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2RpY3Rpb25hcnkiIG1zZ2lkPSI0MTQ4NTk3MTI4ODQzNjQxMzc5Ij4i4Lqt4LuI4Lqy4LqZ4Lqn4Lqx4LqU4LqI4Lqw4LqZ4Lqy4LqZ4Lq44LqB4Lq74Lqh4Lqc4Lq54LuI4LuD4LqK4LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kaWN0aW9uYXJ5IiBtc2dpZD0iNzkyMTE2NjM1NTk2NDc2NDQ5MCI+IuC6reC7iOC6suC6meC6hOC6s+C6quC6seC6muC7g+C6meC6p+C6seC6lOC6iOC6sOC6meC6suC6meC6uOC6geC6u+C6oeC6nOC6ueC7iOC7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iODA5MDIzNzcwMjQzMjU3Njc4OCI+IuC6guC6veC6meC6p+C6seC6lOC6iOC6sOC6meC6suC6meC6uOC6geC6u+C6oeC6nOC6ueC7iOC7g+C6iuC7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iMjcxMTU2MTk5NDQ5NzM2MTY0NiI+IuC7gOC6nuC6teC7iOC6oeC6hOC6s+C6quC6seC6muC7g+C6quC7iOC6p+C6seC6lOC6iOC6sOC6meC6suC6meC6uOC6geC6u+C6oeC6nOC6ueC7iOC7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYm9va21hcmtzIiBtc2dpZD0iMTk0OTUxOTY3MzEwMzk2ODIyOSI+IuC6muC6uOC6geC6oeC6suC6gSDgu4HguqXgurDgupvgurDguqvguqfgurHgupTgu4DguqfgurHguprgu4TguooiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Jvb2ttYXJrcyIgbXNnaWQ9IjQxNjk3NzE2MDYyNTc5NjMwMjgiPiLgu4DguoLgurvgu4ngurLgupngurPgu4Pguorgu4nguprgurjguoHgu4HguqXgurDgupvgurDguqvguqfgurHgupTguoHgurLgupngupfgu4jguq3guofgu4DguqfgurHguprgu4LgupTguo3guoHgurvguocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2RldmljZUFsYXJtcyIgbXNnaWQ9IjYxMTc3MDQ2Mjk3Mjg4MjQxMDEiPiLgu4LguqHguofgupvgurjguoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RldmljZUFsYXJtcyIgbXNnaWQ9IjQ3NjkzNTYzNjIyNTE2NDExNzUiPiLgupXgurHgu4nguofgu4LguqHguofgupvgurjguoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3ZvaWNlbWFpbCIgbXNnaWQ9IjQxNjIyMzcxNDUwMjc1OTIxMzMiPiLguoLgu43gu4nguoTguqfgurLguqHguqrgur3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3ZvaWNlbWFpbCIgbXNnaWQ9IjI0OTg0MDM5Njk4NjI5NTEzOTMiPiLgu4DguoLgurvgu4ngurLgu4Pguorgu4nguoLgu43gu4nguoTguqfgurLguqHguqrgur3guofgu4LgupTguo3guoHgurvguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbWljcm9waG9uZSIgbXNnaWQ9IjE3MTUzOTkwMDI1MDA0MzQ2NCI+IuC7hOC6oeC7guC6hOC6o+C7guC6n+C6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbWljcm9waG9uZSIgbXNnaWQ9IjcxMDY2MTgyODY5MDU3Mzg0MDgiPiLgu4DguoLgurvgu4ngurLgu4DgupbgurTguofgu4TguqHgu4LguoTguqPgu4Lgup/gupngu4LgupTguo3guoHgurvguofgu4Dgup7gurfgu4jguq3guprgurHgupngupfgurbguoHguqrgur3guocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2NhbWVyYSIgbXNnaWQ9IjQ4MjAzNzI0OTU4OTQ1ODY2MTUiPiLguoHgu4nguq3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2NhbWVyYSIgbXNnaWQ9IjI5MzM2NjczNzIyODk1Njc3MTQiPiLgu4DguoLgurvgu4ngurLgu4Pguorgu4nguoHgu4nguq3guofgupbgu4jgurLguo3guq7gurnguprguqrgurPguqXgurHguprguoHgurLgupngupbgu4jgurLguo3guq7gurngupog4LuB4Lql4Lqw4Lqn4Lq04LqU4Lq14LuC4Lqt4LuC4LqU4LqN4LqB4Lq74LqHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zY3JlZW5sb2NrIiBtc2dpZD0iODI3NTUwMDE3MzMzMDcxODE2OCI+IuC6peC6seC6reC6geC7nOC7ieC6suC6iOC7jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc2NyZWVubG9jayIgbXNnaWQ9IjcwNjc0OTcxMjg5MjU0OTk0MDEiPiLguoTguqfgurLguqHguqrgurLguqHgurLgupTgu4PgupnguoHgurLgupnguqrgurvgu4jguofgupzgurvgupngupXgu43gu4jgup7gurbgupTgupXgurTguoHgurMg4LqC4Lqt4LqH4LqB4Lqy4LqZ4Lql4Lqx4Lqt4LqB4Luc4LuJ4Lqy4LqI4LuN4LuD4LqZ4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hcHBJbmZvIiBtc2dpZD0iODAyODc4OTc2MjYzNDE0NzcyNSI+IuC7gOC6muC6tOC7iOC6h+C6guC7jeC7ieC6oeC6ueC6meC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6guC6reC6h+C6l+C7iOC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYXBwSW5mbyIgbXNnaWQ9IjM5NTAzNzg1MzgwNDk2MjU5MDciPiLguqrgurLguqHgurLgupTguqrgurvgu4jguofgupzgurvgupngupXgu43gu4jguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoEg4LqC4Lqt4LqH4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4Lqt4Lq34LuI4LqZ4LuD4LqZ4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl93YWxscGFwZXIiIG1zZ2lkPSIzODUwMjgwMTU4MDQxMTc1OTk4Ij4i4Lqe4Lqy4Lqa4Lqe4Lq34LuJ4LqZ4Lqr4Lq84Lqx4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY193YWxscGFwZXIiIG1zZ2lkPSI1NjMwNDE3ODU0NzUwNTQwMTU0Ij4i4Lqb4LuI4Lq94LqZ4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4Lqe4Lqy4Lqa4Lqe4Lq34LuJ4LqZ4Lqr4Lq84Lqx4LqH4LqC4Lqt4LqH4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zeXN0ZW1DbG9jayIgbXNnaWQ9IjQwNjUzNTc1OTIzNjYxMjk5MiI+IuC7guC6oeC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3lzdGVtQ2xvY2siIG1zZ2lkPSIzOTQ0MzU5ODMzNjI0MDk0OTkyIj4i4Lqb4LuI4Lq94LqZ4LuA4Lqn4Lql4LqyIOC6q+C6vOC6t+C7gOC6guC6lOC7gOC6p+C6peC6suC7g+C6meC6reC6uOC6m+C6sOC6geC6reC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3RhdHVzQmFyIiBtc2dpZD0iMjA5NTg2MjU2ODExMzk0NTM5OCI+IuC7geC6luC6muC6quC6sOC6luC6suC6meC6sCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RhdHVzQmFyIiBtc2dpZD0iNjI0MjU5MzQzMjIyNjgwNzE3MSI+IuC6m+C7iOC6veC6meC6geC6suC6meC6leC6seC7ieC6h+C6hOC7iOC6suC7geC6luC6muC6quC6sOC6luC6suC6meC6sOC6reC6uOC6m+C6sOC6geC6reC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3luY1NldHRpbmdzIiBtc2dpZD0iMzM0MTk5MDk4NjE0NzgyNjU0MSI+IuC6leC6seC7ieC6h+C6hOC7iOC6suC6geC6suC6meC6iuC6tOC7ieC6h+C6guC7jeC7ieC6oeC6ueC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3luY1NldHRpbmdzIiBtc2dpZD0iNzYwMzE5NTI2NTEyOTAzMTc5NyI+IuC7gOC6guC6u+C7ieC6suC7g+C6iuC7ieC6geC6suC6meC6leC6seC7ieC6h+C6hOC7iOC6suC6geC6suC6meC6iuC6tOC7ieC6h+C6guC7jeC7ieC6oeC6ueC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hY2NvdW50cyIgbXNnaWQ9IjMzNTk2NDYyOTExMjUzMjU1MTkiPiLguprgurHgupnguorgurXguoLguq3guofgupfgu4jgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FjY291bnRzIiBtc2dpZD0iNDk0ODczMjY0MTgyNzA5MTMxMiI+IuC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C6muC6seC6meC6iuC6teC6l+C6teC7iOC7g+C6iuC7ieC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfaGFyZHdhcmVDb250cm9scyIgbXNnaWQ9Ijc5OTgyMTQ5Njg3OTE1OTkzMjYiPiLguoHgurLgupnguoTguqfguprguoTgurjguqHguq7gurLgupTgu4HguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2hhcmR3YXJlQ29udHJvbHMiIG1zZ2lkPSI0MzU3MDU3ODYxMjI1NDYyNzAyIj4i4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqH4Lqu4Lqy4LqU4LuB4Lqn4LqC4Lqt4LqH4LqK4Lq44LqU4Lqr4Lq54Lqf4Lqx4LqH4LuC4LqU4LqN4LqB4Lq74LqHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9waG9uZUNhbGxzIiBtc2dpZD0iOTA2NzE3Mzk4ODMyNTg2NTkyMyI+IuC6geC6suC6meC7guC6lyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfcGhvbmVDYWxscyIgbXNnaWQ9Ijc0ODk3MDE2MjA0NDYxODM3NzAiPiLgupXgurTgupTgupXgurLguqEsIOC7gOC6geC6seC6muC6geC6syDgu4HguqXgurDgupvgurDguqHguqfgupngupzgurvgupnguoHgurLgupngu4LgupfguqXgurDguqrgurHgupouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N5c3RlbVRvb2xzIiBtc2dpZD0iNDY1MjE5MTY0NDA4MjcxNDA0OCI+IuC7gOC6hOC6t+C7iOC6reC6h+C6oeC6t+C6peC6sOC6muC6u+C6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3lzdGVtVG9vbHMiIG1zZ2lkPSI4MTYyMTAyNjAyMTkwNzM0MzA1Ij4i4LqB4Lqy4LqZ4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqHIOC7geC6peC6sOC6geC6suC6meC6hOC6p+C6muC6hOC6uOC6oeC6peC6sOC6muC6u+C6muC7g+C6meC6peC6sOC6lOC6seC6muC6leC7iOC6sy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGV2ZWxvcG1lbnRUb29scyIgbXNnaWQ9IjM0NDYxNjQ1ODQ3MTA1OTY1MTMiPiLgu4DguoTgurfgu4jguq3guofguqHgurfguoHgurLgupngup7gurHgupTgupfgurDgupngurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RldmVsb3BtZW50VG9vbHMiIG1zZ2lkPSI3MDU4ODI4MDMyMzU4MTQyMDE4Ij4i4Lqh4Lq14Lqe4Lq94LqH4LqZ4Lqx4LqB4Lqe4Lqx4LqU4LqX4Lqw4LqZ4Lqy4LuB4Lqt4Lqx4Lqa4Lqv4LuA4LqX4Lq74LuI4Lqy4LqZ4Lqx4LuJ4LqZ4LqX4Lq14LuI4LqI4Lqw4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4LqE4Lqn4Lqy4Lqh4Lqq4Lqy4Lqh4Lqy4LqU4LuA4Lqr4Lq84Lq74LuI4Lqy4LqZ4Lq14LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaXNwbGF5IiBtc2dpZD0iNDI3OTkwOTY3NjAzNjQwMjYzNiI+IuC6quC7iOC6p+C6meC6leC6tOC6lOC6leC7jeC7iOC6nOC6ueC7iOC7g+C6iuC7ieC6guC6reC6h+C7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6reC6t+C7iOC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfZGlzcGxheSIgbXNnaWQ9IjYwNTEwMDIwMzE5MzMwMTM3MTQiPiLguqrgurvgu4jguofgupzgurvgupngupXgu43gu4jguqrgu4jguqfgupngupXgurTgupTgupXgu43gu4jgupzgurngu4jgu4Pguorgu4nguoLguq3guofgu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupnguq3gurfgu4jgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N0b3JhZ2UiIG1zZ2lkPSIxOTcxMTE4NzcwNTQ2MzM2OTY2Ij4i4Lqe4Lq34LuJ4LqZ4LqX4Lq14LuI4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdG9yYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc0NDIzMTg1MDI0NDY4NzQ5OTkiPiLguoHgurLgupngu4DguoLgurvgu4ngurLgu4DgupbgurTguofguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupkgVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjkyMDMzMDIyMTQ5MTUzNTU3NzQiPiLguoHgurLgupngu4DguoLgurvgu4ngurLgu4DgupbgurTguocgU0QgY2FyZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNzkxOTAyNTYwMjI4MzU5MzkwNyI+IuC6hOC6p+C6suC6oeC6quC6suC6oeC6suC6lOC6geC6suC6meC6iuC7iOC6p+C6jeC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNDIwNTE5Njg4MTY3ODE0NDMzNSI+IuC6hOC6uOC6meC6quC6u+C6oeC6muC6seC6lOC6l+C6teC7iOC7gOC6l+C6seC6geC7guC6meC7guC6peC6ouC6teC6hOC6p+C6suC6oeC6iuC7iOC6p+C6jeC7gOC6q+C6vOC6t+C6reC6quC6suC6oeC6suC6lOC6ruC7ieC6reC6h+C6guC7jeC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJldHJpZXZlV2luZG93Q29udGVudCIgbXNnaWQ9IjM5MDE3MTc5MzY5MzAxNzAzMjAiPiLgupTgurbguofguoLgu43gu4nguqHgurngupngu4Dgupngurfgu4nguq3guqvgurLgu4Pgupngu5zgu4ngurLguojgu40iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmV0cmlldmVXaW5kb3dDb250ZW50IiBtc2dpZD0iMzc3MjIyNTAwODYwNTMxMDY3MiI+IuC6geC6p+C6lOC6geC6suC7gOC6meC6t+C7ieC6reC6q+C6suC6guC6reC6h+C7nOC7ieC6suC6iOC7jeC6l+C6teC7iOC6l+C7iOC6suC6meC6geC6s+C6peC6seC6h+C6oeC6teC6m+C6sOC6leC6tOC6quC6s+C6nuC6seC6meC6meC6sy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJlcXVlc3RUb3VjaEV4cGxvcmF0aW9uIiBtc2dpZD0iMzEwODcyMzM2NDY3NjY2NzMyMCI+IuC7gOC6m+C6teC6lOC7g+C6iuC7iSBcIuC6geC6suC6meC6quC6s+C6q+C6vOC6p+C6lOC7guC6lOC6jeC6quC6s+C6nuC6seC6lFwiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV9kZXNjX2NhblJlcXVlc3RUb3VjaEV4cGxvcmF0aW9uIiBtc2dpZD0iNTgwMDU1MjUxNjc3OTI0OTM1NiI+IuC6peC6suC6jeC6geC6suC6meC6l+C6teC7iOC6quC6s+C6nuC6seC6lOC6iOC6sOC6luC6t+C6geC7gOC6p+C6u+C7ieC6suC6reC6reC6geC6oeC6siDgu4HguqXgurDguqrgurLguqHgurLgupTguqrgurPguqvgurzguqfgupTgu5zgu4ngurLguojgu43gu4TgupTgu4ngupTgu4nguqfguo3gupfgu4jgurLgupfgurLguocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXF1ZXN0RW5oYW5jZWRXZWJBY2Nlc3NpYmlsaXR5IiBtc2dpZD0iMTczOTg4MTc2NjUyMjU5NDA3MyI+IuC7gOC6m+C6teC6lOC6geC6suC6meC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C7gOC6p+C6seC6muC6l+C6teC7iOC6oeC6teC6m+C6sOC6quC6tOC6lOC6l+C6tOC6nuC6suC6muC6q+C6vOC6suC6jeC6guC6tuC7ieC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXF1ZXN0RW5oYW5jZWRXZWJBY2Nlc3NpYmlsaXR5IiBtc2dpZD0iNzg4MTA2Mzk2MTUwNzUxMTc2NSI+IuC6quC6sOC6hOC6o+C6tOC6muC6reC6suC6lOC6luC6t+C6geC6leC6tOC6lOC6leC6seC7ieC6hyDgu4Dgup7gurfgu4jguq3gu4Dguq7gurHgupTgu4Pguqvgu4ngu4Dgupngurfgu4nguq3guqvgurLgu4Hguq3gurHguprguq/gu4DguoLgurvgu4ngurLgu4DgupbgurTguofgu4TgupTgu4nguqvgurzgurLguo3guoLgurbgu4ngupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXF1ZXN0RmlsdGVyS2V5RXZlbnRzIiBtc2dpZD0iMjEwMzQ0MDM5MTkwMjQxMjE3NCI+IuC6leC6tOC6lOC6leC6suC6oeKAi+C7gOC6muC6tOC7iOC6h+KAi+C6guC7jeC7ieKAi+C6hOC6p+C6suC6oeKAi+C6l+C6teC7iOKAi+C6l+C7iOC6suC6meKAi+C6nuC6tOC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXF1ZXN0RmlsdGVyS2V5RXZlbnRzIiBtc2dpZD0iNzQ2MzEzNTI5MjIwNDE1MjgxOCI+IuC6ruC6p+C6oeC6l+C6seC6h+C6guC7jeC7ieC6oeC6ueC6meC6quC7iOC6p+C6meC7guC6leC7gOC6iuC6seC7iOC6mTog4LuA4Lql4LqB4Lqa4Lqx4LqU4LuA4LqE4Lqj4LqU4Lq04LqUIOC7geC6peC6sOC6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0YXR1c0JhciIgbXNnaWQ9Ijc0MTcxOTI2Mjk2MDE4OTA3OTEiPiLgupvgurTgupTguoHgurLgupngupngupngurPgu4Pguorgu4kg4Lqr4Lq84Lq3IOC7geC6geC7ieC7hOC6guC7geC6luC6muC6quC6sOC6luC6suC6meC6sCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXR1c0JhciIgbXNnaWQ9Ijg0MzQ2Njk1NDk1MDQyOTA5NzUiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gupvgurTgupTguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoHguoLguq3guofgu4HgupbguprguqrgurDgupbgurLgupngurAg4Lqr4Lq84Lq34LuA4Lqe4Lq14LuI4LqhIOC7geC6peC6sOC6peC6tuC6muC7hOC6reC6hOC6reC6meC6peC6sOC6muC6u+C6muC6reC6reC6geC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0YXR1c0JhclNlcnZpY2UiIG1zZ2lkPSI3MjQ3MjgxOTExMzg3OTMxNDg1Ij4i4LuB4LqW4Lqa4Lqq4Lqw4LqW4Lqy4LqZ4LqwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyU2VydmljZSIgbXNnaWQ9IjcxNjExMzY2MDc5NTk3NjA2MCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C7gOC6m+C6seC6meC7geC6luC6muC6quC6sOC6luC6suC6meC6sC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2V4cGFuZFN0YXR1c0JhciIgbXNnaWQ9IjExNDgxOTg3ODU5Mzc0ODkyNjQiPiLguqvguo3gu43gu4kv4LqC4Lqw4Lqr4LqN4Lqy4LqNIOC7geC6luC6muC6quC6sOC6luC6suC6meC6sCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2V4cGFuZFN0YXR1c0JhciIgbXNnaWQ9IjY5MTc1NDk0MzcxMjk0MDExMzIiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4LqC4Lqw4Lqr4LqN4Lqy4LqNIOC6q+C6vOC6t+C6q+C6jeC7jeC7ieC7geC6luC6muC6quC6sOC6luC6suC6meC6sC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iMzkwNjAwNzgzMTE5Mjk5MDk0NiI+IuC6m+C7iOC6veC6meC7gOC6quC6seC7ieC6meC6l+C6suC6h+C6geC6suC6meC7guC6l+C6reC6reC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iNTMzMTMxODkzMTkzNzQwMjA0MCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6m+C6sOC6oeC6p+C6meC6nOC6u+C6meC6quC6suC6jeC6l+C6teC7iOC7guC6l+C6reC6reC6gSDgu4HguqXgurDgupvgu4jgur3gupngu53gurLguo3gu4DguqXguoHgupfgurXgu4jguojgurDgu4Lgupfguq3guq3guoEuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jeC6reC6suC6lOC6geC6p+C6lOC6quC6reC6miwg4LuC4Lqt4LqZ4Lqq4Lqy4LqNIOC6q+C6vOC6t+C6guC6seC6lOC6guC6p+C6suC6h+C6muC7jeC7iOC7g+C6q+C7ieC7guC6l+C6reC6reC6geC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVTbXMiIG1zZ2lkPSI4NjczNDcxNzY4OTQ3ODk1MDgyIj4i4Lqu4Lqx4Lqa4LqC4LuN4LuJ4LqE4Lqn4Lqy4Lqh4Lqq4Lqx4LuJ4LqZIChTTVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVNtcyIgbXNnaWQ9IjY0MjQzODc3NTQyMjg3NjY5MzkiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guq7gurHgupog4LuB4Lql4Lqw4Lqb4Lqw4Lqh4Lqn4LqZ4Lqc4Lq74LqZ4LqC4LuN4LuJ4LqE4Lqn4Lqy4LqhIFNNUy4g4LqZ4Lq14LuJ4Lud4Lqy4LqN4LqE4Lqn4Lqy4Lqh4Lqn4LuI4Lqy4LuB4Lqt4Lqx4Lqa4Lqv4Lqq4Lqy4Lqh4Lqy4LqU4LqV4Lq04LqU4LqV4Lqy4LqhIOC6q+C6vOC6t+C6peC6tuC6muC6guC7jeC7ieC6hOC6p+C6suC6oeC6l+C6teC7iOC6quC6u+C7iOC6h+C7gOC6guC6u+C7ieC6suC6reC6uOC6m+C6sOC6geC6reC6meC6guC6reC6h+C6l+C7iOC6suC6mSDgu4LgupTguo3gupfgurXgu4jguprgu43gu4jguqrgurDgu4HgupTguofgup7guqfguoHguqHgurHgupngu4Pguqvgu4ngupfgu4jgurLgupngu4DguqvgurHgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlTW1zIiBtc2dpZD0iMTgyMTMxNzM0NDY2ODI1NzA5OCI+IuC6ruC6seC6muC6guC7jeC7ieC6hOC6p+C6suC6oSAoTU1TKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVNbXMiIG1zZ2lkPSI1MzMwMTk0MzcyNjMyMTIyNjAiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqu4Lqx4Lqa4LuB4Lql4Lqw4Lqb4Lqw4Lqh4Lqn4LqZ4Lqc4Lq74LqZ4LqC4LuN4LuJ4LqE4Lqn4Lqy4LqhIE1NUy4g4LqZ4Lq14LuJ4Lud4Lqy4LqN4LqE4Lqn4Lqy4Lqh4Lqn4LuI4Lqy4LuB4Lqt4Lqx4Lqa4Lqv4Lqq4Lqy4Lqh4Lqy4LqU4LqV4Lq04LqU4LqV4Lqy4LqhIOC6q+C6vOC6t+C6peC6tuC6muC6guC7jeC7ieC6hOC6p+C6suC6oeC6l+C6teC7iOC6quC6u+C7iOC6h+C7gOC6guC6u+C7ieC6suC6reC6uOC6m+C6sOC6geC6reC6meC6guC6reC6h+C6l+C7iOC6suC6mSDgu4LgupTguo3gupfgurXgu4jguprgu43gu4jguqrgurDgu4HgupTguofgup7guqfguoHguqHgurHgupngu4Pguqvgu4ngupfgu4jgurLgupngu4DguqvgurHgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlRW1lcmdlbmN5QnJvYWRjYXN0IiBtc2dpZD0iMTgwMzQ3NzY2MDg0NjI4ODA4OSI+IuC6ruC6seC6muC6geC6suC6meC6geC6sOC6iOC6suC6jeC6quC6seC6meC6jeC6suC6meC6quC6uOC6geC7gOC6quC6teC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVFbWVyZ2VuY3lCcm9hZGNhc3QiIG1zZ2lkPSI4NDg1MjQwNzAyNjI0MzE5NzQiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guq7gurHgupog4LuB4Lql4Lqw4Lqb4Lqw4Lqh4Lqn4LqZ4Lqc4Lq74LqZ4LqB4Lqy4LqZ4LqB4Lqw4LqI4Lqy4LqN4LqC4LuN4LuJ4LqE4Lqn4Lqy4Lqh4LqU4LuI4Lqn4LqZ4LuE4LqU4LuJLiDguoHgurLgupnguq3gurDgupngurjguo3gurLgupTgupngurXgu4nguojgurDguqrgurLguqHgurLgupTgupngurPgu4Pguorgu4ngu4TgupTgu4ngu4LgupTguo3gu4Hguq3gurHguprguq/guoLguq3guofguqXgurDguprgurvguprgu4Dgupfgurvgu4jgurLgupngurHgu4ngupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2VsbEJyb2FkY2FzdHMiIG1zZ2lkPSIxNTk4MzI4ODQzNjE5NjQ2MTY2Ij4i4Lqt4LuI4Lqy4LqZ4LqC4LuN4LuJ4LqE4Lqn4Lqy4Lqh4LqB4Lqw4LqI4Lqy4LqN4Lqq4Lqx4LqZ4LqN4Lqy4LqZ4LqC4Lqt4LqH4LuA4Lqq4Lq74Lqy4Lqq4Lqx4LqZ4LqN4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENlbGxCcm9hZGNhc3RzIiBtc2dpZD0iNjM2MTk3Mjc3NjA4MDQ1ODk3OSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguqrgurLguqHgurLgupTguq3gu4jgurLgupnguoLgu43gu4nguoTguqfgurLguqHgu4Hguojgu4nguofgu4DgupXgurfguq3gupngu4DguqvgupTguqrgurjguoHgu4DguqrgurXgupkg4LqX4Lq14LuI4LuE4LqU4LuJ4Lqu4Lqx4Lqa4LuC4LqU4LqN4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZLiDguoHgurLgupngu4Hguojgu4nguofgu4DgupXgurfguq3gupnguqrgurjguoHgu4DguqrgurXgupngupfgurXgu4jguqHgurXgu4Pguqvgu4nguprgu43guqXgurTguoHgurLgupngu4PgupnguprgurLguofgup7gurfgu4ngupngupfgurXgu4gg4LuA4Lqe4Lq34LuI4Lqt4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZ4LuD4Lqr4LuJ4LqX4LuI4Lqy4LqZ4Lqu4Lq54LuJ4LuA4LqW4Lq04LqH4Lqq4Lqw4LqW4Lqy4LqZ4Lqw4LqB4Lqy4LqZ4Lqq4Lq44LqB4LuA4Lqq4Lq14LqZLiDgu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupngupfgurXgu4jgu4DgupvgurHgupnguq3gurHgupngupXgurDguqXgurLguo3guq3gurLgupTguqXgurvguprguoHguqfgupngupvgurDguqrgurTgupTgupfgurTgup7gurLgupog4Lqr4Lq84Lq34LqB4Lqy4LqZ4LqU4Lqz4LuA4LqZ4Lq14LqZ4LqH4Lqy4LqZ4LqC4Lqt4LqH4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIOC7gOC6oeC6t+C7iOC6reC7hOC6lOC7ieC6geC6suC6meC6ruC6seC6muC7geC6iOC7ieC6h+C7gOC6leC6t+C6reC6meC6quC6uOC6geC7gOC6quC6teC6meC6iOC6suC6geC6quC6sOC6luC6suC6meC6teC6oeC6t+C6luC6ty4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlbmRTbXMiIG1zZ2lkPSI1NjAwODMwNjEyMTQ3NjcxNTI5Ij4i4Lqq4Lq74LuI4LqH4LqC4LuN4LuJ4LqE4Lqn4Lqy4LqhIFNNUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRTbXMiIG1zZ2lkPSI3MDk0NzI5Mjk4MjA0OTM3NjY3Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqq4Lq74LuI4LqH4LqC4LuN4LuJ4LqE4Lqn4Lqy4LqhIFNNUyDgu4TgupTgu4kuIOC6meC6teC7ieC6reC6suC6lOC7gOC6ruC6seC6lOC7g+C6q+C7ieC6l+C7iOC6suC6meC7gOC6geC6teC6lOC6geC6suC6meC6hOC6tOC6lOC6hOC7iOC6suC6muC7jeC6peC6tOC6geC6suC6meC6l+C6teC7iOC6muC7jeC7iOC6hOC6suC6lOC6hOC6tOC6lOC7hOC6lOC7iS4g4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqNIOC6reC6suC6lOC7gOC6ruC6seC6lOC7g+C6q+C7ieC6l+C7iOC6suC6meC7gOC6quC6jeC7gOC6h+C6tOC6meC6jeC7ieC6reC6meC6geC6suC6meC6quC6u+C7iOC6h+C6guC7jeC7ieC6hOC6p+C6suC6oeC7guC6lOC6jeC6l+C6teC7iOC6l+C7iOC6suC6meC6muC7jeC7iOC6ruC6ueC7ieC7guC6leC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlbmRSZXNwb25kVmlhTWVzc2FnZVJlcXVlc3QiIG1zZ2lkPSI4NzEzODg5MTA1MzA1OTQzMjAwIj4i4Lqq4Lq74LuI4LqH4LqB4Lq04LqU4LqI4Lqw4LqB4Lqz4LqB4Lqy4LqZ4LqV4Lqt4Lqa4Lqq4Lqw4Luc4Lqt4LqH4Lqc4LuI4Lqy4LqZ4LqX4Lqy4LqH4LqC4LuN4LuJ4LqE4Lqn4Lqy4LqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9IjcxMDc2NDg1NDg0Njg3Nzg3MzQiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guqrgurvgu4jguofguoTgurPguoLgu40g4LuE4Lqb4Lqr4Lqy4LuB4Lqt4Lqx4Lqa4Lqv4LqC4LuN4LuJ4LqE4Lqn4Lqy4Lqh4Lqt4Lq34LuI4LqZ4LuG4LuA4Lqe4Lq34LuI4Lqt4LqI4Lqx4LqU4LqB4Lqy4LqZIOC6geC7jeC6peC6sOC6meC6teC6geC6suC6meC6leC6reC6muC6lOC7ieC6p+C6jeC6guC7jeC7ieC6hOC6p+C6suC6oSDguqrgurPguqXgurHguprguqrgurLguo3gupfgurXgu4jgu4Lgupfgu4DguoLgurvgu4ngurLguqHgurIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU21zIiBtc2dpZD0iODc0NTA4NjU3MjIxMzI3MDQ4MCI+IuC6reC7iOC6suC6meC6guC7jeC7ieC6hOC6p+C6suC6oeC6guC6reC6h+C6l+C7iOC6suC6mSAoU01TIOC6q+C6vOC6tyBNTVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNtcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjQ2Nzk4MTU0ODY4NDczNTUyMiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6reC7iOC6suC6mSBTTVMg4LqX4Lq14LuI4Lqa4Lqx4LqZ4LqX4Lq24LqB4LuE4Lqn4LuJ4LuD4LqZ4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqUIOC6q+C6vOC6tyBTSU0gY2FyZCDguoLguq3guofgupfgu4jgurLgupkuIOC6hOC6uOC6meC6quC6u+C6oeC6muC6seC6lOC6meC6teC7ieC6iOC6sOC7gOC6ruC6seC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6quC6suC6oeC6suC6lOC6reC7iOC6suC6meC6guC7jeC7ieC6hOC6p+C6suC6oSBTTVMg4LqX4Lqx4LqH4Lud4Lq74LqU4LuE4LqU4LuJIOC6muC7jeC7iOC7gOC6meC6t+C7ieC6reC6q+C6suC6guC6reC6h+C6oeC6seC6meC6iOC6sOC7geC6oeC7iOC6meC6q+C6jeC6seC6h+C6geC7jeC6leC6suC6oS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzY5NTk2NzUzMzQ1NzI0MDU1MCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguq3gu4jgurLgupnguoLgu43gu4nguoTguqfgurLguqEgU01TIOC6l+C6teC7iOC7gOC6geC6seC6muC7hOC6p+C7ieC7g+C6meC7guC6l+C6peC6sOC6quC6seC6muC6guC6reC6h+C6l+C7iOC6suC6mSDguqvgurzgurfguorgurTguqHguoHgurLgupQuIOC6meC6teC7ieC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguq3gu4jgurLgupnguoLgu43gu4nguoTguqfgurLguqEgU01TIOC6l+C6seC6h+C7neC6u+C6lCwg4LuC4LqU4LqN4Lqa4LuN4LuI4LqE4Lqz4LqZ4Lq24LqH4LuA4LqW4Lq04LqH4LuA4LqZ4Lq34LuJ4Lqt4Lqr4LqyIOC6q+C6vOC6t+C6hOC6p+C6suC6oeC6peC6seC6mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU21zIiBtc2dpZD0iMzIxNjk1MDQ3MjYzNjIxNDc3NCI+IuC7geC6geC7ieC7hOC6guC6guC7jeC7ieC6hOC6p+C6suC6oeC6guC6reC6h+C6l+C7iOC6suC6mSAoU01TIOC6q+C6vOC6tyBNTVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjUxNjA0MTM5NDc3OTQ1MDE1MzgiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guoLgur3gupnguoLgu43gu4nguoTguqfgurLguqEgU01TIOC6l+C6teC7iOC6muC6seC6meC6l+C6tuC6geC7hOC6p+C7ieC7g+C6meC7geC6l+C6seC6muC7gOC6peC6seC6lOC6guC6reC6h+C6l+C7iOC6suC6mSDguqvgurzgurfguorgurTguqHguoHgurLgupTguoLguq3guofgupfgu4jgurLgupkuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jSDguq3gurLgupTguqXgurbguprguoLgu43gu4nguoTguqfgurLguqHguoLguq3guofgupfgu4jgurLgupngu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjY4NjY4NzA5MDUyMzI4NTY3Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6guC6veC6meC6peC6u+C6h+C7g+C6quC7iOC6guC7jeC7ieC6hOC6p+C6suC6oSBTTVMg4LqX4Lq14LuI4LuA4LqB4Lqx4Lqa4LuE4Lqn4LuJ4LuD4LqZ4LuC4LqX4Lql4Lqw4Lqq4Lqx4LqaIOC6q+C6vOC6t+C6iuC6tOC6oeC6geC6suC6lOC6guC6reC6h+C6l+C7iOC6suC6mS4g4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqNIOC6reC6suC6lOC6peC6tuC6muC6guC7jeC7ieC6hOC6p+C6suC6oeC6guC6reC6h+C6l+C7iOC6suC6meC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVXYXBQdXNoIiBtc2dpZD0iNTk5MTM5ODcxMTkzNjU5MDQxMCI+IuC6ruC6seC6muC6guC7jeC7ieC6hOC6p+C6suC6oeC6quC6seC7ieC6mSAoV0FQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVXYXBQdXNoIiBtc2dpZD0iNzQ4MjMyMTkwMjIwNTgzMzg1Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqu4Lqx4LqaIOC7geC6peC6sOC6m+C6sOC6oeC6p+C6meC6nOC6u+C6meC6guC7jeC7ieC6hOC6p+C6suC6oSBXQVAuIOC6geC6suC6meC6reC6sOC6meC6uOC6jeC6suC6lOC6meC6teC7ieC6ruC6p+C6oeC7gOC6luC6tOC6h+C6hOC6p+C6suC6oeC6quC6suC6oeC6suC6lOC7g+C6meC6geC6suC6meC6geC6p+C6lOC7gOC6muC6tOC7iOC6hyDgu4HguqXgurDguqXgurbguprguoLgu43gu4nguoTguqfgurLguqHgupfgurXgu4jguqrgurvgu4jguofgu4HguqXgu4nguqcg4LuC4LqU4LqN4Lqa4LuN4LuI4LqV4LuJ4Lqt4LqH4Lqq4Lqw4LuB4LqU4LqH4LuD4Lqr4LuJ4LqX4LuI4Lqy4LqZ4LuA4Lqr4Lqx4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0VGFza3MiIG1zZ2lkPSI2NDY2MDk1Mzk2NjIzOTMzOTA2Ij4i4LqU4Lq24LqH4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4Lqi4Lq54LuI4Lqh4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0VGFza3MiIG1zZ2lkPSI3NDU0MjE1OTk1ODQ3NjU4MTAyIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LqU4Lq24LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqB4LuI4Lq94Lqn4LqB4Lqx4Lqa4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LuD4LqZ4Lqb4Lqx4LqU4LqI4Lq44Lqa4Lqx4LqZIOC7geC6peC6sOC6q+C6suC6geC7jeC6nOC7iOC6suC6meC6oeC6si4g4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqN4Lqt4Lqy4LqU4LqE4Lq74LuJ4LqZ4Lqe4Lq74Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIOC6geC7iOC6veC6p+C6geC6seC6muC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6l+C6teC7iOC7g+C6iuC7ieC6ouC6ueC7iOC7g+C6meC6reC6uOC6m+C6sOC6geC6reC6meC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVyYWN0QWNyb3NzVXNlcnMiIG1zZ2lkPSI3MTE0MjU1MjgxOTQ0MjExNjgyIj4i4LqB4Lqy4LqZ4LqV4Lqt4Lqa4LuC4LqV4LuJ4Lql4Lqw4Lqr4Lqn4LuI4Lqy4LqH4Lqc4Lq54LuI4LuD4LqK4LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJhY3RBY3Jvc3NVc2VycyIgbXNnaWQ9IjM2NDY3MDk2MzYyMzM4NTc4NiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6lOC6s+C7gOC6meC6teC6meC6geC6suC6mSDguqrgurHgu4jguofguofgurLgupngupzgu4jgurLgupngupzgurngu4jgu4Pguorgu4nguq3gurfgu4jgupngu4bgu4Pgupnguq3gurjgupvgurDguoHguq3gupkuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jeC6reC6suC6lOC7g+C6iuC7ieC6hOC6p+C6suC6oeC6quC6suC6oeC6suC6lOC6meC6teC7iSDgu4Dgup7gurfgu4jguq3guqXgurDgu4DguqHgurXgupTguoHgurLgupngupvgu4nguq3guofguoHgurHgupnguqXgurDguqvguqfgu4jgurLguofgupzgurngu4jgu4Pguorgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcmFjdEFjcm9zc1VzZXJzRnVsbCIgbXNnaWQ9IjI1Njc3MzQyODU1NDUwNzQxMDUiPiLgu4Pguprguq3gurDgupngurjguo3gurLgupTguqrgurDguprgurHguprgu4DgupXgurHguqHgu4PgupnguoHgurLgupngu4LgupXgu4ngupXguq3guprguqXgurDguqvguqfgu4jgurLguofgupzgurngu4jgu4Pguorgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcmFjdEFjcm9zc1VzZXJzRnVsbCIgbXNnaWQ9IjM3Njg0MTM2ODM5NTUwMjM2NiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC6l+C6uOC6geC6geC6suC6meC7guC6leC7ieC6leC6reC6muC6l+C6teC7iOC7gOC6m+C6seC6meC7hOC6m+C7hOC6lOC7ieC6peC6sOC6q+C6p+C7iOC6suC6h+C6nOC6ueC7iOC7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzZXJzIiBtc2dpZD0iMTY3NjE1MDkxMTY3MjI4MjQyOCI+IuC6iOC6seC6lOC6geC6suC6meC6nOC6ueC7iOC7g+C6iuC7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZVVzZXJzIiBtc2dpZD0iODQwOTMwNjY2NzY0NTM1NTYzOCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6iOC6seC6lOC6geC6suC6meC6nOC6ueC7iOC7g+C6iuC7ieC7g+C6meC6reC6uOC6m+C6sOC6geC6reC6mSwg4Lqu4Lqn4Lqh4LqX4Lqx4LqH4LqB4Lqy4LqZ4LuA4Lqt4Lq14LuJ4LqZLCDguoHgurLgupnguqrgu4ngurLguocg4LuB4Lql4Lqw4LqB4Lqy4LqZ4Lql4Lq24Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0RGV0YWlsZWRUYXNrcyIgbXNnaWQ9IjYyMjk0Njg2NzQ3NTM1Mjk1MDEiPiLgupTgurbguofguqXgurLguo3guqXgurDguq3gur3gupTguoLguq3guofgu4Hguq3gurHguprguq/gupfgurXgu4jguoHgurPguqXgurHguofgu4Dguq7gurHgupTguqfgur3guoHguqLgurngu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXREZXRhaWxlZFRhc2tzIiBtc2dpZD0iMTUzODI0NzQxNDQwNzE3NTk5Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LqU4Lq24LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqi4LuI4Lqy4LqH4Lql4Lqw4Lqt4Lq94LqUIOC6geC7iOC6veC6p+C6geC6seC6muC6geC6suC6meC7gOC6ruC6seC6lOC6p+C6veC6geC7g+C6meC6m+C6seC6lOC6iOC6uOC6muC6seC6mSDgu4HguqXgurDguqvgurLguoHgu43gupzgu4jgurLgupnguqHgurIuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jeC6reC6suC6lOC6hOC6u+C7ieC6meC6nuC6u+C6muC6guC7jeC7ieC6oeC6ueC6meC6quC7iOC6p+C6meC7guC6lSDguoHgu4jgur3guqfguoHgurHguprgu4Hguq3gurHguprguq/guq3gurfgu4jgupngu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZW9yZGVyVGFza3MiIG1zZ2lkPSIyMDE4NTc1NTI2OTM0NDIyNzc5Ij4i4Lqu4Lq94LqH4Lql4Lqz4LqU4Lqx4Lqa4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LqB4Lqz4Lql4Lqx4LqH4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqE4Lq34LqZ4LuD4Lud4LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVvcmRlclRhc2tzIiBtc2dpZD0iNzczNDIxNzc1NDg3NzQzOTM1MSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6jeC7ieC6suC6jeC6geC6suC6meC7gOC6ruC6seC6lOC6p+C6veC6geC7hOC6m+C7g+C6quC7iOC6lOC7ieC6suC6meC7nOC7ieC6siDgu4HguqXgurDgup7gurfgu4ngupnguqvgurzgurHguofgu4TgupTgu4kuIOC7geC6reC6seC6muC6r+C6reC6suC6lOC6iOC6sOC6lOC6s+C7gOC6meC6teC6meC6geC6suC6meC7guC6lOC6jeC6muC7jeC7iOC6leC7ieC6reC6h+C7g+C6q+C7ieC6l+C7iOC6suC6meC6muC6reC6gS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlbW92ZVRhc2tzIiBtc2dpZD0iNjgyMTUxMzQwMTg3MDM3NzQwMyI+IuC6ouC6uOC6lOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6ruC6seC6lOC6p+C6veC6geC6ouC6ueC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlbW92ZVRhc2tzIiBtc2dpZD0iMTM5NDcxNDM1MjA2MjYzNTQ5MyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6peC6tuC6muC6geC6suC6meC7gOC6ruC6seC6lOC6p+C6veC6gSDgu4HguqXgurDgupvgurTgupTgu4Hguq3gurHguprguq/guoLguq3guofguqfgur3guoHgu4Dguqvgurzgurvgu4jgurLgupngurHgu4ngupkuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jSDguqrgurLguqHgurLgupTguqXgurvguprguoHguqfgupnguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoHguoLguq3guofgu4Hguq3gurHguprguq/guq3gurfgu4jgupngu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjczOTExOTEzODQwMjczMDMwNjUiPiLguojgurHgupTguoHgurLgupnguqrgurDgu4HgupXgurHguoHguoHgurLgupngu4DguoTgurfgu4jguq3gupngu4TguqvguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjE2MTU4ODE5MzMwMzQwODQ0NDAiPiLguq3gurDigIvgupngurjigIvguo3gurLgupTigIvgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4Dgup7gurfgu4jguq3gu4Dgup7gurXgu4jguqEsIOC6peC6tuC6miDgu4HguqXgurAg4LuB4LqB4LuJ4LuE4LqC4Lqq4Lqw4LuB4LqV4Lqx4LqB4LqB4Lqy4LqZ4LuA4LqE4Lq34LuI4Lqt4LqZ4LuE4Lqr4LqnIOC6l+C6teC7iOC7geC6reC6seC6muC6r+C6reC6t+C7iOC6meC7huC7gOC6ruC6seC6lOC6p+C6veC6gS4g4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqNIOC6reC6suC6lOC6peC6u+C6muC6geC6p+C6meC6geC6suC6meC7gOC6ruC6seC6lOC6p+C6veC6geC6guC6reC6h+C7geC6reC6seC6muC6r+C6reC6t+C7iOC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0YXJ0QW55QWN0aXZpdHkiIG1zZ2lkPSIyOTE4NzY4MjM4MDQ1MjA2NDU2Ij4i4LuA4Lql4Lq14LuI4Lqh4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LuD4LqU4LqZ4Lq24LuI4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhcnRBbnlBY3Rpdml0eSIgbXNnaWQ9Ijk5NzgyMzY5NTM0MzU4NDAwMSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C7gOC6peC6teC7iOC6oeC6geC6suC6meC7gOC6ruC6seC6lOC6p+C6veC6geC7g+C6lOC6geC7jeC7hOC6lOC7iSDguprgu43gu4jguqfgu4jgurLguoHgurLgupnguq3gurDgupngurjguo3gurLgupQg4Lqr4Lq84Lq34Lqq4Lqw4LqW4Lqy4LqZ4Lqw4LqB4Lqy4LqZ4Lqq4Lq74LuI4LqH4Lqt4Lqt4LqB4LqI4Lqw4LuA4Lqb4Lqx4LqZ4LuB4LqZ4Lqn4LuD4LqU4LqB4LuN4LqV4Lqy4LqhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0U2NyZWVuQ29tcGF0aWJpbGl0eSIgbXNnaWQ9IjY5NzUzODcxMTg4NjE4NDIwNjEiPiLgupXgurHgu4nguofguoTguqfgurLguqHgu4DguoLgurvgu4ngurLguoHgurHgupngu4TgupTgu4nguoLguq3guofgu5zgu4ngurLguojgu40iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjkyMDQzNjE4NjkzOTE3Mzc0Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LqE4Lqn4Lqa4LqE4Lq44Lqh4LuC4Lud4LqU4LqE4Lqn4Lqy4Lqh4LuA4LqC4Lq74LuJ4Lqy4LqB4Lqx4LqZ4LuE4LqU4LuJIOC6guC6reC6h+C7nOC7ieC6suC6iOC7jeC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6reC6t+C7iOC6meC7hi4g4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqNIOC6reC6suC6lOC7gOC6ruC6seC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6reC6t+C7iOC6meC7gOC6ruC6seC6lOC6p+C6veC6geC6nOC6tOC6lOC6nuC6suC6lOC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldERlYnVnQXBwIiBtc2dpZD0iMzAyMjEwNzE5ODY4NjU4NDA1MiI+IuC7gOC6m+C6teC6lOC6geC6suC6meC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC7gOC6nuC6t+C7iOC6reC7geC6geC7ieC7hOC6guC6muC6seC6meC6q+C6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldERlYnVnQXBwIiBtc2dpZD0iNDQ3NDUxMjQxNjI5OTAxMzI1NiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDgu4DgupvgurXgupTguoHgurLgupngu4DguoHgurHguprguoLgu43gu4nguqHgurngupngu4HguoHgu4nguprgurHgupnguqvgurLguqrgurPguqXgurHguprgu4Hguq3gurHguprguq/guq3gurfgu4jgupkuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jeC6reC6suC6lOC7g+C6iuC7ieC6hOC6uOC6meC6quC6u+C6oeC6muC6seC6lOC6meC6teC7ieC7gOC6nuC6t+C7iOC6reC6m+C6tOC6lOC7geC6reC6seC6muC6r+C6reC6t+C7iOC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZUNvbmZpZ3VyYXRpb24iIG1zZ2lkPSI0MTYyMDkyMTg1MTI0MjM0NDgwIj4i4Lqb4LuI4Lq94LqZ4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4Luc4LuJ4Lqy4LqI4LuN4LqC4Lqt4LqH4Lql4Lqw4Lqa4Lq74LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29uZmlndXJhdGlvbiIgbXNnaWQ9IjQzNzIyMjM4NzMxNTQyOTYwNzYiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gupvgu4jgur3gupngu4HgupvguofguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLgu4PgupngupvgurHgupTguojgurjguprgurHgupkg4LuA4LqK4Lqx4LuI4LqZOiDguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLgupfgu4nguq3guofgupbgurTgu4jgupkg4Lqr4Lq84Lq34LqC4Lqw4Luc4Lqy4LqU4LuC4LqV4Lqt4Lqx4LqB4Lqq4Lqt4LqZ4LuC4LqU4LqN4Lqu4Lqn4LqhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZW5hYmxlQ2FyTW9kZSIgbXNnaWQ9IjU2ODQ1MDQwNTgxOTI5MjEwOTgiPiLgu4DgupvgurXgupTgupngurPgu4Pguorgu4ngu4LguqvguqHgupTguoLgurHguprguqXgurvgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19lbmFibGVDYXJNb2RlIiBtc2dpZD0iNDg1MzE4NzQyNTc1MTQxOTQ2NyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C7gOC6m+C6teC6lOC7g+C6iuC7ieC7guC7neC6lOC7g+C6meC6peC6u+C6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iMzkxNDAyNjY4NzQyMDE3NzIwMiI+IuC6m+C6tOC6lOC7geC6reC6seC6muC6r+C6reC6t+C7iOC6meC7hiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iNDU5MzM1MzIzNTk1OTczMzExOSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6m+C6tOC6lOC7guC6m+C6o+C7gOC6iuC6quC6nuC6t+C7ieC6meC6q+C6vOC6seC6h+C6guC6reC6h+C7geC6reC6seC6muC6r+C6reC6t+C7iOC6meC7hOC6lOC7iS4g4LqZ4Lq14LuJ4Lqt4Lqy4LqU4LuA4Lqu4Lqx4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqt4Lq34LuI4LqZ4LqZ4Lqx4LuJ4LqZ4Lqi4Lq44LqU4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LuE4Lqb4LqZ4LqzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZm9yY2VTdG9wUGFja2FnZXMiIG1zZ2lkPSIyMzI5NjI3NDI4ODMyMDY3NzAwIj4i4Lqa4Lqx4LqH4LqE4Lqx4Lqa4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqt4Lq34LuI4LqZ4Lqi4Lq44LqU4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZm9yY2VTdG9wUGFja2FnZXMiIG1zZ2lkPSI1MjUzMTU3Mjk2MTgzOTQwODEyIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqa4Lqx4LqH4LqE4Lqx4Lqa4Lqb4Lq04LqU4LuB4Lqt4Lqx4Lqa4Lqv4Lqt4Lq34LuI4LqZ4LuG4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZm9yY2VCYWNrIiBtc2dpZD0iNjUyOTM1MjA0MDcyNTg0NjE2Ij4i4Lqa4Lqx4LqH4LqE4Lqx4Lqa4Lqb4Lq04LqU4LuB4Lqt4Lqx4Lqa4LqvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZm9yY2VCYWNrIiBtc2dpZD0iMzg5MjI5NTgzMDQxOTUxMzYyMyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6muC6seC6h+C6hOC6seC6muC6geC6suC6meC7gOC6ruC6seC6lOC6p+C6veC6geC6l+C6teC7iOC6ouC6ueC7iOC6lOC7ieC6suC6meC7nOC7ieC6suC6m+C6tOC6lCDgu4HguqXgurDguoHgurHguprguoTgurfgupngu4TgupTgu4kuIOC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6l+C6u+C7iOC6p+C7hOC6m+C6muC7jeC7iOC6hOC6p+C6meC6iOC6s+C7gOC6m+C6seC6meC6leC7ieC6reC6h+C7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2R1bXAiIG1zZ2lkPSIxNjgxNzk5ODYyNDM4OTU0NzUyIj4i4LqU4Lq24LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqq4Lqw4LqW4Lqy4LqZ4Lqw4Lqe4Lqy4LqN4LuD4LqZ4LqC4Lqt4LqH4Lql4Lqw4Lqa4Lq74LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZHVtcCIgbXNnaWQ9IjE3NzgyOTkwODg2OTIyOTAzMjkiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4LqU4Lq24LqH4LuA4Lqt4Lq74Lqy4Lqq4Lqw4LqW4Lqy4LqZ4Lqw4Lqe4Lqy4LqN4LuD4LqZ4LqC4Lqt4LqH4Lql4Lqw4Lqa4Lq74LqaLiDgu4Hguq3gurHguprguq/gupfgurXgu4jgu4DgupvgurHgupnguq3gurHgupngupXgurDguqXgurLguo3guq3gurLgupTguojgurDgupTgurbguofgu4Dguq3gurvgurLguoLgu43gu4nguqHgurngupnguqrgu4jguqfgupngupXgurvguqcg4LuB4Lql4Lqw4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqE4Lqn4Lqy4Lqh4Lqb4Lqt4LqU4LuE4LqeIOC6q+C6vOC6suC6geC6q+C6vOC6suC6jeC6m+C6sOC7gOC6nuC6lOC6l+C6teC7iOC6muC7jeC7iOC6iOC6s+C7gOC6m+C6seC6meC6leC7jeC7iOC6nuC6p+C6geC6oeC6seC6meC7gOC6peC6teC6jS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iODAyMjU4ODYwODk5NDU4OTkzOCI+IuC6lOC6tuC6h+C7gOC6reC6u+C6suC7gOC6meC6t+C7ieC6reC6q+C6suC7nOC7ieC6suC6iOC7jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iMzE5MzI2OTA2OTQ2OTcwMDI2NSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6lOC6tuC6h+C6guC7jeC7ieC6oeC6ueC6meC7gOC6meC6t+C7ieC6reC6q+C6suC6guC6reC6h+C7nOC7ieC6suC6iOC7jeC6l+C6teC7iOC7g+C6iuC7ieC6ouC6ueC7iOC7hOC6lOC7iS4g4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqN4Lqt4Lqy4LqU4LqU4Lq24LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lqx4LqH4Lud4Lq74LqU4LuD4LqZ4Luc4LuJ4Lqy4LqI4LuNIOC7geC6peC6sOC6geC6p+C6lOC6quC6reC6muC6guC7jeC7ieC6hOC6p+C6suC6oeC6l+C6seC6h+C7neC6u+C6lOC7g+C6meC6meC6seC7ieC6meC7hOC6lOC7iSDguo3gurvguoHgu4DguqfgurHgu4ngupnguqXgurDguqvgurHgupTgupzgu4jgurLgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl90ZW1wb3JhcnlfZW5hYmxlX2FjY2Vzc2liaWxpdHkiIG1zZ2lkPSIyMzEyNjEyMTM1MTI3MzEwMjU0Ij4i4Lqb4Lq04LqU4LqB4Lqy4LqZ4LqK4LuI4Lqn4LqN4LqB4Lqy4LqZ4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqH4LqK4Lq74LuI4Lqn4LqE4Lqy4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdGVtcG9yYXJ5X2VuYWJsZV9hY2Nlc3NpYmlsaXR5IiBtc2dpZD0iODA3OTQ1NjI5MzE4Mjk3NTQ2NCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6mSDgu4DgupvgurXgupTgu4Pguorgu4nguoHgurLgupnguorgu4jguqfguo3gu4DguoLgurvgu4ngurLgu4DgupbgurTguofgu4Hguprguprguorgurvgu4jguqfguoTgurLguqfgu4Pgupnguq3gurjgupvgurDguoHguq3gupkuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jSDguq3gurLgupTgu4DgupvgurXgupTgu4Pguorgu4nguoHgurLgupnguorgu4jguqfguo3gu4DguoLgurvgu4ngurLgu4DgupbgurTguocg4LuC4LqU4LqN4Lqa4LuN4LuI4LuE4LqU4LuJ4Lqu4Lqx4Lqa4LqB4Lqy4LqZ4LqN4Lq04LqZ4LqN4Lqt4Lqh4LqI4Lqy4LqB4Lqc4Lq54LuI4LuD4LqK4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmV0cmlldmVfd2luZG93X2luZm8iIG1zZ2lkPSI4NTMyMjk1MTk5MTEyNTE5Mzc4Ij4i4LqU4Lq24LqH4LuA4Lqt4Lq74Lqy4LqC4LuN4LuJ4Lqh4Lq54LqZ4Luc4LuJ4Lqy4LqI4LuNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmV0cmlldmVfd2luZG93X2luZm8iIG1zZ2lkPSI0OTk4ODM2MzcwNDI0MTg2ODQ5Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZIOC6lOC6tuC6h+C7gOC6reC6u+C6suC6guC7jeC7ieC6oeC6ueC6meC6geC7iOC6veC6p+C6geC6seC6muC7nOC7ieC6suC6iOC7jeC6iOC6suC6geC7guC6leC6iOC6seC6lOC6geC6suC6meC7nOC7ieC6suC6iOC7jS4g4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4Lqa4LuN4LuI4Lqb4Lqt4LqU4LuE4Lqe4Lqt4Lqy4LqU4LqU4Lq24LqH4LuA4Lqt4Lq74Lqy4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lq14LuI4LuD4LqK4LuJ4Lqq4Lqz4Lql4Lqx4Lqa4Lqe4Lqy4LqN4LuD4LqZ4Lql4Lqw4Lqa4Lq74Lqa4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZmlsdGVyX2V2ZW50cyIgbXNnaWQ9Ijg2NzU1MzU2NDg4MDc0MjczODkiPiLguoHgurHgu4jgupngupXguq3guofgu4DguqvgupTguoHgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19maWx0ZXJfZXZlbnRzIiBtc2dpZD0iODAwNjIzNjMxNTg4ODM0NzY4MCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6mSDguqXgurvguofgupfgurDguprgur3gupnguoHgurLgupnguoHgurHgu4jgupngupXguq3guofguoLgurLgu4DguoLgurvgu4ngurIg4LqX4Lq14LuI4LqB4Lqx4LuI4LqZ4LqV4Lqt4LqH4LqB4Lqy4LqZ4Lqq4Lq74LuI4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LuA4Lqr4LqU4LqB4Lqy4LqZ4Lqc4Lq54LuI4LuD4LqK4LuJ4LqX4Lqx4LqH4Lud4Lq74LqUIOC6geC7iOC6reC6meC6l+C6teC7iOC6nuC6p+C6geC6oeC6seC6meC6iOC6sOC6luC6t+C6geC7gOC6nOC6teC6jeC7geC6nOC7iC4g4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqN4Lqt4Lqy4LqU4LqE4Lqn4Lqa4LqE4Lq44LqhIFVJIOC6guC6reC6h+C6peC6sOC6muC6u+C6muC7guC6lOC6jeC6muC7jeC7iOC6leC7ieC6reC6h+C7g+C6q+C7ieC6nOC6ueC7iOC7g+C6iuC7ieC6iOC6seC6lOC6geC6suC6meC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hZ25pZnlfZGlzcGxheSIgbXNnaWQ9IjU5NzM2MjY3MzgxNzA2MTg3NzUiPiLguoLgurDguqvguo3gurLguo3guoHgurLgupnguqrgurDgu4HgupTguofgupzgurvgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI3MTIxMjM1Njg0NTE1MDAzNzkyIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZIOC6quC6suC6oeC6suC6lOC6guC6sOC6q+C6jeC6suC6jeC7gOC6meC6t+C7ieC6reC6q+C6suC6l+C6teC7iOC6quC6sOC7geC6lOC6h+C6nOC6u+C6meC7hOC6lOC7iS4g4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqNIOC6reC6suC6lOC6m+C7iOC6veC6meC7gOC6meC6t+C7ieC6reC6q+C6suC6l+C6teC7iOC6quC6sOC7geC6lOC6h+C7g+C6meC6peC6seC6geC6quC6sOC6meC6sCDgupfgurXgu4jgu4Dguq7gurHgupTgu4Pguqvgu4nguprgu43gu4jguqrgurLguqHgurLgupTgupngurPgu4Pguorgu4nguq3gurjgupvgurDguoHguq3gupngu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zaHV0ZG93biIgbXNnaWQ9IjcxODU3NDc4MjQwMzg5MDkwMTYiPiLgupvgurTgupTguqXgurvguofguprgurLguofguqrgu4jguqfgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zaHV0ZG93biIgbXNnaWQ9IjcwNDY1MDA4Mzg3NDYyOTE3NzUiPiLguoHgurPgupngurvgupTgu4Pguqvgu4ngu4LgupXguojgurHgupTguoHgurLgupnguoHgurTgupTguojgurDguoHgurPguqLgurngu4jgu4PgupnguqrgurDgupbgurLgupngurDgupvgurTgupTguqXgurDguprgurvgupog4LuC4LqU4LqN4Lqa4LuN4LuI4LuE4LqU4LuJ4Lqb4Lq04LqU4Lql4Lqw4Lqa4Lq74Lqa4Lqi4LuI4Lqy4LqH4Lqq4Lq74Lqh4Lqa4Lq54LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RvcEFwcFN3aXRjaGVzIiBtc2dpZD0iNDEzODYwODYxMDcxNzQyNTU3MyI+IuC6guC6seC6lOC6guC6p+C6suC6h+C6geC6suC6meC6quC6sOC6peC6seC6muC7geC6reC6seC6muC6ryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0b3BBcHBTd2l0Y2hlcyIgbXNnaWQ9IjgyNjIxOTU4MDI1ODIyNTUwMjEiPiLgupvgu4nguq3guofguoHgurHgupnguprgu43gu4jgu4Pguqvgu4ngupzgurngu4jgu4Pguorgu4nguqrgurDguqvgurzgurHguprgu4TgupvguqvgurLgu4Hguq3gurHguprguq/guq3gurfgu4jgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRUb3BBY3Rpdml0eUluZm8iIG1zZ2lkPSIyNTM3OTIyMzExNDExNTQ2MDE2Ij4i4LqU4Lq24LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LuB4Lqt4Lqx4Lqa4Lqv4LuD4LqZ4Lqb4Lqx4LqU4LqI4Lq44Lqa4Lqx4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0VG9wQWN0aXZpdHlJbmZvIiBtc2dpZD0iODE1MzY1MTQzNDE0NTEzMjUwNSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7gOC6iOC6u+C7ieC6suC6guC6reC6h+C6lOC6tuC6h+C6guC7jeC7ieC6oeC6ueC6meC6quC7iOC6p+C6meC7guC6lSDguoHgu4jgur3guqfguoHgurHguprgu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupkg4LuB4Lql4LqwIOC6geC6suC6meC6muC7jeC6peC6tOC6geC6suC6meC6m+C6seC6lOC6iOC6uOC6muC6seC6meC7g+C6meC7nOC7ieC6suC6iOC7jeC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3J1blNldEFjdGl2aXR5V2F0Y2hlciIgbXNnaWQ9Ijg5MjIzOTA5NDg2NzE4MjY1NiI+IuC6leC6tOC6lOC6leC6suC6oSDgu4HguqXgurDguoTguqfguprguoTgurjguqHguoHgurLgupngu4DgupvgurXgupTgu4LgupXguoLguq3guofgu4Hguq3gurHguprguq/gupfgurHguofgu53gurvgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ydW5TZXRBY3Rpdml0eVdhdGNoZXIiIG1zZ2lkPSI2MDAzNjAzMTYyNTc4NTc3NDA2Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6leC6tOC6lOC6leC6suC6oSDgu4HguqXgurDguoTguqfguprguoTgurjguqHguqfgurTgupfgurXgupfgurXgu4jguqXgurDguprgurvguprgu4DguqXgurXgu4jguqHguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoHgupXgu4jgurLguofgu4YuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jSDguq3gurLgupTgu4Dguq7gurHgupTgu4Pguqvgu4nguqXgurDguprgurvguprgupfgurHguofgu53gurvgupTgu4DguoHgurXgupTguq3gurHgupngupXgurDguqXgurLguo3gu4TgupTgu4kuIOC6geC6suC6meC6geC6s+C6meC6u+C6lOC6quC6tOC6lOC6meC6teC7ieC6iOC6s+C7gOC6m+C6seC6meC6quC6s+C6peC6seC6muC6geC6suC6meC6nuC6seC6lOC6l+C6sOC6meC6suC7gOC6l+C6u+C7iOC6suC6meC6seC7ieC6mSwg4Lqa4LuN4LuI4LuB4Lqh4LuI4LqZ4Lqq4Lqz4Lql4Lqx4Lqa4LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4LqX4Lq74LuI4Lqn4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSIyNTc2MzMzNDM0ODkzNTMyNDc1Ij4i4Lqq4Lq74LuI4LqH4LqB4Lqy4LqZ4LqB4Lqw4LqI4LuI4Lqy4LqN4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lq14LuI4LuA4Lqt4Lq74Lqy4LuB4Lqe4Lqx4LqB4LuA4LqB4LqU4Lqt4Lqt4LqB4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSI2NjIxOTAxMjE2MjA3OTMxMDg5Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqq4Lq74LuI4LqH4LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZ4Lqn4LuI4LqyIOC7geC6nuC6seC6geC7gOC6geC6seC6lOC6guC6reC6h+C7geC6reC6seC6muC6r+C6lOC6seC7iOC6h+C7hOC6lOC7ieC6peC6tuC6muC6reC6reC6geC7hOC6m+C7geC6peC7ieC6py4g4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqNIOC6reC6suC6lOC7g+C6iuC7ieC6hOC6p+C6suC6oeC6quC6suC6oeC6suC6lOC6meC6teC7iSDgu4Dgup7gurfgu4jguq3gupvgurTgupTguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoHguoLguq3guofgu4Hguq3gurHguprguq/guq3gurfgu4jgupngu4Yg4LqX4Lq14LuI4LqB4Lqz4Lql4Lqx4LqH4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4Lqi4Lq54LuILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI1Njg5MDk1MDA5MDMwMzM2NTkzIj4i4Lqq4Lq74LuI4LqH4LqB4Lqy4LqZ4LqB4Lqw4LqI4Lqy4LqNIFNNUyDgupfgurXgu4jgu4TgupTgu4nguq7gurHgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RTbXNSZWNlaXZlZCIgbXNnaWQ9IjQxNTIwMzc3MjAwMzQzNjU0OTIiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4LqB4Lqw4LqI4Lqy4LqN4Lqq4Lqx4LqZ4LqN4Lqy4LqZ4LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZ4Lqn4LuI4Lqy4LqC4LuN4LuJ4LqE4Lqn4Lqy4LqhIFNNUyDgu4TgupTgu4nguq7gurHguprgu4HguqXgu4nguqcuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jeC6reC6suC6lOC6iOC6sOC7g+C6iuC7ieC6quC6tOC7iOC6h+C6meC6teC7ieC7g+C6meC6geC6suC6meC6m+C6reC6oeC7geC6m+C6h+C6guC7jeC7ieC6hOC6p+C6suC6oSBTTVMg4LqC4Lqy4LuA4LqC4Lq74LuJ4LqyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjMxNDUzNDc0MTMwMjg1ODIzNzEiPiLguqrgurvgu4jguofguoHgurLgupnguoHgurDguojgurLguo0gV0FQLVBVU0gg4LqX4Lq14LuI4LuE4LqU4LuJ4Lqu4Lqx4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjQ3ODM0MDI1MjUwMzk0NDI3MjkiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guqrgurvgu4jguofguoHgurLgupngu4Hguojgu4nguofgu4DgupXgurfguq3gupngu4Pgupngu4DguqfguqXgurLgupfgurXgu4jgu4TgupTgu4nguq7gurHguprguoLgu43gu4nguqHguoTguqfgurLguqEgV0FQIFBVU0guIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jSDguq3gurLgupTgu4Pguorgu4nguoHgurLgupnguoHgurDgupfgurPgupngurXgu4ngu4Dgup7gurfgu4jguq3gupvguq3guqHguoHgurLgupngu4TgupTgu4nguq7gurHguprguoLgu43gu4nguoTguqfgurLguqEgTU1TIOC6q+C6vOC6t+C6peC6seC6geC6m+C7iOC6veC6meC7gOC6meC6t+C7ieC6reC6q+C6suC6guC6reC6h+C7nOC7ieC6suC7gOC6p+C6seC6muC6leC7iOC6suC6h+C7hiDgupTgu4nguqfguo3guqrgurTgu4jguofguq3gurHgupngupXgurDguqXgurLguo3gupfgurHguofguqvgurzgurLguo3guqLgu4jgurLguofguofgur3guprgu4YuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcm9jZXNzTGltaXQiIG1zZ2lkPSIyNDUxODczNjY0MzYzNjYyNjY2Ij4i4LqI4Lqz4LqB4Lqx4LqU4LqI4Lqz4LqZ4Lqn4LqZ4LqC4Lqt4LqH4LuC4Lqb4Lqj4LuA4LqK4Lqq4LqX4Lq14LuI4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4Lqi4Lq54LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJvY2Vzc0xpbWl0IiBtc2dpZD0iNzMxODA2MTMxNDA0MDg3OTU0MiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6hOC6p+C6muC6hOC6uOC6oeC6iOC6s+C6meC6p+C6meC6quC6ueC6h+C6quC6uOC6lCDguoLguq3guofgu4LgupvguqPgu4DguorguqrgupfgurXgu4jguojgurDgu4Dguq7gurHgupTguqfgur3guoEuIOC6muC7jeC7iOC6hOC6p+C6meC6luC6t+C6geC7g+C6iuC7ieC6geC6seC6muC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6l+C6u+C7iOC6p+C7hOC6my4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldEFsd2F5c0ZpbmlzaCIgbXNnaWQ9IjU1MDk1ODUwNzc5ODc5Njk2NSI+IuC6muC6seC6h+C6hOC6seC6muC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6ruC6seC6lOC6p+C6veC6geC6ouC6ueC7iOC6nuC6t+C7ieC6meC6q+C6vOC6seC6h+C6m+C6tOC6lOC7guC6leC6peC6u+C6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFsd2F5c0ZpbmlzaCIgbXNnaWQ9Ijc0NzEzMTA2NTI4Njg4NDE0OTkiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guoTguqfguprguoTgurjguqHguqfgu4jgurLguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoHgu4PgupQg4LqE4Lqn4LqZ4LqI4Lqw4LqW4Lq34LqB4Lqb4Lq04LqU4Lql4Lq74LqHIOC6q+C6vOC6seC6h+C6iOC6suC6geC6l+C6teC7iOC6nuC6p+C6geC6oeC6seC6meC6luC6t+C6geC6m+C7iOC6veC6meC7g+C6q+C7ieC7hOC6m+C7gOC6ruC6seC6lOC6p+C6veC6geC7g+C6meC6q+C6vOC6seC6h+C6peC6sOC6muC6u+C6mi4g4Lqa4LuN4LuI4LqE4Lqn4LqZ4LuD4LqK4LuJ4LqB4Lqx4Lqa4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq74LuI4Lqn4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmF0dGVyeVN0YXRzIiBtc2dpZD0iMjc4OTYxMDY3MzUxNDEwMzM2NCI+IuC6reC7iOC6suC6meC6quC6sOC6luC6tOC6leC6tOC7geC6muC6seC6lOC7gOC6leC6teC6o+C6tSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JhdHRlcnlTdGF0cyIgbXNnaWQ9IjU4OTczNDY1ODI4ODI5MTUxMTQiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupkg4Lqt4LuI4Lqy4LqZ4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4Lqb4Lqw4LqI4Lq44Lqa4Lqx4LqZ4LqC4Lqt4LqH4LqW4LuI4Lqy4LqZ4LuD4LqZ4Lql4Lqw4LqU4Lqx4Lqa4LqV4LuN4LuI4LqyLiDguq3gurLgupTguojgurDgu4Dguq7gurHgupTgu4Pguqvgu4ngu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupkg4Lqq4Lqy4Lqh4Lqy4LqU4LqK4Lqt4LqB4Lqr4Lqy4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lql4Lqw4Lqt4Lq94LqUIOC6geC7iOC6veC6p+C6geC6seC6muC7geC6reC6seC6muC6r+C6l+C6teC7iOC6l+C7iOC6suC6meC7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUJhdHRlcnlTdGF0cyIgbXNnaWQ9IjM3MTk2ODk3NjQ1MzYzNzk1NTciPiLgu4HguoHgu4ngu4TguoLguqrgurDgupbgurTgupXgurTgu4HguprgurHgupTgu4DgupXgurXguqPgurUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVCYXR0ZXJ5U3RhdHMiIG1zZ2lkPSI2ODYyODE3ODU3MTc4MDI1MDAyIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC7geC6geC7ieC7hOC6guC6quC6sOC6luC6tOC6leC6tOC6geC7iOC6veC6p+C6geC6seC6muC7geC6muC6seC6lOC7gOC6leC6teC6o+C6teC6l+C6teC7iOC7gOC6geC6seC6muC6geC6s+C6oeC6suC7hOC6lOC7iS4g4Lqa4LuN4LuI4LuD4LqK4LuJ4Lqq4Lqz4Lql4Lqx4Lqa4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq74LuI4Lqn4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0QXBwT3BzU3RhdHMiIG1zZ2lkPSIxNTA4Nzc5Njg3NDM2NTg1NzQ0Ij4i4LqU4Lq24LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqq4Lqw4LqW4Lq04LqV4Lq04LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqC4Lqt4LqH4LuB4Lqt4Lqx4Lqa4LqvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QXBwT3BzU3RhdHMiIG1zZ2lkPSI2MjQzODg3MDQxNTc3OTEyODc3Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LqU4Lq24LqH4LuA4Lqt4Lq74Lqy4LqC4LuN4LuJ4Lqh4Lq54LqZIOC6quC6sOC6luC6tOC6leC6tOC6guC6reC6h+C7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6l+C6teC7iOC7hOC6lOC7ieC7gOC6geC6seC6muC6geC6s+C6oeC6si4g4Lqa4LuN4LuI4LuE4LqU4LuJ4LuD4LqK4LuJ4LuD4LqZ4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq74LuI4Lqn4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlQXBwT3BzU3RhdHMiIG1zZ2lkPSI4ODI5MDk3MzczODUxNTIxNTA1Ij4i4LuB4LqB4LuJ4LuE4LqC4Lqq4Lqw4LqW4Lq04LqV4Lq04LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqC4Lqt4LqH4LuB4Lqt4Lqx4Lqa4LqvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXBkYXRlQXBwT3BzU3RhdHMiIG1zZ2lkPSI1MDc4NDU5NjU5NDQwMzQ4MyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C7geC6geC7ieC7hOC6guC6quC6sOC6luC6tOC6leC6tCDguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoHguoLguq3guofgu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupngupfgurXgu4jgu4DguoHgurHguprguoHgurPguqHgurIuIOC7geC6reC6seC6muC6r+C6l+C6u+C7iOC6p+C7hOC6m+C6muC7jeC7iOC6iOC6s+C7gOC6m+C6seC6meC6leC7ieC6reC6h+C7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JhY2t1cCIgbXNnaWQ9IjQ3MDAxMzAyMjg2NTQ1MzkyMCI+IuC6hOC6p+C6muC6hOC6uOC6oeC6geC6suC6meC6quC6s+C6ruC6reC6hyDgu4HguqXgurDguoHgurLgupnguoHgurngu4nguoLgu43gu4nguqHgurngupnguqXgurDguprgurvgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iYWNrdXAiIG1zZ2lkPSI2OTEyMjMwNTI1MTQwNTg5ODkxIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LqE4Lqn4Lqa4LqE4Lq44Lqh4LqB4Lq74LqZ4LuE4LqB4LqB4Lqy4LqZ4Lqq4Lqz4Lqu4Lqt4LqHIOC7geC6peC6sOC6geC6ueC7ieC6guC7jeC7ieC6oeC6ueC6meC6guC6reC6h+C6peC6sOC6muC6u+C6muC7hOC6lOC7iS4g4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lqz4Lqh4Lqw4LqU4Lqy4Lqa4LuN4LuI4LuE4LqU4LuJ4LuD4LqK4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlybV9mdWxsX2JhY2t1cCIgbXNnaWQ9IjU1NTcwNzEzMjU4MDQ0NjkxMDIiPiLguqLgurfgupnguqLgurHgupnguoHgurLgupnguqrgurPguq7guq3guocg4Lqr4Lq84Lq34LqB4Lqy4LqZ4LqB4Lq54LuJ4LqC4LuN4LuJ4Lqh4Lq54LqZ4LuA4LqV4Lqx4Lqh4Lqu4Lq54Lqa4LuB4Lqa4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlybV9mdWxsX2JhY2t1cCIgbXNnaWQ9IjE3NDg3NjIxNzE2Mzc2OTk1NjIiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4DgupvgurXgupTguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoEg4LqC4Lqt4LqH4Lqq4LuI4Lqn4LqZ4LqV4Lq04LqU4LqV4LuN4LuI4Lqc4Lq54LuI4LuD4LqK4LuJ4Lqq4Lqz4Lql4Lqx4Lqa4Lqi4Lq34LqZ4Lqi4Lqx4LqZ4LqB4Lqy4LqZ4Lqq4Lqz4Lqu4Lqt4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LuA4LqV4Lqx4Lqh4Lqu4Lq54Lqa4LuB4Lqa4LqaLiDguprgu43gu4jguqHgurXgu4Hguq3gurHguprguq/gu4PgupTgupXgu4nguq3guofgu4Pguorgu4nguoTgurjgupnguqrgurvguqHguprgurHgupTgupngurXgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcm5hbFN5c3RlbVdpbmRvdyIgbXNnaWQ9IjIxNDg1NjM2MjgxNDAxOTMyMzEiPiLguqrgurDgu4HgupTguofgu5zgu4ngurLguojgu43gupfgurXgu4jguprgu43gu4jgu4TgupTgu4nguq7gurHguprguq3gurDgupngurjguo3gurLgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcm5hbFN5c3RlbVdpbmRvdyIgbXNnaWQ9Ijc0NTgzODc3NTk0NjE0NjYzOTciPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guqrgu4ngurLguofgu5zgu4ngurLguojgu43guqrgurPguqXgurHguprguoHgurLgupngupngurPgu4Pguorgu4ngup7gurLguo3gu4PgupnguqXgurDguprgurvgupouIOC7geC6reC6seC6muC6r+C6l+C6u+C7iOC6p+C7hOC6m+C6muC7jeC7iOC7hOC6lOC7ieC7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N5c3RlbUFsZXJ0V2luZG93IiBtc2dpZD0iMzU0MzM0Nzk4MDgzOTUxODYxMyI+IuC6muC6seC6h+C7geC6reC6seC6muC6r+C6reC6t+C7iOC6meC7hiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N5c3RlbUFsZXJ0V2luZG93IiBtc2dpZD0iODU4NDY3ODM4MTk3MjgyMDExOCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C7gOC6ruC6seC6lOC6p+C6veC6geC7gOC6l+C6tOC6h+C7geC6reC6seC6muC6ryDguqvgurzgurfguprgu4jguq3gupnguq3gurfgu4jgupngu4bguoLguq3guofguqrgu4jguqfgupngupXgurTgupTgupXgu43gu4jgupzgurngu4jgu4Pguorgu4kg4LuA4LqK4Lq04LuI4LqH4Lqt4Lqy4LqU4Lql4Lq74Lqa4LqB4Lqn4LqZ4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqC4Lqt4LqH4Lqq4LuI4Lqn4LqZ4LqV4Lq04LqU4LqV4LuN4LuIIOC7g+C6meC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6leC7iOC6suC6h+C7hiDguqvgurzgurfgupvgu4jgur3gupnguqrgurTgu4jguofgupfgurXgu4jgupfgu4jgurLgupnguoTgurTgupTguqfgu4jgurLgupfgu4jgurLgupngu4DguqvgurHgupngu4Pgupngu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupnguq3gurfgu4jgupngu4bgu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9IjI4MDUxMDMyNDExNTM5MDcxNzQiPiLgu4HguoHgu4ngu4TguoLguoTguqfgurLguqHgu4TguqfguoLguq3guofguq3gurDgupngurTgu4DguqHguorgurHgupngu4LgupTguo3guq7guqfguqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9Ijc2OTAwNjM0Mjg5MjQzNDM1NzEiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqb4LuI4Lq94LqZ4LqE4Lqn4Lqy4Lqh4LuE4Lqn4Lqt4Lqw4LqZ4Lq04LuA4Lqh4LqK4Lqx4LqZ4LqX4Lq74LuI4Lqn4LuE4LqbICjguq3gurDgupngurTgu4DguqHguorgurHgupngu4TguqfguoLgurbgu4ngupkg4Lqr4Lq84Lq34LqK4LuJ4Lqy4Lql4Lq74LqHKSDgu4TgupTgu4ngupXgurDguqvgurzguq3gupTgu4DguqfguqXgurIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VBcHBUb2tlbnMiIG1zZ2lkPSIxMjg2NTA1NzE3MDUwMTIxMzcwIj4i4LqI4Lqx4LqU4LqB4Lqy4LqZ4LuC4LqX4LuA4LqE4LqZ4LqC4Lqt4LqH4LuB4Lqt4Lqx4Lqa4LqvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQXBwVG9rZW5zIiBtc2dpZD0iODA0MzQzMTcxMzAxNDM5NTY3MSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6quC7ieC6suC6hyDgu4HguqXgurDguojgurHgupTguoHgurLgupngu4Lgupfgu4DguoTgupnguoLguq3guofgupXgurvgupngu4Dguq3guocg4LuC4LqU4LqN4LqC4LuJ4Lqy4Lqh4LqB4Lqy4LqZ4LqI4Lqx4LqU4LqV4Lqy4Lqh4Lql4Lqz4LqU4Lqx4LqaIFog4Lqb4Lq74LqB4LqB4Lqw4LqV4Lq04LqC4Lqt4LqH4Lqe4Lqn4LqB4Lqh4Lqx4LqZ4LuE4LqbLiDgu4Hguq3gurHguprguq/gupfgurvgu4jguqfgu4Tgupvguprgu43gu4jguoTguqfgupnguojgurPgu4DgupvgurHgupngupXgu4nguq3guofgu4Pguorgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mcmVlemVTY3JlZW4iIG1zZ2lkPSI0NzA4MTgxMTg0NDQxODgwMTc1Ij4i4LqE4LuJ4Lqy4LqH4Luc4LuJ4Lqy4LqI4LuNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZnJlZXplU2NyZWVuIiBtc2dpZD0iODU1ODkyMzc4OTIyMjY3MDA2NCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6hOC7ieC6suC6h+C7nOC7ieC6suC6iOC7jeC7hOC6p+C7ieC6iuC6u+C7iOC6p+C6hOC6suC6pyDguqrgurPguqXgurHguprguoHgurLgupngupvgu4jgur3gupngu4DgupvgurHgupngu4Hguprguprgu4DgupXgurHguqHgu5zgu4ngurLguojgu40uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbmplY3RFdmVudHMiIG1zZ2lkPSIxMzc4NzQ2NTg0MDIzNTg2NjAwIj4i4LqB4Lq74LqU4Lqb4Lq44LuI4Lqh4LuB4Lql4Lqw4Lqb4Lq44LuI4Lqh4LqE4Lqn4Lqa4LqE4Lq44LqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5qZWN0RXZlbnRzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDYzNTI1NjU1OTk5Njg2MzIiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guqrgurvgu4jguofguoHgurTgupTguojgurDguoHgurPguoHgurLgupngupvgu4nguq3gupnguoLgu43gu4nguqHgurngupnguoLguq3guofguqHgurHgupkgKOC7gOC6iuC6seC7iOC6mTog4LqB4Lqy4LqZ4LqB4Lq74LqU4Lqb4Lq44LuI4LqhIOC7geC6peC6sOC6reC6t+C7iOC6meC7hikg4Lqr4Lqy4LuB4Lqt4Lqx4Lqa4Lqv4Lqt4Lq34LuI4LqZLiDgu4Hguq3gurHguprguq/gupfgurXgu4jgu4DgupvgurHgupnguq3gurHgupngupXgurDguqXgurLguo3guq3gurLgupTgu4Pguorgu4nguoTgurjgupnguqrgurvguqHguprgurHgupTgupngurXgu4kg4LuA4Lqe4Lq34LuI4Lqt4LqE4Lqn4Lqa4LqE4Lq44Lqh4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1MzEyODA1NzU3MjMyNjI1MyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguqrgurvgu4jguofguoHgurLgupngupvgu4nguq3gupnguoLgu43gu4nguqHgurngupnguoLguq3guofgupXgurvgupngu4Dguq3guocgKOC6geC6suC6meC6geC6u+C6lOC6m+C6uOC7iOC6oSDgu4HguqXgurDguq3gurfgu4jgupngu4YuKSDgu4Pguqvgu4ngu4Hguq3gurHguprguq/guq3gurfgu4jgupkuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jSDguqrgurLguqHgurLgupTgu4Pguorgu4nguqrgurTgu4jguofgupngurXgu4ngu4Dgup7gurfgu4jguq3guo3gurbgupTgu4Dguq3gurvgurLguoHgurLgupnguoTguqfguprguoTgurjguqHgu4LgupfguqXgurDguqrgurHguprgupfgurHguofgu53gurvgupTgu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkSW5wdXRTdGF0ZSIgbXNnaWQ9IjQ2OTQyODkwMDA0MTI0OTIzNCI+IuC6muC6seC6meC6l+C6tuC6geC6quC6tOC7iOC6h+C6l+C6teC7iOC6l+C7iOC6suC6meC6nuC6tOC6oSDgu4HguqXgurDguoHgurLgupnguoHgurDgupfgurPgupfgurXgu4jgupfgu4jgurLgupngu4Dguq7gurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkSW5wdXRTdGF0ZSIgbXNnaWQ9IjgzODc3NTQ5MDE2ODg3MjgwNDMiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4DguprgurTgu4jguofguoHgurLgupnguoHgurvgupTgupvgurjgu4jguqHguoLguq3guofgupfgu4jgurLgupkg4LuA4Lqh4Lq34LuI4Lqt4Lqh4Lq14Lqb4Lqw4LqV4Lq04Lqq4Lqz4Lqe4Lqx4LqZ4LqB4Lqx4Lqa4LuB4Lqt4Lqx4Lqa4Lqv4Lqt4Lq34LuI4LqZICjgu4DguorgurHgu4jgupk6IOC6geC6suC6meC6nuC6tOC6oeC6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6mSkuIOC7geC6reC6seC6muC6r+C6l+C6u+C7iOC6p+C7hOC6m+C6muC7jeC7iOC6hOC6p+C6meC6iOC6s+C7gOC6m+C6seC6meC6leC7ieC6reC6h+C7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRJbnB1dE1ldGhvZCIgbXNnaWQ9IjMzNjAwNjQ2MjAyMzA1MTU3NzYiPiLgu4Dguorgurfgu4jguq3guqHgu4Lguo3guofguoHgurHguprguqfgurTgupfgurXgupvgu4nguq3gupnguoLgu43gu4nguqHgurngupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kSW5wdXRNZXRob2QiIG1zZ2lkPSIzMjUwNDQwMzIyODA3Mjg2MzMxIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4Lqc4Lq54LuI4LqW4Lq34Lqc4Lq54LqB4LqB4Lqx4Lqa4Lqt4Lq04LqZ4LuA4LqV4Lq14LuA4Lqf4LqU4Lql4Lqw4LqU4Lqx4Lqa4Lqq4Lq54LqH4Lqq4Lq44LqUIOC6guC6reC6h+C6ruC6ueC6muC7geC6muC6muC6geC6suC6meC6m+C7ieC6reC6meC6guC7jeC7ieC6oeC6ueC6mS4g4Lqa4LuN4LuI4LqI4Lqz4LuA4Lqb4Lqx4LqZ4Lqq4Lqz4Lql4Lqx4Lqa4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq74LuI4Lqn4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZEFjY2Vzc2liaWxpdHlTZXJ2aWNlIiBtc2dpZD0iNTM1NzczMzk0MjU1NjAzMTU5MyI+IuC7gOC6iuC6t+C7iOC6reC6oeC7guC6jeC6h+C6geC6seC6muC6muC7jeC6peC6tOC6geC6suC6meC6iuC7iOC6p+C6jeC6geC6suC6meC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C7g+C6lOC6meC6tuC7iOC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRBY2Nlc3NpYmlsaXR5U2VydmljZSIgbXNnaWQ9IjcwMzQ2MTU5Mjg2MDkzMzEzNjgiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Dguojgurvgu4ngurLguoLguq3guocg4LuA4LqK4Lq34LuI4Lqt4Lqh4LuC4LqN4LqH4Lqq4LuI4Lqn4LqZ4LqV4Lq04LqU4LqV4LuN4LuI4Lql4Lqw4LqU4Lqx4Lqa4LuA4LqX4Lq04LqH4Lqq4Lq44LqUIOC6guC6reC6h+C6muC7jeC6peC6tOC6geC6suC6meC6geC6suC6meC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6hy4g4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq74LuI4Lqn4LuE4Lqb4Lqa4LuN4LuI4LqE4Lqn4LqZ4LqI4Lqz4LuA4Lqb4Lqx4LqZ4LqV4LuJ4Lqt4LqH4LuD4LqK4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFByaW50U2VydmljZSIgbXNnaWQ9Ijg0NjI4MTUxNzk1NzI3NDg3NjEiPiLgupzgurnguoHigIvguqHgurHgupTigIvguoHgurHguprigIvguoHgurLgupnigIvguprgu43igIvguqXgurTigIvguoHgurLgupnigIvgup7gurTguqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUHJpbnRTZXJ2aWNlIiBtc2dpZD0iNzk2MDA2NzYyMzIwOTExMTEzNSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7gOC6iOC6u+C7ieC6suC6guC6reC6h+C6nOC6ueC6geC6geC6seC6muC6quC7iOC6p+C6meC6leC6tOC6lOC6leC7jeC7iOC6nOC6ueC7iOC7g+C6iuC7ieC6guC6reC6h+C6geC6suC6meC6muC7jeC6peC6tOC6geC6suC6meC6geC6suC6meC6nuC6tOC6oS4g4Lqa4LuN4LuI4Luc4LuJ4Lqy4LqI4Lqw4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4Lqq4Lqz4Lql4Lqx4Lqa4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq74LuI4Lqn4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzQWxsUHJpbnRKb2JzIiBtc2dpZD0iMTEyMDc5MjQ2ODQ2NTcxMTE1OSI+IuC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C6p+C6veC6geC6geC6suC6meC6nuC6tOC6oeC6l+C6seC6h+C7neC6u+C6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0FsbFByaW50Sm9icyIgbXNnaWQ9IjI5NzgxODUzMTEwNDE4NjQ3NjIiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Dguojgurvgu4ngurLguoLguq3guofgu4DguoLgurvgu4ngurLgu4DgupbgurTguofguqfgur3guoHguoHgurLgupngup7gurTguqHgupfgurXgu4jgupbgurfguoHguqrgu4ngurLguofgu4LgupTguo3gu4Hguq3gurHguprguq/guq3gurfgu4jgupkuIOC6muC7jeC7iOC7nOC7ieC6suC6iOC6sOC6leC7ieC6reC6h+C6geC6suC6meC6quC6s+C6peC6seC6muC7geC6reC6seC6muC6r+C6l+C6u+C7iOC6p+C7hOC6my4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iMjc1MjczMTMwMDQxOTQxMDcyNCI+IuC7gOC6iuC6t+C7iOC6reC6oeC7guC6jeC6h+C6geC6seC6muC6muC7jeC6peC6tOC6geC6suC6mSBORkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kTmZjU2VydmljZSIgbXNnaWQ9IjYxMjA2NDc2MjkxNzQwNjY4NjIiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngupzgurngu4jgupbgurfguq3gurjgupvgurDguoHguq3gupngu4Pguqvgu4nguqrgurLguqHgurLgupTgu4Dguorgurfgu4jguq3guqHgu4Lguo3guofgu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupkg4LqX4Lq14LuI4LqE4LuJ4Lqy4LqN4LqB4Lqx4Lqa4Lqa4Lqx4LqUIE5GQy4g4Lqh4Lqx4LqZ4Lqa4LuN4LuI4LqI4Lqz4LuA4Lqb4Lqx4LqZ4LqV4LuJ4Lqt4LqH4LuD4LqK4LuJ4LuD4LqZ4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lqz4Lqh4Lqw4LqU4LqyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iNzM1ODM3ODQwMTkxNTI4NzkzOCI+IuC7gOC6iuC6t+C7iOC6reC6oeC7guC6jeC6h+C7hOC6m+C6q+C6suC6muC7jeC6peC6tOC6geC6suC6meC6quC6u+C7iOC6h+C6guC7jeC7ieC6hOC6p+C6suC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRUZXh0U2VydmljZSIgbXNnaWQ9IjgxNTE5Njg5MTA5NzM5OTg2NzAiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngupzgurngu4jgupbgurfgupzgurnguoHguoHgurHguprguq3gurTgupngu4DgupXgurXgu4Dgup/gupTguqXgurDgupTgurHguprguqrgurnguofguqrgurjgupQg4LqC4Lqt4LqH4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZ4LqC4LuN4LuJ4LqE4Lqn4Lqy4LqhKOC6lS7guqIuIFNwZWxsQ2hlY2tlclNlcnZpY2UpLiDguprgu43gu4jguojgurPgu4DgupvgurHgupnguqrgurPguqXgurHguprgu4Hguq3gurHguprguq/gupfgurvgu4jguqfgu4TgupsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kVnBuU2VydmljZSIgbXNnaWQ9IjQ3MDg1OTYwMjExNjE0NzMyNTUiPiLgu4Dguorgurfgu4jguq3guqHgu4Lguo3guofguoHgurHguprguprgu43guqXgurTguoHgurLgupkgVlBOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSIyMDY3ODQ1NTY0NTgxNjkzOTA1Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuA4LqI4Lq74LuJ4Lqy4LqC4Lqt4LqH4LuA4LqK4Lq34LuI4Lqt4Lqh4LuC4LqN4LqH4LqB4Lqx4Lqa4Lqq4LuI4Lqn4LqZ4LqV4Lq04LqU4LqV4LuN4LuI4Lql4Lqw4LqU4Lqx4Lqa4LuA4LqX4Lq04LqH4Lqq4Lq44LqUIOC6guC6reC6h+C6muC7jeC6peC6tOC6geC6suC6mSBWUE4uIOC7geC6reC6seC6muC6r+C6l+C6u+C7iOC6p+C7hOC6m+C6muC7jeC7iOC6hOC6p+C6meC6iOC6s+C7gOC6m+C6seC6meC6leC7ieC6reC6h+C7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRXYWxscGFwZXIiIG1zZ2lkPSI4NzE2NDAwMjc5OTM3ODU2NDYyIj4i4LuA4LqK4Lq34LuI4Lqt4Lqh4LuC4LqN4LqH4LqB4Lqx4Lqa4Lqe4Lqy4Lqa4Lqe4Lq34LuJ4LqZ4Lqr4Lq84Lqx4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFdhbGxwYXBlciIgbXNnaWQ9IjcxMDg0Mjg2OTI1OTU0OTE2NjgiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngupzgurngu4jgu4Pguorgu4ngu4Dguorgurfgu4jguq3guqHgu4Lguo3guofguoHgurHguprguqrgu4jguqfgupngupXgurTgupTgupXgu43gu4jguqXgurDgupTgurHguprguqrgurnguofguqrgurjgupQg4LqC4Lqt4LqH4Lqe4Lqy4Lqa4Lqe4Lq34LuJ4LqZ4Lqr4Lq84Lqx4LqH4LuD4LqU4LqZ4Lq24LuI4LqHLiDgu4Hguq3gurHguprguq/gupfgurPguqHgurDgupTgurLguprgu43gu4jguoTguqfgupnguojgurPgu4DgupvgurHgupngupXgu4nguq3guofgu4Pguorgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kUmVtb3RlVmlld3MiIG1zZ2lkPSI1Njk3OTg3NzU5ODk3MzY3MDk5Ij4i4LuA4LqK4Lq34LuI4Lqt4Lqh4LuC4LqN4LqH4LuE4Lqb4Lqr4Lqy4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZ4Lqn4Lq04LqU4LuA4LqI4Lqx4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFJlbW90ZVZpZXdzIiBtc2dpZD0iNDcxNzk4NzgxMDEzNzY5MjU3MiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC6nOC6ueC7iOC6luC6t+C6nOC6ueC6geC6geC6seC6muC6reC6tOC6meC7gOC6leC6teC7gOC6n+C6lOC6peC6sOC6lOC6seC6muC6quC6ueC6h+C6quC6uOC6lCDguoLguq3guofguprgu43guqXgurTguoHgurLgupnguqfgurTgu4DguojgurHgupQuIOC6muC7jeC7iOC6iOC6s+C7gOC6m+C6seC6meC6quC6s+C6peC6seC6muC7geC6reC6seC6muC6r+C6l+C6u+C7iOC6p+C7hOC6my4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9Ijg3MDQ5ODYxNjM3MTE0NTUwMTAiPiLgupXgurTgupTgupXgu43gu4jguoHgurHguprgupzgurngu4jgu4DguprgurTgu4jguofgu4Hguo3guofguq3gurjgupvgurDguoHguq3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kRGV2aWNlQWRtaW4iIG1zZ2lkPSI1Njk3MTU0MTk1NDM5MDc5MzAiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Dguojgurvgu4ngurLguoLguq3guofguqrgurvgu4jguofgu4DguojgupTgupXgurDgupngurLguqvgurLgupzgurngu4jgu4DguprgurTgu4jguofgu4Hguo3guofguqXgurDguprgurvguprguq3gurjgupvgurDguoHguq3gupkuIOC7geC6reC6seC6muC6r+C6l+C6u+C7iOC6p+C7hOC6m+C6muC7jeC7iOC6hOC6p+C6meC6iOC6s+C7gOC6m+C6seC6meC6leC7ieC6reC6h+C7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZURldmljZUFkbWlucyIgbXNnaWQ9IjQyNDg4Mjg5MDAwNDU4MDg3MjIiPiLgu4Dgup7gurXgu4jguqEg4Lqr4Lq84Lq34Lql4Lq24Lqa4Lqc4Lq54LuI4LuA4Lqa4Lq04LuI4LqH4LuB4LqN4LqH4Lql4Lqw4Lqa4Lq74Lqa4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNTAyNTYwODE2NzcwOTk0MjQ4NSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7gOC6iOC6u+C7ieC6suC6guC6reC6h+C6quC6suC6oeC6suC6lOC6peC6tuC6miDguqvgurzgurfguqXgurbguprguoLgu43gu4nguqHgurngupnguq3gurjgupvgurDguoHguq3gupngupfgurXgu4jgupngurPgu4Pguorgu4ngu4TgupTgu4kuIOC7geC6reC6seC6muC6r+C6l+C6u+C7iOC6p+C7hOC6m+C6muC7jeC7iOC6iOC6s+C7gOC6m+C6seC6meC6leC7ieC6reC6h+C7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldE9yaWVudGF0aW9uIiBtc2dpZD0iMzM2NTk0NzcxNzE2Mzg2Njg0NCI+IuC6m+C7iOC6veC6meC6peC6p+C6h+C6guC6reC6h+C7nOC7ieC6suC6iOC7jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldE9yaWVudGF0aW9uIiBtc2dpZD0iMzA0NjEyNjYxOTMxNjY3MTQ3NiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6m+C7iOC6veC6meC6geC6suC6meC7neC6uOC6meC6guC6reC6h+C7nOC7ieC6suC6iOC7jeC7hOC6lOC7ieC6l+C6uOC6geC7gOC6p+C6peC6si4g4Lqa4LuN4LuI4LqE4Lqn4LqZ4LqW4Lq34LqB4LuD4LqK4LuJ4LuD4LqZ4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4LqX4Lq74LuI4Lqn4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0UG9pbnRlclNwZWVkIiBtc2dpZD0iOTE3NTM3MTYxMzMyMjU2MjkzNCI+IuC6m+C7iOC6veC6meC6hOC6p+C6suC6oeC7hOC6p+C6peC6ueC6geC6quC6reC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFBvaW50ZXJTcGVlZCIgbXNnaWQ9IjY4NjY1NjMyMzQyNzQxMDQyMzMiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gupvgu4jgur3gupnguoTguqfgurLguqHgu4Tguqfgu4DguqHgurvgu4ngurIg4Lqr4Lq84Lq34Lql4Lq54LqB4Lqq4Lqt4LqZ4LuB4LqX4Lqj4Lqx4LqB4LuB4Lqe4LqU4LuD4LqZ4LuA4Lqn4Lql4Lqy4LuD4LqU4LqB4LuN4LuE4LqU4LuJLiDgu4Hguq3gurHguprguq/gupfgurvgu4jguqfgu4Tgupvguprgu43gu4jguoTguqfgupnguojgurPgu4DgupvgurHgupngupXgu4nguq3guofgu4Pguorgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9IjQ3Nzg3MzE3MDM2MDA5MDkzNDAiPiLgupvgu4jgur3gupnguq7gurnguprgu4Hguprguprgu4Hgupvgu4ngupngup7gurTguqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9Ijg0ODAwMTY3NzExMzQxNzU4NzkiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gupvgu4jgur3gupnguq7gurnguprgu4HguprguprguoLguq3guofgu4Hgupvgu4ngupngurPgup7gurTguqEuIOC6muC7jeC7iOC6iOC6s+C7gOC6m+C6seC6meC6quC6s+C6peC6seC6muC7geC6reC6seC6muC6r+C6l+C6u+C7iOC6p+C7hOC6my4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0NTM5MDAyOTkxOTQ3Mzc2NjU5Ij4i4Lqq4Lq74LuI4LqH4Lqq4Lqx4LqZ4LqN4Lqy4LqZIExpbnV4IOC6q+C6suC7geC6reC6seC6muC6ryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0ODk2OTkyMDc5MTgyNjQ5MTQxIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqu4LuJ4Lqt4LqH4LqC4LuN4LuD4Lqr4LuJ4Lqq4Lq74LuI4LqH4Lqq4Lqx4LqZ4LqN4Lqy4LqZIOC7geC6iOC7ieC6h+C7hOC6m+C6q+C6suC7guC6m+C6o+C7gOC6iuC6quC6l+C6teC7iOC6jeC6seC6h+C7gOC6ruC6seC6lOC6p+C6veC6geC6ouC6ueC7iOC6l+C6seC6h+C7neC6u+C6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcnNpc3RlbnRBY3Rpdml0eSIgbXNnaWQ9Ijg4NDExMTM2Mjc5NTU1NjM5MzgiPiLgu4Dguq7gurHgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4Dguq7gurHgupTguqfgur3guoHgupXgurDguqvgurzguq3gupTgu4DguqfguqXgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg1MjUxODkyNzIzMjkwODYxMzciPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqq4Lqy4Lqh4Lqy4LqU4LuA4Lqu4Lqx4LqU4LuD4Lqr4LuJ4Lqa4Lqy4LqH4Lqe4Lqy4LqB4Lqq4LuI4Lqn4LqZ4LqC4Lqt4LqH4Lqh4Lqx4LqZ4LuA4Lqt4Lqx4LqHIOC6hOC6u+C6h+C7guC6leC7g+C6meC7nOC7iOC6p+C6jeC6hOC6p+C6suC6oeC6iOC6sy4g4Lqq4Lq04LuI4LqH4LqZ4Lq14LuJ4Lqq4Lqy4Lqh4Lqy4LqU4LqI4Lqz4LqB4Lqx4LqU4Luc4LuI4Lqn4LqN4LqE4Lqn4Lqy4Lqh4LqI4Lqz4LqX4Lq14LuI4Lqq4Lqy4Lqh4Lqy4LqU4LuD4LqK4LuJ4LuE4LqU4LuJ4LuC4LqU4LqN4LuB4Lqt4Lqx4Lqa4Lqv4Lqt4Lq34LuI4LqZIOC7gOC6ruC6seC6lOC7g+C6q+C7ieC7geC6l+C6seC6muC7gOC6peC6seC6lOC6iuC7ieC6suC6peC6u+C6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0Mzg0NzYwMDQ3NTA4Mjc4MjcyIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LuA4Lqu4Lqx4LqU4LuD4Lqr4LuJ4Lqq4LuI4Lqn4LqZ4LqZ4Lq24LuI4LqH4LqC4Lqt4LqH4LqV4Lq74LqZ4LuA4Lqt4LqHIOC6hOC6u+C6h+C6ouC6ueC7iOC6luC6suC6p+C6reC6meC7g+C6meC7nOC7iOC6p+C6jeC6hOC6p+C6suC6oeC6iOC6syDgu4DguorgurTgu4jguofguq3gurLgupTguqrgurLguqHgurLgupQg4LuA4Lqu4Lqx4LqU4LuD4Lqr4LuJ4LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4Luc4LuI4Lqn4LqN4LqE4Lqn4Lqy4Lqh4LqI4Lqz4LqC4Lqt4LqH4LuB4Lqt4Lqx4Lqa4LqvIOC6reC6t+C7iOC6meC6luC6t+C6geC6iOC6s+C6geC6seC6lCDguqrgurvgu4jguofgupzgurvgupngu4Dguq7gurHgupTgu4Pguqvgu4nguqHgurfgupbgurfguoLguq3guofgupfgu4jgurLgupngu4Dguq7gurHgupTguqfgur3guoHguorgu4ngurLguqXgurvguofgu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZWxldGVQYWNrYWdlcyIgbXNnaWQ9IjE4NDM4NTEyOTUzNzcwNTkzOCI+IuC6peC6tuC6muC7geC6reC6seC6muC6ryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RlbGV0ZVBhY2thZ2VzIiBtc2dpZD0iNzQxMTQ4MDI3NTE2NzIwNTA4MSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6peC6tuC6muC7geC6nuC6seC6geC7gOC6geC6seC6lCBBbmRyb2lkIOC6leC7iOC6suC6h+C7huC7hOC6lOC7iS4g4LuB4Lqt4Lqx4Lqa4Lqv4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqN4Lqt4Lqy4LqU4LuD4LqK4LuJ4LqE4Lqn4Lqy4Lqh4Lqq4Lqy4Lqh4Lqy4LqU4LqZ4Lq14LuJIOC7gOC6nuC6t+C7iOC6reC6peC6tuC6muC7geC6reC6seC6muC6r+C6l+C6teC7iOC6quC6s+C6hOC6seC6meC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NsZWFyQXBwVXNlckRhdGEiIG1zZ2lkPSIyNzQxMDkxOTE4NDU4NDI3NTYiPiLguqXgurbguprguoLgu43gu4nguqHgurngupnguoLguq3guofgu4Hguq3gurHguprguq/guq3gurfgu4jgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcFVzZXJEYXRhIiBtc2dpZD0iNDYyNTMyMzY4NDEyNTQ1OTQ4OCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6peC6tuC6muC6guC7jeC7ieC6oeC6ueC6meC6nOC6ueC7iOC7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RlbGV0ZUNhY2hlRmlsZXMiIG1zZ2lkPSIzMTI4NjY1NTcxODM3NDA4Njc1Ij4i4Lql4Lq24LqaIGNhY2hlIOC6guC6reC6h+C7geC6reC6seC6muC6r+C6reC6t+C7iOC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RlbGV0ZUNhY2hlRmlsZXMiIG1zZ2lkPSIzODEyOTk4NTk5MDA2NzMwMTk2Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lql4Lq24Lqa4LuE4Lqf4Lql4LuMIGNhY2hlIOC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFBhY2thZ2VTaXplIiBtc2dpZD0iNzQ3MjkyMTc2ODM1Nzk4MTk4NiI+IuC6geC6p+C6lOC6quC6reC6muC6nuC6t+C7ieC6meC6l+C6teC7iOC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC7geC6reC6seC6muC6ryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFBhY2thZ2VTaXplIiBtc2dpZD0iMzkyMTA2ODE1NDQyMDczODI5NiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6lOC6tuC6h+C7guC6hOC6lCwg4LqC4LuN4LuJ4Lqh4Lq54LqZIOC7geC6peC6sOC6guC6sOC7nOC6suC6lCBjYWNoZSDguoLguq3guofguqHgurHgupngu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnN0YWxsUGFja2FnZXMiIG1zZ2lkPSIyMTk5MTI4NDgyODIwMzA2OTI0Ij4i4LqV4Lq04LqU4LqV4Lqx4LuJ4LqH4LuB4Lqt4Lqx4Lqa4Lqv4LuC4LqU4LqN4LqB4Lq74LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iNTYyODUzMDk3MjU0ODA3MTI4NCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6leC6tOC6lOC6leC6seC7ieC6h+C7geC6nuC6seC6geC7gOC6geC6lCBBbmRyb2lkIOC7g+C7neC7iCDguqvgurzgurfgu4Hgup7gurHguoHgu4DguoHgupTgupfgurXgu4jguq3gurHguprgu4DgupTgupTgu4HguqXgu4nguqcuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jeC6reC6suC6lOC7g+C6iuC7ieC6hOC6uOC6meC6quC6u+C6oeC6muC6seC6lOC6meC6teC7iSDgu4Dgup7gurfgu4jguq3guqrgu4ngurLguofgu4Hguq3gurHguprguq/gu4Pgu53gu4jgupfgurXgu4jguqHgurXguqrgurTgupTguq3gurDgupngurjguo3gurLgupTguqrgurnguofguoHguqfgu4jgurLgu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jbGVhckFwcENhY2hlIiBtc2dpZD0iNzQ4NzI3OTM5MTcyMzUyNjgxNSI+IuC6peC6tuC6muC6guC7jeC7ieC6oeC6ueC6mSBjYWNoZSDguoLguq3guofgu4Hguq3gurHguprguq/gupfgurHguofgu53gurvgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4OTc0NjQwODcxOTQ1NDM0NTY1Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqq4LuJ4Lqy4LqH4Lqe4Lq34LuJ4LqZ4LqX4Lq14LuI4Lqr4Lqn4LuI4Lqy4LqH4LuD4LqZ4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqUIOC7guC6lOC6jeC6geC6suC6meC6peC6tuC6muC7hOC6n+C6peC7jOC7g+C6meC7hOC6lOC7gOC6o+C6seC6geC6l+C7jeC6o+C6tSBjYWNoZSDguoLguq3guofgu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupnguq3gurfgu4jgupkuIOC6hOC6uOC6meC6quC6u+C6oeC6muC6seC6lOC6meC6teC7ieC6reC6suC6lOC7gOC6ruC6seC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6reC6t+C7iOC6mSDgu4DguqXgurXgu4jguqHgu4Dguq7gurHgupTguqfgur3guoHguorgu4ngurLguqXgurvguofgu4Dgup7gurLgurDgupXgu4nguq3guofguoLgur3gupnguoLgu43gu4nguqHgurngupnguoTgurfgupngu4Pgu53gu4guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBDYWNoZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI0NTk0NDEwMjE5NTY0MzY3NzkiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupngu4Dgup7gurXgu4jguqHgu4Dgupngurfgu4nguq3gupfgurXgu4jguqvguqfgu4jgurLguofgu4Pguqvgu4ngu4LgupfguqXgurDguqrgurHgupog4LuC4LqU4LqN4LqB4Lqy4LqZ4Lql4Lq24Lqa4LuE4Lqf4Lql4LuM4LuD4LqZ4LuE4LqU4LuA4Lqj4Lqx4LqB4LqX4LuN4Lqj4Lq1IGNhY2hlIOC6guC6reC6h+C7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6reC6t+C7iOC6meC7hi4g4LqB4Lqy4LqZ4LqB4Lqw4LqX4Lqz4LqZ4Lq14LuJ4Lqt4Lqy4LqU4LuA4Lqu4Lqx4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4Lqt4Lq34LuI4LqZIOC7gOC6ruC6seC6lOC6p+C6veC6geC7hOC6lOC7ieC6iuC7ieC6suC6peC6u+C6h+C7gOC6meC6t+C7iOC6reC6h+C6iOC6suC6geC6nuC6p+C6geC6oeC6seC6meC6leC7ieC6reC6h+C7hOC6lOC7ieC6lOC6tuC6h+C6guC7jeC7ieC6oeC6ueC6meC6hOC6t+C6meC7g+C7neC7iC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdmVQYWNrYWdlIiBtc2dpZD0iMzI4OTg5MDI3MTY0NTkyMTQxMSI+IuC6jeC7ieC6suC6jeC6iuC6seC6muC6nuC6sOC6jeC6suC6geC6reC6meC7geC6reC6seC6muC6ryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdmVQYWNrYWdlIiBtc2dpZD0iMzE5NTYyMjE3Nzc4MjQ0NTI0Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LqN4LuJ4Lqy4LqN4LuB4Lqr4Lql4LuI4LqH4LqK4Lqx4Lqa4Lqe4Lqw4LqN4Lqy4LqB4Lqt4LqZ4LuB4Lqt4Lqx4Lqa4LqvIOC6iOC6suC6geC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC6nuC6suC6jeC7g+C6mSDguqrgurngu4jguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupngup7gurLguo3gupnguq3guoEg4LuB4Lql4Lqw4LuD4LqZ4LqX4Lqy4LqH4LqB4Lqx4Lqa4LqB4Lqx4LqZ4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZExvZ3MiIG1zZ2lkPSI2NjE1Nzc4NTQzMTk4OTY3NjE0Ij4i4Lqt4LuI4Lqy4LqZ4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqa4Lqx4LqZ4LqX4Lq24LqB4LqX4Lq14LuI4Lqq4Lqz4LqE4Lqx4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZExvZ3MiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgyMDYxMzEzMjkzNDU1MTUxIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqt4LuI4Lqy4LqZ4LuE4Lqf4Lql4LuM4Lqa4Lqx4LqZ4LqX4Lq24LqB4Lql4Lqw4Lqa4Lq74Lqa4LqV4LuI4Lqy4LqH4LuG4LqC4Lqt4LqH4Lql4Lqw4Lqa4Lq74LqaLiDguoTgurjgupnguqrgurvguqHguprgurHgupTgupngurXgu4nguojgurDguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqq4Lqy4Lqh4Lqy4LqU4LqE4Lq74LuJ4LqZ4Lqe4Lq74Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lq74LuI4Lqn4LuE4LqbIOC6geC7iOC6veC6p+C6geC6seC6muC6quC6tOC7iOC6h+C6l+C6teC7iOC6l+C7iOC6suC6meC6geC6s+C6peC6seC6h+C7gOC6ruC6seC6lOC6geC6seC6muC7geC6l+C6seC6muC7gOC6peC6seC6lCDgu4DguorgurTgu4jguofguq3gurLgupTguq7guqfguqHgu4DgupbgurTguofguoLgu43gu4nguqHgurngupnguqrgu4jguqfgupngu4LgupXgupngurPgu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZExvZ3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMDYzNDM4MTQwMjQxNTYwNDQzIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqt4LuI4Lqy4LqZ4LuE4Lqf4Lql4LuM4Lqa4Lqx4LqZ4LqX4Lq24LqB4Lql4Lqw4Lqa4Lq74Lqa4LqV4LuI4Lqy4LqH4LuG4LqC4Lqt4LqH4Lql4Lqw4Lqa4Lq74LqaLiDguoTgurjgupnguqrgurvguqHguprgurHgupTgupngurXgu4nguojgurDguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqq4Lqy4Lqh4Lqy4LqU4LqE4Lq74LuJ4LqZ4Lqe4Lq74Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lq74LuI4Lqn4LuE4LqbIOC6geC7iOC6veC6p+C6geC6seC6muC6quC6tOC7iOC6h+C6l+C6teC7iOC6l+C7iOC6suC6meC6geC6s+C6peC6seC6h+C7gOC6ruC6seC6lOC6geC6seC6muC7guC6l+C6peC6sOC6quC6seC6miDgu4DguorgurTgu4jguofguq3gurLgupTguq7guqfguqHgu4DgupbgurTguofguoLgu43gu4nguqHgurngupnguqrgu4jguqfgupngu4LgupXgupngurPgu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hbnlDb2RlY0ZvclBsYXliYWNrIiBtc2dpZD0iNzE1ODA1NTU1ODIzODgxODE4Ij4i4LuD4LqK4LuJ4LqV4Lq74Lqn4LqW4Lqt4LqU4Lql4Lqw4Lqr4Lqx4LqU4LuD4LqU4LqB4LuN4LuE4LqU4LuJ4LuA4Lqe4Lq34LuI4Lqt4LqB4Lqy4LqZ4Lqr4Lq84Lq04LuJ4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjgyODM5MTI0ODg0MzMxODkwMTAiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4Pguorgu4ngupfgurjguoHgupXgurvguqfgupbguq3gupTguqXgurDguqvgurHgupTguqrgurfgu4jgupfgurXgu4jgupXgurTgupTgupXgurHgu4nguofgu4Tguqfgu4ngu4HguqXgu4nguqcg4LuA4Lqe4Lq34LuI4Lqt4LqB4Lqy4LqZ4LqW4Lqt4LqU4Lql4Lqw4Lqr4Lqx4LqU4LqB4Lqy4LqZ4Lqr4Lq84Lq04LuJ4LqZ4LuE4Lqf4Lql4LuM4LqV4LuI4Lqy4LqH4LuGLiI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwZXJtbGFiX21hbmFnZUNhQ2VydGlmaWNhdGVzICgxNjc4MzkxODk2Nzg2ODgyMDE0KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1kZXNjX21hbmFnZUNhQ2VydGlmaWNhdGVzICg0MDE1NjQ0MDQ3MTk2OTM3MDE0KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kaWFnbm9zdGljIiBtc2dpZD0iODA3Njc0Mzk1MzkwODAwMDM0MiI+IuC6reC7iOC6suC6mS/guoLgur3gupkg4LuD4Lqq4LuI4LqK4Lqx4Lqa4Lqe4Lqw4LqN4Lqy4LqB4Lqt4LqZ4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4LqC4Lqt4LqH4LqB4Lq44LuI4Lqh4Lqn4Lq04LuE4LqIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlhZ25vc3RpYyIgbXNnaWQ9IjY2MDgyOTU2OTIwMDI0NTIyODMiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupnguq3gu4jgurLgupkg4LuB4Lql4Lqw4LqC4Lq94LqZIOC7g+C6quC7iOC6l+C6uOC6geC6iuC6seC6muC6nuC6sOC6jeC6suC6geC6reC6meC6l+C6teC7iOC7gOC6m+C6seC6meC6guC6reC6h+C6geC6uOC7iOC6oeC6p+C6tOC6meC6tOC7hOC6qjsg4LqV4Lq74Lqn4Lqi4LuI4Lqy4LqHOiDgu4Tgup/guqXgu4zgu4PgupkgL2Rldi4g4Lqq4Lq04LuI4LqH4LqZ4Lq14LuJ4Lqt4Lqy4LqU4Lqq4Lq74LuI4LqH4Lqc4Lq74LqZ4LqB4Lqw4LqX4Lq74Lqa4LqV4LuN4LuI4LqE4Lqn4Lqy4Lqh4Lqq4Lqw4LqW4Lq94LqZIOC7geC6peC6sOC6hOC6p+C6suC6oeC6m+C6reC6lOC7hOC6nuC6guC6reC6h+C6peC6sOC6muC6u+C6mi4g4Lqq4Lq04LuI4LqH4LqZ4Lq14LuJ4LqE4Lqn4LqZ4LuD4LqK4LuJ4Lqq4Lqz4Lqr4Lq84Lqx4Lqa4LqB4Lqy4LqZ4Lqn4Lq04LuA4LqE4Lqy4Lqw4Lqa4Lqx4LqZ4Lqr4Lqy4LqI4Lqz4LuA4Lqe4Lqy4LqwIOC6guC6reC6h+C6muC6suC6h+C6ruC6suC6lOC7geC6p+C7guC6lOC6jeC6nOC6ueC7iOC6nOC6sOC6peC6tOC6lCDguqvgurzgurfgupzgurngu4jgupvgurDgupXgurTguprgurHgupTguoHgurLgupngu4Dgupfgurvgu4jgurLgupngurHgu4ngupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VDb21wb25lbnRTdGF0ZSIgbXNnaWQ9IjYzMzU1NzY3NzU3MTEwOTU5MzEiPiLgu4DgupvgurXgupQg4Lqr4Lq84Lq34Lqb4Lq04LqU4LqZ4Lqz4LuD4LqK4LuJ4Lqt4Lq74LqH4Lqb4Lqw4LqB4Lqt4Lqa4LqC4Lqt4LqH4LuB4Lqt4Lqx4Lqa4LqvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg4ODc0MzU3NDA5ODIyMzcyOTQiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqb4LuI4Lq94LqZ4LuB4Lqb4LqH4Lqt4Lq74LqH4Lqb4Lqw4LqB4Lqt4Lqa4LqC4Lqt4LqH4LuB4Lqt4Lqx4Lqa4Lqv4Lqt4Lq34LuI4LqZIOC6p+C7iOC6suC6luC6t+C6geC7gOC6m+C6teC6lOC6meC6s+C7g+C6iuC7iSDguqvgurzgurfguprgu43gu4guIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jSDguq3gurLgupTgu4Pguorgu4nguoTguqfgurLguqHguqrgurLguqHgurLgupTgupngurXgu4kg4LuA4Lqe4Lq34LuI4Lqt4Lqb4Lq04LqU4LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4LqE4Lqn4Lqy4Lqh4Lqq4Lqy4Lqh4Lqy4LqU4Lqq4Lqz4LqE4Lqx4LqZ4LqC4Lqt4LqH4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqULiDguoHgurLgupnguoHgurPgupngurvgupTguqrgurTgupTgupngurXgu4nguoTguqfgupngupbgurfguoHgu4Pguorgu4nguqLgu4jgurLguofguqXgurDguqHgurHgupTguqXgurDguqfgurHguocsIOC7gOC6nuC6suC6sOC6oeC6seC6meC7gOC6m+C6seC6meC7hOC6m+C7hOC6lOC7ieC6l+C6teC7iOC6iOC6sOC7gOC6ruC6seC6lOC7g+C6q+C7ieC6reC6u+C6h+C6m+C6sOC6geC6reC6muC6guC6reC6h+C7geC6reC6seC6muC6r+C6ouC6ueC7iOC7g+C6meC6quC6sOC6luC6suC6meC6sCDgu4Pguorgu4nguoHgurLgupnguprgu43gu4jgu4TgupTgu4ksIOC6muC7jeC7iOC7geC6meC7iOC6meC6reC6mSDguqvgurzgurfguprgu43gu4jguqrgurDgupbgur3gupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODI3MjMyNDg0NDE2NTA1NjE1Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6m+C7iOC6veC6meC7geC6m+C6h+C6reC6u+C6h+C6m+C6sOC6geC6reC6muC6guC6reC6h+C7geC6reC6seC6muC6r+C6reC6t+C7iOC6mSDguqfgu4jgurLgupbgurfguoHgu4DgupvgurXgupTgupngurPgu4Pguorgu4kg4Lqr4Lq84Lq34Lqa4LuN4LuILiDgu4Hguq3gurHguprguq/gupfgurXgu4jgu4DgupvgurHgupnguq3gurHgupngupXgurDguqXgurLguo0g4Lqt4Lqy4LqU4LuD4LqK4LuJ4LqE4Lqn4Lqy4Lqh4Lqq4Lqy4Lqh4Lqy4LqU4LqZ4Lq14LuJIOC7gOC6nuC6t+C7iOC6reC6m+C6tOC6lOC6geC6suC6meC6meC6s+C7g+C6iuC7ieC6hOC6p+C6suC6oeC6quC6suC6oeC6suC6lOC6quC6s+C6hOC6seC6meC6guC6reC6h+C7guC6l+C6peC6sOC6quC6seC6mi4g4LqB4Lqy4LqZ4LqB4Lqz4LqZ4Lq74LqU4Lqq4Lq04LqU4LqZ4Lq14LuJ4LqE4Lqn4LqZ4LqW4Lq34LqB4LuD4LqK4LuJ4Lqi4LuI4Lqy4LqH4Lql4Lqw4Lqh4Lqx4LqU4Lql4Lqw4Lqn4Lqx4LqHLCDgu4Dgup7gurLgurDguqHgurHgupngu4DgupvgurHgupngu4Tgupvgu4TgupTgu4ngupfgurXgu4jguojgurDgu4Dguq7gurHgupTgu4Pguqvgu4nguq3gurvguofgupvgurDguoHguq3guprguoLguq3guofgu4Hguq3gurHguprguq/guqLgurngu4jgu4PgupnguqrgurDgupbgurLgupngurAg4LuD4LqK4LuJ4LqB4Lqy4LqZ4Lqa4LuN4LuI4LuE4LqU4LuJLCDguprgu43gu4jgu4Hgupngu4jgupnguq3gupkg4Lqr4Lq84Lq34Lqa4LuN4LuI4Lqq4Lqw4LqW4Lq94LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ3JhbnRSZXZva2VQZXJtaXNzaW9ucyIgbXNnaWQ9IjQ2MjczMTUzNTEwOTM1MDg3OTUiPiLguq3gurDgupngurjguqHgurHgupQg4Lqr4Lq84Lq34LqW4Lqt4LqU4LqW4Lqy4LqZ4LqB4Lqy4LqZ4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ3JhbnRSZXZva2VQZXJtaXNzaW9ucyIgbXNnaWQ9IjQwODg2NDI2NTQwODU4NTA2NjIiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupnguq3gurDgupngurjguqHgurHgupQg4Lqr4Lq84Lq34LqW4Lqt4LqZ4LqB4Lqy4LqZ4Lqt4Lqw4LqZ4Lq44Lqh4Lqx4LqU4Lqq4Lq04LqU4LuD4LqU4LqZ4Lq24LuI4LqH4Lqq4Lqz4Lql4Lqx4Lqa4LuC4LqV4Lqh4Lqx4LqZ4LuA4Lqt4LqHIOC6q+C6vOC6t+C7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6reC6t+C7iOC6meC7hi4g4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqNIOC6reC6suC6lOC7g+C6iuC7ieC6hOC6p+C6suC6oeC6quC6suC6oeC6suC6lOC6meC6teC7iSDgu4Dgup7gurfgu4jguq3gu4DguoLgurvgu4ngurLgu4DgupbgurTguofguoTgurjgupnguqrgurvguqHguprgurHgupTguprgurLguofguqLgu4jgurLguofgupfgurXgu4jgupfgu4jgurLgupnguprgu43gu4jgu4TgupTgu4nguq3gurDgupngurjguqHgurHgupTgu4Pguqvgu4ngup7guqfguoHguqHgurHgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcmVmZXJyZWRBcHBsaWNhdGlvbnMiIG1zZ2lkPSI4NDYzMTgxNjI4Njk1Mzk2MzkxIj4i4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJlZmVycmVkQXBwbGljYXRpb25zIiBtc2dpZD0iNDk3Mzk4Njc2MjI0MTc4MzcxMiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDgu4HguoHgu4ngu4TguoLgu4Hguq3gurHguprguq/gupfgurXgu4jgupfgu4jgurLgupngupXgu4nguq3guofguoHgurLgupngu4Pguorgu4kuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jSDguq3gurLgupTgupvgu4jgur3gupngu4Hgupvguofgu4Hguq3gurHguprgupfgurXgu4jgu4Dguq7gurHgupTguqfgur3guoHguqLgurngu4jgu4LgupTguo3guprgu43gu4jgu4Hguojgu4nguofgu4Pguqvgu4nguq7gurngu4kg4LuC4LqU4LqN4LqB4Lqy4LqZ4Lqb4Lqt4Lqh4LuB4Lqb4LqH4Lqn4LuI4Lqy4LuA4Lqb4Lqx4LqZ4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LqX4LuI4Lqy4LqZ4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZIOC7gOC6nuC6t+C7iOC6reC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC6quC7iOC6p+C6meC7guC6lS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU2V0dGluZ3MiIG1zZ2lkPSIyMjI2MTk1MjkwOTU1MjI0NzMwIj4i4LuB4LqB4LuJ4LuE4LqC4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4Lql4Lqw4Lqa4Lq74LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTZXR0aW5ncyIgbXNnaWQ9Ijc3NzU3MjM0NDE1NTg5MDcxODEiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4LuB4LqB4LuJ4LuE4LqC4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4Lql4Lqw4Lqa4Lq74LqaLiDgu4Hguq3gurHguprguq/gupfgurXgu4jgu4DgupvgurHgupnguq3gurHgupngupXgurDguqXgurLguo0g4Lqt4Lqy4LqU4LuA4Lqu4Lqx4LqU4LuD4Lqr4LuJ4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4LqC4Lqt4LqH4Lql4Lqw4Lqa4Lq74Lqa4LuA4Lqq4LqN4Lqr4Lqy4LqN4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTZWN1cmVTZXR0aW5ncyIgbXNnaWQ9IjIwNDY3NjI1MTg3NjcxODI4OCI+IuC7geC6geC7ieC7hOC6guC6geC6suC6meC6leC6seC7ieC6h+C6hOC7iOC6suC6peC6sOC6muC6u+C6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSI4MTU5NTM1NjEzMDIwMTM3MzkxIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC7geC6geC7ieC7hOC6guC6guC7jeC7ieC6oeC6ueC6meC6geC6suC6meC6leC6seC7ieC6h+C6hOC7iOC6suC6hOC6p+C6suC6oeC6m+C6reC6lOC7hOC6nuC6guC6reC6h+C6peC6sOC6muC6u+C6mi4g4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq74LuI4Lqn4LuE4Lqb4Lqa4LuN4LuI4LuE4LqU4LuJ4LuD4LqK4LuJ4LqE4Lq44LqZ4Lqq4Lq74Lqh4Lqa4Lqx4LqU4LqZ4Lq14LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIyMTQ5NDI2NjY0MjI2MTUyMTg1Ij4i4LuB4LqB4LuJ4LuE4LqC4LuB4Lqc4LqZ4LqX4Lq14LuI4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZIEdvb2dsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlR3NlcnZpY2VzIiBtc2dpZD0iMTI4NzMwOTQzNzYzODM4MDIyOSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDgu4HguoHgu4ngu4TguoLguoHgurLgupnguqfgurLguofgu4Hgupzgupnguprgu43guqXgurTguoHgurLgupkgR29vZ2xlLiDguprgu43gu4jgu4TgupTgu4ngu4Pguorgu4nguqrgurPguqXgurHguprgu4Hguq3gurHguprguq/gupfgurvgu4jguqfgu4TgupsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlQm9vdENvbXBsZXRlZCIgbXNnaWQ9IjUzMTI5NjU1NjU5ODc4MDAwMjUiPiLgu4Dguq7gurHgupTguqfgur3guoHgu4PgupngupXguq3gupnguqXgurDguprgurvguprgu4DguqXgurXgu4jguqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlQm9vdENvbXBsZXRlZCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzM5MDMwNDY2NDExNjg4MDcwNCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDgu4DgupvgurXgupTgu4LgupXguqHgurHgupngu4Dguq3guofgupfgurHgupngupfgurXgupfgurXgu4jgu4DgupvgurXgupTguqXgurDguprgurvguprguoLgurbgu4ngupnguqHgurLguqrgurPgu4DguqXgurHgupQuIOC6meC6teC7ieC6quC6suC6oeC6suC6lOC7gOC6ruC6seC6lOC7g+C6q+C7ieC6geC6suC6meC7gOC6peC6teC7iOC6oeC7gOC6m+C6teC6lOC6guC6reC6h+C7geC6l+C6seC6muC7gOC6peC6seC6lOC7g+C6iuC7ieC7gOC6p+C6peC6suC6lOC6u+C6meC6guC6tuC7ieC6mSDgu4HguqXgurDgu4Dguq7gurHgupTgu4Pguqvgu4nguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoHgu4LgupTguo3guq7guqfguqHguoLguq3guofgu4HgupfgurHguprgu4DguqXgurHgupTguorgu4ngurLguqXgurvguocg4LuC4LqU4LqN4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqV4Lqw4Lqr4Lq84Lqt4LqU4LuA4Lqn4Lql4LqyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVCb290Q29tcGxldGVkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTEzOTUwNTg5MTAyNjE3NTA0Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC7gOC6m+C6teC6lOC7guC6leC6oeC6seC6meC7gOC6reC6h+C6l+C6seC6meC6l+C6teC6l+C6teC7iOC6peC6sOC6muC6u+C6muC6quC6s+C7gOC6peC6seC6lOC7gOC6m+C6teC6lOC7gOC6hOC6t+C7iOC6reC6hy4g4LqZ4Lq14LuJ4Lqq4Lqy4Lqh4Lqy4LqU4LuA4Lqu4Lqx4LqU4LuD4Lqr4LuJ4LqB4Lqy4LqZ4LuA4Lql4Lq14LuI4Lqh4LuA4Lqb4Lq14LqU4LqC4Lqt4LqH4LuC4LqX4Lql4Lqw4Lqq4Lqx4Lqa4LuD4LqK4LuJ4LuA4Lqn4Lql4Lqy4LqU4Lq74LqZ4LqC4Lq24LuJ4LqZIOC7geC6peC6sOC6m+C7iOC6reC6jeC7g+C6q+C7ieC7geC6reC6seC6muC6ryDgu4Dguq7gurHgupTgu4Pguqvgu4ngu4LgupfguqXgurDguqrgurHguprgu4LgupTguo3guq7guqfguqHguorgu4ngurLguqXgurvguocg4LqU4LuJ4Lqn4LqN4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4Lqi4Lq54LuI4LqV4Lqw4Lqr4Lq84Lqt4LqU4LuA4Lqn4Lql4LqyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0U3RpY2t5IiBtc2dpZD0iNzkxOTEyNjM3MjYwNjg4MTYxNCI+IuC6quC6u+C7iOC6h+C6geC6suC6meC6geC6sOC6iOC6suC6jeC6quC6seC6meC6jeC6suC6meC7geC6muC6muC6jeC6tuC6lOC6leC6tOC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFN0aWNreSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzc0OTc2MDQ5NDM5OTkxNTY1MSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6quC6u+C7iOC6h+C6geC6suC6meC6geC6sOC6iOC6suC6jeC6quC6seC6meC6jeC6suC6meC7geC6muC6muC6jeC6tuC6lOC6leC6tOC6lCwg4LqX4Lq14LuI4LqN4Lqx4LqH4LqE4Lq74LqH4LuA4Lqr4Lq84Lq34Lqt4Lqr4Lq84Lqx4LqH4LqI4Lqy4LqB4LqB4Lqy4LqZ4LqB4Lqw4LqI4Lqy4LqN4Lqq4Lqx4LqZ4LqN4Lqy4LqZ4Lqq4Lq04LuJ4LqZ4Lqq4Lq44LqU4Lql4Lq74LqHLiDguoHgurLgupngupngurPgu4Pguorgu4ngu4HguprguprguqHgurDguqvgurLguqrgurLgupnguq3gurLgupTgu4Dguq7gurHgupTgu4Pguqvgu4ngu4HgupfgurHguprgu4DguqXgurHgupTguorgu4ngurIg4Lqr4Lq84Lq34Lqa4LuN4LuI4Lqq4Lqw4LqW4Lq94LqZIOC7guC6lOC6jeC6geC6suC6meC7g+C6iuC7ieC7nOC7iOC6p+C6jeC6hOC6p+C6suC6oeC6iOC6s+C6q+C6vOC6suC6jeC7gOC6geC6teC6meC7hOC6my4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RTdGlja3kiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyODI1ODAzNzY0MjMyNDQ1MDkxIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4Lqq4Lq74LuI4LqH4LqB4Lqy4LqZ4LqB4Lqw4LqI4Lqy4LqN4Lqq4Lqx4LqZ4LqN4Lqy4LqZ4LuB4Lqa4Lqa4LqN4Lq24LqU4LqV4Lq04LqULCDgupfgurXgu4jguo3gurHguofguoTgurvguofgu4Dguqvgurzgurfguq3guqvgurzgurHguofguojgurLguoHguoHgurLgupnguoHgurDguojgurLguo3guqrgurHgupnguo3gurLgupnguqrgurTgu4ngupnguqrgurjgupTguqXgurvguocuIOC6geC6suC6meC6meC6s+C7g+C6iuC7ieC7geC6muC6muC6oeC6sOC6q+C6suC6quC6suC6meC6reC6suC6lOC7gOC6ruC6seC6lOC7g+C6q+C7ieC7guC6l+C6peC6sOC6quC6seC6muC6iuC7ieC6siDguqvgurzgurfguprgu43gu4jguqrgurDgupbgur3gupkg4LuC4LqU4LqN4LqB4Lqy4LqZ4LuD4LqK4LuJ4Luc4LuI4Lqn4LqN4LqE4Lqn4Lqy4Lqh4LqI4Lqz4Lqr4Lq84Lqy4LqN4LuA4LqB4Lq14LqZ4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENvbnRhY3RzIiBtc2dpZD0iODM0ODQ4MTEzMTg5OTg4NjEzMSI+IuC6reC7iOC6suC6meC6peC6suC6jeC6iuC6t+C7iOC6nOC6ueC7iOC6leC6tOC6lOC6leC7jeC7iOC6guC6reC6h+C6l+C7iOC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDb250YWN0cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNTI5NDg2Njg1Njk0MTE0OTYzOSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6reC7iOC6suC6meC6guC7jeC7ieC6oeC6ueC6meC6geC7iOC6veC6p+C6geC6seC6muC6peC6suC6jeC6iuC6t+C7iOC6nOC6ueC7iOC6leC6tOC6lOC6leC7jeC7iOC7g+C6meC7geC6l+C6seC6muC7gOC6peC6seC6lOC6guC6reC6h+C6l+C7iOC6suC6mSwg4Lqu4Lqn4Lqh4LuA4LqW4Lq04LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqB4Lqy4LqZ4LqI4Lqz4LqZ4Lqn4LqZ4LqB4Lqy4LqZ4LqV4Lq04LqU4LqV4LuN4LuI4LqV4LuI4Lqy4LqH4LuG4LuA4LqK4Lqx4LuI4LqZOiDguoHgurLgupngu4LgupcsIOC6reC6teC7gOC6oeC6pywg4Lqr4Lq84Lq34LqV4Lq04LqU4LqV4LuN4LuI4Lqr4Lqy4LuD4LqZ4LqX4Lqy4LqH4Lqt4Lq34LuI4LqZ4LuG4LqB4Lqx4Lqa4Lqa4Lq44LqB4LqE4Lq74LqZ4LuD4LqU4LqZ4Lq24LuI4LqH4LuE4LqU4LuJLiDguoHgurLgupnguq3gurDgupngurjguo3gurLgupTgupngurXgu4ngu4Dguq7gurHgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqq4Lqy4Lqh4Lqy4LqU4Lqa4Lqx4LqZ4LqX4Lq24LqB4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqc4Lq54LuI4LqV4Lq04LqU4LqV4LuN4LuI4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIOC7geC6peC6sOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jSDguq3gurLgupTguqrgurvgu4jguofgupXgu43gu4jguoLgu43gu4nguqHgurngupngu4Dguqvgurzgurvgu4jgurLgupngurHgu4ngupngu4LgupTguo3gupfgurXgu4jgupfgu4jgurLgupnguprgu43gu4jguq7gurngu4ngu4LgupUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENvbnRhY3RzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODQ0MDY1NDE1MjQ1NzMwMDY2MiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguq3gu4jgurLgupnguoLgu43gu4nguqHgurngupnguoHgu4jgur3guqfguoHgurHguprguqXgurLguo3guorgurfgu4jgupzgurngu4jgupXgurTgupTgupXgu43gu4jgupfgurXgu4jgu4DguoHgurHguprgu4Tguqfgu4ngu4Pgupngu4LgupfguqXgurDguqrgurHguprguoLguq3guofgupfgu4jgurLgupkg4Lqu4Lqn4Lqh4LuA4LqW4Lq04LqH4LqE4Lqn4Lqy4Lqh4LqW4Lq14LuI4LqB4Lqy4LqZ4LuC4LqXLCDguoHgurLgupnguqrgurvgu4jguofguqrgurvgu4jguofguq3gurXgu4DguqHguqcg4Lqr4Lq84Lq34LqB4Lqy4LqZ4Lqq4Lq34LuI4Lqq4Lqy4LqZ4LuD4LqZ4Lqu4Lq54Lqa4LuB4Lqa4Lqa4Lqt4Lq34LuI4LqZ4LqB4Lqx4Lqa4Lqa4Lq44LqB4LqE4Lq74LqZ4LuD4LqU4LqZ4Lq24LuI4LqHLiDguoHgurLgupnguq3gurDgupngurjguo3gurLgupTgu4Dguq7gurHgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqq4Lqy4Lqh4Lqy4LqU4Lqa4Lqx4LqZ4LqX4Lq24LqB4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lql4Lqy4LqN4LqK4Lq34LuI4Lqc4Lq54LuI4LqV4Lq04LqU4LqV4LuN4LuI4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIOC7geC6peC6sOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jSDguq3gurLgupTgu4DgupzgurXguo3gu4Hgupzgu4jguoLgu43gu4nguqHgurngupnguoLguq3guofgupfgu4jgurLgupngu4LgupTguo3gupfgurXgu4jgupfgu4jgurLgupnguprgu43gu4jgu4TgupTgu4nguq7gurHguprguq7gurngu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUNvbnRhY3RzIiBtc2dpZD0iNTEwNzQ5MjA4NjQxNjc5MzU0NCI+IuC7geC6geC7ieC7hOC6guC6peC6suC6jeC6iuC6t+C7iOC6nOC6ueC7iOC6leC6tOC6lOC6leC7jeC7iOC6guC6reC6h+C6l+C7iOC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ29udGFjdHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg5NzI0MzkzMjUyMTk1MzYwMiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDgu4HguoHgu4ngu4TguoLguoLgu43gu4nguqHgurngupnguoHgu4jgur3guqfguoHgurHguprguqXgurLguo3guorgurfgu4jgupzgurngu4jgupXgurTgupTgupXgu43gu4jguoLguq3guofgupfgu4jgurLgupngupfgurXgu4jgu4DguoHgurHguprgu4Tguqfgu4ngu4Pgupngu4HgupfgurHguprgu4DguqXgurHgupQg4Lqu4Lqn4Lqh4LqX4Lqx4LqH4LqE4Lqn4Lqy4Lqh4LqW4Lq14LuI4LuD4LqZ4LqB4Lqy4LqZ4LuC4LqXLCDguoHgurLgupnguqrgurvgu4jguofguq3gurXgu4DguqHguqcg4Lqr4Lq84Lq34LqB4Lqy4LqZ4Lqq4Lq34LuI4Lqq4Lqy4LqZ4LuD4LqZ4Lqu4Lq54Lqa4LuB4Lqa4Lqa4Lqt4Lq34LuI4LqZ4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LqB4Lqx4Lqa4Lql4Lqy4LqN4LqK4Lq34LuI4Lqc4Lq54LuI4LqV4Lq04LqU4LqV4LuN4LuI4LuD4LqU4LqZ4Lq24LuI4LqHLiDguoHgurLgupnguoHgurPgupngurvgupTguqrgurTgupTgupngurXgu4ngu4Dguq7gurHgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guqrgurLguqHgurLgupTguqXgurbguprguoLgu43gu4nguqHgurngupnguqXgurLguo3guorgurfgu4jgupzgurngu4jgupXgurTgupTgupXgu43gu4jgu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDb250YWN0cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU4OTg2OTIyNDYyNTE2MzU1OCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C7geC6geC7ieC7hOC6guC6guC7jeC7ieC6oeC6ueC6meC6geC7iOC6veC6p+C6geC6seC6muC6peC6suC6jeC6iuC6t+C7iOC6nOC6ueC7iOC6leC6tOC6lOC6leC7jeC7iCDgupfgurXgu4jguprgurHgupngupfgurbguoHgu4Pgupngu4LgupfguqXgurDguqrgurHguprguoLguq3guofgupfgu4jgurLgupkg4Lqu4Lqn4Lqh4LqX4Lqx4LqH4LqE4Lqn4Lqy4Lqh4LqW4Lq14LuI4LqC4Lqt4LqH4LqB4Lqy4LqZ4LuC4LqXLCDguoHgurLgupnguq3gurXgu4DguqHguqcg4Lqr4Lq84Lq34LqB4Lqy4LqZ4LqV4Lq04LqU4LqV4LuN4LuI4LuD4LqZ4Lqu4Lq54Lqa4LuB4Lqa4Lqa4Lqt4Lq34LuI4LqZ4LqB4Lqx4Lqa4Lql4Lqy4LqN4LqK4Lq34LuI4Lqc4Lq54LuI4LqV4Lq04LqU4LqV4LuN4LuI4LuD4LqU4LqZ4Lq24LuI4LqH4LqZ4LqzLiDguoHgurLgupnguq3gurDgupngurjguo3gurLgupTgupngurXgu4nguojgurDgu4Dguq7gurHgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqq4Lqy4Lqh4Lqy4LqU4Lql4Lq24Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lql4Lqy4LqN4LqK4Lq34LuI4Lqc4Lq54LuI4LqV4Lq04LqU4LqV4LuN4LuI4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENhbGxMb2ciIG1zZ2lkPSIzNDc4MTMzMTg0NjI0MTAyNzM5Ij4i4Lqt4LuI4Lqy4LqZ4Lqa4Lqx4LqZ4LqX4Lq24LqB4LqB4Lqy4LqZ4LuC4LqXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGxMb2ciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM3MDA2NDUxODQ4NzA3NjAyODUiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqt4LuI4Lqy4LqZ4Lqa4Lqx4LqZ4LqX4Lq24LqB4LqB4Lqy4LqZ4LuC4LqX4LqC4Lqt4LqH4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqX4LuI4Lqy4LqZIOC6ruC6p+C6oeC6l+C6seC6h+C6guC7jeC7ieC6oeC6ueC6meC6geC6suC6meC7guC6l+C7gOC6guC6u+C7ieC6siDgu4HguqXgurDguoHgurLgupngu4Lgupfguq3guq3guoEuIOC6geC6suC6meC6geC6s+C6meC6u+C6lOC6quC6tOC6lOC6meC6teC7ieC7gOC6ruC6seC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6quC6suC6oeC6suC6lCDguprgurHgupngupfgurbguoHguoLgu43gu4nguqHgurngupnguoHgurLgupngu4LgupfguoLguq3guofgupfgu4jgurLgupkg4LuB4Lql4Lqw4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqNIOC6reC6suC6lOC6iOC6sOC7gOC6nOC6teC6jeC7geC6nOC7iOC6guC7jeC7ieC6oeC6ueC6meC6geC6suC6meC7guC6l+C7guC6lOC6jeC6l+C6teC7iOC6l+C7iOC6suC6meC6muC7jeC7iOC6ruC6seC6muC6ruC6ueC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsbExvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3Nzc3MjU3OTY4MTMyMTcyNDQiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guq3gu4jgurLgupnguprgurHgupngupfgurbguoHguoHgurLgupngu4LgupfguoLguq3guofgu4LgupfguqXgurDguqrgurHguprgupfgu4jgurLgupkg4Lqu4Lqn4Lqh4LqX4Lqx4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqB4LuI4Lq94Lqn4LqB4Lqx4Lqa4Lqq4Lqy4LqN4LuC4LqX4LuA4LqC4Lq74LuJ4LqyIOC7geC6peC6sOC7guC6l+C6reC6reC6gS4g4LqB4Lqy4LqZ4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LqZ4Lq14LuJ4LqI4Lqw4LuA4Lqu4Lqx4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6quC6suC6oeC6suC6lOC6muC6seC6meC6l+C6tuC6geC6guC7jeC7ieC6oeC6ueC6meC6geC6suC6meC7guC6lyDgu4HguqXgurDgu4Dguq7gurHgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gupfgurXgu4jgu4DgupvgurHgupnguq3gurHgupngupXgurDguqXgurLguo3guqrgurLguqHgurLgupQg4Lqq4Lq74LuI4LqH4LqV4LuN4LuI4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqa4Lqx4LqZ4LqX4Lq24LqB4LqB4Lqy4LqZ4LuC4LqX4LuC4LqU4LqN4Lqa4LuN4LuI4LuD4Lqr4LuJ4LqX4LuI4Lqy4LqZ4Lqu4Lq54LuJ4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVDYWxsTG9nIiBtc2dpZD0iODU1MjA0NTY2NDc0MzQ5OTM1NCI+IuC6guC6veC6meC6guC7jeC7ieC6oeC6ueC6meC6geC6suC6meC7guC6lyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsbExvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY2MTgwNjA2MjI3NDExOTI0NSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C7geC6geC7ieC7hOC6guC6muC6seC6meC6l+C6tuC6geC6geC6suC6meC7guC6l+C6guC6reC6h+C7geC6l+C6seC6muC7gOC6peC6seC6lCDguq7guqfguqHgupfgurHguofguoLgu43gu4nguqHgurngupnguoHgu4jgur3guqfguoHgurHguprguoHgurLgupngu4Lgupfguq3guq3guoEg4LuB4Lql4Lqw4LuC4LqX4LuA4LqC4Lq74LuJ4Lqy4LqZ4LqzLiDgu4Hguq3gurHguprguq/gupfgurXgu4jgu4DgupvgurHgupnguq3gurHgupngupXgurDguqXgurLguo3guq3gurLgupTgu4Pguorgu4nguoTgurjgupnguqrgurvguqHguprgurHgupTgupngurXgu4ngu4Dgup7gurfgu4jguq3guqXgurbgupog4Lqr4Lq84Lq34LuB4LqB4LuJ4LuE4LqC4Lqa4Lqx4LqZ4LqX4Lq24LqB4LqB4Lqy4LqZ4LuC4LqX4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsbExvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4Mzk0MTczNjM1Mjc4Nzg0MiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDgu4HguoHgu4ngu4TguoLguqXgurLguo3guoHgurLgupnguoHgurLgupngu4Lgupfgu4Pgupngu4LgupfguqXgurDguqrgurHguprguoLguq3guofgupfgu4jgurLgupksIOC6ruC6p+C6oeC6l+C6seC6h+C6guC7jeC7ieC6oeC6ueC6meC6geC7iOC6veC6p+C6geC6seC6muC6quC6suC6jeC7guC6l+C7gOC6guC6u+C7ieC6siDgu4HguqXgurDguoHgurLgupngu4Lgupfguq3guq3guoEuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jSDguq3gurLgupTgu4Pguorgu4nguoTguqfgurLguqHguqrgurLguqHgurLgupTgupngurXgu4kg4LuA4Lqe4Lq34LuI4Lqt4Lql4Lq24LqaIOC6q+C6vOC6t+C7geC6geC7ieC7hOC6guC6peC6suC6jeC6geC6suC6meC6geC6suC6meC7guC6l+C6guC6reC6h+C6l+C7iOC6suC6meC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRQcm9maWxlIiBtc2dpZD0iNDcwMTg4OTg1MjYxMjcxNjY3OCI+IuC6reC7iOC6suC6meC6muC6seC6lOC6peC6suC6jeC6iuC6t+C7iOC6nOC6ueC7iOC6leC6tOC6lOC6leC7jeC7iOC6guC6reC6h+C6l+C7iOC6suC6meC7gOC6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRQcm9maWxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTQ2MjQ3NTE1MTg0OTg4ODg0OCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguq3gu4jgurLgupnguoLgu43gu4nguqHgurngupngu4Lgupvgu4Tgup/guqXgu4zguqrgu4jguqfgupngu4LgupXgu4Pgupnguq3gurjgupvgurDguoHguq3gupnguoLguq3guofgupfgu4jgurLgupngu4DguorgurHgu4jgupk6IOC6iuC6t+C7iOC6guC6reC6h+C6l+C7iOC6suC6mSDgu4HguqXgurDguoLgu43gu4nguqHgurngupnguoHgurLgupngupXgurTgupTgupXgu43gu4jguoLguq3guofgupfgu4jgurLgupkuIOC6meC6teC7ieC7neC6suC6jeC6hOC6p+C6suC6oeC6p+C7iOC6suC7geC6reC6seC6muC6r+C6iOC6sOC6quC6suC6oeC6suC6lOC6peC6sOC6muC6uOC7guC6leC6leC6u+C6meC6guC6reC6h+C6l+C7iOC6suC6mSDgu4HguqXgurDguqrgurvgu4jguofguoLgu43gu4nguqHgurngupngu4LgupvguqPgu4Tgup/guqXgu4zguoLguq3guofgupfgu4jgurLgupngu4Pguqvgu4ngupzgurngu4jguq3gurfgu4jgupngu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVByb2ZpbGUiIG1zZ2lkPSI5MDc3OTM2Mjg3NzczOTc2NDMiPiLgu4HguoHgu4ngu4TguoLguprgurHgupTguqXgurLguo3guorgurfgu4jgupzgurngu4jgupXgurTgupTgupXgu43gu4jguoLguq3guofgupfgu4jgurLgupngu4Dguq3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVByb2ZpbGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NTUyMDg0Mjk0NTk4NDY1ODk5Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6m+C7iOC6veC6meC7geC6m+C6hyDguqvgurzgurfgu4Dgup7gurXgu4jguqHguoLgu43gu4nguqHgurngupngu4Pguqrgu4jgu4LgupvguqPgu4Tgup/guqXgu4zguqrgu4jguqfgupnguprgurjguoHguoTgurvgupngupfgurXgu4jgu4DguoHgurHguprgu4Tguqfgu4ngu4Pgupnguq3gurjgupvgurDguoHguq3gupnguoLguq3guofgupfgu4jgurLgupksIOC7gOC6iuC6seC7iOC6mTog4LqK4Lq34LuIIOC7geC6peC6sOC6guC7jeC7ieC6oeC6ueC6meC6leC6tOC6lOC6leC7jeC7iOC6l+C7iOC6suC6mS4g4LqZ4Lq14LuJ4Lud4Lqy4LqN4LqE4Lqn4Lqy4Lqh4Lqn4LuI4Lqy4LuB4Lqt4Lqx4Lqa4Lqv4Lqq4Lqy4Lqh4Lqy4LqU4Lqa4Lq74LuI4LqH4Lqa4Lqt4LqB4LuC4LqV4LqX4LuI4Lqy4LqZIOC7geC6peC6sOC6reC6suC6lOC6quC6u+C7iOC6h+C6guC7jeC7ieC6oeC6ueC6meC7guC6m+C6o+C7hOC6n+C6peC7jOC6guC6reC6h+C6l+C7iOC6suC6meC7g+C6q+C7ieC6nOC6ueC7iOC6reC6t+C7iOC6meC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMjY4OTIwOTU2MTUyNDE5MTcwIj4i4Lqt4LuI4Lqy4LqZ4LqB4Lqy4LqZ4Lqt4Lqx4Lqa4LuA4LqU4LqU4Lqq4Lqx4LqH4LqE4Lq74Lqh4Lqt4Lqt4LqZ4Lql4Lqy4LqN4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQyNTU3MDYwMjcxNzIwNTA4NzIiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqHIOC7geC6peC6sOC6iuC6tOC7ieC6h+C6guC7jeC7ieC6oeC6ueC6meC6guC7iOC6suC6p+C6quC6suC6meC6quC6seC6h+C6hOC6u+C6oeC6iOC6suC6geC6l+C7iOC6suC6mSDgu4HguqXgurDgu53gurngu4jguoLguq3guofgupfgu4jgurLgupkuIOC6hOC6p+C6meC6peC6sOC6oeC6seC6lOC6peC6sOC6p+C6seC6h+C7g+C6meC7gOC6p+C6peC6suC6l+C6teC7iOC7geC6peC6geC6m+C7iOC6veC6meC6guC7jeC7ieC6oeC6ueC6mSAtLSDgupngurXgu4nguojgurDgu4DgupvgurHgupnguoHgurLgupnguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqt4LuI4Lqy4LqZ4LqB4Lqy4LqZ4Lqq4Lq34LuI4Lqq4Lqy4LqZ4Lql4Lqw4Lqr4Lqn4LuI4Lqy4LqH4LqX4LuI4Lqy4LqZIOC6geC6seC6muC7neC6ueC7iOC6guC6reC6h+C6l+C7iOC6suC6meC7gOC6l+C6tOC6h+C7gOC6hOC6t+C6reC6guC7iOC6suC6jeC6quC6seC6h+C6hOC6u+C6oSDgu4LgupTguo3guprgu43gu4jguoTgurPgupngurbguofgu4DgupbgurTguofguoTguqfgurLguqHguqXgurHgupouIOC7neC6suC6jeC7gOC6q+C6lDog4LqB4Lqy4LqZ4LqB4Lqz4LqZ4Lq74LqU4Lqq4Lq04LqU4LqZ4Lq14LuJ4Lqt4Lqy4LqU4Lqa4LuN4LuI4LuE4LqU4LuJ4Lqa4Lqx4LqH4LqE4Lqx4Lqa4LuD4LqK4LuJ4LuD4LqZ4LqX4Lq44LqB4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqN4Lqq4Lqx4LqH4LqE4Lq74LqhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNTA0MTc5MjIyNDkzMjM1NjQ1Ij4i4LqC4Lq94LqZ4LuD4Lqq4LuI4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqN4Lqq4Lqx4LqH4LqE4Lq74Lqh4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzMDg2NTU3NTUyMjA0MTE0ODQ5Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqq4Lqw4LuB4LqU4LqH4LqB4Lqy4LqZ4Lqt4Lqx4Lqa4LuA4LqU4LqU4LqI4Lqy4LqB4Lud4Lq54LuI4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZLiDguoTguqfgupnguqXgurDguqfgurHguofgu4PgupnguoHgurLgupngu4Hgupvgu4jguofgupvgurHgupnguoLgu43gu4nguqHgurngupkuIOC6oeC6seC6meC6iOC6sOC7hOC6m+C6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguqrgu4ngurLguofguoLgu43gu4nguoTguqfgurLguqHgupfgurXgu4jguq3gu4ngurLguofguqfgu4jgurLguqHgurLguojgurLguoHgu53gurngu4jguoLguq3guofgupfgu4jgurLgupkuIOC7neC6suC6jeC7gOC6q+C6lDog4LqB4Lqy4LqZ4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4Lqt4Lqy4LqU4Lqa4LuN4LuI4LqW4Lq34LqB4Lqa4Lqx4LqH4LqE4Lqx4LqaIOC7g+C6meC6muC7jeC6peC6tOC6geC6suC6meC7gOC6hOC6t+C6reC6guC7iOC6suC6jeC6quC6seC6h+C6hOC6reC6oeC6reC6reC6meC6peC6suC6jeC6l+C6uOC6geC6reC6seC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDYWxlbmRhciIgbXNnaWQ9IjU5NzI3Mjc1NjAyNTc2MTIzOTgiPiLguq3gu4jgurLgupnguoHgurPgupngurvgupTguoHgurLgupngu4PgupngupvgurDgupXgurTgupfgurTgupnguq7guqfguqHgupfgurHguofguoLgu43gu4nguqHgurngupnguoTguqfgurLguqHguqXgurHgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsZW5kYXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQyMTY0NjIwNDkwNTc2NTg3MjMiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqt4LuI4Lqy4LqZ4LqB4Lqy4LqZ4LqZ4Lqx4LqU4Lud4Lqy4LqN4LqX4Lqx4LqH4Lud4Lq74LqU4LqX4Lq14LuI4Lqh4Lq14Lqa4Lqx4LqZ4LqX4Lq24LqB4LuD4LqZ4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZLCDguq7guqfguqHgupfgurHguofguoLguq3guofgu53gurngu4gg4Lqr4Lq84Lq34Lud4Lq54LuI4LqX4Lq14LuI4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqZ4Lqz4LqB4Lqx4LqZ4LuE4LqU4LuJIOC7gOC6iuC6tOC7iOC6h+C6reC6suC6lOC7gOC6ruC6seC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6quC6suC6oeC6suC6lOC6quC6u+C7iOC6h+C6leC7jeC7iCDguqvgurzgurfguprgurHgupngupfgurbguoHguoLgu43gu4nguqHgurngupngupvgurDgupXgurTgupfgurTgupnguoLguq3guofgupfgu4jgurLgupkg4Lqa4LuN4LuI4Lqn4LuI4Lqy4LqI4Lqw4LuA4Lqb4Lqx4LqZ4LuA4Lql4Lq34LuI4Lqt4LqH4LqE4Lqn4Lqy4Lqh4Lql4Lqx4LqaIOC6q+C6vOC6t+C7gOC6peC6t+C7iOC6reC6h+C6peC6sOC6reC6veC6lOC6reC7iOC6reC6meC7geC6muC6muC7g+C6lOC6geC7jeC6leC6suC6oS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3NDM0NTQ4NjgyNDcwODUxNTgzIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6reC7iOC6suC6meC6geC6s+C6meC6u+C6lOC6geC6suC6meC7g+C6meC6m+C6sOC6leC6tOC6l+C6tOC6meC6l+C6seC6h+C7neC6u+C6lCDgupfgurXgu4jgu4DguoHgurHguprgu4Tguqfgu4ngu4Pgupngu4LgupfguqXgurDguqrgurHguprguoLguq3guofgupfgu4jgurLgupksIOC6ruC6p+C6oeC7gOC6luC6tOC6h+C6guC6reC6h+C7neC6ueC7iOC6hOC6ueC7iCDguqvgurzgurfgu4Dgup7gurfgu4jguq3gupnguq7gu4jguqfguqHguqfgur3guoEuIOC6meC6teC7ieC6reC6suC6lOC6iOC6sOC7gOC6ruC6seC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6quC6suC6oeC6suC6lOC7gOC6nOC6teC6jeC7geC6nOC7iCDguqvgurzgurfguprgurHgupngupfgurbguoHguoLgu43gu4nguqHgurngupngupvgurDgupXgurTgupfgurTgupnguoLguq3guofgupfgu4jgurLgupksIOC7guC6lOC6jeC6muC7jeC7iOC6hOC6s+C6meC6tuC6h+C7gOC6luC6tOC6hyDguoTguqfgurLguqHguqXgurDguq3gur3gupTguq3gu4jguq3gupkg4Lqr4Lq84Lq34LqE4Lqn4Lqy4Lqh4Lql4Lqx4Lqa4LuD4LqU4LuG4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVDYWxlbmRhciIgbXNnaWQ9Ijg0Mzg4NzQ3NTUxOTM4MjU2NDciPiLgu4Dgup7gurXgu4jguqEg4Lqr4Lq84Lq34LuB4LqB4LuJ4LuE4LqC4LqZ4Lqx4LqU4Lud4Lqy4LqN4LuD4LqZ4Lqb4Lqw4LqV4Lq04LqX4Lq04LqZIOC7geC6peC6sOC6quC6u+C7iOC6h+C6reC6teC7gOC6oeC6p+C6q+C6suC6nOC6ueC7iOC7gOC6guC6u+C7ieC6suC6ruC7iOC6p+C6oeC7guC6lOC6jeC6muC7jeC7iOC6leC7ieC6reC6h+C7g+C6q+C7ieC7gOC6iOC6u+C7ieC6suC6guC6reC6h+C6ruC6seC6muC6ruC6ueC7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsZW5kYXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY2NzkwMzU1MjAxMTM2Njg1MjgiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4Dgup7gurXgu4jguqEsIOC6peC6tuC6miDgu4HguqXgurDgupvgu4jgur3gupnguoHgurTgupTguojgurDguoHgurPgupfgurXgu4jgupfgu4jgurLgupnguqrgurLguqHgurLgupTgu4HguoHgu4ngu4TguoIg4LuD4LqZ4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LuE4LqU4LuJIOC6ruC6p+C6oeC6l+C6seC6h+C6geC6tOC6lOC6iOC6sOC6geC6s+C6guC6reC6h+C7neC6ueC7iCDguqvgurzgurfgu53gurngu4jguq7gu4jguqfguqHgu4Dguq7gurHgupTguqfgur3guoEg4LuA4LqK4Lq04LuI4LqH4Lqt4Lqy4LqU4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqq4Lq74LuI4LqH4LqC4LuN4LuJ4LqE4Lqn4Lqy4Lqh4LqX4Lq14LuI4LqE4Lq34LqB4Lqx4Lqa4Lqn4LuI4LqyIOC6oeC6suC6iOC6suC6geC7gOC6iOC6u+C7ieC6suC6guC6reC6h+C6m+C6sOC6leC6tOC6l+C6tOC6mSDguqvgurzgurfgu4HguoHgu4ngu4TguoLguoHgurLgupngupngurHgupTgu53gurLguo3gu4TgupTgu4kg4LuC4LqU4LqN4Lqa4LuN4LuI4LuD4Lqr4LuJ4LuA4LqI4Lq74LuJ4Lqy4LqC4Lqt4LqH4Lqu4Lqx4Lqa4Lqu4Lq54LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMzI0NDY5NDk2MzI3MjQ5Mzc2Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC7gOC6nuC6teC7iOC6oSwg4Lql4Lq24LqaLCDgupvgu4jgur3gupngu4HgupvguofgupngurHgupTgu53gurLguo3gupfgurXgu4jgupfgu4jgurLgupnguqrgurLguqHgurLgupTgu4HguoHgu4ngu4TguoLgu4TgupTgu4ngu4Pgupngu4LgupfguqXgurDguqrgurHguprguoLguq3guofgupfgu4jgurLgupksIOC6ruC6p+C6oeC6l+C6seC6h+C6guC6reC6h+C7neC6ueC7iOC6hOC6ueC7iCDguqvgurzgurfgu4Dgup7gurfgu4jguq3gupnguq7gu4jguqfguqHguqfgur3guoEuIOC6meC6teC7ieC6reC6suC6lOC7gOC6ruC6seC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6quC6suC6oeC6suC6lOC6quC6u+C7iOC6h+C6guC7jeC7ieC6hOC6p+C6suC6oSDgupfgurXgu4jgu4DguprgurTgu4jguofguoTgurfguqfgu4jgurLguqHgurLguojgurLguoHgu4Dguojgurvgu4ngurLguoLguq3guofgupvgurDgupXgurTgupfgurTgupkg4Lqr4Lq84Lq34LuB4LqB4LuJ4LuE4LqC4LqZ4Lqx4LqU4Lud4Lqy4LqN4LuC4LqU4LqN4LqX4Lq14LuI4LqX4LuI4Lqy4LqZ4Lqa4LuN4LuI4LuE4LqU4LuJ4Lqu4Lqx4Lqa4Lqu4Lq54LuJ4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTW9ja0xvY2F0aW9uIiBtc2dpZD0iODY4ODMzNDk3NDAzNjgyMzMzMCI+IuC6iOC6s+C6peC6reC6h+C7geC6q+C6peC7iOC6h+C6guC7jeC7ieC6oeC6ueC6meC6quC6sOC6luC6suC6meC6l+C6teC7iOC7gOC6nuC6t+C7iOC6reC6geC6suC6meC6l+C6u+C6lOC6quC6reC6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc01vY2tMb2NhdGlvbiIgbXNnaWQ9IjU4MDg3MTEwMzk0ODIwNTE4MjQiPiLguqrgu4ngurLguofgu4HguqvguqXgu4jguofguoLgu43gu4nguqHgurngupnguojgurPguqXguq3guofguoLguq3guofguqrgurDgupbgurLgupngupfgurXgu4gg4LuA4Lqe4Lq34LuI4Lqt4LqB4Lqy4LqZ4LqX4Lq74LqU4Lqq4Lqt4LqaIOC6q+C6vOC6t+C6leC6tOC6lOC6leC6seC7ieC6h+C7geC6q+C6peC7iOC6h+C6guC7jeC7ieC6oeC6ueC6meC6quC6sOC6luC6suC6meC6l+C6teC7iOC7g+C7neC7iC4g4LqZ4Lq14LuJ4LqI4Lqw4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqq4Lqy4Lqh4Lqy4LqU4LqC4Lq94LqZ4LqX4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqC4Lqt4LqH4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuIIOC7geC6peC6sC/guqvgurzgurcg4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lq14LuI4Lqq4Lq74LuI4LqH4LqB4Lqx4Lqa4Lqh4Lqy4LqI4Lqy4LqB4LuB4Lqr4Lql4LuI4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4Lqt4Lq34LuI4LqZIOC7gOC6iuC6seC7iOC6mTogR1BTIOC6q+C6vOC6t+C7geC6q+C6peC7iOC6h+C6guC7jeC7ieC6oeC6ueC6meC6quC6sOC6luC6suC6meC6l+C6teC7iOC6reC6t+C7iOC6meC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0xvY2F0aW9uRXh0cmFDb21tYW5kcyIgbXNnaWQ9IjI4MzYzMDgwNzY3MjA1NTM4MzciPiLgu4DguoLgurvgu4ngurLgu4DgupbgurTguofguoTgurPguqrgurHgu4jguofgupzgurngu4jgu4Pguqvgu4nguprgu43guqXgurTguoHgurLgupngup7gurTguoHgurHgupTguqrgurDgupbgurLgupngupfgurXgu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NMb2NhdGlvbkV4dHJhQ29tbWFuZHMiIG1zZ2lkPSI1OTQ1MTY2NjQyMzM1ODAwNzYzIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C6hOC6s+C6quC6seC7iOC6h+C7gOC6nuC6teC7iOC6oeC7gOC6leC6teC6oeC6guC6reC6h+C6nOC6ueC7iOC7g+C6q+C7ieC6muC7jeC6peC6tOC6geC6suC6meC6quC6sOC6luC6suC6meC6l+C6teC7iC4g4LqZ4Lq14LuJ4Lqt4Lqy4LqU4LqI4Lqw4LuA4Lqb4Lqx4LqZ4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6peC6u+C6muC6geC6p+C6meC6geC6suC6meC7gOC6ruC6seC6lOC6p+C6veC6geC6guC6reC6hyBHUFMg4Lqr4Lq84Lq34LuB4Lqr4Lql4LuI4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4Lqt4Lq34LuI4LqZ4LuG4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI2NTc4MTAxMTk5ODI1MTkzODczIj4i4Lqq4Lq04LqU4LuD4LqZ4LqB4Lqy4LqZ4LqV4Lq04LqU4LqV4Lqx4LuJ4LqH4LuB4Lqr4Lq84LuI4LqH4Lqq4Lqw4Luc4Lqt4LqH4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI5MDY2MTQ2MTIwNDcwNTkxNTA5Ij4i4Lqq4LuJ4Lqy4LqH4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4LqI4Lqz4Lql4Lqt4LqH4LuA4Lqe4Lq34LuI4Lqt4LqB4Lqy4LqZ4LqX4Lq74LqU4Lql4Lqt4LqHIOC6q+C6vOC6t+C6leC6tOC6lOC6leC6seC7ieC6h+C7geC6q+C6vOC7iOC6h+C6guC7jeC7ieC6oeC6ueC6meC6quC6sOC6luC6suC6meC6l+C6teC7iOC7g+C7neC7iC4g4Lqq4Lq04LuI4LqH4LqZ4Lq14LuJ4LuA4Lqu4Lqx4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqq4Lqy4Lqh4Lqy4LqU4LqC4Lq94LqZ4LqX4Lqx4Lqa4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuIIOC7geC6peC6sC/guqvgurzgurcg4Lqq4Lqw4LqW4Lqy4LqZ4Lqw4LqX4Lq14LuI4LuE4LqU4LuJ4LqI4Lqy4LqB4LuB4Lqr4Lq84LuI4LqH4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4Lqt4Lq34LuI4LqZ4LuA4LqK4Lqx4LuI4LqZOiBHUFMg4Lqr4Lq84Lq34Lqc4Lq54LuI4Lqq4Lqw4Luc4Lqt4LqH4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4LqV4LuI4Lqy4LqH4LuGLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzRmluZUxvY2F0aW9uIiBtc2dpZD0iMTE5MTg5ODA2MTk2NTI3MzM3MiI+IuC6quC6sOC6luC6suC6meC6l+C6teC7iOC7geC6meC7iOC6meC6reC6mSAo4Lqt4LuJ4Lqy4LqH4Lqt4Lq14LqH4LqI4Lqy4LqBIEdQUyDgu4HguqXgurDgu4DguoTgurfguq3guoLgu4jgurLguo0pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzRmluZUxvY2F0aW9uIiBtc2dpZD0iNTI5NTA0NzU2MzU2NDk4MTI1MCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguq7gurHguprgupXgurPgu4Hgu5zgu4jguofguqrgurDgupbgurLgupngupfgurXgu4jguqXgurDguq3gur3gupTguoLguq3guofgupfgu4jgurLgupngu4LgupTguo3gu4Pguorgu4kgR1BTIOC6q+C6vOC6t+C7geC6q+C6peC7iOC6h+C6guC7jeC7ieC6oeC6ueC6meC7gOC6hOC6t+C6reC6guC7iOC6suC6jeC6quC6sOC6luC6suC6meC6l+C6teC7iOC7gOC6iuC6seC7iOC6mTog4LuA4Lqq4Lq74Lqy4Lqq4Lqx4LqZ4LqN4Lqy4LqZ4Lqh4Lq34LqW4Lq3IOC7geC6peC6sCBXaS1GaS4g4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZ4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4LuA4Lqr4Lq84Lq74LuI4Lqy4LqZ4Lq14LuJ4LqV4LuJ4Lqt4LqH4LqW4Lq34LqB4LuA4Lqb4Lq14LqU4LqZ4Lqz4LuD4LqK4LuJIOC7geC6peC6sOC7geC6peC6sOC6oeC6teC6guC7jeC7ieC6oeC6ueC6meC7g+C6q+C7ieC6geC6seC6muC6reC6uOC6m+C6sOC6geC6reC6meC6guC6reC6h+C6l+C7iOC6suC6mSDgu4Dgup7gurfgu4jguq3gu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4Pguorgu4ngu4TgupTgu4kuIOC7geC6reC6seC6muC6r+C6leC7iOC6suC6h+C7huC6reC6suC6lOC7g+C6iuC7ieC6guC7jeC7ieC6oeC6ueC6meC6meC6teC7ieC7gOC6nuC6t+C7iOC6reC6peC6sOC6muC6uOC6quC6sOC6luC6suC6meC6l+C6teC7iOC6ouC6ueC7iOC6guC6reC6h+C6l+C7iOC6suC6mSDgu4HguqXgurDguq3gurLgupTgupngurPgu4Pguorgu4ngu4HguprgurHgupTgu4DgupXgurXguqPgurXgu4Dgup7gurXgu4jguqHgu4DgupXgurXguqHgu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjQ4ODc4OTUzNjIzNTQyMzk2MjgiPiLguqrgurDgupbgurLgupngupfgurXgu4jgu4LgupTguo3gupvgurDguqHgurLgupkgKOC6reC7ieC6suC6h+C6reC6teC6h+C6iOC6suC6geC7gOC6hOC6t+C6reC6guC7iOC6suC6jSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjI1MzgyMDAxODQzNzMzMDIyOTUiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lql4Lqw4Lqa4Lq44Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4LuC4LqU4LqN4Lqb4Lqw4Lqh4Lqy4LqZ4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZLiDguqrgurDgupbgurLgupngupfgurXgu4jgupngurXgu4ngu4TgupTgu4nguq7gurHguprguqHgurLguojgurLguoHguprgu43guqXgurTguoHgurLgupnguqrgurDgupbgurLgupngupfgurXgu4gg4LuC4LqU4LqN4Lqt4Lqy4LuD4Lqq4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqN4LuA4LqK4Lqx4LuI4LqZOiDgu4DguqrgurvgurLguqrgurHgupnguo3gurLgupkg4LuB4Lql4LqwIFdpLUZpLiDguprgu43guqXgurTguoHgurLgupnguqrgurDgupbgurLgupngupfgurXgu4jgu4Dguqvgurzgurvgu4jgurLgupngurXgu4ngupXgu4nguq3guofgupbgurfguoHgu4DgupvgurXgupTgu4Pguorgu4kg4LuB4Lql4LqwIOC6oeC6teC7g+C6meC6reC6uOC6m+C6sOC6geC6reC6meC6guC6reC6h+C6l+C7iOC6suC6meC7gOC6nuC6t+C7iOC6reC6l+C6teC7iOC7geC6reC6seC6muC6r+C6iOC6sOC6quC6suC6oeC6suC6lOC7g+C6iuC7ieC6nuC6p+C6geC6oeC6seC6meC7hOC6lOC7iS4g4LuB4Lqt4Lqx4Lqa4Lqv4Lqt4Lqy4LqU4LqI4Lqw4LuD4LqK4LuJ4LqE4Lq44LqZ4Lqq4Lq74Lqh4Lqa4Lqx4LqU4LqZ4Lq14LuJIOC7gOC6nuC6t+C7iOC6reC6geC6p+C6lOC6quC6reC6muC6quC6sOC6luC6suC6meC6l+C6teC7iOC7guC6lOC6jeC6m+C6sOC6oeC6suC6meC6guC6reC6h+C6l+C7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMjM2Mzk2OTY0MTc5MjM4ODk0NyI+IuC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6hyBTdXJmYWNlRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6meC6s+C7g+C6iuC7ieC6hOC6p+C6suC6oeC6quC6suC6oeC6suC6lOC6peC6sOC6lOC6seC6muC6leC7iOC6syBTdXJmYWNlRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+IuC6reC7iOC6suC6meC7gOC6n+C6o+C6oeC6muC6seC6muC7gOC6n+C6tSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guq3gu4jgurLgupngu4Dgupngurfgu4nguq3guqvgurLguoLguq3guofgu4Dgup/guqPguqHguprgurHguprgu4Dgup/gurUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4i4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqHIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gupngurPgu4Pguorgu4nguoTguqfgurLguqHguqrgurLguqHgurLgupQgSW5wdXRGbGluZ2VyIOC6peC6sOC6lOC6seC6muC6leC7iOC6syI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4i4Lqb4Lqx4Lqa4LqE4LuI4Lqy4LqB4Lqy4LqZ4Lqq4Lqw4LuB4LqU4LqH4Lqc4Lq74LqZIFdpRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gupXgurHgu4nguofguoTgu4jgurIg4LuB4Lql4Lqw4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LqI4LuN4Lqq4Lqw4LuB4LqU4LqH4Lqc4Lq74LqZIFdpRmkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiLguoTguqfguprguoTgurjguqHguoHgurLgupnguqrgurDgu4HgupTguocgV2lGaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjQ1NDM5MTIyOTI2ODE4MjY5ODYiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4LqE4Lqn4Lqa4LqE4Lq44Lqh4LqE4Lqn4Lqy4Lqh4Lqq4Lqy4Lqh4Lqy4LqU4Lql4Lqw4LqU4Lqx4Lqa4LqV4LuN4LuI4Lqy4LqC4Lqt4LqH4LqB4Lqy4LqZ4Lqq4Lqw4LuB4LqU4LqH4Lqc4Lq74LqZIFdpZmkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlQXVkaW9PdXRwdXQiIG1zZ2lkPSI2ODU3MTM0NDk4NDAyMzQ2NzA4Ij4i4Lqa4Lqx4LqZ4LqX4Lq24LqB4Lqq4Lq94LqH4Lqt4Lqt4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZUF1ZGlvT3V0cHV0IiBtc2dpZD0iNjIxMDU5Nzc1NDIxMjIwODg1MyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6muC6seC6meC6l+C6tuC6gSDgu4HguqXgurDgupvgu4jgur3gupngu4DguqrgurHgu4ngupngupfgurLguofguoHgurLgupngupvgu4nguq3gupnguoLgu43gu4nguqHgurngupnguq3guq3guoHguoLguq3guofguqrgur3guocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIyMjQ2ODI4NzczNTg5MDk0MDIzIj4i4Lqa4Lqx4LqZ4LqX4Lq24LqB4Lqn4Lq04LqU4Lq14LuC4Lqt4Lqt4Lqt4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMzU5NDgxNjU4MDM0MTQ5ODYwIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqa4Lqx4LqZ4LqX4Lq24LqBIOC7geC6peC6sOC6m+C7iOC6veC6meC7gOC6quC6seC7ieC6meC6l+C6suC6h+C6geC6suC6meC6m+C7ieC6reC6meC6guC7jeC7ieC6oeC6ueC6meC6reC6reC6geC6guC6reC6h+C6p+C6tOC6lOC6teC7guC6rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVTZWN1cmVWaWRlb091dHB1dCIgbXNnaWQ9Ijc4MTUzOTg5NjkzMDMzODIwMTYiPiLguprgurHgupngupfgurbguoHguqfgurTgupTgurXgu4Lguq3guq3guq3guoHguqLgu4jgurLguofgupvguq3gupTgu4Tgup4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlU2VjdXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIyNzc5NzkzMDY0NzA5MzUwMjg5Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqa4Lqx4LqZ4LqX4Lq24LqBIOC7geC6peC6sOC6m+C7iOC6veC6meC7gOC6quC6seC7ieC6meC6l+C6suC6h+C6geC6suC6meC6m+C7ieC6reC6meC6guC7jeC7ieC6oeC6ueC6meC6reC6reC6geC6guC6reC6h+C6p+C6tOC6lOC6teC7guC6reC6l+C6teC7iOC6m+C6reC6lOC7hOC6ni4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeUF1ZGlvU2V0dGluZ3MiIG1zZ2lkPSI2MDk1ODU5OTM3MDY5MTQ2MDg2Ij4i4Lqb4LuI4Lq94LqZ4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4Lqq4Lq94LqH4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjM1MjI1NjUzNjY4MDYyNDg1MTciPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4HguoHgu4ngu4TguoLguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLguqrgur3guofguqrgu4jguqfgupnguoHgurLguocg4LuA4LqK4Lqx4LuI4LqZOiDguqXgurDgupTgurHguprguqrgur3guocg4LuB4Lql4Lqw4Lql4Lqz4LuC4Lqe4LqH4LuD4LqU4LqX4Lq14LuI4LqW4Lq34LqB4LuD4LqK4LuJ4Lqq4Lq74LuI4LqH4Lqq4Lq94LqH4Lqt4Lqt4LqBLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjb3JkQXVkaW8iIG1zZ2lkPSIzODc2MDQ5NzcxNDI3NDY2MzIzIj4i4Lqa4Lqx4LqZ4LqX4Lq24LqB4Lqq4Lq94LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjb3JkQXVkaW8iIG1zZ2lkPSI0OTA2ODM5MzAxMDg3OTgwNjgwIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqa4Lqx4LqZ4LqX4Lq24LqB4Lqq4Lq94LqH4LqU4LuJ4Lqn4LqN4LuE4Lqh4LuC4LqE4Lqj4LuC4Lqf4LqZ4LuE4LqU4LuJLiDguoHgurLgupnguq3gurDgupngurjguo3gurLgupTgupngurXgu4nguojgurDgu4Dguq7gurHgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqq4Lqy4Lqh4Lqy4LqU4Lqa4Lqx4LqZ4LqX4Lq24LqB4Lqq4Lq94LqH4LuE4LqU4LuJ4LqV4Lqw4Lqr4Lql4Lqt4LqU4LuA4Lqn4Lql4LqyIOC7guC6lOC6jeC6muC7jeC7iOC6leC7ieC6reC6h+C6luC7ieC6suC6geC6suC6meC6ouC6t+C6meC6ouC6seC6meC6iOC6suC6geC6l+C7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYSIgbXNnaWQ9IjM2MTYzOTE5MTk1NTk3NTExOTIiPiLgupbgu4jgurLguo3guq7gurngupog4LuB4Lql4Lqw4Lqn4Lq04LqU4Lq14LuC4LqtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhIiBtc2dpZD0iODQ5NzIxNjUyNDczNTUzNTAwOSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6luC7iOC6suC6jeC6ruC6ueC6miDgu4HguqXgurDguqfgurTgupTgurXgu4Lguq3gupTgu4nguqfguo3guoHgu4nguq3guofgupbgu4jgurLguo3guq7gurngupouIOC6geC6suC6meC6reC6sOC6meC6uOC6jeC6suC6lOC6meC6teC7ieC6iOC6sOC6reC6suC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguqrgurLguqHgurLgupTgu4Pguorgu4nguoHgu4nguq3guofgupbgu4jgurLguo3guq7gurnguprgu4TgupTgu4ngupXgurDguqvguqXguq3gupTgu4DguqfguqXgurIg4LuC4LqU4LqN4Lqa4LuN4LuI4LqV4LuJ4Lqt4LqH4LqW4LuJ4Lqy4LqB4Lqy4LqZ4Lqi4Lq34LqZ4Lqi4Lqx4LqZ4LqI4Lqy4LqB4LqX4LuI4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FtZXJhRGlzYWJsZVRyYW5zbWl0TGVkIiBtc2dpZD0iMjY1MTA3MjYzMDUwMTEyNjIyMiI+IuC6m+C6tOC6lOC7hOC6n+C6quC6seC6meC6jeC6suC6mSBMRUQg4LuA4Lqh4Lq34LuI4Lqt4LqZ4Lqz4LuD4LqK4LuJ4LqB4LuJ4Lqt4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhRGlzYWJsZVRyYW5zbWl0TGVkIiBtc2dpZD0iNDc2NDU4NTQ2NTQ4MDI5NTM0MSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6l+C6teC7iOC6oeC6suC6geC6seC6muC7guC6leC7gOC6hOC6t+C7iOC6reC6hyDgupvgurTgupTguoHgurLgupngupngurPgu4Pguorgu4ngu4Tgup8gTEVEIOC7g+C6meC6geC7ieC6reC6h+C6luC7iOC6suC6jeC6ruC6ueC6mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyOTYxMjkyMjA1NzY0NDg4MzA0Ij4i4Lqb4Lq04LqU4LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqW4Lqy4Lqn4Lqt4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icmljayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgzMzc4MTcwOTMzMjYzNzA1MzciPiLgupvgurTgupTguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoHguoLguq3guofgu4LgupfguqXgurDguqrgurHguprgupbgurLguqfguq3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icmljayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDMzNDgxODgwODAwMTY5OTUzMCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6m+C6tOC6lOC6geC6suC6meC6meC6s+C7g+C6iuC7ieC7geC6l+C6seC6muC7gOC6peC6seC6lOC6l+C6seC6h+C7neC6u+C6lOC7guC6lOC6jeC6luC6suC6p+C6reC6mS4g4LqE4Lq44LqZ4Lqq4Lq74Lqh4Lqa4Lqx4LqU4LqZ4Lq14LuJ4LuA4Lqb4Lqx4LqZ4Lqq4Lq04LuI4LqH4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqN4Lqr4Lq84Lqy4LqNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JyaWNrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTc4ODkwMzI5NzYyNzI4MzA5OSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6m+C6tOC6lOC6geC6suC6meC6meC6s+C7g+C6iuC7ieC7guC6l+C6peC6sOC6quC6seC6muC6l+C6seC6h+C7neC6u+C6lOC7geC6muC6muC6luC6suC6p+C6reC6mS4g4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqN4Lqr4Lq84Lqy4LqNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVib290IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzNDM2NjM0OTcyNTYxNzk1MDAyIj4i4Lqa4Lqx4LqH4LqE4Lqx4Lqa4LuD4Lqr4LuJ4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4Lqb4Lq04LqU4LuB4Lql4LuJ4Lqn4LuA4Lqb4Lq14LqU4LuD4Lud4LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyODk4NTYwODcyNDYyNjM4MjQyIj4i4Lqa4Lqx4LqH4LqE4Lqx4Lqa4LuD4Lqr4LuJ4LuC4LqX4Lql4Lqw4Lqq4Lqx4Lqa4Lqb4Lq04LqU4LuB4Lql4LuJ4Lqn4LuA4Lqb4Lq14LqU4LuD4Lud4LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVib290IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MTcyMDU2MTgwMDYzNzAwNzQxIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6muC6seC6h+C6hOC6seC6muC7geC6l+C6seC6muC7gOC6peC6seC6lOC7g+C6q+C7ieC6m+C6tOC6lOC7gOC6m+C6teC6lOC7g+C7neC7iC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MzI2MDA4MTI0Mjg5OTg5OTY5Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6muC6seC6h+C6hOC6seC6muC7g+C6q+C7ieC7guC6l+C6peC6sOC6quC6seC6muC6m+C6tOC6lOC7gOC6m+C6teC6lOC7g+C7neC7iC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjkyNzM2MTUzNzk0MjU5MTg0MSI+IuC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C7hOC6n+C6peC7jOC6peC6sOC6muC6u+C6muC6guC6reC6h+C6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDAyMzA1MDQ5ODkwOTUzODEwIj4i4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqH4LuE4Lqf4Lql4LuM4Lql4Lqw4Lqa4Lq74Lqa4LqC4Lqt4LqHIFNEIGNhcmQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBtc2dpZD0iMTgyOTI5MDcwMTY1ODk5MjM0NyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDgu4Dguorgurfgu4jguq3guqHgupXgu43gu4gg4LuB4Lql4Lqw4LqW4Lqt4LqZ4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LqI4Lqy4LqB4Lql4Lqw4Lqa4Lq74Lqa4LuE4Lqf4Lql4LuMIOC6guC6reC6h+C6reC6uOC6m+C6sOC6geC6reC6meC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC7geC6muC6muC6luC6reC6lOC6reC6reC6geC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MjI3ODE5NTgyNjI0OTA0OTcyIj4i4Lql4Lq24Lqa4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjYyNTgyNjk4NjM5Mjc0MDU2Ij4i4Lql4Lq24LqaIFNEIGNhcmQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIG1zZ2lkPSI4Nzg0MjY4MjQ2Nzc5MTk4NjI3Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6n+C7jeC7geC6oeC6seC6lOC6reC6uOC6m+C6sOC6geC6reC6meC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC6l+C6teC7iOC6quC6suC6oeC6suC6lOC6luC6reC6lOC6reC6reC6geC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfYWNjZXNzIiBtc2dpZD0iMzQxMTMzODYzMjAwMjE5Mzg0NiI+IuC6lOC6tuC6h+C6guC7jeC7ieC6oeC6ueC6meC6iOC6suC6geC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC6nuC6suC6jeC7g+C6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfYWNjZXNzIiBtc2dpZD0iMzA5NDU2Mzg0NDU5Mzg3ODU0OCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6lOC6tuC6h+C6guC7jeC7ieC6oeC6ueC6meC7g+C6meC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC6nuC6suC6jeC7g+C6meC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfY3JlYXRlIiBtc2dpZD0iNjQxNDc1NzIzNDc4OTMzNjMyNyI+IuC6quC7ieC6suC6h+C6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC6nuC6suC6jeC7g+C6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfY3JlYXRlIiBtc2dpZD0iNDU1ODg2OTI3MzU4NTg1Njg3NiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6quC7ieC6suC6h+C6nuC6t+C7ieC6meC6l+C6teC7iOC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC6nuC6suC6jeC7g+C6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjUyNjkyODMyODMwMTYxODAyMiI+IuC6l+C6s+C6peC6suC6jeC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC6nuC6suC6jeC7g+C6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjcyMTg3NDkyODYxNDU1MjY1MzciPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gupfgurPguqXgurLguo3guprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupngup7gurLguo3gu4PgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX21vdW50X3VubW91bnQiIG1zZ2lkPSI4ODc3OTk4MTAxOTQ0OTk5Mzg2Ij4i4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuIL+C6luC6reC6meC6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iCDguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupngup7gurLguo3gu4PgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX21vdW50X3VubW91bnQiIG1zZ2lkPSIzNDUxMzYwMTE0OTAyNDkwOTI5Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iC/gupbguq3gupTguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4gg4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqe4Lqy4LqN4LuD4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19yZW5hbWUiIG1zZ2lkPSI3NDk2NjMzOTU0MDgwNDcyNDE3Ij4i4Lqb4LuI4Lq94LqZ4LqK4Lq34LuI4Lqa4LuI4Lqt4LqZ4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqe4Lqy4LqN4LuD4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19yZW5hbWUiIG1zZ2lkPSIxNzk0NzU3NTg4NDcyMTI3Njc1Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4Lqb4LuI4Lq94LqZ4LqK4Lq34LuI4Lqe4Lq34LuJ4LqZ4LqX4Lq14LuI4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqe4Lqy4LqN4LuD4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdmlicmF0ZSIgbXNnaWQ9Ijc2OTY0MjcwMjYwNTc3MDU4MzQiPiLguoTguqfguprguoTgurjguqHguoHgurLgupnguqrgurHgu4jgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY192aWJyYXRlIiBtc2dpZD0iNjI4NDk4OTI0NTkwMjMwMDk0NSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6hOC6p+C6muC6hOC6uOC6oeC7guC6leC6quC6seC7iOC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZsYXNobGlnaHQiIG1zZ2lkPSIyMTU1OTIwODEwMTIxOTg0MjE1Ij4i4LqE4Lqn4Lqa4LqE4Lq44Lqh4LuE4Lqf4LuB4Lqf4Lql4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmxhc2hsaWdodCIgbXNnaWQ9IjY1MjIyODQ3OTQ1NjgzNjgzMTAiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4LqE4Lqn4Lqa4LqE4Lq44Lqh4LuE4Lqf4LuB4Lqf4Lql4LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlVXNiIiBtc2dpZD0iMTExMzQ1MzQzMDY0NTQwMjcyMyI+IuC6iOC6seC6lOC6geC6suC6meC6geC6suC6meC6geC6s+C6meC6u+C6lOC6hOC7iOC6siDgu4HguqXgurDguoHgurLgupnguq3gurDgupngurjguo3gurLgupTguqrgurPguqXgurHguprguq3gurjgupvgurDguoHguq3gupkgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNiIiBtc2dpZD0iNzc3NjE1NTQzMDIxODIzOTgzMyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguojgurHgupTguoHgurLgupnguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLguoTguqfgurLguqHgupXgu4nguq3guofguoHgurLgupkg4LuB4Lql4Lqw4LqB4Lqy4LqZ4LqB4Lqz4LqZ4Lq74LqU4Lqq4Lq04LqU4Lqq4Lqz4Lql4Lqx4Lqa4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZIFVTQi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc010cCIgbXNnaWQ9IjQ5NTM0Njg2NzY3OTU5MTcwNDIiPiLgu4Pguorgu4ngu4LgupvguqPgu4LgupXguoTguq3gupkgTVRQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTXRwIiBtc2dpZD0iNjUzMjk2MTIwMDQ4Njc5MTU3MCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC6geC6suC6meC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6hyBrZXJuZWwgTVBUIGRyaXZlciDgu4Dgup7gurfgu4jguq3gu4Pguorgu4ngu4LgupvguqPgu4LgupXguoTguq3gupkgTVRQIFVTQi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2hhcmR3YXJlX3Rlc3QiIG1zZ2lkPSI0MTQ4MjkwODYwNDAwNjU5MTQ2Ij4i4LqX4Lq74LqU4Lqq4Lqt4Lqa4Lqu4Lqy4LqU4LuB4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjY1OTc5NjQxOTEyMDgwMTY2MDUiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guoTguqfguprguoTgurjguqHguq3gurjgupvgurDguoHguq3gupngupXgu43gu4jgup7gu4jguqfguofgupfgurHguofguqvgurzgurLguo0g4LuA4Lqe4Lq34LuI4Lqt4LqI4Lq44LqU4Lqb4Lqw4Lqq4Lq74LqH4LqB4Lqy4LqZ4LqX4Lq74LqU4Lqq4Lqt4Lqa4Lqu4Lqy4LqU4LuB4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FsbFBob25lIiBtc2dpZD0iMzkyNTgzNjM0NzY4MTg0Nzk1NCI+IuC7guC6l+C6q+C6suC7gOC6muC6teC7guC6l+C6peC6sOC6quC6seC6muC7guC6lOC6jeC6geC6u+C6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbGxQaG9uZSIgbXNnaWQ9IjM3NDA3OTc1NzYxMTM3NjA4MjciPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4LgupfguqvgurLgu4DguprgurXgu4LgupfguqXgurDguqrgurHguprgu4TgupTgu4kg4LuC4LqU4LqN4Lqa4LuN4LuI4LqV4LuJ4Lqt4LqH4LqW4LuJ4Lqy4LqB4Lqy4LqZ4LqU4Lqz4LuA4LqZ4Lq14LqZ4LqB4Lqy4LqZ4LuD4LqU4LuG4LqI4Lqy4LqB4LqX4LuI4Lqy4LqZLiDguoTgurjgupnguqrgurvguqHguprgurHgupTgupngurXgu4nguq3gurLgupTguoHgu43gu4jgu4Pguqvgu4ngu4DguoHgurXgupTguoTgu4jgurLgu4Pguorgu4nguojgu4jgurLguo3gu4PgupnguoHgurLgupngu4LgupfgupfgurXgu4jguprgu43gu4jguoTgurLgupTguoTgurTgupTgu4TgupTgu4kuIOC7neC6suC6jeC7gOC6q+C6lDog4LqE4Lq44LqZ4Lqq4Lq74Lqh4Lqa4Lqx4LqU4LqZ4Lq14LuJ4Lqa4LuN4LuI4LuE4LqU4LuJ4LuA4Lqb4Lqx4LqZ4LqB4Lqy4LqZ4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6quC6suC6oeC6suC6lOC7guC6l+C6q+C6suC7gOC6muC6teC6quC6uOC6geC7gOC6quC6teC6mS4g4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqN4Lqt4Lqy4LqU4LuA4Lqu4Lqx4LqU4LuD4Lqr4LuJ4LqX4LuI4Lqy4LqZIOC6leC7ieC6reC6h+C7gOC6quC6jeC6hOC7iOC6suC7guC6l+C7guC6lOC6jeC6l+C6teC7iOC6muC7jeC7iOC7hOC6lOC7ieC6hOC6suC6lOC6hOC6tOC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbGxQcml2aWxlZ2VkIiBtc2dpZD0iNDE5ODM0OTIxMTEwODQ5Nzg3OSI+IuC7guC6l+C7guC6lOC6jeC6geC6u+C6h+C7hOC6m+C6q+C6suC7gOC6muC6teC7guC6l+C7g+C6lOC6geC7jeC7hOC6lOC7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbGxQcml2aWxlZ2VkIiBtc2dpZD0iMTY4OTAyNDkwMTUwOTk5NjgxMCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C7guC6l+C6reC6reC6geC6q+C6suC7gOC6muC6teC7guC6l+C6peC6sOC6quC6seC6muC7g+C6lOC6geC7jeC7hOC6lOC7iSwg4Lqu4Lqn4Lqh4LqX4Lqx4LqH4LuA4Lqa4Lq14Lqq4Lq44LqB4LuA4Lqq4Lq14LqZLCDgu4LgupTguo3guprgu43gu4jguqHgurXguoHgurLgupngu4HguorguoHgu4HguorguofguoLguq3guofgupfgu4jgurLgupkuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jeC6reC6suC6lOC7guC6l+C6reC6reC6geC7guC6lOC6jeC6muC7jeC7iOC6iOC6s+C7gOC6m+C6seC6mSDgu4HguqXgurDgu4LgupfguqvgurLguprgu43guqXgurTguoHgurLgupngu4DguprgurXguqrgurjguoHgu4DguqrgurXgupngu4HguprguprgupzgurTgupTguoHgurvgupTgu53gurLguo0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDg0MjU3Njk5NDE0NDYwNDgyMSI+IuC7gOC6peC6teC7iOC6oeC6geC6suC6meC6leC6seC7ieC6h+C6hOC7iOC6suC7geC6l+C6seC6muC7gOC6peC6seC6lCBDRE1BIOC7guC6lOC6jeC6geC6u+C6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NjA0ODQ4MDk1MzE1NDIxNDI1Ij4i4LuA4Lql4Lq14LuI4Lqh4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4LuC4LqX4Lql4Lqw4Lqq4Lqx4LqaIENETUEg4LuC4LqU4LqN4LqB4Lq74LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIG1zZ2lkPSIxOTk0MTkzNTM4ODAyMzE0MTg2Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LuA4Lql4Lq14LuI4Lqh4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqC4Lqt4LqHIENETUEuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jeC6reC6suC6lOC7gOC6peC6teC7iOC6oeC6geC6suC6meC7gOC6ruC6seC6lOC6p+C6veC6geC6guC6reC6hyBDRE1BIOC7guC6lOC6jeC6muC7jeC7iOC6iOC6s+C7gOC6m+C6seC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2xvY2F0aW9uVXBkYXRlcyIgbXNnaWQ9Ijc3ODU0MDgyNTMzNjQzMzU3NDAiPiLguoTguqfguprguoTgurjguqHguoHgurLgupngu4Hguojgu4nguofgu4DgupXgurfguq3gupnguq3gurHguprgu4DgupTgupTguqrgurDgupbgurLgupngupfgurXgu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19sb2NhdGlvblVwZGF0ZXMiIG1zZ2lkPSIxMTIwNzQxNTU3ODkxNDM4ODc2Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC7gOC6m+C6teC6lC/gupvgurTgupQg4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqC4Lqt4LqH4LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZ4Lqt4Lqx4Lqa4LuA4LqU4LqU4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4LqI4Lqy4LqB4Lqn4Lq04LqX4Lqw4LqN4Lq4LiDgu4Hguq3gurHguprguq/gupfgurvgu4jguqfgu4Tgupvguprgu43gu4jguojgurPgu4DgupvgurHgupngupXgu4nguq3guofgu4Pguorgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGVja2luUHJvcGVydGllcyIgbXNnaWQ9Ijc4NTUyNTk0NjEyNjg3MzQ5MTQiPiLgu4DguoLgurvgu4ngurLgu4DgupbgurTguofguoTgurjgupnguqrgurvguqHguprgurHgupTguoHgurLgupngu4DguorgurHguoHguq3gurTgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGVja2luUHJvcGVydGllcyIgbXNnaWQ9IjQwMjQ1MjY5Njg2MzAxOTQxMjgiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4TgupTgu4nguq7gurHguprguqrgurTgupQg4Lqt4LuI4Lqy4LqZL+C6guC6veC6mSDgu4Pguqrgu4jguqrgurTgu4jguofgupfgurXgu4jguq3gurHguprgu4LguqvgurzgupTguoLgurbgu4ngupngu4LgupTguo3guprgu43guqXgurTguoHgurLgupngu4DguorgurHguoHguq3gurTgupkuIOC6muC7jeC7iOC7g+C6iuC7ieC7g+C6meC7geC6reC6seC6muC6r+C6l+C6u+C7iOC6p+C7hOC6my4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRHYWRnZXQiIG1zZ2lkPSI3NzY5MDUzMzkwMTU4NjM0NzEiPiLgu4DguqXgurfguq3guoHguqfgurTgupTgu4DguojgurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kR2FkZ2V0IiBtc2dpZD0iODI2MTMyNjkzODU5OTA0OTI5MCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6muC6reC6geC6peC6sOC6muC6u+C6muC6p+C7iOC6siDguqfgurTgupTgu4DguojgurHgupTgu4PgupTguqrgurLguqHgurLgupTgupngurPgu4Pguorgu4ngu4LgupTguo3gu4Hguq3gurHguprguq/gu4PgupQuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC6oeC6teC6geC6suC6meC6reC6sOC6meC6uOC6jeC6suC6lOC6meC6teC7ieC6iOC6sOC6oeC6reC6muC6geC6suC6meC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C6guC7jeC7ieC6oeC6ueC6meC6quC7iOC6p+C6meC7guC6lSDgu4Pguqvgu4nguoHgurHguprgu4Hguq3gurHguprguq/guq3gurfgu4jgupngu4TgupTgu4kuIOC6muC7jeC7iOC7hOC6lOC7ieC7g+C6iuC7ieC7guC6lOC6jeC7geC6reC6seC6muC6r+C6l+C6u+C7iOC6p+C7hOC6my4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeVBob25lU3RhdGUiIG1zZ2lkPSI4NDIzOTIzNzc3NjU5MjkyMjI4Ij4i4LuB4LqB4LuJ4LuE4LqC4Lqq4Lqw4LqW4Lqy4LqZ4Lqw4LuC4LqX4Lql4Lqw4Lqq4Lqx4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5UGhvbmVTdGF0ZSIgbXNnaWQ9IjEwMjk4Nzc1MjkwMDc2ODY3MzIiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guoTguqfguprguoTgurjguqHguoTguqfgurLguqHguqrgurLguqHgurLgupTguoLguq3guofgu4LgupfguqXgurDguqrgurHguprgu4Pgupnguq3gurjgupvgurDguoHguq3gupkuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC6oeC6teC6geC6suC6meC6reC6sOC6meC6uOC6jeC6suC6lOC6meC6teC7ieC6iOC6sOC6quC6suC6oeC6suC6lOC6quC6sOC6peC6seC6muC7gOC6hOC6t+C6reC6guC7iOC6suC6jSwg4LuA4Lqb4Lq14LqUIOC6q+C6vOC6t+C6m+C6tOC6lOC6quC6seC6meC6jeC6suC6meC6p+C6tOC6l+C6sOC6jeC6uCDgu4HguqXgurDguoTguqfgurLguqHguqrgurLguqHgurLgupTguq3gurfgu4jgupngupfgurXgu4jguoTgu4ngurLguo3guoHgurHgupkg4LuC4LqU4LqN4Lqa4LuN4LuI4Lqh4Lq14LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZ4LqX4LuI4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFBob25lU3RhdGUiIG1zZ2lkPSI5MTc4MjI4NTI0NTA3NjEwNDg2Ij4i4Lqt4LuI4Lqy4LqZ4Lqq4Lqw4LqW4Lqy4LqZ4LqwIOC7geC6peC6sOC6guC7jeC7ieC6oeC6ueC6meC6peC6sOC6muC6uOC7guC6leC6leC6u+C6meC6guC6reC6h+C7guC6l+C6peC6sOC6quC6seC6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRQaG9uZVN0YXRlIiBtc2dpZD0iMTYzOTIxMjc3MTgyNjEyNTUyOCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDgu4DguoLgurvgu4ngurLgu4DgupbgurTguofguoTguqfgurLguqHguqrgurLguqHgurLgupTguoHgurLgupngu4LgupfguqXgurDguqrgurHguprguoLguq3guofguq3gurjgupvgurDguoHguq3gupkuIOC6geC6suC6meC6geC6s+C6meC6u+C6lOC6quC6tOC6lOC6meC6teC7ieC7gOC6ruC6seC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6quC6suC6oeC6suC6lOC6geC6p+C6lOC6quC6reC6muC7gOC6muC6teC7guC6l+C6peC6sOC6quC6seC6miDgu4HguqXgurAgSUQg4LqC4Lqt4LqH4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZLCDguprgu43gu4jguqfgu4jgurLguoHgurLgupngu4LgupfguojgurDguo3gurHguofgupTgurPgu4DgupngurXgupnguqLgurngu4gg4LuB4Lql4Lqw4LuA4Lqa4Lq14Lqb4Lqy4LqN4LqX4Lqy4LqH4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4Lqi4Lq54LuI4Lqr4Lq84Lq34Lqa4LuN4LuI4LqB4LuN4LqV4Lqy4LqhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd2FrZUxvY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1MzE3MzE0MzUwMTE0OTUwMTUiPiLguoLgurHgupTguoLguqfgurLguofguprgu43gu4jgu4Pguqvgu4ngupvgurTgupTgu5zgu4ngurLguojgu43gu4HgupfgurHguprgu4DguqXgurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dha2VMb2NrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTczNDgwMTg3OTQxNDk2MTMwIj4i4LqC4Lqx4LqU4LqC4Lqn4Lqy4LqH4Lqa4LuN4LuI4LuD4Lqr4LuJ4LuC4LqX4Lql4Lqw4Lqq4Lqx4Lqa4Lqb4Lq04LqU4Luc4LuJ4Lqy4LqI4LuNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd2FrZUxvY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjczMTEzMTk4MjQ0MDA0NDc4NjgiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4Lqb4LuJ4Lqt4LqH4LqB4Lqx4LqZ4Lqa4LuN4LuI4LuD4Lqr4LuJ4Lqb4Lq04LqU4Luc4LuJ4Lqy4LqI4LuN4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dha2VMb2NrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODU1OTEwMDY3NzM3MjkyODc1NCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6m+C7ieC6reC6h+C6geC6seC6meC6muC7jeC7iOC7g+C6q+C7ieC6m+C6tOC6lOC7nOC7ieC6suC6iOC7jeC7guC6l+C6peC6sOC6quC6seC6mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RldmljZVBvd2VyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNzg3MDM0NzIyNjE2MzUwNDE3Ij4i4LuA4Lqb4Lq14LqUIOC6q+C6vOC6t+C6m+C6tOC6lOC7geC6l+C6seC6muC7gOC6peC6seC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0OTI4NjIyNDcwOTgwOTQzMjA2Ij4i4LuA4Lqb4Lq14LqUIOC6q+C6vOC6t+C6m+C6tOC6lOC7guC6l+C6peC6sOC6quC6seC6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RldmljZVBvd2VyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2Njg5ODYyODc4OTg0NjMxODMxIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LuA4Lqb4Lq14LqUIOC6q+C6vOC6t+C6m+C6tOC6lOC7geC6l+C6seC6muC7gOC6peC6seC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZXZpY2VQb3dlciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjYwMzcwNTczNDg0NjMxMzEwMzIiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupngupvgurTgupQg4Lqr4Lq84Lq34LuA4Lqb4Lq14LqU4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZmFjdG9yeVRlc3QiIG1zZ2lkPSIzNzE1MjI1NDkyNjk2NDE2MTg3Ij4i4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LuD4LqZ4LuC4Lud4LqU4LqB4Lqy4LqZ4LqX4Lq74LqU4Lqq4Lqt4Lqa4LqC4Lqt4LqH4LuC4Lqu4LqH4LqH4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM5NTIwNTkzMTgzNTk2NTMwOTEiPiLgu4Dguq7gurHgupTguqfgur3guoHgu4Pgupnguq7gurnguprgu4HguprguprgupfgurvgupTguqrguq3guprgu4PgupnguqXgurDgupTgurHguprgupXgu43gu4jgurLguoLguq3guofgupzgurngu4jgupzgurDguqXgurTgupQsIOC6reC6sOC6meC6uOC6jeC6suC6lOC6geC6suC6meC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C7geC6muC6muC7gOC6leC6seC6oeC6ruC6ueC6muC7geC6muC6muC6q+C6suC6ruC6suC6lOC7geC6p+C6guC6reC6h+C7geC6l+C6seC6muC7gOC6peC6seC6lC4g4LuD4LqK4LuJ4LuE4LqU4LuJ4Lqq4Lqw4LuA4Lqe4Lqy4Lqw4LuD4LqZ4LuA4Lqn4Lql4Lqy4LqX4Lq14LuI4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqB4Lqz4Lql4Lqx4LqH4Lqi4Lq54LuI4LuD4LqZ4LuC4Lud4LqUIOC6geC6suC6meC6l+C6u+C6lOC6quC6reC6muC6guC6reC6h+C6nOC6ueC7iOC6nOC6sOC6peC6tOC6lGdtcWprb2Foby4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mYWN0b3J5VGVzdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgxMzY2NDQ5OTAzMTkyNDQ4MDIiPiLgu4DgupvgurXgupTgu4Pguorgu4ngu4Pgupngu4HguprguprguoHgurLgupngupfgurvgupTguqrguq3guprguoLguq3guofgupzgurngu4jguqXgurDguqXgurTgupTgu4PgupnguqXgurDgupTgurHguprgupXgu43gu4jgurIsIOC6reC6sOC6meC6uOC6jeC6suC6lOC6geC6suC6meC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C6ruC6suC6lOC7geC6p+C6guC6reC6h+C7guC6l+C6peC6sOC6quC6seC6muC7geC6muC6muC6quC6u+C6oeC6muC6ueC6mS4g4Lqq4Lqw4LuA4Lqe4Lqy4Lqw4LuA4Lqh4Lq34LuI4Lqt4LuC4LqX4Lql4Lqw4Lqq4Lqx4Lqa4LqW4Lq34LqB4LuA4Lqb4Lq14LqU4LuD4LqK4LuJIOC7g+C6meC7guC7neC6lOC6geC6suC6meC6l+C6u+C6lOC6quC6reC6muC6guC6reC6h+C6nOC6ueC7iOC6nOC6sOC6peC6tOC6lOC7gOC6l+C6u+C7iOC6suC6meC6seC7ieC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFdhbGxwYXBlciIgbXNnaWQ9IjY2MjcxOTIzMzMzNzM0NjUxNDMiPiLgupXgurHgu4nguofgup7gurLguprgup7gurfgu4ngupnguqvgurzgurHguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRXYWxscGFwZXIiIG1zZ2lkPSI3MzczNDQ3OTIwOTc3NjI0NzQ1Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4Lqe4Lqy4Lqa4Lqe4Lq34LuJ4LqZ4Lqr4Lq84Lqx4LqH4LqC4Lqt4LqH4Lql4Lqw4Lqa4Lq74Lqa4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0V2FsbHBhcGVySGludHMiIG1zZ2lkPSIzMjc4NjA4MTY1OTc3NzM2NTM4Ij4i4Lqb4Lqx4Lqa4LqC4Lqw4Luc4Lqy4LqU4Lqe4Lqy4Lqa4Lqe4Lq34LuJ4LqZ4Lqr4Lq84Lqx4LqH4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0V2FsbHBhcGVySGludHMiIG1zZ2lkPSI4MjM1Nzg0Mzg0MjIzNzMwMDkxIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6leC6seC7ieC6h+C6hOC7iOC6suC6hOC6s+C7geC6meC6sOC6meC6s+C6guC6sOC7nOC6suC6lOC6nuC6suC6muC6nuC6t+C7ieC6meC6q+C6vOC6seC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hc3RlckNsZWFyIiBtc2dpZD0iMjMxNTc1MDQyMzEzOTY5NzM5NyI+IuC6o+C6teC7gOC6iuC6seC6lOC6peC6sOC6muC6u+C6muC7g+C6q+C7ieC7gOC6m+C6seC6meC6hOC7iOC6suC7gOC6peC6teC7iOC6oeC6leC6u+C7ieC6meC6l+C6teC7iOC6oeC6suC6iOC6suC6geC7guC6ruC6h+C6h+C6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hc3RlckNsZWFyIiBtc2dpZD0iMzY2NTM4MDQ5MjYzMzkxMDIyNiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguqPgurXgu4DguorgurHgupTguoTgu4jgurLgupfgurHguofgu53gurvgupTguoLguq3guofguqXgurDguprgurvguprgu4Pguqvgu4nguoHgurHguprgu4Tgupvgu4DgupvgurHgupngu4HguprguprgupfgurXgu4jguqHgurLguojgurLguoHgu4Lguq7guofguofgurLgupksIOC6peC6tuC6muC6guC7jeC7ieC6oeC6ueC6mSwg4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4LqyIOC7geC6peC6sOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7hOC6lOC7ieC6leC6tOC6lOC6leC6seC7ieC6h+C7hOC6p+C7ieC6l+C6seC6h+C7neC6u+C6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFRpbWUiIG1zZ2lkPSIyMDIxNjE0ODI5NTkxNzc1NjQ2Ij4i4LqV4Lqx4LuJ4LqH4LuA4Lqn4Lql4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTg5NjM0MTQzODE1MTE1Mjg4MSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6m+C7iOC6veC6meC7gOC6p+C6peC6suC6guC6reC6h+C7guC6oeC6h+C7g+C6meC7geC6l+C6seC6muC7gOC6peC6seC6lOC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTg1NTcwMjczMDczODAyMCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6m+C7iOC6veC6meC7gOC6p+C6peC6suC6guC6reC6h+C7guC6oeC6h+C7g+C6meC7guC6l+C6peC6sOC6quC6seC6muC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFRpbWVab25lIiBtc2dpZD0iMjk0NTA3OTgwMTAxMzA3NzM0MCI+IuC6leC6seC7ieC6h+C7gOC6guC6lOC7gOC6p+C6peC6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNjc2OTgzNzEyMzE1ODI3NjQ1Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqb4LuI4Lq94LqZ4LuA4LqC4LqU4LuA4Lqn4Lql4Lqy4LqC4Lqt4LqH4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDQ5OTk0MzQ4ODQzNjYzMzM5OCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDgupvgu4jgur3gupngu4DguoLgupTgu4DguqfguqXgurLguoLguq3guofgu4LgupfguqXgurDguqrgurHgupouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2NvdW50TWFuYWdlclNlcnZpY2UiIG1zZ2lkPSI0ODI5MjYyMzQ5NjkxMzg2OTg2Ij4i4LuA4Lqu4Lqx4LqU4Luc4LuJ4Lqy4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZIEFjY291bnRNYW5hZ2VyU2VydmljZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjE5NDg0NTU1NTIzMzM2MTU5NTQiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4Dguq3gurXgu4ngupnguqvgurIgQWNjb3VudEF1dGhlbnRpY2F0b3JzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0QWNjb3VudHMiIG1zZ2lkPSIxMDg2Nzk1NDY3NzYwMTIyMTE0Ij4i4LqK4Lqt4LqB4Lqr4Lqy4Lqa4Lqx4LqZ4LqK4Lq14LuD4LqZ4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QWNjb3VudHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI3NDE0OTY1MzQ3Njk2NjAwMjciPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guq7gurHguprgu4Dguq3gurvgurLguqXgurLguo3guoHgurLgupnguoLguq3guofguprgurHgupnguorgurXgupfgurXgu4jguq7gurngu4nguojgurHguoHgu4LgupTguo3gu4HgupfgurHguprgu4DguqXgurHgupQuIOC6meC6teC7ieC6reC6suC6lOC6ruC6p+C6oeC6l+C6seC6h+C6muC6seC6meC6iuC6teC6leC7iOC6suC6h+C7hiDgupfgurXgu4jgupbgurfguoHguqrgu4ngurLguofgu4LgupTguo3gu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupngupfgurXgu4jgupfgu4jgurLgupngu4TgupTgu4ngupXgurTgupTgupXgurHgu4nguofgu4Tguqfgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QWNjb3VudHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDQ4MzE2ODIyNDUxODA3MzgyIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZIOC6lOC6tuC6h+C6guC7jeC7ieC6oeC6ueC6meC6peC6suC6jeC6iuC6t+C7iOC6guC6reC6h+C6muC6seC6meC6iuC6teC6l+C6teC7iOC7guC6l+C6peC6sOC6quC6seC6muC6oeC6tSDgu4DguorgurTgu4jguofguq3gurLgupTguq7guqfguqHgu4DgupbgurTguofguprgurHgupnguorgurXgupfgurXgu4jgu4PgupTgu4bgupfgurXgu4jguqrgu4ngurLguofguoLgurbgu4ngupkg4LuC4LqU4LqN4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4LqX4Lq14LuI4LqX4LuI4Lqy4LqZ4LqV4Lq04LqU4LqV4Lqx4LuJ4LqH4LuE4Lqn4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXV0aGVudGljYXRlQWNjb3VudHMiIG1zZ2lkPSI1MjY1OTA4NDgxMTcyNzM2OTMzIj4i4Lqq4LuJ4Lqy4LqH4Lqa4Lqx4LqZ4LqK4Lq1IOC7geC6peC6sOC6leC6seC7ieC6h+C6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2F1dGhlbnRpY2F0ZUFjY291bnRzIiBtc2dpZD0iNTQ3MjEyNDI5NjkwODk3NzI2MCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDgu4Pguorgu4nguoTguqfgurLguqHguqrgurLguqHgurLgupTguoLguq3guofgupXgurvguqfgup7gurTguqrgurngupTguqrgurTgupTguprgurHgupnguorgurXguoLguq3guocgQWNjb3VudE1hbmFnZXIg4Lqu4Lqn4Lqh4LqX4Lqx4LqH4LqB4Lqy4LqZ4Lqq4LuJ4Lqy4LqH4Lqa4Lqx4LqZ4LqK4Lq1LCDguoHgurLgupnguoLgu43gu4DguprgurTgu4jguocg4LuB4Lql4Lqw4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI0OTgzMTI2MzA0NzU3MTc3MzA1Ij4i4Lqq4LuJ4Lqy4LqHIOC6q+C6vOC6t+C6peC6tuC6muC6muC6seC6meC6iuC6tSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFjY291bnRzIiBtc2dpZD0iODY5ODI5NTYyNTQ4ODI5MjUwNiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6lOC6s+C7gOC6meC6teC6meC6geC6suC6meC7gOC6iuC6seC7iOC6mTog4LuA4Lqe4Lq14LuI4LqhIOC6q+C6vOC6t+C6peC6tuC6muC6muC6seC6meC6iuC6tSDgu4HguqXgurDguqXgurbguprguqXgurDguqvgurHgupTgupzgu4jgurLgupnguoLguq3guofguprgurHgupnguorgurXgu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91c2VDcmVkZW50aWFscyIgbXNnaWQ9IjIzNTQ4MTM5NjE2Mzg3NzY0MiI+IuC7g+C6iuC7ieC6muC6seC6meC6iuC6teC7g+C6meC6reC6uOC6m+C6sOC6geC6reC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZUNyZWRlbnRpYWxzIiBtc2dpZD0iNzk4NDIyNzE0NzQwMzM0NjQyMiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6ruC7ieC6reC6h+C6guC7jeC7guC6l+C7gOC6hOC6meC6geC6suC6meC6nuC6tOC6quC6ueC6lOC6ouC6t+C6meC6ouC6seC6meC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjQ5NTEwMjc5NjQzNDg5NzQ3NzMiPiLgu4DguprgurTgu4jguofguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4jgu4DguoTgurfguq3guoLgu4jgurLguo0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOZXR3b3JrU3RhdGUiIG1zZ2lkPSI4MzE4OTY0NDI0Njc1OTYwOTc1Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC7gOC6muC6tOC7iOC6h+C6guC7jeC7ieC6oeC6ueC6meC6geC7iOC6veC6p+C6geC6seC6muC6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC7gOC6hOC6t+C6reC6guC7iOC6suC6jSDgu4DguorgurHgu4jgupnguqfgu4jgurLguqHgurXgu4DguoTgurfguq3guoLgu4jgurLguo3gu4PgupTgu4HgupTgu4gg4LuB4Lql4Lqw4LuE4LqU4LuJ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LqB4Lqx4Lqa4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqN4LuD4LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY3JlYXRlTmV0d29ya1NvY2tldHMiIG1zZ2lkPSI4MDE4NzU4MTM2NDA0MzIzNjU4Ij4i4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqH4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqN4LuA4LqV4Lqx4Lqh4Lqu4Lq54Lqa4LuB4Lqa4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY3JlYXRlTmV0d29ya1NvY2tldHMiIG1zZ2lkPSIzNDAzMDYyMTg3Nzc5NzI0MTg1Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqq4LuJ4Lqy4LqH4LqK4Lqx4Lqt4LqB4LuA4LqB4Lqx4LqU4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqNIOC7geC6peC6sOC7guC6m+C6o+C7guC6leC6hOC6reC6meC7gOC6hOC6t+C6reC6guC7iOC6suC6jeC7geC6muC6muC6geC6s+C6meC6u+C6lOC7gOC6reC6hy4g4LuC4Lqb4Lqj4LuB4LqB4Lqj4Lqh4LqX4LuI4Lqt4LqH4LuA4Lqn4Lqx4LqaIOC7geC6peC6sOC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6reC6t+C7iOC6meC7huC6iOC6sOC6quC6u+C7iOC6h+C6guC7jeC7ieC6oeC6ueC6meC6quC6ueC7iOC6reC6tOC6meC7gOC6leC6teC7gOC6meC6seC6lOC6ouC6ueC7iOC7geC6peC7ieC6pyDgupTgurHgu4jguofgupngurHgu4ngupnguoHgurLgupnguq3gurDgupngurjguo3gurLgupTgupngurXgu4nguojgurbgu4jguofguprgu43gu4jguojgurPgu4DgupvgurHgupngupXgu4nguq3guofgu4Pguorgu4kg4LuA4Lqe4Lq34LuI4Lqt4Lqq4Lq74LuI4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqq4Lq54LuI4Lqt4Lq04LqZ4LuA4LqV4Lq14LuA4LqZ4Lqx4LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVBcG5TZXR0aW5ncyIgbXNnaWQ9IjUwNTY2MDE1OTY3NTc1MTg5NiI+IuC6m+C7iOC6veC6mS/guqrgurDguoHgurHgupTguoHgurHgu4ngupnguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLgu4DguoTgurfguq3guoLgu4jgurLguo0g4LuB4Lql4Lqw4LqC4LuN4LuJ4Lqh4Lq54LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVBcG5TZXR0aW5ncyIgbXNnaWQ9IjUzMzM3OTg4ODY0MTI3MTQxOTMiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gupvgu4jgur3gupnguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLgu4DguoTgurfguq3guoLgu4jgurLguo0g4LuB4Lql4Lqw4Lqq4Lqw4LqB4Lqx4LqU4LqB4Lqx4LuJ4LqZIOC7geC6peC6sOC6geC6p+C6lOC6quC6reC6muC6geC6suC6meC7gOC6lOC6teC6meC6l+C6suC6h+C6guC6reC6h+C6guC7jeC7ieC6oeC6ueC6meC6l+C6seC6h+C7neC6u+C6lCwg4LqN4Lq74LqB4LqV4Lq74Lqn4Lqi4LuI4Lqy4LqHOiDgu4PgupnguoHgurLgupngupvgu4jgur3gupngup7guq3gupTguoLguq3guocgUHJveHkg4LqC4Lqt4LqHIEFQTiDgu4PgupTguoHgu43gupXgurLguqEuIOC7geC6reC6seC6muC6r+C6l+C6teC7iOC7gOC6m+C6seC6meC6reC6seC6meC6leC6sOC6peC6suC6jeC6reC6suC6lOC6leC6tOC6lOC6leC6suC6oSwg4Lqb4LuI4Lq94LqZ4LuB4Lqb4LqHIOC7geC6peC6sOC7geC6geC7ieC7hOC6guC7geC6nuC6seC6geC7gOC6geC6seC6lOC6guC6reC6h+C6l+C7iOC6suC6meC7guC6lOC6jeC6l+C6teC7iOC6l+C7iOC6suC6meC6muC7jeC7iOC6ruC6ueC7ieC7guC6lS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZU5ldHdvcmtTdGF0ZSIgbXNnaWQ9Ijk1ODg4NDI5MTQ1NDMyNzMwOSI+IuC6m+C7iOC6veC6meC6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC7gOC6hOC6t+C6reC6guC7iOC6suC6jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZU5ldHdvcmtTdGF0ZSIgbXNnaWQ9IjY3ODkxMjM5MTI0NzY0MTYyMTQiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gupvgu4jgur3gupnguqrgurDgupbgurLgupngurDguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4jguoLguq3guofgu4DguoTgurfguq3guoLgu4jgurLguo3gu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VUZXRoZXJTdGF0ZSIgbXNnaWQ9IjU5NTI1ODQ5NjQzNzMwMTc5NjAiPiLgupvgu4jgur3gupnguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4jgupfgurXgu4jgupvgu4jguq3guo3guqrgurHgupnguo3gurLgupngu4Tguqfgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VUZXRoZXJTdGF0ZSIgbXNnaWQ9IjE1MjQ0NDEzNDQ0MTIzMTk3ODAiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gupvgu4jgur3gupngu4HgupvguofguqrgurDgupbgurLgupngurAg4LqC4Lqt4LqH4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqN4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4Lqt4Lq04LqZ4LuA4LqV4Lq14LuA4LqZ4Lqx4LqU4Lqc4LuI4Lqy4LqZ4Lqh4Lq34LqW4Lq3LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlQmFja2dyb3VuZERhdGFTZXR0aW5nIiBtc2dpZD0iMTQwMDY2NjAxMjY3MTY0ODc0MSI+IuC6m+C7iOC6veC6meC6geC6suC6meC6leC6seC7ieC6h+C6hOC7iOC6suC6geC6suC6meC6meC6s+C7g+C6iuC7ieC6guC7jeC7ieC6oeC6ueC6meC6nuC6t+C7ieC6meC6q+C6vOC6seC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUJhY2tncm91bmREYXRhU2V0dGluZyIgbXNnaWQ9IjUzNDc3Mjk1Nzg0Njg3NDQzNzkiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gupvgu4jgur3gupnguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLguoHgurLgupngu4Pguorgu4nguq3gurTgupngu4DgupXgurXgu4DgupngurHgupQg4LqC4Lqt4LqH4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4Lqi4Lq54LuI4LqU4LuJ4Lqy4LqZ4Lqr4Lq84Lqx4LqH4Lql4Lqw4Lqa4Lq74LqaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2lmaVN0YXRlIiBtc2dpZD0iNTIwMjAxMjk0OTI0NzA0MDAxMSI+IuC7gOC6muC6tOC7iOC6h+C6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iCBXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1dpZmlTdGF0ZSIgbXNnaWQ9IjUwMDI3OTgwNzczODc4MDM3MjYiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4DguprgurTgu4jguofguoLgu43gu4nguqHgurngupnguoHgu4jgur3guqfguoHgurHguprgu4DguoTgurfguq3guoLgu4jgurLguo0gV2ktRmkg4LuA4LqK4Lqx4LuI4LqZ4Lqn4LuI4LqyIFdpRmkg4LqB4Lqz4Lql4Lqx4LqH4LqW4Lq34LqB4LqZ4Lqz4LuD4LqK4LuJ4Lqi4Lq54LuI4Lqa4LuN4LuIIOC7geC6peC6sOC6iuC6t+C7iOC6guC6reC6h+C6reC6uOC6m+C6sOC6geC6reC6mSBXaUZpIOC6l+C6teC7iOC6geC6s+C6peC6seC6h+C7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6ouC6ueC7iC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVdpZmlTdGF0ZSIgbXNnaWQ9IjY1NTA2NDExODg3NDkxMjgwMzUiPiLgu4Dguorgurfgu4jguq3guqHgupXgu43gu4gg4LuB4Lql4Lqw4LqV4Lqx4LqU4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LqI4Lqy4LqBIFdpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaVN0YXRlIiBtc2dpZD0iNzEzNzk1MDI5NzM4NjEyNzUzMyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iCDgu4HguqXgurDgupXgurHgupTguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4jguojgurLguoHguojgurjgupTgu4Dguorgurfgu4jguq3guqHgupXgu43gu4ggV2ktRmkg4LuB4Lql4Lqw4LuD4Lqr4LuJ4Lqq4Lqy4Lqh4Lqy4LqU4Lqb4LuI4Lq94LqZ4LuB4Lqb4LqH4LqE4LuI4Lqy4LqC4Lqt4LqH4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4Lqq4Lqz4Lql4Lqx4Lqa4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqNIFdpLUZpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBtc2dpZD0iMTM2ODI1Mzg3MTQ4MzI1NDc4NCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC6geC6suC6meC6ruC6seC6miBXaS1GaSBNdWx0aWNhc3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijc5Njk3NzQwMjEyNTYzMzY1NDgiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guq7gurHguprguoLgu43gu4nguqHgurngupngu4Hgup7gurHguoHgu4DguoHgurHgupQg4LqX4Lq14LuI4LqW4Lq34LqB4Lqq4Lq74LuI4LqHIOC7hOC6m+C6q+C6suC6l+C6uOC6geC6reC6uOC6m+C6sOC6geC6reC6meC7g+C6meC7gOC6hOC6t+C6reC6guC7iOC6suC6jSBXaUZpIOC7guC6lOC6jeC6geC6suC6meC6meC6s+C7g+C6iuC7ieC6geC6suC6meC6geC6sOC6iOC6suC6jeC6guC7jeC7ieC6oeC6ueC6meC7g+C6meC6p+C6u+C6h+C6geC6p+C7ieC6suC6hywg4Lqa4LuN4LuI4LuB4Lqh4LuI4LqZ4Lqq4Lqw4LuA4Lqe4Lqy4Lqw4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZLiDguqHgurHgupngu4Pguorgu4ngup7gurDguqXgurHguofguofgurLgupnguqvgurzgurLguo3guoHguqfgu4jgurLgu4LguqvguqHgupTguoHgurDguojgurLguo3guoLgu43gu4nguqHgurngupngu4Hguprguprgu4LgupTguo3guoHgurvguocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjg1MTk0OTcwNjAyNTM0OTkyNiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguq7gurHguprguoLgu43gu4nguqHgurngupngu4Hgup7gurHguoHgu4DguoHgupTgupfgurXgu4jguqrgurvgu4jguofgu4Tgupvgu4Pguqvgu4ngupfgurjguoHguq3gurjgupvgurDguoHguq3gupngu4Pgupngu4DguoTgurfguq3guoLgu4jgurLguo0gV2ktRmkg4LuC4LqU4LqN4LuD4LqK4LuJ4LqX4Lq14LuI4Lqi4Lq54LuIIG11bHRpY2FzdCDguprgu43gu4jguqrgurDgu4Dgup7gurLgurDgup7gur3guofgu4LgupfguqXgurDguqrgurHguprguoLguq3guofgupfgu4jgurLgupksIOC7gOC6iuC6tOC7iOC6h+C6iOC6sOC7g+C6iuC7ieC6nuC6sOC6peC6seC6h+C6h+C6suC6meC6q+C6vOC6suC6jeC6geC6p+C7iOC6suC7g+C6meC7guC7neC6lOC6l+C6teC7iOC6muC7jeC7iOC7geC6oeC7iOC6mSBtdWx0aWNhc3QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGhBZG1pbiIgbXNnaWQ9IjYwMDY5NjczNzM5MzU5MjY2NTkiPiLgu4DguoLgurvgu4ngurLgu4DgupbgurTguofguoHgurLgupngupXgurHgu4nguofguoTgu4jgurIgQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY5MjExNzc0NzE3NDg4ODIxMzciPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gupXgurHgu4nguofguoTgu4jgurLgu4HgupfgurHguprgu4DguqXgurHgupQgQmx1ZXRvb3RoIOC6nuC6suC6jeC7g+C6mSDgu4HguqXgurDguorguq3guoHguqvgurIg4LuB4Lql4Lqw4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LuE4Lqn4LuJ4LqB4Lqx4Lqa4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4Lqe4Lqy4LqN4LqZ4Lqt4LqBLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aEFkbWluIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODkzMTY4MjE1OTMzMTU0MjEzNyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6leC6seC7ieC6h+C6hOC7iOC6siBCbHVldG9vdGgg4LuD4LqZ4LuC4LqX4Lql4Lqw4Lqq4Lqx4LqaIOC7gOC6nuC6t+C7iOC6reC6iuC6reC6geC6q+C6siDgu4HguqXgurDguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4jguoHgurHguprguq3gurjgupvgurDguoHguq3gupngu4Tguq7gu4nguqrgurLguo3gup7gurLguo3gupnguq3guoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NXaW1heFN0YXRlIiBtc2dpZD0iNDE5NTkwNzAxMDYxMDIwNTcwMyI+IuC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iCDgu4HguqXgurDgupXgurHgupTguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4jguojgurLguoEgV2lNQVgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaW1heFN0YXRlIiBtc2dpZD0iNjM2MDEwMjg3NzI2MTk3ODg4NyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6geC6p+C6lOC7gOC6muC6tOC7iOC6h+C6p+C7iOC6siBXaU1BWCDgupbgurfguoHgu4DgupvgurXgupTgupngurPgu4Pguorgu4nguqLgurngu4jguprgu43gu4gg4LuB4Lql4Lqw4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqB4LuI4Lq94Lqn4LqB4Lqx4Lqa4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqNIFdpTUFYIOC6reC6t+C7iOC6meC7huC6l+C6teC7iOC6geC6s+C6peC6seC6h+C7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6ouC6ueC7iC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVdpbWF4U3RhdGUiIG1zZ2lkPSIyNDA1MDQyMjY3MTMxNDk2NTc5Ij4i4Lqb4LuI4Lq94LqZ4Lqq4Lqw4LqW4Lqy4LqZ4LqwIFdpTUFYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2ltYXhTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzE1NjQ1NjUwNDA4NDIwMTgwNSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iCDgu4HguqXgurDgupXgurHgupTguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4jgu4HgupfgurHguprgu4DguqXgurHgupTguojgurLguoHgu4DguoTgurfguq3guoLgu4jgurLguo0gV2lNQVguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2ltYXhTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY5NzAyNTA0MzAwNDkyMzc5OCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iCDgu4HguqXgurDgupXgurHgupTguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4jguoLguq3guofgu4LgupfguqXgurDguqrgurHguprguojgurLguoHgu4DguoTgurfguq3guoLgu4jgurLguo0gV2lNYXgg4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmx1ZXRvb3RoIiBtc2dpZD0iNjEyNzc2OTMzNjMzOTI3NjgyOCI+IuC6iOC6seC6muC6hOC6ueC7iOC6geC6seC6muC6reC6uOC6m+C6sOC6geC6reC6mSBCbHVldG9vdGgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGgiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM0ODA3MjIxODE4NTI0Mzg2MjgiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4DguprgurTgu4jguofguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLguoLguq3guocgQmx1ZXRvb3RoIOC7g+C6meC7geC6l+C6seC6muC7gOC6peC6seC6lCDgupXgurDguqvgurzguq3gupTguojgurvgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4gg4LuB4Lql4Lqw4LqN4Lqt4Lqh4Lqu4Lqx4Lqa4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LqB4Lqx4Lqa4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4LqX4Lq14LuI4LqI4Lqx4Lqa4LqE4Lq54LuI4LqB4Lqx4LqZ4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMyMDcxMDYzMjQ0NTIzMTI3MzkiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4DguprgurTgu4jguofguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLguoLguq3guocgQmx1ZXRvb3RoIOC7g+C6meC7guC6l+C6peC6sOC6quC6seC6miwg4Lqu4Lqn4Lqh4LqX4Lqx4LqH4LuD4Lqr4LuJ4Lqq4LuJ4Lqy4LqHIOC7geC6peC6sOC6ruC6seC6muC6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6iOC6suC6geC6reC6uOC6m+C6sOC6geC6reC6meC6l+C6teC7iOC6iOC6seC6muC6hOC6ueC7iOC6geC6seC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX25mYyIgbXNnaWQ9IjQ0MjMzNTEyNzQ3NTc4NzY5NTMiPiLguoTguqfguprguoTgurjguqEgTmVhciBGaWVsZCBDb21tdW5pY2F0aW9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbmZjIiBtc2dpZD0iNzEyMDYxMTgxOTQwMTc4OTkwNyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6leC6tOC6lOC6leC7jeC7iOC6quC6t+C7iOC6quC6suC6meC6geC6seC6muC6m+C7ieC6suC6jeC6geC6s+C6geC6seC6miwg4Lqa4Lqx4LqUIOC7geC6peC6sOC7guC6leC6reC7iOC6suC6meC6guC6reC6h+C6geC6suC6meC6quC6t+C7iOC6quC6suC6meC7hOC6peC6jeC6sOC6quC6seC7ieC6mSAoTkZDKS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Rpc2FibGVLZXlndWFyZCIgbXNnaWQ9IjM1OTg0OTYzMDE0ODY0MzkyNTgiPiLgupvgurTgupTguoHgurLgupnguqXgurHguq3guoHgu5zgu4ngurLguojgu40iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kaXNhYmxlS2V5Z3VhcmQiIG1zZ2lkPSI2MDM0MjAzMDY1MDc3MTIyOTkyIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqb4Lq04LqU4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqC4Lqt4LqH4Lqb4Lq44LuI4Lqh4Lql4Lqx4Lqt4LqBIOC7geC6peC6sOC6peC6sOC6muC6u+C6muC6hOC6p+C6suC6oeC6m+C6reC6lOC7hOC6nuC6guC6reC6h+C6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6meC6l+C6teC7iOC7gOC6iuC6t+C7iOC6reC6oeC7guC6jeC6h+C6geC6seC6mS4g4LuC4LqV4Lqi4LuI4Lqy4LqHOiDgu4LgupfguqXgurDguqrgurHguprguojgurDgupvgurTgupTguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoHguoLguq3guofgupvgurjgu4jguqHguqXgurHguq3guoHgu4DguqHgurfgu4jguq3guqHgurXguqrgurLguo3gu4Lgupfgu4DguoLgurvgu4ngurIg4LqI4Lqy4LqB4LqZ4Lqx4LuJ4LqZ4LqI4Lq24LuI4LqH4LuA4Lqb4Lq14LqU4LuD4LqK4LuJ4LuE4LqU4LuJ4Lqt4Lq14LqB4LuA4Lqh4Lq34LuI4Lqt4Lqn4Lqy4LqH4Lqq4Lqy4LqN4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFN5bmNTZXR0aW5ncyIgbXNnaWQ9IjYyMDE4MTAwMDgyMzA1MDMwNTIiPiLguq3gu4jgurLgupnguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLguorgurTgu4nguofguoLgu43gu4nguqHgurngupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1NldHRpbmdzIiBtc2dpZD0iMjcwNjc0NTY3NDU2OTY3ODY0NCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguq3gu4jgurLgupnguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLguoHgurLgupnguorgurTgu4nguofguoLgu43gu4nguqHgurngupnguoLguq3guofguprgurHgupnguorgurXgu4TgupTgu4kuIOC6leC6u+C6p+C6ouC7iOC6suC6h+C7gOC6iuC6seC7iOC6mTog4Lqh4Lqx4LqZ4LqI4Lqw4Lqq4Lqy4Lqh4Lqy4LqU4LqB4Lqn4LqU4Lqq4Lqt4Lqa4LuE4LqU4LuJ4LuB4Lqt4Lqx4Lqa4LqvIFBlb3BsZSDgupbgurfguoHguorgurTgu4nguofguoLgu43gu4nguqHgurngupnguoHgurHguprguprgurHgupnguorgurXgu4PgupTgupngurbgu4jguofgu4HguqXgu4nguqfguqvgurzgurfguo3gurHguocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9IjU0MDg2OTQ4NzU3OTM5NDUzMTQiPiLguqrgurDguqXgurHguprguoHgurLgupngu4DgupvgurXgupQg4LuB4Lql4Lqw4Lqb4Lq04LqU4LqB4Lqy4LqZ4LqK4Lq04LuJ4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTeW5jU2V0dGluZ3MiIG1zZ2lkPSI4OTU2MjYyNTkxMzA2MzY5ODY4Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LuB4LqB4LuJ4LuE4LqC4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4LqB4Lqy4LqZ4LqK4Lq04LuJ4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqq4Lqz4Lql4Lqx4Lqa4Lqa4Lqx4LqZ4LqK4Lq1LiDguo3gurvguoHgupXgurvguqfguqLgu4jgurLguoc6IOC6oeC6seC6meC6quC6suC6oeC6suC6lOC7g+C6iuC7ieC7gOC6nuC6t+C7iOC6reC7gOC6m+C6teC6lOC6meC6s+C7g+C6iuC7ieC6geC6suC6meC6iuC6tOC7ieC6h+C6guC7jeC7ieC6oeC6ueC6meC6guC6reC6hyBQZW9wbGUg4LuB4Lqt4Lqx4Lqa4Lqv4LqB4Lqx4Lqa4Lqa4Lqx4LqZ4LqK4Lq14LuD4LqU4LqZ4Lq24LuI4LqH4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFN5bmNTdGF0cyIgbXNnaWQ9IjczOTY1Nzc0NTEzNjAyMDI0NDgiPiLguq3gu4jgurLgupnguqrgurDgupbgurTgupXgurTguoHgurLgupnguorgurTgu4nguofguoLgu43gu4nguqHgurngupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1N0YXRzIiBtc2dpZD0iMTUxMDE0Mzc2MTc1NzYwNjE1NiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguq3gu4jgurLgupnguqrgurDgupbgurTgupXgurTguoHgurLgupnguorgurTgu4nguofguoLgu43gu4nguqHgurngupnguoLguq3guofguprgurHgupnguorgurXgu4PgupTgupngurbgu4jguocg4Lqu4Lqn4Lqh4LqX4Lqx4LqH4Lqb4Lqw4Lqr4Lqn4Lqx4LqU4LqB4Lqy4LqZ4LqK4Lq04LuJ4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZIOC7geC6peC6sOC6iOC6s+C6meC6p+C6meC6guC7jeC7ieC6oeC6ueC6meC6l+C6teC7iOC6luC6t+C6geC6iuC6tOC7ieC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N1YnNjcmliZWRGZWVkc1JlYWQiIG1zZ2lkPSI0NzU2NjA5NjM3MDUzMzUzMzE4Ij4i4Lqt4LuI4Lqy4LqZ4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqf4Lq14LqU4LqX4Lq14LuI4Lqq4Lqw4Lud4Lqx4LqB4LuE4Lqn4LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3Vic2NyaWJlZEZlZWRzUmVhZCIgbXNnaWQ9IjU1NTcwNTg5MDc5MDYxNDQ1MDUiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4LqU4Lq24LqH4Lql4Lqy4LqN4Lql4Lqw4Lqt4Lq94LqU4LqB4LuI4Lq94Lqn4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lq14LuI4LqB4Lqz4Lql4Lqx4LqH4LqK4Lq04LuJ4LqH4Lqi4Lq54LuILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3Vic2NyaWJlZEZlZWRzV3JpdGUiIG1zZ2lkPSI5MDE1MjQ2MzI1NDA4MjA5Mjk2Ij4i4LqC4Lq94LqZ4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqf4Lq14LqU4LqX4Lq14LuI4Lqq4Lqw4Lud4Lqx4LqB4LuE4Lqn4LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3Vic2NyaWJlZEZlZWRzV3JpdGUiIG1zZ2lkPSI2OTI4OTMwMTg4ODI2MDg5NDEzIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC7geC6geC7ieC7hOC6guC6n+C6teC6lOC6l+C6teC7iOC6luC6t+C6geC6iuC6tOC7ieC6h+C6guC7jeC7ieC6oeC6ueC6meC7gOC6oeC6t+C7iOC6reC7hOC6p+C7huC6meC6teC7ieC6guC6reC6h+C6l+C7iOC6suC6mS4g4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqNIOC6reC6suC6lOC6m+C7iOC6veC6meC7geC6m+C6h+C6n+C6teC6lOC6guC6reC6h+C6l+C7iOC6suC6meC6l+C6teC7iOC6iuC6tOC7ieC6h+C6oeC6si4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWREaWN0aW9uYXJ5IiBtc2dpZD0iNDEwNzEwMTUyNTc0NjAzNTcxOCI+IuC6reC7iOC6suC6meC6hOC6s+C6quC6seC6muC6l+C6teC7iOC6l+C7iOC6suC6meC7gOC6nuC6teC7iOC6oeC7g+C6quC7iOC6p+C6seC6lOC6iOC6sOC6meC6suC6meC6uOC6geC6u+C6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWREaWN0aW9uYXJ5IiBtc2dpZD0iNjU5NjE0NjAwMzM4OTA0MjQzIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuB4Lqt4Lqx4Lqa4Lqv4Lqt4LuI4Lqy4LqZ4LqE4Lqz4Lqq4Lqx4LqaLCDguorgurfgu4gg4LuB4Lql4Lqw4Lqb4Lqw4LuC4Lqr4LqN4LqB4LqX4Lqx4LqH4Lud4Lq74LqU4LqX4Lq14LuI4Lqc4Lq54LuI4LuD4LqK4LuJ4Lqt4Lqy4LqU4Lqa4Lqx4LqZ4LqX4Lq24LqB4LuE4Lqn4LuJ4LuD4LqZ4Lqn4Lqx4LqU4LqI4Lqw4LqZ4Lqy4LqZ4Lq44LqB4Lq74Lqh4Lqc4Lq54LuI4LuD4LqK4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iMjE4MzExMDQwMjMxNDQ0MTEwNiI+IuC7gOC6nuC6teC7iOC6oeC6hOC6s+C6quC6seC6muC7g+C6quC7iOC6p+C6seC6lOC6iOC6sOC6meC6suC6meC6uOC6geC6u+C6oeC6l+C6teC7iOC6nOC6ueC7iOC7g+C6iuC7ieC6geC6s+C6meC6u+C6lOC7gOC6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjgxODUzODU3MTYyNTUwNjUyOTEiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guoLgur3gupnguoTgurPguqrgurHguprgu4Pgu53gu4gg4LuD4Lqq4LuI4Lqn4Lqx4LqU4LqI4Lqw4LqZ4Lqy4LqZ4Lq44LqB4Lq74Lqh4Lqc4Lq54LuI4LuD4LqK4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI4MjM1MzQxNTE1NjA1NTU5Njc3Ij4i4LqX4Lq74LqU4Lqq4Lqt4Lqa4LqB4Lqy4LqZ4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqH4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lq14LuI4LqW4Lq34LqB4Lqb4LuJ4Lqt4LqH4LqB4Lqx4LqZ4LuE4Lqn4LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODIzNTM0MTUxNTYwNTU1OTY3NyI+IuC6l+C6u+C6lOC6quC6reC6muC6geC6suC6meC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC6l+C6teC7iOC6luC6t+C6geC6m+C7ieC6reC6h+C6geC6seC6meC7hOC6p+C7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzY0MjQ3MzI5MjM0ODEzMjA3MiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6l+C6u+C6lOC6quC6reC6muC6geC6suC6meC6reC6sOC6meC6uOC6jeC6suC6lOC6guC6reC6hyDguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupkgVVNCIOC7gOC6iuC6tOC7iOC6h+C6iOC6sOC6luC6t+C6geC7g+C6iuC7ieC7g+C6meC6reC6uOC6m+C6sOC6geC6reC6meC7g+C6meC6reC6sOC6meC6suC6hOC6u+C6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTkxNDQwMjY4NDY4NTg0ODgyOCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDgupfgurvgupTguqXguq3guofguqrgurTgupTgu4PgupTgupngurbgu4jguofguqrgurPguqXgurHgupogU0QgY2FyZCDgupfgurXgu4jguojgurDguqHgurXgu4Pgupnguq3gurjgupvgurDguoHguq3gupngu4Pgupnguq3gurDgupngurLguoTgurvgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRXcml0ZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI4NDg1OTc5MDYyMjU0NjY2NzQ4Ij4i4LuB4LqB4LuJ4LuE4LqCIOC6q+C6vOC6t+C6peC6tuC6muC7gOC6meC6t+C7ieC6reC6q+C6suC7g+C6meC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0Ig4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg4MDU2OTM2MzAwNTA0NTg3NjMiPiLgu4HguoHgu4ngu4TguoIg4Lqr4Lq84Lq34Lql4Lq24Lqa4LuA4LqZ4Lq34LuJ4Lqt4Lqr4Lqy4LqC4Lqt4LqHIFNEIGNhcmQg4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE3NTQwNjI5OTQ0NTcxMDg4OCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C6guC6veC6meC6guC7jeC7ieC6oeC6ueC6meC7g+C6quC7iOC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MzM3NDE3NzkwOTM2NjMyMDkwIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LqC4Lq94LqZ4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lql4Lq74LqH4LuD4LqZIFNEIGNhcmQg4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWVkaWFTdG9yYWdlV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODU5ODM5MTk5NzA2ODc5MDE1Ij4i4LuB4LqB4LuJ4LuE4LqCL+C6peC6tuC6miDgu4Dgupngurfgu4nguq3guqvgurLguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguqrgurfgu4jgup7gurLguo3gu4PgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgxODkxNjA1OTc2OTg1MjkxODUiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4HguoHgu4ngu4TguoLgu4Dgupngurfgu4nguq3guqvgurLguoLguq3guofgu4LgupXgu4DguoHgurHguprguoLgu43gu4nguqHgurngupngu4Pgupngu4LgupXgu4DguoTgurfgu4jguq3guocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VEb2NzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTc3ODMxODU5ODQ0ODg0OTgyOSI+IuC6iOC6seC6lOC6geC6suC6meC6nuC6t+C7ieC6meC6l+C6teC7iOC6iOC6seC6lOC7gOC6geC6seC6muC7gOC6reC6geC6sOC6quC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZURvY3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NzA0MzIzMTc2OTE0MTIxNDg0Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LqI4Lqx4LqU4LqB4Lqy4LqZ4LqB4Lqx4Lqa4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4LuA4Lqt4LqB4Lqw4Lqq4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkQWNjZXNzQWxsIiBtc2dpZD0iODE1MDYxMzgyMzkwMDQ2MDU3NiI+IuC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C6nuC6t+C7ieC6meC6l+C6teC7iOC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC6nuC6suC6jeC6meC6reC6geC6guC6reC6h+C6l+C6uOC6geC6nOC6ueC7iOC7g+C6iuC7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZEFjY2Vzc0FsbCIgbXNnaWQ9IjMyMTUyMDgzNTc0MTU4OTEzMjAiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqH4Lqe4Lq34LuJ4LqZ4LqX4Lq14LuI4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqe4Lqy4LqN4LqZ4Lqt4LqBIOC6quC6s+C6peC6seC6muC6l+C6uOC6geC6nOC6ueC7iOC7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhY2hlX2ZpbGVzeXN0ZW0iIG1zZ2lkPSI1NjU2NDg3MjY0ODE5NjY5ODI0Ij4i4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqH4LuE4Lqf4Lql4LuMIGNhY2hlIOC6guC6reC6h+C6peC6sOC6muC6u+C6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhY2hlX2ZpbGVzeXN0ZW0iIG1zZ2lkPSI1NTc4OTY3NjQyMjY1NTUwOTU1Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6reC7iOC6suC6mSDgu4HguqXgurDguoLgur3gupkg4Lql4Lqw4Lqa4Lq74Lqa4LuE4Lqf4Lql4LuM4LuB4LqE4LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXNlX3NpcCIgbXNnaWQ9IjU5ODY5NTIzNjI3OTU4NzA1MDIiPiLguqrgurvgu4jguocv4Lqu4Lqx4LqaIOC6geC6suC6meC7guC6l+C6nOC7iOC6suC6meC6reC6tOC6meC7gOC6leC6teC7gOC6meC6seC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZV9zaXAiIG1zZ2lkPSI0NzE3NjMyMDAwMDYyNjc0Mjk0Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC7g+C6iuC7ieC6muC7jeC6peC6tOC6geC6suC6mSBTSVAg4LuA4Lqe4Lq34LuI4LqtIOC7guC6l+C6reC6reC6gS/guq7gurHguprguqrgurLguo0g4LqB4Lqy4LqZ4LuC4LqX4Lqc4LuI4Lqy4LqZ4Lqt4Lq04LqZ4LuA4LqV4Lq14LuA4LqZ4Lqx4LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZE5ldHdvcmtVc2FnZUhpc3RvcnkiIG1zZ2lkPSI3ODYyNTkzMjgzNjExNDkzMjMyIj4i4Lqt4LuI4Lqy4LqZ4Lqb4Lqw4Lqr4Lqn4Lqx4LqU4LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZE5ldHdvcmtVc2FnZUhpc3RvcnkiIG1zZ2lkPSI3Njg5MDYwNzQ5ODE5MTI2NDcyIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC6reC7iOC6suC6meC6m+C6sOC6q+C6p+C6seC6lOC6geC6suC6meC6meC6s+C7g+C6iuC7ieC7gOC6hOC6t+C6reC6guC7iOC6suC6jeC6guC6reC6h+C7geC6reC6seC6muC6ryDgu4HguqXgurDgu4DguoTgurfguq3guoLgu4jgurLguo3gu4PgupTgupngurbgu4jguocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VOZXR3b3JrUG9saWN5IiBtc2dpZD0iMjU2MjA1MzU5MjMzOTg1OTk5MCI+IuC6iOC6seC6lOC6geC6suC6meC6meC6sOC7guC6jeC6muC6suC6jeC7gOC6hOC6t+C6reC6guC7iOC6suC6jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZU5ldHdvcmtQb2xpY3kiIG1zZ2lkPSI3NTM3NTg2NzcxNTU5MzcwNjY4Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LqI4Lqx4LqU4LqB4Lqy4LqZ4LqB4Lqx4Lqa4LqZ4Lqw4LuC4LqN4Lqa4Lqy4LqN4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqNIOC7geC6peC6sOC6geC6s+C6meC6u+C6lOC6geC6u+C6lOC6peC6sOC6muC6veC6muC6quC6sOC7gOC6nuC6suC6sOC6guC6reC6h+C7geC6reC6seC6muC6ry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeU5ldHdvcmtBY2NvdW50aW5nIiBtc2dpZD0iNTA4ODIxNzMwOTA4ODcyOTY1MCI+IuC7geC6geC7ieC7hOC6guC6geC6suC6meC6hOC6s+C6meC6p+C6meC6geC6suC6meC6meC6s+C7g+C6iuC7ieC7gOC6hOC6t+C6reC6guC7iOC6suC6jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeU5ldHdvcmtBY2NvdW50aW5nIiBtc2dpZD0iNTQ0MzQxMjg2Njc0NjE5ODEyMyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C7geC6geC7ieC7hOC6guC6p+C6tOC6l+C6teC6geC6suC6meC6muC6seC6meC6l+C6tuC6geC6muC6seC6meC6iuC6tSDguoHgurLgupngupngurPgu4Pguorgu4ngu4DguoTgurfguq3guoLgu4jgurLguo3guoLguq3guofgu4Hguq3gurHguprguq8uIOC7geC6reC6seC6muC6r+C6l+C6u+C7iOC6p+C7hOC6m+C6muC7jeC7iOC6iOC6s+C7gOC6m+C6seC6meC6leC7ieC6reC6h+C7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hcmtOZXR3b3JrU29ja2V0IiBtc2dpZD0iMzY1ODUyNzIxNDkxNDk1OTc0OSI+IuC6lOC6seC6lOKAi+C7geC6m+C6h+C6iuC6seC6reC6geC7gOC6geC6seC6lOC6oeC6suC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hcmtOZXR3b3JrU29ja2V0IiBtc2dpZD0iNzY1NTU2ODQzMzY5NjM1NjU3OCI+IuC6reC6sOKAi+C6meC6uOKAi+C6jeC6suC6lOKAi+C7g+C6q+C7ieC7geC6reC6seC6muC6r+C7geC6geC7ieC7hOC6guC6iuC6seC6reC6geC7gOC6geC6seC6lOC6l+C6teC7iOC7neC6suC6jeC7hOC6p+C7ieC6quC6s+C6peC6seC6muC6geC6s+C6meC6u+C6lOC7gOC6quC6seC7ieC6meC6l+C6suC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTm90aWZpY2F0aW9ucyIgbXNnaWQ9Ijc2NzM0MTY0ODc4NzM0MzIyNjgiPiLgu4DguoLgurvgu4ngurLgu4DgupbgurTguofguoHgurLgupngu4Hguojgu4nguofgu4DgupXgurfguq3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNDU4NDU3NzQyNjgzNDMxMzg3Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LqU4Lq24LqH4LqC4LuN4LuJ4Lqh4Lq54LqZLCDguoHguqfgupTguqrguq3gupog4LuB4Lql4Lqw4Lql4Lq24Lqa4Lql4LuJ4Lqy4LqH4LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZIOC6ruC6p+C6oeC6l+C6seC6h+C6nuC6p+C6geC6l+C6teC7iOC7guC6nuC6quC7guC6lOC6jeC7geC6reC6seC6muC6r+C6reC6t+C7iOC6meC7huC6meC6sy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROb3RpZmljYXRpb25MaXN0ZW5lclNlcnZpY2UiIG1zZ2lkPSI3MDU3NzY0NzQyMjExNjU2NjU0Ij4i4LuA4LqK4Lq34LuI4Lqt4Lqh4LuC4LqN4LqH4LqB4Lqx4Lqa4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZ4LuC4LqV4Lqf4Lqx4LqH4LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5vdGlmaWNhdGlvbkxpc3RlbmVyU2VydmljZSIgbXNnaWQ9Ijk4NTY5NzkxODU3NjkwMjk4NiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7gOC6iOC6u+C7ieC6suC6guC6reC6h+C7gOC6iuC6t+C7iOC6reC6oeC7guC6jeC6h+C6quC7iOC6p+C6meC6leC6tOC6lOC6leC7jeC7iOC6peC6sOC6lOC6seC6muC7gOC6l+C6tOC6h+C6quC6uOC6lCDguoLguq3guofgupzgurngu4jgup/gurHguofguprgu43guqXgurTguoHgurLgupnguoHgurLgupngu4Hguojgu4nguofgu4DgupXgurfguq3gupkuIOC6muC7jeC7iOC6iOC6s+C7gOC6m+C6seC6meC6quC6s+C6peC6seC6muC7geC6reC6seC6muC6r+C6l+C6u+C7iOC6p+C7hOC6my4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludm9rZUNhcnJpZXJTZXR1cCIgbXNnaWQ9IjM2OTk2MDA4MzM5NzUxMTc0NzgiPiLguq7gu4nguq3guofguoLgu43gu4Hguq3gurHguprguq/gupvgurHguprguoTgu4jgurLgupfgurXgu4jguqrgurDgu5zguq3guofgu4LgupTguo3gupzgurngu4jgu4Pguqvgu4nguprgu43guqXgurTguoHgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnZva2VDYXJyaWVyU2V0dXAiIG1zZ2lkPSI0MTU5NTQ5MTUyNTI5MTExOTIwIj4i4Lqt4Lqw4oCL4LqZ4Lq44oCL4LqN4Lqy4LqU4oCL4LuD4Lqr4LuJ4oCL4LuA4LqI4Lq74LuJ4Lqy4LqC4Lqt4LqH4Lqu4LuJ4Lqt4LqH4LqC4LuN4LuB4Lqt4Lqx4Lqa4Lqv4Lqb4Lqx4Lqa4LqE4LuI4Lqy4LqX4Lq14LuI4Lqq4Lqw4Luc4Lqt4LqH4LuC4LqU4LqN4Lqc4Lq54LuI4LuD4Lqr4LuJ4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZLiDguprgu43gu4jgu5zgu4ngurLguojgurDgupXgu4nguq3guofguoHgurLgupnguqrgurPguqXgurHguprgu4Hguq3gurHguprguq/gupfgurvgu4jguqfgu4TgupsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOZXR3b3JrQ29uZGl0aW9ucyIgbXNnaWQ9IjgyMDYwNzc0NDc4Mzg5MDk1MTYiPiLgupXgurTgupTgupXgurLguqHgu4Dgup7gurfgu4jguq3guqrgurHguofgu4DguoHgupTguqrgurDgup7gurLguprguoLguq3guofgu4DguoTgurfguq3guoLgu4jgurLguo0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOZXR3b3JrQ29uZGl0aW9ucyIgbXNnaWQ9IjY4OTkxMDIwNzU4MjUyNzIyMTEiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgu4jgupngupXgurTgupTgupXgurLguqHgu4Dgup7gurfgu4jguq3guqrgurHguofgu4DguoHgupTguqrgurDgup7gurLguprguoLguq3guofgu4DguoTgurfguq3guoLgu4jgurLguo0uIOC6m+C6u+C6geC6geC6sOC6leC6tOC7geC6peC7ieC6p+C7geC6reC6seC6muC6r+C6l+C6s+C6oeC6sOC6lOC6suC6iOC6sOC6muC7jeC7iOC6leC7ieC6reC6h+C6geC6suC6meC7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfbGltaXRQYXNzd29yZCIgbXNnaWQ9IjQ0OTc0MjA3Mjg4NTc1ODU3OTEiPiLgupXgurHgu4nguofguoTgu4jgurLguoHgurvgupTguoLguq3guofguqXgurDguqvgurHgupTgupzgu4jgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2xpbWl0UGFzc3dvcmQiIG1zZ2lkPSIzMjUyMTE0MjAzOTE5NTEwMzk0Ij4i4LqE4Lqn4Lqa4LqE4Lq44Lqh4LqE4Lqn4Lqy4Lqh4LqN4Lqy4Lqn4LqC4Lqt4LqH4LuC4LqV4Lqt4Lqx4LqB4Lqq4Lqt4LqZ4LqX4Lq14LuI4Lqq4Lqy4Lqh4Lqy4LqU4LuD4LqK4LuJ4LqB4Lqx4Lqa4Lql4Lqw4Lqr4Lqx4LqU4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4Luc4LuJ4Lqy4LqI4LuNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dhdGNoTG9naW4iIG1zZ2lkPSI5MTQxMzA2NDY5NDIxOTk1MDMiPiLgupXgurTgupTgupXgurLguqHguoHgurLgupngup7gurDguo3gurLguo3gurLguqHgupvgurvgupTguqXgurHguq3guoHgu5zgu4ngurLguojgu40iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dhdGNoTG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMyMTU3MjkyOTQyMTUwNzAwNzIiPiLgupXgurTgupTgupXgurLguqHgu4DguprgurTgu4jguofguojgurPgupnguqfgupnguoHgurLgupngup7gurTguqHguqXgurDguqvgurHgupTgupzgu4jgurLgupngupfgurXgu4jguprgu43gu4jgupbgurfguoHgupXgu4nguq3guocg4LuD4LqZ4LuA4Lqn4Lql4Lqy4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4Luc4LuJ4Lqy4LqI4LuNIOC7geC6peC6sOC6peC6seC6reC6geC7geC6l+C6seC6muC7gOC6peC6seC6lCDguqvgurzgurfguqXgurbguprguoLgu43gu4nguqHgurngupngupfgurHguofgu53gurvgupTguoLguq3guofgu4HgupfgurHguprgu4DguqXgurHgupQg4LqW4LuJ4Lqy4Lqh4Lq14LqB4Lqy4LqZ4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZ4Lqa4LuN4LuI4LqW4Lq34LqB4LqV4LuJ4Lqt4LqH4Lqr4Lq84Lqy4LqN4LuA4LqX4Lq34LuI4Lqt4LuA4LqB4Lq14LqZ4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2F0Y2hMb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MTIzMjMwOTE4NDY3NjEwNzMiPiLgupXgurTgupTgupXgurLguqHgu4DguprgurTgu4jguofguojgurPgupnguqfgupnguoHgurLgupngup7gurTguqHguqXgurDguqvgurHgupTgupzgu4jgurLgupnguprgu43gu4jgupbgurfguoHgupXgu4nguq3guocg4LuD4LqZ4LuA4Lqn4Lql4Lqy4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4Luc4LuJ4Lqy4LqI4LuNIOC7geC6peC6sOC6peC6seC6reC6geC7guC6l+C6peC6sOC6quC6seC6miDguqvgurzgurfguqXgurbguprguoLgu43gu4nguqHgurngupngupfgurHguofgu53gurvgupTguoLguq3guofgu4LgupvguqXgurDguqrgurHgupog4LqW4LuJ4Lqy4Lqh4Lq14LqB4Lqy4LqZ4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZ4Lqa4LuN4LuI4LqW4Lq34LqB4LqV4LuJ4Lqt4LqH4Lqr4Lq84Lqy4LqN4LuA4LqX4Lq34LuI4Lqt4LuA4LqB4Lq14LqZ4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9yZXNldFBhc3N3b3JkIiBtc2dpZD0iMjYyMDA3NzE5MTI0MjY4ODk1NSI+IuC6m+C7iOC6veC6meC6peC6sOC6q+C6seC6lOC6peC6seC6reC6geC7nOC7ieC6suC6iOC7jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfcmVzZXRQYXNzd29yZCIgbXNnaWQ9IjYwNTk2Mzk2MjMwMTkwNDQ1OCI+IuC6m+C7iOC6veC6meC6peC6sOC6q+C6seC6lOC6m+C6u+C6lOC6peC6seC6reC6geC7nOC7ieC6suC6iOC7jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9mb3JjZUxvY2siIG1zZ2lkPSIyMjc0MDg1Mzg0NzA0MjQ4NDMxIj4i4Lql4Lqx4Lqt4LqB4Luc4LuJ4Lqy4LqI4LuNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19mb3JjZUxvY2siIG1zZ2lkPSIxMTQxNzk3NTg4NDAzODI3MTM4Ij4i4LqE4Lqn4Lqa4LqE4Lq44Lqh4Lqn4LuI4Lqy4Luc4LuJ4Lqy4LqI4LuN4LqE4Lqn4LqZ4LqI4Lqw4LqW4Lq34LqB4Lql4Lqx4Lqt4LqB4LuA4Lqh4Lq34LuI4Lqt4LuD4LqUIOC7geC6peC6sOC7geC6meC6p+C7g+C6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl93aXBlRGF0YSIgbXNnaWQ9IjM5MTA1NDU0NDY3NTg2Mzk3MTMiPiLguqXgurbguprguoLgu43gu4nguqHgurngupngupfgurHguofgu53gurvgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dpcGVEYXRhIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzA2MTg0MDk2MDY3NzU2ODc2Ij4i4Lql4Lq24Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqC4Lqt4LqH4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LuC4LqU4LqN4Lqa4LuN4LuI4Lqh4Lq14LqB4Lqy4LqZ4LuA4LqV4Lq34Lqt4LqZIOC7guC6lOC6jeC6geC6suC6meC6o+C6teC7gOC6iuC6seC6lOC6geC6seC6muC6hOC6t+C6meC7g+C6q+C7ieC7gOC6m+C6seC6meC7geC6muC6muC6l+C6teC7iOC6oeC6suC6iOC6suC6geC7guC6ruC6h+C6h+C6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dpcGVEYXRhIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTA5Njg5NTYwNDU3NDE4ODM5MSI+IuC6peC6tuC6muC6guC7jeC7ieC6oeC6ueC6meC6guC6reC6h+C7guC6l+C6peC6sOC6quC6seC6muC7guC6lOC6jeC6muC7jeC7iOC6oeC6teC6geC6suC6meC7gOC6leC6t+C6reC6mSDgu4LgupTguo3guoHgurLgupnguqPgurXgu4DguorgurHgupTguoHgurHguprguoTgurfgupngu4Pguqvgu4ngu4DgupvgurHgupngu4HguprguprgupfgurXgu4jguqHgurLguojgurLguoHgu4Lguq7guofguofgurLgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3NldEdsb2JhbFByb3h5IiBtc2dpZD0iMjc4NDgyODI5Mzc0Nzc5MTQ0NiI+IuC6m+C7iOC6veC6mSBwcm94eSDguq7guqfguqHguoLguq3guofguq3gurjgupvgurDguoHguq3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3NldEdsb2JhbFByb3h5IiBtc2dpZD0iNjM4NzQ5NzQ2NjY2MDE1NDkzMSI+IuC6leC6seC7ieC6h+C7g+C6q+C7ieC6nuC6o+C6seC6reC6geC6iuC6teC6quC7iOC6p+C6meC6geC6suC6h+C6guC6reC6h+C6reC6uOC6m+C6sOC6geC6reC6mSDgupfgurXgu4jguojgurDgu4Pguorgu4ngu4PgupnguoLgurDgupngurDgupfgurXgu4jgu4DgupvgurXgupTgupngurPgu4Pguorgu4ngupngurDgu4Lguo3guprgurLguo0uIOC6quC6sOC7gOC7gOC6nuC6suC6sOC6nOC6ueC7iOC7gOC6muC6tOC7iOC6h+C7geC6jeC6h+C6reC6uOC6m+C6sOC6geC6reC6meC6hOC6u+C6meC6l+C6s+C6reC6tOC6lOC7gOC6l+C6u+C7iOC6suC6meC6seC7ieC6mSDgupfgurXgu4jguojgurDgupXgurHgu4nguofguoTgu4jgurLgup7guqPgurHguq3guoHguorgurXguqrgu4jguqfgupnguoHgurLguofgupfgurXgu4jguqHgurXgupzgurvgupngupngurPgu4Pguorgu4ngu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2V4cGlyZVBhc3N3b3JkIiBtc2dpZD0iODg1Mjc5MTUxODQ3MjU0MDU2Ij4i4LqV4Lqx4LuJ4LqH4Lqn4Lqx4LqZ4Lud4Lq74LqU4LqB4Lqz4LqZ4Lq74LqU4LqC4Lqt4LqH4Lql4Lqw4Lqr4Lqx4LqU4Lql4Lqx4Lqt4LqB4Luc4LuJ4Lqy4LqI4LuNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19leHBpcmVQYXNzd29yZCIgbXNnaWQ9IjE3Mjk3MjUyMjYzMTQ2OTE1OTEiPiLguoTguqfguprguoTgurjguqHguoTguqfgurLguqHgupbgurXgu4jgu4PgupnguoHgurLgupngupvgu4jgur3gupnguqXgurDguqvgurHgupTgu5zgu4ngurLguojgu43guqXgurHguq3guoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2VuY3J5cHRlZFN0b3JhZ2UiIG1zZ2lkPSI4OTAxMzI2MTk5OTA5MTMyOTE1Ij4i4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4LqB4Lqy4LqZ4LuA4LqC4Lq74LuJ4Lqy4Lql4Lqw4Lqr4Lqx4LqU4LqX4Lq14LuI4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19lbmNyeXB0ZWRTdG9yYWdlIiBtc2dpZD0iMjYzNzczMjExNTMyNTMxNjk5MiI+IuC6ruC6veC6geC6ruC7ieC6reC6h+C7g+C6q+C7ieC6oeC6teC6geC6suC6meC7gOC6guC6u+C7ieC6suC6peC6sOC6q+C6seC6lOC6guC7jeC7ieC6oeC6ueC6meC6l+C6teC7iOC6iOC6seC6lOC7gOC6geC6seC6muC7g+C6meC7geC6reC6seC6muC6ryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9kaXNhYmxlQ2FtZXJhIiBtc2dpZD0iNjM5NTMwMTAyMzE1MjI5NzgyNiI+IuC6m+C6tOC6lOC6geC6suC6meC7g+C6iuC7ieC6geC7ieC6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUNhbWVyYSIgbXNnaWQ9IjIzMDYzNDkwNDI4MzQ3NTQ1OTciPiLguqvgu4ngurLguqHguoHgurLgupngu4Pguorgu4nguoHgu4nguq3guofguojgurLguoHgupfgurjguoHguq3gurjgupvgurDguoHguq3gupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2Rpc2FibGVLZXlndWFyZEZlYXR1cmVzIiBtc2dpZD0iMjY2MzI5MTA0NTQyNjM4ODAyIj4i4Lqb4Lq04LqU4LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4LqB4Lqy4LqZ4Lql4Lqx4Lqt4LqB4Lqb4Lq44LuI4LqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19kaXNhYmxlS2V5Z3VhcmRGZWF0dXJlcyIgbXNnaWQ9IjM0NjcwODIyNzIxODY1MzQ2MTQiPiLgupvgu4nguq3guofguoHgurHgupnguoHgurLgupngu4Pguorgu4nguoTguqfgurLguqHguqrgurLguqHgurLgupTguprgurLguofguqrgu4jguqfgupngu4PgupnguoHgurLgupnguqXgurHguq3guoHgupvgurjgu4jguqEuIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBob25lVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI4OTAxMDk4MzM2NjU4NzEwMzU5Ij4i4LuA4Lqu4Lq34Lqt4LqZIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iODY5OTIzNjUwNTI3MTM2NjE1Ij4i4Lqh4Lq34LqW4Lq3IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg5NzU0NDY1NDI0Mjg3NDU0MyI+IuC6p+C6veC6gSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjExMDM2MDE0MzMzODIxNTgxNTUiPiLgu4Hgup/gurHguoHguprgu4jguq3gupngu4Dguq7gurHgupTguqfgur3guoEiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxNzM1MTc3MTQ0OTQ4MzI5MzcwIj4i4LuB4Lqf4Lqx4LqB4LuA4Lqu4Lq34Lqt4LqZIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjAzODc4Njc0NDc3MjA3Mzk0Ij4i4LuA4Lqe4LqB4LuA4LqI4Lq1IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTY1MDgyNDI3NTE3NzkzMTYzNyI+IuC6reC6t+C7iOC6meC7hiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjkxOTI1MTQ4MDY5NzU4OTg5NjEiPiLguoHgurPgupngurvgupTgu4Dguq3guociPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJlbWFpbEFkZHJlc3NUeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9IjgwNzM5OTQzNTI5NTYxMjkxMjciPiLgu4Dguq7gurfguq3gupkiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3MDg0MjM3MzU2NjAyNjI1NjA0Ij4i4Lqn4Lq94LqBIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTExMjA0NDQxMDY1OTAxMTAyMyI+IuC6reC6t+C7iOC6meC7hiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjIzNzQ5MTM5NTI4NzAxMTA2MTgiPiLguoHgurPgupngurvgupTgu4Dguq3guociPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwb3N0YWxBZGRyZXNzVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI2ODgwMjU3NjI2NzQwMDQ3Mjg2Ij4i4LuA4Lqu4Lq34Lqt4LqZIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNTYyOTE1Mzk1NjA0NTEwOTI1MSI+IuC6p+C6veC6gSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjQ5NjY2MDQyNjQ1MDAzNDM0NjkiPiLguq3gurfgu4jgupngu4YiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0OTMyNjgyODQ3NTk1Mjk5MzY5Ij4i4LqB4Lqz4LqZ4Lq74LqU4LuA4Lqt4LqHIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iaW1BZGRyZXNzVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSIxNzM4NTg1MTk0NjAxNDc2Njk0Ij4i4LuA4Lqu4Lq34Lqt4LqZIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTM1OTY0NDU2NTY0NzM4MzcwOCI+IuC6muC7iOC6reC6meC7gOC6ruC6seC6lOC6p+C6veC6gSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9Ijc4Njg1NDk0MDEwNTM2MTU2NzciPiLguq3gurfgu4jgupngu4YiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTQ1MTE4OTQ0NjM5ODY5ODA5Ij4i4LqB4Lqz4LqZ4Lq74LqU4LuA4Lqt4LqHIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JnYW5pemF0aW9uVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NTQ2MzM1NjEyMTg5MTE1NjE1Ij4i4Lqa4LuI4Lqt4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqBIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNDM3ODA3NDEyOTA0OTUyMDM3MyI+IuC6reC6t+C7iOC6meC7hiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjM0NTUwNDc0Njg1ODM5NjUxMDQiPiLguoHgurPgupngurvgupTgu4Dguq3guociPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJpbVByb3RvY29scyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijg1OTUyNjEzNjM1MTg0NTk1NjUiPiJBSU0iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3MzkwNDczNjI4Mjc1NDkwNzAwIj4iV2luZG93cyBMaXZlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg4Mjg3NzEzNDkzMTQ1ODIxNyI+IllhaG9vIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNTAzNTM3NjMxMzIwMDU4NTI0MiI+IlNreXBlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzUzMjM2MzE3ODQ1OTQ0NDk0MyI+IlFRIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzcxMzQ0MTAzNDI5OTY2MDc0OSI+Ikdvb2dsZSBUYWxrIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjUwNjg1NzMxMjcxODYzMDgyMyI+IklDUSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjE2NDg3OTc5MDM3ODUyNzkzNTMiPiJKYWJiZXIiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUN1c3RvbSIgbXNnaWQ9IjE2NDQ3MzgwNTkwNTMzNTU4MjAiPiLguoHgurPgupngurvgupTgu4Dguq3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVIb21lIiBtc2dpZD0iMjU3MDkyMzQ2MzAzMzk4NTg4NyI+IuC7gOC6ruC6t+C6reC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU1vYmlsZSIgbXNnaWQ9IjY1MDE0NjM1NTc3NTQ3NTEwMzciPiLguqHgurfgupbgurciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVXb3JrIiBtc2dpZD0iODg2MzkzOTY2NzA1OTkxMTYzMyI+IuC6muC7iOC6reC6meC7gOC6ruC6seC6lOC6p+C6veC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUZheFdvcmsiIG1zZ2lkPSIzNTE3NzkyMTYwMDA4ODkwOTEyIj4i4LuB4Lqf4Lqx4LqB4Lqa4LuI4Lqt4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlRmF4SG9tZSIgbXNnaWQ9IjIwNjcyNjU5NzIzMjI5NzE0NjciPiLgu4Hgup/gurHguoHgu4Dguq7gurfguq3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVQYWdlciIgbXNnaWQ9Ijc1ODIzNTk5NTUzOTQ5MjE3MzIiPiLgu4Dgup7guoHgu4DguojgurUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVPdGhlciIgbXNnaWQ9IjE1NDQ0MjU4NDc4Njg3NjU5OTAiPiLguq3gurfgu4jgupngu4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVDYWxsYmFjayIgbXNnaWQ9IjI3MTIxNzUyMDMwNjU2NzgyMDYiPiLgu4LgupfguoHgurHgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVDYXIiIG1zZ2lkPSI4NzM4MzYwNjg5NjE2NzE2OTgyIj4i4Lql4Lq74LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlQ29tcGFueU1haW4iIG1zZ2lkPSI1NDA0MzQzNTY0NjE0Nzg5MTYiPiLgu4DguprgurXgu4LgupfguqvgurzgurHguoHguprgu43guqXgurTguqrgurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVJc2RuIiBtc2dpZD0iODAyMjQ1MzE5MzE3MTM3MDMzNyI+IklTRE4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVNYWluIiBtc2dpZD0iNjc2NjEzNzAxMDYyODMyNjkxNiI+IuC6q+C6vOC6seC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU90aGVyRmF4IiBtc2dpZD0iODU4NzY1NzE0NTA3MjQ0NjU2NSI+IuC7geC6n+C6seC6geC6reC6t+C7iOC6meC7hiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVJhZGlvIiBtc2dpZD0iNDA5MzczODA3OTkwODY2NzUxMyI+IuC6p+C6tOC6l+C6sOC6jeC6uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVRlbGV4IiBtc2dpZD0iMzM2Nzg3OTk1MjQ3NjI1MDUxMiI+IuC7guC6l+C6peC6sOC6quC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVR0eVRkZCIgbXNnaWQ9Ijg2MDY1MTQzNzg1ODUwMDAwNDQiPiJUVFkgVEREIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlV29ya01vYmlsZSIgbXNnaWQ9IjEzMTE0MjY5ODkxODQwNjU3MDkiPiLgu4LgupfguqXgurDguqrgurHguprguqHgurfgupbgurfguprgu4jguq3gupngu4Dguq7gurHgupTguqfgur3guoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVXb3JrUGFnZXIiIG1zZ2lkPSI2NDk5Mzg3MzEyMzExNTcwNTYiPiLgu4Dgup7guoHgu4DguojgurXguprgu4jguq3gupngu4Dguq7gurHgupTguqfgur3guoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVBc3Npc3RhbnQiIG1zZ2lkPSI1NTk2NzcyNjM2MTI4NTYyODg0Ij4i4Lqc4Lq54LuI4LqK4LuI4Lqn4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlTW1zIiBtc2dpZD0iNzI1NDQ5MjI3NTUwMjc2ODk5MiI+Ik1NUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZUN1c3RvbSIgbXNnaWQ9Ijc4Mzc1ODYxOTg0NTgwNzM0MDQiPiLguoHgurPgupngurvgupTgu4Dguq3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVCaXJ0aGRheSIgbXNnaWQ9IjI4MTMzNzk4NDQyMTEzOTA3NDAiPiLguqfgurHgupngu4DgupTgurfguq3gupngupvgurXgu4DguoHgurXgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVBbm5pdmVyc2FyeSIgbXNnaWQ9IjM4NzY3Nzk3NDQ1MTgyODQwMDAiPiLguqfgurHgupnguoTgurvguprguq7guq3gupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVPdGhlciIgbXNnaWQ9IjczODgxNzg5MzkwMTAxNDMwNzciPiLguq3gurfgu4jgupngu4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVDdXN0b20iIG1zZ2lkPSI4NTI1OTYwMjU3ODA0MjEzODQ2Ij4i4LqB4Lqz4LqZ4Lq74LqU4LuA4Lqt4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlSG9tZSIgbXNnaWQ9IjQ0OTIyNzIzNjE0MDQzMzkxOSI+IuC7gOC6ruC6t+C6reC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZVdvcmsiIG1zZ2lkPSIzNTQ4MDU4MDU5NjAxMTQ5OTczIj4i4Lqn4Lq94LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlT3RoZXIiIG1zZ2lkPSIyOTIzMDA4Njk1MjcyNjM5NTQ5Ij4i4Lqt4Lq34LuI4LqZ4LuGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlTW9iaWxlIiBtc2dpZD0iMTE5OTE5MDA1MzIxMTY2MjA1Ij4i4Lqh4Lq34LqW4Lq3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZUN1c3RvbSIgbXNnaWQ9Ijg5MDMyMDY5MDMwNjA0Nzk5MDIiPiLguoHgurPgupngurvgupTgu4Dguq3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3N0YWxUeXBlSG9tZSIgbXNnaWQ9IjgxNjU3NTY5NzcxODQ0ODMwOTciPiLgu4Dguq7gurfguq3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3N0YWxUeXBlV29yayIgbXNnaWQ9IjUyNjgxNzI3NzIzODc2OTQ0OTUiPiLguqvgu4nguq3guofguoHgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3N0YWxUeXBlT3RoZXIiIG1zZ2lkPSIyNzI2MTExOTY2NjIzNTg0MzQxIj4i4Lqt4Lq34LuI4LqZ4LuGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlQ3VzdG9tIiBtc2dpZD0iMjA3NDAyODc1NTUyNzgyNjA0NiI+IuC6geC6s+C6meC6u+C6lOC7gOC6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZUhvbWUiIG1zZ2lkPSI2MjQxMTgxMDMyOTU0MjYzODkyIj4i4LuA4Lqu4Lq34Lqt4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlV29yayIgbXNnaWQ9IjEzNzE0ODkyOTAyNDI0MzMwOTAiPiLguqfgur3guoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVR5cGVPdGhlciIgbXNnaWQ9IjUzNzcwMDc0OTU3MzU5MTU0NzgiPiLguq3gurfgu4jgupngu4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sQ3VzdG9tIiBtc2dpZD0iNjkxOTQ1MzgzNjYxODc0OTk5MiI+IuC6geC6s+C6meC6u+C6lOC7gOC6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xBaW0iIG1zZ2lkPSI3MDUwMzYwNjEyMzY4MzgzNDE3Ij4iQUlNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE1zbiIgbXNnaWQ9IjE0NDU1NjU0NTQyMDc2OTQ0MiI+IldpbmRvd3MgTGl2ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xZYWhvbyIgbXNnaWQ9IjgyNzE0Mzk0MDg0NjkwMjEyNzMiPiJZYWhvbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xTa3lwZSIgbXNnaWQ9IjkwMTkyOTY3NDQ2MjI4MzI5NTEiPiJTa3lwZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xRcSIgbXNnaWQ9Ijg4ODc0ODQzNzk0OTQxMTE4ODQiPiJRUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xHb29nbGVUYWxrIiBtc2dpZD0iNDkzOTAyMzIxMTQwMjc3MzA0Ij4iSGFuZ291dHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sSWNxIiBtc2dpZD0iMTU3NDg3MDQzMzYwNjUxNzMxNSI+IklDUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xKYWJiZXIiIG1zZ2lkPSIyMjc5OTE3NjMwODc1NzcxNzIyIj4iSmFiYmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE5ldE1lZXRpbmciIG1zZ2lkPSI4Mjg3NjI1NjU1OTg2ODI3OTcxIj4iTmV0TWVldGluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ1R5cGVXb3JrIiBtc2dpZD0iMjkyNjg4NzA1MDUzNjM4NzIiPiLguqfgur3guoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdUeXBlT3RoZXIiIG1zZ2lkPSIzOTUxNzgxMTMxNTcwMTI0MDgyIj4i4Lqt4Lq34LuI4LqZ4LuGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnVHlwZUN1c3RvbSIgbXNnaWQ9IjIyNTUyMzQxNTM3MjA4ODMyMiI+IuC6geC6s+C6meC6u+C6lOC7gOC6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUN1c3RvbSIgbXNnaWQ9IjM1NDI0MDM2Nzk4MjcyOTczMDAiPiLguoHgurPgupngurvgupTgu4Dguq3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVBc3Npc3RhbnQiIG1zZ2lkPSI2Mjc0MzM0ODI1MTk1Mzc5MDc2Ij4i4Lqc4Lq54LuI4LqK4LuI4Lqn4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlQnJvdGhlciIgbXNnaWQ9Ijg3NTc5MTM1MDY3ODQwNjc3MTMiPiLguq3gu4ngurLguo0t4LqZ4LuJ4Lqt4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlQ2hpbGQiIG1zZ2lkPSIxODkwNzQ2Mjc3Mjc2ODgxNjI2Ij4i4Lql4Lq54LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlRG9tZXN0aWNQYXJ0bmVyIiBtc2dpZD0iNjkwNDgwNzExMjEyMTEyMjEzMyI+IuC6ruC6uOC7ieC6meC6quC7iOC6p+C6meC6nuC6suC6jeC7g+C6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUZhdGhlciIgbXNnaWQ9IjUyMjgwMzQ2ODcwODIwNTA3MjUiPiLgup7gu43gu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVGcmllbmQiIG1zZ2lkPSI3MzEzMTA2NzYyNDgzMzkxMjYyIj4i4Lud4Lq54LuI4LuA4Lqe4Lq34LuI4Lqt4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlTWFuYWdlciIgbXNnaWQ9IjYzNjU2Nzc4NjE2MTAxMzc4OTUiPiLgupzgurngu4jguojgurHgupTguoHgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVNb3RoZXIiIG1zZ2lkPSI0NTc4NTcxMzUyOTYyNzU4MzA0Ij4i4LuB4Lqh4LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUGFyZW50IiBtc2dpZD0iNDc1NTYzNTU2NzU2MjkyNTIyNiI+IuC6nuC7jeC7iOC7geC6oeC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVBhcnRuZXIiIG1zZ2lkPSI3MjY2NDkwMjg1MTIwMjYyNzgxIj4i4Lqu4Lq44LuJ4LqZ4Lqq4LuI4Lqn4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUmVmZXJyZWRCeSIgbXNnaWQ9IjEwMTU3MzA1OTg0NDEzNTUyNCI+IuC7geC6meC6sOC6meC6s+C7guC6lOC6jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVJlbGF0aXZlIiBtc2dpZD0iMTc5OTgxOTkzMDA4NTYxMDI3MSI+IuC6jeC6suC6lOC6leC6tOC6nuC6teC7iOC6meC7ieC6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVNpc3RlciIgbXNnaWQ9IjE3MzU5ODM1NTQ0NzkwNzY0ODEiPiLgu4Dguq3gurfgu4nguq3guo0t4LqZ4LuJ4Lqt4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlU3BvdXNlIiBtc2dpZD0iMzk0MTM2OTM5NDI4Njk4MTE3Ij4i4Lqc4Lq74Lqn4LuA4Lqh4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVDdXN0b20iIG1zZ2lkPSIyNDczNTgwNTkzMTExNTkwOTQ1Ij4i4LqB4Lqz4LqZ4Lq74LqU4LuA4Lqt4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVIb21lIiBtc2dpZD0iNjA5MzU5ODE4MTA2OTM1OTI5NSI+IuC7gOC6ruC6t+C6reC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlV29yayIgbXNnaWQ9IjY5MjA3MjU3MzA3OTcwOTkwNDciPiLguprgu4jguq3gupngu4Dguq7gurHgupTguqfgur3guoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZU90aGVyIiBtc2dpZD0iNDQwODQzNjE2Mjk1MDExOTg0OSI+IuC6reC6t+C7iOC6meC7hiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IuC6nuC6tOC6oeC6peC6sOC6q+C6seC6lCBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiLgup7gurTguqHguqXgurDguqvgurHgupQgUFVLIOC7geC6peC6sOKAi+C6peC6sOKAi+C6q+C6seC6lCBQSU4g4Lqt4Lqx4LqZ4LuD4Lud4LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiLguqXgurDigIvguqvgurHgupQgUFVLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLguqXgurDguqvgurHgupQgUElOIOC7g+C7neC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IuC7geC6leC6sOC7gOC6nuC6t+C7iOC6reC6nuC6tOC6oeC6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6mSI8L2ZvbnQ+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IuC6nuC6tOC6oeC6peC6sOC6q+C6seC6lOC7gOC6nuC6t+C7iOC6reC6m+C6u+C6lOC6peC6seC6reC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IuC6nuC6tOC6oeC6peC6sOC6q+C6seC6lCBQSU4g4LuA4Lqe4Lq34LuI4Lqt4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIyNDIyMjI1NTkxMDA2MTM0OTM2Ij4i4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDguprgu43gu4jgupbgurfguoHgupXgu4nguq3guocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+IuC7gOC6nuC6t+C7iOC6reC6m+C6u+C6lOC6peC6seC6reC6gSwg4LuD4Lqr4LuJ4LqB4Lq74LqU4LuA4Lqh4LqZ4Lq5IOC7geC6peC7ieC6p+C6geC6u+C6lCAwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtZXJnZW5jeV9jYWxsX2RpYWxvZ19udW1iZXJfZm9yX2Rpc3BsYXkiIG1zZ2lkPSI2OTYxOTIxMDMxOTUwOTA5NzAiPiLgu4DguprgurXgu4LgupfguqrgurjguoHgu4DguqrgurXgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2NhcnJpZXJfZGVmYXVsdCIgbXNnaWQ9Ijg5NjM4MzkyNDI1NjU2NTMxOTIiPiLguprgu43gu4jguqHgurXguprgu43guqXgurTguoHgurLgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zY3JlZW5fbG9ja2VkIiBtc2dpZD0iNzI4ODQ0MzA3NDgwNjgzMjkwNCI+IuC6peC6seC6reC6geC7nOC7ieC6suC6iOC7jeC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZW5hYmxlZCIgbXNnaWQ9IjQ2MTU0MDUxNjE0MTI2MDQ5Ij4i4LqB4Lq74LqUIOC7gOC6oeC6meC6uSDgu4Dgup7gurfgu4jguq3gupvgurvgupTguqXgurHguq3guoEg4Lqr4Lq84Lq3IOC7guC6l+C6reC6reC6geC6q+C6suC7gOC6muC6teC6quC6uOC6geC7gOC6quC6teC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSI2ODYyNjAwMjg3OTcxNTgzNjQiPiLguoHgurvgupQgXCLgu4DguqHgupngurlcIiDgu4Dgup7gurfgu4jguq3gupvgurvgupTguqXgurHguq3guoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9Ijc0Nzg3MDMyNTQ5NjQ4MTAzMDIiPiLgu4HgupXgu4nguqHguq7gurnguprgu4Hguprguprgu4Dgup7gurfgu4jguq3gupvgurvgupTguqXgurHguq3guoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2VtZXJnZW5jeV9jYWxsIiBtc2dpZD0iNTM0NzYzMzc4NDQwMTI4NTIyNSI+IuC7guC6l+C6quC6uOC6geC7gOC6quC6teC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcmV0dXJuX3RvX2NhbGwiIG1zZ2lkPSI1MjQ0MjU5Nzg1NTAwMDQwMDIxIj4i4LqB4Lqx4Lqa4LuE4Lqb4Lqr4Lqy4LqB4Lqy4LqZ4LuC4LqXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX2NvcnJlY3QiIG1zZ2lkPSI5MDM5MDA4NjUwMzYyMjYxMjM3Ij4i4LqW4Lq34LqB4LqV4LuJ4Lqt4LqHISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGF0dGVybl93cm9uZyIgbXNnaWQ9IjQzMTc5NTUwMTQ5NDgxMDg3OTQiPiLguqXguq3guofgu4Pgu53gu4jguq3gurXguoHguoTgurHgu4nguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Bhc3N3b3JkX3dyb25nIiBtc2dpZD0iNTczNzgxNTM5MzI1MzE2NTMwMSI+IuC6l+C6u+C6lOC6peC6reC6h+C6reC6teC6geC6hOC6seC7ieC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLguoTguqfgurLguqHgup7gurDguo3gurLguo3gurLguqHgupvgurvgupTguqXgurHguq3guoHgupTgu4nguqfguo3gu5zgu4ngurLgupngurHgu4ngupkg4LuA4LqB4Lq14LqZ4LqI4Lqz4LqZ4Lqn4LqZ4LqX4Lq14LuI4LqB4Lqz4LqZ4Lq74LqU4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wbHVnZ2VkX2luIiBtc2dpZD0iODA1Nzc2MjgyODM1NTU3MjMxNSI+IuC6geC6s+C6peC6seC6h+C6quC6suC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9jaGFyZ2VkIiBtc2dpZD0iMzIxNjM1NzQ1Njg0MDYwNjI0Ij4i4Lqq4Lqy4LqB4LuA4LqV4Lqx4Lqh4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYmF0dGVyeV9zaG9ydCIgbXNnaWQ9IjQ0NzcyNjQ4NDkzODY4NTAyNjYiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9sb3dfYmF0dGVyeSIgbXNnaWQ9IjE0ODI4NzM5ODE5MTkyNDk3NDAiPiLgu4Dguorgurfgu4jguq3guqHgupXgu43gu4jguqrgurLguo3guqrgurLguoHguoLguq3guofgupfgu4jgurLgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNTA5OTQzOTI3NzgxOTIxNTM5OSI+IuC6muC7jeC7iOC6oeC6tSBTSU0gY2FyZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1MTY1OTE5NjA5NTc5MTQ3NCI+IuC6muC7jeC7iOC6oeC6teC6iuC6tOC6oeC6geC6suC6lOC7g+C6meC7geC6l+C6seC6muC7gOC6peC6seC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg2OTIwNTg1Njk1MTY5MDc4Ij4i4Lqa4LuN4LuI4Lqh4Lq1IFNJTSBjYXJkIOC7g+C6meC7guC6l+C6peC6sOC6quC6seC6mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUzNzI3ODcxMzgwMjMyNzI2MTUiPiLgu4Pguqrgu4jguorgurTguqHguoHgurLgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjM1MjY1NzMwOTkwMTkzMTk0NzIiPiLguprgu43gu4jguqHgurXguorgurTguqHguoHgurLgupQg4Lqr4Lq84Lq34Lqt4LuI4Lqy4LqZ4LqK4Lq04Lqh4LqB4Lqy4LqU4Lqa4LuN4LuI4LuE4LqU4LuJLiDgu4Pguqrgu4jguorgurTguqHguoHgurLgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI1MDk2MTQ5NjY1MTM4OTE2MTg0Ij4iU0lNIGNhcmQg4Lqa4LuN4LuI4Lqq4Lqy4Lqh4Lqy4LqU4LuD4LqK4LuJ4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGVybWFuZW50X2Rpc2FibGVkX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI5MTA5MDQ2NDM0MzMxNTEzNzEiPiLguorgurTguqHguoHgurLgupTguoLguq3guofgupfgu4jgurLgupngupbgurfguoHgupvgurTgupTguoHgurLgupngupngurPgu4Pguorgu4nguqLgu4jgurLguofgupbgurLguqfguq3gupngu4HguqXgu4nguqcuXG4g4LqB4Lqw4Lql4Lq44LqZ4Lqy4LqV4Lq04LqU4LqV4LuN4LuI4Lqc4Lq54LuI4LuD4Lqr4LuJ4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZ4LuC4LqX4Lql4Lqw4Lqq4Lqx4Lqa4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIOC7gOC6nuC6t+C7iOC6reC6guC7jeC7gOC6reC6u+C6suC6iuC6tOC6oeC6geC6suC6lOC7g+C7neC7iC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjAxNTk0OTA1MTUyNzQ2ODg2Ij4i4Lqb4Lq44LuI4Lqh4LuA4Lqe4LqH4LqB4LuI4Lqt4LqZ4Luc4LuJ4Lqy4LqZ4Lq14LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjYwODkyOTc2NTA0ODEyOTIzNjMiPiLgupvgurjgu4jguqHgu4Dgup7guofgupXgu43gu4jgu4TgupsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTkwODg3ODY3ODAxMjgwMDEiPiLgupvgurjgu4jguqHguqLgurjgupTguorgurvgu4jguqfguoTgurLguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTg4ODQyMjkzODM1MTAxOTQyNiI+IuC6m+C6uOC7iOC6oeC6q+C6vOC6tOC7ieC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTYyMzE4Mzc4NzY2OTg3NjAxIj4i4Lqb4Lq44LuI4Lqh4Lqi4Lq44LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1lcmdlbmN5X2NhbGxzX29ubHkiIG1zZ2lkPSI2NzMzOTc4MzA0Mzg2MzY1NDA3Ij4i4Lqq4Lqz4Lql4Lqx4Lqa4LqB4Lqy4LqZ4LuC4LqX4Lqq4Lq44LqB4LuA4Lqq4Lq14LqZ4LuA4LqX4Lq74LuI4Lqy4LqZ4Lqx4LuJ4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9uZXR3b3JrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMTQzMzg5MjI0OTg2MDI4NTAxIj4i4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqN4LqW4Lq34LqB4Lql4Lqx4Lqt4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNzQ0MTc5NzMzOTk3NjIzMCI+IlNJTSBjYXJkIOC6luC6t+C6geC6peC6seC6reC6geC6lOC7ieC6p+C6jeC6peC6sOC6q+C6seC6lCBQVUsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI4MTI3OTE2MjU1MjQ1MTgxMDYzIj4i4LuA4Lqa4Lq04LuI4LqH4LqE4Lq54LuI4Lqh4Lq34Lqc4Lq54LuI4LuD4LqK4LuJIOC6q+C6vOC6t+C6leC6tOC6lOC6leC7jeC7iOC6quC6ueC6meC6muC7jeC6peC6tOC6geC6suC6meC6peC6ueC6geC6hOC7ieC6si4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV9sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjgwNjY2NjAxMjkyMDYwMDEwMzkiPiJTSU0gY2FyZCDgupbgurfguoHguqXgurHguq3guoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNTk1MzIzMjE0MDUyODgxMjY0Ij4i4LqB4Lqz4Lql4Lqx4LqH4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4LqK4Lq04Lqh4LqB4Lqy4LqULi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI2NDgxNjIzODMwMzQ0MTA3MjIyIj4i4LqX4LuI4Lqy4LqZ4LuB4LqV4LuJ4Lqh4Lqu4Lq54Lqa4LuB4Lqa4Lqa4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4Lqa4LuN4LuI4LqW4Lq34LqBIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4gXG5cbuC6peC6reC6h+C7g+C7neC7iOC7g+C6meC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDguqfgurTgupngurLgupfgurUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSIyNzI1OTczMjg2MjM5MzQ0NTU1Ij4i4LqX4LuI4Lqy4LqZ4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZ4Lqc4Lq04LqUIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4gXG5cbuC7g+C6q+C7ieC6peC6reC6h+C7g+C7neC7iOC6reC6teC6geC6hOC6seC7ieC6h+C7g+C6meC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDguqfgurTgupngurLgupfgurUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNjIxNjY3MjcwNjU0NTY5Njk1NSI+IuC6l+C7iOC6suC6meC6nuC6tOC6oeC6peC6sOC6q+C6seC6lCBQSU4g4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4Lqc4Lq04LqUIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4gXG5cbuC6peC6reC6h+C7g+C7neC7iOC7g+C6meC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDguqfgurTgupngurLgupfgurUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iOTE5MTYxMTk4NDYyNTQ2MDgyMCI+IuC6l+C7iOC6suC6meC7geC6leC7ieC6oeC6ruC6ueC6muC7geC6muC6muC6m+C6u+C6lOC6peC6seC6reC6geC6guC6reC6h+C6l+C7iOC6suC6meC6nOC6tOC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3gu4HguqXgu4nguqcuIOC6q+C6vOC6seC6h+C6iOC6suC6geC6hOC6p+C6suC6oeC6nuC6sOC6jeC6suC6jeC6suC6oeC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq0g4LqX4LuI4Lqy4LqZ4LqI4Lqw4LqW4Lq34LqB4LqW4Lqy4Lqh4LuD4Lqr4LuJ4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIOC6lOC7ieC6p+C6jeC6geC6suC6meC7gOC6guC6u+C7ieC6suC6quC6ueC7iOC6peC6sOC6muC6u+C6muC6guC6reC6hyBHb29nbGUuXG5cbiDguqXguq3guofgu4Pgu53gu4jguq3gurXguoHguoTgurHgu4nguofgu4PgupkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Lqn4Lq04LqZ4Lqy4LqX4Lq1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNTkwMjI3NTU5NzYzNzYyNzUxIj4i4LqX4LuI4Lqy4LqZ4LuB4LqV4LuJ4Lqh4Lqu4Lq54Lqa4LuB4Lqa4Lqa4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4Lqc4Lq04LqUIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4g4Lqr4Lq84Lqx4LqH4LqI4Lqy4LqB4LuB4LqV4LuJ4Lqh4Lqc4Lq04LqU4Lqt4Lq14LqBIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6rSwg4LqX4LuI4Lqy4LqZ4LqI4Lqw4LqW4Lq34LqB4LqW4Lqy4Lqh4LuD4Lqr4LuJ4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4LuC4LqX4Lql4Lqw4Lqq4Lqx4Lqa4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIOC6lOC7ieC6p+C6jeC6geC6suC6meC7gOC6guC6u+C7ieC6suC6quC6ueC7iOC6peC6sOC6muC6u+C6miBHb29nbGUuXG5cbiDguqXguq3guofgu4Pgu53gu4jgu4Pgupnguq3gurXguoEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Lqn4Lq04LqZ4Lqy4LqX4Lq1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2MTI4MTA2Mzk5NzQ1NzU1NjA0Ij4i4LqX4LuI4Lqy4LqZ4Lqe4Lqw4LqN4Lqy4LqN4Lqy4Lqh4Lqb4Lqx4LqU4Lql4Lqx4Lqt4LqB4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4Lqc4Lq04LqUIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4g4Lqr4Lq84Lqx4LqH4LqI4Lqy4LqB4Lqc4Lq04LqU4Lqt4Lq14LqBIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6rSwg4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqI4Lqw4LqW4Lq34LqB4Lqj4Lq14LuA4LqK4Lqx4LqU4LuD4Lqr4LuJ4LuA4Lqb4Lqx4LqZ4LuB4Lqa4Lqa4LqX4Lq14LuI4Lqh4Lqy4LqI4Lqy4LqB4LuC4Lqu4LqH4LqH4Lqy4LqZIOC7geC6peC6sOC6guC7jeC7ieC6oeC6ueC6meC6l+C6seC6h+C7neC6u+C6lOC6iOC6sOC6luC6t+C6geC6q+C6suC6jeC7hOC6my4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2MDM1NjUxNDIxNTY4MjY1NjUiPiLgupfgu4jgurLgupngu4TgupTgu4ngup7gurDguo3gurLguo3gurLguqHgupvgurvgupTguqXgurHguq3guoHgu4LgupfguqXgurDguqrgurHguprgu4DgupvgurHgupnguojgurPgupnguqfgupkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LuA4LqX4Lq34LuI4Lqt4LuB4Lql4LuJ4LqnLiDguqvgurzgurHguofguojgurLguoHguoHgurLgupngup7gurDguo3gurLguo3gurLguqHguq3gurXguoEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4LuA4LqX4Lq34LuI4Lqt4LuB4Lql4LuJ4Lqn4Lqa4LuN4LuI4Lqq4Lqz4LuA4Lql4Lqx4LqU4Lqc4Lq74LqZLCDgu4LgupfguqXgurDguqrgurHguprguojgurDgupbgurfguoHgupXgurHgu4nguofguoTgu4jgurLgu4Pguqvgu4ngu4DgupvgurHgupnguoTgu4jgurLguojgurLguoHgu4Lguq7guofguofgurLgupkg4LuB4Lql4Lqw4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lqx4LqH4Lud4Lq74LqU4LqI4Lqw4Lqq4Lq54LqZ4Lqr4Lqy4LqN4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI4MDg3MzUxNjQ5MzkzNDM2NSI+IuC6l+C7iOC6suC6meC6nuC6sOC6jeC6suC6jeC6suC6oeC6m+C6u+C6lOC6peC6seC6reC6geC7geC6l+C6seC6muC7gOC6peC6seC6lOC6nOC6tOC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4LuA4LqX4Lq34LuI4Lqt4LuB4Lql4LuJ4LqnLiDgupXguq3gupngupngurXgu4ngu4HgupfgurHguprgu4DguqXgurHgupTguojgurDgupbgurfguoHguqPgurXgu4DguorgurHgupTgu4DgupvgurHgupnguoTgu4jgurLguojgurLguoHgu4Lguq7guofguofgurLgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMwMjU1MDQ3MjE3NjQ5MjIyNDYiPiLgupfgu4jgurLgupngu4TgupTgu4ngup7gurDguo3gurLguo3gurLguqHgupvgurvgupTguqXgurHguq3guoHgu4LgupfguqXgurDguqrgurHguprgupzgurTgupQgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4g4LuC4LqX4Lql4Lqw4Lqq4Lqx4Lqa4LqI4Lqw4LqW4Lq34LqB4Lqj4Lq14LuA4LqK4Lqx4LqU4LuD4Lqr4LuJ4LuA4Lqb4Lqx4LqZ4LqE4LuI4Lqy4LqX4Lq14LuI4Lqh4Lqy4LqI4Lqy4LqB4LuC4Lqu4LqH4LqH4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYyNTE0ODAzNDMzOTQzODk2NjUiPiLgupfgurvgupTguqXguq3guofguq3gurXguoHguoTgurHgu4nguofgu4Pgupnguq3gurXguoEgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC6p+C6tOC6meC6suC6l+C6tS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iMjYyNjk5OTQ0OTYxMDY5NTkzMCI+IuC6peC6t+C6oeC6ruC6ueC6muC7geC6muC6muC6m+C6u+C6lOC6peC6seC6reC6gT8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9mb3Jnb3RfcGF0dGVybiIgbXNnaWQ9IjI1ODg1MjE1MDExNjYwMzI3NDciPiLgupvgurvgupTguqXgurHguq3guoHguprgurHgupnguorgurUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjI3NTEzNjg2MDUyODcyODg4MDgiPiLgup7gurDguo3gurLguo3gurLguqHgu4Pguorgu4nguq7gurnguprgu4HguprguprgupvgurvgupTguqXgurHguq3guoHgupzgurTgupTguqvgurzgurLguo3gu4Dgupfgurfgu4jguq3gu4DguoHgurXgupngu4TgupsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTMxODE2MjU2MTAwNzA3Nzg0Ij4i4LuA4Lqe4Lq34LuI4Lqt4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBLCDgu4Pguqvgu4ngu4DguoLgurvgu4ngurLguqrgurngu4jguqXgurDguprgurvguprgupTgu4nguqfguo3guprgurHgupnguorgurUgR29vZ2xlIOC6guC6reC6h+C6l+C7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iODg0Njg4MTQyNDEwNjQ4NDQ0NyI+IuC6iuC6t+C7iOC6nOC6ueC7iOC7g+C6iuC7iSAo4Lqt4Lq14LuA4Lqh4LqnKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI1OTU4MDI4MzgzOTU0NzM4NTI4Ij4i4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjcxMzA4OTM2OTQ3OTU3ODYzMDAiPiLgu4DguoLgurvgu4ngurLguqrgurngu4jguqXgurDguprgurvgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iMTM2NDA1MTQ3MzM0NzQ4NTkwOCI+IuC6iuC6t+C7iOC6nOC6ueC7iOC7g+C6iuC7iSDguqvgurzgurfguqXgurDguqvgurHgupTgupzgu4jgurLgupnguprgu43gu4jgupbgurfguoHgupXgu4nguq3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSIxNjk2OTI0NzYzNjkwMzc5MDczIj4i4Lql4Lq34Lqh4LqK4Lq34LuI4Lqc4Lq54LuI4LuD4LqK4LuJIOC6q+C6vOC6t+C6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6meC6guC6reC6h+C6l+C7iOC6suC6meC6muC7jT9cbuC7hOC6m+C6l+C6teC7iCAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSI3MTE0NjI3MzUxMjg2OTMzODY3Ij4i4LqB4Lqz4Lql4Lqx4LqH4LqB4Lqn4LqU4Lqq4Lqt4LqaLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl91bmxvY2tfbGFiZWwiIG1zZ2lkPSI3Mzc0NDA0ODMyMjA2NjcwNTQiPiLgupvgurvgupTguqXgurHguq3guoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NvdW5kX29uX2xhYmVsIiBtc2dpZD0iOTA2ODg3NzU3NjUxMzQyNTk3MCI+IuC7gOC6m+C6teC6lOC6quC6veC6h+C7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc291bmRfb2ZmX2xhYmVsIiBtc2dpZD0iOTk2ODIyODI1MTU0MzE5MDI2Ij4i4Lqb4Lq04LqU4Lqq4Lq94LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9zdGFydCIgbXNnaWQ9IjM5NDEwNDU1MDI5MzMxNDI4NDciPiLguq7gurnguprgu4Hguprguprgu4DguqXgurXgu4jguqHgupXgurvgu4ngupngu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2FjY2Vzc19wYXR0ZXJuX2NsZWFyZWQiIG1zZ2lkPSI1NTgzNDc5NzIxMDAxNjM5NTc5Ij4i4Lql4Lq24Lqa4Lql4LuJ4Lqy4LqH4Lqu4Lq54Lqa4LuB4Lqa4Lqa4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9jZWxsX2FkZGVkIiBtc2dpZD0iNjc1NjAzMTIwODM1OTI5MjQ4NyI+IuC6leC6suC6peC6suC6h+C6luC6t+C6geC7gOC6nuC6teC7iOC6oeC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYWNjZXNzX3BhdHRlcm5fZGV0ZWN0ZWQiIG1zZ2lkPSI0OTg4NzMwODk1NTU0MDU3MDU4Ij4i4Lqu4Lq54Lqa4LuB4Lqa4Lqa4Lqq4Lqz4LuA4Lql4Lqx4LqU4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiIlMSRzLiDguqfgurTgupTgu4DguojgurHgupQgJTIkZCDguojgurLguoHgupfgurHguofgu53gurvgupQgJTMkZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2FkZF93aWRnZXQiIG1zZ2lkPSI4MjczMjc3MDU4NzI0OTI0NjU0Ij4i4LuA4Lqe4Lq14LuI4Lqh4Lqn4Lq04LqU4LuA4LqI4Lqx4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZW1wdHlfc2xvdCIgbXNnaWQ9IjEyODE1MDU3MDMzMDc5MzA3NTciPiLguqvguqfgu4jgurLguofgu4Dgupvgurvgu4jgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2V4cGFuZGVkIiBtc2dpZD0iMjI3ODEwNjAyMjMxMTE3MDI5OSI+IuC6guC6sOC6q+C6jeC6suC6jeC6nuC6t+C7ieC6meC6l+C6teC7iOC6m+C6u+C6lOC6peC6seC6reC6geC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2NvbGxhcHNlZCIgbXNnaWQ9IjYzNjY5OTIwNjY5MzYwNzYzOTYiPiLguqvguo3gu43gu4ngup7gurfgu4ngupngupfgurXgu4jgupvgurvgupTguqXgurHguq3guoHgu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXQiIG1zZ2lkPSI2NTI3MTMxMDM5NzQxODA4MjQwIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4Lqn4Lq04LqU4LuA4LqI4Lqx4LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdXNlcl9zZWxlY3RvciIgbXNnaWQ9IjEyMjY3OTgzNzA5MTM2OTg4OTYiPiLgu4LgupXgu4DguqXgurfguq3guoHguoLguq3guofgupzgurngu4jgu4Pguorgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3N0YXR1cyIgbXNnaWQ9IjgwMDgyNjQ2MDM5MzU5MzA2MTEiPiLguqrgurDgupbgurLgupngurAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2NhbWVyYSIgbXNnaWQ9Ijg5MDQyMzExOTQxODExMTQ2MDMiPiLguoHgu4nguq3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlnYXVyZF9hY2Nlc3NpYmlsaXR5X21lZGlhX2NvbnRyb2xzIiBtc2dpZD0iMjYyMjA5NjU0MjkyMTYxODA2Ij4i4LqB4Lqy4LqZ4LqE4Lqn4Lqa4LqE4Lq44Lqh4Lqq4Lq34LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9zdGFydCIgbXNnaWQ9Ijg3MzY4NTM2MTU1ODg4MjgxOTciPiLguoHgurLgupnguojgurHgupTguq7gur3guofguqfgurTgu4DguojgurHgupTgu4Pgu53gu4jgu4DguqXgurXgu4jguqHgupXgurvgu4ngupngu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9lbmQiIG1zZ2lkPSI3MTcwMTkwOTUwODcwNDY4MzIwIj4i4LqB4Lqy4LqZ4LqI4Lqx4LqU4Lqu4Lq94LqH4Lqn4Lq04LqU4LuA4LqI4Lqx4LqU4LqE4Lq34LqZ4LuD4Lud4LuI4Lqq4Lqz4LuA4Lql4Lqx4LqU4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4i4Lql4Lq24Lqa4Lqn4Lq04LqU4LuA4LqI4Lqx4LqUIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2V4cGFuZF9sb2NrX2FyZWEiIG1zZ2lkPSI1MTk4NTk3MjA5MzQxNzgwMjQiPiLguoLgurDguqvguo3gurLguo3guoLguq3guprgu4DguoLgupTgupvgurvgupTguqXgurHguq3guoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV91bmxvY2siIG1zZ2lkPSIyOTU5OTI4NDc4NzY0Njk3MjU0Ij4i4LqB4Lqy4LqZ4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4LqU4LuJ4Lqn4LqN4LqB4Lqy4LqZ4LuA4Lql4Lq34LuI4Lqt4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl91bmxvY2siIG1zZ2lkPSIxNDkwODQwNzA2MDc1MjQ2NjEyIj4i4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4LqU4LuJ4Lqn4LqN4Lqu4Lq54Lqa4LuB4Lqa4LqaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZmFjZV91bmxvY2siIG1zZ2lkPSI0ODE3MjgyNTQzMzUxNzE4NTM1Ij4i4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4LqU4LuJ4Lqn4LqN4Luc4LuJ4LqyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiLgupvgurvgupTguqXgurHguq3guoHgupTgu4nguqfguo0gUElOLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGFzc3dvcmRfdW5sb2NrIiBtc2dpZD0iNzY3NTc3NzYyMzkxMjE1NTA4OSI+IuC6geC6suC6meC6m+C6u+C6lOC6peC6seC6reC6geC6lOC7ieC6p+C6jeC6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fYXJlYSIgbXNnaWQ9Ijc2Nzk4OTEzMjQ1MDk1OTc5MDQiPiLgup7gurfgu4ngupngupfgurXgu4jguq7gurnguprgu4HguprgupouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV9hcmVhIiBtc2dpZD0iNjczNjA2NDQ5NDAxOTk3OTU0NCI+IuC7gOC6peC6t+C7iOC6reC6meC6nuC6t+C7ieC6meC6l+C6teC7iC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW51bGFyaXR5X2xhYmVsX2NoYXJhY3RlciIgbXNnaWQ9IjczMzY0NzA1MzUzODUwMDk1MjMiPiLgu4LgupXguq3gurHguoHguqrguq3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF93b3JkIiBtc2dpZD0iNzA3NTU3MDMyODM3NDkxODY2MCI+IuC6hOC6s+C6quC6seC6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW51bGFyaXR5X2xhYmVsX2xpbmsiIG1zZ2lkPSI1ODE1NTA4ODgwNzgyNDg4MjY3Ij4i4Lql4Lq04LuJ4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfbGluZSIgbXNnaWQ9IjU3NjQyNjcyMzUwMjYxMjA4ODgiPiLgu4DguqrgurHgu4ngupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX2FtcG0iIG1zZ2lkPSI0NTg0MzM4MDgzNTI5MzU1OTgyIj4iPHhsaWZmOmcgaWQ9IkhPVVIiPiUtbDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iQU1QTSI+JVA8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9jYXBfYW1wbSIgbXNnaWQ9IjIwODM0NjU5OTI5NDA0NDQzNjYiPiI8eGxpZmY6ZyBpZD0iSE9VUiI+JS1sPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJBTVBNIj4lcDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9mYWlsZWQiIG1zZ2lkPSI1NDEwMjcwMzI5MTE0MjEyMDQxIj4i4LqB4Lqy4LqZ4LqX4Lq74LqU4Lqq4Lqt4Lqa4LqI4Lqy4LqB4LuC4Lqu4LqH4LqH4Lqy4LqZ4Lql4Lq74LuJ4Lqh4LuA4Lqr4Lql4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3Rfbm90X3N5c3RlbSIgbXNnaWQ9IjQ0MzUyMDE2NTY3NjcyNzY3MjMiPiLguoHgurLgupngu4Dguq7gurHgupQgRkFDVE9SWV9URVNUIOC6ruC6reC6h+C6ruC6seC6muC6quC6sOC7gOC6nuC6suC6sOC7geC6nuC6seC6geC7gOC6geC6lOC6l+C6teC7iOC6luC6t+C6geC6leC6tOC6lOC6leC6seC7ieC6h+C7g+C6mSAvc3lzdGVtL2FwcCDgu4Dgupfgurvgu4jgurLgupngurHgu4ngupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3Rfbm9fYWN0aW9uIiBtc2dpZD0iODcyOTkxODc0Nzk5OTk4NTYxIj4i4Lqa4LuN4LuI4Lqe4Lq74Lqa4LuB4Lqe4Lqx4LqB4LuA4LqB4LqU4LqX4Lq14LuI4Lqh4Lq14LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqBIEZBQ1RPUllfVEVTVC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9yZWJvb3QiIG1zZ2lkPSI2MzIwMTY4MjAzMDUwNzkxNjQzIj4i4Lqj4Lq14Lqa4Lq54LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMTk4NzQ4Mzk3NzgzNDYwMzg3MiI+IuC7nOC7ieC6suC6l+C6teC7iOC6ouC6ueC7iOC6l+C6teC7iCBcIjx4bGlmZjpnIGlkPSJUSVRMRSI+JXM8L3hsaWZmOmc+XCIg4LuA4Lqn4Lq74LuJ4Lqy4Lqn4LuI4LqyOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZV9kZWZhdWx0IiBtc2dpZD0iNjk2MTkwMzIxMzcyOTY2NzU3MyI+IkphdmFTY3JpcHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfYmVmb3JlX3VubG9hZF90aXRsZSIgbXNnaWQ9IjI2MTkzNzY1NTU1MjUxMTY1OTMiPiLguqLgurfgupnguqLgurHgupnguoHgurLgupngupngurPgupfgurLguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfYmVmb3JlX3VubG9hZF9wb3NpdGl2ZV9idXR0b24iIG1zZ2lkPSIzMTEyNzUyMDEwNjAwNDg0MTMwIj4i4Lqt4Lqt4LqB4LqI4Lqy4LqB4Luc4LuJ4Lqy4LqZ4Lq14LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWRfbmVnYXRpdmVfYnV0dG9uIiBtc2dpZD0iNTYxNDg2MTI5MzAyNjA5OTcxNSI+IuC6ouC6ueC7iOC6l+C6teC7iOC7nOC7ieC6suC6meC6teC7ieC6leC7jeC7iOC7hOC6myI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkIiBtc2dpZD0iMzQ2ODgxNjM1NzA5NTM3ODU5MCI+Ijx4bGlmZjpnIGlkPSJNRVNTQUdFIj4lczwveGxpZmY6Zz5cblxu4LqX4LuI4Lqy4LqZ4LuB4LqZ4LuI4LuD4LqI4Lqa4LuN4LuI4Lqn4LuI4Lqy4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4Lqt4Lqt4LqB4LuE4Lqb4LqI4Lqy4LqB4Luc4LuJ4Lqy4LqZ4Lq14LuJPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfbGFiZWwiIG1zZ2lkPSI2ODYwMjYxNzU4NjY1ODI1MDY5Ij4i4Lqi4Lq34LqZ4Lqi4Lqx4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG91YmxlX3RhcF90b2FzdCIgbXNnaWQ9IjQ1OTUwNDY1MTU0MDAyNjg4ODEiPiLgu4DguoTgurHgupTguqXgurHgupo6IOC7geC6leC6sOC6quC6reC6h+C6hOC6seC7ieC6h+C7gOC6nuC6t+C7iOC6reC6iuC6ueC6oeC7gOC6guC6u+C7ieC6siDgu4HguqXgurDguorgurnguqHguq3guq3guoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfdGhpc19mb3JtIiBtc2dpZD0iNDYxNjc1ODg0MTE1NzgxNjY3NiI+IuC6leC6t+C7iOC6oeC6guC7jeC7ieC6oeC6ueC6meC6reC6seC6lOC6leC6sOC7guC6meC6oeC6seC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNldHVwX2F1dG9maWxsIiBtc2dpZD0iNzEwMzQ5NTA3MDE4MDU5MDgxNCI+IuC6leC6seC7ieC6h+C6geC6suC6meC6leC6t+C7iOC6oeC6guC7jeC7ieC6oeC6ueC6meC6reC6seC6lOC6leC6sOC7guC6meC6oeC6seC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3NfbmFtZV9zZXBhcmF0b3IiIG1zZ2lkPSI2MzUwMTQ1MTU0Nzc5NzA2NzcyIj4iICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3Nfc3VtbWFyeV9uYW1lX2Zvcm1hdCIgbXNnaWQ9IjMyNjgwNDEwNTQ4OTkyMTQ5NDUiPiIkMSQyJDMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX3N1bW1hcnlfc2VwYXJhdG9yIiBtc2dpZD0iNzQ4MzMwNzg5MzE3MDMyNDEyOSI+IiwgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYWRkcmVzc19zdW1tYXJ5X2Zvcm1hdCIgbXNnaWQ9IjQ4NzQ0NTk0NTU3ODY4MjczNDQiPiIkMSQyJDMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wcm92aW5jZSIgbXNnaWQ9IjIyMzE4MDY1NTM4NjM0MjIzMDAiPiLgu4HguoLguqfguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wb3N0YWxfY29kZSIgbXNnaWQ9IjQ2OTY0MzA0MDc2ODkzNzcxMDgiPiLguqXgurDguqvgurHgupTgu4TgupvguqrgurDgupngurUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9zdGF0ZSIgbXNnaWQ9IjY5ODg4OTQxOTU1MjAwNDQ2MTMiPiLguqXgurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF96aXBfY29kZSIgbXNnaWQ9Ijg2OTc1NDQ1OTI2MjczMjI5NDYiPiLguqXgurDguqvgurHgupQgWklQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfY291bnR5IiBtc2dpZD0iMjM3MDczNzcxMDIwMzYyODkxIj4i4Lqb4Lqw4LuA4LqX4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfaXNsYW5kIiBtc2dpZD0iNDAyMDEwMDg3NTk4NDY2NzAyNSI+IuC7gOC6geC6suC6sCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2Rpc3RyaWN0IiBtc2dpZD0iODQwMDczNTA3MzM5MjI2NzY3MiI+IuC7gOC6oeC6t+C6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2RlcGFydG1lbnQiIG1zZ2lkPSI1MzQzMjc5NDYyNTY0NDUzMzA5Ij4i4Lqe4Lqw4LuB4LqZ4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcHJlZmVjdHVyZSIgbXNnaWQ9IjIwMjg0OTk0ODUwNjU4MDA0MTkiPiLgu4DguoLgupTgupvgurvguoHguoTguq3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wYXJpc2giIG1zZ2lkPSI4MjAyMjA2MTA1NDY4ODIwMDU3Ij4i4LuA4LqC4LqU4LqB4Lqy4LqZ4Lqb4Lq74LqB4LqE4Lqt4LqH4LqX4LuJ4Lqt4LqH4LqW4Lq04LuI4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYXJlYSIgbXNnaWQ9IjM1NDc0MDkwNTA4ODk5NTI0MjMiPiLgup7gurfgu4ngupngupfgurXgu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9lbWlyYXRlIiBtc2dpZD0iMjg5Mzg4MDk3ODgzNTY5ODgxOCI+IuC6reC6teC6oeC6tOC7gOC6o+C6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSIzNzc1MjY1Nzc1NDA1MTA2OTgzIj4i4Lqt4LuI4Lqy4LqZ4Lqa4Lq44LqB4Lqh4Lqy4LqBIOC7geC6peC6sOC6m+C6sOC6q+C6p+C6seC6lOC7gOC6p+C6seC6muC7hOC6iuC6guC6reC6h+C6l+C7iOC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iODQ2MjM3ODIyNjYwMDQzOTY1OCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguq3gu4jgurLgupngupvgurDguqvguqfgurHgupTguoLguq3guocgVVJMIOC6l+C6seC6h+C7neC6u+C6lOC6l+C6teC7iOC7guC6m+C6o+C7geC6geC6o+C6oeC6l+C7iOC6reC6h+C7gOC6p+C6seC6muC7gOC6hOC6teC6jeC7gOC6guC6u+C7ieC6suC7gOC6muC6tOC7iOC6hyDguq7guqfguqHgupfgurHguocg4Lqa4Lq44LqB4Lqh4Lqy4LqB4LqX4Lqx4LqH4Lud4Lq74LqU4LqC4Lqt4LqH4LuC4Lqb4Lqj4LuB4LqB4Lqj4Lqh4LqX4LuI4Lqt4LqH4LuA4Lqn4Lqx4Lqa4LqZ4LqzLiDgu53gurLguo3gu4DguqvgupQ6IOC6geC6suC6meC6geC6s+C6meC6u+C6lOC6quC6tOC6lOC6meC6teC7iSDguq3gurLgupTguprgu43gu4jgu4TgupTgu4nguprgurHguofguoTgurHguprgu4Pguorgu4ngu4Pgupngu4LgupvguqPgu4HguoHguqPguqHgupfgu4jguq3guofgu4DguqfgurHguprgup7gurLguoHguqrgu4jguqfgupngupfgurXguqrgurLguqEg4Lqr4Lq84Lq34LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4Lqt4Lq34LuI4LqZ4LqX4Lq14LuI4Lqh4Lq14LqE4Lqn4Lqy4Lqh4Lqq4Lqy4Lqh4Lqy4LqU4LqX4LuI4Lqt4LqH4LuA4Lqn4Lqx4LqaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iMzcxNDc4NTE2NTI3MzMxNDQ5MCI+IuC6guC6veC6meC6guC7jeC7ieC6oeC6ueC6meC6muC6uOC6geC6oeC6suC6gSDgu4HguqXgurDgupvgurDguqvguqfgurHgupTgu4DguqfgurHguprgu4TguooiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUhpc3RvcnlCb29rbWFya3MiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY4MjU1Mjc0NjkxNDU3NjA5MjIiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4HguoHgu4ngu4TguoLgupvgurDguqvguqfgurHgupTgu4PgupnguoHgurLgupngupfgu4jguq3guofgu4DguqfgurHgupog4Lqr4Lq84Lq34Lqa4Lq44LqB4Lqh4Lqy4LqB4LqX4Lq14LuI4Lqa4Lqx4LqZ4LqX4Lq24LqB4LuD4LqZ4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZLiDgupngurXgu4nguq3gurLgupTguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guqXgurbgupog4Lqr4Lq84Lq34LuB4LqB4LuJ4LuE4LqC4LqC4LuN4LuJ4Lqh4Lq54LqZ4LuC4Lqb4Lqj4LuB4LqB4Lqj4Lqh4LqX4LuI4Lqt4LqH4LuA4Lqn4Lqx4Lqa4LuE4LqU4LuJLiDgu53gurLguo3gu4DguqvgupQ6IOC6geC6suC6meC6reC6sOC6meC6uOC6jeC6suC6lOC6meC6teC7ieC6reC6suC6lOC7gOC6m+C6seC6meC6nOC6u+C6meC6muC6seC6h+C6hOC6seC6muC7g+C6iuC7iSDguojgurLguoHgu4LgupvguqPgu4HguoHguqPguqHgupfgu4jguq3guofgu4DguqfgurHguprgup7gurLguo3gupnguq3guoEg4Lqr4Lq84Lq34LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4Lqt4Lq34LuI4LqZ4LqX4Lq14LuI4Lqq4Lqy4Lqh4Lqy4LqU4LuA4LqC4Lq74LuJ4Lqy4LuA4Lqn4Lqx4Lqa4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0OTczODk1MzEwMTQxODU1MDkiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8g4LuB4LqB4LuJ4LuE4LqC4Lqb4Lqw4Lqr4Lqn4Lqx4LqU4LuC4Lqb4Lqj4LuB4LqB4Lqj4Lqh4LqX4LuI4Lqt4LqH4LuA4Lqn4Lqx4LqaIOC6q+C6vOC6t+C6muC6uOC6geC6oeC6suC6geC6l+C6teC7iOC7gOC6geC6seC6muC7hOC6p+C7ieC7g+C6meC7guC6l+C6peC6sOC6quC6seC6muC6guC6reC6h+C6l+C7iOC6suC6mS4g4LqZ4Lq14LuJ4Lqt4Lqy4LqU4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lql4Lq24LqaIOC6q+C6vOC6t+C7geC6geC7ieC7hOC6guC6guC7jeC7ieC6oeC6ueC6meC7guC6m+C6o+C7geC6geC6o+C6oeC6l+C7iOC6reC6h+C7gOC6p+C6seC6mi4g4Lud4Lqy4LqN4LuA4Lqr4LqUOiDguoHgurLgupnguoHgurPgupngurvgupTguqrgurTgupTgupngurXgu4kg4Lqt4Lqy4LqU4Lqa4LuN4LuI4LuE4LqU4LuJ4LqW4Lq34LqB4Lqa4Lqx4LqH4LqE4Lqx4Lqa4LuD4LqK4LuJ4LuD4LqZ4LuC4Lqb4Lqj4LuB4LqB4Lqj4Lqh4LqX4LuI4Lqt4LqH4LuA4Lqn4Lqx4Lqa4Lqe4Lqy4LqB4Lqq4LuI4Lqn4LqZ4LqX4Lq14Lqq4Lqy4LqhIOC6q+C6vOC6t+C7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6reC6t+C7iOC6meC6l+C6teC7iOC6oeC6teC6hOC6p+C6suC6oeC6quC6suC6oeC6suC6lOC6l+C7iOC6reC6h+C7gOC6p+C6seC6mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldEFsYXJtIiBtc2dpZD0iMTM3OTI5NDU1NjM2MjA5MTgxNCI+IuC6leC6seC7ieC6h+C6geC6suC6meC7geC6iOC7ieC6h+C7gOC6leC6t+C6reC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFsYXJtIiBtc2dpZD0iMzE2MzkyMDM5MTU3NDczODQ4Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4LqV4Lqx4LuJ4LqH4LuC4Lqh4LqH4Lqb4Lq44LqB4LuD4LqZ4LuB4Lqt4Lqx4Lqa4Lqv4LuC4Lqh4LqH4Lqb4Lq44LqB4LqX4Lq14LuI4LqV4Lq04LqU4LqV4Lqx4LuJ4LqH4LuE4Lqn4LuJLiDguprgurLguofgu4Hguq3gurHguprguq/gu4LguqHguofgupvgurjguoHguq3gurLgupTguprgu43gu4jguqHgurXguoTgurjgupnguqrgurvguqHguprgurHgupTgu4HguprguprgupngurXgu4ngu4Dgupfgurfgu4jguq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hZGRWb2ljZW1haWwiIG1zZ2lkPSI1NTI1NjYwMDI2MDkwOTU5MDQ0Ij4i4LuA4Lqe4Lq14LuI4Lqh4LqC4LuN4LuJ4LqE4Lqn4Lqy4Lqh4Lqq4Lq94LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWRkVm9pY2VtYWlsIiBtc2dpZD0iNjYwNDUwODY1MTQyODI1MjQzNyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDguqrgurLguqHgurLgupTgu4Dgup7gurXgu4jguqHguoLgu43gu4nguoTguqfgurLguqHgu4Pguqrgu4jguq3gurTgupnguprgurHguq3guoHguoLgu43gu4nguoTguqfgurLguqHguqrgur3guofguoLguq3guofgupfgu4jgurLgupngu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUdlb2xvY2F0aW9uUGVybWlzc2lvbnMiIG1zZ2lkPSI1OTYyMjI0MTU4OTU1MjczOTMyIj4i4LuB4LqB4LuJ4LuE4LqC4Lqq4Lq04LqU4LqX4Lqy4LqH4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4Lqe4Lq54Lqh4Lqq4Lqy4LqU4LqC4Lqt4LqH4LuC4Lqb4Lqj4LuB4LqB4Lqj4Lqh4LqX4LuI4Lqt4LqH4LuA4Lqn4Lqx4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iMTA4Mzc0MzIzNDUyMjYzODc0NyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6r+C7geC6geC7ieC7hOC6giDguoHgurLgupnguq3gurDgupngurjguo3gurLgupTgupXgurPgu4Hgu5zgu4jguofgupfgurLguofgup7gurnguqHguqrgurLgupQg4LqC4Lqt4LqH4LuC4Lqb4Lqj4LuB4LqB4Lqj4Lqh4LqX4LuI4Lqt4LqH4LuA4Lqn4Lqx4LqaLiDgu4Hguq3gurHguprguq/gupfgurXgu4jgu4DgupvgurHgupnguq3gurHgupngupXgurDguqXgurLguo3guq3gurLgupTgu4Pguorgu4nguoTgurjgupnguqrgurvguqHguprgurHgupTgupngurXgu4kg4LuA4Lqe4Lq34LuI4Lqt4Lqq4Lq74LuI4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4LuE4Lqb4LuD4Lqr4LuJ4LuA4Lqn4Lqx4Lqa4LuE4LqK4LqV4LuI4Lqy4LqH4LuG4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGFja2FnZVZlcmlmaWNhdGlvbkFnZW50IiBtc2dpZD0iNTU2ODEzOTEwMDY0NTgyOTExNyI+IuC6ouC6seC7ieC6h+C6ouC6t+C6meC7geC6nuC6seC6geC7gOC6geC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BhY2thZ2VWZXJpZmljYXRpb25BZ2VudCIgbXNnaWQ9Ijg0Mzc1OTAxOTA5OTA4NDMzODEiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/guqLgurfgupnguqLgurHgupnguqfgu4jgurLgu4Hgup7gurHguoHgu4DguoHgupTgu4PgupTgupngurbgu4jguocg4Lqq4Lqy4Lqh4Lqy4LqU4LqV4Lq04LqU4LqV4Lqx4LuJ4LqH4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFBhY2thZ2VWZXJpZmllciIgbXNnaWQ9IjQxODc3ODY3OTMzNjAzMjY2NTQiPiLgu4Dguorgurfgu4jguq3guqHgu4Lguo3guofguoHgurHguprgu4LgupXguqLgurfgupnguqLgurHgupngu4Hgup7gurHguoHgu4DguoHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUGFja2FnZVZlcmlmaWVyIiBtc2dpZD0iMzE4MDc0MTc3MzIzMzg2MjEyNiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7gOC6iOC6u+C7ieC6suC6guC6reC6h+C7gOC6ruC6seC6lOC6geC6suC6meC6ruC7ieC6reC6h+C6guC7jeC7guC6leC6ouC6t+C6meC6ouC6seC6meC7geC6nuC6seC6geC7gOC6geC6seC6lC4g4Lqa4LuN4LuI4LqI4Lqz4LuA4Lqb4Lqx4LqZ4Lqq4Lqz4Lql4Lqx4Lqa4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq74LuI4Lqn4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VyaWFsUG9ydCIgbXNnaWQ9IjU0NjA4MzMyNzY1NDYzMTA3NiI+IuC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C6nuC6reC6lOC6iuC6teC6o+C6veC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlcmlhbFBvcnQiIG1zZ2lkPSIyOTkxNjM5OTg1MjI0NTk4MTkzIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuA4LqI4Lq74LuJ4Lqy4LqC4Lqt4LqH4Lqq4Lqy4Lqh4Lqy4LqU4LuA4LqC4Lq74LuJ4Lqy4LuA4Lqa4Lq04LuI4LqHIHNlcmlhbCBwb3J0cyDgu4LgupTguo3guoHgurLgupngupngurPgu4Pguorgu4kgU2VyaWFsTWFuYWdlciBBUEkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NDb250ZW50UHJvdmlkZXJzRXh0ZXJuYWxseSIgbXNnaWQ9IjUwNzc3NzQyOTc5NDM0MDkyODUiPiLgu4DguoLgurvgu4ngurLgu4DgupbgurTguofgupzgurngu4jguqrgurDgu5zguq3guofgu4Dgupngurfgu4nguq3guqvgurLgup7gurLguo3gupnguq3guoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NDb250ZW50UHJvdmlkZXJzRXh0ZXJuYWxseSIgbXNnaWQ9IjQ1NDQzNDY0ODY2OTc4NTM2ODUiPiLguorgu4jguqfguo3gu4Pguqvgu4ngu4Dguojgurvgu4ngurLguoLguq3guofguqrgurLguqHgurLgupQg4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqH4Lqc4Lq54LuI4LuD4Lqr4LuJ4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZ4LuA4LqZ4Lq34LuJ4Lqt4Lqr4Lqy4LqI4Lqy4LqB4Luc4LuJ4LqyIHNoZWxsIOC7hOC6lOC7iS4g4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4LqX4Lq74LuI4Lqn4LuE4Lqb4Lqa4LuN4LuI4LqE4Lqn4LqZ4LqI4Lqz4LuA4Lqb4Lqx4LqZ4LqV4LuJ4Lqt4LqH4LuD4LqK4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlTG9jayIgbXNnaWQ9IjM1Mjc1NTgzNjY2MTY2ODA4ODkiPiLgupvgu4nguq3guofguoHgurHgupnguoHgurLgupnguq3gurHguprgu4DgupTgupTguq3gurjgupvgurDguoHguq3gupngu4LgupTguo3guq3gurHgupTgupXgurDgu4LgupnguqHgurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVMb2NrIiBtc2dpZD0iMTY1NTYyNTgzMjE2Njc3ODQ5MiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7gOC6iOC6u+C7ieC6suC6guC6reC6h+C6geC6s+C6meC6u+C6lOC6guC7jeC7ieC6oeC6ueC6meC7g+C6meC6peC6sOC6muC6u+C6miDguoHgu4jgur3guqfguoHgurHguprgu4DguqfguqXgurLgupfgurXgu4jgu4Dgu53gurLgurDguqrgurvguqHgu4PgupnguoHgurLgupnguqPgurXguprgurngupTgu4Hguprguprguprgu43gu4jgu4LgupXgu4ngupXguq3gupog4LuA4Lqe4Lq34LuI4Lqt4Lqt4Lqx4Lqa4LuA4LqB4Lqj4LqU4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfbWVzc2FnZSIgbXNnaWQ9Ijc2NzM0NDY4NzEzOTE5NTc5MCI+IuC6l+C7iOC6suC6meC6leC7ieC6reC6h+C6geC6suC6meC7g+C6q+C7ieC7guC6m+C6o+C7geC6geC6o+C6oeC6l+C7iOC6reC6h+C7gOC6p+C6seC6muC6meC6teC7ieC6iOC6t+C7iOC6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6meC6meC6teC7ieC6muC7jeC7iD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX25vdG5vdyIgbXNnaWQ9IjYzODk2NzUzMTY3MDY2OTk3NTgiPiLguprgu43gu4jgu4HguqHgu4jgupngupXguq3gupngupngurXgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX3JlbWVtYmVyIiBtc2dpZD0iNjQ5MTg3OTY3ODk5Njc0OTQ2NiI+IuC6iOC6t+C7iOC7hOC6p+C7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfbmV2ZXIiIG1zZ2lkPSI4Mjc0MzMwMjk2Nzg1ODU1MTA1Ij4i4Lqa4LuN4LuI4LqV4LuJ4Lqt4LqH4LqI4Lq34LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3Blbl9wZXJtaXNzaW9uX2RlbnkiIG1zZ2lkPSI3Mzc0MDM2NzA4MzE2NjI5ODAwIj4i4LqX4LuI4Lqy4LqZ4Lqa4LuN4LuI4LuE4LqU4LuJ4Lqu4Lqx4Lqa4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuA4Lqb4Lq14LqU4Luc4LuJ4Lqy4LqZ4Lq14LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRleHRfY29waWVkIiBtc2dpZD0iNDk4NTcyOTUyNDY3MDEzMTM4NSI+IuC6quC6s+C7gOC6meC6u+C6suC6guC7jeC7ieC6hOC6p+C6suC6oeC7g+C6quC7iOC6hOC6peC6tOC6muC6muC6reC6lOC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb3JlX2l0ZW1fbGFiZWwiIG1zZ2lkPSI0NjUwOTE4OTIzMDgzMzIwNDk1Ij4i4LuA4Lqe4Lq14LuI4Lqh4LuA4LqV4Lq14LqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlcGVuZF9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI1NzIyMTQ0NjE2NzYwMTU2NDIiPiLgu4DguqHgupngurkrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zcGFjZV9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI0MTAzMjg2MzkyNzIxNjI1MzciPiJTcGFjZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZW50ZXJfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIyNzQzMzYyNzg1MTExMzA5NjY4Ij4iZW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZV9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjM2NTgxNzgwMDcyMDI3NDgxNjQiPiLguqXgurbgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2hfZ28iIG1zZ2lkPSI4Mjk4MDE2NjY5ODIyMTQxNzE5Ij4i4LqK4Lqt4LqB4Lqr4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9zZWFyY2giIG1zZ2lkPSI2NzQ5ODI2NjM5MDk4NTEyMTIwIj4i4LqK4Lqt4LqB4Lqr4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9xdWVyeSIgbXNnaWQ9IjU5MTE3Nzg1OTMxMjUzNTUxMjQiPiLguorguq3guoHguqvgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX2NsZWFyIiBtc2dpZD0iMTMzMDI4MTk5MDk1MTgzMzAzMyI+IuC6peC6tuC6muC6guC7jeC7ieC6hOC6p+C6suC6oeC6iuC6reC6geC6q+C6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fc3VibWl0IiBtc2dpZD0iMjY4ODQ1MDEzMzI5Nzk4MzU0MiI+IuC6quC6u+C7iOC6h+C6geC6suC6meC6iuC6reC6geC6q+C6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fdm9pY2UiIG1zZ2lkPSIyNDUzMjAzNjk1Njc0OTk0NDQwIj4i4LqK4Lqt4LqB4Lqr4Lqy4LqU4LuJ4Lqn4LqN4Lqq4Lq94LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ190aXRsZSIgbXNnaWQ9Ijc0NjA2OTQwNzAzMDk3MzAxNDkiPiLgu4DgupvgurXgupTgupngurPgu4Pguorgu4kgXCLguoHgurLgupnguqrgurPguqvgurzguqfgupTgu4LgupTguo3guqrgurPgup7gurHgupRcIiDguprgu43gu4g/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ19tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NjU1ODg3NTM5MDg5OTEwNTc3Ij4iPHhsaWZmOmcgaWQ9IkFDQ0VTU0lCSUxJVFlfU0VSVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiDgupXgu4nguq3guofguoHgurLgupngu4DgupvgurXgupTgupngurPgu4Pguorgu4kgXCLguoHgurLgupnguqrgurPguqvgurzguqfgupTgu4LgupTguo3guqrgurPgup7gurHgupRcIi4g4LuA4Lqh4Lq34LuI4Lqt4LuA4Lqb4Lq14LqUIFwi4LqB4Lqy4LqZ4Lqq4Lqz4Lqr4Lq84Lqn4LqU4LuC4LqU4LqN4Lqq4Lqz4Lqe4Lqx4LqUXCIg4LuB4Lql4LuJ4LqnIOC6l+C7iOC6suC6meC6iOC6sOC6quC6suC6oeC6suC6lOC7hOC6lOC7ieC6jeC6tOC6mSDguqvgurzgurfgu4DguqvgurHgupnguoTgurPguprgurHgupnguo3gurLguo3guqfgu4jgurLguqHgurXguqvguo3gurHguofguqLgurngu4jguoHgu4nguq3guofgupngurTgu4nguqfguqHgurfguoLguq3guofgupfgu4jgurLgupkg4Lqr4Lq84Lq34LuD4LqK4LuJ4Lqu4Lq54Lqa4LuB4Lqa4Lqa4LqB4Lqy4LqZ4LuA4LqE4Lq34LuI4Lqt4LqZ4LuE4Lqr4Lqn4LuA4Lqe4Lq34LuI4Lqt4LuC4LqV4LuJ4LqV4Lqt4Lqa4LqB4Lqx4Lqa4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI3MDgxOTk2NzI4NTIzNzMxOTUiPiI8eGxpZmY6ZyBpZD0iQUNDRVNTSUJJTElUWV9TRVJWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+IOC6leC7ieC6reC6h+C6geC6suC6meC7gOC6m+C6teC6lOC6meC6s+C7g+C6iuC7iSBcIuC6geC6suC6meC6quC6s+C6q+C6vOC6p+C6lOC7guC6lOC6jeC6quC6s+C6nuC6seC6lFwiLiDgu4DguqHgurfgu4jguq3gu4DgupvgurXgupQgXCLguoHgurLgupnguqrgurPguqvgurzguqfgupTgu4LgupTguo3guqrgurPgup7gurHgupRcIiDgu4HguqXgu4nguqcg4LqX4LuI4Lqy4LqZ4LqI4Lqw4Lqq4Lqy4Lqh4Lqy4LqU4LuE4LqU4LuJ4LqN4Lq04LqZIOC6q+C6vOC6t+C7gOC6q+C6seC6meC6hOC6s+C6muC6seC6meC6jeC6suC6jeC6p+C7iOC6suC6oeC6teC6q+C6jeC6seC6h+C6ouC6ueC7iOC6geC7ieC6reC6h+C6meC6tOC7ieC6p+C6oeC6t+C6guC6reC6h+C6l+C7iOC6suC6mSDguqvgurzgurfgu4Pguorgu4nguq7gurnguprgu4HguprguprguoHgurLgupngu4DguoTgurfgu4jguq3gupngu4Tguqvguqfgu4Dgup7gurfgu4jguq3gu4LgupXgu4ngupXguq3guprguoHgurHguprgu4LgupfguqXgurDguqrgurHgupouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib25lTW9udGhEdXJhdGlvblBhc3QiIG1zZ2lkPSI3Mzk2Mzg0NTA4OTUzNzc5OTI1Ij4iMSDgu4DgupTgurfguq3gupnguoHgu4jguq3gupnguqvgupngu4ngurLgupngurXgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiZWZvcmVPbmVNb250aER1cmF0aW9uUGFzdCIgbXNnaWQ9IjkwOTEzNDU0NjgzNjQ5OTgyNiI+IuC6q+C6vOC6suC6jeC6geC6p+C7iOC6siAxIOC7gOC6lOC6t+C6reC6meC6geC7iOC6reC6mSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX3NlY29uZHNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDg2OTg3MDA1NjU0Nzg5NjAxMSI+IjEg4Lqn4Lq04LqZ4Lqy4LqX4Lq14LqB4LuI4Lqt4LqZIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzOTAzNzA2ODA0MzQ5NTU2Mzc5Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Lqn4Lq04LqZ4Lqy4LqX4Lq14LqB4LuI4Lqt4LqZ4Luc4LuJ4Lqy4LqZ4Lq14LuJIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJudW1fbWludXRlc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMzA2Nzg3NDMzMDg4ODEwMTkxIj4iMSDgupngurLgupfgurXguoHgu4jguq3gupngu5zgu4ngurLgupngurXgu4kiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIxNzY5NDIwMDg5MTU0NTUxMTYiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDgupngurLigIvgupfgurXigIvgupfgurXgu4jgupzgu4jgurLgupnguqHgurIiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Im51bV9ob3Vyc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI5MTUwNzk3OTQ0NjEwODIxODQ5Ij4iMSDguorgurvgu4jguqfgu4LguqHguofguoHgu4jguq3gupngu5zgu4ngurLgupngurXgu4kiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI0NjcyNzMyMzk1ODc1ODc1NjkiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDguorgurvgu4jguqfgu4LguqHguofgupfgurXgu4jgupzgu4jgurLgupnguqHgurIiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Imxhc3RfbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjMwNjk5OTI4MDgxNjQzMTgyNjgiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDguqHgurfgu4ngupfgurXgu4jgupzgu4jgurLgupnguqHgurIiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJsYXN0X21vbnRoIiBtc2dpZD0iMzk1OTM0NjczOTk3OTA1NTQzMiI+IuC7gOC6lOC6t+C6reC6meC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9sZGVyIiBtc2dpZD0iNTIxMTk3NTAyMjgxNTU1NDg0MCI+IuC7gOC6geC6u+C7iOC6suC6geC6p+C7iOC6siI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX2RheXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODYxMzU4NTM0Mzk4MTE1ODIwIj4i4Lqh4Lq34LuJ4oCL4Lqn4Lqy4LqZ4oCL4LqZ4Lq14LuJIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyNDc5NTg2NDY2MTUzMzE0NjMzIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Lqh4Lq34LuJ4oCL4LqB4LuI4Lqt4LqZIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fc2Vjb25kcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjI3Mjk3NDU1NjA5NTQ5MDUxMDIiPiLgu4Pgupnguq3gurXguoEgMSDguqfgurTgupngurLgupfgurUiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjEyNDE5MjYxMTY0NDM5NzQ2ODciPiLgu4PgupkgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Lqn4Lq04oCL4LqZ4Lqy4oCL4LqX4Lq1IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9Ijg3OTMwOTUyNTEzMjUyMDAzOTUiPiLgu4PgupkgMSDgupngurLgupfgurUiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjMzMzA3MTM5MzYzOTk0NDg3NDkiPiLgu4PgupkgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4LqZ4Lqy4LqX4Lq1IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1faG91cnMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI3MTY0MzUzMzQyNDc3NzY5OTk5Ij4i4LuD4LqZIDEg4LqK4Lq74LuI4Lqn4LuC4Lqh4LqHIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDcyOTA2NzczNTM3MjczODkiPiLgu4PgupkgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4LqK4Lq74LuI4Lqn4LuC4Lqh4LqHIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fZGF5cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU0MTMwODg3NDMwMDk4Mzk1MTgiPiLguqHgurfgu4nguq3gurfgu4jgupkiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjUxMDk0NDkzNzUxMDA5NTMyNDciPiLgu4PgupkgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Lqh4Lq34LuJIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX3NlY29uZHNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMTg0OTAzNjg0MDIwMDA2OTExOCI+IjEg4Lqn4Lq04LqZ4Lqy4LqX4Lq14LqB4LuI4Lqt4LqZIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzNjk5MTY5MzY2NjUwOTMwNDE1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Lqn4Lq0IOC6geC7iOC6reC6meC7nOC7ieC6suC6meC6teC7iSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X251bV9taW51dGVzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjYzNjE0OTAxNDcxMTM4NzE1NDUiPiIxIOC6meC6lyDguoHgu4jguq3gupkiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg1MTE2NDk2ODU5NzE1MDcxMCI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC6meC6lyDguoHgu4jguq3gupngu5zgu4ngurLgupngurXgu4kiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1faG91cnNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDc5NjIxMjAzOTcyNDcyMjExNiI+IjEg4LqK4Lq74LuI4Lqn4LuC4Lqh4LqH4LqB4LuI4Lqt4LqZIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2ODg5OTcwNzQ1NzQ4NTM4OTAxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4LqK4Lq74LuI4Lqn4LuC4Lqh4LqH4LqB4LuI4Lqt4LqZ4Luc4LuJ4Lqy4LqZ4Lq14LuJIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX2RheXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODQ2MzE2MTcxMTQ5MjY4MDMwOSI+IuC6oeC6t+C7ieC6p+C6suC6meC6meC6teC7iSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzQ1MzM0MjYzOTYxNjQ4MTE5MSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC6oeC6t+C7ieC6geC7iOC6reC6meC7nOC7ieC6suC6meC6teC7iSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9zZWNvbmRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg0MjIyNTM3MDc5NTA2NjI5OSI+IuC7g+C6mSAxIOC6p+C6tCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ5NTg4MDEwODgyNTgwNTEwOCI+IuC7g+C6mSA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDguqfgurQiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU2Mjc4NjE0OTkyODI4NDg3OCI+IuC7g+C6mSAxIOC6meC6suC6l+C6tSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDIxNjExMzI5MjcwNjU2ODcyNiI+IuC7g+C6mSA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDgupngupciPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1faG91cnMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjc0NzA4MTE4MTI0MDQ1MjQ2Ij4i4LuD4LqZIDEg4LqK4Lq74LuI4Lqn4LuC4Lqh4LqHIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzNzA1MzczNzY2Nzk4MDEzNDA2Ij4i4LuD4LqZIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC6iuC6u+C7iOC6p+C7guC6oeC6hyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9kYXlzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMjE3ODU3NjI1NDM4NTczOTg1NSI+IuC6oeC6t+C7ieC6reC6t+C7iOC6mSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjk3MzA2Mjk2ODAzODM1NTk5MSI+IuC7g+C6mSA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDguqHgurfgu4kiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJwcmVwb3NpdGlvbl9mb3JfZGF0ZSIgbXNnaWQ9IjkwOTM5NDk3NTc3NTc0NDUxMTciPiLguqfgurHgupngupfgurUgPHhsaWZmOmcgaWQ9IkRBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl90aW1lIiBtc2dpZD0iNTUwNjgzMTI0NDI2MzA4Mzc5MyI+IuC7gOC6p+C6peC6siA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlcG9zaXRpb25fZm9yX3llYXIiIG1zZ2lkPSI1MDQwMzk1NjQwNzExODY3MTc3Ij4i4LuD4LqZIDx4bGlmZjpnIGlkPSJZRUFSIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXkiIG1zZ2lkPSI4MTQ0MTk1Nzc2MDU4MTE5NDI0Ij4i4Lqh4Lq34LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5cyIgbXNnaWQ9IjQ3NzQ1NDc2NjEwMjEzNDQ2MDIiPiLguqHgurfgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyIiBtc2dpZD0iMjEyNjc3MTkxNjQyNjE4OTQ4MSI+IuC6iuC6u+C7iOC6p+C7guC6oeC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJzIiBtc2dpZD0iODk0NDI0MDA1MjY2ODUyOTkzIj4i4LqK4Lq74LuI4Lqn4LuC4Lqh4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlIiBtc2dpZD0iOTE0ODg3ODY1NzcwMzc2OTg2OCI+IuC6meC6suC6l+C6tSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZXMiIG1zZ2lkPSI1NjQ2MDAxMDA1ODI3MDM0NTA5Ij4i4LqZ4LqXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vjb25kIiBtc2dpZD0iMzE4NDIzNTgwODAyMTQ3OCI+IuC6p+C6tCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlY29uZHMiIG1zZ2lkPSIzMTYxNTE1MzQ3MjE2NTg5MjM1Ij4i4Lqn4Lq0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2VlayIgbXNnaWQ9IjU2MTc5NjE1MzcxNzMwNjE1ODMiPiLguq3gurLgupfgurTgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWVrcyIgbXNnaWQ9IjY1MDk2MjM4MzQ1ODM5NDQ1MTgiPiLguq3gurLgupfgurTgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyIiBtc2dpZD0iNDAwMTExODIyMTAxMzg5MjA3NiI+IuC6m+C6tSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJzIiBtc2dpZD0iNjg4MTU3NzcxNzk5MzIxMzUyMiI+IuC6m+C6tCI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iZHVyYXRpb25fc2Vjb25kcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY5NjIwMTU1MjgzNzI5Njk0ODEiPiIxIOC6p+C6tOC6meC6suC6l+C6tSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTg4NjEwNzc2NjU3NzE2Njc4NiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC6p+C6tOC6meC6suC6l+C6tSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iZHVyYXRpb25fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ5MTU0MTQwMDI1NDYwODU2MTciPiIxIOC6meC6suKAi+C6l+C6tSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzE2NTE4NzE2OTIyNDkwODc3NSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC6meC6suC6l+C6tSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iZHVyYXRpb25faG91cnMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4OTE3NDY3NDkxMjQ4ODA5OTcyIj4iMSDguorgurvgu4jguqfigIvgu4LguqHguociPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM4NjM5NjI4NTQyNDY3NzM5MzAiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDguorgurvgu4jguqfgu4LguqHguociPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfdGl0bGUiIG1zZ2lkPSIzNTM0NTA5MTM1NDM4MzUzMDc3Ij4i4Lqa4Lqx4LqZ4Lqr4Lqy4Lqn4Lq04LqU4Lq14LuC4LqtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RleHRfaW52YWxpZF9wcm9ncmVzc2l2ZV9wbGF5YmFjayIgbXNnaWQ9IjMxODY2NzAzMzU5Mzg2NzA0NDQiPiLguqfgurTgupTgurXgu4Lguq3gupngurXgu4nguprgu43gu4jgupbgurfguoHgupXgu4nguq3guofguqrgurPguqXgurHguprguoHgurLgupnguqrgurDgu4HgupTguofgu4Pgupnguq3gurjgupvgurDguoHguq3gupngupngurXgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RleHRfdW5rbm93biIgbXNnaWQ9IjM0NTA0MzkxNTUxODc4MTAwODUiPiLguprgu43gu4jguqrgurLguqHgurLgupTguqvgurzgurTgu4ngupnguqfgurTgupTgurXgu4Lguq3gupngurXgu4ngu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX2J1dHRvbiIgbXNnaWQ9IjI4MjIyMzgyMTUxMDA2Nzk1OTIiPiLgupXgurvguoHguqXgurvguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGl2ZV90aW1lIiBtc2dpZD0iMTgxODU1NzE3NzgyOTQxMTQxNyI+Ijx4bGlmZjpnIGlkPSJEQVRFIj4lMSRzPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IlRJTUUiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9vbiIgbXNnaWQ9IjcyNDUzNTM1Mjg4MTg1ODc5MDgiPiLgupfgu4jgur3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJOb29uIiBtc2dpZD0iMzM0MjEyNzc0NTIzMDAxMzEyNyI+IuC6l+C7iOC6veC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pZG5pZ2h0IiBtc2dpZD0iNzE2NjI1OTUwODg1MDQ1NzU5NSI+IuC6l+C7iOC6veC6h+C6hOC6t+C6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Ik1pZG5pZ2h0IiBtc2dpZD0iNTYzMDgwNjkwNjg5Nzg5MjIwMSI+IuC6l+C7iOC6veC6h+C6hOC6t+C6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVsYXBzZWRfdGltZV9zaG9ydF9mb3JtYXRfbW1fc3MiIG1zZ2lkPSI0NDMxNTU1OTQzODI4NzExNDczIj4iPHhsaWZmOmcgaWQ9Ik1JTlVURVMiPiUxJDAyZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9IlNFQ09ORFMiPiUyJDAyZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGFwc2VkX3RpbWVfc2hvcnRfZm9ybWF0X2hfbW1fc3MiIG1zZ2lkPSIxODQ2MDcxOTk3NjE2NjU0MTI0Ij4iPHhsaWZmOmcgaWQ9IkhPVVJTIj4lMSRkPC94bGlmZjpnPjo8eGxpZmY6ZyBpZD0iTUlOVVRFUyI+JTIkMDJkPC94bGlmZjpnPjo8eGxpZmY6ZyBpZD0iU0VDT05EUyI+JTMkMDJkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdEFsbCIgbXNnaWQ9IjY4NzY1MTg5MjU4NDQxMjkzMzEiPiLgu4DguqXgurfguq3guoHgupfgurHguofgu53gurvgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjdXQiIG1zZ2lkPSIzMDkyNTY5NDA4NDM4NjI2MjYxIj4i4LqV4Lqx4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29weSIgbXNnaWQ9IjI2ODE5NDYyMjk1MzM1MTE5ODciPiLguqrgurPgu4DgupngurvgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXN0ZSIgbXNnaWQ9IjU2Mjk4ODA4MzY4MDUwMzY0MzMiPiLguqfgurLguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXBsYWNlIiBtc2dpZD0iNTc4MTY4NjA1OTA2MzE0ODkzMCI+IuC7geC6l+C6meC6l+C6teC7iOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZSIgbXNnaWQ9IjYwOTg2ODQ4NDQwMjE2OTc3ODkiPiLguqXgurbgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb3B5VXJsIiBtc2dpZD0iMjUzODIxMTU3OTU5NjA2NzQwMiI+IuC6quC6s+C7gOC6meC6u+C6siBVUkwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RUZXh0TW9kZSIgbXNnaWQ9IjEwMTg2OTE4MTUxNDMxNjUzMjYiPiLgu4DguqXgurfguq3guoHguoLgu43gu4nguoTguqfgurLguqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXh0U2VsZWN0aW9uQ0FCVGl0bGUiIG1zZ2lkPSI1MjM2ODUwMzk0MzcwODIwMzU3Ij4i4LqB4Lqy4LqZ4LuA4Lql4Lq34Lqt4LqB4LqC4LuN4LuJ4LqE4Lqn4Lqy4LqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkVG9EaWN0aW9uYXJ5IiBtc2dpZD0iNDM1MjE2MTUzNDUxMDA1Nzg3NCI+IuC7gOC6nuC6teC7iOC6oeC7hOC6m+C6l+C6teC7iOC6p+C6seC6lOC6iOC6sOC6meC6suC6meC6uOC6geC6u+C6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZVRleHQiIG1zZ2lkPSI2OTc5NjY4NDI4NDU4MTk5MDM0Ij4i4Lql4Lq24LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5wdXRNZXRob2QiIG1zZ2lkPSIxNjUzNjMwMDYyMzA0NTY3ODc5Ij4i4Lqu4Lq54Lqa4LuB4Lqa4Lqa4LqB4Lqy4LqZ4Lqb4LuJ4Lqt4LqZ4LqC4LuN4LuJ4Lqh4Lq54LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWRpdFRleHRNZW51VGl0bGUiIG1zZ2lkPSI0OTA5MTM1NTY0OTQxODE1NDk0Ij4i4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqC4Lqt4LqH4LqC4LuN4LuJ4LqE4Lqn4Lqy4LqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X2ludGVybmFsX3N0b3JhZ2Vfdmlld190aXRsZSIgbXNnaWQ9IjU1NzYyNzI0OTYzNjU2ODQ4MzQiPiLgup7gurfgu4ngupngupfgurXgu4jguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupnguoHgurPguqXgurHguofguojgurDgu4DgupXgurHguqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfaW50ZXJuYWxfc3RvcmFnZV92aWV3X3RleHQiIG1zZ2lkPSI2NjQwNTA1ODE3NjE3NDE0MzcxIj4i4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4Lqa4Lqy4LqH4Lqi4LuI4Lqy4LqH4LqC4Lqt4LqH4Lql4Lqw4Lqa4Lq74Lqa4Lqa4Lqy4LqH4Lqt4Lqy4LqU4LqI4Lqw4LuD4LqK4LuJ4Lqa4LuN4LuI4LuE4LqU4LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX3J1bm5pbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODcxODMzNTEyMTA2MDc4NzkxNCI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4g4LqB4Lqz4Lql4Lqx4LqH4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4Lqi4Lq54LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX3J1bm5pbmdfbm90aWZpY2F0aW9uX3RleHQiIG1zZ2lkPSI0NjUzNTg2OTQ3NzQ3MzMwMDU4Ij4i4LuB4LqV4Lqw4LuA4Lqe4Lq34LuI4Lqt4LuA4Lqa4Lq04LuI4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LuA4Lqe4Lq14LuI4Lqh4LuA4LqV4Lq14LqhIOC6q+C6vOC6t+C7gOC6nuC6t+C7iOC6reC6ouC6uOC6lOC6geC6suC6meC7gOC6ruC6seC6lOC6p+C6veC6geC6guC6reC6h+C7geC6reC6seC6muC6r+C6meC6teC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvayIgbXNnaWQ9IjU5NzAwNjA0MzA1NjI1MjQ5MTAiPiLgupXgurvguoHguqXgurvguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI2NDQyNTYwNTcxMjU5OTM1MTMwIj4i4LqN4Lq74LqB4LuA4Lql4Lq14LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVzIiBtc2dpZD0iNTM2Mjk4MjMwMzMzNzk2OTMxMiI+IuC6leC6u+C6geC6peC6u+C6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vIiBtc2dpZD0iNTE0MTUzMTA0NDkzNTU0MTQ5NyI+IuC6jeC6u+C6geC7gOC6peC6teC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpYWxvZ19hbGVydF90aXRsZSIgbXNnaWQ9IjIwNDk2NTg3MDg2MDkwNDMxMDMiPiLguoHgurDguqXgurjgupngurLguq7gurHguprguorgurLgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2FkaW5nIiBtc2dpZD0iNzkzMzY4MTI2MDI5NjAyMTE4MCI+IuC6geC6s+C6peC6seC6h+C7guC6q+C6peC6lC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGl0YWxfb24iIG1zZ2lkPSIxNTQ0NjgyNzU1NTE0NDk0Mjk4Ij4i4LuA4Lqb4Lq14LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwaXRhbF9vZmYiIG1zZ2lkPSI2ODE1ODcwMzg2OTcyODA1ODMyIj4i4Lqb4Lq04LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2hpY2hBcHBsaWNhdGlvbiIgbXNnaWQ9IjQ1MzMxODU5NDcwNjQ3NzMzODYiPiLgu4Dguq7gurHgupTguqfgur3guoHgu4Pguqvgu4nguqrgurPgu4DguqXgurHgupTgu4LgupTguo3gu4Pguorgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNVc2UiIG1zZ2lkPSI0NTgzMDE4MzY4MDAwNjEwNDM4Ij4i4LuD4LqK4LuJ4LuC4LqU4LqN4LqE4LuI4Lqy4LuA4Lql4Lq14LuI4Lqh4LqV4Lq74LqZ4Lqq4Lqz4Lql4Lqx4Lqa4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqZ4Lq14LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNsZWFyRGVmYXVsdEhpbnRNc2ciIG1zZ2lkPSIzMjUyNTg0Njg5NTEyMDc3MjU3Ij4i4Lql4Lq24Lqa4Lql4LuJ4Lqy4LqH4LqE4LuI4Lqy4LuA4Lql4Lq14LuI4Lqh4LqV4Lq74LuJ4LqZIOC7g+C6mSDguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLguqXgurDguprgurvgupogJmd0OyDgu4Hguq3gurHguprguq8gJmd0OyDgupTgurLguqfgu4LguqvguqXgupTgu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlQWN0aXZpdHkiIG1zZ2lkPSI3NDg2ODc2MTQ3NzUxODAzMzMzIj4i4LuA4Lql4Lq34Lqt4LqB4LqB4Lqy4LqZ4Lqb4Lqw4LqV4Lq04Lqa4Lqx4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlVXNiQWN0aXZpdHkiIG1zZ2lkPSI2ODk0NzQ4NDE2MDczNTgzNTA5Ij4i4LuA4Lql4Lq34Lqt4LqB4LuB4Lqt4Lqx4Lqa4Lqv4Lqq4LuN4Lqy4Lql4Lqx4Lqa4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vQXBwbGljYXRpb25zIiBtc2dpZD0iMjk5MTgxNDI3MzkzNjUwNDY4OSI+IuC6muC7jeC7iOC6oeC6teC7geC6reC6seC6muC6r+C7g+C6lOC6quC6suC6oeC6suC6lOC7gOC6ruC6seC6lOC6p+C6veC6geC6meC6teC7ieC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX3RpdGxlIiBtc2dpZD0iMTkwNTgwMDU2MDMxNzEzNzc1MiI+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX2FwcGxpY2F0aW9uIiBtc2dpZD0iOTMyNjI4NDg4MDEzMDkyNzc2Ij4i4LqC4LuN4Lqt4Lqw4LuE4LqeLCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IOC6ouC6uOC6lOC6geC6suC6meC7gOC6ruC6seC6lOC6p+C6veC6geC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX3Byb2Nlc3MiIG1zZ2lkPSI0NTA3MDU4OTk3MDM1Njk3NTc5Ij4i4LqC4LuN4Lqt4Lqw4LuE4LqeLCDgu4LgupvguqPgu4DguorguqogPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+IOC7hOC6lOC7ieC6ouC6uOC6lOC6geC6suC6meC7gOC6ruC6seC6lOC6p+C6veC6geC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfdGl0bGUiIG1zZ2lkPSI0MzUxOTQ4NDgxNDU5MTM1NzA5Ij48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hY3Rpdml0eV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjE5MDQ0NzcxODkwNTcxOTkwNjYiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUyJHM8L3hsaWZmOmc+IOC6muC7jeC7iOC6leC6reC6muC6quC6sOC7nOC6reC6hy4gXG5cbuC6l+C7iOC6suC6meC6leC7ieC6reC6h+C6geC6suC6meC6m+C6tOC6lOC6oeC6seC6meC6muC7jeC7iD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfYWN0aXZpdHlfcHJvY2VzcyIgbXNnaWQ9IjU3NzYyMDk4ODMyOTkwODk3NjciPiLguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoEgPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiDguprgu43gu4jgupXguq3guprguqrgurDgu5zguq3guocuIFxuXG4g4LqX4LuI4Lqy4LqZ4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4LqX4Lq14LuI4LqI4Lqw4Lqb4Lq04LqU4Lqh4Lqx4LqZ4Lqa4LuN4LuIPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hcHBsaWNhdGlvbl9wcm9jZXNzIiBtc2dpZD0iODk0MTc1NzYwNzM0MDQ4MTA1NyI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g4Lqa4LuN4LuI4LqV4Lqt4Lqa4Lqq4Lqw4Luc4Lqt4LqHLiDgupfgu4jgurLgupngupXgu4nguq3guofguoHgurLgupngupvgurTgupTguqHgurHgupnguprgu43gu4g/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX3Byb2Nlc3MiIG1zZ2lkPSI2NTEzMjA5ODc0ODgwNTE3MTI1Ij4i4LuC4Lqb4Lqj4LuA4LqK4LqqIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDguprgu43gu4jgupXguq3guprguqrgurDgu5zguq3guocuIFxuXG4g4LqX4LuI4Lqy4LqZ4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4Lqb4Lq04LqU4Lqh4Lqx4LqZ4Lqa4LuN4LuIPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcmNlX2Nsb3NlIiBtc2dpZD0iODM0NjA3MjA5NDUyMTI2NTYwNSI+IuC6leC6u+C6geC6peC6u+C6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlcG9ydCIgbXNnaWQ9IjQwNjAyMTgyNjA5ODQ3OTU3MDYiPiLguqXgurLguo3guofgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YWl0IiBtc2dpZD0iNzE0NzExODIxNzIyNjMxNzczMiI+IuC6peC7jeKAi+C6luC7ieC6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlYnBhZ2VfdW5yZXNwb25zaXZlIiBtc2dpZD0iMzI3Mjc1ODM1MTEzODEyMjUwMyI+IuC7nOC7ieC6suC7gOC6p+C6seC6muC6muC7jeC7iOC6leC6reC6muC6quC6sOC7nOC6reC6hy5cblxu4LqX4LuI4Lqy4LqZ4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4LqX4Lq14LuI4LqI4Lqw4Lqb4Lq04LqU4Lqh4Lqx4LqZ4Lqa4LuN4LuIPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX3RpdGxlIiBtc2dpZD0iMTU0Nzk5Nzc4MDUwNjcxMzU4MSI+IuC7geC6reC6seC6muC6r+C6luC6t+C6geC6m+C7iOC6veC6meC7gOC6quC6seC7ieC6meC6l+C6suC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX3JlcGxhY2UiIG1zZ2lkPSI2MjAyNDk4OTQ5OTcwMjgxNDEyIj4iPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiDguoHgurPguqXgurHguofgu4Dguq7gurHgupTguqfgur3guoHguqLgurngu4guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoX3dhcm5pbmdfb3JpZ2luYWwiIG1zZ2lkPSIxODgxMDIwMjMwMjE2Njg2ODMiPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+IOC7gOC6m+C6teC6lOC7g+C6iuC7ieC7hOC6p+C7ieC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fY29tcGF0X21vZGVfc2NhbGUiIG1zZ2lkPSIzMjAyOTU1NjY3Njc1OTQ0NDk5Ij4i4LqC4Lqw4Luc4Lqy4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX3Nob3ciIG1zZ2lkPSI0MDEzODc4ODc2NDg2NjU1ODkyIj4i4Lqq4Lqw4LuB4LqU4LqH4LqV4Lqw4Lqr4Lq84Lqt4LqU4LuA4Lqn4Lql4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX2hpbnQiIG1zZ2lkPSIxMDY0NTI0MDg0NTQzMzA0NDU5Ij4i4LuA4Lqb4Lq14LqU4LqB4Lqy4LqZ4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4LqZ4Lq14LuJ4LqE4Lq34LqZ4LuE4LqU4LuJ4LuD4LqZIOC6geC6suC6meC6leC6seC7ieC6h+C6hOC7iOC6suC6peC6sOC6muC6u+C6miAmZ3Q7IOC7geC6reC6seC6muC6ryAmZ3Q7IOC6lOC6suC6p+C7guC6q+C6peC6lOC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtdl9hcHBsaWNhdGlvbiIgbXNnaWQ9IjMzMDcyMDkxOTIxNTU0NDI4MjkiPiLgu4Hguq3gurHguprguq8gPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiAo4LuC4Lqb4Lqj4LuA4LqK4LqqIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMiRzPC94bGlmZjpnPikg4LuE4LqU4LuJ4Lql4Lqw4LuA4Lqh4Lq14LqU4LqZ4Lqw4LuC4LqN4Lqa4Lqy4LqNIFN0cmljdE1vZGUg4LqX4Lq14LuI4Lqa4Lqx4LqH4LqE4Lqx4Lqa4LuD4LqK4LuJ4LqU4LuJ4Lqn4LqN4LuC4LqV4LuA4Lqt4LqHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtdl9wcm9jZXNzIiBtc2dpZD0iNTEyMDM5NzAxMjA0NzQ2MjQ0NiI+IuC7guC6m+C6o+C7gOC6iuC6qiA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz4g4Lql4Lqw4LuA4Lqh4Lq14LqU4LqZ4Lqw4LuC4LqN4Lqa4Lqy4LqN4Lqa4Lqx4LqH4LqE4Lqx4Lqa4LuD4LqK4LuJ4LuA4Lqt4LqHIFN0cmljdE1vZGUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfdGl0bGUiIG1zZ2lkPSIxNTg0MTkyMjg1NDQxNDA1NzQ2Ij4i4LqB4Lqz4Lql4Lqx4LqH4Lqt4Lqx4Lqa4LuA4LqB4Lqj4LqUIEFuZHJvaWQuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19hcGsiIG1zZ2lkPSI3OTA0MDQyNjgyMTExNTI2MTY5Ij4i4LqB4Lqz4Lql4Lqx4LqH4Lqb4Lqx4Lqa4Lqb4Lq44LqH4Lqb4Lqw4Lqq4Lq04LqU4LqV4Lq04Lqe4Lqy4Lqa4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq1IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JTEkZDwveGxpZmY6Zz4g4LqI4Lqy4LqB4LqX4Lqx4LqH4Lud4Lq74LqUIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JTIkZDwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfc3RhcnRpbmdfYXBwcyIgbXNnaWQ9IjQ1MTQ2NDUxNjM0NjkyNjcxMyI+IuC6geC6s+C6peC6seC6h+C7gOC6m+C6teC6lOC7geC6reC6seC6muC6ry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19jb21wbGV0ZSIgbXNnaWQ9IjE0MDU5NTQ3NTQxMTI5OTkyMjkiPiLguoHgurPguqXgurHguofguqrgurPgu4DguqXgurHgupTguoHgurLgupngu4DgupvgurXgupTguqXgurDguprgurvgupouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X25vdGlmaWNhdGlvbiIgbXNnaWQ9IjkwODcwNjM5ODU3NzY2MjYxNjYiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lMSRzPC94bGlmZjpnPiDguoHgurPguqXgurHguofgu4Dguq7gurHgupTguqfgur3guoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfbm90aWZpY2F0aW9uX2RldGFpbCIgbXNnaWQ9IjE3MjE2ODE3NDE2MTc4OTg4NjUiPiLgu4HgupXgurDgu4Dgup7gurfgu4jguq3guqrgurDguqXgurHguprguoHgurHguprgu4TgupvguqvgurLgu4Hguq3gurHguprguq8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfc3dpdGNoZXJfdGl0bGUiIG1zZ2lkPSI3MTUzMTY3MDg1NDAzMjk4MTY5Ij4i4Lqq4Lqw4Lql4Lqx4Lqa4LuB4Lqt4Lqx4Lqa4Lqv4Lqa4LuN4LuIPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9zd2l0Y2hlcl90ZXh0IiBtc2dpZD0iNzAyMjYzMTkyNDUzNDQwNjQwMyI+IuC6l+C7iOC6suC6meC6iOC6sOC6leC7ieC6reC6h+C6ouC6uOC6lOC6meC6s+C7g+C6iuC7ieC7geC6reC6seC6muC6r+C7guC6leC6reC6t+C7iOC6meC6geC7iOC6reC6mSDguoHgu4jguq3gupngupfgurXgu4jgupfgu4jgurLgupnguojgurDgu4DgupvgurXgupTgu4Pguorgu4ngu4Hguq3gurHguprguq/gu4Pgu53gu4jgu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkX2FwcF9hY3Rpb24iIG1zZ2lkPSI0OTMxMjkxNzIyMzg1NjYyODIiPiLguoHgurHguprgu4TgupsgPHhsaWZmOmcgaWQ9Ik9MRF9BUFAiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkX2FwcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIwODIwOTQyNzU1ODAzNTgwNDkiPiLguqvgu4ngurLguqHgu4DgupvgurXgupTgu4Hguq3gurHguprguq/gu4Pgu53gu4guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmV3X2FwcF9hY3Rpb24iIG1zZ2lkPSI1NDcyNzU2OTI2OTQ1NDQwNzA2Ij4i4LuA4Lql4Lq14LuI4Lqh4LqV4Lq74LuJ4LqZIDx4bGlmZjpnIGlkPSJPTERfQVBQIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5ld19hcHBfZGVzY3JpcHRpb24iIG1zZ2lkPSIxOTMyMTQzNTk4MzcxNTM3MzQwIj4i4Lqi4Lq44LqU4LuB4Lqt4Lqx4Lqa4Lqv4LuA4LqB4Lq74LuI4Lqy4LuC4LqU4LqN4Lqa4LuN4LuI4LqV4LuJ4Lqt4LqH4Lqa4Lqx4LqZ4LqX4Lq24LqBLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbmRUZXh0IiBtc2dpZD0iNTIwOTg3NDU3MTk1OTQ2OTE0MiI+IuC7gOC6peC6t+C6reC6geC6geC6suC6meC7gOC6ruC6seC6lOC6p+C6veC6geC6guC6reC6h+C6guC7jeC7ieC6hOC6p+C6suC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9yaW5ndG9uZSIgbXNnaWQ9IjY4ODU0MjE0MDY4NDU3MzQ2NTAiPiLguqXgurDgupTgurHguprguqrgur3guofgu4Dguq3gurXgu4ngupngu4DguoLgurvgu4ngurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfbXVzaWMiIG1zZ2lkPSI1NDIxNjUxMTU3MTM4NjI4MTcxIj4i4Lql4Lqw4LqU4Lqx4Lqa4Lqq4Lq94LqH4LqC4Lqt4LqH4Lqq4Lq34LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljX2hpbnRfcGxheWluZ190aHJvdWdoX2JsdWV0b290aCIgbXNnaWQ9IjkxNjU5ODQzNzkzOTQ2MDE1MzMiPiLguoHgurPguqXgurHguofguqvgurzgurTgu4ngupngupzgu4jgurLgupkgQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljX2hpbnRfc2lsZW50X3Jpbmd0b25lX3NlbGVjdGVkIiBtc2dpZD0iODMxMDczOTk2MDk3MzE1NjI3MiI+IuC6leC6seC7ieC6h+C7g+C6q+C7ieC6muC7jeC7iOC6oeC6teC6quC6veC6h+C7gOC6reC6teC7ieC6meC7gOC6guC6u+C7ieC6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9jYWxsIiBtc2dpZD0iMzk0MTY4MDA0MTI4Mjc4ODcxMSI+IuC6peC6sOC6lOC6seC6muC6quC6veC6h+C7g+C6meC6geC6suC6meC7guC6lyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9ibHVldG9vdGhfY2FsbCIgbXNnaWQ9IjIwMDI4OTE5MjYzNTExNTE1MzQiPiLguqXgurDgupTgurHguprguprguqrgur3guocgQmx1ZXRvb3RoIOC7g+C6meC6guC6sOC6meC6sOC7guC6lyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9hbGFybSIgbXNnaWQ9IjE5ODUxOTE2MTYwNDI2ODkxMDAiPiLguqXgurDgupTgurHguprguqrgur3guofgu4Hguojgu4nguofgu4DgupXgurfguq3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfbm90aWZpY2F0aW9uIiBtc2dpZD0iMjQyMjI2NTY1Njc0NDI3NjcxNSI+IuC6peC6sOC6lOC6seC6muC6quC6veC6h+C7geC6iOC7ieC6h+C7gOC6leC6t+C6reC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV91bmtub3duIiBtc2dpZD0iMTQwMDIxOTY2OTc3MDQ0NTkwMiI+IuC6peC6sOC6lOC6seC6muC6quC6veC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX2JsdWV0b290aCIgbXNnaWQ9IjY1Mzg4OTQxNzcyNTU5NjQzNDAiPiLguqrgur3guofguoLguq3guocgQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2ljb25fZGVzY3JpcHRpb25fcmluZ2VyIiBtc2dpZD0iMzMyNjAwMzg0NzAwNjE2MjQ5NiI+IuC6peC6sOC6lOC6seC6muC6quC6veC6h+C7gOC6reC6teC7ieC6meC7gOC6guC6u+C7ieC6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX2luY2FsbCIgbXNnaWQ9Ijg4OTAwNzMyMTgxNTQ1NDMzOTciPiLguqXgurDgupTgurHguprguqrgur3guofguoHgurLgupngu4LgupciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9tZWRpYSIgbXNnaWQ9IjQyMTczMTE3MTk2NjUxOTQyMTUiPiLguqXgurDgupTgurHguprguqrgur3guofguoLguq3guofguqrgurfgu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9ub3RpZmljYXRpb24iIG1zZ2lkPSI3MDQ0OTg2NTQ2NDc3MjgyMjc0Ij4i4Lql4Lqw4LqU4Lqx4Lqa4Lqq4Lq94LqH4LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfZGVmYXVsdCIgbXNnaWQ9IjM3ODk3NTg5ODAzNTc2OTY5MzYiPiLguqPgurTguofgu4Lgupfgupngu4DguqXgurXgu4jguqHgupXgurvgu4ngupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV9kZWZhdWx0X3dpdGhfYWN0dWFsIiBtc2dpZD0iODEyOTU2MzQ4MDg5NTk5MDM3MiI+IuC6o+C6tOC6h+C7guC6l+C6meC7gOC6peC6teC7iOC6oeC6leC6u+C7ieC6mSAoPHhsaWZmOmcgaWQ9IkFDVFVBTF9SSU5HVE9ORSI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfc2lsZW50IiBtc2dpZD0iNzkzNzYzNDM5MjQwODk3NzA2MiI+IuC6muC7jeC7iOC6oeC6tSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX3BpY2tlcl90aXRsZSIgbXNnaWQ9IjM1MTUxNDM5MzkxNzUxMTkwOTQiPiLguqPgurTguofgu4LgupfgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV91bmtub3duIiBtc2dpZD0iNTQ3NzkxOTk4ODcwMTc4NDc4OCI+IuC6o+C6tOC6h+C7guC6l+C6meC6l+C6teC7iOC6muC7jeC7iOC6ruC6ueC7ieC6iOC6seC6gSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0id2lmaV9hdmFpbGFibGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NjU0MTIzOTg3NDE4MTY4NjkzIj4i4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqNIFdpLUZpIOC6l+C6teC7iOC6nuC6u+C6miI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDE5MjQyNDQ4OTE2ODM5NzM4NiI+IuC6oeC6teC7gOC6hOC6t+C6reC6guC7iOC6suC6jSBXaeKAiy1GaSDgu4Pguqvgu4ngu4Pguorgu4kiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9IndpZmlfYXZhaWxhYmxlX2RldGFpbGVkIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMTYzNDEwMTQ1MDM0MzI3NzM0NSI+IuC7gOC6m+C6teC6lCBXaS1GaSDgu4DguoTgurfguq3guoLgu4jgurLguo3gupfgurXgu4jguqHgurUiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc5MTU4OTUzMjM2NDQyOTI3NjgiPiLgu4DguoTgurfguq3guoLgu4jgurLguo0gV2ktRmkg4LuB4Lqa4Lqa4LuA4Lqb4Lq14LqU4LqX4Lq14LuI4Lqe4Lq74LqaIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9hdmFpbGFibGVfc2lnbl9pbiIgbXNnaWQ9IjQwMjk0ODk3MTY2MDUyNTUzODYiPiLgu4DguoLgurvgu4ngurLguqrgurngu4jguqXgurDguprgurvguprgu4DguoTgurfguq3guoLgu4jgurLguo0gV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXR3b3JrX2F2YWlsYWJsZV9zaWduX2luIiBtc2dpZD0iODQ5NTE1NTU5MzM1ODA1NDY3NiI+IuC7gOC6guC6u+C7ieC6suC6quC6ueC7iOC6peC6sOC6muC6u+C6muC7gOC6hOC6t+C6reC6guC7iOC6suC6jSI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBuZXR3b3JrX2F2YWlsYWJsZV9zaWduX2luX2RldGFpbGVkICg4MDAwMDgxOTQxNDQ3OTc2MTE4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkIiBtc2dpZD0iNzkwNDIxNDIzMTY1MTU0NjM0NyI+IuC6muC7jeC7iOC6quC6suC6oeC6suC6lOC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iCBXaS1GaSDgu4TgupTgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3dhdGNoZG9nX25ldHdvcmtfZGlzYWJsZWRfZGV0YWlsZWQiIG1zZ2lkPSI1NTQ4NzgwNzc2NDE4MzMyNjc1Ij4iIOC6oeC6teC6quC6seC6meC6jeC6suC6meC6reC6tOC6meC7gOC6leC6teC7gOC6meC6seC6lOC6l+C6teC7iOC6muC7jeC7iOC6lOC6tS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9kaWFsb2dfdGl0bGUiIG1zZ2lkPSI5NzYxMTc4MjY1OTMyNDUxNyI+IldpLUZpIERpcmVjdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX3R1cm5vbl9tZXNzYWdlIiBtc2dpZD0iMjkwOTI1MDk0MjI5OTYyNzI0NCI+IuC7gOC6peC6teC7iOC6oSBXaS1GaSBEaXJlY3QuIOC6meC6teC7ieC6iOC6sOC7gOC6m+C6seC6meC6geC6suC6meC6m+C6tOC6lCBXaS1GaSBjbGllbnQvaG90c3BvdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mYWlsZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NjM2Njk2Nzc5MzU2MjMwODQiPiLguprgu43gu4jguqrgurLguqHgurLgupTgu4DguqXgurXgu4jguqEgV2ktRmkgRGlyZWN0IOC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9lbmFibGVkX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIwNjgzMjE4ODE2NzM3MzQ4ODYiPiLgu4DgupvgurXgupTgu4Pguorgu4kgV2ktRmkgRGlyZWN0IOC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VuYWJsZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIxNjM4OTQ5OTUzOTkzODk0MzM1Ij4i4LuB4LqV4Lqw4LuA4Lqe4Lq34LuI4Lqt4LqV4Lqx4LuJ4LqH4LqE4LuI4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMTY0NTI2NzI1OTI3MjgyOTU1OSI+IuC6jeC6reC6oeC6ruC6seC6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlY2xpbmUiIG1zZ2lkPSIyMTEyMjI1NDUxNzA2MTM3ODk0Ij4i4Lqb4Lqw4LqV4Lq04LuA4Lqq4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfaW52aXRhdGlvbl9zZW50X3RpdGxlIiBtc2dpZD0iMTMxODk3NTE4NTExMjA3MDczNCI+IuC6geC6suC6meKAi+C7gOC6iuC6t+C7ieC6reKAi+C7gOC6iuC6teC6meKAi+C6luC6t+C6geC6quC6u+C7iOC6h+C7hOC6m+C7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ludml0YXRpb25fdG9fY29ubmVjdF90aXRsZSIgbXNnaWQ9IjQ5NTg4MDM5NDg2NTg1MzM2MzciPiLguoHgurLgupngu4DguorgurXgupnguorguqfgupngu4Dgup7gurfgu4jguq3gu4Dguorgurfgu4jguq3guqHgupXgu43gu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcm9tX21lc3NhZ2UiIG1zZ2lkPSI1NzAzODkxNzQ3MzE5NTE3NjkiPiLguojgurLguoE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfdG9fbWVzc2FnZSIgbXNnaWQ9IjI0ODk2ODk3NDUyMjA0NDA5OSI+IuC6iOC6suC6gToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9lbnRlcl9waW5fbWVzc2FnZSIgbXNnaWQ9IjU5MjA5Mjk1NTAzNjc4Mjg5NzAiPiLgup7gurTguqHguqXgurDguqvgurHgupQgUElOOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX3Nob3dfcGluX21lc3NhZ2UiIG1zZ2lkPSI4NTMwNTYzMzIzODgwOTIxMDk0Ij4iUElOOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MDEyOTgxMjU3NzQyMjMyNDc1Ij4i4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqI4Lqw4LqW4Lq34LqB4LqV4Lqx4LqU4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LqI4Lqy4LqBIFdpLUZpIOC7gOC6m+C6seC6meC6geC6suC6meC6iuC6u+C7iOC6p+C6hOC6suC6pyDgu4PgupnguoLgurDgupngurDgupfgurXgu4jguqHgurHgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4jguoHgurHgupogPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiDguqLgurngu4guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZnJlcXVlbmN5X2NvbmZsaWN0X21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MzYzOTA3MjEzNzg3NDY5MTUxIj4i4LuC4LqX4Lql4Lqw4Lqq4Lqx4Lqa4LqI4Lqw4LqW4Lq34LqB4Lqi4Lq44LqU4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LqK4Lq74LuI4Lqn4LqE4Lqy4Lqn4LqI4Lqy4LqBIFdpLUZpIOC7g+C6meC6guC6sOC6meC6sOC6l+C6teC7iOC6oeC6seC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6geC6seC6miA8eGxpZmY6ZyBpZD0iREVWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2NoYXJhY3RlciIgbXNnaWQ9IjMzNjU1NTAxMjA2MTc3MDE3NDUiPiLgu4Pguqrgu4jgu4LgupXguq3gurHguoHguqrguq3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF90aXRsZSIgbXNnaWQ9IjcyOTY2MTI3ODExMjg5MTc3MTkiPiLguoHgurPguqXgurHguofguqrgurvgu4jguofguoLgu43gu4nguoTguqfgurLguqEgU01TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfbWVzc2FnZSIgbXNnaWQ9IjM4Njc4OTkxNjk2NTE0OTY0MzMiPiImbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyDguoHgurPguqXgurHguofguqrgurvgu4jguofguoLgu43gu4nguoTguqfgurLguqEgU01TIOC6iOC6s+C6meC6p+C6meC6q+C6vOC6suC6jS4g4LqX4LuI4Lqy4LqZ4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqv4Lqq4Lq34Lqa4LqV4LuN4LuI4LqB4Lqy4LqZ4Lqq4Lq74LuI4LqH4LqC4LuN4LuJ4LqE4Lqn4Lqy4Lqh4Lqa4LuN4LuIPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX3llcyIgbXNnaWQ9IjM2NjM3MjU5OTM4NTU4MTY4MDciPiLguq3gurDgupngurjguo3gurLgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9ubyIgbXNnaWQ9IjYyNTQzODU2MTM5NTUzNDk4MiI+IuC6m+C6sOC6leC6tOC7gOC6quC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fbWVzc2FnZSIgbXNnaWQ9IjE2NDU0MzY0NjYyODUzMTA4NTUiPiImbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyDgupXgu4nguq3guofguoHgurLgupnguqrgurvgu4jguofguoLgu43gu4nguoTguqfgurLguqHguqvgurIgJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkRFU1RfQUREUkVTUyI+JTIkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSIzNDkyMDI1NzE5ODY4MDc4NDU3Ij4i4LqZ4Lq14LuJICI8Zm9udCBmZ2NvbG9yPSIjZmZmZmIwNjAiPiLguq3gurLgupTgu4Dguq7gurHgupTgu4Pguqvgu4ngu4DguoHgurXgupTguoTgu4jgurLgu4Pguorgu4nguojgu4jgurLguo0iPC9mb250PiIg4LuD4LqZ4Lqa4Lqx4LqZ4LqK4Lq14Lqh4Lq34LqW4Lq34LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19wcmVtaXVtX3Nob3J0X2NvZGVfZGV0YWlscyIgbXNnaWQ9IjU1MjM4MjYzNDkxMDUxMjM2ODciPjxmb250IGZnY29sb3I9IiNmZmZmYjA2MCI+IuC6oeC6seC6meC6iOC6sOC7gOC6ruC6seC6lOC7g+C6q+C7ieC6l+C7iOC6suC6meC7gOC6quC6jeC6hOC7iOC6suC6muC7jeC6peC6tOC6geC6suC6meC7g+C6meC6muC6seC6meC6iuC6teC6guC6reC6h+C6l+C7iOC6suC6mS4iPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9hbGxvdyIgbXNnaWQ9IjQ0NTg4Nzg2MzcxMTEwMjM0MTMiPiLguqrgurvgu4jguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2RlbnkiIG1zZ2lkPSIyOTI3Mzg5ODQwMjA5MTcwNzA2Ij4i4LqN4Lq74LqB4LuA4Lql4Lq14LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfcmVtZW1iZXJfY2hvaWNlIiBtc2dpZD0iNTI4OTUzODU5MjI3MjIxODEzNiI+IuC6iOC6t+C7iOC6geC6suC6meC7gOC6peC6t+C6reC6geC6guC6reC6h+C6guC7ieC6reC6jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX3VuZG9faW5zdHJ1Y3Rpb24iIG1zZ2lkPSI0OTYwOTQ0MTMzMDUyMjg3NDg0Ij4i4LqX4LuI4Lqy4LqZ4Lqq4Lqy4Lqh4Lqy4LqU4Lqb4LuI4Lq94LqZ4LuB4Lqb4LqH4LuC4LqV4LuA4Lql4Lq34Lqt4LqB4LqZ4Lq14LuJ4LuD4LqZ4Lqe4Lqy4LqN4Lqr4Lq84Lqx4LqH4LuE4LqU4LuJ4LuD4LqZIOC6geC6suC6meC6leC6seC7ieC6h+C6hOC7iOC6siAmZ3Q7IOC7geC6reC6seC6muC6ryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fYWx3YXlzX2FsbG93IiBtc2dpZD0iMzI0MTE4MTE1NDg2OTQ5MzM2OCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC6l+C6uOC6geC6hOC6seC7ieC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fbmV2ZXJfYWxsb3ciIG1zZ2lkPSI0NDY5OTI3NjU3NzQyNjk2NzMiPiLguprgu43gu4jguq3gurDgupngurjguo3gurLgupTgu4DgupTgurHgupTguoLgurLgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVtb3ZlZF90aXRsZSIgbXNnaWQ9IjYyMjc3MTIzMTkyMjMyMjYxODUiPiLgupbguq3gupQgU0lNIGNhcmQg4Lqt4Lqt4LqB4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX3JlbW92ZWRfbWVzc2FnZSIgbXNnaWQ9IjIzMzMxNjQ1NTk5NzA5NTg2NDUiPiLgu4DguoTgurfguq3guoLgu4jgurLguo3guqHgurfgupbgurfguojgurDguprgu43gu4jguqrgurLguqHgurLgupTgu4Pguorgu4ngu4TgupTgu4kg4LqI4Lq74LqZ4LqB4Lqn4LuI4Lqy4LqX4LuI4Lqy4LqZ4LqI4Lqw4Lqb4Lq04LqU4LuB4Lql4LuJ4Lqn4LuA4Lqb4Lq14LqU4LuD4Lud4LuI4Lqe4LuJ4Lqt4Lqh4LqB4Lqx4Lqa4LuD4Lqq4LuIIFNJTSBjYXJkIOC6l+C6teC7iOC6luC6t+C6geC6leC7ieC6reC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fZG9uZV9idXR0b24iIG1zZ2lkPSI4Mjc5NDk5ODkzNjk5NjM3NzUiPiLgu4HguqXgu4nguqfgu4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fYWRkZWRfdGl0bGUiIG1zZ2lkPSIzNzE5NjcwNTEyODg5Njc0NjkzIj4i4LuA4Lqe4Lq14LuI4Lqh4LqK4Lq04Lqh4LqB4Lqy4LqU4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX2FkZGVkX21lc3NhZ2UiIG1zZ2lkPSI2NTk5OTQ1MzAxMTQxMDUwMjE2Ij4i4Lqb4Lq04LqU4LuB4Lql4LuJ4Lqn4LuA4Lqb4Lq14LqU4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZIOC7gOC6nuC6t+C7iOC6reC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C7gOC6hOC6t+C6reC6guC7iOC6suC6jeC6oeC6t+C6luC6ty4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVzdGFydF9idXR0b24iIG1zZ2lkPSI0NzIyNDA3ODQyODE1MjMyMzQ3Ij4i4Lqj4Lq14Lqq4Lqw4LqV4Lqy4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODM0OTM2MjYyMzA2ODgxOTI5NSI+IuC6leC6seC7ieC6h+C7gOC6p+C6peC6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjU4Nzk0NTA2NTk0NTM3ODIyNzgiPiLguoHgu43gurLgupngurvgupTguqfgurHgupngupfgurUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3RpbWVfc2V0IiBtc2dpZD0iNTc3NzA3NTYxNDMyMTA4Nzc1OCI+IuC6leC6seC7ieC6h+C6hOC7iOC6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfdGltZV9kb25lIiBtc2dpZD0iMjUwNzY4Mzc1MTc1OTMwODgyOCI+IuC7geC6peC7ieC6p+C7hiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1zX25ld19wZXJtX3ByZWZpeCIgbXNnaWQ9IjgyNTc3NDA3MTA3NTQzMDE0MDciPjxmb250IHNpemU9IjEyIiBmZ2NvbG9yPSIjZmYzM2I1ZTUiPiLgu4Pgu53gu4g6ICI8L2ZvbnQ+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtc19kZXNjcmlwdGlvbl9hcHAiIG1zZ2lkPSI1MTM5ODM2MTQzMjkzMjk5NDE3Ij4i4Lqq4Lqw4Luc4Lqt4LqH4LuC4LqU4LqNIDx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4gLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX3Blcm1pc3Npb25zIiBtc2dpZD0iNzI4MzM1NzcyODIxOTMzODExMiI+IuC6muC7jeC7iOC6leC7ieC6reC6h+C6geC6suC6meC6geC6suC6meC6reC6sOC6meC6uOC6jeC6suC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1fY29zdHNfbW9uZXkiIG1zZ2lkPSI0OTAyNDcwMzI0MTQyMTUxMTE2Ij4i4Lql4Lqy4LqN4LqB4Lqy4LqZ4LqZ4Lq14LuJ4Lqt4Lqy4LqU4Lqh4Lq14LqB4Lqy4LqZ4LuA4LqB4Lqx4Lqa4LuA4LqH4Lq04LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfYWN0aXZpdHlfdGl0bGUiIG1zZ2lkPSI0NDY1MDU1MTU3MjA5NjQ4NjQxIj4i4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3RpdGxlIiBtc2dpZD0iNTkwMTQ1OTA0MTM5ODc1MTQ5NSI+IuC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iCBVU0Ig4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzMzA4NTM4MDk0MzE2NDc3ODM5Ij4i4LqX4LuI4Lqy4LqZ4LuE4LqU4LuJ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LqB4Lqx4Lqa4LqE4Lqt4Lqh4Lqe4Lq04Lqn4LuA4LqV4Lq14LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4Lqc4LuI4Lqy4LqZIFVTQiDgu4HguqXgu4nguqcuIOC7g+C6q+C7ieC7geC6leC6sOC6m+C6uOC7iOC6oeC6guC7ieC6suC6h+C6peC6uOC7iOC6oeC6luC7ieC6suC6l+C7iOC6suC6meC6leC7ieC6reC6h+C6geC6suC6meC6quC6s+C7gOC6meC6u+C6suC7hOC6n+C6peC7jCDguqXgurDguqvguqfgu4jgurLguofguoTguq3guqHgup7gurTguqfgu4DgupXgurUg4LuB4Lql4Lqw4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIFVTQiDguoLguq3guocgQW5kcm9pZCDgupfgu4jgurLgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgwNTM1MTAwMDQ0NjAzNzgxMSI+IuC6l+C7iOC6suC6meC7hOC6lOC7ieC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6geC6seC6muC6hOC6reC6oeC6nuC6tOC6p+C7gOC6leC6teC6guC6reC6h+C6l+C7iOC6suC6meC6lOC7ieC6p+C6jSBVU0Ig4LuB4Lql4LuJ4LqnLiDgu4Pguqvgu4ngupvgurjgu4jguqHgupfgurLguofgupTgu4ngurLgupnguqXgurjgu4jguqHgupngurXgu4nguqvgurLguoHgupfgu4jgurLgupngupXgu4nguq3guofguoHgurLgupkg4LqX4Lq14LuI4LqI4Lqw4Lqq4Lqz4LuA4LqZ4Lq74Lqy4LuE4Lqf4Lql4LuM4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lql4Lqw4Lqr4Lqn4LuI4Lqy4LqH4LqE4Lqt4Lqh4Lqe4Lq04Lqn4LuA4LqV4Lq1IOC7geC6peC6sCBTRCBjYXJkIOC6guC6reC6hyBBbmRyb2lkIOC6guC6reC6h+C6l+C7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9idXR0b25fbW91bnQiIG1zZ2lkPSIxMDUyMjU5OTMwMzY5NTA4MjM1Ij4i4LuA4Lqb4Lq14LqUIOC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMwMTcwNDUyMTczNjU1NDA2NTgiPiLguqHgurXguprgurHgupnguqvgurLgu4PgupnguoHgurLgupngu4Pguorgu4nguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupkgVVNCIOC6guC6reC6h+C6l+C7iOC6suC6meC7gOC6m+C6seC6meC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6meC6iOC6s+C6meC6p+C6meC6q+C6vOC6suC6jeC6lOC7ieC6p+C6jSBVU0IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfZXJyb3JfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4NzYwMTg1MTI3MTY5NzAzMTMiPiLguqHgurXguprgurHgupnguqvgurLgu4PgupnguoHgurLgupngu4Pguorgu4kgU0QgY2FyZCDguoLguq3guofgupfgu4jgurLgupngu4DgupvgurHgupnguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupnguojgurPgupnguqfgupnguqvgurzgurLguo3gupTgu4nguqfguo0gVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjgxNzU4OTI1NTQ3NTcyMTY1MjUiPiLgu4Dguorgurfgu4jguq3guqHgupXgu43gu4ggVVNCIOC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTM5ODIyNzgzODI4MTgzNzYzIj4i4LuB4LqV4Lqw4LuA4Lqe4Lq34LuI4Lqt4Lqq4Lqz4LuA4LqZ4Lq74Lqy4LuE4Lqf4Lql4LuMIOC7g+C6quC7iC/guojgurLguoEg4LqE4Lqt4Lqh4Lqe4Lq04Lqn4LuA4LqV4Lq14LqC4Lqt4LqH4LqX4LuI4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3Bfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjMzNjA1ODM5NjY2MzUxNjAxNyI+IuC6m+C6tOC6lOC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTY1Njg1MjA5ODU1NTYyMzgyMiI+IuC7geC6leC6sOC7gOC6nuC6t+C7iOC6reC6m+C6tOC6lCDguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupkgVVNCIC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX3RpdGxlIiBtc2dpZD0iNjYwMTI5ODUxNzA4Nzc1ODUzIj4i4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIFVTQiDguoHgurPguqXgurHguofgupbgurfguoHgupngurPgu4Pguorgu4nguqLgurngu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDI2NDAyNTI4MDc3NzIxOTUyMSI+IuC6geC7iOC6reC6meC6m+C6tOC6lOC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0IsIOC6luC6reC6mSAoXCJlamVjdFwiKSDguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupkgVVNCIOC6guC6reC6hyBBbmRyb2lkIOC6guC6reC6h+C6l+C7iOC6suC6meC6iOC6suC6geC6hOC6reC6oeC6nuC6tOC6p+C7gOC6leC6teC6guC6reC6h+C6l+C7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MDQzOTY5NzgyNDYwNjEzMTE0Ij4i4LqB4LuI4Lqt4LqZ4LqB4Lqy4LqZ4Lqb4Lq04LqU4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIFVTQiwg4LuD4Lqr4LuJ4LqW4Lqt4LqZ4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuIIChlamVjdCkgU0QgY2FyZCDguoLguq3guocgQW5kcm9pZCDgupfgu4jgurLgupnguq3guq3guoHguojgurLguoHguoTguq3guqHgup7gurTguqfgu4DgupXgurXguoHgu4jguq3gupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9idXR0b25fbW91bnQiIG1zZ2lkPSI3MDYwMjE4MDM0OTAwNjk2MDI5Ij4i4Lqb4Lq04LqU4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfZXJyb3JfbWVzc2FnZSIgbXNnaWQ9IjE5NzAzNzQ4OTgyNjMwNjM4MzYiPiLgu4DguoHgurXgupTguprgurHgupnguqvgurLgu4PgupnguoHgurLgupngupvgurTgupTguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupkgVVNCLiDgu4Pguqvgu4nguoHguqfgupTguqrguq3guprguqfgu4jgurLgupfgu4jgurLgupngu4TgupTgu4ngupbguq3gupnguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4ggVVNCIGhvc3Qg4LuB4Lql4LuJ4Lqn4Lqr4Lq84Lq34LqN4Lqx4LqHIOC6iOC6suC6geC6meC6seC7ieC6meC6iOC6tuC7iOC6h+C6peC6reC6h+C6reC6teC6geC6hOC6seC7ieC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfY29uZmlybV9raWxsX3N0b3JhZ2VfdXNlcnNfdGl0bGUiIG1zZ2lkPSI5NjMwMzkwMzM0NzA0Nzg2OTciPiLgu4DgupvgurXgupTgu4Pguorgu4nguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupkgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX2NvbmZpcm1fa2lsbF9zdG9yYWdlX3VzZXJzX3RleHQiIG1zZ2lkPSI1MTAwNDI4NzU3MTA3NDY5NDU0Ij4i4Lqr4Lqy4LqB4LqX4LuI4Lqy4LqZ4LuA4Lqb4Lq14LqU4LqZ4Lqz4LuD4LqK4LuJ4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIFVTQiDguojgurDgu4Dguq7gurHgupTgu4Pguqvgu4nguprgurLguofgu4Hguq3gurHguprguq/gupfgurXgu4jgupfgu4jgurLgupngu4Dguq7gurHgupTguqfgur3guoHguqLgurngu4jgupngurHgu4ngupkg4Lqi4Lq44LqU4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqBIOC7geC6peC6sOC6reC6suC6lOC6iOC6sOC6muC7jeC7iOC6quC6suC6oeC6suC6lOC7g+C6iuC7ieC7hOC6lOC7ieC6iOC6u+C6meC6geC6p+C7iOC6suC6l+C7iOC6suC6meC6m+C6tOC6lOC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0Ig4LqB4LuI4Lqt4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19lcnJvcl90aXRsZSIgbXNnaWQ9IjczMjM2NTg0Njk2MjY1MTQyMDciPiLgupvgurDgupXgurTguprgurHgupTguoHgurLgupkgVVNCIOC6muC7jeC7iOC6quC6s+C7gOC6peC6seC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19vayIgbXNnaWQ9IjczNzY5NTMxNjcwMzk4NjU3MDEiPiLgupXgurvguoHguqXgurvguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfbXRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjM2OTk5MTMwOTczOTE1NTAzOTQiPiLgu4Dguorgurfgu4jguq3guqHgupXgu43gu4jgu4DgupvgurHgupnguq3gurjgupvgurDguoHguq3gupnguqrgurfgu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjE5NjA4MTcxOTIyMTYwNjQ4MzMiPiLgu4Dguorgurfgu4jguq3guqHgupXgu43gu4jgu4DgupvgurHgupnguoHgu4nguq3guofgupbgu4jgurLguo3guq7gurnguprgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfY2RfaW5zdGFsbGVyX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY3NzQ3MTI4Mjc4OTIwOTA3NTQiPiLgu4Dguorgurfgu4jguq3guqHgupXgu43gu4jgu4PgupngupngurLguqHgupXgurvguqfgupXgurTgupTgupXgurHgu4nguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9Ijc4NDgyMzY5NzQwODc2NTM2NjYiPiLgu4Dguorgurfgu4jguq3guqHgupXgu43gu4jguoHgurHguprguq3gurjgupvgurDguoHguq3gupngu4DguqrgurXguqEgVVNCIOC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjIyOTA4NTkzOTk5ODM3MjAyNzEiPiLgu4HgupXgurDgu4Dgup7gurfgu4jguq3gu4DguprgurTgu4jguofgu4LgupXgu4DguqXgurfguq3guoHgu4DguqXgurfguq3guoEgVVNCIOC6reC6t+C7iOC6meC7hi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iOTAyMDA5MjE5NjA2MTAwNzI2MiI+IuC6n+C7jeC7geC6oeC6seC6lCDguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupkgVVNCPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2NDg0MTU5MjE1MjY1MjYwNjkiPiLgup/gu43gu4HguqHgurHgupQgU0QgY2FyZD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzOTM0MDE2ODUzNDI1NzYxMDc4Ij4i4LuE4Lqf4Lql4LuM4LqX4Lqx4LqH4Lud4Lq74LqU4LqX4Lq14LuI4Lqi4Lq54LuI4LuD4LqZ4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIFVTQiDguoLguq3guofgupfgu4jgurLgupnguojgurDgupbgurfguoHguqXgurbguprguq3guq3guoHgu53gurvgupQuIOC6geC6suC6meC6geC6sOC6l+C6s+C6iOC6sOC6muC7jeC7iOC6quC6suC6oeC6suC6lOC6jeC6u+C6geC7gOC6peC6teC6geC7hOC6lOC7iSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0MTMxODk1MDI3NTQzODMwIj4i4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lqx4LqH4Lud4Lq74LqU4LuD4LqZ4LqB4Lqy4LqU4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LqI4Lqw4Lqr4Lqy4LqN4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9idXR0b25fZm9ybWF0IiBtc2dpZD0iNDEzMTA2NDU2MDEyNzQ3ODY5NSI+IuC6n+C7jeC7geC6oeC6seC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkYl9hY3RpdmVfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjcyOTA0NDc3ODk0OTE4OTkxOCI+IuC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6geC6suC6meC6lOC6teC6muC6seC7iuC6geC6nOC7iOC6suC6mSBVU0Ig4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjEwMTY2NTQ2Mjc2MjY0NzYxNDIiPiLgu4HgupXgurDgu4Dgup7gurfgu4jguq3gupvgurTgupTguoHgurLgupngupTgurXguprgurHgu4rguoHgupzgu4jgurLgupkgVVNCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9pbnB1dF9tZXRob2QiIG1zZ2lkPSI0NjUzMzg3MzM2NzkxMjIyOTc4Ij4i4LuA4Lql4Lq34Lqt4LqB4Lqu4Lq54Lqa4LuB4Lqa4Lqa4LqB4Lqy4LqZ4Lqb4LuJ4Lqt4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSI5MDkxNjUyMTU3NzIyNDk1MTE2Ij4i4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4Lqn4Lq04LqX4Lq14LqB4Lqy4LqZ4Lqb4LuJ4Lqt4LqZ4LqC4LuN4LuJ4Lqh4Lq54LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNjIwMzExMjQ3ODA5NTExNzYyNSI+IuC7geC6m+C7ieC6meC6nuC6tOC6oeC7geC6l+C7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhhcmR3YXJlIiBtc2dpZD0iNzUxNzgyMTA4Njg4ODk5MDI3OCI+IuC6ruC6suC6lOC7geC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMTQwNzM2NzAxNzI2MzAzMDc3MyI+IuC7gOC6peC6t+C6reC6geC6ruC6ueC6muC7geC6muC6muC7geC6m+C7ieC6meC6nuC6tOC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDY1OTA3NzAwNDQ5MjU3MDYzIj4i4LqB4Lq74LqU4LuA4Lqe4Lq34LuI4Lqt4LuA4Lql4Lq34Lqt4LqB4Lqu4Lq54Lqa4LuB4Lqa4Lqa4LuB4Lqb4LuJ4LqZ4Lqe4Lq04LqhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhc3Rfc2Nyb2xsX2FscGhhYmV0IiBtc2dpZD0iNTQzMzI3NTQ4NTQ5OTAzOTE5OSI+IiBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhc3Rfc2Nyb2xsX251bWVyaWNfYWxwaGFiZXQiIG1zZ2lkPSI0MDMwMTcwNTI0NTk1MTIzNjEwIj4iIDAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmRpZGF0ZXNfc3R5bGUiIG1zZ2lkPSI0MzMzOTEzMDg5NjM3MDYyMjU3Ij48dT4i4LqV4Lq74Lqn4LuA4Lql4Lq34Lqt4LqBIjwvdT48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9jaGVja2luZ19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzQ0OTgxNjAwNTM1MTQ2ODU2MCI+IuC6geC6s+C6peC6seC6h+C6geC6veC6oeC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTQ1NzYwMzQxODk3MDk5NDA1MCI+IuC6geC6s+C6peC6seC6h+C6geC6sOC6geC6veC6oSBTRCBjYXJkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iODI4NzMxOTg4MjkyNjczNzA1MyI+IuC6geC6s+C6peC6seC6h+C6geC6p+C6lOC6q+C6suC6guC7jeC7ieC6nOC6tOC6lOC6nuC6suC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzc4ODA0MDc0NTY4NjIyOTMwNyI+IuC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0Ig4LuA4Lqb4Lq74LuI4Lqy4Lqr4Lqn4LuI4Lqy4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzgwNDc3ODM4MjQxMjEyOTk3Ij4iU0QgY2FyZCDguqvguqfgu4jgurLguofgu4Dgupvgurvgu4jgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3ODQwMTIxMDY3NDI3MjY5NTAwIj4i4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIFVTQiDguqvguqfgu4jgurLguofgu4Dgupvgurvgu4jgurIg4Lqr4Lq84Lq34Lqh4Lq14LuE4Lqf4Lql4LuM4Lql4Lqw4Lqa4Lq74Lqa4LqX4Lq14LuI4Lqa4LuN4LuI4Lqu4Lqt4LqH4Lqu4Lqx4LqaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODY0MTA2NTY0MTc4NjkyMzYwNCI+IlNEIGNhcmQg4Lqr4Lqn4LuI4Lqy4LqH4LuA4Lqb4Lq74LuI4LqyIOC6q+C6vOC6t+C6oeC6teC6peC6sOC6muC6u+C6muC7hOC6n+C6peC7jOC6l+C6teC7iOC6muC7jeC7iOC6ruC6reC6h+C6ruC6seC6mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjIwOTAwNDY3Njk1MzI3MTM1NjMiPiLguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupkgVVNCIOC6l+C6teC7iOC7gOC6quC6jeC6q+C6suC6jS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjQxMDcyMzkwNjAxOTEwMDE4OSI+IlNEIGNhcmQg4LqX4Lq14LuI4LuA4Lqq4LqN4Lqr4Lqy4LqNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIxNzk1OTE3NTc4Mzk1MzMzMjgwIj4i4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIFVTQiDgu4Dguqrguo3guqvgurLguo0uIOC6peC6reC6h+C6n+C7jeC7geC6oeC6seC6lOC6oeC6seC6meC6reC6teC6geC6hOC6seC7ieC6h+C7gOC6muC6tOC7iOC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNzUzODk4NTY3NTI1NTY4MjUzIj4iU0QgY2FyZCDgu4Dguqrguo3guqvgurLguo0uIOC6peC6reC6h+C6n+C7jeC7geC6oeC6seC6lOC6oeC6seC6meC6reC6teC6geC6hOC6seC7ieC6h+C7gOC6muC6tOC7iOC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMTY2MTY4MzAzMTMzMDk1MTA3MyI+IuC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0Ig4LqW4Lq34LqB4LqW4Lqt4LqU4Lqt4Lqt4LqB4LuB4Lqa4Lqa4Lqa4LuN4LuI4Lqb4Lqt4LqU4LuE4LqeIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjg3MjE1Mjg4MjYwNDQwNzgzNyI+IlNEIGNhcmQg4LqW4Lq34LqB4LqW4Lqt4LqU4Lqt4Lqt4LqB4LuC4LqU4LqN4Lqa4LuN4LuI4LqE4Lqy4LqU4LqE4Lq04LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDMyOTg0ODgxOTg2NTU5NDI0MSI+IuC6luC6reC6lOC6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0Ig4LqB4LuI4Lqt4LqZ4LqX4Lq14LuI4LqI4Lqw4LqW4Lqt4LqU4Lqt4Lqt4LqBIOC7gOC6nuC6t+C7iOC6reC6m+C7ieC6reC6h+C6geC6seC6meC6geC6suC6meC6quC6ueC6meC7gOC6quC6jeC6guC7jeC7ieC6oeC6ueC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcyNjAxODMyOTM3NDc0NDgyNDEiPiLgupbguq3gupnguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4ggU0QgY2FyZCDguoHgu4jguq3gupnguojgurDgupbguq3gupTguq3guq3guoHgu4Dgup7gurfgu4jguq3gupvgu4nguq3guofguoHgurHgupnguoHgurLgupnguqrgurngupngu4Dguqrguo3guoLgu43gu4nguqHgurngupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzk2Nzk3Mzg5MzI3MDM2MDIzMCI+IuC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0Ig4Lqq4Lqy4Lqh4Lqy4LqU4LqW4Lqt4LqU4Lqt4Lqt4LqB4LuE4LqU4LuJ4Lqi4LuI4Lqy4LqH4Lqb4Lqt4LqU4LuE4LqeIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NzI5ODAxMTMwNzkwNjE2MjAwIj4i4Lqq4Lqy4Lqh4Lqy4LqU4LqW4Lqt4LqUIFNEIGNhcmQg4Lqt4Lqt4LqB4LuE4LqU4LuJ4Lqb4Lqt4LqU4LuE4Lqe4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MTQyMTk1MzYxNjA2NDkzNTMwIj4i4LqX4LuI4Lqy4LqZ4Lqq4Lqy4Lqh4Lqy4LqU4LqW4Lqt4LqU4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIFVTQiDguq3guq3guoHgu4TgupTgu4nguqLgu4jgurLguofgupvguq3gupTgu4Tgup4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU2ODg0MTI3ODEzODM3NzYwNCI+IuC6l+C7iOC6suC6meC6quC6suC6oeC6suC6lOC6luC6reC6lCBTRCBjYXJkIOC6reC6reC6geC7hOC6lOC7ieC6ouC7iOC6suC6h+C6m+C6reC6lOC7hOC6ni4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDQ4NjM3NzIzMDE0MDIyNzY1MSI+IuC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0Ig4LqW4Lq34LqB4LqW4Lqt4LqU4Lqt4Lqt4LqB4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODkwMjUxODAzMDQwNDM4MTMxOCI+IlNEIGNhcmQg4LqW4Lq34LqB4LqW4Lqt4LqU4Lqt4Lqt4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjkyMTEyNjE2MjU4MDU3NDE0MyI+IuC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6muC6seC6guC7jeC7ieC6oeC6ueC6mSBVU0Ig4LqW4Lq34LqB4LqW4Lqt4LqU4Lqt4Lqt4LqB4LuB4Lql4LuJ4LqnLiDgu4Pguqvgu4ngu4Pguqrgu4jguq3gurHgupngu4Pgu53gu4jgu4DguoLgurvgu4ngurLgu4TgupsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzODcwMTIwNjUyOTgzNjU5NjQxIj4iU0QgY2FyZCDgupbgurfguoHgupbguq3gupTguq3guq3guoHgu4HguqXgu4nguqcuIOC6geC6sOC6peC6uOC6meC6suC7g+C6quC7iOC6reC6seC6meC7g+C7neC7iC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9saXN0X2VtcHR5IiBtc2dpZD0iMTY3NTM4ODMzMDc4Njg0MTA2NiI+IuC6muC7jeC7iOC6nuC6u+C6muC6geC6tOC6lOC6iOC6sOC6geC6s+C6l+C6teC7iOC6geC6u+C6h+C6geC6seC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BrZ1VzYWdlU3RhdHMiIG1zZ2lkPSI4Nzg3MzUyMDc0MzI2NzQ4ODkyIj4i4Lqt4Lqx4Lqa4LuA4LqU4LqU4Lqq4Lqw4LqW4Lq04LqV4Lq04LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4Lqt4Lq74LqH4Lqb4Lqw4LqB4Lqt4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGtnVXNhZ2VTdGF0cyIgbXNnaWQ9IjExMDY2MTI0MjQyNTQyNzc2MzAiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq/gu4HguoHgu4ngu4TguoLguqrgurDgupbgurTgupXgurQg4LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqq4LuI4Lqn4LqZ4Lqb4Lqw4LqB4Lqt4Lqa4LqX4Lq14LuI4LuA4LqB4Lqx4Lqa4LqB4Lqz4Lqh4LqyLiDgu4Hguq3gurHguprguq/gupfgurvgu4jguqfgu4Tgupvguprgu43gu4jguojgurPgu4DgupvgurHgupngupXgu4nguq3guofgu4Pguorgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzNDEwMzYzMTEyMTE0MDY2OTIiPiLguqrgurPgu4DgupngurvgurLgu4Dgupngurfgu4nguq3guqvgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzOTA2OTcxMjQyODgzMTc4MzEiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4nguq7gu4nguq3guofguoLgu43guprgu43guqXgurTguoHgurLgupnguoTguq3gupngu4DgupfgurHgupngu4DgupngurXguqvgurzgurHguoEg4LuD4LqZ4LqB4Lqy4LqZ4Lqq4Lqz4LuA4LqZ4Lq74Lqy4LuA4LqZ4Lq34LuJ4Lqt4Lqr4LqyLiDguprgu43gu4jgu4Pguorgu4ngu4Pgupngu4Hguq3gurHguprguq/gupfgurvgu4jguqfgu4TgupsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yb3V0ZV9tZWRpYV9vdXRwdXQiIG1zZ2lkPSIxNjQyMDI0NDU1NzUwNDE0Njk0Ij4i4LqB4Lqz4LqZ4Lq74LqU4LuA4Lqq4Lqx4LuJ4LqZ4LqX4Lqy4LqH4LuA4Lqt4Lq74LuJ4Lqy4Lqe4Lq44LqU4LqC4Lqt4LqH4Lqq4Lq34LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfcm91dGVfbWVkaWFfb3V0cHV0IiBtc2dpZD0iNDkzMjgxODc0OTU0NzI0NDM0NiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6mSDguoHgurPgupngurvgupTgu4DguqrgurHgu4ngupngupfgurLguofgu4Dguq3gurvgu4ngurLgup7gurjgupTguoLguq3guofguqrgurfgu4jgu4TgupvguqvgurLguq3gurjgupvgurDguoHguq3gupngup7gurLguo3gupnguq3guoHguq3gurfgu4jgupngu4YuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3Nfa2V5Z3VhcmRfc2VjdXJlX3N0b3JhZ2UiIG1zZ2lkPSI3NTY1NTUyMjM3OTc3ODE1MDQ3Ij4i4LuA4LqC4Lq74LuJ4Lqy4LuD4LqK4LuJ4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqE4Lqn4Lqy4Lqh4Lqb4Lqt4LqU4LuE4Lqe4LqE4Lq14LqB4Lqy4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzX2tleWd1YXJkX3NlY3VyZV9zdG9yYWdlIiBtc2dpZD0iNTg2NjI0NTQ4NDMwMzI4NTc2MiI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6mSDgu4DguoLgurvgu4ngurLgu4DgupbgurTguofguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupnguoTguqfgurLguqHgupvguq3gupTgu4Tgup7gupTgu4nguqfguo3guoTgurXguoHgurLgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sX2tleWd1YXJkIiBtc2dpZD0iMTcyMTk1MTg0MjA3ODI4Mzg3Ij4i4LqE4Lqn4Lqa4LqE4Lq44Lqh4LqB4Lqy4LqZ4Lqq4Lqw4LuB4LqU4LqHIOC7geC6peC6sOC6geC6suC6meC7gOC6iuC6t+C7iOC6reC6h+C7guC6leC6peC6seC6reC6geC6m+C6uOC7iOC6oeC6geC6u+C6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbnRyb2xfa2V5Z3VhcmQiIG1zZ2lkPSIzMDQzNzMyMjkwNTE4NjI5MDYxIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4Lqq4Lqy4Lqh4Lqy4LqU4LqE4Lqn4Lqa4LqE4Lq44Lqh4LqE4Lq14LqB4Lqy4LqU4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InR1dG9yaWFsX2RvdWJsZV90YXBfdG9fem9vbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNDA3MDQzMzIwODE2MDA2MzUzOCI+IuC7geC6leC6sOC6quC6reC6h+C7gOC6l+C6t+C7iOC6reC6quC6s+C6peC6seC6muC6geC6suC6meC6hOC6p+C6muC6hOC6uOC6oeC6geC6suC6meC6iuC6ueC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdhZGdldF9ob3N0X2Vycm9yX2luZmxhdGluZyIgbXNnaWQ9IjQ4ODIwMDQzMTQ5MDY0NjYxNjIiPiLguprgu43gu4jguqrgurLguqHgurLgupTgu4Dgup7gurXgu4jguqHguqfgurTgupTgu4DguojgurHgupTgu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9nbyIgbXNnaWQ9IjgzMjA4NDU2NTE3MzczNjkwMjciPiLgu4TgupsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3NlYXJjaCIgbXNnaWQ9IjY1ODExMDI3MTgyMjgwNzgxMSI+IuC6iuC6reC6geC6q+C6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fc2VuZCIgbXNnaWQ9IjIzMTYxNjY1NTYzNDkzMTQ0MjQiPiLguqrgurvgu4jguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX25leHQiIG1zZ2lkPSIzMTM4ODQzOTA0MDA5ODEzODM0Ij4i4LqV4LuN4LuI4LuE4LqbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9kb25lIiBtc2dpZD0iODk3MTUxNjExNzkxMDkzNDYwNSI+IuC7geC6peC7ieC6p+C7hiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fcHJldmlvdXMiIG1zZ2lkPSIxNDQzNTUwMDM5MjUwMTA1OTQ4Ij4i4LqB4LuI4Lqt4LqZ4Luc4LuJ4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9kZWZhdWx0IiBtc2dpZD0iMjg0MDkyMTg4NTU1ODA0NTcyMSI+IuC6lOC6s+C7gOC6meC6teC6meC6geC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpYWxfbnVtYmVyX3VzaW5nIiBtc2dpZD0iNTc4OTE3NjQyNTE2NzU3MzU4NiI+IuC6geC6u+C6lOC7gOC6peC6geC7neC6suC6jVxu4LuC4LqU4LqN4LuD4LqK4LuJIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9jb250YWN0X3VzaW5nIiBtc2dpZD0iNDk0NzQwNTIyNjc4ODEwNDUzOCI+IuC6quC7ieC6suC6h+C6peC6suC6jeC6iuC6t+C7iOC6nOC6ueC7iOC6leC6tOC6lOC6leC7jeC7iFxu4LuC4LqU4LqN4LqB4Lqy4LqZ4LuD4LqK4LuJIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW50X2NyZWRlbnRpYWxzX3Blcm1pc3Npb25fbWVzc2FnZV9oZWFkZXIiIG1zZ2lkPSIyMTA2MTAzODE3OTM3ODU5NjYyIj4i4Lqh4Lq14LqZ4Lq24LuI4LqH4LuB4Lqt4Lqx4Lqa4LqvIOC6q+C6vOC6t+C6q+C6vOC6suC6jeC6geC6p+C7iOC6suC6meC6seC7ieC6meC6geC6s+C6peC6seC6h+C6ruC7ieC6reC6h+C6guC7jeC6geC6suC6meC6reC6sOC6meC6uOC6jeC6suC6lCDgu4Dgup7gurfgu4jguq3gu4DguoLgurvgu4ngurLgu4DgupbgurTguofguprgurHgupnguorgurXguoLguq3guofgupfgu4jgurLgupngu4PgupngupXguq3gupngupngurXgu4kg4LuB4Lql4Lqw4Lqt4Lqw4LqZ4Lqy4LqE4Lq74LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW50X2NyZWRlbnRpYWxzX3Blcm1pc3Npb25fbWVzc2FnZV9mb290ZXIiIG1zZ2lkPSIzMTI1MjExMzQzMzc5Mzc2NTYxIj4i4LqX4LuI4Lqy4LqZ4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4Lqt4Lqw4LqZ4Lq44Lqh4Lqx4LqU4LqE4Lqz4Lqu4LuJ4Lqt4LqH4LqC4LuN4LqZ4Lq14LuJ4Lqa4LuN4LuIPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW50X3Blcm1pc3Npb25zX2hlYWRlcl90ZXh0IiBtc2dpZD0iNjg3NDQ5NzQwODIwMTgyNjcwOCI+IuC6hOC7jeC6suC6ruC7ieC6reC6h+C6guC7jeC6geC6suC6meC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93IiBtc2dpZD0iNzIyNTk0ODgxMTI5NjM4NjU1MSI+IuC6reC6sOC6meC6uOC6jeC6suC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnkiIG1zZ2lkPSIyMDgxODc5ODg1NzU1NDM0NTA2Ij4i4Lqb4Lqw4oCL4LqV4Lq04oCL4LuA4Lqq4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWlzc2lvbl9yZXF1ZXN0X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY0ODY3NTk3OTU5MjYyMzc5MDciPiLgupXgu4nguq3guofguoHgurLgupnguoHgurLgupnguq3gurDgupngurjguo3gurLgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtaXNzaW9uX3JlcXVlc3Rfbm90aWZpY2F0aW9uX3dpdGhfc3VidGl0bGUiIG1zZ2lkPSI4NTMwMzkzMTM5NjM5NTYwMTg5Ij4i4Lqu4LuJ4Lqt4LqH4LqC4LuN4LqB4Lqy4LqZ4LqB4Lqz4LqZ4Lq74LqU4Lqq4Lq04LqUXG7guqrgurPguqXgurHguprguprgurHgupnguorgurUgPHhsaWZmOmcgaWQ9IkFDQ09VTlQiPiVzPC94bGlmZjpnPiDgu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5wdXRfbWV0aG9kX2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSIxMjgzNTU3MTc5OTQ0OTkyNjQ5Ij4i4Lqn4Lq04LqX4Lq14LqB4Lqy4LqZ4Lqb4LuJ4Lqt4LqZ4LqC4LuN4LuJ4Lqh4Lq54LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY19iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMzY4Nzk2OTEzODM3NTA5MjQyMyI+IuC6iuC6tOC7ieC6h+C6guC7jeC7ieC6oeC6ueC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjQxNDgxMjA3NDIwOTY0NzQ2NDEiPiLguoHgurLgupnguorgu4jguqfguo3gu4DguoLgurvgu4ngurLgu4DgupbgurTguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YWxscGFwZXJfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjEyNDAwODc4NDQzMDQ2ODc2NjIiPiLgup7gurLguprgup7gurfgu4ngupnguqvgurzgurHguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VyX3dhbGxwYXBlciIgbXNnaWQ9Ijc4NzM0NzYxOTkyOTUxOTAyNzkiPiLgupvgu4jgur3gupngup7gurLguprgup7gurfgu4ngupnguqvgurzgurHguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub3RpZmljYXRpb25fbGlzdGVuZXJfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjIwMTQxNjI4MzU0ODE5MDY0MjkiPiLgu4LgupXgup/gurHguofguoHgurLgupngu4Hguojgu4nguofgu4DgupXgurfguq3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGl0bGUiIG1zZ2lkPSIxOTYxNTIxMzU1MjA0MjgyNyI+IuC7gOC6m+C6teC6lOC6meC6s+C7g+C6iuC7iSBWUE4g4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RpdGxlX2xvbmciIG1zZ2lkPSI2NDAwNzE0Nzk4MDQ5MjUyMjk0Ij4i4LuA4Lqb4Lq14LqU4LuD4LqK4LuJIFZQTiDgu4LgupTguo0gPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RleHQiIG1zZ2lkPSIzMDExMzA2NjA3MTI2NDUwMzIyIj4i4LuB4LqV4Lqw4LuA4Lqe4Lq34LuI4Lqt4LqI4Lqx4LqU4LqB4Lqy4LqZ4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90ZXh0X2xvbmciIG1zZ2lkPSI2NDA3MzUxMDA2MjQ5MTc0NDczIj4i4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4Lqi4Lq54LuI4LqB4Lqx4LqaIDx4bGlmZjpnIGlkPSJTRVNTSU9OIj4lczwveGxpZmY6Zz4uIOC7geC6leC6sOC7gOC6nuC6t+C7iOC6reC6iOC6seC6lOC6geC6suC6meC7gOC6hOC6t+C6reC6guC7iOC6suC6jS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29ubmVjdGluZyIgbXNnaWQ9IjY0NDM0Mzg5NjQ0NDA5NjA3NDUiPiLguoHgurPguqXgurHguofgu4Dguorgurfgu4jguq3guqHgupXgu43gu4ggQWx3YXlzLW9uIFZQTuKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0ZWQiIG1zZ2lkPSI4MjAyNjc5Njc0ODE5MjEzOTMxIj4i4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuIIFZQTiDgu4Hguprguprgu4DgupvgurXgupTgupXgurDguqvgurzguq3gupTgu4DguqfguqXgurLgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fZXJyb3IiIG1zZ2lkPSI2MDA5MjQ5ODE0MDM0NzA4MTc1Ij4iVlBOIOC7geC6muC6muC7gOC6m+C6teC6lOC6leC6sOC6q+C6vOC6reC6lOC7gOC6geC6teC6lOC6hOC6p+C6suC6oeC6nOC6tOC6lOC6nuC6suC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25maWciIG1zZ2lkPSI2NDE1ODk5MTUwNjcxNTM3OTcwIj4i4LuB4LqV4Lqw4LuA4Lqe4Lq34LuI4Lqt4Lqb4Lqx4Lqa4LqE4LuI4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXBsb2FkX2ZpbGUiIG1zZ2lkPSIyODk3OTU3MTcyMzY2NzMwNDE2Ij4i4LuA4Lql4Lq34Lqt4LqB4LuE4Lqf4Lql4LuMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fZmlsZV9jaG9zZW4iIG1zZ2lkPSI2MzYzNjQ4NTYyMTcwNzU5NDY1Ij4i4Lqa4LuN4LuI4LuE4LqU4LuJ4LuA4Lql4Lq34Lqt4LqB4LuE4Lqf4Lql4LuM4LuA4LqX4Lq34LuI4LqtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzZXQiIG1zZ2lkPSIyNDQ4MTY4MDgwOTY0MjA5OTA4Ij4i4Lqj4Lq14LuA4LqK4Lqx4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3VibWl0IiBtc2dpZD0iMTYwMjMzNTU3MjA4OTkxMTk0MSI+IuC6quC6u+C7iOC6h+C6guC7jeC7ieC6oeC6ueC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcl9tb2RlX2Rpc2FibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMzE2NDc2ODIxMjAwMzg2NDMxNiI+IuC7guC6q+C6oeC6lOC6guC6seC6muC6peC6u+C6lOC6luC6t+C6geC7gOC6m+C6teC6lOC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcl9tb2RlX2Rpc2FibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI4MDM1MjMwNTM3NTYzNTAzMjYyIj4i4LqB4Lq74LqU4LuA4Lqe4Lq34LuI4Lqt4Lqb4Lq04LqU4LuC4Lqr4Lqh4LqU4LqC4Lqx4Lqa4Lql4Lq74LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRldGhlcmVkX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjMxNDY2OTQyMzQzOTgyMDI2MDEiPiLguoHgurLgupngupvgu4jguq3guo3guqrgurHgupnguo3gurLgupkg4Lqr4Lq84Lq34Lqu4Lqx4Lqt4LqU4Lqq4Lqw4Lqb4Lqt4LqU4LqX4Lq14LuI4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4Lqi4Lq54LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV0aGVyZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI2ODU3MDMxNzYwMTAzMDYyOTgyIj4i4LuB4LqV4Lqw4LuA4Lqe4Lq34LuI4Lqt4LqV4Lq04LqU4LqV4Lqx4LuJ4LqHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2tfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMjMwMDQ3MDAwNDUwMzM0MzQzOSI+IuC6geC6seC6muC6hOC6t+C6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5leHRfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTA4MDU1NTEwNDY3Nzk5MjQwOCI+IuC6leC7jeC7iOC7hOC6myI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNraXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTI3NTM2MjI5OTQ3MTYzMTgxOSI+IuC6guC7ieC6suC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlX3dhcm5pbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNDg5MDg5NDI2NzQ1NDg2NzI3NiI+IuC6oeC6teC6geC6suC6meC7g+C6iuC7ieC6reC6tOC6meC7gOC6leC6teC7gOC6meC6seC6lOC6q+C6vOC6suC6jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlX3dhcm5pbmdfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIzMzQwODIyMjI4NTk5MzM3NzQzIj4i4LuB4LqV4Lqw4LuA4Lqe4Lq34LuI4Lqt4Lqq4Lq24LqB4Lqq4Lqy4LuA4Lqe4Lq14LuI4Lqh4LuA4LqV4Lq14Lqh4LqB4LuI4Lq94Lqn4LqB4Lqx4Lqa4LqB4Lqy4LqZ4LuD4LqK4LuJ4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqh4Lq34LqW4Lq3LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2MjY5NTQxODk3NzI5NzgxMzMyIj4i4LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4Lqt4Lq04LqZ4LuA4LqV4Lq14LuA4LqZ4Lqx4LqU4Lqu4Lqt4LqU4LqC4Lq14LqU4LqI4Lqz4LqB4Lqx4LqU4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGhyb3R0bGVkX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iNTQ0MzQ1NzMyMTM1NDkwNzE4MSI+IuC7geC6leC6sOC7gOC6nuC6t+C7iOC6reC6quC6tuC6geC6quC6suC7gOC6nuC6teC7iOC6oeC7gOC6leC6teC6oeC6geC7iOC6veC6p+C6geC6seC6muC6geC6suC6meC6meC6s+C7g+C6iuC7ieC6guC7jeC7ieC6oeC6ueC6meC6oeC6t+C6luC6ty4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19tYXRjaGVzIiBtc2dpZD0iODEyOTQyMTkwODkxNTg0MDczNyI+IuC6muC7jeC7iOC6nuC6u+C6muC6nOC6u+C6meC6geC6suC6meC6iuC6reC6geC6q+C6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmRfb25fcGFnZSIgbXNnaWQ9IjE5NDY3OTkyMzM4MjI4MjAzODQiPiLguorguq3guoHgu4Pgupngu5zgu4ngurIiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9Im1hdGNoZXNfZm91bmQiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTY3MTQ3MDgxMTM2NTc5NDM5Ij4iMSDguoHgurvguofguoHgurHgupkiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ2NDE4NzI3OTcwNjc2MDkxNzciPiI8eGxpZmY6ZyBpZD0iSU5ERVgiPiVkPC94bGlmZjpnPiDguojgurLguoHgupfgurHguofgu53gurvgupQgPHhsaWZmOmcgaWQ9IlRPVEFMIj4lZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fbW9kZV9kb25lIiBtc2dpZD0iNzIxNzU4MTY0MDQ2MTkyMjI4OSI+IuC7geC6peC7ieC6p+C7hiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkyMzgxMDQ0ODUwNzYxMjc0NiI+IuC6geC6s+C6peC6seC6h+C6luC6reC6meC6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0Ig4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfdW5tb3VudGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjEzMjc4OTQ5OTg0MDk1MzcxOTAiPiLgupbguq3gupnguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4ggU0QgY2FyZC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX2VyYXNpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDUyMTU3MzMyMTUyNDM0MDA1OCI+IuC6geC6s+C6peC6seC6h+C6peC6tuC6miDguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupkgVVNCIOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX2VyYXNpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NTk2OTg4ODc1NTA3MDQzMDQyIj4i4LqB4Lqz4Lql4Lqx4LqH4Lql4Lq24Lqa4oCLIFNEIGNhcmQuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmb3JtYXRfZXJyb3IiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjI5OTc2OTU2MzYyNDc3Njk0OCI+IuC6muC7jeC7iOC6quC6suC6oeC6suC6lOC6peC6tuC6muC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0Ig4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcm1hdF9lcnJvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMTUyNDg2OTY2NDQ1MTA5MzUiPiLguprgu43gu4jguqrgurLguqHgurLgupTguqXgurbgupogU0QgY2FyZCDgu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfYmFkX3JlbW92YWwiIG1zZ2lkPSI3OTYwODY0MDYxMDE2NjAzMjgxIj4iU0QgY2FyZCDgupbgurfguoHgupbguq3gupTguq3guq3guoHguoHgu4jguq3gupnguoHgurLgupngupbguq3gupnguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfY2hlY2tpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDE4MTg4NzIwMDA5NTY5NjkzIj4i4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqB4Lqz4Lql4Lqx4LqH4Lqi4Lq54LuI4LuD4LqZ4Lql4Lqw4Lqr4Lqn4LuI4Lqy4LqH4LqB4Lqy4LqZ4LqB4Lqn4LqU4Lqq4Lqt4LqaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2NoZWNraW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzMzNDc2MjUwMzkwNDgyNzQ4MSI+IuC6geC6s+C6peC6seC6h+C6geC6p+C6lOC6quC6reC6miBTRCBjYXJkIOC6ouC6ueC7iOC7g+C6meC6guC6sOC6meC6sOC6meC6teC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yZW1vdmVkIiBtc2dpZD0iNzAwMTUyNjkwNTA1Nzk1MjA5NyI+IlNEIGNhcmQg4LqW4Lq34LqB4LqW4Lqt4LqU4Lqt4Lqt4LqB4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3NoYXJlZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI1ODMwODE0MzQ5MjUwODM0MjI1Ij4i4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIFVTQiDguoHgurPguqXgurHguofgupbgurfguoHgupngurPgu4Pguorgu4ngu4LgupTguo3guoTguq3guqHgup7gurTguqfgu4DgupXgurUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfc2hhcmVkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTcwNjEzMDU2ODEzMzU0MDQzNSI+IlNEIGNhcmQg4LqB4Lqz4Lql4Lqx4LqH4LqW4Lq34LqB4LqZ4Lqz4LuD4LqK4LuJ4LuC4LqU4LqN4LqE4Lqt4Lqh4Lqe4Lq04Lqn4LuA4LqV4Lq14Lqi4Lq54LuILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3Vua25vd25fc3RhdGUiIG1zZ2lkPSI3MjkxOTI3ODIxOTcyOTAzODUiPiLguoLgu43gu4nguqHgurngupngup7gurLguo3gupnguq3guoHguqLgurngu4jgu4PgupnguqrgurDgupbgurLgupngurDgupfgurXgu4jguprgu43gu4jguq7gurngu4nguojgurHguoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmUiIG1zZ2lkPSIxNzc4Njg2NjE4MjMwMDExOTY0Ij4i4LuB4Lqa4LuI4LqH4Lqb4Lqx4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZCIgbXNnaWQ9IjQ4MDgyNzA5MDAzMjI5ODU5NjAiPiLguorguq3guoHguqvgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWJzZWFyY2giIG1zZ2lkPSI0MzM3MTU3OTc3NDAwMjExNTg5Ij4i4LqK4Lqt4LqB4Lqr4Lqy4LuA4Lqn4Lqx4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZF9uZXh0IiBtc2dpZD0iNTc0MjEyNDYxODk0MjE5Mzk3OCI+IuC6iuC6reC6geC6q+C6suC6leC7jeC7iOC7hOC6myI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmRfcHJldmlvdXMiIG1zZ2lkPSIyMTk2NzIzNjY5Mzg4MzYwNTA2Ij4i4LqK4Lqt4LqB4LqB4LuI4Lqt4LqZ4Luc4LuJ4Lqy4LqZ4Lq14LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZUaWNrZXIiIG1zZ2lkPSI1NjIyNjgzOTEyNjE2NDk2MTcyIj4i4LqE4Lqz4Lqu4LuJ4Lqt4LqH4LqC4LuN4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4LqI4Lqy4LqBIDx4bGlmZjpnIGlkPSJOQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNOb3RpZlRpdGxlIiBtc2dpZD0iNTQ0Njg1ODcxNzE1NzQxNjgzOSI+IuC6ruC7ieC6reC6h+C6guC7jeC6quC6sOC6luC6suC6meC6l+C6teC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc05vdGlmTWVzc2FnZSIgbXNnaWQ9IjEzNzQ3MTgwMjMyMjQwMDA3MDIiPiLguq7gu4nguq3guofguoLgu43gu4LgupTguo0gPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+ICg8eGxpZmY6ZyBpZD0iU0VSVklDRSI+JTIkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzVmVyaWZZZXMiIG1zZ2lkPSIyMzQ2NTY2MDcyODY3MjEzNTYzIj4i4LqV4Lq74LqB4Lql4Lq74LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzVmVyaWZObyIgbXNnaWQ9IjExNDY1NjQ5MzczNDY0NTQ4NjUiPiLguprgu43gu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzeW5jX3Rvb19tYW55X2RlbGV0ZXMiIG1zZ2lkPSI1Mjk2MzIxODUwNjYyNzQ2ODkwIj4i4LqB4Lqy4LqN4LuA4LqC4LqU4LqB4Lqz4LqZ4Lq74LqU4LqB4Lqy4LqZ4Lql4Lq24LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzX2Rlc2MiIG1zZ2lkPSI0OTY1NTE2NzEwMDg2OTQyNDUiPiLguqHgurUgPHhsaWZmOmcgaWQ9Ik5VTUJFUl9PRl9ERUxFVEVEX0lURU1TIj4lMSRkPC94bGlmZjpnPiDguqXgurLguo3guoHgurLgupngupfgurXgu4jgupbgurfguoHguqXgurbguprguqrgurPguqXgurHgupogPHhsaWZmOmcgaWQ9IlRZUEVfT0ZfU1lOQyI+JTIkczwveGxpZmY6Zz4sIOC6muC6seC6meC6iuC6tSA8eGxpZmY6ZyBpZD0iQUNDT1VOVF9OQU1FIj4lMyRzPC94bGlmZjpnPi4g4LqX4LuI4Lqy4LqZ4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4LqI4Lqw4LuA4Lqu4Lqx4LqU4LuB4LqZ4Lqn4LuD4LqUPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfcmVhbGx5X2RlbGV0ZSIgbXNnaWQ9IjI1NzI2MDAxMDMxMjI1OTYyNDMiPiLguqXgurbguprguqXgurLguo3guoHgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzeW5jX3VuZG9fZGVsZXRlcyIgbXNnaWQ9IjI5NDEzMTczNjA2MDAzMzg2MDIiPiLguo3gurvguoHgu4DguqXgurXguoHguoHgurLgupnguqXgurbgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzeW5jX2RvX25vdGhpbmciIG1zZ2lkPSIzNzQzNzY0NzQwNDMwODIxODQ1Ij4i4Lqa4LuN4LuI4LuA4Lqu4Lqx4LqU4Lqr4LqN4Lqx4LqH4LuD4LqZ4LqV4Lqt4LqZ4LqZ4Lq14LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX2FjY291bnRfbGFiZWwiIG1zZ2lkPSI1NjU1MjAzMDg5NzQ2NDIzOTI3Ij4i4LuA4Lql4Lq34Lqt4LqB4Lqa4Lqx4LqZ4LqK4Lq1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX2FjY291bnRfbGFiZWwiIG1zZ2lkPSIyOTM1MjY3MzQ0ODQ5OTkzNTUzIj4i4LuA4Lqe4Lq14LuI4Lqh4Lqa4Lqx4LqZ4LqK4Lq1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX2FjY291bnRfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMzYxMTk4Mjg5NDg1MzQzNTg3NCI+IuC7gOC6nuC6teC7iOC6oeC6muC6seC6meC6iuC6tSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfaW5jcmVtZW50X2J1dHRvbiIgbXNnaWQ9IjI0MTIwNzIyNzI4MzIyODQzMTMiPiLgu4Dgup7gurXgu4jguqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJudW1iZXJfcGlja2VyX2RlY3JlbWVudF9idXR0b24iIG1zZ2lkPSI0NzYwNTA3NzgzODY3NzkwNjciPiLgupvgurHguprguqXgurvguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJudW1iZXJfcGlja2VyX2luY3JlbWVudF9zY3JvbGxfbW9kZSIgbXNnaWQ9IjMwNzMxMDEwNjc0NDE2Mzg0MjgiPiI8eGxpZmY6ZyBpZD0iVkFMVUUiPiVzPC94bGlmZjpnPiDguqrgurPgup7gurHgupTguoTgu4ngurLguofgu4Tguqfgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfc2Nyb2xsX2FjdGlvbiIgbXNnaWQ9IjkxMDE0NzMwNDU4OTE4MzU0OTAiPiLgu4DguqXgurfgu4jguq3gupnguoLgurbgu4ngupngu4Dgup7gurfgu4jguq3gu4Dgup7gurXgu4jguqEg4LuB4Lql4Lqw4LuA4Lql4Lq34LuI4Lqt4LqZ4Lql4Lq74LqH4LuA4Lqe4Lq34LuI4Lqt4Lqr4Lq84Lq44LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2luY3JlbWVudF9taW51dGVfYnV0dG9uIiBtc2dpZD0iODg2NTg4NTExNDAyODYxNDMyMSI+IuC7gOC6nuC6teC7iOC6oeC6meC6suC6l+C6tSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2RlY3JlbWVudF9taW51dGVfYnV0dG9uIiBtc2dpZD0iNjI0NjgzNDkzNzA4MDY4NDc5MSI+IuC6m+C6seC6muC6meC6suC6l+C6teC6peC6u+C6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2luY3JlbWVudF9ob3VyX2J1dHRvbiIgbXNnaWQ9IjM2NTIwNTYwNTU4MTAyMjMxMzkiPiLgu4Dgup7gurXgu4jguqHguorgurvgu4jguqfgu4LguqHguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfaG91cl9idXR0b24iIG1zZ2lkPSIxMzc3NDc5ODYzNDI5MjE0NzkyIj4i4Lqr4Lq84Lq44LqU4LqK4Lq74LuI4Lqn4LuC4Lqh4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfaW5jcmVtZW50X3NldF9wbV9idXR0b24iIG1zZ2lkPSI0MTQ3NTkwNjk2MTUxMjMwODYzIj4i4LqV4Lqx4LuJ4LqHIFBNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGVjcmVtZW50X3NldF9hbV9idXR0b24iIG1zZ2lkPSI4MzAyMTQwMzUzNTM5NDg2NzUyIj4i4LqV4Lqx4LuJ4LqHIEFNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X21vbnRoX2J1dHRvbiIgbXNnaWQ9IjUzNjk5OTg0NzkwNjc5MzQxMTAiPiLgu4Dgup7gurXgu4jguqHguojgurPgupnguqfgupngu4DgupTgurfguq3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kZWNyZW1lbnRfbW9udGhfYnV0dG9uIiBtc2dpZD0iMTgzMjY5ODk5NTU0MTcyNjAxOSI+IuC6q+C6vOC6uOC6lOC7gOC6lOC6t+C6reC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2luY3JlbWVudF9kYXlfYnV0dG9uIiBtc2dpZD0iNzEzMDQ2NTQxMjMwODE3MzkwMyI+IuC7gOC6nuC6teC7iOC6oeC6iOC6s+C6meC6p+C6meC6oeC6t+C7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF9kYXlfYnV0dG9uIiBtc2dpZD0iNDEzMTg4MTUyMTgxODc1MDAzMSI+IuC6q+C6vOC6uOC6lOC6iOC6s+C6meC6p+C6meC6oeC6t+C7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2luY3JlbWVudF95ZWFyX2J1dHRvbiIgbXNnaWQ9IjYzMTg2OTczODQzMTA4MDg4OTkiPiLgu4Dgup7gurXgu4jguqHgupvgurXguoLgurbgu4ngupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kZWNyZW1lbnRfeWVhcl9idXR0b24iIG1zZ2lkPSI0NDgyMDIxODEzNDkxMTIxNzE3Ij4i4Lqr4Lq84Lq44LqU4LqI4Lqz4LqZ4Lqn4LqZ4Lqb4Lq1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfYWx0IiBtc2dpZD0iNDg1Njg2ODgyMDA0MDA1MTkzOSI+IkFsdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2NhbmNlbCIgbXNnaWQ9IjEyMDM5ODQwMTcyNDU3ODMyNDQiPiLguo3gurvguoHgu4DguqXgurXguoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kZWxldGUiIG1zZ2lkPSIzMzM3OTE0ODMzMjA2NjM1NzQ0Ij4i4Lql4Lq24LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZG9uZSIgbXNnaWQ9IjE5OTI1NzExMTg0NjY2Nzk3NzUiPiLgu4HguqXgu4nguqfgu4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9tb2RlX2NoYW5nZSIgbXNnaWQ9IjQ1NDczODc3NDE5MDY1Mzc1MTkiPiLgupvgu4jgur3gupnguq7gurnguprgu4HguprgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkVudGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4i4LuA4Lql4Lq34Lqt4LqB4LuB4Lqt4Lqx4Lqa4LqvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4i4LuB4Lqa4LuI4LqH4Lqb4Lqx4LqZ4LqB4Lqx4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IuC7geC6muC7iOC6h+C6m+C6seC6meC7g+C6q+C7iSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+IuC7gOC6peC6t+C7iOC6reC6meC6muC7iOC6reC6meC6luC6tyDgu4HguqXgu4nguqfgu4HgupXgurDguoTgu4ngurLguofgu4Tguqfgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3VwIiBtc2dpZD0iNzE2OTAzMjQ3ODI1OTQ4NTE4MCI+IuC7gOC6peC6t+C7iOC6reC6meC6guC6tuC7ieC6meC7gOC6nuC6t+C7iOC6rSA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2Rvd24iIG1zZ2lkPSI1MDg3NzM5NzI4NjM5MDE0NTk1Ij4i4LuA4Lql4Lq34LuI4Lqt4LqZ4Lql4Lq74LqH4LuA4Lqe4Lq34LuI4LqtIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fbGVmdCIgbXNnaWQ9IjcyMDc0Nzg3MTk4MDU1NjIxNjUiPiLgu4DguqXgurfgu4jguq3gupngu4TgupvgupfgurLguofguorgu4ngurLguo3gu4Dgup7gurfgu4jguq0gPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiLgu4DguqXgurfgu4jguq3gupngu4TgupvgupfgurLguofguoLguqfgurLgu4Dgup7gurfgu4jguq0gPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF91bmxvY2siIG1zZ2lkPSIyMjI4NTI0OTAwNDM5ODAxNDUzIj4i4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X2NhbWVyYSIgbXNnaWQ9Ijk2OTA3MTk5NzU1MjQ4NjgxNCI+IuC6geC7ieC6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zaWxlbnQiIG1zZ2lkPSI4OTM1NTEyODc3NDY1MjIxODIiPiLgupvgurTgupTguqrgur3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4i4LuA4Lqb4Lq14LqU4Lqq4Lq94LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiLguorguq3guoHguqvgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrX3RhYmxldCIgbXNnaWQ9IjM4MzMxOTUzMzU2Mjk3OTUwNTUiPiLgupvgurHgupTgu4Dgup7gurfgu4jguq3gupvgurvgupTguqXgurHguq3guoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfaGVhZHNldF9yZXF1aXJlZF90b19oZWFyX3Bhc3N3b3JkIiBtc2dpZD0iNzAxMTkyNzM1MjI2NzY2ODY1NyI+IuC6quC6veC6muC6quC6suC6jeC6q+C6ueC6n+C6seC6h+C7gOC6nuC6t+C7iOC6reC6n+C6seC6h+C6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9wYXNzd29yZF9jaGFyYWN0ZXJfbm9faGVhZHNldCIgbXNnaWQ9IjI4NTk4NzM3NzA4ODYxNTM2NzgiPiLguojgu43gu4ngurLgu4DguqHgurHgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTI5MzYwMDQ5NjYwMTQ5MDIxNiI+IuC6geC6seC6muC7hOC6m+C7nOC7ieC6suC6q+C6vOC6seC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMjM3NDk2NTYyOTUyMTUyNTg5Ij4i4LqC4Lq24LuJ4LqZ4LuA4LqX4Lq04LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX21lbnVfb3ZlcmZsb3dfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMjk1NjU5MDM3NTA5MDA4NDUzIj4i4LuC4LqV4LuA4Lql4Lq34Lqt4LqB4Lqt4Lq34LuI4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX2Rlc2NyaXB0aW9uX2Zvcm1hdCIgbXNnaWQ9Ijc5NjU5ODQzNjA5MDM2OTM5MDMiPiIlMSRzLCAlMiRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX3N1YnRpdGxlX2Rlc2NyaXB0aW9uX2Zvcm1hdCIgbXNnaWQ9IjY5ODU1NDY1MzA0NzE3ODA3MjciPiIlMSRzLCAlMiRzLCAlMyRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RvcmFnZV9pbnRlcm5hbCIgbXNnaWQ9IjQ4OTE5MTY4MzM2NTc5MjkyNjMiPiLguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguoLgu43gu4nguqHgurngupngup7gurLguo3gu4PgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3NkX2NhcmQiIG1zZ2lkPSIzMjgyOTQ4ODYxMzc4Mjg2NzQ1Ij4iU0QgY2FyZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfdXNiIiBtc2dpZD0iMzAxNzk1NDA1OTUzODUxNzI3OCI+IuC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6guC7jeC7ieC6oeC6ueC6mSBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRyYWN0X2VkaXRfbWVudV9idXR0b24iIG1zZ2lkPSI4OTQwNDc4NzMwNDk2NjEwMTM3Ij4i4LuB4LqB4LuJ4LuE4LqCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV93YXJuaW5nX3RpdGxlIiBtc2dpZD0iMTk1NTYzODg2MjEyMjIzMjM0MiI+IuC7gOC6leC6t+C6reC6meC6geC7iOC6veC6p+C6geC6seC6muC6geC6suC6meC6meC6s+C7g+C6iuC7ieC6guC7jeC7ieC6oeC6ueC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2FybmluZ19ib2R5IiBtc2dpZD0iMjgxNDY3MzU1MTQ3MTk2OTk1NCI+IuC7geC6leC6sOC7gOC6nuC6t+C7iOC6reC7gOC6muC6tOC7iOC6h+C6geC6suC6meC6meC6s+C7g+C6iuC7iSDgu4HguqXgurDguoHgurLgupngupXgurHgu4nguofguoTgu4jgurIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV8zZ19saW1pdF90aXRsZSIgbXNnaWQ9IjcwOTMzMzQ0MTk1MTg3MDY2ODYiPiLgupvgurTgupTguoHgurLgupngupngurPgu4Pguorgu4nguoLgu43gu4nguqHgurngupkgMkctM0ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzRnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzYzNjQ4OTQzNjgxOTQ3MDc2MSI+IuC6geC6suC6meC6meC6s+C7g+C6iuC7ieC6guC7jeC7ieC6oeC6ueC6mSA0RyDgupbgurfguoHgupvgurTgupTgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX21vYmlsZV9saW1pdF90aXRsZSIgbXNnaWQ9Ijc4Njk0MDI1MTkzOTE2MzE4ODQiPiLguoLgu43gu4nguqHgurngupnguqHgurfgupbgurfgupbgurfguoHgupvgurTgupTgu4Tguqfgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfdGl0bGUiIG1zZ2lkPSI4OTkyMTU0NzM2NDQxMjg0ODY1Ij4i4Lqb4Lq04LqU4LqC4LuN4LuJ4Lqh4Lq54LqZIFdpLUZpIOC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbGltaXRfYm9keSIgbXNnaWQ9IjMzMTc5NjQ3MDY5NzM2MDEzODYiPiLgu4HgupXgurDgu4Dgup7gurfgu4jguq3gu4DgupvgurXgupTgu4Pguorgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV8zZ19saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iNzAyNjczOTEyMTEzODAwNTIzMSI+IuC6guC7jeC7ieC6oeC6ueC6mSAyRy0zRyDguq7guq3gupTguoLgurXgupTguojgurPguoHgurHgupTgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzRnX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSIxMTA2NTYyNzc5MzExMjA5MDM5Ij4i4Lud4Lq74LqU4LqB4Lqz4LqZ4Lq74LqU4LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4LqC4LuN4LuJ4Lqh4Lq54LqZIDRHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9tb2JpbGVfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjI3OTI0MDU3MjE2NTQxMjE2OCI+IuC7neC6u+C6lOC6geC6s+C6meC6u+C6lOC6geC6suC6meC6meC6s+C7g+C6iuC7ieC6guC7jeC7ieC6oeC6ueC6meC7g+C6meC6oeC6t+C6luC6tyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2lmaV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iODc0Mzg1NjAwNjM4NDgyNTk3NCI+IuC7neC6u+C6lOC6geC7jeC6suC6meC6u+C6lOC6geC6suC6meC6meC6s+C7g+C6iuC7ieC6guC7jeC7ieC6oeC6ueC6mSBXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbGltaXRfc25vb3plZF9ib2R5IiBtc2dpZD0iNzAzNTQ5MDI3ODI5ODQ0MTc2NyI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lczwveGxpZmY6Zz4g4LuA4LqB4Lq14LqZ4LqX4Lq14LuI4LqB4LuN4Lqy4oCL4LqZ4Lq74LqU4LuE4Lqn4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfcmVzdHJpY3RlZF90aXRsZSIgbXNnaWQ9IjU5NjUxNTczNjEwMzYzMjE5MTQiPiLguoLgu43gu4nguqHgurngupngu4HguprgurHguoHguoHguqPgurLguqfgupbgurfguoHguojgurPguoHgurHgupTgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3Jlc3RyaWN0ZWRfYm9keSIgbXNnaWQ9IjY3NDE1MjEzMzA5OTc0NTI5OTAiPiLgu4HgupXgurDgu4Dgup7gurfgu4jguq3gu4Dguq3gurvgurLguoHgurLgupnguojgurPguoHgurHgupTguq3guq3guoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2VydGlmaWNhdGUiIG1zZ2lkPSI2NTEwMDQwNDg2MDQ5MjM3NjM5Ij4i4LuD4Lqa4Lqu4Lqx4Lqa4Lqu4Lqt4LqH4LqE4Lqn4Lqy4Lqh4Lqb4Lqt4LqU4LuE4LqeIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NlcnRpZmljYXRlX2lzX3ZhbGlkIiBtc2dpZD0iNjgyNTI2MzI1MDc3NDU2OTM3MyI+IuC7g+C6muC6ruC6seC6muC6ruC6reC6h+C6muC7jeC7iOC6luC6t+C6geC6leC7ieC6reC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfdG8iIG1zZ2lkPSI0NTQyMzk0ODAyNzQ5MjEwMzIiPiLguq3guq3guoHgu4Pguqvgu4ngu4HguoHgu4g6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tbW9uX25hbWUiIG1zZ2lkPSIyMjMzMjA5Mjk5NDM0MTcyNjQ2Ij4i4LqK4Lq34LuI4Lqq4Lqy4Lqh4Lqx4LqZOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ19uYW1lIiBtc2dpZD0iNjk3MzU2MTE5MDc2MjA4NTIzNiI+IuC6reC6u+C6h+C6geC6reC6mToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdfdW5pdCIgbXNnaWQ9IjcyNjU5ODE4OTA0MjIwNzAzODMiPiLgu5zgu4jguqfguo3guq3gurvguofguoHguq3gupk6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXNzdWVkX2J5IiBtc2dpZD0iMjY0NzU4NDk4ODA1NzQ4MTU2NiI+IuC6reC6reC6geC7g+C6q+C7ieC7guC6lOC6jToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2YWxpZGl0eV9wZXJpb2QiIG1zZ2lkPSI4ODE4ODg2MTM3NTQ1OTgzMTEwIj4i4Lqt4Lqy4LqN4Lq44LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imlzc3VlZF9vbiIgbXNnaWQ9IjU4OTUwMTc0MDQzNjEzOTcyMzIiPiLguq3guq3guoHgu4Pguqvgu4ngu4DguqHgurfgu4jguq06Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXhwaXJlc19vbiIgbXNnaWQ9IjM2NzYyNDI5NDk5MTU5NTk4MjEiPiLgu53gurvgupTguq3gurLguo3gurjgu4Pgupk6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VyaWFsX251bWJlciIgbXNnaWQ9Ijc1ODgxNDA2NzY2MDg2MjQ5MyI+IuC7neC6suC6jeC7gOC6peC6geC6iuC6teC6o+C6veC6pzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5nZXJwcmludHMiIG1zZ2lkPSI0NTE2MDE5NjE5ODUwNzYzMDQ5Ij4i4Lql4Lqy4LqN4LqZ4Lq04LuJ4Lqn4Lqh4Lq3OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYTI1Nl9maW5nZXJwcmludCIgbXNnaWQ9IjQzOTEyNzEyODY0NzcyNzkyNjMiPiLgup7gurTguqHguqXgurLguo3gupngurTgu4nguqfguqHgurcgU0hBLTI1NjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGExX2ZpbmdlcnByaW50IiBtc2dpZD0iNzkzMDMzMDIzNTI2OTQwNDU4MSI+IuC6peC6suC6jeC6meC6tOC7ieC6p+C6oeC6tyBTSEEtMToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9jaG9vc2VyX3ZpZXdfc2VlX2FsbCIgbXNnaWQ9IjQyOTI1NjkzODM5NzY2MzYyMDAiPiLgu4DguprgurTgu4jguofgupfgurHguofguqvguqHgurvgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9jaG9vc2VyX3ZpZXdfZGlhbG9nX3RpdGxlX2RlZmF1bHQiIG1zZ2lkPSI0NzEwMDEzODY0OTc0MDQwNjE1Ij4i4LuA4Lql4Lq34Lqt4LqB4LqB4Lq04LqU4LqI4Lqw4LqB4LqzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfYWN0aW9uX3Byb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI1MjQ3Njg0NDM1OTc5MTQ5MjE2Ij4i4LuB4Lqa4LuI4LqH4Lqb4Lqx4LqZ4LqB4Lqx4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9kZXZpY2VfbG9ja2VkIiBtc2dpZD0iMzA5MjcwMzQ0ODY5MDY2OTc2OCI+IuC6reC6uOC6m+C6sOC6geC6reC6meC6peC6seC6reC6gS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsaXN0X2RlbGltZXRlciIgbXNnaWQ9IjM5NzUxMTc1NzIxODU0OTQxNTIiPiIsICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbmRpbmciIG1zZ2lkPSIzMjQ1NjUzNjgxMDA4MjE4MDMwIj4i4LqB4Lqz4Lql4Lqx4LqH4Lqq4Lq74LuI4LqHLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoQnJvd3NlckRlZmF1bHQiIG1zZ2lkPSIyMDU3OTUxOTQ3Mjk3NjE0NzI1Ij4i4LuA4Lqb4Lq14LqU4LuC4Lqb4Lqj4LuB4LqB4Lqj4Lqh4LqX4LuI4Lqt4LqH4LuA4Lqn4Lqx4LqaPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlNldHVwQ2FsbERlZmF1bHQiIG1zZ2lkPSI1ODM0OTQ4NDY5MjUzNzU4NTc1Ij4i4Lqu4Lqx4Lqa4LqB4Lqy4LqZ4LuC4LqX4Lqa4LuN4LuIPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X3Jlc29sdmVyX3VzZV9hbHdheXMiIG1zZ2lkPSI4MDE3NzcwNzQ3ODAxNDk0OTMzIj4i4LqX4Lq44LqB4LqE4Lqx4LuJ4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfcmVzb2x2ZXJfdXNlX29uY2UiIG1zZ2lkPSIyNDA0NjQ0Nzk3MTQ5MTczNzU4Ij4i4LqE4Lqx4LuJ4LqH4LqU4Lq94LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0NjE3MDUzODk4MTY3MTI3NDcxIj4i4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDIzOTI5MTI3MzQyMDE0MDEyMyI+IuC7guC6l+C6peC6sOC6quC6seC6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfbmFtZV9oZWFkcGhvbmVzIiBtc2dpZD0iODExOTk3MTg0MzgwMzQzOTExMCI+IuC6q+C6ueC6n+C6seC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfbmFtZV9kb2NrX3NwZWFrZXJzIiBtc2dpZD0iNjI0MDYwMjk4MjI3NjU5MTg2NCI+IuC6muC7iOC6reC6meC6leC6seC7ieC6h+C6peC6s+C7guC6nuC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfbWVkaWFfcm91dGVfbmFtZV9oZG1pIiBtc2dpZD0iMjQ1MDk3MDM5OTAyMzQ3ODA1NSI+IkhETUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX2NhdGVnb3J5X25hbWUiIG1zZ2lkPSIzNzIyODExMTc0MDAzODg2OTQ2Ij4i4Lql4Lqw4Lqa4Lq74LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmx1ZXRvb3RoX2EyZHBfYXVkaW9fcm91dGVfbmFtZSIgbXNnaWQ9Ijg1NzU2MjQwMzA0MDY3NzEwMTUiPiLguqrgur3guocgQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lyZWxlc3NfZGlzcGxheV9yb3V0ZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjkwNzAzNDY0MjUwMjM5Nzk2NTEiPiLguoHgurLgupnguqrgurDgu4HgupTguofgupzgurvgupngu4Tguq7gu4nguqrgurLguo0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9jaG9vc2VyX2dyb3VwaW5nX2RvbmUiIG1zZ2lkPSI3OTY2NDM4MzA3NzIzMzE3MTY5Ij4i4LuB4Lql4LuJ4Lqn4LuGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfYnV0dG9uX2NvbnRlbnRfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NzU4NTUzNTY3MDY1MTQ1Mjc2Ij4i4Lqh4Lq14LuA4LqU4LqN4LuA4Lqt4Lq74LuJ4Lqy4Lqe4Lq44LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX3NjYW5uaW5nIiBtc2dpZD0iNzI3OTkwODc2MTc1ODI5Mzc4MyI+IuC6geC6s+C6peC6seC6h+C6quC6sOC7geC6geC6mS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19jb25uZWN0aW5nIiBtc2dpZD0iNjQyMjU3MTcxNjAwNzgyNTQ0MCI+IuC6geC6s+C6peC6seC6h+C7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19hdmFpbGFibGUiIG1zZ2lkPSI2OTgzMjU4MDY3MTk0NjQ5MzkxIj4i4Lqq4Lqy4Lqh4Lqy4LqU4LuD4LqK4LuJ4LuE4LqU4LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX25vdF9hdmFpbGFibGUiIG1zZ2lkPSI2NzM5ODk5OTYyNjgxODg2NDAxIj4i4Lqa4LuN4LuI4Lqq4Lqy4Lqh4Lqy4LqU4LuD4LqK4LuJ4LuE4LqU4LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2luX3VzZSIgbXNnaWQ9IjQ1MzM3ODYwMzEwOTAxOTgwNjMiPiLguoHgurPguqXgurHguofgu4Pguorgu4nguqLgurngu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfYnVpbHRfaW5fZGlzcGxheV9uYW1lIiBtc2dpZD0iMjU4MzEzNDI5NDI5MjU2Mzk0MSI+IuC7nOC7ieC6suC6iOC7jeC6l+C6teC7iOC6leC6tOC6lOC6oeC6suC6meC6syI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9oZG1pX2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjE1NTUyNjQ1NTkyMjc0NzAxMDkiPiLguojgu40gSERNSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9vdmVybGF5X2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjUxNDIzNjU5ODIyNzE2MjA3MTYiPiLguoHgurLgupnguqfgurLguofguorgu4nguq3gupkgIzx4bGlmZjpnIGlkPSJJRCI+JTEkZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X3RpdGxlIiBtc2dpZD0iNjUyMTI0NTE3NjcyMjU3MTcyIj4iPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+OiA8eGxpZmY6ZyBpZD0iV0lEVEgiPiUyJGQ8L3hsaWZmOmc+eDx4bGlmZjpnIGlkPSJIRUlHSFQiPiUzJGQ8L3hsaWZmOmc+LCA8eGxpZmY6ZyBpZD0iRFBJIj4lNCRkPC94bGlmZjpnPiBkcGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X3NlY3VyZV9zdWZmaXgiIG1zZ2lkPSI2MDIyMTE5NzAyNjI4NTcyMDgwIj4iLCDgupvguq3gupTgu4Tgup4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjIyMzA1MDY0OTI0MDMyNjU1NyI+IuC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6geC6suC6meC6quC6sOC7geC6lOC6h+C6nOC6u+C6meC7hOC6ruC7ieC6quC6suC6jeC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfZGlzcGxheV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjQ0OTg4MDIwMTI0NjQxNzA2ODUiPiLguojgu43gupngurXgu4nguoHgurPguqXgurHguofguqrgurDgu4HgupTguofguqLgurngu4jgu4Pgupnguq3gurjgupvgurDguoHguq3gupnguq3gurfgu4jgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX2Rpc2Nvbm5lY3QiIG1zZ2lkPSI2MTgzNzU0NDYzNTYxMTUzMzcyIj4i4Lqi4Lq44LqU4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW1lcmdlbmN5X2NhbGxfbGFiZWwiIG1zZ2lkPSI2ODQ5NDYxOTI1MjM4MzA1MzEiPiLguoHgurLgupngu4LgupfguqrgurjguoHgu4DguqrgurXgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLguqXgurfguqHguq7gurnguprgu4HguprguprgupvgurvgupTguqXgurHguq3guoE/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiLguq7gurnguprgu4HguprguprgupzgurTgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiLguqXgurDguqvgurHgupTgupzgu4jgurLgupnguprgu43gu4jgupbgurfguoHgupXgu4nguq3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4i4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDgupzgurTgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfY291bnRkb3duIiBtc2dpZD0iNjM1ODExMDIyMTYwMzI5NzU0OCI+IuC6peC6reC6h+C7g+C7neC7iOC7g+C6meC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRkPC94bGlmZjpnPiDguqfgurTgupngurLgupfgurUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiLgu4HgupXgu4nguqHguq7gurnguprgu4HguprguprgupvgurvgupTguqXgurHguq3guoHguoLguq3guofgupfgu4jgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiLgu4Pguqrgu4jguqXgurDguqvgurHgupQgUElOIOC6guC6reC6h+C6iuC6tOC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzc3MjQyMjMzNDk1MTExNTU3Ij4i4LuD4Lqq4LuI4Lql4Lqw4Lqr4Lqx4LqUIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU3NTM2NDY1NTYxODY5MzY4MTkiPiLgu4Pguqrgu4jguqXgurDguqvgurHgupTgupzgu4jgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcHVrX2hpbnQiIG1zZ2lkPSI0NTMyMjcxNDM4NjE3MzU1MzciPiLguorgurTguqHgupbgurfguoHgupvgurTgupTguoHgurLgupngupngurPgu4Pguorgu4ngu4HguqXgu4nguqcuIOC6m+C7ieC6reC6meC6peC6sOC6q+C6seC6lCBQVUsg4LuA4Lqe4Lq34LuI4Lqt4LqU4Lqz4LuA4LqZ4Lq14LqZ4LqB4Lqy4LqZ4LqV4LuN4LuILiDgupXgurTgupTgupXgu43gu4jgupzgurngu4jgu4Pguqvgu4nguprgu43guqXgurTguoHgurLgupnguqrgurPguqXgurHguprguqXgurLguo3guqXgurDguq3gur3gupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IuC7g+C6quC7iOC6peC6sOC6q+C6seC6lCBQSU4g4LqX4Lq14LuI4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLguqLgurfgupnguqLgurHgupnguqXgurDguqvgurHgupQgUElOIOC6l+C6teC7iOC6leC7ieC6reC6h+C6geC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4i4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBIFNJTSBjYXJkLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDguprgu43gu4jgupbgurfguoHgupXgu4nguq3guocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4i4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDguoTguqfgurLguqHguo3gurLguqcgNCDgu4DgupbgurTguocgOCDgu4LgupXgu4DguqXguoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4i4Lql4Lqw4Lqr4Lqx4LqUIFBVSyDguoTguqfgupnguqHgurXguqLgu4jgurLguofgu5zgu4nguq3guo0gOCDgu4LgupXgu4DguqXguoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i4Lqb4LuJ4Lqt4LqZ4Lql4Lqw4Lqr4Lqx4LqUIFBVSyDgupfgurXgu4jgupbgurfguoHgupXgu4nguq3guofguoTgurfgupngu4Pgu53gu4guIOC6geC6suC6meC6nuC6sOC6jeC6suC6jeC6suC6oeC7g+C6quC7iOC6q+C6vOC6suC6jeC7gOC6l+C6t+C7iOC6reC6iOC6sOC7gOC6ruC6seC6lOC7g+C6q+C7ieC6iuC6tOC6oeC6geC6suC6lOC7g+C6iuC7ieC6muC7jeC7iOC7hOC6lOC7ieC6luC6suC6p+C6reC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4i4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDguprgu43gu4jguoHgurvguofguoHgurHgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjY0ODY4NDIwOTQwMDU2OTg0NzUiPiLgu4HgupXgu4nguqHguq7gurnguprgu4HguprguprgupvgurvgupTguqXgurHguq3guoHguqvgurzgurLguo3gu4DguoHgurXgupngu4TgupsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIxMTAwNTUxMjYxMjY1NTA2NDQ4Ij4i4LuA4Lqe4Lq34LuI4Lqt4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBLCDgu4DguoLgurvgu4ngurLguqrgurngu4jguqXgurDguprgurvguprgupTgu4nguqfguo3guprgurHgupnguorgurUgR29vZ2xlIOC6guC6reC6h+C6l+C7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+IuC6iuC6t+C7iOC6nOC6ueC7iOC7g+C6iuC7iSAo4Lqt4Lq14LuA4Lqh4LqnKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4i4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiLgu4DguoLgurvgu4ngurLguqrgurngu4jguqXgurDguprgurvgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+IuC6iuC6t+C7iOC6nOC6ueC7iOC7g+C6iuC7iSDguqvgurzgurfguqXgurDguqvgurHgupTgupzgu4jgurLgupnguprgu43gu4jgupbgurfguoHgupXgu4nguq3guocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IuC6peC6t+C6oeC6iuC6t+C7iOC6nOC6ueC7iOC7g+C6iuC7iSDguqvgurzgurfguqXgurDguqvgurHgupTgupzgu4jgurLgupnguoLguq3guofgupfgu4jgurLgupnguprgu43gu4g/XG7gu4TgupvgupfgurXgu4ggIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IuC6geC6s+C6peC6seC6h+C6geC6p+C6lOC6quC6reC6muC6muC6seC6meC6iuC6tS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i4LqX4LuI4Lqy4LqZ4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqUIFBJTuKAiyDguoLguq3guofgupfgu4jgurLgupngupzgurTgupQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LuA4LqX4Lq34LuI4Lqt4LuB4Lql4LuJ4LqnLiBcblxu4LqB4Lqw4Lql4Lq44LqZ4Lqy4Lql4Lqt4LqH4LuD4Lud4LuI4LuD4LqZ4Lqt4Lq14LqBIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC6p+C6tOC6meC6suC6l+C6tS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3ODEzNzEzMzg5NDIyMjI2NTMxIj4i4LqX4LuI4Lqy4LqZ4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqU4Lqc4Lq04LqUIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4gXG5cbuC6peC6reC6h+C7g+C7neC7iOC7g+C6meC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDguqfgurTgupngurLgupfgurUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+IuC6l+C7iOC6suC6meC7geC6leC7ieC6oeC6ruC6ueC6muC7geC6muC6muC6m+C6u+C6lOC6peC6seC6reC6geC6guC6reC6h+C6l+C7iOC6suC6meC6nOC6tOC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3gu4HguqXgu4nguqcuIFxuXG7guoHgurDguqXgurjgupngurLguqXguq3guofgu4Pgu53gu4jgu4Pgupnguq3gurXguoEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Lqn4Lq04LqZ4Lqy4LqX4Lq1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+IuC6l+C7iOC6suC6meC7hOC6lOC7ieC6nuC6sOC6jeC6suC6jeC6suC6oeC6m+C6u+C6lOC6peC6seC6reC6geC7geC6l+C6seC6muC7gOC6peC6seC6lOC6muC7jeC7iOC6quC6s+C7gOC6peC6seC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3gu4HguqXgu4nguqcuIOC6q+C6vOC6seC6h+C6iOC6suC6geC6hOC6p+C6suC6oeC6nuC6sOC6jeC6suC6jeC6suC6oeC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq0g4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LqI4Lqw4LqW4Lq34LqB4LqV4Lqx4LuJ4LqHIOC7g+C6q+C7ieC6geC6seC6muC7hOC6m+C7g+C6iuC7ieC6hOC7iOC6suC7gOC6peC6teC7iOC6oeC6leC6u+C7ieC6meC6iOC6suC6geC7guC6ruC6h+C6h+C6suC6meC6hOC6t+C6meC7g+C7neC7iCDgu4HguqXgurDguoLgu43gu4nguqHgurngupngupzgurngu4jgu4Pguorgu4ngupfgurHguofgu53gurvgupTguojgurDguqrgurngupnguqvgurLguo3gu4TgupsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDA1MTAxNTk0MzAzODE5OTkxMCI+IuC6l+C7iOC6suC6meC7hOC6lOC7ieC6nuC6sOC6jeC6suC6jeC6suC6oeC6m+C6u+C6lOC6peC6seC6reC6geC7guC6l+C6peC6sOC6quC6seC6muC6muC7jeC7iOC6quC6s+C7gOC6peC6seC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3gu4HguqXgu4nguqcuIOC6q+C6vOC6seC6h+C6iOC6suC6geC6hOC6p+C6suC6oeC6nuC6sOC6jeC6suC6jeC6suC6oeC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq0g4LuC4LqX4Lql4Lqw4Lqq4Lqx4Lqa4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LqI4Lqw4LqW4Lq34LqB4LqV4Lqx4LuJ4LqHIOC7g+C6q+C7ieC6geC6seC6muC7hOC6m+C7g+C6iuC7ieC6hOC7iOC6suC7gOC6peC6teC7iOC6oeC6leC6u+C7ieC6meC6iOC6suC6geC7guC6ruC6h+C6h+C6suC6meC6hOC6t+C6meC7g+C7neC7iCDgu4HguqXgurDguoLgu43gu4nguqHgurngupngupzgurngu4jgu4Pguorgu4ngupfgurHguofgu53gurvgupTguojgurDguqrgurngupnguqvgurLguo3gu4TgupsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNzI5OTYyNjkxNDg0ODM2MzciPiLgupfgu4jgurLgupngu4TgupTgu4ngup7gurDguo3gurLguo3gurLguqHgupvgurvgupTguqXgurHguq3guoHgu4HgupfgurHguprgu4DguqXgurHgupTguprgu43gu4jguqrgurPgu4DguqXgurHgupQgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4g4LqV4Lqt4LqZ4LqZ4Lq14LuJ4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqI4Lqw4LqW4Lq34LqB4LqV4Lqx4LuJ4LqH4LuD4Lqr4LuJ4LqB4Lqx4Lqa4LuE4Lqb4LuD4LqK4LuJ4LqE4LuI4Lqy4LuA4Lql4Lq14LuI4Lqh4LqV4Lq74LuJ4LqZ4LqI4Lqy4LqB4LuC4Lqu4LqH4LqH4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDgxNzYyNzQ3NDQxOTQ3MTUxOCI+IuC6l+C7iOC6suC6meC7hOC6lOC7ieC6nuC6sOC6jeC6suC6jeC6suC6oeC6m+C6u+C6lOC6peC6seC6reC6geC7guC6l+C6peC6sOC6quC6seC6muC6muC7jeC7iOC6luC6t+C6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4LuA4LqX4Lq34LuI4Lqt4LuB4Lql4LuJ4LqnLiDgupXguq3gupngupngurXgu4ngu4LgupfguqXgurDguqrgurHguprguojgurDgupbgurfguoHguqPgurXgu4DguorgurHgupTgu4DgupvgurHgupnguoTgu4jgurLguojgurLguoHgu4Lguq7guofguofgurLgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IuC6l+C7iOC6suC6meC7geC6leC7ieC6oeC6ruC6ueC6muC7geC6muC6muC6m+C6u+C6lOC6peC6seC6reC6geC6nOC6tOC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3gu4HguqXgu4nguqcuIOC6q+C6vOC6seC6h+C6iOC6suC6geC7geC6leC7ieC6oeC6nOC6tOC6lOC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq0sIOC6l+C7iOC6suC6meC6iOC6sOC6luC6t+C6geC6luC6suC6oeC7g+C6q+C7ieC6m+C6u+C6lOC6peC6seC6reC6geC7geC6l+C6seC6muC7gOC6peC6seC6lOC6guC6reC6h+C6l+C7iOC6suC6mSDgupTgu4nguqfguo3guoHgurLgupngu4DguoLgurvgu4ngurLguqrgurngu4jguqXgurDguprgurvguprgu4LgupTguo3gu4Pguorgu4nguq3gurXgu4DguqHguqfguoLguq3guofgupfgu4jgurLgupkuXG5cbiDguoHgurDguqXgurjgupngurLguqXguq3guofgu4Pgu53gu4jguq3gurXguoHguoTgurHgu4nguofgu4Pgupnguq3gurXguoEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Lqn4Lq04LqZ4Lqy4LqX4Lq1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i4LqX4LuI4Lqy4LqZ4LuB4LqV4LuJ4Lqh4Lqu4Lq54Lqa4LuB4Lqa4Lqa4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4Lqc4Lq04LqUIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4g4Lqr4Lq84Lqx4LqH4LqI4Lqy4LqB4LqE4Lqn4Lqy4Lqh4Lqe4Lqw4LqN4Lqy4LqN4Lqy4Lqh4Lqt4Lq14LqBIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6rSDgupfgu4jgurLgupnguojgurDgupbgurfguoHgupbgurLguqHgu4Pguqvgu4ngupvgurvgupTguqXgurHguq3guoHgu4LgupfguqXgurDguqrgurHguprguoLguq3guofgupfgu4jgurLgupngupTgu4nguqfguo3guprgurHgupnguorgurXguq3gurXgu4DguqHguqcuXG5cbiDguqXguq3guofgu4Pgu53gu4jguq3gurXguoHguoTgurHgu4nguofgu4PgupkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Lqn4Lq04LqZ4Lqy4LqX4Lq1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IuC6peC6tuC6muC6reC6reC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhZmVfbWVkaWFfdm9sdW1lX3dhcm5pbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MzI0MTYxOTM5NDc1NDc4MDY2Ij4i4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4LuA4Lqe4Lq14LuI4Lqh4Lql4Lqw4LqU4Lqx4Lqa4Lqq4Lq94LqH4LqI4Lq74LqZ4LuA4LqB4Lq14LqZ4Lql4Lqw4LqU4Lqx4Lqa4LqX4Lq14LuI4LuB4LqZ4Lqw4LqZ4LqzP1xu4LqB4Lqy4LqZ4Lqf4Lqx4LqH4LuD4LqZ4Lql4Lqw4LqU4Lqx4Lqa4Lqq4Lq94LqH4LqU4Lqx4LqH4LuA4Lqb4Lqx4LqZ4LuA4Lqn4Lql4Lqy4LqU4Lq74LqZIOC6reC6suC6lOC6l+C6s+C6peC6suC6jeC6geC6suC6meC7hOC6lOC7ieC6jeC6tOC6meC6quC6veC6h+C6guC6reC6h+C6l+C7iOC6suC6meC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250aW51ZV90b19lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjE2MjY0MjczNzIzMTYwNzAyNTgiPiLguoHgurvgupTguqrguq3guofgupngurTgu4nguqfguoTgu4ngurLguofgu4Tguqfgu4ngu4Dgup7gurfgu4jguq3gu4DgupvgurXgupTgu4Pguorgu4nguoHgurLgupnguorgu4jguqfguo3gu4DguoLgurvgu4ngurLgu4DgupbgurTguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2VuYWJsZWQiIG1zZ2lkPSIxMzgxOTcyMDQ4NTY0NTQ3Njg1Ij4i4LuA4Lqb4Lq14LqU4LqB4Lqy4LqZ4LqK4LuI4Lqn4LqN4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqH4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9hY2Nlc3NpYmlsaXR5X2NhbmNlbGVkIiBtc2dpZD0iMzgzMzkyMzI1Nzk2NjYzNTY3MyI+IuC6jeC6u+C6geC7gOC6peC6teC6geC7guC6leC6iuC7iOC6p+C6jeC6geC6suC6meC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VyX3N3aXRjaGVkIiBtc2dpZD0iMzc2ODAwNjc4MzE2Njk4NDQxMCI+IuC6nOC6ueC7iOC7g+C6iuC7ieC6m+C6seC6lOC6iOC6uOC6muC6seC6mSA8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz4gLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im93bmVyX25hbWUiIG1zZ2lkPSIyNzE2NzU1NDYwMzc2MDI4MTU0Ij4i4LuA4LqI4Lq74LuJ4Lqy4LqC4Lqt4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXJyb3JfbWVzc2FnZV90aXRsZSIgbXNnaWQ9IjQ1MTAzNzMwODMwODI1MDAxOTUiPiLgupzgurTgupTgup7gurLgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbm9fcmVzdHJpY3RlZF9hY2NvdW50cyIgbXNnaWQ9IjU3Mzk0NjMyNDk2NzM3Mjc3MzYiPiLgu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupngupngurXgu4nguprgu43gu4jguq7guq3guofguq7gurHguprguprgurHgupnguorgurXguoLguq3guofgu4LgupvguqPgu4Tgup/guqXgu4zgupfgurXgu4jgupbgurfguoHguojgurPguoHgurHgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX25vdF9mb3VuZCIgbXNnaWQ9IjM0MjkxNDE4NTM0OTg5MjczNzkiPiLguprgu43gu4jgup7gurvguprgu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupngu4Dgup7gurfgu4jguq3guojgurHgupTguoHgurLgupngu4Dguq7gurHgupTguqfgur3guoHgupngurXgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmV2b2tlIiBtc2dpZD0iNTQwNDQ3OTE4NTIyODI3MTU4NiI+IuC6luC6reC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTAiIG1zZ2lkPSI3ODc1NDI3NDg5NDIwODIxNzkzIj4iSVNPIEEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMSIgbXNnaWQ9IjM3NjA3MzQ0OTkwNTA4NzUzNTYiPiJJU08gQTEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2EyIiBtc2dpZD0iNTk3MzI2NjM3ODAyMDE0NDM4MiI+IklTTyBBMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTMiIG1zZ2lkPSIxMzczNDA3MTA1Njg3MzAwODg0Ij4iSVNPIEEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNCIgbXNnaWQ9IjY2ODk3NzI4MDc5ODI1OTcyNTQiPiJJU08gQTQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E1IiBtc2dpZD0iNTM1MzU0OTY1MjAxNTc0MTA0MCI+IklTTyBBNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTYiIG1zZ2lkPSI4NTg1MDM4MDQ4Njc0OTExOTA3Ij4iSVNPIEE2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNyIgbXNnaWQ9IjY2NDE4MzY3MTY5NjM4MzkxMTkiPiJJU08gQTciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E4IiBtc2dpZD0iNzU3MTEzOTQzNzQ2NTY5MzM1NSI+IklTTyBBOCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTkiIG1zZ2lkPSIxMzc4NDU1ODkxOTU3MTE1MDc5Ij4iSVNPIEE5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMTAiIG1zZ2lkPSIyNDgwNzQ3NDU3NDI5NDc1MzQ0Ij4iSVNPIEExMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjAiIG1zZ2lkPSIzOTY1OTM1MDk3NjYxMTA4MDM5Ij4iSVNPIEIwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMSIgbXNnaWQ9IjI1MDU3NTMyODUwMTAxMTU0MzciPiJJU08gQjEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IyIiBtc2dpZD0iODc2Mzg3NDcwOTg1OTQ1ODQ1MyI+IklTTyBCMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjMiIG1zZ2lkPSI0MjEwNTA2Njg4MTkxNzY0MDc2Ij4iSVNPIEIzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNCIgbXNnaWQ9IjU3NDk0MDQxNjU4ODg1MjYwMzQiPiJJU08gQjQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I1IiBtc2dpZD0iNzY0MDYyNzQxNDYyMTkwNDczMyI+IklTTyBCNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjYiIG1zZ2lkPSI3MzQyOTg4ODY0NzEyNzQ4NTQ0Ij4iSVNPIEI2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNyIgbXNnaWQ9IjUwNjk4NDQwNjUyMzUzODI0MjkiPiJJU08gQjciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I4IiBtc2dpZD0iNzMxNjgxODkyMjI3ODc3OTc3NCI+IklTTyBCOCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjkiIG1zZ2lkPSI1NDE0NzI3MDk0MDI2NTMyMzQxIj4iSVNPIEI5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMTAiIG1zZ2lkPSI1MjUxMjUzNzMxODMyMDQ4MTg1Ij4iSVNPIEIxMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzAiIG1zZ2lkPSI0MDAzMTM4MzQyNjcxOTY0MjE3Ij4iSVNPIEMwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMSIgbXNnaWQ9IjE5MzUxODgwNjMzOTM1NTMwMDgiPiJJU08gQzEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MyIiBtc2dpZD0iMzE5NzMwNzk2OTcxMjA2OTkwNCI+IklTTyBDMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzMiIG1zZ2lkPSI0MzM1ODI2MDg3MzIxOTEzNTA4Ij4iSVNPIEMzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNCIgbXNnaWQ9IjM3NDU2Mzk1OTgyODEwMTUwMDUiPiJJU08gQzQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M1IiBtc2dpZD0iODI2OTQ1Nzc2NTgyMjc5MTAxMyI+IklTTyBDNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzYiIG1zZ2lkPSI1NjY2NjYxMDUyNjAzNDY5MzAiPiJJU08gQzYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M3IiBtc2dpZD0iODY3ODQxMzE4MDc4MjYwODQ5OCI+IklTTyBDNyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzgiIG1zZ2lkPSI4MzkyMzc2MjA2NjI3MDQxNzMwIj4iSVNPIEM4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jOSIgbXNnaWQ9IjkxOTE2MTMzNzIzMjQ4NDU0MDUiPiJJU08gQzkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MxMCIgbXNnaWQ9IjczMjc3MDk2OTkxODQ5MjA4MjIiPiJJU08gQzEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2xldHRlciIgbXNnaWQ9IjQxOTE4MDU2MTU4Mjk0NzI5NTMiPiLguojgurvgupTgu53gurLguo0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfZ3Zybm10X2xldHRlciIgbXNnaWQ9Ijc4NTMzODIxOTI2NDk0MDU1MDciPiLguojgurvgupTigIvguqvguqHgurLguo3gupfgurLguofigIvguqXgurHgupTigIvgupbgurDigIvguprgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGVnYWwiIG1zZ2lkPSI2Njk3OTgyOTg4MjgzODIzMTUwIj4i4LqB4Lq74LqU4Lqr4Lqh4Lqy4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2p1bmlvcl9sZWdhbCIgbXNnaWQ9IjM3Mjc3NDM5Njk5MDI3NTg5NDgiPiLguoHgurvgupTgu53gurLguo3guoLgurHgu4ngupngupXgu4jgurMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGVkZ2VyIiBtc2dpZD0iMjgxODcxNDY0ODk2NjAxMjM2Ij4i4Lqa4Lqx4LqZ4oCL4LqK4Lq1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX3RhYmxvaWQiIG1zZ2lkPSI1Nzc1OTY2NDE2MzMzNTc4MTI3Ij4i4LuB4LqW4Lqa4Lqa4Lql4Lqt4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id3JpdGVfZmFpbF9yZWFzb25fY2FuY2VsbGVkIiBtc2dpZD0iNzA5MTI1ODM3ODEyMTYyNzYyNCI+IuC6jeC6u+C6geC7gOC6peC6teC6geC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndyaXRlX2ZhaWxfcmVhc29uX2Nhbm5vdF93cml0ZSIgbXNnaWQ9IjgxMzI1MDU0MTc5MzUzMzc3MjQiPiLgu4Dgupngurfgu4nguq3igIvgu4PgupnigIvguoHgurLgupnguoLgur3gupngupzgurTgupTgup7gurLgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfcGluIiBtc2dpZD0iMzM5NTk1MzQyMTM2ODQ3NjEwMyI+IuC7g+C6quC7iOC6peC6sOC6q+C6seC6lCBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfb2xkX3BpbiIgbXNnaWQ9IjE0NjIyMDYyMjU1MTI5MTA3NTciPiJQSU4g4Lqb4Lqw4oCL4LqI4Lq44oCL4Lqa4Lqx4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2VudGVyX25ld19waW4iIG1zZ2lkPSI1OTU5NjA2NjkxNjE5OTU5MTg0Ij4i4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDgu4Pgu53gu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fY29uZmlybV9waW4iIG1zZ2lkPSI4NTAxNTIzODI5NjMzMTQ2MjM5Ij4i4Lqi4Lq34LqZ4Lqi4Lqx4LqZ4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDgu4Pgu53gu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fY3JlYXRlX3BpbiIgbXNnaWQ9IjgwMTc2MDAwMDAyNjM0NTAzMzciPiLguqrgu4ngurLguocgUElOIOC6quC7jeC6suKAi+C6peC6seC6muKAi+C6geC6suC6meKAi+C6m+C6seC6muKAi+C6m+C6uOC6h+KAi+C6guC7jeC7ieC6iOC7jeC6suKAi+C6geC6seC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lcnJvcl9kb2VzbnRfbWF0Y2giIG1zZ2lkPSIyMjI0MjE0MTkwOTA2OTk0NTQ4Ij4iUElOIOC6muC7jeC7iOKAi+C6geC6u+C6h+C6geC6seC6mS4g4Lql4Lqt4LqH4LuD4Lud4LuI4Lqt4Lq14LqB4LqE4Lqx4LuJ4LqH4oCLLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lcnJvcl90b29fc2hvcnQiIG1zZ2lkPSI4MTczOTgyNzU2MjY1Nzc3NzkyIj4iUElOIOKAi+C6quC6seC7ieC6meKAi+C7gOC6geC6teC6meKAi+C7hOC6m+KAiy4g4LqV4LuJ4Lqt4LqH4Lqh4Lq14Lqi4LuI4Lqy4LqH4Luc4LuJ4Lqt4LqNIDQg4Lqr4Lq84Lqx4LqB4oCLLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icmVzdHJfcGluX2NvdW50ZG93biI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ4MzU2Mzk5Njk1MDM3Mjk4NzQiPiJQSU4g4oCL4Lqa4LuN4LuI4oCL4LqW4Lq34LqB4oCL4LqV4LuJ4Lqt4LqH4oCLLiDguqXguq3guofgu4Pgu53gu4jgu4Pgupnguq3gurXguoEgMSDguqfgurTgupngurLgupfgurUuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4MDMwNjA3MzQzMjIzMjg3NjU0Ij4iUElOIOC6muC7jeC7iOKAi+C6luC6t+C6geKAi+C6leC7ieC6reC6h+KAiy4g4Lql4Lqt4LqH4LuD4Lud4LuI4LuD4LqZ4Lqt4Lq14LqBIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC6p+C6tOKAi+C6meC6suKAi+C6l+C6teKAiy4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJ0cmFuc2llbnRfbmF2aWdhdGlvbl9jb25maXJtYXRpb24iIG1zZ2lkPSI0OTA3ODQ0MDQzNjExMTIzNDI2Ij4i4Lqb4Lqx4LqU4Lqi4Lq54LuI4LqC4Lqt4Lqa4LqC4Lqt4LqH4Luc4LuJ4Lqy4LqI4LuN4LuA4Lqe4Lq34LuI4Lqt4Lqq4Lqw4LuB4LqU4LqH4LuB4LqW4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHJhbnNpZW50X25hdmlnYXRpb25fY29uZmlybWF0aW9uX2xvbmciIG1zZ2lkPSI4MDYxNjg1OTIwNTA4MDg2Njk3Ij4i4Lqb4Lqx4LqU4Lqi4Lq54LuI4LqC4Lqt4Lqa4LqC4Lqt4LqH4Luc4LuJ4Lqy4LqI4LuN4LuA4Lqe4Lq34LuI4Lqt4Lqq4Lqw4LuB4LqU4LqH4LuB4LqW4Lqa4LqC4Lqt4LqH4Lql4Lqw4Lqa4Lq74LqaIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWx0L3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1sdC9zdHJpbmdzLnhtbAppbmRleCA5ZmE0MWM5Li41MTc4OTBkIDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLWx0L3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbHQvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IsSudmVza2l0ZSA4IHNrYWl0bWVuxbMgYXIgaWxnZXNuxK8gUFVLIGtvZMSFLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJKxatzxbMgU0lNIGtvcnRlbMSXIHlyYSB1xb5yYWtpbnRhIFBVSyBrb2R1LiBKZWkgbm9yaXRlIGrEhSBhdHJha2ludGksIMSvdmVza2l0ZSBQVUsga29kxIUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4ixK52ZXNraXRlIFBVSzIga29kxIUsIGthZCBwYW5haWtpbnR1bcSXdGUgU0lNIGtvcnRlbMSXcyBibG9rYXZpbcSFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+Ik5lcGF2eWtvLiDErmdhbGludGkgU0lNIC8gUlVJTSB1xb5yYWt0xIUuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iTGlrbyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gYmFuZC4gUGFza3VpIFNJTSBrb3J0ZWzElyBidXMgdcW+cmFraW50YS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJMaWtvIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBiYW5kLiBQYXNrdWkgU0lNIGtvcnRlbMSXIGJ1cyB1xb5yYWtpbnRhLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4ixK5laW5hbsSNaW8gc2thbWJpbnRvam8gSUQiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IkxlaWTFvmlhbWEgcHJvZ3JhbWFpIG5hdWRvdGkg4oCeU3VyZmFjZUZsaW5nZXLigJwgxb5lbW8gbHlnaW8gZnVua2NpamFzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+InNrYWl0eXRpIGthZHLFsyBidWZlcsSvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IkxlaWTFvmlhbWEgcHJvZ3JhbWFpIHNrYWl0eXRpIHLEl21lbGlvIGJ1ZmVyaW8gdHVyaW7Ery4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJwYXNpZWt0aSDigJ5JbnB1dEZsaW5nZXLigJwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4iUHJvZ3JhbWFpIGxlaWTFvmlhbWEgbmF1ZG90aSDigJ5JbnB1dEZsaW5nZXLigJwgxb5lbW8gbHlnaW8gZnVua2NpamFzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4ia29uZmlnxatydW90aSDigJ5XaS1GaeKAnCBwYXRlaWt0aXMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJMZWlkxb5pYW1hIHByb2dyYW1haSBrb25maWfFq3J1b3RpIGlyIHByaXNpanVuZ3RpIHByaWUg4oCeV2ktRmnigJwgcGF0ZWlrxI1pxbMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiJ2YWxkeXRpIOKAnldpLUZp4oCcIHBhdGVpa3RpcyI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IsSudmVzdGkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiJQYXNpcmlua2l0ZSBwcm9ncmFtxIUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiJOZXBhdnlrbyBwYWxlaXN0aSDigJ48eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+4oCcIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4iQmVuZHJpbnRpIHN1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IkJlbmRyaW50aSBzdSDigJ48eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+4oCcIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+IlNseWRpbW8gdmFsZHltYXMuIFBhbGllc2tpdGUgaXIgbGFpa3lraXRlLiI8L3N0cmluZz4KQEAgLTE2NTAsNCArMTY1OCwxNSBAQAogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4iVsSXbGlhdSBiYW5keWtpdGUgZGFyIGthcnTEhSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJQZXJicmF1a2l0ZSBudW8gdmlyxaFhdXMgxb5lbXluLCBrYWQgacWhZWl0dW3El3RlIGnFoSB2aXNvIGVrcmFubyByZcW+aW1vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiJBdGxpa3RhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4iQXBza3JpdGFzIHZhbGFuZMWzIHNsYW5raWtsaXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+IkFwc2tyaXRhcyBtaW51xI1pxbMgc2xhbmtpa2xpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiJQYXNpcmlua2l0ZSB2YWxhbmRhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IlBhc2lyaW5raXRlIG1pbnV0ZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+Ik3El25lc2lvIGRpZW7FsyB0aW5rbGVsaXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiJNZXTFsyBzxIVyYcWhYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IlBhc2lyaW5raXRlIG3El25lc8SvIGlyIGRpZW7EhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+IlBhc2lyaW5raXRlIG1ldHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+IlBhc2lyaW5rdGE6IDx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+IknFoXRyaW50YTogPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbHYvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLWx2L3N0cmluZ3MueG1sCmluZGV4IDAzNmQ1ZDYuLjNiYmI4YjcgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbHYvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1sdi9zdHJpbmdzLnhtbApAQCAtNTAsNiArNTAsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4iSWVyYWtzdGlldCBQVUvCoGtvZHUsIGthcyBzYXN0xIF2IG5vIDjCoHZhaSB2YWlyxIFrIGNpcGFyaWVtLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJTSU0ga2FydGUgaXIgYmxvxLfEk3RhIGFyIFBVSyBrb2R1LiBJZXJha3N0aWV0IFBVSyBrb2R1LCBsYWkgdG8gYXRibG/Et8STdHUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iSWVyYWtzdGlldCBQVUsyIGtvZHUsIGxhaSBhdGJsb8S3xJN0dSBTSU0ga2FydGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iTmVpemRldsSBcy4gSWVzcMSTam9qaWV0IFNJTS9SVUlNwqBibG/Et8STxaFhbnUuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iVmFyYXQgbcSTxKNpbsSBdCB2xJNsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPsKgcmVpemksIHBpcm1zIFNJTcKga2FydGUgdGlrcyBibG/Et8STdGEuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4iVmFyYXQgbcSTxKNpbsSBdCB2xJNsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPsKgcmVpemkoLWVzKSwgcGlybXMgU0lNwqBrYXJ0ZSB0aWtzIGJsb8S3xJN0YS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IkllbsSBa2/FocSBIHp2YW5hIHp2YW7Eq3TEgWphwqBJRCI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4ixLthdWogbGlldG90bmVpIGxpZXRvdCBTdXJmYWNlRmxpbmdlciB6ZW1hIGzEq21lxYZhIGZ1bmtjaWphcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJsYXPEq3Qga2FkcnUgYnVmZXJpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IsS7YXVqIGxpZXRvdG5laSBsYXPEq3Qga2FkcnUgYnVmZXJhIHNhdHVydS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJQaWVrxLx1dmUgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IsS7YXVqIGxpZXRvdG5laSBpem1hbnRvdCBJbnB1dEZsaW5nZXIgemVtYSBsxKttZcWGYSBmdW5rY2lqYXMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJXaS1GaSBkaXNwbGVqdSBrb25maWd1csSTxaFhbmEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiLEu2F1aiBsaWV0b3RuZWkga29uZmlndXLEk3QgV2ktRmkgZGlzcGxlanVzIHVuIHZlaWRvdCBzYXZpZW5vanVtdSBhciB0aWVtLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4iV2ktRmkgZGlzcGxlanUgdmFkxKtiYSI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJQxIFyc2zEk2fFoWFuYXMgdGF1c3RpxYbFoSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IklldmFkxKvFoWFuYXMgdGF1c3RpxYbFoSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+Ikl6dsSTbGlldGllcyBsaWV0b3RuaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+Ik5ldmFyxJNqYSBwYWxhaXN0IGxpZXRvdG5pIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4iS29wxKtnb3QgYXI6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IktvcMSrZ290IGFyIGxpZXRvanVtcHJvZ3JhbW11IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iQsSrZMSBbXMgdHVyaXMuIFBpZXNrYXJpZXRpZXMgdGFtIHVuIHR1cmlldCB0byBub3NwaWVzdHUuIjwvc3RyaW5nPgpAQCAtMTY1MCw0ICsxNjU4LDE1IEBACiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJWxJNsxIFrIG3Ek8SjaW5pZXQgdsSTbHJlaXouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IkxhaSBpemlldHUgbm8gcGlsbmVrcsSBbmEgcmXFvsSrbWEsIHZlbGNpZXQgbm8gYXVnxaFhcyB1eiBsZWp1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4iR2F0YXZzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4iU3R1bmR1IGFwxLx2ZWlkYSBzbMSrZG5pcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4iTWluxavFoXUgYXDEvHZlaWRhIHNsxKtkbmlzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IkF0bGFzaWV0IHN0dW5kYXMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4iQXRsYXNpZXQgbWluxat0ZXMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiJSZcW+xKNpcyBhciBtxJNuZcWhYSBkaWVuxIFtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4iR2FkdSBzYXJha3N0cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iQXRsYXNpZXQgbcSTbmVzaSB1biBkaWVudS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiJBdGxhc2lldCBnYWR1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiJBdGxhc8SrdHM6IDx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+Ijx4bGlmZjpnIGlkPSJLRVkiPiUxJHM8L3hsaWZmOmc+IHRpa2EgZHrEk3N0cy4iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbW4tck1OL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwKaW5kZXggZmUzZDc4Yi4uZDlhYzVlYSAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+Ijgt0YEg0YbTqdOp0L3Qs9Kv0Lkg0YLQvtC+0L3QvtC+0YEg0LHSr9GC0Y3RhSBQVUst0LMg0LHQuNGH0L3RjSDSr9KvLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJTSU0g0LrQsNGA0YLQvdGLIFBVSy3RgtKv0LPQttC40LPQtNGB0Y3QvS4g0KLQsNC50LvQsNGFINCx0L7QuyBQVUsg0LrQvtC00YvQsyDQsdC40YfQvdGNINKv0q8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iU0lNINC60LDRgNGC0YvQvSDRhdCw0LDQu9GC0YvQsyDQsdC+0LvQuNGD0LvQsNGFINCx0L7QuyBQVUsyLdCzINCx0LjRh9C90Y0g0q/Sry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiLQkNC80LbQuNC70YLQs9Kv0Lkg0LHQvtC70LvQvtC+LCDQodCY0Jwv0KDSrtCY0Jwg0YLSr9Cz0LbRjdGN0LMg0LjQtNGN0LLRhdC20q/Sr9C70L3RjSDSr9KvLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+ItCi0LDQvdGLINCh0JjQnCDRgtKv0LPQttC40LPQtNGN0YXRjdGN0YEg06nQvNC906kg0YLQsNC90LQgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INC+0YDQvtC70LTQu9C+0LPQviDRhdC40LnRhSDQsdC+0LvQvtC80LYg0q/Qu9C00LvRjdGNLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+ItCh0JjQnCDRgtKv0LPQttC40LPQtNGN0YXRjdGN0YEg06nQvNC906kg0YLQsNC90LQgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INC+0YDQvtC70LTQu9C+0LPQviDRhdC40LnRhSDQsdC+0LvQvtC80LYg0q/Qu9C00LvRjdGNLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4i0JTRg9GD0LTQu9Cw0LPQsCDRhdC40LnQs9GH0LjQudC9IElEIjwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiLQkNC/0L8g0L3RjCBTdXJmYWNlRmxpbmdlciDQtNC+0L7QtC3RgtOp0LLRiNC40L3QuNC5INGE0YPQvdC60YbQuNC50LMg0LDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+ItCk0YDRjdC50Lwg0LHRg9GE0LXRgNGN0Y3RgSDRg9C90YjQuNGFIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+ItCQ0L/QvyDQvdGMINGE0YDRjdC50Lwg0LHRg9GE0LXRgNGL0L0g0LrQvtC90YLQtdC90YLRi9CzINGD0L3RiNC40YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+IklucHV0Rmxpbmdlci3RgiDRhdCw0L3QtNCw0LvRgiDRhdC40LnRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiLQkNC/0L8t0LQgU3VyZmFjZUZsaW5nZXIg0LTQvtC+0LQt0YLSr9Cy0YjQvdC40Lkg0YTRg9C90LrRhtGD0YPQtNGL0LMg0LDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC2INC+0LvQs9C+0L3Qvi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+IldpZmkg0LTRjdC70LPRjdGG0LjQudCzINGC0L7RhdC40YDRg9GD0LvQsNGFIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i0JDQv9C/INC90YwgV2lmaSDQtNGN0LvQs9GN0YbQuNC50LMg0YLQvtGF0LjRgNGD0YPQu9Cw0YUg0LHQvtC70L7QvSDRhdC+0LvQsdC+0LPQtNC+0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4iV2lmaSDQtNGN0LvQs9GN0YbQuNC50LMg0YPQtNC40YDQtNCw0YUiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4i0KjQuNGE0YIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiLQntGA0YPRg9C70LDRhSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+ItCQ0L/QvyDRgdC+0L3Qs9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+LdCzINGN0YXQu9Kv0q/Qu9C2INGH0LDQtNGB0LDQvdCz0q/QuSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+ItCl0YPQstCw0LDQu9GG0LDRhSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+LdGC0LDQuSDRhdGD0LLQsNCw0LvRhtCw0L3QsCDRg9GDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+ItCR0LDRgNC40YPQu9GL0LMg0LPRg9C70YHRg9GD0LvQvdCwLiDQpdKv0YDRjdGN0LQg0YXSr9C70Y3RjdC90Y0uIjwvc3RyaW5nPgpAQCAtMTY0OSw1ICsxNjU3LDE2IEBACiAgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDczMDg2ODkyMDc0Mjk1MjgxNyI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INGB0LXQutGD0L3QtNGL0L0g0LTQsNGA0LDQsCDQtNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgyI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiLQlNCw0YDQsNCwINC00LDRhdC40L0g0L7RgNC+0LvQtNC+0L3QviDRg9GDIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+ItCR0q/RgtGN0L0g0LTRjdC70LPRjdGG0Y3RjdGBINCz0LDRgNCw0YXRi9C9INGC0YPQu9C0INC00Y3RjdGA0Y3RjdGBINC90Ywg0Y3RhdC70Y3QvSDQtNC+0L7RiCDRiNGD0LTRgNCw0L3QsCDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiLQkdKv0YLRjdC9INC00Y3Qu9Cz0Y3RhtGN0Y3RgSDQs9Cw0YDQsNGF0YvQvSDRgtGD0LvQtCDQtNGN0Y3RgNGN0Y3RgSDQvdGMINC00L7QvtGIINGI0YPQtNGA0LDQvdCwINGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiLQlNGD0YPRgdGB0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+ItCm0LDQsyDQs9Kv0LnQu9Cz0Y3Qs9GHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiLQnNC40L3Rg9GCINCz0q/QudC70LPRjdCz0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4i0KbQsNCzINGB0L7QvdCz0L7QvdC+INGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiLQnNC40L3Rg9GCINGB0L7QvdCz0L7QvdC+INGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+ItOo0LTRgNKv0q/QtNC40LnQsyDRgdCw0YDQsNCw0YAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLQltC40LvQuNC50L0g0LbQsNCz0YHQsNCw0LvRgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4i0KHQsNGAINCx0L7Qu9C+0L0g06nQtNGA0LjQudCzINGB0L7QvdCz0L7QvdC+INGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiLQltC40LvQuNC50LMg0YHQvtC90LPQvtC90L4g0YPRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiI8eGxpZmY6ZyBpZD0iSVRFTSI+JTEkczwveGxpZmY6Zz4g0YHQvtC90LPQvtCz0LTRgdC+0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiI8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiDRg9GB0YLRgdCw0L0iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbW4vc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwYzk0NzgKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMTU4NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJieXRlU2hvcnQiIG1zZ2lkPSI4MzQwOTczODkyNzQyMDE5MTAxIj4iQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtpbG9ieXRlU2hvcnQiIG1zZ2lkPSI1OTczNzg5NzgzNTA0NzcxODc4Ij4i0JrQkSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZ2FieXRlU2hvcnQiIG1zZ2lkPSI2MzU1ODUxNTc2NzcwNDI4OTIyIj4i0JzQkSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdpZ2FieXRlU2hvcnQiIG1zZ2lkPSIzMjU5ODgyNDU1MjEyMTkzMjE0Ij4i0JPQkSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRlcmFieXRlU2hvcnQiIG1zZ2lkPSIyMzE2MTMwMTgxNTkxODY5NjIiPiJU0JEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXRhYnl0ZVNob3J0IiBtc2dpZD0iNTYzNzgxNjY4MDE0NDk5MDIxOSI+ItCf0JEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaWxlU2l6ZVN1ZmZpeCIgbXNnaWQ9IjkxNjQyOTI3OTE1MDA1MzE5NDkiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRzPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJVTklUIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVudGl0bGVkIiBtc2dpZD0iNDYzODk1Njk1NDg1Mjc4MjU3NiI+IiZsdDvQk9Cw0YDRh9C40LPQs9Kv0LkmZ3Q7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXMiIG1zZ2lkPSI3ODk5ODI5NTE2MDQ4ODEzMjM3Ij4i4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXNfdHdvX2RvdHMiIG1zZ2lkPSIxMjI4MDc4OTk0ODY2MDMwNzM2Ij4i4oClIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHlQaG9uZU51bWJlciIgbXNnaWQ9Ijc2OTQwNjMwNDIwNzk2NzY1MTciPiIo0KPRgtCw0YHQvdGLINC00YPQs9Cw0LDRgCDQsdCw0LnRhdCz0q/QuSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1bmtub3duTmFtZSIgbXNnaWQ9IjIyNzc1NTY1NDY3NDI3NDY1MjIiPiIo0KLQvtC00L7RgNGF0L7QudCz0q/QuSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0Vm9pY2VNYWlsQWxwaGFUYWciIG1zZ2lkPSIyNjYwMDIwOTkwMDk3NzMzMDc3Ij4i0LTRg9GD0YIg0YjRg9GD0LTQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdE1zaXNkbkFscGhhVGFnIiBtc2dpZD0iMjg1MDg4OTc1NDkxOTU4NDY3NCI+Ik1TSVNETjEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtbWlFcnJvciIgbXNnaWQ9IjUxNTQ0OTk0NTc3MzkwNTI5MDciPiLQpdC+0LvQsdC+0LvRgtGL0L0g0LDRgdGD0YPQtNCw0Lsg0Y3RgdCy0Y3QuyDQsdGD0YDRg9GDIE1NSSDQutC+0LQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pRmRuRXJyb3IiIG1zZ2lkPSI1MjI0Mzk4MjE2Mzg1MzE2NDcxIj4i0JDQttC40LvQu9Cw0LPQsNCwINC306nQstOp0YUg0YLQvtCz0YLRgdC+0L0g0LTRg9Cz0LDQsNGA0LDQsNGAINGF0Y/Qt9Cz0LDQsNGA0LvQsNCz0LTRgdCw0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUVuYWJsZWQiIG1zZ2lkPSI4MTQ3Mjc4MzQ2NDE0NzE0MzE1Ij4i0q7QudC70YfQuNC70LPRjdGNINC40LTRjdCy0YXQttGB0Y3QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRW5hYmxlZEZvciIgbXNnaWQ9IjY4NTYyMjgxNDA0NTM0NzEwNDEiPiLQlNCw0YDQsNCw0YUg0q/QudC70YfQuNC70LPRjdGNINC40LTRjdCy0YXRgtGN0Lkg0LHQvtC70YHQvtC9OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VEaXNhYmxlZCIgbXNnaWQ9IjE5Mzc1NTMyMjY1OTI1MTY0MTEiPiLSrtC50LvRh9C40LvQs9GN0Y0g0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvRgdC+0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZVJlZ2lzdGVyZWQiIG1zZ2lkPSI2Mjc1MDE5MDgyNTk4MTAyNDkzIj4i0JDQvNC20LjQu9GC0YLQsNC5INCx0q/RgNGC0LPRjdCyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VFcmFzZWQiIG1zZ2lkPSIxMjg4NTg0Njk1Mjk3MjAwOTcyIj4i0JDQvNC20LjQu9GC0YLQsNC5INCw0YDQuNC70LPQsNC70LDQsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZEluY29ycmVjdCIgbXNnaWQ9Ijc2MTIyMDg4Mzk0NTAxMjg3MTUiPiLQkdGD0YDRg9GDINC90YPRg9GGINKv0LMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtbWlDb21wbGV0ZSIgbXNnaWQ9IjgyMzI1Mjc0OTU0MTE2OTgzNTkiPiJNTUkg0LTRg9GD0YHRgdCw0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFkUGluIiBtc2dpZD0iOTAxNTI3NzY0NTU0NjcxMDAxNCI+ItCi0LDQvdGLINCx0LjRh9GB0Y3QvSDRhdGD0YPRh9C40L0gUElOINCx0YPRgNGD0YMg0LHQsNC50L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWRQdWsiIG1zZ2lkPSI1NDg3MjU3NjQ3MDgxMTMyMjAxIj4i0KLQsNC90Ysg0LHQuNGH0YHRjdC9IFBV0Jog0LHRg9GA0YPRgyDQsdCw0LnQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pc21hdGNoUGluIiBtc2dpZD0iNjA5Mzc5MDU0NDk2ODYzNDE5Ij4i0KLQsNC90Ysg0L7RgNGD0YPQu9GB0LDQvSBQSU4g0YLQsNCw0YDQsNGF0LPSr9C5INCx0LDQudC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFBpbiIgbXNnaWQ9IjM4NTAwMTg0NDUxODc0NzUzNzciPiI0LTgg0YLQvtC+0L3QvtC+0YEg0LHSr9GC0Y3RhSBQSU4t0LMg0LHQuNGH0L3RjSDSr9KvLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4iOC3RgSDRhtOp06nQvdCz0q/QuSDRgtC+0L7QvdC+0L7RgSDQsdKv0YLRjdGFIFBVSy3QsyDQsdC40YfQvdGNINKv0q8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IlNJTSDQutCw0YDRgtC90YsgUFVLLdGC0q/Qs9C20LjQs9C00YHRjdC9LiDQotCw0LnQu9Cw0YUg0LHQvtC7IFBVSyDQutC+0LTRi9CzINCx0LjRh9C90Y0g0q/Sry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJTSU0g0LrQsNGA0YLRi9C9INGF0LDQsNC70YLRi9CzINCx0L7Qu9C40YPQu9Cw0YUg0LHQvtC7IFBVSzIt0LMg0LHQuNGH0L3RjSDSr9KvLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4i0JTRg9GD0LTQu9Cw0LPQsCDRhdC40LnQs9GH0LjQudC9IElEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2xpck1taSIgbXNnaWQ9Ijc3ODQ2NzM2NzM0NDY4MzMwOTEiPiLQk9Cw0YDRhyDQsdCw0LnQs9Cw0LAg0LTRg9GD0LTQu9Cw0LPQsCDRhdC40LnQs9GH0LjQudC9IElEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2ZNbWkiIG1zZ2lkPSI1MTIzMjE4OTg5MTQxNTczNTE1Ij4i0JTRg9GD0LTQu9Cw0LPQsCDQtNCw0LzQttGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDd01taSIgbXNnaWQ9IjkxMjk2NzgwNTY3OTUwMTY4NjciPiLQtNGD0YPQtNC70LDQs9CwINGF0q/Qu9GN0Y3Qu9Cz0Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkJhTW1pIiBtc2dpZD0iNDU1MTkzMDY3OTI2NzcwNTgxIj4i0JTRg9GD0LTQu9Cw0LPQsCDRhdC+0YDQuNCz0LvQvtGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUHdkTW1pIiBtc2dpZD0iNzA0MzcxNTY4NzkwNTI1NDE5OSI+ItCd0YPRg9GGINKv0LMg0YHQvtC70LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlBpbk1taSIgbXNnaWQ9IjMxMTMxMTc3ODAzNjExOTAzMDQiPiJQSU4g0YHQvtC70LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNuaXBNbWkiIG1zZ2lkPSIzMTEwNTM0NjgwNTU3ODU3MTYyIj4i0JTRg9GD0LTRgdCw0L0g0LTRg9Cz0LDQsNGAINGF0LDRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbmlyTW1pIiBtc2dpZD0iMzA2MjEwMjEyMTQzMDU0ODczMSI+ItCU0YPRg9C00LvQsNCz0LAg0YXQuNC50LPRh9C40LnQvSDQtNGD0LPQsNCw0YAg0YXRj9C30LPQsNCw0YDQu9Cw0LPQtNGB0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlRocmVlV0NNbWkiIG1zZ2lkPSI5MDUxMDQ3MTcwMzIxMTkwMzY4Ij4i0JPRg9GA0LLQsNC9INGH0LjQs9C70Y3Qu9GCINC00YPRg9C00LvQsNCz0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSdWFjTW1pIiBtc2dpZD0iNzgyNzg4NzQ1OTEzODMwODg4NiI+ItCl0q/RgdGN0Y3Qs9Kv0Lkg0YLQsNCw0LvQsNC80LbQs9Kv0Lkg0LTRg9GD0LTQu9Cw0LPQsNCw0YEg0YLQsNGC0LPQsNC70LfQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ25kTW1pIiBtc2dpZD0iMzExNjQ0NjIzNzA4MTU3NTgwOCI+ItCU0YPRg9C00LvQsNCz0LAg0YXQuNC50LPRh9C40LnQvSDQtNGD0LPQsNCw0YDRi9CzINC00LDQvNC20YPRg9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkRuZE1taSIgbXNnaWQ9IjEyNjU0Nzg5MzI0MTgzMzQzMzEiPiLQkdKv0q8g0YHQsNCw0LQg0LHQvtC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPbk5leHRDYWxsT24iIG1zZ2lkPSI0Mjk0MTU0MDkxNDU3ODE5MjMiPiLQlNGD0YPQtNC70LDQs9CwINGF0LjQudCz0YfQuNC50L0gSUQg0YXRj9C30LPQsNCw0YDQu9Cw0LPQtNGB0LDQvS4g0JTQsNGA0LDQsNCz0LjQudC9INC00YPRg9C00LvQsNCz0LA6INCl0Y/Qt9Cz0LDQsNGA0LvQsNCz0LTRgdCw0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSRGVmYXVsdE9uTmV4dENhbGxPZmYiIG1zZ2lkPSIzMDkyOTE4MDA2MDc3ODY0NjI0Ij4i0JTRg9GD0LTQu9Cw0LPQsCDRhdC40LnQs9GH0LjQudC9IElEINGF0Y/Qt9Cz0LDQsNGA0LvQsNCz0LTRgdCw0L0uINCU0LDRgNCw0LDQs9C40LnQvSDQtNGD0YPQtNC70LDQs9CwOiDQpdGP0LfQs9Cw0LDRgNC70LDQs9C00LDQsNCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T2ZmTmV4dENhbGxPbiIgbXNnaWQ9IjYxNzk0MjUxODI4NTY0MTg0NjUiPiLQlNGD0YPQtNC70LDQs9CwINGF0LjQudCz0YfQuNC50L0gSUQg0YXRj9C30LPQsNCw0YDQu9Cw0LPQtNCw0LDQs9Kv0LkuINCU0LDRgNCw0LDQs9C40LnQvSDQtNGD0YPQtNC70LDQs9CwOiDQpdGP0LfQs9Cw0LDRgNC70LDQs9C00YHQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPZmZOZXh0Q2FsbE9mZiIgbXNnaWQ9IjI1Njc5OTg2MzMxMjQ0MDg1NTIiPiLQlNGD0YPQtNC70LDQs9CwINGF0LjQudCz0YfQuNC50L0gSUQg0YXRj9C30LPQsNCw0YDQu9Cw0LPQtNGB0LDQvS4g0JTQsNGA0LDQsNCz0LjQudC9INC00YPRg9C00LvQsNCz0LA6INCl0Y/Qt9Cz0LDQsNGA0LvQsNCz0LTRgdCw0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlTm90UHJvdmlzaW9uZWQiIG1zZ2lkPSI4NjE0ODMwMTgwNTA4Njg2NjY2Ij4i0q7QudC70YfQuNC70LPRjdGNINC/0YDQvtCy0LjRiNC9INGF0LjQudCz0LTRjdGN0LPSr9C5IC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSUGVybWFuZW50IiBtc2dpZD0iMzM3NzM3MTE0NTkyNjgzNTY3MSI+ItCi0LAg0LTRg9GD0LTQu9Cw0LPQsCDRhdC40LnQs9GH0LjQudC9IElEINGC0L7RhdC40YDQs9C+0L7QsyDRgdC+0LvQuNC2INGH0LDQtNCw0YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZENoYW5nZWRUaXRsZSIgbXNnaWQ9IjU1OTIxODkzOTg5NTYxODc0OTgiPiLQpdGP0LfQs9Cw0LDRgNC70LDQs9C00YHQsNC9INGF0LDQvdC00LDQu9GCINOp06nRgNGH0LvTqdCz0LTTqdCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uRGF0YSIgbXNnaWQ9Ijg2NTM3OTQ3ODQ2OTAwNjU1NDAiPiLQlNCw0YLQsCDSr9C50LvRh9C40LvQs9GN0Y0g0YXQsNCw0LPQtNGB0LDQvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25FbWVyZ2VuY3kiIG1zZ2lkPSI2NTgxMTYzNzc5MDcyODMzNjY1Ij4i0K/QsNGA0LDQu9GC0LDQuSDSr9C50LvRh9C40LvQs9GN0Y0g0YXQsNCw0LPQtNGB0LDQvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25Ob3JtYWwiIG1zZ2lkPSI0OTUzODY3MDExMzg5NzUwNjczIj4i0JTRg9GD0YIg0q/QudC70YfQuNC70LPRjdGNINGF0L7RgNC40LPQu9C+0LPQtNGB0L7QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25BbGxWb2ljZSIgbXNnaWQ9IjMzOTY5NjM2NTIxMDgxNTEyNjAiPiLQkdKv0YUg0LTRg9GD0YIg0q/QudC70YfQuNC70LPRjdGN0L3Sr9Kv0LQg0YXQvtGA0LjQs9C70L7Qs9C00YHQvtC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblNtcyIgbXNnaWQ9IjgzMTQzNTIzMjc0NjE2Mzg4OTciPiJTTVMg0q/QudC70YfQuNC70LPRjdGNINGF0LDQsNCz0LTRgdCw0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VEYXRhIiBtc2dpZD0iOTk2NjM2NDg3MTA2MTcxMzIwIj4i0JTRg9GD0YIv0LTQsNGC0LAg0q/QudC70YfQuNC70LPRjdGNINGF0LDQsNCz0LTRgdCw0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VTbXMiIG1zZ2lkPSIxODg4NTg4MTUyNzkyMDIzODczIj4i0JTRg9GD0YIvU01TINKv0LnQu9GH0LjQu9Cz0Y3RjdC90q/Sr9C0INGF0L7RgNC40LPQu9C+0LPQtNGB0L7QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25BbGwiIG1zZ2lkPSI1NjQzMDI4MjY0NDY2MDkyODIxIj4i0JHSr9GFINC00YPRg9GCL9C00LDRgtCwL1NNUyDSr9C50LvRh9C40LvQs9GN0Y3QvdKv0q/QtCDRhdC+0YDQuNCz0LvQvtCz0LTRgdC+0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzVm9pY2UiIG1zZ2lkPSIxMjU4MzkzODEyMzM1MjU4MDE5Ij4i0JTRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRGF0YSIgbXNnaWQ9Ijg3MjQ1Njc4MjA3NzkzNzg5MyI+ItCU0LDRgtCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRkFYIiBtc2dpZD0iNTU2NjYyNDk5ODg0MDQ4NjQ3NSI+ItCk0LDQutGBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzU01TIiBtc2dpZD0iMjAxNTQ2MDM3MzcwMTUyNzQ4OSI+IlNNUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0RhdGFBc3luYyIgbXNnaWQ9IjQ1MjM0NTQ3ODM0OTg1NTE0NjgiPiLQodC40L3RhdGA0L7QvSDQsdGD0YEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhU3luYyIgbXNnaWQ9Ijc1MzAwMDA1MTk2NDYwNTQ3NzYiPiLQodC40L3QuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1BhY2tldCIgbXNnaWQ9IjY5OTEwMDY1NTc5OTM0MjM0NTMiPiLQn9Cw0LrQtdGCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzUEFEIiBtc2dpZD0iMzIzNTI1OTA4NTY0ODI3MTAzNyI+IlBBRCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MCIgbXNnaWQ9IjcxNzAzMzU0NzIxOTg2OTQ5NDUiPiLQoNC+0YPQvNC40L3QsyDQt9Cw0LDQs9GHINCw0YHRgdCw0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDEiIG1zZ2lkPSI1MzE0ODYxNTE5NzUyNTM4OTIyIj4i0KDQvtGD0LzQuNC90LMg0LfQsNCw0LPRhyDRg9C90YLQsNGA0YHQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQyIiBtc2dpZD0iODk2OTkyOTA0OTA4MTI2ODExNSI+ItCg0L7Rg9C80LjQvdCzINC30LDQsNCz0Ycg0LDQvdC40LLRh9C40LYg0LHQsNC50L3QsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MyIgbXNnaWQ9IjUxNDgyNTUwMjcwNDM5NDMzMTciPiLQpdOp0YDRiCDQtNC+0YLQvtGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ0IiBtc2dpZD0iODgwODQ1NjY4MjU1MDc5NjUzMCI+ItCR0LDRgNC40LvQs9GL0L0g0LPQsNC00L3QsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NSIgbXNnaWQ9Ijc2MDQwNjMyNTI4NTAzNTQzNTAiPiLQoNC+0YPQvNC40L3QsyAtINCh0L7QvdCz0L7Qs9C00YHQvtC9INCh0LjRgdGC0LXQvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NiIgbXNnaWQ9IjIwNTk0NDA4MjU3ODI4NzE1MTMiPiLQoNC+0YPQvNC40L3Qsy0g0JHQvtC70L7QvNC20YLQvtC5INCh0LjRgdGC0LXQvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NyIgbXNnaWQ9IjcxMTIwNzg3MjQwOTcyMzM2MDUiPiLQoNC+0YPQvNC40L3Qsy0g0KXQvtC70LHQvtC+0YLQvtC9INCi0q/QvdGIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ4IiBtc2dpZD0iNTk4OTU2OTc3ODYwNDA4OTI5MSI+ItCg0L7Rg9C80LjQvdCzLSDQo9GA0LDQvNGI0YPRg9C70LvRi9C9INCi0q/QvdGIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ5IiBtc2dpZD0iNzk2OTI5NjgxMTM1NTE1MjQ5MSI+ItCg0q/Sr9C80LjQvdCzIC0g0q7QudC70YfQuNC70LPRjdGN0L3QuNC5INCQ0LbQuNC70LvQsNCz0LDQsCDQkdKv0YDRjdC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxMCIgbXNnaWQ9IjM5OTI5MDY5OTk4MTUzMTY0MTciPiLQoNKv0q/QvNC40L3QsyAtINCl0Y3RgdGN0LPRh9C40LvRgdGN0L0g0q/QudC70YfQuNC70LPRjdGN0L3QuNC5INGE0YPQvdC60YbQuNC+0L3QsNC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxMSIgbXNnaWQ9IjQxNTQ0NzY4NTQ0MjY5MjA5NzAiPiLQoNKv0q/QvNC40L3QsyDQkdCw0L3QvdC10YAg0JDRgdCw0LDQu9GC0YLQsNC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxMiIgbXNnaWQ9IjExODkwNzExMTk5OTI3MjYzMjAiPiLQkdCw0L3QvdC10YDQs9Kv0Lkg0YDSr9Kv0LzQuNC90LMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dFNlYXJjaGluZyIgbXNnaWQ9IjgzNjAxNDE4ODU5NzIyNzk5NjMiPiLSrtC50LvRh9C40LvQs9GN0Y3QsyDRhdCw0LnQtiDQsdCw0LnQvdCw4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZU5vdEZvcndhcmRlZCIgbXNnaWQ9IjE2ODM2ODU4ODM4NDEyNzI1NjAiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjog0LTQsNC80LbRg9GD0LvQsNCz0LTQsNCw0LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZUZvcndhcmRlZCIgbXNnaWQ9IjEzMDI5MjIxMTc0OTg1OTA1MjEiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IkRJQUxJTkdfTlVNQkVSIj57MX08L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZUZvcndhcmRlZFRpbWUiIG1zZ2lkPSI5MjA2MjUxNzM2NTI3MDg1MjU2Ij4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz46IDx4bGlmZjpnIGlkPSJESUFMSU5HX05VTUJFUiI+ezF9PC94bGlmZjpnPiA8eGxpZmY6ZyBpZD0iVElNRV9ERUxBWSI+ezJ9PC94bGlmZjpnPiDRgdC10LrRg9C90LTRi9C9INC00LDRgNCw0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlUmVnaXN0ZXJlZCIgbXNnaWQ9IjUwNzMyMzc4Mjc2MjAxNjYyODUiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjog0LTQsNC80LbRg9GD0LvQsNCz0LTQsNCw0LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZVJlZ2lzdGVyZWRUaW1lIiBtc2dpZD0iNjc4MTYyMTk2NDMyMDYzNTE3MiI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+OiDQtNCw0LzQttGD0YPQu9Cw0LPQtNCw0LDQs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmY0NvbXBsZXRlIiBtc2dpZD0iMzExODg0ODIzMDk2Njg4NjU3NSI+ItCe0L3RhtC70L7QsyDQutC+0LQg0LTRg9GD0YHQsNCyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZjRXJyb3IiIG1zZ2lkPSIzMzI3NTYwMTI2NTg4NTAwNzc3Ij4i0KXQvtC70LHQvtC70YLRi9C9INCw0YHRg9GD0LTQsNC7INGN0YHQstGN0Lsg0LHRg9GA0YPRgyDRhNGD0L3QutGG0YvQvSDQutC+0LQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yT2siIG1zZ2lkPSIxMTkxOTE5Mzc4MDgzNDcyMjA0Ij4i0KLQuNC50LwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3IiIG1zZ2lkPSI3OTU2MzkyNTExMTQ2Njk4NTIyIj4i0KHSr9C70LbRjdGN0L3QuNC5INCw0LvQtNCw0LAg0LPQsNGA0LDQsi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JMb29rdXAiIG1zZ2lkPSI0NzExNjg3NDU2MTExOTYzMTYzIj4iVVJMINC+0LvQtNGB0L7QvdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JVbnN1cHBvcnRlZEF1dGhTY2hlbWUiIG1zZ2lkPSI2Mjk5OTgwMjgwNDQyMDc2Nzk5Ij4i0KHQsNC50YIg0LPRjdGA0YfQu9GN0LvQuNC50L0g0YHRhdC10Lwg0LTRjdC80LbQuNCz0LTRjdGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckF1dGgiIG1zZ2lkPSIxNDM1MDY1NjI5NDM4MDQ0NTM0Ij4i0JPRjdGA0YfQu9GN0LYg0YfQsNC00YHQsNC90LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclByb3h5QXV0aCIgbXNnaWQ9IjE3ODgyMDcwMTA1NTkwODEzMzEiPiLQn9GA0L7QutGB0Lgg0YHQtdGA0LLQtdGAINCz0Y3RgNGH0LvRjdC7INCx0q/RgtGN0LvQs9Kv0LnRgtGN0LIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yQ29ubmVjdCIgbXNnaWQ9Ijg3MTQyNzMyMzYzNjQ2NDA1NDkiPiLQodC10YDQstC10YDRgtGN0Lkg0YXQvtC70LHQvtCz0LTQvtC2INGH0LDQtNGB0LDQvdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JJTyIgbXNnaWQ9IjIzNDA1NTgxOTc0ODkzMDIxODgiPiLQodC10YDQstC10YDRgtGN0Lkg0YXQvtC70LHQvtCz0LTQvtC2INGH0LDQtNGB0LDQvdCz0q/QuS4g0JTQsNGA0LDQsCDQtNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JUaW1lb3V0IiBtc2dpZD0iNDc0MzQwMzcwMzc2Mjg4Mzk1NCI+ItCh0LXRgNCy0LXRgCDRhdC+0LvQsdC+0LvRgtGL0L0g0YXRg9Cz0LDRhtCw0LAg0YXRjdGC0YDRjdCyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclJlZGlyZWN0TG9vcCIgbXNnaWQ9Ijg2Nzk1OTYwOTAzOTI3Nzk1MTYiPiLQpdGD0YPQtNCw0YEg0YXRjdGCINC+0LvQvtC9INGB0LXRgNCy0LXRgCDQtNCw0YXQuNC9INGH0LjQs9C70q/Sr9C70Y3QuyDQsNCz0YPRg9C70LYg0LHQsNC50L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JVbnN1cHBvcnRlZFNjaGVtZSIgbXNnaWQ9IjUwMTU3MzA4MTI5MDYxOTIyMDgiPiLQn9GA0L7RgtC+0LrQvtC7INC00Y3QvNC20LjQs9C00Y3RhdCz0q/QuSDQsdCw0LnQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckZhaWxlZFNzbEhhbmRzaGFrZSIgbXNnaWQ9Ijk2NTQ5NjA2MDAwNjU4NjQxIj4i0JDRjtGD0LvQs9Kv0Lkg0YXQvtC70LHQvtC+0LMg0q/Sr9GB0LPRjdC2INGH0LDQtNGB0LDQvdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JCYWRVcmwiIG1zZ2lkPSIzNjM2OTI5NzIyNzI4ODgxOTcyIj4iVVJMINCx0YPRgNGD0YMg0YLRg9C7INGF0YPRg9C00YHRi9CzINC90Y3RjdC2INGH0LDQtNGB0LDQvdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGaWxlIiBtc2dpZD0iMjE3MDc4ODUxNTA1MjU1ODY3NiI+ItCk0LDQudC70LQg0YXQsNC90LTQsNC2INGH0LDQtNGB0LDQvdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGaWxlTm90Rm91bmQiIG1zZ2lkPSI2MjAzODU2NjEyMDQyNjU1MDg0Ij4i0JTRg9GD0LTRgdCw0L0g0YTQsNC50Lsg0L7Qu9C00YHQvtC90LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclRvb01hbnlSZXF1ZXN0cyIgbXNnaWQ9IjEyMzUzOTY5MjcwODcxODgyNTMiPiLQpdGN0YIg0L7Qu9C+0L0g0YXSr9GB0Y3Qu9GC0LjQudCzINCx0L7Qu9C+0LLRgdGA0YPRg9C70LYg0LHQsNC50L3QsC4g0JTQsNGA0LDQsCDQtNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4OTY3NzEwMDI1MDM2MTYzODIyIj4iPHhsaWZmOmcgaWQ9IkFDQ09VTlQiPiUxJHM8L3hsaWZmOmc+LdC9INC90Y3QstGC0YDRjdC70YLQuNC50L0g0LDQu9C00LDQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRTZXJ2aWNlU3luYyIgbXNnaWQ9IjgzNTM1MjMwNjAyNjkzMzU2NjciPiLQodC40L3QuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRTZXJ2aWNlU3luY05vdGlmaWNhdGlvblRpdGxlIiBtc2dpZD0iMzk3NzQzMzQ5MTkxOTAxNDU4Ij4i0KHQuNC90LoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250ZW50U2VydmljZVRvb01hbnlEZWxldGVzTm90aWZpY2F0aW9uRGVzYyIgbXNnaWQ9IjgxMDA5ODE0MzUwODA2OTY0MzEiPiLQpdGN0YIg0L7Qu9C+0L0gPHhsaWZmOmcgaWQ9IkNPTlRFTlRfVFlQRSI+JXM8L3hsaWZmOmc+INGD0YHRgtCz0LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfbWVtb3J5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2NDk0MDE5MjM0MTAyMTU0ODk2Ij4i0KLQsNCx0LvQtdGC0LjQudC9INGB0LDQvSDQtNKv0q/RgNGB0Y3QvS4g0JfQsNC5INGH06nQu9Op06nQu9Op0YUg0LHQvtC7INC30LDRgNC40Lwg0YTQsNC50LvRi9CzINGD0YHRgtCz0LDQvdCwINGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X21lbW9yeSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0NzU5OTkyODY2ODAwMDA1NDEiPiLQo9GC0LDRgdC90Ysg0YHQsNC9INC00q/Sr9GA0YHRjdC9LiDQl9Cw0Lkg0YfTqdC706nTqdC706nRhSDQsdC+0Lsg0LfQsNGA0LjQvCDRhNCw0LnQu9GL0LMg0YPRgdGC0LPQsNC90LAg0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZSIgbXNnaWQ9IjY1NDU2OTYwMDc2MzE0MDQyOTIiPiLQkdC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfZGlhbG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTQ1MzUxNDIwODY1MjAyODUzIj4i0KLQsNCx0LvQtdGC0YvQvSDRgdC+0L3Qs9C+0LvRgtGD0YPQtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvd2VyX2RpYWxvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjEzMTk5MTkwNzU0NjM5ODg2MzgiPiLQo9GC0LDRgdC90Ysg0YHQvtC90LPQvtC70YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaWxlbnRfbW9kZSIgbXNnaWQ9IjcxNjc3MDMzODk4MDI2MTg2NjMiPiLQp9C40LzRjdGN0LPSr9C5INCz0L7RgNC40LwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0dXJuX29uX3JhZGlvIiBtc2dpZD0iMzkxMjc5MzA5MjMzOTk2MjM3MSI+ItCj0YLQsNGB0LPSr9C5INGF0L7Qu9Cx0L7QvtCzINCw0YHQsNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0dXJuX29mZl9yYWRpbyIgbXNnaWQ9IjgxOTg3ODQ5NDk5ODcwNjIzNDYiPiLQo9GC0LDRgdCz0q/QuSDRgdKv0LvQttGN0Y3QsyDRg9C90YLRgNCw0LDRhSDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2xvY2siIG1zZ2lkPSI3OTkwOTQ2NTU0OTYwOTgxNTMiPiLQlNGN0LvQs9GN0YbQvdC40Lkg0YLSr9Cz0LbRjdGNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfb2ZmIiBtc2dpZD0iNDI2NjYxNDEwNzQxMjg2NTA0OCI+ItCj0L3RgtGA0LDQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfc2lsZW50IiBtc2dpZD0iMzE5Mjk4MTYzMDE4NDczMDc4Ij4i0KXQvtC90YUg0YPQvdGC0YDQsNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaWxlbnRfbW9kZV92aWJyYXRlIiBtc2dpZD0iNzA3MjA0MzM4ODU4MTU1MTM5NSI+ItCl0L7QvdGF0L3RiyDRh9C40YfQuNGA0LPRjdGNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3JpbmciIG1zZ2lkPSI4NTkyMjQxODE2MTk0MDc0MzUzIj4i0KXQvtC90YUg0LDRgdGB0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX3Byb2dyZXNzIiBtc2dpZD0iMjI4MTA3OTI1NzMyOTk4MTIwMyI+ItCj0L3RgtGA0LDQsNC2INCx0LDQudC90LDigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9jb25maXJtIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMzg1NzQ1MTc5NTU1NzMxNDcwIj4i0KLQsNC90Ysg0YLQsNCx0LvQtdGCINGD0L3RgtGA0LDRhSDQsdC+0LvQvdC+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NDk3OTIxNzUyNDI4MjEzNTMiPiLQotCw0L3RiyDRg9GC0LDRgSDRg9C90YLRgNCw0YUg0LHQvtC70L3Qvi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9jb25maXJtX3F1ZXN0aW9uIiBtc2dpZD0iMjkwNjU0NDc2ODg4MTEzNjE4MyI+ItCi0LAg0YPQvdGC0YDQsNCw0YUg0YPRgz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWJvb3Rfc2FmZW1vZGVfdGl0bGUiIG1zZ2lkPSI3MDU0NTA5OTE0NTAwMTQwMzYxIj4i0JDRjtGD0LvQs9Kv0Lkg0LPQvtGA0LjQvNC+0L7RgCDQtNCw0YXQuNC9INCw0YHQsNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWJvb3Rfc2FmZW1vZGVfY29uZmlybSIgbXNnaWQ9IjU1MjkzOTQ0NTAyNzg0NjY4Ij4i0KLQsCDQsNGO0YPQu9Cz0q/QuSDQs9C+0YDQuNC80L7QvtGAINC00LDRhdC40L0g0LDRgdCw0LDRhSDRg9GDPyDQrdC90Y0g0L3RjCDRgtCw0L3RiyDRgdGD0YPQu9Cz0LDRgdCw0L0g0LPRg9GA0LDQstC00LDQs9GHINGC0LDQu9GL0L0g0LHSr9GFINCw0L/Qv9C70LjQutC10YjQvdGL0LMg0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQs9C+0L3Qvi4g0KLQsCDQtNCw0YXQuNC9INCw0YHQsNCw0YUg0q/QtdC0INGC0Y3QtNCz0Y3RjdGAINC90Ywg0YHRjdGA0LPRjdGN0LPQtNGN0L3RjS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWNlbnRfdGFza3NfdGl0bGUiIG1zZ2lkPSIzNjkxNzY0NjIzNjM4MTI3ODg4Ij4i0KHSr9Kv0LvQuNC50L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19yZWNlbnRfdGFza3MiIG1zZ2lkPSI4Nzk0OTA2NjU4NzMyMTkzNDczIj4i0KHSr9Kv0LvQuNC50L0g0LDQv9C/INGF0L7QvtGB0L7QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9ucyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDA4NDc3MTQwMDg4MDUzNjY1Ij4i0KLQsNCx0LvQtdGCINGB0L7QvdCz0L7Qu9GCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNDA2NDE2ODMxNTQxNjE1MjU4Ij4i0KPRgtCw0YHQvdGLINGB0L7QvdCz0L7Qu9GC0YPRg9C0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9sb2NrIiBtc2dpZD0iMjg0NDk0NTE5MTc5MjExOTcxMiI+ItCU0Y3Qu9Cz0Y3RhtC90LjQuSDRgtKv0LPQttGN0Y0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3Bvd2VyX29mZiIgbXNnaWQ9IjQ0NzE4Nzk0NDA4Mzk4Nzk3MjIiPiLQo9C90YLRgNCw0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fYnVnX3JlcG9ydCIgbXNnaWQ9Ijc5MzQwMTA1Nzg5MjIzMDQ3OTkiPiLQkNC70LTQsNCwINC80Y3QtNGN0Y3Qu9C70Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF90aXRsZSIgbXNnaWQ9IjI2Njc0OTQ4MDM3NDI1NDg1MzMiPiLQodC+0LPQvtCzINGA0LXQv9C+0YDRgiDQsNCy0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9tZXNzYWdlIiBtc2dpZD0iMzk4NDQ3MDQ4NzUwMzUwNDU2Ij4i0K3QvdGNINGC0LDQvdGLINGC06nRhdOp06nRgNOp0LzQttC40LnQvSDQvtC00L7QvtCz0LjQudC9INGB0YLQsNGC0YPRgdGL0L0g0YLQsNC70LDQsNGA0YUg0LzRjdC00Y3RjdC70LvQuNC50LMg0YbRg9Cz0LvRg9GD0LvQsNGFINCx0LAg0LjQvNGN0LnQuyDQvNC10YHRgdC10LYg0LHQvtC70LPQvtC9INC40LvQs9GN0Y3QvdGNLiDQkNC70LTQsNCw0L3RiyDQvNGN0LTRjdCz0LTQu9GN0Y3RgSDRjdGF0Y3Qu9C2INC40LvQs9GN0Y3RhdGN0LQg0LHRjdC70Y3QvSDQsdC+0LvQvtGF0L7QtCDRhdGN0YHRjdCzINGF0YPQs9Cw0YbQsNCwINC30LDRgNGG0YPRg9C70LDQs9C00LDQvdCwINGC0Y3QstGH0Y3RjdGA0YLRjdC5INCx0LDQudC90LAg0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3RvZ2dsZV9zaWxlbnRfbW9kZSIgbXNnaWQ9IjgyMTk1MjUzNDQyNDY4MTA5MjUiPiLQp9C40LzRjdGN0LPSr9C5INCz0L7RgNC40LwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3NpbGVudF9tb2RlX29uX3N0YXR1cyIgbXNnaWQ9IjMyODk4NDE5MzcwMDM3NTg4MDYiPiLQlNGD0YMg0YXQsNCw0LPQtNGB0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fc2lsZW50X21vZGVfb2ZmX3N0YXR1cyIgbXNnaWQ9IjE1MDYwNDY1NzkxNzcwNjY0MTkiPiLQlNGD0YMg0LDRgdCw0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uc190b2dnbGVfYWlycGxhbmVfbW9kZSIgbXNnaWQ9IjU4ODQzMzAzMDY5MjYzMDc0NTYiPiLQndC40YHQu9GN0LPQuNC50L0g0LPQvtGA0LjQvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zX2FpcnBsYW5lX21vZGVfb25fc3RhdHVzIiBtc2dpZD0iMjcxOTU1Nzk4MjYwODkxOTc1MCI+ItCd0LjRgdC70Y3Qs9C40LnQvSDQs9C+0YDQuNC8INCw0YHQsNCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnNfYWlycGxhbmVfbW9kZV9vZmZfc3RhdHVzIiBtc2dpZD0iNTA3NTA3MDQ0Mjg1NDQ5MDI5NiI+ItCd0LjRgdC70Y3Qs9C40LnQvSDQs9C+0YDQuNC8INGD0L3RgtCw0YDRgdCw0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbmZvX292ZXJmbG93IiBtc2dpZD0iNTMwMTk4MTc0MTcwNTM1NDk5MyI+Ijk5OSsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYWZlTW9kZSIgbXNnaWQ9IjI3ODgyMjgwNjE1NDc5MzAyNDYiPiLQkNGO0YPQu9Cz0q/QuSDQs9C+0YDQuNC8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF9zeXN0ZW1fbGFiZWwiIG1zZ2lkPSI2NTc3Mzc1MzM1NzI4NTUxMzM2Ij4i0JDQvdC00YDQvtC50LQg0YHQuNGB0YLQtdC8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2Nvc3RNb25leSIgbXNnaWQ9IjU0Mjk4MDgyMTc4NjE0NjA0MDEiPiLQotCw0L3QsNCw0YEg0YLTqdC70LHTqdGAINCw0LLQtNCw0LMg0q/QudC70YfQuNC70LPRjdGN0L3Sr9Kv0LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Nvc3RNb25leSIgbXNnaWQ9IjMyOTMzMDE5MDM0MDk4Njk0OTUiPiLQotCw0L3RiyDRgtOp0LvQsdOp0YDRgiDQvtGA0YPRg9C70LDRhSDQt9Kv0LnQu9C40LnQsyDRhdC40LnRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbWVzc2FnZXMiIG1zZ2lkPSI3NTIxMjQ5MTQ4NDQ1NDU2NjYyIj4i0KLQsNC90Ysg0LzQtdGB0YHQtdC2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19tZXNzYWdlcyIgbXNnaWQ9Ijc4MjE5OTkwNzEwMDM2OTkyMzYiPiLQotCw0L3RiyBTTVMsINC4LdC80Y3QudC7INCx0LAg0LHRg9GB0LDQtCDQvNC10YHRgdC10LbQuNC50LMg0YPQvdGI0LjRhSDQsdC+0LvQvtC9INCx0LjRh9C40YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3BlcnNvbmFsSW5mbyIgbXNnaWQ9IjM1MTkxNjMxNDEwNzA1MzM0NzQiPiLQotCw0L3RiyDRhdGD0LLQuNC50L0g0LzRjdC00Y3RjdC70Y3QuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfcGVyc29uYWxJbmZvIiBtc2dpZD0iODQyNjQ1MzEyOTc4ODg2MTMzOCI+ItCi0LDQvdGLINGF0LDRgNC40LvRhtCw0LPRh9C00YvQvSDQutCw0YDRgtCw0L3QtCDRhdCw0LTQs9Cw0LvQsNCz0LTRgdCw0L0g0YLQsNC90Ysg0LzRjdC00Y3RjdC70Y3Qu9C0INGI0YPRg9C0INGF0LDQvdC00LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc29jaWFsSW5mbyIgbXNnaWQ9IjU3OTkwOTY2MjM0MTIwNDM3OTEiPiLQotCw0L3RiyDQvdC40LnRgtC40LnQvSDQvNGN0LTRjdGN0LvRjdC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zb2NpYWxJbmZvIiBtc2dpZD0iNzEyOTg0MjQ1NzYxMTY0MzQ5MyI+ItCi0LDQvdGLINGF0LDRgNC40LvRhtCw0LPRh9C40LQg0LHQvtC70L7QvSDQvdC40LnRgtC40LnQvSDRhdC+0LvQsdC+0L7QvdGLINGC0YPRhdCw0Lkg0LzRjdC00Y3RjdC70Y3Qu9C0INGI0YPRg9C0INGF0LDQvdC00LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbG9jYXRpb24iIG1zZ2lkPSI2MzUxNDk3NDI0MzY2OTIwNDkiPiLQotCw0L3RiyDQsdCw0LnRgNGI0LjQuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbG9jYXRpb24iIG1zZ2lkPSI1NzA0Njc5NzYzMTI0MTcwMTAwIj4i0KLQsNC90Ysg0LHQvtC00LjRgiDQsdCw0LnRgNGI0LvRi9CzINGF0Y/QvdCw0YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX25ldHdvcmsiIG1zZ2lkPSI1ODA4OTgzMzc3NzI3MTA5ODMxIj4i0KHSr9C70LbRjdGN0L3QuNC5INGF0L7Qu9Cx0L7QviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbmV0d29yayIgbXNnaWQ9IjQ0NzgyOTk0MTMyNDE4NjE5ODciPiLQotOp0YDTqdC7INCx0q/RgNC40LnQvSDRgdKv0LvQttGN0Y3QvdC40Lkg0YTRg9C90LrRhtKv0q/QtNGN0LQg0YXQsNC90LTQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2JsdWV0b290aE5ldHdvcmsiIG1zZ2lkPSIxNTg1NDAzNTQ0MTYyMTI4MTA5Ij4i0JHQu9GO0YLSr9Kv0YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2JsdWV0b290aE5ldHdvcmsiIG1zZ2lkPSI1NjI1Mjg4NTc3MTY0MjgyMzkxIj4i0JHQu9GO0YLSr9Kv0YLRjdGN0YAg0YLTqdGF06nTqdGA06nQvNC2INCx0L7Qu9C+0L0g0YHSr9C70LbRjdGN0L3QtCDRhdCw0L3QtNCw0YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2F1ZGlvU2V0dGluZ3MiIG1zZ2lkPSI4MzI5MjYxNjcwMTUxODcxMjM1Ij4i0JDRg9C00LjQviDRgtC+0YXQuNGA0LPQvtC+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hdWRpb1NldHRpbmdzIiBtc2dpZD0iMjY0MTUxNTQwMzM0NzU2ODEzMCI+ItCQ0YPQtNC40L4g0YLQvtGF0LjRgNCz0L7QviDRgdC+0LvQuNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hZmZlY3RzQmF0dGVyeSIgbXNnaWQ9IjYyMDkyNDY2NTM0MjQ3OTgwMzMiPiLQkdCw0YLQtdGA0LXQudC0INC906nQu9Op06nQu9Op0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FmZmVjdHNCYXR0ZXJ5IiBtc2dpZD0iNjQ0MTI3NTMyMDYzODkxNjk0NyI+ItCR0LDRgtC10YDQtdC5INGF0YPRgNC00LDQvSDQtNGD0YPRgdCz0LDRhSDRhNGD0L3QutGG0LjQudCzINCw0YjQuNCz0LvQsNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jYWxlbmRhciIgbXNnaWQ9IjU4NjM1MDg0Mzc3ODM2ODM5MDIiPiLQmtCw0LvQtdC90LTQsNGA0YwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2NhbGVuZGFyIiBtc2dpZD0iNTc3NzUzNDMxNjk4MjE4NDQxNiI+ItCa0LDQu9C10L3QtNCw0YAg0LHQvtC70L7QvSDSr9C50Lsg0Y/QstC00LDQu9C0INGI0YPRg9C0INGF0LDQvdC00LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGljdGlvbmFyeSIgbXNnaWQ9IjQxNDg1OTcxMjg4NDM2NDEzNzkiPiLQpdGN0YDRjdCz0LvRjdCz0YfQuNC50L0g0YLQvtC70LjQvtGBINGD0L3RiNC40YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RpY3Rpb25hcnkiIG1zZ2lkPSI3OTIxMTY2MzU1OTY0NzY0NDkwIj4i0KXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INGC0L7Qu9GMINCx0LjRh9Cz0Y3RjdGBINKv0LMg0YPQvdGI0LjRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iODA5MDIzNzcwMjQzMjU3Njc4OCI+ItCl0Y3RgNGN0LPQu9GN0LPRh9C40LnQvSDRgtC+0LvRjNC0INCx0LjRh9C40YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjI3MTE1NjE5OTQ0OTczNjE2NDYiPiLQpdGN0YDRjdCz0LvRjdCz0YfQuNC50L0g0YLQvtC70Ywg0LHQuNGH0LjQs9GCINKv0LMg0L3RjdC80Y3RhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYm9va21hcmtzIiBtc2dpZD0iMTk0OTUxOTY3MzEwMzk2ODIyOSI+ItCl0LDQstGH0YPRg9GA0LPQsCDQsdC+0LvQvtC9INGC0q/Sr9GFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19ib29rbWFya3MiIG1zZ2lkPSI0MTY5NzcxNjA2MjU3OTYzMDI4Ij4i0KXQsNCy0YfRg9GD0YDQs9CwINCx0L7Qu9C+0L0g0YXTqdGC0YfQuNC50L0g0YLSr9Kv0YXRgNKv0q8g0YjRg9GD0LQg0YXQsNC90LTQsNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kZXZpY2VBbGFybXMiIG1zZ2lkPSI2MTE3NzA0NjI5NzI4ODI0MTAxIj4i0KHRjdGA0q/Sr9C70Y3QsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfZGV2aWNlQWxhcm1zIiBtc2dpZD0iNDc2OTM1NjM2MjI1MTY0MTE3NSI+ItCh0Y3RgNKv0q/Qu9GN0LMg0YLQvtGF0LjRgNGD0YPQu9Cw0YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3ZvaWNlbWFpbCIgbXNnaWQ9IjQxNjIyMzcxNDUwMjc1OTIxMzMiPiLQlNGD0YPRgiDRiNGD0YPQtNCw0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3ZvaWNlbWFpbCIgbXNnaWQ9IjI0OTg0MDM5Njk4NjI5NTEzOTMiPiLQlNGD0YPRgiDRiNGD0YPQtNCw0L3QtCDRiNGD0YPQtCDRhdCw0L3QtNCw0YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX21pY3JvcGhvbmUiIG1zZ2lkPSIxNzE1Mzk5MDAyNTAwNDM0NjQiPiLQnNC40LrRgNC+0YTQvtC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19taWNyb3Bob25lIiBtc2dpZD0iNzEwNjYxODI4NjkwNTczODQwOCI+ItCQ0YPQtNC40L4g0LHQuNGH0LjRhdC40LnQvSDRgtGD0LvQtCDQvNC40LrRgNC+0YTQvtC90LQg0YjRg9GD0LQg0YXQsNC90LTQsNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jYW1lcmEiIG1zZ2lkPSI0ODIwMzcyNDk1ODk0NTg2NjE1Ij4i0JrQsNC80LXRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfY2FtZXJhIiBtc2dpZD0iMjkzMzY2NzM3MjI4OTU2NzcxNCI+ItCX0YPRgNCw0LMg0Y3QstGB0Y3QuyDQsdC40YfQu9GN0LMg0YXQuNC50YXRjdGN0YAg0LrQsNC80LXRgNGCINGI0YPRg9C0INGF0LDQvdC00LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc2NyZWVubG9jayIgbXNnaWQ9IjgyNzU1MDAxNzMzMzA3MTgxNjgiPiLQlNGN0LvQs9GN0YYg0YLSr9Cz0LbQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zY3JlZW5sb2NrIiBtc2dpZD0iNzA2NzQ5NzEyODkyNTQ5OTQwMSI+ItCi0LDQvdGLINGC06nRhdOp06nRgNOp0LzQttC40LnQvSDQtNGN0LvQs9GN0YbQuNC50L0g0YLSr9Cz0LbRjdGN0L3QtCDQvdOp0LvTqdOp0LvTqdGFINGH0LDQtNCy0LDRgC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYXBwSW5mbyIgbXNnaWQ9IjgwMjg3ODk3NjI2MzQxNDc3MjUiPiLQotCw0L3RiyDQsNC/0L/Qu9C40LrQtdGI0L3RiyDQvNGN0LTRjdGN0LvRjdC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hcHBJbmZvIiBtc2dpZD0iMzk1MDM3ODUzODA0OTYyNTkwNyI+ItCi0LDQvdGLINGC06nRhdOp06nRgNOp0LzQttC40LnQvSDQsdGD0YHQsNC0INCw0L/Qv9C70LjQutC10YjQvdC0INC906nQu9Op06nQu9Op0YUg0YfQsNC00LLQsNGALiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl93YWxscGFwZXIiIG1zZ2lkPSIzODUwMjgwMTU4MDQxMTc1OTk4Ij4i0KXQsNC90YvQvSDQt9GD0YDQsNCzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY193YWxscGFwZXIiIG1zZ2lkPSI1NjMwNDE3ODU0NzUwNTQwMTU0Ij4i0KLTqdGF06nTqdGA06nQvNC20LjQudC9INGF0LDQvdGL0L0g0LfRg9GA0LPQuNC50L0g0YLQvtGF0LjRgNCz0L7QvtCzINGB0L7Qu9C40YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N5c3RlbUNsb2NrIiBtc2dpZD0iNDA2NTM1NzU5MjM2NjEyOTkyIj4i0KbQsNCzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeXN0ZW1DbG9jayIgbXNnaWQ9IjM5NDQzNTk4MzM2MjQwOTQ5OTIiPiLQotOp0YXTqdOp0YDTqdC80LbQuNC50L0g0YbQsNCzINGN0YHQstGN0Lsg0YbQsNCz0LjQudC9INCx0q/RgdC40LnQsyDRgdC+0LvQuNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zdGF0dXNCYXIiIG1zZ2lkPSIyMDk1ODYyNTY4MTEzOTQ1Mzk4Ij4i0KHRgtCw0YLRg9GBINGB0LDQvNCx0LDRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RhdHVzQmFyIiBtc2dpZD0iNjI0MjU5MzQzMjIyNjgwNzE3MSI+ItCi06nRhdOp06nRgNOp0LzQttC40LnQvSDRgdGC0LDRgtGD0YEg0YHQsNC80LHQsNGA0YvQvSDRgtC+0YXQuNGA0LPQvtC+0LMg0YHQvtC70LjRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3luY1NldHRpbmdzIiBtc2dpZD0iMzM0MTk5MDk4NjE0NzgyNjU0MSI+ItCh0LjQvdC6INGC0L7RhdC40YDQs9C+0L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N5bmNTZXR0aW5ncyIgbXNnaWQ9Ijc2MDMxOTUyNjUxMjkwMzE3OTciPiLQodC40L3QuiDRgtC+0YXQuNGA0LPQvtC+0L3QtCDRhdCw0L3QtNCw0YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2FjY291bnRzIiBtc2dpZD0iMzM1OTY0NjI5MTEyNTMyNTUxOSI+ItCi0LDQvdGLINCw0LrQsNGD0L3RgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWNjb3VudHMiIG1zZ2lkPSI0OTQ4NzMyNjQxODI3MDkxMzEyIj4i0JHQvtC70L7QvNC20LjRgiDQsNC60LDRg9C90YLQsNC0INGF0LDQvdC00LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfaGFyZHdhcmVDb250cm9scyIgbXNnaWQ9Ijc5OTgyMTQ5Njg3OTE1OTkzMjYiPiLQpdCw0YDQtNCy0LXRgCDQutC+0L3RgtGA0L7QuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfaGFyZHdhcmVDb250cm9scyIgbXNnaWQ9IjQzNTcwNTc4NjEyMjU0NjI3MDIiPiLQk9Cw0YAg0YLTqdGF06nTqdGA06nQvNC20LjQudC9INGF0LDRgNC00LLQtdGA0YIg0YjRg9GD0LQg0YXQsNC90LTQsNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9waG9uZUNhbGxzIiBtc2dpZD0iOTA2NzE3Mzk4ODMyNTg2NTkyMyI+ItCj0YLRgdCw0LDRgCDRj9GA0LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfcGhvbmVDYWxscyIgbXNnaWQ9Ijc0ODk3MDE2MjA0NDYxODM3NzAiPiLQo9GC0LDRgdC90Ysg0LTRg9GD0LTQu9Cw0LPRi9CzINGF0Y/QvdCw0YUsINCx0LjRh9C40YUg0LHQvtC70L7QvSDQsdC+0LvQvtCy0YHRgNGD0YPQu9Cw0YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N5c3RlbVRvb2xzIiBtc2dpZD0iNDY1MjE5MTY0NDA4MjcxNDA0OCI+ItCh0LjRgdGC0LXQvNC40LnQvSDQsdCw0LPQsNC2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeXN0ZW1Ub29scyIgbXNnaWQ9IjgxNjIxMDI2MDIxOTA3MzQzMDUiPiLQodC40YHRgtC10LzRgNKv0q8g0LTQvtC+0LQg0YLTqdCy0YjQuNC90LjQuSDRhdCw0L3QtNCw0YUg0LHQvtC70L7QvSDRg9C00LjRgNC00LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGV2ZWxvcG1lbnRUb29scyIgbXNnaWQ9IjM0NDYxNjQ1ODQ3MTA1OTY1MTMiPiLQpdOp0LPQttKv0q/Qu9GN0YUg0LHQsNCz0LDQtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfZGV2ZWxvcG1lbnRUb29scyIgbXNnaWQ9IjcwNTg4MjgwMzIzNTgxNDIwMTgiPiLQl9Op0LLRhdOp0L0g0LDQv9C/0LvQuNC60LXRiNC9INGF06nQs9C20q/Sr9C70Y3Qs9GH0LTRjdC0INGF0Y3RgNGN0LPRgtGN0Lkg0YTRg9C90LrRhi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGlzcGxheSIgbXNnaWQ9IjQyNzk5MDk2NzYwMzY0MDI2MzYiPiLQkdGD0YHQsNC0INCw0L/Qv9C70LjQutC10YjQvSBVSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfZGlzcGxheSIgbXNnaWQ9IjYwNTEwMDIwMzE5MzMwMTM3MTQiPiLQkdGD0YHQsNC0INCw0L/Qv9C70LjQutC10YjQvdGLIFVJLdC0INC906nQu9Op06nQu9Op0YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N0b3JhZ2UiIG1zZ2lkPSIxOTcxMTE4NzcwNTQ2MzM2OTY2Ij4i0KHQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdG9yYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc0NDIzMTg1MDI0NDY4NzQ5OTkiPiJVU0Ig0YHQsNC90LQg0YXQsNC90LTQsNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjkyMDMzMDIyMTQ5MTUzNTU3NzQiPiJTRCDQutCw0YDRgtCw0LQg0YXQsNC90LTQsNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hY2Nlc3NpYmlsaXR5RmVhdHVyZXMiIG1zZ2lkPSI3OTE5MDI1NjAyMjgzNTkzOTA3Ij4i0KXRj9C70LHQsNGAINGF0LDQvdC00LDRhSDRhNGD0L3QutGGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hY2Nlc3NpYmlsaXR5RmVhdHVyZXMiIG1zZ2lkPSI0MjA1MTk2ODgxNjc4MTQ0MzM1Ij4i0KLRg9GB0LvQsNGFINGC0LXRhdC90L7Qu9C+0LPQuNC+0YEg0YXSr9GB0Y3Qu9GCINC40LvQs9GN0Y3RhSDQsdC+0LvQvtC80LbRgtC+0Lkg0YTRg9C90LrRhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmV0cmlldmVXaW5kb3dDb250ZW50IiBtc2dpZD0iMzkwMTcxNzkzNjkzMDE3MDMyMCI+ItCm0L7QvdGF0L3RiyDQutC+0L3RgtC10L3RgtGL0LMg0LDQstCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmV0cmlldmVXaW5kb3dDb250ZW50IiBtc2dpZD0iMzc3MjIyNTAwODYwNTMxMDY3MiI+ItCi0LDQvdGLINGF0LDRgNC40LvRhtCw0L0g0q/QudC70YfQu9GN0YUg0YbQvtC90YXQvdGLINC60L7QvdGC0LXQvdGC0L7QvtGBINGI0LDQu9Cz0LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJlcXVlc3RUb3VjaEV4cGxvcmF0aW9uIiBtc2dpZD0iMzEwODcyMzM2NDY3NjY2NzMyMCI+ItCl0q/RgNGHINGC0LDQvdC40YXRi9CzINCw0YHQsNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmVxdWVzdFRvdWNoRXhwbG9yYXRpb24iIG1zZ2lkPSI1ODAwNTUyNTE2Nzc5MjQ5MzU2Ij4i0KXSr9GA0YHRjdC9INC30q/QudC70YHQuNC50LMg0YfQsNC90LPQsNCw0YAg0LTRg9GD0LTQsNGFINCx0LAg0LTQvtGF0LjQviDQsNGI0LjQs9C70LDQvSDQtNGN0LvQs9GN0YbQuNC50LMg0YLQsNC90YzQtiDQsdC+0LvQvdC+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdEVuaGFuY2VkV2ViQWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjE3Mzk4ODE3NjY1MjI1OTQwNzMiPiLQodCw0LnQttGA0YPRg9C70YHQsNC9INCy0LXQsSDRhdCw0L3QtNCw0LvRgtGL0LMg0LDRgdCw0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXF1ZXN0RW5oYW5jZWRXZWJBY2Nlc3NpYmlsaXR5IiBtc2dpZD0iNzg4MTA2Mzk2MTUwNzUxMTc2NSI+ItCQ0L/QvyDQutC+0L3RgtC10L3RgtC+0LQg0LjQu9Kv0q8g0YXRj9C70LHQsNGAINGF0LDQvdC00YPRg9C70LDRhdGL0L0g0YLRg9C70LQg0YHQutGA0LjQv9GC0YvQsyDRgdGD0YPQu9Cz0LDQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdEZpbHRlcktleUV2ZW50cyIgbXNnaWQ9IjIxMDM0NDAzOTE5MDI0MTIxNzQiPiLQkdC40YfRgdGN0L0g0YLQtdC60YHRgtGN0Y0g0LDQttC40LPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmVxdWVzdEZpbHRlcktleUV2ZW50cyIgbXNnaWQ9Ijc0NjMxMzUyOTIyMDQxNTI4MTgiPiLQmtGA0LXQtNC40YIg0LrQsNGA0YLRi9C9INC00YPQs9Cw0LDRgCDQsdC+0LvQvtC9INC90YPRg9GGINKv0LMg0LfRjdGA0Y3QsyDRhdGD0LLQuNC50L0g0LTQsNGC0LDQsyDQsNCz0YPRg9C70LYg0LHQsNC50L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0YXR1c0JhciIgbXNnaWQ9Ijc0MTcxOTI2Mjk2MDE4OTA3OTEiPiLRgdGC0LDRgtGD0YEg0YHQsNC80LHQsNGA0YvQsyDQuNC00Y3QstGF0LPSr9C5INCx0L7Qu9Cz0L7RhSDQsdC+0LvQvtC9INOp06nRgNGH0LvTqdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyIiBtc2dpZD0iODQzNDY2OTU0OTUwNDI5MDk3NSI+ItCQ0L/QvyDQvdGMINGB0YLQsNGC0YPRgSDRgdCw0LzQsdCw0YDRi9CzINC40LTRjdCy0YXQs9Kv0Lkg0LHQvtC70LPQvtGFINGN0YHQstGN0Lsg0YHQuNGB0YLQtdC8INC00q/RgNGB0LjQudCzINC90Y3QvNGN0YUsINGF0LDRgdCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhdHVzQmFyU2VydmljZSIgbXNnaWQ9IjcyNDcyODE5MTEzODc5MzE0ODUiPiLRgdGC0LDRgtGD0YEg0YHQsNC80LHQsNGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyU2VydmljZSIgbXNnaWQ9IjcxNjExMzY2MDc5NTk3NjA2MCI+ItCQ0L/QvyDQvdGMINGB0YLQsNGC0YPRgSDRgdCw0LzQsdCw0YAg0LHQvtC70L7RhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9leHBhbmRTdGF0dXNCYXIiIG1zZ2lkPSIxMTQ4MTk4Nzg1OTM3NDg5MjY0Ij4i0YHRgtCw0YLRg9GBINGB0LDQvNCx0LDRgNGL0LMg0L3RjdGN0YUv0YXQsNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19leHBhbmRTdGF0dXNCYXIiIG1zZ2lkPSI2OTE3NTQ5NDM3MTI5NDAxMTMyIj4i0JDQv9C/INC90Ywg0YHRgtCw0YLRg9GBINGB0LDQvNCx0LDRgNGL0LMg0LTRjdC70LPRjdGFINCx0L7Qu9C+0L0g0YXQsNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcHJvY2Vzc091dGdvaW5nQ2FsbHMiIG1zZ2lkPSIzOTA2MDA3ODMxMTkyOTkwOTQ2Ij4i0LPQsNGA0YHQsNC9INC00YPRg9C00LvQsNCz0YvQsyDRh9C40LPQu9GN0LvQuNC50LMg06nTqdGA0YfQu9Op0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wcm9jZXNzT3V0Z29pbmdDYWxscyIgbXNnaWQ9IjUzMzEzMTg5MzE5Mzc0MDIwNDAiPiLQkNC/0L8g0L3RjCDQtNGD0YPQtNC70LDQs9CwINGF0LjQudGFINCx0L7Qu9C+0L0g0LfQsNC70LPQsNC2INCx0LDQudCz0LDQsCDQtNGD0LPQsNCw0YDRi9CzINOp06nRgNGH0LvTqdGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC306nQstGI06nTqdGA06nQuyDQvdGMINCw0L/Qvy3QsyDQt9Cw0LvQs9Cw0YHQsNC9INC00YPRg9C00LvQsNCz0YvQsyDRhdCw0LDRhSwg0YXRj9C90LDRhSDQsdC+0LvQvtC9INC00LDRhdC40L0g0YfQuNCz0LvSr9Kv0LvRjdGFINCx0L7Qu9C+0LzQttGC0L7QuSDQsdC+0LvQs9C+0LTQvtCzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZVNtcyIgbXNnaWQ9Ijg2NzM0NzE3Njg5NDc4OTUwODIiPiLRgtC10LrRgdGCINC80LXRgdGB0LXQtihTTVMpINGF0q/Qu9GN0Y3QtiDQsNCy0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVTbXMiIG1zZ2lkPSI2NDI0Mzg3NzU0MjI4NzY2OTM5Ij4i0JDQv9C/INC90YwgU01TINC80LXRgdGB0LXQttC40LnQsyDRhdKv0LvRjdGN0L0g0LDQstCw0YUg0LHQvtC70L7QvSDQs9Kv0LnRhtGN0YLQs9GN0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQmNC90LPRjdGB0L3RjdGN0YAg0LDQv9C/INC90Ywg0YLQsNC90Ysg0YLTqdGF06nTqdGA06nQvNC20YDSr9KvINC40LvQs9GN0Y3RgdGN0L0g0LzQtdGB0YHQtdC20LjQudCzINGC0LDQvdC0INKv0LfSr9Kv0LvRjdGF0LPSr9C50LPRjdGN0YAg0YXRj9C90LDRhSDQsdC+0LvQvtC9INGD0YHRgtCz0LDQtiDRh9Cw0LTQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZU1tcyIgbXNnaWQ9IjE4MjEzMTczNDQ2NjgyNTcwOTgiPiLRgtC10LrRgdGCINC80LXRgdGB0LXQtijQnE1TKSDRhdKv0LvRjdGN0LYg0LDQstCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlTW1zIiBtc2dpZD0iNTMzMDE5NDM3MjYzMjEyMjYwIj4i0JDQv9C/INC90YwgTU1TINC80LXRgdGB0LXQttC40LnQsyDRhdKv0LvRjdGN0L0g0LDQstCw0YUg0LHQvtC70L7QvSDQs9Kv0LnRhtGN0YLQs9GN0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQmNC90LPRjdGB0L3RjdGN0YAg0LDQv9C/INC90Ywg0YLQsNC90Ysg0YLTqdGF06nTqdGA06nQvNC20YDSr9KvINC40LvQs9GN0Y3RgdGN0L0g0LzQtdGB0YHQtdC20LjQudCzINGC0LDQvdC0INKv0LfSr9Kv0LvRjdGF0LPSr9C50LPRjdGN0YAg0YXRj9C90LDRhSDQsdC+0LvQvtC9INGD0YHRgtCz0LDQtiDRh9Cw0LTQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9IjE4MDM0Nzc2NjA4NDYyODgwODkiPiLQr9Cw0YDQsNC70YLQsNC5INOp0YDQs9Op0L0g0LTQsNC80LbRg9GD0LvQu9GL0LMg0YXSr9C70Y3RjdC9INCw0LLQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9Ijg0ODUyNDA3MDI2MjQzMTk3NCI+ItCQ0L/QvyDQvdGMINGP0LDRgNCw0LvRgtCw0Lkg06nRgNCz06nQvSDQtNCw0LzQttGD0YPQu9C70YvQvSDQvNC10YHRgdC10LbQuNC50LMg0YXSr9C70Y3RjdC9INCw0LLQsNGFINCx0L7Qu9C+0L0g0LPSr9C50YbRjdGC0LPRjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC306nQstGI06nTqdGA06nQuyDQvdGMINC306nQstGF06nQvSDRgdC40YHRgtC10Lwg0LDQv9C/0LvQuNC60LXRiNC90LQg0Lsg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENlbGxCcm9hZGNhc3RzIiBtc2dpZD0iMTU5ODMyODg0MzYxOTY0NjE2NiI+ItKv0q/RgNGN0L0g06nRgNCz06nQvSDQtNCw0LzQttGD0YPQu9C70YvQvSDQvNC10YHRgdC10LYg0YPQvdGI0LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDZWxsQnJvYWRjYXN0cyIgbXNnaWQ9IjYzNjE5NzI3NzYwODA0NTg5NzkiPiLQkNC/0L8g0L3RjCDRgtCw0L3RiyDRgtOp0YXTqdOp0YDTqdC80LbQuNC50L0g0YXSr9C70Y3RjdC9INCw0LLRgdCw0L0g0q/Sr9GA0Y3QvSDTqdGA0LPTqdC9INC00LDQvNC20YPRg9C70LDRhSDQvNC10YHRgdC10LbQuNC50LMg0YPQvdGI0LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuINKu0q/RgNGN0L0g06nRgNCz06nQvSDQtNCw0LzQttGD0YPQu9C70YvQvSDQvNGN0LTRjdCz0LTRjdC7INC90Ywg0Y/QsNGA0LDQu9GC0LDQuSDQvdOp0YXRhtOp0Lsg0LHQsNC50LTQu9GL0LMg0LDQvdGF0LDQsNGA0YPRg9C70LDRhSDQt9C+0YDQuNC70LPQvtC+0YAg0LfQsNGA0LjQvCDQsdCw0LnRgNGI0LvRg9GD0LTQsNC0INGF0q/RgNC00Y3Qsy4g0KXQvtGA0YLQvtC5INCw0L/QvyDQvdGMINGP0LDRgNCw0LvRgtCw0Lkg0q/Sr9GA0Y3QvSDTqdGA0LPTqdC9INC00LDQvNC20YPRg9C70LvRi9CzINGF0q/Qu9GN0Y3QvSDQsNCy0YHQsNC9INKv0LXQtCDRgtCw0L3RiyDRgtOp0YXTqdOp0YDTqdC80LbQuNC50L0g0LDQttC40LvQu9Cw0LPQsNCwINCx0L7Qu9C+0L0g0YfQsNC00LDQvNC20LjQtCDQvdOp0LvTqdOp0LvTqdGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlbmRTbXMiIG1zZ2lkPSI1NjAwODMwNjEyMTQ3NjcxNTI5Ij4iU01TINC80LXRgdGB0LXQtiDQuNC70LPRjdGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZW5kU21zIiBtc2dpZD0iNzA5NDcyOTI5ODIwNDkzNzY2NyI+ItCQ0L/QvyDQvdGMIFNNUyDQvNC10YHRgdC10LYg0LjQu9Cz0Y3RjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC90Ywg0YHQsNC90LDQsNC90LTQs9Kv0Lkg0YLTqdC70LHTqdGA0YIg0L7RgNGD0YPQu9C2INCx0L7Qu9C30L7RiNCz0q/QuS4g0KXQvtGA0YLQvtC5INCw0L/QvyDQvdGMINGC0LDQvdGLINC306nQstGI06nTqdGA06nQu9Cz0q/QudCz0Y3RjdGAINC80LXRgdGB0LXQtiDQuNC70LPRjdGN0L0g0YLQsNC90YvQsyDRgtOp0LvQsdOp0YDRgiDQvtGA0YPRg9C70LYg0LHQvtC70LfQvtGI0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9Ijg3MTM4ODkxMDUzMDU5NDMyMDAiPiLQvNC10YHRgdC10LbRjdGN0YAg0YXQsNGA0LjRg9C70LDRhSDSr9C50Lsg0Y/QstC00LDQu9GL0LMg0LjQu9Cz0Y3RjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9IjcxMDc2NDg1NDg0Njg3Nzg3MzQiPiLQkNC/0L8g0L3RjCDQtNGD0YPQtNC70LDQs9CwINC40YDRjdGFINKv0LXQtCDQvNC10YHRgdC10LbRjdGN0YAg0YXQsNGA0LjRgyDTqdCz06nRhSDSr9C50Lsg0Y/QstC00LvRi9CzINC30L7RhdC40YbRg9GD0LvQsNGF0YvQvSDRgtGD0LvQtCDQsdGD0YHQsNC0INC80LXRgdGB0LXQttC40LnQvSDQsNC/0L8t0LQg0YXSr9GB0Y3Qu9GCINC40LvQs9GN0Y3RhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU21zIiBtc2dpZD0iODc0NTA4NjU3MjIxMzI3MDQ4MCI+ItGC0LDQvdGLINGC0LXQutGB0YIg0LzQtdGB0YHQtdC20LjQudCzINGD0L3RiNC40YUoU01TINGN0YHQstGN0LsgTU1TKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTbXMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI0Njc5ODE1NDg2ODQ3MzU1MjIiPiLQkNC/0L8g0L3RjCDRgtCw0L3RiyDRg9GC0LDRgSDRjdGB0LLRjdC7IFNJTSDQutCw0YDRgtCw0L3QtCDRhdCw0LTQs9Cw0LvQsNCz0LTRgdCw0L0gU01TINC80LXRgdGB0LXQttC40LnQsyDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC90Ywg0LDQv9C/LdC0INCx0q/RhSDQvNC10YHRgdC10LbQuNC50LMg0LrQvtC90YLQtdC90YIg0Y3RgdCy0Y3QuyDQvdGD0YPRhiDRjdGB0Y3RhdGN0Y3RgSDQvdGMINKv0Lsg0YXQsNC80LDQsNGA0LDQvSDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttC40LnQsyDQvtC70LPQvtC90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2OTU5Njc1MzM0NTcyNDA1NTAiPiLQkNC/0L8g0L3RjCDRgtCw0L3RiyDRg9GC0LDRgSDRjdGB0LLRjdC7IFNJTSDQutCw0YDRgtCw0L3QtCDRhdCw0LTQs9Cw0LvQsNCz0LTRgdCw0L0gU01TINC80LXRgdGB0LXQttC40LnQsyDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC90Ywg0LDQv9C/LdC0INCx0q/RhSDQvNC10YHRgdC10LbQuNC50LMg0LrQvtC90YLQtdC90YIg0Y3RgdCy0Y3QuyDQvdGD0YPRhiDRjdGB0Y3RhdGN0Y3RgSDQvdGMINKv0Lsg0YXQsNC80LDQsNGA0LDQvSDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttC40LnQsyDQvtC70LPQvtC90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNtcyIgbXNnaWQ9IjMyMTY5NTA0NzI2MzYyMTQ3NzQiPiLQotC10LrRgdGCINC80LXRgdGB0LXQttC40LnQsyDQt9Cw0YHQsNGFIChTTVMg0Y3RgdCy0Y3QuyBNTVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjUxNjA0MTM5NDc3OTQ1MDE1MzgiPiLQkNC/0L8g0L3RjCDRgtCw0L3RiyDRgtCw0LHQu9C10YIg0Y3RgdCy0Y3QuyBTSU0g0LrQsNGA0YLQsNC90LQg0YXQsNC00LPQsNC70LDQs9C00YHQsNC9IFNNUyDQvNC10YHRgdC10LbRgNKv0q8g0LHQuNGH0LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCl0L7RgNGC0L7QuSDQsNC/0L8g0L3RjCDRgtCw0L3RiyDQvNC10YHRgdC10LbSr9Kv0LTQuNC50LMg0YPRgdGC0LPQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcyNjg2Njg3MDkwNTIzMjg1NjciPiLQkNC/0L8g0L3RjCDRgtCw0L3RiyDRg9GC0LDRgSDRjdGB0LLRjdC7IFNJTSDQutCw0YDRgtCw0L3QtCDRhdCw0LTQs9Cw0LvQsNCz0LTRgdCw0L0gU01TINC80LXRgdGB0LXQttGA0q/SryDQsdC40YfQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0KXQvtGA0YLQvtC5INCw0L/QvyDQvdGMINGC0LDQvdGLINC80LXRgdGB0LXQttKv0q/QtNC40LnQsyDRg9GB0YLQs9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI1OTkxMzk4NzExOTM2NTkwNDEwIj4i0YLQtdC60YHRgiDQvNC10YHRgdC10LYoV0FQKSDRhdKv0LvRjdGN0L0g0LDQstCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9Ijc0ODIzMjE5MDIyMDU4MzM4NSI+ItCQ0L/QvyDQvdGMIFdBUCDQvNC10YHRgdC10LbQuNC50LMg0YXSr9C70Y3RjdC9INCw0LLQsNGFINCx0L7Qu9C+0L0g0LHQuNC10LvSr9Kv0LvRjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC306nQstGI06nTqdGA06nQuyDQvdGMINGC0LDQvdC0INC40LvQs9GN0Y3RgdGN0L0g0LzQtdGB0YHQtdC20LjQudCzINGC0LDQvdC0INGF0LDRgNGD0YPQu9Cw0LvQs9Kv0LnQs9GN0Y3RgCDRhdGP0L3QsNGFINGN0YHQstGN0Lsg0YPRgdGC0LPQsNGFINCx0L7Qu9C+0LzQttC40LnQsyDQsNCz0YPRg9C70L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFRhc2tzIiBtc2dpZD0iNjQ2NjA5NTM5NjYyMzkzMzkwNiI+ItCw0LbQuNC70LvQsNC2INCx0LDQudCz0LDQsCDQsNC/0L8t0LMg0LTRg9GD0LTQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0VGFza3MiIG1zZ2lkPSI3NDU0MjE1OTk1ODQ3NjU4MTAyIj4i0JDQv9C/INC90Ywg0L7QtNC+0L4g0LDQttC40LvQu9Cw0LYg0LHQsNC50LPQsNCwINCx0L7Qu9C+0L0g0YHSr9Kv0LvQtCDQsNC20LjQu9C70LDRgdCw0L0g0LTQsNCw0LvQs9Cw0LLRgNGL0L0g0YLQsNC70LDQsNGA0YUg0LzRjdC00Y3RjdC70LvQuNC50LMg0LDQstCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQmNC90LPRjdGB0L3RjdGN0YAg0LDQv9C/INC90Ywg0YLTqdGF06nTqdC80LYg0LTRjdGN0YDRhSDRj9C80LDRgCDQsNC/0L/Qu9C40LrQtdGI0L3Sr9Kv0LQg0LDRiNC40LPQu9Cw0LPQtNGB0LDQvSDRgtCw0LvQsNCw0YDRhSDQvNGN0LTRjdGN0LvQuNC50LMg0L7Qu9C+0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW50ZXJhY3RBY3Jvc3NVc2VycyIgbXNnaWQ9IjcxMTQyNTUyODE5NDQyMTE2ODIiPiLRhdGN0YDRjdCz0LvRjdCz0YfQuNC00YLRjdC5INGF0LDRgNC40LvRhtCw0L0g0q/QudC70YfQu9GN0LvRhtGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcmFjdEFjcm9zc1VzZXJzIiBtc2dpZD0iMzY0NjcwOTYzNjIzMzg1Nzg2Ij4i0JDQv9C/INC90Ywg0YLTqdGF06nTqdGA06nQvNC2INC00Y3RjdGA0YUg0Y/Qu9Cz0LDQsNGC0LDQuSDRhdGN0YDRjdCz0LvRjdCz0YfQtNGN0LQg0q/QudC70LTRjdC7INCz0q/QudGG0Y3RgtCz0Y3RhSDQsdC+0LvQvtC80LbRgtC+0LkuINCl0L7RgNGC0L7QuSDQsNC/0L8g0L3RjCDRjdC90LjQudCzINCw0YjQuNCz0LvQsNC9INGF0Y3RgNGN0LPQu9GN0LPRhyDRhdC+0L7RgNC+0L3QtNGL0L0g0YXQsNC80LPQsNCw0LvQsNC70YLRi9CzINC306nRgNGH0LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcmFjdEFjcm9zc1VzZXJzRnVsbCIgbXNnaWQ9IjI1Njc3MzQyODU1NDUwNzQxMDUiPiLRhdGN0YDRjdCz0LvRjdCz0YfQuNC00YLRjdC5INGF0LDRgNC40LvRhtCw0L0g0q/QudC70YfQu9GN0LvRhtGN0YUg0LHSr9GA0Y3QvSDQt9Op0LLRiNOp06nRgNOp0LsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcmFjdEFjcm9zc1VzZXJzRnVsbCIgbXNnaWQ9IjM3Njg0MTM2ODM5NTUwMjM2NiI+ItCR0q/RhSDRhdGN0YDRjdCz0LvRjdCz0YfQtNGN0LQg0LHQvtC70L7QvNC20LjRgiDQsdKv0YUg0YXQsNGA0LjQu9GG0LDQvSDSr9C50LvQtNC70LjQudCzINC306nQstGI06nTqdGA0L3TqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzZXJzIiBtc2dpZD0iMTY3NjE1MDkxMTY3MjI4MjQyOCI+ItGF0Y3RgNGN0LPRh9C70Y3Qs9GHINGD0LTQuNGA0LTQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNlcnMiIG1zZ2lkPSI4NDA5MzA2NjY3NjQ1MzU1NjM4Ij4i0JDQv9C/INC90Ywg0YLTqdGF06nTqdGA06nQvNC2INC00Y3RjdGAINCw0YHRg9GD0LvQs9CwLCDSr9Kv0YHQs9GN0LvRgiDQsdC+0LvQvtC9INGD0YHRgtCz0LDQu9GCINC30Y3RgNCz0LjQudCzINCx0LDQs9GC0LDQsNGB0LDQvSDRhdGN0YDRjdCz0LvRjdCz0Ycg0YPQtNC40YDQtNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0RGV0YWlsZWRUYXNrcyIgbXNnaWQ9IjYyMjk0Njg2NzQ3NTM1Mjk1MDEiPiLQsNC20LjQu9C70LDQtiDQsdCw0LnQs9Cw0LAg0LDQv9C/LdC9INC00Y3Qu9Cz0Y3RgNGN0L3Qs9Kv0LnQsyDQsNCy0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldERldGFpbGVkVGFza3MiIG1zZ2lkPSIxNTM4MjQ3NDE0NDA3MTc1OTkiPiLQkNC/0L8g0L3RjCDQvtC00L7QviDQsNC20LjQu9C70LDQtiDQsdCw0LnQs9Cw0LAg0LHQvtC70L7QvSDRgdKv0q/Qu9C0INCw0LbQuNC70LvQsNGB0LDQvSDQtNCw0LDQu9Cz0LDQstGA0YvQvSDRgtCw0LvQsNCw0YDRhSDQtNGN0LvQs9GN0YDRjdC90LPSr9C5INC80Y3QtNGN0Y3Qu9C70LjQudCzINCw0LLQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0KXQvtGA0YLQvtC5INCw0L/QvyDQvdGMINCx0YPRgdCw0LQg0LDQv9C/LdC9INGF0YPQstC40LnQvSDQvNGN0LTRjdGN0LvQuNC50LMg0L7Qu9C+0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVvcmRlclRhc2tzIiBtc2dpZD0iMjAxODU3NTUyNjkzNDQyMjc3OSI+ItCw0LbQuNC70LvQsNC2INCx0LDQudCz0LDQsCDQsNC/0L8t0YPRg9C00YvQsyDQtNCw0YXQuNC9INGN0YDRjdC80LHRjdC70Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Jlb3JkZXJUYXNrcyIgbXNnaWQ9Ijc3MzQyMTc3NTQ4Nzc0MzkzNTEiPiLQkNC/0L8g0L3RjCDQtNCw0LDQu9Cz0LDQstGA0YPRg9C00YvQsyDQvdKv0q/RgNC70q/SryDQsdC+0LvQvtC9INCw0YDQu9GD0YMg0LfTqdOp0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQkNC/0L8g0L3RjCDRjdC90LjQudCzINGC0LDQvdGLINC+0YDQvtC70YbQvtC+0LPSr9C50LPRjdGN0YAg0YXQuNC50LYg0LHQvtC70LfQvtGI0LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZW1vdmVUYXNrcyIgbXNnaWQ9IjY4MjE1MTM0MDE4NzAzNzc0MDMiPiLQsNC20LjQu9C70LDQtiDQsdCw0LnQs9Cw0LAg0LDQv9C/LdCzINC30L7Qs9GB0L7QvtGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVtb3ZlVGFza3MiIG1zZ2lkPSIxMzk0NzE0MzUyMDYyNjM1NDkzIj4i0JDQv9C/INC90Ywg0LTQsNCw0LvQs9Cw0LLRgNGD0YPQtCDRg9GB0YLQs9Cw0YUg0LHQvtC70L7QvSDRgtGN0LTQs9GN0Y3RgNC40LnQvSDQsNC/0L8t0LMg0LfQvtCz0YHQvtC+0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQpdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0LHRg9GB0LDQtCDQsNC/0L8t0L0g0LDQttC40LvQu9Cw0LPQsNCw0LMg0YLQsNGB0LDQu9C00YPRg9C70LYg0LHQvtC70LfQvtGI0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQWN0aXZpdHlTdGFja3MiIG1zZ2lkPSI3MzkxMTkxMzg0MDI3MzAzMDY1Ij4i0LjQtNGN0LLRhdC20LjQu9GC0LjQudC9INGB0YLQtdC60q/Sr9C00LjQudCzINGD0LTQuNGA0LTQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQWN0aXZpdHlTdGFja3MiIG1zZ2lkPSIxNjE1ODgxOTMzMDM0MDg0NDQwIj4i0JDQv9C/LdC0INCx0YPRgdCw0LQg0LDQv9C/LdGD0YPQtNGL0L0g0LDQttC40LvQu9Cw0LTQsNCzINC40LTRjdCy0YXQttC40LvRgtC40LnQvSDRgdGC0LXQutKv0q/QtNC40LnQsyDQvdGN0LzRjdGFLCDRhdCw0YHQsNGFINCx0YPRjtGDINOp06nRgNGH0LvTqdGFINCx0L7Qu9C+0LzQtiDQvtC70LPQvtC90L4uINCl0L7RgNC70L7QvdGC0L7QuSDQsNC/0L8t0YPRg9C0INCx0YPRgdCw0LQg0LDQv9C/LdGD0YPQtNGL0L0g0LDQstC40YDRgiDQvdOp0LvTqdOp0LvTqdGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0YXJ0QW55QWN0aXZpdHkiIG1zZ2lkPSIyOTE4NzY4MjM4MDQ1MjA2NDU2Ij4i0Y/QvNCw0YDRhyDQsNC60YLQuNCy0LjRgtC40LMg0Y3RhdC70q/Sr9C70Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXJ0QW55QWN0aXZpdHkiIG1zZ2lkPSI5OTc4MjM2OTUzNDM1ODQwMDEiPiLQkNC/0L8g0L3RjCDQt9Op0LLRiNOp06nRgNOp0Lsg0YXQsNC80LPQsNCw0LvQsNC70YLQsNC5INGN0YHQstGN0Lsg0Y3QutGB0L/QvtGA0YIg0YXQuNC50YHRjdC9INGB0YLQsNGC0YPRgdCw0LDRgSDSr9C7INGF0LDQvNCw0LDRgNCw0L0g0Y/QvNCw0YDRhyDQsNC60YLQuNCy0LjRgtC40LMg0Y3RhdC70q/Sr9C70Y3RhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjk3NTM4NzExODg2MTg0MjA2MSI+ItC00Y3Qu9Cz0Y3RhtC90LjQuSDQt9C+0YXQuNGG0L7Qu9GL0LMg0YLQvtGF0LjRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjkyMDQzNjE4NjkzOTE3Mzc0Ij4i0JDQv9C/INC90Ywg0LHRg9GB0LDQtCDQsNC/0L/Qu9C40LrQtdGI0L3RiyDQtNGN0LvQs9GN0YbQvdC40Lkg0YLQvtGF0LjRgNC+0LzQttC40YIg0LPQvtGA0LjQvNGL0LMg0YPQtNC40YDQtNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiAg0KXQvtGA0YLQvtC5INCw0L/Qv9C70LjQutC10YjQvSDQvdGMINCx0YPRgdCw0LQg0LDQv9C/0LvQuNC60LXRiNC90Ysg0YfQsNC00LDQvNC20LjQudCzINGN0LLQtNGN0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0RGVidWdBcHAiIG1zZ2lkPSIzMDIyMTA3MTk4Njg2NTg0MDUyIj4i0LDQv9C/INC00LXQsdCw0LPRi9CzINC40LTRjdCy0YXQttKv0q/Qu9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXREZWJ1Z0FwcCIgbXNnaWQ9IjQ0NzQ1MTI0MTYyOTkwMTMyNTYiPiLQkNC/0L8g0L3RjCDQsdGD0YHQsNC0INCw0L/Qvy3QsyDQtNC10LHQsNCzINGF0LjQudGF0LjQudCzINCw0YHQsNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQpdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0Y3QvdC40LnQsyDQsNGI0LjQs9C70LDQvSDQsdGD0YHQsNC0INCw0L/Qvy3QsyDQt9C+0LPRgdC+0L7RhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VDb25maWd1cmF0aW9uIiBtc2dpZD0iNDE2MjA5MjE4NTEyNDIzNDQ4MCI+ItGB0LjRgdGC0LXQvNC40LnQvSDQtNGN0LvQs9GN0YbQvdC40Lkg0YLQvtGF0LjRgNCz0L7QvtCzINGB0L7Qu9C40YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb25maWd1cmF0aW9uIiBtc2dpZD0iNDM3MjIyMzg3MzE1NDI5NjA3NiI+ItCQ0L/QvyDQvdGMINC90YPRgtCw0LPRiNC40Lsg0Y3RgdCy0Y3QuyDRhNC+0L3RgtGL0L0g0YXRjdC80LbRjdGNINC30Y3RgNGN0LMg0L7QtNC+0L7Qs9C40LnQvSDRgtC+0YXQuNGA0LPQvtC+0LMg0YHQvtC70LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9lbmFibGVDYXJNb2RlIiBtc2dpZD0iNTY4NDUwNDA1ODE5MjkyMTA5OCI+ItC80LDRiNC40L3RiyDQs9C+0YDQuNC80YvQsyDQuNC00Y3QstGF0LbSr9Kv0LvRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZW5hYmxlQ2FyTW9kZSIgbXNnaWQ9IjQ4NTMxODc0MjU3NTE0MTk0NjciPiLQkNC/0L8g0L3RjCDQvNCw0YjQuNC90Ysg0LPQvtGA0LjQvNGL0LMg0LjQtNGN0LLRhdC20q/Sr9C70Y3RhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9raWxsQmFja2dyb3VuZFByb2Nlc3NlcyIgbXNnaWQ9IjM5MTQwMjY2ODc0MjAxNzcyMDIiPiLQsdGD0YHQsNC0INCw0L/Qvy3QsyDRhdCw0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iNDU5MzM1MzIzNTk1OTczMzExOSI+ItCQ0L/QvyDQvdGMINCx0YPRgdCw0LQg0LDQv9C/LdC9INCw0YDRi9C9INC/0YDQvtGG0LXRgdGB0YvQsyDQtNGD0YPRgdCz0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3RjSDQsdGD0YHQsNC0INCw0L/Qvy3QsyDQt9C+0LPRgdC+0L7RhSDQsdC+0LvQvtC80LbQuNC50LMg0L7Qu9Cz0L7QvdC+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZm9yY2VTdG9wUGFja2FnZXMiIG1zZ2lkPSIyMzI5NjI3NDI4ODMyMDY3NzAwIj4i0LHRg9GB0LDQtCDQsNC/0L8t0LMg0YXSr9GH0Y3RjdGAINC30L7Qs9GB0L7QvtGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZm9yY2VTdG9wUGFja2FnZXMiIG1zZ2lkPSI1MjUzMTU3Mjk2MTgzOTQwODEyIj4i0JDQv9C/INC90Ywg0LHRg9GB0LDQtCDQsNC/0L8t0LMg0YXSr9GH0Y3RjdGAINC30L7Qs9GB0L7QvtGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZvcmNlQmFjayIgbXNnaWQ9IjY1MjkzNTIwNDA3MjU4NDYxNiI+ItCw0L/Qvy3QsyDRhdKv0YfRjdGN0YAg0YPQvdGC0YDQsNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mb3JjZUJhY2siIG1zZ2lkPSIzODkyMjk1ODMwNDE5NTEzNjIzIj4i0JDQv9C/INC90Ywg0L3Sr9Kv0YDRjdC90LQg0LDQttC40LvQu9Cw0LYg0LHQsNC50LPQsNCwINCw0LrRgtC40LLQuNGC0LjQsyDRhdKv0YfRjdGN0YAg0LfQvtCz0YHQvtC+0YUg0LHQvtC70LPQvtC9INCw0YDQu9GD0YMg0Y/QstGD0YPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INGF0Y3RgNGN0LPQu9GN0YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kdW1wIiBtc2dpZD0iMTY4MTc5OTg2MjQzODk1NDc1MiI+ItGB0LjRgdGC0LXQvNC40LnQvSDQtNC+0YLQvtC+0LQg0YHRgtCw0YLRg9GB0YvQsyDQtNGD0YPQtNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kdW1wIiBtc2dpZD0iMTc3ODI5OTA4ODY5MjI5MDMyOSI+ItCQ0L/QvyDQvdGMINGB0LjRgdGC0LXQvNC40LnQvSDQtNC+0YLQvtC+0LQg0YHRgtCw0YLRg9GB0YvQsyDQtNGD0YPQtNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQpdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0Y3QvdC40LnQsyDQsNGI0LjQs9C70LDRhSDRiNCw0LDRgNC00LvQsNCz0LDQs9Kv0Lkg0LDRjtGD0LvQs9Kv0Lkg0LHQsNC50LTQu9GL0L0g0LHQvtC70L7QvSDRhdGD0LLQuNC50L0g0LzRjdC00Y3RjdC70LvQuNC50LMg0LTRg9GD0LTQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iODAyMjU4ODYwODk5NDU4OTkzOCI+ItCU0Y3Qu9Cz0Y3RhtC40LnQvSDQutC+0L3RgtC10L3RgtGL0LMg0YPQvdGI0LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iMzE5MzI2OTA2OTQ2OTcwMDI2NSI+ItCQ0L/QvyDQvdGMINC40LTRjdCy0YXRgtGN0Lkg0YbQvtC90YXQvdGLINC60L7QvdGC0LXQvdGC0YvQsyDQsNCy0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCl0L7RgNGC0L7QuSDQsNC/0L8g0L3RjCDRhtC+0L3RhdC90Ysg0LrQvtC90YLQtdC90YLRi9CzINCx0q/RhdGN0LvQtCDQsNCy0LDRhSDQsdC+0LvQvtC9INC90YPRg9GGINKv0LPQvdGN0Y3RgSDQsdGD0YHQsNC0INCx0q/RhSDRgtC10LrRgdGC0LjQudCzINGI0LDQu9Cz0LDQtiDQsdC+0LvQt9C+0YjQs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3RlbXBvcmFyeV9lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjIzMTI2MTIxMzUxMjczMTAyNTQiPiLQpdGP0LvQsdCw0YAg0LHQsNC50LTQu9GL0LMg0YLSr9GAINC40LTRjdCy0YXRgtGN0Lkg0LHQvtC70LPQvtGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdGVtcG9yYXJ5X2VuYWJsZV9hY2Nlc3NpYmlsaXR5IiBtc2dpZD0iODA3OTQ1NjI5MzE4Mjk3NTQ2NCI+ItCQ0L/Qv9C70LjQutC10YjQvSDQvdGMINGC06nRhdOp06nRgNOp0LzQttC40LnQvSDRhdGP0LvQsdCw0YAg0LHQsNC50LTQu9GL0LMg0YLSr9GAINC30YPRg9GAINC40LTRjdCy0YXQttKv0q/Qu9GN0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQpdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0YXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC306nQstGI06nTqdGA06nQu9Cz0q/QudCz0Y3RjdGAINGF0Y/Qu9Cx0LDRgCDQsdCw0LnQtNC70YvQsyDQuNC00Y3QstGF0LbSr9Kv0LvQtiDQsdC+0LvQt9C+0YjQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9Ijg1MzIyOTUxOTkxMTI1MTkzNzgiPiLRhtC+0L3RhdC90Ysg0LzRjdC00Y3RjdC70LvQuNC50LMg0YPQvdGI0LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JldHJpZXZlX3dpbmRvd19pbmZvIiBtc2dpZD0iNDk5ODgzNjM3MDQyNDE4Njg0OSI+ItCQ0L/Qv9C70LjQutC10YjQvSDQvdGMINGG0L7QvdGF0L3RiyDQvNC10L3QtdC20LXRgNGN0Y3RgSDRhtC+0L3RhdC90Ysg0YLQsNC70LDQsNGAINC80Y3QtNGN0Y3Qu9C70LjQudCzINC00YPRg9C00LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCl0L7RgNGC0L7QuSDQsNC/0L8g0L3RjCDQtNC+0YLQvtC+0LQg0YHQuNGB0YLQtdC80LjQudC9INGF0Y3RgNGN0LPQu9GN0Y3QvdC0INC30L7RgNC40YPQu9Cw0LPQtNGB0LDQvSDQvNGN0LTRjdGN0LvQu9C40LnQsyDQtNGD0YPQtNCw0LYg0LHQvtC70LfQvtGI0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZmlsdGVyX2V2ZW50cyIgbXNnaWQ9Ijg2NzU1MzU2NDg4MDc0MjczODkiPiLSr9C50Lsg0Y/QstC00LvRi9CzINGI0q/Sr9GFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmlsdGVyX2V2ZW50cyIgbXNnaWQ9IjgwMDYyMzYzMTU4ODgzNDc2ODAiPiLQkNC/0L/Qu9C40LrQtdGI0L0g0L3RjCDRhdGN0YDRjdCz0LvRjdCz0YfQuNC50L0g0LHSr9GFINKv0LnQuyDRj9Cy0LTQsNC70YvQvSDQuNC70LPRjdGN0LPQtNGN0YXRjdGN0YEg06nQvNC906nRhSDRg9GA0YHQs9Cw0LvRi9CzINGI0q/Sr9C2INCx0LDQudCz0LDQsCDQvtGA0L7Qu9GC0YvQvSDRiNKv0q/Qu9GC0LnQuNCzINCx0q/RgNGC0LPRjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0KXQvtGA0YLQvtC5INCw0L/QvyDQvdGMINGF0Y3RgNGN0LPQu9GN0LPRh9C40LnQvSDQuNC90YLQtdGA0LLRjdGI0L3Qs9Kv0LnQs9GN0Y3RgCDRgdC40YHRgtC10LzQuNC50L0gVUkt0LMg0YPQtNC40YDQtNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFnbmlmeV9kaXNwbGF5IiBtc2dpZD0iNTk3MzYyNjczODE3MDYxODc3NSI+ItC00Y3Qu9Cz0Y3RhiDRgtC+0LzRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI3MTIxMjM1Njg0NTE1MDAzNzkyIj4i0JDQv9C/0LvQuNC60LXRiNC9INC90Ywg0LTRjdC70LPRjdGG0L3QuNC5INC60L7QvdGC0LXQvdGC0LjQudCzINOp0YHQs9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQpdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0LTRjdC70LPRjdGG0LjQudC9INC60L7QvdGC0LXQvdGC0YvQsyDRgtOp0YXTqdOp0YDTqdC80LbQvdOp06nRgSDQsNGI0LjQs9C70LDQtiDQsdC+0LvQvtGF0LPSr9C5INCx0L7Qu9Cz0L7QvSDRhdGD0LLQuNGA0LPQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NodXRkb3duIiBtc2dpZD0iNzE4NTc0NzgyNDAzODkwOTAxNiI+ItGF0Y3RgdGN0LPRh9C40LvRgdGN0L0g0YPQvdGC0YDQsNCw0LvRgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NodXRkb3duIiBtc2dpZD0iNzA0NjUwMDgzODc0NjI5MTc3NSI+ItCQ0LrRgtC40LLQuNGC0Lgg0LzQtdC90LXQttC10YDQuNC50LMg0YPQvdGC0YDQsNCw0L3QsC4g0JHSr9GA0Y3QvSDRg9C90YLRgNCw0LDQu9GC0YvQsyDRhdC40LnRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0b3BBcHBTd2l0Y2hlcyIgbXNnaWQ9IjQxMzg2MDg2MTA3MTc0MjU1NzMiPiLQsNC/0L8g0YjQuNC70LbSr9Kv0LvRjdGF0LjQudCzINGF0L7RgNC40LPQu9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI4MjYyMTk1ODAyNTgyMjU1MDIxIj4i0KXRjdGA0Y3Qs9C70Y3Qs9GHINCx0YPRgdCw0LQg0LDQv9C/LdGA0YPRgyDRgdGN0LvQs9GN0YXQuNC50LMg0YXQvtGA0LjQs9C70L7RhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFRvcEFjdGl2aXR5SW5mbyIgbXNnaWQ9IjI1Mzc5MjIzMTE0MTE1NDYwMTYiPiLQvtC00L7QvtCz0LjQudC9INCw0L/Qvy3QvSDQvNGN0LTRjdGN0LvQu9C40LnQsyDQsNCy0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRvcEFjdGl2aXR5SW5mbyIgbXNnaWQ9IjgxNTM2NTE0MzQxNDUxMzI1MDUiPiLQrdC30Y3QvNGI0LjQs9GHINC90Ywg0LTRjdC70LPRjdGG0L3QuNC5INC90q/Sr9GA0Y3QvdC0INCx0LDQudCz0LDQsCDQvtC00L7QvtCz0LjQudC9INCw0L/Qv9C70LjQutC10YjQvSDQsdC+0LvQvtC9INKv0LnQu9GH0LjQu9Cz0Y3RjdC90LjQuSDRgtCw0LvQsNCw0YDRhSDRhdGD0LLQuNC50L0g0LzRjdC00Y3RjdC70LvQuNC50LMg0YPQvdGI0LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ydW5TZXRBY3Rpdml0eVdhdGNoZXIiIG1zZ2lkPSI4OTIyMzkwOTQ4NjcxODI2NTYiPiLQsdKv0YUg0LDQv9C/LdGL0L0g0Y3RhdC70Y3Qu9C40LnQsyDRhdGP0L3QsNGFINCx0L7Qu9C+0L0g0YPQtNC40YDQtNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ydW5TZXRBY3Rpdml0eVdhdGNoZXIiIG1zZ2lkPSI2MDAzNjAzMTYyNTc4NTc3NDA2Ij4i0JDQv9C/INC90Ywg0YHQuNGB0YLQtdC8INCw0LrRgtC40LLQuNGC0LjQsyDRj9Cw0LYg0Y3RhdC70q/Sr9C70LYg0LHQsNC50LPQsNCw0LMg0YXRj9C90LDRhSDQsdC+0LvQvtC9INGD0LTQuNGA0LTQsNC9INCx0L7Qu9C+0LzQttGC0L7QuS4g0KXQvtGA0YLQvtC5INCw0L/QvyDQvdGMINGB0LjRgdGC0LXQvNC0INCx0q/RgNGN0L0g0L3TqdC706nTqdC70LYg0LHQvtC70LfQvtGI0LPSr9C5LiDQrdC90Y0g0Y3RgNGFINC90Ywg0LfTqdCy0YXTqdC9INGF06nQs9C20q/Sr9C70Y3Qu9GC0LjQudC9INKv0LXQtCDQuyDRhdGN0YDRjdCz0YLRjdC5INCx0LAg0Y3QvdCz0LjQudC9INGF0Y3RgNGN0LPQu9GN0Y3QvdC0INC+0LPRgiDRhdGN0YDRjdCz0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSIyNTc2MzMzNDM0ODkzNTMyNDc1Ij4i0LHQsNCz0YYg0YXQsNGB0LDQs9C00YHQsNC9INOp0YDQs9Op0L0g0LTQsNC80LbRg9GD0LvQu9GL0LMg0LjQu9Cz0Y3RjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSI2NjIxOTAxMjE2MjA3OTMxMDg5Ij4i0JDQv9C/INC90Ywg0LDQv9C/INCx0LDQs9GGINGD0YHRgtCz0LDQs9C00YHQsNC9INGC0LDQu9Cw0LDRgNGFINC80Y3QtNGN0LPQtNC70LjQudCzINOp0YDQs9Op0L0g0LTQsNC80LbRg9GD0LvQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0KXQvtGA0YLQvtC5INCw0L/QvyDRjdC90LjQudCzINCw0YjQuNCz0LvQsNC9INCx0YPRgdCw0LQg0LDQttC40LvQu9Cw0LYg0LHQsNC50LPQsNCwINCw0L/Qvy3QsyDQt9C+0LPRgdC+0L7RhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RTbXNSZWNlaXZlZCIgbXNnaWQ9IjU2ODkwOTUwMDkwMzAzMzY1OTMiPiJTTVMt0YXSr9C70Y3RjdC9INCw0LLQsNCyINOp0YDQs9Op0L0g0LTQsNC80LbRg9GD0LvQu9GL0LMg0LjQu9Cz0Y3RjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI0MTUyMDM3NzIwMDM0MzY1NDkyIj4i0JDQv9C/INC90YwgU01TINC80LXRgdGB0LXQtiDRhdKv0LvRjdGN0L0g0LDQstGB0LDQvSDRgtCw0LvQsNCw0YDRhSDQvNGN0LTRjdCz0LTQu9C40LnQsyDTqdGA0LPTqdC9INC00LDQvNC20YPRg9C70LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCl0L7RgNGC0L7QuSDQsNC/0L8g0Y3QvdC40LnQsyDQsNGI0LjQs9C70LDQvSDQuNGA0YHRjdC9IFNNUyDQvNC10YHRgdC10LbQuNC50LMg0YXRg9GD0YDQsNC80YfQsNCw0YAg0YXQuNC50YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjMxNDUzNDc0MTMwMjg1ODIzNzEiPiJXQVAtUFVTSC3RhdKv0LvRjdGN0L0g0LDQstCw0LIg06nRgNCz06nQvSDQtNCw0LzQttGD0YPQu9C70YvQsyDQuNC70LPRjdGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RXYXBQdXNoIiBtc2dpZD0iNDc4MzQwMjUyNTAzOTQ0MjcyOSI+ItCQ0L/Qv9C70LjQutC10YjQvSDQvdGMIFdBUCBQVVNIINC80LXRgdGB0LXQtiDRhdKv0LvRjdGN0LYg0LDQstGB0LDQvSDQvNGN0LTRjdCz0LTQu9C40LnQsyDTqdGA0LPTqdC9INC00LDQvNC20YPRg9C70LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCl0L7RgNGC0L7QuSDQsNC/0L8g0L3RjCDRjdC90LjQudCzINCw0YjQuNCz0LvQsNC9IE1NUyDQvNC10YHRgdC10LYg0YXSr9C70Y3RjdC9INCw0LLRgdCw0L0g0LPRjdC2INGF0YPRg9GA0LDQvNGH0LDQsNGAINC80Y3QtNGN0LPQtNGN0YUg0Y3RgdCy0Y3QuyDRhdC+0YDRgtC+0Lkg0YXRg9Cy0YzRgdCw0LPRhyDQsNCz0YPRg9C70YHQsNC9INCy0LXQsSDRhdGD0YPQtNCw0YHQvdGLINC60L7QvdGC0LXQvdGC0YvQsyDRh9C40LzRjdGN0LPSr9C5INC+0YDQu9GD0YPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0UHJvY2Vzc0xpbWl0IiBtc2dpZD0iMjQ1MTg3MzY2NDM2MzY2MjY2NiI+ItCw0LbQuNC70LvQsNC2INCx0LDQudCz0LDQsCDQv9GA0L7RhtC10YHRgdC40LnQvSDRgtC+0L7QsyDRhdGP0LfQs9Cw0LDRgNC70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFByb2Nlc3NMaW1pdCIgbXNnaWQ9IjczMTgwNjEzMTQwNDA4Nzk1NDIiPiLQkNC/0L8g0L3RjCDQvdGN0LMg0LfRjdGA0Y3QsyDQsNC20LjQu9C70LDRhSDQv9GA0L7RhtC10YHRgdC40LnQvSDRgtC+0L7QvdGLINC00Y3RjdC0INGD0YLQs9GL0LMg0YPQtNC40YDQtNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INGF0Y3Qt9GN0Y0g0Ycg0LDRiNC40LPQu9Cw0LPQtNCw0YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbHdheXNGaW5pc2giIG1zZ2lkPSI1NTA5NTg1MDc3OTg3OTY5NjUiPiLQsNGA0YvQvSDQsNC/0L8t0LMg0YXSr9GH0Y3RjdGAINGF0LDQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QWx3YXlzRmluaXNoIiBtc2dpZD0iNzQ3MTMxMDY1Mjg2ODg0MTQ5OSI+ItCQ0L/QvyDQvdGMINCw0LrRgtC40LLQuNGC0LjQvdKv0q/QtCDQsNGA0YvQvSDQsdC+0LvQvtC90LPRg9GD0YLQsNCwINC00YPRg9GB0LDRhSDRjdGB0Y3RhdC40LnQsyDRg9C00LjRgNC00LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3Qs9C40LnQvSDQsNC/0L8t0LQg0YXRjdGA0Y3Qs9C70Y3Qs9C00Y3RhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JhdHRlcnlTdGF0cyIgbXNnaWQ9IjI3ODk2MTA2NzM1MTQxMDMzNjQiPiLQsdCw0YLQtdGA0LXQudC90Ysg0YHRgtCw0YLQuNGB0YLQuNC60LjQudCzINGD0L3RiNC40YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iYXR0ZXJ5U3RhdHMiIG1zZ2lkPSI1ODk3MzQ2NTgyODgyOTE1MTE0Ij4i0JDQv9C/0LvQuNC60LXRiNC9INC90Ywg0LHQsNGC0LXRgNC10Lkg0YXRjdGA0Y3Qs9C70Y3RjdC90LjQuSDQtNC+0L7QtC3RgtOp0LLRiNC40L3QuNC5INC+0LTQvtC+0LPQuNC50L0g0LTQsNGC0LDQsyDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0JDQv9C/0LvQuNC60LXRiNC90LQg0YLQsNC90Ysg0LDRiNC40LPQu9Cw0LYg0LHQsNC50LPQsNCwINCw0L/Qvy3QvSDRgtCw0LvQsNCw0YDRhSDQtNGN0LvQs9GN0YDRjdC90LPSr9C5INC80Y3QtNGN0Y3Qu9C70LjQudCzINC+0LvQvtGFINCx0L7Qu9C+0LzQttC40LnQsyDQvtC70LPQvtC90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91cGRhdGVCYXR0ZXJ5U3RhdHMiIG1zZ2lkPSIzNzE5Njg5NzY0NTM2Mzc5NTU3Ij4i0LHQsNGC0LXRgNC10LnQvSDRgdGC0LDRgtC40YHRgtC40LrQuNC50LMg06nTqdGA0YfQu9Op0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVCYXR0ZXJ5U3RhdHMiIG1zZ2lkPSI2ODYyODE3ODU3MTc4MDI1MDAyIj4i0JDQv9C/INC90Ywg0LHQsNGC0LXRgNC10LnQvSDRhtGD0LPQu9GD0YPQu9Cw0LPQtNGB0LDQvSDRgdGC0LDRgtC40YHRgtC40LrQuNC50LMg06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INGI0LDQsNGA0LTQu9Cw0LPQsNCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldEFwcE9wc1N0YXRzIiBtc2dpZD0iMTUwODc3OTY4NzQzNjU4NTc0NCI+ItCw0L/Qvy3QvSDQsNC20LjQu9C70LDQs9Cw0LDQvdGLINGB0YLQsNGC0LjRgdGC0LjQutC40LnQsyDQsNCy0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFwcE9wc1N0YXRzIiBtc2dpZD0iNjI0Mzg4NzA0MTU3NzkxMjg3NyI+ItCQ0L/QvyDQvdGMINCw0L/Qv9C70LjQutC10YjQvdGLINCw0LbQuNC70LvQsNCz0LDQsNC90Ysg0YbRg9Cz0LvRg9GD0LvRgdCw0L0g0YHRgtCw0YLQuNGB0YLQuNC60LjQudCzINC00YPRg9C00LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3Qs9C40LnQvSDQsNC/0L8t0LQg0LDRiNC40LPQu9Cw0LPQtNCw0YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91cGRhdGVBcHBPcHNTdGF0cyIgbXNnaWQ9Ijg4MjkwOTczNzM4NTE1MjE1MDUiPiLQsNC/0L8g0LDQttC40LvQu9Cw0LPQsNCw0L3RiyDRgdGC0LDRgtC40YHRgtC40LrQuNC50LMg06nTqdGA0YfQu9Op0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVBcHBPcHNTdGF0cyIgbXNnaWQ9IjUwNzg0NTk2NTk0NDAzNDgzIj4i0JDQv9C/INC90Ywg0LDQv9C/0LvQuNC60LXRiNC90Ysg0LDQttC40LvQu9Cw0LPQsNCw0L3RiyDRhtGD0LPQu9GD0YPQu9GB0LDQvSDRgdGC0LDRgtC40YHRgtC40LrQuNC50LMg06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INCw0YjQuNCz0LvQsNCz0LTQsNGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmFja3VwIiBtc2dpZD0iNDcwMDEzMDIyODY1NDUzOTIwIj4i0YHQuNGB0YLQtdC8INC906nTqdGI0LvTqdC70YIg0LHQvtC70L7QvSDRgdGN0YDQs9GN0Y3Qu9GC0LjQudCzINGD0LTQuNGA0LTQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmFja3VwIiBtc2dpZD0iNjkxMjIzMDUyNTE0MDU4OTg5MSI+ItCQ0L/QvyDQvdGMINGB0LjRgdGC0LXQvNC40LnQvSDQvdOp06nRiNC706nRhSDQsdC+0LvQvtC9INGB0Y3RgNCz0Y3RjdGFINGC0L7Qs9GC0L7Qu9GG0L7QvtCzINGD0LTQuNGA0LTQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdCz0LjQudC9INCw0L/Qvy3Rg9GD0LTQsNC0INGF0Y3RgNGN0LPQu9GN0LPQtNGN0YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maXJtX2Z1bGxfYmFja3VwIiBtc2dpZD0iNTU1NzA3MTMyNTgwNDQ2OTEwMiI+ItCx0q/RgtGN0L0g0L3TqdOp0YjQu9Op0LvRgtC40LnQsyDQsdCw0YLQsNGC0LPQsNGFINGN0YHQstGN0Lsg0LDQttC40LvQu9Cw0LPQsNCw0LMg0YHRjdGA0LPRjdGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maXJtX2Z1bGxfYmFja3VwIiBtc2dpZD0iMTc0ODc2MjE3MTYzNzY5OTU2MiI+ItCQ0L/QvyDQvdGMINCx0q/RgNGN0L0g0L3TqdOp0YjQu9Op0LvRgtC40LnQsyDQsdCw0YLQsNC70LPQsNCw0LbRg9GD0LvQsNGFIFVJLdCzINGN0YXQu9Kv0q/Qu9GN0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INCw0YjQuNCz0LvQsNCz0LTQsNGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW50ZXJuYWxTeXN0ZW1XaW5kb3ciIG1zZ2lkPSIyMTQ4NTYzNjI4MTQwMTkzMjMxIj4i0Y3RgNGF0LbSr9Kv0LvRjdCz0LTRjdGN0LPSr9C5INGG0L7QvdGF0YvQsyDSr9C30q/Sr9C70Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludGVybmFsU3lzdGVtV2luZG93IiBtc2dpZD0iNzQ1ODM4Nzc1OTQ2MTQ2NjM5NyI+ItCQ0L/QvyDQvdGMINC00L7RgtC+0L7QtCDRgdC40YHRgtC10LzQuNC50L0g0YXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC40L3RgtC10YDRhNC10LnRgdGCINCw0YjQuNCz0LvQsNCz0LTQsNGFINGG0L7QvdGF0YvQsyDSr9Kv0YHQs9GN0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INCw0YjQuNCz0LvQsNCz0LTQsNGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3lzdGVtQWxlcnRXaW5kb3ciIG1zZ2lkPSIzNTQzMzQ3OTgwODM5NTE4NjEzIj4i0LHRg9GB0LDQtCDQsNC/0L8t0YAg0LfRg9GA0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N5c3RlbUFsZXJ0V2luZG93IiBtc2dpZD0iODU4NDY3ODM4MTk3MjgyMDExOCI+ItCQ0L/QvyDQvdGMINCx0YPRgdCw0LQg0LDQv9C/0LvQuNC60LXRiNC9INGN0YHQstGN0Lsg0YXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC40L3RgtC10YDRhNC10LnRgdGL0L0g0LTRjdGN0LQg0YLQsNC70LQg0LfRg9GA0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0LTQs9GN0Y3RgCDQvdGMINCx0q/RhSDQsNC/0L/Qu9C40LrQtdGI0L3RiyDQuNC90YLQtdGA0YTQtdC50YHRi9CzINCw0YjQuNCz0LvQsNGF0LDQtCDRgdCw0LDQtCDQsdC+0LvQvtGFINGN0YHQstGN0LsgICDQsdGD0YHQsNC0INCw0L/Qv9C70LjQutC10YjQvSDQtNGN0Y3RgCDRgtCw0L3RiyDRhdCw0YDQtiDQsdCw0LnQs9Cw0LDQsyDRgdC+0LvQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldEFuaW1hdGlvblNjYWxlIiBtc2dpZD0iMjgwNTEwMzI0MTE1MzkwNzE3NCI+ItCz0LvQvtCx0LDQuyDRjdC90LjQvNC10YjQvSDRhdGD0YDQtNGL0LMg06nTqdGA0YfQu9Op0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9Ijc2OTAwNjM0Mjg5MjQzNDM1NzEiPiLQkNC/0L8g0L3RjCDRj9C80LDRgCDRhyDSr9C10LQg0LPQu9C+0LHQsNC7INGN0L3QuNC80LXRiNC9INGF0YPRgNC00YvQsyjRhdGD0YDQtNCw0L0g0YPQtNCw0LDQvSDRjdC90LjQvNC10YjQvSkg0YHQvtC70LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VBcHBUb2tlbnMiIG1zZ2lkPSIxMjg2NTA1NzE3MDUwMTIxMzcwIj4i0LDQv9C/INCx0q/RgtCy0Y3RgNC40LnQsyDRg9C00LjRgNC00LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFwcFRva2VucyIgbXNnaWQ9IjgwNDM0MzE3MTMwMTQzOTU2NzEiPiLQkNC/0L8g0L3RjCDTqdOp0YDQuNC50L0g0L3QvtGA0LzQsNC7IFog0Y3RgNGN0LzQsdC40LnQsyDQtNCw0LzQttGD0YPQu9Cw0YUg0LfQsNC80LDQsNGAINOp06nRgNGB0LTQuNC50L0g0LHSr9GC0LLRjdGA0LjQudCzINKv0q/RgdCz0Y3RhSDQsdC+0LvQvtC9INGD0LTQuNGA0LTQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdCz0LjQudC9INCw0L/Qvy3QtCDRhdGN0YDRjdCz0LvRjdCz0LTRjdGF0LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mcmVlemVTY3JlZW4iIG1zZ2lkPSI0NzA4MTgxMTg0NDQxODgwMTc1Ij4i0LTRjdC70LPRjdGG0LjQudCzINGF06nQtNOp0LvQs9Op06nQvdCz0q/QuSDQsdC+0LvQs9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mcmVlemVTY3JlZW4iIG1zZ2lkPSI4NTU4OTIzNzg5MjIyNjcwMDY0Ij4i0JDQv9C/0LvQuNC60LXRiNC9INC90Ywg0LHSr9GC0Y3QvSDQtNGN0LvQs9GN0YbRgNKv0q8g0YjQuNC70LbQuNGF0Y3QtCDQtNGN0LvQs9GN0YbQuNC50LMg0YXTqdC006nQu9Cz06nTqdC90LPSr9C5INCx0L7Qu9Cz0L7RhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbmplY3RFdmVudHMiIG1zZ2lkPSIxMzc4NzQ2NTg0MDIzNTg2NjAwIj4i0YLQvtCy0Ycg0LHQvtC70L7QvSDQutC+0L3RgtGA0L7QuyDRgtC+0LLRhyDQtNCw0YDQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5qZWN0RXZlbnRzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDYzNTI1NjU1OTk5Njg2MzIiPiLQkNC70Lsg0L3RjCDTqdOp0YDQuNC50L0g0L7RgNC+0LvRgtGL0L0g0q/QudC7INGP0LLQtNC70YvQsyjRgtC+0LLRhyDQtNCw0YDQsNCz0LTQsNGFINCzLtC8KSDQsdGD0YHQsNC0INCw0L/Qvy3QtCDQtNCw0LzQttGD0YPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQpdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0Y3QvdC40LnQsyDQsNGI0LjQs9C70LDQvSDRgtCw0LHQu9C10YLRi9CzINGD0LTQuNGA0LTQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbmplY3RFdmVudHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NTMxMjgwNTc1NzIzMjYyNTMiPiLQkNC70Lsg0L3RjCDTqdOp0YDQuNC50L0g0L7RgNC+0LvRgtGL0L0g0q/QudC7INGP0LLQtNC70YvQsyjRgtC+0LLRhyDQtNCw0YDQsNCz0LTQsNGFINCzLtC8KSDQsdGD0YHQsNC0INCw0L/Qvy3QtCDQtNCw0LzQttGD0YPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQpdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0Y3QvdC40LnQsyDQsNGI0LjQs9C70LDQvSDRg9GC0YHRi9CzINGD0LTQuNGA0LTQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRJbnB1dFN0YXRlIiBtc2dpZD0iNDY5NDI4OTAwMDQxMjQ5MjM0Ij4i0YLQsNC90Ysg0YXQuNC50LYg0LHQsNC50LPQsNCwINKv0LnQu9C00Y3QuyDQsdC+0LvQvtC9INCx0LjRh9C40LYg0LHQsNC50LPQsNCw0LMg0LHQuNGH0LvRjdCzINGF0LjQudGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZElucHV0U3RhdGUiIG1zZ2lkPSI4Mzg3NzU0OTAxNjg4NzI4MDQzIj4i0JDQv9C/INC90Ywg0LHRg9GB0LDQtCDQsNC/0L8t0YLQsNC5INGF0LDRgNC40LvRhtCw0L0g0q/QudC70YfQuNC70LYo0L3Rg9GD0YYg0q/QsyDQvtGA0YPRg9C70LDRhSkg0YLQsNC90Ysg0LTQsNGA0YHQsNC9INGC0L7QstGH0LjQudCzINCw0LbQuNCz0LvQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdCz0LjQudC9INCw0L/Qvy3QtCDRhdGN0YDRjdCz0LvRjdCz0LTRjdGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZElucHV0TWV0aG9kIiBtc2dpZD0iMzM2MDA2NDYyMDIzMDUxNTc3NiI+ItC+0YDQvtC70YLRi9C9INCw0YDQs9Cw0YLQsNC5INGF0L7Qu9Cx0L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRJbnB1dE1ldGhvZCIgbXNnaWQ9IjMyNTA0NDAzMjI4MDcyODYzMzEiPiLQrdC30Y3QvNGI0LjQs9GHINC90Ywg0L7RgNGD0YPQu9Cw0YUg0LDRgNCz0YvQvSDQtNGN0Y3QtC3RgtOp0LLRiNC40L3QuNC5INC40L3RgtC10YDRhNC10LnRgdGC0Y3QuSDRhdC+0LvQsdC+0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INGF0Y3RgNGN0LPQu9GN0LPQtNGN0YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kQWNjZXNzaWJpbGl0eVNlcnZpY2UiIG1zZ2lkPSI1MzU3NzMzOTQyNTU2MDMxNTkzIj4i0YXQsNC90LTQsNC70YLRi9C9INKv0LnQu9GH0LjQu9Cz0Y3RjdC90LQg0YXQvtC70LHQvtCz0LTQvtGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZEFjY2Vzc2liaWxpdHlTZXJ2aWNlIiBtc2dpZD0iNzAzNDYxNTkyODYwOTMzMTM2OCI+ItCt0LfRjdC80YjQuNCz0Ycg0L3RjCDRhdCw0L3QtNCw0YUg0q/QudC70YfQuNC70LPRjdGN0L3QuNC5INC00Y3RjdC0LdGC06nQstGI0LjQvdC40Lkg0LjQvdGC0LXRgNGE0LXQudGB0YLRjdC5INGF0L7Qu9Cx0L7RhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3Qs9C40LnQvSDQsNC/0L8t0LQg0YjQsNCw0YDQtNC70LDQs9Cw0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFByaW50U2VydmljZSIgbXNnaWQ9Ijg0NjI4MTUxNzk1NzI3NDg3NjEiPiLRhdGN0LLQu9GN0YUg0q/QudC70YfQuNC70LPRjdGN0YLRjdC5INGF0L7Qu9Cx0L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQcmludFNlcnZpY2UiIG1zZ2lkPSI3OTYwMDY3NjIzMjA5MTExMTM1Ij4i0K3Qt9GN0LzRiNC40LPRh9C40LQg0YXRjdCy0LvRjdGFINKv0LnQu9GH0LjQu9Cz0Y3RjdC90LjQuSDQtNGN0Y3QtC3RgtKv0LLRiNC90LjQuSDQuNC90YLQtdGA0YTQtdC50YHRgtGN0Lkg0YXQvtC70LHQvtGFINCx0L7Qu9C+0LzQtiDQvtC70LPQvtC90L4uINCt0L3Qs9C40LnQvSDQsNC/0L8t0YPRg9C00LDQtCDRhdGN0LfRjdGNINGHINCw0YjQuNCz0LvQsNCz0LTQsNGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzQWxsUHJpbnRKb2JzIiBtc2dpZD0iMTEyMDc5MjQ2ODQ2NTcxMTE1OSI+ItCx0q/RhSDRhdGN0LLQu9GN0YUg0LDQttC40LvQtCDRhdCw0L3QtNCw0LvRgiDRhdC40LnRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0FsbFByaW50Sm9icyIgbXNnaWQ9IjI5NzgxODUzMTEwNDE4NjQ3NjIiPiLQrdC30Y3QvNGI0LjQs9GH0LjQtCDTqdOp0YAg0LDQv9C/LdCw0LDRgSDSr9Kv0YHQs9GN0YHRjdC9INGF0Y3QstC70Y3RhSDQsNC20LjQu9C0INGF0LDQvdC00LDQu9GCINGF0LjQudGFINCx0L7Qu9C+0LzQtiDQvtC70LPQvtC90L4uINCt0L3Qs9C40LnQvSDQsNC/0L8t0YPRg9C00LDQtCDRhdGN0LfRjdGNINGHINCw0YjQuNCz0LvQsNCz0LTQsNGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSIyNzUyNzMxMzAwNDE5NDEwNzI0Ij4iTkZDINKv0LnQu9GH0LjQu9Cz0Y3RjdGC0Y3QuSDRhdC+0LvQsdC+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kTmZjU2VydmljZSIgbXNnaWQ9IjYxMjA2NDc2MjkxNzQwNjY4NjIiPiLQrdC30Y3QvNGI0LjQs9GH0LjQtCBORkMg0LrQsNGA0YLRg9GD0LTRi9CzINC00YPRg9GA0LDQudC70LPQsNC00LDQsyDQsNC/0L/Qu9C40LrQtdGI0L3Sr9Kv0LTQuNC50LMg0YXQvtC70LHQvtGFINCx0L7Qu9C+0LzQtiDQvtC70LPQvtC90L4uINCt0L3Qs9C40LnQvSDQsNC/0L8t0YPRg9C00LDQtCDRhdGN0LfRjdGNINGHINGI0LDQsNGA0LTQsNCz0LTQsNGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iNzM1ODM3ODQwMTkxNTI4NzkzOCI+ItGC0LXQutGB0YIg0q/QudC70YfQuNC70LPRjdGN0YLRjdC5INGF0L7Qu9Cx0L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRUZXh0U2VydmljZSIgbXNnaWQ9IjgxNTE5Njg5MTA5NzM5OTg2NzAiPiLQrdC30Y3QvNGI0LjQs9GHINC90Ywg0YLQtdC60YHRgiDSr9C50LvRh9C40LvQs9GN0Y3QvdC40Lko0LYu0L3RjC4gU3BlbGxDaGVja2VyU2VydmljZSkg0LTRjdGN0LQt0YLTqdCy0YjQuNC90LjQuSDQuNC90YLQtdGA0YTQtdC50YHRgtGN0Lkg0YXQvtC70LHQvtGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdCz0LjQudC9INCw0L/Qvy3QtCDRhdGN0YDRjdCz0LvRjdCz0LTRjdGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSI0NzA4NTk2MDIxMTYxNDczMjU1Ij4iVlBOINKv0LnQu9GH0LjQu9Cz0Y3RjdGC0Y3QuSDRhdC+0LvQsdC+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVnBuU2VydmljZSIgbXNnaWQ9IjIwNjc4NDU1NjQ1ODE2OTM5MDUiPiLQrdC30Y3QvNGI0LjQs9GHINC90YwgVlBOINKv0LnQu9GH0LjQu9Cz0Y3RjdC90LjQuSDQtNGN0Y3QtC3RgtOp0LLRiNC40L3QuNC5INC40L3RgtC10YDRhNC10LnRgdGC0Y3QuSDRhdC+0LvQsdC+0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INGI0LDQsNGA0LTQu9Cw0LPQsNCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRXYWxscGFwZXIiIG1zZ2lkPSI4NzE2NDAwMjc5OTM3ODU2NDYyIj4i0YXQsNC90YvQvSDQt9GD0YDQsNCz0YLQsNC5INGF0L7Qu9Cx0L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRXYWxscGFwZXIiIG1zZ2lkPSI3MTA4NDI4NjkyNTk1NDkxNjY4Ij4i0K3Qt9GN0LzRiNC40LPRhyDQvdGMINGF0LDQvdGL0L0g0LfRg9GA0LDQs9C90Ysg0LTRjdGN0LQt0YLTqdCy0YjQuNC90LjQuSDQuNC90YLQtdGA0YTQtdC50YHRgtGN0Lkg0YXQvtC70LHQvtGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdCz0LjQudC9INCw0L/Qvy3Rg9GD0LTQsNC0INGI0LDQsNGA0LTQu9Cw0LPQsNCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjU2OTc5ODc3NTk4OTczNjcwOTkiPiLQstC40LTQttC10YIg0q/QudC70YfQuNC70LPRjdGN0YLRjdC5INGF0L7Qu9Cx0L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjQ3MTc5ODc4MTAxMzc2OTI1NzIiPiLQrdC30Y3QvNGI0LjQs9GHINC90Ywg0LLQuNC00LbQtdGCINKv0LnQu9GH0LjQu9Cz0Y3RjdC90LjQuSDQtNGN0Y3QtC3RgtOp0LLRiNC40L3QuNC5INC40L3RgtC10YDRhNC10LnRgdGC0Y3QuSDRhdC+0LvQsdC+0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INGI0LDQsNGA0LTQu9Cw0LPQsNCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9Ijg3MDQ5ODYxNjM3MTE0NTUwMTAiPiLRgtOp0YXTqdOp0YDTqdC80LbQuNC50L0g0LDQtNC80LjQvdGC0LDQuSDRhdCw0YDQuNC70YbQsNC9INKv0LnQu9GH0LvRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZERldmljZUFkbWluIiBtc2dpZD0iNTY5NzE1NDE5NTQzOTA3OTMwIj4i0K3Qt9GN0LzRiNC40LPRhyDQvdGMINGC06nRhdOp06nRgNOp0LzQttC40LnQvSDQsNC00LzQuNC90YDRg9GDINC40L3RgtC10L3RgiDQuNC70LPRjdGN0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INGI0LDQsNGA0LTQu9Cw0LPQsNCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZURldmljZUFkbWlucyIgbXNnaWQ9IjQyNDg4Mjg5MDAwNDU4MDg3MjIiPiLRgtOp0YXTqdOp0YDTqdC80LbQuNC50L0g0LDQtNC80LjQvSDQvdGN0LzRjdGFLCDRhdCw0YHQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNTAyNTYwODE2NzcwOTk0MjQ4NSI+ItCt0LfRjdC80YjQuNCz0Ycg0L3RjCDQuNC00Y3QstGF0YLRjdC5INGC06nRhdOp06nRgNOp0LzQttC40LnQvSDQsNC00LzQuNC90LjRgdGC0YDQsNGC0L7RgNGL0LMg0L3RjdC80Y3RhSwg0YXQsNGB0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3Qs9C40LnQvSDQsNC/0L8t0LQg0YjQsNCw0YDQtNC70LDQs9Cw0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0T3JpZW50YXRpb24iIG1zZ2lkPSIzMzY1OTQ3NzE3MTYzODY2ODQ0Ij4i0LTRjdC70LPRjdGG0L3QuNC5INGH0LjQs9C70Y3Qu9C40LnQsyDRgdC+0LvQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0T3JpZW50YXRpb24iIG1zZ2lkPSIzMDQ2MTI2NjE5MzE2NjcxNDc2Ij4i0JDQv9C/INC90Ywg0Y/QvNCw0YAg0Ycg0q/QtdC0INC00Y3Qu9Cz0Y3RhtC90LjQuSDRjdGA0LPRjdC70YLQuNC50LMg0YHQvtC70LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3Qs9C40LnQvSDQsNC/0L/Qu9C40LrQtdGI0L3QtCDRhdGN0LfRjdGNINGHINCw0YjQuNCz0LvQsNGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0UG9pbnRlclNwZWVkIiBtc2dpZD0iOTE3NTM3MTYxMzMyMjU2MjkzNCI+ItC30LDQsNCz0YfQuNC50L0g0YXRg9GA0LTRi9CzINGB0L7Qu9C40YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRQb2ludGVyU3BlZWQiIG1zZ2lkPSI2ODY2NTYzMjM0Mjc0MTA0MjMzIj4i0JDQv9C/INC90Ywg0YXRg9C70LPQsNC90LAg0Y3RgdCy0Y3QuyDRhdOp0LTQu9Op0YUg0YHQsNC80LHQsNGA0YvQvSDQt9Cw0LDQs9GH0LjQudC9INGF0YPRgNC00YvQsyDRj9C80LDRgNGHINKv0LXQtCDRgdC+0LvQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdCz0LjQudC9INCw0L/Qvy3QtCDRhdGN0YDRjdCz0LvRjdCz0LTRjdGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0S2V5Ym9hcmRMYXlvdXQiIG1zZ2lkPSI0Nzc4NzMxNzAzNjAwOTA5MzQwIj4i0LPQsNGA0YvQvSDRgdGF0LXQvNC40LnQsyDRgdC+0LvQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0S2V5Ym9hcmRMYXlvdXQiIG1zZ2lkPSI4NDgwMDE2NzcxMTM0MTc1ODc5Ij4i0JDQv9C/INC90Ywg0LPQsNGA0YvQvSDRgdGF0LXQvNGL0LMg0YHQvtC70LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3Qs9C40LnQvSDQsNC/0L8t0LQg0YXRjdGA0Y3Qs9C70Y3Qs9C00Y3RhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0NTM5MDAyOTkxOTQ3Mzc2NjU5Ij4i0LDQv9C/0YDRg9GDIExpbnV4INC00L7RhdC40L4g0LjQu9Cz0Y3RjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2lnbmFsUGVyc2lzdGVudFByb2Nlc3NlcyIgbXNnaWQ9IjQ4OTY5OTIwNzkxODI2NDkxNDEiPiLQkNC/0L8g0L3RjCDQsdKv0YUg0LHQsNC50L3Qs9GL0L0g0L/RgNC+0YbQtdGB0YHRgNGD0YMg0YXQsNC90LPQsNC80LbQuNC50L0g0LTQvtGF0LjQvtCzINC40LvQs9GN0Y3RhSDRhdKv0YHRjdC70YLQuNC50LMg0YXQuNC50YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyc2lzdGVudEFjdGl2aXR5IiBtc2dpZD0iODg0MTExMzYyNzk1NTU2MzkzOCI+ItCw0L/Qvy3QsyDQsdCw0LnQvdCz0LAg0LDQttC40LvQu9GD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg1MjUxODkyNzIzMjkwODYxMzciPiLQkNC/0L8g0L3RjCDTqdOp0YDQuNC50L0g0YXRjdGB0LPQuNC50L0g0YHQsNC90LDRhSDQvtC50LQg0LHQsNC50L3Qs9CwINCx0LDQudC70LPQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC90Ywg0LHRg9GB0LDQtCDQsNC/0L8t0YPRg9C00YvQvSDQsNGI0LjQs9C70LDRhSDRgdCw0L3QsNGFINC+0LnQsyDRhdGP0LfQs9Cw0LDRgNC70LDQvSDRgtCw0LHQu9C10YLRi9CzINGD0LTQsNCw0YjRgNGD0YPQu9Cw0YUg0LHQvtC70L3Qvi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0Mzg0NzYwMDQ3NTA4Mjc4MjcyIj4i0JDQv9C/INC90Ywg06nTqdGA0LjQudC9INGF0Y3RgdCz0LjQudCzINGB0LDQvdCw0YUg0L7QudC0INCx0LDQudC90LPQsCDQsdCw0LnQu9Cz0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3RjSDQvdGMINCx0YPRgdCw0LQg0LDQv9C/LdGD0YPQtNGL0L0g0LDRiNC40LPQu9Cw0YUg0YHQsNC90LDRhSDQvtC50LMg0YXRj9C30LPQsNCw0YDQu9Cw0L0g0YPRgtGB0YvQsyDRg9C00LDQsNGI0YDRg9GD0LvQsNGFINCx0L7Qu9C90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZWxldGVQYWNrYWdlcyIgbXNnaWQ9IjE4NDM4NTEyOTUzNzcwNTkzOCI+ItCw0L/QvyDRg9GB0YLQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZWxldGVQYWNrYWdlcyIgbXNnaWQ9Ijc0MTE0ODAyNzUxNjcyMDUwODEiPiLQkNC/0L8g0L3RjCDQkNC90LTRgNC+0LnQtCDQsdCw0LPRhtC40LnQsyDRg9GB0YLQs9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQpdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0Y3QvdC40LnQsyDQsNGI0LjQs9C70LDQvSDRh9GD0YXQsNC7INCw0L/Qvy3QsyDRg9GB0YLQs9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2xlYXJBcHBVc2VyRGF0YSIgbXNnaWQ9IjI3NDEwOTE5MTg0NTg0Mjc1NiI+ItCx0YPRgdCw0LQg0LDQv9C/LdC9INC00LDRgtCw0LMg0YPRgdGC0LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2xlYXJBcHBVc2VyRGF0YSIgbXNnaWQ9IjQ2MjUzMjM2ODQxMjU0NTk0ODgiPiLQkNC/0L8g0L3RjCDRhdGN0YDRjdCz0LvRjdCz0YfQuNC50L0g0LTQsNGC0LDQsyDQsNGA0LjQu9Cz0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZWxldGVDYWNoZUZpbGVzIiBtc2dpZD0iMzEyODY2NTU3MTgzNzQwODY3NSI+ItCx0YPRgdCw0LQg0LDQv9C/LdC9INC60LXRiNGN0Y3RgSDRg9GB0YLQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZWxldGVDYWNoZUZpbGVzIiBtc2dpZD0iMzgxMjk5ODU5OTAwNjczMDE5NiI+ItCQ0L/QvyDQvdGMINC60LXRiCDRhNCw0LnQu9Cw0LDRgSDRg9GB0YLQs9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0UGFja2FnZVNpemUiIG1zZ2lkPSI3NDcyOTIxNzY4MzU3OTgxOTg2Ij4i0LDQv9C/INGB0LDQvdCz0LjQudC9INGF0Y3QvNC20Y3RjdCzINGF0Y3QvNC20LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFBhY2thZ2VTaXplIiBtc2dpZD0iMzkyMTA2ODE1NDQyMDczODI5NiI+ItCQ0L/QvyDQvdGMINOp06nRgNC40LnQvSDQutC+0LQsINC00LDRgtCwINCx0L7Qu9C+0L0g0LrQtdGIINGF0Y3QvNC20Y3RjdCzINGD0L3RiNC40YUg0LHQvtC70L7QvNC20YLQvtC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnN0YWxsUGFja2FnZXMiIG1zZ2lkPSIyMTk5MTI4NDgyODIwMzA2OTI0Ij4i0LDQv9C/LdCzINGI0YPRg9C0INGB0YPRg9C70LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iNTYyODUzMDk3MjU0ODA3MTI4NCI+ItCQ0L/QvyDQvdGMINGI0LjQvdGNINGN0YHQstGN0Lsg0YjQuNC90Y3Rh9C70Y3Qs9C00YHRjdC9INCQ0L3QtNGA0L7QudC0INCx0LDQs9GG0LjQudCzINGB0YPRg9C70LPQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0KXQvtGA0YLQvtC5INCw0L/QvyDQvdGMINGN0L3QuNC50LMg0LDRiNC40LPQu9Cw0L0g0LTRg9GA0YvQvSDRjdGA0YXRgtGN0Lkg0YjQuNC90Y0g0LDQv9C/LdCzINGB0YPRg9C70LPQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NsZWFyQXBwQ2FjaGUiIG1zZ2lkPSI3NDg3Mjc5MzkxNzIzNTI2ODE1Ij4i0LHSr9GFINCw0L/Qvy3QvSDQutC10Ygg0LTQsNGC0LDQsyDRg9GB0YLQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4OTc0NjQwODcxOTQ1NDM0NTY1Ij4i0JDQv9C/INC90Ywg0LHRg9GB0LDQtCDQsNC/0L/Qu9C40LrQtdGI0L3RiyDQutC10Ygg0LTQuNGA0LXQutGC0L7RgNC+0L7RgSDRhNCw0LnQuyDRg9GB0YLQs9Cw0L0g0YLQsNCx0LvQtdGC0YvQvSDRgdCw0L3QsyDRh9Op0LvTqdOp0LvTqdGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNICDQvdGMINCx0YPRgdCw0LQg0LDQv9C/0LvQuNC60LXRiNC90LQg0L3TqdC706nTqdC70LYsINGC0Y3QtNCz0Y3RjdGAINC90Ywg0Y3RhdC70Y3RhdC00Y3RjSDRiNCw0LDRgNC00LvQsNCz0LDRgtCw0Lkg0LTQsNGC0LDQs9Cw0LAg0LTQsNGF0LjQvSDQtNGD0YPQtNCw0YUg0YLRg9C7INGD0LTQsNCw0YjQuNGA0Ycg0LHQvtC70LfQvtGI0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NsZWFyQXBwQ2FjaGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNDU5NDQxMDIxOTU2NDM2Nzc5Ij4i0JDQv9C/INC90Ywg0LHRg9GB0LDQtCDQsNC/0L/Qu9C40LrQtdGI0L3RiyDQutC10Ygg0LTQuNGA0LXQutGC0L7RgNC+0L7RgSDRhNCw0LnQuyDRg9GB0YLQs9Cw0L0g0YPRgtCw0YHQvdGLINGB0LDQvdCzINGH06nQu9Op06nQu9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90Y0g0L3RjCDQsdGD0YHQsNC0INCw0L/Qv9C70LjQutC10YjQvdC0INC906nQu9Op06nQu9C2LCDRgtGN0LTQs9GN0Y3RgCDQvdGMINGN0YXQu9GN0YXQtNGN0Y0g0YjQsNCw0YDQtNC70LDQs9Cw0YLQsNC5INC00LDRgtCw0LPQsNCwINC00LDRhdC40L0g0LTRg9GD0LTQsNGFINGC0YPQuyDRg9C00LDQsNGI0LjRgNGHINCx0L7Qu9C30L7RiNCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdmVQYWNrYWdlIiBtc2dpZD0iMzI4OTg5MDI3MTY0NTkyMTQxMSI+ItCw0L/QvyDQvdOp06nRhtC40LnQsyDRiNC40LvQttKv0q/Qu9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3ZlUGFja2FnZSIgbXNnaWQ9IjMxOTU2MjIxNzc3ODI0NDUyNCI+ItCQ0L/QvyDQvdGMINCw0L/QvyDQvdOp06nRhtC40LnQsyDQtNC+0YLRgNC+0L7RgSDQs9Cw0LTQvdCwINC80LXQtNC40LDRgNGD0YMg0LHQvtC70L7QvSDRjdGB0YDRjdCz0Y3RjdGAINC90Ywg0LfTqdOp0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZExvZ3MiIG1zZ2lkPSI2NjE1Nzc4NTQzMTk4OTY3NjE0Ij4i0L3Rg9GD0YYg0LvQvtCzINC00LDRgtCwINGD0L3RiNC40YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTG9ncyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODIwNjEzMTMyOTM0NTUxNTEiPiLQkNC/0L8g0L3RjCDRgdC40YHRgtC10LzQuNC50L0g0YLTqdGA06nQuyDQsdKv0YDQuNC50L0g0LvQvtCzINGE0LDQudC70YvQsyDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC90Ywg0YLQsCDRgtCw0LHQu9C10YIg0LTRjdGN0YDRjdGNINGO0YMg0YXQuNC50YHRjdC9INGC0LDQu9Cw0LDRgNGFINGF0YPQstC40LnQvSDQsdC+0LvQvtC9INC90YPRg9GGINC80Y3QtNGN0Y3Qu9C70LjQudCzINC+0LvQvtGFINCx0L7Qu9C+0LzQttGC0L7QuSDQsdC+0LvQs9C+0L3Qvi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTG9ncyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIwNjM0MzgxNDAyNDE1NjA0NDMiPiLQkNC/0L8g0L3RjCDRgdC40YHRgtC10LzQuNC50L0g0YLTqdGA06nQuyDQsdKv0YDQuNC50L0g0LvQvtCzINGE0LDQudC70YvQsyDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC90Ywg0YLQsCDRg9GC0YHQsNC9INC00Y3RjdGA0Y3RjSDRjtGDINGF0LjQudGB0Y3QvSDRgtCw0LvQsNCw0YDRhSDRhdGD0LLQuNC50L0g0LHQvtC70L7QvSDQvdGD0YPRhiDQvNGN0LTRjdGN0LvQu9C40LnQsyDQvtC70L7RhSDQsdC+0LvQvtC80LbRgtC+0Lkg0LHQvtC70LPQvtC90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hbnlDb2RlY0ZvclBsYXliYWNrIiBtc2dpZD0iNzE1ODA1NTU1ODIzODgxODE4Ij4i0YLQvtCz0LvRg9GD0LvQsNGF0YvQvSDRgtGD0LvQtCDQtNGD0YDRi9C9INC80LXQtNC40LAg0YjQuNGE0YDQu9GN0LPRh9C40LnQsyDQsNGI0LjQs9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI4MjgzOTEyNDg4NDMzMTg5MDEwIj4i0JDQv9C/INC90Ywg0YLQvtCz0LvRg9GD0LvQsNGFINKv0LXQtNGN0Y0g0LrQvtC0INGC0LDQudC70LDRhdC00LDQsCDRgdGD0YPQu9Cz0LDQs9C00YHQsNC9INGP0LzQsNGA0Ycg0LzQtdC00LjQsCDQutC+0LQg0YLQsNC50LvQsNCz0YfQuNC50LMg0LDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQ2FDZXJ0aWZpY2F0ZXMiIG1zZ2lkPSIxNjc4MzkxODk2Nzg2ODgyMDE0Ij4i0LjRgtCz0Y3QvNC20LvRjdCz0LTRgdGN0L0g0LbRg9GD0YXRg9GD0LTRi9CzINGD0LTQuNGA0LTQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQ2FDZXJ0aWZpY2F0ZXMiIG1zZ2lkPSI0MDE1NjQ0MDQ3MTk2OTM3MDE0Ij4i0JDQv9C/LdC0IENBINGB0LXRgNGC0LjRhNC40LrQsNGC0YPRg9C00YvQsyDQuNGC0LPRjdC80LbQu9GN0LPQtNGB0Y3QvSDQttGD0YPRhSDQsdCw0LnQtNC70LDQsNGAINGB0YPRg9C70LPQsNGFINCx0L7Qu9C+0L0g0YPRgdGC0LPQsNGF0YvQsyDQt9Op0LLRiNOp06nRgNC906kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kaWFnbm9zdGljIiBtc2dpZD0iODA3Njc0Mzk1MzkwODAwMDM0MiI+ItC+0L3QvtGI0LvQvtGFINCz0YDSr9C/0LjQudC9INGN0LfRjdC80YjQtNGN0LMg0L3TqdOp0YbRgNKv0q8g0YPQvdGI0LjRhS/QsdC40YfQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlhZ25vc3RpYyIgbXNnaWQ9IjY2MDgyOTU2OTIwMDI0NTIyODMiPiLQkNC/0L8g0L3RjCDQvtC90L7RiNC70L7RhSDQs9GA0q/Qv9C40LnQvSDRjdC30Y3QvNGI0LTRjdCzLCDQttC40YjRjdGNINC90YwgL2RldiDQtNC+0YLQvtGA0YUg0YTQsNC50LvRg9GD0LQsINC00YPRgNGL0L0gINC906nTqdGG0LjQudCzINGD0L3RiNC40YUg0LHQuNGH0LjRhSDQsdC+0LvQvtC80LbRgtC+0Lku0K3QvdGNINC90Ywg0YHQuNGB0YLQtdC80LjQudC9INGC0L7Qs9Cy0L7RgNGC0L7QuSDQsdCw0LnQtNCw0Lsg0LHQvtC70L7QvSDQsNGO0YPQu9Cz0q/QuSDQsdCw0LnQtNCw0LvQtCDQsdC+0LTQuNGC0L7QvtGAINC906nQu9Op06nQu9C906kuINCt0L3RjSDQvdGMINKv0LnQu9C00LLRjdGA0LvRjdCz0Ycg0LHQvtC70L7QvSDQvtC/0LXRgNCw0YLQvtGA0YvQvSDRhdCw0YDQtNCy0LXRgNGCLdC30L7RgNC40YPQu9GB0LDQvSDQvtC90L7RiNC70L7Qs9C+0L7QvdC0INCw0YjQuNCz0LvQsNCz0LTQsNC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VDb21wb25lbnRTdGF0ZSIgbXNnaWQ9IjYzMzU1NzY3NzU3MTEwOTU5MzEiPiLQsNC/0L8g0LrQvtC80L/QvtC90LXQvdGC0YvQsyDQuNC00Y3QstGF0LbSr9Kv0LvRjdGFINGN0YHQstGN0Lsg0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQs9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODg4NzQzNTc0MDk4MjIzNzI5NCI+ItCQ0L/QvyDQvdGMINOp06nRgCDQsNC/0L8t0L0g0LrQvtC80L/QvtC90LXQvdGCINC40LTRjdCy0YXRgtGN0Lkg0Y3RgdGN0YXQuNC50LMg0YHQvtC70LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCl0L7RgNGC0L7QuSDQsNC/0L8g0L3RjCDRjdC90LjQudCzINCw0YjQuNCz0LvQsNC9INGC0LDQsdC70LXRgtGL0L0g0YfRg9GF0LDQuyDRh9Cw0LTQsNC80LbQuNC50LMg0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQs9C+0LYg0LHQvtC70LfQvtGI0LPSr9C5LiDQl9Op0LLRiNOp06nRgNOp0Lsg0L3RjCDQsNC/0L/Qu9C40LrQtdGI0L0g0LrQvtC80L/QvtC90LXQvdGC0YvQsyDRgtC+0LPRgtCy0L7RgNCz0q/QuSwg0LDRiNC40LPQu9Cw0LYg0LHQvtC70L7RhdCz0q/QuSwg0YLQvtGF0LjRgNC+0LzQttCz0q/QuSDRgtOp0LvTqdCy0YIg0L7RgNGD0YPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5INGC0YPQuyDQsNGI0LjQs9C70LDRhdC00LDQsCDQsdC+0LvQs9C+0L7QvNC20YLQvtC5INCx0LDQudGFINGI0LDQsNGA0LTQu9Cw0LPQsNGC0LDQuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE4MjcyMzI0ODQ0MTY1MDU2MTUiPiLQkNC/0L8g0L3RjCDTqdOp0YAg0LDQv9C/LdC9INC60L7QvNC/0L7QvdC10L3RgiDQuNC00Y3QstGF0YLRjdC5INGN0YHRjdGF0LjQudCzINGB0L7Qu9C40YUg0LHQvtC70L7QvNC20YLQvtC5LiDQpdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0Y3QvdC40LnQsyDQsNGI0LjQs9C70LDQvSDRg9GC0LDRgdC90Ysg0YfRg9GF0LDQuyDRh9Cw0LTQsNC80LbQuNC50LMg0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQs9C+0LYg0LHQvtC70LfQvtGI0LPSr9C5LiDQl9Op0LLRiNOp06nRgNOp0Lsg0L3RjCDQsNC/0L/Qu9C40LrQtdGI0L0g0LrQvtC80L/QvtC90LXQvdGC0YvQsyDRgtC+0LPRgtCy0L7RgNCz0q/QuSwg0LDRiNC40LPQu9Cw0LYg0LHQvtC70L7RhdCz0q/QuSwg0YLQvtGF0LjRgNC+0LzQttCz0q/QuSDRgtOp0LvTqdCy0YIg0L7RgNGD0YPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5INGC0YPQuyDQsNGI0LjQs9C70LDRhdC00LDQsCDQsdC+0LvQs9C+0L7QvNC20YLQvtC5INCx0LDQudGFINGI0LDQsNGA0LTQu9Cw0LPQsNGC0LDQuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dyYW50UmV2b2tlUGVybWlzc2lvbnMiIG1zZ2lkPSI0NjI3MzE1MzUxMDkzNTA4Nzk1Ij4i0LfTqdCy0YjTqdOp0YDTqdC7INC+0LvQs9C+0YUg0Y3RgdCy0Y3QuyDRhtGD0YbQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ncmFudFJldm9rZVBlcm1pc3Npb25zIiBtc2dpZD0iNDA4ODY0MjY1NDA4NTg1MDY2MiI+ItCQ0L/Qv9C70LjQutC10YjQvSDQvdGMINOp06nRgNGC0Y3QuSDQsdC+0LvQvtC9INCx0YPRgdCw0LQg0LDQv9C/0LvQuNC60LXRiNC90LQg0YLRg9GB0LPQsNC5INC306nQstGI06nTqdGA0LvQuNC50LMg0L7Qu9Cz0L7RhSDQsdC+0LvQvtC9INGG0YPRhtC70LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCl0L7RgNGC0L7QuSDQsNC/0L/Qu9C40LrQtdGI0L0g0L3RjCDRjdC90LjQudCzINCw0YjQuNCz0LvQsNC9INGC0LDQvdGLINC+0LvQs9C+0L7Qs9Kv0Lkg0Y3RgNGF0Y3QvdC0INGF0LDQvdC00LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcmVmZXJyZWRBcHBsaWNhdGlvbnMiIG1zZ2lkPSI4NDYzMTgxNjI4Njk1Mzk2MzkxIj4i0q/QvdC00YHRjdC9INCw0L/Qvy3QsyDRgtC+0YXQuNGA0YPRg9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFByZWZlcnJlZEFwcGxpY2F0aW9ucyIgbXNnaWQ9IjQ5NzM5ODY3NjIyNDE3ODM3MTIiPiLQkNC/0L8g0L3RjCDRgtCw0L3RiyDRgtGD0YHQs9Cw0Lkg0LDQv9C/LdGD0YPQtNGL0LMg06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQpdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0LDQttC40LvQu9Cw0LYg0LHQsNC50LPQsNCwINCw0L/Qvy3QsyDQvdGD0YPRhtCw0LDRgCDTqdOp0YDRh9C706nQvSwg0YLQsNC90Ysg0YXRg9GD0YfQuNC9INCw0L/Qvy3QsyDRgtCw0L3RiyDRhdGD0LLQuNC50L0g0LTQsNGC0LDQsyDRhtGD0LPQu9GD0YPQu9Cw0LPRhyDQsdC+0LvQs9C+0L0g0YXRg9GD0YDQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU2V0dGluZ3MiIG1zZ2lkPSIyMjI2MTk1MjkwOTU1MjI0NzMwIj4i0YHQuNGB0YLQtdC8INGC0L7RhdC40YDQs9C+0L7QsyDTqdOp0YDRh9C706nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU2V0dGluZ3MiIG1zZ2lkPSI3Nzc1NzIzNDQxNTU4OTA3MTgxIj4i0JDQv9C/INC90Ywg0YHQuNGB0YLQtdC80LjQudC9INGC0L7RhdC40YDQs9C+0L7QvdGLINC00LDRgtCw0LMg06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQpdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0YLQsNC90Ysg0YHQuNGB0YLQtdC80LjQudC9INGC0L7RhdC40YDQs9C+0L7QsyDRgdKv0LnRgtCz0Y3RhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNlY3VyZVNldHRpbmdzIiBtc2dpZD0iMjA0Njc2MjUxODc2NzE4Mjg4Ij4i0LDRjtGD0LvQs9Kv0Lkg0YHQuNGB0YLQtdC8INGC0L7RhdC40YDQs9C+0L7QsyDTqdOp0YDRh9C706nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSI4MTU5NTM1NjEzMDIwMTM3MzkxIj4i0JDQv9C/INC90Ywg0YHQuNGB0YLQtdC80LjQudC9INCw0Y7Rg9C70LPSr9C5INCx0LDQudC00LvRi9C9INGC0L7RhdC40YDQs9C+0L7QvdGLINC00LDRgtCw0LMg06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INCw0YjQuNCz0LvQsNCz0LTQsNGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIyMTQ5NDI2NjY0MjI2MTUyMTg1Ij4iR29vZ2xlINCz0LDQt9GA0YvQvSDQt9GD0YDQs9C40LnQvSDSr9C50LvRh9C40LvQs9GN0Y3QsyDTqdOp0YDRh9C706nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlR3NlcnZpY2VzIiBtc2dpZD0iMTI4NzMwOTQzNzYzODM4MDIyOSI+ItCQ0L/QvyDQvdGMIEdvb2dsZS3QvSDQs9Cw0LfRgNGL0L0g0LfRg9GA0LPQuNC50L0g0q/QudC70YfQuNC70LPRjdGN0LMg06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INCw0YjQuNCz0LvQsNCz0LTQsNGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIG1zZ2lkPSI1MzEyOTY1NTY1OTg3ODAwMDI1Ij4i0K3RhdC70Y3RhdGN0LQg0LDQttC40LvQu9GD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlQm9vdENvbXBsZXRlZCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzM5MDMwNDY2NDExNjg4MDcwNCI+ItCQ0L/QvyDQvdGMINGB0LjRgdGC0LXQvCDQsNGB0LDQtiDQtNGD0YPRgdCw0YXQsNC0INGI0YPRg9C0INOp06nRgNC40LnQs9Op06kg0LDRgdCw0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCY0L3Qs9GN0YHQvdGN0Y3RgCDRgtCw0LHQu9C10YLRi9CzINCw0YHQsNGF0LDQtCDQuNGFINGF0YPQs9Cw0YbQsNCwINC+0YDQvtGFINCx0L7Qu9C+0L0g0LHQsNC50L3Qs9CwINCw0LbQuNC70LvQsNC00LDQsyDQsNC/0L8g0L3RjCDRgtCw0LHQu9C10YLQuNC50LMg0LHSr9GF0Y3Qu9C0INC90Ywg0YPQtNCw0LDRiNGA0YPRg9C70LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MTM5NTA1ODkxMDI2MTc1MDQiPiLQkNC/0L8g0L3RjCDRgdC40YHRgtC10Lwg0LDRgdCw0LYg0LTRg9GD0YHQsNGF0LDQtCDRiNGD0YPQtCDTqdOp0YDQuNC50LPTqdOpINCw0YHQsNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQmNC90LPRjdGB0L3RjdGN0YAg0YPRgtGB0YvQsyDQsNGB0LDRhdCw0LQg0LjRhSDRhdGD0LPQsNGG0LDQsCDQvtGA0L7RhSDQsdC+0LvQvtC9INCx0LDQudC90LPQsCDQsNC20LjQu9C70LDQtNCw0LMg0LDQv9C/INC90Ywg0YPRgtGB0YvQsyDQsdKv0YXRjdC70LQg0L3RjCDRg9C00LDQsNGI0YDRg9GD0LvQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Jyb2FkY2FzdFN0aWNreSIgbXNnaWQ9Ijc5MTkxMjYzNzI2MDY4ODE2MTQiPiLRgtCw0YHQsNGA0LTQsNCz0LPSr9C5INOp0YDQs9Op0L0g0LTQsNC80LbRg9GD0LvQu9GL0LMg0LjQu9Cz0Y3RjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3NzQ5NzYwNDk0Mzk5OTE1NjUxIj4i0JDQv9C/INC90Ywg06nRgNCz06nQvSDQtNCw0LzQttGD0YPQu9Cw0Lsg0LTRg9GD0YHRgdCw0L3RiyDQtNCw0YDQsNCwINKv0LvQtNGB0Y3QvSDTqdGA0LPTqdC9INC00LDQvNC20YPRg9C70LDQu9GL0LMg0LjQu9Cz0Y3RjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0JjRhdGN0Y3RgCDQsNGI0LjQs9C70LDRhSDQvdGMINGF0Y3RgiDQuNGFINGB0LDQvdCw0YUg0L7QuSDQsNGI0LjQs9C70LDQvSDRgtCw0LHQu9C10YLRi9CzINGD0LTQsNCw0YjRgNGD0YPQu9Cw0YUg0LHQvtC70L7QvSDRgtC+0LPRgtCy0L7RgNCz0q/QuSDQsdC+0LvQs9C+0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFN0aWNreSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI4MjU4MDM3NjQyMzI0NDUwOTEiPiLQkNC/0L8g0L3RjCDTqdGA0LPTqdC9INC00LDQvNC20YPRg9C70LDQuyDQtNGD0YPRgdGB0LDQvdGLINC00LDRgNCw0LAg0q/Qu9C00YHRjdC9INOp0YDQs9Op0L0g0LTQsNC80LbRg9GD0LvQsNC70YvQsyDQuNC70LPRjdGN0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQmNGF0Y3RjdGAINCw0YjQuNCz0LvQsNGFINC90Ywg0YXRjdGCINC40YUg0YHQsNC90LDRhSDQvtC5INCw0YjQuNCz0LvQsNC9INGD0YLRgdGL0LMg0YPQtNCw0LDRiNGA0YPRg9C70LDRhSDQsdC+0LvQvtC9INGC0L7Qs9GC0LLQvtGA0LPSr9C5INCx0L7Qu9Cz0L7RhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ29udGFjdHMiIG1zZ2lkPSI4MzQ4NDgxMTMxODk5ODg2MTMxIj4i06nTqdGA0LjQudC9INGF0LDRgNC40LvRhtCw0LPRh9C00YvQsyDRg9C90YjQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENvbnRhY3RzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1Mjk0ODY2ODU2OTQxMTQ5NjM5Ij4i0JDQv9C/INC90Ywg0YLQsNC90Ysg0YPRgtGB0LDQsNGAINGP0YDRjNGB0LDQvSwg0LjQvNGN0LnQuyDQuNC70LPRjdGN0YHRjdC9INC00LDQstGC0LDQvNC2INGN0YHQstGN0Lsg0YLRg9GB0LPQsNC5INGF0LDRgNC40LvRhtCw0LPQtNGH0LjQtNGC0LDQudCz0LDQsCDTqdOp0YAg0LDRgNCz0LDQsNGAINGF0L7Qu9Cx0L7QviDQsdCw0YDRjNGB0LDQvSDQsdCw0LnQtNCw0Lsg0LfRjdGA0LPQuNC50LMg0LDQs9GD0YPQu9GB0LDQvSDRgtCw0LHQu9C10YIg0LTRjdGN0YAg0YXQsNC00LPQsNC70LDQs9C00YHQsNC9INGF0LDRgNC40LvRhtCw0LPRh9C00YvQvSDRgtCw0LvQsNCw0YDRhSDQtNCw0YLQsNCzINGD0L3RiNC40YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90Y0g0LfTqdCy0YjTqdOp0YDTqdC7INC90Ywg0LDQv9C/LdC0INGC0LDQvdGLINGF0LDRgNC40LvRhtCw0LPRh9C40LnQvSDQtNCw0YLQsNCzINGF0LDQtNCz0LDQu9Cw0YUg0LHQvtC70L7QvNC20LjQudCzINC+0LvQs9C+0YUg0LHQsCDRhdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0YLQsNC90LQg0LzRjdC00Y3Qs9C00Y3Qu9Cz0q/QudCz0Y3RjdGAINGF0LDRgNC40LvRhtCw0LPRh9C40LnQvSDQtNCw0YLQsNCzINGF0YPQstCw0LDQu9GG0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENvbnRhY3RzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODQ0MDY1NDE1MjQ1NzMwMDY2MiI+ItCQ0L/QvyDQvdGMINGC0LDQvdGLINGD0YLRgdCw0LDRgCDRj9GA0YzRgdCw0L0sINC40LzRjdC50Lsg0LjQu9Cz0Y3RjdGB0Y3QvSDQtNCw0LLRgtCw0LzQtiDRjdGB0LLRjdC7INGC0YPRgdCz0LDQuSDRhdCw0YDQuNC70YbQsNCz0YfQuNC00YLQsNC50LPQsNCwINOp06nRgCDQsNGA0LPQsNCw0YAg0YXQvtC70LHQvtC+INCx0LDRgNGM0YHQsNC9INCx0LDQudC00LDQuyDQt9GN0YDQs9C40LnQsyDQsNCz0YPRg9C70YHQsNC9INGC0LDQvdGLINGD0YLRgdCw0L0g0LTRjdGN0YAg0YXQsNC00LPQsNC70LDQs9C00YHQsNC9INGF0LDRgNC40LvRhtCw0LPRh9C00YvQvSDRgtCw0LvQsNCw0YDRhSDQtNCw0YLQsNCzINGD0L3RiNC40YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90Y0g0LfTqdCy0YjTqdOp0YDTqdC7INC90Ywg0LDQv9C/LdC0INGC0LDQvdGLINGF0LDRgNC40LvRhtCw0LPRh9C40LnQvSDQtNCw0YLQsNCzINGF0LDQtNCz0LDQu9Cw0YUg0LHQvtC70L7QvNC20LjQudCzINC+0LvQs9C+0YUg0LHQsCDRhdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0YLQsNC90LQg0LzRjdC00Y3Qs9C00Y3Qu9Cz0q/QudCz0Y3RjdGAINGF0LDRgNC40LvRhtCw0LPRh9C40LnQvSDQtNCw0YLQsNCzINGF0YPQstCw0LDQu9GG0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUNvbnRhY3RzIiBtc2dpZD0iNTEwNzQ5MjA4NjQxNjc5MzU0NCI+ItGC0LDQvdGLINGF0LDRgNC40LvRhtCw0LPRh9C00YvQsyDTqdOp0YDRh9C706nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ29udGFjdHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg5NzI0MzkzMjUyMTk1MzYwMiI+ItCQ0L/QvyDQvdGMINGC0LDQvdGLINGD0YLRgdCw0LDRgCDRj9GA0YzRgdCw0L0sINC40LzRjdC50Lsg0LjQu9Cz0Y3RjdGB0Y3QvSDQtNCw0LLRgtCw0LzQtiDRjdGB0LLRjdC7INGC0YPRgdCz0LDQuSDRhdCw0YDQuNC70YbQsNCz0YfQuNC00YLQsNC50LPQsNCwINOp06nRgCDQsNGA0LPQsNCw0YAg0YXQvtC70LHQvtC+INCx0LDRgNGM0YHQsNC9INCx0LDQudC00LDQuyDQt9GN0YDQs9C40LnQsyDQsNCz0YPRg9C70YHQsNC9INGC0LDQvdGLINGC0LDQsdC70LXRgiDQtNGN0Y3RgCDRhdCw0LTQs9Cw0LvQsNCz0LTRgdCw0L0g0YXQsNGA0LjQu9GG0LDQs9GH0LTRi9C9INGC0LDQu9Cw0LDRgNGFINC00LDRgtCw0LMg06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90Y0g0LfTqdCy0YjTqdOp0YDTqdC7INC90Ywg0LDQv9C/LdC0INGF0LDRgNC40LvRhtCw0LPRh9C40LnQvSDQtNCw0YLQsNCzINGD0YHRgtCz0LDRhSDQsdC+0LvQvtC80LbQuNC50LMg0L7Qu9Cz0L7QvdC+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ29udGFjdHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1ODk4NjkyMjQ2MjUxNjM1NTgiPiLQkNC/0L8g0L3RjCDRgtCw0L3RiyDRg9GC0YHQsNCw0YAg0Y/RgNGM0YHQsNC9LCDQuNC80Y3QudC7INC40LvQs9GN0Y3RgdGN0L0g0LTQsNCy0YLQsNC80LYg0Y3RgdCy0Y3QuyDRhdCw0YDQuNC70YbQsNCz0LTRh9C40LTRgtCw0LnQs9Cw0LAg06nTqdGAINCw0YDQs9Cw0LDRgCDRhdC+0LvQsdC+0L4g0LHQsNGA0YzRgdCw0L0g0LHQsNC50LTQsNC7INC30Y3RgNCz0LjQudCzINCw0LPRg9GD0LvRgdCw0L0g0YPRgtGB0LDQvSDQtNGN0Y3RgCDRhdCw0LTQs9Cw0LvQsNCz0LTRgdCw0L0g0YXQsNGA0LjQu9GG0LDQs9GH0LTRi9C9INGC0LDQu9Cw0LDRgNGFINC00LDRgtCw0LMg06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90Y0g0LfTqdCy0YjTqdOp0YDTqdC7INC90Ywg0LDQv9C/LdC0INGF0LDRgNC40LvRhtCw0LPRh9C40LnQvSDQtNCw0YLQsNCzINGD0YHRgtCz0LDRhSDQsdC+0LvQvtC80LbQuNC50LMg0L7Qu9Cz0L7QvdC+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENhbGxMb2ciIG1zZ2lkPSIzNDc4MTMzMTg0NjI0MTAyNzM5Ij4i0LTRg9GD0LTQu9Cw0LPRi9C9INC70L7Qs9C40LnQsyDRg9C90YjQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGxMb2ciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM3MDA2NDUxODQ4NzA3NjAyODUiPiLQkNC/0L8g0L3RjCDRgtCw0L3RiyDRgtCw0LHQu9C10YLRi9C9INC40YDRgdGN0L0g0LPQsNGA0YHQsNC9INC00YPRg9C00LvQsNCz0LAg0LfRjdGA0LPQuNC50LMg0LDQs9GD0YPQu9GB0LDQvSDQtNGD0YPQtNC70LDQs9GL0L0g0LvQvtCz0YvQsyDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC306nQstGI06nTqdGA06nQuyDQvdGMINCw0L/Qvy3QtCDRgtCw0L3RiyDQtNGD0YPQtNC70LDQs9GL0L0g0LvQvtCz0YvQvSDQtNCw0YLQsNCzINGF0LDQtNCz0LDQu9Cw0YUg0LHQvtC70L7QvNC20LjQudCzINC+0LvQs9C+0YUg0LHQsCDRhdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0YLQsNC90LQg0LzRjdC00Y3Qs9C00Y3Qu9Cz0q/QudCz0Y3RjdGAINC00YPRg9C00LvQsNCz0YvQvSDQu9C+0LMg0LTQsNGC0LDQsyDRhdGD0LLQsNCw0LvRhtCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDYWxsTG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTc3NzcyNTc5NjgxMzIxNzI0NCI+ItCQ0L/QvyDQvdGMINGC0LDQvdGLINGD0YLQsNGB0L3RiyDQuNGA0YHRjdC9INCz0LDRgNGB0LDQvSDQtNGD0YPQtNC70LDQs9CwINC30Y3RgNCz0LjQudCzINCw0LPRg9GD0LvRgdCw0L0g0LTRg9GD0LTQu9Cw0LPRi9C9INC70L7Qs9GL0LMg0YPQvdGI0LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3RjSDQt9Op0LLRiNOp06nRgNOp0Lsg0L3RjCDQsNC/0L8t0LQg0YLQsNC90Ysg0LTRg9GD0LTQu9Cw0LPRi9C9INC70L7Qs9GL0L0g0LTQsNGC0LDQsyDRhdCw0LTQs9Cw0LvQsNGFINCx0L7Qu9C+0LzQttC40LnQsyDQvtC70LPQvtGFINCx0LAg0YXQvtGA0YLQvtC5INCw0L/QvyDQvdGMINGC0LDQvdC0INC80Y3QtNGN0LPQtNGN0LvQs9Kv0LnQs9GN0Y3RgCDQtNGD0YPQtNC70LDQs9GL0L0g0LvQvtCzINC00LDRgtCw0LMg0YXRg9Cy0LDQsNC70YbQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ2FsbExvZyIgbXNnaWQ9Ijg1NTIwNDU2NjQ3NDM0OTkzNTQiPiLQtNGD0YPQtNC70LDQs9GL0L0g0LvQvtCz0YDRg9GDINCx0LjRh9C40YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGxMb2ciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY2NjE4MDYwNjIyNzQxMTkyNDUiPiLQkNC/0L8g0L3RjCDRgtCw0L3RiyDRgtCw0LHQu9C10YLRi9C9INC40YDRgdGN0L0g0LPQsNGA0YHQsNC9INC00YPRg9C00LvQsNCz0LAg0LfRjdGA0LPQuNC50LMg0LDQs9GD0YPQu9GB0LDQvSDQtNGD0YPQtNC70LDQs9GL0L0g0LvQvtCz0YvQsyDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0KXQvtGA0YLQvtC5INCw0L/QvyDQvdGMINGN0L3QuNC50LMg0LDRiNC40LPQu9Cw0L0g0YLQsNC90Ysg0LTRg9GD0LTQu9Cw0LPRi9C9INC70L7Qs9GL0LMg06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvSDQsNGA0LjQu9Cz0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxsTG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjgzOTQxNzM2MzUyNzg3ODQyIj4i0JDQv9C/INC90Ywg0YLQsNC90Ysg0YPRgtCw0YHQvdGLINC40YDRgdGN0L0g0LPQsNGA0YHQsNC9INC00YPRg9C00LvQsNCz0LAg0LfRjdGA0LPQuNC50LMg0LDQs9GD0YPQu9GB0LDQvSDQtNGD0YPQtNC70LDQs9GL0L0g0LvQvtCz0YvQsyDTqdOp0YDRh9C706nRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCl0L7RgNGC0L7QuSDQsNC/0L8g0L3RjCDRjdC90LjQudCzINCw0YjQuNCz0LvQsNC9INGC0LDQvdGLINC00YPRg9C00LvQsNCz0YvQvSDQu9C+0LPRi9CzINOp06nRgNGH0LvTqdGFINCx0L7Qu9C+0L0g0LDRgNC40LvQs9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFByb2ZpbGUiIG1zZ2lkPSI0NzAxODg5ODUyNjEyNzE2Njc4Ij4i0YLQsCDTqdOp0YDQuNC50L0g0YXQsNGA0LjQu9GG0LDQs9GH0LjQudC9INC60LDRgNGC0YvQsyDRg9C90YjQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFByb2ZpbGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NDYyNDc1MTUxODQ5ODg4ODQ4Ij4i0JDQv9C/INC90Ywg0YLQsNC90Ysg0L3RjdGAINCx0L7Qu9C+0L0g0YXQvtC70LHQvtC+INCx0LDRgNC40YUg0LzRjdC00Y3RjdC70Y3QuyDQt9GN0YDRjdCzINGC0LDQvdGLINGD0YLRgdCw0L0g0LTRjdGN0YAg0YXQsNC00LPQsNC70LDQs9C00YHQsNC9INGF0YPQstC40LnQvSDQv9GA0L7RhNCw0LnQuyDQvNGN0LTRjdGN0LvQu9C40LnQsyDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0JjQvdCz0Y3RgdC90Y3RjdGAINCw0L/QvyDQvdGMINGC0LDQvdC40LnQsyDRgtCw0L3RjNC2INGH0LDQtNCw0YUg0LHQsCDRgtCw0L3RiyDQv9GA0L7RhNCw0LnQuyDQvNGN0LTRjdGN0LvQu9C40LnQsyDQsdGD0YHQtNCw0LQg0LjQu9Cz0Y3RjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlUHJvZmlsZSIgbXNnaWQ9IjkwNzc5MzYyODc3NzM5NzY0MyI+ItGC0LAg06nTqdGA0LjQudC9INGF0LDRgNC40LvRhtCw0LPRh9C40LnQvSDQutCw0YDRgtGL0LMg06nTqdGA0YfQu9Op0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVByb2ZpbGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NTUyMDg0Mjk0NTk4NDY1ODk5Ij4i0JDQv9C/INC90Ywg0YLQsNC90Ysg0L3RjdGAINCx0L7Qu9C+0L0g0YXQvtC70LHQvtC+INCx0LDRgNC40YUg0LzRjdC00Y3RjdC70Y3QuyDQt9GN0YDRjdCzINGC0LDQvdGLINGC06nRhdOp06nRgNOp0LzQtiDQtNGN0Y3RgCDRhdCw0LTQs9Cw0LvQsNCz0LTRgdCw0L0g0YXRg9Cy0LjQudC9INC/0YDQvtGE0LDQudC7INC80Y3QtNGN0Y3Qu9C70LjQudCzINGB0L7Qu9C40YUg0Y3RgdCy0Y3QuyDQvdGN0LzRjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0JjQvdCz0Y3RgdC90Y3RjdGAINCw0L/QvyDQvdGMINGC0LDQvdC40LnQsyDRgtCw0L3RjNC2INGH0LDQtNCw0YUg0LHQsCDRgtCw0L3RiyDQv9GA0L7RhNCw0LnQuyDQvNGN0LTRjdGN0LvQu9C40LnQsyDQsdGD0YHQtNCw0LQg0LjQu9Cz0Y3RjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMjY4OTIwOTU2MTUyNDE5MTcwIj4i0YLQsNC90Ysg0L3QuNC50YLQuNC50L0g0YPRgNGB0LPQsNC70LDQsNGBINGD0L3RiNC40YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDI1NTcwNjAyNzE3MjA1MDg3MiI+ItCQ0L/QvyDQvdGMINGC0LAg0LHQvtC70L7QvSDRgtCw0L3RiyDQvdCw0LnQt9GD0YPQtNGL0L0g0L3QuNC50YLQuNC50L0g0YjQuNC90Y3Rh9C70Y3Qu9GC0Y3QtCDRhdCw0L3QtNCw0YUg0LHQvtC70L7QvSDRgdC40L3QuiDRhdC40LnRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCc0Y3QtNGN0Y3Qu9GN0Lsg0YXRg9Cy0LDQsNC70YbQsNGF0LTQsNCwINCx0L7Qu9Cz0L7QvtC80LbRgtC+0Lkg0LHQsNC50L3QsCDRg9GDIC0g0Y3QvdGNINC90Ywg0LDQv9C/LdC0INC90LjQudGC0LjQudC9INGB0q/Qu9C20Y3RjdC90LTRjdGFINGC0LAg0LHQvtC70L7QvSDRgtCw0L3RiyDQvdCw0LnQt9GD0YPQtCDRhdC+0L7RgNC+0L3QtNGL0L0g0YXQvtC70LHQvtC+0LMg0L3Rg9GD0YYg0Y3RgdGN0YXRjdGN0YEg0q/QuyDRhdCw0LzQsNCw0YDQsNC9INGD0L3RiNC40YUg0LHQvtC70L7QvNC20YLQvtC5LiDQkNC90YXQsNCw0YA6INGN0L3RjSDQt9Op0LLRiNOp06nRgNOp0Lsg0L3RjCDQsdKv0YUg0L3QuNC50YLQuNC50L0g0YHSr9C70LbRjdGN0L3QtCDQsNGI0LjQs9C70LDQtiDQsdC+0LvQvtC80LbQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM1MDQxNzkyMjI0OTMyMzU2NDUiPiLQotCw0L3RiyDQvdC40LnRgtC40LnQvSDRg9GA0YHQs9Cw0LvRgNGD0YMg0LHQuNGH0LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzA4NjU1NzU1MjIwNDExNDg0OSI+ItCQ0L/QvyDQvdGMINGC0LDQvdGLINC90LDQudC30YPRg9C00YvQvSDQvdC40LnRgtC40LnQvSDRiNC40L3RjdGH0LvRjdC70YLQuNC50LMg0LTSr9GA0YHQu9GN0YUg0LHQvtC70L7QvNC20YLQvtC5LtCc0Y3QtNGN0Y3Qu9GN0Lsg0YXRg9Cy0LDQsNC70YbQsNGF0LTQsNCwINCx0L7Qu9Cz0L7QvtC80LbRgtC+0Lkg0LHQsNC50L3QsCDRg9GDIC0g0Y3QvdGNINC90Ywg0LDQv9C/LdC0INGC0LDQvdGLINC90LDQudC30LDQsNGBINC40YDRgdGN0L0g0LzRjdGCINGF0LDRgNCw0LPQtNCw0YUg0LzQtdGB0YHQtdC2INGF0LjQudGFINCx0L7Qu9C+0LzQttC40LnQsyDQvtC70LPQvtC90L4uINCQ0L3RhdCw0LDRgDog0Y3QvdGNINC306nQstGI06nTqdGA06nQuyDQvdGMINCx0q/RhSDQvdC40LnRgtC40LnQvSDRgdKv0LvQttGN0Y3QvdC0INCw0YjQuNCz0LvQsNC2INCx0L7Qu9C+0LzQttCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDYWxlbmRhciIgbXNnaWQ9IjU5NzI3Mjc1NjAyNTc2MTIzOTgiPiLQutCw0LvQtdC90LTQsNGA0LjQudC9INGF0YPQstCw0LDRgNC40LnQvSDQvdGD0YPRhiDQvNGN0LTRjdGN0LvQu9C40LnQsyDRg9C90YjQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGVuZGFyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MjE2NDYyMDQ5MDU3NjU4NzIzIj4i0JDQv9C/INC90Ywg0YLQsNC90Ysg0YLQsNCx0LvQtdGCINC00Y3RjdGAINGF0LDQtNCz0LDQu9Cw0LPQtNGB0LDQvSDQvdCw0LnQt9GD0YPQtCDQsdC+0LvQvtC9INGF0LDQvNGC0YDQsNC9INCw0LbQuNC70LvQsNCz0YHQtNGL0L0g0LrQsNC70LXQvdC00LDRgNC40LnQvSDQsdKv0YUg0YXRg9Cy0LDQsNGA0LjQudCzINGD0L3RiNC40YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90Y0g0L3RjCDQsNC/0L8t0LQg0YLQsNC90Ysg0LrQsNC70LXQvdC00LDRgNC40LnQvSDQtNCw0YLQsNCzINC90YPRg9GGINGN0YHQstGN0Lsg0Y3QvNC30Y3QsyDRjdGB0Y3RhdGN0Y3RgSDQvdGMINKv0Lsg0YXQsNC80LDQsNGA0LDQvSDRhdGD0LLQsNCw0LvRhtCw0YUg0Y3RgdCy0Y3QuyDRhdCw0LTQs9Cw0LvQsNGFINCx0L7Qu9C+0LzQttC40LnQsyDQvtC70LPQvtC90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGVuZGFyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzQzNDU0ODY4MjQ3MDg1MTU4MyI+IkFsbG93cyB0aGUgYXBwIHRvIHJlYWQgYWxsIGNhbGVuZGFyIGV2ZW50cyBzdG9yZWQgb24geW91ciBwaG9uZSwgaW5jbHVkaW5nIHRob3NlIG9mIGZyaWVuZHMgb3IgY28td29ya2Vycy4gVGhpcyBtYXkgYWxsb3cgdGhlIGFwcCB0byBzaGFyZSBvciBzYXZlIHlvdXIgY2FsZW5kYXIgZGF0YSwgcmVnYXJkbGVzcyBvZiBjb25maWRlbnRpYWxpdHkgb3Igc2Vuc2l0aXZpdHkuINCQ0L/QvyDQvdGMINGC0LDQvdGLINGD0YLRgdCw0L0g0LTRjdGN0YAg0YXQsNC00LPQsNC70LDQs9C00YHQsNC9INC90LDQudC30YPRg9C0INCx0L7Qu9C+0L0g0YXQsNC80YLRgNCw0L0g0LDQttC40LvQu9Cw0LPRgdC00YvQvSDQutCw0LvQtdC90LTQsNGA0LjQudC9INCx0q/RhSDRhdGD0LLQsNCw0YDQuNC50LMg0YPQvdGI0LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3RjSDQvdGMINCw0L/Qvy3QtCDRgtCw0L3RiyDQutCw0LvQtdC90LTQsNGA0LjQudC9INC00LDRgtCw0LMg0L3Rg9GD0YYg0Y3RgdCy0Y3QuyDRjdC80LfRjdCzINGN0YHRjdGF0Y3RjdGBINC90Ywg0q/QuyDRhdCw0LzQsNCw0YDQsNC9INGF0YPQstCw0LDQu9GG0LDRhSDRjdGB0LLRjdC7INGF0LDQtNCz0LDQu9Cw0YUg0LHQvtC70L7QvNC20LjQudCzINC+0LvQs9C+0L3Qvi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ2FsZW5kYXIiIG1zZ2lkPSI4NDM4ODc0NzU1MTkzODI1NjQ3Ij4i0LrQsNC70LXQvdC00LDRgNGL0L0g0YXRg9Cy0LDQsNGA0LjQudCzINC90Y3QvNGN0YUg0Y3RgdCy0Y3QuyDTqdOp0YDRh9C706nRhSDQsdC+0LvQvtC9INGN0LfRjdC80YjQuNCz0YfQuNC0INC80Y3QtNGN0LPQtNGN0LvQs9Kv0LnQs9GN0Y3RgCDQt9C+0YfQuNC00YDRg9GDINC40LzRjdC50Lsg0LjQu9Cz0Y3RjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY3OTAzNTUyMDExMzY2ODUyOCI+ItCQ0L/QvyDQvdGMINGC0LDQsdC70LXRgiDQtNGN0Y3RgCDRgtCwINCx0L7Qu9C+0L0g0YLQsNC90Ysg0L3QsNC50LfRg9GD0LQsINGF0LDQvNGC0YDQsNC9INCw0LbQuNC70LvQsNCz0YHQtNGL0L0g06nTqdGA0YfQuNC70LYg0YfQsNC00LDRhSDSr9C50Lsg0Y/QstC00LvRg9GD0LTRi9CzINC90Y3QvNGN0YUsINGF0LDRgdCw0YUg0LHQvtC70L7QvSDRgdC+0LvQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC90Ywg0LDQv9C/LdC0LCDQutCw0LvQtdC90LTQsNGA0Ywg0Y3Qt9GN0LzRiNC40LPRh9GN0Y3RgSDQuNGA0YHRjdC9INC80Y3RgiDRhdCw0YDQsNCz0LTQsNGFINC80LXRgdGB0LXQttC40LnQsyDQuNC70LPRjdGN0YUg0Y3RgdCy0Y3QuyDRjdC30Y3QvNGI0LjQs9GH0LQg0L3RjCDQvNGN0LTRjdCz0LTRjdC70LPSr9C50LPRjdGN0YAg0q/QudC7INGP0LLQtNC70YPRg9C00YvQsyDTqdOp0YDRh9C706nRhSDQsdC+0LvQvtC80LbQuNC50LMg0L7Qu9Cz0L7QvdC+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMzI0NDY5NDk2MzI3MjQ5Mzc2Ij4i0JDQv9C/INC90Ywg0YPRgtGB0LDQvSDQtNGN0Y3RgCDRgtCwINCx0L7Qu9C+0L0g0YLQsNC90Ysg0L3QsNC50LfRg9GD0LQsINGF0LDQvNGC0YDQsNC9INCw0LbQuNC70LvQsNCz0YHQtNGL0L0g06nTqdGA0YfQuNC70LYg0YfQsNC00LDRhSDSr9C50Lsg0Y/QstC00LvRg9GD0LTRi9CzINC90Y3QvNGN0YUsINGF0LDRgdCw0YUg0LHQvtC70L7QvSDRgdC+0LvQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC90Ywg0LDQv9C/LdC0LCDQutCw0LvQtdC90LTQsNGA0Ywg0Y3Qt9GN0LzRiNC40LPRh9GN0Y3RgSDQuNGA0YHRjdC9INC80Y3RgiDRhdCw0YDQsNCz0LTQsNGFINC80LXRgdGB0LXQttC40LnQsyDQuNC70LPRjdGN0YUg0Y3RgdCy0Y3QuyDRjdC30Y3QvNGI0LjQs9GH0LjQtCDQvdGMINC80Y3QtNGN0LPQtNGN0LvQs9Kv0LnQs9GN0Y3RgCDSr9C50Lsg0Y/QstC00LvRg9GD0LTRi9CzINOp06nRgNGH0LvTqdGFINCx0L7Qu9C+0LzQttC40LnQsyDQvtC70LPQvtC90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NNb2NrTG9jYXRpb24iIG1zZ2lkPSI4Njg4MzM0OTc0MDM2ODIzMzMwIj4i0YLQtdGB0YIg0YXQuNC50YUg0LHQsNC50YDRiNC70YvQvSDRjdGFINKv0q/RgdCy0Y3RgNC40LnQsyDSr9Kv0YHQs9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NNb2NrTG9jYXRpb24iIG1zZ2lkPSI1ODA4NzExMDM5NDgyMDUxODI0Ij4i0KLQtdGB0YLRjdC0INCw0YjQuNCz0LvQsNGFINGF0YPRg9GA0LDQvNGHINCx0LDQudGA0YjQu9GL0L0g0Y3RhSDSr9Kv0YHQstGN0YDQuNC50LMg0q/Sr9GB0LPRjdGFINCx0L7Qu9C+0L0g0YjQuNC90Y0g0LHQsNC50YDRiNC40Lsg06nQs9Op0LPRh9C40LnQsyDRgdGD0YPQu9Cz0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCY0L3Qs9GN0YHQvdGN0Y3RgCDQsNC/0L8g0L3RjCBHUFMg0Y3RgdCy0Y3QuyDQsdCw0LnRgNGI0LjQuyDTqdCz06nQs9GHINC30Y3RgNGN0LMg0LHRg9GB0LDQtCDQsdCw0LnRgNGI0LvRi9C9INGN0YUg0q/Sr9GB0LLRjdGA0Y3RjdGBINC40YDRgdGN0L0g0LHQsNC50YDRiNC40Lsg0LHQvtC70L7QvSDRgdGC0LDRgtGD0YHRi9CzINOp06nRgNGH0LvTqdGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0xvY2F0aW9uRXh0cmFDb21tYW5kcyIgbXNnaWQ9IjI4MzYzMDgwNzY3MjA1NTM4MzciPiLQsdCw0LnRgNGI0LjQuyDQvdC40LnQu9Kv0q/Qu9GN0LPRh9C40LnQvSDQvdGN0LzRjdC70YIg0YLRg9GI0LDQsNC70LQg0YXQsNC90LTQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iNTk0NTE2NjY0MjMzNTgwMDc2MyI+ItCQ0L/QvyDQvdGMINCx0LDQudGA0YjQuNC7INC90LjQudC70q/Sr9C70Y3Qs9GH0LjQudC9INC90Y3QvNGN0LvRgiDRgtGD0YjQsNCw0LvQtCDRhdCw0L3QtNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90Y0g0L3RjCDQsNC/0L8t0LQgR1BTINGN0YHQstGN0Lsg0LHRg9GB0LDQtCDQsdCw0LnRgNGI0LvRi9C9INKv0LnQu9GH0LjQu9Cz0Y3RjdC90LjQuSDQsNC20LjQu9C70LDQs9Cw0LDQvdC0INC906nQu9Op06nQu9Op0YUg0LHQvtC70L7QvNC20LjQudCzINC+0LvQs9C+0L3Qvi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iNjU3ODEwMTE5OTgyNTE5Mzg3MyI+ItCx0LDQudGA0YjQuNC7INC90LjQudC70q/Sr9C70Y3Qs9GH0LjQudCzINGB0YPRg9C70LPQsNGFINC306nQstGI06nTqdGA06nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iOTA2NjE0NjEyMDQ3MDU5MTUwOSI+ItCi0LXRgdGC0Y3QtCDQsNGI0LjQs9C70LDRhSDRhdGD0YPRgNCw0LzRhyDQsdCw0LnRgNGI0LvRi9C9INGN0YUg0q/Sr9GB0LLRjdGA0LjQudCzINKv0q/RgdCz0Y3RhSDQsdC+0LvQvtC9INGI0LjQvdGNINCx0LDQudGA0YjQuNC7INOp0LPTqdCz0YfQuNC50LMg0YHRg9GD0LvQs9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQmNC90LPRjdGB0L3RjdGN0YAg0LDQv9C/INC90YwgR1BTINGN0YHQstGN0Lsg0LHQsNC50YDRiNC40Lsg06nQs9Op0LPRhyDQt9GN0YDRjdCzINCx0YPRgdCw0LQg0LHQsNC50YDRiNC70YvQvSDRjdGFINKv0q/RgdCy0Y3RgNGN0Y3RgSDQuNGA0YHRjdC9INCx0LDQudGA0YjQuNC7INCx0L7Qu9C+0L0g0YHRgtCw0YLRg9GB0YvQsyDTqdOp0YDRh9C706nRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSIxMTkxODk4MDYxOTY1MjczMzcyIj4i0KLQvtC00L7RgNGF0L7QuSDQsdCw0LnRgNGI0LjQuyhHUFMg0LHQvtC70L7QvSDRgdKv0LvQttGN0Y3QvdC0INGB0YPRg9GA0LjQu9GB0LDQvSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSI1Mjk1MDQ3NTYzNTY0OTgxMjUwIj4i0JDQv9C/INC90YwgR1BTINGN0YHQstGN0Lsg0q/Sr9GA0Y3QvSDRhtCw0LzRhdCw0LMg0LHQvtC70L7QvSBXaS1GaSDQt9GN0YDRjdCzINGB0q/Qu9C20Y3RjdC90LjQuSDQsdCw0LnRgNGI0LvRi9C9INGN0YUg0q/Sr9GB0LLRjdGA0LjQudCzINCw0YjQuNCz0LvQsNC9INGC0LDQvdGLINGC0L7QtNC+0YDRhdC+0Lkg0LHQsNC50YDRiNC70YvQsyDQsNCy0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0LTQs9GN0Y3RgCDQsdCw0LnRgNGI0LvRi9C9INKv0LnQu9GH0LjQu9Cz0Y3RjdC90q/Sr9C0INC90Ywg0LDRgdCw0LDQu9GC0YLQsNC5INCx0LDQudGFINGI0LDQsNGA0LTQu9Cw0LPQsNGC0LDQuSDQsdCwINGC0LDQvdGLINGC06nRhdOp06nRgNOp0LzQtiDQtNGN0Y3RgNGFINCw0L/Qvy3Rg9GD0LQg0LDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5INCx0LDQudGFINGI0LDQsNGA0LTQu9Cw0LPQsNGC0LDQuS4g0JDQv9C/LdGD0YPQtCDRjdC90LjQudCzINCw0YjQuNCz0LvQsNC9INGC0LDQvdGL0LMg0YXQsNCw0L3QsCDQsdCw0LnQs9Cw0LDQsyDRgtC+0LPRgtC+0L7RhSDQsdC+0LvQvtC80LbRgtC+0Lkg0LHQsCDQsdCw0YLQtdGA0LXQuSDQt9Cw0YDRhtGD0YPQu9Cw0LvRgiDQvdGN0LzRjdCz0LTRjdC90Y0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjQ4ODc4OTUzNjIzNTQyMzk2MjgiPiLQvtC50YDQvtC70YbQvtC+0YUg0LHQsNC50YDRiNC40Lso0YHSr9C70LbRjdGN0L3QtCDRgdGD0YPRgNC40LvRgdCw0L0pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSIyNTM4MjAwMTg0MzczMzAyMjk1Ij4i0JDQv9C/INC90Ywg0YLQsNC90Ysg0L7QudGA0L7Qu9GG0L7QvtGFINCx0LDQudGA0YjQu9GL0LMg0L7Qu9C+INCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINCx0LDQudGA0YjQuNC7INC90Ywg0q/Sr9GA0Y3QvSDRhtCw0LzRhdCw0LMg0LHQvtC70L7QvSBXaS1GaSDQt9GN0YDRjdCzINGB0q/Qu9C20Y3RjdC90LjQuSDQsdCw0LnRgNGI0LvRi9C9INGN0YUg0YHRg9GA0LLQsNC70LbQuNC50LMg0LDRiNC40LPQu9Cw0LTQsNCzINCx0LDQudGA0YjQu9GL0L0g0q/QudC70YfQuNC70LPRjdGN0L3RjdGN0YEg0L7Qu9C00L7QvdC+LiDQrdC00LPRjdGN0YAg0LHQsNC50YDRiNC70YvQvSDSr9C50LvRh9C40LvQs9GN0Y3QvdKv0q/QtCDQvdGMINGC0LDQvdGLINGC06nRhdOp06nRgNOp0LzQtiDQtNGN0Y3RgCDQsNGB0LDQsNC70YLRgtCw0Lkg0LHQsNC50YUg0YjQsNCw0YDQtNC70LDQs9Cw0YLQsNC5INCx0LAg0LDQv9C/LdC0INGC0Y3QtNCz0Y3RjdGA0LjQudCzINCw0YjQuNCz0LvQsNGFINCx0L7Qu9C+0LzQttGC0L7QuSDQsdCw0LnRhSDRiNCw0LDRgNC00LvQsNCz0LDRgtCw0LkuINCQ0L/Qvy3QtCDRgtGN0LTQs9GN0Y3RgNC40LnQsyDQsNGI0LjQs9C70LDQvSDRgtCw0L3RiyDQsdCw0LnRgNGI0LvRi9CzINC+0LnRgNC+0LvRhtC+0L7Qs9C+0L7RgCDQvtC70L7RhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjIzNjM5Njk2NDE3OTIzODg5NDciPiJTdXJmYWNlRmxpbmdlci3RgiDRhdCw0L3QtNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiLQkNC/0L8g0L3RjCBTdXJmYWNlRmxpbmdlciDQtNC+0L7QtC3RgtOp0LLRiNC40L3QuNC5INGE0YPQvdC60YbQuNC50LMg0LDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+ItCk0YDRjdC50Lwg0LHRg9GE0LXRgNGN0Y3RgSDRg9C90YjQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+ItCQ0L/QvyDQvdGMINGE0YDRjdC50Lwg0LHRg9GE0LXRgNGL0L0g0LrQvtC90YLQtdC90YLRi9CzINGD0L3RiNC40YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+IklucHV0Rmxpbmdlci3RgiDRhdCw0L3QtNCw0LvRgiDRhdC40LnRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiLQkNC/0L8t0LQgU3VyZmFjZUZsaW5nZXIg0LTQvtC+0LQt0YLSr9Cy0YjQvdC40Lkg0YTRg9C90LrRhtGD0YPQtNGL0LMg0LDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC2INC+0LvQs9C+0L3Qvi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+IldpZmkg0LTRjdC70LPRjdGG0LjQudCzINGC0L7RhdC40YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i0JDQv9C/INC90YwgV2lmaSDQtNGN0LvQs9GN0YbQuNC50LMg0YLQvtGF0LjRgNGD0YPQu9Cw0YUg0LHQvtC70L7QvSDRhdC+0LvQsdC+0LPQtNC+0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4iV2lmaSDQtNGN0LvQs9GN0YbQuNC50LMg0YPQtNC40YDQtNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSI0NTQzOTEyMjkyNjgxODI2OTg2Ij4i0JDQv9C/INC90YwgV2lmaSDQtNGN0LvQs9GN0YbQvdC40Lkg0LTQvtC+0LQt0YLTqdCy0YjQuNC90LjQuSDRhNGD0L3QutGG0LjQudCzINGD0LTQuNGA0LTQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjY4NTcxMzQ0OTg0MDIzNDY3MDgiPiLQsNGD0LTQuNC+INCz0LDRgNCw0LvRgtGL0LMg0LHQsNGA0LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjYyMTA1OTc3NTQyMTIyMDg4NTMiPiLQkNC/0L8t0YIg0LDRg9C00LjQviDQs9Cw0YDQsNC70YLRi9CzINCx0LDRgNC40YUsINC00LDRhdC40L0g0YfQuNCz0LvSr9Kv0LvRjdGF0LjQudCzINC306nQstGI06nTqdGA0L3TqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjIyNDY4Mjg3NzM1ODkwOTQwMjMiPiLQstC40LTQtdC+INCz0LDRgNCw0LvRgtGL0LMg0LHQsNGA0LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjM1OTQ4MTY1ODAzNDE0OTg2MCI+ItCQ0L/Qvy3RgiDQstC40LTQtdC+INCz0LDRgNCw0LvRgtGL0LMg0LHQsNGA0LjRhSwg0LTQsNGF0LjQvSDRh9C40LPQu9Kv0q/Qu9GN0YXQuNC50LMg0LfTqdCy0YjTqdOp0YDQvdOpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iNzgxNTM5ODk2OTMwMzM4MjAxNiI+ItC90LDQudC00LLQsNGA0YLQsNC5INCy0LjQtNC10L4g0LPQsNGA0LDQu9GC0YvQsyDQsdCw0YDQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMjc3OTc5MzA2NDcwOTM1MDI4OSI+ItCQ0L/Qvy3RgiDQvdCw0LnQtNCy0LDRgNGC0LDQuSDQstC40LTQtdC+INCz0LDRgNCw0LvRgtGL0LMg0LHQsNGA0LjRhSwg0LTQsNGF0LjQvSDRh9C40LPQu9Kv0q/Qu9GN0YXQuNC50LMg0LfTqdCy0YjTqdOp0YDQvdOpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjYwOTU4NTk5MzcwNjkxNDYwODYiPiLQkNGD0LTQuNC+INGC0L7RhdC40YDQs9C+0L4g0YHQvtC70LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeUF1ZGlvU2V0dGluZ3MiIG1zZ2lkPSIzNTIyNTY1MzY2ODA2MjQ4NTE3Ij4i0JDQv9C/INC90Ywg0LTRg9GD0L3RiyDRhdGN0LzQttGN0Y0sINGB0L/QuNC60LXRgNGL0L0g0LPQsNGA0LDQu9GC0LDQtCDQsNGI0LjQs9C70LDQs9C00LDRhSDQs9C70L7QsdCw0Lsg0LDRg9C00LjQviDRgtC+0YXQuNGA0LPQvtC+0LMg06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjb3JkQXVkaW8iIG1zZ2lkPSIzODc2MDQ5NzcxNDI3NDY2MzIzIj4i0LDRg9C00LjQviDQsdC40YfQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjb3JkQXVkaW8iIG1zZ2lkPSI0OTA2ODM5MzAxMDg3OTgwNjgwIj4i0JDQv9C/INC90Ywg0LzQuNC60YDQvtGE0L7QvdC+0L7RgCDQsNGD0LTQuNC+INCx0LjRh9C40YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90Y0g0LfTqdCy0YjTqdOp0YDTqdC7INC90Ywg0LDQv9C/LdC0INGP0LzQsNGAINGHINKv0LXQtCDRgtCw0L3RiyDQt9Op0LLRiNOp06nRgNOp0LvQs9Kv0LnQs9GN0Y3RgCDQsNGD0LTQuNC+INCx0LjRh9C40YUg0LHQvtC70L7QvNC20LjQudCzINC+0LvQs9C+0L3Qvi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYSIgbXNnaWQ9IjM2MTYzOTE5MTk1NTk3NTExOTIiPiLQt9GD0YDQsNCzINCw0LLQsNGFINCx0L7Qu9C+0L0g0LLQuNC00LXQviDQsdC40YfQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhIiBtc2dpZD0iODQ5NzIxNjUyNDczNTUzNTAwOSI+ItCQ0L/QvyDQvdGMINC60LDQvNC10YDQsNCw0YAg0LfRg9GA0LDQsyDQsNCy0LDRhSDQsdC+0LvQvtC9INCy0LjQtNC10L4g0LHQuNGH0LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3RjSDQt9Op0LLRiNOp06nRgNOp0Lsg0L3RjCDQsNC/0L8t0LQg0Y/QvNCw0YAg0Ycg0q/QtdC0INGC0LDQvdGLINC306nQstGI06nTqdGA06nQu9Cz0q/QudCz0Y3RjdGAINC60LDQvNC10YAg0LDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC20LjQudCzINC+0LvQs9C+0L3Qvi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYURpc2FibGVUcmFuc21pdExlZCIgbXNnaWQ9IjI2NTEwNzI2MzA1MDExMjYyMjIiPiLQutCw0LzQtdGAINCw0YjQuNCz0LvQsNC2INCx0LDQudGFINKv0LXQtCDQtNCw0LzQttGD0YPQu9C70YvQsyDQt9Cw0LDQs9GHIExFRC3QsyDQuNC00Y3QstGF0LPSr9C5INCx0L7Qu9Cz0L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbWVyYURpc2FibGVUcmFuc21pdExlZCIgbXNnaWQ9IjQ3NjQ1ODU0NjU0ODAyOTUzNDEiPiLQo9GA0YzQtNGH0LjQu9Cw0L0g0YHRg9GD0YHQsNC9INGB0LjRgdGC0LXQvCDQsNC/0L/Qu9C40LrQtdGI0L0g0L3RjCDQutCw0LzQtdGAINCw0YjQuNCz0LvQsNC70YLRi9CzINC30LDQsNGB0LDQvSBMRUQt0LMg0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQs9C+0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJpY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI5NjEyOTIyMDU3NjQ0ODgzMDQiPiLRgtCw0LHQu9C10YLRi9CzINCx0q/RgNC806nRgdOp0L0g0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQs9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JyaWNrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODMzNzgxNzA5MzMyNjM3MDUzNyI+ItGD0YLRgdGL0LMg0LHSr9GA0LzTqdGB06nQvSDQuNC00Y3QstGF0LPSr9C5INCx0L7Qu9Cz0L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzM0ODE4ODA4MDAxNjk5NTMwIj4i0JDQv9C/INC90Ywg0YLQsNCx0LvQtdGC0YvQsyDQsdKv0YXRjdC70LQg0L3RjCDQsdKv0YDQvNOp0YHTqdC9INC40LTRjdCy0YXQs9Kv0Lkg0LHQvtC70LPQvtGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC80LDRiCDQsNGO0YPQu9GC0LDQudGNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJpY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzg4OTAzMjk3NjI3MjgzMDk5Ij4i0JDQv9C/INC90Ywg0YPRgtGB0YvQsyDQsdKv0YXRjdC70LQg0L3RjCDQsdKv0YDQvNOp0YHTqdC9INC40LTRjdCy0YXQs9Kv0Lkg0LHQvtC70LPQvtGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC80LDRiCDQsNGO0YPQu9GC0LDQuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQzNjYzNDk3MjU2MTc5NTAwMiI+ItGC0LDQsdC70LXRgiDRhdKv0YfRjdGN0YAg0LTQsNGF0LjQvSDQsNGB0LDQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyODk4NTYwODcyNDYyNjM4MjQyIj4i0YPRgtGB0YvQsyDRhdKv0YfRjdGN0YAg0LTQsNGF0LjQvSDQsNGB0LDQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVib290IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MTcyMDU2MTgwMDYzNzAwNzQxIj4i0JDQv9C/INC90Ywg0YLQsNCx0LvQtdGC0YvQsyDRhdKv0YfRjdGN0YAg0LTQsNGF0LjQvSDQsNGB0LDQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MzI2MDA4MTI0Mjg5OTg5OTY5Ij4i0JDQv9C/INC90Ywg0YPRgtGB0YvQsyDRhdKv0YfRjdGN0YAg0LTQsNGF0LjQvSDQsNGB0LDQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjkyNzM2MTUzNzk0MjU5MTg0MSI+IlVTQiDRgdCw0L0g0YTQsNC50Lsg0YHQuNGB0YLQtdC80LQg0YXQsNC90LTQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDQwMjMwNTA0OTg5MDk1MzgxMCI+IlNEINC60LDRgNGCINGE0LDQudC7INGB0LjRgdGC0LXQvNC0INGF0LDQvdC00LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIG1zZ2lkPSIxODI5MjkwNzAxNjU4OTkyMzQ3Ij4i0JDQv9C/INC90Ywg0YHRg9Cz0LDQu9C00LDQsyDRgdCw0L3QsyDRhNCw0LnQuyDRgdC40YHRgtC10LzQtCDQt9Cw0LvQs9Cw0YUg0LHQvtC70L7QvSDRgdCw0LvQs9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyMjc4MTk1ODI2MjQ5MDQ5NzIiPiJVU0Ig0YHQsNC90LMg0LDRgNC40LvQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI2MjU4MjY5ODYzOTI3NDA1NiI+IlNEINC60LDRgNGC0YvQsyDQsNGA0LjQu9Cz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgbXNnaWQ9Ijg3ODQyNjgyNDY3NzkxOTg2MjciPiLQkNC/0L8g0L3RjCDQt9Op06nQstGA0LjQudC9INGB0LDQvdCzINGE0L7RgNC80LDRgtC70LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX2FjY2VzcyIgbXNnaWQ9IjM0MTEzMzg2MzIwMDIxOTM4NDYiPiLQtNC+0YLQvtC+0LQg0YHQsNC90LPQuNC50L0g0LzRjdC00Y3RjdC70LvQuNC50LMg0LDQstCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX2FjY2VzcyIgbXNnaWQ9IjMwOTQ1NjM4NDQ1OTM4Nzg1NDgiPiLQkNC/0L8g0L3RjCDQtNC+0YLQvtC+0LQg0YHQsNC90LPQsNCw0YEg0LzRjdC00Y3RjdC70LvQuNC50LMg0LDQstCw0YUg0LHQvtC70L7QvNC20YLQvtC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX2NyZWF0ZSIgbXNnaWQ9IjY0MTQ3NTcyMzQ3ODkzMzYzMjciPiLQtNC+0YLQvtC+0LQg0YHQsNC90LQg0q/Sr9GB0LPRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19jcmVhdGUiIG1zZ2lkPSI0NTU4ODY5MjczNTg1ODU2ODc2Ij4i0JDQv9C/INC90Ywg0LTQvtGC0L7QvtC0INGB0LDQvSDSr9Kv0YHQs9GN0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19kZXN0cm95IiBtc2dpZD0iNTI2OTI4MzI4MzAxNjE4MDIyIj4i0LTQvtGC0L7QvtC0INGB0LDQvdCz0LDQsNGBINGD0YHRgtCz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjcyMTg3NDkyODYxNDU1MjY1MzciPiLQkNC/0L8g0L3RjCDQtNC+0YLQvtC+0LQg0YHQsNC90LPQsNCw0YEg0YPRgdGC0LPQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfbW91bnRfdW5tb3VudCIgbXNnaWQ9Ijg4Nzc5OTgxMDE5NDQ5OTkzODYiPiLQtNC+0YLQvtC+0LQg0YHQsNC90LMg0LfQsNC70LPQsNGFL9GB0LDQu9Cz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfbW91bnRfdW5tb3VudCIgbXNnaWQ9IjM0NTEzNjAxMTQ5MDI0OTA5MjkiPiLQkNC/0L8g0L3RjCDQtNC+0YLQvtC+0LQg0YHQsNC90LMg0LfQsNC70LPQsNGFL9GB0LDQu9Cz0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX3JlbmFtZSIgbXNnaWQ9Ijc0OTY2MzM5NTQwODA0NzI0MTciPiLQtNC+0YLQvtC+0LQg0YHQsNC90LPQuNC50L0g0L3RjdGA0LjQudCzINOp06nRgNGH0LvTqdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19yZW5hbWUiIG1zZ2lkPSIxNzk0NzU3NTg4NDcyMTI3Njc1Ij4i0JDQv9C/INC90Ywg0LTQvtGC0L7QvtC0INGB0LDQvdCz0LjQudC9INC90Y3RgNC40LnQsyDTqdOp0YDRh9C706nRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl92aWJyYXRlIiBtc2dpZD0iNzY5NjQyNzAyNjA1NzcwNTgzNCI+ItGH0LjRh9C40YDQs9GN0Y3QsyDRg9C00LjRgNC00LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3ZpYnJhdGUiIG1zZ2lkPSI2Mjg0OTg5MjQ1OTAyMzAwOTQ1Ij4i0JDQv9C/INC90Ywg0YfQuNGH0LjRgNCz0Y3RjdCzINGD0LTQuNGA0LTQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZsYXNobGlnaHQiIG1zZ2lkPSIyMTU1OTIwODEwMTIxOTg0MjE1Ij4i0LPQsNGAINGH0LjQudC00Y3QvSDRg9C00LjRgNC00LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZsYXNobGlnaHQiIG1zZ2lkPSI2NTIyMjg0Nzk0NTY4MzY4MzEwIj4i0JDQv9C/INC90Ywg0LPQsNGAINGH0LjQudC00Y3QvdCzINGD0LTQuNGA0LTQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzYiIgbXNnaWQ9IjExMTM0NTM0MzA2NDU0MDI3MjMiPiJVU0Ig0YLTqdGF06nTqdGA06nQvNC20LjQudC9INGC0L7RhdC40YDQs9C+0L4g0LHQvtC70L7QvSDQt9Op0LLRiNOp06nRgNC70LjQudCzINGD0LTQuNGA0LTQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNiIiBtc2dpZD0iNzc3NjE1NTQzMDIxODIzOTgzMyI+ItCQ0L/QvyDQvdGMIFVTQiDRgtOp0YXTqdOp0YDTqdC80LbQuNC50L0g0LfTqdCy0YjTqdOp0YDTqdC7INCx0L7Qu9C+0L0g0YLQvtGF0LjRgNGD0YPQu9Cz0YvQsyDRg9C00LjRgNC00LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NNdHAiIG1zZ2lkPSI0OTUzNDY4Njc2Nzk1OTE3MDQyIj4iTVRQINC/0YDQvtGC0L7QutC+0LvRi9CzINCz0q/QudGG0Y3RgtCz0Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc010cCIgbXNnaWQ9IjY1MzI5NjEyMDA0ODY3OTE1NzAiPiJNVFAgVVNCINC/0YDQvtGC0L7QutC+0Lsg0LHQuNC10LvSr9Kv0LvRjdGF0Y3RjdGAIE1UUCDRhtOp0Lwg0LTRgNCw0LnQstC10YDRgiDRhdCw0L3QtNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjQxNDgyOTA4NjA0MDA2NTkxNDYiPiLRhdCw0YDQtNCy0LXRgCDRgtC10YHQu9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19oYXJkd2FyZV90ZXN0IiBtc2dpZD0iNjU5Nzk2NDE5MTIwODAxNjYwNSI+ItCQ0L/QvyDQvdGMINGF0LDRgNC00LLQtdGA0LjQudCzINGC0LXRgdGC0LvRjdGFINC30L7RgNC40LvQs9C+0L7RgCDQvtC70L7QvSDRgtOp0YDQu9C40LnQvSDRgtGD0YHQu9Cw0YUg0YLTqdGF06nTqdGA06nQvNC20LjQudCzINGD0LTQuNGA0LTQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbGxQaG9uZSIgbXNnaWQ9IjM5MjU4MzYzNDc2ODE4NDc5NTQiPiLRg9GC0LDRgdC90Ysg0LTRg9Cz0LDQsNGA0YIg0YjRg9GD0LQg0LTRg9GD0LTQu9Cw0LPQsCDRhdC40LnRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbGxQaG9uZSIgbXNnaWQ9IjM3NDA3OTc1NzYxMTM3NjA4MjciPiLQkNC/0L8g0L3RjCDRgtCw0L3RiyDQvtGA0L7Qu9GG0L7QvtCz0q/QudCz0Y3RjdGAINC00YPRg9C00LvQsNCz0LAg0YXQuNC50YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90Y0g0L3RjCDRgtOp0LvTqdCy0LvTqdCz0LTTqdOp0LPSr9C5INGC06nQu9Cx06nRgNGCINC+0YDRg9GD0LvQsNGFINGN0YHQstGN0Lsg0LTRg9GD0LTQu9Cw0LPQsCDRhdC40LnQvdGNLiDQrdC90Y0g0L3RjCDQsNC/0L8t0LMg0Y/QsNGA0LDQu9GC0LDQuSDQtNGD0LPQsNCw0YDRgiDQtNGD0YPQtNC70LDQs9CwINGF0LjQudGF0LnQsyDQt9Op0LLRiNOp06nRgNOp0YXQs9Kv0LkuINCl0L7RgNGC0L7QuSDQsNC/0L8g0L3RjCDRgtCw0L3RiyDQt9Op0LLRiNOp06nRgNOp0LvQs9Kv0LnQs9GN0Y3RgCDQtNGD0YPQtNC70LDQs9CwINGF0LjQudC2INGC0LDQvdGL0LMg0YLTqdC70LHTqdGA0YIg0L7RgNGD0YPQu9C2INCx0L7Qu9C30L7RiNCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FsbFByaXZpbGVnZWQiIG1zZ2lkPSI0MTk4MzQ5MjExMTA4NDk3ODc5Ij4i0LTRg9GA0L3RiyDRg9GC0LDRgdC90Ysg0LTRg9Cz0LDQsNGA0YIg0YjRg9GD0LQg0LTRg9GD0LTQu9Cw0LPQsCDRhdC40LnRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbGxQcml2aWxlZ2VkIiBtc2dpZD0iMTY4OTAyNDkwMTUwOTk5NjgxMCI+ItCQ0L/QvyDQvdGMINGC0LDQvdGLINC+0YDQvtC70YbQvtC+0LPSr9C50LPRjdGN0YAg0Y/QsNGA0LDQu9GC0LDQuSDRgtGD0YHQu9Cw0LzQttC40LnQvSDQtNGD0LPQsNCw0YDRg9GD0LTRi9CzINC+0YDRg9GD0LvQsNCw0LQg0Y/QvNCw0YDRhyDQtNGD0LPQsNCw0YDQu9GD0YMg0LTRg9GD0LTQu9Cw0LPQsCDRhdC40LnRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCl0L7RgNGC0L7QuSDQsNC/0L8g0L3RjCDRiNCw0LDRgNC00LvQsNCz0LDQs9Kv0LksINGF0YPRg9C70Ywg0LHRg9GBINC00YPRg9C00LvQsNCz0YvQsyDRj9Cw0YDQsNC70YLQsNC5INGC0YPRgdC70LDQvNC20LjQudC9INKv0LnQu9GH0LjQu9Cz0Y3RjdGA0q/SryDRhdC40LnQtiDQsdC+0LvQt9C+0YjQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDg0MjU3Njk5NDE0NDYwNDgyMSI+IkNETUEg0YLQsNCx0LvQtdGCINGC0L7RhdC40YDQs9C+0L7QsyDRiNGD0YPQtCDRjdGF0LvSr9Kv0LvRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU2MDQ4NDgwOTUzMTU0MjE0MjUiPiJDRE1BINGD0YLQsNGB0L3RiyDRgtC+0YXQuNGA0LPQvtC+0LMg0YjRg9GD0LQg0Y3RhdC70q/Sr9C70Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBtc2dpZD0iMTk5NDE5MzUzODgwMjMxNDE4NiI+ItCQ0L/QvyDQvdGMIENETUEg0L/RgNC+0LLQuNGI0L3Ri9CzINGN0YXQu9Kv0q/Qu9GN0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQpdC+0YDRgtC+0Lkg0LDQv9C/INC90Ywg0YjQsNCw0YDQtNC70LDQs9Cw0LPSr9C5INCx0LDQudGF0LDQtCBDRE1BINC/0YDQvtCy0LjRiNC90YvQsyDRjdGF0LvSr9Kv0LvQtiDQsdC+0LvQt9C+0YjQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9sb2NhdGlvblVwZGF0ZXMiIG1zZ2lkPSI3Nzg1NDA4MjUzMzY0MzM1NzQwIj4i0LHQsNC50YDRiNC40Lsg0YjQuNC90Y3Rh9C70Y3RhSDQvNGN0LTRjdCz0LTQu9C40LnQsyDRg9C00LjRgNC00LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2xvY2F0aW9uVXBkYXRlcyIgbXNnaWQ9IjExMjA3NDE1NTc4OTE0Mzg4NzYiPiLQkNC/0L8g0L3RjCDRgNCw0LTQuNC+0LPQvtC+0YEg0LjRgNGB0Y3QvSDQsdCw0LnRgNGI0LjQuyDRiNC40L3RjdGH0LvRjdGFINC80Y3QtNGN0LPQtNC70LjQudCzINC40LTRjdCy0YXRgtGN0Lkv0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQs9C+0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INGF0Y3RgNGN0LPQu9GN0LPQu9GN0YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGVja2luUHJvcGVydGllcyIgbXNnaWQ9Ijc4NTUyNTk0NjEyNjg3MzQ5MTQiPiLQsdKv0YDRgtCz0Y3RhSDQv9GA0L7Qv9C10YDRgtC40LQg0YXQsNC90LTQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI0MDI0NTI2OTY4NjMwMTk0MTI4Ij4i0JDQv9C/INC90Ywg0LHSr9GA0YLQs9GN0Lsg0q/QudC70YfQuNC70LPRjdGN0LPRjdGN0YAg0LHQsNC50YDRiNGD0YPQu9Cw0LPQtNGB0LDQvSDQv9GA0L7Qv9C10YDRgtC40LMg0YPQvdGI0LjRhS/QsdC40YfQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdCz0LjQudC9INCw0L/Qvy3QtCDRhdGN0YDRjdCz0LvRjdCz0LTRjdGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZEdhZGdldCIgbXNnaWQ9Ijc3NjkwNTMzOTAxNTg2MzQ3MSI+ItCy0LjQtNC20LXRgiDRgdC+0L3Qs9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kR2FkZ2V0IiBtc2dpZD0iODI2MTMyNjkzODU5OTA0OTI5MCI+ItCQ0L/QvyDQvdGMINCw0LvRjCDQsNC/0L8g0Y/QvNCw0YAg0LLQuNC00LbQtdGC0LjQudCzINCw0YjQuNCz0LvQsNC2INCx0LDQudCz0LDQsCDRgtGD0YXQsNC5INGB0LjRgdGC0LXQvNC0INC80Y3QtNGN0LPQtNGN0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90Y0g0LfTqdCy0YjTqdOp0YDTqdC70YLRjdC5INCw0L/QvyDQvdGMINCx0YPRgdCw0LQg0LDQv9C/LdC0INGF0YPQstC40LnQvSDQtNCw0YLQsNC0INGF0LDQvdC00LDRhSDRjdGA0YXQuNC50LMg06nQs9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INCw0YjQuNCz0LvQsNCz0LTQsNGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW9kaWZ5UGhvbmVTdGF0ZSIgbXNnaWQ9Ijg0MjM5MjM3Nzc2NTkyOTIyMjgiPiLRg9GC0LDRgdC90Ysg0YHRgtCw0YLRg9GB0YvQsyDTqdOp0YDRh9C706nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeVBob25lU3RhdGUiIG1zZ2lkPSIxMDI5ODc3NTI5MDA3Njg2NzMyIj4i0JDQv9C/LdC9INGC06nRhdOp06nRgNOp0LzQttC40LnQvSDRg9GC0LDRgdC90Ysg0YTRg9C90LrRhtC40LnQsyDRg9C00LjRgNC00LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3RjSDQt9Op0LLRiNOp06nRgNOp0LvRgtGN0Lkg0LDQv9C/ICDQvdGMINGC0LDQvdC0INCw0L3RhdCw0LDRgNGD0YPQu9Cw0YXQs9Kv0LnQs9GN0Y3RgCDRgdKv0LvQttGN0Y3QsyDRgdGN0LvQs9GN0YUsINGD0YLQsNGB0L3RiyDRgNCw0LTQuNC+0LMg0LDRgdCw0LDRhSwg0YPQvdGC0YDQsNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFBob25lU3RhdGUiIG1zZ2lkPSI5MTc4MjI4NTI0NTA3NjEwNDg2Ij4i0YPRgtCw0YHQvdGLINGB0YLQsNGC0YPRgSDQsdCwINGC0LDQvdC40YPQu9Cx0LDRgNGL0LMg0YPQvdGI0LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRQaG9uZVN0YXRlIiBtc2dpZD0iMTYzOTIxMjc3MTgyNjEyNTUyOCI+ItCQ0L/QvyDQvdGMINGC06nRhdOp06nRgNOp0LzQttC40LnQvSDRg9GC0LDRgdC90Ysg0YTRg9C90LrRhtC0INGF0LDQvdC00LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3RjSDQt9Op0LLRiNOp06nRgNOp0Lsg0L3RjCDQsNC/0L8t0LQg0YPRgtCw0YHQvdGLINC00YPQs9Cw0LDRgCDQsdC+0LvQvtC9INGC06nRhdOp06nRgNOp0LzQttC40LnQvSBJRC3Qsywg0LTRg9GD0LTQu9Cw0LPQsCDQuNC00Y3QstGF0YLRjdC5INGN0YHRjdGFLCDRhdC+0LvRi9C9INC00YPQs9Cw0LDRgCDQtNGD0YPQtNC70LDQs9Cw0LDRgCDRhdC+0LvQsdC+0LPQtNGB0L7QvSDQsdCw0LnQs9Cw0LAg0Y3RgdGN0YXQuNC50LMg0YLQvtCz0YLQvtC+0YUg0LHQvtC70L7QvNC20LjQudCzINC+0LvQs9C+0L3QviwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dha2VMb2NrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTMxNzMxNDM1MDExNDk1MDE1Ij4i0YLQsNCx0LvQtdGC0YvQsyDRg9C90YLRg9GD0LvQsNGF0LPSr9C5INCx0LDQudC70LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93YWtlTG9jayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MzQ4MDE4Nzk0MTQ5NjEzMCI+ItGD0YLRgdGL0LMg0YPQvdGC0YPRg9C70LDRhdCz0q/QuSDQsdCw0LnQu9Cz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dha2VMb2NrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3MzExMzE5ODI0NDAwNDQ3ODY4Ij4i0JDQv9C/INC90Ywg0YLQsNCx0LvQtdGC0YvQsyDRg9C90YLQsNGF0LDQsNGBINGB0Y3RgNCz0LjQudC70Y3RhSDQsdC+0LvQvtC80LbRgtC+0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193YWtlTG9jayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg1NTkxMDA2NzczNzI5Mjg3NTQiPiLQkNC/0L8g0L3RjCDRg9GC0YHRi9CzINGD0L3RgtCw0YXQsNCw0YEg0YHRjdGA0LPQuNC50LvRjdGFINCx0L7Qu9C+0LzQttGC0L7QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI3ODcwMzQ3MjI2MTYzNTA0MTciPiLRgtCw0LHQu9C10YLRi9CzINGD0L3RgtGA0LDQsNGFINGN0YHQstGN0Lsg0LDRgdCw0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0OTI4NjIyNDcwOTgwOTQzMjA2Ij4i0YPRgtGB0YvQsyDRg9C90YLRgNCw0LDRhSDRjdGB0LLRjdC7INCw0YHQsNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZXZpY2VQb3dlciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY4OTg2Mjg3ODk4NDYzMTgzMSI+ItCQ0L/QvyDQvdGMINGC0LDQsdC70LXRgtGL0LMg0LDRgdCw0LDRhSwg0YPQvdGC0YDQsNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RldmljZVBvd2VyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjAzNzA1NzM0ODQ2MzEzMTAzMiI+ItCQ0L/QvyDQvdGMINGD0YLRgdGL0LMg0LDRgdCw0LDRhSwg0YPQvdGC0YDQsNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZmFjdG9yeVRlc3QiIG1zZ2lkPSIzNzE1MjI1NDkyNjk2NDE2MTg3Ij4i0q/QudC70LTQstGN0YDQuNC50L0g0YLQtdGB0YIg0LPQvtGA0LjQvNC0INCw0LbQuNC70LvRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM5NTIwNTkzMTgzNTk2NTMwOTEiPiLQlNC+0L7QtCDRgtOp0LLRiNC40L3QuNC5INKv0LnQu9C00LLRjdGA0LjQudC9INGC0LXRgdGC0LjQudCzINCw0LbQuNC70LvRg9GD0LvQsNC9INGC0LDQsdC70LXRgtGL0L0g0YXQsNGA0LTQstC10YDRgiDQsdKv0YDRjdC9INGF0LDQvdC00LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCi0LDQsdC70LXRgiDQvdGMINKv0LnQu9C00LLRjdGA0LjQudC9INGC0LXRgdGC0LjQudC9INCz0L7RgNC40LzQtCDQsNC20LjQu9C70LDRhSDSr9C10LQg0Lsg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZhY3RvcnlUZXN0IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODEzNjY0NDk5MDMxOTI0NDgwMiI+ItCU0L7QvtC0INGC06nQstGI0LjQvdC40Lkg0q/QudC70LTQstGN0YDQuNC50L0g0YLQtdGB0YLQuNC50LMg0LDQttC40LvQu9GD0YPQu9Cw0L0g0YPRgtCw0YHQvdGLINGF0LDRgNC00LLQtdGA0YIg0LHSr9GA0Y3QvSDRhdCw0L3QtNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQo9GC0LDRgSDSr9C50LvQtNCy0Y3RgNC40LnQvSDRgtC10YHRgtC40LnQvSDQs9C+0YDQuNC80LQg0LDQttC40LvQu9Cw0YUg0q/QtdC0INC7INCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFdhbGxwYXBlciIgbXNnaWQ9IjY2MjcxOTIzMzMzNzM0NjUxNDMiPiLRhdCw0L3Ri9C9INC30YPRgNCz0LjQudCzINGC0L7RhdC40YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0V2FsbHBhcGVyIiBtc2dpZD0iNzM3MzQ0NzkyMDk3NzYyNDc0NSI+ItCQ0L/QvyDQvdGMINGB0LjRgdGC0LXQvNC40LnQvSDRhdCw0L3Ri9C9INC30YPRgNCz0LjQudCzINGC0L7RhdC40YDRg9GD0LvQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFdhbGxwYXBlckhpbnRzIiBtc2dpZD0iMzI3ODYwODE2NTk3NzczNjUzOCI+ItCi0LDQvdGLINGF0LDQvdGL0L0g0LfRg9GA0LDQs9C90Ysg0YXRjdC80LbRjdGN0LMg0YLQvtGF0LjRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRXYWxscGFwZXJIaW50cyIgbXNnaWQ9IjgyMzU3ODQzODQyMjM3MzAwOTEiPiLQkNC/0L8g0L3RjCDRgdC40YHRgtC10LzQuNC50L0g0YXQsNC90YvQvSDQt9GD0YDQs9C40LnQvSDRhdGN0LzQttGN0Y3QvdC40Lkg0YHQsNC90LDQu9GL0LMg0YLQvtGF0LjRgNGD0YPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYXN0ZXJDbGVhciIgbXNnaWQ9IjIzMTU3NTA0MjMxMzk2OTczOTciPiLRgdC40YHRgtC10LzQuNC50LMg0q/QudC70LTQstGN0YDQuNC50L0g0q/QvdC00YHRjdC9INGD0YLQs9Cw0LDRgCDRgtC+0YXQuNGA0YPRg9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hc3RlckNsZWFyIiBtc2dpZD0iMzY2NTM4MDQ5MjYzMzkxMDIyNiI+ItCQ0L/QvyDQvdGMINCx0q/RhSDQtNCw0YLQsNCzINCw0YDQuNC70LPQsNGFINCx0L7Qu9C+0L0g0LHSr9GFINGB0YPRg9C70LPQsNGB0LDQvSDQsNC/0L8t0LMg0LDRgNC40LvQs9Cw0L0g0YHQuNGB0YLQtdC80LjQudCzINCx0q/RhdGN0LvQtCDSr9C50LvQtNCy0Y3RgNC40LnQvSDRgtC+0YXQuNGA0LPQvtC+0LPQvtC+0YAg0LHSr9GA0Y3QvSDRgtC+0YXQuNGA0YPRg9C70LDRhSDQsdC+0LvQvtC80LbRgtC+0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFRpbWUiIG1zZ2lkPSIyMDIxNjE0ODI5NTkxNzc1NjQ2Ij4i0YbQsNCz0LjQudC9INGC0L7RhdC40YDQs9C+0L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxODk2MzQxNDM4MTUxMTUyODgxIj4i0JDQv9C/INC90Ywg0YLQsNCx0LvQtdGC0YvQvSDRhtCw0LPQuNC50LMg0YHQvtC70LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE4NTU3MDI3MzA3MzgwMjAiPiLQkNC/0L8g0L3RjCDRg9GC0LDRgdC90Ysg0YbQsNCz0LjQudCzINGB0L7Qu9C40YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0VGltZVpvbmUiIG1zZ2lkPSIyOTQ1MDc5ODAxMDEzMDc3MzQwIj4i0YbQsNCz0LjQudC9INCx0q/RgdC40LnQvSDRgtC+0YXQuNGA0LPQvtC+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZVpvbmUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE2NzY5ODM3MTIzMTU4Mjc2NDUiPiLQkNC/0L8g0L3RjCDRgtCw0LHQu9C10YLRi9C9INGG0LDQs9C40LnQvSDQsdKv0YHQuNC50LMg0YHQvtC70LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZVpvbmUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDk5OTQzNDg4NDM2NjMzMzk4Ij4i0JDQv9C/INC90Ywg0YPRgtCw0YHQvdGLINGG0LDQs9C40LnQvSDQsdKv0YHQuNC50LMg06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjb3VudE1hbmFnZXJTZXJ2aWNlIiBtc2dpZD0iNDgyOTI2MjM0OTY5MTM4Njk4NiI+IkFjY291bnRNYW5hZ2VyU2VydmljZSDQsdC+0LvQtiDQsNC20LjQu9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjE5NDg0NTU1NTIzMzM2MTU5NTQiPiLQkNC/0L8g0L3RjCDQkNC60LDRg9C90YIg0LPRjdGA0YfQu9GN0LPRh9GA0q/SryDQtNGD0YPQtNC70LDQs9CwINGF0LjQudGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldEFjY291bnRzIiBtc2dpZD0iMTA4Njc5NTQ2Nzc2MDEyMjExNCI+ItGC06nRhdOp06nRgNOp0LzQtiDQtNGN0Y3RgNGFINCw0LrQsNGD0L3RgtGL0LMg0L7Qu9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRBY2NvdW50cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjc0MTQ5NjUzNDc2OTY2MDAyNyI+ItCQ0L/QvyDQvdGMINGC0LDQsdC70LXRgtGN0LQg0LzRjdC00Y3Qs9C00Y3QtiDQsdCw0LnQs9Cw0LAg0LDQutCw0YPQvdGC0YvQvSDQttCw0LPRgdCw0LDQu9GC0YvQsyDQsNCy0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3QtCDRgtCw0L3RiyDRgdGD0YPQu9Cz0LDRgdCw0L0g0LDQv9C/0LvQuNC60LXRiNC90q/Sr9C00LjQudC9INKv0q/RgdCz0Y3RgdGN0L0g0LHSr9GFINCw0LrQsNGD0L3RgtGD0YPQtCDRhdCw0LzRgNCw0LPQtNCw0L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRBY2NvdW50cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0NDgzMTY4MjI0NTE4MDczODIiPiLQkNC/0L8g0L3RjCDRg9GC0YHQsNC90LQg0LzRjdC00Y3Qs9C00Y3QtiDQsdCw0LnQs9Cw0LAg0LDQutCw0YPQvdGC0YvQvSDQttCw0LPRgdCw0LDQu9GC0YvQsyDQsNCy0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3QtCDRgtCw0L3RiyDRgdGD0YPQu9Cz0LDRgdCw0L0g0LDQv9C/0LvQuNC60LXRiNC90q/Sr9C00LjQudC9INKv0q/RgdCz0Y3RgdGN0L0g0LHSr9GFINCw0LrQsNGD0L3RgtGD0YPQtCDRhdCw0LzRgNCw0LPQtNCw0L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2F1dGhlbnRpY2F0ZUFjY291bnRzIiBtc2dpZD0iNTI2NTkwODQ4MTE3MjczNjkzMyI+ItCw0LrQsNGD0L3RgiDSr9Kv0YHQs9GN0YUg0LHQvtC70L7QvSDQvdGD0YPRhiDSr9CzINGC0L7RhdC40YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXV0aGVudGljYXRlQWNjb3VudHMiIG1zZ2lkPSI1NDcyMTI0Mjk2OTA4OTc3MjYwIj4i0JDQv9C/INC90Ywg0LDQutCw0YPQvdGCINKv0q/RgdCz0Y3RhSwg0YLRjdC00LPRjdGN0YDQuNC50L0g0L3Rg9GD0YYg0q/Qs9C40LnQsyDRgtC+0YXQuNGA0YPRg9C70LDRhSDQt9GN0YDRjdCzINCw0LrQsNGD0L3RgiDRg9C00LjRgNC00LDQs9GH0LjQudC9INCw0LrQsNGD0L3RgiDQs9GN0YDRh9C70Y3Qs9GH0LjQudC9INGE0YPQvdC60YbQuNC50LMg0LDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI0OTgzMTI2MzA0NzU3MTc3MzA1Ij4i0LDQutCw0YPQvdGCINC90Y3QvNGN0YUg0Y3RgdCy0Y3QuyDRhdCw0YHQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI4Njk4Mjk1NjI1NDg4MjkyNTA2Ij4i0JDQv9C/INC90Ywg0LDQutCw0YPQvdGCINC90Y3QvNGN0YUsINGD0YHRgtCz0LDRhSDQsdCwINGC0Y3QtNC90LjQuSDQvdGD0YPRhiDSr9Cz0LjQudCzINGD0YHRgtCz0LDRhSDQt9GN0YDRjdCzINKv0LnQu9C00LvQuNC50LMg0LPSr9C50YbRjdGC0LPRjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VzZUNyZWRlbnRpYWxzIiBtc2dpZD0iMjM1NDgxMzk2MTYzODc3NjQyIj4i0YLTqdGF06nTqdGA06nQvNC2INC00Y3RjdGA0YUg0LDQutCw0YPQvdGC0YvQsyDQsNGI0LjQs9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZUNyZWRlbnRpYWxzIiBtc2dpZD0iNzk4NDIyNzE0NzQwMzM0NjQyMiI+ItCQ0L/QvyDQvdGMINCz0Y3RgNGH0LvRjdC70LjQudC9INCx0q/RgtCy0Y3RgNC40LnQsyDRhdKv0YHRjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjQ5NTEwMjc5NjQzNDg5NzQ3NzMiPiLRgdKv0LvQttGN0Y3QvdC40Lkg0YXQvtC70LHQvtC70YLRi9CzINKv0LfRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTmV0d29ya1N0YXRlIiBtc2dpZD0iODMxODk2NDQyNDY3NTk2MDk3NSI+ItCQ0L/QvyDQvdGMINGB0q/Qu9C20Y3RjSDQsdCw0LnQs9Cw0LAg0LHQvtC70L7QvSDRhdC+0LvQsdC+0LPQtNGB0L7QvSDRjdGB0Y3RhSDQt9GN0YDRjdCzINGB0q/Qu9C20Y3RjdC90LjQuSDRhdC+0LvQsdC+0LvRgtGL0L0g0YLQsNC70LDQsNGA0YUg0LzRjdC00Y3RjdC70LvQuNC50LMg0YXQsNGA0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jcmVhdGVOZXR3b3JrU29ja2V0cyIgbXNnaWQ9IjgwMTg3NTgxMzY0MDQzMjM2NTgiPiLRgdKv0LvQttGN0Y3QvdC0INCx0q/RgNGN0L0g0YXQsNC90LTQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY3JlYXRlTmV0d29ya1NvY2tldHMiIG1zZ2lkPSIzNDAzMDYyMTg3Nzc5NzI0MTg1Ij4i0JDQv9C/INC90Ywg0YHSr9C70LbRjdGN0L3QuNC5INGB0L7QutC10YLRi9CzINKv0q/RgdCz0Y3RhSDQsdC+0LvQvtC9INGC0YPRgdCz0LDQuSDRgdKv0LvQttGN0Y3QvdC40Lkg0L/RgNC+0YLQvtC60L7QuyDQsNGI0LjQs9C70LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCl06nRgtOp0Ycg0LHQvtC70L7QvSDQsdGD0YHQsNC0INCw0L/Qv9C70LjQutC10YjQvdKv0q/QtCDQmNC90YLQtdGA0L3QtdGC0Y3RjdGAINC00LDRgtCwINC40LvQs9GN0Y3RhSDQsdC+0LvQvtC80LbRgtC+0LkgINGC0YPQuyDRjdC90Y0g0LfTqdCy0YjTqdOp0YDTqdC7INC90Ywg0JjQvdGC0LXRgNC90LXRgtGN0Y3RgCDQtNCw0YLQsCDQuNC70LPRjdGN0YXRjdC0INGI0LDQsNGA0LTQu9Cw0LPQsNCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MDU2NjAxNTk2NzU3NTE4OTYiPiLRgdKv0LvQttGN0Y3QvdC40Lkg0YLQvtGF0LjRgNCz0L7QviDQsdC+0LvQvtC9INGD0YDRgdCz0LDQu9GL0LMg0YHQvtC70LjRhS/RgtCw0YHQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUFwblNldHRpbmdzIiBtc2dpZD0iNTMzMzc5ODg4NjQxMjcxNDE5MyI+ItCQ0L/QvyDQvdGMINGB0q/Qu9C20Y3RjdC90LjQuSDRgtC+0YXQuNGA0LPQvtC+0LMg0YHQvtC70LjRhSDQsdC+0LvQvtC9INGB0q/Qu9C20Y3RjdC90LjQuSDQsdKv0YUg0YPRgNGB0LPQsNC70YvQsyBBUE4t0L0g0L/RgNC+0LrRgdC4INCx0L7Qu9C+0L0g0L/QvtGA0YLRi9CzINGB0L7Qu9C40YUg0LfQsNC80LDQsNGAINGC0LDRgdC70LDRhSwg0YXRj9C90LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCl0L7RgNGC0L7QuSDQsNC/0L8g0L3RjCDRgtCw0L3QtCDQvNGN0LTRjdCz0LTRjdC70LPSr9C50LPRjdGN0YAg0YHSr9C70LbRjdGN0L3QuNC5INC/0LDQutC10YLRi9CzINGF0Y/QvdCw0YUsINC00LDRhdC40L0g0YfQuNCz0LvSr9Kv0LvRjdGFINCx0L7Qu9C+0L0g06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlTmV0d29ya1N0YXRlIiBtc2dpZD0iOTU4ODg0MjkxNDU0MzI3MzA5Ij4i0YHSr9C70LbRjdGN0L3QuNC5INGF0L7Qu9Cx0L7Qu9GC0YvQsyDRgdC+0LvQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlTmV0d29ya1N0YXRlIiBtc2dpZD0iNjc4OTEyMzkxMjQ3NjQxNjIxNCI+ItCQ0L/QvyDQvdGMINGB0q/Qu9C20Y3RjdC90LjQuSDRhdC+0LvQsdC+0LvRgtGL0L0g0YHRgtCw0YLRg9GB0YvQsyDRgdC+0LvQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVRldGhlclN0YXRlIiBtc2dpZD0iNTk1MjU4NDk2NDM3MzAxNzk2MCI+ItC80L7QtNC10Lwg0LHQvtC70LPQvtGB0L7QvSDRhdC+0LvQsdC+0LvRgtGL0LMg0YHQvtC70LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVRldGhlclN0YXRlIiBtc2dpZD0iMTUyNDQ0MTM0NDQxMjMxOTc4MCI+ItCQ0L/QvyDQvdGMINGF0L7Qu9Cx0L7Qs9C00YHQvtC9INGB0q/Qu9C20Y3RjdC90LjQuSDRhdC+0LvQsdC+0LvRgtGL0L0g0YHRgtCw0YLRg9GB0YvQsyDRgdC+0LvQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZUJhY2tncm91bmREYXRhU2V0dGluZyIgbXNnaWQ9IjE0MDA2NjYwMTI2NzE2NDg3NDEiPiLQsNGA0YvQvSDQtNCw0YLQsCDQsNGI0LjQs9C70LDQu9GC0YvQvSDRgtC+0YXQuNGA0LPQvtC+0LMg0YHQvtC70LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUJhY2tncm91bmREYXRhU2V0dGluZyIgbXNnaWQ9IjUzNDc3Mjk1Nzg0Njg3NDQzNzkiPiLQkNC/0L8g0L3RjCDQsNGA0YvQvSDQtNCw0YLQsCDRhdGN0YDRjdCz0LvRjdGN0L3QuNC5INGC0L7RhdC40YDQs9C+0L7QsyDRgdC+0LvQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1dpZmlTdGF0ZSIgbXNnaWQ9IjUyMDIwMTI5NDkyNDcwNDAwMTEiPiJXaS1GaSDRhdC+0LvQsdC+0LvRgtGL0LMg0q/Qt9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MDAyNzk4MDc3Mzg3ODAzNzI2Ij4i0JDQv9C/INC90YwgV2ktRmkg0LjQtNGN0LLRhdGC0Y3QuSDRjdGB0Y3RhSDQsdC+0LvQvtC9INGF0L7Qu9Cx0L7Qs9C00YHQvtC9IFdpLUZpINGC06nRhdOp06nRgNOp0LzQttC40LnQvSDQvdGN0YAg0LfRjdGA0Y3QsyBXaS1GaSDRgdKv0LvQttGN0Y3QvdC40Lkg0YLQsNC70LDQsNGA0YUg0LzRjdC00Y3RjdC70LvQuNC50LMg0YXQsNGA0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI2NTUwNjQxMTg4NzQ5MTI4MDM1Ij4iV2ktRmkgLdGC0LDQuSDRhdC+0LvQsdC+0LPQtNC+0YUg0LHQvtC70L7QvSDRgdCw0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaVN0YXRlIiBtc2dpZD0iNzEzNzk1MDI5NzM4NjEyNzUzMyI+ItCQ0L/QvyDQvdGMIFdpLUZpINGF0L7Qu9Cx0L7Qu9GC0YvQvSDRhtGN0LPRgtGN0Lkg0YXQvtC70LHQvtCz0LTQvtGFINCx0YPRjtGDINGB0LDQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5INCx0LAg0YLQvtGF0LjRgNGD0YPQu9GB0LDQvSBXaS1GaSDRgdKv0LvQttGN0Y3QvdC0INOp06nRgNGH0LvTqdC70YIg0YXQuNC50YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBtc2dpZD0iMTM2ODI1Mzg3MTQ4MzI1NDc4NCI+IldpLUZpINC+0LvQvtC9INC00LDQvNC20YPRg9C70LDQu9GCINGF0q/Qu9GN0Y3QvSDQsNCy0LDRhdGL0LMg0LfTqdCy0YjTqdOp0YDTqdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3OTY5Nzc0MDIxMjU2MzM2NTQ4Ij4i0JDQv9C/INC90Ywg0L7Qu9C+0L0g0LTQsNC80LbRg9GD0LvQsNC7INCw0YjQuNCz0LvQsNC9IFdpLUZpINGB0q/Qu9C20Y3RjdC9INC00Y3RhSDQsdKv0YUg0YLTqdGF06nTqdGA06nQvNC20YDSr9KvINC/0LDQutC10YIg0LjQu9Cz0Y3RjdGFINCx0L7Qu9C+0L0g0YXSr9C70Y3RjdC9INCw0LLQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC90Ywg0L7Qu9C+0L0g0LTQsNC80LbRg9GD0LvQsNC7INCw0YjQuNCz0LvQsNGF0LPSr9C5INCz0L7RgNC40LzQvtC+0YEg0LjQu9Kv0q8g0LjRhSDRgtGN0LbRjdGN0Lsg0LfQsNGA0YbRg9GD0LvQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTE5NDk3MDYwMjUzNDk5MjYiPiLQkNC/0L8g0L3RjCDQvtC70L7QvSDQtNCw0LzQttGD0YPQu9Cw0Lsg0LDRiNC40LPQu9Cw0L0gV2ktRmkg0YHSr9C70LbRjdGN0L0g0LTRjdGFINCx0q/RhSDRgtOp0YXTqdOp0YDTqdC80LbRgNKv0q8g0L/QsNC60LXRgiDQuNC70LPRjdGN0YUg0LHQvtC70L7QvSDRhdKv0LvRjdGN0L0g0LDQstCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90Y0g0L3RjCDQvtC70L7QvSDQtNCw0LzQttGD0YPQu9Cw0Lsg0LDRiNC40LPQu9Cw0YXQs9Kv0Lkg0LPQvtGA0LjQvNC+0L7RgSDQuNC70q/SryDQuNGFINGC0Y3QttGN0Y3QuyDQt9Cw0YDRhtGD0YPQu9C90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGhBZG1pbiIgbXNnaWQ9IjYwMDY5NjczNzM5MzU5MjY2NTkiPiLQkdC70Y7RgtKv0q/RgiDRgtC+0YXQuNGA0LPQvtC+0L3QtCDRhdCw0L3QtNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhBZG1pbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjkyMTE3NzQ3MTc0ODg4MjEzNyI+ItCQ0L/QvyDQvdGMINC00L7RgtC+0L7QtCDQsdC70Y7RgtKv0q/RgiDRgtCw0LHQu9C10YLRi9C9INGC0L7RhdC40YDQs9C+0L7QsyDRhdCw0YDQsNGFINCx0L7Qu9C+0LzQttGC0L7QuSDQsdCwINGF0L7RgSDQsdC+0LvQvtGFINGC06nRhdOp06nRgNOp0LzQttGC0Y3QuSDRhdC+0LvQsdC+0LvRgtGL0LMg0LfTqdCy0YjTqdOp0YDTqdGFINCx0L7Qu9C+0L0g0YXQuNC50YUg0LHQvtC70L7QvNC20YLQvtC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4OTMxNjgyMTU5MzMxNTQyMTM3Ij4i0JDQv9C/INC90Ywg0YPRgtCw0YHQvdGLINC00L7RgtC+0L7QtCDQsdC70Y7RgtKv0q/RgtGL0LMg0YLQvtGF0LjRgNGD0YPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5INCx0LAg0LPQsNC00LDQsNC0INGC06nRhdOp06nRgNOp0LzQttC40LnQsyDQvtC70L7RhSDQsdC+0LvQvtC9INGF0L7RgSDSr9Kv0YHQs9GN0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2ltYXhTdGF0ZSIgbXNnaWQ9IjQxOTU5MDcwMTA2MTAyMDU3MDMiPiJXaU1BWC3QtCDRhdC+0LvQsdC+0LPQtNC+0YUg0LHQvtC70L7QvSDRgdCw0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzV2ltYXhTdGF0ZSIgbXNnaWQ9IjYzNjAxMDI4NzcyNjE5Nzg4ODciPiLQkNC/0L8g0L3RjCBXaU1BWCDQuNC00Y3QstGF0YLRjdC5INGN0YHRjdGFINCx0L7Qu9C+0L0g0YXQvtC70LHQvtCz0LTRgdC+0L0gV2lNQVgg0YHSr9C70LbRjdGN0L3QuNC5INGC0LDQu9Cw0LDRgCDQvNGN0LTRjdGN0LvQu9C40LnQsyDRgtC+0LTQvtGA0YXQvtC50LvQvtGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVdpbWF4U3RhdGUiIG1zZ2lkPSIyNDA1MDQyMjY3MTMxNDk2NTc5Ij4iV2lNQVgg0YHRgtCw0YLRg9GB0YvQsyDTqdOp0YDRh9C706nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMxNTY0NTY1MDQwODQyMDE4MDUiPiLQkNC/0L8g0L3RjCBXaU1BWCDRgdKv0LvQttGN0Y3QvdC0INGC0LDQsdC70LXRgtGL0LMg0YXQvtC70LHQvtGFINCx0L7Qu9C+0L0g0YHQsNC70LPQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaW1heFN0YXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjk3MDI1MDQzMDA0OTIzNzk4Ij4i0JDQv9C/INC90YwgV2lNQVgg0YHSr9C70LbRjdGN0L3QtCDRg9GC0YHRi9CzINGF0L7Qu9Cx0L7RhSDQsdC+0LvQvtC9INGB0LDQu9Cz0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGgiIG1zZ2lkPSI2MTI3NzY5MzM2MzM5Mjc2ODI4Ij4i0JHQu9GO0YLSr9Kv0YIg0YLTqdGF06nTqdGA06nQvNC20YLRjdC5INGF0L7RgSDSr9Kv0YHQs9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGgiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM0ODA3MjIxODE4NTI0Mzg2MjgiPiLQkNC/0L8g0L3RjCDRgtCw0LHQu9C10YIg0LTRjdGN0YDRhSDQsdC70Y7RgtKv0q/RgiDRgtC+0YXQuNGA0LPQvtC+0LMg0YXQsNGA0LDRhSDQsdC+0LvQvtC80LbRgtC+0Lkg0LHQsCDRhdC+0YEg0LHQvtC70L7RhSDRgtOp0YXTqdOp0YDTqdC80LbRgtGN0Lkg0YXQvtC70LHQvtC70YLRi9CzINC306nQstGI06nTqdGA06nRhSDQsdC+0LvQvtC9INGF0LjQudGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGgiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzMjA3MTA2MzI0NDUyMzEyNzM5Ij4i0JDQv9C/INC90Ywg0YPRgtGB0LDQvSDQtNGN0Y3RgNGFINCR0LvRjtGC0q/Sr9GCINGC0L7RhdC40YDQs9C+0L7QsyDRhdCw0YDQsNGFINCx0L7Qu9C+0LzQttGC0L7QuSDQsdCwINGF0L7RgSDQsdC+0LvQvtGFINGC06nRhdOp06nRgNOp0LzQttGC0Y3QuSDRhdC+0LvQsdC+0LvRgtGL0LMg0LfTqdCy0YjTqdOp0YDTqdGFINCx0L7Qu9C+0L0g0YXQuNC50YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbmZjIiBtc2dpZD0iNDQyMzM1MTI3NDc1Nzg3Njk1MyI+ItC+0LnRgNC+0LvRhtC+0L4g0YLQsNC70LHQsNGA0YvQvSDRhdC+0LvQsdC+0L7QsyDRg9C00LjRgNC00LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX25mYyIgbXNnaWQ9IjcxMjA2MTE4MTk0MDE3ODk5MDciPiLQkNC/0L8g0L3RjCDQntC50YDQvtC70YbQvtC+INCi0LDQu9Cx0LDRgNGL0L0g0KXQvtC70LHQvtC70YIoTkZDKSDRgtCw0LMsINC60LDRgNGCLCDQsdC+0LvQvtC9INGD0L3RiNC40LPRh9GC0LDQuSDRhdC+0LvQsdC+0LPQtNC+0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGlzYWJsZUtleWd1YXJkIiBtc2dpZD0iMzU5ODQ5NjMwMTQ4NjQzOTI1OCI+ItC00Y3Qu9Cz0Y3RhtC90LjQuSDRgtKv0LPQttGN0Y3QsyDQuNC00Y3QstGF0LPSr9C5INCx0L7Qu9Cz0L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Rpc2FibGVLZXlndWFyZCIgbXNnaWQ9IjYwMzQyMDMwNjUwNzcxMjI5OTIiPiLQkNC/0L8g0L3RjCDRgtKv0LPQttGN0Y0g0LHQvtC70L7QvSDQsdGD0YHQsNC0INGF0L7Qu9Cx0L7QvtGC0L7QuSDQvdGD0YPRhiDSr9Cz0LjQudC9INCw0Y7Rg9C70LPSr9C5INCx0LDQudC00LvRi9CzINC40LTRjdCy0YXQs9Kv0Lkg0LHQvtC70LPQvtGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0JbQuNGI0Y3RjSDQvdGMINCx0L7QuyDRg9GC0LDRgSDQvdGMINC00YPRg9C00LvQsNCz0LAg0LjRgNGN0YUg0q/QtdC0INGC0q/Qs9C20Y3RjdCzINC40LTRjdCy0YXQs9Kv0Lkg0LHQvtC70LPQvtGFINCx0LAg0LTRg9GD0LTQu9Cw0LPQsCDQtNGD0YPRgdCw0YXQsNC0INCx0YPRhtCw0LDQvSDQuNC00Y3QstGF0YLRjdC5INCx0L7Qu9Cz0L7QtNC+0LMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU3luY1NldHRpbmdzIiBtc2dpZD0iNjIwMTgxMDAwODIzMDUwMzA1MiI+ItGB0LjQvdC6INGC0L7RhdC40YDQs9C+0L7QsyDRg9C90YjQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFN5bmNTZXR0aW5ncyIgbXNnaWQ9IjI3MDY3NDU2NzQ1Njk2Nzg2NDQiPiLQkNC/0L8g0L3RjCDQsNC60LDRg9C90YLRi9C9INGB0LjQvdC6INGC0L7RhdC40YDQs9C+0L7QsyDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0JbQuNGI0Y3RjSDQvdGMINGN0L3RjSDQvdGMINCl0q/QvNKv0q/RgSDQsNC/0L8g0LDQutCw0YPQvdGC0YLQsNC5INGB0LjQvdC6INGF0LjQudCz0LTRgdGN0L0g0Y3RgdGN0YXQuNC50LMg0YLQvtC00L7RgNGF0L7QudC70L7RhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9IjU0MDg2OTQ4NzU3OTM5NDUzMTQiPiLRgdC40L3QutC40LnQsyDRg9C90YLRgNCw0LDQtiDQsNGB0LDQsNGFINGC0L7RhdC40YDQs9C+0L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9Ijg5NTYyNjI1OTEzMDYzNjk4NjgiPiLQkNC/0L8g0L3RjCDQsNC60LDRg9C90YLRi9C9INGB0LjQvdC6INGC0L7RhdC40YDQs9C+0L7QsyDTqdOp0YDRh9C706nRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCW0LjRiNGN0Y0g0L3RjCDRjdC90Y0g0L3RjCDQpdKv0LzSr9Kv0YEg0LDQv9C/INCw0LrQsNGD0L3RgtGC0LDQuSDRgdC40L3QuiDRhdC40LnRhdC40LnQsyDQuNC00Y3QstGF0LbSr9Kv0LvRjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTeW5jU3RhdHMiIG1zZ2lkPSI3Mzk2NTc3NDUxMzYwMjAyNDQ4Ij4i0YHQuNC90Log0YHRgtCw0YLQuNGB0YLQuNC60LjQudCzINGD0L3RiNC40YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU3luY1N0YXRzIiBtc2dpZD0iMTUxMDE0Mzc2MTc1NzYwNjE1NiI+ItCQ0L/QvyDQvdGMINGB0LjQvdC6INKv0LnQu9C00Y3Qu9C40LnQvSDRgtKv0q/RhSDQsdC+0LvQvtC9INGF0Y3RgCDQuNGFINC00LDRgtCwINGB0LjQvdC6INGF0LjQudCz0LTRgdGN0L0g0LfRjdGA0Y3QsyDQsNC60LDRg9C90YLRi9C9INGB0LjQvdC6INGB0YLQsNGC0YPRgdGL0LMg0YPQvdGI0LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdWJzY3JpYmVkRmVlZHNSZWFkIiBtc2dpZD0iNDc1NjYwOTYzNzA1MzM1MzMxOCI+ItCx0q/RgNGC0LPSr9Kv0LvRgdGN0L0g0YXQsNC90LPQsNC80LbQuNC50LMg0YPQvdGI0LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N1YnNjcmliZWRGZWVkc1JlYWQiIG1zZ2lkPSI1NTU3MDU4OTA3OTA2MTQ0NTA1Ij4i0JDQv9C/INC90Ywg0L7QtNC+0L7Qs9C40LnQvSDRgdC40L3QuiDRhdC40LnQs9C00YHRjdC9INGF0LDQvdCz0LDQvNC20LjQudC9INGC0LDQu9Cw0LDRgNGFINC80Y3QtNGN0Y3Qu9C70LjQudCzINCw0LLQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N1YnNjcmliZWRGZWVkc1dyaXRlIiBtc2dpZD0iOTAxNTI0NjMyNTQwODIwOTI5NiI+ItCx0q/RgNGC0LPSr9Kv0LvRgdGN0L0g0YXQsNC90LPQsNC80LbRgNGD0YMg0LHQuNGH0LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N1YnNjcmliZWRGZWVkc1dyaXRlIiBtc2dpZD0iNjkyODkzMDE4ODgyNjA4OTQxMyI+ItCQ0L/QvyDQvdGMINGC0LDQvdGLINC+0LTQvtC+0LPQuNC50L0g0YHQuNC90Log0YXQuNC50LPQtNGB0Y3QvSDRhdCw0L3Qs9Cw0LzQttC40LnQsyDTqdOp0YDRh9C706nRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCl0L7RgNGC0L7QuSDQsNC/0L8g0L3RjCDRgtCw0L3RiyDRgdC40L3QuiDRhdC40LnQs9C00YHRjdC9INGF0LDQvdCz0LDQvNC20LjQudCzINOp06nRgNGH0LvTqdGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWREaWN0aW9uYXJ5IiBtc2dpZD0iNDEwNzEwMTUyNTc0NjAzNTcxOCI+ItGC0LDQvdGLINGC0L7Qu9GMINCx0LjRh9C40LPRgiDQvdGN0LzRgdGN0L0g0L3TqdGF0YbTqdC70LjQudCzINGD0L3RiNC40YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjY1OTYxNDYwMDMzODkwNDI0MyI+ItCQ0L/QvyDQvdGMINGF0Y3RgNGN0LPQu9GN0LPRhyDRhdGN0YDRjdCz0LvRjdCz0YfQuNC50L0g0YLQvtC70Ywg0LHQuNGH0LjQs9GCINGF0LDQtNCz0LDQu9GB0LDQvSDQsdKv0YUg0q/Qs9GBLCDQvdGN0YDRgSDQsdC+0LvQvtC9INGF0Y3Qu9GG0LjQudCzINGD0L3RiNC40YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iMjE4MzExMDQwMjMxNDQ0MTEwNiI+ItGF0Y3RgNGN0LPQu9GN0LPRh9C40LnQvSDRgtC+0LvRjCDQsdC40YfQuNCz0YIg0q/Qs9GBINC90Y3QvNGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSI4MTg1Mzg1NzE2MjU1MDY1MjkxIj4i0JDQv9C/INC90Ywg0YXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INGC0L7Qu9GMINCx0LjRh9C40LPRgiDRiNC40L3RjSDSr9CzINCx0LjRh9C40YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI4MjM1MzQxNTE1NjA1NTU5Njc3Ij4i0YXQsNC80LPQsNCw0LvQsNCz0LTRgdCw0L0g0YHQsNC90LQg0YXQsNC90LTQsNGFINGC0LXRgdGCINGF0LjQudGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODIzNTM0MTUxNTYwNTU1OTY3NyI+ItGF0LDQvNCz0LDQsNC70LDQs9C00YHQsNC9INGB0LDQvdC0INGF0LDQvdC00LDRhSDRgtC10YHRgiDRhdC40LnRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzY0MjQ3MzI5MjM0ODEzMjA3MiI+ItCQ0L/QvyDQvdGMINC00LDRgNCw0LDQs9C40LnQvSDRgtOp0YXTqdOp0YDTqdC80LbSr9Kv0LTRjdC0INCw0YjQuNCz0LvQsNGFINCx0L7Qu9C+0LzQttGC0L7QuSDQsdC+0LvQvtGFIFNEINC60LDRgNGCINC306nQstGI06nTqdGA0LvQuNC50LMg0YLQtdGB0YLQu9GN0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1OTE0NDAyNjg0Njg1ODQ4ODI4Ij4i0JDQv9C/INC90Ywg0LTQsNGA0LDQsNCz0LjQudC9INGC06nRhdOp06nRgNOp0LzQttKv0q/QtNGN0LQg0LDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5INCx0L7Qu9C+0YUgU0Qg0LrQsNGA0YIg0Y3RgNGF0LjQudCzINGC0LXRgdGC0LvRjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijg0ODU5NzkwNjIyNTQ2NjY3NDgiPiJVU0Ig0YHQsNC90LPQuNC50L0g0LrQvtC90YLQtdC90YLRi9CzINOp06nRgNGH0LvTqdGFINGN0YHQstGN0Lsg0YPRgdGC0LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg4MDU2OTM2MzAwNTA0NTg3NjMiPiJTRCDQutCw0YDRgtC90Ysg0LrQvtC90YLQtdC90YLRi9CzINOp06nRgNGH0LvTqdGFINCx0L7Qu9C+0L0g0YPRgdGC0LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE3NTQwNjI5OTQ0NTcxMDg4OCI+ItCQ0L/QvyDQvdGMIFVTQiDRgdCw0L3RgNGD0YMg0LHQuNGH0LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MzM3NDE3NzkwOTM2NjMyMDkwIj4i0JDQv9C/INC90YwgU0Qg0LrQsNGA0YLRgNGD0YMg0LHQuNGH0LjRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTk4MzkxOTk3MDY4NzkwMTUiPiLQtNC+0YLQvtC+0LQg0LzQtdC00LjQsCDRgdCw0L3Qs9C40LnQvSDQutC+0L3RgtC10L3RgtGL0LMg06nTqdGA0YfQu9Op0YUv0YPRgdGC0LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWVkaWFTdG9yYWdlV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MTg5MTYwNTk3Njk4NTI5MTg1Ij4i0JDQv9C/INC90Ywg0LTQvtGC0L7QvtC0INC80LXQtNC40LAg0YHQsNC90LPQuNC50L0g0LrQvtC90YLQtdC90YLRi9CzINOp06nRgNGH0LvTqdGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZURvY3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzc4MzE4NTk4NDQ4ODQ5ODI5Ij4i0LTQvtC60YPQvNC10L3RgiDRgdCw0L3QsyDRg9C00LjRgNC00LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZURvY3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NzA0MzIzMTc2OTE0MTIxNDg0Ij4i0JDQv9C/INC90Ywg0LTQvtC60YPQvNC10L3RgiDRgdCw0L3QsyDRg9C00LjRgNC00LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRBY2Nlc3NBbGwiIG1zZ2lkPSI4MTUwNjEzODIzOTAwNDYwNTc2Ij4i0LHSr9GFINGF0Y3RgNGN0LPQu9GN0LPRh9C00LjQudC9INCz0LDQtNCw0LDRgCDRgdCw0L3QtCDRhdCw0L3QtNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRBY2Nlc3NBbGwiIG1zZ2lkPSIzMjE1MjA4MzU3NDE1ODkxMzIwIj4i0JDQv9C/INC90Ywg0LHSr9GFINGF0Y3RgNGN0LPQu9GN0LPRh9C00LjQudC9INCz0LDQtNCw0LDQtCDRgdCw0L3QtCDRhdCw0L3QtNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU2NTY0ODcyNjQ4MTk2Njk4MjQiPiLQutC10Ygg0YTQsNC50LvRgdC40YHRgtC10LzQtCDRhdCw0L3QtNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYWNoZV9maWxlc3lzdGVtIiBtc2dpZD0iNTU3ODk2NzY0MjI2NTU1MDk1NSI+ItCQ0L/QvyDQvdGMINC60LXRiCDRhNCw0LnQu9GB0LjRgdGC0LXQvNC40LnQsyDRg9C90YjQuNGFINCx0LjRh9C40YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXNlX3NpcCIgbXNnaWQ9IjU5ODY5NTIzNjI3OTU4NzA1MDIiPiLQmNC90YLQtdGA0L3QtdGCINC00YPRg9C00LvQsNCz0LAg0YXQuNC50YUv0YXSr9C70Y3RjdC9INCw0LLQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXNlX3NpcCIgbXNnaWQ9IjQ3MTc2MzIwMDAwNjI2NzQyOTQiPiLQkNC/0L8g0L3RjCDQmNC90YLQtdGA0L3QtdGCINC00YPRg9C00LvQsNCz0LAg0YXQuNC50YUv0YXSr9C70Y3RjdC9INCw0LLQsNGF0YvQvSDRgtGD0LvQtCBTSVAg0q/QudC70YfQuNC70LPRjdGN0LMg0LDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZE5ldHdvcmtVc2FnZUhpc3RvcnkiIG1zZ2lkPSI3ODYyNTkzMjgzNjExNDkzMjMyIj4i0YHSr9C70LbRjdGN0L3QuNC5INCw0YjQuNCz0LvQsNC70YLRi9C9INGC0q/Sr9GF0LjQudCzINGD0L3RiNC40YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTmV0d29ya1VzYWdlSGlzdG9yeSIgbXNnaWQ9Ijc2ODkwNjA3NDk4MTkxMjY0NzIiPiLQkNC/0L8g0L3RjCDRgtGD0YHQs9Cw0Lkg0YHSr9C70LbRjdGNINCx0L7Qu9C+0L0g0LDQv9C/LdC9INGB0q/Qu9C20Y3RjSDQsNGI0LjQs9C70LDQu9GC0YvQvSDRgtKv0q/RhdC40LnQsyDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZU5ldHdvcmtQb2xpY3kiIG1zZ2lkPSIyNTYyMDUzNTkyMzM5ODU5OTkwIj4i0YHSr9C70LbRjdGN0L3QuNC5INCx0L7QtNC70L7Qs9GL0LMg0YPQtNC40YDQtNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VOZXR3b3JrUG9saWN5IiBtc2dpZD0iNzUzNzU4Njc3MTU1OTM3MDY2OCI+ItCQ0L/QvyDQvdGMINGB0q/Qu9C20Y3RjdC90LjQuSDQsdC+0LTQu9C+0LPRi9CzINGD0LTQuNGA0LTQsNGFINCx0L7Qu9C+0L0g0LDQv9C/LdC0INC30L7RgNC40YPQu9GB0LDQvSDQtNKv0YDQvNC40LnQsyDRgtC+0LPRgtC+0L7RhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlOZXR3b3JrQWNjb3VudGluZyIgbXNnaWQ9IjUwODgyMTczMDkwODg3Mjk2NTAiPiLRgdKv0LvQttGN0Y3QvdC40Lkg0YXRjdGA0Y3Qs9C70Y3RjdC90LjQuSDRgtCw0LnQu9Cw0L3QsyDTqdOp0YDRh9C706nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeU5ldHdvcmtBY2NvdW50aW5nIiBtc2dpZD0iNTQ0MzQxMjg2Njc0NjE5ODEyMyI+ItCQ0L/QvyDQvdGMINCw0L/Qvy3Rg9GD0LTRi9C9INGB0q/Qu9C20Y3RjSDQsNGI0LjQs9C70LDQu9GC0YvQvSDRgtCw0LvQsNCw0YDRhSDRgtC+0L7RhtC+0L7QsyDTqdOp0YDRh9C706nRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3Qs9C40LnQvSDQsNC/0L8t0LQg0LDRiNC40LPQu9Cw0LPQtNCw0YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYXJrTmV0d29ya1NvY2tldCIgbXNnaWQ9IjM2NTg1MjcyMTQ5MTQ5NTk3NDkiPiLRgdC+0LrQutC10YLRi9C9INGC0Y3QvNC00LPSr9Kv0LTQuNC50LMg06nTqdGA0YfQu9Op0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYXJrTmV0d29ya1NvY2tldCIgbXNnaWQ9Ijc2NTU1Njg0MzM2OTYzNTY1NzgiPiLQkNC/0L8t0LQg0YfQuNCz0LvRjdC70LjQudC9INGB0L7QutC60LXRgtGL0L0g0YLRjdC80LTQs9C40LnQsyDTqdOp0YDRh9C706nRhSDQsdC+0LvQvtC80LYg0L7Qu9Cz0L7QvdC+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNzY3MzQxNjQ4Nzg3MzQzMjI2OCI+ItC80Y3QtNGN0LPQtNGN0LvQtCDRhdCw0L3QtNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNDU4NDU3NzQyNjgzNDMxMzg3Ij4i0JDQv9C/INC90Ywg0LHRg9GB0LDQtCDQsNC/0L8t0YPRg9C00YvQvSDQuNC70LPRjdGN0YHRjdC9INC80Y3QtNGN0LPQtNC70q/Sr9C00LjQudCzINC00YPRg9C00LDRhSwg0YjQsNC70LPQsNGFLCDQsdC+0LvQvtC9INGG0Y3QstGN0YDQu9GN0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZE5vdGlmaWNhdGlvbkxpc3RlbmVyU2VydmljZSIgbXNnaWQ9IjcwNTc3NjQ3NDIyMTE2NTY2NTQiPiLQvNGN0LTRjdCz0LTRjdC7INGB0L7QvdGB0L7Qs9GHINKv0LnQu9GH0LjQu9Cz0Y3RjdGC0Y3QuSDRhdC+0LvQsdC+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kTm90aWZpY2F0aW9uTGlzdGVuZXJTZXJ2aWNlIiBtc2dpZD0iOTg1Njk3OTE4NTc2OTAyOTg2Ij4i0K3Qt9GN0LzRiNC40LPRhyDQvdGMINC80Y3QtNGN0LPQtNGN0Lsg0YHQvtC90YHQvtGFINKv0LnQu9GH0LjQu9Cz0Y3RjdC90LjQuSDQtNGN0Y3QtC3RgtOp0LLRiNC40L3QuNC5INC40L3RgtC10YDRhNC10LnRgdGC0Y3QuSDRhdC+0LvQsdC+0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INGI0LDQsNGA0LTQu9Cw0LPQsNCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludm9rZUNhcnJpZXJTZXR1cCIgbXNnaWQ9IjM2OTk2MDA4MzM5NzUxMTc0NzgiPiLSr9Kv0YDRjdC9INC60L7QvNC/0LDQvdC40LnQvSDQvdC40LnQu9Kv0q/Qu9GB0Y3QvSDRgtC+0YXQuNGA0YPRg9C70LPRi9C9INCw0L/Qvy3QsyDTqdC006nTqdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW52b2tlQ2FycmllclNldHVwIiBtc2dpZD0iNDE1OTU0OTE1MjUyOTExMTkyMCI+ItCt0LfRjdC80YjQuNCz0YfQuNC0INKv0q/RgNGN0L0g0LrQvtC80L/QsNC90LjQudC9INC90LjQudC70q/Sr9C70YHRjdC9INGC0L7RhdC40YDRg9GD0LvQsNGFINCw0L/Qvy3QsyDTqdC006nTqdGFINCx0L7Qu9C+0LzQtiDQvtC70LPQvtC90L4uINCt0L3Qs9C40LnQvSDQsNC/0L8t0YPRg9C00LDQtCDRhdGN0LfRjdGNINGHINCw0YjQuNCz0LvQsNCz0LTQsNGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI4MjA2MDc3NDQ3ODM4OTA5NTE2Ij4i0KHSr9C70LbRjdGN0L3QuNC5INCx0LDQudC00LvRi9C9INGC0LDQu9Cw0LDRgCDQsNC20LjQs9C70LDQu9GC0YPRg9C00YvQsyDRhdKv0LvRjdGN0L0g0LDQstCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOZXR3b3JrQ29uZGl0aW9ucyIgbXNnaWQ9IjY4OTkxMDIwNzU4MjUyNzIyMTEiPiLQkNC/0L/Qu9C40LrQtdGI0L3QtCDRgdKv0LvQttGN0Y3QvdC40Lkg0LHQsNC50LTQu9GL0L0g0YLQsNC70LDQsNGAINCw0LbQuNCz0LvQsNC70YLRg9GD0LTRi9CzINGF0q/Qu9GN0Y3QvSDQsNCy0LDRhdGL0LMg0LfTqdCy0YjTqdOp0YDQvdOpLiDQrdC90LPQuNC50L0g0LDQv9C/LdGD0YPQtNCw0LQg0YXRjdC30Y3RjSDRhyDQsNGI0LjQs9C70LDQs9C00LDRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfbGltaXRQYXNzd29yZCIgbXNnaWQ9IjQ0OTc0MjA3Mjg4NTc1ODU3OTEiPiLQndGD0YPRhiDSr9Cz0L3QuNC5INC00q/RgNC80LjQudCzINGC0L7RhdC40YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19saW1pdFBhc3N3b3JkIiBtc2dpZD0iMzI1MjExNDIwMzkxOTUxMDM5NCI+ItCU0Y3Qu9Cz0Y3RhiDRgtKv0LPQttC40YUg0L3Rg9GD0YYg0q/Qs9GN0L3QtCDQt9Op0LLRiNOp06nRgNOp0LPQtNGB06nQvSDRgtGN0LzQtNGN0LPRgiDQsdC+0LvQvtC9INGD0YDRgtGL0LMg0YPQtNC40YDQtNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfd2F0Y2hMb2dpbiIgbXNnaWQ9IjkxNDEzMDY0Njk0MjE5OTUwMyI+ItCU0Y3Qu9Cz0Y3RhiDRgtCw0LnQu9Cw0YUg0L7RgNC+0LvQtNC70L7Qs9GL0LMg0YXRj9C90LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2F0Y2hMb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzIxNTcyOTI5NDIxNTA3MDA3MiI+ItCU0Y3Qu9Cz0Y3RhiDRgtKv0LPQttC40LPQtNGB0Y3QvSDSr9C10LQg0L3Rg9GD0YYg0q/QsyDQsdGD0YDRg9GDINC+0YDRg9GD0LvQsNC70YLRi9C9INGC0L7QvtCzINGF0Y/QvdCw0YUg0LHQsCDRhdGN0YDRjdCyINGF0Y3RgiDQvtC70L7QvSDRg9C00LDQsCDQvdGD0YPRhiDSr9Cz0LjQudCzINCx0YPRgNGD0YMg0L7RgNGD0YPQu9Cx0LDQuyDRgtCw0LHQu9C10YLRi9CzINGC0q/Qs9C20LjRhSDQsdC+0LvQvtC9INGC0LDQsdC70LXRgtGL0L0g0LHSr9GFINC00LDRgtCw0LMg0LDRgNC40LvQs9Cw0L3QsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2F0Y2hMb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MTIzMjMwOTE4NDY3NjEwNzMiPiLQlNGN0LvQs9GN0YYg0YLSr9Cz0LbQuNCz0LTRgdGN0L0g0q/QtdC0INC90YPRg9GGINKv0LMg0LHRg9GA0YPRgyDQvtGA0YPRg9C70LDQu9GC0YvQvSDRgtC+0L7QsyDRhdGP0L3QsNGFLCDQsdCwINGF0Y3RgNGN0LIg0YXRjdGCINC+0LvQvtC9INGD0LTQsNCwINC90YPRg9GGINKv0LPQuNC50LMg0LHRg9GA0YPRgyDQvtGA0YPRg9C70LHQsNC7INGD0YLRgdGL0LMg0YLSr9Cz0LbQuNGFINCx0L7Qu9C+0L0g0YPRgtCw0YHQvdGLINCx0q/RhSDQtNCw0YLQsNCzINCw0YDQuNC70LPQsNC90LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfcmVzZXRQYXNzd29yZCIgbXNnaWQ9IjI2MjAwNzcxOTEyNDI2ODg5NTUiPiLQlNGN0LvQs9GN0YYg0YLSr9Cz0LbQuNGFINC90YPRg9GGINKv0LPQuNC50LMg0YHQvtC70LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfcmVzZXRQYXNzd29yZCIgbXNnaWQ9IjYwNTk2Mzk2MjMwMTkwNDQ1OCI+ItCU0Y3Qu9Cz0Y3RhiDRgtKv0LPQttC40YUg0L3Rg9GD0YYg0q/Qs9C40LnQsyDRgdC+0LvQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2ZvcmNlTG9jayIgbXNnaWQ9IjIyNzQwODUzODQ3MDQyNDg0MzEiPiLQlNGN0LvQs9GN0YYg0YLSr9Cz0LbQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19mb3JjZUxvY2siIG1zZ2lkPSIxMTQxNzk3NTg4NDAzODI3MTM4Ij4i0JTRjdC70LPRjdGGINGF0Y3Qt9GN0Y0g0Y/QsNC2INGC0q/Qs9C20LjRhdC40LnQsyDRg9C00LjRgNC00LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl93aXBlRGF0YSIgbXNnaWQ9IjM5MTA1NDU0NDY3NTg2Mzk3MTMiPiLQkdKv0YUg0LTQsNGC0LDQsyDQsNGA0LjQu9Cz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2lwZURhdGEiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQzMDYxODQwOTYwNjc3NTY4NzYiPiLSrtC50LvQtNCy0Y3RgNC40LnQvSDQtNCw0YLQsCDRg9GC0LPRi9CzINOp0LPRgdOp0L3TqdOp0YAg0YLQsNCx0LvQtdGC0YvQvSDQtNCw0YLQsCDRiNGD0YPQtCDQsNGA0LjQu9Cz0LDQs9C00LDQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2lwZURhdGEiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MDk2ODk1NjA0NTc0MTg4MzkxIj4i0q7QudC70LTQstGN0YDQuNC50L0g0LTQsNGC0LAg0YPRgtCz0YvQsyDTqdCz0YHTqdC906nTqdGAINGD0YLQsNGB0L3RiyDQtNCw0YLQsCDRiNGD0YPQtCDQsNGA0LjQu9Cz0LDQs9C00LDQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9zZXRHbG9iYWxQcm94eSIgbXNnaWQ9IjI3ODQ4MjgyOTM3NDc3OTE0NDYiPiLQotOp0YXTqdGA06nTqdC80LbQuNC50L0g0LPQu9C+0LHQsNC7INC/0YDQvtC60YHQuNCzINGC0L7RhdC40YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19zZXRHbG9iYWxQcm94eSIgbXNnaWQ9IjYzODc0OTc0NjY2NjAxNTQ5MzEiPiLQkdC+0LTQu9C+0LPQviDQuNC00Y3QstGF0YLRjdC5INKv0LXQtCDRgtOp0YXTqdOp0YDTqdC80LbQuNC50L0g0LPQu9C+0LHQsNC7INC/0YDQvtC60YHQuNCzINCw0YjQuNCz0LvQsNGF0LDQsNGAINGC0L7RhdC40YDRg9GD0LvRgdCw0L0uINCX06nQstGF06nQvSDRjdGF0L3QuNC5INGC06nRhdOp06nRgNOp0LzQttC40LnQvSDQsNC00LzQuNC9INC7INKv0YAg0LTSr9C90YLRjdC5INCz0LvQvtCx0LDQuyDQv9GA0L7QutGB0LjQsyDRgtC+0YXQuNGA0YPRg9C70L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZXhwaXJlUGFzc3dvcmQiIG1zZ2lkPSI4ODUyNzkxNTE4NDcyNTQwNTYiPiLQlNGN0LvQs9GN0YYg0YLSr9Cz0LbQuNGFINC90YPRg9GGINKv0LPQvdC40Lkg0YXSr9GH0LjQvdGC0Y3QuSDRhdGD0LPQsNGG0LDQsNCzINGC0L7RhdC40YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19leHBpcmVQYXNzd29yZCIgbXNnaWQ9IjE3Mjk3MjUyMjYzMTQ2OTE1OTEiPiLQlNGN0LvQs9GN0YbQvdC40Lkg0YLSr9Cz0LbQuNGFINC90YPRg9GGINKv0LMg0YXRjdGAINC00LDQstGC0LDQvNC20YLQsNC5INGB0L7Qu9C40LPQtNC+0YXRi9CzINGD0LTQuNGA0LTQsNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9lbmNyeXB0ZWRTdG9yYWdlIiBtc2dpZD0iODkwMTMyNjE5OTkwOTEzMjkxNSI+ItCh0LDQvdCz0LjQudC9INGI0LjRhNGA0LvRjdGF0LjQudCzINGC0L7RhdC40YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19lbmNyeXB0ZWRTdG9yYWdlIiBtc2dpZD0iMjYzNzczMjExNTMyNTMxNjk5MiI+ItCl0LDQtNCz0LDQu9Cw0LPQtNGB0LDQvSDQsNC/0L8g0LTQsNGC0LAg0YjQuNGE0YDQu9GN0LPQtNGN0YUg0YjQsNCw0YDQtNC70LDQs9Cw0YLQsNC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2Rpc2FibGVDYW1lcmEiIG1zZ2lkPSI2Mzk1MzAxMDIzMTUyMjk3ODI2Ij4i0JrQsNC80LXRgCDQuNC00Y3QstGF0LPSr9C5INCx0L7Qu9Cz0L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUNhbWVyYSIgbXNnaWQ9IjIzMDYzNDkwNDI4MzQ3NTQ1OTciPiLQotOp0YXTqdOp0YDTqdC80LbQuNC50L0g0LHSr9GFINC60LDQvNC10YDQuNC50LMg0LDRiNC40LPQu9Cw0YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2Rpc2FibGVLZXlndWFyZEZlYXR1cmVzIiBtc2dpZD0iMjY2MzI5MTA0NTQyNjM4ODAyIj4i0KLSr9C70YXSr9Kv0YAg0YXQsNC80LPQsNCw0LvRgtGL0L0g0YTRg9C90LrRhtC40LnQsyDRg9C90YLRgNCw0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIzNDY3MDgyMjcyMTg2NTM0NjE0Ij4i0KLSr9C70YXSr9Kv0YAg0YXQsNC80LPQsNCw0LvQsNC70YLRi9C9INC30LDRgNC40Lwg0YTRg9C90LrRhtC40LnQsyDQsNGI0LjQs9C70LDRhdGL0LMg0YXQvtGA0LjQs9C70L7RhS4iPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGhvbmVUeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijg5MDEwOTgzMzY2NTg3MTAzNTkiPiLQk9GN0YDQuNC50L0iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI4Njk5MjM2NTA1MjcxMzY2MTUiPiLQnNC+0LHQsNC50LsiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3ODk3NTQ0NjU0MjQyODc0NTQzIj4i0JDQttC70YvQvSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjExMDM2MDE0MzMzODIxNTgxNTUiPiLQkNC20LvRi9C9INGE0LDQutGBIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTczNTE3NzE0NDk0ODMyOTM3MCI+ItCT0Y3RgNC40LnQvSDQpNCw0LrRgSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjYwMzg3ODY3NDQ3NzIwNzM5NCI+ItCf0Y3QudC20LXRgCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjE2NTA4MjQyNzUxNzc5MzE2MzciPiLQkdGD0YHQsNC0IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iOTE5MjUxNDgwNjk3NTg5ODk2MSI+ItCi0YPRgdCz0LDQuSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImVtYWlsQWRkcmVzc1R5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iODA3Mzk5NDM1Mjk1NjEyOTEyNyI+ItCT0Y3RgNC40LnQvSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjcwODQyMzczNTY2MDI2MjU2MDQiPiLQkNC20LvRi9C9IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTExMjA0NDQxMDY1OTAxMTAyMyI+ItCR0YPRgdCw0LQiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyMzc0OTEzOTUyODcwMTEwNjE4Ij4i0KLRg9GB0LPQsNC5IjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icG9zdGFsQWRkcmVzc1R5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iNjg4MDI1NzYyNjc0MDA0NzI4NiI+ItCT0Y3RgNC40LnQvSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjU2MjkxNTM5NTYwNDUxMDkyNTEiPiLQkNC20LvRi9C9IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNDk2NjYwNDI2NDUwMDM0MzQ2OSI+ItCR0YPRgdCw0LQiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0OTMyNjgyODQ3NTk1Mjk5MzY5Ij4i0KLRg9GB0LPQsNC5IjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iaW1BZGRyZXNzVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSIxNzM4NTg1MTk0NjAxNDc2Njk0Ij4i0JPRjdGA0LjQudC9IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTM1OTY0NDU2NTY0NzM4MzcwOCI+ItCQ0LbQu9GL0L0iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3ODY4NTQ5NDAxMDUzNjE1Njc3Ij4i0JHRg9GB0LDQtCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxNDUxMTg5NDQ2Mzk4Njk4MDkiPiLQotGD0YHQs9Cw0LkiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmdhbml6YXRpb25UeXBlcyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc1NDYzMzU2MTIxODkxMTU2MTUiPiLQkNC20LvRi9C9IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNDM3ODA3NDEyOTA0OTUyMDM3MyI+ItCR0YPRgdCw0LQiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzNDU1MDQ3NDY4NTgzOTY1MTA0Ij4i0KLRg9GB0LPQsNC5IjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iaW1Qcm90b2NvbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI4NTk1MjYxMzYzNTE4NDU5NTY1Ij4iQUlNIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzM5MDQ3MzYyODI3NTQ5MDcwMCI+IldpbmRvd3MgTGl2ZSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9Ijc4ODI4NzcxMzQ5MzE0NTgyMTciPiJZYWhvbyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjUwMzUzNzYzMTMyMDA1ODUyNDIiPiJTa3lwZSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9Ijc1MzIzNjMxNzg0NTk0NDQ5NDMiPiJRUSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjM3MTM0NDEwMzQyOTk2NjA3NDkiPiJHb29nbGUgVGFsayI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI1MDY4NTczMTI3MTg2MzA4MjMiPiJJQ1EiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxNjQ4Nzk3OTAzNzg1Mjc5MzUzIj4iSmFiYmVyIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVDdXN0b20iIG1zZ2lkPSIxNjQ0NzM4MDU5MDUzMzU1ODIwIj4i0KLRg9GB0LPQsNC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlSG9tZSIgbXNnaWQ9IjI1NzA5MjM0NjMwMzM5ODU4ODciPiLQk9GN0YDQuNC50L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVNb2JpbGUiIG1zZ2lkPSI2NTAxNDYzNTU3NzU0NzUxMDM3Ij4i0JzQvtCx0LDQudC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlV29yayIgbXNnaWQ9Ijg4NjM5Mzk2NjcwNTk5MTE2MzMiPiLQkNC20LvRi9C9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlRmF4V29yayIgbXNnaWQ9IjM1MTc3OTIxNjAwMDg4OTA5MTIiPiLQkNC20LvRi9C9INGE0LDQutGBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlRmF4SG9tZSIgbXNnaWQ9IjIwNjcyNjU5NzIzMjI5NzE0NjciPiLQk9GN0YDQuNC50L0g0KTQsNC60YEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVQYWdlciIgbXNnaWQ9Ijc1ODIzNTk5NTUzOTQ5MjE3MzIiPiLQn9GN0LnQttC10YAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVPdGhlciIgbXNnaWQ9IjE1NDQ0MjU4NDc4Njg3NjU5OTAiPiLQkdGD0YHQsNC0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlQ2FsbGJhY2siIG1zZ2lkPSIyNzEyMTc1MjAzMDY1Njc4MjA2Ij4i0JHRg9GG0LDQtiDRhdC+0LvQsdC+0L4g0LHQsNGA0LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNhciIgbXNnaWQ9Ijg3MzgzNjA2ODk2MTY3MTY5ODIiPiLQnNCw0YjQuNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlQ29tcGFueU1haW4iIG1zZ2lkPSI1NDA0MzQzNTY0NjE0Nzg5MTYiPiLQkdCw0LnQs9GD0YPQu9C70LDQs9GL0L0g0q/QvdC00YHRjdC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlSXNkbiIgbXNnaWQ9IjgwMjI0NTMxOTMxNzEzNzAzMzciPiJJU0ROIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlTWFpbiIgbXNnaWQ9IjY3NjYxMzcwMTA2MjgzMjY5MTYiPiLSrtC90LTRgdGN0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVPdGhlckZheCIgbXNnaWQ9Ijg1ODc2NTcxNDUwNzI0NDY1NjUiPiLQkdGD0YHQsNC0INGE0LDQutGBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlUmFkaW8iIG1zZ2lkPSI0MDkzNzM4MDc5OTA4NjY3NTEzIj4i0KDQsNC00LjQviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVRlbGV4IiBtc2dpZD0iMzM2Nzg3OTk1MjQ3NjI1MDUxMiI+IlTQtdC70LXQutGBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlVHR5VGRkIiBtc2dpZD0iODYwNjUxNDM3ODU4NTAwMDA0NCI+IlRUWSBUREQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVXb3JrTW9iaWxlIiBtc2dpZD0iMTMxMTQyNjk4OTE4NDA2NTcwOSI+ItCQ0LbQu9GL0L0g0YPRgtCw0YEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVXb3JrUGFnZXIiIG1zZ2lkPSI2NDk5Mzg3MzEyMzExNTcwNTYiPiLQkNC20LvRi9C9INC/0LXQudC20LXRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUFzc2lzdGFudCIgbXNnaWQ9IjU1OTY3NzI2MzYxMjg1NjI4ODQiPiLQotGD0YHQu9Cw0LPRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU1tcyIgbXNnaWQ9IjcyNTQ0OTIyNzU1MDI3Njg5OTIiPiJNTVMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVDdXN0b20iIG1zZ2lkPSI3ODM3NTg2MTk4NDU4MDczNDA0Ij4i0KLRg9GB0LPQsNC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXZlbnRUeXBlQmlydGhkYXkiIG1zZ2lkPSIyODEzMzc5ODQ0MjExMzkwNzQwIj4i0KLTqdGA0YHTqdC9INC+0LPQvdC+0L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVBbm5pdmVyc2FyeSIgbXNnaWQ9IjM4NzY3Nzk3NDQ1MTgyODQwMDAiPiLQotKv0q/RhdGN0L0g0L7QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZU90aGVyIiBtc2dpZD0iNzM4ODE3ODkzOTAxMDE0MzA3NyI+ItCR0YPRgdCw0LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVDdXN0b20iIG1zZ2lkPSI4NTI1OTYwMjU3ODA0MjEzODQ2Ij4i0KLRg9GB0LPQsNC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlSG9tZSIgbXNnaWQ9IjQ0OTIyNzIzNjE0MDQzMzkxOSI+ItCT0Y3RgNC40LnQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZVdvcmsiIG1zZ2lkPSIzNTQ4MDU4MDU5NjAxMTQ5OTczIj4i0JDQttC70YvQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZU90aGVyIiBtc2dpZD0iMjkyMzAwODY5NTI3MjYzOTU0OSI+ItCR0YPRgdCw0LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVNb2JpbGUiIG1zZ2lkPSIxMTk5MTkwMDUzMjExNjYyMDUiPiLQnNC+0LHQsNC50LsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3N0YWxUeXBlQ3VzdG9tIiBtc2dpZD0iODkwMzIwNjkwMzA2MDQ3OTkwMiI+ItCi0YPRgdCz0LDQuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVIb21lIiBtc2dpZD0iODE2NTc1Njk3NzE4NDQ4MzA5NyI+ItCT0Y3RgNC40LnQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVXb3JrIiBtc2dpZD0iNTI2ODE3Mjc3MjM4NzY5NDQ5NSI+ItCQ0LbQu9GL0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3N0YWxUeXBlT3RoZXIiIG1zZ2lkPSIyNzI2MTExOTY2NjIzNTg0MzQxIj4i0JHRg9GB0LDQtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZUN1c3RvbSIgbXNnaWQ9IjIwNzQwMjg3NTU1Mjc4MjYwNDYiPiLQotGD0YHQs9Cw0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVR5cGVIb21lIiBtc2dpZD0iNjI0MTE4MTAzMjk1NDI2Mzg5MiI+ItCT0Y3RgNC40LnQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZVdvcmsiIG1zZ2lkPSIxMzcxNDg5MjkwMjQyNDMzMDkwIj4i0JDQttC70YvQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZU90aGVyIiBtc2dpZD0iNTM3NzAwNzQ5NTczNTkxNTQ3OCI+ItCR0YPRgdCw0LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sQ3VzdG9tIiBtc2dpZD0iNjkxOTQ1MzgzNjYxODc0OTk5MiI+ItCi0YPRgdCz0LDQuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xBaW0iIG1zZ2lkPSI3MDUwMzYwNjEyMzY4MzgzNDE3Ij4iQUlNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE1zbiIgbXNnaWQ9IjE0NDU1NjU0NTQyMDc2OTQ0MiI+IldpbmRvd3MgTGl2ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xZYWhvbyIgbXNnaWQ9IjgyNzE0Mzk0MDg0NjkwMjEyNzMiPiJZYWhvbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xTa3lwZSIgbXNnaWQ9IjkwMTkyOTY3NDQ2MjI4MzI5NTEiPiJTa3lwZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xRcSIgbXNnaWQ9Ijg4ODc0ODQzNzk0OTQxMTE4ODQiPiJRUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xHb29nbGVUYWxrIiBtc2dpZD0iNDkzOTAyMzIxMTQwMjc3MzA0Ij4i0KbRg9Cz0LvQsNGA0LDQu9GCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbEljcSIgbXNnaWQ9IjE1NzQ4NzA0MzM2MDY1MTczMTUiPiJJQ1EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sSmFiYmVyIiBtc2dpZD0iMjI3OTkxNzYzMDg3NTc3MTcyMiI+IkphYmJlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xOZXRNZWV0aW5nIiBtc2dpZD0iODI4NzYyNTY1NTk4NjgyNzk3MSI+Ik5ldE1lZXRpbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdUeXBlV29yayIgbXNnaWQ9IjI5MjY4ODcwNTA1MzYzODcyIj4i0JDQttC70YvQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ1R5cGVPdGhlciIgbXNnaWQ9IjM5NTE3ODExMzE1NzAxMjQwODIiPiLQkdGD0YHQsNC0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnVHlwZUN1c3RvbSIgbXNnaWQ9IjIyNTUyMzQxNTM3MjA4ODMyMiI+ItCi0YPRgdCz0LDQuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUN1c3RvbSIgbXNnaWQ9IjM1NDI0MDM2Nzk4MjcyOTczMDAiPiLQotGD0YHQs9Cw0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVBc3Npc3RhbnQiIG1zZ2lkPSI2Mjc0MzM0ODI1MTk1Mzc5MDc2Ij4i0KLRg9GB0LvQsNCz0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVCcm90aGVyIiBtc2dpZD0iODc1NzkxMzUwNjc4NDA2NzcxMyI+ItCQ0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVDaGlsZCIgbXNnaWQ9IjE4OTA3NDYyNzcyNzY4ODE2MjYiPiLQpdKv0q/RhdGN0LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVEb21lc3RpY1BhcnRuZXIiIG1zZ2lkPSI2OTA0ODA3MTEyMTIxMTIyMTMzIj4i0JTQvtGC0L7QvtC0INCi0q/QvdGIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlRmF0aGVyIiBtc2dpZD0iNTIyODAzNDY4NzA4MjA1MDcyNSI+ItCt0YbRjdCzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlRnJpZW5kIiBtc2dpZD0iNzMxMzEwNjc2MjQ4MzM5MTI2MiI+ItCd0LDQudC3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlTWFuYWdlciIgbXNnaWQ9IjYzNjU2Nzc4NjE2MTAxMzc4OTUiPiLQnNC10L3QtdC20LXRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZU1vdGhlciIgbXNnaWQ9IjQ1Nzg1NzEzNTI5NjI3NTgzMDQiPiLQrdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUGFyZW50IiBtc2dpZD0iNDc1NTYzNTU2NzU2MjkyNTIyNiI+ItCt0YbRjdCzINGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVQYXJ0bmVyIiBtc2dpZD0iNzI2NjQ5MDI4NTEyMDI2Mjc4MSI+ItCi0q/QvdGIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUmVmZXJyZWRCeSIgbXNnaWQ9IjEwMTU3MzA1OTg0NDEzNTUyNCI+ItCU0YPRgNC00LDQs9C00YHQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUmVsYXRpdmUiIG1zZ2lkPSIxNzk5ODE5OTMwMDg1NjEwMjcxIj4i0KXQsNC80LDQsNGC0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVNpc3RlciIgbXNnaWQ9IjE3MzU5ODM1NTQ0NzkwNzY0ODEiPiLQrdCz0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVTcG91c2UiIG1zZ2lkPSIzOTQxMzY5Mzk0Mjg2OTgxMTciPiLQpdCw0L3RjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlQ3VzdG9tIiBtc2dpZD0iMjQ3MzU4MDU5MzExMTU5MDk0NSI+ItCi0YPRgdCz0LDQuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlSG9tZSIgbXNnaWQ9IjYwOTM1OTgxODEwNjkzNTkyOTUiPiLQk9GN0YDQuNC50L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZVdvcmsiIG1zZ2lkPSI2OTIwNzI1NzMwNzk3MDk5MDQ3Ij4i0JDQttC70YvQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlT3RoZXIiIG1zZ2lkPSI0NDA4NDM2MTYyOTUwMTE5ODQ5Ij4i0JHRg9GB0LDQtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IlBJTiDQutC+0LTRi9CzINCx0LjRh9C90Y0g0q/SryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IlBVSy3QsyDQsdC40YfRjdGN0LQg0YjQuNC90Y0gUElOINC60L7QtCDQvtGA0YPRg9C70L3QsCDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsg0LrQvtC0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLQqNC40L3RjSBQSU4g0LrQvtC0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4i0J3Rg9GD0YYg0q/QsyDQsdC40YfQuNGFINCx0L7QuyDRhdKv0YDQvdGNINKv0q8iPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLQotCw0LnQu9Cw0YUg0L3Rg9GD0YYg0q/Qs9C40LnQsyDQsdC40YfQvdGNINKv0q8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLQotCw0LnQu9Cw0YUgUElOLdCzINC+0YDRg9GD0LvQvdCwINGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLQkdGD0YDRg9GDIFBJTiDQutC+0LQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+ItCi0LDQudC70LDRhSDQsdC+0Lsg0KbRjdGB0LjQudCzINC00LDRgNCw0LDQtCAwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtZXJnZW5jeV9jYWxsX2RpYWxvZ19udW1iZXJfZm9yX2Rpc3BsYXkiIG1zZ2lkPSI2OTYxOTIxMDMxOTUwOTA5NzAiPiLQr9Cw0YDQsNC70YLQsNC5INC00YPQs9Cw0LDRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fY2Fycmllcl9kZWZhdWx0IiBtc2dpZD0iODk2MzgzOTI0MjU2NTY1MzE5MiI+ItKu0LnQu9GH0LjQu9Cz0Y3RjSDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NjcmVlbl9sb2NrZWQiIG1zZ2lkPSI3Mjg4NDQzMDc0ODA2ODMyOTA0Ij4i0JTRjdC70LPRjdGGINGC0q/Qs9C20LjQs9C00YHRjdC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5faW5zdHJ1Y3Rpb25zX3doZW5fcGF0dGVybl9lbmFibGVkIiBtc2dpZD0iNDYxNTQwNTE2MTQxMjYwNDkiPiLQr9Cw0YDQsNC70YLQsNC5INC00YPRg9C00LvQsNCz0LAg0YXQuNC50YUg0LHRg9GO0YMg0Y3RgdCy0Y3QuyDRgtKv0LPQttGN0Y3QsyDRgtCw0LnQu9Cw0YUg0LHQvtC7INGG0Y3RgdC40LnQsyDQtNCw0YDQvdCwINGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iNjg2MjYwMDI4Nzk3MTU4MzY0Ij4i0KLQsNC50LvQsNGFINCx0L7QuyDRhtGN0YHQuNC50LMg0LTQsNGA0L3QsCDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI3NDc4NzAzMjU0OTY0ODEwMzAyIj4i0KLQsNC50LvQsNGFINGF0Y3RjdCz0Y3RjSDQt9GD0YDQvdCwINGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2VtZXJnZW5jeV9jYWxsIiBtc2dpZD0iNTM0NzYzMzc4NDQwMTI4NTIyNSI+ItCv0LDRgNCw0LvRgtCw0Lkg0LTRg9GD0LTQu9Cw0LPQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcmV0dXJuX3RvX2NhbGwiIG1zZ2lkPSI1MjQ0MjU5Nzg1NTAwMDQwMDIxIj4i0JTRg9GD0LTQu9Cw0LPQsNGA0YPRgyDQsdGD0YbQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX2NvcnJlY3QiIG1zZ2lkPSI5MDM5MDA4NjUwMzYyMjYxMjM3Ij4i0JfTqdCyISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGF0dGVybl93cm9uZyIgbXNnaWQ9IjQzMTc5NTUwMTQ5NDgxMDg3OTQiPiLQlNCw0YXQuNC9INC+0YDQvtC70LTQvtGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXNzd29yZF93cm9uZyIgbXNnaWQ9IjU3Mzc4MTUzOTMyNTMxNjUzMDEiPiLQlNCw0YXQuNC9INC+0YDQvtC70LTQvtGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjZXVubG9ja19tdWx0aXBsZV9mYWlsdXJlcyIgbXNnaWQ9Ijc1NDEzNzU4MzAyMjc5MjQyOSI+ItCd0q/Sr9GA0Y3RjdGAINGC0q/Qs9C20Y3RjSDRgtCw0LnQu9Cw0YUg0L7RgNC+0LvQtNC70L7Qs9GL0L0g0YLQvtC+INC00Y3RjdC0INGF0Y3QvNC20Y3RjdC90Y3RjdGBINGF0Y3RgtGN0YDRgdGN0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BsdWdnZWRfaW4iIG1zZ2lkPSI4MDU3NzYyODI4MzU1NTcyMzE1Ij4i0KbRjdC90Y3Qs9C70Y3QtiDQsdCw0LnQvdCwLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9jaGFyZ2VkIiBtc2dpZD0iMzIxNjM1NzQ1Njg0MDYwNjI0Ij4i0KbRjdC90Y3Qs9C70Y3Qs9C00Y3QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYmF0dGVyeV9zaG9ydCIgbXNnaWQ9IjQ0NzcyNjQ4NDkzODY4NTAyNjYiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9sb3dfYmF0dGVyeSIgbXNnaWQ9IjE0ODI4NzM5ODE5MTkyNDk3NDAiPiLQptGN0L3RjdCz0LvRjdCz0YfRjdGNINGF0L7Qu9Cx0L7QvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNTA5OTQzOTI3NzgxOTIxNTM5OSI+IlNJTSDQutCw0YDRgiDQsdCw0LnRhdCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUxNjU5MTk2MDk1NzkxNDc0Ij4i0KLQsNCx0LvQtdGCIFNJTSDQutCw0YDRgtCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMTg2OTIwNTg1Njk1MTY5MDc4Ij4i0KPRgtGB0LDQvdC0IFNJTSDQutCw0YDRgiDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUzNzI3ODcxMzgwMjMyNzI2MTUiPiJTSU0g0LrQsNGA0YLRi9CzINC+0YDRg9GD0LvQvdCwINGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjM1MjY1NzMwOTkwMTkzMTk0NzIiPiJTSU0g0LrQsNGA0YIg0LHQsNC50YXQs9Kv0Lkg0Y3RgdCy0Y3QuyDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttCz0q/QuS4gU0lNINC60LDRgNGCINC+0YDRg9GD0LvQvdCwINGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI1MDk2MTQ5NjY1MTM4OTE2MTg0Ij4i0JDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC20LPSr9C5IFNJTSDQutCw0YDRgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iOTEwOTA0NjQzNDMzMTUxMzcxIj4i0KLQsNC90YsgU0lNINC60LDRgNGCINCx0q/RgNC806nRgdOp0L0g0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQvtCyLlxuINOo06nRgCBTSU0g0LrQsNGA0YIg0LDQstCw0YUg0LHQvtC7INOp06nRgNC40LnQvSDRg9GC0LDRgdCz0q/QuSDSr9C50LvRh9C40LvQs9GN0Y3QvdC40Lkg0L3QuNC50LvSr9Kv0LvRjdCz0YfRgtGN0Lkg0YXQvtC70LHQvtCz0LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjAxNTk0OTA1MTUyNzQ2ODg2Ij4i06jQvNC906nRhSDQsdC40YfQu9GN0LMg0YLQvtCy0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjA4OTI5NzY1MDQ4MTI5MjM2MyI+ItCU0LDRgNCw0LDQs9C40LnQvSDQsdC40YfQu9GN0LMg0YLQvtCy0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTkwODg3ODY3ODAxMjgwMDEiPiLQotKv0YAg0LfQvtCz0YHQvtC+0YUg0YLQvtCy0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTg4ODQyMjkzODM1MTAxOTQyNiI+ItCi0L7Qs9C70YPRg9C70LDRhSDRgtC+0LLRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTYyMzE4Mzc4NzY2OTg3NjAxIj4i0JfQvtCz0YHQvtC+0YUg0YLQvtCy0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWVyZ2VuY3lfY2FsbHNfb25seSIgbXNnaWQ9IjY3MzM5NzgzMDQzODYzNjU0MDciPiLQl9Op0LLRhdOp0L0g0Y/QsNGA0LDQu9GC0LDQuSDQtNGD0YPQtNC70LDQs9CwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9uZXR3b3JrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMTQzMzg5MjI0OTg2MDI4NTAxIj4i0KHSr9C70LbRjdGNINGC0q/Qs9C20LjQs9C00YHRjdC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNzQ0MTc5NzMzOTk3NjIzMCI+IlNJTSDQutCw0YDRgiDQvdGMIFBVSyDRgtKv0LPQttGN0Y3RgtGN0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI4MTI3OTE2MjU1MjQ1MTgxMDYzIj4i0KXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC30LDQsNCy0YDRi9CzINGF0LDRgNCw0YUg0Y3RgdCy0Y3QuyDQpdGN0YDRjdCz0LvRjdCz0YfQtNGN0LQg0KLRg9GB0LvQsNGFINGC06nQstGC0Y3QuSDRhdC+0LvQsdC+0L4g0LHQsNGA0LjQvdCwINGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI4MDY2NjYwMTI5MjA2MDAxMDM5Ij4iU0lNINC60LDRgNGCINGC0q/Qs9C20LjQs9C00YHRjdC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjU5NTMyMzIxNDA1Mjg4MTI2NCI+IlNJTSDQutCw0YDRgtC90Ysg0YLSr9Cz0LbRjdGN0LMg0LPQsNGA0LPQsNC2INCx0LDQudC90LDigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjY0ODE2MjM4MzAzNDQxMDcyMjIiPiLQotCwINGC0LDQudC70LDRhSDRhdGN0Y3QsyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINC30YPRgNC70LDQsC4gXG5cbjx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INGB0LXQutGD0L3QtNGL0L0g0LTQsNGA0LDQsCDQtNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjI3MjU5NzMyODYyMzkzNDQ1NTUiPiLQotCwINC90YPRg9GGINKv0LPRjdGNIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0LHQuNGH0LjQsi4gXG5cbjx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INGB0LXQutGD0L3QtNGL0L0g0LTQsNGA0LDQsCDQtNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI2MjE2NjcyNzA2NTQ1Njk2OTU1Ij4i0KLQsCBQSU4g0LrQvtC00L7QviA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINCx0LjRh9C40LIuIFxuXG48eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDRgdC10LrRg9C90LTRi9C9INC00LDRgNCw0LAg0LTQsNGF0LjQvSDQvtGA0L7Qu9C00L7QvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iOTE5MTYxMTk4NDYyNTQ2MDgyMCI+ItCi0LAg0YLQsNC50LvQsNGFINGF0Y3RjdCzIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0LfRg9GA0LvQsNCwLiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQtNCw0YXQuNC9INCx0YPRgNGD0YMg0L7RgNGD0YPQu9Cx0LDQuywg0YLQsCDRgtCw0LHQu9C10YLQsNCwINGC0LDQudC70LDRhdGL0L0g0YLRg9C70LQgR29vZ2xlINC90Y3QstGC0YDRjdC70YLRjdGNINCw0YjQuNCz0LvQsNGFINGI0LDQsNGA0LTQu9Cw0LPQsNGC0LDQuSDQsdC+0LvQvdC+LlxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g0YHQtdC60YPQvdC00YvQvSDQtNCw0YDQsNCwINC00LDRhdC40L0g0L7RgNC+0LvQtNC+0L3QviDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNTkwMjI3NTU5NzYzNzYyNzUxIj4i0KLQsCDRgtCw0LnQu9Cw0YUg0YXRjdGN0LMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g0YPQtNCw0LAg0LHRg9GA0YPRgyDQt9GD0YDQu9Cw0LAuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINC00LDRhdC40L0g0LHRg9GA0YPRgyDQvtGA0L7Qu9C00LLQvtC7LCDRgtCwINGC0LDQsdC70LXRgtCw0LAg0YLQsNC50LvQsNGF0YvQvSDRgtGD0LvQtCBHb29nbGUg0L3RjdCy0YLRgNGN0LvRgtGN0Y0g0LDRiNC40LPQu9Cw0YUg0YjQsNCw0YDQtNC70LDQs9Cw0YLQsNC5INCx0L7Qu9C90L4uXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDRgdC10LrRg9C90LTRi9C9INC00LDRgNCw0LAg0LTQsNGF0LjQvSDQvtGA0L7Qu9C00L7QvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjYxMjgxMDYzOTk3NDU3NTU2MDQiPiLQotCwINGC0LDQsdC70LXRgtGL0LMg0YLQsNC50LvQsNGFINCz0Y3QtiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINC+0YDQvtC70LTQu9C+0L4uIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINC00LDRhdC40L0g0LHRg9GA0YPRgyDQvtGA0L7Qu9C00LLQvtC7INGC0LDQsdC70LXRgiDSr9C50LvQtNCy0Y3RgNC40LnQvSDSr9C90LTRgdGN0L0g0YPRgtCz0LDQsNGA0LDQsCDRgtC+0YXQuNGA0YPRg9C70LDQs9C00LDRhSDQsdCwINGF0Y3RgNGN0LPQu9GN0LPRh9C40LnQvSDQtNCw0YLQsCDQsdKv0YXRjdC70LTRjdGNINGD0YHRgtCw0L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2MDM1NjUxNDIxNTY4MjY1NjUiPiLQotCwINGD0YLRgdGL0LMg0YLQsNC50LvQsNGFINCz0Y3QtiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINC+0YDQvtC70LTQu9C+0L4uIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINC00LDRhdC40L0g0LHRg9GA0YPRgyDQvtGA0L7Qu9C00LLQvtC7INGD0YLQsNGBINKv0LnQu9C00LLRjdGA0LjQudC9INKv0L3QtNGB0Y3QvSDRg9GC0LPQsNCw0YDQsNCwINGC0L7RhdC40YDRg9GD0LvQsNCz0LTQsNGFINCx0LAg0YXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC00LDRgtCwINCx0q/RhdGN0LvQtNGN0Y0g0YPRgdGC0LDQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI4MDg3MzUxNjQ5MzkzNDM2NSI+ItCi0LAg0YLQsNCx0LvQtdGC0YvQsyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g0YPQtNCw0LAg0YLQsNC50LvQsNGFINCz0Y3QtiDQsdGD0YDRg9GDINC+0YDQvtC70LTQu9C+0L4uINCi0LDQsdC70LXRgiDQvtC00L7QviDSr9C50LvQtNCy0Y3RgNC40LnQvSDSr9C90LTRgdGN0L0g0YPRgtCz0LDQsNGA0LDQsCDRgtC+0YXQuNGA0YPRg9C70LDQs9C00LDRhSDQsdC+0LvQvdC+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzMDI1NTA0NzIxNzY0OTIyMjQ2Ij4i0KLQsCDRg9GC0YHRi9CzINGC0LDQudC70LDRhSDQs9GN0LYgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0L7RgNC+0LvQtNC70L7Qvi4g0KPRgtCw0YEg0L7QtNC+0L4g0q/QudC70LTQstGN0YDQuNC50L0g0q/QvdC00YHRjdC9INGD0YLQs9Cw0LDRgNCw0LAg0YLQvtGF0LjRgNGD0YPQu9Cw0LPQtNCw0YUg0LHQvtC70L3Qvi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MjUxNDgwMzQzMzk0Mzg5NjY1Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INGB0LXQutGD0L3QtNGL0L0g0LTQsNGA0LDQsCDQtNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iMjYyNjk5OTQ0OTYxMDY5NTkzMCI+ItCl0Y3RjdCzINC80LDRgNGC0YHQsNC9INGD0YM/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fZm9yZ290X3BhdHRlcm4iIG1zZ2lkPSIyNTg4NTIxNTAxMTY2MDMyNzQ3Ij4i0JDQutCw0YPQvdGCINGC0LDQudC70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iMjc1MTM2ODYwNTI4NzI4ODgwOCI+ItCl0Y3RjSDQvtGA0YPRg9C70LDRhSDQvtGA0L7Qu9C00LvQvtCz0L4g0YXRjdGCINC+0LvQvtC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzkzMTgxNjI1NjEwMDcwNzc4NCI+ItCi0q/Qs9C20Y3RjdCzINGC0LDQudC70LDRhSDQsdC+0LsgR29vZ2xlINCw0LrQsNGD0L3RgtCw0LDRgNCw0LAg0L3RjdCy0YLRjdGA0L3RjSDSr9KvLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI4ODQ2ODgxNDI0MTA2NDg0NDQ3Ij4i0KXRjdGA0Y3Qs9C70Y3Qs9GHICjQuNC80Y3QudC7KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI1OTU4MDI4MzgzOTU0NzM4NTI4Ij4i0J3Rg9GD0YYg0q/QsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI3MTMwODkzNjk0Nzk1Nzg2MzAwIj4i0J3RjdCy0YLRgNGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iMTM2NDA1MTQ3MzM0NzQ4NTkwOCI+ItCl0Y3RgNGN0LPQu9GN0LPRh9C40LnQvSDQvdGN0YAg0Y3RgdCy0Y3QuyDQvdGD0YPRhiDSr9CzINCx0YPRgNGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iMTY5NjkyNDc2MzY5MDM3OTA3MyI+ItCl0Y3RgNGN0LPQu9GN0LPRh9C40LnQvSDQvdGN0YAg0L3Rg9GD0YYg0q/Qs9GN0Y0g0LzQsNGA0YLRgdCw0L0g0YPRgz9cbiI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+Ii3QtCDQt9C+0YfQuNC70L3QviDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iNzExNDYyNzM1MTI4NjkzMzg2NyI+ItCo0LDQu9Cz0LDQtiDQsdCw0LnQvdCwLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl91bmxvY2tfbGFiZWwiIG1zZ2lkPSI3Mzc0NDA0ODMyMjA2NjcwNTQiPiLQotCw0LnQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NvdW5kX29uX2xhYmVsIiBtc2dpZD0iOTA2ODg3NzU3NjUxMzQyNTk3MCI+ItCU0YPRgyDQuNC00Y3QstGF0YLRjdC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zb3VuZF9vZmZfbGFiZWwiIG1zZ2lkPSI5OTY4MjI4MjUxNTQzMTkwMjYiPiLQlNGD0YPQsyDRhdCw0LDQs9C00YHQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9zdGFydCIgbXNnaWQ9IjM5NDEwNDU1MDI5MzMxNDI4NDciPiLQpdGN0Y0g0Y3RhdGN0LvQtiDQsdCw0LnQvdCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9jbGVhcmVkIiBtc2dpZD0iNTU4MzQ3OTcyMTAwMTYzOTU3OSI+ItCl0Y3RjSDRhtGN0LLRjdGA0LvRjdCz0LTRjdCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9jZWxsX2FkZGVkIiBtc2dpZD0iNjc1NjAzMTIwODM1OTI5MjQ4NyI+ItCd0q/QtCDQvdGN0LzRjdCz0LTRgdGN0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2FjY2Vzc19wYXR0ZXJuX2RldGVjdGVkIiBtc2dpZD0iNDk4ODczMDg5NTU1NDA1NzA1OCI+ItCl0Y3RjSDQtNGD0YPRgdCw0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9jaGFuZ2VkIiBtc2dpZD0iNTY3ODYyNDYyNDY4MTQwMDE5MSI+IiUxJHMuICUzJGQuIC3QvSAlMiRkINCy0LjQtNC20LXRgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiLQktC40LTQttC10YIg0L3RjdC80Y3RhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9lbXB0eV9zbG90IiBtc2dpZD0iMTI4MTUwNTcwMzMwNzkzMDc1NyI+ItCl0L7QvtGB0L7QvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfZXhwYW5kZWQiIG1zZ2lkPSIyMjc4MTA2MDIyMzExMTcwMjk5Ij4i0KLQsNC50LvQsNGFINGF0Y3RgdGN0LMg0L3RjdGN0LPQtNGB0Y3QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2NvbGxhcHNlZCIgbXNnaWQ9IjYzNjY5OTIwNjY5MzYwNzYzOTYiPiLQotCw0LnQu9Cw0YUg0YXRjdGB0Y3QsyDRhdCw0LDQs9C00YHQsNC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0IiBtc2dpZD0iNjUyNzEzMTAzOTc0MTgwODI0MCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+INCy0LjQtNC20LXRgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VzZXJfc2VsZWN0b3IiIG1zZ2lkPSIxMjI2Nzk4MzcwOTEzNjk4ODk2Ij4i0KXRjdGA0Y3Qs9C70Y3Qs9GHINGB0L7QvdCz0L7RhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc3RhdHVzIiBtc2dpZD0iODAwODI2NDYwMzkzNTkzMDYxMSI+ItCh0YLQsNGC0YPRgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfY2FtZXJhIiBtc2dpZD0iODkwNDIzMTE5NDE4MTExNDYwMyI+ItCa0LDQvNC10YAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlnYXVyZF9hY2Nlc3NpYmlsaXR5X21lZGlhX2NvbnRyb2xzIiBtc2dpZD0iMjYyMjA5NjU0MjkyMTYxODA2Ij4i0JzQtdC00LjQsCDQutC+0L3RgtGA0L7QuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfc3RhcnQiIG1zZ2lkPSI4NzM2ODUzNjE1NTg4ODI4MTk3Ij4i0JLQuNC00LbQtdGCINC00LDRhdC40L0g0Y3RgNGN0LzQsdGN0LvQtiDRjdGF0LvRjdCyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfZW5kIiBtc2dpZD0iNzE3MDE5MDk1MDg3MDQ2ODMyMCI+ItCS0LjQtNC20LXRgtC40LnQsyDQtNCw0YXQuNC9INGN0YDRjdC80LHRjdC70LYg0LTRg9GD0YHQsNCyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g0LLQuNC00LbQtdGCINGD0YHRgtGB0LDQvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2V4cGFuZF9sb2NrX2FyZWEiIG1zZ2lkPSI1MTk4NTk3MjA5MzQxNzgwMjQiPiLQotKv0LPQttGN0Y3Qs9Kv0Lkg0YXRjdGB0LPQuNC50LMg06nRgNCz06nRgdCz06nRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiLQotCw0LnQu9Cw0YUg0LPRg9C70YHRg9GD0LvQsNC70YIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLQotCw0LnQu9Cw0YUg0YXRjdGNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZmFjZV91bmxvY2siIG1zZ2lkPSI0ODE3MjgyNTQzMzUxNzE4NTM1Ij4i0J3Sr9Kv0YDRjdGN0YAg0YLQsNC50LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9waW5fdW5sb2NrIiBtc2dpZD0iMjQ2OTY4NzExMTc4NDAzNTA0NiI+ItCi0LDQudC70LDRhSDQv9C40L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXNzd29yZF91bmxvY2siIG1zZ2lkPSI3Njc1Nzc3NjIzOTEyMTU1MDg5Ij4i0KLQsNC50LvQsNGFINC90YPRg9GGINKv0LMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4i0KXRjdGN0L3QuNC5INGF0Y3RgdGN0LMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV9hcmVhIiBtc2dpZD0iNjczNjA2NDQ5NDAxOTk3OTU0NCI+ItCT0YPQu9GB0YPRg9C70LDRhSDRhdGN0YHRjdCzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+ItCQ0JHQkiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfY2hhcmFjdGVyIiBtc2dpZD0iNzMzNjQ3MDUzNTM4NTAwOTUyMyI+ItGC0Y3QvNC00Y3Qs9GCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfd29yZCIgbXNnaWQ9IjcwNzU1NzAzMjgzNzQ5MTg2NjAiPiLSr9CzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfbGluayIgbXNnaWQ9IjU4MTU1MDg4ODA3ODI0ODgyNjciPiLRhdC+0LvQsdC+0L7RgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW51bGFyaXR5X2xhYmVsX2xpbmUiIG1zZ2lkPSI1NzY0MjY3MjM1MDI2MTIwODg4Ij4i0JzTqdGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9hbXBtIiBtc2dpZD0iNDU4NDMzODA4MzUyOTM1NTk4MiI+Ijx4bGlmZjpnIGlkPSJIT1VSIj4lLWw8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IkFNUE0iPiVQPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfY2FwX2FtcG0iIG1zZ2lkPSIyMDgzNDY1OTkyOTQwNDQ0MzY2Ij4iPHhsaWZmOmcgaWQ9IkhPVVIiPiUtbDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iQU1QTSI+JXA8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3RfZmFpbGVkIiBtc2dpZD0iNTQxMDI3MDMyOTExNDIxMjA0MSI+ItKu0LnQu9C00LvQstGN0YDQuNC50L0g0YLQtdGB0YIg0LHSr9GC0Y3Qu9Cz0q/QudGC0Y3QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X25vdF9zeXN0ZW0iIG1zZ2lkPSI0NDM1MjAxNjU2NzY3Mjc2NzIzIj4iRkFDVE9SWV9URVNUINKv0LnQu9C00Y3QuyDQvdGMINC306nQstGF06nQvSAvc3lzdGVtL2FwcC3QtCDRgdGD0YPRgdCw0L0g0LHQsNCz0YbRg9GD0LTQsNC0INC00Y3QvNC20LjQs9C00Y3QvdGNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X25vX2FjdGlvbiIgbXNnaWQ9Ijg3Mjk5MTg3NDc5OTk5ODU2MSI+IkZBQ1RPUllfVEVTVCDSr9C50LvQtNC70LjQudCzINGF0LDQvdCz0LDRhSDQsdCw0LPRhiDQvtC70LTRgdC+0L3Qs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3RfcmVib290IiBtc2dpZD0iNjMyMDE2ODIwMzA1MDc5MTY0MyI+ItCU0LDRhdC40L0g0LDRgdCw0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjE5ODc0ODM5Nzc4MzQ2MDM4NzIiPiJcIjx4bGlmZjpnIGlkPSJUSVRMRSI+JXM8L3hsaWZmOmc+XCIg0YXRg9GD0LTQsNGBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZV9kZWZhdWx0IiBtc2dpZD0iNjk2MTkwMzIxMzcyOTY2NzU3MyI+IkphdmFTY3JpcHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfYmVmb3JlX3VubG9hZF90aXRsZSIgbXNnaWQ9IjI2MTkzNzY1NTU1MjUxMTY1OTMiPiLQqNC40LvQttKv0q/Qu9GN0LvRgtC40LnQsyDQsdCw0YLQsNGC0LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWRfcG9zaXRpdmVfYnV0dG9uIiBtc2dpZD0iMzExMjc1MjAxMDYwMDQ4NDEzMCI+ItCt0L3RjSDRhdGD0YPQtNGB0YvQsyDQvtGA0YXQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWRfbmVnYXRpdmVfYnV0dG9uIiBtc2dpZD0iNTYxNDg2MTI5MzAyNjA5OTcxNSI+ItCt0L3RjSDRhdGD0YPQtNGB0LDQvdC0INKv0LvQtNGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfYmVmb3JlX3VubG9hZCIgbXNnaWQ9IjM0Njg4MTYzNTcwOTUzNzg1OTAiPiI8eGxpZmY6ZyBpZD0iTUVTU0FHRSI+JXM8L3hsaWZmOmc+XG5cbtCi0LAg0q/QvdGN0YXRjdGN0YAg0Y3QvdGNINGF0YPRg9C00LDRgdC90LDQsNGBINCz0LDRgNC80LDQsNGAINCx0LDQudC90LAg0YPRgz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX2xhYmVsIiBtc2dpZD0iNjg2MDI2MTc1ODY2NTgyNTA2OSI+ItCR0LDRgtCw0LvQs9Cw0LDQttGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb3VibGVfdGFwX3RvYXN0IiBtc2dpZD0iNDU5NTA0NjUxNTQwMDI2ODg4MSI+ItCX06nQstC706nQvNC2OiDTqNGB0LPTqdGFINCx0L7QuyDQtNCw0LLRhdCw0YAg0YLQvtCy0YjQuNC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF90aGlzX2Zvcm0iIG1zZ2lkPSI0NjE2NzU4ODQxMTU3ODE2Njc2Ij4i0JDQstGC0L7QvNCw0YIg0LHQuNGH0LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNldHVwX2F1dG9maWxsIiBtc2dpZD0iNzEwMzQ5NTA3MDE4MDU5MDgxNCI+ItCQ0LLRgtC+0LzQsNGCINC00q/Sr9GA0LPRjdC70YLQuNC50LMg0YLQvtGF0LjRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX25hbWVfc2VwYXJhdG9yIiBtc2dpZD0iNjM1MDE0NTE1NDc3OTcwNjc3MiI+IiAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX3N1bW1hcnlfbmFtZV9mb3JtYXQiIG1zZ2lkPSIzMjY4MDQxMDU0ODk5MjE0OTQ1Ij4iJDEkMiQzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYWRkcmVzc19zdW1tYXJ5X3NlcGFyYXRvciIgbXNnaWQ9Ijc0ODMzMDc4OTMxNzAzMjQxMjkiPiIsICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3Nfc3VtbWFyeV9mb3JtYXQiIG1zZ2lkPSI0ODc0NDU5NDU1Nzg2ODI3MzQ0Ij4iJDEkMiQzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcHJvdmluY2UiIG1zZ2lkPSIyMjMxODA2NTUzODYzNDIyMzAwIj4i0JzRg9C2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcG9zdGFsX2NvZGUiIG1zZ2lkPSI0Njk2NDMwNDA3Njg5Mzc3MTA4Ij4i0KjRg9GD0LTQsNC90LPQuNC50L0g0LrQvtC0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfc3RhdGUiIG1zZ2lkPSI2OTg4ODk0MTk1NTIwMDQ0NjEzIj4i0JzRg9C2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfemlwX2NvZGUiIG1zZ2lkPSI4Njk3NTQ0NTkyNjI3MzIyOTQ2Ij4iWklQINC60L7QtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2NvdW50eSIgbXNnaWQ9IjIzNzA3Mzc3MTAyMDM2Mjg5MSI+ItCc0YPQtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2lzbGFuZCIgbXNnaWQ9IjQwMjAxMDA4NzU5ODQ2NjcwMjUiPiLQkNGA0LDQuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2Rpc3RyaWN0IiBtc2dpZD0iODQwMDczNTA3MzM5MjI2NzY3MiI+ItCU0q/Sr9GA0Y3QsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2RlcGFydG1lbnQiIG1zZ2lkPSI1MzQzMjc5NDYyNTY0NDUzMzA5Ij4i0KXRjdC70YLRjdGBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcHJlZmVjdHVyZSIgbXNnaWQ9IjIwMjg0OTk0ODUwNjU4MDA0MTkiPiLQnNGD0LYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wYXJpc2giIG1zZ2lkPSI4MjAyMjA2MTA1NDY4ODIwMDU3Ij4i0JzTqdGA0LPTqdC70YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hcmVhIiBtc2dpZD0iMzU0NzQwOTA1MDg4OTk1MjQyMyI+ItCl0Y3RgdGN0LMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9lbWlyYXRlIiBtc2dpZD0iMjg5Mzg4MDk3ODgzNTY5ODgxOCI+ItCt0LzQuNGA0LDRgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSIzNzc1MjY1Nzc1NDA1MTA2OTgzIj4i06nTqdGA0LjQudC9INCS0LXQsSDRhdCw0LLRh9GD0YPRgNCz0LAg0LHQvtC70L7QvSDRgtKv0q/RhdC40LnQsyDRg9C90YjQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSI4NDYyMzc4MjI2NjAwNDM5NjU4Ij4i0JDQv9C/INC90Ywg0KXTqdGC0YfQuNC50L0g0LfQvtGH0LjQu9C2INCx0LDQudGB0LDQvSDQsdKv0YUgVVJMLdC9INGC0q/Sr9GFINCx0L7Qu9C+0L0g0KXTqdGC0YfQuNC50L0g0LHSr9GFINGF0LDQstGH0YPRg9GA0LPRi9CzINGD0L3RiNC40YUg0LHQvtC70L7QvNC20YLQvtC5LiDQkNC90YXQsNCw0YA6INCt0L3RjSDQt9Op0LLRiNOp06nRgNOp0Lsg0L3RjCDQs9GD0YDQsNCy0LTQsNCz0Ycg0YLQsNC70YvQvSDRhdOp0YLTqdGHINGN0YHQstGN0Lsg0LLQtdCx0Y3RjdGAINGF06nRgtOp0YfQu9Op0YUg0YfQsNC00LDQstGF0YLQsNC5INCw0L/Qv9C70LjQutC10YjQvdKv0q/QtNGN0LQg0LDRiNC40LPQu9Cw0LPQtNCw0YXQs9Kv0Lkg0LHQsNC50YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iMzcxNDc4NTE2NTI3MzMxNDQ5MCI+ItCy0LXQsSDRhdCw0LLRh9GD0YPRgNCz0LAg0LHQvtC70L7QvSDRgtKv0q/RhdC40LnQsyDQsdC40YfQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2ODI1NTI3NDY5MTQ1NzYwOTIyIj4i0JDQv9C/INC90Ywg0YLQsNC90Ysg0YLQsNCx0LvQtdGCINC00Y3RjdGAINGF0LDQtNCz0LDQu9Cw0LPQtNGB0LDQvSDQpdOp0YLRh9C40LnQvSDRgtKv0q/RhSDRjdGB0LLRjdC7INGF0LDQstGH0YPRg9GA0LPRi9CzINOp06nRgNGH0LvTqdGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0K3QvdGNINC90Ywg0LDQv9C/LdC0INCl06nRgtGH0LjQudC9INC00LDRgtCw0LMg0LDRgNC40LvQs9Cw0YUg0Y3RgdCy0Y3QuyDTqdOp0YDRh9C706nRhSDQsdC+0LvQvtC80LbQuNC50LMg0L7Qu9Cz0L7QvdC+LiDQkNC90YXQsNCw0YA6INCt0L3RjSDQt9Op0LLRiNOp06nRgNOp0Lsg0L3RjCDQs9GD0YDQsNCy0LTQsNCz0Ycg0YLQsNC70YvQvSDRhdOp0YLTqdGHINGN0YHQstGN0Lsg0LLQtdCx0Y3RjdGAINGF06nRgtOp0YfQu9Op0YUg0YfQsNC00LLQsNGA0YLQsNC5INCw0L/Qv9C70LjQutC10YjQvdC0INCw0LbQuNC70LvQsNGF0LPSr9C5INCx0LDQudGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUhpc3RvcnlCb29rbWFya3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NDk3Mzg5NTMxMDE0MTg1NTA5Ij4i0JDQv9C/INC90Ywg0YLQsNC90Ysg0YPRgtGB0LDQvSDQtNGN0Y3RgCDRhdCw0LTQs9Cw0LvQsNCz0LTRgdCw0L0g0KXTqdGC0YfQuNC50L0g0YLSr9Kv0YUg0Y3RgdCy0Y3QuyDRhdCw0LLRh9GD0YPRgNCz0YvQsyDTqdOp0YDRh9C706nRhSDQsdC+0LvQvtC80LbRgtC+0LkuINCt0L3RjSDQvdGMINCw0L/Qvy3QtCDQpdOp0YLRh9C40LnQvSDQtNCw0YLQsNCzINCw0YDQuNC70LPQsNGFINGN0YHQstGN0Lsg06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvNC20LjQudCzINC+0LvQs9C+0L3Qvi4g0JDQvdGF0LDQsNGAOiDQrdC90Y0g0LfTqdCy0YjTqdOp0YDTqdC7INC90Ywg0LPRg9GA0LDQstC00LDQs9GHINGC0LDQu9GL0L0g0YXTqdGC06nRhyDRjdGB0LLRjdC7INCy0LXQsdGN0Y3RgCDRhdOp0YLTqdGH0LvTqdGFINGH0LDQtNCy0LDRgNGC0LDQuSDQsNC/0L/Qu9C40LrQtdGI0L3QtCDQsNC20LjQu9C70LDRhdCz0q/QuSDQsdCw0LnRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbGFybSIgbXNnaWQ9IjEzNzkyOTQ1NTYzNjIwOTE4MTQiPiLRgdGN0YDSr9Kv0LvRjdCzINGC0L7RhdC40YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QWxhcm0iIG1zZ2lkPSIzMTYzOTIwMzkxNTc0NzM4NDgiPiLQkNC/0L8g0L3RjCDRgdGD0YPQu9Cz0LDQs9C00YHQsNC9INGB0Y3RgNKv0q/Qu9GN0LPQvdC40Lkg0LDQv9C/INC00Y3RjdGAINGB0Y3RgNKv0q/Qu9GN0LMg0YLQvtGF0LjRgNGD0YPQu9Cw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQl9Cw0YDQuNC8INGB0Y3RgNKv0q/Qu9GN0LPQvdC40Lkg0LDQv9C/INC90Ywg0Y3QvdGNINGE0YPQvdC60YbQuNC50LMg0LTRjdC80LbQuNGF0LPSr9C5INCx0LDQudC2INCx0L7Qu9C30L7RiNCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FkZFZvaWNlbWFpbCIgbXNnaWQ9IjU1MjU2NjAwMjYwOTA5NTkwNDQiPiLQtNGD0YPRgiDRiNGD0YPQtNCw0L0g0L3RjdC80Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FkZFZvaWNlbWFpbCIgbXNnaWQ9IjY2MDQ1MDg2NTE0MjgyNTI0MzciPiLQkNC/0L8g0L3RjCDRgtCw0L3RiyDQtNGD0YPRgiDRiNGD0YPQtNCw0L3Qs9C40LnQvSDQuNGA0YHRjdC9INC80Y3QudC70LQg0LzQtdGB0YHQtdC2INC90Y3QvNGN0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iNTk2MjIyNDE1ODk1NTI3MzkzMiI+ItCl06nRgtGH0LjQudC9INCz0LXQvtCx0LDQudGA0YjQu9GL0L0g0LfTqdCy0YjTqdOp0YDQu9C40LnQsyDTqdOp0YDRh9C706nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlR2VvbG9jYXRpb25QZXJtaXNzaW9ucyIgbXNnaWQ9IjEwODM3NDMyMzQ1MjI2Mzg3NDciPiLQkNC/0L8g0L3RjCDQpdOp0YLRh9C40LnQvSDQs9C10L4g0LHQsNC50YDRiNC70YvQvSDQt9Op0LLRiNOp06nRgNC70LjQudCzINOp06nRgNGH0LvTqdGFINCx0L7Qu9C+0LzQttGC0L7QuS4g0KXQvtGA0YLQvtC5INCw0L/QvyDQvdGMINGN0L3QuNC50LMg0LDRiNC40LPQu9Cw0L0g0LTRg9GA0YvQvSDQstC10LEg0YXRg9GD0LTQsNGB0YDRg9GDINCx0LDQudGA0YjQu9GL0L0g0LzRjdC00Y3RjdC70LvQuNC50LMg0LjQu9Cz0Y3RjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BhY2thZ2VWZXJpZmljYXRpb25BZ2VudCIgbXNnaWQ9IjU1NjgxMzkxMDA2NDU4MjkxMTciPiLQsdCw0LPRhtC40LnQsyDRgtGD0LvQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wYWNrYWdlVmVyaWZpY2F0aW9uQWdlbnQiIG1zZ2lkPSI4NDM3NTkwMTkwOTkwODQzMzgxIj4i0JDQv9C/INC90Ywg0LHQsNCz0YbRi9CzINGB0YPRg9C70LPQsNC2INCx0L7Qu9C+0YUg0Y3RgdGN0YXQuNC50LMg0YjQsNC70LPQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRQYWNrYWdlVmVyaWZpZXIiIG1zZ2lkPSI0MTg3Nzg2NzkzMzYwMzI2NjU0Ij4i0LHQsNCz0YYg0YLRg9C70LPQsNCz0YfRgtGN0Lkg0YXQvtC70LHQvtGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFBhY2thZ2VWZXJpZmllciIgbXNnaWQ9IjMxODA3NDE3NzMyMzM4NjIxMjYiPiLQrdC30Y3QvNGI0LjQs9GHINC90Ywg0LHQsNCz0YYg0YLRg9C70LPQsNCz0YfQtNCw0LQg0YXSr9GB0Y3Qu9GCINGC0LDQstC40YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INGF0Y3RgNGN0LPQu9GN0LPQtNGN0YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXJpYWxQb3J0IiBtc2dpZD0iNTQ2MDgzMzI3NjU0NjMxMDc2Ij4i0YHQtdGA0LjQsNC7INC/0L7RgNGC0YDRg9GDINGF0LDQvdC00LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlcmlhbFBvcnQiIG1zZ2lkPSIyOTkxNjM5OTg1MjI0NTk4MTkzIj4i0K3Qt9GN0LzRiNC40LPRhyDQvdGMIFNlcmlhbE1hbmFnZXIgQVBJINCw0YjQuNCz0LvQsNC9INGB0LXRgNC40LDQuyDQv9C+0YDRgtC+0LQg0YXQsNC90LTQsNGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0NvbnRlbnRQcm92aWRlcnNFeHRlcm5hbGx5IiBtc2dpZD0iNTA3Nzc3NDI5Nzk0MzQwOTI4NSI+ItC60L7QvdGC0LXQvdGCINC90LjQudC70q/Sr9C70Y3Qs9GH0LjQtCDQs9Cw0LTQvdCw0LDRgSDRhdCw0L3QtNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NDb250ZW50UHJvdmlkZXJzRXh0ZXJuYWxseSIgbXNnaWQ9IjQ1NDQzNDY0ODY2OTc4NTM2ODUiPiLQrdC30Y3QvNGI0LjQs9GHINC90Ywg0YjQtdC70Y3RjdGBINC60L7QvdGC0LXQvdGCINC90LjQudC70q/Sr9C70Y3Qs9GH0LjQtCDRhdCw0L3QtNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdGBINGF0Y3RgNGN0LPQu9GN0YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91cGRhdGVMb2NrIiBtc2dpZD0iMzUyNzU1ODM2NjYxNjY4MDg4OSI+ItGC06nRhdOp06nRgNOp0LzQttC40LnQvSDQsNCy0YLQvtC80LDRgiDRiNC40L3RjdGH0LvRjdC70YLQuNC50LMg0YXQvtGA0LjQs9C70L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VwZGF0ZUxvY2siIG1zZ2lkPSIxNjU1NjI1ODMyMTY2Nzc4NDkyIj4i0K3Qt9GN0LzRiNC40LPRhyDQvdGMINGC06nRhdOp06nRgNOp0LzQttC40LnQsyDQtNGN0LLRiNKv0q/Qu9GN0YXRjdGN0YAg0YXRjdC30Y3RjSDQtNCw0YXQuNC9INCw0YHQsNCw0LLQsNC7INGC0L7RhdC40YDQvtGFINGC0YPRhdCw0Lkg0YHQuNGB0YLQtdC80LQg0LzRjdC00Y3RjdC70Y3QuyDRgdCw0L3QsNC7INCx0L7Qu9Cz0L7RhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9tZXNzYWdlIiBtc2dpZD0iNzY3MzQ0Njg3MTM5MTk1NzkwIj4i0KLQsCDRhdOp0YLRh9C40LQg0Y3QvdGNINC90YPRg9GGINKv0LPQuNC50LMg0YHQsNC90YPRg9C70LDRhSDRg9GDPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfbm90bm93IiBtc2dpZD0iNjM4OTY3NTMxNjcwNjY5OTc1OCI+ItCe0LTQvtC+INCx0LjRiCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfcmVtZW1iZXIiIG1zZ2lkPSI2NDkxODc5Njc4OTk2NzQ5NDY2Ij4i0KHQsNC90LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfbmV2ZXIiIG1zZ2lkPSI4Mjc0MzMwMjk2Nzg1ODU1MTA1Ij4i0KXRjdC30Y3RjSDRhyDSr9Cz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9wZW5fcGVybWlzc2lvbl9kZW55IiBtc2dpZD0iNzM3NDAzNjcwODMxNjYyOTgwMCI+ItCi0LDQvdC0INGN0L3RjSDRhdGD0YPQtNGB0YvQsyDQvdGN0Y3RhSDQt9Op0LLRiNOp06nRgNOp0Lsg0LHQsNC50YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV4dF9jb3BpZWQiIG1zZ2lkPSI0OTg1NzI5NTI0NjcwMTMxMzg1Ij4i0KLQtdC60YHRgiDRhdGD0YPQu9Cw0LPQtNCw0LIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9yZV9pdGVtX2xhYmVsIiBtc2dpZD0iNDY1MDkxODkyMzA4MzMyMDQ5NSI+ItCY0LvSr9KvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlcGVuZF9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI1NzIyMTQ0NjE2NzYwMTU2NDIiPiLQptGN0YErIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zcGFjZV9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI0MTAzMjg2MzkyNzIxNjI1MzciPiLQt9Cw0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2VudGVyX3Nob3J0Y3V0X2xhYmVsIiBtc2dpZD0iMjc0MzM2Mjc4NTExMTMwOTY2OCI+ItC+0YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGVfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIzNjU4MTc4MDA3MjAyNzQ4MTY0Ij4i0YPRgdGC0LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoX2dvIiBtc2dpZD0iODI5ODAxNjY2OTgyMjE0MTcxOSI+ItCl0LDQudGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9zZWFyY2giIG1zZ2lkPSI2NzQ5ODI2NjM5MDk4NTEyMTIwIj4i0KXQsNC50YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX3F1ZXJ5IiBtc2dpZD0iNTkxMTc3ODU5MzEyNTM1NTEyNCI+ItCl0LDQudGFINCw0YHRg9GD0LvQs9CwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNodmlld19kZXNjcmlwdGlvbl9jbGVhciIgbXNnaWQ9IjEzMzAyODE5OTA5NTE4MzMwMzMiPiLQkNGB0YPRg9C70LPRi9CzINGG0Y3QstGN0YDQu9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX3N1Ym1pdCIgbXNnaWQ9IjI2ODg0NTAxMzMyOTc5ODM1NDIiPiLQkNGB0YPRg9C70LPRi9CzINC40LvQs9GN0Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fdm9pY2UiIG1zZ2lkPSIyNDUzMjAzNjk1Njc0OTk0NDQwIj4i0JTRg9GD0YIg0YXQsNC50LvRgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSI3NDYwNjk0MDcwMzA5NzMwMTQ5Ij4i0KXSr9GA0Ycg0YXQsNC50YUg0YTRg9C90LrRhtC40LnQsyDQuNC00Y3QstGF0YLRjdC5INCx0L7Qu9Cz0L7RhSDRg9GDPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODY1NTg4NzUzOTA4OTkxMDU3NyI+Ijx4bGlmZjpnIGlkPSJBQ0NFU1NJQklMSVRZX1NFUlZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4g0L3RjCDQpdKv0YDRhyDRgtCw0L3QuNGF0YvQsyDQuNC00Y3QstGF0LbSr9Kv0LvRjdGF0LjQudCzINGI0LDQsNGA0LTQsNC2INCx0LDQudC90LAuINCl0q/RgNGHINGC0LDQvdC40YUg0LjQtNGN0LLRhdC20YHRjdC9INKv0LXQtCDRgtCwINGF0YPRgNGD0YPQvSDQtNC+0L7RgNC+0L4g0Y7RgyDQsdCw0LnQs9Cw0LDQsyDRgdC+0L3RgdC+0YUsINGC0LDQudC70LHQsNGA0YvQsyDRhdCw0YDQsNGFINCx0L7Qu9C+0LzQttGC0L7QuSDQsdCwINGC0LDQsdC70LXRgtGC0LDQudCz0LDQsCDQtNC+0YXQuNC+0LPQvtC+0YAg0YXQsNGA0LjQu9GG0LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ19tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjcwODE5OTY3Mjg1MjM3MzE5NSI+Ijx4bGlmZjpnIGlkPSJBQ0NFU1NJQklMSVRZX1NFUlZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4g0L3RjCDQpdKv0YDRhyDRgtCw0L3QuNGF0YvQsyDQuNC00Y3QstGF0LbSr9Kv0LvRjdGF0LjQudCzINGI0LDQsNGA0LTQsNC2INCx0LDQudC90LAuINCl0q/RgNGHINGC0LDQvdC40YUg0LjQtNGN0LLRhdC20YHRjdC9INGC0L7RhdC40L7Qu9C00L7Qu9C0INGC0LAg0YXRg9GA0YPRg9C9INC00L7QvtGA0L7QviDRjtGDINCx0LDQudCz0LDQsNCzINGB0L7QvdGB0L7RhSwg0YLQsNC50LvQsdCw0YDRi9CzINGF0LDRgNCw0YUg0LHQvtC70L7QvNC20YLQvtC5INCx0LAg0YPRgtCw0YHRgtCw0LnQs9Cw0LAg0LTQvtGF0LjQvtCz0L7QvtGAINGF0LDRgNC40LvRhtCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9uZU1vbnRoRHVyYXRpb25QYXN0IiBtc2dpZD0iNzM5NjM4NDUwODk1Mzc3OTkyNSI+IjEg0YHQsNGA0YvQvSDTqdC80L3TqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJlZm9yZU9uZU1vbnRoRHVyYXRpb25QYXN0IiBtc2dpZD0iOTA5MTM0NTQ2ODM2NDk5ODI2Ij4iMSDRgdCw0YDRi9C9INOp0LzQvdOpIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJudW1fc2Vjb25kc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0ODY5ODcwMDU2NTQ3ODk2MDExIj4iMSDRgdC10LrRg9C90LTRi9C9INOp0LzQvdOpIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzOTAzNzA2ODA0MzQ5NTU2Mzc5Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g0YHQtdC60YPQvdC00YvQvSDTqdC80L3TqSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX21pbnV0ZXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzMwNjc4NzQzMzA4ODgxMDE5MSI+IjEg0LzQuNC90YPRgtGL0L0g06nQvNC906kiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIxNzY5NDIwMDg5MTU0NTUxMTYiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDQvNC40L3Rg9GC0YvQvSDTqdC80L3TqSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX2hvdXJzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjkxNTA3OTc5NDQ2MTA4MjE4NDkiPiIxINGG0LDQs9C40LnQvSDTqdC80L3TqSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjQ2NzI3MzIzOTU4NzU4NzU2OSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INGG0LDQs9C40LnQvSDTqdC80L3TqSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibGFzdF9udW1fZGF5cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzA2OTk5MjgwODE2NDMxODI2OCI+ItCh0q/Sr9C70LjQudC9IDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INOp0LTTqdGAIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ibGFzdF9tb250aCIgbXNnaWQ9IjM5NTkzNDY3Mzk5NzkwNTU0MzIiPiLQodKv0q/Qu9C40LnQvSDRgdCw0YAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvbGRlciIgbXNnaWQ9IjUyMTE5NzUwMjI4MTU1NTQ4NDAiPiLQpdGD0YPRh9C40L0iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9Im51bV9kYXlzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9Ijg2MTM1ODUzNDM5ODExNTgyMCI+ItOp0YfQuNCz0LTTqdGAIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyNDc5NTg2NDY2MTUzMzE0NjMzIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g06nQtNGA0LjQudC9INOp0LzQvdOpIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fc2Vjb25kcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjI3Mjk3NDU1NjA5NTQ5MDUxMDIiPiIxINGB0LXQutGD0L3QtNGL0L0g0LTQsNGA0LDQsCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTI0MTkyNjExNjQ0Mzk3NDY4NyI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INGB0LXQutGD0L3QtNGL0L0g0LTQsNGA0LDQsCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iaW5fbnVtX21pbnV0ZXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4NzkzMDk1MjUxMzI1MjAwMzk1Ij4iMSDQvNC40L3Rg9GC0YvQvSDQtNCw0YDQsNCwIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzMzMwNzEzOTM2Mzk5NDQ4NzQ5Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g0LzQuNC90YPRgtGL0L0g0LTQsNGA0LDQsCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iaW5fbnVtX2hvdXJzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNzE2NDM1MzM0MjQ3Nzc2OTk5OSI+IjEg0YbQsNCz0LjQudC9INC00LDRgNCw0LAiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzI5MDY3NzM1MzcyNzM4OSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INGG0LDQs9C40LnQvSDQtNCw0YDQsNCwIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fZGF5cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU0MTMwODg3NDMwMDk4Mzk1MTgiPiLQvNCw0YDQs9Cw0LDRiCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTEwOTQ0OTM3NTEwMDk1MzI0NyI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INOp0LTRgNC40LnQvSDQtNCw0YDQsNCwIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX3NlY29uZHNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMTg0OTAzNjg0MDIwMDA2OTExOCI+IjEg0YHQtdC60YPQvdC00YvQvSDTqdC80L3TqSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzY5OTE2OTM2NjY1MDkzMDQxNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INGB0LXQuiDQtNCw0YDQsNCwIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX21pbnV0ZXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjM2MTQ5MDE0NzExMzg3MTU0NSI+IjEg0LzQuNC9INOp0LzQvdOpIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NTExNjQ5Njg1OTcxNTA3MTAiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDQvNC40L3Rg9GC0YvQvSDTqdC80L3TqSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X251bV9ob3Vyc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0Nzk2MjEyMDM5NzI0NzIyMTE2Ij4iMSDRhtCw0LPQuNC50L0g06nQvNC906kiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY4ODk5NzA3NDU3NDg1Mzg5MDEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDRhtCw0LPQuNC50L0g06nQvNC906kiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1fZGF5c19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4NDYzMTYxNzExNDkyNjgwMzA5Ij4i06nRh9C40LPQtNOp0YAiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM0NTMzNDI2Mzk2MTY0ODExOTEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDTqdC00YDQuNC50L0g06nQvNC906kiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fc2Vjb25kcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NDIyMjUzNzA3OTUwNjYyOTkiPiIxINGB0LXQuiDQtNCw0YDQsNCwIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDk1ODgwMTA4ODI1ODA1MTA4Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g0YHQtdC6INC00LDRgNCw0LAiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU2Mjc4NjE0OTkyODI4NDg3OCI+IjEg0LzQuNC9INC00LDRgNCw0LAiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQyMTYxMTMyOTI3MDY1Njg3MjYiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDQvNC40L3Rg9GC0YvQvSDQtNCw0YDQsNCwIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfaW5fbnVtX2hvdXJzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI3NDcwODExODEyNDA0NTI0NiI+IjEg0YbQsNCz0LjQudC9INC00LDRgNCw0LAiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM3MDUzNzM3NjY3OTgwMTM0MDYiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDRhtCw0LPQuNC50L0g0LTQsNGA0LDQsCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9kYXlzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMjE3ODU3NjI1NDM4NTczOTg1NSI+ItC80LDRgNCz0LDQsNGIIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyOTczMDYyOTY4MDM4MzU1OTkxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g06nQtNGA0LjQudC9INC00LDRgNCw0LAiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJwcmVwb3NpdGlvbl9mb3JfZGF0ZSIgbXNnaWQ9IjkwOTM5NDk3NTc3NTc0NDUxMTciPiI8eGxpZmY6ZyBpZD0iREFURSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlcG9zaXRpb25fZm9yX3RpbWUiIG1zZ2lkPSI1NTA2ODMxMjQ0MjYzMDgzNzkzIj4iPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl95ZWFyIiBtc2dpZD0iNTA0MDM5NTY0MDcxMTg2NzE3NyI+Ijx4bGlmZjpnIGlkPSJZRUFSIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXkiIG1zZ2lkPSI4MTQ0MTk1Nzc2MDU4MTE5NDI0Ij4i06nQtNOp0YAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlzIiBtc2dpZD0iNDc3NDU0NzY2MTAyMTM0NDYwMiI+ItOp0LTTqdGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91ciIgbXNnaWQ9IjIxMjY3NzE5MTY0MjYxODk0ODEiPiLRhtCw0LMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VycyIgbXNnaWQ9Ijg5NDQyNDAwNTI2Njg1Mjk5MyI+ItGG0LDQsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZSIgbXNnaWQ9IjkxNDg4Nzg2NTc3MDM3Njk4NjgiPiLQvNC40L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVzIiBtc2dpZD0iNTY0NjAwMTAwNTgyNzAzNDUwOSI+ItC80LjQvdGD0YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWNvbmQiIG1zZ2lkPSIzMTg0MjM1ODA4MDIxNDc4Ij4i0YHQtdC6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vjb25kcyIgbXNnaWQ9IjMxNjE1MTUzNDcyMTY1ODkyMzUiPiLRgdC10LoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWVrIiBtc2dpZD0iNTYxNzk2MTUzNzE3MzA2MTU4MyI+Ijcg0YXQvtC90L7QsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlZWtzIiBtc2dpZD0iNjUwOTYyMzgzNDU4Mzk0NDUxOCI+Ijcg0YXQvtC90L7QsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXIiIG1zZ2lkPSI0MDAxMTE4MjIxMDEzODkyMDc2Ij4i0LbQuNC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcnMiIG1zZ2lkPSI2ODgxNTc3NzE3OTkzMjEzNTIyIj4i0LbQuNC7Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJkdXJhdGlvbl9zZWNvbmRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjk2MjAxNTUyODM3Mjk2OTQ4MSI+IjEg0YHQtdC60YPQvdC0IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxODg2MTA3NzY2NTc3MTY2Nzg2Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g0YHQtdC60YPQvdC0IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJkdXJhdGlvbl9taW51dGVzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDkxNTQxNDAwMjU0NjA4NTYxNyI+IjEg0LzQuNC90YPRgiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzE2NTE4NzE2OTIyNDkwODc3NSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+INC80LjQvdGD0YIiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImR1cmF0aW9uX2hvdXJzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODkxNzQ2NzQ5MTI0ODgwOTk3MiI+IjEg0YbQsNCzIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzODYzOTYyODU0MjQ2NzczOTMwIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g0YbQsNCzIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RpdGxlIiBtc2dpZD0iMzUzNDUwOTEzNTQzODM1MzA3NyI+ItCS0LjQtNC10L4g0LDQu9C00LDQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlZpZGVvVmlld19lcnJvcl90ZXh0X2ludmFsaWRfcHJvZ3Jlc3NpdmVfcGxheWJhY2siIG1zZ2lkPSIzMTg2NjcwMzM1OTM4NjcwNDQ0Ij4i0K3QvdGNINCy0LjQtNC10L4g0Y3QvdGNINGC06nRhdOp06nRgNOp0LzQtiDQtNGN0Y3RgCDRg9GA0YHQs9Cw0LvQsNCw0YAg0LPQsNGA0Ycg0YfQsNC00LDRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfdGV4dF91bmtub3duIiBtc2dpZD0iMzQ1MDQzOTE1NTE4NzgxMDA4NSI+ItCt0L3RjSDQstC40LTQtdC+0LMg0YLQvtCz0LvRg9GD0LvQsNGFINCx0L7Qu9C+0LzQttCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfYnV0dG9uIiBtc2dpZD0iMjgyMjIzODIxNTEwMDY3OTU5MiI+ItCi0LjQudC8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpdmVfdGltZSIgbXNnaWQ9IjE4MTg1NTcxNzc4Mjk0MTE0MTciPiI8eGxpZmY6ZyBpZD0iREFURSI+JTEkczwveGxpZmY6Zz4sIDx4bGlmZjpnIGlkPSJUSU1FIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vb24iIG1zZ2lkPSI3MjQ1MzUzNTI4ODE4NTg3OTA4Ij4i0q/QtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Ik5vb24iIG1zZ2lkPSIzMzQyMTI3NzQ1MjMwMDEzMTI3Ij4i0q7QtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pZG5pZ2h0IiBtc2dpZD0iNzE2NjI1OTUwODg1MDQ1NzU5NSI+ItGI06nQvdOpINC00YPQvdC0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iTWlkbmlnaHQiIG1zZ2lkPSI1NjMwODA2OTA2ODk3ODkyMjAxIj4i0KjTqdC906kg0LTRg9C90LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGFwc2VkX3RpbWVfc2hvcnRfZm9ybWF0X21tX3NzIiBtc2dpZD0iNDQzMTU1NTk0MzgyODcxMTQ3MyI+Ijx4bGlmZjpnIGlkPSJNSU5VVEVTIj4lMSQwMmQ8L3hsaWZmOmc+Ojx4bGlmZjpnIGlkPSJTRUNPTkRTIj4lMiQwMmQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxhcHNlZF90aW1lX3Nob3J0X2Zvcm1hdF9oX21tX3NzIiBtc2dpZD0iMTg0NjA3MTk5NzYxNjY1NDEyNCI+Ijx4bGlmZjpnIGlkPSJIT1VSUyI+JTEkZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9Ik1JTlVURVMiPiUyJDAyZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9IlNFQ09ORFMiPiUzJDAyZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RBbGwiIG1zZ2lkPSI2ODc2NTE4OTI1ODQ0MTI5MzMxIj4i0JHSr9Cz0LTQuNC50LMg0YHQvtC90LPQvtGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3V0IiBtc2dpZD0iMzA5MjU2OTQwODQzODYyNjI2MSI+ItCi0LDRgdC70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvcHkiIG1zZ2lkPSIyNjgxOTQ2MjI5NTMzNTExOTg3Ij4i0KXRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzdGUiIG1zZ2lkPSI1NjI5ODgwODM2ODA1MDM2NDMzIj4i0JHRg9GD0LvQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXBsYWNlIiBtc2dpZD0iNTc4MTY4NjA1OTA2MzE0ODkzMCI+ItCe0YDQu9GD0YPQu9Cw0YXigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGUiIG1zZ2lkPSI2MDk4Njg0ODQ0MDIxNjk3Nzg5Ij4i0KPRgdGC0LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29weVVybCIgbXNnaWQ9IjI1MzgyMTE1Nzk1OTYwNjc0MDIiPiJVUkwg0YXRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0VGV4dE1vZGUiIG1zZ2lkPSIxMDE4NjkxODE1MTQzMTY1MzI2Ij4i0KLQtdC60YHRgiDRgdC+0L3Qs9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXh0U2VsZWN0aW9uQ0FCVGl0bGUiIG1zZ2lkPSI1MjM2ODUwMzk0MzcwODIwMzU3Ij4i0KLQtdC60YHRgiDRgdC+0L3Qs9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRUb0RpY3Rpb25hcnkiIG1zZ2lkPSI0MzUyMTYxNTM0NTEwMDU3ODc0Ij4i0KLQvtC70Ywg0LHQuNGH0LjQs9GCINC90Y3QvNGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVUZXh0IiBtc2dpZD0iNjk3OTY2ODQyODQ1ODE5OTAzNCI+ItCj0YHRgtCz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImlucHV0TWV0aG9kIiBtc2dpZD0iMTY1MzYzMDA2MjMwNDU2Nzg3OSI+ItCe0YDRg9GD0LvQsNGFINCw0YDQs9CwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWRpdFRleHRNZW51VGl0bGUiIG1zZ2lkPSI0OTA5MTM1NTY0OTQxODE1NDk0Ij4i0KLQtdC60YHRgiDSr9C50LvQtNGN0LsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfaW50ZXJuYWxfc3RvcmFnZV92aWV3X3RpdGxlIiBtc2dpZD0iNTU3NjI3MjQ5NjM2NTY4NDgzNCI+ItCh0LDQvdCz0LjQudC9INGF0Y3QvNC20Y3RjSDQtNGD0YLQsNCz0LTQsNC2INCx0LDQudC90LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfaW50ZXJuYWxfc3RvcmFnZV92aWV3X3RleHQiIG1zZ2lkPSI2NjQwNTA1ODE3NjE3NDE0MzcxIj4i0JfQsNGA0LjQvCDRgdC40YHRgtC10Lwg0YTRg9C90LrRhiDQsNC20LjQu9C70LDRhdCz0q/QuSDQsdCw0LnQvdCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX3J1bm5pbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODcxODMzNTEyMTA2MDc4NzkxNCI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4g0LDQttC40LvQu9Cw0LYg0LHQsNC50L3QsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9ydW5uaW5nX25vdGlmaWNhdGlvbl90ZXh0IiBtc2dpZD0iNDY1MzU4Njk0Nzc0NzMzMDA1OCI+ItCY0LvSr9KvINC80Y3QtNGN0Y3Qu9GN0Lsg0LDQstCw0YUg0LHQvtC7INGF0q/RgNGN0YUg0Y3RgdCy0Y3QuyDQsNC/0L8t0LMg0LfQvtCz0YHQvtC+0L3QviDRg9GDIC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvayIgbXNnaWQ9IjU5NzAwNjA0MzA1NjI1MjQ5MTAiPiLQotC40LnQvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjY0NDI1NjA1NzEyNTk5MzUxMzAiPiLQptGD0YbQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZXMiIG1zZ2lkPSI1MzYyOTgyMzAzMzM3OTY5MzEyIj4i0KLQuNC50LwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJubyIgbXNnaWQ9IjUxNDE1MzEwNDQ5MzU1NDE0OTciPiLQptGD0YbQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaWFsb2dfYWxlcnRfdGl0bGUiIG1zZ2lkPSIyMDQ5NjU4NzA4NjA5MDQzMTAzIj4i0JDQvdGF0LDQsNGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9hZGluZyIgbXNnaWQ9Ijc5MzM2ODEyNjAyOTYwMjExODAiPiLQkNGH0LDQsNC70LvQsNC2INCx0LDQudC90LAuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBpdGFsX29uIiBtc2dpZD0iMTU0NDY4Mjc1NTUxNDQ5NDI5OCI+ItCY0LTRjdCy0YXRgtGN0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBpdGFsX29mZiIgbXNnaWQ9IjY4MTU4NzAzODY5NzI4MDU4MzIiPiLQmNC00Y3QstGF0LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2hpY2hBcHBsaWNhdGlvbiIgbXNnaWQ9IjQ1MzMxODU5NDcwNjQ3NzMzODYiPiLSrtC50LvQtNC70LjQudCzINC00YPRg9GB0LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzVXNlIiBtc2dpZD0iNDU4MzAxODM2ODAwMDYxMDQzOCI+ItCt0L3RjSDQsNC20LjQu9C70LDQs9Cw0LDQsyDSr9C90LTRgdGN0L0g0LHQvtC70LPQvtGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNsZWFyRGVmYXVsdEhpbnRNc2ciIG1zZ2lkPSIzMjUyNTg0Njg5NTEyMDc3MjU3Ij4i0KHQuNGB0YLQtdC8INGC0L7RhdC40YDQs9C+0L4gJmd0OyDQkNC/0L8gJmd0OyDQotCw0YLQsNC2INCw0LLRgdCw0L0g0YXRjdGB0LPQuNC50L0g0q/QvdC00YHRjdC9INGD0YLQs9GD0YPQtNGL0LMg0YbRjdCy0Y3RgNC70Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZUFjdGl2aXR5IiBtc2dpZD0iNzQ4Njg3NjE0Nzc1MTgwMzMzMyI+ItKu0LnQu9C00Y3QuyDRgdC+0L3Qs9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VVc2JBY3Rpdml0eSIgbXNnaWQ9IjY4OTQ3NDg0MTYwNzM1ODM1MDkiPiJVU0Ig0YLTqdGF06nTqdGA06nQvNC20LjQudC9INCw0L/Qvy3QsyDRgdC+0L3Qs9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub0FwcGxpY2F0aW9ucyIgbXNnaWQ9IjI5OTE4MTQyNzM5MzY1MDQ2ODkiPiLQrdC90Y0g0LDQttC40LvQu9Cw0LPQsNCw0LMg0LPSr9C50YbRjdGC0LPRjdGFINCw0L/QvyDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX3RpdGxlIiBtc2dpZD0iMTkwNTgwMDU2MDMxNzEzNzc1MiI+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX2FwcGxpY2F0aW9uIiBtc2dpZD0iOTMyNjI4NDg4MDEzMDkyNzc2Ij4i0KXQsNGA0LDQvNGB0LDQu9GC0LDQuSwgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDQt9C+0LPRgdGB0L7QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX3Byb2Nlc3MiIG1zZ2lkPSI0NTA3MDU4OTk3MDM1Njk3NTc5Ij4i0KXQsNGA0LDQvNGB0LDQu9GC0LDQuSDQvdGMIDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDQv9GA0L7RhtC10YHRgSDQt9C+0LPRgdGB0L7QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfdGl0bGUiIG1zZ2lkPSI0MzUxOTQ4NDgxNDU5MTM1NzA5Ij48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hY3Rpdml0eV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjE5MDQ0NzcxODkwNTcxOTkwNjYiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUyJHM8L3hsaWZmOmc+INGF0LDRgNC40YMg06nQs9Op0YXQs9Kv0Lkg0LHQsNC50L3QsC5cblxu0KLQsCDRhdCw0LDQvNCw0LDRgCDQsdCw0LnQvdCwINGD0YM/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX2FjdGl2aXR5X3Byb2Nlc3MiIG1zZ2lkPSI1Nzc2MjA5ODgzMjk5MDg5NzY3Ij4iPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiDQsNC60YLQuNCy0LjRgtC4INGF0LDRgNC40YMg06nQs9Op0YXQs9Kv0Lkg0LHQsNC50L3QsC5cblxu0KLQsCDRjdC90LjQudCzINGF0LDQsNGFINGD0YM/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX2FwcGxpY2F0aW9uX3Byb2Nlc3MiIG1zZ2lkPSI4OTQxNzU3NjA3MzQwNDgxMDU3Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDRhdCw0YDQuNGDINOp0LPTqdGF0LPSr9C5INCx0LDQudC90LAuINCi0LAg0Y3QvdC40LnQsyDRhdCw0LDQvNCw0LDRgCDQsdCw0LnQvdCwINGD0YM/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX3Byb2Nlc3MiIG1zZ2lkPSI2NTEzMjA5ODc0ODgwNTE3MTI1Ij4iPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+INC/0YDQvtGG0LXRgdGBINGF0LDRgNC40YMg06nQs9Op0YXQs9Kv0Lkg0LHQsNC50L0uXG5cbtCi0LAg0YXQsNCw0LzQsNCw0YAg0LHQsNC50L3QsCDRg9GDPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcmNlX2Nsb3NlIiBtc2dpZD0iODM0NjA3MjA5NDUyMTI2NTYwNSI+ItCi0LjQudC8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVwb3J0IiBtc2dpZD0iNDA2MDIxODI2MDk4NDc5NTcwNiI+ItCc0Y3QtNGN0LPQtNGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YWl0IiBtc2dpZD0iNzE0NzExODIxNzIyNjMxNzczMiI+ItCl0q/Qu9GN0Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlYnBhZ2VfdW5yZXNwb25zaXZlIiBtc2dpZD0iMzI3Mjc1ODM1MTEzODEyMjUwMyI+ItCl0YPRg9C00LDRgSDRhdCw0YDQuNGDINOp0LPTqdGF0LPSr9C5INCx0LDQudC90LAuXG5cbtCi0LAg0Y3QvdC40LnQsyDRhdCw0LDRhSDRg9GDPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX3RpdGxlIiBtc2dpZD0iMTU0Nzk5Nzc4MDUwNjcxMzU4MSI+IkHQv9C/INC00LDRhdC40L0g0YfQuNCz0LvSr9Kv0LvRjdCz0LTRjdCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoX3dhcm5pbmdfcmVwbGFjZSIgbXNnaWQ9IjYyMDI0OTg5NDk5NzAyODE0MTIiPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+INC+0LTQvtC+INCw0LbQuNC70LvQsNC2INCx0LDQudC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoX3dhcm5pbmdfb3JpZ2luYWwiIG1zZ2lkPSIxODgxMDIwMjMwMjE2Njg2ODMiPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+INCw0LbQuNC70LvQsNCyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9zY2FsZSIgbXNnaWQ9IjMyMDI5NTU2Njc2NzU5NDQ0OTkiPiLQptCw0YAg0YXRjdC80LbRjdGNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX3Nob3ciIG1zZ2lkPSI0MDEzODc4ODc2NDg2NjU1ODkyIj4i0JHQsNC50L3Qs9CwINGF0LDRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fY29tcGF0X21vZGVfaGludCIgbXNnaWQ9IjEwNjQ1MjQwODQ1NDMzMDQ0NTkiPiLQrdC90LjQudCzINCh0LjRgdGC0LXQvNC40LnQvSDRgtC+0YXQuNGA0LPQvtC+ICZndDsg0JDQv9C/ICZndDsg0KLQsNGC0LDQtiDQsNCy0YHQsNC9INC00L7RgtGA0L7QvtGBINC00LDRhdC40L0g0LjQtNGN0LLRhdGC0Y3QuSDQsdC+0LvQs9C+0YUg0LHQvtC70L7QvNC20YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtdl9hcHBsaWNhdGlvbiIgbXNnaWQ9IjMzMDcyMDkxOTIxNTU0NDI4MjkiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+INCw0L/QvyAoPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUyJHM8L3hsaWZmOmc+INC/0YDQvtGG0LXRgdGBKSDTqdOp0YDQuNC50L3RhdOp06kgU3RyaWN0TW9kZSDQsdC+0LTQu9C+0LPRi9CzINC306nRgNGH0LjQsi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXZfcHJvY2VzcyIgbXNnaWQ9IjUxMjAzOTcwMTIwNDc0NjI0NDYiPiI8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz4g0L/RgNC+0YbQtdGB0YEg06nTqdGA0LjQudC90YXTqdOpIFN0cmljdE1vZGUg0LHQvtC00LvQvtCz0YvQsyDQt9Op0YDRh9C40LIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfdGl0bGUiIG1zZ2lkPSIxNTg0MTkyMjg1NDQxNDA1NzQ2Ij4i0JDQvdC00YDQvtC50LTRi9CzINC00Y3QstGI0q/Sr9C70LYg0LHQsNC50L3QsOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX2FwayIgbXNnaWQ9Ijc5MDQwNDI2ODIxMTE1MjYxNjkiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJGQ8L3hsaWZmOmc+LdC9IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JTEkZDwveGxpZmY6Zz4g0LDQv9C/LdCzINGC0L7RhdC40YDRg9GD0LvQtiDQsdCw0LnQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX3N0YXJ0aW5nX2FwcHMiIG1zZ2lkPSI0NTE0NjQ1MTYzNDY5MjY3MTMiPiLQkNC/0L8t0LMg0Y3RhdC70q/Sr9C70LYg0LHQsNC50L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19jb21wbGV0ZSIgbXNnaWQ9IjE0MDU5NTQ3NTQxMTI5OTkyMjkiPiLQrdGF0LvRjdC70LjQudCzINC00YPRg9GB0LPQsNC2INCx0LDQudC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X25vdGlmaWNhdGlvbiIgbXNnaWQ9IjkwODcwNjM5ODU3NzY2MjYxNjYiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lMSRzPC94bGlmZjpnPiDQsNC20LjQu9C70LDQtiDQsdCw0LnQvdCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X25vdGlmaWNhdGlvbl9kZXRhaWwiIG1zZ2lkPSIxNzIxNjgxNzQxNjE3ODk4ODY1Ij4i0JDQv9C/INGB0Y3Qu9Cz0Y3RhSDQsdC+0Lsg0YXSr9GA0L3RjSDSr9KvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X3N3aXRjaGVyX3RpdGxlIiBtc2dpZD0iNzE1MzE2NzA4NTQwMzI5ODE2OSI+ItCQ0L/QvyDRgdGN0LvQs9GN0YUg0q/Srz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfc3dpdGNoZXJfdGV4dCIgbXNnaWQ9IjcwMjI2MzE5MjQ1MzQ0MDY0MDMiPiLQotCwINGI0LjQvdGNINCw0L/Qvy3QsyDQsNC20LjQu9C70YPRg9C70LDRhdGL0L0g06nQvNC906kg0LfQvtCz0YHQvtC+0YUg0ZHRgdGC0L7QuSDTqdOp0YAg0LDQv9C/INCw0LbQuNC70LvQsNC2INCx0LDQudC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkX2FwcF9hY3Rpb24iIG1zZ2lkPSI0OTMxMjkxNzIyMzg1NjYyODIiPiI8eGxpZmY6ZyBpZD0iT0xEX0FQUCI+JTEkczwveGxpZmY6Zz4t0YDRg9GDINCx0YPRhtCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvbGRfYXBwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjA4MjA5NDI3NTU4MDM1ODA0OSI+ItCo0LjQvdGNINCw0L/Qvy3QsyDRjdGF0LvSr9Kv0LvQtiDQsdC+0LvQvtGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5ld19hcHBfYWN0aW9uIiBtc2dpZD0iNTQ3Mjc1NjkyNjk0NTQ0MDcwNiI+Ijx4bGlmZjpnIGlkPSJPTERfQVBQIj4lMSRzPC94bGlmZjpnPiDRjdGF0LvSr9Kv0LvRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmV3X2FwcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjE5MzIxNDM1OTgzNzE1MzczNDAiPiLQpdGD0YPRh9C40L0g0LDQv9C/LdCzINGF0LDQtNCz0LDQu9Cw0YXQs9Kv0LnQs9GN0Y3RgCDQt9C+0LPRgdC+0L7QvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VuZFRleHQiIG1zZ2lkPSI1MjA5ODc0NTcxOTU5NDY5MTQyIj4i0KLQtdC60YHRgiDQuNC70LPRjdGN0YUg0q/QudC70LTQu9C40LnQsyDRgdC+0L3Qs9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfcmluZ3RvbmUiIG1zZ2lkPSI2ODg1NDIxNDA2ODQ1NzM0NjUwIj4i0KXQvtC90YXQvdGLINCw0Y/QvdGLINGF0Y3QvNC20Y3RjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9tdXNpYyIgbXNnaWQ9IjU0MjE2NTExNTcxMzg2MjgxNzEiPiLQnNC10LTQuNCwINC00YPRg9C90Ysg0YXRjdC80LbRjdGNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljX2hpbnRfcGxheWluZ190aHJvdWdoX2JsdWV0b290aCIgbXNnaWQ9IjkxNjU5ODQzNzkzOTQ2MDE1MzMiPiLQkdC70Y7RgtKv0q/RgtGN0Y3RgCDRgtC+0LPQu9C+0LYg0LHQsNC50L3QsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9tdXNpY19oaW50X3NpbGVudF9yaW5ndG9uZV9zZWxlY3RlZCIgbXNnaWQ9IjgzMTA3Mzk5NjA5NzMxNTYyNzIiPiLQpdC+0L3RhdC90Ysg0LTRg9GD0LMg0YfQuNC80Y3RjdCz0q/QuSDQsdC+0LvQs9C+0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfY2FsbCIgbXNnaWQ9IjM5NDE2ODAwNDEyODI3ODg3MTEiPiLQmNGA0YHRjdC9INC00YPRg9C00LvQsNCz0YvQvSDQtNGD0YPQvdGLINGF0Y3QvNC20Y3RjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9ibHVldG9vdGhfY2FsbCIgbXNnaWQ9IjIwMDI4OTE5MjYzNTExNTE1MzQiPiLQkdC70Y7RgtKv0q/RgiDQuNGA0YHRjdC9INC00YPRg9C00LvQsNCz0YvQvSDQtNGD0YPQvdGLINGF0Y3QvNC20Y3RjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9hbGFybSIgbXNnaWQ9IjE5ODUxOTE2MTYwNDI2ODkxMDAiPiLQodGN0YDSr9Kv0LvQs9C40LnQvSDQtNGD0YPQvdGLINGF0Y3QvNC20Y3RjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9ub3RpZmljYXRpb24iIG1zZ2lkPSIyNDIyMjY1NjU2NzQ0Mjc2NzE1Ij4i0JzRjdC00Y3Qs9C00LvQuNC50L0g0LTRg9GD0L3RiyDRhdGN0LzQttGN0Y0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfdW5rbm93biIgbXNnaWQ9IjE0MDAyMTk2Njk3NzA0NDU5MDIiPiLQlNGD0YPQvdGLINGF0Y3QvNC20Y3RjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX2JsdWV0b290aCIgbXNnaWQ9IjY1Mzg4OTQxNzcyNTU5NjQzNDAiPiLQkdC70Y7RgtKv0q/RgtGL0L0g0YXRjdC80LbRjdGNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2ljb25fZGVzY3JpcHRpb25fcmluZ2VyIiBtc2dpZD0iMzMyNjAwMzg0NzAwNjE2MjQ5NiI+ItCl0L7QvdGF0L3RiyDQtNGD0YPQvdGLINGF0Y3QvNC20Y3RjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX2luY2FsbCIgbXNnaWQ9Ijg4OTAwNzMyMTgxNTQ1NDMzOTciPiLQlNGD0YPQtNC70LDQs9GL0L0g0LTRg9GD0L3RiyDRhdGN0LzQttGN0Y0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9tZWRpYSIgbXNnaWQ9IjQyMTczMTE3MTk2NjUxOTQyMTUiPiLQnNC10LTQuNCwINC00YPRg9C90Ysg0YXRjdC80LbRjdGNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2ljb25fZGVzY3JpcHRpb25fbm90aWZpY2F0aW9uIiBtc2dpZD0iNzA0NDk4NjU0NjQ3NzI4MjI3NCI+ItCc0Y3QtNGN0LPQtNC70LjQudC9INC00YPRg9C90Ysg0YXRjdC80LbRjdGNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfZGVmYXVsdCIgbXNnaWQ9IjM3ODk3NTg5ODAzNTc2OTY5MzYiPiLSrtC90LTRgdGN0L0g0YXQvtC90YXQvdGLINCw0Y8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV9kZWZhdWx0X3dpdGhfYWN0dWFsIiBtc2dpZD0iODEyOTU2MzQ4MDg5NTk5MDM3MiI+ItKu0L3QtNGB0Y3QvSDRhdC+0L3RhdC90Ysg0LDRjyAoPHhsaWZmOmcgaWQ9IkFDVFVBTF9SSU5HVE9ORSI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfc2lsZW50IiBtc2dpZD0iNzkzNzYzNDM5MjQwODk3NzA2MiI+ItCQ0LvQuNC50LMg0L3RjCDRhyDQsdC40YgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV9waWNrZXJfdGl0bGUiIG1zZ2lkPSIzNTE1MTQzOTM5MTc1MTE5MDk0Ij4i0KXQvtC90YXQvdGLINCw0Y8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV91bmtub3duIiBtc2dpZD0iNTQ3NzkxOTk4ODcwMTc4NDc4OCI+ItKu0Lsg0LzRjdC00Y3Qs9C00Y3RhSDRhdC+0L3RhdC90Ysg0LDRjyI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0id2lmaV9hdmFpbGFibGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NjU0MTIzOTg3NDE4MTY4NjkzIj4iV2ktRmkg0YHSr9C70LbRjdGNINCw0YjQuNCz0LvQsNGFINCx0L7Qu9C+0LzQttGC0L7QuSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDE5MjQyNDQ4OTE2ODM5NzM4NiI+IldpLUZpINGB0q/Qu9C20Y3RjSDQsNGI0LjQs9C70LDRhSDQsdC+0LvQvtC80LbQs9Kv0LkiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9IndpZmlfYXZhaWxhYmxlX2RldGFpbGVkIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMTYzNDEwMTQ1MDM0MzI3NzM0NSI+ItCd0Y3RjdC70LvRgtGN0LkgV2ktRmkg0YHSr9C70LbRjdGNINCw0YjQuNCz0LvQsNGFINCx0L7Qu9C+0LzQttGC0L7QuSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzkxNTg5NTMyMzY0NDI5Mjc2OCI+ItCd0Y3RjdC70YLRgtGN0LkgV2ktRmkg0YHSr9C70LbRjdGNINCw0YjQuNCz0LvQsNGFINCx0L7Qu9C+0LzQttGC0L7QuSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfYXZhaWxhYmxlX3NpZ25faW4iIG1zZ2lkPSI0MDI5NDg5NzE2NjA1MjU1Mzg2Ij4iV2ktRmkg0YHSr9C70LbRjdGN0L3QtCDQvdGN0LLRgtGN0YDQvdGNINKv0q8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXR3b3JrX2F2YWlsYWJsZV9zaWduX2luIiBtc2dpZD0iODQ5NTE1NTU5MzM1ODA1NDY3NiI+ItCh0q/Qu9C20Y3RjdC90LQg0L3RjdCy0YLRgNGN0YUiPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgbmV0d29ya19hdmFpbGFibGVfc2lnbl9pbl9kZXRhaWxlZCAoODAwMDA4MTk0MTQ0Nzk3NjExOCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfd2F0Y2hkb2dfbmV0d29ya19kaXNhYmxlZCIgbXNnaWQ9Ijc5MDQyMTQyMzE2NTE1NDYzNDciPiJXaS1GaS3QtCDRhdC+0LvQsdC+0LPQtNC+0LYg0YfQsNC00YHQsNC90LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkX2RldGFpbGVkIiBtc2dpZD0iNTU0ODc4MDc3NjQxODMzMjY3NSI+IiDQmNC90YLQtdGA0L3QtdGCINGF0L7Qu9Cx0L7Qu9GCINC80YPRgyDQsdCw0LnQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijk3NjExNzgyNjU5MzI0NTE3Ij4iV2ktRmkg0KjRg9GD0LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF90dXJub25fbWVzc2FnZSIgbXNnaWQ9IjI5MDkyNTA5NDIyOTk2MjcyNDQiPiJXaS1GaSDQqNGD0YPQtNGL0LMg0Y3RhdC70q/Sr9C70L3RjSDSr9KvLiDQrdC90Y0g0L3RjCBXaS1GaSDQutC70LjQtdC90YIv0YXQvtC70LHQvtC70YLRi9C9INGG0Y3QsyDRg9C90YLRgNCw0LDQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZhaWxlZF9tZXNzYWdlIiBtc2dpZD0iMzc2MzY2OTY3NzkzNTYyMzA4NCI+IldpLUZpINCo0YPRg9C00YvQsyDRjdGF0LvSr9Kv0LvQtiDRh9Cw0LTRgdCw0L3Qs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW5hYmxlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMDY4MzIxODgxNjczNzM0ODg2Ij4iV2ktRmkg0KjRg9GD0LQg0LDRgdCw0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9lbmFibGVkX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTYzODk0OTk1Mzk5Mzg5NDMzNSI+ItCi0L7RhdC40YDRg9GD0LvQsNGFINCx0L7QuyDRhdKv0YDQvdGNINKv0q8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIxNjQ1MjY3MjU5MjcyODI5NTU5Ij4i0JfTqdCy0YjTqdOp0YDTqdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVjbGluZSIgbXNnaWQ9IjIxMTIyMjU0NTE3MDYxMzc4OTQiPiLQotCw0YLQs9Cw0LvQt9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9pbnZpdGF0aW9uX3NlbnRfdGl0bGUiIG1zZ2lkPSIxMzE4OTc1MTg1MTEyMDcwNzM0Ij4i0KPRgNC40LvQs9CwINC40LvQs9GN0Y3Qs9C00YHRjdC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfaW52aXRhdGlvbl90b19jb25uZWN0X3RpdGxlIiBtc2dpZD0iNDk1ODgwMzk0ODY1ODUzMzYzNyI+ItCl0L7Qu9Cx0L7RhSDRg9GA0LjQu9Cz0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcm9tX21lc3NhZ2UiIG1zZ2lkPSI1NzAzODkxNzQ3MzE5NTE3NjkiPiLQpdGN0L3RjdGN0YE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfdG9fbWVzc2FnZSIgbXNnaWQ9IjI0ODk2ODk3NDUyMjA0NDA5OSI+ItCl0Y3QvdC0OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VudGVyX3Bpbl9tZXNzYWdlIiBtc2dpZD0iNTkyMDkyOTU1MDM2NzgyODk3MCI+ItCo0LDQsNGA0LTQu9Cw0LPQsNGC0LDQuSBQSU4t0LMg0LHQuNGH0L3RjSDSr9KvOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX3Nob3dfcGluX21lc3NhZ2UiIG1zZ2lkPSI4NTMwNTYzMzIzODgwOTIxMDk0Ij4iUElOOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MDEyOTgxMjU3NzQyMjMyNDc1Ij4i0KLQsNCx0LvQtdGCIDx4bGlmZjpnIGlkPSJERVZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4t0YLRjdC5INGF0L7Qu9Cx0L7Qs9C00L7RhSDSr9C10LTRjdGNINGC0q/RgCDQt9GD0YPRgCBXaS1GaS3RgSDRgdCw0LvQsNGFINCx0L7Qu9C90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZnJlcXVlbmN5X2NvbmZsaWN0X21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MzYzOTA3MjEzNzg3NDY5MTUxIj4i0KPRgtCw0YEgPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPi3RgtCw0Lkg0YXQvtC70LHQvtCz0LTQvtGFINKv0LXQtNGN0Y0g0YLSr9GAINC30YPRg9GAIFdpLUZpLdGBINGB0LDQu9Cw0YUg0LHQvtC70L3Qvi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfY2hhcmFjdGVyIiBtc2dpZD0iMzM2NTU1MDEyMDYxNzcwMTc0NSI+ItCi0Y3QvNC00Y3Qs9GCINC+0YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfdGl0bGUiIG1zZ2lkPSI3Mjk2NjEyNzgxMTI4OTE3NzE5Ij4iU01TINC80LXRgdGB0LXQtiDQuNC70LPRjdGN0LYg0LHQsNC50L3QsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX21lc3NhZ2UiIG1zZ2lkPSIzODY3ODk5MTY5NjUxNDk2NDMzIj4iJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDsg0LjRhSDRhdGN0LzQttGN0Y3QvdC40LkgU01TINC80LXRgdGB0LXQttC40LnQsyDQuNC70LPRjdGN0LYg0LHQsNC50L3QsC4g0KLQsCDRjdC90Y0g0LDQv9C/LdC0INKv0YDQs9GN0LvQttC70q/Sr9C70Y3QvSDQvNC10YHRgdC10LYg0LjQu9Cz0Y3RjdGF0LjQudCzINC306nQstGI06nTqdGA06nRhSDSr9KvPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX3llcyIgbXNnaWQ9IjM2NjM3MjU5OTM4NTU4MTY4MDciPiLQl9Op0LLRiNOp06nRgNOp0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9ubyIgbXNnaWQ9IjYyNTQzODU2MTM5NTUzNDk4MiI+ItCi0LDRgtCz0LDQu9C30LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fbWVzc2FnZSIgbXNnaWQ9IjE2NDU0MzY0NjYyODUzMTA4NTUiPiImbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyDQvdGMICZsdDtiJmd0Ozx4bGlmZjpnIGlkPSJERVNUX0FERFJFU1MiPiUyJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyDRg9GA0YPRgyDQvNC10YHRgdC10LYg0LjQu9Cz0Y3RjdGFINCz0Y3QtiDQsdCw0LnQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSIzNDkyMDI1NzE5ODY4MDc4NDU3Ij4i0K3QvdGNINGC0LDQvdGLINC80L7QsdCw0LnQuyDQsNC60LDRg9C90YLQsNC0ICI8Zm9udCBmZ2NvbG9yPSIjZmZmZmIwNjAiPiLRgtOp0LvQsdOp0YAg0LPQsNGA0LPQsNC2IjwvZm9udD4iINCx0L7Qu9C30L7RiNCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfcHJlbWl1bV9zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSI1NTIzODI2MzQ5MTA1MTIzNjg3Ij48Zm9udCBmZ2NvbG9yPSIjZmZmZmIwNjAiPiLQrdC90Y0g0YLQsNC90Ysg0LzQvtCx0LDQudC7INCw0LrQsNGD0L3RgtCw0LQg0YLTqdC70LHTqdGAINCz0LDRgNCz0LDRhSDQsdC+0LvQvdC+LiI8L2ZvbnQ+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2FsbG93IiBtc2dpZD0iNDQ1ODg3ODYzNzExMTAyMzQxMyI+ItCY0LvQs9GN0Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fZGVueSIgbXNnaWQ9IjI5MjczODk4NDAyMDkxNzA3MDYiPiLQptGD0YbQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9yZW1lbWJlcl9jaG9pY2UiIG1zZ2lkPSI1Mjg5NTM4NTkyMjcyMjE4MTM2Ij4i0JzQuNC90LjQuSDRgdC+0L3Qs9C+0LvRgtGL0LMg0YHQsNC90LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX3VuZG9faW5zdHJ1Y3Rpb24iIG1zZ2lkPSI0OTYwOTQ0MTMzMDUyMjg3NDg0Ij4i0KLQsCDQtNCw0YDQsNCwINGN0L3QuNC50LMg0KLQvtGF0LjRgNCz0L7QviAmZ3Q7INCQ0L/QvyDQtNC+0YLRgNC+0L7RgSDRgdC+0LvQuNGFINCx0L7Qu9C+0LzQttGC0L7QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fYWx3YXlzX2FsbG93IiBtc2dpZD0iMzI0MTE4MTE1NDg2OTQ5MzM2OCI+ItCR0LDQudC90LPQsCDQt9Op0LLRiNOp06nRgNOp0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX25ldmVyX2FsbG93IiBtc2dpZD0iNDQ2OTkyNzY1Nzc0MjY5NjczIj4i0KXRjdC30Y3RjSDRhyDQt9Op0LLRiNOp06nRgNOp0YXQs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVtb3ZlZF90aXRsZSIgbXNnaWQ9IjYyMjc3MTIzMTkyMjMyMjYxODUiPiJTSU0g0LrQsNGA0YIg0YXQsNGB0LDQs9C00YHQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX3JlbW92ZWRfbWVzc2FnZSIgbXNnaWQ9IjIzMzMxNjQ1NTk5NzA5NTg2NDUiPiLQl9Op0LIgU0lNINC60LDRgNGCINGF0LjQudCz0Y3RjdC0INC00LDRhdC40L0g0LDRgdCw0LDRgtCw0Lsg0YLQsCDQvNC+0LHQsNC50Lsg0YHSr9C70LbRjdGN0LMg0LDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC20LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9kb25lX2J1dHRvbiIgbXNnaWQ9IjgyNzk0OTk4OTM2OTk2Mzc3NSI+ItCU0YPRg9GB0LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX2FkZGVkX3RpdGxlIiBtc2dpZD0iMzcxOTY3MDUxMjg4OTY3NDY5MyI+IlNJTSDQutCw0YDRgiDQvdGN0LzRjdCz0LTRgdGN0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fYWRkZWRfbWVzc2FnZSIgbXNnaWQ9IjY1OTk5NDUzMDExNDEwNTAyMTYiPiLQnNC+0LHQsNC50Lsg0YHSr9C70LbRjdGN0L3QtCDRhdCw0L3QtNCw0YUg0LHQvtC7INGC06nRhdOp06nRgNOp0LzQttOp06kg0LTQsNGF0LjQvSDQsNGB0LDQsNC9INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX3Jlc3RhcnRfYnV0dG9uIiBtc2dpZD0iNDcyMjQwNzg0MjgxNTIzMjM0NyI+ItCU0LDRhdC40L0g0Y3RhdC70q/Sr9C70Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjgzNDkzNjI2MjMwNjg4MTkyOTUiPiLQptCw0LPQuNC50L0g0YLQvtGF0LjRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kaWFsb2dfdGl0bGUiIG1zZ2lkPSI1ODc5NDUwNjU5NDUzNzgyMjc4Ij4i0J7Qs9C90L7QviDQvtGA0YPRg9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfdGltZV9zZXQiIG1zZ2lkPSI1Nzc3MDc1NjE0MzIxMDg3NzU4Ij4i0KLQvtGF0LjRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3RpbWVfZG9uZSIgbXNnaWQ9IjI1MDc2ODM3NTE3NTkzMDg4MjgiPiLQlNGD0YPRgdCz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1zX25ld19wZXJtX3ByZWZpeCIgbXNnaWQ9IjgyNTc3NDA3MTA3NTQzMDE0MDciPjxmb250IHNpemU9IjEyIiBmZ2NvbG9yPSIjZmYzM2I1ZTUiPiLQqNCY0J3QrTogIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1zX2Rlc2NyaXB0aW9uX2FwcCIgbXNnaWQ9IjUxMzk4MzYxNDMyOTMyOTk0MTciPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+INOp0LPRgdOp0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fcGVybWlzc2lvbnMiIG1zZ2lkPSI3MjgzMzU3NzI4MjE5MzM4MTEyIj4i0JfTqdCy0YjTqdOp0YDTqdC7INGI0LDQsNGA0LTQsNGF0LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybV9jb3N0c19tb25leSIgbXNnaWQ9IjQ5MDI0NzAzMjQxNDIxNTExMTYiPiLQrdC90Y0g0YLQsNC90YvQsyDRgtOp0LvQsdOp0YDRgiDQvtGA0YPRg9C70LYg0LHQvtC70LfQvtGI0LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfYWN0aXZpdHlfdGl0bGUiIG1zZ2lkPSI0NDY1MDU1MTU3MjA5NjQ4NjQxIj4iVVNCINC80LDRgdGBINGB0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3RpdGxlIiBtc2dpZD0iNTkwMTQ1OTA0MTM5ODc1MTQ5NSI+IlVTQiDRhdC+0LvQsdC+0LPQtNGB0L7QvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzMwODUzODA5NDMxNjQ3NzgzOSI+ItCi0LAg06nTqdGA0LjQudC9INC60L7QvNC/0YzRjtGC0LXRgNGC0Y3RjSBVU0It0YAg0YXQvtC70LHQvtCz0LTRgdC+0L0g0LHQsNC50L3QsC4g0KXRjdGA0Y3QsiDRgtCwINOp06nRgNC40LnQvSDQutC+0LzQv9GM0Y7RgtC10YAg0LHQvtC70L7QvSDTqdOp0YDQuNC50L0g0JDQvdC00YDQvtC50LTRi9C9IFVTQiDRgdCw0L0g0YXQvtC+0YDQvtC90LQg0YTQsNC50Lsg0YXRg9GD0LvQsNGFINCx0L7QuyDQtNC+0L7RgNGFINGC0L7QstGH0LjQvdC0INGF0q/RgNC90Y0g0q/Sry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA1MzUxMDAwNDQ2MDM3ODExIj4i0KLQsCDTqdOp0YDQuNC50L0g0LrQvtC80L/RjNGO0YLQtdGA0YLRjdGNIFVTQi3RgCDRhdC+0LvQsdC+0LPQtNGB0L7QvSDQsdCw0LnQvdCwLiDQpdGN0YDRjdCyINGC0LAg06nTqdGA0LjQudC9INC60L7QvNC/0YzRjtGC0LXRgCDQsdC+0LvQvtC9INOp06nRgNC40LnQvSDQkNC90LTRgNC+0LnQtNGL0L0gVVNCINGB0LDQvSDRhdC+0L7RgNC+0L3QtCDRhNCw0LnQuyDRhdGD0YPQu9Cw0YUg0LHQvtC7INC00L7QvtGA0YUg0YLQvtCy0YfQuNC90LQg0YXSr9GA0L3RjSDSr9KvLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2J1dHRvbl9tb3VudCIgbXNnaWQ9IjEwNTIyNTk5MzAzNjk1MDgyMzUiPiJVU0Ig0YHQsNC90LMg0LDRgdCw0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2Vycm9yX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzAxNzA0NTIxNzM2NTU0MDY1OCI+IlVTQiDRgdCw0L3QsyBVU0Ig0LzQsNGB0YEg0YHQsNC9INCx0L7Qu9Cz0L7QvSDQsNGI0LjQs9C70LDRhdCw0LQg0LDQu9C00LDQsCDQs9Cw0YDQsNCyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2Vycm9yX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyODc2MDE4NTEyNzE2OTcwMzEzIj4iU0Qg0LrQsNGA0YLRi9CzIFVTQiDQvNCw0YHRgSDRgdCw0L0g0LHQvtC70LPQvtC9INCw0YjQuNCz0LvQsNGF0LDQtCDQsNC70LTQsNCwINCz0LDRgNCw0LIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODE3NTg5MjU1NDc1NzIxNjUyNSI+IlVTQiDRhdC+0LvQsdC+0LPQtNGB0L7QvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTM5ODIyNzgzODI4MTgzNzYzIj4i06jTqdGA0LjQudC9INC60L7QvNC/0YzRjtGC0LXRgC0g0Y3RjdGBL9C70YPRgyDRhNCw0LnQuyDRhdGD0YPQu9Cw0YUg0LHQvtC7INGF0q/RgNC90Y0g0q/SryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3Bfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjMzNjA1ODM5NjY2MzUxNjAxNyI+IlVTQiDRgdCw0L3QsyDRg9C90YLRgNCw0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3Bfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIxNjU2ODUyMDk4NTU1NjIzODIyIj4iVVNCINGB0LDQvdCzINGD0L3RgtGA0LDQsNGFINCx0L7QuyDRhdKv0YDQvdGNINKv0q8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF90aXRsZSIgbXNnaWQ9IjY2MDEyOTg1MTcwODc3NTg1MyI+IlVTQiDRgdCw0L0g0LDRiNC40LPQu9Cw0LPQtNCw0LYg0LHQsNC50L3QsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MjY0MDI1MjgwNzc3MjE5NTIxIj4iVVNCINGB0LDQvdCzINGD0L3RgtGA0LDQsNGF0LDQsNGBINOp0LzQvdOpINOp06nRgNC40LnQvSDQkNC90LTRgNC+0LnQtNGL0L0gU0Qg0LrQsNGA0YLRi9CzINC60L7QvNC/0YzRjtGC0LXRgNGN0Y3RgdGN0Y0g0YHQsNC70LPQsNC90LAoXCLQs9Cw0YDQs9Cw0L3QsFwiKSDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgwNDM5Njk3ODI0NjA2MTMxMTQiPiJVU0Ig0YHQsNC90LMg0YPQvdGC0YDQsNCw0YXQsNCw0YEg06nQvNC906kg06nTqdGA0LjQudC9INCQ0L3QtNGA0L7QudC00YvQvSBTRCDQutCw0YDRgtGL0LMg0LrQvtC80L/RjNGO0YLQtdGA0Y3RjdGB0Y3RjSDRgdCw0LvQs9Cw0L3QsChcItCz0LDRgNCz0LDQvdCwXCIpINGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9idXR0b25fbW91bnQiIG1zZ2lkPSI3MDYwMjE4MDM0OTAwNjk2MDI5Ij4iVVNCINGB0LDQvdCzINGD0L3RgtGA0LDQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9lcnJvcl9tZXNzYWdlIiBtc2dpZD0iMTk3MDM3NDg5ODI2MzA2MzgzNiI+IlVTQiDRgdCw0L3QsyDRg9C90YLRgNCw0LDRhdCw0LQg0LDQu9C00LDQsCDQs9Cw0YDQsNCyLiBVU0Ig0YXQvtGB0YLQvtC+INGB0LDQu9Cz0LDRgdCw0L0g0Y3RgdGN0YXRjdGNINGI0LDQu9Cz0LDQsNC0INC00LDRhdC40L0g0L7RgNC+0LvQtNC+0L3QviDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19jb25maXJtX2tpbGxfc3RvcmFnZV91c2Vyc190aXRsZSIgbXNnaWQ9Ijk2MzAzOTAzMzQ3MDQ3ODY5NyI+IlVTQiDRgdCw0L3QsyDQsNGB0LDQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX2NvbmZpcm1fa2lsbF9zdG9yYWdlX3VzZXJzX3RleHQiIG1zZ2lkPSI1MTAwNDI4NzU3MTA3NDY5NDU0Ij4i0KXRjdGA0Y3QsiDRgtCwIFVTQiDRgdCw0L3QsyDQsNGB0YPRg9Cy0LDQuyDRgtCw0L3RiyDQsNGI0LjQs9C70LDQtiDQsdCw0LnQs9CwINC30LDRgNC40Lwg0LDQv9C/INC30L7Qs9GB0L7RhSDQsdCwINGC0LAgVVNCINGB0LDQvdCz0LDQsCDRg9C90YLRgNCw0LDRgtCw0Lsg0LDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC20LPSr9C5INCx0LDQudC2INCx0L7Qu9C30L7RiNCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfZXJyb3JfdGl0bGUiIG1zZ2lkPSI3MzIzNjU4NDY5NjI2NTE0MjA3Ij4iVVNCINCw0LbQuNC70LvQsNCz0LDQsCDQsdKv0YLRjdC70LPSr9C50YLRjdCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX29rIiBtc2dpZD0iNzM3Njk1MzE2NzAzOTg2NTcwMSI+ItCi0LjQudC8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX210cF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIzNjk5OTEzMDk3MzkxNTUwMzk0Ij4i0JzQtdC00LjQsCDRgtOp0YXTqdOp0YDTqdC80LYg0LHQvtC70L7QvSDRhdC+0LvQsdC+0LPQtNC+0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjE5NjA4MTcxOTIyMTYwNjQ4MzMiPiLQmtCw0LzQtdGAINCx0L7Qu9Cz0L7QvSDRhdC+0LvQsdC+0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfY2RfaW5zdGFsbGVyX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY3NzQ3MTI4Mjc4OTIwOTA3NTQiPiLQodGD0YPQu9Cz0LDQs9GHINCx0L7Qu9Cz0L7QvSDRhdC+0LvQsdC+0LPQtNGB0L7QvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3Nvcnlfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNzg0ODIzNjk3NDA4NzY1MzY2NiI+IlVTQiDRgtOp0YXTqdOp0YDTqdC80LbQuNC0INGF0L7Qu9Cx0L7Qs9C00L7QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjIyOTA4NTkzOTk5ODM3MjAyNzEiPiLQkdGD0YHQsNC0IFVTQiDRgdC+0L3Qs9C+0LvRgiDRhdC40LnRhSDQsdC+0Lsg0YXSr9GA0L3RjSDSr9KvLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI5MDIwMDkyMTk2MDYxMDA3MjYyIj4iVVNCINGB0LDQvdCzINGE0L7RgNC80LDRgtC70LDRhSDRg9GDPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2NDg0MTU5MjE1MjY1MjYwNjkiPiJTRCDQutCw0YDRgtGL0LMg0YTQvtGA0LzQsNGC0LvQsNGFINGD0YM/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkzNDAxNjg1MzQyNTc2MTA3OCI+ItCi0LDQvdGLIFVTQiDRgdCw0L3QtCDRhdCw0LTQs9Cw0LvQsNCz0LTRgdCw0L0g0LHSr9GFINGE0LDQudC7INCw0YDQuNC70LPQsNCz0LTQsNC90LAuINCt0L3RjSDSr9C50LvQtNC70LjQudCzINCx0YPRhtCw0LDRhSDQsdC+0LvQvtC80LbQs9Kv0LkhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDEzMTg5NTAyNzU0MzgzMCI+ItCi0LDQvdGLINC60LDRgNGC0LDQvSDQtNGN0Y3RgNGFINCx0q/RhSDQtNCw0YLQsCDRg9GB0YLQsNGFINCx0L7Qu9C90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X2J1dHRvbl9mb3JtYXQiIG1zZ2lkPSI0MTMxMDY0NTYwMTI3NDc4Njk1Ij4i0KTQvtGA0LzQsNGC0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2NzI5MDQ0Nzc4OTQ5MTg5OTE4Ij4iVVNCINC00LXQsdCw0LMg0YXQvtC70LHQvtCz0LTRgdC+0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGJfYWN0aXZlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTAxNjY1NDYyNzYyNjQ3NjE0MiI+IlVTQiDQtNC10LHQsNCzINGF0LjQudGF0LjQudCzINC40LTRjdCy0YXQs9Kv0Lkg0LHQvtC70LPQvtGFINCx0L7QuyDRhdKv0YDQvdGNINKv0q8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2lucHV0X21ldGhvZCIgbXNnaWQ9IjQ2NTMzODczMzY3OTEyMjI5NzgiPiLQntGA0YPRg9C70LDRhSDQsNGA0LPRi9CzINGB0L7QvdCz0L7QvdC+INGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjkwOTE2NTIxNTc3MjI0OTUxMTYiPiLQntGA0YPRg9C70LDRhSDQsNGA0LPRi9CzINGC0L7RhdC40YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNjIwMzExMjQ3ODA5NTExNzYyNSI+ItCR0L7QtNC40YIg0LPQsNGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGFyZHdhcmUiIG1zZ2lkPSI3NTE3ODIxMDg2ODg4OTkwMjc4Ij4i0KXQsNGA0LTQstC10YAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3Rfa2V5Ym9hcmRfbGF5b3V0X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjE0MDczNjcwMTcyNjMwMzA3NzMiPiLQk9Cw0YDRi9C9INGB0YXQtdC80LjQudCzINGB0L7QvdCz0L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDY1OTA3NzAwNDQ5MjU3MDYzIj4i0JPQsNGA0YvQvSDRgdGF0LXQvNC40LnQsyDRgdC+0L3Qs9C+0YUg0LHQvtC7INGF0q/RgNC90Y0g0q/Sry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYXN0X3Njcm9sbF9hbHBoYWJldCIgbXNnaWQ9IjU0MzMyNzU0ODU0OTkwMzkxOTkiPiIgQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYXN0X3Njcm9sbF9udW1lcmljX2FscGhhYmV0IiBtc2dpZD0iNDAzMDE3MDUyNDU5NTEyMzYxMCI+IiAwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5kaWRhdGVzX3N0eWxlIiBtc2dpZD0iNDMzMzkxMzA4OTYzNzA2MjI1NyI+PHU+ItC90Y3RgCDQtNGN0LLRiNC40LPRhyI8L3U+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM0NDk4MTYwMDUzNTE0Njg1NjAiPiJVU0Ig0YHQsNC90LMg0LHRjdC70LTRjdC2INCx0LDQudC90LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTQ1NzYwMzQxODk3MDk5NDA1MCI+IlNEINC60LDRgNGCINCx0Y3Qu9C00Y3QtiDQsdCw0LnQvdCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iODI4NzMxOTg4MjkyNjczNzA1MyI+ItCQ0LvQtNCw0LDQsyDRiNCw0LvQs9Cw0LYg0LHQsNC50L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzc4ODA0MDc0NTY4NjIyOTMwNyI+ItCl0L7QvtGB0L7QvSBVU0Ig0YHQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzgwNDc3ODM4MjQxMjEyOTk3Ij4i0KXQvtC+0YHQvtC9IFNEINC60LDRgNGCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzg0MDEyMTA2NzQyNzI2OTUwMCI+IlVTQiDRgdCw0L0g0YXQvtC+0YHQvtC9INGN0YHQstGN0Lsg0LTRjdC80LbQuNCz0LTRjdGF0LPSr9C5INGE0LDQudC7INGB0LjRgdGC0LXQvNGC0Y3QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2NDEwNjU2NDE3ODY5MjM2MDQiPiJTRCDQutCw0YDRgiDRhdC+0L7RgdC+0L0g0Y3RgdCy0Y3QuyDQtNGN0LzQttC40LPQtNGN0YXQs9Kv0Lkg0YTQsNC50Lsg0YHQuNGB0YLQtdC8LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjA5MDA0Njc2OTUzMjcxMzU2MyI+ItCT0Y3QvNGC0YHRjdC9IFVTQiDRgdCw0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjQxMDcyMzkwNjAxOTEwMDE4OSI+ItCT0Y3QvNGC0YHRjdC9IFNEINC60LDRgNGCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE3OTU5MTc1NzgzOTUzMzMyODAiPiJVU0Ig0YHQsNC9INCz0Y3QvNGC0YHRjdC9INCx0LDQudC90LAuINCU0LDRhdC40L0g0YTQvtGA0LzQsNGC0LvQsNC2INKv0LfQvdGNINKv0q8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTc1Mzg5ODU2NzUyNTU2ODI1MyI+IlNEINC60LDRgNGCINCz0Y3QvNGC0YHRjdC9INCx0LDQudC90LAuINCU0LDRhdC40L0g0YTQvtGA0LzQsNGC0LvQsNC2INKv0LfQvdGNINKv0q8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE2NjE2ODMwMzEzMzA5NTEwNzMiPiJVU0Ig0YHQsNC90LMg0YHQsNC90LDQvNGB0LDRgNCz0q/QuSDRhdCw0YHQsNCz0LTQsNCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjg3MjE1Mjg4MjYwNDQwNzgzNyI+IlNEINC60LDRgNGCINGB0LDQvdCw0LzRgdCw0YDQs9Kv0Lkg0YXQsNGB0LDQs9C00LDQsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQzMjk4NDg4MTk4NjU1OTQyNDEiPiLQlNCw0YLQsCDRhdC+0YXQuNGA0LvQvtC+0YEg0YHRjdGA0LPQuNC50LvQtiBVU0Ig0YHQsNC90LMg0YHRg9Cz0LDQu9Cw0YXQsNCw0YHQsNCwINOp0LzQvdOpINGB0LDQu9Cz0LDQtiDQsdCw0LnQvdCwINGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjYwMTgzMjkzNzQ3NDQ4MjQxIj4i0JTQsNGC0LAg0YXQvtGF0LjRgNC70L7QvtGBINGB0Y3RgNCz0LjQudC70LYgU0Qg0LrQsNGA0YLRi9CzINGF0LDRgdCw0YXQsNCw0YHQsNCwINOp0LzQvdOpINGB0LDQu9Cz0LDQtiDQsdCw0LnQvdCwINGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzk2Nzk3Mzg5MzI3MDM2MDIzMCI+IlVTQiDRgdCw0L3QsyDRgdCw0LvQs9Cw0LYg0LDQstCw0YXQsNC0INCw0Y7Rg9C70LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjcyOTgwMTEzMDc5MDYxNjIwMCI+IlNEINC60LDRgNGC0YvQsyDRhdCw0YHQsNGF0LDQtCDQsNGO0YPQu9Cz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE0MjE5NTM2MTYwNjQ5MzUzMCI+IlVTQiDRgdCw0L3QsyDRgdGD0LPQsNC70LDRhdCw0LQg0LDRjtGD0LvQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU2ODg0MTI3ODEzODM3NzYwNCI+IlNEINC60LDRgNGC0LDQsCDRgdCw0LvQs9Cw0LYg0LDQstCw0YUg0LDRjtGD0LvQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ0ODYzNzcyMzAxNDAyMjc2NTEiPiLQpdCw0YHQsNCz0LTRgdCw0L0gVVNCINGB0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MDI1MTgwMzA0MDQzODEzMTgiPiLQodGD0LPQsNC70YHQsNC9IFNEINC60LDRgNGCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjkyMTEyNjE2MjU4MDU3NDE0MyI+IlVTQiDRgdCw0L0g0YHRg9Cz0LDQu9Cw0LPQtNCw0LIuINCo0LjQvdGNINC80LXQtNC40LDQsyDRhdC40LnQvdGNINKv0q8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzODcwMTIwNjUyOTgzNjU5NjQxIj4iU0Qg0LrQsNGA0YIg0YXQsNGB0LDQs9C00LDQsi4g0KjQuNC90LjQudCzINGF0LjQudC90Y0g0q/Sry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9saXN0X2VtcHR5IiBtc2dpZD0iMTY3NTM4ODMzMDc4Njg0MTA2NiI+ItCi0LDQsNGA0LDRhSDQsNC60YLQuNCy0LjRgtC4INC+0LvQtNGB0L7QvdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BrZ1VzYWdlU3RhdHMiIG1zZ2lkPSI4Nzg3MzUyMDc0MzI2NzQ4ODkyIj4i0LrQvtC80L/QvtC90LXQvdGCINCw0YjQuNCz0LvQsNC70YLRi9C9INGB0YLQsNGC0LjRgdGC0LjQutC40LnQsyDRiNC40L3RjdGH0LvRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGtnVXNhZ2VTdGF0cyIgbXNnaWQ9IjExMDY2MTI0MjQyNTQyNzc2MzAiPiLQkNC/0L8g0L3RjCDQutC+0LzQv9C+0L3QtdC90YIg0YXRjdGA0Y3Qs9C70Y3RjdC90LjQuSDRhtGD0LPQu9GD0YPQu9Cw0LPQtNGB0LDQvSDRgdGC0LDRgtC40YHRgtC40LrQuNC50LMg06nTqdGA0YfQu9Op0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INGI0LDQsNGA0LTQu9Cw0LPQsNCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvcHlQcm90ZWN0ZWREYXRhIiBtc2dpZD0iNDM0MTAzNjMxMTIxMTQwNjY5MiI+ItC60L7QvdGC0LXQvdGCINGF0YPRg9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvcHlQcm90ZWN0ZWREYXRhIiBtc2dpZD0iNDM5MDY5NzEyNDI4ODMxNzgzMSI+ItCQ0L/QvyDQvdGMINC60L7QvdGC0LXQvdGC0YvQsyDRhdGD0YPQu9Cw0YUg0q/QvdC00YHRjdC9INC60L7QvdGC0LXQudC90LXRgCDSr9C50LvRh9C40LvQs9GN0Y3QsyDQtNGD0YPQtNCw0YUg0LHQvtC70L7QvNC20YLQvtC5LiDQrdC90LPQuNC50L0g0LDQv9C/LdC0INCw0YjQuNCz0LvQsNGFINCx0L7Qu9C+0LzQttCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JvdXRlX21lZGlhX291dHB1dCIgbXNnaWQ9IjE2NDIwMjQ0NTU3NTA0MTQ2OTQiPiLQnNC10LTQuNCwINCz0LDRgNCw0LvRgtGL0LMg0YfQuNCz0LvSr9Kv0LvRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfcm91dGVfbWVkaWFfb3V0cHV0IiBtc2dpZD0iNDkzMjgxODc0OTU0NzI0NDM0NiI+ItCQ0L/Qv9C70LjQutC10YjQvSDQvdGMINC80LXQtNC40LAg0LPQsNGA0LDQu9GC0YvQsyDQsdGD0YHQsNC0INCz0LDQtNCw0LDQtCDRgtOp0YXTqdOp0YDTqdC80LbRgNKv0q8g0YfQuNCz0LvSr9Kv0LvRjdGFINCx0L7Qu9C+0LzQttGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc19rZXlndWFyZF9zZWN1cmVfc3RvcmFnZSIgbXNnaWQ9Ijc1NjU1NTIyMzc5Nzc4MTUwNDciPiLQotKv0LvRhdKv0q/RgCDRhdCw0LzQs9Cw0LDQu9Cw0YUg0LDRjtGD0LvQs9Kv0Lkg0YHQsNC90LQg0YXQsNC90LTQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzX2tleWd1YXJkX3NlY3VyZV9zdG9yYWdlIiBtc2dpZD0iNTg2NjI0NTQ4NDMwMzI4NTc2MiI+ItCQ0L/Qv9C70LjQutC10YjQvSDQvdGMINGF0LDQvNCz0LDQsNC70LDQu9GC0YLQsNC5INCw0Y7Rg9C70LPSr9C5INGB0LDQvdC0INGF0LDQvdC00LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sX2tleWd1YXJkIiBtc2dpZD0iMTcyMTk1MTg0MjA3ODI4Mzg3Ij4i0KLSr9C70YXSr9Kv0YAg0YXQsNC80LPQsNCw0LvQsNC70YLRi9C9INGF0LDRgNGD0YPQu9Cw0YUg0LHQvtC70L7QvSDQtNCw0LvQtNC70LDRhdGL0LMg0YPQtNC40YDQtNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sX2tleWd1YXJkIiBtc2dpZD0iMzA0MzczMjI5MDUxODYyOTA2MSI+ItCQ0L/Qv9C70LjQutC10YjQvSDQvdGMINGC0q/Qu9GF0q/Sr9GAINGF0LDQvNCz0LDQsNC70LDQs9GH0YvQsyDRg9C00LjRgNC00LDRhSDQsdC+0LvQvtC80LbRgtC+0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHV0b3JpYWxfZG91YmxlX3RhcF90b196b29tX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0MDcwNDMzMjA4MTYwMDYzNTM4Ij4i06jRgdCz06nRhSDQutC+0L3RgtGA0L7QuyDQtNGN0Y3RgCDRhdC+0ZHRgCDRg9C00LDQsCDRgtC+0LLRiNC40L3QviDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2FkZ2V0X2hvc3RfZXJyb3JfaW5mbGF0aW5nIiBtc2dpZD0iNDg4MjAwNDMxNDkwNjQ2NjE2MiI+ItCS0LjQtNC20LXRgiDQvdGN0LzQtiDRh9Cw0LTRgdCw0L3Qs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9nbyIgbXNnaWQ9IjgzMjA4NDU2NTE3MzczNjkwMjciPiLQntGH0LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fc2VhcmNoIiBtc2dpZD0iNjU4MTEwMjcxODIyODA3ODExIj4i0KXQsNC50YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3NlbmQiIG1zZ2lkPSIyMzE2MTY2NTU2MzQ5MzE0NDI0Ij4i0JjQu9Cz0Y3RjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9uZXh0IiBtc2dpZD0iMzEzODg0MzkwNDAwOTgxMzgzNCI+ItCU0LDRgNCw0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZG9uZSIgbXNnaWQ9Ijg5NzE1MTYxMTc5MTA5MzQ2MDUiPiLQlNGD0YPRgdCz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fcHJldmlvdXMiIG1zZ2lkPSIxNDQzNTUwMDM5MjUwMTA1OTQ4Ij4i06jQvNC906nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZGVmYXVsdCIgbXNnaWQ9IjI4NDA5MjE4ODU1NTgwNDU3MjEiPiLQkNC20LjQu9C70YPRg9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpYWxfbnVtYmVyX3VzaW5nIiBtc2dpZD0iNTc4OTE3NjQyNTE2NzU3MzU4NiI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVzPC94bGlmZjpnPiDQsNGI0LjQs9C70LDQvSBcbiDQt9Cw0LvQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfY29udGFjdF91c2luZyIgbXNnaWQ9IjQ5NDc0MDUyMjY3ODgxMDQ1MzgiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lczwveGxpZmY6Zz4g0LTRg9Cz0LDQsNGAINCw0YjQuNCz0LvQsNC9IFxuINGF0LDRgNC40LvRhtCw0LPRhyDSr9Kv0YHQs9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9jcmVkZW50aWFsc19wZXJtaXNzaW9uX21lc3NhZ2VfaGVhZGVyIiBtc2dpZD0iMjEwNjEwMzgxNzkzNzg1OTY2MiI+ItCU0LDRgNCw0LDRhSDQvdGN0LMg0LHRg9GO0YMg0YLSr9Kv0L3RjdGN0YEg0LTRjdGN0Ygg0LDQv9C/INGC0LDQvdGLINCw0LrQsNGD0L3RgtCw0LQg0L7QtNC+0L4g0LHQvtC70L7QvSDQtNCw0YDQsNCwINGF0LDQvdC00LDRhSDQt9Op0LLRiNOp06nRgNC70LjQudCzINGF0q/RgdGN0LYg0LHQsNC50L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9jcmVkZW50aWFsc19wZXJtaXNzaW9uX21lc3NhZ2VfZm9vdGVyIiBtc2dpZD0iMzEyNTIxMTM0MzM3OTM3NjU2MSI+ItCi0LAg0Y3QvdGNINGF0q/RgdGN0LvRgtC40LnQsyDQt9Op0LLRiNOp06nRgNOp0YUg0q/Srz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9wZXJtaXNzaW9uc19oZWFkZXJfdGV4dCIgbXNnaWQ9IjY4NzQ0OTc0MDgyMDE4MjY3MDgiPiLQpdCw0L3QtNCw0YUg0YXSr9GB0Y3Qu9GCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3ciIG1zZ2lkPSI3MjI1OTQ4ODExMjk2Mzg2NTUxIj4i0JfTqdCy0YjTqdOp0YDTqdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueSIgbXNnaWQ9IjIwODE4Nzk4ODU3NTU0MzQ1MDYiPiLQotCw0YLQs9Cw0LvQt9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtaXNzaW9uX3JlcXVlc3Rfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjQ4Njc1OTc5NTkyNjIzNzkwNyI+ItCX06nQstGI06nTqdGA06nQuyDRhdKv0YHRjdCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWlzc2lvbl9yZXF1ZXN0X25vdGlmaWNhdGlvbl93aXRoX3N1YnRpdGxlIiBtc2dpZD0iODUzMDM5MzEzOTYzOTU2MDE4OSI+Ijx4bGlmZjpnIGlkPSJBQ0NPVU5UIj4lczwveGxpZmY6Zz4g0LDQutCw0YPQvdGCINC306nQstGI06nTqdGA06nQuyBcbiDRhdKv0YHRgdGN0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnB1dF9tZXRob2RfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjEyODM1NTcxNzk5NDQ5OTI2NDkiPiLQntGA0YPRg9C70LDRhSDQsNGA0LPQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjM2ODc5NjkxMzgzNzUwOTI0MjMiPiLQodC40L3QuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjQxNDgxMjA3NDIwOTY0NzQ2NDEiPiLQpdCw0L3QtNCw0LvRgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndhbGxwYXBlcl9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMTI0MDA4Nzg0NDMwNDY4NzY2MiI+ItCl0LDQvdGL0L0g0LfRg9GA0LDQsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZXJfd2FsbHBhcGVyIiBtc2dpZD0iNzg3MzQ3NjE5OTI5NTE5MDI3OSI+ItCl0LDQvdGL0L0g0LfRg9GA0LDQsyDRgdC+0LvQuNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm90aWZpY2F0aW9uX2xpc3RlbmVyX2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSIyMDE0MTYyODM1NDgxOTA2NDI5Ij4i0JzRjdC00Y3Qs9C00Y3QuyDRgdC+0L3RgdC+0LPRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90aXRsZSIgbXNnaWQ9IjE5NjE1MjEzNTUyMDQyODI3Ij4iVlBOINC40LTRjdCy0YXRgtGN0Lkg0LHQvtC70L7QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90aXRsZV9sb25nIiBtc2dpZD0iNjQwMDcxNDc5ODA0OTI1MjI5NCI+IlZQTi3QsyA8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g0LjQtNGN0LLRhdGC0Y3QuSDQsdC+0LvQs9C+0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGV4dCIgbXNnaWQ9IjMwMTEzMDY2MDcxMjY0NTAzMjIiPiLQodKv0LvQttGN0Y3QsyDRg9C00LjRgNC00LDRhSDQsdC+0Lsg0YXSr9GA0L3RjSDSr9KvLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90ZXh0X2xvbmciIG1zZ2lkPSI2NDA3MzUxMDA2MjQ5MTc0NDczIj4iPHhsaWZmOmcgaWQ9IlNFU1NJT04iPiVzPC94bGlmZjpnPi3QtCDRhdC+0LvQsdC+0LPQtNC+0LIuINCh0q/Qu9C20Y3RjdCzINGD0LTQuNGA0LTQsNGFINCx0L7QuyDRhdKv0YDQvdGNINKv0q8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Nvbm5lY3RpbmciIG1zZ2lkPSI2NDQzNDM4OTY0NDQwOTYwNzQ1Ij4i0JHQsNC50L3Qs9GL0L0gVlBOLdC0INGF0L7Qu9Cx0L7Qs9C00L7QtiDQsdCw0LnQvdCwLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX2xvY2tkb3duX2Nvbm5lY3RlZCIgbXNnaWQ9IjgyMDI2Nzk2NzQ4MTkyMTM5MzEiPiLQkdCw0LnQvdCz0LAgVlBOINGF0L7Qu9Cx0L7QvtGC0L7QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9lcnJvciIgbXNnaWQ9IjYwMDkyNDk4MTQwMzQ3MDgxNzUiPiLQkdCw0LnQvdCz0YvQvSBWUE4g0LDQu9C00LDQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25maWciIG1zZ2lkPSI2NDE1ODk5MTUwNjcxNTM3OTcwIj4i0KLQvtGF0LjRgNGD0YPQu9Cw0YUg0LHQvtC7INGF0q/RgNC90Y0g0q/SryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVwbG9hZF9maWxlIiBtc2dpZD0iMjg5Nzk1NzE3MjM2NjczMDQxNiI+ItCk0LDQudC7INGB0L7QvdCz0L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2ZpbGVfY2hvc2VuIiBtc2dpZD0iNjM2MzY0ODU2MjE3MDc1OTQ2NSI+ItCh0L7QvdCz0L7RgdC+0L0g0YTQsNC50Lsg0LHQsNC50YXQs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXNldCIgbXNnaWQ9IjI0NDgxNjgwODA5NjQyMDk5MDgiPiLQkdKv0LPQtNC40LnQsyDRhtGN0LLRjdGA0LvRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3VibWl0IiBtc2dpZD0iMTYwMjMzNTU3MjA4OTkxMTk0MSI+ItCY0LvQs9GN0Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcl9tb2RlX2Rpc2FibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMzE2NDc2ODIxMjAwMzg2NDMxNiI+ItCc0LDRiNC40L3RiyDQs9C+0YDQuNC8INC40LTRjdCy0YXRgtGN0Lkg0LHQvtC70L7QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcl9tb2RlX2Rpc2FibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI4MDM1MjMwNTM3NTYzNTAzMjYyIj4i0JzQsNGI0LjQvdGLINCz0L7RgNC40LzQvtC+0YEg0LPQsNGA0LDRhSDQsdC+0Lsg0YXSr9GA0L3RjSDSr9KvLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRldGhlcmVkX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjMxNDY2OTQyMzQzOTgyMDI2MDEiPiLQnNC+0LTQtdC8INCx0L7Qu9Cz0L7RhSDRjdGB0LLRjdC7INC40LTRjdCy0YXRgtGN0Lkg0YbRjdCzINCx0L7Qu9Cz0L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRldGhlcmVkX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iNjg1NzAzMTc2MDEwMzA2Mjk4MiI+ItCi0L7RhdC40YDRg9GD0LvQsNGFINCx0L7QuyDRhdKv0YDQvdGNINKv0q8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja19idXR0b25fbGFiZWwiIG1zZ2lkPSIyMzAwNDcwMDA0NTAzMzQzNDM5Ij4i0JHRg9GG0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5leHRfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTA4MDU1NTEwNDY3Nzk5MjQwOCI+ItCU0LDRgNCw0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNraXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTI3NTM2MjI5OTQ3MTYzMTgxOSI+ItCQ0LvQs9Cw0YHQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGhyb3R0bGVfd2FybmluZ19ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI0ODkwODk0MjY3NDU0ODY3Mjc2Ij4i0JzQvtCx0LDQudC7INC00LDRgtCwINGF0Y3RgNGN0LPQu9GN0Y0g06nQvdC006nRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlX3dhcm5pbmdfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIzMzQwODIyMjI4NTk5MzM3NzQzIj4i0JzQvtCx0LDQudC7INC00LDRgtCwINGF0Y3RgNGN0LPQu9GN0Y3QvdC40Lkg0YLQsNC70LDQsNGAINC00Y3Qu9Cz0Y3RgNGN0L3Qs9Kv0Lkg0q/Qt9GN0YUg0LHQvtC7INGF0q/RgNC90Y0g0q/SryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2MjY5NTQxODk3NzI5NzgxMzMyIj4i0JzQvtCx0LDQudC7INC00LDRgtCwINGF0Y/Qt9Cz0LDQsNGAINGF0Y3RgtGA0Y3QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRocm90dGxlZF9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjU0NDM0NTczMjEzNTQ5MDcxODEiPiLQnNC+0LHQsNC50Lsg0LTQsNGC0LAg0YXRjdGA0Y3Qs9C70Y3RjdC90LjQuSDRgtCw0LvQsNCw0YAg0LTRjdC70LPRjdGA0Y3QvdCz0q/QuSDSr9C30Y3RhSDQsdC+0Lsg0YXSr9GA0L3RjSDSr9KvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fbWF0Y2hlcyIgbXNnaWQ9IjgxMjk0MjE5MDg5MTU4NDA3MzciPiLQmNC70Y3RgNGGINCw0LvQs9CwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZF9vbl9wYWdlIiBtc2dpZD0iMTk0Njc5OTIzMzgyMjgyMDM4NCI+ItCl0YPRg9C00LDRgdC90LDQsNGBINC+0LvQvtGFIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJtYXRjaGVzX2ZvdW5kIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODE2NzE0NzA4MTEzNjU3OTQzOSI+IjEg0YPRgtCz0LAiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ2NDE4NzI3OTcwNjc2MDkxNzciPiI8eGxpZmY6ZyBpZD0iVE9UQUwiPiVkPC94bGlmZjpnPi3QvSA8eGxpZmY6ZyBpZD0iSU5ERVgiPiVkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9tb2RlX2RvbmUiIG1zZ2lkPSI3MjE3NTgxNjQwNDYxOTIyMjg5Ij4i0JTRg9GD0YHQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc191bm1vdW50aW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5MjM4MTA0NDg1MDc2MTI3NDYiPiJVU0Ig0YHQsNC90LMg0YHQsNC70LPQsNC2INCx0LDQudC90LDigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc191bm1vdW50aW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTMyNzg5NDk5ODQwOTUzNzE5MCI+IlNEINC60LDRgNGC0YvQsyDRgdCw0LvQs9Cw0LYg0LHQsNC50L3QsOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX2VyYXNpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDUyMTU3MzMyMTUyNDM0MDA1OCI+IlVTQiDRgdCw0L3QsyDQsNGA0LjQu9Cz0LDQtiDQsdCw0LnQvdCw4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfZXJhc2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1OTY5ODg4NzU1MDcwNDMwNDIiPiJTRCDQutCw0YDRgtGL0LMg0YbRjdCy0Y3RgNC70Y3QtiDQsdCw0LnQvdCw4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyOTk3Njk1NjM2MjQ3NzY5NDgiPiJVU0Ig0YHQsNC90LMg0LDRgNC40LvQs9Cw0LYg0YfQsNC00YHQsNC90LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcm1hdF9lcnJvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMTUyNDg2OTY2NDQ1MTA5MzUiPiJTRCDQutCw0YDRgtGL0LMg0LDRgNC40LvQs9Cw0LYg0YfQsNC00YHQsNC90LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2JhZF9yZW1vdmFsIiBtc2dpZD0iNzk2MDg2NDA2MTAxNjYwMzI4MSI+IlNEINC60LDRgNGC0YvQsyDRgdCw0LvQs9Cw0LvQs9Kv0LnQs9GN0Y3RgCDRhdCw0YHRgdCw0L0g0LHQsNC50L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9jaGVja2luZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MTgxODg3MjAwMDk1Njk2OTMiPiJVU0Ig0YHQsNC90LMg0L7QtNC+0L4g0YjQsNC70LPQsNC2INCx0LDQudC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfY2hlY2tpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MzM0NzYyNTAzOTA0ODI3NDgxIj4iU0Qg0LrQsNGA0YLRi9CzINC+0LTQvtC+INGI0LDQu9Cz0LDQtiDQsdCw0LnQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JlbW92ZWQiIG1zZ2lkPSI3MDAxNTI2OTA1MDU3OTUyMDk3Ij4iU0Qg0LrQsNGA0YLRi9CzINGB0YPQs9Cw0LvRgdCw0L0g0LHQsNC50L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9zaGFyZWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNTgzMDgxNDM0OTI1MDgzNDIyNSI+IlVTQiDRgdCw0L3QsyDQvtC00L7QviDQutC+0LzQv9GM0Y7RgtC10YDRjdGN0YEg0LDRiNC40LPQu9Cw0LYg0LHQsNC50L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9zaGFyZWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NzA2MTMwNTY4MTMzNTQwNDM1Ij4iVVNCINGB0LDQvdCzINC+0LTQvtC+INC60L7QvNC/0YzRjtGC0LXRgNGN0Y3RgSDQsNGI0LjQs9C70LDQtiDQsdCw0LnQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3Vua25vd25fc3RhdGUiIG1zZ2lkPSI3MjkxOTI3ODIxOTcyOTAzODUiPiLQk9Cw0LTQsNCw0LQg0LzQtdC00LjQsCDSr9C7INC80Y3QtNGN0LPQtNGN0YUg0YHRgtCw0YLRg9GB0YLQsNC5INCx0LDQudC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmUiIG1zZ2lkPSIxNzc4Njg2NjE4MjMwMDExOTY0Ij4i0KXRg9Cy0LDQsNC70YbQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZCIgbXNnaWQ9IjQ4MDgyNzA5MDAzMjI5ODU5NjAiPiLQntC70L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlYnNlYXJjaCIgbXNnaWQ9IjQzMzcxNTc5Nzc0MDAyMTE1ODkiPiLQktC10LEg0YXQsNC50LvRgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmRfbmV4dCIgbXNnaWQ9IjU3NDIxMjQ2MTg5NDIxOTM5NzgiPiLQlNCw0YDQsNCw0LPQuNC50L3RhdGL0LMg0YXQsNC50YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kX3ByZXZpb3VzIiBtc2dpZD0iMjE5NjcyMzY2OTM4ODM2MDUwNiI+ItOo0LzQvdOp0YXTqdOp0YEg0L7Qu9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNOb3RpZlRpY2tlciIgbXNnaWQ9IjU2MjI2ODM5MTI2MTY0OTYxNzIiPiI8eGxpZmY6ZyBpZD0iTkFNRSI+JXM8L3hsaWZmOmc+LdC9INCx0LDQudGA0YjQu9GL0L0g0YXSr9GB0Y3Qu9GCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZUaXRsZSIgbXNnaWQ9IjU0NDY4NTg3MTcxNTc0MTY4MzkiPiLQkdCw0LnRgNGI0LvRi9C9INGF0q/RgdGN0LvRgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc05vdGlmTWVzc2FnZSIgbXNnaWQ9IjEzNzQ3MTgwMjMyMjQwMDA3MDIiPiI8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz4gKDx4bGlmZjpnIGlkPSJTRVJWSUNFIj4lMiRzPC94bGlmZjpnPikg0YXSr9GB0Y3Qu9GCINC40LvQs9GN0Y3RgdGN0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNWZXJpZlllcyIgbXNnaWQ9IjIzNDY1NjYwNzI4NjcyMTM1NjMiPiLQotC40LnQvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmTm8iIG1zZ2lkPSIxMTQ2NTY0OTM3MzQ2NDU0ODY1Ij4i0q7Qs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzeW5jX3Rvb19tYW55X2RlbGV0ZXMiIG1zZ2lkPSI1Mjk2MzIxODUwNjYyNzQ2ODkwIj4i0KPRgdGC0LPQsNGFINGF0Y/Qt9Cz0LDQsNGAINGF0Y3RgtGA0Y3QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfdG9vX21hbnlfZGVsZXRlc19kZXNjIiBtc2dpZD0iNDk2NTUxNjcxMDA4Njk0MjQ1Ij4iPHhsaWZmOmcgaWQ9IlRZUEVfT0ZfU1lOQyI+JTIkczwveGxpZmY6Zz4t0YAgPHhsaWZmOmcgaWQ9IkFDQ09VTlRfTkFNRSI+JTMkczwveGxpZmY6Zz4g0LDQutCw0YPQvdGC0YvQvSA8eGxpZmY6ZyBpZD0iTlVNQkVSX09GX0RFTEVURURfSVRFTVMiPiUxJGQ8L3hsaWZmOmc+INC30q/QudC7INGD0YHRgtGB0LDQvSAuINCi0LAg0Y7RgyDRhdC40LnQvNGN0Y3RgCDQsdCw0LnQvdCwPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfcmVhbGx5X2RlbGV0ZSIgbXNnaWQ9IjI1NzI2MDAxMDMxMjI1OTYyNDMiPiLQo9GB0YLQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzeW5jX3VuZG9fZGVsZXRlcyIgbXNnaWQ9IjI5NDEzMTczNjA2MDAzMzg2MDIiPiLQo9GB0YLQs9Cw0YHQvdGL0LMg0LHRg9GG0LDQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY19kb19ub3RoaW5nIiBtc2dpZD0iMzc0Mzc2NDc0MDQzMDgyMTg0NSI+ItCe0LTQvtC+INGO0YMg0Ycg0YXQuNC50YXQs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfYWNjb3VudF9sYWJlbCIgbXNnaWQ9IjU2NTUyMDMwODk3NDY0MjM5MjciPiLQkNC60LDRg9C90YIg0YHQvtC90LPQvtGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX2FjY291bnRfbGFiZWwiIG1zZ2lkPSIyOTM1MjY3MzQ0ODQ5OTkzNTUzIj4i0JDQutCw0YPQvdGCINC90Y3QvNGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfYWNjb3VudF9idXR0b25fbGFiZWwiIG1zZ2lkPSIzNjExOTgyODk0ODUzNDM1ODc0Ij4i0JDQutC60LDRg9C90YIg0L3RjdC80Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfaW5jcmVtZW50X2J1dHRvbiIgbXNnaWQ9IjI0MTIwNzIyNzI4MzIyODQzMTMiPiLTqNGB06nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfZGVjcmVtZW50X2J1dHRvbiIgbXNnaWQ9IjQ3NjA1MDc3ODM4Njc3OTA2NyI+ItCR0YPRg9GA0YPRg9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfaW5jcmVtZW50X3Njcm9sbF9tb2RlIiBtc2dpZD0iMzA3MzEwMTA2NzQ0MTYzODQyOCI+Ijx4bGlmZjpnIGlkPSJWQUxVRSI+JXM8L3hsaWZmOmc+INGF0q/RgNGN0Y3QtCDQsdCw0YDQuNC90LAg0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJudW1iZXJfcGlja2VyX2luY3JlbWVudF9zY3JvbGxfYWN0aW9uIiBtc2dpZD0iOTEwMTQ3MzA0NTg5MTgzNTQ5MCI+ItOo0YHQs9Op0YUg0LHQvtC7INC00Y3RjdGI0Y3RjSDQsdGD0YPRgNGD0YPQu9Cw0YUg0LHQvtC7INC00L7QvtGI0L7QviDQs9GD0LvRgdGD0YPQu9C90LAg0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9pbmNyZW1lbnRfbWludXRlX2J1dHRvbiIgbXNnaWQ9Ijg4NjU4ODUxMTQwMjg2MTQzMjEiPiLQnNC40L3Rg9GCINOp0YHQs9Op0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfbWludXRlX2J1dHRvbiIgbXNnaWQ9IjYyNDY4MzQ5MzcwODA2ODQ3OTEiPiLQnNC40L3Rg9GC0YvQsyDQsdGD0YPRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9pbmNyZW1lbnRfaG91cl9idXR0b24iIG1zZ2lkPSIzNjUyMDU2MDU1ODEwMjIzMTM5Ij4i0KbQsNCzINOp0YHQs9Op0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfaG91cl9idXR0b24iIG1zZ2lkPSIxMzc3NDc5ODYzNDI5MjE0NzkyIj4i0KbQsNCzINCx0YPRg9GA0YPRg9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2luY3JlbWVudF9zZXRfcG1fYnV0dG9uIiBtc2dpZD0iNDE0NzU5MDY5NjE1MTIzMDg2MyI+IlBNINGC0L7RhdC40YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGVjcmVtZW50X3NldF9hbV9idXR0b24iIG1zZ2lkPSI4MzAyMTQwMzUzNTM5NDg2NzUyIj4iQU0g0YLQvtGF0LjRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9pbmNyZW1lbnRfbW9udGhfYnV0dG9uIiBtc2dpZD0iNTM2OTk5ODQ3OTA2NzkzNDExMCI+ItCh0LDRgCDTqdGB0LPTqdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfZGVjcmVtZW50X21vbnRoX2J1dHRvbiIgbXNnaWQ9IjE4MzI2OTg5OTU1NDE3MjYwMTkiPiLQodCw0YDRi9CzINCx0YPRg9GA0YPRg9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2luY3JlbWVudF9kYXlfYnV0dG9uIiBtc2dpZD0iNzEzMDQ2NTQxMjMwODE3MzkwMyI+ItOo0LTTqdGAINOp0YHQs9Op0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kZWNyZW1lbnRfZGF5X2J1dHRvbiIgbXNnaWQ9IjQxMzE4ODE1MjE4MTg3NTAwMzEiPiLTqNC00YDQuNC50LMg0LHRg9GD0YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X3llYXJfYnV0dG9uIiBtc2dpZD0iNjMxODY5NzM4NDMxMDgwODg5OSI+ItCW0LjQu9C40LnQsyDTqdGB0LPTqdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfZGVjcmVtZW50X3llYXJfYnV0dG9uIiBtc2dpZD0iNDQ4MjAyMTgxMzQ5MTEyMTcxNyI+ItCW0LjQuyDQsdGD0YPRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9hbHQiIG1zZ2lkPSI0ODU2ODY4ODIwMDQwMDUxOTM5Ij4iQWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfY2FuY2VsIiBtc2dpZD0iMTIwMzk4NDAxNzI0NTc4MzI0NCI+ItCm0YPRhtC70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiLQo9GB0YLQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kb25lIiBtc2dpZD0iMTk5MjU3MTExODQ2NjY3OTc3NSI+ItCU0YPRg9GB0LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfbW9kZV9jaGFuZ2UiIG1zZ2lkPSI0NTQ3Mzg3NzQxOTA2NTM3NTE5Ij4i0JPQvtGA0LjQvCDTqdOp0YDRh9C706nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+ItCo0LjRhNGCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4i0J7RgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiLQkNC/0L8g0YHQvtC90LPQvtGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4i0KXRg9Cy0LDQsNC70YbQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4t0YLQsNC5INGF0YPQstCw0LDQu9GG0LDQvdCwINGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4i0JHQsNGA0LjRg9C70YvQsyDQs9GD0LvRgdGD0YPQu9C90LAuINCl0q/RgNGN0Y3QtCDRhdKv0LvRjdGN0L3RjS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LdCzINCz0YPQu9GB0YPRg9C70LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fZG93biIgbXNnaWQ9IjUwODc3Mzk3Mjg2MzkwMTQ1OTUiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g0YXQuNC50YUg0LHQvtC7INC00L7QvtGIINCz0YPQu9GB0YPRg9C70LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fbGVmdCIgbXNnaWQ9IjcyMDc0Nzg3MTk4MDU1NjIxNjUiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g0YXQuNC50YUg0LfSr9Kv0L3Qu9Kv0q8g0LPRg9C70YHRg9GD0LvQsNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g0YXQuNC50YUg0LHQvtC7INCx0LDRgNGD0YPQvdC70YPRgyDQs9GD0LvRgdGD0YPQu9Cw0YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9jayIgbXNnaWQ9IjIyMjg1MjQ5MDA0Mzk4MDE0NTMiPiLQotCw0LnQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfY2FtZXJhIiBtc2dpZD0iOTY5MDcxOTk3NTUyNDg2ODE0Ij4i0JrQsNC80LXRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zaWxlbnQiIG1zZ2lkPSI4OTM1NTEyODc3NDY1MjIxODIiPiLQp9C40LzRjdGN0LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NvdW5kb24iIG1zZ2lkPSIzMDA1MjQ2NjY3NTUwMDE3MiI+ItCU0YPRg9C90YPRg9C0INC40LTRjdCy0YXRgtGN0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2VhcmNoIiBtc2dpZD0iMzA5MTU4NzI0OTc3NjAzMzEzOSI+ItCl0LDQudGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9ja190YWJsZXQiIG1zZ2lkPSIzODMzMTk1MzM1NjI5Nzk1MDU1Ij4i0KLSr9Cz0LbRjdGN0LMg0YLQsNC50LvQsNGFINCx0L7QuyDRgtCw0YLQvdCwINGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9oZWFkc2V0X3JlcXVpcmVkX3RvX2hlYXJfcGFzc3dvcmQiIG1zZ2lkPSI3MDExOTI3MzUyMjY3NjY4NjU3Ij4i0J3Rg9GD0YYg0q/Qs9C90LjQuSDQtNGD0YPQtNC70LDQs9GL0LMg0YHQvtC90YHQvtGFINCx0L7QuyDRh9C40YXRjdCy0YfQuNC50LMg0LfQsNC70LPQsNC90LAg0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9wYXNzd29yZF9jaGFyYWN0ZXJfbm9faGVhZHNldCIgbXNnaWQ9IjI4NTk4NzM3NzA4ODYxNTM2NzgiPiLQptGN0LMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl9ob21lX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTI5MzYwMDQ5NjYwMTQ5MDIxNiI+ItCd0q/Sr9GAINGF0YPRg9C00LDRgdGA0YPRgyDRiNC40LvQttC40YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fYmFyX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjIzNzQ5NjU2Mjk1MjE1MjU4OSI+ItCU0Y3RjdGIINGI0LjQu9C20LjRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9tZW51X292ZXJmbG93X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjI5NTY1OTAzNzUwOTAwODQ1MyI+ItCd0Y3QvNGN0LvRgiDRgdC+0L3Qs9C+0LvRgtGD0YPQtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI3OTY1OTg0MzYwOTAzNjkzOTAzIj4iJTEkcywgJTIkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9zdWJ0aXRsZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI2OTg1NTQ2NTMwNDcxNzgwNzI3Ij4iJTEkcywgJTIkcywgJTMkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfaW50ZXJuYWwiIG1zZ2lkPSI0ODkxOTE2ODMzNjU3OTI5MjYzIj4i0JTQvtGC0L7QvtC0INGB0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2Vfc2RfY2FyZCIgbXNnaWQ9IjMyODI5NDg4NjEzNzgyODY3NDUiPiJTRCDQutCw0YDRgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfdXNiIiBtc2dpZD0iMzAxNzk1NDA1OTUzODUxNzI3OCI+IlVTQiDRgdCw0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRyYWN0X2VkaXRfbWVudV9idXR0b24iIG1zZ2lkPSI4OTQwNDc4NzMwNDk2NjEwMTM3Ij4i0JfQsNGB0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2FybmluZ190aXRsZSIgbXNnaWQ9IjE5NTU2Mzg4NjIxMjIyMzIzNDIiPiLQlNCw0YLQsCDRhdGN0YDRjdCz0LvRjdGN0L3QuNC5INCw0L3RhdCw0LDRgNGD0YPQu9Cz0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dhcm5pbmdfYm9keSIgbXNnaWQ9IjI4MTQ2NzM1NTE0NzE5Njk5NTQiPiLQkNGI0LjQs9C70LDQu9GCINCx0L7Qu9C+0L0g0YLQvtGF0LjRgNCz0L7QvtCzINGF0LDRgNCw0YUg0LHQvtC7INGF0q/RgNC90Y0g0q/Sry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzA5MzMzNDQxOTUxODcwNjY4NiI+IjJHLTNHINC00LDRgtCwINC40LTRjdCy0YXQs9Kv0Lkg0LHQvtC70L7QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfNGdfbGltaXRfdGl0bGUiIG1zZ2lkPSI3NjM2NDg5NDM2ODE5NDcwNzYxIj4iNEcg0LTQsNGC0LAg0LjQtNGN0LLRhdCz0q/QuSDQsdCw0LnQvdCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9tb2JpbGVfbGltaXRfdGl0bGUiIG1zZ2lkPSI3ODY5NDAyNTE5MzkxNjMxODg0Ij4i0JzQvtCx0LDQudC7INC00LDRgtCwINC40LTRjdCy0YXQs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfdGl0bGUiIG1zZ2lkPSI4OTkyMTU0NzM2NDQxMjg0ODY1Ij4iV2ktRmkg0LTQsNGC0LAg0LjQtNGN0LLRhdCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbGltaXRfYm9keSIgbXNnaWQ9IjMzMTc5NjQ3MDY5NzM2MDEzODYiPiLQmNC00Y3QstGF0LbSr9Kv0LvRjdGFINCx0L7QuyDRhdKv0YDQvdGNINKv0q8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV8zZ19saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iNzAyNjczOTEyMTEzODAwNTIzMSI+IjJHLTNHINC00LDRgtCwINGF0Y/Qt9Cz0LDQsNGAINGF0Y3RgtGA0Y3QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfNGdfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjExMDY1NjI3NzkzMTEyMDkwMzkiPiI0RyDQtNCw0YLQsCDRhdGP0LfQs9Cw0LDRgCDRhdGN0YLRgNGN0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX21vYmlsZV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iMjc5MjQwNTcyMTY1NDEyMTY4Ij4i0JzQvtCx0LDQudC7INC00LDRgtCwINGF0Y/Qt9Cz0LDQsNGAINGF0Y3RgtGA0Y3QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2Vfd2lmaV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iODc0Mzg1NjAwNjM4NDgyNTk3NCI+IldpLUZpINC00LDRgtCwINGF0Y/Qt9Cz0LDQsNGAINGF0Y3RgtGA0Y3QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbGltaXRfc25vb3plZF9ib2R5IiBtc2dpZD0iNzAzNTQ5MDI3ODI5ODQ0MTc2NyI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lczwveGxpZmY6Zz4g0LfQsNCw0YHQsNC9INGF0Y/Qt9Cz0LDQsNGA0YvQsyDQtNCw0LLQsNCyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfcmVzdHJpY3RlZF90aXRsZSIgbXNnaWQ9IjU5NjUxNTczNjEwMzYzMjE5MTQiPiLQkNGA0YvQvSDQtNCw0YLQsCDRhdGP0LfQs9Cw0LDRgNC70LDQs9C00YHQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9yZXN0cmljdGVkX2JvZHkiIG1zZ2lkPSI2NzQxNTIxMzMwOTk3NDUyOTkwIj4i0KXRj9C30LPQsNCw0YDQu9Cw0LvRgtGL0LMg0YXQsNGB0LDRhSDQsdC+0Lsg0YXSr9GA0L3RjSDSr9KvLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jZXJ0aWZpY2F0ZSIgbXNnaWQ9IjY1MTAwNDA0ODYwNDkyMzc2MzkiPiLQkNGO0YPQu9Cz0q/QuSDRgdC10YDRgtC40YTQuNC60LDRgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jZXJ0aWZpY2F0ZV9pc192YWxpZCIgbXNnaWQ9IjY4MjUyNjMyNTA3NzQ1NjkzNzMiPiLQodC10YDRgtC40YTQuNC60LDRgiDRhdKv0YfQuNC90YLRjdC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imlzc3VlZF90byIgbXNnaWQ9IjQ1NDIzOTQ4MDI3NDkyMTAzMiI+ItCT0LDRgNCz0YPRg9C70YHQsNC9OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbW1vbl9uYW1lIiBtc2dpZD0iMjIzMzIwOTI5OTQzNDE3MjY0NiI+ItCV0YDTqdC90YXQuNC5INC90Y3RgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdfbmFtZSIgbXNnaWQ9IjY5NzM1NjExOTA3NjIwODUyMzYiPiLQkdCw0LnQs9GD0YPQu9C70LDQs9CwOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ191bml0IiBtc2dpZD0iNzI2NTk4MTg5MDQyMjA3MDM4MyI+ItCR0LDQudCz0YPRg9C70LvQsNCz0YvQvSDQvdGN0LPQtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfYnkiIG1zZ2lkPSIyNjQ3NTg0OTg4MDU3NDgxNTY2Ij4i0JPQsNGA0LPQsNGB0LDQvToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2YWxpZGl0eV9wZXJpb2QiIG1zZ2lkPSI4ODE4ODg2MTM3NTQ1OTgzMTEwIj4i0KXSr9GH0LjQvdGC0Y3QuSDQsdCw0LnRhToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfb24iIG1zZ2lkPSI1ODk1MDE3NDA0MzYxMzk3MjMyIj4i0JPQsNGA0LPQsNGB0LDQvToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHBpcmVzX29uIiBtc2dpZD0iMzY3NjI0Mjk0OTkxNTk1OTgyMSI+ItCl0q/RgNGC0Y3QuyDRhdKv0YfQuNC90YLRjdC5OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcmlhbF9udW1iZXIiIG1zZ2lkPSI3NTg4MTQwNjc2NjA4NjI0OTMiPiLQodC10YDQuNCw0Lsg0LTRg9Cz0LDQsNGAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmdlcnByaW50cyIgbXNnaWQ9IjQ1MTYwMTk2MTk4NTA3NjMwNDkiPiLQpdGD0YDRg9GD0L3RiyDRhdGN0Y06Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhMjU2X2ZpbmdlcnByaW50IiBtc2dpZD0iNDM5MTI3MTI4NjQ3NzI3OTI2MyI+IlNIQS0yNTYg0YXRg9GA0YPRg9C90Ysg0YXRjdGNOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYTFfZmluZ2VycHJpbnQiIG1zZ2lkPSI3OTMwMzMwMjM1MjY5NDA0NTgxIj4iU0hBLTEg0YXRg9GA0YPRg9C90Ysg0YXRjdGNOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2Nob29zZXJfdmlld19zZWVfYWxsIiBtc2dpZD0iNDI5MjU2OTM4Mzk3NjYzNjIwMCI+ItCR0q/Qs9C00LjQudCzINGF0LDRgNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9jaG9vc2VyX3ZpZXdfZGlhbG9nX3RpdGxlX2RlZmF1bHQiIG1zZ2lkPSI0NzEwMDEzODY0OTc0MDQwNjE1Ij4i0JDQutGC0LjQstC40YLQuCDRgdC+0L3Qs9C+0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV9hY3Rpb25fcHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjUyNDc2ODQ0MzU5NzkxNDkyMTYiPiLQpdGD0LLQsNCw0LvRhtCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2RldmljZV9sb2NrZWQiIG1zZ2lkPSIzMDkyNzAzNDQ4NjkwNjY5NzY4Ij4i0KLTqdGF06nTqdGA06nQvNC2INGC0q/Qs9C20LjQs9C00YHRjdC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxpc3RfZGVsaW1ldGVyIiBtc2dpZD0iMzk3NTExNzU3MjE4NTQ5NDE1MiI+IiwgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VuZGluZyIgbXNnaWQ9IjMyNDU2NTM2ODEwMDgyMTgwMzAiPiLQmNC70LPRjdGN0LYg0LHQsNC50L3QsCAuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYXVuY2hCcm93c2VyRGVmYXVsdCIgbXNnaWQ9IjIwNTc5NTE5NDcyOTc2MTQ3MjUiPiLQpdOp0YLTqdGHINCw0LbQuNC70LvRg9GD0LvQsNGFINGD0YM/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iU2V0dXBDYWxsRGVmYXVsdCIgbXNnaWQ9IjU4MzQ5NDg0NjkyNTM3NTg1NzUiPiLQlNGD0YPQtNC70LDQs9GL0LMg0LfTqdCy0YjTqdOp0YDTqdGFINKv0q8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfcmVzb2x2ZXJfdXNlX2Fsd2F5cyIgbXNnaWQ9IjgwMTc3NzA3NDc4MDE0OTQ5MzMiPiLQkdCw0LnQvdCz0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9yZXNvbHZlcl91c2Vfb25jZSIgbXNnaWQ9IjI0MDQ2NDQ3OTcxNDkxNzM3NTgiPiLQndGN0LMg0YPQtNCw0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQ2MTcwNTM4OTgxNjcxMjc0NzEiPiLQotCw0LHQu9C10YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MjM5MjkxMjczNDIwMTQwMTIzIj4i0KPRgtCw0YEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWVfaGVhZHBob25lcyIgbXNnaWQ9IjgxMTk5NzE4NDM4MDM0MzkxMTAiPiLQp9C40YXRjdCy0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWVfZG9ja19zcGVha2VycyIgbXNnaWQ9IjYyNDA2MDI5ODIyNzY1OTE4NjQiPiLQp9Cw0L3Qs9CwINGP0YDQuNCz0YfQuNC50LMg0YHRg9GD0LvQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X21lZGlhX3JvdXRlX25hbWVfaGRtaSIgbXNnaWQ9IjI0NTA5NzAzOTkwMjM0NzgwNTUiPiJIRE1JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9jYXRlZ29yeV9uYW1lIiBtc2dpZD0iMzcyMjgxMTE3NDAwMzg4Njk0NiI+ItCh0LjRgdGC0LXQvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsdWV0b290aF9hMmRwX2F1ZGlvX3JvdXRlX25hbWUiIG1zZ2lkPSI4NTc1NjI0MDMwNDA2NzcxMDE1Ij4i0JHQu9GO0YLSr9Kv0YIg0LDRg9C00LjQviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpcmVsZXNzX2Rpc3BsYXlfcm91dGVfZGVzY3JpcHRpb24iIG1zZ2lkPSI5MDcwMzQ2NDI1MDIzOTc5NjUxIj4i0KPRgtCw0YHQs9Kv0Lkg0LTRjdC70LPRjdGGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfY2hvb3Nlcl9ncm91cGluZ19kb25lIiBtc2dpZD0iNzk2NjQzODMwNzcyMzMxNzE2OSI+ItCU0YPRg9GB0YHQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfYnV0dG9uX2NvbnRlbnRfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NzU4NTUzNTY3MDY1MTQ1Mjc2Ij4i0JzQtdC00LjQsCDQs9Cw0YDQsNC70YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfc2Nhbm5pbmciIG1zZ2lkPSI3Mjc5OTA4NzYxNzU4MjkzNzgzIj4i0KHQutCw0L0g0YXQuNC50LYg0LHQsNC50L3QsC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19jb25uZWN0aW5nIiBtc2dpZD0iNjQyMjU3MTcxNjAwNzgyNTQ0MCI+ItCl0L7Qu9Cx0L7Qs9C00L7QtiDQsdCw0LnQvdCwLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2F2YWlsYWJsZSIgbXNnaWQ9IjY5ODMyNTgwNjcxOTQ2NDkzOTEiPiLQkdC+0LvQvtC80LbRgtC+0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfbm90X2F2YWlsYWJsZSIgbXNnaWQ9IjY3Mzk4OTk5NjI2ODE4ODY0MDEiPiLQkdC+0LvQvtC80LbQs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfaW5fdXNlIiBtc2dpZD0iNDUzMzc4NjAzMTA5MDE5ODA2MyI+ItCQ0YjQuNCz0LvQsNC2INCx0LDQudCz0LDQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9idWlsdF9pbl9kaXNwbGF5X25hbWUiIG1zZ2lkPSIyNTgzMTM0Mjk0MjkyNTYzOTQxIj4i0q7QvdC00YHRjdC9INC00Y3Qu9Cz0Y3RhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9oZG1pX2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjE1NTUyNjQ1NTkyMjc0NzAxMDkiPiJIRE1JINCU0Y3Qu9Cz0Y3RhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9vdmVybGF5X2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjUxNDIzNjU5ODIyNzE2MjA3MTYiPiLQlNCw0LLRhdCw0YDQs9CwICM8eGxpZmY6ZyBpZD0iSUQiPiUxJGQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV90aXRsZSIgbXNnaWQ9IjY1MjEyNDUxNzY3MjI1NzE3MiI+Ijx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IldJRFRIIj4lMiRkPC94bGlmZjpnPng8eGxpZmY6ZyBpZD0iSEVJR0hUIj4lMyRkPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IkRQSSI+JTQkZDwveGxpZmY6Zz4gZHBpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9zZWN1cmVfc3VmZml4IiBtc2dpZD0iNjAyMjExOTcwMjYyODU3MjA4MCI+Iiwg0L3QsNC50LTQstCw0YDRgtCw0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjIyMzA1MDY0OTI0MDMyNjU1NyI+ItCj0YLQsNGB0LPSr9C5INC00Y3Qu9Cz0Y3RhiDRhdC+0LvQsdC+0LPQtNC+0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDk4ODAyMDEyNDY0MTcwNjg1Ij4i0K3QvdGNINC00Y3Qu9Cz0Y3RhiDTqdOp0YAg0YLTqdGF06nTqdGA06nQvNC20LjQudCzINGF0LDRgNGD0YPQu9C2INCx0LDQudC90LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX2Rpc2Nvbm5lY3QiIG1zZ2lkPSI2MTgzNzU0NDYzNTYxMTUzMzcyIj4i0KHQsNC70LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW1lcmdlbmN5X2NhbGxfbGFiZWwiIG1zZ2lkPSI2ODQ5NDYxOTI1MjM4MzA1MzEiPiLQr9Cw0YDQsNC70YLQsNC5INC00YPRg9C00LvQsNCz0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLQpdGN0Y3QsyDQvNCw0YDRgtGB0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BhdHRlcm4iIG1zZ2lkPSIxODUwODA2MDcwODAxMzU4ODMwIj4i0JHRg9GA0YPRgyDRhdGN0Y0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiLQndGD0YPRhiDSr9CzINCx0YPRgNGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4iUElOINCx0YPRgNGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfY291bnRkb3duIiBtc2dpZD0iNjM1ODExMDIyMTYwMzI5NzU0OCI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiUxJGQ8L3hsaWZmOmc+INGB0LXQutGD0L3QtNGL0L0g0LTQsNGA0LDQsCDQtNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5ODk3ODYxMTY4MzA3NTg2OCI+ItCl0Y3RjdCzINC30YPRgNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiJTSU0gUElOINC+0YDRg9GD0LvQvdCwINGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IlBJTiDQvtGA0YPRg9C70L3QsCDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+ItCd0YPRg9GGINKv0LPRjdGNINC+0YDRg9GD0LvQvdCwINGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcHVrX2hpbnQiIG1zZ2lkPSI0NTMyMjcxNDM4NjE3MzU1MzciPiJTSU0g0LjQtNGN0LLRhdCz0q/QuSDQsdCw0LnQvdCwLiDSrtGA0LPRjdC70LbQu9Kv0q/Qu9GN0YUg0LHQvtC7IFBVSyDQutC+0LTRi9CzINC+0YDRg9GD0LvQvdCwINGD0YMuINCU0Y3Qu9Cz0Y3RgNGN0L3Qs9Kv0Lkg0LzRjdC00Y3RjdC70LvQuNC50LMg0L7Qv9C10YDQsNGC0L7RgNC+0L7RgSDQsNGB0YPRg9C90LAg0YPRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+ItCl0q/RgdGB0Y3QvSBQSU4g0LrQvtC00L7QviDQvtGA0YPRg9C70L3QsCDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+ItCl0q/RgdGB0Y3QvSBQSU4g0LrQvtC00L7QviDQtNCw0YXQuNC9INC+0YDRg9GD0LvQvdCwINGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlNJTSDQutCw0YDRgtC90Ysg0YLSr9Cz0LbRjdGN0LMg0LPQsNGA0LPQsNC2INCx0LDQudC90LDigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiLQkdGD0YDRg9GDIFBJTiDQutC+0LQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iNC04INGC0L7QvtC90L7QvtGBINCx0q/RgtGN0YUgUElOLdCzINCx0LjRh9C90Y0g0q/Sry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJQVUsg0LrQvtC0IDgt0YEg0YbTqdOp0L3Qs9Kv0Lkg0YLQvtC+0L3QvtC+0YEg0LHSr9GC0L3RjS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLQl9Op0LIgUFVLINC60L7QtNGL0LMg0LTQsNGF0LjQvSDQvtGA0YPRg9C70L3QsCDRg9GDLiDQlNCw0LLRgtCw0L0g0L7RgNC+0LvQtNCy0L7QuyBTSU0g0L3RjCDQsdKv0YDQvNOp0YHTqdC9INC40LTRjdCy0YXQs9Kv0Lkg0LHQvtC70LPQvtC90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9jb25maXJtX3Bpbl9oaW50IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzAwMzQ2OTI2MTQ2NDU5MzUxNiI+IlBJTiDQutC+0LTRg9GD0LQg0YLQsNCw0YDQsNGF0LPSr9C5INCx0LDQudC90LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjY0ODY4NDIwOTQwMDU2OTg0NzUiPiLQpdGN0Y0g0L7RgNGD0YPQu9Cw0YUg0L7RgNC+0LvQtNC70L7Qs9C+INGF0Y3RgiDQvtC70L7QvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLQotKv0LPQttGN0Y3QsyDRgtCw0LnQu9Cw0YUg0LHQvtC7IEdvb2dsZSDQsNC60LDRg9C90YLQsNCw0YDQsNCwINC90Y3QstGC0Y3RgNC90Y0g0q/Sry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+ItCl0Y3RgNGN0LPQu9GN0LPRh9C40LnQvSDQvdGN0YAgKNC40LzRjdC50LspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjkwNTcyODkxMDM4MjcyOTg1NDkiPiLQndGD0YPRhiDSr9CzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiLQndGN0LLRgtGA0Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4i0KXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC90Y3RgCDRjdGB0LLRjdC7INC90YPRg9GGINKv0LMg0LHRg9GA0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i0KXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC90Y3RgCDQvdGD0YPRhiDSr9Cz0Y3RjSDQvNCw0YDRgtGB0LDQvSDRg9GDP1xuIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iLdC0INC30L7Rh9C40LvQvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSIxMDUyNjg1MTk3NzEwMjUyMzk1Ij4i0JDQutCw0YPQvdGCINGI0LDQu9Cz0LDQtiDQsdCw0LnQvdCw4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiLQotCwIFBJTiDQutC+0LTQvtC+IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0LHQuNGH0LjQsi4gXG5cbjx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INGB0LXQutGD0L3QtNGL0L0g0LTQsNGA0LDQsCDQtNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3ODEzNzEzMzg5NDIyMjI2NTMxIj4i0KLQsCBQSU4g0LrQvtC00L7QviA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINCx0LjRh9C40LIuIFxuXG48eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDRgdC10LrRg9C90LTRi9C9INC00LDRgNCw0LAg0LTQsNGF0LjQvSDQvtGA0L7Qu9C00L7QvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+ItCi0LAg0YLQsNC50LvQsNGFINGF0Y3RjdCzIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0LfRg9GA0LvQsNCwLiBcblxuPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g0YHQtdC60YPQvdC00YvQvSDQtNCw0YDQsNCwINC00LDRhdC40L0g0L7RgNC+0LvQtNC+0L3QviDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+ItCi0LAg0YLQsNCx0LvQtdGC0YvQsyDRgtCw0LnQu9Cw0YUg0LPRjdC2IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0L7RgNC+0LvQtNC70L7Qvi4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g0YPQtNCw0LAg0LTQsNGF0LjQvSDQsdGD0YDRg9GDINC+0YDQvtC70LTQstC+0Lsg0YLQsNCx0LvQtdGCINKv0LnQu9C00LLRjdGA0LjQudC9INKv0L3QtNGB0Y3QvSDRg9GC0LPQsNCw0YDQsNCwINGC0L7RhdC40YDRg9GD0LvQsNCz0LTQsNGFINCx0LAg0YXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC00LDRgtCwINCx0q/RhdGN0LvQtNGN0Y0g0YPRgdGC0LDQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQwNTEwMTU5NDMwMzgxOTk5MTAiPiLQotCwINGD0YLRgdGL0LMg0YLQsNC50LvQsNGFINCz0Y3QtiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINC+0YDQvtC70LTQu9C+0L4uIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINC00LDRhdC40L0g0LHRg9GA0YPRgyDQvtGA0L7Qu9C00LLQvtC7INGD0YLQsNGBINKv0LnQu9C00LLRjdGA0LjQudC9INKv0L3QtNGB0Y3QvSDRg9GC0LPQsNCw0YDQsNCwINGC0L7RhdC40YDRg9GD0LvQsNCz0LTQsNGFINCx0LAg0YXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC00LDRgtCwINCx0q/RhdGN0LvQtNGN0Y0g0YPRgdGC0LDQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDcyOTk2MjY5MTQ4NDgzNjM3Ij4i0KLQsCDRgtCw0LHQu9C10YLRi9CzINGC0LDQudC70LDRhSDQs9GN0LYgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0L7RgNC+0LvQtNC70L7Qvi4g0KLQsNCx0LvQtdGCINC+0LTQvtC+INKv0LnQu9C00LLRjdGA0LjQudC9INKv0L3QtNGB0Y3QvSDRg9GC0LPQsNCw0YDQsNCwINGC0L7RhdC40YDRg9GD0LvQsNCz0LTQsNGFINCx0L7Qu9C90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4i0KLQsCDRg9GC0YHRi9CzINGC0LDQudC70LDRhSDQs9GN0LYgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0L7RgNC+0LvQtNC70L7Qvi4g0KPRgtCw0YEg0L7QtNC+0L4g0q/QudC70LTQstGN0YDQuNC50L0g0q/QvdC00YHRjdC9INGD0YLQs9Cw0LDRgNCw0LAg0YLQvtGF0LjRgNGD0YPQu9Cw0LPQtNCw0YUg0LHQvtC70L3Qvi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4i0KLQsCDRgtCw0LnQu9Cw0YUg0YXRjdGN0LMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g0YPQtNCw0LAg0LHRg9GA0YPRgyDQt9GD0YDQu9Cw0LAuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINC00LDRhdC40L0g0LHRg9GA0YPRgyDQvtGA0YPRg9C70LHQsNC7LCDRgtCwINGC0LDQsdC70LXRgtCw0LAg0YLQsNC50LvQsNGF0YvQvSDRgtGD0LvQtCDQuNC80Y3QudC7INCw0LrQsNGD0L3RgiDRiNCw0LDRgNC00LvQsNCz0LDRgtCw0Lkg0LHQvtC70L3Qvi5cblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INGB0LXQutGD0L3QtNGL0L0g0LTQsNGA0LDQsCDQtNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+ItCi0LAg0YLQsNC50LvQsNGFINGF0Y3RjdCzIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0LfRg9GA0LvQsNCwLiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQtNCw0YXQuNC9INCx0YPRgNGD0YMg0L7RgNGD0YPQu9Cx0LDQuywg0YLQsCDRg9GC0YHQsNCwINGC0LDQudC70LDRhdGL0L0g0YLRg9C70LQg0LjQvNGN0LnQuyDQsNC60LDRg9C90YLQsNCwINCw0YjQuNCz0LvQsNGFINGI0LDQsNGA0LTQu9Cw0LPQsNGC0LDQuSDQsdC+0LvQvdC+LlxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g0YHQtdC60YPQvdC00YvQvSDQtNCw0YDQsNCwINC00LDRhdC40L0g0L7RgNC+0LvQtNC+0L3QviDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+ItCj0YHRgtCz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhZmVfbWVkaWFfdm9sdW1lX3dhcm5pbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MzI0MTYxOTM5NDc1NDc4MDY2Ij4i0JTRg9GD0LMg0YHQsNC90LDQuyDQsdC+0LvQs9C+0YHQvtC9INC00Y3RjdC0INGC06nQstGI0LjQvdOp06nRgSDTqdGB0LPTqdGFINKv0q8uIFxuINOo0L3QtNOp0YAg0LTRg9GD0LPQsNCw0YAg0YPRgNGCINGF0YPQs9Cw0YbQsNCw0L3QtCDRgdC+0L3RgdC+0YUg0L3RjCDRgtCw0L3RiyDRgdC+0L3RgdCz0L7Qu9C0INGF0L7RgNGC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250aW51ZV90b19lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjE2MjY0MjczNzIzMTYwNzAyNTgiPiLQpdGP0LvQsdCw0YAg0LPQvtGA0LjQvNGL0LMg0LjQtNGN0LLRhdC20q/Sr9C70Y3RhSDQsdC+0Lsg0YXQvtGR0YAg0YXRg9GA0YPRg9Cz0LDQsNGA0LDQsCDQtNC+0L7RiNC70YPRg9C70LDQsNC0INGF0q/Qu9GN0Y3QvdGNINKv0q8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9lbmFibGVkIiBtc2dpZD0iMTM4MTk3MjA0ODU2NDU0NzY4NSI+ItCl0Y/Qu9Cx0LDRgNGI0YPRg9C70YHQsNC9INCz0L7RgNC40Lwg0LjQtNGN0LLRhdC20LjQsi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVfYWNjZXNzaWJpbGl0eV9jYW5jZWxlZCIgbXNnaWQ9IjM4MzM5MjMyNTc5NjY2MzU2NzMiPiLQpdCw0L3QtNCw0LvRgiDRhtGD0YbQu9Cw0LPQtNGB0LDQvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VyX3N3aXRjaGVkIiBtc2dpZD0iMzc2ODAwNjc4MzE2Njk4NDQxMCI+ItCe0LTQvtC+0LPQuNC50L0g0YXRjdGA0Y3Qs9C70Y3Qs9GHIDx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvd25lcl9uYW1lIiBtc2dpZD0iMjcxNjc1NTQ2MDM3NjAyODE1NCI+ItCt0LfRjdC80YjQuNCz0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlcnJvcl9tZXNzYWdlX3RpdGxlIiBtc2dpZD0iNDUxMDM3MzA4MzA4MjUwMDE5NSI+ItCQ0LvQtNCw0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbm9fcmVzdHJpY3RlZF9hY2NvdW50cyIgbXNnaWQ9IjU3Mzk0NjMyNDk2NzM3Mjc3MzYiPiLQrdC90Y0g0LDQv9C/0LvQuNC60LXRiNC9INGF0Y/Qt9Cz0LDQsNGA0LvQsNCz0LTRgdCw0L0g0L/RgNC+0YTQsNC50LvRi9C9INCw0LrQsNGD0L3RgtGL0LMg0LTRjdC80LbQuNGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9ub3RfZm91bmQiIG1zZ2lkPSIzNDI5MTQxODUzNDk4OTI3Mzc5Ij4i0K3QvdGNINCw0LbQuNC70LvQsNCz0LDQsNCzINC30L7RhdC40YbRg9GD0LvQsNGFINCw0L/Qv9C70LjQutC10YjQvSDQvtC70LTRgdC+0L3Qs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmV2b2tlIiBtc2dpZD0iNTQwNDQ3OTE4NTIyODI3MTU4NiI+ItCm0YPRhtC70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTAiIG1zZ2lkPSI3ODc1NDI3NDg5NDIwODIxNzkzIj4iSVNPIEEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMSIgbXNnaWQ9IjM3NjA3MzQ0OTkwNTA4NzUzNTYiPiJJU08gQTEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2EyIiBtc2dpZD0iNTk3MzI2NjM3ODAyMDE0NDM4MiI+IklTTyBBMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTMiIG1zZ2lkPSIxMzczNDA3MTA1Njg3MzAwODg0Ij4iSVNPIEEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNCIgbXNnaWQ9IjY2ODk3NzI4MDc5ODI1OTcyNTQiPiJJU08gQTQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E1IiBtc2dpZD0iNTM1MzU0OTY1MjAxNTc0MTA0MCI+IklTTyBBNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTYiIG1zZ2lkPSI4NTg1MDM4MDQ4Njc0OTExOTA3Ij4iSVNPIEE2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNyIgbXNnaWQ9IjY2NDE4MzY3MTY5NjM4MzkxMTkiPiJJU08gQTciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E4IiBtc2dpZD0iNzU3MTEzOTQzNzQ2NTY5MzM1NSI+IklTTyBBOCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTkiIG1zZ2lkPSIxMzc4NDU1ODkxOTU3MTE1MDc5Ij4iSVNPIEE5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMTAiIG1zZ2lkPSIyNDgwNzQ3NDU3NDI5NDc1MzQ0Ij4iSVNPIEExMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjAiIG1zZ2lkPSIzOTY1OTM1MDk3NjYxMTA4MDM5Ij4iSVNPIEIwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMSIgbXNnaWQ9IjI1MDU3NTMyODUwMTAxMTU0MzciPiJJU08gQjEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IyIiBtc2dpZD0iODc2Mzg3NDcwOTg1OTQ1ODQ1MyI+IklTTyBCMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjMiIG1zZ2lkPSI0MjEwNTA2Njg4MTkxNzY0MDc2Ij4iSVNPIEIzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNCIgbXNnaWQ9IjU3NDk0MDQxNjU4ODg1MjYwMzQiPiJJU08gQjQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I1IiBtc2dpZD0iNzY0MDYyNzQxNDYyMTkwNDczMyI+IklTTyBCNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjYiIG1zZ2lkPSI3MzQyOTg4ODY0NzEyNzQ4NTQ0Ij4iSVNPIEI2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNyIgbXNnaWQ9IjUwNjk4NDQwNjUyMzUzODI0MjkiPiJJU08gQjciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I4IiBtc2dpZD0iNzMxNjgxODkyMjI3ODc3OTc3NCI+IklTTyBCOCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjkiIG1zZ2lkPSI1NDE0NzI3MDk0MDI2NTMyMzQxIj4iSVNPIEI5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMTAiIG1zZ2lkPSI1MjUxMjUzNzMxODMyMDQ4MTg1Ij4iSVNPIEIxMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzAiIG1zZ2lkPSI0MDAzMTM4MzQyNjcxOTY0MjE3Ij4iSVNPIEMwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMSIgbXNnaWQ9IjE5MzUxODgwNjMzOTM1NTMwMDgiPiJJU08gQzEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MyIiBtc2dpZD0iMzE5NzMwNzk2OTcxMjA2OTkwNCI+IklTTyBDMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzMiIG1zZ2lkPSI0MzM1ODI2MDg3MzIxOTEzNTA4Ij4iSVNPIEMzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNCIgbXNnaWQ9IjM3NDU2Mzk1OTgyODEwMTUwMDUiPiJJU08gQzQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M1IiBtc2dpZD0iODI2OTQ1Nzc2NTgyMjc5MTAxMyI+IklTTyBDNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzYiIG1zZ2lkPSI1NjY2NjYxMDUyNjAzNDY5MzAiPiJJU08gQzYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M3IiBtc2dpZD0iODY3ODQxMzE4MDc4MjYwODQ5OCI+IklTTyBDNyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzgiIG1zZ2lkPSI4MzkyMzc2MjA2NjI3MDQxNzMwIj4iSVNPIEM4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jOSIgbXNnaWQ9IjkxOTE2MTMzNzIzMjQ4NDU0MDUiPiJJU08gQzkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MxMCIgbXNnaWQ9IjczMjc3MDk2OTkxODQ5MjA4MjIiPiJJU08gQzEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2xldHRlciIgbXNnaWQ9IjQxOTE4MDU2MTU4Mjk0NzI5NTMiPiJMZXR0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfZ3Zybm10X2xldHRlciIgbXNnaWQ9Ijc4NTMzODIxOTI2NDk0MDU1MDciPiJHb3Zlcm5tZW50IExldHRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9sZWdhbCIgbXNnaWQ9IjY2OTc5ODI5ODgyODM4MjMxNTAiPiJMZWdhbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9qdW5pb3JfbGVnYWwiIG1zZ2lkPSIzNzI3NzQzOTY5OTAyNzU4OTQ4Ij4iSnVuaW9yIExlZ2FsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2xlZGdlciIgbXNnaWQ9IjI4MTg3MTQ2NDg5NjYwMTIzNiI+IkxlZGdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV90YWJsb2lkIiBtc2dpZD0iNTc3NTk2NjQxNjMzMzU3ODEyNyI+IlRhYmxvaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3cml0ZV9mYWlsX3JlYXNvbl9jYW5jZWxsZWQiIG1zZ2lkPSI3MDkxMjU4Mzc4MTIxNjI3NjI0Ij4i0KbRg9GG0LvQsNCz0LTRgdCw0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3cml0ZV9mYWlsX3JlYXNvbl9jYW5ub3Rfd3JpdGUiIG1zZ2lkPSI4MTMyNTA1NDE3OTM1MzM3NzI0Ij4i0JrQvtC90YLQtdC90YLRi9CzINCx0LjRh9C40YUg0Y/QstGG0LDQtCDQsNC70LTQsNCwINCz0LDRgNGB0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9waW4iIG1zZ2lkPSIzMzk1OTUzNDIxMzY4NDc2MTAzIj4iUElOINC+0YDRg9GD0LvQvdCwINGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfb2xkX3BpbiIgbXNnaWQ9IjE0NjIyMDYyMjU1MTI5MTA3NTciPiLQntC00L7QvtCz0LjQudC9IFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9uZXdfcGluIiBtc2dpZD0iNTk1OTYwNjY5MTYxOTk1OTE4NCI+ItCo0LjQvdGNIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9jb25maXJtX3BpbiIgbXNnaWQ9Ijg1MDE1MjM4Mjk2MzMxNDYyMzkiPiLQqNC40L3RjSBQSU4t0LMg0LHQsNGC0LDQu9Cz0LDQsNC20YPRg9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9jcmVhdGVfcGluIiBtc2dpZD0iODAxNzYwMDAwMDI2MzQ1MDMzNyI+ItOo06nRgNGH0LvTqdC70YLQuNC50LMg0YXRj9C30LPQsNCw0YDQu9Cw0YXQsNC0INC30L7RgNC40YPQu9Cw0L0gUElOINKv0q/RgdCz0Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lcnJvcl9kb2VzbnRfbWF0Y2giIG1zZ2lkPSIyMjI0MjE0MTkwOTA2OTk0NTQ4Ij4iUElOINGC0LDQsNGA0LDRhdCz0q/QuSDQsdCw0LnQvdCwLiDQlNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZXJyb3JfdG9vX3Nob3J0IiBtc2dpZD0iODE3Mzk4Mjc1NjI2NTc3Nzc5MiI+IlBJTiDRhdGN0YIg0LHQvtCz0LjQvdC+INCx0LDQudC90LAuINCl0LDQvNCz0LjQudC9INCx0LDQs9Cw0LTQsNCwIDQg0YbQuNGE0YDRgtGN0Lkg0LHQsNC50YUg0ZHRgdGC0L7QuS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InJlc3RyX3Bpbl9jb3VudGRvd24iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0ODM1NjM5OTY5NTAzNzI5ODc0Ij4i0JHRg9GA0YPRgyBQSU4uIDEg0YHQtdC60YPQvdC00YvQvSDQtNCw0YDQsNCwINC00LDRhdC40L0g0L7RgNC+0LvQtNC+0L3QviDRg9GDLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODAzMDYwNzM0MzIyMzI4NzY1NCI+ItCR0YPRgNGD0YMgUElOLiA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDRgdC10LrRg9C90LTRi9C9INC00LDRgNCw0LAg0LTQsNGF0LjQvSDQvtGA0L7Qu9C00L7QvdC+INGD0YMuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0idHJhbnNpZW50X25hdmlnYXRpb25fY29uZmlybWF0aW9uIiBtc2dpZD0iNDkwNzg0NDA0MzYxMTEyMzQyNiI+ItCR0LDQs9Cw0L3Ri9CzINGF0LDRgNGD0YPQu9Cw0YXRi9C9INGC0YPQu9C0INC00Y3Qu9Cz0Y3RhtC40LnQvSDQuNGA0LzRjdCz0LjQudCzINGI0YPQtNGA0LDQvdCwINGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0cmFuc2llbnRfbmF2aWdhdGlvbl9jb25maXJtYXRpb25fbG9uZyIgbXNnaWQ9IjgwNjE2ODU5MjA1MDgwODY2OTciPiLQodC40YHRgtC10LzQuNC50L0g0LHQsNCz0LDQvdGL0LMg0LPQsNGA0LPQsNGF0YvQvSDRgtGD0LvQtCDQtNGN0LvQs9GN0YbQuNC50L0g0LjRgNC80Y3Qs9GN0Y3RgSDRiNGD0LTRgNCw0L3QsCDRg9GDIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLW1zLXJNWS9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCmluZGV4IDg4ZDc2ZTcuLjA3ODVhYzMgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJUYWlwa2FuIFBVSyB5YW5nIG1lbXB1bnlhaSA4IG5vbWJvciBhdGF1IGxlYmloIHBhbmphbmcuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IkthZCBTSU0gYW5kYSBkaWt1bmNpIFBVSy4gVGFpcGthbiBrb2QgUFVLIHVudHVrIG1lbWJ1a2Ega3VuY2lueWEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iVGFpcGthbiBQVUsyIHVudHVrIG1lbnlhaHNla2F0IGthZCBTSU0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iVGlkYWsgYmVyamF5YSwgZGF5YWthbiBLdW5jaSBTSU0vUlVJTS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiJBbmRhIG1lbXB1bnlhaSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gcGVyY3ViYWFuIGxhZ2kgc2ViZWx1bSBTSU0gZGlrdW5jaS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJBbmRhIG1lbXB1bnlhaSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gcGVyY3ViYWFuIGxhZ2kgc2ViZWx1bSBTSU0gZGlrdW5jaS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IklEIFBlbWFuZ2dpbCBNYXN1ayI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4iTWVtYmVuYXJrYW4gYXBsIG1lbmdndW5ha2FuIGNpcmkgcGVyaW5na2F0IHJlbmRhaCBTdXJmYWNlRmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJiYWNhIHBlbmltYmFsIGJpbmdrYWkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4iTWVtYmVuYXJrYW4gYXBsIG1lbWJhY2Ega2FuZHVuZ2FuIHBlbmltYmFsIGJpbmdrYWkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iYWtzZXMgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+Ik1lbWJlbmFya2FuIGFwbCBtZW5nZ3VuYWthbiBjaXJpIHBlcmluZ2thdCByZW5kYWggSW5wdXRGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4ia29uZmlndXJhc2lrYW4gcGFwYXJhbiBXaWZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4iTWVtYmVuYXJrYW4gYXBsIG1lbmdrb25maWd1cmFzaSBkYW4gbWVueWFtYnVuZyBrZSBwYXBhcmFuIFdpZmkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiJrYXdhbCBwYXBhcmFuIFdpZmkiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJNYXN1ayI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IlBpbGloIGFwbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+IlRpZGFrIGRhcGF0IG1lbGFuY2Fya2FuIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiJLb25nc2kgZGVuZ2FuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IktvbmdzaSBkZW5nYW4gPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJQZW1lZ2FuZyBnZWxvbmdzb3IuIFNlbnR1aCAmYW1wOyB0YWhhbi4iPC9zdHJpbmc+CkBAIC0xNjQ5LDUgKzE2NTcsMTYgQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NzMwODY4OTIwNzQyOTUyODE3Ij4iQ3ViYSA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBzYWF0IGxhZ2kiPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4iQ3ViYSBzZWJlbnRhciBsYWdpIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IkxlcmV0IGtlIGJhd2FoIHVudHVrIGtlbHVhciBkYXJpIHNrcmluIHBlbnVoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IkxlcmV0IGtlIGJhd2FoIGRhcmkgYXRhcyB1bnR1ayBrZWx1YXIgZGFyaSBza3JpbiBwZW51aC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IlNlbGVzYWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiJQZW5nZ2VsYW5nc2FyIGJ1bGF0YW4gamFtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiJQZW5nZ2VsYW5nc2FyIGJ1bGF0YW4gbWluaXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4iUGlsaWggamFtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4iUGlsaWggbWluaXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+IkdyaWQgaGFyaSBidWxhbmFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4iU2VuYXJhaSB0YWh1biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iUGlsaWggYnVsYW4gZGFuIGhhcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiJQaWxpaCB0YWh1biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiI8eGxpZmY6ZyBpZD0iSVRFTSI+JTEkczwveGxpZmY6Zz4gZGlwaWxpaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+Ijx4bGlmZjpnIGlkPSJLRVkiPiUxJHM8L3hsaWZmOmc+IGRpcGFkYW1rYW4iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbXMvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLW1zL3N0cmluZ3MueG1sCmluZGV4IGE5ZmU5MzAuLmU2ZGMwY2EgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbXMvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1tcy9zdHJpbmdzLnhtbApAQCAtMzE0LDcgKzMxNCw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0b3BBcHBTd2l0Y2hlcyIgbXNnaWQ9IjQxMzg2MDg2MTA3MTc0MjU1NzMiPiJoYWxhbmcgcGVydHVrYXJhbiBhcGwiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI4MjYyMTk1ODAyNTgyMjU1MDIxIj4iTWVuZ2hhbGFuZyBwZW5nZ3VuYSBkYXJpcGFkYSBiZXJ0dWthciBrZXBhZGEgYXBsIGxhaW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRUb3BBY3Rpdml0eUluZm8iIG1zZ2lkPSIyNTM3OTIyMzExNDExNTQ2MDE2Ij4iZGFwYXRrYW4gbWFrbHVtYXQgYXBsIHNlbWFzYSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRvcEFjdGl2aXR5SW5mbyIgbXNnaWQ9IjI1MTI0NDg4NTU0OTYwNjcxMzEiPiJNZW1iZW5hcmthbiBwZW1lZ2FuZyBtZW5kYXBhdGthbiBtYWtsdW1hdCBwZXJpYmFkaSB0ZW50YW5nIHBlcm1vaG9uYW4gc2VtYXNhIGRpIGxhdGFyIGhhZGFwYW4gc2tyaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRUb3BBY3Rpdml0eUluZm8iIG1zZ2lkPSI4MTUzNjUxNDM0MTQ1MTMyNTA1Ij4iTWVtYmVuYXJrYW4gcGVtZWdhbmcgbWVuZGFwYXRrYW4gbWFrbHVtYXQgcGVyaWJhZGkgdGVudGFuZyBhcGxpa2FzaSBkYW4gcGVya2hpZG1hdGFuIHNlbWFzYSBkaSBsYXRhciBoYWRhcGFuIHNrcmluLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcnVuU2V0QWN0aXZpdHlXYXRjaGVyIiBtc2dpZD0iODkyMjM5MDk0ODY3MTgyNjU2Ij4icGFudGF1IGRhbiBrYXdhbCBzZW11YSBwZWxhbmNhcmFuIGFwbCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3J1blNldEFjdGl2aXR5V2F0Y2hlciIgbXNnaWQ9IjYwMDM2MDMxNjI1Nzg1Nzc0MDYiPiJNZW1iZW5hcmthbiBhcGwgdW50dWsgbWVtYW50YXUgZGFuIG1lbmdhd2FsIGNhcmEgc2lzdGVtIG1lbGFuY2Fya2FuIGFrdGl2aXRpLiBBcGwgaGFzYWQgYm9sZWggbWVuamVqYXNrYW4gc2lzdGVtIHNlcGVudWhueWEuIEtlYmVuYXJhbiBpbmkgaGFueWEgZGlwZXJsdWthbiB1bnR1ayBwZW1iYW5ndW5hbiwgdGlkYWsgc2VrYWxpLWthbGkgdW50dWsgcGVuZ2d1bmFhbiBiaWFzYS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Jyb2FkY2FzdFBhY2thZ2VSZW1vdmVkIiBtc2dpZD0iMjU3NjMzMzQzNDg5MzUzMjQ3NSI+ImhhbnRhciBzaWFyYW4gYmFoYXdhIHBha2VqIHRlbGFoIGRpYWxpaCBrZWx1YXIiPC9zdHJpbmc+CkBAIC0zNjIsMTAgKzM2Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUHJpbnRTZXJ2aWNlIiBtc2dpZD0iNzk2MDA2NzYyMzIwOTExMTEzNSI+Ik1lbWJlbmFya2FuIHBlbWVnYW5nIHRlcmlrYXQgZGVuZ2FuIGFudGFyYSBtdWthIHBlcmluZ2thdCB0ZXJ0aW5nZ2kgYmFnaSBwZXJraGlkbWF0YW4gY2V0YWthbi4gVGlkYWsgc2VrYWxpLWthbGkgZGlwZXJsdWthbiB1bnR1ayBhcGwgYmlhc2EuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NBbGxQcmludEpvYnMiIG1zZ2lkPSIxMTIwNzkyNDY4NDY1NzExMTU5Ij4iYWtzZXMgc2VtdWEga2VyamEgY2V0YWthbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0FsbFByaW50Sm9icyIgbXNnaWQ9IjI5NzgxODUzMTEwNDE4NjQ3NjIiPiJNZW1iZW5hcmthbiBwZW1lZ2FuZyBtZW5nYWtzZXMga2VyamEgY2V0YWthbiB5YW5nIGRpYnVhdCBvbGVoIGFwbCBsYWluLiBUaWRhayBzZWthbGkta2FsaSBkaXBlcmx1a2FuIHVudHVrIGFwbCBiaWFzYS4iPC9zdHJpbmc+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGVybWxhYl9iaW5kTmZjU2VydmljZSAoMjc1MjczMTMwMDQxOTQxMDcyNCkgLS0+Ci0gICAgPHNraXAgLz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwZXJtZGVzY19iaW5kTmZjU2VydmljZSAoNjEyMDY0NzYyOTE3NDA2Njg2MikgLS0+Ci0gICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSIyNzUyNzMxMzAwNDE5NDEwNzI0Ij4idGVyaWthdCBrZXBhZGEgcGVya2hpZG1hdGFuIE5GQyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iNjEyMDY0NzYyOTE3NDA2Njg2MiI+Ik1lbWJlbmFya2FuIHBlbWVnYW5nIHVudHVrIHRlcmlrYXQga2VwYWRhIGFwbGlrYXNpIHlhbmcgbWVuZ2lrdXQga2FkIE5GQy4gVGlkYWsgc2VrYWxpLWthbGkgZGlwZXJsdWthbiB1bnR1ayBhcGwgbm9ybWFsLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iNzM1ODM3ODQwMTkxNTI4NzkzOCI+InRlcmlrYXQga2VwYWRhIHBlcmtoaWRtYXRhbiB0ZWtzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iODE1MTk2ODkxMDk3Mzk5ODY3MCI+Ik1lbWJlbmFya2FuIHBlbWVnYW5nIG1lbmdpa2F0IGtlcGFkYSBhbnRhcmEgbXVrYSBwZXJpbmdrYXQgYXRhc2FuIHBlcmtoaWRtYXRhbiB0ZWtzKG1pcy4gUGVya2hpZG1hdGFuUGVueWVtYWtFamFhbikuIFRpZGFrIHNlaGFydXNueWEgZGlwZXJsdWthbiB1bnR1ayBhcGwgYmlhc2EuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kVnBuU2VydmljZSIgbXNnaWQ9IjQ3MDg1OTYwMjExNjE0NzMyNTUiPiJ0ZXJpa2F0IGtlcGFkYSBwZXJraGlkbWF0YW4gVlBOIjwvc3RyaW5nPgpAQCAtNDA5LDYgKzQwNywxMCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZExvZ3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMDYzNDM4MTQwMjQxNTYwNDQzIj4iTWVtYmVuYXJrYW4gYXBsIG1lbWJhY2EgZGFyaXBhZGEgcGVsYmFnYWkgZmFpbCBsb2cgc2lzdGVtLiBIYWwgaW5pIG1lbWJlbmFya2FubnlhIG1lbmVtdWkgbWFrbHVtYXQgdW11bSBtZW5nZW5haSBwZXJrYXJhIHlhbmcgYW5kYSBsYWt1a2FuIGRlbmdhbiB0ZWxlZm9uLCBqdWdhIGJlcnBvdGVuc2kgbWVueWVydGFrYW4gbWFrbHVtYXQgcGVyc2VuZGlyaWFuIGRhbiBwZXJpYmFkaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI3MTU4MDU1NTU4MjM4ODE4MTgiPiJndW5ha2FuIG1hbmEtbWFuYSBwZW55YWhrb2QgbWVkaWEgdW50dWsgbWFpbiBzZW11bGEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hbnlDb2RlY0ZvclBsYXliYWNrIiBtc2dpZD0iODI4MzkxMjQ4ODQzMzE4OTAxMCI+Ik1lbWJlbmFya2FuIGFwbCB1bnR1ayBtZW5nZ3VuYWthbiBzZWJhcmFuZyBwZW55YWhrb2QgbWVkaWEgeWFuZyBkaXBhc2FuZ2thbiB1bnR1ayBtZW55YWhrb2QgbWFpbiBzZW11bGEuIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1sYWJfbWFuYWdlQ2FDZXJ0aWZpY2F0ZXMgKDE2NzgzOTE4OTY3ODY4ODIwMTQpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGVybWRlc2NfbWFuYWdlQ2FDZXJ0aWZpY2F0ZXMgKDQwMTU2NDQwNDcxOTY5MzcwMTQpIC0tPgorICAgIDxza2lwIC8+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RpYWdub3N0aWMiIG1zZ2lkPSI4MDc2NzQzOTUzOTA4MDAwMzQyIj4iYmFjYS90dWxpcyBrZSBzdW1iZXIgeWFuZyBkaW1pbGlraSBvbGVoIGRpYWciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kaWFnbm9zdGljIiBtc2dpZD0iNjYwODI5NTY5MjAwMjQ1MjI4MyI+Ik1lbWJlbmFya2FuIGFwbCBtZW1iYWNhIGRhbiBtZW51bGlzIGtlIHNlYmFyYW5nIHN1bWJlciB5YW5nIGRpbWlsaWtpIG9sZWgga3VtcHVsYW4gZGlhZzsgY29udG9obnlhLCBmYWlsIGRhbGFtIC9kZXYuIEhhbCBpbmkgYmVycG90ZW5zaSBtZW5qZWphc2thbiBrZXN0YWJpbGFuIGRhbiBrZXNlbGFtYXRhbiBzaXN0ZW0uIFBlcmthcmEgaW5pIHNlaGFydXNueWEgSEFOWUEgZGlndW5ha2FuIHVudHVrIGRpYWdub3NpcyBraHVzdXMgcGVya2FrYXNhbiBvbGVoIHBlbmdpbGFuZyBhdGF1IHBlbmdlbmRhbGkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VDb21wb25lbnRTdGF0ZSIgbXNnaWQ9IjYzMzU1NzY3NzU3MTEwOTU5MzEiPiJkYXlha2FuIGF0YXUgbHVtcHVoa2FuIGtvbXBvbmVuIGFwbCI8L3N0cmluZz4KQEAgLTQ3NCwxOCArNDc2LDE0IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4iTWVtYmVuYXJrYW4gYXBsIG1lbmdndW5ha2FuIGNpcmkgcGVyaW5na2F0IHJlbmRhaCBJbnB1dEZsaW5nZXIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJrb25maWd1cmFzaWthbiBwYXBhcmFuIFdpZmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJNZW1iZW5hcmthbiBhcGwgbWVuZ2tvbmZpZ3VyYXNpIGRhbiBtZW55YW1idW5nIGtlIHBhcGFyYW4gV2lmaS4iPC9zdHJpbmc+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGVybWxhYl9jYXB0dXJlQXVkaW9PdXRwdXQgKDY4NTcxMzQ0OTg0MDIzNDY3MDgpIC0tPgotICAgIDxza2lwIC8+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGVybWRlc2NfY2FwdHVyZUF1ZGlvT3V0cHV0ICg2MjEwNTk3NzU0MjEyMjA4ODUzKSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1sYWJfY2FwdHVyZVZpZGVvT3V0cHV0ICgyMjQ2ODI4NzczNTg5MDk0MDIzKSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1kZXNjX2NhcHR1cmVWaWRlb091dHB1dCAoMzU5NDgxNjU4MDM0MTQ5ODYwKSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1sYWJfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0ICg3ODE1Mzk4OTY5MzAzMzgyMDE2KSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1kZXNjX2NhcHR1cmVTZWN1cmVWaWRlb091dHB1dCAoMjc3OTc5MzA2NDcwOTM1MDI4OSkgLS0+Ci0gICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4ia2F3YWwgcGFwYXJhbiBXaWZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iNDU0MzkxMjI5MjY4MTgyNjk4NiI+Ik1lbWJlbmFya2FuIGFwbCBtZW5nYXdhbCBjaXJpIHRhaGFwIHJlbmRhaCBwYXBhcmFuIFdpZmkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlQXVkaW9PdXRwdXQiIG1zZ2lkPSI2ODU3MTM0NDk4NDAyMzQ2NzA4Ij4idGFuZ2thcCBvdXRwdXQgYXVkaW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlQXVkaW9PdXRwdXQiIG1zZ2lkPSI2MjEwNTk3NzU0MjEyMjA4ODUzIj4iTWVtYmVuYXJrYW4gYXBsIG1lbmFuZ2thcCBkYW4gbWVuZ3ViYWggaGFsYSBvdXRwdXQgYXVkaW8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIyMjQ2ODI4NzczNTg5MDk0MDIzIj4idGFuZ2thcCBvdXRwdXQgdmlkZW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIzNTk0ODE2NTgwMzQxNDk4NjAiPiJNZW1iZW5hcmthbiBhcGwgbWVuYW5na2FwIGRhbiBtZW5ndWJhaCBoYWxhIG91dHB1dCB2aWRlby4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVTZWN1cmVWaWRlb091dHB1dCIgbXNnaWQ9Ijc4MTUzOTg5NjkzMDMzODIwMTYiPiJ0YW5na2FwIG91dHB1dCB2aWRlbyBzZWxhbWF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMjc3OTc5MzA2NDcwOTM1MDI4OSI+Ik1lbWJlbmFya2FuIGFwbCBtZW5hbmdrYXAgZGFuIG1lbmd1YmFoIGhhbGEgb3V0cHV0IHZpZGVvIHNlbGFtYXQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlBdWRpb1NldHRpbmdzIiBtc2dpZD0iNjA5NTg1OTkzNzA2OTE0NjA4NiI+InR1a2FyIHRldGFwYW4gYXVkaW8gYW5kYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeUF1ZGlvU2V0dGluZ3MiIG1zZ2lkPSIzNTIyNTY1MzY2ODA2MjQ4NTE3Ij4iTWVtYmVuYXJrYW4gYXBsIHVudHVrIG1lbmd1YmFoIHN1YWkgdGV0YXBhbiBhdWRpbyBnbG9iYWwgc2VwZXJ0aSBrZWxhbnRhbmdhbiBkYW4gcGVtYmVzYXIgc3VhcmEgbWFuYSBkaWd1bmFrYW4gdW50dWsgb3V0cHV0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjb3JkQXVkaW8iIG1zZ2lkPSIzODc2MDQ5NzcxNDI3NDY2MzIzIj4icmFrYW0gYXVkaW8iPC9zdHJpbmc+CkBAIC02NTksNiArNjU3LDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmROb3RpZmljYXRpb25MaXN0ZW5lclNlcnZpY2UiIG1zZ2lkPSI5ODU2OTc5MTg1NzY5MDI5ODYiPiJNZW1iZW5hcmthbiBwZW1lZ2FuZyB0ZXJpa2F0IGRlbmdhbiBhbnRhcmEgbXVrYSBwZXJpbmdrYXQgdGVydGluZ2dpIGJhZ2kgcGVya2hpZG1hdGFuIHBlbmRlbmdhciBwZW1iZXJpdGFodWFuLiBUaWRhayBzZWthbGkta2FsaSBkaXBlcmx1a2FuIHVudHVrIGFwbCBiaWFzYS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludm9rZUNhcnJpZXJTZXR1cCIgbXNnaWQ9IjM2OTk2MDA4MzM5NzUxMTc0NzgiPiJndW5ha2FuIGFwbCBrb25maWd1cmFzaSB5YW5nIGRpc2VkaWFrYW4gb2xlaCBwZW1iYXdhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW52b2tlQ2FycmllclNldHVwIiBtc2dpZD0iNDE1OTU0OTE1MjUyOTExMTkyMCI+Ik1lbWJlbmFya2FuIHBlbWVnYW5nIG1lbmdndW5ha2FuIGFwbCBrb25maWd1cmFzaSB5YW5nIGRpYmVyaWthbiBvbGVoIHBlbWJhd2EuIFRpZGFrIHNla2FsaS1rYWxpIGRpcGVybHVrYW4gdW50dWsgYXBsIGJpYXNhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI4MjA2MDc3NDQ3ODM4OTA5NTE2Ij4iZGVuZ2FyIHBlbWVyaGF0aWFuIG1lbmdlbmFpIGtlYWRhYW4gcmFuZ2thaWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI2ODk5MTAyMDc1ODI1MjcyMjExIj4iTWVtYmVuYXJrYW4gYXBsaWthc2kgbWVuZGVuZ2FyIHBlbWVyaGF0aWFuIHRlbnRhbmcga2VhZGFhbiByYW5na2FpYW4uIFRpZGFrIHNla2FsaS1rYWxpIGRpcGVybHVrYW4gdW50dWsgYXBsIGJpYXNhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9saW1pdFBhc3N3b3JkIiBtc2dpZD0iNDQ5NzQyMDcyODg1NzU4NTc5MSI+IlRldGFwa2FuIHBlcmF0dXJhbiBrYXRhIGxhbHVhbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfbGltaXRQYXNzd29yZCIgbXNnaWQ9IjMyNTIxMTQyMDM5MTk1MTAzOTQiPiJNZW5nYXdhbCBwYW5qYW5nIGRhbiBha3NhcmEgeWFuZyBkaWJlbmFya2FuIGRhbGFtIGthdGEgbGFsdWFuIGJ1a2Ega3VuY2kgc2tyaW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dhdGNoTG9naW4iIG1zZ2lkPSI5MTQxMzA2NDY5NDIxOTk1MDMiPiJNZW1hbnRhdSBwZXJjdWJhYW4gYnVrYSBrdW5jaSBza3JpbiI8L3N0cmluZz4KQEAgLTE0NzksOCArMTQ3OSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfaGRtaV9kaXNwbGF5X25hbWUiIG1zZ2lkPSIxNTU1MjY0NTU5MjI3NDcwMTA5Ij4iU2tyaW4gSERNSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9vdmVybGF5X2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjUxNDIzNjU5ODIyNzE2MjA3MTYiPiJUaW5kaWggIzx4bGlmZjpnIGlkPSJJRCI+JTEkZDwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X3RpdGxlIiBtc2dpZD0iNjUyMTI0NTE3NjcyMjU3MTcyIj4iPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+OiA8eGxpZmY6ZyBpZD0iV0lEVEgiPiUyJGQ8L3hsaWZmOmc+eDx4bGlmZjpnIGlkPSJIRUlHSFQiPiUzJGQ8L3hsaWZmOmc+LCA8eGxpZmY6ZyBpZD0iRFBJIj4lNCRkPC94bGlmZjpnPiBkcGkiPC9zdHJpbmc+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9zZWN1cmVfc3VmZml4ICg2MDIyMTE5NzAyNjI4NTcyMDgwKSAtLT4KLSAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9zZWN1cmVfc3VmZml4IiBtc2dpZD0iNjAyMjExOTcwMjYyODU3MjA4MCI+Iiwgc2VsYW1hdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IndpZmlfZGlzcGxheV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMjIzMDUwNjQ5MjQwMzI2NTU3Ij4iUGFwYXJhbiB3YXlhcmxlcyBkaXNhbWJ1bmdrYW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDk4ODAyMDEyNDY0MTcwNjg1Ij4iU2tyaW4gaW5pIGRpdHVuanVra2FuIHBhZGEgcGVyYW50aSBsYWluIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl9kaXNjb25uZWN0IiBtc2dpZD0iNjE4Mzc1NDQ2MzU2MTE1MzM3MiI+IlB1dHVzIHNhbWJ1bmdhbiI8L3N0cmluZz4KQEAgLTE1ODQsNCArMTU4Myw2IEBACiAgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ4MzU2Mzk5Njk1MDM3Mjk4NzQiPiJQSU4gc2FsYWguIEN1YmEgbGFnaSBkYWxhbSBtYXNhIDEgc2FhdC4iPC9pdGVtPgogICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjgwMzA2MDczNDMyMjMyODc2NTQiPiJQSU4gc2FsYWguIEN1YmEgbGFnaSBkYWxhbSBtYXNhIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHNhYXQuIjwvaXRlbT4KICAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0idHJhbnNpZW50X25hdmlnYXRpb25fY29uZmlybWF0aW9uIiBtc2dpZD0iNDkwNzg0NDA0MzYxMTEyMzQyNiI+IkxlcmV0IGJoZyB0ZXBpIHNrcmluIHV0ayBzZXJsYWggYmFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHJhbnNpZW50X25hdmlnYXRpb25fY29uZmlybWF0aW9uX2xvbmciIG1zZ2lkPSI4MDYxNjg1OTIwNTA4MDg2Njk3Ij4iTGVyZXQgZGFyaSB0ZXBpIHNrcmluIHVudHVrIG1lbmFtcGFra2FuIGJhciBzaXN0ZW0iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbmIvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLW5iL3N0cmluZ3MueG1sCmluZGV4IDNiZTg4MTcuLmFiZGEwYTEgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbmIvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbApAQCAtNTAsNiArNTAsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4iU2tyaXYgaW5uIGVuIFBVSy1rb2RlIHDDpSDDpXR0ZSB0YWxsIGVsbGVyIG1lci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4iU0lNLWtvcnRldCBkaXR0IGVyIFBVSy1sw6VzdC4gU2tyaXYgaW5uIFBVSy1rb2RlbiBmb3Igw6UgbMOlc2UgZGV0IG9wcC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJTa3JpdiBpbm4gUFVLMiBmb3Igw6UgbMOlc2Ugb3BwIFNJTS1rb3J0ZXQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iTWlzbHlrdGVzIOKAkyBha3RpdmVyIGzDpXMgZm9yIFNJTS9SVUlNLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IkR1IGhhciA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gZm9yc8O4ayBpZ2plbiBmw7hyIFNJTS1rb3J0ZXQgbMOlc2VzLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+IkR1IGhhciA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gZm9yc8O4ayBpZ2plbiBmw7hyIFNJTS1rb3J0ZXQgbMOlc2VzLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iSW5uZ8OlZW5kZSBudW1tZXJ2aXNuaW5nIjwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiJMYXIgYXBwZW4gYnJ1a2UgZ3J1bm5sZWdnZW5kZSBTdXJmYWNlRmxpbmdlci1mdW5rc2pvbmVyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+Imxlc2Ugc2tqZXJtYnVmZmVyZW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4iTGFyIGFwcGVuIGxlc2UgaW5uaG9sZGV0IGkgcmFtbWVidWZmZXJlbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJ0aWxnYW5nIHRpbCBJbnB1dEZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4iTGFyIGFwcGVuIGJydWtlIGdydW5ubGVnZ2VuZGUgSW5wdXRGbGluZ2VyLWZ1bmtzam9uZXIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJrb25maWd1cmVyZSBXaS1GaS1za2plcm1lciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IlRpbGxhdGVyIGFwcGVuIMOlIGtvbmZpZ3VyZXJlIG9nIGtvYmxlIHRpbCBXaS1GaS1za2plcm1lci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+ImtvbnRyb2xsZXJlIFdpLUZpLXNramVybWVyIjwvc3RyaW5nPgpAQCAtMTQxNCw2ICsxNDIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRW50ZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiJWZWxnIGVuIGFwcCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+Ikt1bm5lIGlra2Ugc3RhcnRlIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiJEZWwgbWVkIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IkRlbCBtZWQgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJHbGlkZWJyeXRlci4gVHJ5a2sgb2cgaG9sZCBpbm5lLiI8L3N0cmluZz4KQEAgLTE2NTAsNCArMTY1OCwxNSBAQAogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4iUHLDuHYgcMOlIG55dHQgc2VuZXJlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IlN2ZWlwIG5lZCBmcmEgdG9wcGVuIGF2IHNramVybWVuIGZvciDDpSBnw6UgdXQgYXYgZnVsbHNramVybXZpc25pbmdlbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IkZlcmRpZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IlNpcmt1bMOmciBnbGlkZWJyeXRlciBmb3IgdGltZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+IlNpcmt1bMOmciBnbGlkZWJyeXRlciBmb3IgbWludXR0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4iQW5naSB0aW1lciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IkFuZ2kgbWludXR0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+Ik3DpW5lZHNydXRlbmV0dCBtZWQgZGFnZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLDhXJzbGlzdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IlZlbGcgbcOlbmVkZW4gb2cgZGFnZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiJWZWxnIMOlcmV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+Ijx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiBlciB2YWxndCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+Ijx4bGlmZjpnIGlkPSJLRVkiPiUxJHM8L3hsaWZmOmc+IGVyIHNsZXR0ZXQiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbmUtck5QL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1uZS1yTlAvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODYyNjg5N2IKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLW5lLXJOUC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDE1OTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyogLy9kZXZpY2UvYXBwcy9jb21tb24vYXNzZXRzL3Jlcy9hbnkvc3RyaW5ncy54bWwKKyoqCisqKiBDb3B5cmlnaHQgMjAwNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYnl0ZVNob3J0IiBtc2dpZD0iODM0MDk3Mzg5Mjc0MjAxOTEwMSI+IkIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJraWxvYnl0ZVNob3J0IiBtc2dpZD0iNTk3Mzc4OTc4MzUwNDc3MTg3OCI+IktCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVnYWJ5dGVTaG9ydCIgbXNnaWQ9IjYzNTU4NTE1NzY3NzA0Mjg5MjIiPiJNQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdpZ2FieXRlU2hvcnQiIG1zZ2lkPSIzMjU5ODgyNDU1MjEyMTkzMjE0Ij4iR0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXJhYnl0ZVNob3J0IiBtc2dpZD0iMjMxNjEzMDE4MTU5MTg2OTYyIj4iVEIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXRhYnl0ZVNob3J0IiBtc2dpZD0iNTYzNzgxNjY4MDE0NDk5MDIxOSI+IlBCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmlsZVNpemVTdWZmaXgiIG1zZ2lkPSI5MTY0MjkyNzkxNTAwNTMxOTQ5Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JTEkczwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iVU5JVCI+JTIkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1bnRpdGxlZCIgbXNnaWQ9IjQ2Mzg5NTY5NTQ4NTI3ODI1NzYiPiImbHQ74KSs4KS/4KSo4KS+IOCktuClgOCksOCljeCkt+CklSZndDsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGxpcHNpcyIgbXNnaWQ9Ijc4OTk4Mjk1MTYwNDg4MTMyMzciPiLigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGxpcHNpc190d29fZG90cyIgbXNnaWQ9IjEyMjgwNzg5OTQ4NjYwMzA3MzYiPiLigKUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eVBob25lTnVtYmVyIiBtc2dpZD0iNzY5NDA2MzA0MjA3OTY3NjUxNyI+IijgpJXgpYHgpKjgpYgg4KSr4KWL4KSoIOCkqOCkruCljeCkrOCksCDgpJvgpYjgpKgpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idW5rbm93bk5hbWUiIG1zZ2lkPSIyMjc3NTU2NTQ2NzQyNzQ2NTIyIj4iKOCkheCknOCljeCknuCkvuCkpCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0Vm9pY2VNYWlsQWxwaGFUYWciIG1zZ2lkPSIyNjYwMDIwOTkwMDk3NzMzMDc3Ij4i4KSt4KWN4KS14KS+4KSH4KS4IOCkruClh+CksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRNc2lzZG5BbHBoYVRhZyIgbXNnaWQ9IjI4NTA4ODk3NTQ5MTk1ODQ2NzQiPiJNU0lTRE7gpaciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtbWlFcnJvciIgbXNnaWQ9IjUxNTQ0OTk0NTc3MzkwNTI5MDciPiLgpJzgpKHgpL7gpKgg4KS44KSu4KS44KWN4KSv4KS+IOCkteCkviDgpIXgpK7gpL7gpKjgpY3gpK8gTU1JIOCkleCli+CkoeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1taUZkbkVycm9yIiBtc2dpZD0iNTIyNDM5ODIxNjM4NTMxNjQ3MSI+IuCkheCkquCksOClh+CktuCkqCDgpKjgpL/gpLbgpY3gpJrgpL/gpKQg4KSh4KS+4KSv4KSyIOCkqOCkruCljeCkrOCksOCkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSu4KS+4KSk4KWN4KSwIOCkquCljeCksOCkpOCkv+CkrOCkqOCljeCkp+Ckv+CkpCDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRW5hYmxlZCIgbXNnaWQ9IjgxNDcyNzgzNDY0MTQ3MTQzMTUiPiLgpLjgpYfgpLXgpL4g4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCkv+Ckr+Cli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VFbmFibGVkRm9yIiBtc2dpZD0iNjg1NjIyODE0MDQ1MzQ3MTA0MSI+IuCkqOCkv+CkruCljeCkqCDgpIngpLLgpY3gpLLgpYfgpJbgpL/gpKTgpJXgpYsg4KSy4KS+4KSX4KS/IOCkuOClh+CkteCkviDgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KS/4KSv4KWLOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VEaXNhYmxlZCIgbXNnaWQ9IjE5Mzc1NTMyMjY1OTI1MTY0MTEiPiLgpLjgpYfgpLXgpL4g4KSF4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCkv+Ckj+CkleCliyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlUmVnaXN0ZXJlZCIgbXNnaWQ9IjYyNzUwMTkwODI1OTgxMDI0OTMiPiLgpKbgpLDgpY3gpKTgpL4g4KS44KSr4KSyIOCkreCkr+Cli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VFcmFzZWQiIG1zZ2lkPSIxMjg4NTg0Njk1Mjk3MjAwOTcyIj4i4KSu4KWH4KSf4KS+4KSHIOCkuOCkq+CksiDgpKXgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZEluY29ycmVjdCIgbXNnaWQ9Ijc2MTIyMDg4Mzk0NTAxMjg3MTUiPiLgpJfgpLLgpKQg4KSq4KS+4KS44KS14KSw4KWN4KSh4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pQ29tcGxldGUiIG1zZ2lkPSI4MjMyNTI3NDk1NDExNjk4MzU5Ij4iTU1JIOCkquClgeCksOCkviDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWRQaW4iIG1zZ2lkPSI5MDE1Mjc3NjQ1NTQ2NzEwMDE0Ij4i4KSk4KSq4KS+4KSI4KSC4KSy4KWHIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpK3gpI/gpJXgpYsg4KSq4KWB4KSw4KS+4KSo4KWLIFBJTiDgpLjgpLngpYAg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFkUHVrIiBtc2dpZD0iNTQ4NzI1NzY0NzA4MTEzMjIwMSI+IuCkpOCkquCkvuCkiOCkguCksuClhyDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KSt4KSP4KSV4KWLIFBVSyDgpLjgpLngpYAg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWlzbWF0Y2hQaW4iIG1zZ2lkPSI2MDkzNzkwNTQ0OTY4NjM0MTkiPiLgpKTgpKrgpL7gpIjgpILgpLLgpYcg4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkreCkj+CkleCliyBQSU4g4KSu4KWH4KSyIOCkluCkvuCkgeCkpuCliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQaW4iIG1zZ2lkPSIzODUwMDE4NDQ1MTg3NDc1Mzc3Ij4i4KWqIOCkpuClh+CkluCkvyDgpa4g4KS14KSf4KS+IOCkqOCkruCljeCkrOCksCDgpK3gpI/gpJXgpYsg4KSP4KSJ4KSf4KS+IFBJTiDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiLgpa4g4KS14KSf4KS+IOCkqOCkruCljeCkrOCksOCkueCksOClgiDgpLXgpL4g4KS44KWLIOCkreCkqOCljeCkpuCkviDgpLLgpL7gpK7gpYsg4KSP4KSJ4KSf4KS+IFBVSyDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IuCkpOCkquCkvuCkiOCkguCkleCliyBTSU0g4KSV4KS+4KSw4KWN4KShIFBVSy3gpLLgpJUg4KSb4KWkIOCkr+CkuOCksuCkvuCkiCDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIFBVSyDgpJXgpYvgpKEg4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IlNJTSDgpJXgpL7gpLDgpY3gpKEg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqCBQVUsyIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IuCkhuCkl+CkruCkqCDgpJXgpLLgpLAgSUQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbGlyTW1pIiBtc2dpZD0iNzc4NDY3MzY3MzQ0NjgzMzA5MSI+IuCkrOCkvuCkueCkv+CksOCkv+CkqOClhyDgpJXgpLLgpLAgSUQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDZk1taSIgbXNnaWQ9IjUxMjMyMTg5ODkxNDE1NzM1MTUiPiLgpJXgpLIg4KSF4KSX4KS+4KSh4KS/IOCkrOCkouCkvuCkieCkgeCkpuCliCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkN3TW1pIiBtc2dpZD0iOTEyOTY3ODA1Njc5NTAxNjg2NyI+IuCkleCksiDgpKrgpY3gpLDgpKTgpL/gpJXgpY3gpLfgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJCYU1taSIgbXNnaWQ9IjQ1NTE5MzA2NzkyNjc3MDU4MSI+IuCkleCksiDgpKzgpY3gpK/gpL7gpLDgpL/gpJkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJQd2RNbWkiIG1zZ2lkPSI3MDQzNzE1Njg3OTA1MjU0MTk5Ij4i4KSq4KS+4KS44KS14KSw4KWN4KShIOCkquCksOCkv+CkteCksOCljeCkpOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlBpbk1taSIgbXNnaWQ9IjMxMTMxMTc3ODAzNjExOTAzMDQiPiJQSU4g4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ25pcE1taSIgbXNnaWQ9IjMxMTA1MzQ2ODA1NTc4NTcxNjIiPiLgpKrgpY3gpLDgpLjgpY3gpKTgpYHgpKQg4KSo4KSu4KWN4KSs4KSw4KSu4KS+IOCkleCksiDgpJfgpLDgpY3gpKbgpYgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbmlyTW1pIiBtc2dpZD0iMzA2MjEwMjEyMTQzMDU0ODczMSI+IuCkleCksiDgpJfgpLDgpY3gpKjgpYcg4KSF4KSC4KSVIOCksOCli+CkleClh+CkleCliyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJUaHJlZVdDTW1pIiBtc2dpZD0iOTA1MTA0NzE3MDMyMTE5MDM2OCI+IuCkleCksiDgpJfgpLDgpY3gpKjgpYcg4KSk4KS/4KSoIOCkpOCksOCkv+CkleCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJ1YWNNbWkiIG1zZ2lkPSI3ODI3ODg3NDU5MTM4MzA4ODg2Ij4i4KSo4KSa4KS+4KS54KS/4KSP4KSV4KS+IOCksOCkv+CkuOCkieCkoOCljeCkpuCkviDgpJXgpLLgpLngpLDgpYLgpJXgpYsg4KSF4KS44KWN4KS14KWA4KSV4KS+4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ25kTW1pIiBtc2dpZD0iMzExNjQ0NjIzNzA4MTU3NTgwOCI+IuCkleCksuCkv+CkmSDgpKjgpK7gpY3gpKzgpLAg4KSq4KWN4KSw4KSm4KS+4KSoIOCkl+CksOCljeCkqOClhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkRuZE1taSIgbXNnaWQ9IjEyNjU0Nzg5MzI0MTgzMzQzMzEiPiLgpKzgpL7gpKfgpL4g4KSo4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPbk5leHRDYWxsT24iIG1zZ2lkPSI0Mjk0MTU0MDkxNDU3ODE5MjMiPiLgpLjgpYDgpK7gpKTgpL8g4KSX4KSw4KWN4KSoIOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpCDgpJXgpLLgpLAgSUQsIOCkheCksOCljeCkleCliyDgpJXgpLI6IOCkuOClgOCkruCkpOCkvyDgpJfgpLDgpL/gpI/gpJXgpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSRGVmYXVsdE9uTmV4dENhbGxPZmYiIG1zZ2lkPSIzMDkyOTE4MDA2MDc3ODY0NjI0Ij4i4KSV4KSy4KSwIElEIOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpOCkleCliyDgpLLgpL7gpJfgpL8g4KSw4KWL4KSV4KS+4KS14KSfIOCkm+ClpCDgpIXgpLDgpY3gpJXgpYsg4KSV4KSyOiDgpLDgpYvgpJXgpL7gpLXgpJ8g4KSb4KWI4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPZmZOZXh0Q2FsbE9uIiBtc2dpZD0iNjE3OTQyNTE4Mjg1NjQxODQ2NSI+IuCkleCksuCksCBJRCDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKTgpKbgpYfgpJbgpL8g4KSq4KWN4KSw4KSk4KS/4KSs4KSo4KWN4KSn4KS/4KSkIOCkm+CliOCkqOClpCDgpIXgpLDgpY3gpJXgpYsg4KSV4KSyOiDgpKrgpY3gpLDgpKTgpL/gpKzgpKjgpY3gpKfgpL/gpKQg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPZmZOZXh0Q2FsbE9mZiIgbXNnaWQ9IjI1Njc5OTg2MzMxMjQ0MDg1NTIiPiLgpJXgpLLgpLAgSUQg4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSk4KSV4KWLIOCksuCkvuCkl+CkvyDgpLDgpYvgpJXgpL7gpLXgpJ8g4KSb4KWI4KSo4KWkIOCkheCksOCljeCkleCliyDgpJXgpLI6IOCksOCli+CkleCkvuCkteCknyDgpJvgpYjgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlTm90UHJvdmlzaW9uZWQiIG1zZ2lkPSI4NjE0ODMwMTgwNTA4Njg2NjY2Ij4i4KS44KWH4KS14KS+4KSV4KWLIOCkteCljeCkr+CkteCkuOCljeCkpeCkviDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSUGVybWFuZW50IiBtc2dpZD0iMzM3NzM3MTE0NTkyNjgzNTY3MSI+IuCkpOCkquCkvuCkiOCkgiDgpJXgpLLgpLAgSUQg4KS44KWH4KSf4KS/4KSZIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSo4KWB4KS54KWB4KSo4KWN4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZENoYW5nZWRUaXRsZSIgbXNnaWQ9IjU1OTIxODkzOTg5NTYxODc0OTgiPiLgpKrgpY3gpLDgpKTgpL/gpKzgpKjgpY3gpKfgpL/gpKQg4KSq4KS54KWB4KSB4KSaIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpK3gpI/gpJXgpYsg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uRGF0YSIgbXNnaWQ9Ijg2NTM3OTQ3ODQ2OTAwNjU1NDAiPiLgpKHgpYfgpJ/gpL4g4KS44KWH4KS14KS+IOCksOCli+CkleCkv+Ckj+CkleCliyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25FbWVyZ2VuY3kiIG1zZ2lkPSI2NTgxMTYzNzc5MDcyODMzNjY1Ij4i4KSG4KSq4KSk4KSV4KS+4KSy4KWA4KSoIOCkuOClh+CkteCkviDgpLDgpYvgpJXgpL/gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uTm9ybWFsIiBtc2dpZD0iNDk1Mzg2NzAxMTM4OTc1MDY3MyI+IuCkreCljeCkteCkvuCkh+CkuCDgpLjgpYfgpLXgpL4g4KSs4KWN4KSy4KSVIOCkreCkj+CkleCliyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25BbGxWb2ljZSIgbXNnaWQ9IjMzOTY5NjM2NTIxMDgxNTEyNjAiPiLgpLjgpKzgpYgg4KSG4KS14KS+4KScIOCkuOClh+CkteCkvuCkueCksOClgiDgpKzgpKjgpY3gpKYg4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uU21zIiBtc2dpZD0iODMxNDM1MjMyNzQ2MTYzODg5NyI+IlNNUyDgpLjgpYfgpLXgpL4g4KSw4KWL4KSV4KS/4KSP4KSV4KWLIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblZvaWNlRGF0YSIgbXNnaWQ9Ijk5NjYzNjQ4NzEwNjE3MTMyMCI+IuCkreCljeCkteCkvuCkh+CkuC/gpKHgpYfgpJ/gpL4g4KS44KWH4KS14KS+4KS54KSw4KWCIOCksOCli+CkleCkv+Ckj+CkleCkviDgpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25Wb2ljZVNtcyIgbXNnaWQ9IjE4ODg1ODgxNTI3OTIwMjM4NzMiPiLgpIbgpLXgpL7gpJwvU01TIOCkuOClh+CkteCkvuCkueCksOClgiDgpKzgpKjgpY3gpKYg4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uQWxsIiBtc2dpZD0iNTY0MzAyODI2NDQ2NjA5MjgyMSI+IuCkuOCkrOCliCDgpK3gpY3gpLXgpL7gpIfgpLgv4KSh4KWH4KSf4KS+L1NNUyDgpLjgpYfgpLXgpL7gpLngpLDgpYIg4KSs4KWN4KSy4KSVIOCkreCkj+CkleCkviDgpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NWb2ljZSIgbXNnaWQ9IjEyNTgzOTM4MTIzMzUyNTgwMTkiPiLgpIbgpLXgpL7gpJwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhIiBtc2dpZD0iODcyNDU2NzgyMDc3OTM3ODkzIj4i4KSh4KWH4KSf4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRkFYIiBtc2dpZD0iNTU2NjYyNDk5ODg0MDQ4NjQ3NSI+IuCkq+CljeCkr+CkvuCkleCljeCkuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1NNUyIgbXNnaWQ9IjIwMTU0NjAzNzM3MDE1Mjc0ODkiPiJTTVMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhQXN5bmMiIG1zZ2lkPSI0NTIzNDU0NzgzNDk4NTUxNDY4Ij4iQXN5bmMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhU3luYyIgbXNnaWQ9Ijc1MzAwMDA1MTk2NDYwNTQ3NzYiPiLgpLjgpL/gpJngpY3gpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzUGFja2V0IiBtc2dpZD0iNjk5MTAwNjU1Nzk5MzQyMzQ1MyI+IuCkquCljeCkr+CkvuCkleClh+CknyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1BBRCIgbXNnaWQ9IjMyMzUyNTkwODU2NDgyNzEwMzciPiJQQUQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDAiIG1zZ2lkPSI3MTcwMzM1NDcyMTk4Njk0OTQ1Ij4i4KSw4KWL4KSu4KS/4KSZIOCkuOClguCkmuCklSDgpJbgpYHgpLLgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDEiIG1zZ2lkPSI1MzE0ODYxNTE5NzUyNTM4OTIyIj4i4KSw4KWL4KSu4KS/4KSZIOCkuOClguCkmuCklSDgpKzgpKjgpY3gpKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDIiIG1zZ2lkPSI4OTY5OTI5MDQ5MDgxMjY4MTE1Ij4i4KSw4KWL4KSu4KS/4KSZIOCkuOClguCkmuCklSDgpKvgpY3gpLLgpY3gpK/gpL7gpLgg4KSX4KSw4KWN4KSm4KWIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQzIiBtc2dpZD0iNTE0ODI1NTAyNzA0Mzk0MzMxNyI+IuCkm+Ckv+CkruClh+CkleCkrOCkvuCknyDgpKzgpL7gpLngpL/gpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDQiIG1zZ2lkPSI4ODA4NDU2NjgyNTUwNzk2NTMwIj4i4KSs4KS/4KSy4KWN4KSh4KS/4KSZ4KSV4KWLIOCkrOCkvuCkueCkv+CksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NSIgbXNnaWQ9Ijc2MDQwNjMyNTI4NTAzNTQzNTAiPiLgpLDgpYvgpK7gpL/gpJkgLSDgpIngpKrgpK/gpYHgpJXgpY3gpKQg4KSq4KWN4KSw4KSj4KS+4KSy4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ2IiBtc2dpZD0iMjA1OTQ0MDgyNTc4Mjg3MTUxMyI+IuCksOCli+CkruCkv+CkmSAtIOCkieCkquCksuCkrOCljeCkpyDgpKrgpY3gpLDgpKPgpL7gpLLgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDciIG1zZ2lkPSI3MTEyMDc4NzI0MDk3MjMzNjA1Ij4i4KSw4KWL4KSu4KS/4KSZIC0g4KSP4KSy4KS/4KSv4KSo4KWN4KS44KSwIOCkquCkvuCksOCljeCkn+CkqOCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0OCIgbXNnaWQ9IjU5ODk1Njk3Nzg2MDQwODkyOTEiPiLgpLDgpYvgpK7gpL/gpJkgLSDgpKrgpY3gpLDgpL/gpK7gpL/gpK/gpK4g4KSq4KS+4KSw4KWN4KSf4KSo4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ5IiBtc2dpZD0iNzk2OTI5NjgxMTM1NTE1MjQ5MSI+IuCksOCli+CkruCkv+CkmSAtIOCkquClguCksOCljeCkoyDgpLjgpYfgpLXgpL4g4KSV4KS+4KSw4KWN4KSv4KSV4KWN4KS34KSu4KSk4KS+IOCkheCkteCkuOCljeCkpeCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MTAiIG1zZ2lkPSIzOTkyOTA2OTk5ODE1MzE2NDE3Ij4i4KSw4KWL4KSu4KS/4KSZIC0g4KSG4KSZ4KWN4KS24KS/4KSVIOCkuOClh+CkteCkviDgpKrgpY3gpLDgpJXgpL7gpLDgpY3gpK/gpKTgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDExIiBtc2dpZD0iNDE1NDQ3Njg1NDQyNjkyMDk3MCI+IuCksOCli+CkruCkv+CkmSDgpKfgpY3gpLXgpJzgpL4g4KSa4KS+4KSy4KWBIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MTIiIG1zZ2lkPSIxMTg5MDcxMTE5OTkyNzI2MzIwIj4i4KSw4KWL4KSu4KS/4KSZIOCkrOCljeCkr+CkvuCkqOCksCDgpKzgpKjgpY3gpKYg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHRTZWFyY2hpbmciIG1zZ2lkPSI4MzYwMTQxODg1OTcyMjc5OTYzIj4i4KS44KWH4KS14KS+4KSV4KWLIOCkluCli+CknOClgCDgpJfgpLDgpY3gpKbgpYjigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlTm90Rm9yd2FyZGVkIiBtc2dpZD0iMTY4MzY4NTg4Mzg0MTI3MjU2MCI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+OiDgpIXgpJfgpL7gpKHgpL8g4KSq4KSg4KS+4KSH4KSP4KSV4KWLIOCkm+CliOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVGb3J3YXJkZWQiIG1zZ2lkPSIxMzAyOTIyMTE3NDk4NTkwNTIxIj4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz46IDx4bGlmZjpnIGlkPSJESUFMSU5HX05VTUJFUiI+ezF9PC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVGb3J3YXJkZWRUaW1lIiBtc2dpZD0iOTIwNjI1MTczNjUyNzA4NTI1NiI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+OiA8eGxpZmY6ZyBpZD0iRElBTElOR19OVU1CRVIiPnsxfTwveGxpZmY6Zz4g4KSq4KSb4KS/IDx4bGlmZjpnIGlkPSJUSU1FX0RFTEFZIj57Mn08L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVSZWdpc3RlcmVkIiBtc2dpZD0iNTA3MzIzNzgyNzYyMDE2NjI4NSI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+OiDgpIXgpJfgpL7gpKHgpL8g4KSs4KSi4KS+4KSH4KSP4KSV4KWLIOCkm+CliOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVSZWdpc3RlcmVkVGltZSIgbXNnaWQ9IjY3ODE2MjE5NjQzMjA2MzUxNzIiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjog4KSF4KSX4KS+4KSh4KS/IOCkrOCkouCkvuCkh+Ckj+CkleCliyDgpJvgpYjgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmY0NvbXBsZXRlIiBtc2dpZD0iMzExODg0ODIzMDk2Njg4NjU3NSI+IuCkteCkv+CktuClh+Ckt+CkpOCkviDgpJXgpYvgpKEg4KSq4KWB4KSw4KS+IOCkreCkr+Cli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZjRXJyb3IiIG1zZ2lkPSIzMzI3NTYwMTI2NTg4NTAwNzc3Ij4i4KSc4KSh4KS+4KSoIOCkuOCkruCkuOCljeCkr+CkviDgpLXgpL4g4KSF4KSu4KS+4KSo4KWN4KSvIOCkuOClgeCkteCkv+Ckp+CkviDgpJXgpYvgpKHgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JPayIgbXNnaWQ9IjExOTE5MTkzNzgwODM0NzIyMDQiPiLgpKDgpL/gpJUg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yIiBtc2dpZD0iNzk1NjM5MjUxMTE0NjY5ODUyMiI+IuCkj+CkieCkn+CkviDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSk4KWN4KSw4KWB4KSf4KS/IOCkpeCkv+Ckr+Cli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckxvb2t1cCIgbXNnaWQ9IjQ3MTE2ODc0NTYxMTE5NjMxNjMiPiJVUkwg4KSt4KWH4KSf4KS+4KSJ4KSoIOCkuOCkleClh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclVuc3VwcG9ydGVkQXV0aFNjaGVtZSIgbXNnaWQ9IjYyOTk5ODAyODA0NDIwNzY3OTkiPiLgpLjgpL7gpIfgpJ/gpJXgpYsg4KSG4KSn4KS/4KSV4KS+4KSw4KS/4KSV4KSk4KS+IOCkr+Cli+CknOCkqOCkviDgpLjgpK7gpLDgpY3gpKXgpL/gpKQg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yQXV0aCIgbXNnaWQ9IjE0MzUwNjU2Mjk0MzgwNDQ1MzQiPiLgpKrgpY3gpLDgpK7gpL7gpKPgpYDgpJXgpLDgpKMg4KSX4KSw4KWN4KSoIOCkuOCkleClh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclByb3h5QXV0aCIgbXNnaWQ9IjE3ODgyMDcwMTA1NTkwODEzMzEiPiLgpKrgpY3gpLDgpYvgpJXgpY3gpLjgpYAg4KS44KSw4KWN4KSt4KSw4KSV4KWLIOCkruCkvuCkp+CljeCkr+CkruCkpuCljeCkteCkvuCksOCkviDgpKrgpY3gpLDgpK7gpL7gpKPgpL/gpJXgpLDgpKMg4KSF4KS44KSr4KSyIOCkreCkj+CkleCliyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JDb25uZWN0IiBtc2dpZD0iODcxNDI3MzIzNjM2NDY0MDU0OSI+IuCkuOCksOCljeCkreCksOCkuOCkgeCklyDgpJzgpYvgpKHgpY3gpKgg4KS44KSV4KWH4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9ySU8iIG1zZ2lkPSIyMzQwNTU4MTk3NDg5MzAyMTg4Ij4i4KS44KSw4KWN4KSt4KSw4KS44KSB4KSXIOCkuOCkguCkmuCkvuCksCDgpJfgpLDgpY3gpKgg4KS44KSV4KWH4KSo4KWkIOCkq+Clh+CksOCkvyDgpKrgpJvgpL8g4KSV4KWL4KS44KS/4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclRpbWVvdXQiIG1zZ2lkPSI0NzQzNDAzNzAzNzYyODgzOTU0Ij4i4KS44KSw4KWN4KSt4KSwIOCkuOCkguCkl+CkleCliyDgpLjgpK7gpY3gpKrgpLDgpY3gpJUg4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+IOCkuOCkruCkryDgpLjgpJXgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JSZWRpcmVjdExvb3AiIG1zZ2lkPSI4Njc5NTk2MDkwMzkyNzc5NTE2Ij4i4KSq4KWD4KS34KWN4KSf4KSu4KS+IOCkp+Clh+CksOCliCDgpLjgpLDgpY3gpK3gpLDgpLngpLDgpYLgpKTgpL/gpLAg4KSq4KWB4KSo4KSDIOCkqOCkv+CksOCljeCkpuClh+CktuCkqOCkueCksOClgiDgpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JVbnN1cHBvcnRlZFNjaGVtZSIgbXNnaWQ9IjUwMTU3MzA4MTI5MDYxOTIyMDgiPiLgpKrgpY3gpLDgpYvgpJ/gpYvgpJXgpLIg4KS44KSu4KSw4KWN4KSl4KS/4KSkIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckZhaWxlZFNzbEhhbmRzaGFrZSIgbXNnaWQ9Ijk2NTQ5NjA2MDAwNjU4NjQxIj4i4KSP4KSJ4KSf4KS+IOCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpJzgpKHgpL7gpKgg4KS44KWN4KSl4KS+4KSq4KSo4KS+IOCkl+CksOCljeCkqCDgpLjgpJXgpYfgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JCYWRVcmwiIG1zZ2lkPSIzNjM2OTI5NzIyNzI4ODgxOTcyIj4i4KSq4KWD4KS34KWN4KSgIOCkluCli+CksuCljeCkqCDgpLjgpJXgpL/gpIHgpKbgpYjgpKgg4KSV4KS/4KSo4KSt4KSo4KWHIFVSTCDgpIXgpK7gpL7gpKjgpY3gpK8g4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yRmlsZSIgbXNnaWQ9IjIxNzA3ODg1MTUwNTI1NTg2NzYiPiLgpKvgpL7gpIfgpLIg4KSt4KWH4KSf4KS+4KSJ4KSoIOCkuOCkleClh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckZpbGVOb3RGb3VuZCIgbXNnaWQ9IjYyMDM4NTY2MTIwNDI2NTUwODQiPiLgpIXgpKjgpYHgpLDgpYvgpKcg4KSX4KSw4KS/4KSP4KSV4KWLIOCkq+CkvuCkh+CksiDgpK3gpYfgpJ/gpL7gpIngpKgg4KS44KSV4KWH4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVG9vTWFueVJlcXVlc3RzIiBtc2dpZD0iMTIzNTM5NjkyNzA4NzE4ODI1MyI+IuCkp+Clh+CksOCliCDgpKjgpYgg4KSF4KSo4KWB4KSw4KWL4KSn4KS54KSw4KWCIOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkvuCkruCkviDgpJvgpKjgpY3gpaQg4KSq4KSb4KS/IOCkq+Clh+CksOCkvyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODk2NzcxMDAyNTAzNjE2MzgyMiI+Ijx4bGlmZjpnIGlkPSJBQ0NPVU5UIj4lMSRzPC94bGlmZjpnPuCkleCliyDgpLLgpL7gpJfgpL8g4KS44KS+4KSH4KSoIOCkh+CkqCDgpKTgpY3gpLDgpYHgpJ/gpL8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250ZW50U2VydmljZVN5bmMiIG1zZ2lkPSI4MzUzNTIzMDYwMjY5MzM1NjY3Ij4i4KS44KS/4KSZ4KSVIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRTZXJ2aWNlU3luY05vdGlmaWNhdGlvblRpdGxlIiBtc2dpZD0iMzk3NzQzMzQ5MTkxOTAxNDU4Ij4i4KS44KS/4KSZ4KWN4KSVIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRTZXJ2aWNlVG9vTWFueURlbGV0ZXNOb3RpZmljYXRpb25EZXNjIiBtc2dpZD0iODEwMDk4MTQzNTA4MDY5NjQzMSI+IuCkheCkpOCkvyDgpKfgpYfgpLDgpYggPHhsaWZmOmcgaWQ9IkNPTlRFTlRfVFlQRSI+JXM8L3hsaWZmOmc+IOCkruClh+Ckn+CljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxvd19tZW1vcnkiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY0OTQwMTkyMzQxMDIxNTQ4OTYiPiLgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkluCkvuCksuClgCDgpJvgpYjgpKghIOCkoOCkvuCkieCkgSDgpJbgpL7gpLLgpYAg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpJXgpYfgpLngpYAg4KSr4KS+4KSH4KSy4KS54KSw4KWCIOCkruClh+Ckn+CkvuCkieCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imxvd19tZW1vcnkiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDc1OTk5Mjg2NjgwMDAwNTQxIj4i4KSr4KWL4KSoIOCkreCko+CljeCkoeCkvuCksOCkoyDgpK3gpLDgpL/gpI/gpJXgpYsg4KSbISDgpKDgpL7gpIngpIEg4KSW4KS+4KSy4KWAIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSV4KWH4KS54KWAIOCkq+CkvuCkh+CksuCkueCksOClgiDgpK7gpYfgpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZSIgbXNnaWQ9IjY1NDU2OTYwMDc2MzE0MDQyOTIiPiLgpK7gpLLgpL7gpIgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3dlcl9kaWFsb2ciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg1NDUzNTE0MjA4NjUyMDI4NTMiPiLgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KS14KS/4KSV4KSy4KWN4KSq4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfZGlhbG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTMxOTkxOTA3NTQ2Mzk4ODYzOCI+IuCkq+Cli+CkqCDgpLXgpL/gpJXgpLLgpY3gpKrgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaWxlbnRfbW9kZSIgbXNnaWQ9IjcxNjc3MDMzODk4MDI2MTg2NjMiPiLgpK7gpYzgpKgg4KSu4KWL4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHVybl9vbl9yYWRpbyIgbXNnaWQ9IjM5MTI3OTMwOTIzMzk5NjIzNzEiPiLgpLXgpL7gpK/gpLDgpLLgpYfgpLgg4KSF4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InR1cm5fb2ZmX3JhZGlvIiBtc2dpZD0iODE5ODc4NDk0OTk4NzA2MjM0NiI+IuCkpOCkvuCksOCksOCkueCkv+CkpCDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2xvY2siIG1zZ2lkPSI3OTkwOTQ2NTU0OTYwOTgxNTMiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSy4KSVIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvd2VyX29mZiIgbXNnaWQ9IjQyNjY2MTQxMDc0MTI4NjUwNDgiPiLgpKrgpL7gpLXgpLAg4KSs4KSo4KWN4KSmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfc2lsZW50IiBtc2dpZD0iMzE5Mjk4MTYzMDE4NDczMDc4Ij4i4KSY4KSo4KWN4KSf4KWAIOCkrOCkqOCljeCkpiDgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaWxlbnRfbW9kZV92aWJyYXRlIiBtc2dpZD0iNzA3MjA0MzM4ODU4MTU1MTM5NSI+IuCkmOCkqOCljeCkn+ClgCDgpJXgpK7gpY3gpKrgpKgg4KSX4KSw4KWN4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfcmluZyIgbXNnaWQ9Ijg1OTIyNDE4MTYxOTQwNzQzNTMiPiLgpJjgpKjgpY3gpJ/gpL8g4KSa4KS+4KSy4KWBIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX3Byb2dyZXNzIiBtc2dpZD0iMjI4MTA3OTI1NzMyOTk4MTIwMyI+IuCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKbgpYguLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9jb25maXJtIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMzg1NzQ1MTc5NTU1NzMxNDcwIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpKzgpKjgpY3gpKYg4KS54KWB4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NDk3OTIxNzUyNDI4MjEzNTMiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSr4KWL4KSoIOCkrOCkqOCljeCkpiDgpLngpYHgpKjgpYcg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2h1dGRvd25fY29uZmlybV9xdWVzdGlvbiIgbXNnaWQ9IjI5MDY1NDQ3Njg4ODExMzYxODMiPiLgpJXgpYcg4KSk4KSq4KS+4KSI4KSCIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKgg4KSa4KS+4KS54KSo4KWB4KS54KWB4KSo4KWN4KSbPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYm9vdF9zYWZlbW9kZV90aXRsZSIgbXNnaWQ9IjcwNTQ1MDk5MTQ1MDAxNDAzNjEiPiLgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KSu4KWL4KSh4KSu4KS+IOCkquClgeCkqOCkg+CkrOClgeCknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWJvb3Rfc2FmZW1vZGVfY29uZmlybSIgbXNnaWQ9IjU1MjkzOTQ0NTAyNzg0NjY4Ij4i4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkruCli+CkoeCkruCkviDgpKTgpKrgpL7gpIjgpIEg4KSq4KWB4KSo4KSD4KSs4KWB4KSfIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbPyDgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KS44KWN4KSl4KS+4KSq4KSo4KS+IOCkl+CksOClh+CkleCkviDgpLjgpKzgpYgg4KSk4KWH4KS44KWN4KSw4KWLIOCkquCkleCljeCkt+CkleCkviDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSF4KS44KSV4KWN4KS34KSuIOCkl+CksOCkvuCkieCkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWNlbnRfdGFza3NfdGl0bGUiIG1zZ2lkPSIzNjkxNzY0NjIzNjM4MTI3ODg4Ij4i4KSo4KSv4KS+4KSBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fcmVjZW50X3Rhc2tzIiBtc2dpZD0iODc5NDkwNjY1ODczMjE5MzQ3MyI+IuCkleClgeCkqOCliCDgpKjgpK/gpL7gpIEg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIOCkm+CliOCkqOCkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MDg0NzcxNDAwODgwNTM2NjUiPiLgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KS14KS/4KSV4KSy4KWN4KSq4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNDA2NDE2ODMxNTQxNjE1MjU4Ij4i4KSr4KWL4KSoIOCkteCkv+CkleCksuCljeCkquCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fbG9jayIgbXNnaWQ9IjI4NDQ5NDUxOTE3OTIxMTk3MTIiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSs4KSo4KWN4KSmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9wb3dlcl9vZmYiIG1zZ2lkPSI0NDcxODc5NDQwODM5ODc5NzIyIj4i4KS24KSV4KWN4KSk4KS/IOCkrOCkqOCljeCkpiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fYnVnX3JlcG9ydCIgbXNnaWQ9Ijc5MzQwMTA1Nzg5MjIzMDQ3OTkiPiLgpKzgpJcg4KSw4KS/4KSq4KWL4KSw4KWN4KSfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X3RpdGxlIiBtc2dpZD0iMjY2NzQ5NDgwMzc0MjU0ODUzMyI+IuCkrOCklyDgpLDgpL/gpKrgpYvgpLDgpY3gpJ8g4KSy4KS/4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X21lc3NhZ2UiIG1zZ2lkPSIzOTg0NDcwNDg3NTAzNTA0NTYiPiLgpI/gpIngpJ/gpL4g4KSH4KSu4KWH4KSyIOCkuOCkqOCljeCkpuClh+CktuCkleCliyDgpLDgpYLgpKrgpK7gpL4g4KSq4KSg4KS+4KSJ4KSo4KSy4KS+4KSIIOCkr+CkuOCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KS54KS+4KSy4KWI4KSV4KWLIOCkieCkquCkleCksOCko+CkleCliyDgpIXgpLXgpLjgpY3gpKXgpL7gpJXgpYsg4KSs4KS+4KSw4KWH4KSu4KS+IOCkuOClguCkmuCkqOCkviDgpJzgpK7gpY3gpK7gpL4g4KSX4KSw4KWN4KSo4KWHIOCkm+ClpCDgpKzgpJcg4KSw4KS/4KSq4KWL4KSw4KWN4KSfIOCkuOClgeCksOClgSDgpJfgpLDgpYfgpKbgpYfgpJbgpL8g4KSq4KSg4KS+4KSJ4KSoIOCkpOCkr+CkvuCksCDgpKjgpK3gpI/gpLjgpK7gpY3gpK4g4KSv4KS44KSy4KWHIOCkleClh+CkueClgCDgpLjgpK7gpK8g4KSy4KS/4KSo4KWN4KSbOyDgpJXgpYPgpKrgpK/gpL4g4KSn4KWI4KSw4KWN4KSvIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fdG9nZ2xlX3NpbGVudF9tb2RlIiBtc2dpZD0iODIxOTUyNTM0NDI0NjgxMDkyNSI+IuCkruCljOCkqCDgpK7gpYvgpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3NpbGVudF9tb2RlX29uX3N0YXR1cyIgbXNnaWQ9IjMyODk4NDE5MzcwMDM3NTg4MDYiPiLgpIbgpLXgpL7gpJwg4KSs4KSo4KWN4KSmIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fc2lsZW50X21vZGVfb2ZmX3N0YXR1cyIgbXNnaWQ9IjE1MDYwNDY1NzkxNzcwNjY0MTkiPiLgpKfgpY3gpLXgpKjgpL8g4KSW4KWB4KSy4KWN4KSy4KS+IOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zX3RvZ2dsZV9haXJwbGFuZV9tb2RlIiBtc2dpZD0iNTg4NDMzMDMwNjkyNjMwNzQ1NiI+IuCkueCkteCkvuCkh+CknOCkueCkvuCknCDgpK7gpYvgpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uc19haXJwbGFuZV9tb2RlX29uX3N0YXR1cyIgbXNnaWQ9IjI3MTk1NTc5ODI2MDg5MTk3NTAiPiLgpLngpLXgpL7gpIfgpJzgpLngpL7gpJwg4KSu4KWL4KShIOCkluClgeCksuCkviDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uc19haXJwbGFuZV9tb2RlX29mZl9zdGF0dXMiIG1zZ2lkPSI1MDc1MDcwNDQyODU0NDkwMjk2Ij4i4KS54KS14KS+4KSH4KSc4KS54KS+4KScIOCkruCli+CkoSDgpKzgpKjgpY3gpKYg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5mb19vdmVyZmxvdyIgbXNnaWQ9IjUzMDE5ODE3NDE3MDUzNTQ5OTMiPiLgpa/gpa/gpa8rIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2FmZU1vZGUiIG1zZ2lkPSIyNzg4MjI4MDYxNTQ3OTMwMjQ2Ij4i4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkruCli+CkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfc3lzdGVtX2xhYmVsIiBtc2dpZD0iNjU3NzM3NTMzNTcyODU1MTMzNiI+IuCkj+CkqOCljeCkoeCljeCksOCli+Ckh+CkoSDgpKrgpY3gpLDgpKPgpL7gpLLgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfY29zdE1vbmV5IiBtc2dpZD0iNTQyOTgwODIxNzg2MTQ2MDQwMSI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpKTgpL/gpLDgpY3gpKjgpYEg4KSq4KSw4KWN4KSo4KWHIOCkuOClh+CkteCkvuCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfY29zdE1vbmV5IiBtc2dpZD0iMzI5MzMwMTkwMzQwOTg2OTQ5NSI+IuCkpOCkquCkvuCkiOCkgeCksuCkvuCkiCDgpK7gpLngpIHgpJfgpYsg4KSq4KSw4KWN4KSoIOCkuOCkleCljeCkqOClhyDgpJXgpL7gpK7gpLngpLDgpYIg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX21lc3NhZ2VzIiBtc2dpZD0iNzUyMTI0OTE0ODQ0NTQ1NjY2MiI+IuCkpOCkquCkvuCkiOCkguCkleCkviDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX21lc3NhZ2VzIiBtc2dpZD0iNzgyMTk5OTA3MTAwMzY5OTIzNiI+IuCkpOCkquCkvuCkiOCkgeCkleCkviBTTVMsIOCkh+CkruClh+CksiDgpLAg4KSF4KSo4KWN4KSvIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpKrgpKLgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KSwIOCksuClh+CkluCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9wZXJzb25hbEluZm8iIG1zZ2lkPSIzNTE5MTYzMTQxMDcwNTMzNDc0Ij4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkqOCkv+CknOClgCDgpLjgpYLgpJrgpKjgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3BlcnNvbmFsSW5mbyIgbXNnaWQ9Ijg0MjY0NTMxMjk3ODg4NjEzMzgiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KS44KSu4KWN4KSq4KSw4KWN4KSVIOCkleCkvuCksOCljeCkoeCkruCkviDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSt4KSP4KSV4KS+IOCkpOCkquCkvuCkiOCkgeCkleCliyDgpKzgpL7gpLDgpYfgpJXgpYsg4KSc4KS+4KSo4KSV4KS+4KSw4KWA4KSu4KS+IOCkuOCkv+Ckp+CkviDgpKrgpLngpYHgpIHgpJog4KSq4KWB4KSw4KWN4oCN4KSv4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3NvY2lhbEluZm8iIG1zZ2lkPSI1Nzk5MDk2NjIzNDEyMDQzNzkxIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkuOCkvuCkruCkvuCknOCkv+CklSDgpLjgpYLgpJrgpKjgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3NvY2lhbEluZm8iIG1zZ2lkPSI3MTI5ODQyNDU3NjExNjQzNDkzIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkuOCkruCljeCkquCksOCljeCkleCkueCksOClgiDgpLAg4KS44KS+4KSu4KS+4KSc4KS/4KSVIOCknOCkoeCkvuCkqOCkueCksOClguCkleCliyDgpKzgpL7gpLDgpYfgpJXgpYsg4KSc4KS+4KSo4KSV4KS+4KSw4KWA4KSu4KS+IOCkuOCkv+Ckp+CkviDgpKrgpLngpYHgpIHgpJog4KSq4KWB4KSw4KWN4oCN4KSv4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2xvY2F0aW9uIiBtc2dpZD0iNjM1MTQ5NzQyNDM2NjkyMDQ5Ij4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkuOCljeCkpeCkvuCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbG9jYXRpb24iIG1zZ2lkPSI1NzA0Njc5NzYzMTI0MTcwMTAwIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkreCljOCkpOCkv+CklSDgpLjgpY3gpKXgpL7gpKgg4KSo4KS/4KSw4KWA4KSV4KWN4KS34KSjIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9uZXR3b3JrIiBtc2dpZD0iNTgwODk4MzM3NzcyNzEwOTgzMSI+IuCkqOClh+Ckn+CkteCksOCljeCklSDgpLjgpILgpJrgpL7gpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX25ldHdvcmsiIG1zZ2lkPSI0NDc4Mjk5NDEzMjQxODYxOTg3Ij4i4KS14KS/4KSt4KS/4KSo4KWN4KSoIOCkqOClh+Ckn+CkteCksOCljeCklSDgpLjgpYHgpLXgpL/gpKfgpL7gpLngpLDgpYLgpK7gpL4g4KSq4KS54KWB4KSB4KSaIOCksOCkvuCkluCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9ibHVldG9vdGhOZXR3b3JrIiBtc2dpZD0iMTU4NTQwMzU0NDE2MjEyODEwOSI+IuCkrOCljeCksuClgeCkn+ClgeCkpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYmx1ZXRvb3RoTmV0d29yayIgbXNnaWQ9IjU2MjUyODg1NzcxNjQyODIzOTEiPiLgpKzgpY3gpLLgpYHgpJ/gpYHgpKXgpJXgpYsg4KSu4KS+4KSn4KWN4KSv4KSu4KSm4KWN4KS14KS+4KSw4KS+IOCkieCkquCkleCksOCko+CkueCksOClgiDgpLAg4KSo4KWH4KSf4KS14KSw4KWN4KSV4KS54KSw4KWC4KSu4KS+4KSl4KS/IOCkquCkueClgeCkgeCkmiDgpLDgpL7gpJbgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjgzMjkyNjE2NzAxNTE4NzEyMzUiPiLgpIXgpKHgpL/gpK/gpYsg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hdWRpb1NldHRpbmdzIiBtc2dpZD0iMjY0MTUxNTQwMzM0NzU2ODEzMCI+IuCkheCkoeCkv+Ckr+CliyDgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIg4KSs4KSm4KSy4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2FmZmVjdHNCYXR0ZXJ5IiBtc2dpZD0iNjIwOTI0NjY1MzQyNDc5ODAzMyI+IuCkrOCljeCkr+Ckn+CljeCksOCkv+CksuCkvuCkiCDgpKrgpY3gpLDgpK3gpL7gpLUg4KSq4KS+4KSw4KWN4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hZmZlY3RzQmF0dGVyeSIgbXNnaWQ9IjY0NDEyNzUzMjA2Mzg5MTY5NDciPiLgpJvgpL/gpJ/gpY3gpJ/gpYgg4KSs4KWN4KSv4KS+4KSf4KWN4KSw4KS/IOCkuOCkleCkvuCkieCkqCDgpLjgpJXgpY3gpKjgpYcg4KSk4KWAIOCkteCkv+CktuClh+Ckt+CkpOCkvuCkueCksOClgiDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2NhbGVuZGFyIiBtc2dpZD0iNTg2MzUwODQzNzc4MzY4MzkwMiI+IuCkquCkvuCkpOCljeCksOCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfY2FsZW5kYXIiIG1zZ2lkPSI1Nzc3NTM0MzE2OTgyMTg0NDE2Ij4i4KSq4KS+4KSk4KWN4KSw4KWLIOCkpOCkpeCkviDgpJjgpJ/gpKjgpL7gpLngpLDgpYLgpK7gpL4g4KSq4KWN4KSw4KSk4KWN4KSv4KSV4KWN4KS3IOCkquCkueClgeCkgeCkmiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaWN0aW9uYXJ5IiBtc2dpZD0iNDE0ODU5NzEyODg0MzY0MTM3OSI+IuCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpLbgpKzgpY3gpKbgpJXgpYvgpLYg4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kaWN0aW9uYXJ5IiBtc2dpZD0iNzkyMTE2NjM1NTk2NDc2NDQ5MCI+IuCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpLbgpKzgpY3gpKbgpJXgpYvgpLbgpK7gpL4g4KS24KSs4KWN4KSm4KS54KSw4KWCIOCkquCkouCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl93cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSI4MDkwMjM3NzAyNDMyNTc2Nzg4Ij4i4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCktuCkrOCljeCkpuCkleCli+CktiDgpLLgpYfgpJbgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjI3MTE1NjE5OTQ0OTczNjE2NDYiPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KS24KSs4KWN4KSm4KSV4KWL4KS24KSu4KS+IOCktuCkrOCljeCkpuCkueCksOClgiDgpKXgpKrgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYm9va21hcmtzIiBtc2dpZD0iMTk0OTUxOTY3MzEwMzk2ODIyOSI+IuCkrOClgeCkleCkruCkvuCksOCljeCkleCkueCksOClgiDgpLAg4KSH4KSk4KS/4KS54KS+4KS4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19ib29rbWFya3MiIG1zZ2lkPSI0MTY5NzcxNjA2MjU3OTYzMDI4Ij4i4KSs4KWB4KSV4KSu4KS+4KSw4KWN4KSV4KS54KSw4KWCIOCksCDgpKzgpY3gpLDgpL7gpIngpJzgpLAg4KSH4KSk4KS/4KS54KS+4KS44KSu4KS+IOCkuOCkv+Ckp+CkviDgpKrgpLngpYHgpIHgpJrgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGV2aWNlQWxhcm1zIiBtc2dpZD0iNjExNzcwNDYyOTcyODgyNDEwMSI+IuCkheCksuCkvuCksOCljeCkriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfZGV2aWNlQWxhcm1zIiBtc2dpZD0iNDc2OTM1NjM2MjI1MTY0MTE3NSI+IuCkheCksuCkvuCksOCljeCkriDgpJjgpKHgpYAg4KS44KWH4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl92b2ljZW1haWwiIG1zZ2lkPSI0MTYyMjM3MTQ1MDI3NTkyMTMzIj4i4KSt4KWN4KS14KS+4KSH4KS4IOCkruClh+CksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfdm9pY2VtYWlsIiBtc2dpZD0iMjQ5ODQwMzk2OTg2Mjk1MTM5MyI+IuCkreCljeCkteCkvuCkh+CkuOCkruClh+CksuCkruCkviDgpLjgpL/gpKfgpL4g4KSq4KS54KWB4KSB4KSa4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX21pY3JvcGhvbmUiIG1zZ2lkPSIxNzE1Mzk5MDAyNTAwNDM0NjQiPiLgpK7gpL7gpIfgpJXgpY3gpLDgpYvgpKvgpYvgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX21pY3JvcGhvbmUiIG1zZ2lkPSI3MTA2NjE4Mjg2OTA1NzM4NDA4Ij4i4KSu4KS+W+CkleCljeCksOCli+Ckq+Cli+CkqOCkrOCkvuCknyDgpLDgpYfgpJXgpLDgpY3gpKEg4KSF4KSh4KS/4KSv4KWL4KSu4KS+IOCkuOCkv+Ckp+CkviDgpKrgpLngpYHgpIHgpJog4KSq4KWB4KSw4KWN4oCN4KSv4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2NhbWVyYSIgbXNnaWQ9IjQ4MjAzNzI0OTU4OTQ1ODY2MTUiPiLgpJXgpY3gpK/gpL7gpK7gpYfgpLDgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2NhbWVyYSIgbXNnaWQ9IjI5MzM2NjczNzIyODk1Njc3MTQiPiLgpKTgpLjgpY3gpKzgpL/gpLAg4KS14KS+IOCkreCkv+CkoeCkv+Ckr+CliyDgpJXgpY3gpK/gpL7gpKrgpY3gpJrgpLDgpJXgpYsg4KSy4KS+4KSX4KS/IOCkleCljeCkr+CkvuCkruClh+CksOCkvuCkruCkviDgpLjgpL/gpKfgpL4g4KSq4KS54KWB4KSB4KSa4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3NjcmVlbmxvY2siIG1zZ2lkPSI4Mjc1NTAwMTczMzMwNzE4MTY4Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCksuCklSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3NjcmVlbmxvY2siIG1zZ2lkPSI3MDY3NDk3MTI4OTI1NDk5NDAxIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkieCkquCkleCksOCko+CkruCkviDgpLLgpJUg4KS44KWN4KSV4KWN4KSw4KS/4KSo4KSV4KWLIOCkteCljeCkr+CkteCkueCkvuCksOCksuCkvuCkiCDgpKrgpY3gpLDgpK3gpL7gpLXgpL/gpKQg4KSX4KSw4KWN4KSo4KWHIOCkleCljeCkt+CkruCkpOCkvuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hcHBJbmZvIiBtc2dpZD0iODAyODc4OTc2MjYzNDE0NzcyNSI+IuCkpOCkquCkvuCkiOCkgeCkleCkviDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KS44KWC4KSa4KSo4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hcHBJbmZvIiBtc2dpZD0iMzk1MDM3ODUzODA0OTYyNTkwNyI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpIngpKrgpJXgpLDgpKPgpK7gpL4g4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpLXgpY3gpK/gpLXgpLngpL7gpLDgpK7gpL4g4KSq4KWN4KSw4KSt4KS+4KS1IOCkquCkvuCksOCljeCkqOClhyDgpJXgpY3gpLfgpK7gpKTgpL7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfd2FsbHBhcGVyIiBtc2dpZD0iMzg1MDI4MDE1ODA0MTE3NTk5OCI+IuCkteCkvuCksuCkquClh+CkquCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfd2FsbHBhcGVyIiBtc2dpZD0iNTYzMDQxNzg1NDc1MDU0MDE1NCI+IuCkieCkquCkleCksOCkoyDgpLXgpL7gpLLgpKrgpYfgpKrgpLAg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIOCkrOCkpuCksuCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zeXN0ZW1DbG9jayIgbXNnaWQ9IjQwNjUzNTc1OTIzNjYxMjk5MiI+IuCkmOCkoeClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3lzdGVtQ2xvY2siIG1zZ2lkPSIzOTQ0MzU5ODMzNjI0MDk0OTkyIj4i4KSJ4KSq4KSV4KSw4KSjIOCkuOCkruCkryDgpLXgpL4g4KS44KSu4KSvIOCkleCljeCkt+Clh+CkpOCljeCksCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N0YXR1c0JhciIgbXNnaWQ9IjIwOTU4NjI1NjgxMTM5NDUzOTgiPiLgpLjgpY3gpKXgpL/gpKTgpL8g4KSq4KSf4KWN4KSf4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdGF0dXNCYXIiIG1zZ2lkPSI2MjQyNTkzNDMyMjI2ODA3MTcxIj4i4KSJ4KSq4KSV4KSw4KSjIOCkuOCljeCkpeCkv+CkpOCkvyDgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zeW5jU2V0dGluZ3MiIG1zZ2lkPSIzMzQxOTkwOTg2MTQ3ODI2NTQxIj4i4KS44KS/4KSZ4KWN4KSVIOCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3luY1NldHRpbmdzIiBtc2dpZD0iNzYwMzE5NTI2NTEyOTAzMTc5NyI+IuCkuOCkv+CkmeCljeCklSDgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYLgpK7gpL4g4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hY2NvdW50cyIgbXNnaWQ9IjMzNTk2NDYyOTExMjUzMjU1MTkiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpL4g4KSW4KS+4KSk4KS+4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hY2NvdW50cyIgbXNnaWQ9IjQ5NDg3MzI2NDE4MjcwOTEzMTIiPiLgpIngpKrgpLLgpKzgpY3gpKcg4KSW4KS+4KSk4KS+4KS54KSw4KWCIOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfaGFyZHdhcmVDb250cm9scyIgbXNnaWQ9Ijc5OTgyMTQ5Njg3OTE1OTkzMjYiPiLgpLngpL7gpLDgpY3gpKHgpLXgpYfgpK/gpLAg4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSj4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19oYXJkd2FyZUNvbnRyb2xzIiBtc2dpZD0iNDM1NzA1Nzg2MTIyNTQ2MjcwMiI+IuCkueCljeCkr+CkvuCkqOCljeCkoeCkuOClh+Ckn+CkleCliyDgpLngpL7gpLDgpY3gpKHgpLXgpYfgpK/gpLDgpK7gpL4g4KSq4KWN4KSw4KSk4KWN4KSv4KSV4KWN4KS3IOCkquCkueClgeCkgeCkmuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9waG9uZUNhbGxzIiBtc2dpZD0iOTA2NzE3Mzk4ODMyNTg2NTkyMyI+IuCkq+Cli+CkqCDgpJXgpLLgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3Bob25lQ2FsbHMiIG1zZ2lkPSI3NDg5NzAxNjIwNDQ2MTgzNzcwIj4i4KSF4KSo4KWB4KSX4KSu4KSoLCDgpLDgpYfgpJXgpLDgpY3gpKEg4KSwIOCkq+Cli+CkqCDgpJXgpLLgpLngpLDgpYLgpJXgpYsg4KSq4KWN4KSw4KS44KWL4KSn4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zeXN0ZW1Ub29scyIgbXNnaWQ9IjQ2NTIxOTE2NDQwODI3MTQwNDgiPiLgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KSU4KSc4KS+4KSw4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeXN0ZW1Ub29scyIgbXNnaWQ9IjgxNjIxMDI2MDIxOTA3MzQzMDUiPiLgpKjgpL/gpK7gpY3gpKgt4KS44KWN4KSk4KSwIOCkquCkueClgeCkgeCkmiDgpLAg4KSq4KWN4KSw4KSj4KS+4KSy4KWA4KSV4KWLIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kZXZlbG9wbWVudFRvb2xzIiBtc2dpZD0iMzQ0NjE2NDU4NDcxMDU5NjUxMyI+IuCkteCkv+CkleCkuOCkv+CkpCDgpJ/gpYHgpLLgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RldmVsb3BtZW50VG9vbHMiIG1zZ2lkPSI3MDU4ODI4MDMyMzU4MTQyMDE4Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkteCkv+CkleCkvuCkuOCkleCksOCljeCkpOCkvuCkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSu4KS+4KSk4KWN4KSwIOCkuOClgeCkteCkv+Ckp+CkvuCkueCksOClguCkleCliyDgpIbgpLXgpLbgpY3gpK/gpJXgpKTgpL7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGlzcGxheSIgbXNnaWQ9IjQyNzk5MDk2NzYwMzY0MDI2MzYiPiLgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIFVJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kaXNwbGF5IiBtc2dpZD0iNjA1MTAwMjAzMTkzMzAxMzcxNCI+IuCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsgVUkg4KSy4KS+4KSIIOCkheCkuOCksCDgpKrgpL7gpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3RvcmFnZSIgbXNnaWQ9IjE5NzExMTg3NzA1NDYzMzY5NjYiPiLgpK3gpKPgpY3gpKHgpL7gpLDgpKMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N0b3JhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzQ0MjMxODUwMjQ0Njg3NDk5OSI+IlVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKPgpK7gpL7gpKXgpL8g4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjkyMDMzMDIyMTQ5MTUzNTU3NzQiPiJTRCDgpJXgpL7gpLDgpY3gpKHgpK7gpL7gpKXgpL8g4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hY2Nlc3NpYmlsaXR5RmVhdHVyZXMiIG1zZ2lkPSI3OTE5MDI1NjAyMjgzNTkzOTA3Ij4i4KSq4KS54KWB4KSB4KSa4KWA4KSV4KSw4KSjIOCkteCkv+CktuClh+Ckt+CkpOCkvuCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNDIwNTE5Njg4MTY3ODE0NDMzNSI+IuCkuOCkueCkr+Cli+Ckl+ClgCDgpKrgpY3gpLDgpLXgpL/gpKfgpL8g4KSt4KSP4KSV4KWLIOCkteCkv+CktuClh+Ckt+CkpOCkvuCkueCksOClguCksuClhyDgpIXgpKjgpYHgpLDgpYvgpKcg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmV0cmlldmVXaW5kb3dDb250ZW50IiBtc2dpZD0iMzkwMTcxNzkzNjkzMDE3MDMyMCI+IuCkteCkv+CkqOCljeCkoeCliyDgpLjgpL7gpK7gpJfgpY3gpLDgpYDgpJXgpYsg4KSq4KWB4KSo4KSD4KSs4KS54KS+4KSy4KWAIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXRyaWV2ZVdpbmRvd0NvbnRlbnQiIG1zZ2lkPSIzNzcyMjI1MDA4NjA1MzEwNjcyIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkheCkqOCljeCkpOCksOCkleCljeCksOCkv+Ckr+CkviDgpK3gpIfgpLDgpLngpYfgpJXgpYsg4KS14KS/4KSo4KWN4KSh4KWL4KSV4KWLIOCkuOCkvuCkruCkl+CljeCksOClgOCkleCliyDgpKjgpL/gpLDgpYDgpJXgpY3gpLfgpKMg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXF1ZXN0VG91Y2hFeHBsb3JhdGlvbiIgbXNnaWQ9IjMxMDg3MjMzNjQ2NzY2NjczMjAiPiLgpJvgpYvgpI/gpLAg4KSX4KSw4KS/4KSo4KWHIOCkluCli+CknOCksuCkvuCkiCDgpLjgpYHgpJrgpL7gpLDgpYEg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV9kZXNjX2NhblJlcXVlc3RUb3VjaEV4cGxvcmF0aW9uIiBtc2dpZD0iNTgwMDU1MjUxNjc3OTI0OTM1NiI+IuCkm+Cli+Ckh+Ckj+CkleCkviDgpIbgpIfgpJ/gpK7gpLngpLDgpYIg4KSa4KSw4KWN4KSV4KWLIOCkuOCljeCkteCksOCkruCkviDgpKzgpYvgpLLgpL/gpKjgpYcg4KSbIOCksCDgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSH4KS24KS+4KSw4KS+4KS54KSw4KWC4KSV4KWLIOCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpIXgpKjgpY3gpLXgpYfgpLfgpKMg4KSX4KSw4KWN4KSoIOCkuOCkleCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdEVuaGFuY2VkV2ViQWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjE3Mzk4ODE3NjY1MjI1OTQwNzMiPiLgpIngpJrgpY3gpJog4KS14KWH4KSsIOCkquCkueClgeCkgeCkmuCksuCkvuCkiCDgpLjgpYHgpJrgpL7gpLDgpYEg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV9kZXNjX2NhblJlcXVlc3RFbmhhbmNlZFdlYkFjY2Vzc2liaWxpdHkiIG1zZ2lkPSI3ODgxMDYzOTYxNTA3NTExNzY1Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCkuOCkvuCkruCkl+CljeCksOClgOCksuCkvuCkiCDgpKXgpKog4KSq4KS54KWB4KSB4KSa4KSv4KWL4KSX4KWN4KSvIOCkrOCkqOCkvuCkieCkqCDgpLLgpL/gpKrgpL/gpLngpLDgpYIg4KS44KWN4KSl4KS+4KSq4KSo4KS+IOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKjgpYEg4KS54KWB4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV90aXRsZV9jYW5SZXF1ZXN0RmlsdGVyS2V5RXZlbnRzIiBtc2dpZD0iMjEwMzQ0MDM5MTkwMjQxMjE3NCI+IuCkhuCkq+ClgeCksuClhyDgpJ/gpL7gpIfgpKog4KSX4KSw4KWH4KSV4KWLIOCkquCkvuCkoOCkleCliyDgpKjgpL/gpLDgpYDgpJXgpY3gpLfgpKMg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV9kZXNjX2NhblJlcXVlc3RGaWx0ZXJLZXlFdmVudHMiIG1zZ2lkPSI3NDYzMTM1MjkyMjA0MTUyODE4Ij4i4KS14KWN4KSv4KSV4KWN4KSk4KS/4KSX4KSkIOCkoeClh+Ckn+CkviDgpJzgpLjgpY3gpKTgpYgg4KSV4KWN4KSw4KWH4KSh4KS/4KSfIOCkleCkvuCksOCljeCkoSDgpKjgpK7gpY3gpKzgpLDgpLngpLDgpYIg4KSwIOCkquCkvuCkuOCkteCksOCljeCkoeCkueCksOClgiDgpLjgpK7gpL7gpLXgpYfgpLYg4KSX4KSw4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdGF0dXNCYXIiIG1zZ2lkPSI3NDE3MTkyNjI5NjAxODkwNzkxIj4i4KS44KWN4KSl4KS/4KSk4KS/IOCkquCkn+CljeCkn+Ckv+CksuCkvuCkiCDgpIXgpJXgpY3gpLfgpK4g4KS14KS+IOCkuOCkguCktuCli+Ckp+Ckv+CkpCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdGF0dXNCYXIiIG1zZ2lkPSI4NDM0NjY5NTQ5NTA0MjkwOTc1Ij4i4KS44KWN4KSl4KS/4KSk4KS/IOCkquCkn+CljeCkn+CkvyDgpIXgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KWN4KSoIOCkteCkviDgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KSG4KSH4KSV4KSo4KS54KSw4KWCIOCkpeCkquCljeCkqCDgpLAg4KS54KSf4KS+4KSJ4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdGF0dXNCYXJTZXJ2aWNlIiBtc2dpZD0iNzI0NzI4MTkxMTM4NzkzMTQ4NSI+IuCkuOCljeCkpeCkv+CkpOCkvyDgpKrgpJ/gpY3gpJ/gpL8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdGF0dXNCYXJTZXJ2aWNlIiBtc2dpZD0iNzE2MTEzNjYwNzk1OTc2MDYwIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkuOCljeCkpeCkv+CkpOCkvyDgpKrgpJ/gpY3gpJ/gpL8g4KS54KWB4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2V4cGFuZFN0YXR1c0JhciIgbXNnaWQ9IjExNDgxOTg3ODU5Mzc0ODkyNjQiPiLgpLjgpY3gpKXgpL/gpKTgpL8g4KSq4KSf4KWN4KSf4KS/4KSy4KS+4KSIIOCkteCkv+CkuOCljeCkpOClg+CkpC/gpLjgpJngpY3gpJXgpYHgpJrgpL/gpKQg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZXhwYW5kU3RhdHVzQmFyIiBtc2dpZD0iNjkxNzU0OTQzNzEyOTQwMTEzMiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpY3gpKXgpL/gpKTgpL8g4KSq4KSf4KWN4KSf4KS/IOCkteCkv+CkuOCljeCkpOCkvuCksCDgpLXgpL4g4KS44KSC4KSV4KWB4KSa4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wcm9jZXNzT3V0Z29pbmdDYWxscyIgbXNnaWQ9IjM5MDYwMDc4MzExOTI5OTA5NDYiPiLgpKzgpLngpL/gpLDgpY3gpJfgpK7gpKgg4KSV4KSy4KS54KSw4KWC4KSy4KS+4KSIIOCkheCksOCljeCkleCliyDgpK7gpL7gpLDgpY3gpJcg4KSm4KS/4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcHJvY2Vzc091dGdvaW5nQ2FsbHMiIG1zZ2lkPSI1MzMxMzE4OTMxOTM3NDAyMDQwIj4i4KSs4KS54KS/4KSw4KWN4KSX4KSu4KSoIOCkleCksuCkueCksOClguCkleCliyDgpKrgpY3gpLDgpLbgpYvgpKfgpKgg4KSX4KSw4KWN4KSoIOCksCDgpKHgpL7gpK/gpLIg4KSX4KSw4KS/4KSo4KWHIOCkqOCkruCljeCkrOCksCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkICDgpK/gpYsg4KSF4KSo4KWB4KSu4KSk4KS/4KSy4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpK7gpYvgpKjgpL/gpJ/gpLAg4KSX4KSw4KWN4KSoLCDgpIXgpKjgpY3gpK/gpKTgpY3gpLAg4KSq4KSg4KS+4KSJ4KSoIOCkteCkviDgpKzgpL7gpLngpL/gpLAg4KSc4KS+4KSo4KWHIOCkleCksuCkueCksOClguCksuCkvuCkiCDgpLDgpYvgpJXgpY3gpKgg4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlU21zIiBtc2dpZD0iODY3MzQ3MTc2ODk0Nzg5NTA4MiI+IuCkquCkvuCkoCDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIgKFNNUykg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVTbXMiIG1zZ2lkPSI2NDI0Mzg3NzU0MjI4NzY2OTM5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIFNNUyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqCDgpLAg4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+IOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCkleCliyDgpK7gpKTgpLLgpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkpOCkquCkvuCkiOCkguCkleCliyDgpIngpKrgpJXgpLDgpKPgpK7gpL4g4KSq4KSg4KS+4KSH4KSP4KSV4KWLIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpKTgpKrgpL7gpIjgpILgpLLgpL7gpIgg4KSo4KSm4KWH4KSW4KS+4KSI4KSo4KWIIOCkruCli+CkqOCkv+Ckn+CksCDgpJfgpLDgpY3gpKgg4KS14KS+IOCkruClh+Ckn+CkvuCkieCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVNbXMiIG1zZ2lkPSIxODIxMzE3MzQ0NjY4MjU3MDk4Ij4i4KSq4KS+4KSgIOCkuOCkqOCljeCkpuClh+CktiAoTU1TKSDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZU1tcyIgbXNnaWQ9IjUzMzAxOTQzNzI2MzIxMjI2MCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCBNTVMg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKgg4KSwIOCkquCljeCksOCkleClg+Ckr+CkviDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLjgpJXgpYsg4KSu4KSk4KSy4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSJ4KSq4KSV4KSw4KSj4KSu4KS+IOCkquCkoOCkvuCkh+Ckj+CkleCliyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSk4KSq4KS+4KSI4KSC4KSy4KS+4KSIIOCkqOCkpuClh+CkluCkvuCkiOCkqOCliCDgpK7gpYvgpKjgpL/gpJ/gpLAg4KSX4KSw4KWN4KSoIOCkteCkviDgpK7gpYfgpJ/gpL7gpIngpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlRW1lcmdlbmN5QnJvYWRjYXN0IiBtc2dpZD0iMTgwMzQ3NzY2MDg0NjI4ODA4OSI+IuCkhuCkleCkuOCljeCkruCkv+CklSDgpKrgpY3gpLDgpLjgpL7gpLDgpKPgpLngpLDgpYIg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVFbWVyZ2VuY3lCcm9hZGNhc3QiIG1zZ2lkPSI4NDg1MjQwNzAyNjI0MzE5NzQiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSG4KSq4KSk4KSV4KS+4KSy4KWA4KSoIOCkquCljeCksOCkuOCkvuCksOCkoyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqCDgpLAg4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+IOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CliyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkruCkviDgpK7gpL7gpKTgpY3gpLAg4KSJ4KSq4KSy4KSs4KWN4KSnIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENlbGxCcm9hZGNhc3RzIiBtc2dpZD0iMTU5ODMyODg0MzYxOTY0NjE2NiI+IuCkuOClh+CksiDgpKrgpY3gpLDgpLjgpL7gpLDgpL/gpKQg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDZWxsQnJvYWRjYXN0cyIgbXNnaWQ9IjYzNjE5NzI3NzYwODA0NTg5NzkiPiLgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSJ4KSq4KSV4KSw4KSj4KSm4KWN4KS14KS+4KSw4KS+IOCkquCljeCksOCkvuCkquCljeCkpCDgpLjgpYfgpLIg4KSq4KWN4KSw4KS44KS+4KSw4KSjIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSq4KSi4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KWH4KSyIOCkquCljeCksOCkuOCkvuCksOCkoyDgpJrgpYfgpKTgpL7gpLXgpKjgpYDgpLngpLDgpYIg4KSV4KWH4KS54KWAIOCkuOCljeCkpeCkvuCkqOCkueCksOClguCkruCkviDgpKTgpKrgpL7gpIjgpILgpLLgpL7gpIgg4KSG4KSq4KSk4KSV4KS+4KSy4KWA4KSoIOCkl+CkpOCkv+CkteCkv+Ckp+Ckv+CkueCksOClguCkleCliyDgpKzgpL7gpLDgpYfgpK7gpL4g4KS44KSa4KWH4KSkIOCkl+CksOCkvuCkieCkqCDgpJfgpLDgpL/gpI/gpJXgpL4g4KSb4KSo4KWN4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSP4KSJ4KSf4KS+IOCkhuCkquCkpOCkleCkvuCksuClgOCkqCDgpLjgpYfgpLIg4KSq4KWN4KSw4KS44KS+4KSw4KSjIOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKbgpJsg4KSc4KSsIOCkpOCkquCkvuCkiOCkguCkleCliyDgpIngpKrgpJXgpLDgpKPgpJXgpYsg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIOCkteCkviDgpIXgpKrgpLDgpYfgpLbgpKjgpJXgpYsg4KS44KS+4KSlIOCkueCkuOCljeCkpOCkleCljeCkt+Clh+CkqiDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZW5kU21zIiBtc2dpZD0iNTYwMDgzMDYxMjE0NzY3MTUyOSI+IlNNUyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSq4KSg4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VuZFNtcyIgbXNnaWQ9IjcwOTQ3MjkyOTgyMDQ5Mzc2NjciPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIggU01TIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpKrgpKDgpL7gpIngpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLjgpLLgpYcg4KSF4KSq4KWN4KSw4KSk4KWN4KSv4KS+4KS44KS/4KSkIOCkmuCkvuCksOCljeCknOCkueCksOClguCkleCliyDgpKrgpLDgpL/gpKPgpL7gpK4g4KSm4KS/4KSoIOCkuOCkleCljeCkpuCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkpOCkquCkvuCkiOCkguCkleCliyDgpKrgpYHgpLfgpY3gpJ/gpL8g4KSs4KS/4KSo4KS+IOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpKrgpKDgpL7gpI/gpLAg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkquCliOCkuOCkviDgpJbgpLDgpY3gpJog4KSX4KSw4KS+4KSJ4KSoIOCkuOCkleCljeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9Ijg3MTM4ODkxMDUzMDU5NDMyMDAiPiLgpKrgpY3gpLDgpKTgpL/gpJXgpY3gpLDgpL/gpK/gpL4t4KSu4KS+4KSw4KWN4KSr4KSkLeCkuOCkqOCljeCkpuClh+CktiDgpJjgpJ/gpKjgpL7gpLngpLDgpYIg4KSq4KSg4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9IjcxMDc2NDg1NDg0Njg3Nzg3MzQiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSG4KSX4KSkIOCkleCksuCkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSq4KWN4KSw4KSk4KS/4KSV4KWN4KSw4KS/4KSv4KS+LeCkruCkvuCksOCljeCkq+CkpC3gpLjgpKjgpY3gpKbgpYfgpLYg4KSY4KSf4KSo4KS+4KS54KSw4KWC4KSy4KS+4KSIIOCkheCkqOCljeCkryDgpLjgpKjgpY3gpKbgpYfgpLYg4KSq4KSg4KS+4KSJ4KSo4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkruCkviDgpIXgpKjgpYHgpLDgpYvgpKfgpLngpLDgpYIg4KSq4KSg4KS+4KSJ4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTbXMiIG1zZ2lkPSI4NzQ1MDg2NTcyMjEzMjcwNDgwIj4i4KSk4KSq4KS+4KSI4KSC4KSV4KS+IOCkquCkvuCkoCDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIgKFNNUyDgpLXgpL4gTU1TKSDgpKrgpKLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNDY3OTgxNTQ4Njg0NzM1NTIyIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpLXgpL4gU0lNIOCkleCkvuCksOCljeCkoeCkruCkviDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSt4KSP4KSV4KS+IFNNUyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYLgpLLgpL7gpIgg4KSq4KSi4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS14KS/4KS34KSv4KS14KS44KWN4KSk4KWBIOCkteCkviDgpJfgpYvgpKrgpKjgpYDgpK/gpKTgpL7gpLLgpL7gpIgg4KS14KWH4KS14KS+4KS44KWN4KSk4KS+IOCkl+CksOCljeCkpuCliCDgpLjgpKzgpYggU01TIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpKrgpKLgpY3gpKjgpYcg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNjk1OTY3NTMzNDU3MjQwNTUwIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkq+Cli+CkqCDgpLXgpL4gU0lNIOCkleCkvuCksOCljeCkoeCkruCkviDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSt4KSP4KSV4KS+IFNNUyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYLgpLLgpL7gpIgg4KSq4KSi4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpLjgpKzgpYggU01TIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClguCksuCkvuCkiCDgpKrgpKLgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkuOCkvuCkruCkl+CljeCksOClgCDgpLXgpL4g4KS14KS/4KS24KWN4KS14KS44KSo4KS/4KSv4KSk4KS+IOCkrOCkv+CkqOCkviDgpKjgpYgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU21zIiBtc2dpZD0iMzIxNjk1MDQ3MjYzNjIxNDc3NCI+IuCkpOCkquCkvuCkiOCkgeCkleCkviDgpKrgpL7gpKAg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCkuOCkruCljeCkquCkvuCkpuCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0gKFNNUyDgpLXgpL4gTU1TKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1MTYwNDEzOTQ3Nzk0NTAxNTM4Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkpOCkquCkvuCkiOCkguCkleCliyDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KS14KS+IFNJTSDgpJXgpL7gpLDgpY3gpKHgpK7gpL4g4KSt4KSj4KWN4KSh4KS+4KSwIOCkl+CksOCkv+Ckj+CkleCkviBTTVMg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCksuClh+CkluCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpK7gpYfgpJ/gpL7gpIngpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MjY4NjY4NzA5MDUyMzI4NTY3Ij4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkq+Cli+CkqCDgpLXgpL4gU0lNIOCkleCkvuCksOCljeCkoeCkruCkviDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSt4KSP4KSV4KS+IFNNUyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYLgpLLgpL7gpIgg4KSy4KWH4KSW4KWN4oCN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkuOCkvuCkr+CkpiDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCkruClh+Ckn+CkvuCkieCkqCDgpLjgpJXgpY3gpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVXYXBQdXNoIiBtc2dpZD0iNTk5MTM5ODcxMTkzNjU5MDQxMCI+IuCkquCkvuCkoCDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIgKFdBUCkg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVXYXBQdXNoIiBtc2dpZD0iNzQ4MjMyMTkwMjIwNTgzMzg1Ij4iV0FQIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSoIOCksCDgpKrgpY3gpLDgpLbgpYvgpKfgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CliyDgpIXgpKjgpYHgpK7gpKTgpL/gpK7gpL4g4KSu4KWL4KSo4KS/4KSf4KSwIOCkl+CksOCljeCkqOClhyDgpLXgpL4g4KSk4KSq4KS+4KSI4KSB4KSy4KS+4KSIIOCkquCkoOCkvuCkh+Ckj+CkleCkviDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSk4KSq4KS+4KSI4KSB4KSy4KS+4KSIIOCkqOCkpuClh+CkluCkvuCkiCDgpK7gpYfgpJ/gpY3gpKjgpYcg4KSV4KWN4KS34KSu4KSk4KS+IOCkuOCkruCkvuCkteClh+CktiDgpLngpYHgpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFRhc2tzIiBtc2dpZD0iNjQ2NjA5NTM5NjYyMzkzMzkwNiI+IuCkmuCksuCkv+CksOCkueClh+CkleCkviDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KSq4KWB4KSo4KSD4KSs4KS54KS+4KSy4KWAIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRhc2tzIiBtc2dpZD0iNzQ1NDIxNTk5NTg0NzY1ODEwMiI+IuCkteCksOCljeCkpOCkruCkvuCkqOCkruCkviDgpLAg4KSt4KSw4KSW4KSw4KWIIOCkmuCksuCkv+CksOCkueClh+CkleCkviDgpJXgpL7gpLDgpY3gpK/gpLngpLDgpYIg4KSs4KS+4KSw4KWH4KSV4KWLIOCkuOClguCkmuCkqOCkviDgpKrgpYHgpKjgpIPgpKzgpLngpL7gpLLgpYAg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpL/gpKQg4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpIngpKrgpJXgpLDgpKPgpK7gpL4g4KSq4KWN4KSw4KSv4KWL4KSXIOCkreCkj+CkleCkviDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSs4KS+4KSw4KWH4KSu4KS+IOCkuOClguCkmuCkqOCkviDgpKrgpKTgpY3gpKTgpL4g4KSy4KSX4KS+4KSJ4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW50ZXJhY3RBY3Jvc3NVc2VycyIgbXNnaWQ9IjcxMTQyNTUyODE5NDQyMTE2ODIiPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpLngpLDgpYIg4KSk4KSw4KWN4KSrIOCkheCkqOCljeCkpOCksOCljeCkleCljeCksOCkv+Ckr+CkviDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcmFjdEFjcm9zc1VzZXJzIiBtc2dpZD0iMzY0NjcwOTYzNjIzMzg1Nzg2Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkieCkquCkleCksOCko+CkruCkviDgpLXgpL/gpK3gpL/gpKjgpY3gpKgg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KS54KSw4KWCIOCkruCkvuCksOCljeCkq+CkpCDgpJXgpL7gpLDgpY3gpK/gpLngpLDgpYIg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpK/gpYsg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KS54KSw4KWCIOCkrOCkv+CkmiDgpLjgpYHgpLDgpJXgpY3gpLfgpL4g4KSs4KS/4KSl4KWL4KSy4KWN4KSoIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSo4KWHIOCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW50ZXJhY3RBY3Jvc3NVc2Vyc0Z1bGwiIG1zZ2lkPSIyNTY3NzM0Mjg1NTQ1MDc0MTA1Ij4i4KSV4KWB4KSw4KS+4KSV4KS+4KSo4KWAIOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkvuCkueCksOClgiDgpKzgpL/gpJog4KSF4KSo4KWN4KSk4KSw4KWN4KSV4KWN4KSw4KS/4KSv4KS+IOCkl+CksOCljeCkqCDgpKrgpYLgpLDgpY3gpKMg4KSF4KSo4KWB4KSu4KSk4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJhY3RBY3Jvc3NVc2Vyc0Z1bGwiIG1zZ2lkPSIzNzY4NDEzNjgzOTU1MDIzNjYiPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpLjgpIHgpJfgpJXgpYsg4KSV4KWB4KSw4KS+4KSV4KS+4KSo4KWAIOCkuOCkrOCliCDgpLjgpK7gpY3gpK3gpL7gpLXgpKjgpL7gpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlVXNlcnMiIG1zZ2lkPSIxNjc2MTUwOTExNjcyMjgyNDI4Ij4i4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KS54KSw4KWCIOCkteCljeCkr+CkteCkuOCljeCkpeCkvuCkquCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VVc2VycyIgbXNnaWQ9Ijg0MDkzMDY2Njc2NDUzNTU2MzgiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSJ4KSq4KSV4KSw4KSj4KSu4KS+LCDgpKrgpY3gpLDgpLbgpY3gpKgsIOCkuOCkv+CksOCljeCknOCkqOCkviDgpLAg4KSu4KWH4KSf4KS+4KSH4KS44KS54KS/4KSkIOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkvuCkueCksOClguCkleCliyDgpKrgpY3gpLDgpKzgpKjgpY3gpKcg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldERldGFpbGVkVGFza3MiIG1zZ2lkPSI2MjI5NDY4Njc0NzUzNTI5NTAxIj4i4KSa4KSy4KS/4KSw4KS54KWH4KSV4KS+IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpLXgpL/gpLXgpLDgpKMg4KSq4KWB4KSo4KSD4KSs4KS54KS+4KSy4KWAIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldERldGFpbGVkVGFza3MiIG1zZ2lkPSIxNTM4MjQ3NDE0NDA3MTc1OTkiPiLgpLXgpLDgpY3gpKTgpK7gpL7gpKjgpK7gpL4g4KSwIOCkreCksOCkluCksOCliCDgpJrgpLLgpL/gpLDgpLngpYfgpJXgpL4g4KSV4KS+4KSw4KWN4KSv4KS54KSw4KWC4KSV4KWLIOCkrOCkvuCksOClh+CkruCkviDgpLXgpL/gpLjgpY3gpKTgpYPgpKQg4KS44KWC4KSa4KSo4KS+IOCkquClgeCkqOCkg+CkrOCkueCkvuCksuClgCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIOCkrOCkvuCksOClh+CkleCliyDgpKjgpL/gpJzgpYAg4KS44KWC4KSa4KSo4KS+IOCkquCkpOCljeCkpOCkviDgpLLgpJfgpL7gpIngpKgg4KS44KSV4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZW9yZGVyVGFza3MiIG1zZ2lkPSIyMDE4NTc1NTI2OTM0NDIyNzc5Ij4i4KSa4KSy4KS/4KSw4KS54KWH4KSV4KS+IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpKrgpYHgpKjgpIPgpJXgpY3gpLDgpK4g4KSX4KSw4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVvcmRlclRhc2tzIiBtc2dpZD0iNzczNDIxNzc1NDg3NzQzOTM1MSI+IuCkleCkvuCkruCkueCksOClguCksuCkvuCkiCDgpIXgpJfgpY3gpLDgpK3gpL7gpJcg4KSwIOCkquClg+Ckt+CljeCkoOCkreClguCkruCkv+CkruCkviDgpLjgpL7gpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkr+CliyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSH4KSo4KSq4KWB4KSfIOCkrOCkv+CkqOCkviDgpKjgpYgg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVtb3ZlVGFza3MiIG1zZ2lkPSI2ODIxNTEzNDAxODcwMzc3NDAzIj4i4KSa4KS+4KSy4KWBIOCkreCkh+CksOCkueClh+CkleCkviDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KSw4KWL4KSV4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVtb3ZlVGFza3MiIG1zZ2lkPSIxMzk0NzE0MzUyMDYyNjM1NDkzIj4i4KSV4KS+4KSu4KS54KSw4KWCIOCkueCkn+CkvuCkieCkqCDgpLAg4KSJ4KSo4KWA4KS54KSw4KWC4KSV4KWLIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpLXgpY3gpK/gpLXgpLngpL7gpLDgpLLgpL7gpIgg4KSF4KSs4KSw4KWL4KSnIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFjdGl2aXR5U3RhY2tzIiBtc2dpZD0iNzM5MTE5MTM4NDAyNzMwMzA2NSI+ImFjdGl2aXR5IHN0YWNrcyDgpJXgpYsg4KSq4KWN4KSw4KSs4KSo4KWN4KSnIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFjdGl2aXR5U3RhY2tzIiBtc2dpZD0iMTYxNTg4MTkzMzAzNDA4NDQ0MCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIOCkmuCksuCljeCkqOClhyBhY3Rpdml0eSBzdGFja3Mg4KSy4KS+4KSIIOCkpeCkquCljeCkqCwg4KS54KSf4KS+4KSJ4KSoIOCksCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSV4KWLIOCkteCljeCkr+CkteCkueCkvuCksOCksuCkvuCkiCDgpLXgpL/gpJjgpJ/gpKgg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhcnRBbnlBY3Rpdml0eSIgbXNnaWQ9IjI5MTg3NjgyMzgwNDUyMDY0NTYiPiLgpJXgpYHgpKjgpYgg4KSX4KSk4KS/4KS14KS/4KSn4KS/IOCkuOClgeCksOClgSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdGFydEFueUFjdGl2aXR5IiBtc2dpZD0iOTk3ODIzNjk1MzQzNTg0MDAxIj4i4KSF4KSo4KWB4KSu4KSk4KS/IOCkuOClgeCksOCkleCljeCkt+CkviDgpLXgpL4g4KSo4KS/4KSw4KWN4KSv4KS+4KSkIOCkheCkteCkuOCljeCkpeCkvuCksuCkvuCkiCDgpLXgpL7gpLjgpY3gpKTgpL4g4KSo4KSX4KSw4KS/4KSV4KSoIOCkleClgeCkqOCliCDgpKrgpKjgpL8g4KSV4KS+4KSw4KWN4KSvIOCkuOClgeCksOClgSDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFNjcmVlbkNvbXBhdGliaWxpdHkiIG1zZ2lkPSI2OTc1Mzg3MTE4ODYxODQyMDYxIj4i4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCkheCkqOClgeCkleClguCksuCkpOCkviDgpLjgpYfgpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0U2NyZWVuQ29tcGF0aWJpbGl0eSIgbXNnaWQ9IjY5MjA0MzYxODY5MzkxNzM3NCI+IuCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpLngpLDgpYLgpJXgpYsg4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCkruCkv+CksuCljeCkpuCliyDgpK7gpYvgpKHgpLLgpL7gpIgg4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSjIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+CkueCksOClguCkleCliyDgpLXgpY3gpK/gpLXgpLngpL7gpLAg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpJ/gpYHgpJ/gpL7gpIngpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXREZWJ1Z0FwcCIgbXNnaWQ9IjMwMjIxMDcxOTg2ODY1ODQwNTIiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSh4KS/4KSs4KSXIOCkl+CksOCljeCkqOClhyDgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0RGVidWdBcHAiIG1zZ2lkPSI0NDc0NTEyNDE2Mjk5MDEzMjU2Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpYsg4KSy4KS+4KSX4KS/IOCkoeCkv+CkrOCklyDgpJfgpLDgpY3gpKjgpYcg4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+IOCkmuCkvuCksuClgSDgpJfgpLDgpY3gpKjgpYcg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkheCksOClgiDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KS44KSu4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqCDgpK/gpLjgpJXgpYsg4KSJ4KSq4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZUNvbmZpZ3VyYXRpb24iIG1zZ2lkPSI0MTYyMDkyMTg1MTI0MjM0NDgwIj4i4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkquCljeCksOCkpuCksOCljeCktuCkqCDgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUNvbmZpZ3VyYXRpb24iIG1zZ2lkPSI0MzcyMjIzODczMTU0Mjk2MDc2Ij4i4KS14KSw4KWN4KSk4KSu4KS+4KSoIOCkleCkqOCljeCkq+Ckv+Ckl+CksOClh+CkuOCkqCDgpJzgpLjgpY3gpKTgpYgg4KSy4KWL4KSV4KWN4KSv4KS+4KSyIOCkteCkviDgpLjgpKzgpYjgpKTgpL/gpLAg4KSr4KSo4KWN4KSfIOCkhuCkleCkvuCksCDgpKzgpKbgpLLgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2VuYWJsZUNhck1vZGUiIG1zZ2lkPSI1Njg0NTA0MDU4MTkyOTIxMDk4Ij4i4KSV4KS+4KSwIOCkruCli+CkoSDgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZW5hYmxlQ2FyTW9kZSIgbXNnaWQ9IjQ4NTMxODc0MjU3NTE0MTk0NjciPiLgpJXgpL7gpLAg4KSu4KWL4KSh4KSy4KS+4KSIIOCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iMzkxNDAyNjY4NzQyMDE3NzIwMiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfa2lsbEJhY2tncm91bmRQcm9jZXNzZXMiIG1zZ2lkPSI0NTkzMzUzMjM1OTU5NzMzMTE5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSq4KWD4KS34KWN4KSg4KSt4KWC4KSu4KS/IOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkvuCkueCksOClgiDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS44KSy4KWHIOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSa4KSy4KWN4KSo4KSs4KS+4KSfIOCksOCli+CkleCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZvcmNlU3RvcFBhY2thZ2VzIiBtc2dpZD0iMjMyOTYyNzQyODgzMjA2NzcwMCI+IuCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KSm4KSs4KS+4KSs4KSu4KS+IOCksOCli+CkleCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZvcmNlU3RvcFBhY2thZ2VzIiBtc2dpZD0iNTI1MzE1NzI5NjE4Mzk0MDgxMiI+IuCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSs4KSy4KSq4KWC4KSw4KWN4KS14KSVIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZvcmNlQmFjayIgbXNnaWQ9IjY1MjkzNTIwNDA3MjU4NDYxNiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSoIOCkrOCksiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mb3JjZUJhY2siIG1zZ2lkPSIzODkyMjk1ODMwNDE5NTEzNjIzIj4i4KSF4KSX4KWN4KSw4KSt4KS+4KSX4KSu4KS+IOCkreCkj+CkleCliyDgpJXgpYHgpKjgpYgg4KSX4KSk4KS/4KS14KS/4KSn4KS/4KSy4KS+4KSIIOCknOCkrOCksOCknOCkuOCljeCkpOClgCDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSoIOCksCDgpKvgpLDgpY3gpJXgpYfgpLAg4KSc4KS+4KSo4KSV4KS+IOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSHIOCkleCkueCkv+CksuCljeCkr+CliCDgpIbgpLXgpLbgpY3gpK/gpJXgpKTgpL4g4KSq4KSw4KWN4KSm4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kdW1wIiBtc2dpZD0iMTY4MTc5OTg2MjQzODk1NDc1MiI+IuCkquCljeCksOCko+CkvuCksuClgOCkleCliyDgpIbgpKjgpY3gpKTgpLDgpL/gpJUg4KS44KWN4KSl4KS/4KSk4KS/IOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kdW1wIiBtc2dpZD0iMTc3ODI5OTA4ODY5MjI5MDMyOSI+IuCkquCljeCksOCko+CkvuCksuClgOCkleCliyDgpIbgpKjgpY3gpKTgpLDgpL/gpJUg4KS44KWN4KSl4KS/4KSk4KS/IOCkquClgeCkqOCkg+CkrOCkueCkvuCksuClgCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpIngpKjgpYDgpLngpLDgpYLgpLLgpL7gpIgg4KS44KS+4KSu4KS+4KSo4KWN4KSv4KSk4KSDIOCkleCkueCkv+CksuCljeCkr+CliCDgpKjgpJrgpL7gpLngpL/gpKjgpYcg4KS14KWN4KSv4KS+4KSq4KSVIOCkteCkv+CkteCkv+Ckp+CkpOCkvuCkleCliyDgpKjgpL/gpJzgpYAg4KSwIOCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpLjgpYLgpJrgpKjgpL4g4KSq4KWB4KSo4KSD4KSs4KS54KS+4KSy4KWAIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iODAyMjU4ODYwODk5NDU4OTkzOCI+IuCkuOCljeCkleCljeCksOCkv+CkqCDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSs4KS54KS+4KSy4KWAIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JldHJpZXZlX3dpbmRvd19jb250ZW50IiBtc2dpZD0iMzE5MzI2OTA2OTQ2OTcwMDI2NSI+IuCkuOCkleCljeCksOCkv+CkryDgpLXgpL/gpKjgpY3gpKHgpYvgpJXgpYsg4KS14KS/4KS34KSv4KS14KS44KWN4KSk4KWB4KSy4KS+4KSIIOCkquClgeCkqOCkg+CkrOCkueCkvuCksuClgCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpKrgpYHgpLDgpYgg4KS14KS/4KSo4KWN4KSh4KWL4KSV4KWLIOCkteCkv+Ckt+Ckr+CkteCkuOCljeCkpOClgSDgpKrgpYHgpKjgpIPgpKzgpLngpL7gpLLgpYAg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljSDgpLAg4KSq4KS+4KS44KS14KSw4KWN4KSh4KS54KSw4KWC4KSs4KS+4KS54KWH4KSVIOCkr+CkuOCkleCkviDgpLjgpKzgpYgg4KSq4KS+4KSg4KSV4KWLIOCknOCkvuCkgeCkmiDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl90ZW1wb3JhcnlfZW5hYmxlX2FjY2Vzc2liaWxpdHkiIG1zZ2lkPSIyMzEyNjEyMTM1MTI3MzEwMjU0Ij4i4KSq4KS54KWB4KSB4KSa4KSk4KS+4KSy4KS+4KSIIOCkheCkuOCljeCkpeCkvuCkr+ClgCDgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdGVtcG9yYXJ5X2VuYWJsZV9hY2Nlc3NpYmlsaXR5IiBtc2dpZD0iODA3OTQ1NjI5MzE4Mjk3NTQ2NCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpLjgpY3gpKXgpL7gpK/gpYAg4KSw4KWC4KSq4KSu4KS+IOCkieCkquCkleCksOCko+CkruCkvuCkpeCkvyDgpKrgpLngpYHgpIHgpJog4KSw4KS+4KSW4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpJXgpYsg4KS44KS54KSu4KSk4KS/IOCkrOCkv+CkqOCkviDgpKjgpYgg4KSq4KS54KWB4KSB4KSa4KSy4KS+4KSIIOCkuOCkleCljeCkt+CkriDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9Ijg1MzIyOTUxOTkxMTI1MTkzNzgiPiLgpLXgpL/gpKjgpY3gpKHgpYsg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkrOCkueCkvuCksuClgCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9IjQ5OTg4MzYzNzA0MjQxODY4NDkiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS14KS/4KSo4KWN4KSh4KWLIOCkteCljeCkr+CkteCkuOCljeCkpeCkvuCkquCkleCkrOCkvuCknyDgpLXgpL/gpKjgpY3gpKHgpYvgpLngpLDgpYLgpJXgpYsg4KSs4KS+4KSw4KWH4KSu4KS+IOCknOCkvuCkqOCkleCkvuCksOClgCDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpIbgpKjgpY3gpKTgpLDgpL/gpJUg4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkieCkquCkr+Cli+Ckl+CkleCliyDgpLLgpL7gpJfgpL8g4KSo4KS/4KSu4KS/4KSk4KWN4KSkIOCknOCkvuCkqOCkleCkvuCksOClgCDgpKrgpKjgpL8g4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4Njc1NTM1NjQ4ODA3NDI3Mzg5Ij4i4KSY4KSf4KSo4KS+4KS54KSw4KWCIOCkm+CkvuCkqOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4MDA2MjM2MzE1ODg4MzQ3NjgwIj4i4KSH4KSo4KWN4KSq4KWB4KSfIOCkq+Ckv+CksuCljeCkn+CksCDgpJzgpYHgpKgg4KS44KSs4KWIIOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpJjgpJ/gpKjgpL7gpLngpLDgpYIg4KSq4KSg4KS+4KSH4KSo4KWB4KSt4KSo4KWN4KSm4KS+IOCkquCkueCkv+CksuClhyDgpKvgpL/gpLLgpY3gpJ/gpLAg4KSX4KSw4KWN4KSo4KWH4KSy4KS+4KSIIOCkpuCksOCljeCkpOCkviDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KSV4KWLIOCkueCkuOCljeCkpOCkleCljeCkt+Clh+CkqiDgpKzgpL/gpKjgpL4g4KSo4KWIIFVJIOCkquCljeCksOCko+CkvuCksuClgCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI1OTczNjI2NzM4MTcwNjE4Nzc1Ij4i4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIOCkrOCkouCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hZ25pZnlfZGlzcGxheSIgbXNnaWQ9IjcxMjEyMzU2ODQ1MTUwMDM3OTIiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSo4KSV4KWLIOCkuOCkvuCkruCkl+CljeCksOClgCDgpIbgpLXgpLDgpY3gpKfgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpKrgpY3gpLDgpKbgpLDgpY3gpLbgpKgg4KS44KS+4KSu4KSX4KWN4KSw4KWAIOCkuOCkguCkleCljeCksOCkruCkoyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KSo4KWNIOCknOCkuOCksuClhyDgpIngpKrgpJXgpLDgpKPgpLLgpL7gpIgg4KSF4KSo4KWB4KSq4KSv4KWL4KSX4KWAIOCkrOCkqOCkvuCkieCkgeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2h1dGRvd24iIG1zZ2lkPSI3MTg1NzQ3ODI0MDM4OTA5MDE2Ij4i4KSG4KSC4KS24KS/4KSVIOCkrOCkqOCljeCkpiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NodXRkb3duIiBtc2dpZD0iNzA0NjUwMDgzODc0NjI5MTc3NSI+IuCkl+CkpOCkv+CkteCkv+Ckp+CkvyDgpLXgpY3gpK/gpLXgpLjgpY3gpKXgpL7gpKrgpJXgpLLgpL7gpIgg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqOClhyDgpIXgpLXgpLjgpY3gpKXgpL7gpK7gpL4g4KSw4KS+4KSW4KWN4KSb4KWkIOCkquClguCksOCljeCkoyDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSo4KWHIOCkleCkvuCkriDgpJfgpLDgpY3gpKbgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0b3BBcHBTd2l0Y2hlcyIgbXNnaWQ9IjQxMzg2MDg2MTA3MTc0MjU1NzMiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KS44KWN4KS14KS/4KSa4KS54KSw4KWCIOCknOCli+Ckl+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0b3BBcHBTd2l0Y2hlcyIgbXNnaWQ9IjgyNjIxOTU4MDI1ODIyNTUwMjEiPiLgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSu4KS+IOCkuOCljeCkteCkv+CkmiDgpJfgpLDgpY3gpKjgpKzgpL7gpJ8g4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KS54KSw4KWC4KSy4KS+4KSIIOCksOCli+CkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0VG9wQWN0aXZpdHlJbmZvIiBtc2dpZD0iMjUzNzkyMjMxMTQxMTU0NjAxNiI+IuCkteCksOCljeCkpOCkruCkvuCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpYsg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRUb3BBY3Rpdml0eUluZm8iIG1zZ2lkPSI4MTUzNjUxNDM0MTQ1MTMyNTA1Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSo4KSV4KWLIOCkheCkl+CljeCksCDgpK3gpL7gpJfgpK7gpL4g4KS54KS+4KSy4KSV4KWLIOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpLAg4KS44KWH4KS14KS+4KS54KSw4KWC4KSV4KS+IOCkrOCkvuCksOClhyDgpKjgpL/gpJzgpYAg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkqOCkv+CkleCkvuCksuCljeCkqCDgpKzgpL7gpLngpJXgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcnVuU2V0QWN0aXZpdHlXYXRjaGVyIiBtc2dpZD0iODkyMjM5MDk0ODY3MTgyNjU2Ij4i4KS44KSs4KWIIOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpLjgpYHgpLDgpYHgpLXgpL7gpKQg4KSX4KSw4KWN4KSo4KWHIOCkqOCkv+CksOClgOCkleCljeCkt+CkoyDgpLAg4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSjIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3J1blNldEFjdGl2aXR5V2F0Y2hlciIgbXNnaWQ9IjYwMDM2MDMxNjI1Nzg1Nzc0MDYiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSV4KS44KSw4KWAIOCkquCljeCksOCko+CkvuCksuClgCDgpLjgpYHgpLDgpYHgpLXgpL7gpKQg4KSX4KSk4KS/4KS54KSw4KWCIOCkruCli+CkqOCkv+Ckn+CksCDgpJfgpLDgpY3gpKgg4KSwIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkquCljeCksOCko+CkvuCksuClgOCkruCkviDgpKrgpYLgpLDgpY3gpKMg4KS44KS54KSu4KSkIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQg4KSv4KWLIOCkheCkqOClgeCkruCkpOCkvyDgpJXgpYfgpLXgpLIg4KS14KS/4KSV4KS+4KS44KSV4KWLIOCksuCkvuCkl+CkvyDgpIbgpLXgpLbgpY3gpK/gpJUg4KSbLCDgpLjgpL7gpKfgpL7gpLDgpKMg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCksuCkvuCkl+CkvyDgpJXgpLngpL/gpLLgpYcg4KS54KWL4KSH4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RQYWNrYWdlUmVtb3ZlZCIgbXNnaWQ9IjI1NzYzMzM0MzQ4OTM1MzI0NzUiPiLgpKrgpY3gpK/gpL7gpJXgpYfgpJwg4KS54KSf4KS+4KSH4KSP4KSV4KWLIOCkquCljeCksOCkuOCkvuCksOCko+CksuCkvuCkiCDgpKrgpKDgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RQYWNrYWdlUmVtb3ZlZCIgbXNnaWQ9IjY2MjE5MDEyMTYyMDc5MzEwODkiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KWC4KSa4KSo4KS+IOCkquCljeCksOCkuOCkvuCksOCkoyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkmyDgpJzgpYHgpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkquCljeCkr+CkvuCkleClh+CknCDgpLngpJ/gpL7gpIfgpI/gpJXgpYsg4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpY3gpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSv4KWLIOCkleClgeCkqOCliCDgpIXgpKjgpY3gpK8g4KSa4KS+4KSy4KWBIOCkheCkqOClgeCljeCkquCljeCksOCkr+Cli+CklyDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSoIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RTbXNSZWNlaXZlZCIgbXNnaWQ9IjU2ODkwOTUwMDkwMzAzMzY1OTMiPiJTTVMt4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkquCljeCksOCkuOCkvuCksOCkoyDgpKrgpKDgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RTbXNSZWNlaXZlZCIgbXNnaWQ9IjQxNTIwMzc3MjAwMzQzNjU0OTIiPiLgpKTgpY3gpK/gpYsg4KSP4KSJ4KSf4KS+IFNNUyDgpLjgpKjgpY3gpKbgpYfgpLbgpKzgpL7gpJ8g4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkreCkj+CkleCliyDgpLjgpYLgpJrgpKjgpL7gpLLgpL7gpIgg4KSq4KWN4KSw4KS44KS+4KSw4KSjIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpIbgpIngpIHgpKbgpYgg4KSX4KSw4KWH4KSV4KWLIFNNUyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYLgpLLgpL7gpIgg4KSc4KS+4KSy4KS44KS+4KSc4KWAIOCkl+CksOCljeCkqCDgpLjgpL7gpK/gpKYg4KSW4KSw4KS+4KSsIOCkreCkj+CkleCkviDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSv4KS44KSy4KS+4KSIIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RXYXBQdXNoIiBtc2dpZD0iMzE0NTM0NzQxMzAyODU4MjM3MSI+IldBUC1QVVNILeCkquCljeCksOCkvuCkquCljeCkpCDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KSq4KSg4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjQ3ODM0MDI1MjUwMzk0NDI3MjkiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KWC4KSa4KSo4KS+IOCkquCljeCksOCkuOCkvuCksOCkoyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkmyDgpJzgpYHgpKgg4KSP4KSJ4KSf4KS+IFdBUCBQVVNIIOCkuOCkqOCljeCkpuClh+CktiDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSt4KSP4KSV4KWLIOCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkr+CliyBNTVMg4KS44KSo4KWN4KSm4KWH4KS2IOCkrOCkv+Ckl+CkvuCksOCljeCkqCDgpLXgpL4g4KSu4KWM4KSoIOCkpOCksOCkv+CkleCkvuCksuClhyDgpJXgpYHgpKjgpYgg4KSq4KSo4KS/IOCkteClh+CkrOCkquClg+Ckt+CljeCkoOCkleCliyDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSW4KSw4KS+4KSsIOCkteCkv+CkreClh+CkpuCkueCksOClguCkuOCkgeCklyDgpKzgpKbgpLLgpY3gpKgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFByb2Nlc3NMaW1pdCIgbXNnaWQ9IjI0NTE4NzM2NjQzNjM2NjI2NjYiPiLgpJrgpL7gpLLgpYEg4KSq4KWN4KSw4KS24KWL4KSn4KSo4KS54KSw4KWC4KSV4KWLIOCkuOCkmeCljeCkluCljeCkr+CkviDgpLjgpYDgpK7gpKTgpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJvY2Vzc0xpbWl0IiBtc2dpZD0iNzMxODA2MTMxNDA0MDg3OTU0MiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpJrgpL7gpLLgpYEg4KS54KWB4KSo4KWHIOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkvuCkueCksOClguCkleCliyDgpIXgpKfgpL/gpJXgpKTgpK4g4KS44KSC4KSW4KWN4KSv4KS+IOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpKfgpL7gpLDgpKMg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSV4KWLIOCksuCkvuCkl+CkvyDgpJXgpLngpL/gpLLgpYcg4KSq4KSo4KS/IOCkhuCkteCktuCljeCkr+CklSDgpKjgpKrgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbHdheXNGaW5pc2giIG1zZ2lkPSI1NTA5NTg1MDc3OTg3OTY5NjUiPiLgpKrgpYPgpLfgpY3gpKDgpK3gpYLgpK7gpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKgg4KSm4KSs4KS+4KSsIOCkpuCkv+CkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFsd2F5c0ZpbmlzaCIgbXNnaWQ9Ijc0NzEzMTA2NTI4Njg4NDE0OTkiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSX4KSk4KS/4KS14KS/4KSn4KS/4KS54KSw4KWCIOCkuOCkp+CliOCkgSDgpLjgpK7gpL7gpKrgpY3gpKQg4KSt4KSv4KWLIOCkleCkvyDgpK3gpI/gpKgg4KSc4KSsIOCkleCkvyDgpJzgpKTgpL8g4KS44KSV4KWN4KSm4KWLIOCkpOCkv+CkqOClgOCkueCksOClgiDgpKrgpYPgpLfgpY3gpKDgpK3gpYLgpK7gpL/gpK7gpL4g4KSc4KS+4KSo4KWN4KSb4KSo4KWNIOCkreCkqOCljeCkqOClhyDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSV4KS54KS/4KSy4KWHIOCkquCkqOCkvyDgpIbgpLXgpLbgpY3gpK/gpJUg4KSo4KSq4KSw4KWN4KSoIOCkuOCkleCljeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmF0dGVyeVN0YXRzIiBtc2dpZD0iMjc4OTYxMDY3MzUxNDEwMzM2NCI+IuCkrOCljeCkr+CkvuCkn+CljeCksOCkvyDgpKTgpKXgpY3gpK/gpL7gpJngpY3gpLngpLDgpYIg4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmF0dGVyeVN0YXRzIiBtc2dpZD0iNTg5NzM0NjU4Mjg4MjkxNTExNCI+IuCkteCksOCljeCkpOCkruCkvuCkqCDgpKXgpYvgpLDgpYgg4KSs4KWN4KSv4KS+4KSf4KWN4KSw4KWAIOCkquCljeCksOCkr+Cli+CklyDgpKHgpYfgpJ/gpL4g4KSq4KSi4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpI/gpJUg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSc4KWB4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClgOCksOCkueCkqOClgeCkreCkj+CkleCliyDgpJsg4KSk4KWN4KSv4KS44KWN4KSV4KWLIOCkrOCkvuCksOClh+CkleCkviDgpKrgpYHgpLDgpY3gpKMg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKgg4KS44KS+4KSv4KSmIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91cGRhdGVCYXR0ZXJ5U3RhdHMiIG1zZ2lkPSIzNzE5Njg5NzY0NTM2Mzc5NTU3Ij4i4KSs4KWN4KSv4KS+4KSf4KWN4KSw4KS/IOCkpOCkpeCljeCkr+CkvuCkmeCljeCkleCksuCkvuCkiCDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXBkYXRlQmF0dGVyeVN0YXRzIiBtc2dpZD0iNjg2MjgxNzg1NzE3ODAyNTAwMiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpILgpJXgpLLgpL/gpKQg4KSs4KWN4KSv4KS+4KSf4KWN4KSw4KS/IOCkpOCkpeCljeCkr+CkvuCkmeCljeCkleCkueCksOClgiDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpYsg4KSy4KS+4KSX4KS/IOCkueCli+Ckh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0QXBwT3BzU3RhdHMiIG1zZ2lkPSIxNTA4Nzc5Njg3NDM2NTg1NzQ0Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkuOCkguCkmuCkvuCksuCkqOCkleCkviDgpKTgpKXgpY3gpK/gpL7gpJngpY3gpJXgpLngpLDgpYIg4KSq4KWB4KSo4KSD4KSs4KS54KS+4KSy4KWAIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFwcE9wc1N0YXRzIiBtc2dpZD0iNjI0Mzg4NzA0MTU3NzkxMjg3NyI+IuCkuOCkmeCljeCkleCksuCkqCDgpJfgpLDgpL/gpI/gpJXgpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkuOCkguCkmuCkvuCksuCkqCDgpKTgpKXgpY3gpK/gpL7gpJngpY3gpLLgpL7gpIgg4KSq4KWB4KSo4KSDIOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSu4KS+4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkrOCkvuCknyDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpYsg4KSy4KS+4KSX4KS/IOCkueCli+Ckh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlQXBwT3BzU3RhdHMiIG1zZ2lkPSI4ODI5MDk3MzczODUxNTIxNTA1Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkuOCkguCkmuCksuCkvuCkqCDgpKTgpKXgpY3gpK/gpL7gpJngpY3gpJXgpLngpLDgpYLgpLLgpL7gpIgg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VwZGF0ZUFwcE9wc1N0YXRzIiBtc2dpZD0iNTA3ODQ1OTY1OTQ0MDM0ODMiPiLgpLjgpJngpY3gpJXgpLLgpKgg4KSX4KSw4KS/4KSP4KSV4KS+IOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpLjgpILgpJrgpL7gpLLgpKgg4KSk4KSl4KWN4KSv4KS+4KSZ4KWN4KSy4KS+4KSIIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSu4KS+4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkrOCkvuCknyDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpYsg4KSy4KS+4KSX4KS/IOCkueCli+Ckh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmFja3VwIiBtc2dpZD0iNDcwMDEzMDIyODY1NDUzOTIwIj4i4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkrOCljeCkr+CkleCkheCkqiDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOCksCDgpKrgpYHgpKjgpIMg4KSs4KS54KS+4KSy4KWAIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JhY2t1cCIgbXNnaWQ9IjY5MTIyMzA1MjUxNDA1ODk4OTEiPiLgpKrgpY3gpLDgpKPgpL7gpLLgpYDgpJXgpYsg4KSc4KSX4KWH4KSh4KS+IOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKgg4KSwIOCkquClgeCkqOCkg+CkquCljeCksOCkvuCkquCljeCkpOCkv+CkleCliyDgpLjgpILgpK/gpYvgpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpL/gpKQg4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpKbgpY3gpLXgpL7gpLDgpL4g4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCksuCkvuCkl+CkvyDgpLngpYvgpIfgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpcm1fZnVsbF9iYWNrdXAiIG1zZ2lkPSI1NTU3MDcxMzI1ODA0NDY5MTAyIj4i4KSq4KWC4KSw4KWN4KSjIOCknOCkl+Clh+CkoeCkviDgpJfgpLDgpY3gpKgg4KS14KS+IOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkviDgpKrgpYHgpKjgpIPgpKzgpLngpL7gpLLgpYAg4KSX4KSw4KWN4KSoIOCkqOCkv+CktuCljeCkmuCkv+CkpCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maXJtX2Z1bGxfYmFja3VwIiBtc2dpZD0iMTc0ODc2MjE3MTYzNzY5OTU2MiI+IlVJIOCkleCliyDgpKrgpYLgpLDgpY3gpKMg4KSc4KSX4KWH4KSh4KS+IOCkqOCkv+CktuCljeCkmuCkv+CkqOCljeCkpOCkpOCkviDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSo4KSV4KS+IOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpJXgpYHgpKjgpYgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSs4KS+4KSfIOCkquCljeCksOCkr+Cli+CklyDgpKjgpJfgpLDgpL/gpKjgpYfgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVybmFsU3lzdGVtV2luZG93IiBtc2dpZD0iMjE0ODU2MzYyODE0MDE5MzIzMSI+IuCkheCkqOCkp+Ckv+CkleClg+CkpCDgpKzgpL/gpKjgpY3gpKHgpYvgpLngpLDgpYIg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludGVybmFsU3lzdGVtV2luZG93IiBtc2dpZD0iNzQ1ODM4Nzc1OTQ2MTQ2NjM5NyI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLXgpL/gpKjgpY3gpKHgpYvgpLngpLDgpYIg4KS44KS/4KSw4KWN4KSc4KSo4KS+IOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSbIOCknOClgeCkqCDgpIbgpKjgpY3gpKTgpLDgpL/gpJUg4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpIfgpKjgpY3gpJ/gpLDgpKvgpYfgpLjgpKbgpY3gpLXgpL7gpLDgpL4g4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpIXgpK3gpL/gpKrgpY3gpLDgpYfgpLDgpL/gpKQg4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpKbgpY3gpLXgpL7gpLDgpL4g4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCksuCkvuCkl+CkvyDgpLngpYvgpIfgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N5c3RlbUFsZXJ0V2luZG93IiBtc2dpZD0iMzU0MzM0Nzk4MDgzOTUxODYxMyI+IuCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpK7gpL4g4KSa4KS/4KSk4KWN4KSwIOCkleCli+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N5c3RlbUFsZXJ0V2luZG93IiBtc2dpZD0iODU4NDY3ODM4MTk3MjgyMDExOCI+IuCkheCksOClgiDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpK7gpL7gpKXgpL8g4KS14KS+IOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpIfgpKjgpY3gpJ/gpLDgpKvgpYfgpLjgpJXgpL4g4KSt4KS+4KSX4KS54KSw4KWC4KSu4KS+IOCkmuCkv+CkpOCljeCksCDgpJXgpYvgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSk4KS/4KSo4KWA4KS54KSw4KWC4KSy4KWHIOCkleClgeCkqOCliCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpK7gpL4g4KSH4KSo4KWN4KSf4KSw4KSr4KWH4KSV4KWLIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJfgpLjgpIHgpJcg4KS54KS44KWN4KSk4KSV4KWN4KS34KWH4KSqIOCkl+CksOCljeCkqCDgpLXgpL4g4KSk4KSq4KS+4KSI4KSBIOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpK7gpL4g4KSV4KWHIOCkpuClh+CkluCkv+CksOCkueCkqOClgSDgpK3gpI/gpJXgpYsg4KSbIOCkreCkqOCljeCkqOClhyDgpLjgpYvgpJrgpY3gpKgg4KS54KWB4KSo4KWN4KSbIOCkreCkqOCljeCkqOClhyDgpKzgpKbgpLLgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9IjI4MDUxMDMyNDExNTM5MDcxNzQiPiLgpJfgpY3gpLLgpYvgpKzgpLIg4KS44KSc4KWA4KS14KS/4KSV4KSw4KSjIOCkl+CkpOCkvyDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QW5pbWF0aW9uU2NhbGUiIG1zZ2lkPSI3NjkwMDYzNDI4OTI0MzQzNTcxIj4i4KS14KS/4KS24KWN4KS14KSs4KWN4KSv4KS+4KSq4KS/IOCkuOCknOClgOCkteCkv+CkleCksOCkoyjgpKbgpY3gpLDgpYHgpKQg4KS14KS+IOCkouCkv+CksuCkviDgpLjgpJzgpYDgpLXgpL/gpJXgpLDgpKPgpLngpLDgpYIpIOCksuCkvuCkiCDgpJXgpYHgpKjgpYgg4KSq4KSo4KS/IOCkuOCkruCkryDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQXBwVG9rZW5zIiBtc2dpZD0iMTI4NjUwNTcxNzA1MDEyMTM3MCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpJ/gpYvgpJXgpKjgpLngpLDgpYIg4KSq4KWN4KSw4KSs4KSo4KWN4KSnIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFwcFRva2VucyIgbXNnaWQ9IjgwNDM0MzE3MTMwMTQzOTU2NzEiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSG4KSr4KWN4KSo4KS+IOCkn+Cli+CkleCkqOCkueCksOClgiDgpLjgpL/gpLDgpY3gpJzgpKjgpL4g4KSX4KSw4KWN4KSoIOCksCDgpIngpKjgpYDgpLngpLDgpYLgpJXgpYsg4KS44KS+4KSn4KS+4KSw4KSjIFot4KSV4KWN4KSw4KSu4KS+4KSZ4KWN4KSV4KSoIOCkrOCkvuCkh+CkquCkvuCkuCDgpJfgpLDgpYfgpLAg4KSq4KWN4KSw4KSs4KSo4KWN4KSnIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkleCkueCkv+CksuCljeCkr+CliCDgpKrgpKjgpL8g4KSG4KS14KS24KWN4KSv4KSVIOCkqOCkueClgeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZyZWV6ZVNjcmVlbiIgbXNnaWQ9IjQ3MDgxODExODQ0NDE4ODAxNzUiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSr4KWN4KSw4KS/4KScIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZyZWV6ZVNjcmVlbiIgbXNnaWQ9Ijg1NTg5MjM3ODkyMjI2NzAwNjQiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSq4KWC4KSw4KWN4KSjLeCkuOCljeCkleCljeCksOCkv+CkqCDgpLjgpILgpJXgpY3gpLDgpK7gpKPgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkuOCljeCkpeCkvuCkr+ClgCDgpLDgpYLgpKrgpK7gpL4g4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCkuOCljeCkpeCkv+CksCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW5qZWN0RXZlbnRzIiBtc2dpZD0iMTM3ODc0NjU4NDAyMzU4NjYwMCI+IuCkleClgeCknuCljeCknOClgOCkueCksOClgiDgpLAg4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSjIOCkrOCkn+CkqOCkueCksOClgiDgpKXgpL/gpJrgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbmplY3RFdmVudHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNjM1MjU2NTU5OTk2ODYzMiI+IuCkr+CkuOCkleCkviDgpIbgpKvgpY3gpKjgpL4g4KSH4KSo4KSq4KWB4KSfIOCkmOCkn+CkqOCkvuCkueCksOClgiAo4KSV4KS/IOCkpeCkv+CkmuCkvuCkh+CkueCksOClgiwg4KSG4KSm4KS/KSDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkteCkv+CkpOCksOCkoyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpK/gpLjgpLLgpL7gpIgg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KS44KSu4KWN4KSuIOCksuCliOCknOCkvuCkqCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1MzEyODA1NzU3MjMyNjI1MyI+IuCkr+CkuOCljeCkleCliyDgpIbgpKvgpY3gpKjgpYgg4KSo4KS/4KS14KWH4KS2IOCkmOCkn+CkqOCkvuCkueCksOClgiAo4KSV4KS/IOCkpeCkv+CkmuCkvuCkh+CkueCksOClgiwg4KSG4KSm4KS/Likg4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCli+Ckr+Ckl+CkueCksOClguCksuCkvuCkiCDgpKrgpYHgpY3gpLDgpY3igI3gpK/gpL7gpIngpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSr4KWL4KSo4KSy4KS+4KSIIOCkueCkuOCljeCkpOCkleCljeCkt+Clh+CkqiDgpJfgpLDgpY3gpKgg4KSv4KS44KSV4KWLIOCkquCljeCksOCkr+Cli+CklyDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRJbnB1dFN0YXRlIiBtc2dpZD0iNDY5NDI4OTAwMDQxMjQ5MjM0Ij4i4KSk4KSq4KS+4KSI4KSC4KSy4KWHIOCkleClhyDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWB4KSo4KWN4KSbIOCksCDgpJXgpYcg4KSV4KS+4KSw4KWN4KSv4KS54KSw4KWCIOCksuCkv+CkqOClgeCkueClgeCkqOCljeCkmyDgpLDgpYfgpJXgpLDgpY3gpKEg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZElucHV0U3RhdGUiIG1zZ2lkPSI4Mzg3NzU0OTAxNjg4NzI4MDQzIj4i4KSF4KSw4KWN4KSV4KWLIOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyjgpJzgpLjgpY3gpKTgpYgg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkn+CkvuCkh+CkqiDgpJfgpLDgpL7gpIcp4KS44KSB4KSXIOCkheCkqOCljeCkpOCksOCljeCkleCljeCksOCkv+Ckr+CkviDgpJfgpLDgpYfgpJXgpYsg4KSs4KWH4KSy4KS+IOCkquCkqOCkvyDgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSl4KS/4KSa4KWH4KSV4KS+IOCkleCkv+CkueCksOClguCksuCkvuCkhyDgpLngpYfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSu4KS+4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpJXgpLngpL/gpLLgpY3gpK/gpYgg4KSG4KS14KS24KWN4KSv4KSVIOCkueClgeCkgeCkpuCliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZElucHV0TWV0aG9kIiBtc2dpZD0iMzM2MDA2NDYyMDIzMDUxNTc3NiI+IuCkj+CkieCkn+CkviDgpKjgpL/gpLXgpYfgpLYg4KSk4KSw4KS/4KSV4KS+4KSu4KS+IOCkrOCkvuCkgeCkp+CljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRJbnB1dE1ldGhvZCIgbXNnaWQ9IjMyNTA0NDAzMjI4MDcyODYzMzEiPiLgpI/gpIngpJ/gpL4g4KSo4KS/4KS14KWH4KS2IOCkpOCksOCkv+CkleCkvuCkleCliyDgpIngpJrgpY3gpJog4KS44KWN4KSk4KSw4KSV4KWLIOCkh+CkqOCljeCkn+CksOCkq+Clh+CkuOCksuCkvuCkiCDgpKrgpJXgpY3gpJXgpL4g4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpLjgpK7gpL7gpKTgpYAg4KSw4KS+4KSW4KWN4KSo4KWH4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpJXgpLngpL/gpLLgpY3gpK/gpYgg4KSG4KS14KS24KWN4KSv4KSVIOCkquCksOCljeCkqOClhyDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRBY2Nlc3NpYmlsaXR5U2VydmljZSIgbXNnaWQ9IjUzNTc3MzM5NDI1NTYwMzE1OTMiPiLgpI/gpIngpJ/gpL4g4KSq4KS54KWB4KSB4KSaIOCkuOClh+CkteCkvuCkuOCkgeCklyDgpJzgpYvgpKHgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kQWNjZXNzaWJpbGl0eVNlcnZpY2UiIG1zZ2lkPSI3MDM0NjE1OTI4NjA5MzMxMzY4Ij4i4KSP4KSVIOCkquCkueClgeCkgeCkmiDgpLjgpYfgpLXgpL7gpJXgpYsg4KSJ4KSa4KWN4KSaIOCkuOCljeCkpOCksOCkleCliyDgpJXgpYHgpLDgpL7gpJXgpL7gpKjgpYDgpLLgpL7gpIgg4KSq4KSV4KWN4KSV4KS+IOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KS44KSu4KS+4KSk4KWAIOCksOCkvuCkluCljeCkqOClh+CksuClhyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSV4KS54KS/4KSy4KWN4KSv4KWIIOCkhuCkteCktuCljeCkr+CklSDgpKrgpLDgpY3gpKjgpYcg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kUHJpbnRTZXJ2aWNlIiBtc2dpZD0iODQ2MjgxNTE3OTU3Mjc0ODc2MSI+IuCkj+CkieCkn+CkviDgpKrgpY3gpLDgpL/gpKjgpY3gpJ8g4KS44KWH4KS14KS+4KS44KSB4KSXIOCknOCli+CkoeCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQcmludFNlcnZpY2UiIG1zZ2lkPSI3OTYwMDY3NjIzMjA5MTExMTM1Ij4i4KSP4KSJ4KSf4KS+IOCkquCljeCksOCkv+CkqOCljeCknyDgpLjgpYfgpLXgpL7gpJXgpYsg4KSJ4KSa4KWN4KSaIOCkuOCljeCkpOCksOCkleCliyDgpIfgpKjgpY3gpJ/gpLDgpKvgpYfgpLjgpLLgpL7gpIgg4KSq4KSV4KWN4KSV4KS+IOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpJXgpLngpL/gpLLgpY3gpK/gpYgg4KSG4KS14KS24KWN4KSv4KSVIOCkquCksOCljeCkqOClhyDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRQcmludFNwb29sZXJTZXJ2aWNlIiBtc2dpZD0iNjgwNzc2Mjc4Mzc0NDEyNTk1NCI+IuCkquCljeCksOCkv+CkqOCljeCknyDgpLjgpY3gpKrgpYHgpLLgpLAg4KS44KWH4KS14KS+4KS44KSB4KSXIOCkrOCkvuCkp+CljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQcmludFNwb29sZXJTZXJ2aWNlIiBtc2dpZD0iMzY4MDU1MjI4NTkzMzMxODM3MiI+IuCkquCljeCksOCkv+CkqOCljeCknyDgpLjgpY3gpKrgpYHgpLLgpLAg4KS44KWH4KS14KS+4KSV4KWLIOCktuClgOCksOCljeCktyDgpKTgpLkg4KSH4KSo4KWN4KSf4KSw4KWN4KSr4KWH4KS44KSy4KS+4KSIIOCkrOCkvuCkueCkleCkuOCkgeCklyDgpKzgpL7gpIHgpKfgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkleCkueCkv+CksuCljeCkr+CliCDgpKrgpKjgpL8g4KSG4KS14KS+4KS24KWN4KSv4KSVIOCkqOCkquCksOCljeCkqCDgpLjgpJXgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iMjc1MjczMTMwMDQxOTQxMDcyNCI+Ik5GQyDgpLjgpYfgpLXgpL7gpK7gpL4g4KSs4KS+4KSB4KSn4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSI2MTIwNjQ3NjI5MTc0MDY2ODYyIj4iTkZDIOCkleCkvuCksOCljeCkoeCkueCksOClgiDgpIfgpK7gpYHgpLLgpYfgpJ8g4KSX4KSw4KWN4KSo4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpKzgpL7gpIHgpKfgpY3gpKjgpJXgpL4g4KSy4KS+4KSX4KS/IOCkueCli+CksuCljeCkoeCksOCksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpL4g4KSy4KS+4KSX4KS/IOCkleCkueCkv+CksuCljeCkr+CliCDgpKrgpKjgpL8g4KSG4KS14KS24KWN4KSv4KSVIOCkquCksOCljeCkpuCliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iNzM1ODM3ODQwMTkxNTI4NzkzOCI+IuCkj+CkieCkn+CkviDgpKrgpL7gpKAg4KS44KWH4KS14KS+4KS44KSB4KSXIOCkuOCkguCkl+CkoOCkv+CkpCDgpLngpYHgpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVGV4dFNlcnZpY2UiIG1zZ2lkPSI4MTUxOTY4OTEwOTczOTk4NjcwIj4i4KSP4KSJ4KSf4KS+IOCkquCkvuCkoCDgpLjgpYfgpLXgpL7gpJXgpYsgKOCkieCkpuCkvuCkueCksOCkoyDgpLbgpKzgpY3gpKYg4KSq4KSw4KWA4KSV4KWN4KS34KSj4KS44KWH4KS14KS+KSDgpIngpJrgpY3gpJog4KS44KWN4KSk4KSw4KSV4KWLIOCkh+CkqOCljeCkn+CksOCkq+Clh+CkuOCksuCkvuCkiCDgpKrgpJXgpY3gpJXgpL4g4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpLjgpK7gpL7gpKTgpYAg4KSw4KS+4KSW4KWN4KSo4KWH4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpJXgpLngpL/gpLLgpY3gpK/gpYgg4KSG4KS14KS24KWN4KSv4KSVIOCkquCksOCljeCkqOClhyDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRWcG5TZXJ2aWNlIiBtc2dpZD0iNDcwODU5NjAyMTE2MTQ3MzI1NSI+IlZQTiDgpLjgpYfgpLXgpL7gpLjgpIHgpJcg4KSs4KS+4KSB4KSn4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSIyMDY3ODQ1NTY0NTgxNjkzOTA1Ij4i4KSP4KSVIFZwbiDgpLjgpYfgpLXgpL7gpJXgpYsg4KSJ4KSa4KWN4KSaIOCkuOCljeCkpOCksOCkleCliyDgpJXgpYHgpLDgpL7gpJXgpL7gpKjgpYDgpLLgpL7gpIgg4KSq4KSV4KWN4KSV4KS+IOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KS44KSu4KS+4KSk4KWAIOCksOCkvuCkluCljeCkqOClh+CksuClhyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSV4KS54KS/4KSy4KWN4KSv4KWIIOCkhuCkteCktuCljeCkr+CklSDgpKrgpLDgpY3gpKjgpYcg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kV2FsbHBhcGVyIiBtc2dpZD0iODcxNjQwMDI3OTkzNzg1NjQ2MiI+IuCkj+CkieCkn+CkviDgpLXgpL7gpLLgpKrgpYfgpKrgpLDgpK7gpL4g4KSs4KS+4KSB4KSn4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFdhbGxwYXBlciIgbXNnaWQ9IjcxMDg0Mjg2OTI1OTU0OTE2NjgiPiLgpLXgpL7gpLLgpKrgpYfgpKrgpLDgpJXgpYsg4KSu4KS+4KSl4KS/4KSy4KWN4KSy4KWLIOCkuOCljeCkpOCksOCkleCliyDgpIfgpKjgpY3gpJ/gpLDgpKvgpYfgpLjgpK7gpL4g4KSs4KS+4KSB4KSn4KWN4KSoIOCkp+CkvuCksOCkleCksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSV4KS54KS/4KSy4KWN4KSv4KWIIOCkhuCkteCktuCljeCkr+CklSDgpKrgpLDgpY3gpKbgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjU2OTc5ODc3NTk4OTczNjcwOTkiPiLgpI/gpIngpJ/gpL4g4KS14KS/4KSc4KWH4KSfIOCkuOClh+CkteCkvuCkuOCkgeCklyDgpLjgpILgpJfgpKDgpL/gpKQg4KS54KWB4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFJlbW90ZVZpZXdzIiBtc2dpZD0iNDcxNzk4NzgxMDEzNzY5MjU3MiI+IuCkj+CkieCkn+CkviDgpLXgpL/gpJzgpYfgpJ8g4KS44KWH4KS14KS+4KSV4KWLIOCkieCkmuCljeCkmiDgpLjgpY3gpKTgpLDgpJXgpYsg4KSH4KSo4KWN4KSf4KSw4KSr4KWH4KS44KSy4KS+4KSIIOCkquCkleCljeCkleCkviDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkuOCkruCkvuCkpOClgCDgpLDgpL7gpJbgpY3gpKjgpYfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpKfgpL7gpLDgpKMg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkleCkueCkv+CksuCljeCkr+CliCDgpIbgpLXgpLbgpY3gpK/gpJUg4KSq4KSw4KWN4KSo4KWHIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZERldmljZUFkbWluIiBtc2dpZD0iODcwNDk4NjE2MzcxMTQ1NTAxMCI+IuCkieCkquCkleCksOCko+CkleCliyDgpKrgpY3gpLDgpKzgpKjgpY3gpKfgpLjgpIHgpJcg4KSF4KSo4KWN4KSk4KSw4KSV4KWN4KSw4KS/4KSv4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9IjU2OTcxNTQxOTU0MzkwNzkzMCI+IuCkieCkquCkleCksOCkoyDgpKrgpY3gpLDgpLbgpL7gpLjgpJUg4KSy4KS+4KSIIOCkhuCktuCkryDgpKrgpKDgpL7gpIngpKgg4KS44KSu4KS+4KSk4KWAIOCksOCkvuCkluCljeKAjeCkqOClh+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkleCkueCkv+CksuCljeCkr+CliCDgpKrgpKjgpYAg4KSG4KS14KS24KWN4KSv4KSVIOCkquCksOCljeCkpuCliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNDI0ODgyODkwMDA0NTgwODcyMiI+IuCkj+CkieCkn+CkviDgpIngpKrgpJXgpLDgpKMg4KS14KWN4KSv4KS14KS44KWN4KSl4KS+4KSq4KSVIOCkpeCkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KS14KS+IOCkueCkn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZURldmljZUFkbWlucyIgbXNnaWQ9IjUwMjU2MDgxNjc3MDk5NDI0ODUiPiLgpLngpYvgpLLgpY3gpKHgpLDgpLLgpL7gpIgg4KS44KSV4KWN4KSw4KS/4KSvIOCkieCkquCkleCksOCkoyDgpLXgpY3gpK/gpLXgpLjgpY3gpKXgpL7gpKrgpJXgpLngpLDgpYIg4KSl4KSqIOCkl+CksOCljeCkqCDgpLXgpL4g4KS54KSf4KS+4KSJ4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSV4KS54KS/4KSy4KWN4KSv4KWIIOCkquCkqOCkvyDgpIbgpLXgpLbgpY3gpK/gpJUg4KSo4KS54KWB4KSoIOCkuOCkleCljeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0T3JpZW50YXRpb24iIG1zZ2lkPSIzMzY1OTQ3NzE3MTYzODY2ODQ0Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCkheCkreCkv+CkruClgeCkluCkv+CkleCksOCkoyDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0T3JpZW50YXRpb24iIG1zZ2lkPSIzMDQ2MTI2NjE5MzE2NjcxNDc2Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkleClgeCkqOCliCDgpKrgpKjgpL8g4KS44KSu4KSv4KSu4KS+IOCkuOCljeCkleCljeCksOCkv+CkqOCkleCliyDgpKrgpLDgpL/gpJXgpY3gpLDgpK7gpKMg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkleCkueCkv+CksuClhyDgpKrgpKjgpL8g4KSG4KS14KS24KWN4KSv4KSVIOCkqOCkquCksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFBvaW50ZXJTcGVlZCIgbXNnaWQ9IjkxNzUzNzE2MTMzMjI1NjI5MzQiPiLgpLjgpJngpY3gpJXgpYfgpKTgpJUg4KSX4KSk4KS/IOCkrOCkpuCksuCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFBvaW50ZXJTcGVlZCIgbXNnaWQ9IjY4NjY1NjMyMzQyNzQxMDQyMzMiPiLgpJXgpYHgpKjgpYgg4KSq4KSo4KS/IOCkuOCkruCkr+CkruCkviDgpK7gpL7gpIngpLgg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqCDgpLXgpL4g4KSf4KWN4KSw4KS+4KSV4KSq4KWN4KSv4KS+4KShIOCkuOCkguCkleClh+CkpOCkleCkleCliyDgpJfgpKTgpL8g4KSs4KSm4KSy4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkleCkueCkv+CksuCljeCkr+CliCDgpKjgpJrgpL7gpLngpL/gpKgg4KS44KSV4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9IjQ3Nzg3MzE3MDM2MDA5MDkzNDAiPiLgpJXgpL/gpKzgpYvgpLDgpY3gpKEg4KSy4KWH4KSG4KSJ4KSfIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9Ijg0ODAwMTY3NzExMzQxNzU4NzkiPiLgpJXgpL/gpKzgpYvgpLDgpY3gpKEg4KSy4KWH4KSG4KSJ4KSf4KSy4KS+4KSIIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KS44KS+4KSv4KSmIOCkleCkueCkv+CksuCljeCkr+CliCDgpIbgpLXgpLbgpY3gpK/gpJUg4KSq4KSw4KWN4KSo4KWHIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2lnbmFsUGVyc2lzdGVudFByb2Nlc3NlcyIgbXNnaWQ9IjQ1MzkwMDI5OTE5NDczNzY2NTkiPiJMaW51eCDgpLjgpILgpJXgpYfgpKTgpLngpLDgpYIg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkquCkoOCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0ODk2OTkyMDc5MTgyNjQ5MTQxIj4i4KS44KSs4KWIIOCkmuCksuCkv+CksOCkueClh+CkleCkviDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL7gpLngpLDgpYLgpK7gpL4g4KSq4KSg4KS+4KSH4KSP4KSV4KS+IOCkuOCkguCkleClh+CkpOCksuCkvuCkiCDgpIXgpKjgpYHgpLDgpYvgpKcg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyc2lzdGVudEFjdGl2aXR5IiBtc2dpZD0iODg0MTExMzYyNzk1NTU2MzkzOCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiDgpJzgpLngpL/gpLLgpYcg4KSq4KSo4KS/IOCkmuCksuCljeCkqOClhyDgpKzgpKjgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg1MjUxODkyNzIzMjkwODYxMzciPiLgpK/gpLjgpJXgpYsg4KSG4KSr4KWN4KSo4KWIIOCkruClh+CkruCli+CksOClgOCkruCkviDgpKbgpYPgpKIg4KSt4KSP4KSV4KWL4KSV4KWLIOCkheCkguCktiDgpKzgpKjgpL7gpIngpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CksuCkvuCkiCDgpKLgpL/gpLLgpYsg4KSX4KSw4KS+4KSJ4KSB4KSm4KWIIOCkl+CksOClh+CkleCkviDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkuOClgOCkruCkv+CkpCDgpK7gpL7gpKTgpY3gpLDgpL7gpK7gpL4g4KSv4KS44KSy4KWHIOCkruClh+CkruCli+CksOClgCDgpIngpKrgpLLgpKzgpY3gpKcg4KSX4KSw4KS+4KSJ4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcnNpc3RlbnRBY3Rpdml0eSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQzODQ3NjAwNDc1MDgyNzgyNzIiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSu4KWH4KSu4KWL4KSw4KWA4KSu4KS+IOCkhuCkq+CliOCkguCkleCliyDgpKjgpL/gpLDgpKjgpY3gpKTgpLDgpJXgpYsg4KSF4KSC4KS2IOCkrOCkqOCkvuCkieCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpKvgpYvgpKjgpLLgpL7gpIgg4KSi4KS/4KSy4KS+IOCkrOCkqOCkvuCkj+CksCDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSu4KS+IOCkruClh+CkruCli+CksOClgCBTSU3gpL/gpKQg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkpuCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSIxODQzODUxMjk1Mzc3MDU5MzgiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KSu4KWH4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSI3NDExNDgwMjc1MTY3MjA1MDgxIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkj+CkqOCljeCkoeCljeCksOCli+Ckh+CkoSDgpKrgpY3gpK/gpL7gpJXgpYfgpJzgpLngpLDgpYIg4KSu4KWH4KSf4KS+4KSJ4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpK/gpLjgpLLgpL7gpIgg4KSu4KS54KSk4KWN4KSk4KWN4KS14KSq4KWC4KSw4KWN4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiDgpK7gpYfgpJ/gpL7gpIngpKgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NsZWFyQXBwVXNlckRhdGEiIG1zZ2lkPSIyNzQxMDkxOTE4NDU4NDI3NTYiPiLgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSV4KWLIOCkoeClh+Ckn+CkviDgpK7gpYfgpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcFVzZXJEYXRhIiBtc2dpZD0iNDYyNTMyMzY4NDEyNTQ1OTQ4OCI+IuCkquCljeCksOCkr+Ckl+CkleCksOCljeCkpOCkviDgpKHgpYfgpJ/gpL4g4KS54KSf4KS+4KSJ4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZWxldGVDYWNoZUZpbGVzIiBtc2dpZD0iMzEyODY2NTU3MTgzNzQwODY3NSI+IuCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSV4KWN4KSv4KS+4KS44KS54KSw4KWCIOCkruClh+Ckn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RlbGV0ZUNhY2hlRmlsZXMiIG1zZ2lkPSIzODEyOTk4NTk5MDA2NzMwMTk2Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkleCljeCkr+CkvuCkuCDgpKvgpL7gpIfgpLLgpLngpLDgpYIg4KSu4KWH4KSf4KS+4KSJ4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFBhY2thZ2VTaXplIiBtc2dpZD0iNzQ3MjkyMTc2ODM1Nzk4MTk4NiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSg4KS+4KSJ4KSB4KSV4KWLIOCkruCkvuCkquCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9IjM5MjEwNjgxNTQ0MjA3MzgyOTYiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSv4KS44KSV4KWLIOCkleCli+CkoSwg4KSh4KWH4KSf4KS+LCDgpLAg4KSV4KWN4KSv4KS+4KS4IOCkhuCkleCkvuCksOCkueCksOClgiDgpKrgpYHgpKjgpIPgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxQYWNrYWdlcyIgbXNnaWQ9IjIxOTkxMjg0ODI4MjAzMDY5MjQiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KS44KS/4KSn4KWIIOCkuOCljeCkpeCkvuCkquCkqOCkviDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnN0YWxsUGFja2FnZXMiIG1zZ2lkPSI1NjI4NTMwOTcyNTQ4MDcxMjg0Ij4i4KSo4KSv4KS+4KSBIOCkuOCljeCkpeCkvuCkquCkqOCkviDgpJfgpLDgpY3gpKgg4KS14KS+IOCkj+CkqOCljeCkoeCljeCksOCli+Ckh+CkoSDgpKrgpY3gpK/gpL7gpJXgpYfgpJzgpLngpLDgpYIg4KSF4KSm4KWN4KSv4KS+4KS14KSn4KS/4KSVIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkr+CkuOCksuCkvuCkiCDgpK7gpKjgpKrgpLDgpYAg4KSw4KWC4KSq4KSu4KS+IOCktuCkleCljeCkpOCkv+CktuCkvuCksuClgCDgpIXgpKjgpYHgpK7gpKTgpL/gpLngpLDgpYIg4KSt4KSP4KSV4KS+IOCkqOCkr+CkvuCkgSDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KSl4KSq4KWN4KSoIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jbGVhckFwcENhY2hlIiBtc2dpZD0iNzQ4NzI3OTM5MTcyMzUyNjgxNSI+IuCkuOCkrOCliCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSV4KWN4KSv4KS+4KS4IOCkoeClh+Ckn+CkviDgpK7gpYfgpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4OTc0NjQwODcxOTQ1NDM0NTY1Ij4i4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpJXgpY3gpK/gpL7gpLgg4KSh4KS+4KSH4KSw4KWH4KSV4KWN4KSf4KSw4KWA4KS54KSw4KWC4KSu4KS+IOCkq+CkvuCkh+CksuCkueCksOClgiDgpLngpJ/gpL7gpI/gpLAg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSV4KWLIOCkreCko+CljeCkoeCkvuCksOCkoyDgpJbgpL7gpLLgpYAg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkieCkqOClgOCkueCksOClguCksuClhyDgpIbgpKvgpY3gpKjgpYsg4KSh4KWH4KSf4KS+IOCkquClgeCkqOCkg+CkrOCkueCkvuCksuClgCDgpJfgpLDgpY3gpKgg4KSq4KSw4KWN4KSo4KWHIOCkueClgeCkqOCkvuCksuClhyDgpK/gpLjgpLLgpYcg4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpLjgpY3gpJ/gpL7gpLDgpY3gpJ8g4KS54KWB4KSoIOCkqOCkv+CkleCliCDgpKLgpL/gpLLgpYsg4KSX4KSw4KS+4KSJ4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NsZWFyQXBwQ2FjaGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNDU5NDQxMDIxOTU2NDM2Nzc5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSV4KWN4KSv4KS+4KS4IOCkoeCkvuCkh+CksOClh+CkleCljeCkn+CksOClgOCkruCkviDgpKvgpL7gpIfgpLLgpLngpLDgpYIg4KSu4KWH4KSf4KS+4KSP4KSwIOCkq+Cli+CkqCDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSW4KS+4KSy4KWAIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkrOCkouClgCDgpKLgpL/gpLLgpL4g4KS44KWB4KSw4KWBIOCkl+CksOCkvuCkieCkgeCkmyDgpJXgpL/gpKjgpJXgpL8g4KSk4KS/4KSo4KWA4KS54KSw4KWC4KSy4KWHIOCkhuCkq+CljeCkqOCliyDgpKHgpYfgpJ/gpL4g4KSq4KWB4KSo4KSD4KSq4KWN4KSw4KS+4KSq4KWN4KSk4KS/IOCkl+CksOCljeCkqCDgpIbgpLXgpLbgpY3gpK/gpJUg4KSq4KSw4KWN4KSo4KWHIOCkueClgeCkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW92ZVBhY2thZ2UiIG1zZ2lkPSIzMjg5ODkwMjcxNjQ1OTIxNDExIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkuOCljeCksOCli+CkpOCkueCksOClgiDgpLjgpL7gpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3ZlUGFja2FnZSIgbXNnaWQ9IjMxOTU2MjIxNzc3ODI0NDUyNCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpLjgpY3gpLDgpYvgpKTgpLngpLDgpYIg4KSG4KSo4KWN4KSk4KSw4KS/4KSV4KSs4KS+4KSfIOCkrOCkvuCkueCljeCkryDgpK7gpYfgpKHgpL/gpK/gpL7gpK7gpL4g4KSwIOCkteCkv+CkquCksOCkv+CkpOCkruCkviDgpLLgpYjgpJzgpL7gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRMb2dzIiBtc2dpZD0iNjYxNTc3ODU0MzE5ODk2NzYxNCI+IuCkuOCkguCkteClh+CkqOCktuClgOCksiDgpLLgpJcg4KSh4KWH4KSf4KS+IOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MjA2MTMxMzI5MzQ1NTE1MSI+IuCkquCljeCksOCko+CkvuCksuClgOCkleCkviDgpLXgpL/gpK3gpL/gpKjgpY3gpKgg4KSr4KS+4KSH4KSy4KS54KSw4KWC4KSs4KS+4KSfIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpK7gpY3gpK3gpL7gpLXgpY3gpK8g4KSw4KWC4KSq4KSu4KS+IOCkteCljeCkr+CkleCljeCkpOCkv+Ckl+CkpCDgpLAg4KSo4KS/4KSc4KWAIOCkuOClguCkmuCkqOCkvuCkuOCkueCkv+CkpCDgpKTgpKrgpL7gpIjgpIEg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KS44KSB4KSXIOCkleClhyDgpJfgpLDgpL/gpLDgpLngpKjgpYEg4KSt4KSP4KSV4KWLIOCkmyDgpK3gpKjgpY3gpKjgpYcg4KSs4KS+4KSw4KWH4KSV4KWLIOCkuOCkvuCkp+CkvuCksOCkoyDgpLjgpYLgpJrgpKjgpL4g4KSq4KSk4KWN4KSk4KS+IOCksuCkl+CkvuCkieCkqCDgpK/gpLjgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjA2MzQzODE0MDI0MTU2MDQ0MyI+IuCkquCljeCksOCko+CkvuCksuClgOCkleCkviDgpLXgpL/gpK3gpL/gpKjgpY3gpKgg4KSr4KS+4KSH4KSy4KS54KSw4KWC4KSs4KS+4KSfIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpK7gpY3gpK3gpL7gpLXgpY3gpK8g4KSw4KWC4KSq4KSu4KS+IOCkteCljeCkr+CkleCljeCkpOCkv+Ckl+CkpCDgpLAg4KSo4KS/4KSc4KWAIOCkuOClguCkmuCkqOCkvuCkuOCkueCkv+CkpCDgpKTgpKrgpL7gpIjgpIEg4KSr4KWL4KSo4KS44KSB4KSXIOCkleClhyDgpJfgpLDgpL/gpLDgpLngpKjgpYEg4KSt4KSP4KSV4KWLIOCkmyDgpK3gpKjgpY3gpKjgpYcg4KSs4KS+4KSw4KWH4KSV4KWLIOCkuOCkvuCkp+CkvuCksOCkoyDgpLjgpYLgpJrgpKjgpL4g4KSq4KSk4KWN4KSk4KS+IOCksuCkl+CkvuCkieCkqCDgpK/gpLjgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjcxNTgwNTU1NTgyMzg4MTgxOCI+IuCkquCkm+CkvuCkoeCkvyDgpKzgpJzgpL7gpIngpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkleClgeCkqOCliCDgpK7gpL/gpKHgpL/gpK/gpL4g4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI4MjgzOTEyNDg4NDMzMTg5MDEwIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkquCljeCksuClh+CkrOCljeCkr+CkvuCklSDgpKHgpL/gpJXgpYvgpKEg4KSX4KSw4KWN4KSoIOCkleClgeCkqOCliCDgpKrgpKjgpL8g4KS44KWN4KSl4KS+4KSq4KS/4KSkIOCkruCkv+CkoeCkv+Ckr+CkviDgpKHgpL/gpJXgpYvgpKHgpLAg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VDYUNlcnRpZmljYXRlcyIgbXNnaWQ9IjE2NzgzOTE4OTY3ODY4ODIwMTQiPiLgpLXgpL/gpLbgpY3gpLXgpLjgpKjgpYDgpK8g4KSq4KWN4KSw4KSu4KS+4KSj4KS54KSw4KWCIOCkquCljeCksOCkrOCkqOCljeCkpyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VDYUNlcnRpZmljYXRlcyIgbXNnaWQ9IjQwMTU2NDQwNDcxOTY5MzcwMTQiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIggQ0Eg4KSq4KWN4KSw4KSu4KS+4KSj4KSq4KSk4KWN4KSw4KS54KSw4KWCIOCkteCkv+CktuCljeCkteCkuOCkqOClgOCkryDgpKrgpY3gpLDgpK7gpL7gpKPgpLngpLDgpYLgpJXgpL4g4KSw4KWC4KSq4KSu4KS+IOCkuOCljeCkpeCkvuCkquCkqOCkviDgpJfgpLDgpY3gpKgg4KSwIOCkueCkn+CkvuCkieCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kaWFnbm9zdGljIiBtc2dpZD0iODA3Njc0Mzk1MzkwODAwMDM0MiI+ImRpYWcg4KSV4KWLIOCkuOCljeCkteCkvuCkruCkv+CkpOCljeCkteCkruCkviDgpLDgpLngpYfgpJXgpYsg4KS44KSC4KS44KS+4KSn4KSo4KS54KSw4KWC4KSu4KS+IOCkquCkouCljeCkqOClgeCkueCli+CkuOCljS/gpLLgpYfgpJbgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kaWFnbm9zdGljIiBtc2dpZD0iNjYwODI5NTY5MjAwMjQ1MjI4MyI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCBkaWFnIOCkuOCkruClguCkueCkpuCljeCkteCkvuCksOCkviDgpLjgpY3gpLXgpL7gpK7gpL/gpKTgpY3gpLUg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkleClgeCkqOCliCDgpKrgpKjgpL8g4KS44KWN4KSw4KWL4KSk4KS54KSw4KWC4KSu4KS+IOCkquCkouCljeCkqCDgpLAg4KSy4KWH4KSW4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJs7IOCkieCkpuCkvuCkueCksOCko+CkleCliyDgpLLgpL7gpJfgpL8sIC9kZXYgIOCkruCkviDgpKvgpL7gpIfgpLLgpLngpLDgpYLgpaQg4KSv4KS44KSy4KWHIOCkuOCkruCljeCkreCkteCkpOCkgyDgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KS44KWN4KSl4KS/4KSw4KSk4KS+IOCksCDgpLjgpYHgpLDgpJXgpY3gpLfgpL7gpK7gpL4g4KSq4KWN4KSw4KSt4KS+4KS1IOCkquCkvuCksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQg4KSv4KWLIOCkleClh+CkteCksiDgpKjgpL/gpLDgpY3gpK7gpL7gpKTgpL4g4KS14KS+IOCkuOCkguCkmuCkvuCksuCkleCkpuCljeCkteCkvuCksOCkviDgpLngpL7gpLDgpY3gpKHgpLXgpYfgpK/gpLAt4KSo4KS/4KSw4KWN4KSm4KS/4KS34KWN4KSf4KSV4KWLIOCksuCkvuCkl+CkvyDgpKrgpY3gpLDgpK/gpYvgpJcg4KS54KWB4KSoIOCkuOCkleCljeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlQ29tcG9uZW50U3RhdGUiIG1zZ2lkPSI2MzM1NTc2Nzc1NzExMDk1OTMxIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkheCkguCktuCkueCksOClgiDgpLjgpJXgpY3gpLfgpK4g4KS14KS+IOCkheCkleCljeCkt+CkriDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODg4NzQzNTc0MDk4MjIzNzI5NCI+IuCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KS44KSV4KWN4KS34KSuIOCkmyDgpLXgpL4g4KSb4KWI4KSoIOCkreCkqOCljeCkqOClhyDgpJXgpYHgpLDgpL7gpJXgpYsg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSu4KS54KSk4KWN4KSk4KWN4KS14KSq4KWC4KSw4KWN4KSjIOCkq+Cli+CkqCDgpLjgpJXgpY3gpLfgpK7gpKTgpL4g4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCli+Ckl+CkueCksOClguCksuClhyDgpIXgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KWN4KSoIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIOCkr+CliyDgpIXgpKjgpYHgpK7gpKTgpL/gpLjgpIHgpJfgpYgg4KS54KWL4KS44KS/4KSv4KS+4KSw4KWAIOCkheCkquCkqOCkvuCkieCkqOClgSDgpKrgpLDgpY3gpJssIOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpLXgpL/gpLfgpK8g4KS44KWC4KSa4KWA4KSu4KS+IOCkquCljeCksOCkr+Cli+CklyDgpKjgpLngpYHgpKjgpYcsIOCkheCkuOCkguCkl+CkpCwg4KSF4KS44KWN4KSl4KS/4KSwIOCkheCkteCkuOCljeCkpeCkviDgpK3gpI/gpJXgpYsg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkueClgeCkqOClhyDgpLjgpK7gpY3gpK3gpL7gpLXgpKjgpL4g4KS54KWB4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODI3MjMyNDg0NDE2NTA1NjE1Ij4i4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpIXgpILgpLYg4KS44KSV4KWN4KS34KSuIOCkmyDgpLXgpL4g4KSb4KWI4KSoIOCkreCkqOCljeCkqOClh+CkruCkviDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK7gpLngpKTgpY3gpKTgpY3gpLXgpKrgpYLgpLDgpY3gpKMg4KSr4KWL4KSoIOCkuOCkleCljeCkt+CkruCkpOCkviDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkheCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpY3gpKgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpKjgpY3gpaQg4KSv4KWLIOCkheCkqOClgeCkruCkpOCkv+CkuOCkgeCkl+CliCDgpLngpYvgpLjgpL/gpK/gpL7gpLDgpYAg4KSF4KSq4KSo4KS+4KSJ4KSo4KWBIOCkquCksOCljeCkmywg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkteCkv+Ckt+CkryDgpLjgpYLgpJrgpYDgpK7gpL4g4KSq4KWN4KSw4KSv4KWL4KSXIOCkqOCkueClgeCkqOClhywg4KSF4KS44KSC4KSX4KSkLCDgpIXgpLjgpY3gpKXgpL/gpLAg4KSF4KS14KS44KWN4KSl4KS+IOCkreCkj+CkleCliyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KS54KWB4KSo4KWHIOCkuOCkruCljeCkreCkvuCkteCkqOCkviDgpLngpYHgpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dyYW50UmV2b2tlUGVybWlzc2lvbnMiIG1zZ2lkPSI0NjI3MzE1MzUxMDkzNTA4Nzk1Ij4i4KSF4KSo4KWB4KSu4KSk4KS/4KS54KSw4KWCIOCkquCljeCksOCkpuCkvuCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KS14KS+IOCksOCkpuCljeCkpiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ncmFudFJldm9rZVBlcm1pc3Npb25zIiBtc2dpZD0iNDA4ODY0MjY1NDA4NTg1MDY2MiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpK/gpYsg4KS14KS+IOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkqOCkv+CksOCljeCkpuCkv+Ckt+CljeCknyDgpLjgpY3gpLXgpYDgpJXgpYPgpKTgpL/gpLngpLDgpYIg4KSq4KWN4KSw4KSm4KS+4KSoIOCkl+CksOCljeCkqCDgpLXgpL4g4KSw4KSm4KWN4KSmIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSv4KWLIOCkpOCkquCkvuCkiOCkguCksuClhyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSq4KWN4KSw4KSm4KS+4KSoIOCkqOCkl+CksOCljeCkqOClgeCkreCkj+CkleCkviDgpLjgpYHgpLXgpL/gpKfgpL7gpLngpLDgpYLgpK7gpL4g4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFByZWZlcnJlZEFwcGxpY2F0aW9ucyIgbXNnaWQ9Ijg0NjMxODE2Mjg2OTUzOTYzOTEiPiLgpLXgpL/gpLbgpYfgpLcg4KSw4KWC4KSq4KSu4KS+IOCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KS44KWH4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFByZWZlcnJlZEFwcGxpY2F0aW9ucyIgbXNnaWQ9IjQ5NzM5ODY3NjIyNDE3ODM3MTIiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSu4KSo4KSq4KSw4KWN4KSo4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkmuCksuCkv+CksOCkueClh+CkleCkviDgpKTgpYAg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KS54KSw4KWC4KSy4KS+4KSIIOCkmuClgeCkquCkmuCkvuCkqiDgpLDgpYLgpKrgpK7gpL4g4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpKjgpY0sIOCkpOCkquCkvuCkiOCkgeCkrOCkvuCknyDgpKjgpL/gpJzgpYAg4KSh4KWH4KSf4KS+IOCkuOCkguCkleCksuCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkreCkh+CksOCkueClh+CkleCliyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KWN4KSq4KWB4KSrIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU2V0dGluZ3MiIG1zZ2lkPSIyMjI2MTk1MjkwOTU1MjI0NzMwIj4i4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTZXR0aW5ncyIgbXNnaWQ9Ijc3NzU3MjM0NDE1NTg5MDcxODEiPiLgpKrgpY3gpLDgpKPgpL7gpLLgpYDgpJXgpL4g4KS44KWH4KSf4KS/4KSZIOCkoeClh+Ckn+CkvuCksuCkvuCkiCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkuOCkvuCkr+CkpiDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSq4KWN4KSw4KSj4KS+4KSy4KWA4KSV4KWLIOCkleCkqOCljeCkq+Ckv+Ckl+CksOClh+CkuOCkqOCksuCkvuCkiCDgpJXgpY3gpLfgpKTgpL8g4KSq4KWB4KSw4KWN4oCN4KSv4KS+4KSJ4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTZWN1cmVTZXR0aW5ncyIgbXNnaWQ9IjIwNDY3NjI1MTg3NjcxODI4OCI+IuCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNlY3VyZVNldHRpbmdzIiBtc2dpZD0iODE1OTUzNTYxMzAyMDEzNzM5MSI+IuCkquCljeCksOCko+CkvuCksuClgOCkleCliyDgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KS44KWH4KSf4KS/4KSZIOCkoeClh+Ckn+CkviDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCksuCkvuCkl+CkvyDgpLngpYvgpIfgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlR3NlcnZpY2VzIiBtc2dpZD0iMjE0OTQyNjY2NDIyNjE1MjE4NSI+Ikdvb2dsZSDgpLjgpYfgpLXgpL4g4KSo4KSV4KWN4KS44KS+IOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUdzZXJ2aWNlcyIgbXNnaWQ9IjEyODczMDk0Mzc2MzgzODAyMjkiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIggR29vZ2xlIOCkuOClh+CkteCkviDgpKjgpJXgpY3gpLjgpL7gpLngpLDgpYIg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpKbgpY3gpLXgpL7gpLDgpL7gpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCksuCkvuCkl+CkvyDgpLngpYvgpIfgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVCb290Q29tcGxldGVkIiBtc2dpZD0iNTMxMjk2NTU2NTk4NzgwMDAyNSI+IuCkuOCljeCkn+CkvuCksOCljeCkn+CkheCkquCkruCkviDgpJrgpLLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlQm9vdENvbXBsZXRlZCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzM5MDMwNDY2NDExNjg4MDcwNCI+IuCkhuCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KSs4KWB4KSfIOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkviDgpKrgpYLgpLDgpY3gpKMg4KS54KWB4KSo4KWHIOCkrOCkv+CkpOCkv+CkleCliCDgpIbgpKvgpYjgpLLgpL7gpIgg4KS44KWB4KSw4KWBIOCkl+CksOCljeCkqOClhyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KS44KWB4KSw4KWBIOCkl+CksOCljeCkqOCkruCkviDgpKLgpL/gpLLgpL4g4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkpuCkmyDgpLAg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkuOCkruCkl+CljeCksOCkruCkviDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KS44KSn4KWI4KSBIOCkmuCkvuCksuClgSDgpJfgpLDgpYfgpLAg4KSi4KS/4KSy4KS+IOCkrOCkqOCkvuCkieCkgeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVCb290Q29tcGxldGVkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTEzOTUwNTg5MTAyNjE3NTA0Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkquCljeCksOCko+CkvuCksuClgCDgpKzgpYHgpJ8g4KSX4KSw4KWAIOCkuOCkleClh+CkquCkm+CkvyDgpJzgpKTgpL8g4KS44KSV4KWN4KSm4KWLIOCkmuCkvuCkgeCkoeCliyDgpIbgpKvgpYjgpILgpK7gpL4g4KS44KWB4KSw4KWBIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpKvgpYvgpKgg4KS44KWB4KSw4KWBIOCkl+CksOCljeCkqOCkruCkviDgpKLgpL/gpLLgpL4g4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkpuCkmyDgpLAg4KSF4KSo4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkuOCkruCkl+CljeCksOCkruCkviDgpKvgpYvgpKgg4KS44KSn4KWI4KSBIOCkmuCkvuCksuClgSDgpJfgpLDgpYfgpLAg4KSi4KS/4KSy4KS+IOCkrOCkqOCkvuCkieCkgeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0U3RpY2t5IiBtc2dpZD0iNzkxOTEyNjM3MjYwNjg4MTYxNCI+IuCkuOCljeCkn+Ckv+CkleCkvyDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KSq4KSg4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3NzQ5NzYwNDk0Mzk5OTE1NjUxIj4i4KSU4KSq4KSa4KS+4KSw4KS/4KSVIOCkquCljeCksOCkuOCkvuCksOCko+CksuCkvuCkiCDgpKrgpKDgpL7gpIngpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkj+CkieCkn+CkviDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkmywg4KSc4KWB4KSoIOCkquCljeCksOCkuOCkvuCksOCkoyDgpLjgpK7gpL7gpKrgpY3gpKQg4KSt4KSP4KSq4KSb4KS/IOCkrOCkvuCkgeCkleClgCDgpLDgpLngpKjgpY3gpJvgpaQg4KSF4KSk4KWN4KSv4KS+4KSn4KS/4KSVIOCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpKfgpYfgpLDgpYgg4KSu4KWH4KSu4KWL4KSw4KWAIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpYfgpJXgpYsg4KSV4KS+4KSw4KSj4KSy4KWHIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CksuCkvuCkiCDgpKLgpL/gpLLgpYsg4KSwIOCkheCkuOCljeCkpeCkv+CksCDgpKzgpKjgpL7gpIngpKgg4KS44KSV4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjgyNTgwMzc2NDIzMjQ0NTA5MSI+IuCklOCkquCkmuCkvuCksOCkv+CklSDgpKrgpY3gpLDgpLjgpL7gpLDgpKPgpLLgpL7gpIgg4KSq4KSg4KS+4KSJ4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpI/gpJUg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJssIOCknOClgeCkqCDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KS44KSu4KS+4KSq4KWN4KSkIOCkreCkj+CkquCkm+CkvyDgpKzgpL7gpIHgpJXgpYAg4KSw4KS54KSo4KWN4KSb4KWkIOCkheCkpOCljeCkr+CkvuCkp+Ckv+CklSDgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpYcg4KSn4KWH4KSw4KWIIOCkruClh+CkruCli+CksOClgCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWH4KSV4KWLIOCkleCkvuCksOCko+CksuClhyDgpKvgpYvgpKjgpLLgpL7gpIgg4KSi4KS/4KSy4KWLIOCksCDgpIXgpLjgpY3gpKXgpL/gpLAg4KSs4KSo4KS+4KSJ4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENvbnRhY3RzIiBtc2dpZD0iODM0ODQ4MTEzMTg5OTg4NjEzMSI+IuCkpOCkquCkvuCkiOCkgeCkleCkviDgpLjgpK7gpY3gpKrgpLDgpY3gpJXgpLngpLDgpYIg4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENvbnRhY3RzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI1Mjk0ODY2ODU2OTQxMTQ5NjM5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkqOCkv+CksOCljeCkpuCkv+Ckt+CljeCknyDgpLXgpY3gpK/gpJXgpY3gpKTgpL/gpJfgpKTgpLjgpIHgpJcg4KSF4KSo4KWN4KSvIOCkpOCksOCkv+CkleCkvuCkueCksOClguCkrOCkvuCknyDgpJXgpLIg4KSX4KSw4KWN4KSo4KWBIOCkreCkj+CkleCkviwg4KSH4KSu4KWH4KSyIOCkl+CksOCljeCkqOClgSDgpK3gpI/gpJXgpL4g4KS14KS+IOCkheCkqOCljeCkpOCksOCljeCkleCljeCksOCkv+Ckr+CkviDgpJfgpLDgpY3gpKjgpYHgpK3gpI/gpJXgpL4g4KSG4KS14KWD4KSk4KS/4KS44KS54KS/4KSk4KSV4KWLIOCkpOCkquCkvuCkiOCkguCkleCliyDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpK7gpL4g4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkl+CksOCkv+Ckj+CkleCkviDgpLjgpK7gpY3gpKrgpLDgpY3gpJXgpLngpLDgpYLgpJXgpYsg4KSh4KWH4KSf4KS+IOCkquCkouCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CliyDgpIXgpKjgpYHgpK7gpKTgpL/gpLLgpYcg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkuOCkruCljeCkquCksOCljeCklSDgpKHgpYfgpJ/gpL4g4KSs4KSa4KSkIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSbLCDgpLAg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkrOCkv+CkqOCkviDgpLjgpK7gpY3gpKrgpLDgpY3gpJUg4KSh4KWH4KSf4KS+IOCkuOCkvuCkneClh+CkpuCkvuCksOClgCDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENvbnRhY3RzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODQ0MDY1NDE1MjQ1NzMwMDY2MiI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpLXgpL/gpLbgpYfgpLcg4KS14KWN4KSv4KSV4KWN4KSk4KS/4KS54KSw4KWC4KS44KSB4KSXIOCkheCksOCljeCkleCliyDgpKTgpLDgpL/gpJXgpL7gpKzgpL7gpJ8g4KSV4KSyIOCkl+CksOCljeCkqOClgeCkreCkj+CkleCkviwg4KSH4KSu4KWH4KSyIOCkl+CksOCljeCkqOClgeCkreCkj+CkleCkviDgpLXgpL4g4KS44KSC4KSa4KS+4KSwIOCkl+CksOCljeCkqOClgeCkreCkj+CkleCkviDgpIbgpLXgpYPgpKTgpL/gpLjgpLngpL/gpKQg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkq+Cli+CkqOCkruCkviDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSt4KSP4KSV4KS+IOCkoeClh+Ckn+CkvuCkleCliyDgpKzgpL7gpLDgpYfgpK7gpL4g4KSq4KSi4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpYsg4KSF4KSo4KWB4KSu4KSk4KS/4KSy4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KS44KSu4KWN4KSq4KSw4KWN4KSVIOCkoeClh+Ckn+CkviDgpKzgpJrgpKQg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSbLCDgpLAg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCknOCljeCknuCkvuCkqCDgpKzgpL/gpKjgpL4g4KSo4KWIIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KS44KS+4KSv4KSmIOCkuOCkruCljeCkquCksOCljeCklSDgpKHgpYfgpJ/gpL4g4KS44KS+4KSd4KWH4KSm4KS+4KSw4KWAIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ29udGFjdHMiIG1zZ2lkPSI1MTA3NDkyMDg2NDE2NzkzNTQ0Ij4i4KSk4KSq4KS+4KSI4KSB4KSV4KS+IOCkuOCkruCljeCkquCksOCljeCkleCkueCksOClgiDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDb250YWN0cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODk3MjQzOTMyNTIxOTUzNjAyIj4i4KSF4KSo4KWN4KSvIOCkpOCksOCkv+CkleCkvuCkleCkviDgpIbgpLXgpYPgpKTgpL/gpLngpLDgpYLgpLjgpIHgpJcg4KSc4KWB4KSoIOCkpOCkquCkvuCkiOCkgeCksuClhyDgpJXgpLIsIOCkh+CkruClh+Cksiwg4KS14KS+IOCkteCkv+CktuClh+CktyDgpLjgpK7gpY3gpKrgpLDgpY3gpJUg4KSX4KSw4KWN4KSo4KWB4KSt4KSP4KSV4KS+4KS44KS54KS/4KSkIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpK7gpL4g4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkreCkj+CkleCkviDgpLjgpK7gpY3gpKrgpLDgpY3gpJXgpLngpLDgpYLgpJXgpYsg4KSs4KS+4KSw4KWH4KSV4KWLIOCkoeClh+Ckn+CkvuCksuCkvuCkiCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLgg4KSF4KSo4KWB4KSu4KSk4KS/4KSy4KWHIOCkuOCkruCljeCkquCksOCljeCklSDgpKHgpYfgpJ/gpL7gpLLgpL7gpIgg4KSu4KWH4KSf4KS+4KSJ4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDb250YWN0cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU4OTg2OTIyNDYyNTE2MzU1OCI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpKzgpL7gpLDgpK7gpY3gpKzgpL7gpLAg4KSV4KSyIOCkl+CksOClh+CkleCkviwg4KSH4KSu4KWH4KSyIOCkl+CksOClh+CkleCkviwg4KS14KS+IOCkteCkv+CktuClh+CktyDgpLjgpK7gpY3gpKrgpLDgpY3gpJXgpLngpLDgpYLgpLjgpIHgpJcg4KS44KSe4KWN4KSa4KS+4KSwIOCkl+CksOClh+CkleCkviDgpLjgpLngpL/gpKQg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkq+Cli+CkqOCkruCkviDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSX4KSw4KWH4KSV4KS+IOCkpOCkquCkvuCkiOCkgeCkleCkviDgpLjgpK7gpY3gpKrgpLDgpY3gpJXgpLngpLDgpYIg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpYsg4KSF4KSo4KWB4KSu4KSk4KS/4KSy4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpK7gpY3gpKrgpLDgpY3gpJUg4KSh4KWH4KSf4KS+IOCkruClh+Ckn+CkvuCkieCkqCDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDYWxsTG9nIiBtc2dpZD0iMzQ3ODEzMzE4NDYyNDEwMjczOSI+IuCkleCksiDgpLLgpJcg4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGxMb2ciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM3MDA2NDUxODQ4NzA3NjAyODUiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkleCliyDgpJXgpLIg4KSy4KSXLCDgpIbgpJfgpK7gpKgg4KSwIOCkrOCkueCkv+CksOCljeCkl+CkruCkqCDgpJXgpLLgpLngpLDgpYIg4KSs4KS+4KSw4KWHIOCkoeClh+Ckn+CkviDgpLjgpLngpL/gpKTgpJXgpYsg4KSV4KSyIOCksuCklyDgpKrgpKLgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLgg4KSF4KSo4KWB4KSu4KSk4KS/4KSy4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSV4KSyIOCksuCklyDgpKHgpYfgpJ/gpL7gpLngpLDgpYLgpJXgpYsg4KSs4KSa4KSkIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSbLCDgpLAg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkrOCkv+CkqOCkviDgpKjgpYgg4KSv4KWLIOCkleCksiDgpLLgpJcg4KSh4KWH4KSf4KS+4KSy4KS+4KSIIOCkheCksOClguCkuOCkgeCklyDgpLjgpL7gpJ3gpYfgpKbgpL7gpLAg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDYWxsTG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTc3NzcyNTc5NjgxMzIxNzI0NCI+IuCkreCkv+CkpOCljeCksCDgpIbgpIngpKjgpYcg4KSwIOCkrOCkvuCkueCkv+CksCDgpJzgpL7gpKjgpYcg4KSV4KSy4KS54KSw4KWC4KS44KS54KS/4KSkIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpKvgpKjgpJXgpYsg4KSV4KSyIOCksuCklyDgpKrgpKLgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQgIOCkr+CliyDgpIXgpKjgpYHgpK7gpKTgpL/gpLLgpYcg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkpOCkquCkvuCkiOCkgeCkleCkviDgpJXgpLIg4KSy4KSXIOCkoeClh+Ckn+CkviDgpKzgpJrgpKQg4KSX4KSw4KWN4KSoIOCkpuCkv+CkqOCljeCkmyDgpLAg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSl4KS+4KS54KWIIOCkqOCkquCkvuCkiCDgpJXgpLIg4KSy4KSXIOCkoeClh+Ckn+CkvuCksuCkvuCkiCDgpLjgpL7gpJ3gpYfgpKbgpL7gpLDgpYAg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVDYWxsTG9nIiBtc2dpZD0iODU1MjA0NTY2NDc0MzQ5OTM1NCI+IuCkleCksiDgpLLgpJcg4KSy4KWH4KSW4KWN4oCN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxsTG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2NjYxODA2MDYyMjc0MTE5MjQ1Ij4i4KSG4KSX4KSu4KSoIOCkpOCkpeCkviDgpKzgpLngpLDgpY3gpJfgpK7gpKgg4KSh4KWH4KSf4KS+4KS44KS54KS/4KSkIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpJXgpYsg4KSV4KSyIOCksuCkl+CkleCliyDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSv4KS44KSy4KS+4KSIIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpJXgpLIg4KSy4KSXIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKgg4KS14KS+IOCkruClh+Ckn+CkvuCkieCkqCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsbExvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4Mzk0MTczNjM1Mjc4Nzg0MiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSr4KWL4KSo4KSV4KWLIOCkhuCkieCkqOClhyDgpLAg4KSs4KS+4KS54KS/4KSwIOCknOCkvuCkqOClhyDgpJXgpLLgpLngpLDgpYLgpJXgpYsg4KSs4KS+4KSw4KWH4KSV4KWLIOCkoeClh+Ckn+CkviDgpLjgpLngpL/gpKQg4KSV4KSyIOCksuCklyDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpK/gpLjgpLLgpL7gpIgg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkleCksiDgpLLgpJcg4KSu4KWH4KSf4KS+4KSJ4KSoIOCkteCkviDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkUHJvZmlsZSIgbXNnaWQ9IjQ3MDE4ODk4NTI2MTI3MTY2NzgiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSG4KSr4KWN4KSo4KWIIOCkuOCkruCljeCkquCksOCljeCklSDgpJXgpL7gpLDgpY3gpKEg4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFByb2ZpbGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NDYyNDc1MTUxODQ5ODg4ODQ4Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkpOCkquCkvuCkiOCkguCkleCliyDgpIngpKrgpJXgpLDgpKPgpK7gpL4g4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkl+CksOCkv+Ckj+CkleCkviDgpLXgpY3gpK/gpJXgpY3gpKTgpL/gpJfgpKQg4KSq4KWN4KSw4KWL4KSr4KS+4KSH4KSyIOCknOCkvuCkqOCkleCkvuCksOClgCDgpKrgpKLgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkmywg4KSc4KS44KWN4KSk4KWIIOCkpOCkquCkvuCkiOCkguCkleCliyDgpKjgpL7gpK4g4KSwIOCkuOCkruCljeCkquCksOCljeCklSDgpJzgpL7gpKjgpJXgpL7gpLDgpYDgpaQg4KSv4KS44KSV4KWLIOCkruCkpOCksuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpYcg4KSk4KSq4KS+4KSI4KSC4KSy4KS+4KSIIOCkquCkueCkv+CkmuCkvuCkqCDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSbIOCksCDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSq4KWN4KSw4KWL4KSr4KS+4KSH4KSyIOCknOCkvuCkqOCkleCkvuCksOClgCDgpIXgpLDgpYLgpLLgpL7gpIgg4KSq4KSg4KS+4KSJ4KSoIOCkuOCkleCljeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVQcm9maWxlIiBtc2dpZD0iOTA3NzkzNjI4Nzc3Mzk3NjQzIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkhuCkq+CljeCkqOCliCDgpLjgpK7gpY3gpKrgpLDgpY3gpJUg4KSV4KS+4KSw4KWN4KShIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVByb2ZpbGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NTUyMDg0Mjk0NTk4NDY1ODk5Ij4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkieCkquCkleCksOCko+CkruCkviDgpK3gpKPgpY3gpKHgpL7gpLAg4KSt4KSP4KSV4KWLIOCkteCljeCkr+CkvuCkleCljeCkpOCkv+Ckl+CkpCDgpKrgpY3gpLDgpYvgpKvgpL7gpIfgpLIg4KSc4KS+4KSo4KSV4KS+4KSw4KWALCDgpJzgpLjgpY3gpKTgpYgg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkqOCkvuCkriDgpLXgpL4g4KS44KSu4KWN4KSq4KSw4KWN4KSVIOCknOCkvuCkqOCkleCkvuCksOClgOCksuCkvuCkiCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSoIOCkteCkviDgpKXgpKrgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCkleCliyDgpK7gpKTgpLLgpKwg4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpKTgpKrgpL7gpIjgpIHgpLLgpL7gpIgg4KSa4KS/4KSo4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljSDgpLAg4KS44KS+4KSv4KSmIOCkheCkqOCljeCkr+CksuCkvuCkiCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSq4KWN4KSw4KWL4KSr4KS+4KSH4KSyIOCknOCkvuCkqOCkleCkvuCksOClgCDgpKrgpKDgpL7gpIngpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTI2ODkyMDk1NjE1MjQxOTE3MCI+IuCkpOCkquCkvuCkiOCkguCkleCliyDgpLjgpL7gpK7gpL7gpJzgpL/gpJUg4KS44KWN4KSf4KWN4KSw4KS/4KSuIOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MjU1NzA2MDI3MTcyMDUwODcyIj4i4KSk4KSq4KS+4KSI4KSBIOCksCDgpKTgpKrgpL7gpIjgpIHgpJXgpL4g4KS44KS+4KSl4KWA4KS54KSw4KWC4KSs4KS+4KSfIOCkuOCkvuCkruCkvuCknOCkv+CklSDgpIXgpKrgpKHgpYfgpJ/gpLLgpL7gpIgg4KSq4KS54KWB4KSB4KSaIOCksCDgpLjgpL/gpILgpJUg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KS44KS+4KSd4KWH4KSm4KS+4KSw4KWAIOCkl+CksOCljeCkpuCkviDgpLjgpL7gpLXgpKfgpL7gpKgg4KSw4KS54KSo4KWB4KS54KWL4KS44KWNICAtLSDgpLjgpK7gpL7gpJzgpL/gpJUg4KSo4KWH4KSf4KS14KSw4KWN4KSV4KS54KSw4KWC4KSu4KS+IOCkpOCkquCkvuCkiOCkgSDgpLAg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkuOCkvuCkpeClgOCkleCliyAg4KSs4KS/4KSa4KSu4KS+IOCkreCkj+CkleCkviDgpLjgpILgpJrgpL7gpLDgpLLgpL7gpIgg4KSq4KSi4KWN4KSoIOCkteCkv+CktuCljeCkteCkvuCkuOCkqOClgOCkr+CkpOCkviDgpKzgpYfgpJfgpLDgpYgg4KSv4KS44KSy4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkqOCli+Cknzog4KSv4KWLIOCkheCkqOClgeCkruCkpOCkvyDgpKzgpLLgpKrgpYLgpLDgpY3gpLXgpJUg4KS44KSs4KWIIOCkuOCkvuCkruCkvuCknOCkv+CklSDgpKjgpYfgpJ/gpLXgpLDgpY3gpJXgpLngpLDgpYLgpK7gpL4g4KS44KS+4KSv4KSmIOCkqOCkl+CksOCljeCkqCDgpLjgpJXgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzUwNDE3OTIyMjQ5MzIzNTY0NSI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpLjgpL7gpK7gpL7gpJzgpL/gpJUg4KSq4KWN4KSw4KS14KS+4KS54KSu4KS+IOCksuClh+CkluCljeKAjeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzA4NjU1NzU1MjIwNDExNDg0OSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KS44KS+4KSl4KWA4KS54KSw4KWC4KSs4KS+4KSfIOCkuOCkvuCkruCkvuCknOCkv+CklSDgpIXgpKrgpKHgpYfgpJ/gpLngpLDgpYIg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCknOCkvuCkqOCkleCkvuCksOClgCDgpLjgpL7gpJ3gpYfgpKbgpL7gpLDgpYAg4KSX4KSw4KWN4KSo4KWHIOCkrOClh+CksuCkvuCkruCkviDgpLngpYvgpLbgpL/gpK/gpL7gpLAg4KSw4KS54KSo4KWB4KS54KWL4KS44KWNIC0tIOCkr+CkuOCksuClhyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCkqOCkv+CksOCljeCkruCkvuCkoyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkmyDgpJzgpYHgpKgg4KS44KS+4KSl4KWA4KSs4KS+4KSfIOCkhuCkj+CkleCliyDgpKbgpYfgpJbgpL/gpKjgpY3gpJvgpaQg4KSf4KS/4KSq4KWN4KSq4KSj4KWAOiDgpK/gpYsg4KSF4KSo4KWB4KSu4KSk4KS/IOCkuOCkrOCliCDgpLjgpL7gpK7gpL7gpJzgpL/gpJUg4KS44KSe4KWN4KSc4KS+4KSy4KS54KSw4KWC4KSu4KS+IOCksuCkvuCkl+ClgiDgpKjgpLngpYHgpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2FsZW5kYXIiIG1zZ2lkPSI1OTcyNzI3NTYwMjU3NjEyMzk4Ij4i4KSX4KWL4KSq4KWN4KSvIOCknOCkvuCkqOCkleCkvuCksOClgCDgpLAg4KSq4KS+4KSk4KWN4KSw4KWLIOCkmOCkn+CkqOCkvuCkueCksOClgiDgpKrgpKLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsZW5kYXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQyMTY0NjIwNDkwNTc2NTg3MjMiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkruCkviDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSX4KSw4KS/4KSP4KSV4KS+IOCkpOClgCDgpLjgpL7gpKXgpYDgpLngpLDgpYIg4KS14KS+IOCkuOCkueCkr+Cli+Ckl+ClgOCkueCksOClgiDgpLjgpLngpL/gpKTgpJXgpYsg4KSq4KS+4KSk4KWN4KSw4KS+4KSV4KS+IOCkleCkvuCksOCljeCkr+CkleCljeCksOCkruCkueCksOClgiDgpKrgpKLgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLjgpLLgpYcg4KSX4KWL4KSq4KSo4KWA4KSv4KSk4KS+IOCkteCkviDgpLjgpILgpLXgpYfgpKbgpKjgpLbgpYDgpLLgpKTgpL4g4KSs4KS/4KSo4KS+IOCkquCkqOCkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkquCkvuCkpOCljeCksOCkvuCkleCkviDgpKHgpYfgpJ/gpL4g4KS44KS+4KSd4KWH4KSm4KS+4KSw4KWAIOCkl+CksOCljeCkqCDgpLXgpL4g4KSs4KSa4KSkIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGVuZGFyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzQzNDU0ODY4MjQ3MDg1MTU4MyI+IuCkpOClgCDgpLjgpL7gpKXgpYDgpLngpLDgpYIg4KS14KS+IOCkuOCkueCkleCksOCljeCkruClgOCkueCksOClguCkuOCkueCkv+CkpCDgpLjgpKzgpYgg4KSq4KS+4KSk4KWN4KSw4KWLIOCkmOCkn+CkqOCkvuCkueCksOClgiDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSu4KS+IOCkreCko+CljeCkoeCkvuCksOCkoyDgpK3gpI/gpJXgpL7gpLLgpL7gpIgg4KSq4KSi4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSq4KS+4KSk4KWN4KSw4KWLIOCkoeClh+Ckn+CkviDgpK/gpLjgpLLgpYcg4KS44KS+4KSv4KSmIOCkuOClh+Ckr+CksCDgpJfgpLDgpY3gpKgg4KS14KS+IOCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkteCkv+CktuCljeCkteCkvuCkuOCkqOCkv+Ckr+CkpOCkviDgpLXgpL4g4KS44KSu4KWN4KS14KWH4KSm4KSo4KS24KWA4KSy4KSk4KS+IOCkrOCkv+CkqOCkviDgpKjgpYgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ2FsZW5kYXIiIG1zZ2lkPSI4NDM4ODc0NzU1MTkzODI1NjQ3Ij4i4KSq4KS+4KSk4KWN4KSw4KWLIOCkmOCkn+CkqOCkvuCkueCksOClgiDgpKXgpKrgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KS14KS+IOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KSwIOCkruCkvuCksuCkv+CkleCkleCliyDgpJzgpY3gpJ7gpL7gpKgg4KSs4KS/4KSo4KS+IOCkqOCliCDgpKrgpL7gpLngpYHgpKjgpL7gpLngpLDgpYLgpLLgpL7gpIgg4KSH4KSu4KWH4KSyIOCkquCkoOCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsZW5kYXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY2NzkwMzU1MjAxMTM2Njg1MjgiPiLgpKTgpYAg4KS44KS+4KSl4KWA4KS54KSw4KWCIOCkteCkviDgpLjgpLngpJXgpLDgpY3gpK7gpYDgpLngpLDgpYLgpLjgpLngpL/gpKTgpJXgpL4g4KSY4KSf4KSo4KS+4KS54KSw4KWCIOCknOCkuOCksuCkvuCkiCDgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSG4KSr4KWN4KSo4KWLIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkruCkviDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkqOClhyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLjgpLLgpYcg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpJzgpYHgpKgg4KSq4KS+4KSk4KWN4KSw4KS+4KSV4KWLIOCkruCkvuCksuCkv+CkleCkueCksOClguCkrOCkvuCknyDgpIbgpI/gpJXgpL4g4KSm4KWH4KSW4KS/4KSo4KWH4KSy4KS+4KSIIOCkquCkoOCkvuCkieCkqOClhyDgpLXgpL4g4KSu4KS+4KSy4KS/4KSV4KS54KSw4KWC4KSV4KWLIOCknOCljeCknuCkvuCkqCDgpKzgpYfgpJfgpLAg4KSY4KSf4KSo4KS+4KSy4KS+4KSIIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKjgpYcg4KSF4KSo4KWB4KSu4KS/4KSkIOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMzI0NDY5NDk2MzI3MjQ5Mzc2Ij4i4KSk4KWAIOCkuOCkvuCkpeClgOCkueCksOClgiDgpLXgpL4g4KS44KS54KSV4KSw4KWN4KSu4KWA4KS54KSw4KWC4KS44KS54KS/4KSkIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpKvgpYvgpKjgpJXgpL4g4KSY4KSf4KSo4KS+4KS54KSw4KWCIOCknOCkuOCksuCkvuCkiCDgpKXgpKrgpY3gpKgsIOCkueCkn+CkvuCkieCkqCDgpLAg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqCAg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSq4KS+4KSk4KWN4KSw4KWLIOCkruCkvuCksuCkv+CkleCkrOCkvuCknyDgpKbgpYfgpJbgpL4g4KSq4KSw4KWH4KSV4KS+IOCkteCkviDgpK7gpL7gpLLgpL/gpJXgpJXgpYsg4KSc4KWN4KSe4KS+4KSoIOCkrOCkv+CkqOCkviDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSt4KSP4KSV4KS+IOCkmOCkn+CkqOCkvuCkueCksOClgiDgpLjgpKjgpY3gpKbgpYfgpLYg4KSq4KSg4KS+4KSJ4KSoIOCkr+CkuOCksuClhyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqCDgpLjgpJXgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc01vY2tMb2NhdGlvbiIgbXNnaWQ9Ijg2ODgzMzQ5NzQwMzY4MjMzMzAiPiLgpKrgpLDgpYDgpJXgpY3gpLfgpKPgpJXgpYsg4KSy4KS+4KSX4KS/IOCkuOCljeCkpeCkvuCkqCDgpLjgpY3gpLDgpYvgpKTgpLngpLDgpYIg4KSu4KSVIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc01vY2tMb2NhdGlvbiIgbXNnaWQ9IjU4MDg3MTEwMzk0ODIwNTE4MjQiPiLgpKrgpLDgpYDgpJXgpY3gpLfgpKPgpJXgpYsg4KSy4KS+4KSX4KS/IOCkruCklSDgpLjgpY3gpKXgpL7gpKgg4KS44KWN4KSw4KWL4KSk4KS54KSw4KWCIOCkuOCkv+CksOCljeCknOCkqOCkviDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KS14KS+IOCkqOCkr+CkvuCkgSDgpLjgpY3gpKXgpL7gpKgg4KSq4KWN4KSw4KSm4KS+4KSv4KSVIOCkuOCljeCkpeCkvuCkquCkqOCkviDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQg4KSv4KS44KSy4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpY3gpKXgpL7gpKjgpK7gpL4g4KST4KSt4KSw4KSw4KS+4KSH4KShIOCkl+CksOCljeCkpuCkmyDgpLAv4KS14KS+IOCkuOCljeCkpeCkv+CkpOCkvyDgpIXgpKjgpY3gpK8g4KS44KWN4KSl4KS+4KSoIOCkuOCljeCksOCli+CkpOCkueCksOClgiDgpJzgpLjgpY3gpKTgpYggR1BTIOCkteCkviDgpLjgpY3gpKXgpL7gpKgg4KSq4KWN4KSw4KSm4KS+4KSv4KSV4KSs4KS+4KSfIOCkq+CksOCljeCkleCkvuCkh+Ckj+CkleCkvuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iMjgzNjMwODA3NjcyMDU1MzgzNyI+IuCkheCkp+Ckv+CklSDgpLjgpY3gpKXgpL7gpKgg4KSq4KWN4KSw4KSm4KS+4KSv4KSVIOCkhuCkpuClh+CktuCkueCksOClgiDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iNTk0NTE2NjY0MjMzNTgwMDc2MyI+IuCkpeCkqiDgpLjgpY3gpKXgpL7gpKgg4KSq4KWN4KSw4KSm4KS+4KSv4KSVIOCkleCkruCkvuCko+CljeCkoeCkueCksOClgiDgpLjgpK7gpY3gpK4g4KSq4KS54KWB4KSB4KSaIOCkquClgeCksOCljeKAjeCkr+CkvuCkieCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpYcg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLjgpLLgpYcg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkuOCkvuCkr+CkpiDgpJzgpYDgpKrgpYDgpI/gpLjgpJXgpYsg4KS14KS+IOCkheCkqOCljeCkryDgpLjgpY3gpKXgpL7gpKgg4KS44KWH4KS14KS+4KS54KSw4KWC4KSV4KWLIOCkleCkvuCksOCljeCkryDgpLjgpIHgpJcg4KS54KS44KWN4KSk4KSV4KWN4KS34KWH4KSqIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSv4KS44KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iNjU3ODEwMTE5OTgyNTE5Mzg3MyI+IuCkj+CkieCkn+CkviDgpLjgpY3gpKXgpL7gpKgg4KSq4KWN4KSw4KSm4KS+4KSk4KS+IOCkuOCljeCkpeCkvuCkquCkv+CkpCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI5MDY2MTQ2MTIwNDcwNTkxNTA5Ij4i4KSq4KSw4KWA4KSV4KWN4KS34KSj4KSV4KWLIOCksuCkvuCkl+CkvyDgpK7gpJUg4KS44KWN4KSl4KS+4KSoIOCkuOCljeCksOCli+CkpOCkueCksOClgiDgpLjgpL/gpLDgpY3gpJzgpKjgpL4g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOCkteCkviDgpKjgpK/gpL7gpIEg4KS44KWN4KSl4KS+4KSoIOCkquCljeCksOCkpuCkvuCkr+CklSDgpLjgpY3gpKXgpL7gpKrgpKjgpL4g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIOCkr+CkuOCksuClhyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KWN4KSl4KS+4KSo4KSu4KS+IOCkk+CkreCksOCksOCkvuCkh+CkoSDgpJfgpLDgpY3gpKbgpJsg4KSwL+CkteCkviDgpLjgpY3gpKXgpL/gpKTgpL8g4KSF4KSo4KWN4KSvIOCkuOCljeCkpeCkvuCkqCDgpLjgpY3gpLDgpYvgpKTgpLngpLDgpYIg4KSc4KS44KWN4KSk4KWIIEdQUyDgpLXgpL4g4KS44KWN4KSl4KS+4KSoIOCkquCljeCksOCkpuCkvuCkr+CkleCkrOCkvuCknyDgpKvgpLDgpY3gpJXgpL7gpIfgpI/gpJXgpL7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0ZpbmVMb2NhdGlvbiIgbXNnaWQ9IjExOTE4OTgwNjE5NjUyNzMzNzIiPiLgpLjgpJ/gpL/gpJUg4KS44KWN4KSl4KS+4KSoIChHUFMg4KSwIOCkqOClh+Ckn+CkteCksOCljeCklSDgpIbgpKfgpL7gpLDgpL/gpKQpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzRmluZUxvY2F0aW9uIiBtc2dpZD0iNTI5NTA0NzU2MzU2NDk4MTI1MCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpLXgpL/gpLbgpY3gpLXgpLXgpY3gpK/gpL7gpKrgpYAg4KS44KWN4KSl4KS+4KSoIOCkquCljeCksOCko+CkvuCksuClgCAoR1BTKSDgpLXgpL4g4KS44KWH4KSyIOCkn+CkvuCkteCksOCkueCksOClgiDgpLAg4KS14KS+4KSHLeCkq+CkvuCkhyDgpJzgpLjgpY3gpKTgpL4g4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkuOCljeCkpeCkvuCkqCDgpLjgpY3gpLDgpYvgpKTgpLngpLDgpYLgpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClh+CksCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KS44KS54KWAIOCkuOCljeCkpeCkvuCkqCDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KWAIOCkuOCljeCkpeCkvuCkqCDgpLjgpYfgpLXgpL7gpLngpLDgpYIg4KSW4KWL4KSy4KWN4KSo4KWBIOCkquCksOCljeCkmyDgpLAg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSV4KS+IOCksuCkvuCkl+CkvyDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSoIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpIngpKrgpJXgpLDgpKPgpK7gpL4g4KSJ4KSq4KSy4KSs4KWN4KSnIOCkueClgeCkqOClgSDgpKrgpLDgpY3gpJvgpaQg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkpOCkquCkvuCkiOCkgSDgpJXgpLngpL7gpIEg4KS54KWB4KSo4KWBIOCkueClgeCkqOCljeCkmyDgpK3gpKjgpY3gpKjgpYcg4KSo4KS/4KSw4KWN4KSn4KS+4KSw4KSjIOCkl+CksOCljeCkqCDgpK/gpLjgpLLgpL7gpIgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJsg4KSwIOCkr+CkuOCksuClhyDgpIXgpKTgpL/gpLDgpL/gpJXgpY3gpKQg4KSs4KWN4KSv4KS+4KSf4KWN4KSw4KS/IOCkieCksOCljeCknOCkviDgpJbgpKTgpKog4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSI0ODg3ODk1MzYyMzU0MjM5NjI4Ij4i4KSF4KSo4KWB4KSu4KS+4KSo4KS/4KSkIOCkuOCljeCkpeCkvuCkqCAo4KSo4KWH4KSf4KS14KSw4KWN4KSVLeCkhuCkp+CkvuCksOCkv+CkpCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjI1MzgyMDAxODQzNzMzMDIyOTUiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkheCkqOClgeCkruCkvuCkqOCkv+CkpCDgpLjgpY3gpKXgpL7gpKgg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CliyDgpLjgpY3gpKXgpL7gpKgg4KS44KWH4KSyIOCkn+CkvuCkteCksCDgpLAg4KS14KS+4KSHLeCkq+CkvuCkh+CknOCkuOCljeCkpOCkviDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KWN4KSl4KS+4KSoIOCkuOCljeCksOCli+CkpOCkueCksOClguCkleCliyDgpKrgpY3gpLDgpYvgpJcg4KSX4KSw4KWAIOCkuOCljeCkpeCkvuCkqCDgpLjgpYfgpLXgpL7gpLngpLDgpYLgpKzgpL7gpJ8g4KSJ4KSk4KWN4KSq4KSo4KWN4KSoIOCkl+CksOCkv+Ckj+CkleCliyDgpLngpYvgpaQg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkr+ClgCDgpLjgpY3gpKXgpL7gpKgg4KS44KWH4KS14KS+4KS54KSw4KWC4KSV4KWLIOCkieCkquCkr+Cli+CklyDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkr+ClgCDgpLjgpYfgpLXgpL7gpLngpLDgpYIg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkieCkquCkleCksOCko+CkruCkviDgpJrgpL7gpLLgpYEg4KSwIOCkieCkquCksuCkrOCljeCkpyDgpLngpYHgpKjgpYEg4KSG4KS14KS24KWN4KSv4KSVIOCkm+ClpCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSF4KSo4KWB4KSu4KS+4KSo4KS/4KSkIOCksOClguCkquCkruCkviDgpKTgpKrgpL7gpIjgpIEg4KSV4KS54KS+4KSBIOCkueClgeCkqOClgeCkueClgeCkqOCljeCkmyDgpK3gpKjgpY3gpKjgpYcg4KSo4KS/4KSw4KWN4KSn4KS+4KSw4KSjIOCkl+CksOCljeCkqCDgpK/gpLjgpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMjM2Mzk2OTY0MTc5MjM4ODk0NyI+IlN1cmZhY2VGbGluZ2VyIOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiJTdXJmYWNlRmxpbmdlciDgpJXgpK4t4KS44KWN4KSk4KSwIOCkuOClgeCkteCkv+Ckp+CkvuCkueCksOClgiDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4i4KSr4KWN4KSw4KWH4KSuIOCkrOCkq+CksCDgpKrgpKLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkq+CljeCksOClh+CkriDgpKzgpKvgpLDgpJXgpYsg4KS44KS+4KSu4KSX4KWN4KSw4KWAIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iSW5wdXRGbGluZ2VyIOCkleCliyDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IklucHV0RmxpbmdlciDgpJXgpYsg4KSV4KSuLeCkuOCljeCkpOCksCDgpLjgpYHgpLXgpL/gpKfgpL7gpLngpLDgpYIg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4i4KS14KS+4KSH4KSr4KS+4KSHIOCkquCljeCksOCkpuCksOCljeCktuCkqOCkueCksOClguCksuCkvuCkiCDgpLXgpL/gpKjgpY3gpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkleCkqOCljeCkq+Ckv+Ckl+CksCDgpJfgpLDgpY3gpKgg4KSwIOCkteCkvuCkh+Ckq+CkvuCkhyDgpKrgpY3gpLDgpKbgpLDgpY3gpLbgpKjgpLngpLDgpYLgpLjgpIHgpJcg4KSc4KWL4KSh4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+IuCkteCkvuCkh+Ckq+CkvuCkhyDgpKrgpY3gpLDgpKbgpLDgpY3gpLbgpKjgpLngpLDgpYIg4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSjIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjQ1NDM5MTIyOTI2ODE4MjY5ODYiPiLgpLXgpL7gpIfgpKvgpL7gpIcg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSo4KWA4KSV4KS+IOCkpOCksuCljeCksuCliyDgpKTgpLkg4KS14KS/4KS34KWH4KS24KSk4KS+4KS54KSw4KWCIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjY4NTcxMzQ0OTg0MDIzNDY3MDgiPiLgpIXgpKHgpL/gpK/gpYsg4KSG4KSJ4KSf4KSq4KWB4KSfIOCkleCliOCkpiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlQXVkaW9PdXRwdXQiIG1zZ2lkPSI2MjEwNTk3NzU0MjEyMjA4ODUzIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkoeCkv+Ckr+CliyDgpIbgpIngpJ/gpKrgpYHgpJ8g4KSV4KWI4KSmIOCkl+CksOCljeCkqCDgpLAg4KSw4KS/4KSh4KS+4KSH4KSw4KWH4KSV4KWN4KSfIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIyMjQ2ODI4NzczNTg5MDk0MDIzIj4i4KSt4KS/4KSh4KS/4KSv4KWLIOCkhuCkieCkn+CkquClgeCknyDgpJXgpYjgpKYg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMzU5NDgxNjU4MDM0MTQ5ODYwIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkreCkv+CkoeCkv+Ckr+CliyDgpIbgpIngpJ/gpKrgpYHgpJ8g4KSV4KWI4KSmIOCkl+CksOCljeCkqCDgpLAg4KSw4KS/4KSh4KS+4KSH4KSw4KWH4KSV4KWN4KSfIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlU2VjdXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSI3ODE1Mzk4OTY5MzAzMzgyMDE2Ij4i4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkreCkv+CkoeCkv+Ckr+CliyDgpIbgpIngpJ/gpKrgpYHgpJ8g4KSV4KWI4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVTZWN1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjI3Nzk3OTMwNjQ3MDkzNTAyODkiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkreCkv+CkoeCkv+Ckr+CliyDgpIbgpIngpJ/gpKrgpYHgpJ8g4KSV4KWI4KSmIOCkl+CksOCljeCkqCDgpLAg4KSw4KS/4KSh4KS+4KSH4KSw4KWH4KSV4KWN4KSfIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlBdWRpb1NldHRpbmdzIiBtc2dpZD0iNjA5NTg1OTkzNzA2OTE0NjA4NiI+IuCkpOCkquCkvuCkiOCkgeCkleCkviDgpIXgpKHgpL/gpK/gpYsg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb2RpZnlBdWRpb1NldHRpbmdzIiBtc2dpZD0iMzUyMjU2NTM2NjgwNjI0ODUxNyI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpJfgpY3gpLLgpYvgpKzgpLIg4KSF4KSh4KS/4KSv4KWLIOCkuOClh+Ckn+Ckv+CkmeCljeCkueCksOClgiDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJssIOCknOCkuOCljeCkpOCliCDgpIbgpLXgpL7gpJzgpJXgpYsg4KSu4KS+4KSk4KWN4KSw4KS+IOCksCDgpIbgpIngpJ/gpKrgpYHgpJ/gpJXgpYsg4KSy4KS+4KSX4KS/IOCkleClgeCkqCDgpLjgpY3gpKrgpL/gpJXgpLAg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqOClh+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjb3JkQXVkaW8iIG1zZ2lkPSIzODc2MDQ5NzcxNDI3NDY2MzIzIj4i4KSF4KSh4KS/4KSv4KWLIOCksOClh+CkleCksOCljeCkoSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNvcmRBdWRpbyIgbXNnaWQ9IjQ5MDY4MzkzMDEwODc5ODA2ODAiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSu4KS+4KSH4KSV4KWN4KSw4KWL4KSr4KWL4KSo4KSV4KWLIOCkuOCkvuCkpSDgpIXgpKHgpL/gpK/gpYsg4KSw4KWH4KSV4KSw4KWN4KShIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuCDgpIXgpKjgpYHgpK7gpKTgpL/gpLLgpYcg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkquClgeCkt+CljeCkn+Ckv+CkleCksOCkoyDgpKzgpL/gpKjgpL4g4KSV4KWB4KSo4KWIIOCkquCkqOCkvyDgpLjgpK7gpK/gpK7gpL4g4KSF4KSh4KS/4KSv4KWLIOCksOClh+CkleCksOCljeCkoSDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FtZXJhIiBtc2dpZD0iMzYxNjM5MTkxOTU1OTc1MTE5MiI+IuCkpOCkuOCljeCkrOCkv+CksOCkueCksOClgiDgpLAg4KSt4KS/4KSh4KS/4KSv4KWL4KS54KSw4KWCIOCksuCkv+CkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbWVyYSIgbXNnaWQ9Ijg0OTcyMTY1MjQ3MzU1MzUwMDkiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSV4KWN4KSv4KS+4KSu4KWH4KSw4KS+4KS44KSB4KSXIOCkpOCkuOCljeCkrOCkv+CksCDgpLAg4KSt4KS/4KSh4KS/4KSv4KWL4KS54KSw4KWCIOCksuCkv+CkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuCDgpIXgpKjgpYHgpK7gpKTgpL/gpLLgpYcg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkpOCkquCkvuCkiOCkguCkleCliyDgpKrgpYHgpLfgpY3gpJ/gpL/gpJXgpLDgpKMg4KSs4KS/4KSo4KS+IOCkleClgeCkqOCliCDgpKrgpKjgpL8g4KS44KSu4KSv4KSu4KS+IOCkleCljeCkr+CkvuCkruClh+CksOCkviDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSoIOCkuOCljeCkteClgOCkleClg+CkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYURpc2FibGVUcmFuc21pdExlZCIgbXNnaWQ9IjI2NTEwNzI2MzA1MDExMjYyMjIiPiLgpJXgpY3gpK/gpL7gpK7gpYfgpLDgpL4g4KSq4KWN4KSw4KSv4KWL4KSX4KSu4KS+IOCkueClgeCkgeCkpuCkviDgpLjgpYLgpJrgpJUgTEVEIOCkquCljeCksOCkuOCkvuCksOCkoyDgpIXgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhRGlzYWJsZVRyYW5zbWl0TGVkIiBtc2dpZD0iNDc2NDU4NTQ2NTQ4MDI5NTM0MSI+IuCkquClguCksOCljeCktS3gpLjgpY3gpKXgpL7gpKrgpL/gpKQg4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpJXgpY3gpK/gpL7gpK7gpYfgpLDgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkuOClguCkmuCklSBMRUQg4KSF4KSV4KWN4KS34KSuIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icmljayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjk2MTI5MjIwNTc2NDQ4ODMwNCI+IuCkuOCljeCkpeCkvuCkr+ClgCDgpLDgpYLgpKrgpK7gpL4g4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkheCkleCljeCkt+CkriDgpKrgpL7gpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JyaWNrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODMzNzgxNzA5MzMyNjM3MDUzNyI+IuCkq+Cli+CkqOCksuCkvuCkiCDgpLjgpY3gpKXgpL7gpK/gpYAg4KSw4KWC4KSq4KSu4KS+IOCkheCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpY3gpKjgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icmljayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDMzNDgxODgwODAwMTY5OTUzMCI+IuCkquClgeCksOCliCDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpLLgpL7gpIgg4KS44KWN4KSl4KS+4KSv4KWAIOCksOClguCkquCkruCkviDgpIXgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CliyDgpKjgpL/gpJXgpYgg4KSW4KSk4KSw4KSo4KS+4KSVIOCkueClgeCkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JyaWNrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTc4ODkwMzI5NzYyNzI4MzA5OSI+IuCkuOCkruCljeCkquClguCksOCljeCkoyDgpKvgpYvgpKjgpLLgpL7gpIgg4KS44KWN4KSl4KS+4KSv4KWAIOCksOClguCkquCkruCkviDgpIXgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CliyDgpKfgpYfgpLDgpYgg4KSW4KSk4KSw4KSo4KS+4KSVIOCkueClgeCkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVib290IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzNDM2NjM0OTcyNTYxNzk1MDAyIj4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkquClgeCkqOCkg+CkrOClgeCknyDgpJfgpLDgpY3gpKgg4KSc4KWL4KShIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVib290IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjg5ODU2MDg3MjQ2MjYzODI0MiI+IuCkq+Cli+CkqCDgpKrgpYHgpKjgpIPgpKzgpYHgpJ8g4KSX4KSw4KWN4KSo4KWBIOCknOCli+CkoSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgxNzIwNTYxODAwNjM3MDA3NDEiPiLgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpLLgpL7gpIgg4KSs4KSy4KSq4KWC4KSw4KWN4KS14KSVIOCkquClgeCkqOCkg+CkrOClgeCknyDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVib290IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTMyNjAwODEyNDI4OTk4OTk2OSI+IuCkq+Cli+CkqOCksuCkvuCkiCDgpKzgpLLgpKrgpYHgpLDgpY3gpLXgpJUg4KSq4KWB4KSo4KSD4KSs4KWB4KSfIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjkyNzM2MTUzNzk0MjU5MTg0MSI+IlVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSr4KS+4KSH4KSyIOCkquCljeCksOCko+CkvuCksuClgCDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDQwMjMwNTA0OTg5MDk1MzgxMCI+IlNEIOCkleCkvuCksOCljeCkoSDgpKvgpL7gpIfgpLIg4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBtc2dpZD0iMTgyOTI5MDcwMTY1ODk5MjM0NyI+IuCkueCkn+CkvuCkieCkqCDgpK7gpL/gpLLgpY3gpKjgpYcg4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSV4KWLIOCksuCkvuCkl+CkvyDgpKvgpL7gpIfgpLIg4KSq4KWN4KSw4KSj4KS+4KSy4KWA4KS54KSw4KWCIOCkruCkvuCkieCkqOCljeCknyDgpLAg4KSF4KSo4KSu4KS+4KSJ4KSo4KWN4KSfIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyMjc4MTk1ODI2MjQ5MDQ5NzIiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkruClh+Ckn+CljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjYyNTgyNjk4NjM5Mjc0MDU2Ij4iU0Qg4KSV4KS+4KSw4KWN4KShIOCkruClh+Ckn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgbXNnaWQ9Ijg3ODQyNjgyNDY3NzkxOTg2MjciPiLgpLngpJ/gpL7gpIngpKgg4KSu4KS/4KSy4KWN4KSo4KWHIOCkreCko+CljeCkoeCkvuCksOCkoyDgpKvgpLDgpY3gpK7gpY3gpK/gpL7gpJ8g4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19hY2Nlc3MiIG1zZ2lkPSIzNDExMzM4NjMyMDAyMTkzODQ2Ij4i4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkreCko+CljeCkoeCkvuCksOCko+CkleCliyDgpLjgpYLgpJrgpKjgpL4g4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfYWNjZXNzIiBtc2dpZD0iMzA5NDU2Mzg0NDU5Mzg3ODU0OCI+IuCkhuCkqOCljeCkpOCksOCkv+CklSDgpK3gpKPgpY3gpKHgpL7gpLDgpKPgpK7gpL4g4KS44KWC4KSa4KSo4KS+IOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfY3JlYXRlIiBtc2dpZD0iNjQxNDc1NzIzNDc4OTMzNjMyNyI+IuCkhuCkqOCljeCkpOCksOCkv+CklSDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KS44KS/4KSw4KWN4KSc4KSo4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfY3JlYXRlIiBtc2dpZD0iNDU1ODg2OTI3MzU4NTg1Njg3NiI+IuCkhuCkqOCljeCkpOCksOCkv+CklSDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KS44KS/4KSw4KWN4KSc4KSo4KS+IOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjUyNjkyODMyODMwMTYxODAyMiI+IuCkhuCkqOCljeCkpOCksOCkv+CklSDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSn4KWN4KS14KS44KWN4KSkIOCkquCkvuCksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjcyMTg3NDkyODYxNDU1MjY1MzciPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkreCko+CljeCkoeCkvuCksOCkoyDgpKfgpY3gpLXgpLjgpY3gpKQg4KSq4KS+4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfbW91bnRfdW5tb3VudCIgbXNnaWQ9Ijg4Nzc5OTgxMDE5NDQ5OTkzODYiPiLgpIbgpKjgpY3gpKTgpLDgpL/gpJUg4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSy4KS+4KSIIOCkruCkvuCkieCkqOCljeCkny/gpIXgpKjgpK7gpL7gpIngpKjgpY3gpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19tb3VudF91bm1vdW50IiBtc2dpZD0iMzQ1MTM2MDExNDkwMjQ5MDkyOSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIbgpKjgpY3gpKTgpLDgpL/gpJUg4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkruCkvuCkieCkqOCljeCkny/gpIXgpKjgpK7gpL7gpIngpKjgpY3gpJ8g4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfcmVuYW1lIiBtc2dpZD0iNzQ5NjYzMzk1NDA4MDQ3MjQxNyI+IuCkhuCkqOCljeCkpOCksOCkv+CklSDgpK3gpKPgpY3gpKHgpL7gpLDgpKPgpJXgpYsg4KSq4KWB4KSoOuCkqOCkvuCkruCkvuCkleCksOCkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX3JlbmFtZSIgbXNnaWQ9IjE3OTQ3NTc1ODg0NzIxMjc2NzUiPiLgpIbgpKjgpY3gpKTgpLDgpYDgpJUg4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSV4KWLIOCkquClgeCkqOCkqOCkvuCkruCkvuCkleCksOCkoyDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl92aWJyYXRlIiBtc2dpZD0iNzY5NjQyNzAyNjA1NzcwNTgzNCI+IuCkleCkruCljeCkquCkqCDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdmlicmF0ZSIgbXNnaWQ9IjYyODQ5ODkyNDU5MDIzMDA5NDUiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSt4KS+4KSH4KSs4KWN4KSw4KWH4KSf4KSwIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZmxhc2hsaWdodCIgbXNnaWQ9IjIxNTU5MjA4MTAxMjE5ODQyMTUiPiLgpKvgpY3gpLLgpY3gpK/gpL7gpLjgpLLgpL7gpIjgpJ8g4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSjIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZsYXNobGlnaHQiIG1zZ2lkPSI2NTIyMjg0Nzk0NTY4MzY4MzEwIj4i4KSr4KWN4KSy4KWN4KSv4KS+4KS4IOCkquCljeCksOCkleCkvuCktuCksuCkvuCkiCDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VVc2IiIG1zZ2lkPSIxMTEzNDUzNDMwNjQ1NDAyNzIzIj4iVVNCIOCkieCkquCkleCksOCko+CkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSq4KWN4KSw4KS+4KSl4KSu4KS/4KSV4KSk4KS+4KS54KSw4KWCIOCksCDgpIXgpKjgpYHgpK7gpKTgpL/gpLngpLDgpYIg4KSq4KWN4KSw4KSs4KSo4KWN4KSnIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZVVzYiIgbXNnaWQ9Ijc3NzYxNTU0MzAyMTgyMzk4MzMiPiJVU0Ig4KSJ4KSq4KSV4KSw4KSj4KS54KSw4KWC4KSV4KWLIOCksuCkvuCkl+CkvyDgpKrgpY3gpLDgpL7gpKXgpK7gpL/gpJXgpKTgpL7gpLngpLDgpYIg4KSwIOCkheCkqOClgeCkruCkpOCkv+CkueCksOClguCksuCkvuCkiCDgpLXgpY3gpK/gpLXgpLjgpY3gpKXgpL7gpKrgpKgg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTXRwIiBtc2dpZD0iNDk1MzQ2ODY3Njc5NTkxNzA0MiI+Ik1UUCDgpKrgpY3gpLDgpYvgpJ/gpYvgpJXgpLIg4KSV4KS+4KSw4KWN4KSv4KS+4KSo4KWN4KS14KSv4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc010cCIgbXNnaWQ9IjY1MzI5NjEyMDA0ODY3OTE1NzAiPiJNVFAgVVNCIOCkquCljeCksOCli+Ckn+Cli+CkleCksiDgpJXgpL7gpLDgpY3gpK/gpL7gpKjgpY3gpLXgpK/gpKgg4KSX4KSw4KWN4KSoIOCkleClh+CksOCljeCkqOCksiBNVFAg4KSh4KWN4KSw4KS+4KSH4KSt4KSw4KSV4KWLIOCkquCkueClgeCkgeCkmuCkleCliyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9oYXJkd2FyZV90ZXN0IiBtc2dpZD0iNDE0ODI5MDg2MDQwMDY1OTE0NiI+IuCkueCkvuCksOCljeCkoeCkteClh+Ckr+CksCDgpKrgpLDgpYDgpJXgpY3gpLfgpKMg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjY1OTc5NjQxOTEyMDgwMTY2MDUiPiLgpLngpL7gpLDgpY3gpKHgpLXgpYfgpK/gpLAg4KSq4KSw4KWA4KSV4KWN4KS34KSj4KSV4KWLIOCkieCkpuCljeCkpuClh+CktuCljeCkr+CkleCkviDgpLLgpL7gpJfgpL8g4KS14KS/4KSt4KS/4KSo4KWN4KSoIOCkquCksOCkv+Ckp+ClgOCkr+CkueCksOClguCksuCkvuCkiCDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWxsUGhvbmUiIG1zZ2lkPSIzOTI1ODM2MzQ3NjgxODQ3OTU0Ij4i4KSr4KWL4KSoIOCkqOCkruCljeCkrOCksOCkueCksOClguCkruCkviDgpLjgpL/gpKfgpYgg4KSV4KSyIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbGxQaG9uZSIgbXNnaWQ9IjM3NDA3OTc1NzYxMTM3NjA4MjciPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KS54KS44KWN4KSk4KSV4KWN4KS34KWH4KSqIOCkrOClh+Ckl+CksOCliCDgpKvgpYvgpKgg4KSo4KSu4KWN4KSs4KSwIOCkleCksiDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS44KSy4KWHIOCkheCkqOCkquClh+CkleCljeCkt+Ckv+CkpCDgpLbgpYHgpLLgpY3gpJUg4KS14KS+IOCkleCksuCkueCksOClgiDgpJfgpLDgpL7gpIngpKgg4KS44KSV4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSG4KSq4KSk4KSV4KS+4KSy4KWA4KSoIOCkqOCkruCljeCkrOCksOCkueCksOClgiDgpJXgpLIg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpIHgpKbgpYjgpKgg4KS14KS/4KSa4KS+4KSwIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpLjgpY3gpLXgpYDgpJXgpL7gpLAg4KSs4KS/4KSo4KS+IOCkleCksuCkueCksOClgiDgpJfgpLDgpYfgpLAg4KSk4KSq4KS+4KSI4KSB4KSy4KS+4KSIIOCkrOCkouClgCDgpKrgpYjgpLjgpL4g4KSk4KS/4KSw4KS+4KSJ4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FsbFByaXZpbGVnZWQiIG1zZ2lkPSI0MTk4MzQ5MjExMTA4NDk3ODc5Ij4i4KSV4KWB4KSo4KWIIOCkquCkqOCkvyDgpKvgpYvgpKgg4KSo4KSu4KWN4KSs4KSw4KS54KSw4KWCIOCkuOCkv+Ckp+CliCDgpJXgpLIg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FsbFByaXZpbGVnZWQiIG1zZ2lkPSIxNjg5MDI0OTAxNTA5OTk2ODEwIj4i4KSV4KWB4KSo4KWIIOCkquCkqOCkvyDgpKvgpYvgpKgg4KSo4KSu4KWN4KSs4KSw4KSu4KS+LCDgpIbgpJXgpLjgpY3gpK7gpL/gpJUg4KSo4KSu4KWN4KSs4KSwIOCkuOCkueCkv+CkpCwg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkueCkuOCljeCkpOCkleCljeCkt+Clh+CkqiDgpKzgpL/gpKjgpL4g4KSV4KSyIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpIXgpKjgpL7gpLXgpLbgpY3gpK/gpJUg4KSwIOCkl+CliOCksCDgpJXgpL7gpKjgpYHgpKjgpYAg4KSV4KSy4KS54KSw4KWC4KSy4KS+4KSIIOCkhuCkleCkuOCljeCkruCkv+CkleCkruCkviDgpLjgpY3gpKXgpL7gpKjgpL7gpKjgpY3gpKTgpLDgpKMg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQ4NDI1NzY5OTQxNDQ2MDQ4MjEiPiJDRE1BIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpLjgpYfgpJ/gpIXgpKsg4KS44KS/4KSn4KWIIOCkuOClgeCksOClgSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTYwNDg0ODA5NTMxNTQyMTQyNSI+IkNETUEg4KSr4KWL4KSoIOCkuOClh+Ckn+CkheCkqiDgpLjgpL/gpKfgpYgg4KS44KWB4KSw4KWBIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBtc2dpZD0iMTk5NDE5MzUzODgwMjMxNDE4NiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCBDRE1BIOCkquCljeCksOCkvuCkteCkp+CkvuCkqCDgpLjgpYHgpLB1IOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSF4KSo4KS+4KS14KS24KWN4KSv4KSVIOCksOClguCkquCkruCkviBDRE1BIOCkquCljeCksOCkvuCkteCkp+CkvuCkqCDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbG9jYXRpb25VcGRhdGVzIiBtc2dpZD0iNzc4NTQwODI1MzM2NDMzNTc0MCI+IuCkuOCljeCkpeCkvuCkqCDgpIXgpKrgpKHgpYfgpJ8g4KS44KWC4KSa4KSo4KS+4KS54KSw4KWCIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19sb2NhdGlvblVwZGF0ZXMiIG1zZ2lkPSIxMTIwNzQxNTU3ODkxNDM4ODc2Ij4i4KSw4KWH4KSh4KS/4KSv4KWL4KSs4KS+4KSfIOCkuOCljeCkpeCkvuCkqCDgpIXgpKbgpY3gpK/gpL7gpLXgpKfgpL/gpJUg4KS44KWC4KSa4KSo4KS+4KS54KSw4KWC4KSy4KS+4KSIIOCkuOCkleCljeCkt+Ckri/gpIXgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpKzgpL7gpJ8g4KSq4KWN4KSw4KSv4KWL4KSXIOCkqOCkueClgeCkqOClh+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI3ODU1MjU5NDYxMjY4NzM0OTE0Ij4i4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkteCkv+CktuClh+Ckt+CkpOCkvuCkueCksOClgiDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI0MDI0NTI2OTY4NjMwMTk0MTI4Ij4i4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkuOClh+CkteCkvuCkpuCljeCkteCkvuCksOCkviDgpLXgpL/gpLbgpYfgpLfgpKTgpL4g4KSF4KSq4KSy4KWL4KShIOCkreCkj+CkleCliyDgpKrgpLngpYHgpIHgpJog4KSq4KSi4KWN4KSoL+CksuClh+CkluCljeKAjeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpKfgpL7gpLDgpKMg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSm4KWN4KS14KS+4KSw4KS+IOCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpLLgpL7gpJfgpL8g4KS54KWL4KSH4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kR2FkZ2V0IiBtc2dpZD0iNzc2OTA1MzM5MDE1ODYzNDcxIj4i4KS14KS/4KSc4KWH4KSf4KS54KSw4KWC4KSV4KWLIOCkmuCkr+CkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kR2FkZ2V0IiBtc2dpZD0iODI2MTMyNjkzODU5OTA0OTI5MCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKrgpY3gpLDgpKPgpL7gpLLgpYDgpLLgpL7gpIgg4KSV4KWB4KSoIOCkteCkv+CknOClh+CknyDgpJXgpYHgpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSm4KWN4KS14KS+4KSw4KS+IOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KS/4KSo4KWN4KSbIOCkreCkqOClh+CksCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuCDgpIXgpKjgpYHgpK7gpKTgpL/gpLjgpLngpL/gpKTgpJXgpYsg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KS14KWN4KSv4KSV4KWN4KSk4KS/4KSX4KSkIOCkoeClh+Ckn+CkvuCkleCliyDgpKrgpLngpYHgpIHgpJog4KSm4KS/4KSoIOCkuOCkleCljeCkpuCkm+ClpCDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSV4KWLIOCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpLLgpL7gpJfgpL8g4KS54KWL4KSH4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlQaG9uZVN0YXRlIiBtc2dpZD0iODQyMzkyMzc3NzY1OTI5MjIyOCI+IuCkq+Cli+CkqOCkleCliyDgpLjgpY3gpKXgpL/gpKTgpL8g4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeVBob25lU3RhdGUiIG1zZ2lkPSIxMDI5ODc3NTI5MDA3Njg2NzMyIj4i4KSJ4KSq4KSV4KSw4KSj4KSV4KS+IOCkq+Cli+CkqCDgpLXgpL/gpLbgpYfgpLfgpKTgpL7gpLngpLDgpYLgpLLgpL7gpIgg4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSjIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQgIOCkr+CkuCDgpIXgpKjgpYHgpK7gpKTgpL/gpLLgpYcg4KSP4KSJ4KSf4KS+IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KWN4KS14KS/4KSaIOCkl+CksOCljeCkqCwg4KSr4KWL4KSoIOCksOClh+CkoeCkv+Ckr+CliyDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSoIOCksCDgpJbgpYvgpLLgpY3gpKgg4KSwIOCknOCkuOCljeCkpOCliCDgpKTgpKrgpL7gpIjgpIEg4KS44KSn4KWIIOCkuOClguCkmuCkv+CkpCDgpKjgpJfgpLDgpYAg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFBob25lU3RhdGUiIG1zZ2lkPSI5MTc4MjI4NTI0NTA3NjEwNDg2Ij4i4KSr4KWL4KSoIOCkuOCljeCkpeCkv+CkpOCkvyDgpLAg4KSq4KS54KS/4KSa4KS+4KSoIOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRQaG9uZVN0YXRlIiBtc2dpZD0iMTYzOTIxMjc3MTgyNjEyNTUyOCI+IuCkieCkquCkleCksOCko+CkleCliyDgpKvgpYvgpKgg4KS14KS/4KS24KWH4KS34KSk4KS+4KS54KSw4KWC4KSV4KWLIOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS4IOCkheCkqOClgeCkruCkpOCkv+CksuClhyDgpKvgpYvgpKgg4KSo4KSu4KWN4KSs4KSwIOCksCDgpIngpKrgpJXgpLDgpKPgpJXgpYsgSURzLCDgpJXgpLIg4KS44KSV4KWN4KS34KSuIOCkmyDgpJXgpL8g4KSb4KWI4KSoIOCksCDgpJXgpLLgpKbgpY3gpLXgpL7gpLDgpL4g4KSc4KWL4KSh4KS/4KSP4KSV4KWLIOCkn+CkvuCkouCkvuCkleCliyDgpKjgpK7gpY3gpKzgpLAg4KSo4KS/4KSw4KWN4KSn4KS+4KSw4KSjIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93YWtlTG9jayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUzMTczMTQzNTAxMTQ5NTAxNSI+IuCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CksuCkvuCkiCDgpKjgpL/gpKjgpY3gpKbgpY3gpLDgpL7gpK7gpL4g4KSc4KS+4KSo4KSs4KS+4KSfIOCksOCli+CkleCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd2FrZUxvY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NzM0ODAxODc5NDE0OTYxMzAiPiLgpKvgpYvgpKjgpLLgpL7gpIgg4KSo4KS/4KSm4KS+4KSJ4KSo4KSs4KS+4KSfIOCksOCli+CkleCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dha2VMb2NrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3MzExMzE5ODI0NDAwNDQ3ODY4Ij4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSy4KS+4KSIIOCkqOCkv+CkuOCljeCkleCljeCksOCkv+CkryDgpLngpYHgpKjgpKzgpL7gpJ8g4KSw4KWL4KSV4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dha2VMb2NrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODU1OTEwMDY3NzM3MjkyODc1NCI+IuCkq+Cli+CkqOCksuCkvuCkiCDgpKjgpL/gpLjgpY3gpJXgpY3gpLDgpL/gpK8g4KS54KWB4KSo4KSs4KS+4KSfIOCksOCli+CkleCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RldmljZVBvd2VyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNzg3MDM0NzIyNjE2MzUwNDE3Ij4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkquCkvuCkteCksCDgpJbgpYvgpLLgpY3gpKgg4KSwIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RldmljZVBvd2VyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDkyODYyMjQ3MDk4MDk0MzIwNiI+IuCkq+Cli+CkqCDgpJbgpYvgpLLgpY3gpKgg4KS14KS+IOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKgg4KSJ4KSw4KWN4KSc4KS+IOCkquCljeCksOCkpuCkvuCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZXZpY2VQb3dlciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY4OTg2Mjg3ODk4NDYzMTgzMSI+IuCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CksuCkvuCkiCDgpJbgpYvgpLLgpY3gpKgg4KSwIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZXZpY2VQb3dlciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjYwMzcwNTczNDg0NjMxMzEwMzIiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSr4KWL4KSoIOCkluCli+CksuCljeCkqCDgpLAg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mYWN0b3J5VGVzdCIgbXNnaWQ9IjM3MTUyMjU0OTI2OTY0MTYxODciPiLgpKvgpY3gpK/gpL7gpJXgpY3gpJ/gpY3gpLDgpL8g4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkruCli+CkoeCkruCkviDgpJrgpL7gpLLgpYEg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM5NTIwNTkzMTgzNTk2NTMwOTEiPiLgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KS54KS+4KSw4KWN4KSh4KS14KWH4KSv4KSw4KSy4KS+4KSIIOCkquClgeCksOCkviDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSoIOCkpuCkv+CkgeCkpuCliCDgpKTgpLLgpY3gpLLgpYsg4KS44KWN4KSk4KSwIOCkieCkpOCljeCkpOCljeCkquCkvuCkpuCklSDgpKrgpLDgpYDgpJXgpY3gpLfgpKPgpJXgpYsg4KSw4KWC4KSq4KSu4KS+IOCkmuCksuCkvuCkieCkqOClgeCkueCli+CkuOCljeClpCDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KSJ4KSk4KWN4KSk4KWN4KSq4KS+4KSm4KSVIOCkquCksOClgOCkleCljeCkt+CkoyDgpK7gpYvgpKHgpK7gpL4g4KSa4KSy4KS/4KSw4KS54KWH4KSV4KWLIOCkrOClh+CksuCkviDgpK7gpL7gpKTgpY3gpLAg4KSJ4KSq4KSy4KSs4KWN4KSnIOCkueClgeCkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZhY3RvcnlUZXN0IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODEzNjY0NDk5MDMxOTI0NDgwMiI+IuCkpOCksuCljeCksuCliyDgpLjgpY3gpKTgpLAg4KSJ4KSk4KWN4KSk4KWN4KSq4KS+4KSm4KSVIOCknOCkuOCljeCkpOCliCDgpJrgpLLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0sIOCkquClgeCksOCkviDgpKrgpLngpYHgpIHgpJog4KSm4KS/4KSoIOCkq+Cli+CkqCDgpLngpL7gpLDgpY3gpKHgpLXgpYfgpK/gpLDgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkueClgeCkqOCljeCkm+ClpCDgpKvgpYvgpKgg4KSJ4KSk4KWN4KSq4KS+4KSm4KSVIOCkquCksOClgOCkleCljeCkt+CkoyDgpK7gpYvgpKHgpK7gpL4g4KSa4KSy4KS/4KSw4KS54KWH4KSV4KWLIOCkrOClh+CksuCkviDgpK7gpL7gpKTgpY3gpLAg4KSJ4KSq4KSy4KSs4KWN4KSnIOCkueClgeCkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0V2FsbHBhcGVyIiBtc2dpZD0iNjYyNzE5MjMzMzM3MzQ2NTE0MyI+IuCkteCkvuCksuCkquClh+CkquCksCDgpLjgpYfgpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0V2FsbHBhcGVyIiBtc2dpZD0iNzM3MzQ0NzkyMDk3NzYyNDc0NSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KS14KS+4KSy4KSq4KWH4KSq4KSwIOCkuOClh+CknyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0V2FsbHBhcGVySGludHMiIG1zZ2lkPSIzMjc4NjA4MTY1OTc3NzM2NTM4Ij4i4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkteCkvuCksuCkquClh+CkquCksCDgpIbgpJXgpL7gpLAg4KS44KSu4KS+4KSv4KWL4KSc4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFdhbGxwYXBlckhpbnRzIiBtc2dpZD0iODIzNTc4NDM4NDIyMzczMDA5MSI+IuCkquCljeCksOCko+CkvuCksuClgCDgpLXgpL7gpLLgpKrgpYfgpKrgpLDgpJXgpYsg4KSG4KSV4KS+4KSwIOCkuOCkmeCljeCkleClh+CkpOCkueCksOClgiDgpK7gpL/gpLLgpL7gpIngpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hc3RlckNsZWFyIiBtc2dpZD0iMjMxNTc1MDQyMzEzOTY5NzM5NyI+IuCkleCkvuCksOCljeCkr+CktuCkvuCksuCkviDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpKPgpJXgpYsg4KSy4KS+4KSX4KS/IOCkquCljeCksOCko+CkvuCksuClgCDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFzdGVyQ2xlYXIiIG1zZ2lkPSIzNjY1MzgwNDkyNjMzOTEwMjI2Ij4i4KSv4KS44KSV4KS+IOCkq+CljeCkr+CkvuCkleCljeCkn+CljeCksOCkvyDgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIsIOCkleCkqOCljeCkq+Ckv+Ckl+CksOClh+CkuOCkqCDgpLAg4KS44KWN4KSl4KS+4KSq4KS/4KSkIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpKrgpY3gpLDgpKPgpL7gpLLgpYDgpK7gpL4g4KSq4KWB4KSw4KWIIOCkquClgeCkqOCkg+CkuOClh+CknyDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRUaW1lIiBtc2dpZD0iMjAyMTYxNDgyOTU5MTc3NTY0NiI+IuCkuOCkruCkryDgpLjgpYfgpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTg5NjM0MTQzODE1MTE1Mjg4MSI+IuCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkleCliyDgpJjgpKHgpYDgpJXgpYsg4KS44KSu4KSvIOCkrOCkpuCksuCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODU1NzAyNzMwNzM4MDIwIj4i4KSr4KWL4KSo4KSV4KWLIOCkmOCkoeClgOCkleCliyDgpLjgpK7gpK8g4KSs4KSm4KSy4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRUaW1lWm9uZSIgbXNnaWQ9IjI5NDUwNzk4MDEwMTMwNzczNDAiPiLgpLjgpK7gpK8g4KSV4KWN4KS34KWH4KSk4KWN4KSwIOCkuOClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lWm9uZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTY3Njk4MzcxMjMxNTgyNzY0NSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpJXgpYsg4KS44KSu4KSvIOCkleCljeCkt+Clh+CkpOCljeCksCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lWm9uZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ0OTk5NDM0ODg0MzY2MzMzOTgiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSr4KWL4KSo4KSV4KWLIOCkuOCkruCkryDgpJXgpY3gpLfgpYfgpKTgpY3gpLAg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2NvdW50TWFuYWdlclNlcnZpY2UiIG1zZ2lkPSI0ODI5MjYyMzQ5NjkxMzg2OTg2Ij4iQWNjb3VudE1hbmFnZXJTZXJ2aWNlIOCkleCliyDgpLDgpYLgpKrgpK7gpL4g4KSV4KS+4KSw4KWN4KSvIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjE5NDg0NTU1NTIzMzM2MTU5NTQiPiLgpJbgpL7gpKTgpL4g4KSF4KSn4KS/4KSV4KS+4KSw4KWA4KS54KSw4KWC4KSy4KS+4KSIIOCkleCksiDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRBY2NvdW50cyIgbXNnaWQ9IjEwODY3OTU0Njc3NjAxMjIxMTQiPiLgpIngpKrgpJXgpLDgpKPgpK7gpL4g4KSW4KS+4KSk4KS+4KS54KSw4KWCIOCkreClh+Ckn+CljeCkn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNzQxNDk2NTM0NzY5NjYwMDI3Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkpuCljeCkteCkvuCksOCkviDgpJzgpY3gpJ7gpL7gpKQg4KSW4KS+4KSk4KS+4KS54KSw4KWC4KSV4KWLIOCkuOClguCkmuClgCDgpKrgpL7gpIngpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLjgpLLgpYcg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSm4KWN4KS14KS+4KSw4KS+IOCkpOCkquCkvuCkiOCkguCksuClhyDgpLjgpY3gpKXgpL7gpKrgpL/gpKQg4KSX4KSw4KWN4KSo4KWB4KSt4KSP4KSV4KWLIOCkleClgeCkqOCliCDgpKrgpKjgpL8g4KSW4KS+4KSk4KS+4KS54KSw4KWCIOCkuOCkruCkvuCkteClh+CktiDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QWNjb3VudHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDQ4MzE2ODIyNDUxODA3MzgyIj4i4KSr4KWL4KSo4KSy4KS+4KSIIOCkpeCkvuCkueCkviDgpK3gpI/gpJXgpL4g4KSW4KS+4KSk4KS+4KS54KSw4KWC4KSV4KWLIOCkuOClguCkmuClgCDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KS44KWN4KSl4KS+4KSq4KSo4KS+IOCkl+CksOCljeCkqOClgSDgpK3gpI/gpJXgpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSs4KS+4KSfIOCkuOClg+CknOCkv+CkpCDgpJXgpYHgpKjgpYgg4KSW4KS+4KSk4KS+4KS54KSw4KWCIOCkuOCkruCkvuCkteClh+CktiDgpLngpYHgpKgg4KS44KSV4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hdXRoZW50aWNhdGVBY2NvdW50cyIgbXNnaWQ9IjUyNjU5MDg0ODExNzI3MzY5MzMiPiLgpJbgpL7gpKTgpL4g4KS44KS/4KSw4KWN4KSc4KSo4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSDgpLAg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkuOClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hdXRoZW50aWNhdGVBY2NvdW50cyIgbXNnaWQ9IjU0NzIxMjQyOTY5MDg5NzcyNjAiPiLgpJbgpL7gpKTgpL7gpLngpLDgpYLgpJXgpYsg4KS44KS/4KSw4KWN4KSc4KSo4KS+IOCkl+CksOCljeCkqOClhyDgpLAg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqOClhyDgpLAg4KSJ4KSo4KWA4KS54KSw4KWC4KSV4KWLIOCkquCkvuCkuOCkteCksOCljeCkoeCkueCksOClguCkleCliyDgpLjgpYfgpJ/gpL/gpJkg4KSX4KSw4KWN4KSo4KWHIOCkuOCkueCkv+CkpCDgpJbgpL7gpKTgpL4g4KSq4KWN4KSw4KSs4KSo4KWN4KSn4KSV4KSV4KWLIOCkluCkvuCkpOCkviDgpIbgpKfgpL/gpJXgpL7gpLDgpYAg4KS44KSV4KWN4KS34KSu4KSk4KS+4KS54KSw4KWCIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFjY291bnRzIiBtc2dpZD0iNDk4MzEyNjMwNDc1NzE3NzMwNSI+IuCkluCkvuCkpOCkvuCkueCksOClgiDgpKXgpKrgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KS14KS+IOCkueCkn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFjY291bnRzIiBtc2dpZD0iODY5ODI5NTYyNTQ4ODI5MjUwNiI+IuCkluCkvuCkpOCkvuCkueCksOClgiDgpKXgpKrgpY3gpKjgpYcg4KSwIOCkueCkn+CkvuCkieCkqOClhyDgpJzgpLjgpY3gpKTgpL4g4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+4KS54KSw4KWCIOCkuOCkruCljeCkquCkqOCljeCkqCDgpJfgpLDgpY3gpKgsIOCksCDgpIngpKjgpYDgpLngpLDgpYLgpJXgpYsg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkruClh+Ckn+CkvuCkieCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXNlQ3JlZGVudGlhbHMiIG1zZ2lkPSIyMzU0ODEzOTYxNjM4Nzc2NDIiPiLgpIngpKrgpJXgpLDgpKPgpK7gpL4g4KSW4KS+4KSk4KS+4KS54KSw4KWC4KSV4KWLIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191c2VDcmVkZW50aWFscyIgbXNnaWQ9Ijc5ODQyMjcxNDc0MDMzNDY0MjIiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSq4KWN4KSw4KSu4KS+4KSj4KWA4KSV4KSw4KSjIOCkn+Cli+CkleCkqOCkueCksOClgiDgpIXgpKjgpYHgpLDgpYvgpKcg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjQ5NTEwMjc5NjQzNDg5NzQ3NzMiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSc4KSh4KS+4KSo4KS54KSw4KWCIOCkueClh+CksOCljeCkqOCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjgzMTg5NjQ0MjQ2NzU5NjA5NzUiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCknOCkoeCkvuCkqOCkueCksOClgiDgpJzgpLjgpY3gpKTgpYgg4KSV4KWB4KSoIOCkqOClh+Ckn+CkteCksOCljeCkleCkueCksOClgiDgpIXgpLXgpLjgpY3gpKXgpL/gpKQg4KS54KWB4KSo4KWN4KSb4KSo4KWNIOCksCDgpJzgpKHgpL/gpKQg4KSb4KSo4KWNIOCknOCkuOCksuClhyDgpLngpYfgpLDgpY3gpKjgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY3JlYXRlTmV0d29ya1NvY2tldHMiIG1zZ2lkPSI4MDE4NzU4MTM2NDA0MzIzNjU4Ij4i4KSq4KWC4KSw4KWN4KSjIOCkqOClh+Ckn+CkteCksOCljeCklSDgpKrgpLngpYHgpIHgpJoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jcmVhdGVOZXR3b3JrU29ja2V0cyIgbXNnaWQ9IjM0MDMwNjIxODc3Nzk3MjQxODUiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KSV4KWH4KSf4KS54KSw4KWCIOCkuOCkv+CksOCljeCknOCkqOCkviDgpJfgpLDgpY3gpKgg4KSwIOCkleCkuOCljeCkn+CkriDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSq4KWN4KSw4KWL4KSf4KWL4KSV4KSyIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSs4KWN4KSw4KS+4KSJ4KSc4KSwIOCksCDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkh+CkqOCljeCkn+CksOCkqOClh+Ckn+CkruCkviDgpKHgpYfgpJ/gpL4g4KSq4KSg4KS+4KSJ4KSo4KWHIOCkruCkvuCkp+CljeCkr+CkriDgpKrgpY3gpLDgpKbgpL7gpKgg4KSX4KSw4KWN4KSb4KSo4KWNLCDgpKTgpY3gpK/gpLjgpYjgpLLgpYcg4KSH4KSo4KWN4KSf4KSw4KSo4KWH4KSf4KSu4KS+IOCkoeClh+Ckn+CkviDgpKrgpKDgpL7gpIngpKgg4KSv4KWLIOCkheCkqOClgeCkruCkpOCkv+CkleCliyDgpIbgpLXgpLbgpY3gpK/gpJXgpKTgpL4g4KSq4KSw4KWN4KSm4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUFwblNldHRpbmdzIiBtc2dpZD0iNTA1NjYwMTU5Njc1NzUxODk2Ij4i4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiDgpLAg4KSf4KWN4KSw4KS+4KSr4KS/4KSVIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0gLyDgpLDgpYvgpJXgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUFwblNldHRpbmdzIiBtc2dpZD0iNTMzMzc5ODg4NjQxMjcxNDE5MyI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKgg4KSwIOCkuOCkrOCliCDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSf4KWN4KSw4KS+4KSr4KS/4KSVIOCksOCli+CkleCljeCkqCDgpLAg4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSbLCDgpIngpKbgpL7gpLngpLDgpKPgpJXgpYsg4KSy4KS+4KSX4KS/IOCkleClgeCkqOCliCDgpKrgpKjgpL8gQVBOIOCkleCliyDgpKrgpY3gpLDgpYvgpJXgpY3gpLjgpYAg4KSwIOCkquCli+CksOCljeCknyDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCknOCljeCknuCkvuCkqCDgpKzgpL/gpKjgpL4g4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkquCljeCkr+CkvuCkleClh+Ckn+CkueCksOClgiDgpK7gpYvgpKjgpL/gpJ/gpLAg4KSX4KSw4KWN4KSoLCDgpKrgpYHgpKg64KSo4KS/4KSw4KWN4KSm4KWH4KS24KS/4KSkIOCkl+CksOCljeCkqCwg4KS14KS+IOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VOZXR3b3JrU3RhdGUiIG1zZ2lkPSI5NTg4ODQyOTE0NTQzMjczMDkiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSc4KSh4KS+4KSoIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VOZXR3b3JrU3RhdGUiIG1zZ2lkPSI2Nzg5MTIzOTEyNDc2NDE2MjE0Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkqOClh+Ckn+CkteCksOCljeCklSDgpJzgpKHgpL7gpKjgpJXgpYsg4KS44KWN4KSl4KS/4KSk4KS/IOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlVGV0aGVyU3RhdGUiIG1zZ2lkPSI1OTUyNTg0OTY0MzczMDE3OTYwIj4i4KSf4KWH4KSl4KSw4KWN4KShIOCkqOClh+Ckn+CkteCksOCljeCklSDgpJzgpKHgpL7gpKgg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVRldGhlclN0YXRlIiBtc2dpZD0iMTUyNDQ0MTM0NDQxMjMxOTc4MCI+IuCkn+Ckv+CkpeCksCDgpJfgpLDgpYfgpJXgpYsg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCknOCkoeCkvuCkqOCkleCliyDgpLjgpY3gpKXgpL/gpKTgpL8g4KSs4KSm4KSy4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSIxNDAwNjY2MDEyNjcxNjQ4NzQxIj4i4KSq4KWD4KS34KWN4KSg4KSt4KWC4KSu4KS/IOCkoeClh+Ckn+CkviDgpKrgpY3gpLDgpK/gpYvgpJcg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VCYWNrZ3JvdW5kRGF0YVNldHRpbmciIG1zZ2lkPSI1MzQ3NzI5NTc4NDY4NzQ0Mzc5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkquClg+Ckt+CljeCkoOCkreClguCkruCkvyDgpKHgpYfgpJ/gpL4g4KSJ4KSq4KSv4KWL4KSXIOCkuOClh+Ckn+Ckv+CkmSDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1dpZmlTdGF0ZSIgbXNnaWQ9IjUyMDIwMTI5NDkyNDcwNDAwMTEiPiLgpLXgpL7gpIct4KSr4KS+4KSHIOCknOCkoeCkvuCkqOCkueCksOClgiDgpLngpYfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MDAyNzk4MDc3Mzg3ODAzNzI2Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkteCkvuCkhy3gpKvgpL7gpIcg4KSo4KWH4KSf4KS14KSw4KWN4KSV4KSV4KWLIOCkrOCkvuCksOClh+CkruCkviDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KS54KWH4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJssIOCknOCkuOCljeCkpOCliCDgpJXgpL8g4KS14KS+4KSHLeCkq+CkvuCkhyDgpLjgpJXgpY3gpLfgpK4g4KSbIOCkleCkvyDgpJvgpYjgpKgg4KSwIOCknOCkoeCkvuCkqCDgpJfgpLDgpL/gpI/gpJXgpYsg4KS14KS+4KSHLeCkq+CkvuCkhyDgpIngpKrgpJXgpLDgpKPgpLngpLDgpYLgpJXgpYsg4KSo4KS+4KSu4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI2NTUwNjQxMTg4NzQ5MTI4MDM1Ij4i4KS14KS+4KSHLeCkq+CkvuCkh+CkuOCkgeCklyDgpJzgpYvgpKHgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KS14KS+IOCkm+ClgeCkn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlTdGF0ZSIgbXNnaWQ9IjcxMzc5NTAyOTczODYxMjc1MzMiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS14KS+4KSHLeCkq+CkvuCkhyDgpKrgpLngpYHgpIHgpJog4KSs4KS/4KSo4KWN4KSm4KWB4KSs4KS+4KSfIOCknOCkoeCkvuCkqCDgpJfgpLDgpY3gpKgg4KSwIOCkteCkv+CkmuCljeCkm+Clh+CkpuCkqCDgpJfgpLDgpY3gpKgg4KSwIOCkteCkvuCkhy3gpKvgpL7gpIcg4KSo4KWH4KSf4KS14KSw4KWN4KSV4KS54KSw4KWC4KSV4KWLIOCksuCkvuCkl+CkvyDgpIngpKrgpJXgpLDgpKMg4KSV4KSo4KWN4KSr4KS/4KSX4KSw4KWH4KS44KSo4KSu4KS+IOCkquCksOCkv+CkteCksOCljeCkpOCkqOCkueCksOClgiDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBtc2dpZD0iMTM2ODI1Mzg3MTQ4MzI1NDc4NCI+IuCkteCkvuCkhy3gpKvgpL7gpIcgTXVsdGljYXN0IOCkuOCljeCkteCkv+CkleClg+CkpOCkv+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3OTY5Nzc0MDIxMjU2MzM2NTQ4Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkruCksuCljeCkn+Ckv+CkleCkvuCkt+CljeCknyDgpKDgpYfgpJfgpL7gpKjgpL7gpLngpLDgpYIg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClh+CksCDgpLXgpL7gpIct4KSr4KS+4KSHIOCkqOClh+Ckn+CkteCksOCljeCkleCkruCkviDgpKrgpKDgpL7gpIfgpI/gpJXgpYsg4KSq4KWN4KSv4KS+4KSV4KWH4KSf4KS54KSw4KWCIOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkmywg4KSV4KWH4KS14KSyIOCkpOCkquCkvuCkiOCkguCkleCliyDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KSu4KS+4KSk4KWN4KSwIOCkueCli+Ckh+CkqOClpCDgpK/gpLjgpLLgpYcg4KSX4KWI4KSwLeCkruCksuCljeCkn+Ckv+CkleCkvuCkt+CljeCknyDgpK7gpYvgpKEg4KSt4KSo4KWN4KSm4KS+IOCkrOCkouClgCDgpIngpLDgpY3gpJzgpL4g4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTE5NDk3MDYwMjUzNDk5MjYiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSr4KWL4KSoIOCkruCkvuCkpOCljeCksCDgpLngpYvgpIfgpKgsIOCkruCksuCljeCkn+Ckv+CkleCkvuCkuOCljeCknyDgpKDgpYfgpJfgpL7gpKjgpL7gpLngpLDgpYLgpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClhyDgpLXgpL7gpIct4KSr4KS+4KSHIOCkqOClh+Ckn+CkteCksOCljeCkleCkleCkviDgpLjgpKzgpYgg4KSJ4KSq4KSV4KSw4KSj4KS54KSw4KWC4KSu4KS+IOCkquCkoOCkvuCkh+Ckj+CkleCkviDgpKrgpY3gpK/gpL7gpJXgpYfgpJ/gpLngpLDgpYIg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLjgpLLgpYcg4KSX4KWI4KSwLeCkruCksuCljeCkn+Ckv+CkleCkvuCkuOCljeCknyDgpK7gpYvgpKHgpK3gpKjgpY3gpKbgpL4g4KSs4KSi4KWAIOCkieCksOCljeCknOCkviDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGhBZG1pbiIgbXNnaWQ9IjYwMDY5NjczNzM5MzU5MjY2NTkiPiLgpKzgpY3gpLLgpYHgpJ/gpYHgpKUg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWC4KSu4KS+IOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhBZG1pbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjkyMTE3NzQ3MTc0ODg4MjEzNyI+IuCkuOCljeCkpeCkvuCkqOClgOCkryDgpKzgpY3gpLLgpYHgpJ/gpYHgpKUg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSy4KS+4KSIIOCkleCkqOCljeCkq+Ckv+Ckl+CksCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCksCDgpJ/gpL7gpKLgpL7gpJXgpL4g4KSJ4KSq4KSV4KSw4KSj4KS54KSw4KWC4KSy4KS+4KSIIOCkquCkpOCljeCkpOCkviDgpLLgpJfgpL7gpIngpKgg4KSwIOCknOCli+CkoeCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGhBZG1pbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MzE2ODIxNTkzMzE1NDIxMzciPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KWN4KSl4KS+4KSo4KWA4KSvIOCkrOCljeCksuClgeCkn+ClgeCkpSDgpKvgpYvgpKgg4KSV4KSo4KWN4KSr4KS/4KSX4KSwIOCkl+CksOCljeCkqCDgpLAg4KSf4KS+4KSi4KS+4KSV4KS+IOCkieCkquCkleCksOCko+CkueCksOClguCkuOCkgeCklyDgpJbgpYvgpJwg4KSX4KSw4KWN4KSoIOCksCDgpJzgpYvgpKHgpYAg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1dpbWF4U3RhdGUiIG1zZ2lkPSI0MTk1OTA3MDEwNjEwMjA1NzAzIj4iV2lNQVjgpLjgpIHgpJcg4KSc4KWL4KSh4KWN4KSo4KWB4KS54KWL4KS44KWNIOCkteCkviDgpJvgpYHgpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaW1heFN0YXRlIiBtc2dpZD0iNjM2MDEwMjg3NzI2MTk3ODg4NyI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLXgpL7gpIfgpK7gpY3gpK/gpL7gpJXgpY3gpLgg4KS44KSV4KWN4KS34KSuIOCkmyDgpJXgpL8g4KSb4KWI4KSoIOCksCDgpJzgpKHgpL7gpKgg4KSt4KSP4KSV4KWLIOCkleClgeCkqOCliCDgpKrgpKjgpL8g4KS14KS+4KSH4KSu4KWN4KSv4KS+4KSV4KWN4KS4IOCkqOClh+Ckn+CkteCksOCljeCkleCkueCksOClguCkleCliyDgpKzgpL7gpLDgpYfgpK7gpL4g4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkoyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2ltYXhTdGF0ZSIgbXNnaWQ9IjI0MDUwNDIyNjcxMzE0OTY1NzkiPiLgpLXgpL7gpIfgpK7gpY3gpK/gpL7gpJXgpY3gpLgg4KS44KWN4KSl4KS/4KSk4KS/IOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaW1heFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMTU2NDU2NTA0MDg0MjAxODA1Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkteCkvuCkh+CkruCljeCkr+CkvuCkleCljeCkuCDgpKjgpYfgpJ/gpLXgpLDgpY3gpJXgpLngpLDgpYLgpKzgpL7gpJ8g4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCknOCkoeCkvuCkqCDgpJfgpLDgpY3gpKgg4KSwIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpLXgpL/gpJrgpY3gpJvgpYfgpKbgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaW1heFN0YXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjk3MDI1MDQzMDA0OTIzNzk4Ij4i4KS14KS+4KSH4KSu4KWN4KSv4KS+4KSV4KWN4KS4IOCkqOClh+Ckn+CkteCksOCljeCkleCkueCksOClguCkuOCkgeCklyDgpKvgpYvgpKgg4KSc4KWL4KSh4KWN4KSoIOCksCDgpJvgpYHgpJ/gpL7gpIngpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JsdWV0b290aCIgbXNnaWQ9IjYxMjc3NjkzMzYzMzkyNzY4MjgiPiLgpKzgpY3gpLLgpYHgpJ/gpYHgpKUg4KSJ4KSq4KSV4KSw4KSj4KS54KSw4KWC4KS44KSB4KSXIOCknOCli+CkoeClgCDgpK7gpL/gpLLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGgiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM0ODA3MjIxODE4NTI0Mzg2MjgiPiLgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpK7gpL4g4KSs4KWN4KSy4KWB4KSf4KWB4KSl4KSV4KWLIOCkleCkqOCljeCkq+Ckv+Ckl+ClgeCksOClh+CkuOCkqOCksuCkvuCkiCDgpLngpYfgpLDgpY3gpKgg4KSwIOCkrOCkqOCkvuCkieCkqCDgpLAg4KSc4KWL4KSh4KWAIOCkieCkquCkleCksOCko+CkueCksOClguCkuOCkgeCklyDgpJzgpKHgpL7gpKjgpLngpLDgpYLgpLLgpL7gpIgg4KS44KWN4KS14KWA4KSV4KS+4KSwIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMyMDcxMDYzMjQ0NTIzMTI3MzkiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSr4KWL4KSo4KSu4KS+IOCkrOCljeCksuClgeCkn+ClgeCkpeCkleCliyDgpJXgpKjgpY3gpKvgpL/gpJfgpLDgpYfgpLjgpKgg4KS54KWH4KSw4KWN4KSoIOCksCDgpJzgpYvgpKHgpYAg4KSt4KSP4KSV4KS+IOCkieCkquCkleCksOCko+CkueCksOClguCkuOCkgeCklyDgpJzgpKHgpL7gpKjgpLngpLDgpYIg4KSs4KSo4KS+4KSJ4KSoIOCksCDgpLjgpY3gpLXgpYDgpJXgpL7gpLAg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX25mYyIgbXNnaWQ9IjQ0MjMzNTEyNzQ3NTc4NzY5NTMiPiLgpKjgpJzgpL/gpJUg4KSV4KWN4KS34KWH4KSk4KWN4KSwIOCkuOCkguCkmuCkvuCksCDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKPgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19uZmMiIG1zZ2lkPSI3MTIwNjExODE5NDAxNzg5OTA3Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkqOCkr+CkvuCkgSDgpJXgpY3gpLfgpYfgpKTgpY3gpLAg4KS44KSC4KSa4KS+4KSwIChORkMpIOCkn+CljeCkr+CkvuCkl+CkueCksOClgiwg4KSV4KS+4KSw4KWN4KSh4KS54KSw4KWCIOCksCDgpKrgpL7gpKDgpJXgpLngpLDgpYLgpLjgpIHgpJcg4KSF4KSo4KWN4KSk4KSw4KWN4KSV4KWN4KSw4KS/4KSv4KS+IOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kaXNhYmxlS2V5Z3VhcmQiIG1zZ2lkPSIzNTk4NDk2MzAxNDg2NDM5MjU4Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCksuCklSDgpIXgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlzYWJsZUtleWd1YXJkIiBtc2dpZD0iNjAzNDIwMzA2NTA3NzEyMjk5MiI+IuCkleClgeCkqOCliCDgpLjgpK7gpY3gpKzgpKjgpY3gpKfgpL/gpKQg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkuOClgeCksOCkleCljeCkt+CkviDgpLAg4KSV4KS/4KSy4KSV4KSy4KS+4KSIIOCkheCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSJ4KSm4KS+4KS54KSw4KSj4KSV4KWLIOCksuCkvuCkl+Ckvywg4KSF4KSo4KWN4KSk4KSw4KWN4KSX4KSu4KSoIOCkq+Cli+CkqCDgpJXgpLIg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkpuCkviDgpKvgpYvgpKjgpLLgpYcg4KSV4KS/4KSy4KSV4KSy4KS+4KSIIOCkheCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpY3gpJssIOCkpOCljeCkr+CkuOCkquCkm+CkvyDgpJXgpLIg4KS44KSV4KS/4KSP4KSV4KWLIOCkrOClh+CksuCkviDgpJXgpL/gpLLgpJUg4KSq4KWB4KSo4KSD4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFN5bmNTZXR0aW5ncyIgbXNnaWQ9IjYyMDE4MTAwMDgyMzA1MDMwNTIiPiLgpLjgpK7gpYDgpJXgpLDgpKMg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTeW5jU2V0dGluZ3MiIG1zZ2lkPSIyNzA2NzQ1Njc0NTY5Njc4NjQ0Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkluCkvuCkpOCkvuCkleCliyDgpLLgpL7gpJfgpL8g4KS44KS/4KSZ4KWN4KSVIOCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiDgpKrgpKLgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpIngpKbgpL7gpLngpLDgpKPgpJXgpYsg4KSy4KS+4KSX4KS/IOCkr+CkuOCksuClhyDgpLXgpY3gpK/gpJXgpY3gpKTgpL/gpLngpLDgpJXgpYsg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkluCkvuCkpOCkvuCkuOCkgeCklyDgpLjgpL/gpJngpY3gpJUg4KSt4KSP4KSV4KWLIOCkqOCkreCkj+CkleCliyDgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpKMg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTeW5jU2V0dGluZ3MiIG1zZ2lkPSI1NDA4Njk0ODc1NzkzOTQ1MzE0Ij4i4KSf4KSX4KSyIOCkuOCkv+CkmeCljeCklSDgpJbgpYHgpLLgpL4g4KSwIOCkrOCkqOCljeCkpiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU3luY1NldHRpbmdzIiBtc2dpZD0iODk1NjI2MjU5MTMwNjM2OTg2OCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpJbgpL7gpKTgpL7gpJXgpYsg4KSy4KS+4KSX4KS/IOCkuOCkv+CkmeCljeCklSDgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkieCkpuCkvuCkueCksOCko+CkleCliyDgpLLgpL7gpJfgpL8sIOCkr+CliyDgpJbgpL7gpKTgpL7gpLjgpIHgpJcg4KS14KWN4KSv4KSV4KWN4KSk4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpLjgpL/gpJngpY3gpJUg4KS44KSV4KWN4KS34KSuIOCkl+CksOCljeCkqCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSoIOCkuOCkleCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFN5bmNTdGF0cyIgbXNnaWQ9IjczOTY1Nzc0NTEzNjAyMDI0NDgiPiLgpLjgpL/gpJngpY3gpJUg4KSk4KSl4KWN4KSv4KS+4KSZ4KWN4KSV4KS54KSw4KWCIOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTeW5jU3RhdHMiIG1zZ2lkPSIxNTEwMTQzNzYxNzU3NjA2MTU2Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkluCkvuCkpOCkvuCkleCliyDgpLLgpL7gpJfgpL8g4KS44KSu4KWA4KSV4KSw4KSj4KSV4KWLIOCkhuCkgeCkleCkoeCkviDgpLjgpK7gpYDgpJXgpLDgpKMg4KSY4KSf4KSo4KS+4KS54KSw4KWC4KSV4KWLICDgpIfgpKTgpL/gpLngpL7gpLgg4KSwIOCkuOCkruClgOCkleCksOCkoyDgpJfgpLDgpL/gpI/gpJXgpYsg4KSh4KWH4KSf4KS+4KSV4KWLIOCkruCkvuCkquCkqCDgpLjgpK7gpYfgpKQsIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdWJzY3JpYmVkRmVlZHNSZWFkIiBtc2dpZD0iNDc1NjYwOTYzNzA1MzM1MzMxOCI+IuCkuOCkpuCkuOCljeCkryDgpKzgpKjgpL7gpIfgpJXgpL4g4KSr4KS/4KSh4KS54KSw4KWCIOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N1YnNjcmliZWRGZWVkc1JlYWQiIG1zZ2lkPSI1NTU3MDU4OTA3OTA2MTQ0NTA1Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkueCkv+CksuClh+CkleCliyDgpLjgpK7gpYDgpJXgpLDgpKMg4KSX4KSw4KS/4KSP4KSV4KS+IOCkuOClguCkmuCkleCkueCksOClgiDgpKzgpL7gpLDgpYcg4KS14KS/4KS14KSw4KSj4KS54KSw4KWCIOCksuCkv+CkqOClhyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdWJzY3JpYmVkRmVlZHNXcml0ZSIgbXNnaWQ9IjkwMTUyNDYzMjU0MDgyMDkyOTYiPiLgpLjgpKbgpLjgpY3gpK8g4KSs4KSo4KS+4KSH4KSV4KS+IOCkq+Ckv+CkoeCkueCksOClgiDgpLLgpYfgpJbgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdWJzY3JpYmVkRmVlZHNXcml0ZSIgbXNnaWQ9IjY5Mjg5MzAxODg4MjYwODk0MTMiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpL4g4KSt4KSw4KWN4KSW4KSw4KWIIOCkuOCkv+CkmeCljeCklSDgpKvgpL/gpKHgpLngpLDgpYLgpLLgpL7gpIgg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkuOCkv+CkmeCljeCklSDgpKvgpL/gpKHgpLngpLDgpYLgpLLgpL7gpIgg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSv4KS44KSy4KWHICDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKgg4KS44KSV4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjQxMDcxMDE1MjU3NDYwMzU3MTgiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KS24KSs4KWN4KSm4KSV4KWL4KS24KSu4KS+IOCkpeCkquClh+CkleCkviDgpLbgpKzgpY3gpKbgpLngpLDgpYIg4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZERpY3Rpb25hcnkiIG1zZ2lkPSI2NTk2MTQ2MDAzMzg5MDQyNDMiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KSy4KWHIOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpLbgpKzgpY3gpKbgpJXgpYvgpLbgpK7gpL4g4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkl+CksOClh+CkleCkviDgpLngpYHgpKgg4KS44KSV4KWN4KSo4KWHIOCkuOCkrOCliCDgpLbgpKzgpY3gpKbgpLngpLDgpYIsIOCkqOCkvuCkruCkueCksOClgiDgpLAg4KSq4KSm4KS+4KS14KSy4KWA4KS54KSw4KWCIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSIyMTgzMTEwNDAyMzE0NDQxMTA2Ij4i4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+LeCkquCksOCkv+CkreCkvuCkt+Ckv+CkpCDgpLbgpKzgpY3gpKbgpJXgpYvgpLbgpK7gpL4g4KS24KSs4KWN4KSm4KS54KSw4KWCIOCkpeCkquCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjgxODUzODU3MTYyNTUwNjUyOTEiPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KS24KSs4KWN4KSm4KSV4KWL4KS24KSu4KS+IOCkqOCkr+CkvuCkgSDgpLbgpKzgpY3gpKYg4KSy4KWH4KSW4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRSZWFkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjgyMzUzNDE1MTU2MDU1NTk2NzciPiLgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KSX4KSw4KS/4KSP4KSV4KS+IOCkreCko+CljeCkoeCkvuCksOCkoyDgpKrgpLngpYHgpIHgpJrgpJXgpYsg4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgyMzUzNDE1MTU2MDU1NTk2NzciPiLgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KSX4KSw4KS/4KSP4KSV4KS+IOCkreCko+CljeCkoeCkvuCksOCkoyDgpKrgpLngpYHgpIHgpJrgpJXgpYsg4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzY0MjQ3MzI5MjM0ODEzMjA3MiI+IuCkreCkteCkv+Ckt+CljeCkryDgpIngpKrgpJXgpLDgpKPgpLngpLDgpYLgpK7gpL4g4KSJ4KSq4KSy4KSs4KWN4KSnIOCkueClgeCkqOClhyBVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1OTE0NDAyNjg0Njg1ODQ4ODI4Ij4i4KSt4KS14KS/4KS34KWN4KSvIOCkieCkquCkleCksOCko+CkueCksOClguCkruCkviDgpIngpKrgpLLgpKzgpY3gpKcg4KS54KWB4KSo4KWHIFNEIOCkleCkvuCksOCljeCkoeCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSu4KSk4KS/IOCkquCksOClgOCkleCljeCkt+CkoyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijg0ODU5NzkwNjIyNTQ2NjY3NDgiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsgVVNCIOCkreCko+CljeCkoeCkvuCksOCko+CkleCliyDgpLXgpL/gpLfgpK/gpLXgpLjgpY3gpKTgpYHgpLngpLDgpYLgpLLgpL7gpIgg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSDgpLXgpL4g4KSu4KWH4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg4MDU2OTM2MzAwNTA0NTg3NjMiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsgU0Qg4KSV4KS+4KSw4KWN4KSh4KSV4KWLIOCkteCkv+Ckt+Ckr+CkuOClguCkmuClgCDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOCkteCkviDgpK7gpYfgpJ/gpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRXcml0ZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MTc1NDA2Mjk5NDQ1NzEwODg4Ij4iVVNCIOCkreCko+CljeCkoeCkvuCksOCko+CkruCkviDgpLLgpYfgpJbgpY3igI3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MzM3NDE3NzkwOTM2NjMyMDkwIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIFNEIOCkleCkvuCksOCljeCkoeCkruCkviDgpLLgpYfgpJbgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWVkaWFTdG9yYWdlV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODU5ODM5MTk5NzA2ODc5MDE1Ij4i4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkruCkv+CkoeCkv+Ckr+CkviDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KS44KS+4KSu4KSX4KWN4KSw4KWA4KS54KSw4KWCIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0v4KSu4KWH4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWVkaWFTdG9yYWdlV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MTg5MTYwNTk3Njk4NTI5MTg1Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkhuCkqOCljeCkpOCksOCkv+CklSDgpK7gpL/gpKHgpL/gpK/gpL4g4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSV4KWLIOCkuOCkvuCkruCkl+CljeCksOClgOCkueCksOClgiDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZURvY3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzc4MzE4NTk4NDQ4ODQ5ODI5Ij4i4KSV4KS+4KSX4KSc4KS+4KSkIOCkreCko+CljeCkoeCkvuCksOCkoyDgpKrgpY3gpLDgpKzgpKjgpY3gpKcg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlRG9jcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg3MDQzMjMxNzY5MTQxMjE0ODQiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSV4KS+4KSX4KSc4KS+4KSkIOCkreCko+CljeCkoeCkvuCksOCkoyDgpLjgpK7gpL7gpK/gpYvgpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZEFjY2Vzc0FsbCIgbXNnaWQ9IjgxNTA2MTM4MjM5MDA0NjA1NzYiPiLgpLjgpKzgpYgg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KS54KSw4KWC4KSV4KWLIOCkrOCkvuCkueCljeCkryDgpK3gpKPgpY3gpKHgpL7gpLDgpKPgpJXgpYsg4KSq4KS54KWB4KSB4KSaIOCksOCkvuCkluCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZEFjY2Vzc0FsbCIgbXNnaWQ9IjMyMTUyMDgzNTc0MTU4OTEzMjAiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KSs4KWIIOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkvuCkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSs4KS+4KS54KWN4KSvIOCkreCko+CljeCkoeCkvuCksOCko+CkruCkvuCkpeCkvyDgpKrgpLngpYHgpIHgpJog4KSw4KS+4KSW4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhY2hlX2ZpbGVzeXN0ZW0iIG1zZ2lkPSI1NjU2NDg3MjY0ODE5NjY5ODI0Ij4i4KSV4KWN4KSv4KS+4KS4IOCkq+CkvuCkh+CksiDgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhY2hlX2ZpbGVzeXN0ZW0iIG1zZ2lkPSI1NTc4OTY3NjQyMjY1NTUwOTU1Ij4i4KSV4KWH4KS4IOCkq+CkvuCkh+CksiDgpKrgpY3gpLDgpKPgpL7gpLLgpYDgpLLgpL7gpIgg4KSq4KSi4KWN4KSoIOCksCDgpLLgpYfgpJbgpY3igI3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91c2Vfc2lwIiBtc2dpZD0iNTk4Njk1MjM2Mjc5NTg3MDUwMiI+IuCkh+CkqOCljeCkn+CksOCkqOClh+CknyDgpJXgpLLgpLngpLDgpYIg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOCkteCkviDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXNlX3NpcCIgbXNnaWQ9IjQ3MTc2MzIwMDAwNjI2NzQyOTQiPiLgpIfgpKjgpY3gpJ/gpLDgpKjgpYfgpJ8g4KSV4KSyIOCkl+CksOCljeCkqC/gpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSoIFNJUCDgpLjgpYfgpLXgpL7gpLLgpL7gpIgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWROZXR3b3JrVXNhZ2VIaXN0b3J5IiBtc2dpZD0iNzg2MjU5MzI4MzYxMTQ5MzIzMiI+IuCkqOClh+Ckn+CkteCksOCljeCklSDgpIngpKrgpK/gpYvgpJfgpJXgpYsg4KSH4KSk4KS/4KS54KS+4KS4IOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWROZXR3b3JrVXNhZ2VIaXN0b3J5IiBtc2dpZD0iNzY4OTA2MDc0OTgxOTEyNjQ3MiI+IuCkqOCkv+CktuCljeCkmuCkv+CkpCDgpKjgpYfgpJ/gpLXgpLDgpY3gpJXgpLngpLDgpYIg4KSwIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSQ4KSk4KS/4KS54KS+4KS44KS/4KSVIOCkqOClh+Ckn+CkteCksOCljeCklSDgpIngpKrgpK/gpYvgpJcg4KSq4KSi4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlTmV0d29ya1BvbGljeSIgbXNnaWQ9IjI1NjIwNTM1OTIzMzk4NTk5OTAiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSo4KWA4KSk4KS/IOCkquCljeCksOCkrOCkqOCljeCkpyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VOZXR3b3JrUG9saWN5IiBtc2dpZD0iNzUzNzU4Njc3MTU1OTM3MDY2OCI+IuCkqOClh+Ckn+CkteCksOCljeCklSDgpKjgpYDgpKTgpL/gpLngpLDgpYIg4KS14KWN4KSv4KS14KS44KWN4KSl4KS+4KSq4KSoIOCkl+CksOCljeCkqCDgpLAg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXLeCkteCkv+CktuClh+CktyDgpKjgpL/gpK/gpK7gpLngpLDgpYIg4KSq4KSw4KS/4KSt4KS+4KS34KS/4KSkIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW9kaWZ5TmV0d29ya0FjY291bnRpbmciIG1zZ2lkPSI1MDg4MjE3MzA5MDg4NzI5NjUwIj4i4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkieCkquCkr+Cli+CklyDgpLLgpYfgpJbgpL7gpLLgpL7gpIgg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeU5ldHdvcmtBY2NvdW50aW5nIiBtc2dpZD0iNTQ0MzQxMjg2Njc0NjE5ODEyMyI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpJXgpLjgpLDgpYAg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSV4KWLIOCkteCkv+CksOClguCkpuCljeCkp+CkruCkviDgpJXgpLjgpLDgpYAg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkieCkquCkr+Cli+Ckl+ClgCDgpIXgpJXgpL7gpIngpKjgpY3gpJ/gpYfgpKEg4KSbIOCkreCkqOClh+CksCDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkpuCljeCkteCkvuCksOCkviDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpYsg4KSy4KS+4KSX4KS/IOCkueCli+Ckh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSIzNjU4NTI3MjE0OTE0OTU5NzQ5Ij4i4KS44KSV4KWH4KSf4KSV4KWLIOCkqOCkv+CktuCkvuCkqOCkueCksOClgiDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSI3NjU1NTY4NDMzNjk2MzU2NTc4Ij4i4KSu4KS+4KSw4KWN4KSXIOCkpuCksOCljeCktuCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkuOCkleClh+Ckn+CkleCliyDgpKjgpL/gpLbgpL7gpKjgpLngpLDgpYIg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNzY3MzQxNjQ4Nzg3MzQzMjI2OCI+IuCkuOClguCkmuCkqOCkvuCkueCksOClgiDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTm90aWZpY2F0aW9ucyIgbXNnaWQ9IjQ1ODQ1Nzc0MjY4MzQzMTM4NyI+IuCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpKzgpL7gpJ8g4KSq4KWL4KS44KWN4KSfIOCkl+CksOCkv+Ckj+CkleCkvuCkuOCkueCkv+CkpCDgpKrgpYHgpKjgpIPgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSoLCDgpKrgpLDgpYDgpJXgpY3gpLfgpKMg4KSX4KSw4KWN4KSoIOCksCDgpLjgpYLgpJrgpKjgpL7gpLngpLDgpYIg4KS54KSf4KS+4KSJ4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kTm90aWZpY2F0aW9uTGlzdGVuZXJTZXJ2aWNlIiBtc2dpZD0iNzA1Nzc2NDc0MjIxMTY1NjY1NCI+IuCknOCkvuCkqOCkleCkvuCksOClgCDgpLbgpY3gpLDgpYvgpKTgpL4g4KS44KWH4KS14KS+4KSu4KS+IOCkrOCkvuCkgeCkp+CljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmROb3RpZmljYXRpb25MaXN0ZW5lclNlcnZpY2UiIG1zZ2lkPSI5ODU2OTc5MTg1NzY5MDI5ODYiPiLgpLngpYvgpLLgpY3gpKHgpLDgpLLgpL7gpIgg4KS44KWC4KSa4KSo4KS+IOCktuCljeCksOCli+CkpOCkviDgpLjgpYfgpLXgpL7gpJXgpYsg4KS24KWA4KSw4KWN4KS3LeCkuOCljeCkpOCksOCkleCliyDgpIfgpKjgpY3gpJ/gpLDgpKvgpYfgpLgg4KSs4KS+4KSB4KSn4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSu4KS+4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpJXgpLngpL/gpLLgpYcg4KSq4KSo4KS/IOCkhuCkteCktuCljeCkr+CklSDgpKjgpKrgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnZva2VDYXJyaWVyU2V0dXAiIG1zZ2lkPSIzNjk5NjAwODMzOTc1MTE3NDc4Ij4i4KS14KS+4KS54KSVLeCkquCljeCksOCkpuCkvuCkqCDgpLXgpL/gpKjgpY3gpK/gpL7gpLgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkuOClgeCksOClgSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnZva2VDYXJyaWVyU2V0dXAiIG1zZ2lkPSI0MTU5NTQ5MTUyNTI5MTExOTIwIj4i4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KSy4KS+4KSIIOCkteCkvuCkueCklS3gpKrgpY3gpLDgpKbgpL7gpKgg4KS14KS/4KSo4KWN4KSv4KS+4KS4IOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpJXgpLngpL/gpLLgpY3gpK/gpYgg4KSG4KS14KS24KWN4KSv4KSVIOCkquCksOCljeCkqOClhyDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05ldHdvcmtDb25kaXRpb25zIiBtc2dpZD0iODIwNjA3NzQ0NzgzODkwOTUxNiI+IuCkuOCknuCljeCknOCkvuCksiDgpIXgpLXgpLjgpY3gpKXgpL7gpJXgpL4g4KSq4KSw4KWN4KSv4KS14KWH4KSV4KWN4KS34KSj4KSV4KS+IOCksuCkvuCkl+CkvyDgpLjgpYHgpKjgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOZXR3b3JrQ29uZGl0aW9ucyIgbXNnaWQ9IjY4OTkxMDIwNzU4MjUyNzIyMTEiPiLgpLjgpJ7gpY3gpJzgpL7gpLIg4KSF4KS14KS44KWN4KSl4KS+4KSV4KS+IOCkquCksOCljeCkr+CkteClh+CkleCljeCkt+CkoyDgpLjgpYHgpKjgpY3gpKjgpJXgpL4g4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWk4KS44KS+4KSu4KS+4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpJrgpL7gpIHgpLngpL/gpKbgpYgg4KSo4KSa4KS+4KSB4KS54KS/4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaG90d29yZFJlY29nbml0aW9uIiBtc2dpZD0iMzIyNTA4MDQwODc0NjM2MTMxMyI+IuCknOCksuCljeCkpuCli+CkrOCksuCljeCkpuCliyDgpLbgpKzgpY3gpKYg4KSq4KS54KS/4KSa4KS+4KSo4KSV4KS+IOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpLDgpYvgpKcg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaG90d29yZFJlY29nbml0aW9uIiBtc2dpZD0iMzcxNjc0MTI2MDE5NTM2NDI1MiI+IuCknOCksuCljeCkpuCkvuCkrOCksuCljeCkpuCkviDgpLbgpKzgpY3gpKYg4KSq4KS54KS/4KSa4KS+4KSo4KSV4KS+IOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpLDgpYvgpKcg4KSq4KSg4KS+4KSJ4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWk4KS44KS+4KSu4KS+4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkleCkviDgpLLgpL7gpJfgpL8g4KSv4KWLIOCkleCkueCkv+CksuCljeCkr+CliCDgpKjgpJrgpL7gpLngpL/gpKgg4KS44KSV4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2xpbWl0UGFzc3dvcmQiIG1zZ2lkPSI0NDk3NDIwNzI4ODU3NTg1NzkxIj4i4KSq4KS+4KS44KS14KSw4KWN4KShIOCkqOCkv+Ckr+CkruCkueCksOClgiDgpK7gpL/gpLLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2xpbWl0UGFzc3dvcmQiIG1zZ2lkPSIzMjUyMTE0MjAzOTE5NTEwMzk0Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSoLeCkheCkqOCksuCklSDgpKrgpL7gpLjgpLXgpLDgpY3gpKHgpLngpLDgpYLgpK7gpL4g4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+Ckh+Ckj+CkleCliyDgpLLgpK7gpY3gpKzgpL7gpIcg4KSwIOCkheCkleCljeCkt+CksOCkueCksOClgiDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dhdGNoTG9naW4iIG1zZ2lkPSI5MTQxMzA2NDY5NDIxOTk1MDMiPiLgpK7gpYvgpKjgpL/gpJ/gpLAg4KS44KWN4KSV4KWN4KSw4KS/4KSoLeCkheCkqOCksuCklSDgpKrgpY3gpLDgpK/gpKTgpY3gpKjgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dhdGNoTG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMyMTU3MjkyOTQyMTUwNzAwNzIiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkpuCkviDgpJfgpLLgpKQg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkn+CkvuCkh+CkqiDgpK3gpI/gpJXgpYsg4KS44KSC4KSW4KWN4KSv4KS+IOCkqOCkv+CksOClgOCkleCljeCkt+CkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KSwIOCkr+CkpuCkvyDgpKjgpL/gpJXgpYgg4KSn4KWH4KSw4KWIIOCkl+CksuCkpCDgpKrgpL7gpLjgpLXgpLDgpY3gpKHgpLngpLDgpYIg4KSf4KS+4KSH4KSqIOCkreCkj+CkleCkviDgpJvgpKgg4KSt4KSo4KWHIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpLLgpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOCkteCkviDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpJXgpL4g4KS44KSs4KWIIOCkoeClh+Ckn+CkviDgpK7gpYfgpJ/gpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dhdGNoTG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NzEyMzIzMDkxODQ2NzYxMDczIj4i4KS44KWN4KSV4KWN4KSw4KS/4KSo4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkpuCkviDgpJfgpLLgpKQg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkn+CkvuCkh+CkqiDgpK3gpI/gpJXgpYsg4KS44KSC4KSW4KWN4KSv4KS+IOCkqOCkv+CksOClgOCkleCljeCkt+CkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KSwIOCkr+CkpuCkvyDgpKjgpL/gpJXgpYgg4KSn4KWH4KSw4KWIIOCkl+CksuCkpCDgpKrgpL7gpLjgpLXgpLDgpY3gpKHgpLngpLDgpYIg4KSf4KS+4KSH4KSqIOCkreCkj+CkleCkviDgpJvgpKgg4KSt4KSo4KWHIOCkq+Cli+CkqCDgpLLgpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOCkteCkviDgpKvgpYvgpKjgpJXgpL4g4KS44KSs4KWIIOCkoeClh+Ckn+CkviDgpK7gpYfgpJ/gpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfcmVzZXRQYXNzd29yZCIgbXNnaWQ9IjI2MjAwNzcxOTEyNDI2ODg5NTUiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgt4KSF4KSo4KSy4KSVIOCkquCkvuCkuOCkteCksOCljeCkoSDgpKzgpKbgpLLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3Jlc2V0UGFzc3dvcmQiIG1zZ2lkPSI2MDU5NjM5NjIzMDE5MDQ0NTgiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgt4KSF4KSo4KSy4KSVIOCkquCkvuCkuOCkteCksOCljeCkoSDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2ZvcmNlTG9jayIgbXNnaWQ9IjIyNzQwODUzODQ3MDQyNDg0MzEiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSy4KSVIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZm9yY2VMb2NrIiBtc2dpZD0iMTE0MTc5NzU4ODQwMzgyNzEzOCI+IuCkleCkuOCksOClgCDgpLAg4KSV4KS54KS/4KSy4KWHIOCkuOCljeCkleCljeCksOCkv+CkqCDgpLLgpJUg4KSX4KSw4KWN4KSo4KWHIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfd2lwZURhdGEiIG1zZ2lkPSIzOTEwNTQ1NDQ2NzU4NjM5NzEzIj4i4KS44KSs4KWIIOCkoeClh+Ckn+CkviDgpK7gpYfgpJ/gpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dpcGVEYXRhIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzA2MTg0MDk2MDY3NzU2ODc2Ij4i4KSP4KSJ4KSf4KS+IOCkq+CljeCkr+CkvuCkleCljeCkn+CljeCksOCkvyDgpKHgpYfgpJ/gpL4g4KSq4KWB4KSo4KSD4KS44KWH4KSfIOCkl+CksOClh+CksCDgpJrgpYfgpKTgpL7gpLXgpKjgpYAg4KSo4KSG4KSJ4KSB4KSm4KWIIOCkn+CljeCkr+CkvuCkrOCksuCljeCkn+CkleCliyDgpKHgpYfgpJ/gpL4g4KSu4KWH4KSf4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193aXBlRGF0YSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUwOTY4OTU2MDQ1NzQxODgzOTEiPiLgpI/gpIngpJ/gpL4g4KSr4KWN4KSv4KS+4KSV4KWN4KSf4KWN4KSw4KS/IOCkoeClh+Ckn+CkviDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KSX4KSw4KWH4KSwIOCkmuClh+CkpOCkvuCkteCkqOClgCDgpKjgpIbgpIngpIHgpKbgpYgg4KSr4KWL4KSo4KSV4KWLIOCkoeClh+Ckn+CkviDgpK7gpYfgpJ/gpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfc2V0R2xvYmFsUHJveHkiIG1zZ2lkPSIyNzg0ODI4MjkzNzQ3NzkxNDQ2Ij4i4KSJ4KSq4KSV4KSw4KSjIOCkteCkv+CktuCljeCkteCkteCljeCkr+CkvuCkquClgCDgpKrgpY3gpLDgpYvgpJXgpY3gpLjgpYAg4KSu4KS/4KSy4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19zZXRHbG9iYWxQcm94eSIgbXNnaWQ9IjYzODc0OTc0NjY2NjAxNTQ5MzEiPiLgpKjgpYDgpKTgpL8g4KS44KSV4KWN4KS34KSuIOCkueClgeCkgeCkpuCkviDgpKrgpY3gpLDgpK/gpYvgpJcg4KS54KWB4KSo4KWHIOCkieCkquCkleCksOCkoyAg4KS14KS/4KS24KWN4KS14KS14KWN4KSv4KS+4KSq4KWAIOCkquCljeCksOCli+CkleCljeCkuOClgCDgpLjgpYfgpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIOCkquCljeCksOCkpeCkriDgpIngpKrgpJXgpLDgpKMg4KSq4KWN4KSw4KS24KS+4KS44KS24KSo4KSy4KWHIOCkruCkvuCkpOCljeCksCDgpKrgpY3gpLDgpK3gpL7gpLXgpJXgpL7gpLDgpYAg4KS14KS/4KS24KWN4KS14KS14KWN4KSv4KS+4KSq4KWAIOCkquCljeCksOCli+CkleCljeCkuOClgCDgpLjgpYfgpJ8g4KSX4KSw4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2V4cGlyZVBhc3N3b3JkIiBtc2dpZD0iODg1Mjc5MTUxODQ3MjU0MDU2Ij4i4KSy4KSVLeCkuOCljeCkleCljeCksOCkv+CkqCDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSF4KSo4KWN4KSkIOCkuOClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2V4cGlyZVBhc3N3b3JkIiBtc2dpZD0iMTcyOTcyNTIyNjMxNDY5MTU5MSI+IuCkquCljeCksOCkvuCkr+CkgyDgpJXgpKTgpL8g4KSb4KS/4KSf4KWLIOCksuCklS3gpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkrOCkpuCksuCljeCkqOClgSDgpKrgpLDgpY3gpJsg4KSv4KS44KSy4KS+4KSIIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9Ijg5MDEzMjYxOTk5MDkxMzI5MTUiPiLgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSH4KSo4KWN4KSV4KWN4KSw4KS/4KSq4KWN4KS44KSoIOCkruCkv+CksuCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9IjI2Mzc3MzIxMTUzMjUzMTY5OTIiPiLgpK3gpKPgpY3gpKHgpL7gpLAg4KSX4KSw4KS/4KSP4KSV4KWLIOCkoeClh+Ckn+CkviDgpIfgpKjgpY3gpJXgpY3gpLDgpL/gpKrgpY3gpJ8g4KS54KWB4KSo4KWBIOCkhuCkteCktuCljeCkr+CklSDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZGlzYWJsZUNhbWVyYSIgbXNnaWQ9IjYzOTUzMDEwMjMxNTIyOTc4MjYiPiLgpJXgpY3gpK/gpL7gpK7gpYfgpLDgpL7gpLLgpL7gpIgg4KSF4KS44KSV4KWN4KS34KSuIOCkl+CksOCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUNhbWVyYSIgbXNnaWQ9IjIzMDYzNDkwNDI4MzQ3NTQ1OTciPiLgpLjgpKzgpYgg4KSJ4KSq4KSV4KSw4KSjIOCkleCljeCkr+CkvuCkruCksOCkvuCkueCksOClguCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJcg4KSw4KWL4KSV4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2Rpc2FibGVLZXlndWFyZEZlYXR1cmVzIiBtc2dpZD0iMjY2MzI5MTA0NTQyNjM4ODAyIj4i4KSV4KS/4KSX4KS+4KSw4KWN4KSh4KSu4KS+IOCkreCkj+CkleCkviDgpLXgpL/gpLbgpYfgpLfgpKTgpL7gpLngpLDgpYIg4KSF4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIzNDY3MDgyMjcyMTg2NTM0NjE0Ij4i4KSV4KWH4KS54KWAIOCkleCkv+Ckl+CkvuCksOCljeCkoSDgpLXgpL/gpLbgpYfgpLfgpKTgpL7gpLngpLDgpYLgpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSXIOCksOCli+CkleCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwaG9uZVR5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iODkwMTA5ODMzNjY1ODcxMDM1OSI+IuCkl+Clg+CkuSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9Ijg2OTkyMzY1MDUyNzEzNjYxNSI+IuCkruCli+CkrOCkvuCkh+CksiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9Ijc4OTc1NDQ2NTQyNDI4NzQ1NDMiPiLgpJXgpL7gpK4g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTEwMzYwMTQzMzM4MjE1ODE1NSI+IuCkleCkvuCksOCljeCkryDgpKvgpY3gpK/gpL7gpJXgpY3gpLgiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxNzM1MTc3MTQ0OTQ4MzI5MzcwIj4i4KSY4KSw4KSV4KWLIOCkq+CljeCkr+CkvuCkleCljeCkuCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjYwMzg3ODY3NDQ3NzIwNzM5NCI+IuCkquClh+CknOCksCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjE2NTA4MjQyNzUxNzc5MzE2MzciPiLgpIXgpKjgpY3gpK8iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI5MTkyNTE0ODA2OTc1ODk4OTYxIj4i4KSF4KSo4KWB4KSV4KWC4KSy4KSoIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iZW1haWxBZGRyZXNzVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI4MDczOTk0MzUyOTU2MTI5MTI3Ij4i4KSX4KWD4KS5IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzA4NDIzNzM1NjYwMjYyNTYwNCI+IuCkleCkvuCkriI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjExMTIwNDQ0MTA2NTkwMTEwMjMiPiLgpIXgpKjgpY3gpK8iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyMzc0OTEzOTUyODcwMTEwNjE4Ij4i4KSF4KSo4KWB4KSV4KWC4KSy4KSoIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icG9zdGFsQWRkcmVzc1R5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iNjg4MDI1NzYyNjc0MDA0NzI4NiI+IuCkl+Clg+CkuSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjU2MjkxNTM5NTYwNDUxMDkyNTEiPiLgpJXgpL7gpK4iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0OTY2NjA0MjY0NTAwMzQzNDY5Ij4i4KSF4KSo4KWN4KSvIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNDkzMjY4Mjg0NzU5NTI5OTM2OSI+IuCkheCkqOClgeCkleClguCksuCkqCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImltQWRkcmVzc1R5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iMTczODU4NTE5NDYwMTQ3NjY5NCI+IuCkl+Clg+CkuSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjEzNTk2NDQ1NjU2NDczODM3MDgiPiLgpJXgpL7gpK4iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3ODY4NTQ5NDAxMDUzNjE1Njc3Ij4i4KSF4KSo4KWN4KSvIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE0NTExODk0NDYzOTg2OTgwOSI+IuCkheCkqOClgeCkleClguCksuCkqCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yZ2FuaXphdGlvblR5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzU0NjMzNTYxMjE4OTExNTYxNSI+IuCkleCkvuCkriDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0Mzc4MDc0MTI5MDQ5NTIwMzczIj4i4KSF4KSo4KWN4KSvIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzQ1NTA0NzQ2ODU4Mzk2NTEwNCI+IuCkheCkqOClgeCkleClguCksuCkqCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImltUHJvdG9jb2xzIj4KKyAgICA8aXRlbSBtc2dpZD0iODU5NTI2MTM2MzUxODQ1OTU2NSI+IkFJTSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjczOTA0NzM2MjgyNzU0OTA3MDAiPiJXaW5kb3dzIExpdmUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3ODgyODc3MTM0OTMxNDU4MjE3Ij4iWWFob28iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI1MDM1Mzc2MzEzMjAwNTg1MjQyIj4i4KS44KWN4KSV4KS+4KSH4KSqIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzUzMjM2MzE3ODQ1OTQ0NDk0MyI+IlFRIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzcxMzQ0MTAzNDI5OTY2MDc0OSI+Ikdvb2dsZSBUYWxrIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjUwNjg1NzMxMjcxODYzMDgyMyI+IklDUSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjE2NDg3OTc5MDM3ODUyNzkzNTMiPiJKYWJiZXIiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUN1c3RvbSIgbXNnaWQ9IjE2NDQ3MzgwNTkwNTMzNTU4MjAiPiLgpIXgpKjgpYHgpJXgpYLgpLLgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVIb21lIiBtc2dpZD0iMjU3MDkyMzQ2MzAzMzk4NTg4NyI+IuCkl+Clg+CkuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU1vYmlsZSIgbXNnaWQ9IjY1MDE0NjM1NTc3NTQ3NTEwMzciPiLgpK7gpYvgpKzgpL7gpIfgpLIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVXb3JrIiBtc2dpZD0iODg2MzkzOTY2NzA1OTkxMTYzMyI+IuCkleCkvuCkriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUZheFdvcmsiIG1zZ2lkPSIzNTE3NzkyMTYwMDA4ODkwOTEyIj4i4KSV4KS+4KSw4KWN4KSvIOCkq+CljeCkr+CkvuCkleCljeCkuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUZheEhvbWUiIG1zZ2lkPSIyMDY3MjY1OTcyMzIyOTcxNDY3Ij4i4KSY4KSw4KSV4KWLIOCkq+CljeCkr+CkvuCkleCljeCkuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVBhZ2VyIiBtc2dpZD0iNzU4MjM1OTk1NTM5NDkyMTczMiI+IuCkquClh+CknOCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU90aGVyIiBtc2dpZD0iMTU0NDQyNTg0Nzg2ODc2NTk5MCI+IuCkheCkqOCljeCkryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNhbGxiYWNrIiBtc2dpZD0iMjcxMjE3NTIwMzA2NTY3ODIwNiI+IuCkleCksuCkrOCljeCkr+CkvuCklSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNhciIgbXNnaWQ9Ijg3MzgzNjA2ODk2MTY3MTY5ODIiPiLgpJXgpL7gpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVDb21wYW55TWFpbiIgbXNnaWQ9IjU0MDQzNDM1NjQ2MTQ3ODkxNiI+IuCkleCkruCljeCkquCkqOClgCDgpK7gpYHgpJbgpY3gpK8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVJc2RuIiBtc2dpZD0iODAyMjQ1MzE5MzE3MTM3MDMzNyI+IklTRE4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVNYWluIiBtc2dpZD0iNjc2NjEzNzAxMDYyODMyNjkxNiI+IuCkruClgeCkluCljeCkryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU90aGVyRmF4IiBtc2dpZD0iODU4NzY1NzE0NTA3MjQ0NjU2NSI+IuCkheCkqOCljeCkryDgpKvgpY3gpK/gpL7gpJXgpY3gpLgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVSYWRpbyIgbXNnaWQ9IjQwOTM3MzgwNzk5MDg2Njc1MTMiPiLgpLDgpYfgpKHgpL/gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVUZWxleCIgbXNnaWQ9IjMzNjc4Nzk5NTI0NzYyNTA1MTIiPiLgpJ/gpYfgpLLgpYfgpJXgpY3gpLgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVUdHlUZGQiIG1zZ2lkPSI4NjA2NTE0Mzc4NTg1MDAwMDQ0Ij4iVFRZIFRERCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVdvcmtNb2JpbGUiIG1zZ2lkPSIxMzExNDI2OTg5MTg0MDY1NzA5Ij4i4KSV4KS+4KSw4KWN4KSvIOCkruCli+CkrOCkvuCkh+CksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVdvcmtQYWdlciIgbXNnaWQ9IjY0OTkzODczMTIzMTE1NzA1NiI+IuCkleCkvuCksOCljeCkryDgpKrgpYfgpJzgpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVBc3Npc3RhbnQiIG1zZ2lkPSI1NTk2NzcyNjM2MTI4NTYyODg0Ij4i4KS44KS54KS+4KSv4KSVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlTW1zIiBtc2dpZD0iNzI1NDQ5MjI3NTUwMjc2ODk5MiI+Ik1NUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZUN1c3RvbSIgbXNnaWQ9Ijc4Mzc1ODYxOTg0NTgwNzM0MDQiPiLgpIXgpKjgpYHgpJXgpYLgpLLgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVCaXJ0aGRheSIgbXNnaWQ9IjI4MTMzNzk4NDQyMTEzOTA3NDAiPiLgpJzgpKjgpY3gpK7gpKbgpL/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVBbm5pdmVyc2FyeSIgbXNnaWQ9IjM4NzY3Nzk3NDQ1MTgyODQwMDAiPiLgpLXgpL7gpLDgpY3gpLfgpL/gpJUg4KS44KSu4KS+4KSw4KWL4KS5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXZlbnRUeXBlT3RoZXIiIG1zZ2lkPSI3Mzg4MTc4OTM5MDEwMTQzMDc3Ij4i4KSF4KSo4KWN4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlQ3VzdG9tIiBtc2dpZD0iODUyNTk2MDI1NzgwNDIxMzg0NiI+IuCkheCkqOClgeCkleClguCksuCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZUhvbWUiIG1zZ2lkPSI0NDkyMjcyMzYxNDA0MzM5MTkiPiLgpJfgpYPgpLkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVXb3JrIiBtc2dpZD0iMzU0ODA1ODA1OTYwMTE0OTk3MyI+IuCkleCkvuCkriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZU90aGVyIiBtc2dpZD0iMjkyMzAwODY5NTI3MjYzOTU0OSI+IuCkheCkqOCljeCkryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZU1vYmlsZSIgbXNnaWQ9IjExOTkxOTAwNTMyMTE2NjIwNSI+IuCkruCli+CkrOCkvuCkh+CksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVDdXN0b20iIG1zZ2lkPSI4OTAzMjA2OTAzMDYwNDc5OTAyIj4i4KSF4KSo4KWB4KSV4KWC4KSy4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZUhvbWUiIG1zZ2lkPSI4MTY1NzU2OTc3MTg0NDgzMDk3Ij4i4KSX4KWD4KS5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZVdvcmsiIG1zZ2lkPSI1MjY4MTcyNzcyMzg3Njk0NDk1Ij4i4KSV4KS+4KSuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZU90aGVyIiBtc2dpZD0iMjcyNjExMTk2NjYyMzU4NDM0MSI+IuCkheCkqOCljeCkryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZUN1c3RvbSIgbXNnaWQ9IjIwNzQwMjg3NTU1Mjc4MjYwNDYiPiLgpIXgpKjgpYHgpJXgpYLgpLLgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVR5cGVIb21lIiBtc2dpZD0iNjI0MTE4MTAzMjk1NDI2Mzg5MiI+IuCkl+Clg+CkuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZVdvcmsiIG1zZ2lkPSIxMzcxNDg5MjkwMjQyNDMzMDkwIj4i4KSV4KS+4KSuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlT3RoZXIiIG1zZ2lkPSI1Mzc3MDA3NDk1NzM1OTE1NDc4Ij4i4KSF4KSo4KWN4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbEN1c3RvbSIgbXNnaWQ9IjY5MTk0NTM4MzY2MTg3NDk5OTIiPiLgpIXgpKjgpYHgpJXgpYLgpLLgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sQWltIiBtc2dpZD0iNzA1MDM2MDYxMjM2ODM4MzQxNyI+IkFJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xNc24iIG1zZ2lkPSIxNDQ1NTY1NDU0MjA3Njk0NDIiPiJXaW5kb3dzIExpdmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sWWFob28iIG1zZ2lkPSI4MjcxNDM5NDA4NDY5MDIxMjczIj4iWWFob28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sU2t5cGUiIG1zZ2lkPSI5MDE5Mjk2NzQ0NjIyODMyOTUxIj4i4KS44KWN4KSV4KS+4KSH4KSqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbFFxIiBtc2dpZD0iODg4NzQ4NDM3OTQ5NDExMTg4NCI+IlFRIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbEdvb2dsZVRhbGsiIG1zZ2lkPSI0OTM5MDIzMjExNDAyNzczMDQiPiLgpLngpY3gpK/gpL7gpJngpIbgpIngpJ/gpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sSWNxIiBtc2dpZD0iMTU3NDg3MDQzMzYwNjUxNzMxNSI+IklDUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xKYWJiZXIiIG1zZ2lkPSIyMjc5OTE3NjMwODc1NzcxNzIyIj4iSmFiYmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE5ldE1lZXRpbmciIG1zZ2lkPSI4Mjg3NjI1NjU1OTg2ODI3OTcxIj4iTmV0TWVldGluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ1R5cGVXb3JrIiBtc2dpZD0iMjkyNjg4NzA1MDUzNjM4NzIiPiLgpJXgpL7gpK4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdUeXBlT3RoZXIiIG1zZ2lkPSIzOTUxNzgxMTMxNTcwMTI0MDgyIj4i4KSF4KSo4KWN4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnVHlwZUN1c3RvbSIgbXNnaWQ9IjIyNTUyMzQxNTM3MjA4ODMyMiI+IuCkheCkqOClgeCkleClguCksuCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUN1c3RvbSIgbXNnaWQ9IjM1NDI0MDM2Nzk4MjcyOTczMDAiPiLgpIXgpKjgpYHgpJXgpYLgpLLgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVBc3Npc3RhbnQiIG1zZ2lkPSI2Mjc0MzM0ODI1MTk1Mzc5MDc2Ij4i4KS44KS54KS+4KSv4KSVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlQnJvdGhlciIgbXNnaWQ9Ijg3NTc5MTM1MDY3ODQwNjc3MTMiPiLgpK3gpL7gpIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVDaGlsZCIgbXNnaWQ9IjE4OTA3NDYyNzcyNzY4ODE2MjYiPiLgpKzgpJrgpY3gpJrgpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVEb21lc3RpY1BhcnRuZXIiIG1zZ2lkPSI2OTA0ODA3MTEyMTIxMTIyMTMzIj4i4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkuOCkvuCkneClh+CkpuCkvuCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUZhdGhlciIgbXNnaWQ9IjUyMjgwMzQ2ODcwODIwNTA3MjUiPiLgpKzgpYHgpKzgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVGcmllbmQiIG1zZ2lkPSI3MzEzMTA2NzYyNDgzMzkxMjYyIj4i4KSu4KS/4KSk4KWN4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlTWFuYWdlciIgbXNnaWQ9IjYzNjU2Nzc4NjE2MTAxMzc4OTUiPiLgpKzgpY3gpK/gpLXgpLjgpY3gpKXgpL7gpKrgpJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVNb3RoZXIiIG1zZ2lkPSI0NTc4NTcxMzUyOTYyNzU4MzA0Ij4i4KSG4KSu4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUGFyZW50IiBtc2dpZD0iNDc1NTYzNTU2NzU2MjkyNTIyNiI+IuCkheCkreCkv+CkreCkvuCkteCklSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVBhcnRuZXIiIG1zZ2lkPSI3MjY2NDkwMjg1MTIwMjYyNzgxIj4i4KSq4KS+4KSw4KWN4KSf4KSo4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUmVmZXJyZWRCeSIgbXNnaWQ9IjEwMTU3MzA1OTg0NDEzNTUyNCI+IuCkpuCljeCkteCkvuCksOCkviDgpIngpLLgpY3gpLLgpL/gpJbgpL/gpKQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVSZWxhdGl2ZSIgbXNnaWQ9IjE3OTk4MTk5MzAwODU2MTAyNzEiPiLgpIbgpKvgpKjgpY3gpKQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVTaXN0ZXIiIG1zZ2lkPSIxNzM1OTgzNTU0NDc5MDc2NDgxIj4i4KSs4KS54KS/4KSo4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlU3BvdXNlIiBtc2dpZD0iMzk0MTM2OTM5NDI4Njk4MTE3Ij4i4KSq4KSk4KS/LeCkquCkpOCljeCkqOCkvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlQ3VzdG9tIiBtc2dpZD0iMjQ3MzU4MDU5MzExMTU5MDk0NSI+IuCkheCkqOClgeCkleClguCksuCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlSG9tZSIgbXNnaWQ9IjYwOTM1OTgxODEwNjkzNTkyOTUiPiLgpJfgpYPgpLkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZVdvcmsiIG1zZ2lkPSI2OTIwNzI1NzMwNzk3MDk5MDQ3Ij4i4KSV4KS+4KSuIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlT3RoZXIiIG1zZ2lkPSI0NDA4NDM2MTYyOTUwMTE5ODQ5Ij4i4KSF4KSo4KWN4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iUElOIOCkleCli+CkoSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iUFVLIOCksCDgpKjgpK/gpL7gpIEgUElOIOCkleCli+CkoSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsg4KSV4KWL4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLgpKjgpK/gpL7gpIEgUElOIOCkleCli+CkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IuCkquCkvuCkuOCkteCksOCljeCkoSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSoIOCkm+ClgeCkqOClgeCkueCli+CkuOCljSI8L2ZvbnQ+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IuCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIFBJTiDgpJXgpYvgpKEg4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMjQyMjIyNTU5MTAwNjEzNDkzNiI+IuCkl+CksuCkpCBQSU4g4KSV4KWL4KSh4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+IuCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KSu4KWH4KSo4KWBIOCkpeCkv+CkmuCljeCkqOClgeCkueCli+CkuOCljSDgpLAg4KSk4KWN4KSv4KS44KSq4KSb4KS/IOClpiDgpKXgpL/gpJrgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWVyZ2VuY3lfY2FsbF9kaWFsb2dfbnVtYmVyX2Zvcl9kaXNwbGF5IiBtc2dpZD0iNjk2MTkyMTAzMTk1MDkwOTcwIj4i4KSG4KSq4KSk4KSV4KS+4KSy4KWA4KSoIOCkqOCkruCljeCkrOCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fY2Fycmllcl9kZWZhdWx0IiBtc2dpZD0iODk2MzgzOTI0MjU2NTY1MzE5MiI+IuCkuOClh+CkteCkviDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NjcmVlbl9sb2NrZWQiIG1zZ2lkPSI3Mjg4NDQzMDc0ODA2ODMyOTA0Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCksuCklSDgpJfgpLDgpL/gpI/gpJXgpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZW5hYmxlZCIgbXNnaWQ9IjQ2MTU0MDUxNjE0MTI2MDQ5Ij4i4KSF4KSo4KSy4KSVIOCkteCkviDgpIbgpKrgpKTgpJXgpL7gpLLgpYDgpKgg4KSV4KSyIOCkl+CksOCljeCkqCDgpK7gpYfgpKjgpYEg4KSl4KS/4KSa4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iNjg2MjYwMDI4Nzk3MTU4MzY0Ij4i4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqCDgpK7gpYfgpKjgpYEg4KSl4KS/4KSa4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9Ijc0Nzg3MDMyNTQ5NjQ4MTAzMDIiPiLgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSo4KWBIOCkouCkvuCkgeCkmuCkviDgpJbgpL/gpJrgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2VtZXJnZW5jeV9jYWxsIiBtc2dpZD0iNTM0NzYzMzc4NDQwMTI4NTIyNSI+IuCkhuCkquCkpOCkleCkvuCksuClgOCkqCDgpJXgpLLgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3JldHVybl90b19jYWxsIiBtc2dpZD0iNTI0NDI1OTc4NTUwMDA0MDAyMSI+IuCkleCksuCkruCkviDgpKvgpLDgpY3gpJXgpL/gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BhdHRlcm5fY29ycmVjdCIgbXNnaWQ9IjkwMzkwMDg2NTAzNjIyNjEyMzciPiLgpLjgpLngpYAhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX3dyb25nIiBtc2dpZD0iNDMxNzk1NTAxNDk0ODEwODc5NCI+IuCkq+Clh+CksOCkvyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXNzd29yZF93cm9uZyIgbXNnaWQ9IjU3Mzc4MTUzOTMyNTMxNjUzMDEiPiLgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLgpIXgpKTgpY3gpK/gpL7gpKfgpL/gpJUg4KSu4KWL4KS54KSh4KS+IOCkluCli+CksuCljeCkqOClhyDgpKrgpY3gpLDgpK/gpL7gpLjgpLngpLDgpYIg4KSs4KSi4KWAIOCkreCkj+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGx1Z2dlZF9pbiIgbXNnaWQ9IjgwNTc3NjI4MjgzNTU1NzIzMTUiPiLgpJrgpL7gpLDgpY3gpJwg4KS54KWB4KSB4KSm4KWILCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9jaGFyZ2VkIiBtc2dpZD0iMzIxNjM1NzQ1Njg0MDYwNjI0Ij4i4KSa4KS+4KSw4KWN4KScIOCkreCkr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYmF0dGVyeV9zaG9ydCIgbXNnaWQ9IjQ0NzcyNjQ4NDkzODY4NTAyNjYiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9sb3dfYmF0dGVyeSIgbXNnaWQ9IjE0ODI4NzM5ODE5MTkyNDk3NDAiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSa4KS+4KSw4KWN4KSc4KSwIOCknOCli+CkoeCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjUwOTk0MzkyNzc4MTkyMTUzOTkiPiJTSU0g4KSV4KS+4KSw4KWN4KShIOCkm+CliOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUxNjU5MTk2MDk1NzkxNDc0Ij4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSu4KS+IFNJTSDgpJXgpL7gpLDgpY3gpKEg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjE4NjkyMDU4NTY5NTE2OTA3OCI+IuCkq+Cli+CkqOCkruCkviBTSU0g4KSV4KS+4KSw4KWN4KShIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTM3Mjc4NzEzODAyMzI3MjYxNSI+IlNJTSDgpJXgpL7gpLDgpY3gpKEg4KSY4KWB4KS44KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjM1MjY1NzMwOTkwMTkzMTk0NzIiPiJTSU0g4KSV4KS+4KSw4KWN4KShIOCkm+CliOCkqCDgpLXgpL4g4KSq4KSi4KWN4KSoIOCkruCkv+CksuCljeCkpuCliOCkqOClpCBTSU0g4KSV4KS+4KSw4KWN4KShIOCkueCkvuCksuCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNTA5NjE0OTY2NTEzODkxNjE4NCI+IuCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KSF4KSv4KWL4KSX4KWN4KSvIFNJTSDgpJXgpL7gpLDgpY3gpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iOTEwOTA0NjQzNDMzMTUxMzcxIj4i4KSk4KSq4KS+4KSI4KSC4KSV4KWLIFNJTSDgpJXgpL7gpLDgpY3gpKEg4KS44KWN4KSl4KS+4KSv4KWAIOCksOClguCkquCkruCkviDgpIXgpJXgpY3gpLfgpK4g4KSt4KSv4KWL4KWkXG4g4KSF4KSw4KWN4KSV4KWLIFNJTSDgpJXgpL7gpLDgpY3gpKHgpJXgpYsg4KSy4KS+4KSX4KS/IOCkhuCkq+CkqOCliyDgpKTgpL7gpLDgpLDgpLngpL/gpKQg4KS44KWH4KS14KS+IOCkquCljeCksOCkpuCkvuCkr+CkleCkuOCkgeCklyDgpLjgpK7gpY3gpKrgpLDgpY3gpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIwMTU5NDkwNTE1Mjc0Njg4NiI+IuCkheCkmOCkv+CksuCljeCksuCliyDgpJ/gpY3gpLDgpK/gpL7gpJUg4KSs4KSf4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjYwODkyOTc2NTA0ODEyOTIzNjMiPiLgpIXgpLDgpY3gpJXgpYsg4KSf4KWN4KSw4KSv4KS+4KSVIOCkrOCkn+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1OTA4ODc4Njc4MDEyODAwMSI+IuCksOCli+CkleCljeCkqOClhyDgpKzgpJ/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTg4ODQyMjkzODM1MTAxOTQyNiI+IuCkrOCknOCkvuCkieCkqOClhyDgpKzgpJ/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDU2MjMxODM3ODc2Njk4NzYwMSI+IuCkrOCkn+CkqCDgpLDgpYvgpJXgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWVyZ2VuY3lfY2FsbHNfb25seSIgbXNnaWQ9IjY3MzM5NzgzMDQzODYzNjU0MDciPiLgpIbgpKrgpKTgpJXgpL7gpLLgpYDgpKgg4KSV4KSy4KS54KSw4KWCIOCkruCkvuCkpOCljeCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjE0MzM4OTIyNDk4NjAyODUwMSI+IuCkqOClh+Ckn+CkteCksOCljeCklSDgpLLgpJUg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNzQ0MTc5NzMzOTk3NjIzMCI+IlNJTSDgpJXgpL7gpLDgpY3gpKEgUFVLLeCksuCklSDgpJfgpLDgpL/gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI4MTI3OTE2MjU1MjQ1MTgxMDYzIj4i4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkqOCkv+CksOCljeCkpuClh+CktuCklSDgpLXgpL4g4KSX4KWN4KSw4KS+4KS54KSVIOCkuOClh+CkteCkviDgpLjgpK7gpY3gpKrgpLDgpY3gpJUg4KS54KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI4MDY2NjYwMTI5MjA2MDAxMDM5Ij4iU0lNIOCkleCkvuCksOCljeCkoSDgpLLgpJUg4KSX4KSw4KS/4KSP4KSV4KWLIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjU5NTMyMzIxNDA1Mjg4MTI2NCI+IlNJTSDgpJXgpL7gpLDgpY3gpKEg4KSF4KSo4KSy4KSVIOCkl+CksOCkv+CkgeCkpuCliC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNjQ4MTYyMzgzMDM0NDEwNzIyMiI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSF4KSo4KSy4KSVIOCkouCkvuCkgeCkmuCkviDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJbgpL/gpJrgpY3gpKjgpYEg4KSt4KSP4KSV4KWLIOCkm+ClpCBcblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSV4KWL4KS44KS/4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iMjcyNTk3MzI4NjIzOTM0NDU1NSI+IuCkpOCkquCkvuCkiOCkguCksuClhyDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIOCkhuCkq+CljeCkqOCliyDgpKrgpL7gpLjgpLXgpLDgpY3gpKEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4KSq4KSf4KSVIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpK3gpK/gpYvgpaQgXG5cbjx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjYyMTY2NzI3MDY1NDU2OTY5NTUiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsgUElOIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWBIOCkreCkj+CkleCliyDgpJvgpaQgXG5cbjx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjkxOTE2MTE5ODQ2MjU0NjA4MjAiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkheCkqOCksuCklSDgpKLgpL7gpIHgpJrgpL4g4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSW4KS/4KSa4KWN4KSo4KWBIOCkreCkj+CkleCliyDgpJvgpaQg4KSq4KSb4KS/IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkpeCkqiDgpIXgpLjgpKvgpLIg4KSV4KWL4KS44KS/4KS44KS54KSw4KWCLCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsgR29vZ2xlIOCkuOCkvuCkh+CkqCDgpIfgpKgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClgCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KSt4KSo4KS/4KSo4KWHIOCkm+ClpFxuXG4gIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNTkwMjI3NTU5NzYzNzYyNzUxIj4i4KSk4KSq4KS+4KSI4KSB4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpIXgpKjgpLLgpJUg4KSi4KS+4KSB4KSa4KS+4KSy4KS+4KSIIOCkleCli+CksOCljeCkqOClgSDgpK3gpI/gpJXgpYsg4KSb4KWkIOCkquCkm+CkvyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgpIXgpLDgpYIg4KSn4KWH4KSw4KWIIOCkheCkuOCkq+CksiDgpJXgpYvgpLjgpL/gpLjgpLngpLDgpYLgpKrgpJvgpL8sIOCkpOCkquCkvuCkiOCkgeCksuCkvuCkiCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSr4KWL4KSoIEdvb2dsZSDgpLjgpL7gpIfgpKgg4KSH4KSoIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpYfgpLAg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KS44KWL4KSn4KS/4KSo4KWHIOCkm+ClpCBcblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKrgpYHgpKjgpIMg4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2MTI4MTA2Mzk5NzQ1NzU1NjA0Ij4i4KSk4KSq4KS+4KSI4KSB4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpLLgpL7gpIgg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyDgpJXgpYvgpLbgpL/gpLgg4KSX4KSw4KWN4KSo4KWB4KSt4KSP4KSV4KWLIOCkm+ClpCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgpIXgpLDgpYIg4KSn4KWH4KSw4KWIIOCkheCkuOCkq+CksiDgpJXgpYvgpLjgpL/gpLjgpLngpLDgpYLgpKrgpJvgpL8sIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpKvgpY3gpK/gpL7gpJ/gpY3gpLDgpL8g4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSk4KSu4KS+IOCkquClgeCkqOCkg+CkuOClh+CknyDgpLngpYHgpKjgpYcg4KSbIOCksCDgpLjgpKzgpYgg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkoeClh+Ckn+CkviDgpLngpLDgpL7gpIngpKjgpYcg4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NjAzNTY1MTQyMTU2ODI2NTY1Ij4i4KSk4KSq4KS+4KSI4KSC4KSy4KWHIOCkl+CksuCkpCDgpKTgpLDgpL/gpJXgpL7gpLLgpYcgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4KSq4KSf4KSVIOCkq+Cli+CkqCDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSo4KWHIOCkquCljeCksOCkr+CkpOCljeCkqCDgpJfgpLDgpY3gpKjgpYHgpK3gpK/gpYvgpaQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KSs4KSi4KWAIOCkheCkuOCkq+CksiDgpKrgpY3gpLDgpK/gpKTgpY3gpKjgpLngpLDgpYIg4KSq4KSb4KS/LCDgpKvgpYvgpKgg4KSr4KWN4KSv4KS+4KSV4KWN4KSf4KWN4KSw4KS/IOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpOCkruCkviDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KS54KWB4KSo4KWHIOCkmyDgpLAg4KS44KSs4KWIIOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKHgpYfgpJ/gpL4g4KS54KSw4KS+4KSJ4KSo4KWHIOCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI4MDg3MzUxNjQ5MzkzNDM2NSI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpJ/gpY3gpK/gpKzgpY3gpLLgpYfgpJ/gpLLgpL7gpIgg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqCDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgSDgpK3gpI/gpJXgpYsg4KSb4KWkIOCkheCkrCDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpLLgpL7gpIgg4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSkIOCkleCkvuCksOCljeCkr+CktuCkvuCksuCkvuCkruCkviDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KSX4KSw4KS/4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzMDI1NTA0NzIxNzY0OTIyMjQ2Ij4i4KSk4KSq4KS+4KSI4KSC4KSy4KWHIOCkl+CksuCkpCDgpKTgpLDgpL/gpJXgpL7gpLLgpYcg4KSr4KWL4KSoIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqOClhyDgpKrgpY3gpLDgpK/gpKTgpY3gpKgg4KSX4KSw4KWN4KSo4KWB4KSt4KSv4KWL4KWkIOCkheCkrCDgpKvgpYvgpKgg4KSr4KWN4KSv4KS+4KSV4KWN4KSf4KWN4KSw4KS/IOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpOCkruCkviDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KS54KWB4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYyNTE0ODAzNDMzOTQzODk2NjUiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4KS44KWH4KSV4KWH4KSo4KWN4KSh4KSu4KS+IOCkq+Clh+CksOCkvyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9IjI2MjY5OTk0NDk2MTA2OTU5MzAiPiLgpKLgpL7gpIHgpJrgpL4g4KSs4KS/4KSw4KWN4KS44KSo4KWBIOCkreCkr+Cliz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9mb3Jnb3RfcGF0dGVybiIgbXNnaWQ9IjI1ODg1MjE1MDExNjYwMzI3NDciPiLgpJbgpL7gpKTgpL4g4KSF4KSo4KSy4KSVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSIyNzUxMzY4NjA1Mjg3Mjg4ODA4Ij4i4KSo4KS/4KSV4KWIIOCkp+Clh+CksOCliCDgpJXgpYvgpLjgpL/gpLjgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTMxODE2MjU2MTAwNzA3Nzg0Ij4i4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8sIOCkpOCkquCkvuCkiOCkgeCkleCliyBHb29nbGUg4KSW4KS+4KSk4KS+4KS44KSB4KSXIOCkuOCkvuCkh+CkqCDgpIfgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9Ijg4NDY4ODE0MjQxMDY0ODQ0NDciPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpKjgpL7gpK4gKOCkh+CkruClh+CksikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iNTk1ODAyODM4Mzk1NDczODUyOCI+IuCkquCkvuCkuOCkteCksOCljeCkoToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNzEzMDg5MzY5NDc5NTc4NjMwMCI+IuCkuOCkvuCkh+CkqCDgpIfgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjEzNjQwNTE0NzMzNDc0ODU5MDgiPiLgpIXgpK7gpL7gpKjgpY3gpK8g4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KSo4KS+4KSuIOCkteCkviDgpKrgpL7gpLjgpLXgpLDgpY3gpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSIxNjk2OTI0NzYzNjkwMzc5MDczIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKjgpL7gpK4g4KS14KS+IOCkquCkvuCkuOCkteCksOCljeCkoSDgpKzgpL/gpLDgpY3gpLjgpKjgpYHgpK3gpK/gpYs/XG4g4KSt4KWN4KSw4KSu4KSjIOCkl+CksOCljeCkqOClgeCkueCli+CkuCI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjcxMTQ2MjczNTEyODY5MzM4NjciPiLgpJzgpL7gpIHgpJog4KSX4KSw4KWN4KSm4KWILi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl91bmxvY2tfbGFiZWwiIG1zZ2lkPSI3Mzc0NDA0ODMyMjA2NjcwNTQiPiLgpJbgpYvgpLLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NvdW5kX29uX2xhYmVsIiBtc2dpZD0iOTA2ODg3NzU3NjUxMzQyNTk3MCI+IuCkhuCkteCkvuCknCDgpJrgpL7gpLLgpYEg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zb3VuZF9vZmZfbGFiZWwiIG1zZ2lkPSI5OTY4MjI4MjUxNTQzMTkwMjYiPiLgpKfgpY3gpLXgpKjgpL8g4KSs4KSo4KWN4KSmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9zdGFydCIgbXNnaWQ9IjM5NDEwNDU1MDI5MzMxNDI4NDciPiLgpKLgpL7gpIHgpJrgpL4g4KS44KWB4KSw4KWBIOCkreCkr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYWNjZXNzX3BhdHRlcm5fY2xlYXJlZCIgbXNnaWQ9IjU1ODM0Nzk3MjEwMDE2Mzk1NzkiPiLgpKLgpL7gpIHgpJrgpL4g4KS54KSf4KS+4KSH4KSP4KSV4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9jZWxsX2FkZGVkIiBtc2dpZD0iNjc1NjAzMTIwODM1OTI5MjQ4NyI+IuCkuOClh+CksiDgpKXgpKog4KSX4KSw4KS/4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9kZXRlY3RlZCIgbXNnaWQ9IjQ5ODg3MzA4OTU1NTQwNTcwNTgiPiLgpKLgpL7gpIHgpJrgpL4g4KSq4KWB4KSw4KS+IOCkreCkr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4g4KS14KS/4KSc4KWH4KSfICUyJGQgb2YgJTMkZOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiLgpLXgpL/gpJzgpYfgpJ8g4KSl4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i4KSW4KS+4KSy4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLgpIXgpKjgpLLgpJUg4KSV4KWN4KS34KWH4KSk4KWN4KSwIOCkteCkv+CkuOCljeCkpOCkvuCksCDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2NvbGxhcHNlZCIgbXNnaWQ9IjYzNjY5OTIwNjY5MzYwNzYzOTYiPiLgpIXgpKjgpLLgpJUg4KSV4KWN4KS34KWH4KSk4KWN4KSwIOCkreCkpOCljeCkleCkv+Ckr+Cli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0IiBtc2dpZD0iNjUyNzEzMTAzOTc0MTgwODI0MCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOCkteCkv+CknOClh+Ckn+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdXNlcl9zZWxlY3RvciIgbXNnaWQ9IjEyMjY3OTgzNzA5MTM2OTg4OTYiPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSb4KSo4KWM4KSf4KSV4KSw4KWN4KSk4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zdGF0dXMiIG1zZ2lkPSI4MDA4MjY0NjAzOTM1OTMwNjExIj4i4KS44KWN4KSl4KS/4KSk4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4i4KSV4KWN4KSv4KS+4KSu4KWH4KSw4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z2F1cmRfYWNjZXNzaWJpbGl0eV9tZWRpYV9jb250cm9scyIgbXNnaWQ9IjI2MjIwOTY1NDI5MjE2MTgwNiI+IuCkruCkv+CkoeCkv+Ckr+CkviDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKPgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+IuCkteCkv+CknOClh+CknyDgpKrgpYHgpKjgpIPgpJXgpY3gpLDgpK4g4KSX4KSw4KWN4KSo4KWHIOCkuOClgeCksOClgSDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiLgpLXgpL/gpJzgpYfgpJ8g4KSq4KWB4KSo4KSD4KSV4KWN4KSw4KSuIOCkuOCkruCkvuCkquCljeCkpCDgpK3gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZGVsZXRlZCIgbXNnaWQ9IjQ0MjYyMDQyNjM5MjkyMjQ0MzQiPiLgpLXgpL/gpJzgpYfgpJ8gPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4KSu4KWH4KSf4KS+4KSH4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4i4KSF4KSo4KSy4KSVIOCkleCljeCkt+Clh+CkpOCljeCksCDgpKzgpKLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiLgpLjgpY3gpLLgpL7gpIfgpKEg4KSF4KSo4KSy4KSV4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLgpKLgpL7gpIHgpJrgpL4g4KSF4KSo4KSy4KSV4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9mYWNlX3VubG9jayIgbXNnaWQ9IjQ4MTcyODI1NDMzNTE3MTg1MzUiPiLgpKvgpYfgpLgg4KSF4KSo4KSy4KSVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9waW5fdW5sb2NrIiBtc2dpZD0iMjQ2OTY4NzExMTc4NDAzNTA0NiI+IlBpbiDgpIXgpKjgpLLgpJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSF4KSo4KSy4KSV4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4i4KSi4KS+4KSB4KSa4KS+IOCkleCljeCkt+Clh+CkpOCljeCksOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfYXJlYSIgbXNnaWQ9IjY3MzYwNjQ0OTQwMTk5Nzk1NDQiPiLgpLjgpY3gpLLgpL7gpIfgpKEg4KSV4KWN4KS34KWH4KSk4KWN4KSw4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij/gpafgpajgpakiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF9jaGFyYWN0ZXIiIG1zZ2lkPSI3MzM2NDcwNTM1Mzg1MDA5NTIzIj4i4KSF4KSV4KWN4KS34KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfd29yZCIgbXNnaWQ9IjcwNzU1NzAzMjgzNzQ5MTg2NjAiPiLgpLbgpKzgpY3gpKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF9saW5rIiBtc2dpZD0iNTgxNTUwODg4MDc4MjQ4ODI2NyI+IuCksuCkv+CkmeCljeCklSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW51bGFyaXR5X2xhYmVsX2xpbmUiIG1zZ2lkPSI1NzY0MjY3MjM1MDI2MTIwODg4Ij4i4KSy4KS+4KSH4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9hbXBtIiBtc2dpZD0iNDU4NDMzODA4MzUyOTM1NTk4MiI+Ijx4bGlmZjpnIGlkPSJIT1VSIj4lLWw8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IkFNUE0iPiVQPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfY2FwX2FtcG0iIG1zZ2lkPSIyMDgzNDY1OTkyOTQwNDQ0MzY2Ij4iPHhsaWZmOmcgaWQ9IkhPVVIiPiUtbDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iQU1QTSI+JXA8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3RfZmFpbGVkIiBtc2dpZD0iNTQxMDI3MDMyOTExNDIxMjA0MSI+IuCkleCkvuCksOCljeCkr+CktuCkvuCksuCkviDgpKrgpLDgpYDgpJXgpY3gpLfgpKMg4KSF4KS44KSr4KSyIOCkreCkr+Cli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X25vdF9zeXN0ZW0iIG1zZ2lkPSI0NDM1MjAxNjU2NzY3Mjc2NzIzIj4iRkFDVE9SWV9URVNUIOCkleCkvuCksOCljeCksOCkteCkvuCkh+CksuClhyAvc3lzdGVtL2FwcCDgpK7gpL4g4KS44KWN4KSl4KS+4KSq4KS/4KSkIOCkquCljeCkr+CkvuCkleClh+CknOCkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSu4KS+4KSk4KWN4KSwIOCkuOCkruCksOCljeCkpeCkqCDgpJfgpLDgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub19hY3Rpb24iIG1zZ2lkPSI4NzI5OTE4NzQ3OTk5OTg1NjEiPiLgpJXgpYHgpKjgpYgg4KSq4KWN4KSv4KS+4KSV4KWH4KScIOCkq+Clh+CksuCkviDgpKrgpL7gpLDgpY3gpKgg4KS44KSV4KS/4KSP4KSoIOCknOCkuOCksuClhyBGQUNUT1JZX1RFU1Qg4KSV4KS+4KSw4KWN4KSvIOCkquCljeCksOCkpuCkvuCkqCDgpJfgpLDgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9yZWJvb3QiIG1zZ2lkPSI2MzIwMTY4MjAzMDUwNzkxNjQzIj4i4KSq4KWB4KSo4KSD4KSs4KWB4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjE5ODc0ODM5Nzc4MzQ2MDM4NzIiPiLgpK/gpLggXCI8eGxpZmY6ZyBpZD0iVElUTEUiPiVzPC94bGlmZjpnPlwiIOCkruCkviDgpK3gpI/gpJXgpYsg4KSq4KWD4KS34KWN4KSg4KSy4KWHIOCkrOCkpOCkvuCkieCkgeCkmzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfdGl0bGVfZGVmYXVsdCIgbXNnaWQ9IjY5NjE5MDMyMTM3Mjk2Njc1NzMiPiLgpJzgpL7gpK3gpL7gpLjgpY3gpJXgpY3gpLDgpL/gpKrgpY3gpJ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfYmVmb3JlX3VubG9hZF90aXRsZSIgbXNnaWQ9IjI2MTkzNzY1NTU1MjUxMTY1OTMiPiLgpK7gpL7gpLDgpY3gpJfgpKjgpL/gpLDgpY3gpKbgpYfgpLbgpKgg4KSq4KSV4KWN4KSV4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkX3Bvc2l0aXZlX2J1dHRvbiIgbXNnaWQ9IjMxMTI3NTIwMTA2MDA0ODQxMzAiPiLgpK/gpLgg4KSq4KWD4KS34KWN4KSg4KSy4KS+4KSIIOCkm+Cli+CkoeCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkX25lZ2F0aXZlX2J1dHRvbiIgbXNnaWQ9IjU2MTQ4NjEyOTMwMjYwOTk3MTUiPiLgpK/gpLngpYAg4KSq4KWD4KS34KWN4KSg4KSu4KS+IOCksOCkueCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkIiBtc2dpZD0iMzQ2ODgxNjM1NzA5NTM3ODU5MCI+Ijx4bGlmZjpnIGlkPSJNRVNTQUdFIj4lczwveGxpZmY6Zz5cblxu4KSV4KWHIOCkpOCkquCkvuCkiOCkgSDgpK/gpYsg4KSq4KWH4KSc4KSs4KS+4KSfIOCkqOClh+CkreCkv+Ckl+Clh+CknyDgpJfgpLDgpY3gpKgg4KSa4KS+4KS54KSo4KWBIOCkueClgeCkqOCljeCkmyDgpK3gpKjgpY3gpKjgpYcg4KSo4KS/4KS24KWN4KSa4KSkIOCkmz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX2xhYmVsIiBtc2dpZD0iNjg2MDI2MTc1ODY2NTgyNTA2OSI+IuCkqOCkv+CktuCljeCkmuCkv+CkpCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb3VibGVfdGFwX3RvYXN0IiBtc2dpZD0iNDU5NTA0NjUxNTQwMDI2ODg4MSI+IuCknOClgeCkleCljeCkpOCkvzog4KSc4KWB4KSu4KSy4KS+4KSIIOCkoOClguCksuCliyDgpLAg4KS44KS+4KSo4KWLIOCkquCkvuCksOCljeCkqCDgpKbgpYHgpIgg4KSq4KSf4KSVIOCkueCkvuCkqOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3RoaXNfZm9ybSIgbXNnaWQ9IjQ2MTY3NTg4NDExNTc4MTY2NzYiPiLgpLjgpY3gpLXgpKTgpIMg4KSt4KSw4KWN4KSo4KWHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2V0dXBfYXV0b2ZpbGwiIG1zZ2lkPSI3MTAzNDk1MDcwMTgwNTkwODE0Ij4i4KSF4KSf4KWL4KSr4KS/4KSyIOCkuOClh+Ckn+CkheCkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX25hbWVfc2VwYXJhdG9yIiBtc2dpZD0iNjM1MDE0NTE1NDc3OTcwNjc3MiI+IiAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX3N1bW1hcnlfbmFtZV9mb3JtYXQiIG1zZ2lkPSIzMjY4MDQxMDU0ODk5MjE0OTQ1Ij4iJOClpyTgpagk4KWpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYWRkcmVzc19zdW1tYXJ5X3NlcGFyYXRvciIgbXNnaWQ9Ijc0ODMzMDc4OTMxNzAzMjQxMjkiPiIsICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3Nfc3VtbWFyeV9mb3JtYXQiIG1zZ2lkPSI0ODc0NDU5NDU1Nzg2ODI3MzQ0Ij4iJDEkMiQzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcHJvdmluY2UiIG1zZ2lkPSIyMjMxODA2NTUzODYzNDIyMzAwIj4i4KSq4KWN4KSw4KS+4KSo4KWN4KSkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcG9zdGFsX2NvZGUiIG1zZ2lkPSI0Njk2NDMwNDA3Njg5Mzc3MTA4Ij4i4KS54KWB4KSy4KS+4KSV4KWAIOCkleCli+CkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3N0YXRlIiBtc2dpZD0iNjk4ODg5NDE5NTUyMDA0NDYxMyI+IuCksOCkvuCknOCljeCkryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3ppcF9jb2RlIiBtc2dpZD0iODY5NzU0NDU5MjYyNzMyMjk0NiI+IlpJUCDgpJXgpYvgpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9jb3VudHkiIG1zZ2lkPSIyMzcwNzM3NzEwMjAzNjI4OTEiPiLgpJXgpL7gpIngpKjgpY3gpJ/gpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9pc2xhbmQiIG1zZ2lkPSI0MDIwMTAwODc1OTg0NjY3MDI1Ij4i4KSf4KS+4KSq4KWBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZGlzdHJpY3QiIG1zZ2lkPSI4NDAwNzM1MDczMzkyMjY3NjcyIj4i4KSc4KS/4KSy4KWN4KSy4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZGVwYXJ0bWVudCIgbXNnaWQ9IjUzNDMyNzk0NjI1NjQ0NTMzMDkiPiLgpLXgpL/gpK3gpL7gpJciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wcmVmZWN0dXJlIiBtc2dpZD0iMjAyODQ5OTQ4NTA2NTgwMDQxOSI+IuCkquCljeCksOCktuCkvuCkuOCkleClgOCkryDgpJXgpY3gpLfgpYfgpKTgpY3gpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wYXJpc2giIG1zZ2lkPSI4MjAyMjA2MTA1NDY4ODIwMDU3Ij4i4KSq4KWH4KSw4KS/4KS4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYXJlYSIgbXNnaWQ9IjM1NDc0MDkwNTA4ODk5NTI0MjMiPiLgpJXgpY3gpLfgpYfgpKTgpY3gpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9lbWlyYXRlIiBtc2dpZD0iMjg5Mzg4MDk3ODgzNTY5ODgxOCI+IuCkh+CkruCkv+CksOClh+CknyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSIzNzc1MjY1Nzc1NDA1MTA2OTgzIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KS+IOCkrOClgeCkleCkruCkvuCksOCljeCkleCkueCksOClgiDgpLAg4KSH4KSk4KS/4KS54KS+4KS4IOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iODQ2MjM3ODIyNjYwMDQzOTY1OCI+IuCkrOCljeCksOCkvuCkieCknOCksOCksuClhyDgpK3gpY3gpLDgpK7gpKMg4KSX4KSw4KWH4KSV4KWLIOCkuOCkrOCliCBVUkwg4KS54KSw4KWC4KSV4KWLIOCkh+CkpOCkv+CkueCkvuCkuCDgpLAg4KSs4KWN4KSw4KS+4KSJ4KSc4KSw4KSV4KS+IOCkuOCkrOCliCDgpKzgpYHgpJXgpK7gpL7gpLDgpY3gpJXgpLngpLDgpYIg4KSq4KSi4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpKjgpYvgpJ86IOCkr+CliyDgpIXgpKjgpYHgpK7gpKTgpL/gpLLgpL7gpIgg4KSk4KWH4KS44KWN4KSw4KWLIOCkquCkleCljeCktyDgpKzgpY3gpLDgpL7gpIngpJzgpLDgpLngpLDgpYLgpKbgpY3gpLXgpL7gpLDgpL4g4KS14KS+IOCkteClh+CkrCDgpKzgpY3gpLDgpL7gpIngpJwg4KSX4KSw4KWN4KSo4KWHIOCkleCljeCkt+CkruCkpOCkvuCkpuCljeCkteCkvuCksOCkviDgpKzgpLLgpKrgpYLgpLDgpY3gpLXgpJUg4KSX4KSw4KS+4KSJ4KSoIOCkuOCkleCkv+CkgeCkpuCliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iMzcxNDc4NTE2NTI3MzMxNDQ5MCI+IuCkteClh+CkrCDgpKzgpYHgpJXgpK7gpL7gpLDgpY3gpJXgpLngpLDgpYIg4KSwIOCkh+CkpOCkv+CkueCkvuCkuCDgpLLgpYfgpJbgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUhpc3RvcnlCb29rbWFya3MiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY4MjU1Mjc0NjkxNDU3NjA5MjIiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkruCkviDgpK3gpKPgpY3gpKHgpL7gpLAg4KSX4KSw4KS/4KSP4KSV4KWLIOCkrOCljeCksOCkvuCkieCknOCksOCkleCliyDgpIfgpKTgpL/gpLngpL7gpLgg4KS14KS+IOCkrOClgeCkleCkruCkvuCksOCljeCkleCkueCksOClgiDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS44KSy4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKzgpY3gpLDgpL7gpJzgpLAg4KSh4KWH4KSf4KS+IOCkruClh+Ckn+CkvuCkieCkqCDgpLXgpL4g4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSoIOCkuOCkleCljeCkpuCkm+ClpCDgpJ/gpL/gpKrgpY3gpKrgpKPgpYA6IOCkr+CliyDgpIXgpKjgpYHgpK7gpKTgpL8g4KS14KWH4KSsIOCkrOCljeCksOCkvuCkieCknCDgpJfgpLDgpY3gpKjgpYcg4KSV4KWN4KS34KSu4KSk4KS+4KS54KSw4KWC4KSV4KWLIOCkuOCkvuCkpSDgpKTgpYfgpLjgpY3gpLDgpYst4KSq4KS+4KSw4KWN4KSf4KWAIOCkrOCljeCksOCkvuCkieCknOCksCDgpLXgpL4g4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkpuCljeCkteCkvuCksOCkviDgpLLgpL7gpJfgpYIg4KSX4KSw4KS/4KSP4KSV4KWLIOCkueCli+Ckh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0OTczODk1MzEwMTQxODU1MDkiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSr4KWL4KSo4KSu4KS+IOCkreCko+CljeCkoeCkvuCksOCkoyDgpK3gpI/gpJXgpYsg4KSs4KWN4KSw4KS+4KSJ4KSc4KSw4KSV4KWLIOCkh+CkpOCkv+CkueCkvuCkuCDgpLXgpL4g4KSs4KWB4KSV4KSu4KS+4KSw4KWN4KSV4KS54KSw4KWCIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpLjgpL7gpK/gpKYg4KSs4KWN4KSw4KS+4KSJ4KSc4KSwIOCkoeClh+Ckn+CkvuCksuCkvuCkiCDgpK7gpYfgpJ/gpY3gpKgg4KS14KS+IOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkqOCli+Cknzog4KS14KWH4KSsIOCkrOCljeCksOCkvuCkieCknCDgpJfgpLDgpY3gpKjgpYcg4KSV4KWN4KS34KSu4KSk4KS+4KS44KS54KS/4KSk4KSV4KS+IOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KS14KS+IOCkpOClh+CkuOCljeCksOCliy0g4KSq4KSV4KWN4KS3IOCkrOCljeCksOCkvuCkieCknOCksOCkpuCljeCkteCkvuCksOCkviDgpLjgpL7gpK/gpKYg4KSv4KS4IOCkheCkqOClgeCkruCkpOCkv+CksuCkvuCkiCDgpLLgpL7gpJfgpYEg4KSX4KSw4KWN4KSoIOCkuOCkleCkv+CkguCkpuCliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0QWxhcm0iIG1zZ2lkPSIxMzc5Mjk0NTU2MzYyMDkxODE0Ij4i4KSP4KSJ4KSf4KS+IOCkhuCksuCksOCljeCkriDgpLjgpYfgpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QWxhcm0iIG1zZ2lkPSIzMTYzOTIwMzkxNTc0NzM4NDgiPiLgpLjgpY3gpKXgpL7gpKrgpKjgpL4g4KSX4KSw4KS/4KSP4KSV4KWLIOCkuOCkmeCljeCkleClh+CkpCDgpJjgpKHgpYAg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSu4KS+IOCkuOCkmeCljeCkleClh+CkpCDgpLjgpK7gpK8g4KSu4KS/4KSy4KS+4KSJ4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkleClh+CkueClgCDgpLjgpJngpY3gpJXgpYfgpKQg4KSY4KSh4KWAIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpK/gpYsg4KS44KWB4KS14KS/4KSn4KS+IOCkleCkvuCksOCljeCkr+CkvuCkqOCljeCkteCkr+CkqCDgpKjgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hZGRWb2ljZW1haWwiIG1zZ2lkPSI1NTI1NjYwMDI2MDkwOTU5MDQ0Ij4i4KSt4KWN4KS14KS+4KSH4KS44KSu4KWH4KSyIOCkpeCkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hZGRWb2ljZW1haWwiIG1zZ2lkPSI2NjA0NTA4NjUxNDI4MjUyNDM3Ij4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkreCljeCkteCkvuCkh+CkuOCkruClh+CksiDgpIfgpKjgpKzgpJXgpY3gpLjgpK7gpL4g4KS44KSo4KWN4KSm4KWH4KS2IOCkpeCkquCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlR2VvbG9jYXRpb25QZXJtaXNzaW9ucyIgbXNnaWQ9IjU5NjIyMjQxNTg5NTUyNzM5MzIiPiLgpK3gpYLgpLjgpY3gpKXgpL7gpKgg4KSF4KSo4KWB4KSu4KSk4KS/4KS54KSw4KWCIOCkrOCljeCksOCkvuCkieCknOCksCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iMTA4Mzc0MzIzNDUyMjYzODc0NyI+IuCkrOCljeCksOCkvuCkieCknOCksOCkleCliyDgpK3gpYIt4KS44KWN4KSl4KS+4KSoIOCkheCkqOClgeCkruCkpOCkv+CkueCksOClgiDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcgIOCkuOCljeCkpeCkvuCkqCDgpLjgpYLgpJrgpKjgpL4g4KSu4KSo4KSq4KSw4KWAIOCkteClh+CkrCDgpLjgpL7gpIfgpJ/gpLngpLDgpYLgpK7gpL4g4KSq4KSg4KS+4KSJ4KSo4KWHIOCkheCkqOClgeCkruCkpOCkv+CkleCliyDgpLLgpL7gpJfgpL8g4KSv4KS44KSy4KS+4KSIIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wYWNrYWdlVmVyaWZpY2F0aW9uQWdlbnQiIG1zZ2lkPSI1NTY4MTM5MTAwNjQ1ODI5MTE3Ij4i4KSq4KWN4KSv4KSV4KWH4KSc4KS54KSw4KWC4KSV4KWLIOCkqOCkv+CksOClgOCkleCljeCkt+CkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wYWNrYWdlVmVyaWZpY2F0aW9uQWdlbnQiIG1zZ2lkPSI4NDM3NTkwMTkwOTkwODQzMzgxIj4i4KSq4KWN4KSv4KS+4KSV4KWH4KScIOCkuOCljeCkpeCkvuCkquCkqOCkviDgpK/gpYvgpJfgpY3gpK8g4KSbIOCkleCkvyDgpK3gpKjgpYfgpLAg4KSw4KWB4KSc4KWBIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFBhY2thZ2VWZXJpZmllciIgbXNnaWQ9IjQxODc3ODY3OTMzNjAzMjY2NTQiPiLgpI/gpIngpJ/gpL4g4KSq4KWN4KSv4KS+4KSV4KWH4KScIOCksOClgeCknOClgeCkleCksOCljeCkpOCkvuCkruCkviDgpKzgpL7gpIHgpKfgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUGFja2FnZVZlcmlmaWVyIiBtc2dpZD0iMzE4MDc0MTc3MzIzMzg2MjEyNiI+IuCkueCli+CksuCljeCkoeCksOCksuCkvuCkiCDgpKrgpY3gpK/gpL7gpJXgpYfgpJwg4KSq4KWN4KSw4KSu4KS+4KSj4KS/4KSk4KSV4KSw4KWN4KSk4KS+4KS54KSw4KWC4KSV4KWLIOCkheCkqOClgeCksOCli+Ckp+CkueCksOClgiDgpKzgpKjgpL7gpIngpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkleCkueCkv+CksuClhyDgpKrgpKjgpL8g4KSG4KS14KS24KWN4KSv4KSVIOCkqOCkquCksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlcmlhbFBvcnQiIG1zZ2lkPSI1NDYwODMzMjc2NTQ2MzEwNzYiPiLgpKrgpLngpYHgpIHgpJog4KS44KS/4KSw4KS/4KSv4KSyIOCkquCli+CksOCljeCkn+CkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlcmlhbFBvcnQiIG1zZ2lkPSIyOTkxNjM5OTg1MjI0NTk4MTkzIj4i4KS54KWL4KSy4KWN4KSh4KSw4KSy4KS+4KSIIFNlcmlhbE1hbmFnZXIgQVBJIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpYfgpLAg4KS44KS/4KSw4KS/4KSv4KSyIOCkquCli+CksOCljeCkn+CkueCksOClgiDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0NvbnRlbnRQcm92aWRlcnNFeHRlcm5hbGx5IiBtc2dpZD0iNTA3Nzc3NDI5Nzk0MzQwOTI4NSI+IuCkteCkv+Ckt+Ckr+CkuOClguCkmuClgCDgpKrgpY3gpLDgpKbgpL7gpKTgpL7gpLLgpL7gpIgg4KSs4KS+4KS54KWN4KSvIOCksOClguCkquCkruCkviDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29udGVudFByb3ZpZGVyc0V4dGVybmFsbHkiIG1zZ2lkPSI0NTQ0MzQ2NDg2Njk3ODUzNjg1Ij4i4KS44KWH4KSy4KSs4KS+4KSfIOCkp+CkvuCksOCkleCksuClhyDgpLXgpL/gpLfgpK/gpLXgpLjgpY3gpKTgpYEg4KSq4KWN4KSw4KSm4KS+4KSv4KSV4KS54KSw4KWC4KS44KSu4KWN4KSu4KSV4KWLIOCkquCkueClgeCkgeCkmiDgpKrgpL7gpIngpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkleCkueCkv+CksuCljeCkr+CliCDgpIbgpLXgpLbgpY3gpK/gpJUg4KSq4KSw4KWN4KSm4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91cGRhdGVMb2NrIiBtc2dpZD0iMzUyNzU1ODM2NjYxNjY4MDg4OSI+IuCkuOCljeCkteCkmuCkvuCksuCkv+CkpCDgpIngpKrgpJXgpLDgpKMg4KSF4KSq4KSh4KWH4KSf4KS54KSw4KWCIOCkueCkpOCli+CkpOCljeCkuOCkvuCkueCkv+CkpCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVMb2NrIiBtc2dpZD0iMTY1NTYyNTgzMjE2Njc3ODQ5MiI+IuCkueCli+CksuCljeCkoeCksOCksuCkvuCkiCDgpIngpKrgpJXgpLDgpKMg4KSF4KSq4KSX4KWN4KSw4KWH4KShIOCkl+CksOCljeCkqCDgpJfgpYjgpLAg4KSq4KS+4KSw4KS44KWN4KSq4KSw4KS/4KSVIOCkquClgeCkqOCkg+CkrOClgeCkn+CkleCliyDgpLLgpL7gpJfgpL8g4KSJ4KSa4KS/4KSkIOCkuOCkruCkr+CkleCliyDgpKzgpL7gpLDgpYfgpK7gpL4g4KSq4KWN4KSw4KSj4KS+4KSy4KWA4KSu4KS+IOCknOCkvuCkqOCkvuCkleCkvuCksOClgCDgpKrgpY3gpLDgpLjgpY3gpKTgpL7gpLXgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX21lc3NhZ2UiIG1zZ2lkPSI3NjczNDQ2ODcxMzkxOTU3OTAiPiLgpJXgpYcg4KSk4KSq4KS+4KSI4KSCIOCkrOCljeCksOCkvuCkieCknOCksOCksuClhyDgpK/gpYsg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkuOCkruCljeCkneClh+CkleCliyDgpJrgpL7gpLngpKjgpYHgpLngpYHgpKjgpY3gpJs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9ub3Rub3ciIG1zZ2lkPSI2Mzg5Njc1MzE2NzA2Njk5NzU4Ij4i4KSF4KS54KS/4KSy4KWHIOCkueCli+Ckh+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfcmVtZW1iZXIiIG1zZ2lkPSI2NDkxODc5Njc4OTk2NzQ5NDY2Ij4i4KS44KSu4KWN4KSd4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9uZXZlciIgbXNnaWQ9IjgyNzQzMzAyOTY3ODU4NTUxMDUiPiLgpJXgpLngpL/gpLLgpY3gpK/gpYgg4KSq4KSo4KS/IOCkueCli+Ckh+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9wZW5fcGVybWlzc2lvbl9kZW55IiBtc2dpZD0iNzM3NDAzNjcwODMxNjYyOTgwMCI+IuCkr+CliyDgpKrgpYPgpLfgpY3gpKAg4KSW4KWL4KSy4KWN4KSoIOCkpOCkquCkvuCkiOCkgeCksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV4dF9jb3BpZWQiIG1zZ2lkPSI0OTg1NzI5NTI0NjcwMTMxMzg1Ij4i4KSV4KWN4KSy4KS/4KSq4KSs4KWL4KSw4KWN4KSh4KSu4KS+IOCkquCljeCksOCkpOCkv+CksuCkv+CkqiDgpJfgpLDgpL/gpI/gpJXgpYsg4KSq4KS+4KSg4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9yZV9pdGVtX2xhYmVsIiBtc2dpZD0iNDY1MDkxODkyMzA4MzMyMDQ5NSI+IuCkrOCkouClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBlbmRfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIyNTcyMjE0NDYxNjc2MDE1NjQyIj4i4KSu4KWH4KSo4KWBKyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc3BhY2Vfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIyNDEwMzI4NjM5MjcyMTYyNTM3Ij4i4KSg4KS+4KSJ4KSBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9lbnRlcl9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI3NDMzNjI3ODUxMTEzMDk2NjgiPiLgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGVfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIzNjU4MTc4MDA3MjAyNzQ4MTY0Ij4i4KSu4KWH4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoX2dvIiBtc2dpZD0iODI5ODAxNjY2OTgyMjE0MTcxOSI+IuCkluCli+CknOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fc2VhcmNoIiBtc2dpZD0iNjc0OTgyNjYzOTA5ODUxMjEyMCI+IuCkluCli+CknOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fcXVlcnkiIG1zZ2lkPSI1OTExNzc4NTkzMTI1MzU1MTI0Ij4i4KSc4KS/4KSc4KWN4KSe4KS+4KS44KS+IOCkluCli+CknCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX2NsZWFyIiBtc2dpZD0iMTMzMDI4MTk5MDk1MTgzMzAzMyI+IuCkquCljeCksOCktuCljeKAjeCkqCDgpLngpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX3N1Ym1pdCIgbXNnaWQ9IjI2ODg0NTAxMzMyOTc5ODM1NDIiPiLgpJzgpL/gpJzgpY3gpJ7gpL7gpLjgpL4g4KSq4KWH4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fdm9pY2UiIG1zZ2lkPSIyNDUzMjAzNjk1Njc0OTk0NDQwIj4i4KSt4KWN4KS14KS+4KSH4KS4IOCkluCli+CknOClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSI3NDYwNjk0MDcwMzA5NzMwMTQ5Ij4i4KSb4KWL4KSP4KSwIOCkheCkqOCljeCkteClh+Ckt+CkoyDgpJfgpLDgpY3gpKjgpYcg4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODY1NTg4NzUzOTA4OTkxMDU3NyI+Ijx4bGlmZjpnIGlkPSJBQ0NFU1NJQklMSVRZX1NFUlZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz7gpLLgpYcg4KS44KWN4KSq4KSw4KWN4KS34KSm4KWN4KS14KS+4KSw4KS+IOCkheCkqOCljeCkteClh+Ckt+CkoyDgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KWN4KSoIOCkmuCkvuCkueCkqOCljeCkm+ClpCDgpLjgpY3gpKrgpLDgpY3gpLfgpKbgpY3gpLXgpL7gpLDgpL4g4KSF4KSo4KWN4KS14KWH4KS34KSjIOCkuOCkleCljeCkt+CkriDgpK3gpI/gpJXgpYsg4KSs4KWH4KSy4KS+LCDgpKTgpKrgpL7gpIjgpIEg4KSG4KSr4KWN4KSo4KWLIOCklOCkgeCksuCkvuCkleCliyDgpK7gpYHgpKjgpL8g4KSt4KSP4KSV4KS+IOCkteCkv+Ckt+Ckr+CkteCkuOCljeCkpOClgeCkueCksOClgiDgpKzgpL7gpLDgpYcg4KS44KWB4KSo4KWN4KSoIOCkteCkviDgpLXgpL/gpLXgpLDgpKMg4KS54KWH4KSw4KWN4KSoIOCkuOCkleCljeCkqOClgeCkueClgeCkqOCljeCkmyDgpLXgpL4g4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KS44KSB4KSXIOCkheCkqOCljeCkpOCksOCljeCkleCljeCksOCkv+Ckr+CkviDgpJfgpLDgpY3gpKgg4KSH4KS24KS+4KSw4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI3MDgxOTk2NzI4NTIzNzMxOTUiPiI8eGxpZmY6ZyBpZD0iQUNDRVNTSUJJTElUWV9TRVJWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+4KSy4KWHIOCkuOCljeCkquCksOCljeCkt+CkpuCljeCkteCkvuCksOCkviDgpIXgpKjgpY3gpLXgpYfgpLfgpKMg4KS44KSV4KWN4KS34KSuIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpY3gpJvgpaQg4KS44KWN4KSq4KSw4KWN4KS34KSm4KWN4KS14KS+4KSw4KS+IOCkheCkqOCljeCkteClh+Ckt+CkoyDgpLjgpJXgpY3gpLfgpK4g4KSt4KSP4KSV4KWLIOCkrOClh+CksuCkviDgpKTgpKrgpL7gpIjgpIEg4KSG4KSr4KWN4KSo4KWLIOCklOCkgeCksuCkvuCkleCliyDgpK7gpYHgpKjgpL8g4KSt4KSP4KSV4KS+IOCkteCkv+Ckt+Ckr+CkteCkuOCljeCkpOClgeCkueCksOClgiDgpKzgpL7gpLDgpYcg4KS44KWB4KSo4KWN4KSoIOCkteCkviDgpLXgpL/gpLXgpLDgpKMg4KS54KWH4KSw4KWN4KSoIOCkuOCkleCljeCkqOClgeCkueClgeCkqOCljeCkmyDgpLXgpL4g4KSr4KWL4KSo4KS44KSB4KSXIOCkheCkqOCljeCkpOCksOCljeCkleCljeCksOCkv+Ckr+CkviDgpJfgpLDgpY3gpKgg4KSH4KS24KS+4KSw4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9uZU1vbnRoRHVyYXRpb25QYXN0IiBtc2dpZD0iNzM5NjM4NDUwODk1Mzc3OTkyNSI+IuClpyDgpK7gpLngpL/gpKjgpL4g4KSF4KSY4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmVmb3JlT25lTW9udGhEdXJhdGlvblBhc3QiIG1zZ2lkPSI5MDkxMzQ1NDY4MzY0OTk4MjYiPiLgpacg4KSu4KS54KS/4KSo4KS+IOCkheCkmOCkvyI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX3NlY29uZHNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDg2OTg3MDA1NjU0Nzg5NjAxMSI+IuClpyDgpLjgpYfgpJXgpYfgpKjgpY3gpKEg4KSF4KSY4KS/IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzOTAzNzA2ODA0MzQ5NTU2Mzc5Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KS44KWH4KSV4KWH4KSo4KWN4KShIOCkheCkmOCkvyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX21pbnV0ZXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzMwNjc4NzQzMzA4ODgxMDE5MSI+IuClpyDgpK7gpL/gpKjgpYfgpJ8g4KSF4KSY4KS/IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMTc2OTQyMDA4OTE1NDU1MTE2Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSu4KS/4KSo4KWH4KSfIOCkheCkmOCkvyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX2hvdXJzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjkxNTA3OTc5NDQ2MTA4MjE4NDkiPiLgpacg4KSY4KSo4KWN4KSf4KS+IOCkheCkmOCkvyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjQ2NzI3MzIzOTU4NzU4NzU2OSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkmOCkqOCljeCkn+CkviDgpIXgpJjgpL8iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Imxhc3RfbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjMwNjk5OTI4MDgxNjQzMTgyNjgiPiLgpIXgpKjgpY3gpKTgpL/gpK4gPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSm4KS/4KSoIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ibGFzdF9tb250aCIgbXNnaWQ9IjM5NTkzNDY3Mzk5NzkwNTU0MzIiPiLgpIXgpKjgpY3gpKTgpL/gpK4g4KSu4KS54KS/4KSo4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkZXIiIG1zZ2lkPSI1MjExOTc1MDIyODE1NTU0ODQwIj4i4KSq4KWB4KSw4KS+4KSo4KWLIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJudW1fZGF5c19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4NjEzNTg1MzQzOTgxMTU4MjAiPiLgpLngpL/gpJzgpYsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI0Nzk1ODY0NjYxNTMzMTQ2MzMiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDgpKbgpL/gpKgg4KSF4KSY4KS/IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fc2Vjb25kcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjI3Mjk3NDU1NjA5NTQ5MDUxMDIiPiLgpacg4KS44KWH4KSV4KWH4KSo4KWN4KSh4KSu4KS+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMjQxOTI2MTE2NDQzOTc0Njg3Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KS44KWH4KSV4KWH4KSo4KWN4KSh4KSu4KS+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9Ijg3OTMwOTUyNTEzMjUyMDAzOTUiPiLgpacg4KSu4KS/4KSo4KWH4KSf4KSu4KS+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzMzMwNzEzOTM2Mzk5NDQ4NzQ5Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz7gpK7gpL/gpKjgpYfgpJ/gpK7gpL4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImluX251bV9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjcxNjQzNTMzNDI0Nzc3Njk5OTkiPiLgpacg4KSY4KSo4KWN4KSf4KS+4KSu4KS+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDcyOTA2NzczNTM3MjczODkiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDgpJjgpKjgpY3gpJ/gpL7gpK7gpL4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImluX251bV9kYXlzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTQxMzA4ODc0MzAwOTgzOTUxOCI+IuCkreCli+CksuCkvyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTEwOTQ0OTM3NTEwMDk1MzI0NyI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkpuCkv+CkqOCkruCkviI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X251bV9zZWNvbmRzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjE4NDkwMzY4NDAyMDAwNjkxMTgiPiLgpacg4KS44KWH4KSV4KWH4KSo4KWN4KShIOCkheCkmOCkvyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzY5OTE2OTM2NjY1MDkzMDQxNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoSDgpIXgpJfgpL7gpKHgpL8iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1fbWludXRlc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2MzYxNDkwMTQ3MTEzODcxNTQ1Ij4i4KWnIOCkruCkv+CkqOClh+CknyDgpIXgpJjgpL8iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg1MTE2NDk2ODU5NzE1MDcxMCI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkruCkv+CkqOClh+CknyDgpIXgpJjgpL8iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1faG91cnNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDc5NjIxMjAzOTcyNDcyMjExNiI+IuClpyDgpJjgpKjgpY3gpJ/gpL4g4KSF4KSY4KS/IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2ODg5OTcwNzQ1NzQ4NTM4OTAxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSY4KSo4KWN4KSf4KS+IOCkheCkmOCkvyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X251bV9kYXlzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9Ijg0NjMxNjE3MTE0OTI2ODAzMDkiPiLgpLngpL/gpJzgpYsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM0NTMzNDI2Mzk2MTY0ODExOTEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDgpKbgpL/gpKgg4KSF4KSY4KS/IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfaW5fbnVtX3NlY29uZHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODQyMjI1MzcwNzk1MDY2Mjk5Ij4i4KWnIOCkuOClh+CkleCkqOCljeCkoSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ5NTg4MDEwODgyNTgwNTEwOCI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9taW51dGVzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTYyNzg2MTQ5OTI4Mjg0ODc4Ij4i4KWnIOCkruCkv+CkqOClh+Ckn+CkruCkviI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDIxNjExMzI5MjcwNjU2ODcyNiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkruCkv+CkqOClh+Ckn+CkruCkviI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNzQ3MDgxMTgxMjQwNDUyNDYiPiLgpacg4KSY4KSo4KWN4KSf4KS+4KSu4KS+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzNzA1MzczNzY2Nzk4MDEzNDA2Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSY4KSo4KWN4KSf4KS+4KSu4KS+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfaW5fbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIyMTc4NTc2MjU0Mzg1NzM5ODU1Ij4i4KSt4KWL4KSy4KS/IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyOTczMDYyOTY4MDM4MzU1OTkxIj4i4KSm4KS/4KSoPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSu4KS+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0icHJlcG9zaXRpb25fZm9yX2RhdGUiIG1zZ2lkPSI5MDkzOTQ5NzU3NzU3NDQ1MTE3Ij4iPHhsaWZmOmcgaWQ9IkRBVEUiPiVzPC94bGlmZjpnPiDgpK7gpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVwb3NpdGlvbl9mb3JfdGltZSIgbXNnaWQ9IjU1MDY4MzEyNDQyNjMwODM3OTMiPiI8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+IOCkruCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl95ZWFyIiBtc2dpZD0iNTA0MDM5NTY0MDcxMTg2NzE3NyI+Ijx4bGlmZjpnIGlkPSJZRUFSIj4lczwveGxpZmY6Zz4g4KSu4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5IiBtc2dpZD0iODE0NDE5NTc3NjA1ODExOTQyNCI+IuCkpuCkv+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheXMiIG1zZ2lkPSI0Nzc0NTQ3NjYxMDIxMzQ0NjAyIj4i4KSm4KS/4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91ciIgbXNnaWQ9IjIxMjY3NzE5MTY0MjYxODk0ODEiPiLgpJjgpKjgpY3gpJ/gpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VycyIgbXNnaWQ9Ijg5NDQyNDAwNTI2Njg1Mjk5MyI+IuCkmOCkqOCljeCkn+CkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZSIgbXNnaWQ9IjkxNDg4Nzg2NTc3MDM3Njk4NjgiPiLgpK7gpL/gpKjgpYfgpJ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVzIiBtc2dpZD0iNTY0NjAwMTAwNTgyNzAzNDUwOSI+IuCkruCkv+CkqOClh+CknyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlY29uZCIgbXNnaWQ9IjMxODQyMzU4MDgwMjE0NzgiPiLgpLjgpYfgpJXgpYfgpKjgpY3gpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWNvbmRzIiBtc2dpZD0iMzE2MTUxNTM0NzIxNjU4OTIzNSI+IuCkuOClh+CkleClh+CkqOCljeCkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlZWsiIG1zZ2lkPSI1NjE3OTYxNTM3MTczMDYxNTgzIj4i4KS54KSq4KWN4KSk4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2Vla3MiIG1zZ2lkPSI2NTA5NjIzODM0NTgzOTQ0NTE4Ij4i4KS54KSq4KWN4KSk4KS+4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhciIgbXNnaWQ9IjQwMDExMTgyMjEwMTM4OTIwNzYiPiLgpLXgpLDgpY3gpLciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFycyIgbXNnaWQ9IjY4ODE1Nzc3MTc5OTMyMTM1MjIiPiLgpLXgpLDgpY3gpLfgpLngpLDgpYIiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImR1cmF0aW9uX3NlY29uZHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2OTYyMDE1NTI4MzcyOTY5NDgxIj4i4KWnIOCkuOClh+CkleClh+CkqOCljeCkoSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTg4NjEwNzc2NjU3NzE2Njc4NiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iZHVyYXRpb25fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ5MTU0MTQwMDI1NDYwODU2MTciPiLgpacg4KSu4KS/4KSo4KWH4KSfIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzMTY1MTg3MTY5MjI0OTA4Nzc1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSu4KS/4KSo4KWH4KSfIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJkdXJhdGlvbl9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9Ijg5MTc0Njc0OTEyNDg4MDk5NzIiPiLgpacg4KSY4KSo4KWN4KSf4KS+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzODYzOTYyODU0MjQ2NzczOTMwIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSY4KSo4KWN4KSf4KS+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RpdGxlIiBtc2dpZD0iMzUzNDUwOTEzNTQzODM1MzA3NyI+IuCkreCkv+CkoeCkv+Ckr+CliyDgpLjgpK7gpLjgpY3gpK/gpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfdGV4dF9pbnZhbGlkX3Byb2dyZXNzaXZlX3BsYXliYWNrIiBtc2dpZD0iMzE4NjY3MDMzNTkzODY3MDQ0NCI+IuCkr+CliyDgpK3gpL/gpKHgpL/gpK/gpYsg4KSv4KS4IOCkieCkquCkleCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KS44KWN4KSf4KWN4KSw4KS/4KSu4KS/4KSZIOCkl+CksOCljeCkqCDgpK7gpL7gpKjgpY3gpK8g4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RleHRfdW5rbm93biIgbXNnaWQ9IjM0NTA0MzkxNTUxODc4MTAwODUiPiLgpK/gpYsg4KSt4KS/4KSh4KS/4KSv4KWLIOCkmuCksuCkvuCkieCkqCDgpLjgpJXgpY3gpKbgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfYnV0dG9uIiBtc2dpZD0iMjgyMjIzODIxNTEwMDY3OTU5MiI+IuCkoOClgOCklSDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGl2ZV90aW1lIiBtc2dpZD0iMTgxODU1NzE3NzgyOTQxMTQxNyI+Ijx4bGlmZjpnIGlkPSJEQVRFIj4lMSRzPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IlRJTUUiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9vbiIgbXNnaWQ9IjcyNDUzNTM1Mjg4MTg1ODc5MDgiPiLgpK7gpKfgpY3gpK/gpL7gpKjgpY3gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJOb29uIiBtc2dpZD0iMzM0MjEyNzc0NTIzMDAxMzEyNyI+IuCkruCkp+CljeCkr+CkvuCkqOCljeCkuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pZG5pZ2h0IiBtc2dpZD0iNzE2NjI1OTUwODg1MDQ1NzU5NSI+IuCkruCkp+CljeCkr+CksOCkvuCkpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Ik1pZG5pZ2h0IiBtc2dpZD0iNTYzMDgwNjkwNjg5Nzg5MjIwMSI+IuCkruCkp+CljeCkr+CksOCkvuCkpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVsYXBzZWRfdGltZV9zaG9ydF9mb3JtYXRfbW1fc3MiIG1zZ2lkPSI0NDMxNTU1OTQzODI4NzExNDczIj4iPHhsaWZmOmcgaWQ9Ik1JTlVURVMiPiUxJDAyZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9IlNFQ09ORFMiPiUyJDAyZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGFwc2VkX3RpbWVfc2hvcnRfZm9ybWF0X2hfbW1fc3MiIG1zZ2lkPSIxODQ2MDcxOTk3NjE2NjU0MTI0Ij4iPHhsaWZmOmcgaWQ9IkhPVVJTIj4lMSRkPC94bGlmZjpnPjo8eGxpZmY6ZyBpZD0iTUlOVVRFUyI+JTIkMDJkPC94bGlmZjpnPjo8eGxpZmY6ZyBpZD0iU0VDT05EUyI+JTMkMDJkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdEFsbCIgbXNnaWQ9IjY4NzY1MTg5MjU4NDQxMjkzMzEiPiLgpLjgpKzgpYjgpLLgpL7gpIgg4KSa4KSv4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1dCIgbXNnaWQ9IjMwOTI1Njk0MDg0Mzg2MjYyNjEiPiLgpJXgpL7gpJ/gpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb3B5IiBtc2dpZD0iMjY4MTk0NjIyOTUzMzUxMTk4NyI+IuCkquCljeCksOCkpOCkv+CksuCkv+CkquCkvyDgpKzgpKjgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXN0ZSIgbXNnaWQ9IjU2Mjk4ODA4MzY4MDUwMzY0MzMiPiLgpJ/gpL7gpIHgpLjgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXBsYWNlIiBtc2dpZD0iNTc4MTY4NjA1OTA2MzE0ODkzMCI+IuCkteCkv+CkuOCljeCkpeCkvuCkquCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3igKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGUiIG1zZ2lkPSI2MDk4Njg0ODQ0MDIxNjk3Nzg5Ij4i4KSu4KWH4KSf4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29weVVybCIgbXNnaWQ9IjI1MzgyMTE1Nzk1OTYwNjc0MDIiPiJVUkwg4KSV4KWLIOCkquCljeCksOCkpOCkv+CksuCkv+CkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RUZXh0TW9kZSIgbXNnaWQ9IjEwMTg2OTE4MTUxNDMxNjUzMjYiPiLgpKrgpL7gpKAg4KSa4KSv4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRleHRTZWxlY3Rpb25DQUJUaXRsZSIgbXNnaWQ9IjUyMzY4NTAzOTQzNzA4MjAzNTciPiLgpKrgpL7gpKAg4KSa4KSv4KSo4KSk4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkVG9EaWN0aW9uYXJ5IiBtc2dpZD0iNDM1MjE2MTUzNDUxMDA1Nzg3NCI+IuCktuCkrOCljeCkpuCkleCli+CktuCkruCkviDgpKXgpKrgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVUZXh0IiBtc2dpZD0iNjk3OTY2ODQyODQ1ODE5OTAzNCI+IuCkruClh+Ckn+CljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImlucHV0TWV0aG9kIiBtc2dpZD0iMTY1MzYzMDA2MjMwNDU2Nzg3OSI+IuCkqOCkv+CkteClh+CktiDgpLXgpL/gpKfgpL8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlZGl0VGV4dE1lbnVUaXRsZSIgbXNnaWQ9IjQ5MDkxMzU1NjQ5NDE4MTU0OTQiPiLgpKrgpL7gpKAg4KSV4KS+4KSw4KWN4KSv4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X2ludGVybmFsX3N0b3JhZ2Vfdmlld190aXRsZSIgbXNnaWQ9IjU1NzYyNzI0OTYzNjU2ODQ4MzQiPiLgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSg4KS+4KSJ4KSBIOCkuOCkleCkv+CkgeCkpuCliCDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfaW50ZXJuYWxfc3RvcmFnZV92aWV3X3RleHQiIG1zZ2lkPSI2NjQwNTA1ODE3NjE3NDE0MzcxIj4i4KS44KS+4KSv4KSmIOCkleClh+CkueClgCDgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KSV4KS+4KSw4KWN4KSv4KSV4KWN4KSw4KSu4KS54KSw4KWC4KSy4KWHIOCkleCkvuCkriDgpJfgpLDgpY3gpKbgpYjgpKjgpKjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfcnVubmluZ19ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4NzE4MzM1MTIxMDYwNzg3OTE0Ij4iPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiDgpJrgpLLgpL/gpLDgpLngpYfgpJXgpYsg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX3J1bm5pbmdfbm90aWZpY2F0aW9uX3RleHQiIG1zZ2lkPSI0NjUzNTg2OTQ3NzQ3MzMwMDU4Ij4i4KSl4KSqIOCkuOClguCkmuCkqOCkvuCkleCliyDgpLLgpL7gpJfgpL8g4KSb4KWB4KSo4KWB4KS54KWL4KS44KWNIOCkteCkviDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9rIiBtc2dpZD0iNTk3MDA2MDQzMDU2MjUyNDkxMCI+IuCkoOCkv+CklSDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI2NDQyNTYwNTcxMjU5OTM1MTMwIj4i4KSw4KSm4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllcyIgbXNnaWQ9IjUzNjI5ODIzMDMzMzc5NjkzMTIiPiLgpKDgpL/gpJUg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm8iIG1zZ2lkPSI1MTQxNTMxMDQ0OTM1NTQxNDk3Ij4i4KSw4KSm4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpYWxvZ19hbGVydF90aXRsZSIgbXNnaWQ9IjIwNDk2NTg3MDg2MDkwNDMxMDMiPiLgpLjgpL7gpLXgpKfgpL7gpKjgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2FkaW5nIiBtc2dpZD0iNzkzMzY4MTI2MDI5NjAyMTE4MCI+IuCksuCli+CkoSDgpLngpYHgpIHgpKbgpYguLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBpdGFsX29uIiBtc2dpZD0iMTU0NDY4Mjc1NTUxNDQ5NDI5OCI+IuCkmuCkvuCksuClgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGl0YWxfb2ZmIiBtc2dpZD0iNjgxNTg3MDM4Njk3MjgwNTgzMiI+IuCkrOCkqOCljeCkpiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndoaWNoQXBwbGljYXRpb24iIG1zZ2lkPSI0NTMzMTg1OTQ3MDY0NzczMzg2Ij4i4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClh+CksCDgpJXgpL7gpLDgpKzgpL7gpLngpYAg4KSq4KWB4KSw4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c1VzZSIgbXNnaWQ9IjQ1ODMwMTgzNjgwMDA2MTA0MzgiPiLgpK/gpLgg4KSV4KS+4KSw4KWN4KSv4KSV4KWLIOCksuCkvuCkl+CkvyDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKTgpKzgpL7gpJ8g4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNsZWFyRGVmYXVsdEhpbnRNc2ciIG1zZ2lkPSIzMjUyNTg0Njg5NTEyMDc3MjU3Ij4i4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkuOClh+Ckn+Ckv+CkmeCkueCksOClguCkruCkviDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKTgpLLgpL7gpIgg4KS54KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNICZndDsg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCICZndDsg4KSh4KS+4KSJ4KSo4KSy4KWL4KSh4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlQWN0aXZpdHkiIG1zZ2lkPSI3NDg2ODc2MTQ3NzUxODAzMzMzIj4i4KSP4KSJ4KSf4KS+IOCkleCkvuCksOCljeCkr+CkleCliyDgpJrgpK/gpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlVXNiQWN0aXZpdHkiIG1zZ2lkPSI2ODk0NzQ4NDE2MDczNTgzNTA5Ij4iVVNCIOCkieCkquCkleCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KSP4KSJ4KSf4KS+IOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpJvgpL7gpKjgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub0FwcGxpY2F0aW9ucyIgbXNnaWQ9IjI5OTE4MTQyNzM5MzY1MDQ2ODkiPiLgpJXgpYHgpKjgpYgg4KSq4KSo4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpK/gpYsg4KSV4KS+4KSw4KWN4KSvIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpYjgpKjgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX3RpdGxlIiBtc2dpZD0iMTkwNTgwMDU2MDMxNzEzNzc1MiI+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX2FwcGxpY2F0aW9uIiBtc2dpZD0iOTMyNjI4NDg4MDEzMDkyNzc2Ij4i4KSm4KWB4KSw4KWN4KSt4KS+4KSX4KWN4KSv4KS14KS2LCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+4KSy4KWHIOCksOCli+CkleClh+CkleCliyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX3Byb2Nlc3MiIG1zZ2lkPSI0NTA3MDU4OTk3MDM1Njk3NTc5Ij4i4KSm4KWB4KSw4KWN4KSt4KS+4KSX4KWN4KSv4KS14KS2LCDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL4gPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+IOCkrOCkqOCljeCkpiDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfdGl0bGUiIG1zZ2lkPSI0MzUxOTQ4NDgxNDU5MTM1NzA5Ij48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hY3Rpdml0eV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjE5MDQ0NzcxODkwNTcxOTkwNjYiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUyJHM8L3hsaWZmOmc+4KSy4KWHIOCkleCkvuCksOCljeCkryDgpJfgpLDgpL/gpLDgpLngpYfgpJXgpYsg4KSb4KWI4KSo4KWkXG5cbuCkleClhyDgpKTgpKrgpL7gpIjgpIEg4KSv4KS44KSy4KS+4KSIIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKgg4KSa4KS+4KS54KSo4KWBIOCkueClgeCkqOCljeCkmz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfYWN0aXZpdHlfcHJvY2VzcyIgbXNnaWQ9IjU3NzYyMDk4ODMyOTkwODk3NjciPiLgpJfgpKTgpL/gpLXgpL/gpKfgpL8gPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiDgpLLgpYcg4KSq4KWN4KSw4KSk4KS/4KSV4KWN4KSw4KS/4KSv4KS+IOCkpuClh+CkluCkvuCkh+CksOCkueClh+CkleCliyDgpJvgpYjgpKjgpaRcblxu4KSV4KWHIOCkpOCkquCkvuCkiOCkgiDgpK/gpLjgpLLgpL7gpIgg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hcHBsaWNhdGlvbl9wcm9jZXNzIiBtc2dpZD0iODk0MTc1NzYwNzM0MDQ4MTA1NyI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g4KSc4KS14KS+4KSrIOCkpuCkv+Ckh+CksOCkueClh+CkleCliyDgpJvgpYjgpKjgpaQg4KSV4KWHIOCkpOCkquCkvuCkiOCkgSDgpK/gpLjgpLLgpL7gpIgg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9wcm9jZXNzIiBtc2dpZD0iNjUxMzIwOTg3NDg4MDUxNzEyNSI+IuCkquCljeCksOCkleCljeCksOCkv+Ckr+CkviA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz7gpLLgpYcg4KSV4KS+4KSw4KWN4KSvIOCkl+CksOCkv+CksOCkueClh+CkleCliyDgpJvgpYjgpKjgpaRcblxu4KSV4KWHIOCkpOCkquCkvuCkiOCkgSDgpK/gpLjgpLLgpL7gpIgg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcmNlX2Nsb3NlIiBtc2dpZD0iODM0NjA3MjA5NDUyMTI2NTYwNSI+IuCkoOCkv+CklSDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXBvcnQiIG1zZ2lkPSI0MDYwMjE4MjYwOTg0Nzk1NzA2Ij4i4KSw4KS/4KSq4KWL4KSw4KWN4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndhaXQiIG1zZ2lkPSI3MTQ3MTE4MjE3MjI2MzE3NzMyIj4i4KSq4KWN4KSw4KSk4KWA4KSV4KWN4KS34KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlYnBhZ2VfdW5yZXNwb25zaXZlIiBtc2dpZD0iMzI3Mjc1ODM1MTEzODEyMjUwMyI+IuCkquClg+Ckt+CljeCkoCDgpJfgpYjgpLAg4KSc4KS/4KSu4KWN4KSu4KWH4KS14KS+4KSw4KWAIOCkreCkj+CkleCliyDgpJvgpaRcblxu4KSV4KWHIOCkpOCkquCkvuCkiOCkgiDgpK/gpLjgpLLgpL7gpIgg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYHgpLngpYHgpKjgpY3gpJs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSIxNTQ3OTk3NzgwNTA2NzEzNTgxIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkquClgeCkqOCkgyDgpKjgpL/gpLDgpY3gpKbgpYfgpLbgpYDgpKQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYXVuY2hfd2FybmluZ19yZXBsYWNlIiBtc2dpZD0iNjIwMjQ5ODk0OTk3MDI4MTQxMiI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4g4KSF4KS54KS/4KSy4KWHIOCkmuCksuCkv+CksOCkueClh+CkleCliyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYXVuY2hfd2FybmluZ19vcmlnaW5hbCIgbXNnaWQ9IjE4ODEwMjAyMzAyMTY2ODY4MyI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4g4KS14KS+4KS44KWN4KSk4KS14KS/4KSVIOCkuOClgeCksOClgeCkteCkvuCkpCDgpK3gpI/gpJXgpYsg4KSl4KS/4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX3NjYWxlIiBtc2dpZD0iMzIwMjk1NTY2NzY3NTk0NDQ5OSI+IuCkuOCljeCkleClh+CksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9zaG93IiBtc2dpZD0iNDAxMzg3ODg3NjQ4NjY1NTg5MiI+IuCkuOCkp+CliOCkgSDgpKbgpYfgpJbgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fY29tcGF0X21vZGVfaGludCIgbXNnaWQ9IjEwNjQ1MjQwODQ1NDMzMDQ0NTkiPiLgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWC4KSu4KS+IOCkr+CkuOCksuCkvuCkiCDgpKrgpYHgpKjgpIPgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNICZndDsg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCICZndDsg4KSh4KS+4KSJ4KSo4KSy4KWL4KShIOCkl+CksOClh+CkleCli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtdl9hcHBsaWNhdGlvbiIgbXNnaWQ9IjMzMDcyMDkxOTIxNTU0NDI4MjkiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiAo4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+IDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMiRzPC94bGlmZjpnPikg4KSy4KWHIOCkr+CkuOCkleCliyDgpLjgpY3gpLXgpK/gpIIt4KSy4KS+4KSX4KWBIOCkl+CksOCkv+Ckj+CkleCliyDgpLjgpY3gpJ/gpY3gpLDgpL/gpJ/gpK7gpYvgpKEg4KSo4KWA4KSk4KS/IOCkieCksuCkmeCljeCkmOCkqCDgpJfgpLDgpYfgpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic212X3Byb2Nlc3MiIG1zZ2lkPSI1MTIwMzk3MDEyMDQ3NDYyNDQ2Ij4i4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+IDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDgpK/gpLjgpJXgpYsg4KSG4KSr4KWN4KSo4KWIIOCkleCkoeCkvuCkruCli+CkoSDgpKjgpYDgpKTgpL/gpJXgpL4g4KSV4KS+4KSw4KSjIOCkieCksuCljeCksuCkmeCljeCkmOCkqCDgpJfgpLDgpL/gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfdGl0bGUiIG1zZ2lkPSIxNTg0MTkyMjg1NDQxNDA1NzQ2Ij4i4KSP4KSo4KWN4KSh4KWN4KSw4KWL4KSH4KShIOCkheCkquCkl+CljeCksOClh+CkoSDgpLngpYHgpIHgpKbgpYjgpJvigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19hcGsiIG1zZ2lkPSI3OTA0MDQyNjgyMTExNTI2MTY5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkheCkqOClgeCkleClgeCksiDgpLngpYHgpIHgpKbgpYggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRkPC94bGlmZjpnPiDgpJXgpYsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRkPC94bGlmZjpnPuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX3N0YXJ0aW5nX2FwcHMiIG1zZ2lkPSI0NTE0NjQ1MTYzNDY5MjY3MTMiPiLgpLjgpYHgpLDgpYHgpLXgpL7gpKQg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfY29tcGxldGUiIG1zZ2lkPSIxNDA1OTU0NzU0MTEyOTk5MjI5Ij4i4KSs4KWB4KSfIOCkquClgeCksOCkviDgpLngpYHgpIHgpKbgpYjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfbm90aWZpY2F0aW9uIiBtc2dpZD0iOTA4NzA2Mzk4NTc3NjYyNjE2NiI+Ijx4bGlmZjpnIGlkPSJBUFAiPiUxJHM8L3hsaWZmOmc+IOCkmuCksuCkv+CksOCkueClh+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfbm90aWZpY2F0aW9uX2RldGFpbCIgbXNnaWQ9IjE3MjE2ODE3NDE2MTc4OTg4NjUiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpK7gpL4g4KS44KWN4KS14KS/4KSaIOCkl+CksOCljeCkqCDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfc3dpdGNoZXJfdGl0bGUiIG1zZ2lkPSI3MTUzMTY3MDg1NDAzMjk4MTY5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIOCkuOCljeCkteCkv+CkmiDgpJfgpLDgpY3gpKjgpYcg4KS54KWLPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9zd2l0Y2hlcl90ZXh0IiBtc2dpZD0iNzAyMjYzMTkyNDUzNDQwNjQwMyI+IuCkheCksOCljeCkleCliyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSq4KS54KS/4KSy4KWHIOCkqOCliCDgpJrgpL7gpLLgpYEg4KSbIOCknOClgeCkqCDgpKTgpKrgpL7gpIjgpILgpLLgpYcg4KSP4KSJ4KSf4KS+IOCkqOCkr+CkvuCkgSDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSo4KWBIOCkheCkmOCkvyDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSo4KWB4KSq4KSw4KWN4KSo4KWHIOCkueClgeCkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9sZF9hcHBfYWN0aW9uIiBtc2dpZD0iNDkzMTI5MTcyMjM4NTY2MjgyIj4iPHhsaWZmOmcgaWQ9Ik9MRF9BUFAiPiUxJHM8L3hsaWZmOmc+IOCkruCkviDgpKvgpLDgpY3gpJXgpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvbGRfYXBwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjA4MjA5NDI3NTU4MDM1ODA0OSI+IuCkqOCkr+CkvuCkgSDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KS44KWB4KSw4KWBIOCkqOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5ld19hcHBfYWN0aW9uIiBtc2dpZD0iNTQ3Mjc1NjkyNjk0NTQ0MDcwNiI+Ijx4bGlmZjpnIGlkPSJPTERfQVBQIj4lMSRzPC94bGlmZjpnPiDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmV3X2FwcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjE5MzIxNDM1OTgzNzE1MzczNDAiPiLgpKzgpJrgpKQg4KSo4KSX4KSw4KWAIOCkquClgeCksOCkvuCkqOCliyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSw4KWL4KSV4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VuZFRleHQiIG1zZ2lkPSI1MjA5ODc0NTcxOTU5NDY5MTQyIj4i4KSq4KS+4KSg4KSV4KWLIOCksuCkvuCkl+CkvyDgpI/gpIngpJ/gpL4g4KSq4KWN4KSw4KSV4KS+4KSw4KWN4KSvIOCkm+CkvuCkqOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9yaW5ndG9uZSIgbXNnaWQ9IjY4ODU0MjE0MDY4NDU3MzQ2NTAiPiLgpKzgpJzgpL7gpIngpKjgpYcg4KSu4KS+4KSk4KWN4KSw4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljIiBtc2dpZD0iNTQyMTY1MTE1NzEzODYyODE3MSI+IuCkruCkv+CkoeCkv+Ckr+CkvuCkleCliyDgpK7gpL7gpKTgpY3gpLDgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfbXVzaWNfaGludF9wbGF5aW5nX3Rocm91Z2hfYmx1ZXRvb3RoIiBtc2dpZD0iOTE2NTk4NDM3OTM5NDYwMTUzMyI+IuCkrOCljeCksuClgeCkn+ClgeCkpeCkleCliyDgpK7gpL7gpKfgpY3gpK/gpK7gpKbgpY3gpLXgpL7gpLDgpL4g4KSs4KSc4KS+4KSH4KSm4KWIIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9tdXNpY19oaW50X3NpbGVudF9yaW5ndG9uZV9zZWxlY3RlZCIgbXNnaWQ9IjgzMTA3Mzk5NjA5NzMxNTYyNzIiPiLgpLbgpL7gpKjgpY3gpKQg4KSw4KS/4KSZ4KWN4KSX4KSf4KWL4KSoIOCkuOClh+CknyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9jYWxsIiBtc2dpZD0iMzk0MTY4MDA0MTI4Mjc4ODcxMSI+IuCkh+CkqC3gpJXgpLIg4KSt4KWL4KSy4KWN4KSv4KWB4KSuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2JsdWV0b290aF9jYWxsIiBtc2dpZD0iMjAwMjg5MTkyNjM1MTE1MTUzNCI+IuCkrOCljeCksuClgeCkn+ClgeCkpSDgpK3gpL/gpKTgpY3gpLDgpYAt4KSV4KSyIOCkruCkvuCkpOCljeCksOCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9hbGFybSIgbXNnaWQ9IjE5ODUxOTE2MTYwNDI2ODkxMDAiPiLgpIbgpLLgpLDgpY3gpK4g4KSu4KS+4KSk4KWN4KSw4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjI0MjIyNjU2NTY3NDQyNzY3MTUiPiLgpLjgpYLgpJrgpKjgpL4g4KSu4KS+4KSk4KWN4KSw4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX3Vua25vd24iIG1zZ2lkPSIxNDAwMjE5NjY5NzcwNDQ1OTAyIj4i4KSu4KS+4KSk4KWN4KSw4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2ljb25fZGVzY3JpcHRpb25fYmx1ZXRvb3RoIiBtc2dpZD0iNjUzODg5NDE3NzI1NTk2NDM0MCI+IuCkrOCljeCksuClgeCkn+ClgeCkpSDgpK3gpYvgpLLgpY3gpK/gpYHgpK4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9yaW5nZXIiIG1zZ2lkPSIzMzI2MDAzODQ3MDA2MTYyNDk2Ij4i4KSY4KSo4KWN4KSf4KS/4KSV4KWLIOCkhuCkteCkvuCknCDgpK7gpL7gpKTgpY3gpLDgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9pbmNhbGwiIG1zZ2lkPSI4ODkwMDczMjE4MTU0NTQzMzk3Ij4i4KSV4KSy4KS+IOCkruCkvuCkpOCljeCksOCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX21lZGlhIiBtc2dpZD0iNDIxNzMxMTcxOTY2NTE5NDIxNSI+IuCkruCkv+CkoeCkv+Ckr+CkvuCkleCliyDgpK7gpL7gpKTgpY3gpLDgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9ub3RpZmljYXRpb24iIG1zZ2lkPSI3MDQ0OTg2NTQ2NDc3MjgyMjc0Ij4i4KS44KWC4KSa4KSo4KS+IOCkreCli+CksuCljeCkr+ClgeCkriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX2RlZmF1bHQiIG1zZ2lkPSIzNzg5NzU4OTgwMzU3Njk2OTM2Ij4i4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSkIOCksOCkv+CkmeCkn+Cli+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX2RlZmF1bHRfd2l0aF9hY3R1YWwiIG1zZ2lkPSI4MTI5NTYzNDgwODk1OTkwMzcyIj4i4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSkIOCksOCkv+CkmeCkn+Cli+CkqCAoPHhsaWZmOmcgaWQ9IkFDVFVBTF9SSU5HVE9ORSI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfc2lsZW50IiBtc2dpZD0iNzkzNzYzNDM5MjQwODk3NzA2MiI+IuCkleClgeCkqOCliCDgpKrgpKjgpL8g4KS54KWL4KSH4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfcGlja2VyX3RpdGxlIiBtc2dpZD0iMzUxNTE0MzkzOTE3NTExOTA5NCI+IuCkmOCkqOCljeCkn+ClgOCkleCkviDgpLjgpY3gpLXgpLDgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV91bmtub3duIiBtc2dpZD0iNTQ3NzkxOTk4ODcwMTc4NDc4OCI+IuCkheCknOCljeCknuCkvuCkpCDgpLDgpL/gpJngpJ/gpYvgpKgiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9IndpZmlfYXZhaWxhYmxlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjY1NDEyMzk4NzQxODE2ODY5MyI+IuCkteCkvuCkhy3gpKvgpL7gpIcg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkieCkquCksuCkrOCljeCkpyDgpJsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQxOTI0MjQ0ODkxNjgzOTczODYiPiLgpLXgpL7gpIct4KSr4KS+4KSHIOCkqOClh+Ckn+CkteCksOCljeCkleCkueCksOClgiDgpIngpKrgpLLgpKzgpY3gpKciPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9IndpZmlfYXZhaWxhYmxlX2RldGFpbGVkIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMTYzNDEwMTQ1MDM0MzI3NzM0NSI+IuCkluClgeCksuCljeCksuCkviDgpLXgpL7gpIct4KSr4KS+4KSHIOCkqOClh+Ckn+CkteCksOCljeCklSDgpIngpKrgpLLgpKzgpY3gpKcg4KSbIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3OTE1ODk1MzIzNjQ0MjkyNzY4Ij4i4KSW4KWB4KSy4KWN4KSy4KS+IOCkteCkvuCkhy3gpKvgpL7gpIcg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkieCkquCksuCkrOCljeCkpyDgpJsiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2F2YWlsYWJsZV9zaWduX2luIiBtc2dpZD0iNDAyOTQ4OTcxNjYwNTI1NTM4NiI+IuCkteCkvuCkhy3gpKvgpL7gpIcg4KSo4KWH4KSf4KS14KSw4KWN4KSV4KSu4KS+IOCkuOCkvuCkh+CkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXR3b3JrX2F2YWlsYWJsZV9zaWduX2luIiBtc2dpZD0iODQ5NTE1NTU5MzM1ODA1NDY3NiI+IuCkqOClh+Ckn+CkteCksOCljeCkleCkruCkviDgpLjgpL7gpIfgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIG5ldHdvcmtfYXZhaWxhYmxlX3NpZ25faW5fZGV0YWlsZWQgKDgwMDAwODE5NDE0NDc5NzYxMTgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3dhdGNoZG9nX25ldHdvcmtfZGlzYWJsZWQiIG1zZ2lkPSI3OTA0MjE0MjMxNjUxNTQ2MzQ3Ij4i4KS14KS+4KSHLeCkq+CkvuCkh+CkuOCkgeCklyDgpJzgpKHgpL7gpKgg4KSX4KSw4KWN4KSoIOCkuOCkleClh+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfd2F0Y2hkb2dfbmV0d29ya19kaXNhYmxlZF9kZXRhaWxlZCIgbXNnaWQ9IjU1NDg3ODA3NzY0MTgzMzI2NzUiPiIg4KSV4KSu4KSc4KWL4KSwIOCkh+CkqOCljeCkn+CksOCkqOClh+CknyDgpJzgpKHgpL7gpKgg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZGlhbG9nX3RpdGxlIiBtc2dpZD0iOTc2MTE3ODI2NTkzMjQ1MTciPiLgpLXgpL7gpIct4KSr4KS+4KSHIOCkquCljeCksOCkpOCljeCkr+CkleCljeCktyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX3R1cm5vbl9tZXNzYWdlIiBtc2dpZD0iMjkwOTI1MDk0MjI5OTYyNzI0NCI+IuCkteCkvuCkhy3gpKvgpL7gpIcg4KS44KS/4KSn4KS+IOCkuOClgeCksOClgSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQg4KSv4KS44KSy4KWHIOCkteCkvuCkhy3gpKvgpL7gpIcg4KSX4KWN4KSw4KS+4KS54KSVL+CkueCkn+CljeCkuOCljeCkquCkn+CksuCkvuCkiCDgpKzgpKjgpY3gpKYg4KSX4KSw4KS+4KSJ4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZhaWxlZF9tZXNzYWdlIiBtc2dpZD0iMzc2MzY2OTY3NzkzNTYyMzA4NCI+IuCkteCkvuCkhy3gpKvgpL7gpIcg4KS44KS/4KSn4KS+IOCkuOClgeCksOClgSDgpLngpYHgpKgg4KS44KSV4KWH4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW5hYmxlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMDY4MzIxODgxNjczNzM0ODg2Ij4i4KS14KS+4KSHLeCkq+CkvuCkhyDgpKrgpY3gpLDgpKTgpY3gpK/gpJXgpY3gpLcg4KSW4KWB4KSy4KWN4KSy4KS+IOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VuYWJsZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIxNjM4OTQ5OTUzOTkzODk0MzM1Ij4i4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWC4KSV4KWLIOCksuCkvuCkl+CkvyDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIxNjQ1MjY3MjU5MjcyODI5NTU5Ij4i4KS44KWN4KS14KWA4KSV4KS+4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVjbGluZSIgbXNnaWQ9IjIxMTIyMjU0NTE3MDYxMzc4OTQiPiLgpIXgpLjgpY3gpLXgpYDgpJXgpL7gpLAg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfaW52aXRhdGlvbl9zZW50X3RpdGxlIiBtc2dpZD0iMTMxODk3NTE4NTExMjA3MDczNCI+IuCkqOCkv+CkruCkqOCljeCkpOCljeCksOCko+CkviDgpKrgpKDgpL7gpIfgpI/gpJXgpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9pbnZpdGF0aW9uX3RvX2Nvbm5lY3RfdGl0bGUiIG1zZ2lkPSI0OTU4ODAzOTQ4NjU4NTMzNjM3Ij4i4KSc4KSh4KS+4KSo4KSu4KS+IOCkqOCkv+CkruCkqOCljeCkpOCljeCksOCko+CkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2Zyb21fbWVzc2FnZSIgbXNnaWQ9IjU3MDM4OTE3NDczMTk1MTc2OSI+IuCkrOCkvuCknzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF90b19tZXNzYWdlIiBtc2dpZD0iMjQ4OTY4OTc0NTIyMDQ0MDk5Ij4i4KSq4KWN4KSw4KS+4KSq4KSVOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VudGVyX3Bpbl9tZXNzYWdlIiBtc2dpZD0iNTkyMDkyOTU1MDM2NzgyODk3MCI+IuCkhuCkteCktuCljeCkr+CklSBQSU4g4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9zaG93X3Bpbl9tZXNzYWdlIiBtc2dpZD0iODUzMDU2MzMyMzg4MDkyMTA5NCI+IlBJTjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcmVxdWVuY3lfY29uZmxpY3RfbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODAxMjk4MTI1Nzc0MjIzMjQ3NSI+IuCkr+CliyA8eGxpZmY6ZyBpZD0iREVWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+4KS44KSB4KSXIOCknOCli+CkoeCkv+Ckj+CkleCliyDgpKzgpYfgpLLgpL4g4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkheCkuOCljeCkpeCkvuCkr+ClgCDgpLDgpYLgpKrgpK7gpL4g4KS14KS+4KSHLeCkq+CkvuCkh+CkrOCkvuCknyDgpLXgpL/gpJrgpY3gpJvgpYfgpKYg4KSX4KSw4KS/4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzM2MzkwNzIxMzc4NzQ2OTE1MSI+IuCknOCkrCDgpK/gpYsgPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiDgpLjgpIHgpJcg4KSc4KSh4KS/4KSkIOCkueClgeCkqOCljeCkmywg4KSr4KWL4KSoIOCkheCkuOCljeCkpeCkvuCkr+ClgCDgpLDgpYLgpKrgpK7gpL4g4KS14KS+4KSHLeCkq+CkvuCkh+CkrOCkvuCknyDgpLXgpL/gpJrgpY3gpJvgpYfgpKYg4KS54KWB4KSo4KWHIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9jaGFyYWN0ZXIiIG1zZ2lkPSIzMzY1NTUwMTIwNjE3NzAxNzQ1Ij4i4KSF4KSV4KWN4KS34KSw4KS54KSw4KWCIOCkquCljeCksOCkteClh+CktiDgpJfgpLDgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF90aXRsZSIgbXNnaWQ9IjcyOTY2MTI3ODExMjg5MTc3MTkiPiJTTVMg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCkquCkoOCkvuCkh+CkgeCkpuCliCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX21lc3NhZ2UiIG1zZ2lkPSIzODY3ODk5MTY5NjUxNDk2NDMzIj4iJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDsg4KSy4KWHIOCkp+CksOCliCDgpLjgpILgpJbgpY3gpK/gpL7gpK7gpL4gU01TIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpKrgpKDgpL7gpIngpIHgpKbgpYjgpJvgpaQg4KSV4KWHIOCkpOCkquCkvuCkiOCkgSDgpK/gpLgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpKrgpKDgpL7gpIngpKgg4KS44KWB4KSa4KS+4KSw4KWBIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSoIOCkmuCkvuCkueCkqOClgSDgpLngpYHgpKjgpY3gpJs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfeWVzIiBtc2dpZD0iMzY2MzcyNTk5Mzg1NTgxNjgwNyI+IuCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9ubyIgbXNnaWQ9IjYyNTQzODU2MTM5NTUzNDk4MiI+IuCkheCkuOCljeCkteClgOCkleCkvuCksCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX21lc3NhZ2UiIG1zZ2lkPSIxNjQ1NDM2NDY2Mjg1MzEwODU1Ij4iJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDsg4KSV4KWHIOCkpOCkquCkvuCkiOCkgSDgpLjgpKjgpY3gpKbgpYfgpLYg4KSq4KSg4KS+4KSJ4KSoIOCkmuCkvuCkueClgeCkqOClgSDgpLngpYHgpKjgpY3gpJsgJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkRFU1RfQUREUkVTUyI+JTIkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSIzNDkyMDI1NzE5ODY4MDc4NDU3Ij4i4KSv4KS44KSy4KWHICI8Zm9udCBmZ2NvbG9yPSIjZmZmZmIwNjAiPiIg4KS24KWB4KSy4KWN4KSVIOCksuCkl+CkvuCkieCkqCDgpLjgpJXgpY3gpJsiPC9mb250PiIg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkruCli+CkrOCkvuCkh+CksiDgpJbgpL7gpKTgpL7gpK7gpL7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfcHJlbWl1bV9zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSI1NTIzODI2MzQ5MTA1MTIzNjg3Ij48Zm9udCBmZ2NvbG9yPSIjZmZmZmIwNjAiPiLgpK/gpLjgpLLgpYcg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkruCli+CkrOCkvuCkh+CksiDgpJbgpL7gpKTgpL7gpK7gpL4g4KSa4KS+4KSw4KWN4KSc4KS54KSw4KWCIOCkieCkpOCljeCkquCkqOCljeCkqCDgpJfgpLDgpY3gpKbgpJvgpaQiPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9hbGxvdyIgbXNnaWQ9IjQ0NTg4Nzg2MzcxMTEwMjM0MTMiPiLgpKrgpKDgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2RlbnkiIG1zZ2lkPSIyOTI3Mzg5ODQwMjA5MTcwNzA2Ij4i4KSw4KSm4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX2Nob2ljZSIgbXNnaWQ9IjUyODk1Mzg1OTIyNzIyMTgxMzYiPiLgpK7gpYfgpLDgpYsg4KSb4KSo4KWM4KSfIOCkr+CkvuCkpiDgpLDgpL7gpJbgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9yZW1lbWJlcl91bmRvX2luc3RydWN0aW9uIiBtc2dpZD0iNDk2MDk0NDEzMzA1MjI4NzQ4NCI+IuCkpOCkquCkvuCkiOCkgSDgpK/gpLjgpLLgpL7gpIgg4KSq4KSb4KS/IOCkuOClh+Ckn+Ckv+CkmeCkueCksOClguCkruCkviDgpKzgpKbgpLLgpY3gpKgg4KS44KSV4KWN4KSo4KWBIOCkueClgeCkqOCljeCkmyAmZ3Q7IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fYWx3YXlzX2FsbG93IiBtc2dpZD0iMzI0MTE4MTE1NDg2OTQ5MzM2OCI+IuCkuOCkp+CliOCkgSDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9uZXZlcl9hbGxvdyIgbXNnaWQ9IjQ0Njk5Mjc2NTc3NDI2OTY3MyI+IuCkleCkueCkv+CksuCljeCkr+CliCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSo4KSm4KS/4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX3JlbW92ZWRfdGl0bGUiIG1zZ2lkPSI2MjI3NzEyMzE5MjIzMjI2MTg1Ij4iU0lNIOCkleCkvuCksOCljeCkoSDgpLngpJ/gpL7gpIfgpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVtb3ZlZF9tZXNzYWdlIiBtc2dpZD0iMjMzMzE2NDU1OTk3MDk1ODY0NSI+IuCkj+CkieCkn+CkviDgpK7gpL7gpKjgpY3gpK8gU0lNIOCkleCkvuCksOCljeCkoSDgpLDgpL7gpJbgpYfgpLAg4KSq4KWB4KSo4KSD4KS44KWN4KSf4KS+4KSw4KWN4KSfIOCkqOCkl+CksOClh+CkuOCkruCljeCkriDgpK7gpYvgpKzgpL7gpIfgpLIg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkieCkquCksuCkrOCljeCkpyDgpLngpYHgpKjgpYcg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX2RvbmVfYnV0dG9uIiBtc2dpZD0iODI3OTQ5OTg5MzY5OTYzNzc1Ij4i4KSt4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX2FkZGVkX3RpdGxlIiBtc2dpZD0iMzcxOTY3MDUxMjg4OTY3NDY5MyI+IlNJTSDgpJXgpL7gpLDgpY3gpKEg4KSl4KSqIOCkl+CksOCkv+Ckr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9hZGRlZF9tZXNzYWdlIiBtc2dpZD0iNjU5OTk0NTMwMTE0MTA1MDIxNiI+IuCkruCli+CkrOCkvuCkh+CksiDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSJ4KSq4KSV4KSw4KSjIOCkquClgeCkqOCkg+CkuOCljeCkn+CkvuCksOCljeCknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVzdGFydF9idXR0b24iIG1zZ2lkPSI0NzIyNDA3ODQyODE1MjMyMzQ3Ij4i4KSq4KWB4KSo4KSD4KS44KWN4KSf4KS+4KSw4KWN4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjgzNDkzNjI2MjMwNjg4MTkyOTUiPiLgpLjgpK7gpK8g4KSu4KS/4KSy4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfZGlhbG9nX3RpdGxlIiBtc2dpZD0iNTg3OTQ1MDY1OTQ1Mzc4MjI3OCI+IuCkruCkv+CkpOCkvyDgpK7gpL/gpLLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3RpbWVfc2V0IiBtc2dpZD0iNTc3NzA3NTYxNDMyMTA4Nzc1OCI+IuCkuOClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3RpbWVfZG9uZSIgbXNnaWQ9IjI1MDc2ODM3NTE3NTkzMDg4MjgiPiLgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtc19uZXdfcGVybV9wcmVmaXgiIG1zZ2lkPSI4MjU3NzQwNzEwNzU0MzAxNDA3Ij48Zm9udCBzaXplPSIxMiIgZmdjb2xvcj0iI2ZmMzNiNWU1Ij4i4KSo4KSv4KS+4KSBOiAiPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybXNfZGVzY3JpcHRpb25fYXBwIiBtc2dpZD0iNTEzOTgzNjE0MzI5MzI5OTQxNyI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz7gpKbgpY3gpLXgpL7gpLDgpL4g4KSq4KWN4KSw4KSm4KS+4KSoIOCkl+CksOCkv+Ckj+CkleCli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX3Blcm1pc3Npb25zIiBtc2dpZD0iNzI4MzM1NzcyODIxOTMzODExMiI+IuCkleClgeCkqOCliCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSG4KS14KS24KWN4KSv4KSVIOCkm+CliOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1fY29zdHNfbW9uZXkiIG1zZ2lkPSI0OTAyNDcwMzI0MTQyMTUxMTE2Ij4i4KS44KS+4KSv4KSmIOCkpOCkquCkvuCkiOCkgeCksuCkvuCkiCDgpKrgpYjgpLjgpL4g4KSq4KSw4KWN4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2FjdGl2aXR5X3RpdGxlIiBtc2dpZD0iNDQ2NTA1NTE1NzIwOTY0ODY0MSI+IlVTQiDgpKDgpYLgpLLgpYsg4KSt4KSj4KWN4KSh4KS+4KSw4KSjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfdGl0bGUiIG1zZ2lkPSI1OTAxNDU5MDQxMzk4NzUxNDk1Ij4iVVNCIOCknOCli+CkoeCkv+Ckj+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMzMDg1MzgwOTQzMTY0Nzc4MzkiPiLgpKTgpKrgpL7gpIjgpIIg4KSG4KSr4KWN4KSo4KWLIOCkleCkruCljeCkquCljeCkr+ClgeCkn+CksOCkruCkviBVU0Ig4KSu4KS+4KSw4KWN4KSr4KSkIOCknOCkoeCkvuCkqCDgpLngpYHgpKjgpYHgpK3gpK/gpYvgpaQg4KSk4KSy4KSV4KWLIOCkrOCkn+CkqCDgpJ/gpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOCkr+CkpuCkvyDgpKTgpKrgpL7gpIjgpIIg4KSG4KSr4KWN4KSo4KWLIOCkleCkruCljeCkquCljeCkr+ClgeCkn+CksCDgpLAg4KSP4KSo4KWN4KSh4KWN4KSw4KWL4KSH4KSh4KSV4KWLIFVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSs4KWA4KSaIOCkq+CkvuCkh+CksuCkueCksOClgiDgpKrgpY3gpLDgpKTgpL/gpLLgpL/gpKrgpL8g4KSX4KSw4KWN4KSoIOCkmuCkvuCkueCkqOClgeCkueClgeCkqOCljeCkmyDgpK3gpKjgpYfgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA1MzUxMDAwNDQ2MDM3ODExIj4i4KSk4KSq4KS+4KSI4KSCIOCkhuCkq+CljeCkqOCliyDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLDgpK7gpL4gVVNCIOCkruCkvuCksOCljeCkq+CkpCDgpJzgpKHgpL7gpKgg4KS54KWB4KSo4KWB4KSt4KSv4KWL4KWkIOCkpOCksuCkleCliyDgpKzgpJ/gpKgg4KSf4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSDgpK/gpKbgpL8g4KSk4KSq4KS+4KSI4KSCIOCkhuCkq+CljeCkqOCliyDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLAg4KSwIOCkj+CkqOCljeCkoeCljeCksOCli+Ckh+CkoeCkleCliyBTRCDgpJXgpL7gpLDgpY3gpKEg4KSs4KWA4KSaIOCkq+CkvuCkh+CksuCkueCksOClgiDgpKrgpY3gpLDgpKTgpL/gpLLgpL/gpKrgpL8g4KSX4KSw4KWN4KSoIOCkmuCkvuCkueCkqOClgeCkueClgeCkqOCljeCkmyDgpK3gpKjgpYfgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9idXR0b25fbW91bnQiIG1zZ2lkPSIxMDUyMjU5OTMwMzY5NTA4MjM1Ij4iVVNCIOCkreCko+CljeCkoeCkvuCksOCkoyDgpJrgpL7gpLLgpYEg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfZXJyb3JfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzMDE3MDQ1MjE3MzY1NTQwNjU4Ij4iVVNCIOCkhuCkriDgpK3gpKPgpY3gpKHgpL7gpLDgpKPgpJXgpYsg4KSy4KS+4KSX4KS/IOCkpOCkquCkvuCkiOCkgeCkleCliyBVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKbgpL4g4KSP4KSJ4KSf4KS+IOCkuOCkruCkuOCljeCkr+CkviDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjg3NjAxODUxMjcxNjk3MDMxMyI+IlVTQiDgpIbgpK4g4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSV4KWLIOCksuCkvuCkl+CkvyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsgU0Qg4KSV4KS+4KSw4KWN4KShIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKbgpL4g4KSP4KSJ4KSf4KS+IOCkuOCkruCkuOCljeCkr+CkviDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4MTc1ODkyNTU0NzU3MjE2NTI1Ij4iVVNCIOCknOCli+CkoeCkv+Ckj+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkzOTgyMjc4MzgyODE4Mzc2MyI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLDgpKzgpL7gpJ8g4KS14KS+IOCkpOCkv+CksCDgpKvgpL7gpIfgpLLgpLngpLDgpYIg4KSq4KWN4KSw4KSk4KS/4KSy4KS/4KSqIOCkl+CksOCljeCkqCDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIzMzYwNTgzOTY2NjM1MTYwMTciPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTY1Njg1MjA5ODU1NTYyMzgyMiI+IlVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX3RpdGxlIiBtc2dpZD0iNjYwMTI5ODUxNzA4Nzc1ODUzIj4iVVNCIOCkreCko+CljeCkoeCkvuCksOCkoyDgpKrgpY3gpLDgpK/gpYvgpJfgpK7gpL4g4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQyNjQwMjUyODA3NzcyMTk1MjEiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkrOCkqOCljeCkpiDgpLngpYHgpKjgpYHgpK3gpKjgpY3gpKbgpL4g4KSq4KS54KWA4KSy4KWHIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLDgpKzgpL7gpJ8g4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkj+CkqOCljeCkoeCljeCksOCli+Ckh+CkoSBVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkheCkqOCkruCkvuCkieCkqOCljeCknyAoXCLgpJ3gpL/gpJXgpY3gpKjgpYHgpLngpYvgpLjgpY1cIikg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgwNDM5Njk3ODI0NjA2MTMxMTQiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKjgpYHgpIXgpJjgpL8g4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkleCkruCljeCkquCljeCkr+ClgeCkn+CksOCkrOCkvuCknyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSP4KSo4KWN4KSh4KWN4KSw4KWL4KSH4KSh4KSV4KWLIFNEIOCkleCkvuCksOCljeCkoSDgpIXgpKjgpK7gpL7gpIngpKjgpY3gpJ8gKFwi4KSo4KS/4KSV4KS+4KSy4KWH4KSV4KWLXCIpIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfYnV0dG9uX21vdW50IiBtc2dpZD0iNzA2MDIxODAzNDkwMDY5NjAyOSI+IlVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfZXJyb3JfbWVzc2FnZSIgbXNnaWQ9IjE5NzAzNzQ4OTgyNjMwNjM4MzYiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKbgpL4g4KSP4KSJ4KSf4KS+IOCkuOCkruCkuOCljeCkr+CkviDgpK3gpK/gpYvgpaQg4KSk4KSq4KS+4KSI4KSB4KSy4KWHIFVTQiDgpLngpYvgpLjgpY3gpJ8g4KSF4KSo4KSu4KS+4KSJ4KSo4KWN4KSfIOCkl+CksOCljeCkqOClgSDgpK3gpI/gpJXgpYsg4KSc4KS+4KSB4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSwg4KSk4KWN4KSv4KS44KSq4KSb4KS/IOCkq+Clh+CksOCkvyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX2NvbmZpcm1fa2lsbF9zdG9yYWdlX3VzZXJzX3RpdGxlIiBtc2dpZD0iOTYzMDM5MDMzNDcwNDc4Njk3Ij4iVVNCIOCkreCko+CljeCkoeCkvuCksOCkoyDgpJbgpYvgpLLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfY29uZmlybV9raWxsX3N0b3JhZ2VfdXNlcnNfdGV4dCIgbXNnaWQ9IjUxMDA0Mjg3NTcxMDc0Njk0NTQiPiLgpK/gpKbgpL8g4KSk4KSq4KS+4KSI4KSB4KSy4KWHIFVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSW4KWL4KSy4KWN4KSo4KWBIOCkreCkr+CliyDgpK3gpKjgpYcg4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpL/gpLDgpLngpKjgpYEg4KSt4KSP4KSV4KS+IOCkleClh+CkueClgCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KSw4KWL4KSV4KS/4KSo4KWHIOCkm+CkqOCljSDgpLAg4KSk4KSq4KS+4KSI4KSB4KSy4KWHIFVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSs4KSo4KWN4KSmIOCkqOCkl+CksOClh+CkuOCkruCljeCkriDgpIXgpKjgpYHgpKrgpLLgpKzgpY3gpKcg4KS54KWB4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19lcnJvcl90aXRsZSIgbXNnaWQ9IjczMjM2NTg0Njk2MjY1MTQyMDciPiJVU0Ig4KS44KSC4KSa4KS+4KSy4KSoIOCkheCkuOCkq+CksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19vayIgbXNnaWQ9IjczNzY5NTMxNjcwMzk4NjU3MDEiPiLgpKDgpL/gpJUg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX210cF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIzNjk5OTEzMDk3MzkxNTUwMzk0Ij4i4KSu4KS/4KSh4KS/4KSv4KS+IOCkieCkquCkleCksOCko+CkleCliyDgpLDgpYLgpKrgpK7gpL4g4KSc4KSh4KS/4KSkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3B0cF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIxOTYwODE3MTkyMjE2MDY0ODMzIj4i4KSV4KWN4KSv4KS+4KSu4KWH4KSw4KS+4KSV4KWLIOCksOClguCkquCkruCkviDgpJzgpKHgpL7gpKgg4KSt4KSP4KSV4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2NkX2luc3RhbGxlcl9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2Nzc0NzEyODI3ODkyMDkwNzU0Ij4i4KSP4KSJ4KSf4KS+IOCkuOCljeCkpeCkvuCkquCkqOCkleCksOCljeCkpOCkvuCkleCliyDgpLDgpYLgpKrgpK7gpL4g4KSc4KWL4KSh4KS/4KSP4KSV4KWLIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3Nvcnlfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNzg0ODIzNjk3NDA4NzY1MzY2NiI+IlVTQiDgpLjgpLngpL7gpK/gpJXgpK7gpL4g4KSc4KWL4KSh4KS/4KSP4KSV4KWLIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjIyOTA4NTkzOTk5ODM3MjAyNzEiPiLgpIXgpKjgpY3gpK8gVVNCIOCkteCkv+CkleCksuCljeCkquCkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSf4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI5MDIwMDkyMTk2MDYxMDA3MjYyIj4iVVNCIOCkreCko+CljeCkoeCkvuCksOCko+CksuCkvuCkiCDgpKvgpLDgpY3gpK7gpY3gpK/gpL7gpJ8gIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2NDg0MTU5MjE1MjY1MjYwNjkiPiJTRCDgpJXgpL7gpLDgpY3gpKEg4KSr4KSw4KWN4KSu4KWN4KSv4KS+4KSfIOCkl+CksOCljeCkqOClhz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzOTM0MDE2ODUzNDI1NzYxMDc4Ij4i4KSk4KSq4KS+4KSI4KSC4KSV4KWLIFVTQuCkruCkviDgpLjgpJngpY3gpJfgpY3gpLDgpLkg4KSt4KSP4KSV4KS+IOCkuOCkrOCliCDgpKvgpL7gpIfgpLLgpLngpLDgpYIg4KSu4KWH4KSf4KS/4KSo4KWHIOCkm+CkqOCljeClpCDgpK/gpYsg4KSV4KS+4KSw4KWN4KSvIOCkieCksuCljeCkn+CkvuCkieCkqCDgpLjgpJXgpL/gpIHgpKbgpYjgpKghIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDEzMTg5NTAyNzU0MzgzMCI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpJXgpL7gpLDgpY3gpKHgpK7gpL4g4KSt4KSP4KSV4KS+IOCkuOCkrOCliCDgpKHgpYfgpJ/gpL7gpLngpLDgpYIg4KS54KSw4KS+4KSJ4KSo4KWHIOCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9idXR0b25fZm9ybWF0IiBtc2dpZD0iNDEzMTA2NDU2MDEyNzQ3ODY5NSI+IuCkq+CksOCljeCkruCljeCkr+CkvuCknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGJfYWN0aXZlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY3MjkwNDQ3Nzg5NDkxODk5MTgiPiJVU0Ig4KSh4KS/4KSs4KSXIOCkl+CksOCljeCkqOClhyDgpJzgpKHgpL/gpKQg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjEwMTY2NTQ2Mjc2MjY0NzYxNDIiPiJVU0Ig4KSh4KS/4KSs4KSXIOCkl+CksOCljeCkqOClhyDgpIXgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KWN4KSoIOCkm+ClgeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9pbnB1dF9tZXRob2QiIG1zZ2lkPSI0NjUzMzg3MzM2NzkxMjIyOTc4Ij4i4KSo4KS/4KS14KWH4KS2IOCkteCkv+Ckp+CkvyDgpJvgpL7gpKjgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjkwOTE2NTIxNTc3MjI0OTUxMTYiPiLgpIfgpKjgpKrgpYHgpJ8g4KS14KS/4KSn4KS/4KS54KSw4KWCIOCkuOClh+Ckn+CkheCkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfcGh5c2ljYWxfa2V5Ym9hcmQiIG1zZ2lkPSI2MjAzMTEyNDc4MDk1MTE3NjI1Ij4i4KSt4KWM4KSk4KS/4KSVIOCkleCkv+CkrOCli+CksOCljeCkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhhcmR3YXJlIiBtc2dpZD0iNzUxNzgyMTA4Njg4ODk5MDI3OCI+IuCkueCkvuCksOCljeCkoeCkteClh+Ckr+CksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMTQwNzM2NzAxNzI2MzAzMDc3MyI+IuCkleCkv+CkrOCli+CksOCljeCkoSDgpLDgpYLgpKrgpLDgpYfgpJbgpL4g4KSa4KSv4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDY1OTA3NzAwNDQ5MjU3MDYzIj4i4KSV4KS/4KSs4KWL4KSw4KWN4KShIOCksOClguCkquCksOClh+CkluCkviDgpJrgpK/gpKgg4KSX4KSw4KWN4KSoIOCkn+CkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYXN0X3Njcm9sbF9hbHBoYWJldCIgbXNnaWQ9IjU0MzMyNzU0ODU0OTkwMzkxOTkiPiIgQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYXN0X3Njcm9sbF9udW1lcmljX2FscGhhYmV0IiBtc2dpZD0iNDAzMDE3MDUyNDU5NTEyMzYxMCI+IiAwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5kaWRhdGVzX3N0eWxlIiBtc2dpZD0iNDMzMzkxMzA4OTYzNzA2MjI1NyI+PHU+IuCkieCkruCljeCkruClh+CkpuCkteCkvuCksCI8L3U+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM0NDk4MTYwMDUzNTE0Njg1NjAiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSV4KWLIOCkpOCkr+CkvuCksOClgCDgpLngpYHgpIHgpKbgpYgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTQ1NzYwMzQxODk3MDk5NDA1MCI+IlNEIOCkleCkvuCksOCljeCkoSDgpKTgpK/gpL7gpLAg4KSX4KSw4KWN4KSm4KWIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iODI4NzMxOTg4MjkyNjczNzA1MyI+IuCkpOCljeCksOClgeCkn+Ckv+CkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSc4KS+4KSB4KSaIOCkl+CksOCljeCkpuCliOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3Nzg4MDQwNzQ1Njg2MjI5MzA3Ij4i4KSw4KS/4KSV4KWN4KSkIFVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3ODA0Nzc4MzgyNDEyMTI5OTciPiLgpJbgpL7gpLLgpYAgU0Qg4KSV4KS+4KSw4KWN4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzg0MDEyMTA2NzQyNzI2OTUwMCI+IlVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSW4KS+4KSy4KWAIOCkteCkviDgpIXgpLjgpK7gpLDgpY3gpKXgpL/gpKQg4KSr4KS+4KSH4KSyIOCkquCljeCksOCko+CkvuCksuClgCDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2NDEwNjU2NDE3ODY5MjM2MDQiPiJTRCDgpJXgpL7gpLDgpY3gpKEg4KSW4KS+4KSy4KWAIOCkmyDgpIXgpKXgpLXgpL4g4KS44KSu4KSw4KWN4KSl4KSoIOCkqOCkl+CksOCkv+Ckj+CkleCliyDgpKvgpL7gpIfgpLIg4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjA5MDA0Njc2OTUzMjcxMzU2MyI+IuCkrOCkv+Ckl+CljeCksOCkv+Ckj+CkleCliyBVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY0MTA3MjM5MDYwMTkxMDAxODkiPiLgpKzgpL/gpJfgpY3gpLDgpL/gpI/gpJXgpYsgU0Qg4KSV4KS+4KSw4KWN4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE3OTU5MTc1NzgzOTUzMzMyODAiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkrOCkv+Ckl+CljeCksOCkv+Ckj+CkleCliyDgpJvgpaQg4KSv4KS44KSy4KS+4KSIIOCkquClgeCkqOCkg+Ckq+CksOCljeCkruCljeCkr+CkvuCknyDgpJfgpLDgpY3gpKgg4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE3NTM4OTg1Njc1MjU1NjgyNTMiPiJTRCDgpJXgpL7gpLDgpY3gpKEg4KSs4KS/4KSX4KWN4KSw4KS/4KSP4KSV4KWLIOCkm+ClpCDgpK/gpLjgpLLgpL7gpIgg4KSq4KWB4KSo4KSD4KSr4KSw4KWN4KSu4KWN4KSv4KS+4KSfIOCkl+CksOCljeCkqCDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE2NjE2ODMwMzEzMzA5NTEwNzMiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkheCkquCljeCksOCkpOCljeCkr+CkvuCktuCkv+CkpCDgpLDgpYLgpKrgpK7gpL4g4KS54KSf4KS+4KSH4KSP4KSV4KWLIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NzIxNTI4ODI2MDQ0MDc4MzciPiJTRCDgpJXgpL7gpLDgpY3gpKEg4KSF4KSo4KSq4KWH4KSV4KWN4KS34KS/4KSkIOCksOClguCkquCkruCkviDgpLngpJ/gpL7gpIfgpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MzI5ODQ4ODE5ODY1NTk0MjQxIj4i4KSh4KWH4KSf4KS+IOCkl+ClgeCkruCljeCkqOCkrOCkvuCknyDgpLDgpYvgpJXgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IFVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KS54KSf4KS+4KSJ4KSo4KWB4KSF4KSY4KS/IOCkheCkqOCkruCkvuCkieCkqOCljeCknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcyNjAxODMyOTM3NDc0NDgyNDEiPiLgpKHgpYfgpJ/gpL4g4KSo4KS+4KS2IOCkueClgeCkqOCkrOCkvuCknyDgpKzgpJrgpY3gpKggU0Qg4KSV4KS+4KSw4KWN4KSh4KSy4KS+4KSIIOCkqOCkv+CkleCkvuCksuCljeCkqOClgeCkreCkqOCljeCkpuCkviDgpKrgpLngpL/gpLLgpL4g4KSF4KSo4KSu4KS+4KSJ4KSo4KWN4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5Njc5NzM4OTMyNzAzNjAyMzAiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkueCkn+CkvuCkieCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjcyOTgwMTEzMDc5MDYxNjIwMCI+IlNEIOCkleCkvuCksOCljeCkoSDgpLngpJ/gpL7gpIngpKgg4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE0MjE5NTM2MTYwNjQ5MzUzMCI+IuCkpOCkquCkvuCkiOCkgiDgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KSw4KWC4KSq4KSu4KS+IFVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KS54KSf4KS+4KSJ4KSoIOCkuOCkleCljeCkqOClgeCkueClgeCkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTY4ODQxMjc4MTM4Mzc3NjA0Ij4i4KSk4KSq4KS+4KSI4KSBIFNEIOCkleCkvuCksOCljeCkoSDgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KSw4KWC4KSq4KSu4KS+IOCkueCkn+CkvuCkieCkqCDgpLjgpJXgpY3gpKjgpYEg4KS54KWB4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ0ODYzNzcyMzAxNDAyMjc2NTEiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkueCkn+CkvuCkh+Ckr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MDI1MTgwMzA0MDQzODEzMTgiPiLgpLngpJ/gpL7gpIfgpI/gpJXgpYsgU0Qg4KSV4KS+4KSw4KWN4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjkyMTEyNjE2MjU4MDU3NDE0MyI+IlVTRCDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KS54KSf4KS+4KSH4KSv4KWL4KWkIOCkqOCkr+CkvuCkgSDgpK7gpL/gpKHgpL/gpK/gpL4g4KSY4KWB4KS44KS+4KSJ4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzODcwMTIwNjUyOTgzNjU5NjQxIj4iU0Qg4KSV4KS+4KSw4KWN4KShIOCkueCkn+CkvuCkh+Ckr+Cli+ClpCDgpI/gpIngpJ/gpL4g4KSo4KSv4KS+4KSBIOCkm+Ckv+CksOCkvuCkieCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2xpc3RfZW1wdHkiIG1zZ2lkPSIxNjc1Mzg4MzMwNzg2ODQxMDY2Ij4i4KSV4KWB4KSo4KWIIOCkruCkv+CksuCljeCkqOClhyDgpJfgpKTgpL/gpLXgpL/gpKfgpL8g4KSq4KS+4KSH4KSP4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wa2dVc2FnZVN0YXRzIiBtc2dpZD0iODc4NzM1MjA3NDMyNjc0ODg5MiI+IuCkluCko+CljeCkoSDgpKrgpY3gpLDgpK/gpYvgpJcg4KSk4KSl4KWN4KSv4KS+4KSZ4KWN4KSV4KS54KSw4KWCIOCkheCkquCkoeClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wa2dVc2FnZVN0YXRzIiBtc2dpZD0iMTEwNjYxMjQyNDI1NDI3NzYzMCI+IuCknOCkruCljeCkruCkviDgpJfgpLDgpL/gpI/gpJXgpYsg4KSY4KSf4KSVIOCkieCkquCkr+Cli+CklyDgpKTgpKXgpY3gpK/gpL7gpJngpY3gpJXgpLngpLDgpYLgpLLgpL7gpIgg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSs4KS+4KSfIOCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpLLgpL7gpJfgpL8g4KS54KWL4KSH4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzNDEwMzYzMTEyMTE0MDY2OTIiPiLgpLjgpL7gpK7gpL7gpJfgpY3gpLDgpYDgpJXgpYsg4KSo4KSV4KSyIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvcHlQcm90ZWN0ZWREYXRhIiBtc2dpZD0iNDM5MDY5NzEyNDI4ODMxNzgzMSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSq4KWN4KSw4KSk4KS/4KSy4KS/4KSq4KS/IOCkl+CksOCljeCkqCDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKQg4KSV4KSo4KWN4KSf4KWH4KSo4KSwIOCkuOClh+CkteCkviDgpIbgpLngpY3gpLXgpL7gpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkpuCljeCkteCkvuCksOCkvuCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpYsg4KSy4KS+4KSX4KS/IOCkueCli+Ckh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcm91dGVfbWVkaWFfb3V0cHV0IiBtc2dpZD0iMTY0MjAyNDQ1NTc1MDQxNDY5NCI+IuCkruCkv+CkoeCkv+Ckr+CkviDgpKrgpLDgpL/gpKPgpL7gpK4g4KSm4KS/4KS24KS+4KSo4KS/4KSw4KWN4KSm4KWH4KS2IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JvdXRlX21lZGlhX291dHB1dCIgbXNnaWQ9IjQ5MzI4MTg3NDk1NDcyNDQzNDYiPiLgpK7gpL/gpKHgpL/gpK/gpL4g4KSq4KSw4KS/4KSj4KS+4KSu4KSy4KS+4KSIIOCkheCkqOCljeCkryDgpKzgpL7gpLngpL/gpLDgpYAg4KSJ4KSq4KSV4KSw4KSj4KS54KSw4KWC4KS44KSB4KSXIOCksuCliOCknOCkvuCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc19rZXlndWFyZF9zZWN1cmVfc3RvcmFnZSIgbXNnaWQ9Ijc1NjU1NTIyMzc5Nzc4MTUwNDciPiLgpJXgpL/gpJfgpL7gpLDgpY3gpKEg4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkreCko+CljeCkoeCkvuCksOCkoyDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzX2tleWd1YXJkX3NlY3VyZV9zdG9yYWdlIiBtc2dpZD0iNTg2NjI0NTQ4NDMwMzI4NTc2MiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpJXgpL/gpJfgpL7gpLDgpY3gpKEg4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkreCko+CljeCkoeCkvuCksOCkoyDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xfa2V5Z3VhcmQiIG1zZ2lkPSIxNzIxOTUxODQyMDc4MjgzODciPiLgpJXgpL/gpJfgpL7gpLDgpY3gpKEg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIOCkl+CksOCljeCkqOClhyDgpLAg4KSy4KWB4KSV4KS+4KSJ4KSo4KWHIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sX2tleWd1YXJkIiBtc2dpZD0iMzA0MzczMjI5MDUxODYyOTA2MSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpJXgpL/gpJfgpL7gpLDgpY3gpKEg4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSjIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHV0b3JpYWxfZG91YmxlX3RhcF90b196b29tX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0MDcwNDMzMjA4MTYwMDYzNTM4Ij4i4KSc4KWB4KSuIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KSm4KWB4KSIIOCkmuCli+Ckn+CkvyDgpJ/gpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2FkZ2V0X2hvc3RfZXJyb3JfaW5mbGF0aW5nIiBtc2dpZD0iNDg4MjAwNDMxNDkwNjQ2NjE2MiI+IuCkteCkv+CknOClh+CknyDgpKXgpKog4KSX4KSw4KWN4KSoIOCkuOCkleCkv+CkgeCkpuCliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZ28iIG1zZ2lkPSI4MzIwODQ1NjUxNzM3MzY5MDI3Ij4i4KSc4KS+4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9zZWFyY2giIG1zZ2lkPSI2NTgxMTAyNzE4MjI4MDc4MTEiPiLgpJbgpYvgpJzgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3NlbmQiIG1zZ2lkPSIyMzE2MTY2NTU2MzQ5MzE0NDI0Ij4i4KSq4KSg4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9uZXh0IiBtc2dpZD0iMzEzODg0MzkwNDAwOTgxMzgzNCI+IuCkheCksOCljeCkleCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZG9uZSIgbXNnaWQ9Ijg5NzE1MTYxMTc5MTA5MzQ2MDUiPiLgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3ByZXZpb3VzIiBtc2dpZD0iMTQ0MzU1MDAzOTI1MDEwNTk0OCI+IuCkheCkmOCkv+CksuCljeCksuCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZGVmYXVsdCIgbXNnaWQ9IjI4NDA5MjE4ODU1NTgwNDU3MjEiPiLgpJrgpLLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaWFsX251bWJlcl91c2luZyIgbXNnaWQ9IjU3ODkxNzY0MjUxNjc1NzM1ODYiPlxuIuCkqOCkruCljeCkrOCksCDgpKHgpL7gpK/gpLIg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVzPC94bGlmZjpnPiDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWH4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2NvbnRhY3RfdXNpbmciIG1zZ2lkPSI0OTQ3NDA1MjI2Nzg4MTA0NTM4Ij4i4KS44KSu4KWN4KSq4KSw4KWN4KSVIOCkuOCkv+CksOCljeCknOCkqOCkviDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY1cbuCkr+CliyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lczwveGxpZmY6Zz4g4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClh+CksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW50X2NyZWRlbnRpYWxzX3Blcm1pc3Npb25fbWVzc2FnZV9oZWFkZXIiIG1zZ2lkPSIyMTA2MTAzODE3OTM3ODU5NjYyIj4i4KSo4KS/4KSu4KWN4KSoIOCkj+CkieCkn+CkviDgpLXgpL4g4KSn4KWH4KSw4KWIIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSW4KS+4KSk4KS+4KSu4KS+IOCkquCkueClgeCkgeCkmuCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSu4KSk4KS/IOCkheCkueCkv+CksuClhyDgpLAg4KSt4KS14KS/4KS34KWN4KSv4KSu4KS+IOCkheCkqOClgeCksOCli+CkpyDgpJfgpLDgpY3gpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9jcmVkZW50aWFsc19wZXJtaXNzaW9uX21lc3NhZ2VfZm9vdGVyIiBtc2dpZD0iMzEyNTIxMTM0MzM3OTM3NjU2MSI+IuCkleClhyDgpKTgpKrgpL7gpIjgpIEg4KSv4KS4IOCkheCkqOClgeCksOCli+Ckp+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSoIOCkmuCkvuCkueCkqOClgeCkueClgeCkqOCljeCkmz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9wZXJtaXNzaW9uc19oZWFkZXJfdGV4dCIgbXNnaWQ9IjY4NzQ0OTc0MDgyMDE4MjY3MDgiPiLgpIXgpKjgpYHgpLDgpYvgpKcg4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93IiBtc2dpZD0iNzIyNTk0ODgxMTI5NjM4NjU1MSI+IuCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55IiBtc2dpZD0iMjA4MTg3OTg4NTc1NTQzNDUwNiI+IuCkheCkuOCljeCkteClgOCkleCkvuCksCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtaXNzaW9uX3JlcXVlc3Rfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjQ4Njc1OTc5NTkyNjIzNzkwNyI+IuCkheCkqOClgeCksOCli+CkpyDgpJfgpLDgpL/gpI/gpJXgpYsg4KSF4KSo4KWB4KSu4KSk4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWlzc2lvbl9yZXF1ZXN0X25vdGlmaWNhdGlvbl93aXRoX3N1YnRpdGxlIiBtc2dpZD0iODUzMDM5MzEzOTYzOTU2MDE4OSI+XG4i4KSW4KS+4KSk4KS+IDx4bGlmZjpnIGlkPSJBQ0NPVU5UIj4lczwveGxpZmY6Zz7gpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCksOCli+CkpyDgpJfgpLDgpL/gpI/gpJXgpYsg4KSF4KSo4KWB4KSu4KSk4KS/4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5wdXRfbWV0aG9kX2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSIxMjgzNTU3MTc5OTQ0OTkyNjQ5Ij4i4KSH4KSo4KSq4KWB4KSfIOCkteCkv+Ckp+CkvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjM2ODc5NjkxMzgzNzUwOTI0MjMiPiLgpLjgpL/gpJngpY3gpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iNDE0ODEyMDc0MjA5NjQ3NDY0MSI+IuCkieCkquCksuCkrOCljeCkp+CkpOCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndhbGxwYXBlcl9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMTI0MDA4Nzg0NDMwNDY4NzY2MiI+IuCkteCkvuCksuCkquClh+CkquCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZXJfd2FsbHBhcGVyIiBtc2dpZD0iNzg3MzQ3NjE5OTI5NTE5MDI3OSI+IuCkteCkvuCksuCkquClh+CkquCksCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm90aWZpY2F0aW9uX2xpc3RlbmVyX2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSIyMDE0MTYyODM1NDgxOTA2NDI5Ij4i4KS44KWC4KSa4KSo4KS+IOCkuOClgeCkqOCljeCkqOClh+CkteCkvuCksuCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90aXRsZSIgbXNnaWQ9IjE5NjE1MjEzNTUyMDQyODI3Ij4iVlBOIOCkuOCkleCljeCksOCkv+CkryDgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGl0bGVfbG9uZyIgbXNnaWQ9IjY0MDA3MTQ3OTgwNDkyNTIyOTQiPiJWUE4gPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+4KSm4KWN4KS14KS+4KSw4KS+IOCkuOCkleCljeCksOCkv+CkryDgpJfgpLDgpL/gpI/gpJXgpYsg4KS54KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RleHQiIG1zZ2lkPSIzMDExMzA2NjA3MTI2NDUwMzIyIj4i4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkquCljeCksOCkrOCkqOCljeCkpyDgpJfgpLDgpY3gpKgg4KSb4KWB4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RleHRfbG9uZyIgbXNnaWQ9IjY0MDczNTEwMDYyNDkxNzQ0NzMiPiI8eGxpZmY6ZyBpZD0iU0VTU0lPTiI+JXM8L3hsaWZmOmc+4KS44KSB4KSXIOCknOCli+CkoeCkv+Ckj+CkleCliyDgpJvgpaQg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkteCljeCkr+CkteCkuOCljeCkpeCkvuCkquCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkm+ClgeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0aW5nIiBtc2dpZD0iNjQ0MzQzODk2NDQ0MDk2MDc0NSI+IlZQTiDgpJzgpKHgpL7gpKgg4KS44KSn4KWIIOCknOCli+CkoeCljeCkpuCliOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0ZWQiIG1zZ2lkPSI4MjAyNjc5Njc0ODE5MjEzOTMxIj4i4KS44KSn4KWI4KSBIOCkluClgeCksuCljeCksuCkviDgpLngpYHgpKjgpYcgVlBOIOCknOCli+CkoeCkv+Ckj+CkleCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9lcnJvciIgbXNnaWQ9IjYwMDkyNDk4MTQwMzQ3MDgxNzUiPiLgpLjgpKfgpYjgpIEg4KSt4KSw4KS/IFZQTiDgpKTgpY3gpLDgpYHgpJ/gpL/gpK7gpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29uZmlnIiBtc2dpZD0iNjQxNTg5OTE1MDY3MTUzNzk3MCI+IuCkleCkqOCljeCkq+Ckv+Ckl+CksCDgpJfgpLDgpY3gpKgg4KSf4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVwbG9hZF9maWxlIiBtc2dpZD0iMjg5Nzk1NzE3MjM2NjczMDQxNiI+IuCkq+CkvuCkh+CksiDgpJvgpL7gpKjgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19maWxlX2Nob3NlbiIgbXNnaWQ9IjYzNjM2NDg1NjIxNzA3NTk0NjUiPiLgpJXgpYHgpKjgpYgg4KSr4KS+4KSH4KSyIOCkm+CkvuCkqOCkv+Ckj+CkleCliyDgpJvgpYjgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXNldCIgbXNnaWQ9IjI0NDgxNjgwODA5NjQyMDk5MDgiPiLgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KSX4KSw4KWN4KSo4KWBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3VibWl0IiBtc2dpZD0iMTYwMjMzNTU3MjA4OTkxMTk0MSI+IuCkquClh+CkuCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXJfbW9kZV9kaXNhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjMxNjQ3NjgyMTIwMDM4NjQzMTYiPiLgpJXgpL7gpLAg4KSu4KWL4KShIOCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXJfbW9kZV9kaXNhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iODAzNTIzMDUzNzU2MzUwMzI2MiI+IuCkleCkvuCksCDgpK7gpYvgpKHgpKzgpL7gpJ8g4KSo4KS/4KS44KWN4KSV4KSoIOCkm+ClgeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRldGhlcmVkX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjMxNDY2OTQyMzQzOTgyMDI2MDEiPiLgpJ/gpYfgpKXgpLAg4KSX4KSw4KWN4KSo4KWHIOCkteCkviDgpLngpJ/gpLjgpY3gpKrgpJ8g4KS44KSV4KWN4KSw4KS/4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV0aGVyZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI2ODU3MDMxNzYwMTAzMDYyOTgyIj4i4KS44KWH4KSf4KSF4KSqIOCkl+CksOCljeCkqCDgpJ/gpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja19idXR0b25fbGFiZWwiIG1zZ2lkPSIyMzAwNDcwMDA0NTAzMzQzNDM5Ij4i4KSq4KSb4KS+4KSh4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmV4dF9idXR0b25fbGFiZWwiIG1zZ2lkPSIxMDgwNTU1MTA0Njc3OTkyNDA4Ij4i4KSF4KSw4KWN4KSV4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2tpcF9idXR0b25fbGFiZWwiIG1zZ2lkPSIxMjc1MzYyMjk5NDcxNjMxODE5Ij4i4KSb4KWL4KSh4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGhyb3R0bGVfd2FybmluZ19ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI0ODkwODk0MjY3NDU0ODY3Mjc2Ij4i4KSJ4KSa4KWN4KSaIOCkruCli+CkrOCkvuCkh+CksiDgpKHgpYfgpJ/gpL4g4KSq4KWN4KSw4KSv4KWL4KSXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGhyb3R0bGVfd2FybmluZ19ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjMzNDA4MjIyMjg1OTkzMzc3NDMiPiLgpK7gpYvgpKzgpL7gpIfgpLIg4KSh4KWH4KSf4KS+IOCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpKzgpL7gpLDgpYfgpK7gpL4g4KSF4KSw4KWCIOCkpeCkqiDgpJzgpL7gpKjgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/ICDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZWRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjI2OTU0MTg5NzcyOTc4MTMzMiI+IuCkruCli+CkrOCkvuCkh+CksiDgpKHgpYfgpJ/gpL4g4KS44KWA4KSu4KS+IOCkquCkvuCksCDgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI1NDQzNDU3MzIxMzU0OTA3MTgxIj4i4KSu4KWL4KSs4KS+4KSH4KSyIOCkoeClh+Ckn+CkviDgpKrgpY3gpLDgpK/gpYvgpJcg4KSs4KS+4KSw4KWHIOCkpeCkqiDgpLjgpL/gpJXgpY3gpKgg4KSb4KWB4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fbWF0Y2hlcyIgbXNnaWQ9IjgxMjk0MjE5MDg5MTU4NDA3MzciPiLgpJXgpYHgpKjgpYgg4KSu4KS/4KSy4KWH4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZF9vbl9wYWdlIiBtc2dpZD0iMTk0Njc5OTIzMzgyMjgyMDM4NCI+IuCkquClg+Ckt+CljeCkoOCkruCkviDgpKvgpYfgpLLgpL4g4KSq4KS+4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJtYXRjaGVzX2ZvdW5kIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODE2NzE0NzA4MTEzNjU3OTQzOSI+IuClpyDgpK7gpYfgpLIiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ2NDE4NzI3OTcwNjc2MDkxNzciPiI8eGxpZmY6ZyBpZD0iVE9UQUwiPiVkPC94bGlmZjpnPiDgpJXgpYsgPHhsaWZmOmcgaWQ9IklOREVYIj4lZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fbW9kZV9kb25lIiBtc2dpZD0iNzIxNzU4MTY0MDQ2MTkyMjI4OSI+IuCkreCkr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkyMzgxMDQ0ODUwNzYxMjc0NiI+IlVTQiAg4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkheCkqOCkruCkvuCkieCkqOCljeCknyDgpJfgpLDgpY3gpKbgpYguLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc191bm1vdW50aW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTMyNzg5NDk5ODQwOTUzNzE5MCI+IlNEIOCkleCkvuCksOCljeCkoSDgpIXgpKjgpK7gpL7gpIngpKjgpY3gpJ8g4KSX4KSw4KWN4KSm4KWI4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfZXJhc2luZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0NTIxNTczMzIxNTI0MzQwMDU4Ij4iVVNCIOCkreCko+CljeCkoeCkvuCksOCkoyDgpK7gpYfgpJ/gpL7gpIngpIHgpKbgpYjigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc19lcmFzaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjU5Njk4ODg3NTUwNzA0MzA0MiI+IlNEIOCkleCkvuCksOCljeCkoSDgpK7gpYfgpJ/gpL7gpIngpIHgpKbgpYjigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmb3JtYXRfZXJyb3IiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjI5OTc2OTU2MzYyNDc3Njk0OCI+IlVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKPgpLLgpL7gpIgg4KSu4KWH4KSf4KS+4KSJ4KSoIOCkuOCkleClh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcm1hdF9lcnJvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMTUyNDg2OTY2NDQ1MTA5MzUiPiJTRCDgpJXgpL7gpLDgpY3gpKEg4KSu4KWH4KSf4KS+4KSJ4KSoIOCkuOCkleClh+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2JhZF9yZW1vdmFsIiBtc2dpZD0iNzk2MDg2NDA2MTAxNjYwMzI4MSI+IlNEIOCkleCkvuCksOCljeCkoSDgpIXgpKjgpK7gpL7gpIngpKjgpY3gpJ8g4KS54KWB4KSo4KWB4KSt4KSo4KWN4KSm4KS+IOCkquCkueCkv+CksuCkviDgpKjgpL/gpJXgpL7gpLLgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9jaGVja2luZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MTgxODg3MjAwMDk1Njk2OTMiPiLgpIXgpLngpL/gpLLgpYcgVVNCIOCkreCko+CljeCkoeCkvuCksOCkoyDgpJzgpL7gpIHgpJog4KSt4KSH4KSw4KS54KWH4KSV4KWLIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2NoZWNraW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzMzNDc2MjUwMzkwNDgyNzQ4MSI+IlNEIOCkleCkvuCksOCljeCkoSDgpIXgpLngpL/gpLLgpYcg4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkreCkh+CksOCkueClh+CkleCliyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yZW1vdmVkIiBtc2dpZD0iNzAwMTUyNjkwNTA1Nzk1MjA5NyI+IlNEIOCkleCkvuCksOCljeCkoSDgpLngpJ/gpL7gpIfgpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9zaGFyZWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNTgzMDgxNDM0OTI1MDgzNDIyNSI+IlNEIOCkleCkvuCksOCljeCkoSDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLDgpKbgpY3gpLXgpL7gpLDgpL4g4KSF4KS54KS/4KSy4KWHIOCkquCljeCksOCkr+Cli+Ckl+CkruCkviDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9zaGFyZWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NzA2MTMwNTY4MTMzNTQwNDM1Ij4iU0Qg4KSV4KS+4KSw4KWN4KShIOCkheCkueCkv+CksuClhyDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLDgpKbgpY3gpLXgpL7gpLDgpL4g4KSq4KWN4KSw4KSv4KWL4KSX4KSu4KS+IOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3Vua25vd25fc3RhdGUiIG1zZ2lkPSI3MjkxOTI3ODIxOTcyOTAzODUiPiLgpKzgpL7gpLngpY3gpK8g4KSu4KS/4KSh4KS/4KSv4KS+IOCkheCknOCljeCknuCkvuCkpCDgpIXgpLXgpLjgpY3gpKXgpL7gpK7gpL7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZSIgbXNnaWQ9IjE3Nzg2ODY2MTgyMzAwMTE5NjQiPiLgpLjgpL7gpJ3gpYfgpKbgpL7gpLDgpYAg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZCIgbXNnaWQ9IjQ4MDgyNzA5MDAzMjI5ODU5NjAiPiLgpKrgpKTgpY3gpKTgpL4g4KSy4KSX4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2Vic2VhcmNoIiBtc2dpZD0iNDMzNzE1Nzk3NzQwMDIxMTU4OSI+IuCkteClh+CkrCDgpJbgpYvgpJzgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kX25leHQiIG1zZ2lkPSI1NzQyMTI0NjE4OTQyMTkzOTc4Ij4i4KSF4KSw4KWN4KSV4KWLIOCkreClh+Ckn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmRfcHJldmlvdXMiIG1zZ2lkPSIyMTk2NzIzNjY5Mzg4MzYwNTA2Ij4i4KSF4KSY4KS/4KSy4KWN4KSy4KWLIOCkq+Clh+CksuCkviDgpKrgpL7gpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNOb3RpZlRpY2tlciIgbXNnaWQ9IjU2MjI2ODM5MTI2MTY0OTYxNzIiPiI8eGxpZmY6ZyBpZD0iTkFNRSI+JXM8L3hsaWZmOmc+IOCkrOCkvuCknyDgpLjgpY3gpKXgpL7gpKgg4KSF4KSo4KWB4KSw4KWL4KSnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZUaXRsZSIgbXNnaWQ9IjU0NDY4NTg3MTcxNTc0MTY4MzkiPiLgpLjgpY3gpKXgpL7gpKgg4KSF4KSo4KWB4KSw4KWL4KSnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZNZXNzYWdlIiBtc2dpZD0iMTM3NDcxODAyMzIyNDAwMDcwMiI+Ijx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPiAoPHhsaWZmOmcgaWQ9IlNFUlZJQ0UiPiUyJHM8L3hsaWZmOmc+KSDgpKbgpY3gpLXgpL7gpLDgpL4g4KSF4KSo4KWB4KSw4KWL4KSnIOCkl+CksOCkv+Ckj+CkleCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmWWVzIiBtc2dpZD0iMjM0NjU2NjA3Mjg2NzIxMzU2MyI+IuCkueCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmTm8iIG1zZ2lkPSIxMTQ2NTY0OTM3MzQ2NDU0ODY1Ij4i4KS54KWL4KSH4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzIiBtc2dpZD0iNTI5NjMyMTg1MDY2Mjc0Njg5MCI+IuCkuOClgOCkruCkviDgpKjgpL7gpJjgpYfgpJXgpL7gpLngpLDgpYIg4KSu4KWH4KSf4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzX2Rlc2MiIG1zZ2lkPSI0OTY1NTE2NzEwMDg2OTQyNDUiPiLgpKTgpY3gpK/gpLngpL7gpIEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl9PRl9ERUxFVEVEX0lURU1TIj4lMSRkPC94bGlmZjpnPiDgpK7gpYfgpJ/gpL7gpIfgpI/gpJXgpL4g4KSG4KSH4KSf4KSu4KS54KSw4KWCIOCkm+CkqOCljSA8eGxpZmY6ZyBpZD0iVFlQRV9PRl9TWU5DIj4lMiRzPC94bGlmZjpnPuCkleCliyDgpLLgpL7gpJfgpL8sIOCkluCkvuCkpOCkviA8eGxpZmY6ZyBpZD0iQUNDT1VOVF9OQU1FIj4lMyRzPC94bGlmZjpnPuClpCDgpKTgpKrgpL7gpIjgpIIg4KSV4KWHIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfcmVhbGx5X2RlbGV0ZSIgbXNnaWQ9IjI1NzI2MDAxMDMxMjI1OTYyNDMiPiLgpLXgpLjgpY3gpKTgpYHgpLngpLDgpYIg4KSu4KWH4KSf4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY191bmRvX2RlbGV0ZXMiIG1zZ2lkPSIyOTQxMzE3MzYwNjAwMzM4NjAyIj4i4KSu4KWH4KSf4KS/4KSP4KSV4KS+4KS54KSw4KWCIOCkquClguCksOCljeCkteCkteCkpCDgpKzgpKjgpL7gpIngpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzeW5jX2RvX25vdGhpbmciIG1zZ2lkPSIzNzQzNzY0NzQwNDMwODIxODQ1Ij4i4KSF4KS54KS/4KSy4KWH4KSV4KWLIOCksuCkvuCkl+CkvyDgpJXgpYfgpLngpYAg4KSo4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX2FjY291bnRfbGFiZWwiIG1zZ2lkPSI1NjU1MjAzMDg5NzQ2NDIzOTI3Ij4i4KSP4KSJ4KSf4KS+IOCkluCkvuCkpOCkviDgpJvgpL7gpKjgpY3igI3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfYWNjb3VudF9sYWJlbCIgbXNnaWQ9IjI5MzUyNjczNDQ4NDk5OTM1NTMiPiLgpI/gpIngpJ/gpL4g4KSW4KS+4KSk4KS+IOCkpeCkquCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9hY2NvdW50X2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjM2MTE5ODI4OTQ4NTM0MzU4NzQiPiLgpJbgpL7gpKTgpL4g4KSl4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfaW5jcmVtZW50X2J1dHRvbiIgbXNnaWQ9IjI0MTIwNzIyNzI4MzIyODQzMTMiPiLgpKzgpKLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJudW1iZXJfcGlja2VyX2RlY3JlbWVudF9idXR0b24iIG1zZ2lkPSI0NzYwNTA3NzgzODY3NzkwNjciPiLgpJjgpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJudW1iZXJfcGlja2VyX2luY3JlbWVudF9zY3JvbGxfbW9kZSIgbXNnaWQ9IjMwNzMxMDEwNjc0NDE2Mzg0MjgiPiI8eGxpZmY6ZyBpZD0iVkFMVUUiPiVzPC94bGlmZjpnPuCkm+ClgeCkqOClgeCkueCli+CkuOCljSDgpLAg4KS44KSu4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfc2Nyb2xsX2FjdGlvbiIgbXNnaWQ9IjkxMDE0NzMwNDU4OTE4MzU0OTAiPiLgpKzgpKLgpL7gpIngpKgg4KSu4KS+4KSl4KS/IOCksCDgpJjgpJ/gpL7gpIngpKgg4KSk4KSyIOCkuOCkvuCksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2luY3JlbWVudF9taW51dGVfYnV0dG9uIiBtc2dpZD0iODg2NTg4NTExNDAyODYxNDMyMSI+IuCkruCkv+CkqOClh+CknyDgpKzgpKLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfbWludXRlX2J1dHRvbiIgbXNnaWQ9IjYyNDY4MzQ5MzcwODA2ODQ3OTEiPiLgpK7gpL/gpKjgpYfgpJ8g4KSY4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfaW5jcmVtZW50X2hvdXJfYnV0dG9uIiBtc2dpZD0iMzY1MjA1NjA1NTgxMDIyMzEzOSI+IuCkmOCkqOCljeCkn+CkviDgpKzgpKLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfaG91cl9idXR0b24iIG1zZ2lkPSIxMzc3NDc5ODYzNDI5MjE0NzkyIj4i4KSY4KSo4KWN4KSf4KS+IOCkmOCkn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2luY3JlbWVudF9zZXRfcG1fYnV0dG9uIiBtc2dpZD0iNDE0NzU5MDY5NjE1MTIzMDg2MyI+IlBNIOCkuOClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfc2V0X2FtX2J1dHRvbiIgbXNnaWQ9IjgzMDIxNDAzNTM1Mzk0ODY3NTIiPiJBTSDgpLjgpYfgpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X21vbnRoX2J1dHRvbiIgbXNnaWQ9IjUzNjk5OTg0NzkwNjc5MzQxMTAiPiLgpK7gpLngpL/gpKjgpL4g4KSs4KSi4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfZGVjcmVtZW50X21vbnRoX2J1dHRvbiIgbXNnaWQ9IjE4MzI2OTg5OTU1NDE3MjYwMTkiPiLgpK7gpLngpL/gpKjgpL4g4KSY4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KWN4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X2RheV9idXR0b24iIG1zZ2lkPSI3MTMwNDY1NDEyMzA4MTczOTAzIj4i4KSm4KS/4KSoIOCkrOCkouCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF9kYXlfYnV0dG9uIiBtc2dpZD0iNDEzMTg4MTUyMTgxODc1MDAzMSI+IuCkpuCkv+CkqCDgpJjgpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9pbmNyZW1lbnRfeWVhcl9idXR0b24iIG1zZ2lkPSI2MzE4Njk3Mzg0MzEwODA4ODk5Ij4i4KS14KSw4KWN4KS3IOCkrOCkouCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF95ZWFyX2J1dHRvbiIgbXNnaWQ9IjQ0ODIwMjE4MTM0OTExMjE3MTciPiLgpLXgpLDgpY3gpLcg4KSY4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfYWx0IiBtc2dpZD0iNDg1Njg2ODgyMDA0MDA1MTkzOSI+IkFsdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2NhbmNlbCIgbXNnaWQ9IjEyMDM5ODQwMTcyNDU3ODMyNDQiPiLgpLDgpKbgpY3gpKYg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZGVsZXRlIiBtc2dpZD0iMzMzNzkxNDgzMzIwNjYzNTc0NCI+IuCkruClh+Ckn+CljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RvbmUiIG1zZ2lkPSIxOTkyNTcxMTE4NDY2Njc5Nzc1Ij4i4KSt4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfbW9kZV9jaGFuZ2UiIG1zZ2lkPSI0NTQ3Mzg3NzQxOTA2NTM3NTE5Ij4i4KSu4KWL4KShIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IuCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiLgpI/gpIngpJ/gpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkm+CkvuCkqOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IuCkuOCkvuCkneClh+CkpuCkvuCksOClgCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0uLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiDgpLjgpIHgpJcg4KS44KS+4KSd4KWH4KSm4KS+4KSw4KWAIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiLgpKfgpL/gpLjgpL7gpLDgpY3gpKjgpYcg4KS54KWN4KSv4KS+4KSo4KWN4KSh4KSy4KWkIOCkm+ClgeCkqOClgeCkueCli+CkuOCljSAmYW1wOyDgpLjgpK7gpL7gpIngpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+4KSV4KWLIOCksuCkvuCkl+CkvyDgpK7gpL7gpKXgpL8g4KSn4KS/4KS44KS+4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2Rvd24iIG1zZ2lkPSI1MDg3NzM5NzI4NjM5MDE0NTk1Ij4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IOCkleCliyDgpLLgpL7gpJfgpL8g4KSk4KSyIOCkuOCljeCksuCkvuCkh+CkoSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fbGVmdCIgbXNnaWQ9IjcyMDc0Nzg3MTk4MDU1NjIxNjUiPiLgpLjgpY3gpLLgpL7gpIfgpKEgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+4KSV4KWLIOCksuCkvuCkl+CkvyDgpKzgpL7gpK/gpL7gpIHgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fcmlnaHQiIG1zZ2lkPSI4MDM0NDMzMjQyNTc5NjAwOTgwIj4i4KS44KWN4KSy4KS+4KSH4KShIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPuCkleCliyDgpLLgpL7gpJfgpL8g4KSm4KS+4KSv4KS+4KSB4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9jayIgbXNnaWQ9IjIyMjg1MjQ5MDA0Mzk4MDE0NTMiPiLgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X2NhbWVyYSIgbXNnaWQ9Ijk2OTA3MTk5NzU1MjQ4NjgxNCI+IuCkleCljeCkr+CkvuCkruClh+CksOCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zaWxlbnQiIG1zZ2lkPSI4OTM1NTEyODc3NDY1MjIxODIiPiLgpK7gpYzgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4i4KSG4KS14KS+4KScIOCkmuCkvuCksuClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zZWFyY2giIG1zZ2lkPSIzMDkxNTg3MjQ5Nzc2MDMzMTM5Ij4i4KSW4KWL4KSc4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9ja190YWJsZXQiIG1zZ2lkPSIzODMzMTk1MzM1NjI5Nzk1MDU1Ij4i4KSW4KWL4KSy4KWN4KSo4KSy4KS+4KSHIOCkueClgeCkpOCljeCkpOCljeCkr+CkvuCkieCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2hlYWRzZXRfcmVxdWlyZWRfdG9faGVhcl9wYXNzd29yZCIgbXNnaWQ9IjcwMTE5MjczNTIyNjc2Njg2NTciPiLgpKzgpYvgpLLgpL/gpI/gpJXgpYsg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkleClgeCknuCljeCknOClgOCkueCksOClgiDgpLjgpYHgpKjgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkueClh+CkoeCkuOClh+CknyDgpKrgpY3gpLLgpJcg4KSH4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX3Bhc3N3b3JkX2NoYXJhY3Rlcl9ub19oZWFkc2V0IiBtc2dpZD0iMjg1OTg3Mzc3MDg4NjE1MzY3OCI+IuCkoeCkn+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUyOTM2MDA0OTY2MDE0OTAyMTYiPiLgpJfgpYPgpLkg4KSW4KWL4KSc4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl91cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIyMzc0OTY1NjI5NTIxNTI1ODkiPiLgpK7gpL7gpKXgpL8g4KSW4KWL4KSc4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX21lbnVfb3ZlcmZsb3dfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMjk1NjU5MDM3NTA5MDA4NDUzIj4i4KSl4KSqIOCkteCkv+CkleCksuCljeCkquCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI3OTY1OTg0MzYwOTAzNjkzOTAzIj4iJTEkcywgJTIkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9zdWJ0aXRsZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI2OTg1NTQ2NTMwNDcxNzgwNzI3Ij4iJTEkcywgJTIkcywgJTMkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfaW50ZXJuYWwiIG1zZ2lkPSI0ODkxOTE2ODMzNjU3OTI5MjYzIj4i4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkreCko+CljeCkoeCkvuCksOCkoyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2Vfc2RfY2FyZCIgbXNnaWQ9IjMyODI5NDg4NjEzNzgyODY3NDUiPiJTRCDgpJXgpL7gpLDgpY3gpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3VzYiIgbXNnaWQ9IjMwMTc5NTQwNTk1Mzg1MTcyNzgiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0cmFjdF9lZGl0X21lbnVfYnV0dG9uIiBtc2dpZD0iODk0MDQ3ODczMDQ5NjYxMDEzNyI+IuCkuOCkruCljeCkquCkvuCkpuCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSIxOTU1NjM4ODYyMTIyMjMyMzQyIj4i4KSh4KWH4KSf4KS+IOCkquCljeCksOCkr+Cli+CklyDgpJrgpYfgpKTgpL7gpLXgpKjgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dhcm5pbmdfYm9keSIgbXNnaWQ9IjI4MTQ2NzM1NTE0NzE5Njk5NTQiPiLgpIngpKrgpK/gpYvgpJcg4KSwIOCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiDgpLngpYfgpLDgpY3gpKgg4KSb4KWB4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV8zZ19saW1pdF90aXRsZSIgbXNnaWQ9IjcwOTMzMzQ0MTk1MTg3MDY2ODYiPiIyRy0zRyDgpKHgpYfgpJ/gpL4g4KSF4KS44KSV4KWN4KS34KSuIOCkl+CksOCkv+Ckj+CkleCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfNGdfbGltaXRfdGl0bGUiIG1zZ2lkPSI3NjM2NDg5NDM2ODE5NDcwNzYxIj4iNEcg4KSh4KWH4KSf4KS+IOCkheCkuOCkleCljeCkt+CkriDgpJfgpLDgpL/gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX21vYmlsZV9saW1pdF90aXRsZSIgbXNnaWQ9Ijc4Njk0MDI1MTkzOTE2MzE4ODQiPiLgpK7gpYvgpKzgpL7gpIfgpLIg4KSh4KWH4KSf4KS+IOCkheCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfdGl0bGUiIG1zZ2lkPSI4OTkyMTU0NzM2NDQxMjg0ODY1Ij4i4KS14KS+4KSHLeCkq+CkvuCkhyDgpKHgpYfgpJ/gpL4g4KSF4KS44KSV4KWN4KS34KSuIOCkl+CksOCkv+Ckr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbGltaXRfYm9keSIgbXNnaWQ9IjMzMTc5NjQ3MDY5NzM2MDEzODYiPiLgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KWN4KSoIOCkm+ClgeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfM2dfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjcwMjY3MzkxMjExMzgwMDUyMzEiPiIyRy0zRyDgpKHgpYfgpJ/gpL4g4KS44KWA4KSu4KS+IOCkreCkqOCljeCkpuCkviDgpKrgpL7gpLAg4KSt4KSP4KSV4KWLIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfNGdfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjExMDY1NjI3NzkzMTEyMDkwMzkiPiI0RyDgpKHgpYfgpJ/gpL4gU0lN4KS+IOCkqOCkvuCkmOCljeCkr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbW9iaWxlX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSIyNzkyNDA1NzIxNjU0MTIxNjgiPiLgpK7gpYvgpLXgpL7gpIfgpLIg4KSh4KWH4KSf4KS+IFNJTeCkviDgpKjgpL7gpJjgpY3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9Ijg3NDM4NTYwMDYzODQ4MjU5NzQiPiLgpLXgpL7gpIct4KSr4KS+4KSHIOCkoeClh+Ckn+CkviBTSU3gpL4g4KSo4KS+4KSY4KWN4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9saW1pdF9zbm9vemVkX2JvZHkiIG1zZ2lkPSI3MDM1NDkwMjc4Mjk4NDQxNzY3Ij4iPHhsaWZmOmcgaWQ9IlNJWkUiPiVzPC94bGlmZjpnPiDgpIngpLLgpY3gpLLgpYfgpJbgpL/gpKQg4KS44KWA4KSu4KS+IOCkreCkqOCljeCkpuCkviDgpKzgpKLgpYAg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9yZXN0cmljdGVkX3RpdGxlIiBtc2dpZD0iNTk2NTE1NzM2MTAzNjMyMTkxNCI+IuCkquClg+Ckt+CljeCkoOCkreClguCkruCkv+CkleCkviDgpKHgpYfgpJ/gpL4g4KSq4KWN4KSw4KSk4KS/4KSs4KSo4KWN4KSn4KS/4KSkIOCkl+CksOCkv+Ckj+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3Jlc3RyaWN0ZWRfYm9keSIgbXNnaWQ9IjY3NDE1MjEzMzA5OTc0NTI5OTAiPiLgpIXgpLXgpLDgpYvgpKcg4KS54KSf4KS+4KSJ4KSoIOCkm+ClgeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jZXJ0aWZpY2F0ZSIgbXNnaWQ9IjY1MTAwNDA0ODYwNDkyMzc2MzkiPiLgpLjgpYHgpLDgpJXgpY3gpLfgpL4g4KSq4KWN4KSw4KSu4KS+4KSj4KSq4KSk4KWN4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NlcnRpZmljYXRlX2lzX3ZhbGlkIiBtc2dpZD0iNjgyNTI2MzI1MDc3NDU2OTM3MyI+IuCkquCljeCksOCkruCkvuCko+CkquCkpOCljeCksCDgpK7gpL7gpKjgpY3gpK8g4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXNzdWVkX3RvIiBtc2dpZD0iNDU0MjM5NDgwMjc0OTIxMDMyIj4i4KSm4KWN4KS14KS+4KSw4KS+IOCknOCkvuCksOClgCDgpJfgpLDgpL/gpI/gpJXgpYs6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tbW9uX25hbWUiIG1zZ2lkPSIyMjMzMjA5Mjk5NDM0MTcyNjQ2Ij4i4KS44KS+4KSn4KS+4KSw4KSjIOCkqOCkvuCkrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdfbmFtZSIgbXNnaWQ9IjY5NzM1NjExOTA3NjIwODUyMzYiPiLgpLjgpILgpJfgpKDgpKg6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnX3VuaXQiIG1zZ2lkPSI3MjY1OTgxODkwNDIyMDcwMzgzIj4i4KS44KSC4KSX4KSg4KSo4KS+4KSk4KWN4KSu4KSVIOCkj+CkleCkvuCkhzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfYnkiIG1zZ2lkPSIyNjQ3NTg0OTg4MDU3NDgxNTY2Ij4i4KSm4KWN4KS14KS+4KSw4KS+IOCknOCkvuCksOClgCDgpJfgpLDgpL/gpI/gpJXgpYs6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idmFsaWRpdHlfcGVyaW9kIiBtc2dpZD0iODgxODg4NjEzNzU0NTk4MzExMCI+IuCkruCkvuCkqOCljeCkr+CkpOCkvjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfb24iIG1zZ2lkPSI1ODk1MDE3NDA0MzYxMzk3MjMyIj4i4KSc4KS+4KSw4KWAIOCkl+CksOCkv+Ckj+CkleClizoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHBpcmVzX29uIiBtc2dpZD0iMzY3NjI0Mjk0OTkxNTk1OTgyMSI+IuCkheCkteCkp+CkvyDgpLjgpK7gpL7gpKrgpY3gpKQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VyaWFsX251bWJlciIgbXNnaWQ9Ijc1ODgxNDA2NzY2MDg2MjQ5MyI+IuCkleCljeCksOCkriDgpLjgpILgpJbgpY3gpK/gpL46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZ2VycHJpbnRzIiBtc2dpZD0iNDUxNjAxOTYxOTg1MDc2MzA0OSI+IuCklOCkgeCkoOCkvuCkm+CkvuCkquCkueCksOClgjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGEyNTZfZmluZ2VycHJpbnQiIG1zZ2lkPSI0MzkxMjcxMjg2NDc3Mjc5MjYzIj4iU0hBLeClqOClq+ClrCDgpJTgpILgpKDgpL7gpJvgpL7gpKo6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhMV9maW5nZXJwcmludCIgbXNnaWQ9Ijc5MzAzMzAyMzUyNjk0MDQ1ODEiPiJTSEEtMSDgpJTgpILgpLLgpL7gpJvgpL7gpKo6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfY2hvb3Nlcl92aWV3X3NlZV9hbGwiIG1zZ2lkPSI0MjkyNTY5MzgzOTc2NjM2MjAwIj4i4KS44KSs4KWIIOCkueClh+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2Nob29zZXJfdmlld19kaWFsb2dfdGl0bGVfZGVmYXVsdCIgbXNnaWQ9IjQ3MTAwMTM4NjQ5NzQwNDA2MTUiPiLgpJfgpKTgpL/gpLXgpL/gpKfgpL8g4KSb4KSo4KWM4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX2FjdGlvbl9wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iNTI0NzY4NDQzNTk3OTE0OTIxNiI+IuCkuOCkvuCkneClh+CkpuCkvuCksOClgCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0uLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsaXN0X2RlbGltZXRlciIgbXNnaWQ9IjM5NzUxMTc1NzIxODU0OTQxNTIiPiIsICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbmRpbmciIG1zZ2lkPSIzMjQ1NjUzNjgxMDA4MjE4MDMwIj4i4KSq4KSg4KS+4KSJ4KSB4KSm4KWILi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoQnJvd3NlckRlZmF1bHQiIG1zZ2lkPSIyMDU3OTUxOTQ3Mjk3NjE0NzI1Ij4i4KSs4KWN4KSw4KS+4KSJ4KSc4KSwIOCkuOClgeCksOClgSDgpJfgpLDgpY3gpKjgpYcg4KS54KWLPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlNldHVwQ2FsbERlZmF1bHQiIG1zZ2lkPSI1ODM0OTQ4NDY5MjUzNzU4NTc1Ij4i4KSV4KSyIOCkuOCljeCkteClgOCkleCkvuCksCDgpJfgpLDgpY3gpKjgpYHgpLngpYHgpKjgpY3gpJs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfcmVzb2x2ZXJfdXNlX2Fsd2F5cyIgbXNnaWQ9IjgwMTc3NzA3NDc4MDE0OTQ5MzMiPiLgpLjgpKfgpYjgpIEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9yZXNvbHZlcl91c2Vfb25jZSIgbXNnaWQ9IjI0MDQ2NDQ3OTcxNDkxNzM3NTgiPiLgpI/gpIngpJ/gpL4g4KSu4KS+4KSk4KWN4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0NjE3MDUzODk4MTY3MTI3NDcxIj4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDIzOTI5MTI3MzQyMDE0MDEyMyI+IuCkq+Cli+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfbmFtZV9oZWFkcGhvbmVzIiBtc2dpZD0iODExOTk3MTg0MzgwMzQzOTExMCI+IuCkueClh+CkoeCkq+Cli+CkqOCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfbmFtZV9kb2NrX3NwZWFrZXJzIiBtc2dpZD0iNjI0MDYwMjk4MjI3NjU5MTg2NCI+IuCkoeCklSDgpLjgpY3gpKrgpL/gpJXgpLDgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X21lZGlhX3JvdXRlX25hbWVfaGRtaSIgbXNnaWQ9IjI0NTA5NzAzOTkwMjM0NzgwNTUiPiJIRE1JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9jYXRlZ29yeV9uYW1lIiBtc2dpZD0iMzcyMjgxMTE3NDAwMzg4Njk0NiI+IuCkquCljeCksOCko+CkvuCksuClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsdWV0b290aF9hMmRwX2F1ZGlvX3JvdXRlX25hbWUiIG1zZ2lkPSI4NTc1NjI0MDMwNDA2NzcxMDE1Ij4i4KSs4KWN4KSy4KWB4KSf4KWB4KSlIOCkheCkoeCkv+Ckr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpcmVsZXNzX2Rpc3BsYXlfcm91dGVfZGVzY3JpcHRpb24iIG1zZ2lkPSI5MDcwMzQ2NDI1MDIzOTc5NjUxIj4i4KSk4KS+4KSw4KSw4KS54KS/4KSkIOCkquCljeCksOCkpuCksOCljeCktuCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX2Nob29zZXJfZ3JvdXBpbmdfZG9uZSIgbXNnaWQ9Ijc5NjY0MzgzMDc3MjMzMTcxNjkiPiLgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9idXR0b25fY29udGVudF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU3NTg1NTM1NjcwNjUxNDUyNzYiPiLgpK7gpL/gpKHgpL/gpK/gpL7gpJXgpYsg4KSJ4KSk4KWN4KSq4KS+4KSm4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX3NjYW5uaW5nIiBtc2dpZD0iNzI3OTkwODc2MTc1ODI5Mzc4MyI+IuCkuOCljeCkleCljeCkr+CkvuCkqCDgpJfgpLDgpY3gpKbgpYggLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2Nvbm5lY3RpbmciIG1zZ2lkPSI2NDIyNTcxNzE2MDA3ODI1NDQwIj4i4KSc4KSh4KS+4KSoIOCkueClgeCkgeCkpuCliC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19hdmFpbGFibGUiIG1zZ2lkPSI2OTgzMjU4MDY3MTk0NjQ5MzkxIj4i4KSJ4KSq4KSy4KSs4KWN4KSnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX25vdF9hdmFpbGFibGUiIG1zZ2lkPSI2NzM5ODk5OTYyNjgxODg2NDAxIj4i4KSJ4KSq4KSy4KSs4KWN4KSnIOCkm+CliOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19pbl91c2UiIG1zZ2lkPSI0NTMzNzg2MDMxMDkwMTk4MDYzIj4i4KSq4KWN4KSw4KSv4KWL4KSX4KSu4KS+IOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9idWlsdF9pbl9kaXNwbGF5X25hbWUiIG1zZ2lkPSIyNTgzMTM0Mjk0MjkyNTYzOTQxIj4i4KSq4KWC4KSw4KWN4KS1LeCkqOCkv+CksOCljeCkruCkv+CkpCDgpLjgpY3gpJXgpY3gpLDgpL/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfaGRtaV9kaXNwbGF5X25hbWUiIG1zZ2lkPSIxNTU1MjY0NTU5MjI3NDcwMTA5Ij4iSERNSSDgpLjgpY3gpJXgpY3gpLDgpL/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X25hbWUiIG1zZ2lkPSI1MTQyMzY1OTgyMjcxNjIwNzE2Ij4i4KSG4KS14KSw4KSjICM8eGxpZmY6ZyBpZD0iSUQiPiUxJGQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV90aXRsZSIgbXNnaWQ9IjY1MjEyNDUxNzY3MjI1NzE3MiI+Ijx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IldJRFRIIj4lMiRkPC94bGlmZjpnPng8eGxpZmY6ZyBpZD0iSEVJR0hUIj4lMyRkPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IkRQSSI+JTQkZDwveGxpZmY6Zz4gZHBpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9zZWN1cmVfc3VmZml4IiBtc2dpZD0iNjAyMjExOTcwMjYyODU3MjA4MCI+Iiwg4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIyMjMwNTA2NDkyNDAzMjY1NTciPiLgpKTgpL7gpLDgpLDgpLngpL/gpKQg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIOCknOCli+CkoeCkv+Ckj+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDk4ODAyMDEyNDY0MTcwNjg1Ij4i4KSF4KSw4KWN4KSV4KWLIOCkieCkquCkleCksOCko+CkruCkviDgpK/gpYsg4KS44KWN4KSV4KWN4KSw4KS/4KSo4KSy4KWHIOCkpuClh+CkluCkvuCkh+CksOCkueClh+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX2Rpc2Nvbm5lY3QiIG1zZ2lkPSI2MTgzNzU0NDYzNTYxMTUzMzcyIj4i4KS14KS/4KSa4KWN4KSb4KWH4KSm4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VtZXJnZW5jeV9jYWxsX2xhYmVsIiBtc2dpZD0iNjg0OTQ2MTkyNTIzODMwNTMxIj4i4KSG4KSq4KSk4KSV4KS+4KSy4KWA4KSoIOCkleCksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iODg1MjAyMTQ2Nzg2ODIyMDYwOCI+IuCkouCkvuCkgeCkmuCkviDgpKzgpL/gpLDgpY3gpLjgpKjgpYEg4KSt4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiLgpJfgpLLgpKQg4KSi4KS+4KSB4KSa4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGFzc3dvcmQiIG1zZ2lkPSIyMzMzMjgxNzYyMTI4MTEzMTU3Ij4i4KSX4KSy4KSkIOCkquCkvuCkuOCkteCksOCljeCkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiLgpJfgpLLgpKQgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRkPC94bGlmZjpnPuCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3BhdHRlcm5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzk4OTc4NjExNjgzMDc1ODY4Ij4i4KSG4KSr4KWN4KSo4KWLIOCkouCkvuCkgeCkmuCkviDgpJXgpYvgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiJTSU0gUElOIOCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IlBJTiDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+IuCkquCkvuCkuOCkteCksOCljeCkoSDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4iU0lNIOCkleCkvuCksOCljeCkoSDgpIXgpLngpL/gpLLgpYcg4KSF4KS44KSV4KWN4KS34KSuIOCkm+ClpCDgpLjgpYHgpJrgpL7gpLDgpYEg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyBQVUsg4KSV4KWL4KShIOCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQgIOCkteCkv+CkteCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KS14KS+4KS54KSV4KSy4KS+4KSIIOCkuOCkruCljeCkquCksOCljeCklSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i4KSH4KSa4KWN4KSb4KS/4KSkIFBJTiDgpJXgpYvgpKEg4KSq4KWN4KSw4KS14KS/4KS34KWN4KSf4KS/IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLgpK7gpKjgpKrgpLDgpY3gpKbgpYsgUElOIOCkleCli+CkoSDgpKjgpL/gpLbgpY3gpJrgpL/gpKQg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJTSU0g4KSV4KS+4KSw4KWN4KShIOCkheCkqOCksuCklSDgpJfgpLDgpY3gpKbgpYjigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiLgpJfgpLLgpKQgUElOIOCkleCli+CkoeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IuClqiDgpKbgpYfgpJbgpL8g4KWuIOCkteCkvuCknyDgpKjgpK7gpY3gpKzgpLAg4KSt4KSP4KSV4KWLIOCkj+CkieCkn+CkviBQSU4g4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyDgpJXgpYvgpKEg4KWuIOCkteCkn+CkviDgpKjgpK7gpY3gpKzgpLAg4KS14KS+IOCkuOCliyDgpK3gpKjgpY3gpKbgpL4g4KSs4KSi4KWAIOCkueClgeCkqOClgeCkquCksOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IlBVSyDgpJXgpYvgpKEg4KSq4KWB4KSoOuCkquCljeCksOCkpuCkvuCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQg4KSn4KWH4KSw4KWIIOCkquClgeCkqDrgpKrgpY3gpLDgpK/gpL7gpLjgpLngpLDgpYLgpLLgpYcgU0lN4KSy4KS+4KSIIOCkuOCljeCkpeCkvuCkr+ClgCDgpLDgpYLgpKrgpK7gpL4g4KSo4KS/4KS34KWN4KSV4KWN4KSw4KS/4KSvIOCkl+CksOCkv+CkpuCkv+CkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4iUElOIOCkleCli+CkoeCkueCksOClgiDgpK7gpYfgpLIg4KSW4KS+4KSP4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4i4KSo4KS/4KSV4KWIIOCkp+Clh+CksOCliCDgpKLgpL7gpIHgpJrgpL4g4KSV4KWL4KS44KS/4KS44KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMTEwMDU1MTI2MTI2NTUwNjQ0OCI+IuCkheCkqOCksuCklSDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/LCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsgR29vZ2xlIOCkluCkvuCkpOCkvuCkleCliyDgpLjgpL7gpKUg4KS44KS+4KSH4KSoIOCkh+CkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+IuCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKjgpL7gpK4gKOCkh+CkruClh+CksikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iOTA1NzI4OTEwMzgyNzI5ODU0OSI+IuCkquCkvuCkuOCkteCksOCljeCkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI1MzU1OTA0NTgyNjc0MDU0NzAyIj4i4KS44KS+4KSH4KSoIOCkh+CkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+IuCkheCkruCkvuCkqOCljeCkryDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpKjgpL7gpK4g4KS14KS+IOCkquCkvuCkuOCkteCksOCljeCkoeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2FjY291bnRfcmVjb3ZlcnlfaGludCIgbXNnaWQ9IjU2OTA3MDkxMzI4NDE3NTI5NzQiPiLgpJXgpYcg4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKjgpL7gpK4g4KS14KS+IOCkquCkvuCkuOCkteCksOCljeCkoSDgpKzgpL/gpLDgpY3gpLjgpKjgpYHgpK3gpK/gpYs/XG4iPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIg4KSu4KS+IOCknOCkvuCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IuCkluCkvuCkpOCkviDgpJzgpL7gpIHgpJog4KS54KWB4KSB4KSm4KWI4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsgUElOIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWBIOCkreCkj+CkleCliyDgpJvgpaQgXG5cbjx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSk4KSq4KS+4KSI4KSB4KSVIOCkquCkvuCkuOCkteCksOCljeCkoSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSX4KSy4KSkIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpK3gpI/gpJXgpYsg4KSb4KWkIFxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KS44KWH4KSV4KWH4KSo4KWN4KSh4KSu4KS+IOCkq+Clh+CksOCkvyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSF4KSo4KSy4KSVIOCkouCkvuCkgeCkmuCkviDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJbgpL/gpJrgpY3gpKjgpYEg4KSt4KSP4KSV4KWLIOCkm+ClpCBcblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSV4KWL4KS44KS/4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpLLgpL7gpIgg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqCDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJXgpYvgpLjgpL/gpLgg4KSX4KSw4KWN4KSo4KWBIOCkreCkj+CkleCliyDgpJvgpaQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KSq4KSb4KS/IOCkpeCkqiDgpIXgpLjgpKvgpLIg4KSq4KWN4KSw4KSv4KS+4KS44KS54KSw4KWCLCDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSkIOCkleCkvuCksOCljeCkr+CktuCkvuCksuCkvuCkruCkviDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KSX4KSw4KS/4KSo4KWHIOCkmyDgpLAg4KS44KSs4KWIIOCkquCljeCksOCkr+Cli+CklyDgpKHgpYfgpJ/gpL4g4KS54KSw4KS+4KSJ4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQwNTEwMTU5NDMwMzgxOTk5MTAiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSX4KSy4KSk4KS44KSB4KSXIOCkq+Cli+CkqOCksuCkvuCkiCDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJXgpYvgpLjgpL/gpLgg4KSX4KSw4KWN4KSo4KWBIOCkreCkr+Cli+ClpCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgpKrgpJvgpL8g4KSl4KSqIOCkheCkuOCkq+CksiDgpJXgpYvgpLjgpL/gpLjgpLngpLDgpYIsIOCkq+Cli+CkqOCksuCkvuCkiCDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKQg4KSV4KS+4KSw4KWN4KSv4KS24KS+4KSy4KS+4KSu4KS+IOCkquClgeCkqOCkg+CkuOClh+CknyDgpJfgpLDgpL/gpKjgpYcg4KSbIOCksCDgpLjgpKzgpYgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkoeClh+Ckn+CkviDgpLngpLDgpL7gpIngpKjgpYcg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNzI5OTYyNjkxNDg0ODM2MzciPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSf4KWN4KSv4KSs4KWN4KSy4KWH4KSf4KSy4KS+4KSIIOCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4KSq4KSf4KSVIOCkquCljeCksOCkr+CkvuCkuCDgpJfgpLDgpY3gpKjgpYEg4KSt4KSP4KSV4KWLIOCkm+ClpCDgpIXgpKwg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSy4KS+4KSIIOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpCDgpJXgpL7gpLDgpY3gpK/gpLbgpL7gpLLgpL7gpK7gpL4g4KSq4KWB4KSo4KSD4KS44KWH4KSfIOCkl+CksOCkv+CkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ4MTc2Mjc0NzQ0MTk0NzE1MTgiPiLgpKTgpKrgpL7gpIjgpILgpLLgpYcg4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyDgpKvgpYvgpKggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSo4KWHIOCkquCljeCksOCkr+CkpOCljeCkqCDgpJfgpLDgpY3gpKjgpYHgpK3gpK/gpYvgpaQg4KSF4KSsIOCkq+Cli+CkqCDgpKvgpY3gpK/gpL7gpJXgpY3gpJ/gpY3gpLDgpL8g4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSk4KSu4KS+IOCkquClgeCkqOCkg+CkuOClh+CknyDgpLngpYHgpKjgpYcg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IuCkpOCkquCkvuCkiOCkguCksuClhyDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIOCkhuCkq+CljeCkqOCliyDgpIXgpKjgpLLgpJUg4KSi4KS+4KSB4KSa4KS+IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJXgpYvgpLDgpY3gpKjgpYHgpK3gpK/gpYvgpaQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KS14KS/4KSr4KSyIOCkquCljeCksOCkr+CkpOCljeCkqOCkueCksOClgiDgpKrgpJvgpL8sIOCkpOCkquCkvuCkiOCkguCksuCkvuCkiCDgpIbgpKvgpY3gpKjgpYsg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkh+CkruClh+CksiDgpJbgpL7gpKTgpL4g4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClh+CksCDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIOCkuOCli+Ckp+Ckv+CkqOClhyDgpJvgpaRcblxuIOCkq+Clh+CksOCkvyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkueCksOClguCkruCkvuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkhuCkq+CljeCkqOCliyDgpIXgpKjgpLLgpJUg4KSi4KS+4KSB4KSa4KS+IOCkl+CksuCkpCDgpLDgpYLgpKrgpK7gpL4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4KSq4KSf4KSVIOCkpOCkvuCkqOCljeCkqOClgSDgpK3gpI/gpJXgpYsg4KSb4KWkIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkp+Clh+CksOCliCDgpIXgpLjgpKvgpLIg4KSq4KWN4KSw4KSv4KS+4KS44KS54KSw4KWC4KSq4KSb4KS/LCDgpKTgpKrgpL7gpIjgpIHgpLLgpL7gpIgg4KSP4KSJ4KSf4KS+IOCkh+CkruClh+CksiDgpJbgpL7gpKTgpL7gpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClh+CksCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSr4KWL4KSoIOCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KS44KWL4KSn4KS/4KSo4KWHIOCkm+ClpFxuXG4g4KSr4KWH4KSw4KS/IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i4KS54KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2FmZV9tZWRpYV92b2x1bWVfd2FybmluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMjQxNjE5Mzk0NzU0NzgwNjYiPiLgpIbgpLXgpL7gpJwg4KS44KSy4KWN4KSy4KS+4KS5IOCkpuCkv+Ckj+CkleCliyDgpKTgpLngpK3gpKjgpY3gpKbgpL4g4KSu4KS+4KSl4KS/ICDgpKzgpKLgpL7gpIngpKjgpYcg4KS54KWLP1xu4KSg4KWC4KSy4KWLIOCkhuCkteCkvuCknOCkruCkviDgpLjgpYHgpKjgpY3gpKbgpL4g4KSy4KS+4KSu4KWLIOCkuOCkruCkr+CkleCliyDgpLLgpL7gpJfgpL8g4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkuOClgeCkqOCljeCkqOClhyDgpLbgpJXgpY3gpKTgpYDgpLLgpL7gpIgg4KSW4KSk4KWN4KSk4KSuIOCkquCkvuCksOCljeCkqCDgpLjgpJXgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250aW51ZV90b19lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjE2MjY0MjczNzIzMTYwNzAyNTgiPiLgpIngpKrgpLLgpKzgpY3gpKfgpKTgpL4g4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCljeCkqCDgpKbgpYHgpIjgpLXgpJ/gpL4g4KSU4KSC4KSy4KS+4KS54KSw4KWC4KSy4KWHIOCkpeCkv+CkmuCkv+CksOCkueCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZW5hYmxlZCIgbXNnaWQ9IjEzODE5NzIwNDg1NjQ1NDc2ODUiPiLgpKrgpLngpYHgpIHgpJog4KS44KSV4KWN4KS34KSuIOCkl+CksOCkv+Ckj+CkleCli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9hY2Nlc3NpYmlsaXR5X2NhbmNlbGVkIiBtc2dpZD0iMzgzMzkyMzI1Nzk2NjYzNTY3MyI+IuCkquCkueClgeCkgeCkmuCkr+Cli+Ckl+CljeCkr+CkpOCkviDgpLDgpKbgpY3gpKYg4KSX4KSw4KS/4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlcl9zd2l0Y2hlZCIgbXNnaWQ9IjM3NjgwMDY3ODMxNjY5ODQ0MTAiPiLgpIXgpLngpL/gpLLgpYfgpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IDx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im93bmVyX25hbWUiIG1zZ2lkPSIyNzE2NzU1NDYwMzc2MDI4MTU0Ij4i4KSu4KS+4KSy4KS/4KSVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXJyb3JfbWVzc2FnZV90aXRsZSIgbXNnaWQ9IjQ1MTAzNzMwODMwODI1MDAxOTUiPiLgpKTgpY3gpLDgpYHgpJ/gpL8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbm9fcmVzdHJpY3RlZF9hY2NvdW50cyIgbXNnaWQ9IjU3Mzk0NjMyNDk2NzM3Mjc3MzYiPiLgpKrgpY3gpLDgpKTgpL/gpKzgpKjgpY3gpKfgpL/gpKQg4KSq4KWN4KSw4KWL4KSr4KS+4KSH4KSy4KS54KSw4KWC4KSV4KWLIOCksuCkvuCkl+CkvyDgpK/gpLgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkluCkvuCkpOCkvuCkueCksOClgiDgpLjgpK7gpLDgpY3gpKXgpKgg4KSX4KSw4KWN4KSm4KWI4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX25vdF9mb3VuZCIgbXNnaWQ9IjM0MjkxNDE4NTM0OTg5MjczNzkiPiLgpK/gpLgg4KSV4KS+4KSw4KWN4KSvIOCkuOCkruCljeCkueCkvuCksuCkqOClhyDgpJXgpYHgpKjgpYgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkreClh+Ckn+Ckv+Ckj+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJldm9rZSIgbXNnaWQ9IjU0MDQ0NzkxODUyMjgyNzE1ODYiPiLgpLDgpKbgpY3gpKYg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMCIgbXNnaWQ9Ijc4NzU0Mjc0ODk0MjA4MjE3OTMiPiJJU08gQTAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2ExIiBtc2dpZD0iMzc2MDczNDQ5OTA1MDg3NTM1NiI+IklTTyBBMSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTIiIG1zZ2lkPSI1OTczMjY2Mzc4MDIwMTQ0MzgyIj4iSVNPIEEyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMyIgbXNnaWQ9IjEzNzM0MDcxMDU2ODczMDA4ODQiPiJJU08gQTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E0IiBtc2dpZD0iNjY4OTc3MjgwNzk4MjU5NzI1NCI+IklTTyBBNCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTUiIG1zZ2lkPSI1MzUzNTQ5NjUyMDE1NzQxMDQwIj4iSVNPIEE1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNiIgbXNnaWQ9Ijg1ODUwMzgwNDg2NzQ5MTE5MDciPiJJU08gQTYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E3IiBtc2dpZD0iNjY0MTgzNjcxNjk2MzgzOTExOSI+IklTTyBBNyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTgiIG1zZ2lkPSI3NTcxMTM5NDM3NDY1NjkzMzU1Ij4iSVNPIEE4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hOSIgbXNnaWQ9IjEzNzg0NTU4OTE5NTcxMTUwNzkiPiJJU08gQTkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2ExMCIgbXNnaWQ9IjI0ODA3NDc0NTc0Mjk0NzUzNDQiPiJJU08gQTEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMCIgbXNnaWQ9IjM5NjU5MzUwOTc2NjExMDgwMzkiPiJJU08gQjAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IxIiBtc2dpZD0iMjUwNTc1MzI4NTAxMDExNTQzNyI+IklTTyBCMSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjIiIG1zZ2lkPSI4NzYzODc0NzA5ODU5NDU4NDUzIj4iSVNPIEIyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMyIgbXNnaWQ9IjQyMTA1MDY2ODgxOTE3NjQwNzYiPiJJU08gQjMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I0IiBtc2dpZD0iNTc0OTQwNDE2NTg4ODUyNjAzNCI+IklTTyBCNCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjUiIG1zZ2lkPSI3NjQwNjI3NDE0NjIxOTA0NzMzIj4iSVNPIEI1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNiIgbXNnaWQ9IjczNDI5ODg4NjQ3MTI3NDg1NDQiPiJJU08gQjYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I3IiBtc2dpZD0iNTA2OTg0NDA2NTIzNTM4MjQyOSI+IklTTyBCNyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjgiIG1zZ2lkPSI3MzE2ODE4OTIyMjc4Nzc5Nzc0Ij4iSVNPIEI4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iOSIgbXNnaWQ9IjU0MTQ3MjcwOTQwMjY1MzIzNDEiPiJJU08gQjkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IxMCIgbXNnaWQ9IjUyNTEyNTM3MzE4MzIwNDgxODUiPiJJU08gQjEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMCIgbXNnaWQ9IjQwMDMxMzgzNDI2NzE5NjQyMTciPiJJU08gQzAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MxIiBtc2dpZD0iMTkzNTE4ODA2MzM5MzU1MzAwOCI+IklTTyBDMSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzIiIG1zZ2lkPSIzMTk3MzA3OTY5NzEyMDY5OTA0Ij4iSVNPIEMyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMyIgbXNnaWQ9IjQzMzU4MjYwODczMjE5MTM1MDgiPiJJU08gQzMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M0IiBtc2dpZD0iMzc0NTYzOTU5ODI4MTAxNTAwNSI+IklTTyBDNCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzUiIG1zZ2lkPSI4MjY5NDU3NzY1ODIyNzkxMDEzIj4iSVNPIEM1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNiIgbXNnaWQ9IjU2NjY2NjEwNTI2MDM0NjkzMCI+IklTTyBDNiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzciIG1zZ2lkPSI4Njc4NDEzMTgwNzgyNjA4NDk4Ij4iSVNPIEM3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jOCIgbXNnaWQ9IjgzOTIzNzYyMDY2MjcwNDE3MzAiPiJJU08gQzgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M5IiBtc2dpZD0iOTE5MTYxMzM3MjMyNDg0NTQwNSI+IklTTyBDOSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzEwIiBtc2dpZD0iNzMyNzcwOTY5OTE4NDkyMDgyMiI+IklTTyBDMTAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGV0dGVyIiBtc2dpZD0iNDE5MTgwNTYxNTgyOTQ3Mjk1MyI+IuCkquCkpOCljeCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9ndnJubXRfbGV0dGVyIiBtc2dpZD0iNzg1MzM4MjE5MjY0OTQwNTUwNyI+IuCkuOCksOCkleCkvuCksOClgCDgpKrgpKTgpY3gpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGVnYWwiIG1zZ2lkPSI2Njk3OTgyOTg4MjgzODIzMTUwIj4i4KSV4KS+4KSo4KWC4KSo4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2p1bmlvcl9sZWdhbCIgbXNnaWQ9IjM3Mjc3NDM5Njk5MDI3NTg5NDgiPiJKdW5pb3IgTGVnYWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGVkZ2VyIiBtc2dpZD0iMjgxODcxNDY0ODk2NjAxMjM2Ij4iTGVkZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX3RhYmxvaWQiIG1zZ2lkPSI1Nzc1OTY2NDE2MzMzNTc4MTI3Ij4iVGFibG9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndyaXRlX2ZhaWxfcmVhc29uX2NhbmNlbGxlZCIgbXNnaWQ9IjcwOTEyNTgzNzgxMjE2Mjc2MjQiPiLgpLDgpKbgpY3gpKYg4KSX4KSw4KS/4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id3JpdGVfZmFpbF9yZWFzb25fY2Fubm90X3dyaXRlIiBtc2dpZD0iODEzMjUwNTQxNzkzNTMzNzcyNCI+IuCkuOCkvuCkruCkvuCkl+CljeCksOClgCDgpLLgpYfgpJbgpKjgpK7gpL4g4KSk4KWN4KSw4KWB4KSf4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI2MDQ4OTEzODgwMTg0NjI4MTE5Ij4i4KSF4KSc4KWN4KSe4KS+4KSkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2VudGVyX2FkbWluX3BpbiIgbXNnaWQ9Ijc4MzY0MzczMTg5NTE0Mzk3MCI+IuCkquCljeCksOCktuCkvuCkuOCklSBQSU4g4KSq4KWN4KSw4KS14KS/4KS34KWN4KSf4KS/IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9waW4iIG1zZ2lkPSIzMzk1OTUzNDIxMzY4NDc2MTAzIj4iUElOIOCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5faW5jb3JyZWN0IiBtc2dpZD0iODU3MTUxMjAwMzk1NTA3NzkyNCI+IuCkl+CksuCkpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9vbGRfcGluIiBtc2dpZD0iMTQ2MjIwNjIyNTUxMjkxMDc1NyI+IuCkteCksOCljeCkpOCkruCkvuCkqCBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfbmV3X3BpbiIgbXNnaWQ9IjU5NTk2MDY2OTE2MTk5NTkxODQiPiLgpKjgpK/gpL7gpIEgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2NvbmZpcm1fcGluIiBtc2dpZD0iODUwMTUyMzgyOTYzMzE0NjIzOSI+IuCkqOCkr+CkvuCkgSBQSU4g4KSo4KS/4KS24KWN4KSa4KS/4KSkIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9jcmVhdGVfcGluIiBtc2dpZD0iODAxNzYwMDAwMDI2MzQ1MDMzNyI+IuCkquCljeCksOCkpOCkv+CkrOCkqOCljeCkp+CkueCksOClguCksuCkvuCkiCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpI/gpIngpJ/gpL4gUElOIOCkrOCkqOCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lcnJvcl9kb2VzbnRfbWF0Y2giIG1zZ2lkPSIyMjI0MjE0MTkwOTA2OTk0NTQ4Ij4iUElOIOCkueCksOClgiDgpK7gpYfgpLIg4KSW4KS+4KSP4KSo4KSo4KWN4KWkIOCkquClgeCkqOCkgyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2Vycm9yX3Rvb19zaG9ydCIgbXNnaWQ9IjgxNzM5ODI3NTYyNjU3Nzc3OTIiPiJQSU4g4KSF4KSk4KS/IOCkm+Cli+Ckn+CliyDgpK3gpK/gpYvgpaQg4KSV4KSu4KWN4KSk4KWA4KSu4KS+IOClqiDgpIXgpJngpY3gpJUg4KS54KWB4KSoIOCkhuCkteCktuCljeCkr+CklSDgpJvgpaQiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InJlc3RyX3Bpbl9jb3VudGRvd24iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMTEwNTA5OTUxOTg1NDg2NzUiPiLgpacg4KS44KWH4KSV4KWH4KSo4KWN4KShIOCkquCkm+CkvyDgpKrgpYHgpKjgpIMg4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDczMDg2ODkyMDc0Mjk1MjgxNyI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKrgpYHgpKjgpIMg4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiLgpKrgpJvgpL8g4KSq4KWB4KSo4KSDIOCkquCljeCksOCkr+CkvuCkuCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0cmFuc2llbnRfbmF2aWdhdGlvbl9jb25maXJtYXRpb24iIG1zZ2lkPSI0OTA3ODQ0MDQzNjExMTIzNDI2Ij4i4KSq4KSf4KWN4KSf4KS/IOCkpuClh+CkluCkv+CkqOClhyDgpKzgpKjgpL7gpIngpKgg4KS44KWN4KSV4KWN4KSw4KS/4KSo4KSV4KWLIOCkm+Clh+CkieCkruCkviDgpLjgpY3gpLXgpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHJhbnNpZW50X25hdmlnYXRpb25fY29uZmlybWF0aW9uX2xvbmciIG1zZ2lkPSI4MDYxNjg1OTIwNTA4MDg2Njk3Ij4i4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkquCkn+CljeCkn+CkvyDgpKbgpYfgpJbgpL/gpKjgpYcg4KSs4KSo4KS+4KSJ4KSoIOCkuOCljeCkleCljeCksOCkv+CkqOCkleCliyDgpJvgpYfgpIngpKzgpL7gpJ8g4KS44KWN4KS14KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1uZS9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbmUvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZlNGZjMwotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbmUvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwxNTg4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qIC8vZGV2aWNlL2FwcHMvY29tbW9uL2Fzc2V0cy9yZXMvYW55L3N0cmluZ3MueG1sCisqKgorKiogQ29weXJpZ2h0IDIwMDYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImJ5dGVTaG9ydCIgbXNnaWQ9IjgzNDA5NzM4OTI3NDIwMTkxMDEiPiJCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2lsb2J5dGVTaG9ydCIgbXNnaWQ9IjU5NzM3ODk3ODM1MDQ3NzE4NzgiPiJLQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZ2FieXRlU2hvcnQiIG1zZ2lkPSI2MzU1ODUxNTc2NzcwNDI4OTIyIj4iTUIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnaWdhYnl0ZVNob3J0IiBtc2dpZD0iMzI1OTg4MjQ1NTIxMjE5MzIxNCI+IkdCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGVyYWJ5dGVTaG9ydCIgbXNnaWQ9IjIzMTYxMzAxODE1OTE4Njk2MiI+IlRCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGV0YWJ5dGVTaG9ydCIgbXNnaWQ9IjU2Mzc4MTY2ODAxNDQ5OTAyMTkiPiJQQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbGVTaXplU3VmZml4IiBtc2dpZD0iOTE2NDI5Mjc5MTUwMDUzMTk0OSI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiUxJHM8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlVOSVQiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idW50aXRsZWQiIG1zZ2lkPSI0NjM4OTU2OTU0ODUyNzgyNTc2Ij4iJmx0O+CkrOCkv+CkqOCkviDgpLbgpYDgpLDgpY3gpLfgpJUmZ3Q7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXMiIG1zZ2lkPSI3ODk5ODI5NTE2MDQ4ODEzMjM3Ij4i4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZWxsaXBzaXNfdHdvX2RvdHMiIG1zZ2lkPSIxMjI4MDc4OTk0ODY2MDMwNzM2Ij4i4oClIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHlQaG9uZU51bWJlciIgbXNnaWQ9Ijc2OTQwNjMwNDIwNzk2NzY1MTciPiIo4KSV4KWB4KSo4KWIIOCkq+Cli+CkqCDgpKjgpK7gpY3gpKzgpLAg4KSb4KWI4KSoKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVua25vd25OYW1lIiBtc2dpZD0iMjI3NzU1NjU0Njc0Mjc0NjUyMiI+IijgpIXgpJzgpY3gpJ7gpL7gpKQpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdFZvaWNlTWFpbEFscGhhVGFnIiBtc2dpZD0iMjY2MDAyMDk5MDA5NzczMzA3NyI+IuCkreCljeCkteCkvuCkh+CkuCDgpK7gpYfgpLIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0TXNpc2RuQWxwaGFUYWciIG1zZ2lkPSIyODUwODg5NzU0OTE5NTg0Njc0Ij4iTVNJU0RO4KWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pRXJyb3IiIG1zZ2lkPSI1MTU0NDk5NDU3NzM5MDUyOTA3Ij4i4KSc4KSh4KS+4KSoIOCkuOCkruCkuOCljeCkr+CkviDgpLXgpL4g4KSF4KSu4KS+4KSo4KWN4KSvIE1NSSDgpJXgpYvgpKHgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtbWlGZG5FcnJvciIgbXNnaWQ9IjUyMjQzOTgyMTYzODUzMTY0NzEiPiLgpIXgpKrgpLDgpYfgpLbgpKgg4KSo4KS/4KS24KWN4KSa4KS/4KSkIOCkoeCkvuCkr+CksiDgpKjgpK7gpY3gpKzgpLDgpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkruCkvuCkpOCljeCksCDgpKrgpY3gpLDgpKTgpL/gpKzgpKjgpY3gpKfgpL/gpKQg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUVuYWJsZWQiIG1zZ2lkPSI4MTQ3Mjc4MzQ2NDE0NzE0MzE1Ij4i4KS44KWH4KS14KS+IOCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRW5hYmxlZEZvciIgbXNnaWQ9IjY4NTYyMjgxNDA0NTM0NzEwNDEiPiLgpKjgpL/gpK7gpY3gpKgg4KSJ4KSy4KWN4KSy4KWH4KSW4KS/4KSk4KSV4KWLIOCksuCkvuCkl+CkvyDgpLjgpYfgpLXgpL4g4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCkv+Ckr+ClizoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRGlzYWJsZWQiIG1zZ2lkPSIxOTM3NTUzMjI2NTkyNTE2NDExIj4i4KS44KWH4KS14KS+IOCkheCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpL/gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZVJlZ2lzdGVyZWQiIG1zZ2lkPSI2Mjc1MDE5MDgyNTk4MTAyNDkzIj4i4KSm4KSw4KWN4KSk4KS+IOCkuOCkq+CksiDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRXJhc2VkIiBtc2dpZD0iMTI4ODU4NDY5NTI5NzIwMDk3MiI+IuCkruClh+Ckn+CkvuCkhyDgpLjgpKvgpLIg4KSl4KS/4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRJbmNvcnJlY3QiIG1zZ2lkPSI3NjEyMjA4ODM5NDUwMTI4NzE1Ij4i4KSX4KSy4KSkIOCkquCkvuCkuOCkteCksOCljeCkoeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1taUNvbXBsZXRlIiBtc2dpZD0iODIzMjUyNzQ5NTQxMTY5ODM1OSI+Ik1NSSDgpKrgpYHgpLDgpL4g4KSt4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFkUGluIiBtc2dpZD0iOTAxNTI3NzY0NTU0NjcxMDAxNCI+IuCkpOCkquCkvuCkiOCkguCksuClhyDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KSt4KSP4KSV4KWLIOCkquClgeCksOCkvuCkqOCliyBQSU4g4KS44KS54KWAIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhZFB1ayIgbXNnaWQ9IjU0ODcyNTc2NDcwODExMzIyMDEiPiLgpKTgpKrgpL7gpIjgpILgpLLgpYcg4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkreCkj+CkleCliyBQVUsg4KS44KS54KWAIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pc21hdGNoUGluIiBtc2dpZD0iNjA5Mzc5MDU0NDk2ODYzNDE5Ij4i4KSk4KSq4KS+4KSI4KSC4KSy4KWHIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpK3gpI/gpJXgpYsgUElOIOCkruClh+CksiDgpJbgpL7gpIHgpKbgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUGluIiBtc2dpZD0iMzg1MDAxODQ0NTE4NzQ3NTM3NyI+IuClqiDgpKbgpYfgpJbgpL8g4KWuIOCkteCkn+CkviDgpKjgpK7gpY3gpKzgpLAg4KSt4KSP4KSV4KWLIOCkj+CkieCkn+CkviBQSU4g4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4i4KWuIOCkteCkn+CkviDgpKjgpK7gpY3gpKzgpLDgpLngpLDgpYIg4KS14KS+IOCkuOCliyDgpK3gpKjgpY3gpKbgpL4g4KSy4KS+4KSu4KWLIOCkj+CkieCkn+CkviBQVUsg4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiLgpKTgpKrgpL7gpIjgpILgpJXgpYsgU0lNIOCkleCkvuCksOCljeCkoSBQVUst4KSy4KSVIOCkm+ClpCDgpK/gpLjgpLLgpL7gpIgg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqCBQVUsg4KSV4KWL4KShIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJTSU0g4KSV4KS+4KSw4KWN4KShIOCkheCkqOCksuCklSDgpJfgpLDgpY3gpKggUFVLMiDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiLgpIbgpJfgpK7gpKgg4KSV4KSy4KSwIElEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2xpck1taSIgbXNnaWQ9Ijc3ODQ2NzM2NzM0NDY4MzMwOTEiPiLgpKzgpL7gpLngpL/gpLDgpL/gpKjgpYcg4KSV4KSy4KSwIElEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2ZNbWkiIG1zZ2lkPSI1MTIzMjE4OTg5MTQxNTczNTE1Ij4i4KSV4KSyIOCkheCkl+CkvuCkoeCkvyDgpKzgpKLgpL7gpIngpIHgpKbgpYgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDd01taSIgbXNnaWQ9IjkxMjk2NzgwNTY3OTUwMTY4NjciPiLgpJXgpLIg4KSq4KWN4KSw4KSk4KS/4KSV4KWN4KS34KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQmFNbWkiIG1zZ2lkPSI0NTUxOTMwNjc5MjY3NzA1ODEiPiLgpJXgpLIg4KSs4KWN4KSv4KS+4KSw4KS/4KSZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUHdkTW1pIiBtc2dpZD0iNzA0MzcxNTY4NzkwNTI1NDE5OSI+IuCkquCkvuCkuOCkteCksOCljeCkoSDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJQaW5NbWkiIG1zZ2lkPSIzMTEzMTE3NzgwMzYxMTkwMzA0Ij4iUElOIOCkquCksOCkv+CkteCksOCljeCkpOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNuaXBNbWkiIG1zZ2lkPSIzMTEwNTM0NjgwNTU3ODU3MTYyIj4i4KSq4KWN4KSw4KS44KWN4KSk4KWB4KSkIOCkqOCkruCljeCkrOCksOCkruCkviDgpJXgpLIg4KSX4KSw4KWN4KSm4KWIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ25pck1taSIgbXNnaWQ9IjMwNjIxMDIxMjE0MzA1NDg3MzEiPiLgpJXgpLIg4KSX4KSw4KWN4KSo4KWHIOCkheCkguCklSDgpLDgpYvgpJXgpYfgpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVGhyZWVXQ01taSIgbXNnaWQ9IjkwNTEwNDcxNzAzMjExOTAzNjgiPiLgpJXgpLIg4KSX4KSw4KWN4KSo4KWHIOCkpOCkv+CkqCDgpKTgpLDgpL/gpJXgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSdWFjTW1pIiBtc2dpZD0iNzgyNzg4NzQ1OTEzODMwODg4NiI+IuCkqOCkmuCkvuCkueCkv+Ckj+CkleCkviDgpLDgpL/gpLjgpIngpKDgpY3gpKbgpL4g4KSV4KSy4KS54KSw4KWC4KSV4KWLIOCkheCkuOCljeCkteClgOCkleCkvuCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNuZE1taSIgbXNnaWQ9IjMxMTY0NDYyMzcwODE1NzU4MDgiPiLgpJXgpLLgpL/gpJkg4KSo4KSu4KWN4KSs4KSwIOCkquCljeCksOCkpuCkvuCkqCDgpJfgpLDgpY3gpKjgpYciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJEbmRNbWkiIG1zZ2lkPSIxMjY1NDc4OTMyNDE4MzM0MzMxIj4i4KSs4KS+4KSn4KS+IOCkqOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T25OZXh0Q2FsbE9uIiBtc2dpZD0iNDI5NDE1NDA5MTQ1NzgxOTIzIj4i4KS44KWA4KSu4KSk4KS/IOCkl+CksOCljeCkqCDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKQg4KSV4KSy4KSwIElELCDgpIXgpLDgpY3gpJXgpYsg4KSV4KSyOiDgpLjgpYDgpK7gpKTgpL8g4KSX4KSw4KS/4KSP4KSV4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPbk5leHRDYWxsT2ZmIiBtc2dpZD0iMzA5MjkxODAwNjA3Nzg2NDYyNCI+IuCkleCksuCksCBJRCDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKTgpJXgpYsg4KSy4KS+4KSX4KS/IOCksOCli+CkleCkvuCkteCknyDgpJvgpaQg4KSF4KSw4KWN4KSV4KWLIOCkleCksjog4KSw4KWL4KSV4KS+4KS14KSfIOCkm+CliOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T2ZmTmV4dENhbGxPbiIgbXNnaWQ9IjYxNzk0MjUxODI4NTY0MTg0NjUiPiLgpJXgpLLgpLAgSUQg4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSk4KSm4KWH4KSW4KS/IOCkquCljeCksOCkpOCkv+CkrOCkqOCljeCkp+Ckv+CkpCDgpJvgpYjgpKjgpaQg4KSF4KSw4KWN4KSV4KWLIOCkleCksjog4KSq4KWN4KSw4KSk4KS/4KSs4KSo4KWN4KSn4KS/4KSkIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T2ZmTmV4dENhbGxPZmYiIG1zZ2lkPSIyNTY3OTk4NjMzMTI0NDA4NTUyIj4i4KSV4KSy4KSwIElEIOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpOCkleCliyDgpLLgpL7gpJfgpL8g4KSw4KWL4KSV4KS+4KS14KSfIOCkm+CliOCkqOClpCDgpIXgpLDgpY3gpJXgpYsg4KSV4KSyOiDgpLDgpYvgpJXgpL7gpLXgpJ8g4KSb4KWI4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZU5vdFByb3Zpc2lvbmVkIiBtc2dpZD0iODYxNDgzMDE4MDUwODY4NjY2NiI+IuCkuOClh+CkteCkvuCkleCliyDgpLXgpY3gpK/gpLXgpLjgpY3gpKXgpL4g4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUlBlcm1hbmVudCIgbXNnaWQ9IjMzNzczNzExNDU5MjY4MzU2NzEiPiLgpKTgpKrgpL7gpIjgpIIg4KSV4KSy4KSwIElEIOCkuOClh+Ckn+Ckv+CkmSDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkqOClgeCkueClgeCkqOCljeCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRDaGFuZ2VkVGl0bGUiIG1zZ2lkPSI1NTkyMTg5Mzk4OTU2MTg3NDk4Ij4i4KSq4KWN4KSw4KSk4KS/4KSs4KSo4KWN4KSn4KS/4KSkIOCkquCkueClgeCkgeCkmiDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSt4KSP4KSV4KWLIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkRhdGEiIG1zZ2lkPSI4NjUzNzk0Nzg0NjkwMDY1NTQwIj4i4KSh4KWH4KSf4KS+IOCkuOClh+CkteCkviDgpLDgpYvgpJXgpL/gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uRW1lcmdlbmN5IiBtc2dpZD0iNjU4MTE2Mzc3OTA3MjgzMzY2NSI+IuCkhuCkquCkpOCkleCkvuCksuClgOCkqCDgpLjgpYfgpLXgpL4g4KSw4KWL4KSV4KS/4KSP4KSV4KWLIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbk5vcm1hbCIgbXNnaWQ9IjQ5NTM4NjcwMTEzODk3NTA2NzMiPiLgpK3gpY3gpLXgpL7gpIfgpLgg4KS44KWH4KS14KS+IOCkrOCljeCksuCklSDgpK3gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uQWxsVm9pY2UiIG1zZ2lkPSIzMzk2OTYzNjUyMTA4MTUxMjYwIj4i4KS44KSs4KWIIOCkhuCkteCkvuCknCDgpLjgpYfgpLXgpL7gpLngpLDgpYIg4KSs4KSo4KWN4KSmIOCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPblNtcyIgbXNnaWQ9IjgzMTQzNTIzMjc0NjE2Mzg4OTciPiJTTVMg4KS44KWH4KS14KS+IOCksOCli+CkleCkv+Ckj+CkleCliyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25Wb2ljZURhdGEiIG1zZ2lkPSI5OTY2MzY0ODcxMDYxNzEzMjAiPiLgpK3gpY3gpLXgpL7gpIfgpLgv4KSh4KWH4KSf4KS+IOCkuOClh+CkteCkvuCkueCksOClgiDgpLDgpYvgpJXgpL/gpI/gpJXgpL4g4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VTbXMiIG1zZ2lkPSIxODg4NTg4MTUyNzkyMDIzODczIj4i4KSG4KS14KS+4KScL1NNUyDgpLjgpYfgpLXgpL7gpLngpLDgpYIg4KSs4KSo4KWN4KSmIOCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlJlc3RyaWN0ZWRPbkFsbCIgbXNnaWQ9IjU2NDMwMjgyNjQ0NjYwOTI4MjEiPiLgpLjgpKzgpYgg4KSt4KWN4KS14KS+4KSH4KS4L+CkoeClh+Ckn+Ckvi9TTVMg4KS44KWH4KS14KS+4KS54KSw4KWCIOCkrOCljeCksuCklSDgpK3gpI/gpJXgpL4g4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzVm9pY2UiIG1zZ2lkPSIxMjU4MzkzODEyMzM1MjU4MDE5Ij4i4KSG4KS14KS+4KScIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRGF0YSIgbXNnaWQ9Ijg3MjQ1Njc4MjA3NzkzNzg5MyI+IuCkoeClh+Ckn+CkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0ZBWCIgbXNnaWQ9IjU1NjY2MjQ5OTg4NDA0ODY0NzUiPiLgpKvgpY3gpK/gpL7gpJXgpY3gpLgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NTTVMiIG1zZ2lkPSIyMDE1NDYwMzczNzAxNTI3NDg5Ij4iU01TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRGF0YUFzeW5jIiBtc2dpZD0iNDUyMzQ1NDc4MzQ5ODU1MTQ2OCI+IkFzeW5jIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRGF0YVN5bmMiIG1zZ2lkPSI3NTMwMDAwNTE5NjQ2MDU0Nzc2Ij4i4KS44KS/4KSZ4KWN4KSVIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1BhY2tldCIgbXNnaWQ9IjY5OTEwMDY1NTc5OTM0MjM0NTMiPiLgpKrgpY3gpK/gpL7gpJXgpYfgpJ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NQQUQiIG1zZ2lkPSIzMjM1MjU5MDg1NjQ4MjcxMDM3Ij4iUEFEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQwIiBtc2dpZD0iNzE3MDMzNTQ3MjE5ODY5NDk0NSI+IuCksOCli+CkruCkv+CkmSDgpLjgpYLgpJrgpJUg4KSW4KWB4KSy4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxIiBtc2dpZD0iNTMxNDg2MTUxOTc1MjUzODkyMiI+IuCksOCli+CkruCkv+CkmSDgpLjgpYLgpJrgpJUg4KSs4KSo4KWN4KSmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQyIiBtc2dpZD0iODk2OTkyOTA0OTA4MTI2ODExNSI+IuCksOCli+CkruCkv+CkmSDgpLjgpYLgpJrgpJUg4KSr4KWN4KSy4KWN4KSv4KS+4KS4IOCkl+CksOCljeCkpuCliCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MyIgbXNnaWQ9IjUxNDgyNTUwMjcwNDM5NDMzMTciPiLgpJvgpL/gpK7gpYfgpJXgpKzgpL7gpJ8g4KSs4KS+4KS54KS/4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ0IiBtc2dpZD0iODgwODQ1NjY4MjU1MDc5NjUzMCI+IuCkrOCkv+CksuCljeCkoeCkv+CkmeCkleCliyDgpKzgpL7gpLngpL/gpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDUiIG1zZ2lkPSI3NjA0MDYzMjUyODUwMzU0MzUwIj4i4KSw4KWL4KSu4KS/4KSZIC0g4KSJ4KSq4KSv4KWB4KSV4KWN4KSkIOCkquCljeCksOCko+CkvuCksuClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NiIgbXNnaWQ9IjIwNTk0NDA4MjU3ODI4NzE1MTMiPiLgpLDgpYvgpK7gpL/gpJkgLSDgpIngpKrgpLLgpKzgpY3gpKcg4KSq4KWN4KSw4KSj4KS+4KSy4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ3IiBtc2dpZD0iNzExMjA3ODcyNDA5NzIzMzYwNSI+IuCksOCli+CkruCkv+CkmSAtIOCkj+CksuCkv+Ckr+CkqOCljeCkuOCksCDgpKrgpL7gpLDgpY3gpJ/gpKjgpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDgiIG1zZ2lkPSI1OTg5NTY5Nzc4NjA0MDg5MjkxIj4i4KSw4KWL4KSu4KS/4KSZIC0g4KSq4KWN4KSw4KS/4KSu4KS/4KSv4KSuIOCkquCkvuCksOCljeCkn+CkqOCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0OSIgbXNnaWQ9Ijc5NjkyOTY4MTEzNTUxNTI0OTEiPiLgpLDgpYvgpK7gpL/gpJkgLSDgpKrgpYLgpLDgpY3gpKMg4KS44KWH4KS14KS+IOCkleCkvuCksOCljeCkr+CkleCljeCkt+CkruCkpOCkviDgpIXgpLXgpLjgpY3gpKXgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDEwIiBtc2dpZD0iMzk5MjkwNjk5OTgxNTMxNjQxNyI+IuCksOCli+CkruCkv+CkmSAtIOCkhuCkmeCljeCktuCkv+CklSDgpLjgpYfgpLXgpL4g4KSq4KWN4KSw4KSV4KS+4KSw4KWN4KSv4KSk4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQxMSIgbXNnaWQ9IjQxNTQ0NzY4NTQ0MjY5MjA5NzAiPiLgpLDgpYvgpK7gpL/gpJkg4KSn4KWN4KS14KSc4KS+IOCkmuCkvuCksuClgSDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDEyIiBtc2dpZD0iMTE4OTA3MTExOTk5MjcyNjMyMCI+IuCksOCli+CkruCkv+CkmSDgpKzgpY3gpK/gpL7gpKjgpLAg4KSs4KSo4KWN4KSmIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0U2VhcmNoaW5nIiBtc2dpZD0iODM2MDE0MTg4NTk3MjI3OTk2MyI+IuCkuOClh+CkteCkvuCkleCliyDgpJbgpYvgpJzgpYAg4KSX4KSw4KWN4KSm4KWI4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZU5vdEZvcndhcmRlZCIgbXNnaWQ9IjE2ODM2ODU4ODM4NDEyNzI1NjAiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjog4KSF4KSX4KS+4KSh4KS/IOCkquCkoOCkvuCkh+Ckj+CkleCliyDgpJvgpYjgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlRm9yd2FyZGVkIiBtc2dpZD0iMTMwMjkyMjExNzQ5ODU5MDUyMSI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+OiA8eGxpZmY6ZyBpZD0iRElBTElOR19OVU1CRVIiPnsxfTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlRm9yd2FyZGVkVGltZSIgbXNnaWQ9IjkyMDYyNTE3MzY1MjcwODUyNTYiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IkRJQUxJTkdfTlVNQkVSIj57MX08L3hsaWZmOmc+IOCkquCkm+CkvyA8eGxpZmY6ZyBpZD0iVElNRV9ERUxBWSI+ezJ9PC94bGlmZjpnPiDgpLjgpYfgpJXgpYfgpKjgpY3gpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlUmVnaXN0ZXJlZCIgbXNnaWQ9IjUwNzMyMzc4Mjc2MjAxNjYyODUiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjog4KSF4KSX4KS+4KSh4KS/IOCkrOCkouCkvuCkh+Ckj+CkleCliyDgpJvgpYjgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjZlRlbXBsYXRlUmVnaXN0ZXJlZFRpbWUiIG1zZ2lkPSI2NzgxNjIxOTY0MzIwNjM1MTcyIj4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz46IOCkheCkl+CkvuCkoeCkvyDgpKzgpKLgpL7gpIfgpI/gpJXgpYsg4KSb4KWI4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmNDb21wbGV0ZSIgbXNnaWQ9IjMxMTg4NDgyMzA5NjY4ODY1NzUiPiLgpLXgpL/gpLbgpYfgpLfgpKTgpL4g4KSV4KWL4KShIOCkquClgeCksOCkviDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmY0Vycm9yIiBtc2dpZD0iMzMyNzU2MDEyNjU4ODUwMDc3NyI+IuCknOCkoeCkvuCkqCDgpLjgpK7gpLjgpY3gpK/gpL4g4KS14KS+IOCkheCkruCkvuCkqOCljeCkryDgpLjgpYHgpLXgpL/gpKfgpL4g4KSV4KWL4KSh4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yT2siIG1zZ2lkPSIxMTkxOTE5Mzc4MDgzNDcyMjA0Ij4i4KSg4KS/4KSVIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvciIgbXNnaWQ9Ijc5NTYzOTI1MTExNDY2OTg1MjIiPiLgpI/gpIngpJ/gpL4g4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkpOCljeCksOClgeCkn+CkvyDgpKXgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JMb29rdXAiIG1zZ2lkPSI0NzExNjg3NDU2MTExOTYzMTYzIj4iVVJMIOCkreClh+Ckn+CkvuCkieCkqCDgpLjgpJXgpYfgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JVbnN1cHBvcnRlZEF1dGhTY2hlbWUiIG1zZ2lkPSI2Mjk5OTgwMjgwNDQyMDc2Nzk5Ij4i4KS44KS+4KSH4KSf4KSV4KWLIOCkhuCkp+Ckv+CkleCkvuCksOCkv+CkleCkpOCkviDgpK/gpYvgpJzgpKjgpL4g4KS44KSu4KSw4KWN4KSl4KS/4KSkIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckF1dGgiIG1zZ2lkPSIxNDM1MDY1NjI5NDM4MDQ0NTM0Ij4i4KSq4KWN4KSw4KSu4KS+4KSj4KWA4KSV4KSw4KSjIOCkl+CksOCljeCkqCDgpLjgpJXgpYfgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JQcm94eUF1dGgiIG1zZ2lkPSIxNzg4MjA3MDEwNTU5MDgxMzMxIj4i4KSq4KWN4KSw4KWL4KSV4KWN4KS44KWAIOCkuOCksOCljeCkreCksOCkleCliyDgpK7gpL7gpKfgpY3gpK/gpK7gpKbgpY3gpLXgpL7gpLDgpL4g4KSq4KWN4KSw4KSu4KS+4KSj4KS/4KSV4KSw4KSjIOCkheCkuOCkq+CksiDgpK3gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yQ29ubmVjdCIgbXNnaWQ9Ijg3MTQyNzMyMzYzNjQ2NDA1NDkiPiLgpLjgpLDgpY3gpK3gpLDgpLjgpIHgpJcg4KSc4KWL4KSh4KWN4KSoIOCkuOCkleClh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvcklPIiBtc2dpZD0iMjM0MDU1ODE5NzQ4OTMwMjE4OCI+IuCkuOCksOCljeCkreCksOCkuOCkgeCklyDgpLjgpILgpJrgpL7gpLAg4KSX4KSw4KWN4KSoIOCkuOCkleClh+CkqOClpCDgpKvgpYfgpLDgpL8g4KSq4KSb4KS/IOCkleCli+CkuOCkv+CkuCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JUaW1lb3V0IiBtc2dpZD0iNDc0MzQwMzcwMzc2Mjg4Mzk1NCI+IuCkuOCksOCljeCkreCksCDgpLjgpILgpJfgpJXgpYsg4KS44KSu4KWN4KSq4KSw4KWN4KSVIOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkviDgpLjgpK7gpK8g4KS44KSV4KS/4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yUmVkaXJlY3RMb29wIiBtc2dpZD0iODY3OTU5NjA5MDM5Mjc3OTUxNiI+IuCkquClg+Ckt+CljeCkn+CkruCkviDgpKfgpYfgpLDgpYgg4KS44KSw4KWN4KSt4KSw4KS54KSw4KWC4KSk4KS/4KSwIOCkquClgeCkqOCkgyDgpKjgpL/gpLDgpY3gpKbgpYfgpLbgpKjgpLngpLDgpYIg4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVW5zdXBwb3J0ZWRTY2hlbWUiIG1zZ2lkPSI1MDE1NzMwODEyOTA2MTkyMjA4Ij4i4KSq4KWN4KSw4KWL4KSf4KWL4KSV4KSyIOCkuOCkruCksOCljeCkpeCkv+CkpCDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGYWlsZWRTc2xIYW5kc2hha2UiIG1zZ2lkPSI5NjU0OTYwNjAwMDY1ODY0MSI+IuCkj+CkieCkn+CkviDgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KSc4KSh4KS+4KSoIOCkuOCljeCkpeCkvuCkquCkqOCkviDgpJfgpLDgpY3gpKgg4KS44KSV4KWH4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yQmFkVXJsIiBtc2dpZD0iMzYzNjkyOTcyMjcyODg4MTk3MiI+IuCkquClg+Ckt+CljeCkoCDgpJbgpYvgpLLgpY3gpKgg4KS44KSV4KS/4KSB4KSm4KWI4KSoIOCkleCkv+CkqOCkreCkqOClhyBVUkwg4KSF4KSu4KS+4KSo4KWN4KSvIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckZpbGUiIG1zZ2lkPSIyMTcwNzg4NTE1MDUyNTU4Njc2Ij4i4KSr4KS+4KSH4KSyIOCkreClh+Ckn+CkvuCkieCkqCDgpLjgpJXgpYfgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGaWxlTm90Rm91bmQiIG1zZ2lkPSI2MjAzODU2NjEyMDQyNjU1MDg0Ij4i4KSF4KSo4KWB4KSw4KWL4KSnIOCkl+CksOCkv+Ckj+CkleCliyDgpKvgpL7gpIfgpLIg4KSt4KWH4KSf4KS+4KSJ4KSoIOCkuOCkleClh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvclRvb01hbnlSZXF1ZXN0cyIgbXNnaWQ9IjEyMzUzOTY5MjcwODcxODgyNTMiPiLgpKfgpYfgpLDgpYgg4KSo4KWIIOCkheCkqOClgeCksOCli+Ckp+CkueCksOClgiDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL7gpK7gpL4g4KSb4KSo4KWN4KWkIOCkquCkm+CkvyDgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9Ijg5Njc3MTAwMjUwMzYxNjM4MjIiPiI8eGxpZmY6ZyBpZD0iQUNDT1VOVCI+JTEkczwveGxpZmY6Zz7gpJXgpYsg4KSy4KS+4KSX4KS/IOCkuOCkvuCkh+CkqCDgpIfgpKgg4KSk4KWN4KSw4KWB4KSf4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VTeW5jIiBtc2dpZD0iODM1MzUyMzA2MDI2OTMzNTY2NyI+IuCkuOCkv+CkmeCklSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250ZW50U2VydmljZVN5bmNOb3RpZmljYXRpb25UaXRsZSIgbXNnaWQ9IjM5Nzc0MzM0OTE5MTkwMTQ1OCI+IuCkuOCkv+CkmeCljeCklSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250ZW50U2VydmljZVRvb01hbnlEZWxldGVzTm90aWZpY2F0aW9uRGVzYyIgbXNnaWQ9IjgxMDA5ODE0MzUwODA2OTY0MzEiPiLgpIXgpKTgpL8g4KSn4KWH4KSw4KWIIDx4bGlmZjpnIGlkPSJDT05URU5UX1RZUEUiPiVzPC94bGlmZjpnPiDgpK7gpYfgpJ/gpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfbWVtb3J5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2NDk0MDE5MjM0MTAyMTU0ODk2Ij4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkreCko+CljeCkoeCkvuCksOCkoyDgpJbgpL7gpLLgpYAg4KSb4KWI4KSoISDgpKDgpL7gpIngpIEg4KSW4KS+4KSy4KWAIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSV4KWH4KS54KWAIOCkq+CkvuCkh+CksuCkueCksOClgiDgpK7gpYfgpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfbWVtb3J5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ3NTk5OTI4NjY4MDAwMDU0MSI+IuCkq+Cli+CkqCDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSt4KSw4KS/4KSP4KSV4KWLIOCkmyEg4KSg4KS+4KSJ4KSBIOCkluCkvuCksuClgCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkleClh+CkueClgCDgpKvgpL7gpIfgpLLgpLngpLDgpYIg4KSu4KWH4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWUiIG1zZ2lkPSI2NTQ1Njk2MDA3NjMxNDA0MjkyIj4i4KSu4KSy4KS+4KSIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfZGlhbG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTQ1MzUxNDIwODY1MjAyODUzIj4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkteCkv+CkleCksuCljeCkquCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvd2VyX2RpYWxvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjEzMTk5MTkwNzU0NjM5ODg2MzgiPiLgpKvgpYvgpKgg4KS14KS/4KSV4KSy4KWN4KSq4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGUiIG1zZ2lkPSI3MTY3NzAzMzg5ODAyNjE4NjYzIj4i4KSu4KWM4KSoIOCkruCli+CkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InR1cm5fb25fcmFkaW8iIG1zZ2lkPSIzOTEyNzkzMDkyMzM5OTYyMzcxIj4i4KS14KS+4KSv4KSw4KSy4KWH4KS4IOCkheCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0dXJuX29mZl9yYWRpbyIgbXNnaWQ9IjgxOTg3ODQ5NDk5ODcwNjIzNDYiPiLgpKTgpL7gpLDgpLDgpLngpL/gpKQg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9sb2NrIiBtc2dpZD0iNzk5MDk0NjU1NDk2MDk4MTUzIj4i4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCksuCklSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3dlcl9vZmYiIG1zZ2lkPSI0MjY2NjE0MTA3NDEyODY1MDQ4Ij4i4KSq4KS+4KS14KSwIOCkrOCkqOCljeCkpiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3NpbGVudCIgbXNnaWQ9IjMxOTI5ODE2MzAxODQ3MzA3OCI+IuCkmOCkqOCljeCkn+ClgCDgpKzgpKjgpY3gpKYg4KSt4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfdmlicmF0ZSIgbXNnaWQ9IjcwNzIwNDMzODg1ODE1NTEzOTUiPiLgpJjgpKjgpY3gpJ/gpYAg4KSV4KSu4KWN4KSq4KSoIOCkl+CksOCljeCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3JpbmciIG1zZ2lkPSI4NTkyMjQxODE2MTk0MDc0MzUzIj4i4KSY4KSo4KWN4KSf4KS/IOCkmuCkvuCksuClgSDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9wcm9ncmVzcyIgbXNnaWQ9IjIyODEwNzkyNTczMjk5ODEyMDMiPiLgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSm4KWILi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2h1dGRvd25fY29uZmlybSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzM4NTc0NTE3OTU1NTczMTQ3MCI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KSs4KSo4KWN4KSmIOCkueClgeCkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9jb25maXJtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjQ5NzkyMTc1MjQyODIxMzUzIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkq+Cli+CkqCDgpKzgpKjgpY3gpKYg4KS54KWB4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm1fcXVlc3Rpb24iIG1zZ2lkPSIyOTA2NTQ0NzY4ODgxMTM2MTgzIj4i4KSV4KWHIOCkpOCkquCkvuCkiOCkgiDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSoIOCkmuCkvuCkueCkqOClgeCkueClgeCkqOCljeCkmz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWJvb3Rfc2FmZW1vZGVfdGl0bGUiIG1zZ2lkPSI3MDU0NTA5OTE0NTAwMTQwMzYxIj4i4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkruCli+CkoeCkruCkviDgpKrgpYHgpKjgpIPgpKzgpYHgpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVib290X3NhZmVtb2RlX2NvbmZpcm0iIG1zZ2lkPSI1NTI5Mzk0NDUwMjc4NDY2OCI+IuCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpK7gpYvgpKHgpK7gpL4g4KSk4KSq4KS+4KSI4KSBIOCkquClgeCkqOCkg+CkrOClgeCknyDgpJfgpLDgpY3gpKgg4KSa4KS+4KS54KSo4KWBIOCkueClgeCkqOCljeCkmz8g4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkuOCljeCkpeCkvuCkquCkqOCkviDgpJfgpLDgpYfgpJXgpL4g4KS44KSs4KWIIOCkpOClh+CkuOCljeCksOCliyDgpKrgpJXgpY3gpLfgpJXgpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkheCkuOCkleCljeCkt+CkriDgpJfgpLDgpL7gpIngpKjgpYcg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVjZW50X3Rhc2tzX3RpdGxlIiBtc2dpZD0iMzY5MTc2NDYyMzYzODEyNzg4OCI+IuCkqOCkr+CkvuCkgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX3JlY2VudF90YXNrcyIgbXNnaWQ9Ijg3OTQ5MDY2NTg3MzIxOTM0NzMiPiLgpJXgpYHgpKjgpYgg4KSo4KSv4KS+4KSBIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiDgpJvgpYjgpKjgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9ucyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDA4NDc3MTQwMDg4MDUzNjY1Ij4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkteCkv+CkleCksuCljeCkquCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjQwNjQxNjgzMTU0MTYxNTI1OCI+IuCkq+Cli+CkqCDgpLXgpL/gpJXgpLLgpY3gpKrgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX2xvY2siIG1zZ2lkPSIyODQ0OTQ1MTkxNzkyMTE5NzEyIj4i4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCkrOCkqOCljeCkpiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fcG93ZXJfb2ZmIiBtc2dpZD0iNDQ3MTg3OTQ0MDgzOTg3OTcyMiI+IuCktuCkleCljeCkpOCkvyDgpKzgpKjgpY3gpKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX2J1Z19yZXBvcnQiIG1zZ2lkPSI3OTM0MDEwNTc4OTIyMzA0Nzk5Ij4i4KSs4KSXIOCksOCkv+CkquCli+CksOCljeCknyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF90aXRsZSIgbXNnaWQ9IjI2Njc0OTQ4MDM3NDI1NDg1MzMiPiLgpKzgpJcg4KSw4KS/4KSq4KWL4KSw4KWN4KSfIOCksuCkv+CkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9tZXNzYWdlIiBtc2dpZD0iMzk4NDQ3MDQ4NzUwMzUwNDU2Ij4i4KSP4KSJ4KSf4KS+IOCkh+CkruClh+CksiDgpLjgpKjgpY3gpKbgpYfgpLbgpJXgpYsg4KSw4KWC4KSq4KSu4KS+IOCkquCkoOCkvuCkieCkqOCksuCkvuCkiCDgpK/gpLjgpLLgpYcg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkueCkvuCksuCliOCkleCliyDgpIngpKrgpJXgpLDgpKPgpJXgpYsg4KSF4KS14KS44KWN4KSl4KS+4KSV4KWLIOCkrOCkvuCksOClh+CkruCkviDgpLjgpYLgpJrgpKjgpL4g4KSc4KSu4KWN4KSu4KS+IOCkl+CksOCljeCkqOClhyDgpJvgpaQg4KSs4KSXIOCksOCkv+CkquCli+CksOCljeCknyDgpLjgpYHgpLDgpYEg4KSX4KSw4KWH4KSm4KWH4KSW4KS/IOCkquCkoOCkvuCkieCkqCDgpKTgpK/gpL7gpLAg4KSo4KSt4KSP4KS44KSu4KWN4KSuIOCkr+CkuOCksuClhyDgpJXgpYfgpLngpYAg4KS44KSu4KSvIOCksuCkv+CkqOCljeCkmzsg4KSV4KWD4KSq4KSv4KS+IOCkp+CliOCksOCljeCkryDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3RvZ2dsZV9zaWxlbnRfbW9kZSIgbXNnaWQ9IjgyMTk1MjUzNDQyNDY4MTA5MjUiPiLgpK7gpYzgpKgg4KSu4KWL4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9zaWxlbnRfbW9kZV9vbl9zdGF0dXMiIG1zZ2lkPSIzMjg5ODQxOTM3MDAzNzU4ODA2Ij4i4KSG4KS14KS+4KScIOCkrOCkqOCljeCkpiDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3NpbGVudF9tb2RlX29mZl9zdGF0dXMiIG1zZ2lkPSIxNTA2MDQ2NTc5MTc3MDY2NDE5Ij4i4KSn4KWN4KS14KSo4KS/IOCkluClgeCksuCljeCksuCkviDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uc190b2dnbGVfYWlycGxhbmVfbW9kZSIgbXNnaWQ9IjU4ODQzMzAzMDY5MjYzMDc0NTYiPiLgpLngpLXgpL7gpIfgpJzgpLngpL7gpJwg4KSu4KWL4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnNfYWlycGxhbmVfbW9kZV9vbl9zdGF0dXMiIG1zZ2lkPSIyNzE5NTU3OTgyNjA4OTE5NzUwIj4i4KSJ4KSh4KS+4KSoIOCkruCli+CkoSDgpJbgpYHgpLLgpL4g4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnNfYWlycGxhbmVfbW9kZV9vZmZfc3RhdHVzIiBtc2dpZD0iNTA3NTA3MDQ0Mjg1NDQ5MDI5NiI+IuCkueCkteCkvuCkh+CknOCkueCkvuCknCDgpK7gpYvgpKEg4KSs4KSo4KWN4KSmIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luZm9fb3ZlcmZsb3ciIG1zZ2lkPSI1MzAxOTgxNzQxNzA1MzU0OTkzIj4i4KWv4KWv4KWvKyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhZmVNb2RlIiBtc2dpZD0iMjc4ODIyODA2MTU0NzkzMDI0NiI+IuCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpK7gpYvgpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3N5c3RlbV9sYWJlbCIgbXNnaWQ9IjY1NzczNzUzMzU3Mjg1NTEzMzYiPiLgpI/gpKjgpY3gpKHgpY3gpLDgpYvgpIfgpKEg4KSq4KWN4KSw4KSj4KS+4KSy4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2Nvc3RNb25leSIgbXNnaWQ9IjU0Mjk4MDgyMTc4NjE0NjA0MDEiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSk4KS/4KSw4KWN4KSo4KWBIOCkquCksOCljeCkqOClhyDgpLjgpYfgpLXgpL7gpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Nvc3RNb25leSIgbXNnaWQ9IjMyOTMzMDE5MDM0MDk4Njk0OTUiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpL7gpIgg4KSu4KS54KSB4KSX4KWLIOCkquCksOCljeCkqCDgpLjgpJXgpY3gpKjgpYcg4KSV4KS+4KSu4KS54KSw4KWCIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9tZXNzYWdlcyIgbXNnaWQ9Ijc1MjEyNDkxNDg0NDU0NTY2NjIiPiLgpKTgpKrgpL7gpIjgpILgpJXgpL4g4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19tZXNzYWdlcyIgbXNnaWQ9Ijc4MjE5OTkwNzEwMDM2OTkyMzYiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpL4gU01TLCDgpIfgpK7gpYfgpLIg4KSwIOCkheCkqOCljeCkryDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIOCksCDgpLLgpYfgpJbgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfcGVyc29uYWxJbmZvIiBtc2dpZD0iMzUxOTE2MzE0MTA3MDUzMzQ3NCI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpKjgpL/gpJzgpYAg4KS44KWC4KSa4KSo4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19wZXJzb25hbEluZm8iIG1zZ2lkPSI4NDI2NDUzMTI5Nzg4ODYxMzM4Ij4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkuOCkruCljeCkquCksOCljeCklSDgpJXgpL7gpLDgpY3gpKHgpK7gpL4g4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkreCkj+CkleCkviDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSs4KS+4KSw4KWH4KSV4KWLIOCknOCkvuCkqOCkleCkvuCksOClgOCkruCkviDgpLjgpL/gpKfgpL4g4KSq4KS54KWB4KSB4KSaIOCkquClgeCksOCljeKAjeCkr+CkvuCkieCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zb2NpYWxJbmZvIiBtc2dpZD0iNTc5OTA5NjYyMzQxMjA0Mzc5MSI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpLjgpL7gpK7gpL7gpJzgpL/gpJUg4KS44KWC4KSa4KSo4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zb2NpYWxJbmZvIiBtc2dpZD0iNzEyOTg0MjQ1NzYxMTY0MzQ5MyI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpLjgpK7gpY3gpKrgpLDgpY3gpJXgpLngpLDgpYIg4KSwIOCkuOCkvuCkruCkvuCknOCkv+CklSDgpJzgpKHgpL7gpKjgpLngpLDgpYLgpJXgpYsg4KSs4KS+4KSw4KWH4KSV4KWLIOCknOCkvuCkqOCkleCkvuCksOClgOCkruCkviDgpLjgpL/gpKfgpL4g4KSq4KS54KWB4KSB4KSaIOCkquClgeCksOCljeKAjeCkr+CkvuCkieCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9sb2NhdGlvbiIgbXNnaWQ9IjYzNTE0OTc0MjQzNjY5MjA0OSI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpLjgpY3gpKXgpL7gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2xvY2F0aW9uIiBtc2dpZD0iNTcwNDY3OTc2MzEyNDE3MDEwMCI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpK3gpYzgpKTgpL/gpJUg4KS44KWN4KSl4KS+4KSoIOCkqOCkv+CksOClgOCkleCljeCkt+CkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbmV0d29yayIgbXNnaWQ9IjU4MDg5ODMzNzc3MjcxMDk4MzEiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KSC4KSa4KS+4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19uZXR3b3JrIiBtc2dpZD0iNDQ3ODI5OTQxMzI0MTg2MTk4NyI+IuCkteCkv+CkreCkv+CkqOCljeCkqCDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KWB4KS14KS/4KSn4KS+4KS54KSw4KWC4KSu4KS+IOCkquCkueClgeCkgeCkmiDgpLDgpL7gpJbgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYmx1ZXRvb3RoTmV0d29yayIgbXNnaWQ9IjE1ODU0MDM1NDQxNjIxMjgxMDkiPiLgpKzgpY3gpLLgpYHgpJ/gpYHgpKUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2JsdWV0b290aE5ldHdvcmsiIG1zZ2lkPSI1NjI1Mjg4NTc3MTY0MjgyMzkxIj4i4KSs4KWN4KSy4KWB4KSf4KWB4KSl4KSV4KWLIOCkruCkvuCkp+CljeCkr+CkruCkpuCljeCkteCkvuCksOCkviDgpIngpKrgpJXgpLDgpKPgpLngpLDgpYIg4KSwIOCkqOClh+Ckn+CkteCksOCljeCkleCkueCksOClguCkruCkvuCkpeCkvyDgpKrgpLngpYHgpIHgpJog4KSw4KS+4KSW4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2F1ZGlvU2V0dGluZ3MiIG1zZ2lkPSI4MzI5MjYxNjcwMTUxODcxMjM1Ij4i4KSF4KSh4KS/4KSv4KWLIOCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjI2NDE1MTU0MDMzNDc1NjgxMzAiPiLgpIXgpKHgpL/gpK/gpYsg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIOCkrOCkpuCksuCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hZmZlY3RzQmF0dGVyeSIgbXNnaWQ9IjYyMDkyNDY2NTM0MjQ3OTgwMzMiPiLgpKzgpY3gpK/gpJ/gpY3gpLDgpL/gpLLgpL7gpIgg4KSq4KWN4KSw4KSt4KS+4KS1IOCkquCkvuCksOCljeCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWZmZWN0c0JhdHRlcnkiIG1zZ2lkPSI2NDQxMjc1MzIwNjM4OTE2OTQ3Ij4i4KSb4KS/4KSf4KWN4KSf4KWIIOCkrOCljeCkr+CkvuCkn+CljeCksOCkvyDgpLjgpJXgpL7gpIngpKgg4KS44KSV4KWN4KSo4KWHIOCkpOClgCDgpLXgpL/gpLbgpYfgpLfgpKTgpL7gpLngpLDgpYIg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jYWxlbmRhciIgbXNnaWQ9IjU4NjM1MDg0Mzc3ODM2ODM5MDIiPiLgpKrgpL7gpKTgpY3gpLDgpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2NhbGVuZGFyIiBtc2dpZD0iNTc3NzUzNDMxNjk4MjE4NDQxNiI+IuCkquCkvuCkpOCljeCksOCliyDgpKTgpKXgpL4g4KSY4KSf4KSo4KS+4KS54KSw4KWC4KSu4KS+IOCkquCljeCksOCkpOCljeCkr+CkleCljeCktyDgpKrgpLngpYHgpIHgpJoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGljdGlvbmFyeSIgbXNnaWQ9IjQxNDg1OTcxMjg4NDM2NDEzNzkiPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KS24KSs4KWN4KSm4KSV4KWL4KS2IOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfZGljdGlvbmFyeSIgbXNnaWQ9Ijc5MjExNjYzNTU5NjQ3NjQ0OTAiPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KS24KSs4KWN4KSm4KSV4KWL4KS24KSu4KS+IOCktuCkrOCljeCkpuCkueCksOClgiDgpKrgpKLgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iODA5MDIzNzcwMjQzMjU3Njc4OCI+IuCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpLbgpKzgpY3gpKbgpJXgpYvgpLYg4KSy4KWH4KSW4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY193cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSIyNzExNTYxOTk0NDk3MzYxNjQ2Ij4i4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCktuCkrOCljeCkpuCkleCli+CktuCkruCkviDgpLbgpKzgpY3gpKbgpLngpLDgpYIg4KSl4KSq4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2Jvb2ttYXJrcyIgbXNnaWQ9IjE5NDk1MTk2NzMxMDM5NjgyMjkiPiLgpKzgpYHgpJXgpK7gpL7gpLDgpY3gpJXgpLngpLDgpYIg4KSwIOCkh+CkpOCkv+CkueCkvuCkuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYm9va21hcmtzIiBtc2dpZD0iNDE2OTc3MTYwNjI1Nzk2MzAyOCI+IuCkrOClgeCkleCkruCkvuCksOCljeCkleCkueCksOClgiDgpLAg4KSs4KWN4KSw4KS+4KSJ4KSc4KSwIOCkh+CkpOCkv+CkueCkvuCkuOCkruCkviDgpLjgpL/gpKfgpL4g4KSq4KS54KWB4KSB4KSa4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2RldmljZUFsYXJtcyIgbXNnaWQ9IjYxMTc3MDQ2Mjk3Mjg4MjQxMDEiPiLgpIXgpLLgpL7gpLDgpY3gpK4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RldmljZUFsYXJtcyIgbXNnaWQ9IjQ3NjkzNTYzNjIyNTE2NDExNzUiPiLgpIXgpLLgpL7gpLDgpY3gpK4g4KSY4KSh4KWAIOCkuOClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfdm9pY2VtYWlsIiBtc2dpZD0iNDE2MjIzNzE0NTAyNzU5MjEzMyI+IuCkreCljeCkteCkvuCkh+CkuCDgpK7gpYfgpLIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3ZvaWNlbWFpbCIgbXNnaWQ9IjI0OTg0MDM5Njk4NjI5NTEzOTMiPiLgpK3gpY3gpLXgpL7gpIfgpLjgpK7gpYfgpLLgpK7gpL4g4KS44KS/4KSn4KS+IOCkquCkueClgeCkgeCkmuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9taWNyb3Bob25lIiBtc2dpZD0iMTcxNTM5OTAwMjUwMDQzNDY0Ij4i4KSu4KS+4KSH4KSV4KWN4KSw4KWL4KSr4KWL4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19taWNyb3Bob25lIiBtc2dpZD0iNzEwNjYxODI4NjkwNTczODQwOCI+IuCkruCkvlvgpJXgpY3gpLDgpYvgpKvgpYvgpKjgpKzgpL7gpJ8g4KSw4KWH4KSV4KSw4KWN4KShIOCkheCkoeCkv+Ckr+Cli+CkruCkviDgpLjgpL/gpKfgpL4g4KSq4KS54KWB4KSB4KSaIOCkquClgeCksOCljeKAjeCkr+CkvuCkieCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jYW1lcmEiIG1zZ2lkPSI0ODIwMzcyNDk1ODk0NTg2NjE1Ij4i4KSV4KWN4KSv4KS+4KSu4KWH4KSw4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19jYW1lcmEiIG1zZ2lkPSIyOTMzNjY3MzcyMjg5NTY3NzE0Ij4i4KSk4KS44KWN4KSs4KS/4KSwIOCkteCkviDgpK3gpL/gpKHgpL/gpK/gpYsg4KSV4KWN4KSv4KS+4KSq4KWN4KSa4KSw4KSV4KWLIOCksuCkvuCkl+CkvyDgpJXgpY3gpK/gpL7gpK7gpYfgpLDgpL7gpK7gpL4g4KS44KS/4KSn4KS+IOCkquCkueClgeCkgeCkmuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zY3JlZW5sb2NrIiBtc2dpZD0iODI3NTUwMDE3MzMzMDcxODE2OCI+IuCkuOCljeCkleCljeCksOCkv+CkqCDgpLLgpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zY3JlZW5sb2NrIiBtc2dpZD0iNzA2NzQ5NzEyODkyNTQ5OTQwMSI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpIngpKrgpJXgpLDgpKPgpK7gpL4g4KSy4KSVIOCkuOCljeCkleCljeCksOCkv+CkqOCkleCliyDgpLXgpY3gpK/gpLXgpLngpL7gpLDgpLLgpL7gpIgg4KSq4KWN4KSw4KSt4KS+4KS14KS/4KSkIOCkl+CksOCljeCkqOClhyDgpJXgpY3gpLfgpK7gpKTgpL7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYXBwSW5mbyIgbXNnaWQ9IjgwMjg3ODk3NjI2MzQxNDc3MjUiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSV4KWLIOCkuOClguCkmuCkqOCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYXBwSW5mbyIgbXNnaWQ9IjM5NTAzNzg1MzgwNDk2MjU5MDciPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSJ4KSq4KSV4KSw4KSj4KSu4KS+IOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KS14KWN4KSv4KS14KS54KS+4KSw4KSu4KS+IOCkquCljeCksOCkreCkvuCktSDgpKrgpL7gpLDgpY3gpKjgpYcg4KSV4KWN4KS34KSu4KSk4KS+4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3dhbGxwYXBlciIgbXNnaWQ9IjM4NTAyODAxNTgwNDExNzU5OTgiPiLgpLXgpL7gpLLgpKrgpYfgpKrgpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3dhbGxwYXBlciIgbXNnaWQ9IjU2MzA0MTc4NTQ3NTA1NDAxNTQiPiLgpIngpKrgpJXgpLDgpKMg4KS14KS+4KSy4KSq4KWH4KSq4KSwIOCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiDgpKzgpKbgpLLgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3lzdGVtQ2xvY2siIG1zZ2lkPSI0MDY1MzU3NTkyMzY2MTI5OTIiPiLgpJjgpKHgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N5c3RlbUNsb2NrIiBtc2dpZD0iMzk0NDM1OTgzMzYyNDA5NDk5MiI+IuCkieCkquCkleCksOCkoyDgpLjgpK7gpK8g4KS14KS+IOCkuOCkruCkryDgpJXgpY3gpLfgpYfgpKTgpY3gpLAg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zdGF0dXNCYXIiIG1zZ2lkPSIyMDk1ODYyNTY4MTEzOTQ1Mzk4Ij4i4KS44KWN4KSl4KS/4KSk4KS/IOCkquCkn+CljeCkn+ClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RhdHVzQmFyIiBtc2dpZD0iNjI0MjU5MzQzMjIyNjgwNzE3MSI+IuCkieCkquCkleCksOCkoyDgpLjgpY3gpKXgpL/gpKTgpL8g4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3luY1NldHRpbmdzIiBtc2dpZD0iMzM0MTk5MDk4NjE0NzgyNjU0MSI+IuCkuOCkv+CkmeCljeCklSDgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N5bmNTZXR0aW5ncyIgbXNnaWQ9Ijc2MDMxOTUyNjUxMjkwMzE3OTciPiLgpLjgpL/gpJngpY3gpJUg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWC4KSu4KS+IOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYWNjb3VudHMiIG1zZ2lkPSIzMzU5NjQ2MjkxMTI1MzI1NTE5Ij4i4KSk4KSq4KS+4KSI4KSB4KSV4KS+IOCkluCkvuCkpOCkvuCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfYWNjb3VudHMiIG1zZ2lkPSI0OTQ4NzMyNjQxODI3MDkxMzEyIj4i4KSJ4KSq4KSy4KSs4KWN4KSnIOCkluCkvuCkpOCkvuCkueCksOClgiDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2hhcmR3YXJlQ29udHJvbHMiIG1zZ2lkPSI3OTk4MjE0OTY4NzkxNTk5MzI2Ij4i4KS54KS+4KSw4KWN4KSh4KS14KWH4KSv4KSwIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCko+CkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfaGFyZHdhcmVDb250cm9scyIgbXNnaWQ9IjQzNTcwNTc4NjEyMjU0NjI3MDIiPiLgpLngpY3gpK/gpL7gpKjgpY3gpKHgpLjgpYfgpJ/gpJXgpYsg4KS54KS+4KSw4KWN4KSh4KS14KWH4KSv4KSw4KSu4KS+IOCkquCljeCksOCkpOCljeCkr+CkleCljeCktyDgpKrgpLngpYHgpIHgpJrgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfcGhvbmVDYWxscyIgbXNnaWQ9IjkwNjcxNzM5ODgzMjU4NjU5MjMiPiLgpKvgpYvgpKgg4KSV4KSy4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19waG9uZUNhbGxzIiBtc2dpZD0iNzQ4OTcwMTYyMDQ0NjE4Mzc3MCI+IuCkheCkqOClgeCkl+CkruCkqCwg4KSw4KWH4KSV4KSw4KWN4KShIOCksCDgpKvgpYvgpKgg4KSV4KSy4KS54KSw4KWC4KSV4KWLIOCkquCljeCksOCkuOCli+Ckp+CkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc3lzdGVtVG9vbHMiIG1zZ2lkPSI0NjUyMTkxNjQ0MDgyNzE0MDQ4Ij4i4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCklOCknOCkvuCksOCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3lzdGVtVG9vbHMiIG1zZ2lkPSI4MTYyMTAyNjAyMTkwNzM0MzA1Ij4i4KSo4KS/4KSu4KWN4KSoLeCkuOCljeCkpOCksCDgpKrgpLngpYHgpIHgpJog4KSwIOCkquCljeCksOCko+CkvuCksuClgOCkleCliyDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGV2ZWxvcG1lbnRUb29scyIgbXNnaWQ9IjM0NDYxNjQ1ODQ3MTA1OTY1MTMiPiLgpLXgpL/gpJXgpLjgpL/gpKQg4KSf4KWB4KSy4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kZXZlbG9wbWVudFRvb2xzIiBtc2dpZD0iNzA1ODgyODAzMjM1ODE0MjAxOCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpLXgpL/gpJXgpL7gpLjgpJXgpLDgpY3gpKTgpL7gpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkruCkvuCkpOCljeCksCDgpLjgpYHgpLXgpL/gpKfgpL7gpLngpLDgpYLgpJXgpYsg4KSG4KS14KS24KWN4KSv4KSV4KSk4KS+4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2Rpc3BsYXkiIG1zZ2lkPSI0Mjc5OTA5Njc2MDM2NDAyNjM2Ij4i4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyBVSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfZGlzcGxheSIgbXNnaWQ9IjYwNTEwMDIwMzE5MzMwMTM3MTQiPiLgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSV4KWLIFVJIOCksuCkvuCkiCDgpIXgpLjgpLAg4KSq4KS+4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N0b3JhZ2UiIG1zZ2lkPSIxOTcxMTE4NzcwNTQ2MzM2OTY2Ij4i4KSt4KSj4KWN4KSh4KS+4KSw4KSjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdG9yYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc0NDIzMTg1MDI0NDY4NzQ5OTkiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSu4KS+4KSl4KS/IOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3N0b3JhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI5MjAzMzAyMjE0OTE1MzU1Nzc0Ij4iU0Qg4KSV4KS+4KSw4KWN4KSh4KSu4KS+4KSl4KS/IOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNzkxOTAyNTYwMjI4MzU5MzkwNyI+IuCkquCkueClgeCkgeCkmuClgOCkleCksOCkoyDgpLXgpL/gpLbgpYfgpLfgpKTgpL7gpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FjY2Vzc2liaWxpdHlGZWF0dXJlcyIgbXNnaWQ9IjQyMDUxOTY4ODE2NzgxNDQzMzUiPiLgpLjgpLngpK/gpYvgpJfgpYAg4KSq4KWN4KSw4KS14KS/4KSn4KS/IOCkreCkj+CkleCliyDgpLXgpL/gpLbgpYfgpLfgpKTgpL7gpLngpLDgpYLgpLLgpYcg4KSF4KSo4KWB4KSw4KWL4KSnIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJldHJpZXZlV2luZG93Q29udGVudCIgbXNnaWQ9IjM5MDE3MTc5MzY5MzAxNzAzMjAiPiLgpLXgpL/gpKjgpY3gpKHgpYsg4KS44KS+4KSu4KSX4KWN4KSw4KWA4KSV4KWLIOCkquClgeCkqOCkg+CkrOCkueCkvuCksuClgCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X2Rlc2NfY2FuUmV0cmlldmVXaW5kb3dDb250ZW50IiBtc2dpZD0iMzc3MjIyNTAwODYwNTMxMDY3MiI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpIXgpKjgpY3gpKTgpLDgpJXgpY3gpLDgpL/gpK/gpL4g4KSt4KSH4KSw4KS54KWH4KSV4KWLIOCkteCkv+CkqOCljeCkoeCli+CkleCliyDgpLjgpL7gpK7gpJfgpY3gpLDgpYDgpJXgpYsg4KSo4KS/4KSw4KWA4KSV4KWN4KS34KSjIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdFRvdWNoRXhwbG9yYXRpb24iIG1zZ2lkPSIzMTA4NzIzMzY0Njc2NjY3MzIwIj4i4KSb4KWL4KSP4KSwIOCkl+CksOCkv+CkqOClhyDgpJbgpYvgpJzgpLLgpL7gpIgg4KS44KWB4KSa4KS+4KSw4KWBIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXF1ZXN0VG91Y2hFeHBsb3JhdGlvbiIgbXNnaWQ9IjU4MDA1NTI1MTY3NzkyNDkzNTYiPiLgpJvgpYvgpIfgpI/gpJXgpL4g4KSG4KSH4KSf4KSu4KS54KSw4KWCIOCkmuCksOCljeCkleCliyDgpLjgpY3gpLXgpLDgpK7gpL4g4KSs4KWL4KSy4KS/4KSo4KWHIOCkmyDgpLAg4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCkh+CktuCkvuCksOCkvuCkueCksOClguCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpYcg4KSF4KSo4KWN4KS14KWH4KS34KSjIOCkl+CksOCljeCkqCDgpLjgpJXgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJlcXVlc3RFbmhhbmNlZFdlYkFjY2Vzc2liaWxpdHkiIG1zZ2lkPSIxNzM5ODgxNzY2NTIyNTk0MDczIj4i4KSJ4KSa4KWN4KSaIOCkteClh+CkrCDgpKrgpLngpYHgpIHgpJrgpLLgpL7gpIgg4KS44KWB4KSa4KS+4KSw4KWBIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXF1ZXN0RW5oYW5jZWRXZWJBY2Nlc3NpYmlsaXR5IiBtc2dpZD0iNzg4MTA2Mzk2MTUwNzUxMTc2NSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpLjgpL7gpK7gpJfgpY3gpLDgpYDgpLLgpL7gpIgg4KSl4KSqIOCkquCkueClgeCkgeCkmuCkr+Cli+Ckl+CljeCkryDgpKzgpKjgpL7gpIngpKgg4KSy4KS/4KSq4KS/4KS54KSw4KWCIOCkuOCljeCkpeCkvuCkquCkqOCkviDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSo4KWBIOCkueClgeCkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdEZpbHRlcktleUV2ZW50cyIgbXNnaWQ9IjIxMDM0NDAzOTE5MDI0MTIxNzQiPiLgpIbgpKvgpYHgpLLgpYcg4KSf4KS+4KSH4KSqIOCkl+CksOClh+CkleCliyDgpKrgpL7gpKDgpJXgpYsg4KSo4KS/4KSw4KWA4KSV4KWN4KS34KSjIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXF1ZXN0RmlsdGVyS2V5RXZlbnRzIiBtc2dpZD0iNzQ2MzEzNTI5MjIwNDE1MjgxOCI+IuCkteCljeCkr+CkleCljeCkpOCkv+Ckl+CkpCDgpKHgpYfgpJ/gpL4g4KSc4KS44KWN4KSk4KWIIOCkleCljeCksOClh+CkoeCkv+CknyDgpJXgpL7gpLDgpY3gpKEg4KSo4KSu4KWN4KSs4KSw4KS54KSw4KWCIOCksCDgpKrgpL7gpLjgpLXgpLDgpY3gpKHgpLngpLDgpYIg4KS44KSu4KS+4KS14KWH4KS2IOCkl+CksOCljeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhdHVzQmFyIiBtc2dpZD0iNzQxNzE5MjYyOTYwMTg5MDc5MSI+IuCkuOCljeCkpeCkv+CkpOCkvyDgpKrgpJ/gpY3gpJ/gpL/gpLLgpL7gpIgg4KSF4KSV4KWN4KS34KSuIOCkteCkviDgpLjgpILgpLbgpYvgpKfgpL/gpKQg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyIiBtc2dpZD0iODQzNDY2OTU0OTUwNDI5MDk3NSI+IuCkuOCljeCkpeCkv+CkpOCkvyDgpKrgpJ/gpY3gpJ/gpL8g4KSF4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCljeCkqCDgpLXgpL4g4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkhuCkh+CkleCkqOCkueCksOClgiDgpKXgpKrgpY3gpKgg4KSwIOCkueCkn+CkvuCkieCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhdHVzQmFyU2VydmljZSIgbXNnaWQ9IjcyNDcyODE5MTEzODc5MzE0ODUiPiLgpLjgpY3gpKXgpL/gpKTgpL8g4KSq4KSf4KWN4KSf4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyU2VydmljZSIgbXNnaWQ9IjcxNjExMzY2MDc5NTk3NjA2MCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpY3gpKXgpL/gpKTgpL8g4KSq4KSf4KWN4KSf4KS/IOCkueClgeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9leHBhbmRTdGF0dXNCYXIiIG1zZ2lkPSIxMTQ4MTk4Nzg1OTM3NDg5MjY0Ij4i4KS44KWN4KSl4KS/4KSk4KS/IOCkquCkn+CljeCkn+Ckv+CksuCkvuCkiCDgpLXgpL/gpLjgpY3gpKTgpYPgpKQv4KS44KSZ4KWN4KSV4KWB4KSa4KS/4KSkIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2V4cGFuZFN0YXR1c0JhciIgbXNnaWQ9IjY5MTc1NDk0MzcxMjk0MDExMzIiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KWN4KSl4KS/4KSk4KS/IOCkquCkn+CljeCkn+CkvyDgpLXgpL/gpLjgpY3gpKTgpL7gpLAg4KS14KS+IOCkuOCkguCkleClgeCkmuCkqCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcHJvY2Vzc091dGdvaW5nQ2FsbHMiIG1zZ2lkPSIzOTA2MDA3ODMxMTkyOTkwOTQ2Ij4i4KSs4KS54KS/4KSw4KWN4KSX4KSu4KSoIOCkleCksuCkueCksOClguCksuCkvuCkiCDgpIXgpLDgpY3gpJXgpYsg4KSu4KS+4KSw4KWN4KSXIOCkpuCkv+CkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iNTMzMTMxODkzMTkzNzQwMjA0MCI+IuCkrOCkueCkv+CksOCljeCkl+CkruCkqCDgpJXgpLLgpLngpLDgpYLgpJXgpYsg4KSq4KWN4KSw4KS24KWL4KSn4KSoIOCkl+CksOCljeCkqCDgpLAg4KSh4KS+4KSv4KSyIOCkl+CksOCkv+CkqOClhyDgpKjgpK7gpY3gpKzgpLAg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCAg4KSv4KWLIOCkheCkqOClgeCkruCkpOCkv+CksuClhyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSu4KWL4KSo4KS/4KSf4KSwIOCkl+CksOCljeCkqCwg4KSF4KSo4KWN4KSv4KSk4KWN4KSwIOCkquCkoOCkvuCkieCkqCDgpLXgpL4g4KSs4KS+4KS54KS/4KSwIOCknOCkvuCkqOClhyDgpJXgpLLgpLngpLDgpYLgpLLgpL7gpIgg4KSw4KWL4KSV4KWN4KSoIOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZVNtcyIgbXNnaWQ9Ijg2NzM0NzE3Njg5NDc4OTUwODIiPiLgpKrgpL7gpKAg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIChTTVMpIOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlU21zIiBtc2dpZD0iNjQyNDM4Nzc1NDIyODc2NjkzOSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCBTTVMg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKgg4KSwIOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkviDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLjgpJXgpYsg4KSu4KSk4KSy4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSJ4KSq4KSV4KSw4KSj4KSu4KS+IOCkquCkoOCkvuCkh+Ckj+CkleCliyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSk4KSq4KS+4KSI4KSC4KSy4KS+4KSIIOCkqOCkpuClh+CkluCkvuCkiOCkqOCliCDgpK7gpYvgpKjgpL/gpJ/gpLAg4KSX4KSw4KWN4KSoIOCkteCkviDgpK7gpYfgpJ/gpL7gpIngpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlTW1zIiBtc2dpZD0iMTgyMTMxNzM0NDY2ODI1NzA5OCI+IuCkquCkvuCkoCDgpLjgpKjgpY3gpKbgpYfgpLYgKE1NUykg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVNbXMiIG1zZ2lkPSI1MzMwMTk0MzcyNjMyMTIyNjAiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIggTU1TIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSoIOCksCDgpKrgpY3gpLDgpJXgpYPgpK/gpL4g4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS44KSV4KWLIOCkruCkpOCksuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpYcg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkieCkquCkleCksOCko+CkruCkviDgpKrgpKDgpL7gpIfgpI/gpJXgpYsg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCkpOCkquCkvuCkiOCkguCksuCkvuCkiCDgpKjgpKbgpYfgpJbgpL7gpIjgpKjgpYgg4KSu4KWL4KSo4KS/4KSf4KSwIOCkl+CksOCljeCkqCDgpLXgpL4g4KSu4KWH4KSf4KS+4KSJ4KSoIOCkuOCkleCljeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9IjE4MDM0Nzc2NjA4NDYyODgwODkiPiLgpIbgpJXgpLjgpY3gpK7gpL/gpJUg4KSq4KWN4KSw4KS44KS+4KSw4KSj4KS54KSw4KWCIOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlRW1lcmdlbmN5QnJvYWRjYXN0IiBtc2dpZD0iODQ4NTI0MDcwMjYyNDMxOTc0Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkhuCkquCkpOCkleCkvuCksuClgOCkqCDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKgg4KSwIOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkviDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpYsg4KSF4KSo4KWB4KSu4KSk4KS/IOCkquCljeCksOCko+CkvuCksuClgCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpK7gpL4g4KSu4KS+4KSk4KWN4KSwIOCkieCkquCksuCkrOCljeCkpyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDZWxsQnJvYWRjYXN0cyIgbXNnaWQ9IjE1OTgzMjg4NDM2MTk2NDYxNjYiPiLgpLjgpYfgpLIg4KSq4KWN4KSw4KS44KS+4KSw4KS/4KSkIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpKrgpKLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2VsbEJyb2FkY2FzdHMiIG1zZ2lkPSI2MzYxOTcyNzc2MDgwNDU4OTc5Ij4i4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkieCkquCkleCksOCko+CkpuCljeCkteCkvuCksOCkviDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KS44KWH4KSyIOCkquCljeCksOCkuOCkvuCksOCkoyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOClh+CksiDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KSa4KWH4KSk4KS+4KS14KSo4KWA4KS54KSw4KWCIOCkleClh+CkueClgCDgpLjgpY3gpKXgpL7gpKjgpLngpLDgpYLgpK7gpL4g4KSk4KSq4KS+4KSI4KSC4KSy4KS+4KSIIOCkhuCkquCkpOCkleCkvuCksuClgOCkqCDgpJfgpKTgpL/gpLXgpL/gpKfgpL/gpLngpLDgpYLgpJXgpYsg4KSs4KS+4KSw4KWH4KSu4KS+IOCkuOCkmuClh+CkpCDgpJfgpLDgpL7gpIngpKgg4KSX4KSw4KS/4KSP4KSV4KS+IOCkm+CkqOCljeClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkj+CkieCkn+CkviDgpIbgpKrgpKTgpJXgpL7gpLLgpYDgpKgg4KS44KWH4KSyIOCkquCljeCksOCkuOCkvuCksOCkoyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSm4KSbIOCknOCkrCDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSJ4KSq4KSV4KSw4KSj4KSV4KWLIOCkquCljeCksOCkpuCksOCljeCktuCkqCDgpLXgpL4g4KSF4KSq4KSw4KWH4KS24KSo4KSV4KWLIOCkuOCkvuCkpSDgpLngpLjgpY3gpKTgpJXgpY3gpLfgpYfgpKog4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkpuCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFNtcyIgbXNnaWQ9IjU2MDA4MzA2MTIxNDc2NzE1MjkiPiJTTVMg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCkquCkoOCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRTbXMiIG1zZ2lkPSI3MDk0NzI5Mjk4MjA0OTM3NjY3Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIFNNUyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSq4KSg4KS+4KSJ4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS44KSy4KWHIOCkheCkquCljeCksOCkpOCljeCkr+CkvuCkuOCkv+CkpCDgpJrgpL7gpLDgpY3gpJzgpLngpLDgpYLgpJXgpYsg4KSq4KSw4KS/4KSj4KS+4KSuIOCkpuCkv+CkqCDgpLjgpJXgpY3gpKbgpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSq4KWB4KS34KWN4KSf4KS/IOCkrOCkv+CkqOCkviDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSq4KSg4KS+4KSP4KSwIOCkpOCkquCkvuCkiOCkguCkleCliyDgpKrgpYjgpLjgpL4g4KSW4KSw4KWN4KSaIOCkl+CksOCkvuCkieCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlbmRSZXNwb25kVmlhTWVzc2FnZVJlcXVlc3QiIG1zZ2lkPSI4NzEzODg5MTA1MzA1OTQzMjAwIj4i4KSq4KWN4KSw4KSk4KS/4KSV4KWN4KSw4KS/4KSv4KS+LeCkruCkvuCksOCljeCkq+CkpC3gpLjgpKjgpY3gpKbgpYfgpLYg4KSY4KSf4KSo4KS+4KS54KSw4KWCIOCkquCkoOCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRSZXNwb25kVmlhTWVzc2FnZVJlcXVlc3QiIG1zZ2lkPSI3MTA3NjQ4NTQ4NDY4Nzc4NzM0Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkhuCkl+CkpCDgpJXgpLLgpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkquCljeCksOCkpOCkv+CkleCljeCksOCkv+Ckr+Ckvi3gpK7gpL7gpLDgpY3gpKvgpKQt4KS44KSo4KWN4KSm4KWH4KS2IOCkmOCkn+CkqOCkvuCkueCksOClguCksuCkvuCkiCDgpIXgpKjgpY3gpK8g4KS44KSo4KWN4KSm4KWH4KS2IOCkquCkoOCkvuCkieCkqOClhyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpK7gpL4g4KSF4KSo4KWB4KSw4KWL4KSn4KS54KSw4KWCIOCkquCkoOCkvuCkieCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU21zIiBtc2dpZD0iODc0NTA4NjU3MjIxMzI3MDQ4MCI+IuCkpOCkquCkvuCkiOCkguCkleCkviDgpKrgpL7gpKAg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIChTTVMg4KS14KS+IE1NUykg4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNtcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjQ2Nzk4MTU0ODY4NDczNTUyMiI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KS14KS+IFNJTSDgpJXgpL7gpLDgpY3gpKHgpK7gpL4g4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkreCkj+CkleCkviBTTVMg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWC4KSy4KS+4KSIIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLjgpLLgpYcg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkteCkv+Ckt+Ckr+CkteCkuOCljeCkpOClgSDgpLXgpL4g4KSX4KWL4KSq4KSo4KWA4KSv4KSk4KS+4KSy4KS+4KSIIOCkteClh+CkteCkvuCkuOCljeCkpOCkviDgpJfgpLDgpY3gpKbgpYgg4KS44KSs4KWIIFNNUyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSq4KSi4KWN4KSo4KWHIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzY5NTk2NzUzMzQ1NzI0MDU1MCI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpKvgpYvgpKgg4KS14KS+IFNJTSDgpJXgpL7gpLDgpY3gpKHgpK7gpL4g4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkreCkj+CkleCkviBTTVMg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWC4KSy4KS+4KSIIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLjgpLLgpYcg4KS44KSs4KWIIFNNUyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYLgpLLgpL7gpIgg4KSq4KSi4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KS14KS+IOCkteCkv+CktuCljeCkteCkuOCkqOCkv+Ckr+CkpOCkviDgpKzgpL/gpKjgpL4g4KSo4KWIIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNtcyIgbXNnaWQ9IjMyMTY5NTA0NzI2MzYyMTQ3NzQiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpL4g4KSq4KS+4KSgIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpLjgpK7gpY3gpKrgpL7gpKbgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIChTTVMg4KS14KS+IE1NUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNtcyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNTE2MDQxMzk0Nzc5NDUwMTUzOCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkteCkviBTSU0g4KSV4KS+4KSw4KWN4KSh4KSu4KS+IOCkreCko+CljeCkoeCkvuCksCDgpJfgpLDgpL/gpI/gpJXgpL4gU01TIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpLLgpYfgpJbgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkpOCkquCkvuCkiOCkguCkleCliyDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSu4KWH4KSf4KS+4KSJ4KSoIOCkuOCkleCljeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzI2ODY2ODcwOTA1MjMyODU2NyI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpKvgpYvgpKgg4KS14KS+IFNJTSDgpJXgpL7gpLDgpY3gpKHgpK7gpL4g4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkreCkj+CkleCkviBTTVMg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWC4KSy4KS+4KSIIOCksuClh+CkluCljeKAjeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpLjgpL7gpK/gpKYg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpK7gpYfgpJ/gpL7gpIngpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9IjU5OTEzOTg3MTE5MzY1OTA0MTAiPiLgpKrgpL7gpKAg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIChXQVApIOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlV2FwUHVzaCIgbXNnaWQ9Ijc0ODIzMjE5MDIyMDU4MzM4NSI+IldBUCDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqCDgpLAg4KSq4KWN4KSw4KS24KWL4KSn4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpYsg4KSF4KSo4KWB4KSu4KSk4KS/4KSu4KS+IOCkruCli+CkqOCkv+Ckn+CksCDgpJfgpLDgpY3gpKjgpYcg4KS14KS+IOCkpOCkquCkvuCkiOCkgeCksuCkvuCkiCDgpKrgpKDgpL7gpIfgpI/gpJXgpL4g4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCkpOCkquCkvuCkiOCkgeCksuCkvuCkiCDgpKjgpKbgpYfgpJbgpL7gpIgg4KSu4KWH4KSf4KWN4KSo4KWHIOCkleCljeCkt+CkruCkpOCkviDgpLjgpK7gpL7gpLXgpYfgpLYg4KS54KWB4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRUYXNrcyIgbXNnaWQ9IjY0NjYwOTUzOTY2MjM5MzM5MDYiPiLgpJrgpLLgpL/gpLDgpLngpYfgpJXgpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIOCkquClgeCkqOCkg+CkrOCkueCkvuCksuClgCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRUYXNrcyIgbXNnaWQ9Ijc0NTQyMTU5OTU4NDc2NTgxMDIiPiLgpLXgpLDgpY3gpKTgpK7gpL7gpKjgpK7gpL4g4KSwIOCkreCksOCkluCksOCliCDgpJrgpLLgpL/gpLDgpLngpYfgpJXgpL4g4KSV4KS+4KSw4KWN4KSv4KS54KSw4KWCIOCkrOCkvuCksOClh+CkleCliyDgpLjgpYLgpJrgpKjgpL4g4KSq4KWB4KSo4KSD4KSs4KS54KS+4KSy4KWAIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KS/4KSkIOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLjgpLLgpYcg4KSJ4KSq4KSV4KSw4KSj4KSu4KS+IOCkquCljeCksOCkr+Cli+CklyDgpK3gpI/gpJXgpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSV4KWLIOCkrOCkvuCksOClh+CkruCkviDgpLjgpYLgpJrgpKjgpL4g4KSq4KSk4KWN4KSk4KS+IOCksuCkl+CkvuCkieCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqCDgpLjgpJXgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVyYWN0QWNyb3NzVXNlcnMiIG1zZ2lkPSI3MTE0MjU1MjgxOTQ0MjExNjgyIj4i4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KS54KSw4KWCIOCkpOCksOCljeCkqyDgpIXgpKjgpY3gpKTgpLDgpY3gpJXgpY3gpLDgpL/gpK/gpL4g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJhY3RBY3Jvc3NVc2VycyIgbXNnaWQ9IjM2NDY3MDk2MzYyMzM4NTc4NiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIngpKrgpJXgpLDgpKPgpK7gpL4g4KS14KS/4KSt4KS/4KSo4KWN4KSoIOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkvuCkueCksOClgiDgpK7gpL7gpLDgpY3gpKvgpKQg4KSV4KS+4KSw4KWN4KSv4KS54KSw4KWCIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSv4KWLIOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkvuCkueCksOClgiDgpKzgpL/gpJog4KS44KWB4KSw4KSV4KWN4KS34KS+IOCkrOCkv+CkpeCli+CksuCljeCkqCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkqOClhyDgpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVyYWN0QWNyb3NzVXNlcnNGdWxsIiBtc2dpZD0iMjU2NzczNDI4NTU0NTA3NDEwNSI+IuCkleClgeCksOCkvuCkleCkvuCkqOClgCDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpLngpLDgpYIg4KSs4KS/4KSaIOCkheCkqOCljeCkpOCksOCljeCkleCljeCksOCkv+Ckr+CkviDgpJfgpLDgpY3gpKgg4KSq4KWC4KSw4KWN4KSjIOCkheCkqOClgeCkruCkpOCkvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludGVyYWN0QWNyb3NzVXNlcnNGdWxsIiBtc2dpZD0iMzc2ODQxMzY4Mzk1NTAyMzY2Ij4i4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KS44KSB4KSX4KSV4KWLIOCkleClgeCksOCkvuCkleCkvuCkqOClgCDgpLjgpKzgpYgg4KS44KSu4KWN4KSt4KS+4KS14KSo4KS+4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzZXJzIiBtc2dpZD0iMTY3NjE1MDkxMTY3MjI4MjQyOCI+IuCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkvuCkueCksOClgiDgpLXgpY3gpK/gpLXgpLjgpY3gpKXgpL7gpKrgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNlcnMiIG1zZ2lkPSI4NDA5MzA2NjY3NjQ1MzU1NjM4Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkieCkquCkleCksOCko+CkruCkviwg4KSq4KWN4KSw4KS24KWN4KSoLCDgpLjgpL/gpLDgpY3gpJzgpKjgpL4g4KSwIOCkruClh+Ckn+CkvuCkh+CkuOCkueCkv+CkpCDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpLngpLDgpYLgpJXgpYsg4KSq4KWN4KSw4KSs4KSo4KWN4KSnIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXREZXRhaWxlZFRhc2tzIiBtc2dpZD0iNjIyOTQ2ODY3NDc1MzUyOTUwMSI+IuCkmuCksuCkv+CksOCkueClh+CkleCkviDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KS14KS/4KS14KSw4KSjIOCkquClgeCkqOCkg+CkrOCkueCkvuCksuClgCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXREZXRhaWxlZFRhc2tzIiBtc2dpZD0iMTUzODI0NzQxNDQwNzE3NTk5Ij4i4KS14KSw4KWN4KSk4KSu4KS+4KSo4KSu4KS+IOCksCDgpK3gpLDgpJbgpLDgpYgg4KSa4KSy4KS/4KSw4KS54KWH4KSV4KS+IOCkleCkvuCksOCljeCkr+CkueCksOClguCkleCliyDgpKzgpL7gpLDgpYfgpK7gpL4g4KS14KS/4KS44KWN4KSk4KWD4KSkIOCkuOClguCkmuCkqOCkviDgpKrgpYHgpKjgpIPgpKzgpLngpL7gpLLgpYAg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiDgpKzgpL7gpLDgpYfgpJXgpYsg4KSo4KS/4KSc4KWAIOCkuOClguCkmuCkqOCkviDgpKrgpKTgpY3gpKTgpL4g4KSy4KSX4KS+4KSJ4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVvcmRlclRhc2tzIiBtc2dpZD0iMjAxODU3NTUyNjkzNDQyMjc3OSI+IuCkmuCksuCkv+CksOCkueClh+CkleCkviDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSq4KWB4KSo4KSD4KSV4KWN4KSw4KSuIOCkl+CksOCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Jlb3JkZXJUYXNrcyIgbXNnaWQ9Ijc3MzQyMTc3NTQ4Nzc0MzkzNTEiPiLgpJXgpL7gpK7gpLngpLDgpYLgpLLgpL7gpIgg4KSF4KSX4KWN4KSw4KSt4KS+4KSXIOCksCDgpKrgpYPgpLfgpY3gpKDgpK3gpYLgpK7gpL/gpK7gpL4g4KS44KS+4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpK/gpYsg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkh+CkqOCkquClgeCknyDgpKzgpL/gpKjgpL4g4KSo4KWIIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlbW92ZVRhc2tzIiBtc2dpZD0iNjgyMTUxMzQwMTg3MDM3NzQwMyI+IuCkmuCkvuCksuClgSDgpK3gpIfgpLDgpLngpYfgpJXgpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIOCksOCli+CkleCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlbW92ZVRhc2tzIiBtc2dpZD0iMTM5NDcxNDM1MjA2MjYzNTQ5MyI+IuCkleCkvuCkruCkueCksOClgiDgpLngpJ/gpL7gpIngpKgg4KSwIOCkieCkqOClgOCkueCksOClguCkleCliyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KS14KWN4KSv4KS14KS54KS+4KSw4KSy4KS+4KSIIOCkheCkrOCksOCli+CkpyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjczOTExOTEzODQwMjczMDMwNjUiPiJhY3Rpdml0eSBzdGFja3Mg4KSV4KWLIOCkquCljeCksOCkrOCkqOCljeCkpyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjE2MTU4ODE5MzMwMzQwODQ0NDAiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiDgpJrgpLLgpY3gpKjgpYcgYWN0aXZpdHkgc3RhY2tzIOCksuCkvuCkiCDgpKXgpKrgpY3gpKgsIOCkueCkn+CkvuCkieCkqCDgpLAg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpLXgpY3gpK/gpLXgpLngpL7gpLDgpLLgpL7gpIgg4KS14KS/4KSY4KSf4KSoIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N0YXJ0QW55QWN0aXZpdHkiIG1zZ2lkPSIyOTE4NzY4MjM4MDQ1MjA2NDU2Ij4i4KSV4KWB4KSo4KWIIOCkl+CkpOCkv+CkteCkv+Ckp+CkvyDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhcnRBbnlBY3Rpdml0eSIgbXNnaWQ9Ijk5NzgyMzY5NTM0MzU4NDAwMSI+IuCkheCkqOClgeCkruCkpOCkvyDgpLjgpYHgpLDgpJXgpY3gpLfgpL4g4KS14KS+IOCkqOCkv+CksOCljeCkr+CkvuCkpCDgpIXgpLXgpLjgpY3gpKXgpL7gpLLgpL7gpIgg4KS14KS+4KS44KWN4KSk4KS+IOCkqOCkl+CksOCkv+CkleCkqCDgpJXgpYHgpKjgpYgg4KSq4KSo4KS/IOCkleCkvuCksOCljeCkryDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjk3NTM4NzExODg2MTg0MjA2MSI+IuCkuOCljeCkleCljeCksOCkv+CkqCDgpIXgpKjgpYHgpJXgpYLgpLLgpKTgpL4g4KS44KWH4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFNjcmVlbkNvbXBhdGliaWxpdHkiIG1zZ2lkPSI2OTIwNDM2MTg2OTM5MTczNzQiPiLgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KS54KSw4KWC4KSV4KWLIOCkuOCljeCkleCljeCksOCkv+CkqCDgpK7gpL/gpLLgpY3gpKbgpYsg4KSu4KWL4KSh4KSy4KS+4KSIIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpLngpLDgpYLgpJXgpYsg4KS14KWN4KSv4KS14KS54KS+4KSwIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSf4KWB4KSf4KS+4KSJ4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0RGVidWdBcHAiIG1zZ2lkPSIzMDIyMTA3MTk4Njg2NTg0MDUyIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkoeCkv+CkrOCklyDgpJfgpLDgpY3gpKjgpYcg4KS44KSV4KWN4KS34KSuIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldERlYnVnQXBwIiBtc2dpZD0iNDQ3NDUxMjQxNjI5OTAxMzI1NiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCksuCkvuCkl+CkvyDgpKHgpL/gpKzgpJcg4KSX4KSw4KWN4KSo4KWHIOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkviDgpJrgpL7gpLLgpYEg4KSX4KSw4KWN4KSo4KWHIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpIXgpLDgpYIg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIOCkuOCkruCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKgg4KSv4KS44KSV4KWLIOCkieCkquCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VDb25maWd1cmF0aW9uIiBtc2dpZD0iNDE2MjA5MjE4NTEyNDIzNDQ4MCI+IuCkquCljeCksOCko+CkvuCksuClgCDgpKrgpY3gpLDgpKbgpLDgpY3gpLbgpKgg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb25maWd1cmF0aW9uIiBtc2dpZD0iNDM3MjIyMzg3MzE1NDI5NjA3NiI+IuCkteCksOCljeCkpOCkruCkvuCkqCDgpJXgpKjgpY3gpKvgpL/gpJfgpLDgpYfgpLjgpKgg4KSc4KS44KWN4KSk4KWIIOCksuCli+CkleCljeCkr+CkvuCksiDgpLXgpL4g4KS44KSs4KWI4KSk4KS/4KSwIOCkq+CkqOCljeCknyDgpIbgpJXgpL7gpLAg4KSs4KSm4KSy4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9lbmFibGVDYXJNb2RlIiBtc2dpZD0iNTY4NDUwNDA1ODE5MjkyMTA5OCI+IuCkleCkvuCksCDgpK7gpYvgpKEg4KS44KSV4KWN4KS34KSuIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2VuYWJsZUNhck1vZGUiIG1zZ2lkPSI0ODUzMTg3NDI1NzUxNDE5NDY3Ij4i4KSV4KS+4KSwIOCkruCli+CkoeCksuCkvuCkiCDgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9raWxsQmFja2dyb3VuZFByb2Nlc3NlcyIgbXNnaWQ9IjM5MTQwMjY2ODc0MjAxNzcyMDIiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iNDU5MzM1MzIzNTk1OTczMzExOSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSV4KWLIOCkquClg+Ckt+CljeCkoOCkreClguCkruCkvyDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL7gpLngpLDgpYIg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkmuCksuCljeCkqOCkrOCkvuCknyDgpLDgpYvgpJXgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mb3JjZVN0b3BQYWNrYWdlcyIgbXNnaWQ9IjIzMjk2Mjc0Mjg4MzIwNjc3MDAiPiLgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIOCkpuCkrOCkvuCkrOCkruCkviDgpLDgpYvgpJXgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mb3JjZVN0b3BQYWNrYWdlcyIgbXNnaWQ9IjUyNTMxNTcyOTYxODM5NDA4MTIiPiLgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkrOCksuCkquClguCksOCljeCkteCklSDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mb3JjZUJhY2siIG1zZ2lkPSI2NTI5MzUyMDQwNzI1ODQ2MTYiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpKzgpLIg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZm9yY2VCYWNrIiBtc2dpZD0iMzg5MjI5NTgzMDQxOTUxMzYyMyI+IuCkheCkl+CljeCksOCkreCkvuCkl+CkruCkviDgpK3gpI/gpJXgpYsg4KSV4KWB4KSo4KWIIOCkl+CkpOCkv+CkteCkv+Ckp+Ckv+CksuCkvuCkiCDgpJzgpKzgpLDgpJzgpLjgpY3gpKTgpYAg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpLAg4KSr4KSw4KWN4KSV4KWH4KSwIOCknOCkvuCkqOCkleCkviDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSu4KS+4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkhyDgpJXgpLngpL/gpLLgpY3gpK/gpYgg4KSG4KS14KS24KWN4KSv4KSV4KSk4KS+IOCkquCksOCljeCkpuCliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZHVtcCIgbXNnaWQ9IjE2ODE3OTk4NjI0Mzg5NTQ3NTIiPiLgpKrgpY3gpLDgpKPgpL7gpLLgpYDgpJXgpYsg4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkuOCljeCkpeCkv+CkpOCkvyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZHVtcCIgbXNnaWQ9IjE3NzgyOTkwODg2OTIyOTAzMjkiPiLgpKrgpY3gpLDgpKPgpL7gpLLgpYDgpJXgpYsg4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkuOCljeCkpeCkv+CkpOCkvyDgpKrgpYHgpKjgpIPgpKzgpLngpL7gpLLgpYAg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSJ4KSo4KWA4KS54KSw4KWC4KSy4KS+4KSIIOCkuOCkvuCkruCkvuCkqOCljeCkr+CkpOCkgyDgpJXgpLngpL/gpLLgpY3gpK/gpYgg4KSo4KSa4KS+4KS54KS/4KSo4KWHIOCkteCljeCkr+CkvuCkquCklSDgpLXgpL/gpLXgpL/gpKfgpKTgpL7gpJXgpYsg4KSo4KS/4KSc4KWAIOCksCDgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KS44KWC4KSa4KSo4KS+IOCkquClgeCkqOCkg+CkrOCkueCkvuCksuClgCDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZXRyaWV2ZV93aW5kb3dfY29udGVudCIgbXNnaWQ9IjgwMjI1ODg2MDg5OTQ1ODk5MzgiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KS44KS+4KSu4KSX4KWN4KSw4KWAIOCkrOCkueCkvuCksuClgCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZXRyaWV2ZV93aW5kb3dfY29udGVudCIgbXNnaWQ9IjMxOTMyNjkwNjk0Njk3MDAyNjUiPiLgpLjgpJXgpY3gpLDgpL/gpK8g4KS14KS/4KSo4KWN4KSh4KWL4KSV4KWLIOCkteCkv+Ckt+Ckr+CkteCkuOCljeCkpOClgeCksuCkvuCkiCDgpKrgpYHgpKjgpIPgpKzgpLngpL7gpLLgpYAg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSq4KWB4KSw4KWIIOCkteCkv+CkqOCljeCkoeCli+CkleCliyDgpLXgpL/gpLfgpK/gpLXgpLjgpY3gpKTgpYEg4KSq4KWB4KSo4KSD4KSs4KS54KS+4KSy4KWAIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpKjgpY0g4KSwIOCkquCkvuCkuOCkteCksOCljeCkoeCkueCksOClguCkrOCkvuCkueClh+CklSDgpK/gpLjgpJXgpL4g4KS44KSs4KWIIOCkquCkvuCkoOCkleCliyDgpJzgpL7gpIHgpJog4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdGVtcG9yYXJ5X2VuYWJsZV9hY2Nlc3NpYmlsaXR5IiBtc2dpZD0iMjMxMjYxMjEzNTEyNzMxMDI1NCI+IuCkquCkueClgeCkgeCkmuCkpOCkvuCksuCkvuCkiCDgpIXgpLjgpY3gpKXgpL7gpK/gpYAg4KS44KSV4KWN4KS34KSuIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3RlbXBvcmFyeV9lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjgwNzk0NTYyOTMxODI5NzU0NjQiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KS44KWN4KSl4KS+4KSv4KWAIOCksOClguCkquCkruCkviDgpIngpKrgpJXgpLDgpKPgpK7gpL7gpKXgpL8g4KSq4KS54KWB4KSB4KSaIOCksOCkvuCkluCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpYcg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KSV4KWLIOCkuOCkueCkruCkpOCkvyDgpKzgpL/gpKjgpL4g4KSo4KWIIOCkquCkueClgeCkgeCkmuCksuCkvuCkiCDgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmV0cmlldmVfd2luZG93X2luZm8iIG1zZ2lkPSI4NTMyMjk1MTk5MTEyNTE5Mzc4Ij4i4KS14KS/4KSo4KWN4KSh4KWLIOCknOCkvuCkqOCkleCkvuCksOClgCDgpKzgpLngpL7gpLLgpYAg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmV0cmlldmVfd2luZG93X2luZm8iIG1zZ2lkPSI0OTk4ODM2MzcwNDI0MTg2ODQ5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkteCkv+CkqOCljeCkoeCliyDgpLXgpY3gpK/gpLXgpLjgpY3gpKXgpL7gpKrgpJXgpKzgpL7gpJ8g4KS14KS/4KSo4KWN4KSh4KWL4KS54KSw4KWC4KSV4KWLIOCkrOCkvuCksOClh+CkruCkviDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpYcg4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkquCljeCksOCko+CkvuCksuClgCDgpIngpKrgpK/gpYvgpJfgpJXgpYsg4KSy4KS+4KSX4KS/IOCkqOCkv+CkruCkv+CkpOCljeCkpCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSq4KSo4KS/IOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9maWx0ZXJfZXZlbnRzIiBtc2dpZD0iODY3NTUzNTY0ODgwNzQyNzM4OSI+IuCkmOCkn+CkqOCkvuCkueCksOClgiDgpJvgpL7gpKjgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19maWx0ZXJfZXZlbnRzIiBtc2dpZD0iODAwNjIzNjMxNTg4ODM0NzY4MCI+IuCkh+CkqOCljeCkquClgeCknyDgpKvgpL/gpLLgpY3gpJ/gpLAg4KSc4KWB4KSoIOCkuOCkrOCliCDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSY4KSf4KSo4KS+4KS54KSw4KWCIOCkquCkoOCkvuCkh+CkqOClgeCkreCkqOCljeCkpuCkviDgpKrgpLngpL/gpLLgpYcg4KSr4KS/4KSy4KWN4KSf4KSwIOCkl+CksOCljeCkqOClh+CksuCkvuCkiCDgpKbgpLDgpY3gpKTgpL4g4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkvuCkleCliyDgpLngpLjgpY3gpKTgpJXgpY3gpLfgpYfgpKog4KSs4KS/4KSo4KS+IOCkqOCliCBVSSDgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFnbmlmeV9kaXNwbGF5IiBtc2dpZD0iNTk3MzYyNjczODE3MDYxODc3NSI+IuCkquCljeCksOCkpuCksOCljeCktuCkqCDgpKzgpKLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI3MTIxMjM1Njg0NTE1MDAzNzkyIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkquCljeCksOCkpuCksOCljeCktuCkqOCkleCliyDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSG4KS14KSw4KWN4KSn4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIOCkuOCkvuCkruCkl+CljeCksOClgCDgpLjgpILgpJXgpY3gpLDgpK7gpKMg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkpuCkm+CkqOCljSDgpJzgpLjgpLLgpYcg4KSJ4KSq4KSV4KSw4KSj4KSy4KS+4KSIIOCkheCkqOClgeCkquCkr+Cli+Ckl+ClgCDgpKzgpKjgpL7gpIngpIHgpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NodXRkb3duIiBtc2dpZD0iNzE4NTc0NzgyNDAzODkwOTAxNiI+IuCkhuCkguCktuCkv+CklSDgpKzgpKjgpY3gpKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zaHV0ZG93biIgbXNnaWQ9IjcwNDY1MDA4Mzg3NDYyOTE3NzUiPiLgpJfgpKTgpL/gpLXgpL/gpKfgpL8g4KS14KWN4KSv4KS14KS44KWN4KSl4KS+4KSq4KSV4KSy4KS+4KSIIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKjgpYcg4KSF4KS14KS44KWN4KSl4KS+4KSu4KS+IOCksOCkvuCkluCljeCkm+ClpCDgpKrgpYLgpLDgpY3gpKMg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqOClhyDgpJXgpL7gpK4g4KSX4KSw4KWN4KSm4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI0MTM4NjA4NjEwNzE3NDI1NTczIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkuOCljeCkteCkv+CkmuCkueCksOClgiDgpJzgpYvgpJfgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI4MjYyMTk1ODAyNTgyMjU1MDIxIj4i4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkruCkviDgpLjgpY3gpLXgpL/gpJog4KSX4KSw4KWN4KSo4KSs4KS+4KSfIOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkvuCkueCksOClguCksuCkvuCkiCDgpLDgpYvgpJXgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFRvcEFjdGl2aXR5SW5mbyIgbXNnaWQ9IjI1Mzc5MjIzMTE0MTE1NDYwMTYiPiLgpLXgpLDgpY3gpKTgpK7gpL7gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCknOCkvuCkqOCkleCkvuCksOClgCDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0VG9wQWN0aXZpdHlJbmZvIiBtc2dpZD0iODE1MzY1MTQzNDE0NTEzMjUwNSI+IuCkuOCljeCkleCljeCksOCkv+CkqOCkleCliyDgpIXgpJfgpY3gpLAg4KSt4KS+4KSX4KSu4KS+IOCkueCkvuCksuCkleCliyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSwIOCkuOClh+CkteCkvuCkueCksOClguCkleCkviDgpKzgpL7gpLDgpYcg4KSo4KS/4KSc4KWAIOCknOCkvuCkqOCkleCkvuCksOClgCDgpKjgpL/gpJXgpL7gpLLgpY3gpKgg4KSs4KS+4KS54KSV4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3J1blNldEFjdGl2aXR5V2F0Y2hlciIgbXNnaWQ9Ijg5MjIzOTA5NDg2NzE4MjY1NiI+IuCkuOCkrOCliCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KS44KWB4KSw4KWB4KS14KS+4KSkIOCkl+CksOCljeCkqOClhyDgpKjgpL/gpLDgpYDgpJXgpY3gpLfgpKMg4KSwIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ydW5TZXRBY3Rpdml0eVdhdGNoZXIiIG1zZ2lkPSI2MDAzNjAzMTYyNTc4NTc3NDA2Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkleCkuOCksOClgCDgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KS44KWB4KSw4KWB4KS14KS+4KSkIOCkl+CkpOCkv+CkueCksOClgiDgpK7gpYvgpKjgpL/gpJ/gpLAg4KSX4KSw4KWN4KSoIOCksCDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpKrgpY3gpLDgpKPgpL7gpLLgpYDgpK7gpL4g4KSq4KWC4KSw4KWN4KSjIOCkuOCkueCkruCkpCDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KWkIOCkr+CliyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSV4KWH4KS14KSyIOCkteCkv+CkleCkvuCkuOCkleCliyDgpLLgpL7gpJfgpL8g4KSG4KS14KS24KWN4KSv4KSVIOCkmywg4KS44KS+4KSn4KS+4KSw4KSjIOCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpLLgpL7gpJfgpL8g4KSV4KS54KS/4KSy4KWHIOCkueCli+Ckh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSIyNTc2MzMzNDM0ODkzNTMyNDc1Ij4i4KSq4KWN4KSv4KS+4KSV4KWH4KScIOCkueCkn+CkvuCkh+Ckj+CkleCliyDgpKrgpY3gpLDgpLjgpL7gpLDgpKPgpLLgpL7gpIgg4KSq4KSg4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSI2NjIxOTAxMjE2MjA3OTMxMDg5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkuOClguCkmuCkqOCkviDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJsg4KSc4KWB4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpKrgpY3gpK/gpL7gpJXgpYfgpJwg4KS54KSf4KS+4KSH4KSP4KSV4KWLIOCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KWN4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkr+CliyDgpJXgpYHgpKjgpYgg4KSF4KSo4KWN4KSvIOCkmuCkvuCksuClgSDgpIXgpKjgpYHgpY3gpKrgpY3gpLDgpK/gpYvgpJcg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkpuCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI1Njg5MDk1MDA5MDMwMzM2NTkzIj4iU01TLeCkquCljeCksOCkvuCkquCljeCkpCDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KSq4KSg4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI0MTUyMDM3NzIwMDM0MzY1NDkyIj4i4KSk4KWN4KSv4KWLIOCkj+CkieCkn+CkviBTTVMg4KS44KSo4KWN4KSm4KWH4KS24KSs4KS+4KSfIOCkquCljeCksOCkvuCkquCljeCkpCDgpK3gpI/gpJXgpYsg4KS44KWC4KSa4KSo4KS+4KSy4KS+4KSIIOCkquCljeCksOCkuOCkvuCksOCkoyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSG4KSJ4KSB4KSm4KWIIOCkl+CksOClh+CkleCliyBTTVMg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWC4KSy4KS+4KSIIOCknOCkvuCksuCkuOCkvuCknOClgCDgpJfgpLDgpY3gpKgg4KS44KS+4KSv4KSmIOCkluCksOCkvuCkrCDgpK3gpI/gpJXgpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkr+CkuOCksuCkvuCkiCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjMxNDUzNDc0MTMwMjg1ODIzNzEiPiJXQVAtUFVTSC3gpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSq4KWN4KSw4KS44KS+4KSw4KSjIOCkquCkoOCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFdhcFB1c2giIG1zZ2lkPSI0NzgzNDAyNTI1MDM5NDQyNzI5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkuOClguCkmuCkqOCkviDgpKrgpY3gpLDgpLjgpL7gpLDgpKMg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJsg4KSc4KWB4KSoIOCkj+CkieCkn+CkviBXQVAgUFVTSCDgpLjgpKjgpY3gpKbgpYfgpLYg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkreCkj+CkleCliyDgpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpK/gpYsgTU1TIOCkuOCkqOCljeCkpuClh+CktiDgpKzgpL/gpJfgpL7gpLDgpY3gpKgg4KS14KS+IOCkruCljOCkqCDgpKTgpLDgpL/gpJXgpL7gpLLgpYcg4KSV4KWB4KSo4KWIIOCkquCkqOCkvyDgpLXgpYfgpKzgpKrgpYPgpLfgpY3gpKDgpJXgpYsg4KS44KS+4KSu4KSX4KWN4KSw4KWAIOCkluCksOCkvuCkrCDgpLXgpL/gpK3gpYfgpKbgpLngpLDgpYLgpLjgpIHgpJcg4KSs4KSm4KSy4KWN4KSoIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcm9jZXNzTGltaXQiIG1zZ2lkPSIyNDUxODczNjY0MzYzNjYyNjY2Ij4i4KSa4KS+4KSy4KWBIOCkquCljeCksOCktuCli+Ckp+CkqOCkueCksOClguCkleCliyDgpLjgpJngpY3gpJbgpY3gpK/gpL4g4KS44KWA4KSu4KSk4KS/IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFByb2Nlc3NMaW1pdCIgbXNnaWQ9IjczMTgwNjEzMTQwNDA4Nzk1NDIiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSa4KS+4KSy4KWBIOCkueClgeCkqOClhyDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL7gpLngpLDgpYLgpJXgpYsg4KSF4KSn4KS/4KSV4KSk4KSuIOCkuOCkguCkluCljeCkr+CkviDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSV4KS54KS/4KSy4KWHIOCkquCkqOCkvyDgpIbgpLXgpLbgpY3gpK/gpJUg4KSo4KSq4KSw4KWN4KSoIOCkuOCkleCljeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0QWx3YXlzRmluaXNoIiBtc2dpZD0iNTUwOTU4NTA3Nzk4Nzk2OTY1Ij4i4KSq4KWD4KS34KWN4KSg4KSt4KWC4KSu4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSoIOCkpuCkrOCkvuCkrCDgpKbgpL/gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRBbHdheXNGaW5pc2giIG1zZ2lkPSI3NDcxMzEwNjUyODY4ODQxNDk5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkl+CkpOCkv+CkteCkv+Ckp+Ckv+CkueCksOClgiDgpLjgpKfgpYjgpIEg4KS44KSu4KS+4KSq4KWN4KSkIOCkreCkr+CliyDgpJXgpL8g4KSt4KSP4KSoIOCknOCkrCDgpJXgpL8g4KSc4KSk4KS/IOCkuOCkleCljeCkpuCliyDgpKTgpL/gpKjgpYDgpLngpLDgpYIg4KSq4KWD4KS34KWN4KSg4KSt4KWC4KSu4KS/4KSu4KS+IOCknOCkvuCkqOCljeCkm+CkqOCljSDgpK3gpKjgpY3gpKjgpYcg4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSjIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkleCkueCkv+CksuClhyDgpKrgpKjgpL8g4KSG4KS14KS24KWN4KSv4KSVIOCkqOCkquCksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JhdHRlcnlTdGF0cyIgbXNnaWQ9IjI3ODk2MTA2NzM1MTQxMDMzNjQiPiLgpKzgpY3gpK/gpL7gpJ/gpY3gpLDgpL8g4KSk4KSl4KWN4KSv4KS+4KSZ4KWN4KS54KSw4KWCIOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JhdHRlcnlTdGF0cyIgbXNnaWQ9IjU4OTczNDY1ODI4ODI5MTUxMTQiPiLgpLXgpLDgpY3gpKTgpK7gpL7gpKgg4KSl4KWL4KSw4KWIIOCkrOCljeCkr+CkvuCkn+CljeCksOClgCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSh4KWH4KSf4KS+IOCkquCkouCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSP4KSVIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCknOClgeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpYDgpLDgpLngpKjgpYHgpK3gpI/gpJXgpYsg4KSbIOCkpOCljeCkr+CkuOCljeCkleCliyDgpKzgpL7gpLDgpYfgpJXgpL4g4KSq4KWB4KSw4KWN4KSjIOCknOCkvuCkqOCkleCkvuCksOClgCDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSoIOCkuOCkvuCkr+CkpiDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpYcg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlQmF0dGVyeVN0YXRzIiBtc2dpZD0iMzcxOTY4OTc2NDUzNjM3OTU1NyI+IuCkrOCljeCkr+CkvuCkn+CljeCksOCkvyDgpKTgpKXgpY3gpK/gpL7gpJngpY3gpJXgpLLgpL7gpIgg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VwZGF0ZUJhdHRlcnlTdGF0cyIgbXNnaWQ9IjY4NjI4MTc4NTcxNzgwMjUwMDIiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KSC4KSV4KSy4KS/4KSkIOCkrOCljeCkr+CkvuCkn+CljeCksOCkvyDgpKTgpKXgpY3gpK/gpL7gpJngpY3gpJXgpLngpLDgpYIg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCksuCkvuCkl+CkvyDgpLngpYvgpIfgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldEFwcE9wc1N0YXRzIiBtc2dpZD0iMTUwODc3OTY4NzQzNjU4NTc0NCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpLjgpILgpJrgpL7gpLLgpKjgpJXgpL4g4KSk4KSl4KWN4KSv4KS+4KSZ4KWN4KSV4KS54KSw4KWCIOCkquClgeCkqOCkg+CkrOCkueCkvuCksuClgCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRBcHBPcHNTdGF0cyIgbXNnaWQ9IjYyNDM4ODcwNDE1Nzc5MTI4NzciPiLgpLjgpJngpY3gpJXgpLLgpKgg4KSX4KSw4KS/4KSP4KSV4KS+IOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpLjgpILgpJrgpL7gpLLgpKgg4KSk4KSl4KWN4KSv4KS+4KSZ4KWN4KSy4KS+4KSIIOCkquClgeCkqOCkgyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpKzgpL7gpJ8g4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCksuCkvuCkl+CkvyDgpLngpYvgpIfgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUFwcE9wc1N0YXRzIiBtc2dpZD0iODgyOTA5NzM3Mzg1MTUyMTUwNSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpLjgpILgpJrgpLLgpL7gpKgg4KSk4KSl4KWN4KSv4KS+4KSZ4KWN4KSV4KS54KSw4KWC4KSy4KS+4KSIIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVBcHBPcHNTdGF0cyIgbXNnaWQ9IjUwNzg0NTk2NTk0NDAzNDgzIj4i4KS44KSZ4KWN4KSV4KSy4KSoIOCkl+CksOCkv+Ckj+CkleCkviDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KS44KSC4KSa4KS+4KSy4KSoIOCkpOCkpeCljeCkr+CkvuCkmeCljeCksuCkvuCkiCDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpKzgpL7gpJ8g4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCksuCkvuCkl+CkvyDgpLngpYvgpIfgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JhY2t1cCIgbXNnaWQ9IjQ3MDAxMzAyMjg2NTQ1MzkyMCI+IuCkquCljeCksOCko+CkvuCksuClgCDgpKzgpY3gpK/gpJXgpIXgpKog4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSjIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSDgpLAg4KSq4KWB4KSo4KSDIOCkrOCkueCkvuCksuClgCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iYWNrdXAiIG1zZ2lkPSI2OTEyMjMwNTI1MTQwNTg5ODkxIj4i4KSq4KWN4KSw4KSj4KS+4KSy4KWA4KSV4KWLIOCknOCkl+Clh+CkoeCkviDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSoIOCksCDgpKrgpYHgpKjgpIPgpKrgpY3gpLDgpL7gpKrgpY3gpKTgpL/gpJXgpYsg4KS44KSC4KSv4KWL4KSc4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KS/4KSkIOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSm4KWN4KS14KS+4KSw4KS+IOCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpLLgpL7gpJfgpL8g4KS54KWL4KSH4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maXJtX2Z1bGxfYmFja3VwIiBtc2dpZD0iNTU1NzA3MTMyNTgwNDQ2OTEwMiI+IuCkquClguCksOCljeCkoyDgpJzgpJfgpYfgpKHgpL4g4KSX4KSw4KWN4KSoIOCkteCkviDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL4g4KSq4KWB4KSo4KSD4KSs4KS54KS+4KSy4KWAIOCkl+CksOCljeCkqCDgpKjgpL/gpLbgpY3gpJrgpL/gpKQg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlybV9mdWxsX2JhY2t1cCIgbXNnaWQ9IjE3NDg3NjIxNzE2Mzc2OTk1NjIiPiJVSSDgpJXgpYsg4KSq4KWC4KSw4KWN4KSjIOCknOCkl+Clh+CkoeCkviDgpKjgpL/gpLbgpY3gpJrgpL/gpKjgpY3gpKTgpKTgpL4g4KS44KWB4KSw4KWBIOCkl+CksOCljeCkqOCkleCkviDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSV4KWB4KSo4KWIIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkrOCkvuCknyDgpKrgpY3gpLDgpK/gpYvgpJcg4KSo4KSX4KSw4KS/4KSo4KWH4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcm5hbFN5c3RlbVdpbmRvdyIgbXNnaWQ9IjIxNDg1NjM2MjgxNDAxOTMyMzEiPiLgpIXgpKjgpKfgpL/gpJXgpYPgpKQg4KSs4KS/4KSo4KWN4KSh4KWL4KS54KSw4KWCIOCkquCljeCksOCkpuCksOCljeCktuCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnRlcm5hbFN5c3RlbVdpbmRvdyIgbXNnaWQ9Ijc0NTgzODc3NTk0NjE0NjYzOTciPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS14KS/4KSo4KWN4KSh4KWL4KS54KSw4KWCIOCkuOCkv+CksOCljeCknOCkqOCkviDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkmyDgpJzgpYHgpKgg4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkquCljeCksOCko+CkvuCksuClgCDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSH4KSo4KWN4KSf4KSw4KSr4KWH4KS44KSm4KWN4KS14KS+4KSw4KS+IOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KSF4KSt4KS/4KSq4KWN4KSw4KWH4KSw4KS/4KSkIOCkm+ClpCDgpLjgpL7gpKfgpL7gpLDgpKMg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSm4KWN4KS14KS+4KSw4KS+IOCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpLLgpL7gpJfgpL8g4KS54KWL4KSH4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zeXN0ZW1BbGVydFdpbmRvdyIgbXNnaWQ9IjM1NDMzNDc5ODA4Mzk1MTg2MTMiPiLgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSu4KS+IOCkmuCkv+CkpOCljeCksCDgpJXgpYvgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zeXN0ZW1BbGVydFdpbmRvdyIgbXNnaWQ9Ijg1ODQ2NzgzODE5NzI4MjAxMTgiPiLgpIXgpLDgpYIg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSu4KS+4KSl4KS/IOCkteCkviDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSH4KSo4KWN4KSf4KSw4KSr4KWH4KS44KSV4KS+IOCkreCkvuCkl+CkueCksOClguCkruCkviDgpJrgpL/gpKTgpY3gpLAg4KSV4KWL4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkpOCkv+CkqOClgOCkueCksOClguCksuClhyDgpJXgpYHgpKjgpYgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSu4KS+IOCkh+CkqOCljeCkn+CksOCkq+Clh+CkleCliyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSX4KS44KSB4KSXIOCkueCkuOCljeCkpOCkleCljeCkt+Clh+CkqiDgpJfgpLDgpY3gpKgg4KS14KS+IOCkpOCkquCkvuCkiOCkgSDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSu4KS+IOCkleClhyDgpKbgpYfgpJbgpL/gpLDgpLngpKjgpYEg4KSt4KSP4KSV4KWLIOCkmyDgpK3gpKjgpY3gpKjgpYcg4KS44KWL4KSa4KWN4KSoIOCkueClgeCkqOCljeCkmyDgpK3gpKjgpY3gpKjgpYcg4KSs4KSm4KSy4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0QW5pbWF0aW9uU2NhbGUiIG1zZ2lkPSIyODA1MTAzMjQxMTUzOTA3MTc0Ij4i4KSX4KWN4KSy4KWL4KSs4KSyIOCkuOCknOClgOCkteCkv+CkleCksOCkoyDgpJfgpKTgpL8g4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFuaW1hdGlvblNjYWxlIiBtc2dpZD0iNzY5MDA2MzQyODkyNDM0MzU3MSI+IuCkteCkv+CktuCljeCkteCkrOCljeCkr+CkvuCkquCkvyDgpLjgpJzgpYDgpLXgpL/gpJXgpLDgpKMo4KSm4KWN4KSw4KWB4KSkIOCkteCkviDgpKLgpL/gpLLgpL4g4KS44KSc4KWA4KS14KS/4KSV4KSw4KSj4KS54KSw4KWCKSDgpLLgpL7gpIgg4KSV4KWB4KSo4KWIIOCkquCkqOCkvyDgpLjgpK7gpK8g4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZUFwcFRva2VucyIgbXNnaWQ9IjEyODY1MDU3MTcwNTAxMjEzNzAiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSf4KWL4KSV4KSo4KS54KSw4KWCIOCkquCljeCksOCkrOCkqOCljeCkpyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBcHBUb2tlbnMiIG1zZ2lkPSI4MDQzNDMxNzEzMDE0Mzk1NjcxIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkhuCkq+CljeCkqOCkviDgpJ/gpYvgpJXgpKjgpLngpLDgpYIg4KS44KS/4KSw4KWN4KSc4KSo4KS+IOCkl+CksOCljeCkqCDgpLAg4KSJ4KSo4KWA4KS54KSw4KWC4KSV4KWLIOCkuOCkvuCkp+CkvuCksOCkoyBaLeCkleCljeCksOCkruCkvuCkmeCljeCkleCkqCDgpKzgpL7gpIfgpKrgpL7gpLgg4KSX4KSw4KWH4KSwIOCkquCljeCksOCkrOCkqOCljeCkpyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpKfgpL7gpLDgpKMg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSV4KWLIOCksuCkvuCkl+CkvyDgpJXgpLngpL/gpLLgpY3gpK/gpYgg4KSq4KSo4KS/IOCkhuCkteCktuCljeCkr+CklSDgpKjgpLngpYHgpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mcmVlemVTY3JlZW4iIG1zZ2lkPSI0NzA4MTgxMTg0NDQxODgwMTc1Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCkq+CljeCksOCkv+CknCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mcmVlemVTY3JlZW4iIG1zZ2lkPSI4NTU4OTIzNzg5MjIyNjcwMDY0Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkquClguCksOCljeCkoy3gpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KS44KSC4KSV4KWN4KSw4KSu4KSj4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpLjgpY3gpKXgpL7gpK/gpYAg4KSw4KWC4KSq4KSu4KS+IOCkuOCljeCkleCljeCksOCkv+CkqCDgpLjgpY3gpKXgpL/gpLAg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luamVjdEV2ZW50cyIgbXNnaWQ9IjEzNzg3NDY1ODQwMjM1ODY2MDAiPiLgpJXgpYHgpJ7gpY3gpJzgpYDgpLngpLDgpYIg4KSwIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpKzgpJ/gpKjgpLngpLDgpYIg4KSl4KS/4KSa4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5qZWN0RXZlbnRzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDYzNTI1NjU1OTk5Njg2MzIiPiLgpK/gpLjgpJXgpL4g4KSG4KSr4KWN4KSo4KS+IOCkh+CkqOCkquClgeCknyDgpJjgpJ/gpKjgpL7gpLngpLDgpYIgKOCkleCkvyDgpKXgpL/gpJrgpL7gpIfgpLngpLDgpYIsIOCkhuCkpuCkvykg4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpLXgpL/gpKTgpLDgpKMg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSv4KS44KSy4KS+4KSIIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkuOCkruCljeCkriDgpLLgpYjgpJzgpL7gpKgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbmplY3RFdmVudHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NTMxMjgwNTc1NzIzMjYyNTMiPiLgpK/gpLjgpY3gpJXgpYsg4KSG4KSr4KWN4KSo4KWIIOCkqOCkv+CkteClh+CktiDgpJjgpJ/gpKjgpL7gpLngpLDgpYIgKOCkleCkvyDgpKXgpL/gpJrgpL7gpIfgpLngpLDgpYIsIOCkhuCkpuCkvy4pIOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpYvgpK/gpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSq4KWB4KWN4KSw4KWN4oCN4KSv4KS+4KSJ4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkq+Cli+CkqOCksuCkvuCkiCDgpLngpLjgpY3gpKTgpJXgpY3gpLfgpYfgpKog4KSX4KSw4KWN4KSoIOCkr+CkuOCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJcg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkSW5wdXRTdGF0ZSIgbXNnaWQ9IjQ2OTQyODkwMDA0MTI0OTIzNCI+IuCkpOCkquCkvuCkiOCkguCksuClhyDgpJXgpYcg4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueClgeCkqOCljeCkmyDgpLAg4KSV4KWHIOCkleCkvuCksOCljeCkr+CkueCksOClgiDgpLLgpL/gpKjgpYHgpLngpYHgpKjgpY3gpJsg4KSw4KWH4KSV4KSw4KWN4KShIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRJbnB1dFN0YXRlIiBtc2dpZD0iODM4Nzc1NDkwMTY4ODcyODA0MyI+IuCkheCksOCljeCkleCliyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJco4KSc4KS44KWN4KSk4KWIIOCkquCkvuCkuOCkteCksOCljeCkoSDgpJ/gpL7gpIfgpKog4KSX4KSw4KS+4KSHKeCkuOCkgeCklyDgpIXgpKjgpY3gpKTgpLDgpY3gpJXgpY3gpLDgpL/gpK/gpL4g4KSX4KSw4KWH4KSV4KWLIOCkrOClh+CksuCkviDgpKrgpKjgpL8g4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkpeCkv+CkmuClh+CkleCkviDgpJXgpL/gpLngpLDgpYLgpLLgpL7gpIcg4KS54KWH4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSV4KS54KS/4KSy4KWN4KSv4KWIIOCkhuCkteCktuCljeCkr+CklSDgpLngpYHgpIHgpKbgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRJbnB1dE1ldGhvZCIgbXNnaWQ9IjMzNjAwNjQ2MjAyMzA1MTU3NzYiPiLgpI/gpIngpJ/gpL4g4KSo4KS/4KS14KWH4KS2IOCkpOCksOCkv+CkleCkvuCkruCkviDgpKzgpL7gpIHgpKfgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kSW5wdXRNZXRob2QiIG1zZ2lkPSIzMjUwNDQwMzIyODA3Mjg2MzMxIj4i4KSP4KSJ4KSf4KS+IOCkqOCkv+CkteClh+CktiDgpKTgpLDgpL/gpJXgpL7gpJXgpYsg4KSJ4KSa4KWN4KSaIOCkuOCljeCkpOCksOCkleCliyDgpIfgpKjgpY3gpJ/gpLDgpKvgpYfgpLjgpLLgpL7gpIgg4KSq4KSV4KWN4KSV4KS+IOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KS44KSu4KS+4KSk4KWAIOCksOCkvuCkluCljeCkqOClh+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSV4KS54KS/4KSy4KWN4KSv4KWIIOCkhuCkteCktuCljeCkr+CklSDgpKrgpLDgpY3gpKjgpYcg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kQWNjZXNzaWJpbGl0eVNlcnZpY2UiIG1zZ2lkPSI1MzU3NzMzOTQyNTU2MDMxNTkzIj4i4KSP4KSJ4KSf4KS+IOCkquCkueClgeCkgeCkmiDgpLjgpYfgpLXgpL7gpLjgpIHgpJcg4KSc4KWL4KSh4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZEFjY2Vzc2liaWxpdHlTZXJ2aWNlIiBtc2dpZD0iNzAzNDYxNTkyODYwOTMzMTM2OCI+IuCkj+CklSDgpKrgpLngpYHgpIHgpJog4KS44KWH4KS14KS+4KSV4KWLIOCkieCkmuCljeCkmiDgpLjgpY3gpKTgpLDgpJXgpYsg4KSV4KWB4KSw4KS+4KSV4KS+4KSo4KWA4KSy4KS+4KSIIOCkquCkleCljeCkleCkviDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkuOCkruCkvuCkpOClgCDgpLDgpL7gpJbgpY3gpKjgpYfgpLLgpYcg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpKfgpL7gpLDgpKMg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkleCkueCkv+CksuCljeCkr+CliCDgpIbgpLXgpLbgpY3gpK/gpJUg4KSq4KSw4KWN4KSo4KWHIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFByaW50U2VydmljZSIgbXNnaWQ9Ijg0NjI4MTUxNzk1NzI3NDg3NjEiPiLgpI/gpIngpJ/gpL4g4KSq4KWN4KSw4KS/4KSo4KWN4KSfIOCkuOClh+CkteCkvuCkuOCkgeCklyDgpJzgpYvgpKHgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUHJpbnRTZXJ2aWNlIiBtc2dpZD0iNzk2MDA2NzYyMzIwOTExMTEzNSI+IuCkj+CkieCkn+CkviDgpKrgpY3gpLDgpL/gpKjgpY3gpJ8g4KS44KWH4KS14KS+4KSV4KWLIOCkieCkmuCljeCkmiDgpLjgpY3gpKTgpLDgpJXgpYsg4KSH4KSo4KWN4KSf4KSw4KSr4KWH4KS44KSy4KS+4KSIIOCkquCkleCljeCkleCkviDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkvuCksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSV4KS54KS/4KSy4KWN4KSv4KWIIOCkhuCkteCktuCljeCkr+CklSDgpKrgpLDgpY3gpKjgpYcg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NBbGxQcmludEpvYnMiIG1zZ2lkPSIxMTIwNzkyNDY4NDY1NzExMTU5Ij4i4KS44KSs4KWIIOCkquCljeCksOCkv+CkqOCljeCknyDgpJXgpL7gpLDgpY3gpK/gpLngpLDgpYLgpJXgpYsg4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0FsbFByaW50Sm9icyIgbXNnaWQ9IjI5NzgxODUzMTEwNDE4NjQ3NjIiPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpLLgpL7gpIgg4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkpuCljeCkteCkvuCksOCkviDgpKjgpL/gpLDgpY3gpK7gpL/gpKQg4KSq4KWN4KSw4KS/4KSo4KWN4KSfIOCkleCkvuCksOCljeCkr+CkueCksOClgiDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpJXgpLngpL/gpLLgpY3gpK/gpYgg4KSG4KS14KS24KWN4KSv4KSVIOCkquCksOCljeCkqOClhyDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iMjc1MjczMTMwMDQxOTQxMDcyNCI+Ik5GQyDgpLjgpYfgpLXgpL7gpK7gpL4g4KSs4KS+4KSB4KSn4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5mY1NlcnZpY2UiIG1zZ2lkPSI2MTIwNjQ3NjI5MTc0MDY2ODYyIj4iTkZDIOCkleCkvuCksOCljeCkoeCkueCksOClgiDgpIfgpK7gpYHgpLLgpYfgpJ8g4KSX4KSw4KWN4KSo4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpKzgpL7gpIHgpKfgpY3gpKjgpJXgpL4g4KSy4KS+4KSX4KS/IOCkueCli+CksuCljeCkoeCksOCksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpL4g4KSy4KS+4KSX4KS/IOCkleCkueCkv+CksuCljeCkr+CliCDgpKrgpKjgpL8g4KSG4KS14KS24KWN4KSv4KSVIOCkquCksOCljeCkpuCliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iNzM1ODM3ODQwMTkxNTI4NzkzOCI+IuCkj+CkieCkn+CkviDgpKrgpL7gpKAg4KS44KWH4KS14KS+4KS44KSB4KSXIOCkuOCkguCkl+CkoOCkv+CkpCDgpLngpYHgpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kVGV4dFNlcnZpY2UiIG1zZ2lkPSI4MTUxOTY4OTEwOTczOTk4NjcwIj4i4KSP4KSJ4KSf4KS+IOCkquCkvuCkoCDgpLjgpYfgpLXgpL7gpJXgpYsgKOCkieCkpuCkvuCkueCksOCkoyDgpLbgpKzgpY3gpKYg4KSq4KSw4KWA4KSV4KWN4KS34KSj4KS44KWH4KS14KS+KSDgpIngpJrgpY3gpJog4KS44KWN4KSk4KSw4KSV4KWLIOCkh+CkqOCljeCkn+CksOCkq+Clh+CkuOCksuCkvuCkiCDgpKrgpJXgpY3gpJXgpL4g4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpLjgpK7gpL7gpKTgpYAg4KSw4KS+4KSW4KWN4KSo4KWH4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpJXgpLngpL/gpLLgpY3gpK/gpYgg4KSG4KS14KS24KWN4KSv4KSVIOCkquCksOCljeCkqOClhyDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRWcG5TZXJ2aWNlIiBtc2dpZD0iNDcwODU5NjAyMTE2MTQ3MzI1NSI+IlZQTiDgpLjgpYfgpLXgpL7gpLjgpIHgpJcg4KSs4KS+4KSB4KSn4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFZwblNlcnZpY2UiIG1zZ2lkPSIyMDY3ODQ1NTY0NTgxNjkzOTA1Ij4i4KSP4KSVIFZwbiDgpLjgpYfgpLXgpL7gpJXgpYsg4KSJ4KSa4KWN4KSaIOCkuOCljeCkpOCksOCkleCliyDgpJXgpYHgpLDgpL7gpJXgpL7gpKjgpYDgpLLgpL7gpIgg4KSq4KSV4KWN4KSV4KS+IOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KS44KSu4KS+4KSk4KWAIOCksOCkvuCkluCljeCkqOClh+CksuClhyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSV4KS54KS/4KSy4KWN4KSv4KWIIOCkhuCkteCktuCljeCkr+CklSDgpKrgpLDgpY3gpKjgpYcg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kV2FsbHBhcGVyIiBtc2dpZD0iODcxNjQwMDI3OTkzNzg1NjQ2MiI+IuCkj+CkieCkn+CkviDgpLXgpL7gpLLgpKrgpYfgpKrgpLDgpK7gpL4g4KSs4KS+4KSB4KSn4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFdhbGxwYXBlciIgbXNnaWQ9IjcxMDg0Mjg2OTI1OTU0OTE2NjgiPiLgpLXgpL7gpLLgpKrgpYfgpKrgpLDgpJXgpYsg4KSu4KS+4KSl4KS/4KSy4KWN4KSy4KWLIOCkuOCljeCkpOCksOCkleCliyDgpIfgpKjgpY3gpJ/gpLDgpKvgpYfgpLjgpK7gpL4g4KSs4KS+4KSB4KSn4KWN4KSoIOCkp+CkvuCksOCkleCksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSV4KS54KS/4KSy4KWN4KSv4KWIIOCkhuCkteCktuCljeCkr+CklSDgpKrgpLDgpY3gpKbgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRSZW1vdGVWaWV3cyIgbXNnaWQ9IjU2OTc5ODc3NTk4OTczNjcwOTkiPiLgpI/gpIngpJ/gpL4g4KS14KS/4KSc4KWH4KSfIOCkuOClh+CkteCkvuCkuOCkgeCklyDgpLjgpILgpJfgpKDgpL/gpKQg4KS54KWB4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFJlbW90ZVZpZXdzIiBtc2dpZD0iNDcxNzk4NzgxMDEzNzY5MjU3MiI+IuCkj+CkieCkn+CkviDgpLXgpL/gpJzgpYfgpJ8g4KS44KWH4KS14KS+4KSV4KWLIOCkieCkmuCljeCkmiDgpLjgpY3gpKTgpLDgpJXgpYsg4KSH4KSo4KWN4KSf4KSw4KSr4KWH4KS44KSy4KS+4KSIIOCkquCkleCljeCkleCkviDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkuOCkruCkvuCkpOClgCDgpLDgpL7gpJbgpY3gpKjgpYfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpKfgpL7gpLDgpKMg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkleCkueCkv+CksuCljeCkr+CliCDgpIbgpLXgpLbgpY3gpK/gpJUg4KSq4KSw4KWN4KSo4KWHIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZERldmljZUFkbWluIiBtc2dpZD0iODcwNDk4NjE2MzcxMTQ1NTAxMCI+IuCkieCkquCkleCksOCko+CkleCliyDgpKrgpY3gpLDgpKzgpKjgpY3gpKfgpLjgpIHgpJcg4KSF4KSo4KWN4KSk4KSw4KSV4KWN4KSw4KS/4KSv4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9IjU2OTcxNTQxOTU0MzkwNzkzMCI+IuCkieCkquCkleCksOCkoyDgpKrgpY3gpLDgpLbgpL7gpLjgpJUg4KSy4KS+4KSIIOCkhuCktuCkryDgpKrgpKDgpL7gpIngpKgg4KS44KSu4KS+4KSk4KWAIOCksOCkvuCkluCljeKAjeCkqOClh+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkleCkueCkv+CksuCljeCkr+CliCDgpKrgpKjgpYAg4KSG4KS14KS24KWN4KSv4KSVIOCkquCksOCljeCkpuCliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNDI0ODgyODkwMDA0NTgwODcyMiI+IuCkj+CkieCkn+CkviDgpIngpKrgpJXgpLDgpKMg4KS14KWN4KSv4KS14KS44KWN4KSl4KS+4KSq4KSVIOCkpeCkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KS14KS+IOCkueCkn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZURldmljZUFkbWlucyIgbXNnaWQ9IjUwMjU2MDgxNjc3MDk5NDI0ODUiPiLgpLngpYvgpLLgpY3gpKHgpLDgpLLgpL7gpIgg4KS44KSV4KWN4KSw4KS/4KSvIOCkieCkquCkleCksOCkoyDgpLXgpY3gpK/gpLXgpLjgpY3gpKXgpL7gpKrgpJXgpLngpLDgpYIg4KSl4KSqIOCkl+CksOCljeCkqCDgpLXgpL4g4KS54KSf4KS+4KSJ4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSV4KS54KS/4KSy4KWN4KSv4KWIIOCkquCkqOCkvyDgpIbgpLXgpLbgpY3gpK/gpJUg4KSo4KS54KWB4KSoIOCkuOCkleCljeCkpuCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0T3JpZW50YXRpb24iIG1zZ2lkPSIzMzY1OTQ3NzE3MTYzODY2ODQ0Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCkheCkreCkv+CkruClgeCkluCkv+CkleCksOCkoyDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0T3JpZW50YXRpb24iIG1zZ2lkPSIzMDQ2MTI2NjE5MzE2NjcxNDc2Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkleClgeCkqOCliCDgpKrgpKjgpL8g4KS44KSu4KSv4KSu4KS+IOCkuOCljeCkleCljeCksOCkv+CkqOCkleCliyDgpKrgpLDgpL/gpJXgpY3gpLDgpK7gpKMg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkleCkueCkv+CksuClhyDgpKrgpKjgpL8g4KSG4KS14KS24KWN4KSv4KSVIOCkqOCkquCksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFBvaW50ZXJTcGVlZCIgbXNnaWQ9IjkxNzUzNzE2MTMzMjI1NjI5MzQiPiLgpLjgpJngpY3gpJXgpYfgpKTgpJUg4KSX4KSk4KS/IOCkrOCkpuCksuCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFBvaW50ZXJTcGVlZCIgbXNnaWQ9IjY4NjY1NjMyMzQyNzQxMDQyMzMiPiLgpJXgpYHgpKjgpYgg4KSq4KSo4KS/IOCkuOCkruCkr+CkruCkviDgpK7gpL7gpIngpLgg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqCDgpLXgpL4g4KSf4KWN4KSw4KS+4KSV4KSq4KWN4KSv4KS+4KShIOCkuOCkguCkleClh+CkpOCkleCkleCliyDgpJfgpKTgpL8g4KSs4KSm4KSy4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkleCkueCkv+CksuCljeCkr+CliCDgpKjgpJrgpL7gpLngpL/gpKgg4KS44KSV4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9IjQ3Nzg3MzE3MDM2MDA5MDkzNDAiPiLgpJXgpL/gpKzgpYvgpLDgpY3gpKEg4KSy4KWH4KSG4KSJ4KSfIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9Ijg0ODAwMTY3NzExMzQxNzU4NzkiPiLgpJXgpL/gpKzgpYvgpLDgpY3gpKEg4KSy4KWH4KSG4KSJ4KSf4KSy4KS+4KSIIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KS44KS+4KSv4KSmIOCkleCkueCkv+CksuCljeCkr+CliCDgpIbgpLXgpLbgpY3gpK/gpJUg4KSq4KSw4KWN4KSo4KWHIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2lnbmFsUGVyc2lzdGVudFByb2Nlc3NlcyIgbXNnaWQ9IjQ1MzkwMDI5OTE5NDczNzY2NTkiPiJMaW51eCDgpLjgpILgpJXgpYfgpKTgpLngpLDgpYIg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkquCkoOCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0ODk2OTkyMDc5MTgyNjQ5MTQxIj4i4KS44KSs4KWIIOCkmuCksuCkv+CksOCkueClh+CkleCkviDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL7gpLngpLDgpYLgpK7gpL4g4KSq4KSg4KS+4KSH4KSP4KSV4KS+IOCkuOCkguCkleClh+CkpOCksuCkvuCkiCDgpIXgpKjgpYHgpLDgpYvgpKcg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyc2lzdGVudEFjdGl2aXR5IiBtc2dpZD0iODg0MTExMzYyNzk1NTU2MzkzOCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiDgpJzgpLngpL/gpLLgpYcg4KSq4KSo4KS/IOCkmuCksuCljeCkqOClhyDgpKzgpKjgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wZXJzaXN0ZW50QWN0aXZpdHkiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg1MjUxODkyNzIzMjkwODYxMzciPiLgpK/gpLjgpJXgpYsg4KSG4KSr4KWN4KSo4KWIIOCkruClh+CkruCli+CksOClgOCkruCkviDgpKbgpYPgpKIg4KSt4KSP4KSV4KWL4KSV4KWLIOCkheCkguCktiDgpKzgpKjgpL7gpIngpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CksuCkvuCkiCDgpKLgpL/gpLLgpYsg4KSX4KSw4KS+4KSJ4KSB4KSm4KWIIOCkl+CksOClh+CkleCkviDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkuOClgOCkruCkv+CkpCDgpK7gpL7gpKTgpY3gpLDgpL7gpK7gpL4g4KSv4KS44KSy4KWHIOCkruClh+CkruCli+CksOClgCDgpIngpKrgpLLgpKzgpY3gpKcg4KSX4KSw4KS+4KSJ4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcnNpc3RlbnRBY3Rpdml0eSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQzODQ3NjAwNDc1MDgyNzgyNzIiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSu4KWH4KSu4KWL4KSw4KWA4KSu4KS+IOCkhuCkq+CliOCkguCkleCliyDgpKjgpL/gpLDgpKjgpY3gpKTgpLDgpJXgpYsg4KSF4KSC4KS2IOCkrOCkqOCkvuCkieCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpKvgpYvgpKjgpLLgpL7gpIgg4KSi4KS/4KSy4KS+IOCkrOCkqOCkvuCkj+CksCDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSu4KS+IOCkruClh+CkruCli+CksOClgCBTSU3gpL/gpKQg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkpuCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSIxODQzODUxMjk1Mzc3MDU5MzgiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KSu4KWH4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSI3NDExNDgwMjc1MTY3MjA1MDgxIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkj+CkqOCljeCkoeCljeCksOCli+Ckh+CkoSDgpKrgpY3gpK/gpL7gpJXgpYfgpJzgpLngpLDgpYIg4KSu4KWH4KSf4KS+4KSJ4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpK/gpLjgpLLgpL7gpIgg4KSu4KS54KSk4KWN4KSk4KWN4KS14KSq4KWC4KSw4KWN4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiDgpK7gpYfgpJ/gpL7gpIngpKgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NsZWFyQXBwVXNlckRhdGEiIG1zZ2lkPSIyNzQxMDkxOTE4NDU4NDI3NTYiPiLgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSV4KWLIOCkoeClh+Ckn+CkviDgpK7gpYfgpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcFVzZXJEYXRhIiBtc2dpZD0iNDYyNTMyMzY4NDEyNTQ1OTQ4OCI+IuCkquCljeCksOCkr+Ckl+CkleCksOCljeCkpOCkviDgpKHgpYfgpJ/gpL4g4KS54KSf4KS+4KSJ4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZWxldGVDYWNoZUZpbGVzIiBtc2dpZD0iMzEyODY2NTU3MTgzNzQwODY3NSI+IuCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSV4KWN4KSv4KS+4KS44KS54KSw4KWCIOCkruClh+Ckn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RlbGV0ZUNhY2hlRmlsZXMiIG1zZ2lkPSIzODEyOTk4NTk5MDA2NzMwMTk2Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkleCljeCkr+CkvuCkuCDgpKvgpL7gpIfgpLLgpLngpLDgpYIg4KSu4KWH4KSf4KS+4KSJ4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFBhY2thZ2VTaXplIiBtc2dpZD0iNzQ3MjkyMTc2ODM1Nzk4MTk4NiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSg4KS+4KSJ4KSB4KSV4KWLIOCkruCkvuCkquCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9IjM5MjEwNjgxNTQ0MjA3MzgyOTYiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSv4KS44KSV4KWLIOCkleCli+CkoSwg4KSh4KWH4KSf4KS+LCDgpLAg4KSV4KWN4KSv4KS+4KS4IOCkhuCkleCkvuCksOCkueCksOClgiDgpKrgpYHgpKjgpIPgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2luc3RhbGxQYWNrYWdlcyIgbXNnaWQ9IjIxOTkxMjg0ODI4MjAzMDY5MjQiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KS44KS/4KSn4KWIIOCkuOCljeCkpeCkvuCkquCkqOCkviDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnN0YWxsUGFja2FnZXMiIG1zZ2lkPSI1NjI4NTMwOTcyNTQ4MDcxMjg0Ij4i4KSo4KSv4KS+4KSBIOCkuOCljeCkpeCkvuCkquCkqOCkviDgpJfgpLDgpY3gpKgg4KS14KS+IOCkj+CkqOCljeCkoeCljeCksOCli+Ckh+CkoSDgpKrgpY3gpK/gpL7gpJXgpYfgpJzgpLngpLDgpYIg4KSF4KSm4KWN4KSv4KS+4KS14KSn4KS/4KSVIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkr+CkuOCksuCkvuCkiCDgpK7gpKjgpKrgpLDgpYAg4KSw4KWC4KSq4KSu4KS+IOCktuCkleCljeCkpOCkv+CktuCkvuCksuClgCDgpIXgpKjgpYHgpK7gpKTgpL/gpLngpLDgpYIg4KSt4KSP4KSV4KS+IOCkqOCkr+CkvuCkgSDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KSl4KSq4KWN4KSoIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jbGVhckFwcENhY2hlIiBtc2dpZD0iNzQ4NzI3OTM5MTcyMzUyNjgxNSI+IuCkuOCkrOCliCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSV4KWN4KSv4KS+4KS4IOCkoeClh+Ckn+CkviDgpK7gpYfgpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4OTc0NjQwODcxOTQ1NDM0NTY1Ij4i4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpJXgpY3gpK/gpL7gpLgg4KSh4KS+4KSH4KSw4KWH4KSV4KWN4KSf4KSw4KWA4KS54KSw4KWC4KSu4KS+IOCkq+CkvuCkh+CksuCkueCksOClgiDgpLngpJ/gpL7gpI/gpLAg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSV4KWLIOCkreCko+CljeCkoeCkvuCksOCkoyDgpJbgpL7gpLLgpYAg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkieCkqOClgOCkueCksOClguCksuClhyDgpIbgpKvgpY3gpKjgpYsg4KSh4KWH4KSf4KS+IOCkquClgeCkqOCkg+CkrOCkueCkvuCksuClgCDgpJfgpLDgpY3gpKgg4KSq4KSw4KWN4KSo4KWHIOCkueClgeCkqOCkvuCksuClhyDgpK/gpLjgpLLgpYcg4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpLjgpY3gpJ/gpL7gpLDgpY3gpJ8g4KS54KWB4KSoIOCkqOCkv+CkleCliCDgpKLgpL/gpLLgpYsg4KSX4KSw4KS+4KSJ4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NsZWFyQXBwQ2FjaGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNDU5NDQxMDIxOTU2NDM2Nzc5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSV4KWN4KSv4KS+4KS4IOCkoeCkvuCkh+CksOClh+CkleCljeCkn+CksOClgOCkruCkviDgpKvgpL7gpIfgpLLgpLngpLDgpYIg4KSu4KWH4KSf4KS+4KSP4KSwIOCkq+Cli+CkqCDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSW4KS+4KSy4KWAIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkrOCkouClgCDgpKLgpL/gpLLgpL4g4KS44KWB4KSw4KWBIOCkl+CksOCkvuCkieCkgeCkmyDgpJXgpL/gpKjgpJXgpL8g4KSk4KS/4KSo4KWA4KS54KSw4KWC4KSy4KWHIOCkhuCkq+CljeCkqOCliyDgpKHgpYfgpJ/gpL4g4KSq4KWB4KSo4KSD4KSq4KWN4KSw4KS+4KSq4KWN4KSk4KS/IOCkl+CksOCljeCkqCDgpIbgpLXgpLbgpY3gpK/gpJUg4KSq4KSw4KWN4KSo4KWHIOCkueClgeCkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW92ZVBhY2thZ2UiIG1zZ2lkPSIzMjg5ODkwMjcxNjQ1OTIxNDExIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkuOCljeCksOCli+CkpOCkueCksOClgiDgpLjgpL7gpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3ZlUGFja2FnZSIgbXNnaWQ9IjMxOTU2MjIxNzc3ODI0NDUyNCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpLjgpY3gpLDgpYvgpKTgpLngpLDgpYIg4KSG4KSo4KWN4KSk4KSw4KS/4KSV4KSs4KS+4KSfIOCkrOCkvuCkueCljeCkryDgpK7gpYfgpKHgpL/gpK/gpL7gpK7gpL4g4KSwIOCkteCkv+CkquCksOCkv+CkpOCkruCkviDgpLLgpYjgpJzgpL7gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRMb2dzIiBtc2dpZD0iNjYxNTc3ODU0MzE5ODk2NzYxNCI+IuCkuOCkguCkteClh+CkqOCktuClgOCksiDgpLLgpJcg4KSh4KWH4KSf4KS+IOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MjA2MTMxMzI5MzQ1NTE1MSI+IuCkquCljeCksOCko+CkvuCksuClgOCkleCkviDgpLXgpL/gpK3gpL/gpKjgpY3gpKgg4KSr4KS+4KSH4KSy4KS54KSw4KWC4KSs4KS+4KSfIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpK7gpY3gpK3gpL7gpLXgpY3gpK8g4KSw4KWC4KSq4KSu4KS+IOCkteCljeCkr+CkleCljeCkpOCkv+Ckl+CkpCDgpLAg4KSo4KS/4KSc4KWAIOCkuOClguCkmuCkqOCkvuCkuOCkueCkv+CkpCDgpKTgpKrgpL7gpIjgpIEg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KS44KSB4KSXIOCkleClhyDgpJfgpLDgpL/gpLDgpLngpKjgpYEg4KSt4KSP4KSV4KWLIOCkmyDgpK3gpKjgpY3gpKjgpYcg4KSs4KS+4KSw4KWH4KSV4KWLIOCkuOCkvuCkp+CkvuCksOCkoyDgpLjgpYLgpJrgpKjgpL4g4KSq4KSk4KWN4KSk4KS+IOCksuCkl+CkvuCkieCkqCDgpK/gpLjgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjA2MzQzODE0MDI0MTU2MDQ0MyI+IuCkquCljeCksOCko+CkvuCksuClgOCkleCkviDgpLXgpL/gpK3gpL/gpKjgpY3gpKgg4KSr4KS+4KSH4KSy4KS54KSw4KWC4KSs4KS+4KSfIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpK7gpY3gpK3gpL7gpLXgpY3gpK8g4KSw4KWC4KSq4KSu4KS+IOCkteCljeCkr+CkleCljeCkpOCkv+Ckl+CkpCDgpLAg4KSo4KS/4KSc4KWAIOCkuOClguCkmuCkqOCkvuCkuOCkueCkv+CkpCDgpKTgpKrgpL7gpIjgpIEg4KSr4KWL4KSo4KS44KSB4KSXIOCkleClhyDgpJfgpLDgpL/gpLDgpLngpKjgpYEg4KSt4KSP4KSV4KWLIOCkmyDgpK3gpKjgpY3gpKjgpYcg4KSs4KS+4KSw4KWH4KSV4KWLIOCkuOCkvuCkp+CkvuCksOCkoyDgpLjgpYLgpJrgpKjgpL4g4KSq4KSk4KWN4KSk4KS+IOCksuCkl+CkvuCkieCkqCDgpK/gpLjgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjcxNTgwNTU1NTgyMzg4MTgxOCI+IuCkquCkm+CkvuCkoeCkvyDgpKzgpJzgpL7gpIngpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkleClgeCkqOCliCDgpK7gpL/gpKHgpL/gpK/gpL4g4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI4MjgzOTEyNDg4NDMzMTg5MDEwIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkquCljeCksuClh+CkrOCljeCkr+CkvuCklSDgpKHgpL/gpJXgpYvgpKEg4KSX4KSw4KWN4KSoIOCkleClgeCkqOCliCDgpKrgpKjgpL8g4KS44KWN4KSl4KS+4KSq4KS/4KSkIOCkruCkv+CkoeCkv+Ckr+CkviDgpKHgpL/gpJXgpYvgpKHgpLAg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1sYWJfbWFuYWdlQ2FDZXJ0aWZpY2F0ZXMgKDE2NzgzOTE4OTY3ODY4ODIwMTQpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGVybWRlc2NfbWFuYWdlQ2FDZXJ0aWZpY2F0ZXMgKDQwMTU2NDQwNDcxOTY5MzcwMTQpIC0tPgorICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RpYWdub3N0aWMiIG1zZ2lkPSI4MDc2NzQzOTUzOTA4MDAwMzQyIj4iZGlhZyDgpJXgpYsg4KS44KWN4KS14KS+4KSu4KS/4KSk4KWN4KS14KSu4KS+IOCksOCkueClh+CkleCliyDgpLjgpILgpLjgpL7gpKfgpKjgpLngpLDgpYLgpK7gpL4g4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNL+CksuClh+CkluCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RpYWdub3N0aWMiIG1zZ2lkPSI2NjA4Mjk1NjkyMDAyNDUyMjgzIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIGRpYWcg4KS44KSu4KWC4KS54KSm4KWN4KS14KS+4KSw4KS+IOCkuOCljeCkteCkvuCkruCkv+CkpOCljeCktSDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSV4KWB4KSo4KWIIOCkquCkqOCkvyDgpLjgpY3gpLDgpYvgpKTgpLngpLDgpYLgpK7gpL4g4KSq4KSi4KWN4KSoIOCksCDgpLLgpYfgpJbgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkmzsg4KSJ4KSm4KS+4KS54KSw4KSj4KSV4KWLIOCksuCkvuCkl+CkvywgL2RldiAg4KSu4KS+IOCkq+CkvuCkh+CksuCkueCksOClguClpCDgpK/gpLjgpLLgpYcg4KS44KSu4KWN4KSt4KS14KSk4KSDIOCkquCljeCksOCko+CkvuCksuClgCDgpLjgpY3gpKXgpL/gpLDgpKTgpL4g4KSwIOCkuOClgeCksOCkleCljeCkt+CkvuCkruCkviDgpKrgpY3gpLDgpK3gpL7gpLUg4KSq4KS+4KSw4KWN4KSoIOCkuOCkleCljeCkpuCkm+ClpCDgpK/gpYsg4KSV4KWH4KS14KSyIOCkqOCkv+CksOCljeCkruCkvuCkpOCkviDgpLXgpL4g4KS44KSC4KSa4KS+4KSy4KSV4KSm4KWN4KS14KS+4KSw4KS+IOCkueCkvuCksOCljeCkoeCkteClh+Ckr+CksC3gpKjgpL/gpLDgpY3gpKbgpL/gpLfgpY3gpJ/gpJXgpYsg4KSy4KS+4KSX4KS/IOCkquCljeCksOCkr+Cli+CklyDgpLngpYHgpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VDb21wb25lbnRTdGF0ZSIgbXNnaWQ9IjYzMzU1NzY3NzU3MTEwOTU5MzEiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSF4KSC4KS24KS54KSw4KWCIOCkuOCkleCljeCkt+CkriDgpLXgpL4g4KSF4KSV4KWN4KS34KSuIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUNvbXBvbmVudFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4ODg3NDM1NzQwOTgyMjM3Mjk0Ij4i4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpLjgpJXgpY3gpLfgpK4g4KSbIOCkteCkviDgpJvgpYjgpKgg4KSt4KSo4KWN4KSo4KWHIOCkleClgeCksOCkvuCkleCliyDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK7gpLngpKTgpY3gpKTgpY3gpLXgpKrgpYLgpLDgpY3gpKMg4KSr4KWL4KSoIOCkuOCkleCljeCkt+CkruCkpOCkviDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkheCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpY3gpKgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpJvgpKjgpY3gpaQg4KSv4KWLIOCkheCkqOClgeCkruCkpOCkv+CkuOCkgeCkl+CliCDgpLngpYvgpLjgpL/gpK/gpL7gpLDgpYAg4KSF4KSq4KSo4KS+4KSJ4KSo4KWBIOCkquCksOCljeCkmywg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkteCkv+Ckt+CkryDgpLjgpYLgpJrgpYDgpK7gpL4g4KSq4KWN4KSw4KSv4KWL4KSXIOCkqOCkueClgeCkqOClhywg4KSF4KS44KSC4KSX4KSkLCDgpIXgpLjgpY3gpKXgpL/gpLAg4KSF4KS14KS44KWN4KSl4KS+IOCkreCkj+CkleCliyDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KS54KWB4KSo4KWHIOCkuOCkruCljeCkreCkvuCkteCkqOCkviDgpLngpYHgpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE4MjcyMzI0ODQ0MTY1MDU2MTUiPiLgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCkheCkguCktiDgpLjgpJXgpY3gpLfgpK4g4KSbIOCkteCkviDgpJvgpYjgpKgg4KSt4KSo4KWN4KSo4KWH4KSu4KS+IOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkruCkueCkpOCljeCkpOCljeCkteCkquClguCksOCljeCkoyDgpKvgpYvgpKgg4KS44KSV4KWN4KS34KSu4KSk4KS+IOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSF4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCljeCkqCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCDgpK/gpYsg4KSF4KSo4KWB4KSu4KSk4KS/4KS44KSB4KSX4KWIIOCkueCli+CkuOCkv+Ckr+CkvuCksOClgCDgpIXgpKrgpKjgpL7gpIngpKjgpYEg4KSq4KSw4KWN4KSbLCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KS14KS/4KS34KSvIOCkuOClguCkmuClgOCkruCkviDgpKrgpY3gpLDgpK/gpYvgpJcg4KSo4KS54KWB4KSo4KWHLCDgpIXgpLjgpILgpJfgpKQsIOCkheCkuOCljeCkpeCkv+CksCDgpIXgpLXgpLjgpY3gpKXgpL4g4KSt4KSP4KSV4KWLIOCkquCljeCksOCkvuCkquCljeCkpCDgpLngpYHgpKjgpYcg4KS44KSu4KWN4KSt4KS+4KS14KSo4KS+IOCkueClgeCkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ3JhbnRSZXZva2VQZXJtaXNzaW9ucyIgbXNnaWQ9IjQ2MjczMTUzNTEwOTM1MDg3OTUiPiLgpIXgpKjgpYHgpK7gpKTgpL/gpLngpLDgpYIg4KSq4KWN4KSw4KSm4KS+4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSDgpLXgpL4g4KSw4KSm4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dyYW50UmV2b2tlUGVybWlzc2lvbnMiIG1zZ2lkPSI0MDg4NjQyNjU0MDg1ODUwNjYyIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkr+CliyDgpLXgpL4g4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSo4KS/4KSw4KWN4KSm4KS/4KS34KWN4KSfIOCkuOCljeCkteClgOCkleClg+CkpOCkv+CkueCksOClgiDgpKrgpY3gpLDgpKbgpL7gpKgg4KSX4KSw4KWN4KSoIOCkteCkviDgpLDgpKbgpY3gpKYg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpK/gpYsg4KSk4KSq4KS+4KSI4KSC4KSy4KWHIOCkheCkqOClgeCkruCkpOCkvyDgpKrgpY3gpLDgpKbgpL7gpKgg4KSo4KSX4KSw4KWN4KSo4KWB4KSt4KSP4KSV4KS+IOCkuOClgeCkteCkv+Ckp+CkvuCkueCksOClguCkruCkviDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkpuCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0UHJlZmVycmVkQXBwbGljYXRpb25zIiBtc2dpZD0iODQ2MzE4MTYyODY5NTM5NjM5MSI+IuCkteCkv+CktuClh+CktyDgpLDgpYLgpKrgpK7gpL4g4KSu4KS+4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiDgpLjgpYfgpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJlZmVycmVkQXBwbGljYXRpb25zIiBtc2dpZD0iNDk3Mzk4Njc2MjI0MTc4MzcxMiI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpK7gpKjgpKrgpLDgpY3gpKjgpYcg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSa4KSy4KS/4KSw4KS54KWH4KSV4KS+IOCkpOClgCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpLngpLDgpYLgpLLgpL7gpIgg4KSa4KWB4KSq4KSa4KS+4KSqIOCksOClguCkquCkruCkviDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljSwg4KSk4KSq4KS+4KSI4KSB4KSs4KS+4KSfIOCkqOCkv+CknOClgCDgpKHgpYfgpJ/gpL4g4KS44KSC4KSV4KSy4KSoIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSt4KSH4KSw4KS54KWH4KSV4KWLIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpY3gpKrgpYHgpKsg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTZXR0aW5ncyIgbXNnaWQ9IjIyMjYxOTUyOTA5NTUyMjQ3MzAiPiLgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNldHRpbmdzIiBtc2dpZD0iNzc3NTcyMzQ0MTU1ODkwNzE4MSI+IuCkquCljeCksOCko+CkvuCksuClgOCkleCkviDgpLjgpYfgpJ/gpL/gpJkg4KSh4KWH4KSf4KS+4KSy4KS+4KSIIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KS44KS+4KSv4KSmIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpKrgpY3gpLDgpKPgpL7gpLLgpYDgpJXgpYsg4KSV4KSo4KWN4KSr4KS/4KSX4KSw4KWH4KS44KSo4KSy4KS+4KSIIOCkleCljeCkt+CkpOCkvyDgpKrgpYHgpLDgpY3igI3gpK/gpL7gpIngpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNlY3VyZVNldHRpbmdzIiBtc2dpZD0iMjA0Njc2MjUxODc2NzE4Mjg4Ij4i4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkquCljeCksOCko+CkvuCksuClgCDgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSI4MTU5NTM1NjEzMDIwMTM3MzkxIj4i4KSq4KWN4KSw4KSj4KS+4KSy4KWA4KSV4KWLIOCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpLjgpYfgpJ/gpL/gpJkg4KSh4KWH4KSf4KS+IOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSu4KS+4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpYsg4KSy4KS+4KSX4KS/IOCkueCli+Ckh+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIyMTQ5NDI2NjY0MjI2MTUyMTg1Ij4iR29vZ2xlIOCkuOClh+CkteCkviDgpKjgpJXgpY3gpLjgpL4g4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlR3NlcnZpY2VzIiBtc2dpZD0iMTI4NzMwOTQzNzYzODM4MDIyOSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCBHb29nbGUg4KS44KWH4KS14KS+IOCkqOCkleCljeCkuOCkvuCkueCksOClgiDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkpuCljeCkteCkvuCksOCkvuCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpYsg4KSy4KS+4KSX4KS/IOCkueCli+Ckh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIG1zZ2lkPSI1MzEyOTY1NTY1OTg3ODAwMDI1Ij4i4KS44KWN4KSf4KS+4KSw4KWN4KSf4KSF4KSq4KSu4KS+IOCkmuCksuCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVCb290Q29tcGxldGVkIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3MzkwMzA0NjY0MTE2ODgwNzA0Ij4i4KSG4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkquCljeCksOCko+CkvuCksuClgCDgpKzgpYHgpJ8g4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+IOCkquClguCksOCljeCkoyDgpLngpYHgpKjgpYcg4KSs4KS/4KSk4KS/4KSV4KWIIOCkhuCkq+CliOCksuCkvuCkiCDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSo4KWHIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS44KSy4KWHIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSo4KSu4KS+IOCkouCkv+CksuCkviDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSbIOCksCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KSu4KSX4KWN4KSw4KSu4KS+IOCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpLjgpKfgpYjgpIEg4KSa4KS+4KSy4KWBIOCkl+CksOClh+CksCDgpKLgpL/gpLLgpL4g4KSs4KSo4KS+4KSJ4KSB4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MTM5NTA1ODkxMDI2MTc1MDQiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkrOClgeCknyDgpJfgpLDgpYAg4KS44KSV4KWH4KSq4KSb4KS/IOCknOCkpOCkvyDgpLjgpJXgpY3gpKbgpYsg4KSa4KS+4KSB4KSh4KWLIOCkhuCkq+CliOCkguCkruCkviDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS44KSy4KWHIOCkq+Cli+CkqCDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSo4KSu4KS+IOCkouCkv+CksuCkviDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSbIOCksCDgpIXgpKjgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KSu4KSX4KWN4KSw4KSu4KS+IOCkq+Cli+CkqCDgpLjgpKfgpYjgpIEg4KSa4KS+4KSy4KWBIOCkl+CksOClh+CksCDgpKLgpL/gpLLgpL4g4KSs4KSo4KS+4KSJ4KSB4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RTdGlja3kiIG1zZ2lkPSI3OTE5MTI2MzcyNjA2ODgxNjE0Ij4i4KS44KWN4KSf4KS/4KSV4KS/IOCkquCljeCksOCkuOCkvuCksOCkoyDgpKrgpKDgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RTdGlja3kiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijc3NDk3NjA0OTQzOTk5MTU2NTEiPiLgpJTgpKrgpJrgpL7gpLDgpL/gpJUg4KSq4KWN4KSw4KS44KS+4KSw4KSj4KSy4KS+4KSIIOCkquCkoOCkvuCkieCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSP4KSJ4KSf4KS+IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSbLCDgpJzgpYHgpKgg4KSq4KWN4KSw4KS44KS+4KSw4KSjIOCkuOCkruCkvuCkquCljeCkpCDgpK3gpI/gpKrgpJvgpL8g4KSs4KS+4KSB4KSV4KWAIOCksOCkueCkqOCljeCkm+ClpCDgpIXgpKTgpY3gpK/gpL7gpKfgpL/gpJUg4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkp+Clh+CksOCliCDgpK7gpYfgpK7gpYvgpLDgpYAg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClh+CkleCliyDgpJXgpL7gpLDgpKPgpLLgpYcg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSy4KS+4KSIIOCkouCkv+CksuCliyDgpLAg4KSF4KS44KWN4KSl4KS/4KSwIOCkrOCkqOCkvuCkieCkqCDgpLjgpJXgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RTdGlja3kiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyODI1ODAzNzY0MjMyNDQ1MDkxIj4i4KSU4KSq4KSa4KS+4KSw4KS/4KSVIOCkquCljeCksOCkuOCkvuCksOCko+CksuCkvuCkiCDgpKrgpKDgpL7gpIngpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkj+CklSDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkmywg4KSc4KWB4KSoIOCkquCljeCksOCkuOCkvuCksOCkoyDgpLjgpK7gpL7gpKrgpY3gpKQg4KSt4KSP4KSq4KSb4KS/IOCkrOCkvuCkgeCkleClgCDgpLDgpLngpKjgpY3gpJvgpaQg4KSF4KSk4KWN4KSv4KS+4KSn4KS/4KSVIOCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpKfgpYfgpLDgpYgg4KSu4KWH4KSu4KWL4KSw4KWAIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpYfgpJXgpYsg4KSV4KS+4KSw4KSj4KSy4KWHIOCkq+Cli+CkqOCksuCkvuCkiCDgpKLgpL/gpLLgpYsg4KSwIOCkheCkuOCljeCkpeCkv+CksCDgpKzgpKjgpL7gpIngpKgg4KS44KSV4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ29udGFjdHMiIG1zZ2lkPSI4MzQ4NDgxMTMxODk5ODg2MTMxIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KS+IOCkuOCkruCljeCkquCksOCljeCkleCkueCksOClgiDgpKrgpKLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ29udGFjdHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjUyOTQ4NjY4NTY5NDExNDk2MzkiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSo4KS/4KSw4KWN4KSm4KS/4KS34KWN4KSfIOCkteCljeCkr+CkleCljeCkpOCkv+Ckl+CkpOCkuOCkgeCklyDgpIXgpKjgpY3gpK8g4KSk4KSw4KS/4KSV4KS+4KS54KSw4KWC4KSs4KS+4KSfIOCkleCksiDgpJfgpLDgpY3gpKjgpYEg4KSt4KSP4KSV4KS+LCDgpIfgpK7gpYfgpLIg4KSX4KSw4KWN4KSo4KWBIOCkreCkj+CkleCkviDgpLXgpL4g4KSF4KSo4KWN4KSk4KSw4KWN4KSV4KWN4KSw4KS/4KSv4KS+IOCkl+CksOCljeCkqOClgeCkreCkj+CkleCkviDgpIbgpLXgpYPgpKTgpL/gpLjgpLngpL/gpKTgpJXgpYsg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkruCkviDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSX4KSw4KS/4KSP4KSV4KS+IOCkuOCkruCljeCkquCksOCljeCkleCkueCksOClguCkleCliyDgpKHgpYfgpJ/gpL4g4KSq4KSi4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KWLIOCkheCkqOClgeCkruCkpOCkv+CksuClhyDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KS44KSu4KWN4KSq4KSw4KWN4KSVIOCkoeClh+Ckn+CkviDgpKzgpJrgpKQg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJssIOCksCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkpOCkquCkvuCkiOCkguCkleCliyDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSs4KS/4KSo4KS+IOCkuOCkruCljeCkquCksOCljeCklSDgpKHgpYfgpJ/gpL4g4KS44KS+4KSd4KWH4KSm4KS+4KSw4KWAIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ29udGFjdHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NDQwNjU0MTUyNDU3MzAwNjYyIj4i4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkteCkv+CktuClh+CktyDgpLXgpY3gpK/gpJXgpY3gpKTgpL/gpLngpLDgpYLgpLjgpIHgpJcg4KSF4KSw4KWN4KSV4KWLIOCkpOCksOCkv+CkleCkvuCkrOCkvuCknyDgpJXgpLIg4KSX4KSw4KWN4KSo4KWB4KSt4KSP4KSV4KS+LCDgpIfgpK7gpYfgpLIg4KSX4KSw4KWN4KSo4KWB4KSt4KSP4KSV4KS+IOCkteCkviDgpLjgpILgpJrgpL7gpLAg4KSX4KSw4KWN4KSo4KWB4KSt4KSP4KSV4KS+IOCkhuCkteClg+CkpOCkv+CkuOCkueCkv+CkpCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSr4KWL4KSo4KSu4KS+IOCkreCko+CljeCkoeCkvuCksOCkoyDgpK3gpI/gpJXgpL4g4KSh4KWH4KSf4KS+4KSV4KWLIOCkrOCkvuCksOClh+CkruCkviDgpKrgpKLgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CliyDgpIXgpKjgpYHgpK7gpKTgpL/gpLLgpYcg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpLjgpK7gpY3gpKrgpLDgpY3gpJUg4KSh4KWH4KSf4KS+IOCkrOCkmuCkpCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJssIOCksCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSc4KWN4KSe4KS+4KSoIOCkrOCkv+CkqOCkviDgpKjgpYgg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpLjgpL7gpK/gpKYg4KS44KSu4KWN4KSq4KSw4KWN4KSVIOCkoeClh+Ckn+CkviDgpLjgpL7gpJ3gpYfgpKbgpL7gpLDgpYAg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVDb250YWN0cyIgbXNnaWQ9IjUxMDc0OTIwODY0MTY3OTM1NDQiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpL4g4KS44KSu4KWN4KSq4KSw4KWN4KSV4KS54KSw4KWCIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNvbnRhY3RzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4OTcyNDM5MzI1MjE5NTM2MDIiPiLgpIXgpKjgpY3gpK8g4KSk4KSw4KS/4KSV4KS+4KSV4KS+IOCkhuCkteClg+CkpOCkv+CkueCksOClguCkuOCkgeCklyDgpJzgpYHgpKgg4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkleCksiwg4KSH4KSu4KWH4KSyLCDgpLXgpL4g4KS14KS/4KS24KWH4KS3IOCkuOCkruCljeCkquCksOCljeCklSDgpJfgpLDgpY3gpKjgpYHgpK3gpI/gpJXgpL7gpLjgpLngpL/gpKQg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkruCkviDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSt4KSP4KSV4KS+IOCkuOCkruCljeCkquCksOCljeCkleCkueCksOClguCkleCliyDgpKzgpL7gpLDgpYfgpJXgpYsg4KSh4KWH4KSf4KS+4KSy4KS+4KSIIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuCDgpIXgpKjgpYHgpK7gpKTgpL/gpLLgpYcg4KS44KSu4KWN4KSq4KSw4KWN4KSVIOCkoeClh+Ckn+CkvuCksuCkvuCkiCDgpK7gpYfgpJ/gpL7gpIngpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNvbnRhY3RzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTg5ODY5MjI0NjI1MTYzNTU4Ij4i4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkrOCkvuCksOCkruCljeCkrOCkvuCksCDgpJXgpLIg4KSX4KSw4KWH4KSV4KS+LCDgpIfgpK7gpYfgpLIg4KSX4KSw4KWH4KSV4KS+LCDgpLXgpL4g4KS14KS/4KS24KWH4KS3IOCkuOCkruCljeCkquCksOCljeCkleCkueCksOClguCkuOCkgeCklyDgpLjgpJ7gpY3gpJrgpL7gpLAg4KSX4KSw4KWH4KSV4KS+IOCkuOCkueCkv+CkpCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSr4KWL4KSo4KSu4KS+IOCkreCko+CljeCkoeCkvuCksOCkoyDgpJfgpLDgpYfgpJXgpL4g4KSk4KSq4KS+4KSI4KSB4KSV4KS+IOCkuOCkruCljeCkquCksOCljeCkleCkueCksOClgiDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CliyDgpIXgpKjgpYHgpK7gpKTgpL/gpLLgpYcg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkuOCkruCljeCkquCksOCljeCklSDgpKHgpYfgpJ/gpL4g4KSu4KWH4KSf4KS+4KSJ4KSoIOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENhbGxMb2ciIG1zZ2lkPSIzNDc4MTMzMTg0NjI0MTAyNzM5Ij4i4KSV4KSyIOCksuCklyDgpKrgpKLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsbExvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzcwMDY0NTE4NDg3MDc2MDI4NSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSV4KWLIOCkleCksiDgpLLgpJcsIOCkhuCkl+CkruCkqCDgpLAg4KSs4KS54KS/4KSw4KWN4KSX4KSu4KSoIOCkleCksuCkueCksOClgiDgpKzgpL7gpLDgpYcg4KSh4KWH4KSf4KS+IOCkuOCkueCkv+CkpOCkleCliyDgpJXgpLIg4KSy4KSXIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuCDgpIXgpKjgpYHgpK7gpKTgpL/gpLLgpYcg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpJXgpLIg4KSy4KSXIOCkoeClh+Ckn+CkvuCkueCksOClguCkleCliyDgpKzgpJrgpKQg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJssIOCksCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSs4KS/4KSo4KS+IOCkqOCliCDgpK/gpYsg4KSV4KSyIOCksuCklyDgpKHgpYfgpJ/gpL7gpLLgpL7gpIgg4KSF4KSw4KWC4KS44KSB4KSXIOCkuOCkvuCkneClh+CkpuCkvuCksCDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGxMb2ciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzc3NzI1Nzk2ODEzMjE3MjQ0Ij4i4KSt4KS/4KSk4KWN4KSwIOCkhuCkieCkqOClhyDgpLAg4KSs4KS+4KS54KS/4KSwIOCknOCkvuCkqOClhyDgpJXgpLLgpLngpLDgpYLgpLjgpLngpL/gpKQg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkq+CkqOCkleCliyDgpJXgpLIg4KSy4KSXIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCAg4KSv4KWLIOCkheCkqOClgeCkruCkpOCkv+CksuClhyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpL7gpIgg4KSk4KSq4KS+4KSI4KSB4KSV4KS+IOCkleCksiDgpLLgpJcg4KSh4KWH4KSf4KS+IOCkrOCkmuCkpCDgpJfgpLDgpY3gpKgg4KSm4KS/4KSo4KWN4KSbIOCksCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkpOCkquCkvuCkiOCkgeCksuClhyDgpKXgpL7gpLngpYgg4KSo4KSq4KS+4KSIIOCkleCksiDgpLLgpJcg4KSh4KWH4KSf4KS+4KSy4KS+4KSIIOCkuOCkvuCkneClh+CkpuCkvuCksOClgCDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUNhbGxMb2ciIG1zZ2lkPSI4NTUyMDQ1NjY0NzQzNDk5MzU0Ij4i4KSV4KSyIOCksuCklyDgpLLgpYfgpJbgpY3igI3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGxMb2ciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY2NjE4MDYwNjIyNzQxMTkyNDUiPiLgpIbgpJfgpK7gpKgg4KSk4KSl4KS+IOCkrOCkueCksOCljeCkl+CkruCkqCDgpKHgpYfgpJ/gpL7gpLjgpLngpL/gpKQg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkleCliyDgpJXgpLIg4KSy4KSX4KSV4KWLIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpK/gpLjgpLLgpL7gpIgg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkleCksiDgpLLgpJcg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqCDgpLXgpL4g4KSu4KWH4KSf4KS+4KSJ4KSoIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxsTG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjgzOTQxNzM2MzUyNzg3ODQyIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkpOCkquCkvuCkiOCkguCkleCliyDgpKvgpYvgpKjgpJXgpYsg4KSG4KSJ4KSo4KWHIOCksCDgpKzgpL7gpLngpL/gpLAg4KSc4KS+4KSo4KWHIOCkleCksuCkueCksOClguCkleCliyDgpKzgpL7gpLDgpYfgpJXgpYsg4KSh4KWH4KSf4KS+IOCkuOCkueCkv+CkpCDgpJXgpLIg4KSy4KSXIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkr+CkuOCksuCkvuCkiCDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSV4KSyIOCksuCklyDgpK7gpYfgpJ/gpL7gpIngpKgg4KS14KS+IOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRQcm9maWxlIiBtc2dpZD0iNDcwMTg4OTg1MjYxMjcxNjY3OCI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpIbgpKvgpY3gpKjgpYgg4KS44KSu4KWN4KSq4KSw4KWN4KSVIOCkleCkvuCksOCljeCkoSDgpKrgpKLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkUHJvZmlsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU0NjI0NzUxNTE4NDk4ODg4NDgiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkieCkquCkleCksOCko+CkruCkviDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSX4KSw4KS/4KSP4KSV4KS+IOCkteCljeCkr+CkleCljeCkpOCkv+Ckl+CkpCDgpKrgpY3gpLDgpYvgpKvgpL7gpIfgpLIg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSbLCDgpJzgpLjgpY3gpKTgpYgg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkqOCkvuCkriDgpLAg4KS44KSu4KWN4KSq4KSw4KWN4KSVIOCknOCkvuCkqOCkleCkvuCksOClgOClpCDgpK/gpLjgpJXgpYsg4KSu4KSk4KSy4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpKTgpKrgpL7gpIjgpILgpLLgpL7gpIgg4KSq4KS54KS/4KSa4KS+4KSoIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpJsg4KSwIOCkpOCkquCkvuCkiOCkguCkleCliyDgpKrgpY3gpLDgpYvgpKvgpL7gpIfgpLIg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkheCksOClguCksuCkvuCkiCDgpKrgpKDgpL7gpIngpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVByb2ZpbGUiIG1zZ2lkPSI5MDc3OTM2Mjg3NzczOTc2NDMiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSG4KSr4KWN4KSo4KWIIOCkuOCkruCljeCkquCksOCljeCklSDgpJXgpL7gpLDgpY3gpKEg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlUHJvZmlsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU1NTIwODQyOTQ1OTg0NjU4OTkiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSJ4KSq4KSV4KSw4KSj4KSu4KS+IOCkreCko+CljeCkoeCkvuCksCDgpK3gpI/gpJXgpYsg4KS14KWN4KSv4KS+4KSV4KWN4KSk4KS/4KSX4KSkIOCkquCljeCksOCli+Ckq+CkvuCkh+CksiDgpJzgpL7gpKjgpJXgpL7gpLDgpYAsIOCknOCkuOCljeCkpOCliCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSo4KS+4KSuIOCkteCkviDgpLjgpK7gpY3gpKrgpLDgpY3gpJUg4KSc4KS+4KSo4KSV4KS+4KSw4KWA4KSy4KS+4KSIIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKgg4KS14KS+IOCkpeCkquCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS44KSV4KWLIOCkruCkpOCksuCkrCDgpIXgpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkpOCkquCkvuCkiOCkgeCksuCkvuCkiCDgpJrgpL/gpKjgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWNIOCksCDgpLjgpL7gpK/gpKYg4KSF4KSo4KWN4KSv4KSy4KS+4KSIIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpKrgpY3gpLDgpYvgpKvgpL7gpIfgpLIg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkquCkoOCkvuCkieCkqCDgpLjgpJXgpY3gpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMjY4OTIwOTU2MTUyNDE5MTcwIj4i4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkuOCkvuCkruCkvuCknOCkv+CklSDgpLjgpY3gpJ/gpY3gpLDgpL/gpK4g4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQyNTU3MDYwMjcxNzIwNTA4NzIiPiLgpKTgpKrgpL7gpIjgpIEg4KSwIOCkpOCkquCkvuCkiOCkgeCkleCkviDgpLjgpL7gpKXgpYDgpLngpLDgpYLgpKzgpL7gpJ8g4KS44KS+4KSu4KS+4KSc4KS/4KSVIOCkheCkquCkoeClh+Ckn+CksuCkvuCkiCDgpKrgpLngpYHgpIHgpJog4KSwIOCkuOCkv+CkguCklSDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCknOCkvuCkqOCkleCkvuCksOClgCDgpLjgpL7gpJ3gpYfgpKbgpL7gpLDgpYAg4KSX4KSw4KWN4KSm4KS+IOCkuOCkvuCkteCkp+CkvuCkqCDgpLDgpLngpKjgpYHgpLngpYvgpLjgpY0gIC0tIOCkuOCkruCkvuCknOCkv+CklSDgpKjgpYfgpJ/gpLXgpLDgpY3gpJXgpLngpLDgpYLgpK7gpL4g4KSk4KSq4KS+4KSI4KSBIOCksCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KS44KS+4KSl4KWA4KSV4KWLICDgpKzgpL/gpJrgpK7gpL4g4KSt4KSP4KSV4KS+IOCkuOCkguCkmuCkvuCksOCksuCkvuCkiCDgpKrgpKLgpY3gpKgg4KS14KS/4KS24KWN4KS14KS+4KS44KSo4KWA4KSv4KSk4KS+IOCkrOClh+Ckl+CksOCliCDgpK/gpLjgpLLgpYcg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSo4KWL4KSfOiDgpK/gpYsg4KSF4KSo4KWB4KSu4KSk4KS/IOCkrOCksuCkquClguCksOCljeCkteCklSDgpLjgpKzgpYgg4KS44KS+4KSu4KS+4KSc4KS/4KSVIOCkqOClh+Ckn+CkteCksOCljeCkleCkueCksOClguCkruCkviDgpLjgpL7gpK/gpKYg4KSo4KSX4KSw4KWN4KSoIOCkuOCkleCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNTA0MTc5MjIyNDkzMjM1NjQ1Ij4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkuOCkvuCkruCkvuCknOCkv+CklSDgpKrgpY3gpLDgpLXgpL7gpLngpK7gpL4g4KSy4KWH4KSW4KWN4oCN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzMDg2NTU3NTUyMjA0MTE0ODQ5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkpOCkquCkvuCkiOCkguCkleCliyDgpLjgpL7gpKXgpYDgpLngpLDgpYLgpKzgpL7gpJ8g4KS44KS+4KSu4KS+4KSc4KS/4KSVIOCkheCkquCkoeClh+Ckn+CkueCksOClgiDgpKrgpY3gpLDgpKbgpLDgpY3gpLbgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCkuOCkvuCkneClh+CkpuCkvuCksOClgCDgpJfgpLDgpY3gpKjgpYcg4KSs4KWH4KSy4KS+4KSu4KS+IOCkueCli+CktuCkv+Ckr+CkvuCksCDgpLDgpLngpKjgpYHgpLngpYvgpLjgpY0gLS0g4KSv4KS44KSy4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpKjgpY3gpKbgpYfgpLbgpLngpLDgpYIg4KSo4KS/4KSw4KWN4KSu4KS+4KSjIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSbIOCknOClgeCkqCDgpLjgpL7gpKXgpYDgpKzgpL7gpJ8g4KSG4KSP4KSV4KWLIOCkpuClh+CkluCkv+CkqOCljeCkm+ClpCDgpJ/gpL/gpKrgpY3gpKrgpKPgpYA6IOCkr+CliyDgpIXgpKjgpYHgpK7gpKTgpL8g4KS44KSs4KWIIOCkuOCkvuCkruCkvuCknOCkv+CklSDgpLjgpJ7gpY3gpJzgpL7gpLLgpLngpLDgpYLgpK7gpL4g4KSy4KS+4KSX4KWCIOCkqOCkueClgeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDYWxlbmRhciIgbXNnaWQ9IjU5NzI3Mjc1NjAyNTc2MTIzOTgiPiLgpJfgpYvgpKrgpY3gpK8g4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCksCDgpKrgpL7gpKTgpY3gpLDgpYsg4KSY4KSf4KSo4KS+4KS54KSw4KWCIOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDYWxlbmRhciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDIxNjQ2MjA0OTA1NzY1ODcyMyI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSu4KS+IOCkreCko+CljeCkoeCkvuCksOCkoyDgpJfgpLDgpL/gpI/gpJXgpL4g4KSk4KWAIOCkuOCkvuCkpeClgOCkueCksOClgiDgpLXgpL4g4KS44KS54KSv4KWL4KSX4KWA4KS54KSw4KWCIOCkuOCkueCkv+CkpOCkleCliyDgpKrgpL7gpKTgpY3gpLDgpL7gpJXgpL4g4KSV4KS+4KSw4KWN4KSv4KSV4KWN4KSw4KSu4KS54KSw4KWCIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpJfgpYvgpKrgpKjgpYDgpK/gpKTgpL4g4KS14KS+IOCkuOCkguCkteClh+CkpuCkqOCktuClgOCksuCkpOCkviDgpKzgpL/gpKjgpL4g4KSq4KSo4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSq4KS+4KSk4KWN4KSw4KS+4KSV4KS+IOCkoeClh+Ckn+CkviDgpLjgpL7gpJ3gpYfgpKbgpL7gpLDgpYAg4KSX4KSw4KWN4KSoIOCkteCkviDgpKzgpJrgpKQg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3NDM0NTQ4NjgyNDcwODUxNTgzIj4i4KSk4KWAIOCkuOCkvuCkpeClgOCkueCksOClgiDgpLXgpL4g4KS44KS54KSV4KSw4KWN4KSu4KWA4KS54KSw4KWC4KS44KS54KS/4KSkIOCkuOCkrOCliCDgpKrgpL7gpKTgpY3gpLDgpYsg4KSY4KSf4KSo4KS+4KS54KSw4KWCIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpK7gpL4g4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkreCkj+CkleCkvuCksuCkvuCkiCDgpKrgpKLgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpKrgpL7gpKTgpY3gpLDgpYsg4KSh4KWH4KSf4KS+IOCkr+CkuOCksuClhyDgpLjgpL7gpK/gpKYg4KS44KWH4KSv4KSwIOCkl+CksOCljeCkqCDgpLXgpL4g4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KS14KS/4KS24KWN4KS14KS+4KS44KSo4KS/4KSv4KSk4KS+IOCkteCkviDgpLjgpK7gpY3gpLXgpYfgpKbgpKjgpLbgpYDgpLLgpKTgpL4g4KSs4KS/4KSo4KS+IOCkqOCliCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVDYWxlbmRhciIgbXNnaWQ9Ijg0Mzg4NzQ3NTUxOTM4MjU2NDciPiLgpKrgpL7gpKTgpY3gpLDgpYsg4KSY4KSf4KSo4KS+4KS54KSw4KWCIOCkpeCkquCljeCkqOClgeCkueCli+CkuOCljSDgpLXgpL4g4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSDgpLAg4KSu4KS+4KSy4KS/4KSV4KSV4KWLIOCknOCljeCknuCkvuCkqCDgpKzgpL/gpKjgpL4g4KSo4KWIIOCkquCkvuCkueClgeCkqOCkvuCkueCksOClguCksuCkvuCkiCDgpIfgpK7gpYfgpLIg4KSq4KSg4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY3OTAzNTUyMDExMzY2ODUyOCI+IuCkpOClgCDgpLjgpL7gpKXgpYDgpLngpLDgpYIg4KS14KS+IOCkuOCkueCkleCksOCljeCkruClgOCkueCksOClguCkuOCkueCkv+CkpOCkleCkviDgpJjgpJ/gpKjgpL7gpLngpLDgpYIg4KSc4KS44KSy4KS+4KSIIOCkpOCkquCkvuCkiOCkgeCksuClhyDgpIbgpKvgpY3gpKjgpYsg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSu4KS+IOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSo4KWHIOCkheCkqOClgeCkruCkpOCkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCknOClgeCkqCDgpKrgpL7gpKTgpY3gpLDgpL7gpJXgpYsg4KSu4KS+4KSy4KS/4KSV4KS54KSw4KWC4KSs4KS+4KSfIOCkhuCkj+CkleCkviDgpKbgpYfgpJbgpL/gpKjgpYfgpLLgpL7gpIgg4KSq4KSg4KS+4KSJ4KSo4KWHIOCkteCkviDgpK7gpL7gpLLgpL/gpJXgpLngpLDgpYLgpJXgpYsg4KSc4KWN4KSe4KS+4KSoIOCkrOClh+Ckl+CksCDgpJjgpJ/gpKjgpL7gpLLgpL7gpIgg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqOClhyDgpIXgpKjgpYHgpK7gpL/gpKQg4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIzMjQ0Njk0OTYzMjcyNDkzNzYiPiLgpKTgpYAg4KS44KS+4KSl4KWA4KS54KSw4KWCIOCkteCkviDgpLjgpLngpJXgpLDgpY3gpK7gpYDgpLngpLDgpYLgpLjgpLngpL/gpKQg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkq+Cli+CkqOCkleCkviDgpJjgpJ/gpKjgpL7gpLngpLDgpYIg4KSc4KS44KSy4KS+4KSIIOCkpeCkquCljeCkqCwg4KS54KSf4KS+4KSJ4KSoIOCksCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSoICDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpKrgpL7gpKTgpY3gpLDgpYsg4KSu4KS+4KSy4KS/4KSV4KSs4KS+4KSfIOCkpuClh+CkluCkviDgpKrgpLDgpYfgpJXgpL4g4KS14KS+IOCkruCkvuCksuCkv+CkleCkleCliyDgpJzgpY3gpJ7gpL7gpKgg4KSs4KS/4KSo4KS+IOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpK3gpI/gpJXgpL4g4KSY4KSf4KSo4KS+4KS54KSw4KWCIOCkuOCkqOCljeCkpuClh+CktiDgpKrgpKDgpL7gpIngpKgg4KSv4KS44KSy4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTW9ja0xvY2F0aW9uIiBtc2dpZD0iODY4ODMzNDk3NDAzNjgyMzMzMCI+IuCkquCksOClgOCkleCljeCkt+Cko+CkleCliyDgpLLgpL7gpJfgpL8g4KS44KWN4KSl4KS+4KSoIOCkuOCljeCksOCli+CkpOCkueCksOClgiDgpK7gpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTW9ja0xvY2F0aW9uIiBtc2dpZD0iNTgwODcxMTAzOTQ4MjA1MTgyNCI+IuCkquCksOClgOCkleCljeCkt+Cko+CkleCliyDgpLLgpL7gpJfgpL8g4KSu4KSVIOCkuOCljeCkpeCkvuCkqCDgpLjgpY3gpLDgpYvgpKTgpLngpLDgpYIg4KS44KS/4KSw4KWN4KSc4KSo4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSDgpLXgpL4g4KSo4KSv4KS+4KSBIOCkuOCljeCkpeCkvuCkqCDgpKrgpY3gpLDgpKbgpL7gpK/gpJUg4KS44KWN4KSl4KS+4KSq4KSo4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCDgpK/gpLjgpLLgpYcg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkuOCljeCkpeCkvuCkqOCkruCkviDgpJPgpK3gpLDgpLDgpL7gpIfgpKEg4KSX4KSw4KWN4KSm4KSbIOCksC/gpLXgpL4g4KS44KWN4KSl4KS/4KSk4KS/IOCkheCkqOCljeCkryDgpLjgpY3gpKXgpL7gpKgg4KS44KWN4KSw4KWL4KSk4KS54KSw4KWCIOCknOCkuOCljeCkpOCliCBHUFMg4KS14KS+IOCkuOCljeCkpeCkvuCkqCDgpKrgpY3gpLDgpKbgpL7gpK/gpJXgpKzgpL7gpJ8g4KSr4KSw4KWN4KSV4KS+4KSH4KSP4KSV4KS+4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NMb2NhdGlvbkV4dHJhQ29tbWFuZHMiIG1zZ2lkPSIyODM2MzA4MDc2NzIwNTUzODM3Ij4i4KSF4KSn4KS/4KSVIOCkuOCljeCkpeCkvuCkqCDgpKrgpY3gpLDgpKbgpL7gpK/gpJUg4KSG4KSm4KWH4KS24KS54KSw4KWCIOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NMb2NhdGlvbkV4dHJhQ29tbWFuZHMiIG1zZ2lkPSI1OTQ1MTY2NjQyMzM1ODAwNzYzIj4i4KSl4KSqIOCkuOCljeCkpeCkvuCkqCDgpKrgpY3gpLDgpKbgpL7gpK/gpJUg4KSV4KSu4KS+4KSj4KWN4KSh4KS54KSw4KWCIOCkuOCkruCljeCkriDgpKrgpLngpYHgpIHgpJog4KSq4KWB4KSw4KWN4oCN4KSv4KS+4KSJ4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuClhyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KS+4KSv4KSmIOCknOClgOCkquClgOCkj+CkuOCkleCliyDgpLXgpL4g4KSF4KSo4KWN4KSvIOCkuOCljeCkpeCkvuCkqCDgpLjgpYfgpLXgpL7gpLngpLDgpYLgpJXgpYsg4KSV4KS+4KSw4KWN4KSvIOCkuOCkgeCklyDgpLngpLjgpY3gpKTgpJXgpY3gpLfgpYfgpKog4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpK/gpLjgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI2NTc4MTAxMTk5ODI1MTkzODczIj4i4KSP4KSJ4KSf4KS+IOCkuOCljeCkpeCkvuCkqCDgpKrgpY3gpLDgpKbgpL7gpKTgpL4g4KS44KWN4KSl4KS+4KSq4KS/4KSkIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnN0YWxsTG9jYXRpb25Qcm92aWRlciIgbXNnaWQ9IjkwNjYxNDYxMjA0NzA1OTE1MDkiPiLgpKrgpLDgpYDgpJXgpY3gpLfgpKPgpJXgpYsg4KSy4KS+4KSX4KS/IOCkruCklSDgpLjgpY3gpKXgpL7gpKgg4KS44KWN4KSw4KWL4KSk4KS54KSw4KWCIOCkuOCkv+CksOCljeCknOCkqOCkviDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KS14KS+IOCkqOCkr+CkvuCkgSDgpLjgpY3gpKXgpL7gpKgg4KSq4KWN4KSw4KSm4KS+4KSv4KSVIOCkuOCljeCkpeCkvuCkquCkqOCkviDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQg4KSv4KS44KSy4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpY3gpKXgpL7gpKjgpK7gpL4g4KST4KSt4KSw4KSw4KS+4KSH4KShIOCkl+CksOCljeCkpuCkmyDgpLAv4KS14KS+IOCkuOCljeCkpeCkv+CkpOCkvyDgpIXgpKjgpY3gpK8g4KS44KWN4KSl4KS+4KSoIOCkuOCljeCksOCli+CkpOCkueCksOClgiDgpJzgpLjgpY3gpKTgpYggR1BTIOCkteCkviDgpLjgpY3gpKXgpL7gpKgg4KSq4KWN4KSw4KSm4KS+4KSv4KSV4KSs4KS+4KSfIOCkq+CksOCljeCkleCkvuCkh+Ckj+CkleCkvuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzRmluZUxvY2F0aW9uIiBtc2dpZD0iMTE5MTg5ODA2MTk2NTI3MzM3MiI+IuCkuOCkn+Ckv+CklSDgpLjgpY3gpKXgpL7gpKggKEdQUyDgpLAg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkhuCkp+CkvuCksOCkv+CkpCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSI1Mjk1MDQ3NTYzNTY0OTgxMjUwIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkteCkv+CktuCljeCkteCkteCljeCkr+CkvuCkquClgCDgpLjgpY3gpKXgpL7gpKgg4KSq4KWN4KSw4KSj4KS+4KSy4KWAIChHUFMpIOCkteCkviDgpLjgpYfgpLIg4KSf4KS+4KS14KSw4KS54KSw4KWCIOCksCDgpLXgpL7gpIct4KSr4KS+4KSHIOCknOCkuOCljeCkpOCkviDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KWN4KSl4KS+4KSoIOCkuOCljeCksOCli+CkpOCkueCksOClguCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWH4KSwIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpLjgpLngpYAg4KS44KWN4KSl4KS+4KSoIOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpYAg4KS44KWN4KSl4KS+4KSoIOCkuOClh+CkteCkvuCkueCksOClgiDgpJbgpYvgpLLgpY3gpKjgpYEg4KSq4KSw4KWN4KSbIOCksCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpL4g4KSy4KS+4KSX4KS/IOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkieCkquCkleCksOCko+CkruCkviDgpIngpKrgpLLgpKzgpY3gpKcg4KS54KWB4KSo4KWBIOCkquCksOCljeCkm+ClpCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSk4KSq4KS+4KSI4KSBIOCkleCkueCkvuCkgSDgpLngpYHgpKjgpYEg4KS54KWB4KSo4KWN4KSbIOCkreCkqOCljeCkqOClhyDgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpKMg4KSX4KSw4KWN4KSoIOCkr+CkuOCksuCkvuCkiCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkmyDgpLAg4KSv4KS44KSy4KWHIOCkheCkpOCkv+CksOCkv+CkleCljeCkpCDgpKzgpY3gpK/gpL7gpJ/gpY3gpLDgpL8g4KSJ4KSw4KWN4KSc4KS+IOCkluCkpOCkqiDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NDb2Fyc2VMb2NhdGlvbiIgbXNnaWQ9IjQ4ODc4OTUzNjIzNTQyMzk2MjgiPiLgpIXgpKjgpYHgpK7gpL7gpKjgpL/gpKQg4KS44KWN4KSl4KS+4KSoICjgpKjgpYfgpJ/gpLXgpLDgpY3gpJUt4KSG4KSn4KS+4KSw4KS/4KSkKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0NvYXJzZUxvY2F0aW9uIiBtc2dpZD0iMjUzODIwMDE4NDM3MzMwMjI5NSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSF4KSo4KWB4KSu4KS+4KSo4KS/4KSkIOCkuOCljeCkpeCkvuCkqCDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KWLIOCkuOCljeCkpeCkvuCkqCDgpLjgpYfgpLIg4KSf4KS+4KS14KSwIOCksCDgpLXgpL7gpIct4KSr4KS+4KSH4KSc4KS44KWN4KSk4KS+IOCkqOClh+Ckn+CkteCksOCljeCklSDgpLjgpY3gpKXgpL7gpKgg4KS44KWN4KSw4KWL4KSk4KS54KSw4KWC4KSV4KWLIOCkquCljeCksOCli+CklyDgpJfgpLDgpYAg4KS44KWN4KSl4KS+4KSoIOCkuOClh+CkteCkvuCkueCksOClguCkrOCkvuCknyDgpIngpKTgpY3gpKrgpKjgpY3gpKgg4KSX4KSw4KS/4KSP4KSV4KWLIOCkueCli+ClpCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpYcg4KSv4KWAIOCkuOCljeCkpeCkvuCkqCDgpLjgpYfgpLXgpL7gpLngpLDgpYLgpJXgpYsg4KSJ4KSq4KSv4KWL4KSXIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSv4KWAIOCkuOClh+CkteCkvuCkueCksOClgiDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSJ4KSq4KSV4KSw4KSj4KSu4KS+IOCkmuCkvuCksuClgSDgpLAg4KSJ4KSq4KSy4KSs4KWN4KSnIOCkueClgeCkqOClgSDgpIbgpLXgpLbgpY3gpK/gpJUg4KSb4KWkIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpIXgpKjgpYHgpK7gpL7gpKjgpL/gpKQg4KSw4KWC4KSq4KSu4KS+IOCkpOCkquCkvuCkiOCkgSDgpJXgpLngpL7gpIEg4KS54KWB4KSo4KWB4KS54KWB4KSo4KWN4KSbIOCkreCkqOCljeCkqOClhyDgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpKMg4KSX4KSw4KWN4KSoIOCkr+CkuOCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIyMzYzOTY5NjQxNzkyMzg4OTQ3Ij4iU3VyZmFjZUZsaW5nZXIg4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IlN1cmZhY2VGbGluZ2VyIOCkleCkri3gpLjgpY3gpKTgpLAg4KS44KWB4KS14KS/4KSn4KS+4KS54KSw4KWCIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiLgpKvgpY3gpLDgpYfgpK4g4KSs4KSr4KSwIOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSr4KWN4KSw4KWH4KSuIOCkrOCkq+CksOCkleCliyDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSq4KSi4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJJbnB1dEZsaW5nZXIg4KSV4KWLIOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4iSW5wdXRGbGluZ2VyIOCkleCliyDgpJXgpK4t4KS44KWN4KSk4KSwIOCkuOClgeCkteCkv+Ckp+CkvuCkueCksOClgiDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiLgpLXgpL7gpIfgpKvgpL7gpIcg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSo4KS54KSw4KWC4KSy4KS+4KSIIOCkteCkv+CkqOCljeCkr+CkvuCkuCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSV4KSo4KWN4KSr4KS/4KSX4KSwIOCkl+CksOCljeCkqCDgpLAg4KS14KS+4KSH4KSr4KS+4KSHIOCkquCljeCksOCkpuCksOCljeCktuCkqOCkueCksOClguCkuOCkgeCklyDgpJzgpYvgpKHgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4i4KS14KS+4KSH4KSr4KS+4KSHIOCkquCljeCksOCkpuCksOCljeCktuCkqOCkueCksOClgiDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iNDU0MzkxMjI5MjY4MTgyNjk4NiI+IuCkteCkvuCkh+Ckq+CkvuCkhyDgpKrgpY3gpLDgpKbgpLDgpY3gpLbgpKjgpYDgpJXgpL4g4KSk4KSy4KWN4KSy4KWLIOCkpOCkuSDgpLXgpL/gpLfgpYfgpLbgpKTgpL7gpLngpLDgpYIg4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSjIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZUF1ZGlvT3V0cHV0IiBtc2dpZD0iNjg1NzEzNDQ5ODQwMjM0NjcwOCI+IuCkheCkoeCkv+Ckr+CliyDgpIbgpIngpJ/gpKrgpYHgpJ8g4KSV4KWI4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjYyMTA1OTc3NTQyMTIyMDg4NTMiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSh4KS/4KSv4KWLIOCkhuCkieCkn+CkquClgeCknyDgpJXgpYjgpKYg4KSX4KSw4KWN4KSoIOCksCDgpLDgpL/gpKHgpL7gpIfgpLDgpYfgpJXgpY3gpJ8g4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjIyNDY4Mjg3NzM1ODkwOTQwMjMiPiLgpK3gpL/gpKHgpL/gpK/gpYsg4KSG4KSJ4KSf4KSq4KWB4KSfIOCkleCliOCkpiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIzNTk0ODE2NTgwMzQxNDk4NjAiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSt4KS/4KSh4KS/4KSv4KWLIOCkhuCkieCkn+CkquClgeCknyDgpJXgpYjgpKYg4KSX4KSw4KWN4KSoIOCksCDgpLDgpL/gpKHgpL7gpIfgpLDgpYfgpJXgpY3gpJ8g4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVTZWN1cmVWaWRlb091dHB1dCIgbXNnaWQ9Ijc4MTUzOTg5NjkzMDMzODIwMTYiPiLgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KSt4KS/4KSh4KS/4KSv4KWLIOCkhuCkieCkn+CkquClgeCknyDgpJXgpYjgpKYg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMjc3OTc5MzA2NDcwOTM1MDI4OSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KSt4KS/4KSh4KS/4KSv4KWLIOCkhuCkieCkn+CkquClgeCknyDgpJXgpYjgpKYg4KSX4KSw4KWN4KSoIOCksCDgpLDgpL/gpKHgpL7gpIfgpLDgpYfgpJXgpY3gpJ8g4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeUF1ZGlvU2V0dGluZ3MiIG1zZ2lkPSI2MDk1ODU5OTM3MDY5MTQ2MDg2Ij4i4KSk4KSq4KS+4KSI4KSB4KSV4KS+IOCkheCkoeCkv+Ckr+CliyDgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeUF1ZGlvU2V0dGluZ3MiIG1zZ2lkPSIzNTIyNTY1MzY2ODA2MjQ4NTE3Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkl+CljeCksuCli+CkrOCksiDgpIXgpKHgpL/gpK/gpYsg4KS44KWH4KSf4KS/4KSZ4KWN4KS54KSw4KWCIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkmywg4KSc4KS44KWN4KSk4KWIIOCkhuCkteCkvuCknOCkleCliyDgpK7gpL7gpKTgpY3gpLDgpL4g4KSwIOCkhuCkieCkn+CkquClgeCkn+CkleCliyDgpLLgpL7gpJfgpL8g4KSV4KWB4KSoIOCkuOCljeCkquCkv+CkleCksCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSo4KWH4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNvcmRBdWRpbyIgbXNnaWQ9IjM4NzYwNDk3NzE0Mjc0NjYzMjMiPiLgpIXgpKHgpL/gpK/gpYsg4KSw4KWH4KSV4KSw4KWN4KShIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY29yZEF1ZGlvIiBtc2dpZD0iNDkwNjgzOTMwMTA4Nzk4MDY4MCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpK7gpL7gpIfgpJXgpY3gpLDgpYvgpKvgpYvgpKjgpJXgpYsg4KS44KS+4KSlIOCkheCkoeCkv+Ckr+CliyDgpLDgpYfgpJXgpLDgpY3gpKEg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS4IOCkheCkqOClgeCkruCkpOCkv+CksuClhyDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSq4KWB4KS34KWN4KSf4KS/4KSV4KSw4KSjIOCkrOCkv+CkqOCkviDgpJXgpYHgpKjgpYgg4KSq4KSo4KS/IOCkuOCkruCkr+CkruCkviDgpIXgpKHgpL/gpK/gpYsg4KSw4KWH4KSV4KSw4KWN4KShIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYW1lcmEiIG1zZ2lkPSIzNjE2MzkxOTE5NTU5NzUxMTkyIj4i4KSk4KS44KWN4KSs4KS/4KSw4KS54KSw4KWCIOCksCDgpK3gpL/gpKHgpL/gpK/gpYvgpLngpLDgpYIg4KSy4KS/4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhIiBtc2dpZD0iODQ5NzIxNjUyNDczNTUzNTAwOSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpJXgpY3gpK/gpL7gpK7gpYfgpLDgpL7gpLjgpIHgpJcg4KSk4KS44KWN4KSs4KS/4KSwIOCksCDgpK3gpL/gpKHgpL/gpK/gpYvgpLngpLDgpYIg4KSy4KS/4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS4IOCkheCkqOClgeCkruCkpOCkv+CksuClhyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkquClgeCkt+CljeCkn+Ckv+CkleCksOCkoyDgpKzgpL/gpKjgpL4g4KSV4KWB4KSo4KWIIOCkquCkqOCkvyDgpLjgpK7gpK/gpK7gpL4g4KSV4KWN4KSv4KS+4KSu4KWH4KSw4KS+IOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KWN4KS14KWA4KSV4KWD4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FtZXJhRGlzYWJsZVRyYW5zbWl0TGVkIiBtc2dpZD0iMjY1MTA3MjYzMDUwMTEyNjIyMiI+IuCkleCljeCkr+CkvuCkruClh+CksOCkviDgpKrgpY3gpLDgpK/gpYvgpJfgpK7gpL4g4KS54KWB4KSB4KSm4KS+IOCkuOClguCkmuCklSBMRUQg4KSq4KWN4KSw4KS44KS+4KSw4KSjIOCkheCkuOCkleCljeCkt+CkriDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYW1lcmFEaXNhYmxlVHJhbnNtaXRMZWQiIG1zZ2lkPSI0NzY0NTg1NDY1NDgwMjk1MzQxIj4i4KSq4KWC4KSw4KWN4KS1LeCkuOCljeCkpeCkvuCkquCkv+CkpCDgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkleCljeCkr+CkvuCkruClh+CksOCkviDgpIngpKrgpK/gpYvgpJcg4KS44KWC4KSa4KSVIExFRCDgpIXgpJXgpY3gpLfgpK4g4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyOTYxMjkyMjA1NzY0NDg4MzA0Ij4i4KS44KWN4KSl4KS+4KSv4KWAIOCksOClguCkquCkruCkviDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KSF4KSV4KWN4KS34KSuIOCkquCkvuCksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJpY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MzM3ODE3MDkzMzI2MzcwNTM3Ij4i4KSr4KWL4KSo4KSy4KS+4KSIIOCkuOCljeCkpeCkvuCkr+ClgCDgpLDgpYLgpKrgpK7gpL4g4KSF4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCljeCkqOCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzM0ODE4ODA4MDAxNjk5NTMwIj4i4KSq4KWB4KSw4KWIIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CksuCkvuCkiCDgpLjgpY3gpKXgpL7gpK/gpYAg4KSw4KWC4KSq4KSu4KS+IOCkheCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KWLIOCkqOCkv+CkleCliCDgpJbgpKTgpLDgpKjgpL7gpJUg4KS54KWB4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJpY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzg4OTAzMjk3NjI3MjgzMDk5Ij4i4KS44KSu4KWN4KSq4KWC4KSw4KWN4KSjIOCkq+Cli+CkqOCksuCkvuCkiCDgpLjgpY3gpKXgpL7gpK/gpYAg4KSw4KWC4KSq4KSu4KS+IOCkheCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KWLIOCkp+Clh+CksOCliCDgpJbgpKTgpLDgpKjgpL7gpJUg4KS54KWB4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWJvb3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM0MzY2MzQ5NzI1NjE3OTUwMDIiPiLgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KSq4KWB4KSo4KSD4KSs4KWB4KSfIOCkl+CksOCljeCkqCDgpJzgpYvgpKEg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyODk4NTYwODcyNDYyNjM4MjQyIj4i4KSr4KWL4KSoIOCkquClgeCkqOCkg+CkrOClgeCknyDgpJfgpLDgpY3gpKjgpYEg4KSc4KWL4KShIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYm9vdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODE3MjA1NjE4MDA2MzcwMDc0MSI+IuCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CksuCkvuCkiCDgpKzgpLLgpKrgpYLgpLDgpY3gpLXgpJUg4KSq4KWB4KSo4KSD4KSs4KWB4KSfIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MzI2MDA4MTI0Mjg5OTg5OTY5Ij4i4KSr4KWL4KSo4KSy4KS+4KSIIOCkrOCksuCkquClgeCksOCljeCkteCklSDgpKrgpYHgpKjgpIPgpKzgpYHgpJ8g4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfdW5tb3VudF9maWxlc3lzdGVtcyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIyOTI3MzYxNTM3OTQyNTkxODQxIj4iVVNCIOCkreCko+CljeCkoeCkvuCksOCkoyDgpKvgpL7gpIfgpLIg4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDAyMzA1MDQ5ODkwOTUzODEwIj4iU0Qg4KSV4KS+4KSw4KWN4KShIOCkq+CkvuCkh+CksiDgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIG1zZ2lkPSIxODI5MjkwNzAxNjU4OTkyMzQ3Ij4i4KS54KSf4KS+4KSJ4KSoIOCkruCkv+CksuCljeCkqOClhyDgpK3gpKPgpY3gpKHgpL7gpLDgpKPgpJXgpYsg4KSy4KS+4KSX4KS/IOCkq+CkvuCkh+CksiDgpKrgpY3gpLDgpKPgpL7gpLLgpYDgpLngpLDgpYIg4KSu4KS+4KSJ4KSo4KWN4KSfIOCksCDgpIXgpKjgpK7gpL7gpIngpKjgpY3gpJ8g4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjIyNzgxOTU4MjYyNDkwNDk3MiI+IlVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSu4KWH4KSf4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNjI1ODI2OTg2MzkyNzQwNTYiPiJTRCDgpJXgpL7gpLDgpY3gpKEg4KSu4KWH4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBtc2dpZD0iODc4NDI2ODI0Njc3OTE5ODYyNyI+IuCkueCkn+CkvuCkieCkqCDgpK7gpL/gpLLgpY3gpKjgpYcg4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkq+CksOCljeCkruCljeCkr+CkvuCknyDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX2FjY2VzcyIgbXNnaWQ9IjM0MTEzMzg2MzIwMDIxOTM4NDYiPiLgpIbgpKjgpY3gpKTgpLDgpL/gpJUg4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSV4KWLIOCkuOClguCkmuCkqOCkviDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19hY2Nlc3MiIG1zZ2lkPSIzMDk0NTYzODQ0NTkzODc4NTQ4Ij4i4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkreCko+CljeCkoeCkvuCksOCko+CkruCkviDgpLjgpYLgpJrgpKjgpL4g4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19jcmVhdGUiIG1zZ2lkPSI2NDE0NzU3MjM0Nzg5MzM2MzI3Ij4i4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkreCko+CljeCkoeCkvuCksOCkoyDgpLjgpL/gpLDgpY3gpJzgpKjgpL4g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19jcmVhdGUiIG1zZ2lkPSI0NTU4ODY5MjczNTg1ODU2ODc2Ij4i4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkreCko+CljeCkoeCkvuCksOCkoyDgpLjgpL/gpLDgpY3gpJzgpKjgpL4g4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpYcg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19kZXN0cm95IiBtc2dpZD0iNTI2OTI4MzI4MzAxNjE4MDIyIj4i4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkreCko+CljeCkoeCkvuCksOCkoyDgpKfgpY3gpLXgpLjgpY3gpKQg4KSq4KS+4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19kZXN0cm95IiBtc2dpZD0iNzIxODc0OTI4NjE0NTUyNjUzNyI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIbgpKjgpY3gpKTgpLDgpL/gpJUg4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkp+CljeCkteCkuOCljeCkpCDgpKrgpL7gpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19tb3VudF91bm1vdW50IiBtc2dpZD0iODg3Nzk5ODEwMTk0NDk5OTM4NiI+IuCkhuCkqOCljeCkpOCksOCkv+CklSDgpK3gpKPgpY3gpKHgpL7gpLDgpKPgpLLgpL7gpIgg4KSu4KS+4KSJ4KSo4KWN4KSfL+CkheCkqOCkruCkvuCkieCkqOCljeCknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX21vdW50X3VubW91bnQiIG1zZ2lkPSIzNDUxMzYwMTE0OTAyNDkwOTI5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkhuCkqOCljeCkpOCksOCkv+CklSDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSu4KS+4KSJ4KSo4KWN4KSfL+CkheCkqOCkruCkvuCkieCkqOCljeCknyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19yZW5hbWUiIG1zZ2lkPSI3NDk2NjMzOTU0MDgwNDcyNDE3Ij4i4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkreCko+CljeCkoeCkvuCksOCko+CkleCliyDgpKrgpYHgpKg64KSo4KS+4KSu4KS+4KSV4KSw4KSjIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfcmVuYW1lIiBtc2dpZD0iMTc5NDc1NzU4ODQ3MjEyNzY3NSI+IuCkhuCkqOCljeCkpOCksOClgOCklSDgpK3gpKPgpY3gpKHgpL7gpLDgpKPgpJXgpYsg4KSq4KWB4KSo4KSo4KS+4KSu4KS+4KSV4KSw4KSjIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3ZpYnJhdGUiIG1zZ2lkPSI3Njk2NDI3MDI2MDU3NzA1ODM0Ij4i4KSV4KSu4KWN4KSq4KSoIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY192aWJyYXRlIiBtc2dpZD0iNjI4NDk4OTI0NTkwMjMwMDk0NSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpK3gpL7gpIfgpKzgpY3gpLDgpYfgpJ/gpLAg4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSjIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mbGFzaGxpZ2h0IiBtc2dpZD0iMjE1NTkyMDgxMDEyMTk4NDIxNSI+IuCkq+CljeCksuCljeCkr+CkvuCkuOCksuCkvuCkiOCknyDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmxhc2hsaWdodCIgbXNnaWQ9IjY1MjIyODQ3OTQ1NjgzNjgzMTAiPiLgpKvgpY3gpLLgpY3gpK/gpL7gpLgg4KSq4KWN4KSw4KSV4KS+4KS24KSy4KS+4KSIIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzYiIgbXNnaWQ9IjExMTM0NTM0MzA2NDU0MDI3MjMiPiJVU0Ig4KSJ4KSq4KSV4KSw4KSj4KS54KSw4KWC4KSV4KWLIOCksuCkvuCkl+CkvyDgpKrgpY3gpLDgpL7gpKXgpK7gpL/gpJXgpKTgpL7gpLngpLDgpYIg4KSwIOCkheCkqOClgeCkruCkpOCkv+CkueCksOClgiDgpKrgpY3gpLDgpKzgpKjgpY3gpKcg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNiIiBtc2dpZD0iNzc3NjE1NTQzMDIxODIzOTgzMyI+IlVTQiDgpIngpKrgpJXgpLDgpKPgpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkquCljeCksOCkvuCkpeCkruCkv+CkleCkpOCkvuCkueCksOClgiDgpLAg4KSF4KSo4KWB4KSu4KSk4KS/4KS54KSw4KWC4KSy4KS+4KSIIOCkteCljeCkr+CkteCkuOCljeCkpeCkvuCkquCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NNdHAiIG1zZ2lkPSI0OTUzNDY4Njc2Nzk1OTE3MDQyIj4iTVRQIOCkquCljeCksOCli+Ckn+Cli+CkleCksiDgpJXgpL7gpLDgpY3gpK/gpL7gpKjgpY3gpLXgpK/gpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTXRwIiBtc2dpZD0iNjUzMjk2MTIwMDQ4Njc5MTU3MCI+Ik1UUCBVU0Ig4KSq4KWN4KSw4KWL4KSf4KWL4KSV4KSyIOCkleCkvuCksOCljeCkr+CkvuCkqOCljeCkteCkr+CkqCDgpJfgpLDgpY3gpKgg4KSV4KWH4KSw4KWN4KSo4KSyIE1UUCDgpKHgpY3gpLDgpL7gpIfgpK3gpLDgpJXgpYsg4KSq4KS54KWB4KSB4KSa4KSV4KWLIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2hhcmR3YXJlX3Rlc3QiIG1zZ2lkPSI0MTQ4MjkwODYwNDAwNjU5MTQ2Ij4i4KS54KS+4KSw4KWN4KSh4KS14KWH4KSv4KSwIOCkquCksOClgOCkleCljeCkt+CkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19oYXJkd2FyZV90ZXN0IiBtc2dpZD0iNjU5Nzk2NDE5MTIwODAxNjYwNSI+IuCkueCkvuCksOCljeCkoeCkteClh+Ckr+CksCDgpKrgpLDgpYDgpJXgpY3gpLfgpKPgpJXgpYsg4KSJ4KSm4KWN4KSm4KWH4KS24KWN4KSv4KSV4KS+IOCksuCkvuCkl+CkvyDgpLXgpL/gpK3gpL/gpKjgpY3gpKgg4KSq4KSw4KS/4KSn4KWA4KSv4KS54KSw4KWC4KSy4KS+4KSIIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbGxQaG9uZSIgbXNnaWQ9IjM5MjU4MzYzNDc2ODE4NDc5NTQiPiLgpKvgpYvgpKgg4KSo4KSu4KWN4KSs4KSw4KS54KSw4KWC4KSu4KS+IOCkuOCkv+Ckp+CliCDgpJXgpLIg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FsbFBob25lIiBtc2dpZD0iMzc0MDc5NzU3NjExMzc2MDgyNyI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpLngpLjgpY3gpKTgpJXgpY3gpLfgpYfgpKog4KSs4KWH4KSX4KSw4KWIIOCkq+Cli+CkqCDgpKjgpK7gpY3gpKzgpLAg4KSV4KSyIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLjgpLLgpYcg4KSF4KSo4KSq4KWH4KSV4KWN4KS34KS/4KSkIOCktuClgeCksuCljeCklSDgpLXgpL4g4KSV4KSy4KS54KSw4KWCIOCkl+CksOCkvuCkieCkqCDgpLjgpJXgpY3gpJvgpaQg4KSv4KS44KSy4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIbgpKrgpKTgpJXgpL7gpLLgpYDgpKgg4KSo4KSu4KWN4KSs4KSw4KS54KSw4KWCIOCkleCksiDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkgeCkpuCliOCkqCDgpLXgpL/gpJrgpL7gpLAg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkuOCljeCkteClgOCkleCkvuCksCDgpKzgpL/gpKjgpL4g4KSV4KSy4KS54KSw4KWCIOCkl+CksOClh+CksCDgpKTgpKrgpL7gpIjgpIHgpLLgpL7gpIgg4KSs4KSi4KWAIOCkquCliOCkuOCkviDgpKTgpL/gpLDgpL7gpIngpKgg4KS44KSV4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWxsUHJpdmlsZWdlZCIgbXNnaWQ9IjQxOTgzNDkyMTExMDg0OTc4NzkiPiLgpJXgpYHgpKjgpYgg4KSq4KSo4KS/IOCkq+Cli+CkqCDgpKjgpK7gpY3gpKzgpLDgpLngpLDgpYIg4KS44KS/4KSn4KWIIOCkleCksiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYWxsUHJpdmlsZWdlZCIgbXNnaWQ9IjE2ODkwMjQ5MDE1MDk5OTY4MTAiPiLgpJXgpYHgpKjgpYgg4KSq4KSo4KS/IOCkq+Cli+CkqCDgpKjgpK7gpY3gpKzgpLDgpK7gpL4sIOCkhuCkleCkuOCljeCkruCkv+CklSDgpKjgpK7gpY3gpKzgpLAg4KS44KS54KS/4KSkLCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KS54KS44KWN4KSk4KSV4KWN4KS34KWH4KSqIOCkrOCkv+CkqOCkviDgpJXgpLIg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpJbgpLDgpL7gpKwg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KWHIOCkheCkqOCkvuCkteCktuCljeCkr+CklSDgpLAg4KSX4KWI4KSwIOCkleCkvuCkqOClgeCkqOClgCDgpJXgpLLgpLngpLDgpYLgpLLgpL7gpIgg4KSG4KSV4KS44KWN4KSu4KS/4KSV4KSu4KS+IOCkuOCljeCkpeCkvuCkqOCkvuCkqOCljeCkpOCksOCkoyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDg0MjU3Njk5NDE0NDYwNDgyMSI+IkNETUEg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkuOClh+Ckn+CkheCkqyDgpLjgpL/gpKfgpYgg4KS44KWB4KSw4KWBIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NjA0ODQ4MDk1MzE1NDIxNDI1Ij4iQ0RNQSDgpKvgpYvgpKgg4KS44KWH4KSf4KSF4KSqIOCkuOCkv+Ckp+CliCDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIG1zZ2lkPSIxOTk0MTkzNTM4ODAyMzE0MTg2Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIENETUEg4KSq4KWN4KSw4KS+4KS14KSn4KS+4KSoIOCkuOClgeCksHUg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpIXgpKjgpL7gpLXgpLbgpY3gpK/gpJUg4KSw4KWC4KSq4KSu4KS+IENETUEg4KSq4KWN4KSw4KS+4KS14KSn4KS+4KSoIOCkuOClgeCksOClgSDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9sb2NhdGlvblVwZGF0ZXMiIG1zZ2lkPSI3Nzg1NDA4MjUzMzY0MzM1NzQwIj4i4KS44KWN4KSl4KS+4KSoIOCkheCkquCkoeClh+CknyDgpLjgpYLgpJrgpKjgpL7gpLngpLDgpYIg4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSjIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2xvY2F0aW9uVXBkYXRlcyIgbXNnaWQ9IjExMjA3NDE1NTc4OTE0Mzg4NzYiPiLgpLDgpYfgpKHgpL/gpK/gpYvgpKzgpL7gpJ8g4KS44KWN4KSl4KS+4KSoIOCkheCkpuCljeCkr+CkvuCkteCkp+Ckv+CklSDgpLjgpYLgpJrgpKjgpL7gpLngpLDgpYLgpLLgpL7gpIgg4KS44KSV4KWN4KS34KSuL+CkheCkuOCkleCljeCkt+CkriDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSu4KS+4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkrOCkvuCknyDgpKrgpY3gpLDgpK/gpYvgpJcg4KSo4KS54KWB4KSo4KWH4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGVja2luUHJvcGVydGllcyIgbXNnaWQ9Ijc4NTUyNTk0NjEyNjg3MzQ5MTQiPiLgpKrgpLDgpYDgpJXgpY3gpLfgpKMg4KS14KS/4KS24KWH4KS34KSk4KS+4KS54KSw4KWCIOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGVja2luUHJvcGVydGllcyIgbXNnaWQ9IjQwMjQ1MjY5Njg2MzAxOTQxMjgiPiLgpKrgpLDgpYDgpJXgpY3gpLfgpKMg4KS44KWH4KS14KS+4KSm4KWN4KS14KS+4KSw4KS+IOCkteCkv+CktuClh+Ckt+CkpOCkviDgpIXgpKrgpLLgpYvgpKEg4KSt4KSP4KSV4KWLIOCkquCkueClgeCkgeCkmiDgpKrgpKLgpY3gpKgv4KSy4KWH4KSW4KWN4oCN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkuOCkvuCkp+CkvuCksOCkoyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpKbgpY3gpLXgpL7gpLDgpL4g4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCksuCkvuCkl+CkvyDgpLngpYvgpIfgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRHYWRnZXQiIG1zZ2lkPSI3NzY5MDUzMzkwMTU4NjM0NzEiPiLgpLXgpL/gpJzgpYfgpJ/gpLngpLDgpYLgpJXgpYsg4KSa4KSv4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRHYWRnZXQiIG1zZ2lkPSI4MjYxMzI2OTM4NTk5MDQ5MjkwIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkquCljeCksOCko+CkvuCksuClgOCksuCkvuCkiCDgpJXgpYHgpKgg4KS14KS/4KSc4KWH4KSfIOCkleClgeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpKbgpY3gpLXgpL7gpLDgpL4g4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpLjgpJXgpL/gpKjgpY3gpJsg4KSt4KSo4KWH4KSwIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS4IOCkheCkqOClgeCkruCkpOCkv+CkuOCkueCkv+CkpOCkleCliyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpYcg4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuCkvuCkiCDgpLXgpY3gpK/gpJXgpY3gpKTgpL/gpJfgpKQg4KSh4KWH4KSf4KS+4KSV4KWLIOCkquCkueClgeCkgeCkmiDgpKbgpL/gpKgg4KS44KSV4KWN4KSm4KSb4KWkIOCkuOCkvuCkruCkvuCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCksuCkvuCkl+CkvyDgpLngpYvgpIfgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeVBob25lU3RhdGUiIG1zZ2lkPSI4NDIzOTIzNzc3NjU5MjkyMjI4Ij4i4KSr4KWL4KSo4KSV4KWLIOCkuOCljeCkpeCkv+CkpOCkvyDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5UGhvbmVTdGF0ZSIgbXNnaWQ9IjEwMjk4Nzc1MjkwMDc2ODY3MzIiPiLgpIngpKrgpJXgpLDgpKPgpJXgpL4g4KSr4KWL4KSoIOCkteCkv+CktuClh+Ckt+CkpOCkvuCkueCksOClguCksuCkvuCkiCDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCAg4KSv4KS4IOCkheCkqOClgeCkruCkpOCkv+CksuClhyDgpI/gpIngpJ/gpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkqOClh+Ckn+CkteCksOCljeCklSDgpLjgpY3gpLXgpL/gpJog4KSX4KSw4KWN4KSoLCDgpKvgpYvgpKgg4KSw4KWH4KSh4KS/4KSv4KWLIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKgg4KSwIOCkluCli+CksuCljeCkqCDgpLAg4KSc4KS44KWN4KSk4KWIIOCkpOCkquCkvuCkiOCkgSDgpLjgpKfgpYgg4KS44KWC4KSa4KS/4KSkIOCkqOCkl+CksOClgCDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkUGhvbmVTdGF0ZSIgbXNnaWQ9IjkxNzgyMjg1MjQ1MDc2MTA0ODYiPiLgpKvgpYvgpKgg4KS44KWN4KSl4KS/4KSk4KS/IOCksCDgpKrgpLngpL/gpJrgpL7gpKgg4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFBob25lU3RhdGUiIG1zZ2lkPSIxNjM5MjEyNzcxODI2MTI1NTI4Ij4i4KSJ4KSq4KSV4KSw4KSj4KSV4KWLIOCkq+Cli+CkqCDgpLXgpL/gpLbgpYfgpLfgpKTgpL7gpLngpLDgpYLgpJXgpYsg4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpK/gpLgg4KSF4KSo4KWB4KSu4KSk4KS/4KSy4KWHIOCkq+Cli+CkqCDgpKjgpK7gpY3gpKzgpLAg4KSwIOCkieCkquCkleCksOCko+CkleCliyBJRHMsIOCkleCksiDgpLjgpJXgpY3gpLfgpK4g4KSbIOCkleCkvyDgpJvgpYjgpKgg4KSwIOCkleCksuCkpuCljeCkteCkvuCksOCkviDgpJzgpYvgpKHgpL/gpI/gpJXgpYsg4KSf4KS+4KSi4KS+4KSV4KWLIOCkqOCkruCljeCkrOCksCDgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpKMg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dha2VMb2NrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTMxNzMxNDM1MDExNDk1MDE1Ij4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSy4KS+4KSIIOCkqOCkv+CkqOCljeCkpuCljeCksOCkvuCkruCkviDgpJzgpL7gpKjgpKzgpL7gpJ8g4KSw4KWL4KSV4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93YWtlTG9jayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MzQ4MDE4Nzk0MTQ5NjEzMCI+IuCkq+Cli+CkqOCksuCkvuCkiCDgpKjgpL/gpKbgpL7gpIngpKjgpKzgpL7gpJ8g4KSw4KWL4KSV4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd2FrZUxvY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjczMTEzMTk4MjQ0MDA0NDc4NjgiPiLgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpLLgpL7gpIgg4KSo4KS/4KS44KWN4KSV4KWN4KSw4KS/4KSvIOCkueClgeCkqOCkrOCkvuCknyDgpLDgpYvgpJXgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd2FrZUxvY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NTU5MTAwNjc3MzcyOTI4NzU0Ij4i4KSr4KWL4KSo4KSy4KS+4KSIIOCkqOCkv+CkuOCljeCkleCljeCksOCkv+CkryDgpLngpYHgpKjgpKzgpL7gpJ8g4KSw4KWL4KSV4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI3ODcwMzQ3MjI2MTYzNTA0MTciPiLgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KSq4KS+4KS14KSwIOCkluCli+CksuCljeCkqCDgpLAg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0OTI4NjIyNDcwOTgwOTQzMjA2Ij4i4KSr4KWL4KSoIOCkluCli+CksuCljeCkqCDgpLXgpL4g4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpIngpLDgpY3gpJzgpL4g4KSq4KWN4KSw4KSm4KS+4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RldmljZVBvd2VyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2Njg5ODYyODc4OTg0NjMxODMxIj4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSy4KS+4KSIIOCkluCli+CksuCljeCkqCDgpLAg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RldmljZVBvd2VyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjAzNzA1NzM0ODQ2MzEzMTAzMiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKvgpYvgpKgg4KSW4KWL4KSy4KWN4KSoIOCksCDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZhY3RvcnlUZXN0IiBtc2dpZD0iMzcxNTIyNTQ5MjY5NjQxNjE4NyI+IuCkq+CljeCkr+CkvuCkleCljeCkn+CljeCksOCkvyDgpKrgpLDgpYDgpJXgpY3gpLfgpKMg4KSu4KWL4KSh4KSu4KS+IOCkmuCkvuCksuClgSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mYWN0b3J5VGVzdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzk1MjA1OTMxODM1OTY1MzA5MSI+IuCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpLngpL7gpLDgpY3gpKHgpLXgpYfgpK/gpLDgpLLgpL7gpIgg4KSq4KWB4KSw4KS+IOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKgg4KSm4KS/4KSB4KSm4KWIIOCkpOCksuCljeCksuCliyDgpLjgpY3gpKTgpLAg4KSJ4KSk4KWN4KSk4KWN4KSq4KS+4KSm4KSVIOCkquCksOClgOCkleCljeCkt+Cko+CkleCliyDgpLDgpYLgpKrgpK7gpL4g4KSa4KSy4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWN4KWkIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpIngpKTgpY3gpKTgpY3gpKrgpL7gpKbgpJUg4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkruCli+CkoeCkruCkviDgpJrgpLLgpL/gpLDgpLngpYfgpJXgpYsg4KSs4KWH4KSy4KS+IOCkruCkvuCkpOCljeCksCDgpIngpKrgpLLgpKzgpY3gpKcg4KS54KWB4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MTM2NjQ0OTkwMzE5MjQ0ODAyIj4i4KSk4KSy4KWN4KSy4KWLIOCkuOCljeCkpOCksCDgpIngpKTgpY3gpKTgpY3gpKrgpL7gpKbgpJUg4KSc4KS44KWN4KSk4KWIIOCkmuCksuCkvuCkieCkqOClgeCkueCli+CkuOCljSwg4KSq4KWB4KSw4KS+IOCkquCkueClgeCkgeCkmiDgpKbgpL/gpKgg4KSr4KWL4KSoIOCkueCkvuCksOCljeCkoeCkteClh+Ckr+CksOCksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KS54KWB4KSo4KWN4KSb4KWkIOCkq+Cli+CkqCDgpIngpKTgpY3gpKrgpL7gpKbgpJUg4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkruCli+CkoeCkruCkviDgpJrgpLLgpL/gpLDgpLngpYfgpJXgpYsg4KSs4KWH4KSy4KS+IOCkruCkvuCkpOCljeCksCDgpIngpKrgpLLgpKzgpY3gpKcg4KS54KWB4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRXYWxscGFwZXIiIG1zZ2lkPSI2NjI3MTkyMzMzMzczNDY1MTQzIj4i4KS14KS+4KSy4KSq4KWH4KSq4KSwIOCkuOClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRXYWxscGFwZXIiIG1zZ2lkPSI3MzczNDQ3OTIwOTc3NjI0NzQ1Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkquCljeCksOCko+CkvuCksuClgCDgpLXgpL7gpLLgpKrgpYfgpKrgpLAg4KS44KWH4KSfIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRXYWxscGFwZXJIaW50cyIgbXNnaWQ9IjMyNzg2MDgxNjU5Nzc3MzY1MzgiPiLgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KS14KS+4KSy4KSq4KWH4KSq4KSwIOCkhuCkleCkvuCksCDgpLjgpK7gpL7gpK/gpYvgpJzgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0V2FsbHBhcGVySGludHMiIG1zZ2lkPSI4MjM1Nzg0Mzg0MjIzNzMwMDkxIj4i4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkteCkvuCksuCkquClh+CkquCksOCkleCliyDgpIbgpJXgpL7gpLAg4KS44KSZ4KWN4KSV4KWH4KSk4KS54KSw4KWCIOCkruCkv+CksuCkvuCkieCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFzdGVyQ2xlYXIiIG1zZ2lkPSIyMzE1NzUwNDIzMTM5Njk3Mzk3Ij4i4KSV4KS+4KSw4KWN4KSv4KS24KS+4KSy4KS+IOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkquClgeCkqOCkg+CkuOClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYXN0ZXJDbGVhciIgbXNnaWQ9IjM2NjUzODA0OTI2MzM5MTAyMjYiPiLgpK/gpLjgpJXgpL4g4KSr4KWN4KSv4KS+4KSV4KWN4KSf4KWN4KSw4KS/IOCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiwg4KSV4KSo4KWN4KSr4KS/4KSX4KSw4KWH4KS44KSoIOCksCDgpLjgpY3gpKXgpL7gpKrgpL/gpKQg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkquCljeCksOCko+CkvuCksuClgOCkruCkviDgpKrgpYHgpLDgpYgg4KSq4KWB4KSo4KSD4KS44KWH4KSfIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFRpbWUiIG1zZ2lkPSIyMDIxNjE0ODI5NTkxNzc1NjQ2Ij4i4KS44KSu4KSvIOCkuOClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxODk2MzQxNDM4MTUxMTUyODgxIj4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSV4KWLIOCkmOCkoeClgOCkleCliyDgpLjgpK7gpK8g4KSs4KSm4KSy4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE4NTU3MDI3MzA3MzgwMjAiPiLgpKvgpYvgpKjgpJXgpYsg4KSY4KSh4KWA4KSV4KWLIOCkuOCkruCkryDgpKzgpKbgpLLgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFRpbWVab25lIiBtc2dpZD0iMjk0NTA3OTgwMTAxMzA3NzM0MCI+IuCkuOCkruCkryDgpJXgpY3gpLfgpYfgpKTgpY3gpLAg4KS44KWH4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNjc2OTgzNzEyMzE1ODI3NjQ1Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkleCliyDgpLjgpK7gpK8g4KSV4KWN4KS34KWH4KSk4KWN4KSwIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDQ5OTk0MzQ4ODQzNjYzMzM5OCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKvgpYvgpKjgpJXgpYsg4KS44KSu4KSvIOCkleCljeCkt+Clh+CkpOCljeCksCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjQ4MjkyNjIzNDk2OTEzODY5ODYiPiJBY2NvdW50TWFuYWdlclNlcnZpY2Ug4KSV4KWLIOCksOClguCkquCkruCkviDgpJXgpL7gpLDgpY3gpK8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjb3VudE1hbmFnZXJTZXJ2aWNlIiBtc2dpZD0iMTk0ODQ1NTU1MjMzMzYxNTk1NCI+IuCkluCkvuCkpOCkviDgpIXgpKfgpL/gpJXgpL7gpLDgpYDgpLngpLDgpYLgpLLgpL7gpIgg4KSV4KSyIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldEFjY291bnRzIiBtc2dpZD0iMTA4Njc5NTQ2Nzc2MDEyMjExNCI+IuCkieCkquCkleCksOCko+CkruCkviDgpJbgpL7gpKTgpL7gpLngpLDgpYIg4KSt4KWH4KSf4KWN4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QWNjb3VudHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI3NDE0OTY1MzQ3Njk2NjAwMjciPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSm4KWN4KS14KS+4KSw4KS+IOCknOCljeCknuCkvuCkpCDgpJbgpL7gpKTgpL7gpLngpLDgpYLgpJXgpYsg4KS44KWC4KSa4KWAIOCkquCkvuCkieCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpKbgpY3gpLXgpL7gpLDgpL4g4KSk4KSq4KS+4KSI4KSC4KSy4KWHIOCkuOCljeCkpeCkvuCkquCkv+CkpCDgpJfgpLDgpY3gpKjgpYHgpK3gpI/gpJXgpYsg4KSV4KWB4KSo4KWIIOCkquCkqOCkvyDgpJbgpL7gpKTgpL7gpLngpLDgpYIg4KS44KSu4KS+4KS14KWH4KS2IOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRBY2NvdW50cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0NDgzMTY4MjI0NTE4MDczODIiPiLgpKvgpYvgpKjgpLLgpL7gpIgg4KSl4KS+4KS54KS+IOCkreCkj+CkleCkviDgpJbgpL7gpKTgpL7gpLngpLDgpYLgpJXgpYsg4KS44KWC4KSa4KWAIOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS44KSy4KWHIOCkpOCkquCkvuCkiOCkgeCksuClhyDgpLjgpY3gpKXgpL7gpKrgpKjgpL4g4KSX4KSw4KWN4KSo4KWBIOCkreCkj+CkleCkviDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpKzgpL7gpJ8g4KS44KWD4KSc4KS/4KSkIOCkleClgeCkqOCliCDgpJbgpL7gpKTgpL7gpLngpLDgpYIg4KS44KSu4KS+4KS14KWH4KS2IOCkueClgeCkqCDgpLjgpJXgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2F1dGhlbnRpY2F0ZUFjY291bnRzIiBtc2dpZD0iNTI2NTkwODQ4MTE3MjczNjkzMyI+IuCkluCkvuCkpOCkviDgpLjgpL/gpLDgpY3gpJzgpKjgpL4g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOCksCDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KS44KWH4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2F1dGhlbnRpY2F0ZUFjY291bnRzIiBtc2dpZD0iNTQ3MjEyNDI5NjkwODk3NzI2MCI+IuCkluCkvuCkpOCkvuCkueCksOClguCkleCliyDgpLjgpL/gpLDgpY3gpJzgpKjgpL4g4KSX4KSw4KWN4KSo4KWHIOCksCDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSo4KWHIOCksCDgpIngpKjgpYDgpLngpLDgpYLgpJXgpYsg4KSq4KS+4KS44KS14KSw4KWN4KSh4KS54KSw4KWC4KSV4KWLIOCkuOClh+Ckn+Ckv+CkmSDgpJfgpLDgpY3gpKjgpYcg4KS44KS54KS/4KSkIOCkluCkvuCkpOCkviDgpKrgpY3gpLDgpKzgpKjgpY3gpKfgpJXgpJXgpYsg4KSW4KS+4KSk4KS+IOCkhuCkp+Ckv+CkleCkvuCksOClgCDgpLjgpJXgpY3gpLfgpK7gpKTgpL7gpLngpLDgpYIg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI0OTgzMTI2MzA0NzU3MTc3MzA1Ij4i4KSW4KS+4KSk4KS+4KS54KSw4KWCIOCkpeCkquCljeCkqOClgeCkueCli+CkuOCljSDgpLXgpL4g4KS54KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI4Njk4Mjk1NjI1NDg4MjkyNTA2Ij4i4KSW4KS+4KSk4KS+4KS54KSw4KWCIOCkpeCkquCljeCkqOClhyDgpLAg4KS54KSf4KS+4KSJ4KSo4KWHIOCknOCkuOCljeCkpOCkviDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL7gpLngpLDgpYIg4KS44KSu4KWN4KSq4KSo4KWN4KSoIOCkl+CksOCljeCkqCwg4KSwIOCkieCkqOClgOCkueCksOClguCkleCliyDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSu4KWH4KSf4KS+4KSJ4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91c2VDcmVkZW50aWFscyIgbXNnaWQ9IjIzNTQ4MTM5NjE2Mzg3NzY0MiI+IuCkieCkquCkleCksOCko+CkruCkviDgpJbgpL7gpKTgpL7gpLngpLDgpYLgpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZUNyZWRlbnRpYWxzIiBtc2dpZD0iNzk4NDIyNzE0NzQwMzM0NjQyMiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKrgpY3gpLDgpK7gpL7gpKPgpYDgpJXgpLDgpKMg4KSf4KWL4KSV4KSo4KS54KSw4KWCIOCkheCkqOClgeCksOCli+CkpyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTmV0d29ya1N0YXRlIiBtc2dpZD0iNDk1MTAyNzk2NDM0ODk3NDc3MyI+IuCkqOClh+Ckn+CkteCksOCljeCklSDgpJzgpKHgpL7gpKjgpLngpLDgpYIg4KS54KWH4KSw4KWN4KSo4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTmV0d29ya1N0YXRlIiBtc2dpZD0iODMxODk2NDQyNDY3NTk2MDk3NSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSc4KSh4KS+4KSo4KS54KSw4KWCIOCknOCkuOCljeCkpOCliCDgpJXgpYHgpKgg4KSo4KWH4KSf4KS14KSw4KWN4KSV4KS54KSw4KWCIOCkheCkteCkuOCljeCkpeCkv+CkpCDgpLngpYHgpKjgpY3gpJvgpKjgpY0g4KSwIOCknOCkoeCkv+CkpCDgpJvgpKjgpY0g4KSc4KS44KSy4KWHIOCkueClh+CksOCljeCkqOCksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jcmVhdGVOZXR3b3JrU29ja2V0cyIgbXNnaWQ9IjgwMTg3NTgxMzY0MDQzMjM2NTgiPiLgpKrgpYLgpLDgpY3gpKMg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkquCkueClgeCkgeCkmiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iMzQwMzA2MjE4Nzc3OTcyNDE4NSI+IuCkqOClh+Ckn+CkteCksOCljeCklSDgpLjgpJXgpYfgpJ/gpLngpLDgpYIg4KS44KS/4KSw4KWN4KSc4KSo4KS+IOCkl+CksOCljeCkqCDgpLAg4KSV4KS44KWN4KSf4KSuIOCkqOClh+Ckn+CkteCksOCljeCklSDgpKrgpY3gpLDgpYvgpJ/gpYvgpJXgpLIg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpKzgpY3gpLDgpL7gpIngpJzgpLAg4KSwIOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcg4KSH4KSo4KWN4KSf4KSw4KSo4KWH4KSf4KSu4KS+IOCkoeClh+Ckn+CkviDgpKrgpKDgpL7gpIngpKjgpYcg4KSu4KS+4KSn4KWN4KSv4KSuIOCkquCljeCksOCkpuCkvuCkqCDgpJfgpLDgpY3gpJvgpKjgpY0sIOCkpOCljeCkr+CkuOCliOCksuClhyDgpIfgpKjgpY3gpJ/gpLDgpKjgpYfgpJ/gpK7gpL4g4KSh4KWH4KSf4KS+IOCkquCkoOCkvuCkieCkqCDgpK/gpYsg4KSF4KSo4KWB4KSu4KSk4KS/4KSV4KWLIOCkhuCkteCktuCljeCkr+CkleCkpOCkviDgpKrgpLDgpY3gpKbgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MDU2NjAxNTk2NzU3NTE4OTYiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIOCksCDgpJ/gpY3gpLDgpL7gpKvgpL/gpJUg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSAvIOCksOCli+CkleCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MzMzNzk4ODg2NDEyNzE0MTkzIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkqOClh+Ckn+CkteCksOCljeCklSDgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqCDgpLAg4KS44KSs4KWIIOCkqOClh+Ckn+CkteCksOCljeCklSDgpJ/gpY3gpLDgpL7gpKvgpL/gpJUg4KSw4KWL4KSV4KWN4KSoIOCksCDgpKrgpLDgpYDgpJXgpY3gpLfgpKMg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJssIOCkieCkpuCkvuCkueCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KSV4KWB4KSo4KWIIOCkquCkqOCkvyBBUE4g4KSV4KWLIOCkquCljeCksOCli+CkleCljeCkuOClgCDgpLAg4KSq4KWL4KSw4KWN4KSfIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpaQg4KSW4KSw4KS+4KSsIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSc4KWN4KSe4KS+4KSoIOCkrOCkv+CkqOCkviDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSq4KWN4KSv4KS+4KSV4KWH4KSf4KS54KSw4KWCIOCkruCli+CkqOCkv+Ckn+CksCDgpJfgpLDgpY3gpKgsIOCkquClgeCkqDrgpKjgpL/gpLDgpY3gpKbgpYfgpLbgpL/gpKQg4KSX4KSw4KWN4KSoLCDgpLXgpL4g4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZU5ldHdvcmtTdGF0ZSIgbXNnaWQ9Ijk1ODg4NDI5MTQ1NDMyNzMwOSI+IuCkqOClh+Ckn+CkteCksOCljeCklSDgpJzgpKHgpL7gpKgg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZU5ldHdvcmtTdGF0ZSIgbXNnaWQ9IjY3ODkxMjM5MTI0NzY0MTYyMTQiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCknOCkoeCkvuCkqOCkleCliyDgpLjgpY3gpKXgpL/gpKTgpL8g4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VUZXRoZXJTdGF0ZSIgbXNnaWQ9IjU5NTI1ODQ5NjQzNzMwMTc5NjAiPiLgpJ/gpYfgpKXgpLDgpY3gpKEg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCknOCkoeCkvuCkqCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlVGV0aGVyU3RhdGUiIG1zZ2lkPSIxNTI0NDQxMzQ0NDEyMzE5NzgwIj4i4KSf4KS/4KSl4KSwIOCkl+CksOClh+CkleCliyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSc4KSh4KS+4KSo4KSV4KWLIOCkuOCljeCkpeCkv+CkpOCkvyDgpKzgpKbgpLLgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZUJhY2tncm91bmREYXRhU2V0dGluZyIgbXNnaWQ9IjE0MDA2NjYwMTI2NzE2NDg3NDEiPiLgpKrgpYPgpLfgpY3gpKDgpK3gpYLgpK7gpL8g4KSh4KWH4KSf4KS+IOCkquCljeCksOCkr+Cli+CklyDgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUJhY2tncm91bmREYXRhU2V0dGluZyIgbXNnaWQ9IjUzNDc3Mjk1Nzg0Njg3NDQzNzkiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSq4KWD4KS34KWN4KSg4KSt4KWC4KSu4KS/IOCkoeClh+Ckn+CkviDgpIngpKrgpK/gpYvgpJcg4KS44KWH4KSf4KS/4KSZIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2lmaVN0YXRlIiBtc2dpZD0iNTIwMjAxMjk0OTI0NzA0MDAxMSI+IuCkteCkvuCkhy3gpKvgpL7gpIcg4KSc4KSh4KS+4KSo4KS54KSw4KWCIOCkueClh+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1dpZmlTdGF0ZSIgbXNnaWQ9IjUwMDI3OTgwNzczODc4MDM3MjYiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS14KS+4KSHLeCkq+CkvuCkhyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJXgpJXgpYsg4KSs4KS+4KSw4KWH4KSu4KS+IOCknOCkvuCkqOCkleCkvuCksOClgCDgpLngpYfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkmywg4KSc4KS44KWN4KSk4KWIIOCkleCkvyDgpLXgpL7gpIct4KSr4KS+4KSHIOCkuOCkleCljeCkt+CkriDgpJsg4KSV4KS/IOCkm+CliOCkqCDgpLAg4KSc4KSh4KS+4KSoIOCkl+CksOCkv+Ckj+CkleCliyDgpLXgpL7gpIct4KSr4KS+4KSHIOCkieCkquCkleCksOCko+CkueCksOClguCkleCliyDgpKjgpL7gpK7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVdpZmlTdGF0ZSIgbXNnaWQ9IjY1NTA2NDExODg3NDkxMjgwMzUiPiLgpLXgpL7gpIct4KSr4KS+4KSH4KS44KSB4KSXIOCknOCli+CkoeCljeCkqOClgeCkueCli+CkuOCljSDgpLXgpL4g4KSb4KWB4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaVN0YXRlIiBtc2dpZD0iNzEzNzk1MDI5NzM4NjEyNzUzMyI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLXgpL7gpIct4KSr4KS+4KSHIOCkquCkueClgeCkgeCkmiDgpKzgpL/gpKjgpY3gpKbgpYHgpKzgpL7gpJ8g4KSc4KSh4KS+4KSoIOCkl+CksOCljeCkqCDgpLAg4KS14KS/4KSa4KWN4KSb4KWH4KSm4KSoIOCkl+CksOCljeCkqCDgpLAg4KS14KS+4KSHLeCkq+CkvuCkhyDgpKjgpYfgpJ/gpLXgpLDgpY3gpJXgpLngpLDgpYLgpJXgpYsg4KSy4KS+4KSX4KS/IOCkieCkquCkleCksOCkoyDgpJXgpKjgpY3gpKvgpL/gpJfgpLDgpYfgpLjgpKjgpK7gpL4g4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSo4KS54KSw4KWCIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIG1zZ2lkPSIxMzY4MjUzODcxNDgzMjU0Nzg0Ij4i4KS14KS+4KSHLeCkq+CkvuCkhyBNdWx0aWNhc3Qg4KS44KWN4KS14KS/4KSV4KWD4KSk4KS/4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijc5Njk3NzQwMjEyNTYzMzY1NDgiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSu4KSy4KWN4KSf4KS/4KSV4KS+4KS34KWN4KSfIOCkoOClh+Ckl+CkvuCkqOCkvuCkueCksOClgiDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWH4KSwIOCkteCkvuCkhy3gpKvgpL7gpIcg4KSo4KWH4KSf4KS14KSw4KWN4KSV4KSu4KS+IOCkquCkoOCkvuCkh+Ckj+CkleCliyDgpKrgpY3gpK/gpL7gpJXgpYfgpJ/gpLngpLDgpYIg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSbLCDgpJXgpYfgpLXgpLIg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpK7gpL7gpKTgpY3gpLAg4KS54KWL4KSH4KSo4KWkIOCkr+CkuOCksuClhyDgpJfgpYjgpLAt4KSu4KSy4KWN4KSf4KS/4KSV4KS+4KS34KWN4KSfIOCkruCli+CkoSDgpK3gpKjgpY3gpKbgpL4g4KSs4KSi4KWAIOCkieCksOCljeCknOCkviDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjg1MTk0OTcwNjAyNTM0OTkyNiI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpKvgpYvgpKgg4KSu4KS+4KSk4KWN4KSwIOCkueCli+Ckh+CkqCwg4KSu4KSy4KWN4KSf4KS/4KSV4KS+4KS44KWN4KSfIOCkoOClh+Ckl+CkvuCkqOCkvuCkueCksOClguCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWHIOCkteCkvuCkhy3gpKvgpL7gpIcg4KSo4KWH4KSf4KS14KSw4KWN4KSV4KSV4KS+IOCkuOCkrOCliCDgpIngpKrgpJXgpLDgpKPgpLngpLDgpYLgpK7gpL4g4KSq4KSg4KS+4KSH4KSP4KSV4KS+IOCkquCljeCkr+CkvuCkleClh+Ckn+CkueCksOClgiDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpJfgpYjgpLAt4KSu4KSy4KWN4KSf4KS/4KSV4KS+4KS44KWN4KSfIOCkruCli+CkoeCkreCkqOCljeCkpuCkviDgpKzgpKLgpYAg4KSJ4KSw4KWN4KSc4KS+IOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JsdWV0b290aEFkbWluIiBtc2dpZD0iNjAwNjk2NzM3MzkzNTkyNjY1OSI+IuCkrOCljeCksuClgeCkn+ClgeCkpSDgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYLgpK7gpL4g4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aEFkbWluIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2OTIxMTc3NDcxNzQ4ODgyMTM3Ij4i4KS44KWN4KSl4KS+4KSo4KWA4KSvIOCkrOCljeCksuClgeCkn+ClgeCkpSDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpLLgpL7gpIgg4KSV4KSo4KWN4KSr4KS/4KSX4KSwIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSwIOCkn+CkvuCkouCkvuCkleCkviDgpIngpKrgpJXgpLDgpKPgpLngpLDgpYLgpLLgpL7gpIgg4KSq4KSk4KWN4KSk4KS+IOCksuCkl+CkvuCkieCkqCDgpLAg4KSc4KWL4KSh4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aEFkbWluIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODkzMTY4MjE1OTMzMTU0MjEzNyI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpY3gpKXgpL7gpKjgpYDgpK8g4KSs4KWN4KSy4KWB4KSf4KWB4KSlIOCkq+Cli+CkqCDgpJXgpKjgpY3gpKvgpL/gpJfgpLAg4KSX4KSw4KWN4KSoIOCksCDgpJ/gpL7gpKLgpL7gpJXgpL4g4KSJ4KSq4KSV4KSw4KSj4KS54KSw4KWC4KS44KSB4KSXIOCkluCli+CknCDgpJfgpLDgpY3gpKgg4KSwIOCknOCli+CkoeClgCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2ltYXhTdGF0ZSIgbXNnaWQ9IjQxOTU5MDcwMTA2MTAyMDU3MDMiPiJXaU1BWOCkuOCkgeCklyDgpJzgpYvgpKHgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KS14KS+IOCkm+ClgeCkn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1dpbWF4U3RhdGUiIG1zZ2lkPSI2MzYwMTAyODc3MjYxOTc4ODg3Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkteCkvuCkh+CkruCljeCkr+CkvuCkleCljeCkuCDgpLjgpJXgpY3gpLfgpK4g4KSbIOCkleCkvyDgpJvgpYjgpKgg4KSwIOCknOCkoeCkvuCkqCDgpK3gpI/gpJXgpYsg4KSV4KWB4KSo4KWIIOCkquCkqOCkvyDgpLXgpL7gpIfgpK7gpY3gpK/gpL7gpJXgpY3gpLgg4KSo4KWH4KSf4KS14KSw4KWN4KSV4KS54KSw4KWC4KSV4KWLIOCkrOCkvuCksOClh+CkruCkviDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSjIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaW1heFN0YXRlIiBtc2dpZD0iMjQwNTA0MjI2NzEzMTQ5NjU3OSI+IuCkteCkvuCkh+CkruCljeCkr+CkvuCkleCljeCkuCDgpLjgpY3gpKXgpL/gpKTgpL8g4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMxNTY0NTY1MDQwODQyMDE4MDUiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS14KS+4KSH4KSu4KWN4KSv4KS+4KSV4KWN4KS4IOCkqOClh+Ckn+CkteCksOCljeCkleCkueCksOClguCkrOCkvuCknyDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KSc4KSh4KS+4KSoIOCkl+CksOCljeCkqCDgpLAg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkteCkv+CkmuCljeCkm+Clh+CkpuCkqCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2OTcwMjUwNDMwMDQ5MjM3OTgiPiLgpLXgpL7gpIfgpK7gpY3gpK/gpL7gpJXgpY3gpLgg4KSo4KWH4KSf4KS14KSw4KWN4KSV4KS54KSw4KWC4KS44KSB4KSXIOCkq+Cli+CkqCDgpJzgpYvgpKHgpY3gpKgg4KSwIOCkm+ClgeCkn+CkvuCkieCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmx1ZXRvb3RoIiBtc2dpZD0iNjEyNzc2OTMzNjMzOTI3NjgyOCI+IuCkrOCljeCksuClgeCkn+ClgeCkpSDgpIngpKrgpJXgpLDgpKPgpLngpLDgpYLgpLjgpIHgpJcg4KSc4KWL4KSh4KWAIOCkruCkv+CksuCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQ4MDcyMjE4MTg1MjQzODYyOCI+IuCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkruCkviDgpKzgpY3gpLLgpYHgpJ/gpYHgpKXgpJXgpYsg4KSV4KSo4KWN4KSr4KS/4KSX4KWB4KSw4KWH4KS44KSo4KSy4KS+4KSIIOCkueClh+CksOCljeCkqCDgpLAg4KSs4KSo4KS+4KSJ4KSoIOCksCDgpJzgpYvgpKHgpYAg4KSJ4KSq4KSV4KSw4KSj4KS54KSw4KWC4KS44KSB4KSXIOCknOCkoeCkvuCkqOCkueCksOClguCksuCkvuCkiCDgpLjgpY3gpLXgpYDgpJXgpL7gpLAg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzIwNzEwNjMyNDQ1MjMxMjczOSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKvgpYvgpKjgpK7gpL4g4KSs4KWN4KSy4KWB4KSf4KWB4KSl4KSV4KWLIOCkleCkqOCljeCkq+Ckv+Ckl+CksOClh+CkuOCkqCDgpLngpYfgpLDgpY3gpKgg4KSwIOCknOCli+CkoeClgCDgpK3gpI/gpJXgpL4g4KSJ4KSq4KSV4KSw4KSj4KS54KSw4KWC4KS44KSB4KSXIOCknOCkoeCkvuCkqOCkueCksOClgiDgpKzgpKjgpL7gpIngpKgg4KSwIOCkuOCljeCkteClgOCkleCkvuCksCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbmZjIiBtc2dpZD0iNDQyMzM1MTI3NDc1Nzg3Njk1MyI+IuCkqOCknOCkv+CklSDgpJXgpY3gpLfgpYfgpKTgpY3gpLAg4KS44KSC4KSa4KS+4KSwIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCko+CkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX25mYyIgbXNnaWQ9IjcxMjA2MTE4MTk0MDE3ODk5MDciPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSo4KSv4KS+4KSBIOCkleCljeCkt+Clh+CkpOCljeCksCDgpLjgpILgpJrgpL7gpLAgKE5GQykg4KSf4KWN4KSv4KS+4KSX4KS54KSw4KWCLCDgpJXgpL7gpLDgpY3gpKHgpLngpLDgpYIg4KSwIOCkquCkvuCkoOCkleCkueCksOClguCkuOCkgeCklyDgpIXgpKjgpY3gpKTgpLDgpY3gpJXgpY3gpLDgpL/gpK/gpL4g4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Rpc2FibGVLZXlndWFyZCIgbXNnaWQ9IjM1OTg0OTYzMDE0ODY0MzkyNTgiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSy4KSVIOCkheCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kaXNhYmxlS2V5Z3VhcmQiIG1zZ2lkPSI2MDM0MjAzMDY1MDc3MTIyOTkyIj4i4KSV4KWB4KSo4KWIIOCkuOCkruCljeCkrOCkqOCljeCkp+Ckv+CkpCDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KS44KWB4KSw4KSV4KWN4KS34KS+IOCksCDgpJXgpL/gpLLgpJXgpLLgpL7gpIgg4KSF4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpIngpKbgpL7gpLngpLDgpKPgpJXgpYsg4KSy4KS+4KSX4KS/LCDgpIXgpKjgpY3gpKTgpLDgpY3gpJfgpK7gpKgg4KSr4KWL4KSoIOCkleCksiDgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSX4KSw4KWN4KSm4KS+IOCkq+Cli+CkqOCksuClhyDgpJXgpL/gpLLgpJXgpLLgpL7gpIgg4KSF4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCljeCkmywg4KSk4KWN4KSv4KS44KSq4KSb4KS/IOCkleCksiDgpLjgpJXgpL/gpI/gpJXgpYsg4KSs4KWH4KSy4KS+IOCkleCkv+CksuCklSDgpKrgpYHgpKjgpIPgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU3luY1NldHRpbmdzIiBtc2dpZD0iNjIwMTgxMDAwODIzMDUwMzA1MiI+IuCkuOCkruClgOCkleCksOCkoyDgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIg4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFN5bmNTZXR0aW5ncyIgbXNnaWQ9IjI3MDY3NDU2NzQ1Njk2Nzg2NDQiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSW4KS+4KSk4KS+4KSV4KWLIOCksuCkvuCkl+CkvyDgpLjgpL/gpJngpY3gpJUg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIOCkquCkouCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkieCkpuCkvuCkueCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KSv4KS44KSy4KWHIOCkteCljeCkr+CkleCljeCkpOCkv+CkueCksOCkleCliyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSW4KS+4KSk4KS+4KS44KSB4KSXIOCkuOCkv+CkmeCljeCklSDgpK3gpI/gpJXgpYsg4KSo4KSt4KSP4KSV4KWLIOCkqOCkv+CksOCljeCkp+CkvuCksOCkoyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSm4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9IjU0MDg2OTQ4NzU3OTM5NDUzMTQiPiLgpJ/gpJfgpLIg4KS44KS/4KSZ4KWN4KSVIOCkluClgeCksuCkviDgpLAg4KSs4KSo4KWN4KSmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTeW5jU2V0dGluZ3MiIG1zZ2lkPSI4OTU2MjYyNTkxMzA2MzY5ODY4Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkluCkvuCkpOCkvuCkleCliyDgpLLgpL7gpJfgpL8g4KS44KS/4KSZ4KWN4KSVIOCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSJ4KSm4KS+4KS54KSw4KSj4KSV4KWLIOCksuCkvuCkl+Ckvywg4KSv4KWLIOCkluCkvuCkpOCkvuCkuOCkgeCklyDgpLXgpY3gpK/gpJXgpY3gpKTgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCkuOCkv+CkmeCljeCklSDgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KWN4KSoIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU3luY1N0YXRzIiBtc2dpZD0iNzM5NjU3NzQ1MTM2MDIwMjQ0OCI+IuCkuOCkv+CkmeCljeCklSDgpKTgpKXgpY3gpK/gpL7gpJngpY3gpJXgpLngpLDgpYIg4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFN5bmNTdGF0cyIgbXNnaWQ9IjE1MTAxNDM3NjE3NTc2MDYxNTYiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSW4KS+4KSk4KS+4KSV4KWLIOCksuCkvuCkl+CkvyDgpLjgpK7gpYDgpJXgpLDgpKPgpJXgpYsg4KSG4KSB4KSV4KSh4KS+IOCkuOCkruClgOCkleCksOCkoyDgpJjgpJ/gpKjgpL7gpLngpLDgpYLgpJXgpYsgIOCkh+CkpOCkv+CkueCkvuCkuCDgpLAg4KS44KSu4KWA4KSV4KSw4KSjIOCkl+CksOCkv+Ckj+CkleCliyDgpKHgpYfgpJ/gpL7gpJXgpYsg4KSu4KS+4KSq4KSoIOCkuOCkruClh+CkpCwg4KSq4KSi4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N1YnNjcmliZWRGZWVkc1JlYWQiIG1zZ2lkPSI0NzU2NjA5NjM3MDUzMzUzMzE4Ij4i4KS44KSm4KS44KWN4KSvIOCkrOCkqOCkvuCkh+CkleCkviDgpKvgpL/gpKHgpLngpLDgpYIg4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3Vic2NyaWJlZEZlZWRzUmVhZCIgbXNnaWQ9IjU1NTcwNTg5MDc5MDYxNDQ1MDUiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KS54KS/4KSy4KWH4KSV4KWLIOCkuOCkruClgOCkleCksOCkoyDgpJfgpLDgpL/gpI/gpJXgpL4g4KS44KWC4KSa4KSV4KS54KSw4KWCIOCkrOCkvuCksOClhyDgpLXgpL/gpLXgpLDgpKPgpLngpLDgpYIg4KSy4KS/4KSo4KWHIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N1YnNjcmliZWRGZWVkc1dyaXRlIiBtc2dpZD0iOTAxNTI0NjMyNTQwODIwOTI5NiI+IuCkuOCkpuCkuOCljeCkryDgpKzgpKjgpL7gpIfgpJXgpL4g4KSr4KS/4KSh4KS54KSw4KWCIOCksuClh+CkluCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N1YnNjcmliZWRGZWVkc1dyaXRlIiBtc2dpZD0iNjkyODkzMDE4ODgyNjA4OTQxMyI+IuCkpOCkquCkvuCkiOCkgeCkleCkviDgpK3gpLDgpY3gpJbgpLDgpYgg4KS44KS/4KSZ4KWN4KSVIOCkq+Ckv+CkoeCkueCksOClguCksuCkvuCkiCDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KS44KS/4KSZ4KWN4KSVIOCkq+Ckv+CkoeCkueCksOClguCksuCkvuCkiCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpK/gpLjgpLLgpYcgIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqCDgpLjgpJXgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWREaWN0aW9uYXJ5IiBtc2dpZD0iNDEwNzEwMTUyNTc0NjAzNTcxOCI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpLbgpKzgpY3gpKbgpJXgpYvgpLbgpK7gpL4g4KSl4KSq4KWH4KSV4KS+IOCktuCkrOCljeCkpuCkueCksOClgiDgpKrgpKLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjY1OTYxNDYwMDMzODkwNDI0MyI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpLLgpYcg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCktuCkrOCljeCkpuCkleCli+CktuCkruCkviDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSX4KSw4KWH4KSV4KS+IOCkueClgeCkqCDgpLjgpJXgpY3gpKjgpYcg4KS44KSs4KWIIOCktuCkrOCljeCkpuCkueCksOClgiwg4KSo4KS+4KSu4KS54KSw4KWCIOCksCDgpKrgpKbgpL7gpLXgpLLgpYDgpLngpLDgpYIg4KSq4KSi4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjIxODMxMTA0MDIzMTQ0NDExMDYiPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4t4KSq4KSw4KS/4KSt4KS+4KS34KS/4KSkIOCktuCkrOCljeCkpuCkleCli+CktuCkruCkviDgpLbgpKzgpY3gpKbgpLngpLDgpYIg4KSl4KSq4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iODE4NTM4NTcxNjI1NTA2NTI5MSI+IuCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpLbgpKzgpY3gpKbgpJXgpYvgpLbgpK7gpL4g4KSo4KSv4KS+4KSBIOCktuCkrOCljeCkpiDgpLLgpYfgpJbgpY3gpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFJlYWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iODIzNTM0MTUxNTYwNTU1OTY3NyI+IuCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpJfgpLDgpL/gpI/gpJXgpL4g4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkquCkueClgeCkgeCkmuCkleCliyDgpKrgpLDgpYDgpJXgpY3gpLfgpKMg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODIzNTM0MTUxNTYwNTU1OTY3NyI+IuCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpJfgpLDgpL/gpI/gpJXgpL4g4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkquCkueClgeCkgeCkmuCkleCliyDgpKrgpLDgpYDgpJXgpY3gpLfgpKMg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNjQyNDczMjkyMzQ4MTMyMDcyIj4i4KSt4KS14KS/4KS34KWN4KSvIOCkieCkquCkleCksOCko+CkueCksOClguCkruCkviDgpIngpKrgpLLgpKzgpY3gpKcg4KS54KWB4KSo4KWHIFVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKPgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkruCkpOCkvyDgpKrgpLDgpYDgpJXgpY3gpLfgpKMg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkUmVhZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU5MTQ0MDI2ODQ2ODU4NDg4MjgiPiLgpK3gpLXgpL/gpLfgpY3gpK8g4KSJ4KSq4KSV4KSw4KSj4KS54KSw4KWC4KSu4KS+IOCkieCkquCksuCkrOCljeCkpyDgpLngpYHgpKjgpYcgU0Qg4KSV4KS+4KSw4KWN4KSh4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iODQ4NTk3OTA2MjI1NDY2Njc0OCI+IuCkpOCkquCkvuCkiOCkgeCkleCliyBVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSV4KWLIOCkteCkv+Ckt+Ckr+CkteCkuOCljeCkpOClgeCkueCksOClguCksuCkvuCkiCDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOCkteCkviDgpK7gpYfgpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODgwNTY5MzYzMDA1MDQ1ODc2MyI+IuCkpOCkquCkvuCkiOCkgeCkleCliyBTRCDgpJXgpL7gpLDgpY3gpKHgpJXgpYsg4KS14KS/4KS34KSv4KS44KWC4KSa4KWAIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KS14KS+IOCkruClh+Ckn+CljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYxNzU0MDYyOTk0NDU3MTA4ODgiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSu4KS+IOCksuClh+CkluCljeKAjeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQzMzc0MTc3OTA5MzY2MzIwOTAiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIggU0Qg4KSV4KS+4KSw4KWN4KSh4KSu4KS+IOCksuClh+CkluCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTk4MzkxOTk3MDY4NzkwMTUiPiLgpIbgpKjgpY3gpKTgpLDgpL/gpJUg4KSu4KS/4KSh4KS/4KSv4KS+IOCkreCko+CljeCkoeCkvuCksOCkoyDgpLjgpL7gpK7gpJfgpY3gpLDgpYDgpLngpLDgpYIg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljS/gpK7gpYfgpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgxODkxNjA1OTc2OTg1MjkxODUiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkruCkv+CkoeCkv+Ckr+CkviDgpK3gpKPgpY3gpKHgpL7gpLDgpKPgpJXgpYsg4KS44KS+4KSu4KSX4KWN4KSw4KWA4KS54KSw4KWCIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlRG9jcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3NzgzMTg1OTg0NDg4NDk4MjkiPiLgpJXgpL7gpJfgpJzgpL7gpKQg4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkquCljeCksOCkrOCkqOCljeCkpyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VEb2NzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODcwNDMyMzE3NjkxNDEyMTQ4NCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpJXgpL7gpJfgpJzgpL7gpKQg4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkuOCkruCkvuCkr+Cli+CknOCkqCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkQWNjZXNzQWxsIiBtc2dpZD0iODE1MDYxMzgyMzkwMDQ2MDU3NiI+IuCkuOCkrOCliCDgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpLngpLDgpYLgpJXgpYsg4KSs4KS+4KS54KWN4KSvIOCkreCko+CljeCkoeCkvuCksOCko+CkleCliyDgpKrgpLngpYHgpIHgpJog4KSw4KS+4KSW4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkQWNjZXNzQWxsIiBtc2dpZD0iMzIxNTIwODM1NzQxNTg5MTMyMCI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpKzgpYgg4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KS54KSw4KWC4KSV4KWLIOCksuCkvuCkl+CkvyDgpKzgpL7gpLngpY3gpK8g4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSu4KS+4KSl4KS/IOCkquCkueClgeCkgeCkmiDgpLDgpL7gpJbgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU2NTY0ODcyNjQ4MTk2Njk4MjQiPiLgpJXgpY3gpK/gpL7gpLgg4KSr4KS+4KSH4KSyIOCkquCljeCksOCko+CkvuCksuClgCDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU1Nzg5Njc2NDIyNjU1NTA5NTUiPiLgpJXgpYfgpLgg4KSr4KS+4KSH4KSyIOCkquCljeCksOCko+CkvuCksuClgOCksuCkvuCkiCDgpKrgpKLgpY3gpKgg4KSwIOCksuClh+CkluCljeKAjeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VzZV9zaXAiIG1zZ2lkPSI1OTg2OTUyMzYyNzk1ODcwNTAyIj4i4KSH4KSo4KWN4KSf4KSw4KSo4KWH4KSfIOCkleCksuCkueCksOClgiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KS14KS+IOCkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191c2Vfc2lwIiBtc2dpZD0iNDcxNzYzMjAwMDA2MjY3NDI5NCI+IuCkh+CkqOCljeCkn+CksOCkqOClh+CknyDgpJXgpLIg4KSX4KSw4KWN4KSoL+CkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKggU0lQIOCkuOClh+CkteCkvuCksuCkvuCkiCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZE5ldHdvcmtVc2FnZUhpc3RvcnkiIG1zZ2lkPSI3ODYyNTkzMjgzNjExNDkzMjMyIj4i4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkieCkquCkr+Cli+Ckl+CkleCliyDgpIfgpKTgpL/gpLngpL7gpLgg4KSq4KSi4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZE5ldHdvcmtVc2FnZUhpc3RvcnkiIG1zZ2lkPSI3Njg5MDYwNzQ5ODE5MTI2NDcyIj4i4KSo4KS/4KS24KWN4KSa4KS/4KSkIOCkqOClh+Ckn+CkteCksOCljeCkleCkueCksOClgiDgpLAg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSV4KWLIOCksuCkvuCkl+CkvyDgpJDgpKTgpL/gpLngpL7gpLjgpL/gpJUg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkieCkquCkr+Cli+CklyDgpKrgpKLgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VOZXR3b3JrUG9saWN5IiBtc2dpZD0iMjU2MjA1MzU5MjMzOTg1OTk5MCI+IuCkqOClh+Ckn+CkteCksOCljeCklSDgpKjgpYDgpKTgpL8g4KSq4KWN4KSw4KSs4KSo4KWN4KSnIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZU5ldHdvcmtQb2xpY3kiIG1zZ2lkPSI3NTM3NTg2NzcxNTU5MzcwNjY4Ij4i4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkqOClgOCkpOCkv+CkueCksOClgiDgpLXgpY3gpK/gpLXgpLjgpY3gpKXgpL7gpKrgpKgg4KSX4KSw4KWN4KSoIOCksCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJct4KS14KS/4KS24KWH4KS3IOCkqOCkv+Ckr+CkruCkueCksOClgiDgpKrgpLDgpL/gpK3gpL7gpLfgpL/gpKQg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlOZXR3b3JrQWNjb3VudGluZyIgbXNnaWQ9IjUwODgyMTczMDkwODg3Mjk2NTAiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSJ4KSq4KSv4KWL4KSXIOCksuClh+CkluCkvuCksuCkvuCkiCDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5TmV0d29ya0FjY291bnRpbmciIG1zZ2lkPSI1NDQzNDEyODY2NzQ2MTk4MTIzIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkleCkuOCksOClgCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpJXgpYsg4KS14KS/4KSw4KWC4KSm4KWN4KSn4KSu4KS+IOCkleCkuOCksOClgCDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSJ4KSq4KSv4KWL4KSX4KWAIOCkheCkleCkvuCkieCkqOCljeCkn+Clh+CkoSDgpJsg4KSt4KSo4KWH4KSwIOCkquCksOCkv+CkruCkvuCksOCljeCknOCkqCDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpKfgpL7gpLDgpKMg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSm4KWN4KS14KS+4KSw4KS+IOCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpLLgpL7gpJfgpL8g4KS54KWL4KSH4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYXJrTmV0d29ya1NvY2tldCIgbXNnaWQ9IjM2NTg1MjcyMTQ5MTQ5NTk3NDkiPiLgpLjgpJXgpYfgpJ/gpJXgpYsg4KSo4KS/4KS24KS+4KSo4KS54KSw4KWCIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYXJrTmV0d29ya1NvY2tldCIgbXNnaWQ9Ijc2NTU1Njg0MzM2OTYzNTY1NzgiPiLgpK7gpL7gpLDgpY3gpJcg4KSm4KSw4KWN4KS24KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KS44KSV4KWH4KSf4KSV4KWLIOCkqOCkv+CktuCkvuCkqOCkueCksOClgiDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05vdGlmaWNhdGlvbnMiIG1zZ2lkPSI3NjczNDE2NDg3ODczNDMyMjY4Ij4i4KS44KWC4KSa4KSo4KS+4KS54KSw4KWCIOCkquCkueClgeCkgeCkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNDU4NDU3NzQyNjgzNDMxMzg3Ij4i4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkrOCkvuCknyDgpKrgpYvgpLjgpY3gpJ8g4KSX4KSw4KS/4KSP4KSV4KS+4KS44KS54KS/4KSkIOCkquClgeCkqOCkg+CkquCljeCksOCkvuCkquCljeCkpCDgpJfgpLDgpY3gpKgsIOCkquCksOClgOCkleCljeCkt+CkoyDgpJfgpLDgpY3gpKgg4KSwIOCkuOClguCkmuCkqOCkvuCkueCksOClgiDgpLngpJ/gpL7gpIngpKgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROb3RpZmljYXRpb25MaXN0ZW5lclNlcnZpY2UiIG1zZ2lkPSI3MDU3NzY0NzQyMjExNjU2NjU0Ij4i4KSc4KS+4KSo4KSV4KS+4KSw4KWAIOCktuCljeCksOCli+CkpOCkviDgpLjgpYfgpLXgpL7gpK7gpL4g4KSs4KS+4KSB4KSn4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5vdGlmaWNhdGlvbkxpc3RlbmVyU2VydmljZSIgbXNnaWQ9Ijk4NTY5NzkxODU3NjkwMjk4NiI+IuCkueCli+CksuCljeCkoeCksOCksuCkvuCkiCDgpLjgpYLgpJrgpKjgpL4g4KS24KWN4KSw4KWL4KSk4KS+IOCkuOClh+CkteCkvuCkleCliyDgpLbgpYDgpLDgpY3gpLct4KS44KWN4KSk4KSw4KSV4KWLIOCkh+CkqOCljeCkn+CksOCkq+Clh+CkuCDgpKzgpL7gpIHgpKfgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkleCkueCkv+CksuClhyDgpKrgpKjgpL8g4KSG4KS14KS24KWN4KSv4KSVIOCkqOCkquCksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludm9rZUNhcnJpZXJTZXR1cCIgbXNnaWQ9IjM2OTk2MDA4MzM5NzUxMTc0NzgiPiLgpLXgpL7gpLngpJUt4KSq4KWN4KSw4KSm4KS+4KSoIOCkteCkv+CkqOCljeCkr+CkvuCkuCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KS44KWB4KSw4KWBIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludm9rZUNhcnJpZXJTZXR1cCIgbXNnaWQ9IjQxNTk1NDkxNTI1MjkxMTE5MjAiPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpLLgpL7gpIgg4KS14KS+4KS54KSVLeCkquCljeCksOCkpuCkvuCkqCDgpLXgpL/gpKjgpY3gpK/gpL7gpLgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkuOClgeCksOClgSDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpKfgpL7gpLDgpKMg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkleCkueCkv+CksuCljeCkr+CliCDgpIbgpLXgpLbgpY3gpK/gpJUg4KSq4KSw4KWN4KSo4KWHIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI4MjA2MDc3NDQ3ODM4OTA5NTE2Ij4i4KS44KSe4KWN4KSc4KS+4KSyIOCkheCkteCkuOCljeCkpeCkvuCkleCkviDgpKrgpLDgpY3gpK/gpLXgpYfgpJXgpY3gpLfgpKPgpJXgpL4g4KSy4KS+4KSX4KS/IOCkuOClgeCkqOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05ldHdvcmtDb25kaXRpb25zIiBtc2dpZD0iNjg5OTEwMjA3NTgyNTI3MjIxMSI+IuCkuOCknuCljeCknOCkvuCksiDgpIXgpLXgpLjgpY3gpKXgpL7gpJXgpL4g4KSq4KSw4KWN4KSv4KS14KWH4KSV4KWN4KS34KSjIOCkuOClgeCkqOCljeCkqOCkleCkviDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaTgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkmuCkvuCkgeCkueCkv+CkpuCliCDgpKjgpJrgpL7gpIHgpLngpL/gpKgg4KS44KSV4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2xpbWl0UGFzc3dvcmQiIG1zZ2lkPSI0NDk3NDIwNzI4ODU3NTg1NzkxIj4i4KSq4KS+4KS44KS14KSw4KWN4KShIOCkqOCkv+Ckr+CkruCkueCksOClgiDgpK7gpL/gpLLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2xpbWl0UGFzc3dvcmQiIG1zZ2lkPSIzMjUyMTE0MjAzOTE5NTEwMzk0Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSoLeCkheCkqOCksuCklSDgpKrgpL7gpLjgpLXgpLDgpY3gpKHgpLngpLDgpYLgpK7gpL4g4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+Ckh+Ckj+CkleCliyDgpLLgpK7gpY3gpKzgpL7gpIcg4KSwIOCkheCkleCljeCkt+CksOCkueCksOClgiDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dhdGNoTG9naW4iIG1zZ2lkPSI5MTQxMzA2NDY5NDIxOTk1MDMiPiLgpK7gpYvgpKjgpL/gpJ/gpLAg4KS44KWN4KSV4KWN4KSw4KS/4KSoLeCkheCkqOCksuCklSDgpKrgpY3gpLDgpK/gpKTgpY3gpKjgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dhdGNoTG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMyMTU3MjkyOTQyMTUwNzAwNzIiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkpuCkviDgpJfgpLLgpKQg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkn+CkvuCkh+CkqiDgpK3gpI/gpJXgpYsg4KS44KSC4KSW4KWN4KSv4KS+IOCkqOCkv+CksOClgOCkleCljeCkt+CkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KSwIOCkr+CkpuCkvyDgpKjgpL/gpJXgpYgg4KSn4KWH4KSw4KWIIOCkl+CksuCkpCDgpKrgpL7gpLjgpLXgpLDgpY3gpKHgpLngpLDgpYIg4KSf4KS+4KSH4KSqIOCkreCkj+CkleCkviDgpJvgpKgg4KSt4KSo4KWHIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpLLgpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOCkteCkviDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpJXgpL4g4KS44KSs4KWIIOCkoeClh+Ckn+CkviDgpK7gpYfgpJ/gpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dhdGNoTG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NzEyMzIzMDkxODQ2NzYxMDczIj4i4KS44KWN4KSV4KWN4KSw4KS/4KSo4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkpuCkviDgpJfgpLLgpKQg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkn+CkvuCkh+CkqiDgpK3gpI/gpJXgpYsg4KS44KSC4KSW4KWN4KSv4KS+IOCkqOCkv+CksOClgOCkleCljeCkt+CkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KSwIOCkr+CkpuCkvyDgpKjgpL/gpJXgpYgg4KSn4KWH4KSw4KWIIOCkl+CksuCkpCDgpKrgpL7gpLjgpLXgpLDgpY3gpKHgpLngpLDgpYIg4KSf4KS+4KSH4KSqIOCkreCkj+CkleCkviDgpJvgpKgg4KSt4KSo4KWHIOCkq+Cli+CkqCDgpLLgpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOCkteCkviDgpKvgpYvgpKjgpJXgpL4g4KS44KSs4KWIIOCkoeClh+Ckn+CkviDgpK7gpYfgpJ/gpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfcmVzZXRQYXNzd29yZCIgbXNnaWQ9IjI2MjAwNzcxOTEyNDI2ODg5NTUiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgt4KSF4KSo4KSy4KSVIOCkquCkvuCkuOCkteCksOCljeCkoSDgpKzgpKbgpLLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3Jlc2V0UGFzc3dvcmQiIG1zZ2lkPSI2MDU5NjM5NjIzMDE5MDQ0NTgiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgt4KSF4KSo4KSy4KSVIOCkquCkvuCkuOCkteCksOCljeCkoSDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2ZvcmNlTG9jayIgbXNnaWQ9IjIyNzQwODUzODQ3MDQyNDg0MzEiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSy4KSVIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZm9yY2VMb2NrIiBtc2dpZD0iMTE0MTc5NzU4ODQwMzgyNzEzOCI+IuCkleCkuOCksOClgCDgpLAg4KSV4KS54KS/4KSy4KWHIOCkuOCljeCkleCljeCksOCkv+CkqCDgpLLgpJUg4KSX4KSw4KWN4KSo4KWHIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfd2lwZURhdGEiIG1zZ2lkPSIzOTEwNTQ1NDQ2NzU4NjM5NzEzIj4i4KS44KSs4KWIIOCkoeClh+Ckn+CkviDgpK7gpYfgpJ/gpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dpcGVEYXRhIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzA2MTg0MDk2MDY3NzU2ODc2Ij4i4KSP4KSJ4KSf4KS+IOCkq+CljeCkr+CkvuCkleCljeCkn+CljeCksOCkvyDgpKHgpYfgpJ/gpL4g4KSq4KWB4KSo4KSD4KS44KWH4KSfIOCkl+CksOClh+CksCDgpJrgpYfgpKTgpL7gpLXgpKjgpYAg4KSo4KSG4KSJ4KSB4KSm4KWIIOCkn+CljeCkr+CkvuCkrOCksuCljeCkn+CkleCliyDgpKHgpYfgpJ/gpL4g4KSu4KWH4KSf4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193aXBlRGF0YSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUwOTY4OTU2MDQ1NzQxODgzOTEiPiLgpI/gpIngpJ/gpL4g4KSr4KWN4KSv4KS+4KSV4KWN4KSf4KWN4KSw4KS/IOCkoeClh+Ckn+CkviDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KSX4KSw4KWH4KSwIOCkmuClh+CkpOCkvuCkteCkqOClgCDgpKjgpIbgpIngpIHgpKbgpYgg4KSr4KWL4KSo4KSV4KWLIOCkoeClh+Ckn+CkviDgpK7gpYfgpJ/gpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfc2V0R2xvYmFsUHJveHkiIG1zZ2lkPSIyNzg0ODI4MjkzNzQ3NzkxNDQ2Ij4i4KSJ4KSq4KSV4KSw4KSjIOCkteCkv+CktuCljeCkteCkteCljeCkr+CkvuCkquClgCDgpKrgpY3gpLDgpYvgpJXgpY3gpLjgpYAg4KSu4KS/4KSy4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19zZXRHbG9iYWxQcm94eSIgbXNnaWQ9IjYzODc0OTc0NjY2NjAxNTQ5MzEiPiLgpKjgpYDgpKTgpL8g4KS44KSV4KWN4KS34KSuIOCkueClgeCkgeCkpuCkviDgpKrgpY3gpLDgpK/gpYvgpJcg4KS54KWB4KSo4KWHIOCkieCkquCkleCksOCkoyAg4KS14KS/4KS24KWN4KS14KS14KWN4KSv4KS+4KSq4KWAIOCkquCljeCksOCli+CkleCljeCkuOClgCDgpLjgpYfgpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIOCkquCljeCksOCkpeCkriDgpIngpKrgpJXgpLDgpKMg4KSq4KWN4KSw4KS24KS+4KS44KS24KSo4KSy4KWHIOCkruCkvuCkpOCljeCksCDgpKrgpY3gpLDgpK3gpL7gpLXgpJXgpL7gpLDgpYAg4KS14KS/4KS24KWN4KS14KS14KWN4KSv4KS+4KSq4KWAIOCkquCljeCksOCli+CkleCljeCkuOClgCDgpLjgpYfgpJ8g4KSX4KSw4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2V4cGlyZVBhc3N3b3JkIiBtc2dpZD0iODg1Mjc5MTUxODQ3MjU0MDU2Ij4i4KSy4KSVLeCkuOCljeCkleCljeCksOCkv+CkqCDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSF4KSo4KWN4KSkIOCkuOClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2V4cGlyZVBhc3N3b3JkIiBtc2dpZD0iMTcyOTcyNTIyNjMxNDY5MTU5MSI+IuCkquCljeCksOCkvuCkr+CkgyDgpJXgpKTgpL8g4KSb4KS/4KSf4KWLIOCksuCklS3gpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkrOCkpuCksuCljeCkqOClgSDgpKrgpLDgpY3gpJsg4KSv4KS44KSy4KS+4KSIIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9Ijg5MDEzMjYxOTk5MDkxMzI5MTUiPiLgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSH4KSo4KWN4KSV4KWN4KSw4KS/4KSq4KWN4KS44KSoIOCkruCkv+CksuCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9IjI2Mzc3MzIxMTUzMjUzMTY5OTIiPiLgpK3gpKPgpY3gpKHgpL7gpLAg4KSX4KSw4KS/4KSP4KSV4KWLIOCkoeClh+Ckn+CkviDgpIfgpKjgpY3gpJXgpY3gpLDgpL/gpKrgpY3gpJ8g4KS54KWB4KSo4KWBIOCkhuCkteCktuCljeCkr+CklSDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZGlzYWJsZUNhbWVyYSIgbXNnaWQ9IjYzOTUzMDEwMjMxNTIyOTc4MjYiPiLgpJXgpY3gpK/gpL7gpK7gpYfgpLDgpL7gpLLgpL7gpIgg4KSF4KS44KSV4KWN4KS34KSuIOCkl+CksOCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUNhbWVyYSIgbXNnaWQ9IjIzMDYzNDkwNDI4MzQ3NTQ1OTciPiLgpLjgpKzgpYgg4KSJ4KSq4KSV4KSw4KSjIOCkleCljeCkr+CkvuCkruCksOCkvuCkueCksOClguCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJcg4KSw4KWL4KSV4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2Rpc2FibGVLZXlndWFyZEZlYXR1cmVzIiBtc2dpZD0iMjY2MzI5MTA0NTQyNjM4ODAyIj4i4KSV4KS/4KSX4KS+4KSw4KWN4KSh4KSu4KS+IOCkreCkj+CkleCkviDgpLXgpL/gpLbgpYfgpLfgpKTgpL7gpLngpLDgpYIg4KSF4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIzNDY3MDgyMjcyMTg2NTM0NjE0Ij4i4KSV4KWH4KS54KWAIOCkleCkv+Ckl+CkvuCksOCljeCkoSDgpLXgpL/gpLbgpYfgpLfgpKTgpL7gpLngpLDgpYLgpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSXIOCksOCli+CkleCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwaG9uZVR5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iODkwMTA5ODMzNjY1ODcxMDM1OSI+IuCkl+Clg+CkuSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9Ijg2OTkyMzY1MDUyNzEzNjYxNSI+IuCkruCli+CkrOCkvuCkh+CksiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9Ijc4OTc1NDQ2NTQyNDI4NzQ1NDMiPiLgpJXgpL7gpK4g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTEwMzYwMTQzMzM4MjE1ODE1NSI+IuCkleCkvuCksOCljeCkryDgpKvgpY3gpK/gpL7gpJXgpY3gpLgiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxNzM1MTc3MTQ0OTQ4MzI5MzcwIj4i4KSY4KSw4KSV4KWLIOCkq+CljeCkr+CkvuCkleCljeCkuCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjYwMzg3ODY3NDQ3NzIwNzM5NCI+IuCkquClh+CknOCksCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjE2NTA4MjQyNzUxNzc5MzE2MzciPiLgpIXgpKjgpY3gpK8iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI5MTkyNTE0ODA2OTc1ODk4OTYxIj4i4KSF4KSo4KWB4KSV4KWC4KSy4KSoIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iZW1haWxBZGRyZXNzVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI4MDczOTk0MzUyOTU2MTI5MTI3Ij4i4KSX4KWD4KS5IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzA4NDIzNzM1NjYwMjYyNTYwNCI+IuCkleCkvuCkriI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjExMTIwNDQ0MTA2NTkwMTEwMjMiPiLgpIXgpKjgpY3gpK8iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyMzc0OTEzOTUyODcwMTEwNjE4Ij4i4KSF4KSo4KWB4KSV4KWC4KSy4KSoIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icG9zdGFsQWRkcmVzc1R5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iNjg4MDI1NzYyNjc0MDA0NzI4NiI+IuCkl+Clg+CkuSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjU2MjkxNTM5NTYwNDUxMDkyNTEiPiLgpJXgpL7gpK4iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0OTY2NjA0MjY0NTAwMzQzNDY5Ij4i4KSF4KSo4KWN4KSvIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNDkzMjY4Mjg0NzU5NTI5OTM2OSI+IuCkheCkqOClgeCkleClguCksuCkqCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImltQWRkcmVzc1R5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iMTczODU4NTE5NDYwMTQ3NjY5NCI+IuCkl+Clg+CkuSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjEzNTk2NDQ1NjU2NDczODM3MDgiPiLgpJXgpL7gpK4iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3ODY4NTQ5NDAxMDUzNjE1Njc3Ij4i4KSF4KSo4KWN4KSvIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE0NTExODk0NDYzOTg2OTgwOSI+IuCkheCkqOClgeCkleClguCksuCkqCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yZ2FuaXphdGlvblR5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzU0NjMzNTYxMjE4OTExNTYxNSI+IuCkleCkvuCkriDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0Mzc4MDc0MTI5MDQ5NTIwMzczIj4i4KSF4KSo4KWN4KSvIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzQ1NTA0NzQ2ODU4Mzk2NTEwNCI+IuCkheCkqOClgeCkleClguCksuCkqCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImltUHJvdG9jb2xzIj4KKyAgICA8aXRlbSBtc2dpZD0iODU5NTI2MTM2MzUxODQ1OTU2NSI+IkFJTSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjczOTA0NzM2MjgyNzU0OTA3MDAiPiJXaW5kb3dzIExpdmUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3ODgyODc3MTM0OTMxNDU4MjE3Ij4iWWFob28iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI1MDM1Mzc2MzEzMjAwNTg1MjQyIj4i4KS44KWN4KSV4KS+4KSH4KSqIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzUzMjM2MzE3ODQ1OTQ0NDk0MyI+IlFRIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzcxMzQ0MTAzNDI5OTY2MDc0OSI+Ikdvb2dsZSBUYWxrIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjUwNjg1NzMxMjcxODYzMDgyMyI+IklDUSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjE2NDg3OTc5MDM3ODUyNzkzNTMiPiJKYWJiZXIiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUN1c3RvbSIgbXNnaWQ9IjE2NDQ3MzgwNTkwNTMzNTU4MjAiPiLgpIXgpKjgpYHgpJXgpYLgpLLgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVIb21lIiBtc2dpZD0iMjU3MDkyMzQ2MzAzMzk4NTg4NyI+IuCkl+Clg+CkuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU1vYmlsZSIgbXNnaWQ9IjY1MDE0NjM1NTc3NTQ3NTEwMzciPiLgpK7gpYvgpKzgpL7gpIfgpLIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVXb3JrIiBtc2dpZD0iODg2MzkzOTY2NzA1OTkxMTYzMyI+IuCkleCkvuCkriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUZheFdvcmsiIG1zZ2lkPSIzNTE3NzkyMTYwMDA4ODkwOTEyIj4i4KSV4KS+4KSw4KWN4KSvIOCkq+CljeCkr+CkvuCkleCljeCkuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUZheEhvbWUiIG1zZ2lkPSIyMDY3MjY1OTcyMzIyOTcxNDY3Ij4i4KSY4KSw4KSV4KWLIOCkq+CljeCkr+CkvuCkleCljeCkuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVBhZ2VyIiBtc2dpZD0iNzU4MjM1OTk1NTM5NDkyMTczMiI+IuCkquClh+CknOCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU90aGVyIiBtc2dpZD0iMTU0NDQyNTg0Nzg2ODc2NTk5MCI+IuCkheCkqOCljeCkryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNhbGxiYWNrIiBtc2dpZD0iMjcxMjE3NTIwMzA2NTY3ODIwNiI+IuCkleCksuCkrOCljeCkr+CkvuCklSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNhciIgbXNnaWQ9Ijg3MzgzNjA2ODk2MTY3MTY5ODIiPiLgpJXgpL7gpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVDb21wYW55TWFpbiIgbXNnaWQ9IjU0MDQzNDM1NjQ2MTQ3ODkxNiI+IuCkleCkruCljeCkquCkqOClgCDgpK7gpYHgpJbgpY3gpK8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVJc2RuIiBtc2dpZD0iODAyMjQ1MzE5MzE3MTM3MDMzNyI+IklTRE4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVNYWluIiBtc2dpZD0iNjc2NjEzNzAxMDYyODMyNjkxNiI+IuCkruClgeCkluCljeCkryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU90aGVyRmF4IiBtc2dpZD0iODU4NzY1NzE0NTA3MjQ0NjU2NSI+IuCkheCkqOCljeCkryDgpKvgpY3gpK/gpL7gpJXgpY3gpLgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVSYWRpbyIgbXNnaWQ9IjQwOTM3MzgwNzk5MDg2Njc1MTMiPiLgpLDgpYfgpKHgpL/gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVUZWxleCIgbXNnaWQ9IjMzNjc4Nzk5NTI0NzYyNTA1MTIiPiLgpJ/gpYfgpLLgpYfgpJXgpY3gpLgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVUdHlUZGQiIG1zZ2lkPSI4NjA2NTE0Mzc4NTg1MDAwMDQ0Ij4iVFRZIFRERCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVdvcmtNb2JpbGUiIG1zZ2lkPSIxMzExNDI2OTg5MTg0MDY1NzA5Ij4i4KSV4KS+4KSw4KWN4KSvIOCkruCli+CkrOCkvuCkh+CksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVdvcmtQYWdlciIgbXNnaWQ9IjY0OTkzODczMTIzMTE1NzA1NiI+IuCkleCkvuCksOCljeCkryDgpKrgpYfgpJzgpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVBc3Npc3RhbnQiIG1zZ2lkPSI1NTk2NzcyNjM2MTI4NTYyODg0Ij4i4KS44KS54KS+4KSv4KSVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlTW1zIiBtc2dpZD0iNzI1NDQ5MjI3NTUwMjc2ODk5MiI+Ik1NUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZUN1c3RvbSIgbXNnaWQ9Ijc4Mzc1ODYxOTg0NTgwNzM0MDQiPiLgpIXgpKjgpYHgpJXgpYLgpLLgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVCaXJ0aGRheSIgbXNnaWQ9IjI4MTMzNzk4NDQyMTEzOTA3NDAiPiLgpJzgpKjgpY3gpK7gpKbgpL/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldmVudFR5cGVBbm5pdmVyc2FyeSIgbXNnaWQ9IjM4NzY3Nzk3NDQ1MTgyODQwMDAiPiLgpLXgpL7gpLDgpY3gpLfgpL/gpJUg4KS44KSu4KS+4KSw4KWL4KS5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXZlbnRUeXBlT3RoZXIiIG1zZ2lkPSI3Mzg4MTc4OTM5MDEwMTQzMDc3Ij4i4KSF4KSo4KWN4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlQ3VzdG9tIiBtc2dpZD0iODUyNTk2MDI1NzgwNDIxMzg0NiI+IuCkheCkqOClgeCkleClguCksuCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZUhvbWUiIG1zZ2lkPSI0NDkyMjcyMzYxNDA0MzM5MTkiPiLgpJfgpYPgpLkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVXb3JrIiBtc2dpZD0iMzU0ODA1ODA1OTYwMTE0OTk3MyI+IuCkleCkvuCkriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZU90aGVyIiBtc2dpZD0iMjkyMzAwODY5NTI3MjYzOTU0OSI+IuCkheCkqOCljeCkryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZU1vYmlsZSIgbXNnaWQ9IjExOTkxOTAwNTMyMTE2NjIwNSI+IuCkruCli+CkrOCkvuCkh+CksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVDdXN0b20iIG1zZ2lkPSI4OTAzMjA2OTAzMDYwNDc5OTAyIj4i4KSF4KSo4KWB4KSV4KWC4KSy4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZUhvbWUiIG1zZ2lkPSI4MTY1NzU2OTc3MTg0NDgzMDk3Ij4i4KSX4KWD4KS5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZVdvcmsiIG1zZ2lkPSI1MjY4MTcyNzcyMzg3Njk0NDk1Ij4i4KSV4KS+4KSuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9zdGFsVHlwZU90aGVyIiBtc2dpZD0iMjcyNjExMTk2NjYyMzU4NDM0MSI+IuCkheCkqOCljeCkryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZUN1c3RvbSIgbXNnaWQ9IjIwNzQwMjg3NTU1Mjc4MjYwNDYiPiLgpIXgpKjgpYHgpJXgpYLgpLLgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVR5cGVIb21lIiBtc2dpZD0iNjI0MTE4MTAzMjk1NDI2Mzg5MiI+IuCkl+Clg+CkuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltVHlwZVdvcmsiIG1zZ2lkPSIxMzcxNDg5MjkwMjQyNDMzMDkwIj4i4KSV4KS+4KSuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlT3RoZXIiIG1zZ2lkPSI1Mzc3MDA3NDk1NzM1OTE1NDc4Ij4i4KSF4KSo4KWN4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbEN1c3RvbSIgbXNnaWQ9IjY5MTk0NTM4MzY2MTg3NDk5OTIiPiLgpIXgpKjgpYHgpJXgpYLgpLLgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sQWltIiBtc2dpZD0iNzA1MDM2MDYxMjM2ODM4MzQxNyI+IkFJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xNc24iIG1zZ2lkPSIxNDQ1NTY1NDU0MjA3Njk0NDIiPiJXaW5kb3dzIExpdmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sWWFob28iIG1zZ2lkPSI4MjcxNDM5NDA4NDY5MDIxMjczIj4iWWFob28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sU2t5cGUiIG1zZ2lkPSI5MDE5Mjk2NzQ0NjIyODMyOTUxIj4i4KS44KWN4KSV4KS+4KSH4KSqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbFFxIiBtc2dpZD0iODg4NzQ4NDM3OTQ5NDExMTg4NCI+IlFRIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbEdvb2dsZVRhbGsiIG1zZ2lkPSI0OTM5MDIzMjExNDAyNzczMDQiPiLgpLngpY3gpK/gpL7gpJngpIbgpIngpJ/gpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sSWNxIiBtc2dpZD0iMTU3NDg3MDQzMzYwNjUxNzMxNSI+IklDUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xKYWJiZXIiIG1zZ2lkPSIyMjc5OTE3NjMwODc1NzcxNzIyIj4iSmFiYmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE5ldE1lZXRpbmciIG1zZ2lkPSI4Mjg3NjI1NjU1OTg2ODI3OTcxIj4iTmV0TWVldGluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ1R5cGVXb3JrIiBtc2dpZD0iMjkyNjg4NzA1MDUzNjM4NzIiPiLgpJXgpL7gpK4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdUeXBlT3RoZXIiIG1zZ2lkPSIzOTUxNzgxMTMxNTcwMTI0MDgyIj4i4KSF4KSo4KWN4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnVHlwZUN1c3RvbSIgbXNnaWQ9IjIyNTUyMzQxNTM3MjA4ODMyMiI+IuCkheCkqOClgeCkleClguCksuCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUN1c3RvbSIgbXNnaWQ9IjM1NDI0MDM2Nzk4MjcyOTczMDAiPiLgpIXgpKjgpYHgpJXgpYLgpLLgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVBc3Npc3RhbnQiIG1zZ2lkPSI2Mjc0MzM0ODI1MTk1Mzc5MDc2Ij4i4KS44KS54KS+4KSv4KSVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlQnJvdGhlciIgbXNnaWQ9Ijg3NTc5MTM1MDY3ODQwNjc3MTMiPiLgpK3gpL7gpIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVDaGlsZCIgbXNnaWQ9IjE4OTA3NDYyNzcyNzY4ODE2MjYiPiLgpKzgpJrgpY3gpJrgpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVEb21lc3RpY1BhcnRuZXIiIG1zZ2lkPSI2OTA0ODA3MTEyMTIxMTIyMTMzIj4i4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkuOCkvuCkneClh+CkpuCkvuCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUZhdGhlciIgbXNnaWQ9IjUyMjgwMzQ2ODcwODIwNTA3MjUiPiLgpKzgpYHgpKzgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVGcmllbmQiIG1zZ2lkPSI3MzEzMTA2NzYyNDgzMzkxMjYyIj4i4KSu4KS/4KSk4KWN4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlTWFuYWdlciIgbXNnaWQ9IjYzNjU2Nzc4NjE2MTAxMzc4OTUiPiLgpKzgpY3gpK/gpLXgpLjgpY3gpKXgpL7gpKrgpJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVNb3RoZXIiIG1zZ2lkPSI0NTc4NTcxMzUyOTYyNzU4MzA0Ij4i4KSG4KSu4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUGFyZW50IiBtc2dpZD0iNDc1NTYzNTU2NzU2MjkyNTIyNiI+IuCkheCkreCkv+CkreCkvuCkteCklSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVBhcnRuZXIiIG1zZ2lkPSI3MjY2NDkwMjg1MTIwMjYyNzgxIj4i4KSq4KS+4KSw4KWN4KSf4KSo4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUmVmZXJyZWRCeSIgbXNnaWQ9IjEwMTU3MzA1OTg0NDEzNTUyNCI+IuCkpuCljeCkteCkvuCksOCkviDgpIngpLLgpY3gpLLgpL/gpJbgpL/gpKQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVSZWxhdGl2ZSIgbXNnaWQ9IjE3OTk4MTk5MzAwODU2MTAyNzEiPiLgpIbgpKvgpKjgpY3gpKQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVTaXN0ZXIiIG1zZ2lkPSIxNzM1OTgzNTU0NDc5MDc2NDgxIj4i4KSs4KS54KS/4KSo4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlU3BvdXNlIiBtc2dpZD0iMzk0MTM2OTM5NDI4Njk4MTE3Ij4i4KSq4KSk4KS/LeCkquCkpOCljeCkqOCkvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlQ3VzdG9tIiBtc2dpZD0iMjQ3MzU4MDU5MzExMTU5MDk0NSI+IuCkheCkqOClgeCkleClguCksuCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlSG9tZSIgbXNnaWQ9IjYwOTM1OTgxODEwNjkzNTkyOTUiPiLgpJfgpYPgpLkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZVdvcmsiIG1zZ2lkPSI2OTIwNzI1NzMwNzk3MDk5MDQ3Ij4i4KSV4KS+4KSuIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlT3RoZXIiIG1zZ2lkPSI0NDA4NDM2MTYyOTUwMTE5ODQ5Ij4i4KSF4KSo4KWN4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iUElOIOCkleCli+CkoSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iUFVLIOCksCDgpKjgpK/gpL7gpIEgUElOIOCkleCli+CkoSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsg4KSV4KWL4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLgpKjgpK/gpL7gpIEgUElOIOCkleCli+CkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IuCkquCkvuCkuOCkteCksOCljeCkoSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSoIOCkm+ClgeCkqOClgeCkueCli+CkuOCljSI8L2ZvbnQ+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IuCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIFBJTiDgpJXgpYvgpKEg4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMjQyMjIyNTU5MTAwNjEzNDkzNiI+IuCkl+CksuCkpCBQSU4g4KSV4KWL4KSh4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+IuCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KSu4KWH4KSo4KWBIOCkpeCkv+CkmuCljeCkqOClgeCkueCli+CkuOCljSDgpLAg4KSk4KWN4KSv4KS44KSq4KSb4KS/IOClpiDgpKXgpL/gpJrgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWVyZ2VuY3lfY2FsbF9kaWFsb2dfbnVtYmVyX2Zvcl9kaXNwbGF5IiBtc2dpZD0iNjk2MTkyMTAzMTk1MDkwOTcwIj4i4KSG4KSq4KSk4KSV4KS+4KSy4KWA4KSoIOCkqOCkruCljeCkrOCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fY2Fycmllcl9kZWZhdWx0IiBtc2dpZD0iODk2MzgzOTI0MjU2NTY1MzE5MiI+IuCkuOClh+CkteCkviDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NjcmVlbl9sb2NrZWQiIG1zZ2lkPSI3Mjg4NDQzMDc0ODA2ODMyOTA0Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCksuCklSDgpJfgpLDgpL/gpI/gpJXgpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZW5hYmxlZCIgbXNnaWQ9IjQ2MTU0MDUxNjE0MTI2MDQ5Ij4i4KSF4KSo4KSy4KSVIOCkteCkviDgpIbgpKrgpKTgpJXgpL7gpLLgpYDgpKgg4KSV4KSyIOCkl+CksOCljeCkqCDgpK7gpYfgpKjgpYEg4KSl4KS/4KSa4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iNjg2MjYwMDI4Nzk3MTU4MzY0Ij4i4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqCDgpK7gpYfgpKjgpYEg4KSl4KS/4KSa4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9Ijc0Nzg3MDMyNTQ5NjQ4MTAzMDIiPiLgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSo4KWBIOCkouCkvuCkgeCkmuCkviDgpJbgpL/gpJrgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2VtZXJnZW5jeV9jYWxsIiBtc2dpZD0iNTM0NzYzMzc4NDQwMTI4NTIyNSI+IuCkhuCkquCkpOCkleCkvuCksuClgOCkqCDgpJXgpLLgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3JldHVybl90b19jYWxsIiBtc2dpZD0iNTI0NDI1OTc4NTUwMDA0MDAyMSI+IuCkleCksuCkruCkviDgpKvgpLDgpY3gpJXgpL/gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BhdHRlcm5fY29ycmVjdCIgbXNnaWQ9IjkwMzkwMDg2NTAzNjIyNjEyMzciPiLgpLjgpLngpYAhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX3dyb25nIiBtc2dpZD0iNDMxNzk1NTAxNDk0ODEwODc5NCI+IuCkq+Clh+CksOCkvyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXNzd29yZF93cm9uZyIgbXNnaWQ9IjU3Mzc4MTUzOTMyNTMxNjUzMDEiPiLgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLgpIXgpKTgpY3gpK/gpL7gpKfgpL/gpJUg4KSu4KWL4KS54KSh4KS+IOCkluCli+CksuCljeCkqOClhyDgpKrgpY3gpLDgpK/gpL7gpLjgpLngpLDgpYIg4KSs4KSi4KWAIOCkreCkj+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGx1Z2dlZF9pbiIgbXNnaWQ9IjgwNTc3NjI4MjgzNTU1NzIzMTUiPiLgpJrgpL7gpLDgpY3gpJwg4KS54KWB4KSB4KSm4KWILCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9jaGFyZ2VkIiBtc2dpZD0iMzIxNjM1NzQ1Njg0MDYwNjI0Ij4i4KSa4KS+4KSw4KWN4KScIOCkreCkr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYmF0dGVyeV9zaG9ydCIgbXNnaWQ9IjQ0NzcyNjQ4NDkzODY4NTAyNjYiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9sb3dfYmF0dGVyeSIgbXNnaWQ9IjE0ODI4NzM5ODE5MTkyNDk3NDAiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSa4KS+4KSw4KWN4KSc4KSwIOCknOCli+CkoeCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjUwOTk0MzkyNzc4MTkyMTUzOTkiPiJTSU0g4KSV4KS+4KSw4KWN4KShIOCkm+CliOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUxNjU5MTk2MDk1NzkxNDc0Ij4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSu4KS+IFNJTSDgpJXgpL7gpLDgpY3gpKEg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjE4NjkyMDU4NTY5NTE2OTA3OCI+IuCkq+Cli+CkqOCkruCkviBTSU0g4KSV4KS+4KSw4KWN4KShIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTM3Mjc4NzEzODAyMzI3MjYxNSI+IlNJTSDgpJXgpL7gpLDgpY3gpKEg4KSY4KWB4KS44KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjM1MjY1NzMwOTkwMTkzMTk0NzIiPiJTSU0g4KSV4KS+4KSw4KWN4KShIOCkm+CliOCkqCDgpLXgpL4g4KSq4KSi4KWN4KSoIOCkruCkv+CksuCljeCkpuCliOCkqOClpCBTSU0g4KSV4KS+4KSw4KWN4KShIOCkueCkvuCksuCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNTA5NjE0OTY2NTEzODkxNjE4NCI+IuCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KSF4KSv4KWL4KSX4KWN4KSvIFNJTSDgpJXgpL7gpLDgpY3gpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iOTEwOTA0NjQzNDMzMTUxMzcxIj4i4KSk4KSq4KS+4KSI4KSC4KSV4KWLIFNJTSDgpJXgpL7gpLDgpY3gpKEg4KS44KWN4KSl4KS+4KSv4KWAIOCksOClguCkquCkruCkviDgpIXgpJXgpY3gpLfgpK4g4KSt4KSv4KWL4KWkXG4g4KSF4KSw4KWN4KSV4KWLIFNJTSDgpJXgpL7gpLDgpY3gpKHgpJXgpYsg4KSy4KS+4KSX4KS/IOCkhuCkq+CkqOCliyDgpKTgpL7gpLDgpLDgpLngpL/gpKQg4KS44KWH4KS14KS+IOCkquCljeCksOCkpuCkvuCkr+CkleCkuOCkgeCklyDgpLjgpK7gpY3gpKrgpLDgpY3gpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIwMTU5NDkwNTE1Mjc0Njg4NiI+IuCkheCkmOCkv+CksuCljeCksuCliyDgpJ/gpY3gpLDgpK/gpL7gpJUg4KSs4KSf4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjYwODkyOTc2NTA0ODEyOTIzNjMiPiLgpIXgpLDgpY3gpJXgpYsg4KSf4KWN4KSw4KSv4KS+4KSVIOCkrOCkn+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1OTA4ODc4Njc4MDEyODAwMSI+IuCksOCli+CkleCljeCkqOClhyDgpKzgpJ/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTg4ODQyMjkzODM1MTAxOTQyNiI+IuCkrOCknOCkvuCkieCkqOClhyDgpKzgpJ/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDU2MjMxODM3ODc2Njk4NzYwMSI+IuCkrOCkn+CkqCDgpLDgpYvgpJXgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWVyZ2VuY3lfY2FsbHNfb25seSIgbXNnaWQ9IjY3MzM5NzgzMDQzODYzNjU0MDciPiLgpIbgpKrgpKTgpJXgpL7gpLLgpYDgpKgg4KSV4KSy4KS54KSw4KWCIOCkruCkvuCkpOCljeCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjE0MzM4OTIyNDk4NjAyODUwMSI+IuCkqOClh+Ckn+CkteCksOCljeCklSDgpLLgpJUg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNzQ0MTc5NzMzOTk3NjIzMCI+IlNJTSDgpJXgpL7gpLDgpY3gpKEgUFVLLeCksuCklSDgpJfgpLDgpL/gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fcHVrX2xvY2tlZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI4MTI3OTE2MjU1MjQ1MTgxMDYzIj4i4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkqOCkv+CksOCljeCkpuClh+CktuCklSDgpLXgpL4g4KSX4KWN4KSw4KS+4KS54KSVIOCkuOClh+CkteCkviDgpLjgpK7gpY3gpKrgpLDgpY3gpJUg4KS54KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI4MDY2NjYwMTI5MjA2MDAxMDM5Ij4iU0lNIOCkleCkvuCksOCljeCkoSDgpLLgpJUg4KSX4KSw4KS/4KSP4KSV4KWLIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjU5NTMyMzIxNDA1Mjg4MTI2NCI+IlNJTSDgpJXgpL7gpLDgpY3gpKEg4KSF4KSo4KSy4KSVIOCkl+CksOCkv+CkgeCkpuCliC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNjQ4MTYyMzgzMDM0NDEwNzIyMiI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSF4KSo4KSy4KSVIOCkouCkvuCkgeCkmuCkviDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJbgpL/gpJrgpY3gpKjgpYEg4KSt4KSP4KSV4KWLIOCkm+ClpCBcblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSV4KWL4KS44KS/4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iMjcyNTk3MzI4NjIzOTM0NDU1NSI+IuCkpOCkquCkvuCkiOCkguCksuClhyDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIOCkhuCkq+CljeCkqOCliyDgpKrgpL7gpLjgpLXgpLDgpY3gpKEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4KSq4KSf4KSVIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpK3gpK/gpYvgpaQgXG5cbjx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjYyMTY2NzI3MDY1NDU2OTY5NTUiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsgUElOIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWBIOCkreCkj+CkleCliyDgpJvgpaQgXG5cbjx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjkxOTE2MTE5ODQ2MjU0NjA4MjAiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkheCkqOCksuCklSDgpKLgpL7gpIHgpJrgpL4g4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSW4KS/4KSa4KWN4KSo4KWBIOCkreCkj+CkleCliyDgpJvgpaQg4KSq4KSb4KS/IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkpeCkqiDgpIXgpLjgpKvgpLIg4KSV4KWL4KS44KS/4KS44KS54KSw4KWCLCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsgR29vZ2xlIOCkuOCkvuCkh+CkqCDgpIfgpKgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClgCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KSt4KSo4KS/4KSo4KWHIOCkm+ClpFxuXG4gIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyNTkwMjI3NTU5NzYzNzYyNzUxIj4i4KSk4KSq4KS+4KSI4KSB4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpIXgpKjgpLLgpJUg4KSi4KS+4KSB4KSa4KS+4KSy4KS+4KSIIOCkleCli+CksOCljeCkqOClgSDgpK3gpI/gpJXgpYsg4KSb4KWkIOCkquCkm+CkvyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgpIXgpLDgpYIg4KSn4KWH4KSw4KWIIOCkheCkuOCkq+CksiDgpJXgpYvgpLjgpL/gpLjgpLngpLDgpYLgpKrgpJvgpL8sIOCkpOCkquCkvuCkiOCkgeCksuCkvuCkiCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSr4KWL4KSoIEdvb2dsZSDgpLjgpL7gpIfgpKgg4KSH4KSoIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpYfgpLAg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KS44KWL4KSn4KS/4KSo4KWHIOCkm+ClpCBcblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKrgpYHgpKjgpIMg4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2MTI4MTA2Mzk5NzQ1NzU1NjA0Ij4i4KSk4KSq4KS+4KSI4KSB4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpLLgpL7gpIgg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyDgpJXgpYvgpLbgpL/gpLgg4KSX4KSw4KWN4KSo4KWB4KSt4KSP4KSV4KWLIOCkm+ClpCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgpIXgpLDgpYIg4KSn4KWH4KSw4KWIIOCkheCkuOCkq+CksiDgpJXgpYvgpLjgpL/gpLjgpLngpLDgpYLgpKrgpJvgpL8sIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpKvgpY3gpK/gpL7gpJ/gpY3gpLDgpL8g4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSk4KSu4KS+IOCkquClgeCkqOCkg+CkuOClh+CknyDgpLngpYHgpKjgpYcg4KSbIOCksCDgpLjgpKzgpYgg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkoeClh+Ckn+CkviDgpLngpLDgpL7gpIngpKjgpYcg4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NjAzNTY1MTQyMTU2ODI2NTY1Ij4i4KSk4KSq4KS+4KSI4KSC4KSy4KWHIOCkl+CksuCkpCDgpKTgpLDgpL/gpJXgpL7gpLLgpYcgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4KSq4KSf4KSVIOCkq+Cli+CkqCDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSo4KWHIOCkquCljeCksOCkr+CkpOCljeCkqCDgpJfgpLDgpY3gpKjgpYHgpK3gpK/gpYvgpaQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KSs4KSi4KWAIOCkheCkuOCkq+CksiDgpKrgpY3gpLDgpK/gpKTgpY3gpKjgpLngpLDgpYIg4KSq4KSb4KS/LCDgpKvgpYvgpKgg4KSr4KWN4KSv4KS+4KSV4KWN4KSf4KWN4KSw4KS/IOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpOCkruCkviDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KS54KWB4KSo4KWHIOCkmyDgpLAg4KS44KSs4KWIIOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKHgpYfgpJ/gpL4g4KS54KSw4KS+4KSJ4KSo4KWHIOCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI4MDg3MzUxNjQ5MzkzNDM2NSI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpJ/gpY3gpK/gpKzgpY3gpLLgpYfgpJ/gpLLgpL7gpIgg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqCDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgSDgpK3gpI/gpJXgpYsg4KSb4KWkIOCkheCkrCDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpLLgpL7gpIgg4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSkIOCkleCkvuCksOCljeCkr+CktuCkvuCksuCkvuCkruCkviDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KSX4KSw4KS/4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzMDI1NTA0NzIxNzY0OTIyMjQ2Ij4i4KSk4KSq4KS+4KSI4KSC4KSy4KWHIOCkl+CksuCkpCDgpKTgpLDgpL/gpJXgpL7gpLLgpYcg4KSr4KWL4KSoIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqOClhyDgpKrgpY3gpLDgpK/gpKTgpY3gpKgg4KSX4KSw4KWN4KSo4KWB4KSt4KSv4KWL4KWkIOCkheCkrCDgpKvgpYvgpKgg4KSr4KWN4KSv4KS+4KSV4KWN4KSf4KWN4KSw4KS/IOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpOCkruCkviDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KS54KWB4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYyNTE0ODAzNDMzOTQzODk2NjUiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4KS44KWH4KSV4KWH4KSo4KWN4KSh4KSu4KS+IOCkq+Clh+CksOCkvyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9IjI2MjY5OTk0NDk2MTA2OTU5MzAiPiLgpKLgpL7gpIHgpJrgpL4g4KSs4KS/4KSw4KWN4KS44KSo4KWBIOCkreCkr+Cliz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9mb3Jnb3RfcGF0dGVybiIgbXNnaWQ9IjI1ODg1MjE1MDExNjYwMzI3NDciPiLgpJbgpL7gpKTgpL4g4KSF4KSo4KSy4KSVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSIyNzUxMzY4NjA1Mjg3Mjg4ODA4Ij4i4KSo4KS/4KSV4KWIIOCkp+Clh+CksOCliCDgpJXgpYvgpLjgpL/gpLjgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTMxODE2MjU2MTAwNzA3Nzg0Ij4i4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8sIOCkpOCkquCkvuCkiOCkgeCkleCliyBHb29nbGUg4KSW4KS+4KSk4KS+4KS44KSB4KSXIOCkuOCkvuCkh+CkqCDgpIfgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9Ijg4NDY4ODE0MjQxMDY0ODQ0NDciPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpKjgpL7gpK4gKOCkh+CkruClh+CksikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iNTk1ODAyODM4Mzk1NDczODUyOCI+IuCkquCkvuCkuOCkteCksOCljeCkoToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNzEzMDg5MzY5NDc5NTc4NjMwMCI+IuCkuOCkvuCkh+CkqCDgpIfgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjEzNjQwNTE0NzMzNDc0ODU5MDgiPiLgpIXgpK7gpL7gpKjgpY3gpK8g4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KSo4KS+4KSuIOCkteCkviDgpKrgpL7gpLjgpLXgpLDgpY3gpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSIxNjk2OTI0NzYzNjkwMzc5MDczIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKjgpL7gpK4g4KS14KS+IOCkquCkvuCkuOCkteCksOCljeCkoSDgpKzgpL/gpLDgpY3gpLjgpKjgpYHgpK3gpK/gpYs/XG4g4KSt4KWN4KSw4KSu4KSjIOCkl+CksOCljeCkqOClgeCkueCli+CkuCI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjcxMTQ2MjczNTEyODY5MzM4NjciPiLgpJzgpL7gpIHgpJog4KSX4KSw4KWN4KSm4KWILi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl91bmxvY2tfbGFiZWwiIG1zZ2lkPSI3Mzc0NDA0ODMyMjA2NjcwNTQiPiLgpJbgpYvgpLLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NvdW5kX29uX2xhYmVsIiBtc2dpZD0iOTA2ODg3NzU3NjUxMzQyNTk3MCI+IuCkhuCkteCkvuCknCDgpJrgpL7gpLLgpYEg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zb3VuZF9vZmZfbGFiZWwiIG1zZ2lkPSI5OTY4MjI4MjUxNTQzMTkwMjYiPiLgpKfgpY3gpLXgpKjgpL8g4KSs4KSo4KWN4KSmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9zdGFydCIgbXNnaWQ9IjM5NDEwNDU1MDI5MzMxNDI4NDciPiLgpKLgpL7gpIHgpJrgpL4g4KS44KWB4KSw4KWBIOCkreCkr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYWNjZXNzX3BhdHRlcm5fY2xlYXJlZCIgbXNnaWQ9IjU1ODM0Nzk3MjEwMDE2Mzk1NzkiPiLgpKLgpL7gpIHgpJrgpL4g4KS54KSf4KS+4KSH4KSP4KSV4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9jZWxsX2FkZGVkIiBtc2dpZD0iNjc1NjAzMTIwODM1OTI5MjQ4NyI+IuCkuOClh+CksiDgpKXgpKog4KSX4KSw4KS/4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9kZXRlY3RlZCIgbXNnaWQ9IjQ5ODg3MzA4OTU1NTQwNTcwNTgiPiLgpKLgpL7gpIHgpJrgpL4g4KSq4KWB4KSw4KS+IOCkreCkr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4g4KS14KS/4KSc4KWH4KSfICUyJGQgb2YgJTMkZOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiLgpLXgpL/gpJzgpYfgpJ8g4KSl4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i4KSW4KS+4KSy4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLgpIXgpKjgpLLgpJUg4KSV4KWN4KS34KWH4KSk4KWN4KSwIOCkteCkv+CkuOCljeCkpOCkvuCksCDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2NvbGxhcHNlZCIgbXNnaWQ9IjYzNjY5OTIwNjY5MzYwNzYzOTYiPiLgpIXgpKjgpLLgpJUg4KSV4KWN4KS34KWH4KSk4KWN4KSwIOCkreCkpOCljeCkleCkv+Ckr+Cli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0IiBtc2dpZD0iNjUyNzEzMTAzOTc0MTgwODI0MCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOCkteCkv+CknOClh+Ckn+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdXNlcl9zZWxlY3RvciIgbXNnaWQ9IjEyMjY3OTgzNzA5MTM2OTg4OTYiPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSb4KSo4KWM4KSf4KSV4KSw4KWN4KSk4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zdGF0dXMiIG1zZ2lkPSI4MDA4MjY0NjAzOTM1OTMwNjExIj4i4KS44KWN4KSl4KS/4KSk4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4i4KSV4KWN4KSv4KS+4KSu4KWH4KSw4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z2F1cmRfYWNjZXNzaWJpbGl0eV9tZWRpYV9jb250cm9scyIgbXNnaWQ9IjI2MjIwOTY1NDI5MjE2MTgwNiI+IuCkruCkv+CkoeCkv+Ckr+CkviDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKPgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+IuCkteCkv+CknOClh+CknyDgpKrgpYHgpKjgpIPgpJXgpY3gpLDgpK4g4KSX4KSw4KWN4KSo4KWHIOCkuOClgeCksOClgSDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiLgpLXgpL/gpJzgpYfgpJ8g4KSq4KWB4KSo4KSD4KSV4KWN4KSw4KSuIOCkuOCkruCkvuCkquCljeCkpCDgpK3gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZGVsZXRlZCIgbXNnaWQ9IjQ0MjYyMDQyNjM5MjkyMjQ0MzQiPiLgpLXgpL/gpJzgpYfgpJ8gPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4KSu4KWH4KSf4KS+4KSH4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4i4KSF4KSo4KSy4KSVIOCkleCljeCkt+Clh+CkpOCljeCksCDgpKzgpKLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiLgpLjgpY3gpLLgpL7gpIfgpKEg4KSF4KSo4KSy4KSV4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLgpKLgpL7gpIHgpJrgpL4g4KSF4KSo4KSy4KSV4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9mYWNlX3VubG9jayIgbXNnaWQ9IjQ4MTcyODI1NDMzNTE3MTg1MzUiPiLgpKvgpYfgpLgg4KSF4KSo4KSy4KSVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9waW5fdW5sb2NrIiBtc2dpZD0iMjQ2OTY4NzExMTc4NDAzNTA0NiI+IlBpbiDgpIXgpKjgpLLgpJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSF4KSo4KSy4KSV4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4i4KSi4KS+4KSB4KSa4KS+IOCkleCljeCkt+Clh+CkpOCljeCksOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfYXJlYSIgbXNnaWQ9IjY3MzYwNjQ0OTQwMTk5Nzk1NDQiPiLgpLjgpY3gpLLgpL7gpIfgpKEg4KSV4KWN4KS34KWH4KSk4KWN4KSw4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij/gpafgpajgpakiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF9jaGFyYWN0ZXIiIG1zZ2lkPSI3MzM2NDcwNTM1Mzg1MDA5NTIzIj4i4KSF4KSV4KWN4KS34KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfd29yZCIgbXNnaWQ9IjcwNzU1NzAzMjgzNzQ5MTg2NjAiPiLgpLbgpKzgpY3gpKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF9saW5rIiBtc2dpZD0iNTgxNTUwODg4MDc4MjQ4ODI2NyI+IuCksuCkv+CkmeCljeCklSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW51bGFyaXR5X2xhYmVsX2xpbmUiIG1zZ2lkPSI1NzY0MjY3MjM1MDI2MTIwODg4Ij4i4KSy4KS+4KSH4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9hbXBtIiBtc2dpZD0iNDU4NDMzODA4MzUyOTM1NTk4MiI+Ijx4bGlmZjpnIGlkPSJIT1VSIj4lLWw8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IkFNUE0iPiVQPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfY2FwX2FtcG0iIG1zZ2lkPSIyMDgzNDY1OTkyOTQwNDQ0MzY2Ij4iPHhsaWZmOmcgaWQ9IkhPVVIiPiUtbDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iQU1QTSI+JXA8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjdG9yeXRlc3RfZmFpbGVkIiBtc2dpZD0iNTQxMDI3MDMyOTExNDIxMjA0MSI+IuCkleCkvuCksOCljeCkr+CktuCkvuCksuCkviDgpKrgpLDgpYDgpJXgpY3gpLfgpKMg4KSF4KS44KSr4KSyIOCkreCkr+Cli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X25vdF9zeXN0ZW0iIG1zZ2lkPSI0NDM1MjAxNjU2NzY3Mjc2NzIzIj4iRkFDVE9SWV9URVNUIOCkleCkvuCksOCljeCksOCkteCkvuCkh+CksuClhyAvc3lzdGVtL2FwcCDgpK7gpL4g4KS44KWN4KSl4KS+4KSq4KS/4KSkIOCkquCljeCkr+CkvuCkleClh+CknOCkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSu4KS+4KSk4KWN4KSwIOCkuOCkruCksOCljeCkpeCkqCDgpJfgpLDgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub19hY3Rpb24iIG1zZ2lkPSI4NzI5OTE4NzQ3OTk5OTg1NjEiPiLgpJXgpYHgpKjgpYgg4KSq4KWN4KSv4KS+4KSV4KWH4KScIOCkq+Clh+CksuCkviDgpKrgpL7gpLDgpY3gpKgg4KS44KSV4KS/4KSP4KSoIOCknOCkuOCksuClhyBGQUNUT1JZX1RFU1Qg4KSV4KS+4KSw4KWN4KSvIOCkquCljeCksOCkpuCkvuCkqCDgpJfgpLDgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9yZWJvb3QiIG1zZ2lkPSI2MzIwMTY4MjAzMDUwNzkxNjQzIj4i4KSq4KWB4KSo4KSD4KSs4KWB4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjE5ODc0ODM5Nzc4MzQ2MDM4NzIiPiLgpK/gpLggXCI8eGxpZmY6ZyBpZD0iVElUTEUiPiVzPC94bGlmZjpnPlwiIOCkruCkviDgpK3gpI/gpJXgpYsg4KSq4KWD4KS34KWN4KSg4KSy4KWHIOCkrOCkpOCkvuCkieCkgeCkmzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfdGl0bGVfZGVmYXVsdCIgbXNnaWQ9IjY5NjE5MDMyMTM3Mjk2Njc1NzMiPiLgpJzgpL7gpK3gpL7gpLjgpY3gpJXgpY3gpLDgpL/gpKrgpY3gpJ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqc19kaWFsb2dfYmVmb3JlX3VubG9hZF90aXRsZSIgbXNnaWQ9IjI2MTkzNzY1NTU1MjUxMTY1OTMiPiLgpK7gpL7gpLDgpY3gpJfgpKjgpL/gpLDgpY3gpKbgpYfgpLbgpKgg4KSq4KSV4KWN4KSV4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkX3Bvc2l0aXZlX2J1dHRvbiIgbXNnaWQ9IjMxMTI3NTIwMTA2MDA0ODQxMzAiPiLgpK/gpLgg4KSq4KWD4KS34KWN4KSg4KSy4KS+4KSIIOCkm+Cli+CkoeCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkX25lZ2F0aXZlX2J1dHRvbiIgbXNnaWQ9IjU2MTQ4NjEyOTMwMjYwOTk3MTUiPiLgpK/gpLngpYAg4KSq4KWD4KS34KWN4KSg4KSu4KS+IOCksOCkueCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkIiBtc2dpZD0iMzQ2ODgxNjM1NzA5NTM3ODU5MCI+Ijx4bGlmZjpnIGlkPSJNRVNTQUdFIj4lczwveGxpZmY6Zz5cblxu4KSV4KWHIOCkpOCkquCkvuCkiOCkgSDgpK/gpYsg4KSq4KWH4KSc4KSs4KS+4KSfIOCkqOClh+CkreCkv+Ckl+Clh+CknyDgpJfgpLDgpY3gpKgg4KSa4KS+4KS54KSo4KWBIOCkueClgeCkqOCljeCkmyDgpK3gpKjgpY3gpKjgpYcg4KSo4KS/4KS24KWN4KSa4KSkIOCkmz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX2xhYmVsIiBtc2dpZD0iNjg2MDI2MTc1ODY2NTgyNTA2OSI+IuCkqOCkv+CktuCljeCkmuCkv+CkpCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb3VibGVfdGFwX3RvYXN0IiBtc2dpZD0iNDU5NTA0NjUxNTQwMDI2ODg4MSI+IuCknOClgeCkleCljeCkpOCkvzog4KSc4KWB4KSu4KSy4KS+4KSIIOCkoOClguCksuCliyDgpLAg4KS44KS+4KSo4KWLIOCkquCkvuCksOCljeCkqCDgpKbgpYHgpIgg4KSq4KSf4KSVIOCkueCkvuCkqOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3RoaXNfZm9ybSIgbXNnaWQ9IjQ2MTY3NTg4NDExNTc4MTY2NzYiPiLgpLjgpY3gpLXgpKTgpIMg4KSt4KSw4KWN4KSo4KWHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2V0dXBfYXV0b2ZpbGwiIG1zZ2lkPSI3MTAzNDk1MDcwMTgwNTkwODE0Ij4i4KSF4KSf4KWL4KSr4KS/4KSyIOCkuOClh+Ckn+CkheCkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX25hbWVfc2VwYXJhdG9yIiBtc2dpZD0iNjM1MDE0NTE1NDc3OTcwNjc3MiI+IiAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX3N1bW1hcnlfbmFtZV9mb3JtYXQiIG1zZ2lkPSIzMjY4MDQxMDU0ODk5MjE0OTQ1Ij4iJOClpyTgpagk4KWpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYWRkcmVzc19zdW1tYXJ5X3NlcGFyYXRvciIgbXNnaWQ9Ijc0ODMzMDc4OTMxNzAzMjQxMjkiPiIsICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3Nfc3VtbWFyeV9mb3JtYXQiIG1zZ2lkPSI0ODc0NDU5NDU1Nzg2ODI3MzQ0Ij4iJDEkMiQzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcHJvdmluY2UiIG1zZ2lkPSIyMjMxODA2NTUzODYzNDIyMzAwIj4i4KSq4KWN4KSw4KS+4KSo4KWN4KSkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcG9zdGFsX2NvZGUiIG1zZ2lkPSI0Njk2NDMwNDA3Njg5Mzc3MTA4Ij4i4KS54KWB4KSy4KS+4KSV4KWAIOCkleCli+CkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3N0YXRlIiBtc2dpZD0iNjk4ODg5NDE5NTUyMDA0NDYxMyI+IuCksOCkvuCknOCljeCkryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3ppcF9jb2RlIiBtc2dpZD0iODY5NzU0NDU5MjYyNzMyMjk0NiI+IlpJUCDgpJXgpYvgpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9jb3VudHkiIG1zZ2lkPSIyMzcwNzM3NzEwMjAzNjI4OTEiPiLgpJXgpL7gpIngpKjgpY3gpJ/gpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9pc2xhbmQiIG1zZ2lkPSI0MDIwMTAwODc1OTg0NjY3MDI1Ij4i4KSf4KS+4KSq4KWBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZGlzdHJpY3QiIG1zZ2lkPSI4NDAwNzM1MDczMzkyMjY3NjcyIj4i4KSc4KS/4KSy4KWN4KSy4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZGVwYXJ0bWVudCIgbXNnaWQ9IjUzNDMyNzk0NjI1NjQ0NTMzMDkiPiLgpLXgpL/gpK3gpL7gpJciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wcmVmZWN0dXJlIiBtc2dpZD0iMjAyODQ5OTQ4NTA2NTgwMDQxOSI+IuCkquCljeCksOCktuCkvuCkuOCkleClgOCkryDgpJXgpY3gpLfgpYfgpKTgpY3gpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wYXJpc2giIG1zZ2lkPSI4MjAyMjA2MTA1NDY4ODIwMDU3Ij4i4KSq4KWH4KSw4KS/4KS4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYXJlYSIgbXNnaWQ9IjM1NDc0MDkwNTA4ODk5NTI0MjMiPiLgpJXgpY3gpLfgpYfgpKTgpY3gpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9lbWlyYXRlIiBtc2dpZD0iMjg5Mzg4MDk3ODgzNTY5ODgxOCI+IuCkh+CkruCkv+CksOClh+CknyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSIzNzc1MjY1Nzc1NDA1MTA2OTgzIj4i4KSk4KSq4KS+4KSI4KSB4KSV4KS+IOCkrOClgeCkleCkruCkvuCksOCljeCkleCkueCksOClgiDgpLAg4KSH4KSk4KS/4KS54KS+4KS4IOCkquCkouCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iODQ2MjM3ODIyNjYwMDQzOTY1OCI+IuCkrOCljeCksOCkvuCkieCknOCksOCksuClhyDgpK3gpY3gpLDgpK7gpKMg4KSX4KSw4KWH4KSV4KWLIOCkuOCkrOCliCBVUkwg4KS54KSw4KWC4KSV4KWLIOCkh+CkpOCkv+CkueCkvuCkuCDgpLAg4KSs4KWN4KSw4KS+4KSJ4KSc4KSw4KSV4KS+IOCkuOCkrOCliCDgpKzgpYHgpJXgpK7gpL7gpLDgpY3gpJXgpLngpLDgpYIg4KSq4KSi4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpKjgpYvgpJ86IOCkr+CliyDgpIXgpKjgpYHgpK7gpKTgpL/gpLLgpL7gpIgg4KSk4KWH4KS44KWN4KSw4KWLIOCkquCkleCljeCktyDgpKzgpY3gpLDgpL7gpIngpJzgpLDgpLngpLDgpYLgpKbgpY3gpLXgpL7gpLDgpL4g4KS14KS+IOCkteClh+CkrCDgpKzgpY3gpLDgpL7gpIngpJwg4KSX4KSw4KWN4KSo4KWHIOCkleCljeCkt+CkruCkpOCkvuCkpuCljeCkteCkvuCksOCkviDgpKzgpLLgpKrgpYLgpLDgpY3gpLXgpJUg4KSX4KSw4KS+4KSJ4KSoIOCkuOCkleCkv+CkgeCkpuCliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iMzcxNDc4NTE2NTI3MzMxNDQ5MCI+IuCkteClh+CkrCDgpKzgpYHgpJXgpK7gpL7gpLDgpY3gpJXgpLngpLDgpYIg4KSwIOCkh+CkpOCkv+CkueCkvuCkuCDgpLLgpYfgpJbgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUhpc3RvcnlCb29rbWFya3MiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY4MjU1Mjc0NjkxNDU3NjA5MjIiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkruCkviDgpK3gpKPgpY3gpKHgpL7gpLAg4KSX4KSw4KS/4KSP4KSV4KWLIOCkrOCljeCksOCkvuCkieCknOCksOCkleCliyDgpIfgpKTgpL/gpLngpL7gpLgg4KS14KS+IOCkrOClgeCkleCkruCkvuCksOCljeCkleCkueCksOClgiDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KSv4KS44KSy4KWHIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpKzgpY3gpLDgpL7gpJzgpLAg4KSh4KWH4KSf4KS+IOCkruClh+Ckn+CkvuCkieCkqCDgpLXgpL4g4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSoIOCkuOCkleCljeCkpuCkm+ClpCDgpJ/gpL/gpKrgpY3gpKrgpKPgpYA6IOCkr+CliyDgpIXgpKjgpYHgpK7gpKTgpL8g4KS14KWH4KSsIOCkrOCljeCksOCkvuCkieCknCDgpJfgpLDgpY3gpKjgpYcg4KSV4KWN4KS34KSu4KSk4KS+4KS54KSw4KWC4KSV4KWLIOCkuOCkvuCkpSDgpKTgpYfgpLjgpY3gpLDgpYst4KSq4KS+4KSw4KWN4KSf4KWAIOCkrOCljeCksOCkvuCkieCknOCksCDgpLXgpL4g4KSF4KSo4KWN4KSvIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkpuCljeCkteCkvuCksOCkviDgpLLgpL7gpJfgpYIg4KSX4KSw4KS/4KSP4KSV4KWLIOCkueCli+Ckh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0OTczODk1MzEwMTQxODU1MDkiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSr4KWL4KSo4KSu4KS+IOCkreCko+CljeCkoeCkvuCksOCkoyDgpK3gpI/gpJXgpYsg4KSs4KWN4KSw4KS+4KSJ4KSc4KSw4KSV4KWLIOCkh+CkpOCkv+CkueCkvuCkuCDgpLXgpL4g4KSs4KWB4KSV4KSu4KS+4KSw4KWN4KSV4KS54KSw4KWCIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkr+CkuOCksuClhyDgpLjgpL7gpK/gpKYg4KSs4KWN4KSw4KS+4KSJ4KSc4KSwIOCkoeClh+Ckn+CkvuCksuCkvuCkiCDgpK7gpYfgpJ/gpY3gpKgg4KS14KS+IOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkqOCli+Cknzog4KS14KWH4KSsIOCkrOCljeCksOCkvuCkieCknCDgpJfgpLDgpY3gpKjgpYcg4KSV4KWN4KS34KSu4KSk4KS+4KS44KS54KS/4KSk4KSV4KS+IOCkheCkqOCljeCkryDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KS14KS+IOCkpOClh+CkuOCljeCksOCliy0g4KSq4KSV4KWN4KS3IOCkrOCljeCksOCkvuCkieCknOCksOCkpuCljeCkteCkvuCksOCkviDgpLjgpL7gpK/gpKYg4KSv4KS4IOCkheCkqOClgeCkruCkpOCkv+CksuCkvuCkiCDgpLLgpL7gpJfgpYEg4KSX4KSw4KWN4KSoIOCkuOCkleCkv+CkguCkpuCliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0QWxhcm0iIG1zZ2lkPSIxMzc5Mjk0NTU2MzYyMDkxODE0Ij4i4KSP4KSJ4KSf4KS+IOCkhuCksuCksOCljeCkriDgpLjgpYfgpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QWxhcm0iIG1zZ2lkPSIzMTYzOTIwMzkxNTc0NzM4NDgiPiLgpLjgpY3gpKXgpL7gpKrgpKjgpL4g4KSX4KSw4KS/4KSP4KSV4KWLIOCkuOCkmeCljeCkleClh+CkpCDgpJjgpKHgpYAg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSu4KS+IOCkuOCkmeCljeCkleClh+CkpCDgpLjgpK7gpK8g4KSu4KS/4KSy4KS+4KSJ4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkleClh+CkueClgCDgpLjgpJngpY3gpJXgpYfgpKQg4KSY4KSh4KWAIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpK/gpYsg4KS44KWB4KS14KS/4KSn4KS+IOCkleCkvuCksOCljeCkr+CkvuCkqOCljeCkteCkr+CkqCDgpKjgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hZGRWb2ljZW1haWwiIG1zZ2lkPSI1NTI1NjYwMDI2MDkwOTU5MDQ0Ij4i4KSt4KWN4KS14KS+4KSH4KS44KSu4KWH4KSyIOCkpeCkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hZGRWb2ljZW1haWwiIG1zZ2lkPSI2NjA0NTA4NjUxNDI4MjUyNDM3Ij4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkreCljeCkteCkvuCkh+CkuOCkruClh+CksiDgpIfgpKjgpKzgpJXgpY3gpLjgpK7gpL4g4KS44KSo4KWN4KSm4KWH4KS2IOCkpeCkquCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlR2VvbG9jYXRpb25QZXJtaXNzaW9ucyIgbXNnaWQ9IjU5NjIyMjQxNTg5NTUyNzM5MzIiPiLgpK3gpYLgpLjgpY3gpKXgpL7gpKgg4KSF4KSo4KWB4KSu4KSk4KS/4KS54KSw4KWCIOCkrOCljeCksOCkvuCkieCknOCksCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iMTA4Mzc0MzIzNDUyMjYzODc0NyI+IuCkrOCljeCksOCkvuCkieCknOCksOCkleCliyDgpK3gpYIt4KS44KWN4KSl4KS+4KSoIOCkheCkqOClgeCkruCkpOCkv+CkueCksOClgiDgpKrgpLDgpL/gpK7gpL7gpLDgpY3gpJzgpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIOCkluCksOCkvuCkrCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYLgpLLgpYcgIOCkuOCljeCkpeCkvuCkqCDgpLjgpYLgpJrgpKjgpL4g4KSu4KSo4KSq4KSw4KWAIOCkteClh+CkrCDgpLjgpL7gpIfgpJ/gpLngpLDgpYLgpK7gpL4g4KSq4KSg4KS+4KSJ4KSo4KWHIOCkheCkqOClgeCkruCkpOCkv+CkleCliyDgpLLgpL7gpJfgpL8g4KSv4KS44KSy4KS+4KSIIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KSb4KSo4KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wYWNrYWdlVmVyaWZpY2F0aW9uQWdlbnQiIG1zZ2lkPSI1NTY4MTM5MTAwNjQ1ODI5MTE3Ij4i4KSq4KWN4KSv4KSV4KWH4KSc4KS54KSw4KWC4KSV4KWLIOCkqOCkv+CksOClgOCkleCljeCkt+CkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wYWNrYWdlVmVyaWZpY2F0aW9uQWdlbnQiIG1zZ2lkPSI4NDM3NTkwMTkwOTkwODQzMzgxIj4i4KSq4KWN4KSv4KS+4KSV4KWH4KScIOCkuOCljeCkpeCkvuCkquCkqOCkviDgpK/gpYvgpJfgpY3gpK8g4KSbIOCkleCkvyDgpK3gpKjgpYfgpLAg4KSw4KWB4KSc4KWBIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFBhY2thZ2VWZXJpZmllciIgbXNnaWQ9IjQxODc3ODY3OTMzNjAzMjY2NTQiPiLgpI/gpIngpJ/gpL4g4KSq4KWN4KSv4KS+4KSV4KWH4KScIOCksOClgeCknOClgeCkleCksOCljeCkpOCkvuCkruCkviDgpKzgpL7gpIHgpKfgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kUGFja2FnZVZlcmlmaWVyIiBtc2dpZD0iMzE4MDc0MTc3MzIzMzg2MjEyNiI+IuCkueCli+CksuCljeCkoeCksOCksuCkvuCkiCDgpKrgpY3gpK/gpL7gpJXgpYfgpJwg4KSq4KWN4KSw4KSu4KS+4KSj4KS/4KSk4KSV4KSw4KWN4KSk4KS+4KS54KSw4KWC4KSV4KWLIOCkheCkqOClgeCksOCli+Ckp+CkueCksOClgiDgpKzgpKjgpL7gpIngpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkleCkueCkv+CksuClhyDgpKrgpKjgpL8g4KSG4KS14KS24KWN4KSv4KSVIOCkqOCkquCksOCljeCkqCDgpLjgpJXgpY3gpKbgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NlcmlhbFBvcnQiIG1zZ2lkPSI1NDYwODMzMjc2NTQ2MzEwNzYiPiLgpKrgpLngpYHgpIHgpJog4KS44KS/4KSw4KS/4KSv4KSyIOCkquCli+CksOCljeCkn+CkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlcmlhbFBvcnQiIG1zZ2lkPSIyOTkxNjM5OTg1MjI0NTk4MTkzIj4i4KS54KWL4KSy4KWN4KSh4KSw4KSy4KS+4KSIIFNlcmlhbE1hbmFnZXIgQVBJIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpYfgpLAg4KS44KS/4KSw4KS/4KSv4KSyIOCkquCli+CksOCljeCkn+CkueCksOClgiDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0NvbnRlbnRQcm92aWRlcnNFeHRlcm5hbGx5IiBtc2dpZD0iNTA3Nzc3NDI5Nzk0MzQwOTI4NSI+IuCkteCkv+Ckt+Ckr+CkuOClguCkmuClgCDgpKrgpY3gpLDgpKbgpL7gpKTgpL7gpLLgpL7gpIgg4KSs4KS+4KS54KWN4KSvIOCksOClguCkquCkruCkviDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29udGVudFByb3ZpZGVyc0V4dGVybmFsbHkiIG1zZ2lkPSI0NTQ0MzQ2NDg2Njk3ODUzNjg1Ij4i4KS44KWH4KSy4KSs4KS+4KSfIOCkp+CkvuCksOCkleCksuClhyDgpLXgpL/gpLfgpK/gpLXgpLjgpY3gpKTgpYEg4KSq4KWN4KSw4KSm4KS+4KSv4KSV4KS54KSw4KWC4KS44KSu4KWN4KSu4KSV4KWLIOCkquCkueClgeCkgeCkmiDgpKrgpL7gpIngpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSy4KS+4KSIIOCkleCkueCkv+CksuCljeCkr+CliCDgpIbgpLXgpLbgpY3gpK/gpJUg4KSq4KSw4KWN4KSm4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91cGRhdGVMb2NrIiBtc2dpZD0iMzUyNzU1ODM2NjYxNjY4MDg4OSI+IuCkuOCljeCkteCkmuCkvuCksuCkv+CkpCDgpIngpKrgpJXgpLDgpKMg4KSF4KSq4KSh4KWH4KSf4KS54KSw4KWCIOCkueCkpOCli+CkpOCljeCkuOCkvuCkueCkv+CkpCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVMb2NrIiBtc2dpZD0iMTY1NTYyNTgzMjE2Njc3ODQ5MiI+IuCkueCli+CksuCljeCkoeCksOCksuCkvuCkiCDgpIngpKrgpJXgpLDgpKMg4KSF4KSq4KSX4KWN4KSw4KWH4KShIOCkl+CksOCljeCkqCDgpJfgpYjgpLAg4KSq4KS+4KSw4KS44KWN4KSq4KSw4KS/4KSVIOCkquClgeCkqOCkg+CkrOClgeCkn+CkleCliyDgpLLgpL7gpJfgpL8g4KSJ4KSa4KS/4KSkIOCkuOCkruCkr+CkleCliyDgpKzgpL7gpLDgpYfgpK7gpL4g4KSq4KWN4KSw4KSj4KS+4KSy4KWA4KSu4KS+IOCknOCkvuCkqOCkvuCkleCkvuCksOClgCDgpKrgpY3gpLDgpLjgpY3gpKTgpL7gpLXgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX21lc3NhZ2UiIG1zZ2lkPSI3NjczNDQ2ODcxMzkxOTU3OTAiPiLgpJXgpYcg4KSk4KSq4KS+4KSI4KSCIOCkrOCljeCksOCkvuCkieCknOCksOCksuClhyDgpK/gpYsg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkuOCkruCljeCkneClh+CkleCliyDgpJrgpL7gpLngpKjgpYHgpLngpYHgpKjgpY3gpJs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9ub3Rub3ciIG1zZ2lkPSI2Mzg5Njc1MzE2NzA2Njk5NzU4Ij4i4KSF4KS54KS/4KSy4KWHIOCkueCli+Ckh+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfcmVtZW1iZXIiIG1zZ2lkPSI2NDkxODc5Njc4OTk2NzQ5NDY2Ij4i4KS44KSu4KWN4KSd4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9uZXZlciIgbXNnaWQ9IjgyNzQzMzAyOTY3ODU4NTUxMDUiPiLgpJXgpLngpL/gpLLgpY3gpK/gpYgg4KSq4KSo4KS/IOCkueCli+Ckh+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9wZW5fcGVybWlzc2lvbl9kZW55IiBtc2dpZD0iNzM3NDAzNjcwODMxNjYyOTgwMCI+IuCkr+CliyDgpKrgpYPgpLfgpY3gpKAg4KSW4KWL4KSy4KWN4KSoIOCkpOCkquCkvuCkiOCkgeCksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV4dF9jb3BpZWQiIG1zZ2lkPSI0OTg1NzI5NTI0NjcwMTMxMzg1Ij4i4KSV4KWN4KSy4KS/4KSq4KSs4KWL4KSw4KWN4KSh4KSu4KS+IOCkquCljeCksOCkpOCkv+CksuCkv+CkqiDgpJfgpLDgpL/gpI/gpJXgpYsg4KSq4KS+4KSg4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9yZV9pdGVtX2xhYmVsIiBtc2dpZD0iNDY1MDkxODkyMzA4MzMyMDQ5NSI+IuCkrOCkouClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBlbmRfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIyNTcyMjE0NDYxNjc2MDE1NjQyIj4i4KSu4KWH4KSo4KWBKyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc3BhY2Vfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIyNDEwMzI4NjM5MjcyMTYyNTM3Ij4i4KSg4KS+4KSJ4KSBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9lbnRlcl9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI3NDMzNjI3ODUxMTEzMDk2NjgiPiLgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGVfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIzNjU4MTc4MDA3MjAyNzQ4MTY0Ij4i4KSu4KWH4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoX2dvIiBtc2dpZD0iODI5ODAxNjY2OTgyMjE0MTcxOSI+IuCkluCli+CknOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fc2VhcmNoIiBtc2dpZD0iNjc0OTgyNjYzOTA5ODUxMjEyMCI+IuCkluCli+CknOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fcXVlcnkiIG1zZ2lkPSI1OTExNzc4NTkzMTI1MzU1MTI0Ij4i4KSc4KS/4KSc4KWN4KSe4KS+4KS44KS+IOCkluCli+CknCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX2NsZWFyIiBtc2dpZD0iMTMzMDI4MTk5MDk1MTgzMzAzMyI+IuCkquCljeCksOCktuCljeKAjeCkqCDgpLngpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX3N1Ym1pdCIgbXNnaWQ9IjI2ODg0NTAxMzMyOTc5ODM1NDIiPiLgpJzgpL/gpJzgpY3gpJ7gpL7gpLjgpL4g4KSq4KWH4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fdm9pY2UiIG1zZ2lkPSIyNDUzMjAzNjk1Njc0OTk0NDQwIj4i4KSt4KWN4KS14KS+4KSH4KS4IOCkluCli+CknOClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSI3NDYwNjk0MDcwMzA5NzMwMTQ5Ij4i4KSb4KWL4KSP4KSwIOCkheCkqOCljeCkteClh+Ckt+CkoyDgpJfgpLDgpY3gpKjgpYcg4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODY1NTg4NzUzOTA4OTkxMDU3NyI+Ijx4bGlmZjpnIGlkPSJBQ0NFU1NJQklMSVRZX1NFUlZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz7gpLLgpYcg4KS44KWN4KSq4KSw4KWN4KS34KSm4KWN4KS14KS+4KSw4KS+IOCkheCkqOCljeCkteClh+Ckt+CkoyDgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KWN4KSoIOCkmuCkvuCkueCkqOCljeCkm+ClpCDgpLjgpY3gpKrgpLDgpY3gpLfgpKbgpY3gpLXgpL7gpLDgpL4g4KSF4KSo4KWN4KS14KWH4KS34KSjIOCkuOCkleCljeCkt+CkriDgpK3gpI/gpJXgpYsg4KSs4KWH4KSy4KS+LCDgpKTgpKrgpL7gpIjgpIEg4KSG4KSr4KWN4KSo4KWLIOCklOCkgeCksuCkvuCkleCliyDgpK7gpYHgpKjgpL8g4KSt4KSP4KSV4KS+IOCkteCkv+Ckt+Ckr+CkteCkuOCljeCkpOClgeCkueCksOClgiDgpKzgpL7gpLDgpYcg4KS44KWB4KSo4KWN4KSoIOCkteCkviDgpLXgpL/gpLXgpLDgpKMg4KS54KWH4KSw4KWN4KSoIOCkuOCkleCljeCkqOClgeCkueClgeCkqOCljeCkmyDgpLXgpL4g4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KS44KSB4KSXIOCkheCkqOCljeCkpOCksOCljeCkleCljeCksOCkv+Ckr+CkviDgpJfgpLDgpY3gpKgg4KSH4KS24KS+4KSw4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI3MDgxOTk2NzI4NTIzNzMxOTUiPiI8eGxpZmY6ZyBpZD0iQUNDRVNTSUJJTElUWV9TRVJWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+4KSy4KWHIOCkuOCljeCkquCksOCljeCkt+CkpuCljeCkteCkvuCksOCkviDgpIXgpKjgpY3gpLXgpYfgpLfgpKMg4KS44KSV4KWN4KS34KSuIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpY3gpJvgpaQg4KS44KWN4KSq4KSw4KWN4KS34KSm4KWN4KS14KS+4KSw4KS+IOCkheCkqOCljeCkteClh+Ckt+CkoyDgpLjgpJXgpY3gpLfgpK4g4KSt4KSP4KSV4KWLIOCkrOClh+CksuCkviDgpKTgpKrgpL7gpIjgpIEg4KSG4KSr4KWN4KSo4KWLIOCklOCkgeCksuCkvuCkleCliyDgpK7gpYHgpKjgpL8g4KSt4KSP4KSV4KS+IOCkteCkv+Ckt+Ckr+CkteCkuOCljeCkpOClgeCkueCksOClgiDgpKzgpL7gpLDgpYcg4KS44KWB4KSo4KWN4KSoIOCkteCkviDgpLXgpL/gpLXgpLDgpKMg4KS54KWH4KSw4KWN4KSoIOCkuOCkleCljeCkqOClgeCkueClgeCkqOCljeCkmyDgpLXgpL4g4KSr4KWL4KSo4KS44KSB4KSXIOCkheCkqOCljeCkpOCksOCljeCkleCljeCksOCkv+Ckr+CkviDgpJfgpLDgpY3gpKgg4KSH4KS24KS+4KSw4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9uZU1vbnRoRHVyYXRpb25QYXN0IiBtc2dpZD0iNzM5NjM4NDUwODk1Mzc3OTkyNSI+IuClpyDgpK7gpLngpL/gpKjgpL4g4KSF4KSY4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmVmb3JlT25lTW9udGhEdXJhdGlvblBhc3QiIG1zZ2lkPSI5MDkxMzQ1NDY4MzY0OTk4MjYiPiLgpacg4KSu4KS54KS/4KSo4KS+IOCkheCkmOCkvyI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX3NlY29uZHNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDg2OTg3MDA1NjU0Nzg5NjAxMSI+IuClpyDgpLjgpYfgpJXgpYfgpKjgpY3gpKEg4KSF4KSY4KS/IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzOTAzNzA2ODA0MzQ5NTU2Mzc5Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KS44KWH4KSV4KWH4KSo4KWN4KShIOCkheCkmOCkvyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX21pbnV0ZXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzMwNjc4NzQzMzA4ODgxMDE5MSI+IuClpyDgpK7gpL/gpKjgpYfgpJ8g4KSF4KSY4KS/IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMTc2OTQyMDA4OTE1NDU1MTE2Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSu4KS/4KSo4KWH4KSfIOCkheCkmOCkvyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX2hvdXJzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjkxNTA3OTc5NDQ2MTA4MjE4NDkiPiLgpacg4KSY4KSo4KWN4KSf4KS+IOCkheCkmOCkvyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjQ2NzI3MzIzOTU4NzU4NzU2OSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkmOCkqOCljeCkn+CkviDgpIXgpJjgpL8iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Imxhc3RfbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjMwNjk5OTI4MDgxNjQzMTgyNjgiPiLgpIXgpKjgpY3gpKTgpL/gpK4gPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSm4KS/4KSoIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ibGFzdF9tb250aCIgbXNnaWQ9IjM5NTkzNDY3Mzk5NzkwNTU0MzIiPiLgpIXgpKjgpY3gpKTgpL/gpK4g4KSu4KS54KS/4KSo4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkZXIiIG1zZ2lkPSI1MjExOTc1MDIyODE1NTU0ODQwIj4i4KSq4KWB4KSw4KS+4KSo4KWLIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJudW1fZGF5c19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4NjEzNTg1MzQzOTgxMTU4MjAiPiLgpLngpL/gpJzgpYsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI0Nzk1ODY0NjYxNTMzMTQ2MzMiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDgpKbgpL/gpKgg4KSF4KSY4KS/IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fc2Vjb25kcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjI3Mjk3NDU1NjA5NTQ5MDUxMDIiPiLgpacg4KS44KWH4KSV4KWH4KSo4KWN4KSh4KSu4KS+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMjQxOTI2MTE2NDQzOTc0Njg3Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KS44KWH4KSV4KWH4KSo4KWN4KSh4KSu4KS+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJpbl9udW1fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9Ijg3OTMwOTUyNTEzMjUyMDAzOTUiPiLgpacg4KSu4KS/4KSo4KWH4KSf4KSu4KS+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzMzMwNzEzOTM2Mzk5NDQ4NzQ5Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz7gpK7gpL/gpKjgpYfgpJ/gpK7gpL4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImluX251bV9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjcxNjQzNTMzNDI0Nzc3Njk5OTkiPiLgpacg4KSY4KSo4KWN4KSf4KS+4KSu4KS+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDcyOTA2NzczNTM3MjczODkiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDgpJjgpKjgpY3gpJ/gpL7gpK7gpL4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImluX251bV9kYXlzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTQxMzA4ODc0MzAwOTgzOTUxOCI+IuCkreCli+CksuCkvyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTEwOTQ0OTM3NTEwMDk1MzI0NyI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkpuCkv+CkqOCkruCkviI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X251bV9zZWNvbmRzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjE4NDkwMzY4NDAyMDAwNjkxMTgiPiLgpacg4KS44KWH4KSV4KWH4KSo4KWN4KShIOCkheCkmOCkvyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzY5OTE2OTM2NjY1MDkzMDQxNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoSDgpIXgpJfgpL7gpKHgpL8iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1fbWludXRlc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2MzYxNDkwMTQ3MTEzODcxNTQ1Ij4i4KWnIOCkruCkv+CkqOClh+CknyDgpIXgpJjgpL8iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg1MTE2NDk2ODU5NzE1MDcxMCI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkruCkv+CkqOClh+CknyDgpIXgpJjgpL8iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1faG91cnNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDc5NjIxMjAzOTcyNDcyMjExNiI+IuClpyDgpJjgpKjgpY3gpJ/gpL4g4KSF4KSY4KS/IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2ODg5OTcwNzQ1NzQ4NTM4OTAxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSY4KSo4KWN4KSf4KS+IOCkheCkmOCkvyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X251bV9kYXlzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9Ijg0NjMxNjE3MTE0OTI2ODAzMDkiPiLgpLngpL/gpJzgpYsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM0NTMzNDI2Mzk2MTY0ODExOTEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDgpKbgpL/gpKgg4KSF4KSY4KS/IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfaW5fbnVtX3NlY29uZHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODQyMjI1MzcwNzk1MDY2Mjk5Ij4i4KWnIOCkuOClh+CkleCkqOCljeCkoSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ5NTg4MDEwODgyNTgwNTEwOCI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9taW51dGVzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTYyNzg2MTQ5OTI4Mjg0ODc4Ij4i4KWnIOCkruCkv+CkqOClh+Ckn+CkruCkviI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDIxNjExMzI5MjcwNjU2ODcyNiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkruCkv+CkqOClh+Ckn+CkruCkviI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNzQ3MDgxMTgxMjQwNDUyNDYiPiLgpacg4KSY4KSo4KWN4KSf4KS+4KSu4KS+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzNzA1MzczNzY2Nzk4MDEzNDA2Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSY4KSo4KWN4KSf4KS+4KSu4KS+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfaW5fbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIyMTc4NTc2MjU0Mzg1NzM5ODU1Ij4i4KSt4KWL4KSy4KS/IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyOTczMDYyOTY4MDM4MzU1OTkxIj4i4KSm4KS/4KSoPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSu4KS+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0icHJlcG9zaXRpb25fZm9yX2RhdGUiIG1zZ2lkPSI5MDkzOTQ5NzU3NzU3NDQ1MTE3Ij4iPHhsaWZmOmcgaWQ9IkRBVEUiPiVzPC94bGlmZjpnPiDgpK7gpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVwb3NpdGlvbl9mb3JfdGltZSIgbXNnaWQ9IjU1MDY4MzEyNDQyNjMwODM3OTMiPiI8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+IOCkruCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl95ZWFyIiBtc2dpZD0iNTA0MDM5NTY0MDcxMTg2NzE3NyI+Ijx4bGlmZjpnIGlkPSJZRUFSIj4lczwveGxpZmY6Zz4g4KSu4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5IiBtc2dpZD0iODE0NDE5NTc3NjA1ODExOTQyNCI+IuCkpuCkv+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheXMiIG1zZ2lkPSI0Nzc0NTQ3NjYxMDIxMzQ0NjAyIj4i4KSm4KS/4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91ciIgbXNnaWQ9IjIxMjY3NzE5MTY0MjYxODk0ODEiPiLgpJjgpKjgpY3gpJ/gpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VycyIgbXNnaWQ9Ijg5NDQyNDAwNTI2Njg1Mjk5MyI+IuCkmOCkqOCljeCkn+CkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZSIgbXNnaWQ9IjkxNDg4Nzg2NTc3MDM3Njk4NjgiPiLgpK7gpL/gpKjgpYfgpJ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVzIiBtc2dpZD0iNTY0NjAwMTAwNTgyNzAzNDUwOSI+IuCkruCkv+CkqOClh+CknyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlY29uZCIgbXNnaWQ9IjMxODQyMzU4MDgwMjE0NzgiPiLgpLjgpYfgpJXgpYfgpKjgpY3gpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWNvbmRzIiBtc2dpZD0iMzE2MTUxNTM0NzIxNjU4OTIzNSI+IuCkuOClh+CkleClh+CkqOCljeCkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlZWsiIG1zZ2lkPSI1NjE3OTYxNTM3MTczMDYxNTgzIj4i4KS54KSq4KWN4KSk4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2Vla3MiIG1zZ2lkPSI2NTA5NjIzODM0NTgzOTQ0NTE4Ij4i4KS54KSq4KWN4KSk4KS+4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhciIgbXNnaWQ9IjQwMDExMTgyMjEwMTM4OTIwNzYiPiLgpLXgpLDgpY3gpLciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFycyIgbXNnaWQ9IjY4ODE1Nzc3MTc5OTMyMTM1MjIiPiLgpLXgpLDgpY3gpLfgpLngpLDgpYIiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImR1cmF0aW9uX3NlY29uZHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2OTYyMDE1NTI4MzcyOTY5NDgxIj4i4KWnIOCkuOClh+CkleClh+CkqOCljeCkoSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTg4NjEwNzc2NjU3NzE2Njc4NiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iZHVyYXRpb25fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ5MTU0MTQwMDI1NDYwODU2MTciPiLgpacg4KSu4KS/4KSo4KWH4KSfIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzMTY1MTg3MTY5MjI0OTA4Nzc1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSu4KS/4KSo4KWH4KSfIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJkdXJhdGlvbl9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9Ijg5MTc0Njc0OTEyNDg4MDk5NzIiPiLgpacg4KSY4KSo4KWN4KSf4KS+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzODYzOTYyODU0MjQ2NzczOTMwIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4KSY4KSo4KWN4KSf4KS+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RpdGxlIiBtc2dpZD0iMzUzNDUwOTEzNTQzODM1MzA3NyI+IuCkreCkv+CkoeCkv+Ckr+CliyDgpLjgpK7gpLjgpY3gpK/gpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfdGV4dF9pbnZhbGlkX3Byb2dyZXNzaXZlX3BsYXliYWNrIiBtc2dpZD0iMzE4NjY3MDMzNTkzODY3MDQ0NCI+IuCkr+CliyDgpK3gpL/gpKHgpL/gpK/gpYsg4KSv4KS4IOCkieCkquCkleCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KS44KWN4KSf4KWN4KSw4KS/4KSu4KS/4KSZIOCkl+CksOCljeCkqCDgpK7gpL7gpKjgpY3gpK8g4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RleHRfdW5rbm93biIgbXNnaWQ9IjM0NTA0MzkxNTUxODc4MTAwODUiPiLgpK/gpYsg4KSt4KS/4KSh4KS/4KSv4KWLIOCkmuCksuCkvuCkieCkqCDgpLjgpJXgpY3gpKbgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfYnV0dG9uIiBtc2dpZD0iMjgyMjIzODIxNTEwMDY3OTU5MiI+IuCkoOClgOCklSDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGl2ZV90aW1lIiBtc2dpZD0iMTgxODU1NzE3NzgyOTQxMTQxNyI+Ijx4bGlmZjpnIGlkPSJEQVRFIj4lMSRzPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IlRJTUUiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9vbiIgbXNnaWQ9IjcyNDUzNTM1Mjg4MTg1ODc5MDgiPiLgpK7gpKfgpY3gpK/gpL7gpKjgpY3gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJOb29uIiBtc2dpZD0iMzM0MjEyNzc0NTIzMDAxMzEyNyI+IuCkruCkp+CljeCkr+CkvuCkqOCljeCkuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pZG5pZ2h0IiBtc2dpZD0iNzE2NjI1OTUwODg1MDQ1NzU5NSI+IuCkruCkp+CljeCkr+CksOCkvuCkpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Ik1pZG5pZ2h0IiBtc2dpZD0iNTYzMDgwNjkwNjg5Nzg5MjIwMSI+IuCkruCkp+CljeCkr+CksOCkvuCkpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVsYXBzZWRfdGltZV9zaG9ydF9mb3JtYXRfbW1fc3MiIG1zZ2lkPSI0NDMxNTU1OTQzODI4NzExNDczIj4iPHhsaWZmOmcgaWQ9Ik1JTlVURVMiPiUxJDAyZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9IlNFQ09ORFMiPiUyJDAyZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGFwc2VkX3RpbWVfc2hvcnRfZm9ybWF0X2hfbW1fc3MiIG1zZ2lkPSIxODQ2MDcxOTk3NjE2NjU0MTI0Ij4iPHhsaWZmOmcgaWQ9IkhPVVJTIj4lMSRkPC94bGlmZjpnPjo8eGxpZmY6ZyBpZD0iTUlOVVRFUyI+JTIkMDJkPC94bGlmZjpnPjo8eGxpZmY6ZyBpZD0iU0VDT05EUyI+JTMkMDJkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdEFsbCIgbXNnaWQ9IjY4NzY1MTg5MjU4NDQxMjkzMzEiPiLgpLjgpKzgpYjgpLLgpL7gpIgg4KSa4KSv4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1dCIgbXNnaWQ9IjMwOTI1Njk0MDg0Mzg2MjYyNjEiPiLgpJXgpL7gpJ/gpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb3B5IiBtc2dpZD0iMjY4MTk0NjIyOTUzMzUxMTk4NyI+IuCkquCljeCksOCkpOCkv+CksuCkv+CkquCkvyDgpKzgpKjgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXN0ZSIgbXNnaWQ9IjU2Mjk4ODA4MzY4MDUwMzY0MzMiPiLgpJ/gpL7gpIHgpLjgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXBsYWNlIiBtc2dpZD0iNTc4MTY4NjA1OTA2MzE0ODkzMCI+IuCkteCkv+CkuOCljeCkpeCkvuCkquCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3igKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGUiIG1zZ2lkPSI2MDk4Njg0ODQ0MDIxNjk3Nzg5Ij4i4KSu4KWH4KSf4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29weVVybCIgbXNnaWQ9IjI1MzgyMTE1Nzk1OTYwNjc0MDIiPiJVUkwg4KSV4KWLIOCkquCljeCksOCkpOCkv+CksuCkv+CkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RUZXh0TW9kZSIgbXNnaWQ9IjEwMTg2OTE4MTUxNDMxNjUzMjYiPiLgpKrgpL7gpKAg4KSa4KSv4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRleHRTZWxlY3Rpb25DQUJUaXRsZSIgbXNnaWQ9IjUyMzY4NTAzOTQzNzA4MjAzNTciPiLgpKrgpL7gpKAg4KSa4KSv4KSo4KSk4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkVG9EaWN0aW9uYXJ5IiBtc2dpZD0iNDM1MjE2MTUzNDUxMDA1Nzg3NCI+IuCktuCkrOCljeCkpuCkleCli+CktuCkruCkviDgpKXgpKrgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVUZXh0IiBtc2dpZD0iNjk3OTY2ODQyODQ1ODE5OTAzNCI+IuCkruClh+Ckn+CljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImlucHV0TWV0aG9kIiBtc2dpZD0iMTY1MzYzMDA2MjMwNDU2Nzg3OSI+IuCkqOCkv+CkteClh+CktiDgpLXgpL/gpKfgpL8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlZGl0VGV4dE1lbnVUaXRsZSIgbXNnaWQ9IjQ5MDkxMzU1NjQ5NDE4MTU0OTQiPiLgpKrgpL7gpKAg4KSV4KS+4KSw4KWN4KSv4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X2ludGVybmFsX3N0b3JhZ2Vfdmlld190aXRsZSIgbXNnaWQ9IjU1NzYyNzI0OTYzNjU2ODQ4MzQiPiLgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSg4KS+4KSJ4KSBIOCkuOCkleCkv+CkgeCkpuCliCDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfaW50ZXJuYWxfc3RvcmFnZV92aWV3X3RleHQiIG1zZ2lkPSI2NjQwNTA1ODE3NjE3NDE0MzcxIj4i4KS44KS+4KSv4KSmIOCkleClh+CkueClgCDgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KSV4KS+4KSw4KWN4KSv4KSV4KWN4KSw4KSu4KS54KSw4KWC4KSy4KWHIOCkleCkvuCkriDgpJfgpLDgpY3gpKbgpYjgpKjgpKjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfcnVubmluZ19ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4NzE4MzM1MTIxMDYwNzg3OTE0Ij4iPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiDgpJrgpLLgpL/gpLDgpLngpYfgpJXgpYsg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX3J1bm5pbmdfbm90aWZpY2F0aW9uX3RleHQiIG1zZ2lkPSI0NjUzNTg2OTQ3NzQ3MzMwMDU4Ij4i4KSl4KSqIOCkuOClguCkmuCkqOCkvuCkleCliyDgpLLgpL7gpJfgpL8g4KSb4KWB4KSo4KWB4KS54KWL4KS44KWNIOCkteCkviDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9rIiBtc2dpZD0iNTk3MDA2MDQzMDU2MjUyNDkxMCI+IuCkoOCkv+CklSDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI2NDQyNTYwNTcxMjU5OTM1MTMwIj4i4KSw4KSm4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllcyIgbXNnaWQ9IjUzNjI5ODIzMDMzMzc5NjkzMTIiPiLgpKDgpL/gpJUg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm8iIG1zZ2lkPSI1MTQxNTMxMDQ0OTM1NTQxNDk3Ij4i4KSw4KSm4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpYWxvZ19hbGVydF90aXRsZSIgbXNnaWQ9IjIwNDk2NTg3MDg2MDkwNDMxMDMiPiLgpLjgpL7gpLXgpKfgpL7gpKjgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2FkaW5nIiBtc2dpZD0iNzkzMzY4MTI2MDI5NjAyMTE4MCI+IuCksuCli+CkoSDgpLngpYHgpIHgpKbgpYguLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBpdGFsX29uIiBtc2dpZD0iMTU0NDY4Mjc1NTUxNDQ5NDI5OCI+IuCkmuCkvuCksuClgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGl0YWxfb2ZmIiBtc2dpZD0iNjgxNTg3MDM4Njk3MjgwNTgzMiI+IuCkrOCkqOCljeCkpiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndoaWNoQXBwbGljYXRpb24iIG1zZ2lkPSI0NTMzMTg1OTQ3MDY0NzczMzg2Ij4i4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClh+CksCDgpJXgpL7gpLDgpKzgpL7gpLngpYAg4KSq4KWB4KSw4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c1VzZSIgbXNnaWQ9IjQ1ODMwMTgzNjgwMDA2MTA0MzgiPiLgpK/gpLgg4KSV4KS+4KSw4KWN4KSv4KSV4KWLIOCksuCkvuCkl+CkvyDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKTgpKzgpL7gpJ8g4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNsZWFyRGVmYXVsdEhpbnRNc2ciIG1zZ2lkPSIzMjUyNTg0Njg5NTEyMDc3MjU3Ij4i4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkuOClh+Ckn+Ckv+CkmeCkueCksOClguCkruCkviDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKTgpLLgpL7gpIgg4KS54KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNICZndDsg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCICZndDsg4KSh4KS+4KSJ4KSo4KSy4KWL4KSh4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlQWN0aXZpdHkiIG1zZ2lkPSI3NDg2ODc2MTQ3NzUxODAzMzMzIj4i4KSP4KSJ4KSf4KS+IOCkleCkvuCksOCljeCkr+CkleCliyDgpJrgpK/gpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlVXNiQWN0aXZpdHkiIG1zZ2lkPSI2ODk0NzQ4NDE2MDczNTgzNTA5Ij4iVVNCIOCkieCkquCkleCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KSP4KSJ4KSf4KS+IOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpJvgpL7gpKjgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub0FwcGxpY2F0aW9ucyIgbXNnaWQ9IjI5OTE4MTQyNzM5MzY1MDQ2ODkiPiLgpJXgpYHgpKjgpYgg4KSq4KSo4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpK/gpYsg4KSV4KS+4KSw4KWN4KSvIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpKbgpYjgpKjgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX3RpdGxlIiBtc2dpZD0iMTkwNTgwMDU2MDMxNzEzNzc1MiI+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX2FwcGxpY2F0aW9uIiBtc2dpZD0iOTMyNjI4NDg4MDEzMDkyNzc2Ij4i4KSm4KWB4KSw4KWN4KSt4KS+4KSX4KWN4KSv4KS14KS2LCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+4KSy4KWHIOCksOCli+CkleClh+CkleCliyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZXJyX3Byb2Nlc3MiIG1zZ2lkPSI0NTA3MDU4OTk3MDM1Njk3NTc5Ij4i4KSm4KWB4KSw4KWN4KSt4KS+4KSX4KWN4KSv4KS14KS2LCDgpKrgpY3gpLDgpJXgpY3gpLDgpL/gpK/gpL4gPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+IOCkrOCkqOCljeCkpiDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfdGl0bGUiIG1zZ2lkPSI0MzUxOTQ4NDgxNDU5MTM1NzA5Ij48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hY3Rpdml0eV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjE5MDQ0NzcxODkwNTcxOTkwNjYiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUyJHM8L3hsaWZmOmc+4KSy4KWHIOCkleCkvuCksOCljeCkryDgpJfgpLDgpL/gpLDgpLngpYfgpJXgpYsg4KSb4KWI4KSo4KWkXG5cbuCkleClhyDgpKTgpKrgpL7gpIjgpIEg4KSv4KS44KSy4KS+4KSIIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKgg4KSa4KS+4KS54KSo4KWBIOCkueClgeCkqOCljeCkmz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfYWN0aXZpdHlfcHJvY2VzcyIgbXNnaWQ9IjU3NzYyMDk4ODMyOTkwODk3NjciPiLgpJfgpKTgpL/gpLXgpL/gpKfgpL8gPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiDgpLLgpYcg4KSq4KWN4KSw4KSk4KS/4KSV4KWN4KSw4KS/4KSv4KS+IOCkpuClh+CkluCkvuCkh+CksOCkueClh+CkleCliyDgpJvgpYjgpKjgpaRcblxu4KSV4KWHIOCkpOCkquCkvuCkiOCkgiDgpK/gpLjgpLLgpL7gpIgg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hcHBsaWNhdGlvbl9wcm9jZXNzIiBtc2dpZD0iODk0MTc1NzYwNzM0MDQ4MTA1NyI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g4KSc4KS14KS+4KSrIOCkpuCkv+Ckh+CksOCkueClh+CkleCliyDgpJvgpYjgpKjgpaQg4KSV4KWHIOCkpOCkquCkvuCkiOCkgSDgpK/gpLjgpLLgpL7gpIgg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9wcm9jZXNzIiBtc2dpZD0iNjUxMzIwOTg3NDg4MDUxNzEyNSI+IuCkquCljeCksOCkleCljeCksOCkv+Ckr+CkviA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz7gpLLgpYcg4KSV4KS+4KSw4KWN4KSvIOCkl+CksOCkv+CksOCkueClh+CkleCliyDgpJvgpYjgpKjgpaRcblxu4KSV4KWHIOCkpOCkquCkvuCkiOCkgSDgpK/gpLjgpLLgpL7gpIgg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcmNlX2Nsb3NlIiBtc2dpZD0iODM0NjA3MjA5NDUyMTI2NTYwNSI+IuCkoOCkv+CklSDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXBvcnQiIG1zZ2lkPSI0MDYwMjE4MjYwOTg0Nzk1NzA2Ij4i4KSw4KS/4KSq4KWL4KSw4KWN4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndhaXQiIG1zZ2lkPSI3MTQ3MTE4MjE3MjI2MzE3NzMyIj4i4KSq4KWN4KSw4KSk4KWA4KSV4KWN4KS34KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndlYnBhZ2VfdW5yZXNwb25zaXZlIiBtc2dpZD0iMzI3Mjc1ODM1MTEzODEyMjUwMyI+IuCkquClg+Ckt+CljeCkoCDgpJfgpYjgpLAg4KSc4KS/4KSu4KWN4KSu4KWH4KS14KS+4KSw4KWAIOCkreCkj+CkleCliyDgpJvgpaRcblxu4KSV4KWHIOCkpOCkquCkvuCkiOCkgiDgpK/gpLjgpLLgpL7gpIgg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYHgpLngpYHgpKjgpY3gpJs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSIxNTQ3OTk3NzgwNTA2NzEzNTgxIj4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkquClgeCkqOCkgyDgpKjgpL/gpLDgpY3gpKbgpYfgpLbgpYDgpKQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYXVuY2hfd2FybmluZ19yZXBsYWNlIiBtc2dpZD0iNjIwMjQ5ODk0OTk3MDI4MTQxMiI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4g4KSF4KS54KS/4KSy4KWHIOCkmuCksuCkv+CksOCkueClh+CkleCliyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYXVuY2hfd2FybmluZ19vcmlnaW5hbCIgbXNnaWQ9IjE4ODEwMjAyMzAyMTY2ODY4MyI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4g4KS14KS+4KS44KWN4KSk4KS14KS/4KSVIOCkuOClgeCksOClgeCkteCkvuCkpCDgpK3gpI/gpJXgpYsg4KSl4KS/4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX3NjYWxlIiBtc2dpZD0iMzIwMjk1NTY2NzY3NTk0NDQ5OSI+IuCkuOCljeCkleClh+CksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9zaG93IiBtc2dpZD0iNDAxMzg3ODg3NjQ4NjY1NTg5MiI+IuCkuOCkp+CliOCkgSDgpKbgpYfgpJbgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fY29tcGF0X21vZGVfaGludCIgbXNnaWQ9IjEwNjQ1MjQwODQ1NDMzMDQ0NTkiPiLgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWC4KSu4KS+IOCkr+CkuOCksuCkvuCkiCDgpKrgpYHgpKjgpIPgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNICZndDsg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCICZndDsg4KSh4KS+4KSJ4KSo4KSy4KWL4KShIOCkl+CksOClh+CkleCli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtdl9hcHBsaWNhdGlvbiIgbXNnaWQ9IjMzMDcyMDkxOTIxNTU0NDI4MjkiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiAo4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+IDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMiRzPC94bGlmZjpnPikg4KSy4KWHIOCkr+CkuOCkleCliyDgpLjgpY3gpLXgpK/gpIIt4KSy4KS+4KSX4KWBIOCkl+CksOCkv+Ckj+CkleCliyDgpLjgpY3gpJ/gpY3gpLDgpL/gpJ/gpK7gpYvgpKEg4KSo4KWA4KSk4KS/IOCkieCksuCkmeCljeCkmOCkqCDgpJfgpLDgpYfgpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic212X3Byb2Nlc3MiIG1zZ2lkPSI1MTIwMzk3MDEyMDQ3NDYyNDQ2Ij4i4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+IDx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDgpK/gpLjgpJXgpYsg4KSG4KSr4KWN4KSo4KWIIOCkleCkoeCkvuCkruCli+CkoSDgpKjgpYDgpKTgpL/gpJXgpL4g4KSV4KS+4KSw4KSjIOCkieCksuCljeCksuCkmeCljeCkmOCkqCDgpJfgpLDgpL/gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfdGl0bGUiIG1zZ2lkPSIxNTg0MTkyMjg1NDQxNDA1NzQ2Ij4i4KSP4KSo4KWN4KSh4KWN4KSw4KWL4KSH4KShIOCkheCkquCkl+CljeCksOClh+CkoSDgpLngpYHgpIHgpKbgpYjgpJvigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19hcGsiIG1zZ2lkPSI3OTA0MDQyNjgyMTExNTI2MTY5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkheCkqOClgeCkleClgeCksiDgpLngpYHgpIHgpKbgpYggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRkPC94bGlmZjpnPiDgpJXgpYsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRkPC94bGlmZjpnPuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX3N0YXJ0aW5nX2FwcHMiIG1zZ2lkPSI0NTE0NjQ1MTYzNDY5MjY3MTMiPiLgpLjgpYHgpLDgpYHgpLXgpL7gpKQg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfY29tcGxldGUiIG1zZ2lkPSIxNDA1OTU0NzU0MTEyOTk5MjI5Ij4i4KSs4KWB4KSfIOCkquClgeCksOCkviDgpLngpYHgpIHgpKbgpYjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfbm90aWZpY2F0aW9uIiBtc2dpZD0iOTA4NzA2Mzk4NTc3NjYyNjE2NiI+Ijx4bGlmZjpnIGlkPSJBUFAiPiUxJHM8L3hsaWZmOmc+IOCkmuCksuCkv+CksOCkueClh+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfbm90aWZpY2F0aW9uX2RldGFpbCIgbXNnaWQ9IjE3MjE2ODE3NDE2MTc4OTg4NjUiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpK7gpL4g4KS44KWN4KS14KS/4KSaIOCkl+CksOCljeCkqCDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfc3dpdGNoZXJfdGl0bGUiIG1zZ2lkPSI3MTUzMTY3MDg1NDAzMjk4MTY5Ij4i4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIOCkuOCljeCkteCkv+CkmiDgpJfgpLDgpY3gpKjgpYcg4KS54KWLPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9zd2l0Y2hlcl90ZXh0IiBtc2dpZD0iNzAyMjYzMTkyNDUzNDQwNjQwMyI+IuCkheCksOCljeCkleCliyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSq4KS54KS/4KSy4KWHIOCkqOCliCDgpJrgpL7gpLLgpYEg4KSbIOCknOClgeCkqCDgpKTgpKrgpL7gpIjgpILgpLLgpYcg4KSP4KSJ4KSf4KS+IOCkqOCkr+CkvuCkgSDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSo4KWBIOCkheCkmOCkvyDgpKzgpKjgpY3gpKYg4KSX4KSw4KWN4KSo4KWB4KSq4KSw4KWN4KSo4KWHIOCkueClgeCkqOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9sZF9hcHBfYWN0aW9uIiBtc2dpZD0iNDkzMTI5MTcyMjM4NTY2MjgyIj4iPHhsaWZmOmcgaWQ9Ik9MRF9BUFAiPiUxJHM8L3hsaWZmOmc+IOCkruCkviDgpKvgpLDgpY3gpJXgpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvbGRfYXBwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjA4MjA5NDI3NTU4MDM1ODA0OSI+IuCkqOCkr+CkvuCkgSDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KS44KWB4KSw4KWBIOCkqOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5ld19hcHBfYWN0aW9uIiBtc2dpZD0iNTQ3Mjc1NjkyNjk0NTQ0MDcwNiI+Ijx4bGlmZjpnIGlkPSJPTERfQVBQIj4lMSRzPC94bGlmZjpnPiDgpLjgpYHgpLDgpYEg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmV3X2FwcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjE5MzIxNDM1OTgzNzE1MzczNDAiPiLgpKzgpJrgpKQg4KSo4KSX4KSw4KWAIOCkquClgeCksOCkvuCkqOCliyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSw4KWL4KSV4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VuZFRleHQiIG1zZ2lkPSI1MjA5ODc0NTcxOTU5NDY5MTQyIj4i4KSq4KS+4KSg4KSV4KWLIOCksuCkvuCkl+CkvyDgpI/gpIngpJ/gpL4g4KSq4KWN4KSw4KSV4KS+4KSw4KWN4KSvIOCkm+CkvuCkqOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9yaW5ndG9uZSIgbXNnaWQ9IjY4ODU0MjE0MDY4NDU3MzQ2NTAiPiLgpKzgpJzgpL7gpIngpKjgpYcg4KSu4KS+4KSk4KWN4KSw4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljIiBtc2dpZD0iNTQyMTY1MTE1NzEzODYyODE3MSI+IuCkruCkv+CkoeCkv+Ckr+CkvuCkleCliyDgpK7gpL7gpKTgpY3gpLDgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfbXVzaWNfaGludF9wbGF5aW5nX3Rocm91Z2hfYmx1ZXRvb3RoIiBtc2dpZD0iOTE2NTk4NDM3OTM5NDYwMTUzMyI+IuCkrOCljeCksuClgeCkn+ClgeCkpeCkleCliyDgpK7gpL7gpKfgpY3gpK/gpK7gpKbgpY3gpLXgpL7gpLDgpL4g4KSs4KSc4KS+4KSH4KSm4KWIIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9tdXNpY19oaW50X3NpbGVudF9yaW5ndG9uZV9zZWxlY3RlZCIgbXNnaWQ9IjgzMTA3Mzk5NjA5NzMxNTYyNzIiPiLgpLbgpL7gpKjgpY3gpKQg4KSw4KS/4KSZ4KWN4KSX4KSf4KWL4KSoIOCkuOClh+CknyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9jYWxsIiBtc2dpZD0iMzk0MTY4MDA0MTI4Mjc4ODcxMSI+IuCkh+CkqC3gpJXgpLIg4KSt4KWL4KSy4KWN4KSv4KWB4KSuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2JsdWV0b290aF9jYWxsIiBtc2dpZD0iMjAwMjg5MTkyNjM1MTE1MTUzNCI+IuCkrOCljeCksuClgeCkn+ClgeCkpSDgpK3gpL/gpKTgpY3gpLDgpYAt4KSV4KSyIOCkruCkvuCkpOCljeCksOCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9hbGFybSIgbXNnaWQ9IjE5ODUxOTE2MTYwNDI2ODkxMDAiPiLgpIbgpLLgpLDgpY3gpK4g4KSu4KS+4KSk4KWN4KSw4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjI0MjIyNjU2NTY3NDQyNzY3MTUiPiLgpLjgpYLgpJrgpKjgpL4g4KSu4KS+4KSk4KWN4KSw4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX3Vua25vd24iIG1zZ2lkPSIxNDAwMjE5NjY5NzcwNDQ1OTAyIj4i4KSu4KS+4KSk4KWN4KSw4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2ljb25fZGVzY3JpcHRpb25fYmx1ZXRvb3RoIiBtc2dpZD0iNjUzODg5NDE3NzI1NTk2NDM0MCI+IuCkrOCljeCksuClgeCkn+ClgeCkpSDgpK3gpYvgpLLgpY3gpK/gpYHgpK4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9yaW5nZXIiIG1zZ2lkPSIzMzI2MDAzODQ3MDA2MTYyNDk2Ij4i4KSY4KSo4KWN4KSf4KS/4KSV4KWLIOCkhuCkteCkvuCknCDgpK7gpL7gpKTgpY3gpLDgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9pbmNhbGwiIG1zZ2lkPSI4ODkwMDczMjE4MTU0NTQzMzk3Ij4i4KSV4KSy4KS+IOCkruCkvuCkpOCljeCksOCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX21lZGlhIiBtc2dpZD0iNDIxNzMxMTcxOTY2NTE5NDIxNSI+IuCkruCkv+CkoeCkv+Ckr+CkvuCkleCliyDgpK7gpL7gpKTgpY3gpLDgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9ub3RpZmljYXRpb24iIG1zZ2lkPSI3MDQ0OTg2NTQ2NDc3MjgyMjc0Ij4i4KS44KWC4KSa4KSo4KS+IOCkreCli+CksuCljeCkr+ClgeCkriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX2RlZmF1bHQiIG1zZ2lkPSIzNzg5NzU4OTgwMzU3Njk2OTM2Ij4i4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSkIOCksOCkv+CkmeCkn+Cli+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX2RlZmF1bHRfd2l0aF9hY3R1YWwiIG1zZ2lkPSI4MTI5NTYzNDgwODk1OTkwMzcyIj4i4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSkIOCksOCkv+CkmeCkn+Cli+CkqCAoPHhsaWZmOmcgaWQ9IkFDVFVBTF9SSU5HVE9ORSI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfc2lsZW50IiBtc2dpZD0iNzkzNzYzNDM5MjQwODk3NzA2MiI+IuCkleClgeCkqOCliCDgpKrgpKjgpL8g4KS54KWL4KSH4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfcGlja2VyX3RpdGxlIiBtc2dpZD0iMzUxNTE0MzkzOTE3NTExOTA5NCI+IuCkmOCkqOCljeCkn+ClgOCkleCkviDgpLjgpY3gpLXgpLDgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV91bmtub3duIiBtc2dpZD0iNTQ3NzkxOTk4ODcwMTc4NDc4OCI+IuCkheCknOCljeCknuCkvuCkpCDgpLDgpL/gpJngpJ/gpYvgpKgiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9IndpZmlfYXZhaWxhYmxlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjY1NDEyMzk4NzQxODE2ODY5MyI+IuCkteCkvuCkhy3gpKvgpL7gpIcg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkieCkquCksuCkrOCljeCkpyDgpJsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQxOTI0MjQ0ODkxNjgzOTczODYiPiLgpLXgpL7gpIct4KSr4KS+4KSHIOCkqOClh+Ckn+CkteCksOCljeCkleCkueCksOClgiDgpIngpKrgpLLgpKzgpY3gpKciPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9IndpZmlfYXZhaWxhYmxlX2RldGFpbGVkIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMTYzNDEwMTQ1MDM0MzI3NzM0NSI+IuCkluClgeCksuCljeCksuCkviDgpLXgpL7gpIct4KSr4KS+4KSHIOCkqOClh+Ckn+CkteCksOCljeCklSDgpIngpKrgpLLgpKzgpY3gpKcg4KSbIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3OTE1ODk1MzIzNjQ0MjkyNzY4Ij4i4KSW4KWB4KSy4KWN4KSy4KS+IOCkteCkvuCkhy3gpKvgpL7gpIcg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkieCkquCksuCkrOCljeCkpyDgpJsiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2F2YWlsYWJsZV9zaWduX2luIiBtc2dpZD0iNDAyOTQ4OTcxNjYwNTI1NTM4NiI+IuCkteCkvuCkhy3gpKvgpL7gpIcg4KSo4KWH4KSf4KS14KSw4KWN4KSV4KSu4KS+IOCkuOCkvuCkh+CkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXR3b3JrX2F2YWlsYWJsZV9zaWduX2luIiBtc2dpZD0iODQ5NTE1NTU5MzM1ODA1NDY3NiI+IuCkqOClh+Ckn+CkteCksOCljeCkleCkruCkviDgpLjgpL7gpIfgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIG5ldHdvcmtfYXZhaWxhYmxlX3NpZ25faW5fZGV0YWlsZWQgKDgwMDAwODE5NDE0NDc5NzYxMTgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3dhdGNoZG9nX25ldHdvcmtfZGlzYWJsZWQiIG1zZ2lkPSI3OTA0MjE0MjMxNjUxNTQ2MzQ3Ij4i4KS14KS+4KSHLeCkq+CkvuCkh+CkuOCkgeCklyDgpJzgpKHgpL7gpKgg4KSX4KSw4KWN4KSoIOCkuOCkleClh+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfd2F0Y2hkb2dfbmV0d29ya19kaXNhYmxlZF9kZXRhaWxlZCIgbXNnaWQ9IjU1NDg3ODA3NzY0MTgzMzI2NzUiPiIg4KSV4KSu4KSc4KWL4KSwIOCkh+CkqOCljeCkn+CksOCkqOClh+CknyDgpJzgpKHgpL7gpKgg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZGlhbG9nX3RpdGxlIiBtc2dpZD0iOTc2MTE3ODI2NTkzMjQ1MTciPiLgpLXgpL7gpIct4KSr4KS+4KSHIOCkquCljeCksOCkpOCljeCkr+CkleCljeCktyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX3R1cm5vbl9tZXNzYWdlIiBtc2dpZD0iMjkwOTI1MDk0MjI5OTYyNzI0NCI+IuCkteCkvuCkhy3gpKvgpL7gpIcg4KS44KS/4KSn4KS+IOCkuOClgeCksOClgSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQg4KSv4KS44KSy4KWHIOCkteCkvuCkhy3gpKvgpL7gpIcg4KSX4KWN4KSw4KS+4KS54KSVL+CkueCkn+CljeCkuOCljeCkquCkn+CksuCkvuCkiCDgpKzgpKjgpY3gpKYg4KSX4KSw4KS+4KSJ4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZhaWxlZF9tZXNzYWdlIiBtc2dpZD0iMzc2MzY2OTY3NzkzNTYyMzA4NCI+IuCkteCkvuCkhy3gpKvgpL7gpIcg4KS44KS/4KSn4KS+IOCkuOClgeCksOClgSDgpLngpYHgpKgg4KS44KSV4KWH4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW5hYmxlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMDY4MzIxODgxNjczNzM0ODg2Ij4i4KS14KS+4KSHLeCkq+CkvuCkhyDgpKrgpY3gpLDgpKTgpY3gpK/gpJXgpY3gpLcg4KSW4KWB4KSy4KWN4KSy4KS+IOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VuYWJsZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSIxNjM4OTQ5OTUzOTkzODk0MzM1Ij4i4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWC4KSV4KWLIOCksuCkvuCkl+CkvyDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIxNjQ1MjY3MjU5MjcyODI5NTU5Ij4i4KS44KWN4KS14KWA4KSV4KS+4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVjbGluZSIgbXNnaWQ9IjIxMTIyMjU0NTE3MDYxMzc4OTQiPiLgpIXgpLjgpY3gpLXgpYDgpJXgpL7gpLAg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfaW52aXRhdGlvbl9zZW50X3RpdGxlIiBtc2dpZD0iMTMxODk3NTE4NTExMjA3MDczNCI+IuCkqOCkv+CkruCkqOCljeCkpOCljeCksOCko+CkviDgpKrgpKDgpL7gpIfgpI/gpJXgpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9pbnZpdGF0aW9uX3RvX2Nvbm5lY3RfdGl0bGUiIG1zZ2lkPSI0OTU4ODAzOTQ4NjU4NTMzNjM3Ij4i4KSc4KSh4KS+4KSo4KSu4KS+IOCkqOCkv+CkruCkqOCljeCkpOCljeCksOCko+CkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2Zyb21fbWVzc2FnZSIgbXNnaWQ9IjU3MDM4OTE3NDczMTk1MTc2OSI+IuCkrOCkvuCknzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF90b19tZXNzYWdlIiBtc2dpZD0iMjQ4OTY4OTc0NTIyMDQ0MDk5Ij4i4KSq4KWN4KSw4KS+4KSq4KSVOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VudGVyX3Bpbl9tZXNzYWdlIiBtc2dpZD0iNTkyMDkyOTU1MDM2NzgyODk3MCI+IuCkhuCkteCktuCljeCkr+CklSBQSU4g4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9zaG93X3Bpbl9tZXNzYWdlIiBtc2dpZD0iODUzMDU2MzMyMzg4MDkyMTA5NCI+IlBJTjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcmVxdWVuY3lfY29uZmxpY3RfbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODAxMjk4MTI1Nzc0MjIzMjQ3NSI+IuCkr+CliyA8eGxpZmY6ZyBpZD0iREVWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+4KS44KSB4KSXIOCknOCli+CkoeCkv+Ckj+CkleCliyDgpKzgpYfgpLLgpL4g4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkheCkuOCljeCkpeCkvuCkr+ClgCDgpLDgpYLgpKrgpK7gpL4g4KS14KS+4KSHLeCkq+CkvuCkh+CkrOCkvuCknyDgpLXgpL/gpJrgpY3gpJvgpYfgpKYg4KSX4KSw4KS/4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2ZyZXF1ZW5jeV9jb25mbGljdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzM2MzkwNzIxMzc4NzQ2OTE1MSI+IuCknOCkrCDgpK/gpYsgPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiDgpLjgpIHgpJcg4KSc4KSh4KS/4KSkIOCkueClgeCkqOCljeCkmywg4KSr4KWL4KSoIOCkheCkuOCljeCkpeCkvuCkr+ClgCDgpLDgpYLgpKrgpK7gpL4g4KS14KS+4KSHLeCkq+CkvuCkh+CkrOCkvuCknyDgpLXgpL/gpJrgpY3gpJvgpYfgpKYg4KS54KWB4KSo4KWHIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9jaGFyYWN0ZXIiIG1zZ2lkPSIzMzY1NTUwMTIwNjE3NzAxNzQ1Ij4i4KSF4KSV4KWN4KS34KSw4KS54KSw4KWCIOCkquCljeCksOCkteClh+CktiDgpJfgpLDgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF90aXRsZSIgbXNnaWQ9IjcyOTY2MTI3ODExMjg5MTc3MTkiPiJTTVMg4KS44KSo4KWN4KSm4KWH4KS24KS54KSw4KWCIOCkquCkoOCkvuCkh+CkgeCkpuCliCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX21lc3NhZ2UiIG1zZ2lkPSIzODY3ODk5MTY5NjUxNDk2NDMzIj4iJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDsg4KSy4KWHIOCkp+CksOCliCDgpLjgpILgpJbgpY3gpK/gpL7gpK7gpL4gU01TIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpKrgpKDgpL7gpIngpIHgpKbgpYjgpJvgpaQg4KSV4KWHIOCkpOCkquCkvuCkiOCkgSDgpK/gpLgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkuOCkqOCljeCkpuClh+CktuCkueCksOClgiDgpKrgpKDgpL7gpIngpKgg4KS44KWB4KSa4KS+4KSw4KWBIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSoIOCkmuCkvuCkueCkqOClgSDgpLngpYHgpKjgpY3gpJs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfeWVzIiBtc2dpZD0iMzY2MzcyNTk5Mzg1NTgxNjgwNyI+IuCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9ubyIgbXNnaWQ9IjYyNTQzODU2MTM5NTUzNDk4MiI+IuCkheCkuOCljeCkteClgOCkleCkvuCksCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX21lc3NhZ2UiIG1zZ2lkPSIxNjQ1NDM2NDY2Mjg1MzEwODU1Ij4iJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiZsdDsvYiZndDsg4KSV4KWHIOCkpOCkquCkvuCkiOCkgSDgpLjgpKjgpY3gpKbgpYfgpLYg4KSq4KSg4KS+4KSJ4KSoIOCkmuCkvuCkueClgeCkqOClgSDgpLngpYHgpKjgpY3gpJsgJmx0O2ImZ3Q7PHhsaWZmOmcgaWQ9IkRFU1RfQUREUkVTUyI+JTIkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSIzNDkyMDI1NzE5ODY4MDc4NDU3Ij4i4KSv4KS44KSy4KWHICI8Zm9udCBmZ2NvbG9yPSIjZmZmZmIwNjAiPiIg4KS24KWB4KSy4KWN4KSVIOCksuCkl+CkvuCkieCkqCDgpLjgpJXgpY3gpJsiPC9mb250PiIg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkruCli+CkrOCkvuCkh+CksiDgpJbgpL7gpKTgpL7gpK7gpL7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfcHJlbWl1bV9zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSI1NTIzODI2MzQ5MTA1MTIzNjg3Ij48Zm9udCBmZ2NvbG9yPSIjZmZmZmIwNjAiPiLgpK/gpLjgpLLgpYcg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkruCli+CkrOCkvuCkh+CksiDgpJbgpL7gpKTgpL7gpK7gpL4g4KSa4KS+4KSw4KWN4KSc4KS54KSw4KWCIOCkieCkpOCljeCkquCkqOCljeCkqCDgpJfgpLDgpY3gpKbgpJvgpaQiPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9hbGxvdyIgbXNnaWQ9IjQ0NTg4Nzg2MzcxMTEwMjM0MTMiPiLgpKrgpKDgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2RlbnkiIG1zZ2lkPSIyOTI3Mzg5ODQwMjA5MTcwNzA2Ij4i4KSw4KSm4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX2Nob2ljZSIgbXNnaWQ9IjUyODk1Mzg1OTIyNzIyMTgxMzYiPiLgpK7gpYfgpLDgpYsg4KSb4KSo4KWM4KSfIOCkr+CkvuCkpiDgpLDgpL7gpJbgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9yZW1lbWJlcl91bmRvX2luc3RydWN0aW9uIiBtc2dpZD0iNDk2MDk0NDEzMzA1MjI4NzQ4NCI+IuCkpOCkquCkvuCkiOCkgSDgpK/gpLjgpLLgpL7gpIgg4KSq4KSb4KS/IOCkuOClh+Ckn+Ckv+CkmeCkueCksOClguCkruCkviDgpKzgpKbgpLLgpY3gpKgg4KS44KSV4KWN4KSo4KWBIOCkueClgeCkqOCljeCkmyAmZ3Q7IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fYWx3YXlzX2FsbG93IiBtc2dpZD0iMzI0MTE4MTE1NDg2OTQ5MzM2OCI+IuCkuOCkp+CliOCkgSDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9uZXZlcl9hbGxvdyIgbXNnaWQ9IjQ0Njk5Mjc2NTc3NDI2OTY3MyI+IuCkleCkueCkv+CksuCljeCkr+CliCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSo4KSm4KS/4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX3JlbW92ZWRfdGl0bGUiIG1zZ2lkPSI2MjI3NzEyMzE5MjIzMjI2MTg1Ij4iU0lNIOCkleCkvuCksOCljeCkoSDgpLngpJ/gpL7gpIfgpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVtb3ZlZF9tZXNzYWdlIiBtc2dpZD0iMjMzMzE2NDU1OTk3MDk1ODY0NSI+IuCkj+CkieCkn+CkviDgpK7gpL7gpKjgpY3gpK8gU0lNIOCkleCkvuCksOCljeCkoSDgpLDgpL7gpJbgpYfgpLAg4KSq4KWB4KSo4KSD4KS44KWN4KSf4KS+4KSw4KWN4KSfIOCkqOCkl+CksOClh+CkuOCkruCljeCkriDgpK7gpYvgpKzgpL7gpIfgpLIg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkieCkquCksuCkrOCljeCkpyDgpLngpYHgpKjgpYcg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX2RvbmVfYnV0dG9uIiBtc2dpZD0iODI3OTQ5OTg5MzY5OTYzNzc1Ij4i4KSt4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX2FkZGVkX3RpdGxlIiBtc2dpZD0iMzcxOTY3MDUxMjg4OTY3NDY5MyI+IlNJTSDgpJXgpL7gpLDgpY3gpKEg4KSl4KSqIOCkl+CksOCkv+Ckr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9hZGRlZF9tZXNzYWdlIiBtc2dpZD0iNjU5OTk0NTMwMTE0MTA1MDIxNiI+IuCkruCli+CkrOCkvuCkh+CksiDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSJ4KSq4KSV4KSw4KSjIOCkquClgeCkqOCkg+CkuOCljeCkn+CkvuCksOCljeCknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fcmVzdGFydF9idXR0b24iIG1zZ2lkPSI0NzIyNDA3ODQyODE1MjMyMzQ3Ij4i4KSq4KWB4KSo4KSD4KS44KWN4KSf4KS+4KSw4KWN4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjgzNDkzNjI2MjMwNjg4MTkyOTUiPiLgpLjgpK7gpK8g4KSu4KS/4KSy4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfZGlhbG9nX3RpdGxlIiBtc2dpZD0iNTg3OTQ1MDY1OTQ1Mzc4MjI3OCI+IuCkruCkv+CkpOCkvyDgpK7gpL/gpLLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3RpbWVfc2V0IiBtc2dpZD0iNTc3NzA3NTYxNDMyMTA4Nzc1OCI+IuCkuOClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3RpbWVfZG9uZSIgbXNnaWQ9IjI1MDc2ODM3NTE3NTkzMDg4MjgiPiLgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtc19uZXdfcGVybV9wcmVmaXgiIG1zZ2lkPSI4MjU3NzQwNzEwNzU0MzAxNDA3Ij48Zm9udCBzaXplPSIxMiIgZmdjb2xvcj0iI2ZmMzNiNWU1Ij4i4KSo4KSv4KS+4KSBOiAiPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybXNfZGVzY3JpcHRpb25fYXBwIiBtc2dpZD0iNTEzOTgzNjE0MzI5MzI5OTQxNyI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz7gpKbgpY3gpLXgpL7gpLDgpL4g4KSq4KWN4KSw4KSm4KS+4KSoIOCkl+CksOCkv+Ckj+CkleCli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX3Blcm1pc3Npb25zIiBtc2dpZD0iNzI4MzM1NzcyODIxOTMzODExMiI+IuCkleClgeCkqOCliCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSG4KS14KS24KWN4KSv4KSVIOCkm+CliOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1fY29zdHNfbW9uZXkiIG1zZ2lkPSI0OTAyNDcwMzI0MTQyMTUxMTE2Ij4i4KS44KS+4KSv4KSmIOCkpOCkquCkvuCkiOCkgeCksuCkvuCkiCDgpKrgpYjgpLjgpL4g4KSq4KSw4KWN4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2FjdGl2aXR5X3RpdGxlIiBtc2dpZD0iNDQ2NTA1NTE1NzIwOTY0ODY0MSI+IlVTQiDgpKDgpYLgpLLgpYsg4KSt4KSj4KWN4KSh4KS+4KSw4KSjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfdGl0bGUiIG1zZ2lkPSI1OTAxNDU5MDQxMzk4NzUxNDk1Ij4iVVNCIOCknOCli+CkoeCkv+Ckj+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjMzMDg1MzgwOTQzMTY0Nzc4MzkiPiLgpKTgpKrgpL7gpIjgpIIg4KSG4KSr4KWN4KSo4KWLIOCkleCkruCljeCkquCljeCkr+ClgeCkn+CksOCkruCkviBVU0Ig4KSu4KS+4KSw4KWN4KSr4KSkIOCknOCkoeCkvuCkqCDgpLngpYHgpKjgpYHgpK3gpK/gpYvgpaQg4KSk4KSy4KSV4KWLIOCkrOCkn+CkqCDgpJ/gpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOCkr+CkpuCkvyDgpKTgpKrgpL7gpIjgpIIg4KSG4KSr4KWN4KSo4KWLIOCkleCkruCljeCkquCljeCkr+ClgeCkn+CksCDgpLAg4KSP4KSo4KWN4KSh4KWN4KSw4KWL4KSH4KSh4KSV4KWLIFVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSs4KWA4KSaIOCkq+CkvuCkh+CksuCkueCksOClgiDgpKrgpY3gpLDgpKTgpL/gpLLgpL/gpKrgpL8g4KSX4KSw4KWN4KSoIOCkmuCkvuCkueCkqOClgeCkueClgeCkqOCljeCkmyDgpK3gpKjgpYfgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA1MzUxMDAwNDQ2MDM3ODExIj4i4KSk4KSq4KS+4KSI4KSCIOCkhuCkq+CljeCkqOCliyDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLDgpK7gpL4gVVNCIOCkruCkvuCksOCljeCkq+CkpCDgpJzgpKHgpL7gpKgg4KS54KWB4KSo4KWB4KSt4KSv4KWL4KWkIOCkpOCksuCkleCliyDgpKzgpJ/gpKgg4KSf4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSDgpK/gpKbgpL8g4KSk4KSq4KS+4KSI4KSCIOCkhuCkq+CljeCkqOCliyDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLAg4KSwIOCkj+CkqOCljeCkoeCljeCksOCli+Ckh+CkoeCkleCliyBTRCDgpJXgpL7gpLDgpY3gpKEg4KSs4KWA4KSaIOCkq+CkvuCkh+CksuCkueCksOClgiDgpKrgpY3gpLDgpKTgpL/gpLLgpL/gpKrgpL8g4KSX4KSw4KWN4KSoIOCkmuCkvuCkueCkqOClgeCkueClgeCkqOCljeCkmyDgpK3gpKjgpYfgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9idXR0b25fbW91bnQiIG1zZ2lkPSIxMDUyMjU5OTMwMzY5NTA4MjM1Ij4iVVNCIOCkreCko+CljeCkoeCkvuCksOCkoyDgpJrgpL7gpLLgpYEg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfZXJyb3JfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzMDE3MDQ1MjE3MzY1NTQwNjU4Ij4iVVNCIOCkhuCkriDgpK3gpKPgpY3gpKHgpL7gpLDgpKPgpJXgpYsg4KSy4KS+4KSX4KS/IOCkpOCkquCkvuCkiOCkgeCkleCliyBVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKbgpL4g4KSP4KSJ4KSf4KS+IOCkuOCkruCkuOCljeCkr+CkviDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjg3NjAxODUxMjcxNjk3MDMxMyI+IlVTQiDgpIbgpK4g4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSV4KWLIOCksuCkvuCkl+CkvyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsgU0Qg4KSV4KS+4KSw4KWN4KShIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKbgpL4g4KSP4KSJ4KSf4KS+IOCkuOCkruCkuOCljeCkr+CkviDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4MTc1ODkyNTU0NzU3MjE2NTI1Ij4iVVNCIOCknOCli+CkoeCkv+Ckj+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkzOTgyMjc4MzgyODE4Mzc2MyI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLDgpKzgpL7gpJ8g4KS14KS+IOCkpOCkv+CksCDgpKvgpL7gpIfgpLLgpLngpLDgpYIg4KSq4KWN4KSw4KSk4KS/4KSy4KS/4KSqIOCkl+CksOCljeCkqCDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIzMzYwNTgzOTY2NjM1MTYwMTciPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTY1Njg1MjA5ODU1NTYyMzgyMiI+IlVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqCDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX3RpdGxlIiBtc2dpZD0iNjYwMTI5ODUxNzA4Nzc1ODUzIj4iVVNCIOCkreCko+CljeCkoeCkvuCksOCkoyDgpKrgpY3gpLDgpK/gpYvgpJfgpK7gpL4g4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQyNjQwMjUyODA3NzcyMTk1MjEiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkrOCkqOCljeCkpiDgpLngpYHgpKjgpYHgpK3gpKjgpY3gpKbgpL4g4KSq4KS54KWA4KSy4KWHIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLDgpKzgpL7gpJ8g4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkj+CkqOCljeCkoeCljeCksOCli+Ckh+CkoSBVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkheCkqOCkruCkvuCkieCkqOCljeCknyAoXCLgpJ3gpL/gpJXgpY3gpKjgpYHgpLngpYvgpLjgpY1cIikg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgwNDM5Njk3ODI0NjA2MTMxMTQiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKjgpYHgpIXgpJjgpL8g4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkleCkruCljeCkquCljeCkr+ClgeCkn+CksOCkrOCkvuCknyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSP4KSo4KWN4KSh4KWN4KSw4KWL4KSH4KSh4KSV4KWLIFNEIOCkleCkvuCksOCljeCkoSDgpIXgpKjgpK7gpL7gpIngpKjgpY3gpJ8gKFwi4KSo4KS/4KSV4KS+4KSy4KWH4KSV4KWLXCIpIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfYnV0dG9uX21vdW50IiBtc2dpZD0iNzA2MDIxODAzNDkwMDY5NjAyOSI+IlVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSs4KSo4KWN4KSmIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfZXJyb3JfbWVzc2FnZSIgbXNnaWQ9IjE5NzAzNzQ4OTgyNjMwNjM4MzYiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKbgpL4g4KSP4KSJ4KSf4KS+IOCkuOCkruCkuOCljeCkr+CkviDgpK3gpK/gpYvgpaQg4KSk4KSq4KS+4KSI4KSB4KSy4KWHIFVTQiDgpLngpYvgpLjgpY3gpJ8g4KSF4KSo4KSu4KS+4KSJ4KSo4KWN4KSfIOCkl+CksOCljeCkqOClgSDgpK3gpI/gpJXgpYsg4KSc4KS+4KSB4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSwg4KSk4KWN4KSv4KS44KSq4KSb4KS/IOCkq+Clh+CksOCkvyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGxnX2NvbmZpcm1fa2lsbF9zdG9yYWdlX3VzZXJzX3RpdGxlIiBtc2dpZD0iOTYzMDM5MDMzNDcwNDc4Njk3Ij4iVVNCIOCkreCko+CljeCkoeCkvuCksOCkoyDgpJbgpYvgpLLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfY29uZmlybV9raWxsX3N0b3JhZ2VfdXNlcnNfdGV4dCIgbXNnaWQ9IjUxMDA0Mjg3NTcxMDc0Njk0NTQiPiLgpK/gpKbgpL8g4KSk4KSq4KS+4KSI4KSB4KSy4KWHIFVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSW4KWL4KSy4KWN4KSo4KWBIOCkreCkr+CliyDgpK3gpKjgpYcg4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpL/gpLDgpLngpKjgpYEg4KSt4KSP4KSV4KS+IOCkleClh+CkueClgCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KSw4KWL4KSV4KS/4KSo4KWHIOCkm+CkqOCljSDgpLAg4KSk4KSq4KS+4KSI4KSB4KSy4KWHIFVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSs4KSo4KWN4KSmIOCkqOCkl+CksOClh+CkuOCkruCljeCkriDgpIXgpKjgpYHgpKrgpLLgpKzgpY3gpKcg4KS54KWB4KSoIOCkuOCkleCljeCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19lcnJvcl90aXRsZSIgbXNnaWQ9IjczMjM2NTg0Njk2MjY1MTQyMDciPiJVU0Ig4KS44KSC4KSa4KS+4KSy4KSoIOCkheCkuOCkq+CksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19vayIgbXNnaWQ9IjczNzY5NTMxNjcwMzk4NjU3MDEiPiLgpKDgpL/gpJUg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX210cF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIzNjk5OTEzMDk3MzkxNTUwMzk0Ij4i4KSu4KS/4KSh4KS/4KSv4KS+IOCkieCkquCkleCksOCko+CkleCliyDgpLDgpYLgpKrgpK7gpL4g4KSc4KSh4KS/4KSkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3B0cF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIxOTYwODE3MTkyMjE2MDY0ODMzIj4i4KSV4KWN4KSv4KS+4KSu4KWH4KSw4KS+4KSV4KWLIOCksOClguCkquCkruCkviDgpJzgpKHgpL7gpKgg4KSt4KSP4KSV4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2NkX2luc3RhbGxlcl9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2Nzc0NzEyODI3ODkyMDkwNzU0Ij4i4KSP4KSJ4KSf4KS+IOCkuOCljeCkpeCkvuCkquCkqOCkleCksOCljeCkpOCkvuCkleCliyDgpLDgpYLgpKrgpK7gpL4g4KSc4KWL4KSh4KS/4KSP4KSV4KWLIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3Nvcnlfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNzg0ODIzNjk3NDA4NzY1MzY2NiI+IlVTQiDgpLjgpLngpL7gpK/gpJXgpK7gpL4g4KSc4KWL4KSh4KS/4KSP4KSV4KWLIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjIyOTA4NTkzOTk5ODM3MjAyNzEiPiLgpIXgpKjgpY3gpK8gVVNCIOCkteCkv+CkleCksuCljeCkquCkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSf4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI5MDIwMDkyMTk2MDYxMDA3MjYyIj4iVVNCIOCkreCko+CljeCkoeCkvuCksOCko+CksuCkvuCkiCDgpKvgpLDgpY3gpK7gpY3gpK/gpL7gpJ8gIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM2NDg0MTU5MjE1MjY1MjYwNjkiPiJTRCDgpJXgpL7gpLDgpY3gpKEg4KSr4KSw4KWN4KSu4KWN4KSv4KS+4KSfIOCkl+CksOCljeCkqOClhz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzOTM0MDE2ODUzNDI1NzYxMDc4Ij4i4KSk4KSq4KS+4KSI4KSC4KSV4KWLIFVTQuCkruCkviDgpLjgpJngpY3gpJfgpY3gpLDgpLkg4KSt4KSP4KSV4KS+IOCkuOCkrOCliCDgpKvgpL7gpIfgpLLgpLngpLDgpYIg4KSu4KWH4KSf4KS/4KSo4KWHIOCkm+CkqOCljeClpCDgpK/gpYsg4KSV4KS+4KSw4KWN4KSvIOCkieCksuCljeCkn+CkvuCkieCkqCDgpLjgpJXgpL/gpIHgpKbgpYjgpKghIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDEzMTg5NTAyNzU0MzgzMCI+IuCkpOCkquCkvuCkiOCkgeCkleCliyDgpJXgpL7gpLDgpY3gpKHgpK7gpL4g4KSt4KSP4KSV4KS+IOCkuOCkrOCliCDgpKHgpYfgpJ/gpL7gpLngpLDgpYIg4KS54KSw4KS+4KSJ4KSo4KWHIOCkm+CkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9idXR0b25fZm9ybWF0IiBtc2dpZD0iNDEzMTA2NDU2MDEyNzQ3ODY5NSI+IuCkq+CksOCljeCkruCljeCkr+CkvuCknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGJfYWN0aXZlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjY3MjkwNDQ3Nzg5NDkxODk5MTgiPiJVU0Ig4KSh4KS/4KSs4KSXIOCkl+CksOCljeCkqOClhyDgpJzgpKHgpL/gpKQg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjEwMTY2NTQ2Mjc2MjY0NzYxNDIiPiJVU0Ig4KSh4KS/4KSs4KSXIOCkl+CksOCljeCkqOClhyDgpIXgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KWN4KSoIOCkm+ClgeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9pbnB1dF9tZXRob2QiIG1zZ2lkPSI0NjUzMzg3MzM2NzkxMjIyOTc4Ij4i4KSo4KS/4KS14KWH4KS2IOCkteCkv+Ckp+CkvyDgpJvgpL7gpKjgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjkwOTE2NTIxNTc3MjI0OTUxMTYiPiLgpIfgpKjgpKrgpYHgpJ8g4KS14KS/4KSn4KS/4KS54KSw4KWCIOCkuOClh+Ckn+CkheCkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfcGh5c2ljYWxfa2V5Ym9hcmQiIG1zZ2lkPSI2MjAzMTEyNDc4MDk1MTE3NjI1Ij4i4KSt4KWM4KSk4KS/4KSVIOCkleCkv+CkrOCli+CksOCljeCkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhhcmR3YXJlIiBtc2dpZD0iNzUxNzgyMTA4Njg4ODk5MDI3OCI+IuCkueCkvuCksOCljeCkoeCkteClh+Ckr+CksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMTQwNzM2NzAxNzI2MzAzMDc3MyI+IuCkleCkv+CkrOCli+CksOCljeCkoSDgpLDgpYLgpKrgpLDgpYfgpJbgpL4g4KSa4KSv4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDY1OTA3NzAwNDQ5MjU3MDYzIj4i4KSV4KS/4KSs4KWL4KSw4KWN4KShIOCksOClguCkquCksOClh+CkluCkviDgpJrgpK/gpKgg4KSX4KSw4KWN4KSoIOCkn+CkmiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYXN0X3Njcm9sbF9hbHBoYWJldCIgbXNnaWQ9IjU0MzMyNzU0ODU0OTkwMzkxOTkiPiIgQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYXN0X3Njcm9sbF9udW1lcmljX2FscGhhYmV0IiBtc2dpZD0iNDAzMDE3MDUyNDU5NTEyMzYxMCI+IiAwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5kaWRhdGVzX3N0eWxlIiBtc2dpZD0iNDMzMzkxMzA4OTYzNzA2MjI1NyI+PHU+IuCkieCkruCljeCkruClh+CkpuCkteCkvuCksCI8L3U+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM0NDk4MTYwMDUzNTE0Njg1NjAiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSj4KSV4KWLIOCkpOCkr+CkvuCksOClgCDgpLngpYHgpIHgpKbgpYgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTQ1NzYwMzQxODk3MDk5NDA1MCI+IlNEIOCkleCkvuCksOCljeCkoSDgpKTgpK/gpL7gpLAg4KSX4KSw4KWN4KSm4KWIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iODI4NzMxOTg4MjkyNjczNzA1MyI+IuCkpOCljeCksOClgeCkn+Ckv+CkueCksOClguCkleCliyDgpLLgpL7gpJfgpL8g4KSc4KS+4KSB4KSaIOCkl+CksOCljeCkpuCliOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3Nzg4MDQwNzQ1Njg2MjI5MzA3Ij4i4KSw4KS/4KSV4KWN4KSkIFVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3ODA0Nzc4MzgyNDEyMTI5OTciPiLgpJbgpL7gpLLgpYAgU0Qg4KSV4KS+4KSw4KWN4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzg0MDEyMTA2NzQyNzI2OTUwMCI+IlVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KSW4KS+4KSy4KWAIOCkteCkviDgpIXgpLjgpK7gpLDgpY3gpKXgpL/gpKQg4KSr4KS+4KSH4KSyIOCkquCljeCksOCko+CkvuCksuClgCDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2NDEwNjU2NDE3ODY5MjM2MDQiPiJTRCDgpJXgpL7gpLDgpY3gpKEg4KSW4KS+4KSy4KWAIOCkmyDgpIXgpKXgpLXgpL4g4KS44KSu4KSw4KWN4KSl4KSoIOCkqOCkl+CksOCkv+Ckj+CkleCliyDgpKvgpL7gpIfgpLIg4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjA5MDA0Njc2OTUzMjcxMzU2MyI+IuCkrOCkv+Ckl+CljeCksOCkv+Ckj+CkleCliyBVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY0MTA3MjM5MDYwMTkxMDAxODkiPiLgpKzgpL/gpJfgpY3gpLDgpL/gpI/gpJXgpYsgU0Qg4KSV4KS+4KSw4KWN4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE3OTU5MTc1NzgzOTUzMzMyODAiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkrOCkv+Ckl+CljeCksOCkv+Ckj+CkleCliyDgpJvgpaQg4KSv4KS44KSy4KS+4KSIIOCkquClgeCkqOCkg+Ckq+CksOCljeCkruCljeCkr+CkvuCknyDgpJfgpLDgpY3gpKgg4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV91bm1vdW50YWJsZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE3NTM4OTg1Njc1MjU1NjgyNTMiPiJTRCDgpJXgpL7gpLDgpY3gpKEg4KSs4KS/4KSX4KWN4KSw4KS/4KSP4KSV4KWLIOCkm+ClpCDgpK/gpLjgpLLgpL7gpIgg4KSq4KWB4KSo4KSD4KSr4KSw4KWN4KSu4KWN4KSv4KS+4KSfIOCkl+CksOCljeCkqCDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2JhZHJlbW92YWxfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE2NjE2ODMwMzEzMzA5NTEwNzMiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkheCkquCljeCksOCkpOCljeCkr+CkvuCktuCkv+CkpCDgpLDgpYLgpKrgpK7gpL4g4KS54KSf4KS+4KSH4KSP4KSV4KWLIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NzIxNTI4ODI2MDQ0MDc4MzciPiJTRCDgpJXgpL7gpLDgpY3gpKEg4KSF4KSo4KSq4KWH4KSV4KWN4KS34KS/4KSkIOCksOClguCkquCkruCkviDgpLngpJ/gpL7gpIfgpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MzI5ODQ4ODE5ODY1NTk0MjQxIj4i4KSh4KWH4KSf4KS+IOCkl+ClgeCkruCljeCkqOCkrOCkvuCknyDgpLDgpYvgpJXgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IFVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KS54KSf4KS+4KSJ4KSo4KWB4KSF4KSY4KS/IOCkheCkqOCkruCkvuCkieCkqOCljeCknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcyNjAxODMyOTM3NDc0NDgyNDEiPiLgpKHgpYfgpJ/gpL4g4KSo4KS+4KS2IOCkueClgeCkqOCkrOCkvuCknyDgpKzgpJrgpY3gpKggU0Qg4KSV4KS+4KSw4KWN4KSh4KSy4KS+4KSIIOCkqOCkv+CkleCkvuCksuCljeCkqOClgeCkreCkqOCljeCkpuCkviDgpKrgpLngpL/gpLLgpL4g4KSF4KSo4KSu4KS+4KSJ4KSo4KWN4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5Njc5NzM4OTMyNzAzNjAyMzAiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkueCkn+CkvuCkieCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjcyOTgwMTEzMDc5MDYxNjIwMCI+IlNEIOCkleCkvuCksOCljeCkoSDgpLngpJ/gpL7gpIngpKgg4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9zYWZlX3VubW91bnRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE0MjE5NTM2MTYwNjQ5MzUzMCI+IuCkpOCkquCkvuCkiOCkgiDgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KSw4KWC4KSq4KSu4KS+IFVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KS54KSf4KS+4KSJ4KSoIOCkuOCkleCljeCkqOClgeCkueClgeCkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTY4ODQxMjc4MTM4Mzc3NjA0Ij4i4KSk4KSq4KS+4KSI4KSBIFNEIOCkleCkvuCksOCljeCkoSDgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KSw4KWC4KSq4KSu4KS+IOCkueCkn+CkvuCkieCkqCDgpLjgpJXgpY3gpKjgpYEg4KS54KWB4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ0ODYzNzcyMzAxNDAyMjc2NTEiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkueCkn+CkvuCkh+Ckr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg5MDI1MTgwMzA0MDQzODEzMTgiPiLgpLngpJ/gpL7gpIfgpI/gpJXgpYsgU0Qg4KSV4KS+4KSw4KWN4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjkyMTEyNjE2MjU4MDU3NDE0MyI+IlVTRCDgpK3gpKPgpY3gpKHgpL7gpLDgpKMg4KS54KSf4KS+4KSH4KSv4KWL4KWkIOCkqOCkr+CkvuCkgSDgpK7gpL/gpKHgpL/gpK/gpL4g4KSY4KWB4KS44KS+4KSJ4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzODcwMTIwNjUyOTgzNjU5NjQxIj4iU0Qg4KSV4KS+4KSw4KWN4KShIOCkueCkn+CkvuCkh+Ckr+Cli+ClpCDgpI/gpIngpJ/gpL4g4KSo4KSv4KS+4KSBIOCkm+Ckv+CksOCkvuCkieCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2xpc3RfZW1wdHkiIG1zZ2lkPSIxNjc1Mzg4MzMwNzg2ODQxMDY2Ij4i4KSV4KWB4KSo4KWIIOCkruCkv+CksuCljeCkqOClhyDgpJfgpKTgpL/gpLXgpL/gpKfgpL8g4KSq4KS+4KSH4KSP4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wa2dVc2FnZVN0YXRzIiBtc2dpZD0iODc4NzM1MjA3NDMyNjc0ODg5MiI+IuCkluCko+CljeCkoSDgpKrgpY3gpLDgpK/gpYvgpJcg4KSk4KSl4KWN4KSv4KS+4KSZ4KWN4KSV4KS54KSw4KWCIOCkheCkquCkoeClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wa2dVc2FnZVN0YXRzIiBtc2dpZD0iMTEwNjYxMjQyNDI1NDI3NzYzMCI+IuCknOCkruCljeCkruCkviDgpJfgpLDgpL/gpI/gpJXgpYsg4KSY4KSf4KSVIOCkieCkquCkr+Cli+CklyDgpKTgpKXgpY3gpK/gpL7gpJngpY3gpJXgpLngpLDgpYLgpLLgpL7gpIgg4KSq4KSw4KS/4KSu4KS+4KSw4KWN4KSc4KSoIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOCljeCkm+ClpCDgpLjgpL7gpK7gpL7gpKjgpY3gpK8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWC4KSs4KS+4KSfIOCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpLLgpL7gpJfgpL8g4KS54KWL4KSH4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb3B5UHJvdGVjdGVkRGF0YSIgbXNnaWQ9IjQzNDEwMzYzMTEyMTE0MDY2OTIiPiLgpLjgpL7gpK7gpL7gpJfgpY3gpLDgpYDgpJXgpYsg4KSo4KSV4KSyIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvcHlQcm90ZWN0ZWREYXRhIiBtc2dpZD0iNDM5MDY5NzEyNDI4ODMxNzgzMSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpL7gpK7gpJfgpY3gpLDgpYAg4KSq4KWN4KSw4KSk4KS/4KSy4KS/4KSq4KS/IOCkl+CksOCljeCkqCDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKQg4KSV4KSo4KWN4KSf4KWH4KSo4KSwIOCkuOClh+CkteCkviDgpIbgpLngpY3gpLXgpL7gpKgg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQg4KS44KS+4KSn4KS+4KSw4KSjIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCkpuCljeCkteCkvuCksOCkvuCkleCliyDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpYsg4KSy4KS+4KSX4KS/IOCkueCli+Ckh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcm91dGVfbWVkaWFfb3V0cHV0IiBtc2dpZD0iMTY0MjAyNDQ1NTc1MDQxNDY5NCI+IuCkruCkv+CkoeCkv+Ckr+CkviDgpKrgpLDgpL/gpKPgpL7gpK4g4KSm4KS/4KS24KS+4KSo4KS/4KSw4KWN4KSm4KWH4KS2IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JvdXRlX21lZGlhX291dHB1dCIgbXNnaWQ9IjQ5MzI4MTg3NDk1NDcyNDQzNDYiPiLgpK7gpL/gpKHgpL/gpK/gpL4g4KSq4KSw4KS/4KSj4KS+4KSu4KSy4KS+4KSIIOCkheCkqOCljeCkryDgpKzgpL7gpLngpL/gpLDgpYAg4KSJ4KSq4KSV4KSw4KSj4KS54KSw4KWC4KS44KSB4KSXIOCksuCliOCknOCkvuCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc19rZXlndWFyZF9zZWN1cmVfc3RvcmFnZSIgbXNnaWQ9Ijc1NjU1NTIyMzc5Nzc4MTUwNDciPiLgpJXgpL/gpJfgpL7gpLDgpY3gpKEg4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkreCko+CljeCkoeCkvuCksOCkoyDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzX2tleWd1YXJkX3NlY3VyZV9zdG9yYWdlIiBtc2dpZD0iNTg2NjI0NTQ4NDMwMzI4NTc2MiI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpJXgpL/gpJfgpL7gpLDgpY3gpKEg4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkreCko+CljeCkoeCkvuCksOCkoyDgpKrgpLngpYHgpIHgpJog4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xfa2V5Z3VhcmQiIG1zZ2lkPSIxNzIxOTUxODQyMDc4MjgzODciPiLgpJXgpL/gpJfgpL7gpLDgpY3gpKEg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIOCkl+CksOCljeCkqOClhyDgpLAg4KSy4KWB4KSV4KS+4KSJ4KSo4KWHIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCkoyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sX2tleWd1YXJkIiBtc2dpZD0iMzA0MzczMjI5MDUxODYyOTA2MSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpJXgpL/gpJfgpL7gpLDgpY3gpKEg4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSjIOCkl+CksOCljeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHV0b3JpYWxfZG91YmxlX3RhcF90b196b29tX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0MDcwNDMzMjA4MTYwMDYzNTM4Ij4i4KSc4KWB4KSuIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KSm4KWB4KSIIOCkmuCli+Ckn+CkvyDgpJ/gpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2FkZ2V0X2hvc3RfZXJyb3JfaW5mbGF0aW5nIiBtc2dpZD0iNDg4MjAwNDMxNDkwNjQ2NjE2MiI+IuCkteCkv+CknOClh+CknyDgpKXgpKog4KSX4KSw4KWN4KSoIOCkuOCkleCkv+CkgeCkpuCliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZ28iIG1zZ2lkPSI4MzIwODQ1NjUxNzM3MzY5MDI3Ij4i4KSc4KS+4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9zZWFyY2giIG1zZ2lkPSI2NTgxMTAyNzE4MjI4MDc4MTEiPiLgpJbgpYvgpJzgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3NlbmQiIG1zZ2lkPSIyMzE2MTY2NTU2MzQ5MzE0NDI0Ij4i4KSq4KSg4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9uZXh0IiBtc2dpZD0iMzEzODg0MzkwNDAwOTgxMzgzNCI+IuCkheCksOCljeCkleCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZG9uZSIgbXNnaWQ9Ijg5NzE1MTYxMTc5MTA5MzQ2MDUiPiLgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3ByZXZpb3VzIiBtc2dpZD0iMTQ0MzU1MDAzOTI1MDEwNTk0OCI+IuCkheCkmOCkv+CksuCljeCksuCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fZGVmYXVsdCIgbXNnaWQ9IjI4NDA5MjE4ODU1NTgwNDU3MjEiPiLgpJrgpLLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaWFsX251bWJlcl91c2luZyIgbXNnaWQ9IjU3ODkxNzY0MjUxNjc1NzM1ODYiPlxuIuCkqOCkruCljeCkrOCksCDgpKHgpL7gpK/gpLIg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVzPC94bGlmZjpnPiDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWH4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2NvbnRhY3RfdXNpbmciIG1zZ2lkPSI0OTQ3NDA1MjI2Nzg4MTA0NTM4Ij4i4KS44KSu4KWN4KSq4KSw4KWN4KSVIOCkuOCkv+CksOCljeCknOCkqOCkviDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY1cbuCkr+CliyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lczwveGxpZmY6Zz4g4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClh+CksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW50X2NyZWRlbnRpYWxzX3Blcm1pc3Npb25fbWVzc2FnZV9oZWFkZXIiIG1zZ2lkPSIyMTA2MTAzODE3OTM3ODU5NjYyIj4i4KSo4KS/4KSu4KWN4KSoIOCkj+CkieCkn+CkviDgpLXgpL4g4KSn4KWH4KSw4KWIIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClguCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSW4KS+4KSk4KS+4KSu4KS+IOCkquCkueClgeCkgeCkmuCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSu4KSk4KS/IOCkheCkueCkv+CksuClhyDgpLAg4KSt4KS14KS/4KS34KWN4KSv4KSu4KS+IOCkheCkqOClgeCksOCli+CkpyDgpJfgpLDgpY3gpJvgpKjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9jcmVkZW50aWFsc19wZXJtaXNzaW9uX21lc3NhZ2VfZm9vdGVyIiBtc2dpZD0iMzEyNTIxMTM0MzM3OTM3NjU2MSI+IuCkleClhyDgpKTgpKrgpL7gpIjgpIEg4KSv4KS4IOCkheCkqOClgeCksOCli+Ckp+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSoIOCkmuCkvuCkueCkqOClgeCkueClgeCkqOCljeCkmz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9wZXJtaXNzaW9uc19oZWFkZXJfdGV4dCIgbXNnaWQ9IjY4NzQ0OTc0MDgyMDE4MjY3MDgiPiLgpIXgpKjgpYHgpLDgpYvgpKcg4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93IiBtc2dpZD0iNzIyNTk0ODgxMTI5NjM4NjU1MSI+IuCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55IiBtc2dpZD0iMjA4MTg3OTg4NTc1NTQzNDUwNiI+IuCkheCkuOCljeCkteClgOCkleCkvuCksCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtaXNzaW9uX3JlcXVlc3Rfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjQ4Njc1OTc5NTkyNjIzNzkwNyI+IuCkheCkqOClgeCksOCli+CkpyDgpJfgpLDgpL/gpI/gpJXgpYsg4KSF4KSo4KWB4KSu4KSk4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWlzc2lvbl9yZXF1ZXN0X25vdGlmaWNhdGlvbl93aXRoX3N1YnRpdGxlIiBtc2dpZD0iODUzMDM5MzEzOTYzOTU2MDE4OSI+XG4i4KSW4KS+4KSk4KS+IDx4bGlmZjpnIGlkPSJBQ0NPVU5UIj4lczwveGxpZmY6Zz7gpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCksOCli+CkpyDgpJfgpLDgpL/gpI/gpJXgpYsg4KSF4KSo4KWB4KSu4KSk4KS/4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5wdXRfbWV0aG9kX2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSIxMjgzNTU3MTc5OTQ0OTkyNjQ5Ij4i4KSH4KSo4KSq4KWB4KSfIOCkteCkv+Ckp+CkvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjM2ODc5NjkxMzgzNzUwOTI0MjMiPiLgpLjgpL/gpJngpY3gpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iNDE0ODEyMDc0MjA5NjQ3NDY0MSI+IuCkieCkquCksuCkrOCljeCkp+CkpOCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndhbGxwYXBlcl9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMTI0MDA4Nzg0NDMwNDY4NzY2MiI+IuCkteCkvuCksuCkquClh+CkquCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZXJfd2FsbHBhcGVyIiBtc2dpZD0iNzg3MzQ3NjE5OTI5NTE5MDI3OSI+IuCkteCkvuCksuCkquClh+CkquCksCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm90aWZpY2F0aW9uX2xpc3RlbmVyX2JpbmRpbmdfbGFiZWwiIG1zZ2lkPSIyMDE0MTYyODM1NDgxOTA2NDI5Ij4i4KS44KWC4KSa4KSo4KS+IOCkuOClgeCkqOCljeCkqOClh+CkteCkvuCksuCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90aXRsZSIgbXNnaWQ9IjE5NjE1MjEzNTUyMDQyODI3Ij4iVlBOIOCkuOCkleCljeCksOCkv+CkryDgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGl0bGVfbG9uZyIgbXNnaWQ9IjY0MDA3MTQ3OTgwNDkyNTIyOTQiPiJWUE4gPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+4KSm4KWN4KS14KS+4KSw4KS+IOCkuOCkleCljeCksOCkv+CkryDgpJfgpLDgpL/gpI/gpJXgpYsg4KS54KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RleHQiIG1zZ2lkPSIzMDExMzA2NjA3MTI2NDUwMzIyIj4i4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkquCljeCksOCkrOCkqOCljeCkpyDgpJfgpLDgpY3gpKgg4KSb4KWB4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RleHRfbG9uZyIgbXNnaWQ9IjY0MDczNTEwMDYyNDkxNzQ0NzMiPiI8eGxpZmY6ZyBpZD0iU0VTU0lPTiI+JXM8L3hsaWZmOmc+4KS44KSB4KSXIOCknOCli+CkoeCkv+Ckj+CkleCliyDgpJvgpaQg4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCkteCljeCkr+CkteCkuOCljeCkpeCkvuCkquCkqCDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkm+ClgeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0aW5nIiBtc2dpZD0iNjQ0MzQzODk2NDQ0MDk2MDc0NSI+IlZQTiDgpJzgpKHgpL7gpKgg4KS44KSn4KWIIOCknOCli+CkoeCljeCkpuCliOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0ZWQiIG1zZ2lkPSI4MjAyNjc5Njc0ODE5MjEzOTMxIj4i4KS44KSn4KWI4KSBIOCkluClgeCksuCljeCksuCkviDgpLngpYHgpKjgpYcgVlBOIOCknOCli+CkoeCkv+Ckj+CkleCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9lcnJvciIgbXNnaWQ9IjYwMDkyNDk4MTQwMzQ3MDgxNzUiPiLgpLjgpKfgpYjgpIEg4KSt4KSw4KS/IFZQTiDgpKTgpY3gpLDgpYHgpJ/gpL/gpK7gpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29uZmlnIiBtc2dpZD0iNjQxNTg5OTE1MDY3MTUzNzk3MCI+IuCkleCkqOCljeCkq+Ckv+Ckl+CksCDgpJfgpLDgpY3gpKgg4KSf4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVwbG9hZF9maWxlIiBtc2dpZD0iMjg5Nzk1NzE3MjM2NjczMDQxNiI+IuCkq+CkvuCkh+CksiDgpJvgpL7gpKjgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19maWxlX2Nob3NlbiIgbXNnaWQ9IjYzNjM2NDg1NjIxNzA3NTk0NjUiPiLgpJXgpYHgpKjgpYgg4KSr4KS+4KSH4KSyIOCkm+CkvuCkqOCkv+Ckj+CkleCliyDgpJvgpYjgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXNldCIgbXNnaWQ9IjI0NDgxNjgwODA5NjQyMDk5MDgiPiLgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KSX4KSw4KWN4KSo4KWBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3VibWl0IiBtc2dpZD0iMTYwMjMzNTU3MjA4OTkxMTk0MSI+IuCkquClh+CkuCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXJfbW9kZV9kaXNhYmxlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjMxNjQ3NjgyMTIwMDM4NjQzMTYiPiLgpJXgpL7gpLAg4KSu4KWL4KShIOCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXJfbW9kZV9kaXNhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iODAzNTIzMDUzNzU2MzUwMzI2MiI+IuCkleCkvuCksCDgpK7gpYvgpKHgpKzgpL7gpJ8g4KSo4KS/4KS44KWN4KSV4KSoIOCkm+ClgeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRldGhlcmVkX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjMxNDY2OTQyMzQzOTgyMDI2MDEiPiLgpJ/gpYfgpKXgpLAg4KSX4KSw4KWN4KSo4KWHIOCkteCkviDgpLngpJ/gpLjgpY3gpKrgpJ8g4KS44KSV4KWN4KSw4KS/4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV0aGVyZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI2ODU3MDMxNzYwMTAzMDYyOTgyIj4i4KS44KWH4KSf4KSF4KSqIOCkl+CksOCljeCkqCDgpJ/gpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja19idXR0b25fbGFiZWwiIG1zZ2lkPSIyMzAwNDcwMDA0NTAzMzQzNDM5Ij4i4KSq4KSb4KS+4KSh4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmV4dF9idXR0b25fbGFiZWwiIG1zZ2lkPSIxMDgwNTU1MTA0Njc3OTkyNDA4Ij4i4KSF4KSw4KWN4KSV4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2tpcF9idXR0b25fbGFiZWwiIG1zZ2lkPSIxMjc1MzYyMjk5NDcxNjMxODE5Ij4i4KSb4KWL4KSh4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGhyb3R0bGVfd2FybmluZ19ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI0ODkwODk0MjY3NDU0ODY3Mjc2Ij4i4KSJ4KSa4KWN4KSaIOCkruCli+CkrOCkvuCkh+CksiDgpKHgpYfgpJ/gpL4g4KSq4KWN4KSw4KSv4KWL4KSXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGhyb3R0bGVfd2FybmluZ19ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjMzNDA4MjIyMjg1OTkzMzc3NDMiPiLgpK7gpYvgpKzgpL7gpIfgpLIg4KSh4KWH4KSf4KS+IOCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpKzgpL7gpLDgpYfgpK7gpL4g4KSF4KSw4KWCIOCkpeCkqiDgpJzgpL7gpKjgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/ICDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZWRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iNjI2OTU0MTg5NzcyOTc4MTMzMiI+IuCkruCli+CkrOCkvuCkh+CksiDgpKHgpYfgpJ/gpL4g4KS44KWA4KSu4KS+IOCkquCkvuCksCDgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI1NDQzNDU3MzIxMzU0OTA3MTgxIj4i4KSu4KWL4KSs4KS+4KSH4KSyIOCkoeClh+Ckn+CkviDgpKrgpY3gpLDgpK/gpYvgpJcg4KSs4KS+4KSw4KWHIOCkpeCkqiDgpLjgpL/gpJXgpY3gpKgg4KSb4KWB4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fbWF0Y2hlcyIgbXNnaWQ9IjgxMjk0MjE5MDg5MTU4NDA3MzciPiLgpJXgpYHgpKjgpYgg4KSu4KS/4KSy4KWH4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZF9vbl9wYWdlIiBtc2dpZD0iMTk0Njc5OTIzMzgyMjgyMDM4NCI+IuCkquClg+Ckt+CljeCkoOCkruCkviDgpKvgpYfgpLLgpL4g4KSq4KS+4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJtYXRjaGVzX2ZvdW5kIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODE2NzE0NzA4MTEzNjU3OTQzOSI+IuClpyDgpK7gpYfgpLIiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ2NDE4NzI3OTcwNjc2MDkxNzciPiI8eGxpZmY6ZyBpZD0iVE9UQUwiPiVkPC94bGlmZjpnPiDgpJXgpYsgPHhsaWZmOmcgaWQ9IklOREVYIj4lZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fbW9kZV9kb25lIiBtc2dpZD0iNzIxNzU4MTY0MDQ2MTkyMjI4OSI+IuCkreCkr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkyMzgxMDQ0ODUwNzYxMjc0NiI+IlVTQiAg4KSt4KSj4KWN4KSh4KS+4KSw4KSjIOCkheCkqOCkruCkvuCkieCkqOCljeCknyDgpJfgpLDgpY3gpKbgpYguLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc191bm1vdW50aW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTMyNzg5NDk5ODQwOTUzNzE5MCI+IlNEIOCkleCkvuCksOCljeCkoSDgpIXgpKjgpK7gpL7gpIngpKjgpY3gpJ8g4KSX4KSw4KWN4KSm4KWI4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfZXJhc2luZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0NTIxNTczMzIxNTI0MzQwMDU4Ij4iVVNCIOCkreCko+CljeCkoeCkvuCksOCkoyDgpK7gpYfgpJ/gpL7gpIngpIHgpKbgpYjigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc19lcmFzaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjU5Njk4ODg3NTUwNzA0MzA0MiI+IlNEIOCkleCkvuCksOCljeCkoSDgpK7gpYfgpJ/gpL7gpIngpIHgpKbgpYjigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmb3JtYXRfZXJyb3IiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjI5OTc2OTU2MzYyNDc3Njk0OCI+IlVTQiDgpK3gpKPgpY3gpKHgpL7gpLDgpKPgpLLgpL7gpIgg4KSu4KWH4KSf4KS+4KSJ4KSoIOCkuOCkleClh+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZvcm1hdF9lcnJvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMTUyNDg2OTY2NDQ1MTA5MzUiPiJTRCDgpJXgpL7gpLDgpY3gpKEg4KSu4KWH4KSf4KS+4KSJ4KSoIOCkuOCkleClh+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2JhZF9yZW1vdmFsIiBtc2dpZD0iNzk2MDg2NDA2MTAxNjYwMzI4MSI+IlNEIOCkleCkvuCksOCljeCkoSDgpIXgpKjgpK7gpL7gpIngpKjgpY3gpJ8g4KS54KWB4KSo4KWB4KSt4KSo4KWN4KSm4KS+IOCkquCkueCkv+CksuCkviDgpKjgpL/gpJXgpL7gpLLgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9jaGVja2luZyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI0MTgxODg3MjAwMDk1Njk2OTMiPiLgpIXgpLngpL/gpLLgpYcgVVNCIOCkreCko+CljeCkoeCkvuCksOCkoyDgpJzgpL7gpIHgpJog4KSt4KSH4KSw4KS54KWH4KSV4KWLIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2NoZWNraW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzMzNDc2MjUwMzkwNDgyNzQ4MSI+IlNEIOCkleCkvuCksOCljeCkoSDgpIXgpLngpL/gpLLgpYcg4KSq4KSw4KWA4KSV4KWN4KS34KSjIOCkreCkh+CksOCkueClh+CkleCliyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yZW1vdmVkIiBtc2dpZD0iNzAwMTUyNjkwNTA1Nzk1MjA5NyI+IlNEIOCkleCkvuCksOCljeCkoSDgpLngpJ/gpL7gpIfgpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9zaGFyZWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNTgzMDgxNDM0OTI1MDgzNDIyNSI+IlNEIOCkleCkvuCksOCljeCkoSDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLDgpKbgpY3gpLXgpL7gpLDgpL4g4KSF4KS54KS/4KSy4KWHIOCkquCljeCksOCkr+Cli+Ckl+CkruCkviDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9zaGFyZWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NzA2MTMwNTY4MTMzNTQwNDM1Ij4iU0Qg4KSV4KS+4KSw4KWN4KShIOCkheCkueCkv+CksuClhyDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLDgpKbgpY3gpLXgpL7gpLDgpL4g4KSq4KWN4KSw4KSv4KWL4KSX4KSu4KS+IOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3Vua25vd25fc3RhdGUiIG1zZ2lkPSI3MjkxOTI3ODIxOTcyOTAzODUiPiLgpKzgpL7gpLngpY3gpK8g4KSu4KS/4KSh4KS/4KSv4KS+IOCkheCknOCljeCknuCkvuCkpCDgpIXgpLXgpLjgpY3gpKXgpL7gpK7gpL7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZSIgbXNnaWQ9IjE3Nzg2ODY2MTgyMzAwMTE5NjQiPiLgpLjgpL7gpJ3gpYfgpKbgpL7gpLDgpYAg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZCIgbXNnaWQ9IjQ4MDgyNzA5MDAzMjI5ODU5NjAiPiLgpKrgpKTgpY3gpKTgpL4g4KSy4KSX4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2Vic2VhcmNoIiBtc2dpZD0iNDMzNzE1Nzk3NzQwMDIxMTU4OSI+IuCkteClh+CkrCDgpJbgpYvgpJzgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kX25leHQiIG1zZ2lkPSI1NzQyMTI0NjE4OTQyMTkzOTc4Ij4i4KSF4KSw4KWN4KSV4KWLIOCkreClh+Ckn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmRfcHJldmlvdXMiIG1zZ2lkPSIyMTk2NzIzNjY5Mzg4MzYwNTA2Ij4i4KSF4KSY4KS/4KSy4KWN4KSy4KWLIOCkq+Clh+CksuCkviDgpKrgpL7gpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNOb3RpZlRpY2tlciIgbXNnaWQ9IjU2MjI2ODM5MTI2MTY0OTYxNzIiPiI8eGxpZmY6ZyBpZD0iTkFNRSI+JXM8L3hsaWZmOmc+IOCkrOCkvuCknyDgpLjgpY3gpKXgpL7gpKgg4KSF4KSo4KWB4KSw4KWL4KSnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZUaXRsZSIgbXNnaWQ9IjU0NDY4NTg3MTcxNTc0MTY4MzkiPiLgpLjgpY3gpKXgpL7gpKgg4KSF4KSo4KWB4KSw4KWL4KSnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZNZXNzYWdlIiBtc2dpZD0iMTM3NDcxODAyMzIyNDAwMDcwMiI+Ijx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPiAoPHhsaWZmOmcgaWQ9IlNFUlZJQ0UiPiUyJHM8L3hsaWZmOmc+KSDgpKbgpY3gpLXgpL7gpLDgpL4g4KSF4KSo4KWB4KSw4KWL4KSnIOCkl+CksOCkv+Ckj+CkleCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmWWVzIiBtc2dpZD0iMjM0NjU2NjA3Mjg2NzIxMzU2MyI+IuCkueCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmTm8iIG1zZ2lkPSIxMTQ2NTY0OTM3MzQ2NDU0ODY1Ij4i4KS54KWL4KSH4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzIiBtc2dpZD0iNTI5NjMyMTg1MDY2Mjc0Njg5MCI+IuCkuOClgOCkruCkviDgpKjgpL7gpJjgpYfgpJXgpL7gpLngpLDgpYIg4KSu4KWH4KSf4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzX2Rlc2MiIG1zZ2lkPSI0OTY1NTE2NzEwMDg2OTQyNDUiPiLgpKTgpY3gpK/gpLngpL7gpIEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl9PRl9ERUxFVEVEX0lURU1TIj4lMSRkPC94bGlmZjpnPiDgpK7gpYfgpJ/gpL7gpIfgpI/gpJXgpL4g4KSG4KSH4KSf4KSu4KS54KSw4KWCIOCkm+CkqOCljSA8eGxpZmY6ZyBpZD0iVFlQRV9PRl9TWU5DIj4lMiRzPC94bGlmZjpnPuCkleCliyDgpLLgpL7gpJfgpL8sIOCkluCkvuCkpOCkviA8eGxpZmY6ZyBpZD0iQUNDT1VOVF9OQU1FIj4lMyRzPC94bGlmZjpnPuClpCDgpKTgpKrgpL7gpIjgpIIg4KSV4KWHIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfcmVhbGx5X2RlbGV0ZSIgbXNnaWQ9IjI1NzI2MDAxMDMxMjI1OTYyNDMiPiLgpLXgpLjgpY3gpKTgpYHgpLngpLDgpYIg4KSu4KWH4KSf4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY191bmRvX2RlbGV0ZXMiIG1zZ2lkPSIyOTQxMzE3MzYwNjAwMzM4NjAyIj4i4KSu4KWH4KSf4KS/4KSP4KSV4KS+4KS54KSw4KWCIOCkquClguCksOCljeCkteCkteCkpCDgpKzgpKjgpL7gpIngpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzeW5jX2RvX25vdGhpbmciIG1zZ2lkPSIzNzQzNzY0NzQwNDMwODIxODQ1Ij4i4KSF4KS54KS/4KSy4KWH4KSV4KWLIOCksuCkvuCkl+CkvyDgpJXgpYfgpLngpYAg4KSo4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX2FjY291bnRfbGFiZWwiIG1zZ2lkPSI1NjU1MjAzMDg5NzQ2NDIzOTI3Ij4i4KSP4KSJ4KSf4KS+IOCkluCkvuCkpOCkviDgpJvgpL7gpKjgpY3igI3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfYWNjb3VudF9sYWJlbCIgbXNnaWQ9IjI5MzUyNjczNDQ4NDk5OTM1NTMiPiLgpI/gpIngpJ/gpL4g4KSW4KS+4KSk4KS+IOCkpeCkquCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9hY2NvdW50X2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjM2MTE5ODI4OTQ4NTM0MzU4NzQiPiLgpJbgpL7gpKTgpL4g4KSl4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfaW5jcmVtZW50X2J1dHRvbiIgbXNnaWQ9IjI0MTIwNzIyNzI4MzIyODQzMTMiPiLgpKzgpKLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJudW1iZXJfcGlja2VyX2RlY3JlbWVudF9idXR0b24iIG1zZ2lkPSI0NzYwNTA3NzgzODY3NzkwNjciPiLgpJjgpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJudW1iZXJfcGlja2VyX2luY3JlbWVudF9zY3JvbGxfbW9kZSIgbXNnaWQ9IjMwNzMxMDEwNjc0NDE2Mzg0MjgiPiI8eGxpZmY6ZyBpZD0iVkFMVUUiPiVzPC94bGlmZjpnPuCkm+ClgeCkqOClgeCkueCli+CkuOCljSDgpLAg4KS44KSu4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfc2Nyb2xsX2FjdGlvbiIgbXNnaWQ9IjkxMDE0NzMwNDU4OTE4MzU0OTAiPiLgpKzgpKLgpL7gpIngpKgg4KSu4KS+4KSl4KS/IOCksCDgpJjgpJ/gpL7gpIngpKgg4KSk4KSyIOCkuOCkvuCksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2luY3JlbWVudF9taW51dGVfYnV0dG9uIiBtc2dpZD0iODg2NTg4NTExNDAyODYxNDMyMSI+IuCkruCkv+CkqOClh+CknyDgpKzgpKLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfbWludXRlX2J1dHRvbiIgbXNnaWQ9IjYyNDY4MzQ5MzcwODA2ODQ3OTEiPiLgpK7gpL/gpKjgpYfgpJ8g4KSY4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfaW5jcmVtZW50X2hvdXJfYnV0dG9uIiBtc2dpZD0iMzY1MjA1NjA1NTgxMDIyMzEzOSI+IuCkmOCkqOCljeCkn+CkviDgpKzgpKLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfaG91cl9idXR0b24iIG1zZ2lkPSIxMzc3NDc5ODYzNDI5MjE0NzkyIj4i4KSY4KSo4KWN4KSf4KS+IOCkmOCkn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2luY3JlbWVudF9zZXRfcG1fYnV0dG9uIiBtc2dpZD0iNDE0NzU5MDY5NjE1MTIzMDg2MyI+IlBNIOCkuOClh+CknyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfc2V0X2FtX2J1dHRvbiIgbXNnaWQ9IjgzMDIxNDAzNTM1Mzk0ODY3NTIiPiJBTSDgpLjgpYfgpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X21vbnRoX2J1dHRvbiIgbXNnaWQ9IjUzNjk5OTg0NzkwNjc5MzQxMTAiPiLgpK7gpLngpL/gpKjgpL4g4KSs4KSi4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfZGVjcmVtZW50X21vbnRoX2J1dHRvbiIgbXNnaWQ9IjE4MzI2OTg5OTU1NDE3MjYwMTkiPiLgpK7gpLngpL/gpKjgpL4g4KSY4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KWN4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X2RheV9idXR0b24iIG1zZ2lkPSI3MTMwNDY1NDEyMzA4MTczOTAzIj4i4KSm4KS/4KSoIOCkrOCkouCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF9kYXlfYnV0dG9uIiBtc2dpZD0iNDEzMTg4MTUyMTgxODc1MDAzMSI+IuCkpuCkv+CkqCDgpJjgpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9pbmNyZW1lbnRfeWVhcl9idXR0b24iIG1zZ2lkPSI2MzE4Njk3Mzg0MzEwODA4ODk5Ij4i4KS14KSw4KWN4KS3IOCkrOCkouCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF95ZWFyX2J1dHRvbiIgbXNnaWQ9IjQ0ODIwMjE4MTM0OTExMjE3MTciPiLgpLXgpLDgpY3gpLcg4KSY4KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfYWx0IiBtc2dpZD0iNDg1Njg2ODgyMDA0MDA1MTkzOSI+IkFsdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2NhbmNlbCIgbXNnaWQ9IjEyMDM5ODQwMTcyNDU3ODMyNDQiPiLgpLDgpKbgpY3gpKYg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZGVsZXRlIiBtc2dpZD0iMzMzNzkxNDgzMzIwNjYzNTc0NCI+IuCkruClh+Ckn+CljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RvbmUiIG1zZ2lkPSIxOTkyNTcxMTE4NDY2Njc5Nzc1Ij4i4KSt4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfbW9kZV9jaGFuZ2UiIG1zZ2lkPSI0NTQ3Mzg3NzQxOTA2NTM3NTE5Ij4i4KSu4KWL4KShIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IuCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiLgpI/gpIngpJ/gpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkm+CkvuCkqOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IuCkuOCkvuCkneClh+CkpuCkvuCksOClgCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0uLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiDgpLjgpIHgpJcg4KS44KS+4KSd4KWH4KSm4KS+4KSw4KWAIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiLgpKfgpL/gpLjgpL7gpLDgpY3gpKjgpYcg4KS54KWN4KSv4KS+4KSo4KWN4KSh4KSy4KWkIOCkm+ClgeCkqOClgeCkueCli+CkuOCljSAmYW1wOyDgpLjgpK7gpL7gpIngpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+4KSV4KWLIOCksuCkvuCkl+CkvyDgpK7gpL7gpKXgpL8g4KSn4KS/4KS44KS+4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2Rvd24iIG1zZ2lkPSI1MDg3NzM5NzI4NjM5MDE0NTk1Ij4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IOCkleCliyDgpLLgpL7gpJfgpL8g4KSk4KSyIOCkuOCljeCksuCkvuCkh+CkoSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fbGVmdCIgbXNnaWQ9IjcyMDc0Nzg3MTk4MDU1NjIxNjUiPiLgpLjgpY3gpLLgpL7gpIfgpKEgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+4KSV4KWLIOCksuCkvuCkl+CkvyDgpKzgpL7gpK/gpL7gpIHgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fcmlnaHQiIG1zZ2lkPSI4MDM0NDMzMjQyNTc5NjAwOTgwIj4i4KS44KWN4KSy4KS+4KSH4KShIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPuCkleCliyDgpLLgpL7gpJfgpL8g4KSm4KS+4KSv4KS+4KSB4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9jayIgbXNnaWQ9IjIyMjg1MjQ5MDA0Mzk4MDE0NTMiPiLgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X2NhbWVyYSIgbXNnaWQ9Ijk2OTA3MTk5NzU1MjQ4NjgxNCI+IuCkleCljeCkr+CkvuCkruClh+CksOCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zaWxlbnQiIG1zZ2lkPSI4OTM1NTEyODc3NDY1MjIxODIiPiLgpK7gpYzgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4i4KSG4KS14KS+4KScIOCkmuCkvuCksuClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zZWFyY2giIG1zZ2lkPSIzMDkxNTg3MjQ5Nzc2MDMzMTM5Ij4i4KSW4KWL4KSc4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9ja190YWJsZXQiIG1zZ2lkPSIzODMzMTk1MzM1NjI5Nzk1MDU1Ij4i4KSW4KWL4KSy4KWN4KSo4KSy4KS+4KSHIOCkueClgeCkpOCljeCkpOCljeCkr+CkvuCkieCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2hlYWRzZXRfcmVxdWlyZWRfdG9faGVhcl9wYXNzd29yZCIgbXNnaWQ9IjcwMTE5MjczNTIyNjc2Njg2NTciPiLgpKzgpYvgpLLgpL/gpI/gpJXgpYsg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkleClgeCknuCljeCknOClgOCkueCksOClgiDgpLjgpYHgpKjgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkueClh+CkoeCkuOClh+CknyDgpKrgpY3gpLLgpJcg4KSH4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX3Bhc3N3b3JkX2NoYXJhY3Rlcl9ub19oZWFkc2V0IiBtc2dpZD0iMjg1OTg3Mzc3MDg4NjE1MzY3OCI+IuCkoeCkn+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUyOTM2MDA0OTY2MDE0OTAyMTYiPiLgpJfgpYPgpLkg4KSW4KWL4KSc4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX2Jhcl91cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIyMzc0OTY1NjI5NTIxNTI1ODkiPiLgpK7gpL7gpKXgpL8g4KSW4KWL4KSc4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX21lbnVfb3ZlcmZsb3dfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMjk1NjU5MDM3NTA5MDA4NDUzIj4i4KSl4KSqIOCkteCkv+CkleCksuCljeCkquCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI3OTY1OTg0MzYwOTAzNjkzOTAzIj4iJTEkcywgJTIkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9zdWJ0aXRsZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI2OTg1NTQ2NTMwNDcxNzgwNzI3Ij4iJTEkcywgJTIkcywgJTMkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfaW50ZXJuYWwiIG1zZ2lkPSI0ODkxOTE2ODMzNjU3OTI5MjYzIj4i4KSG4KSo4KWN4KSk4KSw4KS/4KSVIOCkreCko+CljeCkoeCkvuCksOCkoyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2Vfc2RfY2FyZCIgbXNnaWQ9IjMyODI5NDg4NjEzNzgyODY3NDUiPiJTRCDgpJXgpL7gpLDgpY3gpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3VzYiIgbXNnaWQ9IjMwMTc5NTQwNTk1Mzg1MTcyNzgiPiJVU0Ig4KSt4KSj4KWN4KSh4KS+4KSw4KSjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0cmFjdF9lZGl0X21lbnVfYnV0dG9uIiBtc2dpZD0iODk0MDQ3ODczMDQ5NjYxMDEzNyI+IuCkuOCkruCljeCkquCkvuCkpuCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSIxOTU1NjM4ODYyMTIyMjMyMzQyIj4i4KSh4KWH4KSf4KS+IOCkquCljeCksOCkr+Cli+CklyDgpJrgpYfgpKTgpL7gpLXgpKjgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dhcm5pbmdfYm9keSIgbXNnaWQ9IjI4MTQ2NzM1NTE0NzE5Njk5NTQiPiLgpIngpKrgpK/gpYvgpJcg4KSwIOCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiDgpLngpYfgpLDgpY3gpKgg4KSb4KWB4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV8zZ19saW1pdF90aXRsZSIgbXNnaWQ9IjcwOTMzMzQ0MTk1MTg3MDY2ODYiPiIyRy0zRyDgpKHgpYfgpJ/gpL4g4KSF4KS44KSV4KWN4KS34KSuIOCkl+CksOCkv+Ckj+CkleCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfNGdfbGltaXRfdGl0bGUiIG1zZ2lkPSI3NjM2NDg5NDM2ODE5NDcwNzYxIj4iNEcg4KSh4KWH4KSf4KS+IOCkheCkuOCkleCljeCkt+CkriDgpJfgpLDgpL/gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX21vYmlsZV9saW1pdF90aXRsZSIgbXNnaWQ9Ijc4Njk0MDI1MTkzOTE2MzE4ODQiPiLgpK7gpYvgpKzgpL7gpIfgpLIg4KSh4KWH4KSf4KS+IOCkheCkuOCkleCljeCkt+CkriDgpKrgpL7gpLDgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfdGl0bGUiIG1zZ2lkPSI4OTkyMTU0NzM2NDQxMjg0ODY1Ij4i4KS14KS+4KSHLeCkq+CkvuCkhyDgpKHgpYfgpJ/gpL4g4KSF4KS44KSV4KWN4KS34KSuIOCkl+CksOCkv+Ckr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbGltaXRfYm9keSIgbXNnaWQ9IjMzMTc5NjQ3MDY5NzM2MDEzODYiPiLgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KWN4KSoIOCkm+ClgeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfM2dfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjcwMjY3MzkxMjExMzgwMDUyMzEiPiIyRy0zRyDgpKHgpYfgpJ/gpL4g4KS44KWA4KSu4KS+IOCkreCkqOCljeCkpuCkviDgpKrgpL7gpLAg4KSt4KSP4KSV4KWLIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfNGdfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9IjExMDY1NjI3NzkzMTEyMDkwMzkiPiI0RyDgpKHgpYfgpJ/gpL4gU0lN4KS+IOCkqOCkvuCkmOCljeCkr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbW9iaWxlX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSIyNzkyNDA1NzIxNjU0MTIxNjgiPiLgpK7gpYvgpLXgpL7gpIfgpLIg4KSh4KWH4KSf4KS+IFNJTeCkviDgpKjgpL7gpJjgpY3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9Ijg3NDM4NTYwMDYzODQ4MjU5NzQiPiLgpLXgpL7gpIct4KSr4KS+4KSHIOCkoeClh+Ckn+CkviBTSU3gpL4g4KSo4KS+4KSY4KWN4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9saW1pdF9zbm9vemVkX2JvZHkiIG1zZ2lkPSI3MDM1NDkwMjc4Mjk4NDQxNzY3Ij4iPHhsaWZmOmcgaWQ9IlNJWkUiPiVzPC94bGlmZjpnPiDgpIngpLLgpY3gpLLgpYfgpJbgpL/gpKQg4KS44KWA4KSu4KS+IOCkreCkqOCljeCkpuCkviDgpKzgpKLgpYAg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9yZXN0cmljdGVkX3RpdGxlIiBtc2dpZD0iNTk2NTE1NzM2MTAzNjMyMTkxNCI+IuCkquClg+Ckt+CljeCkoOCkreClguCkruCkv+CkleCkviDgpKHgpYfgpJ/gpL4g4KSq4KWN4KSw4KSk4KS/4KSs4KSo4KWN4KSn4KS/4KSkIOCkl+CksOCkv+Ckj+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3Jlc3RyaWN0ZWRfYm9keSIgbXNnaWQ9IjY3NDE1MjEzMzA5OTc0NTI5OTAiPiLgpIXgpLXgpLDgpYvgpKcg4KS54KSf4KS+4KSJ4KSoIOCkm+ClgeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jZXJ0aWZpY2F0ZSIgbXNnaWQ9IjY1MTAwNDA0ODYwNDkyMzc2MzkiPiLgpLjgpYHgpLDgpJXgpY3gpLfgpL4g4KSq4KWN4KSw4KSu4KS+4KSj4KSq4KSk4KWN4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NlcnRpZmljYXRlX2lzX3ZhbGlkIiBtc2dpZD0iNjgyNTI2MzI1MDc3NDU2OTM3MyI+IuCkquCljeCksOCkruCkvuCko+CkquCkpOCljeCksCDgpK7gpL7gpKjgpY3gpK8g4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXNzdWVkX3RvIiBtc2dpZD0iNDU0MjM5NDgwMjc0OTIxMDMyIj4i4KSm4KWN4KS14KS+4KSw4KS+IOCknOCkvuCksOClgCDgpJfgpLDgpL/gpI/gpJXgpYs6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tbW9uX25hbWUiIG1zZ2lkPSIyMjMzMjA5Mjk5NDM0MTcyNjQ2Ij4i4KS44KS+4KSn4KS+4KSw4KSjIOCkqOCkvuCkrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdfbmFtZSIgbXNnaWQ9IjY5NzM1NjExOTA3NjIwODUyMzYiPiLgpLjgpILgpJfgpKDgpKg6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnX3VuaXQiIG1zZ2lkPSI3MjY1OTgxODkwNDIyMDcwMzgzIj4i4KS44KSC4KSX4KSg4KSo4KS+4KSk4KWN4KSu4KSVIOCkj+CkleCkvuCkhzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfYnkiIG1zZ2lkPSIyNjQ3NTg0OTg4MDU3NDgxNTY2Ij4i4KSm4KWN4KS14KS+4KSw4KS+IOCknOCkvuCksOClgCDgpJfgpLDgpL/gpI/gpJXgpYs6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idmFsaWRpdHlfcGVyaW9kIiBtc2dpZD0iODgxODg4NjEzNzU0NTk4MzExMCI+IuCkruCkvuCkqOCljeCkr+CkpOCkvjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfb24iIG1zZ2lkPSI1ODk1MDE3NDA0MzYxMzk3MjMyIj4i4KSc4KS+4KSw4KWAIOCkl+CksOCkv+Ckj+CkleClizoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHBpcmVzX29uIiBtc2dpZD0iMzY3NjI0Mjk0OTkxNTk1OTgyMSI+IuCkheCkteCkp+CkvyDgpLjgpK7gpL7gpKrgpY3gpKQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VyaWFsX251bWJlciIgbXNnaWQ9Ijc1ODgxNDA2NzY2MDg2MjQ5MyI+IuCkleCljeCksOCkriDgpLjgpILgpJbgpY3gpK/gpL46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZ2VycHJpbnRzIiBtc2dpZD0iNDUxNjAxOTYxOTg1MDc2MzA0OSI+IuCklOCkgeCkoOCkvuCkm+CkvuCkquCkueCksOClgjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGEyNTZfZmluZ2VycHJpbnQiIG1zZ2lkPSI0MzkxMjcxMjg2NDc3Mjc5MjYzIj4iU0hBLeClqOClq+ClrCDgpJTgpILgpKDgpL7gpJvgpL7gpKo6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhMV9maW5nZXJwcmludCIgbXNnaWQ9Ijc5MzAzMzAyMzUyNjk0MDQ1ODEiPiJTSEEtMSDgpJTgpILgpLLgpL7gpJvgpL7gpKo6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfY2hvb3Nlcl92aWV3X3NlZV9hbGwiIG1zZ2lkPSI0MjkyNTY5MzgzOTc2NjM2MjAwIj4i4KS44KSs4KWIIOCkueClh+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X2Nob29zZXJfdmlld19kaWFsb2dfdGl0bGVfZGVmYXVsdCIgbXNnaWQ9IjQ3MTAwMTM4NjQ5NzQwNDA2MTUiPiLgpJfgpKTgpL/gpLXgpL/gpKfgpL8g4KSb4KSo4KWM4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX2FjdGlvbl9wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iNTI0NzY4NDQzNTk3OTE0OTIxNiI+IuCkuOCkvuCkneClh+CkpuCkvuCksOClgCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0uLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2RldmljZV9sb2NrZWQiIG1zZ2lkPSIzMDkyNzAzNDQ4NjkwNjY5NzY4Ij4i4KSJ4KSq4KSV4KSw4KSjIOCksuCklSDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsaXN0X2RlbGltZXRlciIgbXNnaWQ9IjM5NzUxMTc1NzIxODU0OTQxNTIiPiIsICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbmRpbmciIG1zZ2lkPSIzMjQ1NjUzNjgxMDA4MjE4MDMwIj4i4KSq4KSg4KS+4KSJ4KSB4KSm4KWILi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoQnJvd3NlckRlZmF1bHQiIG1zZ2lkPSIyMDU3OTUxOTQ3Mjk3NjE0NzI1Ij4i4KSs4KWN4KSw4KS+4KSJ4KSc4KSwIOCkuOClgeCksOClgSDgpJfgpLDgpY3gpKjgpYcg4KS54KWLPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlNldHVwQ2FsbERlZmF1bHQiIG1zZ2lkPSI1ODM0OTQ4NDY5MjUzNzU4NTc1Ij4i4KSV4KSyIOCkuOCljeCkteClgOCkleCkvuCksCDgpJfgpLDgpY3gpKjgpYHgpLngpYHgpKjgpY3gpJs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfcmVzb2x2ZXJfdXNlX2Fsd2F5cyIgbXNnaWQ9IjgwMTc3NzA3NDc4MDE0OTQ5MzMiPiLgpLjgpKfgpYjgpIEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9yZXNvbHZlcl91c2Vfb25jZSIgbXNnaWQ9IjI0MDQ2NDQ3OTcxNDkxNzM3NTgiPiLgpI/gpIngpJ/gpL4g4KSu4KS+4KSk4KWN4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0NjE3MDUzODk4MTY3MTI3NDcxIj4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDIzOTI5MTI3MzQyMDE0MDEyMyI+IuCkq+Cli+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfbmFtZV9oZWFkcGhvbmVzIiBtc2dpZD0iODExOTk3MTg0MzgwMzQzOTExMCI+IuCkueClh+CkoeCkq+Cli+CkqOCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfbmFtZV9kb2NrX3NwZWFrZXJzIiBtc2dpZD0iNjI0MDYwMjk4MjI3NjU5MTg2NCI+IuCkoeCklSDgpLjgpY3gpKrgpL/gpJXgpLDgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X21lZGlhX3JvdXRlX25hbWVfaGRtaSIgbXNnaWQ9IjI0NTA5NzAzOTkwMjM0NzgwNTUiPiJIRE1JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9jYXRlZ29yeV9uYW1lIiBtc2dpZD0iMzcyMjgxMTE3NDAwMzg4Njk0NiI+IuCkquCljeCksOCko+CkvuCksuClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsdWV0b290aF9hMmRwX2F1ZGlvX3JvdXRlX25hbWUiIG1zZ2lkPSI4NTc1NjI0MDMwNDA2NzcxMDE1Ij4i4KSs4KWN4KSy4KWB4KSf4KWB4KSlIOCkheCkoeCkv+Ckr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpcmVsZXNzX2Rpc3BsYXlfcm91dGVfZGVzY3JpcHRpb24iIG1zZ2lkPSI5MDcwMzQ2NDI1MDIzOTc5NjUxIj4i4KSk4KS+4KSw4KSw4KS54KS/4KSkIOCkquCljeCksOCkpuCksOCljeCktuCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX2Nob29zZXJfZ3JvdXBpbmdfZG9uZSIgbXNnaWQ9Ijc5NjY0MzgzMDc3MjMzMTcxNjkiPiLgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9idXR0b25fY29udGVudF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU3NTg1NTM1NjcwNjUxNDUyNzYiPiLgpK7gpL/gpKHgpL/gpK/gpL7gpJXgpYsg4KSJ4KSk4KWN4KSq4KS+4KSm4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX3NjYW5uaW5nIiBtc2dpZD0iNzI3OTkwODc2MTc1ODI5Mzc4MyI+IuCkuOCljeCkleCljeCkr+CkvuCkqCDgpJfgpLDgpY3gpKbgpYggLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2Nvbm5lY3RpbmciIG1zZ2lkPSI2NDIyNTcxNzE2MDA3ODI1NDQwIj4i4KSc4KSh4KS+4KSoIOCkueClgeCkgeCkpuCliC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19hdmFpbGFibGUiIG1zZ2lkPSI2OTgzMjU4MDY3MTk0NjQ5MzkxIj4i4KSJ4KSq4KSy4KSs4KWN4KSnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX25vdF9hdmFpbGFibGUiIG1zZ2lkPSI2NzM5ODk5OTYyNjgxODg2NDAxIj4i4KSJ4KSq4KSy4KSs4KWN4KSnIOCkm+CliOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19pbl91c2UiIG1zZ2lkPSI0NTMzNzg2MDMxMDkwMTk4MDYzIj4i4KSq4KWN4KSw4KSv4KWL4KSX4KSu4KS+IOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9idWlsdF9pbl9kaXNwbGF5X25hbWUiIG1zZ2lkPSIyNTgzMTM0Mjk0MjkyNTYzOTQxIj4i4KSq4KWC4KSw4KWN4KS1LeCkqOCkv+CksOCljeCkruCkv+CkpCDgpLjgpY3gpJXgpY3gpLDgpL/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfaGRtaV9kaXNwbGF5X25hbWUiIG1zZ2lkPSIxNTU1MjY0NTU5MjI3NDcwMTA5Ij4iSERNSSDgpLjgpY3gpJXgpY3gpLDgpL/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X25hbWUiIG1zZ2lkPSI1MTQyMzY1OTgyMjcxNjIwNzE2Ij4i4KSG4KS14KSw4KSjICM8eGxpZmY6ZyBpZD0iSUQiPiUxJGQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV90aXRsZSIgbXNnaWQ9IjY1MjEyNDUxNzY3MjI1NzE3MiI+Ijx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IldJRFRIIj4lMiRkPC94bGlmZjpnPng8eGxpZmY6ZyBpZD0iSEVJR0hUIj4lMyRkPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IkRQSSI+JTQkZDwveGxpZmY6Zz4gZHBpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9zZWN1cmVfc3VmZml4IiBtc2dpZD0iNjAyMjExOTcwMjYyODU3MjA4MCI+Iiwg4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIyMjMwNTA2NDkyNDAzMjY1NTciPiLgpKTgpL7gpLDgpLDgpLngpL/gpKQg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIOCknOCli+CkoeCkv+Ckj+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDk4ODAyMDEyNDY0MTcwNjg1Ij4i4KSF4KSw4KWN4KSV4KWLIOCkieCkquCkleCksOCko+CkruCkviDgpK/gpYsg4KS44KWN4KSV4KWN4KSw4KS/4KSo4KSy4KWHIOCkpuClh+CkluCkvuCkh+CksOCkueClh+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX2Rpc2Nvbm5lY3QiIG1zZ2lkPSI2MTgzNzU0NDYzNTYxMTUzMzcyIj4i4KS14KS/4KSa4KWN4KSb4KWH4KSm4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VtZXJnZW5jeV9jYWxsX2xhYmVsIiBtc2dpZD0iNjg0OTQ2MTkyNTIzODMwNTMxIj4i4KSG4KSq4KSk4KSV4KS+4KSy4KWA4KSoIOCkleCksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iODg1MjAyMTQ2Nzg2ODIyMDYwOCI+IuCkouCkvuCkgeCkmuCkviDgpKzgpL/gpLDgpY3gpLjgpKjgpYEg4KSt4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiLgpJfgpLLgpKQg4KSi4KS+4KSB4KSa4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGFzc3dvcmQiIG1zZ2lkPSIyMzMzMjgxNzYyMTI4MTEzMTU3Ij4i4KSX4KSy4KSkIOCkquCkvuCkuOCkteCksOCljeCkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiLgpJfgpLLgpKQgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRkPC94bGlmZjpnPuCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3BhdHRlcm5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzk4OTc4NjExNjgzMDc1ODY4Ij4i4KSG4KSr4KWN4KSo4KWLIOCkouCkvuCkgeCkmuCkviDgpJXgpYvgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiJTSU0gUElOIOCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IlBJTiDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+IuCkquCkvuCkuOCkteCksOCljeCkoSDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4iU0lNIOCkleCkvuCksOCljeCkoSDgpIXgpLngpL/gpLLgpYcg4KSF4KS44KSV4KWN4KS34KSuIOCkm+ClpCDgpLjgpYHgpJrgpL7gpLDgpYEg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyBQVUsg4KSV4KWL4KShIOCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQgIOCkteCkv+CkteCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KS14KS+4KS54KSV4KSy4KS+4KSIIOCkuOCkruCljeCkquCksOCljeCklSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i4KSH4KSa4KWN4KSb4KS/4KSkIFBJTiDgpJXgpYvgpKEg4KSq4KWN4KSw4KS14KS/4KS34KWN4KSf4KS/IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLgpK7gpKjgpKrgpLDgpY3gpKbgpYsgUElOIOCkleCli+CkoSDgpKjgpL/gpLbgpY3gpJrgpL/gpKQg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJTSU0g4KSV4KS+4KSw4KWN4KShIOCkheCkqOCksuCklSDgpJfgpLDgpY3gpKbgpYjigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiLgpJfgpLLgpKQgUElOIOCkleCli+CkoeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IuClqiDgpKbgpYfgpJbgpL8g4KWuIOCkteCkvuCknyDgpKjgpK7gpY3gpKzgpLAg4KSt4KSP4KSV4KWLIOCkj+CkieCkn+CkviBQSU4g4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyDgpJXgpYvgpKEg4KWuIOCkteCkn+CkviDgpKjgpK7gpY3gpKzgpLAg4KS14KS+IOCkuOCliyDgpK3gpKjgpY3gpKbgpL4g4KSs4KSi4KWAIOCkueClgeCkqOClgeCkquCksOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IlBVSyDgpJXgpYvgpKEg4KSq4KWB4KSoOuCkquCljeCksOCkpuCkvuCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQg4KSn4KWH4KSw4KWIIOCkquClgeCkqDrgpKrgpY3gpLDgpK/gpL7gpLjgpLngpLDgpYLgpLLgpYcgU0lN4KSy4KS+4KSIIOCkuOCljeCkpeCkvuCkr+ClgCDgpLDgpYLgpKrgpK7gpL4g4KSo4KS/4KS34KWN4KSV4KWN4KSw4KS/4KSvIOCkl+CksOCkv+CkpuCkv+CkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4iUElOIOCkleCli+CkoeCkueCksOClgiDgpK7gpYfgpLIg4KSW4KS+4KSP4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4i4KSo4KS/4KSV4KWIIOCkp+Clh+CksOCliCDgpKLgpL7gpIHgpJrgpL4g4KSV4KWL4KS44KS/4KS44KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMTEwMDU1MTI2MTI2NTUwNjQ0OCI+IuCkheCkqOCksuCklSDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/LCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsgR29vZ2xlIOCkluCkvuCkpOCkvuCkleCliyDgpLjgpL7gpKUg4KS44KS+4KSH4KSoIOCkh+CkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+IuCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKjgpL7gpK4gKOCkh+CkruClh+CksikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iOTA1NzI4OTEwMzgyNzI5ODU0OSI+IuCkquCkvuCkuOCkteCksOCljeCkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI1MzU1OTA0NTgyNjc0MDU0NzAyIj4i4KS44KS+4KSH4KSoIOCkh+CkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+IuCkheCkruCkvuCkqOCljeCkryDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpKjgpL7gpK4g4KS14KS+IOCkquCkvuCkuOCkteCksOCljeCkoeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2FjY291bnRfcmVjb3ZlcnlfaGludCIgbXNnaWQ9IjU2OTA3MDkxMzI4NDE3NTI5NzQiPiLgpJXgpYcg4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKjgpL7gpK4g4KS14KS+IOCkquCkvuCkuOCkteCksOCljeCkoSDgpKzgpL/gpLDgpY3gpLjgpKjgpYHgpK3gpK/gpYs/XG4iPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIg4KSu4KS+IOCknOCkvuCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IuCkluCkvuCkpOCkviDgpJzgpL7gpIHgpJog4KS54KWB4KSB4KSm4KWI4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsgUElOIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWBIOCkreCkj+CkleCliyDgpJvgpaQgXG5cbjx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSk4KSq4KS+4KSI4KSB4KSVIOCkquCkvuCkuOCkteCksOCljeCkoSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSX4KSy4KSkIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpK3gpI/gpJXgpYsg4KSb4KWkIFxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KS44KWH4KSV4KWH4KSo4KWN4KSh4KSu4KS+IOCkq+Clh+CksOCkvyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSF4KSo4KSy4KSVIOCkouCkvuCkgeCkmuCkviDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJbgpL/gpJrgpY3gpKjgpYEg4KSt4KSP4KSV4KWLIOCkm+ClpCBcblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSV4KWL4KS44KS/4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpLLgpL7gpIgg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqCDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJXgpYvgpLjgpL/gpLgg4KSX4KSw4KWN4KSo4KWBIOCkreCkj+CkleCliyDgpJvgpaQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KSq4KSb4KS/IOCkpeCkqiDgpIXgpLjgpKvgpLIg4KSq4KWN4KSw4KSv4KS+4KS44KS54KSw4KWCLCDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSkIOCkleCkvuCksOCljeCkr+CktuCkvuCksuCkvuCkruCkviDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KSX4KSw4KS/4KSo4KWHIOCkmyDgpLAg4KS44KSs4KWIIOCkquCljeCksOCkr+Cli+CklyDgpKHgpYfgpJ/gpL4g4KS54KSw4KS+4KSJ4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQwNTEwMTU5NDMwMzgxOTk5MTAiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSX4KSy4KSk4KS44KSB4KSXIOCkq+Cli+CkqOCksuCkvuCkiCDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJXgpYvgpLjgpL/gpLgg4KSX4KSw4KWN4KSo4KWBIOCkreCkr+Cli+ClpCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgpKrgpJvgpL8g4KSl4KSqIOCkheCkuOCkq+CksiDgpJXgpYvgpLjgpL/gpLjgpLngpLDgpYIsIOCkq+Cli+CkqOCksuCkvuCkiCDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKQg4KSV4KS+4KSw4KWN4KSv4KS24KS+4KSy4KS+4KSu4KS+IOCkquClgeCkqOCkg+CkuOClh+CknyDgpJfgpLDgpL/gpKjgpYcg4KSbIOCksCDgpLjgpKzgpYgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkoeClh+Ckn+CkviDgpLngpLDgpL7gpIngpKjgpYcg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNzI5OTYyNjkxNDg0ODM2MzciPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSf4KWN4KSv4KSs4KWN4KSy4KWH4KSf4KSy4KS+4KSIIOCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4KSq4KSf4KSVIOCkquCljeCksOCkr+CkvuCkuCDgpJfgpLDgpY3gpKjgpYEg4KSt4KSP4KSV4KWLIOCkm+ClpCDgpIXgpKwg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSy4KS+4KSIIOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpCDgpJXgpL7gpLDgpY3gpK/gpLbgpL7gpLLgpL7gpK7gpL4g4KSq4KWB4KSo4KSD4KS44KWH4KSfIOCkl+CksOCkv+CkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ4MTc2Mjc0NzQ0MTk0NzE1MTgiPiLgpKTgpKrgpL7gpIjgpILgpLLgpYcg4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyDgpKvgpYvgpKggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSo4KWHIOCkquCljeCksOCkr+CkpOCljeCkqCDgpJfgpLDgpY3gpKjgpYHgpK3gpK/gpYvgpaQg4KSF4KSsIOCkq+Cli+CkqCDgpKvgpY3gpK/gpL7gpJXgpY3gpJ/gpY3gpLDgpL8g4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSk4KSu4KS+IOCkquClgeCkqOCkg+CkuOClh+CknyDgpLngpYHgpKjgpYcg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IuCkpOCkquCkvuCkiOCkguCksuClhyDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIOCkhuCkq+CljeCkqOCliyDgpIXgpKjgpLLgpJUg4KSi4KS+4KSB4KSa4KS+IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJXgpYvgpLDgpY3gpKjgpYHgpK3gpK/gpYvgpaQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KS14KS/4KSr4KSyIOCkquCljeCksOCkr+CkpOCljeCkqOCkueCksOClgiDgpKrgpJvgpL8sIOCkpOCkquCkvuCkiOCkguCksuCkvuCkiCDgpIbgpKvgpY3gpKjgpYsg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkh+CkruClh+CksiDgpJbgpL7gpKTgpL4g4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClh+CksCDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIOCkuOCli+Ckp+Ckv+CkqOClhyDgpJvgpaRcblxuIOCkq+Clh+CksOCkvyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkueCksOClguCkruCkvuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkhuCkq+CljeCkqOCliyDgpIXgpKjgpLLgpJUg4KSi4KS+4KSB4KSa4KS+IOCkl+CksuCkpCDgpLDgpYLgpKrgpK7gpL4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4KSq4KSf4KSVIOCkpOCkvuCkqOCljeCkqOClgSDgpK3gpI/gpJXgpYsg4KSb4KWkIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkp+Clh+CksOCliCDgpIXgpLjgpKvgpLIg4KSq4KWN4KSw4KSv4KS+4KS44KS54KSw4KWC4KSq4KSb4KS/LCDgpKTgpKrgpL7gpIjgpIHgpLLgpL7gpIgg4KSP4KSJ4KSf4KS+IOCkh+CkruClh+CksiDgpJbgpL7gpKTgpL7gpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClh+CksCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSr4KWL4KSoIOCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KS44KWL4KSn4KS/4KSo4KWHIOCkm+ClpFxuXG4g4KSr4KWH4KSw4KS/IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i4KS54KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2FmZV9tZWRpYV92b2x1bWVfd2FybmluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMjQxNjE5Mzk0NzU0NzgwNjYiPiLgpIbgpLXgpL7gpJwg4KS44KSy4KWN4KSy4KS+4KS5IOCkpuCkv+Ckj+CkleCliyDgpKTgpLngpK3gpKjgpY3gpKbgpL4g4KSu4KS+4KSl4KS/ICDgpKzgpKLgpL7gpIngpKjgpYcg4KS54KWLP1xu4KSg4KWC4KSy4KWLIOCkhuCkteCkvuCknOCkruCkviDgpLjgpYHgpKjgpY3gpKbgpL4g4KSy4KS+4KSu4KWLIOCkuOCkruCkr+CkleCliyDgpLLgpL7gpJfgpL8g4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkuOClgeCkqOCljeCkqOClhyDgpLbgpJXgpY3gpKTgpYDgpLLgpL7gpIgg4KSW4KSk4KWN4KSk4KSuIOCkquCkvuCksOCljeCkqCDgpLjgpJXgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb250aW51ZV90b19lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjE2MjY0MjczNzIzMTYwNzAyNTgiPiLgpIngpKrgpLLgpKzgpY3gpKfgpKTgpL4g4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCljeCkqCDgpKbgpYHgpIjgpLXgpJ/gpL4g4KSU4KSC4KSy4KS+4KS54KSw4KWC4KSy4KWHIOCkpeCkv+CkmuCkv+CksOCkueCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZW5hYmxlZCIgbXNnaWQ9IjEzODE5NzIwNDg1NjQ1NDc2ODUiPiLgpKrgpLngpYHgpIHgpJog4KS44KSV4KWN4KS34KSuIOCkl+CksOCkv+Ckj+CkleCli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9hY2Nlc3NpYmlsaXR5X2NhbmNlbGVkIiBtc2dpZD0iMzgzMzkyMzI1Nzk2NjYzNTY3MyI+IuCkquCkueClgeCkgeCkmuCkr+Cli+Ckl+CljeCkr+CkpOCkviDgpLDgpKbgpY3gpKYg4KSX4KSw4KS/4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlcl9zd2l0Y2hlZCIgbXNnaWQ9IjM3NjgwMDY3ODMxNjY5ODQ0MTAiPiLgpIXgpLngpL/gpLLgpYfgpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IDx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im93bmVyX25hbWUiIG1zZ2lkPSIyNzE2NzU1NDYwMzc2MDI4MTU0Ij4i4KSu4KS+4KSy4KS/4KSVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXJyb3JfbWVzc2FnZV90aXRsZSIgbXNnaWQ9IjQ1MTAzNzMwODMwODI1MDAxOTUiPiLgpKTgpY3gpLDgpYHgpJ/gpL8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbm9fcmVzdHJpY3RlZF9hY2NvdW50cyIgbXNnaWQ9IjU3Mzk0NjMyNDk2NzM3Mjc3MzYiPiLgpKrgpY3gpLDgpKTgpL/gpKzgpKjgpY3gpKfgpL/gpKQg4KSq4KWN4KSw4KWL4KSr4KS+4KSH4KSy4KS54KSw4KWC4KSV4KWLIOCksuCkvuCkl+CkvyDgpK/gpLgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KWHIOCkluCkvuCkpOCkvuCkueCksOClgiDgpLjgpK7gpLDgpY3gpKXgpKgg4KSX4KSw4KWN4KSm4KWI4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX25vdF9mb3VuZCIgbXNnaWQ9IjM0MjkxNDE4NTM0OTg5MjczNzkiPiLgpK/gpLgg4KSV4KS+4KSw4KWN4KSvIOCkuOCkruCljeCkueCkvuCksuCkqOClhyDgpJXgpYHgpKjgpYgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkreClh+Ckn+Ckv+Ckj+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJldm9rZSIgbXNnaWQ9IjU0MDQ0NzkxODUyMjgyNzE1ODYiPiLgpLDgpKbgpY3gpKYg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMCIgbXNnaWQ9Ijc4NzU0Mjc0ODk0MjA4MjE3OTMiPiJJU08gQTAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2ExIiBtc2dpZD0iMzc2MDczNDQ5OTA1MDg3NTM1NiI+IklTTyBBMSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTIiIG1zZ2lkPSI1OTczMjY2Mzc4MDIwMTQ0MzgyIj4iSVNPIEEyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMyIgbXNnaWQ9IjEzNzM0MDcxMDU2ODczMDA4ODQiPiJJU08gQTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E0IiBtc2dpZD0iNjY4OTc3MjgwNzk4MjU5NzI1NCI+IklTTyBBNCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTUiIG1zZ2lkPSI1MzUzNTQ5NjUyMDE1NzQxMDQwIj4iSVNPIEE1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNiIgbXNnaWQ9Ijg1ODUwMzgwNDg2NzQ5MTE5MDciPiJJU08gQTYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E3IiBtc2dpZD0iNjY0MTgzNjcxNjk2MzgzOTExOSI+IklTTyBBNyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTgiIG1zZ2lkPSI3NTcxMTM5NDM3NDY1NjkzMzU1Ij4iSVNPIEE4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hOSIgbXNnaWQ9IjEzNzg0NTU4OTE5NTcxMTUwNzkiPiJJU08gQTkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2ExMCIgbXNnaWQ9IjI0ODA3NDc0NTc0Mjk0NzUzNDQiPiJJU08gQTEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMCIgbXNnaWQ9IjM5NjU5MzUwOTc2NjExMDgwMzkiPiJJU08gQjAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IxIiBtc2dpZD0iMjUwNTc1MzI4NTAxMDExNTQzNyI+IklTTyBCMSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjIiIG1zZ2lkPSI4NzYzODc0NzA5ODU5NDU4NDUzIj4iSVNPIEIyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMyIgbXNnaWQ9IjQyMTA1MDY2ODgxOTE3NjQwNzYiPiJJU08gQjMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I0IiBtc2dpZD0iNTc0OTQwNDE2NTg4ODUyNjAzNCI+IklTTyBCNCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjUiIG1zZ2lkPSI3NjQwNjI3NDE0NjIxOTA0NzMzIj4iSVNPIEI1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNiIgbXNnaWQ9IjczNDI5ODg4NjQ3MTI3NDg1NDQiPiJJU08gQjYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I3IiBtc2dpZD0iNTA2OTg0NDA2NTIzNTM4MjQyOSI+IklTTyBCNyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjgiIG1zZ2lkPSI3MzE2ODE4OTIyMjc4Nzc5Nzc0Ij4iSVNPIEI4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iOSIgbXNnaWQ9IjU0MTQ3MjcwOTQwMjY1MzIzNDEiPiJJU08gQjkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IxMCIgbXNnaWQ9IjUyNTEyNTM3MzE4MzIwNDgxODUiPiJJU08gQjEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMCIgbXNnaWQ9IjQwMDMxMzgzNDI2NzE5NjQyMTciPiJJU08gQzAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MxIiBtc2dpZD0iMTkzNTE4ODA2MzM5MzU1MzAwOCI+IklTTyBDMSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzIiIG1zZ2lkPSIzMTk3MzA3OTY5NzEyMDY5OTA0Ij4iSVNPIEMyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMyIgbXNnaWQ9IjQzMzU4MjYwODczMjE5MTM1MDgiPiJJU08gQzMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M0IiBtc2dpZD0iMzc0NTYzOTU5ODI4MTAxNTAwNSI+IklTTyBDNCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzUiIG1zZ2lkPSI4MjY5NDU3NzY1ODIyNzkxMDEzIj4iSVNPIEM1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNiIgbXNnaWQ9IjU2NjY2NjEwNTI2MDM0NjkzMCI+IklTTyBDNiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzciIG1zZ2lkPSI4Njc4NDEzMTgwNzgyNjA4NDk4Ij4iSVNPIEM3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jOCIgbXNnaWQ9IjgzOTIzNzYyMDY2MjcwNDE3MzAiPiJJU08gQzgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M5IiBtc2dpZD0iOTE5MTYxMzM3MjMyNDg0NTQwNSI+IklTTyBDOSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzEwIiBtc2dpZD0iNzMyNzcwOTY5OTE4NDkyMDgyMiI+IklTTyBDMTAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGV0dGVyIiBtc2dpZD0iNDE5MTgwNTYxNTgyOTQ3Mjk1MyI+IuCkquCkpOCljeCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9ndnJubXRfbGV0dGVyIiBtc2dpZD0iNzg1MzM4MjE5MjY0OTQwNTUwNyI+IuCkuOCksOCkleCkvuCksOClgCDgpKrgpKTgpY3gpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGVnYWwiIG1zZ2lkPSI2Njk3OTgyOTg4MjgzODIzMTUwIj4i4KSV4KS+4KSo4KWC4KSo4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2p1bmlvcl9sZWdhbCIgbXNnaWQ9IjM3Mjc3NDM5Njk5MDI3NTg5NDgiPiJKdW5pb3IgTGVnYWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGVkZ2VyIiBtc2dpZD0iMjgxODcxNDY0ODk2NjAxMjM2Ij4iTGVkZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX3RhYmxvaWQiIG1zZ2lkPSI1Nzc1OTY2NDE2MzMzNTc4MTI3Ij4iVGFibG9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndyaXRlX2ZhaWxfcmVhc29uX2NhbmNlbGxlZCIgbXNnaWQ9IjcwOTEyNTgzNzgxMjE2Mjc2MjQiPiLgpLDgpKbgpY3gpKYg4KSX4KSw4KS/4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id3JpdGVfZmFpbF9yZWFzb25fY2Fubm90X3dyaXRlIiBtc2dpZD0iODEzMjUwNTQxNzkzNTMzNzcyNCI+IuCkuOCkvuCkruCkvuCkl+CljeCksOClgCDgpLLgpYfgpJbgpKjgpK7gpL4g4KSk4KWN4KSw4KWB4KSf4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2VudGVyX3BpbiIgbXNnaWQ9IjMzOTU5NTM0MjEzNjg0NzYxMDMiPiJQSU4g4KSq4KWN4KSw4KS14KS/4KS34KWN4KSf4KS/IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9vbGRfcGluIiBtc2dpZD0iMTQ2MjIwNjIyNTUxMjkxMDc1NyI+IuCkteCksOCljeCkpOCkruCkvuCkqCBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfbmV3X3BpbiIgbXNnaWQ9IjU5NTk2MDY2OTE2MTk5NTkxODQiPiLgpKjgpK/gpL7gpIEgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2NvbmZpcm1fcGluIiBtc2dpZD0iODUwMTUyMzgyOTYzMzE0NjIzOSI+IuCkqOCkr+CkvuCkgSBQSU4g4KSo4KS/4KS24KWN4KSa4KS/4KSkIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9jcmVhdGVfcGluIiBtc2dpZD0iODAxNzYwMDAwMDI2MzQ1MDMzNyI+IuCkquCljeCksOCkpOCkv+CkrOCkqOCljeCkp+CkueCksOClguCksuCkvuCkiCDgpKrgpLDgpL/gpLXgpLDgpY3gpKTgpKgg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpI/gpIngpJ/gpL4gUElOIOCkrOCkqOCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lcnJvcl9kb2VzbnRfbWF0Y2giIG1zZ2lkPSIyMjI0MjE0MTkwOTA2OTk0NTQ4Ij4iUElOIOCkueCksOClgiDgpK7gpYfgpLIg4KSW4KS+4KSP4KSo4KSo4KWN4KWkIOCkquClgeCkqOCkgyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2Vycm9yX3Rvb19zaG9ydCIgbXNnaWQ9IjgxNzM5ODI3NTYyNjU3Nzc3OTIiPiJQSU4g4KSF4KSk4KS/IOCkm+Cli+Ckn+CliyDgpK3gpK/gpYvgpaQg4KSV4KSu4KWN4KSk4KWA4KSu4KS+IOClqiDgpIXgpJngpY3gpJUg4KS54KWB4KSoIOCkhuCkteCktuCljeCkr+CklSDgpJvgpaQiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InJlc3RyX3Bpbl9jb3VudGRvd24iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0ODM1NjM5OTY5NTAzNzI5ODc0Ij4i4KSX4KSy4KSkIFBJTiDgpaQg4KWnIOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKrgpYHgpKjgpIMg4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODAzMDYwNzM0MzIyMzI4NzY1NCI+IuCkl+CksuCkpCBQSU4g4KWkIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKrgpYHgpKjgpIMg4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InRyYW5zaWVudF9uYXZpZ2F0aW9uX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjQ5MDc4NDQwNDM2MTExMjM0MjYiPiLgpKrgpJ/gpY3gpJ/gpL8g4KSm4KWH4KSW4KS/4KSo4KWHIOCkrOCkqOCkvuCkieCkqCDgpLjgpY3gpJXgpY3gpLDgpL/gpKjgpJXgpYsg4KSb4KWH4KSJ4KSu4KS+IOCkuOCljeCkteCkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0cmFuc2llbnRfbmF2aWdhdGlvbl9jb25maXJtYXRpb25fbG9uZyIgbXNnaWQ9IjgwNjE2ODU5MjA1MDgwODY2OTciPiLgpKrgpY3gpLDgpKPgpL7gpLLgpYAg4KSq4KSf4KWN4KSf4KS/IOCkpuClh+CkluCkv+CkqOClhyDgpKzgpKjgpL7gpIngpKgg4KS44KWN4KSV4KWN4KSw4KS/4KSo4KSV4KWLIOCkm+Clh+CkieCkrOCkvuCknyDgpLjgpY3gpLXgpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLW5sL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1ubC9zdHJpbmdzLnhtbAppbmRleCAzMGFmZWE3Li44NTk2ZWQyIDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLW5sL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtbmwvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IlR5cCBlZW4gUFVLLWNvZGUgZGllIDggY2lqZmVycyBvZiBsYW5nZXIgaXMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IlV3IFNJTS1rYWFydCBpcyB2ZXJncmVuZGVsZCBtZXQgZGUgUFVLLWNvZGUuIFR5cCBkZSBQVUstY29kZSBvbSB0ZSBvbnRncmVuZGVsZW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iVm9lciBkZSBQVUsyLWNvZGUgaW4gb20gZGUgU0lNLWthYXJ0IHRlIG9udGdyZW5kZWxlbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiJNaXNsdWt0LiBTY2hha2VsIFNJTS9SVUlNLXZlcmdyZW5kZWxpbmcgaW4uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iVSBoZWVmdCBub2cgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHBvZ2luZyBvdmVyIHZvb3JkYXQgZGUgc2lta2FhcnQgd29yZHQgdmVyZ3JlbmRlbGQuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4iVSBoZWVmdCBub2cgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHBvZ2luZ2VuIG92ZXIgdm9vcmRhdCBkZSBzaW1rYWFydCB3b3JkdCB2ZXJncmVuZGVsZC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+Iklua29tZW5kZSBiZWxsZXItaWQiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IkhpZXJtZWUga2FuIGRlIGFwcCBTdXJmYWNlRmxpbmdlci1mdW5jdGllcyBvcCBsYWFnIG5pdmVhdSBnZWJydWlrZW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4iZnJhbWVidWZmZXIgbGV6ZW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4iSGllcm1lZSBrYW4gZGUgYXBwIGRlIGluaG91ZCB2YW4gZGUgZnJhbWVidWZmZXIgbGV6ZW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4idG9lZ2FuZyBrcmlqZ2VuIHRvdCBJbnB1dEZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4iSGllcm1lZSBrYW4gZGUgYXBwIElucHV0Rmxpbmdlci1mdW5jdGllcyBvcCBsYWFnIG5pdmVhdSBnZWJydWlrZW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJ3aWZpLWRpc3BsYXlzIGNvbmZpZ3VyZXJlbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IkRlIGFwcCB0b2VzdGFhbiB3aWZpLWRpc3BsYXlzIHRlIGNvbmZpZ3VyZXJlbiBlbiBoaWVybWVlIHZlcmJpbmRpbmcgdGUgbWFrZW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiJ3aWZpLWRpc3BsYXlzIGJlaGVyZW4iPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IkVlbiBhcHAgc2VsZWN0ZXJlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+IkthbiA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+IG5pZXQgc3RhcnRlbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IkRlbGVuIG1ldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiJEZWxlbiBtZXQgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJTY2h1aWZncmVlcC4gVGlra2VuIGVuIGJsaWp2ZW4gYWFucmFrZW4uIjwvc3RyaW5nPgpAQCAtMTQ4Miw3ICsxNDkwLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfbWVkaWFfcm91dGVfbmFtZV9oZG1pIiBtc2dpZD0iMjQ1MDk3MDM5OTAyMzQ3ODA1NSI+IkhETUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX2NhdGVnb3J5X25hbWUiIG1zZ2lkPSIzNzIyODExMTc0MDAzODg2OTQ2Ij4iU3lzdGVlbSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImJsdWV0b290aF9hMmRwX2F1ZGlvX3JvdXRlX25hbWUiIG1zZ2lkPSI4NTc1NjI0MDMwNDA2NzcxMDE1Ij4iQmx1ZXRvb3RoLWF1ZGlvIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0id2lyZWxlc3NfZGlzcGxheV9yb3V0ZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjkwNzAzNDY0MjUwMjM5Nzk2NTEiPiJEcmFhZGxvemUgZGlzcGxheSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpcmVsZXNzX2Rpc3BsYXlfcm91dGVfZGVzY3JpcHRpb24iIG1zZ2lkPSI5MDcwMzQ2NDI1MDIzOTc5NjUxIj4iRHJhYWRsb3plIHdlZXJnYXZlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfY2hvb3Nlcl9ncm91cGluZ19kb25lIiBtc2dpZD0iNzk2NjQzODMwNzcyMzMxNzE2OSI+IkdlcmVlZCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX2J1dHRvbl9jb250ZW50X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTc1ODU1MzU2NzA2NTE0NTI3NiI+Ik1lZGlhLXVpdHZvZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfc2Nhbm5pbmciIG1zZ2lkPSI3Mjc5OTA4NzYxNzU4MjkzNzgzIj4iU2Nhbm5lbi4uLiI8L3N0cmluZz4KQEAgLTE0OTUsNyArMTUwMyw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X25hbWUiIG1zZ2lkPSI1MTQyMzY1OTgyMjcxNjIwNzE2Ij4iT3ZlcmxheSA8eGxpZmY6ZyBpZD0iSUQiPiUxJGQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV90aXRsZSIgbXNnaWQ9IjY1MjEyNDUxNzY3MjI1NzE3MiI+Ijx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IldJRFRIIj4lMiRkPC94bGlmZjpnPng8eGxpZmY6ZyBpZD0iSEVJR0hUIj4lMyRkPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IkRQSSI+JTQkZDwveGxpZmY6Zz4gZHBpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9zZWN1cmVfc3VmZml4IiBtc2dpZD0iNjAyMjExOTcwMjYyODU3MjA4MCI+IiwgYmV2ZWlsaWdkIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIyMjMwNTA2NDkyNDAzMjY1NTciPiJEcmFhZGxvemUgZGlzcGxheSBpcyBhYW5nZXNsb3RlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfZGlzcGxheV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMjIzMDUwNjQ5MjQwMzI2NTU3Ij4iRHJhYWRsb3plIHdlZXJnYXZlIGlzIGFhbmdlc2xvdGVuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iNDQ5ODgwMjAxMjQ2NDE3MDY4NSI+IkRpdCBzY2hlcm0gd29yZHQgb3AgZWVuIGFuZGVyIGFwcGFyYWF0IHdlZXJnZWdldmVuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl9kaXNjb25uZWN0IiBtc2dpZD0iNjE4Mzc1NDQ2MzU2MTE1MzM3MiI+IlZlcmJpbmRpbmcgdmVyYnJla2VuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW1lcmdlbmN5X2NhbGxfbGFiZWwiIG1zZ2lkPSI2ODQ5NDYxOTI1MjM4MzA1MzEiPiJOb29kb3Byb2VwIjwvc3RyaW5nPgpAQCAtMTY1MCw0ICsxNjU4LDE1IEBACiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJQcm9iZWVyIGhldCBsYXRlciBvcG5pZXV3Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IlZlZWcgb21sYWFnIHZhbmFmIGRlIGJvdmVua2FudCBvbSBoZXQgdm9sbGVkaWdlIHNjaGVybSB0ZSBzbHVpdGVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4iR2VyZWVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4iUm9uZGUgc2NodWlmcmVnZWxhYXIgdm9vciB1cmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiJSb25kZSBzY2h1aWZyZWdlbGFhciB2b29yIG1pbnV0ZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4iVXJlbiBzZWxlY3RlcmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4iTWludXRlbiBzZWxlY3RlcmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiJNYWFuZHJhc3RlciB2YW4gZGFnZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiJKYWFybGlqc3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+Ik1hYW5kIGVuIGRhZyBzZWxlY3RlcmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4iSmFhciBzZWxlY3RlcmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+Ijx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiBnZXNlbGVjdGVlcmQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiI8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiB2ZXJ3aWpkZXJkIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLXBsL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1wbC9zdHJpbmdzLnhtbAppbmRleCAwZTFiZWU5Li5hZWJmY2Y4IDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLXBsL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtcGwvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IldwaXN6IGtvZCBQVUsgc2vFgmFkYWrEhWN5IHNpxJkgeiBjbyBuYWptbmllaiA4IGN5ZnIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IkthcnRhIFNJTSBqZXN0IHphYmxva293YW5hIGtvZGVtIFBVSy4gV3Byb3dhZMW6IGtvZCBQVUssIGFieSBvZGJsb2tvd2HEhyBrYXJ0xJkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iV3Byb3dhZMW6IGtvZCBQVUsyLCBhYnkgb2RibG9rb3dhxIcga2FydMSZIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiJOaWUgdWRhxYJvIHNpxJkuIFfFgsSFY3ogYmxva2FkxJkga2FydHkgU0lNL1JVSU0uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iTWFzeiBqZXN6Y3plIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwcsOzYsSZLCB6YW5pbSBrYXJ0YSBTSU0gem9zdGFuaWUgemFibG9rb3dhbmEuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4iTWFzeiBqZXN6Y3plIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwcsOzYih5KSwgemFuaW0ga2FydGEgU0lNIHpvc3RhbmllIHphYmxva293YW5hLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iTmF6d2Egcm96bcOzd2N5IHByenkgcG/FgsSFY3plbmlhY2ggcHJ6eWNob2R6xIVjeWNoIjwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiJQb3p3YWxhIGFwbGlrYWNqaSBuYSB3eWtvcnp5c3RhbmllIGZ1bmtjamkgbmlza2llZ28gcG96aW9tdSB1c8WCdWdpIFN1cmZhY2VGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+ImN6eXRhbmllIGJ1Zm9yYSByYW1raSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJQb3p3YWxhIGFwbGlrYWNqaSBuYSBvZGN6eXQgemF3YXJ0b8WbY2kgYnVmb3JhIHJhbWtpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+ImRvc3TEmXAgZG8gSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IlplendhbGEgYXBsaWthY2ppIG5hIHd5a29yenlzdGFuaWUgbmlza29wb3ppb21vd3ljaCBmdW5rY2ppIHVzxYJ1Z2kgSW5wdXRGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4ia29uZmlndXJvd2FuaWUgd3nFm3dpZXRsYWN6eSBXaS1GaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IlplendhbGEgYXBsaWthY2ppIG5hIGtvbmZpZ3VyYWNqxJkgd3nFm3dpZXRsYWN6eSBXaS1GaSBpIMWCxIVjemVuaWUgeiBuaW1pLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4iemFyesSFZHphbmllIHd5xZt3aWV0bGFjemFtaSBXaS1GaSI8L3N0cmluZz4KQEAgLTEyMDQsNyArMTIxMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcmVxdWVuY3lfY29uZmxpY3RfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczNjM5MDcyMTM3ODc0NjkxNTEiPiJOYSBjemFzIHBvxYLEhWN6ZW5pYSB6IDx4bGlmZjpnIGlkPSJERVZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4gdGVsZWZvbiB6b3N0YW5pZSB0eW1jemFzb3dvIG9kxYLEhWN6b255IG9kIFdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2NoYXJhY3RlciIgbXNnaWQ9IjMzNjU1NTAxMjA2MTc3MDE3NDUiPiJXc3RhdyB6bmFrIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfdGl0bGUiIG1zZ2lkPSI3Mjk2NjEyNzgxMTI4OTE3NzE5Ij4iV3lzecWCYW5pZSB3aWFkb21vxZtjaSBTTVMiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9tZXNzYWdlIiBtc2dpZD0iMzg2Nzg5OTE2OTY1MTQ5NjQzMyI+IiZsdDtiJmd0Ozx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4mbHQ7L2ImZ3Q7IHd5c3nFgmEgd2llbGUgU01TLcOzdy4gQ2hjZXN6IHBvendvbGnEhyB0ZWogYXBsaWthY2ppIGRhbGVqIHd5c3nFgmHEhyBTTVMteT8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9tZXNzYWdlIiBtc2dpZD0iMzg2Nzg5OTE2OTY1MTQ5NjQzMyI+IkFwbGlrYWNqYSAmbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyB3eXN5xYJhIHdpZWxlIFNNUy3Ds3cuIENoY2VzeiBwb3p3b2xpxIcgdGVqIGFwbGlrYWNqaSBkYWxlaiB3eXN5xYJhxIcgU01TLXk/Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfeWVzIiBtc2dpZD0iMzY2MzcyNTk5Mzg1NTgxNjgwNyI+IlBvenfDs2wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzbXNfY29udHJvbF9ubyIgbXNnaWQ9IjYyNTQzODU2MTM5NTUzNDk4MiI+Ik9kbcOzdyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fbWVzc2FnZSIgbXNnaWQ9IjE2NDU0MzY0NjYyODUzMTA4NTUiPiImbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyBjaGNlIHd5c8WCYcSHIHdpYWRvbW/Fm8SHIGRvICZsdDtiJmd0Ozx4bGlmZjpnIGlkPSJERVNUX0FERFJFU1MiPiUyJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0Oy4iPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+Ild5YmllcnogYXBsaWthY2rEmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+Ik5pZSB1ZGHFgm8gc2nEmSB1cnVjaG9tacSHIGFwbGlrYWNqaSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4iVWRvc3TEmXBuaWogcHJ6ZXoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4iVWRvc3TEmXBuaWogcHJ6ZXogPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJVY2h3eXQgcHJ6ZXN1d255LiBEb3RrbmlqIGkgcHJ6eXRyenltYWouIjwvc3RyaW5nPgpAQCAtMTY1MCw0ICsxNjU4LDE1IEBACiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJTcHLDs2J1aiBwb25vd25pZSBww7PFum5pZWoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4iUHJ6ZXN1xYQgeiBnw7NyeSB3IGTDs8WCLCBieSB6YW1rbsSFxIcgcGXFgm55IGVrcmFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4iR290b3dlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4iS2/Fgm93eSBzdXdhayBnb2R6aW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+IktvxYJvd3kgc3V3YWsgbWludXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4iV3liaWVyeiBnb2R6aW55Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4iV3liaWVyeiBtaW51dHkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+IlNpYXRrYSBtaWVzacSZY3puYSB6IGRuaWFtaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTUyNDMzMTIwNzQzNjA1MjQwMyI+Ikxpc3RhIGxhdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iV3liaWVyeiBtaWVzacSFYyBpIGR6aWXFhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+Ild5Ymllcnogcm9rIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+Ild5YnJhxYJlxZsgPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4gdXN1bmnEmXRlIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtcHQtclBUL3N0cmluZ3MueG1sCmluZGV4IGYzYzQwMjAuLmUwZmJlMWMgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtcHQtclBUL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtcHQtclBUL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJJbnRyb2R1emEgdW0gUFVLIHF1ZSB0ZW5oYSA4IG91IG1haXMgYWxnYXJpc21vcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4iTyBzZXUgY2FydMOjbyBTSU0gZXN0w6EgYmxvcXVlYWRvIGNvbSBQVUsuIEludHJvZHV6YSBvIGPDs2RpZ28gUFVLIHBhcmEgZGVzYmxvcXVlw6EtbG8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iSW50cm9kdXphIG8gUFVLMiBwYXJhIGRlc2Jsb3F1ZWFyIG8gY2FydMOjbyBTSU0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iQcOnw6NvIHNlbSDDqnhpdG8uIEF0aXZlIG8gYmxvcXVlaW8gZG8gU0lNL1JVSU0uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iVGVtIG1haXMgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHRlbnRhdGl2YSBhbnRlcyBkZSBvIGNhcnTDo28gU0lNIGZpY2FyIGJsb3F1ZWFkby4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJUZW0gbWFpcyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gdGVudGF0aXZhcyBhbnRlcyBkZSBvIGNhcnTDo28gU0lNIGZpY2FyIGJsb3F1ZWFkby4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IklEIGRvIEF1dG9yIGRhIENoYW1hZGEiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IlBlcm1pdGUgw6AgYXBsaWNhw6fDo28gdXRpbGl6YXIgZnVuY2lvbmFsaWRhZGVzIGRlIFN1cmZhY2VGbGluZ2VyIGRlIG7DrXZlbCBpbmZlcmlvci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJsZXIgbWVtw7NyaWEgaW50ZXJtw6lkaWEgZGUgZm90b2dyYW1hcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJQZXJtaXRlIMOgIGFwbGljYcOnw6NvIGxlciBvIGNvbnRlw7pkbyBkYSBtZW3Ds3JpYSBpbnRlcm3DqWRpYSBkZSBmb3RvZ3JhbWFzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+ImFjZWRlciBhIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJQZXJtaXRlIHF1ZSBhIGFwbGljYcOnw6NvIHV0aWxpemUgZnVuY2lvbmFsaWRhZGVzIGRlIElucHV0RmxpbmdlciBkZSBuw612ZWwgaW5mZXJpb3IuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJjb25maWd1cmFyIHZpc29yZXMgV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJQZXJtaXRlIHF1ZSBhIGFwbGljYcOnw6NvIHNlIGNvbmZpZ3VyZSBlIHNlIGxpZ3VlIGEgdmlzb3JlcyBXaS1GaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+ImNvbnRyb2xhciB2aXNvcmVzIFdpLUZpIjwvc3RyaW5nPgpAQCAtMTQxNCw2ICsxNDIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRW50ZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiJFc2NvbGhlciB1bWEgYXBsaWNhw6fDo28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiJOw6NvIGZvaSBwb3Nzw612ZWwgaW5pY2lhciA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4iUGFydGlsaGFyIGNvbToiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4iQ29tcGFydGlsaGFyIGNvbSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+IkJhcnJhIGRlc2xpemFudGUuIFRvcXVlICZhbXA7IG7Do28gc29sdGUuIjwvc3RyaW5nPgpAQCAtMTY1MCw0ICsxNjU4LDE1IEBACiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJUZW50ZSBub3ZhbWVudGUgbWFpcyB0YXJkZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJEZXNsaXplIHJhcGlkYW1lbnRlIHBhcmEgYmFpeG8gcGFyYSBzYWlyIGRvIGVjcsOjIGludGVpcm8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiJDb25jbHXDrWRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4iQ29udHJvbG8gZGUgZGVzbGl6ZSBjaXJjdWxhciBkYXMgaG9yYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+IkNvbnRyb2xvIGRlIGRlc2xpemUgY2lyY3VsYXIgZG9zIG1pbnV0b3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4iU2VsZWNpb25hciBob3JhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IlNlbGVjaW9uYXIgbWludXRvcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4iR3JlbGhhIGRlIGRpYXMgZG8gbcOqcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTUyNDMzMTIwNzQzNjA1MjQwMyI+Ikxpc3RhIGRlIGFub3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IlNlbGVjaW9uYXIgbcOqcyBlIGRpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+IlNlbGVjaW9uYXIgYW5vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+Ijx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiBzZWxlY2lvbmFkbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+Ijx4bGlmZjpnIGlkPSJLRVkiPiUxJHM8L3hsaWZmOmc+IGVsaW1pbmFkbyI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1wdC9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtcHQvc3RyaW5ncy54bWwKaW5kZXggMTVhNjEzMC4uMWM1MTdhYiAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1wdC9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLXB0L3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJEaWdpdGUgdW0gUFVLIGNvbSBvaXRvIG7Dum1lcm9zIG91IG1haXMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+Ik8gc2V1IGNhcnTDo28gU0lNIGVzdMOhIGJsb3F1ZWFkbyBwb3IgdW0gUFVLLiBEaWdpdGUgbyBjw7NkaWdvIFBVSyBwYXJhIGRlc2Jsb3F1ZcOhLWxvLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IkRpZ2l0ZSBvIFBVSzIgcGFyYSBkZXNibG9xdWVhciBvIGNhcnTDo28gU0lNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+IkZhbGhhLiBBdGl2ZSBvIGJsb3F1ZWlvIGRvIFNJTS9SLVVJTS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiJUZW50YXRpdmFzIHJlc3RhbnRlczogPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+LiBDYXNvIG8gY8OzZGlnbyBjb3JyZXRvIG7Do28gc2VqYSBkaWdpdGFkbywgbyBTSU0gc2Vyw6EgYmxvcXVlYWRvLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+IlRlbnRhdGl2YXMgcmVzdGFudGVzOiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4uIENhc28gbyBjw7NkaWdvIGNvcnJldG8gbsOjbyBzZWphIGRpZ2l0YWRvLCBvIFNJTSBzZXLDoSBibG9xdWVhZG8uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiJJRCBkbyBjaGFtYWRvciBkZSBlbnRyYWRhIjwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiJQZXJtaXRlIHF1ZSBvIGFwbGljYXRpdm8gdXNlIHJlY3Vyc29zIGNvbSBiYWl4b3MgbsOtdmVpcyBkZSBTdXJmYWNlRmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJsZXIgbyBidWZmZXIgZG8gZnJhbWUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4iUGVybWl0ZSBxdWUgbyBhcGxpY2F0aXZvIGxlaWEgbyBjb250ZcO6ZG8gZG8gYnVmZmVyIGRlIGZyYW1lLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+ImFjZXNzYXIgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IlBlcm1pdGUgcXVlIG8gYXBsaWNhdGl2byB1c2UgcmVjdXJzb3MgY29tIGJhaXhvcyBuw612ZWlzIGRlIElucHV0RmluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4iY29uZmlndXJhciBtb25pdG9yZXMgV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJQZXJtaXRlIHF1ZSBvIGFwbGljYXRpdm8gY29uZmlndXJlIGUgY29uZWN0ZSBhIG1vbml0b3JlcyBXaS1GaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+ImNvbnRyb2xhciBtb25pdG9yZXMgV2ktRmkiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IlNlbGVjaW9uZSB1bSBhcGxpY2F0aXZvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4iTsOjbyBmb2kgcG9zc8OtdmVsIGluaWNpYXIgbyA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4iQ29tcGFydGlsaGFyIGNvbSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiJDb21wYXJ0aWxoYXIgY29tIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iUmVjdXJzbyBkZXNsaXphbnRlLiBUb3F1ZSBlIHNlZ3VyZS4iPC9zdHJpbmc+CkBAIC0xNjQ5LDUgKzE2NTcsMTYgQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NzMwODY4OTIwNzQyOTUyODE3Ij4iVGVudGUgbm92YW1lbnRlIGVtIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHNlZ3VuZG9zIjwvaXRlbT4KICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+IlRlbnRlIG5vdmFtZW50ZSBtYWlzIHRhcmRlIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IkRlc2xpemUgcGFyYSBiYWl4byBwYXJhIHNhaXIgZGEgdGVsYSBpbnRlaXJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IkRlc2xpemUgZGUgY2ltYSBwYXJhIGJhaXhvIHBhcmEgc2FpciBkYSB0ZWxhIGludGVpcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IkNvbmNsdcOtZG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiJDb250cm9sZSBkZXNsaXphbnRlIGNpcmN1bGFyIGRhcyBob3JhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4iQ29udHJvbGUgZGVzbGl6YW50ZSBjaXJjdWxhciBkb3MgbWludXRvcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiJTZWxlY2lvbmUgYXMgaG9yYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiJTZWxlY2lvbmUgb3MgbWludXRvcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4iR3JhZGUgbWVuc2FsIGRlIGRpYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiJMaXN0YSBkZSBhbm9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2RheSIgbXNnaWQ9Ijc3NzQ3NTk2MDQ3MDE3NzMzMzIiPiJTZWxlY2lvbmUgbyBtw6pzIGUgbyBkaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiJTZWxlY2lvbmUgbyBhbm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+IHNlbGVjaW9uYWRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4gZXhjbHXDrWRvIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLXJtL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1ybS9zdHJpbmdzLnhtbAppbmRleCA5MTU0NjIxLi40OGZmMmE1IDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLXJtL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtcm0vc3RyaW5ncy54bWwKQEAgLTU3LDYgKzU3LDEwIEBACiAgICAgPHNraXAgLz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJWb3NzYSBjYXJ0YSBTSU0gw6ggYmxvY2NhZGEgY3VuIGluIFBVSy4gRW5kYXRhaSBpbCBQVUsgcGVyIGRlYmxvY2NhciBlbGxhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IkVuZGF0YWkgaWwgUFVLMiBwZXIgZGVibG9jY2FyIGxhIGNhcnRhIFNJTS4iPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgZW5hYmxlUGluICgyMDk0MTIwMjA5MDcyMDc5NTApIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGlucHVrX2F0dGVtcHRzOm9uZSAoNjU5NjI0NTI4NTgwOTc5MDE0MikgLS0+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGlucHVrX2F0dGVtcHRzOm90aGVyICg3NTMwNTk3ODA4MzU4Nzc0NzQwKSAtLT4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBpbWVpICgyNjI1NDI5ODkwODY5MDA1NzgyKSAtLT4KICAgICA8c2tpcCAvPgogICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIG1laWQgKDQ4NDEyMjEyMzc2ODEyNTQxOTUpIC0tPgpAQCAtNzgzLDYgKzc4NywxMCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4ibGVnZXIgaWwgcGFyYWN1bHAgZGEgZnJhbWUiPC9zdHJpbmc+CiAgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyICg0OTM3NDA1NTIxODA5NDU0NjgwKSAtLT4KICAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyICg1MzQ4NjM1MjcwNjg5NTUzODU3KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciAoMjEwNDg2NDk0MTIwMTIyNjYxNikgLS0+CisgICAgPHNraXAgLz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5ICg1NTk1NjYxNjk0NzQ2NzQyMTY4KSAtLT4KICAgICA8c2tpcCAvPgogICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5ICg3OTE2ODE1MTU4NjkwMjE4MDY1KSAtLT4KQEAgLTIyNjcsNiArMjI3NSw4IEBACiAgICAgPHNraXAgLz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiAoMjEyNTE2ODA1NzE5OTk0MTE5OSkgLS0+CiAgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciAoODYyNDYxODM2NTQ4MTEyNjY2OCkgLS0+CisgICAgPHNraXAgLz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGggKDgwNjY4ODA1NjE0MTEzMTgxOSkgLS0+CiAgICAgPHNraXAgLz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24gKDU2Mjc0MTEzODQ2MzgzODk3MzgpIC0tPgpAQCAtMjczNSw0ICsyNzQ1LDI2IEBACiAgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uICg3MjI3NDE2ODk0OTc5MDQ3NDY3KSAtLT4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24gKDg1NTQ5OTE0ODgwOTY2NjI1MDgpIC0tPgogICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgZG9uZV9sYWJlbCAoMjA5MzcyNjA5OTUwNTg5MjM5OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiAoNjY5ODE5OTE4Njg1OTczNjUxMikgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uICg4NjA2MDEwOTY2ODczNzkxMTkwKSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHNlbGVjdF9ob3VycyAoNjA0MzA3OTUxMTc2NjAwODI0NSkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBzZWxlY3RfbWludXRlcyAoMzk3NDM0NTYxNTkyMDMzNjA4NykgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBkYXlfcGlja2VyX2Rlc2NyaXB0aW9uICg4OTkwODQ3OTI1OTYxMjk3OTY4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHllYXJfcGlja2VyX2Rlc2NyaXB0aW9uICg1NTI0MzMxMjA3NDM2MDUyNDAzKSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHNlbGVjdF9kYXkgKDc3NzQ3NTk2MDQ3MDE3NzMzMzIpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Igc2VsZWN0X3llYXIgKDc5NTIwNTI4NjY5OTQxOTYxNzApIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgaXRlbV9pc19zZWxlY3RlZCAoOTQ5Njg3NDAxNjgyNDc2NjA4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGRlbGV0ZWRfa2V5ICg3NjU5NDc3ODg2NjI1NTY2NTkwKSAtLT4KKyAgICA8c2tpcCAvPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLXJvL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1yby9zdHJpbmdzLnhtbAppbmRleCBkYzVhMjExLi41OTM4MjM5IDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLXJvL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtcm8vc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IkludHJvZHVjZcWjaSB1biBjb2QgUFVLIGNhcmUgc8SDIGFpYsSDIDggY2lmcmUgc2F1IG1haSBtdWx0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJDYXJkdWwgU0lNIGVzdGUgYmxvY2F0IGN1IGNvZHVsIFBVSy4gSW50cm9kdWNlxaNpIGNvZHVsIFBVSyBwZW50cnUgYS1sIGRlYmxvY2EuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iSW50cm9kdWNlxaNpIGNvZHVsIFBVSzIgcGVudHJ1IGEgZGVibG9jYSBjYXJkdWwgU0lNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+Ik9wZXJhyJtpdW5lYSBudSBhIHJldciZaXQuIEFjdGl2YcibaSBibG9jYXJlYSBjYXJkdWx1aSBTSU0vUlVJTS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiJWLWEgbWFpIHLEg21hcyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gw65uY2VyY2FyZSBww6JuxIMgbGEgYmxvY2FyZWEgY2FyZHVsdWkgU0lNLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+IlYtYXUgbWFpIHLEg21hcyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gw65uY2VyY8SDcmkgcMOibsSDIGxhIGJsb2NhcmVhIGNhcmR1bHVpIFNJTS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IklEIGFwZWxhbnQgZGUgcHJpbWlyZSI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4iUGVybWl0ZSBhcGxpY2HFo2llaSBzxIMgdXRpbGl6ZXplIGZ1bmPFo2lpbGUgZGUgbml2ZWwgcmVkdXMgU3VyZmFjZUZsaW5nZXIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4iY2l0aXJlIHpvbsSDIHRhbXBvbiBkZSBjYWRyZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJQZXJtaXRlIGFwbGljYcWjaWVpIHPEgyBjaXRlYXNjxIMgY29uxaNpbnV0dWwgem9uZWktdGFtcG9uIGEgY2FkcnVsdWkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iYWNjZXMgbGEgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IlBlcm1pdGUgYXBsaWNhyJtpZWkgc8SDIHV0aWxpemV6ZSBmdW5jyJtpaWxlIGRlIG5pdmVsIHJlZHVzIElucHV0Rmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+ImNvbmZpZ3VyZWF6xIMgYWZpxZ9hamUgV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJQZXJtaXRlIGFwbGljYcWjaWVpIHPEgyBjb25maWd1cmV6ZSDFn2kgc8SDIHNlIGNvbmVjdGV6ZSBsYSBhZmnFn2FqZSBXaS1GaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+ImNvbnRyb2xlYXrEgyBhZmnFn2FqZSBXaS1GaSI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkVudGVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4iQWxlZ2XFo2kgbyBhcGxpY2HFo2llIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4iTnUgcy1hIHB1dHV0IGxhbnNhIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiJQZXJtaXRlxaNpIGFjY2VzdWwgcGVudHJ1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IlBlcm1pdGXFo2kgYWNjZXN1bCBwZW50cnUgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJNw6JuZXIgZ2xpc2FudC4gQXRpbmdlxaNpIMWfaSDFo2luZcWjaSBhcMSDc2F0LiI8L3N0cmluZz4KQEAgLTE2NTAsNCArMTY1OCwxNSBAQAogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4iUmXDrm5jZXJjYcibaSBtYWkgdMOicnppdSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJHbGlzYcibaSDDrm4gam9zIHBlbnRydSBhIGllyJlpIGRpbiBlY3JhbiBjb21wbGV0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4iVGVybWluYXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiJTZWxlY3RvciBjaXJjdWxhciBwZW50cnUgb3JlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiJTZWxlY3RvciBjaXJjdWxhciBwZW50cnUgbWludXRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IlNlbGVjdGHIm2kgb3JlbGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiJTZWxlY3RhyJtpIG1pbnV0ZWxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiJBZmnImWFyZSBwZSBsdW5pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4iTGlzdMSDIGRlIGFuaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iU2VsZWN0YcibaSBsdW5hIMiZaSB6aXVhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4iU2VsZWN0YcibaSBhbnVsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+Ijx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiBzZWxlY3RhdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+Ijx4bGlmZjpnIGlkPSJLRVkiPiUxJHM8L3hsaWZmOmc+IGEgZm9zdCDImXRlcnMiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtcnUvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLXJ1L3N0cmluZ3MueG1sCmluZGV4IDUzNDgwODQuLjFiOTE0ZGEgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtcnUvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1ydS9zdHJpbmdzLnhtbApAQCAtNTAsNiArNTAsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4i0JLQstC10LTQuNGC0LUgUFVLLdC60L7QtCDQuNC3IDgg0LjQu9C4INCx0L7Qu9C10LUg0YbQuNGE0YAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IlNJTS3QutCw0YDRgtCwINC30LDQsdC70L7QutC40YDQvtCy0LDQvdCwINGBINC/0L7QvNC+0YnRjNGOINC60L7QtNCwIFBVSy4g0JTQu9GPINGA0LDQt9Cx0LvQvtC60LjRgNC+0LLQutC4INCy0LLQtdC00LjRgtC1INC60L7QtCBQVUsuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4i0JTQu9GPINGA0LDQt9Cx0LvQvtC60LjRgNC+0LLQutC4IFNJTS3QutCw0YDRgtGLINCy0LLQtdC00LjRgtC1IFBVSzIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4i0J/RgNC+0LjQt9C+0YjQu9CwINC+0YjQuNCx0LrQsC4g0JLQutC70Y7Rh9C40YLQtSDQsdC70L7QutC40YDQvtCy0LrRgyBTSU0t0LrQsNGA0YLRiyDQuNC70Lgg0LrQsNGA0YLRiyBSLVVJTS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiLQntGB0YLQsNC70L7RgdGMINC/0L7Qv9GL0YLQvtC6OiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4uINCf0L7RgdC70LUg0Y3RgtC+0LPQviBTSU0t0LrQsNGA0YLQsCDQsdGD0LTQtdGCINC30LDQsdC70L7QutC40YDQvtCy0LDQvdCwLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+ItCe0YHRgtCw0LvQvtGB0Ywg0L/QvtC/0YvRgtC+0Lo6IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPi4g0J/QvtGB0LvQtSDRjdGC0L7Qs9C+IFNJTS3QutCw0YDRgtCwINCx0YPQtNC10YIg0LfQsNCx0LvQvtC60LjRgNC+0LLQsNC90LAuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiLQmNC00LXQvdGC0LjRhNC40LrQsNGG0LjRjyDQstGL0LfRi9Cy0LDRjtGJ0LXQs9C+INCw0LHQvtC90LXQvdGC0LAiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+ItCf0YDQuNC70L7QttC10L3QuNC1INGB0LzQvtC20LXRgiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0L3QuNC30LrQvtGD0YDQvtCy0L3QtdCy0YvQtSDRhNGD0L3QutGG0LjQuCBTdXJmYWNlRmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiLQp9GC0LXQvdC40LUg0LTQsNC90L3Ri9GFINCyINCx0YPRhNC10YDQtSDQutCw0LTRgNC+0LIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4i0J/RgNC40LvQvtC20LXQvdC40LUg0YHQvNC+0LbQtdGCINGB0YfQuNGC0YvQstCw0YLRjCDRgdC+0LTQtdGA0LbQsNC90LjQtSDQsdGD0YTQtdGA0LAg0YTRgNC10LnQvNC+0LIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4i0JTQvtGB0YLRg9C/INC6IElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiLQn9GA0LjQu9C+0LbQtdC90LjQtSDRgdC80L7QttC10YIg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC90LjQt9C60L7Rg9GA0L7QstC90LXQstGL0LUg0YTRg9C90LrRhtC40LggSW5wdXRGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4i0L3QsNGB0YLRgNCw0LjQstCw0YLRjCDRjdC60YDQsNC90YssINC/0L7QtNC60LvRjtGH0LXQvdC90YvQtSDRh9C10YDQtdC3IFdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i0J/RgNC40LvQvtC20LXQvdC40LUg0YHQvNC+0LbQtdGCINC/0L7QtNC60LvRjtGH0LDRgtGM0YHRjyDQuiDRjdC60YDQsNC90LDQvCDRgSDQv9C+0LzQvtGJ0YzRjiBXaS1GaSDQuCDQvdCw0YHRgtGA0LDQuNCy0LDRgtGMINC40YUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiLQo9C/0YDQsNCy0LvQtdC90LjQtSDQvNC+0L3QuNGC0L7RgNCw0LzQuCwg0L/QvtC00LrQu9GO0YfQtdC90L3Ri9C80Lgg0YfQtdGA0LXQtyBXaS1GaSI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiLQmtC70LDQstC40YjQsCDRgdC80LXQvdGLINGA0LXQs9C40YHRgtGA0LAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiLQmtC70LDQstC40YjQsCDQstCy0L7QtNCwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4i0JLRi9Cx0LXRgNC40YLQtSDQv9GA0LjQu9C+0LbQtdC90LjQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+ItCd0LUg0YPQtNCw0LvQvtGB0Ywg0LfQsNC/0YPRgdGC0LjRgtGMINC/0YDQuNC70L7QttC10L3QuNC1IFwiPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPlwiIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4i0J7RgtC60YDRi9GC0Ywg0LTQvtGB0YLRg9C/OiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiLQntGC0LrRgNGL0YLRjCDQtNC+0YHRgtGD0L8g0L/RgNC40LvQvtC20LXQvdC40Y4gXCI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+XCIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4i0J/QtdGA0LXRgtCw0YHQutC40LLQsNC10LzRi9C5INC30L3QsNGH0L7QuiDQsdC70L7QutC40YDQvtCy0LrQuC4g0J3QsNC20LzQuNGC0LUg0Lgg0YPQtNC10YDQttC40LLQsNC50YLQtS4iPC9zdHJpbmc+CkBAIC0xNjQ5LDUgKzE2NTcsMTYgQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NzMwODY4OTIwNzQyOTUyODE3Ij4i0J/QvtCy0YLQvtGAINGH0LXRgNC10LcgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz7CoNGB0LXQui4iPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4i0J/QvtCy0YLQvtGA0LjRgtC1INC/0L7Qv9GL0YLQutGDINC/0L7Qt9C20LUuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+ItCn0YLQvtCx0Ysg0LLQtdGA0L3Rg9GC0YzRgdGPINCyINC+0LHRi9GH0L3Ri9C5INGA0LXQttC40LwsINC/0YDQvtCy0LXQtNC40YLQtSDQv9Cw0LvRjNGG0LXQvCDQstC90LjQtyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiLQp9GC0L7QsdGLINCy0LXRgNC90YPRgtGM0YHRjyDQsiDQvtCx0YvRh9C90YvQuSDRgNC10LbQuNC8LCDQv9GA0L7QstC10LTQuNGC0LUg0L/QsNC70YzRhtC10Lwg0LLQvdC40LcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiLQk9C+0YLQvtCy0L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiLQktGL0LHQvtGAINGH0LDRgdC+0LIg0L3QsCDRhtC40YTQtdGA0LHQu9Cw0YLQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4i0JLRi9Cx0L7RgCDQvNC40L3Rg9GCINC90LAg0YbQuNGE0LXRgNCx0LvQsNGC0LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4i0JLRi9Cx0LXRgNC40YLQtSDRh9Cw0YHRiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+ItCS0YvQsdC10YDQuNGC0LUg0LzQuNC90YPRgtGLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiLQntC60L3QviDQstGL0LHQvtGA0LAg0LTQsNGC0YsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLQnNC10L3RjiDQstGL0LHQvtGA0LAg0LPQvtC00LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+ItCS0YvQsdC10YDQuNGC0LUg0LzQtdGB0Y/RhiDQuCDRh9C40YHQu9C+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4i0JLRi9Cx0LXRgNC40YLQtSDQs9C+0LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4i0JLRi9Cx0YDQsNC9INGN0LvQtdC80LXQvdGCIDx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+ItCm0LjRhNGA0LAgPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4g0YPQtNCw0LvQtdC90LAiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtc2ktckxLL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1zaS1yTEsvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJiY2QwNgotLS0gL2Rldi9udWxsCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtc2ktckxLL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMTU5NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJieXRlU2hvcnQiIG1zZ2lkPSI4MzQwOTczODkyNzQyMDE5MTAxIj4iQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtpbG9ieXRlU2hvcnQiIG1zZ2lkPSI1OTczNzg5NzgzNTA0NzcxODc4Ij4iS0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWdhYnl0ZVNob3J0IiBtc2dpZD0iNjM1NTg1MTU3Njc3MDQyODkyMiI+Ik1CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2lnYWJ5dGVTaG9ydCIgbXNnaWQ9IjMyNTk4ODI0NTUyMTIxOTMyMTQiPiJHQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRlcmFieXRlU2hvcnQiIG1zZ2lkPSIyMzE2MTMwMTgxNTkxODY5NjIiPiJUQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBldGFieXRlU2hvcnQiIG1zZ2lkPSI1NjM3ODE2NjgwMTQ0OTkwMjE5Ij4iUEIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaWxlU2l6ZVN1ZmZpeCIgbXNnaWQ9IjkxNjQyOTI3OTE1MDA1MzE5NDkiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRzPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJVTklUIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVudGl0bGVkIiBtc2dpZD0iNDYzODk1Njk1NDg1Mjc4MjU3NiI+IiZsdDvgtrHgtrjgt4og4La64Lec4Lav4LePIOC2seC3kOC2rSZndDsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGxpcHNpcyIgbXNnaWQ9Ijc4OTk4Mjk1MTYwNDg4MTMyMzciPiLigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGxpcHNpc190d29fZG90cyIgbXNnaWQ9IjEyMjgwNzg5OTQ4NjYwMzA3MzYiPiLigKUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eVBob25lTnVtYmVyIiBtc2dpZD0iNzY5NDA2MzA0MjA3OTY3NjUxNyI+Iijgtq/gt5Tgtrvgtprgtq7gtrEg4LaF4LaC4Laa4La64Laa4LeKIOC2seC3nOC2uOC3kOC2rSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1bmtub3duTmFtZSIgbXNnaWQ9IjIyNzc1NTY1NDY3NDI3NDY1MjIiPiIo4Lax4Lec4Lav4Lax4LeTKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRWb2ljZU1haWxBbHBoYVRhZyIgbXNnaWQ9IjI2NjAwMjA5OTAwOTc3MzMwNzciPiLgtprgtqfgt4Tgtqwg4Lat4LeQ4La04LeR4La9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdE1zaXNkbkFscGhhVGFnIiBtc2dpZD0iMjg1MDg4OTc1NDkxOTU4NDY3NCI+Ik1TSVNETjEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtbWlFcnJvciIgbXNnaWQ9IjUxNTQ0OTk0NTc3MzkwNTI5MDciPiLgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48g4Lac4LeQ4Lan4LeF4LeU4LeA4Laa4LeKIOC3hOC3nSDgtoXgt4Dgtr3gtoLgtpzgt5QgTU1JIOC2muC3muC2reC2uuC2muC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtbWlGZG5FcnJvciIgbXNnaWQ9IjUyMjQzOTgyMTYzODUzMTY0NzEiPiLgt4Pgt4rgtq7gt4/gt4Dgtrsg4LaH4La44Lat4LeT4La44LeKIOC2heC2guC2miDgt4Dgtr3gtqcg4La04La44Lar4Laa4LeKIOC2uOC3meC3hOC3meC2uuC3lOC2uCDgt4Pgt5Pgtrjgt4/gtprgtrsg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VFbmFibGVkIiBtc2dpZD0iODE0NzI3ODM0NjQxNDcxNDMxNSI+IuC3g+C3muC3gOC3j+C3gCDgt4Pgtrbgtr0g4Laa4La74LaxIOC2veC2r+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRW5hYmxlZEZvciIgbXNnaWQ9IjY4NTYyMjgxNDA0NTM0NzEwNDEiPiLgt4Pgt5rgt4Dgt4/gt4Ag4LeD4La24La94La64LeSLCDgt4PgtrPgt4Tgt486Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZURpc2FibGVkIiBtc2dpZD0iMTkzNzU1MzIyNjU5MjUxNjQxMSI+IuC3g+C3muC3gOC3j+C3gCDgtoXgtrbgtr0g4Laa4La74LaxIOC2veC2r+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlUmVnaXN0ZXJlZCIgbXNnaWQ9IjYyNzUwMTkwODI1OTgxMDI0OTMiPiLgtr3gt5Lgtrrgt4/gtrTgtq/gt5LgtoLgtqDgt5Ig4LeA4LeT4La4IOC3g+C3j+C2u+C3iuC2ruC2muC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRXJhc2VkIiBtc2dpZD0iMTI4ODU4NDY5NTI5NzIwMDk3MiI+IuC2uOC3kOC2muC3k+C2uCDgt4Pgt4/gtrvgt4rgtq7gtpog4LeA4LeS4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkSW5jb3JyZWN0IiBtc2dpZD0iNzYxMjIwODgzOTQ1MDEyODcxNSI+IuC3gOC3kOC2u+C2r+C3kiDgtrjgt5TgtrvgtrTgtq/gtrrgtprgt4ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pQ29tcGxldGUiIG1zZ2lkPSI4MjMyNTI3NDk1NDExNjk4MzU5Ij4iTU1JIOC3g+C2uOC3iuC2tOC3luC2u+C3iuC2q+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWRQaW4iIG1zZ2lkPSI5MDE1Mjc3NjQ1NTQ2NzEwMDE0Ij4i4LaU4La2IOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrEg4La94LavIOC2tOC2u+C2qyBQSU4g4LaR4LaaIOC3gOC3kOC2u+C2r+C3kuC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWRQdWsiIG1zZ2lkPSI1NDg3MjU3NjQ3MDgxMTMyMjAxIj4i4LaU4La2IOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrEg4La94LavIFBVSyDgtpHgtpog4LeA4LeQ4La74Lav4LeS4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pc21hdGNoUGluIiBtc2dpZD0iNjA5Mzc5MDU0NDk2ODYzNDE5Ij4i4LaU4La2IOC2p+C2uuC3kuC2tOC3iiDgtprgtr0gUElOIOC2seC3nOC2nOC3kOC3heC2tOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUGluIiBtc2dpZD0iMzg1MDAxODQ0NTE4NzQ3NTM3NyI+IjQg4LeD4LeS4LanIDgg4Lav4Laa4LeK4LeA4LePIOC2heC2guC2miDgt4Pgt4Tgt5Lgtq0gUElOIOC2keC2muC2muC3iiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4i4LaF4LaC4LaaIDgg4Laa4LeKIOC3hOC3nSDgtorgtqcg4LeA4LeQ4Lap4LeSIFBVSyDgtpHgtprgtprgt4og4Lan4La64LeS4La04LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4i4LaU4La24Lac4LeaIFNJTSDgtrTgtq0g4La04Lat4LanIFBVSyDgtoXgtpzgt5Tgt4Xgt5Qg4LeA4LeQ4Lan4LeTIOC2h+C2rS4g4LaR4La4IOC2heC2nOC3lOC2vSDgtofgtrvgt5PgtrjgtqcgUFVLIOC2muC3muC2reC2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IlNJTSDgtrTgtq3gt5og4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pyBQVUsyIOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiLgtrTgt5Dgtrjgt5Lgtqvgt5ngtrEg4LaF4La44Lat4Lax4LeK4Lax4LeP4Lac4LeaIElEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2xpck1taSIgbXNnaWQ9Ijc3ODQ2NzM2NzM0NDY4MzMwOTEiPiLgtrTgt5Lgtqfgtq3gtqcg4La64LaxIOC2heC2uOC2reC2seC3iuC2seC3j+C2nOC3miBJRCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNmTW1pIiBtc2dpZD0iNTEyMzIxODk4OTE0MTU3MzUxNSI+IuC2h+C2uOC2reC3lOC2uCDgtongtq/gt5Lgtrvgt5Lgtrrgtqcg4La64LeQ4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ3dNbWkiIG1zZ2lkPSI5MTI5Njc4MDU2Nzk1MDE2ODY3Ij4i4LaH4La44Lat4LeU4La44LeKIOC2u+C3kOC2s+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkJhTW1pIiBtc2dpZD0iNDU1MTkzMDY3OTI2NzcwNTgxIj4i4LaH4La44Lat4LeU4La4IOC2heC3gOC3hOC3kuC2uyDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJQd2RNbWkiIG1zZ2lkPSI3MDQzNzE1Njg3OTA1MjU0MTk5Ij4i4La44LeU4La74La04Lav4La6IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJQaW5NbWkiIG1zZ2lkPSIzMTEzMTE3NzgwMzYxMTkwMzA0Ij4iUElOIOC3gOC3meC2seC3g+C3iiDgt4Dgt5Mg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ25pcE1taSIgbXNnaWQ9IjMxMTA1MzQ2ODA1NTc4NTcxNjIiPiLgtofgtrjgtq3gt5Tgtrjgt4og4LaF4LaC4Laa4La6IOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNuaXJNbWkiIG1zZ2lkPSIzMDYyMTAyMTIxNDMwNTQ4NzMxIj4i4LaH4La44Lat4LeU4La44LeKIOC2heC2guC2muC2uiDgt4Pgt5Pgtrjgt48g4Laa4La7IOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlRocmVlV0NNbWkiIG1zZ2lkPSI5MDUxMDQ3MTcwMzIxMTkwMzY4Ij4i4Lat4LeU4Lax4LeKIOC2uOC3j+C2u+C3iuC2nCDgtofgtrjgtq3gt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSdWFjTW1pIiBtc2dpZD0iNzgyNzg4NzQ1OTEzODMwODg4NiI+IuC2heC2seC3gOC3geC3iuKAjeC2uiDgt4Tgt5Lgtrvgt5Lgt4Tgt5Dgtrvgtq/gt4/gtrrgtpog4LaH4La44Lat4LeU4La44LeKIOC2tOC3iuKAjeC2u+C2reC3kuC2muC3iuC3guC3muC2tCDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbmRNbWkiIG1zZ2lkPSIzMTE2NDQ2MjM3MDgxNTc1ODA4Ij4i4LaH4La44Lat4LeT4La44LeaIOC2heC2guC2muC2uiDgtrfgt4/gtrvgtq/gt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJEbmRNbWkiIG1zZ2lkPSIxMjY1NDc4OTMyNDE4MzM0MzMxIj4i4La24LeP4Law4LePIOC2seC3nOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T25OZXh0Q2FsbE9uIiBtc2dpZD0iNDI5NDE1NDA5MTQ1NzgxOTIzIj4i4LaF4La44Lat4Lax4LeK4Lax4LeP4Lac4LeaIElEIOC3g+C3lOC2tOC3lOC2u+C3lOC2r+C3iuC2ryDgtoXgtrHgt5Tgt4Ag4LeD4LeT4La44LePIOC3gOC3kyDgtofgtq0uIOC2uOC3k+C3heC2nyDgtofgtrjgtq3gt5Tgtrg6IOC3g+C3k+C2uOC3jyDgtprgtrsg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPbk5leHRDYWxsT2ZmIiBtc2dpZD0iMzA5MjkxODAwNjA3Nzg2NDYyNCI+IuC2heC2uOC2reC2seC3iuC2seC3j+C2nOC3miBJRCDgt4Pgt5TgtrTgt5Tgtrvgt5Tgtq/gt5Qg4LaF4Lax4LeU4LeAIOC3g+C3k+C2uOC3jyDgt4Dgt5Mg4LaH4LatLiDgtrjgt5Pgt4Xgtp8g4LaH4La44Lat4LeU4La4OiDgt4Pgt5Pgtrjgt48g4Laa4La7IOC2seC3kOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T2ZmTmV4dENhbGxPbiIgbXNnaWQ9IjYxNzk0MjUxODI4NTY0MTg0NjUiPiLgtoXgtrjgtq3gtrHgt4rgtrHgt4/gtpzgt5ogSUQg4LeD4LeU4La04LeU4La74LeU4Lav4LeUIOC2heC2seC3lOC3gCDgt4Pgt5Pgtrjgt48g4LeA4LeTIOC2seC3kOC2rS4g4La44LeT4LeF4LafIOC2h+C2uOC2reC3lOC2uDog4LeD4LeT4La44LePIOC2muC2uyDgtofgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSRGVmYXVsdE9mZk5leHRDYWxsT2ZmIiBtc2dpZD0iMjU2Nzk5ODYzMzEyNDQwODU1MiI+IuC2heC2uOC2reC2seC3iuC2seC3j+C2nOC3miBJRCDgt4Pgt5TgtrTgt5Tgtrvgt5Tgtq/gt5Qg4LaF4Lax4LeU4LeAIOC3g+C3k+C2uOC3jyDgt4Dgt5Mg4Lax4LeQ4LatLiDgtrjgt5Pgt4Xgtp8g4LaH4La44Lat4LeU4La4OiDgt4Pgt5Pgtrjgt48g4Laa4La7IOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VOb3RQcm92aXNpb25lZCIgbXNnaWQ9Ijg2MTQ4MzAxODA1MDg2ODY2NjYiPiLgt4Pgt5rgt4Dgt4/gt4DgtrHgt4og4LeD4La04La64LePIOC2seC3kOC2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSUGVybWFuZW50IiBtc2dpZD0iMzM3NzM3MTE0NTkyNjgzNTY3MSI+IuC2heC2uOC2reC2seC3iuC2seC3j+C2nOC3miBJRCDgt4Pgt5Dgtprgt4Pgt5Pgtrgg4LaU4La24LanIOC3gOC3meC2seC3g+C3iuC2muC2vSDgtrHgt5zgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZENoYW5nZWRUaXRsZSIgbXNnaWQ9IjU1OTIxODkzOTg5NTYxODc0OTgiPiLgt4Pgt5Pgtrjgt5Lgtq0g4La04LeK4oCN4La74LeA4Lea4LeB4La6IOC3gOC3meC2seC3g+C3iiDgtprgt5ngtrvgt5Lgtqvgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25EYXRhIiBtc2dpZD0iODY1Mzc5NDc4NDY5MDA2NTU0MCI+IuC2r+C2reC3iuC2rSDgt4Pgt5rgt4Dgt4/gt4Ag4LaF4LeA4LeE4LeS4La7IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uRW1lcmdlbmN5IiBtc2dpZD0iNjU4MTE2Mzc3OTA3MjgzMzY2NSI+IuC3hOC2r+C3kuC3g+C3kiDgt4Pgt5rgt4Dgt4/gt4Ag4LaF4LeA4LeE4LeS4La7IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uTm9ybWFsIiBtc2dpZD0iNDk1Mzg2NzAxMTM4OTc1MDY3MyI+IuC3hOC2rCDgt4Pgt5rgt4Dgt4/gt4Ag4La24LeP4Law4LePIOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uQWxsVm9pY2UiIG1zZ2lkPSIzMzk2OTYzNjUyMTA4MTUxMjYwIj4i4LeD4LeS4La64La94LeUIOC3hOC2rCDgt4Pgt5rgt4Dgt48g4LaF4LeA4LeE4LeS4La7IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uU21zIiBtc2dpZD0iODMxNDM1MjMyNzQ2MTYzODg5NyI+IlNNUyDgt4Pgt5rgt4Dgt4/gt4Ag4LaF4LeA4LeE4LeS4La7IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VEYXRhIiBtc2dpZD0iOTk2NjM2NDg3MTA2MTcxMzIwIj4i4LeE4LasL+C2r+C2reC3iuC2rSDgt4Pgt5rgt4Dgt48g4LaF4LeA4LeE4LeS4La7IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VTbXMiIG1zZ2lkPSIxODg4NTg4MTUyNzkyMDIzODczIj4i4LeE4LasL1NNUyDgt4Pgt5rgt4Dgt48g4LaF4LeA4LeE4LeS4La7IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uQWxsIiBtc2dpZD0iNTY0MzAyODI2NDQ2NjA5MjgyMSI+IuC3g+C3kuC2uuC2veC3lOC2uCDgt4Tgtqwv4Lav4Lat4LeK4LatL1NNUyDgt4Pgt5rgt4Dgt4/gt4DgtrHgt4og4La24LeP4Law4LePIOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzVm9pY2UiIG1zZ2lkPSIxMjU4MzkzODEyMzM1MjU4MDE5Ij4i4LeE4LasIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRGF0YSIgbXNnaWQ9Ijg3MjQ1Njc4MjA3NzkzNzg5MyI+IuC2r+C2reC3iuC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0ZBWCIgbXNnaWQ9IjU1NjY2MjQ5OTg4NDA0ODY0NzUiPiLgt4bgt5Dgtprgt4rgt4Pgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NTTVMiIG1zZ2lkPSIyMDE1NDYwMzczNzAxNTI3NDg5Ij4iU01TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRGF0YUFzeW5jIiBtc2dpZD0iNDUyMzQ1NDc4MzQ5ODU1MTQ2OCI+IuC2heC3g+C2uOC2uOC3lOC3hOC3lOC2u+C3iuC2rSDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhU3luYyIgbXNnaWQ9Ijc1MzAwMDA1MTk2NDYwNTQ3NzYiPiLgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzUGFja2V0IiBtc2dpZD0iNjk5MTAwNjU1Nzk5MzQyMzQ1MyI+IuC2tOC3kOC2muC3kOC2p+C3iuC2p+C3lOC3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1BBRCIgbXNnaWQ9IjMyMzUyNTkwODU2NDgyNzEwMzciPiJQQUQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDAiIG1zZ2lkPSI3MTcwMzM1NDcyMTk4Njk0OTQ1Ij4i4La74Led4La44LeS4LaCIOC2r+C2u+C3iuC3geC2muC2uiDgt4Pgtprgt4rigI3gtrvgt5Lgtrrgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDEiIG1zZ2lkPSI1MzE0ODYxNTE5NzUyNTM4OTIyIj4i4La74Led4La44LeS4LaCIOC2r+C2u+C3iuC3geC2muC2uiDgtoXgtprgt4rigI3gtrvgt5Lgtrrgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDIiIG1zZ2lkPSI4OTY5OTI5MDQ5MDgxMjY4MTE1Ij4i4La74Led4La44LeS4LaCIOC2r+C2u+C3iuC3geC2muC2uiDgt4Pgt5Dgtqvgt5ngtr3gt5Ig4LeA4LeZ4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQzIiBtc2dpZD0iNTE0ODI1NTAyNzA0Mzk0MzMxNyI+IuC3gOC2p+C2tOC3kuC2p+C3j+C3gOC3meC2seC3iiDgtongt4Dgtq3gt4rgt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDQiIG1zZ2lkPSI4ODA4NDU2NjgyNTUwNzk2NTMwIj4i4Lac4Lec4Lap4Lax4LeQ4Lac4LeS4La94LeK4La94LeZ4Lax4LeKIOC2tOC3kuC2p+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NSIgbXNnaWQ9Ijc2MDQwNjMyNTI4NTAzNTQzNTAiPiLgtrvgt53gtrjgt5LgtoIgIC0g4Laa4LeQ4La44Lat4LeSIOC2tOC2r+C3iuC2sOC2reC3kuC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NiIgbXNnaWQ9IjIwNTk0NDA4MjU3ODI4NzE1MTMiPiLgtrvgt53gtrjgt5LgtoIgIC0g4La94La24LeP4Lac4LatIOC3hOC3kOC2muC3kiDgtrTgtq/gt4rgtrDgtq3gt5LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDciIG1zZ2lkPSI3MTEyMDc4NzI0MDk3MjMzNjA1Ij4i4La74Led4La44LeS4LaCIC0g4La44LeS4Lat4LeK4oCN4La7IOC3hOC3gOC3lOC2veC3iuC2muC2u+C3lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0OCIgbXNnaWQ9IjU5ODk1Njk3Nzg2MDQwODkyOTEiPiLgtrvgt53gtrjgt5LgtoIgLSDgtoXgtrDgt5Lgtrjgt5Lgtr0g4LeE4LeA4LeU4La94LeK4Laa4La74LeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ5IiBtc2dpZD0iNzk2OTI5NjgxMTM1NTE1MjQ5MSI+IuC2u+C3neC2uOC3kuC2giAgLSDgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4LeD4Lea4LeA4LePIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C3kuC2reC3iuC3gOC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MTAiIG1zZ2lkPSIzOTkyOTA2OTk5ODE1MzE2NDE3Ij4i4La74Led4La44LeS4LaCIC0g4LaF4LeD4La44LeK4La04LeW4La74LeK4LarIOC3g+C3muC3gOC3jyDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgt5Pgtq3gt4rgt4DgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDExIiBtc2dpZD0iNDE1NDQ3Njg1NDQyNjkyMDk3MCI+IuC2u+C3neC2uOC3kuC2giAg4La24LeQ4Lax4La74La6IOC3g+C2muC3iuKAjeC2u+C3k+C2uuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MTIiIG1zZ2lkPSIxMTg5MDcxMTE5OTkyNzI2MzIwIj4i4La74Led4La44LeS4LaCIOC2tuC3kOC2seC2u+C2uiDgtoXgtprgt4rigI3gtrvgt5Lgtrrgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dFNlYXJjaGluZyIgbXNnaWQ9IjgzNjAxNDE4ODU5NzIyNzk5NjMiPiLgt4Pgt5rgt4Dgt4/gt4Ag4LeD4Laz4LeE4LePIOC3g+C3nOC2uuC2uOC3kuC2seC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVOb3RGb3J3YXJkZWQiIG1zZ2lkPSIxNjgzNjg1ODgzODQxMjcyNTYwIj4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz46IOC2ieC2r+C3kuC2u+C3kuC2uuC2pyDgtrHgt5zgtrrgt4DgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZUZvcndhcmRlZCIgbXNnaWQ9IjEzMDI5MjIxMTc0OTg1OTA1MjEiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IkRJQUxJTkdfTlVNQkVSIj57MX08L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZUZvcndhcmRlZFRpbWUiIG1zZ2lkPSI5MjA2MjUxNzM2NTI3MDg1MjU2Ij4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz46IOC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iVElNRV9ERUxBWSI+ezJ9PC94bGlmZjpnPiDgtqcg4La04LeD4LeU4LeAIDx4bGlmZjpnIGlkPSJESUFMSU5HX05VTUJFUiI+ezF9PC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVSZWdpc3RlcmVkIiBtc2dpZD0iNTA3MzIzNzgyNzYyMDE2NjI4NSI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+OiDgtongtq/gt5Lgtrvgt5Lgtrrgtqcg4Lax4Lec4La64LeA4LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVSZWdpc3RlcmVkVGltZSIgbXNnaWQ9IjY3ODE2MjE5NjQzMjA2MzUxNzIiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjog4LaJ4Lav4LeS4La74LeS4La64LanIOC2seC3nOC2uuC3gOC2sSDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmY0NvbXBsZXRlIiBtc2dpZD0iMzExODg0ODIzMDk2Njg4NjU3NSI+IuC2heC2guC2nCDgtprgt5rgtq3gtrog4LeD4La44LeK4La04LeW4La74LeK4Lar4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZjRXJyb3IiIG1zZ2lkPSIzMzI3NTYwMTI2NTg4NTAwNzc3Ij4i4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC2nOC3kOC2p+C3heC3lOC3gOC2muC3iiDgt4Tgt50g4LaF4LeA4La94LaC4Lac4LeUIOC3gOC3kuC3geC3muC3guC3j+C2guC2nCDgtprgt5rgtq3gtrrgtprgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yT2siIG1zZ2lkPSIxMTkxOTE5Mzc4MDgzNDcyMjA0Ij4i4LeE4La74LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yIiBtc2dpZD0iNzk1NjM5MjUxMTE0NjY5ODUyMiI+IuC2ouC3j+C2vSDgtq/gt53gt4Lgtrrgtprgt4og4Lat4LeS4La24LeU4Lar4LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckxvb2t1cCIgbXNnaWQ9IjQ3MTE2ODc0NTYxMTE5NjMxNjMiPiJVUkwg4La6IOC3g+C3meC3gOC3kuC2uiDgtrHgt5zgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVW5zdXBwb3J0ZWRBdXRoU2NoZW1lIiBtc2dpZD0iNjI5OTk4MDI4MDQ0MjA3Njc5OSI+IuC2heC2qeC3gOC3kuC2uuC3miDgt4Pgtq3gt4rigI3gtrrgt4/gtrTgtrEg4La04Lan4LeS4La04LeP4Lan4LeS4La6IOC3gOC3meC2rSDgt4Pgt4Tgtrog4Lax4Lec4Lav4Laa4LeK4LeA4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckF1dGgiIG1zZ2lkPSIxNDM1MDY1NjI5NDM4MDQ0NTM0Ij4i4LeD4Lat4LeK4oCN4La64LeP4La04Lax4La6IOC2muC3hSDgtrHgt5zgt4Tgt5DgtpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JQcm94eUF1dGgiIG1zZ2lkPSIxNzg4MjA3MDEwNTU5MDgxMzMxIj4i4La04LeK4oCN4La74Lec4Laa4LeK4LeD4LeSIOC3g+C3muC3gOC3j+C2r+C3j+C2uuC2muC2uiDgt4Tgtrvgt4Tgt48g4LeD4Lat4LeK4oCN4La64LeP4La04Lax4La6IOC2heC3g+C3j+C2u+C3iuC2ruC2muC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JDb25uZWN0IiBtc2dpZD0iODcxNDI3MzIzNjM2NDY0MDU0OSI+IuC3g+C3muC3gOC3j+C2r+C3j+C2uuC2muC2uuC3j+C2pyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeS4La6IOC2seC3nOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JJTyIgbXNnaWQ9IjIzNDA1NTgxOTc0ODkzMDIxODgiPiLgt4Pgt5rgt4Dgt4/gtq/gt4/gtrrgtprgtrrgt48g4LeD4La44LacIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgt4Dgt5Pgtrjgtqcg4Lax4Lec4LeE4LeQ4Laa4LeSIOC3gOC3kuC2ui4g4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVGltZW91dCIgbXNnaWQ9IjQ3NDM0MDM3MDM3NjI4ODM5NTQiPiLgt4Pgt5rgt4Dgt4/gtq/gt4/gtrrgtprgtrog4LeA4LeZ4LatIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3j+C3gOC2uiDgtprgtr3gt4og4LaJ4Laa4LeU4Lat4LeKIOC3gOC3kuC2q+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JSZWRpcmVjdExvb3AiIG1zZ2lkPSI4Njc5NTk2MDkwMzkyNzc5NTE2Ij4i4La04LeS4Lan4LeU4LeA4LeaIOC2tuC3nOC3hOC3nSDgt4Pgt5rgt4Dgt4/gtq/gt4/gtrrgtpog4Lax4LeQ4LeA4LatIOC3hOC2u+C3gOC3jyDgtrrgt5Dgt4Dgt5Pgtrjgt4og4LaF4Lap4LaC4Lac4LeUIOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JVbnN1cHBvcnRlZFNjaGVtZSIgbXNnaWQ9IjUwMTU3MzA4MTI5MDYxOTIyMDgiPiLgtrTgt4rigI3gtrvgt5zgtqfgt53gtprgt53gtr3gtrog4LeA4LeZ4LatIOC3g+C3hOC2uiDgtrHgt5zgtq/gtprgt4rgt4Dgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yRmFpbGVkU3NsSGFuZHNoYWtlIiBtc2dpZD0iOTY1NDk2MDYwMDA2NTg2NDEiPiLgt4Pgt5Tgtrvgtprgt4rgt4Lgt5Lgtq0g4LeD4La44LeK4La24Lax4LeK4Law4Lat4LeP4LeA4La64Laa4LeKIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC3k+C2uOC2pyDgtrHgt5zgt4Tgt5Dgtprgt5Ig4LeA4LeS4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckJhZFVybCIgbXNnaWQ9IjM2MzY5Mjk3MjI3Mjg4ODE5NzIiPiJVUkwg4LeA4La94LaC4Lac4LeUIOC2seC3nOC3gOC2sSDgtrHgt5Lgt4Pgt48g4La04LeS4Lan4LeU4LeAIOC3gOC3kuC3gOC3mOC2rSDgtprgt5Lgtrvgt5Pgtrjgtqcg4Lax4Lec4LeE4LeQ4Laa4LeSIOC3gOC3kuC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGaWxlIiBtc2dpZD0iMjE3MDc4ODUxNTA1MjU1ODY3NiI+IuC2nOC3nOC2seC3lOC3gCDgt4Dgt5ngtq0g4La04LeS4LeA4LeS4LeD4LeS4La6IOC2seC3nOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGaWxlTm90Rm91bmQiIG1zZ2lkPSI2MjAzODU2NjEyMDQyNjU1MDg0Ij4i4LaJ4La94LeK4La94LaxIOC2veC2ryDgtpzgt5zgtrHgt5Qg4LeD4LeZ4LeA4LeS4La6IOC2seC3nOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JUb29NYW55UmVxdWVzdHMiIG1zZ2lkPSIxMjM1Mzk2OTI3MDg3MTg4MjUzIj4i4LaJ4La94LeK4La94LeT4La44LeKIOC3gOC3kuC3geC3j+C2vSDgtrTgt4rigI3gtrvgtrjgt4/gtqvgtrrgtprgt4og4Laa4LeK4oCN4La74LeS4La64LeP4Lat4LeK4La44LaaIOC3gOC3meC2uOC3kuC2seC3iiDgtrTgt4Dgtq3gt5Lgtrrgt5IuIOC2tOC3g+C3lOC3gCDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeP4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4OTY3NzEwMDI1MDM2MTYzODIyIj4iPHhsaWZmOmcgaWQ9IkFDQ09VTlQiPiUxJHM8L3hsaWZmOmc+IOC3g+C2s+C3hOC3jyDgtrTgt5TgtrvgtrHgtrog4LeA4LeT4La44LeaIOC2r+C3neC3guC2uuC2muC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRTZXJ2aWNlU3luYyIgbXNnaWQ9IjgzNTM1MjMwNjAyNjkzMzU2NjciPiLgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VTeW5jTm90aWZpY2F0aW9uVGl0bGUiIG1zZ2lkPSIzOTc3NDMzNDkxOTE5MDE0NTgiPiLgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VUb29NYW55RGVsZXRlc05vdGlmaWNhdGlvbkRlc2MiIG1zZ2lkPSI4MTAwOTgxNDM1MDgwNjk2NDMxIj4iPHhsaWZmOmcgaWQ9IkNPTlRFTlRfVFlQRSI+JXM8L3hsaWZmOmc+IOC2uOC3kOC2muC3k+C2uOC3iiDgt4Dgt5Dgtqngt5LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfbWVtb3J5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2NDk0MDE5MjM0MTAyMTU0ODk2Ij4i4Lan4LeQ4La24LeK4La94Lan4LeKIOC2huC2oOC2uuC2seC2uiDgtrTgt5Lgtrvgt5Ig4LaH4LatLiDgtongtqkg4Lax4LeS4Lav4LeE4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgt4Pgtrjgt4Tgtrsg4Lac4Lec4Lax4LeUIOC2uOC2muC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfbWVtb3J5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ3NTk5OTI4NjY4MDAwMDU0MSI+IuC2r+C3lOC2u+C2muC2ruC2sSDgtobgtqDgtrrgtrHgtrog4La04LeS4La74LeTIOC2h+C2rS4g4LaJ4LapIOC2seC3kuC2r+C3hOC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4La44LeE4La7IOC2nOC3nOC2seC3lCDgtrjgtprgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWUiIG1zZ2lkPSI2NTQ1Njk2MDA3NjMxNDA0MjkyIj4i4La44La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfZGlhbG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTQ1MzUxNDIwODY1MjAyODUzIj4i4Lan4LeQ4La24LeK4La94LanIOC3gOC3kuC2muC2veC3iuC2tCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvd2VyX2RpYWxvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjEzMTk5MTkwNzU0NjM5ODg2MzgiPiLgtq/gt5Tgtrvgtprgtq7gtrEg4LeA4LeS4Laa4La94LeK4La04La64Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGUiIG1zZ2lkPSI3MTY3NzAzMzg5ODAyNjE4NjYzIj4i4Lax4LeS4LeE4LasIOC2huC2muC3j+C2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InR1cm5fb25fcmFkaW8iIG1zZ2lkPSIzOTEyNzkzMDkyMzM5OTYyMzcxIj4i4Lax4Lec4La74LeQ4LeE4Lax4LeKIOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0dXJuX29mZl9yYWRpbyIgbXNnaWQ9IjgxOTg3ODQ5NDk5ODcwNjIzNDYiPiLgtrHgt5zgtrvgt5Dgt4Tgt5DgtrHgt4og4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9sb2NrIiBtc2dpZD0iNzk5MDk0NjU1NDk2MDk4MTUzIj4i4Lat4LeS4La7IOC2heC2nOC3lOC2vSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvd2VyX29mZiIgbXNnaWQ9IjQyNjY2MTQxMDc0MTI4NjUwNDgiPiLgtrbgtr3gtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3NpbGVudCIgbXNnaWQ9IjMxOTI5ODE2MzAxODQ3MzA3OCI+IuC3hOC2rCDgtrHgtp/gtrHgtrog4LaF4Laa4LeK4oCN4La74LeS4La64La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfdmlicmF0ZSIgbXNnaWQ9IjcwNzIwNDMzODg1ODE1NTEzOTUiPiLgt4Tgtqwg4Lax4Laf4Lax4La6IOC2muC2uOC3iuC2tOC2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3JpbmciIG1zZ2lkPSI4NTkyMjQxODE2MTk0MDc0MzUzIj4i4LeE4LasIOC2seC2n+C2seC2uiDgt4Pgtprgt4rigI3gtrvgt5Pgtrrgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9wcm9ncmVzcyIgbXNnaWQ9IjIyODEwNzkyNTczMjk5ODEyMDMiPiLgt4Dgt4Pgt48g4Lav4La44La44LeS4Lax4LeK4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2h1dGRvd25fY29uZmlybSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzM4NTc0NTE3OTU1NTczMTQ3MCI+IuC2lOC2tuC2nOC3miDgtqfgt5Dgtrbgt4rgtr3gtqfgtrog4LeA4LeQ4LeD4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NDk3OTIxNzUyNDI4MjEzNTMiPiLgtpTgtrbgtpzgt5og4Lav4LeU4La74Laa4Lau4Lax4La6IOC3gOC3kOC3g+C3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9jb25maXJtX3F1ZXN0aW9uIiBtc2dpZD0iMjkwNjU0NDc2ODg4MTEzNjE4MyI+IuC2lOC2tuC2pyDgt4Dgt4Pgt48g4Lav4LeQ4La44LeT4La44LanIOC2heC3gOC3geC3iuKAjeC2uuC2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWJvb3Rfc2FmZW1vZGVfdGl0bGUiIG1zZ2lkPSI3MDU0NTA5OTE0NTAwMTQwMzYxIj4i4LaG4La74Laa4LeK4oCN4LeC4LeS4LatIOC2huC2muC3j+C2u+C2uuC2pyDgtrHgt5Dgt4Dgtq0g4La04LarIOC2nOC2seC3iuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYm9vdF9zYWZlbW9kZV9jb25maXJtIiBtc2dpZD0iNTUyOTM5NDQ1MDI3ODQ2NjgiPiLgtobgtrvgtprgt4rigI3gt4Lgt5Lgtq0g4LaG4Laa4LeP4La74La64LanIOC2seC3kOC3gOC2rSDgtrTgtqsg4Lac4LeQ4Lax4LeK4LeA4LeT4La44LanIOC2lOC2tuC2pyDgtoXgt4Dgt4Hgt4rigI3gtrrgtq8/IOC2uOC3meC2uOC2n+C3kuC2seC3iiDgtpTgtrYg4LeD4LeK4Lau4LeP4La04LeS4LatIOC2muC2uyDgtofgtq3gt5Ig4LeD4LeS4La64La94LeU4La4IOC2reC3meC3gOC2sSDgtrTgt4/gtrvgt4rgt4Hgt4Dgt5Pgtrog4La64LeZ4Lav4LeU4La44LeKIOC3g+C3kuC2uuC2veC3iuC2vSDgtoXgtrbgtr0g4LeA4LeTIOC2uuC2uuC3ki4g4LaU4La2IOC2seC3kOC3gOC2rSDgtrTgtqsg4Lac4Lax4LeK4LeA4LaxIOC3gOC3kuC2pyDgtpLgt4Dgt48g4Lax4LeQ4LeA4LatIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC3k+C2uCDgt4Pgt5Lgtq/gt5Qg4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlY2VudF90YXNrc190aXRsZSIgbXNnaWQ9IjM2OTE3NjQ2MjM2MzgxMjc4ODgiPiLgtrjgt5Hgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19yZWNlbnRfdGFza3MiIG1zZ2lkPSI4Nzk0OTA2NjU4NzMyMTkzNDczIj4i4La44LeR4LatIOC2uuC3meC2r+C3lOC2uOC3iiDgtrHgt5Dgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQwODQ3NzE0MDA4ODA1MzY2NSI+IuC2p+C3kOC2tuC3iuC2veC2p+C3iiDgt4Dgt5Lgtprgtr3gt4rgtrQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9ucyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI0MDY0MTY4MzE1NDE2MTUyNTgiPiLgtq/gt5Tgtrvgtprgtq7gtrEg4LeA4LeS4Laa4La94LeK4La0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9sb2NrIiBtc2dpZD0iMjg0NDk0NTE5MTc5MjExOTcxMiI+IuC2reC3kuC2uyDgtoXgtpzgt5Tgtr0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3Bvd2VyX29mZiIgbXNnaWQ9IjQ0NzE4Nzk0NDA4Mzk4Nzk3MjIiPiLgtrbgtr3gtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fYnVnX3JlcG9ydCIgbXNnaWQ9Ijc5MzQwMTA1Nzg5MjIzMDQ3OTkiPiLgtq/gt53gt4Ig4LeA4La74LeK4Lat4LeP4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X3RpdGxlIiBtc2dpZD0iMjY2NzQ5NDgwMzc0MjU0ODUzMyI+IuC2r+C3neC3giDgt4Dgt4/gtrvgt4rgtq3gt4/gt4Dgtprgt4og4Lac4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X21lc3NhZ2UiIG1zZ2lkPSIzOTg0NDcwNDg3NTAzNTA0NTYiPiLgtoot4Lat4LeQ4La04LeQ4La94LeKIOC2tOC2q+C3kuC3gOC3kuC2qeC2uuC2muC3iiDgtr3gt5ngt4Mg4La64LeQ4LeA4LeT4La44LanIOC2uOC3meC2uiDgtpTgtrbgtpzgt5og4LeA4Lat4LeK4La44Lax4LeKIOC2i+C2tOC3j+C2guC2nCDgtq3gtq3gt4rgt4Dgtrog4Lac4LeQ4LaxIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtpHgtprgtq3gt5Qg4Laa4La74Lax4LeUIOC2h+C2rS4g4Lav4Led4LeCIOC3gOC3j+C2u+C3iuC2reC3j+C3gCDgtobgtrvgtrjgt4rgtrcg4Laa4La7IOC2keC2uiDgtrrgt5Dgt4Dgt5Pgtrjgtqcg4LeD4LeW4Lav4LeP4Lax4La44LeKIOC2muC2u+C2sSDgtq3gt5ngtprgt4og4LaR4La64LanIOC2muC3kuC3g+C3kuC2uuC2uOC3iiDgtprgt4/gtr3gtrrgtprgt4og4Lac4Lat4LeA4Lax4LeUIOC2h+C2rTsg4Laa4La74LeU4Lar4LeP4Laa4La7IOC2ieC3gOC3g+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3RvZ2dsZV9zaWxlbnRfbW9kZSIgbXNnaWQ9IjgyMTk1MjUzNDQyNDY4MTA5MjUiPiLgtrHgt5Lgt4Tgtqwg4LaG4Laa4LeP4La74La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9zaWxlbnRfbW9kZV9vbl9zdGF0dXMiIG1zZ2lkPSIzMjg5ODQxOTM3MDAzNzU4ODA2Ij4i4LeB4La24LeK4Lav4La6IOC2heC2muC3iuKAjeC2u+C3kuC2uuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fc2lsZW50X21vZGVfb2ZmX3N0YXR1cyIgbXNnaWQ9IjE1MDYwNDY1NzkxNzcwNjY0MTkiPiLgt4Tgtqwg4LeD4Laa4LeK4oCN4La74LeS4La64La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnNfdG9nZ2xlX2FpcnBsYW5lX21vZGUiIG1zZ2lkPSI1ODg0MzMwMzA2OTI2MzA3NDU2Ij4i4LaF4LeE4LeD4LeK4La64LeP4Lax4LePIOC2huC2muC3j+C2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zX2FpcnBsYW5lX21vZGVfb25fc3RhdHVzIiBtc2dpZD0iMjcxOTU1Nzk4MjYwODkxOTc1MCI+IuC2heC3hOC3g+C3iuC2uuC3j+C2seC3jyDgtobgtprgt4/gtrvgtrog4LeD4Laa4LeK4oCN4La74LeT4La64La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zX2FpcnBsYW5lX21vZGVfb2ZmX3N0YXR1cyIgbXNnaWQ9IjUwNzUwNzA0NDI4NTQ0OTAyOTYiPiLgtoXgt4Tgt4Pgt4rgtrrgt4/gtrHgt48g4LaF4Laa4LeP4La74La6IOC2heC2muC3iuKAjeC2u+C3kuC2uuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luZm9fb3ZlcmZsb3ciIG1zZ2lkPSI1MzAxOTgxNzQxNzA1MzU0OTkzIj4iOTk5KyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhZmVNb2RlIiBtc2dpZD0iMjc4ODIyODA2MTU0NzkzMDI0NiI+IuC2huC2u+C2muC3iuKAjeC3guC3kuC2rSDgtobgtprgt4/gtrvgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3N5c3RlbV9sYWJlbCIgbXNnaWQ9IjY1NzczNzUzMzU3Mjg1NTEzMzYiPiJBbmRyb2lkIOC2tOC2r+C3iuC2sOC2reC3kuC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jb3N0TW9uZXkiIG1zZ2lkPSI1NDI5ODA4MjE3ODYxNDYwNDAxIj4i4LaU4La24Lac4LeaIOC2uOC3lOC2r+C2veC3iiDgt4Dgt5Dgtrrgt4DgtrEg4LeD4Lea4LeA4LeP4LeA4Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19jb3N0TW9uZXkiIG1zZ2lkPSIzMjkzMzAxOTAzNDA5ODY5NDk1Ij4i4LaU4La24Lac4LeZ4Lax4LeKIOC2uOC3lOC2r+C2veC3iiDgtrrgtrEg4Lav4Lea4LeA4La94LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbWVzc2FnZXMiIG1zZ2lkPSI3NTIxMjQ5MTQ4NDQ1NDU2NjYyIj4i4LaU4La24Lac4LeaIOC2tOC2q+C3kuC3gOC3kuC2qSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbWVzc2FnZXMiIG1zZ2lkPSI3ODIxOTk5MDcxMDAzNjk5MjM2Ij4i4LaU4La24Lac4LeaIFNNUywg4LaKLeC2reC3kOC2tOC3kOC2veC3iiwg4LeD4LeEIOC3gOC3meC2seC2reC3iiDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4Laa4LeS4La64LeA4Lax4LeK4LaxIOC3g+C3hCDgtr3gt5LgtrrgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3BlcnNvbmFsSW5mbyIgbXNnaWQ9IjM1MTkxNjMxNDEwNzA1MzM0NzQiPiLgtpTgtrbgtpzgt5og4La04Lee4Lav4LeK4Lac4La94LeS4LaaIOC2reC3nOC2u+C2reC3lOC2u+C3lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfcGVyc29uYWxJbmZvIiBtc2dpZD0iODQyNjQ1MzEyOTc4ODg2MTMzOCI+IuC2lOC2tuC2nOC3miDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48g4La04Lat4LeaIOC2huC2oOC2uuC2seC2uiDgtprgtrvgtrEg4La94LavLCDgtpTgtrYg4Lac4LeQ4LaxIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgt4Dgtr3gtqcg4LaN4Lai4LeUIOC2tOC3iuKAjeC2u+C3gOC3muC3geC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc29jaWFsSW5mbyIgbXNnaWQ9IjU3OTkwOTY2MjM0MTIwNDM3OTEiPiLgtpTgtrbgtpzgt5og4LeD4La44LeP4Lai4La64LeT4La6IOC2reC3nOC2u+C2reC3lOC2u+C3lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc29jaWFsSW5mbyIgbXNnaWQ9IjcxMjk4NDI0NTc2MTE2NDM0OTMiPiLgtpTgtrbgtpzgt5og4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC3g+C3hCDgt4Pgt4/gtrjgt4/gtqIg4LeD4La44LeK4La24Lax4LeK4Law4La64Lax4LeKIOC2nOC3kOC2sSDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LeA4LeZ4LatIOC2jeC2ouC3lCDgtrTgt4rigI3gtrvgt4Dgt5rgt4HgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2xvY2F0aW9uIiBtc2dpZD0iNjM1MTQ5NzQyNDM2NjkyMDQ5Ij4i4LaU4La24Lac4LeaIOC3g+C3iuC2ruC3j+C2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbG9jYXRpb24iIG1zZ2lkPSI1NzA0Njc5NzYzMTI0MTcwMTAwIj4i4LaU4La24Lac4LeaIOC2t+C3nuC2reC3kuC2miDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgtrgg4Lax4LeS4La74LeT4Laa4LeK4LeC4Lar4La6IOC2muC2u+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbmV0d29yayIgbXNnaWQ9IjU4MDg5ODMzNzc3MjcxMDk4MzEiPiLgtqLgt4/gtr0g4LeD4Lax4LeK4Lax4LeS4LeA4Lea4Lav4Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19uZXR3b3JrIiBtc2dpZD0iNDQ3ODI5OTQxMzI0MTg2MTk4NyI+IuC3gOC3kuC3gOC3kuC2sCDgtqLgt4/gtr0g4LeA4LeS4LeB4Lea4LeC4LeP4LaC4LacIOC3gOC3meC2rSDgtrTgt5Lgt4Dgt5Lgt4Pgt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2JsdWV0b290aE5ldHdvcmsiIG1zZ2lkPSIxNTg1NDAzNTQ0MTYyMTI4MTA5Ij4i4La24LeK4La94LeW4Lan4LeW4Lat4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19ibHVldG9vdGhOZXR3b3JrIiBtc2dpZD0iNTYyNTI4ODU3NzE2NDI4MjM5MSI+IuC2tuC3iuC2veC3luC2p+C3luC2reC3iiDgtpTgt4Pgt4rgt4Pgt5og4LaL4La04LeP4LaC4LacIOC3g+C3hCDgtqLgt4/gtr0g4LeA4LeZ4LatIOC2tOC3kuC3gOC3kuC3g+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjgzMjkyNjE2NzAxNTE4NzEyMzUiPiLgt4Hgt4rigI3gtrvgt4Dgt4rigI3gtrog4LeD4LeQ4Laa4LeD4LeT4La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hdWRpb1NldHRpbmdzIiBtc2dpZD0iMjY0MTUxNTQwMzM0NzU2ODEzMCI+IuC3geC3iuKAjeC2u+C3gOC3iuKAjeC2uiDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4LeA4LeZ4Lax4LeD4LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYWZmZWN0c0JhdHRlcnkiIG1zZ2lkPSI2MjA5MjQ2NjUzNDI0Nzk4MDMzIj4i4La24LeQ4Lan4La74LeS4La6IOC3gOC3meC2rSDgtrbgtr3gtrTgt4/gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FmZmVjdHNCYXR0ZXJ5IiBtc2dpZD0iNjQ0MTI3NTMyMDYzODkxNjk0NyI+IuC2tuC3kOC2p+C2u+C3kuC2uuC3miDgtrbgtr3gtrog4Laa4LeK4LeC4Lar4LeS4Laa4LeAIOC2heC2qeC3lCDgt4DgtrEg4LeA4LeS4LeB4Lea4LeC4LeP4LaC4LacIOC2t+C3j+C3gOC3kuC2rSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2NhbGVuZGFyIiBtc2dpZD0iNTg2MzUwODQzNzc4MzY4MzkwMiI+IuC2r+C3kuC2sSDgtq/gtrvgt4rgt4HgtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2NhbGVuZGFyIiBtc2dpZD0iNTc3NzUzNDMxNjk4MjE4NDQxNiI+IuC2r+C3kuC2sSDgtq/gtrvgt4rgt4HgtrEg4LeD4LeS4Lav4LeK4Law4LeS4Lax4LeK4LanIOC3g+C3mOC2ouC3lOC3gCDgtrTgt4rigI3gtrvgt4Dgt5rgt4Eg4LeA4LeT4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaWN0aW9uYXJ5IiBtc2dpZD0iNDE0ODU5NzEyODg0MzY0MTM3OSI+IuC2tOC2u+C3kuC3geC3k+C2veC2miDgt4Hgtrbgt4rgtq8g4Laa4Led4LeC4La6IOC2muC3kuC2uuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfZGljdGlvbmFyeSIgbXNnaWQ9Ijc5MjExNjYzNTU5NjQ3NjQ0OTAiPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4LeB4La24LeK4LavIOC2muC3neC3guC2uuC3miDgt4DgtqDgtrEg4Laa4LeS4La64LeA4LeT4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl93cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSI4MDkwMjM3NzAyNDMyNTc2Nzg4Ij4i4La04La74LeS4LeB4LeT4La94LaaIOC3geC2tuC3iuC2r+C2muC3neC3guC2uuC2pyDgtr3gt5Lgt4Dgt5LgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjI3MTE1NjE5OTQ0OTczNjE2NDYiPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4LeB4La24LeK4Lav4Laa4Led4LeC4La64LanIOC3gOC2oOC2sSDgtpHgtprgtq3gt5Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9ib29rbWFya3MiIG1zZ2lkPSIxOTQ5NTE5NjczMTAzOTY4MjI5Ij4i4La04LeS4Lan4LeU4LeD4Lax4LeKIOC3g+C3hCDgtongtq3gt5Lgt4Tgt4/gt4PgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Jvb2ttYXJrcyIgbXNnaWQ9IjQxNjk3NzE2MDYyNTc5NjMwMjgiPiLgtrTgt5Lgtqfgt5Tgt4PgtrHgt4og4LeD4LeEIOC2tuC3iuKAjeC2u+C3gOC3iuC3g+C2uyDgtongtq3gt5Lgt4Tgt4/gt4Pgtrog4LeA4LeZ4LatIOC2jeC2ouC3lCDgtrTgt4rigI3gtrvgt4Dgt5rgt4HgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2RldmljZUFsYXJtcyIgbXNnaWQ9IjYxMTc3MDQ2Mjk3Mjg4MjQxMDEiPiLgt4Pgt5PgtrHgt5Tgt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RldmljZUFsYXJtcyIgbXNnaWQ9IjQ3NjkzNTYzNjIyNTE2NDExNzUiPiLgt4Pgt5PgtrHgt5Tgt4Ag4LeD4Laa4LeD4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl92b2ljZW1haWwiIG1zZ2lkPSI0MTYyMjM3MTQ1MDI3NTkyMTMzIj4i4LeE4LasIOC2reC3kOC2tOC3keC2vSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfdm9pY2VtYWlsIiBtc2dpZD0iMjQ5ODQwMzk2OTg2Mjk1MTM5MyI+IuC3hOC2rCDgtq3gt5DgtrTgt5Hgtr0g4LeA4LeZ4LatIOC2jeC2ouC3lCDgtrTgt4rigI3gtrvgt4Dgt5rgt4HgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX21pY3JvcGhvbmUiIG1zZ2lkPSIxNzE1Mzk5MDAyNTAwNDM0NjQiPiLgtrjgtrrgt5Lgtprgt4rigI3gtrvgt5zgt4bgt53gtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX21pY3JvcGhvbmUiIG1zZ2lkPSI3MTA2NjE4Mjg2OTA1NzM4NDA4Ij4i4LeB4La24LeK4Lav4La6IOC2tOC2p+C3kuC2nOC2rSDgtprgt5Lgtrvgt5Pgtrjgtqcg4La44La64LeS4Laa4LeK4oCN4La74Lec4LeG4Led4Lax4La6IOC3gOC3meC2rSDgto3gtqLgt5Qg4La04LeK4oCN4La74LeA4Lea4LeB4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jYW1lcmEiIG1zZ2lkPSI0ODIwMzcyNDk1ODk0NTg2NjE1Ij4i4Laa4LeQ4La44La74LeP4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19jYW1lcmEiIG1zZ2lkPSIyOTMzNjY3MzcyMjg5NTY3NzE0Ij4i4Lah4LeP4La64LeP4La74LeW4La0IOC3hOC3nSDgt4Dgt5Pgtqngt5Lgtrrgt50g4Lac4LeK4oCN4La74LeE4Lar4La6IOC3g+C2s+C3hOC3jyDgtprgt5Dgtrjgtrvgt4/gt4Ag4LeA4LeZ4LatIOC2jeC2ouC3lCDgtrTgt4rigI3gtrvgt4Dgt5rgt4HgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3NjcmVlbmxvY2siIG1zZ2lkPSI4Mjc1NTAwMTczMzMwNzE4MTY4Ij4i4LaF4Lac4LeU4LeF4LeUIOC2reC3kuC2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc2NyZWVubG9jayIgbXNnaWQ9IjcwNjc0OTcxMjg5MjU0OTk0MDEiPiLgtpTgtrbgtpzgt5og4LaL4La04LeP4LaC4Lac4La64LeaIOC2heC2nOC3lOC3heC3lCDgtq3gt5Lgtrvgtrrgt5og4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74LeS4Lat4LeK4LeA4La64LanIOC2tuC2veC2tOC3j+C2sSDgt4Tgt5Dgtprgt5Lgtrrgt4/gt4AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2FwcEluZm8iIG1zZ2lkPSI4MDI4Nzg5NzYyNjM0MTQ3NzI1Ij4i4LaU4La24Lac4LeaIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr0g4Lat4Lec4La74Lat4LeU4La74LeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hcHBJbmZvIiBtc2dpZD0iMzk1MDM3ODUzODA0OTYyNTkwNyI+IuC2lOC2tuC2nOC3miDgtovgtrTgt4/gtoLgtpzgtrrgt5og4LeA4LeZ4Lax4Lat4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr0g4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74LeS4Lat4LeK4LeA4La64LanIOC2tuC2veC2tOC3keC2uOC3iiDgtprgt4Ug4LeE4LeQ4Laa4LeSIOC2tuC3gC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfd2FsbHBhcGVyIiBtc2dpZD0iMzg1MDI4MDE1ODA0MTE3NTk5OCI+IuC2tuC3kuC2reC3lOC2tOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfd2FsbHBhcGVyIiBtc2dpZD0iNTYzMDQxNzg1NDc1MDU0MDE1NCI+IuC2i+C2tOC3j+C2guC2nCDgtrbgt5Lgtq3gt5TgtrTgtq3gt5og4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC3gOC3meC2seC3g+C3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N5c3RlbUNsb2NrIiBtc2dpZD0iNDA2NTM1NzU5MjM2NjEyOTkyIj4i4LaU4La74La94Led4LeD4LeU4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeXN0ZW1DbG9jayIgbXNnaWQ9IjM5NDQzNTk4MzM2MjQwOTQ5OTIiPiLgtovgtrTgt4/gtoLgtpwg4Laa4LeP4La9IOC3hOC3nSDgtprgt4/gtr0g4Laa4La94LeP4La0IOC3gOC3meC2seC3g+C3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N0YXR1c0JhciIgbXNnaWQ9IjIwOTU4NjI1NjgxMTM5NDUzOTgiPiLgtq3gtq3gt4rgt4Ag4Lat4LeT4La74LeU4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdGF0dXNCYXIiIG1zZ2lkPSI2MjQyNTkzNDMyMjI2ODA3MTcxIj4i4LaL4La04LeP4LaC4LacIOC2reC2reC3iuC3gCDgtq3gt5Pgtrvgt5Qg4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC3gOC3meC2seC3g+C3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N5bmNTZXR0aW5ncyIgbXNnaWQ9IjMzNDE5OTA5ODYxNDc4MjY1NDEiPiLgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4LeD4LeQ4Laa4LeD4LeT4La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeW5jU2V0dGluZ3MiIG1zZ2lkPSI3NjAzMTk1MjY1MTI5MDMxNzk3Ij4i4LeD4La44La44LeU4LeE4LeU4La74LeK4LatIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4Dgt5ngtq0g4La04LeK4oCN4La74LeA4Lea4LeB4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hY2NvdW50cyIgbXNnaWQ9IjMzNTk2NDYyOTExMjUzMjU1MTkiPiLgtpTgtrbgtpzgt5og4Lac4LeS4Lar4LeU4La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hY2NvdW50cyIgbXNnaWQ9IjQ5NDg3MzI2NDE4MjcwOTEzMTIiPiLgtr3gtrbgt4/gtpzgtq0g4LeE4LeQ4Laa4LeSIOC2nOC3kuC2q+C3lOC2uOC3iiDgt4Dgtr3gtqcg4La04LeK4oCN4La74LeA4Lea4LeBIOC3gOC3k+C2uC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfaGFyZHdhcmVDb250cm9scyIgbXNnaWQ9Ijc5OTgyMTQ5Njg3OTE1OTkzMjYiPiLgtq/gt5jgtqngt4/gtoLgtpwg4La04LeP4La94LaaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19oYXJkd2FyZUNvbnRyb2xzIiBtc2dpZD0iNDM1NzA1Nzg2MTIyNTQ2MjcwMiI+IuC3hOC3keC2seC3iuC2qeC3iuC3g+C3meC2p+C2uuC3miDgtq/gt5jgtqngt4/gtoLgtpwg4LeA4La94LanIOC3g+C3mOC2ouC3lOC3gOC2uCDgtrTgt4rigI3gtrvgt4Dgt5rgt4Eg4LeA4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9waG9uZUNhbGxzIiBtc2dpZD0iOTA2NzE3Mzk4ODMyNTg2NTkyMyI+IuC2r+C3lOC2u+C2muC2ruC2sSDgtofgtrjgtq3gt5Tgtrjgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3Bob25lQ2FsbHMiIG1zZ2lkPSI3NDg5NzAxNjIwNDQ2MTgzNzcwIj4i4Lav4LeU4La74Laa4Lau4LaxIOC2h+C2uOC2reC3lOC2uOC3iiDgtrHgt5Lgtrvgt5Pgtprgt4rgt4Lgtqvgtrog4Laa4La74Lax4LeK4LaxLCDgtrTgtqfgt5Lgtpzgtq0g4Laa4La74Lax4LeK4LaxIOC3g+C3hCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtq3gt4rgtrjgtpog4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zeXN0ZW1Ub29scyIgbXNnaWQ9IjQ2NTIxOTE2NDQwODI3MTQwNDgiPiLgtrTgtq/gt4rgtrDgtq3gt5Ig4La44LeZ4LeA4La94La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeXN0ZW1Ub29scyIgbXNnaWQ9IjgxNjIxMDI2MDIxOTA3MzQzMDUiPiLgtrTgtq/gt4rgtrDgtq3gt5Lgtrrgt5og4La04LeE4La9IOC2uOC2p+C3iuC2p+C2uOC3iiDgtrTgt4rigI3gtrvgt4Dgt5rgt4Hgtrog4LeD4LeEIOC2tOC3j+C2veC2seC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGV2ZWxvcG1lbnRUb29scyIgbXNnaWQ9IjM0NDYxNjQ1ODQ3MTA1OTY1MTMiPiLgt4PgtoLgt4Dgtrvgt4rgtrDgtpog4La44LeZ4LeA4La94La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kZXZlbG9wbWVudFRvb2xzIiBtc2dpZD0iNzA1ODgyODAzMjM1ODE0MjAxOCI+IuC2uuC3meC2r+C3lOC2uOC3iiDgt4PgtoLgt4Dgtrvgt4rgtrDgtprgtrrgtrHgt4og4LeD4Laz4LeE4LePIOC2tOC2uOC2q+C2muC3iiDgtoXgt4Dgt4Hgt4rigI3gtrog4LeA4LeS4LeB4Lea4LeC4LeP4LaC4LacLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaXNwbGF5IiBtc2dpZD0iNDI3OTkwOTY3NjAzNjQwMjYzNiI+IuC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4ogVUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Rpc3BsYXkiIG1zZ2lkPSI2MDUxMDAyMDMxOTMzMDEzNzE0Ij4i4LeA4LeZ4Lax4Lat4LeKIOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2vSBVSSDgt4PgtrPgt4Tgt48g4La24La94La04LeP4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zdG9yYWdlIiBtc2dpZD0iMTk3MTExODc3MDU0NjMzNjk2NiI+IuC2huC2oOC2uuC2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3NDQyMzE4NTAyNDQ2ODc0OTk5Ij4iVVNCIOC2huC2oOC2uuC2seC2uiDgt4Dgt5ngtq0g4La04LeK4oCN4La74LeA4Lea4LeB4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjkyMDMzMDIyMTQ5MTUzNTU3NzQiPiJTRCDgtrTgtq0g4LeA4LeZ4LatIOC2tOC3iuKAjeC2u+C3gOC3muC3geC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNzkxOTAyNTYwMjI4MzU5MzkwNyI+IuC2tOC3iuKAjeC2u+C3gOC3muC3geC3iuKAjeC2uuC2reC3jyDgt4Dgt5Lgt4Hgt5rgt4Lgt4/gtoLgtpwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FjY2Vzc2liaWxpdHlGZWF0dXJlcyIgbXNnaWQ9IjQyMDUxOTY4ODE2NzgxNDQzMzUiPiLgtovgtrTgtprgt4/gtrvgt5Pgt4DgtrEg4Lat4LeP4Laa4LeK4LeC4LarIOC2ieC2veC3iuC2veC3k+C2uOC3iiDgtprgt4Ug4LeE4LeQ4Laa4LeSIOC3gOC3kuC3geC3muC3guC3j+C2guC2nC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJldHJpZXZlV2luZG93Q29udGVudCIgbXNnaWQ9IjM5MDE3MTc5MzY5MzAxNzAzMjAiPiLgtprgt4Dgt5Tgt4Xgt5Qg4LaF4Lax4LeK4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC2veC2tuC3j+C2nOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXRyaWV2ZVdpbmRvd0NvbnRlbnQiIG1zZ2lkPSIzNzcyMjI1MDA4NjA1MzEwNjcyIj4i4LaU4La2IOC2heC2seC3iuC2reC2u+C3iuC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C3kyDgt4DgtrEg4Laa4LeA4LeU4LeF4LeU4LeA4LeaIOC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uiDgtrTgtrvgt5Pgtprgt4rgt4Lgt48g4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdFRvdWNoRXhwbG9yYXRpb24iIG1zZ2lkPSIzMTA4NzIzMzY0Njc2NjY3MzIwIj4i4LeD4LeK4La04La74LeK4LeB4La64LeZ4Lax4LeKIOC2nOC3gOC3muC3guC2q+C2uiDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV9kZXNjX2NhblJlcXVlc3RUb3VjaEV4cGxvcmF0aW9uIiBtc2dpZD0iNTgwMDU1MjUxNjc3OTI0OTM1NiI+IuC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrEg4LaF4La64LeS4Lat4La4IOC3hOC2rCDgtrHgtpzgt48g4Laa4Lat4LePIOC2muC3meC2u+C3meC2seC3lCDgtofgtq3gt5Ig4LaF4Lat4La7IOC2ieC2guC2nOC3kuC2reC3kiDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4Lat4LeS4La74La6IOC2nOC3gOC3muC3guC2q+C2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La04LeU4LeF4LeU4LeA4Lax4LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdEVuaGFuY2VkV2ViQWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjE3Mzk4ODE3NjY1MjI1OTQwNzMiPiLgtovgt4Pgt4Pgt4og4LeA4LeZ4La24LeKIOC2tOC3iuKAjeC2u+C3gOC3muC3geC3iuKAjeC2uuC2reC3j+C3gCDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV9kZXNjX2NhblJlcXVlc3RFbmhhbmNlZFdlYkFjY2Vzc2liaWxpdHkiIG1zZ2lkPSI3ODgxMDYzOTYxNTA3NTExNzY1Ij4i4La64LeZ4Lav4LeU4La44LeKIOC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uuC2pyDgtrTgt4rigI3gtrvgt4Dgt5rgt4Hgt4rigI3gtrrgtq3gt4/gt4Dgtrog4LeA4LeQ4Lap4LeS4LeA4LaxIOC2veC3meC3gyDgt4Pgtprgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2h+C2reC3kOC2uOC3iiDgt4Dgt5Lgtqcg4LeD4LeK4Laa4LeK4oCN4La74LeS4La04LeK4Lan4LeKIOC3g+C3iuC2ruC3j+C2tOC2seC2uiDgtprgtrsg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdEZpbHRlcktleUV2ZW50cyIgbXNnaWQ9IjIxMDM0NDAzOTE5MDI0MTIxNzQiPiLgtpTgtrYg4Lan4La64LeS4La04LeKIOC2muC3hSDgtrTgt5ngt4Ug4La24La94Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV9kZXNjX2NhblJlcXVlc3RGaWx0ZXJLZXlFdmVudHMiIG1zZ2lkPSI3NDYzMTM1MjkyMjA0MTUyODE4Ij4i4Lar4La64LeA4La74La04Lat4LeKIOC2heC2guC2miDgt4Pgt4Qg4La44LeU4La74La04LavIOC3gOC3kOC2seC3kiDgtrTgt5Tgtq/gt4rgtpzgtr3gt5Lgtpog4Lav4Lat4LeK4LatIOC2h+C2reC3lOC3heC2reC3iiDgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdGF0dXNCYXIiIG1zZ2lkPSI3NDE3MTkyNjI5NjAxODkwNzkxIj4i4Lat4Lat4LeK4LeAIOC2reC3k+C2u+C3lOC3gCDgtoXgtrbgtr0g4Laa4La74Lax4LeK4LaxIOC3hOC3nSDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyIiBtc2dpZD0iODQzNDY2OTU0OTUwNDI5MDk3NSI+IuC2reC2reC3iuC3gCDgtq3gt5Pgtrvgt5Tgt4Ag4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgt4Tgt50g4La04Lav4LeK4Law4Lat4LeSIOC2seC3kuC2u+C3luC2tOC2miDgtpHgtprgtq3gt5Qg4LeE4LedIOC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdGF0dXNCYXJTZXJ2aWNlIiBtc2dpZD0iNzI0NzI4MTkxMTM4NzkzMTQ4NSI+IuC2reC2reC3iuC3gCDgtq3gt5Pgtrvgt5Tgt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdGF0dXNCYXJTZXJ2aWNlIiBtc2dpZD0iNzE2MTEzNjYwNzk1OTc2MDYwIj4i4Lat4Lat4LeK4LeAIOC2reC3k+C2u+C3lOC3gCDgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9leHBhbmRTdGF0dXNCYXIiIG1zZ2lkPSIxMTQ4MTk4Nzg1OTM3NDg5MjY0Ij4i4Lat4Lat4LeK4LeAIOC2reC3k+C2u+C3lOC3gCDgtq/gt5Lgtpwg4LeE4LeQ4La74LeT4La4L+C3hOC3kOC2muC3kuC2veC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2V4cGFuZFN0YXR1c0JhciIgbXNnaWQ9IjY5MTc1NDk0MzcxMjk0MDExMzIiPiLgtq3gtq3gt4rgt4Ag4Lat4LeT4La74LeU4LeAIOC2r+C3kuC2nCDgt4Tgt5Dgtrvgt5Pgtrjgtqcg4LeE4LedIOC3hOC3kOC2muC3kuC3heC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iMzkwNjAwNzgzMTE5Mjk5MDk0NiI+IuC2tOC3kuC2p+C3gOC2sSDgtofgtrjgtq3gt5Tgtrjgt4og4LeA4La9IOC2uOC2nCDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcHJvY2Vzc091dGdvaW5nQ2FsbHMiIG1zZ2lkPSI1MzMxMzE4OTMxOTM3NDAyMDQwIj4i4La04LeS4Lan4LeA4LaxIOC2h+C2uOC2reC3lOC2uOC3iiDgt4Pgtprgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC3g+C3hCDgtofgtrjgtq3gt5Pgtrjgtqcg4Lax4LeS4La64La44LeS4LatIOC2heC2guC2muC2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngtrgg4LaF4LeA4LeD4La74La64LeZ4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgtrTgt5Lgtqfgt4DgtrEg4LaH4La44Lat4LeU4La44LeKIOC2seC3kuC2u+C3k+C2muC3iuC3guC2q+C2uiwg4Lax4LeQ4LeA4LatIOC3hOC3kOC2u+C3gOC3k+C2uCDgt4Tgt50g4LeA4LeQ4LeF4Laa4LeK4LeA4LeT4La4IOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlU21zIiBtc2dpZD0iODY3MzQ3MTc2ODk0Nzg5NTA4MiI+IuC2muC3meC2p+C3kiDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La94La24LeP4Lac4LeQ4Lax4LeT4La4IChTTVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVNtcyIgbXNnaWQ9IjY0MjQzODc3NTQyMjg3NjY5MzkiPiJTTVMg4La04Lar4LeS4LeA4LeS4LapIOC2veC3kOC2tuC3k+C2uOC2pyDgt4Pgt4Qg4Laa4LeK4oCN4La74LeS4La64LeP4Lat4LeK4La44LaaIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4LeE4LeSIOC2reC3muC2u+C3lOC2uCDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaU4La24Lac4LeaIOC2i+C2tOC3j+C2guC2nOC2uuC2pyDgtr3gt5Dgtrbgt5ngtrEg4La04Lar4LeS4LeA4LeS4LapIOC2heC2sOC3k+C2muC3iuC3guC2q+C2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeE4LeQ4Laa4LeS4LeA4LeT4La4IOC3gOC2sSDgtoXgtq3gtrssIOC2kuC3gOC3jyDgtpTgtrbgtqcg4Lax4Lec4La04LeZ4Lax4LeK4LeA4LePIOC2uOC2muC3jyDgtq/gt5Dgtrjgt5Pgtrjgtqfgtq8g4LeE4LeQ4Laa4LeSIOC3gOC3k+C2uOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVNbXMiIG1zZ2lkPSIxODIxMzE3MzQ0NjY4MjU3MDk4Ij4i4La04LeZ4LeFIOC2tOC2q+C3kuC3gOC3lOC2qSDgtr3gtrbgt4/gtpzgtrHgt4rgtrEgKE1NUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlTW1zIiBtc2dpZD0iNTMzMDE5NDM3MjYzMjEyMjYwIj4iTU1TIOC2tOC2q+C3kuC3gOC3kuC2qSDgt4Pgt5zgtrrgt48g4La94La24LeP4Lac4LeQ4Lax4LeT4La44LanIOC3g+C3hCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtq3gt4rgtrjgtpog4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrrgt5ngtq/gt5Tgtrgg4Lax4LeS4La74LeT4Laa4LeK4LeC4Lar4La6IOC2muC2u+C2seC3lCDgtr3gtrbgtrEg4LaF4Lat4La7IOC2lOC2tuC2pyDgtr3gt5Dgtrbgt5TgtrEg4La04Lar4LeS4LeA4LeS4LapIOC2tOC3meC2seC3iuC3gOC3k+C2uOC3meC2seC3iiDgtq3gt5zgtrvgt4Dgtrgg4La44Laa4LePIOC2r+C3kOC2uOC3kuC2uiDgt4Tgt5Dgtprgt5Ig4La24LeAIOC2uOC3meC2uOC2n+C3kuC2seC3iiDgtoXgtq/gt4Tgt4Pgt4og4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9IjE4MDM0Nzc2NjA4NDYyODgwODkiPiLgt4Tgtq/gt5Lgt4Pgt5Ig4LeA4LeS4Laa4LeP4LeB4LaxIOC2veC2tuC3jyDgtpzgt5DgtrHgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlRW1lcmdlbmN5QnJvYWRjYXN0IiBtc2dpZD0iODQ4NTI0MDcwMjYyNDMxOTc0Ij4i4LeE4Lav4LeS4LeD4LeSIOC3gOC3kuC2muC3j+C3gSDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La94LeQ4La24LeT4La44LanIOC3g+C3hCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtq3gt4rgtrjgtpog4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrTgtq/gt4rgtrDgtq3gt5Ig4La64LeZ4Lav4LeU4La44LeKIOC3gOC2veC2pyDgtrTgtrjgtqvgtprgt4og4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uiDgtoXgtq/gt4/gt4Ug4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENlbGxCcm9hZGNhc3RzIiBtc2dpZD0iMTU5ODMyODg0MzYxOTY0NjE2NiI+IuC3g+C3meC2veC3iiDgtrTgt4rigI3gtrvgtqDgt4/gtrvgtqsg4La04Lar4LeS4LeA4LeS4LapIOC2muC3kuC2uuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDZWxsQnJvYWRjYXN0cyIgbXNnaWQ9IjYzNjE5NzI3NzYwODA0NTg5NzkiPiLgtpTgtrbgtpzgt5og4LaL4La04LeP4LaC4Lac4La64LanIOC2veC3kOC2tuC3lOC2q+C3lCDgt4Pgt5ngtr3gt4og4LeA4LeS4Laa4LeP4LeB4LaxIOC2tOC2q+C3kuC3gOC3kuC2qSDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2lOC2tuC2pyDgt4Tgtq/gt5Lgt4Pgt5Ig4LaF4LeA4LeD4LeK4Lau4LeP4LeA4Lax4LeKIOC2tOC3kuC3heC3kuC2tuC2syDgtoXgtrHgtq3gt5Tgtrvgt5Qg4LaH4Laf4LeA4LeT4La44LanIOC3g+C3meC2veC3iiDgt4Dgt5Lgtprgt4/gt4HgtrEg4La04Lar4LeS4LeA4LeS4LapIOC2h+C2reC3kOC2uOC3iiDgt4Pgt4rgtq7gt4/gtrHgt4Dgtr0g4LeD4LeS4LanIOC2uuC3gOC2seC3lCDgtr3gtrbgtrrgt5IuIOC3hOC2r+C3kuC3g+C3kiDgt4Pgt5ngtr3gt4og4LeA4LeS4Laa4LeP4LeB4LaxIOC2veC3kOC2tuC3meC2sSDgtoXgt4Dgt4Pgt4rgtq7gt4/gt4Dgtprgtq/gt5MsIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4La44Laf4LeS4Lax4LeKIOC2lOC2tuC2nOC3miDgtovgtrTgt4/gtoLgtpzgtrrgtqcg4Laa4LeP4La74LeK4La6IOC3g+C3j+C2sOC2seC2uuC2pyDgt4Tgt50g4Laa4LeK4oCN4La74LeS4La64Laa4La74Lar4La64LanIOC2tuC3j+C2sOC3jyDgt4Pgt5Lgtq/gt5Tgt4Dgt5Lgtrog4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFNtcyIgbXNnaWQ9IjU2MDA4MzA2MTIxNDc2NzE1MjkiPiJTTVMg4La04Lar4LeS4LeA4LeS4LapIOC2uuC3kOC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRTbXMiIG1zZ2lkPSI3MDk0NzI5Mjk4MjA0OTM3NjY3Ij4iU01TIOC2tOC2q+C3kuC3gOC3kuC2qSDgtrrgt5Dgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uOC2n+C3kuC2seC3iiDgtrbgtr3gt4/gtrTgt5zgtrvgt5zgtq3gt4rgtq3gt5Qg4Lax4Lec4LeA4LeWIOC2tOC3iuKAjeC2u+C2reC3kuC2teC2vSDgtoXgtq3gt4og4LeA4LeS4La6IOC3hOC3kOC2mi4g4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtpTgtrbgtpzgt5og4Lat4LeE4LeA4LeU4La74LeU4LeA4Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La64LeQ4LeA4LeT4La4IOC2uOC2n+C3kuC2seC3iiDgtpTgtrbgtpzgt5og4La44LeU4Lav4La94LeKIOC3gOC3kOC2uiDgtprgtr0g4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9Ijg3MTM4ODkxMDUzMDU5NDMyMDAiPiLgtrTgtqvgt5Lgt4Dgt5Lgtqkg4LeD4LeS4Lav4LeU4LeA4LeT4La4IOC3hOC2u+C3hOC3jyDgtrTgt4rigI3gtrvgtq3gt5LgtqDgt4/gtrsg4La64LeQ4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9IjcxMDc2NDg1NDg0Njg3Nzg3MzQiPiLgtrTgt5Dgtrjgt5Lgtqvgt5ngtrEg4LaH4La44Lat4LeU4La44LeKIOC3g+C2s+C3hOC3jyDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4LaU4LeD4LeK4LeD4LeaIOC2tOC3iuKAjeC2u+C2reC3kuC2oOC3j+C2uyDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt4og4LeE4LeD4LeU4La74LeU4LeA4LeT4La44LanIOC3gOC3meC2seC2reC3iiDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La64LeZ4Lav4LeU4La44LeKIOC3g+C2s+C3hOC3jyDgtongtr3gt4rgtr3gt5Pgtrjgt4og4La64LeQ4LeA4LeT4La44LanLCDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTbXMiIG1zZ2lkPSI4NzQ1MDg2NTcyMjEzMjcwNDgwIj4i4LaU4La24Lac4LeaIOC2tOC3meC3hSDgtrTgtqvgt5Lgt4Dgt5Tgtqkg4Laa4LeS4La64LeA4Lax4LeK4LaxIChTTVMg4LeE4LedIE1NUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNDY3OTgxNTQ4Njg0NzM1NTIyIj4i4LaU4La24Lac4LeaIOC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgt4Tgt50gU0lNIOC2tOC2reC3miDgtobgtqDgtrrgtrHgtrog4Laa4La7IOC2h+C2reC3kiBTTVMg4La04Lar4LeS4LeA4LeS4LapIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC3hOC3nSDgt4Dgt5Lgt4Hgt4Dgt4/gt4Pgtq/gtrrgt5Ig4La24LeA4LeS4Lax4LeKIOC2reC3nOC2u+C3gOC2uCDgt4Pgt5Lgtrrgtr3gt5QgU01TIOC2tOC2q+C3kuC3gOC3kuC2qSDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La44LeZ4La44Lac4LeS4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNjk1OTY3NTMzNDU3MjQwNTUwIj4i4LaU4La24Lac4LeaIOC2r+C3lOC2u+C2muC2ruC2seC2uuC3miDgt4Tgt50gU0lNIOC2tOC2reC3miDgtobgtqDgtrrgtrHgtrog4Laa4La74LaxIOC2veC2ryBTTVMg4La04Lar4LeS4LeA4LeS4LapIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC3hOC3nSDgt4Dgt5Lgt4Hgt4rgt4Dgt4/gt4Pgtq/gt4/gtrrgt5Mg4La24LeA4LeS4Lax4LeKIOC2reC3nOC2u+C3gOC2uCDgt4Pgt5Lgtrrgtr3gt5QgU01TIOC2tOC2q+C3kuC3gOC3kuC2qSDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La44LeZ4La44Lac4LeS4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTbXMiIG1zZ2lkPSIzMjE2OTUwNDcyNjM2MjE0Nzc0Ij4i4LaU4La24Lac4LeaIOC2muC3meC2p+C3kiDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4LeD4LaC4LeD4LeK4Laa4La74Lar4La6IOC2muC3kuC2u+C3k+C2uCAoU01TIOC3hOC3nSBNTVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjUxNjA0MTM5NDc3OTQ1MDE1MzgiPiLgtpTgtrbgtpzgt5og4Lan4LeQ4La24LeK4La94Lan4La64LeaIOC3hOC3nSBTSU0g4La04Lat4LeaIOC2nOC2tuC2qeC3jyDgtprgtrsg4LaH4Lat4LeSIFNNUyDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4LeA4LeZ4LatIOC2veC3kuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtpTgtrbgtpzgt5og4La04Lar4LeS4LeA4LeS4LapIOC2uOC2muC3jyDgtq/gt5Dgtrjgt5Lgtrog4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzI2ODY2ODcwOTA1MjMyODU2NyI+IuC2lOC2tuC2nOC3miDgtqfgt5Dgtrbgt4rgtr3gtqfgtrrgt5og4LeE4LedIFNJTSDgtrTgtq3gt5og4LaG4Lag4La64Lax4La6IOC2muC2u+C2sSDgtr3gtq8gU01TIOC2tOC2q+C3kuC3gOC3kuC2qSDgtr3gt5Lgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4LaU4La24Lac4LeaIOC2tOC2q+C3kuC3gOC3kuC2qSDgtrjgtprgt48g4Lav4LeQ4La44LeS4La6IOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVXYXBQdXNoIiBtc2dpZD0iNTk5MTM5ODcxMTkzNjU5MDQxMCI+IuC2tOC3meC3hSDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La94La24LeP4Lac4LeQ4Lax4LeT4La4IChXQVApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI3NDgyMzIxOTAyMjA1ODMzODUiPiJXQVAg4La04Lar4LeS4LeA4LeS4LapIOC2veC3kOC2tuC3k+C2uOC2pyDgt4Pgt4Qg4Laa4LeK4oCN4La74LeS4La64LeP4LeA4La94LeSIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uuC3meC3hOC3kiDgtpTgtrbgt4Ag4LaS4LeA4LeP4LanIOC2tOC3meC2seC3iuC3gOC3k+C2uOC2muC3kuC2seC3iiDgtq3gt5zgtrvgt4Ag4LaU4La24LanIOC2tOC2q+C3kuC3gOC3kuC2qSDgtrHgt5Lgtrvgt5Pgtprgt4rgt4Lgtqvgtrrgtqcg4LeE4LedIOC2uOC3kOC2muC3k+C2uOC2pyDgt4Tgt5Dgtprgt5Lgtrrgt4/gt4Ag4LaH4Lat4LeU4LeF4Lat4LeKIOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFRhc2tzIiBtc2dpZD0iNjQ2NjA5NTM5NjYyMzkzMzkwNiI+IuC2sOC3j+C3gOC2seC2uiDgt4DgtrEg4La64LeZ4Lav4LeU4La44LeKIOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRhc2tzIiBtc2dpZD0iNzQ1NDIxNTk5NTg0NzY1ODEwMiI+IuC2r+C3kOC2seC2pyDgt4Pgt4Qg4La44LeR4LatIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2reC3iuC2uOC2miDgtprgt4/gtrvgt4rgtrrgtrrgtrHgt4og4La04LeS4LeF4LeS4La24LazIOC3gOC3kuC3g+C3iuC2reC2u+C3j+C2reC3iuC2uOC2miDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LeD4Lec4La64LePIOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La6IOC2muC3lOC2uOC2sSDgtrrgt5ngtq/gt5Tgtrjgt4og4LaL4La04LeP4LaC4Lac4La64LeaIOC2t+C3j+C3gOC3kuC2reC3jyDgtprgtrvgtrHgt4rgtrHgt5rgtq8g4La64LaxIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr3gtqcg4LeD4Lec4La64LePIOC2nOC3kOC2seC3k+C2uOC2pyDgtongtqkg4Lav4LeS4La6IOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVyYWN0QWNyb3NzVXNlcnMiIG1zZ2lkPSI3MTE0MjU1MjgxOTQ0MjExNjgyIj4i4La04La74LeS4LeB4LeT4La94Laa4La64Lax4LeKIOC2heC2reC2uyDgtoXgtrHgt4rgtq3gtrvgt4rgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgt5Mg4LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJhY3RBY3Jvc3NVc2VycyIgbXNnaWQ9IjM2NDY3MDk2MzYyMzM4NTc4NiI+IuC2i+C2tOC3j+C2guC2nOC2uuC3miDgt4Dgt5Lgt4Dgt5LgtrAg4La04La74LeS4LeB4LeT4La94Laa4La64Lax4LeKIOC3hOC2u+C3hOC3jyDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4DgtrHgt4og4Lav4LeQ4Laa4LeK4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtprgtrrgtrHgt4og4LaF4Lat4La7IOC2huC2u+C2muC3iuC3guC3j+C3gCDgtprgtqngtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5Lgt4Pgt5LgtrHgt4og4La44LeZ4La6IOC2t+C3j+C3gOC3kuC2reC3jyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaJ4LapIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVyYWN0QWNyb3NzVXNlcnNGdWxsIiBtc2dpZD0iMjU2NzczNDI4NTU0NTA3NDEwNSI+IuC2tOC2u+C3kuC3geC3k+C2veC2muC2uuC2seC3iiDgtoXgtq3gtrsg4LaF4Lax4LeK4Lat4La74LeKIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C3kyDgt4Dgt5Pgtrjgtqcg4LeD4La44LeK4La04LeW4La74LeK4LarIOC2tuC2veC2tOC2reC3iuKAjeC2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludGVyYWN0QWNyb3NzVXNlcnNGdWxsIiBtc2dpZD0iMzc2ODQxMzY4Mzk1NTAyMzY2Ij4i4La04La74LeS4LeB4LeT4La94Laa4La64Lax4LeKIOC3hOC2u+C3hOC3jyDgt4Pgt5Lgtq/gt5Qg4Laa4LeFIOC3hOC3kOC2muC3kiDgt4Pgt5Lgtrrgtr3gt5Qg4LaF4Lax4LeK4Lat4La74LeKIOC2muC3iuKAjeC2u+C3kuC2uuC3jyDgt4Dgtr3gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzZXJzIiBtc2dpZD0iMTY3NjE1MDkxMTY3MjI4MjQyOCI+IuC2tOC2u+C3kuC3geC3k+C2veC2muC2uuC2seC3iiDgtprgt4XgtrjgtrHgt4/gtprgtrvgtqvgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNlcnMiIG1zZ2lkPSI4NDA5MzA2NjY3NjQ1MzU1NjM4Ij4i4LeA4LeS4LeD4LeK4Lat4La7IOC2veC2tuC3jyDgtpzgt5DgtrHgt5PgtrgsIOC2seC3kuC2u+C3iuC2uOC3j+C2q+C2muC2u+C2q+C2uiwg4La44Laa4LeP4Lav4LeQ4La44LeT4La4IOC2h+C2reC3lOC3heC3lCDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtprgtrrgtrHgt4og4Laa4LeF4La44Lax4LeP4Laa4La74Lar4La64LanIOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0RGV0YWlsZWRUYXNrcyIgbXNnaWQ9IjYyMjk0Njg2NzQ3NTM1Mjk1MDEiPiLgtrDgt4/gt4DgtrHgtrog4LeA4LaxIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr0g4Lat4Lec4La74Lat4LeU4La74LeUIOC3g+C3nOC2uuC3jyDgtr3gtrbgt4/gtpzgt5DgtrHgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXREZXRhaWxlZFRhc2tzIiBtc2dpZD0iMTUzODI0NzQxNDQwNzE3NTk5Ij4i4Lav4LeQ4Lax4LanIOC3g+C3hCDgtrjgt5Hgtq3gtpog4Laa4LeK4oCN4La74LeS4La64LeP4Lat4LeK4La44LaaIOC2muC3j+C2u+C3iuC2uuC2uuC2seC3iiDgtrTgt5Lgt4Xgt5LgtrbgtrMg4LeA4LeS4LeD4LeK4Lat4La74LeP4Lat4LeK4La44LaaIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtr3gtrbgt4/gtpzgt5DgtrHgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtoXgtrHgt5ngtprgt5Tgtq3gt4og4La64LeZ4Lav4LeU4La44LeKIOC2tOC3kuC3heC3kuC2tuC2syDgtrTgt5Tgtq/gt4rgtpzgtr3gt5Lgtpog4Lat4Lec4La74Lat4LeU4La74LeUIOC3g+C3nOC2uuC3jyDgtpzgt5DgtrHgt5Pgtrjgtqcg4LaJ4LapIOC2reC3kuC2tuC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3Jlb3JkZXJUYXNrcyIgbXNnaWQ9IjIwMTg1NzU1MjY5MzQ0MjI3NzkiPiLgtrDgt4/gt4DgtrHgtrog4LeA4LaxIOC2uuC3meC2r+C3lOC2uOC3iiDgtrHgt5Dgt4Dgtq0g4LaF4Lax4LeU4La04LeS4LeF4LeS4LeA4LeZ4La94LanIOC3g+C3kOC2muC3g+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Jlb3JkZXJUYXNrcyIgbXNnaWQ9Ijc3MzQyMTc3NTQ4Nzc0MzkzNTEiPiLgtrTgt5ngtrvgtrbgt5Lgtrjgtqcg4LeE4LedIOC2tOC3g+C3lOC2tuC3kuC2uOC2pyDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt4og4Lac4LeZ4Lax4La64LeP4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtpTgtrbgtpzgt5og4LaG4Lav4LeP4Lax4La64Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgtrrgt5ngtq/gt5Tgtrgg4La44LeZ4La6IOC3g+C3kuC2r+C3lOC2muC2u+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlbW92ZVRhc2tzIiBtc2dpZD0iNjgyMTUxMzQwMTg3MDM3NzQwMyI+IuC2uuC3meC2r+C3lOC2uOC3iiDgtrDgt4/gt4DgtrHgtrog4Lax4LeA4Lat4LeK4LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVtb3ZlVGFza3MiIG1zZ2lkPSIxMzk0NzE0MzUyMDYyNjM1NDkzIj4i4Laa4LeP4La74LeK4La64La64Lax4LeKIOC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeEIOC2kuC3gOC3j+C2uuC3meC3hOC3kiDgtrrgt5ngtq/gt5Tgtrjgt4og4Lax4LeQ4Lat4LeSIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeZ4Laa4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Tgt5Dgt4Pgt5Lgtrvgt5Pgtrgg4La24LeP4Law4LePIOC2muC3kuC2u+C3k+C2uOC2pyDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjczOTExOTEzODQwMjczMDMwNjUiPiLgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgtprgtrjgt4og4LaF4Lan4LeK4Lan4LeSIOC2muC3heC2uOC2seC3j+C2muC2u+C2q+C2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjE2MTU4ODE5MzMwMzQwODQ0NDAiPiLgt4Dgt5ngtrHgtq3gt4og4La64LeZ4Lav4LeU4La44LeKIOC2sOC3j+C3gOC2seC2uiDgt4DgtrEg4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74Laa4La44LeKIOC2heC2p+C3iuC2p+C3kiDgt4Dgtr3gtqcg4LaR4Laa4Lat4LeUIOC2muC3kuC2u+C3k+C2uOC2pywg4LaJ4LeA4Lat4LeKIOC2muC3kuC2u+C3k+C2uOC2pywg4LeD4LeEIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr0g4LeE4LeQ4LeD4LeS4La74LeT4La4IOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4La44Lac4LeS4Lax4LeKIOC2tuC3j+C2sOC3jyDgt4Dgt5Lgtrog4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhcnRBbnlBY3Rpdml0eSIgbXNnaWQ9IjI5MTg3NjgyMzgwNDUyMDY0NTYiPiLgtpXgtrHgt5Hgtrgg4Laa4LeK4oCN4La74LeS4La64LeP4LeA4Laa4LeKIOC2heC2u+C2ueC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXJ0QW55QWN0aXZpdHkiIG1zZ2lkPSI5OTc4MjM2OTUzNDM1ODQwMDEiPiLgtoXgt4Dgt4Pgtrsg4LaG4La74Laa4LeK4LeC4LeP4LeAIOC3hOC3nSDgtrrgt5Dgt4Dgt5Tgtrjgt4og4Lat4Lat4LeK4LeA4La64LeZ4Lax4LeKIOC2reC3nOC2u+C3gOC2uCDgtpXgtrHgt5Hgtrgg4Laa4LeK4oCN4La74LeS4La64LeP4LeA4Laa4LeKIOC2huC2u+C2uOC3iuC2tyDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjk3NTM4NzExODg2MTg0MjA2MSI+IuC2reC3kuC2uyDgtpzgt5Dgt4XgtrTgt5Tgtrgg4LeD4LeQ4Laa4LeD4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0U2NyZWVuQ29tcGF0aWJpbGl0eSIgbXNnaWQ9IjY5MjA0MzYxODY5MzkxNzM3NCI+IuC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr0g4Lat4LeS4La7IOC2nOC3kOC2veC2tOC3lOC2uOC3iiDgtrjgt4/gtq/gt5Lgtr3gt5Lgtrog4La04LeP4La94Lax4La64LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Dgt5ngtrHgtq3gt4og4La64LeZ4Lav4LeU4La44LeK4LeA4La9IOC3hOC3kOC3g+C3kuC2u+C3k+C2uCDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC2muC3kOC2qeC3kuC2uiDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXREZWJ1Z0FwcCIgbXNnaWQ9IjMwMjIxMDcxOTg2ODY1ODQwNTIiPiLgtrrgt5ngtq/gt5Tgtrjgt4og4Lax4LeS4Lav4Lec4LeD4LeK4Laa4La74Lar4La6IOC3g+C2tuC2vSDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXREZWJ1Z0FwcCIgbXNnaWQ9IjQ0NzQ1MTI0MTYyOTkwMTMyNTYiPiLgt4Dgt5ngtrHgtq3gt4og4La64LeZ4Lav4LeU4La44Laa4LeKIOC3g+C2s+C3hOC3jyDgtrHgt5Lgtq/gt5zgt4Pgt4rgtprgtrvgtqvgtrog4LeD4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeA4LeZ4Lax4Lat4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5LgtrHgt4/gt4Eg4Laa4LeS4La74LeT4La44LanIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4La44LeZ4La6IOC2t+C3j+C3gOC3kuC2rSDgtprgt4Ug4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlQ29uZmlndXJhdGlvbiIgbXNnaWQ9IjQxNjIwOTIxODUxMjQyMzQ0ODAiPiLgtrTgtq/gt4rgtrDgtq3gt5Ig4LeD4LaC4Lav4La74LeK4LeB4LaaIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29uZmlndXJhdGlvbiIgbXNnaWQ9IjQzNzIyMjM4NzMxNTQyOTYwNzYiPiLgtrTgt5ngtq/gt5ngt4Pgt5Lgtrog4LeE4LedIOC3g+C2uOC3iuC2tOC3luC2u+C3iuC2qyDgtoXgtprgt5Tgtrvgt5Qg4La04LeK4oCN4La74La44LeP4Lar4La6IOC3gOC3kOC2seC3kiDgtrTgt4Dgtq3gt5LgtrEg4LeA4LeS4Lax4LeK4oCN4La64LeP4LeD4La6IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9lbmFibGVDYXJNb2RlIiBtc2dpZD0iNTY4NDUwNDA1ODE5MjkyMTA5OCI+IuC2uOC3neC2p+C2u+C3iiDgtrvgtq4g4LaG4Laa4LeP4La74La6IOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2reC3iuC2uOC2miDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19lbmFibGVDYXJNb2RlIiBtc2dpZD0iNDg1MzE4NzQyNTc1MTQxOTQ2NyI+IuC2muC3j+C2u+C3iiDgtobgtprgt4/gtrvgtrog4LeD4La24La9IOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iMzkxNDAyNjY4NzQyMDE3NzIwMiI+IuC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4LeQ4LeD4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfa2lsbEJhY2tncm91bmRQcm9jZXNzZXMiIG1zZ2lkPSI0NTkzMzUzMjM1OTU5NzMzMTE5Ij4i4LaF4Lax4LeZ4Laa4LeKIOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2vSDgtrTgt4Pgt5Tgtrbgt5Lgtrjgt4og4Laa4LeK4oCN4La74LeS4La64LeP4LeA4La94LeSIOC2heC3gOC3g+C2seC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2heC2seC3meC2muC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4Law4LeP4LeA4Lax4La6IOC2seC3kOC3gOC2reC3k+C2uOC2pyDgtrjgt5ngtrog4LeE4Lea4Lat4LeU4LeA4Laa4LeKIOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZvcmNlU3RvcFBhY2thZ2VzIiBtc2dpZD0iMjMyOTYyNzQyODgzMjA2NzcwMCI+IuC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4La24La94LeZ4Lax4LeKIOC2seC3gOC2reC3iuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZvcmNlU3RvcFBhY2thZ2VzIiBtc2dpZD0iNTI1MzE1NzI5NjE4Mzk0MDgxMiI+IuC2uuC3meC2r+C3lOC2uOC2pyDgtrbgtr3gt5ngtrHgt4og4LaF4Lax4LeZ4Laa4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgtrHgt5Dgt4Dgtq3gt5Pgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZvcmNlQmFjayIgbXNnaWQ9IjY1MjkzNTIwNDA3MjU4NDYxNiI+IuC2uuC3meC2r+C3lOC2uCDgt4Dgt5Dgt4Pgt5Pgtrjgtqcg4La24La9IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZvcmNlQmFjayIgbXNnaWQ9IjM4OTIyOTU4MzA0MTk1MTM2MjMiPiLgtrHgt5Dgt4Dgtq3gt5Pgtrjgtqcg4La04LeZ4La74La24LeS4La44LeaIOC2h+C2reC3kiDgtpXgtrHgt5Hgtrgg4Laa4LeK4oCN4La74LeS4La64LeP4LeA4Laa4LeKIOC2tuC2veC3meC2seC3iiDgtrHgt5Dgt4Dgtq3gt5Pgtrjgtqcg4LeD4LeEIOC2tOC3kuC2p+C3lOC2tOC3g+C2pyDgtrrgt4/gtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2muC3kuC3g+C3kuC2r+C3jyDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZHVtcCIgbXNnaWQ9IjE2ODE3OTk4NjI0Mzg5NTQ3NTIiPiLgtrTgtq/gt4rgtrDgtq3gt5Ig4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2reC2reC3iuC3gOC2uiDgt4Pgt5zgtrrgt48g4La94La24LePIOC2nOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2R1bXAiIG1zZ2lkPSIxNzc4Mjk5MDg4NjkyMjkwMzI5Ij4i4La04Lav4LeK4Law4Lat4LeS4La64LeaIOC2heC2t+C3iuKAjeC2uuC2seC3iuC2reC2uyDgtq3gtq3gt4rgt4Dgtrog4La94LeQ4La24LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtpTgt4Dgt5TgtrHgt4og4LeD4LeP4La44LeP4Lax4LeK4oCN4La64La64LeZ4Lax4LeKIOC2t+C3j+C3gOC3kuC2rSDgtrHgt5zgtprgtrvgtrEg4LeA4LeS4LeA4LeS4Law4Lat4LeK4LeA4La64Laa4LeS4Lax4LeKIOC2uuC3lOC2reC3iiDgtrTgt5Tgtq/gt4rgtpzgtr3gt5Lgtpog4LeD4LeEIOC2huC2u+C2muC3iuKAjeC3guC3kuC2rSDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Pgt5zgtrrgt48g4La94La24LePIOC2nOC2rSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZXRyaWV2ZV93aW5kb3dfY29udGVudCIgbXNnaWQ9IjgwMjI1ODg2MDg5OTQ1ODk5MzgiPiLgtq3gt5Lgtrsg4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC3g+C3nOC2uuC3jyDgtr3gtrbgt4/gtpzgt5DgtrHgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZXRyaWV2ZV93aW5kb3dfY29udGVudCIgbXNnaWQ9IjMxOTMyNjkwNjk0Njk3MDAyNjUiPiLgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgt5Mg4Laa4LeA4LeU4LeF4LeU4LeA4LaaIOC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uiDgtr3gtrbgt4/gtpzgt5DgtrHgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4LeS4LeD4LeS4Lax4LeKIOC3g+C2uOC3iuC2tOC3luC2u+C3iuC2qyDgtprgt4Dgt5Tgt4Xgt5Qg4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uCDgt4Pgt4Qg4La44LeU4La74La04Lav4La6IOC3hOC3kOC2uyDgtpLgt4Dgt4/gtrrgt5ngt4Tgt5Ig4La04LeZ4LeFIOC2tOC2u+C3kuC2muC3iuC3guC3jyDgtprgt5Lgtrvgt5Pgtrgg4LeD4LeS4Lav4LeU4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdGVtcG9yYXJ5X2VuYWJsZV9hY2Nlc3NpYmlsaXR5IiBtc2dpZD0iMjMxMjYxMjEzNTEyNzMxMDI1NCI+IuC2tOC3iuKAjeC2u+C3gOC3muC3geC3iuKAjeC2uuC2reC3j+C3gOC2uiDgtq3gt4/gt4Dgtprgt4/gtr3gt5Lgtprgt4Ag4LeD4La24La9IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3RlbXBvcmFyeV9lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjgwNzk0NTYyOTMxODI5NzU0NjQiPiLgtovgtrTgt4/gtoLgtpzgtrog4LeA4LeZ4LatIOC2tOKAjeC3iuKAjeC2u+C3gOC3muC3geC3iuKAjeC2uuC2reC3j+C3gCDgtq3gt4/gt4Dgtprgt4/gtr3gt5Lgtprgt4Ag4LeD4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La04La74LeS4LeB4LeT4La94LaaIOC2heC3gOC2sOC3j+C2seC2uuC2muC3kuC2seC3iiDgtq3gt5zgtrvgt4Ag4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrTigI3gt4rigI3gtrvgt4Dgt5rgt4Hgt4rigI3gtrrgtq3gt4/gt4Ag4LeD4Laa4LeK4oCN4La74LeS4La6IOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9Ijg1MzIyOTUxOTkxMTI1MTkzNzgiPiLgtq3gt5Lgtrsg4Lat4Lec4La74Lat4LeU4La74LeUIOC3g+C3nOC2uuC3jyDgtr3gtrbgt4/gtpzgt5DgtrHgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9IjQ5OTg4MzYzNzA0MjQxODY4NDkiPiLgtprgt4Dgt5Tgt4Xgt5Qg4Laa4LeF4La44Lax4LeP4Laa4La74LeUIOC2uOC2nOC3kuC2seC3iiDgtprgt4Dgt5Tgt4Xgt5Tgt4Ag4Lac4LeQ4LaxIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgt4Pgt5zgtrrgt48g4La94La24LeP4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtoXgtrfgt4rigI3gtrrgtrHgt4rgtq3gtrsg4La04Lav4LeK4Law4Lat4LeSIOC2t+C3j+C3gOC3kuC2reC2uiDgt4PgtrPgt4Tgt48g4Laa4LeQ4La44Lat4LeSIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC3gOC3kuC3g+C3kuC2seC3iiDgtr3gtrbgt48g4Lac4LatIOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4Njc1NTM1NjQ4ODA3NDI3Mzg5Ij4i4LeD4LeS4Lav4LeU4LeA4LeT4La44LeKIOC2tOC3meC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4MDA2MjM2MzE1ODg4MzQ3NjgwIj4i4La04LeS4Lan4Lat4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrTgt5ngtrsg4LeD4LeS4La64La94LeUIOC2tOC2u+C3kuC3geC3k+C2veC2miDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt4rgt4Dgtr0g4La04LeK4oCN4La74LeA4LeP4LeE4La64Laa4LeKIOC2tOC3meC2u+C3k+C2uOC2pyDgtrrgt5zgtq/gt48g4Lac4Lax4LeK4Lax4LePIOC2huC2r+C3j+C2sSDgtrTgt5ngtrvgt5Pgtrjgtprgt4og4La94LeS4La64LeP4La04Lav4LeS4LaC4Lag4LeSIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La04La74LeS4LeB4LeT4La94LaaIOC2uOC3kOC2r+C3kuC3hOC2reC3iiDgt4Dgt5Pgtrjgtprgt5LgtrHgt4og4Lat4Lec4La74LeAIOC2tOC2r+C3iuC2sOC2reC3kiBVSSDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC2tOC3j+C2veC2seC2uiDgtprgtrvgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI1OTczNjI2NzM4MTcwNjE4Nzc1Ij4i4Lav4La74LeK4LeB4Lax4La6IOC3gOC3kuC3geC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI3MTIxMjM1Njg0NTE1MDAzNzkyIj4i4Lav4LeD4LeU4Lax4LeaIOC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uiDgt4Dgt5Lgt4Hgt4/gtr0g4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtofgtq3gt5Dgtrjgt4og4LeA4LeS4LanIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4osIOC2i+C2tOC3j+C2guC2nOC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeFIOC2seC3nOC3hOC3kOC2muC3kiDgtrbgt4Dgtqcg4La04Lat4LeKIOC2muC2u+C2uOC3kuC2seC3iiDgtq/gt4Pgt5TgtrHgt5og4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC3gOC3meC2seC3g+C3iiDgtprgt4Ug4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2h1dGRvd24iIG1zZ2lkPSI3MTg1NzQ3ODI0MDM4OTA5MDE2Ij4i4LaF4LapIOC3gOC3geC2uuC3meC2seC3iiDgt4Dgt5Dgt4Tgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zaHV0ZG93biIgbXNnaWQ9IjcwNDY1MDA4Mzg3NDYyOTE3NzUiPiLgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgtprgtrjgt4og4Laa4LeF4La44Lax4LeP4Laa4La74LeUIOC3gOC3kOC3hOC3k+C2uOC3miDgtq3gtq3gt4rgt4Dgtrrgtqcg4Lav4La44Lax4LeK4LaxLiDgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4LeA4LeQ4LeE4LeT4La44Laa4LanIOC2tOC2reC3iiDgtrHgt5zgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI0MTM4NjA4NjEwNzE3NDI1NTczIj4i4La64LeZ4Lav4LeU4La44LeKIOC2uOC3j+C2u+C3lCDgt4Dgt5Pgtrgg4LeA4LeQ4LeF4Laa4LeK4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RvcEFwcFN3aXRjaGVzIiBtc2dpZD0iODI2MjE5NTgwMjU4MjI1NTAyMSI+IuC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgtprgt4og4LeA4LeZ4LatIOC2tOC2u+C3kuC3geC3k+C2veC2muC2uuC3j+C3gCDgtrjgt4/gtrvgt5Qg4LeA4LeT4La4IOC3gOC3heC2muC3iuC3gOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFRvcEFjdGl2aXR5SW5mbyIgbXNnaWQ9IjI1Mzc5MjIzMTE0MTE1NDYwMTYiPiLgtrTgt4Dgtq3gt5LgtrEg4La64LeZ4Lav4LeU4La44LeaIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtr3gtrbgt4/gtpzgt5DgtrHgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRUb3BBY3Rpdml0eUluZm8iIG1zZ2lkPSI4MTUzNjUxNDM0MTQ1MTMyNTA1Ij4i4Lat4LeS4La74La64LeaIOC2tOC3meC2u+C2tuC3kuC2uCDgtq3gt5Tgt4Ug4Lat4LeS4La24LeZ4LaxIOC2r+C3kOC2seC3iiDgtrTgt4Dgtq3gt4rgtrHgt48g4La64LeZ4Lav4LeU4La44LeaIOC3g+C3hCDgt4Pgt5rgt4Dgt4/gt4Dgtr0g4La04Lee4Lav4LeK4Lac4La94LeS4LaaIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtr3gtrbgt4/gtpzgt5DgtrHgt5Pgtrjgtqcg4Lav4La74Lax4LeK4Lax4LeP4LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ydW5TZXRBY3Rpdml0eVdhdGNoZXIiIG1zZ2lkPSI4OTIyMzkwOTQ4NjcxODI2NTYiPiLgt4Pgt5Lgtrrgtr3gt5Qg4La64LeZ4Lav4LeU4La44LeKIOC2r+C3kuC2uuC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgt4og4Lax4LeS4La74LeT4Laa4LeK4LeC4Lar4La6IOC3g+C3hCDgtrTgt4/gtr3gtrHgtrog4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcnVuU2V0QWN0aXZpdHlXYXRjaGVyIiBtc2dpZD0iNjAwMzYwMzE2MjU3ODU3NzQwNiI+IuC2tOC2r+C3iuC2sOC2reC3kuC2uiDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgtprgtrjgt4og4Lav4LeS4La64Lat4LeKIOC2muC2u+C2seC3iuC2seC3miDgtprgt5ngt4Pgt5rgtq/gt5Dgtrrgt5Ig4Lax4LeS4La74LeT4Laa4LeK4LeC4Lar4La64LanIOC3g+C3hCDgtrTgt4/gtr3gtrHgtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4La44Lac4LeS4Lax4LeKIOC2tOC2r+C3iuC2sOC2reC3kuC2uiDgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqvgtrrgt5ngtrHgt4rgtrgg4LeD4La44LeK4La44LeU4Lat4LeS4La64Laa4LanIOC2keC3heC2ueC3kuC2uiDgt4Tgt5DgtpouIOC3gOC2u+C3iuC2sOC2seC2uiDgt4PgtrPgt4Tgt48g4La04La44Lar4Laa4LeKIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4LaF4LeA4LeB4LeK4oCN4La6IOC3gOC3meC2uuC3kiwg4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2t+C3j+C3gOC3kuC2reC2uiDgt4PgtrPgt4Tgt48g4Laa4LeS4LeD4LeSIOC3gOC3kuC2p+C3meC2muC2reC3iiDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSIyNTc2MzMzNDM0ODkzNTMyNDc1Ij4i4La04LeQ4Laa4Lea4LaiIOC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgt5og4La04LeK4oCN4La74Lag4LeP4La74Lar4La64Laa4LeKIOC2uuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFBhY2thZ2VSZW1vdmVkIiBtc2dpZD0iNjYyMTkwMTIxNjIwNzkzMTA4OSI+IuC2uuC3meC2r+C3lOC2uOC3iiDgtrTgt5Dgtprgt5rgtqLgtrrgtprgt4og4LaJ4LeA4Lat4LeK4Laa4Lec4LanIOC2h+C2reC3kiDgtrbgt4Dgtqcg4Lav4LeQ4Lax4LeU4La44LeK4Lav4LeT4La44Laa4LeKIOC3gOC3kuC2muC3j+C3geC2seC2uuC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3ki4g4Law4LeP4LeA4Lax4La6IOC3gOC2sSDgtoXgtrHgt5ngtprgt5Tgtq3gt4og4La64LeZ4Lav4LeU4La44Laa4LeKIOC2seC3kOC2reC3kiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5Lgt4Pgt5LgtrHgt4og4La44LeZ4La6IOC2t+C3j+C3gOC3kuC2rSDgtprgt4Ug4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI1Njg5MDk1MDA5MDMwMzM2NTkzIj4iU01TLeC2veC3kOC2tuC3k+C2uCDgt4Dgt5Lgtprgt4/gt4HgtrEg4La64LeQ4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI0MTUyMDM3NzIwMDM0MzY1NDkyIj4iU01TIOC2tOC2q+C3kuC3gOC3kuC2qeC2uuC2muC3iiDgt4Tgtrvgt4Tgt48g4La94LeQ4La24LeU4Lar4LeUIOC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC2muC3iiDgtrTgt4rigI3gtrvgtqDgt4/gtrvgtqvgtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2tOC3kOC2uOC3kuC2q+C3meC2sSBTTVMg4La04Lar4LeS4LeA4LeS4LapIOC3gOC2guC2oOC3jyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrjgt5ngtrog4La34LeP4LeA4LeS4LatIOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RXYXBQdXNoIiBtc2dpZD0iMzE0NTM0NzQxMzAyODU4MjM3MSI+IldBUC1QVVNILeC2veC3kOC2tuC3k+C2uCDgt4Dgt5Lgtprgt4/gt4HgtrEg4La64LeQ4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjQ3ODM0MDI1MjUwMzk0NDI3MjkiPiJXQVAgUFVTSCDgtrTgtqvgt5Lgt4Dgt5Tgtqngtrrgtprgt4og4La94LeQ4La24LeTIOC2h+C2reC3kiDgtrbgt4Dgtqcg4Lav4LeQ4Lax4LeU4La44LeK4Lav4LeT4La44Laa4LeKIOC3gOC3kuC2muC3j+C3geC2seC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3gOC2guC2oOC3j+C2muC3j+C2u+C3kyBNTVMg4La04Lar4LeS4LeA4LeU4LapIOC2veC3kOC2tuC3k+C2uOC3iiDgt4Tgt50g4Lax4LeS4LeE4Las4LeAIOC2leC2seC3keC2uCDgt4Dgt5ngtrbgt4og4La04LeS4Lan4LeU4LeA4LaaIOC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uiDgtoXgtrHgt5Lgt4Lgt4rgtqcg4LeA4LeS4Lag4La94LeK4oCN4La64LeA4La94LeS4Lax4LeKIOC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5PgtrjgtqcsIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4LeS4LeD4LeS4Lax4LeKIOC2uOC3meC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeS4La74LeT4La44LanIOC2ieC2qSDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcm9jZXNzTGltaXQiIG1zZ2lkPSIyNDUxODczNjY0MzYzNjYyNjY2Ij4i4Law4LeP4LeA4LaxIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C3gOC2veC3kiDgtpzgtqvgtrEg4LeD4LeT4La44LePIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFByb2Nlc3NMaW1pdCIgbXNnaWQ9IjczMTgwNjEzMTQwNDA4Nzk1NDIiPiLgtrDgt4/gt4DgtrHgtrog4LeA4LaxIOC2i+C2tOC2u+C3kuC2uCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4Dgtr3gt5Ig4Lac4Lar4LaxIOC2tOC3j+C2veC2seC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2muC3kuC3g+C3kuC2r+C3jyDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0QWx3YXlzRmluaXNoIiBtc2dpZD0iNTUwOTU4NTA3Nzk4Nzk2OTY1Ij4i4La04LeD4LeU4La24LeS4La44LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr3gtqcg4LeA4LeQ4LeD4LeT4La44LanIOC2tuC2veC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFsd2F5c0ZpbmlzaCIgbXNnaWQ9Ijc0NzEzMTA2NTI4Njg4NDE0OTkiPiLgtrTgt4Pgt5Tgtrbgt5Lgtrjgtqcg4La04LeS4LeA4LeS4LeD4LeZ4Lax4LeA4LeP4Lat4LeKIOC3g+C2uOC2n+C2uCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgtprgtrjgt4og4Lax4LeQ4LeA4Lat4LeT4La4IOC2tOC3j+C2veC2seC2uuC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtprgt5Lgt4Pgt5Lgt4Pgt5rgtq3gt4og4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JhdHRlcnlTdGF0cyIgbXNnaWQ9IjI3ODk2MTA2NzM1MTQxMDMzNjQiPiLgtrbgt5Dgtqfgtrvgt5Ig4LeD4LaC4Lab4LeK4oCN4La64LeP4LaxIOC2muC3kuC2uuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JhdHRlcnlTdGF0cyIgbXNnaWQ9IjU4OTczNDY1ODI4ODI5MTUxMTQiPiLgt4Dgtrvgt4rgtq3gtrjgt4/gtrEg4La04LeE4LeFIOC2uOC2p+C3iuC2p+C2uOC3miDgtrbgt5Dgtqfgtrvgt5Lgtrog4La34LeP4LeA4LeS4Lat4LePIOC2r+C2reC3iuC2rSDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2lOC2tiDgtrfgt4/gt4Dgt5Lgtq0g4Laa4La74LaxIOC2uuC3meC2r+C3lOC2uOC3iiDgtrjgt5zgtrHgt4Dgt48g4Lav4LeQ4La64LeSIOC2nOC3kOC2sSDgt4Dgt5Lgt4Pgt4rgtq3gtrvgt4/gtq3gt4rgtrjgtpog4Lat4Lec4La74Lat4LeU4La74LeUIOC2nOC3kOC2sSDgtq/gt5DgtrEg4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlQmF0dGVyeVN0YXRzIiBtc2dpZD0iMzcxOTY4OTc2NDUzNjM3OTU1NyI+IuC2tuC3kOC2p+C2u+C3kiDgt4PgtoLgtpvgt4rigI3gtrrgt4/gtrEg4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VwZGF0ZUJhdHRlcnlTdGF0cyIgbXNnaWQ9IjY4NjI4MTc4NTcxNzgwMjUwMDIiPiLgtpHgtprgtq3gt5Qg4Laa4La74Lac4Lax4LeK4Lax4LePIOC2veC2ryDgtrbgt5Dgtqfgtrvgt5Ig4LeD4LaC4Lab4LeK4oCN4La64LeP4LaxIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4La9IOC2t+C3j+C3gOC3kuC2reC2uuC2pyDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRBcHBPcHNTdGF0cyIgbXNnaWQ9IjE1MDg3Nzk2ODc0MzY1ODU3NDQiPiLgtrrgt5ngtq/gt5Tgtrjgt5og4LeA4LeS4Laa4La94LeK4La0IOC3g+C2guC2m+C3iuKAjeC2uuC3j+C2guC2miDgt4Pgt5zgtrrgt48g4La94La24LeP4Lac4LeQ4Lax4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QXBwT3BzU3RhdHMiIG1zZ2lkPSI2MjQzODg3MDQxNTc3OTEyODc3Ij4i4LaR4Laa4Lat4LeUIOC2muC2u+C2nOC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74LeS4Lat4LeK4LeAIOC3g+C2guC2m+C3iuKAjeC2uuC3jyDgtr3gt5rgtpvgtrEg4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtovgtrTgt4/gtoLgtpzgtrrgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2i+C2tOC3j+C2guC2nCDgtrfgt4/gt4Dgt5Lgtq3gtrog4LeD4Laz4LeE4LePIOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUFwcE9wc1N0YXRzIiBtc2dpZD0iODgyOTA5NzM3Mzg1MTUyMTUwNSI+IuC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5Lgtprgtr3gt4rgtrQg4LeD4LaC4Lab4LeK4oCN4La64LeP4LaC4LaaIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVBcHBPcHNTdGF0cyIgbXNnaWQ9IjUwNzg0NTk2NTk0NDAzNDgzIj4i4LaR4Laa4Lat4LeUIOC2muC2u+C2nOC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74LeS4Lat4LeK4LeAIOC3g+C2guC2m+C3iuKAjeC2uuC3jyDgtr3gt5rgtpvgtrEg4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgtrfgt4/gt4Dgt5Lgtq3gtrog4LeD4Laz4LeE4LePIOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JhY2t1cCIgbXNnaWQ9IjQ3MDAxMzAyMjg2NTQ1MzkyMCI+IuC2tOC2r+C3iuC2sOC2reC3kiDgtovgtrTgt4Pgt4rgtq4g4La04LeP4La94Lax4La6IOC2muC2u+C2seC3iuC2sSDgt4Pgt4Qg4Lax4LeQ4LeA4LatIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JhY2t1cCIgbXNnaWQ9IjY5MTIyMzA1MjUxNDA1ODk4OTEiPiLgtrTgtq/gt4rgtrDgtq3gt5Lgtrrgt5og4LaL4La04LeD4LeK4Lau4La6IOC3g+C3hCDgtovgtrTgtprgt4rigI3gtrvgtrgg4Lax4LeQ4LeA4LatIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC3k+C2uCDgtrTgt4/gtr3gtrHgtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4La9IOC2t+C3j+C3gOC3kuC2reC2uiDgt4PgtrPgt4Tgt48g4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlybV9mdWxsX2JhY2t1cCIgbXNnaWQ9IjU1NTcwNzEzMjU4MDQ0NjkxMDIiPiLgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4LaL4La04LeD4LeK4Lau4La6IOC3hOC3nSDgtrjgt5ngt4Tgt5ngtrrgt5Tgtrjgt4og4Lax4LeQ4LeA4LatIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC3k+C2uCDgt4PgtrHgt4/gtq4g4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlybV9mdWxsX2JhY2t1cCIgbXNnaWQ9IjE3NDg3NjIxNzE2Mzc2OTk1NjIiPiLgtrTgt5bgtrvgt4rgtqsg4LaL4La04LeD4LeK4LauIOC2reC3hOC3gOC3lOC2u+C3lOC2muC3kuC2u+C3k+C2uOC3iiBVSSDgtrTgt5TgtrvgtrHgt4rgtrHgtqcg4LaL4La04Laa4La74Lar4La64LanIOC2ieC2qSDgtq/gt5ngtrHgt4rgtrEuIOC2muC3kuC3g+C3kuC2uCDgtrrgt5ngtq/gt5Tgtrjgtprgt4og4La34LeP4LeA4LeS4Lat4LePIOC2seC3nOC2muC2u+C2seC3lCDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcm5hbFN5c3RlbVdpbmRvdyIgbXNnaWQ9IjIxNDg1NjM2MjgxNDAxOTMyMzEiPiLgtoXgt4Dgt4Pgtrsg4Lax4Lec4La94Lat4LeKIOC2muC3gOC3lOC3heC3lOC3gCDgtq/gtrvgt4rgt4HgtrHgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJuYWxTeXN0ZW1XaW5kb3ciIG1zZ2lkPSI3NDU4Mzg3NzU5NDYxNDY2Mzk3Ij4i4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2tOC2r+C3iuC2sOC2reC3kiDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4LaF4Lat4LeU4La74LeU4La44LeU4LeE4LeU4Lar4Lat4LeKIOC3gOC3kuC3g+C3kuC2seC3iiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeS4La74LeT4La44LanIOC2tuC2veC3j+C2tOC3nOC2u+C3nOC2reC3iuC2reC3lCDgt4DgtrEg4Laa4LeA4LeU4LeF4LeUIOC2seC3kuC2u+C3iuC2uOC3j+C2q+C2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr0g4La34LeP4LeA4LeS4Lat4La6IOC3g+C2s+C3hOC3jyDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zeXN0ZW1BbGVydFdpbmRvdyIgbXNnaWQ9IjM1NDMzNDc5ODA4Mzk1MTg2MTMiPiLgt4Dgt5ngtrHgtq3gt4og4La64LeZ4Lav4LeU4La44LeKIOC2i+C2qeC3kuC2seC3iiDgtoXgtrPgt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zeXN0ZW1BbGVydFdpbmRvdyIgbXNnaWQ9Ijg1ODQ2NzgzODE5NzI4MjAxMTgiPiLgtoXgtrHgt5ngtprgt4og4La64LeZ4Lav4LeU4La44LeKIOC2uOC2rSDgt4Tgt50g4La04La74LeS4LeB4LeT4La94LaaIOC2heC2reC3lOC2u+C3lCDgtrjgt5Tgt4Tgt5Tgtqvgtq3gt4og4Laa4Lec4Lan4LeD4LeK4LeA4La9IOC2h+C2s+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4LaR4La6IOC2lOC2tuC3miDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5og4LaH4Lat4LeSIOC2leC2seC3keC2uCDgtrrgt5ngtq/gt5Tgtrjgtpog4La44LeU4LeE4LeU4Lar4LatIOC3g+C2uOC2nCDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeT4La44LanIOC3hOC3nSDgtoXgtrHgt5ngtprgt4og4La64LeZ4Lav4LeU4La44LeKIOC2nOC3kOC2sSDgtpTgtrbgtqcg4La04LeZ4Lax4LeZ4LaxIOC2huC2muC3j+C2u+C2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2ieC2qSDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9IjI4MDUxMDMyNDExNTM5MDcxNzQiPiLgtpzgt53gtr3gt5Pgtrog4LeD4Lai4LeT4LeA4LaxIOC3gOC3muC2nOC2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QW5pbWF0aW9uU2NhbGUiIG1zZ2lkPSI3NjkwMDYzNDI4OTI0MzQzNTcxIj4i4LaV4Lax4LeR4La4IOC3gOC3meC2veC3j+C3gOC2miDgtrTgt5zgtq/gt5Qg4LeD4Lai4LeT4LeA4LeT4Laa4La74LarIOC3gOC3muC2nOC2uiAo4LeA4Lea4Lac4LeA4Lat4LeKIOC3hOC3nSDgtrjgtrHgt4rgtq/gtpzgt4/gtrjgt5Mg4LeD4Lai4LeT4LeA4LeT4Laa4La74LarKSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQXBwVG9rZW5zIiBtc2dpZD0iMTI4NjUwNTcxNzA1MDEyMTM3MCI+IuC2uuC3meC2r+C3lOC2uOC3iiDgtqfgt53gtprgtrEg4Laa4LeF4La44Lax4LeP4Laa4La74Lar4La6IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFwcFRva2VucyIgbXNnaWQ9IjgwNDM0MzE3MTMwMTQzOTU2NzEiPiLgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrogWiDgtrTgtqfgt5LgtrTgt4/gtqfgt5Lgtrog4La44Laf4LeE4LeQ4La74La64La44LeS4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtoXgtrrgt5Lgtq3gt5Ig4Lan4Led4Laa4Lax4LeKIOC2tOC2reC3iiDgtrHgt5Lgtrvgt4rgtrjgt4/gtqvgtrrgtqcg4LeD4LeEIOC2muC3heC2uOC2seC3j+C2muC2u+C2q+C2uuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr3gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtprgt5Lgt4Pgt5Lgt4Pgt5rgtq3gt4og4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZyZWV6ZVNjcmVlbiIgbXNnaWQ9IjQ3MDgxODExODQ0NDE4ODAxNzUiPiLgtq3gt5Lgtrvgtrog4Lax4LeS4LeB4LeK4Lag4La9IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZyZWV6ZVNjcmVlbiIgbXNnaWQ9Ijg1NTg5MjM3ODkyMjI2NzAwNjQiPiLgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4Lat4LeS4La7IOC3g+C2guC2muC3iuKAjeC2u+C2uOC2q+C2uiDgt4PgtrPgt4Tgt48g4Lat4LeS4La74La6IOC2reC3j+C3gOC2muC3j+C2veC3kuC2muC3gCDgtrjgt5Tgtq/gt4Dgt5Lgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbmplY3RFdmVudHMiIG1zZ2lkPSIxMzc4NzQ2NTg0MDIzNTg2NjAwIj4i4La64Lat4LeU4La74LeUIOC3g+C3hCDgtrTgt4/gtr3gtrEg4La24Lec4Lat4LeK4Lat4La44LeKIOC2lOC2tuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA2MzUyNTY1NTk5OTY4NjMyIj4i4Lat4La44Lax4LeK4Lac4LeaIOC2huC2r+C3j+C2sSDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt4ogKOC2uuC2reC3lOC2u+C3lCDgtpHgtrbgt5Lgtrjgt4ogLCDgtobgtq/gt5MgKSDgtoXgtrHgt5ngtprgt5Tgtq3gt4og4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2t+C3j+C2u+C2r+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrjgt5ngtrog4Lan4LeQ4La24LeK4La94Lan4La6IOC2veC2tuC3jyDgtpzgt5DgtrHgt5Pgtrjgtqcg4La34LeP4LeA4LeS4Lat4LePIOC2muC3kuC2u+C3k+C2uOC2pyDgtongtqkg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1MzEyODA1NzU3MjMyNjI1MyI+IuC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr3gtqcg4LaR4LeE4LeSIOC2huC2r+C3j+C2sSDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt4ogKOC2uuC2reC3lOC2u+C3lCDgtpHgtrbgt5Pgtrjgt4osIOC2uuC2seC3j+C2r+C3kuC2ui4pIOC2huC2r+C3kuC2uiDgtrrgt5Dgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2r+C3lOC2u+C2muC2ruC2seC2uiDgtoXgtq3gt4rgtprgtrsg4Lac4LeQ4Lax4LeT4La4IOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4La44LeZ4La6IOC2t+C3j+C3gOC3kuC2rSDgtprgtrvgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkSW5wdXRTdGF0ZSIgbXNnaWQ9IjQ2OTQyODkwMDA0MTI0OTIzNCI+IuC2lOC2tiDgtqfgtrrgt5LgtrTgt4og4Laa4La74LaxIOC2r+C3meC2uiDgt4Pgt4Qg4LaU4La2IOC2nOC2seC3iuC2seC3jyDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4DgtrHgt4og4La04Lan4LeS4Lac4LatIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRJbnB1dFN0YXRlIiBtc2dpZD0iODM4Nzc1NDkwMTY4ODcyODA0MyI+IuC2uOC3lOC2u+C2tOC2r+C2uiDgtqfgtrrgt5LgtrTgt4og4Laa4LeS4La74LeT4La4IOC3gOC3kOC2seC3kiDgtoXgtrHgt5ngtprgt5Tgtq3gt4og4La64LeZ4Lav4LeU4La44LeKIOC3g+C2uOC2nyDgtoXgtrHgt4rgtq3gtrvgt4rgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgt5Mg4LeA4Lax4LeA4LeS4LanIOC2uuC2seC3j+C2r+C3kyDgtpTgtrYg4LaU4La24LaxIOC2uuC2reC3lOC2u+C3lCDgtq/gt5Dgtprgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2muC3kuC3g+C3kuC3g+C3muC2reC3iiDgtoXgtq/gt4/gt4Ug4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZElucHV0TWV0aG9kIiBtc2dpZD0iMzM2MDA2NDYyMDIzMDUxNTc3NiI+IuC2huC2r+C3j+C2sSDgtprgt4rigI3gtrvgtrjgtrrgtprgt4og4LeA4LeZ4LatIOC2tuC2s+C3kuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRJbnB1dE1ldGhvZCIgbXNnaWQ9IjMyNTA0NDAzMjI4MDcyODYzMzEiPiLgtobgtq/gt4/gtrEg4Laa4LeK4oCN4La74La44La6IOC2ieC3hOC2vSDgtrjgtqfgt4rgtqfgtrjgt5og4LaF4Lat4LeU4La74LeUIOC2uOC3lOC3hOC3lOC2q+C2reC2muC3iiDgt4Dgt5ngtq0g4LeD4La44LeK4La24Lax4LeK4LawIOC2muC3kuC2u+C3k+C2uOC2pyDgtrDgt4/gtrvgtprgtrrgt4/gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtprgt5Lgt4Pgt5Ig4LeA4LeS4Lan4LeZ4LaaIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4Dgt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kQWNjZXNzaWJpbGl0eVNlcnZpY2UiIG1zZ2lkPSI1MzU3NzMzOTQyNTU2MDMxNTkzIj4i4La04oCN4LeK4oCN4La74LeA4Lea4LeB4LeK4oCN4La64Lat4LePIOC3g+C3muC3gOC3j+C3gOC2muC3iiDgt4Dgt5ngtq0g4La24Lav4LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZEFjY2Vzc2liaWxpdHlTZXJ2aWNlIiBtc2dpZD0iNzAzNDYxNTkyODYwOTMzMTM2OCI+IuC2tOKAjeC3iuKAjeC2u+C3gOC3muC3geC3iuKAjeC2uuC2reC3jyDgt4Pgt5rgt4Dgt4/gt4Dgt5og4LaJ4LeE4LeFIOC2uOC2p+C3iuC2p+C2uOC3miDgtoXgtq3gt5Tgtrvgt5Tgtrjgt5Tgt4Tgt5Tgtqvgtq3gtqcg4La24LeQ4Laz4LeT4La44LanIOC2r+C2u+C2seC3iuC2seC3j+C2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeaLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeKIOC3g+C2s+C3hOC3jyDgtprgt5Lgt4Pgt5Lgt4Dgt5Lgtqfgtpog4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRQcmludFNlcnZpY2UiIG1zZ2lkPSI4NDYyODE1MTc5NTcyNzQ4NzYxIj4i4La44LeU4Lav4LeK4oCN4La74LarIOC3g+C3muC3gOC3j+C3gOC2muC2pyDgtrbgtq/gt4rgtrAg4LeA4LeTIOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQcmludFNlcnZpY2UiIG1zZ2lkPSI3OTYwMDY3NjIzMjA5MTExMTM1Ij4i4La44LeU4Lav4LeK4oCN4La74LarIOC3g+C3muC3gOC3j+C3gCDgtongt4Tgtr0g4La44Lan4LeK4Lan4La44LeaIOC2heC2reC3lOC2u+C3lCDgtrjgt5Tgt4Tgt5Tgtqvgtq3gtprgt4og4LeA4LeZ4LatIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgt5Lgtrvgt5Pgtrjgtqcg4Law4LeP4La74Laa4La64LeP4LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr3gtqcg4Laa4LeS4LeD4LeSIOC3gOC3kuC2p+C3meC2miDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFByaW50U3Bvb2xlclNlcnZpY2UiIG1zZ2lkPSI2ODA3NzYyNzgzNzQ0MTI1OTU0Ij4i4La44LeU4Lav4LeK4oCN4La74LarIOC3g+C3muC3gOC3j+C3gOC2muC2pyDgtrbgtq/gt4rgtrAg4LeA4LeTIOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQcmludFNwb29sZXJTZXJ2aWNlIiBtc2dpZD0iMzY4MDU1MjI4NTkzMzMxODM3MiI+IuC2uOC3lOC2r+C3iuKAjeC2u+C2qyDgt4Pgt5rgt4Dgt4/gt4Ag4LaJ4LeE4La9IOC2uOC2p+C3iuC2p+C2uOC3miDgtoXgtq3gt5Tgtrvgt5Qg4La44LeU4LeE4LeU4Lar4Lat4Laa4LeKIOC3gOC3meC2rSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4Laa4LeS4La74LeT4La44LanIOC2sOC3j+C2u+C2muC2uuC3j+C2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2muC3kuC3g+C3kiDgt4Dgt5Lgtqfgt5ngtpog4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iMjc1MjczMTMwMDQxOTQxMDcyNCI+Ik5GQyDgt4Pgt5rgt4Dgt4/gt4Ag4LeA4LeZ4LatIOC2tuC3kOC2s+C3meC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iNjEyMDY0NzYyOTE3NDA2Njg2MiI+Ik5GQyDgtprgt4/gtqngt4og4La04Lat4LeKIOC2huC2r+C2u+C3iuC3geC2seC2uiDgtprgtrvgtrEg4La64LeZ4Lav4LeU4La44LeKIOC2u+C2s+C3gOC2seC2uuC2pyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeT4La44LanIOC2ieC2qSDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2muC3kuC3g+C3kuC2r+C3jyDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iNzM1ODM3ODQwMTkxNTI4NzkzOCI+IuC2tOC3meC3hSDgt4Pgt5rgt4Dgt4/gt4Dgtprgtqcg4La24Laz4LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iODE1MTk2ODkxMDk3Mzk5ODY3MCI+IuC2muC3meC2p+C3kiDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4LeD4Lea4LeA4LeP4LeA4LaaICjgtovgtq/gt48uIFNwZWxsQ2hlY2tlclNlcnZpY2UpIOC2ieC3hOC2vSDgtrjgtqfgt4rgtqfgtrjgt5og4LaF4Lat4LeU4La74LeUIOC2uOC3lOC3hOC3lOC2q+C2reC2muC3iiDgt4Dgt5ngtq0g4LeD4La44LeK4La24Lax4LeK4LawIOC2muC3kuC2u+C3k+C2uOC2pyDgtrDgt4/gtrvgtprgtrrgt4/gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtprgt5Lgt4Pgt5Ig4LeA4LeS4Lan4LeZ4LaaIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4Dgt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kVnBuU2VydmljZSIgbXNnaWQ9IjQ3MDg1OTYwMjExNjE0NzMyNTUiPiJWUE4g4LeD4Lea4LeA4LeP4LeA4Laa4LanIOC2tuC3kOC2s+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRWcG5TZXJ2aWNlIiBtc2dpZD0iMjA2Nzg0NTU2NDU4MTY5MzkwNSI+IlZQTiDgt4Pgt5rgt4Dgt4/gt4Ag4LaJ4LeE4La9IOC2uOC2p+C3iuC2p+C2uOC3miDgtoXgtq3gt5Tgtrvgt5Qg4La44LeU4LeE4LeU4Lar4Lat4Laa4LeKIOC3gOC3meC2rSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4Laa4LeS4La74LeT4La44LanIOC2sOC3j+C2u+C2muC2uuC3j+C2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2muC3kuC3g+C3kiDgt4Dgt5Lgtqfgt5ngtpog4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRXYWxscGFwZXIiIG1zZ2lkPSI4NzE2NDAwMjc5OTM3ODU2NDYyIj4i4La24LeS4Lat4LeU4La04LatIOC3gOC3meC2rSDgtrbgtrPgt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kV2FsbHBhcGVyIiBtc2dpZD0iNzEwODQyODY5MjU5NTQ5MTY2OCI+IuC2tuC3kuC2reC3lOC2tOC2rSDgtongt4Tgtr0g4La44Lan4LeK4Lan4La44LeaIOC2heC2reC3lOC2u+C3lCDgtrjgt5Tgt4Tgt5Tgtqvgtq3gtprgt4og4LeA4LeZ4LatIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgt5Lgtrvgt5Pgtrjgtqcg4Law4LeP4La74Laa4La64LeP4LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr3gtqcg4Laa4LeS4LeD4LeSIOC3gOC3kuC2p+C3meC2miDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFJlbW90ZVZpZXdzIiBtc2dpZD0iNTY5Nzk4Nzc1OTg5NzM2NzA5OSI+IuC3gOC3kuC2ouC2pyDgt4Pgt5rgt4Dgt4/gt4Dgtprgtqcg4La24Laz4LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFJlbW90ZVZpZXdzIiBtc2dpZD0iNDcxNzk4NzgxMDEzNzY5MjU3MiI+IuC3gOC3kuC2ouC2p+C3iiDgt4Pgt5rgt4Dgt4/gt4Ag4LaJ4LeE4La9IOC2uOC2p+C3iuC2p+C2uOC3miDgtoXgtq3gt5Tgtrvgt5Qg4La44LeU4LeE4LeU4Lar4Lat4Laa4LeKIOC3gOC3meC2rSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4Laa4LeS4La74LeT4La44LanIOC2sOC3j+C2u+C2muC2uuC3j+C2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2muC3kuC3g+C3kiDgt4Dgt5Lgtqfgt5ngtpog4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9Ijg3MDQ5ODYxNjM3MTE0NTUwMTAiPiLgtovgtrTgt4/gtoLgtpwg4La04La74LeS4La04LeP4La94LaaIOC3g+C2uOC2nyDgtoXgtrHgt4rgtq3gtrvgt4rgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgt5Mg4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZERldmljZUFkbWluIiBtc2dpZD0iNTY5NzE1NDE5NTQzOTA3OTMwIj4i4LaL4La04LeP4LaC4LacIOC2tOC3j+C2veC2muC2uuC3jyDgt4Dgt5ngtq3gtqcg4LaF4La34LeS4La04LeK4oCN4La74LeP4La64La64Lax4LeKIOC2uuC3kOC3gOC3k+C2uOC2pyDgtrDgt4/gtrvgtprgtrrgt4/gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtprgt5Lgt4Pgt5Ig4LeA4LeS4Lan4LeZ4LaaIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4Dgt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VEZXZpY2VBZG1pbnMiIG1zZ2lkPSI0MjQ4ODI4OTAwMDQ1ODA4NzIyIj4i4LaL4La04LeP4LaC4LacIOC2tOC2u+C3kuC2tOC3j+C2veC2muC2uuC3meC2muC3iiDgtpHgtprgt4og4Laa4LeS4La74LeT4La4IOC3hOC3nSDgtongt4Dgtq3gt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNTAyNTYwODE2NzcwOTk0MjQ4NSI+IuC2r+C2u+C2seC3iuC2seC3j+C2pyDgtovgtrTgt4/gtoLgtpwg4La04La74LeS4La04LeP4La94Laa4La64LeS4Lax4LeKIOC2keC2muC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeE4LedIOC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3mi4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr3gtqcg4Laa4LeS4LeD4LeS4Lav4LePIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRPcmllbnRhdGlvbiIgbXNnaWQ9IjMzNjU5NDc3MTcxNjM4NjY4NDQiPiLgtq3gt5Lgtrsg4Lav4LeS4LeB4LeP4Lax4Lat4LeS4La6IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRPcmllbnRhdGlvbiIgbXNnaWQ9IjMwNDYxMjY2MTkzMTY2NzE0NzYiPiLgtq3gt5Lgtrvgtrrgt5og4La34LeK4oCN4La74La44Lar4La6IOC2leC2seC3keC2uCDgt4Dgt5rgtr3gt4/gt4Dgtpog4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgt4PgtrPgt4Tgt48g4Laa4LeS4LeD4LeS4Lav4LePIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4DgtrHgt5Qg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0UG9pbnRlclNwZWVkIiBtc2dpZD0iOTE3NTM3MTYxMzMyMjU2MjkzNCI+IuC2r+C2u+C3iuC3geC2muC2uuC3miDgt4Dgt5rgtpzgtrog4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFBvaW50ZXJTcGVlZCIgbXNnaWQ9IjY4NjY1NjMyMzQyNzQxMDQyMzMiPiLgtrjgt5bgt4Pgt5Lgtprgtrrgt5og4LeE4LedIOC2p+C3iuKAjeC2u+C3kOC2muC3iuC2tOC3keC2qeC2uuC3miDgt4Dgt5rgtpzgtrog4LaV4Lax4LeR4La4IOC2uOC3nOC3hOC3nOC2reC2miDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2i+C2tOC3j+C2guC2nOC2uuC2pyDgtongtqkg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4LaL4La04LeP4LaC4Lac4La64Lax4LeKIOC3g+C2s+C3hOC3jyDgtprgt5Lgt4Pgt5Lgtq/gt48g4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC2seC3lCDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9IjQ3Nzg3MzE3MDM2MDA5MDkzNDAiPiLgtrrgtq3gt5Tgtrvgt5Qg4La04LeU4LeA4La74LeUIOC2tOC3kuC2u+C3kuC3g+C3kOC2veC3kOC3g+C3iuC2uCDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0S2V5Ym9hcmRMYXlvdXQiIG1zZ2lkPSI4NDgwMDE2NzcxMTM0MTc1ODc5Ij4i4La64Lat4LeU4La74LeU4La04LeU4LeA4La74LeUIOC2uOC3lOC3hOC3lOC2q+C2rSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeKIOC3g+C2s+C3hOC3jyDgtprgt5Lgt4Pgt5Lgtq/gt48g4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0NTM5MDAyOTkxOTQ3Mzc2NjU5Ij4i4La64LeZ4Lav4LeU4La44LeKIOC3gOC3meC2rSBMaW51eCDgt4PgtoLgtqXgt48g4La64LeQ4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2lnbmFsUGVyc2lzdGVudFByb2Nlc3NlcyIgbXNnaWQ9IjQ4OTY5OTIwNzkxODI2NDkxNDEiPiLgtrTgt4Dgtq3gt5LgtrEg4LeD4LeS4La64La94LeUIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C3gOC2veC3kiDgt4Dgt5ngtq0g4LeD4LeQ4La04La64LeU4La44LeKIOC3g+C2guC2peC3jyDgtongtr3gt4rgtr3gt4Dgt5Lgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJzaXN0ZW50QWN0aXZpdHkiIG1zZ2lkPSI4ODQxMTEzNjI3OTU1NTYzOTM4Ij4i4La64LeZ4Lav4LeU4La4IOC3g+C3kOC2uOC3gOC3kuC2p+C2uCDgtrDgt4/gt4DgtrHgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyc2lzdGVudEFjdGl2aXR5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTI1MTg5MjcyMzI5MDg2MTM3Ij4i4La44Lat4Laa4La64LeaIOC2tOC3gOC2reC3kuC2sSDgtpHgt4Tgt5Ig4Laa4Lec4Lan4LeD4LeKIOC2seC3nOC2seC3kOC3g+C3kyDgtrTgt5Dgt4Dgtq3gt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4La94LanIOC2uOC2reC2muC2uiDgt4Pgt5Pgtrjgt48g4Laa4LeS4La74LeT4La44LeZ4Lax4LeKIOC2p+C3kOC2tuC3iuC2veC2p+C2uiDgtrTgtrjgt48g4Laa4LeS4La74LeT4La4IOC2uOC2nOC3kuC2seC3iiAg4La44LeZ4La44Lac4LeS4Lax4LeKIOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyc2lzdGVudEFjdGl2aXR5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDM4NDc2MDA0NzUwODI3ODI3MiI+IuC2uuC3meC2r+C3lOC2uOC2pyDgtq3gtrgg4Laa4Lec4Lan4LeD4LeKIOC2uOC2reC2muC2uiDgtq3gt5Tgtr0g4Lax4Lec4La24LeS4Laz4LeT4LeAIOC2u+C2s+C3jyDgtrTgt4Dgtq3gt4rgt4Dgt4/gtpzgt5ngtrEg4La64LeP4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uiDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4La44Lax4LeK4Lav4Lac4LeP4La44LeTIOC2muC2u+C2uOC3kuC2seC3iiDgtoXgtrHgt5ngtprgt5Tgtq3gt4og4LaL4La04LeP4LaC4Lac4La64Lax4LeKIOC3g+C2s+C3hOC3jyDgtongtq3gt5Lgtrvgt5Ig4La44Lat4Laa4La6IOC3g+C3k+C2uOC3jyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSIxODQzODUxMjk1Mzc3MDU5MzgiPiLgtrrgt5ngtq/gt5Tgtrjgt4og4La44Laa4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSI3NDExNDgwMjc1MTY3MjA1MDgxIj4iQW5kcm9pZCDgtrTgt5Dgtprgt5rgtqIg4La44LeQ4Laa4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Dgt5Dgtq/gtpzgtq3gt4og4La64LeZ4Lav4LeU4La44LeKIOC2uOC3kOC2muC3k+C2uOC2pyDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC3gOC3kuC3g+C3kuC2seC3iiDgtrjgt5ngtrog4La34LeP4LeA4LeS4Lat4LePIOC2muC3kuC2u+C3k+C2uOC2pyDgtongtqkg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2xlYXJBcHBVc2VyRGF0YSIgbXNnaWQ9IjI3NDEwOTE5MTg0NTg0Mjc1NiI+IuC2uuC3meC2r+C3lOC2uOC3miDgt4Dgt5ngtrHgtq3gt4og4Lav4Lat4LeK4LatIOC2uOC2muC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NsZWFyQXBwVXNlckRhdGEiIG1zZ2lkPSI0NjI1MzIzNjg0MTI1NDU5NDg4Ij4i4La04La74LeS4LeB4LeT4La94LaaIOC2r+C2reC3iuC2rSDgt4Tgt5Lgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2muC2pyDgtongtqkg4Lav4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlQ2FjaGVGaWxlcyIgbXNnaWQ9IjMxMjg2NjU1NzE4Mzc0MDg2NzUiPiLgtoXgtrHgt5ngtprgt4og4La64LeZ4Lav4LeU4La44LeK4LeA4La9IOC3hOC3kOC2ueC3kuC2veC3kiDgtrjgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZWxldGVDYWNoZUZpbGVzIiBtc2dpZD0iMzgxMjk5ODU5OTAwNjczMDE5NiI+IuC3hOC3kOC2ueC3kuC2veC3kiDgtpzgt5zgtrHgt5Qg4La44LeQ4Laa4LeT4La44LanIOC2heC3gOC3g+C2uyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFBhY2thZ2VTaXplIiBtc2dpZD0iNzQ3MjkyMTc2ODM1Nzk4MTk4NiI+IuC2uuC3meC2r+C3lOC2uOC3iiDgtobgtqDgtrrgtrHgtrrgt5og4LaJ4LapIOC2tOC3iuKAjeC2u+C2uOC3j+C2q+C2uiDgtrjgt5DgtrHgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9IjM5MjEwNjgxNTQ0MjA3MzgyOTYiPiLgtrrgt5ngtq/gt5Tgtrjgtprgtqcg4LaR4LeE4LeSIOC2muC3muC2reC2uiwg4Lav4Lat4LeK4LatIOC3g+C3hCDgt4Tgt5Dgtrngt5Lgtr3gt5Ig4La04LeK4oCN4La74La44LeP4LarIOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iMjE5OTEyODQ4MjgyMDMwNjkyNCI+IuC2uuC3meC2r+C3lOC2uOC3iiDgtprgt5ngt4Xgt5LgtrHgt4rgtrgg4LeD4LeK4Lau4LeP4La04Lax4La6IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luc3RhbGxQYWNrYWdlcyIgbXNnaWQ9IjU2Mjg1MzA5NzI1NDgwNzEyODQiPiLgtrHgt4Ag4LeE4LedIOC2uuC3j+C3gOC2reC3iuC2muC3j+C2veC3kuC2sSDgtprgtrvgtrEg4La94LavIEFuZHJvaWQg4La04LeQ4Laa4Lea4Lai4La64Lax4LeKIOC3g+C3iuC2ruC3j+C2tOC2seC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4La24La94LeD4LeE4LeS4LatIOC2heC3gOC3g+C2uyDgtq3gt5PgtrHgt4rgtq/gt5Qg4LeD4La44LacIOC2seC3gCDgtrrgt5ngtq/gt5Tgtrjgt4og4LaR4Laa4Lat4LeUIOC2muC3kuC2u+C3k+C2uOC2pyDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2uOC3meC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeS4La74LeT4La44LanIOC2ieC2qSDgtq3gt5Lgtrbgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jbGVhckFwcENhY2hlIiBtc2dpZD0iNzQ4NzI3OTM5MTcyMzUyNjgxNSI+IuC2uuC3meC2r+C3lOC2uOC3miDgt4Pgt5Lgtrrgtr3gt5Tgtrgg4LeE4LeQ4La54LeS4La94LeSIOC2r+C2reC3iuC2rSDgtrjgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4OTc0NjQwODcxOTQ1NDM0NTY1Ij4i4LaF4Lax4LeZ4Laa4LeKIOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2vSDgt4Tgt5Dgtrngt5Lgtr3gt5Ig4Lax4LeP4La44LeP4LeA4La94LeSIOC2reC3lOC3hSDgtofgtq3gt5Ig4Lac4Lec4Lax4LeUIOC2uOC3kOC2muC3k+C2uOC3meC2seC3iiDgtrrgt5ngtq/gt5Tgtrjgtqcg4Lan4LeQ4La24LeK4La94LanIOC2huC2oOC2uuC2seC2uiDgtrHgt5Lgtq/gt4Tgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uOC2nOC3kuC2seC3iiDgtoXgtrHgt5ngtprgt4og4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2kuC3gOC3j+C2uuC3miDgtq/gtq3gt4rgtq0g4Lax4LeQ4LeA4LatIOC2veC2tuC3jyDgtpzgt5DgtrHgt5Pgtrjgtqcg4LaF4LeA4LeB4LeK4oCN4La6IOC3gOC2sSDgtrHgt5Lgt4Pgt48sIOC2kuC3gOC3j+C2uuC3miDgtobgtrvgtrjgt4rgtrfgtrog4Lat4LeA4Lat4LeKIOC3g+C3meC2uOC3kuC2seC3iiDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgtqcg4LaJ4LapIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjQ1OTQ0MTAyMTk1NjQzNjc3OSI+IuC2heC2seC3meC2muC3iiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr0g4LeE4LeQ4La54LeS4La94LeSIOC2seC3j+C2uOC3j+C3gOC2veC3kiDgtq3gt5Tgt4Ug4LaH4Lat4LeSIOC2nOC3nOC2seC3lCDgtrjgt5Dgtprgt5Pgtrjgt5ngtrHgt4og4La64LeZ4Lav4LeU4La44LanIOC2r+C3lOC2u+C2muC2ruC2sSDgtobgtqDgtrrgtrHgtrog4Lax4LeS4Lav4LeE4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngtrjgtp/gt5LgtrHgt4og4LaF4Lax4LeZ4Laa4LeKIOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtpLgt4Dgt4/gtrrgt5og4Lav4Lat4LeK4LatIOC2seC3kOC3gOC2rSDgtr3gtrbgt48g4Lac4LeQ4Lax4LeT4La44LanIOC2heC3gOC3geC3iuKAjeC2uiDgt4DgtrEg4Lax4LeS4LeD4LePLCDgtpLgt4Dgt4/gtrrgt5og4LaG4La74La44LeK4La34La6IOC2reC3gOC2reC3iiDgt4Pgt5ngtrjgt5LgtrHgt4og4LeD4LeS4Lav4LeU4LeA4LeT4La44LanIOC2ieC2qSDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3ZlUGFja2FnZSIgbXNnaWQ9IjMyODk4OTAyNzE2NDU5MjE0MTEiPiLgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4La44LeK4La04Lat4LeKIOC2nOC3meC2sSDgtrrgt4/gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3ZlUGFja2FnZSIgbXNnaWQ9IjMxOTU2MjIxNzc3ODI0NDUyNCI+IuC2heC2t+C3iuKAjeC2uuC2seC3iuC2reC2uyDgt4Pgt4Qg4La24LeP4LeE4LeS4La7IOC2uOC3j+C2sOC3iuKAjeC2uuC2uuC2seC3iuC2nOC3meC2seC3iiDgtrrgt5ngtq/gt5Tgtrjgt5og4LeD4La44LeK4La04Lat4LeKIOC2nOC3meC2seC2uuC3j+C2uOC2pyDgt4Pgt4Qg4La64LeZ4Lav4LeU4La44LeaIOC3g+C2uOC3iuC2tOC2reC3iiDgt4Dgtr3gt5LgtrHgt4og4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC3g+C3hCDgtrbgt4/gt4Tgt5Lgtrsg4La44LeP4Law4LeK4oCN4La64La64Lax4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3miDgt4Pgtrjgt4rgtrTgtq3gt4og4Lac4LeZ4Lax4La64LeP4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZExvZ3MiIG1zZ2lkPSI2NjE1Nzc4NTQzMTk4OTY3NjE0Ij4i4LeD4LaC4LeA4Lea4Lav4LeTIOC2veC3nOC2nOC3iiDgtq/gtq3gt4rgtq0g4Laa4LeS4La64LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZExvZ3MiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgyMDYxMzEzMjkzNDU1MTUxIj4i4La04Lav4LeK4Law4Lat4LeS4La64LeaIOC3gOC3kuC3gOC3kuC2sCDgtr3gt5zgtpzgt4og4Lac4Lec4Lax4LeUIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La04LeU4Lav4LeK4Lac4La94LeS4LaaIOC3g+C3hCDgtrTgt57gtq/gt4rgtpzgtr3gt5Lgtpog4Lat4Lec4La74Lat4LeU4La74LeUIOC2h+C2reC3lOC3heC2reC3iuC3gCDgtpTgtrYg4Lan4LeQ4La24LeK4La94Lan4La64LeZ4Lax4LeKIOC2muC3lOC2uOC2muC3iiDgtprgtrvgtrHgt4rgtrHgt5ngt4Tgt5Lgtq8g4La64Lax4LeP4Lav4LeTIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LeD4LeZ4LeA4LeT4La44LanIOC2uOC3meC2uuC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjA2MzQzODE0MDI0MTU2MDQ0MyI+IuC2tOC2r+C3iuC2sOC2reC3kuC2uuC3miDgt4Dgt5Lgt4Dgt5LgtrAg4La94Lec4Lac4LeKIOC2nOC3nOC2seC3lCDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2tOC3lOC2r+C3iuC2nOC2veC3kuC2miDgt4Pgt4Qg4La04Lee4Lav4LeK4Lac4La94LeS4LaaIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtofgtq3gt5Tgt4Xgtq3gt4rgt4Ag4LaU4La2IOC2r+C3lOC2u+C2muC2ruC2seC2uuC3meC2seC3iiDgtprgt5Tgtrjgtprgt4og4Laa4La74Lax4LeK4Lax4LeZ4LeE4LeS4LavIOC2uuC2seC3j+C2r+C3kyDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4Lat4Lec4La74Lat4LeU4La74LeUIOC3g+C3meC3gOC3k+C2uOC2pyDgtrjgt5ngtrrgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI3MTU4MDU1NTU4MjM4ODE4MTgiPiLgtrHgt5Dgt4Dgtq0g4Law4LeP4LeA4Lax4La6IOC3g+C2s+C3hOC3jyDgtpXgtrHgt5Hgtrgg4La44LeP4Law4LeK4oCN4La6IOC3gOC3kuC2muC3muC2reC2muC2uuC2muC3iiDgt4Tgt4/gt4Dgt5Lgtq3gt48g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjgyODM5MTI0ODg0MzMxODkwMTAiPiLgtrHgt5Dgt4Dgtq0g4Law4LeP4LeA4Lax4La6IOC3g+C2s+C3hOC3jyDgt4Dgt5Lgtprgt5rgtq3gtrHgtrog4Laa4LeS4La74LeT4La44LanIOC2leC2seC3keC2uCDgt4Pgt4rgtq7gt4/gtrTgt5Lgtq0g4La44LeP4Law4LeK4oCN4La6IOC3gOC3kuC2muC3muC2reC2muC2uuC2muC3iiDgtrfgt4/gt4Dgt5Lgtq3gtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VDYUNlcnRpZmljYXRlcyIgbXNnaWQ9IjE2NzgzOTE4OTY3ODY4ODIwMTQiPiLgt4Dgt5Lgt4Hgt4rgt4Dgt4/gt4Pgtq/gt4/gtrrgt5Mg4LaF4Laa4LeK4Lat4La04Lat4LeK4oCN4La7IOC2muC3heC2uOC2seC3j+C2muC2u+C2q+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUNhQ2VydGlmaWNhdGVzIiBtc2dpZD0iNDAxNTY0NDA0NzE5NjkzNzAxNCI+IuC2uuC3meC2r+C3lOC2uOC2pyBDQSDgt4Pgt4Tgtq3gt5Lgtpog4LeA4LeS4LeB4LeK4LeA4LeP4LeD4Lav4LeP4La64LeTIOC2heC2muC3iuC2reC2tOC2reC3iuKAjeC2uyDgtr3gt5ngt4Mg4LeD4LeK4Lau4LeP4La04Lax4La6IOC3g+C3hCDgtoXgt4Pgt4rgtq7gt4/gtrTgtrHgtrog4Laa4LeS4La74LeT4La44LanIOC2ieC2qSDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kaWFnbm9zdGljIiBtc2dpZD0iODA3Njc0Mzk1MzkwODAwMDM0MiI+IkRpYWcg4LeA4LeS4LeD4LeS4Lax4LeKIOC3hOC3kuC2uOC3kuC2muC3j+C2u+C2reC3iuC3gOC2uiDgtq/gtrvgtqsg4LeD4La44LeK4La04Lat4LeK4LeA4La94LanIOC2muC3kuC2uuC3gOC3k+C2uC8g4La94LeS4LeA4LeS4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlhZ25vc3RpYyIgbXNnaWQ9IjY2MDgyOTU2OTIwMDI0NTIyODMiPiJEaWFnIOC2muC2q+C3iuC2qeC3j+C2uuC2uOC2pyDgtoXgtrrgt5Lgtq3gt5Ig4LaV4Lax4LeR4La4IOC3g+C2uOC3iuC2tOC2reC2muC3iiDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4LeD4LeEIOC2veC3kuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaL4Lav4LeP4LeE4La74Lar4La64Laa4LeKIOC2veC3meC3gyAvZGV2IOC2reC3lOC2vSDgtofgtq3gt5Ig4Lac4Lec4Lax4LeULiDgtrjgt5ngtrrgtqcg4La04Lav4LeK4Law4Lat4LeSIOC3g+C3iuC2ruC3j+C2uuC3kuC2reC3j+C3gOC2pyDgt4Pgt4Qg4LaG4La74Laa4LeK4LeC4LeP4LeA4LanIOC2tuC2veC2tOC3keC2uOC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeE4LeQ4Laa4LeS4La64LeP4LeA4Laa4LeKIOC2h+C2rS4g4Lax4LeS4LeC4LeK4La04LeP4Lav4LaaIOC3hOC3nSDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgtrvgt5Qg4LeA4LeS4LeD4LeS4Lax4LeKIOC2r+C3mOC2qeC3j+C2guC2nC3gt4Dgt5Lgt4Hgt5rgt4Lgt5Lgtq0g4Lav4Led4LeCIOC2seC3kuC2u+C3iuC2q+C2uiDgt4PgtrPgt4Tgt48g4La04La44Lar4Laa4LeKIOC2uOC3meC2uiDgtrrgt5zgtq/gt4/gtpzgtq0g4La64LeU4Lat4LeU4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlQ29tcG9uZW50U3RhdGUiIG1zZ2lkPSI2MzM1NTc2Nzc1NzExMDk1OTMxIj4i4La64LeZ4Lav4LeU4La44LeKIOC2heC2guC2nCDgt4Pgtrbgtr0g4LeE4LedIOC2heC2tuC2vSDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODg4NzQzNTc0MDk4MjIzNzI5NCI+IuC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgtpog4LaF4LaC4Lac4La64Laa4LeKIOC3g+C2tuC2vSDgtq8g4Lax4LeQ4Lav4LeK4LavIOC2uuC2seC3iuC2sSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Dgt5Dgtq/gtpzgtq3gt4og4Lan4LeQ4La24LeK4La94Lan4LeKIOC2heC3gOC3geC3iuKAjeC2uuC2reC3jyDgtoXgtrbgtr0g4Laa4LeS4La74LeT4La44LanIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4La44LeZ4La6IOC2t+C3j+C3gOC3kuC2rSDgtprgt4Ug4LeE4LeQ4LaaLiDgtrjgt5ngtrgg4LaF4LeA4LeD4La74La6IOC3g+C3kOC2veC2muC3kuC2veC3iuC2veC3meC2seC3iiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeFIOC2uuC3lOC2reC3lOC2uiwg4La34LeP4LeA4LeS4LatIOC2seC3nOC2muC2u+C2sSwg4LaF4LeD4LeK4Lau4LeS4La7IOC3hOC3nSDgtoXgt4Pgt4rgtq7gt4/gtrrgt5Ig4Lat4Lat4LeK4LeA4La64LanIOC2uuC3meC2r+C3lOC2uCDgtrTgtq3gt4og4Laa4LeS4La74LeT4La44LanIOC2keC2uuC2pyDgt4Tgt5Dgtprgt5LgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29tcG9uZW50U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODI3MjMyNDg0NDE2NTA1NjE1Ij4i4LeA4LeZ4Lax4Lat4LeKIOC2uuC3meC2r+C3lOC2uOC2miDgtoXgtoLgtpzgtrrgtprgt4og4LeD4La24La9IOC2ryDgtrHgt5Dgtq/gt4rgtq8g4La64Lax4LeK4LaxIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3gOC3kOC2r+C2nOC2reC3iiDgtq/gt5Tgtrvgtprgtq7gtrEg4LaF4LeA4LeB4LeK4oCN4La64Lat4LePIOC2heC2muC3iuKAjeC2u+C3kuC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrjgt5ngtrog4La34LeP4LeA4LeS4LatIOC2muC3hSDgt4Tgt5DgtpouIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4LeD4LeQ4La94Laa4LeS4La94LeK4La94LeZ4Lax4LeKIOC2t+C3j+C3gOC3kuC2rSDgtprgt4Ug4La64LeU4Lat4LeU4La6LCDgtrfgt4/gt4Dgt5Lgtq0g4Lax4Lec4Laa4La74LaxLCDgtoXgt4Pgt4rgtq7gt5Lgtrsg4LeE4LedIOC2heC3g+C3iuC2ruC3j+C2uuC3kiDgtq3gtq3gt4rgt4Dgtrrgtqcg4La64LeZ4Lav4LeU4La4IOC2tOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaR4La64LanIOC3hOC3kOC2muC3kuC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dyYW50UmV2b2tlUGVybWlzc2lvbnMiIG1zZ2lkPSI0NjI3MzE1MzUxMDkzNTA4Nzk1Ij4i4LaF4LeA4LeD4La7IOC2tOC3iuKAjeC2u+C2r+C3j+C2seC2uiDgtprgt5Lgtrvgt5Pgtrgg4LeE4LedIOC2heC3hOC3neC3g+C3kiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ncmFudFJldm9rZVBlcm1pc3Npb25zIiBtc2dpZD0iNDA4ODY0MjY1NDA4NTg1MDY2MiI+IuC2uuC3meC2r+C3lOC2uOC2muC2pyDgtpHgtrrgtqcg4LeE4LedIOC2heC2seC3meC2muC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4La94LanIOC3gOC3kuC3geC3muC3guC3kuC2rSDgtoXgt4Dgt4Pgtrsg4La04LeK4oCN4La74Lav4LeP4Lax4La64LanIOC3hOC3nSDgtoXgt4Tgt53gt4Pgt5Ig4Laa4LeS4La74LeT4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4osIOC2kuC3gOC3j+C2pyDgtoXgt4Dgt4Pgtrsg4La04LeK4oCN4La74Lav4LeP4Lax4La6IOC2seC3nOC2muC3hSDgtpzgt5Tgtqvgt4/gtoLgtpwg4LeA4La94LanIOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgt4Dgt5Pgtrjgtqcg4La44LeZ4La6IOC2t+C3j+C3gOC3kuC2reC3jyDgtprgt4Ug4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0UHJlZmVycmVkQXBwbGljYXRpb25zIiBtc2dpZD0iODQ2MzE4MTYyODY5NTM5NjM5MSI+IuC2heC2t+C3kuC2u+C3lOC2oOC3kiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laa4LeD4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0UHJlZmVycmVkQXBwbGljYXRpb25zIiBtc2dpZD0iNDk3Mzk4Njc2MjI0MTc4MzcxMiI+IuC2lOC2tuC2nOC3miDgtoXgtrfgt5Lgtrvgt5TgtqDgt5Ig4La64LeZ4Lav4LeU4La44LeKIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2lOC2tuC2nOC3miDgtrDgt4/gt4DgtrHgtrog4LeA4LaxIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4LCDgtrTgt4Dgtq3gt5LgtrEg4La64LeZ4Lav4LeU4La44LeKIOC3gOC2veC3kuC2seC3iiDgtq/gtq3gt4rgtq0g4LaR4Laa4Lat4LeUIOC2muC3kuC2u+C3k+C2uCwg4La04LeK4oCN4La74Led4Lap4LePIOC2muC3kuC2u+C3k+C2uCDgt4Dgt5DgtrHgt5Ig4Lav4LeaIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4Lax4LeS4LeB4LeK4LeB4La24Lav4LeA4La4IOC3g+C3kuC2r+C3lCDgtprgtrvgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVNldHRpbmdzIiBtc2dpZD0iMjIyNjE5NTI5MDk1NTIyNDczMCI+IuC2tOC2r+C3iuC2sOC2reC3kiDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU2V0dGluZ3MiIG1zZ2lkPSI3Nzc1NzIzNDQxNTU4OTA3MTgxIj4i4La04Lav4LeK4Law4Lat4LeSIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgtq/gtq3gt4rgtq0g4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtpTgtrbgtpzgt5og4La04Lav4LeK4Law4Lat4LeSIOC3gOC3kuC2seC3iuKAjeC2uuC3j+C3gyDgtq/gt53gt4Ig4Lac4LeQ4Lax4LeK4LeA4LeS4La6IOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU2VjdXJlU2V0dGluZ3MiIG1zZ2lkPSIyMDQ2NzYyNTE4NzY3MTgyODgiPiLgtobgtrvgtprgt4rigI3gt4Lgt5Lgtq0g4La04Lav4LeK4Law4Lat4LeSIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTZWN1cmVTZXR0aW5ncyIgbXNnaWQ9IjgxNTk1MzU2MTMwMjAxMzczOTEiPiLgtrTgtq/gt4rgtrDgtq3gt5Lgtrrgt5og4LaG4La74Laa4LeK4oCN4LeC4LeS4LatIOC2r+C2reC3iuC2rSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2i+C2tOC3j+C2guC2nOC2uuC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4LaL4La04LeP4LaC4LacIOC3g+C2s+C3hOC3jyDgtrfgt4/gt4Dgt5Lgtq3gtrrgtqcg4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIyMTQ5NDI2NjY0MjI2MTUyMTg1Ij4iR29vZ2xlIOC3g+C3muC3gOC3jyDgt4Pgt5Lgtq3gt5Lgtrrgtrgg4LeA4LeZ4Lax4LeD4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlR3NlcnZpY2VzIiBtc2dpZD0iMTI4NzMwOTQzNzYzODM4MDIyOSI+Ikdvb2dsZSDgt4Pgt5rgt4Dgt48g4LeD4LeS4Lat4LeS4La64La4IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2t+C3j+C3gOC3kuC2reC2uuC2pyDgtrHgt5zgt4Dgt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlQm9vdENvbXBsZXRlZCIgbXNnaWQ9IjUzMTI5NjU1NjU5ODc4MDAwMjUiPiLgtobgtrvgtrjgt4rgtrfgtrrgt5rgtq/gt5Mg4Law4LeP4LeA4Lax4La6IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVCb290Q29tcGxldGVkIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3MzkwMzA0NjY0MTE2ODgwNzA0Ij4i4La04Lav4LeK4Law4Lat4LeS4La6IOC2h+C2u+C2ueC3lOC2uCDgtoXgt4Dgt4PgtrHgt4og4LeA4LeWIOC3gOC3hOC3j+C2uCDgtrrgt5ngtq/gt5Tgtrgg4LaG4La74La44LeK4La3IOC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4Lan4LeQ4La24LeK4La94Lan4La6IOC2huC2u+C2uOC3iuC2tyDgtprgt5Lgtrvgt5Pgtrjgtqcg4La44LeZ4La44Laf4LeS4Lax4LeKIOC2tOC2uOC3jyDgtprgt4Ug4LeE4LeQ4Laa4LeSIOC2heC2reC2uyDgt4Pgt5Dgtrjgt4Dgt5Lgtqfgtrgg4Law4LeP4LeA4Lax4La6IOC3gOC2sSDgtrHgt5Lgt4Pgt48g4LeD4La44LeK4La04LeW4La74LeK4LarIOC2p+C3kOC2tuC3iuC2veC2p+C2uuC2uCDgtrTgt4rigI3gtrvgtrjgt4/gtq8g4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY2VpdmVCb290Q29tcGxldGVkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTEzOTUwNTg5MTAyNjE3NTA0Ij4i4La04Lav4LeK4Law4Lat4LeS4La6IOC2h+C2u+C2ueC3lOC2uCDgtoXgt4Dgt4PgtrHgt4og4LeA4LeWIOC3gOC3hOC3j+C2uCDgtrrgt5ngtq/gt5Tgtrgg4LaG4La74La44LeK4La3IOC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4Lav4LeU4La74Laa4Lau4Lax4La6IOC2huC2u+C2uOC3iuC2tyDgtprgt5Lgtrvgt5Pgtrjgtqcg4La44LeZ4La44Laf4LeS4Lax4LeKIOC2tOC2uOC3jyDgtprgt4Ug4LeE4LeQ4Laa4LeSIOC2heC2reC2uyDgt4Pgt5Dgtrjgt4Dgt5Lgtqfgtrgg4Law4LeP4LeA4Lax4La6IOC3gOC2sSDgtrHgt5Lgt4Pgt48g4LeD4La44LeK4La04LeW4La74LeK4LarIOC2r+C3lOC2u+C2muC2ruC2seC2uuC3muC2uCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgt5Lgtq3gt4rgt4Dgtrog4La04LeK4oCN4La74La44LeP4LavIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Jyb2FkY2FzdFN0aWNreSIgbXNnaWQ9Ijc5MTkxMjYzNzI2MDY4ODE2MTQiPiLgtrbgt5DgtrPgt5Tgtqvgt5Qg4LeA4LeS4Laa4LeP4LeB4Lax4La6IOC2uuC3kOC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFN0aWNreSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzc0OTc2MDQ5NDM5OTkxNTY1MSI+IuC2tOC3iuKAjeC2u+C2oOC3j+C2u+C2q+C2uuC2pyDgtrTgt4Pgt5Tgt4Dgtq8g4La04LeA4Lat4LeS4LaxLCDgtrTgt4rigI3gtrvgtqDgt4/gtrvgtqvgtrrgtrHgt4og4La64LeQ4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Dgt5Dgtqngt5LgtrTgt5Tgtrsg4La44Lat4Laa4La6IOC2t+C3j+C3gOC3kuC2reC2uiDgt4Tgt5rgtq3gt5Qg4Laa4Lec4LanLCDgtoXgtrDgt5Lgtpog4La34LeP4LeA4LeS4Lat4La6IOC2uOC2n+C3kuC2seC3iiDgtqfgt5Dgtrbgt4rgtr3gtqfgtrog4La04La44LePIOC2muC3kuC2u+C3k+C2uCDgt4Tgt50g4LaF4LeD4LeK4Lau4LeS4La7IOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjgyNTgwMzc2NDIzMjQ0NTA5MSI+IuC2tOC3iuKAjeC2u+C2oOC3j+C2u+C2q+C2uuC2pyDgtrTgt4Pgt5Tgt4Dgtq8g4La04LeA4Lat4LeS4LaxLCDgtrTgt4rigI3gtrvgtqDgt4/gtrvgtqvgtrrgtrHgt4og4La64LeQ4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Dgt5Dgtqngt5LgtrTgt5Tgtrsg4La44Lat4Laa4La6IOC2t+C3j+C3gOC3kuC2reC2uiDgt4Tgt5rgtq3gt5Qg4Laa4Lec4LanLCDgtoXgtrDgt5Lgtpog4La34LeP4LeA4LeS4Lat4La6IOC2uOC2n+C3kuC2seC3iiDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4La04La44LePIOC2muC3kuC2u+C3k+C2uCDgt4Tgt50g4LaF4LeD4LeK4Lau4LeS4La7IOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ29udGFjdHMiIG1zZ2lkPSI4MzQ4NDgxMTMxODk5ODg2MTMxIj4i4LaU4La24Lac4LeaIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3jyDgtprgt5Lgtrrgt4Dgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ29udGFjdHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjUyOTQ4NjY4NTY5NDExNDk2MzkiPiLgt4PgtrPgt4TgtrHgt4og4La04LeU4Lav4LeK4Lac4La94La64Lax4LeKIOC3hOC2pyDgtpTgtrYg4LaH4La44Lat4LeU4La44LeKIOC2nOC2reC3iiwg4LaKLeC2reC3kOC2tOC3kOC2veC3iiwg4LeE4LedICDgtoXgtrHgt5ngtprgt5Tgtq3gt4og4LaG4Laa4LeP4La7IOC3gOC2veC3kuC2seC3iiDgt4PgtrHgt4rgtrHgt5Lgt4Dgt5rgtq/gtrHgtrog4Laa4La74Lac4Lat4LeKIOC3g+C2guC2m+C3iuKAjeC2uuC2reC2ryDgtofgtq3gt5Tgt4Xgt5Tgt4AsIOC2lOC2tuC2nOC3miDgtqfgt5Dgtrbgt4rgtr3gtqfgtrrgt5og4Lac4La24Lap4LeP4LeA4LeTIOC2h+C2reC3kiDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48g4La04LeS4LeF4LeS4La24LazIOC2r+C2reC3iuC2rSDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4La44Laf4LeS4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtpTgtrbgtpzgt5og4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC2tOC3kuC3heC3kuC2tuC2syDgtq/gtq3gt4rgtq0g4LeD4LeU4La74LeQ4Laa4LeT4La44LanIOC2ieC2qSDgtr3gtrbgt48g4Lav4LeZ4LaxIOC2heC2reC2uywg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5Lgt4Pgt5LgtrHgt4og4LaU4La2IOC2seC3nOC2r+C3kOC2seC3lOC3gOC2reC3iuC3gOC2uCDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48g4Lav4Lat4LeK4LatIOC2tuC3meC2r+C3jyDgtpzgt5DgtrHgt5Pgtrjgtqcg4LaJ4LapIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ29udGFjdHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NDQwNjU0MTUyNDU3MzAwNjYyIj4i4Lax4LeS4La64La44LeS4LatIOC2tOC3lOC2r+C3iuC2nOC2veC2uuC2seC3iiDgt4Pgtrjgtpwg4LaU4La2IOC2h+C2uOC2reC3lCwg4LaKLeC2reC3kOC2tOC3kOC2veC3iiDgtprgt4Ug4LeE4LedIOC3gOC3meC2seC2reC3iiDgtobgtprgt4/gtrvgtrrgtprgt5LgtrHgt4og4LeD4Lax4LeK4Lax4LeS4LeA4Lea4Lav4Lax4La6IOC2muC3hSDgt4PgtoLgtpvgt4rigI3gtrrgt4/gtq3gtrog4LaH4Lat4LeU4La94Lat4LeKIOC2lOC2tuC2nOC3miDgtq/gt5Tgtrvgtprgtq7gtrHgtrrgt5og4LaG4Lag4La64Lax4La6IOC2muC2u+C2sSDgtr3gtq8g4LaU4La24Lac4LeaIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3jyDgtpzgt5DgtrEg4Lav4Lat4LeK4LatIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaU4La24Lac4LeaIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3jyDgtq/gtq3gt4rgtq0g4LaL4La04LeD4LeK4LauIOC2muC3kuC2u+C3k+C2uOC2pyDgtrjgt5ngtrgg4LaF4LeA4LeD4La74La6IOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4LaxIOC2heC2reC2uyDgtpTgtrbgtpzgt5og4Lav4LeQ4Lax4LeU4La44Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3jyDgtq/gtq3gt4rgtq0g4La24LeZ4Lav4LeP4Lac4LeQ4Lax4LeT4La4IOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUNvbnRhY3RzIiBtc2dpZD0iNTEwNzQ5MjA4NjQxNjc5MzU0NCI+IuC2lOC2tuC2nOC3miDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48g4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ29udGFjdHMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9Ijg5NzI0MzkzMjUyMTk1MzYwMiI+IuC2seC3kuC2uuC2uOC3kuC2rSDgtrTgt5Tgtq/gt4rgtpzgtr3gtrrgtrHgt4rgtqcg4LaU4La2IOC2h+C2uOC2reC3liwg4LaKLeC2reC3kOC2tOC3kOC2veC3iiDgtprgt4Ug4LeE4LedIOC2h+C2uOC2reC3lOC2uOC3iiDgtprgt4Ug4LeD4LaC4Lab4LeK4oCN4La64LeP4LatIOC2h+C2reC3lOC2veC2reC3iiDgtpTgtrbgtpzgt5og4Lan4LeQ4La24LeK4La94Lan4La64LeaIOC2huC2oOC2uuC2seC2uiDgtprgtrvgtrEg4La94LavIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3jyAo4La94LeS4La04LeS4LaxKSDgtq/gtq3gt4rgtq0g4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uuC3meC2seC3iiDgtrrgt5ngtq/gt5Tgtrjgtqcg4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC2r+C2reC3iuC2rSDgtrjgt5Dgtprgt5Pgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNvbnRhY3RzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTg5ODY5MjI0NjI1MTYzNTU4Ij4i4LeD4Laz4LeE4Lax4LeKIOC2tOC3lOC2r+C3iuC2nOC2veC2uuC2seC3iuC2pyDgtpTgtrYg4LaH4La44Lat4LeWLCDgtoot4Lat4LeQ4La04LeQ4La94LeKIOC2muC3hSDgt4Tgt50g4LaH4La44Lat4LeU4La44LeKIOC2muC3hSDgt4PgtoLgtpvgt4rigI3gtrrgt4/gtrEg4LaH4Lat4LeU4La94Lat4LeKIOC2lOC2tuC2nOC3miDgtq/gt5Tgtrvgtprgtq7gtrHgtrrgt5og4LaG4Lag4La64Lax4La6IOC2muC2u+C2sSDgtr3gtq8g4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePICjgtr3gt5LgtrTgt5LgtrEpIOC2r+C2reC3iuC2rSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngtrgg4LaF4LeA4LeD4La74La64LeZ4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48g4Lav4Lat4LeK4LatIOC2uOC3kOC2muC3k+C2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENhbGxMb2ciIG1zZ2lkPSIzNDc4MTMzMTg0NjI0MTAyNzM5Ij4i4LaH4La44Lat4LeU4La44LeKIOC2veC3nOC2nOC2uiDgtprgt5Lgtrrgt4DgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsbExvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzcwMDY0NTE4NDg3MDc2MDI4NSI+IuC2tOC3kOC2uOC3kuC2q+C3meC2sSDgt4Pgt4Qg4La04LeS4Lan4LeA4LaxIOC2h+C2uOC2reC3lOC2uOC3iiDgtpzgt5DgtrEg4Lav4Lat4LeK4LatIOC2h+C2reC3lOC3heC2reC3iiwg4LaU4La24Lac4LeaIOC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgtofgtrjgtq3gt5Tgtrjgt4og4La94Lec4LacIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaU4La24Lac4LeaIOC2h+C2uOC2reC3lOC2uOC3iiDgtr3gt5zgtpwg4Lav4Lat4LeK4LatIOC3g+C3lOC2u+C2muC3iuC3guC3kuC2rSDgtprgt5Lgtrvgt5Pgtrjgtqcg4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr3gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3kiDgt4Pgt4Qg4LaU4La24Lac4LeaIOC2r+C3kOC2seC3lOC2uOC2muC3kuC2seC3iiDgtq3gt5zgtrvgt4Ag4LaH4La44Lat4LeU4La44LeKIOC2veC3nOC2nCDgtq/gtq3gt4rgtq0g4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrbgt5ngtq/gt48g4Lac4LeQ4Lax4LeT4La4IOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGxMb2ciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzc3NzI1Nzk2ODEzMjE3MjQ0Ij4i4La94LeQ4La24LeZ4LaxIOC3g+C3hCDgtrTgt5Lgtqfgt4DgtrEg4LaH4La44Lat4LeU4La44LeKIOC2tOC3kuC3heC3kuC2tuC2syDgtq/gtq3gt4rgtq0g4LaH4Lat4LeU4LeF4Lat4LeK4LeAIOC2lOC2tuC2nOC3miDgtq/gt5Tgtrvgtprgtq7gtrHgtrrgt5og4LaH4La44Lat4LeU4La44LeKIOC2veC3nOC2nOC3iiDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4LaU4La24Lac4LeaIOC2h+C2uOC2reC3lOC2uOC3iiDgtr3gt5zgtpzgt4og4Lav4Lat4LeK4LatIOC2i+C2tOC3g+C3iuC2riDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2ieC2qeC2r+C3meC2sSDgtoXgtq3gtrsg4LaU4La24Lac4LeaIOC2heC2seC3lOC2r+C3kOC2seC3lOC2uOC2muC3kuC2seC3iiDgtq3gt5zgtrvgt4Ag4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5Lgt4Pgt5LgtrHgt4og4LaH4La44Lat4LeU4La44LeKIOC2veC3nOC2nOC3iiDgtq/gtq3gt4rgtq0g4La24LeZ4Lav4LeP4Lac4LeQ4Lax4LeT4La4IOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUNhbGxMb2ciIG1zZ2lkPSI4NTUyMDQ1NjY0NzQzNDk5MzU0Ij4i4LaH4La44Lat4LeU4La44LeKIOC2veC3nOC2nOC2uiDgtr3gt5Lgt4Dgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGxMb2ciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY2NjE4MDYwNjIyNzQxMTkyNDUiPiLgtr3gt5Dgtrbgt5ngtrEg4LaH4La44Lat4LeU4La44LeKIOC3g+C3hCDgtrTgt5Lgtqfgt4DgtrEg4LaH4La44Lat4LeU4La44LeKIOC2r+C2reC3iuC2rSDgtofgtq3gt5Tgt4Xgtq3gt4rgt4Ag4LaU4La24Lac4LeaIOC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgtofgtrjgtq3gt5Tgtrjgt4og4La94Lec4Lac4La6IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2lOC2tuC2nOC3miDgtofgtrjgtq3gt5Tgtrjgt4og4La94Lec4Lac4La6IOC2uOC3kOC2muC3k+C2uOC2pyDgt4Tgt50g4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC2uOC3meC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeZ4La74LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsbExvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4Mzk0MTczNjM1Mjc4Nzg0MiI+IuC2tOC3kOC2uOC3kuC2q+C3meC2sSDgt4Pgt4Qg4La04LeS4Lan4LeA4LeZ4LaxIOC2h+C2uOC2reC3lOC2uOC3iiDgtq/gtq3gt4rgtq0g4LaH4Lat4LeU4LeF4LeU4LeAIOC2lOC2tuC2nOC3miDgtq/gt5Tgtrvgtprgtq7gtrHgtrrgt5og4LaH4La44Lat4LeU4La44LeKIOC2veC3nOC2nOC2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtpTgtrbgtpzgt5og4LaH4La44Lat4LeU4La44LeKIOC2veC3nOC2nOC2uiDgtrjgt5Dgtprgt5Pgtrjgtqcg4LeE4LedIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrjgt5ngtrog4La34LeP4LeA4LeS4LatIOC2muC2vSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkUHJvZmlsZSIgbXNnaWQ9IjQ3MDE4ODk4NTI2MTI3MTY2NzgiPiLgtpTgtrbgtpzgt5og4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC2tOC2rSDgtprgt5Lgtrrgt4DgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkUHJvZmlsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU0NjI0NzUxNTE4NDk4ODg4NDgiPiLgtpTgtrbgtpzgt5og4Lax4La4IOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3jyDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LaG4Lav4LeTIOC2lOC2tuC2nOC3miDgtovgtrTgt4/gtoLgtpzgtrrgt5og4Lac4La24Lap4LePIOC3gOC3kyDgtofgtq3gt5Ig4La04LeU4Lav4LeK4Lac4La94LeS4LaaIOC2tOC3kOC2reC3kuC2muC2qSDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4Laa4LeS4La64LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngt4Tgt5Ig4Lat4Lea4La74LeU4La4IOC2uuC3meC2r+C3lOC2uOC2pyDgtpTgtrbgt4Ag4LeE4Laz4LeU4Lax4LePIOC2nOC3kOC2seC3k+C2uOC2pyDgt4Tgt5Dgtprgt5Ig4LeA4LaxIOC2tuC3gCDgt4Pgt4Qg4LaU4La24Lac4LeaIOC2tOC3lOC2r+C3iuC2nOC2veC3kuC2miDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LaF4Lax4LeZ4Laa4LeKIOC2heC2uuC2pyDgtrrgt5Dgt4Dgt5Pgtrjgtqcg4LavIOC3hOC3kOC2muC3kiDgt4Dgt5Pgtrjgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVByb2ZpbGUiIG1zZ2lkPSI5MDc3OTM2Mjg3NzczOTc2NDMiPiLgtpTgtrbgtpzgt5og4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC2tOC2rSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVQcm9maWxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTU1MjA4NDI5NDU5ODQ2NTg5OSI+IuC2lOC2tuC2nOC3miDgtrHgtrgg4LeD4LeEIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3jyDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LeA4LeQ4Lax4LeSIOC2lOC2tuC2nOC3miDgtovgtrTgt4/gtoLgtpzgtrrgt5og4LaG4Lag4La64Lax4La6IOC2muC2u+C2sSDgtr3gtq8g4La04LeU4Lav4LeK4Lac4La94LeS4LaaIOC2tOC3kOC2reC3kuC2muC2qSDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgt4Tgt50g4LaR4Laa4Lat4LeUIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La44Lac4LeS4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgtpTgtrbgt4Ag4LeE4Laz4LeU4Lax4LePIOC2nOC2rSDgt4Tgt5Dgtprgt5Ig4LaF4Lat4La7IOC2heC2seC3meC2muC3iiDgtoXgtrrgtqcg4LaU4La24Lac4LeaIOC2tOC3kOC2reC3kuC2muC2qSDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4La64LeQ4LeA4LeS4La6IOC3hOC3kOC2muC3kiDgtrbgt4Ag4Laa4LeS4La64LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjEyNjg5MjA5NTYxNTI0MTkxNzAiPiLgtpTgtrbgtpzgt5og4LeD4La44LeP4LaiIOC2tOC3iuKAjeC2u+C3gOC3j+C3hOC2uiDgtprgt5Lgtrrgt4DgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDI1NTcwNjAyNzE3MjA1MDg3MiI+IuC2lOC2tuC2nOC3miDgt4Pgt4Qg4LaU4La24Lac4LeaIOC2uuC3hOC3heC3lOC3gOC2seC3iuC2nOC3miDgt4Pgtrjgt4/gtqIg4La64LeP4LeA4Lat4LeK4Laa4LeP4La94LeT4Lax4La64Lax4LeKIOC3gOC3meC2rSDgtrTgt5Lgt4Dgt5Lgt4Pgt5Pgtrjgtqcg4LeE4LedIOC3g+C2uOC2uOC3lOC3hOC3lOC2u+C3iuC2rSDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtrbgt5ngtq/gt48g4Lac4LeQ4Lax4LeT4La44LeaIOC2r+C3kyDgt4Pgt5Dgtr3gtprgt5Lgtr3gt5Lgtrjgtq3gt4og4LeA4Lax4LeK4LaxIC0tIOC3gOC3kuC3geC3iuC3gOC3j+C3g+C2uuC2muC3kuC2seC3iiDgtq3gt5zgtrvgt4Ag4LeD4La44LeP4LaiIOC2ouC3j+C2veC3gOC2vSDgtpTgtrbgtpzgt5og4LeD4LeEIOC2lOC2tuC2nOC3miDgtrrgt4Tgt4Xgt5Tgt4DgtrHgt4og4LaF4Lat4La7IOC3g+C2seC3iuC2seC3kuC3gOC3muC2r+C2sSDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La44LeZ4La44Lac4LeS4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiDgt4Pgtqfgt4TgtrE6IOC3g+C3kuC2uuC2veC3lCDgt4Pgtrjgt4/gtqIg4Lai4LeP4La94LeA4La9IOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4La24La9IOC2seC3nOC2muC2u+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzUwNDE3OTIyMjQ5MzIzNTY0NSI+IuC2lOC2tuC2nOC3miDgt4Pgtrjgt4/gtqIg4La04LeK4oCN4La74LeA4LeP4LeE4La6IOC3gOC3meC2rSDgtr3gt5Lgt4Dgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNvY2lhbFN0cmVhbSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMwODY1NTc1NTIyMDQxMTQ4NDkiPiLgtpTgtrbgtpzgt5og4La64LeE4LeF4LeU4LeA4Lax4LeK4Lac4LeaIOC3g+C2uOC3j+C2oiDgtrrgt4/gt4Dgtq3gt4rgtprgt4/gtr3gt5PgtrHgtrrgtrHgt4og4La04LeZ4Lax4LeK4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4La24LeZ4Lav4LePIOC2nOC3kOC2seC3k+C2uOC3muC2r+C3kyDgt4Pgt5Dgtr3gtprgt5Lgtr3gt5Lgtrjgtq3gt4og4LeA4Lax4LeK4LaxIC0tIOC2uuC3hOC3heC3lOC3gOC3meC2muC3iuC2nOC3meC2seC3iiDgtrTgt5Dgtrjgt5Lgtqvgt5ngtrEg4La94LeZ4LeDIOC2tOC2q+C3kuC3gOC3kuC2qSDgtrHgt5LgtrTgtq/gt4Dgt5Pgtrjgtqcg4La44LeZ4La44Laf4LeS4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgtqfgt4TgtrEgOiDgt4Pgt5Lgtrrgtr3gt5Qg4LeD4La44LeP4LaiIOC2ouC3j+C2vSDgt4PgtrPgt4Tgt48g4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uiDgtrbgtr0g4Lax4Lec4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENhbGVuZGFyIiBtc2dpZD0iNTk3MjcyNzU2MDI1NzYxMjM5OCI+IuC2r+C3kuC2sSDgtq/gtrvgt4rgt4HgtrHgtrrgt5og4LeD4LeS4Lav4LeU4LeA4LeT4La44LeKIOC3g+C3hCDgtrvgt4Tgt4Pgt5Lgtpzgtq0g4Lat4Lec4La74Lat4LeU4La74LeUIOC2muC3kuC2uuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDYWxlbmRhciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDIxNjQ2MjA0OTA1NzY1ODcyMyI+IuC2lOC2tuC2nOC3miDgtqfgt5Dgtrbgt4rgtr3gtqfgtrog4Lat4LeU4La9IOC2nOC2tuC2qeC3jyAg4Laa4La7IOC2h+C2reC3kiDgtrjgt5Lgtq3gt5TgtrvgtrHgt4rgtpzgt5og4LeD4LeEIOC2keC2muC3iuC3gCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgtrvgtrHgt4rgtrHgtrHgt4rgtpzgt5og4LavIOC2h+C2reC3lOC3heC3lOC3gCDgt4Pgt5Lgtrrgtr3gt5Tgtrgg4Lav4LeS4LaxIOC2r+C2u+C3iuC3geC2sSDgt4Pgt5Lgtq/gt4rgtrDgt5Ig4Laa4LeS4La64LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngtrog4La74LeE4LeD4LeK4oCN4La64La34LeP4LeA4La6IOC3hOC3nSDgt4PgtoLgt4Dgt5rgtq/gt5Pgtq3gt4/gt4Dgtrog4Lax4Lec4LeD4La94Laa4LePIOC2lOC2tuC2nOC3miDgtq/gt5LgtrEg4Lav4La74LeK4LeB4LaxIOC2r+C2reC3iuC2rSDgtrbgt5ngtq/gt48g4Lac4LeQ4Lax4LeT4La44LanIOC3hOC3nSDgt4Pgt5Tgtrvgt5Dgtprgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGVuZGFyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzQzNDU0ODY4MjQ3MDg1MTU4MyI+IuC2uuC3hOC3heC3lOC3gOC2seC3iiDgt4Pgt4Qg4LeD4La44Laa4LeP4La94LeS4Lax4La64Lax4LeKIOC2h+C2reC3lOC2veC2reC3iiDgtpTgtrbgtpzgt5og4Lav4LeU4La74Laa4Lau4Lax4La64LeaIOC2huC2oOC2uuC2seC2uiDgtprgtrvgtrEg4La94LavIOC3g+C3kuC2uuC2veC3lCDgtq/gt5LgtrEg4Lav4La74LeK4LeB4LaxIOC3g+C3kuC2r+C3lOC3gOC3k+C2uOC3iiDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3gOC3kuC3geC3iuC3gOC3j+C3g+C2uuC2muC3kuC2seC3iiDgt4Tgt50g4LeD4LaC4LeA4Lea4Lav4LeT4Lat4LeP4LeA4Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgtpTgtrbgtpzgt5og4Lav4LeS4LaxIOC2r+C2u+C3iuC3geC2sSDgtq/gtq3gt4rgtq0g4La24LeZ4Lav4LePIOC2nOC3kOC2seC3k+C2uOC2pyDgt4Tgt50g4LaL4La04LeD4LeK4LauIOC2muC3kuC2u+C3k+C2uOC2pyDgtrjgt5ngtrjgtpzgt5LgtrHgt4og4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUNhbGVuZGFyIiBtc2dpZD0iODQzODg3NDc1NTE5MzgyNTY0NyI+IuC2r+C3kuC2sSDgtq/gtrvgt4rgt4HgtrEg4LeD4LeS4Lav4LeK4Law4LeSIOC2keC2muC2reC3lCDgtprgt5Lgtrvgt5Pgtrgg4LeE4LedIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtprgt4og4LeD4LeS4Lav4LeU4Laa4La7IOC3hOC3kuC2uOC3kuC2muC2u+C3lOC2nOC3miDgtq/gt5DgtrHgt5Pgtrjgtprgt5LgtrHgt4og4Lat4Lec4La74LeAIOC2heC2uOC3lOC2reC3iuC2reC2seC3iuC2pyDgtoot4Lat4LeQ4La04LeR4La94Laa4LeKIOC2uuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsZW5kYXIiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY2NzkwMzU1MjAxMTM2Njg1MjgiPiLgtrrgt4Tgt4Xgt5Tgt4DgtrHgt4og4LeE4LedIOC2keC2muC2py3gt4Dgt5DgtqngtprgtrvgtrHgt4rgtrHgtrHgt4og4LaH4Lat4LeU4LeF4Lat4LeK4LeAIOC2lOC2tuC2pyDgtqfgt5Dgtrbgt4rgtr3gtqfgtrrgt5og4LeA4LeZ4Lax4LeD4LeKIOC2muC3hSDgt4Tgt5Dgtprgt5Ig4LeD4LeS4Lav4LeK4Law4LeSIOC2keC2muC2reC3lCDgtprgt5Lgtrvgt5PgtrjgtqcsIOC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5PgtrjgtqcsIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uOC2n+C3kuC2seC3iiDgtq/gt5LgtrEg4Lav4La74LeK4LeB4LaxIOC3hOC3kuC2uOC3kuC2muC2u+C3lOC3gOC2seC3iuC2nOC3meC2seC3iiDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La64LeA4LaxIOC2tOC2u+C3kuC2r+C3kiDgtrjgt5ngtrHgt4og4La44LeA4LeP4La04LeR4La44LanIOC3hOC3nSDgt4Tgt5Lgtrjgt5Lgtprgtrvgt5Tgtpzgt5og4LaF4Lax4LeU4Lav4LeQ4Lax4LeU4La44Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgt4Pgt5Lgtq/gt4rgtrDgt5Ig4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2veC3kOC2tuC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUNhbGVuZGFyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjMyNDQ2OTQ5NjMyNzI0OTM3NiI+IuC2lOC2tuC2nOC3miDgtrrgt4Tgt4Xgt5Tgt4DgtrHgt4og4LeE4LedIOC3g+C2uOC2muC3j+C2veC3k+C2seC2uuC2seC3iiDgtofgtq3gt5Tgt4Xgtq3gt4og4LaU4La24Lac4LeaIOC2r+C3lOC2u+C2muC2ruC2seC2uuC3miDgtpTgtrbgtqcg4LeA4LeZ4Lax4LeD4LeKIOC2muC3hSDgt4Tgt5Dgtprgt5Ig4LeD4LeS4Lav4LeUIOC3gOC3k+C2uOC3iiDgtpHgtprgtq3gt5Qg4Laa4LeS4La74LeT4La44LanLCDgtongt4Dgtq3gt4og4Laa4LeS4La74LeT4La44LanLCDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngtrjgtpzgt5LgtrHgt4og4Lav4LeS4LaxIOC2r+C2u+C3iuC3geC2sSDgt4Tgt5Lgtrjgt5Lgtprgtrvgt5Tgt4DgtrHgt4rgtpzgt5ngtrHgt4og4La04LeQ4La44LeS4Lar4LeZ4LaxIOC3g+C3miDgtrTgt5ngtrHgt5ngtrEg4La04Lar4LeS4LeA4LeS4LapIOC2uuC3kOC3gOC3k+C2uOC2pyDgt4Tgt50g4LeE4LeS4La44LeS4Laa4La74LeU4Lac4LeaIOC2r+C3kOC2seC3lOC2uOC2muC3kuC2seC3iiDgtq3gt5zgtrvgt4Ag4LeD4LeS4Lav4LeU4LeA4LeT4La44LeKIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NNb2NrTG9jYXRpb24iIG1zZ2lkPSI4Njg4MzM0OTc0MDM2ODIzMzMwIj4i4La04La74LeT4Laa4LeK4LeC4LarIOC3g+C2s+C3hOC3jyDgtobgtq/gtrvgt4rgt4Eg4LeD4LeK4Lau4LeP4LaxIOC2uOC3luC2veC3j+C3geC3iuKAjeC2uyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc01vY2tMb2NhdGlvbiIgbXNnaWQ9IjU4MDg3MTEwMzk0ODIwNTE4MjQiPiLgtrTgtrvgt5Pgtprgt4rgt4Lgtqvgtrrgtqcg4LeA4LeK4oCN4La64LeP4LaiIOC3g+C3iuC2ruC3j+C2sSDgtrjgt5bgtr3gt4/gt4Hgt4rigI3gtrsg4LeD4LeP4Lav4Lax4LeK4LaxIOC3hOC3nSDgtrHgt4Ag4LeD4LeK4Lau4LeP4LaxIOC3g+C3kOC2tOC2uuC3lOC2uOC3iuC2muC2u+C3lOC3gOC3meC2muC3lCDgt4Pgt4rgtq7gt4/gtrTgtrHgtrog4Laa4La74Lax4LeK4LaxLiBHUFMg4LeE4LedIOC3g+C3iuC2ruC3j+C2sSDgt4Pgt5DgtrTgtrrgt5Tgtrjgt4rgtprgtrvgt5Tgt4DgtrHgt4og4LaG4Lav4LeTIOC3gOC3meC2seC2reC3iiDgt4Pgt4rgtq7gt4/gtrEg4La44LeW4La94LeP4LeB4LeK4oCN4La7IOC3gOC3kuC3g+C3kuC2seC3iiDgtr3gtrbgt48g4Lav4LeZ4LaxIOC3g+C3iuC2ruC3j+C2seC2uiDgt4Pgt4Qv4LeE4LedIOC2reC2reC3iuC3gOC2uiDgtrTgt4rigI3gtrvgtq3gt5Lgt4Pgt4rgtq7gt4/gtrTgtrHgtrog4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtrjgt5ngtrog4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0xvY2F0aW9uRXh0cmFDb21tYW5kcyIgbXNnaWQ9IjI4MzYzMDgwNzY3MjA1NTM4MzciPiLgtoXgtrjgtq3gtrsg4LeD4LeK4Lau4LeP4LaxIOC3g+C3kOC2tOC2uuC3lOC2uOC3iuC2muC2u+C3lCDgt4Dgt5LgtrDgt4/gtrEg4LeA4LeZ4LatIOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgt4Dgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NMb2NhdGlvbkV4dHJhQ29tbWFuZHMiIG1zZ2lkPSI1OTQ1MTY2NjQyMzM1ODAwNzYzIj4i4LaF4La44Lat4La7IOC3g+C3iuC2ruC3j+C2sSDgt4Pgt5DgtrTgtrrgt5Tgtrjgt4rgtprgtrvgt5Qg4LeA4LeS4Law4LeP4LaxIOC3gOC3meC2rSDgtrTgt5Lgt4Dgt5Lgt4Pgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIEdQUyDgt4Tgt50g4LeA4LeZ4Lax4Lat4LeKIOC3g+C3iuC2ruC3j+C2sSDgtrjgt5bgtr3gt4/gt4Hgt4rigI3gtrsg4Laa4LeK4oCN4La74LeS4La64LeP4LeA4La94LeSIOC3gOC3meC2rSDgtrbgt4/gtrDgt48g4Laa4LeS4La74LeT4La44LanIOC2uOC3meC2uiDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI2NTc4MTAxMTk5ODI1MTkzODczIj4i4LeD4LeK4Lau4LeP4LaxIOC3g+C3kOC2tOC2uuC3lOC2uOC3iuC2muC2u+C3lOC3gOC3meC2muC3lCDgt4Pgt4rgtq7gt4/gtrTgtrHgtrrgtqcg4LaF4LeA4LeD4La74La6IOC2r+C3meC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luc3RhbGxMb2NhdGlvblByb3ZpZGVyIiBtc2dpZD0iOTA2NjE0NjEyMDQ3MDU5MTUwOSI+IuC2tOC2u+C3k+C2muC3iuC3guC2q+C2uuC2pyDgt4Dgt4rigI3gtrrgt4/gtqIg4LeD4LeK4Lau4LeP4LaxIOC2uOC3luC2veC3j+C3geC3iuKAjeC2uyDgt4Pgt4/gtq/gtrHgt4rgtrEg4LeE4LedIOC2seC3gCDgt4Pgt4rgtq7gt4/gtrEg4LeD4LeQ4La04La64LeU4La44LeK4Laa4La74LeU4LeA4LeZ4Laa4LeUIOC3g+C3iuC2ruC3j+C2tOC2seC2uiDgtprgtrvgtrHgt4rgtrEuIEdQUyDgt4Tgt50g4LeD4LeK4Lau4LeP4LaxIOC3g+C3kOC2tOC2uuC3lOC2uOC3iuC2muC2u+C3lOC3gOC2seC3iiDgtobgtq/gt5Mg4LeA4LeZ4Lax4Lat4LeKIOC3g+C3iuC2ruC3j+C2sSDgtrjgt5bgtr3gt4/gt4Hgt4rigI3gtrsg4LeA4LeS4LeD4LeS4Lax4LeKIOC2veC2tuC3jyDgtq/gt5ngtrEg4LeD4LeK4Lau4LeP4Lax4La6IOC3g+C3hC/gt4Tgt50g4Lat4Lat4LeK4Lat4LeK4LeA4La6IOC2tOC3iuKAjeC2u+C2reC3kuC3g+C3iuC2ruC3j+C2tOC2seC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2uOC3meC2uiDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzRmluZUxvY2F0aW9uIiBtc2dpZD0iMTE5MTg5ODA2MTk2NTI3MzM3MiI+IuC2seC3kuC3gOC3kOC2u+C2r+C3kiDgt4Pgt4rgtq7gt4/gtrHgtrogKEdQUyDgt4Pgt4Qg4Lai4LeP4La94La6IOC2tOC2r+C2seC2uOC3iiDgtprgtrvgtpzgtq3gt4opIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzRmluZUxvY2F0aW9uIiBtc2dpZD0iNTI5NTA0NzU2MzU2NDk4MTI1MCI+IuC2nOC3neC2veC3k+C2uiDgt4Pgt4rgtq7gt4/gtrHgt5Pgtrog4La04Lav4LeK4Law4Lat4LeS4La6IChHUFMpIOC3hOC3nSDgt4Pgt5ngtr3gt4og4Laa4LeU4LeF4LeU4Lar4LeUIOC3g+C3hCBXaS1GaSDgt4Dgt5DgtrHgt5Ig4Lai4LeP4La9IOC3g+C3iuC2ruC3j+C2seC3k+C2uiDgtrTgt4rigI3gtrvgtrfgt4Ag4La34LeP4LeA4LeS4Lat4La64LeZ4Lax4LeKIOC2lOC2tuC2nOC3miDgtrHgt5Lgt4Dgt5Dgtrvgtq/gt5Ig4LeD4LeK4Lau4LeP4Lax4La6IOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrgg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La64LeZ4Lav4LeU4La44LeKIOC3gOC2veC2pyDgt4Pgt4rgtq7gt4/gtrHgt5Pgtrog4LeD4Lea4LeA4LePIOC2t+C3j+C3gOC3kuC2reC3jyDgtprgt5Lgtrvgt5PgtrjgtqcgIOC2kuC3gOC3jyDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4LeA4LeS4La6IOC2uuC3lOC2reC3lCDgt4Dgt5ouIOC2lOC2tuC3gCDgt4Pgt5zgtrrgt48g4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrjgt5ngtrog4La34LeP4LeA4LeS4Lat4LePIOC2muC2u+C2sSDgtoXgtq3gtrsg4LaF4La44Lat4La7IOC2tuC3kOC2p+C2u+C3kiDgtrbgtr3gtrrgtprgt4rgtq8g4La04La74LeS4La34Led4Lai4Lax4La6IOC2muC2u+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0NvYXJzZUxvY2F0aW9uIiBtc2dpZD0iNDg4Nzg5NTM2MjM1NDIzOTYyOCI+IuC2huC3g+C2seC3iuC2seC2reC2uCDgt4Pgt4rgtq7gt4/gtrHgtrogKOC2ouC3j+C2veC2ui3gtrTgt4/gtq/gtpog4LeA4LeWKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0NvYXJzZUxvY2F0aW9uIiBtc2dpZD0iMjUzODIwMDE4NDM3MzMwMjI5NSI+IuC2lOC2tuC2nOC3miDgtq/gt4Ug4LeD4LeK4Lau4LeP4Lax4La6IOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4Lax4LeK4Lax4Lea4LeA4Lea4Lav4LaxIOC2muC3lOC3heC3lOC2q+C3lCDgt4Pgt4QgV2ktRmkg4LaG4Lav4LeTIOC2ouC3j+C2vSDgt4Pgt4rgtq7gt4/gtrEg4La44LeW4La94LeP4LeB4LeK4oCN4La7IOC2t+C3j+C3gOC3kuC2rSDgtprgtrvgtrEg4LeD4LeK4Lau4LeP4LaxIOC3g+C3muC3gOC3jyDgt4Dgt5Lgt4Pgt5LgtrHgt4og4La44LeZ4La4IOC3g+C3iuC2ruC3j+C2seC2uiDgt4Dgt4rigI3gtrrgt5Tgtq3gt4rgtrTgtrHgt4rgtrEg4Laa4La7IOC2h+C2rS4g4La64LeZ4Lav4LeU4La44LanIOC2t+C3j+C3gOC3kuC2reC2uiDgt4PgtrPgt4Tgt48g4La44LeZ4La4IOC3g+C3iuC2ruC3j+C2sSDgt4Pgt5rgt4Dgt48g4LeD4Laa4LeK4oCN4La74LeS4La6IOC2muC3hSDgtrrgt5Tgtq3gt5Qg4LaF4Lat4La7IOC2lOC2tuC2nOC3miDgtovgtrTgt4/gtoLgtpzgtrog4LeD4Laz4LeE4LePIOC2tOC3kOC3gOC2reC3kuC2uiDgtrrgt5Tgtq3gt5TgtrouIOC2lOC2tiDgt4Pgt5Lgtqfgt5LgtrEg4Lat4LeQ4LaxIOC2r+C3heC3gCDgt4TgtrPgt5TgtrHgt48g4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr3gtqcg4La44LeZ4La6IOC2t+C3j+C3gOC3kuC2rSDgtprgt4Ug4LeE4LeQ4Laa4LeS4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIyMzYzOTY5NjQxNzkyMzg4OTQ3Ij4iU3VyZmFjZUZsaW5nZXIg4LeA4LeZ4LatIOC2tOC3iuKAjeC2u+C3gOC3muC3geC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IlN1cmZhY2VGbGluZ2VyIOC2tOC3hOC2vSDgtrjgtqfgt4rgtqfgtrjgt5og4LeA4LeS4LeB4Lea4LeC4LeP4LaC4LacIOC2t+C3j+C3gOC3kuC2reC2uuC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiLgtrvgt4/gtrjgt5Qg4LaF4Lax4LeK4Lat4La74LeP4Lag4La6IOC2muC3kuC2uuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiLgtrvgt4/gtrjgt5Qg4LaF4Lax4LeK4Lat4La74LeP4Lag4La64Lax4La64LeZ4Lax4LeKIOC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uuC2seC3iiDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iSW5wdXRGbGluZ2VyIOC3gOC3meC2rSDgtrTgt5Lgt4Dgt5Lgt4Pgt5ngtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4iSW5wdXRGbGluZ2VyIOC2tOC3hOC2vSDgtrjgtqfgt4rgtqfgtrjgt5og4LeA4LeS4LeB4Lea4LeC4LeP4LaC4LacIOC2t+C3j+C3gOC3kuC2reC2uuC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+IldpZmkg4LeD4LaC4Lav4La74LeK4LeB4LaaIOC3gOC3kuC2seC3iuKAjeC2uuC3j+C3gyDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiLgt4Dgt5LgtrHgt4rigI3gtrrgt4/gt4Mg4Laa4LeS4La74LeT4La44LanIOC3g+C3hCBXaWZpIOC3g+C2guC2r+C2u+C3iuC3geC2miDgt4Dgt5ngtq0g4LeD4La44LeK4La24Lax4LeK4LawIOC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+IldpZmkg4LeD4LaC4Lav4La74LeK4LeB4LaaIOC2tOC3j+C2veC2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjQ1NDM5MTIyOTI2ODE4MjY5ODYiPiJXaWZpIOC3g+C2guC2r+C2u+C3iuC3geC2muC2uuC3miDgtrTgt4Tgt4Ug4La44Lan4LeK4Lan4La44LeaIOC3gOC3kuC3geC3muC3guC3j+C2guC2nCDgtrTgt4/gtr3gtrHgtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlQXVkaW9PdXRwdXQiIG1zZ2lkPSI2ODU3MTM0NDk4NDAyMzQ2NzA4Ij4i4LeB4La24LeK4LavIOC2tOC3iuKAjeC2u+C2reC3kuC2r+C3j+C2seC2uiDgtpzgt4rigI3gtrvgt4TgtqvgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlQXVkaW9PdXRwdXQiIG1zZ2lkPSI2MjEwNTk3NzU0MjEyMjA4ODUzIj4i4La64LeZ4Lav4LeU4La44LanIOC3geC2tuC3iuC2ryDgtrTgt4rigI3gtrvgtq3gt5Lgtq/gt4/gtrHgtrog4Lac4LeK4oCN4La74LeE4Lar4La6IOC2muC2uyDgt4Tgtrvgt4Dgt48g4La64LeQ4LeA4LeT4La44LanIOC2ieC2qSDgtq/gt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIyMjQ2ODI4NzczNTg5MDk0MDIzIj4i4LeA4LeT4Lap4LeS4La64LedIOC2tOC3iuKAjeC2u+C2reC3kuC2r+C3j+C2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjM1OTQ4MTY1ODAzNDE0OTg2MCI+IuC2uuC3meC2r+C3lOC2uOC2pyDgt4Dgt5Pgtqngt5Lgtrrgt50g4La04LeK4oCN4La74Lat4LeS4Lav4LeP4Lax4La6IOC2nOC3iuKAjeC2u+C3hOC2q+C2uiDgtprgtrsg4LeE4La74LeA4LePIOC2uuC3kOC3gOC3k+C2uOC2pyDgtongtqkg4Lav4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iNzgxNTM5ODk2OTMwMzM4MjAxNiI+IuC2huC2u+C2muC3iuKAjeC3guC3kuC2rSDgt4Dgt5Pgtqngt5Lgtrrgt50g4La04LeK4oCN4La74Lat4LeS4Lav4LeP4Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMjc3OTc5MzA2NDcwOTM1MDI4OSI+IuC2uuC3meC2r+C3lOC2uOC2pyDgtobgtrvgtprgt4rigI3gt4Lgt5Lgtq0g4LeA4LeT4Lap4LeS4La64LedIOC2tOC3iuKAjeC2u+C2reC3kuC2r+C3j+C2seC2uiDgtpzgt4rigI3gtrvgt4Tgtqvgtrog4Laa4La7IOC3hOC2u+C3gOC3jyDgtrrgt5Dgt4Dgt5Pgtrjgtqcg4LaJ4LapIOC2r+C3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeUF1ZGlvU2V0dGluZ3MiIG1zZ2lkPSI2MDk1ODU5OTM3MDY5MTQ2MDg2Ij4i4LaU4La24Lac4LeaIOC3geC3iuKAjeC2u+C3gOC3iuKAjeC2uiDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4LeA4LeZ4Lax4LeD4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeUF1ZGlvU2V0dGluZ3MiIG1zZ2lkPSIzNTIyNTY1MzY2ODA2MjQ4NTE3Ij4i4LeB4La24LeK4Lav4La6IOC2huC2r+C3kyDgtpzgt53gtr3gt5Pgtrog4LeB4La24LeK4LavIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC3g+C3hCDgtrTgt4rigI3gtrvgtq3gt5Lgtq/gt4/gtrHgtrog4LeD4Laz4LeE4LePIOC2t+C3j+C3gOC3kuC2rSDgtprgtrvgtrHgt4rgtrHgt5og4Laa4LeU4La44LaxIOC2seC3j+C2r+C2muC2uiDgtq/gt5Dgtrrgt5Ig4Lat4Lea4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjb3JkQXVkaW8iIG1zZ2lkPSIzODc2MDQ5NzcxNDI3NDY2MzIzIj4i4LeB4La24LeK4LavIOC2tOC2p+C3kuC2nOC2rSDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNvcmRBdWRpbyIgbXNnaWQ9IjQ5MDY4MzkzMDEwODc5ODA2ODAiPiLgtrjgtrrgt5Lgtprgt4rigI3gtrvgt5zgt4bgt53gtrHgtrog4La44Laf4LeS4Lax4LeKIOC3geC2tuC3iuC2ryDgtrTgtqfgt5Lgtpzgtq0g4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngtrgg4LaF4LeA4LeD4La74La6IOC2uOC2n+C3kuC2seC3iiDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaV4Lax4LeR4La4IOC3gOC3muC2veC3j+C3gOC2miDgtpTgtrbgtpzgt5og4LaF4Lax4LeU4Lav4LeQ4Lax4LeU4La44Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgt4Hgtrbgt4rgtq8g4La04Lan4LeS4Lac4LatIOC2muC3kuC2u+C3k+C2uOC2pyDgtongtqkg4La94La24LePIOC2r+C3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYSIgbXNnaWQ9IjM2MTYzOTE5MTk1NTk3NTExOTIiPiLgtrTgt5LgtrHgt4rgtq3gt5bgtrsg4LeD4LeEIOC3gOC3k+C2qeC3kuC2uuC3nSDgtpzgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYW1lcmEiIG1zZ2lkPSI4NDk3MjE2NTI0NzM1NTM1MDA5Ij4i4Laa4LeQ4La44La74LeP4LeA4LeZ4Lax4LeKIOC2tOC3kuC2seC3iuC2reC3luC2uyDgtpzgt5DgtrHgt5Pgtrjgtqcg4LeD4LeEIOC3gOC3k+C2qeC3kuC2uuC3nSDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4La44Laf4LeS4Lax4LeKIOC2lOC2tuC2nOC3miDgtoXgtrHgt5Tgtq/gt5DgtrHgt5Tgtrjgtprgt5LgtrHgt4og4Lat4Lec4La74LeAIOC2leC2seC3keC2uCDgt4Dgt5rgtr3gt4/gt4Dgtprgtq/gt5Mg4Laa4LeQ4La44La74LeP4LeAIOC2t+C3j+C3gOC3kuC2reC3jyDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYW1lcmFEaXNhYmxlVHJhbnNtaXRMZWQiIG1zZ2lkPSIyNjUxMDcyNjMwNTAxMTI2MjIyIj4i4Laa4LeQ4La44La74LeP4LeAIOC2t+C3j+C3gOC3kuC2reC2uuC3muC2r+C3kyBMRUQg4Lav4La74LeK4LeB4LaaIOC3g+C2uOC3iuC2tOC3iuKAjeC2u+C3muC3guC2q+C2uiDgtoXgtrbgtr0g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FtZXJhRGlzYWJsZVRyYW5zbWl0TGVkIiBtc2dpZD0iNDc2NDU4NTQ2NTQ4MDI5NTM0MSI+IuC2muC3kOC2uOC2u+C3jyDgtrfgt4/gt4Dgt5Lgtq3gtrog4La04LeS4LeF4LeS4La24LazIExFRCDgtq/gtrvgt4rgt4Hgtprgtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pywg4Laa4La94LeS4Lax4LeKIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC3jyDgtofgtq3gt5Ig4La04Lav4LeK4Law4Lat4LeSIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJpY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI5NjEyOTIyMDU3NjQ0ODgzMDQiPiLgtqfgt5Dgtrbgt4rgtr3gtqfgtrog4LeD4LeK4Lau4LeS4La74LeA4La4IOC2heC2tuC2vSDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JyaWNrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODMzNzgxNzA5MzMyNjM3MDUzNyI+IuC2r+C3lOC2u+C2muC2ruC2seC2uiDgt4Pgt4rgtq7gt5Lgtrvgt4Ag4LaF4La24La9IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JyaWNrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MzM0ODE4ODA4MDAxNjk5NTMwIj4i4La44LeU4LeF4LeUIOC2p+C3kOC2tuC3iuC2veC2p+C2uuC2uCDgt4Pgt4rgtq7gt5Lgtrvgt4Dgtrgg4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La6IOC2ieC2reC3jyDgtrfgtrrgt4/gtrHgtprgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJpY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzg4OTAzMjk3NjI3MjgzMDk5Ij4i4La44LeU4LeF4LeUIOC2r+C3lOC2u+C2muC2ruC2seC2uuC2uCDgt4Pgt4rgtq7gt5Lgtrvgt4Dgtrgg4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La6IOC2ieC2reC3jyDgtrfgtrrgt4/gtrHgtprgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWJvb3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM0MzY2MzQ5NzI1NjE3OTUwMDIiPiLgtqfgt5Dgtrbgt4rgtr3gtqfgt4og4Lax4LeQ4LeA4LatIOC2tOC2qyDgtpzgt5DgtrHgt4rgt4Dgt5Pgtrjgtqcg4La24La9IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVib290IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjg5ODU2MDg3MjQ2MjYzODI0MiI+IuC2r+C3lOC2u+C2muC2ruC2sSDgtrHgt5Dgt4Dgtq0g4La04LarIOC2nOC3kOC2seC3iuC3gOC3k+C2uOC2pyDgtrbgtr0g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVib290IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4MTcyMDU2MTgwMDYzNzAwNzQxIj4i4Lan4LeQ4La24LeK4La94Lan4La6IOC2seC3kOC3gOC2rSDgtrbgtr0g4Lac4LeQ4Lax4LeK4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYm9vdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjUzMjYwMDgxMjQyODk5ODk5NjkiPiLgtqfgt5Dgtrbgt4rgtr3gtqfgtrog4Lax4LeQ4LeA4LatIOC2h+C2u+C2ueC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMjkyNzM2MTUzNzk0MjU5MTg0MSI+IlVTQiDgtobgtqDgtrrgtrHgtrog4Lac4Lec4Lax4LeUIOC2tOC2r+C3iuC2sOC2reC3kuC2uiDgtrTgt4rigI3gtrvgt4Dgt5rgt4Eg4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDQwMjMwNTA0OTg5MDk1MzgxMCI+IlNEIOC2tOC2reC3iiDgtpzgt5zgtrHgt5Qg4La04Lav4LeK4Law4Lat4LeS4La6IOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3VudF91bm1vdW50X2ZpbGVzeXN0ZW1zIiBtc2dpZD0iMTgyOTI5MDcwMTY1ODk5MjM0NyI+IuC2ieC3gOC2reC3iiDgtprgt4Ug4LeE4LeQ4Laa4LeSIOC2huC2oOC2uuC2seC2uiDgt4PgtrPgt4Tgt48g4Lac4Lec4Lax4LeUIOC2tOC2r+C3iuC2sOC2reC3kiDgtojgtrPgt5Pgtrjgtqcg4LeD4LeEIOC2nOC3kOC2veC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI2MjI3ODE5NTgyNjI0OTA0OTcyIj4iVVNCIOC2huC2oOC2uuC2seC2uiDgtrjgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI2MjU4MjY5ODYzOTI3NDA1NiI+IlNEIOC2tOC2rSDgtrjgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3VudF9mb3JtYXRfZmlsZXN5c3RlbXMiIG1zZ2lkPSI4Nzg0MjY4MjQ2Nzc5MTk4NjI3Ij4i4LaJ4LeA4Lat4LeKIOC2muC3hSDgt4Tgt5Dgtprgt5Ig4LaG4Lag4La64LaxIOC3huC3neC2uOC3kOC2p+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX2FjY2VzcyIgbXNnaWQ9IjM0MTEzMzg2MzIwMDIxOTM4NDYiPiLgtoXgtrfgt4rigI3gtrrgtrHgt4rgtq3gtrsg4LaG4Lag4La64Lax4La6IOC2tOC3kuC3heC3kuC2tuC2syDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4La94La24LePIOC2nOC3kOC2seC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfYWNjZXNzIiBtc2dpZD0iMzA5NDU2Mzg0NDU5Mzg3ODU0OCI+IuC2heC2t+C3iuKAjeC2uuC2seC3iuC2reC2uyDgtobgtqDgtrrgtrHgtrrgt5og4Lat4Lec4La74Lat4LeU4La74LeUIOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfY3JlYXRlIiBtc2dpZD0iNjQxNDc1NzIzNDc4OTMzNjMyNyI+IuC2heC2t+C3iuKAjeC2uuC2seC3iuC2reC2uyDgtobgtqDgtrrgtrHgtrog4Lax4LeS4La74LeK4La44LeP4Lar4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19jcmVhdGUiIG1zZ2lkPSI0NTU4ODY5MjczNTg1ODU2ODc2Ij4i4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2huC2oOC2uuC2seC2uiDgt4Pgt5Dgtq/gt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX2Rlc3Ryb3kiIG1zZ2lkPSI1MjY5MjgzMjgzMDE2MTgwMjIiPiLgtoXgtrfgt4rigI3gtrrgtrHgt4rgtq3gtrsg4LaG4Lag4La64Lax4La6IOC3gOC3kuC2seC3j+C3gSDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX2Rlc3Ryb3kiIG1zZ2lkPSI3MjE4NzQ5Mjg2MTQ1NTI2NTM3Ij4i4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2huC2oOC2uuC2seC2uiDgt4Dgt5LgtrHgt4/gt4Eg4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19tb3VudF91bm1vdW50IiBtc2dpZD0iODg3Nzk5ODEwMTk0NDk5OTM4NiI+IuC2heC2t+C3iuKAjeC2uuC2seC3iuC2reC2uyDgtobgtqDgtrrgtrHgtrog4Lax4LaC4LeA4LeT4La4L+C2nOC3kOC2veC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfbW91bnRfdW5tb3VudCIgbXNnaWQ9IjM0NTEzNjAxMTQ5MDI0OTA5MjkiPiLgtoXgtrfgt4rigI3gtrrgtrHgt4rgtq3gtrsg4LaG4Lag4La64Lax4La6IOC3g+C3gOC3kiDgtprgt5Lgtrvgt5Pgtrjgtqcv4Lac4LeQ4La94LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19yZW5hbWUiIG1zZ2lkPSI3NDk2NjMzOTU0MDgwNDcyNDE3Ij4i4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2huC2oOC2uuC2seC2uiDgtrHgt5Dgt4Dgtq0g4Lax4La44LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfcmVuYW1lIiBtc2dpZD0iMTc5NDc1NzU4ODQ3MjEyNzY3NSI+IuC2heC2t+C3iuKAjeC2uuC2seC3iuC2reC2uyDgtobgtqDgtrrgtrHgtrog4Lax4LeQ4LeA4LatIOC2seC2uOC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl92aWJyYXRlIiBtc2dpZD0iNzY5NjQyNzAyNjA1NzcwNTgzNCI+IuC2muC2uOC3iuC2tOC2seC2uiDgtrTgt4/gtr3gtrHgtrog4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdmlicmF0ZSIgbXNnaWQ9IjYyODQ5ODkyNDU5MDIzMDA5NDUiPiLgtprgtrjgt4rgtrTgtprgtrog4La04LeP4La94Lax4La64LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZmxhc2hsaWdodCIgbXNnaWQ9IjIxNTU5MjA4MTAxMjE5ODQyMTUiPiLgt4Pgt5Dgtqvgt5ngt4Xgt5Ig4LaG4La94Led4Laa4La6IOC2tOC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mbGFzaGxpZ2h0IiBtc2dpZD0iNjUyMjI4NDc5NDU2ODM2ODMxMCI+IuC3g+C3kOC2q+C3meC3heC3kuC2uiDgtrTgt4/gtr3gtrHgtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VVc2IiIG1zZ2lkPSIxMTEzNDUzNDMwNjQ1NDAyNzIzIj4iVVNCIOC2i+C2tOC3j+C2guC2nCDgt4PgtrPgt4Tgt48g4Laa4LeQ4La44LeQ4Lat4LeK4LatIOC3g+C3hCDgtoXgt4Dgt4Pgtrsg4Laa4LeF4La44Lax4LeP4Laa4La74Lar4La6IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZVVzYiIgbXNnaWQ9Ijc3NzYxNTU0MzAyMTgyMzk4MzMiPiJVU0Ig4LaL4La04LeP4LaC4LacIOC3g+C2s+C3hOC3jyDgtoXgtrfgt5Lgtrvgt5TgtqDgt5Ig4LeD4LeEIOC2heC3gOC3g+C2uyDgtprgt4XgtrjgtrHgt4/gtprgtrvgtqvgtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NNdHAiIG1zZ2lkPSI0OTUzNDY4Njc2Nzk1OTE3MDQyIj4iTVRQIOC2tOC3iuKAjeC2u+C3nOC2p+C3nOC2muC3neC2veC2uiDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtq3gt4rgtrjgtpog4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTXRwIiBtc2dpZD0iNjUzMjk2MTIwMDQ4Njc5MTU3MCI+Ik1UUCBVU0Ig4La04LeK4oCN4La74Lec4Lan4Led4Laa4Led4La94La6IOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2reC3iuC2uOC2miDgtprgt5Lgtrvgt5Pgtrjgtqcg4Laa4La74LeK4Lax4La9IE1UUCDgtrDgt4/gt4Dgtprgtrrgtqcg4La04LeK4oCN4La74LeA4Lea4LeBIOC3gOC3k+C2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjQxNDgyOTA4NjA0MDA2NTkxNDYiPiLgtq/gt5jgtqngt4/gtoLgtpwg4La04La74LeT4Laa4LeK4LeC4Lar4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2hhcmR3YXJlX3Rlc3QiIG1zZ2lkPSI2NTk3OTY0MTkxMjA4MDE2NjA1Ij4i4Lav4LeY4Lap4LeP4LaC4LacIOC2tOC2u+C3k+C2muC3iuC3guC3jyDgtprgt5Lgtrvgt5Pgtrjgt5og4LaF4La74La44LeU4LarIOC3g+C2s+C3hOC3jyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LeA4LeS4LeA4LeS4LawIOC2tOC2u+C3iuC2uuC2seC3iuC2rSDgtrTgt4/gtr3gtrHgtrog4Laa4LeS4La74LeT4La44LanIOC2ieC2qSDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYWxsUGhvbmUiIG1zZ2lkPSIzOTI1ODM2MzQ3NjgxODQ3OTU0Ij4i4Lav4LeU4La74Laa4Lau4LaxIOC2heC2guC2miDgt4Dgt5ngtq0g4LaN4Lai4LeU4LeA4La4IOC2heC2uOC2reC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbGxQaG9uZSIgbXNnaWQ9IjM3NDA3OTc1NzYxMTM3NjA4MjciPiLgtpTgtrbgtpzgt5og4La44LeQ4Lav4LeS4LeE4Lat4LeKIOC3gOC3k+C2uOC2muC3iiDgtrHgt5zgtrjgt5Dgtq3gt5Lgt4Ag4Lav4LeU4La74Laa4Lau4LaxIOC2heC2guC2miDgtofgtrjgtq3gt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC3hOC3kiDgtrTgt4rigI3gtrvgtq3gt5LgtpHgtr3gtrog4LeA4Lax4LeK4Lax4LeaIOC2heC2seC2tOC3muC2muC3iuC3guC3kuC2rSDgtoXgtrrgtprgt5Lgtrvgt5Pgtrjgt4og4LeE4LedIOC2h+C2uOC2reC3lOC2uOC3iiDgtofgtq3gt5Lgt4Dgt5Pgtrjgtrrgt5IuIOC2uOC3meC2uuC2seC3iiDgt4Tgtq/gt5Lgt4Pgt5Ig4LaF4LaC4LaaIOC3gOC2veC2pyDgtofgtrjgtq3gt5Tgtrjgt4og4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lax4Lec4Lav4LeZ4LaxIOC2tuC3gOC2pyDgt4Pgtqfgt4TgtrHgt4og4Laa4La74Lac4Lax4LeK4LaxLiDgtpTgtrbgtpzgt5og4LaF4Lax4LeU4Lav4LeQ4Lax4LeU4La44Laa4LeKIOC2seC3nOC2uOC3kOC2reC3kuC3gCDgtofgtrjgtq3gt5Tgtrjgt4og4Lac4LeQ4Lax4LeT4La44LeZ4Lax4LeKIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4LaU4La24Lac4LeaIOC2uOC3lOC2r+C2veC3iiDgtrHgt5Lgtprgtrvgt5Tgtqvgt5og4LeA4LeQ4La6IOC2muC2u+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbGxQcml2aWxlZ2VkIiBtc2dpZD0iNDE5ODM0OTIxMTEwODQ5Nzg3OSI+IuC2leC2seC3keC2uCDgtq/gt5Tgtrvgtprgtq7gtrEg4LaF4LaC4Laa4La64Laa4LanIOC2jeC2ouC3lOC3gOC2uCDgtoXgtrjgtq3gtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYWxsUHJpdmlsZWdlZCIgbXNnaWQ9IjE2ODkwMjQ5MDE1MDk5OTY4MTAiPiLgtpTgtrbgtpzgt5og4La44LeQ4Lav4LeS4LeE4Lat4LeK4LeA4LeT4La44Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgt4Tgtq/gt5Lgt4Pgt5Ig4LaF4LaC4LaaIOC2h+C2reC3lOC3heC2reC3iuC3gCDgtpXgtrHgt5Hgtrgg4Lav4LeU4La74Laa4Lau4LaxIOC2heC2guC2muC2uuC2muC2pyDgtofgtrjgtq3gt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3hOC2r+C3kuC3g+C3kiDgt4Pgt5rgt4Dgt48g4LeA4LeZ4LatIOC2heC2seC3gOC3geC3iuKAjeC2uiDgt4Pgt4Qg4Lax4LeT4Lat4LeS4La44La6IOC2seC3nOC3gOC2sSDgtofgtrjgtq3gt5Tgtrgg4La94LeQ4La24LeT4La44LanIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrgg4LeD4LeS4Lav4LeUIOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDg0MjU3Njk5NDE0NDYwNDgyMSI+IkNETUEg4Lan4LeQ4La24LeK4La94LanIOC2tOC3kuC3hOC3kuC2p+C3lOC2uCDgt4Pgt5jgtqLgt5Tgt4Ag4LaH4La74La54LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJmb3JtQ2RtYVByb3Zpc2lvbmluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU2MDQ4NDgwOTUzMTU0MjE0MjUiPiJDRE1BIOC2r+C3lOC2u+C2muC2ruC2sSDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgtrgg4LeD4LeY4Lai4LeU4LeAIOC2h+C2u+C2ueC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBtc2dpZD0iMTk5NDE5MzUzODgwMjMxNDE4NiI+IuC2uuC3meC2r+C3lOC2uOC2pyBDRE1BIOC2tOC3iuKAjeC2u+C2reC3kuC2tOC3j+C2r+C2sSDgtobgtrvgtrjgt4rgtrcg4Laa4LeS4La74LeT4La44LanIOC2ieC2qeC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtoXgtrHgt4Dgt4Hgt4rigI3gtrog4La94LeZ4LeDIENETUEg4La04LeK4oCN4La74Lat4LeS4La04LeP4Lav4LaxIOC2huC2u+C2uOC3iuC2tyDgtprgt4Ug4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbG9jYXRpb25VcGRhdGVzIiBtc2dpZD0iNzc4NTQwODI1MzM2NDMzNTc0MCI+IuC3g+C3iuC2ruC3j+C2sSDgtrrgt4/gt4Dgtq3gt4rgtprgt4/gtr3gt5PgtrEg4Lav4LeQ4Lax4LeU4La44LeK4Lav4LeT4La44LeKIOC2tOC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19sb2NhdGlvblVwZGF0ZXMiIG1zZ2lkPSIxMTIwNzQxNTU3ODkxNDM4ODc2Ij4i4LeD4LeK4Lau4LeP4Lax4LeT4La6IOC2uuC3j+C3gOC2reC3iuC2muC3j+C2veC3kuC2sSDgtq/gt5DgtrHgt5Tgtrjgt4rgtq/gt5Pgtrjgt4og4La74Lea4Lap4LeS4La64Led4LeA4LeZ4Lax4LeKIOC3g+C2tuC2vS/gtoXgtrbgtr0g4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeK4LeA4La9IOC2t+C3j+C3gOC3kuC2reC2uiDgt4PgtrPgt4Tgt48g4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI3ODU1MjU5NDYxMjY4NzM0OTE0Ij4i4La04LeS4La74LeS4Laa4LeK4LeD4LeU4La44LeKIOC2nOC3lOC2q+C3j+C2guC2nCDgt4Dgt5ngtq0g4La04LeK4oCN4La74LeA4Lea4LeB4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hlY2tpblByb3BlcnRpZXMiIG1zZ2lkPSI0MDI0NTI2OTY4NjMwMTk0MTI4Ij4i4La04LeS4La74LeS4Laa4LeK4LeD4LeU4La44LeKIOC3g+C3muC3gOC3j+C3gCDgtrjgtpzgt5LgtrHgt4og4LaL4Lat4LeK4LeB4LeK4oCN4La74Lea4Lar4LeSIOC2muC3hSDgtpzgt5Tgtqvgt4/gtoLgtpwg4LeA4LeZ4LatIOC2muC3kuC2uuC3gOC3k+C2uOC3ii/gtr3gt5Lgt4Dgt5Pgtrjgt4og4La04LeS4LeA4LeS4LeD4LeU4La4IOC3g+C2s+C3hOC3jyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr0g4La34LeP4LeA4LeS4Lat4La64LanIOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRHYWRnZXQiIG1zZ2lkPSI3NzY5MDUzMzkwMTU4NjM0NzEiPiLgt4Dgt5LgtqLgtqfgt4og4Lat4Led4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZEdhZGdldCIgbXNnaWQ9IjgyNjEzMjY5Mzg1OTkwNDkyOTAiPiLgtprgt5TgtrjgtrEg4LeA4LeS4Lai4Lan4La6IOC2muC3lOC2uOC2sSDgtrrgt5ngtq/gt5Tgtrjgt5ngtrHgt4og4La34LeP4LeA4LeS4Lat4LePIOC2muC2vSDgt4Tgt5Dgtprgt5Lgtq8g4La64Lax4LeK4LaxIOC2tOC2r+C3iuC2sOC2reC3kuC2uuC2pyDgtrTgt5Dgt4Dgt4Pgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4LaH4Lat4LeSIOC2uuC3meC2r+C3lOC2uOC2muC2pyDgtoXgtrHgt5ngtprgt4og4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2tOC3lOC2r+C3iuC2nOC2veC3kuC2miDgtq/gtq3gt4rgtq0g4LeA4La94LanIOC2tOC3iuKAjeC2u+C3gOC3muC3geC2uiDgtr3gtrbgt48g4Lav4LeS4La6IOC3hOC3kOC2mi4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr0g4La34LeP4LeA4LeS4Lat4La64LanIOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeVBob25lU3RhdGUiIG1zZ2lkPSI4NDIzOTIzNzc3NjU5MjkyMjI4Ij4i4Lav4LeU4La74Laa4Lau4Lax4La64LeaIOC2reC2reC3iuC3gOC2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5UGhvbmVTdGF0ZSIgbXNnaWQ9IjEwMjk4Nzc1MjkwMDc2ODY3MzIiPiLgtovgtrTgt4/gtoLgtpzgtrrgt5og4Lav4LeU4La74Laa4Lau4LaxIOC3gOC3kuC3geC3muC3guC3j+C2guC2nCDgtrTgt4/gtr3gtrHgtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4LaH4Lat4LeSIOC2uuC3meC2r+C3lOC2uOC2pyDgtpTgtrbgtqcg4Lax4LeS4LeA4Lea4Lav4Lax4La64LeZ4Lax4LeKIOC2reC3nOC2u+C3gCDgtqLgt4/gtr0g4La44LeP4La74LeUIOC2muC3kuC2u+C3k+C2uCwg4Lav4LeU4La74Laa4Lau4LaxIOC2u+C3muC2qeC3kuC2uuC3neC3gCDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4LeD4LeEIOC2heC2muC3iuKAjeC2u+C3kuC2uiDgtprgt5Lgtrvgt5Pgtrgg4Laa4LeFIOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRQaG9uZVN0YXRlIiBtc2dpZD0iOTE3ODIyODUyNDUwNzYxMDQ4NiI+IuC2r+C3lOC2u+C2muC2ruC2seC2uuC3miDgtq3gtq3gt4rgt4Dgtrog4LeD4LeEIOC2heC2seC2seC3iuKAjeC2uuC2reC3j+C3gOC2uiDgtprgt5Lgtrrgt4Dgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkUGhvbmVTdGF0ZSIgbXNnaWQ9IjE2MzkyMTI3NzE4MjYxMjU1MjgiPiLgtovgtrTgt4/gtoLgtpzgtrrgt5og4Lav4LeU4La74Laa4Lau4LaxIOC3gOC3kuC3geC3muC3guC3j+C2guC2nCDgt4Dgt5ngtq0g4La04LeS4LeA4LeS4LeD4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtofgtrjgtq3gt5Tgtrgg4LeD4Laa4LeK4oCN4La74LeS4La6IOC3gOC3lOC3gOC2reC3iiDgt4Pgt4Qg4LaH4La44Lat4LeU4La44Laa4LeS4Lax4LeKIOC2r+C3lOC2u+C3g+C3iuC2riDgtoXgtoLgtprgtrog4LeD4La44LeK4La24Lax4LeK4LawIOC3gOC3lOC3gOC2reC3iiDgtq/gt5Tgtrvgtprgtq7gtrEg4LaF4LaC4Laa4La6IOC3g+C3hCDgtovgtrTgt4/gtoLgtpwgSUQg4LeE4Laz4LeU4Lax4LePIOC2nOC3kOC2seC3k+C2uOC2pyDgtrjgt5ngtrgg4LaF4LeA4LeD4La74La6IOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd2FrZUxvY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1MzE3MzE0MzUwMTE0OTUwMTUiPiLgtqfgt5Dgtrbgt4rgtr3gtqfgtrog4Lax4LeS4Lax4LeK4Lav4LeZ4Lax4LeKIOC3gOC3kOC3heC2muC3iuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd2FrZUxvY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NzM0ODAxODc5NDE0OTYxMzAiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrog4Lax4LeS4Lax4LeK4Lav4LanIOC2uuC3j+C2uOC3meC2seC3iiDgt4Dgt4XgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193YWtlTG9jayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzMxMTMxOTgyNDQwMDQ0Nzg2OCI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uiDgtrHgt5LgtrHgt4rgtq/gtqcg4La64LeP4La44LeZ4Lax4LeKIOC3gOC3kOC2veC3kOC2muC3iuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193YWtlTG9jayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg1NTkxMDA2NzczNzI5Mjg3NTQiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrog4Lax4LeS4Lax4LeK4Lav4LanIOC2uuC3j+C2uOC3meC2seC3iiDgt4Dgt5Dgtr3gt5Dgtprgt4rgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9kZXZpY2VQb3dlciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjc4NzAzNDcyMjYxNjM1MDQxNyI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uiDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4LeE4LedIOC2heC2muC3iuKAjeC2u+C3kuC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RldmljZVBvd2VyIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDkyODYyMjQ3MDk4MDk0MzIwNiI+IuC2r+C3lOC2u+C2muC2ruC2seC2uiDgtrbgtr0g4Lac4LeQ4Lax4LeK4LeA4LeT4La4IOC3hOC3nSDgt4Dgt5Dgt4Pgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZXZpY2VQb3dlciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY4OTg2Mjg3ODk4NDYzMTgzMSI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uiDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4LeE4LedIOC2heC2muC3iuKAjeC2u+C3kuC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2MDM3MDU3MzQ4NDYzMTMxMDMyIj4i4Lav4LeU4La74Laa4Lau4Lax4La6IOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgt4Pgt4Qg4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZhY3RvcnlUZXN0IiBtc2dpZD0iMzcxNTIyNTQ5MjY5NjQxNjE4NyI+IuC2muC2u+C3iuC2uOC3j+C2seC3iuC2reC3geC3j+C2veC3jyDgtrTgtrvgt5Pgtprgt4rgt4Lgtqsg4LaG4Laa4LeP4La74La6IOC2reC3lOC3hSDgtrDgt4/gt4DgtrHgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZmFjdG9yeVRlc3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjM5NTIwNTkzMTgzNTk2NTMwOTEiPiLgtqfgt5Dgtrbgt4rgtr3gtqfgtrrgt5og4Lav4LeY4Lap4LeP4LaC4LacIOC3gOC3meC2rSDgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4La04LeS4LeA4LeS4LeD4LeU4La4IOC3g+C2s+C3hOC3jyDgtoXgt4Dgt4Pgtrsg4Lav4LeT4La44LeZ4Lax4LeKIOC2tOC3hOC3hSDgtrjgtqfgt4rgtqfgtrjgt5og4Lax4LeS4La04LeQ4LeA4LeU4La44LeK4Laa4La74LeUIOC2tOC2u+C3k+C2muC3iuC3guC2q+C2uuC2muC3iiDgtr3gt5ngt4Mg4Law4LeP4LeA4Lax4La6IOC2muC2u+C2seC3iuC2sS4g4Lax4LeS4La04LeQ4LeA4LeU4La44LeK4Laa4La74LeUIOC2tOC2u+C3k+C2muC3iuC3guC2qyDgtobgtprgt4/gtrvgtrrgt5ngtrHgt4og4Lan4LeQ4La24LeK4La94Lan4La64LeaIOC2sOC3j+C3gOC2seC2uiDgt4DgtrEg4LeA4LeS4LanIOC2tOC2uOC2q+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mYWN0b3J5VGVzdCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgxMzY2NDQ5OTAzMTkyNDQ4MDIiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrrgt5og4Lav4LeY4Lap4LeP4LaC4LacIOC3gOC3meC2rSDgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4La04LeS4LeA4LeS4LeD4LeU4La4IOC3g+C2s+C3hOC3jyDgtoXgt4Dgt4Pgtrsg4Lav4LeT4La44LeZ4Lax4LeKIOC2tOC3hOC3hSDgtrjgtqfgt4rgtqfgtrjgt5og4Lax4LeS4La04LeQ4LeA4LeU4La44LeK4Laa4La74LeUIOC2tOC2u+C3k+C2muC3iuC3guC2q+C2uuC2muC3iiDgtr3gt5ngt4Mg4Law4LeP4LeA4Lax4La6IOC2muC2u+C2seC3iuC2sS4g4Lax4LeS4La04LeQ4LeA4LeU4La44LeK4Laa4La74LeUIOC2tOC2u+C3k+C2muC3iuC3guC2qyDgtobgtprgt4/gtrvgtrrgt5ngtrHgt4og4Lav4LeU4La74Laa4Lau4Lax4La64LeaIOC2sOC3j+C3gOC2seC2uiDgt4DgtrEg4LeA4LeS4LanIOC2tOC2uOC2q+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFdhbGxwYXBlciIgbXNnaWQ9IjY2MjcxOTIzMzMzNzM0NjUxNDMiPiLgtrbgt5Lgtq3gt5TgtrTgtq0g4LeD4LeQ4Laa4LeD4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0V2FsbHBhcGVyIiBtc2dpZD0iNzM3MzQ0NzkyMDk3NzYyNDc0NSI+IuC2tOC2r+C3iuC2sOC2reC3kiDgtrbgt5Lgtq3gt5TgtrTgtq0g4LeD4LeQ4Laa4LeD4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0V2FsbHBhcGVySGludHMiIG1zZ2lkPSIzMjc4NjA4MTY1OTc3NzM2NTM4Ij4i4LaU4La24Lac4LeaIOC2tuC3kuC2reC3lOC2tOC2reC3miDgtrTgt4rigI3gtrvgtrjgt4/gtqvgtrog4LeD4LeQ4Laa4LeD4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0V2FsbHBhcGVySGludHMiIG1zZ2lkPSI4MjM1Nzg0Mzg0MjIzNzMwMDkxIj4i4La04Lav4LeK4Law4Lat4LeSIOC2tuC3kuC2reC3lOC2tOC2reC3miDgtrTgt4rigI3gtrvgtrjgt4/gtqsg4LaJ4Laf4LeSIOC3g+C2muC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYXN0ZXJDbGVhciIgbXNnaWQ9IjIzMTU3NTA0MjMxMzk2OTczOTciPiLgtprgtrvgt4rgtrjgt4/gtrHgt4rgtq3gt4Hgt4/gtr3gt48g4LeD4LeU4La04LeU4La74LeU4Lav4LeK4Lav4LanIOC2tOC2r+C3iuC2sOC2reC3kuC2uiDgtrHgt5Dgt4Dgtq0g4LeD4Laa4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hc3RlckNsZWFyIiBtc2dpZD0iMzY2NTM4MDQ5MjYzMzkxMDIyNiI+IuC3g+C3kuC2uuC2veC3lCDgtq/gtq3gt4rgtq0g4La44LeQ4Laa4LeT4La44LeZ4Lax4LeKLCDgt4Dgt5LgtrHgt4rigI3gtrrgt4/gt4Mg4Laa4LeS4La74LeT4La44LeZ4Lax4LeKIOC3g+C3hCDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4LeK4Lau4LeP4La04Lax4La64LeZ4Lax4LeKIOC2keC3hOC3kiDgtprgtrvgt4rgtrjgt4/gtrHgt4rgtq0g4LeB4LeP4La94LePIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4Dgt5ngtq0g4La04Lav4LeK4Law4Lat4LeS4La6IOC2seC3kOC3gOC2rSDgt4Pgt5Dgtprgt4Pgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRUaW1lIiBtc2dpZD0iMjAyMTYxNDgyOTU5MTc3NTY0NiI+IuC3gOC3muC2veC3j+C3gCDgt4Pgt5Dgtprgt4Pgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxODk2MzQxNDM4MTUxMTUyODgxIj4i4Lan4LeQ4La24LeK4La94LanIOC2lOC2u+C2veC3neC3g+C3lOC3gOC3miDgt4Dgt5rgtr3gt4/gt4Ag4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTg1NTcwMjczMDczODAyMCI+IuC2r+C3lOC2u+C2muC2ruC2sSDgtpTgtrvgtr3gt53gt4Pgt5Tgt4Dgt5og4LeA4Lea4La94LeP4LeAIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44Laa4LanIOC2ieC2qSDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRUaW1lWm9uZSIgbXNnaWQ9IjI5NDUwNzk4MDEwMTMwNzczNDAiPiLgt4Dgt5rgtr3gt48g4Laa4La94LeP4La04La6IOC3g+C3kOC2muC3g+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNjc2OTgzNzEyMzE1ODI3NjQ1Ij4i4Lan4LeQ4La24LeK4La94Lan4La64LeaIOC2muC3j+C2vSDgtprgtr3gt4/gtrTgtrog4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRUaW1lWm9uZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ0OTk5NDM0ODg0MzY2MzMzOTgiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrrgt5og4LeA4Lea4La94LePIOC2muC2veC3j+C2tOC2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2i+C2tOC3j+C2guC2nOC2uuC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjb3VudE1hbmFnZXJTZXJ2aWNlIiBtc2dpZD0iNDgyOTI2MjM0OTY5MTM4Njk4NiI+IkFjY291bnRNYW5hZ2VyU2VydmljZSDgtr3gt5ngt4Mg4La04LeZ4Lax4LeTIOC3g+C3kuC2p+C3kuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY291bnRNYW5hZ2VyU2VydmljZSIgbXNnaWQ9IjE5NDg0NTU1NTIzMzM2MTU5NTQiPiJBY2NvdW50QXV0aGVudGljYXRvcnMg4LeA4LeZ4LatIOC2h+C2uOC2reC3lOC2uOC3iiDgtpzgt5DgtrHgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRBY2NvdW50cyIgbXNnaWQ9IjEwODY3OTU0Njc3NjAxMjIxMTQiPiLgtovgtrTgt4/gtoLgtpzgtrrgt5og4LaH4Lat4LeSIOC2nOC3kuC2q+C3lOC2uOC3iiDgt4Pgt5zgtrrgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRBY2NvdW50cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjc0MTQ5NjUzNDc2OTY2MDAyNyI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uiDgt4Dgt5Lgt4Pgt5LgtrHgt4og4Lav4Lax4LeK4Lax4LePIOC2nOC3kuC2q+C3lOC2uOC3iiDgtr3gt5Dgtrrgt5Lgt4Pgt4rgtq3gt5Tgt4Dgtprgt4og4La94La24LeP4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtpTgtrYg4LeD4LeK4Lau4LeP4La04Lax4La6IOC2muC3nOC2pyDgtofgtq3gt5Ig4La64LeZ4Lav4LeU4La44LeKIOC3gOC3kuC3g+C3kuC2seC3iiDgt4Pgt4/gtq/gt48g4LaH4Lat4LeSIOC2nOC3kuC2q+C3lOC2uOC3iiDgtrjgt5Pgtqcg4LaH4Lat4LeU4LeF4Lat4LeKIOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRBY2NvdW50cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0NDgzMTY4MjI0NTE4MDczODIiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrog4LeA4LeS4LeD4LeS4Lax4LeKIOC2r+C2seC3iuC2seC3jyDgtpzgt5Lgtqvgt5Tgtrjgt4og4La94LeQ4La64LeS4LeD4LeK4Lat4LeU4LeA4Laa4LeKIOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaU4La2IOC3g+C3iuC2ruC3j+C2tOC2seC2uiDgtprgt5zgtqcg4LaH4Lat4LeSIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5Lgt4Pgt5LgtrHgt4og4LeD4LeP4Lav4LePIOC2h+C2reC3kiDgtpzgt5Lgtqvgt5Tgtrjgt4og4La44LeT4LanIOC2h+C2reC3lOC3heC2reC3iiDgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hdXRoZW50aWNhdGVBY2NvdW50cyIgbXNnaWQ9IjUyNjU5MDg0ODExNzI3MzY5MzMiPiLgtpzgt5Lgtqvgt5Tgtrjgt4og4LeD4LeP4Lav4Lax4LeK4LaxIOC3g+C3hCDgtrjgt5TgtrvgtrTgtq8g4LeD4Laa4LeD4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXV0aGVudGljYXRlQWNjb3VudHMiIG1zZ2lkPSI1NDcyMTI0Mjk2OTA4OTc3MjYwIj4i4Lac4LeS4Lar4LeU4La44LeKIOC3g+C3kOC2r+C3k+C2uOC2pyDgt4Pgt4Qg4La74LeE4LeD4LeKIOC2tOC2ryDgtr3gtrbgt4/gtpzgt5DgtrHgt5Pgtrgg4LeD4LeEIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgtprgt5Lgtrvgt5Pgtrgg4LaH4Lat4LeU4LeF4Lat4LeK4LeAIEFjY291bnRNYW5hZ2VyIOC2nOC3miDgtpzgt5Lgtqvgt5Tgtrjgt4og4LeD4Lat4LeK4oCN4La64LeP4La04LaxIOC3hOC3kOC2muC3kuC2uuC3j+C3gOC2seC3iiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2muC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQWNjb3VudHMiIG1zZ2lkPSI0OTgzMTI2MzA0NzU3MTc3MzA1Ij4i4Lac4LeS4Lar4LeU4La44LeKIOC2keC2muC2reC3lCDgtprgtrvgtrHgt4rgtrEg4LeE4LedIOC2ieC3gOC2reC3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBY2NvdW50cyIgbXNnaWQ9Ijg2OTgyOTU2MjU0ODgyOTI1MDYiPiLgtpzgt5Lgtqvgt5Tgtrjgt4og4LaR4Laa4Lat4LeUIOC2muC3kuC2u+C3k+C2uCwg4LeD4LeEIOC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5Pgtrgg4LeD4LeEIOC2lOC3gOC3lOC2seC3iuC2nOC3miDgtrjgt5TgtrvgtrTgtq8g4La44LeQ4Laa4LeT4La4IOC2huC2r+C3kyDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4Dgtr3gt5Ig4LeD4LeS4Lav4LeUIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VzZUNyZWRlbnRpYWxzIiBtc2dpZD0iMjM1NDgxMzk2MTYzODc3NjQyIj4i4LaL4La04LeP4LaC4Lac4La64LeaIOC2h+C2reC3kiDgtpzgt5Lgtqvgt5Tgtrjgt4og4La34LeP4LeA4LeS4Lat4LePIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZUNyZWRlbnRpYWxzIiBtc2dpZD0iNzk4NDIyNzE0NzQwMzM0NjQyMiI+IuC3g+C2reC3iuKAjeC2uuC3j+C2tOC2sSDgtqfgt53gtprgtrEg4LaJ4La94LeK4La94LeT4La4IOC3g+C2s+C3hOC3jyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjQ5NTEwMjc5NjQzNDg5NzQ3NzMiPiLgtqLgt4/gtr0g4LeD4La44LeK4La24Lax4LeK4Law4Lat4LeP4LeA4La64Lax4LeKIOC2tuC3kOC2veC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05ldHdvcmtTdGF0ZSIgbXNnaWQ9IjgzMTg5NjQ0MjQ2NzU5NjA5NzUiPiLgtprgt5TgtrjgtrEg4Lai4LeP4La9IOC2tOC3gOC2reC3kuC2seC3iuC2seC3miDgtq8g4LeD4LeEIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC3kuC2rSDgtq8g4LaG4Lav4LeTIOC2ouC3j+C2vSDgt4PgtrbgtrPgtq3gt48g4Lac4LeQ4LaxIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtrbgt5Dgtr3gt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jcmVhdGVOZXR3b3JrU29ja2V0cyIgbXNnaWQ9IjgwMTg3NTgxMzY0MDQzMjM2NTgiPiLgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4Lai4LeP4La9IOC2tOC3iuKAjeC2u+C3gOC3muC3geC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iMzQwMzA2MjE4Nzc3OTcyNDE4NSI+IuC2i+C2tOC2muC2u+C2q+C2uuC2pyDgtqLgt4/gtr0g4Laa4LeZ4LeA4Lax4LeS4La64Lax4LeKIOC3g+C3kOC2r+C3k+C2uOC2pyDgt4Pgt4Qg4Lai4LeP4La9IOC2tOC3iuKAjeC2u+C3nOC2p+C3neC2muC3neC2vSDgtoXgtrfgt5Lgtrvgt5TgtqDgt5Ig4La34LeP4LeA4LeS4Lat4LePIOC2muC3kuC2u+C3k+C2uOC2pyDgtovgtrTgtprgtrvgtqvgtrrgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeK4Lat4La74LeK4Lai4LeP4La94La64LanIOC2r+C2reC3iuC2rSDgtrrgt5Dgt4Dgt5Pgtrjgtqcg4LeA4LeS4Law4LeS4La64Lax4LeKIOC2tuC3iuKAjeC2u+C3gOC3iuC3g+C2u+C2uiDgt4Pgt4Qg4LaF4Lax4LeZ4Laa4LeU4Lat4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4PgtrTgtrrgtrrgt5IsIOC2keC2seC3kuC3g+C3jyDgtrjgt5ngtrgg4LaF4LeA4LeD4La74La6IOC2r+C2reC3iuC2rSDgtoXgtrHgt4rgtq3gtrvgt4rgtqLgt4/gtr3gtrrgtqcg4La64LeQ4LeA4LeT4La44LanIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUFwblNldHRpbmdzIiBtc2dpZD0iNTA1NjYwMTU5Njc1NzUxODk2Ij4i4Lai4LeP4La94La64LeaIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4Pgt4Qg4Lac4La44Lax4LeP4Lac4La44LaxIOC3gOC3meC2seC3g+C3iiDgtprgtrvgtrHgt4rgtrEv4LaF4La94LeK4La94LePIOC2nOC3kOC2seC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MzMzNzk4ODg2NDEyNzE0MTkzIj4i4LaV4Lax4LeR4La4IEFQTiDgtpHgtprgtpog4Lax4LeS4La64LeU4Lat4LeU4LeAIOC3g+C3hCDgtq3gt5zgtqcg4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uCDgt4Dgt5DgtrHgt5Ig4Lai4LeP4La9IOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC3g+C3hCDgt4Pgt5Lgtrrgtr3gt5Tgtrgg4Lai4LeP4La9IOC2heC2reC3lOC2u+C3lCDgtofgtrvgt5Pgtrjgtqcg4LeD4LeEIOC3g+C3neC2r+C3kuC3g+C3kiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2h+C2reC3kOC2uOC3iuC3gOC3kuC2pyDgtpTgtrbgtpzgt5og4LaF4Lax4LeU4Lav4LeQ4Lax4LeU4La44Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgtoXgtrHgt5Lgt4Lgt4rgtqcg4LaL4La04LeP4LaC4LacIOC2ouC3j+C2vSDgtrTgt5Dgtprgt5Dgtqfgt4rgtqfgt5Qg4LaF4Law4LeT4Laa4LeK4LeC4Lar4La6LOC2huC2tOC3g+C3lCDgtq/gt5Lgt4Hgt4/gtpzgtq0g4Laa4LeS4La74LeT4La4IOC3hOC3nSDgt4Dgt5ngtrHgt4Pgt4rgtprgt5Lgtrvgt5Pgtrgg4LeD4LeS4Lav4LeUIOC2muC3kuC2u+C3k+C2uOC2pyDgtongtqkg4Lat4LeS4La24LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlTmV0d29ya1N0YXRlIiBtc2dpZD0iOTU4ODg0MjkxNDU0MzI3MzA5Ij4i4Lai4LeP4La9IOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3j+C3gCDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlTmV0d29ya1N0YXRlIiBtc2dpZD0iNjc4OTEyMzkxMjQ3NjQxNjIxNCI+IuC2ouC3j+C2vSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt4/gt4Dgtrrgt5og4Lat4Lat4LeK4LeA4La6IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VUZXRoZXJTdGF0ZSIgbXNnaWQ9IjU5NTI1ODQ5NjQzNzMwMTc5NjAiPiLgtqfgt5ngtq/gtrvgt4og4Laa4La74LaxIOC2veC2ryDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48g4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVRldGhlclN0YXRlIiBtc2dpZD0iMTUyNDQ0MTM0NDQxMjMxOTc4MCI+IuC2p+C3meC2r+C2u+C3iiDgtprgt4Ug4Lai4LeP4La9IOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3j+C3gOC2uuC3miDgtq3gtq3gt4rgt4Dgtrog4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZUJhY2tncm91bmREYXRhU2V0dGluZyIgbXNnaWQ9IjE0MDA2NjYwMTI2NzE2NDg3NDEiPiLgtrTgt4Pgt5Tgtrbgt5Lgtrjgt4og4Lav4Lat4LeK4LatIOC2t+C3j+C3gOC3kuC2rSDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUJhY2tncm91bmREYXRhU2V0dGluZyIgbXNnaWQ9IjUzNDc3Mjk1Nzg0Njg3NDQzNzkiPiLgtrTgt4Pgt5Tgtrbgt5Lgtrjgt4og4Lav4Lat4LeK4LatIOC2t+C3j+C3gOC3kuC2reC3jyDgt4Pgt5Dgtprgt4Pgt5Pgtrgg4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1dpZmlTdGF0ZSIgbXNnaWQ9IjUyMDIwMTI5NDkyNDcwNDAwMTEiPiJXaS1GaSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt4/gt4DgtrHgt4og4La24LeQ4La94LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzV2lmaVN0YXRlIiBtc2dpZD0iNTAwMjc5ODA3NzM4NzgwMzcyNiI+IldpLUZpIOC3g+C2tuC2vSDgtrbgt4Ag4LeD4LeEIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC3kuC2rSBXaS1GaSDgtovgtrTgt4/gtoLgtpwg4LeA4La9IOC2seC2uOC3iiDgtobgtq/gt5MgV2ktRmkg4Lai4LeP4La94Laa4La74Lar4La64LeaIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtrbgt5Dgtr3gt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI2NTUwNjQxMTg4NzQ5MTI4MDM1Ij4iV2ktRmkg4LeA4La94LanIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgt4Dgt5Lgtrgg4LeD4LeEIOC3gOC3kuC3g+C2seC3iuC2sOC3kiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpU3RhdGUiIG1zZ2lkPSI3MTM3OTUwMjk3Mzg2MTI3NTMzIj4iV2ktRmkg4La04LeK4oCN4La74LeA4Lea4LeBIOC3g+C3iuC2ruC3j+C2seC2uuC2seC3iiDgt4Dgt5ngtq0g4LeD4La44LeK4La24Lax4LeK4LawIOC3gOC3k+C2uOC2pyDgt4Pgt4Qg4LeA4LeS4LeD4Lax4LeK4Law4LeSIOC3gOC3k+C2uOC2pyDgt4Pgt4QsIFdpLUZpIOC2ouC3j+C2vSDgt4PgtrPgt4Tgt48g4LaL4La04LeP4LaC4Lac4La64LeaIOC3gOC3kuC2seC3iuKAjeC2uuC3j+C3g+C2uuC2pyDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBtc2dpZD0iMTM2ODI1Mzg3MTQ4MzI1NDc4NCI+IldpLUZpIOC2tuC3hOC3lOC3gOC3kuC2muC3j+C3geC2sSDgtrTgt5Lgt4Xgt5Lgtpzgt5DgtrHgt5Pgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNzk2OTc3NDAyMTI1NjMzNjU0OCI+IuC2lOC2tuC2nOC3miDgtqfgt5Dgtrbgt4rgtr3gtqfgtrrgtqcg4La04La44Lar4Laa4LeKIOC2seC3nOC3gCBXaS1GaSDgtqLgt4/gtr3gtrrgt5og4LaH4Lat4LeSIOC3g+C3kuC2uuC2veC3lOC2uCDgtovgtrTgt4/gtoLgtpzgt4Dgtr3gtqcg4La64LeQ4LeA4LeWIOC2tOC3kOC2muC3kOC2p+C3iuC2p+C3lCDgtrbgt4Tgt5Qg4LeA4LeS4Laa4LeP4LeBIOC2veC3kuC2tOC3kuC2sSDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4La94La24LeP4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiBub24tbXVsdGljYXN0IOC2huC2muC3j+C2u+C2uuC2pyDgt4Dgtqngt48g4LeA4LeQ4Lap4LeSIOC2tuC2veC2uuC2muC3iiDgtrjgt5ngt4Tgt5Lgtq/gt5Mg4La34LeP4LeA4LeS4Lat4LePIOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2ODUxOTQ5NzA2MDI1MzQ5OTI2Ij4i4LaU4La24Lac4LeaIOC2r+C3lOC2u+C2muC2ruC2seC2uuC2pyDgtrTgtrjgtqvgtprgt4og4Lax4Lec4LeAIFdpLUZpIOC2ouC3j+C2veC2uuC3miDgtofgtq3gt5Ig4LeD4LeS4La64La94LeU4La4IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtrrgt5Dgt4Dgt5Yg4La04LeQ4Laa4LeQ4Lan4LeK4Lan4LeUIOC2tuC3hOC3lOC3gOC3j+C3hOC2miDgtr3gt5LgtrTgt5LgtrEg4La34LeP4LeA4LeS4Lat4La64LeZ4Lax4LeKIOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2veC3kOC2tuC3mi4g4La24LeE4LeU4LeA4LeP4LeE4LaaIOC2seC3kOC2reC3kiDgtobgtprgt4/gtrvgtrrgtqcg4LeA4Lap4LePIOC3gOC3kOC2qeC3kiDgtrbgtr3gtrrgtprgt4og4La44LeZ4LeE4LeS4Lav4LeTIOC2t+C3j+C3gOC3kuC2reC3jyDgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGhBZG1pbiIgbXNnaWQ9IjYwMDY5NjczNzM5MzU5MjY2NTkiPiLgtrbgt4rgtr3gt5bgtqfgt5bgtq3gt4og4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC2tOC3iuKAjeC2u+C3gOC3muC3geC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aEFkbWluIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2OTIxMTc3NDcxNzQ4ODgyMTM3Ij4i4LeD4LeK4Lau4LeP4Lax4LeT4La6IOC2tuC3iuC2veC3luC2p+C3luC2reC3iiDgtqfgt5Dgtrbgt4rgtr3gtqfgt4rgtrrgtprgt4og4LeD4LeQ4Laa4LeD4LeT4La44LanIOC3g+C3hCDgt4Dgt5LgtrHgt4rigI3gtrrgt4/gt4Mg4Laa4LeS4La74LeT4La44LanIOC3g+C3hCDgtq/gt5Tgtrvgt4Pgt4rgtq4g4LaL4La04LeP4LaC4LacIOC3g+C2uOC2nCDgtrrgt5Tgtpzgt4Ug4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aEFkbWluIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODkzMTY4MjE1OTMzMTU0MjEzNyI+IuC2r+C3lOC2u+C2muC2ruC2seC2uuC3miDgtrTgt5ngtq/gt5ngt4Pgt5Ig4La24LeK4La94LeW4Lan4LeW4Lat4LeKIOC3gOC3kuC2seC3iuKAjeC2uuC3j+C3gyDgtprgt5Lgtrvgt5PgtrjgtqcsIOC3g+C3hCDgtq/gt5Tgtrvgt4Pgt4rgtq4g4LaL4La04LeP4LaC4LacIOC2nOC3gOC3muC3guC2q+C2uuC2pyDgt4Pgt4Qg4La64LeU4Lac4La9IOC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc1dpbWF4U3RhdGUiIG1zZ2lkPSI0MTk1OTA3MDEwNjEwMjA1NzAzIj4iV2lNQVgg4LeA4LeZ4Lat4LanIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgtrvgtrHgt4rgtrEg4LeE4LedIOC3gOC3kuC3g+C2seC3iuC2sOC3kiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaW1heFN0YXRlIiBtc2dpZD0iNjM2MDEwMjg3NzI2MTk3ODg4NyI+IldpTUFYIOC3g+C2tuC2vSDgtrbgt4Ag4LeD4LeEIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC3kuC2rSDgtpXgtrHgt5HgtrggV2lNQVgg4Lai4LeP4La94La64LaaIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtrHgt5Lgt4Hgt4rgtqDgtrog4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlV2ltYXhTdGF0ZSIgbXNnaWQ9IjI0MDUwNDIyNjcxMzE0OTY1NzkiPiJXaU1BWCDgtq3gtq3gt4rgt4Dgtrog4LeA4LeZ4Lax4LeD4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMxNTY0NTY1MDQwODQyMDE4MDUiPiLgtqfgt5Dgtrbgt4rgtr3gtqfgtrogV2lNQVgg4Lai4LeP4La9IOC3gOC3meC2rSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4Laa4LeS4La74LeT4La44LanIOC3g+C3hCDgt4Dgt5Lgt4PgtrHgt4rgtrDgt5Ig4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpbWF4U3RhdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2OTcwMjUwNDMwMDQ5MjM3OTgiPiJXaU1BWCDgtqLgt4/gtr3gtrrgtrHgt4rgtqcg4Lav4LeU4La74Laa4Lau4Lax4La6IOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeEIOC3gOC3kuC3g+C2seC3iuC2sOC3kiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ibHVldG9vdGgiIG1zZ2lkPSI2MTI3NzY5MzM2MzM5Mjc2ODI4Ij4i4La24LeK4La94LeW4Lan4LeW4Lat4LeKIOC2i+C2tOC3j+C2guC2nCDgt4Pgtrjgtp8g4La64LeU4Lac4La9IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQ4MDcyMjE4MTg1MjQzODYyOCI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgtrbgt4rgtr3gt5bgtqfgt5bgtq3gt4og4LeA4LeS4Lax4LeK4oCN4La64LeP4LeD4La6IOC2tuC3kOC2veC3kuC2uOC2pywg4LeD4LeQ4Laa4LeD4LeT4La44LanIOC3g+C3hCDgtrrgt5Tgtpzgtr0g4Laa4LeFIOC2i+C2tOC3j+C2guC2nCDgt4Pgtrjgtp8g4LeD4La44LeK4La24Lax4LeK4Law4Lat4LeP4LeA4Lax4LeKIOC2tOC3kuC3heC3kuC2nOC3kOC2seC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19ibHVldG9vdGgiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzMjA3MTA2MzI0NDUyMzEyNzM5Ij4i4Lav4LeU4La74Laa4Lau4Lax4La64LeaIOC2tuC3iuC2veC3luC2p+C3luC2reC3iiDgt4Dgt5LgtrHgt4rigI3gtrrgt4/gt4Pgtrog4Lav4LeQ4Laa4LeT4La44LanLCDgtrrgt5Tgtpzgtr0g4LaL4La04LeP4LaC4LacIOC3g+C2uOC2nyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt4/gt4DgtrHgt4og4LeD4LeQ4Laa4LeD4LeT4La44LanIOC3g+C3hCDgtrfgt4/gtrvgtpzgt5DgtrHgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9uZmMiIG1zZ2lkPSI0NDIzMzUxMjc0NzU3ODc2OTUzIj4i4LaG4LeD4Lax4LeK4LaxIOC2muC3iuC3guC3muC2reC3iuKAjeC2uyDgt4PgtrHgt4rgtrHgt5Lgt4Dgt5rgtq/gtrHgtrog4La04LeP4La94Lax4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX25mYyIgbXNnaWQ9IjcxMjA2MTE4MTk0MDE3ODk5MDciPiLgtobgt4PgtrHgt4rgtrEg4Laa4LeK4LeC4Lea4Lat4LeK4oCN4La7IOC3g+C2seC3iuC2seC3kuC3gOC3muC2r+C2sSAoTkZDKSDgtqfgt5Dgtpzgt4osIOC2tOC2reC3iiwg4LeD4LeEIOC2muC3kuC2uuC3gOC2seC3iuC2seC2seC3iiDgt4Pgtrjgtp8g4LeD4Lax4LeK4Lax4LeS4LeA4Lea4Lav4Lax4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2Rpc2FibGVLZXlndWFyZCIgbXNnaWQ9IjM1OTg0OTYzMDE0ODY0MzkyNTgiPiLgtpTgtrbgtpzgt5og4Lat4LeS4La74La64LeaIOC2heC2nOC3lOC2vSDgtoXgtrbgtr0g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGlzYWJsZUtleWd1YXJkIiBtc2dpZD0iNjAzNDIwMzA2NTA3NzEyMjk5MiI+IuC2uuC2reC3lOC2u+C3lCDgtoXgtpzgt5Tgtr0g4LeD4LeEIOC2leC2seC3keC2uCDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgt5Lgtq0g4La44LeU4La74La04LavIOC2huC2u+C2muC3iuC3guC3j+C3gOC2muC3iiDgtoXgtrbgtr0g4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngt4Tgt5Ig4LaL4Lav4LeP4LeE4La74Lar4La64Laa4LeKIOC3gOC2seC3iuC2seC3miDgtrTgt5Dgtrjgt5Lgtqvgt5ngtrEg4LaH4La44Lat4LeU4La44Laa4LeKIOC2veC3kOC2tuC3meC2r+C3iuC2r+C3kywg4Lav4LeU4La74Laa4Lau4Lax4La6IOC2heC2muC3iuKAjeC2u+C3kuC2uiDgt4DgtrEg4LaF4Lat4La7IOC2h+C2uOC2reC3lOC2uCDgtoXgt4Dgt4Pgt4/gtrEg4LeA4LaxIOC3gOC3kuC2pyDgtrrgtq3gt5Tgtrvgt5Qg4LaF4Lac4LeU4La9IOC2seC3kOC3gOC2rSDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFN5bmNTZXR0aW5ncyIgbXNnaWQ9IjYyMDE4MTAwMDgyMzA1MDMwNTIiPiLgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC2muC3kuC2uuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTeW5jU2V0dGluZ3MiIG1zZ2lkPSIyNzA2NzQ1Njc0NTY5Njc4NjQ0Ij4i4Lac4LeS4Lar4LeU4La4IOC3g+C2s+C3hOC3jyDgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaL4Lav4LeP4LeE4La74Lar4La64Laa4LeKIOC2veC3meC3gywg4Lac4LeS4Lar4LeU4La44Laa4LeKIOC3g+C2uOC2nyDgtrTgt5Tgtq/gt4rgtpzgtr0g4La64LeZ4Lav4LeU4La4IOC3g+C2uOC2uOC3lOC3hOC3lOC2u+C3iuC2rSDgtq/gt5Dgtrrgt5Ig4La44LeZ4La64LanIOC3hOC2s+C3lOC2seC3jyDgtpzgtq0g4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTeW5jU2V0dGluZ3MiIG1zZ2lkPSI1NDA4Njk0ODc1NzkzOTQ1MzE0Ij4i4LeD4La44La44LeU4LeE4LeU4La74LeK4LatIOC2muC3kuC2u+C3k+C2uCDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4Laa4La74Lax4LeK4LaxIOC3g+C3hCDgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTeW5jU2V0dGluZ3MiIG1zZ2lkPSI4OTU2MjYyNTkxMzA2MzY5ODY4Ij4i4Lac4LeS4Lar4LeU4La4IOC3g+C2s+C3hOC3jyDgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2i+C2r+C3j+C3hOC2u+C2q+C2uuC2muC3iiDgtr3gt5ngt4MsIOC2nOC3kuC2q+C3lOC2uCDgt4Pgtrjgtp8g4La04LeU4Lav4LeK4Lac4La9IOC2uuC3meC2r+C3lOC2uCDgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4Laa4LeS4La74LeT4La4IOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La34LeP4LeA4LeS4LatIOC2muC2vSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU3luY1N0YXRzIiBtc2dpZD0iNzM5NjU3NzQ1MTM2MDIwMjQ0OCI+IuC3g+C2uOC2uOC3lOC3hOC3lOC2u+C3iuC2rSDgtprgt5Lgtrvgt5Pgtrjgt5og4LeD4LaC4Lab4LeK4oCN4La64LeP4LaxIOC2muC3kuC2uuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTeW5jU3RhdHMiIG1zZ2lkPSIxNTEwMTQzNzYxNzU3NjA2MTU2Ij4i4LeD4La44La44LeU4LeE4LeU4La74LeK4LatIOC2muC3kuC2u+C3k+C2uOC3miDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt4og4LaJ4Lat4LeS4LeE4LeP4LeD4La6IOC3g+C3hCDgtprgt5ngtq3gtrvgtrjgt4og4Lav4Lat4LeK4LatIOC3g+C2uOC2uOC3lOC3hOC3lOC2u+C3iuC2rSDgt4Dgt5Mg4LaH4Lat4LeS4Lav4LeQ4La64LeSIOC2h+C2reC3lOC2veC2reC3iiDgtpzgt5Lgtqvgt5Tgtrgg4LeD4Laz4LeE4LePIOC3g+C2uOC2uOC3lOC3hOC3lOC2u+C3iuC2rSDgtprgt5Lgtrvgt5Pgtrjgt5og4LeD4LaC4Lab4LeK4oCN4La64LeP4LaxIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N1YnNjcmliZWRGZWVkc1JlYWQiIG1zZ2lkPSI0NzU2NjA5NjM3MDUzMzUzMzE4Ij4i4Lav4LeP4La64LaaIOC3gOC3liDgt4PgtoLgtpzgt4rigI3gtrvgt4Qg4Laa4LeS4La64LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3Vic2NyaWJlZEZlZWRzUmVhZCIgbXNnaWQ9IjU1NTcwNTg5MDc5MDYxNDQ1MDUiPiLgt4Dgtrvgt4rgtq3gtrjgt4/gtrEg4LeD4La44La44LeU4LeE4LeU4La74LeK4LatIOC3g+C2guC2nOC3iuKAjeC2u+C3hCDgtpzgt5DgtrEg4LeA4LeS4LeD4LeK4Lat4La7IOC2veC3kOC2tuC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3N1YnNjcmliZWRGZWVkc1dyaXRlIiBtc2dpZD0iOTAxNTI0NjMyNTQwODIwOTI5NiI+IuC2r+C3j+C2uuC2miDgt4Dgt5Yg4LeD4LaC4Lac4LeK4oCN4La74LeEIOC2veC3kuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N1YnNjcmliZWRGZWVkc1dyaXRlIiBtc2dpZD0iNjkyODkzMDE4ODgyNjA4OTQxMyI+IuC2lOC2tuC2nOC3miDgt4Dgtrvgt4rgtq3gtrjgt4/gtrEg4LeD4La44La44LeU4LeE4LeU4La74LeK4LatIOC3g+C2guC2nOC3iuKAjeC2u+C3hCDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtpTgtrbgtpzgt5og4LeD4La44La44LeU4LeE4LeU4La74LeK4LatIOC3g+C2guC2nOC3iuKAjeC2u+C3hCDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeK4LeA4La94LeS4Lax4LeKIOC3gOC3meC2seC3g+C3iiDgtprgtr0g4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZERpY3Rpb25hcnkiIG1zZ2lkPSI0MTA3MTAxNTI1NzQ2MDM1NzE4Ij4i4LaU4La2IOC3gOC3kuC3g+C3kuC2seC3iiDgt4Hgtrbgt4rgtq/gtprgt53gt4Lgtrrgtqcg4LaH4Lat4LeU4LeF4Lat4LeK4Laa4Lec4LanIOC2h+C2reC3kiDgtprgt5zgtrHgt4rgtq/gt5rgt4Pgt5Ig4Laa4LeS4La64LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZERpY3Rpb25hcnkiIG1zZ2lkPSI2NTk2MTQ2MDAzMzg5MDQyNDMiPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4LeB4La24LeK4LavIOC2muC3neC3guC2uuC3miDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtprgtrrgtrHgt4og4LeA4LeS4LeD4LeS4Lax4LeKIOC2nOC2tuC2qeC3jyDgtprgtrsg4Lat4LeS4La24LeS4La6IOC3hOC3kOC2muC3kiDgt4DgtqDgtrEsIOC2seC2uOC3iiwg4LeA4LeP4Laa4LeK4oCN4La64LaC4LeBIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjIxODMxMTA0MDIzMTQ0NDExMDYiPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtprgtrrgt5LgtrHgt4og4LaF4La74LeK4LauIOC2r+C3kOC2muC3iuC3gOC3liDgt4Hgtrbgt4rgtq8g4Laa4Led4LeC4La64LanIOC3gOC2oOC2sSDgtpHgtprgtq3gt5Qg4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iODE4NTM4NTcxNjI1NTA2NTI5MSI+IuC2tOC2u+C3kuC3geC3k+C2veC2miDgt4Hgtrbgt4rgtq/gtprgt53gt4Lgtrog4Lat4LeU4LeF4LanIOC2heC2veC3lOC2reC3iiDgt4DgtqDgtrEg4La94LeS4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtongtqkg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI4MjM1MzQxNTE1NjA1NTU5Njc3Ij4i4LaG4La74Laa4LeK4oCN4LeC4LeS4LatIOC2huC2oOC2uuC2seC2uiDgt4Dgt5ngtq0g4La04LeK4oCN4La74LeA4Lea4LeB4La6IOC2tOC2u+C3k+C2muC3iuC3guC3jyDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFJlYWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MjM1MzQxNTE1NjA1NTU5Njc3Ij4i4LaG4La74Laa4LeK4oCN4LeC4LeS4LatIOC2huC2oOC2uuC2seC2uiDgt4Dgt5ngtq0g4La04LeK4oCN4La74LeA4Lea4LeB4La6IOC2tOC2u+C3k+C2muC3iuC3guC3jyDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM2NDI0NzMyOTIzNDgxMzIwNzIiPiLgtoXgtrHgt4/gtpzgtq0g4LaL4La04LeP4LaC4Lac4LeA4La9IOC2veC2tuC3j+C2nOC2rSDgt4Tgt5Dgtprgt5IgVVNCIOC2huC2oOC2uuC2seC2uiDgt4PgtrPgt4Tgt48g4LaF4LeA4LeD4La74La64Laa4LeKIOC2tOC2u+C3k+C2muC3iuC3guC3jyDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkUmVhZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU5MTQ0MDI2ODQ2ODU4NDg4MjgiPiLgtoXgtrHgt4/gtpzgtq0g4LaL4La04LeP4LaC4Lac4LeA4La9IOC2tOC3kOC3gOC2reC3meC2sSBTRCDgtprgt4/gtqngt4og4La04LatIOC3g+C2s+C3hOC3jyDgtoXgt4Dgt4Pgtrvgtrrgtprgt4og4La04LeS4La74LeS4Laa4LeK4LeD4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iODQ4NTk3OTA2MjI1NDY2Njc0OCI+IuC2lOC2tuC2nOC3miBVU0Ig4LaG4Lag4La64Lax4La64LeaIOC2heC2seC3iuC2reC2u+C3iuC2nOC2rSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4IOC3hOC3nSDgtrjgt5Dgtprgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODgwNTY5MzYzMDA1MDQ1ODc2MyI+IuC2lOC2tuC2nOC3miBTRCDgtrTgtq3gt5og4LaF4Lax4LeK4Lat4La74LeK4Lac4LatIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrgg4LeE4LedIOC2uOC3kOC2muC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFdyaXRlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYxNzU0MDYyOTk0NDU3MTA4ODgiPiJVU0Ig4LaG4Lag4La64Lax4La6IOC3gOC3meC2rSDgtr3gt5Lgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MzM3NDE3NzkwOTM2NjMyMDkwIj4iU0Qg4La04LatIOC3gOC3meC2rSDgtr3gt5Lgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTk4MzkxOTk3MDY4NzkwMTUiPiLgtoXgtrfgt4rigI3gtrrgtrHgt4rgtq3gtrsg4La44LeP4Law4LeK4oCN4La6IOC2huC2oOC2uuC2seC2uiDgtoXgtrHgt4rgtq3gtrvgt4rgtpzgtq0g4LeA4LeZ4Lax4LeD4LeKIOC2muC2u+C2seC3iuC2sS8g4La44Laa4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWVkaWFTdG9yYWdlV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MTg5MTYwNTk3Njk4NTI5MTg1Ij4i4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2uOC3j+C2sOC3iuKAjeC2uiDgtobgtqDgtrrgtrHgtrrgt5og4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaL4La04LeP4LaC4Lac4La64LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VEb2NzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTc3ODMxODU5ODQ0ODg0OTgyOSI+IuC2veC3muC2m+C2sSDgtobgtqDgtrrgtrHgtrog4Laa4LeF4La44Lax4LeP4Laa4La74Lar4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZURvY3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4NzA0MzIzMTc2OTE0MTIxNDg0Ij4i4La94Lea4Lab4LaxIOC2huC2oOC2uuC2seC2uiDgtprgt4XgtrjgtrHgt4/gtprgtrvgtqvgtrog4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkQWNjZXNzQWxsIiBtc2dpZD0iODE1MDYxMzgyMzkwMDQ2MDU3NiI+IuC3g+C3kuC2uuC2veC3lOC2uCDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtprgtrrgtrHgt4rgtpzgt5og4La24LeP4LeE4LeS4La7IOC2huC2oOC2uuC2sSDgt4Dgt5ngtq0g4La04LeS4LeA4LeS4LeD4LeZ4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkQWNjZXNzQWxsIiBtc2dpZD0iMzIxNTIwODM1NzQxNTg5MTMyMCI+IuC3g+C3kuC2uuC2veC3lCDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtprgtrrgtrHgt4og4LeD4Laz4LeE4LePIOC2tuC3j+C3hOC3kuC2uyDgtobgtqDgtrrgtrHgtrog4LeA4LeZ4LatIOC2tOC3kuC3gOC3kuC3g+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhY2hlX2ZpbGVzeXN0ZW0iIG1zZ2lkPSI1NjU2NDg3MjY0ODE5NjY5ODI0Ij4i4LeE4LeQ4La54LeS4La94LeSIOC2nOC3nOC2seC3lCDgtrTgtq/gt4rgtrDgtq3gt5Lgtrrgtqcg4La04LeK4oCN4La74LeA4Lea4LeBIOC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhY2hlX2ZpbGVzeXN0ZW0iIG1zZ2lkPSI1NTc4OTY3NjQyMjY1NTUwOTU1Ij4i4LeE4LeQ4La54LeS4La94LeSIOC2nOC3nOC2seC3lCDgtrTgtq/gt4rgtrDgtq3gt5Ig4Laa4LeS4La64LeA4LeT4La44LanIOC3g+C3hCDgtr3gt5Lgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91c2Vfc2lwIiBtc2dpZD0iNTk4Njk1MjM2Mjc5NTg3MDUwMiI+IuC2heC2seC3iuC2reC2u+C3iuC2ouC3j+C2vSDgtofgtrjgtq3gt5Tgtrjgt4og4Lac4Lax4LeK4LaxL+C2veC2tuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VzZV9zaXAiIG1zZ2lkPSI0NzE3NjMyMDAwMDYyNjc0Mjk0Ij4i4LaF4Lax4LeK4Lat4La74LeK4Lai4LeP4La9IOC2h+C2uOC2reC3lOC2uOC3iiDgtpzgt5DgtrHgt5Pgtrjgtqcv4La94LeQ4La24LeT4La44LanIFNJUCDgt4Pgt5rgt4Dgt4/gt4Ag4La34LeP4LeA4LeS4Lat4La64LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZE5ldHdvcmtVc2FnZUhpc3RvcnkiIG1zZ2lkPSI3ODYyNTkzMjgzNjExNDkzMjMyIj4i4LaJ4Lat4LeS4LeE4LeP4LeD4Lac4LatIOC2ouC3j+C2vSDgtrfgt4/gt4Dgt5Lgtq3gtrog4Laa4LeS4La64LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZE5ldHdvcmtVc2FnZUhpc3RvcnkiIG1zZ2lkPSI3Njg5MDYwNzQ5ODE5MTI2NDcyIj4i4LeA4LeS4LeB4Lea4LeC4LeS4LatIOC2ouC3j+C2vSDgt4Pgt4Qg4La64LeZ4Lav4LeU4La44LeKIOC3g+C2s+C3hOC3jyDgtongtq3gt5Lgt4Tgt4/gt4Pgtpzgtq0g4Lai4LeP4La9IOC2t+C3j+C3gOC3kuC2reC2uiDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VOZXR3b3JrUG9saWN5IiBtc2dpZD0iMjU2MjA1MzU5MjMzOTg1OTk5MCI+IuC2ouC3j+C2vSDgtrTgt4rigI3gtrvgtq3gt5LgtrTgtq3gt4rgtq3gt5Lgtrog4Laa4LeF4La44Lax4LeP4Laa4La74Lar4La6IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZU5ldHdvcmtQb2xpY3kiIG1zZ2lkPSI3NTM3NTg2NzcxNTU5MzcwNjY4Ij4i4Lai4LeP4La9IOC2muC3nOC2seC3iuC2r+C3muC3g+C3kiDgt4Pgt4Qg4LeD4Laz4LeE4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5Lgt4Hgt5rgt4Lgt5Pgtq0g4La74LeT4Lat4LeSIOC2muC3heC2uOC2seC3j+C2muC2u+C2q+C2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlOZXR3b3JrQWNjb3VudGluZyIgbXNnaWQ9IjUwODgyMTczMDkwODg3Mjk2NTAiPiLgtqLgt4/gtr0g4La34LeP4LeA4LeS4LatIOC2nOC3kuC2q+C3lOC2uOC3iiDgtprgt5Lgtrvgt5Pgtrgg4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeU5ldHdvcmtBY2NvdW50aW5nIiBtc2dpZD0iNTQ0MzQxMjg2Njc0NjE5ODEyMyI+IuC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtqLgt4/gtr0g4La34LeP4LeA4LeS4Lat4La64LeZ4Lax4LeKIOC3gOC2sSDgtrbgtr3gtrTgt5Hgtrgg4Laa4LeZ4LeD4Lea4LavIOC2uuC2seC3iuC2sSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeK4LeA4La9IOC2t+C3j+C3gOC3kuC2reC2uiDgt4PgtrPgt4Tgt48g4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSIzNjU4NTI3MjE0OTE0OTU5NzQ5Ij4i4Laa4LeZ4LeA4LeZ4Lax4LeSIOC2veC2muC3lOC2q+C3lCDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFya05ldHdvcmtTb2NrZXQiIG1zZ2lkPSI3NjU1NTY4NDMzNjk2MzU2NTc4Ij4i4La44LeP4La74LeK4Lac4Lac4LatIOC3gOC3k+C2uCDgt4PgtrPgt4Tgt48g4Laa4LeZ4LeA4LeZ4Lax4LeS4La64LeaIOC2veC2muC3lOC2q+C3lCDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtongtqkg4Lav4LeZ4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNzY3MzQxNjQ4Nzg3MzQzMjI2OCI+IuC2tOC3iuKAjeC2u+C3gOC3muC3gSDgtq/gt5DgtrHgt5Tgtrjgt4rgtq/gt5Pgtrjgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOb3RpZmljYXRpb25zIiBtc2dpZD0iNDU4NDU3NzQyNjgzNDMxMzg3Ij4i4LeA4LeZ4Lax4Lat4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5Lgt4Pgt5LgtrHgt4og4Laa4LeFIOC2tOC2vSDgtprgt5Lgtrvgt5Pgtrjgt4rgtq8g4LaH4Lat4LeU4LeF4Lat4LeK4LeAIOC2r+C3kOC2seC3iuC3gOC3k+C2uOC3iiDgtr3gtrbgt48g4Lac4LeQ4Lax4LeT4La44LanLCDgtrTgtrvgt5Pgtprgt4rgt4Lgt48g4Laa4LeS4La74LeT4La44LanIOC3g+C3hCDgt4Tgt5Lgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZE5vdGlmaWNhdGlvbkxpc3RlbmVyU2VydmljZSIgbXNnaWQ9IjcwNTc3NjQ3NDIyMTE2NTY2NTQiPiLgtq/gt5DgtrHgt5Tgtrjgt4rgtq/gt5Pgtrgg4LaH4LeE4LeU4La44LeK4Laa4Lax4LeKIOC2r+C3k+C2uOC3iiDgt4Pgt5rgt4Dgt4/gt4Dgtprgt4og4LeA4LeZ4LatIOC2tuC2s+C3kuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmROb3RpZmljYXRpb25MaXN0ZW5lclNlcnZpY2UiIG1zZ2lkPSI5ODU2OTc5MTg1NzY5MDI5ODYiPiLgtq/gt5DgtrHgt5Tgtrjgt4rgtq/gt5Pgtrjgt4og4LaF4LeD4Lax4LeK4Lax4LeP4Lac4LeaIOC3g+C3muC3gOC3j+C3gOC3miDgtongt4Tgt4Ug4La44Lan4LeK4Lan4La44LeaIOC2heC2reC3lOC2u+C3lOC2uOC3lOC3hOC3lOC2q+C2reC2pyDgtrbgt5DgtrPgt5Pgtrjgtqcg4Lav4La74Lax4LeK4Lax4LeP4LanIOC2heC3gOC3g+C2uyDgtq/gt5ouIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2muC3kuC3g+C3kuC3g+C3muC2reC3iiDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW52b2tlQ2FycmllclNldHVwIiBtc2dpZD0iMzY5OTYwMDgzMzk3NTExNzQ3OCI+IuC3gOC3j+C3hOC2muC2uiDgt4Pgt5DgtrTgtrrgt5Qg4LeA4LeS4Lax4LeK4oCN4La64LeP4LeD4La6IOC2uuC3meC2r+C3lOC2uCDgtongtr3gt4rgtr3gt48g4LeD4LeS4Lan4LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW52b2tlQ2FycmllclNldHVwIiBtc2dpZD0iNDE1OTU0OTE1MjUyOTExMTkyMCI+IuC3gOC3j+C3hOC2muC2uuC3jyDgtr3gtrbgt4/gtq/gt5TgtrHgt4og4LeD4LeQ4Laa4LeD4LeU4La44LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgtovgtq3gt4rgtrTgt4/gtq/gtrHgtrrgtqcg4Law4LeP4La74Laa4La64LeP4LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2muC3kuC3g+C3kuC2r+C3jyDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI4MjA2MDc3NDQ3ODM4OTA5NTE2Ij4i4Lai4LeP4La9IOC2reC2reC3iuC3gCDgtrjgtq0g4Lax4LeS4La74LeT4Laa4LeK4LeC4LarIOC3gOC3meC2rSDgtofgt4Tgt5Tgtrjgt4rgtprgtrHgt4og4Lav4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTmV0d29ya0NvbmRpdGlvbnMiIG1zZ2lkPSI2ODk5MTAyMDc1ODI1MjcyMjExIj4i4La64LeZ4Lav4LeU4La44Laa4LanIOC2ouC3j+C2vSDgtq3gtq3gt4rgt4Ag4La44LatIOC2seC3kuC2u+C3k+C2muC3iuC3guC2qyDgt4Dgt5ngtq0g4LaH4LeE4LeU4La44LeK4Laa4Lax4LeKIOC2r+C3k+C2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeaLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeKIOC3g+C2s+C3hOC3jyDgtprgt5Lgt4Pgt5Lgtq/gt48g4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2hvdHdvcmRSZWNvZ25pdGlvbiIgbXNnaWQ9IjMyMjUwODA0MDg3NDYzNjEzMTMiPiLgtoXgtqvgt4Dgtq/gtrEg4LeE4Laz4LeU4Lax4LeP4Lac4LeQ4Lax4LeT4La4IOC2ieC2veC3iuC2veC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2hvdHdvcmRSZWNvZ25pdGlvbiIgbXNnaWQ9IjM3MTY3NDEyNjAxOTUzNjQyNTIiPiLgtoXgtqvgt4Dgtq/gtrEg4LeE4Laz4LeU4Lax4LeP4Lac4LeQ4Lax4LeT4La4IOC3g+C2s+C3hOC3jyDgtongtr3gt4rgtr3gt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2ieC2qSDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2muC3kuC3g+C3kuC2r+C3jyDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9saW1pdFBhc3N3b3JkIiBtc2dpZD0iNDQ5NzQyMDcyODg1NzU4NTc5MSI+IuC2uOC3lOC2u+C2tOC2ryDgtrHgt5Pgtq3gt5Ig4LeD4Laa4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfbGltaXRQYXNzd29yZCIgbXNnaWQ9IjMyNTIxMTQyMDM5MTk1MTAzOTQiPiLgtq3gt5Lgtrvgtrog4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC3miDgtrjgt5TgtrvgtrTgtq/gtrrgtqcg4LaF4Lax4LeU4La44LatIOC2heC2muC3lOC2u+C3lCDgt4Pgt4Qg4Lav4LeS4LacIOC2tOC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dhdGNoTG9naW4iIG1zZ2lkPSI5MTQxMzA2NDY5NDIxOTk1MDMiPiLgtq3gt5Lgtrvgtrog4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC3miDgtovgtq3gt4rgt4Pgt4/gt4TgtrrgtrHgt4og4Lax4LeS4La74LeT4Laa4LeK4LeC4Lar4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2F0Y2hMb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzIxNTcyOTI5NDIxNTA3MDA3MiI+IuC2reC3kuC2u+C2uiDgtoXgtpzgt5Tgt4Xgt5Qg4LeE4LeQ4La74LeT4La44Lea4Lav4LeTIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtqfgtrrgt5LgtrTgt4og4Laa4LeFIOC2uOC3lOC2u+C2tOC2ryDgtpzgtqvgtrEg4Lax4LeS4La74LeT4Laa4LeK4LeC4Lar4La6IOC2muC2u+C2seC3iuC2sSDgt4Pgt4Qg4Lan4LeQ4La24LeK4La94Lan4La6IOC2heC2nOC3lOC3heC3lCDgtq/gtrjgtrHgt4rgtrEg4LeE4LedIOC3gOC3kOC2u+C2r+C3kiDgtrjgt5TgtrvgtrTgtq8g4La24Lec4LeE4LedIOC2nOC2q+C2seC2muC3iiDgtqfgtrrgt5LgtrTgt4og4Laa4La7IOC2h+C2reC3kiDgtrHgtrjgt4og4Lan4LeQ4La24LeK4La94Lan4La64LeaIOC3g+C3kuC2uuC2veC3lCDgtq/gtq3gt4rgtq0g4La44Laa4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2F0Y2hMb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MTIzMjMwOTE4NDY3NjEwNzMiPiLgtq3gt5Lgtrvgtrog4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC3muC2r+C3kyDgt4Dgt5Dgtrvgtq/gt5Lgtrrgtqcg4Lan4La64LeS4La04LeKIOC2muC3hSDgtrjgt5TgtrvgtrTgtq8g4Lac4Lar4LaxIOC2seC3kuC2u+C3k+C2muC3iuC3guC2q+C2uiDgtprgtrvgtrHgt4rgtrEg4LeD4LeEIOC2r+C3lOC2u+C2muC2ruC2seC2uiDgtoXgtpzgt5Tgt4Xgt5Qg4Lav4La44Lax4LeK4LaxIOC3hOC3nSDgt4Dgt5Dgtrvgtq/gt5Ig4La44LeU4La74La04LavIOC2tuC3nOC3hOC3nSDgtpzgtqvgtrHgtprgt4og4Lan4La64LeS4La04LeKIOC2muC2uyDgtofgtq3gt5Ig4Lax4La44LeKIOC2r+C3lOC2u+C2muC2ruC2seC2uuC3miDgt4Pgt5Lgtrrgtr3gt5Qg4Lav4Lat4LeK4LatIOC2uOC2muC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfcmVzZXRQYXNzd29yZCIgbXNnaWQ9IjI2MjAwNzcxOTEyNDI2ODg5NTUiPiLgtq3gt5Lgtrvgtrog4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC3miDgtrjgt5TgtrvgtrTgtq/gtrog4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfcmVzZXRQYXNzd29yZCIgbXNnaWQ9IjYwNTk2Mzk2MjMwMTkwNDQ1OCI+IuC2reC3kuC2u+C2uiDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LeaIOC2uOC3lOC2u+C2tOC2r+C2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9mb3JjZUxvY2siIG1zZ2lkPSIyMjc0MDg1Mzg0NzA0MjQ4NDMxIj4i4Lat4LeS4La74La6IOC2heC2nOC3lOC3heC3lCDgtq/gt5Dgtrjgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2ZvcmNlTG9jayIgbXNnaWQ9IjExNDE3OTc1ODg0MDM4MjcxMzgiPiLgtq3gt5Lgtrvgtrrgtqcg4LaF4Lac4LeU4LeF4LeUIOC3gOC3kOC2p+C3k+C2uCDgt4Pgt5Lgtq/gt5Tgt4DgtrHgt4rgtrHgt5og4Laa4LeZ4LeD4Lea4LavIOC3g+C3hCDgtprgt4Dgtq/gt4/gtq8g4La64Lax4LeK4LaxIOC2tOC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dpcGVEYXRhIiBtc2dpZD0iMzkxMDU0NTQ0Njc1ODYzOTcxMyI+IuC3g+C3kuC2uuC2veC3lCDgtq/gtq3gt4rgtq0g4La44Laa4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193aXBlRGF0YSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDMwNjE4NDA5NjA2Nzc1Njg3NiI+IuC2muC2u+C3iuC2uOC3j+C2seC3iuC2rSDgt4Hgt4/gtr3gt48g4Lav4Lat4LeK4LatIOC2uuC3heC3kiDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4Dgt5Pgtrjgt5ngtrHgt4og4La04LeD4LeU4LeAIOC2heC2seC2reC3lOC2u+C3lCDgtofgtp/gt4Dgt5Lgtrjgtprgt5LgtrHgt4og4Lat4Lec4La74LeA4La4IOC2p+C3kOC2tuC3iuC2veC2p+C3iiDgtq/gtq3gt4rgtq0g4La44Laa4LePIOC2r+C2uOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dpcGVEYXRhIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTA5Njg5NTYwNDU3NDE4ODM5MSI+IuC2muC2u+C3iuC2uOC3j+C2seC3iuC2rSDgt4Hgt4/gtr3gt48g4Lav4Lat4LeK4LatIOC2uuC3heC3kiDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4Dgt5Pgtrjgt5ngtrHgt4og4La04LeD4LeU4LeAIOC2heC2seC2reC3lOC2u+C3lCDgtofgtp/gt4Dgt5Lgtrjgtprgt5LgtrHgt4og4Lat4Lec4La74LeA4La4IOC2r+C3lOC2u+C2muC2ruC2sSDgtq/gtq3gt4rgtq0g4La44Laa4LePIOC2r+C2uOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfc2V0R2xvYmFsUHJveHkiIG1zZ2lkPSIyNzg0ODI4MjkzNzQ3NzkxNDQ2Ij4i4LaL4La04LeP4LaC4LacIOC2nOC3neC2veC3k+C2uiDgtrHgt5Lgtrrgt5Tgtq3gt5Tgt4Ag4LeD4Laa4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfc2V0R2xvYmFsUHJveHkiIG1zZ2lkPSI2Mzg3NDk3NDY2NjYwMTU0OTMxIj4i4Laa4Lec4Lax4LeK4Lav4Lea4LeD4LeSIOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgt4Dgt5Lgtqcg4La04Lec4Lav4LeUIOC2seC3kuC2uuC3lOC2reC3lCDgtpHgtprgtprgt4og4La34LeP4LeA4LeS4LatIOC2muC2u+C2sSDgtr3gt5ngt4Mg4LaL4La04LeP4LaC4Lac4La6IOC3g+C2muC3g+C2seC3iuC2sS4g4La04LeF4La44LeUIOC2i+C2tOC3j+C2guC2nCDgtrTgtrvgt5LgtrTgt4/gtr3gtprgtrrgt48g4La04La44Lar4Laa4LeKIOC2teC2veC2r+C3j+C2uuC3kiDgtrTgt5zgtq/gt5Qg4Lax4LeS4La64LeU4Lat4LeU4LeAIOC3g+C2muC3g+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZXhwaXJlUGFzc3dvcmQiIG1zZ2lkPSI4ODUyNzkxNTE4NDcyNTQwNTYiPiLgtq3gt5Lgtrvgtrog4LaF4Lac4LeU4LeF4LeUIOC2r+C3kOC2uOC3k+C2uOC3miDgtrjgt5TgtrvgtrTgtq/gtrog4Laa4La94LeKIOC2ieC2muC3lOC2reC3iuC3gOC3k+C2uCDgt4Pgtprgt4PgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2V4cGlyZVBhc3N3b3JkIiBtc2dpZD0iMTcyOTcyNTIyNjMxNDY5MTU5MSI+IuC2reC3kuC2uy3gtoXgtpzgt5Tgt4Xgt5og4La44LeU4La74La04Lav4La6IOC3gOC3meC2seC3g+C3iuC3gOC3k+C2uCDgtprgt5zgtrTgtrjgtqsg4Laa4LeP4La9IOC2tOC2u+C3j+C3g+C2uuC2muC3kuC2seC3iiDgt4Pgt5Lgtq/gt5Tgt4Dgt5Lgtrog4La64LeU4Lat4LeU4LavIOC2uuC2seC3iuC2sSDgtrTgt4/gtr3gtrHgtrog4Laa4LeS4La74LeT4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9lbmNyeXB0ZWRTdG9yYWdlIiBtc2dpZD0iODkwMTMyNjE5OTkwOTEzMjkxNSI+IuC2huC2oOC2uuC2seC2uuC3miDgt4PgtoLgtprgt5rgtq3gtrHgtrog4LeD4Laa4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9IjI2Mzc3MzIxMTUzMjUzMTY5OTIiPiLgtobgtqDgtrrgtrHgtrog4Laa4LeFIOC2uuC3meC2r+C3lOC2uOC3iiDgtq/gtq3gt4rgtq0g4LeD4LaC4Laa4Lea4Lat4Lax4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtoXgt4Dgt4Hgt4rigI3gtrrgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2Rpc2FibGVDYW1lcmEiIG1zZ2lkPSI2Mzk1MzAxMDIzMTUyMjk3ODI2Ij4i4Laa4LeQ4La44La74LePIOC2heC2tuC2vSDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2Rpc2FibGVDYW1lcmEiIG1zZ2lkPSIyMzA2MzQ5MDQyODM0NzU0NTk3Ij4i4LeD4LeS4La64La94LeUIOC2i+C2tOC3j+C2guC2nCDgtprgt5Dgtrjgtrvgt4/gt4Dgtr0g4La34LeP4LeA4LeS4Lat4La6IOC3gOC2veC2muC3iuC3gOC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIyNjYzMjkxMDQ1NDI2Mzg4MDIiPiLgtrrgtq3gt5Tgtrvgt5Qg4LaG4La74Laa4LeK4LeC4LeP4LeA4LeaIOC3gOC3kuC3geC3muC3guC3j+C2guC2nCDgtoXgtrbgtr0g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19kaXNhYmxlS2V5Z3VhcmRGZWF0dXJlcyIgbXNnaWQ9IjM0NjcwODIyNzIxODY1MzQ2MTQiPiLgtrrgtq3gt5Tgtrvgt5Qg4LaG4La74Laa4LeK4LeC4LeP4LeAIOC3hOC3kiDgt4Pgtrjgt4Tgtrsg4LeA4LeS4LeB4Lea4LeC4LeP4LaC4LacIOC2t+C3j+C3gOC3kuC2reC2uiDgt4Dgt4Xgtprgt4rgt4Dgtrrgt5IuIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBob25lVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI4OTAxMDk4MzM2NjU4NzEwMzU5Ij4i4Lax4LeS4LeA4LeDIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iODY5OTIzNjUwNTI3MTM2NjE1Ij4i4Lai4LaC4Lac4La4IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg5NzU0NDY1NDI0Mjg3NDU0MyI+IuC2muC3j+C2u+C3iuC2uuC3j+C2veC2uiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjExMDM2MDE0MzMzODIxNTgxNTUiPiLgtprgt4/gtrvgt4rgtrrgt4/gtr0g4LeG4LeQ4Laa4LeK4LeD4LeKIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTczNTE3NzE0NDk0ODMyOTM3MCI+IuC2seC3kuC3gOC3g+C3miDgt4bgt5Dgtprgt4rgt4Pgt4oiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2MDM4Nzg2NzQ0NzcyMDczOTQiPiLgtrTgt5rgtqLgtrvgtroiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxNjUwODI0Mjc1MTc3OTMxNjM3Ij4i4LeA4LeZ4Lax4Lat4LeKIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iOTE5MjUxNDgwNjk3NTg5ODk2MSI+IuC2heC2t+C3kuC2u+C3lOC2oOC3kiI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImVtYWlsQWRkcmVzc1R5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iODA3Mzk5NDM1Mjk1NjEyOTEyNyI+IuC2uOC3lOC2veC3iiDgtrTgt5Lgtqfgt5Tgt4AiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3MDg0MjM3MzU2NjAyNjI1NjA0Ij4i4Laa4LeP4La74LeK4La64LeP4La94La6IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTExMjA0NDQxMDY1OTAxMTAyMyI+IuC3gOC3meC2seC2reC3iiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjIzNzQ5MTM5NTI4NzAxMTA2MTgiPiLgtoXgtrfgt5Lgtrvgt5TgtqDgt5IiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwb3N0YWxBZGRyZXNzVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI2ODgwMjU3NjI2NzQwMDQ3Mjg2Ij4i4Lax4LeS4LeA4LeDIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNTYyOTE1Mzk1NjA0NTEwOTI1MSI+IuC2muC3j+C2u+C3iuC2uuC3j+C2veC2uiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjQ5NjY2MDQyNjQ1MDAzNDM0NjkiPiLgt4Dgt5ngtrHgtq3gt4oiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0OTMyNjgyODQ3NTk1Mjk5MzY5Ij4i4LaF4La34LeS4La74LeU4Lag4LeSIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iaW1BZGRyZXNzVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSIxNzM4NTg1MTk0NjAxNDc2Njk0Ij4i4Lax4LeS4LeA4LeDIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTM1OTY0NDU2NTY0NzM4MzcwOCI+IuC2muC3j+C2u+C3iuC2uuC3j+C2veC2uiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9Ijc4Njg1NDk0MDEwNTM2MTU2NzciPiLgt4Dgt5ngtrHgtq3gt4oiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTQ1MTE4OTQ0NjM5ODY5ODA5Ij4i4LaF4La34LeS4La74LeU4Lag4LeSIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JnYW5pemF0aW9uVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NTQ2MzM1NjEyMTg5MTE1NjE1Ij4i4Laa4LeP4La74LeK4La64LeP4La94La6IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNDM3ODA3NDEyOTA0OTUyMDM3MyI+IuC3gOC3meC2seC2reC3iiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjM0NTUwNDc0Njg1ODM5NjUxMDQiPiLgtoXgtrfgt5Lgtrvgt5TgtqDgt5IiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJpbVByb3RvY29scyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijg1OTUyNjEzNjM1MTg0NTk1NjUiPiJBSU0iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3MzkwNDczNjI4Mjc1NDkwNzAwIj4iV2luZG93cyBMaXZlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg4Mjg3NzEzNDkzMTQ1ODIxNyI+IllhaG9vIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNTAzNTM3NjMxMzIwMDU4NTI0MiI+IlNreXBlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzUzMjM2MzE3ODQ1OTQ0NDk0MyI+IlFRIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzcxMzQ0MTAzNDI5OTY2MDc0OSI+Ikdvb2dsZSBUYWxrIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjUwNjg1NzMxMjcxODYzMDgyMyI+IklDUSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjE2NDg3OTc5MDM3ODUyNzkzNTMiPiJKYWJiZXIiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUN1c3RvbSIgbXNnaWQ9IjE2NDQ3MzgwNTkwNTMzNTU4MjAiPiLgtoXgtrfgt5Lgtrvgt5TgtqDgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVIb21lIiBtc2dpZD0iMjU3MDkyMzQ2MzAzMzk4NTg4NyI+IuC2seC3kuC3gOC3gyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU1vYmlsZSIgbXNnaWQ9IjY1MDE0NjM1NTc3NTQ3NTEwMzciPiLgtqLgtoLgtpzgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVXb3JrIiBtc2dpZD0iODg2MzkzOTY2NzA1OTkxMTYzMyI+IuC2muC3j+C2u+C3iuC2uuC3j+C2veC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUZheFdvcmsiIG1zZ2lkPSIzNTE3NzkyMTYwMDA4ODkwOTEyIj4i4Laa4LeP4La74LeK4La64LeP4La9IOC3huC3kOC2muC3iuC3g+C3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUZheEhvbWUiIG1zZ2lkPSIyMDY3MjY1OTcyMzIyOTcxNDY3Ij4i4Lax4LeS4LeA4LeD4LeaIOC3huC3kOC2muC3iuC3g+C3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVBhZ2VyIiBtc2dpZD0iNzU4MjM1OTk1NTM5NDkyMTczMiI+IuC2tOC3muC2ouC2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU90aGVyIiBtc2dpZD0iMTU0NDQyNTg0Nzg2ODc2NTk5MCI+IuC3gOC3meC2seC2reC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNhbGxiYWNrIiBtc2dpZD0iMjcxMjE3NTIwMzA2NTY3ODIwNiI+IuC2uuC3heC3kiDgtofgtrjgtq3gt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVDYXIiIG1zZ2lkPSI4NzM4MzYwNjg5NjE2NzE2OTgyIj4i4La44Led4Lan4La74LeKIOC2u+C2ruC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNvbXBhbnlNYWluIiBtc2dpZD0iNTQwNDM0MzU2NDYxNDc4OTE2Ij4i4LaG4La64Lat4Lax4La64LeaIOC2uOC3luC2veC3kuC2muC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUlzZG4iIG1zZ2lkPSI4MDIyNDUzMTkzMTcxMzcwMzM3Ij4iSVNETiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU1haW4iIG1zZ2lkPSI2NzY2MTM3MDEwNjI4MzI2OTE2Ij4i4La44LeW4La94LeS4LaaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlT3RoZXJGYXgiIG1zZ2lkPSI4NTg3NjU3MTQ1MDcyNDQ2NTY1Ij4i4LeA4LeZ4Lax4Lat4LeKIOC3huC3kOC2muC3iuC3g+C3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVJhZGlvIiBtc2dpZD0iNDA5MzczODA3OTkwODY2NzUxMyI+IuC2u+C3muC2qeC3kuC2uuC3neC3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVRlbGV4IiBtc2dpZD0iMzM2Nzg3OTk1MjQ3NjI1MDUxMiI+IuC2p+C3meC2veC3meC2muC3iuC3g+C3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVR0eVRkZCIgbXNnaWQ9Ijg2MDY1MTQzNzg1ODUwMDAwNDQiPiJUVFkgVEREIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlV29ya01vYmlsZSIgbXNnaWQ9IjEzMTE0MjY5ODkxODQwNjU3MDkiPiLgtprgt4/gtrvgt4rgtrrgt4/gtr0g4Lai4LaC4Lac4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlV29ya1BhZ2VyIiBtc2dpZD0iNjQ5OTM4NzMxMjMxMTU3MDU2Ij4i4Laa4LeP4La74LeK4La64LeP4La9IOC2tOC3muC2ouC2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUFzc2lzdGFudCIgbXNnaWQ9IjU1OTY3NzI2MzYxMjg1NjI4ODQiPiLgt4Pgt4Tgt4/gtrrgtpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVNbXMiIG1zZ2lkPSI3MjU0NDkyMjc1NTAyNzY4OTkyIj4iTU1TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXZlbnRUeXBlQ3VzdG9tIiBtc2dpZD0iNzgzNzU4NjE5ODQ1ODA3MzQwNCI+IuC2heC2t+C3kuC2u+C3lOC2oOC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZUJpcnRoZGF5IiBtc2dpZD0iMjgxMzM3OTg0NDIxMTM5MDc0MCI+IuC2i+C2tOC2seC3iuC2r+C3kuC2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZUFubml2ZXJzYXJ5IiBtc2dpZD0iMzg3Njc3OTc0NDUxODI4NDAwMCI+IuC3g+C2guC3gOC2reC3iuC3g+C2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZU90aGVyIiBtc2dpZD0iNzM4ODE3ODkzOTAxMDE0MzA3NyI+IuC3gOC3meC2seC2reC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZUN1c3RvbSIgbXNnaWQ9Ijg1MjU5NjAyNTc4MDQyMTM4NDYiPiLgtoXgtrfgt5Lgtrvgt5TgtqDgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVIb21lIiBtc2dpZD0iNDQ5MjI3MjM2MTQwNDMzOTE5Ij4i4Lax4LeS4LeA4LeDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlV29yayIgbXNnaWQ9IjM1NDgwNTgwNTk2MDExNDk5NzMiPiLgtprgt4/gtrvgt4rgtrrgt4/gtr3gtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVPdGhlciIgbXNnaWQ9IjI5MjMwMDg2OTUyNzI2Mzk1NDkiPiLgt4Dgt5ngtrHgtq3gt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVNb2JpbGUiIG1zZ2lkPSIxMTk5MTkwMDUzMjExNjYyMDUiPiLgtqLgtoLgtpzgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3N0YWxUeXBlQ3VzdG9tIiBtc2dpZD0iODkwMzIwNjkwMzA2MDQ3OTkwMiI+IuC2heC2t+C3kuC2u+C3lOC2oOC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVIb21lIiBtc2dpZD0iODE2NTc1Njk3NzE4NDQ4MzA5NyI+IuC2seC3kuC3gOC3gyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVXb3JrIiBtc2dpZD0iNTI2ODE3Mjc3MjM4NzY5NDQ5NSI+IuC2muC3j+C2u+C3iuC2uuC3j+C2veC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVPdGhlciIgbXNnaWQ9IjI3MjYxMTE5NjY2MjM1ODQzNDEiPiLgt4Dgt5ngtrHgtq3gt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVR5cGVDdXN0b20iIG1zZ2lkPSIyMDc0MDI4NzU1NTI3ODI2MDQ2Ij4i4LaF4La34LeS4La74LeU4Lag4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlSG9tZSIgbXNnaWQ9IjYyNDExODEwMzI5NTQyNjM4OTIiPiLgtrjgt5Tgtr3gt4og4La04LeS4Lan4LeU4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlV29yayIgbXNnaWQ9IjEzNzE0ODkyOTAyNDI0MzMwOTAiPiLgtprgt4/gtrvgt4rgtrrgt4/gtr3gtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVR5cGVPdGhlciIgbXNnaWQ9IjUzNzcwMDc0OTU3MzU5MTU0NzgiPiLgt4Dgt5ngtrHgtq3gt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sQ3VzdG9tIiBtc2dpZD0iNjkxOTQ1MzgzNjYxODc0OTk5MiI+IuC2heC2t+C3kuC2u+C3lOC2oOC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xBaW0iIG1zZ2lkPSI3MDUwMzYwNjEyMzY4MzgzNDE3Ij4iQUlNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE1zbiIgbXNnaWQ9IjE0NDU1NjU0NTQyMDc2OTQ0MiI+IldpbmRvd3MgTGl2ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xZYWhvbyIgbXNnaWQ9IjgyNzE0Mzk0MDg0NjkwMjEyNzMiPiJZYWhvbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xTa3lwZSIgbXNnaWQ9IjkwMTkyOTY3NDQ2MjI4MzI5NTEiPiJTa3lwZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xRcSIgbXNnaWQ9Ijg4ODc0ODQzNzk0OTQxMTE4ODQiPiJRUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xHb29nbGVUYWxrIiBtc2dpZD0iNDkzOTAyMzIxMTQwMjc3MzA0Ij4iSGFuZ291dHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sSWNxIiBtc2dpZD0iMTU3NDg3MDQzMzYwNjUxNzMxNSI+IklDUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xKYWJiZXIiIG1zZ2lkPSIyMjc5OTE3NjMwODc1NzcxNzIyIj4iSmFiYmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE5ldE1lZXRpbmciIG1zZ2lkPSI4Mjg3NjI1NjU1OTg2ODI3OTcxIj4iTmV0TWVldGluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ1R5cGVXb3JrIiBtc2dpZD0iMjkyNjg4NzA1MDUzNjM4NzIiPiLgtprgt4/gtrvgt4rgtrrgt4/gtr3gtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdUeXBlT3RoZXIiIG1zZ2lkPSIzOTUxNzgxMTMxNTcwMTI0MDgyIj4i4LeA4LeZ4Lax4Lat4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnVHlwZUN1c3RvbSIgbXNnaWQ9IjIyNTUyMzQxNTM3MjA4ODMyMiI+IuC2heC2t+C3kuC2u+C3lOC2oOC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUN1c3RvbSIgbXNnaWQ9IjM1NDI0MDM2Nzk4MjcyOTczMDAiPiLgtoXgtrfgt5Lgtrvgt5TgtqDgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVBc3Npc3RhbnQiIG1zZ2lkPSI2Mjc0MzM0ODI1MTk1Mzc5MDc2Ij4i4LeD4LeE4LeP4La64LaaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlQnJvdGhlciIgbXNnaWQ9Ijg3NTc5MTM1MDY3ODQwNjc3MTMiPiLgt4Pgt4Tgt53gtq/gtrvgtrrgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVDaGlsZCIgbXNnaWQ9IjE4OTA3NDYyNzcyNzY4ODE2MjYiPiLgtq/gtrvgt5Tgt4Dgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVEb21lc3RpY1BhcnRuZXIiIG1zZ2lkPSI2OTA0ODA3MTEyMTIxMTIyMTMzIj4i4Lav4Lea4LeB4LeT4La6IOC3hOC3gOC3lOC2veC3iuC2muC2u+C3lOC3gOC3jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUZhdGhlciIgbXNnaWQ9IjUyMjgwMzQ2ODcwODIwNTA3MjUiPiLgtrTgt5Lgtrrgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVGcmllbmQiIG1zZ2lkPSI3MzEzMTA2NzYyNDgzMzkxMjYyIj4i4La44LeS4Lat4LeK4oCN4La74La64LePIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlTWFuYWdlciIgbXNnaWQ9IjYzNjU2Nzc4NjE2MTAxMzc4OTUiPiLgtprgt4XgtrjgtrHgt4/gtprgtrvgt5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVNb3RoZXIiIG1zZ2lkPSI0NTc4NTcxMzUyOTYyNzU4MzA0Ij4i4La44LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUGFyZW50IiBtc2dpZD0iNDc1NTYzNTU2NzU2MjkyNTIyNiI+IuC2uOC3gOC3iuC2tOC3kuC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVBhcnRuZXIiIG1zZ2lkPSI3MjY2NDkwMjg1MTIwMjYyNzgxIj4i4LeE4LeA4LeU4La94LeK4Laa4La74LeU4LeA4LePIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUmVmZXJyZWRCeSIgbXNnaWQ9IjEwMTU3MzA1OTg0NDEzNTUyNCI+IuC2uuC3nOC2uOC3lOC2muC2u+C2sSDgtr3gtq/gt4rgtq/gt5oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVSZWxhdGl2ZSIgbXNnaWQ9IjE3OTk4MTk5MzAwODU2MTAyNzEiPiLgtrHgt5Hgtrrgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVTaXN0ZXIiIG1zZ2lkPSIxNzM1OTgzNTU0NDc5MDc2NDgxIj4i4LeD4LeE4Led4Lav4La74LeS4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlU3BvdXNlIiBtc2dpZD0iMzk0MTM2OTM5NDI4Njk4MTE3Ij4i4La34LeP4La74LeK4La64LeP4LeAIOC3hOC3nSDgt4Pgt4rgt4Dgt4/gtrjgt5LgtrTgt5Tgtrvgt5Tgt4Lgtrrgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZUN1c3RvbSIgbXNnaWQ9IjI0NzM1ODA1OTMxMTE1OTA5NDUiPiLgtoXgtrfgt5Lgtrvgt5TgtqDgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZUhvbWUiIG1zZ2lkPSI2MDkzNTk4MTgxMDY5MzU5Mjk1Ij4i4Lax4LeS4LeA4LeDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVXb3JrIiBtc2dpZD0iNjkyMDcyNTczMDc5NzA5OTA0NyI+IuC2muC3j+C2u+C3iuC2uuC3j+C2veC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlT3RoZXIiIG1zZ2lkPSI0NDA4NDM2MTYyOTUwMTE5ODQ5Ij4i4LeA4LeZ4Lax4Lat4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iUElOIOC2muC3muC2reC2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iUFVLIOC3g+C3hCDgtrHgt4AgUElOIOC2muC3muC2reC2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsg4Laa4Lea4Lat4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLgtrHgt4AgUElOIOC2muC3muC2reC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IuC2uOC3lOC2u+C2tOC2r+C2uiDgtqfgtrrgt5LgtrTgt4og4Laa4LeS4La74LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEiPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC2uOC3lOC2u+C2tOC2r+C2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC2pyBQSU4g4LaR4LaaIOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLgt4Dgt5Dgtrvgtq/gt5IgUElOIOC2muC3muC2reC2uuC2muC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4i4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pywg4La44LeZ4Lax4LeU4LeAIOC2lOC2tuC3jyDgtrTgt4Pgt5Tgt4AgMCDgtq8g4LaU4La24Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtZXJnZW5jeV9jYWxsX2RpYWxvZ19udW1iZXJfZm9yX2Rpc3BsYXkiIG1zZ2lkPSI2OTYxOTIxMDMxOTUwOTA5NzAiPiLgt4Tgtq/gt5Lgt4Pgt5Ig4LaH4La44Lat4LeU4La44LeKIOC2heC2guC2muC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fY2Fycmllcl9kZWZhdWx0IiBtc2dpZD0iODk2MzgzOTI0MjU2NTY1MzE5MiI+IuC3g+C3muC3gOC3j+C3gCDgtrHgt5Dgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zY3JlZW5fbG9ja2VkIiBtc2dpZD0iNzI4ODQ0MzA3NDgwNjgzMjkwNCI+IuC2reC3kuC2u+C2uiDgtoXgtpzgt5Tgt4Xgt5Qg4Lav4La44LePIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZW5hYmxlZCIgbXNnaWQ9IjQ2MTU0MDUxNjE0MTI2MDQ5Ij4i4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC2pyDgtrjgt5ngtrHgt5Tgt4Ag4LaU4La24Lax4LeK4LaxIOC3hOC3nSDgt4Tgtq/gt5Lgt4Pgt5Ig4LaH4La44Lat4LeU4La4IOC2veC2tuC3j+C2nOC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSI2ODYyNjAwMjg3OTcxNTgzNjQiPiLgtoXgtpzgt5Tgt4Xgt5Qg4LeE4LeQ4La74LeT4La44LanIOC2uOC3meC2seC3lCDgtpTgtrbgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9Ijc0Nzg3MDMyNTQ5NjQ4MTAzMDIiPiLgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC2u+C2p+C3j+C3gCDgtoXgtrPgt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2VtZXJnZW5jeV9jYWxsIiBtc2dpZD0iNTM0NzYzMzc4NDQwMTI4NTIyNSI+IuC3hOC2r+C3kuC3g+C3kiDgtofgtrjgtq3gt5Tgtrjgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3JldHVybl90b19jYWxsIiBtc2dpZD0iNTI0NDI1OTc4NTUwMDA0MDAyMSI+IuC2h+C2uOC2reC3lOC2uCDgt4Dgt5ngtq0g4Lax4LeQ4LeA4LatIOC2uuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGF0dGVybl9jb3JyZWN0IiBtc2dpZD0iOTAzOTAwODY1MDM2MjI2MTIzNyI+IuC2seC3kuC3gOC3kOC2u+C2r+C3kuC2uuC3kiEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BhdHRlcm5fd3JvbmciIG1zZ2lkPSI0MzE3OTU1MDE0OTQ4MTA4Nzk0Ij4i4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Bhc3N3b3JkX3dyb25nIiBtc2dpZD0iNTczNzgxNTM5MzI1MzE2NTMwMSI+IuC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4/gt4Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjZXVubG9ja19tdWx0aXBsZV9mYWlsdXJlcyIgbXNnaWQ9Ijc1NDEzNzU4MzAyMjc5MjQyOSI+IuC2uOC3lOC3hOC3lOC2qyDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4LaF4Laf4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC3miDgtovgtrTgtrvgt5Lgtrgg4La04LeK4oCN4La74La64Lax4LeK4Lat4La64Lax4LeKIOC2nOC2q+C2sSDgtongtprgt4rgtrjgt4Dgt48g4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wbHVnZ2VkX2luIiBtc2dpZD0iODA1Nzc2MjgyODM1NTU3MjMxNSI+IuC2huC2u+C3neC2tOC2q+C2uiDgt4Dgt5ngtrjgt5LgtrHgt4osIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2NoYXJnZWQiIG1zZ2lkPSIzMjE2MzU3NDU2ODQwNjA2MjQiPiLgtoXgtrvgt53gtrTgt5Lgtq3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2JhdHRlcnlfc2hvcnQiIG1zZ2lkPSI0NDc3MjY0ODQ5Mzg2ODUwMjY2Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbG93X2JhdHRlcnkiIG1zZ2lkPSIxNDgyODczOTgxOTE5MjQ5NzQwIj4i4LaU4La24Lac4LeaIOC2huC2u+C3neC2tOC2muC2uuC2pyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjUwOTk0MzkyNzc4MTkyMTUzOTkiPiJTSU0g4La04LatIOC2seC3kOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUxNjU5MTk2MDk1NzkxNDc0Ij4i4Lan4LeQ4La24LeK4La94Lan4La64LeaIFNJTSDgtrTgtq0g4Lax4Lec4La44LeQ4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIxODY5MjA1ODU2OTUxNjkwNzgiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrog4Lat4LeU4LeFIFNJTSDgtrTgtq0g4Lax4LeQ4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTM3Mjc4NzEzODAyMzI3MjYxNSI+IlNJTSDgtrTgtq3gtprgt4og4LaH4Lat4LeU4La94LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iMzUyNjU3MzA5OTAxOTMxOTQ3MiI+IlNJTSDgtrTgtq0g4Lax4Lec4La44LeQ4LatIOC3hOC3nSDgtprgt5Lgtrrgt4Dgt5Lgtrog4Lax4Lec4LeE4LeQ4LaaLiBTSU0g4La04Lat4Laa4LeKIOC2h+C2reC3lOC2veC2reC3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI1MDk2MTQ5NjY1MTM4OTE2MTg0Ij4i4La34LeP4LeA4LeS4Lat4LePIOC2muC3hSDgtrHgt5zgt4Tgt5Dgtprgt5IgU0lNIOC2tOC2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iOTEwOTA0NjQzNDMzMTUxMzcxIj4i4LaU4La24Lac4LeaIFNJTSDgtrTgtq0g4LeD4LeK4Lau4LeS4La74LeAIOC2heC2tuC2vSDgtprgtrsg4Lat4LeS4La24LeaLlxuIOC3gOC3meC2seC2reC3iiBTSU0g4La04Lat4Laa4LeKIOC3g+C2s+C3hOC3jyDgtpTgtrbgtpzgt5og4LeD4Lea4LeA4LeP4Lav4LeP4La64Laa4La64LePIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgtrvgtpzgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIwMTU5NDkwNTE1Mjc0Njg4NiI+IuC2tOC3meC2uyDgtpzgt5Pgtq0g4La24Lec4Lat4LeK4Lat4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjYwODkyOTc2NTA0ODEyOTIzNjMiPiLgtorgt4Xgtp8g4Lac4LeT4LatIOC2tuC3nOC2reC3iuC2reC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1OTA4ODc4Njc4MDEyODAwMSI+IuC3gOC3kuC2u+C3j+C2uCDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTg4ODQyMjkzODM1MTAxOTQyNiI+IuC2sOC3j+C3gOC2miDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDU2MjMxODM3ODc2Njk4NzYwMSI+IuC2seC3kOC3gOC2reC3k+C2uOC3miDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWVyZ2VuY3lfY2FsbHNfb25seSIgbXNnaWQ9IjY3MzM5NzgzMDQzODYzNjU0MDciPiLgt4Tgtq/gt5Lgt4Pgt5Ig4LaH4La44Lat4LeU4La44LeKIOC2tOC2uOC2q+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjE0MzM4OTIyNDk4NjAyODUwMSI+IuC2ouC3j+C2veC2uiDgtoXgtpzgt5Tgt4Xgt5Qg4Lav4La44LePIOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3B1a19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9Ijc0NDE3OTczMzk5NzYyMzAiPiJTSU0g4La04LatIFBVSyDgtoXgtpzgt5Tgt4Xgt5Qg4Lav4La44LePIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV9wdWtfbG9ja2VkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjgxMjc5MTYyNTUyNDUxODEwNjMiPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4LaL4La04Lav4Lea4LeB4La6IOC2tuC2veC2seC3iuC2sSDgt4Tgt50g4La04La74LeS4La34Led4Lac4LeS4LaaIOC3g+C3muC3gOC3j+C3gCDgtoXgtrjgtq3gtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI4MDY2NjYwMTI5MjA2MDAxMDM5Ij4iU0lNIOC2tOC2rSDgtoXgtpzgt5Tgt4Xgt5Qg4Lav4La44LePIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI1OTUzMjMyMTQwNTI4ODEyNjQiPiJTSU0g4La04LatIOC2heC2nOC3lOC3heC3lCDgtoXgtrvgt5Lgtrjgt5LgtrHgt4ouLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjY0ODE2MjM4MzAzNDQxMDcyMjIiPiLgtpTgtrYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LeA4LeP4La74La64Laa4LeKIOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5Pgtrjgt5og4La74Lan4LeP4LeAIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtofgtrMg4LaH4LatLiBcblxu4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtofgtq3gt5Tgt4Xgtq0g4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSIyNzI1OTczMjg2MjM5MzQ0NTU1Ij4i4LaU4La2IOC2uOC3lOC2u+C2tOC2r+C2uiDgt4Dgt4/gtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtqfgtrrgt5LgtrTgt4rgtprgt5zgtqcg4LaH4LatLiBcblxu4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2muC3kuC2seC3iiDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI2MjE2NjcyNzA2NTQ1Njk2OTU1Ij4i4LaU4La2IFBJTiDgtoXgtoLgtprgtrogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LeA4LeP4La74La64Laa4LeKIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtqfgtrrgt5LgtrTgt4og4Laa4Lec4LanIOC2h+C2rS5cblxuIOC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgtprgt4og4LaH4Lat4LeU4LeF4LatIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4/gt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjkxOTE2MTE5ODQ2MjU0NjA4MjAiPiLgtpTgtrYg4LeA4LeQ4La74Lav4LeS4La64LanIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC3gOC2reC3j+C3gOC2muC3iiDgtpTgtrbgtpzgt5og4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC3miDgtrvgtqfgt4/gt4Ag4LaH4LazIOC2h+C2rS4g4LaF4LeD4LeP4La74LeK4Lau4LaaIOC2i+C2reC3iuC3g+C3hCDgtprgt5Lgtrvgt5Pgtrjgt4ogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Lax4LeKIOC2tOC3g+C3lOC3gCwg4LaU4La24Lac4LeaIEdvb2dsZSDgtrTgt5TgtrvgtrHgtrog4LeA4LeT4La44LeKIOC2t+C3j+C3gOC3kuC2reC2uuC3meC2seC3iiDgtpTgtrbgtpzgt5og4Lan4LeQ4La24LeK4La94Lan4La6IOC2heC2nOC3lOC3heC3lCDgt4Tgt5Dgtrvgt5Pgtrjgtqcg4LaU4La24Lac4LeZ4Lax4LeKIOC2heC3g+C2uuC3ki5cblxuIOC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDgtrTgt4Pgt5Tgt4Ag4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI1OTAyMjc1NTk3NjM3NjI3NTEiPiLgtpTgtrYg4LeA4LeQ4La74Lav4LeS4La64LanIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC3gOC2reC3j+C3gOC2muC3iiDgtpTgtrbgtpzgt5og4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC3miDgtrvgtqfgt4/gt4Ag4LaH4LazIOC2h+C2rS4g4LaF4LeD4LeP4La74LeK4Lau4LaaIOC2i+C2reC3iuC3g+C3hCDgtprgt5Lgtrvgt5Pgtrjgt4ogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Lax4LeKIOC2tOC3g+C3lOC3gCwg4LaU4La24Lac4LeaIEdvb2dsZSDgtrTgt5TgtrvgtrHgtrog4LeA4LeT4La4IOC2t+C3j+C3gOC3kuC2reC2uuC3meC2seC3iiDgtpTgtrbgtpzgt5og4Lav4LeU4La74Laa4Lau4Lax4La6IOC2heC2nOC3lOC3heC3lCDgt4Tgt5Dgtrvgt5Pgtrjgtqcg4LaU4La24Lac4LeZ4Lax4LeKIOC2heC3g+C2seC3lCDgtofgtq0uXG5cbiDgtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4La04LeD4LeU4LeAIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2MTI4MTA2Mzk5NzQ1NzU1NjA0Ij4i4LaU4La2IOC2p+C3kOC2tuC3iuC2veC2p+C2uiDgtoXgtpzgt5Tgt4Xgt5Qg4LeE4LeQ4La74LeT4La44LanIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtoXgt4Dgt4Pgt4rgtq7gt48gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrsg4LaH4LatLiDgtoXgt4Dgt4Pgt4rgtq7gt48gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2heC3g+C3j+C2u+C3iuC2ruC2muC3gCDgtovgtq3gt4rgt4Pgt4Qg4Laa4LeS4La74LeT4La44Laa4LeS4Lax4LeKIOC2tOC3g+C3lOC3gCwg4Lan4LeQ4La24LeK4La94Lan4La6IOC2muC2u+C3iuC2uOC3j+C2seC3iuC2rSDgt4Hgt4/gtr3gt48g4La44LeU4La94LeKIOC2reC2reC3iuC3gOC2uuC2pyDgtrHgt5Dgt4Dgtq0g4La04Lat4LeKIOC3gOC2sSDgtoXgtq3gtrsg4LeD4LeS4La64La94LeUIOC2tOC2u+C3kuC3geC3k+C2veC2miDgtq/gtq3gt4rgtq0g4Lax4LeQ4Lat4LeSIOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2MDM1NjUxNDIxNTY4MjY1NjUiPiLgtpTgtrYg4Lav4LeU4La74Laa4Lau4Lax4La6IOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5Pgtrjgtqcg4LeA4LeP4La7IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC2muC2r+C3kyDgt4Dgt5Dgtrvgtq/gt5Mg4La04LeK4oCN4La74La64Lat4LeK4Lax4La64Lax4LeKIOC2nOC3meC2sSDgtq3gt5Lgtrbgt5ouIOC2reC3gOC2reC3iiDgtoXgt4Pgt4/gtrvgt4rgtq7gtpog4La04LeK4oCN4La74La64Lat4LeK4LaxIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2muC3kuC2seC3iiDgtrTgt4Pgt5Tgt4AsIOC2r+C3lOC2u+C2muC2ruC2seC2uiDgtprgtrvgt4rgtrjgt4/gtrHgt4rgtq3gt4Hgt4/gtr3gt4/gt4Dgt5og4La04LeZ4La74Lax4LeS4La44LeS4La64LanIOC2uuC3heC3kiDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4DgtrEg4LaF4Lat4La7IOC3g+C3kuC2uuC2veC3lOC2uCDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4Lav4Lat4LeK4LatIOC2seC3kOC2reC3kiDgt4Dgt5Mg4La64La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI4MDg3MzUxNjQ5MzkzNDM2NSI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC2lOC2tiDgt4Dgt5Dgtrvgtq/gt5Ig4La04LeK4oCN4La74La64Lat4LeK4LaxIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgt4Dgt4/gtrvgtrrgtprgt4og4Lac4LeZ4LaxIOC2h+C2rS4g4Lav4LeQ4Lax4LeKIOC2p+C3kOC2tuC3iuC2veC2p+C2uiDgtprgtrvgt4rgtrjgt4/gtrHgt4rgtq3gt4Hgt4/gtr3gt48g4LeD4LeU4La04LeU4La74LeU4Lav4LeK4LavIOC3gOC3meC2rSDgtrrgt4Xgt5Ig4La04LeS4LeE4LeS4Lan4LeU4LeA4LeT4La4IOC2muC3meC2u+C3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzAyNTUwNDcyMTc2NDkyMjI0NiI+IuC2lOC2tiDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pyDgt4Dgt4/gtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC2muC2r+C3kyDgt4Dgt5Dgtrvgtq/gt5Mg4La04LeK4oCN4La74La64Lat4LeK4Lax4La64Lax4LeKIOC2nOC3meC2sSDgtq3gt5Lgtrbgt5ouIOC2r+C3kOC2seC3iiDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4Laa4La74LeK4La44LeP4Lax4LeK4Lat4LeB4LeP4La94LePIOC2tOC3meC2u+C2seC3kuC2uOC3kuC2uuC2pyDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4DgtrHgt5Qg4La94La24La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYyNTE0ODAzNDMzOTQzODk2NjUiPiLgtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC2muC3kuC2seC3iiDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeP4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iMjYyNjk5OTQ0OTYxMDY5NTkzMCI+IuC2u+C2p+C3j+C3gCDgtoXgtrjgtq3gtprgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fZm9yZ290X3BhdHRlcm4iIG1zZ2lkPSIyNTg4NTIxNTAxMTY2MDMyNzQ3Ij4i4Lac4LeS4Lar4LeU4La44LeaIOC2heC2nOC3lOC3heC3lCDgtoXgtrvgt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjI3NTEzNjg2MDUyODcyODg4MDgiPiLgtrvgtqfgt48g4LaL4Lat4LeK4LeD4LeP4LeEIOC2muC3kuC2u+C3k+C2uOC3iiDgt4Dgt5Dgtqngt5LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTMxODE2MjU2MTAwNzA3Nzg0Ij4i4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC2pywg4LaU4La24Lac4LeaIEdvb2dsZSDgtpzgt5Lgtqvgt5Tgtrgg4LeD4La44LacIOC2tOC3lOC2u+C2seC2uiDgt4DgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9Ijg4NDY4ODE0MjQxMDY0ODQ0NDciPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4Lax4LeP4La44La6ICjgtoot4Lat4LeQ4La04LeR4La9KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI1OTU4MDI4MzgzOTU0NzM4NTI4Ij4i4La44LeU4La74La04Lav4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjcxMzA4OTM2OTQ3OTU3ODYzMDAiPiLgtrTgt5TgtrvgtrHgtrog4LeA4LeZ4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjEzNjQwNTE0NzMzNDc0ODU5MDgiPiLgt4Dgtr3gtoLgtpzgt5Qg4Lax4Lec4LeA4LaxIOC2tOC2u+C3kuC3geC3k+C2veC2miDgtrHgt4/gtrjgtrrgtprgt4og4LeE4LedIOC2uOC3lOC2u+C2tOC2r+C2uuC2muC3ii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSIxNjk2OTI0NzYzNjkwMzc5MDczIj4i4LaU4La24Lac4LeaIOC2tOC2u+C3kuC3geC3k+C2veC2miDgtrHgt4/gtrjgtrog4LeE4LedIOC2uOC3lOC2u+C2tOC2r+C2uiDgtoXgtrjgtq3gtprgtq8/XG4gIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iIOC3gOC3meC2rSDgtrrgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSI3MTE0NjI3MzUxMjg2OTMzODY3Ij4i4La04La74LeS4Laa4LeK4LeC4LePIOC2muC2u+C2uOC3kuC2seC3ii4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdW5sb2NrX2xhYmVsIiBtc2dpZD0iNzM3NDQwNDgzMjIwNjY3MDU0Ij4i4LaF4Laf4LeU4La9IOC2heC2u+C3kuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc291bmRfb25fbGFiZWwiIG1zZ2lkPSI5MDY4ODc3NTc2NTEzNDI1OTcwIj4i4LeB4La24LeK4Lav4La6IOC3g+C2muC3iuKAjeC2u+C3k+C2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NvdW5kX29mZl9sYWJlbCIgbXNnaWQ9Ijk5NjgyMjgyNTE1NDMxOTAyNiI+IuC3geC3iuKAjeC2u+C3gOC3iuKAjeC2uiDgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9zdGFydCIgbXNnaWQ9IjM5NDEwNDU1MDI5MzMxNDI4NDciPiLgtrvgtqfgt4/gt4Ag4LaF4La74La54LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYWNjZXNzX3BhdHRlcm5fY2xlYXJlZCIgbXNnaWQ9IjU1ODM0Nzk3MjEwMDE2Mzk1NzkiPiLgtrvgtqfgt4/gt4Ag4LeE4LeS4LeD4LeKIOC2muC2u+C2sSDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2FjY2Vzc19wYXR0ZXJuX2NlbGxfYWRkZWQiIG1zZ2lkPSI2NzU2MDMxMjA4MzU5MjkyNDg3Ij4i4Laa4Lec4Lan4LeU4LeA4Laa4LeKIOC2keC2muC2reC3lCDgtprgtrvgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9kZXRlY3RlZCIgbXNnaWQ9IjQ5ODg3MzA4OTU1NTQwNTcwNTgiPiLgtrvgtqfgt4/gt4Ag4LeD4La44LeK4La04LeW4La74LeK4Lar4La64LeSIjwvc3RyaW5nPgorICAgIDwhLS0gU3RyaW5nLmZvcm1hdCBmYWlsZWQgZm9yIHRyYW5zbGF0aW9uIC0tPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQgKDU2Nzg2MjQ2MjQ2ODE0MDAxOTEpIC0tPgorICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2FkZF93aWRnZXQiIG1zZ2lkPSI4MjczMjc3MDU4NzI0OTI0NjU0Ij4i4LeA4LeS4Lai4Lan4La6IOC2keC2muC2reC3lCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZW1wdHlfc2xvdCIgbXNnaWQ9IjEyODE1MDU3MDMzMDc5MzA3NTciPiLgt4Tgt5Lgt4Pgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2V4cGFuZGVkIiBtc2dpZD0iMjI3ODEwNjAyMjMxMTE3MDI5OSI+IuC2heC2nOC3lOC3heC3lCDgtoXgtrvgt5LgtrEg4La04LeK4oCN4La74Lav4Lea4LeB4La6IOC3gOC3kuC2r+C3hOC3jyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9jb2xsYXBzZWQiIG1zZ2lkPSI2MzY2OTkyMDY2OTM2MDc2Mzk2Ij4i4LaF4Lac4LeU4LeF4LeUIOC2heC2u+C3kuC2sSDgtrTgt4rigI3gtrvgtq/gt5rgt4Hgtrog4LeE4LeQ4Laa4LeS4La94LeTIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldCIgbXNnaWQ9IjY1MjcxMzEwMzk3NDE4MDgyNDAiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDgt4Dgt5LgtqLgtqfgt4ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91c2VyX3NlbGVjdG9yIiBtc2dpZD0iMTIyNjc5ODM3MDkxMzY5ODg5NiI+IuC2tOC2u+C3kuC3geC3k+C2veC2miDgtq3gt53gtrvgtrHgt4rgtrHgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3N0YXR1cyIgbXNnaWQ9IjgwMDgyNjQ2MDM5MzU5MzA2MTEiPiLgtq3gtq3gt4rgt4DgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2NhbWVyYSIgbXNnaWQ9Ijg5MDQyMzExOTQxODExMTQ2MDMiPiLgtprgt5Dgtrjgtrvgt4/gt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlnYXVyZF9hY2Nlc3NpYmlsaXR5X21lZGlhX2NvbnRyb2xzIiBtc2dpZD0iMjYyMjA5NjU0MjkyMTYxODA2Ij4i4La44LeP4Law4LeK4oCN4La6IOC2tOC3j+C2veC2miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfc3RhcnQiIG1zZ2lkPSI4NzM2ODUzNjE1NTg4ODI4MTk3Ij4i4LeA4LeS4Lai4Lan4La6IOC2seC3kOC3gOC2rSDgtoXgtrHgt5TgtrTgt5Lgt4Xgt5Lgt4Dgt5ngt4Xgtqcg4LeD4LeQ4Laa4LeD4LeS4La4IOC2h+C2u+C2ueC3lOC2q+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiLgt4Dgt5LgtqLgtqfgt4og4Lax4LeQ4LeA4LatIOC2heC2seC3lOC2tOC3kuC3heC3kuC3gOC3meC2veC2pyDgt4Pgt5Dgtprgt4Pgt5Pgtrgg4LaF4LeA4LeD4LeP4Lax4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4LeA4LeS4Lai4Lan4La6IOC2uOC3kOC2muC3kyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4i4LaF4Lac4LeU4LeF4LeUIOC2seC3nOC2r+C3kOC2uOC3liDgtrTgt4rigI3gtrvgtq/gt5rgt4Hgtrog4La04LeU4LeF4LeU4La94LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiLgt4Pgtrvgt4rgtrTgtqsg4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fdW5sb2NrIiBtc2dpZD0iMTQ5MDg0MDcwNjA3NTI0NjYxMiI+IuC2u+C2p+C3jyDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZmFjZV91bmxvY2siIG1zZ2lkPSI0ODE3MjgyNTQzMzUxNzE4NTM1Ij4i4La44LeU4LeE4LeU4LarIOC2t+C3j+C3gOC3kuC2reC2uuC3meC2seC3iiDgtoXgtp/gt5Tgt4Xgt5Qg4LeE4LeQ4La74LeT4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiJQSU4g4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLgtrjgt5TgtrvgtrTgtq8g4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fYXJlYSIgbXNnaWQ9Ijc2Nzk4OTEzMjQ1MDk1OTc5MDQiPiLgtrvgtqfgt48g4La04LeK4oCN4La74Lav4Lea4LeB4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfYXJlYSIgbXNnaWQ9IjY3MzYwNjQ0OTQwMTk5Nzk1NDQiPiLgt4Pgtrvgt4rgtrTgtqsg4La04LeK4oCN4La74Lav4Lea4LeB4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfY2hhcmFjdGVyIiBtc2dpZD0iNzMzNjQ3MDUzNTM4NTAwOTUyMyI+IuC2heC2muC3iuC3guC2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW51bGFyaXR5X2xhYmVsX3dvcmQiIG1zZ2lkPSI3MDc1NTcwMzI4Mzc0OTE4NjYwIj4i4LeA4Lag4Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfbGluayIgbXNnaWQ9IjU4MTU1MDg4ODA3ODI0ODgyNjciPiLgt4Pgtrbgt5DgtrPgt5LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF9saW5lIiBtc2dpZD0iNTc2NDI2NzIzNTAyNjEyMDg4OCI+IuC2u+C3muC2m+C3j+C3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfYW1wbSIgbXNnaWQ9IjQ1ODQzMzgwODM1MjkzNTU5ODIiPiI8eGxpZmY6ZyBpZD0iSE9VUiI+JS1sPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJBTVBNIj4lUDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX2NhcF9hbXBtIiBtc2dpZD0iMjA4MzQ2NTk5Mjk0MDQ0NDM2NiI+Ijx4bGlmZjpnIGlkPSJIT1VSIj4lLWw8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IkFNUE0iPiVwPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X2ZhaWxlZCIgbXNnaWQ9IjU0MTAyNzAzMjkxMTQyMTIwNDEiPiLgtprgtrvgt4rgtrjgt4/gtrHgt4rgtq0g4LeB4LeP4La94LePIOC2tOC2u+C3k+C2muC3iuC3guC2q+C2uiDgtoXgt4Pgt4/gtrvgt4rgtq7gtprgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub3Rfc3lzdGVtIiBtc2dpZD0iNDQzNTIwMTY1Njc2NzI3NjcyMyI+IkZBQ1RPUllfVEVTVCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4AgL3N5c3RlbS9hcHAg4LeE4LeSIOC3g+C3iuC2ruC3j+C2tOC3kuC2rSDgtrTgt5Dgtprgt5rgtqIg4LeD4Laz4LeE4LePIOC2tOC2uOC2q+C2muC3iiDgt4Pgt4Tgtrog4Lav4Laa4LeK4LeA4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X25vX2FjdGlvbiIgbXNnaWQ9Ijg3Mjk5MTg3NDc5OTk5ODU2MSI+IkZBQ1RPUllfVEVTVCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4Ag4La94La24LeP4Lav4LeZ4LaxIOC2tOC3kOC2muC3muC2ouC2uuC2muC3iiDgt4Pgt5zgtrrgt4/gtpzgtq0g4Lax4Lec4LeE4LeQ4Laa4LeSIOC3gOC3kuC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9yZWJvb3QiIG1zZ2lkPSI2MzIwMTY4MjAzMDUwNzkxNjQzIj4i4La04LeU4Lax4La74LeP4La74La44LeK4La3IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjE5ODc0ODM5Nzc4MzQ2MDM4NzIiPiJcIjx4bGlmZjpnIGlkPSJUSVRMRSI+JXM8L3hsaWZmOmc+XCIg4LeE4LeSIOC2h+C2reC3kiDgtrTgt5Lgtqfgt5Tgt4Ag4Laa4LeS4La64Lax4LeK4Lax4LeaOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZV9kZWZhdWx0IiBtc2dpZD0iNjk2MTkwMzIxMzcyOTY2NzU3MyI+IuC2ouC3j+C3gOC3j+C3g+C3iuC2muC3iuKAjeC2u+C3kuC2tOC3iuC2p+C3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkX3RpdGxlIiBtc2dpZD0iMjYxOTM3NjU1NTUyNTExNjU5MyI+IuC3g+C2guC2oOC2veC2seC2uiDgtq3gt4Tgt4Dgt5Tgtrvgt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWRfcG9zaXRpdmVfYnV0dG9uIiBtc2dpZD0iMzExMjc1MjAxMDYwMDQ4NDEzMCI+IuC2uOC3meC2uCDgtrTgt5Lgtqfgt5Tgt4Dgt5ngtrHgt4og4LaJ4LeA4Lat4LeKIOC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkX25lZ2F0aXZlX2J1dHRvbiIgbXNnaWQ9IjU2MTQ4NjEyOTMwMjYwOTk3MTUiPiLgtrjgt5ngtrgg4La04LeS4Lan4LeU4LeA4LeZ4LeE4LeSIOC2ieC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkIiBtc2dpZD0iMzQ2ODgxNjM1NzA5NTM3ODU5MCI+Ijx4bGlmZjpnIGlkPSJNRVNTQUdFIj4lczwveGxpZmY6Zz5cblxu4LaU4La24LanIOC2uOC3meC2uCDgtrTgt5Lgtqfgt5Tgt4Dgt5ngtrHgt4og4LeD4LaC4Lag4La94Lax4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtoXgt4Dgt4Hgt4rigI3gtrog4La24LeA4LanIOC2lOC2tuC2pyDgt4Dgt5Lgt4Hgt4rgt4Dgt4/gt4Pgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9sYWJlbCIgbXNnaWQ9IjY4NjAyNjE3NTg2NjU4MjUwNjkiPiLgtq3gt4Tgt4Dgt5Tgtrvgt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG91YmxlX3RhcF90b2FzdCIgbXNnaWQ9IjQ1OTUwNDY1MTU0MDAyNjg4ODEiPiLgtovgtrTgtq/gt5ngt4M6IOC3gOC3kuC3geC3j+C2veC2seC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeEIOC2muC3lOC2qeC3jyDgtprgt5Lgtrvgt5Pgtrjgtqcg4Lav4LeZ4LeA4La74Laa4LeKIOC2reC2p+C3iuC2p+C3lCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfdGhpc19mb3JtIiBtc2dpZD0iNDYxNjc1ODg0MTE1NzgxNjY3NiI+IuC3g+C3iuC3gOC2uuC2guC2muC3iuKAjeC2u+C3kuC2uiDgtrTgt5Lgtrvgt4Dgt5TgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXR1cF9hdXRvZmlsbCIgbXNnaWQ9IjcxMDM0OTUwNzAxODA1OTA4MTQiPiLgt4Pgt4rgt4DgtrrgtoLgtprgt4rigI3gtrvgt5Lgtrog4La04LeS4La74LeA4LeU4La4IOC3g+C2muC3g+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3NfbmFtZV9zZXBhcmF0b3IiIG1zZ2lkPSI2MzUwMTQ1MTU0Nzc5NzA2NzcyIj4iICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3Nfc3VtbWFyeV9uYW1lX2Zvcm1hdCIgbXNnaWQ9IjMyNjgwNDEwNTQ4OTkyMTQ5NDUiPiIkMSQyJDMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX3N1bW1hcnlfc2VwYXJhdG9yIiBtc2dpZD0iNzQ4MzMwNzg5MzE3MDMyNDEyOSI+IiwgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYWRkcmVzc19zdW1tYXJ5X2Zvcm1hdCIgbXNnaWQ9IjQ4NzQ0NTk0NTU3ODY4MjczNDQiPiIkMSQyJDMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wcm92aW5jZSIgbXNnaWQ9IjIyMzE4MDY1NTM4NjM0MjIzMDAiPiLgtrTgt4Xgt4/gtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wb3N0YWxfY29kZSIgbXNnaWQ9IjQ2OTY0MzA0MDc2ODkzNzcxMDgiPiLgtq3gt5DgtrTgt5Dgtr3gt4og4Laa4Lea4Lat4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfc3RhdGUiIG1zZ2lkPSI2OTg4ODk0MTk1NTIwMDQ0NjEzIj4i4Lai4Lax4La04Lav4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfemlwX2NvZGUiIG1zZ2lkPSI4Njk3NTQ0NTkyNjI3MzIyOTQ2Ij4iWklQIOC2muC3muC2reC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2NvdW50eSIgbXNnaWQ9IjIzNzA3Mzc3MTAyMDM2Mjg5MSI+IuC2tOC3iuKAjeC2u+C3j+C2seC3iuC2reC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2lzbGFuZCIgbXNnaWQ9IjQwMjAxMDA4NzU5ODQ2NjcwMjUiPiLgtq/gt5bgtrTgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9kaXN0cmljdCIgbXNnaWQ9Ijg0MDA3MzUwNzMzOTIyNjc2NzIiPiLgtq/gt5Lgt4Pgt4rgtq3gt4rigI3gtrvgt5Lgtprgt4rgtprgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9kZXBhcnRtZW50IiBtc2dpZD0iNTM0MzI3OTQ2MjU2NDQ1MzMwOSI+IuC2r+C3meC2tOC3j+C2u+C3iuC2reC2uOC3muC2seC3iuC2reC3lOC3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3ByZWZlY3R1cmUiIG1zZ2lkPSIyMDI4NDk5NDg1MDY1ODAwNDE5Ij4i4La04LeK4oCN4La74LeP4Lax4LeK4Lat4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcGFyaXNoIiBtc2dpZD0iODIwMjIwNjEwNTQ2ODgyMDA1NyI+IuC2muC3neC2u+C2veC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FyZWEiIG1zZ2lkPSIzNTQ3NDA5MDUwODg5OTUyNDIzIj4i4La04LeK4oCN4La74Lav4Lea4LeB4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZW1pcmF0ZSIgbXNnaWQ9IjI4OTM4ODA5Nzg4MzU2OTg4MTgiPiLgtpHgtrjgt5Lgtrvgt5rgtqfgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iMzc3NTI2NTc3NTQwNTEwNjk4MyI+IuC2lOC2tuC2nOC3miDgt4Dgt5ngtrbgt4og4La04LeS4Lan4LeU4LeD4Lax4LeKIOC3g+C3hCDgtongtq3gt5Lgt4Tgt4/gt4Pgtrog4Laa4LeS4La64LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSI4NDYyMzc4MjI2NjAwNDM5NjU4Ij4i4La24LeK4oCN4La74LeA4LeK4LeD4La74La6IOC2seC3kOC2u+C2ueC3liDgt4Pgt5Lgtrrgtr3gt5QgVVJMIOC3g+C3hCDgt4Pgt5Lgtrrgtr3gt5Qg4La24LeK4oCN4La74LeA4LeK4LeD4La7IOC2tOC3kuC2p+C3lOC3g+C2seC3iiDgt4Dgtr0g4LaJ4Lat4LeS4LeE4LeP4LeD4La6IOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4Lan4LeE4LaxOiDgt4Dgt5ngtrbgt4og4La24LeK4oCN4La74LeA4LeK4LeD4La7IOC2heC3gOC3geC3iuKAjeC2uuC2reC3jyDgt4Pgtrjgtpwg4Lat4LeZ4LeA4LeZ4Lax4LeSIOC2tOC3j+C2u+C3iuC3geC3gCDgtrbgt4rigI3gtrvgt4Dgt4rgt4Pgtrsg4LeA4La94LanIOC3hOC3nSDgt4Dgt5ngtrHgtq3gt4og4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4La24La9IOC2seC3nOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9IjM3MTQ3ODUxNjUyNzMzMTQ0OTAiPiLgt4Dgt5ngtrbgt4og4La04LeS4Lan4LeU4LeD4Lax4LeKIOC3g+C3hCDgtongtq3gt5Lgt4Tgt4/gt4Pgtrrgtqcg4La94LeS4LeA4LeS4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2ODI1NTI3NDY5MTQ1NzYwOTIyIj4i4LaU4La24Lac4LeaIOC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgtpzgtrbgtqngt48g4Laa4La7IOC2h+C2reC3kiDgtrbgt4rigI3gtrvgt4Dgt4rgt4Pgtrvgtrrgt5og4LaJ4Lat4LeS4LeE4LeP4LeD4La6IOC3hOC3nSDgtrTgt5Lgtqfgt5Tgt4PgtrHgt4og4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La24LeK4oCN4La74LeA4LeK4LeD4La7IOC2r+C2reC3iuC2rSDgtrjgt5Dgtprgt5Pgtrjgtqcg4LeE4LedIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La44LeZ4La44Laf4LeS4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiDgt4Pgtqfgt4TgtrE6IOC3gOC3meC2tuC3iiDgtpzgt4Dgt5rgt4Lgtqsg4LeE4LeQ4Laa4LeS4La64LeP4LeAIOC3g+C3hOC3kuC2rSDgtq3gt5ngt4Dgt5ngtrHgt5Ig4La04LeP4La74LeK4LeB4LeAIOC2tuC3iuKAjeC2u+C3gOC3iuC3g+C2uyDgt4Tgt50g4LeA4LeZ4Lax4Lat4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr3gt5LgtrHgt4og4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uuC2pyDgtrbgtr0g4Lax4Lec4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0OTczODk1MzEwMTQxODU1MDkiPiLgtpTgtrbgtpzgt5og4Lav4LeU4La74Laa4Lau4Lax4La64LeaIOC2huC2oOC2uuC2seC2uiDgtprgtrvgtrEg4La94LavIOC2tuC3iuKAjeC2u+C3gOC3iuC3g+C2uyDgtongtq3gt5Lgt4Tgt4/gt4Pgtrog4LeE4LedIOC2tOC3kuC2p+C3lOC3g+C2sSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtpTgtrbgtpzgt5og4La24LeK4oCN4La74LeA4LeK4LeD4La7IOC2r+C2reC3iuC2rSDgtrjgt5Dgtprgt5Pgtrjgtqcg4LeE4LedIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrjgt5ngtrog4La34LeP4LeA4LeS4LatIOC2muC2u+C2uuC3ki4g4LeD4Lan4LeE4LaxOiDgt4Dgt5ngtrbgt4og4La24LeK4oCN4La74LeA4LeK4LeD4La7IOC2heC3gOC3geC3iuKAjeC2uuC2reC3j+C3gOC2uiDgt4Pgtrjgtpwg4Lat4LeZ4LeA4LeZ4Lax4LeSIOC2tOC3j+C2u+C3iuC3geC3gCDgtrbgt4rigI3gtrvgt4Dgt4rgt4Pgtrsg4LeE4LedIOC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4LeS4LeD4LeS4Lax4LeKIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4La24La9IOC2nOC3kOC2seC3iuC3gOC3kuC2uiDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbGFybSIgbXNnaWQ9IjEzNzkyOTQ1NTYzNjIwOTE4MTQiPiLgt4Pgt5PgtrHgt5Tgt4Dgtprgt4og4LeD4LeQ4Laa4LeD4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QWxhcm0iIG1zZ2lkPSIzMTYzOTIwMzkxNTc0NzM4NDgiPiLgt4Pgt4rgtq7gt4/gtrTgtrHgtrog4Laa4La74LaxIOC2veC2ryDgt4Pgt5PgtrHgt5Qg4LaU4La74La94Led4LeD4LeUIOC2uuC3meC2r+C3lOC2uOC3miDgt4Pgt5PgtrHgt5Tgt4Ag4LeD4Laa4LeD4LeKIOC2muC2u+C2seC3iuC2seC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4LaH4Lat4LeQ4La44LeKIOC3g+C3k+C2seC3lCDgtpTgtrvgtr3gt53gt4Pgt5Qg4La64LeZ4Lav4LeU4La44LeKIOC2uOC3meC2uCDgtoXgtoLgtpzgtrog4Laa4LeK4oCN4La74LeS4La64LeP4LeA4LanIOC2seC2guC3gOC3jyDgtrHgt5zgtq3gt5Lgtrbgt5Pgtrjgtqcg4LaJ4LapIOC2reC3kuC2tuC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FkZFZvaWNlbWFpbCIgbXNnaWQ9IjU1MjU2NjAwMjYwOTA5NTkwNDQiPiLgt4Tgtqwg4Lat4LeQ4La04LeR4La9IOC2keC2muC3iiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hZGRWb2ljZW1haWwiIG1zZ2lkPSI2NjA0NTA4NjUxNDI4MjUyNDM3Ij4i4LaU4La24Lac4LeaIOC3hOC2rCDgtq3gt5DgtrTgt5Hgtr3gt5og4LaR4LaxIOC2veC3kuC2tOC3kiDgt4Dgt5ngtq0g4LaR4LaxIOC2tOC2q+C3kuC3gOC3kuC2qSDgtpHgtprgtq3gt5Qg4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iNTk2MjIyNDE1ODk1NTI3MzkzMiI+IuC2tuC3iuKAjeC2u+C3gOC3iuC3g+C2u+C2uuC3miDgtrfgt5Yg4LaF4LeA4LeD4La7IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUdlb2xvY2F0aW9uUGVybWlzc2lvbnMiIG1zZ2lkPSIxMDgzNzQzMjM0NTIyNjM4NzQ3Ij4i4La24LeK4oCN4La74LeA4LeU4LeD4La74La64LeaIOC2t+C3liDgt4Pgt4rgtq7gt4/gtrHgt5Pgtrog4LaF4LeA4LeD4La7IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2heC2t+C3kuC2uOC2rSDgt4Dgt5ngtrbgt4og4LaF4Lap4LeA4LeSIOC3gOC2veC2pyDgt4Pgt4rgtq7gt4/gtrHgt5Pgtrog4Lat4Lec4La74Lat4LeU4La74LeUIOC2uuC3kOC3gOC3k+C2uOC2pyDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC2uOC3meC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeZ4La74LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGFja2FnZVZlcmlmaWNhdGlvbkFnZW50IiBtc2dpZD0iNTU2ODEzOTEwMDY0NTgyOTExNyI+IuC2tOC3kOC2muC3muC2oiDgt4Pgtq3gt4rigI3gtrrgt4/gtrTgtrHgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGFja2FnZVZlcmlmaWNhdGlvbkFnZW50IiBtc2dpZD0iODQzNzU5MDE5MDk5MDg0MzM4MSI+IuC3g+C3iuC2ruC3j+C2tOC3kuC2rSDgtprgt5zgtqcg4LaH4Lat4LeSIOC2tOC3kOC2muC3muC2ouC2uuC2muC3iiDgt4Pgtq3gt4rigI3gtrrgt4/gtrTgtrHgtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kUGFja2FnZVZlcmlmaWVyIiBtc2dpZD0iNDE4Nzc4Njc5MzM2MDMyNjY1NCI+IuC2tOC3kOC2muC3muC2oiDgt4Pgtq3gt4rigI3gtrrgt4/gtrTgtprgtrrgtprgt4og4LeA4LeZ4LatIOC2tuC2s+C3kuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQYWNrYWdlVmVyaWZpZXIiIG1zZ2lkPSIzMTgwNzQxNzczMjMzODYyMTI2Ij4i4La04LeQ4Laa4Lea4LaiIOC3g+C2reC3iuKAjeC2uuC3j+C2tOC2miDgtongtr3gt4rgtr3gt5Pgtrjgt4og4LeA4La94LanIOC2r+C2u+C2seC3iuC2seC3j+C2pyDgtongtqkg4La94La24LePIOC2r+C3mi4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgt4PgtrPgt4Tgt48g4Laa4LeS4LeD4LeS4LeD4Lea4Lat4LeKIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXJpYWxQb3J0IiBtc2dpZD0iNTQ2MDgzMzI3NjU0NjMxMDc2Ij4i4LeB4LeK4oCN4La74Lea4Lar4LeS4Lac4LatIOC2tOC3nOC2pyDgtrTgt4rigI3gtrvgt4Dgt5rgt4Eg4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VyaWFsUG9ydCIgbXNnaWQ9IjI5OTE2Mzk5ODUyMjQ1OTgxOTMiPiJTZXJpYWxNYW5hZ2VyIEFQSSDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4LaF4Lax4LeU4Laa4LeK4oCN4La74La4IOC2reC3nOC2pyDgt4Dgt5ngtq0g4La04LeK4oCN4La74LeA4Lea4LeBIOC3gOC3k+C2uOC2pyDgtrvgtrPgt4DgtrHgtrrgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0NvbnRlbnRQcm92aWRlcnNFeHRlcm5hbGx5IiBtc2dpZD0iNTA3Nzc3NDI5Nzk0MzQwOTI4NSI+IuC2tuC3j+C3hOC3kuC2uyDgtoXgtrHgt4rgtq3gtrvgt4rgtpzgtq0g4LeD4LeQ4La04La64LeU4La44LeK4Laa4La74LeU4LeA4Lax4LeKIOC3gOC3meC2rSDgtrTgt4rigI3gtrvgt4Dgt5rgt4HgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NDb250ZW50UHJvdmlkZXJzRXh0ZXJuYWxseSIgbXNnaWQ9IjQ1NDQzNDY0ODY2OTc4NTM2ODUiPiLgtoXgtrHgt4rgtq3gtrvgt4rgtpzgtq0g4LeD4La04La64Lax4LeK4Lax4Lax4LeK4LanIOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgt4Dgt5Pgtrjgtqcg4Lav4La74Lax4LeK4Lax4Lax4LeK4LanIOC3guC3meC2veC3iiDgtpHgtprgt5og4LeD4LeS4LanIOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgt4Dgt5Pgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgt4PgtrPgt4Tgt48g4Laa4LeS4LeD4LeS4LeD4Lea4Lat4LeKIOC2heC2r+C3j+C3hSDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91cGRhdGVMb2NrIiBtc2dpZD0iMzUyNzU1ODM2NjYxNjY4MDg4OSI+IuC3g+C3iuC3gOC2uuC2guC2muC3iuKAjeC2u+C3k+C2uiDgtovgtrTgt4/gtoLgtpwg4La64LeA4Lat4LeK4Laa4LeP4La9IOC2muC3kuC2u+C3k+C2uOC3iiDgtrTgt4Pgt5Tgtrbgtqcg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXBkYXRlTG9jayIgbXNnaWQ9IjE2NTU2MjU4MzIxNjY3Nzg0OTIiPiLgtovgtrTgt4/gtoLgtpzgtrog4LaL4Lat4LeK4LeB4LeK4oCN4La74Lea4Lar4LeS4Laa4La74Lar4La64LanIOC2heC2seC3iuC2reC2u+C3iuC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C3kyDgtrHgt5zgt4DgtrEg4La64LeF4LeSIOC2h+C2u+C2ueC3k+C2uOC2muC3iiDgt4PgtrPgt4Tgt48g4LeD4LeU4Lav4LeU4LeD4LeUIOC3gOC3meC2veC3j+C3gCDgtprgt5Tgtrjgtprgt4rgtq8g4La64Lax4LeK4LaxIOC2nOC3kOC2sSDgtrTgtq/gt4rgtrDgtq3gt5Lgtrrgtqcg4Lat4Lec4La74Lat4LeU4La74LeUIOC2veC2tuC3j+C2r+C3k+C2uOC2pyDgtq/gtrvgtrHgt4rgtrHgt4/gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX21lc3NhZ2UiIG1zZ2lkPSI3NjczNDQ2ODcxMzkxOTU3OTAiPiLgtrbgt4rigI3gtrvgt4Dgt4rgt4Pgtrvgtrrgtqcg4La44LeZ4La4IOC2uOC3lOC2u+C2tOC2r+C2uiDgtrjgtq3gtpog4Lat4La24LePIOC2nOC3kOC2seC3k+C2uOC2pyDgtpTgtrbgtqcg4LaF4LeA4LeB4LeK4oCN4La64LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfbm90bm93IiBtc2dpZD0iNjM4OTY3NTMxNjcwNjY5OTc1OCI+IuC2r+C3kOC2seC3iiDgtrHgt5zgt4Dgt5oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX3JlbWVtYmVyIiBtc2dpZD0iNjQ5MTg3OTY3ODk5Njc0OTQ2NiI+IuC2uOC2reC2miDgtq3gtrbgt48g4Lac4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9uZXZlciIgbXNnaWQ9IjgyNzQzMzAyOTY3ODU4NTUxMDUiPiLgtprgt4Dgtq/gt4/gt4Dgtq3gt4og4Lax4Lec4LeA4LeaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3Blbl9wZXJtaXNzaW9uX2RlbnkiIG1zZ2lkPSI3Mzc0MDM2NzA4MzE2NjI5ODAwIj4i4La44LeZ4La4IOC2tOC3kuC2p+C3lOC3gCDgt4Dgt5Lgt4Dgt5jgtq0g4Laa4LeS4La74LeT4La44LanIOC2lOC2tuC2pyDgtoXgt4Dgt4Pgtrsg4Lax4LeQ4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRleHRfY29waWVkIiBtc2dpZD0iNDk4NTcyOTUyNDY3MDEzMTM4NSI+IuC2tOC3meC3hSDgtrTgt4Pgt5Tgtrvgt5Qg4La04LeU4LeA4La74LeU4LeA4LanIOC2tOC3kuC2p+C2tOC2reC3iiDgtprgtrvgtrEg4La94Lav4LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vcmVfaXRlbV9sYWJlbCIgbXNnaWQ9IjQ2NTA5MTg5MjMwODMzMjA0OTUiPiLgtq3gt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVwZW5kX3Nob3J0Y3V0X2xhYmVsIiBtc2dpZD0iMjU3MjIxNDQ2MTY3NjAxNTY0MiI+IuC2uOC3meC2seC3lOC3gCsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NwYWNlX3Nob3J0Y3V0X2xhYmVsIiBtc2dpZD0iMjQxMDMyODYzOTI3MjE2MjUzNyI+InNwYWNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9lbnRlcl9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI3NDMzNjI3ODUxMTEzMDk2NjgiPiLgtofgtq3gt5Tgtr3gt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGVfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIzNjU4MTc4MDA3MjAyNzQ4MTY0Ij4i4La44Laa4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoX2dvIiBtc2dpZD0iODI5ODAxNjY2OTgyMjE0MTcxOSI+IuC3g+C3meC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fc2VhcmNoIiBtc2dpZD0iNjc0OTgyNjYzOTA5ODUxMjEyMCI+IuC3g+C3meC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fcXVlcnkiIG1zZ2lkPSI1OTExNzc4NTkzMTI1MzU1MTI0Ij4i4LeD4LeZ4LeA4LeU4La44LeKIOC3gOC3kuC2uOC3g+C3lOC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fY2xlYXIiIG1zZ2lkPSIxMzMwMjgxOTkwOTUxODMzMDMzIj4i4LeA4LeS4La44LeD4LeU4La4IOC3hOC3kuC3g+C3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX3N1Ym1pdCIgbXNnaWQ9IjI2ODg0NTAxMzMyOTc5ODM1NDIiPiLgt4Dgt5Lgtrjgt4Pgt5Tgtrgg4La64Lec4La44LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fdm9pY2UiIG1zZ2lkPSIyNDUzMjAzNjk1Njc0OTk0NDQwIj4i4LeE4LasIOC3g+C3meC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSI3NDYwNjk0MDcwMzA5NzMwMTQ5Ij4i4LeD4LeK4La04La74LeK4LeBIOC2muC3kuC2u+C3k+C2uOC3meC2seC3iiDgtpzgt4Dgt5rgt4Lgtqvgtrog4LeD4La24La9IOC2muC2u+C2seC3iuC2sSDgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ19tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NjU1ODg3NTM5MDg5OTEwNTc3Ij4i4LeD4LeK4La04La74LeK4LeB4La6IOC3gOC3meC2reC3kuC2seC3iiDgtpzgt4Dgt5rgt4Lgtqvgtrog4LeD4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyA8eGxpZmY6ZyBpZD0iQUNDRVNTSUJJTElUWV9TRVJWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+IOC2pyDgtoXgt4Dgt4Hgt4rigI3gtrrgtrouIOC3g+C3iuC2tOC2u+C3iuC3geC2uiDgt4Dgt5ngtq3gt5LgtrHgt4og4Lac4LeA4Lea4LeC4Lar4La6IOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgt4Dgt5LgtqcsIOC2lOC2tuC2nOC3miDgtofgtp/gt5Lgtr3gt5Lgt4Dgtr3gtqcg4La04LeE4LeFIOC3gOC3kuC3g+C3iuC2reC2uyDgtofgt4Pgt5Lgtrog4LeE4LedIOC2tuC3kOC2veC3kuC2uiDgt4Tgt5Dgtpog4LeE4LedIOC2p+C3kOC2tuC3iuC2veC2p+C2uiDgt4Pgtrjgtpwg4LaF4Lax4LeK4Lat4La74LeKIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C3kyDgt4Dgt5Pgtrjgtqcg4LaJ4LaC4Lac4LeS4Lat4LeSIOC3g+C3kuC2r+C3lCDgtprgt4Ug4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI3MDgxOTk2NzI4NTIzNzMxOTUiPiLgt4Pgt4rgtrTgtrvgt4rgt4Hgtrog4LeA4LeZ4Lat4LeS4Lax4LeKIOC2nOC3gOC3muC3guC2q+C2uiDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4Laa4LeS4La74LeT4La44LanIDx4bGlmZjpnIGlkPSJBQ0NFU1NJQklMSVRZX1NFUlZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4g4LanIOC2heC3gOC3geC3iuKAjeC2uuC2uuC3ki4g4LeD4LeK4La04La74LeK4LeB4La6IOC3gOC3meC2reC3kuC2seC3iiDgtpzgt4Dgt5rgt4Lgtqvgtrog4LeD4Laa4LeK4oCN4La74LeS4La6IOC3gOC3kuC2pywg4LaU4La24Lac4LeaIOC2h+C2n+C3kuC2veC3kuC3gOC2veC2pyDgtrTgt4Tgt4Ug4LeA4LeS4LeD4LeK4Lat4La7IOC2h+C3g+C3kuC2uiDgt4Tgt50g4La24LeQ4La94LeS4La6IOC3hOC3kOC2miDgt4Tgt50g4Lav4LeU4La74Laa4Lau4Lax4La6IOC3g+C2uOC2nCDgtoXgtrHgt4rgtq3gtrvgt4og4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74LeTIOC3gOC3k+C2uOC2pyDgtongtoLgtpzgt5Lgtq3gt5Ig4LeD4LeS4Lav4LeUIOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib25lTW9udGhEdXJhdGlvblBhc3QiIG1zZ2lkPSI3Mzk2Mzg0NTA4OTUzNzc5OTI1Ij4i4La44LeP4LeDIDEg4Laa4LanIOC2tOC3meC2uyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJlZm9yZU9uZU1vbnRoRHVyYXRpb25QYXN0IiBtc2dpZD0iOTA5MTM0NTQ2ODM2NDk5ODI2Ij4i4La44LeP4LeDIDEg4Laa4LanIOC2tOC3meC2uyI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX3NlY29uZHNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDg2OTg3MDA1NjU0Nzg5NjAxMSI+IuC2reC2reC3iuC2tOC2uyAxIOC2muC2pyDgtrTgt5ngtrsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM5MDM3MDY4MDQzNDk1NTYzNzkiPiLgtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4LanIOC2tOC3meC2uyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX21pbnV0ZXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzMwNjc4NzQzMzA4ODgxMDE5MSI+IuC2uOC3kuC2seC3kuC2reC3iuC2reC3lCAxIOC2pyDgtrTgt5ngtrsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIxNzY5NDIwMDg5MTU0NTUxMTYiPiLgtrjgt5LgtrHgt5Lgtq3gt4rgtq3gt5QgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Laa4LanIOC2tOC3meC2uyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX2hvdXJzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjkxNTA3OTc5NDQ2MTA4MjE4NDkiPiLgtrTgt5DgtrogMSDgtprgtqcg4La04LeZ4La7IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyNDY3MjczMjM5NTg3NTg3NTY5Ij4i4La04LeQ4La6IDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2muC2pyDgtrTgt5ngtrsiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Imxhc3RfbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjMwNjk5OTI4MDgxNjQzMTgyNjgiPiLgtoXgtrHgt4rgtq3gt5Lgtrgg4Lav4LeA4LeD4LeKIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ibGFzdF9tb250aCIgbXNnaWQ9IjM5NTkzNDY3Mzk5NzkwNTU0MzIiPiLgtoXgt4Dgt4Pgt4/gtrEg4La44LeP4LeD4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkZXIiIG1zZ2lkPSI1MjExOTc1MDIyODE1NTU0ODQwIj4i4La04La74LarIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJudW1fZGF5c19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4NjEzNTg1MzQzOTgxMTU4MjAiPiLgtorgtrrgt5oiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI0Nzk1ODY0NjYxNTMzMTQ2MzMiPiLgtq/gt5LgtrEgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Laa4LanIOC2tOC3meC2uyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iaW5fbnVtX3NlY29uZHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIyNzI5NzQ1NTYwOTU0OTA1MTAyIj4i4Lat4Lat4LeK4La04La7IDEg4Laa4LeS4Lax4LeKIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMjQxOTI2MTE2NDQzOTc0Njg3Ij4i4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2muC2r+C3kyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iaW5fbnVtX21pbnV0ZXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4NzkzMDk1MjUxMzI1MjAwMzk1Ij4i4La44LeS4Lax4LeS4Lat4LeK4Lat4LeUIDEg4Laa4Lav4LeTIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzMzMwNzEzOTM2Mzk5NDQ4NzQ5Ij4i4La44LeS4Lax4LeS4Lat4LeK4Lat4LeUIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtq3gt5Tgt4UiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImluX251bV9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjcxNjQzNTMzNDI0Nzc3Njk5OTkiPiLgtrTgt5DgtrogMSDgtprgt4og4Lat4LeU4LeFIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDcyOTA2NzczNTM3MjczODkiPiLgtrTgt5DgtrogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2reC3lOC3hSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iaW5fbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1NDEzMDg4NzQzMDA5ODM5NTE4Ij4i4LeE4LeZ4LanIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1MTA5NDQ5Mzc1MTAwOTUzMjQ3Ij4i4Lav4LeS4LaxIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtq3gt5Tgt4UiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1fc2Vjb25kc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIxODQ5MDM2ODQwMjAwMDY5MTE4Ij4i4Lat4Lat4LeK4La04La7IDEg4Laa4LanIOC2tOC3meC2uyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzY5OTE2OTM2NjY1MDkzMDQxNSI+IuC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDgtprgtqcg4La04LeZ4La7IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX21pbnV0ZXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjM2MTQ5MDE0NzExMzg3MTU0NSI+IuC2uOC3kuC2seC3kuC2reC3iuC2reC3lCAxIOC2muC2pyDgtrTgt5ngtrsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg1MTE2NDk2ODU5NzE1MDcxMCI+IuC2uOC3kuC2seC3kuC2reC3iuC2reC3lCA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDgtqcg4La04LeZ4La7IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX2hvdXJzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ3OTYyMTIwMzk3MjQ3MjIxMTYiPiLgtrTgt5DgtrogMSDgtprgtqcg4La04LeZ4La7IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2ODg5OTcwNzQ1NzQ4NTM4OTAxIj4i4La04LeQ4La6IDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2pyDgtrTgt5ngtrsiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1fZGF5c19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4NDYzMTYxNzExNDkyNjgwMzA5Ij4i4LaK4La64LeaIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzNDUzMzQyNjM5NjE2NDgxMTkxIj4i4Lav4LeS4LaxIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2pyDgtrTgt5ngtrsiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fc2Vjb25kcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NDIyMjUzNzA3OTUwNjYyOTkiPiLgtq3gtq3gt4rgtrTgtrsgMSDgtprgt4og4Lat4LeU4LeFIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDk1ODgwMTA4ODI1ODA1MTA4Ij4i4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtq3gt5Tgt4UiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU2Mjc4NjE0OTkyODI4NDg3OCI+IuC2uOC3kuC2seC3kuC2reC3iuC2reC3lCAxIOC2muC3iiDgtq3gt5Tgt4UiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQyMTYxMTMyOTI3MDY1Njg3MjYiPiLgtrjgt5LgtrHgt5Lgtq3gt4rgtq3gt5QgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2reC3lOC3hSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNzQ3MDgxMTgxMjQwNDUyNDYiPiLgtrTgt5DgtrogMSDgtprgt4og4Lat4LeU4LeFIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzNzA1MzczNzY2Nzk4MDEzNDA2Ij4i4La04LeQ4La6IDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtq3gt5Tgt4UiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fZGF5cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjIxNzg1NzYyNTQzODU3Mzk4NTUiPiLgt4Tgt5ngtqciPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI5NzMwNjI5NjgwMzgzNTU5OTEiPiLgtq/gt5LgtrEgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2reC3lOC3hSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl9kYXRlIiBtc2dpZD0iOTA5Mzk0OTc1Nzc1NzQ0NTExNyI+Ijx4bGlmZjpnIGlkPSJEQVRFIj4lczwveGxpZmY6Zz4g4LeA4LaxIOC2r+C3jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl90aW1lIiBtc2dpZD0iNTUwNjgzMTI0NDI2MzA4Mzc5MyI+Ijx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4g4LanIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlcG9zaXRpb25fZm9yX3llYXIiIG1zZ2lkPSI1MDQwMzk1NjQwNzExODY3MTc3Ij4iPHhsaWZmOmcgaWQ9IllFQVIiPiVzPC94bGlmZjpnPiDgtq3gt5Tgt4UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXkiIG1zZ2lkPSI4MTQ0MTk1Nzc2MDU4MTE5NDI0Ij4i4Lav4LeA4LeDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5cyIgbXNnaWQ9IjQ3NzQ1NDc2NjEwMjEzNDQ2MDIiPiLgtq/gt5LgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyIiBtc2dpZD0iMjEyNjc3MTkxNjQyNjE4OTQ4MSI+IuC2tOC3kOC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJzIiBtc2dpZD0iODk0NDI0MDA1MjY2ODUyOTkzIj4i4La04LeQ4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlIiBtc2dpZD0iOTE0ODg3ODY1NzcwMzc2OTg2OCI+Im1pbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZXMiIG1zZ2lkPSI1NjQ2MDAxMDA1ODI3MDM0NTA5Ij4i4La44LeS4Lax4LeS4Lat4LeK4Lat4LeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vjb25kIiBtc2dpZD0iMzE4NDIzNTgwODAyMTQ3OCI+IuC2reC2reC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlY29uZHMiIG1zZ2lkPSIzMTYxNTE1MzQ3MjE2NTg5MjM1Ij4i4Lat4Lat4LeK4La04La7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2VlayIgbXNnaWQ9IjU2MTc5NjE1MzcxNzMwNjE1ODMiPiLgt4Pgtq3gt5LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWVrcyIgbXNnaWQ9IjY1MDk2MjM4MzQ1ODM5NDQ1MTgiPiLgt4Pgtq3gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyIiBtc2dpZD0iNDAwMTExODIyMTAxMzg5MjA3NiI+IuC2heC3gOC3lOC2u+C3lOC2r+C3iuC2ryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJzIiBtc2dpZD0iNjg4MTU3NzcxNzk5MzIxMzUyMiI+IuC2heC3gOC3lOC2u+C3lOC2r+C3lCI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iZHVyYXRpb25fc2Vjb25kcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY5NjIwMTU1MjgzNzI5Njk0ODEiPiLgtq3gtq3gt4rgtrTgtrsgMSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTg4NjEwNzc2NjU3NzE2Njc4NiI+IuC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iZHVyYXRpb25fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ5MTU0MTQwMDI1NDYwODU2MTciPiLgtrjgt5LgtrHgt5Lgtq3gt4rgtq3gt5QgMSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzE2NTE4NzE2OTIyNDkwODc3NSI+IuC2uOC3kuC2seC3kuC2reC3iuC2reC3lCA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iZHVyYXRpb25faG91cnMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4OTE3NDY3NDkxMjQ4ODA5OTcyIj4i4La04LeQ4La6IDEiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM4NjM5NjI4NTQyNDY3NzM5MzAiPiLgtrTgt5DgtrogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Laa4LeKIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RpdGxlIiBtc2dpZD0iMzUzNDUwOTEzNTQzODM1MzA3NyI+IuC3gOC3k+C2qeC3kuC2uuC3nSDgtpzgt5Dgtqfgtr3gt5Tgt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfdGV4dF9pbnZhbGlkX3Byb2dyZXNzaXZlX3BsYXliYWNrIiBtc2dpZD0iMzE4NjY3MDMzNTkzODY3MDQ0NCI+IuC2uOC3miDgt4Dgt5Pgtqngt5Lgtrrgt53gt4Ag4La44LeZ4La4IOC2i+C2tOC3j+C2guC2nOC2uuC2pyDgtrTgt4rigI3gtrvgt4Dgt4/gt4TgtrHgtrog4LeD4Laz4LeE4LePIOC3gOC2veC2guC2nOC3lCDgtrHgt5Dgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RleHRfdW5rbm93biIgbXNnaWQ9IjM0NTA0MzkxNTUxODc4MTAwODUiPiLgtrjgt5ngtrgg4LeA4LeT4Lap4LeS4La64Led4LeAIOC2sOC3j+C3gOC2seC2uiDgtprgt4Ug4Lax4Lec4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlZpZGVvVmlld19lcnJvcl9idXR0b24iIG1zZ2lkPSIyODIyMjM4MjE1MTAwNjc5NTkyIj4i4LeE4La74LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpdmVfdGltZSIgbXNnaWQ9IjE4MTg1NTcxNzc4Mjk0MTE0MTciPiI8eGxpZmY6ZyBpZD0iREFURSI+JTEkczwveGxpZmY6Zz4sIDx4bGlmZjpnIGlkPSJUSU1FIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vb24iIG1zZ2lkPSI3MjQ1MzUzNTI4ODE4NTg3OTA4Ij4i4La44Law4LeK4oCN4La64LeE4Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iTm9vbiIgbXNnaWQ9IjMzNDIxMjc3NDUyMzAwMTMxMjciPiLgtrjgtrDgt4rigI3gtrrgt4/gt4TgtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaWRuaWdodCIgbXNnaWQ9IjcxNjYyNTk1MDg4NTA0NTc1OTUiPiLgtrjgtrDgt4rigI3gtrrgtrgg4La74LeP4Lat4LeK4oCN4La74LeS4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iTWlkbmlnaHQiIG1zZ2lkPSI1NjMwODA2OTA2ODk3ODkyMjAxIj4i4La44Law4LeK4oCN4La64La4IOC2u+C3j+C2reC3iuKAjeC2u+C3kuC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVsYXBzZWRfdGltZV9zaG9ydF9mb3JtYXRfbW1fc3MiIG1zZ2lkPSI0NDMxNTU1OTQzODI4NzExNDczIj4iPHhsaWZmOmcgaWQ9Ik1JTlVURVMiPiUxJDAyZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9IlNFQ09ORFMiPiUyJDAyZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGFwc2VkX3RpbWVfc2hvcnRfZm9ybWF0X2hfbW1fc3MiIG1zZ2lkPSIxODQ2MDcxOTk3NjE2NjU0MTI0Ij4iPHhsaWZmOmcgaWQ9IkhPVVJTIj4lMSRkPC94bGlmZjpnPjo8eGxpZmY6ZyBpZD0iTUlOVVRFUyI+JTIkMDJkPC94bGlmZjpnPjo8eGxpZmY6ZyBpZD0iU0VDT05EUyI+JTMkMDJkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdEFsbCIgbXNnaWQ9IjY4NzY1MTg5MjU4NDQxMjkzMzEiPiLgt4Pgt5Lgtrrgtr3gt4rgtr0g4Lat4Led4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3V0IiBtc2dpZD0iMzA5MjU2OTQwODQzODYyNjI2MSI+IuC2muC2tOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvcHkiIG1zZ2lkPSIyNjgxOTQ2MjI5NTMzNTExOTg3Ij4i4La04LeS4Lan4La04Lat4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3RlIiBtc2dpZD0iNTYyOTg4MDgzNjgwNTAzNjQzMyI+IuC2heC2veC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlcGxhY2UiIG1zZ2lkPSI1NzgxNjg2MDU5MDYzMTQ4OTMwIj4i4La04LeK4oCN4La74Lat4LeS4LeD4LeK4Lau4LeP4La04Lax4La6IOC2muC2u+C2seC3iuC2sS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZSIgbXNnaWQ9IjYwOTg2ODQ4NDQwMjE2OTc3ODkiPiLgtrjgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb3B5VXJsIiBtc2dpZD0iMjUzODIxMTU3OTU5NjA2NzQwMiI+IlVSTCDgtrTgt5LgtqfgtrTgtq3gt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0VGV4dE1vZGUiIG1zZ2lkPSIxMDE4NjkxODE1MTQzMTY1MzI2Ij4i4La04LeZ4LeFIOC2reC3neC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRleHRTZWxlY3Rpb25DQUJUaXRsZSIgbXNnaWQ9IjUyMzY4NTAzOTQzNzA4MjAzNTciPiLgtrTgt5ngt4Ug4Lat4Lea4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkVG9EaWN0aW9uYXJ5IiBtc2dpZD0iNDM1MjE2MTUzNDUxMDA1Nzg3NCI+IuC3geC2tuC3iuC2ryDgtprgt53gt4Lgtrrgtqcg4LaR4Laa4Lat4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZVRleHQiIG1zZ2lkPSI2OTc5NjY4NDI4NDU4MTk5MDM0Ij4i4La44Laa4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5wdXRNZXRob2QiIG1zZ2lkPSIxNjUzNjMwMDYyMzA0NTY3ODc5Ij4i4LaG4Lav4LeP4LaxIOC2muC3iuKAjeC2u+C2uOC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVkaXRUZXh0TWVudVRpdGxlIiBtc2dpZD0iNDkwOTEzNTU2NDk0MTgxNTQ5NCI+IuC2tOC3meC3hSDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4DgtrHgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfaW50ZXJuYWxfc3RvcmFnZV92aWV3X3RpdGxlIiBtc2dpZD0iNTU3NjI3MjQ5NjM2NTY4NDgzNCI+IuC2huC2oOC2uuC2seC2uiDgtongtqkg4La04LeK4oCN4La74La44LeP4Lar4La6IOC2heC2qeC3lCDgt4Dgt5Mg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X2ludGVybmFsX3N0b3JhZ2Vfdmlld190ZXh0IiBtc2dpZD0iNjY0MDUwNTgxNzYxNzQxNDM3MSI+IuC3g+C2uOC3hOC2uyDgtrTgtq/gt4rgtrDgtq3gt5Ig4Laa4LeP4La74LeK4La64La64Lax4LeKIOC2muC3iuKAjeC2u+C3kuC2uuC3jyDgtrHgt5zgtprgtrvgtrHgt5Qg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX3J1bm5pbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODcxODMzNTEyMTA2MDc4NzkxNCI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4g4Law4LeP4LeA4Lax4La6IOC3gOC3miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9ydW5uaW5nX25vdGlmaWNhdGlvbl90ZXh0IiBtc2dpZD0iNDY1MzU4Njk0Nzc0NzMzMDA1OCI+IuC3gOC3kOC2qeC3kuC2tOC3lOC2uyDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LeE4LedIOC2uuC3meC2r+C3lOC2uCDgtrHgt5Dgt4Dgtq3gt5Pgtrgg4LeD4Laz4LeE4LePIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2siIG1zZ2lkPSI1OTcwMDYwNDMwNTYyNTI0OTEwIj4i4LeE4La74LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNjQ0MjU2MDU3MTI1OTkzNTEzMCI+IuC2heC3gOC2veC2guC2nOC3lCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZXMiIG1zZ2lkPSI1MzYyOTgyMzAzMzM3OTY5MzEyIj4i4LeE4La74LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm8iIG1zZ2lkPSI1MTQxNTMxMDQ0OTM1NTQxNDk3Ij4i4LaF4LeA4La94LaC4Lac4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpYWxvZ19hbGVydF90aXRsZSIgbXNnaWQ9IjIwNDk2NTg3MDg2MDkwNDMxMDMiPiLgtoXgt4DgtrDgt4/gtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2FkaW5nIiBtc2dpZD0iNzkzMzY4MTI2MDI5NjAyMTE4MCI+IuC2tOC3luC2u+C2q+C2uiDgt4Dgt5ngtrjgt5LgtrHgt4ouLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBpdGFsX29uIiBtc2dpZD0iMTU0NDY4Mjc1NTUxNDQ5NDI5OCI+IuC3g+C2muC3iuKAjeC2u+C3k+C2uuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGl0YWxfb2ZmIiBtc2dpZD0iNjgxNTg3MDM4Njk3MjgwNTgzMiI+IuC2heC2muC3iuKAjeC2u+C3kuC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aGljaEFwcGxpY2F0aW9uIiBtc2dpZD0iNDUzMzE4NTk0NzA2NDc3MzM4NiI+IuC2tOC3hOC2rSDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4Laa4LeK4oCN4La74LeS4La64LeP4LeAIOC3g+C2uOC3iuC2tOC3luC2u+C3iuC2qyDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNVc2UiIG1zZ2lkPSI0NTgzMDE4MzY4MDAwNjEwNDM4Ij4i4La44LeZ4La4IOC2muC3iuKAjeC2u+C3kuC2uuC3j+C3gCDgt4PgtrPgt4Tgt48g4LeD4LeU4La04LeU4La74LeU4Lav4LeK4Lav4LeZ4Lax4LeKIOC2t+C3j+C3gOC3kuC2rSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2xlYXJEZWZhdWx0SGludE1zZyIgbXNnaWQ9IjMyNTI1ODQ2ODk1MTIwNzcyNTciPiLgtrTgtq/gt4rgtrDgtq3gt5Ig4LeD4LeQ4Laa4LeD4LeT4La44LeKICZndDsg4La64LeZ4Lav4LeU4La44LeKICZndDsg4La24LeP4Lac4LeQ4Lax4LeT4La44LeKIOC2reC3lOC3hSDgtofgtq3gt5Ig4LeD4LeU4La04LeU4La74LeU4Lav4LeK4LavIOC3hOC3kuC3g+C3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlQWN0aXZpdHkiIG1zZ2lkPSI3NDg2ODc2MTQ3NzUxODAzMzMzIj4i4Laa4LeK4oCN4La74LeS4La64LeP4LeA4Laa4LeKIOC2reC3neC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZVVzYkFjdGl2aXR5IiBtc2dpZD0iNjg5NDc0ODQxNjA3MzU4MzUwOSI+IlVTQiDgtovgtrTgt4/gtoLgtpzgtrog4LeD4Laz4LeE4LePIOC2uuC3meC2r+C3lOC2uOC2muC3iiDgtq3gt53gtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub0FwcGxpY2F0aW9ucyIgbXNnaWQ9IjI5OTE4MTQyNzM5MzY1MDQ2ODkiPiLgtrjgt5ngtrgg4Laa4LeK4oCN4La74LeS4La64LeP4LeAIOC3g+C3kuC2r+C3lCDgtprgt5Lgtrvgt5Pgtrjgtqcg4Laa4LeS4LeD4LeS4Lav4LeUIOC2uuC3meC2r+C3lOC2uOC2muC2pyDgtrHgt5zgt4Tgt5Dgtprgt5LgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWVycl90aXRsZSIgbXNnaWQ9IjE5MDU4MDA1NjAzMTcxMzc3NTIiPjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWVycl9hcHBsaWNhdGlvbiIgbXNnaWQ9IjkzMjYyODQ4ODAxMzA5Mjc3NiI+IuC2heC3gOC3j+C3g+C2seC3j+C3gOC2seC3iuC2rSDgtr3gt5ngt4MgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDgtrHgt5Dgt4Dgtq3gt5Mg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFlcnJfcHJvY2VzcyIgbXNnaWQ9IjQ1MDcwNTg5OTcwMzU2OTc1NzkiPiLgtoXgt4Dgt4/gt4PgtrHgt4/gt4DgtrHgt4rgtq0g4La94LeZ4LeDLCA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz4g4Laa4LeK4oCN4La74LeS4La64LeP4LeA4La94LeS4La6IOC2seC2reC2uyDgt4Dgt5Lgtqvgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX3RpdGxlIiBtc2dpZD0iNDM1MTk0ODQ4MTQ1OTEzNTcwOSI+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfYWN0aXZpdHlfYXBwbGljYXRpb24iIG1zZ2lkPSIxOTA0NDc3MTg5MDU3MTk5MDY2Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMiRzPC94bGlmZjpnPiDgtrTgt4rigI3gtrvgtq3gt5LgtqDgt4/gtrsg4Lax4Lec4Lav4Laa4LeK4LeA4La64LeSLlxuXG7gtpTgtrbgtqcg4LaR4La6IOC2seC2reC2uyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4LeA4LeB4LeK4oCN4La64LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hY3Rpdml0eV9wcm9jZXNzIiBtc2dpZD0iNTc3NjIwOTg4MzI5OTA4OTc2NyI+Ijx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74Laa4La4IOC2tOC3iuKAjeC2u+C2reC3kuC2oOC3j+C2uyDgtrHgt5zgtq/gtprgt4rgt4Dgtrrgt5IuXG5cbuC2keC2uiDgt4Dgt4Pgt48g4Lav4LeQ4La44LeT4La44LanIOC2lOC2tuC2pyDgtoXgt4Dgt4Hgt4rigI3gtrrgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX2FwcGxpY2F0aW9uX3Byb2Nlc3MiIG1zZ2lkPSI4OTQxNzU3NjA3MzQwNDgxMDU3Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDgtrTgt4rigI3gtrvgtq3gt5LgtqDgt4/gtrsg4Lax4Lec4Lav4Laa4LeK4LeA4La64LeSLiDgtpHgtrog4LeA4LeD4LePIOC2r+C3kOC2uOC3k+C2uOC2pyDgtpTgtrbgtqcg4LaF4LeA4LeB4LeK4oCN4La64LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9wcm9jZXNzIiBtc2dpZD0iNjUxMzIwOTg3NDg4MDUxNzEyNSI+Ijx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4Dgtr3gt5Lgtrog4La04LeK4oCN4La74Lat4LeS4Lag4LeP4La7IOC2seC3nOC2r+C2muC3iuC3gOC2uuC3ki5cblxu4LaU4La24LanIOC2keC2uiDgtrHgtq3gtrsg4Laa4LeS4La74LeT4La44LanIOC2heC3gOC3geC3iuKAjeC2uuC2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmb3JjZV9jbG9zZSIgbXNnaWQ9IjgzNDYwNzIwOTQ1MjEyNjU2MDUiPiLgt4Tgtrvgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXBvcnQiIG1zZ2lkPSI0MDYwMjE4MjYwOTg0Nzk1NzA2Ij4i4LeA4LeP4La74LeK4Lat4LeP4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FpdCIgbXNnaWQ9IjcxNDcxMTgyMTcyMjYzMTc3MzIiPiLgtrvgt5DgtrPgt5Mg4LeD4LeS4Lan4LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2VicGFnZV91bnJlc3BvbnNpdmUiIG1zZ2lkPSIzMjcyNzU4MzUxMTM4MTIyNTAzIj4i4La04LeS4Lan4LeU4LeAIOC2tOC3iuKAjeC2u+C2reC3kuC2oOC3j+C2uyDgtrHgt5zgtq/gtprgt4rgt4DgtrEg4Lat4Lat4LeK4LeA4La64LanIOC2tOC2reC3iuC3gOC3kyDgtofgtq0uXG5cbuC2lOC2tuC2pyDgtpHgtrog4LeA4LeQ4LeD4LeT4La44LanIOC2heC3gOC3geC3iuKAjeC2uuC2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYXVuY2hfd2FybmluZ190aXRsZSIgbXNnaWQ9IjE1NDc5OTc3ODA1MDY3MTM1ODEiPiLgtrrgt5ngtq/gt5Tgtrgg4Lax4LeQ4LeA4LatIOC3hOC2u+C3gOC3jyDgtrrgt4Dgt48g4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoX3dhcm5pbmdfcmVwbGFjZSIgbXNnaWQ9IjYyMDI0OTg5NDk5NzAyODE0MTIiPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+IOC2r+C3kOC2seC3iiDgtrDgt4/gt4DgtrHgtrog4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX29yaWdpbmFsIiBtc2dpZD0iMTg4MTAyMDIzMDIxNjY4NjgzIj4iPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiDgtrjgt5Tgtr3gt5LgtrHgt4rgtrgg4LaF4La74La54LePIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fY29tcGF0X21vZGVfc2NhbGUiIG1zZ2lkPSIzMjAyOTU1NjY3Njc1OTQ0NDk5Ij4i4La04La74LeS4La44LeP4Lar4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX3Nob3ciIG1zZ2lkPSI0MDEzODc4ODc2NDg2NjU1ODkyIj4i4LeD4LeQ4La44LeA4LeS4Lan4La4IOC2tOC3meC2seC3iuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9oaW50IiBtc2dpZD0iMTA2NDUyNDA4NDU0MzMwNDQ1OSI+IuC2tOC2r+C3iuC2sOC2reC3kiDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4Lat4LeU4LeFIOC2uOC3meC2uiDgtrHgt5Dgt4Dgtq0g4Laa4LeK4oCN4La74LeS4La64LeP4Lat4LeK4La44LaaIOC2muC2u+C2seC3iuC2sSAmZ3Q7IOC2uuC3meC2r+C3lOC2uOC3iiAmZ3Q7IOC2tuC3j+C2nOC2seC3iuC2seC3jyDgtr3gtq/gt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic212X2FwcGxpY2F0aW9uIiBtc2dpZD0iMzMwNzIwOTE5MjE1NTQ0MjgyOSI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g4La64LeZ4Lav4LeU4La4ICg8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTIkczwveGxpZmY6Zz4g4Laa4LeK4oCN4La74LeS4La64LeP4LeA4La94LeS4La6KSDgtpHgt4Tgt5IgU3RyaWN0TW9kZSDgtprgt5zgtrHgt4rgtq/gt5rgt4Pgt5Lgtrog4LaL4La94LeK4La94LaC4Lad4Lax4La6IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic212X3Byb2Nlc3MiIG1zZ2lkPSI1MTIwMzk3MDEyMDQ3NDYyNDQ2Ij4iPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+IOC2muC3iuKAjeC2u+C3kuC2uuC3j+C3gOC2veC3kuC2uiDgtpHgt4Tgt5IgU3RyaWN0TW9kZSDgtprgt5zgtrHgt4rgtq/gt5rgt4Pgt5Lgtrog4LaL4La94LeK4La94LaC4Lad4Lax4La6IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfdGl0bGUiIG1zZ2lkPSIxNTg0MTkyMjg1NDQxNDA1NzQ2Ij4iQW5kcm9pZCDgtovgtq3gt4rgt4Hgt4rigI3gtrvgt5rgtqvgt5Ig4LeA4LeZ4La44LeS4Lax4LeKIOC2tOC3gOC2reC3ky4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX2FwayIgbXNnaWQ9Ijc5MDQwNDI2ODIxMTE1MjYxNjkiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJGQ8L3hsaWZmOmc+IOC2muC3kuC2seC3iiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiUxJGQ8L3hsaWZmOmc+IOC3gOC3kOC2seC3kiDgtrrgt5ngtq/gt5TgtrjgtrTgt4rigI0g4La74LeB4LeD4LeK4LatIOC2muC2u+C2uOC3kuC2seC3ii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19zdGFydGluZ19hcHBzIiBtc2dpZD0iNDUxNDY0NTE2MzQ2OTI2NzEzIj4i4La64LeZ4Lav4LeU4La44LeKIOC2huC2u+C2uOC3iuC2tyDgtprgtrvgtrjgt5LgtrHgt4ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfY29tcGxldGUiIG1zZ2lkPSIxNDA1OTU0NzU0MTEyOTk5MjI5Ij4i4LaH4La74La54LeU4La4IOC2heC3gOC3g+C3j+C2sSDgtprgtrvgtrjgt5LgtrHgt4ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X25vdGlmaWNhdGlvbiIgbXNnaWQ9IjkwODcwNjM5ODU3NzY2MjYxNjYiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lMSRzPC94bGlmZjpnPiDgtrDgt4/gt4DgtrHgtrog4LeA4LeZ4La44LeS4Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X25vdGlmaWNhdGlvbl9kZXRhaWwiIG1zZ2lkPSIxNzIxNjgxNzQxNjE3ODk4ODY1Ij4i4La64LeZ4Lav4LeU4La44LanIOC2uOC3j+C2u+C3lCDgt4Dgt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9zd2l0Y2hlcl90aXRsZSIgbXNnaWQ9IjcxNTMxNjcwODU0MDMyOTgxNjkiPiLgtrrgt5ngtq/gt5Tgtrjgt4og4La44LeP4La74LeUIOC3gOC2seC3gOC3j+C2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfc3dpdGNoZXJfdGV4dCIgbXNnaWQ9IjcwMjI2MzE5MjQ1MzQ0MDY0MDMiPiLgtoXgtr3gt5Tgtq3gt4og4La64LeZ4Lav4LeU4La44Laa4LeKIOC2huC2u+C2uOC3iuC2tyDgtprgt5Lgtrvgt5Pgtrjgtqcg4La04LeZ4La7IOC2reC3gOC2uOC2reC3iiDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4Dgt5ngt4Tgt5Ig4La64LeZ4Lav4LeZ4La44LeS4Lax4LeKIOC2tOC3gOC2reC3kuC2sSDgtrrgt5ngtq/gt5Tgtrgg4Lax4LeQ4LeA4LeQ4Lat4LeK4LeA4LeS4La6IOC2uuC3lOC2reC3lOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvbGRfYXBwX2FjdGlvbiIgbXNnaWQ9IjQ5MzEyOTE3MjIzODU2NjI4MiI+Ijx4bGlmZjpnIGlkPSJPTERfQVBQIj4lMSRzPC94bGlmZjpnPiDgt4Dgt5ngtq0g4LaG4La04LeD4LeUIOC2uuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9sZF9hcHBfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMDgyMDk0Mjc1NTgwMzU4MDQ5Ij4i4Lax4LeAIOC2uuC3meC2r+C3lOC2uCDgtobgtrvgtrjgt4rgtrcg4Lax4Lec4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5ld19hcHBfYWN0aW9uIiBtc2dpZD0iNTQ3Mjc1NjkyNjk0NTQ0MDcwNiI+Ijx4bGlmZjpnIGlkPSJPTERfQVBQIj4lMSRzPC94bGlmZjpnPiDgtoXgtrvgtrngtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXdfYXBwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTkzMjE0MzU5ODM3MTUzNzM0MCI+IuC3g+C3lOC2u+C3kOC2muC3k+C2uOC2muC3kuC2seC3iiDgtq3gt5zgtrvgt4Ag4La04La74LarIOC2uuC3meC2r+C3lOC2uCDgtrHgt4Dgtq3gt4rgt4DgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VuZFRleHQiIG1zZ2lkPSI1MjA5ODc0NTcxOTU5NDY5MTQyIj4i4La04LeZ4LeFIOC3g+C2s+C3hOC3jyDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4Ag4Lat4Led4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX3Jpbmd0b25lIiBtc2dpZD0iNjg4NTQyMTQwNjg0NTczNDY1MCI+IuC3hOC2rCDgtrHgtp/gtrHgtrrgt5og4LeB4La24LeK4Lav4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljIiBtc2dpZD0iNTQyMTY1MTE1NzEzODYyODE3MSI+IuC2uOC3j+C2sOC3iuKAjeC2uiDgt4Hgtrbgt4rgtq/gtrog4Lat4LeK4oCN4La74LeT4LeA4Lat4LeP4LeA4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljX2hpbnRfcGxheWluZ190aHJvdWdoX2JsdWV0b290aCIgbXNnaWQ9IjkxNjU5ODQzNzkzOTQ2MDE1MzMiPiLgtrbgt4rgtr3gt5bgtqfgt5bgtq3gt4og4LeE4La74LeE4LePIOC2sOC3j+C3gOC2seC2uiDgt4Dgt5ngtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfbXVzaWNfaGludF9zaWxlbnRfcmluZ3RvbmVfc2VsZWN0ZWQiIG1zZ2lkPSI4MzEwNzM5OTYwOTczMTU2MjcyIj4i4Lax4LeS4LeE4LasIOC2u+C3kuC2nOC3kuC2seC3iiDgtqfgt53gtrHgtrrgtprgt4og4LeD4Laa4LeD4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2NhbGwiIG1zZ2lkPSIzOTQxNjgwMDQxMjgyNzg4NzExIj4i4LaH4La44Lat4LeU4La4LeC2reC3lOC3hSDgt4Hgtrbgt4rgtq8g4Lat4LeK4oCN4La74LeT4LeA4Lat4LeP4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2JsdWV0b290aF9jYWxsIiBtc2dpZD0iMjAwMjg5MTkyNjM1MTE1MTUzNCI+IuC2tuC3iuC2veC3luC2p+C3luC2reC3iiDgtofgtrjgtq3gt5Tgtrgt4Lat4LeU4LeFIOC3geC2tuC3iuC2ryDgtq3gt4rigI3gtrvgt5Pgt4Dgtq3gt4/gt4DgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfYWxhcm0iIG1zZ2lkPSIxOTg1MTkxNjE2MDQyNjg5MTAwIj4i4LeD4LeT4Lax4LeU4LeA4LeaIOC3geC2tuC3iuC2r+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9ub3RpZmljYXRpb24iIG1zZ2lkPSIyNDIyMjY1NjU2NzQ0Mjc2NzE1Ij4i4Lav4LeQ4Lax4LeU4La44LeK4Lav4LeT4La44LeaIOC3geC2tuC3iuC2r+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV91bmtub3duIiBtc2dpZD0iMTQwMDIxOTY2OTc3MDQ0NTkwMiI+IuC3geC2tuC3iuC2r+C2uiDgtq3gt4rigI3gtrvgt5Pgt4Dgtq3gt4/gt4DgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9ibHVldG9vdGgiIG1zZ2lkPSI2NTM4ODk0MTc3MjU1OTY0MzQwIj4i4La24LeK4La94LeW4Lan4LeW4Lat4LeKIOC3geC2tuC3iuC2ryDgtq3gt4rigI3gtrvgt5Pgt4Dgtq3gt4/gt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9yaW5nZXIiIG1zZ2lkPSIzMzI2MDAzODQ3MDA2MTYyNDk2Ij4i4La74LeS4Lax4LeK4Lan4Led4Lax4La64LeaIOC3geC2tuC3iuC2r+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX2luY2FsbCIgbXNnaWQ9Ijg4OTAwNzMyMTgxNTQ1NDMzOTciPiLgtofgtrjgtq3gt5Tgtrjgt4og4LeB4La24LeK4Lav4La6IOC2reC3iuKAjeC2u+C3k+C3gOC2reC3j+C3gOC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX21lZGlhIiBtc2dpZD0iNDIxNzMxMTcxOTY2NTE5NDIxNSI+IuC2uOC3j+C2sOC3iuKAjeC2uiDgt4Hgtrbgt4rgtq/gtrog4Lat4LeK4oCN4La74LeT4LeA4Lat4LeP4LeA4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2ljb25fZGVzY3JpcHRpb25fbm90aWZpY2F0aW9uIiBtc2dpZD0iNzA0NDk4NjU0NjQ3NzI4MjI3NCI+IuC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC3miDgt4Hgtrbgt4rgtq8g4Lat4LeK4oCN4La74LeT4LeA4Lat4LeP4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfZGVmYXVsdCIgbXNnaWQ9IjM3ODk3NTg5ODAzNTc2OTY5MzYiPiLgt4Pgt5TgtrTgt5Tgtrvgt5Tgtq/gt5Qg4La74LeS4Lax4LeK4Lan4Led4Lax4La6IOC3g+C2muC3g+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX2RlZmF1bHRfd2l0aF9hY3R1YWwiIG1zZ2lkPSI4MTI5NTYzNDgwODk1OTkwMzcyIj4i4LeD4LeU4La04LeU4La74LeU4Lav4LeUIOC2u+C3kuC2seC3iuC2p+C3neC2seC2uiAoPHhsaWZmOmcgaWQ9IkFDVFVBTF9SSU5HVE9ORSI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfc2lsZW50IiBtc2dpZD0iNzkzNzYzNDM5MjQwODk3NzA2MiI+IuC2muC3kuC3g+C3kuC3gOC2muC3iiDgtrHgt5Dgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV9waWNrZXJfdGl0bGUiIG1zZ2lkPSIzNTE1MTQzOTM5MTc1MTE5MDk0Ij4i4La74LeS4Lac4LeS4Lax4LeK4Lan4Led4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfdW5rbm93biIgbXNnaWQ9IjU0Nzc5MTk5ODg3MDE3ODQ3ODgiPiLgtrHgt5zgtq/gtrHgt4rgtrHgt48g4La74LeS4Lax4LeK4Lan4Led4Lax4La6Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJ3aWZpX2F2YWlsYWJsZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY2NTQxMjM5ODc0MTgxNjg2OTMiPiJXaS1GaSDgtqLgt4/gtr3gtrrgtprgt4og4Lat4LeS4La24LeaIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0MTkyNDI0NDg5MTY4Mzk3Mzg2Ij4iV2ktRmkg4Lai4LeP4La9IOC2h+C2rSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0id2lmaV9hdmFpbGFibGVfZGV0YWlsZWQiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIxNjM0MTAxNDUwMzQzMjc3MzQ1Ij4i4LeA4LeS4LeA4LeY4LatIFdpLUZpIOC2ouC3j+C2veC2uiDgtr3gtrbgt4/gtpzgtq0g4LeE4LeQ4LaaIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3OTE1ODk1MzIzNjQ0MjkyNzY4Ij4i4LeA4LeS4LeA4LeY4LatIFdpLUZpIOC2ouC3j+C2vSDgtq3gt5Lgtrbgt5oiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2F2YWlsYWJsZV9zaWduX2luIiBtc2dpZD0iNDAyOTQ4OTcxNjYwNTI1NTM4NiI+IldpLUZpIOC2ouC2veC2uuC2pyDgtrTgt5TgtrvgtrHgtrog4LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmV0d29ya19hdmFpbGFibGVfc2lnbl9pbiIgbXNnaWQ9Ijg0OTUxNTU1OTMzNTgwNTQ2NzYiPiLgtqLgt4/gtr3gtrrgtqcg4La04LeU4La74Lax4La6IOC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBuZXR3b3JrX2F2YWlsYWJsZV9zaWduX2luX2RldGFpbGVkICg4MDAwMDgxOTQxNDQ3OTc2MTE4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkIiBtc2dpZD0iNzkwNDIxNDIzMTY1MTU0NjM0NyI+IldpLUZpIOC3gOC3meC2rSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeS4La6IOC2seC3nOC3hOC3kOC2miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfd2F0Y2hkb2dfbmV0d29ya19kaXNhYmxlZF9kZXRhaWxlZCIgbXNnaWQ9IjU1NDg3ODA3NzY0MTgzMzI2NzUiPiIg4Lav4LeU4La24La9IOC2heC2seC3iuC2reC2u+C3iuC2ouC3j+C2vSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt4/gt4Dgtrrgtprgt4og4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijk3NjExNzgyNjU5MzI0NTE3Ij4i4LaN4Lai4LeUIFdpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfdHVybm9uX21lc3NhZ2UiIG1zZ2lkPSIyOTA5MjUwOTQyMjk5NjI3MjQ0Ij4i4LaN4Lai4LeUIFdpLUZpIOC2huC2u+C2uOC3iuC2tyDgtprgtrvgtrHgt4rgtrEuIOC2uOC3meC2uiBXaS1GaSDgt4Pgt5rgt4Dgt4/gtq/gt4/gtrrgtpov4LeE4Lec4Lan4LeK4LeD4LeK4La04Lec4Lan4LeKIOC2keC2miDgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4La74Lax4LeUIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mYWlsZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NjM2Njk2Nzc5MzU2MjMwODQiPiLgto3gtqLgt5QgV2ktRmkg4LaG4La74La44LeK4La3IOC2muC3hSDgtrHgt5zgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW5hYmxlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMDY4MzIxODgxNjczNzM0ODg2Ij4iV2ktRmkg4LaN4Lai4LeUIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3j+C3gCDgt4Pgtprgt4rigI3gtrvgt5Lgtrrgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9lbmFibGVkX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTYzODk0OTk1Mzk5Mzg5NDMzNSI+IuC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4PgtrPgt4Tgt48g4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2VwdCIgbXNnaWQ9IjE2NDUyNjcyNTkyNzI4Mjk1NTkiPiLgtrTgt5Lgt4Xgt5LgtpzgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWNsaW5lIiBtc2dpZD0iMjExMjIyNTQ1MTcwNjEzNzg5NCI+IuC2tOC3iuKAjeC2u+C2reC3kuC2muC3iuC3guC3muC2tCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9pbnZpdGF0aW9uX3NlbnRfdGl0bGUiIG1zZ2lkPSIxMzE4OTc1MTg1MTEyMDcwNzM0Ij4i4LaG4La74LeP4Law4Lax4LeP4LeAIOC2uuC3gOC2sSDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9pbnZpdGF0aW9uX3RvX2Nvbm5lY3RfdGl0bGUiIG1zZ2lkPSI0OTU4ODAzOTQ4NjU4NTMzNjM3Ij4i4LeD4La44LeK4La24Lax4LeK4Law4Lat4LeP4LeA4La64LanIOC2h+C2u+C2uuC3lOC2uOC2muC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2Zyb21fbWVzc2FnZSIgbXNnaWQ9IjU3MDM4OTE3NDczMTk1MTc2OSI+IuC3gOC3meC2reC3kuC2seC3ijoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF90b19tZXNzYWdlIiBtc2dpZD0iMjQ4OTY4OTc0NTIyMDQ0MDk5Ij4i4LeA4LeZ4LatOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VudGVyX3Bpbl9tZXNzYWdlIiBtc2dpZD0iNTkyMDkyOTU1MDM2NzgyODk3MCI+IuC2heC3gOC3geC3iuKAjeC2uiBQSU4g4LaR4LaaIOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrHgt4rgtrE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfc2hvd19waW5fbWVzc2FnZSIgbXNnaWQ9Ijg1MzA1NjMzMjM4ODA5MjEwOTQiPiJQSU46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZnJlcXVlbmN5X2NvbmZsaWN0X21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgwMTI5ODEyNTc3NDIyMzI0NzUiPiLgtqfgt5Dgtrbgt4rgtr3gtqfgtrogPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiDgt4Dgt5ngtq0g4LeD4La44LeK4La24Lax4LeK4LawIOC3gOC2sSDgtoXgtq3gtrvgtq3gt5Tgtrsg4LaR4La6IFdpLUZpIOC3gOC2veC3kuC2seC3iiDgtq3gt4/gt4Dgtprgt4/gtr3gt5Lgtprgt4Ag4LeA4LeS4LeD4Lax4LeK4Law4LeSIOC2muC3meC2u+C3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcmVxdWVuY3lfY29uZmxpY3RfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczNjM5MDcyMTM3ODc0NjkxNTEiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrogPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiDgtqcg4LeD4La44LeK4La24Lax4LeK4LawIOC3gOC3kyDgtrTgt4Dgtq3gt5LgtrEg4LeA4LeS4LanIFdpLUZpIOC3gOC2veC3kuC2seC3iiDgtpHgtrog4Lat4LeP4LeA4Laa4LeP4La94LeS4Laa4LeAIOC3gOC3kuC3g+C2seC3iuC2sOC3kiDgt4Dgt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2NoYXJhY3RlciIgbXNnaWQ9IjMzNjU1NTAxMjA2MTc3MDE3NDUiPiLgtoXgtprgt5Tgtrsg4LaH4Lat4LeU4LeF4Lat4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX3RpdGxlIiBtc2dpZD0iNzI5NjYxMjc4MTEyODkxNzcxOSI+IlNNUyDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La64LeA4La44LeS4Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfbWVzc2FnZSIgbXNnaWQ9IjM4Njc4OTkxNjk2NTE0OTY0MzMiPiImbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyBTTVMg4La04Lar4LeS4LeA4LeS4LapIOC3gOC3kuC3geC3j+C2vSDgtpzgtqvgtrHgtprgt4og4La64LeA4La64LeSLiDgtrjgt5ngtrgg4La64LeZ4Lav4LeU4La44LanIOC2tOC2q+C3kuC3gOC3kuC2qSDgtrrgt5Dgt4Dgt5Pgtrgg4Lax4Lec4Lax4LeQ4LeA4Lat4LeTIOC2muC2u+C2nOC3meC2sSDgtrrgt4/gtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3k+C2uOC2pyDgtpTgtrbgtqcg4LaF4LeA4LeB4LeK4oCN4La64LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX3llcyIgbXNnaWQ9IjM2NjM3MjU5OTM4NTU4MTY4MDciPiLgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfbm8iIG1zZ2lkPSI2MjU0Mzg1NjEzOTU1MzQ5ODIiPiLgtrTgt4rigI3gtrvgtq3gt5Lgtprgt4rgt4Lgt5rgtrQg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9tZXNzYWdlIiBtc2dpZD0iMTY0NTQzNjQ2NjI4NTMxMDg1NSI+IiZsdDtiJmd0Ozx4bGlmZjpnIGlkPSJERVNUX0FERFJFU1MiPiUyJHM8L3hsaWZmOmc+Jmx0O2ImZ3Q7IOC3gOC3meC2rSDgtprgt5ngtqfgt5Ig4La04Lar4LeS4LeA4LeT4Lap4La64Laa4LeKIOC2uuC3kOC3gOC3k+C2uOC2pyAmbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0O2ImZ3Q7IOC2muC3kOC2uOC2reC3kuC2ui4iPC9zdHJpbmc+CisgICAgPCEtLSBzeW50YXggZXJyb3IgaW4gdHJhbnNsYXRpb24gZm9yIHNtc19zaG9ydF9jb2RlX2RldGFpbHMgKDM0OTIwMjU3MTk4NjgwNzg0NTcpIG9yZy54bWxwdWxsLnYxLlhtbFB1bGxQYXJzZXJFeGNlcHRpb246IGV4cGVjdGVkOiAvc3RyaW5nIHJlYWQ6IGZvbnQgKHBvc2l0aW9uOkVORF9UQUcgPC9mb250PkAxOjgzIGluICAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSIzNDkyMDI1NzE5ODY4MDc4NDU3Ij4i4La44LeZ4La6ICI8L2ZvbnQ+IuC2lOC2tuC2nOC3miDgtqLgtoLgtpzgtrgg4Lac4LeS4Lar4LeU4La44LeaIjxmb250IGZnY29sb3I9IiNmZmZmYjA2MCI+IiDgtoXgtrog4LeA4LeT4La44LeKIOC3gOC2veC2pyDgt4Tgt5rgtq3gt5Tgt4Dgtprgt4og4LeA4LeaLiI8L3N0cmluZz4KKykgIC0tPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3ByZW1pdW1fc2hvcnRfY29kZV9kZXRhaWxzIiBtc2dpZD0iNTUyMzgyNjM0OTEwNTEyMzY4NyI+PGZvbnQgZmdjb2xvcj0iI2ZmZmZiMDYwIj4i4La44LeZ4La6IOC2lOC2tuC2nOC3miDgtqLgtoLgtpzgtrgg4Lac4LeS4Lar4LeU4La44LeZ4Lax4LeKIOC2heC2uuC3gOC3k+C2uOC2pyDgt4Tgt5rgtq3gt5Qg4LeA4LeaLiI8L2ZvbnQ+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2FsbG93IiBtc2dpZD0iNDQ1ODg3ODYzNzExMTAyMzQxMyI+IuC2uuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fZGVueSIgbXNnaWQ9IjI5MjczODk4NDAyMDkxNzA3MDYiPiLgtoXgt4Dgtr3gtoLgtpzgt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfcmVtZW1iZXJfY2hvaWNlIiBtc2dpZD0iNTI4OTUzODU5MjI3MjIxODEzNiI+IuC2uOC2nOC3miDgtq3gt5rgtrvgt5Pgtrgg4La44Lat4LaaIOC2reC2tuC3j+C2nOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX3VuZG9faW5zdHJ1Y3Rpb24iIG1zZ2lkPSI0OTYwOTQ0MTMzMDUyMjg3NDg0Ij4i4LaU4La24LanIOC2uOC3meC2uiDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4Lat4LeU4LeFIOC3gOC3meC2seC3g+C3iuC2muC2uyDgtpzgt5DgtrHgt5Pgtrgg4La04LeD4LeU4LeAIOC2muC3hSDgt4Tgt5DgtprCoCZndDvCoOC2uuC3meC2r+C3lOC2uOC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fYWx3YXlzX2FsbG93IiBtc2dpZD0iMzI0MTE4MTE1NDg2OTQ5MzM2OCI+IuC3g+C3kOC2uOC3gOC3kuC2p+C2uCDgtongtqkg4Lav4LeZ4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9uZXZlcl9hbGxvdyIgbXNnaWQ9IjQ0Njk5Mjc2NTc3NDI2OTY3MyI+IuC2muC3kuC3g+C3kuC2r+C3jyDgtoXgt4Dgt4Pgtrsg4Lax4Lec4Lav4LeZ4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX3JlbW92ZWRfdGl0bGUiIG1zZ2lkPSI2MjI3NzEyMzE5MjIzMjI2MTg1Ij4iU0lNIOC2tOC2rSDgtongt4Dgtq3gt4og4Laa4La74LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9yZW1vdmVkX21lc3NhZ2UiIG1zZ2lkPSIyMzMzMTY0NTU5OTcwOTU4NjQ1Ij4i4LaU4La2IOC2h+C2reC3lOC3heC2reC3iiDgtprgtrvgtrEg4La94LavIOC3gOC2veC2guC2nOC3lCBTSU0g4La04LatIOC3g+C2uOC2nyDgtrHgt5Dgt4Dgtq0g4LaH4La74La54LeT4La4IOC2muC2u+C2sSDgtq3gt5Tgtrvgt5Qg4Lai4LaC4Lac4La4IOC2ouC3j+C2veC2uiDgtrHgt5zgtq3gt5Lgtrbgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX2RvbmVfYnV0dG9uIiBtc2dpZD0iODI3OTQ5OTg5MzY5OTYzNzc1Ij4i4LeE4La74LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX2FkZGVkX3RpdGxlIiBtc2dpZD0iMzcxOTY3MDUxMjg4OTY3NDY5MyI+IlNJTSDgtrTgtq3gtprgt4og4LaR4Laa4Lat4LeUIOC2muC2u+C2sSDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fYWRkZWRfbWVzc2FnZSIgbXNnaWQ9IjY1OTk5NDUzMDExNDEwNTAyMTYiPiLgtqLgtoLgtpzgtrgg4Lai4LeP4La94La64LanIOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgt4Dgt5Pgtrjgtqcg4LaU4La24Lac4LeaIOC2i+C2tOC3j+C2guC2nOC2uiDgtrHgt5Dgt4Dgtq0g4LaF4La74La54Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9yZXN0YXJ0X2J1dHRvbiIgbXNnaWQ9IjQ3MjI0MDc4NDI4MTUyMzIzNDciPiLgtrrgt4Xgt5Ig4LaF4La74La54Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODM0OTM2MjYyMzA2ODgxOTI5NSI+IuC3gOC3muC2veC3j+C3gCDgt4Pgtprgt4PgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kaWFsb2dfdGl0bGUiIG1zZ2lkPSI1ODc5NDUwNjU5NDUzNzgyMjc4Ij4i4Lav4LeS4Lax4La6IOC3g+C3kOC2muC3g+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfdGltZV9zZXQiIG1zZ2lkPSI1Nzc3MDc1NjE0MzIxMDg3NzU4Ij4i4LeD4Laa4LeD4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV90aW1lX2RvbmUiIG1zZ2lkPSIyNTA3NjgzNzUxNzU5MzA4ODI4Ij4i4LeE4La74LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybXNfbmV3X3Blcm1fcHJlZml4IiBtc2dpZD0iODI1Nzc0MDcxMDc1NDMwMTQwNyI+PGZvbnQgc2l6ZT0iMTIiIGZnY29sb3I9IiNmZjMzYjVlNSI+IuC2heC2veC3lOC2reC3ijogIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1zX2Rlc2NyaXB0aW9uX2FwcCIgbXNnaWQ9IjUxMzk4MzYxNDMyOTMyOTk0MTciPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+IOC3gOC3kuC3g+C3kuC2seC3iiDgt4PgtrTgtrrgtrEg4La94Lav4LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX3Blcm1pc3Npb25zIiBtc2dpZD0iNzI4MzM1NzcyODIxOTMzODExMiI+IuC2heC3gOC3g+C2uyDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4La44LeQ4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybV9jb3N0c19tb25leSIgbXNnaWQ9IjQ5MDI0NzAzMjQxNDIxNTExMTYiPiLgtrjgt5ngtrjgtp/gt5LgtrHgt4og4LaU4La24LanIOC2uOC3lOC2r+C2veC3iiDgt4Dgt5Dgtrog4LeA4LeS4La6IOC3hOC3kOC2miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2FjdGl2aXR5X3RpdGxlIiBtc2dpZD0iNDQ2NTA1NTE1NzIwOTY0ODY0MSI+IlVTQiDgtrjgt4Tgt48g4LaG4Lag4La64Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfdGl0bGUiIG1zZ2lkPSI1OTAxNDU5MDQxMzk4NzUxNDk1Ij4iVVNCIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC3kuC2reC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzMwODUzODA5NDMxNjQ3NzgzOSI+IuC2lOC2tiDgtpTgtrbgtpzgt5og4La04La74LeS4Lac4Lar4Laa4La64LanIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgt4Dgt5Mg4LaH4Lat4LeK4Lat4LeaIFVTQiDgt4Pgt4rgtrTgtrvgt4rgt4Hgtrog4LeE4La74LeE4LeP4La6LiDgtpTgtrbgtqcg4LaU4La24LeaIOC2tOC2u+C3kuC2nOC2q+C2muC2uiDgt4Tgt48g4LaU4La24Lac4LeaIEFuZHJvaWQgVVNCIOC2huC2oOC2uuC2seC2uiDgtoXgtq3gtrsg4Lac4Lec4Lax4LeUIOC2tOC3kuC2p+C2tOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4LeA4LeB4LeK4oCN4La6IOC2seC2uOC3iiDgtrTgt4Tgtq0g4La24Lec4Lat4LeK4Lat4La4IOC2lOC2tuC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA1MzUxMDAwNDQ2MDM3ODExIj4i4LaU4La2IOC2lOC2tuC2nOC3miDgtrTgtrvgt5LgtpzgtqvgtprgtrrgtqcgVVNCIOC3hOC2u+C3hOC3jyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeTIOC2h+C2rS4g4LaU4La24LanIOC2lOC2tuC3miDgtrTgtrvgt5Lgtpzgtqvgtprgtrog4LeE4LePIOC2lOC2tuC2nOC3miBBbmRyb2lkIFNEIOC2tOC2rSDgtoXgtq3gtrsg4Lac4Lec4Lax4LeUIOC2tOC3kuC2p+C2tOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4LeA4LeB4LeK4oCN4La6IOC2seC2uOC3iiDgtrTgt4Tgtq0g4La24Lec4Lat4LeK4Lat4La4IOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfYnV0dG9uX21vdW50IiBtc2dpZD0iMTA1MjI1OTkzMDM2OTUwODIzNSI+IlVTQiDgtobgtqDgtrrgtrHgtrog4LeD4Laa4LeK4oCN4La74LeS4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2Vycm9yX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzAxNzA0NTIxNzM2NTU0MDY1OCI+IlVTQiDgtrjgt4Tgt48g4LaG4Lag4La64Lax4La6IOC3g+C2s+C3hOC3jyDgtpTgtrbgtpzgt5ogVVNCIOC2huC2oOC2uuC2seC2uiDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5rgtq/gt5Mg4Lac4LeQ4Lan4LeF4LeU4LeA4Laa4LeKIOC2reC3kuC2tuC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjg3NjAxODUxMjcxNjk3MDMxMyI+IlVTQiDgtrjgt4Tgt48g4LaG4Lag4La64Lax4La6IOC3g+C2s+C3hOC3jyDgtpTgtrbgtpzgt5ogU0Qg4La04LatIOC2t+C3j+C3gOC3kuC2reC2uuC3muC2r+C3kyDgtpzgt5Dgtqfgt4Xgt5Tgt4Dgtprgt4og4Lat4LeS4La24LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjgxNzU4OTI1NTQ3NTcyMTY1MjUiPiJVU0Ig4LeD4La44LeK4La24Lax4LeK4Law4LeS4Lat4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5Mzk4MjI3ODM4MjgxODM3NjMiPiLgtpTgtrbgtpzgt5og4La04La74LeS4Lac4Lar4Laa4La6IOC3gOC3meC2reC2py/gt4Dgt5ngtq3gt5LgtrHgt4og4Lac4Lec4Lax4LeUIOC2tOC3kuC2p+C2tOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIzMzYwNTgzOTY2NjM1MTYwMTciPiJVU0Ig4LaG4Lag4La64Lax4La6IOC2heC2muC3iuKAjeC2u+C3kuC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTY1Njg1MjA5ODU1NTYyMzgyMiI+IlVTQiDgtobgtqDgtrrgtrHgtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgt4Pgt4rgtrTgtrvgt4rgt4Eg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfdGl0bGUiIG1zZ2lkPSI2NjAxMjk4NTE3MDg3NzU4NTMiPiJVU0Ig4LaG4Lag4La64Lax4La6IOC2t+C3j+C3gOC3kuC2reC2uuC3miDgtrTgt4Dgtq3gt5MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDI2NDAyNTI4MDc3NzIxOTUyMSI+IlVTQiDgtobgtqDgtrrgtrHgtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrTgt5ngtrssIOC2lOC2tuC2nOC3miDgtrTgtrvgt5Lgtpzgtqvgtprgtrrgt5ngtrHgt4ogQW5kcm9pZCBVU0Ig4LaG4Lag4La64Lax4La6IOC2nOC2veC3gOC3jyDgtq/gtrjgtrHgt4rgtrEgKFwi4La04LeS4LanIOC2muC2u+C2seC3iuC2sVwiKS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MDQzOTY5NzgyNDYwNjEzMTE0Ij4iVVNCIOC2huC2oOC2uuC2seC2uiDgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4LeS4La74LeT4La44LanIOC2tOC3meC2uywg4LaU4La24Lac4LeaIEFuZHJvaWQgU0Qg4La04LatIOC2tOC2u+C3kuC2nOC2q+C2muC2uuC3meC2seC3iiDgtpzgtr3gt4DgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9idXR0b25fbW91bnQiIG1zZ2lkPSI3MDYwMjE4MDM0OTAwNjk2MDI5Ij4iVVNCIOC2huC2oOC2uuC2seC2uiDgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9lcnJvcl9tZXNzYWdlIiBtc2dpZD0iMTk3MDM3NDg5ODI2MzA2MzgzNiI+IlVTQiDgtobgtqDgtrrgtrHgtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC3muC2r+C3kyDgtpzgt5Dgtqfgt4Xgt5Tgt4Dgtprgt4og4LaH4Lat4LeS4LeA4LeS4La6LiBVU0Ig4LeD4LaC4Lac4LeK4oCN4La74LeP4LeE4Laa4La6IOC2nOC2veC3gOC3jyDgtofgtq3gt5Ig4Lav4LeQ4La64LeSIOC2tOC2u+C3k+C2muC3iuC3guC3jyDgtprgtrvgtrHgt4rgtrEsIOC2tOC3g+C3lOC3gCDgtrHgt5Dgt4Dgtq3gtq3gt4og4LaL4Lat4LeK4LeD4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfY29uZmlybV9raWxsX3N0b3JhZ2VfdXNlcnNfdGl0bGUiIG1zZ2lkPSI5NjMwMzkwMzM0NzA0Nzg2OTciPiJVU0Ig4LaG4Lag4La64Lax4La6IOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfY29uZmlybV9raWxsX3N0b3JhZ2VfdXNlcnNfdGV4dCIgbXNnaWQ9IjUxMDA0Mjg3NTcxMDc0Njk0NTQiPiLgtpTgtrYgVVNCIOC2huC2oOC2uuC2seC2uiDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4Lax4La44LeKLCDgtpTgtrYg4La34LeP4LeA4LeS4Lat4LePIOC2muC2u+C2sSDgt4Pgtrjgt4Tgtrsg4La64LeZ4Lav4LeU4La44LeKIOC2seC3kOC3gOC2reC3k+C2uCDgt4Pgt4Qg4LaU4La2IFVTQiDgtobgtqDgtrrgtrHgtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC2u+C2sSDgtq3gt5Tgtrvgt5Qg4Lax4Lec4Lat4LeS4La24Lea4LeA4LeTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19lcnJvcl90aXRsZSIgbXNnaWQ9IjczMjM2NTg0Njk2MjY1MTQyMDciPiJVU0Ig4Laa4LeK4oCN4La74LeS4La64LeP4LeA4La94LeS4La6IOC2heC3g+C3j+C2u+C3iuC2ruC2muC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19vayIgbXNnaWQ9IjczNzY5NTMxNjcwMzk4NjU3MDEiPiLgt4Tgtrvgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfbXRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjM2OTk5MTMwOTczOTE1NTAzOTQiPiLgtrjgt4/gtrDgt4rigI3gtrog4LaL4La04LeP4LaC4Lac4La64Laa4LeKIOC2veC3meC3gyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgt5Lgtq3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjE5NjA4MTcxOTIyMTYwNjQ4MzMiPiLgtprgt5Dgtrjgtrvgt4/gt4Dgtprgt4og4La94LeZ4LeDIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgtrsg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2NkX2luc3RhbGxlcl9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2Nzc0NzEyODI3ODkyMDkwNzU0Ij4i4LeD4LeK4Lau4LeP4La04LeS4Lat4La64Laa4LeKIOC2veC3meC3gyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9Ijc4NDgyMzY5NzQwODc2NTM2NjYiPiJVU0Ig4La44LeZ4LeA4La94La44Laa4LanIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC3kuC2reC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjIyOTA4NTkzOTk5ODM3MjAyNzEiPiLgtoXgtrHgt5ngtprgt4ogVVNCIOC3gOC3kuC2muC2veC3iuC2tOC2uiDgt4PgtrPgt4Tgt48g4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iOTAyMDA5MjE5NjA2MTAwNzI2MiI+IlVTQiDgtobgtqDgtrrgtrHgtrog4LeG4Led4La44LeQ4Lan4LeKIOC2muC2u+C2seC3iuC2seC2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNjQ4NDE1OTIxNTI2NTI2MDY5Ij4iU0Qg4La04LatIOC3huC3neC2uOC3kOC2p+C3iiDgtprgtrvgtrHgt4rgtrHgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkzNDAxNjg1MzQyNTc2MTA3OCI+IuC2lOC2tuC2nOC3miBVU0Ig4LaG4Lag4La64Lax4La64LeaIOC2h+C2reC3kiDgt4Pgt5Lgtrrgtr3gt5Tgtrgg4Lac4Lec4Lax4LeUIOC2uOC3kOC2muC3kyDgtrrgtrHgt5Qg4LaH4LatLiDgtrjgt5ngtrgg4Laa4LeK4oCN4La74LeS4La64LeP4LeAIOC2huC2tOC3g+C3lCDgt4Tgt5Dgtrvgt4Dgt5Lgtrog4Lax4Lec4LeE4LeQ4LaaISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQxMzE4OTUwMjc1NDM4MzAiPiLgtpTgtrbgtpzgt5og4La04Lat4LeaIOC3g+C3kuC2uuC2veC3lCDgtq/gtq3gt4rgtq0g4Lax4LeQ4Lat4LeSIOC3gOC2seC3lCDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X2J1dHRvbl9mb3JtYXQiIG1zZ2lkPSI0MTMxMDY0NTYwMTI3NDc4Njk1Ij4i4LeG4Led4La44LeQ4Lan4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2NzI5MDQ0Nzc4OTQ5MTg5OTE4Ij4iVVNCIOC2seC3kuC2r+C3nOC3g+C3iuC2muC2u+C2q+C2uiDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgt5Lgtq3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGJfYWN0aXZlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTAxNjY1NDYyNzYyNjQ3NjE0MiI+IlVTQiDgtrHgt5Lgtq/gt5zgt4Pgt4rgtprgtrvgtqvgtrog4LaF4La24La9IOC2muC3kuC2u+C3k+C2uOC2pyDgt4Pgt4rgtrTgtrvgt4rgt4Eg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9pbnB1dF9tZXRob2QiIG1zZ2lkPSI0NjUzMzg3MzM2NzkxMjIyOTc4Ij4i4LaG4Lav4LeP4LaxIOC2muC3iuKAjeC2u+C2uOC2uuC2muC3iiDgtq3gt53gtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjkwOTE2NTIxNTc3MjI0OTUxMTYiPiLgtobgtq/gt4/gtrEg4Laa4LeK4oCN4La74La4IOC3g+C2muC3g+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9IjYyMDMxMTI0NzgwOTUxMTc2MjUiPiLgtrfgt57gtq3gt5Lgtpog4La64Lat4LeU4La74LeUIOC2tOC3lOC3gOC2u+C3lOC3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhhcmR3YXJlIiBtc2dpZD0iNzUxNzgyMTA4Njg4ODk5MDI3OCI+IuC2r+C3mOC2qOC3j+C2guC2nCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMTQwNzM2NzAxNzI2MzAzMDc3MyI+IuC2uuC2reC3lOC2u+C3lCDgtrTgt5Tgt4Dgtrvgt5Tgt4Dgtqcg4La04LeS4La74LeS4LeD4LeQ4La94LeQ4LeD4LeK4La4IOC2reC3neC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDY1OTA3NzAwNDQ5MjU3MDYzIj4i4La64Lat4LeU4La74LeUIOC2tOC3lOC3gOC2u+C3lOC3gOC2pyDgtrTgt5Lgtrvgt5Lgt4Pgt5Dgtr3gt5Dgt4Pgt4rgtrjgtprgt4og4Lat4Lea4La74LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFzdF9zY3JvbGxfYWxwaGFiZXQiIG1zZ2lkPSI1NDMzMjc1NDg1NDk5MDM5MTk5Ij4iIEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFzdF9zY3JvbGxfbnVtZXJpY19hbHBoYWJldCIgbXNnaWQ9IjQwMzAxNzA1MjQ1OTUxMjM2MTAiPiIgMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuZGlkYXRlc19zdHlsZSIgbXNnaWQ9IjQzMzM5MTMwODk2MzcwNjIyNTciPjx1PiLgtoXgtrTgt5rgtprgt4rgt4LgtprgtrrgtrHgt4oiPC91Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNDQ5ODE2MDA1MzUxNDY4NTYwIj4iVVNCIOC2huC2oOC2uuC2seC2uiDgt4Pgtprgt4Pgtrjgt5LgtrHgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTQ1NzYwMzQxODk3MDk5NDA1MCI+IlNEIOC2tOC2rSDgt4Pgt5Tgtq/gt4/gtrHgtrjgt4og4Laa4La74La44LeS4Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iODI4NzMxOTg4MjkyNjczNzA1MyI+IuC3gOC3kOC2u+C2r+C3kiDgt4PgtrPgt4Tgt48g4La04La74LeT4Laa4LeK4LeC4LePIOC2muC2u+C2uOC3kuC2seC3ii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzc4ODA0MDc0NTY4NjIyOTMwNyI+IuC3hOC3kuC3g+C3iiBVU0Ig4LaG4Lag4La64Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzgwNDc3ODM4MjQxMjEyOTk3Ij4i4LeE4LeS4LeD4LeKIFNEIOC2tOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc4NDAxMjEwNjc0MjcyNjk1MDAiPiJTRCDgtrTgtq0g4LeE4LeS4LeD4LeKIOC3hOC3nSDgt4Pgt4Tgt4/gtrog4Lax4Lec4Lav4Laa4LeK4LeA4LaxIOC2nOC3nOC2seC3lCDgtrTgtq/gt4rgtrDgtq3gt5Lgtrrgtprgt4og4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODY0MTA2NTY0MTc4NjkyMzYwNCI+IlNEIOC2tOC2rSDgt4Tgt5Lgt4Pgt4og4LeE4LedIOC3g+C3hOC2uiDgtrHgt5zgtq/gtprgt4rgt4DgtrEg4Lac4Lec4Lax4LeUIOC2tOC2r+C3iuC2sOC2reC3kuC2uuC2muC3iiDgtofgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjIwOTAwNDY3Njk1MzI3MTM1NjMiPiLgt4Tgt4/gtrHgt5Ig4LeA4LeWIFVTQiDgtobgtqDgtrrgtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjQxMDcyMzkwNjAxOTEwMDE4OSI+IuC3hOC3j+C2seC3kiDgt4Dgt5YgU0Qg4La04LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE3OTU5MTc1NzgzOTUzMzMyODAiPiJVU0Ig4LaG4Lag4La64Lax4La64LanIOC3hOC3j+C2seC3kiDgt4Dgt5Mg4LaH4LatLiDgtpHgtrog4Lax4LeQ4LeA4LatIOC3huC3neC2uOC3kOC2p+C3iiDgtpzgt5DgtrHgt4rgt4Dgt5Pgtrjgtqcg4LaL4Lat4LeK4LeD4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNzUzODk4NTY3NTI1NTY4MjUzIj4iU0Qg4La04Lat4LanIOC3hOC3j+C2seC3kiDgt4Dgt5Mg4LaH4LatLiDgtpHgtrog4Lax4LeQ4LeA4LatIOC3huC3neC2uOC3kOC2p+C3iiDgtpzgt5DgtrHgt4rgt4Dgt5Pgtrjgtqcg4LaL4Lat4LeK4LeD4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMTY2MTY4MzAzMTMzMDk1MTA3MyI+IuC2tuC2veC3j+C2tOC3nOC2u+C3nOC2reC3iuC2reC3lCDgtrHgt5zgt4Dgt5Yg4La94LeZ4LeDIFVTQiDgtobgtqDgtrrgtrHgtrog4LaJ4LeA4Lat4LeKIOC2muC3meC2u+C3kuC2q+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NzIxNTI4ODI2MDQ0MDc4MzciPiJTRCDgtrTgtq0g4La24La94LeP4La04Lec4La74Lec4Lat4LeK4Lat4LeUIOC2u+C3hOC3kuC2reC3gCDgtongt4Dgtq3gt4og4Laa4La74LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQzMjk4NDg4MTk4NjU1OTQyNDEiPiLgtq/gtq3gt4rgtq0g4Lax4LeQ4Lat4LeS4LeA4LeT4La4IOC3gOC3kOC3heC2muC3iuC3gOC3k+C2uOC2pyBVU0Ig4LaG4Lag4La64Lax4La6IOC2ieC3gOC2reC3iuC2muC3kuC2u+C3k+C2uOC2pyDgtrTgt5ngtrsg4Lac4La94LeA4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzI2MDE4MzI5Mzc0NzQ0ODI0MSI+IuC2r+C2reC3iuC2rSDgtrHgt5Dgtq3gt5Lgt4Dgt5Pgtrgg4LeA4LeQ4LeF4Laa4LeK4LeA4LeT4La44LanIOC2nOC3kOC2veC3gOC3k+C2uOC2pyDgtprgtr3gt5LgtrHgt4ogU0Qg4La04LatIOC2ieC3gOC2reC3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzk2Nzk3Mzg5MzI3MDM2MDIzMCI+IuC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5PgtrjgtqcgVVNCIOC2huC2oOC2uuC2seC2uiDgtobgtrvgtprgt4rgt4Lgt5Lgtq3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY3Mjk4MDExMzA3OTA2MTYyMDAiPiJTRCDgtrTgtq0g4LaJ4LeA4Lat4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgt4Pgt5Tgtrvgtprgt4rgt4Lgt5Lgtq3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYxNDIxOTUzNjE2MDY0OTM1MzAiPiLgtpTgtrbgtqcgVVNCIOC2huC2oOC2uuC2seC2uiDgtobgtrvgtprgt4rgt4Lgt5Lgtq3gt4Ag4LaJ4LeA4Lat4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrTgt5Tgt4Xgt5Tgt4DgtrHgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU2ODg0MTI3ODEzODM3NzYwNCI+IuC2lOC2tuC2pyDgtobgtrvgtprgt4rgt4Lgt5Lgtq3gt4AgU0Qg4La04LatIOC2ieC3gOC2reC3iiDgtprgt4Ug4LeE4LeQ4LaaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ0ODYzNzcyMzAxNDAyMjc2NTEiPiJVU0Ig4LaG4Lag4La64Lax4La6IOC2ieC3gOC2reC3iiDgtprgtrvgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODkwMjUxODAzMDQwNDM4MTMxOCI+IlNEIOC2tOC2rSDgtongt4Dgtq3gt4og4Laa4La7IOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjY5MjExMjYxNjI1ODA1NzQxNDMiPiJVU0Ig4LaG4Lag4La64Lax4La6IOC2ieC3gOC2reC3iuC2muC3nOC2pyDgtofgtq0uIOC2heC2veC3lOC2reC3iiDgtrjgt4/gtrDgt4rigI3gtrrgtrrgtprgt4og4LaH4Lat4LeU4LeF4Lat4LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM4NzAxMjA2NTI5ODM2NTk2NDEiPiJTRCDgtrTgtq0g4LaJ4LeA4Lat4LeKIOC2muC2u+C2sSDgtr3gtq/gt5IuIOC2heC2veC3lOC2reC3iiDgtpHgtprgtprgt4og4LaH4Lat4LeU4LeF4Lat4LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9saXN0X2VtcHR5IiBtc2dpZD0iMTY3NTM4ODMzMDc4Njg0MTA2NiI+IuC2nOC3kOC2veC2tOC3meC2sSDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgtprgtrjgt4og4LeE4La44LeUIOC2seC3nOC3gOC3lOC2q+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BrZ1VzYWdlU3RhdHMiIG1zZ2lkPSI4Nzg3MzUyMDc0MzI2NzQ4ODkyIj4i4LeD4LaC4La74Lag4Laa4La6IOC2t+C3j+C3gOC3kuC2rSDgtprgt5Lgtrvgt5Pgtrjgt5og4LeD4LaC4Lab4LeK4oCN4La64LeP4LaxIOC2uuC3j+C3gOC2reC3iuC2muC3j+C2veC3k+C2sSDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wa2dVc2FnZVN0YXRzIiBtc2dpZD0iMTEwNjYxMjQyNDI1NDI3NzYzMCI+IuC2keC2muC2reC3lCDgtprgtrvgtrEg4La94LavIOC3g+C2guC2u+C2oOC2muC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4LeD4LaC4Lab4LeK4oCN4La64LeP4LaxIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvcHlQcm90ZWN0ZWREYXRhIiBtc2dpZD0iNDM0MTAzNjMxMTIxMTQwNjY5MiI+IuC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uiDgtrTgt5LgtqfgtrTgtq3gt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29weVByb3RlY3RlZERhdGEiIG1zZ2lkPSI0MzkwNjk3MTI0Mjg4MzE3ODMxIj4i4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC2tOC3kuC2p+C2tOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeU4La04LeU4La74LeU4Lav4LeUIOC2heC2seC3iuC2reC2u+C3iuC2nOC2rSDgt4Pgt5rgt4Dgt4/gt4Ag4LaJ4La94LeK4LeA4LePIOC3g+C3kuC2p+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2vSDgtrfgt4/gt4Dgt5Lgtq3gtrog4LeD4Laz4LeE4LePIOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JvdXRlX21lZGlhX291dHB1dCIgbXNnaWQ9IjE2NDIwMjQ0NTU3NTA0MTQ2OTQiPiLgtrjgt4/gtrDgt4rigI3gtrog4La04LeK4oCN4La74Lat4LeS4Lav4LeP4Lax4La64LeaIOC2uOC3j+C2u+C3iuC2nOC2nOC2rSDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yb3V0ZV9tZWRpYV9vdXRwdXQiIG1zZ2lkPSI0OTMyODE4NzQ5NTQ3MjQ0MzQ2Ij4i4LeA4LeZ4Lax4Lat4LeKIOC2tuC3j+C3hOC3kuC2uyDgtovgtrTgt4/gtoLgtpwg4LeA4LeZ4LatIOC2uOC3j+C2sOC3iuKAjeC2uiDgtrTgt4rigI3gtrvgtq3gt5Lgtq/gt4/gtrHgtrog4La64LeQ4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzX2tleWd1YXJkX3NlY3VyZV9zdG9yYWdlIiBtc2dpZD0iNzU2NTU1MjIzNzk3NzgxNTA0NyI+IuC2uuC2reC3lOC2u+C3lCDgtrTgt4/gtr3gtpog4LaG4La74Laa4LeK4oCN4LeC4LeS4LatIOC2huC2oOC2uuC2seC2uiDgt4Dgt5ngtq0g4La04LeK4oCN4La74LeA4Lea4LeB4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzX2tleWd1YXJkX3NlY3VyZV9zdG9yYWdlIiBtc2dpZD0iNTg2NjI0NTQ4NDMwMzI4NTc2MiI+IuC2uuC2reC3lOC2u+C3lCDgtobgtrvgtprgt4rgt4Lgtpog4LaG4Lag4La64Lax4La64LanIOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xfa2V5Z3VhcmQiIG1zZ2lkPSIxNzIxOTUxODQyMDc4MjgzODciPiLgtrTgt5ngtrHgt4rgt4Dgt5Pgtrjgt5og4LeE4LePIOC3g+C3kOC2n+C3gOC3k+C2uOC3miDgtrrgtq3gt5Tgtrvgt5Qg4LaG4La74Laa4LeK4LeC4Laa4La6IOC2tOC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sX2tleWd1YXJkIiBtc2dpZD0iMzA0MzczMjI5MDUxODYyOTA2MSI+IuC2uuC2reC3lOC2u+C3lCDgtobgtrvgtprgt4rgt4Lgtprgtrog4La04LeP4La94Lax4La64LanIOC2uuC3meC2r+C3lOC2uOC2muC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InR1dG9yaWFsX2RvdWJsZV90YXBfdG9fem9vbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNDA3MDQzMzIwODE2MDA2MzUzOCI+IuC3gOC3kuC3geC3j+C2veC2sSDgtrTgt4/gtr3gtrHgtrog4LeD4Laz4LeE4LePIOC2r+C3meC3gOC2u+C2muC3iiDgt4Pgt4rgtrTgtrvgt4rgt4Eg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2FkZ2V0X2hvc3RfZXJyb3JfaW5mbGF0aW5nIiBtc2dpZD0iNDg4MjAwNDMxNDkwNjQ2NjE2MiI+IuC3gOC3kuC2ouC2p+C2uiDgtpHgtprgtq3gt5Qg4Laa4LeS4La74LeT4La44LanIOC2seC3nOC3hOC3kOC2muC3kiDgt4Dgt5LgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9nbyIgbXNnaWQ9IjgzMjA4NDU2NTE3MzczNjkwMjciPiLgtrrgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3NlYXJjaCIgbXNnaWQ9IjY1ODExMDI3MTgyMjgwNzgxMSI+IuC3g+C3meC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fc2VuZCIgbXNnaWQ9IjIzMTYxNjY1NTYzNDkzMTQ0MjQiPiLgtrrgt4DgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX25leHQiIG1zZ2lkPSIzMTM4ODQzOTA0MDA5ODEzODM0Ij4i4La44LeT4La94LafIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9kb25lIiBtc2dpZD0iODk3MTUxNjExNzkxMDkzNDYwNSI+IuC3hOC2u+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fcHJldmlvdXMiIG1zZ2lkPSIxNDQzNTUwMDM5MjUwMTA1OTQ4Ij4i4La04LeZ4La7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9kZWZhdWx0IiBtc2dpZD0iMjg0MDkyMTg4NTU1ODA0NTcyMSI+IuC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC2u+C3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpYWxfbnVtYmVyX3VzaW5nIiBtc2dpZD0iNTc4OTE3NjQyNTE2NzU3MzU4NiI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVzPC94bGlmZjpnPiDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4pcbuC2heC2guC2muC2uiDgtoXgtrjgtq3gtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfY29udGFjdF91c2luZyIgbXNnaWQ9IjQ5NDc0MDUyMjY3ODgxMDQ1MzgiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lczwveGxpZmY6Zz4g4La34LeP4LeA4LeS4Lat4La64LeZ4Lax4LeKXG7gt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt4/gt4Dgtrrgtprgt4og4Lax4LeS4La74LeK4La44LeP4Lar4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW50X2NyZWRlbnRpYWxzX3Blcm1pc3Npb25fbWVzc2FnZV9oZWFkZXIiIG1zZ2lkPSIyMTA2MTAzODE3OTM3ODU5NjYyIj4i4La04LeE4LatIOC2r+C3kOC2muC3iuC3gOC3meC2sSDgtpHgtprgtprgt4og4LeE4LedIOC2iuC2pyDgt4Dgt5Dgtqngt5Ig4La64LeZ4Lav4LeU4La44LeKIOC2nOC2q+C2seC2muC3iiDgtpTgtrbgtpzgt5og4Lac4LeS4Lar4LeU4La44LanIOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgt4Dgt5PgtrjgtqcsIOC2r+C3kOC2seC3iiDgt4Pgt4Qg4LaJ4Lav4LeS4La74LeS4La64Lea4Lav4LeTIOC2heC3gOC3g+C2uyDgtongtr3gt4rgtr3gtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnRfY3JlZGVudGlhbHNfcGVybWlzc2lvbl9tZXNzYWdlX2Zvb3RlciIgbXNnaWQ9IjMxMjUyMTEzNDMzNzkzNzY1NjEiPiLgtrjgt5ngtrgg4LaJ4La94LeK4La94LeT4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5Pgtrjgtqcg4LaU4La24LanIOC2heC3gOC3geC3iuKAjeC2uuC2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9wZXJtaXNzaW9uc19oZWFkZXJfdGV4dCIgbXNnaWQ9IjY4NzQ0OTc0MDgyMDE4MjY3MDgiPiLgtrTgt4rigI3gtrvgt4Dgt5rgt4Hgtrog4LaJ4La94LeK4La94LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3ciIG1zZ2lkPSI3MjI1OTQ4ODExMjk2Mzg2NTUxIj4i4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnkiIG1zZ2lkPSIyMDgxODc5ODg1NzU1NDM0NTA2Ij4i4La04LeK4oCN4La74Lat4LeS4Laa4LeK4LeC4Lea4La0IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1pc3Npb25fcmVxdWVzdF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2NDg2NzU5Nzk1OTI2MjM3OTA3Ij4i4LaF4LeA4LeD4La7IOC2ieC2veC3iuC2veC3jyDgt4Pgt5Lgtqfgt5MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtaXNzaW9uX3JlcXVlc3Rfbm90aWZpY2F0aW9uX3dpdGhfc3VidGl0bGUiIG1zZ2lkPSI4NTMwMzkzMTM5NjM5NTYwMTg5Ij4iPHhsaWZmOmcgaWQ9IkFDQ09VTlQiPiVzPC94bGlmZjpnPiDgtpzgt5Lgtqvgt5Tgtrgg4LeD4Laz4LeE4LePXG7gtoXgt4Dgt4Pgtrsg4LaJ4La94LeK4La94LaxIOC2veC2r+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnB1dF9tZXRob2RfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjEyODM1NTcxNzk5NDQ5OTI2NDkiPiLgtobgtq/gt4/gtrEg4Laa4LeK4oCN4La74La44La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY19iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMzY4Nzk2OTEzODM3NTA5MjQyMyI+IuC3g+C2uOC2uOC3lOC3hOC3lOC2u+C3iuC2reC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjQxNDgxMjA3NDIwOTY0NzQ2NDEiPiLgtrTgt4rigI3gtrvgt4Dgt5rgt4Hgt4rigI3gtrrgtq3gt4/gt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YWxscGFwZXJfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjEyNDAwODc4NDQzMDQ2ODc2NjIiPiLgtrbgt5Lgtq3gt5TgtrTgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VyX3dhbGxwYXBlciIgbXNnaWQ9Ijc4NzM0NzYxOTkyOTUxOTAyNzkiPiLgtrbgt5Lgtq3gt5TgtrTgtq0g4LeA4LeZ4Lax4LeD4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vdGlmaWNhdGlvbl9saXN0ZW5lcl9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMjAxNDE2MjgzNTQ4MTkwNjQyOSI+IuC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC3iiDgtoXgt4PgtrHgt4rgtrHgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGl0bGUiIG1zZ2lkPSIxOTYxNTIxMzU1MjA0MjgyNyI+IlZQTiDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtq3gt4rgtrjgtprgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGl0bGVfbG9uZyIgbXNnaWQ9IjY0MDA3MTQ3OTgwNDkyNTIyOTQiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g4La44Laf4LeS4Lax4LeKIFZQTiDgt4Pgtprgt4rigI3gtrvgt5Pgtrog4Laa4La74LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90ZXh0IiBtc2dpZD0iMzAxMTMwNjYwNzEyNjQ1MDMyMiI+IuC2ouC3j+C2veC2uiDgtprgt4XgtrjgtrHgt4/gtprgtrvgtqvgtrog4Laa4LeS4La74LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RleHRfbG9uZyIgbXNnaWQ9IjY0MDczNTEwMDYyNDkxNzQ0NzMiPiI8eGxpZmY6ZyBpZD0iU0VTU0lPTiI+JXM8L3hsaWZmOmc+IOC3gOC3meC2rSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeU4Lar4LeSLiDgtqLgt4/gtr3gtrog4Laa4LeF4La44Lax4LeP4Laa4La74Lar4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgt4Pgt4rgtrTgtrvgt4rgt4Eg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0aW5nIiBtc2dpZD0iNjQ0MzQzODk2NDQ0MDk2MDc0NSI+IuC3g+C3kOC2uOC3gOC3kuC2p+C2uCBWUE4g4LeD4La44LeK4La24Lax4LeK4LawIOC3gOC3meC2uOC3kuC2seC3iuKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0ZWQiIG1zZ2lkPSI4MjAyNjc5Njc0ODE5MjEzOTMxIj4i4Lax4LeS4La74Lat4LeU4La74LeU4LeA4La4IFZQTiDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4Laa4La7IOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9lcnJvciIgbXNnaWQ9IjYwMDkyNDk4MTQwMzQ3MDgxNzUiPiLgt4Pgt5Dgtrjgt4Dgt5Lgtqcg4LeD4Laa4LeK4oCN4La74LeS4La6IFZQTiDgtq/gt53gt4LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29uZmlnIiBtc2dpZD0iNjQxNTg5OTE1MDY3MTUzNzk3MCI+IuC3gOC3kuC2seC3iuKAjeC2uuC3j+C3gyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVwbG9hZF9maWxlIiBtc2dpZD0iMjg5Nzk1NzE3MjM2NjczMDQxNiI+IuC2nOC3nOC2seC3lOC3gCDgtq3gt53gtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19maWxlX2Nob3NlbiIgbXNnaWQ9IjYzNjM2NDg1NjIxNzA3NTk0NjUiPiLgtpzgt5zgtrHgt5Tgt4Dgtprgt4og4Lat4Led4La74LeP4Lac4LeZ4LaxIOC2seC3kOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc2V0IiBtc2dpZD0iMjQ0ODE2ODA4MDk2NDIwOTkwOCI+IuC2uuC3heC3kiDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4DgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdWJtaXQiIG1zZ2lkPSIxNjAyMzM1NTcyMDg5OTExOTQxIj4i4La64Lec4La44LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcl9tb2RlX2Rpc2FibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMzE2NDc2ODIxMjAwMzg2NDMxNiI+IuC2uOC3neC2p+C2u+C3iiDgtrvgtq4g4LaG4Laa4LeP4La74La6IOC3g+C2tuC2vSDgtprgtrsg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FyX21vZGVfZGlzYWJsZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjgwMzUyMzA1Mzc1NjM1MDMyNjIiPiLgtrjgt53gtqfgtrvgt4og4La74LauIOC2huC2muC3j+C2u+C2uuC3meC2seC3iiDgtrTgt5Lgtqfgt4Dgt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXRoZXJlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIzMTQ2Njk0MjM0Mzk4MjAyNjAxIj4i4Lan4LeZ4Lav4La74LeS4Lax4LeKIOC3hOC3nSDgt4Tgt5zgtqfgt4rgt4Pgt4rgtrTgt5zgtqfgt4og4LeD4Laa4LeK4oCN4La74LeT4La64La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV0aGVyZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI2ODU3MDMxNzYwMTAzMDYyOTgyIj4i4LeD4Laa4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgt4Pgt4rgtrTgtrvgt4rgt4Eg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2tfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMjMwMDQ3MDAwNDUwMzM0MzQzOSI+IuC2huC2tOC3g+C3lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5leHRfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTA4MDU1NTEwNDY3Nzk5MjQwOCI+IuC2uOC3k+C2veC2nyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNraXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTI3NTM2MjI5OTQ3MTYzMTgxOSI+IuC2uOC2nyDgt4Tgtrvgt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZV93YXJuaW5nX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjQ4OTA4OTQyNjc0NTQ4NjcyNzYiPiLgtongt4Tgt4Ug4Lai4LaC4Lac4La4IOC2r+C2reC3iuC2rSDgtrfgt4/gt4Dgt5Lgtq3gtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZV93YXJuaW5nX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMzM0MDgyMjIyODU5OTMzNzc0MyI+IuC2ouC2guC2nOC2uCDgtq/gtq3gt4rgtq0g4La34LeP4LeA4LeS4Lat4La6IOC2nOC3kOC2sSDgtq3gt4Ag4Lav4LeQ4Lax4Lac4LeQ4Lax4LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGhyb3R0bGVkX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjYyNjk1NDE4OTc3Mjk3ODEzMzIiPiLgtqLgtoLgtpzgtrgg4Lav4Lat4LeK4LatIOC3g+C3k+C2uOC3j+C3gCDgtongtprgt4rgtrjgt4Dgt48g4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGhyb3R0bGVkX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iNTQ0MzQ1NzMyMTM1NDkwNzE4MSI+IuC2ouC2guC2nOC2uCDgtq/gtq3gt4rgtq0g4La34LeP4LeA4LeS4Lat4La6IOC2nOC3kOC2sSDgtq3gt4Ag4Lav4LeQ4Lax4Lac4LeQ4Lax4LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fbWF0Y2hlcyIgbXNnaWQ9IjgxMjk0MjE5MDg5MTU4NDA3MzciPiLgtpzgt5Dgtr3gtrTgt5Pgtrjgt4og4Lax4LeQ4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZF9vbl9wYWdlIiBtc2dpZD0iMTk0Njc5OTIzMzgyMjgyMDM4NCI+IuC2tOC3kuC2p+C3lOC3gOC3meC3hOC3kiDgt4Pgt5ngt4Dgt5PgtrgiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9Im1hdGNoZXNfZm91bmQiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTY3MTQ3MDgxMTM2NTc5NDM5Ij4i4Lac4LeQ4LeF4La04LeT4La44LeKIDEg4La64LeSIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NjQxODcyNzk3MDY3NjA5MTc3Ij4iPHhsaWZmOmcgaWQ9IlRPVEFMIj4lZDwveGxpZmY6Zz4g4Laa4LeS4Lax4LeKIDx4bGlmZjpnIGlkPSJJTkRFWCI+JWQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX21vZGVfZG9uZSIgbXNnaWQ9IjcyMTc1ODE2NDA0NjE5MjIyODkiPiLgt4Tgtrvgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc191bm1vdW50aW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5MjM4MTA0NDg1MDc2MTI3NDYiPiJVU0Ig4LaG4Lag4La64Lax4La6IOC2nOC3kOC2veC3gOC3k+C2uC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMzI3ODk0OTk4NDA5NTM3MTkwIj4iU0Qg4La04LatIOC2nOC2veC3gOC2uOC3kuC2seC3ii4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX2VyYXNpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDUyMTU3MzMyMTUyNDM0MDA1OCI+IlVTQiDgtobgtqDgtrrgtrHgtrog4La44Laa4La44LeS4Lax4LeKLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfZXJhc2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1OTY5ODg4NzU1MDcwNDMwNDIiPiJTRCDgtrTgtq0g4La44Laa4La44LeS4Lax4LeKLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyOTk3Njk1NjM2MjQ3NzY5NDgiPiJVU0Ig4LaG4Lag4La64Lax4La6IOC2uOC3kOC2muC3kuC2uiDgtrHgt5zgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzMxNTI0ODY5NjY0NDUxMDkzNSI+IlNEIOC2tOC2rSDgtrjgt5Dgtprgt5Pgtrjgtqcg4Lax4Lec4LeE4LeQ4Laa4LeSIOC3gOC3kuC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9iYWRfcmVtb3ZhbCIgbXNnaWQ9Ijc5NjA4NjQwNjEwMTY2MDMyODEiPiLgtpzgt5Dgtr3gt4Dgt5Pgtrjgtqcg4La04LeZ4La7IFNEIOC2tOC2rSDgtongt4Dgtq3gt4rgtprgtrsg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2NoZWNraW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQxODE4ODcyMDAwOTU2OTY5MyI+IlVTQiDgtobgtqDgtrrgtrHgtrog4La44LeaIOC3gOC2seC3gOC3kuC2pyDgtrTgtrvgt5Pgtprgt4rgt4Lgt48g4Laa4La74La44LeS4Lax4LeKIOC2tOC3gOC2reC3ky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9jaGVja2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMzQ3NjI1MDM5MDQ4Mjc0ODEiPiJTRCDgtrTgtq0g4Lav4LeQ4Lax4LeKIOC2tOC2u+C3k+C2muC3iuC3guC3jyDgtprgtrvgtrjgt5LgtrHgt4og4La04LeA4Lat4LeTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JlbW92ZWQiIG1zZ2lkPSI3MDAxNTI2OTA1MDU3OTUyMDk3Ij4iU0Qg4La04LatIOC2ieC3gOC2reC3iiDgtprgtrsg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3NoYXJlZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI1ODMwODE0MzQ5MjUwODM0MjI1Ij4i4La04La74LeS4Lac4Lar4Laa4La64Laa4LeKIOC3gOC3kuC3g+C3kuC2seC3iiDgtq/gt5DgtrHgt4ogVVNCIOC2huC2oOC2uuC2seC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3NoYXJlZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MDYxMzA1NjgxMzM1NDA0MzUiPiJTRCDgtrTgtq0g4Lav4LeQ4Lax4LanIOC2tOC2u+C3kuC2nOC2q+C2muC2uuC2muC3kuC2seC3iiDgtrTgt4/gt4Dgt5LgtqDgt4rgtqDgt5Ig4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3Vua25vd25fc3RhdGUiIG1zZ2lkPSI3MjkxOTI3ODIxOTcyOTAzODUiPiLgtrbgt4/gt4Tgt5Lgtrsg4La44LeP4Law4LeK4oCN4La64La6IOC2seC3nOC2r+C2seC3iuC2seC3jyDgtoXgt4Dgt4Pgt4rgtq7gt4/gt4Dgt5og4La04LeA4Lat4LeS4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlIiBtc2dpZD0iMTc3ODY4NjYxODIzMDAxMTk2NCI+IuC2tuC3meC2r+C3j+C2nOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmQiIG1zZ2lkPSI0ODA4MjcwOTAwMzIyOTg1OTYwIj4i4LeD4Lec4La64Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2Vic2VhcmNoIiBtc2dpZD0iNDMzNzE1Nzk3NzQwMDIxMTU4OSI+IuC3gOC3meC2tuC3iiDgt4Pgt5ngt4Dgt5TgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kX25leHQiIG1zZ2lkPSI1NzQyMTI0NjE4OTQyMTkzOTc4Ij4i4La44LeT4LeF4LafIOC3g+C3nOC2uuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmRfcHJldmlvdXMiIG1zZ2lkPSIyMTk2NzIzNjY5Mzg4MzYwNTA2Ij4i4La04LeZ4La7IOC2keC2miDgt4Pgt5zgtrrgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNOb3RpZlRpY2tlciIgbXNnaWQ9IjU2MjI2ODM5MTI2MTY0OTYxNzIiPiI8eGxpZmY6ZyBpZD0iTkFNRSI+JXM8L3hsaWZmOmc+IOC2nOC3meC2seC3iiDgt4Pgt4rgtq7gt4/gtrHgtrog4LaJ4La94LeK4La94LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZUaXRsZSIgbXNnaWQ9IjU0NDY4NTg3MTcxNTc0MTY4MzkiPiLgt4Pgt4rgtq7gt4/gtrEg4LaJ4La94LeK4La94LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZNZXNzYWdlIiBtc2dpZD0iMTM3NDcxODAyMzIyNDAwMDcwMiI+Ijx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPiAoPHhsaWZmOmcgaWQ9IlNFUlZJQ0UiPiUyJHM8L3hsaWZmOmc+KSDgt4Dgt5Lgt4Pgt5LgtrHgt4og4LaJ4La94LeK4La94LaxIOC2veC2ryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmWWVzIiBtc2dpZD0iMjM0NjU2NjA3Mjg2NzIxMzU2MyI+IuC2lOC3gOC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmTm8iIG1zZ2lkPSIxMTQ2NTY0OTM3MzQ2NDU0ODY1Ij4i4Lax4LeQ4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzIiBtc2dpZD0iNTI5NjMyMTg1MDY2Mjc0Njg5MCI+IuC2uOC3kOC2muC3k+C2uOC3miDgt4Pgt5Pgtrjgt4/gt4Ag4LaJ4Laa4LeK4La44LeA4LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfdG9vX21hbnlfZGVsZXRlc19kZXNjIiBtc2dpZD0iNDk2NTUxNjcxMDA4Njk0MjQ1Ij4iPHhsaWZmOmcgaWQ9IlRZUEVfT0ZfU1lOQyI+JTIkczwveGxpZmY6Zz4g4LeD4Laz4LeE4LePIDx4bGlmZjpnIGlkPSJBQ0NPVU5UX05BTUUiPiUzJHM8L3hsaWZmOmc+IOC2nOC3kuC2q+C3lOC2uOC3miDgtrjgtprgtrEg4La94LavIOC2heC2uuC3kuC2reC2uCA8eGxpZmY6ZyBpZD0iTlVNQkVSX09GX0RFTEVURURfSVRFTVMiPiUxJGQ8L3hsaWZmOmc+IOC2muC3iiDgtofgtq0uIOC2lOC2tuC2pyDgtprgt5Tgtrjgtprgt4og4Laa4LeS4La74LeT4La44LanIOC2heC3gOC3geC3iuKAjeC2uuC2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzeW5jX3JlYWxseV9kZWxldGUiIG1zZ2lkPSIyNTcyNjAwMTAzMTIyNTk2MjQzIj4i4LaF4La64LeS4Lat4La4IOC2uOC2muC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfdW5kb19kZWxldGVzIiBtc2dpZD0iMjk0MTMxNzM2MDYwMDMzODYwMiI+IuC2uOC3kOC2muC3k+C2uOC3iiDgtoXgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY19kb19ub3RoaW5nIiBtc2dpZD0iMzc0Mzc2NDc0MDQzMDgyMTg0NSI+IuC2r+C3kOC2seC2pyDgtprgt5Lgt4Pgt5Lgt4Dgtprgt4og4Lax4Lec4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX2FjY291bnRfbGFiZWwiIG1zZ2lkPSI1NjU1MjAzMDg5NzQ2NDIzOTI3Ij4i4Lac4LeS4Lar4LeU4La44Laa4LeKIOC2reC3neC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9hY2NvdW50X2xhYmVsIiBtc2dpZD0iMjkzNTI2NzM0NDg0OTk5MzU1MyI+IuC2nOC3kuC2q+C3lOC2uOC2muC3iiDgtpHgtprgtq3gt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX2FjY291bnRfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMzYxMTk4Mjg5NDg1MzQzNTg3NCI+IuC2nOC3kuC2q+C3lOC2uOC2muC3iiDgtpHgtprgtq3gt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfYnV0dG9uIiBtc2dpZD0iMjQxMjA3MjI3MjgzMjI4NDMxMyI+IuC3gOC3kOC2qeC3kiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJudW1iZXJfcGlja2VyX2RlY3JlbWVudF9idXR0b24iIG1zZ2lkPSI0NzYwNTA3NzgzODY3NzkwNjciPiLgtoXgtqngt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfc2Nyb2xsX21vZGUiIG1zZ2lkPSIzMDczMTAxMDY3NDQxNjM4NDI4Ij4iPHhsaWZmOmcgaWQ9IlZBTFVFIj4lczwveGxpZmY6Zz4g4LeD4LeK4La04La74LeK4LeBIOC2muC2uyDgtrvgtrPgt4Dgt48g4LeD4LeS4Lan4LeS4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfaW5jcmVtZW50X3Njcm9sbF9hY3Rpb24iIG1zZ2lkPSI5MTAxNDczMDQ1ODkxODM1NDkwIj4i4LeA4LeQ4Lap4LeSIOC2muC3kuC2u+C3k+C2uOC2pyDgtongt4Tgtr3gtqcg4LeD4La74LeK4La04Lar4La6IOC2muC2u+C2seC3iuC2sSDgt4Pgt4Qg4LaF4Lap4LeUIOC2muC3kuC2u+C3k+C2uOC2pyDgtrTgt4Tgtr3gtqcg4LeD4La74LeK4La04Lar4La6IOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9pbmNyZW1lbnRfbWludXRlX2J1dHRvbiIgbXNnaWQ9Ijg4NjU4ODUxMTQwMjg2MTQzMjEiPiLgtrjgt5LgtrHgt5Lgtq3gt4rgtq3gt5Tgt4Dgtprgt4og4LeA4LeQ4Lap4LeSIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2RlY3JlbWVudF9taW51dGVfYnV0dG9uIiBtc2dpZD0iNjI0NjgzNDkzNzA4MDY4NDc5MSI+IuC2uOC3kuC2seC3kuC2reC3iuC2reC3lOC3gCDgtoXgtqngt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfaW5jcmVtZW50X2hvdXJfYnV0dG9uIiBtc2dpZD0iMzY1MjA1NjA1NTgxMDIyMzEzOSI+IuC2tOC3kOC2uiDgt4Dgt5Dgtqngt5LgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfaG91cl9idXR0b24iIG1zZ2lkPSIxMzc3NDc5ODYzNDI5MjE0NzkyIj4i4La04LeQ4La6IOC2heC2qeC3lOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2luY3JlbWVudF9zZXRfcG1fYnV0dG9uIiBtc2dpZD0iNDE0NzU5MDY5NjE1MTIzMDg2MyI+IuC2tC7gt4Au4LeD4Laa4LeD4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGVjcmVtZW50X3NldF9hbV9idXR0b24iIG1zZ2lkPSI4MzAyMTQwMzUzNTM5NDg2NzUyIj4i4La04LeZLuC3gC4g4LeD4Laa4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2luY3JlbWVudF9tb250aF9idXR0b24iIG1zZ2lkPSI1MzY5OTk4NDc5MDY3OTM0MTEwIj4i4La44LeP4LeD4La6IOC3gOC3kOC2qeC3kiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kZWNyZW1lbnRfbW9udGhfYnV0dG9uIiBtc2dpZD0iMTgzMjY5ODk5NTU0MTcyNjAxOSI+IuC2uOC3j+C3g+C2uuC2muC3iiDgtoXgtqngt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X2RheV9idXR0b24iIG1zZ2lkPSI3MTMwNDY1NDEyMzA4MTczOTAzIj4i4Lav4LeA4LeDIOC3gOC3kOC2qeC3kiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kZWNyZW1lbnRfZGF5X2J1dHRvbiIgbXNnaWQ9IjQxMzE4ODE1MjE4MTg3NTAwMzEiPiLgtq/gt4Dgt4Mg4LaF4Lap4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2luY3JlbWVudF95ZWFyX2J1dHRvbiIgbXNnaWQ9IjYzMTg2OTczODQzMTA4MDg4OTkiPiLgt4Dgt4Pgtrsg4LeA4LeQ4Lap4LeSIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF95ZWFyX2J1dHRvbiIgbXNnaWQ9IjQ0ODIwMjE4MTM0OTExMjE3MTciPiLgt4Dgt4Pgtrsg4LaF4Lap4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2FsdCIgbXNnaWQ9IjQ4NTY4Njg4MjAwNDAwNTE5MzkiPiJBbHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9jYW5jZWwiIG1zZ2lkPSIxMjAzOTg0MDE3MjQ1NzgzMjQ0Ij4i4LaF4LeA4La94LaC4Lac4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiLgtrjgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kb25lIiBtc2dpZD0iMTk5MjU3MTExODQ2NjY3OTc3NSI+IuC3hOC2u+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX21vZGVfY2hhbmdlIiBtc2dpZD0iNDU0NzM4Nzc0MTkwNjUzNzUxOSI+IuC2huC2muC3j+C2u+C2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiLgtofgtq3gt5Tgtr3gt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4i4La64LeZ4Lav4LeU4La44Laa4LeKIOC2reC3neC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IuC3g+C2uOC2nyDgtrbgt5ngtq/gt4/gtpzgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiDgt4Pgtrjgtp/gt5LgtrHgt4og4La24LeZ4Lav4LePIOC2nOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiLgt4Pgtrvgt4rgtrTgtqsg4LeE4LeQ4Lap4La94La6LiDgt4Pgt4rgtrTgtrvgt4rgt4Eg4Laa4La7IOC2u+C2s+C3gOC3jyDgt4Pgt5Lgtqfgt5PgtrguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3VwIiBtc2dpZD0iNzE2OTAzMjQ3ODI1OTQ4NTE4MCI+Ijx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiDgt4PgtrPgt4Tgt48g4LaL4Lap4LanIOC3g+C2u+C3iuC2tOC2q+C2uiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2Rvd24iIG1zZ2lkPSI1MDg3NzM5NzI4NjM5MDE0NTk1Ij4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IOC3g+C2s+C3hOC3jyDgtrTgt4Tgtr3gtqcg4LeD4La74LeK4La04Lar4La6IOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fbGVmdCIgbXNnaWQ9IjcyMDc0Nzg3MTk4MDU1NjIxNjUiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g4LeD4Laz4LeE4LePIOC3gOC2uOC2pyDgt4Pgtrvgt4rgtrTgtqvgtrog4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g4LeD4Laz4LeE4LePIOC2r+C2muC3lOC2q+C2pyDgt4Pgtrvgt4rgtrTgtqvgtrog4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF91bmxvY2siIG1zZ2lkPSIyMjI4NTI0OTAwNDM5ODAxNDUzIj4i4LaF4Laf4LeU4La9IOC2heC2u+C3kuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9jYW1lcmEiIG1zZ2lkPSI5NjkwNzE5OTc1NTI0ODY4MTQiPiLgtprgt5Dgtrjgtrvgt4/gt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2lsZW50IiBtc2dpZD0iODkzNTUxMjg3NzQ2NTIyMTgyIj4i4Lax4LeS4LeE4LasIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NvdW5kb24iIG1zZ2lkPSIzMDA1MjQ2NjY3NTUwMDE3MiI+IuC3geC2tuC3iuC2ryDgt4Pgtprgt4rigI3gtrvgt5Pgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiLgt4Pgt5ngt4Dgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrX3RhYmxldCIgbXNnaWQ9IjM4MzMxOTUzMzU2Mjk3OTUwNTUiPiLgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC3g+C3iuC3gOC2uuC3kuC2tOC3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfaGVhZHNldF9yZXF1aXJlZF90b19oZWFyX3Bhc3N3b3JkIiBtc2dpZD0iNzAxMTkyNzM1MjI2NzY2ODY1NyI+IuC2uOC3lOC2u+C2tOC2ryDgtrrgtq3gt5Tgtrvgt5Qg4Laa4LeS4La64LeA4Lax4LeUIOC2h+C3g+C3k+C2uOC2pyDgtongt4Pgt4og4La24Lar4LeU4LeA4Laa4LeKIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfcGFzc3dvcmRfY2hhcmFjdGVyX25vX2hlYWRzZXQiIG1zZ2lkPSIyODU5ODczNzcwODg2MTUzNjc4Ij4i4Lax4LeQ4LeA4Lat4LeU4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUyOTM2MDA0OTY2MDE0OTAyMTYiPiLgtrjgt5Tgtr3gt4og4La04LeS4Lan4LeU4LeA4LanIOC3g+C2guC2oOC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fYmFyX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjIzNzQ5NjU2Mjk1MjE1MjU4OSI+IuC2ieC3hOC2veC2pyDgt4PgtoLgtqDgt4/gtr3gtrHgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX21lbnVfb3ZlcmZsb3dfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMjk1NjU5MDM3NTA5MDA4NDUzIj4i4Lat4LeA4Lat4LeKIOC3gOC3kuC2muC2veC3iuC2tCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI3OTY1OTg0MzYwOTAzNjkzOTAzIj4iJTEkcywgJTIkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9zdWJ0aXRsZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI2OTg1NTQ2NTMwNDcxNzgwNzI3Ij4iJTEkcywgJTIkcywgJTMkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfaW50ZXJuYWwiIG1zZ2lkPSI0ODkxOTE2ODMzNjU3OTI5MjYzIj4i4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2huC2oOC2uuC2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2Vfc2RfY2FyZCIgbXNnaWQ9IjMyODI5NDg4NjEzNzgyODY3NDUiPiJTRCDgtrTgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3VzYiIgbXNnaWQ9IjMwMTc5NTQwNTk1Mzg1MTcyNzgiPiJVU0Ig4LaG4Lag4La64Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0cmFjdF9lZGl0X21lbnVfYnV0dG9uIiBtc2dpZD0iODk0MDQ3ODczMDQ5NjYxMDEzNyI+IuC3g+C2guC3g+C3iuC2muC2u+C2q+C2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSIxOTU1NjM4ODYyMTIyMjMyMzQyIj4i4Lav4Lat4LeK4LatIOC2t+C3j+C3gOC3kuC2reC3jyDgtoXgt4Dgt4Dgt4/gtq/gtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dhcm5pbmdfYm9keSIgbXNnaWQ9IjI4MTQ2NzM1NTE0NzE5Njk5NTQiPiLgtrfgt4/gt4Dgt5Lgtq3gtrog4LeD4LeEIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgtrbgt5Dgtr3gt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzA5MzMzNDQxOTUxODcwNjY4NiI+IjJHLTNHIOC2r+C2reC3iuC2rSDgtoXgtrbgtr3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzRnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzYzNjQ4OTQzNjgxOTQ3MDc2MSI+IjRHIOC2r+C2reC3iuC2rSDgtoXgtrbgtr0g4Laa4La74LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbW9iaWxlX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzg2OTQwMjUxOTM5MTYzMTg4NCI+IuC2ouC2guC2nOC2uCDgtq/gtq3gt4rgtq0g4LaF4La24La9IOC2muC2uyDgtofgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfdGl0bGUiIG1zZ2lkPSI4OTkyMTU0NzM2NDQxMjg0ODY1Ij4iV2ktRmkg4Lav4Lat4LeK4LatIOC2heC2tuC2vSDgtprgtrvgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9saW1pdF9ib2R5IiBtc2dpZD0iMzMxNzk2NDcwNjk3MzYwMTM4NiI+IuC3g+C2tuC2vSDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSI3MDI2NzM5MTIxMTM4MDA1MjMxIj4iMkctM0cg4Lav4Lat4LeK4LatIOC3g+C3k+C2uOC3j+C3gCDgtongtprgt4rgtrjgt4DgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV80Z19saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iMTEwNjU2Mjc3OTMxMTIwOTAzOSI+IjRHIOC2r+C2reC3iuC2rSDgt4Pgt5Pgtrjgt4/gt4Ag4LaJ4Laa4LeK4La44LeA4LePIOC2uuC2sSDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX21vYmlsZV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iMjc5MjQwNTcyMTY1NDEyMTY4Ij4i4Lai4LaC4Lac4La4IOC2r+C2reC3iuC2rSDgt4Pgt5Pgtrjgt4/gt4Ag4LaJ4Laa4LeK4La44LeA4LePIOC2uuC2sSDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9Ijg3NDM4NTYwMDYzODQ4MjU5NzQiPiJXaS1GaSDgtq/gtq3gt4rgtq0g4LeD4LeT4La44LeP4LeAIOC2ieC2muC3iuC2uOC3gOC3jyDgtrrgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9saW1pdF9zbm9vemVkX2JvZHkiIG1zZ2lkPSI3MDM1NDkwMjc4Mjk4NDQxNzY3Ij4i4LeD4Laz4LeE4Lax4LeKIOC2muC3hSDgt4Pgt5Pgtrjgt4/gt4Dgtqcg4LeA4Lap4LePIDx4bGlmZjpnIGlkPSJTSVpFIj4lczwveGxpZmY6Zz4g4LeA4LeQ4Lap4LeS4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfcmVzdHJpY3RlZF90aXRsZSIgbXNnaWQ9IjU5NjUxNTczNjEwMzYzMjE5MTQiPiLgtrTgt4Pgt5Tgtrbgt5Lgtrjgt4og4Lav4Lat4LeK4LatIOC3g+C3kuC2uOC3jyDgtprgtrvgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9yZXN0cmljdGVkX2JvZHkiIG1zZ2lkPSI2NzQxNTIxMzMwOTk3NDUyOTkwIj4i4LeD4LeT4La44LePIOC2muC3kuC2u+C3k+C2uCDgtongt4Dgtq3gt4og4Laa4LeS4La74LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2VydGlmaWNhdGUiIG1zZ2lkPSI2NTEwMDQwNDg2MDQ5MjM3NjM5Ij4i4LaG4La74Laa4LeK4oCN4LeC4LeS4LatIOC3g+C3hOC2reC3kuC2muC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jZXJ0aWZpY2F0ZV9pc192YWxpZCIgbXNnaWQ9IjY4MjUyNjMyNTA3NzQ1NjkzNzMiPiLgtrjgt5ngtrgg4LeD4LeE4Lat4LeS4Laa4La6IOC3gOC2veC2guC2nOC3lOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfdG8iIG1zZ2lkPSI0NTQyMzk0ODAyNzQ5MjEwMzIiPiLgtr3gtrbgt4/gtq/gt5TgtrHgt4rgtrHgt5o6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tbW9uX25hbWUiIG1zZ2lkPSIyMjMzMjA5Mjk5NDM0MTcyNjQ2Ij4i4La04Lec4Lav4LeUIOC2seC3j+C2uOC2ujoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdfbmFtZSIgbXNnaWQ9IjY5NzM1NjExOTA3NjIwODUyMzYiPiLgt4PgtoLgt4Dgt5LgtrDgt4/gtrHgtro6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnX3VuaXQiIG1zZ2lkPSI3MjY1OTgxODkwNDIyMDcwMzgzIj4i4LeD4LaC4LeA4LeS4Law4LeP4Lax4LeP4Lat4LeK4La44LaaIOC2kuC2muC2muC2ujoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfYnkiIG1zZ2lkPSIyNjQ3NTg0OTg4MDU3NDgxNTY2Ij4i4La94La24LeP4Lav4LeZ4LaxIOC2veC2r+C3iuC2r+C3mjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2YWxpZGl0eV9wZXJpb2QiIG1zZ2lkPSI4ODE4ODg2MTM3NTQ1OTgzMTEwIj4i4LeA4La94LaC4Lac4LeU4Lat4LeP4LeA4La6OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imlzc3VlZF9vbiIgbXNnaWQ9IjU4OTUwMTc0MDQzNjEzOTcyMzIiPiLgtrHgt5Lgtprgt5Tgtq3gt4og4Laa4La74LaxIOC2veC2r+C3iuC2r+C3mjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHBpcmVzX29uIiBtc2dpZD0iMzY3NjI0Mjk0OTkxNTk1OTgyMSI+IuC2muC2veC3iiDgtongtprgt5Tgtq3gt4og4LeA4Lax4LeK4Lax4LeaOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcmlhbF9udW1iZXIiIG1zZ2lkPSI3NTg4MTQwNjc2NjA4NjI0OTMiPiLgtoXgtrHgt5Tgtprgt4rigI3gtrvgtrjgt4/gtoLgtprgtro6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZ2VycHJpbnRzIiBtc2dpZD0iNDUxNjAxOTYxOTg1MDc2MzA0OSI+IuC2h+C2n+C3kuC2veC3kiDgt4Pgtr3gtprgt5Tgtqvgt5Q6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhMjU2X2ZpbmdlcnByaW50IiBtc2dpZD0iNDM5MTI3MTI4NjQ3NzI3OTI2MyI+IlNIQS0yNTYg4LaH4Laf4LeS4La94LeS4LeD4La94Laa4LeU4LarOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYTFfZmluZ2VycHJpbnQiIG1zZ2lkPSI3OTMwMzMwMjM1MjY5NDA0NTgxIj4iU0hBLTEg4LaH4Laf4LeS4La94LeSIOC3g+C2veC2muC3lOC2qzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9jaG9vc2VyX3ZpZXdfc2VlX2FsbCIgbXNnaWQ9IjQyOTI1NjkzODM5NzY2MzYyMDAiPiLgt4Pgt5Lgtrrgtr3gt4rgtr0g4La24La94Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfY2hvb3Nlcl92aWV3X2RpYWxvZ190aXRsZV9kZWZhdWx0IiBtc2dpZD0iNDcxMDAxMzg2NDk3NDA0MDYxNSI+IuC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C2muC2uCDgtq3gt53gtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV9hY3Rpb25fcHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjUyNDc2ODQ0MzU5NzkxNDkyMTYiPiLgt4Pgtrjgtp8g4La24LeZ4Lav4LeP4Lac4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGlzdF9kZWxpbWV0ZXIiIG1zZ2lkPSIzOTc1MTE3NTcyMTg1NDk0MTUyIj4iLCAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZW5kaW5nIiBtc2dpZD0iMzI0NTY1MzY4MTAwODIxODAzMCI+IuC2uuC3gOC2uOC3kuC2seC3ii4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaEJyb3dzZXJEZWZhdWx0IiBtc2dpZD0iMjA1Nzk1MTk0NzI5NzYxNDcyNSI+IuC2tuC3iuKAjeC2u+C3gOC3lOC3g+C2u+C2uiDgtq/gt5Lgtrrgtq3gt4og4Laa4La74Lax4LeK4Lax4LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlNldHVwQ2FsbERlZmF1bHQiIG1zZ2lkPSI1ODM0OTQ4NDY5MjUzNzU4NTc1Ij4i4LaH4La44Lat4LeU4La4IOC2tOC3kuC3heC3kuC2nOC2seC3iuC2seC3gOC3j+C2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9yZXNvbHZlcl91c2VfYWx3YXlzIiBtc2dpZD0iODAxNzc3MDc0NzgwMTQ5NDkzMyI+IuC3g+C3kOC2uCDgt4Dgt5LgtqfgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9yZXNvbHZlcl91c2Vfb25jZSIgbXNnaWQ9IjI0MDQ2NDQ3OTcxNDkxNzM3NTgiPiLgtpHgtprgt4og4LeA4LeP4La74La64La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0NjE3MDUzODk4MTY3MTI3NDcxIj4i4Lan4LeQ4La24LeK4La94Lan4LeK4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDIzOTI5MTI3MzQyMDE0MDEyMyI+IuC2r+C3lOC2u+C2muC2ruC2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfbmFtZV9oZWFkcGhvbmVzIiBtc2dpZD0iODExOTk3MTg0MzgwMzQzOTExMCI+IuC2ieC3g+C3iiDgtrbgtqvgt5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWVfZG9ja19zcGVha2VycyIgbXNnaWQ9IjYyNDA2MDI5ODIyNzY1OTE4NjQiPiLgtrHgt4/gtq/gtpog4Lap4Lec4Laa4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfbWVkaWFfcm91dGVfbmFtZV9oZG1pIiBtc2dpZD0iMjQ1MDk3MDM5OTAyMzQ3ODA1NSI+IkhETUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX2NhdGVnb3J5X25hbWUiIG1zZ2lkPSIzNzIyODExMTc0MDAzODg2OTQ2Ij4i4La04Lav4LeK4Law4Lat4LeS4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmx1ZXRvb3RoX2EyZHBfYXVkaW9fcm91dGVfbmFtZSIgbXNnaWQ9Ijg1NzU2MjQwMzA0MDY3NzEwMTUiPiLgtrbgt4rgtr3gt5bgtqfgt5bgtq3gt4og4LeB4LeK4oCN4La74LeA4LeK4oCN4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lyZWxlc3NfZGlzcGxheV9yb3V0ZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjkwNzAzNDY0MjUwMjM5Nzk2NTEiPiLgtrvgt5Dgt4Tgt5DgtrHgt4og4La74LeE4LeS4LatIOC2r+C2u+C3iuC3geC2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX2Nob29zZXJfZ3JvdXBpbmdfZG9uZSIgbXNnaWQ9Ijc5NjY0MzgzMDc3MjMzMTcxNjkiPiLgt4Tgtrvgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9idXR0b25fY29udGVudF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU3NTg1NTM1NjcwNjUxNDUyNzYiPiLgtrjgt4/gtrDgt4rigI3gtrog4La04LeK4oCN4La74Lat4LeS4Lav4LeP4Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX3NjYW5uaW5nIiBtc2dpZD0iNzI3OTkwODc2MTc1ODI5Mzc4MyI+IuC2tOC2u+C3kuC2veC3neC2muC2seC2uiDgtprgtrvgtrjgt5LgtrHgt4rigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfY29ubmVjdGluZyIgbXNnaWQ9IjY0MjI1NzE3MTYwMDc4MjU0NDAiPiLgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeZ4La44LeS4Lax4LeK4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2F2YWlsYWJsZSIgbXNnaWQ9IjY5ODMyNTgwNjcxOTQ2NDkzOTEiPiLgtr3gtrbgt4/gtpzgtq0g4LeE4LeQ4LaaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX25vdF9hdmFpbGFibGUiIG1zZ2lkPSI2NzM5ODk5OTYyNjgxODg2NDAxIj4i4La94La24LeP4Lac4LatIOC2seC3nOC3hOC3kOC2miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19pbl91c2UiIG1zZ2lkPSI0NTMzNzg2MDMxMDkwMTk4MDYzIj4i4La34LeP4LeA4LeS4Lat4La64LeaIOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9idWlsdF9pbl9kaXNwbGF5X25hbWUiIG1zZ2lkPSIyNTgzMTM0Mjk0MjkyNTYzOTQxIj4i4Lat4LeS4LeF4LeQ4La94LeSIOC2reC3kuC2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9oZG1pX2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjE1NTUyNjQ1NTkyMjc0NzAxMDkiPiJIRE1JIOC2reC3kuC2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9vdmVybGF5X2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjUxNDIzNjU5ODIyNzE2MjA3MTYiPiLgtovgtqngt5Dgtq3gt5Lgtrvgt5LgtrogIzx4bGlmZjpnIGlkPSJJRCI+JTEkZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X3RpdGxlIiBtc2dpZD0iNjUyMTI0NTE3NjcyMjU3MTcyIj4iPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+OiA8eGxpZmY6ZyBpZD0iV0lEVEgiPiUyJGQ8L3hsaWZmOmc+eDx4bGlmZjpnIGlkPSJIRUlHSFQiPiUzJGQ8L3hsaWZmOmc+LCA8eGxpZmY6ZyBpZD0iRFBJIj4lNCRkPC94bGlmZjpnPiBkcGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNwbGF5X21hbmFnZXJfb3ZlcmxheV9kaXNwbGF5X3NlY3VyZV9zdWZmaXgiIG1zZ2lkPSI2MDIyMTE5NzAyNjI4NTcyMDgwIj4iLCDgtobgtrvgtprgt4rigI3gt4Lgt5Lgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMjIyMzA1MDY0OTI0MDMyNjU1NyI+IuC2seC3nOC2u+C3kOC3hOC3kOC2seC3iiDgt4PgtoLgtq/gtrvgt4rgt4Hgtprgtrog4LeD4La44LeK4La24Lax4LeK4Law4LeS4Lat4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iNDQ5ODgwMjAxMjQ2NDE3MDY4NSI+IuC3gOC3meC2seC2reC3iiDgtovgtrTgt4/gtoLgtpzgtrrgtprgt4og4La44LatIOC2uOC3meC2uCDgtq3gt5Lgtrvgtrog4La04LeZ4Lax4LeK4LeA4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9kaXNwbGF5X25vdGlmaWNhdGlvbl9kaXNjb25uZWN0IiBtc2dpZD0iNjE4Mzc1NDQ2MzU2MTE1MzM3MiI+IuC3gOC3kuC3g+C2seC3iuC2sOC3kiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbWVyZ2VuY3lfY2FsbF9sYWJlbCIgbXNnaWQ9IjY4NDk0NjE5MjUyMzgzMDUzMSI+IuC3hOC2r+C3kuC3g+C3kiDgtofgtrjgtq3gt5TgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLgtrvgtqfgt4/gt4Ag4LaF4La44Lat4Laa4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiLgt4Dgt5Dgtrvgtq/gt5Ig4La74Lan4LeP4LeA4Laa4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGFzc3dvcmQiIG1zZ2lkPSIyMzMzMjgxNzYyMTI4MTEzMTU3Ij4i4LeA4LeQ4La74Lav4LeSIOC2uOC3lOC2u+C2tOC2r+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiJQSU4g4LaR4LaaIOC3gOC3kOC2u+C2r+C3kuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MzU4MTEwMjIxNjAzMjk3NTQ4Ij4i4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiUxJGQ8L3hsaWZmOmc+IOC2pyDgtrTgt4Pgt5Tgt4Ag4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiLgtpTgtrbgtpzgt5og4La74Lan4LeP4LeAIOC2heC2s+C3kuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV9waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjMxOTUwODU1MDkzNDU1NzMzMSI+IlNJTSBQSU4g4LaH4Lat4LeU4La94LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzc3MjQyMjMzNDk1MTExNTU3Ij4iUElOIOC2keC2miDgtofgtq3gt5Tgt4Xgt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+IuC2uOC3lOC2u+C2tOC2r+C2uiDgtofgtq3gt5Tgt4Xgt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4i4Lav4LeQ4Lax4LeKIFNJTSDgtpHgtpog4LaF4La24La9IOC2muC2uyDgtofgtq0uIOC2ieC2r+C3kuC2u+C3kuC2uuC2pyDgtrrgt4/gtrjgtqcgUFVLIOC2muC3muC2reC2uiDgtrrgt5zgtq/gtrHgt4rgtrEuIOC3gOC3kuC3g+C3iuC2reC2uyDgt4PgtrPgt4Tgt48g4LeA4LeP4LeE4Laa4La64LePIOC2heC2uOC2reC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i4LaF4La04Lea4Laa4LeK4LeC4LeS4LatIFBJTiDgtprgt5rgtq3gtrog4LaH4Lat4LeU4LeF4Lat4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLgtoXgtrTgt5rgtprgt4rgt4Lgt5Lgtq0gUElOIOC2muC3muC2reC2uiDgt4Pgt4rgtq7gt5Lgtrsg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJTSU0g4La04LatIOC2heC2nOC3lOC3heC3lCDgtoXgtrvgt5Lgtrjgt5LgtrHgt4ouLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiLgt4Dgt5Dgtrvgtq/gt5IgUElOIOC2muC3muC2reC2uuC2muC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLgtoXgtoLgtpogNCDgt4Pgt5LgtqcgOCDgtoXgtq3gtrsg4LeA4LaxIFBJTiDgtpHgtprgtprgt4og4Lan4La64LeS4La04LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJQVUsg4Laa4Lea4Lat4La6IOC3g+C2guC2m+C3iuKAjeC2uuC3jyA4IOC2muC3iiDgt4Tgt50g4LeA4LeQ4Lap4LeSIOC3gOC3kuC2uiDgtrrgt5Tgtq3gt5TgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i4Lax4LeS4LeA4LeQ4La74Lav4LeSIFBVSyDgtprgt5rgtq3gtrog4Lax4LeQ4LeA4LatIOC2h+C2reC3lOC2veC2reC3iiDgtprgtrvgtrHgt4rgtrEuIOC2seC3kOC3gOC2rSDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeP4LeEIOC2muC3kuC2u+C3k+C2uOC3meC2seC3iiBTSU0g4LaR4LaaIOC3g+C3iuC2ruC3kuC2u+C3gOC2uCDgtoXgtrbgtr0g4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfY29uZmlybV9waW5faGludCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcwMDM0NjkyNjE0NjQ1OTM1MTYiPiJQSU4g4Laa4Lea4LatIOC2nOC3kOC2veC2tOC3kyDgtrHgt5Dgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjY0ODY4NDIwOTQwMDU2OTg0NzUiPiLgtrvgtqfgt48g4LaL4Lat4LeK4LeD4LeP4LeEIOC2muC3kuC2u+C3k+C2uOC3iiDgt4Dgt5Dgtqngt5LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIxMTAwNTUxMjYxMjY1NTA2NDQ4Ij4i4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pywg4LaU4La24Lac4LeaIEdvb2dsZSDgtpzgt5Lgtqvgt5Tgtrgg4LeD4La44LacIOC2tOC3lOC2u+C2seC2uiDgt4DgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9IjU3MTg1MzQyNzIwNzA5MjAzNjQiPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4Lax4LeP4La44La6ICjgtoot4Lat4LeQ4La04LeR4La9KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4i4La44LeU4La74La04Lav4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiLgtrTgt5TgtrvgtrHgtrog4LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjU3NTQ2NjQxMTkzMTk4NzIxOTciPiLgt4Dgtr3gtoLgtpzgt5Qg4Lax4Lec4LeA4LaxIOC2tOC2u+C3kuC3geC3k+C2veC2miDgtrHgt4/gtrjgtrrgtprgt4og4LeE4LedIOC2uOC3lOC2u+C2tOC2r+C2uuC2muC3ii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i4LaU4La24Lac4LeaIOC2tOC2u+C3kuC3geC3k+C2veC2miDgtrHgt4/gtrjgtrog4LeE4LedIOC2uOC3lOC2u+C2tOC2r+C2uiDgtoXgtrjgtq3gtprgtq8/XG4gIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iIOC3gOC3meC2rSDgtrrgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSIxMDUyNjg1MTk3NzEwMjUyMzk1Ij4i4Lac4LeS4Lar4LeU4La4IOC2tOC2u+C3k+C2muC3iuC3guC3jyDgtprgtrvgtrjgt5LgtrHgt4rigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODI3Njc0NTY0MjA0OTUwMjU1MCI+IuC2lOC2tiBQSU4g4LaF4LaC4Laa4La6IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC3gOC3j+C2u+C2uuC2muC3iiDgt4Dgt5Dgtrvgtq/gt5Lgtrrgtqcg4Lan4La64LeS4La04LeKIOC2muC3nOC2pyDgtofgtq0uXG5cbiDgtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2h+C2reC3lOC3heC2rSDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeP4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3ODEzNzEzMzg5NDIyMjI2NTMxIj4iPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LeA4Lat4LeP4LeA4Laa4LeKIOC2lOC2tuC2nOC3miDgtrjgt5TgtrvgtrTgtq/gtrog4LaU4La2IOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtqfgtrrgt5LgtrTgt4og4Laa4La7IOC2h+C2rS4gXG5cbuC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgtqcg4La04LeD4LeU4LeAIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXR0ZXJuX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzQwODk0NzU5NjUwNTA4MDUiPiLgtpTgtrYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LeA4LeP4La74La64Laa4LeKIOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5Pgtrjgt5og4La74Lan4LeP4LeAIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtofgtrMg4LaH4LatLiBcblxu4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtofgtq3gt5Tgt4Xgtq0g4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTc1NTU3MjAwNjI3MTI4OTQ5Ij4i4LaU4La2IOC2p+C3kOC2tuC3iuC2veC2p+C2uiDgtoXgtpzgt5Tgt4Xgt5Qg4LeE4LeQ4La74LeT4La44LanIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtoXgt4Dgt4Pgt4rgtq7gt48gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrsg4LaH4LatLiDgtoXgt4Dgt4Pgt4rgtq7gt48gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2heC3g+C3j+C2u+C3iuC2ruC2muC3gCDgtovgtq3gt4rgt4Pgt4Qg4Laa4LeS4La74LeT4La44Laa4LeS4Lax4LeKIOC2tOC3g+C3lOC3gCwg4Laa4La74LeK4La44LeP4Lax4LeK4LatIOC3geC3j+C2veC3jyDgtrjgt5Tgtr3gt4og4Lat4Lat4LeK4LeA4La64LanIOC2seC3kOC3gOC2rSDgtrTgtq3gt4og4LeA4LaxIOC2heC2reC2uyDgt4Pgt5Lgtrrgtr3gt5Qg4La04La74LeS4LeB4LeT4La94LaaIOC2r+C2reC3iuC2rSDgtrHgt5Dgtq3gt5Ig4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQwNTEwMTU5NDMwMzgxOTk5MTAiPiLgtpTgtrYg4Lav4LeU4La74Laa4Lau4Lax4La6IOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5Pgtrjgtqcg4LeA4LeP4La7IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC2muC2r+C3kyDgt4Dgt5Dgtrvgtq/gt5Mg4La04LeK4oCN4La74La64Lat4LeK4Lax4La64Lax4LeKIOC2nOC3meC2sSDgtq3gt5Lgtrbgt5ouIOC2reC3gOC2reC3iiDgtoXgt4Pgt4/gtrvgt4rgtq7gtpog4La04LeK4oCN4La74La64Lat4LeK4LaxIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2muC3kuC2seC3iiDgtrTgt4Pgt5Tgt4AsIOC2r+C3lOC2u+C2muC2ruC2seC2uiDgtprgtrvgt4rgtrjgt4/gtrHgt4rgtq0g4LeB4LeP4La94LeP4LeA4LeaIOC3g+C3lOC2tOC3lOC2u+C3lOC2r+C3iuC2r+C2pyDgtrrgt4Xgt5Ig4La04LeS4LeE4LeS4Lan4LeU4LeA4LaxIOC2heC2reC2uyDgt4Pgt5Lgtrrgtr3gt5Tgtrgg4La04La74LeS4LeB4LeT4La94LaaIOC2r+C2reC3iuC2rSDgtrHgt5Dgtq3gt5Ig4LeA4LeTIOC2uuC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA3Mjk5NjI2OTE0ODQ4MzYzNyI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC2lOC2tiDgt4Dgt5Dgtrvgtq/gt5Ig4La04LeK4oCN4La74La64Lat4LeK4LaxIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgt4Dgt4/gtrvgtrrgtprgt4og4Lac4LeZ4LaxIOC2h+C2rS4g4Lav4LeQ4Lax4LeKIOC2p+C3kOC2tuC3iuC2veC2p+C2uiDgtprgtrvgt4rgtrjgt4/gtrHgt4rgtq0g4LeB4LeP4La94LePIOC3g+C3lOC2tOC3lOC2u+C3lOC2r+C3iuC2ryDgt4Dgt5ngtq0g4La64LeF4LeSIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC3k+C2uCDgtprgt5ngtrvgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4i4LaU4La2IOC2r+C3lOC2u+C2muC2ruC2seC2uiDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC3gOC3j+C2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4Laa4Lav4LeTIOC3gOC3kOC2u+C2r+C3kyDgtrTgt4rigI3gtrvgtrrgtrHgt4rgtq3gtrrgtrHgt4og4Lac4LeZ4LaxIOC2reC3kuC2tuC3mi4g4Lav4LeQ4Lax4LeKIOC2r+C3lOC2u+C2muC2ruC2seC2uiDgtprgtrvgt4rgtrjgt4/gtrHgt4rgtq3gt4Hgt4/gtr3gt48g4LeD4LeU4La04LeU4La74LeU4Lav4LeK4Lav4LanIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC2seC3lCDgtr3gtrbgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IuC2lOC2tiDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeS4La44LeaIOC2u+C2p+C3j+C3gCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgt4Dgtq3gt4/gt4Dgtprgt4og4LeA4LeQ4La74Lav4LeS4La64LanIOC2h+C2syDgtofgtq0uIOC2reC3gOC2reC3iiDgtoXgt4Pgt4/gtrvgt4rgtq7gtpog4LaL4Lat4LeK4LeD4LeP4LeEIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2muC3kuC2seC3iiDgtrTgt4Pgt5Tgt4AsIOC2ii3gtq3gt5DgtrTgt5Dgtr3gt4og4Lac4LeS4Lar4LeU4La4IOC2t+C3j+C3gOC3kuC2reC3jyDgtprgtrvgtrjgt5LgtrHgt4og4LaU4La24Lac4LeaIOC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC2lOC2tuC2pyDgtrTgt4Dgt4PgtrHgt5Qg4LaH4LatLlxuXG4g4Lax4LeQ4LeA4LatIOC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDgtprgt5LgtrHgt4og4LaL4Lat4LeK4LeD4LeP4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IuC2lOC2tiDgt4Dgt5Dgtrvgtq/gt5LgtrrgtqcgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LeA4Lat4LeP4LeA4Laa4LeKIOC2lOC2tuC2nOC3miDgtoXgtpzgt5Tgt4Xgt5Qg4LeE4LeQ4La74LeT4La44LeaIOC2u+C2p+C3j+C3gCDgtofgtrMg4LaH4LatLiDgtoXgt4Pgt4/gtrvgt4rgtq7gtpog4LaL4Lat4LeK4LeD4LeEIOC2muC3kuC2u+C3k+C2uOC3iiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgtrHgt4og4La04LeD4LeU4LeALCDgtpTgtrbgtpzgt5og4LaKLeC2reC3kOC2tOC3kOC2veC3iiDgtr3gt5LgtrTgt5LgtrHgtrog4La34LeP4LeA4LeS4Lat4La64LeZ4Lax4LeKIOC2lOC2tuC2nOC3miDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC2pyDgtpTgtrbgtpzgt5ngtrHgt4og4LaF4LeD4La64LeSLlxuXG4g4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOC2seC3iiDgtrTgt4Pgt5Tgt4Ag4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i4LaJ4LeA4Lat4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhZmVfbWVkaWFfdm9sdW1lX3dhcm5pbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MzI0MTYxOTM5NDc1NDc4MDY2Ij4i4Lax4LeS4La74LeK4Lav4Lea4LeB4LeS4LatIOC2uOC2p+C3iuC2p+C2uOC3meC2seC3iiDgtongt4Tgt4Xgtqcg4LeB4La24LeK4Lav4La6IOC3gOC3kOC2qeC3kiDgtprgtrvgtrHgt4Dgtq8/XG7gt4Dgt5Dgtqngt5Ig4Laa4LeP4La94La64Laa4LeKIOC2ieC3hOC3hSDgt4Hgtrbgt4rgtq/gtrrgtprgt4og4LeB4LeK4oCN4La74LeA4Lax4La6IOC2muC3kuC2u+C3k+C2uOC3meC2seC3iiDgtpTgtrbgtpzgt5og4LeB4LeK4oCN4La74LeA4Lax4La64LanIOC3hOC3j+C2seC3kiDgt4Dgt5Lgtrog4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRpbnVlX3RvX2VuYWJsZV9hY2Nlc3NpYmlsaXR5IiBtc2dpZD0iMTYyNjQyNzM3MjMxNjA3MDI1OCI+IuC2tOC3iuKAjeC2u+C3gOC3muC3geC3iuKAjeC2uuC2reC3j+C3gOC2uiDgt4Pgtrbgtr0g4Laa4LeS4La74LeT4La44LanIOC2h+C2n+C3kuC2veC3kiDgtq/gt5ngtprgtprgt4og4La04LeE4LeF4LanIOC2u+C2s+C3gOC3jyDgt4Pgt5Lgtqfgt5LgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9lbmFibGVkIiBtc2dpZD0iMTM4MTk3MjA0ODU2NDU0NzY4NSI+IuC2tOKAjeC3iuKAjeC2u+C3gOC3muC3geC3iuKAjeC2uuC2reC3j+C3gCDgt4Pgtrbgtr0g4Laa4La74LaxIOC2veC2r+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVfYWNjZXNzaWJpbGl0eV9jYW5jZWxlZCIgbXNnaWQ9IjM4MzM5MjMyNTc5NjY2MzU2NzMiPiLgtrTigI3gt4rigI3gtrvgt4Dgt5rgt4Hgt4rigI3gtrrgtq3gt4/gt4Ag4LaF4LeA4La94LaC4Lac4LeUIOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlcl9zd2l0Y2hlZCIgbXNnaWQ9IjM3NjgwMDY3ODMxNjY5ODQ0MTAiPiLgtq/gt5DgtrHgtqcg4LeD4LeS4Lan4LeS4LaxIOC2tOC2u+C3kuC3geC3k+C2veC2muC2uuC3jyA8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3duZXJfbmFtZSIgbXNnaWQ9IjI3MTY3NTU0NjAzNzYwMjgxNTQiPiLgt4Tgt5Lgtrjgt5Lgtprgtrvgt5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlcnJvcl9tZXNzYWdlX3RpdGxlIiBtc2dpZD0iNDUxMDM3MzA4MzA4MjUwMDE5NSI+IuC2r+C3neC3guC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9ub19yZXN0cmljdGVkX2FjY291bnRzIiBtc2dpZD0iNTczOTQ2MzI0OTY3MzcyNzczNiI+IuC3g+C3k+C2uOC3jyDgt4Pgt4Tgt5Lgtq0g4La04LeQ4Lat4LeS4Laa4LapIOC3g+C2s+C3hOC3jyDgt4DgtrEg4Lac4LeS4Lar4LeU4La44LeKIOC3gOC3meC2rSDgtrjgt5ngtrgg4La64LeZ4Lav4LeU4La4IOC3g+C3hOC2uiDgtrHgt5zgtq/gtprgt4rgt4Dgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbm90X2ZvdW5kIiBtc2dpZD0iMzQyOTE0MTg1MzQ5ODkyNzM3OSI+IuC2uOC3meC2uCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4Ag4LeE4LeD4LeU4La74LeU4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2muC3iiDgt4Pgt5zgtrrgt4/gtpzgtq3gt4rgtq3gt5og4Lax4LeQ4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmV2b2tlIiBtc2dpZD0iNTQwNDQ3OTE4NTIyODI3MTU4NiI+IuC2heC3hOC3neC3g+C3kiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2EwIiBtc2dpZD0iNzg3NTQyNzQ4OTQyMDgyMTc5MyI+IklTTyBBMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTEiIG1zZ2lkPSIzNzYwNzM0NDk5MDUwODc1MzU2Ij4iSVNPIEExIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMiIgbXNnaWQ9IjU5NzMyNjYzNzgwMjAxNDQzODIiPiJJU08gQTIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2EzIiBtc2dpZD0iMTM3MzQwNzEwNTY4NzMwMDg4NCI+IklTTyBBMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTQiIG1zZ2lkPSI2Njg5NzcyODA3OTgyNTk3MjU0Ij4iSVNPIEE0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNSIgbXNnaWQ9IjUzNTM1NDk2NTIwMTU3NDEwNDAiPiJJU08gQTUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E2IiBtc2dpZD0iODU4NTAzODA0ODY3NDkxMTkwNyI+IklTTyBBNiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTciIG1zZ2lkPSI2NjQxODM2NzE2OTYzODM5MTE5Ij4iSVNPIEE3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hOCIgbXNnaWQ9Ijc1NzExMzk0Mzc0NjU2OTMzNTUiPiJJU08gQTgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E5IiBtc2dpZD0iMTM3ODQ1NTg5MTk1NzExNTA3OSI+IklTTyBBOSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTEwIiBtc2dpZD0iMjQ4MDc0NzQ1NzQyOTQ3NTM0NCI+IklTTyBBMTAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IwIiBtc2dpZD0iMzk2NTkzNTA5NzY2MTEwODAzOSI+IklTTyBCMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjEiIG1zZ2lkPSIyNTA1NzUzMjg1MDEwMTE1NDM3Ij4iSVNPIEIxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMiIgbXNnaWQ9Ijg3NjM4NzQ3MDk4NTk0NTg0NTMiPiJJU08gQjIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IzIiBtc2dpZD0iNDIxMDUwNjY4ODE5MTc2NDA3NiI+IklTTyBCMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjQiIG1zZ2lkPSI1NzQ5NDA0MTY1ODg4NTI2MDM0Ij4iSVNPIEI0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNSIgbXNnaWQ9Ijc2NDA2Mjc0MTQ2MjE5MDQ3MzMiPiJJU08gQjUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I2IiBtc2dpZD0iNzM0Mjk4ODg2NDcxMjc0ODU0NCI+IklTTyBCNiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjciIG1zZ2lkPSI1MDY5ODQ0MDY1MjM1MzgyNDI5Ij4iSVNPIEI3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iOCIgbXNnaWQ9IjczMTY4MTg5MjIyNzg3Nzk3NzQiPiJJU08gQjgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I5IiBtc2dpZD0iNTQxNDcyNzA5NDAyNjUzMjM0MSI+IklTTyBCOSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjEwIiBtc2dpZD0iNTI1MTI1MzczMTgzMjA0ODE4NSI+IklTTyBCMTAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MwIiBtc2dpZD0iNDAwMzEzODM0MjY3MTk2NDIxNyI+IklTTyBDMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzEiIG1zZ2lkPSIxOTM1MTg4MDYzMzkzNTUzMDA4Ij4iSVNPIEMxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMiIgbXNnaWQ9IjMxOTczMDc5Njk3MTIwNjk5MDQiPiJJU08gQzIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MzIiBtc2dpZD0iNDMzNTgyNjA4NzMyMTkxMzUwOCI+IklTTyBDMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzQiIG1zZ2lkPSIzNzQ1NjM5NTk4MjgxMDE1MDA1Ij4iSVNPIEM0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNSIgbXNnaWQ9IjgyNjk0NTc3NjU4MjI3OTEwMTMiPiJJU08gQzUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M2IiBtc2dpZD0iNTY2NjY2MTA1MjYwMzQ2OTMwIj4iSVNPIEM2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNyIgbXNnaWQ9Ijg2Nzg0MTMxODA3ODI2MDg0OTgiPiJJU08gQzciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M4IiBtc2dpZD0iODM5MjM3NjIwNjYyNzA0MTczMCI+IklTTyBDOCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzkiIG1zZ2lkPSI5MTkxNjEzMzcyMzI0ODQ1NDA1Ij4iSVNPIEM5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMTAiIG1zZ2lkPSI3MzI3NzA5Njk5MTg0OTIwODIyIj4iSVNPIEMxMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9sZXR0ZXIiIG1zZ2lkPSI0MTkxODA1NjE1ODI5NDcyOTUzIj4i4LaF4Laa4LeU4La74LeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2d2cm5tdF9sZXR0ZXIiIG1zZ2lkPSI3ODUzMzgyMTkyNjQ5NDA1NTA3Ij4i4La74Lai4La64LeaIOC2veC3kuC2tOC3kuC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9sZWdhbCIgbXNnaWQ9IjY2OTc5ODI5ODgyODM4MjMxNTAiPiLgtrHgt5Pgtq3gt4rigI3gtrrgtrHgt5Tgtprgt5bgtr0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfanVuaW9yX2xlZ2FsIiBtc2dpZD0iMzcyNzc0Mzk2OTkwMjc1ODk0OCI+IuC2tOC3iuKAjeC2u+C3j+C2ruC2uOC3kuC2miDgtrHgt5Pgtq3gt5LgtrjgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfbGVkZ2VyIiBtc2dpZD0iMjgxODcxNDY0ODk2NjAxMjM2Ij4i4La94LeZ4Lai4La74La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX3RhYmxvaWQiIG1zZ2lkPSI1Nzc1OTY2NDE2MzMzNTc4MTI3Ij4i4Laa4LeU4Lap4LePIOC2tOC3lOC3gOC2reC3iuC2tOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndyaXRlX2ZhaWxfcmVhc29uX2NhbmNlbGxlZCIgbXNnaWQ9IjcwOTEyNTgzNzgxMjE2Mjc2MjQiPiLgtoXgt4Dgtr3gtoLgtpzgt5Qg4Laa4La74LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndyaXRlX2ZhaWxfcmVhc29uX2Nhbm5vdF93cml0ZSIgbXNnaWQ9IjgxMzI1MDU0MTc5MzUzMzc3MjQiPiLgtoXgtrHgt4rgtq3gtrvgt4rgtpzgtq3gtrog4La94LeS4LeA4LeT4La44Lea4Lav4LeTIOC2r+C3neC3guC2uuC2muC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNjA0ODkxMzg4MDE4NDYyODExOSI+IuC2seC3nOC2r+C2seC3kyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9hZG1pbl9waW4iIG1zZ2lkPSI3ODM2NDM3MzE4OTUxNDM5NzAiPiLgtrTgtrvgt5LgtrTgt4/gtr3gtprgtrrgt4/gtpzgt5ogUElOIOC2keC2miDgtofgtq3gt5Tgt4Xgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2VudGVyX3BpbiIgbXNnaWQ9IjMzOTU5NTM0MjEzNjg0NzYxMDMiPiJQSU4g4LaR4LaaIOC2h+C2reC3lOC3heC3lCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5faW5jb3JyZWN0IiBtc2dpZD0iODU3MTUxMjAwMzk1NTA3NzkyNCI+IuC3gOC3kOC2u+C2r+C3kuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lbnRlcl9vbGRfcGluIiBtc2dpZD0iMTQ2MjIwNjIyNTUxMjkxMDc1NyI+IuC3gOC2reC3iuC2uOC2seC3iiBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfbmV3X3BpbiIgbXNnaWQ9IjU5NTk2MDY2OTE2MTk5NTkxODQiPiLgtrHgt4AgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2NvbmZpcm1fcGluIiBtc2dpZD0iODUwMTUyMzgyOTYzMzE0NjIzOSI+IuC2seC3gCBQSU4g4Lat4LeE4LeA4LeU4La74LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9jcmVhdGVfcGluIiBtc2dpZD0iODAxNzYwMDAwMDI2MzQ1MDMzNyI+IuC3g+C3kuC2uOC3jyDgt4Dgt5Dgtqngt5Lgtq/gt5Lgtrrgt5Tgtqvgt5Qg4Laa4LeS4La74LeT4La44LanIFBJTiDgt4Pgt4/gtq/gtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZXJyb3JfZG9lc250X21hdGNoIiBtc2dpZD0iMjIyNDIxNDE5MDkwNjk5NDU0OCI+IlBJTiDgtrHgt5zgtpzgt5Dgt4XgtrTgt5ngtrrgt5IuIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9lcnJvcl90b29fc2hvcnQiIG1zZ2lkPSI4MTczOTgyNzU2MjY1Nzc3NzkyIj4iUElOIOC2muC3lOC2qeC3jyDgt4Dgt5Dgtqngt5LgtrouIOC2ieC2veC2muC3iuC2muC2uOC3iiA0IOC3gOC2reC3iiDgt4Dgt5Lgtrog4La64LeU4Lat4LeU4La6LiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icmVzdHJfcGluX2NvdW50ZG93biI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMxMTA1MDk5NTE5ODU0ODY3NSI+IuC2reC3gOC2reC3iiDgtq3gtq3gt4rgtrTgtrsgMSDgtprgt5LgtrHgt4og4La64LeF4LeSIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrvgtrHgt4rgtrEiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ3MzA4Njg5MjA3NDI5NTI4MTciPiLgtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Laa4LeS4Lax4LeKIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4Qg4Laa4La74Lax4LeK4LaxIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+IuC2tOC3g+C3lOC3gCDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeP4LeEIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRyYW5zaWVudF9uYXZpZ2F0aW9uX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjQ5MDc4NDQwNDM2MTExMjM0MjYiPiLgtq3gt5Pgtrvgt5Tgt4Ag4LaF4Lax4LeP4LeA4La74Lar4La64LanIOC2reC3kuC2u+C2uuC3miDgtprgt5ngtr3gt4Dgtrsg4LaF4Lav4LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idHJhbnNpZW50X25hdmlnYXRpb25fY29uZmlybWF0aW9uX2xvbmciIG1zZ2lkPSI4MDYxNjg1OTIwNTA4MDg2Njk3Ij4i4La04Lav4LeK4Law4Lat4LeSIOC2reC3k+C2u+C3lOC3gCDgtoXgtrHgt4/gt4Dgtrvgtqvgtrrgtqcg4Lat4LeS4La74La64LeaIOC2muC3meC2veC3gOC2u+C3kuC2seC3iiDgtoXgtq/gt5LgtrHgt4rgtrEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtc2kvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLXNpL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2NTE2M2IKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLXNpL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMTU5MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJieXRlU2hvcnQiIG1zZ2lkPSI4MzQwOTczODkyNzQyMDE5MTAxIj4iQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtpbG9ieXRlU2hvcnQiIG1zZ2lkPSI1OTczNzg5NzgzNTA0NzcxODc4Ij4iS0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWdhYnl0ZVNob3J0IiBtc2dpZD0iNjM1NTg1MTU3Njc3MDQyODkyMiI+Ik1CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2lnYWJ5dGVTaG9ydCIgbXNnaWQ9IjMyNTk4ODI0NTUyMTIxOTMyMTQiPiJHQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRlcmFieXRlU2hvcnQiIG1zZ2lkPSIyMzE2MTMwMTgxNTkxODY5NjIiPiJUQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBldGFieXRlU2hvcnQiIG1zZ2lkPSI1NjM3ODE2NjgwMTQ0OTkwMjE5Ij4iUEIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaWxlU2l6ZVN1ZmZpeCIgbXNnaWQ9IjkxNjQyOTI3OTE1MDA1MzE5NDkiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lMSRzPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJVTklUIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVudGl0bGVkIiBtc2dpZD0iNDYzODk1Njk1NDg1Mjc4MjU3NiI+IiZsdDvgtrHgtrjgt4og4La64Lec4Lav4LePIOC2seC3kOC2rSZndDsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGxpcHNpcyIgbXNnaWQ9Ijc4OTk4Mjk1MTYwNDg4MTMyMzciPiLigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGxpcHNpc190d29fZG90cyIgbXNnaWQ9IjEyMjgwNzg5OTQ4NjYwMzA3MzYiPiLigKUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eVBob25lTnVtYmVyIiBtc2dpZD0iNzY5NDA2MzA0MjA3OTY3NjUxNyI+Iijgtq/gt5Tgtrvgtprgtq7gtrEg4LaF4LaC4Laa4La64Laa4LeKIOC2seC3nOC2uOC3kOC2rSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1bmtub3duTmFtZSIgbXNnaWQ9IjIyNzc1NTY1NDY3NDI3NDY1MjIiPiIo4Lax4Lec4Lav4Lax4LeTKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRWb2ljZU1haWxBbHBoYVRhZyIgbXNnaWQ9IjI2NjAwMjA5OTAwOTc3MzMwNzciPiLgtprgtqfgt4Tgtqwg4Lat4LeQ4La04LeR4La9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdE1zaXNkbkFscGhhVGFnIiBtc2dpZD0iMjg1MDg4OTc1NDkxOTU4NDY3NCI+Ik1TSVNETjEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtbWlFcnJvciIgbXNnaWQ9IjUxNTQ0OTk0NTc3MzkwNTI5MDciPiLgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48g4Lac4LeQ4Lan4LeF4LeU4LeA4Laa4LeKIOC3hOC3nSDgtoXgt4Dgtr3gtoLgtpzgt5QgTU1JIOC2muC3muC2reC2uuC2muC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtbWlGZG5FcnJvciIgbXNnaWQ9IjUyMjQzOTgyMTYzODUzMTY0NzEiPiLgt4Pgt4rgtq7gt4/gt4Dgtrsg4LaH4La44Lat4LeT4La44LeKIOC2heC2guC2miDgt4Dgtr3gtqcg4La04La44Lar4Laa4LeKIOC2uOC3meC3hOC3meC2uuC3lOC2uCDgt4Pgt5Pgtrjgt4/gtprgtrsg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VFbmFibGVkIiBtc2dpZD0iODE0NzI3ODM0NjQxNDcxNDMxNSI+IuC3g+C3muC3gOC3j+C3gCDgt4Pgtrbgtr0g4Laa4La74LaxIOC2veC2r+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRW5hYmxlZEZvciIgbXNnaWQ9IjY4NTYyMjgxNDA0NTM0NzEwNDEiPiLgt4Pgt5rgt4Dgt4/gt4Ag4LeD4La24La94La64LeSLCDgt4PgtrPgt4Tgt486Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZURpc2FibGVkIiBtc2dpZD0iMTkzNzU1MzIyNjU5MjUxNjQxMSI+IuC3g+C3muC3gOC3j+C3gCDgtoXgtrbgtr0g4Laa4La74LaxIOC2veC2r+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlUmVnaXN0ZXJlZCIgbXNnaWQ9IjYyNzUwMTkwODI1OTgxMDI0OTMiPiLgtr3gt5Lgtrrgt4/gtrTgtq/gt5LgtoLgtqDgt5Ig4LeA4LeT4La4IOC3g+C3j+C2u+C3iuC2ruC2muC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlRXJhc2VkIiBtc2dpZD0iMTI4ODU4NDY5NTI5NzIwMDk3MiI+IuC2uOC3kOC2muC3k+C2uCDgt4Pgt4/gtrvgt4rgtq7gtpog4LeA4LeS4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkSW5jb3JyZWN0IiBtc2dpZD0iNzYxMjIwODgzOTQ1MDEyODcxNSI+IuC3gOC3kOC2u+C2r+C3kiDgtrjgt5TgtrvgtrTgtq/gtrrgtprgt4ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW1pQ29tcGxldGUiIG1zZ2lkPSI4MjMyNTI3NDk1NDExNjk4MzU5Ij4iTU1JIOC3g+C2uOC3iuC2tOC3luC2u+C3iuC2q+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWRQaW4iIG1zZ2lkPSI5MDE1Mjc3NjQ1NTQ2NzEwMDE0Ij4i4LaU4La2IOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrEg4La94LavIOC2tOC2u+C2qyBQSU4g4LaR4LaaIOC3gOC3kOC2u+C2r+C3kuC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWRQdWsiIG1zZ2lkPSI1NDg3MjU3NjQ3MDgxMTMyMjAxIj4i4LaU4La2IOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrEg4La94LavIFBVSyDgtpHgtpog4LeA4LeQ4La74Lav4LeS4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pc21hdGNoUGluIiBtc2dpZD0iNjA5Mzc5MDU0NDk2ODYzNDE5Ij4i4LaU4La2IOC2p+C2uuC3kuC2tOC3iiDgtprgtr0gUElOIOC2seC3nOC2nOC3kOC3heC2tOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUGluIiBtc2dpZD0iMzg1MDAxODQ0NTE4NzQ3NTM3NyI+IjQg4LeD4LeS4LanIDgg4Lav4Laa4LeK4LeA4LePIOC2heC2guC2miDgt4Pgt4Tgt5Lgtq0gUElOIOC2keC2muC2muC3iiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4i4LaF4LaC4LaaIDgg4Laa4LeKIOC3hOC3nSDgtorgtqcg4LeA4LeQ4Lap4LeSIFBVSyDgtpHgtprgtprgt4og4Lan4La64LeS4La04LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4i4LaU4La24Lac4LeaIFNJTSDgtrTgtq0g4La04Lat4LanIFBVSyDgtoXgtpzgt5Tgt4Xgt5Qg4LeA4LeQ4Lan4LeTIOC2h+C2rS4g4LaR4La4IOC2heC2nOC3lOC2vSDgtofgtrvgt5PgtrjgtqcgUFVLIOC2muC3muC2reC2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IlNJTSDgtrTgtq3gt5og4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pyBQVUsyIOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiLgtrTgt5Dgtrjgt5Lgtqvgt5ngtrEg4LaF4La44Lat4Lax4LeK4Lax4LeP4Lac4LeaIElEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ2xpck1taSIgbXNnaWQ9Ijc3ODQ2NzM2NzM0NDY4MzMwOTEiPiLgtrTgt5Lgtqfgtq3gtqcg4La64LaxIOC2heC2uOC2reC2seC3iuC2seC3j+C2nOC3miBJRCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNmTW1pIiBtc2dpZD0iNTEyMzIxODk4OTE0MTU3MzUxNSI+IuC2h+C2uOC2reC3lOC2uCDgtongtq/gt5Lgtrvgt5Lgtrrgtqcg4La64LeQ4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ3dNbWkiIG1zZ2lkPSI5MTI5Njc4MDU2Nzk1MDE2ODY3Ij4i4LaH4La44Lat4LeU4La44LeKIOC2u+C3kOC2s+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkJhTW1pIiBtc2dpZD0iNDU1MTkzMDY3OTI2NzcwNTgxIj4i4LaH4La44Lat4LeU4La4IOC2heC3gOC3hOC3kuC2uyDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJQd2RNbWkiIG1zZ2lkPSI3MDQzNzE1Njg3OTA1MjU0MTk5Ij4i4La44LeU4La74La04Lav4La6IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJQaW5NbWkiIG1zZ2lkPSIzMTEzMTE3NzgwMzYxMTkwMzA0Ij4iUElOIOC3gOC3meC2seC3g+C3iiDgt4Dgt5Mg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ25pcE1taSIgbXNnaWQ9IjMxMTA1MzQ2ODA1NTc4NTcxNjIiPiLgtofgtrjgtq3gt5Tgtrjgt4og4LaF4LaC4Laa4La6IOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNuaXJNbWkiIG1zZ2lkPSIzMDYyMTAyMTIxNDMwNTQ4NzMxIj4i4LaH4La44Lat4LeU4La44LeKIOC2heC2guC2muC2uiDgt4Pgt5Pgtrjgt48g4Laa4La7IOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlRocmVlV0NNbWkiIG1zZ2lkPSI5MDUxMDQ3MTcwMzIxMTkwMzY4Ij4i4Lat4LeU4Lax4LeKIOC2uOC3j+C2u+C3iuC2nCDgtofgtrjgtq3gt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSdWFjTW1pIiBtc2dpZD0iNzgyNzg4NzQ1OTEzODMwODg4NiI+IuC2heC2seC3gOC3geC3iuKAjeC2uiDgt4Tgt5Lgtrvgt5Lgt4Tgt5Dgtrvgtq/gt4/gtrrgtpog4LaH4La44Lat4LeU4La44LeKIOC2tOC3iuKAjeC2u+C2reC3kuC2muC3iuC3guC3muC2tCDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDbmRNbWkiIG1zZ2lkPSIzMTE2NDQ2MjM3MDgxNTc1ODA4Ij4i4LaH4La44Lat4LeT4La44LeaIOC2heC2guC2muC2uiDgtrfgt4/gtrvgtq/gt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJEbmRNbWkiIG1zZ2lkPSIxMjY1NDc4OTMyNDE4MzM0MzMxIj4i4La24LeP4Law4LePIOC2seC3nOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T25OZXh0Q2FsbE9uIiBtc2dpZD0iNDI5NDE1NDA5MTQ1NzgxOTIzIj4i4LaF4La44Lat4Lax4LeK4Lax4LeP4Lac4LeaIElEIOC3g+C3lOC2tOC3lOC2u+C3lOC2r+C3iuC2ryDgtoXgtrHgt5Tgt4Ag4LeD4LeT4La44LePIOC3gOC3kyDgtofgtq0uIOC2uOC3k+C3heC2nyDgtofgtrjgtq3gt5Tgtrg6IOC3g+C3k+C2uOC3jyDgtprgtrsg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iQ0xJUkRlZmF1bHRPbk5leHRDYWxsT2ZmIiBtc2dpZD0iMzA5MjkxODAwNjA3Nzg2NDYyNCI+IuC2heC2uOC2reC2seC3iuC2seC3j+C2nOC3miBJRCDgt4Pgt5TgtrTgt5Tgtrvgt5Tgtq/gt5Qg4LaF4Lax4LeU4LeAIOC3g+C3k+C2uOC3jyDgt4Dgt5Mg4LaH4LatLiDgtrjgt5Pgt4Xgtp8g4LaH4La44Lat4LeU4La4OiDgt4Pgt5Pgtrjgt48g4Laa4La7IOC2seC3kOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IkNMSVJEZWZhdWx0T2ZmTmV4dENhbGxPbiIgbXNnaWQ9IjYxNzk0MjUxODI4NTY0MTg0NjUiPiLgtoXgtrjgtq3gtrHgt4rgtrHgt4/gtpzgt5ogSUQg4LeD4LeU4La04LeU4La74LeU4Lav4LeUIOC2heC2seC3lOC3gCDgt4Pgt5Pgtrjgt48g4LeA4LeTIOC2seC3kOC2rS4g4La44LeT4LeF4LafIOC2h+C2uOC2reC3lOC2uDog4LeD4LeT4La44LePIOC2muC2uyDgtofgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSRGVmYXVsdE9mZk5leHRDYWxsT2ZmIiBtc2dpZD0iMjU2Nzk5ODYzMzEyNDQwODU1MiI+IuC2heC2uOC2reC2seC3iuC2seC3j+C2nOC3miBJRCDgt4Pgt5TgtrTgt5Tgtrvgt5Tgtq/gt5Qg4LaF4Lax4LeU4LeAIOC3g+C3k+C2uOC3jyDgt4Dgt5Mg4Lax4LeQ4LatLiDgtrjgt5Pgt4Xgtp8g4LaH4La44Lat4LeU4La4OiDgt4Pgt5Pgtrjgt48g4Laa4La7IOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VOb3RQcm92aXNpb25lZCIgbXNnaWQ9Ijg2MTQ4MzAxODA1MDg2ODY2NjYiPiLgt4Pgt5rgt4Dgt4/gt4DgtrHgt4og4LeD4La04La64LePIOC2seC3kOC2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJDTElSUGVybWFuZW50IiBtc2dpZD0iMzM3NzM3MTE0NTkyNjgzNTY3MSI+IuC2heC2uOC2reC2seC3iuC2seC3j+C2nOC3miBJRCDgt4Pgt5Dgtprgt4Pgt5Pgtrgg4LaU4La24LanIOC3gOC3meC2seC3g+C3iuC2muC2vSDgtrHgt5zgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZENoYW5nZWRUaXRsZSIgbXNnaWQ9IjU1OTIxODkzOTg5NTYxODc0OTgiPiLgt4Pgt5Pgtrjgt5Lgtq0g4La04LeK4oCN4La74LeA4Lea4LeB4La6IOC3gOC3meC2seC3g+C3iiDgtprgt5ngtrvgt5Lgtqvgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJSZXN0cmljdGVkT25EYXRhIiBtc2dpZD0iODY1Mzc5NDc4NDY5MDA2NTU0MCI+IuC2r+C2reC3iuC2rSDgt4Pgt5rgt4Dgt4/gt4Ag4LaF4LeA4LeE4LeS4La7IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uRW1lcmdlbmN5IiBtc2dpZD0iNjU4MTE2Mzc3OTA3MjgzMzY2NSI+IuC3hOC2r+C3kuC3g+C3kiDgt4Pgt5rgt4Dgt4/gt4Ag4LaF4LeA4LeE4LeS4La7IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uTm9ybWFsIiBtc2dpZD0iNDk1Mzg2NzAxMTM4OTc1MDY3MyI+IuC3hOC2rCDgt4Pgt5rgt4Dgt4/gt4Ag4La24LeP4Law4LePIOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uQWxsVm9pY2UiIG1zZ2lkPSIzMzk2OTYzNjUyMTA4MTUxMjYwIj4i4LeD4LeS4La64La94LeUIOC3hOC2rCDgt4Pgt5rgt4Dgt48g4LaF4LeA4LeE4LeS4La7IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uU21zIiBtc2dpZD0iODMxNDM1MjMyNzQ2MTYzODg5NyI+IlNNUyDgt4Pgt5rgt4Dgt4/gt4Ag4LaF4LeA4LeE4LeS4La7IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VEYXRhIiBtc2dpZD0iOTk2NjM2NDg3MTA2MTcxMzIwIj4i4LeE4LasL+C2r+C2reC3iuC2rSDgt4Pgt5rgt4Dgt48g4LaF4LeA4LeE4LeS4La7IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uVm9pY2VTbXMiIG1zZ2lkPSIxODg4NTg4MTUyNzkyMDIzODczIj4i4LeE4LasL1NNUyDgt4Pgt5rgt4Dgt48g4LaF4LeA4LeE4LeS4La7IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iUmVzdHJpY3RlZE9uQWxsIiBtc2dpZD0iNTY0MzAyODI2NDQ2NjA5MjgyMSI+IuC3g+C3kuC2uuC2veC3lOC2uCDgt4Tgtqwv4Lav4Lat4LeK4LatL1NNUyDgt4Pgt5rgt4Dgt4/gt4DgtrHgt4og4La24LeP4Law4LePIOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzVm9pY2UiIG1zZ2lkPSIxMjU4MzkzODEyMzM1MjU4MDE5Ij4i4LeE4LasIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRGF0YSIgbXNnaWQ9Ijg3MjQ1Njc4MjA3NzkzNzg5MyI+IuC2r+C2reC3iuC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc0ZBWCIgbXNnaWQ9IjU1NjY2MjQ5OTg4NDA0ODY0NzUiPiLgt4bgt5Dgtprgt4rgt4Pgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NTTVMiIG1zZ2lkPSIyMDE1NDYwMzczNzAxNTI3NDg5Ij4iU01TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzRGF0YUFzeW5jIiBtc2dpZD0iNDUyMzQ1NDc4MzQ5ODU1MTQ2OCI+IuC2heC3g+C2uOC2uOC3lOC3hOC3lOC2u+C3iuC2rSDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlQ2xhc3NEYXRhU3luYyIgbXNnaWQ9Ijc1MzAwMDA1MTk2NDYwNTQ3NzYiPiLgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZUNsYXNzUGFja2V0IiBtc2dpZD0iNjk5MTAwNjU1Nzk5MzQyMzQ1MyI+IuC2tOC3kOC2muC3kOC2p+C3iuC2p+C3lOC3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VDbGFzc1BBRCIgbXNnaWQ9IjMyMzUyNTkwODU2NDgyNzEwMzciPiJQQUQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDAiIG1zZ2lkPSI3MTcwMzM1NDcyMTk4Njk0OTQ1Ij4i4La74Led4La44LeS4LaCIOC2r+C2u+C3iuC3geC2muC2uiDgt4Pgtprgt4rigI3gtrvgt5Lgtrrgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDEiIG1zZ2lkPSI1MzE0ODYxNTE5NzUyNTM4OTIyIj4i4La74Led4La44LeS4LaCIOC2r+C2u+C3iuC3geC2muC2uiDgtoXgtprgt4rigI3gtrvgt5Lgtrrgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDIiIG1zZ2lkPSI4OTY5OTI5MDQ5MDgxMjY4MTE1Ij4i4La74Led4La44LeS4LaCIOC2r+C2u+C3iuC3geC2muC2uiDgt4Pgt5Dgtqvgt5ngtr3gt5Ig4LeA4LeZ4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQzIiBtc2dpZD0iNTE0ODI1NTAyNzA0Mzk0MzMxNyI+IuC3gOC2p+C2tOC3kuC2p+C3j+C3gOC3meC2seC3iiDgtongt4Dgtq3gt4rgt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDQiIG1zZ2lkPSI4ODA4NDU2NjgyNTUwNzk2NTMwIj4i4Lac4Lec4Lap4Lax4LeQ4Lac4LeS4La94LeK4La94LeZ4Lax4LeKIOC2tOC3kuC2p+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NSIgbXNnaWQ9Ijc2MDQwNjMyNTI4NTAzNTQzNTAiPiLgtrvgt53gtrjgt5LgtoIgIC0g4Laa4LeQ4La44Lat4LeSIOC2tOC2r+C3iuC2sOC2reC3kuC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0NiIgbXNnaWQ9IjIwNTk0NDA4MjU3ODI4NzE1MTMiPiLgtrvgt53gtrjgt5LgtoIgIC0g4La94La24LeP4Lac4LatIOC3hOC3kOC2muC3kiDgtrTgtq/gt4rgtrDgtq3gt5LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDciIG1zZ2lkPSI3MTEyMDc4NzI0MDk3MjMzNjA1Ij4i4La74Led4La44LeS4LaCIC0g4La44LeS4Lat4LeK4oCN4La7IOC3hOC3gOC3lOC2veC3iuC2muC2u+C3lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0OCIgbXNnaWQ9IjU5ODk1Njk3Nzg2MDQwODkyOTEiPiLgtrvgt53gtrjgt5LgtoIgLSDgtoXgtrDgt5Lgtrjgt5Lgtr0g4LeE4LeA4LeU4La94LeK4Laa4La74LeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9hbWluZ1RleHQ5IiBtc2dpZD0iNzk2OTI5NjgxMTM1NTE1MjQ5MSI+IuC2u+C3neC2uOC3kuC2giAgLSDgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4LeD4Lea4LeA4LePIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C3kuC2reC3iuC3gOC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MTAiIG1zZ2lkPSIzOTkyOTA2OTk5ODE1MzE2NDE3Ij4i4La74Led4La44LeS4LaCIC0g4LaF4LeD4La44LeK4La04LeW4La74LeK4LarIOC3g+C3muC3gOC3jyDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgt5Pgtq3gt4rgt4DgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dDExIiBtc2dpZD0iNDE1NDQ3Njg1NDQyNjkyMDk3MCI+IuC2u+C3neC2uOC3kuC2giAg4La24LeQ4Lax4La74La6IOC3g+C2muC3iuKAjeC2u+C3k+C2uuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvYW1pbmdUZXh0MTIiIG1zZ2lkPSIxMTg5MDcxMTE5OTkyNzI2MzIwIj4i4La74Led4La44LeS4LaCIOC2tuC3kOC2seC2u+C2uiDgtoXgtprgt4rigI3gtrvgt5Lgtrrgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb2FtaW5nVGV4dFNlYXJjaGluZyIgbXNnaWQ9IjgzNjAxNDE4ODU5NzIyNzk5NjMiPiLgt4Pgt5rgt4Dgt4/gt4Ag4LeD4Laz4LeE4LePIOC3g+C3nOC2uuC2uOC3kuC2seC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVOb3RGb3J3YXJkZWQiIG1zZ2lkPSIxNjgzNjg1ODgzODQxMjcyNTYwIj4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz46IOC2ieC2r+C3kuC2u+C3kuC2uuC2pyDgtrHgt5zgtrrgt4DgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZUZvcndhcmRlZCIgbXNnaWQ9IjEzMDI5MjIxMTc0OTg1OTA1MjEiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IkRJQUxJTkdfTlVNQkVSIj57MX08L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2ZUZW1wbGF0ZUZvcndhcmRlZFRpbWUiIG1zZ2lkPSI5MjA2MjUxNzM2NTI3MDg1MjU2Ij4iPHhsaWZmOmcgaWQ9IkJFQVJFUl9TRVJWSUNFX0NPREUiPnswfTwveGxpZmY6Zz46IOC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iVElNRV9ERUxBWSI+ezJ9PC94bGlmZjpnPiDgtqcg4La04LeD4LeU4LeAIDx4bGlmZjpnIGlkPSJESUFMSU5HX05VTUJFUiI+ezF9PC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVSZWdpc3RlcmVkIiBtc2dpZD0iNTA3MzIzNzgyNzYyMDE2NjI4NSI+Ijx4bGlmZjpnIGlkPSJCRUFSRVJfU0VSVklDRV9DT0RFIj57MH08L3hsaWZmOmc+OiDgtongtq/gt5Lgtrvgt5Lgtrrgtqcg4Lax4Lec4La64LeA4LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNmVGVtcGxhdGVSZWdpc3RlcmVkVGltZSIgbXNnaWQ9IjY3ODE2MjE5NjQzMjA2MzUxNzIiPiI8eGxpZmY6ZyBpZD0iQkVBUkVSX1NFUlZJQ0VfQ09ERSI+ezB9PC94bGlmZjpnPjog4LaJ4Lav4LeS4La74LeS4La64LanIOC2seC3nOC2uuC3gOC2sSDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmY0NvbXBsZXRlIiBtc2dpZD0iMzExODg0ODIzMDk2Njg4NjU3NSI+IuC2heC2guC2nCDgtprgt5rgtq3gtrog4LeD4La44LeK4La04LeW4La74LeK4Lar4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZjRXJyb3IiIG1zZ2lkPSIzMzI3NTYwMTI2NTg4NTAwNzc3Ij4i4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC2nOC3kOC2p+C3heC3lOC3gOC2muC3iiDgt4Tgt50g4LaF4LeA4La94LaC4Lac4LeUIOC3gOC3kuC3geC3muC3guC3j+C2guC2nCDgtprgt5rgtq3gtrrgtprgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yT2siIG1zZ2lkPSIxMTkxOTE5Mzc4MDgzNDcyMjA0Ij4i4LeE4La74LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yIiBtc2dpZD0iNzk1NjM5MjUxMTE0NjY5ODUyMiI+IuC2ouC3j+C2vSDgtq/gt53gt4Lgtrrgtprgt4og4Lat4LeS4La24LeU4Lar4LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckxvb2t1cCIgbXNnaWQ9IjQ3MTE2ODc0NTYxMTE5NjMxNjMiPiJVUkwg4La6IOC3g+C3meC3gOC3kuC2uiDgtrHgt5zgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVW5zdXBwb3J0ZWRBdXRoU2NoZW1lIiBtc2dpZD0iNjI5OTk4MDI4MDQ0MjA3Njc5OSI+IuC2heC2qeC3gOC3kuC2uuC3miDgt4Pgtq3gt4rigI3gtrrgt4/gtrTgtrEg4La04Lan4LeS4La04LeP4Lan4LeS4La6IOC3gOC3meC2rSDgt4Pgt4Tgtrog4Lax4Lec4Lav4Laa4LeK4LeA4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckF1dGgiIG1zZ2lkPSIxNDM1MDY1NjI5NDM4MDQ0NTM0Ij4i4LeD4Lat4LeK4oCN4La64LeP4La04Lax4La6IOC2muC3hSDgtrHgt5zgt4Tgt5DgtpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JQcm94eUF1dGgiIG1zZ2lkPSIxNzg4MjA3MDEwNTU5MDgxMzMxIj4i4La04LeK4oCN4La74Lec4Laa4LeK4LeD4LeSIOC3g+C3muC3gOC3j+C2r+C3j+C2uuC2muC2uiDgt4Tgtrvgt4Tgt48g4LeD4Lat4LeK4oCN4La64LeP4La04Lax4La6IOC2heC3g+C3j+C2u+C3iuC2ruC2muC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JDb25uZWN0IiBtc2dpZD0iODcxNDI3MzIzNjM2NDY0MDU0OSI+IuC3g+C3muC3gOC3j+C2r+C3j+C2uuC2muC2uuC3j+C2pyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeS4La6IOC2seC3nOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JJTyIgbXNnaWQ9IjIzNDA1NTgxOTc0ODkzMDIxODgiPiLgt4Pgt5rgt4Dgt4/gtq/gt4/gtrrgtprgtrrgt48g4LeD4La44LacIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgt4Dgt5Pgtrjgtqcg4Lax4Lec4LeE4LeQ4Laa4LeSIOC3gOC3kuC2ui4g4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yVGltZW91dCIgbXNnaWQ9IjQ3NDM0MDM3MDM3NjI4ODM5NTQiPiLgt4Pgt5rgt4Dgt4/gtq/gt4/gtrrgtprgtrog4LeA4LeZ4LatIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3j+C3gOC2uiDgtprgtr3gt4og4LaJ4Laa4LeU4Lat4LeKIOC3gOC3kuC2q+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JSZWRpcmVjdExvb3AiIG1zZ2lkPSI4Njc5NTk2MDkwMzkyNzc5NTE2Ij4i4La04LeS4Lan4LeU4LeA4LeaIOC2tuC3nOC3hOC3nSDgt4Pgt5rgt4Dgt4/gtq/gt4/gtrrgtpog4Lax4LeQ4LeA4LatIOC3hOC2u+C3gOC3jyDgtrrgt5Dgt4Dgt5Pgtrjgt4og4LaF4Lap4LaC4Lac4LeUIOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JVbnN1cHBvcnRlZFNjaGVtZSIgbXNnaWQ9IjUwMTU3MzA4MTI5MDYxOTIyMDgiPiLgtrTgt4rigI3gtrvgt5zgtqfgt53gtprgt53gtr3gtrog4LeA4LeZ4LatIOC3g+C3hOC2uiDgtrHgt5zgtq/gtprgt4rgt4Dgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaHR0cEVycm9yRmFpbGVkU3NsSGFuZHNoYWtlIiBtc2dpZD0iOTY1NDk2MDYwMDA2NTg2NDEiPiLgt4Pgt5Tgtrvgtprgt4rgt4Lgt5Lgtq0g4LeD4La44LeK4La24Lax4LeK4Law4Lat4LeP4LeA4La64Laa4LeKIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC3k+C2uOC2pyDgtrHgt5zgt4Tgt5Dgtprgt5Ig4LeA4LeS4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imh0dHBFcnJvckJhZFVybCIgbXNnaWQ9IjM2MzY5Mjk3MjI3Mjg4ODE5NzIiPiJVUkwg4LeA4La94LaC4Lac4LeUIOC2seC3nOC3gOC2sSDgtrHgt5Lgt4Pgt48g4La04LeS4Lan4LeU4LeAIOC3gOC3kuC3gOC3mOC2rSDgtprgt5Lgtrvgt5Pgtrjgtqcg4Lax4Lec4LeE4LeQ4Laa4LeSIOC3gOC3kuC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGaWxlIiBtc2dpZD0iMjE3MDc4ODUxNTA1MjU1ODY3NiI+IuC2nOC3nOC2seC3lOC3gCDgt4Dgt5ngtq0g4La04LeS4LeA4LeS4LeD4LeS4La6IOC2seC3nOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JGaWxlTm90Rm91bmQiIG1zZ2lkPSI2MjAzODU2NjEyMDQyNjU1MDg0Ij4i4LaJ4La94LeK4La94LaxIOC2veC2ryDgtpzgt5zgtrHgt5Qg4LeD4LeZ4LeA4LeS4La6IOC2seC3nOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJodHRwRXJyb3JUb29NYW55UmVxdWVzdHMiIG1zZ2lkPSIxMjM1Mzk2OTI3MDg3MTg4MjUzIj4i4LaJ4La94LeK4La94LeT4La44LeKIOC3gOC3kuC3geC3j+C2vSDgtrTgt4rigI3gtrvgtrjgt4/gtqvgtrrgtprgt4og4Laa4LeK4oCN4La74LeS4La64LeP4Lat4LeK4La44LaaIOC3gOC3meC2uOC3kuC2seC3iiDgtrTgt4Dgtq3gt5Lgtrrgt5IuIOC2tOC3g+C3lOC3gCDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeP4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI4OTY3NzEwMDI1MDM2MTYzODIyIj4iPHhsaWZmOmcgaWQ9IkFDQ09VTlQiPiUxJHM8L3hsaWZmOmc+IOC3g+C2s+C3hOC3jyDgtrTgt5TgtrvgtrHgtrog4LeA4LeT4La44LeaIOC2r+C3neC3guC2uuC2muC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRTZXJ2aWNlU3luYyIgbXNnaWQ9IjgzNTM1MjMwNjAyNjkzMzU2NjciPiLgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VTeW5jTm90aWZpY2F0aW9uVGl0bGUiIG1zZ2lkPSIzOTc3NDMzNDkxOTE5MDE0NTgiPiLgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGVudFNlcnZpY2VUb29NYW55RGVsZXRlc05vdGlmaWNhdGlvbkRlc2MiIG1zZ2lkPSI4MTAwOTgxNDM1MDgwNjk2NDMxIj4iPHhsaWZmOmcgaWQ9IkNPTlRFTlRfVFlQRSI+JXM8L3hsaWZmOmc+IOC2uOC3kOC2muC3k+C2uOC3iiDgt4Dgt5Dgtqngt5LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfbWVtb3J5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2NDk0MDE5MjM0MTAyMTU0ODk2Ij4i4Lan4LeQ4La24LeK4La94Lan4LeKIOC2huC2oOC2uuC2seC2uiDgtrTgt5Lgtrvgt5Ig4LaH4LatLiDgtongtqkg4Lax4LeS4Lav4LeE4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgt4Pgtrjgt4Tgtrsg4Lac4Lec4Lax4LeUIOC2uOC2muC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfbWVtb3J5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ3NTk5OTI4NjY4MDAwMDU0MSI+IuC2r+C3lOC2u+C2muC2ruC2sSDgtobgtqDgtrrgtrHgtrog4La04LeS4La74LeTIOC2h+C2rS4g4LaJ4LapIOC2seC3kuC2r+C3hOC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4La44LeE4La7IOC2nOC3nOC2seC3lCDgtrjgtprgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWUiIG1zZ2lkPSI2NTQ1Njk2MDA3NjMxNDA0MjkyIj4i4La44La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG93ZXJfZGlhbG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTQ1MzUxNDIwODY1MjAyODUzIj4i4Lan4LeQ4La24LeK4La94LanIOC3gOC3kuC2muC2veC3iuC2tCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvd2VyX2RpYWxvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjEzMTk5MTkwNzU0NjM5ODg2MzgiPiLgtq/gt5Tgtrvgtprgtq7gtrEg4LeA4LeS4Laa4La94LeK4La04La64Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGUiIG1zZ2lkPSI3MTY3NzAzMzg5ODAyNjE4NjYzIj4i4Lax4LeS4LeE4LasIOC2huC2muC3j+C2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InR1cm5fb25fcmFkaW8iIG1zZ2lkPSIzOTEyNzkzMDkyMzM5OTYyMzcxIj4i4Lax4Lec4La74LeQ4LeE4Lax4LeKIOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0dXJuX29mZl9yYWRpbyIgbXNnaWQ9IjgxOTg3ODQ5NDk5ODcwNjIzNDYiPiLgtrHgt5zgtrvgt5Dgt4Tgt5DgtrHgt4og4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9sb2NrIiBtc2dpZD0iNzk5MDk0NjU1NDk2MDk4MTUzIj4i4Lat4LeS4La7IOC2heC2nOC3lOC2vSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvd2VyX29mZiIgbXNnaWQ9IjQyNjY2MTQxMDc0MTI4NjUwNDgiPiLgtrbgtr3gtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3NpbGVudCIgbXNnaWQ9IjMxOTI5ODE2MzAxODQ3MzA3OCI+IuC3hOC2rCDgtrHgtp/gtrHgtrog4LaF4Laa4LeK4oCN4La74LeS4La64La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lsZW50X21vZGVfdmlicmF0ZSIgbXNnaWQ9IjcwNzIwNDMzODg1ODE1NTEzOTUiPiLgt4Tgtqwg4Lax4Laf4Lax4La6IOC2muC2uOC3iuC2tOC2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbGVudF9tb2RlX3JpbmciIG1zZ2lkPSI4NTkyMjQxODE2MTk0MDc0MzUzIj4i4LeE4LasIOC2seC2n+C2seC2uiDgt4Pgtprgt4rigI3gtrvgt5Pgtrrgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9wcm9ncmVzcyIgbXNnaWQ9IjIyODEwNzkyNTczMjk5ODEyMDMiPiLgt4Dgt4Pgt48g4Lav4La44La44LeS4Lax4LeK4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2h1dGRvd25fY29uZmlybSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzM4NTc0NTE3OTU1NTczMTQ3MCI+IuC2lOC2tuC2nOC3miDgtqfgt5Dgtrbgt4rgtr3gtqfgtrog4LeA4LeQ4LeD4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNodXRkb3duX2NvbmZpcm0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI2NDk3OTIxNzUyNDI4MjEzNTMiPiLgtpTgtrbgtpzgt5og4Lav4LeU4La74Laa4Lau4Lax4La6IOC3gOC3kOC3g+C3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaHV0ZG93bl9jb25maXJtX3F1ZXN0aW9uIiBtc2dpZD0iMjkwNjU0NDc2ODg4MTEzNjE4MyI+IuC2lOC2tuC2pyDgt4Dgt4Pgt48g4Lav4LeQ4La44LeT4La44LanIOC2heC3gOC3geC3iuKAjeC2uuC2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWJvb3Rfc2FmZW1vZGVfdGl0bGUiIG1zZ2lkPSI3MDU0NTA5OTE0NTAwMTQwMzYxIj4i4LaG4La74Laa4LeK4oCN4LeC4LeS4LatIOC2huC2muC3j+C2u+C2uuC2pyDgtrHgt5Dgt4Dgtq0g4La04LarIOC2nOC2seC3iuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYm9vdF9zYWZlbW9kZV9jb25maXJtIiBtc2dpZD0iNTUyOTM5NDQ1MDI3ODQ2NjgiPiLgtobgtrvgtprgt4rigI3gt4Lgt5Lgtq0g4LaG4Laa4LeP4La74La64LanIOC2seC3kOC3gOC2rSDgtrTgtqsg4Lac4LeQ4Lax4LeK4LeA4LeT4La44LanIOC2lOC2tuC2pyDgtoXgt4Dgt4Hgt4rigI3gtrrgtq8/IOC2uOC3meC2uOC2n+C3kuC2seC3iiDgtpTgtrYg4LeD4LeK4Lau4LeP4La04LeS4LatIOC2muC2uyDgtofgtq3gt5Ig4LeD4LeS4La64La94LeU4La4IOC2reC3meC3gOC2sSDgtrTgt4/gtrvgt4rgt4Hgt4Dgt5Pgtrog4La64LeZ4Lav4LeU4La44LeKIOC3g+C3kuC2uuC2veC3iuC2vSDgtoXgtrbgtr0g4LeA4LeTIOC2uuC2uuC3ki4g4LaU4La2IOC2seC3kOC3gOC2rSDgtrTgtqsg4Lac4Lax4LeK4LeA4LaxIOC3gOC3kuC2pyDgtpLgt4Dgt48g4Lax4LeQ4LeA4LatIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC3k+C2uCDgt4Pgt5Lgtq/gt5Qg4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlY2VudF90YXNrc190aXRsZSIgbXNnaWQ9IjM2OTE3NjQ2MjM2MzgxMjc4ODgiPiLgtrjgt5Hgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19yZWNlbnRfdGFza3MiIG1zZ2lkPSI4Nzk0OTA2NjU4NzMyMTkzNDczIj4i4La44LeR4LatIOC2uuC3meC2r+C3lOC2uOC3iiDgtrHgt5Dgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQwODQ3NzE0MDA4ODA1MzY2NSI+IuC2p+C3kOC2tuC3iuC2veC2p+C3iiDgt4Dgt5Lgtprgtr3gt4rgtrQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9ucyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI0MDY0MTY4MzE1NDE2MTUyNTgiPiLgtq/gt5Tgtrvgtprgtq7gtrEg4LeA4LeS4Laa4La94LeK4La0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9sb2NrIiBtc2dpZD0iMjg0NDk0NTE5MTc5MjExOTcxMiI+IuC2reC3kuC2uyDgtoXgtpzgt5Tgtr0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3Bvd2VyX29mZiIgbXNnaWQ9IjQ0NzE4Nzk0NDA4Mzk4Nzk3MjIiPiLgtrbgtr3gtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fYnVnX3JlcG9ydCIgbXNnaWQ9Ijc5MzQwMTA1Nzg5MjIzMDQ3OTkiPiLgtq/gt53gt4Ig4LeA4La74LeK4Lat4LeP4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X3RpdGxlIiBtc2dpZD0iMjY2NzQ5NDgwMzc0MjU0ODUzMyI+IuC2r+C3neC3giDgt4Dgt4/gtrvgt4rgtq3gt4/gt4Dgtprgt4og4Lac4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X21lc3NhZ2UiIG1zZ2lkPSIzOTg0NDcwNDg3NTAzNTA0NTYiPiLgtoot4Lat4LeQ4La04LeQ4La94LeKIOC2tOC2q+C3kuC3gOC3kuC2qeC2uuC2muC3iiDgtr3gt5ngt4Mg4La64LeQ4LeA4LeT4La44LanIOC2uOC3meC2uiDgtpTgtrbgtpzgt5og4LeA4Lat4LeK4La44Lax4LeKIOC2i+C2tOC3j+C2guC2nCDgtq3gtq3gt4rgt4Dgtrog4Lac4LeQ4LaxIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtpHgtprgtq3gt5Qg4Laa4La74Lax4LeUIOC2h+C2rS4g4Lav4Led4LeCIOC3gOC3j+C2u+C3iuC2reC3j+C3gCDgtobgtrvgtrjgt4rgtrcg4Laa4La7IOC2keC2uiDgtrrgt5Dgt4Dgt5Pgtrjgtqcg4LeD4LeW4Lav4LeP4Lax4La44LeKIOC2muC2u+C2sSDgtq3gt5ngtprgt4og4LaR4La64LanIOC2muC3kuC3g+C3kuC2uuC2uOC3iiDgtprgt4/gtr3gtrrgtprgt4og4Lac4Lat4LeA4Lax4LeUIOC2h+C2rTsg4Laa4La74LeU4Lar4LeP4Laa4La7IOC2ieC3gOC3g+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnbG9iYWxfYWN0aW9uX3RvZ2dsZV9zaWxlbnRfbW9kZSIgbXNnaWQ9IjgyMTk1MjUzNDQyNDY4MTA5MjUiPiLgtrHgt5Lgt4Tgtqwg4LaG4Laa4LeP4La74La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbl9zaWxlbnRfbW9kZV9vbl9zdGF0dXMiIG1zZ2lkPSIzMjg5ODQxOTM3MDAzNzU4ODA2Ij4i4LeB4La24LeK4Lav4La6IOC2heC2muC3iuKAjeC2u+C3kuC2uuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25fc2lsZW50X21vZGVfb2ZmX3N0YXR1cyIgbXNnaWQ9IjE1MDYwNDY1NzkxNzcwNjY0MTkiPiLgt4Tgtqwg4LeD4Laa4LeK4oCN4La74LeS4La64La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2xvYmFsX2FjdGlvbnNfdG9nZ2xlX2FpcnBsYW5lX21vZGUiIG1zZ2lkPSI1ODg0MzMwMzA2OTI2MzA3NDU2Ij4i4LaF4LeE4LeD4LeK4La64LeP4Lax4LePIOC2huC2muC3j+C2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zX2FpcnBsYW5lX21vZGVfb25fc3RhdHVzIiBtc2dpZD0iMjcxOTU1Nzk4MjYwODkxOTc1MCI+IuC2heC3hOC3g+C3iuC2uuC3j+C2seC3jyDgtobgtprgt4/gtrvgtrog4LeD4Laa4LeK4oCN4La74LeT4La64La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdsb2JhbF9hY3Rpb25zX2FpcnBsYW5lX21vZGVfb2ZmX3N0YXR1cyIgbXNnaWQ9IjUwNzUwNzA0NDI4NTQ0OTAyOTYiPiLgtoXgt4Tgt4Pgt4rgtrrgt4/gtrHgt48g4LaF4Laa4LeP4La74La6IOC2heC2muC3iuKAjeC2u+C3kuC2uuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luZm9fb3ZlcmZsb3ciIG1zZ2lkPSI1MzAxOTgxNzQxNzA1MzU0OTkzIj4iOTk5KyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhZmVNb2RlIiBtc2dpZD0iMjc4ODIyODA2MTU0NzkzMDI0NiI+IuC2huC2u+C2muC3iuKAjeC3guC3kuC2rSDgtobgtprgt4/gtrvgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3N5c3RlbV9sYWJlbCIgbXNnaWQ9IjY1NzczNzUzMzU3Mjg1NTEzMzYiPiJBbmRyb2lkIOC2tOC2r+C3iuC2sOC2reC3kuC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jb3N0TW9uZXkiIG1zZ2lkPSI1NDI5ODA4MjE3ODYxNDYwNDAxIj4i4LaU4La24Lac4LeaIOC2uOC3lOC2r+C2veC3iiDgt4Dgt5Dgtrrgt4DgtrEg4LeD4Lea4LeA4LeP4LeA4Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19jb3N0TW9uZXkiIG1zZ2lkPSIzMjkzMzAxOTAzNDA5ODY5NDk1Ij4i4LaU4La24Lac4LeZ4Lax4LeKIOC2uOC3lOC2r+C2veC3iiDgtrrgtrEg4Lav4Lea4LeA4La94LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbWVzc2FnZXMiIG1zZ2lkPSI3NTIxMjQ5MTQ4NDQ1NDU2NjYyIj4i4LaU4La24Lac4LeaIOC2tOC2q+C3kuC3gOC3kuC2qSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbWVzc2FnZXMiIG1zZ2lkPSI3ODIxOTk5MDcxMDAzNjk5MjM2Ij4i4LaU4La24Lac4LeaIFNNUywg4LaKLeC2reC3kOC2tOC3kOC2veC3iiwg4LeD4LeEIOC3gOC3meC2seC2reC3iiDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4Laa4LeS4La64LeA4Lax4LeK4LaxIOC3g+C3hCDgtr3gt5LgtrrgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3BlcnNvbmFsSW5mbyIgbXNnaWQ9IjM1MTkxNjMxNDEwNzA1MzM0NzQiPiLgtpTgtrbgtpzgt5og4La04Lee4Lav4LeK4Lac4La94LeS4LaaIOC2reC3nOC2u+C2reC3lOC2u+C3lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfcGVyc29uYWxJbmZvIiBtc2dpZD0iODQyNjQ1MzEyOTc4ODg2MTMzOCI+IuC2lOC2tuC2nOC3miDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48g4La04Lat4LeaIOC2huC2oOC2uuC2seC2uiDgtprgtrvgtrEg4La94LavLCDgtpTgtrYg4Lac4LeQ4LaxIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgt4Dgtr3gtqcg4LaN4Lai4LeUIOC2tOC3iuKAjeC2u+C3gOC3muC3geC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfc29jaWFsSW5mbyIgbXNnaWQ9IjU3OTkwOTY2MjM0MTIwNDM3OTEiPiLgtpTgtrbgtpzgt5og4LeD4La44LeP4Lai4La64LeT4La6IOC2reC3nOC2u+C2reC3lOC2u+C3lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc29jaWFsSW5mbyIgbXNnaWQ9IjcxMjk4NDI0NTc2MTE2NDM0OTMiPiLgtpTgtrbgtpzgt5og4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC3g+C3hCDgt4Pgt4/gtrjgt4/gtqIg4LeD4La44LeK4La24Lax4LeK4Law4La64Lax4LeKIOC2nOC3kOC2sSDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LeA4LeZ4LatIOC2jeC2ouC3lCDgtrTgt4rigI3gtrvgt4Dgt5rgt4HgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2xvY2F0aW9uIiBtc2dpZD0iNjM1MTQ5NzQyNDM2NjkyMDQ5Ij4i4LaU4La24Lac4LeaIOC3g+C3iuC2ruC3j+C2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfbG9jYXRpb24iIG1zZ2lkPSI1NzA0Njc5NzYzMTI0MTcwMTAwIj4i4LaU4La24Lac4LeaIOC2t+C3nuC2reC3kuC2miDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgtrgg4Lax4LeS4La74LeT4Laa4LeK4LeC4Lar4La6IOC2muC2u+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfbmV0d29yayIgbXNnaWQ9IjU4MDg5ODMzNzc3MjcxMDk4MzEiPiLgtqLgt4/gtr0g4LeD4Lax4LeK4Lax4LeS4LeA4Lea4Lav4Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19uZXR3b3JrIiBtc2dpZD0iNDQ3ODI5OTQxMzI0MTg2MTk4NyI+IuC3gOC3kuC3gOC3kuC2sCDgtqLgt4/gtr0g4LeA4LeS4LeB4Lea4LeC4LeP4LaC4LacIOC3gOC3meC2rSDgtrTgt5Lgt4Dgt5Lgt4Pgt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2JsdWV0b290aE5ldHdvcmsiIG1zZ2lkPSIxNTg1NDAzNTQ0MTYyMTI4MTA5Ij4i4La24LeK4La94LeW4Lan4LeW4Lat4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19ibHVldG9vdGhOZXR3b3JrIiBtc2dpZD0iNTYyNTI4ODU3NzE2NDI4MjM5MSI+IuC2tuC3iuC2veC3luC2p+C3luC2reC3iiDgtpTgt4Pgt4rgt4Pgt5og4LaL4La04LeP4LaC4LacIOC3g+C3hCDgtqLgt4/gtr0g4LeA4LeZ4LatIOC2tOC3kuC3gOC3kuC3g+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjgzMjkyNjE2NzAxNTE4NzEyMzUiPiLgt4Hgt4rigI3gtrvgt4Dgt4rigI3gtrog4LeD4LeQ4Laa4LeD4LeT4La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hdWRpb1NldHRpbmdzIiBtc2dpZD0iMjY0MTUxNTQwMzM0NzU2ODEzMCI+IuC3geC3iuKAjeC2u+C3gOC3iuKAjeC2uiDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4LeA4LeZ4Lax4LeD4LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYWZmZWN0c0JhdHRlcnkiIG1zZ2lkPSI2MjA5MjQ2NjUzNDI0Nzk4MDMzIj4i4La24LeQ4Lan4La74LeS4La6IOC3gOC3meC2rSDgtrbgtr3gtrTgt4/gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FmZmVjdHNCYXR0ZXJ5IiBtc2dpZD0iNjQ0MTI3NTMyMDYzODkxNjk0NyI+IuC2tuC3kOC2p+C2u+C3kuC2uuC3miDgtrbgtr3gtrog4Laa4LeK4LeC4Lar4LeS4Laa4LeAIOC2heC2qeC3lCDgt4DgtrEg4LeA4LeS4LeB4Lea4LeC4LeP4LaC4LacIOC2t+C3j+C3gOC3kuC2rSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2NhbGVuZGFyIiBtc2dpZD0iNTg2MzUwODQzNzc4MzY4MzkwMiI+IuC2r+C3kuC2sSDgtq/gtrvgt4rgt4HgtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2NhbGVuZGFyIiBtc2dpZD0iNTc3NzUzNDMxNjk4MjE4NDQxNiI+IuC2r+C3kuC2sSDgtq/gtrvgt4rgt4HgtrEg4LeD4LeS4Lav4LeK4Law4LeS4Lax4LeK4LanIOC3g+C3mOC2ouC3lOC3gCDgtrTgt4rigI3gtrvgt4Dgt5rgt4Eg4LeA4LeT4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaWN0aW9uYXJ5IiBtc2dpZD0iNDE0ODU5NzEyODg0MzY0MTM3OSI+IuC2tOC2u+C3kuC3geC3k+C2veC2miDgt4Hgtrbgt4rgtq8g4Laa4Led4LeC4La6IOC2muC3kuC2uuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2NfZGljdGlvbmFyeSIgbXNnaWQ9Ijc5MjExNjYzNTU5NjQ3NjQ0OTAiPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4LeB4La24LeK4LavIOC2muC3neC3guC2uuC3miDgt4DgtqDgtrEg4Laa4LeS4La64LeA4LeT4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl93cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSI4MDkwMjM3NzAyNDMyNTc2Nzg4Ij4i4La04La74LeS4LeB4LeT4La94LaaIOC3geC2tuC3iuC2r+C2muC3neC3guC2uuC2pyDgtr3gt5Lgt4Dgt5LgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3dyaXRlRGljdGlvbmFyeSIgbXNnaWQ9IjI3MTE1NjE5OTQ0OTczNjE2NDYiPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4LeB4La24LeK4Lav4Laa4Led4LeC4La64LanIOC3gOC2oOC2sSDgtpHgtprgtq3gt5Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9ib29rbWFya3MiIG1zZ2lkPSIxOTQ5NTE5NjczMTAzOTY4MjI5Ij4i4La04LeS4Lan4LeU4LeD4Lax4LeKIOC3g+C3hCDgtongtq3gt5Lgt4Tgt4/gt4PgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Jvb2ttYXJrcyIgbXNnaWQ9IjQxNjk3NzE2MDYyNTc5NjMwMjgiPiLgtrTgt5Lgtqfgt5Tgt4PgtrHgt4og4LeD4LeEIOC2tuC3iuKAjeC2u+C3gOC3iuC3g+C2uyDgtongtq3gt5Lgt4Tgt4/gt4Pgtrog4LeA4LeZ4LatIOC2jeC2ouC3lCDgtrTgt4rigI3gtrvgt4Dgt5rgt4HgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2RldmljZUFsYXJtcyIgbXNnaWQ9IjYxMTc3MDQ2Mjk3Mjg4MjQxMDEiPiLgt4Pgt5PgtrHgt5Tgt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2RldmljZUFsYXJtcyIgbXNnaWQ9IjQ3NjkzNTYzNjIyNTE2NDExNzUiPiLgt4Pgt5PgtrHgt5Tgt4Ag4LeD4Laa4LeD4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl92b2ljZW1haWwiIG1zZ2lkPSI0MTYyMjM3MTQ1MDI3NTkyMTMzIj4i4LeE4LasIOC2reC3kOC2tOC3keC2vSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfdm9pY2VtYWlsIiBtc2dpZD0iMjQ5ODQwMzk2OTg2Mjk1MTM5MyI+IuC3hOC2rCDgtq3gt5DgtrTgt5Hgtr0g4LeA4LeZ4LatIOC2jeC2ouC3lCDgtrTgt4rigI3gtrvgt4Dgt5rgt4HgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX21pY3JvcGhvbmUiIG1zZ2lkPSIxNzE1Mzk5MDAyNTAwNDM0NjQiPiLgtrjgtrrgt5Lgtprgt4rigI3gtrvgt5zgt4bgt53gtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX21pY3JvcGhvbmUiIG1zZ2lkPSI3MTA2NjE4Mjg2OTA1NzM4NDA4Ij4i4LeB4La24LeK4Lav4La6IOC2tOC2p+C3kuC2nOC2rSDgtprgt5Lgtrvgt5Pgtrjgtqcg4La44La64LeS4Laa4LeK4oCN4La74Lec4LeG4Led4Lax4La6IOC3gOC3meC2rSDgto3gtqLgt5Qg4La04LeK4oCN4La74LeA4Lea4LeB4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9jYW1lcmEiIG1zZ2lkPSI0ODIwMzcyNDk1ODk0NTg2NjE1Ij4i4Laa4LeQ4La44La74LeP4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19jYW1lcmEiIG1zZ2lkPSIyOTMzNjY3MzcyMjg5NTY3NzE0Ij4i4Lah4LeP4La64LeP4La74LeW4La0IOC3hOC3nSDgt4Dgt5Pgtqngt5Lgtrrgt50g4Lac4LeK4oCN4La74LeE4Lar4La6IOC3g+C2s+C3hOC3jyDgtprgt5Dgtrjgtrvgt4/gt4Ag4LeA4LeZ4LatIOC2jeC2ouC3lCDgtrTgt4rigI3gtrvgt4Dgt5rgt4HgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3NjcmVlbmxvY2siIG1zZ2lkPSI4Mjc1NTAwMTczMzMwNzE4MTY4Ij4i4LaF4Lac4LeU4LeF4LeUIOC2reC3kuC2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc2NyZWVubG9jayIgbXNnaWQ9IjcwNjc0OTcxMjg5MjU0OTk0MDEiPiLgtpTgtrbgtpzgt5og4LaL4La04LeP4LaC4Lac4La64LeaIOC2heC2nOC3lOC3heC3lCDgtq3gt5Lgtrvgtrrgt5og4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74LeS4Lat4LeK4LeA4La64LanIOC2tuC2veC2tOC3j+C2sSDgt4Tgt5Dgtprgt5Lgtrrgt4/gt4AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX2FwcEluZm8iIG1zZ2lkPSI4MDI4Nzg5NzYyNjM0MTQ3NzI1Ij4i4LaU4La24Lac4LeaIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr0g4Lat4Lec4La74Lat4LeU4La74LeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hcHBJbmZvIiBtc2dpZD0iMzk1MDM3ODUzODA0OTYyNTkwNyI+IuC2lOC2tuC2nOC3miDgtovgtrTgt4/gtoLgtpzgtrrgt5og4LeA4LeZ4Lax4Lat4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr0g4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74LeS4Lat4LeK4LeA4La64LanIOC2tuC2veC2tOC3keC2uOC3iiDgtprgt4Ug4LeE4LeQ4Laa4LeSIOC2tuC3gC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfd2FsbHBhcGVyIiBtc2dpZD0iMzg1MDI4MDE1ODA0MTE3NTk5OCI+IuC2tuC3kuC2reC3lOC2tOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfd2FsbHBhcGVyIiBtc2dpZD0iNTYzMDQxNzg1NDc1MDU0MDE1NCI+IuC2i+C2tOC3j+C2guC2nCDgtrbgt5Lgtq3gt5TgtrTgtq3gt5og4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC3gOC3meC2seC3g+C3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N5c3RlbUNsb2NrIiBtc2dpZD0iNDA2NTM1NzU5MjM2NjEyOTkyIj4i4LaU4La74La94Led4LeD4LeU4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeXN0ZW1DbG9jayIgbXNnaWQ9IjM5NDQzNTk4MzM2MjQwOTQ5OTIiPiLgtovgtrTgt4/gtoLgtpwg4Laa4LeP4La9IOC3hOC3nSDgtprgt4/gtr0g4Laa4La94LeP4La0IOC3gOC3meC2seC3g+C3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N0YXR1c0JhciIgbXNnaWQ9IjIwOTU4NjI1NjgxMTM5NDUzOTgiPiLgtq3gtq3gt4rgt4Ag4Lat4LeT4La74LeU4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zdGF0dXNCYXIiIG1zZ2lkPSI2MjQyNTkzNDMyMjI2ODA3MTcxIj4i4LaL4La04LeP4LaC4LacIOC2reC2reC3iuC3gCDgtq3gt5Pgtrvgt5Qg4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC3gOC3meC2seC3g+C3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwbGFiX3N5bmNTZXR0aW5ncyIgbXNnaWQ9IjMzNDE5OTA5ODYxNDc4MjY1NDEiPiLgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4LeD4LeQ4Laa4LeD4LeT4La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeW5jU2V0dGluZ3MiIG1zZ2lkPSI3NjAzMTk1MjY1MTI5MDMxNzk3Ij4i4LeD4La44La44LeU4LeE4LeU4La74LeK4LatIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4Dgt5ngtq0g4La04LeK4oCN4La74LeA4Lea4LeB4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9hY2NvdW50cyIgbXNnaWQ9IjMzNTk2NDYyOTExMjUzMjU1MTkiPiLgtpTgtrbgtpzgt5og4Lac4LeS4Lar4LeU4La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19hY2NvdW50cyIgbXNnaWQ9IjQ5NDg3MzI2NDE4MjcwOTEzMTIiPiLgtr3gtrbgt4/gtpzgtq0g4LeE4LeQ4Laa4LeSIOC2nOC3kuC2q+C3lOC2uOC3iiDgt4Dgtr3gtqcg4La04LeK4oCN4La74LeA4Lea4LeBIOC3gOC3k+C2uC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfaGFyZHdhcmVDb250cm9scyIgbXNnaWQ9Ijc5OTgyMTQ5Njg3OTE1OTkzMjYiPiLgtq/gt5jgtqngt4/gtoLgtpwg4La04LeP4La94LaaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19oYXJkd2FyZUNvbnRyb2xzIiBtc2dpZD0iNDM1NzA1Nzg2MTIyNTQ2MjcwMiI+IuC3hOC3keC2seC3iuC2qeC3iuC3g+C3meC2p+C2uuC3miDgtq/gt5jgtqngt4/gtoLgtpwg4LeA4La94LanIOC3g+C3mOC2ouC3lOC3gOC2uCDgtrTgt4rigI3gtrvgt4Dgt5rgt4Eg4LeA4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9waG9uZUNhbGxzIiBtc2dpZD0iOTA2NzE3Mzk4ODMyNTg2NTkyMyI+IuC2r+C3lOC2u+C2muC2ruC2sSDgtofgtrjgtq3gt5Tgtrjgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX3Bob25lQ2FsbHMiIG1zZ2lkPSI3NDg5NzAxNjIwNDQ2MTgzNzcwIj4i4Lav4LeU4La74Laa4Lau4LaxIOC2h+C2uOC2reC3lOC2uOC3iiDgtrHgt5Lgtrvgt5Pgtprgt4rgt4Lgtqvgtrog4Laa4La74Lax4LeK4LaxLCDgtrTgtqfgt5Lgtpzgtq0g4Laa4La74Lax4LeK4LaxIOC3g+C3hCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtq3gt4rgtrjgtpog4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zeXN0ZW1Ub29scyIgbXNnaWQ9IjQ2NTIxOTE2NDQwODI3MTQwNDgiPiLgtrTgtq/gt4rgtrDgtq3gt5Ig4La44LeZ4LeA4La94La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19zeXN0ZW1Ub29scyIgbXNnaWQ9IjgxNjIxMDI2MDIxOTA3MzQzMDUiPiLgtrTgtq/gt4rgtrDgtq3gt5Lgtrrgt5og4La04LeE4La9IOC2uOC2p+C3iuC2p+C2uOC3iiDgtrTgt4rigI3gtrvgt4Dgt5rgt4Hgtrog4LeD4LeEIOC2tOC3j+C2veC2seC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfZGV2ZWxvcG1lbnRUb29scyIgbXNnaWQ9IjM0NDYxNjQ1ODQ3MTA1OTY1MTMiPiLgt4PgtoLgt4Dgtrvgt4rgtrDgtpog4La44LeZ4LeA4La94La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWdyb3VwZGVzY19kZXZlbG9wbWVudFRvb2xzIiBtc2dpZD0iNzA1ODgyODAzMjM1ODE0MjAxOCI+IuC2uuC3meC2r+C3lOC2uOC3iiDgt4PgtoLgt4Dgtrvgt4rgtrDgtprgtrrgtrHgt4og4LeD4Laz4LeE4LePIOC2tOC2uOC2q+C2muC3iiDgtoXgt4Dgt4Hgt4rigI3gtrog4LeA4LeS4LeB4Lea4LeC4LeP4LaC4LacLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9kaXNwbGF5IiBtc2dpZD0iNDI3OTkwOTY3NjAzNjQwMjYzNiI+IuC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4ogVUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2Rpc3BsYXkiIG1zZ2lkPSI2MDUxMDAyMDMxOTMzMDEzNzE0Ij4i4LeA4LeZ4Lax4Lat4LeKIOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2vSBVSSDgt4PgtrPgt4Tgt48g4La24La94La04LeP4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGxhYl9zdG9yYWdlIiBtc2dpZD0iMTk3MTExODc3MDU0NjMzNjk2NiI+IuC2huC2oOC2uuC2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI3NDQyMzE4NTAyNDQ2ODc0OTk5Ij4iVVNCIOC2huC2oOC2uuC2seC2uiDgt4Dgt5ngtq0g4La04LeK4oCN4La74LeA4Lea4LeB4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1ncm91cGRlc2Nfc3RvcmFnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjkyMDMzMDIyMTQ5MTUzNTU3NzQiPiJTRCDgtrTgtq0g4LeA4LeZ4LatIOC2tOC3iuKAjeC2u+C3gOC3muC3geC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBsYWJfYWNjZXNzaWJpbGl0eUZlYXR1cmVzIiBtc2dpZD0iNzkxOTAyNTYwMjI4MzU5MzkwNyI+IuC2tOC3iuKAjeC2u+C3gOC3muC3geC3iuKAjeC2uuC2reC3jyDgt4Dgt5Lgt4Hgt5rgt4Lgt4/gtoLgtpwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZ3JvdXBkZXNjX2FjY2Vzc2liaWxpdHlGZWF0dXJlcyIgbXNnaWQ9IjQyMDUxOTY4ODE2NzgxNDQzMzUiPiLgtovgtrTgtprgt4/gtrvgt5Pgt4DgtrEg4Lat4LeP4Laa4LeK4LeC4LarIOC2ieC2veC3iuC2veC3k+C2uOC3iiDgtprgt4Ug4LeE4LeQ4Laa4LeSIOC3gOC3kuC3geC3muC3guC3j+C2guC2nC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBhYmlsaXR5X3RpdGxlX2NhblJldHJpZXZlV2luZG93Q29udGVudCIgbXNnaWQ9IjM5MDE3MTc5MzY5MzAxNzAzMjAiPiLgtprgt4Dgt5Tgt4Xgt5Qg4LaF4Lax4LeK4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC2veC2tuC3j+C2nOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfZGVzY19jYW5SZXRyaWV2ZVdpbmRvd0NvbnRlbnQiIG1zZ2lkPSIzNzcyMjI1MDA4NjA1MzEwNjcyIj4i4LaU4La2IOC2heC2seC3iuC2reC2u+C3iuC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C3kyDgt4DgtrEg4Laa4LeA4LeU4LeF4LeU4LeA4LeaIOC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uiDgtrTgtrvgt5Pgtprgt4rgt4Lgt48g4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdFRvdWNoRXhwbG9yYXRpb24iIG1zZ2lkPSIzMTA4NzIzMzY0Njc2NjY3MzIwIj4i4LeD4LeK4La04La74LeK4LeB4La64LeZ4Lax4LeKIOC2nOC3gOC3muC3guC2q+C2uiDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV9kZXNjX2NhblJlcXVlc3RUb3VjaEV4cGxvcmF0aW9uIiBtc2dpZD0iNTgwMDU1MjUxNjc3OTI0OTM1NiI+IuC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrEg4LaF4La64LeS4Lat4La4IOC3hOC2rCDgtrHgtpzgt48g4Laa4Lat4LePIOC2muC3meC2u+C3meC2seC3lCDgtofgtq3gt5Ig4LaF4Lat4La7IOC2ieC2guC2nOC3kuC2reC3kiDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4Lat4LeS4La74La6IOC2nOC3gOC3muC3guC2q+C2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La04LeU4LeF4LeU4LeA4Lax4LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdEVuaGFuY2VkV2ViQWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjE3Mzk4ODE3NjY1MjI1OTQwNzMiPiLgtovgt4Pgt4Pgt4og4LeA4LeZ4La24LeKIOC2tOC3iuKAjeC2u+C3gOC3muC3geC3iuKAjeC2uuC2reC3j+C3gCDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV9kZXNjX2NhblJlcXVlc3RFbmhhbmNlZFdlYkFjY2Vzc2liaWxpdHkiIG1zZ2lkPSI3ODgxMDYzOTYxNTA3NTExNzY1Ij4i4La64LeZ4Lav4LeU4La44LeKIOC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uuC2pyDgtrTgt4rigI3gtrvgt4Dgt5rgt4Hgt4rigI3gtrrgtq3gt4/gt4Dgtrog4LeA4LeQ4Lap4LeS4LeA4LaxIOC2veC3meC3gyDgt4Pgtprgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2h+C2reC3kOC2uOC3iiDgt4Dgt5Lgtqcg4LeD4LeK4Laa4LeK4oCN4La74LeS4La04LeK4Lan4LeKIOC3g+C3iuC2ruC3j+C2tOC2seC2uiDgtprgtrsg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGFiaWxpdHlfdGl0bGVfY2FuUmVxdWVzdEZpbHRlcktleUV2ZW50cyIgbXNnaWQ9IjIxMDM0NDAzOTE5MDI0MTIxNzQiPiLgtpTgtrYg4Lan4La64LeS4La04LeKIOC2muC3hSDgtrTgt5ngt4Ug4La24La94Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FwYWJpbGl0eV9kZXNjX2NhblJlcXVlc3RGaWx0ZXJLZXlFdmVudHMiIG1zZ2lkPSI3NDYzMTM1MjkyMjA0MTUyODE4Ij4i4Lar4La64LeA4La74La04Lat4LeKIOC2heC2guC2miDgt4Pgt4Qg4La44LeU4La74La04LavIOC3gOC3kOC2seC3kiDgtrTgt5Tgtq/gt4rgtpzgtr3gt5Lgtpog4Lav4Lat4LeK4LatIOC2h+C2reC3lOC3heC2reC3iiDgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdGF0dXNCYXIiIG1zZ2lkPSI3NDE3MTkyNjI5NjAxODkwNzkxIj4i4Lat4Lat4LeK4LeAIOC2reC3k+C2u+C3lOC3gCDgtoXgtrbgtr0g4Laa4La74Lax4LeK4LaxIOC3hOC3nSDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RhdHVzQmFyIiBtc2dpZD0iODQzNDY2OTU0OTUwNDI5MDk3NSI+IuC2reC2reC3iuC3gCDgtq3gt5Pgtrvgt5Tgt4Ag4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgt4Tgt50g4La04Lav4LeK4Law4Lat4LeSIOC2seC3kuC2u+C3luC2tOC2miDgtpHgtprgtq3gt5Qg4LeE4LedIOC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdGF0dXNCYXJTZXJ2aWNlIiBtc2dpZD0iNzI0NzI4MTkxMTM4NzkzMTQ4NSI+IuC2reC2reC3iuC3gCDgtq3gt5Pgtrvgt5Tgt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdGF0dXNCYXJTZXJ2aWNlIiBtc2dpZD0iNzE2MTEzNjYwNzk1OTc2MDYwIj4i4Lat4Lat4LeK4LeAIOC2reC3k+C2u+C3lOC3gCDgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9leHBhbmRTdGF0dXNCYXIiIG1zZ2lkPSIxMTQ4MTk4Nzg1OTM3NDg5MjY0Ij4i4Lat4Lat4LeK4LeAIOC2reC3k+C2u+C3lOC3gCDgtq/gt5Lgtpwg4LeE4LeQ4La74LeT4La4L+C3hOC3kOC2muC3kuC2veC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2V4cGFuZFN0YXR1c0JhciIgbXNnaWQ9IjY5MTc1NDk0MzcxMjk0MDExMzIiPiLgtq3gtq3gt4rgt4Ag4Lat4LeT4La74LeU4LeAIOC2r+C3kuC2nCDgt4Tgt5Dgtrvgt5Pgtrjgtqcg4LeE4LedIOC3hOC3kOC2muC3kuC3heC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3Byb2Nlc3NPdXRnb2luZ0NhbGxzIiBtc2dpZD0iMzkwNjAwNzgzMTE5Mjk5MDk0NiI+IuC2tOC3kuC2p+C3gOC2sSDgtofgtrjgtq3gt5Tgtrjgt4og4LeA4La9IOC2uOC2nCDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcHJvY2Vzc091dGdvaW5nQ2FsbHMiIG1zZ2lkPSI1MzMxMzE4OTMxOTM3NDAyMDQwIj4i4La04LeS4Lan4LeA4LaxIOC2h+C2uOC2reC3lOC2uOC3iiDgt4Pgtprgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC3g+C3hCDgtofgtrjgtq3gt5Pgtrjgtqcg4Lax4LeS4La64La44LeS4LatIOC2heC2guC2muC2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngtrgg4LaF4LeA4LeD4La74La64LeZ4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgtrTgt5Lgtqfgt4DgtrEg4LaH4La44Lat4LeU4La44LeKIOC2seC3kuC2u+C3k+C2muC3iuC3guC2q+C2uiwg4Lax4LeQ4LeA4LatIOC3hOC3kOC2u+C3gOC3k+C2uCDgt4Tgt50g4LeA4LeQ4LeF4Laa4LeK4LeA4LeT4La4IOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNlaXZlU21zIiBtc2dpZD0iODY3MzQ3MTc2ODk0Nzg5NTA4MiI+IuC2muC3meC2p+C3kiDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La94La24LeP4Lac4LeQ4Lax4LeT4La4IChTTVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVNtcyIgbXNnaWQ9IjY0MjQzODc3NTQyMjg3NjY5MzkiPiJTTVMg4La04Lar4LeS4LeA4LeS4LapIOC2veC3kOC2tuC3k+C2uOC2pyDgt4Pgt4Qg4Laa4LeK4oCN4La74LeS4La64LeP4Lat4LeK4La44LaaIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4LeE4LeSIOC2reC3muC2u+C3lOC2uCDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaU4La24Lac4LeaIOC2i+C2tOC3j+C2guC2nOC2uuC2pyDgtr3gt5Dgtrbgt5ngtrEg4La04Lar4LeS4LeA4LeS4LapIOC2heC2sOC3k+C2muC3iuC3guC2q+C2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeE4LeQ4Laa4LeS4LeA4LeT4La4IOC3gOC2sSDgtoXgtq3gtrssIOC2kuC3gOC3jyDgtpTgtrbgtqcg4Lax4Lec4La04LeZ4Lax4LeK4LeA4LePIOC2uOC2muC3jyDgtq/gt5Dgtrjgt5Pgtrjgtqfgtq8g4LeE4LeQ4Laa4LeSIOC3gOC3k+C2uOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVNbXMiIG1zZ2lkPSIxODIxMzE3MzQ0NjY4MjU3MDk4Ij4i4La04LeZ4LeFIOC2tOC2q+C3kuC3gOC3lOC2qSDgtr3gtrbgt4/gtpzgtrHgt4rgtrEgKE1NUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlTW1zIiBtc2dpZD0iNTMzMDE5NDM3MjYzMjEyMjYwIj4iTU1TIOC2tOC2q+C3kuC3gOC3kuC2qSDgt4Pgt5zgtrrgt48g4La94La24LeP4Lac4LeQ4Lax4LeT4La44LanIOC3g+C3hCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtq3gt4rgtrjgtpog4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrrgt5ngtq/gt5Tgtrgg4Lax4LeS4La74LeT4Laa4LeK4LeC4Lar4La6IOC2muC2u+C2seC3lCDgtr3gtrbgtrEg4LaF4Lat4La7IOC2lOC2tuC2pyDgtr3gt5Dgtrbgt5TgtrEg4La04Lar4LeS4LeA4LeS4LapIOC2tOC3meC2seC3iuC3gOC3k+C2uOC3meC2seC3iiDgtq3gt5zgtrvgt4Dgtrgg4La44Laa4LePIOC2r+C3kOC2uOC3kuC2uiDgt4Tgt5Dgtprgt5Ig4La24LeAIOC2uOC3meC2uOC2n+C3kuC2seC3iiDgtoXgtq/gt4Tgt4Pgt4og4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVjZWl2ZUVtZXJnZW5jeUJyb2FkY2FzdCIgbXNnaWQ9IjE4MDM0Nzc2NjA4NDYyODgwODkiPiLgt4Tgtq/gt5Lgt4Pgt5Ig4LeA4LeS4Laa4LeP4LeB4LaxIOC2veC2tuC3jyDgtpzgt5DgtrHgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWNlaXZlRW1lcmdlbmN5QnJvYWRjYXN0IiBtc2dpZD0iODQ4NTI0MDcwMjYyNDMxOTc0Ij4i4LeE4Lav4LeS4LeD4LeSIOC3gOC3kuC2muC3j+C3gSDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La94LeQ4La24LeT4La44LanIOC3g+C3hCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtq3gt4rgtrjgtpog4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrTgtq/gt4rgtrDgtq3gt5Ig4La64LeZ4Lav4LeU4La44LeKIOC3gOC2veC2pyDgtrTgtrjgtqvgtprgt4og4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uiDgtoXgtq/gt4/gt4Ug4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZENlbGxCcm9hZGNhc3RzIiBtc2dpZD0iMTU5ODMyODg0MzYxOTY0NjE2NiI+IuC3g+C3meC2veC3iiDgtrTgt4rigI3gtrvgtqDgt4/gtrvgtqsg4La04Lar4LeS4LeA4LeS4LapIOC2muC3kuC2uuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDZWxsQnJvYWRjYXN0cyIgbXNnaWQ9IjYzNjE5NzI3NzYwODA0NTg5NzkiPiLgtpTgtrbgtpzgt5og4LaL4La04LeP4LaC4Lac4La64LanIOC2veC3kOC2tuC3lOC2q+C3lCDgt4Pgt5ngtr3gt4og4LeA4LeS4Laa4LeP4LeB4LaxIOC2tOC2q+C3kuC3gOC3kuC2qSDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2lOC2tuC2pyDgt4Tgtq/gt5Lgt4Pgt5Ig4LaF4LeA4LeD4LeK4Lau4LeP4LeA4Lax4LeKIOC2tOC3kuC3heC3kuC2tuC2syDgtoXgtrHgtq3gt5Tgtrvgt5Qg4LaH4Laf4LeA4LeT4La44LanIOC3g+C3meC2veC3iiDgt4Dgt5Lgtprgt4/gt4HgtrEg4La04Lar4LeS4LeA4LeS4LapIOC2h+C2reC3kOC2uOC3iiDgt4Pgt4rgtq7gt4/gtrHgt4Dgtr0g4LeD4LeS4LanIOC2uuC3gOC2seC3lCDgtr3gtrbgtrrgt5IuIOC3hOC2r+C3kuC3g+C3kiDgt4Pgt5ngtr3gt4og4LeA4LeS4Laa4LeP4LeB4LaxIOC2veC3kOC2tuC3meC2sSDgtoXgt4Dgt4Pgt4rgtq7gt4/gt4Dgtprgtq/gt5MsIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4La44Laf4LeS4Lax4LeKIOC2lOC2tuC2nOC3miDgtovgtrTgt4/gtoLgtpzgtrrgtqcg4Laa4LeP4La74LeK4La6IOC3g+C3j+C2sOC2seC2uuC2pyDgt4Tgt50g4Laa4LeK4oCN4La74LeS4La64Laa4La74Lar4La64LanIOC2tuC3j+C2sOC3jyDgt4Pgt5Lgtq/gt5Tgt4Dgt5Lgtrog4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFNtcyIgbXNnaWQ9IjU2MDA4MzA2MTIxNDc2NzE1MjkiPiJTTVMg4La04Lar4LeS4LeA4LeS4LapIOC2uuC3kOC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NlbmRTbXMiIG1zZ2lkPSI3MDk0NzI5Mjk4MjA0OTM3NjY3Ij4iU01TIOC2tOC2q+C3kuC3gOC3kuC2qSDgtrrgt5Dgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uOC2n+C3kuC2seC3iiDgtrbgtr3gt4/gtrTgt5zgtrvgt5zgtq3gt4rgtq3gt5Qg4Lax4Lec4LeA4LeWIOC2tOC3iuKAjeC2u+C2reC3kuC2teC2vSDgtoXgtq3gt4og4LeA4LeS4La6IOC3hOC3kOC2mi4g4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtpTgtrbgtpzgt5og4Lat4LeE4LeA4LeU4La74LeU4LeA4Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La64LeQ4LeA4LeT4La4IOC2uOC2n+C3kuC2seC3iiDgtpTgtrbgtpzgt5og4La44LeU4Lav4La94LeKIOC3gOC3kOC2uiDgtprgtr0g4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9Ijg3MTM4ODkxMDUzMDU5NDMyMDAiPiLgtrTgtqvgt5Lgt4Dgt5Lgtqkg4LeD4LeS4Lav4LeU4LeA4LeT4La4IOC3hOC2u+C3hOC3jyDgtrTgt4rigI3gtrvgtq3gt5LgtqDgt4/gtrsg4La64LeQ4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VuZFJlc3BvbmRWaWFNZXNzYWdlUmVxdWVzdCIgbXNnaWQ9IjcxMDc2NDg1NDg0Njg3Nzg3MzQiPiLgtrTgt5Dgtrjgt5Lgtqvgt5ngtrEg4LaH4La44Lat4LeU4La44LeKIOC3g+C2s+C3hOC3jyDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4LaU4LeD4LeK4LeD4LeaIOC2tOC3iuKAjeC2u+C2reC3kuC2oOC3j+C2uyDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt4og4LeE4LeD4LeU4La74LeU4LeA4LeT4La44LanIOC3gOC3meC2seC2reC3iiDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La64LeZ4Lav4LeU4La44LeKIOC3g+C2s+C3hOC3jyDgtongtr3gt4rgtr3gt5Pgtrjgt4og4La64LeQ4LeA4LeT4La44LanLCDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTbXMiIG1zZ2lkPSI4NzQ1MDg2NTcyMjEzMjcwNDgwIj4i4LaU4La24Lac4LeaIOC2tOC3meC3hSDgtrTgtqvgt5Lgt4Dgt5Tgtqkg4Laa4LeS4La64LeA4Lax4LeK4LaxIChTTVMg4LeE4LedIE1NUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkU21zIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNDY3OTgxNTQ4Njg0NzM1NTIyIj4i4LaU4La24Lac4LeaIOC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgt4Tgt50gU0lNIOC2tOC2reC3miDgtobgtqDgtrrgtrHgtrog4Laa4La7IOC2h+C2reC3kiBTTVMg4La04Lar4LeS4LeA4LeS4LapIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC3hOC3nSDgt4Dgt5Lgt4Hgt4Dgt4/gt4Pgtq/gtrrgt5Ig4La24LeA4LeS4Lax4LeKIOC2reC3nOC2u+C3gOC2uCDgt4Pgt5Lgtrrgtr3gt5QgU01TIOC2tOC2q+C3kuC3gOC3kuC2qSDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La44LeZ4La44Lac4LeS4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNjk1OTY3NTMzNDU3MjQwNTUwIj4i4LaU4La24Lac4LeaIOC2r+C3lOC2u+C2muC2ruC2seC2uuC3miDgt4Tgt50gU0lNIOC2tOC2reC3miDgtobgtqDgtrrgtrHgtrog4Laa4La74LaxIOC2veC2ryBTTVMg4La04Lar4LeS4LeA4LeS4LapIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC3hOC3nSDgt4Dgt5Lgt4Hgt4rgt4Dgt4/gt4Pgtq/gt4/gtrrgt5Mg4La24LeA4LeS4Lax4LeKIOC2reC3nOC2u+C3gOC2uCDgt4Pgt5Lgtrrgtr3gt5QgU01TIOC2tOC2q+C3kuC3gOC3kuC2qSDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La44LeZ4La44Lac4LeS4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTbXMiIG1zZ2lkPSIzMjE2OTUwNDcyNjM2MjE0Nzc0Ij4i4LaU4La24Lac4LeaIOC2muC3meC2p+C3kiDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4LeD4LaC4LeD4LeK4Laa4La74Lar4La6IOC2muC3kuC2u+C3k+C2uCAoU01TIOC3hOC3nSBNTVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTbXMiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjUxNjA0MTM5NDc3OTQ1MDE1MzgiPiLgtpTgtrbgtpzgt5og4Lan4LeQ4La24LeK4La94Lan4La64LeaIOC3hOC3nSBTSU0g4La04Lat4LeaIOC2nOC2tuC2qeC3jyDgtprgtrsg4LaH4Lat4LeSIFNNUyDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4LeA4LeZ4LatIOC2veC3kuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtpTgtrbgtpzgt5og4La04Lar4LeS4LeA4LeS4LapIOC2uOC2muC3jyDgtq/gt5Dgtrjgt5Lgtrog4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU21zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzI2ODY2ODcwOTA1MjMyODU2NyI+IuC2lOC2tuC2nOC3miDgtqfgt5Dgtrbgt4rgtr3gtqfgtrrgt5og4LeE4LedIFNJTSDgtrTgtq3gt5og4LaG4Lag4La64Lax4La6IOC2muC2u+C2sSDgtr3gtq8gU01TIOC2tOC2q+C3kuC3gOC3kuC2qSDgtr3gt5Lgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4LaU4La24Lac4LeaIOC2tOC2q+C3kuC3gOC3kuC2qSDgtrjgtprgt48g4Lav4LeQ4La44LeS4La6IOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVXYXBQdXNoIiBtc2dpZD0iNTk5MTM5ODcxMTkzNjU5MDQxMCI+IuC2tOC3meC3hSDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La94La24LeP4Lac4LeQ4Lax4LeT4La4IChXQVApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZVdhcFB1c2giIG1zZ2lkPSI3NDgyMzIxOTAyMjA1ODMzODUiPiJXQVAg4La04Lar4LeS4LeA4LeS4LapIOC2veC3kOC2tuC3k+C2uOC2pyDgt4Pgt4Qg4Laa4LeK4oCN4La74LeS4La64LeP4LeA4La94LeSIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uuC3meC3hOC3kiDgtpTgtrbgt4Ag4LaS4LeA4LeP4LanIOC2tOC3meC2seC3iuC3gOC3k+C2uOC2muC3kuC2seC3iiDgtq3gt5zgtrvgt4Ag4LaU4La24LanIOC2tOC2q+C3kuC3gOC3kuC2qSDgtrHgt5Lgtrvgt5Pgtprgt4rgt4Lgtqvgtrrgtqcg4LeE4LedIOC2uOC3kOC2muC3k+C2uOC2pyDgt4Tgt5Dgtprgt5Lgtrrgt4/gt4Ag4LaH4Lat4LeU4LeF4Lat4LeKIOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFRhc2tzIiBtc2dpZD0iNjQ2NjA5NTM5NjYyMzkzMzkwNiI+IuC2sOC3j+C3gOC2seC2uiDgt4DgtrEg4La64LeZ4Lav4LeU4La44LeKIOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldFRhc2tzIiBtc2dpZD0iNzQ1NDIxNTk5NTg0NzY1ODEwMiI+IuC2r+C3kOC2seC2pyDgt4Pgt4Qg4La44LeR4LatIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2reC3iuC2uOC2miDgtprgt4/gtrvgt4rgtrrgtrrgtrHgt4og4La04LeS4LeF4LeS4La24LazIOC3gOC3kuC3g+C3iuC2reC2u+C3j+C2reC3iuC2uOC2miDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LeD4Lec4La64LePIOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La6IOC2muC3lOC2uOC2sSDgtrrgt5ngtq/gt5Tgtrjgt4og4LaL4La04LeP4LaC4Lac4La64LeaIOC2t+C3j+C3gOC3kuC2reC3jyDgtprgtrvgtrHgt4rgtrHgt5rgtq8g4La64LaxIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr3gtqcg4LeD4Lec4La64LePIOC2nOC3kOC2seC3k+C2uOC2pyDgtongtqkg4Lav4LeS4La6IOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVyYWN0QWNyb3NzVXNlcnMiIG1zZ2lkPSI3MTE0MjU1MjgxOTQ0MjExNjgyIj4i4La04La74LeS4LeB4LeT4La94Laa4La64Lax4LeKIOC2heC2reC2uyDgtoXgtrHgt4rgtq3gtrvgt4rgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgt5Mg4LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJhY3RBY3Jvc3NVc2VycyIgbXNnaWQ9IjM2NDY3MDk2MzYyMzM4NTc4NiI+IuC2i+C2tOC3j+C2guC2nOC2uuC3miDgt4Dgt5Lgt4Dgt5LgtrAg4La04La74LeS4LeB4LeT4La94Laa4La64Lax4LeKIOC3hOC2u+C3hOC3jyDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4DgtrHgt4og4Lav4LeQ4Laa4LeK4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtprgtrrgtrHgt4og4LaF4Lat4La7IOC2huC2u+C2muC3iuC3guC3j+C3gCDgtprgtqngtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5Lgt4Pgt5LgtrHgt4og4La44LeZ4La6IOC2t+C3j+C3gOC3kuC2reC3jyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaJ4LapIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ludGVyYWN0QWNyb3NzVXNlcnNGdWxsIiBtc2dpZD0iMjU2NzczNDI4NTU0NTA3NDEwNSI+IuC2tOC2u+C3kuC3geC3k+C2veC2muC2uuC2seC3iiDgtoXgtq3gtrsg4LaF4Lax4LeK4Lat4La74LeKIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C3kyDgt4Dgt5Pgtrjgtqcg4LeD4La44LeK4La04LeW4La74LeK4LarIOC2tuC2veC2tOC2reC3iuKAjeC2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ludGVyYWN0QWNyb3NzVXNlcnNGdWxsIiBtc2dpZD0iMzc2ODQxMzY4Mzk1NTAyMzY2Ij4i4La04La74LeS4LeB4LeT4La94Laa4La64Lax4LeKIOC3hOC2u+C3hOC3jyDgt4Pgt5Lgtq/gt5Qg4Laa4LeFIOC3hOC3kOC2muC3kiDgt4Pgt5Lgtrrgtr3gt5Qg4LaF4Lax4LeK4Lat4La74LeKIOC2muC3iuKAjeC2u+C3kuC2uuC3jyDgt4Dgtr3gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzZXJzIiBtc2dpZD0iMTY3NjE1MDkxMTY3MjI4MjQyOCI+IuC2tOC2u+C3kuC3geC3k+C2veC2muC2uuC2seC3iiDgtprgt4XgtrjgtrHgt4/gtprgtrvgtqvgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNlcnMiIG1zZ2lkPSI4NDA5MzA2NjY3NjQ1MzU1NjM4Ij4i4LeA4LeS4LeD4LeK4Lat4La7IOC2veC2tuC3jyDgtpzgt5DgtrHgt5PgtrgsIOC2seC3kuC2u+C3iuC2uOC3j+C2q+C2muC2u+C2q+C2uiwg4La44Laa4LeP4Lav4LeQ4La44LeT4La4IOC2h+C2reC3lOC3heC3lCDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtprgtrrgtrHgt4og4Laa4LeF4La44Lax4LeP4Laa4La74Lar4La64LanIOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ2V0RGV0YWlsZWRUYXNrcyIgbXNnaWQ9IjYyMjk0Njg2NzQ3NTM1Mjk1MDEiPiLgtrDgt4/gt4DgtrHgtrog4LeA4LaxIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr0g4Lat4Lec4La74Lat4LeU4La74LeUIOC3g+C3nOC2uuC3jyDgtr3gtrbgt4/gtpzgt5DgtrHgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXREZXRhaWxlZFRhc2tzIiBtc2dpZD0iMTUzODI0NzQxNDQwNzE3NTk5Ij4i4Lav4LeQ4Lax4LanIOC3g+C3hCDgtrjgt5Hgtq3gtpog4Laa4LeK4oCN4La74LeS4La64LeP4Lat4LeK4La44LaaIOC2muC3j+C2u+C3iuC2uuC2uuC2seC3iiDgtrTgt5Lgt4Xgt5LgtrbgtrMg4LeA4LeS4LeD4LeK4Lat4La74LeP4Lat4LeK4La44LaaIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtr3gtrbgt4/gtpzgt5DgtrHgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtoXgtrHgt5ngtprgt5Tgtq3gt4og4La64LeZ4Lav4LeU4La44LeKIOC2tOC3kuC3heC3kuC2tuC2syDgtrTgt5Tgtq/gt4rgtpzgtr3gt5Lgtpog4Lat4Lec4La74Lat4LeU4La74LeUIOC3g+C3nOC2uuC3jyDgtpzgt5DgtrHgt5Pgtrjgtqcg4LaJ4LapIOC2reC3kuC2tuC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3Jlb3JkZXJUYXNrcyIgbXNnaWQ9IjIwMTg1NzU1MjY5MzQ0MjI3NzkiPiLgtrDgt4/gt4DgtrHgtrog4LeA4LaxIOC2uuC3meC2r+C3lOC2uOC3iiDgtrHgt5Dgt4Dgtq0g4LaF4Lax4LeU4La04LeS4LeF4LeS4LeA4LeZ4La94LanIOC3g+C3kOC2muC3g+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3Jlb3JkZXJUYXNrcyIgbXNnaWQ9Ijc3MzQyMTc3NTQ4Nzc0MzkzNTEiPiLgtrTgt5ngtrvgtrbgt5Lgtrjgtqcg4LeE4LedIOC2tOC3g+C3lOC2tuC3kuC2uOC2pyDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt4og4Lac4LeZ4Lax4La64LeP4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtpTgtrbgtpzgt5og4LaG4Lav4LeP4Lax4La64Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgtrrgt5ngtq/gt5Tgtrgg4La44LeZ4La6IOC3g+C3kuC2r+C3lOC2muC2u+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlbW92ZVRhc2tzIiBtc2dpZD0iNjgyMTUxMzQwMTg3MDM3NzQwMyI+IuC2uuC3meC2r+C3lOC2uOC3iiDgtrDgt4/gt4DgtrHgtrog4Lax4LeA4Lat4LeK4LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVtb3ZlVGFza3MiIG1zZ2lkPSIxMzk0NzE0MzUyMDYyNjM1NDkzIj4i4Laa4LeP4La74LeK4La64La64Lax4LeKIOC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeEIOC2kuC3gOC3j+C2uuC3meC3hOC3kiDgtrrgt5ngtq/gt5Tgtrjgt4og4Lax4LeQ4Lat4LeSIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeZ4Laa4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Tgt5Dgt4Pgt5Lgtrvgt5Pgtrgg4La24LeP4Law4LePIOC2muC3kuC2u+C3k+C2uOC2pyDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjczOTExOTEzODQwMjczMDMwNjUiPiLgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgtprgtrjgt4og4LaF4Lan4LeK4Lan4LeSIOC2muC3heC2uOC2seC3j+C2muC2u+C2q+C2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYW5hZ2VBY3Rpdml0eVN0YWNrcyIgbXNnaWQ9IjE2MTU4ODE5MzMwMzQwODQ0NDAiPiLgt4Dgt5ngtrHgtq3gt4og4La64LeZ4Lav4LeU4La44LeKIOC2sOC3j+C3gOC2seC2uiDgt4DgtrEg4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74Laa4La44LeKIOC2heC2p+C3iuC2p+C3kiDgt4Dgtr3gtqcg4LaR4Laa4Lat4LeUIOC2muC3kuC2u+C3k+C2uOC2pywg4LaJ4LeA4Lat4LeKIOC2muC3kuC2u+C3k+C2uOC2pywg4LeD4LeEIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr0g4LeE4LeQ4LeD4LeS4La74LeT4La4IOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4La44Lac4LeS4Lax4LeKIOC2tuC3j+C2sOC3jyDgt4Dgt5Lgtrog4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3RhcnRBbnlBY3Rpdml0eSIgbXNnaWQ9IjI5MTg3NjgyMzgwNDUyMDY0NTYiPiLgtpXgtrHgt5Hgtrgg4Laa4LeK4oCN4La74LeS4La64LeP4LeA4Laa4LeKIOC2heC2u+C2ueC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3N0YXJ0QW55QWN0aXZpdHkiIG1zZ2lkPSI5OTc4MjM2OTUzNDM1ODQwMDEiPiLgtoXgt4Dgt4Pgtrsg4LaG4La74Laa4LeK4LeC4LeP4LeAIOC3hOC3nSDgtrrgt5Dgt4Dgt5Tgtrjgt4og4Lat4Lat4LeK4LeA4La64LeZ4Lax4LeKIOC2reC3nOC2u+C3gOC2uCDgtpXgtrHgt5Hgtrgg4Laa4LeK4oCN4La74LeS4La64LeP4LeA4Laa4LeKIOC2huC2u+C2uOC3iuC2tyDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRTY3JlZW5Db21wYXRpYmlsaXR5IiBtc2dpZD0iNjk3NTM4NzExODg2MTg0MjA2MSI+IuC2reC3kuC2uyDgtpzgt5Dgt4XgtrTgt5Tgtrgg4LeD4LeQ4Laa4LeD4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0U2NyZWVuQ29tcGF0aWJpbGl0eSIgbXNnaWQ9IjY5MjA0MzYxODY5MzkxNzM3NCI+IuC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr0g4Lat4LeS4La7IOC2nOC3kOC2veC2tOC3lOC2uOC3iiDgtrjgt4/gtq/gt5Lgtr3gt5Lgtrog4La04LeP4La94Lax4La64LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Dgt5ngtrHgtq3gt4og4La64LeZ4Lav4LeU4La44LeK4LeA4La9IOC3hOC3kOC3g+C3kuC2u+C3k+C2uCDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC2muC3kOC2qeC3kuC2uiDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXREZWJ1Z0FwcCIgbXNnaWQ9IjMwMjIxMDcxOTg2ODY1ODQwNTIiPiLgtrrgt5ngtq/gt5Tgtrjgt4og4Lax4LeS4Lav4Lec4LeD4LeK4Laa4La74Lar4La6IOC3g+C2tuC2vSDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXREZWJ1Z0FwcCIgbXNnaWQ9IjQ0NzQ1MTI0MTYyOTkwMTMyNTYiPiLgt4Dgt5ngtrHgtq3gt4og4La64LeZ4Lav4LeU4La44Laa4LeKIOC3g+C2s+C3hOC3jyDgtrHgt5Lgtq/gt5zgt4Pgt4rgtprgtrvgtqvgtrog4LeD4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeA4LeZ4Lax4Lat4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5LgtrHgt4/gt4Eg4Laa4LeS4La74LeT4La44LanIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4La44LeZ4La6IOC2t+C3j+C3gOC3kuC2rSDgtprgt4Ug4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlQ29uZmlndXJhdGlvbiIgbXNnaWQ9IjQxNjIwOTIxODUxMjQyMzQ0ODAiPiLgtrTgtq/gt4rgtrDgtq3gt5Ig4LeD4LaC4Lav4La74LeK4LeB4LaaIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQ29uZmlndXJhdGlvbiIgbXNnaWQ9IjQzNzIyMjM4NzMxNTQyOTYwNzYiPiLgtrTgt5ngtq/gt5ngt4Pgt5Lgtrog4LeE4LedIOC3g+C2uOC3iuC2tOC3luC2u+C3iuC2qyDgtoXgtprgt5Tgtrvgt5Qg4La04LeK4oCN4La74La44LeP4Lar4La6IOC3gOC3kOC2seC3kiDgtrTgt4Dgtq3gt5LgtrEg4LeA4LeS4Lax4LeK4oCN4La64LeP4LeD4La6IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9lbmFibGVDYXJNb2RlIiBtc2dpZD0iNTY4NDUwNDA1ODE5MjkyMTA5OCI+IuC2uOC3neC2p+C2u+C3iiDgtrvgtq4g4LaG4Laa4LeP4La74La6IOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2reC3iuC2uOC2miDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19lbmFibGVDYXJNb2RlIiBtc2dpZD0iNDg1MzE4NzQyNTc1MTQxOTQ2NyI+IuC2muC3j+C2u+C3iiDgtobgtprgt4/gtrvgtrog4LeD4La24La9IOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2tpbGxCYWNrZ3JvdW5kUHJvY2Vzc2VzIiBtc2dpZD0iMzkxNDAyNjY4NzQyMDE3NzIwMiI+IuC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4LeQ4LeD4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfa2lsbEJhY2tncm91bmRQcm9jZXNzZXMiIG1zZ2lkPSI0NTkzMzUzMjM1OTU5NzMzMTE5Ij4i4LaF4Lax4LeZ4Laa4LeKIOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2vSDgtrTgt4Pgt5Tgtrbgt5Lgtrjgt4og4Laa4LeK4oCN4La74LeS4La64LeP4LeA4La94LeSIOC2heC3gOC3g+C2seC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2heC2seC3meC2muC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4Law4LeP4LeA4Lax4La6IOC2seC3kOC3gOC2reC3k+C2uOC2pyDgtrjgt5ngtrog4LeE4Lea4Lat4LeU4LeA4Laa4LeKIOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZvcmNlU3RvcFBhY2thZ2VzIiBtc2dpZD0iMjMyOTYyNzQyODgzMjA2NzcwMCI+IuC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4La24La94LeZ4Lax4LeKIOC2seC3gOC2reC3iuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZvcmNlU3RvcFBhY2thZ2VzIiBtc2dpZD0iNTI1MzE1NzI5NjE4Mzk0MDgxMiI+IuC2uuC3meC2r+C3lOC2uOC2pyDgtrbgtr3gt5ngtrHgt4og4LaF4Lax4LeZ4Laa4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgtrHgt5Dgt4Dgtq3gt5Pgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZvcmNlQmFjayIgbXNnaWQ9IjY1MjkzNTIwNDA3MjU4NDYxNiI+IuC2uuC3meC2r+C3lOC2uCDgt4Dgt5Dgt4Pgt5Pgtrjgtqcg4La24La9IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZvcmNlQmFjayIgbXNnaWQ9IjM4OTIyOTU4MzA0MTk1MTM2MjMiPiLgtrHgt5Dgt4Dgtq3gt5Pgtrjgtqcg4La04LeZ4La74La24LeS4La44LeaIOC2h+C2reC3kiDgtpXgtrHgt5Hgtrgg4Laa4LeK4oCN4La74LeS4La64LeP4LeA4Laa4LeKIOC2tuC2veC3meC2seC3iiDgtrHgt5Dgt4Dgtq3gt5Pgtrjgtqcg4LeD4LeEIOC2tOC3kuC2p+C3lOC2tOC3g+C2pyDgtrrgt4/gtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2muC3kuC3g+C3kuC2r+C3jyDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZHVtcCIgbXNnaWQ9IjE2ODE3OTk4NjI0Mzg5NTQ3NTIiPiLgtrTgtq/gt4rgtrDgtq3gt5Ig4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2reC2reC3iuC3gOC2uiDgt4Pgt5zgtrrgt48g4La94La24LePIOC2nOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2R1bXAiIG1zZ2lkPSIxNzc4Mjk5MDg4NjkyMjkwMzI5Ij4i4La04Lav4LeK4Law4Lat4LeS4La64LeaIOC2heC2t+C3iuKAjeC2uuC2seC3iuC2reC2uyDgtq3gtq3gt4rgt4Dgtrog4La94LeQ4La24LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtpTgt4Dgt5TgtrHgt4og4LeD4LeP4La44LeP4Lax4LeK4oCN4La64La64LeZ4Lax4LeKIOC2t+C3j+C3gOC3kuC2rSDgtrHgt5zgtprgtrvgtrEg4LeA4LeS4LeA4LeS4Law4Lat4LeK4LeA4La64Laa4LeS4Lax4LeKIOC2uuC3lOC2reC3iiDgtrTgt5Tgtq/gt4rgtpzgtr3gt5Lgtpog4LeD4LeEIOC2huC2u+C2muC3iuKAjeC3guC3kuC2rSDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Pgt5zgtrrgt48g4La94La24LePIOC2nOC2rSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZXRyaWV2ZV93aW5kb3dfY29udGVudCIgbXNnaWQ9IjgwMjI1ODg2MDg5OTQ1ODk5MzgiPiLgtq3gt5Lgtrsg4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC3g+C3nOC2uuC3jyDgtr3gtrbgt4/gtpzgt5DgtrHgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZXRyaWV2ZV93aW5kb3dfY29udGVudCIgbXNnaWQ9IjMxOTMyNjkwNjk0Njk3MDAyNjUiPiLgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgt5Mg4Laa4LeA4LeU4LeF4LeU4LeA4LaaIOC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uiDgtr3gtrbgt4/gtpzgt5DgtrHgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4LeS4LeD4LeS4Lax4LeKIOC3g+C2uOC3iuC2tOC3luC2u+C3iuC2qyDgtprgt4Dgt5Tgt4Xgt5Qg4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uCDgt4Pgt4Qg4La44LeU4La74La04Lav4La6IOC3hOC3kOC2uyDgtpLgt4Dgt4/gtrrgt5ngt4Tgt5Ig4La04LeZ4LeFIOC2tOC2u+C3kuC2muC3iuC3guC3jyDgtprgt5Lgtrvgt5Pgtrgg4LeD4LeS4Lav4LeU4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdGVtcG9yYXJ5X2VuYWJsZV9hY2Nlc3NpYmlsaXR5IiBtc2dpZD0iMjMxMjYxMjEzNTEyNzMxMDI1NCI+IuC2tOC3iuKAjeC2u+C3gOC3muC3geC3iuKAjeC2uuC2reC3j+C3gOC2uiDgtq3gt4/gt4Dgtprgt4/gtr3gt5Lgtprgt4Ag4LeD4La24La9IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3RlbXBvcmFyeV9lbmFibGVfYWNjZXNzaWJpbGl0eSIgbXNnaWQ9IjgwNzk0NTYyOTMxODI5NzU0NjQiPiLgtovgtrTgt4/gtoLgtpzgtrog4LeA4LeZ4LatIOC2tOKAjeC3iuKAjeC2u+C3gOC3muC3geC3iuKAjeC2uuC2reC3j+C3gCDgtq3gt4/gt4Dgtprgt4/gtr3gt5Lgtprgt4Ag4LeD4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La04La74LeS4LeB4LeT4La94LaaIOC2heC3gOC2sOC3j+C2seC2uuC2muC3kuC2seC3iiDgtq3gt5zgtrvgt4Ag4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrTigI3gt4rigI3gtrvgt4Dgt5rgt4Hgt4rigI3gtrrgtq3gt4/gt4Ag4LeD4Laa4LeK4oCN4La74LeS4La6IOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9Ijg1MzIyOTUxOTkxMTI1MTkzNzgiPiLgtq3gt5Lgtrsg4Lat4Lec4La74Lat4LeU4La74LeUIOC3g+C3nOC2uuC3jyDgtr3gtrbgt4/gtpzgt5DgtrHgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZXRyaWV2ZV93aW5kb3dfaW5mbyIgbXNnaWQ9IjQ5OTg4MzYzNzA0MjQxODY4NDkiPiLgtprgt4Dgt5Tgt4Xgt5Qg4Laa4LeF4La44Lax4LeP4Laa4La74LeUIOC2uOC2nOC3kuC2seC3iiDgtprgt4Dgt5Tgt4Xgt5Tgt4Ag4Lac4LeQ4LaxIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgt4Pgt5zgtrrgt48g4La94La24LeP4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtoXgtrfgt4rigI3gtrrgtrHgt4rgtq3gtrsg4La04Lav4LeK4Law4Lat4LeSIOC2t+C3j+C3gOC3kuC2reC2uiDgt4PgtrPgt4Tgt48g4Laa4LeQ4La44Lat4LeSIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC3gOC3kuC3g+C3kuC2seC3iiDgtr3gtrbgt48g4Lac4LatIOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4Njc1NTM1NjQ4ODA3NDI3Mzg5Ij4i4LeD4LeS4Lav4LeU4LeA4LeT4La44LeKIOC2tOC3meC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZpbHRlcl9ldmVudHMiIG1zZ2lkPSI4MDA2MjM2MzE1ODg4MzQ3NjgwIj4i4La04LeS4Lan4Lat4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrTgt5ngtrsg4LeD4LeS4La64La94LeUIOC2tOC2u+C3kuC3geC3k+C2veC2miDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt4rgt4Dgtr0g4La04LeK4oCN4La74LeA4LeP4LeE4La64Laa4LeKIOC2tOC3meC2u+C3k+C2uOC2pyDgtrrgt5zgtq/gt48g4Lac4Lax4LeK4Lax4LePIOC2huC2r+C3j+C2sSDgtrTgt5ngtrvgt5Pgtrjgtprgt4og4La94LeS4La64LeP4La04Lav4LeS4LaC4Lag4LeSIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La04La74LeS4LeB4LeT4La94LaaIOC2uOC3kOC2r+C3kuC3hOC2reC3iiDgt4Dgt5Pgtrjgtprgt5LgtrHgt4og4Lat4Lec4La74LeAIOC2tOC2r+C3iuC2sOC2reC3kiBVSSDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC2tOC3j+C2veC2seC2uiDgtprgtrvgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI1OTczNjI2NzM4MTcwNjE4Nzc1Ij4i4Lav4La74LeK4LeB4Lax4La6IOC3gOC3kuC3geC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYWduaWZ5X2Rpc3BsYXkiIG1zZ2lkPSI3MTIxMjM1Njg0NTE1MDAzNzkyIj4i4Lav4LeD4LeU4Lax4LeaIOC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uiDgt4Dgt5Lgt4Hgt4/gtr0g4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtofgtq3gt5Dgtrjgt4og4LeA4LeS4LanIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4osIOC2i+C2tOC3j+C2guC2nOC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeFIOC2seC3nOC3hOC3kOC2muC3kiDgtrbgt4Dgtqcg4La04Lat4LeKIOC2muC2u+C2uOC3kuC2seC3iiDgtq/gt4Pgt5TgtrHgt5og4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC3gOC3meC2seC3g+C3iiDgtprgt4Ug4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2h1dGRvd24iIG1zZ2lkPSI3MTg1NzQ3ODI0MDM4OTA5MDE2Ij4i4LaF4LapIOC3gOC3geC2uuC3meC2seC3iiDgt4Dgt5Dgt4Tgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zaHV0ZG93biIgbXNnaWQ9IjcwNDY1MDA4Mzg3NDYyOTE3NzUiPiLgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgtprgtrjgt4og4Laa4LeF4La44Lax4LeP4Laa4La74LeUIOC3gOC3kOC3hOC3k+C2uOC3miDgtq3gtq3gt4rgt4Dgtrrgtqcg4Lav4La44Lax4LeK4LaxLiDgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4LeA4LeQ4LeE4LeT4La44Laa4LanIOC2tOC2reC3iiDgtrHgt5zgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zdG9wQXBwU3dpdGNoZXMiIG1zZ2lkPSI0MTM4NjA4NjEwNzE3NDI1NTczIj4i4La64LeZ4Lav4LeU4La44LeKIOC2uOC3j+C2u+C3lCDgt4Dgt5Pgtrgg4LeA4LeQ4LeF4Laa4LeK4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3RvcEFwcFN3aXRjaGVzIiBtc2dpZD0iODI2MjE5NTgwMjU4MjI1NTAyMSI+IuC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgtprgt4og4LeA4LeZ4LatIOC2tOC2u+C3kuC3geC3k+C2veC2muC2uuC3j+C3gCDgtrjgt4/gtrvgt5Qg4LeA4LeT4La4IOC3gOC3heC2muC3iuC3gOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFRvcEFjdGl2aXR5SW5mbyIgbXNnaWQ9IjI1Mzc5MjIzMTE0MTE1NDYwMTYiPiLgtrTgt4Dgtq3gt5LgtrEg4La64LeZ4Lav4LeU4La44LeaIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtr3gtrbgt4/gtpzgt5DgtrHgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRUb3BBY3Rpdml0eUluZm8iIG1zZ2lkPSI4MTUzNjUxNDM0MTQ1MTMyNTA1Ij4i4Lat4LeS4La74La64LeaIOC2tOC3meC2u+C2tuC3kuC2uCDgtq3gt5Tgt4Ug4Lat4LeS4La24LeZ4LaxIOC2r+C3kOC2seC3iiDgtrTgt4Dgtq3gt4rgtrHgt48g4La64LeZ4Lav4LeU4La44LeaIOC3g+C3hCDgt4Pgt5rgt4Dgt4/gt4Dgtr0g4La04Lee4Lav4LeK4Lac4La94LeS4LaaIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtr3gtrbgt4/gtpzgt5DgtrHgt5Pgtrjgtqcg4Lav4La74Lax4LeK4Lax4LeP4LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9ydW5TZXRBY3Rpdml0eVdhdGNoZXIiIG1zZ2lkPSI4OTIyMzkwOTQ4NjcxODI2NTYiPiLgt4Pgt5Lgtrrgtr3gt5Qg4La64LeZ4Lav4LeU4La44LeKIOC2r+C3kuC2uuC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgt4og4Lax4LeS4La74LeT4Laa4LeK4LeC4Lar4La6IOC3g+C3hCDgtrTgt4/gtr3gtrHgtrog4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcnVuU2V0QWN0aXZpdHlXYXRjaGVyIiBtc2dpZD0iNjAwMzYwMzE2MjU3ODU3NzQwNiI+IuC2tOC2r+C3iuC2sOC2reC3kuC2uiDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgtprgtrjgt4og4Lav4LeS4La64Lat4LeKIOC2muC2u+C2seC3iuC2seC3miDgtprgt5ngt4Pgt5rgtq/gt5Dgtrrgt5Ig4Lax4LeS4La74LeT4Laa4LeK4LeC4Lar4La64LanIOC3g+C3hCDgtrTgt4/gtr3gtrHgtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4La44Lac4LeS4Lax4LeKIOC2tOC2r+C3iuC2sOC2reC3kuC2uiDgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqvgtrrgt5ngtrHgt4rgtrgg4LeD4La44LeK4La44LeU4Lat4LeS4La64Laa4LanIOC2keC3heC2ueC3kuC2uiDgt4Tgt5DgtpouIOC3gOC2u+C3iuC2sOC2seC2uiDgt4PgtrPgt4Tgt48g4La04La44Lar4Laa4LeKIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4LaF4LeA4LeB4LeK4oCN4La6IOC3gOC3meC2uuC3kiwg4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2t+C3j+C3gOC3kuC2reC2uiDgt4PgtrPgt4Tgt48g4Laa4LeS4LeD4LeSIOC3gOC3kuC2p+C3meC2muC2reC3iiDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0UGFja2FnZVJlbW92ZWQiIG1zZ2lkPSIyNTc2MzMzNDM0ODkzNTMyNDc1Ij4i4La04LeQ4Laa4Lea4LaiIOC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgt5og4La04LeK4oCN4La74Lag4LeP4La74Lar4La64Laa4LeKIOC2uuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2Jyb2FkY2FzdFBhY2thZ2VSZW1vdmVkIiBtc2dpZD0iNjYyMTkwMTIxNjIwNzkzMTA4OSI+IuC2uuC3meC2r+C3lOC2uOC3iiDgtrTgt5Dgtprgt5rgtqLgtrrgtprgt4og4LaJ4LeA4Lat4LeK4Laa4Lec4LanIOC2h+C2reC3kiDgtrbgt4Dgtqcg4Lav4LeQ4Lax4LeU4La44LeK4Lav4LeT4La44Laa4LeKIOC3gOC3kuC2muC3j+C3geC2seC2uuC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3ki4g4Law4LeP4LeA4Lax4La6IOC3gOC2sSDgtoXgtrHgt5ngtprgt5Tgtq3gt4og4La64LeZ4Lav4LeU4La44Laa4LeKIOC2seC3kOC2reC3kiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5Lgt4Pgt5LgtrHgt4og4La44LeZ4La6IOC2t+C3j+C3gOC3kuC2rSDgtprgt4Ug4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI1Njg5MDk1MDA5MDMwMzM2NTkzIj4iU01TLeC2veC3kOC2tuC3k+C2uCDgt4Dgt5Lgtprgt4/gt4HgtrEg4La64LeQ4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U21zUmVjZWl2ZWQiIG1zZ2lkPSI0MTUyMDM3NzIwMDM0MzY1NDkyIj4iU01TIOC2tOC2q+C3kuC3gOC3kuC2qeC2uuC2muC3iiDgt4Tgtrvgt4Tgt48g4La94LeQ4La24LeU4Lar4LeUIOC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC2muC3iiDgtrTgt4rigI3gtrvgtqDgt4/gtrvgtqvgtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2tOC3kOC2uOC3kuC2q+C3meC2sSBTTVMg4La04Lar4LeS4LeA4LeS4LapIOC3gOC2guC2oOC3jyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrjgt5ngtrog4La34LeP4LeA4LeS4LatIOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icm9hZGNhc3RXYXBQdXNoIiBtc2dpZD0iMzE0NTM0NzQxMzAyODU4MjM3MSI+IldBUC1QVVNILeC2veC3kOC2tuC3k+C2uCDgt4Dgt5Lgtprgt4/gt4HgtrEg4La64LeQ4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0V2FwUHVzaCIgbXNnaWQ9IjQ3ODM0MDI1MjUwMzk0NDI3MjkiPiJXQVAgUFVTSCDgtrTgtqvgt5Lgt4Dgt5Tgtqngtrrgtprgt4og4La94LeQ4La24LeTIOC2h+C2reC3kiDgtrbgt4Dgtqcg4Lav4LeQ4Lax4LeU4La44LeK4Lav4LeT4La44Laa4LeKIOC3gOC3kuC2muC3j+C3geC2seC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3gOC2guC2oOC3j+C2muC3j+C2u+C3kyBNTVMg4La04Lar4LeS4LeA4LeU4LapIOC2veC3kOC2tuC3k+C2uOC3iiDgt4Tgt50g4Lax4LeS4LeE4Las4LeAIOC2leC2seC3keC2uCDgt4Dgt5ngtrbgt4og4La04LeS4Lan4LeU4LeA4LaaIOC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uiDgtoXgtrHgt5Lgt4Lgt4rgtqcg4LeA4LeS4Lag4La94LeK4oCN4La64LeA4La94LeS4Lax4LeKIOC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5PgtrjgtqcsIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4LeS4LeD4LeS4Lax4LeKIOC2uOC3meC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeS4La74LeT4La44LanIOC2ieC2qSDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcm9jZXNzTGltaXQiIG1zZ2lkPSIyNDUxODczNjY0MzYzNjYyNjY2Ij4i4Law4LeP4LeA4LaxIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C3gOC2veC3kiDgtpzgtqvgtrEg4LeD4LeT4La44LePIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFByb2Nlc3NMaW1pdCIgbXNnaWQ9IjczMTgwNjEzMTQwNDA4Nzk1NDIiPiLgtrDgt4/gt4DgtrHgtrog4LeA4LaxIOC2i+C2tOC2u+C3kuC2uCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4Dgtr3gt5Ig4Lac4Lar4LaxIOC2tOC3j+C2veC2seC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2muC3kuC3g+C3kuC2r+C3jyDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0QWx3YXlzRmluaXNoIiBtc2dpZD0iNTUwOTU4NTA3Nzk4Nzk2OTY1Ij4i4La04LeD4LeU4La24LeS4La44LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr3gtqcg4LeA4LeQ4LeD4LeT4La44LanIOC2tuC2veC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldEFsd2F5c0ZpbmlzaCIgbXNnaWQ9Ijc0NzEzMTA2NTI4Njg4NDE0OTkiPiLgtrTgt4Pgt5Tgtrbgt5Lgtrjgtqcg4La04LeS4LeA4LeS4LeD4LeZ4Lax4LeA4LeP4Lat4LeKIOC3g+C2uOC2n+C2uCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgtprgtrjgt4og4Lax4LeQ4LeA4Lat4LeT4La4IOC2tOC3j+C2veC2seC2uuC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtprgt5Lgt4Pgt5Lgt4Pgt5rgtq3gt4og4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JhdHRlcnlTdGF0cyIgbXNnaWQ9IjI3ODk2MTA2NzM1MTQxMDMzNjQiPiLgtrbgt5Dgtqfgtrvgt5Ig4LeD4LaC4Lab4LeK4oCN4La64LeP4LaxIOC2muC3kuC2uuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JhdHRlcnlTdGF0cyIgbXNnaWQ9IjU4OTczNDY1ODI4ODI5MTUxMTQiPiLgt4Dgtrvgt4rgtq3gtrjgt4/gtrEg4La04LeE4LeFIOC2uOC2p+C3iuC2p+C2uOC3miDgtrbgt5Dgtqfgtrvgt5Lgtrog4La34LeP4LeA4LeS4Lat4LePIOC2r+C2reC3iuC2rSDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2lOC2tiDgtrfgt4/gt4Dgt5Lgtq0g4Laa4La74LaxIOC2uuC3meC2r+C3lOC2uOC3iiDgtrjgt5zgtrHgt4Dgt48g4Lav4LeQ4La64LeSIOC2nOC3kOC2sSDgt4Dgt5Lgt4Pgt4rgtq3gtrvgt4/gtq3gt4rgtrjgtpog4Lat4Lec4La74Lat4LeU4La74LeUIOC2nOC3kOC2sSDgtq/gt5DgtrEg4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXBkYXRlQmF0dGVyeVN0YXRzIiBtc2dpZD0iMzcxOTY4OTc2NDUzNjM3OTU1NyI+IuC2tuC3kOC2p+C2u+C3kiDgt4PgtoLgtpvgt4rigI3gtrrgt4/gtrEg4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3VwZGF0ZUJhdHRlcnlTdGF0cyIgbXNnaWQ9IjY4NjI4MTc4NTcxNzgwMjUwMDIiPiLgtpHgtprgtq3gt5Qg4Laa4La74Lac4Lax4LeK4Lax4LePIOC2veC2ryDgtrbgt5Dgtqfgtrvgt5Ig4LeD4LaC4Lab4LeK4oCN4La64LeP4LaxIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4La9IOC2t+C3j+C3gOC3kuC2reC2uuC2pyDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9nZXRBcHBPcHNTdGF0cyIgbXNnaWQ9IjE1MDg3Nzk2ODc0MzY1ODU3NDQiPiLgtrrgt5ngtq/gt5Tgtrjgt5og4LeA4LeS4Laa4La94LeK4La0IOC3g+C2guC2m+C3iuKAjeC2uuC3j+C2guC2miDgt4Pgt5zgtrrgt48g4La94La24LeP4Lac4LeQ4Lax4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZ2V0QXBwT3BzU3RhdHMiIG1zZ2lkPSI2MjQzODg3MDQxNTc3OTEyODc3Ij4i4LaR4Laa4Lat4LeUIOC2muC2u+C2nOC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74LeS4Lat4LeK4LeAIOC3g+C2guC2m+C3iuKAjeC2uuC3jyDgtr3gt5rgtpvgtrEg4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtovgtrTgt4/gtoLgtpzgtrrgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2i+C2tOC3j+C2guC2nCDgtrfgt4/gt4Dgt5Lgtq3gtrog4LeD4Laz4LeE4LePIOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VwZGF0ZUFwcE9wc1N0YXRzIiBtc2dpZD0iODgyOTA5NzM3Mzg1MTUyMTUwNSI+IuC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgt5Lgtprgtr3gt4rgtrQg4LeD4LaC4Lab4LeK4oCN4La64LeP4LaC4LaaIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY191cGRhdGVBcHBPcHNTdGF0cyIgbXNnaWQ9IjUwNzg0NTk2NTk0NDAzNDgzIj4i4LaR4Laa4Lat4LeUIOC2muC2u+C2nOC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74LeS4Lat4LeK4LeAIOC3g+C2guC2m+C3iuKAjeC2uuC3jyDgtr3gt5rgtpvgtrEg4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgtrfgt4/gt4Dgt5Lgtq3gtrog4LeD4Laz4LeE4LePIOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JhY2t1cCIgbXNnaWQ9IjQ3MDAxMzAyMjg2NTQ1MzkyMCI+IuC2tOC2r+C3iuC2sOC2reC3kiDgtovgtrTgt4Pgt4rgtq4g4La04LeP4La94Lax4La6IOC2muC2u+C2seC3iuC2sSDgt4Pgt4Qg4Lax4LeQ4LeA4LatIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JhY2t1cCIgbXNnaWQ9IjY5MTIyMzA1MjUxNDA1ODk4OTEiPiLgtrTgtq/gt4rgtrDgtq3gt5Lgtrrgt5og4LaL4La04LeD4LeK4Lau4La6IOC3g+C3hCDgtovgtrTgtprgt4rigI3gtrvgtrgg4Lax4LeQ4LeA4LatIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC3k+C2uCDgtrTgt4/gtr3gtrHgtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4La9IOC2t+C3j+C3gOC3kuC2reC2uiDgt4PgtrPgt4Tgt48g4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlybV9mdWxsX2JhY2t1cCIgbXNnaWQ9IjU1NTcwNzEzMjU4MDQ0NjkxMDIiPiLgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4LaL4La04LeD4LeK4Lau4La6IOC3hOC3nSDgtrjgt5ngt4Tgt5ngtrrgt5Tgtrjgt4og4Lax4LeQ4LeA4LatIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC3k+C2uCDgt4PgtrHgt4/gtq4g4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlybV9mdWxsX2JhY2t1cCIgbXNnaWQ9IjE3NDg3NjIxNzE2Mzc2OTk1NjIiPiLgtrTgt5bgtrvgt4rgtqsg4LaL4La04LeD4LeK4LauIOC2reC3hOC3gOC3lOC2u+C3lOC2muC3kuC2u+C3k+C2uOC3iiBVSSDgtrTgt5TgtrvgtrHgt4rgtrHgtqcg4LaL4La04Laa4La74Lar4La64LanIOC2ieC2qSDgtq/gt5ngtrHgt4rgtrEuIOC2muC3kuC3g+C3kuC2uCDgtrrgt5ngtq/gt5Tgtrjgtprgt4og4La34LeP4LeA4LeS4Lat4LePIOC2seC3nOC2muC2u+C2seC3lCDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnRlcm5hbFN5c3RlbVdpbmRvdyIgbXNnaWQ9IjIxNDg1NjM2MjgxNDAxOTMyMzEiPiLgtoXgt4Dgt4Pgtrsg4Lax4Lec4La94Lat4LeKIOC2muC3gOC3lOC3heC3lOC3gCDgtq/gtrvgt4rgt4HgtrHgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW50ZXJuYWxTeXN0ZW1XaW5kb3ciIG1zZ2lkPSI3NDU4Mzg3NzU5NDYxNDY2Mzk3Ij4i4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2tOC2r+C3iuC2sOC2reC3kiDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4LaF4Lat4LeU4La74LeU4La44LeU4LeE4LeU4Lar4Lat4LeKIOC3gOC3kuC3g+C3kuC2seC3iiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeS4La74LeT4La44LanIOC2tuC2veC3j+C2tOC3nOC2u+C3nOC2reC3iuC2reC3lCDgt4DgtrEg4Laa4LeA4LeU4LeF4LeUIOC2seC3kuC2u+C3iuC2uOC3j+C2q+C2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr0g4La34LeP4LeA4LeS4Lat4La6IOC3g+C2s+C3hOC3jyDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zeXN0ZW1BbGVydFdpbmRvdyIgbXNnaWQ9IjM1NDMzNDc5ODA4Mzk1MTg2MTMiPiLgt4Dgt5ngtrHgtq3gt4og4La64LeZ4Lav4LeU4La44LeKIOC2i+C2qeC3kuC2seC3iiDgtoXgtrPgt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zeXN0ZW1BbGVydFdpbmRvdyIgbXNnaWQ9Ijg1ODQ2NzgzODE5NzI4MjAxMTgiPiLgtoXgtrHgt5ngtprgt4og4La64LeZ4Lav4LeU4La44LeKIOC2uOC2rSDgt4Tgt50g4La04La74LeS4LeB4LeT4La94LaaIOC2heC2reC3lOC2u+C3lCDgtrjgt5Tgt4Tgt5Tgtqvgtq3gt4og4Laa4Lec4Lan4LeD4LeK4LeA4La9IOC2h+C2s+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4LaR4La6IOC2lOC2tuC3miDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5og4LaH4Lat4LeSIOC2leC2seC3keC2uCDgtrrgt5ngtq/gt5Tgtrjgtpog4La44LeU4LeE4LeU4Lar4LatIOC3g+C2uOC2nCDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeT4La44LanIOC3hOC3nSDgtoXgtrHgt5ngtprgt4og4La64LeZ4Lav4LeU4La44LeKIOC2nOC3kOC2sSDgtpTgtrbgtqcg4La04LeZ4Lax4LeZ4LaxIOC2huC2muC3j+C2u+C2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2ieC2qSDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbmltYXRpb25TY2FsZSIgbXNnaWQ9IjI4MDUxMDMyNDExNTM5MDcxNzQiPiLgtpzgt53gtr3gt5Pgtrog4LeD4Lai4LeT4LeA4LaxIOC3gOC3muC2nOC2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QW5pbWF0aW9uU2NhbGUiIG1zZ2lkPSI3NjkwMDYzNDI4OTI0MzQzNTcxIj4i4LaV4Lax4LeR4La4IOC3gOC3meC2veC3j+C3gOC2miDgtrTgt5zgtq/gt5Qg4LeD4Lai4LeT4LeA4LeT4Laa4La74LarIOC3gOC3muC2nOC2uiAo4LeA4Lea4Lac4LeA4Lat4LeKIOC3hOC3nSDgtrjgtrHgt4rgtq/gtpzgt4/gtrjgt5Mg4LeD4Lai4LeT4LeA4LeT4Laa4La74LarKSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbWFuYWdlQXBwVG9rZW5zIiBtc2dpZD0iMTI4NjUwNTcxNzA1MDEyMTM3MCI+IuC2uuC3meC2r+C3lOC2uOC3iiDgtqfgt53gtprgtrEg4Laa4LeF4La44Lax4LeP4Laa4La74Lar4La6IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFwcFRva2VucyIgbXNnaWQ9IjgwNDM0MzE3MTMwMTQzOTU2NzEiPiLgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrogWiDgtrTgtqfgt5LgtrTgt4/gtqfgt5Lgtrog4La44Laf4LeE4LeQ4La74La64La44LeS4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtoXgtrrgt5Lgtq3gt5Ig4Lan4Led4Laa4Lax4LeKIOC2tOC2reC3iiDgtrHgt5Lgtrvgt4rgtrjgt4/gtqvgtrrgtqcg4LeD4LeEIOC2muC3heC2uOC2seC3j+C2muC2u+C2q+C2uuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr3gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtprgt5Lgt4Pgt5Lgt4Pgt5rgtq3gt4og4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2ZyZWV6ZVNjcmVlbiIgbXNnaWQ9IjQ3MDgxODExODQ0NDE4ODAxNzUiPiLgtq3gt5Lgtrvgtrog4Lax4LeS4LeB4LeK4Lag4La9IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZyZWV6ZVNjcmVlbiIgbXNnaWQ9Ijg1NTg5MjM3ODkyMjI2NzAwNjQiPiLgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4Lat4LeS4La7IOC3g+C2guC2muC3iuKAjeC2u+C2uOC2q+C2uiDgt4PgtrPgt4Tgt48g4Lat4LeS4La74La6IOC2reC3j+C3gOC2muC3j+C2veC3kuC2muC3gCDgtrjgt5Tgtq/gt4Dgt5Lgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbmplY3RFdmVudHMiIG1zZ2lkPSIxMzc4NzQ2NTg0MDIzNTg2NjAwIj4i4La64Lat4LeU4La74LeUIOC3g+C3hCDgtrTgt4/gtr3gtrEg4La24Lec4Lat4LeK4Lat4La44LeKIOC2lOC2tuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA2MzUyNTY1NTk5OTY4NjMyIj4i4Lat4La44Lax4LeK4Lac4LeaIOC2huC2r+C3j+C2sSDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt4ogKOC2uuC2reC3lOC2u+C3lCDgtpHgtrbgt5Lgtrjgt4ogLCDgtobgtq/gt5MgKSDgtoXgtrHgt5ngtprgt5Tgtq3gt4og4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2t+C3j+C2u+C2r+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrjgt5ngtrog4Lan4LeQ4La24LeK4La94Lan4La6IOC2veC2tuC3jyDgtpzgt5DgtrHgt5Pgtrjgtqcg4La34LeP4LeA4LeS4Lat4LePIOC2muC3kuC2u+C3k+C2uOC2pyDgtongtqkg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luamVjdEV2ZW50cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1MzEyODA1NzU3MjMyNjI1MyI+IuC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr3gtqcg4LaR4LeE4LeSIOC2huC2r+C3j+C2sSDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt4ogKOC2uuC2reC3lOC2u+C3lCDgtpHgtrbgt5Pgtrjgt4osIOC2uuC2seC3j+C2r+C3kuC2ui4pIOC2huC2r+C3kuC2uiDgtrrgt5Dgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2r+C3lOC2u+C2muC2ruC2seC2uiDgtoXgtq3gt4rgtprgtrsg4Lac4LeQ4Lax4LeT4La4IOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4La44LeZ4La6IOC2t+C3j+C3gOC3kuC2rSDgtprgtrvgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkSW5wdXRTdGF0ZSIgbXNnaWQ9IjQ2OTQyODkwMDA0MTI0OTIzNCI+IuC2lOC2tiDgtqfgtrrgt5LgtrTgt4og4Laa4La74LaxIOC2r+C3meC2uiDgt4Pgt4Qg4LaU4La2IOC2nOC2seC3iuC2seC3jyDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4DgtrHgt4og4La04Lan4LeS4Lac4LatIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRJbnB1dFN0YXRlIiBtc2dpZD0iODM4Nzc1NDkwMTY4ODcyODA0MyI+IuC2uOC3lOC2u+C2tOC2r+C2uiDgtqfgtrrgt5LgtrTgt4og4Laa4LeS4La74LeT4La4IOC3gOC3kOC2seC3kiDgtoXgtrHgt5ngtprgt5Tgtq3gt4og4La64LeZ4Lav4LeU4La44LeKIOC3g+C2uOC2nyDgtoXgtrHgt4rgtq3gtrvgt4rgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgt5Mg4LeA4Lax4LeA4LeS4LanIOC2uuC2seC3j+C2r+C3kyDgtpTgtrYg4LaU4La24LaxIOC2uuC2reC3lOC2u+C3lCDgtq/gt5Dgtprgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2muC3kuC3g+C3kuC3g+C3muC2reC3iiDgtoXgtq/gt4/gt4Ug4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZElucHV0TWV0aG9kIiBtc2dpZD0iMzM2MDA2NDYyMDIzMDUxNTc3NiI+IuC2huC2r+C3j+C2sSDgtprgt4rigI3gtrvgtrjgtrrgtprgt4og4LeA4LeZ4LatIOC2tuC2s+C3kuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRJbnB1dE1ldGhvZCIgbXNnaWQ9IjMyNTA0NDAzMjI4MDcyODYzMzEiPiLgtobgtq/gt4/gtrEg4Laa4LeK4oCN4La74La44La6IOC2ieC3hOC2vSDgtrjgtqfgt4rgtqfgtrjgt5og4LaF4Lat4LeU4La74LeUIOC2uOC3lOC3hOC3lOC2q+C2reC2muC3iiDgt4Dgt5ngtq0g4LeD4La44LeK4La24Lax4LeK4LawIOC2muC3kuC2u+C3k+C2uOC2pyDgtrDgt4/gtrvgtprgtrrgt4/gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtprgt5Lgt4Pgt5Ig4LeA4LeS4Lan4LeZ4LaaIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4Dgt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kQWNjZXNzaWJpbGl0eVNlcnZpY2UiIG1zZ2lkPSI1MzU3NzMzOTQyNTU2MDMxNTkzIj4i4La04oCN4LeK4oCN4La74LeA4Lea4LeB4LeK4oCN4La64Lat4LePIOC3g+C3muC3gOC3j+C3gOC2muC3iiDgt4Dgt5ngtq0g4La24Lav4LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZEFjY2Vzc2liaWxpdHlTZXJ2aWNlIiBtc2dpZD0iNzAzNDYxNTkyODYwOTMzMTM2OCI+IuC2tOKAjeC3iuKAjeC2u+C3gOC3muC3geC3iuKAjeC2uuC2reC3jyDgt4Pgt5rgt4Dgt4/gt4Dgt5og4LaJ4LeE4LeFIOC2uOC2p+C3iuC2p+C2uOC3miDgtoXgtq3gt5Tgtrvgt5Tgtrjgt5Tgt4Tgt5Tgtqvgtq3gtqcg4La24LeQ4Laz4LeT4La44LanIOC2r+C2u+C2seC3iuC2seC3j+C2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeaLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeKIOC3g+C2s+C3hOC3jyDgtprgt5Lgt4Pgt5Lgt4Dgt5Lgtqfgtpog4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRQcmludFNlcnZpY2UiIG1zZ2lkPSI4NDYyODE1MTc5NTcyNzQ4NzYxIj4i4La44LeU4Lav4LeK4oCN4La74LarIOC3g+C3muC3gOC3j+C3gOC2muC2pyDgtrbgtq/gt4rgtrAg4LeA4LeTIOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQcmludFNlcnZpY2UiIG1zZ2lkPSI3OTYwMDY3NjIzMjA5MTExMTM1Ij4i4La44LeU4Lav4LeK4oCN4La74LarIOC3g+C3muC3gOC3j+C3gCDgtongt4Tgtr0g4La44Lan4LeK4Lan4La44LeaIOC2heC2reC3lOC2u+C3lCDgtrjgt5Tgt4Tgt5Tgtqvgtq3gtprgt4og4LeA4LeZ4LatIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgt5Lgtrvgt5Pgtrjgtqcg4Law4LeP4La74Laa4La64LeP4LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr3gtqcg4Laa4LeS4LeD4LeSIOC3gOC3kuC2p+C3meC2miDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzQWxsUHJpbnRKb2JzIiBtc2dpZD0iMTEyMDc5MjQ2ODQ2NTcxMTE1OSI+IuC3g+C3kuC2uuC2veC3lCDgtrjgt5Tgtq/gt4rigI3gtrvgtqsg4Laa4LeP4La74LeK4La64La64Lax4LeKIOC3gOC3meC2rSDgtrTgt5Lgt4Dgt5Lgt4Pgt5ngtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NBbGxQcmludEpvYnMiIG1zZ2lkPSIyOTc4MTg1MzExMDQxODY0NzYyIj4i4LeA4LeZ4Lax4Lat4LeKIOC2uuC3meC2r+C3lOC2uOC2muC3kuC2seC3iiDgt4Pgt5Hgtq/gt5Qg4La44LeU4Lav4LeK4oCN4La74LarIOC2muC3j+C2u+C3iuC2uiDgt4Dgt5ngtq0g4La04LeS4LeA4LeS4LeD4LeT4La44LanIOC2sOC3j+C2u+C2muC2uuC3j+C2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeKIOC3g+C2s+C3hOC3jyDgtprgt5Lgt4Pgt5Lgtq/gt48g4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iMjc1MjczMTMwMDQxOTQxMDcyNCI+Ik5GQyDgt4Pgt5rgt4Dgt4/gt4Ag4LeA4LeZ4LatIOC2tuC3kOC2s+C3meC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmROZmNTZXJ2aWNlIiBtc2dpZD0iNjEyMDY0NzYyOTE3NDA2Njg2MiI+Ik5GQyDgtprgt4/gtqngt4og4La04Lat4LeKIOC2huC2r+C2u+C3iuC3geC2seC2uiDgtprgtrvgtrEg4La64LeZ4Lav4LeU4La44LeKIOC2u+C2s+C3gOC2seC2uuC2pyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeT4La44LanIOC2ieC2qSDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2muC3kuC3g+C3kuC2r+C3jyDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iNzM1ODM3ODQwMTkxNTI4NzkzOCI+IuC2tOC3meC3hSDgt4Pgt5rgt4Dgt4/gt4Dgtprgtqcg4La24Laz4LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFRleHRTZXJ2aWNlIiBtc2dpZD0iODE1MTk2ODkxMDk3Mzk5ODY3MCI+IuC2muC3meC2p+C3kiDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4LeD4Lea4LeA4LeP4LeA4LaaICjgtovgtq/gt48uIFNwZWxsQ2hlY2tlclNlcnZpY2UpIOC2ieC3hOC2vSDgtrjgtqfgt4rgtqfgtrjgt5og4LaF4Lat4LeU4La74LeUIOC2uOC3lOC3hOC3lOC2q+C2reC2muC3iiDgt4Dgt5ngtq0g4LeD4La44LeK4La24Lax4LeK4LawIOC2muC3kuC2u+C3k+C2uOC2pyDgtrDgt4/gtrvgtprgtrrgt4/gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtprgt5Lgt4Pgt5Ig4LeA4LeS4Lan4LeZ4LaaIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4Dgt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kVnBuU2VydmljZSIgbXNnaWQ9IjQ3MDg1OTYwMjExNjE0NzMyNTUiPiJWUE4g4LeD4Lea4LeA4LeP4LeA4Laa4LanIOC2tuC3kOC2s+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRWcG5TZXJ2aWNlIiBtc2dpZD0iMjA2Nzg0NTU2NDU4MTY5MzkwNSI+IlZQTiDgt4Pgt5rgt4Dgt4/gt4Ag4LaJ4LeE4La9IOC2uOC2p+C3iuC2p+C2uOC3miDgtoXgtq3gt5Tgtrvgt5Qg4La44LeU4LeE4LeU4Lar4Lat4Laa4LeKIOC3gOC3meC2rSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4Laa4LeS4La74LeT4La44LanIOC2sOC3j+C2u+C2muC2uuC3j+C2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2muC3kuC3g+C3kiDgt4Dgt5Lgtqfgt5ngtpog4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRXYWxscGFwZXIiIG1zZ2lkPSI4NzE2NDAwMjc5OTM3ODU2NDYyIj4i4La24LeS4Lat4LeU4La04LatIOC3gOC3meC2rSDgtrbgtrPgt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kV2FsbHBhcGVyIiBtc2dpZD0iNzEwODQyODY5MjU5NTQ5MTY2OCI+IuC2tuC3kuC2reC3lOC2tOC2rSDgtongt4Tgtr0g4La44Lan4LeK4Lan4La44LeaIOC2heC2reC3lOC2u+C3lCDgtrjgt5Tgt4Tgt5Tgtqvgtq3gtprgt4og4LeA4LeZ4LatIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgt5Lgtrvgt5Pgtrjgtqcg4Law4LeP4La74Laa4La64LeP4LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr3gtqcg4Laa4LeS4LeD4LeSIOC3gOC3kuC2p+C3meC2miDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZFJlbW90ZVZpZXdzIiBtc2dpZD0iNTY5Nzk4Nzc1OTg5NzM2NzA5OSI+IuC3gOC3kuC2ouC2pyDgt4Pgt5rgt4Dgt4/gt4Dgtprgtqcg4La24Laz4LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZFJlbW90ZVZpZXdzIiBtc2dpZD0iNDcxNzk4NzgxMDEzNzY5MjU3MiI+IuC3gOC3kuC2ouC2p+C3iiDgt4Pgt5rgt4Dgt4/gt4Ag4LaJ4LeE4La9IOC2uOC2p+C3iuC2p+C2uOC3miDgtoXgtq3gt5Tgtrvgt5Qg4La44LeU4LeE4LeU4Lar4Lat4Laa4LeKIOC3gOC3meC2rSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4Laa4LeS4La74LeT4La44LanIOC2sOC3j+C2u+C2muC2uuC3j+C2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2muC3kuC3g+C3kiDgt4Dgt5Lgtqfgt5ngtpog4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmREZXZpY2VBZG1pbiIgbXNnaWQ9Ijg3MDQ5ODYxNjM3MTE0NTUwMTAiPiLgtovgtrTgt4/gtoLgtpwg4La04La74LeS4La04LeP4La94LaaIOC3g+C2uOC2nyDgtoXgtrHgt4rgtq3gtrvgt4rgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgt5Mg4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZERldmljZUFkbWluIiBtc2dpZD0iNTY5NzE1NDE5NTQzOTA3OTMwIj4i4LaL4La04LeP4LaC4LacIOC2tOC3j+C2veC2muC2uuC3jyDgt4Dgt5ngtq3gtqcg4LaF4La34LeS4La04LeK4oCN4La74LeP4La64La64Lax4LeKIOC2uuC3kOC3gOC3k+C2uOC2pyDgtrDgt4/gtrvgtprgtrrgt4/gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtprgt5Lgt4Pgt5Ig4LeA4LeS4Lan4LeZ4LaaIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4Dgt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VEZXZpY2VBZG1pbnMiIG1zZ2lkPSI0MjQ4ODI4OTAwMDQ1ODA4NzIyIj4i4LaL4La04LeP4LaC4LacIOC2tOC2u+C3kuC2tOC3j+C2veC2muC2uuC3meC2muC3iiDgtpHgtprgt4og4Laa4LeS4La74LeT4La4IOC3hOC3nSDgtongt4Dgtq3gt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlRGV2aWNlQWRtaW5zIiBtc2dpZD0iNTAyNTYwODE2NzcwOTk0MjQ4NSI+IuC2r+C2u+C2seC3iuC2seC3j+C2pyDgtovgtrTgt4/gtoLgtpwg4La04La74LeS4La04LeP4La94Laa4La64LeS4Lax4LeKIOC2keC2muC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeE4LedIOC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3mi4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr3gtqcg4Laa4LeS4LeD4LeS4Lav4LePIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRPcmllbnRhdGlvbiIgbXNnaWQ9IjMzNjU5NDc3MTcxNjM4NjY4NDQiPiLgtq3gt5Lgtrsg4Lav4LeS4LeB4LeP4Lax4Lat4LeS4La6IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRPcmllbnRhdGlvbiIgbXNnaWQ9IjMwNDYxMjY2MTkzMTY2NzE0NzYiPiLgtq3gt5Lgtrvgtrrgt5og4La34LeK4oCN4La74La44Lar4La6IOC2leC2seC3keC2uCDgt4Dgt5rgtr3gt4/gt4Dgtpog4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgt4PgtrPgt4Tgt48g4Laa4LeS4LeD4LeS4Lav4LePIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4DgtrHgt5Qg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0UG9pbnRlclNwZWVkIiBtc2dpZD0iOTE3NTM3MTYxMzMyMjU2MjkzNCI+IuC2r+C2u+C3iuC3geC2muC2uuC3miDgt4Dgt5rgtpzgtrog4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFBvaW50ZXJTcGVlZCIgbXNnaWQ9IjY4NjY1NjMyMzQyNzQxMDQyMzMiPiLgtrjgt5bgt4Pgt5Lgtprgtrrgt5og4LeE4LedIOC2p+C3iuKAjeC2u+C3kOC2muC3iuC2tOC3keC2qeC2uuC3miDgt4Dgt5rgtpzgtrog4LaV4Lax4LeR4La4IOC2uOC3nOC3hOC3nOC2reC2miDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2i+C2tOC3j+C2guC2nOC2uuC2pyDgtongtqkg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4LaL4La04LeP4LaC4Lac4La64Lax4LeKIOC3g+C2s+C3hOC3jyDgtprgt5Lgt4Pgt5Lgtq/gt48g4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC2seC3lCDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRLZXlib2FyZExheW91dCIgbXNnaWQ9IjQ3Nzg3MzE3MDM2MDA5MDkzNDAiPiLgtrrgtq3gt5Tgtrvgt5Qg4La04LeU4LeA4La74LeUIOC2tOC3kuC2u+C3kuC3g+C3kOC2veC3kOC3g+C3iuC2uCDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0S2V5Ym9hcmRMYXlvdXQiIG1zZ2lkPSI4NDgwMDE2NzcxMTM0MTc1ODc5Ij4i4La64Lat4LeU4La74LeU4La04LeU4LeA4La74LeUIOC2uOC3lOC3hOC3lOC2q+C2rSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeKIOC3g+C2s+C3hOC3jyDgtprgt5Lgt4Pgt5Lgtq/gt48g4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NpZ25hbFBlcnNpc3RlbnRQcm9jZXNzZXMiIG1zZ2lkPSI0NTM5MDAyOTkxOTQ3Mzc2NjU5Ij4i4La64LeZ4Lav4LeU4La44LeKIOC3gOC3meC2rSBMaW51eCDgt4PgtoLgtqXgt48g4La64LeQ4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2lnbmFsUGVyc2lzdGVudFByb2Nlc3NlcyIgbXNnaWQ9IjQ4OTY5OTIwNzkxODI2NDkxNDEiPiLgtrTgt4Dgtq3gt5LgtrEg4LeD4LeS4La64La94LeUIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C3gOC2veC3kiDgt4Dgt5ngtq0g4LeD4LeQ4La04La64LeU4La44LeKIOC3g+C2guC2peC3jyDgtongtr3gt4rgtr3gt4Dgt5Lgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9wZXJzaXN0ZW50QWN0aXZpdHkiIG1zZ2lkPSI4ODQxMTEzNjI3OTU1NTYzOTM4Ij4i4La64LeZ4Lav4LeU4La4IOC3g+C3kOC2uOC3gOC3kuC2p+C2uCDgtrDgt4/gt4DgtrHgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyc2lzdGVudEFjdGl2aXR5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NTI1MTg5MjcyMzI5MDg2MTM3Ij4i4La44Lat4Laa4La64LeaIOC2tOC3gOC2reC3kuC2sSDgtpHgt4Tgt5Ig4Laa4Lec4Lan4LeD4LeKIOC2seC3nOC2seC3kOC3g+C3kyDgtrTgt5Dgt4Dgtq3gt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4La94LanIOC2uOC2reC2muC2uiDgt4Pgt5Pgtrjgt48g4Laa4LeS4La74LeT4La44LeZ4Lax4LeKIOC2p+C3kOC2tuC3iuC2veC2p+C2uiDgtrTgtrjgt48g4Laa4LeS4La74LeT4La4IOC2uOC2nOC3kuC2seC3iiAg4La44LeZ4La44Lac4LeS4Lax4LeKIOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyc2lzdGVudEFjdGl2aXR5IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDM4NDc2MDA0NzUwODI3ODI3MiI+IuC2uuC3meC2r+C3lOC2uOC2pyDgtq3gtrgg4Laa4Lec4Lan4LeD4LeKIOC2uOC2reC2muC2uiDgtq3gt5Tgtr0g4Lax4Lec4La24LeS4Laz4LeT4LeAIOC2u+C2s+C3jyDgtrTgt4Dgtq3gt4rgt4Dgt4/gtpzgt5ngtrEg4La64LeP4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uiDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4La44Lax4LeK4Lav4Lac4LeP4La44LeTIOC2muC2u+C2uOC3kuC2seC3iiDgtoXgtrHgt5ngtprgt5Tgtq3gt4og4LaL4La04LeP4LaC4Lac4La64Lax4LeKIOC3g+C2s+C3hOC3jyDgtongtq3gt5Lgtrvgt5Ig4La44Lat4Laa4La6IOC3g+C3k+C2uOC3jyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSIxODQzODUxMjk1Mzc3MDU5MzgiPiLgtrrgt5ngtq/gt5Tgtrjgt4og4La44Laa4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfZGVsZXRlUGFja2FnZXMiIG1zZ2lkPSI3NDExNDgwMjc1MTY3MjA1MDgxIj4iQW5kcm9pZCDgtrTgt5Dgtprgt5rgtqIg4La44LeQ4Laa4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Dgt5Dgtq/gtpzgtq3gt4og4La64LeZ4Lav4LeU4La44LeKIOC2uOC3kOC2muC3k+C2uOC2pyDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC3gOC3kuC3g+C3kuC2seC3iiDgtrjgt5ngtrog4La34LeP4LeA4LeS4Lat4LePIOC2muC3kuC2u+C3k+C2uOC2pyDgtongtqkg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2xlYXJBcHBVc2VyRGF0YSIgbXNnaWQ9IjI3NDEwOTE5MTg0NTg0Mjc1NiI+IuC2uuC3meC2r+C3lOC2uOC3miDgt4Dgt5ngtrHgtq3gt4og4Lav4Lat4LeK4LatIOC2uOC2muC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NsZWFyQXBwVXNlckRhdGEiIG1zZ2lkPSI0NjI1MzIzNjg0MTI1NDU5NDg4Ij4i4La04La74LeS4LeB4LeT4La94LaaIOC2r+C2reC3iuC2rSDgt4Tgt5Lgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2muC2pyDgtongtqkg4Lav4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGVsZXRlQ2FjaGVGaWxlcyIgbXNnaWQ9IjMxMjg2NjU1NzE4Mzc0MDg2NzUiPiLgtoXgtrHgt5ngtprgt4og4La64LeZ4Lav4LeU4La44LeK4LeA4La9IOC3hOC3kOC2ueC3kuC2veC3kiDgtrjgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZWxldGVDYWNoZUZpbGVzIiBtc2dpZD0iMzgxMjk5ODU5OTAwNjczMDE5NiI+IuC3hOC3kOC2ueC3kuC2veC3kiDgtpzgt5zgtrHgt5Qg4La44LeQ4Laa4LeT4La44LanIOC2heC3gOC3g+C2uyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldFBhY2thZ2VTaXplIiBtc2dpZD0iNzQ3MjkyMTc2ODM1Nzk4MTk4NiI+IuC2uuC3meC2r+C3lOC2uOC3iiDgtobgtqDgtrrgtrHgtrrgt5og4LaJ4LapIOC2tOC3iuKAjeC2u+C2uOC3j+C2q+C2uiDgtrjgt5DgtrHgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19nZXRQYWNrYWdlU2l6ZSIgbXNnaWQ9IjM5MjEwNjgxNTQ0MjA3MzgyOTYiPiLgtrrgt5ngtq/gt5Tgtrjgtprgtqcg4LaR4LeE4LeSIOC2muC3muC2reC2uiwg4Lav4Lat4LeK4LatIOC3g+C3hCDgt4Tgt5Dgtrngt5Lgtr3gt5Ig4La04LeK4oCN4La74La44LeP4LarIOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfaW5zdGFsbFBhY2thZ2VzIiBtc2dpZD0iMjE5OTEyODQ4MjgyMDMwNjkyNCI+IuC2uuC3meC2r+C3lOC2uOC3iiDgtprgt5ngt4Xgt5LgtrHgt4rgtrgg4LeD4LeK4Lau4LeP4La04Lax4La6IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2luc3RhbGxQYWNrYWdlcyIgbXNnaWQ9IjU2Mjg1MzA5NzI1NDgwNzEyODQiPiLgtrHgt4Ag4LeE4LedIOC2uuC3j+C3gOC2reC3iuC2muC3j+C2veC3kuC2sSDgtprgtrvgtrEg4La94LavIEFuZHJvaWQg4La04LeQ4Laa4Lea4Lai4La64Lax4LeKIOC3g+C3iuC2ruC3j+C2tOC2seC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4La24La94LeD4LeE4LeS4LatIOC2heC3gOC3g+C2uyDgtq3gt5PgtrHgt4rgtq/gt5Qg4LeD4La44LacIOC2seC3gCDgtrrgt5ngtq/gt5Tgtrjgt4og4LaR4Laa4Lat4LeUIOC2muC3kuC2u+C3k+C2uOC2pyDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2uOC3meC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeS4La74LeT4La44LanIOC2ieC2qSDgtq3gt5Lgtrbgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jbGVhckFwcENhY2hlIiBtc2dpZD0iNzQ4NzI3OTM5MTcyMzUyNjgxNSI+IuC2uuC3meC2r+C3lOC2uOC3miDgt4Pgt5Lgtrrgtr3gt5Tgtrgg4LeE4LeQ4La54LeS4La94LeSIOC2r+C2reC3iuC2rSDgtrjgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4OTc0NjQwODcxOTQ1NDM0NTY1Ij4i4LaF4Lax4LeZ4Laa4LeKIOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2vSDgt4Tgt5Dgtrngt5Lgtr3gt5Ig4Lax4LeP4La44LeP4LeA4La94LeSIOC2reC3lOC3hSDgtofgtq3gt5Ig4Lac4Lec4Lax4LeUIOC2uOC3kOC2muC3k+C2uOC3meC2seC3iiDgtrrgt5ngtq/gt5Tgtrjgtqcg4Lan4LeQ4La24LeK4La94LanIOC2huC2oOC2uuC2seC2uiDgtrHgt5Lgtq/gt4Tgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uOC2nOC3kuC2seC3iiDgtoXgtrHgt5ngtprgt4og4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2kuC3gOC3j+C2uuC3miDgtq/gtq3gt4rgtq0g4Lax4LeQ4LeA4LatIOC2veC2tuC3jyDgtpzgt5DgtrHgt5Pgtrjgtqcg4LaF4LeA4LeB4LeK4oCN4La6IOC3gOC2sSDgtrHgt5Lgt4Pgt48sIOC2kuC3gOC3j+C2uuC3miDgtobgtrvgtrjgt4rgtrfgtrog4Lat4LeA4Lat4LeKIOC3g+C3meC2uOC3kuC2seC3iiDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgtqcg4LaJ4LapIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jbGVhckFwcENhY2hlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjQ1OTQ0MTAyMTk1NjQzNjc3OSI+IuC2heC2seC3meC2muC3iiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr0g4LeE4LeQ4La54LeS4La94LeSIOC2seC3j+C2uOC3j+C3gOC2veC3kiDgtq3gt5Tgt4Ug4LaH4Lat4LeSIOC2nOC3nOC2seC3lCDgtrjgt5Dgtprgt5Pgtrjgt5ngtrHgt4og4La64LeZ4Lav4LeU4La44LanIOC2r+C3lOC2u+C2muC2ruC2sSDgtobgtqDgtrrgtrHgtrog4Lax4LeS4Lav4LeE4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngtrjgtp/gt5LgtrHgt4og4LaF4Lax4LeZ4Laa4LeKIOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtpLgt4Dgt4/gtrrgt5og4Lav4Lat4LeK4LatIOC2seC3kOC3gOC2rSDgtr3gtrbgt48g4Lac4LeQ4Lax4LeT4La44LanIOC2heC3gOC3geC3iuKAjeC2uiDgt4DgtrEg4Lax4LeS4LeD4LePLCDgtpLgt4Dgt4/gtrrgt5og4LaG4La74La44LeK4La34La6IOC2reC3gOC2reC3iiDgt4Pgt5ngtrjgt5LgtrHgt4og4LeD4LeS4Lav4LeU4LeA4LeT4La44LanIOC2ieC2qSDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb3ZlUGFja2FnZSIgbXNnaWQ9IjMyODk4OTAyNzE2NDU5MjE0MTEiPiLgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4La44LeK4La04Lat4LeKIOC2nOC3meC2sSDgtrrgt4/gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb3ZlUGFja2FnZSIgbXNnaWQ9IjMxOTU2MjIxNzc3ODI0NDUyNCI+IuC2heC2t+C3iuKAjeC2uuC2seC3iuC2reC2uyDgt4Pgt4Qg4La24LeP4LeE4LeS4La7IOC2uOC3j+C2sOC3iuKAjeC2uuC2uuC2seC3iuC2nOC3meC2seC3iiDgtrrgt5ngtq/gt5Tgtrjgt5og4LeD4La44LeK4La04Lat4LeKIOC2nOC3meC2seC2uuC3j+C2uOC2pyDgt4Pgt4Qg4La64LeZ4Lav4LeU4La44LeaIOC3g+C2uOC3iuC2tOC2reC3iiDgt4Dgtr3gt5LgtrHgt4og4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC3g+C3hCDgtrbgt4/gt4Tgt5Lgtrsg4La44LeP4Law4LeK4oCN4La64La64Lax4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3miDgt4Pgtrjgt4rgtrTgtq3gt4og4Lac4LeZ4Lax4La64LeP4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZExvZ3MiIG1zZ2lkPSI2NjE1Nzc4NTQzMTk4OTY3NjE0Ij4i4LeD4LaC4LeA4Lea4Lav4LeTIOC2veC3nOC2nOC3iiDgtq/gtq3gt4rgtq0g4Laa4LeS4La64LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZExvZ3MiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgyMDYxMzEzMjkzNDU1MTUxIj4i4La04Lav4LeK4Law4Lat4LeS4La64LeaIOC3gOC3kuC3gOC3kuC2sCDgtr3gt5zgtpzgt4og4Lac4Lec4Lax4LeUIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La04LeU4Lav4LeK4Lac4La94LeS4LaaIOC3g+C3hCDgtrTgt57gtq/gt4rgtpzgtr3gt5Lgtpog4Lat4Lec4La74Lat4LeU4La74LeUIOC2h+C2reC3lOC3heC2reC3iuC3gCDgtpTgtrYg4Lan4LeQ4La24LeK4La94Lan4La64LeZ4Lax4LeKIOC2muC3lOC2uOC2muC3iiDgtprgtrvgtrHgt4rgtrHgt5ngt4Tgt5Lgtq8g4La64Lax4LeP4Lav4LeTIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LeD4LeZ4LeA4LeT4La44LanIOC2uOC3meC2uuC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRMb2dzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjA2MzQzODE0MDI0MTU2MDQ0MyI+IuC2tOC2r+C3iuC2sOC2reC3kuC2uuC3miDgt4Dgt5Lgt4Dgt5LgtrAg4La94Lec4Lac4LeKIOC2nOC3nOC2seC3lCDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2tOC3lOC2r+C3iuC2nOC2veC3kuC2miDgt4Pgt4Qg4La04Lee4Lav4LeK4Lac4La94LeS4LaaIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtofgtq3gt5Tgt4Xgtq3gt4rgt4Ag4LaU4La2IOC2r+C3lOC2u+C2muC2ruC2seC2uuC3meC2seC3iiDgtprgt5Tgtrjgtprgt4og4Laa4La74Lax4LeK4Lax4LeZ4LeE4LeS4LavIOC2uuC2seC3j+C2r+C3kyDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4Lat4Lec4La74Lat4LeU4La74LeUIOC3g+C3meC3gOC3k+C2uOC2pyDgtrjgt5ngtrrgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FueUNvZGVjRm9yUGxheWJhY2siIG1zZ2lkPSI3MTU4MDU1NTU4MjM4ODE4MTgiPiLgtrHgt5Dgt4Dgtq0g4Law4LeP4LeA4Lax4La6IOC3g+C2s+C3hOC3jyDgtpXgtrHgt5Hgtrgg4La44LeP4Law4LeK4oCN4La6IOC3gOC3kuC2muC3muC2reC2muC2uuC2muC3iiDgt4Tgt4/gt4Dgt5Lgtq3gt48g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYW55Q29kZWNGb3JQbGF5YmFjayIgbXNnaWQ9IjgyODM5MTI0ODg0MzMxODkwMTAiPiLgtrHgt5Dgt4Dgtq0g4Law4LeP4LeA4Lax4La6IOC3g+C2s+C3hOC3jyDgt4Dgt5Lgtprgt5rgtq3gtrHgtrog4Laa4LeS4La74LeT4La44LanIOC2leC2seC3keC2uCDgt4Pgt4rgtq7gt4/gtrTgt5Lgtq0g4La44LeP4Law4LeK4oCN4La6IOC3gOC3kuC2muC3muC2reC2muC2uuC2muC3iiDgtrfgt4/gt4Dgt5Lgtq3gtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHBlcm1sYWJfbWFuYWdlQ2FDZXJ0aWZpY2F0ZXMgKDE2NzgzOTE4OTY3ODY4ODIwMTQpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcGVybWRlc2NfbWFuYWdlQ2FDZXJ0aWZpY2F0ZXMgKDQwMTU2NDQwNDcxOTY5MzcwMTQpIC0tPgorICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RpYWdub3N0aWMiIG1zZ2lkPSI4MDc2NzQzOTUzOTA4MDAwMzQyIj4iRGlhZyDgt4Dgt5Lgt4Pgt5LgtrHgt4og4LeE4LeS4La44LeS4Laa4LeP4La74Lat4LeK4LeA4La6IOC2r+C2u+C2qyDgt4Pgtrjgt4rgtrTgtq3gt4rgt4Dgtr3gtqcg4Laa4LeS4La64LeA4LeT4La4LyDgtr3gt5Lgt4Dgt5LgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kaWFnbm9zdGljIiBtc2dpZD0iNjYwODI5NTY5MjAwMjQ1MjI4MyI+IkRpYWcg4Laa4Lar4LeK4Lap4LeP4La64La44LanIOC2heC2uuC3kuC2reC3kiDgtpXgtrHgt5Hgtrgg4LeD4La44LeK4La04Lat4Laa4LeKIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgt4Pgt4Qg4La94LeS4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtovgtq/gt4/gt4Tgtrvgtqvgtrrgtprgt4og4La94LeZ4LeDIC9kZXYg4Lat4LeU4La9IOC2h+C2reC3kiDgtpzgt5zgtrHgt5QuIOC2uOC3meC2uuC2pyDgtrTgtq/gt4rgtrDgtq3gt5Ig4LeD4LeK4Lau4LeP4La64LeS4Lat4LeP4LeA4LanIOC3g+C3hCDgtobgtrvgtprgt4rgt4Lgt4/gt4Dgtqcg4La24La94La04LeR4La44LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgt4Tgt5Dgtprgt5Lgtrrgt4/gt4Dgtprgt4og4LaH4LatLiDgtrHgt5Lgt4Lgt4rgtrTgt4/gtq/gtpog4LeE4LedIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC2u+C3lCDgt4Dgt5Lgt4Pgt5LgtrHgt4og4Lav4LeY4Lap4LeP4LaC4LacLeC3gOC3kuC3geC3muC3guC3kuC2rSDgtq/gt53gt4Ig4Lax4LeS4La74LeK4Lar4La6IOC3g+C2s+C3hOC3jyDgtrTgtrjgtqvgtprgt4og4La44LeZ4La6IOC2uuC3nOC2r+C3j+C2nOC2rSDgtrrgt5Tgtq3gt5TgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VDb21wb25lbnRTdGF0ZSIgbXNnaWQ9IjYzMzU1NzY3NzU3MTEwOTU5MzEiPiLgtrrgt5ngtq/gt5Tgtrjgt4og4LaF4LaC4LacIOC3g+C2tuC2vSDgt4Tgt50g4LaF4La24La9IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZUNvbXBvbmVudFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4ODg3NDM1NzQwOTgyMjM3Mjk0Ij4i4LeA4LeZ4Lax4Lat4LeKIOC2uuC3meC2r+C3lOC2uOC2miDgtoXgtoLgtpzgtrrgtprgt4og4LeD4La24La9IOC2ryDgtrHgt5Dgtq/gt4rgtq8g4La64Lax4LeK4LaxIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3gOC3kOC2r+C2nOC2reC3iiDgtqfgt5Dgtrbgt4rgtr3gtqfgt4og4LaF4LeA4LeB4LeK4oCN4La64Lat4LePIOC2heC2tuC2vSDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrjgt5ngtrog4La34LeP4LeA4LeS4LatIOC2muC3hSDgt4Tgt5DgtpouIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4LeD4LeQ4La94Laa4LeS4La94LeK4La94LeZ4Lax4LeKIOC2t+C3j+C3gOC3kuC2reC3jyDgtprgt4Ug4La64LeU4Lat4LeU4La6LCDgtrfgt4/gt4Dgt5Lgtq0g4Lax4Lec4Laa4La74LaxLCDgtoXgt4Pgt4rgtq7gt5Lgtrsg4LeE4LedIOC2heC3g+C3iuC2ruC3j+C2uuC3kiDgtq3gtq3gt4rgt4Dgtrrgtqcg4La64LeZ4Lav4LeU4La4IOC2tOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaR4La64LanIOC3hOC3kOC2muC3kuC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VDb21wb25lbnRTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE4MjcyMzI0ODQ0MTY1MDU2MTUiPiLgt4Dgt5ngtrHgtq3gt4og4La64LeZ4Lav4LeU4La44LaaIOC2heC2guC2nOC2uuC2muC3iiDgt4Pgtrbgtr0g4LavIOC2seC3kOC2r+C3iuC2ryDgtrrgtrHgt4rgtrEg4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeA4LeQ4Lav4Lac4Lat4LeKIOC2r+C3lOC2u+C2muC2ruC2sSDgtoXgt4Dgt4Hgt4rigI3gtrrgtq3gt48g4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC2uOC3meC2uiDgtrfgt4/gt4Dgt5Lgtq0g4Laa4LeFIOC3hOC3kOC2mi4g4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uiDgt4Pgt5Dgtr3gtprgt5Lgtr3gt4rgtr3gt5ngtrHgt4og4La34LeP4LeA4LeS4LatIOC2muC3hSDgtrrgt5Tgtq3gt5TgtrosIOC2t+C3j+C3gOC3kuC2rSDgtrHgt5zgtprgtrvgtrEsIOC2heC3g+C3iuC2ruC3kuC2uyDgt4Tgt50g4LaF4LeD4LeK4Lau4LeP4La64LeSIOC2reC2reC3iuC3gOC2uuC2pyDgtrrgt5ngtq/gt5Tgtrgg4La04Lat4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtpHgtrrgtqcg4LeE4LeQ4Laa4LeS4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZ3JhbnRSZXZva2VQZXJtaXNzaW9ucyIgbXNnaWQ9IjQ2MjczMTUzNTEwOTM1MDg3OTUiPiLgtoXgt4Dgt4Pgtrsg4La04LeK4oCN4La74Lav4LeP4Lax4La6IOC2muC3kuC2u+C3k+C2uCDgt4Tgt50g4LaF4LeE4Led4LeD4LeSIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dyYW50UmV2b2tlUGVybWlzc2lvbnMiIG1zZ2lkPSI0MDg4NjQyNjU0MDg1ODUwNjYyIj4i4La64LeZ4Lav4LeU4La44Laa4LanIOC2keC2uuC2pyDgt4Tgt50g4LaF4Lax4LeZ4Laa4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr3gtqcg4LeA4LeS4LeB4Lea4LeC4LeS4LatIOC2heC3gOC3g+C2uyDgtrTgt4rigI3gtrvgtq/gt4/gtrHgtrrgtqcg4LeE4LedIOC2heC3hOC3neC3g+C3kiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiwg4LaS4LeA4LeP4LanIOC2heC3gOC3g+C2uyDgtrTgt4rigI3gtrvgtq/gt4/gtrHgtrog4Lax4Lec4Laa4LeFIOC2nOC3lOC2q+C3j+C2guC2nCDgt4Dgtr3gtqcg4La04LeK4oCN4La74LeA4Lea4LeBIOC3gOC3k+C2uOC2pyDgtrjgt5ngtrog4La34LeP4LeA4LeS4Lat4LePIOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRQcmVmZXJyZWRBcHBsaWNhdGlvbnMiIG1zZ2lkPSI4NDYzMTgxNjI4Njk1Mzk2MzkxIj4i4LaF4La34LeS4La74LeU4Lag4LeSIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Pgtprgt4PgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRQcmVmZXJyZWRBcHBsaWNhdGlvbnMiIG1zZ2lkPSI0OTczOTg2NzYyMjQxNzgzNzEyIj4i4LaU4La24Lac4LeaIOC2heC2t+C3kuC2u+C3lOC2oOC3kiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaU4La24Lac4LeaIOC2sOC3j+C3gOC2seC2uiDgt4DgtrEg4La64LeZ4Lav4LeU4La44LeKIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5PgtrgsIOC2tOC3gOC2reC3kuC2sSDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4La94LeS4Lax4LeKIOC2r+C2reC3iuC2rSDgtpHgtprgtq3gt5Qg4Laa4LeS4La74LeT4La4LCDgtrTgt4rigI3gtrvgt53gtqngt48g4Laa4LeS4La74LeT4La4IOC3gOC3kOC2seC3kiDgtq/gt5og4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrHgt5Lgt4Hgt4rgt4Hgtrbgtq/gt4Dgtrgg4LeD4LeS4Lav4LeUIOC2muC2u+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlU2V0dGluZ3MiIG1zZ2lkPSIyMjI2MTk1MjkwOTU1MjI0NzMwIj4i4La04Lav4LeK4Law4Lat4LeSIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVTZXR0aW5ncyIgbXNnaWQ9Ijc3NzU3MjM0NDE1NTg5MDcxODEiPiLgtrTgtq/gt4rgtrDgtq3gt5Ig4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC2r+C2reC3iuC2rSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC2lOC2tuC2nOC3miDgtrTgtq/gt4rgtrDgtq3gt5Ig4LeA4LeS4Lax4LeK4oCN4La64LeP4LeDIOC2r+C3neC3giDgtpzgt5DgtrHgt4rgt4Dgt5Lgtrog4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTZWN1cmVTZXR0aW5ncyIgbXNnaWQ9IjIwNDY3NjI1MTg3NjcxODI4OCI+IuC2huC2u+C2muC3iuKAjeC3guC3kuC2rSDgtrTgtq/gt4rgtrDgtq3gt5Ig4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC3gOC3meC2seC3g+C3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVNlY3VyZVNldHRpbmdzIiBtc2dpZD0iODE1OTUzNTYxMzAyMDEzNzM5MSI+IuC2tOC2r+C3iuC2sOC2reC3kuC2uuC3miDgtobgtrvgtprgt4rigI3gt4Lgt5Lgtq0g4Lav4Lat4LeK4LatIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaL4La04LeP4LaC4Lac4La64LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtovgtrTgt4/gtoLgtpwg4LeD4Laz4LeE4LePIOC2t+C3j+C3gOC3kuC2reC2uuC2pyDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZUdzZXJ2aWNlcyIgbXNnaWQ9IjIxNDk0MjY2NjQyMjYxNTIxODUiPiJHb29nbGUg4LeD4Lea4LeA4LePIOC3g+C3kuC2reC3kuC2uuC2uCDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVHc2VydmljZXMiIG1zZ2lkPSIxMjg3MzA5NDM3NjM4MzgwMjI5Ij4iR29vZ2xlIOC3g+C3muC3gOC3jyDgt4Pgt5Lgtq3gt5Lgtrrgtrgg4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgt4PgtrPgt4Tgt48g4La34LeP4LeA4LeS4Lat4La64LanIOC2seC3nOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlY2VpdmVCb290Q29tcGxldGVkIiBtc2dpZD0iNTMxMjk2NTU2NTk4NzgwMDAyNSI+IuC2huC2u+C2uOC3iuC2t+C2uuC3muC2r+C3kyDgtrDgt4/gt4DgtrHgtrog4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjczOTAzMDQ2NjQxMTY4ODA3MDQiPiLgtrTgtq/gt4rgtrDgtq3gt5Lgtrog4LaH4La74La54LeU4La4IOC2heC3gOC3g+C2seC3iiDgt4Dgt5Yg4LeA4LeE4LeP4La4IOC2uuC3meC2r+C3lOC2uCDgtobgtrvgtrjgt4rgtrcg4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtqfgt5Dgtrbgt4rgtr3gtqfgtrog4LaG4La74La44LeK4La3IOC2muC3kuC2u+C3k+C2uOC2pyDgtrjgt5ngtrjgtp/gt5LgtrHgt4og4La04La44LePIOC2muC3hSDgt4Tgt5Dgtprgt5Ig4LaF4Lat4La7IOC3g+C3kOC2uOC3gOC3kuC2p+C2uCDgtrDgt4/gt4DgtrHgtrog4LeA4LaxIOC2seC3kuC3g+C3jyDgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4Lan4LeQ4La24LeK4La94Lan4La64La4IOC2tOC3iuKAjeC2u+C2uOC3j+C2ryDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVjZWl2ZUJvb3RDb21wbGV0ZWQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1MTM5NTA1ODkxMDI2MTc1MDQiPiLgtrTgtq/gt4rgtrDgtq3gt5Lgtrog4LaH4La74La54LeU4La4IOC2heC3gOC3g+C2seC3iiDgt4Dgt5Yg4LeA4LeE4LeP4La4IOC2uuC3meC2r+C3lOC2uCDgtobgtrvgtrjgt4rgtrcg4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4LaG4La74La44LeK4La3IOC2muC3kuC2u+C3k+C2uOC2pyDgtrjgt5ngtrjgtp/gt5LgtrHgt4og4La04La44LePIOC2muC3hSDgt4Tgt5Dgtprgt5Ig4LaF4Lat4La7IOC3g+C3kOC2uOC3gOC3kuC2p+C2uCDgtrDgt4/gt4DgtrHgtrog4LeA4LaxIOC2seC3kuC3g+C3jyDgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4Lav4LeU4La74Laa4Lau4Lax4La64Lea4La4IOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C3kuC2reC3iuC3gOC2uiDgtrTgt4rigI3gtrvgtrjgt4/gtq8g4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJvYWRjYXN0U3RpY2t5IiBtc2dpZD0iNzkxOTEyNjM3MjYwNjg4MTYxNCI+IuC2tuC3kOC2s+C3lOC2q+C3lCDgt4Dgt5Lgtprgt4/gt4HgtrHgtrog4La64LeQ4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJvYWRjYXN0U3RpY2t5IiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3NzQ5NzYwNDk0Mzk5OTE1NjUxIj4i4La04LeK4oCN4La74Lag4LeP4La74Lar4La64LanIOC2tOC3g+C3lOC3gOC2ryDgtrTgt4Dgtq3gt5LgtrEsIOC2tOC3iuKAjeC2u+C2oOC3j+C2u+C2q+C2uuC2seC3iiDgtrrgt5Dgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3gOC3kOC2qeC3kuC2tOC3lOC2uyDgtrjgtq3gtprgtrog4La34LeP4LeA4LeS4Lat4La6IOC3hOC3muC2reC3lCDgtprgt5zgtqcsIOC2heC2sOC3kuC2miDgtrfgt4/gt4Dgt5Lgtq3gtrog4La44Laf4LeS4Lax4LeKIOC2p+C3kOC2tuC3iuC2veC2p+C2uiDgtrTgtrjgt48g4Laa4LeS4La74LeT4La4IOC3hOC3nSDgtoXgt4Pgt4rgtq7gt5Lgtrsg4Laa4LeFIOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icm9hZGNhc3RTdGlja3kiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyODI1ODAzNzY0MjMyNDQ1MDkxIj4i4La04LeK4oCN4La74Lag4LeP4La74Lar4La64LanIOC2tOC3g+C3lOC3gOC2ryDgtrTgt4Dgtq3gt5LgtrEsIOC2tOC3iuKAjeC2u+C2oOC3j+C2u+C2q+C2uuC2seC3iiDgtrrgt5Dgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3gOC3kOC2qeC3kuC2tOC3lOC2uyDgtrjgtq3gtprgtrog4La34LeP4LeA4LeS4Lat4La6IOC3hOC3muC2reC3lCDgtprgt5zgtqcsIOC2heC2sOC3kuC2miDgtrfgt4/gt4Dgt5Lgtq3gtrog4La44Laf4LeS4Lax4LeKIOC2r+C3lOC2u+C2muC2ruC2seC2uiDgtrTgtrjgt48g4Laa4LeS4La74LeT4La4IOC3hOC3nSDgtoXgt4Pgt4rgtq7gt5Lgtrsg4Laa4LeFIOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRDb250YWN0cyIgbXNnaWQ9IjgzNDg0ODExMzE4OTk4ODYxMzEiPiLgtpTgtrbgtpzgt5og4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC2muC3kuC2uuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDb250YWN0cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNTI5NDg2Njg1Njk0MTE0OTYzOSI+IuC3g+C2s+C3hOC2seC3iiDgtrTgt5Tgtq/gt4rgtpzgtr3gtrrgtrHgt4og4LeE4LanIOC2lOC2tiDgtofgtrjgtq3gt5Tgtrjgt4og4Lac4Lat4LeKLCDgtoot4Lat4LeQ4La04LeQ4La94LeKLCDgt4Tgt50gIOC2heC2seC3meC2muC3lOC2reC3iiDgtobgtprgt4/gtrsg4LeA4La94LeS4Lax4LeKIOC3g+C2seC3iuC2seC3kuC3gOC3muC2r+C2seC2uiDgtprgtrvgtpzgtq3gt4og4LeD4LaC4Lab4LeK4oCN4La64Lat4LavIOC2h+C2reC3lOC3heC3lOC3gCwg4LaU4La24Lac4LeaIOC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgtpzgtrbgtqngt4/gt4Dgt5Mg4LaH4Lat4LeSIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3jyDgtrTgt5Lgt4Xgt5LgtrbgtrMg4Lav4Lat4LeK4LatIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uiDgtrjgtp/gt5LgtrHgt4og4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2lOC2tuC2nOC3miDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48g4La04LeS4LeF4LeS4La24LazIOC2r+C2reC3iuC2rSDgt4Pgt5Tgtrvgt5Dgtprgt5Pgtrjgtqcg4LaJ4LapIOC2veC2tuC3jyDgtq/gt5ngtrEg4LaF4Lat4La7LCDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC3gOC3kuC3g+C3kuC2seC3iiDgtpTgtrYg4Lax4Lec4Lav4LeQ4Lax4LeU4LeA4Lat4LeK4LeA4La4IOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3jyDgtq/gtq3gt4rgtq0g4La24LeZ4Lav4LePIOC2nOC3kOC2seC3k+C2uOC2pyDgtongtqkg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDb250YWN0cyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0NDA2NTQxNTI0NTczMDA2NjIiPiLgtrHgt5Lgtrrgtrjgt5Lgtq0g4La04LeU4Lav4LeK4Lac4La94La64Lax4LeKIOC3g+C2uOC2nCDgtpTgtrYg4LaH4La44Lat4LeULCDgtoot4Lat4LeQ4La04LeQ4La94LeKIOC2muC3hSDgt4Tgt50g4LeA4LeZ4Lax4Lat4LeKIOC2huC2muC3j+C2u+C2uuC2muC3kuC2seC3iiDgt4PgtrHgt4rgtrHgt5Lgt4Dgt5rgtq/gtrHgtrog4Laa4LeFIOC3g+C2guC2m+C3iuKAjeC2uuC3j+C2reC2uiDgtofgtq3gt5Tgtr3gtq3gt4og4LaU4La24Lac4LeaIOC2r+C3lOC2u+C2muC2ruC2seC2uuC3miDgtobgtqDgtrrgtrHgtrog4Laa4La74LaxIOC2veC2ryDgtpTgtrbgtpzgt5og4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC2nOC3kOC2sSDgtq/gtq3gt4rgtq0g4Laa4LeS4La64LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtpTgtrbgtpzgt5og4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC2r+C2reC3iuC2rSDgtovgtrTgt4Pgt4rgtq4g4Laa4LeS4La74LeT4La44LanIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrEg4LaF4Lat4La7IOC2lOC2tuC2nOC3miDgtq/gt5DgtrHgt5Tgtrjgtprgt5LgtrHgt4og4Lat4Lec4La74LeAIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC2r+C2reC3iuC2rSDgtrbgt5ngtq/gt4/gtpzgt5DgtrHgt5Pgtrgg4Laa4LeFIOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ29udGFjdHMiIG1zZ2lkPSI1MTA3NDkyMDg2NDE2NzkzNTQ0Ij4i4LaU4La24Lac4LeaIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3jyDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDb250YWN0cyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iODk3MjQzOTMyNTIxOTUzNjAyIj4i4Lax4LeS4La64La44LeS4LatIOC2tOC3lOC2r+C3iuC2nOC2veC2uuC2seC3iuC2pyDgtpTgtrYg4LaH4La44Lat4LeWLCDgtoot4Lat4LeQ4La04LeQ4La94LeKIOC2muC3hSDgt4Tgt50g4LaH4La44Lat4LeU4La44LeKIOC2muC3hSDgt4PgtoLgtpvgt4rigI3gtrrgt4/gtq0g4LaH4Lat4LeU4La94Lat4LeKIOC2lOC2tuC2nOC3miDgtqfgt5Dgtrbgt4rgtr3gtqfgtrrgt5og4LaG4Lag4La64Lax4La6IOC2muC2u+C2sSDgtr3gtq8g4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePICjgtr3gt5LgtrTgt5LgtrEpIOC2r+C2reC3iuC2rSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngtrgg4LaF4LeA4LeD4La74La64LeZ4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48g4Lav4Lat4LeK4LatIOC2uOC3kOC2muC3k+C2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ29udGFjdHMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1ODk4NjkyMjQ2MjUxNjM1NTgiPiLgt4PgtrPgt4TgtrHgt4og4La04LeU4Lav4LeK4Lac4La94La64Lax4LeK4LanIOC2lOC2tiDgtofgtrjgtq3gt5YsIOC2ii3gtq3gt5DgtrTgt5Dgtr3gt4og4Laa4LeFIOC3hOC3nSDgtofgtrjgtq3gt5Tgtrjgt4og4Laa4LeFIOC3g+C2guC2m+C3iuKAjeC2uuC3j+C2sSDgtofgtq3gt5Tgtr3gtq3gt4og4LaU4La24Lac4LeaIOC2r+C3lOC2u+C2muC2ruC2seC2uuC3miDgtobgtqDgtrrgtrHgtrog4Laa4La74LaxIOC2veC2ryDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48gKOC2veC3kuC2tOC3kuC2sSkg4Lav4Lat4LeK4LatIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrrgt5ngtrHgt4og4La64LeZ4Lav4LeU4La44LanIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3jyDgtq/gtq3gt4rgtq0g4La44LeQ4Laa4LeT4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2FsbExvZyIgbXNnaWQ9IjM0NzgxMzMxODQ2MjQxMDI3MzkiPiLgtofgtrjgtq3gt5Tgtrjgt4og4La94Lec4Lac4La6IOC2muC3kuC2uuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRDYWxsTG9nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzNzAwNjQ1MTg0ODcwNzYwMjg1Ij4i4La04LeQ4La44LeS4Lar4LeZ4LaxIOC3g+C3hCDgtrTgt5Lgtqfgt4DgtrEg4LaH4La44Lat4LeU4La44LeKIOC2nOC3kOC2sSDgtq/gtq3gt4rgtq0g4LaH4Lat4LeU4LeF4Lat4LeKLCDgtpTgtrbgtpzgt5og4Lan4LeQ4La24LeK4La94Lan4La64LeaIOC2h+C2uOC2reC3lOC2uOC3iiDgtr3gt5zgtpwg4Laa4LeS4La64LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtpTgtrbgtpzgt5og4LaH4La44Lat4LeU4La44LeKIOC2veC3nOC2nCDgtq/gtq3gt4rgtq0g4LeD4LeU4La74Laa4LeK4LeC4LeS4LatIOC2muC3kuC2u+C3k+C2uOC2pyDgtrjgt5ngtrgg4LaF4LeA4LeD4La74La6IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2veC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSIOC3g+C3hCDgtpTgtrbgtpzgt5og4Lav4LeQ4Lax4LeU4La44Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgtofgtrjgtq3gt5Tgtrjgt4og4La94Lec4LacIOC2r+C2reC3iuC2rSDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC2tuC3meC2r+C3jyDgtpzgt5DgtrHgt5Pgtrgg4Laa4LeFIOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsbExvZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3Nzc3MjU3OTY4MTMyMTcyNDQiPiLgtr3gt5Dgtrbgt5ngtrEg4LeD4LeEIOC2tOC3kuC2p+C3gOC2sSDgtofgtrjgtq3gt5Tgtrjgt4og4La04LeS4LeF4LeS4La24LazIOC2r+C2reC3iuC2rSDgtofgtq3gt5Tgt4Xgtq3gt4rgt4Ag4LaU4La24Lac4LeaIOC2r+C3lOC2u+C2muC2ruC2seC2uuC3miDgtofgtrjgtq3gt5Tgtrjgt4og4La94Lec4Lac4LeKIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uiDgtpTgtrbgtpzgt5og4LaH4La44Lat4LeU4La44LeKIOC2veC3nOC2nOC3iiDgtq/gtq3gt4rgtq0g4LaL4La04LeD4LeK4LauIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaJ4Lap4Lav4LeZ4LaxIOC2heC2reC2uyDgtpTgtrbgtpzgt5og4LaF4Lax4LeU4Lav4LeQ4Lax4LeU4La44Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC3gOC3kuC3g+C3kuC2seC3iiDgtofgtrjgtq3gt5Tgtrjgt4og4La94Lec4Lac4LeKIOC2r+C2reC3iuC2rSDgtrbgt5ngtq/gt4/gtpzgt5DgtrHgt5Pgtrgg4Laa4LeFIOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ2FsbExvZyIgbXNnaWQ9Ijg1NTIwNDU2NjQ3NDM0OTkzNTQiPiLgtofgtrjgtq3gt5Tgtrjgt4og4La94Lec4Lac4La6IOC2veC3kuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsbExvZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY2MTgwNjA2MjI3NDExOTI0NSI+IuC2veC3kOC2tuC3meC2sSDgtofgtrjgtq3gt5Tgtrjgt4og4LeD4LeEIOC2tOC3kuC2p+C3gOC2sSDgtofgtrjgtq3gt5Tgtrjgt4og4Lav4Lat4LeK4LatIOC2h+C2reC3lOC3heC2reC3iuC3gCDgtpTgtrbgtpzgt5og4Lan4LeQ4La24LeK4La94Lan4La64LeaIOC2h+C2uOC2reC3lOC2uOC3iiDgtr3gt5zgtpzgtrog4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaU4La24Lac4LeaIOC2h+C2uOC2reC3lOC2uOC3iiDgtr3gt5zgtpzgtrog4La44LeQ4Laa4LeT4La44LanIOC3hOC3nSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4og4La44LeZ4La6IOC2t+C3j+C3gOC3kuC2reC3jyDgtprgt5ngtrvgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxsTG9nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjgzOTQxNzM2MzUyNzg3ODQyIj4i4La04LeQ4La44LeS4Lar4LeZ4LaxIOC3g+C3hCDgtrTgt5Lgtqfgt4Dgt5ngtrEg4LaH4La44Lat4LeU4La44LeKIOC2r+C2reC3iuC2rSDgtofgtq3gt5Tgt4Xgt5Tgt4Ag4LaU4La24Lac4LeaIOC2r+C3lOC2u+C2muC2ruC2seC2uuC3miDgtofgtrjgtq3gt5Tgtrjgt4og4La94Lec4Lac4La6IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2lOC2tuC2nOC3miDgtofgtrjgtq3gt5Tgtrjgt4og4La94Lec4Lac4La6IOC2uOC3kOC2muC3k+C2uOC2pyDgt4Tgt50g4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC2uOC3meC2uiDgtrfgt4/gt4Dgt5Lgtq0g4Laa4La9IOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRQcm9maWxlIiBtc2dpZD0iNDcwMTg4OTg1MjYxMjcxNjY3OCI+IuC2lOC2tuC2nOC3miDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48g4La04LatIOC2muC3kuC2uuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRQcm9maWxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTQ2MjQ3NTE1MTg0OTg4ODg0OCI+IuC2lOC2tuC2nOC3miDgtrHgtrgg4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtobgtq/gt5Mg4LaU4La24Lac4LeaIOC2i+C2tOC3j+C2guC2nOC2uuC3miDgtpzgtrbgtqngt48g4LeA4LeTIOC2h+C2reC3kiDgtrTgt5Tgtq/gt4rgtpzgtr3gt5Lgtpog4La04LeQ4Lat4LeS4Laa4LapIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC3hOC3kiDgtq3gt5rgtrvgt5Tgtrgg4La64LeZ4Lav4LeU4La44LanIOC2lOC2tuC3gCDgt4TgtrPgt5TgtrHgt48g4Lac4LeQ4Lax4LeT4La44LanIOC3hOC3kOC2muC3kiDgt4DgtrEg4La24LeAIOC3g+C3hCDgtpTgtrbgtpzgt5og4La04LeU4Lav4LeK4Lac4La94LeS4LaaIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtoXgtrHgt5ngtprgt4og4LaF4La64LanIOC2uuC3kOC3gOC3k+C2uOC2pyDgtq8g4LeE4LeQ4Laa4LeSIOC3gOC3k+C2uOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlUHJvZmlsZSIgbXNnaWQ9IjkwNzc5MzYyODc3NzM5NzY0MyI+IuC2lOC2tuC2nOC3miDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt48g4La04LatIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVByb2ZpbGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1NTUyMDg0Mjk0NTk4NDY1ODk5Ij4i4LaU4La24Lac4LeaIOC2seC2uCDgt4Pgt4Qg4LeD4La44LeK4La24Lax4LeK4Law4Lat4LePIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgt4Dgt5DgtrHgt5Ig4LaU4La24Lac4LeaIOC2i+C2tOC3j+C2guC2nOC2uuC3miDgtobgtqDgtrrgtrHgtrog4Laa4La74LaxIOC2veC2ryDgtrTgt5Tgtq/gt4rgtpzgtr3gt5Lgtpog4La04LeQ4Lat4LeS4Laa4LapIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC3hOC3nSDgtpHgtprgtq3gt5Qg4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngtrjgtpzgt5LgtrHgt4og4La64LeZ4Lav4LeU4La44LanIOC2lOC2tuC3gCDgt4TgtrPgt5TgtrHgt48g4Lac4LatIOC3hOC3kOC2muC3kiDgtoXgtq3gtrsg4LaF4Lax4LeZ4Laa4LeKIOC2heC2uuC2pyDgtpTgtrbgtpzgt5og4La04LeQ4Lat4LeS4Laa4LapIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtrrgt5Dgt4Dgt5Lgtrog4LeE4LeQ4Laa4LeSIOC2tuC3gCDgtprgt5Lgtrrgt4Dgt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTI2ODkyMDk1NjE1MjQxOTE3MCI+IuC2lOC2tuC2nOC3miDgt4Pgtrjgt4/gtqIg4La04LeK4oCN4La74LeA4LeP4LeE4La6IOC2muC3kuC2uuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MjU1NzA2MDI3MTcyMDUwODcyIj4i4LaU4La24Lac4LeaIOC3g+C3hCDgtpTgtrbgtpzgt5og4La64LeE4LeF4LeU4LeA4Lax4LeK4Lac4LeaIOC3g+C2uOC3j+C2oiDgtrrgt4/gt4Dgtq3gt4rgtprgt4/gtr3gt5PgtrHgtrrgtrHgt4og4LeA4LeZ4LatIOC2tOC3kuC3gOC3kuC3g+C3k+C2uOC2pyDgt4Tgt50g4LeD4La44La44LeU4LeE4LeU4La74LeK4LatIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4Lat4Lec4La74Lat4LeU4La74LeUIOC2tuC3meC2r+C3jyDgtpzgt5DgtrHgt5Pgtrjgt5og4Lav4LeTIOC3g+C3kOC2veC2muC3kuC2veC3kuC2uOC2reC3iiDgt4DgtrHgt4rgtrEgLS0g4LeA4LeS4LeB4LeK4LeA4LeP4LeD4La64Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgt4Pgtrjgt4/gtqIg4Lai4LeP4La94LeA4La9IOC2lOC2tuC2nOC3miDgt4Pgt4Qg4LaU4La24Lac4LeaIOC2uuC3hOC3heC3lOC3gOC2seC3iiDgtoXgtq3gtrsg4LeD4Lax4LeK4Lax4LeS4LeA4Lea4Lav4LaxIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrjgt5ngtrjgtpzgt5LgtrHgt4og4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIOC3g+C2p+C3hOC2sTog4LeD4LeS4La64La94LeUIOC3g+C2uOC3j+C2oiDgtqLgt4/gtr3gt4Dgtr0g4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uiDgtrbgtr0g4Lax4Lec4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVTb2NpYWxTdHJlYW0iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNTA0MTc5MjIyNDkzMjM1NjQ1Ij4i4LaU4La24Lac4LeaIOC3g+C2uOC3j+C2oiDgtrTgt4rigI3gtrvgt4Dgt4/gt4Tgtrog4LeA4LeZ4LatIOC2veC3kuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlU29jaWFsU3RyZWFtIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzA4NjU1NzU1MjIwNDExNDg0OSI+IuC2lOC2tuC2nOC3miDgtrrgt4Tgt4Xgt5Tgt4DgtrHgt4rgtpzgt5og4LeD4La44LeP4LaiIOC2uuC3j+C3gOC2reC3iuC2muC3j+C2veC3k+C2seC2uuC2seC3iiDgtrTgt5ngtrHgt4rgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtrbgt5ngtq/gt48g4Lac4LeQ4Lax4LeT4La44Lea4Lav4LeTIOC3g+C3kOC2veC2muC3kuC2veC3kuC2uOC2reC3iiDgt4DgtrHgt4rgtrEgLS0g4La64LeE4LeF4LeU4LeA4LeZ4Laa4LeK4Lac4LeZ4Lax4LeKIOC2tOC3kOC2uOC3kuC2q+C3meC2sSDgtr3gt5ngt4Mg4La04Lar4LeS4LeA4LeS4LapIOC2seC3kuC2tOC2r+C3gOC3k+C2uOC2pyDgtrjgt5ngtrjgtp/gt5LgtrHgt4og4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C2p+C3hOC2sSA6IOC3g+C3kuC2uuC2veC3lCDgt4Pgtrjgt4/gtqIg4Lai4LeP4La9IOC3g+C2s+C3hOC3jyDgtrjgt5ngtrgg4LaF4LeA4LeD4La74La6IOC2tuC2vSDgtrHgt5zgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkQ2FsZW5kYXIiIG1zZ2lkPSI1OTcyNzI3NTYwMjU3NjEyMzk4Ij4i4Lav4LeS4LaxIOC2r+C2u+C3iuC3geC2seC2uuC3miDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt4og4LeD4LeEIOC2u+C3hOC3g+C3kuC2nOC2rSDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4Laa4LeS4La64LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZENhbGVuZGFyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0MjE2NDYyMDQ5MDU3NjU4NzIzIj4i4LaU4La24Lac4LeaIOC2p+C3kOC2tuC3iuC2veC2p+C2uiDgtq3gt5Tgtr0g4Lac4La24Lap4LePICDgtprgtrsg4LaH4Lat4LeSIOC2uOC3kuC2reC3lOC2u+C2seC3iuC2nOC3miDgt4Pgt4Qg4LaR4Laa4LeK4LeAIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC2u+C2seC3iuC2seC2seC3iuC2nOC3miDgtq8g4LaH4Lat4LeU4LeF4LeU4LeAIOC3g+C3kuC2uuC2veC3lOC2uCDgtq/gt5LgtrEg4Lav4La74LeK4LeB4LaxIOC3g+C3kuC2r+C3iuC2sOC3kiDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uiDgtrvgt4Tgt4Pgt4rigI3gtrrgtrfgt4/gt4Dgtrog4LeE4LedIOC3g+C2guC3gOC3muC2r+C3k+C2reC3j+C3gOC2uiDgtrHgt5zgt4Pgtr3gtprgt48g4LaU4La24Lac4LeaIOC2r+C3kuC2sSDgtq/gtrvgt4rgt4HgtrEg4Lav4Lat4LeK4LatIOC2tuC3meC2r+C3jyDgtpzgt5DgtrHgt5Pgtrjgtqcg4LeE4LedIOC3g+C3lOC2u+C3kOC2muC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3NDM0NTQ4NjgyNDcwODUxNTgzIj4i4La64LeE4LeF4LeU4LeA4Lax4LeKIOC3g+C3hCDgt4Pgtrjgtprgt4/gtr3gt5LgtrHgtrrgtrHgt4og4LaH4Lat4LeU4La94Lat4LeKIOC2lOC2tuC2nOC3miDgtq/gt5Tgtrvgtprgtq7gtrHgtrrgt5og4LaG4Lag4La64Lax4La6IOC2muC2u+C2sSDgtr3gtq8g4LeD4LeS4La64La94LeUIOC2r+C3kuC2sSDgtq/gtrvgt4rgt4HgtrEg4LeD4LeS4Lav4LeU4LeA4LeT4La44LeKIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeA4LeS4LeB4LeK4LeA4LeP4LeD4La64Laa4LeS4Lax4LeKIOC3hOC3nSDgt4PgtoLgt4Dgt5rgtq/gt5Pgtq3gt4/gt4Dgtprgt5LgtrHgt4og4Lat4Lec4La74LeAIOC2lOC2tuC2nOC3miDgtq/gt5LgtrEg4Lav4La74LeK4LeB4LaxIOC2r+C2reC3iuC2rSDgtrbgt5ngtq/gt48g4Lac4LeQ4Lax4LeT4La44LanIOC3hOC3nSDgtovgtrTgt4Pgt4rgtq4g4Laa4LeS4La74LeT4La44LanIOC2uOC3meC2uOC2nOC3kuC2seC3iiDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQ2FsZW5kYXIiIG1zZ2lkPSI4NDM4ODc0NzU1MTkzODI1NjQ3Ij4i4Lav4LeS4LaxIOC2r+C2u+C3iuC3geC2sSDgt4Pgt5Lgtq/gt4rgtrDgt5Ig4LaR4Laa4Lat4LeUIOC2muC3kuC2u+C3k+C2uCDgt4Tgt50g4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2muC3iiDgt4Pgt5Lgtq/gt5Tgtprgtrsg4LeE4LeS4La44LeS4Laa4La74LeU4Lac4LeaIOC2r+C3kOC2seC3k+C2uOC2muC3kuC2seC3iiDgtq3gt5zgtrvgt4Ag4LaF4La44LeU4Lat4LeK4Lat4Lax4LeK4LanIOC2ii3gtq3gt5DgtrTgt5Hgtr3gtprgt4og4La64LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVDYWxlbmRhciIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNjY3OTAzNTUyMDExMzY2ODUyOCI+IuC2uuC3hOC3heC3lOC3gOC2seC3iiDgt4Tgt50g4LaR4Laa4LanLeC3gOC3kOC2qeC2muC2u+C2seC3iuC2seC2seC3iiDgtofgtq3gt5Tgt4Xgtq3gt4rgt4Ag4LaU4La24LanIOC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeFIOC3hOC3kOC2muC3kiDgt4Pgt5Lgtq/gt4rgtrDgt5Ig4LaR4Laa4Lat4LeUIOC2muC3kuC2u+C3k+C2uOC2pywg4LaJ4LeA4Lat4LeKIOC2muC3kuC2u+C3k+C2uOC2pywg4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La44Laf4LeS4Lax4LeKIOC2r+C3kuC2sSDgtq/gtrvgt4rgt4HgtrEg4LeE4LeS4La44LeS4Laa4La74LeU4LeA4Lax4LeK4Lac4LeZ4Lax4LeKIOC2tOC2q+C3kuC3gOC3kuC2qSDgtrrgt4DgtrEg4La04La74LeS4Lav4LeSIOC2uOC3meC2seC3iiDgtrjgt4Dgt4/gtrTgt5Hgtrjgtqcg4LeE4LedIOC3hOC3kuC2uOC3kuC2muC2u+C3lOC2nOC3miDgtoXgtrHgt5Tgtq/gt5DgtrHgt5Tgtrjgtprgt5LgtrHgt4og4Lat4Lec4La74LeAIOC3g+C3kuC2r+C3iuC2sOC3kiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4La94LeQ4La24LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlQ2FsZW5kYXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyMzI0NDY5NDk2MzI3MjQ5Mzc2Ij4i4LaU4La24Lac4LeaIOC2uuC3hOC3heC3lOC3gOC2seC3iiDgt4Tgt50g4LeD4La44Laa4LeP4La94LeT4Lax4La64Lax4LeKIOC2h+C2reC3lOC3heC2reC3iiDgtpTgtrbgtpzgt5og4Lav4LeU4La74Laa4Lau4Lax4La64LeaIOC2lOC2tuC2pyDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeFIOC3hOC3kOC2muC3kiDgt4Pgt5Lgtq/gt5Qg4LeA4LeT4La44LeKIOC2keC2muC2reC3lCDgtprgt5Lgtrvgt5PgtrjgtqcsIOC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5PgtrjgtqcsIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uOC2nOC3kuC2seC3iiDgtq/gt5LgtrEg4Lav4La74LeK4LeB4LaxIOC3hOC3kuC2uOC3kuC2muC2u+C3lOC3gOC2seC3iuC2nOC3meC2seC3iiDgtrTgt5Dgtrjgt5Lgtqvgt5ngtrEg4LeD4LeaIOC2tOC3meC2seC3meC2sSDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La64LeQ4LeA4LeT4La44LanIOC3hOC3nSDgt4Tgt5Lgtrjgt5Lgtprgtrvgt5Tgtpzgt5og4Lav4LeQ4Lax4LeU4La44Laa4LeS4Lax4LeKIOC2reC3nOC2u+C3gCDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt4og4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc01vY2tMb2NhdGlvbiIgbXNnaWQ9Ijg2ODgzMzQ5NzQwMzY4MjMzMzAiPiLgtrTgtrvgt5Pgtprgt4rgt4Lgtqsg4LeD4Laz4LeE4LePIOC2huC2r+C2u+C3iuC3gSDgt4Pgt4rgtq7gt4/gtrEg4La44LeW4La94LeP4LeB4LeK4oCN4La7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTW9ja0xvY2F0aW9uIiBtc2dpZD0iNTgwODcxMTAzOTQ4MjA1MTgyNCI+IuC2tOC2u+C3k+C2muC3iuC3guC2q+C2uuC2pyDgt4Dgt4rigI3gtrrgt4/gtqIg4LeD4LeK4Lau4LeP4LaxIOC2uOC3luC2veC3j+C3geC3iuKAjeC2uyDgt4Pgt4/gtq/gtrHgt4rgtrEg4LeE4LedIOC2seC3gCDgt4Pgt4rgtq7gt4/gtrEg4LeD4LeQ4La04La64LeU4La44LeK4Laa4La74LeU4LeA4LeZ4Laa4LeUIOC3g+C3iuC2ruC3j+C2tOC2seC2uiDgtprgtrvgtrHgt4rgtrEuIEdQUyDgt4Tgt50g4LeD4LeK4Lau4LeP4LaxIOC3g+C3kOC2tOC2uuC3lOC2uOC3iuC2muC2u+C3lOC3gOC2seC3iiDgtobgtq/gt5Mg4LeA4LeZ4Lax4Lat4LeKIOC3g+C3iuC2ruC3j+C2sSDgtrjgt5bgtr3gt4/gt4Hgt4rigI3gtrsg4LeA4LeS4LeD4LeS4Lax4LeKIOC2veC2tuC3jyDgtq/gt5ngtrEg4LeD4LeK4Lau4LeP4Lax4La6IOC3g+C3hC/gt4Tgt50g4Lat4Lat4LeK4LeA4La6IOC2tOC3iuKAjeC2u+C2reC3kuC3g+C3iuC2ruC3j+C2tOC2seC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2uOC3meC2uiDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTG9jYXRpb25FeHRyYUNvbW1hbmRzIiBtc2dpZD0iMjgzNjMwODA3NjcyMDU1MzgzNyI+IuC2heC2uOC2reC2uyDgt4Pgt4rgtq7gt4/gtrEg4LeD4LeQ4La04La64LeU4La44LeK4Laa4La74LeUIOC3gOC3kuC2sOC3j+C2sSDgt4Dgt5ngtq0g4La04LeK4oCN4La74LeA4Lea4LeBIOC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0xvY2F0aW9uRXh0cmFDb21tYW5kcyIgbXNnaWQ9IjU5NDUxNjY2NDIzMzU4MDA3NjMiPiLgtoXgtrjgtq3gtrsg4LeD4LeK4Lau4LeP4LaxIOC3g+C3kOC2tOC2uuC3lOC2uOC3iuC2muC2u+C3lCDgt4Dgt5LgtrDgt4/gtrEg4LeA4LeZ4LatIOC2tOC3kuC3gOC3kuC3g+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4gR1BTIOC3hOC3nSDgt4Dgt5ngtrHgtq3gt4og4LeD4LeK4Lau4LeP4LaxIOC2uOC3luC2veC3j+C3geC3iuKAjeC2uyDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4Dgtr3gt5Ig4LeA4LeZ4LatIOC2tuC3j+C2sOC3jyDgtprgt5Lgtrvgt5Pgtrjgtqcg4La44LeZ4La6IOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnN0YWxsTG9jYXRpb25Qcm92aWRlciIgbXNnaWQ9IjY1NzgxMDExOTk4MjUxOTM4NzMiPiLgt4Pgt4rgtq7gt4/gtrEg4LeD4LeQ4La04La64LeU4La44LeK4Laa4La74LeU4LeA4LeZ4Laa4LeUIOC3g+C3iuC2ruC3j+C2tOC2seC2uuC2pyDgtoXgt4Dgt4Pgtrvgtrog4Lav4LeZ4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaW5zdGFsbExvY2F0aW9uUHJvdmlkZXIiIG1zZ2lkPSI5MDY2MTQ2MTIwNDcwNTkxNTA5Ij4i4La04La74LeT4Laa4LeK4LeC4Lar4La64LanIOC3gOC3iuKAjeC2uuC3j+C2oiDgt4Pgt4rgtq7gt4/gtrEg4La44LeW4La94LeP4LeB4LeK4oCN4La7IOC3g+C3j+C2r+C2seC3iuC2sSDgt4Tgt50g4Lax4LeAIOC3g+C3iuC2ruC3j+C2sSDgt4Pgt5DgtrTgtrrgt5Tgtrjgt4rgtprgtrvgt5Tgt4Dgt5ngtprgt5Qg4LeD4LeK4Lau4LeP4La04Lax4La6IOC2muC2u+C2seC3iuC2sS4gR1BTIOC3hOC3nSDgt4Pgt4rgtq7gt4/gtrEg4LeD4LeQ4La04La64LeU4La44LeK4Laa4La74LeU4LeA4Lax4LeKIOC2huC2r+C3kyDgt4Dgt5ngtrHgtq3gt4og4LeD4LeK4Lau4LeP4LaxIOC2uOC3luC2veC3j+C3geC3iuKAjeC2uyDgt4Dgt5Lgt4Pgt5LgtrHgt4og4La94La24LePIOC2r+C3meC2sSDgt4Pgt4rgtq7gt4/gtrHgtrog4LeD4LeEL+C3hOC3nSDgtq3gtq3gt4rgtq3gt4rgt4Dgtrog4La04LeK4oCN4La74Lat4LeS4LeD4LeK4Lau4LeP4La04Lax4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4La44LeZ4La6IOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSIxMTkxODk4MDYxOTY1MjczMzcyIj4i4Lax4LeS4LeA4LeQ4La74Lav4LeSIOC3g+C3iuC2ruC3j+C2seC2uiAoR1BTIOC3g+C3hCDgtqLgt4/gtr3gtrog4La04Lav4Lax4La44LeKIOC2muC2u+C2nOC2reC3iikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NGaW5lTG9jYXRpb24iIG1zZ2lkPSI1Mjk1MDQ3NTYzNTY0OTgxMjUwIj4i4Lac4Led4La94LeT4La6IOC3g+C3iuC2ruC3j+C2seC3k+C2uiDgtrTgtq/gt4rgtrDgtq3gt5LgtrogKEdQUykg4LeE4LedIOC3g+C3meC2veC3iiDgtprgt5Tgt4Xgt5Tgtqvgt5Qg4LeD4LeEIFdpLUZpIOC3gOC3kOC2seC3kiDgtqLgt4/gtr0g4LeD4LeK4Lau4LeP4Lax4LeT4La6IOC2tOC3iuKAjeC2u+C2t+C3gCDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4LaU4La24Lac4LeaIOC2seC3kuC3gOC3kOC2u+C2r+C3kiDgt4Pgt4rgtq7gt4/gtrHgtrog4La94La24LeP4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uCDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4La94LanIOC3g+C3iuC2ruC3j+C2seC3k+C2uiDgt4Pgt5rgt4Dgt48g4La34LeP4LeA4LeS4Lat4LePIOC2muC3kuC2u+C3k+C2uOC2pyAg4LaS4LeA4LePIOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgt4Dgt5Lgtrog4La64LeU4Lat4LeUIOC3gOC3mi4g4LaU4La24LeAIOC3g+C3nOC2uuC3jyDgtpzgt5DgtrHgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LeKIOC2uOC3meC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4La74LaxIOC2heC2reC2uyDgtoXgtrjgtq3gtrsg4La24LeQ4Lan4La74LeSIOC2tuC2veC2uuC2muC3iuC2ryDgtrTgtrvgt5Lgtrfgt53gtqLgtrHgtrog4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSI0ODg3ODk1MzYyMzU0MjM5NjI4Ij4i4LaG4LeD4Lax4LeK4Lax4Lat4La4IOC3g+C3iuC2ruC3j+C2seC2uiAo4Lai4LeP4La94La6LeC2tOC3j+C2r+C2miDgt4Dgt5YpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzQ29hcnNlTG9jYXRpb24iIG1zZ2lkPSIyNTM4MjAwMTg0MzczMzAyMjk1Ij4i4LaU4La24Lac4LeaIOC2r+C3hSDgt4Pgt4rgtq7gt4/gtrHgtrog4La94La24LeP4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4PgtrHgt4rgtrHgt5rgt4Dgt5rgtq/gtrEg4Laa4LeU4LeF4LeU4Lar4LeUIOC3g+C3hCBXaS1GaSDgtobgtq/gt5Mg4Lai4LeP4La9IOC3g+C3iuC2ruC3j+C2sSDgtrjgt5bgtr3gt4/gt4Hgt4rigI3gtrsg4La34LeP4LeA4LeS4LatIOC2muC2u+C2sSDgt4Pgt4rgtq7gt4/gtrEg4LeD4Lea4LeA4LePIOC3gOC3kuC3g+C3kuC2seC3iiDgtrjgt5ngtrgg4LeD4LeK4Lau4LeP4Lax4La6IOC3gOC3iuKAjeC2uuC3lOC2reC3iuC2tOC2seC3iuC2sSDgtprgtrsg4LaH4LatLiDgtrrgt5ngtq/gt5Tgtrjgtqcg4La34LeP4LeA4LeS4Lat4La6IOC3g+C2s+C3hOC3jyDgtrjgt5ngtrgg4LeD4LeK4Lau4LeP4LaxIOC3g+C3muC3gOC3jyDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4Laa4LeFIOC2uuC3lOC2reC3lCDgtoXgtq3gtrsg4LaU4La24Lac4LeaIOC2i+C2tOC3j+C2guC2nOC2uiDgt4PgtrPgt4Tgt48g4La04LeQ4LeA4Lat4LeS4La6IOC2uuC3lOC2reC3lOC2ui4g4LaU4La2IOC3g+C3kuC2p+C3kuC2sSDgtq3gt5DgtrEg4Lav4LeF4LeAIOC3hOC2s+C3lOC2seC3jyDgtpzgt5DgtrHgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LeKIOC3gOC2veC2pyDgtrjgt5ngtrog4La34LeP4LeA4LeS4LatIOC2muC3hSDgt4Tgt5Dgtprgt5LgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjIzNjM5Njk2NDE3OTIzODg5NDciPiJTdXJmYWNlRmxpbmdlciDgt4Dgt5ngtq0g4La04LeK4oCN4La74LeA4Lea4LeB4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4iU3VyZmFjZUZsaW5nZXIg4La04LeE4La9IOC2uOC2p+C3iuC2p+C2uOC3miDgt4Dgt5Lgt4Hgt5rgt4Lgt4/gtoLgtpwg4La34LeP4LeA4LeS4Lat4La64LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+IuC2u+C3j+C2uOC3lCDgtoXgtrHgt4rgtq3gtrvgt4/gtqDgtrog4Laa4LeS4La64LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IuC2u+C3j+C2uOC3lCDgtoXgtrHgt4rgtq3gtrvgt4/gtqDgtrrgtrHgtrrgt5ngtrHgt4og4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La64Lax4LeKIOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJJbnB1dEZsaW5nZXIg4LeA4LeZ4LatIOC2tOC3kuC3gOC3kuC3g+C3meC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJJbnB1dEZsaW5nZXIg4La04LeE4La9IOC2uOC2p+C3iuC2p+C2uOC3miDgt4Dgt5Lgt4Hgt5rgt4Lgt4/gtoLgtpwg4La34LeP4LeA4LeS4Lat4La64LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4iV2lmaSDgt4PgtoLgtq/gtrvgt4rgt4Hgtpog4LeA4LeS4Lax4LeK4oCN4La64LeP4LeDIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IuC3gOC3kuC2seC3iuKAjeC2uuC3j+C3gyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeEIFdpZmkg4LeD4LaC4Lav4La74LeK4LeB4LaaIOC3gOC3meC2rSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4iV2lmaSDgt4PgtoLgtq/gtrvgt4rgt4Hgtpog4La04LeP4La94Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iNDU0MzkxMjI5MjY4MTgyNjk4NiI+IldpZmkg4LeD4LaC4Lav4La74LeK4LeB4Laa4La64LeaIOC2tOC3hOC3hSDgtrjgtqfgt4rgtqfgtrjgt5og4LeA4LeS4LeB4Lea4LeC4LeP4LaC4LacIOC2tOC3j+C2veC2seC2uuC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjY4NTcxMzQ0OTg0MDIzNDY3MDgiPiLgt4Hgtrbgt4rgtq8g4La04LeK4oCN4La74Lat4LeS4Lav4LeP4Lax4La6IOC2nOC3iuKAjeC2u+C3hOC2q+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjYyMTA1OTc3NTQyMTIyMDg4NTMiPiLgtrrgt5ngtq/gt5Tgtrjgtqcg4LeB4La24LeK4LavIOC2tOC3iuKAjeC2u+C2reC3kuC2r+C3j+C2seC2uiDgtpzgt4rigI3gtrvgt4Tgtqvgtrog4Laa4La7IOC3hOC2u+C3gOC3jyDgtrrgt5Dgt4Dgt5Pgtrjgtqcg4LaJ4LapIOC2r+C3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjIyNDY4Mjg3NzM1ODkwOTQwMjMiPiLgt4Dgt5Pgtqngt5Lgtrrgt50g4La04LeK4oCN4La74Lat4LeS4Lav4LeP4Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMzU5NDgxNjU4MDM0MTQ5ODYwIj4i4La64LeZ4Lav4LeU4La44LanIOC3gOC3k+C2qeC3kuC2uuC3nSDgtrTgt4rigI3gtrvgtq3gt5Lgtq/gt4/gtrHgtrog4Lac4LeK4oCN4La74LeE4Lar4La6IOC2muC2uyDgt4Tgtrvgt4Dgt48g4La64LeQ4LeA4LeT4La44LanIOC2ieC2qSDgtq/gt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlU2VjdXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSI3ODE1Mzk4OTY5MzAzMzgyMDE2Ij4i4LaG4La74Laa4LeK4oCN4LeC4LeS4LatIOC3gOC3k+C2qeC3kuC2uuC3nSDgtrTgt4rigI3gtrvgtq3gt5Lgtq/gt4/gtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlU2VjdXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIyNzc5NzkzMDY0NzA5MzUwMjg5Ij4i4La64LeZ4Lav4LeU4La44LanIOC2huC2u+C2muC3iuKAjeC3guC3kuC2rSDgt4Dgt5Pgtqngt5Lgtrrgt50g4La04LeK4oCN4La74Lat4LeS4Lav4LeP4Lax4La6IOC2nOC3iuKAjeC2u+C3hOC2q+C2uiDgtprgtrsg4LeE4La74LeA4LePIOC2uuC3kOC3gOC3k+C2uOC2pyDgtongtqkg4Lav4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjYwOTU4NTk5MzcwNjkxNDYwODYiPiLgtpTgtrbgtpzgt5og4LeB4LeK4oCN4La74LeA4LeK4oCN4La6IOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5QXVkaW9TZXR0aW5ncyIgbXNnaWQ9IjM1MjI1NjUzNjY4MDYyNDg1MTciPiLgt4Hgtrbgt4rgtq/gtrog4LaG4Lav4LeTIOC2nOC3neC2veC3k+C2uiDgt4Hgtrbgt4rgtq8g4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeEIOC2tOC3iuKAjeC2u+C2reC3kuC2r+C3j+C2seC2uiDgt4PgtrPgt4Tgt48g4La34LeP4LeA4LeS4LatIOC2muC2u+C2seC3iuC2seC3miDgtprgt5TgtrjgtrEg4Lax4LeP4Lav4Laa4La6IOC2r+C3kOC2uuC3kiDgtq3gt5rgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWNvcmRBdWRpbyIgbXNnaWQ9IjM4NzYwNDk3NzE0Mjc0NjYzMjMiPiLgt4Hgtrbgt4rgtq8g4La04Lan4LeS4Lac4LatIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlY29yZEF1ZGlvIiBtc2dpZD0iNDkwNjgzOTMwMTA4Nzk4MDY4MCI+IuC2uOC2uuC3kuC2muC3iuKAjeC2u+C3nOC3huC3neC2seC2uiDgtrjgtp/gt5LgtrHgt4og4LeB4La24LeK4LavIOC2tOC2p+C3kuC2nOC2rSDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4La44Laf4LeS4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgtpXgtrHgt5Hgtrgg4LeA4Lea4La94LeP4LeA4LaaIOC2lOC2tuC2nOC3miDgtoXgtrHgt5Tgtq/gt5DgtrHgt5Tgtrjgtprgt5LgtrHgt4og4Lat4Lec4La74LeAIOC3geC2tuC3iuC2ryDgtrTgtqfgt5Lgtpzgtq0g4Laa4LeS4La74LeT4La44LanIOC2ieC2qSDgtr3gtrbgt48g4Lav4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FtZXJhIiBtc2dpZD0iMzYxNjM5MTkxOTU1OTc1MTE5MiI+IuC2tOC3kuC2seC3iuC2reC3luC2uyDgt4Pgt4Qg4LeA4LeT4Lap4LeS4La64LedIOC2nOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbWVyYSIgbXNnaWQ9Ijg0OTcyMTY1MjQ3MzU1MzUwMDkiPiLgtprgt5Dgtrjgtrvgt4/gt4Dgt5ngtrHgt4og4La04LeS4Lax4LeK4Lat4LeW4La7IOC2nOC3kOC2seC3k+C2uOC2pyDgt4Pgt4Qg4LeA4LeT4Lap4LeS4La64LedIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uiDgtrjgtp/gt5LgtrHgt4og4LaU4La24Lac4LeaIOC2heC2seC3lOC2r+C3kOC2seC3lOC2uOC2muC3kuC2seC3iiDgtq3gt5zgtrvgt4Ag4LaV4Lax4LeR4La4IOC3gOC3muC2veC3j+C3gOC2muC2r+C3kyDgtprgt5Dgtrjgtrvgt4/gt4Ag4La34LeP4LeA4LeS4Lat4LePIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbWVyYURpc2FibGVUcmFuc21pdExlZCIgbXNnaWQ9IjI2NTEwNzI2MzA1MDExMjYyMjIiPiLgtprgt5Dgtrjgtrvgt4/gt4Ag4La34LeP4LeA4LeS4Lat4La64Lea4Lav4LeTIExFRCDgtq/gtrvgt4rgt4Hgtpog4LeD4La44LeK4La04LeK4oCN4La74Lea4LeC4Lar4La6IOC2heC2tuC2vSDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYW1lcmFEaXNhYmxlVHJhbnNtaXRMZWQiIG1zZ2lkPSI0NzY0NTg1NDY1NDgwMjk1MzQxIj4i4Laa4LeQ4La44La74LePIOC2t+C3j+C3gOC3kuC2reC2uiDgtrTgt5Lgt4Xgt5LgtrbgtrMgTEVEIOC2r+C2u+C3iuC3geC2muC2uiDgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4LeS4La74LeT4La44LanLCDgtprgtr3gt5LgtrHgt4og4La04LeS4LeE4LeS4Lan4LeU4LeA4LePIOC2h+C2reC3kiDgtrTgtq/gt4rgtrDgtq3gt5Ig4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9icmljayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjk2MTI5MjIwNTc2NDQ4ODMwNCI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uiDgt4Pgt4rgtq7gt5Lgtrvgt4Dgtrgg4LaF4La24La9IOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYnJpY2siIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MzM3ODE3MDkzMzI2MzcwNTM3Ij4i4Lav4LeU4La74Laa4Lau4Lax4La6IOC3g+C3iuC2ruC3kuC2u+C3gCDgtoXgtrbgtr0g4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYnJpY2siIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQzMzQ4MTg4MDgwMDE2OTk1MzAiPiLgtrjgt5Tgt4Xgt5Qg4Lan4LeQ4La24LeK4La94Lan4La64La4IOC3g+C3iuC2ruC3kuC2u+C3gOC2uCDgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngtrog4LaJ4Lat4LePIOC2t+C2uuC3j+C2seC2muC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19icmljayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3ODg5MDMyOTc2MjcyODMwOTkiPiLgtrjgt5Tgt4Xgt5Qg4Lav4LeU4La74Laa4Lau4Lax4La64La4IOC3g+C3iuC2ruC3kuC2u+C3gOC2uCDgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtrjgt5ngtrog4LaJ4Lat4LePIOC2t+C2uuC3j+C2seC2muC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYm9vdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzQzNjYzNDk3MjU2MTc5NTAwMiI+IuC2p+C3kOC2tuC3iuC2veC2p+C3iiDgtrHgt5Dgt4Dgtq0g4La04LarIOC2nOC3kOC2seC3iuC3gOC3k+C2uOC2pyDgtrbgtr0g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWJvb3QiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIyODk4NTYwODcyNDYyNjM4MjQyIj4i4Lav4LeU4La74Laa4Lau4LaxIOC2seC3kOC3gOC2rSDgtrTgtqsg4Lac4LeQ4Lax4LeK4LeA4LeT4La44LanIOC2tuC2vSDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWJvb3QiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgxNzIwNTYxODAwNjM3MDA3NDEiPiLgtqfgt5Dgtrbgt4rgtr3gtqfgtrog4Lax4LeQ4LeA4LatIOC2tuC2vSDgtpzgt5DgtrHgt4rgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVib290IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTMyNjAwODEyNDI4OTk4OTk2OSI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uiDgtrHgt5Dgt4Dgtq0g4LaH4La74La54LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfdW5tb3VudF9maWxlc3lzdGVtcyIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIyOTI3MzYxNTM3OTQyNTkxODQxIj4iVVNCIOC2huC2oOC2uuC2seC2uiDgtpzgt5zgtrHgt5Qg4La04Lav4LeK4Law4Lat4LeS4La6IOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0NDAyMzA1MDQ5ODkwOTUzODEwIj4iU0Qg4La04Lat4LeKIOC2nOC3nOC2seC3lCDgtrTgtq/gt4rgtrDgtq3gt5Lgtrog4La04LeK4oCN4La74LeA4Lea4LeBIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdW50X3VubW91bnRfZmlsZXN5c3RlbXMiIG1zZ2lkPSIxODI5MjkwNzAxNjU4OTkyMzQ3Ij4i4LaJ4LeA4Lat4LeKIOC2muC3hSDgt4Tgt5Dgtprgt5Ig4LaG4Lag4La64Lax4La6IOC3g+C2s+C3hOC3jyDgtpzgt5zgtrHgt5Qg4La04Lav4LeK4Law4Lat4LeSIOC2iOC2s+C3k+C2uOC2pyDgt4Pgt4Qg4Lac4LeQ4La94LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyMjc4MTk1ODI2MjQ5MDQ5NzIiPiJVU0Ig4LaG4Lag4La64Lax4La6IOC2uOC2muC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW91bnRfZm9ybWF0X2ZpbGVzeXN0ZW1zIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjYyNTgyNjk4NjM5Mjc0MDU2Ij4iU0Qg4La04LatIOC2uOC2muC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vdW50X2Zvcm1hdF9maWxlc3lzdGVtcyIgbXNnaWQ9Ijg3ODQyNjgyNDY3NzkxOTg2MjciPiLgtongt4Dgtq3gt4og4Laa4LeFIOC3hOC3kOC2muC3kiDgtobgtqDgtrrgtrEg4LeG4Led4La44LeQ4Lan4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfYWNjZXNzIiBtc2dpZD0iMzQxMTMzODYzMjAwMjE5Mzg0NiI+IuC2heC2t+C3iuKAjeC2uuC2seC3iuC2reC2uyDgtobgtqDgtrrgtrHgtrog4La04LeS4LeF4LeS4La24LazIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtr3gtrbgt48g4Lac4LeQ4Lax4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19hY2Nlc3MiIG1zZ2lkPSIzMDk0NTYzODQ0NTkzODc4NTQ4Ij4i4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2huC2oOC2uuC2seC2uuC3miDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4La94La24LeP4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYXNlY19jcmVhdGUiIG1zZ2lkPSI2NDE0NzU3MjM0Nzg5MzM2MzI3Ij4i4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2huC2oOC2uuC2seC2uiDgtrHgt5Lgtrvgt4rgtrjgt4/gtqvgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hc2VjX2NyZWF0ZSIgbXNnaWQ9IjQ1NTg4NjkyNzM1ODU4NTY4NzYiPiLgtoXgtrfgt4rigI3gtrrgtrHgt4rgtq3gtrsg4LaG4Lag4La64Lax4La6IOC3g+C3kOC2r+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjUyNjkyODMyODMwMTYxODAyMiI+IuC2heC2t+C3iuKAjeC2uuC2seC3iuC2reC2uyDgtobgtqDgtrrgtrHgtrog4LeA4LeS4Lax4LeP4LeBIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FzZWNfZGVzdHJveSIgbXNnaWQ9IjcyMTg3NDkyODYxNDU1MjY1MzciPiLgtoXgtrfgt4rigI3gtrrgtrHgt4rgtq3gtrsg4LaG4Lag4La64Lax4La6IOC3gOC3kuC2seC3j+C3gSDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX21vdW50X3VubW91bnQiIG1zZ2lkPSI4ODc3OTk4MTAxOTQ0OTk5Mzg2Ij4i4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2huC2oOC2uuC2seC2uiDgtrHgtoLgt4Dgt5Pgtrgv4Lac4LeQ4La94LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19tb3VudF91bm1vdW50IiBtc2dpZD0iMzQ1MTM2MDExNDkwMjQ5MDkyOSI+IuC2heC2t+C3iuKAjeC2uuC2seC3iuC2reC2uyDgtobgtqDgtrrgtrHgtrog4LeD4LeA4LeSIOC2muC3kuC2u+C3k+C2uOC2py/gtpzgt5Dgtr3gt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hc2VjX3JlbmFtZSIgbXNnaWQ9Ijc0OTY2MzM5NTQwODA0NzI0MTciPiLgtoXgtrfgt4rigI3gtrrgtrHgt4rgtq3gtrsg4LaG4Lag4La64Lax4La6IOC2seC3kOC3gOC2rSDgtrHgtrjgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYXNlY19yZW5hbWUiIG1zZ2lkPSIxNzk0NzU3NTg4NDcyMTI3Njc1Ij4i4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2huC2oOC2uuC2seC2uiDgtrHgt5Dgt4Dgtq0g4Lax4La44LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3ZpYnJhdGUiIG1zZ2lkPSI3Njk2NDI3MDI2MDU3NzA1ODM0Ij4i4Laa4La44LeK4La04Lax4La6IOC2tOC3j+C2veC2seC2uiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY192aWJyYXRlIiBtc2dpZD0iNjI4NDk4OTI0NTkwMjMwMDk0NSI+IuC2muC2uOC3iuC2tOC2muC2uiDgtrTgt4/gtr3gtrHgtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9mbGFzaGxpZ2h0IiBtc2dpZD0iMjE1NTkyMDgxMDEyMTk4NDIxNSI+IuC3g+C3kOC2q+C3meC3heC3kiDgtobgtr3gt53gtprgtrog4La04LeP4La94Lax4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZsYXNobGlnaHQiIG1zZ2lkPSI2NTIyMjg0Nzk0NTY4MzY4MzEwIj4i4LeD4LeQ4Lar4LeZ4LeF4LeS4La6IOC2tOC3j+C2veC2seC2uuC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZVVzYiIgbXNnaWQ9IjExMTM0NTM0MzA2NDU0MDI3MjMiPiJVU0Ig4LaL4La04LeP4LaC4LacIOC3g+C2s+C3hOC3jyDgtprgt5Dgtrjgt5Dgtq3gt4rgtq0g4LeD4LeEIOC2heC3gOC3g+C2uyDgtprgt4XgtrjgtrHgt4/gtprgtrvgtqvgtrog4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlVXNiIiBtc2dpZD0iNzc3NjE1NTQzMDIxODIzOTgzMyI+IlVTQiDgtovgtrTgt4/gtoLgtpwg4LeD4Laz4LeE4LePIOC2heC2t+C3kuC2u+C3lOC2oOC3kiDgt4Pgt4Qg4LaF4LeA4LeD4La7IOC2muC3heC2uOC2seC3j+C2muC2u+C2q+C2uuC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc010cCIgbXNnaWQ9IjQ5NTM0Njg2NzY3OTU5MTcwNDIiPiJNVFAg4La04LeK4oCN4La74Lec4Lan4Lec4Laa4Led4La94La6IOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2reC3iuC2uOC2miDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NNdHAiIG1zZ2lkPSI2NTMyOTYxMjAwNDg2NzkxNTcwIj4iTVRQIFVTQiDgtrTgt4rigI3gtrvgt5zgtqfgt53gtprgt53gtr3gtrog4Laa4LeK4oCN4La74LeS4La64LeP4Lat4LeK4La44LaaIOC2muC3kuC2u+C3k+C2uOC2pyDgtprgtrvgt4rgtrHgtr0gTVRQIOC2sOC3j+C3gOC2muC2uuC2pyDgtrTgt4rigI3gtrvgt4Dgt5rgt4Eg4LeA4LeT4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9oYXJkd2FyZV90ZXN0IiBtc2dpZD0iNDE0ODI5MDg2MDQwMDY1OTE0NiI+IuC2r+C3mOC2qeC3j+C2guC2nCDgtrTgtrvgt5Pgtprgt4rgt4Lgtqvgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfaGFyZHdhcmVfdGVzdCIgbXNnaWQ9IjY1OTc5NjQxOTEyMDgwMTY2MDUiPiLgtq/gt5jgtqngt4/gtoLgtpwg4La04La74LeT4Laa4LeK4LeC4LePIOC2muC3kuC2u+C3k+C2uOC3miDgtoXgtrvgtrjgt5Tgtqsg4LeD4Laz4LeE4LePIOC2uuC3meC2r+C3lOC2uOC2pyDgt4Dgt5Lgt4Dgt5LgtrAg4La04La74LeK4La64Lax4LeK4LatIOC2tOC3j+C2veC2seC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhbGxQaG9uZSIgbXNnaWQ9IjM5MjU4MzYzNDc2ODE4NDc5NTQiPiLgtq/gt5Tgtrvgtprgtq7gtrEg4LaF4LaC4LaaIOC3gOC3meC2rSDgto3gtqLgt5Tgt4Dgtrgg4LaF4La44Lat4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FsbFBob25lIiBtc2dpZD0iMzc0MDc5NzU3NjExMzc2MDgyNyI+IuC2lOC2tuC2nOC3miDgtrjgt5Dgtq/gt5Lgt4Tgtq3gt4og4LeA4LeT4La44Laa4LeKIOC2seC3nOC2uOC3kOC2reC3kuC3gCDgtq/gt5Tgtrvgtprgtq7gtrEg4LaF4LaC4LaaIOC2h+C2uOC2reC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4LeE4LeSIOC2tOC3iuKAjeC2u+C2reC3kuC2keC2veC2uiDgt4DgtrHgt4rgtrHgt5og4LaF4Lax4La04Lea4Laa4LeK4LeC4LeS4LatIOC2heC2uuC2muC3kuC2u+C3k+C2uOC3iiDgt4Tgt50g4LaH4La44Lat4LeU4La44LeKIOC2h+C2reC3kuC3gOC3k+C2uOC2uuC3ki4g4La44LeZ4La64Lax4LeKIOC3hOC2r+C3kuC3g+C3kiDgtoXgtoLgtpog4LeA4La94LanIOC2h+C2uOC2reC3lOC2uOC3iiDgtpzgt5DgtrHgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtrHgt5zgtq/gt5ngtrEg4La24LeA4LanIOC3g+C2p+C3hOC2seC3iiDgtprgtrvgtpzgtrHgt4rgtrEuIOC2lOC2tuC2nOC3miDgtoXgtrHgt5Tgtq/gt5DgtrHgt5Tgtrjgtprgt4og4Lax4Lec4La44LeQ4Lat4LeS4LeAIOC2h+C2uOC2reC3lOC2uOC3iiDgtpzgt5DgtrHgt5Pgtrjgt5ngtrHgt4og4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtpTgtrbgtpzgt5og4La44LeU4Lav4La94LeKIOC2seC3kuC2muC2u+C3lOC2q+C3miDgt4Dgt5Dgtrog4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FsbFByaXZpbGVnZWQiIG1zZ2lkPSI0MTk4MzQ5MjExMTA4NDk3ODc5Ij4i4LaV4Lax4LeR4La4IOC2r+C3lOC2u+C2muC2ruC2sSDgtoXgtoLgtprgtrrgtprgtqcg4LaN4Lai4LeU4LeA4La4IOC2heC2uOC2reC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhbGxQcml2aWxlZ2VkIiBtc2dpZD0iMTY4OTAyNDkwMTUwOTk5NjgxMCI+IuC2lOC2tuC2nOC3miDgtrjgt5Dgtq/gt5Lgt4Tgtq3gt4rgt4Dgt5Pgtrjgtprgt5LgtrHgt4og4Lat4Lec4La74LeAIOC3hOC2r+C3kuC3g+C3kiDgtoXgtoLgtpog4LaH4Lat4LeU4LeF4Lat4LeK4LeAIOC2leC2seC3keC2uCDgtq/gt5Tgtrvgtprgtq7gtrEg4LaF4LaC4Laa4La64Laa4LanIOC2h+C2uOC2reC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeE4Lav4LeS4LeD4LeSIOC3g+C3muC3gOC3jyDgt4Dgt5ngtq0g4LaF4Lax4LeA4LeB4LeK4oCN4La6IOC3g+C3hCDgtrHgt5Pgtq3gt5Lgtrjgtrog4Lax4Lec4LeA4LaxIOC2h+C2uOC2reC3lOC2uCDgtr3gt5Dgtrbgt5Pgtrjgtqcg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uCDgt4Pgt5Lgtq/gt5Qg4Laa4LeFIOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI0ODQyNTc2OTk0MTQ0NjA0ODIxIj4iQ0RNQSDgtqfgt5Dgtrbgt4rgtr3gtqcg4La04LeS4LeE4LeS4Lan4LeU4La4IOC3g+C3mOC2ouC3lOC3gCDgtofgtrvgtrngt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BlcmZvcm1DZG1hUHJvdmlzaW9uaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTYwNDg0ODA5NTMxNTQyMTQyNSI+IkNETUEg4Lav4LeU4La74Laa4Lau4LaxIOC2tOC3kuC3hOC3kuC2p+C3lOC2uCDgt4Pgt5jgtqLgt5Tgt4Ag4LaH4La74La54LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGVyZm9ybUNkbWFQcm92aXNpb25pbmciIG1zZ2lkPSIxOTk0MTkzNTM4ODAyMzE0MTg2Ij4i4La64LeZ4Lav4LeU4La44LanIENETUEg4La04LeK4oCN4La74Lat4LeS4La04LeP4Lav4LaxIOC2huC2u+C2uOC3iuC2tyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaJ4Lap4Lav4LeZ4Lax4LeK4LaxLiDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC2heC2seC3gOC3geC3iuKAjeC2uiDgtr3gt5ngt4MgQ0RNQSDgtrTgt4rigI3gtrvgtq3gt5LgtrTgt4/gtq/gtrEg4LaG4La74La44LeK4La3IOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9sb2NhdGlvblVwZGF0ZXMiIG1zZ2lkPSI3Nzg1NDA4MjUzMzY0MzM1NzQwIj4i4LeD4LeK4Lau4LeP4LaxIOC2uuC3j+C3gOC2reC3iuC2muC3j+C2veC3k+C2sSDgtq/gt5DgtrHgt5Tgtrjgt4rgtq/gt5Pgtrjgt4og4La04LeP4La94Lax4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2xvY2F0aW9uVXBkYXRlcyIgbXNnaWQ9IjExMjA3NDE1NTc4OTE0Mzg4NzYiPiLgt4Pgt4rgtq7gt4/gtrHgt5Pgtrog4La64LeP4LeA4Lat4LeK4Laa4LeP4La94LeS4LaxIOC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC3iiDgtrvgt5rgtqngt5Lgtrrgt53gt4Dgt5ngtrHgt4og4LeD4La24La9L+C2heC2tuC2vSDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr0g4La34LeP4LeA4LeS4Lat4La6IOC3g+C2s+C3hOC3jyDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGVja2luUHJvcGVydGllcyIgbXNnaWQ9Ijc4NTUyNTk0NjEyNjg3MzQ5MTQiPiLgtrTgt5Lgtrvgt5Lgtprgt4rgt4Pgt5Tgtrjgt4og4Lac4LeU4Lar4LeP4LaC4LacIOC3gOC3meC2rSDgtrTgt4rigI3gtrvgt4Dgt5rgt4HgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGVja2luUHJvcGVydGllcyIgbXNnaWQ9IjQwMjQ1MjY5Njg2MzAxOTQxMjgiPiLgtrTgt5Lgtrvgt5Lgtprgt4rgt4Pgt5Tgtrjgt4og4LeD4Lea4LeA4LeP4LeAIOC2uOC2nOC3kuC2seC3iiDgtovgtq3gt4rgt4Hgt4rigI3gtrvgt5rgtqvgt5Ig4Laa4LeFIOC2nOC3lOC2q+C3j+C2guC2nCDgt4Dgt5ngtq0g4Laa4LeS4La64LeA4LeT4La44LeKL+C2veC3kuC3gOC3k+C2uOC3iiDgtrTgt5Lgt4Dgt5Lgt4Pgt5Tgtrgg4LeD4Laz4LeE4LePIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeKIOC3gOC2vSDgtrfgt4/gt4Dgt5Lgtq3gtrrgtqcg4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYmluZEdhZGdldCIgbXNnaWQ9Ijc3NjkwNTMzOTAxNTg2MzQ3MSI+IuC3gOC3kuC2ouC2p+C3iiDgtq3gt53gtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kR2FkZ2V0IiBtc2dpZD0iODI2MTMyNjkzODU5OTA0OTI5MCI+IuC2muC3lOC2uOC2sSDgt4Dgt5LgtqLgtqfgtrog4Laa4LeU4La44LaxIOC2uuC3meC2r+C3lOC2uOC3meC2seC3iiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4La9IOC3hOC3kOC2muC3kuC2ryDgtrrgtrHgt4rgtrEg4La04Lav4LeK4Law4Lat4LeS4La64LanIOC2tOC3kOC3gOC3g+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uiDgtofgtq3gt5Ig4La64LeZ4Lav4LeU4La44Laa4LanIOC2heC2seC3meC2muC3iiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr3gtqcg4La04LeU4Lav4LeK4Lac4La94LeS4LaaIOC2r+C2reC3iuC2rSDgt4Dgtr3gtqcg4La04LeK4oCN4La74LeA4Lea4LeB4La6IOC2veC2tuC3jyDgtq/gt5Lgtrog4LeE4LeQ4LaaLiDgt4Pgt4/gtrjgt4/gtrHgt4rigI3gtrog4La64LeZ4Lav4LeU4La44LeKIOC3gOC2vSDgtrfgt4/gt4Dgt5Lgtq3gtrrgtqcg4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfbW9kaWZ5UGhvbmVTdGF0ZSIgbXNnaWQ9Ijg0MjM5MjM3Nzc2NTkyOTIyMjgiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrrgt5og4Lat4Lat4LeK4LeA4La6IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tb2RpZnlQaG9uZVN0YXRlIiBtc2dpZD0iMTAyOTg3NzUyOTAwNzY4NjczMiI+IuC2i+C2tOC3j+C2guC2nOC2uuC3miDgtq/gt5Tgtrvgtprgtq7gtrEg4LeA4LeS4LeB4Lea4LeC4LeP4LaC4LacIOC2tOC3j+C2veC2seC2uuC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uiDgtofgtq3gt5Ig4La64LeZ4Lav4LeU4La44LanIOC2lOC2tuC2pyDgtrHgt5Lgt4Dgt5rgtq/gtrHgtrrgt5ngtrHgt4og4Lat4Lec4La74LeAIOC2ouC3j+C2vSDgtrjgt4/gtrvgt5Qg4Laa4LeS4La74LeT4La4LCDgtq/gt5Tgtrvgtprgtq7gtrEg4La74Lea4Lap4LeS4La64Led4LeAIOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgt4Pgt4Qg4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uCDgtprgt4Ug4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFBob25lU3RhdGUiIG1zZ2lkPSI5MTc4MjI4NTI0NTA3NjEwNDg2Ij4i4Lav4LeU4La74Laa4Lau4Lax4La64LeaIOC2reC2reC3iuC3gOC2uiDgt4Pgt4Qg4LaF4Lax4Lax4LeK4oCN4La64Lat4LeP4LeA4La6IOC2muC3kuC2uuC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRQaG9uZVN0YXRlIiBtc2dpZD0iMTYzOTIxMjc3MTgyNjEyNTUyOCI+IuC2i+C2tOC3j+C2guC2nOC2uuC3miDgtq/gt5Tgtrvgtprgtq7gtrEg4LeA4LeS4LeB4Lea4LeC4LeP4LaC4LacIOC3gOC3meC2rSDgtrTgt5Lgt4Dgt5Lgt4Pgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2h+C2uOC2reC3lOC2uCDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4LeA4LeU4LeA4Lat4LeKIOC3g+C3hCDgtofgtrjgtq3gt5Tgtrjgtprgt5LgtrHgt4og4Lav4LeU4La74LeD4LeK4LauIOC2heC2guC2muC2uiDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeU4LeA4Lat4LeKIOC2r+C3lOC2u+C2muC2ruC2sSDgtoXgtoLgtprgtrog4LeD4LeEIOC2i+C2tOC3j+C2guC2nCBJRCDgt4TgtrPgt5TgtrHgt48g4Lac4LeQ4Lax4LeT4La44LanIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93YWtlTG9jayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUzMTczMTQzNTAxMTQ5NTAxNSI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uiDgtrHgt5LgtrHgt4rgtq/gt5ngtrHgt4og4LeA4LeQ4LeF4Laa4LeK4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93YWtlTG9jayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MzQ4MDE4Nzk0MTQ5NjEzMCI+IuC2r+C3lOC2u+C2muC2ruC2seC2uiDgtrHgt5LgtrHgt4rgtq/gtqcg4La64LeP4La44LeZ4Lax4LeKIOC3gOC3heC2muC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dha2VMb2NrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3MzExMzE5ODI0NDAwNDQ3ODY4Ij4i4Lan4LeQ4La24LeK4La94Lan4La6IOC2seC3kuC2seC3iuC2r+C2pyDgtrrgt4/gtrjgt5ngtrHgt4og4LeA4LeQ4La94LeQ4Laa4LeK4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dha2VMb2NrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODU1OTEwMDY3NzM3MjkyODc1NCI+IuC2r+C3lOC2u+C2muC2ruC2seC2uiDgtrHgt5LgtrHgt4rgtq/gtqcg4La64LeP4La44LeZ4Lax4LeKIOC3gOC3kOC2veC3kOC2muC3iuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2RldmljZVBvd2VyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNzg3MDM0NzIyNjE2MzUwNDE3Ij4i4Lan4LeQ4La24LeK4La94Lan4La6IOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgt4Tgt50g4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGV2aWNlUG93ZXIiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0OTI4NjIyNDcwOTgwOTQzMjA2Ij4i4Lav4LeU4La74Laa4Lau4Lax4La6IOC2tuC2vSDgtpzgt5DgtrHgt4rgt4Dgt5Pgtrgg4LeE4LedIOC3gOC3kOC3g+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2RldmljZVBvd2VyIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2Njg5ODYyODc4OTg0NjMxODMxIj4i4Lan4LeQ4La24LeK4La94Lan4La6IOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgt4Tgt50g4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kZXZpY2VQb3dlciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjYwMzcwNTczNDg0NjMxMzEwMzIiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrog4LeD4Laa4LeK4oCN4La74LeS4La6IOC3g+C3hCDgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZmFjdG9yeVRlc3QiIG1zZ2lkPSIzNzE1MjI1NDkyNjk2NDE2MTg3Ij4i4Laa4La74LeK4La44LeP4Lax4LeK4Lat4LeB4LeP4La94LePIOC2tOC2u+C3k+C2muC3iuC3guC2qyDgtobgtprgt4/gtrvgtrog4Lat4LeU4LeFIOC2sOC3j+C3gOC2seC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19mYWN0b3J5VGVzdCIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzk1MjA1OTMxODM1OTY1MzA5MSI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgtq/gt5jgtqngt4/gtoLgtpwg4LeA4LeZ4LatIOC3g+C2uOC3iuC2tOC3luC2u+C3iuC2qyDgtrTgt5Lgt4Dgt5Lgt4Pgt5Tgtrgg4LeD4Laz4LeE4LePIOC2heC3gOC3g+C2uyDgtq/gt5Pgtrjgt5ngtrHgt4og4La04LeE4LeFIOC2uOC2p+C3iuC2p+C2uOC3miDgtrHgt5LgtrTgt5Dgt4Dgt5Tgtrjgt4rgtprgtrvgt5Qg4La04La74LeT4Laa4LeK4LeC4Lar4La64Laa4LeKIOC2veC3meC3gyDgtrDgt4/gt4DgtrHgtrog4Laa4La74Lax4LeK4LaxLiDgtrHgt5LgtrTgt5Dgt4Dgt5Tgtrjgt4rgtprgtrvgt5Qg4La04La74LeT4Laa4LeK4LeC4LarIOC2huC2muC3j+C2u+C2uuC3meC2seC3iiDgtqfgt5Dgtrbgt4rgtr3gtqfgtrrgt5og4Law4LeP4LeA4Lax4La6IOC3gOC2sSDgt4Dgt5Lgtqcg4La04La44Lar4LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2ZhY3RvcnlUZXN0IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODEzNjY0NDk5MDMxOTI0NDgwMiI+IuC2r+C3lOC2u+C2muC2ruC2seC2uuC3miDgtq/gt5jgtqngt4/gtoLgtpwg4LeA4LeZ4LatIOC3g+C2uOC3iuC2tOC3luC2u+C3iuC2qyDgtrTgt5Lgt4Dgt5Lgt4Pgt5Tgtrgg4LeD4Laz4LeE4LePIOC2heC3gOC3g+C2uyDgtq/gt5Pgtrjgt5ngtrHgt4og4La04LeE4LeFIOC2uOC2p+C3iuC2p+C2uOC3miDgtrHgt5LgtrTgt5Dgt4Dgt5Tgtrjgt4rgtprgtrvgt5Qg4La04La74LeT4Laa4LeK4LeC4Lar4La64Laa4LeKIOC2veC3meC3gyDgtrDgt4/gt4DgtrHgtrog4Laa4La74Lax4LeK4LaxLiDgtrHgt5LgtrTgt5Dgt4Dgt5Tgtrjgt4rgtprgtrvgt5Qg4La04La74LeT4Laa4LeK4LeC4LarIOC2huC2muC3j+C2u+C2uuC3meC2seC3iiDgtq/gt5Tgtrvgtprgtq7gtrHgtrrgt5og4Law4LeP4LeA4Lax4La6IOC3gOC2sSDgt4Dgt5Lgtqcg4La04La44Lar4LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2V0V2FsbHBhcGVyIiBtc2dpZD0iNjYyNzE5MjMzMzM3MzQ2NTE0MyI+IuC2tuC3kuC2reC3lOC2tOC2rSDgt4Pgt5Dgtprgt4Pgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRXYWxscGFwZXIiIG1zZ2lkPSI3MzczNDQ3OTIwOTc3NjI0NzQ1Ij4i4La04Lav4LeK4Law4Lat4LeSIOC2tuC3kuC2reC3lOC2tOC2rSDgt4Pgt5Dgtprgt4Pgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRXYWxscGFwZXJIaW50cyIgbXNnaWQ9IjMyNzg2MDgxNjU5Nzc3MzY1MzgiPiLgtpTgtrbgtpzgt5og4La24LeS4Lat4LeU4La04Lat4LeaIOC2tOC3iuKAjeC2u+C2uOC3j+C2q+C2uiDgt4Pgt5Dgtprgt4Pgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZXRXYWxscGFwZXJIaW50cyIgbXNnaWQ9IjgyMzU3ODQzODQyMjM3MzAwOTEiPiLgtrTgtq/gt4rgtrDgtq3gt5Ig4La24LeS4Lat4LeU4La04Lat4LeaIOC2tOC3iuKAjeC2u+C2uOC3j+C2qyDgtongtp/gt5Ig4LeD4Laa4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hc3RlckNsZWFyIiBtc2dpZD0iMjMxNTc1MDQyMzEzOTY5NzM5NyI+IuC2muC2u+C3iuC2uOC3j+C2seC3iuC2reC3geC3j+C2veC3jyDgt4Pgt5TgtrTgt5Tgtrvgt5Tgtq/gt4rgtq/gtqcg4La04Lav4LeK4Law4Lat4LeS4La6IOC2seC3kOC3gOC2rSDgt4Pgtprgt4Pgt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFzdGVyQ2xlYXIiIG1zZ2lkPSIzNjY1MzgwNDkyNjMzOTEwMjI2Ij4i4LeD4LeS4La64La94LeUIOC2r+C2reC3iuC2rSDgtrjgt5Dgtprgt5Pgtrjgt5ngtrHgt4osIOC3gOC3kuC2seC3iuKAjeC2uuC3j+C3gyDgtprgt5Lgtrvgt5Pgtrjgt5ngtrHgt4og4LeD4LeEIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Pgt4rgtq7gt4/gtrTgtrHgtrrgt5ngtrHgt4og4LaR4LeE4LeSIOC2muC2u+C3iuC2uOC3j+C2seC3iuC2rSDgt4Hgt4/gtr3gt48g4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC3gOC3meC2rSDgtrTgtq/gt4rgtrDgtq3gt5Lgtrog4Lax4LeQ4LeA4LatIOC3g+C3kOC2muC3g+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFRpbWUiIG1zZ2lkPSIyMDIxNjE0ODI5NTkxNzc1NjQ2Ij4i4LeA4Lea4La94LeP4LeAIOC3g+C3kOC2muC3g+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE4OTYzNDE0MzgxNTExNTI4ODEiPiLgtqfgt5Dgtrbgt4rgtr3gtqcg4LaU4La74La94Led4LeD4LeU4LeA4LeaIOC3gOC3muC2veC3j+C3gCDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtongtqkg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxODU1NzAyNzMwNzM4MDIwIj4i4Lav4LeU4La74Laa4Lau4LaxIOC2lOC2u+C2veC3neC3g+C3lOC3gOC3miDgt4Dgt5rgtr3gt4/gt4Ag4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtprgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3NldFRpbWVab25lIiBtc2dpZD0iMjk0NTA3OTgwMTAxMzA3NzM0MCI+IuC3gOC3muC2veC3jyDgtprgtr3gt4/gtrTgtrog4LeD4LeQ4Laa4LeD4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0VGltZVpvbmUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE2NzY5ODM3MTIzMTU4Mjc2NDUiPiLgtqfgt5Dgtrbgt4rgtr3gtqfgtrrgt5og4Laa4LeP4La9IOC2muC2veC3j+C2tOC2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NldFRpbWVab25lIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDQ5OTk0MzQ4ODQzNjYzMzM5OCI+IuC2r+C3lOC2u+C2muC2ruC2seC2uuC3miDgt4Dgt5rgtr3gt48g4Laa4La94LeP4La04La6IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaL4La04LeP4LaC4Lac4La64LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2NvdW50TWFuYWdlclNlcnZpY2UiIG1zZ2lkPSI0ODI5MjYyMzQ5NjkxMzg2OTg2Ij4iQWNjb3VudE1hbmFnZXJTZXJ2aWNlIOC2veC3meC3gyDgtrTgt5ngtrHgt5Mg4LeD4LeS4Lan4LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjb3VudE1hbmFnZXJTZXJ2aWNlIiBtc2dpZD0iMTk0ODQ1NTU1MjMzMzYxNTk1NCI+IkFjY291bnRBdXRoZW50aWNhdG9ycyDgt4Dgt5ngtq0g4LaH4La44Lat4LeU4La44LeKIOC2nOC3kOC2seC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2dldEFjY291bnRzIiBtc2dpZD0iMTA4Njc5NTQ2Nzc2MDEyMjExNCI+IuC2i+C2tOC3j+C2guC2nOC2uuC3miDgtofgtq3gt5Ig4Lac4LeS4Lar4LeU4La44LeKIOC3g+C3nOC2uuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyNzQxNDk2NTM0NzY5NjYwMDI3Ij4i4Lan4LeQ4La24LeK4La94Lan4La6IOC3gOC3kuC3g+C3kuC2seC3iiDgtq/gtrHgt4rgtrHgt48g4Lac4LeS4Lar4LeU4La44LeKIOC2veC3kOC2uuC3kuC3g+C3iuC2reC3lOC3gOC2muC3iiDgtr3gtrbgt4/gtpzgt5DgtrHgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2lOC2tiDgt4Pgt4rgtq7gt4/gtrTgtrHgtrog4Laa4Lec4LanIOC2h+C2reC3kiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4LeS4LeD4LeS4Lax4LeKIOC3g+C3j+C2r+C3jyDgtofgtq3gt5Ig4Lac4LeS4Lar4LeU4La44LeKIOC2uOC3k+C2pyDgtofgtq3gt5Tgt4Xgtq3gt4og4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2dldEFjY291bnRzIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ0ODMxNjgyMjQ1MTgwNzM4MiI+IuC2r+C3lOC2u+C2muC2ruC2seC2uiDgt4Dgt5Lgt4Pgt5LgtrHgt4og4Lav4Lax4LeK4Lax4LePIOC2nOC3kuC2q+C3lOC2uOC3iiDgtr3gt5Dgtrrgt5Lgt4Pgt4rgtq3gt5Tgt4Dgtprgt4og4La94La24LeP4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtpTgtrYg4LeD4LeK4Lau4LeP4La04Lax4La6IOC2muC3nOC2pyDgtofgtq3gt5Ig4La64LeZ4Lav4LeU4La44LeKIOC3gOC3kuC3g+C3kuC2seC3iiDgt4Pgt4/gtq/gt48g4LaH4Lat4LeSIOC2nOC3kuC2q+C3lOC2uOC3iiDgtrjgt5Pgtqcg4LaH4Lat4LeU4LeF4Lat4LeKIOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2F1dGhlbnRpY2F0ZUFjY291bnRzIiBtc2dpZD0iNTI2NTkwODQ4MTE3MjczNjkzMyI+IuC2nOC3kuC2q+C3lOC2uOC3iiDgt4Pgt4/gtq/gtrHgt4rgtrEg4LeD4LeEIOC2uOC3lOC2u+C2tOC2ryDgt4Pgtprgt4PgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hdXRoZW50aWNhdGVBY2NvdW50cyIgbXNnaWQ9IjU0NzIxMjQyOTY5MDg5NzcyNjAiPiLgtpzgt5Lgtqvgt5Tgtrjgt4og4LeD4LeQ4Lav4LeT4La44LanIOC3g+C3hCDgtrvgt4Tgt4Pgt4og4La04LavIOC2veC2tuC3j+C2nOC3kOC2seC3k+C2uCDgt4Pgt4Qg4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC2muC3kuC2u+C3k+C2uCDgtofgtq3gt5Tgt4Xgtq3gt4rgt4AgQWNjb3VudE1hbmFnZXIg4Lac4LeaIOC2nOC3kuC2q+C3lOC2uOC3iiDgt4Pgtq3gt4rigI3gtrrgt4/gtrTgtrEg4LeE4LeQ4Laa4LeS4La64LeP4LeA4Lax4LeKIOC2t+C3j+C3gOC3kuC2reC3jyDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44Laa4LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYW5hZ2VBY2NvdW50cyIgbXNnaWQ9IjQ5ODMxMjYzMDQ3NTcxNzczMDUiPiLgtpzgt5Lgtqvgt5Tgtrjgt4og4LaR4Laa4Lat4LeUIOC2muC2u+C2seC3iuC2sSDgt4Tgt50g4LaJ4LeA4Lat4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21hbmFnZUFjY291bnRzIiBtc2dpZD0iODY5ODI5NTYyNTQ4ODI5MjUwNiI+IuC2nOC3kuC2q+C3lOC2uOC3iiDgtpHgtprgtq3gt5Qg4Laa4LeS4La74LeT4La4LCDgt4Pgt4Qg4LaJ4LeA4Lat4LeKIOC2muC3kuC2u+C3k+C2uCDgt4Pgt4Qg4LaU4LeA4LeU4Lax4LeK4Lac4LeaIOC2uOC3lOC2u+C2tOC2ryDgtrjgt5Dgtprgt5Pgtrgg4LaG4Lav4LeTIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C3gOC2veC3kiDgt4Pgt5Lgtq/gt5Qg4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfdXNlQ3JlZGVudGlhbHMiIG1zZ2lkPSIyMzU0ODEzOTYxNjM4Nzc2NDIiPiLgtovgtrTgt4/gtoLgtpzgtrrgt5og4LaH4Lat4LeSIOC2nOC3kuC2q+C3lOC2uOC3iiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXNlQ3JlZGVudGlhbHMiIG1zZ2lkPSI3OTg0MjI3MTQ3NDAzMzQ2NDIyIj4i4LeD4Lat4LeK4oCN4La64LeP4La04LaxIOC2p+C3neC2muC2sSDgtongtr3gt4rgtr3gt5Pgtrgg4LeD4Laz4LeE4LePIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzTmV0d29ya1N0YXRlIiBtc2dpZD0iNDk1MTAyNzk2NDM0ODk3NDc3MyI+IuC2ouC3j+C2vSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt4/gt4DgtrrgtrHgt4og4La24LeQ4La94LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzTmV0d29ya1N0YXRlIiBtc2dpZD0iODMxODk2NDQyNDY3NTk2MDk3NSI+IuC2muC3lOC2uOC2sSDgtqLgt4/gtr0g4La04LeA4Lat4LeS4Lax4LeK4Lax4LeaIOC2ryDgt4Pgt4Qg4LeD4La44LeK4La24Lax4LeK4Law4LeS4LatIOC2ryDgtobgtq/gt5Mg4Lai4LeP4La9IOC3g+C2tuC2s+C2reC3jyDgtpzgt5DgtrEg4Lat4Lec4La74Lat4LeU4La74LeUIOC2tuC3kOC2veC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NyZWF0ZU5ldHdvcmtTb2NrZXRzIiBtc2dpZD0iODAxODc1ODEzNjQwNDMyMzY1OCI+IuC3g+C2uOC3iuC2tOC3luC2u+C3iuC2qyDgtqLgt4/gtr0g4La04LeK4oCN4La74LeA4Lea4LeB4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY3JlYXRlTmV0d29ya1NvY2tldHMiIG1zZ2lkPSIzNDAzMDYyMTg3Nzc5NzI0MTg1Ij4i4LaL4La04Laa4La74Lar4La64LanIOC2ouC3j+C2vSDgtprgt5ngt4DgtrHgt5LgtrrgtrHgt4og4LeD4LeQ4Lav4LeT4La44LanIOC3g+C3hCDgtqLgt4/gtr0g4La04LeK4oCN4La74Lec4Lan4Led4Laa4Led4La9IOC2heC2t+C3kuC2u+C3lOC2oOC3kiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeS4La74LeT4La44LanIOC2i+C2tOC2muC2u+C2q+C2uuC2pyDgtongtqkg4Lav4LeZ4Lax4LeK4LaxLiDgtoXgtrHgt4rgtq3gtrvgt4rgtqLgt4/gtr3gtrrgtqcg4Lav4Lat4LeK4LatIOC2uuC3kOC3gOC3k+C2uOC2pyDgt4Dgt5LgtrDgt5LgtrrgtrHgt4og4La24LeK4oCN4La74LeA4LeK4LeD4La74La6IOC3g+C3hCDgtoXgtrHgt5ngtprgt5Tgtq3gt4og4La64LeZ4Lav4LeU4La44LeKIOC3g+C2tOC2uuC2uuC3kiwg4LaR4Lax4LeS4LeD4LePIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4Lav4Lat4LeK4LatIOC2heC2seC3iuC2reC2u+C3iuC2ouC3j+C2veC2uuC2pyDgtrrgt5Dgt4Dgt5Pgtrjgtqcg4LaF4LeA4LeB4LeK4oCN4La6IOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlQXBuU2V0dGluZ3MiIG1zZ2lkPSI1MDU2NjAxNTk2NzU3NTE4OTYiPiLgtqLgt4/gtr3gtrrgt5og4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC3g+C3hCDgtpzgtrjgtrHgt4/gtpzgtrjgtrEg4LeA4LeZ4Lax4LeD4LeKIOC2muC2u+C2seC3iuC2sS/gtoXgtr3gt4rgtr3gt48g4Lac4LeQ4Lax4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVBcG5TZXR0aW5ncyIgbXNnaWQ9IjUzMzM3OTg4ODY0MTI3MTQxOTMiPiLgtpXgtrHgt5HgtrggQVBOIOC2keC2muC2miDgtrHgt5Lgtrrgt5Tgtq3gt5Tgt4Ag4LeD4LeEIOC2reC3nOC2pyDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4IOC3gOC3kOC2seC3kiDgtqLgt4/gtr0g4LeD4LeQ4Laa4LeD4LeT4La44LeKIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeEIOC3g+C3kuC2uuC2veC3lOC2uCDgtqLgt4/gtr0g4LaF4Lat4LeU4La74LeUIOC2h+C2u+C3k+C2uOC2pyDgt4Pgt4Qg4LeD4Led4Lav4LeS4LeD4LeSIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaH4Lat4LeQ4La44LeK4LeA4LeS4LanIOC2lOC2tuC2nOC3miDgtoXgtrHgt5Tgtq/gt5DgtrHgt5Tgtrjgtprgt5LgtrHgt4og4Lat4Lec4La74LeAIOC2heC2seC3kuC3guC3iuC2pyDgtovgtrTgt4/gtoLgtpwg4Lai4LeP4La9IOC2tOC3kOC2muC3kOC2p+C3iuC2p+C3lCDgtoXgtrDgt5Pgtprgt4rgt4Lgtqvgtros4LaG4La04LeD4LeUIOC2r+C3kuC3geC3j+C2nOC2rSDgtprgt5Lgtrvgt5Pgtrgg4LeE4LedIOC3gOC3meC2seC3g+C3iuC2muC3kuC2u+C3k+C2uCDgt4Pgt5Lgtq/gt5Qg4Laa4LeS4La74LeT4La44LanIOC2ieC2qSDgtq3gt5Lgtrbgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VOZXR3b3JrU3RhdGUiIG1zZ2lkPSI5NTg4ODQyOTE0NTQzMjczMDkiPiLgtqLgt4/gtr0g4LeD4La44LeK4La24Lax4LeK4Law4Lat4LeP4LeAIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jaGFuZ2VOZXR3b3JrU3RhdGUiIG1zZ2lkPSI2Nzg5MTIzOTEyNDc2NDE2MjE0Ij4i4Lai4LeP4La9IOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3j+C3gOC2uuC3miDgtq3gtq3gt4rgt4Dgtrog4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVRldGhlclN0YXRlIiBtc2dpZD0iNTk1MjU4NDk2NDM3MzAxNzk2MCI+IuC2p+C3meC2r+C2u+C3iiDgtprgtrvgtrEg4La94LavIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3jyDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlVGV0aGVyU3RhdGUiIG1zZ2lkPSIxNTI0NDQxMzQ0NDEyMzE5NzgwIj4i4Lan4LeZ4Lav4La74LeKIOC2muC3hSDgtqLgt4/gtr0g4LeD4La44LeK4La24Lax4LeK4Law4Lat4LeP4LeA4La64LeaIOC2reC2reC3iuC3gOC2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2hhbmdlQmFja2dyb3VuZERhdGFTZXR0aW5nIiBtc2dpZD0iMTQwMDY2NjAxMjY3MTY0ODc0MSI+IuC2tOC3g+C3lOC2tuC3kuC2uOC3iiDgtq/gtq3gt4rgtq0g4La34LeP4LeA4LeS4LatIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlQmFja2dyb3VuZERhdGFTZXR0aW5nIiBtc2dpZD0iNTM0NzcyOTU3ODQ2ODc0NDM3OSI+IuC2tOC3g+C3lOC2tuC3kuC2uOC3iiDgtq/gtq3gt4rgtq0g4La34LeP4LeA4LeS4Lat4LePIOC3g+C3kOC2muC3g+C3k+C2uCDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2lmaVN0YXRlIiBtc2dpZD0iNTIwMjAxMjk0OTI0NzA0MDAxMSI+IldpLUZpIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3j+C3gOC2seC3iiDgtrbgt5Dgtr3gt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NXaWZpU3RhdGUiIG1zZ2lkPSI1MDAyNzk4MDc3Mzg3ODAzNzI2Ij4iV2ktRmkg4LeD4La24La9IOC2tuC3gCDgt4Pgt4Qg4LeD4La44LeK4La24Lax4LeK4Law4LeS4LatIFdpLUZpIOC2i+C2tOC3j+C2guC2nCDgt4Dgtr0g4Lax4La44LeKIOC2huC2r+C3kyBXaS1GaSDgtqLgt4/gtr3gtprgtrvgtqvgtrrgt5og4Lat4Lec4La74Lat4LeU4La74LeUIOC2tuC3kOC2veC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoYW5nZVdpZmlTdGF0ZSIgbXNnaWQ9IjY1NTA2NDExODg3NDkxMjgwMzUiPiJXaS1GaSDgt4Dgtr3gtqcg4LeD4La44LeK4La24Lax4LeK4LawIOC3gOC3kuC2uCDgt4Pgt4Qg4LeA4LeS4LeD4Lax4LeK4Law4LeSIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlTdGF0ZSIgbXNnaWQ9IjcxMzc5NTAyOTczODYxMjc1MzMiPiJXaS1GaSDgtrTgt4rigI3gtrvgt4Dgt5rgt4Eg4LeD4LeK4Lau4LeP4Lax4La64Lax4LeKIOC3gOC3meC2rSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeT4La44LanIOC3g+C3hCDgt4Dgt5Lgt4PgtrHgt4rgtrDgt5Ig4LeA4LeT4La44LanIOC3g+C3hCwgV2ktRmkg4Lai4LeP4La9IOC3g+C2s+C3hOC3jyDgtovgtrTgt4/gtoLgtpzgtrrgt5og4LeA4LeS4Lax4LeK4oCN4La64LeP4LeD4La64LanIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaWZpTXVsdGljYXN0U3RhdGUiIG1zZ2lkPSIxMzY4MjUzODcxNDgzMjU0Nzg0Ij4iV2ktRmkg4La24LeE4LeU4LeA4LeS4Laa4LeP4LeB4LaxIOC2tOC3kuC3heC3kuC2nOC3kOC2seC3k+C2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2lmaU11bHRpY2FzdFN0YXRlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3OTY5Nzc0MDIxMjU2MzM2NTQ4Ij4i4LaU4La24Lac4LeaIOC2p+C3kOC2tuC3iuC2veC2p+C2uuC2pyDgtrTgtrjgtqvgtprgt4og4Lax4Lec4LeAIFdpLUZpIOC2ouC3j+C2veC2uuC3miDgtofgtq3gt5Ig4LeD4LeS4La64La94LeU4La4IOC2i+C2tOC3j+C2guC2nOC3gOC2veC2pyDgtrrgt5Dgt4Dgt5Yg4La04LeQ4Laa4LeQ4Lan4LeK4Lan4LeUIOC2tuC3hOC3lCDgt4Dgt5Lgtprgt4/gt4Eg4La94LeS4La04LeS4LaxIOC2t+C3j+C3gOC3kuC2reC2uuC3meC2seC3iiDgtr3gtrbgt4/gtpzgt5DgtrHgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIG5vbi1tdWx0aWNhc3Qg4LaG4Laa4LeP4La74La64LanIOC3gOC2qeC3jyDgt4Dgt5Dgtqngt5Ig4La24La94La64Laa4LeKIOC2uOC3meC3hOC3kuC2r+C3kyDgtrfgt4/gt4Dgt5Lgtq3gt48g4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoYW5nZVdpZmlNdWx0aWNhc3RTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NTE5NDk3MDYwMjUzNDk5MjYiPiLgtpTgtrbgtpzgt5og4Lav4LeU4La74Laa4Lau4Lax4La64LanIOC2tOC2uOC2q+C2muC3iiDgtrHgt5zgt4AgV2ktRmkg4Lai4LeP4La94La64LeaIOC2h+C2reC3kiDgt4Pgt5Lgtrrgtr3gt5Tgtrgg4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2uuC3kOC3gOC3liDgtrTgt5Dgtprgt5Dgtqfgt4rgtqfgt5Qg4La24LeE4LeU4LeA4LeP4LeE4LaaIOC2veC3kuC2tOC3kuC2sSDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4La94La24LeP4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4La94LeQ4La24LeaLiDgtrbgt4Tgt5Tgt4Dgt4/gt4Tgtpog4Lax4LeQ4Lat4LeSIOC2huC2muC3j+C2u+C2uuC2pyDgt4Dgtqngt48g4LeA4LeQ4Lap4LeSIOC2tuC2veC2uuC2muC3iiDgtrjgt5ngt4Tgt5Lgtq/gt5Mg4La34LeP4LeA4LeS4Lat4LePIOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JsdWV0b290aEFkbWluIiBtc2dpZD0iNjAwNjk2NzM3MzkzNTkyNjY1OSI+IuC2tuC3iuC2veC3luC2p+C3luC2reC3iiDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4La04LeK4oCN4La74LeA4Lea4LeB4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjY5MjExNzc0NzE3NDg4ODIxMzciPiLgt4Pgt4rgtq7gt4/gtrHgt5Pgtrog4La24LeK4La94LeW4Lan4LeW4Lat4LeKIOC2p+C3kOC2tuC3iuC2veC2p+C3iuC2uuC2muC3iiDgt4Pgt5Dgtprgt4Pgt5Pgtrjgtqcg4LeD4LeEIOC3gOC3kuC2seC3iuKAjeC2uuC3j+C3gyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeEIOC2r+C3lOC2u+C3g+C3iuC2riDgtovgtrTgt4/gtoLgtpwg4LeD4La44LacIOC2uuC3lOC2nOC3hSDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoQWRtaW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4OTMxNjgyMTU5MzMxNTQyMTM3Ij4i4Lav4LeU4La74Laa4Lau4Lax4La64LeaIOC2tOC3meC2r+C3meC3g+C3kiDgtrbgt4rgtr3gt5bgtqfgt5bgtq3gt4og4LeA4LeS4Lax4LeK4oCN4La64LeP4LeDIOC2muC3kuC2u+C3k+C2uOC2pywg4LeD4LeEIOC2r+C3lOC2u+C3g+C3iuC2riDgtovgtrTgt4/gtoLgtpwg4Lac4LeA4Lea4LeC4Lar4La64LanIOC3g+C3hCDgtrrgt5Tgtpzgtr0g4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzV2ltYXhTdGF0ZSIgbXNnaWQ9IjQxOTU5MDcwMTA2MTAyMDU3MDMiPiJXaU1BWCDgt4Dgt5ngtq3gtqcg4LeD4La44LeK4La24Lax4LeK4LawIOC2muC2u+C2seC3iuC2sSDgt4Tgt50g4LeA4LeS4LeD4Lax4LeK4Law4LeSIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1dpbWF4U3RhdGUiIG1zZ2lkPSI2MzYwMTAyODc3MjYxOTc4ODg3Ij4iV2lNQVgg4LeD4La24La9IOC2tuC3gCDgt4Pgt4Qg4LeD4La44LeK4La24Lax4LeK4Law4LeS4LatIOC2leC2seC3keC2uCBXaU1BWCDgtqLgt4/gtr3gtrrgtpog4Lat4Lec4La74Lat4LeU4La74LeUIOC2seC3kuC3geC3iuC2oOC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jaGFuZ2VXaW1heFN0YXRlIiBtc2dpZD0iMjQwNTA0MjI2NzEzMTQ5NjU3OSI+IldpTUFYIOC2reC2reC3iuC3gOC2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2ltYXhTdGF0ZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzE1NjQ1NjUwNDA4NDIwMTgwNSI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uiBXaU1BWCDgtqLgt4/gtr0g4LeA4LeZ4LatIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeEIOC3gOC3kuC3g+C2seC3iuC2sOC3kiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2hhbmdlV2ltYXhTdGF0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY5NzAyNTA0MzAwNDkyMzc5OCI+IldpTUFYIOC2ouC3j+C2veC2uuC2seC3iuC2pyDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4LeD4La44LeK4La24Lax4LeK4LawIOC2muC3kuC2u+C3k+C2uOC2pyDgt4Pgt4Qg4LeA4LeS4LeD4Lax4LeK4Law4LeSIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JsdWV0b290aCIgbXNnaWQ9IjYxMjc3NjkzMzYzMzkyNzY4MjgiPiLgtrbgt4rgtr3gt5bgtqfgt5bgtq3gt4og4LaL4La04LeP4LaC4LacIOC3g+C2uOC2nyDgtrrgt5Tgtpzgtr0g4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmx1ZXRvb3RoIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzNDgwNzIyMTgxODUyNDM4NjI4Ij4i4Lan4LeQ4La24LeK4La94Lan4La64LeaIOC2tuC3iuC2veC3luC2p+C3luC2reC3iiDgt4Dgt5LgtrHgt4rigI3gtrrgt4/gt4Pgtrog4La24LeQ4La94LeS4La44LanLCDgt4Pgt5Dgtprgt4Pgt5Pgtrjgtqcg4LeD4LeEIOC2uuC3lOC2nOC2vSDgtprgt4Ug4LaL4La04LeP4LaC4LacIOC3g+C2uOC2nyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt4/gt4DgtrHgt4og4La04LeS4LeF4LeS4Lac4LeQ4Lax4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JsdWV0b290aCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjMyMDcxMDYzMjQ0NTIzMTI3MzkiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrrgt5og4La24LeK4La94LeW4Lan4LeW4Lat4LeKIOC3gOC3kuC2seC3iuKAjeC2uuC3j+C3g+C2uiDgtq/gt5Dgtprgt5PgtrjgtqcsIOC2uuC3lOC2nOC2vSDgtovgtrTgt4/gtoLgtpwg4LeD4La44LafIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3j+C3gOC2seC3iiDgt4Pgt5Dgtprgt4Pgt5Pgtrjgtqcg4LeD4LeEIOC2t+C3j+C2u+C2nOC3kOC2seC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX25mYyIgbXNnaWQ9IjQ0MjMzNTEyNzQ3NTc4NzY5NTMiPiLgtobgt4PgtrHgt4rgtrEg4Laa4LeK4LeC4Lea4Lat4LeK4oCN4La7IOC3g+C2seC3iuC2seC3kuC3gOC3muC2r+C2seC2uiDgtrTgt4/gtr3gtrHgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbmZjIiBtc2dpZD0iNzEyMDYxMTgxOTQwMTc4OTkwNyI+IuC2huC3g+C2seC3iuC2sSDgtprgt4rgt4Lgt5rgtq3gt4rigI3gtrsg4LeD4Lax4LeK4Lax4LeS4LeA4Lea4Lav4LaxIChORkMpIOC2p+C3kOC2nOC3iiwg4La04Lat4LeKLCDgt4Pgt4Qg4Laa4LeS4La64LeA4Lax4LeK4Lax4Lax4LeKIOC3g+C2uOC2nyDgt4PgtrHgt4rgtrHgt5Lgt4Dgt5rgtq/gtrHgtrog4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfZGlzYWJsZUtleWd1YXJkIiBtc2dpZD0iMzU5ODQ5NjMwMTQ4NjQzOTI1OCI+IuC2lOC2tuC2nOC3miDgtq3gt5Lgtrvgtrrgt5og4LaF4Lac4LeU4La9IOC2heC2tuC2vSDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19kaXNhYmxlS2V5Z3VhcmQiIG1zZ2lkPSI2MDM0MjAzMDY1MDc3MTIyOTkyIj4i4La64Lat4LeU4La74LeUIOC2heC2nOC3lOC2vSDgt4Pgt4Qg4LaV4Lax4LeR4La4IOC3g+C2uOC3iuC2tuC2seC3iuC2sOC3kuC2rSDgtrjgt5TgtrvgtrTgtq8g4LaG4La74Laa4LeK4LeC4LeP4LeA4Laa4LeKIOC2heC2tuC2vSDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2uOC3meC3hOC3kiDgtovgtq/gt4/gt4Tgtrvgtqvgtrrgtprgt4og4LeA4Lax4LeK4Lax4LeaIOC2tOC3kOC2uOC3kuC2q+C3meC2sSDgtofgtrjgtq3gt5Tgtrjgtprgt4og4La94LeQ4La24LeZ4Lav4LeK4Lav4LeTLCDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC3gOC2sSDgtoXgtq3gtrsg4LaH4La44Lat4LeU4La4IOC2heC3gOC3g+C3j+C2sSDgt4DgtrEg4LeA4LeS4LanIOC2uuC2reC3lOC2u+C3lCDgtoXgtpzgt5Tgtr0g4Lax4LeQ4LeA4LatIOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgt4Dgt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkU3luY1NldHRpbmdzIiBtc2dpZD0iNjIwMTgxMDAwODIzMDUwMzA1MiI+IuC3g+C2uOC2uOC3lOC3hOC3lOC2u+C3iuC2rSDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4Laa4LeS4La64LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFN5bmNTZXR0aW5ncyIgbXNnaWQ9IjI3MDY3NDU2NzQ1Njk2Nzg2NDQiPiLgtpzgt5Lgtqvgt5Tgtrgg4LeD4Laz4LeE4LePIOC3g+C2uOC2uOC3lOC3hOC3lOC2u+C3iuC2rSDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4Laa4LeS4La64LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtovgtq/gt4/gt4Tgtrvgtqvgtrrgtprgt4og4La94LeZ4LeDLCDgtpzgt5Lgtqvgt5Tgtrjgtprgt4og4LeD4La44LafIOC2tOC3lOC2r+C3iuC2nOC2vSDgtrrgt5ngtq/gt5Tgtrgg4LeD4La44La44LeU4LeE4LeU4La74LeK4LatIOC2r+C3kOC2uuC3kiDgtrjgt5ngtrrgtqcg4LeE4Laz4LeU4Lax4LePIOC2nOC2rSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9IjU0MDg2OTQ4NzU3OTM5NDUzMTQiPiLgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4Laa4LeS4La74LeT4La4IOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgtprgtrvgtrHgt4rgtrEg4LeD4LeEIOC2heC2muC3iuKAjeC2u+C3kuC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZVN5bmNTZXR0aW5ncyIgbXNnaWQ9Ijg5NTYyNjI1OTEzMDYzNjk4NjgiPiLgtpzgt5Lgtqvgt5Tgtrgg4LeD4Laz4LeE4LePIOC3g+C2uOC2uOC3lOC3hOC3lOC2u+C3iuC2rSDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LaL4Lav4LeP4LeE4La74Lar4La64Laa4LeKIOC2veC3meC3gywg4Lac4LeS4Lar4LeU4La4IOC3g+C2uOC2nyDgtrTgt5Tgtq/gt4rgtpzgtr0g4La64LeZ4Lav4LeU4La4IOC3g+C2uOC2uOC3lOC3hOC3lOC2u+C3iuC2rSDgtprgt5Lgtrvgt5Pgtrgg4LeD4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrfgt4/gt4Dgt5Lgtq0g4Laa4La9IOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRTeW5jU3RhdHMiIG1zZ2lkPSI3Mzk2NTc3NDUxMzYwMjAyNDQ4Ij4i4LeD4La44La44LeU4LeE4LeU4La74LeK4LatIOC2muC3kuC2u+C3k+C2uOC3miDgt4PgtoLgtpvgt4rigI3gtrrgt4/gtrEg4Laa4LeS4La64LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFN5bmNTdGF0cyIgbXNnaWQ9IjE1MTAxNDM3NjE3NTc2MDYxNTYiPiLgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4Laa4LeS4La74LeT4La44LeaIOC3g+C3kuC2r+C3lOC3gOC3k+C2uOC3iiDgtongtq3gt5Lgt4Tgt4/gt4Pgtrog4LeD4LeEIOC2muC3meC2reC2u+C2uOC3iiDgtq/gtq3gt4rgtq0g4LeD4La44La44LeU4LeE4LeU4La74LeK4LatIOC3gOC3kyDgtofgtq3gt5Lgtq/gt5Dgtrrgt5Ig4LaH4Lat4LeU4La94Lat4LeKIOC2nOC3kuC2q+C3lOC2uCDgt4PgtrPgt4Tgt48g4LeD4La44La44LeU4LeE4LeU4La74LeK4LatIOC2muC3kuC2u+C3k+C2uOC3miDgt4PgtoLgtpvgt4rigI3gtrrgt4/gtrEg4Laa4LeS4La64LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3Vic2NyaWJlZEZlZWRzUmVhZCIgbXNnaWQ9IjQ3NTY2MDk2MzcwNTMzNTMzMTgiPiLgtq/gt4/gtrrgtpog4LeA4LeWIOC3g+C2guC2nOC3iuKAjeC2u+C3hCDgtprgt5Lgtrrgt4Dgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zdWJzY3JpYmVkRmVlZHNSZWFkIiBtc2dpZD0iNTU1NzA1ODkwNzkwNjE0NDUwNSI+IuC3gOC2u+C3iuC2reC2uOC3j+C2sSDgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4LeD4LaC4Lac4LeK4oCN4La74LeEIOC2nOC3kOC2sSDgt4Dgt5Lgt4Pgt4rgtq3gtrsg4La94LeQ4La24LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc3Vic2NyaWJlZEZlZWRzV3JpdGUiIG1zZ2lkPSI5MDE1MjQ2MzI1NDA4MjA5Mjk2Ij4i4Lav4LeP4La64LaaIOC3gOC3liDgt4PgtoLgtpzgt4rigI3gtrvgt4Qg4La94LeS4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc3Vic2NyaWJlZEZlZWRzV3JpdGUiIG1zZ2lkPSI2OTI4OTMwMTg4ODI2MDg5NDEzIj4i4LaU4La24Lac4LeaIOC3gOC2u+C3iuC2reC2uOC3j+C2sSDgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4LeD4LaC4Lac4LeK4oCN4La74LeEIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2lOC2tuC2nOC3miDgt4Pgtrjgtrjgt5Tgt4Tgt5Tgtrvgt4rgtq0g4LeD4LaC4Lac4LeK4oCN4La74LeEIOC2heC2seC3kuC3guC3iuC2pyDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr3gt5LgtrHgt4og4LeA4LeZ4Lax4LeD4LeKIOC2muC2vSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjQxMDcxMDE1MjU3NDYwMzU3MTgiPiLgtpTgtrYg4LeA4LeS4LeD4LeS4Lax4LeKIOC3geC2tuC3iuC2r+C2muC3neC3guC2uuC2pyDgtofgtq3gt5Tgt4Xgtq3gt4rgtprgt5zgtqcg4LaH4Lat4LeSIOC2muC3nOC2seC3iuC2r+C3muC3g+C3kiDgtprgt5Lgtrrgt4Dgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRGljdGlvbmFyeSIgbXNnaWQ9IjY1OTYxNDYwMDMzODkwNDI0MyI+IuC2tOC2u+C3kuC3geC3k+C2veC2miDgt4Hgtrbgt4rgtq8g4Laa4Led4LeC4La64LeaIOC2tOC2u+C3kuC3geC3k+C2veC2muC2uuC2seC3iiDgt4Dgt5Lgt4Pgt5LgtrHgt4og4Lac4La24Lap4LePIOC2muC2uyDgtq3gt5Lgtrbgt5Lgtrog4LeE4LeQ4Laa4LeSIOC3gOC2oOC2sSwg4Lax4La44LeKLCDgt4Dgt4/gtprgt4rigI3gtrrgtoLgt4Eg4Laa4LeS4La64LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVEaWN0aW9uYXJ5IiBtc2dpZD0iMjE4MzExMDQwMjMxNDQ0MTEwNiI+IuC2tOC2u+C3kuC3geC3k+C2veC2muC2uuC3kuC2seC3iiDgtoXgtrvgt4rgtq4g4Lav4LeQ4Laa4LeK4LeA4LeWIOC3geC2tuC3iuC2ryDgtprgt53gt4Lgtrrgtqcg4LeA4Lag4LaxIOC2keC2muC2reC3lCDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZURpY3Rpb25hcnkiIG1zZ2lkPSI4MTg1Mzg1NzE2MjU1MDY1MjkxIj4i4La04La74LeS4LeB4LeT4La94LaaIOC3geC2tuC3iuC2r+C2muC3neC3guC2uiDgtq3gt5Tgt4Xgtqcg4LaF4La94LeU4Lat4LeKIOC3gOC2oOC2sSDgtr3gt5Lgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2ieC2qSDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRSZWFkIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjgyMzUzNDE1MTU2MDU1NTk2NzciPiLgtobgtrvgtprgt4rigI3gt4Lgt5Lgtq0g4LaG4Lag4La64Lax4La6IOC3gOC3meC2rSDgtrTgt4rigI3gtrvgt4Dgt5rgt4Hgtrog4La04La74LeT4Laa4LeK4LeC4LePIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkUmVhZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgyMzUzNDE1MTU2MDU1NTk2NzciPiLgtobgtrvgtprgt4rigI3gt4Lgt5Lgtq0g4LaG4Lag4La64Lax4La6IOC3gOC3meC2rSDgtrTgt4rigI3gtrvgt4Dgt5rgt4Hgtrog4La04La74LeT4Laa4LeK4LeC4LePIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3NkY2FyZFJlYWQiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzY0MjQ3MzI5MjM0ODEzMjA3MiI+IuC2heC2seC3j+C2nOC2rSDgtovgtrTgt4/gtoLgtpzgt4Dgtr0g4La94La24LeP4Lac4LatIOC3hOC3kOC2muC3kiBVU0Ig4LaG4Lag4La64Lax4La6IOC3g+C2s+C3hOC3jyDgtoXgt4Dgt4Pgtrvgtrrgtprgt4og4La04La74LeT4Laa4LeK4LeC4LePIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRSZWFkIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTkxNDQwMjY4NDY4NTg0ODgyOCI+IuC2heC2seC3j+C2nOC2rSDgtovgtrTgt4/gtoLgtpzgt4Dgtr0g4La04LeQ4LeA4Lat4LeZ4LaxIFNEIOC2muC3j+C2qeC3iiDgtrTgtq0g4LeD4Laz4LeE4LePIOC2heC3gOC3g+C2u+C2uuC2muC3iiDgtrTgt5Lgtrvgt5Lgtprgt4rgt4Pgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRXcml0ZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI4NDg1OTc5MDYyMjU0NjY2NzQ4Ij4i4LaU4La24Lac4LeaIFVTQiDgtobgtqDgtrrgtrHgtrrgt5og4LaF4Lax4LeK4Lat4La74LeK4Lac4LatIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrgg4LeE4LedIOC2uOC3kOC2muC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4ODA1NjkzNjMwMDUwNDU4NzYzIj4i4LaU4La24Lac4LeaIFNEIOC2tOC2reC3miDgtoXgtrHgt4rgtq3gtrvgt4rgtpzgtq0g4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uCDgt4Tgt50g4La44LeQ4Laa4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2RjYXJkV3JpdGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNjE3NTQwNjI5OTQ0NTcxMDg4OCI+IlVTQiDgtobgtqDgtrrgtrHgtrog4LeA4LeZ4LatIOC2veC3kuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQzMzc0MTc3OTA5MzY2MzIwOTAiPiJTRCDgtrTgtq0g4LeA4LeZ4LatIOC2veC3kuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21lZGlhU3RvcmFnZVdyaXRlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjg1OTgzOTE5OTcwNjg3OTAxNSI+IuC2heC2t+C3iuKAjeC2uuC2seC3iuC2reC2uyDgtrjgt4/gtrDgt4rigI3gtrog4LaG4Lag4La64Lax4La6IOC2heC2seC3iuC2reC2u+C3iuC2nOC2rSDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxLyDgtrjgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tZWRpYVN0b3JhZ2VXcml0ZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjgxODkxNjA1OTc2OTg1MjkxODUiPiLgtoXgtrfgt4rigI3gtrrgtrHgt4rgtq3gtrsg4La44LeP4Law4LeK4oCN4La6IOC2huC2oOC2uuC2seC2uuC3miDgtoXgtrHgt4rgtq3gtrvgt4rgtpzgtq3gtrog4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtovgtrTgt4/gtoLgtpzgtrrgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZURvY3MiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI1Nzc4MzE4NTk4NDQ4ODQ5ODI5Ij4i4La94Lea4Lab4LaxIOC2huC2oOC2uuC2seC2uiDgtprgt4XgtrjgtrHgt4/gtprgtrvgtqvgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlRG9jcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg3MDQzMjMxNzY5MTQxMjE0ODQiPiLgtr3gt5rgtpvgtrEg4LaG4Lag4La64Lax4La6IOC2muC3heC2uOC2seC3j+C2muC2u+C2q+C2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZGNhcmRBY2Nlc3NBbGwiIG1zZ2lkPSI4MTUwNjEzODIzOTAwNDYwNTc2Ij4i4LeD4LeS4La64La94LeU4La4IOC2tOC2u+C3kuC3geC3k+C2veC2muC2uuC2seC3iuC2nOC3miDgtrbgt4/gt4Tgt5Lgtrsg4LaG4Lag4La64LaxIOC3gOC3meC2rSDgtrTgt5Lgt4Dgt5Lgt4Pgt5ngtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19zZGNhcmRBY2Nlc3NBbGwiIG1zZ2lkPSIzMjE1MjA4MzU3NDE1ODkxMzIwIj4i4LeD4LeS4La64La94LeUIOC2tOC2u+C3kuC3geC3k+C2veC2muC2uuC2seC3iiDgt4PgtrPgt4Tgt48g4La24LeP4LeE4LeS4La7IOC2huC2oOC2uuC2seC2uiDgt4Dgt5ngtq0g4La04LeS4LeA4LeS4LeD4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU2NTY0ODcyNjQ4MTk2Njk4MjQiPiLgt4Tgt5Dgtrngt5Lgtr3gt5Ig4Lac4Lec4Lax4LeUIOC2tOC2r+C3iuC2sOC2reC3kuC2uuC2pyDgtrTgt4rigI3gtrvgt4Dgt5rgt4Eg4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FjaGVfZmlsZXN5c3RlbSIgbXNnaWQ9IjU1Nzg5Njc2NDIyNjU1NTA5NTUiPiLgt4Tgt5Dgtrngt5Lgtr3gt5Ig4Lac4Lec4Lax4LeUIOC2tOC2r+C3iuC2sOC2reC3kiDgtprgt5Lgtrrgt4Dgt5Pgtrjgtqcg4LeD4LeEIOC2veC3kuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3VzZV9zaXAiIG1zZ2lkPSI1OTg2OTUyMzYyNzk1ODcwNTAyIj4i4LaF4Lax4LeK4Lat4La74LeK4Lai4LeP4La9IOC2h+C2uOC2reC3lOC2uOC3iiDgtpzgtrHgt4rgtrEv4La94La24Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXNlX3NpcCIgbXNnaWQ9IjQ3MTc2MzIwMDAwNjI2NzQyOTQiPiLgtoXgtrHgt4rgtq3gtrvgt4rgtqLgt4/gtr0g4LaH4La44Lat4LeU4La44LeKIOC2nOC3kOC2seC3k+C2uOC2py/gtr3gt5Dgtrbgt5PgtrjgtqcgU0lQIOC3g+C3muC3gOC3j+C3gCDgtrfgt4/gt4Dgt5Lgtq3gtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkTmV0d29ya1VzYWdlSGlzdG9yeSIgbXNnaWQ9Ijc4NjI1OTMyODM2MTE0OTMyMzIiPiLgtongtq3gt5Lgt4Tgt4/gt4Pgtpzgtq0g4Lai4LeP4La9IOC2t+C3j+C3gOC3kuC2reC2uiDgtprgt5Lgtrrgt4DgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkTmV0d29ya1VzYWdlSGlzdG9yeSIgbXNnaWQ9Ijc2ODkwNjA3NDk4MTkxMjY0NzIiPiLgt4Dgt5Lgt4Hgt5rgt4Lgt5Lgtq0g4Lai4LeP4La9IOC3g+C3hCDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2ieC2reC3kuC3hOC3j+C3g+C2nOC2rSDgtqLgt4/gtr0g4La34LeP4LeA4LeS4Lat4La6IOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21hbmFnZU5ldHdvcmtQb2xpY3kiIG1zZ2lkPSIyNTYyMDUzNTkyMzM5ODU5OTkwIj4i4Lai4LeP4La9IOC2tOC3iuKAjeC2u+C2reC3kuC2tOC2reC3iuC2reC3kuC2uiDgtprgt4XgtrjgtrHgt4/gtprgtrvgtqvgtrog4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbWFuYWdlTmV0d29ya1BvbGljeSIgbXNnaWQ9Ijc1Mzc1ODY3NzE1NTkzNzA2NjgiPiLgtqLgt4/gtr0g4Laa4Lec4Lax4LeK4Lav4Lea4LeD4LeSIOC3g+C3hCDgt4PgtrPgt4TgtrHgt4og4La64LeZ4Lav4LeU4La44LeKIOC3gOC3kuC3geC3muC3guC3k+C2rSDgtrvgt5Pgtq3gt5Ig4Laa4LeF4La44Lax4LeP4Laa4La74Lar4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX21vZGlmeU5ldHdvcmtBY2NvdW50aW5nIiBtc2dpZD0iNTA4ODIxNzMwOTA4ODcyOTY1MCI+IuC2ouC3j+C2vSDgtrfgt4/gt4Dgt5Lgtq0g4Lac4LeS4Lar4LeU4La44LeKIOC2muC3kuC2u+C3k+C2uCDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfbW9kaWZ5TmV0d29ya0FjY291bnRpbmciIG1zZ2lkPSI1NDQzNDEyODY2NzQ2MTk4MTIzIj4i4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2ouC3j+C2vSDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4LeA4LaxIOC2tuC2veC2tOC3keC2uCDgtprgt5ngt4Pgt5rgtq8g4La64Lax4LeK4LaxIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4rgt4Dgtr0g4La34LeP4LeA4LeS4Lat4La6IOC3g+C2s+C3hOC3jyDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tYXJrTmV0d29ya1NvY2tldCIgbXNnaWQ9IjM2NTg1MjcyMTQ5MTQ5NTk3NDkiPiLgtprgt5ngt4Dgt5ngtrHgt5Ig4La94Laa4LeU4Lar4LeUIOC3gOC3meC2seC3g+C3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19tYXJrTmV0d29ya1NvY2tldCIgbXNnaWQ9Ijc2NTU1Njg0MzM2OTYzNTY1NzgiPiLgtrjgt4/gtrvgt4rgtpzgtpzgtq0g4LeA4LeT4La4IOC3g+C2s+C3hOC3jyDgtprgt5ngt4Dgt5ngtrHgt5Lgtrrgt5og4La94Laa4LeU4Lar4LeUIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2ieC2qSDgtq/gt5ngtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc05vdGlmaWNhdGlvbnMiIG1zZ2lkPSI3NjczNDE2NDg3ODczNDMyMjY4Ij4i4La04LeK4oCN4La74LeA4Lea4LeBIOC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc05vdGlmaWNhdGlvbnMiIG1zZ2lkPSI0NTg0NTc3NDI2ODM0MzEzODciPiLgt4Dgt5ngtrHgtq3gt4og4La64LeZ4Lav4LeU4La44LeKIOC3gOC3kuC3g+C3kuC2seC3iiDgtprgt4Ug4La04La9IOC2muC3kuC2u+C3k+C2uOC3iuC2ryDgtofgtq3gt5Tgt4Xgtq3gt4rgt4Ag4Lav4LeQ4Lax4LeK4LeA4LeT4La44LeKIOC2veC2tuC3jyDgtpzgt5DgtrHgt5PgtrjgtqcsIOC2tOC2u+C3k+C2muC3iuC3guC3jyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeEIOC3hOC3kuC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kTm90aWZpY2F0aW9uTGlzdGVuZXJTZXJ2aWNlIiBtc2dpZD0iNzA1Nzc2NDc0MjIxMTY1NjY1NCI+IuC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uCDgtofgt4Tgt5Tgtrjgt4rgtprgtrHgt4og4Lav4LeT4La44LeKIOC3g+C3muC3gOC3j+C3gOC2muC3iiDgt4Dgt5ngtq0g4La24Laz4LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYmluZE5vdGlmaWNhdGlvbkxpc3RlbmVyU2VydmljZSIgbXNnaWQ9Ijk4NTY5NzkxODU3NjkwMjk4NiI+IuC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC3iiDgtoXgt4PgtrHgt4rgtrHgt4/gtpzgt5og4LeD4Lea4LeA4LeP4LeA4LeaIOC2ieC3hOC3hSDgtrjgtqfgt4rgtqfgtrjgt5og4LaF4Lat4LeU4La74LeU4La44LeU4LeE4LeU4Lar4Lat4LanIOC2tuC3kOC2s+C3k+C2uOC2pyDgtq/gtrvgtrHgt4rgtrHgt4/gtqcg4LaF4LeA4LeD4La7IOC2r+C3mi4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgt4PgtrPgt4Tgt48g4Laa4LeS4LeD4LeS4LeD4Lea4Lat4LeKIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9pbnZva2VDYXJyaWVyU2V0dXAiIG1zZ2lkPSIzNjk5NjAwODMzOTc1MTE3NDc4Ij4i4LeA4LeP4LeE4Laa4La6IOC3g+C3kOC2tOC2uuC3lCDgt4Dgt5LgtrHgt4rigI3gtrrgt4/gt4Pgtrog4La64LeZ4Lav4LeU4La4IOC2ieC2veC3iuC2veC3jyDgt4Pgt5Lgtqfgt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19pbnZva2VDYXJyaWVyU2V0dXAiIG1zZ2lkPSI0MTU5NTQ5MTUyNTI5MTExOTIwIj4i4LeA4LeP4LeE4Laa4La64LePIOC2veC2tuC3j+C2r+C3lOC2seC3iiDgt4Pgt5Dgtprgt4Pgt5Tgtrjgt4og4La64LeZ4Lav4LeU4La44LeKIOC2i+C2reC3iuC2tOC3j+C2r+C2seC2uuC2pyDgtrDgt4/gtrvgtprgtrrgt4/gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgt4PgtrPgt4Tgt48g4Laa4LeS4LeD4LeS4Lav4LePIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4Dgt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NOZXR3b3JrQ29uZGl0aW9ucyIgbXNnaWQ9IjgyMDYwNzc0NDc4Mzg5MDk1MTYiPiLgtqLgt4/gtr0g4Lat4Lat4LeK4LeAIOC2uOC2rSDgtrHgt5Lgtrvgt5Pgtprgt4rgt4Lgtqsg4LeA4LeZ4LatIOC2h+C3hOC3lOC2uOC3iuC2muC2seC3iiDgtq/gt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NOZXR3b3JrQ29uZGl0aW9ucyIgbXNnaWQ9IjY4OTkxMDIwNzU4MjUyNzIyMTEiPiLgtrrgt5ngtq/gt5Tgtrjgtprgtqcg4Lai4LeP4La9IOC2reC2reC3iuC3gCDgtrjgtq0g4Lax4LeS4La74LeT4Laa4LeK4LeC4LarIOC3gOC3meC2rSDgtofgt4Tgt5Tgtrjgt4rgtprgtrHgt4og4Lav4LeT4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ouIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2muC3kuC3g+C3kuC2r+C3jyDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4LeA4LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9saW1pdFBhc3N3b3JkIiBtc2dpZD0iNDQ5NzQyMDcyODg1NzU4NTc5MSI+IuC2uOC3lOC2u+C2tOC2ryDgtrHgt5Pgtq3gt5Ig4LeD4Laa4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfbGltaXRQYXNzd29yZCIgbXNnaWQ9IjMyNTIxMTQyMDM5MTk1MTAzOTQiPiLgtq3gt5Lgtrvgtrog4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC3miDgtrjgt5TgtrvgtrTgtq/gtrrgtqcg4LaF4Lax4LeU4La44LatIOC2heC2muC3lOC2u+C3lCDgt4Pgt4Qg4Lav4LeS4LacIOC2tOC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dhdGNoTG9naW4iIG1zZ2lkPSI5MTQxMzA2NDY5NDIxOTk1MDMiPiLgtq3gt5Lgtrvgtrog4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC3miDgtovgtq3gt4rgt4Pgt4/gt4TgtrrgtrHgt4og4Lax4LeS4La74LeT4Laa4LeK4LeC4Lar4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2F0Y2hMb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzIxNTcyOTI5NDIxNTA3MDA3MiI+IuC2reC3kuC2u+C2uiDgtoXgtpzgt5Tgt4Xgt5Qg4LeE4LeQ4La74LeT4La44Lea4Lav4LeTIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtqfgtrrgt5LgtrTgt4og4Laa4LeFIOC2uOC3lOC2u+C2tOC2ryDgtpzgtqvgtrEg4Lax4LeS4La74LeT4Laa4LeK4LeC4Lar4La6IOC2muC2u+C2seC3iuC2sSDgt4Pgt4Qg4Lan4LeQ4La24LeK4La94Lan4La6IOC2heC2nOC3lOC3heC3lCDgtq/gtrjgtrHgt4rgtrEg4LeE4LedIOC3gOC3kOC2u+C2r+C3kiDgtrjgt5TgtrvgtrTgtq8g4La24Lec4LeE4LedIOC2nOC2q+C2seC2muC3iiDgtqfgtrrgt5LgtrTgt4og4Laa4La7IOC2h+C2reC3kiDgtrHgtrjgt4og4Lan4LeQ4La24LeK4La94Lan4La64LeaIOC3g+C3kuC2uuC2veC3lCDgtq/gtq3gt4rgtq0g4La44Laa4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfd2F0Y2hMb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MTIzMjMwOTE4NDY3NjEwNzMiPiLgtq3gt5Lgtrvgtrog4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC3muC2r+C3kyDgt4Dgt5Dgtrvgtq/gt5Lgtrrgtqcg4Lan4La64LeS4La04LeKIOC2muC3hSDgtrjgt5TgtrvgtrTgtq8g4Lac4Lar4LaxIOC2seC3kuC2u+C3k+C2muC3iuC3guC2q+C2uiDgtprgtrvgtrHgt4rgtrEg4LeD4LeEIOC2r+C3lOC2u+C2muC2ruC2seC2uiDgtoXgtpzgt5Tgt4Xgt5Qg4Lav4La44Lax4LeK4LaxIOC3hOC3nSDgt4Dgt5Dgtrvgtq/gt5Ig4La44LeU4La74La04LavIOC2tuC3nOC3hOC3nSDgtpzgtqvgtrHgtprgt4og4Lan4La64LeS4La04LeKIOC2muC2uyDgtofgtq3gt5Ig4Lax4La44LeKIOC2r+C3lOC2u+C2muC2ruC2seC2uuC3miDgt4Pgt5Lgtrrgtr3gt5Qg4Lav4Lat4LeK4LatIOC2uOC2muC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfcmVzZXRQYXNzd29yZCIgbXNnaWQ9IjI2MjAwNzcxOTEyNDI2ODg5NTUiPiLgtq3gt5Lgtrvgtrog4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC3miDgtrjgt5TgtrvgtrTgtq/gtrog4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfcmVzZXRQYXNzd29yZCIgbXNnaWQ9IjYwNTk2Mzk2MjMwMTkwNDQ1OCI+IuC2reC3kuC2u+C2uiDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LeaIOC2uOC3lOC2u+C2tOC2r+C2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9mb3JjZUxvY2siIG1zZ2lkPSIyMjc0MDg1Mzg0NzA0MjQ4NDMxIj4i4Lat4LeS4La74La6IOC2heC2nOC3lOC3heC3lCDgtq/gt5Dgtrjgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2ZvcmNlTG9jayIgbXNnaWQ9IjExNDE3OTc1ODg0MDM4MjcxMzgiPiLgtq3gt5Lgtrvgtrrgtqcg4LaF4Lac4LeU4LeF4LeUIOC3gOC3kOC2p+C3k+C2uCDgt4Pgt5Lgtq/gt5Tgt4DgtrHgt4rgtrHgt5og4Laa4LeZ4LeD4Lea4LavIOC3g+C3hCDgtprgt4Dgtq/gt4/gtq8g4La64Lax4LeK4LaxIOC2tOC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX3dpcGVEYXRhIiBtc2dpZD0iMzkxMDU0NTQ0Njc1ODYzOTcxMyI+IuC3g+C3kuC2uuC2veC3lCDgtq/gtq3gt4rgtq0g4La44Laa4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY193aXBlRGF0YSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iNDMwNjE4NDA5NjA2Nzc1Njg3NiI+IuC2muC2u+C3iuC2uOC3j+C2seC3iuC2rSDgt4Hgt4/gtr3gt48g4Lav4Lat4LeK4LatIOC2uuC3heC3kiDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4Dgt5Pgtrjgt5ngtrHgt4og4La04LeD4LeU4LeAIOC2heC2seC2reC3lOC2u+C3lCDgtofgtp/gt4Dgt5Lgtrjgtprgt5LgtrHgt4og4Lat4Lec4La74LeA4La4IOC2p+C3kOC2tuC3iuC2veC2p+C3iiDgtq/gtq3gt4rgtq0g4La44Laa4LePIOC2r+C2uOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX3dpcGVEYXRhIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTA5Njg5NTYwNDU3NDE4ODM5MSI+IuC2muC2u+C3iuC2uOC3j+C2seC3iuC2rSDgt4Hgt4/gtr3gt48g4Lav4Lat4LeK4LatIOC2uuC3heC3kiDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4Dgt5Pgtrjgt5ngtrHgt4og4La04LeD4LeU4LeAIOC2heC2seC2reC3lOC2u+C3lCDgtofgtp/gt4Dgt5Lgtrjgtprgt5LgtrHgt4og4Lat4Lec4La74LeA4La4IOC2r+C3lOC2u+C2muC2ruC2sSDgtq/gtq3gt4rgtq0g4La44Laa4LePIOC2r+C2uOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfc2V0R2xvYmFsUHJveHkiIG1zZ2lkPSIyNzg0ODI4MjkzNzQ3NzkxNDQ2Ij4i4LaL4La04LeP4LaC4LacIOC2nOC3neC2veC3k+C2uiDgtrHgt5Lgtrrgt5Tgtq3gt5Tgt4Ag4LeD4Laa4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2Nfc2V0R2xvYmFsUHJveHkiIG1zZ2lkPSI2Mzg3NDk3NDY2NjYwMTU0OTMxIj4i4Laa4Lec4Lax4LeK4Lav4Lea4LeD4LeSIOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgt4Dgt5Lgtqcg4La04Lec4Lav4LeUIOC2seC3kuC2uuC3lOC2reC3lCDgtpHgtprgtprgt4og4La34LeP4LeA4LeS4LatIOC2muC2u+C2sSDgtr3gt5ngt4Mg4LaL4La04LeP4LaC4Lac4La6IOC3g+C2muC3g+C2seC3iuC2sS4g4La04LeF4La44LeUIOC2i+C2tOC3j+C2guC2nCDgtrTgtrvgt5LgtrTgt4/gtr3gtprgtrrgt48g4La04La44Lar4Laa4LeKIOC2teC2veC2r+C3j+C2uuC3kiDgtrTgt5zgtq/gt5Qg4Lax4LeS4La64LeU4Lat4LeU4LeAIOC3g+C2muC3g+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZXhwaXJlUGFzc3dvcmQiIG1zZ2lkPSI4ODUyNzkxNTE4NDcyNTQwNTYiPiLgtq3gt5Lgtrvgtrog4LaF4Lac4LeU4LeF4LeUIOC2r+C3kOC2uOC3k+C2uOC3miDgtrjgt5TgtrvgtrTgtq/gtrog4Laa4La94LeKIOC2ieC2muC3lOC2reC3iuC3gOC3k+C2uCDgt4Pgtprgt4PgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2V4cGlyZVBhc3N3b3JkIiBtc2dpZD0iMTcyOTcyNTIyNjMxNDY5MTU5MSI+IuC2reC3kuC2uy3gtoXgtpzgt5Tgt4Xgt5og4La44LeU4La74La04Lav4La6IOC3gOC3meC2seC3g+C3iuC3gOC3k+C2uCDgtprgt5zgtrTgtrjgtqsg4Laa4LeP4La9IOC2tOC2u+C3j+C3g+C2uuC2muC3kuC2seC3iiDgt4Pgt5Lgtq/gt5Tgt4Dgt5Lgtrog4La64LeU4Lat4LeU4LavIOC2uuC2seC3iuC2sSDgtrTgt4/gtr3gtrHgtrog4Laa4LeS4La74LeT4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWxhYl9lbmNyeXB0ZWRTdG9yYWdlIiBtc2dpZD0iODkwMTMyNjE5OTkwOTEzMjkxNSI+IuC2huC2oOC2uuC2seC2uuC3miDgt4PgtoLgtprgt5rgtq3gtrHgtrog4LeD4Laa4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvbGljeWRlc2NfZW5jcnlwdGVkU3RvcmFnZSIgbXNnaWQ9IjI2Mzc3MzIxMTUzMjUzMTY5OTIiPiLgtobgtqDgtrrgtrHgtrog4Laa4LeFIOC2uuC3meC2r+C3lOC2uOC3iiDgtq/gtq3gt4rgtq0g4LeD4LaC4Laa4Lea4Lat4Lax4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtoXgt4Dgt4Hgt4rigI3gtrrgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5bGFiX2Rpc2FibGVDYW1lcmEiIG1zZ2lkPSI2Mzk1MzAxMDIzMTUyMjk3ODI2Ij4i4Laa4LeQ4La44La74LePIOC2heC2tuC2vSDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lkZXNjX2Rpc2FibGVDYW1lcmEiIG1zZ2lkPSIyMzA2MzQ5MDQyODM0NzU0NTk3Ij4i4LeD4LeS4La64La94LeUIOC2i+C2tOC3j+C2guC2nCDgtprgt5Dgtrjgtrvgt4/gt4Dgtr0g4La34LeP4LeA4LeS4Lat4La6IOC3gOC2veC2muC3iuC3gOC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb2xpY3lsYWJfZGlzYWJsZUtleWd1YXJkRmVhdHVyZXMiIG1zZ2lkPSIyNjYzMjkxMDQ1NDI2Mzg4MDIiPiLgtrrgtq3gt5Tgtrvgt5Qg4LaG4La74Laa4LeK4LeC4LeP4LeA4LeaIOC3gOC3kuC3geC3muC3guC3j+C2guC2nCDgtoXgtrbgtr0g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icG9saWN5ZGVzY19kaXNhYmxlS2V5Z3VhcmRGZWF0dXJlcyIgbXNnaWQ9IjM0NjcwODIyNzIxODY1MzQ2MTQiPiLgtrrgtq3gt5Tgtrvgt5Qg4LaG4La74Laa4LeK4LeC4LeP4LeAIOC3hOC3kiDgt4Pgtrjgt4Tgtrsg4LeA4LeS4LeB4Lea4LeC4LeP4LaC4LacIOC2t+C3j+C3gOC3kuC2reC2uiDgt4Dgt4Xgtprgt4rgt4Dgtrrgt5IuIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBob25lVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI4OTAxMDk4MzM2NjU4NzEwMzU5Ij4i4Lax4LeS4LeA4LeDIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iODY5OTIzNjUwNTI3MTM2NjE1Ij4i4Lai4LaC4Lac4La4IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg5NzU0NDY1NDI0Mjg3NDU0MyI+IuC2muC3j+C2u+C3iuC2uuC3j+C2veC2uiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjExMDM2MDE0MzMzODIxNTgxNTUiPiLgtprgt4/gtrvgt4rgtrrgt4/gtr0g4LeG4LeQ4Laa4LeK4LeD4LeKIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTczNTE3NzE0NDk0ODMyOTM3MCI+IuC2seC3kuC3gOC3g+C3miDgt4bgt5Dgtprgt4rgt4Pgt4oiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2MDM4Nzg2NzQ0NzcyMDczOTQiPiLgtrTgt5rgtqLgtrvgtroiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIxNjUwODI0Mjc1MTc3OTMxNjM3Ij4i4LeA4LeZ4Lax4Lat4LeKIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iOTE5MjUxNDgwNjk3NTg5ODk2MSI+IuC2heC2t+C3kuC2u+C3lOC2oOC3kiI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImVtYWlsQWRkcmVzc1R5cGVzIj4KKyAgICA8aXRlbSBtc2dpZD0iODA3Mzk5NDM1Mjk1NjEyOTEyNyI+IuC2uOC3lOC2veC3iiDgtrTgt5Lgtqfgt5Tgt4AiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3MDg0MjM3MzU2NjAyNjI1NjA0Ij4i4Laa4LeP4La74LeK4La64LeP4La94La6IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTExMjA0NDQxMDY1OTAxMTAyMyI+IuC3gOC3meC2seC2reC3iiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjIzNzQ5MTM5NTI4NzAxMTA2MTgiPiLgtoXgtrfgt5Lgtrvgt5TgtqDgt5IiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwb3N0YWxBZGRyZXNzVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI2ODgwMjU3NjI2NzQwMDQ3Mjg2Ij4i4Lax4LeS4LeA4LeDIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNTYyOTE1Mzk1NjA0NTEwOTI1MSI+IuC2muC3j+C2u+C3iuC2uuC3j+C2veC2uiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjQ5NjY2MDQyNjQ1MDAzNDM0NjkiPiLgt4Dgt5ngtrHgtq3gt4oiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI0OTMyNjgyODQ3NTk1Mjk5MzY5Ij4i4LaF4La34LeS4La74LeU4Lag4LeSIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iaW1BZGRyZXNzVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSIxNzM4NTg1MTk0NjAxNDc2Njk0Ij4i4Lax4LeS4LeA4LeDIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMTM1OTY0NDU2NTY0NzM4MzcwOCI+IuC2muC3j+C2u+C3iuC2uuC3j+C2veC2uiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9Ijc4Njg1NDk0MDEwNTM2MTU2NzciPiLgt4Dgt5ngtrHgtq3gt4oiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTQ1MTE4OTQ0NjM5ODY5ODA5Ij4i4LaF4La34LeS4La74LeU4Lag4LeSIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JnYW5pemF0aW9uVHlwZXMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NTQ2MzM1NjEyMTg5MTE1NjE1Ij4i4Laa4LeP4La74LeK4La64LeP4La94La6IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNDM3ODA3NDEyOTA0OTUyMDM3MyI+IuC3gOC3meC2seC2reC3iiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjM0NTUwNDc0Njg1ODM5NjUxMDQiPiLgtoXgtrfgt5Lgtrvgt5TgtqDgt5IiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJpbVByb3RvY29scyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijg1OTUyNjEzNjM1MTg0NTk1NjUiPiJBSU0iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI3MzkwNDczNjI4Mjc1NDkwNzAwIj4iV2luZG93cyBMaXZlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzg4Mjg3NzEzNDkzMTQ1ODIxNyI+IllhaG9vIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNTAzNTM3NjMxMzIwMDU4NTI0MiI+IlNreXBlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNzUzMjM2MzE3ODQ1OTQ0NDk0MyI+IlFRIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzcxMzQ0MTAzNDI5OTY2MDc0OSI+Ikdvb2dsZSBUYWxrIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjUwNjg1NzMxMjcxODYzMDgyMyI+IklDUSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjE2NDg3OTc5MDM3ODUyNzkzNTMiPiJKYWJiZXIiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUN1c3RvbSIgbXNnaWQ9IjE2NDQ3MzgwNTkwNTMzNTU4MjAiPiLgtoXgtrfgt5Lgtrvgt5TgtqDgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVIb21lIiBtc2dpZD0iMjU3MDkyMzQ2MzAzMzk4NTg4NyI+IuC2seC3kuC3gOC3gyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU1vYmlsZSIgbXNnaWQ9IjY1MDE0NjM1NTc3NTQ3NTEwMzciPiLgtqLgtoLgtpzgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVXb3JrIiBtc2dpZD0iODg2MzkzOTY2NzA1OTkxMTYzMyI+IuC2muC3j+C2u+C3iuC2uuC3j+C2veC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUZheFdvcmsiIG1zZ2lkPSIzNTE3NzkyMTYwMDA4ODkwOTEyIj4i4Laa4LeP4La74LeK4La64LeP4La9IOC3huC3kOC2muC3iuC3g+C3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUZheEhvbWUiIG1zZ2lkPSIyMDY3MjY1OTcyMzIyOTcxNDY3Ij4i4Lax4LeS4LeA4LeD4LeaIOC3huC3kOC2muC3iuC3g+C3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVBhZ2VyIiBtc2dpZD0iNzU4MjM1OTk1NTM5NDkyMTczMiI+IuC2tOC3muC2ouC2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU90aGVyIiBtc2dpZD0iMTU0NDQyNTg0Nzg2ODc2NTk5MCI+IuC3gOC3meC2seC2reC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNhbGxiYWNrIiBtc2dpZD0iMjcxMjE3NTIwMzA2NTY3ODIwNiI+IuC2uuC3heC3kiDgtofgtrjgtq3gt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVDYXIiIG1zZ2lkPSI4NzM4MzYwNjg5NjE2NzE2OTgyIj4i4La44Led4Lan4La74LeKIOC2u+C2ruC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUNvbXBhbnlNYWluIiBtc2dpZD0iNTQwNDM0MzU2NDYxNDc4OTE2Ij4i4LaG4La64Lat4Lax4La64LeaIOC2uOC3luC2veC3kuC2muC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUlzZG4iIG1zZ2lkPSI4MDIyNDUzMTkzMTcxMzcwMzM3Ij4iSVNETiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZU1haW4iIG1zZ2lkPSI2NzY2MTM3MDEwNjI4MzI2OTE2Ij4i4La44LeW4La94LeS4LaaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlT3RoZXJGYXgiIG1zZ2lkPSI4NTg3NjU3MTQ1MDcyNDQ2NTY1Ij4i4LeA4LeZ4Lax4Lat4LeKIOC3huC3kOC2muC3iuC3g+C3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVJhZGlvIiBtc2dpZD0iNDA5MzczODA3OTkwODY2NzUxMyI+IuC2u+C3muC2qeC3kuC2uuC3neC3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVRlbGV4IiBtc2dpZD0iMzM2Nzg3OTk1MjQ3NjI1MDUxMiI+IuC2p+C3meC2veC3meC2muC3iuC3g+C3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZVR0eVRkZCIgbXNnaWQ9Ijg2MDY1MTQzNzg1ODUwMDAwNDQiPiJUVFkgVEREIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlV29ya01vYmlsZSIgbXNnaWQ9IjEzMTE0MjY5ODkxODQwNjU3MDkiPiLgtprgt4/gtrvgt4rgtrrgt4/gtr0g4Lai4LaC4Lac4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGhvbmVUeXBlV29ya1BhZ2VyIiBtc2dpZD0iNjQ5OTM4NzMxMjMxMTU3MDU2Ij4i4Laa4LeP4La74LeK4La64LeP4La9IOC2tOC3muC2ouC2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBob25lVHlwZUFzc2lzdGFudCIgbXNnaWQ9IjU1OTY3NzI2MzYxMjg1NjI4ODQiPiLgt4Pgt4Tgt4/gtrrgtpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwaG9uZVR5cGVNbXMiIG1zZ2lkPSI3MjU0NDkyMjc1NTAyNzY4OTkyIj4iTU1TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXZlbnRUeXBlQ3VzdG9tIiBtc2dpZD0iNzgzNzU4NjE5ODQ1ODA3MzQwNCI+IuC2heC2t+C3kuC2u+C3lOC2oOC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZUJpcnRoZGF5IiBtc2dpZD0iMjgxMzM3OTg0NDIxMTM5MDc0MCI+IuC2i+C2tOC2seC3iuC2r+C3kuC2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZUFubml2ZXJzYXJ5IiBtc2dpZD0iMzg3Njc3OTc0NDUxODI4NDAwMCI+IuC3g+C2guC3gOC2reC3iuC3g+C2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV2ZW50VHlwZU90aGVyIiBtc2dpZD0iNzM4ODE3ODkzOTAxMDE0MzA3NyI+IuC3gOC3meC2seC2reC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtYWlsVHlwZUN1c3RvbSIgbXNnaWQ9Ijg1MjU5NjAyNTc4MDQyMTM4NDYiPiLgtoXgtrfgt5Lgtrvgt5TgtqDgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVIb21lIiBtc2dpZD0iNDQ5MjI3MjM2MTQwNDMzOTE5Ij4i4Lax4LeS4LeA4LeDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1haWxUeXBlV29yayIgbXNnaWQ9IjM1NDgwNTgwNTk2MDExNDk5NzMiPiLgtprgt4/gtrvgt4rgtrrgt4/gtr3gtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVPdGhlciIgbXNnaWQ9IjI5MjMwMDg2OTUyNzI2Mzk1NDkiPiLgt4Dgt5ngtrHgtq3gt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWFpbFR5cGVNb2JpbGUiIG1zZ2lkPSIxMTk5MTkwMDUzMjExNjYyMDUiPiLgtqLgtoLgtpzgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwb3N0YWxUeXBlQ3VzdG9tIiBtc2dpZD0iODkwMzIwNjkwMzA2MDQ3OTkwMiI+IuC2heC2t+C3kuC2u+C3lOC2oOC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVIb21lIiBtc2dpZD0iODE2NTc1Njk3NzE4NDQ4MzA5NyI+IuC2seC3kuC3gOC3gyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVXb3JrIiBtc2dpZD0iNTI2ODE3Mjc3MjM4NzY5NDQ5NSI+IuC2muC3j+C2u+C3iuC2uuC3j+C2veC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBvc3RhbFR5cGVPdGhlciIgbXNnaWQ9IjI3MjYxMTE5NjY2MjM1ODQzNDEiPiLgt4Dgt5ngtrHgtq3gt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVR5cGVDdXN0b20iIG1zZ2lkPSIyMDc0MDI4NzU1NTI3ODI2MDQ2Ij4i4LaF4La34LeS4La74LeU4Lag4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlSG9tZSIgbXNnaWQ9IjYyNDExODEwMzI5NTQyNjM4OTIiPiLgtrjgt5Tgtr3gt4og4La04LeS4Lan4LeU4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1UeXBlV29yayIgbXNnaWQ9IjEzNzE0ODkyOTAyNDI0MzMwOTAiPiLgtprgt4/gtrvgt4rgtrrgt4/gtr3gtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVR5cGVPdGhlciIgbXNnaWQ9IjUzNzcwMDc0OTU3MzU5MTU0NzgiPiLgt4Dgt5ngtrHgtq3gt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sQ3VzdG9tIiBtc2dpZD0iNjkxOTQ1MzgzNjYxODc0OTk5MiI+IuC2heC2t+C3kuC2u+C3lOC2oOC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xBaW0iIG1zZ2lkPSI3MDUwMzYwNjEyMzY4MzgzNDE3Ij4iQUlNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE1zbiIgbXNnaWQ9IjE0NDU1NjU0NTQyMDc2OTQ0MiI+IldpbmRvd3MgTGl2ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xZYWhvbyIgbXNnaWQ9IjgyNzE0Mzk0MDg0NjkwMjEyNzMiPiJZYWhvbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xTa3lwZSIgbXNnaWQ9IjkwMTkyOTY3NDQ2MjI4MzI5NTEiPiJTa3lwZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xRcSIgbXNnaWQ9Ijg4ODc0ODQzNzk0OTQxMTE4ODQiPiJRUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xHb29nbGVUYWxrIiBtc2dpZD0iNDkzOTAyMzIxMTQwMjc3MzA0Ij4iSGFuZ291dHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbVByb3RvY29sSWNxIiBtc2dpZD0iMTU3NDg3MDQzMzYwNjUxNzMxNSI+IklDUSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltUHJvdG9jb2xKYWJiZXIiIG1zZ2lkPSIyMjc5OTE3NjMwODc1NzcxNzIyIj4iSmFiYmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1Qcm90b2NvbE5ldE1lZXRpbmciIG1zZ2lkPSI4Mjg3NjI1NjU1OTg2ODI3OTcxIj4iTmV0TWVldGluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9yZ1R5cGVXb3JrIiBtc2dpZD0iMjkyNjg4NzA1MDUzNjM4NzIiPiLgtprgt4/gtrvgt4rgtrrgt4/gtr3gtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdUeXBlT3RoZXIiIG1zZ2lkPSIzOTUxNzgxMTMxNTcwMTI0MDgyIj4i4LeA4LeZ4Lax4Lat4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnVHlwZUN1c3RvbSIgbXNnaWQ9IjIyNTUyMzQxNTM3MjA4ODMyMiI+IuC2heC2t+C3kuC2u+C3lOC2oOC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUN1c3RvbSIgbXNnaWQ9IjM1NDI0MDM2Nzk4MjcyOTczMDAiPiLgtoXgtrfgt5Lgtrvgt5TgtqDgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVBc3Npc3RhbnQiIG1zZ2lkPSI2Mjc0MzM0ODI1MTk1Mzc5MDc2Ij4i4LeD4LeE4LeP4La64LaaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlQnJvdGhlciIgbXNnaWQ9Ijg3NTc5MTM1MDY3ODQwNjc3MTMiPiLgt4Pgt4Tgt53gtq/gtrvgtrrgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVDaGlsZCIgbXNnaWQ9IjE4OTA3NDYyNzcyNzY4ODE2MjYiPiLgtq/gtrvgt5Tgt4Dgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVEb21lc3RpY1BhcnRuZXIiIG1zZ2lkPSI2OTA0ODA3MTEyMTIxMTIyMTMzIj4i4Lav4Lea4LeB4LeT4La6IOC3hOC3gOC3lOC2veC3iuC2muC2u+C3lOC3gOC3jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZUZhdGhlciIgbXNnaWQ9IjUyMjgwMzQ2ODcwODIwNTA3MjUiPiLgtrTgt5Lgtrrgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVGcmllbmQiIG1zZ2lkPSI3MzEzMTA2NzYyNDgzMzkxMjYyIj4i4La44LeS4Lat4LeK4oCN4La74La64LePIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlTWFuYWdlciIgbXNnaWQ9IjYzNjU2Nzc4NjE2MTAxMzc4OTUiPiLgtprgt4XgtrjgtrHgt4/gtprgtrvgt5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVNb3RoZXIiIG1zZ2lkPSI0NTc4NTcxMzUyOTYyNzU4MzA0Ij4i4La44LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUGFyZW50IiBtc2dpZD0iNDc1NTYzNTU2NzU2MjkyNTIyNiI+IuC2uOC3gOC3iuC2tOC3kuC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlbGF0aW9uVHlwZVBhcnRuZXIiIG1zZ2lkPSI3MjY2NDkwMjg1MTIwMjYyNzgxIj4i4LeE4LeA4LeU4La94LeK4Laa4La74LeU4LeA4LePIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlUmVmZXJyZWRCeSIgbXNnaWQ9IjEwMTU3MzA1OTg0NDEzNTUyNCI+IuC2uuC3nOC2uOC3lOC2muC2u+C2sSDgtr3gtq/gt4rgtq/gt5oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVSZWxhdGl2ZSIgbXNnaWQ9IjE3OTk4MTk5MzAwODU2MTAyNzEiPiLgtrHgt5Hgtrrgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWxhdGlvblR5cGVTaXN0ZXIiIG1zZ2lkPSIxNzM1OTgzNTU0NDc5MDc2NDgxIj4i4LeD4LeE4Led4Lav4La74LeS4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpb25UeXBlU3BvdXNlIiBtc2dpZD0iMzk0MTM2OTM5NDI4Njk4MTE3Ij4i4La34LeP4La74LeK4La64LeP4LeAIOC3hOC3nSDgt4Pgt4rgt4Dgt4/gtrjgt5LgtrTgt5Tgtrvgt5Tgt4Lgtrrgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZUN1c3RvbSIgbXNnaWQ9IjI0NzM1ODA1OTMxMTE1OTA5NDUiPiLgtoXgtrfgt5Lgtrvgt5TgtqDgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaXBBZGRyZXNzVHlwZUhvbWUiIG1zZ2lkPSI2MDkzNTk4MTgxMDY5MzU5Mjk1Ij4i4Lax4LeS4LeA4LeDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2lwQWRkcmVzc1R5cGVXb3JrIiBtc2dpZD0iNjkyMDcyNTczMDc5NzA5OTA0NyI+IuC2muC3j+C2u+C3iuC2uuC3j+C2veC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpcEFkZHJlc3NUeXBlT3RoZXIiIG1zZ2lkPSI0NDA4NDM2MTYyOTUwMTE5ODQ5Ij4i4LeA4LeZ4Lax4Lat4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iUElOIOC2muC3muC2reC2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iUFVLIOC3g+C3hCDgtrHgt4AgUElOIOC2muC3muC2reC2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsg4Laa4Lea4Lat4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLgtrHgt4AgUElOIOC2muC3muC2reC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IuC2uOC3lOC2u+C2tOC2r+C2uiDgtqfgtrrgt5LgtrTgt4og4Laa4LeS4La74LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEiPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC2uOC3lOC2u+C2tOC2r+C2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC2pyBQSU4g4LaR4LaaIOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLgt4Dgt5Dgtrvgtq/gt5IgUElOIOC2muC3muC2reC2uuC2muC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4i4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pywg4La44LeZ4Lax4LeU4LeAIOC2lOC2tuC3jyDgtrTgt4Pgt5Tgt4AgMCDgtq8g4LaU4La24Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtZXJnZW5jeV9jYWxsX2RpYWxvZ19udW1iZXJfZm9yX2Rpc3BsYXkiIG1zZ2lkPSI2OTYxOTIxMDMxOTUwOTA5NzAiPiLgt4Tgtq/gt5Lgt4Pgt5Ig4LaH4La44Lat4LeU4La44LeKIOC2heC2guC2muC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fY2Fycmllcl9kZWZhdWx0IiBtc2dpZD0iODk2MzgzOTI0MjU2NTY1MzE5MiI+IuC3g+C3muC3gOC3j+C3gCDgtrHgt5Dgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zY3JlZW5fbG9ja2VkIiBtc2dpZD0iNzI4ODQ0MzA3NDgwNjgzMjkwNCI+IuC2reC3kuC2u+C2uiDgtoXgtpzgt5Tgt4Xgt5Qg4Lav4La44LePIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZW5hYmxlZCIgbXNnaWQ9IjQ2MTU0MDUxNjE0MTI2MDQ5Ij4i4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC2pyDgtrjgt5ngtrHgt5Tgt4Ag4LaU4La24Lax4LeK4LaxIOC3hOC3nSDgt4Tgtq/gt5Lgt4Pgt5Ig4LaH4La44Lat4LeU4La4IOC2veC2tuC3j+C2nOC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSI2ODYyNjAwMjg3OTcxNTgzNjQiPiLgtoXgtpzgt5Tgt4Xgt5Qg4LeE4LeQ4La74LeT4La44LanIOC2uOC3meC2seC3lCDgtpTgtrbgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9Ijc0Nzg3MDMyNTQ5NjQ4MTAzMDIiPiLgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC2u+C2p+C3j+C3gCDgtoXgtrPgt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2VtZXJnZW5jeV9jYWxsIiBtc2dpZD0iNTM0NzYzMzc4NDQwMTI4NTIyNSI+IuC3hOC2r+C3kuC3g+C3kiDgtofgtrjgtq3gt5Tgtrjgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3JldHVybl90b19jYWxsIiBtc2dpZD0iNTI0NDI1OTc4NTUwMDA0MDAyMSI+IuC2h+C2uOC2reC3lOC2uCDgt4Dgt5ngtq0g4Lax4LeQ4LeA4LatIOC2uuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fcGF0dGVybl9jb3JyZWN0IiBtc2dpZD0iOTAzOTAwODY1MDM2MjI2MTIzNyI+IuC2seC3kuC3gOC3kOC2u+C2r+C3kuC2uuC3kiEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3BhdHRlcm5fd3JvbmciIG1zZ2lkPSI0MzE3OTU1MDE0OTQ4MTA4Nzk0Ij4i4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Bhc3N3b3JkX3dyb25nIiBtc2dpZD0iNTczNzgxNTM5MzI1MzE2NTMwMSI+IuC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4/gt4Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjZXVubG9ja19tdWx0aXBsZV9mYWlsdXJlcyIgbXNnaWQ9Ijc1NDEzNzU4MzAyMjc5MjQyOSI+IuC2uOC3lOC3hOC3lOC2qyDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4LaF4Laf4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC3miDgtovgtrTgtrvgt5Lgtrgg4La04LeK4oCN4La74La64Lax4LeK4Lat4La64Lax4LeKIOC2nOC2q+C2sSDgtongtprgt4rgtrjgt4Dgt48g4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wbHVnZ2VkX2luIiBtc2dpZD0iODA1Nzc2MjgyODM1NTU3MjMxNSI+IuC2huC2u+C3neC2tOC2q+C2uiDgt4Dgt5ngtrjgt5LgtrHgt4osIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2NoYXJnZWQiIG1zZ2lkPSIzMjE2MzU3NDU2ODQwNjA2MjQiPiLgtoXgtrvgt53gtrTgt5Lgtq3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2JhdHRlcnlfc2hvcnQiIG1zZ2lkPSI0NDc3MjY0ODQ5Mzg2ODUwMjY2Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbG93X2JhdHRlcnkiIG1zZ2lkPSIxNDgyODczOTgxOTE5MjQ5NzQwIj4i4LaU4La24Lac4LeaIOC2huC2u+C3neC2tOC2muC2uuC2pyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjUwOTk0MzkyNzc4MTkyMTUzOTkiPiJTSU0g4La04LatIOC2seC3kOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUxNjU5MTk2MDk1NzkxNDc0Ij4i4Lan4LeQ4La24LeK4La94Lan4La64LeaIFNJTSDgtrTgtq0g4Lax4Lec4La44LeQ4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjIxODY5MjA1ODU2OTUxNjkwNzgiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrog4Lat4LeU4LeFIFNJTSDgtrTgtq0g4Lax4LeQ4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTM3Mjc4NzEzODAyMzI3MjYxNSI+IlNJTSDgtrTgtq3gtprgt4og4LaH4Lat4LeU4La94LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iMzUyNjU3MzA5OTAxOTMxOTQ3MiI+IlNJTSDgtrTgtq0g4Lax4Lec4La44LeQ4LatIOC3hOC3nSDgtprgt5Lgtrrgt4Dgt5Lgtrog4Lax4Lec4LeE4LeQ4LaaLiBTSU0g4La04Lat4Laa4LeKIOC2h+C2reC3lOC2veC2reC3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI1MDk2MTQ5NjY1MTM4OTE2MTg0Ij4i4La34LeP4LeA4LeS4Lat4LePIOC2muC3hSDgtrHgt5zgt4Tgt5Dgtprgt5IgU0lNIOC2tOC2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iOTEwOTA0NjQzNDMzMTUxMzcxIj4i4LaU4La24Lac4LeaIFNJTSDgtrTgtq0g4LeD4LeK4Lau4LeS4La74LeAIOC2heC2tuC2vSDgtprgtrsg4Lat4LeS4La24LeaLlxuIOC3gOC3meC2seC2reC3iiBTSU0g4La04Lat4Laa4LeKIOC3g+C2s+C3hOC3jyDgtpTgtrbgtpzgt5og4LeD4Lea4LeA4LeP4Lav4LeP4La64Laa4La64LePIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgtrvgtpzgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIwMTU5NDkwNTE1Mjc0Njg4NiI+IuC2tOC3meC2uyDgtpzgt5Pgtq0g4La24Lec4Lat4LeK4Lat4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjYwODkyOTc2NTA0ODEyOTIzNjMiPiLgtorgt4Xgtp8g4Lac4LeT4LatIOC2tuC3nOC2reC3iuC2reC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1OTA4ODc4Njc4MDEyODAwMSI+IuC3gOC3kuC2u+C3j+C2uCDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTg4ODQyMjkzODM1MTAxOTQyNiI+IuC2sOC3j+C3gOC2miDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDU2MjMxODM3ODc2Njk4NzYwMSI+IuC2seC3kOC3gOC2reC3k+C2uOC3miDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbWVyZ2VuY3lfY2FsbHNfb25seSIgbXNnaWQ9IjY3MzM5NzgzMDQzODYzNjU0MDciPiLgt4Tgtq/gt5Lgt4Pgt5Ig4LaH4La44Lat4LeU4La44LeKIOC2tOC2uOC2q+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjE0MzM4OTIyNDk4NjAyODUwMSI+IuC2ouC3j+C2veC2uiDgtoXgtpzgt5Tgt4Xgt5Qg4Lav4La44LePIOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc2ltX3B1a19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9Ijc0NDE3OTczMzk5NzYyMzAiPiJTSU0g4La04LatIFBVSyDgtoXgtpzgt5Tgt4Xgt5Qg4Lav4La44LePIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV9wdWtfbG9ja2VkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjgxMjc5MTYyNTUyNDUxODEwNjMiPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4LaL4La04Lav4Lea4LeB4La6IOC2tuC2veC2seC3iuC2sSDgt4Tgt50g4La04La74LeS4La34Led4Lac4LeS4LaaIOC3g+C3muC3gOC3j+C3gCDgtoXgtrjgtq3gtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI4MDY2NjYwMTI5MjA2MDAxMDM5Ij4iU0lNIOC2tOC2rSDgtoXgtpzgt5Tgt4Xgt5Qg4Lav4La44LePIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI1OTUzMjMyMTQwNTI4ODEyNjQiPiJTSU0g4La04LatIOC2heC2nOC3lOC3heC3lCDgtoXgtrvgt5Lgtrjgt5LgtrHgt4ouLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjY0ODE2MjM4MzAzNDQxMDcyMjIiPiLgtpTgtrYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LeA4LeP4La74La64Laa4LeKIOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5Pgtrjgt5og4La74Lan4LeP4LeAIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtofgtrMg4LaH4LatLiBcblxu4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtofgtq3gt5Tgt4Xgtq0g4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl90b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSIyNzI1OTczMjg2MjM5MzQ0NTU1Ij4i4LaU4La2IOC2uOC3lOC2u+C2tOC2r+C2uiDgt4Dgt4/gtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtqfgtrrgt5LgtrTgt4rgtprgt5zgtqcg4LaH4LatLiBcblxu4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2muC3kuC2seC3iiDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI2MjE2NjcyNzA2NTQ1Njk2OTU1Ij4i4LaU4La2IFBJTiDgtoXgtoLgtprgtrogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LeA4LeP4La74La64Laa4LeKIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtqfgtrrgt5LgtrTgt4og4Laa4Lec4LanIOC2h+C2rS5cblxuIOC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgtprgt4og4LaH4Lat4LeU4LeF4LatIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4/gt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9nbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjkxOTE2MTE5ODQ2MjU0NjA4MjAiPiLgtpTgtrYg4LeA4LeQ4La74Lav4LeS4La64LanIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC3gOC2reC3j+C3gOC2muC3iiDgtpTgtrbgtpzgt5og4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC3miDgtrvgtqfgt4/gt4Ag4LaH4LazIOC2h+C2rS4g4LaF4LeD4LeP4La74LeK4Lau4LaaIOC2i+C2reC3iuC3g+C3hCDgtprgt5Lgtrvgt5Pgtrjgt4ogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Lax4LeKIOC2tOC3g+C3lOC3gCwg4LaU4La24Lac4LeaIEdvb2dsZSDgtrTgt5TgtrvgtrHgtrog4LeA4LeT4La44LeKIOC2t+C3j+C3gOC3kuC2reC2uuC3meC2seC3iiDgtpTgtrbgtpzgt5og4Lan4LeQ4La24LeK4La94Lan4La6IOC2heC2nOC3lOC3heC3lCDgt4Tgt5Dgtrvgt5Pgtrjgtqcg4LaU4La24Lac4LeZ4Lax4LeKIOC2heC3g+C2uuC3ki5cblxuIOC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDgtrTgt4Pgt5Tgt4Ag4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2dsb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI1OTAyMjc1NTk3NjM3NjI3NTEiPiLgtpTgtrYg4LeA4LeQ4La74Lav4LeS4La64LanIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC3gOC2reC3j+C3gOC2muC3iiDgtpTgtrbgtpzgt5og4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC3miDgtrvgtqfgt4/gt4Ag4LaH4LazIOC2h+C2rS4g4LaF4LeD4LeP4La74LeK4Lau4LaaIOC2i+C2reC3iuC3g+C3hCDgtprgt5Lgtrvgt5Pgtrjgt4ogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Lax4LeKIOC2tOC3g+C3lOC3gCwg4LaU4La24Lac4LeaIEdvb2dsZSDgtrTgt5TgtrvgtrHgtrog4LeA4LeT4La4IOC2t+C3j+C3gOC3kuC2reC2uuC3meC2seC3iiDgtpTgtrbgtpzgt5og4Lav4LeU4La74Laa4Lau4Lax4La6IOC2heC2nOC3lOC3heC3lCDgt4Tgt5Dgtrvgt5Pgtrjgtqcg4LaU4La24Lac4LeZ4Lax4LeKIOC2heC3g+C2seC3lCDgtofgtq0uXG5cbiDgtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4La04LeD4LeU4LeAIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2MTI4MTA2Mzk5NzQ1NzU1NjA0Ij4i4LaU4La2IOC2p+C3kOC2tuC3iuC2veC2p+C2uiDgtoXgtpzgt5Tgt4Xgt5Qg4LeE4LeQ4La74LeT4La44LanIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtoXgt4Dgt4Pgt4rgtq7gt48gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrsg4LaH4LatLiDgtoXgt4Dgt4Pgt4rgtq7gt48gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2heC3g+C3j+C2u+C3iuC2ruC2muC3gCDgtovgtq3gt4rgt4Pgt4Qg4Laa4LeS4La74LeT4La44Laa4LeS4Lax4LeKIOC2tOC3g+C3lOC3gCwg4Lan4LeQ4La24LeK4La94Lan4La6IOC2muC2u+C3iuC2uOC3j+C2seC3iuC2rSDgt4Hgt4/gtr3gt48g4La44LeU4La94LeKIOC2reC2reC3iuC3gOC2uuC2pyDgtrHgt5Dgt4Dgtq0g4La04Lat4LeKIOC3gOC2sSDgtoXgtq3gtrsg4LeD4LeS4La64La94LeUIOC2tOC2u+C3kuC3geC3k+C2veC2miDgtq/gtq3gt4rgtq0g4Lax4LeQ4Lat4LeSIOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg2MDM1NjUxNDIxNTY4MjY1NjUiPiLgtpTgtrYg4Lav4LeU4La74Laa4Lau4Lax4La6IOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5Pgtrjgtqcg4LeA4LeP4La7IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC2muC2r+C3kyDgt4Dgt5Dgtrvgtq/gt5Mg4La04LeK4oCN4La74La64Lat4LeK4Lax4La64Lax4LeKIOC2nOC3meC2sSDgtq3gt5Lgtrbgt5ouIOC2reC3gOC2reC3iiDgtoXgt4Pgt4/gtrvgt4rgtq7gtpog4La04LeK4oCN4La74La64Lat4LeK4LaxIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2muC3kuC2seC3iiDgtrTgt4Pgt5Tgt4AsIOC2r+C3lOC2u+C2muC2ruC2seC2uiDgtprgtrvgt4rgtrjgt4/gtrHgt4rgtq3gt4Hgt4/gtr3gt4/gt4Dgt5og4La04LeZ4La74Lax4LeS4La44LeS4La64LanIOC2uuC3heC3kiDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4DgtrEg4LaF4Lat4La7IOC3g+C3kuC2uuC2veC3lOC2uCDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4Lav4Lat4LeK4LatIOC2seC3kOC2reC3kiDgt4Dgt5Mg4La64La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjI4MDg3MzUxNjQ5MzkzNDM2NSI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC2lOC2tiDgt4Dgt5Dgtrvgtq/gt5Ig4La04LeK4oCN4La74La64Lat4LeK4LaxIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgt4Dgt4/gtrvgtrrgtprgt4og4Lac4LeZ4LaxIOC2h+C2rS4g4Lav4LeQ4Lax4LeKIOC2p+C3kOC2tuC3iuC2veC2p+C2uiDgtprgtrvgt4rgtrjgt4/gtrHgt4rgtq3gt4Hgt4/gtr3gt48g4LeD4LeU4La04LeU4La74LeU4Lav4LeK4LavIOC3gOC3meC2rSDgtrrgt4Xgt5Ig4La04LeS4LeE4LeS4Lan4LeU4LeA4LeT4La4IOC2muC3meC2u+C3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzAyNTUwNDcyMTc2NDkyMjI0NiI+IuC2lOC2tiDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pyDgt4Dgt4/gtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC2muC2r+C3kyDgt4Dgt5Dgtrvgtq/gt5Mg4La04LeK4oCN4La74La64Lat4LeK4Lax4La64Lax4LeKIOC2nOC3meC2sSDgtq3gt5Lgtrbgt5ouIOC2r+C3kOC2seC3iiDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4Laa4La74LeK4La44LeP4Lax4LeK4Lat4LeB4LeP4La94LePIOC2tOC3meC2u+C2seC3kuC2uOC3kuC2uuC2pyDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4DgtrHgt5Qg4La94La24La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYyNTE0ODAzNDMzOTQzODk2NjUiPiLgtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC2muC3kuC2seC3iiDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeP4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iMjYyNjk5OTQ0OTYxMDY5NTkzMCI+IuC2u+C2p+C3j+C3gCDgtoXgtrjgtq3gtprgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fZm9yZ290X3BhdHRlcm4iIG1zZ2lkPSIyNTg4NTIxNTAxMTY2MDMyNzQ3Ij4i4Lac4LeS4Lar4LeU4La44LeaIOC2heC2nOC3lOC3heC3lCDgtoXgtrvgt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjI3NTEzNjg2MDUyODcyODg4MDgiPiLgtrvgtqfgt48g4LaL4Lat4LeK4LeD4LeP4LeEIOC2muC3kuC2u+C3k+C2uOC3iiDgt4Dgt5Dgtqngt5LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTMxODE2MjU2MTAwNzA3Nzg0Ij4i4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC2pywg4LaU4La24Lac4LeaIEdvb2dsZSDgtpzgt5Lgtqvgt5Tgtrgg4LeD4La44LacIOC2tOC3lOC2u+C2seC2uiDgt4DgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9Ijg4NDY4ODE0MjQxMDY0ODQ0NDciPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4Lax4LeP4La44La6ICjgtoot4Lat4LeQ4La04LeR4La9KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fZ2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI1OTU4MDI4MzgzOTU0NzM4NTI4Ij4i4La44LeU4La74La04Lav4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjcxMzA4OTM2OTQ3OTU3ODYzMDAiPiLgtrTgt5TgtrvgtrHgtrog4LeA4LeZ4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjEzNjQwNTE0NzMzNDc0ODU5MDgiPiLgt4Dgtr3gtoLgtpzgt5Qg4Lax4Lec4LeA4LaxIOC2tOC2u+C3kuC3geC3k+C2veC2miDgtrHgt4/gtrjgtrrgtprgt4og4LeE4LedIOC2uOC3lOC2u+C2tOC2r+C2uuC2muC3ii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2dsb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSIxNjk2OTI0NzYzNjkwMzc5MDczIj4i4LaU4La24Lac4LeaIOC2tOC2u+C3kuC3geC3k+C2veC2miDgtrHgt4/gtrjgtrog4LeE4LedIOC2uOC3lOC2u+C2tOC2r+C2uiDgtoXgtrjgtq3gtprgtq8/XG4gIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iIOC3gOC3meC2rSDgtrrgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9nbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSI3MTE0NjI3MzUxMjg2OTMzODY3Ij4i4La04La74LeS4Laa4LeK4LeC4LePIOC2muC2u+C2uOC3kuC2seC3ii4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fdW5sb2NrX2xhYmVsIiBtc2dpZD0iNzM3NDQwNDgzMjIwNjY3MDU0Ij4i4LaF4Laf4LeU4La9IOC2heC2u+C3kuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fc291bmRfb25fbGFiZWwiIG1zZ2lkPSI5MDY4ODc3NTc2NTEzNDI1OTcwIj4i4LeB4La24LeK4Lav4La6IOC3g+C2muC3iuKAjeC2u+C3k+C2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX3NvdW5kX29mZl9sYWJlbCIgbXNnaWQ9Ijk5NjgyMjgyNTE1NDMxOTAyNiI+IuC3geC3iuKAjeC2u+C3gOC3iuKAjeC2uiDgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9zdGFydCIgbXNnaWQ9IjM5NDEwNDU1MDI5MzMxNDI4NDciPiLgtrvgtqfgt4/gt4Ag4LaF4La74La54LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvY2tzY3JlZW5fYWNjZXNzX3BhdHRlcm5fY2xlYXJlZCIgbXNnaWQ9IjU1ODM0Nzk3MjEwMDE2Mzk1NzkiPiLgtrvgtqfgt4/gt4Ag4LeE4LeS4LeD4LeKIOC2muC2u+C2sSDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2Nrc2NyZWVuX2FjY2Vzc19wYXR0ZXJuX2NlbGxfYWRkZWQiIG1zZ2lkPSI2NzU2MDMxMjA4MzU5MjkyNDg3Ij4i4Laa4Lec4Lan4LeU4LeA4Laa4LeKIOC2keC2muC2reC3lCDgtprgtrvgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9ja3NjcmVlbl9hY2Nlc3NfcGF0dGVybl9kZXRlY3RlZCIgbXNnaWQ9IjQ5ODg3MzA4OTU1NTQwNTcwNTgiPiLgtrvgtqfgt4/gt4Ag4LeD4La44LeK4La04LeW4La74LeK4Lar4La64LeSIjwvc3RyaW5nPgorICAgIDwhLS0gU3RyaW5nLmZvcm1hdCBmYWlsZWQgZm9yIHRyYW5zbGF0aW9uIC0tPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQgKDU2Nzg2MjQ2MjQ2ODE0MDAxOTEpIC0tPgorICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2FkZF93aWRnZXQiIG1zZ2lkPSI4MjczMjc3MDU4NzI0OTI0NjU0Ij4i4LeA4LeS4Lai4Lan4La6IOC2keC2muC2reC3lCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZW1wdHlfc2xvdCIgbXNnaWQ9IjEyODE1MDU3MDMzMDc5MzA3NTciPiLgt4Tgt5Lgt4Pgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2V4cGFuZGVkIiBtc2dpZD0iMjI3ODEwNjAyMjMxMTE3MDI5OSI+IuC2heC2nOC3lOC3heC3lCDgtoXgtrvgt5LgtrEg4La04LeK4oCN4La74Lav4Lea4LeB4La6IOC3gOC3kuC2r+C3hOC3jyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9jb2xsYXBzZWQiIG1zZ2lkPSI2MzY2OTkyMDY2OTM2MDc2Mzk2Ij4i4LaF4Lac4LeU4LeF4LeUIOC2heC2u+C3kuC2sSDgtrTgt4rigI3gtrvgtq/gt5rgt4Hgtrog4LeE4LeQ4Laa4LeS4La94LeTIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldCIgbXNnaWQ9IjY1MjcxMzEwMzk3NDE4MDgyNDAiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDgt4Dgt5LgtqLgtqfgt4ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91c2VyX3NlbGVjdG9yIiBtc2dpZD0iMTIyNjc5ODM3MDkxMzY5ODg5NiI+IuC2tOC2u+C3kuC3geC3k+C2veC2miDgtq3gt53gtrvgtrHgt4rgtrHgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3N0YXR1cyIgbXNnaWQ9IjgwMDgyNjQ2MDM5MzU5MzA2MTEiPiLgtq3gtq3gt4rgt4DgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2NhbWVyYSIgbXNnaWQ9Ijg5MDQyMzExOTQxODExMTQ2MDMiPiLgtprgt5Dgtrjgtrvgt4/gt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlnYXVyZF9hY2Nlc3NpYmlsaXR5X21lZGlhX2NvbnRyb2xzIiBtc2dpZD0iMjYyMjA5NjU0MjkyMTYxODA2Ij4i4La44LeP4Law4LeK4oCN4La6IOC2tOC3j+C2veC2miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfc3RhcnQiIG1zZ2lkPSI4NzM2ODUzNjE1NTg4ODI4MTk3Ij4i4LeA4LeS4Lai4Lan4La6IOC2seC3kOC3gOC2rSDgtoXgtrHgt5TgtrTgt5Lgt4Xgt5Lgt4Dgt5ngt4Xgtqcg4LeD4LeQ4Laa4LeD4LeS4La4IOC2h+C2u+C2ueC3lOC2q+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiLgt4Dgt5LgtqLgtqfgt4og4Lax4LeQ4LeA4LatIOC2heC2seC3lOC2tOC3kuC3heC3kuC3gOC3meC2veC2pyDgt4Pgt5Dgtprgt4Pgt5Pgtrgg4LaF4LeA4LeD4LeP4Lax4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4LeA4LeS4Lai4Lan4La6IOC2uOC3kOC2muC3kyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4i4LaF4Lac4LeU4LeF4LeUIOC2seC3nOC2r+C3kOC2uOC3liDgtrTgt4rigI3gtrvgtq/gt5rgt4Hgtrog4La04LeU4LeF4LeU4La94LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiLgt4Pgtrvgt4rgtrTgtqsg4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fdW5sb2NrIiBtc2dpZD0iMTQ5MDg0MDcwNjA3NTI0NjYxMiI+IuC2u+C2p+C3jyDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZmFjZV91bmxvY2siIG1zZ2lkPSI0ODE3MjgyNTQzMzUxNzE4NTM1Ij4i4La44LeU4LeE4LeU4LarIOC2t+C3j+C3gOC3kuC2reC2uuC3meC2seC3iiDgtoXgtp/gt5Tgt4Xgt5Qg4LeE4LeQ4La74LeT4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiJQSU4g4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLgtrjgt5TgtrvgtrTgtq8g4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fYXJlYSIgbXNnaWQ9Ijc2Nzk4OTEzMjQ1MDk1OTc5MDQiPiLgtrvgtqfgt48g4La04LeK4oCN4La74Lav4Lea4LeB4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfYXJlYSIgbXNnaWQ9IjY3MzYwNjQ0OTQwMTk5Nzk1NDQiPiLgt4Pgtrvgt4rgtrTgtqsg4La04LeK4oCN4La74Lav4Lea4LeB4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfY2hhcmFjdGVyIiBtc2dpZD0iNzMzNjQ3MDUzNTM4NTAwOTUyMyI+IuC2heC2muC3iuC3guC2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW51bGFyaXR5X2xhYmVsX3dvcmQiIG1zZ2lkPSI3MDc1NTcwMzI4Mzc0OTE4NjYwIj4i4LeA4Lag4Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnVsYXJpdHlfbGFiZWxfbGluayIgbXNnaWQ9IjU4MTU1MDg4ODA3ODI0ODgyNjciPiLgt4Pgtrbgt5DgtrPgt5LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudWxhcml0eV9sYWJlbF9saW5lIiBtc2dpZD0iNTc2NDI2NzIzNTAyNjEyMDg4OCI+IuC2u+C3muC2m+C3j+C3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfYW1wbSIgbXNnaWQ9IjQ1ODQzMzgwODM1MjkzNTU5ODIiPiI8eGxpZmY6ZyBpZD0iSE9VUiI+JS1sPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJBTVBNIj4lUDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX2NhcF9hbXBtIiBtc2dpZD0iMjA4MzQ2NTk5Mjk0MDQ0NDM2NiI+Ijx4bGlmZjpnIGlkPSJIT1VSIj4lLWw8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IkFNUE0iPiVwPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X2ZhaWxlZCIgbXNnaWQ9IjU0MTAyNzAzMjkxMTQyMTIwNDEiPiLgtprgtrvgt4rgtrjgt4/gtrHgt4rgtq0g4LeB4LeP4La94LePIOC2tOC2u+C3k+C2muC3iuC3guC2q+C2uiDgtoXgt4Pgt4/gtrvgt4rgtq7gtprgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9ub3Rfc3lzdGVtIiBtc2dpZD0iNDQzNTIwMTY1Njc2NzI3NjcyMyI+IkZBQ1RPUllfVEVTVCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4AgL3N5c3RlbS9hcHAg4LeE4LeSIOC3g+C3iuC2ruC3j+C2tOC3kuC2rSDgtrTgt5Dgtprgt5rgtqIg4LeD4Laz4LeE4LePIOC2tOC2uOC2q+C2muC3iiDgt4Pgt4Tgtrog4Lav4Laa4LeK4LeA4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY3Rvcnl0ZXN0X25vX2FjdGlvbiIgbXNnaWQ9Ijg3Mjk5MTg3NDc5OTk5ODU2MSI+IkZBQ1RPUllfVEVTVCDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4Ag4La94La24LeP4Lav4LeZ4LaxIOC2tOC3kOC2muC3muC2ouC2uuC2muC3iiDgt4Pgt5zgtrrgt4/gtpzgtq0g4Lax4Lec4LeE4LeQ4Laa4LeSIOC3gOC3kuC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWN0b3J5dGVzdF9yZWJvb3QiIG1zZ2lkPSI2MzIwMTY4MjAzMDUwNzkxNjQzIj4i4La04LeU4Lax4La74LeP4La74La44LeK4La3IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjE5ODc0ODM5Nzc4MzQ2MDM4NzIiPiJcIjx4bGlmZjpnIGlkPSJUSVRMRSI+JXM8L3hsaWZmOmc+XCIg4LeE4LeSIOC2h+C2reC3kiDgtrTgt5Lgtqfgt5Tgt4Ag4Laa4LeS4La64Lax4LeK4Lax4LeaOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ190aXRsZV9kZWZhdWx0IiBtc2dpZD0iNjk2MTkwMzIxMzcyOTY2NzU3MyI+IuC2ouC3j+C3gOC3j+C3g+C3iuC2muC3iuKAjeC2u+C3kuC2tOC3iuC2p+C3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkX3RpdGxlIiBtc2dpZD0iMjYxOTM3NjU1NTUyNTExNjU5MyI+IuC3g+C2guC2oOC2veC2seC2uiDgtq3gt4Tgt4Dgt5Tgtrvgt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ianNfZGlhbG9nX2JlZm9yZV91bmxvYWRfcG9zaXRpdmVfYnV0dG9uIiBtc2dpZD0iMzExMjc1MjAxMDYwMDQ4NDEzMCI+IuC2uOC3meC2uCDgtrTgt5Lgtqfgt5Tgt4Dgt5ngtrHgt4og4LaJ4LeA4Lat4LeKIOC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkX25lZ2F0aXZlX2J1dHRvbiIgbXNnaWQ9IjU2MTQ4NjEyOTMwMjYwOTk3MTUiPiLgtrjgt5ngtrgg4La04LeS4Lan4LeU4LeA4LeZ4LeE4LeSIOC2ieC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImpzX2RpYWxvZ19iZWZvcmVfdW5sb2FkIiBtc2dpZD0iMzQ2ODgxNjM1NzA5NTM3ODU5MCI+Ijx4bGlmZjpnIGlkPSJNRVNTQUdFIj4lczwveGxpZmY6Zz5cblxu4LaU4La24LanIOC2uOC3meC2uCDgtrTgt5Lgtqfgt5Tgt4Dgt5ngtrHgt4og4LeD4LaC4Lag4La94Lax4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtoXgt4Dgt4Hgt4rigI3gtrog4La24LeA4LanIOC2lOC2tuC2pyDgt4Dgt5Lgt4Hgt4rgt4Dgt4/gt4Pgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9sYWJlbCIgbXNnaWQ9IjY4NjAyNjE3NTg2NjU4MjUwNjkiPiLgtq3gt4Tgt4Dgt5Tgtrvgt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG91YmxlX3RhcF90b2FzdCIgbXNnaWQ9IjQ1OTUwNDY1MTU0MDAyNjg4ODEiPiLgtovgtrTgtq/gt5ngt4M6IOC3gOC3kuC3geC3j+C2veC2seC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeEIOC2muC3lOC2qeC3jyDgtprgt5Lgtrvgt5Pgtrjgtqcg4Lav4LeZ4LeA4La74Laa4LeKIOC2reC2p+C3iuC2p+C3lCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfdGhpc19mb3JtIiBtc2dpZD0iNDYxNjc1ODg0MTE1NzgxNjY3NiI+IuC3g+C3iuC3gOC2uuC2guC2muC3iuKAjeC2u+C3kuC2uiDgtrTgt5Lgtrvgt4Dgt5TgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXR1cF9hdXRvZmlsbCIgbXNnaWQ9IjcxMDM0OTUwNzAxODA1OTA4MTQiPiLgt4Pgt4rgt4DgtrrgtoLgtprgt4rigI3gtrvgt5Lgtrog4La04LeS4La74LeA4LeU4La4IOC3g+C2muC3g+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3NfbmFtZV9zZXBhcmF0b3IiIG1zZ2lkPSI2MzUwMTQ1MTU0Nzc5NzA2NzcyIj4iICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FkZHJlc3Nfc3VtbWFyeV9uYW1lX2Zvcm1hdCIgbXNnaWQ9IjMyNjgwNDEwNTQ4OTkyMTQ5NDUiPiIkMSQyJDMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9hZGRyZXNzX3N1bW1hcnlfc2VwYXJhdG9yIiBtc2dpZD0iNzQ4MzMwNzg5MzE3MDMyNDEyOSI+IiwgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfYWRkcmVzc19zdW1tYXJ5X2Zvcm1hdCIgbXNnaWQ9IjQ4NzQ0NTk0NTU3ODY4MjczNDQiPiIkMSQyJDMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wcm92aW5jZSIgbXNnaWQ9IjIyMzE4MDY1NTM4NjM0MjIzMDAiPiLgtrTgt4Xgt4/gtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9wb3N0YWxfY29kZSIgbXNnaWQ9IjQ2OTY0MzA0MDc2ODkzNzcxMDgiPiLgtq3gt5DgtrTgt5Dgtr3gt4og4Laa4Lea4Lat4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfc3RhdGUiIG1zZ2lkPSI2OTg4ODk0MTk1NTIwMDQ0NjEzIj4i4Lai4Lax4La04Lav4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfemlwX2NvZGUiIG1zZ2lkPSI4Njk3NTQ0NTkyNjI3MzIyOTQ2Ij4iWklQIOC2muC3muC2reC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2NvdW50eSIgbXNnaWQ9IjIzNzA3Mzc3MTAyMDM2Mjg5MSI+IuC2tOC3iuKAjeC2u+C3j+C2seC3iuC2reC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2lzbGFuZCIgbXNnaWQ9IjQwMjAxMDA4NzU5ODQ2NjcwMjUiPiLgtq/gt5bgtrTgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9kaXN0cmljdCIgbXNnaWQ9Ijg0MDA3MzUwNzMzOTIyNjc2NzIiPiLgtq/gt5Lgt4Pgt4rgtq3gt4rigI3gtrvgt5Lgtprgt4rgtprgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhdXRvZmlsbF9kZXBhcnRtZW50IiBtc2dpZD0iNTM0MzI3OTQ2MjU2NDQ1MzMwOSI+IuC2r+C3meC2tOC3j+C2u+C3iuC2reC2uOC3muC2seC3iuC2reC3lOC3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX3ByZWZlY3R1cmUiIG1zZ2lkPSIyMDI4NDk5NDg1MDY1ODAwNDE5Ij4i4La04LeK4oCN4La74LeP4Lax4LeK4Lat4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfcGFyaXNoIiBtc2dpZD0iODIwMjIwNjEwNTQ2ODgyMDA1NyI+IuC2muC3neC2u+C2veC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImF1dG9maWxsX2FyZWEiIG1zZ2lkPSIzNTQ3NDA5MDUwODg5OTUyNDIzIj4i4La04LeK4oCN4La74Lav4Lea4LeB4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXV0b2ZpbGxfZW1pcmF0ZSIgbXNnaWQ9IjI4OTM4ODA5Nzg4MzU2OTg4MTgiPiLgtpHgtrjgt5Lgtrvgt5rgtqfgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRIaXN0b3J5Qm9va21hcmtzIiBtc2dpZD0iMzc3NTI2NTc3NTQwNTEwNjk4MyI+IuC2lOC2tuC2nOC3miDgt4Dgt5ngtrbgt4og4La04LeS4Lan4LeU4LeD4Lax4LeKIOC3g+C3hCDgtongtq3gt5Lgt4Tgt4/gt4Pgtrog4Laa4LeS4La64LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEhpc3RvcnlCb29rbWFya3MiIG1zZ2lkPSI4NDYyMzc4MjI2NjAwNDM5NjU4Ij4i4La24LeK4oCN4La74LeA4LeK4LeD4La74La6IOC2seC3kOC2u+C2ueC3liDgt4Pgt5Lgtrrgtr3gt5QgVVJMIOC3g+C3hCDgt4Pgt5Lgtrrgtr3gt5Qg4La24LeK4oCN4La74LeA4LeK4LeD4La7IOC2tOC3kuC2p+C3lOC3g+C2seC3iiDgt4Dgtr0g4LaJ4Lat4LeS4LeE4LeP4LeD4La6IOC2muC3kuC2uuC3gOC3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4Lan4LeE4LaxOiDgt4Dgt5ngtrbgt4og4La24LeK4oCN4La74LeA4LeK4LeD4La7IOC2heC3gOC3geC3iuKAjeC2uuC2reC3jyDgt4Pgtrjgtpwg4Lat4LeZ4LeA4LeZ4Lax4LeSIOC2tOC3j+C2u+C3iuC3geC3gCDgtrbgt4rigI3gtrvgt4Dgt4rgt4Pgtrsg4LeA4La94LanIOC3hOC3nSDgt4Dgt5ngtrHgtq3gt4og4La64LeZ4Lav4LeU4La44LeK4LeA4La94LanIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4La24La9IOC2seC3nOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgbXNnaWQ9IjM3MTQ3ODUxNjUyNzMzMTQ0OTAiPiLgt4Dgt5ngtrbgt4og4La04LeS4Lan4LeU4LeD4Lax4LeKIOC3g+C3hCDgtongtq3gt5Lgt4Tgt4/gt4Pgtrrgtqcg4La94LeS4LeA4LeS4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfd3JpdGVIaXN0b3J5Qm9va21hcmtzIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI2ODI1NTI3NDY5MTQ1NzYwOTIyIj4i4LaU4La24Lac4LeaIOC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miDgtpzgtrbgtqngt48g4Laa4La7IOC2h+C2reC3kiDgtrbgt4rigI3gtrvgt4Dgt4rgt4Pgtrvgtrrgt5og4LaJ4Lat4LeS4LeE4LeP4LeD4La6IOC3hOC3nSDgtrTgt5Lgtqfgt5Tgt4PgtrHgt4og4LeA4LeZ4Lax4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4La24LeK4oCN4La74LeA4LeK4LeD4La7IOC2r+C2reC3iuC2rSDgtrjgt5Dgtprgt5Pgtrjgtqcg4LeE4LedIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La44LeZ4La44Laf4LeS4Lax4LeKIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiDgt4Pgtqfgt4TgtrE6IOC3gOC3meC2tuC3iiDgtpzgt4Dgt5rgt4Lgtqsg4LeE4LeQ4Laa4LeS4La64LeP4LeAIOC3g+C3hOC3kuC2rSDgtq3gt5ngt4Dgt5ngtrHgt5Ig4La04LeP4La74LeK4LeB4LeAIOC2tuC3iuKAjeC2u+C3gOC3iuC3g+C2uyDgt4Tgt50g4LeA4LeZ4Lax4Lat4LeKIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Dgtr3gt5LgtrHgt4og4La44LeZ4La4IOC2heC3gOC3g+C2u+C2uuC2pyDgtrbgtr0g4Lax4Lec4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dyaXRlSGlzdG9yeUJvb2ttYXJrcyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg0OTczODk1MzEwMTQxODU1MDkiPiLgtpTgtrbgtpzgt5og4Lav4LeU4La74Laa4Lau4Lax4La64LeaIOC2huC2oOC2uuC2seC2uiDgtprgtrvgtrEg4La94LavIOC2tuC3iuKAjeC2u+C3gOC3iuC3g+C2uyDgtongtq3gt5Lgt4Tgt4/gt4Pgtrog4LeE4LedIOC2tOC3kuC2p+C3lOC3g+C2sSDgt4Dgt5ngtrHgt4Pgt4og4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiDgtpTgtrbgtpzgt5og4La24LeK4oCN4La74LeA4LeK4LeD4La7IOC2r+C2reC3iuC2rSDgtrjgt5Dgtprgt5Pgtrjgtqcg4LeE4LedIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4Lax4LeS4LeC4LeK4LanIOC2uuC3meC2r+C3lOC2uOC3iiDgtrjgt5ngtrog4La34LeP4LeA4LeS4LatIOC2muC2u+C2uuC3ki4g4LeD4Lan4LeE4LaxOiDgt4Dgt5ngtrbgt4og4La24LeK4oCN4La74LeA4LeK4LeD4La7IOC2heC3gOC3geC3iuKAjeC2uuC2reC3j+C3gOC2uiDgt4Pgtrjgtpwg4Lat4LeZ4LeA4LeZ4Lax4LeSIOC2tOC3j+C2u+C3iuC3geC3gCDgtrbgt4rigI3gtrvgt4Dgt4rgt4Pgtrsg4LeE4LedIOC3gOC3meC2seC2reC3iiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeA4LeS4LeD4LeS4Lax4LeKIOC2uOC3meC2uCDgtoXgt4Dgt4Pgtrvgtrog4La24La9IOC2nOC3kOC2seC3iuC3gOC3kuC2uiDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXRBbGFybSIgbXNnaWQ9IjEzNzkyOTQ1NTYzNjIwOTE4MTQiPiLgt4Pgt5PgtrHgt5Tgt4Dgtprgt4og4LeD4LeQ4Laa4LeD4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2V0QWxhcm0iIG1zZ2lkPSIzMTYzOTIwMzkxNTc0NzM4NDgiPiLgt4Pgt4rgtq7gt4/gtrTgtrHgtrog4Laa4La74LaxIOC2veC2ryDgt4Pgt5PgtrHgt5Qg4LaU4La74La94Led4LeD4LeUIOC2uuC3meC2r+C3lOC2uOC3miDgt4Pgt5PgtrHgt5Tgt4Ag4LeD4Laa4LeD4LeKIOC2muC2u+C2seC3iuC2seC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaJ4LapIOC2r+C3meC2seC3iuC2sS4g4LaH4Lat4LeQ4La44LeKIOC3g+C3k+C2seC3lCDgtpTgtrvgtr3gt53gt4Pgt5Qg4La64LeZ4Lav4LeU4La44LeKIOC2uOC3meC2uCDgtoXgtoLgtpzgtrog4Laa4LeK4oCN4La74LeS4La64LeP4LeA4LanIOC2seC2guC3gOC3jyDgtrHgt5zgtq3gt5Lgtrbgt5Pgtrjgtqcg4LaJ4LapIOC2reC3kuC2tuC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FkZFZvaWNlbWFpbCIgbXNnaWQ9IjU1MjU2NjAwMjYwOTA5NTkwNDQiPiLgt4Tgtqwg4Lat4LeQ4La04LeR4La9IOC2keC2muC3iiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hZGRWb2ljZW1haWwiIG1zZ2lkPSI2NjA0NTA4NjUxNDI4MjUyNDM3Ij4i4LaU4La24Lac4LeaIOC3hOC2rCDgtq3gt5DgtrTgt5Hgtr3gt5og4LaR4LaxIOC2veC3kuC2tOC3kiDgt4Dgt5ngtq0g4LaR4LaxIOC2tOC2q+C3kuC3gOC3kuC2qSDgtpHgtprgtq3gt5Qg4Laa4LeS4La74LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfd3JpdGVHZW9sb2NhdGlvblBlcm1pc3Npb25zIiBtc2dpZD0iNTk2MjIyNDE1ODk1NTI3MzkzMiI+IuC2tuC3iuKAjeC2u+C3gOC3iuC3g+C2u+C2uuC3miDgtrfgt5Yg4LaF4LeA4LeD4La7IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193cml0ZUdlb2xvY2F0aW9uUGVybWlzc2lvbnMiIG1zZ2lkPSIxMDgzNzQzMjM0NTIyNjM4NzQ3Ij4i4La24LeK4oCN4La74LeA4LeU4LeD4La74La64LeaIOC2t+C3liDgt4Pgt4rgtq7gt4/gtrHgt5Pgtrog4LaF4LeA4LeD4La7IOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC2heC2t+C3kuC2uOC2rSDgt4Dgt5ngtrbgt4og4LaF4Lap4LeA4LeSIOC3gOC2veC2pyDgt4Pgt4rgtq7gt4/gtrHgt5Pgtrog4Lat4Lec4La74Lat4LeU4La74LeUIOC2uuC3kOC3gOC3k+C2uOC2pyDgtoXgtrHgt5Lgt4Lgt4rgtqcg4La64LeZ4Lav4LeU4La44LeKIOC2uOC3meC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeZ4La74LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcGFja2FnZVZlcmlmaWNhdGlvbkFnZW50IiBtc2dpZD0iNTU2ODEzOTEwMDY0NTgyOTExNyI+IuC2tOC3kOC2muC3muC2oiDgt4Pgtq3gt4rigI3gtrrgt4/gtrTgtrHgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcGFja2FnZVZlcmlmaWNhdGlvbkFnZW50IiBtc2dpZD0iODQzNzU5MDE5MDk5MDg0MzM4MSI+IuC3g+C3iuC2ruC3j+C2tOC3kuC2rSDgtprgt5zgtqcg4LaH4Lat4LeSIOC2tOC3kOC2muC3muC2ouC2uuC2muC3iiDgt4Pgtq3gt4rigI3gtrrgt4/gtrTgtrHgtrrgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9iaW5kUGFja2FnZVZlcmlmaWVyIiBtc2dpZD0iNDE4Nzc4Njc5MzM2MDMyNjY1NCI+IuC2tOC3kOC2muC3muC2oiDgt4Pgtq3gt4rigI3gtrrgt4/gtrTgtprgtrrgtprgt4og4LeA4LeZ4LatIOC2tuC2s+C3kuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRQYWNrYWdlVmVyaWZpZXIiIG1zZ2lkPSIzMTgwNzQxNzczMjMzODYyMTI2Ij4i4La04LeQ4Laa4Lea4LaiIOC3g+C2reC3iuKAjeC2uuC3j+C2tOC2miDgtongtr3gt4rgtr3gt5Pgtrjgt4og4LeA4La94LanIOC2r+C2u+C2seC3iuC2seC3j+C2pyDgtongtqkg4La94La24LePIOC2r+C3mi4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgt4PgtrPgt4Tgt48g4Laa4LeS4LeD4LeS4LeD4Lea4Lat4LeKIOC2heC3gOC3geC3iuKAjeC2uiDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9zZXJpYWxQb3J0IiBtc2dpZD0iNTQ2MDgzMzI3NjU0NjMxMDc2Ij4i4LeB4LeK4oCN4La74Lea4Lar4LeS4Lac4LatIOC2tOC3nOC2pyDgtrTgt4rigI3gtrvgt4Dgt5rgt4Eg4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2Nfc2VyaWFsUG9ydCIgbXNnaWQ9IjI5OTE2Mzk5ODUyMjQ1OTgxOTMiPiJTZXJpYWxNYW5hZ2VyIEFQSSDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4LaF4Lax4LeU4Laa4LeK4oCN4La74La4IOC2reC3nOC2pyDgt4Dgt5ngtq0g4La04LeK4oCN4La74LeA4Lea4LeBIOC3gOC3k+C2uOC2pyDgtrvgtrPgt4DgtrHgtrrgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0NvbnRlbnRQcm92aWRlcnNFeHRlcm5hbGx5IiBtc2dpZD0iNTA3Nzc3NDI5Nzk0MzQwOTI4NSI+IuC2tuC3j+C3hOC3kuC2uyDgtoXgtrHgt4rgtq3gtrvgt4rgtpzgtq0g4LeD4LeQ4La04La64LeU4La44LeK4Laa4La74LeU4LeA4Lax4LeKIOC3gOC3meC2rSDgtrTgt4rigI3gtrvgt4Dgt5rgt4HgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NDb250ZW50UHJvdmlkZXJzRXh0ZXJuYWxseSIgbXNnaWQ9IjQ1NDQzNDY0ODY2OTc4NTM2ODUiPiLgtoXgtrHgt4rgtq3gtrvgt4rgtpzgtq0g4LeD4La04La64Lax4LeK4Lax4Lax4LeK4LanIOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgt4Dgt5Pgtrjgtqcg4Lav4La74Lax4LeK4Lax4Lax4LeK4LanIOC3guC3meC2veC3iiDgtpHgtprgt5og4LeD4LeS4LanIOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgt4Dgt5Pgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iiDgt4PgtrPgt4Tgt48g4Laa4LeS4LeD4LeS4LeD4Lea4Lat4LeKIOC2heC2r+C3j+C3hSDgtrHgt5zgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl91cGRhdGVMb2NrIiBtc2dpZD0iMzUyNzU1ODM2NjYxNjY4MDg4OSI+IuC3g+C3iuC3gOC2uuC2guC2muC3iuKAjeC2u+C3k+C2uiDgtovgtrTgt4/gtoLgtpwg4La64LeA4Lat4LeK4Laa4LeP4La9IOC2muC3kuC2u+C3k+C2uOC3iiDgtrTgt4Pgt5Tgtrbgtqcg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfdXBkYXRlTG9jayIgbXNnaWQ9IjE2NTU2MjU4MzIxNjY3Nzg0OTIiPiLgtovgtrTgt4/gtoLgtpzgtrog4LaL4Lat4LeK4LeB4LeK4oCN4La74Lea4Lar4LeS4Laa4La74Lar4La64LanIOC2heC2seC3iuC2reC2u+C3iuC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C3kyDgtrHgt5zgt4DgtrEg4La64LeF4LeSIOC2h+C2u+C2ueC3k+C2uOC2muC3iiDgt4PgtrPgt4Tgt48g4LeD4LeU4Lav4LeU4LeD4LeUIOC3gOC3meC2veC3j+C3gCDgtprgt5Tgtrjgtprgt4rgtq8g4La64Lax4LeK4LaxIOC2nOC3kOC2sSDgtrTgtq/gt4rgtrDgtq3gt5Lgtrrgtqcg4Lat4Lec4La74Lat4LeU4La74LeUIOC2veC2tuC3j+C2r+C3k+C2uOC2pyDgtq/gtrvgtrHgt4rgtrHgt4/gtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX21lc3NhZ2UiIG1zZ2lkPSI3NjczNDQ2ODcxMzkxOTU3OTAiPiLgtrbgt4rigI3gtrvgt4Dgt4rgt4Pgtrvgtrrgtqcg4La44LeZ4La4IOC2uOC3lOC2u+C2tOC2r+C2uiDgtrjgtq3gtpog4Lat4La24LePIOC2nOC3kOC2seC3k+C2uOC2pyDgtpTgtrbgtqcg4LaF4LeA4LeB4LeK4oCN4La64LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfcGFzc3dvcmRfbm90bm93IiBtc2dpZD0iNjM4OTY3NTMxNjcwNjY5OTc1OCI+IuC2r+C3kOC2seC3iiDgtrHgt5zgt4Dgt5oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX3Bhc3N3b3JkX3JlbWVtYmVyIiBtc2dpZD0iNjQ5MTg3OTY3ODk5Njc0OTQ2NiI+IuC2uOC2reC2miDgtq3gtrbgt48g4Lac4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9wYXNzd29yZF9uZXZlciIgbXNnaWQ9IjgyNzQzMzAyOTY3ODU4NTUxMDUiPiLgtprgt4Dgtq/gt4/gt4Dgtq3gt4og4Lax4Lec4LeA4LeaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3Blbl9wZXJtaXNzaW9uX2RlbnkiIG1zZ2lkPSI3Mzc0MDM2NzA4MzE2NjI5ODAwIj4i4La44LeZ4La4IOC2tOC3kuC2p+C3lOC3gCDgt4Dgt5Lgt4Dgt5jgtq0g4Laa4LeS4La74LeT4La44LanIOC2lOC2tuC2pyDgtoXgt4Dgt4Pgtrsg4Lax4LeQ4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRleHRfY29waWVkIiBtc2dpZD0iNDk4NTcyOTUyNDY3MDEzMTM4NSI+IuC2tOC3meC3hSDgtrTgt4Pgt5Tgtrvgt5Qg4La04LeU4LeA4La74LeU4LeA4LanIOC2tOC3kuC2p+C2tOC2reC3iiDgtprgtrvgtrEg4La94Lav4LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vcmVfaXRlbV9sYWJlbCIgbXNnaWQ9IjQ2NTA5MTg5MjMwODMzMjA0OTUiPiLgtq3gt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVwZW5kX3Nob3J0Y3V0X2xhYmVsIiBtc2dpZD0iMjU3MjIxNDQ2MTY3NjAxNTY0MiI+IuC2uOC3meC2seC3lOC3gCsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NwYWNlX3Nob3J0Y3V0X2xhYmVsIiBtc2dpZD0iMjQxMDMyODYzOTI3MjE2MjUzNyI+InNwYWNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9lbnRlcl9zaG9ydGN1dF9sYWJlbCIgbXNnaWQ9IjI3NDMzNjI3ODUxMTEzMDk2NjgiPiLgtofgtq3gt5Tgtr3gt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGVfc2hvcnRjdXRfbGFiZWwiIG1zZ2lkPSIzNjU4MTc4MDA3MjAyNzQ4MTY0Ij4i4La44Laa4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoX2dvIiBtc2dpZD0iODI5ODAxNjY2OTgyMjE0MTcxOSI+IuC3g+C3meC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fc2VhcmNoIiBtc2dpZD0iNjc0OTgyNjYzOTA5ODUxMjEyMCI+IuC3g+C3meC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fcXVlcnkiIG1zZ2lkPSI1OTExNzc4NTkzMTI1MzU1MTI0Ij4i4LeD4LeZ4LeA4LeU4La44LeKIOC3gOC3kuC2uOC3g+C3lOC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fY2xlYXIiIG1zZ2lkPSIxMzMwMjgxOTkwOTUxODMzMDMzIj4i4LeA4LeS4La44LeD4LeU4La4IOC3hOC3kuC3g+C3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2h2aWV3X2Rlc2NyaXB0aW9uX3N1Ym1pdCIgbXNnaWQ9IjI2ODg0NTAxMzMyOTc5ODM1NDIiPiLgt4Dgt5Lgtrjgt4Pgt5Tgtrgg4La64Lec4La44LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaHZpZXdfZGVzY3JpcHRpb25fdm9pY2UiIG1zZ2lkPSIyNDUzMjAzNjk1Njc0OTk0NDQwIj4i4LeE4LasIOC3g+C3meC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSI3NDYwNjk0MDcwMzA5NzMwMTQ5Ij4i4LeD4LeK4La04La74LeK4LeBIOC2muC3kuC2u+C3k+C2uOC3meC2seC3iiDgtpzgt4Dgt5rgt4Lgtqvgtrog4LeD4La24La9IOC2muC2u+C2seC3iuC2sSDgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlX2V4cGxvcmVfYnlfdG91Y2hfd2FybmluZ19tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI4NjU1ODg3NTM5MDg5OTEwNTc3Ij4i4LeD4LeK4La04La74LeK4LeB4La6IOC3gOC3meC2reC3kuC2seC3iiDgtpzgt4Dgt5rgt4Lgtqvgtrog4LeD4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyA8eGxpZmY6ZyBpZD0iQUNDRVNTSUJJTElUWV9TRVJWSUNFX05BTUUiPiUxJHM8L3hsaWZmOmc+IOC2pyDgtoXgt4Dgt4Hgt4rigI3gtrrgtrouIOC3g+C3iuC2tOC2u+C3iuC3geC2uiDgt4Dgt5ngtq3gt5LgtrHgt4og4Lac4LeA4Lea4LeC4Lar4La6IOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgt4Dgt5LgtqcsIOC2lOC2tuC2nOC3miDgtofgtp/gt5Lgtr3gt5Lgt4Dgtr3gtqcg4La04LeE4LeFIOC3gOC3kuC3g+C3iuC2reC2uyDgtofgt4Pgt5Lgtrog4LeE4LedIOC2tuC3kOC2veC3kuC2uiDgt4Tgt5Dgtpog4LeE4LedIOC2p+C3kOC2tuC3iuC2veC2p+C2uiDgt4Pgtrjgtpwg4LaF4Lax4LeK4Lat4La74LeKIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C3kyDgt4Dgt5Pgtrjgtqcg4LaJ4LaC4Lac4LeS4Lat4LeSIOC3g+C3kuC2r+C3lCDgtprgt4Ug4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9leHBsb3JlX2J5X3RvdWNoX3dhcm5pbmdfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjI3MDgxOTk2NzI4NTIzNzMxOTUiPiLgt4Pgt4rgtrTgtrvgt4rgt4Hgtrog4LeA4LeZ4Lat4LeS4Lax4LeKIOC2nOC3gOC3muC3guC2q+C2uiDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4Laa4LeS4La74LeT4La44LanIDx4bGlmZjpnIGlkPSJBQ0NFU1NJQklMSVRZX1NFUlZJQ0VfTkFNRSI+JTEkczwveGxpZmY6Zz4g4LanIOC2heC3gOC3geC3iuKAjeC2uuC2uuC3ki4g4LeD4LeK4La04La74LeK4LeB4La6IOC3gOC3meC2reC3kuC2seC3iiDgtpzgt4Dgt5rgt4Lgtqvgtrog4LeD4Laa4LeK4oCN4La74LeS4La6IOC3gOC3kuC2pywg4LaU4La24Lac4LeaIOC2h+C2n+C3kuC2veC3kuC3gOC2veC2pyDgtrTgt4Tgt4Ug4LeA4LeS4LeD4LeK4Lat4La7IOC2h+C3g+C3kuC2uiDgt4Tgt50g4La24LeQ4La94LeS4La6IOC3hOC3kOC2miDgt4Tgt50g4Lav4LeU4La74Laa4Lau4Lax4La6IOC3g+C2uOC2nCDgtoXgtrHgt4rgtq3gtrvgt4og4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74LeTIOC3gOC3k+C2uOC2pyDgtongtoLgtpzgt5Lgtq3gt5Ig4LeD4LeS4Lav4LeUIOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib25lTW9udGhEdXJhdGlvblBhc3QiIG1zZ2lkPSI3Mzk2Mzg0NTA4OTUzNzc5OTI1Ij4i4La44LeP4LeDIDEg4Laa4LanIOC2tOC3meC2uyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJlZm9yZU9uZU1vbnRoRHVyYXRpb25QYXN0IiBtc2dpZD0iOTA5MTM0NTQ2ODM2NDk5ODI2Ij4i4La44LeP4LeDIDEg4Laa4LanIOC2tOC3meC2uyI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX3NlY29uZHNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDg2OTg3MDA1NjU0Nzg5NjAxMSI+IuC2reC2reC3iuC2tOC2uyAxIOC2muC2pyDgtrTgt5ngtrsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM5MDM3MDY4MDQzNDk1NTYzNzkiPiLgtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4LanIOC2tOC3meC2uyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX21pbnV0ZXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzMwNjc4NzQzMzA4ODgxMDE5MSI+IuC2uOC3kuC2seC3kuC2reC3iuC2reC3lCAxIOC2pyDgtrTgt5ngtrsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIxNzY5NDIwMDg5MTU0NTUxMTYiPiLgtrjgt5LgtrHgt5Lgtq3gt4rgtq3gt5QgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Laa4LanIOC2tOC3meC2uyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0ibnVtX2hvdXJzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjkxNTA3OTc5NDQ2MTA4MjE4NDkiPiLgtrTgt5DgtrogMSDgtprgtqcg4La04LeZ4La7IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyNDY3MjczMjM5NTg3NTg3NTY5Ij4i4La04LeQ4La6IDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2muC2pyDgtrTgt5ngtrsiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9Imxhc3RfbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjMwNjk5OTI4MDgxNjQzMTgyNjgiPiLgtoXgtrHgt4rgtq3gt5Lgtrgg4Lav4LeA4LeD4LeKIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ibGFzdF9tb250aCIgbXNnaWQ9IjM5NTkzNDY3Mzk5NzkwNTU0MzIiPiLgtoXgt4Dgt4Pgt4/gtrEg4La44LeP4LeD4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2xkZXIiIG1zZ2lkPSI1MjExOTc1MDIyODE1NTU0ODQwIj4i4La04La74LarIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJudW1fZGF5c19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4NjEzNTg1MzQzOTgxMTU4MjAiPiLgtorgtrrgt5oiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI0Nzk1ODY0NjYxNTMzMTQ2MzMiPiLgtq/gt5LgtrEgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Laa4LanIOC2tOC3meC2uyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iaW5fbnVtX3NlY29uZHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIyNzI5NzQ1NTYwOTU0OTA1MTAyIj4i4Lat4Lat4LeK4La04La7IDEg4Laa4LeS4Lax4LeKIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMjQxOTI2MTE2NDQzOTc0Njg3Ij4i4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2muC2r+C3kyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iaW5fbnVtX21pbnV0ZXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4NzkzMDk1MjUxMzI1MjAwMzk1Ij4i4La44LeS4Lax4LeS4Lat4LeK4Lat4LeUIDEg4Laa4Lav4LeTIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzMzMwNzEzOTM2Mzk5NDQ4NzQ5Ij4i4La44LeS4Lax4LeS4Lat4LeK4Lat4LeUIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtq3gt5Tgt4UiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImluX251bV9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjcxNjQzNTMzNDI0Nzc3Njk5OTkiPiLgtrTgt5DgtrogMSDgtprgt4og4Lat4LeU4LeFIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDcyOTA2NzczNTM3MjczODkiPiLgtrTgt5DgtrogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2reC3lOC3hSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iaW5fbnVtX2RheXMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1NDEzMDg4NzQzMDA5ODM5NTE4Ij4i4LeE4LeZ4LanIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1MTA5NDQ5Mzc1MTAwOTUzMjQ3Ij4i4Lav4LeS4LaxIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtq3gt5Tgt4UiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1fc2Vjb25kc19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIxODQ5MDM2ODQwMjAwMDY5MTE4Ij4i4Lat4Lat4LeK4La04La7IDEg4Laa4LanIOC2tOC3meC2uyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzY5OTE2OTM2NjY1MDkzMDQxNSI+IuC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDgtprgtqcg4La04LeZ4La7IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX21pbnV0ZXNfYWdvIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjM2MTQ5MDE0NzExMzg3MTU0NSI+IuC2uOC3kuC2seC3kuC2reC3iuC2reC3lCAxIOC2muC2pyDgtrTgt5ngtrsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg1MTE2NDk2ODU5NzE1MDcxMCI+IuC2uOC3kuC2seC3kuC2reC3iuC2reC3lCA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDgtqcg4La04LeZ4La7IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICA8cGx1cmFscyBuYW1lPSJhYmJyZXZfbnVtX2hvdXJzX2FnbyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ3OTYyMTIwMzk3MjQ3MjIxMTYiPiLgtrTgt5DgtrogMSDgtprgtqcg4La04LeZ4La7IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2ODg5OTcwNzQ1NzQ4NTM4OTAxIj4i4La04LeQ4La6IDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2pyDgtrTgt5ngtrsiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9udW1fZGF5c19hZ28iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4NDYzMTYxNzExNDkyNjgwMzA5Ij4i4LaK4La64LeaIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzNDUzMzQyNjM5NjE2NDgxMTkxIj4i4Lav4LeS4LaxIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2pyDgtrTgt5ngtrsiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fc2Vjb25kcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NDIyMjUzNzA3OTUwNjYyOTkiPiLgtq3gtq3gt4rgtrTgtrsgMSDgtprgt4og4Lat4LeU4LeFIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDk1ODgwMTA4ODI1ODA1MTA4Ij4i4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtq3gt5Tgt4UiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU2Mjc4NjE0OTkyODI4NDg3OCI+IuC2uOC3kuC2seC3kuC2reC3iuC2reC3lCAxIOC2muC3iiDgtq3gt5Tgt4UiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQyMTYxMTMyOTI3MDY1Njg3MjYiPiLgtrjgt5LgtrHgt5Lgtq3gt4rgtq3gt5QgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2reC3lOC3hSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iYWJicmV2X2luX251bV9ob3VycyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNzQ3MDgxMTgxMjQwNDUyNDYiPiLgtrTgt5DgtrogMSDgtprgt4og4Lat4LeU4LeFIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIzNzA1MzczNzY2Nzk4MDEzNDA2Ij4i4La04LeQ4La6IDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtq3gt5Tgt4UiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgIDxwbHVyYWxzIG5hbWU9ImFiYnJldl9pbl9udW1fZGF5cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjIxNzg1NzYyNTQzODU3Mzk4NTUiPiLgt4Tgt5ngtqciPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjI5NzMwNjI5NjgwMzgzNTU5OTEiPiLgtq/gt5LgtrEgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2reC3lOC3hSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl9kYXRlIiBtc2dpZD0iOTA5Mzk0OTc1Nzc1NzQ0NTExNyI+Ijx4bGlmZjpnIGlkPSJEQVRFIj4lczwveGxpZmY6Zz4g4LeA4LaxIOC2r+C3jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZXBvc2l0aW9uX2Zvcl90aW1lIiBtc2dpZD0iNTUwNjgzMTI0NDI2MzA4Mzc5MyI+Ijx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4g4LanIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlcG9zaXRpb25fZm9yX3llYXIiIG1zZ2lkPSI1MDQwMzk1NjQwNzExODY3MTc3Ij4iPHhsaWZmOmcgaWQ9IllFQVIiPiVzPC94bGlmZjpnPiDgtq3gt5Tgt4UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXkiIG1zZ2lkPSI4MTQ0MTk1Nzc2MDU4MTE5NDI0Ij4i4Lav4LeA4LeDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5cyIgbXNnaWQ9IjQ3NzQ1NDc2NjEwMjEzNDQ2MDIiPiLgtq/gt5LgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyIiBtc2dpZD0iMjEyNjc3MTkxNjQyNjE4OTQ4MSI+IuC2tOC3kOC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJzIiBtc2dpZD0iODk0NDI0MDA1MjY2ODUyOTkzIj4i4La04LeQ4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlIiBtc2dpZD0iOTE0ODg3ODY1NzcwMzc2OTg2OCI+Im1pbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZXMiIG1zZ2lkPSI1NjQ2MDAxMDA1ODI3MDM0NTA5Ij4i4La44LeS4Lax4LeS4Lat4LeK4Lat4LeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vjb25kIiBtc2dpZD0iMzE4NDIzNTgwODAyMTQ3OCI+IuC2reC2reC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlY29uZHMiIG1zZ2lkPSIzMTYxNTE1MzQ3MjE2NTg5MjM1Ij4i4Lat4Lat4LeK4La04La7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2VlayIgbXNnaWQ9IjU2MTc5NjE1MzcxNzMwNjE1ODMiPiLgt4Pgtq3gt5LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3ZWVrcyIgbXNnaWQ9IjY1MDk2MjM4MzQ1ODM5NDQ1MTgiPiLgt4Pgtq3gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyIiBtc2dpZD0iNDAwMTExODIyMTAxMzg5MjA3NiI+IuC2heC3gOC3lOC2u+C3lOC2r+C3iuC2ryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJzIiBtc2dpZD0iNjg4MTU3NzcxNzk5MzIxMzUyMiI+IuC2heC3gOC3lOC2u+C3lOC2r+C3lCI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iZHVyYXRpb25fc2Vjb25kcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY5NjIwMTU1MjgzNzI5Njk0ODEiPiLgtq3gtq3gt4rgtrTgtrsgMSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTg4NjEwNzc2NjU3NzE2Njc4NiI+IuC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iZHVyYXRpb25fbWludXRlcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ5MTU0MTQwMDI1NDYwODU2MTciPiLgtrjgt5LgtrHgt5Lgtq3gt4rgtq3gt5QgMSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMzE2NTE4NzE2OTIyNDkwODc3NSI+IuC2uOC3kuC2seC3kuC2reC3iuC2reC3lCA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0iZHVyYXRpb25faG91cnMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4OTE3NDY3NDkxMjQ4ODA5OTcyIj4i4La04LeQ4La6IDEiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjM4NjM5NjI4NTQyNDY3NzM5MzAiPiLgtrTgt5DgtrogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4g4Laa4LeKIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RpdGxlIiBtc2dpZD0iMzUzNDUwOTEzNTQzODM1MzA3NyI+IuC3gOC3k+C2qeC3kuC2uuC3nSDgtpzgt5Dgtqfgtr3gt5Tgt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJWaWRlb1ZpZXdfZXJyb3JfdGV4dF9pbnZhbGlkX3Byb2dyZXNzaXZlX3BsYXliYWNrIiBtc2dpZD0iMzE4NjY3MDMzNTkzODY3MDQ0NCI+IuC2uOC3miDgt4Dgt5Pgtqngt5Lgtrrgt53gt4Ag4La44LeZ4La4IOC2i+C2tOC3j+C2guC2nOC2uuC2pyDgtrTgt4rigI3gtrvgt4Dgt4/gt4TgtrHgtrog4LeD4Laz4LeE4LePIOC3gOC2veC2guC2nOC3lCDgtrHgt5Dgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iVmlkZW9WaWV3X2Vycm9yX3RleHRfdW5rbm93biIgbXNnaWQ9IjM0NTA0MzkxNTUxODc4MTAwODUiPiLgtrjgt5ngtrgg4LeA4LeT4Lap4LeS4La64Led4LeAIOC2sOC3j+C3gOC2seC2uiDgtprgt4Ug4Lax4Lec4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IlZpZGVvVmlld19lcnJvcl9idXR0b24iIG1zZ2lkPSIyODIyMjM4MjE1MTAwNjc5NTkyIj4i4LeE4La74LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVsYXRpdmVfdGltZSIgbXNnaWQ9IjE4MTg1NTcxNzc4Mjk0MTE0MTciPiI8eGxpZmY6ZyBpZD0iREFURSI+JTEkczwveGxpZmY6Zz4sIDx4bGlmZjpnIGlkPSJUSU1FIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vb24iIG1zZ2lkPSI3MjQ1MzUzNTI4ODE4NTg3OTA4Ij4i4La44Law4LeK4oCN4La64LeE4Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iTm9vbiIgbXNnaWQ9IjMzNDIxMjc3NDUyMzAwMTMxMjciPiLgtrjgtrDgt4rigI3gtrrgt4/gt4TgtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaWRuaWdodCIgbXNnaWQ9IjcxNjYyNTk1MDg4NTA0NTc1OTUiPiLgtrjgtrDgt4rigI3gtrrgtrgg4La74LeP4Lat4LeK4oCN4La74LeS4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iTWlkbmlnaHQiIG1zZ2lkPSI1NjMwODA2OTA2ODk3ODkyMjAxIj4i4La44Law4LeK4oCN4La64La4IOC2u+C3j+C2reC3iuKAjeC2u+C3kuC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVsYXBzZWRfdGltZV9zaG9ydF9mb3JtYXRfbW1fc3MiIG1zZ2lkPSI0NDMxNTU1OTQzODI4NzExNDczIj4iPHhsaWZmOmcgaWQ9Ik1JTlVURVMiPiUxJDAyZDwveGxpZmY6Zz46PHhsaWZmOmcgaWQ9IlNFQ09ORFMiPiUyJDAyZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbGFwc2VkX3RpbWVfc2hvcnRfZm9ybWF0X2hfbW1fc3MiIG1zZ2lkPSIxODQ2MDcxOTk3NjE2NjU0MTI0Ij4iPHhsaWZmOmcgaWQ9IkhPVVJTIj4lMSRkPC94bGlmZjpnPjo8eGxpZmY6ZyBpZD0iTUlOVVRFUyI+JTIkMDJkPC94bGlmZjpnPjo8eGxpZmY6ZyBpZD0iU0VDT05EUyI+JTMkMDJkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdEFsbCIgbXNnaWQ9IjY4NzY1MTg5MjU4NDQxMjkzMzEiPiLgt4Pgt5Lgtrrgtr3gt4rgtr0g4Lat4Led4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3V0IiBtc2dpZD0iMzA5MjU2OTQwODQzODYyNjI2MSI+IuC2muC2tOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvcHkiIG1zZ2lkPSIyNjgxOTQ2MjI5NTMzNTExOTg3Ij4i4La04LeS4Lan4La04Lat4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3RlIiBtc2dpZD0iNTYyOTg4MDgzNjgwNTAzNjQzMyI+IuC2heC2veC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlcGxhY2UiIG1zZ2lkPSI1NzgxNjg2MDU5MDYzMTQ4OTMwIj4i4La04LeK4oCN4La74Lat4LeS4LeD4LeK4Lau4LeP4La04Lax4La6IOC2muC2u+C2seC3iuC2sS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZSIgbXNnaWQ9IjYwOTg2ODQ4NDQwMjE2OTc3ODkiPiLgtrjgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb3B5VXJsIiBtc2dpZD0iMjUzODIxMTU3OTU5NjA2NzQwMiI+IlVSTCDgtrTgt5LgtqfgtrTgtq3gt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0VGV4dE1vZGUiIG1zZ2lkPSIxMDE4NjkxODE1MTQzMTY1MzI2Ij4i4La04LeZ4LeFIOC2reC3neC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRleHRTZWxlY3Rpb25DQUJUaXRsZSIgbXNnaWQ9IjUyMzY4NTAzOTQzNzA4MjAzNTciPiLgtrTgt5ngt4Ug4Lat4Lea4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkVG9EaWN0aW9uYXJ5IiBtc2dpZD0iNDM1MjE2MTUzNDUxMDA1Nzg3NCI+IuC3geC2tuC3iuC2ryDgtprgt53gt4Lgtrrgtqcg4LaR4Laa4Lat4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZVRleHQiIG1zZ2lkPSI2OTc5NjY4NDI4NDU4MTk5MDM0Ij4i4La44Laa4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5wdXRNZXRob2QiIG1zZ2lkPSIxNjUzNjMwMDYyMzA0NTY3ODc5Ij4i4LaG4Lav4LeP4LaxIOC2muC3iuKAjeC2u+C2uOC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVkaXRUZXh0TWVudVRpdGxlIiBtc2dpZD0iNDkwOTEzNTU2NDk0MTgxNTQ5NCI+IuC2tOC3meC3hSDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4DgtrHgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb3dfaW50ZXJuYWxfc3RvcmFnZV92aWV3X3RpdGxlIiBtc2dpZD0iNTU3NjI3MjQ5NjM2NTY4NDgzNCI+IuC2huC2oOC2uuC2seC2uiDgtongtqkg4La04LeK4oCN4La74La44LeP4Lar4La6IOC2heC2qeC3lCDgt4Dgt5Mg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG93X2ludGVybmFsX3N0b3JhZ2Vfdmlld190ZXh0IiBtc2dpZD0iNjY0MDUwNTgxNzYxNzQxNDM3MSI+IuC3g+C2uOC3hOC2uyDgtrTgtq/gt4rgtrDgtq3gt5Ig4Laa4LeP4La74LeK4La64La64Lax4LeKIOC2muC3iuKAjeC2u+C3kuC2uuC3jyDgtrHgt5zgtprgtrvgtrHgt5Qg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX3J1bm5pbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iODcxODMzNTEyMTA2MDc4NzkxNCI+Ijx4bGlmZjpnIGlkPSJBUFBfTkFNRSI+JTEkczwveGxpZmY6Zz4g4Law4LeP4LeA4Lax4La6IOC3gOC3miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9ydW5uaW5nX25vdGlmaWNhdGlvbl90ZXh0IiBtc2dpZD0iNDY1MzU4Njk0Nzc0NzMzMDA1OCI+IuC3gOC3kOC2qeC3kuC2tOC3lOC2uyDgtq3gt5zgtrvgtq3gt5Tgtrvgt5Qg4LeE4LedIOC2uuC3meC2r+C3lOC2uCDgtrHgt5Dgt4Dgtq3gt5Pgtrgg4LeD4Laz4LeE4LePIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib2siIG1zZ2lkPSI1OTcwMDYwNDMwNTYyNTI0OTEwIj4i4LeE4La74LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNjQ0MjU2MDU3MTI1OTkzNTEzMCI+IuC2heC3gOC2veC2guC2nOC3lCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZXMiIG1zZ2lkPSI1MzYyOTgyMzAzMzM3OTY5MzEyIj4i4LeE4La74LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm8iIG1zZ2lkPSI1MTQxNTMxMDQ0OTM1NTQxNDk3Ij4i4LaF4LeA4La94LaC4Lac4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpYWxvZ19hbGVydF90aXRsZSIgbXNnaWQ9IjIwNDk2NTg3MDg2MDkwNDMxMDMiPiLgtoXgt4DgtrDgt4/gtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsb2FkaW5nIiBtc2dpZD0iNzkzMzY4MTI2MDI5NjAyMTE4MCI+IuC2tOC3luC2u+C2q+C2uiDgt4Dgt5ngtrjgt5LgtrHgt4ouLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYXBpdGFsX29uIiBtc2dpZD0iMTU0NDY4Mjc1NTUxNDQ5NDI5OCI+IuC3g+C2muC3iuKAjeC2u+C3k+C2uuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcGl0YWxfb2ZmIiBtc2dpZD0iNjgxNTg3MDM4Njk3MjgwNTgzMiI+IuC2heC2muC3iuKAjeC2u+C3kuC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aGljaEFwcGxpY2F0aW9uIiBtc2dpZD0iNDUzMzE4NTk0NzA2NDc3MzM4NiI+IuC2tOC3hOC2rSDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4Laa4LeK4oCN4La74LeS4La64LeP4LeAIOC3g+C2uOC3iuC2tOC3luC2u+C3iuC2qyDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNVc2UiIG1zZ2lkPSI0NTgzMDE4MzY4MDAwNjEwNDM4Ij4i4La44LeZ4La4IOC2muC3iuKAjeC2u+C3kuC2uuC3j+C3gCDgt4PgtrPgt4Tgt48g4LeD4LeU4La04LeU4La74LeU4Lav4LeK4Lav4LeZ4Lax4LeKIOC2t+C3j+C3gOC3kuC2rSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2xlYXJEZWZhdWx0SGludE1zZyIgbXNnaWQ9IjMyNTI1ODQ2ODk1MTIwNzcyNTciPiLgtrTgtq/gt4rgtrDgtq3gt5Ig4LeD4LeQ4Laa4LeD4LeT4La44LeKICZndDsg4La64LeZ4Lav4LeU4La44LeKICZndDsg4La24LeP4Lac4LeQ4Lax4LeT4La44LeKIOC2reC3lOC3hSDgtofgtq3gt5Ig4LeD4LeU4La04LeU4La74LeU4Lav4LeK4LavIOC3hOC3kuC3g+C3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlQWN0aXZpdHkiIG1zZ2lkPSI3NDg2ODc2MTQ3NzUxODAzMzMzIj4i4Laa4LeK4oCN4La74LeS4La64LeP4LeA4Laa4LeKIOC2reC3neC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZVVzYkFjdGl2aXR5IiBtc2dpZD0iNjg5NDc0ODQxNjA3MzU4MzUwOSI+IlVTQiDgtovgtrTgt4/gtoLgtpzgtrog4LeD4Laz4LeE4LePIOC2uuC3meC2r+C3lOC2uOC2muC3iiDgtq3gt53gtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub0FwcGxpY2F0aW9ucyIgbXNnaWQ9IjI5OTE4MTQyNzM5MzY1MDQ2ODkiPiLgtrjgt5ngtrgg4Laa4LeK4oCN4La74LeS4La64LeP4LeAIOC3g+C3kuC2r+C3lCDgtprgt5Lgtrvgt5Pgtrjgtqcg4Laa4LeS4LeD4LeS4Lav4LeUIOC2uuC3meC2r+C3lOC2uOC2muC2pyDgtrHgt5zgt4Tgt5Dgtprgt5LgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWVycl90aXRsZSIgbXNnaWQ9IjE5MDU4MDA1NjAzMTcxMzc3NTIiPjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWVycl9hcHBsaWNhdGlvbiIgbXNnaWQ9IjkzMjYyODQ4ODAxMzA5Mjc3NiI+IuC2heC3gOC3j+C3g+C2seC3j+C3gOC2seC3iuC2rSDgtr3gt5ngt4MgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDgtrHgt5Dgt4Dgtq3gt5Mg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFlcnJfcHJvY2VzcyIgbXNnaWQ9IjQ1MDcwNTg5OTcwMzU2OTc1NzkiPiLgtoXgt4Dgt4/gt4PgtrHgt4/gt4DgtrHgt4rgtq0g4La94LeZ4LeDLCA8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTEkczwveGxpZmY6Zz4g4Laa4LeK4oCN4La74LeS4La64LeP4LeA4La94LeS4La6IOC2seC2reC2uyDgt4Dgt5Lgtqvgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX3RpdGxlIiBtc2dpZD0iNDM1MTk0ODQ4MTQ1OTEzNTcwOSI+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbnJfYWN0aXZpdHlfYXBwbGljYXRpb24iIG1zZ2lkPSIxOTA0NDc3MTg5MDU3MTk5MDY2Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMiRzPC94bGlmZjpnPiDgtrTgt4rigI3gtrvgtq3gt5LgtqDgt4/gtrsg4Lax4Lec4Lav4Laa4LeK4LeA4La64LeSLlxuXG7gtpTgtrbgtqcg4LaR4La6IOC2seC2reC2uyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4LeA4LeB4LeK4oCN4La64LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9hY3Rpdml0eV9wcm9jZXNzIiBtc2dpZD0iNTc3NjIwOTg4MzI5OTA4OTc2NyI+Ijx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g4Laa4LeK4oCN4La74LeS4La64LeP4Laa4LeP4La74Laa4La4IOC2tOC3iuKAjeC2u+C2reC3kuC2oOC3j+C2uyDgtrHgt5zgtq/gtprgt4rgt4Dgtrrgt5IuXG5cbuC2keC2uiDgt4Dgt4Pgt48g4Lav4LeQ4La44LeT4La44LanIOC2lOC2tuC2pyDgtoXgt4Dgt4Hgt4rigI3gtrrgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5yX2FwcGxpY2F0aW9uX3Byb2Nlc3MiIG1zZ2lkPSI4OTQxNzU3NjA3MzQwNDgxMDU3Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDgtrTgt4rigI3gtrvgtq3gt5LgtqDgt4/gtrsg4Lax4Lec4Lav4Laa4LeK4LeA4La64LeSLiDgtpHgtrog4LeA4LeD4LePIOC2r+C3kOC2uOC3k+C2uOC2pyDgtpTgtrbgtqcg4LaF4LeA4LeB4LeK4oCN4La64LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFucl9wcm9jZXNzIiBtc2dpZD0iNjUxMzIwOTg3NDg4MDUxNzEyNSI+Ijx4bGlmZjpnIGlkPSJQUk9DRVNTIj4lMSRzPC94bGlmZjpnPiDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4Dgtr3gt5Lgtrog4La04LeK4oCN4La74Lat4LeS4Lag4LeP4La7IOC2seC3nOC2r+C2muC3iuC3gOC2uuC3ki5cblxu4LaU4La24LanIOC2keC2uiDgtrHgtq3gtrsg4Laa4LeS4La74LeT4La44LanIOC2heC3gOC3geC3iuKAjeC2uuC2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmb3JjZV9jbG9zZSIgbXNnaWQ9IjgzNDYwNzIwOTQ1MjEyNjU2MDUiPiLgt4Tgtrvgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXBvcnQiIG1zZ2lkPSI0MDYwMjE4MjYwOTg0Nzk1NzA2Ij4i4LeA4LeP4La74LeK4Lat4LeP4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FpdCIgbXNnaWQ9IjcxNDcxMTgyMTcyMjYzMTc3MzIiPiLgtrvgt5DgtrPgt5Mg4LeD4LeS4Lan4LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2VicGFnZV91bnJlc3BvbnNpdmUiIG1zZ2lkPSIzMjcyNzU4MzUxMTM4MTIyNTAzIj4i4La04LeS4Lan4LeU4LeAIOC2tOC3iuKAjeC2u+C2reC3kuC2oOC3j+C2uyDgtrHgt5zgtq/gtprgt4rgt4DgtrEg4Lat4Lat4LeK4LeA4La64LanIOC2tOC2reC3iuC3gOC3kyDgtofgtq0uXG5cbuC2lOC2tuC2pyDgtpHgtrog4LeA4LeQ4LeD4LeT4La44LanIOC2heC3gOC3geC3iuKAjeC2uuC2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYXVuY2hfd2FybmluZ190aXRsZSIgbXNnaWQ9IjE1NDc5OTc3ODA1MDY3MTM1ODEiPiLgtrrgt5ngtq/gt5Tgtrgg4Lax4LeQ4LeA4LatIOC3hOC2u+C3gOC3jyDgtrrgt4Dgt48g4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoX3dhcm5pbmdfcmVwbGFjZSIgbXNnaWQ9IjYyMDI0OTg5NDk5NzAyODE0MTIiPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+IOC2r+C3kOC2seC3iiDgtrDgt4/gt4DgtrHgtrog4LeA4LeZ4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhdW5jaF93YXJuaW5nX29yaWdpbmFsIiBtc2dpZD0iMTg4MTAyMDIzMDIxNjY4NjgzIj4iPHhsaWZmOmcgaWQ9IkFQUF9OQU1FIj4lMSRzPC94bGlmZjpnPiDgtrjgt5Tgtr3gt5LgtrHgt4rgtrgg4LaF4La74La54LePIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5fY29tcGF0X21vZGVfc2NhbGUiIG1zZ2lkPSIzMjAyOTU1NjY3Njc1OTQ0NDk5Ij4i4La04La74LeS4La44LeP4Lar4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuX2NvbXBhdF9tb2RlX3Nob3ciIG1zZ2lkPSI0MDEzODc4ODc2NDg2NjU1ODkyIj4i4LeD4LeQ4La44LeA4LeS4Lan4La4IOC2tOC3meC2seC3iuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbl9jb21wYXRfbW9kZV9oaW50IiBtc2dpZD0iMTA2NDUyNDA4NDU0MzMwNDQ1OSI+IuC2tOC2r+C3iuC2sOC2reC3kiDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4Lat4LeU4LeFIOC2uOC3meC2uiDgtrHgt5Dgt4Dgtq0g4Laa4LeK4oCN4La74LeS4La64LeP4Lat4LeK4La44LaaIOC2muC2u+C2seC3iuC2sSAmZ3Q7IOC2uuC3meC2r+C3lOC2uOC3iiAmZ3Q7IOC2tuC3j+C2nOC2seC3iuC2seC3jyDgtr3gtq/gt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic212X2FwcGxpY2F0aW9uIiBtc2dpZD0iMzMwNzIwOTE5MjE1NTQ0MjgyOSI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g4La64LeZ4Lav4LeU4La4ICg8eGxpZmY6ZyBpZD0iUFJPQ0VTUyI+JTIkczwveGxpZmY6Zz4g4Laa4LeK4oCN4La74LeS4La64LeP4LeA4La94LeS4La6KSDgtpHgt4Tgt5IgU3RyaWN0TW9kZSDgtprgt5zgtrHgt4rgtq/gt5rgt4Pgt5Lgtrog4LaL4La94LeK4La94LaC4Lad4Lax4La6IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic212X3Byb2Nlc3MiIG1zZ2lkPSI1MTIwMzk3MDEyMDQ3NDYyNDQ2Ij4iPHhsaWZmOmcgaWQ9IlBST0NFU1MiPiUxJHM8L3hsaWZmOmc+IOC2muC3iuKAjeC2u+C3kuC2uuC3j+C3gOC2veC3kuC2uiDgtpHgt4Tgt5IgU3RyaWN0TW9kZSDgtprgt5zgtrHgt4rgtq/gt5rgt4Pgt5Lgtrog4LaL4La94LeK4La94LaC4Lad4Lax4La6IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfdGl0bGUiIG1zZ2lkPSIxNTg0MTkyMjg1NDQxNDA1NzQ2Ij4iQW5kcm9pZCDgtovgtq3gt4rgt4Hgt4rigI3gtrvgt5rgtqvgt5Ig4LeA4LeZ4La44LeS4Lax4LeKIOC2tOC3gOC2reC3ky4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFuZHJvaWRfdXBncmFkaW5nX2FwayIgbXNnaWQ9Ijc5MDQwNDI2ODIxMTE1MjYxNjkiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJGQ8L3hsaWZmOmc+IOC2muC3kuC2seC3iiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiUxJGQ8L3hsaWZmOmc+IOC3gOC3kOC2seC3kiDgtrrgt5ngtq/gt5TgtrjgtrTgt4rigI0g4La74LeB4LeD4LeK4LatIOC2muC2u+C2uOC3kuC2seC3ii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbmRyb2lkX3VwZ3JhZGluZ19zdGFydGluZ19hcHBzIiBtc2dpZD0iNDUxNDY0NTE2MzQ2OTI2NzEzIj4i4La64LeZ4Lav4LeU4La44LeKIOC2huC2u+C2uOC3iuC2tyDgtprgtrvgtrjgt5LgtrHgt4ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYW5kcm9pZF91cGdyYWRpbmdfY29tcGxldGUiIG1zZ2lkPSIxNDA1OTU0NzU0MTEyOTk5MjI5Ij4i4LaH4La74La54LeU4La4IOC2heC3gOC3g+C3j+C2sSDgtprgtrvgtrjgt5LgtrHgt4ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X25vdGlmaWNhdGlvbiIgbXNnaWQ9IjkwODcwNjM5ODU3NzY2MjYxNjYiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lMSRzPC94bGlmZjpnPiDgtrDgt4/gt4DgtrHgtrog4LeA4LeZ4La44LeS4Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaGVhdnlfd2VpZ2h0X25vdGlmaWNhdGlvbl9kZXRhaWwiIG1zZ2lkPSIxNzIxNjgxNzQxNjE3ODk4ODY1Ij4i4La64LeZ4Lav4LeU4La44LanIOC2uOC3j+C2u+C3lCDgt4Dgt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhlYXZ5X3dlaWdodF9zd2l0Y2hlcl90aXRsZSIgbXNnaWQ9IjcxNTMxNjcwODU0MDMyOTgxNjkiPiLgtrrgt5ngtq/gt5Tgtrjgt4og4La44LeP4La74LeUIOC3gOC2seC3gOC3j+C2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJoZWF2eV93ZWlnaHRfc3dpdGNoZXJfdGV4dCIgbXNnaWQ9IjcwMjI2MzE5MjQ1MzQ0MDY0MDMiPiLgtoXgtr3gt5Tgtq3gt4og4La64LeZ4Lav4LeU4La44Laa4LeKIOC2huC2u+C2uOC3iuC2tyDgtprgt5Lgtrvgt5Pgtrjgtqcg4La04LeZ4La7IOC2reC3gOC2uOC2reC3iiDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4Dgt5ngt4Tgt5Ig4La64LeZ4Lav4LeZ4La44LeS4Lax4LeKIOC2tOC3gOC2reC3kuC2sSDgtrrgt5ngtq/gt5Tgtrgg4Lax4LeQ4LeA4LeQ4Lat4LeK4LeA4LeS4La6IOC2uuC3lOC2reC3lOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvbGRfYXBwX2FjdGlvbiIgbXNnaWQ9IjQ5MzEyOTE3MjIzODU2NjI4MiI+Ijx4bGlmZjpnIGlkPSJPTERfQVBQIj4lMSRzPC94bGlmZjpnPiDgt4Dgt5ngtq0g4LaG4La04LeD4LeUIOC2uuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im9sZF9hcHBfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMDgyMDk0Mjc1NTgwMzU4MDQ5Ij4i4Lax4LeAIOC2uuC3meC2r+C3lOC2uCDgtobgtrvgtrjgt4rgtrcg4Lax4Lec4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5ld19hcHBfYWN0aW9uIiBtc2dpZD0iNTQ3Mjc1NjkyNjk0NTQ0MDcwNiI+Ijx4bGlmZjpnIGlkPSJPTERfQVBQIj4lMSRzPC94bGlmZjpnPiDgtoXgtrvgtrngtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJuZXdfYXBwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTkzMjE0MzU5ODM3MTUzNzM0MCI+IuC3g+C3lOC2u+C3kOC2muC3k+C2uOC2muC3kuC2seC3iiDgtq3gt5zgtrvgt4Ag4La04La74LarIOC2uuC3meC2r+C3lOC2uCDgtrHgt4Dgtq3gt4rgt4DgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VuZFRleHQiIG1zZ2lkPSI1MjA5ODc0NTcxOTU5NDY5MTQyIj4i4La04LeZ4LeFIOC3g+C2s+C3hOC3jyDgtprgt4rigI3gtrvgt5Lgtrrgt4/gt4Ag4Lat4Led4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX3Jpbmd0b25lIiBtc2dpZD0iNjg4NTQyMTQwNjg0NTczNDY1MCI+IuC3hOC2rCDgtrHgtp/gtrHgtrrgt5og4LeB4La24LeK4Lav4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljIiBtc2dpZD0iNTQyMTY1MTE1NzEzODYyODE3MSI+IuC2uOC3j+C2sOC3iuKAjeC2uiDgt4Hgtrbgt4rgtq/gtrog4Lat4LeK4oCN4La74LeT4LeA4Lat4LeP4LeA4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX211c2ljX2hpbnRfcGxheWluZ190aHJvdWdoX2JsdWV0b290aCIgbXNnaWQ9IjkxNjU5ODQzNzkzOTQ2MDE1MzMiPiLgtrbgt4rgtr3gt5bgtqfgt5bgtq3gt4og4LeE4La74LeE4LePIOC2sOC3j+C3gOC2seC2uiDgt4Dgt5ngtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfbXVzaWNfaGludF9zaWxlbnRfcmluZ3RvbmVfc2VsZWN0ZWQiIG1zZ2lkPSI4MzEwNzM5OTYwOTczMTU2MjcyIj4i4Lax4LeS4LeE4LasIOC2u+C3kuC2nOC3kuC2seC3iiDgtqfgt53gtrHgtrrgtprgt4og4LeD4Laa4LeD4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2NhbGwiIG1zZ2lkPSIzOTQxNjgwMDQxMjgyNzg4NzExIj4i4LaH4La44Lat4LeU4La4LeC2reC3lOC3hSDgt4Hgtrbgt4rgtq8g4Lat4LeK4oCN4La74LeT4LeA4Lat4LeP4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2JsdWV0b290aF9jYWxsIiBtc2dpZD0iMjAwMjg5MTkyNjM1MTE1MTUzNCI+IuC2tuC3iuC2veC3luC2p+C3luC2reC3iiDgtofgtrjgtq3gt5Tgtrgt4Lat4LeU4LeFIOC3geC2tuC3iuC2ryDgtq3gt4rigI3gtrvgt5Pgt4Dgtq3gt4/gt4DgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfYWxhcm0iIG1zZ2lkPSIxOTg1MTkxNjE2MDQyNjg5MTAwIj4i4LeD4LeT4Lax4LeU4LeA4LeaIOC3geC2tuC3iuC2r+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9ub3RpZmljYXRpb24iIG1zZ2lkPSIyNDIyMjY1NjU2NzQ0Mjc2NzE1Ij4i4Lav4LeQ4Lax4LeU4La44LeK4Lav4LeT4La44LeaIOC3geC2tuC3iuC2r+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV91bmtub3duIiBtc2dpZD0iMTQwMDIxOTY2OTc3MDQ0NTkwMiI+IuC3geC2tuC3iuC2r+C2uiDgtq3gt4rigI3gtrvgt5Pgt4Dgtq3gt4/gt4DgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9ibHVldG9vdGgiIG1zZ2lkPSI2NTM4ODk0MTc3MjU1OTY0MzQwIj4i4La24LeK4La94LeW4Lan4LeW4Lat4LeKIOC3geC2tuC3iuC2ryDgtq3gt4rigI3gtrvgt5Pgt4Dgtq3gt4/gt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2b2x1bWVfaWNvbl9kZXNjcmlwdGlvbl9yaW5nZXIiIG1zZ2lkPSIzMzI2MDAzODQ3MDA2MTYyNDk2Ij4i4La74LeS4Lax4LeK4Lan4Led4Lax4La64LeaIOC3geC2tuC3iuC2r+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX2luY2FsbCIgbXNnaWQ9Ijg4OTAwNzMyMTgxNTQ1NDMzOTciPiLgtofgtrjgtq3gt5Tgtrjgt4og4LeB4La24LeK4Lav4La6IOC2reC3iuKAjeC2u+C3k+C3gOC2reC3j+C3gOC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZvbHVtZV9pY29uX2Rlc2NyaXB0aW9uX21lZGlhIiBtc2dpZD0iNDIxNzMxMTcxOTY2NTE5NDIxNSI+IuC2uOC3j+C2sOC3iuKAjeC2uiDgt4Hgtrbgt4rgtq/gtrog4Lat4LeK4oCN4La74LeT4LeA4Lat4LeP4LeA4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idm9sdW1lX2ljb25fZGVzY3JpcHRpb25fbm90aWZpY2F0aW9uIiBtc2dpZD0iNzA0NDk4NjU0NjQ3NzI4MjI3NCI+IuC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC3miDgt4Hgtrbgt4rgtq8g4Lat4LeK4oCN4La74LeT4LeA4Lat4LeP4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfZGVmYXVsdCIgbXNnaWQ9IjM3ODk3NTg5ODAzNTc2OTY5MzYiPiLgt4Pgt5TgtrTgt5Tgtrvgt5Tgtq/gt5Qg4La74LeS4Lax4LeK4Lan4Led4Lax4La6IOC3g+C2muC3g+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJpbmd0b25lX2RlZmF1bHRfd2l0aF9hY3R1YWwiIG1zZ2lkPSI4MTI5NTYzNDgwODk1OTkwMzcyIj4i4LeD4LeU4La04LeU4La74LeU4Lav4LeUIOC2u+C3kuC2seC3iuC2p+C3neC2seC2uiAoPHhsaWZmOmcgaWQ9IkFDVFVBTF9SSU5HVE9ORSI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfc2lsZW50IiBtc2dpZD0iNzkzNzYzNDM5MjQwODk3NzA2MiI+IuC2muC3kuC3g+C3kuC3gOC2muC3iiDgtrHgt5Dgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyaW5ndG9uZV9waWNrZXJfdGl0bGUiIG1zZ2lkPSIzNTE1MTQzOTM5MTc1MTE5MDk0Ij4i4La74LeS4Lac4LeS4Lax4LeK4Lan4Led4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmluZ3RvbmVfdW5rbm93biIgbXNnaWQ9IjU0Nzc5MTk5ODg3MDE3ODQ3ODgiPiLgtrHgt5zgtq/gtrHgt4rgtrHgt48g4La74LeS4Lax4LeK4Lan4Led4Lax4La6Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJ3aWZpX2F2YWlsYWJsZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY2NTQxMjM5ODc0MTgxNjg2OTMiPiJXaS1GaSDgtqLgt4/gtr3gtrrgtprgt4og4Lat4LeS4La24LeaIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0MTkyNDI0NDg5MTY4Mzk3Mzg2Ij4iV2ktRmkg4Lai4LeP4La9IOC2h+C2rSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgPHBsdXJhbHMgbmFtZT0id2lmaV9hdmFpbGFibGVfZGV0YWlsZWQiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIxNjM0MTAxNDUwMzQzMjc3MzQ1Ij4i4LeA4LeS4LeA4LeY4LatIFdpLUZpIOC2ouC3j+C2veC2uiDgtr3gtrbgt4/gtpzgtq0g4LeE4LeQ4LaaIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3OTE1ODk1MzIzNjQ0MjkyNzY4Ij4i4LeA4LeS4LeA4LeY4LatIFdpLUZpIOC2ouC3j+C2vSDgtq3gt5Lgtrbgt5oiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2F2YWlsYWJsZV9zaWduX2luIiBtc2dpZD0iNDAyOTQ4OTcxNjYwNTI1NTM4NiI+IldpLUZpIOC2ouC2veC2uuC2pyDgtrTgt5TgtrvgtrHgtrog4LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibmV0d29ya19hdmFpbGFibGVfc2lnbl9pbiIgbXNnaWQ9Ijg0OTUxNTU1OTMzNTgwNTQ2NzYiPiLgtqLgt4/gtr3gtrrgtqcg4La04LeU4La74Lax4La6IOC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBuZXR3b3JrX2F2YWlsYWJsZV9zaWduX2luX2RldGFpbGVkICg4MDAwMDgxOTQxNDQ3OTc2MTE4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV93YXRjaGRvZ19uZXR3b3JrX2Rpc2FibGVkIiBtc2dpZD0iNzkwNDIxNDIzMTY1MTU0NjM0NyI+IldpLUZpIOC3gOC3meC2rSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeS4La6IOC2seC3nOC3hOC3kOC2miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfd2F0Y2hkb2dfbmV0d29ya19kaXNhYmxlZF9kZXRhaWxlZCIgbXNnaWQ9IjU1NDg3ODA3NzY0MTgzMzI2NzUiPiIg4Lav4LeU4La24La9IOC2heC2seC3iuC2reC2u+C3iuC2ouC3j+C2vSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt4/gt4Dgtrrgtprgt4og4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijk3NjExNzgyNjU5MzI0NTE3Ij4i4LaN4Lai4LeUIFdpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfdHVybm9uX21lc3NhZ2UiIG1zZ2lkPSIyOTA5MjUwOTQyMjk5NjI3MjQ0Ij4i4LaN4Lai4LeUIFdpLUZpIOC2huC2u+C2uOC3iuC2tyDgtprgtrvgtrHgt4rgtrEuIOC2uOC3meC2uiBXaS1GaSDgt4Pgt5rgt4Dgt4/gtq/gt4/gtrrgtpov4LeE4Lec4Lan4LeK4LeD4LeK4La04Lec4Lan4LeKIOC2keC2miDgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4La74Lax4LeUIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mYWlsZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NjM2Njk2Nzc5MzU2MjMwODQiPiLgto3gtqLgt5QgV2ktRmkg4LaG4La74La44LeK4La3IOC2muC3hSDgtrHgt5zgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZW5hYmxlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMDY4MzIxODgxNjczNzM0ODg2Ij4iV2ktRmkg4LaN4Lai4LeUIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3j+C3gCDgt4Pgtprgt4rigI3gtrvgt5Lgtrrgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9lbmFibGVkX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTYzODk0OTk1Mzk5Mzg5NDMzNSI+IuC3g+C3kOC2muC3g+C3k+C2uOC3iiDgt4PgtrPgt4Tgt48g4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2VwdCIgbXNnaWQ9IjE2NDUyNjcyNTkyNzI4Mjk1NTkiPiLgtrTgt5Lgt4Xgt5LgtpzgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWNsaW5lIiBtc2dpZD0iMjExMjIyNTQ1MTcwNjEzNzg5NCI+IuC2tOC3iuKAjeC2u+C2reC3kuC2muC3iuC3guC3muC2tCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9pbnZpdGF0aW9uX3NlbnRfdGl0bGUiIG1zZ2lkPSIxMzE4OTc1MTg1MTEyMDcwNzM0Ij4i4LaG4La74LeP4Law4Lax4LeP4LeAIOC2uuC3gOC2sSDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9pbnZpdGF0aW9uX3RvX2Nvbm5lY3RfdGl0bGUiIG1zZ2lkPSI0OTU4ODAzOTQ4NjU4NTMzNjM3Ij4i4LeD4La44LeK4La24Lax4LeK4Law4Lat4LeP4LeA4La64LanIOC2h+C2u+C2uuC3lOC2uOC2muC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2Zyb21fbWVzc2FnZSIgbXNnaWQ9IjU3MDM4OTE3NDczMTk1MTc2OSI+IuC3gOC3meC2reC3kuC2seC3ijoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF90b19tZXNzYWdlIiBtc2dpZD0iMjQ4OTY4OTc0NTIyMDQ0MDk5Ij4i4LeA4LeZ4LatOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfcDJwX2VudGVyX3Bpbl9tZXNzYWdlIiBtc2dpZD0iNTkyMDkyOTU1MDM2NzgyODk3MCI+IuC2heC3gOC3geC3iuKAjeC2uiBQSU4g4LaR4LaaIOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrHgt4rgtrE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfc2hvd19waW5fbWVzc2FnZSIgbXNnaWQ9Ijg1MzA1NjMzMjM4ODA5MjEwOTQiPiJQSU46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2lmaV9wMnBfZnJlcXVlbmN5X2NvbmZsaWN0X21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjgwMTI5ODEyNTc3NDIyMzI0NzUiPiLgtqfgt5Dgtrbgt4rgtr3gtqfgtrogPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiDgt4Dgt5ngtq0g4LeD4La44LeK4La24Lax4LeK4LawIOC3gOC2sSDgtoXgtq3gtrvgtq3gt5Tgtrsg4LaR4La6IFdpLUZpIOC3gOC2veC3kuC2seC3iiDgtq3gt4/gt4Dgtprgt4/gtr3gt5Lgtprgt4Ag4LeA4LeS4LeD4Lax4LeK4Law4LeSIOC2muC3meC2u+C3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX3AycF9mcmVxdWVuY3lfY29uZmxpY3RfbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczNjM5MDcyMTM3ODc0NjkxNTEiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrogPHhsaWZmOmcgaWQ9IkRFVklDRV9OQU1FIj4lMSRzPC94bGlmZjpnPiDgtqcg4LeD4La44LeK4La24Lax4LeK4LawIOC3gOC3kyDgtrTgt4Dgtq3gt5LgtrEg4LeA4LeS4LanIFdpLUZpIOC3gOC2veC3kuC2seC3iiDgtpHgtrog4Lat4LeP4LeA4Laa4LeP4La94LeS4Laa4LeAIOC3gOC3kuC3g+C2seC3iuC2sOC3kiDgt4Dgt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2NoYXJhY3RlciIgbXNnaWQ9IjMzNjU1NTAxMjA2MTc3MDE3NDUiPiLgtoXgtprgt5Tgtrsg4LaH4Lat4LeU4LeF4Lat4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX3RpdGxlIiBtc2dpZD0iNzI5NjYxMjc4MTEyODkxNzcxOSI+IlNNUyDgtrTgtqvgt5Lgt4Dgt5Lgtqkg4La64LeA4La44LeS4Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfbWVzc2FnZSIgbXNnaWQ9IjM4Njc4OTkxNjk2NTE0OTY0MzMiPiImbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0Oy9iJmd0OyBTTVMg4La04Lar4LeS4LeA4LeS4LapIOC3gOC3kuC3geC3j+C2vSDgtpzgtqvgtrHgtprgt4og4La64LeA4La64LeSLiDgtrjgt5ngtrgg4La64LeZ4Lav4LeU4La44LanIOC2tOC2q+C3kuC3gOC3kuC2qSDgtrrgt5Dgt4Dgt5Pgtrgg4Lax4Lec4Lax4LeQ4LeA4Lat4LeTIOC2muC2u+C2nOC3meC2sSDgtrrgt4/gtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3k+C2uOC2pyDgtpTgtrbgtqcg4LaF4LeA4LeB4LeK4oCN4La64LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19jb250cm9sX3llcyIgbXNnaWQ9IjM2NjM3MjU5OTM4NTU4MTY4MDciPiLgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX2NvbnRyb2xfbm8iIG1zZ2lkPSI2MjU0Mzg1NjEzOTU1MzQ5ODIiPiLgtrTgt4rigI3gtrvgtq3gt5Lgtprgt4rgt4Lgt5rgtrQg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9tZXNzYWdlIiBtc2dpZD0iMTY0NTQzNjQ2NjI4NTMxMDg1NSI+IiZsdDtiJmd0Ozx4bGlmZjpnIGlkPSJERVNUX0FERFJFU1MiPiUyJHM8L3hsaWZmOmc+Jmx0O2ImZ3Q7IOC3gOC3meC2rSDgtprgt5ngtqfgt5Ig4La04Lar4LeS4LeA4LeT4Lap4La64Laa4LeKIOC2uuC3kOC3gOC3k+C2uOC2pyAmbHQ7YiZndDs8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+Jmx0O2ImZ3Q7IOC2muC3kOC2uOC2reC3kuC2ui4iPC9zdHJpbmc+CisgICAgPCEtLSBzeW50YXggZXJyb3IgaW4gdHJhbnNsYXRpb24gZm9yIHNtc19zaG9ydF9jb2RlX2RldGFpbHMgKDM0OTIwMjU3MTk4NjgwNzg0NTcpIG9yZy54bWxwdWxsLnYxLlhtbFB1bGxQYXJzZXJFeGNlcHRpb246IGV4cGVjdGVkOiAvc3RyaW5nIHJlYWQ6IGZvbnQgKHBvc2l0aW9uOkVORF9UQUcgPC9mb250PkAxOjgzIGluICAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2RldGFpbHMiIG1zZ2lkPSIzNDkyMDI1NzE5ODY4MDc4NDU3Ij4i4La44LeZ4La6ICI8L2ZvbnQ+IuC2lOC2tuC2nOC3miDgtqLgtoLgtpzgtrgg4Lac4LeS4Lar4LeU4La44LeaIjxmb250IGZnY29sb3I9IiNmZmZmYjA2MCI+IiDgtoXgtrog4LeA4LeT4La44LeKIOC3gOC2veC2pyDgt4Tgt5rgtq3gt5Tgt4Dgtprgt4og4LeA4LeaLiI8L3N0cmluZz4KKykgIC0tPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3ByZW1pdW1fc2hvcnRfY29kZV9kZXRhaWxzIiBtc2dpZD0iNTUyMzgyNjM0OTEwNTEyMzY4NyI+PGZvbnQgZmdjb2xvcj0iI2ZmZmZiMDYwIj4i4La44LeZ4La6IOC2lOC2tuC2nOC3miDgtqLgtoLgtpzgtrgg4Lac4LeS4Lar4LeU4La44LeZ4Lax4LeKIOC2heC2uuC3gOC3k+C2uOC2pyDgt4Tgt5rgtq3gt5Qg4LeA4LeaLiI8L2ZvbnQ+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzbXNfc2hvcnRfY29kZV9jb25maXJtX2FsbG93IiBtc2dpZD0iNDQ1ODg3ODYzNzExMTAyMzQxMyI+IuC2uuC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fZGVueSIgbXNnaWQ9IjI5MjczODk4NDAyMDkxNzA3MDYiPiLgtoXgt4Dgtr3gtoLgtpzgt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfcmVtZW1iZXJfY2hvaWNlIiBtc2dpZD0iNTI4OTUzODU5MjI3MjIxODEzNiI+IuC2uOC2nOC3miDgtq3gt5rgtrvgt5Pgtrgg4La44Lat4LaaIOC2reC2tuC3j+C2nOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX3JlbWVtYmVyX3VuZG9faW5zdHJ1Y3Rpb24iIG1zZ2lkPSI0OTYwOTQ0MTMzMDUyMjg3NDg0Ij4i4LaU4La24LanIOC2uOC3meC2uiDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4Lat4LeU4LeFIOC3gOC3meC2seC3g+C3iuC2muC2uyDgtpzgt5DgtrHgt5Pgtrgg4La04LeD4LeU4LeAIOC2muC3hSDgt4Tgt5DgtprCoCZndDvCoOC2uuC3meC2r+C3lOC2uOC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNtc19zaG9ydF9jb2RlX2NvbmZpcm1fYWx3YXlzX2FsbG93IiBtc2dpZD0iMzI0MTE4MTE1NDg2OTQ5MzM2OCI+IuC3g+C3kOC2uOC3gOC3kuC2p+C2uCDgtongtqkg4Lav4LeZ4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic21zX3Nob3J0X2NvZGVfY29uZmlybV9uZXZlcl9hbGxvdyIgbXNnaWQ9IjQ0Njk5Mjc2NTc3NDI2OTY3MyI+IuC2muC3kuC3g+C3kuC2r+C3jyDgtoXgt4Dgt4Pgtrsg4Lax4Lec4Lav4LeZ4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX3JlbW92ZWRfdGl0bGUiIG1zZ2lkPSI2MjI3NzEyMzE5MjIzMjI2MTg1Ij4iU0lNIOC2tOC2rSDgtongt4Dgtq3gt4og4Laa4La74LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9yZW1vdmVkX21lc3NhZ2UiIG1zZ2lkPSIyMzMzMTY0NTU5OTcwOTU4NjQ1Ij4i4LaU4La2IOC2h+C2reC3lOC3heC2reC3iiDgtprgtrvgtrEg4La94LavIOC3gOC2veC2guC2nOC3lCBTSU0g4La04LatIOC3g+C2uOC2nyDgtrHgt5Dgt4Dgtq0g4LaH4La74La54LeT4La4IOC2muC2u+C2sSDgtq3gt5Tgtrvgt5Qg4Lai4LaC4Lac4La4IOC2ouC3j+C2veC2uiDgtrHgt5zgtq3gt5Lgtrbgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX2RvbmVfYnV0dG9uIiBtc2dpZD0iODI3OTQ5OTg5MzY5OTYzNzc1Ij4i4LeE4La74LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2ltX2FkZGVkX3RpdGxlIiBtc2dpZD0iMzcxOTY3MDUxMjg4OTY3NDY5MyI+IlNJTSDgtrTgtq3gtprgt4og4LaR4Laa4Lat4LeUIOC2muC2u+C2sSDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaW1fYWRkZWRfbWVzc2FnZSIgbXNnaWQ9IjY1OTk5NDUzMDExNDEwNTAyMTYiPiLgtqLgtoLgtpzgtrgg4Lai4LeP4La94La64LanIOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgt4Dgt5Pgtrjgtqcg4LaU4La24Lac4LeaIOC2i+C2tOC3j+C2guC2nOC2uiDgtrHgt5Dgt4Dgtq0g4LaF4La74La54Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNpbV9yZXN0YXJ0X2J1dHRvbiIgbXNnaWQ9IjQ3MjI0MDc4NDI4MTUyMzIzNDciPiLgtrrgt4Xgt5Ig4LaF4La74La54Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODM0OTM2MjYyMzA2ODgxOTI5NSI+IuC3gOC3muC2veC3j+C3gCDgt4Pgtprgt4PgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kaWFsb2dfdGl0bGUiIG1zZ2lkPSI1ODc5NDUwNjU5NDUzNzgyMjc4Ij4i4Lav4LeS4Lax4La6IOC3g+C3kOC2muC3g+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfdGltZV9zZXQiIG1zZ2lkPSI1Nzc3MDc1NjE0MzIxMDg3NzU4Ij4i4LeD4Laa4LeD4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV90aW1lX2RvbmUiIG1zZ2lkPSIyNTA3NjgzNzUxNzU5MzA4ODI4Ij4i4LeE4La74LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybXNfbmV3X3Blcm1fcHJlZml4IiBtc2dpZD0iODI1Nzc0MDcxMDc1NDMwMTQwNyI+PGZvbnQgc2l6ZT0iMTIiIGZnY29sb3I9IiNmZjMzYjVlNSI+IuC2heC2veC3lOC2reC3ijogIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1zX2Rlc2NyaXB0aW9uX2FwcCIgbXNnaWQ9IjUxMzk4MzYxNDMyOTMyOTk0MTciPiI8eGxpZmY6ZyBpZD0iQVBQX05BTUUiPiUxJHM8L3hsaWZmOmc+IOC3gOC3kuC3g+C3kuC2seC3iiDgt4PgtrTgtrrgtrEg4La94Lav4LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX3Blcm1pc3Npb25zIiBtc2dpZD0iNzI4MzM1NzcyODIxOTMzODExMiI+IuC2heC3gOC3g+C2uyDgtoXgt4Dgt4Hgt4rigI3gtrog4Lax4Lec4La44LeQ4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybV9jb3N0c19tb25leSIgbXNnaWQ9IjQ5MDI0NzAzMjQxNDIxNTExMTYiPiLgtrjgt5ngtrjgtp/gt5LgtrHgt4og4LaU4La24LanIOC2uOC3lOC2r+C2veC3iiDgt4Dgt5Dgtrog4LeA4LeS4La6IOC3hOC3kOC2miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2FjdGl2aXR5X3RpdGxlIiBtc2dpZD0iNDQ2NTA1NTE1NzIwOTY0ODY0MSI+IlVTQiDgtrjgt4Tgt48g4LaG4Lag4La64Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfdGl0bGUiIG1zZ2lkPSI1OTAxNDU5MDQxMzk4NzUxNDk1Ij4iVVNCIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC3kuC2reC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzMwODUzODA5NDMxNjQ3NzgzOSI+IuC2lOC2tiDgtpTgtrbgtpzgt5og4La04La74LeS4Lac4Lar4Laa4La64LanIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgt4Dgt5Mg4LaH4Lat4LeK4Lat4LeaIFVTQiDgt4Pgt4rgtrTgtrvgt4rgt4Hgtrog4LeE4La74LeE4LeP4La6LiDgtpTgtrbgtqcg4LaU4La24LeaIOC2tOC2u+C3kuC2nOC2q+C2muC2uiDgt4Tgt48g4LaU4La24Lac4LeaIEFuZHJvaWQgVVNCIOC2huC2oOC2uuC2seC2uiDgtoXgtq3gtrsg4Lac4Lec4Lax4LeUIOC2tOC3kuC2p+C2tOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4LeA4LeB4LeK4oCN4La6IOC2seC2uOC3iiDgtrTgt4Tgtq0g4La24Lec4Lat4LeK4Lat4La4IOC2lOC2tuC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODA1MzUxMDAwNDQ2MDM3ODExIj4i4LaU4La2IOC2lOC2tuC2nOC3miDgtrTgtrvgt5LgtpzgtqvgtprgtrrgtqcgVVNCIOC3hOC2u+C3hOC3jyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeTIOC2h+C2rS4g4LaU4La24LanIOC2lOC2tuC3miDgtrTgtrvgt5Lgtpzgtqvgtprgtrog4LeE4LePIOC2lOC2tuC2nOC3miBBbmRyb2lkIFNEIOC2tOC2rSDgtoXgtq3gtrsg4Lac4Lec4Lax4LeUIOC2tOC3kuC2p+C2tOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaF4LeA4LeB4LeK4oCN4La6IOC2seC2uOC3iiDgtrTgt4Tgtq0g4La24Lec4Lat4LeK4Lat4La4IOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2VfYnV0dG9uX21vdW50IiBtc2dpZD0iMTA1MjI1OTkzMDM2OTUwODIzNSI+IlVTQiDgtobgtqDgtrrgtrHgtrog4LeD4Laa4LeK4oCN4La74LeS4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX2Vycm9yX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzAxNzA0NTIxNzM2NTU0MDY1OCI+IlVTQiDgtrjgt4Tgt48g4LaG4Lag4La64Lax4La6IOC3g+C2s+C3hOC3jyDgtpTgtrbgtpzgt5ogVVNCIOC2huC2oOC2uuC2seC2uiDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5rgtq/gt5Mg4Lac4LeQ4Lan4LeF4LeU4LeA4Laa4LeKIOC2reC3kuC2tuC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9lcnJvcl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMjg3NjAxODUxMjcxNjk3MDMxMyI+IlVTQiDgtrjgt4Tgt48g4LaG4Lag4La64Lax4La6IOC3g+C2s+C3hOC3jyDgtpTgtrbgtpzgt5ogU0Qg4La04LatIOC2t+C3j+C3gOC3kuC2reC2uuC3muC2r+C3kyDgtpzgt5Dgtqfgt4Xgt5Tgt4Dgtprgt4og4Lat4LeS4La24LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjgxNzU4OTI1NTQ3NTcyMTY1MjUiPiJVU0Ig4LeD4La44LeK4La24Lax4LeK4Law4LeS4Lat4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5Mzk4MjI3ODM4MjgxODM3NjMiPiLgtpTgtrbgtpzgt5og4La04La74LeS4Lac4Lar4Laa4La6IOC3gOC3meC2reC2py/gt4Dgt5ngtq3gt5LgtrHgt4og4Lac4Lec4Lax4LeUIOC2tOC3kuC2p+C2tOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjIzMzYwNTgzOTY2NjM1MTYwMTciPiJVU0Ig4LaG4Lag4La64Lax4La6IOC2heC2muC3iuKAjeC2u+C3kuC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTY1Njg1MjA5ODU1NTYyMzgyMiI+IlVTQiDgtobgtqDgtrrgtrHgtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgt4Pgt4rgtrTgtrvgt4rgt4Eg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9zdG9yYWdlX3N0b3BfdGl0bGUiIG1zZ2lkPSI2NjAxMjk4NTE3MDg3NzU4NTMiPiJVU0Ig4LaG4Lag4La64Lax4La6IOC2t+C3j+C3gOC3kuC2reC2uuC3miDgtrTgt4Dgtq3gt5MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDI2NDAyNTI4MDc3NzIxOTUyMSI+IlVTQiDgtobgtqDgtrrgtrHgtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrTgt5ngtrssIOC2lOC2tuC2nOC3miDgtrTgtrvgt5Lgtpzgtqvgtprgtrrgt5ngtrHgt4ogQW5kcm9pZCBVU0Ig4LaG4Lag4La64Lax4La6IOC2nOC2veC3gOC3jyDgtq/gtrjgtrHgt4rgtrEgKFwi4La04LeS4LanIOC2muC2u+C2seC3iuC2sVwiKS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2Jfc3RvcmFnZV9zdG9wX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI4MDQzOTY5NzgyNDYwNjEzMTE0Ij4iVVNCIOC2huC2oOC2uuC2seC2uiDgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4LeS4La74LeT4La44LanIOC2tOC3meC2uywg4LaU4La24Lac4LeaIEFuZHJvaWQgU0Qg4La04LatIOC2tOC2u+C3kuC2nOC2q+C2muC2uuC3meC2seC3iiDgtpzgtr3gt4DgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9idXR0b25fbW91bnQiIG1zZ2lkPSI3MDYwMjE4MDM0OTAwNjk2MDI5Ij4iVVNCIOC2huC2oOC2uuC2seC2uiDgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3N0b3JhZ2Vfc3RvcF9lcnJvcl9tZXNzYWdlIiBtc2dpZD0iMTk3MDM3NDg5ODI2MzA2MzgzNiI+IlVTQiDgtobgtqDgtrrgtrHgtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC3kuC2u+C3k+C2uOC3muC2r+C3kyDgtpzgt5Dgtqfgt4Xgt5Tgt4Dgtprgt4og4LaH4Lat4LeS4LeA4LeS4La6LiBVU0Ig4LeD4LaC4Lac4LeK4oCN4La74LeP4LeE4Laa4La6IOC2nOC2veC3gOC3jyDgtofgtq3gt5Ig4Lav4LeQ4La64LeSIOC2tOC2u+C3k+C2muC3iuC3guC3jyDgtprgtrvgtrHgt4rgtrEsIOC2tOC3g+C3lOC3gCDgtrHgt5Dgt4Dgtq3gtq3gt4og4LaL4Lat4LeK4LeD4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfY29uZmlybV9raWxsX3N0b3JhZ2VfdXNlcnNfdGl0bGUiIG1zZ2lkPSI5NjMwMzkwMzM0NzA0Nzg2OTciPiJVU0Ig4LaG4Lag4La64Lax4La6IOC3g+C2muC3iuKAjeC2u+C3kuC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkbGdfY29uZmlybV9raWxsX3N0b3JhZ2VfdXNlcnNfdGV4dCIgbXNnaWQ9IjUxMDA0Mjg3NTcxMDc0Njk0NTQiPiLgtpTgtrYgVVNCIOC2huC2oOC2uuC2seC2uiDgt4Pgtprgt4rigI3gtrvgt5Lgtrog4Lax4La44LeKLCDgtpTgtrYg4La34LeP4LeA4LeS4Lat4LePIOC2muC2u+C2sSDgt4Pgtrjgt4Tgtrsg4La64LeZ4Lav4LeU4La44LeKIOC2seC3kOC3gOC2reC3k+C2uCDgt4Pgt4Qg4LaU4La2IFVTQiDgtobgtqDgtrrgtrHgtrog4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC2u+C2sSDgtq3gt5Tgtrvgt5Qg4Lax4Lec4Lat4LeS4La24Lea4LeA4LeTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19lcnJvcl90aXRsZSIgbXNnaWQ9IjczMjM2NTg0Njk2MjY1MTQyMDciPiJVU0Ig4Laa4LeK4oCN4La74LeS4La64LeP4LeA4La94LeS4La6IOC2heC3g+C3j+C2u+C3iuC2ruC2muC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRsZ19vayIgbXNnaWQ9IjczNzY5NTMxNjcwMzk4NjU3MDEiPiLgt4Tgtrvgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfbXRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjM2OTk5MTMwOTczOTE1NTAzOTQiPiLgtrjgt4/gtrDgt4rigI3gtrog4LaL4La04LeP4LaC4Lac4La64Laa4LeKIOC2veC3meC3gyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgt5Lgtq3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHRwX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjE5NjA4MTcxOTIyMTYwNjQ4MzMiPiLgtprgt5Dgtrjgtrvgt4/gt4Dgtprgt4og4La94LeZ4LeDIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgtrsg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2NkX2luc3RhbGxlcl9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2Nzc0NzEyODI3ODkyMDkwNzU0Ij4i4LeD4LeK4Lau4LeP4La04LeS4Lat4La64Laa4LeKIOC2veC3meC3gyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9Ijc4NDgyMzY5NzQwODc2NTM2NjYiPiJVU0Ig4La44LeZ4LeA4La94La44Laa4LanIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC3kuC2reC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjIyOTA4NTkzOTk5ODM3MjAyNzEiPiLgtoXgtrHgt5ngtprgt4ogVVNCIOC3gOC3kuC2muC2veC3iuC2tOC2uiDgt4PgtrPgt4Tgt48g4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iOTAyMDA5MjE5NjA2MTAwNzI2MiI+IlVTQiDgtobgtqDgtrrgtrHgtrog4LeG4Led4La44LeQ4Lan4LeKIOC2muC2u+C2seC3iuC2seC2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRtZWRpYV9mb3JtYXRfdGl0bGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNjQ4NDE1OTIxNTI2NTI2MDY5Ij4iU0Qg4La04LatIOC3huC3neC2uOC3kOC2p+C3iiDgtprgtrvgtrHgt4rgtrHgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X21lc3NhZ2UiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzkzNDAxNjg1MzQyNTc2MTA3OCI+IuC2lOC2tuC2nOC3miBVU0Ig4LaG4Lag4La64Lax4La64LeaIOC2h+C2reC3kiDgt4Pgt5Lgtrrgtr3gt5Tgtrgg4Lac4Lec4Lax4LeUIOC2uOC3kOC2muC3kyDgtrrgtrHgt5Qg4LaH4LatLiDgtrjgt5ngtrgg4Laa4LeK4oCN4La74LeS4La64LeP4LeAIOC2huC2tOC3g+C3lCDgt4Tgt5Dgtrvgt4Dgt5Lgtrog4Lax4Lec4LeE4LeQ4LaaISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dG1lZGlhX2Zvcm1hdF9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQxMzE4OTUwMjc1NDM4MzAiPiLgtpTgtrbgtpzgt5og4La04Lat4LeaIOC3g+C3kuC2uuC2veC3lCDgtq/gtq3gt4rgtq0g4Lax4LeQ4Lat4LeSIOC3gOC2seC3lCDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0bWVkaWFfZm9ybWF0X2J1dHRvbl9mb3JtYXQiIG1zZ2lkPSI0MTMxMDY0NTYwMTI3NDc4Njk1Ij4i4LeG4Led4La44LeQ4Lan4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRiX2FjdGl2ZV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2NzI5MDQ0Nzc4OTQ5MTg5OTE4Ij4iVVNCIOC2seC3kuC2r+C3nOC3g+C3iuC2muC2u+C2q+C2uiDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgt5Lgtq3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGJfYWN0aXZlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMTAxNjY1NDYyNzYyNjQ3NjE0MiI+IlVTQiDgtrHgt5Lgtq/gt5zgt4Pgt4rgtprgtrvgtqvgtrog4LaF4La24La9IOC2muC3kuC2u+C3k+C2uOC2pyDgt4Pgt4rgtrTgtrvgt4rgt4Eg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9pbnB1dF9tZXRob2QiIG1zZ2lkPSI0NjUzMzg3MzM2NzkxMjIyOTc4Ij4i4LaG4Lav4LeP4LaxIOC2muC3iuKAjeC2u+C2uOC2uuC2muC3iiDgtq3gt53gtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjkwOTE2NTIxNTc3MjI0OTUxMTYiPiLgtobgtq/gt4/gtrEg4Laa4LeK4oCN4La74La4IOC3g+C2muC3g+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9IjYyMDMxMTI0NzgwOTUxMTc2MjUiPiLgtrfgt57gtq3gt5Lgtpog4La64Lat4LeU4La74LeUIOC2tOC3lOC3gOC2u+C3lOC3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhhcmR3YXJlIiBtc2dpZD0iNzUxNzgyMTA4Njg4ODk5MDI3OCI+IuC2r+C3mOC2qOC3j+C2guC2nCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMTQwNzM2NzAxNzI2MzAzMDc3MyI+IuC2uuC2reC3lOC2u+C3lCDgtrTgt5Tgt4Dgtrvgt5Tgt4Dgtqcg4La04LeS4La74LeS4LeD4LeQ4La94LeQ4LeD4LeK4La4IOC2reC3neC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9rZXlib2FyZF9sYXlvdXRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDY1OTA3NzAwNDQ5MjU3MDYzIj4i4La64Lat4LeU4La74LeUIOC2tOC3lOC3gOC2u+C3lOC3gOC2pyDgtrTgt5Lgtrvgt5Lgt4Pgt5Dgtr3gt5Dgt4Pgt4rgtrjgtprgt4og4Lat4Lea4La74LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFzdF9zY3JvbGxfYWxwaGFiZXQiIG1zZ2lkPSI1NDMzMjc1NDg1NDk5MDM5MTk5Ij4iIEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFzdF9zY3JvbGxfbnVtZXJpY19hbHBoYWJldCIgbXNnaWQ9IjQwMzAxNzA1MjQ1OTUxMjM2MTAiPiIgMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuZGlkYXRlc19zdHlsZSIgbXNnaWQ9IjQzMzM5MTMwODk2MzcwNjIyNTciPjx1PiLgtoXgtrTgt5rgtprgt4rgt4LgtprgtrrgtrHgt4oiPC91Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSIzNDQ5ODE2MDA1MzUxNDY4NTYwIj4iVVNCIOC2huC2oOC2uuC2seC2uiDgt4Pgtprgt4Pgtrjgt5LgtrHgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfY2hlY2tpbmdfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTQ1NzYwMzQxODk3MDk5NDA1MCI+IlNEIOC2tOC2rSDgt4Pgt5Tgtq/gt4/gtrHgtrjgt4og4Laa4La74La44LeS4Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX2NoZWNraW5nX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iODI4NzMxOTg4MjkyNjczNzA1MyI+IuC3gOC3kOC2u+C2r+C3kiDgt4PgtrPgt4Tgt48g4La04La74LeT4Laa4LeK4LeC4LePIOC2muC2u+C2uOC3kuC2seC3ii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9mc19ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNzc4ODA0MDc0NTY4NjIyOTMwNyI+IuC3hOC3kuC3g+C3iiBVU0Ig4LaG4Lag4La64Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vZnNfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzgwNDc3ODM4MjQxMjEyOTk3Ij4i4LeE4LeS4LeD4LeKIFNEIOC2tOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9Ijc4NDAxMjEwNjc0MjcyNjk1MDAiPiJTRCDgtrTgtq0g4LeE4LeS4LeD4LeKIOC3hOC3nSDgt4Pgt4Tgt4/gtrog4Lax4Lec4Lav4Laa4LeK4LeA4LaxIOC2nOC3nOC2seC3lCDgtrTgtq/gt4rgtrDgtq3gt5Lgtrrgtprgt4og4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub2ZzX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODY0MTA2NTY0MTc4NjkyMzYwNCI+IlNEIOC2tOC2rSDgt4Tgt5Lgt4Pgt4og4LeE4LedIOC3g+C3hOC2uiDgtrHgt5zgtq/gtprgt4rgt4DgtrEg4Lac4Lec4Lax4LeUIOC2tOC2r+C3iuC2sOC2reC3kuC2uuC2muC3iiDgtofgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjIwOTAwNDY3Njk1MzI3MTM1NjMiPiLgt4Tgt4/gtrHgt5Ig4LeA4LeWIFVTQiDgtobgtqDgtrrgtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNjQxMDcyMzkwNjAxOTEwMDE4OSI+IuC3hOC3j+C2seC3kiDgt4Dgt5YgU0Qg4La04LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3VubW91bnRhYmxlX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjE3OTU5MTc1NzgzOTUzMzMyODAiPiJVU0Ig4LaG4Lag4La64Lax4La64LanIOC3hOC3j+C2seC3kiDgt4Dgt5Mg4LaH4LatLiDgtpHgtrog4Lax4LeQ4LeA4LatIOC3huC3neC2uOC3kOC2p+C3iiDgtpzgt5DgtrHgt4rgt4Dgt5Pgtrjgtqcg4LaL4Lat4LeK4LeD4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfdW5tb3VudGFibGVfbm90aWZpY2F0aW9uX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNzUzODk4NTY3NTI1NTY4MjUzIj4iU0Qg4La04Lat4LanIOC3hOC3j+C2seC3kiDgt4Dgt5Mg4LaH4LatLiDgtpHgtrog4Lax4LeQ4LeA4LatIOC3huC3neC2uOC3kOC2p+C3iiDgtpzgt5DgtrHgt4rgt4Dgt5Pgtrjgtqcg4LaL4Lat4LeK4LeD4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfYmFkcmVtb3ZhbF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMTY2MTY4MzAzMTMzMDk1MTA3MyI+IuC2tuC2veC3j+C2tOC3nOC2u+C3nOC2reC3iuC2reC3lCDgtrHgt5zgt4Dgt5Yg4La94LeZ4LeDIFVTQiDgtobgtqDgtrrgtrHgtrog4LaJ4LeA4Lat4LeKIOC2muC3meC2u+C3kuC2q+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY4NzIxNTI4ODI2MDQ0MDc4MzciPiJTRCDgtrTgtq0g4La24La94LeP4La04Lec4La74Lec4Lat4LeK4Lat4LeUIOC2u+C3hOC3kuC2reC3gCDgtongt4Dgtq3gt4og4Laa4La74LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQzMjk4NDg4MTk4NjU1OTQyNDEiPiLgtq/gtq3gt4rgtq0g4Lax4LeQ4Lat4LeS4LeA4LeT4La4IOC3gOC3kOC3heC2muC3iuC3gOC3k+C2uOC2pyBVU0Ig4LaG4Lag4La64Lax4La6IOC2ieC3gOC2reC3iuC2muC3kuC2u+C3k+C2uOC2pyDgtrTgt5ngtrsg4Lac4La94LeA4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9iYWRyZW1vdmFsX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzI2MDE4MzI5Mzc0NzQ0ODI0MSI+IuC2r+C2reC3iuC2rSDgtrHgt5Dgtq3gt5Lgt4Dgt5Pgtrgg4LeA4LeQ4LeF4Laa4LeK4LeA4LeT4La44LanIOC2nOC3kOC2veC3gOC3k+C2uOC2pyDgtprgtr3gt5LgtrHgt4ogU0Qg4La04LatIOC2ieC3gOC2reC3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fdGl0bGUiIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iMzk2Nzk3Mzg5MzI3MDM2MDIzMCI+IuC2ieC3gOC2reC3iiDgtprgt5Lgtrvgt5PgtrjgtqcgVVNCIOC2huC2oOC2uuC2seC2uiDgtobgtrvgtprgt4rgt4Lgt5Lgtq3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl90aXRsZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY3Mjk4MDExMzA3OTA2MTYyMDAiPiJTRCDgtrTgtq0g4LaJ4LeA4Lat4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgt4Pgt5Tgtrvgtprgt4rgt4Lgt5Lgtq3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfc2FmZV91bm1vdW50X25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYxNDIxOTUzNjE2MDY0OTM1MzAiPiLgtpTgtrbgtqcgVVNCIOC2huC2oOC2uuC2seC2uiDgtobgtrvgtprgt4rgt4Lgt5Lgtq3gt4Ag4LaJ4LeA4Lat4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgtrTgt5Tgt4Xgt5Tgt4DgtrHgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX3NhZmVfdW5tb3VudF9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU2ODg0MTI3ODEzODM3NzYwNCI+IuC2lOC2tuC2pyDgtobgtrvgtprgt4rgt4Lgt5Lgtq3gt4AgU0Qg4La04LatIOC2ieC3gOC2reC3iiDgtprgt4Ug4LeE4LeQ4LaaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQ0ODYzNzcyMzAxNDAyMjc2NTEiPiJVU0Ig4LaG4Lag4La64Lax4La6IOC2ieC3gOC2reC3iiDgtprgtrvgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0X21lZGlhX25vbWVkaWFfbm90aWZpY2F0aW9uX3RpdGxlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iODkwMjUxODAzMDQwNDM4MTMxOCI+IlNEIOC2tOC2rSDgtongt4Dgtq3gt4og4Laa4La7IOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV4dF9tZWRpYV9ub21lZGlhX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjY5MjExMjYxNjI1ODA1NzQxNDMiPiJVU0Ig4LaG4Lag4La64Lax4La6IOC2ieC3gOC2reC3iuC2muC3nOC2pyDgtofgtq0uIOC2heC2veC3lOC2reC3iiDgtrjgt4/gtrDgt4rigI3gtrrgtrrgtprgt4og4LaH4Lat4LeU4LeF4Lat4LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHRfbWVkaWFfbm9tZWRpYV9ub3RpZmljYXRpb25fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM4NzAxMjA2NTI5ODM2NTk2NDEiPiJTRCDgtrTgtq0g4LaJ4LeA4Lat4LeKIOC2muC2u+C2sSDgtr3gtq/gt5IuIOC2heC2veC3lOC2reC3iiDgtpHgtprgtprgt4og4LaH4Lat4LeU4LeF4Lat4LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9saXN0X2VtcHR5IiBtc2dpZD0iMTY3NTM4ODMzMDc4Njg0MTA2NiI+IuC2nOC3kOC2veC2tOC3meC2sSDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtprgt4/gtrvgtprgtrjgt4og4LeE4La44LeUIOC2seC3nOC3gOC3lOC2q+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3BrZ1VzYWdlU3RhdHMiIG1zZ2lkPSI4Nzg3MzUyMDc0MzI2NzQ4ODkyIj4i4LeD4LaC4La74Lag4Laa4La6IOC2t+C3j+C3gOC3kuC2rSDgtprgt5Lgtrvgt5Pgtrjgt5og4LeD4LaC4Lab4LeK4oCN4La64LeP4LaxIOC2uuC3j+C3gOC2reC3iuC2muC3j+C2veC3k+C2sSDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19wa2dVc2FnZVN0YXRzIiBtc2dpZD0iMTEwNjYxMjQyNDI1NDI3NzYzMCI+IuC2keC2muC2reC3lCDgtprgtrvgtrEg4La94LavIOC3g+C2guC2u+C2oOC2muC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4LeD4LaC4Lab4LeK4oCN4La64LeP4LaxIOC3gOC3meC2seC3g+C3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEuIOC3g+C3j+C2uOC3j+C2seC3iuKAjeC2uiDgtrrgt5ngtq/gt5Tgtrjgt4og4LeD4Laz4LeE4LePIOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvcHlQcm90ZWN0ZWREYXRhIiBtc2dpZD0iNDM0MTAzNjMxMTIxMTQwNjY5MiI+IuC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uiDgtrTgt5LgtqfgtrTgtq3gt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29weVByb3RlY3RlZERhdGEiIG1zZ2lkPSI0MzkwNjk3MTI0Mjg4MzE3ODMxIj4i4LaF4Lax4LeK4Lat4La74LeK4Lac4Lat4La6IOC2tOC3kuC2p+C2tOC2reC3iiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeU4La04LeU4La74LeU4Lav4LeUIOC2heC2seC3iuC2reC2u+C3iuC2nOC2rSDgt4Pgt5rgt4Dgt4/gt4Ag4LaJ4La94LeK4LeA4LePIOC3g+C3kuC2p+C3k+C2uOC2pyDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sS4g4LeD4LeP4La44LeP4Lax4LeK4oCN4La6IOC2uuC3meC2r+C3lOC2uOC3iuC3gOC2vSDgtrfgt4/gt4Dgt5Lgtq3gtrog4LeD4Laz4LeE4LePIOC2seC3nOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JvdXRlX21lZGlhX291dHB1dCIgbXNnaWQ9IjE2NDIwMjQ0NTU3NTA0MTQ2OTQiPiLgtrjgt4/gtrDgt4rigI3gtrog4La04LeK4oCN4La74Lat4LeS4Lav4LeP4Lax4La64LeaIOC2uOC3j+C2u+C3iuC2nOC2nOC2rSDgtprgt5Lgtrvgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yb3V0ZV9tZWRpYV9vdXRwdXQiIG1zZ2lkPSI0OTMyODE4NzQ5NTQ3MjQ0MzQ2Ij4i4LeA4LeZ4Lax4Lat4LeKIOC2tuC3j+C3hOC3kuC2uyDgtovgtrTgt4/gtoLgtpwg4LeA4LeZ4LatIOC2uOC3j+C2sOC3iuKAjeC2uiDgtrTgt4rigI3gtrvgtq3gt5Lgtq/gt4/gtrHgtrog4La64LeQ4LeA4LeT4La44LanIOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzX2tleWd1YXJkX3NlY3VyZV9zdG9yYWdlIiBtc2dpZD0iNzU2NTU1MjIzNzk3NzgxNTA0NyI+IuC2uuC2reC3lOC2u+C3lCDgtrTgt4/gtr3gtpog4LaG4La74Laa4LeK4oCN4LeC4LeS4LatIOC2huC2oOC2uuC2seC2uiDgt4Dgt5ngtq0g4La04LeK4oCN4La74LeA4Lea4LeB4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzX2tleWd1YXJkX3NlY3VyZV9zdG9yYWdlIiBtc2dpZD0iNTg2NjI0NTQ4NDMwMzI4NTc2MiI+IuC2uuC2reC3lOC2u+C3lCDgtobgtrvgtprgt4rgt4Lgtpog4LaG4Lag4La64Lax4La64LanIOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44LanIOC2r+C3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xfa2V5Z3VhcmQiIG1zZ2lkPSIxNzIxOTUxODQyMDc4MjgzODciPiLgtrTgt5ngtrHgt4rgt4Dgt5Pgtrjgt5og4LeE4LePIOC3g+C3kOC2n+C3gOC3k+C2uOC3miDgtrrgtq3gt5Tgtrvgt5Qg4LaG4La74Laa4LeK4LeC4Laa4La6IOC2tOC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb250cm9sX2tleWd1YXJkIiBtc2dpZD0iMzA0MzczMjI5MDUxODYyOTA2MSI+IuC2uuC2reC3lOC2u+C3lCDgtobgtrvgtprgt4rgt4Lgtprgtrog4La04LeP4La94Lax4La64LanIOC2uuC3meC2r+C3lOC2uOC2muC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InR1dG9yaWFsX2RvdWJsZV90YXBfdG9fem9vbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNDA3MDQzMzIwODE2MDA2MzUzOCI+IuC3gOC3kuC3geC3j+C2veC2sSDgtrTgt4/gtr3gtrHgtrog4LeD4Laz4LeE4LePIOC2r+C3meC3gOC2u+C2muC3iiDgt4Pgt4rgtrTgtrvgt4rgt4Eg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2FkZ2V0X2hvc3RfZXJyb3JfaW5mbGF0aW5nIiBtc2dpZD0iNDg4MjAwNDMxNDkwNjQ2NjE2MiI+IuC3gOC3kuC2ouC2p+C2uiDgtpHgtprgtq3gt5Qg4Laa4LeS4La74LeT4La44LanIOC2seC3nOC3hOC3kOC2muC3kiDgt4Dgt5LgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9nbyIgbXNnaWQ9IjgzMjA4NDU2NTE3MzczNjkwMjciPiLgtrrgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX3NlYXJjaCIgbXNnaWQ9IjY1ODExMDI3MTgyMjgwNzgxMSI+IuC3g+C3meC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fc2VuZCIgbXNnaWQ9IjIzMTYxNjY1NTYzNDkzMTQ0MjQiPiLgtrrgt4DgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbWVfYWN0aW9uX25leHQiIG1zZ2lkPSIzMTM4ODQzOTA0MDA5ODEzODM0Ij4i4La44LeT4La94LafIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9kb25lIiBtc2dpZD0iODk3MTUxNjExNzkxMDkzNDYwNSI+IuC3hOC2u+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltZV9hY3Rpb25fcHJldmlvdXMiIG1zZ2lkPSIxNDQzNTUwMDM5MjUwMTA1OTQ4Ij4i4La04LeZ4La7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1lX2FjdGlvbl9kZWZhdWx0IiBtc2dpZD0iMjg0MDkyMTg4NTU1ODA0NTcyMSI+IuC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC2u+C3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpYWxfbnVtYmVyX3VzaW5nIiBtc2dpZD0iNTc4OTE3NjQyNTE2NzU3MzU4NiI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVzPC94bGlmZjpnPiDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4pcbuC2heC2guC2muC2uiDgtoXgtrjgtq3gtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfY29udGFjdF91c2luZyIgbXNnaWQ9IjQ5NDc0MDUyMjY3ODgxMDQ1MzgiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lczwveGxpZmY6Zz4g4La34LeP4LeA4LeS4Lat4La64LeZ4Lax4LeKXG7gt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt4/gt4Dgtrrgtprgt4og4Lax4LeS4La74LeK4La44LeP4Lar4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdyYW50X2NyZWRlbnRpYWxzX3Blcm1pc3Npb25fbWVzc2FnZV9oZWFkZXIiIG1zZ2lkPSIyMTA2MTAzODE3OTM3ODU5NjYyIj4i4La04LeE4LatIOC2r+C3kOC2muC3iuC3gOC3meC2sSDgtpHgtprgtprgt4og4LeE4LedIOC2iuC2pyDgt4Dgt5Dgtqngt5Ig4La64LeZ4Lav4LeU4La44LeKIOC2nOC2q+C2seC2muC3iiDgtpTgtrbgtpzgt5og4Lac4LeS4Lar4LeU4La44LanIOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgt4Dgt5PgtrjgtqcsIOC2r+C3kOC2seC3iiDgt4Pgt4Qg4LaJ4Lav4LeS4La74LeS4La64Lea4Lav4LeTIOC2heC3gOC3g+C2uyDgtongtr3gt4rgtr3gtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3JhbnRfY3JlZGVudGlhbHNfcGVybWlzc2lvbl9tZXNzYWdlX2Zvb3RlciIgbXNnaWQ9IjMxMjUyMTEzNDMzNzkzNzY1NjEiPiLgtrjgt5ngtrgg4LaJ4La94LeK4La94LeT4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5Pgtrjgtqcg4LaU4La24LanIOC2heC3gOC3geC3iuKAjeC2uuC2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncmFudF9wZXJtaXNzaW9uc19oZWFkZXJfdGV4dCIgbXNnaWQ9IjY4NzQ0OTc0MDgyMDE4MjY3MDgiPiLgtrTgt4rigI3gtrvgt4Dgt5rgt4Hgtrog4LaJ4La94LeK4La94LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3ciIG1zZ2lkPSI3MjI1OTQ4ODExMjk2Mzg2NTUxIj4i4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnkiIG1zZ2lkPSIyMDgxODc5ODg1NzU1NDM0NTA2Ij4i4La04LeK4oCN4La74Lat4LeS4Laa4LeK4LeC4Lea4La0IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1pc3Npb25fcmVxdWVzdF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSI2NDg2NzU5Nzk1OTI2MjM3OTA3Ij4i4LaF4LeA4LeD4La7IOC2ieC2veC3iuC2veC3jyDgt4Pgt5Lgtqfgt5MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtaXNzaW9uX3JlcXVlc3Rfbm90aWZpY2F0aW9uX3dpdGhfc3VidGl0bGUiIG1zZ2lkPSI4NTMwMzkzMTM5NjM5NTYwMTg5Ij4iPHhsaWZmOmcgaWQ9IkFDQ09VTlQiPiVzPC94bGlmZjpnPiDgtpzgt5Lgtqvgt5Tgtrgg4LeD4Laz4LeE4LePXG7gtoXgt4Dgt4Pgtrsg4LaJ4La94LeK4La94LaxIOC2veC2r+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnB1dF9tZXRob2RfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjEyODM1NTcxNzk5NDQ5OTI2NDkiPiLgtobgtq/gt4/gtrEg4Laa4LeK4oCN4La74La44La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY19iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMzY4Nzk2OTEzODM3NTA5MjQyMyI+IuC3g+C2uOC2uOC3lOC3hOC3lOC2u+C3iuC2reC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjQxNDgxMjA3NDIwOTY0NzQ2NDEiPiLgtrTgt4rigI3gtrvgt4Dgt5rgt4Hgt4rigI3gtrrgtq3gt4/gt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YWxscGFwZXJfYmluZGluZ19sYWJlbCIgbXNnaWQ9IjEyNDAwODc4NDQzMDQ2ODc2NjIiPiLgtrbgt5Lgtq3gt5TgtrTgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VyX3dhbGxwYXBlciIgbXNnaWQ9Ijc4NzM0NzYxOTkyOTUxOTAyNzkiPiLgtrbgt5Lgtq3gt5TgtrTgtq0g4LeA4LeZ4Lax4LeD4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vdGlmaWNhdGlvbl9saXN0ZW5lcl9iaW5kaW5nX2xhYmVsIiBtc2dpZD0iMjAxNDE2MjgzNTQ4MTkwNjQyOSI+IuC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC3iiDgtoXgt4PgtrHgt4rgtrHgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGl0bGUiIG1zZ2lkPSIxOTYxNTIxMzU1MjA0MjgyNyI+IlZQTiDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtq3gt4rgtrjgtprgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fdGl0bGVfbG9uZyIgbXNnaWQ9IjY0MDA3MTQ3OTgwNDkyNTIyOTQiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g4La44Laf4LeS4Lax4LeKIFZQTiDgt4Pgtprgt4rigI3gtrvgt5Pgtrog4Laa4La74LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl90ZXh0IiBtc2dpZD0iMzAxMTMwNjYwNzEyNjQ1MDMyMiI+IuC2ouC3j+C2veC2uiDgtprgt4XgtrjgtrHgt4/gtprgtrvgtqvgtrog4Laa4LeS4La74LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idnBuX3RleHRfbG9uZyIgbXNnaWQ9IjY0MDczNTEwMDYyNDkxNzQ0NzMiPiI8eGxpZmY6ZyBpZD0iU0VTU0lPTiI+JXM8L3hsaWZmOmc+IOC3gOC3meC2rSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeU4Lar4LeSLiDgtqLgt4/gtr3gtrog4Laa4LeF4La44Lax4LeP4Laa4La74Lar4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgt4Pgt4rgtrTgtrvgt4rgt4Eg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0aW5nIiBtc2dpZD0iNjQ0MzQzODk2NDQ0MDk2MDc0NSI+IuC3g+C3kOC2uOC3gOC3kuC2p+C2uCBWUE4g4LeD4La44LeK4La24Lax4LeK4LawIOC3gOC3meC2uOC3kuC2seC3iuKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9jb25uZWN0ZWQiIG1zZ2lkPSI4MjAyNjc5Njc0ODE5MjEzOTMxIj4i4Lax4LeS4La74Lat4LeU4La74LeU4LeA4La4IFZQTiDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4Laa4La7IOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InZwbl9sb2NrZG93bl9lcnJvciIgbXNnaWQ9IjYwMDkyNDk4MTQwMzQ3MDgxNzUiPiLgt4Pgt5Dgtrjgt4Dgt5Lgtqcg4LeD4Laa4LeK4oCN4La74LeS4La6IFZQTiDgtq/gt53gt4LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2cG5fbG9ja2Rvd25fY29uZmlnIiBtc2dpZD0iNjQxNTg5OTE1MDY3MTUzNzk3MCI+IuC3gOC3kuC2seC3iuKAjeC2uuC3j+C3gyDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVwbG9hZF9maWxlIiBtc2dpZD0iMjg5Nzk1NzE3MjM2NjczMDQxNiI+IuC2nOC3nOC2seC3lOC3gCDgtq3gt53gtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19maWxlX2Nob3NlbiIgbXNnaWQ9IjYzNjM2NDg1NjIxNzA3NTk0NjUiPiLgtpzgt5zgtrHgt5Tgt4Dgtprgt4og4Lat4Led4La74LeP4Lac4LeZ4LaxIOC2seC3kOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc2V0IiBtc2dpZD0iMjQ0ODE2ODA4MDk2NDIwOTkwOCI+IuC2uuC3heC3kiDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4DgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdWJtaXQiIG1zZ2lkPSIxNjAyMzM1NTcyMDg5OTExOTQxIj4i4La64Lec4La44LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhcl9tb2RlX2Rpc2FibGVfbm90aWZpY2F0aW9uX3RpdGxlIiBtc2dpZD0iMzE2NDc2ODIxMjAwMzg2NDMxNiI+IuC2uOC3neC2p+C2u+C3iiDgtrvgtq4g4LaG4Laa4LeP4La74La6IOC3g+C2tuC2vSDgtprgtrsg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FyX21vZGVfZGlzYWJsZV9ub3RpZmljYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjgwMzUyMzA1Mzc1NjM1MDMyNjIiPiLgtrjgt53gtqfgtrvgt4og4La74LauIOC2huC2muC3j+C2u+C2uuC3meC2seC3iiDgtrTgt5Lgtqfgt4Dgt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0ZXRoZXJlZF9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIzMTQ2Njk0MjM0Mzk4MjAyNjAxIj4i4Lan4LeZ4Lav4La74LeS4Lax4LeKIOC3hOC3nSDgt4Tgt5zgtqfgt4rgt4Pgt4rgtrTgt5zgtqfgt4og4LeD4Laa4LeK4oCN4La74LeT4La64La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGV0aGVyZWRfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI2ODU3MDMxNzYwMTAzMDYyOTgyIj4i4LeD4Laa4LeD4LeKIOC2muC3kuC2u+C3k+C2uOC2pyDgt4Pgt4rgtrTgtrvgt4rgt4Eg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2tfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMjMwMDQ3MDAwNDUwMzM0MzQzOSI+IuC2huC2tOC3g+C3lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5leHRfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTA4MDU1NTEwNDY3Nzk5MjQwOCI+IuC2uOC3k+C2veC2nyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNraXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTI3NTM2MjI5OTQ3MTYzMTgxOSI+IuC2uOC2nyDgt4Tgtrvgt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZV93YXJuaW5nX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjQ4OTA4OTQyNjc0NTQ4NjcyNzYiPiLgtongt4Tgt4Ug4Lai4LaC4Lac4La4IOC2r+C2reC3iuC2rSDgtrfgt4/gt4Dgt5Lgtq3gtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aHJvdHRsZV93YXJuaW5nX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iMzM0MDgyMjIyODU5OTMzNzc0MyI+IuC2ouC2guC2nOC2uCDgtq/gtq3gt4rgtq0g4La34LeP4LeA4LeS4Lat4La6IOC2nOC3kOC2sSDgtq3gt4Ag4Lav4LeQ4Lax4Lac4LeQ4Lax4LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGhyb3R0bGVkX25vdGlmaWNhdGlvbl90aXRsZSIgbXNnaWQ9IjYyNjk1NDE4OTc3Mjk3ODEzMzIiPiLgtqLgtoLgtpzgtrgg4Lav4Lat4LeK4LatIOC3g+C3k+C2uOC3j+C3gCDgtongtprgt4rgtrjgt4Dgt48g4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGhyb3R0bGVkX25vdGlmaWNhdGlvbl9tZXNzYWdlIiBtc2dpZD0iNTQ0MzQ1NzMyMTM1NDkwNzE4MSI+IuC2ouC2guC2nOC2uCDgtq/gtq3gt4rgtq0g4La34LeP4LeA4LeS4Lat4La6IOC2nOC3kOC2sSDgtq3gt4Ag4Lav4LeQ4Lax4Lac4LeQ4Lax4LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fbWF0Y2hlcyIgbXNnaWQ9IjgxMjk0MjE5MDg5MTU4NDA3MzciPiLgtpzgt5Dgtr3gtrTgt5Pgtrjgt4og4Lax4LeQ4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZF9vbl9wYWdlIiBtc2dpZD0iMTk0Njc5OTIzMzgyMjgyMDM4NCI+IuC2tOC3kuC2p+C3lOC3gOC3meC3hOC3kiDgt4Pgt5ngt4Dgt5PgtrgiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9Im1hdGNoZXNfZm91bmQiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTY3MTQ3MDgxMTM2NTc5NDM5Ij4i4Lac4LeQ4LeF4La04LeT4La44LeKIDEg4La64LeSIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NjQxODcyNzk3MDY3NjA5MTc3Ij4iPHhsaWZmOmcgaWQ9IlRPVEFMIj4lZDwveGxpZmY6Zz4g4Laa4LeS4Lax4LeKIDx4bGlmZjpnIGlkPSJJTkRFWCI+JWQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX21vZGVfZG9uZSIgbXNnaWQ9IjcyMTc1ODE2NDA0NjE5MjIyODkiPiLgt4Tgtrvgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9ncmVzc191bm1vdW50aW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjM5MjM4MTA0NDg1MDc2MTI3NDYiPiJVU0Ig4LaG4Lag4La64Lax4La6IOC2nOC3kOC2veC3gOC3k+C2uC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX3VubW91bnRpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxMzI3ODk0OTk4NDA5NTM3MTkwIj4iU0Qg4La04LatIOC2nOC2veC3gOC2uOC3kuC2seC3ii4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb2dyZXNzX2VyYXNpbmciIHByb2R1Y3Q9Im5vc2RjYXJkIiBtc2dpZD0iNDUyMTU3MzMyMTUyNDM0MDA1OCI+IlVTQiDgtobgtqDgtrrgtrHgtrog4La44Laa4La44LeS4Lax4LeKLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvZ3Jlc3NfZXJhc2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjY1OTY5ODg4NzU1MDcwNDMwNDIiPiJTRCDgtrTgtq0g4La44Laa4La44LeS4Lax4LeKLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjYyOTk3Njk1NjM2MjQ3NzY5NDgiPiJVU0Ig4LaG4Lag4La64Lax4La6IOC2uOC3kOC2muC3kuC2uiDgtrHgt5zgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZm9ybWF0X2Vycm9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzMxNTI0ODY5NjY0NDUxMDkzNSI+IlNEIOC2tOC2rSDgtrjgt5Dgtprgt5Pgtrjgtqcg4Lax4Lec4LeE4LeQ4Laa4LeSIOC3gOC3kuC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9iYWRfcmVtb3ZhbCIgbXNnaWQ9Ijc5NjA4NjQwNjEwMTY2MDMyODEiPiLgtpzgt5Dgtr3gt4Dgt5Pgtrjgtqcg4La04LeZ4La7IFNEIOC2tOC2rSDgtongt4Dgtq3gt4rgtprgtrsg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX2NoZWNraW5nIiBwcm9kdWN0PSJub3NkY2FyZCIgbXNnaWQ9IjQxODE4ODcyMDAwOTU2OTY5MyI+IlVTQiDgtobgtqDgtrrgtrHgtrog4La44LeaIOC3gOC2seC3gOC3kuC2pyDgtrTgtrvgt5Pgtprgt4rgt4Lgt48g4Laa4La74La44LeS4Lax4LeKIOC2tOC3gOC2reC3ky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9jaGVja2luZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMzQ3NjI1MDM5MDQ4Mjc0ODEiPiJTRCDgtrTgtq0g4Lav4LeQ4Lax4LeKIOC2tOC2u+C3k+C2muC3iuC3guC3jyDgtprgtrvgtrjgt5LgtrHgt4og4La04LeA4Lat4LeTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JlbW92ZWQiIG1zZ2lkPSI3MDAxNTI2OTA1MDU3OTUyMDk3Ij4iU0Qg4La04LatIOC2ieC3gOC2reC3iiDgtprgtrsg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3NoYXJlZCIgcHJvZHVjdD0ibm9zZGNhcmQiIG1zZ2lkPSI1ODMwODE0MzQ5MjUwODM0MjI1Ij4i4La04La74LeS4Lac4Lar4Laa4La64Laa4LeKIOC3gOC3kuC3g+C3kuC2seC3iiDgtq/gt5DgtrHgt4ogVVNCIOC2huC2oOC2uuC2seC2uiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3NoYXJlZCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MDYxMzA1NjgxMzM1NDA0MzUiPiJTRCDgtrTgtq0g4Lav4LeQ4Lax4LanIOC2tOC2u+C3kuC2nOC2q+C2muC2uuC2muC3kuC2seC3iiDgtrTgt4/gt4Dgt5LgtqDgt4rgtqDgt5Ig4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3Vua25vd25fc3RhdGUiIG1zZ2lkPSI3MjkxOTI3ODIxOTcyOTAzODUiPiLgtrbgt4/gt4Tgt5Lgtrsg4La44LeP4Law4LeK4oCN4La64La6IOC2seC3nOC2r+C2seC3iuC2seC3jyDgtoXgt4Dgt4Pgt4rgtq7gt4/gt4Dgt5og4La04LeA4Lat4LeS4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlIiBtc2dpZD0iMTc3ODY4NjYxODIzMDAxMTk2NCI+IuC2tuC3meC2r+C3j+C2nOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmQiIG1zZ2lkPSI0ODA4MjcwOTAwMzIyOTg1OTYwIj4i4LeD4Lec4La64Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2Vic2VhcmNoIiBtc2dpZD0iNDMzNzE1Nzk3NzQwMDIxMTU4OSI+IuC3gOC3meC2tuC3iiDgt4Pgt5ngt4Dgt5TgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmaW5kX25leHQiIG1zZ2lkPSI1NzQyMTI0NjE4OTQyMTkzOTc4Ij4i4La44LeT4LeF4LafIOC3g+C3nOC2uuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZpbmRfcHJldmlvdXMiIG1zZ2lkPSIyMTk2NzIzNjY5Mzg4MzYwNTA2Ij4i4La04LeZ4La7IOC2keC2miDgt4Pgt5zgtrrgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNOb3RpZlRpY2tlciIgbXNnaWQ9IjU2MjI2ODM5MTI2MTY0OTYxNzIiPiI8eGxpZmY6ZyBpZD0iTkFNRSI+JXM8L3hsaWZmOmc+IOC2nOC3meC2seC3iiDgt4Pgt4rgtq7gt4/gtrHgtrog4LaJ4La94LeK4La94LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZUaXRsZSIgbXNnaWQ9IjU0NDY4NTg3MTcxNTc0MTY4MzkiPiLgt4Pgt4rgtq7gt4/gtrEg4LaJ4La94LeK4La94LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzTm90aWZNZXNzYWdlIiBtc2dpZD0iMTM3NDcxODAyMzIyNDAwMDcwMiI+Ijx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPiAoPHhsaWZmOmcgaWQ9IlNFUlZJQ0UiPiUyJHM8L3hsaWZmOmc+KSDgt4Dgt5Lgt4Pgt5LgtrHgt4og4LaJ4La94LeK4La94LaxIOC2veC2ryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmWWVzIiBtc2dpZD0iMjM0NjU2NjA3Mjg2NzIxMzU2MyI+IuC2lOC3gOC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc1ZlcmlmTm8iIG1zZ2lkPSIxMTQ2NTY0OTM3MzQ2NDU0ODY1Ij4i4Lax4LeQ4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY190b29fbWFueV9kZWxldGVzIiBtc2dpZD0iNTI5NjMyMTg1MDY2Mjc0Njg5MCI+IuC2uOC3kOC2muC3k+C2uOC3miDgt4Pgt5Pgtrjgt4/gt4Ag4LaJ4Laa4LeK4La44LeA4LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfdG9vX21hbnlfZGVsZXRlc19kZXNjIiBtc2dpZD0iNDk2NTUxNjcxMDA4Njk0MjQ1Ij4iPHhsaWZmOmcgaWQ9IlRZUEVfT0ZfU1lOQyI+JTIkczwveGxpZmY6Zz4g4LeD4Laz4LeE4LePIDx4bGlmZjpnIGlkPSJBQ0NPVU5UX05BTUUiPiUzJHM8L3hsaWZmOmc+IOC2nOC3kuC2q+C3lOC2uOC3miDgtrjgtprgtrEg4La94LavIOC2heC2uuC3kuC2reC2uCA8eGxpZmY6ZyBpZD0iTlVNQkVSX09GX0RFTEVURURfSVRFTVMiPiUxJGQ8L3hsaWZmOmc+IOC2muC3iiDgtofgtq0uIOC2lOC2tuC2pyDgtprgt5Tgtrjgtprgt4og4Laa4LeS4La74LeT4La44LanIOC2heC3gOC3geC3iuKAjeC2uuC2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzeW5jX3JlYWxseV9kZWxldGUiIG1zZ2lkPSIyNTcyNjAwMTAzMTIyNTk2MjQzIj4i4LaF4La64LeS4Lat4La4IOC2uOC2muC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN5bmNfdW5kb19kZWxldGVzIiBtc2dpZD0iMjk0MTMxNzM2MDYwMDMzODYwMiI+IuC2uOC3kOC2muC3k+C2uOC3iiDgtoXgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3luY19kb19ub3RoaW5nIiBtc2dpZD0iMzc0Mzc2NDc0MDQzMDgyMTg0NSI+IuC2r+C3kOC2seC2pyDgtprgt5Lgt4Pgt5Lgt4Dgtprgt4og4Lax4Lec4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX2FjY291bnRfbGFiZWwiIG1zZ2lkPSI1NjU1MjAzMDg5NzQ2NDIzOTI3Ij4i4Lac4LeS4Lar4LeU4La44Laa4LeKIOC2reC3neC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9hY2NvdW50X2xhYmVsIiBtc2dpZD0iMjkzNTI2NzM0NDg0OTk5MzU1MyI+IuC2nOC3kuC2q+C3lOC2uOC2muC3iiDgtpHgtprgtq3gt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX2FjY291bnRfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMzYxMTk4Mjg5NDg1MzQzNTg3NCI+IuC2nOC3kuC2q+C3lOC2uOC2muC3iiDgtpHgtprgtq3gt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfYnV0dG9uIiBtc2dpZD0iMjQxMjA3MjI3MjgzMjI4NDMxMyI+IuC3gOC3kOC2qeC3kiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJudW1iZXJfcGlja2VyX2RlY3JlbWVudF9idXR0b24iIG1zZ2lkPSI0NzYwNTA3NzgzODY3NzkwNjciPiLgtoXgtqngt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibnVtYmVyX3BpY2tlcl9pbmNyZW1lbnRfc2Nyb2xsX21vZGUiIG1zZ2lkPSIzMDczMTAxMDY3NDQxNjM4NDI4Ij4iPHhsaWZmOmcgaWQ9IlZBTFVFIj4lczwveGxpZmY6Zz4g4LeD4LeK4La04La74LeK4LeBIOC2muC2uyDgtrvgtrPgt4Dgt48g4LeD4LeS4Lan4LeS4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im51bWJlcl9waWNrZXJfaW5jcmVtZW50X3Njcm9sbF9hY3Rpb24iIG1zZ2lkPSI5MTAxNDczMDQ1ODkxODM1NDkwIj4i4LeA4LeQ4Lap4LeSIOC2muC3kuC2u+C3k+C2uOC2pyDgtongt4Tgtr3gtqcg4LeD4La74LeK4La04Lar4La6IOC2muC2u+C2seC3iuC2sSDgt4Pgt4Qg4LaF4Lap4LeUIOC2muC3kuC2u+C3k+C2uOC2pyDgtrTgt4Tgtr3gtqcg4LeD4La74LeK4La04Lar4La6IOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9pbmNyZW1lbnRfbWludXRlX2J1dHRvbiIgbXNnaWQ9Ijg4NjU4ODUxMTQwMjg2MTQzMjEiPiLgtrjgt5LgtrHgt5Lgtq3gt4rgtq3gt5Tgt4Dgtprgt4og4LeA4LeQ4Lap4LeSIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2RlY3JlbWVudF9taW51dGVfYnV0dG9uIiBtc2dpZD0iNjI0NjgzNDkzNzA4MDY4NDc5MSI+IuC2uOC3kuC2seC3kuC2reC3iuC2reC3lOC3gCDgtoXgtqngt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfaW5jcmVtZW50X2hvdXJfYnV0dG9uIiBtc2dpZD0iMzY1MjA1NjA1NTgxMDIyMzEzOSI+IuC2tOC3kOC2uiDgt4Dgt5Dgtqngt5LgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aW1lX3BpY2tlcl9kZWNyZW1lbnRfaG91cl9idXR0b24iIG1zZ2lkPSIxMzc3NDc5ODYzNDI5MjE0NzkyIj4i4La04LeQ4La6IOC2heC2qeC3lOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGlja2VyX2luY3JlbWVudF9zZXRfcG1fYnV0dG9uIiBtc2dpZD0iNDE0NzU5MDY5NjE1MTIzMDg2MyI+IuC2tC7gt4Au4LeD4Laa4LeD4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGltZV9waWNrZXJfZGVjcmVtZW50X3NldF9hbV9idXR0b24iIG1zZ2lkPSI4MzAyMTQwMzUzNTM5NDg2NzUyIj4i4La04LeZLuC3gC4g4LeD4Laa4LeD4LeKIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2luY3JlbWVudF9tb250aF9idXR0b24iIG1zZ2lkPSI1MzY5OTk4NDc5MDY3OTM0MTEwIj4i4La44LeP4LeD4La6IOC3gOC3kOC2qeC3kiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kZWNyZW1lbnRfbW9udGhfYnV0dG9uIiBtc2dpZD0iMTgzMjY5ODk5NTU0MTcyNjAxOSI+IuC2uOC3j+C3g+C2uuC2muC3iiDgtoXgtqngt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0ZV9waWNrZXJfaW5jcmVtZW50X2RheV9idXR0b24iIG1zZ2lkPSI3MTMwNDY1NDEyMzA4MTczOTAzIj4i4Lav4LeA4LeDIOC3gOC3kOC2qeC3kiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRlX3BpY2tlcl9kZWNyZW1lbnRfZGF5X2J1dHRvbiIgbXNnaWQ9IjQxMzE4ODE1MjE4MTg3NTAwMzEiPiLgtq/gt4Dgt4Mg4LaF4Lap4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2luY3JlbWVudF95ZWFyX2J1dHRvbiIgbXNnaWQ9IjYzMTg2OTczODQzMTA4MDg4OTkiPiLgt4Dgt4Pgtrsg4LeA4LeQ4Lap4LeSIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGVfcGlja2VyX2RlY3JlbWVudF95ZWFyX2J1dHRvbiIgbXNnaWQ9IjQ0ODIwMjE4MTM0OTExMjE3MTciPiLgt4Dgt4Pgtrsg4LaF4Lap4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2FsdCIgbXNnaWQ9IjQ4NTY4Njg4MjAwNDAwNTE5MzkiPiJBbHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9jYW5jZWwiIG1zZ2lkPSIxMjAzOTg0MDE3MjQ1NzgzMjQ0Ij4i4LaF4LeA4La94LaC4Lac4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiLgtrjgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kb25lIiBtc2dpZD0iMTk5MjU3MTExODQ2NjY3OTc3NSI+IuC3hOC2u+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX21vZGVfY2hhbmdlIiBtc2dpZD0iNDU0NzM4Nzc0MTkwNjUzNzUxOSI+IuC2huC2muC3j+C2u+C2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiLgtofgtq3gt5Tgtr3gt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4i4La64LeZ4Lav4LeU4La44Laa4LeKIOC2reC3neC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IuC3g+C2uOC2nyDgtrbgt5ngtq/gt4/gtpzgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiDgt4Pgtrjgtp/gt5LgtrHgt4og4La24LeZ4Lav4LePIOC2nOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiLgt4Pgtrvgt4rgtrTgtqsg4LeE4LeQ4Lap4La94La6LiDgt4Pgt4rgtrTgtrvgt4rgt4Eg4Laa4La7IOC2u+C2s+C3gOC3jyDgt4Pgt5Lgtqfgt5PgtrguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3VwIiBtc2dpZD0iNzE2OTAzMjQ3ODI1OTQ4NTE4MCI+Ijx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiDgt4PgtrPgt4Tgt48g4LaL4Lap4LanIOC3g+C2u+C3iuC2tOC2q+C2uiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2Rvd24iIG1zZ2lkPSI1MDg3NzM5NzI4NjM5MDE0NTk1Ij4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IOC3g+C2s+C3hOC3jyDgtrTgt4Tgtr3gtqcg4LeD4La74LeK4La04Lar4La6IOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fbGVmdCIgbXNnaWQ9IjcyMDc0Nzg3MTk4MDU1NjIxNjUiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g4LeD4Laz4LeE4LePIOC3gOC2uOC2pyDgt4Pgtrvgt4rgtrTgtqvgtrog4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g4LeD4Laz4LeE4LePIOC2r+C2muC3lOC2q+C2pyDgt4Pgtrvgt4rgtrTgtqvgtrog4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF91bmxvY2siIG1zZ2lkPSIyMjI4NTI0OTAwNDM5ODAxNDUzIj4i4LaF4Laf4LeU4La9IOC2heC2u+C3kuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9jYW1lcmEiIG1zZ2lkPSI5NjkwNzE5OTc1NTI0ODY4MTQiPiLgtprgt5Dgtrjgtrvgt4/gt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2lsZW50IiBtc2dpZD0iODkzNTUxMjg3NzQ2NTIyMTgyIj4i4Lax4LeS4LeE4LasIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NvdW5kb24iIG1zZ2lkPSIzMDA1MjQ2NjY3NTUwMDE3MiI+IuC3geC2tuC3iuC2ryDgt4Pgtprgt4rigI3gtrvgt5Pgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiLgt4Pgt5ngt4Dgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrX3RhYmxldCIgbXNnaWQ9IjM4MzMxOTUzMzU2Mjk3OTUwNTUiPiLgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC3g+C3iuC3gOC2uuC3kuC2tOC3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfaGVhZHNldF9yZXF1aXJlZF90b19oZWFyX3Bhc3N3b3JkIiBtc2dpZD0iNzAxMTkyNzM1MjI2NzY2ODY1NyI+IuC2uOC3lOC2u+C2tOC2ryDgtrrgtq3gt5Tgtrvgt5Qg4Laa4LeS4La64LeA4Lax4LeUIOC2h+C3g+C3k+C2uOC2pyDgtongt4Pgt4og4La24Lar4LeU4LeA4Laa4LeKIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfcGFzc3dvcmRfY2hhcmFjdGVyX25vX2hlYWRzZXQiIG1zZ2lkPSIyODU5ODczNzcwODg2MTUzNjc4Ij4i4Lax4LeQ4LeA4Lat4LeU4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUyOTM2MDA0OTY2MDE0OTAyMTYiPiLgtrjgt5Tgtr3gt4og4La04LeS4Lan4LeU4LeA4LanIOC3g+C2guC2oOC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpb25fYmFyX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjIzNzQ5NjU2Mjk1MjE1MjU4OSI+IuC2ieC3hOC2veC2pyDgt4PgtoLgtqDgt4/gtr3gtrHgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aW9uX21lbnVfb3ZlcmZsb3dfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMjk1NjU5MDM3NTA5MDA4NDUzIj4i4Lat4LeA4Lat4LeKIOC3gOC3kuC2muC2veC3iuC2tCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI3OTY1OTg0MzYwOTAzNjkzOTAzIj4iJTEkcywgJTIkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGlvbl9iYXJfaG9tZV9zdWJ0aXRsZV9kZXNjcmlwdGlvbl9mb3JtYXQiIG1zZ2lkPSI2OTg1NTQ2NTMwNDcxNzgwNzI3Ij4iJTEkcywgJTIkcywgJTMkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2VfaW50ZXJuYWwiIG1zZ2lkPSI0ODkxOTE2ODMzNjU3OTI5MjYzIj4i4LaF4La34LeK4oCN4La64Lax4LeK4Lat4La7IOC2huC2oOC2uuC2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0b3JhZ2Vfc2RfY2FyZCIgbXNnaWQ9IjMyODI5NDg4NjEzNzgyODY3NDUiPiJTRCDgtrTgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdG9yYWdlX3VzYiIgbXNnaWQ9IjMwMTc5NTQwNTk1Mzg1MTcyNzgiPiJVU0Ig4LaG4Lag4La64Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXh0cmFjdF9lZGl0X21lbnVfYnV0dG9uIiBtc2dpZD0iODk0MDQ3ODczMDQ5NjYxMDEzNyI+IuC3g+C2guC3g+C3iuC2muC2u+C2q+C2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dhcm5pbmdfdGl0bGUiIG1zZ2lkPSIxOTU1NjM4ODYyMTIyMjMyMzQyIj4i4Lav4Lat4LeK4LatIOC2t+C3j+C3gOC3kuC2reC3jyDgtoXgt4Dgt4Dgt4/gtq/gtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dhcm5pbmdfYm9keSIgbXNnaWQ9IjI4MTQ2NzM1NTE0NzE5Njk5NTQiPiLgtrfgt4/gt4Dgt5Lgtq3gtrog4LeD4LeEIOC3g+C3kOC2muC3g+C3k+C2uOC3iiDgtrbgt5Dgtr3gt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzA5MzMzNDQxOTUxODcwNjY4NiI+IjJHLTNHIOC2r+C2reC3iuC2rSDgtoXgtrbgtr3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzRnX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzYzNjQ4OTQzNjgxOTQ3MDc2MSI+IjRHIOC2r+C2reC3iuC2rSDgtoXgtrbgtr0g4Laa4La74LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfbW9iaWxlX2xpbWl0X3RpdGxlIiBtc2dpZD0iNzg2OTQwMjUxOTM5MTYzMTg4NCI+IuC2ouC2guC2nOC2uCDgtq/gtq3gt4rgtq0g4LaF4La24La9IOC2muC2uyDgtofgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfdGl0bGUiIG1zZ2lkPSI4OTkyMTU0NzM2NDQxMjg0ODY1Ij4iV2ktRmkg4Lav4Lat4LeK4LatIOC2heC2tuC2vSDgtprgtrvgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9saW1pdF9ib2R5IiBtc2dpZD0iMzMxNzk2NDcwNjk3MzYwMTM4NiI+IuC3g+C2tuC2vSDgtprgt5Lgtrvgt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlXzNnX2xpbWl0X3Nub296ZWRfdGl0bGUiIG1zZ2lkPSI3MDI2NzM5MTIxMTM4MDA1MjMxIj4iMkctM0cg4Lav4Lat4LeK4LatIOC3g+C3k+C2uOC3j+C3gCDgtongtprgt4rgtrjgt4DgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV80Z19saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iMTEwNjU2Mjc3OTMxMTIwOTAzOSI+IjRHIOC2r+C2reC3iuC2rSDgt4Pgt5Pgtrjgt4/gt4Ag4LaJ4Laa4LeK4La44LeA4LePIOC2uuC2sSDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX21vYmlsZV9saW1pdF9zbm9vemVkX3RpdGxlIiBtc2dpZD0iMjc5MjQwNTcyMTY1NDEyMTY4Ij4i4Lai4LaC4Lac4La4IOC2r+C2reC3iuC2rSDgt4Pgt5Pgtrjgt4/gt4Ag4LaJ4Laa4LeK4La44LeA4LePIOC2uuC2sSDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX3dpZmlfbGltaXRfc25vb3plZF90aXRsZSIgbXNnaWQ9Ijg3NDM4NTYwMDYzODQ4MjU5NzQiPiJXaS1GaSDgtq/gtq3gt4rgtq0g4LeD4LeT4La44LeP4LeAIOC2ieC2muC3iuC2uOC3gOC3jyDgtrrgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9saW1pdF9zbm9vemVkX2JvZHkiIG1zZ2lkPSI3MDM1NDkwMjc4Mjk4NDQxNzY3Ij4i4LeD4Laz4LeE4Lax4LeKIOC2muC3hSDgt4Pgt5Pgtrjgt4/gt4Dgtqcg4LeA4Lap4LePIDx4bGlmZjpnIGlkPSJTSVpFIj4lczwveGxpZmY6Zz4g4LeA4LeQ4Lap4LeS4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfcmVzdHJpY3RlZF90aXRsZSIgbXNnaWQ9IjU5NjUxNTczNjEwMzYzMjE5MTQiPiLgtrTgt4Pgt5Tgtrbgt5Lgtrjgt4og4Lav4Lat4LeK4LatIOC3g+C3kuC2uOC3jyDgtprgtrvgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9yZXN0cmljdGVkX2JvZHkiIG1zZ2lkPSI2NzQxNTIxMzMwOTk3NDUyOTkwIj4i4LeD4LeT4La44LePIOC2muC3kuC2u+C3k+C2uCDgtongt4Dgtq3gt4og4Laa4LeS4La74LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2VydGlmaWNhdGUiIG1zZ2lkPSI2NTEwMDQwNDg2MDQ5MjM3NjM5Ij4i4LaG4La74Laa4LeK4oCN4LeC4LeS4LatIOC3g+C3hOC2reC3kuC2muC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jZXJ0aWZpY2F0ZV9pc192YWxpZCIgbXNnaWQ9IjY4MjUyNjMyNTA3NzQ1NjkzNzMiPiLgtrjgt5ngtrgg4LeD4LeE4Lat4LeS4Laa4La6IOC3gOC2veC2guC2nOC3lOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfdG8iIG1zZ2lkPSI0NTQyMzk0ODAyNzQ5MjEwMzIiPiLgtr3gtrbgt4/gtq/gt5TgtrHgt4rgtrHgt5o6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tbW9uX25hbWUiIG1zZ2lkPSIyMjMzMjA5Mjk5NDM0MTcyNjQ2Ij4i4La04Lec4Lav4LeUIOC2seC3j+C2uOC2ujoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvcmdfbmFtZSIgbXNnaWQ9IjY5NzM1NjExOTA3NjIwODUyMzYiPiLgt4PgtoLgt4Dgt5LgtrDgt4/gtrHgtro6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ib3JnX3VuaXQiIG1zZ2lkPSI3MjY1OTgxODkwNDIyMDcwMzgzIj4i4LeD4LaC4LeA4LeS4Law4LeP4Lax4LeP4Lat4LeK4La44LaaIOC2kuC2muC2muC2ujoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpc3N1ZWRfYnkiIG1zZ2lkPSIyNjQ3NTg0OTg4MDU3NDgxNTY2Ij4i4La94La24LeP4Lav4LeZ4LaxIOC2veC2r+C3iuC2r+C3mjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ2YWxpZGl0eV9wZXJpb2QiIG1zZ2lkPSI4ODE4ODg2MTM3NTQ1OTgzMTEwIj4i4LeA4La94LaC4Lac4LeU4Lat4LeP4LeA4La6OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imlzc3VlZF9vbiIgbXNnaWQ9IjU4OTUwMTc0MDQzNjEzOTcyMzIiPiLgtrHgt5Lgtprgt5Tgtq3gt4og4Laa4La74LaxIOC2veC2r+C3iuC2r+C3mjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJleHBpcmVzX29uIiBtc2dpZD0iMzY3NjI0Mjk0OTkxNTk1OTgyMSI+IuC2muC2veC3iiDgtongtprgt5Tgtq3gt4og4LeA4Lax4LeK4Lax4LeaOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlcmlhbF9udW1iZXIiIG1zZ2lkPSI3NTg4MTQwNjc2NjA4NjI0OTMiPiLgtoXgtrHgt5Tgtprgt4rigI3gtrvgtrjgt4/gtoLgtprgtro6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmluZ2VycHJpbnRzIiBtc2dpZD0iNDUxNjAxOTYxOTg1MDc2MzA0OSI+IuC2h+C2n+C3kuC2veC3kiDgt4Pgtr3gtprgt5Tgtqvgt5Q6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhMjU2X2ZpbmdlcnByaW50IiBtc2dpZD0iNDM5MTI3MTI4NjQ3NzI3OTI2MyI+IlNIQS0yNTYg4LaH4Laf4LeS4La94LeS4LeD4La94Laa4LeU4LarOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYTFfZmluZ2VycHJpbnQiIG1zZ2lkPSI3OTMwMzMwMjM1MjY5NDA0NTgxIj4iU0hBLTEg4LaH4Laf4LeS4La94LeSIOC3g+C2veC2muC3lOC2qzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eV9jaG9vc2VyX3ZpZXdfc2VlX2FsbCIgbXNnaWQ9IjQyOTI1NjkzODM5NzY2MzYyMDAiPiLgt4Pgt5Lgtrrgtr3gt4rgtr0g4La24La94Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHlfY2hvb3Nlcl92aWV3X2RpYWxvZ190aXRsZV9kZWZhdWx0IiBtc2dpZD0iNDcxMDAxMzg2NDk3NDA0MDYxNSI+IuC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C2muC2uCDgtq3gt53gtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV9hY3Rpb25fcHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjUyNDc2ODQ0MzU5NzkxNDkyMTYiPiLgt4Pgtrjgtp8g4La24LeZ4Lav4LeP4Lac4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9kZXZpY2VfbG9ja2VkIiBtc2dpZD0iMzA5MjcwMzQ0ODY5MDY2OTc2OCI+IuC2i+C2tOC3j+C2guC2nOC2uuC2pyDgtoXgtpzgt5Tgt4Xgt5Qg4LeA4LeQ4Lan4LeSIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsaXN0X2RlbGltZXRlciIgbXNnaWQ9IjM5NzUxMTc1NzIxODU0OTQxNTIiPiIsICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbmRpbmciIG1zZ2lkPSIzMjQ1NjUzNjgxMDA4MjE4MDMwIj4i4La64LeA4La44LeS4Lax4LeKLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGF1bmNoQnJvd3NlckRlZmF1bHQiIG1zZ2lkPSIyMDU3OTUxOTQ3Mjk3NjE0NzI1Ij4i4La24LeK4oCN4La74LeA4LeU4LeD4La74La6IOC2r+C3kuC2uuC2reC3iiDgtprgtrvgtrHgt4rgtrHgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iU2V0dXBDYWxsRGVmYXVsdCIgbXNnaWQ9IjU4MzQ5NDg0NjkyNTM3NTg1NzUiPiLgtofgtrjgtq3gt5Tgtrgg4La04LeS4LeF4LeS4Lac4Lax4LeK4Lax4LeA4LeP4LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X3Jlc29sdmVyX3VzZV9hbHdheXMiIG1zZ2lkPSI4MDE3NzcwNzQ3ODAxNDk0OTMzIj4i4LeD4LeQ4La4IOC3gOC3kuC2p+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5X3Jlc29sdmVyX3VzZV9vbmNlIiBtc2dpZD0iMjQwNDY0NDc5NzE0OTE3Mzc1OCI+IuC2keC2muC3iiDgt4Dgt4/gtrvgtrrgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjQ2MTcwNTM4OTgxNjcxMjc0NzEiPiLgtqfgt5Dgtrbgt4rgtr3gtqfgt4rgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWZhdWx0X2F1ZGlvX3JvdXRlX25hbWUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MjM5MjkxMjczNDIwMTQwMTIzIj4i4Lav4LeU4La74Laa4Lau4Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9hdWRpb19yb3V0ZV9uYW1lX2hlYWRwaG9uZXMiIG1zZ2lkPSI4MTE5OTcxODQzODAzNDM5MTEwIj4i4LaJ4LeD4LeKIOC2tuC2q+C3lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfbmFtZV9kb2NrX3NwZWFrZXJzIiBtc2dpZD0iNjI0MDYwMjk4MjI3NjU5MTg2NCI+IuC2seC3j+C2r+C2miDgtqngt5zgtprgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVmYXVsdF9tZWRpYV9yb3V0ZV9uYW1lX2hkbWkiIG1zZ2lkPSIyNDUwOTcwMzk5MDIzNDc4MDU1Ij4iSERNSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlZmF1bHRfYXVkaW9fcm91dGVfY2F0ZWdvcnlfbmFtZSIgbXNnaWQ9IjM3MjI4MTExNzQwMDM4ODY5NDYiPiLgtrTgtq/gt4rgtrDgtq3gt5LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfYTJkcF9hdWRpb19yb3V0ZV9uYW1lIiBtc2dpZD0iODU3NTYyNDAzMDQwNjc3MTAxNSI+IuC2tuC3iuC2veC3luC2p+C3luC2reC3iiDgt4Hgt4rigI3gtrvgt4Dgt4rigI3gtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aXJlbGVzc19kaXNwbGF5X3JvdXRlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iOTA3MDM0NjQyNTAyMzk3OTY1MSI+IuC2u+C3kOC3hOC3kOC2seC3iiDgtrvgt4Tgt5Lgtq0g4Lav4La74LeK4LeB4Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfY2hvb3Nlcl9ncm91cGluZ19kb25lIiBtc2dpZD0iNzk2NjQzODMwNzcyMzMxNzE2OSI+IuC3hOC2u+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX2J1dHRvbl9jb250ZW50X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTc1ODU1MzU2NzA2NTE0NTI3NiI+IuC2uOC3j+C2sOC3iuKAjeC2uiDgtrTgt4rigI3gtrvgtq3gt5Lgtq/gt4/gtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfc2Nhbm5pbmciIG1zZ2lkPSI3Mjc5OTA4NzYxNzU4MjkzNzgzIj4i4La04La74LeS4La94Led4Laa4Lax4La6IOC2muC2u+C2uOC3kuC2seC3iuKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhX3JvdXRlX3N0YXR1c19jb25uZWN0aW5nIiBtc2dpZD0iNjQyMjU3MTcxNjAwNzgyNTQ0MCI+IuC3g+C2uOC3iuC2tuC2seC3iuC2sCDgt4Dgt5ngtrjgt5LgtrHgt4rigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfYXZhaWxhYmxlIiBtc2dpZD0iNjk4MzI1ODA2NzE5NDY0OTM5MSI+IuC2veC2tuC3j+C2nOC2rSDgt4Tgt5DgtpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYV9yb3V0ZV9zdGF0dXNfbm90X2F2YWlsYWJsZSIgbXNnaWQ9IjY3Mzk4OTk5NjI2ODE4ODY0MDEiPiLgtr3gtrbgt4/gtpzgtq0g4Lax4Lec4LeE4LeQ4LaaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFfcm91dGVfc3RhdHVzX2luX3VzZSIgbXNnaWQ9IjQ1MzM3ODYwMzEwOTAxOTgwNjMiPiLgtrfgt4/gt4Dgt5Lgtq3gtrrgt5og4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX2J1aWx0X2luX2Rpc3BsYXlfbmFtZSIgbXNnaWQ9IjI1ODMxMzQyOTQyOTI1NjM5NDEiPiLgtq3gt5Lgt4Xgt5Dgtr3gt5Ig4Lat4LeS4La74La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX2hkbWlfZGlzcGxheV9uYW1lIiBtc2dpZD0iMTU1NTI2NDU1OTIyNzQ3MDEwOSI+IkhETUkg4Lat4LeS4La74La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzcGxheV9tYW5hZ2VyX292ZXJsYXlfZGlzcGxheV9uYW1lIiBtc2dpZD0iNTE0MjM2NTk4MjI3MTYyMDcxNiI+IuC2i+C2qeC3kOC2reC3kuC2u+C3kuC2uiAjPHhsaWZmOmcgaWQ9IklEIj4lMSRkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9vdmVybGF5X2Rpc3BsYXlfdGl0bGUiIG1zZ2lkPSI2NTIxMjQ1MTc2NzIyNTcxNzIiPiI8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz46IDx4bGlmZjpnIGlkPSJXSURUSCI+JTIkZDwveGxpZmY6Zz54PHhsaWZmOmcgaWQ9IkhFSUdIVCI+JTMkZDwveGxpZmY6Zz4sIDx4bGlmZjpnIGlkPSJEUEkiPiU0JGQ8L3hsaWZmOmc+IGRwaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc3BsYXlfbWFuYWdlcl9vdmVybGF5X2Rpc3BsYXlfc2VjdXJlX3N1ZmZpeCIgbXNnaWQ9IjYwMjIxMTk3MDI2Mjg1NzIwODAiPiIsIOC2huC2u+C2muC3iuKAjeC3guC3kuC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9IndpZmlfZGlzcGxheV9ub3RpZmljYXRpb25fdGl0bGUiIG1zZ2lkPSIyMjIzMDUwNjQ5MjQwMzI2NTU3Ij4i4Lax4Lec4La74LeQ4LeE4LeQ4Lax4LeKIOC3g+C2guC2r+C2u+C3iuC3geC2muC2uiDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgt5Lgtq3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX21lc3NhZ2UiIG1zZ2lkPSI0NDk4ODAyMDEyNDY0MTcwNjg1Ij4i4LeA4LeZ4Lax4Lat4LeKIOC2i+C2tOC3j+C2guC2nOC2uuC2muC3iiDgtrjgtq0g4La44LeZ4La4IOC2reC3kuC2u+C2uiDgtrTgt5ngtrHgt4rgt4Dgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3aWZpX2Rpc3BsYXlfbm90aWZpY2F0aW9uX2Rpc2Nvbm5lY3QiIG1zZ2lkPSI2MTgzNzU0NDYzNTYxMTUzMzcyIj4i4LeA4LeS4LeD4Lax4LeK4Law4LeSIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VtZXJnZW5jeV9jYWxsX2xhYmVsIiBtc2dpZD0iNjg0OTQ2MTkyNTIzODMwNTMxIj4i4LeE4Lav4LeS4LeD4LeSIOC2h+C2uOC2reC3lOC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iODg1MjAyMTQ2Nzg2ODIyMDYwOCI+IuC2u+C2p+C3j+C3gCDgtoXgtrjgtq3gtprgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXR0ZXJuIiBtc2dpZD0iMTg1MDgwNjA3MDgwMTM1ODgzMCI+IuC3gOC3kOC2u+C2r+C3kiDgtrvgtqfgt4/gt4Dgtprgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiLgt4Dgt5Dgtrvgtq/gt5Ig4La44LeU4La74La04Lav4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGluIiBtc2dpZD0iMTEzMTMwNjUxMDgzMzU2MzgwMSI+IlBJTiDgtpHgtpog4LeA4LeQ4La74Lav4LeS4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiLgtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JTEkZDwveGxpZmY6Zz4g4LanIOC2tOC3g+C3lOC3gCDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5ODk3ODYxMTY4MzA3NTg2OCI+IuC2lOC2tuC2nOC3miDgtrvgtqfgt4/gt4Ag4LaF4Laz4LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4iU0lNIFBJTiDgtofgtq3gt5Tgtr3gt5Qg4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiJQSU4g4LaR4LaaIOC2h+C2reC3lOC3heC3lCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1NzUzNjQ2NTU2MTg2OTM2ODE5Ij4i4La44LeU4La74La04Lav4La6IOC2h+C2reC3lOC3heC3lCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcHVrX2hpbnQiIG1zZ2lkPSI0NTMyMjcxNDM4NjE3MzU1MzciPiLgtq/gt5DgtrHgt4ogU0lNIOC2keC2miDgtoXgtrbgtr0g4Laa4La7IOC2h+C2rS4g4LaJ4Lav4LeS4La74LeS4La64LanIOC2uuC3j+C2uOC2pyBQVUsg4Laa4Lea4Lat4La6IOC2uuC3nOC2r+C2seC3iuC2sS4g4LeA4LeS4LeD4LeK4Lat4La7IOC3g+C2s+C3hOC3jyDgt4Dgt4/gt4Tgtprgtrrgt48g4LaF4La44Lat4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiLgtoXgtrTgt5rgtprgt4rgt4Lgt5Lgtq0gUElOIOC2muC3muC2reC2uiDgtofgtq3gt5Tgt4Xgtq3gt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IuC2heC2tOC3muC2muC3iuC3guC3kuC2rSBQSU4g4Laa4Lea4Lat4La6IOC3g+C3iuC2ruC3kuC2uyDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlNJTSDgtrTgtq0g4LaF4Lac4LeU4LeF4LeUIOC2heC2u+C3kuC2uOC3kuC2seC3ii4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IuC3gOC3kOC2u+C2r+C3kiBQSU4g4Laa4Lea4Lat4La64Laa4LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IuC2heC2guC2miA0IOC3g+C3kuC2pyA4IOC2heC2reC2uyDgt4DgtrEgUElOIOC2keC2muC2muC3iiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyDgtprgt5rgtq3gtrog4LeD4LaC4Lab4LeK4oCN4La64LePIDgg4Laa4LeKIOC3hOC3nSDgt4Dgt5Dgtqngt5Ig4LeA4LeS4La6IOC2uuC3lOC2reC3lOC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLgtrHgt5Lgt4Dgt5Dgtrvgtq/gt5IgUFVLIOC2muC3muC2reC2uiDgtrHgt5Dgt4Dgtq0g4LaH4Lat4LeU4La94Lat4LeKIOC2muC2u+C2seC3iuC2sS4g4Lax4LeQ4LeA4LatIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4/gt4Qg4Laa4LeS4La74LeT4La44LeZ4Lax4LeKIFNJTSDgtpHgtpog4LeD4LeK4Lau4LeS4La74LeA4La4IOC2heC2tuC2vSDgtprgtrvgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9jb25maXJtX3Bpbl9oaW50IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzAwMzQ2OTI2MTQ2NDU5MzUxNiI+IlBJTiDgtprgt5rgtq0g4Lac4LeQ4La94La04LeTIOC2seC3kOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+IuC2u+C2p+C3jyDgtovgtq3gt4rgt4Pgt4/gt4Qg4Laa4LeS4La74LeT4La44LeKIOC3gOC3kOC2qeC3kuC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanLCDgtpTgtrbgtpzgt5ogR29vZ2xlIOC2nOC3kuC2q+C3lOC2uCDgt4Pgtrjgtpwg4La04LeU4La74Lax4La6IOC3gOC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+IuC2tOC2u+C3kuC3geC3k+C2veC2miDgtrHgt4/gtrjgtrogKOC2ii3gtq3gt5DgtrTgt5Hgtr0pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjkwNTcyODkxMDM4MjcyOTg1NDkiPiLgtrjgt5TgtrvgtrTgtq/gtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNTM1NTkwNDU4MjY3NDA1NDcwMiI+IuC2tOC3lOC2u+C2seC2uiDgt4DgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+IuC3gOC2veC2guC2nOC3lCDgtrHgt5zgt4DgtrEg4La04La74LeS4LeB4LeT4La94LaaIOC2seC3j+C2uOC2uuC2muC3iiDgt4Tgt50g4La44LeU4La74La04Lav4La64Laa4LeKLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2FjY291bnRfcmVjb3ZlcnlfaGludCIgbXNnaWQ9IjU2OTA3MDkxMzI4NDE3NTI5NzQiPiLgtpTgtrbgtpzgt5og4La04La74LeS4LeB4LeT4La94LaaIOC2seC3j+C2uOC2uiDgt4Tgt50g4La44LeU4La74La04Lav4La6IOC2heC2uOC2reC2muC2rz9cbiAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIg4LeA4LeZ4LatIOC2uuC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjEwNTI2ODUxOTc3MTAyNTIzOTUiPiLgtpzgt5Lgtqvgt5Tgtrgg4La04La74LeT4Laa4LeK4LeC4LePIOC2muC2u+C2uOC3kuC2seC3iuKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i4LaU4La2IFBJTiDgtoXgtoLgtprgtrogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LeA4LeP4La74La64Laa4LeKIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtqfgtrrgt5LgtrTgt4og4Laa4Lec4LanIOC2h+C2rS5cblxuIOC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgtprgt4og4LaH4Lat4LeU4LeF4LatIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4/gt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgt4Dgtq3gt4/gt4Dgtprgt4og4LaU4La24Lac4LeaIOC2uOC3lOC2u+C2tOC2r+C2uiDgtpTgtrYg4LeA4LeQ4La74Lav4LeS4La64LanIOC2p+C2uuC3kuC2tOC3iiDgtprgtrsg4LaH4LatLiBcblxu4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2pyDgtrTgt4Pgt5Tgt4Ag4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+IuC2lOC2tiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgt4Dgt4/gtrvgtrrgtprgt4og4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC3miDgtrvgtqfgt4/gt4Ag4LeA4LeQ4La74Lav4LeS4La64LanIOC2h+C2syDgtofgtq0uIFxuXG7gtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Laa4LeKIOC2h+C2reC3lOC3heC2rSDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeP4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1NzU1NTcyMDA2MjcxMjg5NDkiPiLgtpTgtrYg4Lan4LeQ4La24LeK4La94Lan4La6IOC2heC2nOC3lOC3heC3lCDgt4Tgt5Dgtrvgt5Pgtrjgtqcg4LeA4LeQ4La74Lav4LeS4La64LanIOC2heC3gOC3g+C3iuC2ruC3jyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgtprgt4og4LaL4Lat4LeK4LeD4LeP4LeEIOC2muC2uyDgtofgtq0uIOC2heC3gOC3g+C3iuC2ruC3jyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgtprgt4og4LaF4LeD4LeP4La74LeK4Lau4Laa4LeAIOC2i+C2reC3iuC3g+C3hCDgtprgt5Lgtrvgt5Pgtrjgtprgt5LgtrHgt4og4La04LeD4LeU4LeALCDgtprgtrvgt4rgtrjgt4/gtrHgt4rgtq0g4LeB4LeP4La94LePIOC2uOC3lOC2veC3iiDgtq3gtq3gt4rgt4Dgtrrgtqcg4Lax4LeQ4LeA4LatIOC2tOC2reC3iiDgt4DgtrEg4LaF4Lat4La7IOC3g+C3kuC2uuC2veC3lCDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4Lav4Lat4LeK4LatIOC2seC3kOC2reC3kiDgt4Dgt5ngtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDA1MTAxNTk0MzAzODE5OTkxMCI+IuC2lOC2tiDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pyDgt4Dgt4/gtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Laa4Lav4LeTIOC3gOC3kOC2u+C2r+C3kyDgtrTgt4rigI3gtrvgtrrgtq3gt4rgtrHgtrrgtrHgt4og4Lac4LeZ4LaxIOC2reC3kuC2tuC3mi4g4Lat4LeA4Lat4LeKIOC2heC3g+C3j+C2u+C3iuC2ruC2miDgtrTgt4rigI3gtrvgtrrgtq3gt4rgtrEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Laa4LeS4Lax4LeKIOC2tOC3g+C3lOC3gCwg4Lav4LeU4La74Laa4Lau4Lax4La6IOC2muC2u+C3iuC2uOC3j+C2seC3iuC2rSDgt4Hgt4/gtr3gt4/gt4Dgt5og4LeD4LeU4La04LeU4La74LeU4Lav4LeK4Lav4LanIOC2uuC3heC3kiDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4DgtrEg4LaF4Lat4La7IOC3g+C3kuC2uuC2veC3lOC2uCDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4Lav4Lat4LeK4LatIOC2seC3kOC2reC3kiDgt4Dgt5Mg4La64La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDcyOTk2MjY5MTQ4NDgzNjM3Ij4i4Lan4LeQ4La24LeK4La94Lan4La64LeaIOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5Pgtrjgtqcg4LaU4La2IOC3gOC3kOC2u+C2r+C3kiDgtrTgt4rigI3gtrvgtrrgtq3gt4rgtrEgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC3gOC3j+C2u+C2uuC2muC3iiDgtpzgt5ngtrEg4LaH4LatLiDgtq/gt5DgtrHgt4og4Lan4LeQ4La24LeK4La94Lan4La6IOC2muC2u+C3iuC2uOC3j+C2seC3iuC2rSDgt4Hgt4/gtr3gt48g4LeD4LeU4La04LeU4La74LeU4Lav4LeK4LavIOC3gOC3meC2rSDgtrrgt4Xgt5Ig4La04LeS4LeE4LeS4Lan4LeU4LeA4LeT4La4IOC2muC3meC2u+C3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ4MTc2Mjc0NzQ0MTk0NzE1MTgiPiLgtpTgtrYg4Lav4LeU4La74Laa4Lau4Lax4La6IOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5Pgtrjgtqcg4LeA4LeP4La7IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgtprgtq/gt5Mg4LeA4LeQ4La74Lav4LeTIOC2tOC3iuKAjeC2u+C2uuC2seC3iuC2reC2uuC2seC3iiDgtpzgt5ngtrEg4Lat4LeS4La24LeaLiDgtq/gt5DgtrHgt4og4Lav4LeU4La74Laa4Lau4Lax4La6IOC2muC2u+C3iuC2uOC3j+C2seC3iuC2reC3geC3j+C2veC3jyDgt4Pgt5TgtrTgt5Tgtrvgt5Tgtq/gt4rgtq/gtqcg4La04LeS4LeE4LeS4Lan4LeU4LeA4Lax4LeUIOC2veC2tuC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4i4LaU4La2IOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5Lgtrjgt5og4La74Lan4LeP4LeAIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC3gOC2reC3j+C3gOC2muC3iiDgt4Dgt5Dgtrvgtq/gt5Lgtrrgtqcg4LaH4LazIOC2h+C2rS4g4Lat4LeA4Lat4LeKIOC2heC3g+C3j+C2u+C3iuC2ruC2miDgtovgtq3gt4rgt4Pgt4/gt4QgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Laa4LeS4Lax4LeKIOC2tOC3g+C3lOC3gCwg4LaKLeC2reC3kOC2tOC3kOC2veC3iiDgtpzgt5Lgtqvgt5Tgtrgg4La34LeP4LeA4LeS4Lat4LePIOC2muC2u+C2uOC3kuC2seC3iiDgtpTgtrbgtpzgt5og4Lan4LeQ4La24LeK4La94Lan4La64LeaIOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5Pgtrjgtqcg4LaU4La24LanIOC2tOC3gOC3g+C2seC3lCDgtofgtq0uXG5cbiDgtrHgt5Dgt4Dgtq0g4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOC2muC3kuC2seC3iiDgtovgtq3gt4rgt4Pgt4/gt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i4LaU4La2IOC3gOC3kOC2u+C2r+C3kuC2uuC2pyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgt4Dgtq3gt4/gt4Dgtprgt4og4LaU4La24Lac4LeaIOC2heC2nOC3lOC3heC3lCDgt4Tgt5Dgtrvgt5Pgtrjgt5og4La74Lan4LeP4LeAIOC2h+C2syDgtofgtq0uIOC2heC3g+C3j+C2u+C3iuC2ruC2miDgtovgtq3gt4rgt4Pgt4Qg4Laa4LeS4La74LeT4La44LeKIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2seC3iiDgtrTgt4Pgt5Tgt4AsIOC2lOC2tuC2nOC3miDgtoot4Lat4LeQ4La04LeQ4La94LeKIOC2veC3kuC2tOC3kuC2seC2uiDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4LaU4La24Lac4LeaIOC2r+C3lOC2u+C2muC2ruC2seC2uiDgtoXgtpzgt5Tgt4Xgt5Qg4LeE4LeQ4La74LeT4La44LanIOC2lOC2tuC2nOC3meC2seC3iiDgtoXgt4Pgtrrgt5IuXG5cbiDgtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Lax4LeKIOC2tOC3g+C3lOC3gCDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLgtongt4Dgtq3gt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2FmZV9tZWRpYV92b2x1bWVfd2FybmluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjczMjQxNjE5Mzk0NzU0NzgwNjYiPiLgtrHgt5Lgtrvgt4rgtq/gt5rgt4Hgt5Lgtq0g4La44Lan4LeK4Lan4La44LeZ4Lax4LeKIOC2ieC3hOC3heC2pyDgt4Hgtrbgt4rgtq/gtrog4LeA4LeQ4Lap4LeSIOC2muC2u+C2seC3gOC2rz9cbuC3gOC3kOC2qeC3kiDgtprgt4/gtr3gtrrgtprgt4og4LaJ4LeE4LeFIOC3geC2tuC3iuC2r+C2uuC2muC3iiDgt4Hgt4rigI3gtrvgt4DgtrHgtrog4Laa4LeS4La74LeT4La44LeZ4Lax4LeKIOC2lOC2tuC2nOC3miDgt4Hgt4rigI3gtrvgt4DgtrHgtrrgtqcg4LeE4LeP4Lax4LeSIOC3gOC3kuC2uiDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29udGludWVfdG9fZW5hYmxlX2FjY2Vzc2liaWxpdHkiIG1zZ2lkPSIxNjI2NDI3MzcyMzE2MDcwMjU4Ij4i4La04LeK4oCN4La74LeA4Lea4LeB4LeK4oCN4La64Lat4LeP4LeA4La6IOC3g+C2tuC2vSDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaH4Laf4LeS4La94LeSIOC2r+C3meC2muC2muC3iiDgtrTgt4Tgt4Xgtqcg4La74Laz4LeA4LePIOC3g+C3kuC2p+C3kuC2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2VuYWJsZWQiIG1zZ2lkPSIxMzgxOTcyMDQ4NTY0NTQ3Njg1Ij4i4La04oCN4LeK4oCN4La74LeA4Lea4LeB4LeK4oCN4La64Lat4LeP4LeAIOC3g+C2tuC2vSDgtprgtrvgtrEg4La94Lav4LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZV9hY2Nlc3NpYmlsaXR5X2NhbmNlbGVkIiBtc2dpZD0iMzgzMzkyMzI1Nzk2NjYzNTY3MyI+IuC2tOKAjeC3iuKAjeC2u+C3gOC3muC3geC3iuKAjeC2uuC2reC3j+C3gCDgtoXgt4Dgtr3gtoLgtpzgt5Qg4Laa4La7IOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VyX3N3aXRjaGVkIiBtc2dpZD0iMzc2ODAwNjc4MzE2Njk4NDQxMCI+IuC2r+C3kOC2seC2pyDgt4Pgt5Lgtqfgt5LgtrEg4La04La74LeS4LeB4LeT4La94Laa4La64LePIDx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJvd25lcl9uYW1lIiBtc2dpZD0iMjcxNjc1NTQ2MDM3NjAyODE1NCI+IuC3hOC3kuC2uOC3kuC2muC2u+C3lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVycm9yX21lc3NhZ2VfdGl0bGUiIG1zZ2lkPSI0NTEwMzczMDgzMDgyNTAwMTk1Ij4i4Lav4Led4LeC4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX25vX3Jlc3RyaWN0ZWRfYWNjb3VudHMiIG1zZ2lkPSI1NzM5NDYzMjQ5NjczNzI3NzM2Ij4i4LeD4LeT4La44LePIOC3g+C3hOC3kuC2rSDgtrTgt5Dgtq3gt5Lgtprgtqkg4LeD4Laz4LeE4LePIOC3gOC2sSDgtpzgt5Lgtqvgt5Tgtrjgt4og4LeA4LeZ4LatIOC2uOC3meC2uCDgtrrgt5ngtq/gt5Tgtrgg4LeD4LeE4La6IOC2seC3nOC2r+C2muC3iuC3gOC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9ub3RfZm91bmQiIG1zZ2lkPSIzNDI5MTQxODUzNDk4OTI3Mzc5Ij4i4La44LeZ4La4IOC2muC3iuKAjeC2u+C3kuC2uuC3j+C3gCDgt4Tgt4Pgt5Tgtrvgt5Tgt4Dgt5Pgtrjgtqcg4La64LeZ4Lav4LeU4La44Laa4LeKIOC3g+C3nOC2uuC3j+C2nOC2reC3iuC2reC3miDgtrHgt5Dgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXZva2UiIG1zZ2lkPSI1NDA0NDc5MTg1MjI4MjcxNTg2Ij4i4LaF4LeE4Led4LeD4LeSIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTAiIG1zZ2lkPSI3ODc1NDI3NDg5NDIwODIxNzkzIj4iSVNPIEEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMSIgbXNnaWQ9IjM3NjA3MzQ0OTkwNTA4NzUzNTYiPiJJU08gQTEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2EyIiBtc2dpZD0iNTk3MzI2NjM3ODAyMDE0NDM4MiI+IklTTyBBMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTMiIG1zZ2lkPSIxMzczNDA3MTA1Njg3MzAwODg0Ij4iSVNPIEEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNCIgbXNnaWQ9IjY2ODk3NzI4MDc5ODI1OTcyNTQiPiJJU08gQTQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E1IiBtc2dpZD0iNTM1MzU0OTY1MjAxNTc0MTA0MCI+IklTTyBBNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTYiIG1zZ2lkPSI4NTg1MDM4MDQ4Njc0OTExOTA3Ij4iSVNPIEE2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hNyIgbXNnaWQ9IjY2NDE4MzY3MTY5NjM4MzkxMTkiPiJJU08gQTciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2E4IiBtc2dpZD0iNzU3MTEzOTQzNzQ2NTY5MzM1NSI+IklTTyBBOCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYTkiIG1zZ2lkPSIxMzc4NDU1ODkxOTU3MTE1MDc5Ij4iSVNPIEE5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19hMTAiIG1zZ2lkPSIyNDgwNzQ3NDU3NDI5NDc1MzQ0Ij4iSVNPIEExMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjAiIG1zZ2lkPSIzOTY1OTM1MDk3NjYxMTA4MDM5Ij4iSVNPIEIwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMSIgbXNnaWQ9IjI1MDU3NTMyODUwMTAxMTU0MzciPiJJU08gQjEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2IyIiBtc2dpZD0iODc2Mzg3NDcwOTg1OTQ1ODQ1MyI+IklTTyBCMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjMiIG1zZ2lkPSI0MjEwNTA2Njg4MTkxNzY0MDc2Ij4iSVNPIEIzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNCIgbXNnaWQ9IjU3NDk0MDQxNjU4ODg1MjYwMzQiPiJJU08gQjQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I1IiBtc2dpZD0iNzY0MDYyNzQxNDYyMTkwNDczMyI+IklTTyBCNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjYiIG1zZ2lkPSI3MzQyOTg4ODY0NzEyNzQ4NTQ0Ij4iSVNPIEI2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iNyIgbXNnaWQ9IjUwNjk4NDQwNjUyMzUzODI0MjkiPiJJU08gQjciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2I4IiBtc2dpZD0iNzMxNjgxODkyMjI3ODc3OTc3NCI+IklTTyBCOCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYjkiIG1zZ2lkPSI1NDE0NzI3MDk0MDI2NTMyMzQxIj4iSVNPIEI5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19iMTAiIG1zZ2lkPSI1MjUxMjUzNzMxODMyMDQ4MTg1Ij4iSVNPIEIxMCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzAiIG1zZ2lkPSI0MDAzMTM4MzQyNjcxOTY0MjE3Ij4iSVNPIEMwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jMSIgbXNnaWQ9IjE5MzUxODgwNjMzOTM1NTMwMDgiPiJJU08gQzEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MyIiBtc2dpZD0iMzE5NzMwNzk2OTcxMjA2OTkwNCI+IklTTyBDMiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzMiIG1zZ2lkPSI0MzM1ODI2MDg3MzIxOTEzNTA4Ij4iSVNPIEMzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jNCIgbXNnaWQ9IjM3NDU2Mzk1OTgyODEwMTUwMDUiPiJJU08gQzQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M1IiBtc2dpZD0iODI2OTQ1Nzc2NTgyMjc5MTAxMyI+IklTTyBDNSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzYiIG1zZ2lkPSI1NjY2NjYxMDUyNjAzNDY5MzAiPiJJU08gQzYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2M3IiBtc2dpZD0iODY3ODQxMzE4MDc4MjYwODQ5OCI+IklTTyBDNyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9pc29fYzgiIG1zZ2lkPSI4MzkyMzc2MjA2NjI3MDQxNzMwIj4iSVNPIEM4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX2lzb19jOSIgbXNnaWQ9IjkxOTE2MTMzNzIzMjQ4NDU0MDUiPiJJU08gQzkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfaXNvX2MxMCIgbXNnaWQ9IjczMjc3MDk2OTkxODQ5MjA4MjIiPiJJU08gQzEwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2xldHRlciIgbXNnaWQ9IjQxOTE4MDU2MTU4Mjk0NzI5NTMiPiLgtoXgtprgt5Tgtrvgt5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfZ3Zybm10X2xldHRlciIgbXNnaWQ9Ijc4NTMzODIxOTI2NDk0MDU1MDciPiLgtrvgtqLgtrrgt5og4La94LeS4La04LeS4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVkaWFTaXplX25hX2xlZ2FsIiBtc2dpZD0iNjY5Nzk4Mjk4ODI4MzgyMzE1MCI+IuC2seC3k+C2reC3iuKAjeC2uuC2seC3lOC2muC3luC2vSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9qdW5pb3JfbGVnYWwiIG1zZ2lkPSIzNzI3NzQzOTY5OTAyNzU4OTQ4Ij4i4La04LeK4oCN4La74LeP4Lau4La44LeS4LaaIOC2seC3k+C2reC3kuC2uOC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lZGlhU2l6ZV9uYV9sZWRnZXIiIG1zZ2lkPSIyODE4NzE0NjQ4OTY2MDEyMzYiPiLgtr3gt5ngtqLgtrvgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZWRpYVNpemVfbmFfdGFibG9pZCIgbXNnaWQ9IjU3NzU5NjY0MTYzMzM1NzgxMjciPiLgtprgt5Tgtqngt48g4La04LeU4LeA4Lat4LeK4La04LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id3JpdGVfZmFpbF9yZWFzb25fY2FuY2VsbGVkIiBtc2dpZD0iNzA5MTI1ODM3ODEyMTYyNzYyNCI+IuC2heC3gOC2veC2guC2nOC3lCDgtprgtrvgtrEg4La94Lav4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id3JpdGVfZmFpbF9yZWFzb25fY2Fubm90X3dyaXRlIiBtc2dpZD0iODEzMjUwNTQxNzkzNTMzNzcyNCI+IuC2heC2seC3iuC2reC2u+C3iuC2nOC2reC2uiDgtr3gt5Lgt4Dgt5Pgtrjgt5rgtq/gt5Mg4Lav4Led4LeC4La64Laa4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2VudGVyX3BpbiIgbXNnaWQ9IjMzOTU5NTM0MjEzNjg0NzYxMDMiPiJQSU4g4LaR4LaaIOC2h+C2reC3lOC3heC3lCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZW50ZXJfb2xkX3BpbiIgbXNnaWQ9IjE0NjIyMDYyMjU1MTI5MTA3NTciPiLgt4Dgtq3gt4rgtrjgtrHgt4ogUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2VudGVyX25ld19waW4iIG1zZ2lkPSI1OTU5NjA2NjkxNjE5OTU5MTg0Ij4i4Lax4LeAIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl9jb25maXJtX3BpbiIgbXNnaWQ9Ijg1MDE1MjM4Mjk2MzMxNDYyMzkiPiLgtrHgt4AgUElOIOC2reC3hOC3gOC3lOC2u+C3lCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fY3JlYXRlX3BpbiIgbXNnaWQ9IjgwMTc2MDAwMDAyNjM0NTAzMzciPiLgt4Pgt5Lgtrjgt48g4LeA4LeQ4Lap4LeS4Lav4LeS4La64LeU4Lar4LeUIOC2muC3kuC2u+C3k+C2uOC2pyBQSU4g4LeD4LeP4Lav4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX2Vycm9yX2RvZXNudF9tYXRjaCIgbXNnaWQ9IjIyMjQyMTQxOTA5MDY5OTQ1NDgiPiJQSU4g4Lax4Lec4Lac4LeQ4LeF4La04LeZ4La64LeSLiDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fZXJyb3JfdG9vX3Nob3J0IiBtc2dpZD0iODE3Mzk4Mjc1NjI2NTc3Nzc5MiI+IlBJTiDgtprgt5Tgtqngt48g4LeA4LeQ4Lap4LeS4La6LiDgtongtr3gtprgt4rgtprgtrjgt4ogNCDgt4Dgtq3gt4og4LeA4LeS4La6IOC2uuC3lOC2reC3lOC2ui4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InJlc3RyX3Bpbl9jb3VudGRvd24iPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0ODM1NjM5OTY5NTAzNzI5ODc0Ij4i4LeA4LeQ4La74Lav4LeSIFBJTi4g4Lat4Lat4LeK4La04La74La64Laa4LeS4Lax4LeKIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4Qg4Laa4La74Lax4LeK4LaxLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODAzMDYwNzM0MzIyMzI4NzY1NCI+IuC3gOC3kOC2u+C2r+C3kiBQSU4uIOC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDgtprgt5LgtrHgt4og4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0idHJhbnNpZW50X25hdmlnYXRpb25fY29uZmlybWF0aW9uIiBtc2dpZD0iNDkwNzg0NDA0MzYxMTEyMzQyNiI+IuC2reC3k+C2u+C3lOC3gCDgtoXgtrHgt4/gt4Dgtrvgtqvgtrrgtqcg4Lat4LeS4La74La64LeaIOC2muC3meC2veC3gOC2uyDgtoXgtq/gt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0cmFuc2llbnRfbmF2aWdhdGlvbl9jb25maXJtYXRpb25fbG9uZyIgbXNnaWQ9IjgwNjE2ODU5MjA1MDgwODY2OTciPiLgtrTgtq/gt4rgtrDgtq3gt5Ig4Lat4LeT4La74LeU4LeAIOC2heC2seC3j+C3gOC2u+C2q+C2uuC2pyDgtq3gt5Lgtrvgtrrgt5og4Laa4LeZ4La94LeA4La74LeS4Lax4LeKIOC2heC2r+C3kuC2seC3iuC2sSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1zay9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtc2svc3RyaW5ncy54bWwKaW5kZXggY2Q4NjVhYS4uMTJhY2FhZCAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1zay9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLXNrL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJaYWRhanRlIGvDs2QgUFVLLCBrdG9yw70gbcOhIDggYWxlYm8gdmlhYyDEjcOtc2VsLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJLYXJ0YSBTSU0gamUgdXphbWtudXTDoSBwb21vY291IGvDs2R1IFBVSy4gT2RvbWtuaXRlIGp1IHphZGFuw61tIGvDs2R1IFBVSy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJBayBjaGNldGUgb2RibG9rb3ZhxaUga2FydHUgU0lNLCB6YWRhanRlIGvDs2QgUFVLMi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiJOZcO6c3BlxaFuw6ksIHBvdm/EvnRlIHV6YW1rbnV0aWUgU0lNL1JVSU0uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iWm9zdMOhdmEgdsOhbSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gcG9rdXMsIG5lxb4gc2EgdmHFoWEga2FydGEgU0lNIHV6YW1rbmUuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4iUG/EjWV0IHpvc3TDoXZhasO6Y2ljaCBwb2t1c292IHByZWQgdXphbWtudXTDrW0ga2FydHkgU0lNOiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiJQcmljaMOhZHphasO6Y2EgaWRlbnRpZmlrw6FjaWEgdm9sYWrDumNlaG8iPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IlVtb8W+xYh1amUgYXBsaWvDoWNpaSBwb3XFvsOtdmHFpSBmdW5rY2llIG7DrXprZWogw7pyb3ZuZSBhcGxpa8OhY2llIFN1cmZhY2VGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+IsSNw610YW5pZSB2eXJvdm7DoXZhY2VqIHBhbcOkdGUgc27DrW1vayI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJVbW/FvsWIdWplIGFwbGlrw6FjaWkgxI3DrXRhxaUgb2JzYWggdnlyb3Zuw6F2YWNlaiBwYW3DpHRlIHNuw61tb2suIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4icHLDrXN0dXAgayBhcGxpa8OhY2lpIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJVbW/FvsWIdWplIGFwbGlrw6FjaWkgcG91xb7DrXZhxaUgZnVua2NpZSBuw616a2VqIMO6cm92bmUgYXBsaWvDoWNpZSBJbnB1dEZsaW5nZXIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJrb25maWd1cm92YcWlIGRpc3BsZWplIGNleiBzaWXFpSBXaS1GaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IlVtb8W+xYh1amUgYXBsaWvDoWNpaSBrb25maWd1cm92YcWlIGRpc3BsZWplIGEgcHJpcG9qacWlIHNhIGsgbmltIGNleiBzaWV0ZSBXaS1GaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+Im92bMOhZGHFpSBkaXNwbGVqZSBjZXogc2llxaUgV2ktRmkiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+Ilp2b8S+dGUgYXBsaWvDoWNpdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+IkFwbGlrw6FjaXUgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiBuaWUgamUgbW/Fvm7DqSBzcHVzdGnFpSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IlpkaWXEvmHFpSBzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IlpkaWXEvmHFpSBzIGFwbGlrw6FjaW91IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iUG9zdXZuw6kgdGxhxI1pZGxvLiBEb3Rrbml0ZSBzYSBhIHBvZHLFvnRlLiI8L3N0cmluZz4KQEAgLTE2NDksNSArMTY1NywxNiBAQAogICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ3MzA4Njg5MjA3NDI5NTI4MTciPiJTa8O6c3RlIHRvIHphcyBvIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IHMiPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4iU2vDunN0ZSB0byB6bm92YSBuZXNrw7RyIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IlJlxb5pbSBjZWxlaiBvYnJhei4gdWtvbsSNw610ZSBwb3N1bnV0w61tIG5hZG9sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IlJlxb5pbSBjZWxlaiBvYnJhem92a3kgdWtvbsSNw610ZSBwb3N1bnV0w61tIG5hZG9sLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4iSG90b3ZvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4iS3J1aG92w70gcG9zw7p2YcSNIGhvZMOtbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4iS3J1aG92w70gcG9zw7p2YcSNIG1pbsO6dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiJWeWJlcnRlIGhvZGlueSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IlZ5YmVydGUgbWluw7p0eSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4iVGFidcS+a2EgZG7DrSB2IG1lc2lhY2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiJab3puYW0gcm9rb3YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IlZ5YmVydGUgbWVzaWFjIGEgZGXFiCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+IlZ5YmVydGUgcm9rIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+IkJvbGEgdnlicmF0w6EgcG9sb8W+a2EgPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4ixIzDrXNsbyA8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiBib2xvIG9kc3Ryw6FuZW7DqSI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1zbC9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtc2wvc3RyaW5ncy54bWwKaW5kZXggNDNkYTgxMS4uNDU0ZGI3MyAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1zbC9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLXNsL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJWbmVzaXRlIDgtIGFsaSB2ZcSNIG1lc3RuaSBQVUsuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IkthcnRpY2EgU0lNIGplIHpha2xlbmplbmEgcyBrb2RvIFBVSy4gxIxlIGpvIMW+ZWxpdGUgb2RrbGVuaXRpLCB2bmVzaXRlIGtvZG8gUFVLLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IsSMZSDFvmVsaXRlIG9kc3RyYW5pdGkgYmxva2lyYW5qZSBrYXJ0aWNlIFNJTSwgdm5lc2l0ZSBQVUsyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+Ik5pIHVzcGVsby4gT21vZ2/EjWl0ZSB6YWtsZXBhbmplIGthcnRpY2UgU0lNL1JVSU0uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iTmEgdm9sam8gaW1hdGUgxaFlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwb3NrdXMuIFBvdGVtIHNlIGJvIGthcnRpY2EgU0lNIHpha2xlbmlsYS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJQb3NrdXNpdGUgbGFoa28gxaFlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPi1rcmF0LiBQb3RlbSBzZSBibyBrYXJ0aWNhIFNJTSB6YWtsZW5pbGEuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiJJRCBkb2hvZG5lZ2Ega2xpY2F0ZWxqYSI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4iUHJvZ3JhbXUgb21vZ2/EjWEgdXBvcmFibyBmdW5rY2lqIG5pemtlIHJhdm5pIFN1cmZhY2VGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+ImJyYW5qZSBncmFmacSNbmVnYS9zbGlrb3ZuZWdhIG1lZHBvbW5pbG5pa2EiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4iUHJvZ3JhbXUgb21vZ2/EjWEgYnJhbmplIHZzZWJpbmUgZ3JhZmnEjW5lZ2Evc2xpa292bmVnYSBtZWRwb21uaWxuaWthLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+ImRvc3RvcCBkbyBmdW5rY2lqIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJBcGxpa2FjaWppIGRvdm9sanVqZSB1cG9yYWJvIGZ1bmtjaWogSW5wdXRGbGluZ2VyIG5pemtlIHJhdm5pLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4ia29uZmlndXJpcmFuamUgemFzbG9ub3YgV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJPbW9nb8SNYSBhcGxpa2FjaWppIGtvbmZpZ3VyaXJhbmplIHphc2xvbm92IFdpLUZpIGluIHBvdmV6b3ZhbmplIHogbmppbWkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiJuYWR6b3IgemFzbG9ub3YgV2ktRmkiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iVGlwa2EgU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJUaXBrYSBFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+Ikl6YmVyaXRlIHByb2dyYW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiJBcGxpa2FjaWplIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4gbmkgYmlsbyBtb2dvxI1lIHphZ25hdGkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiJEZWxpdGUgeiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiJEZWxpdGUgcyBwcm9ncmFtb20gPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJEcnNuYSByb8SNaWNhLiBEb3Rha25pdGUgc2UgaW4gcHJpZHLFvml0ZS4iPC9zdHJpbmc+CkBAIC0xNjUwLDQgKzE2NTgsMTUgQEAKICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+IlBvc2t1c2l0ZSB6bm92YSBwb3puZWplIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IlBvdmxlY2l0ZSB6IHZyaGEsIGRhIHphcHJldGUgY2Vsb3phc2xvbnNraSBuYcSNaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiJEb2tvbsSNYW5vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4iT2tyb2dsaSBkcnNuaWsgemEgdXJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiJPa3JvZ2xpIGRyc25payB6YSBtaW51dGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4iSXpiZXJpdGUgdXJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4iSXpiZXJpdGUgbWludXRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiJNZXNlxI1uYSBtcmXFvmEgZG5pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4iU2V6bmFtIGxldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iSXpiZXJpdGUgbWVzZWMgaW4gZGFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4iSXpiZXJpdGUgbGV0byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiJJemJyYW5vOiA8eGxpZmY6ZyBpZD0iSVRFTSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiLFoHRldmlsa2EgPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4gamUgaXpicmlzYW5hIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLXNyL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1zci9zdHJpbmdzLnhtbAppbmRleCAxNGIyMmNjLi40ODI5ZDZkIDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLXNyL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtc3Ivc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+ItCj0L3QtdGB0LjRgtC1IFBVSyDQutC+0ZjQuCDRgdC1INGB0LDRgdGC0L7RmNC4INC+0LQgOCDRhtC40YTQsNGA0LAg0LjQu9C4INCy0LjRiNC1LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJTSU0g0LrQsNGA0YLQuNGG0LAg0ZjQtSDQt9Cw0LrRmdGD0YfQsNC90LAgUFVLINC60L7QtNC+0LwuINCj0L3QtdGB0LjRgtC1IFBVSyDQusO00LQg0LTQsCDQsdC40YHRgtC1INGY0LUg0L7RgtC60ZnRg9GH0LDQu9C4LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+ItCj0L3QtdGB0LjRgtC1IFBVSzIg0LTQsCDQsdC40YHRgtC1INC00LXQsdC70L7QutC40YDQsNC70LggU0lNINC60LDRgNGC0LjRhtGDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+ItCd0LjRmNC1INGD0YHQv9C10LvQvi4g0J7QvNC+0LPRg9Gb0LjRgtC1INC30LDQutGZ0YPRh9Cw0LLQsNGa0LUgU0lNL1JVSU0g0LrQsNGA0YLQuNGG0LUuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4i0JjQvNCw0YLQtSDRmNC+0YggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INC/0L7QutGD0YjQsNGYINC/0YDQtSDQvdC10LPQviDRiNGC0L4g0YHQtSBTSU0g0LrQsNGA0YLQuNGG0LAg0LfQsNC60ZnRg9GH0LAuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4i0JjQvNCw0YLQtSDRmNC+0YggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INC/0L7QutGD0YjQsNGY0LAg0L/RgNC1INC90LXQs9C+INGI0YLQviDRgdC1IFNJTSDQutCw0YDRgtC40YbQsCDQt9Cw0LrRmdGD0YfQsC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+ItCU0L7Qu9Cw0LfQvdC4INCY0JQg0L/QvtC30LjQstCw0L7RhtCwIjwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiLQlNC+0LfQstC+0ZnQsNCy0LAg0LDQv9C70LjQutCw0YbQuNGY0Lgg0LTQsCDQutC+0YDQuNGB0YLQuCBTdXJmYWNlRmxpbmdlciDRhNGD0L3QutGG0LjRmNC1INC90LjRgdC60L7QsyDQvdC40LLQvtCwLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+ItGH0LjRgtCw0ZrQtSDQsdCw0YTQtdGA0LAg0LrQsNC00YDQvtCy0LAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4i0JTQvtC30LLQvtGZ0LDQstCwINCw0L/Qu9C40LrQsNGG0LjRmNC4INC00LAg0YfQuNGC0LAg0YHQsNC00YDQttCw0Zgg0LzQtdGS0YPQvNC10LzQvtGA0LjRmNC1INC60LDQtNGA0L7QstCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+ItC/0YDQuNGB0YLRg9C/IElucHV0RmxpbmdlciDRhNGD0L3QutGG0LjRmNCw0LzQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiLQlNC+0LfQstC+0ZnQsNCy0LAg0LDQv9C70LjQutCw0YbQuNGY0Lgg0LTQsCDQutC+0YDQuNGB0YLQuCBJbnB1dEZsaW5nZXIg0YTRg9C90LrRhtC40ZjQtSDQvdC40YHQutC+0LMg0L3QuNCy0L7QsC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+ItC60L7QvdGE0LjQs9GD0YDQuNGB0LDRmtC1IFdpLUZpINC10LrRgNCw0L3QsCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+ItCU0L7Qt9Cy0L7RmdCw0LLQsCDQsNC/0LvQuNC60LDRhtC40ZjQuCDQtNCwINC60L7QvdGE0LjQs9GD0YDQuNGI0LUgV2ktRmkg0LXQutGA0LDQvdC1INC4INC/0L7QstC10LfRg9GY0LUg0YHQtSDRgdCwINGa0LjQvNCwLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4i0LrQvtC90YLRgNC+0LvQsCBXaS1GaSDQtdC60YDQsNC90LAiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+ItCY0LfQsNCx0LXRgNC40YLQtSDQsNC/0LvQuNC60LDRhtC40ZjRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+ItCd0LjRmNC1INC80L7Qs9GD0ZvQtSDQv9C+0LrRgNC10L3Rg9GC0LggPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+ItCU0LXQu9C4INGB0LAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4i0JTQtdC70Lgg0YHQsCDQsNC/0LvQuNC60LDRhtC40ZjQvtC8IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4i0JrQu9C40LfQvdCwINGA0YPRh9C40YbQsC4g0JTQvtC00LjRgNC90LjRgtC1INC4INC30LDQtNGA0LbQuNGC0LUuIjwvc3RyaW5nPgpAQCAtMTY1MCw0ICsxNjU4LDE1IEBACiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiLQn9C+0LrRg9GI0LDRmNGC0LUg0L/QvtC90L7QstC+INC60LDRgdC90LjRmNC1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+ItCf0YDQtdCy0YPRhtC40YLQtSDQv9GA0YHRgtC+0Lwg0L7QtNC+0LfQs9C+INC90LDQtNC+0LvQtSDQtNCwINCx0LjRgdGC0LUg0LjQt9Cw0YjQu9C4INC40Lcg0YbQtdC70L7QsyDQtdC60YDQsNC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiLQk9C+0YLQvtCy0L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiLQmtGA0YPQttC90Lgg0LrQu9C40LfQsNGHINC30LAg0YHQsNGC0LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+ItCa0YDRg9C20L3QuCDQutC70LjQt9Cw0Ycg0LfQsCDQvNC40L3Rg9GC0LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4i0JjQt9Cw0LHQtdGA0LjRgtC1INGB0LDRgtC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4i0JjQt9Cw0LHQtdGA0LjRgtC1INC80LjQvdGD0YLQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4i0J/RgNC40LrQsNC3INC00LDQvdCwINGDINC80LXRgdC10YbRgyDRgyDQstC40LTRgyDQvNGA0LXQttC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4i0JvQuNGB0YLQsCDQs9C+0LTQuNC90LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+ItCY0LfQsNCx0LXRgNC40YLQtSDQvNC10YHQtdGGINC4INC00LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+ItCY0LfQsNCx0LXRgNC40YLQtSDQs9C+0LTQuNC90YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4i0JjQt9Cw0LHRgNCw0LvQuCDRgdGC0LUgPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4i0JjQt9Cx0YDQuNGB0LDQu9C4INGB0YLQtSA8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1zdi9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtc3Yvc3RyaW5ncy54bWwKaW5kZXggYWEyMGE2NC4uMjI3NmM5NyAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy1zdi9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLXN2L3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJBbmdlIGVuIFBVSy1rb2QgbWVkIG1pbnN0IDggc2lmZnJvci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4iRGl0dCBTSU0ta29ydCDDpHIgUFVLLWzDpXN0LiBBbmdlIFBVSy1rb2RlbiBvbSBkdSB2aWxsIGzDpXNhIHVwcCBkZXQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iQW5nZSBQVUsyLWtvZGVuIGbDtnIgYXR0IGjDpHZhIHNww6RycmVuIGF2IFNJTS1rb3J0ZXQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iRsO2cnPDtmtldCBtaXNzbHlja2FkZXMuIEFrdGl2ZXJhIFNJTS0vUlVJTS1sw6VzLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IkR1IGhhciA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gZsO2cnPDtmsga3ZhciBpbm5hbiBTSU0ta29ydGV0IGzDpXNlcy4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiJEdSBoYXIgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGbDtnJzw7ZrIGt2YXIgaW5uYW4gU0lNLWtvcnRldCBsw6VzZXMuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJLWtvZCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iTnVtbWVycHJlc2VudGF0w7ZyIGbDtnIgaW5rb21tYW5kZSBzYW10YWwiPC9zdHJpbmc+CkBAIC00NzcsNiArNDgyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc1N1cmZhY2VGbGluZ2VyIiBtc2dpZD0iMTA0MTYxOTUxNjczMzI5MzU1MSI+IlRpbGzDpXRlciBhdHQgYXBwZW4gYW52w6RuZGVyIGzDpWduaXbDpWZ1bmt0aW9uZXIgaSBTdXJmYWNlRmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJsw6RzYSByYW1idWZmZXJ0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IlRpbGzDpXRlciBhdHQgYXBwZW4gbMOkc2VyIGlubmVow6VsbGV0IGkgcmFtYnVmZmVydGVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+ImbDpSB0aWxsZ8OlbmcgdGlsbCBJbnB1dEZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4iVGlsbMOldGVyIGF0dCBhcHBlbiBhbnbDpG5kZXIgbMOlZ25pdsOlZnVua3Rpb25lciBpIElucHV0Rmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+ImtvbmZpZ3VyZXJhciBXaS1GaS1za8Okcm1hciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IlRpbGzDpXRlciBhdHQgYXBwZW4ga29uZmlndXJlcmFyIG9jaCBhbnNsdXRlciB0aWxsIFdpLUZpLXNrw6RybWFyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4ia29udHJvbGxlcmFyIFdpLUZpLXNrw6RybWFyIjwvc3RyaW5nPgpAQCAtMTQxNCw2ICsxNDIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNraWZ0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iUmV0dXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiJWw6RsaiBlbiBhcHAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiJEZXQgZ2ljayBpbnRlIGF0dCBzdGFydGEgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IkRlbGEgbWVkIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IkRlbGEgbWVkIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iU2vDpHJtbMOlc2Z1bmt0aW9uLiBUcnljayBvY2ggZHJhLiI8L3N0cmluZz4KQEAgLTE2NTAsNCArMTY1OCwxNSBAQAogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4iRsO2cnPDtmsgaWdlbiBzZW5hcmUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4iRHJhIG5lZMOldCBvbSBkdSB2aWxsIGF2YnJ5dGEgZnVsbHNrw6RybXNsw6RnZXQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiJLbGFydCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IkNpcmtlbHJlZ2xhZ2UgZsO2ciB0aW1tYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+IkNpcmtlbHJlZ2xhZ2UgZsO2ciBtaW51dGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IlbDpGxqIHRpbW1hciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IlbDpGxqIG1pbnV0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+IlJ1dG7DpHQgZsO2ciBtw6VuYWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiJMaXN0YSDDtnZlciDDpXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IlbDpGxqIG3DpW5hZCBvY2ggZGFnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4iVsOkbGogw6VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaXRlbV9pc19zZWxlY3RlZCIgbXNnaWQ9Ijk0OTY4NzQwMTY4MjQ3NjYwOCI+Ijx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiBoYXIgbWFya2VyYXRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4gaGFyIHRhZ2l0cyBib3J0Ijwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLXN3L3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy1zdy9zdHJpbmdzLnhtbAppbmRleCBiMDY2NzU4Li4xMjkxODkzIDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzLXN3L3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtc3cvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+IkFuZGlrYSBQVUsgYW1iYXlvIGluYSB1cmVmdSB3YSBuYW1iYXJpIDggYXUgemFpZGkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IkthZGkgeWFrbyB5YSBTSU0gaW1lZnVuZ3dhIG5hIFBVSy4gQW5pa2EgbXNpbWJvIHdhIFBVSyBpbGkga3VpZnVuZ3VhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IkNoYXBpc2hhIFBVSzIgaWxpIGt1ZnVuZ3VhIFNJTSBrYWRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+IkltZXNoaW5kd2EswqB3YXNoYSB1ZnVuZ2FqaSB3YSBTSU0vUlVJTS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiJVbWVzYWxpYSBuYSBtYWphcmliaW/CoDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBrYWJsYSB5YSBTSU0ga3VmdW5nd2EuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4iVW1lc2FsaWEgbmEgbWFqYXJpYmlvwqA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4ga2FibGEgeWEgU0lNIGt1ZnVuZ3dhLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4iS2l0YW1idWxpc2hvIGNoYSBNcGlnYWppIHdhIFNpbXUgSW5heW9pbmdpYSI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4iSW5hcnVodXN1IHByb2dyYW11IGt1dHVtaWEgdmlwZW5nZWUgdnlhIGtpd2FuZ28gY2hhIGNoaW5pIHZ5YSBTdXJmYWNlRmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiJzb21hIGJhZmEgeWEgZnJlbXUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI0OTM3NDA1NTIxODA5NDU0NjgwIj4iSW5hcnVodXN1IHByb2dyYW11IGt1c29tYSBtYXVkaHVpIHlhIGZyZW11IHlhIGJhZmEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iZmlraWEgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IkluYXJ1aHVzdSBwcm9ncmFtdSBrdXR1bWlhIHZpcGVuZ2VsZSB2eWEgY2hpbmkgdnlhIElucHV0Rmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+InNhbmlkaSBtYW9ueWVzaG8geWEgV2lmaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+IkluYXJ1aHVzdSBwcm9ncmFtdSBrdXNhbmlkaSBuYSBrdXVuZ2FuaWthIGt3ZW55ZSBtYW9ueWVzaG8geWEgV2lmaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+ImRoaWJpdGkgbWFvbnllc2hvIHlhIFdpZmkiPC9zdHJpbmc+CkBAIC01NTEsNyArNTU4LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZFBob25lU3RhdGUiIG1zZ2lkPSI5MTc4MjI4NTI0NTA3NjEwNDg2Ij4ia3Vzb21hIGhhbGkgbmEga2l0YW1idWxpc2hvIGNoYSBzaW11Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZFBob25lU3RhdGUiIG1zZ2lkPSIxNjM5MjEyNzcxODI2MTI1NTI4Ij4iSW5hcnVodXN1IHByb2dyYW11IGt1ZmlraWEgdmlwZW5nZWxlIHZ5YSBzaW11IHZ5YSBraWZhYS4gSWRoaW5pIGhpaSBpbmFydWh1c3UgcHJvZ3JhbXUga3V0YW1idWEgbmFtYmFyaSB5YSBzaW11IG5hIGtpZmFhLCBrYW1hIHNpbXUgbmkgYW1pbGlmdSwgbmEgbmFtYmFyaSB5YSBtYmFsaSBpbGl5b3VuZ2FuaXNod2Ega3dhIHNpbXUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93YWtlTG9jayIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTUzMTczMTQzNTAxMTQ5NTAxNSI+Inp1aWEga29tcHl1dGEgbmRvZ28gZGhpZGkgeWEga3VsYWxhIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl93YWtlTG9jayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjU3MzQ4MDE4Nzk0MTQ5NjEzMCI+Inp1aWEgc2ltdSBkaGlkaSB5YSBrdWxhbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3dha2VMb2NrIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNTczNDgwMTg3OTQxNDk2MTMwIj4ia3V6dWlhIHNpbXUgaXNpbGFsZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3dha2VMb2NrIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSI3MzExMzE5ODI0NDAwNDQ3ODY4Ij4iSW5hcnVodXN1IHByb2dyYW11IGt1enVpYSBrb21weXV0YSBraWJhbyAga3dlbmRhIGt1bGFsYS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY193YWtlTG9jayIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9Ijg1NTkxMDA2NzczNzI5Mjg3NTQiPiJJbmFydWh1c3UgcHJvZ3JhbXUga3V6dWlhIHNpbXUgaXNpZW5kZSBrdWxhbGEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl90cmFuc21pdElyIiBtc2dpZD0iNzU0NTg1ODUwNDIzODUzMDEwNSI+InNhbWJhemEgaW5mcmFyZWQiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU29uZ2EiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IkNoYWd1YSBwcm9ncmFtdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+IkhhaWt1d2V6YSBrdXppbmR1YSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4iU2hpcmlraSBuYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiJTaGlyaWtpIG5hIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iVXRhbWJvIHVuYW9zb25nYS4gR3VzYSAmYW1wOyBzaGlrYSI8L3N0cmluZz4KQEAgLTE2NDksNSArMTY1NywxNiBAQAogICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ3MzA4Njg5MjA3NDI5NTI4MTciPiJKYXJpYnUgdGVuYSBiYWFkYSB5YSBzZWt1bmRlIDx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IjwvaXRlbT4KICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+IkphcmlidSB0ZW5hIGJhYWRheWUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4iVGVsZXplc2hhIGtpZG9sZSBrd2Ega2FzaSBjaGluaSBrdWFuemlhIGp1dSBpbGkgdW9uZG9rZSBrd2VueWUgc2tyaW5pIGthbWlsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJUZWxlemVzaGEga2lkb2xlIGt3YSBrYXNpIGNoaW5pIGt1YW56aWEganV1IGlsaSB1b25kb2tlIGt3ZW55ZSBza3JpbmkgemltYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IkltZWthbWlsaWthIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4iS2l0ZWxlemkgY2hhIG12aXJpbmdvIHdhIHNhYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4iS2l0ZWxlemkgY2hhIG12aXJpbmdvIHdhIGRha2lrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiJDaGFndWEgc2FhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4iQ2hhZ3VhIGRha2lrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4iR3JpZGkgeWEgbXdlemkgeWEgc2lrdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTUyNDMzMTIwNzQzNjA1MjQwMyI+Ik9yb2RoYSB5YSBtaWFrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iQ2hhZ3VhIG13ZXppIG5hIHNpa3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiJDaGFndWEgbXdha2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+IGtpbWVjaGFndWxpd2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiI8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiBraW1lZnV0d2EiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtdGgvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLXRoL3N0cmluZ3MueG1sCmluZGV4IDU4ZjUyNjguLjY0MTUyZGEgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtdGgvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy10aC9zdHJpbmdzLnhtbApAQCAtNTAsNiArNTAsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4i4Lie4Li04Lih4Lie4LmM4Lij4Lir4Lix4LiqIFBVSyDguIvguLbguYjguIfguJXguYnguK3guIfguYDguJvguYfguJnguJXguLHguKfguYDguKXguILguK3guKLguYjguLLguIfguJnguYnguK3guKIgOCDguKvguKXguLHguIEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4i4LiL4Li04Lih4LiB4Liy4Lij4LmM4LiU4LiC4Lit4LiH4LiE4Li44LiT4LiW4Li54LiB4Lil4LmH4Lit4LiB4LiU4LmJ4Lin4LiiIFBVSyDguJ7guLTguKHguJ7guYzguKPguKvguLHguKogUFVLIOC5gOC4nuC4t+C5iOC4reC4m+C4peC4lOC4peC5h+C4reC4gSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IuC4nuC4tOC4oeC4nuC5jCBQVUsyIOC5gOC4nuC4t+C5iOC4reC4ouC4geC5gOC4peC4tOC4geC4geC4suC4o+C4m+C4tOC4lOC4geC4seC5ieC4meC4i+C4tOC4oeC4geC4suC4o+C5jOC4lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+IuC5hOC4oeC5iOC4quC4s+C5gOC4o+C5h+C4iCDguYDguJvguLTguJTguYPguIrguYnguIHguLLguKPguKXguYfguK3guIHguIvguLTguKEvUlVJTSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IuC4hOC4uOC4k+C4nuC4ouC4suC4ouC4suC4oeC5hOC4lOC5ieC4reC4teC4gSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4LiE4Lij4Lix4LmJ4LiH4LiB4LmI4Lit4LiZ4LiX4Li14LmI4LiL4Li04Lih4LiI4Liw4LiW4Li54LiB4Lil4LmH4Lit4LiBIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4i4LiE4Li44LiT4Lie4Lii4Liy4Lii4Liy4Lih4LmE4LiU4LmJ4Lit4Li14LiBIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDguITguKPguLHguYnguIfguIHguYjguK3guJnguJfguLXguYjguIvguLTguKHguIjguLDguJbguLnguIHguKXguYfguK3guIEiPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IuC4q+C4oeC4suC4ouC5gOC4peC4guC4nOC4ueC5ieC5guC4l+C4o+C5gOC4guC5ieC4siI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4i4Lit4LiZ4Li44LiN4Liy4LiV4LmD4Lir4LmJ4LmB4Lit4Lib4Lie4Lil4Li04LmA4LiE4LiK4Lix4LiZ4LmD4LiK4LmJ4LiE4Li44LiT4Lil4Lix4LiB4Lip4LiT4Liw4Lij4Liw4LiU4Lix4Lia4LiV4LmI4Liz4LiC4Lit4LiHIFN1cmZhY2VGbGluZ2VyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4i4Lit4LmI4Liy4LiZ4LmA4Lif4Lij4Lih4Lia4Lix4Lif4LmA4Lif4Lit4Lij4LmMIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IuC4reC4meC4uOC4jeC4suC4leC5g+C4q+C5ieC5geC4reC4m+C4nuC4peC4tOC5gOC4hOC4iuC4seC4meC4reC5iOC4suC4meC5gOC4meC4t+C5ieC4reC4q+C4suC5g+C4meC5gOC4n+C4o+C4oeC4muC4seC4n+C5gOC4n+C4reC4o+C5jCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+IuC5gOC4guC5ieC4suC4luC4tuC4hyBJbnB1dEZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4i4Lit4LiZ4Li44LiN4Liy4LiV4LmD4Lir4LmJ4LmB4Lit4Lib4LmD4LiK4LmJ4LiE4Li44LiT4Lil4Lix4LiB4Lip4LiT4Liw4Lij4Liw4LiU4Lix4Lia4LiV4LmI4Liz4LiC4Lit4LiHIElucHV0RmxpbmdlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4i4LiB4Liz4Lir4LiZ4LiU4LiE4LmI4Liy4LiB4Liy4Lij4LmB4Liq4LiU4LiH4Lic4Lil4LiU4LmJ4Lin4LiiIFdpRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiLguK3guJnguLjguI3guLLguJXguYPguKvguYnguYHguK3guJvguIHguLPguKvguJnguJTguITguYjguLLguYHguKXguLDguYDguIrguLfguYjguK3guKHguJXguYjguK3guIHguLHguJrguIjguK3guYHguKrguJTguIfguJzguKUgV2lGaSDguYTguJTguYkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+IuC4hOC4p+C4muC4hOC4uOC4oeC4geC4suC4o+C5geC4quC4lOC4h+C4nOC4peC4lOC5ieC4p+C4oiBXaUZpIjwvc3RyaW5nPgpAQCAtMTQxNCw2ICsxNDIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4i4Lib4LmJ4Lit4LiZIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4i4LmA4Lil4Li34Lit4LiB4LmB4Lit4Lib4Lie4Lil4Li04LmA4LiE4LiK4Lix4LiZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4i4LmE4Lih4LmI4Liq4Liy4Lih4Liy4Lij4LiW4LmA4Lib4Li04LiUIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiLguYHguJrguYjguIfguJvguLHguJnguIHguLHguJoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4i4LmB4Lia4LmI4LiH4Lib4Lix4LiZ4LiU4LmJ4Lin4LiiIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4i4LiX4Li14LmI4LiI4Lix4Lia4Liq4Liz4Lir4Lij4Lix4Lia4LmA4Lil4Li34LmI4Lit4LiZIOC5geC4leC4sOC4hOC5ieC4suC4h+C5hOC4p+C5iSI8L3N0cmluZz4KQEAgLTE2NTAsNCArMTY1OCwxNSBAQAogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4i4Lil4Lit4LiH4Lit4Li14LiB4LiE4Lij4Lix4LmJ4LiH4LmD4LiZ4Lig4Liy4Lii4Lir4Lil4Lix4LiHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IuC4geC4p+C4suC4lOC4meC4tOC5ieC4p+C4iOC4suC4geC4muC4meC4peC4h+C4peC5iOC4suC4h+C5gOC4nuC4t+C5iOC4reC4reC4reC4geC4iOC4suC4geC5guC4q+C4oeC4lOC5gOC4leC5h+C4oeC4q+C4meC5ieC4suC4iOC4rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4i4LmA4Liq4Lij4LmH4LiI4Liq4Li04LmJ4LiZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4i4LiV4Lix4Lin4LmA4Lil4Li34LmI4Lit4LiZ4Lir4Lih4Li44LiZ4Lij4Liw4Lia4Li44LiK4Lix4LmI4Lin4LmC4Lih4LiHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiLguJXguLHguKfguYDguKXguLfguYjguK3guJnguKvguKHguLjguJnguKPguLDguJrguLjguJnguLLguJfguLUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4i4LmA4Lil4Li34Lit4LiB4LiK4Lix4LmI4Lin4LmC4Lih4LiHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4i4LmA4Lil4Li34Lit4LiB4LiZ4Liy4LiX4Li1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiLguJXguLLguKPguLLguIfguYDguJTguLfguK3guJnguILguK3guIfguKfguLHguJkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLguKPguLLguKLguIHguLLguKPguJvguLUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IuC5gOC4peC4t+C4reC4geC5gOC4lOC4t+C4reC4meC5geC4peC4sOC4p+C4seC4mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+IuC5gOC4peC4t+C4reC4geC4m+C4tSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiLguYDguKXguLfguK3guIEgPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4i4Lil4LiaIDx4bGlmZjpnIGlkPSJLRVkiPiUxJHM8L3hsaWZmOmc+IOC5geC4peC5ieC4pyI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy10bC9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtdGwvc3RyaW5ncy54bWwKaW5kZXggYmMzOTZlZC4uZmE5ZTE0OCAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy10bC9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLXRsL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJNYWctdHlwZSBuZyBQVUsgbmEgbWF5IDggbnVtYmVybyBvIG1hcyBtYWhhYmEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+Ik5hLVBVSy1sb2NrIGFuZyBpeW9uZyBTSU0gY2FyZC4gSS10eXBlIGFuZyBQVUsgY29kZSB1cGFuZyBpLXVubG9jayBpdG8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iSS10eXBlIGFuZyBQVUsyIHVwYW5nIGktdW5ibG9jayBhbmcgU0lNIGNhcmQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4iSGluZGkgbWF0YWd1bXBheSwgaS1lbmFibGUgYW5nIFNJTS9SVUlNIExvY2suIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iTWF5cm9vbiBrYW5nIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiAobmEpIG5hdGl0aXJhbmcgcGFnc3Vib2sgYmFnbyBtYS1sb2NrIGFuZyBTSU0uIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4iTWF5cm9vbiBrYW5nIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiAobmEpIG5hdGl0aXJhbmcgcGFnc3Vib2sgYmFnbyBtYS1sb2NrIGFuZyBTSU0uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiJQYXBhc29rIG5hIENhbGxlciBJRCI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4iUGluYXBheWFnYW4gYW5nIGFwcCBuYSBnYW1pdGluIGFuZyBtYWJhYmFuZyBhbnRhcyBuYSBtZ2EgdGFtcG9rIG5nIFN1cmZhY2VGbGluZ2VyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+ImJhc2FoaW4gYW5nIGJ1ZmZlciBuZyBmcmFtZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJQaW5hcGF5YWdhbiBhbmcgYXBwIG5hIGJhc2FoaW4gYW5nIG5pbGFsYW1hbiBuZyBidWZmZXIgbmcgZnJhbWUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSI1MzQ4NjM1MjcwNjg5NTUzODU3Ij4iaS1hY2Nlc3MgYW5nIElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiJOYWdiaWJpZ2F5LWRhYW4gc2EgYXBwIG5hIGd1bWFtaXQgbmcgbWdhIHRhbXBvayBuZyBJbnB1dEZsaW5nZXIgc2EgbWFiYWJhbmcgYW50YXMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJtYWctY29uZmlndXJlIG5nIG1nYSBXaWZpIGRpc3BsYXkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiJQaW5hcGF5YWdhbiBhbmcgYXBwIG5hIG1hZy1jb25maWd1cmUgYXQga3Vtb25la3RhIHNhIG1nYSBXaWZpIGRpc3BsYXkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiJtYWdrb250cm9sIG5nIG1nYSBXaWZpIGRpc3BsYXkiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IlB1bWlsaSBuZyBpc2FuZyBhcHAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiJIaW5kaSBtYWlsdW5zYWQgYW5nIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiJJYmFoYWdpIHNhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IkliYWhhZ2kgc2EgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJIYXdha2FuIHNhIHBhZy1zbGlkZS4gUGluZHV0aW4gbmFuZyBtYXRhZ2FsLiI8L3N0cmluZz4KQEAgLTE2NDksNSArMTY1NywxNiBAQAogICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ3MzA4Njg5MjA3NDI5NTI4MTciPiJTdWJ1a2FuIG11bGkgc2EgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz4gc2VnIjwvaXRlbT4KICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+IlN1YnVrYW5nIG11bGkgc2EgaWJhbmcgcGFna2FrYXRhb24iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4iTWFnLXN3aXBlIHBhYmFiYSB1cGFuZyBsdW1hYmFzIHNhIGZ1bGwgc2NyZWVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+Ik1hZy1zd2lwZSBwYWJhYmEgbXVsYSBzYSBpdGFhcyB1cGFuZyBsdW1hYmFzIHNhIGZ1bGwgc2NyZWVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4iVGFwb3MgbmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJob3VyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjY2OTgxOTkxODY4NTk3MzY1MTIiPiJQYWJpbG9nIG5hIHNsaWRlciBuZyBtZ2Egb3JhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4iUGFiaWxvZyBuYSBzbGlkZXIgbmcgbWdhIG1pbnV0byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9ob3VycyIgbXNnaWQ9IjYwNDMwNzk1MTE3NjYwMDgyNDUiPiJQdW1pbGkgbmcgbWdhIG9yYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiJQdW1pbGkgbmcgbWdhIG1pbnV0byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4iR3JpZCBuZyBtZ2EgYXJhdyBheW9uIHNhIGJ1d2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4iTGlzdGFoYW4gbmcgdGFvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iUHVtaWxpIG5nIGJ1d2FuIGF0IGFyYXciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiJQdW1pbGkgbmcgdGFvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiJOYXBpbGkgYW5nIDx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+IlRpbmFuZ2dhbCBhbmcgPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtdHIvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLXRyL3N0cmluZ3MueG1sCmluZGV4IDk5YTEzN2IuLjIwZTdmNmMgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtdHIvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy10ci9zdHJpbmdzLnhtbApAQCAtNTAsNiArNTAsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4iOCB2ZXlhIGRhaGEgdXp1biBiYXNhbWFrbMSxIGJpciBQVUsga29kdSB5YXrEsW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IlNJTSBrYXJ0xLFuxLF6xLFuIFBVSyBraWxpZGkgZGV2cmVkZS4gS2lsaWRpIGHDp21hayBpw6dpbiBQVUsga29kdW51IHlhesSxbi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiJFbmdlbGxlbmVuIFNJTSBrYXJ0xLEgYcOnbWFrIGnDp2luIFBVSzIga29kdW51IHlhesSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiJCYcWfYXLEsXPEsXouIFNJTS9SVUlNIEtpbGlkaW5pIGV0a2lubGXFn3RpcmluLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IlNJTSBraWxpdGxlbm1lZGVuIMO2bmNlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBkZW5lbWUgaGFra8SxbsSxeiBrYWxkxLEuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4iU0lNIGtpbGl0bGVubWVkZW4gw7ZuY2UgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGRlbmVtZSBoYWtrxLFuxLF6IGthbGTEsS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IkdlbGVuIMOHYcSfcsSxIEtpbWxpxJ9pIjwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiJVeWd1bGFtYXlhLCBTdXJmYWNlRmxpbmdlclwnYSBhaXQgZMO8xZ/DvGsgZMO8emV5IMO2emVsbGlrbGVyaSBrdWxsYW5tYSBpem5pIHZlcmlyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+IsOnZXLDp2V2ZSBhcmFiZWxsZcSfaW5pIG9rdSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJVeWd1bGFtYXlhLCDDp2Vyw6dldmUgYXJhYmVsbGXEn2luaW4gacOnZXJpxJ9pbmkgb2t1bWEgaXpuaSB2ZXJpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJJbnB1dEZsaW5nZXJcJ2EgZXJpxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4iVXlndWxhbWF5YSwgYWx0IGTDvHpleSBJbnB1dEZsaW5nZXIgw7Z6ZWxsaWtsZXJpbmkga3VsbGFubWEgaXpuaSB2ZXJpci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+IkthYmxvc3V6IGVrcmFubGFyxLEgeWFwxLFsYW5kxLFyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4iVXlndWxhbWF5YSBrYWJsb3N1eiBla3JhbmxhcsSxIHlhcMSxbGFuZMSxcm1hIHZlIGJ1bmxhcmEgYmHEn2xhbm1hIGl6bmkgdmVyaXIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiJLYWJsb3N1eiBla3JhbmxhcsSxIGRlbmV0bGUiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iw5xzdEtya3QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJHaXJpxZ8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiJCaXIgdXlndWxhbWEgc2XDp2luIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiBiYcWfbGF0xLFsYW1hZMSxIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4ixZ51bnVubGEgcGF5bGHFnzoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiBpbGUgcGF5bGHFnyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiJLYXlhbiB0dXRtYSB5ZXJpLiBEb2t1bnVuIHZlIGJhc8SxbMSxIHR1dHVuLiI8L3N0cmluZz4KQEAgLTE2NDksNSArMTY1NywxNiBAQAogICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ3MzA4Njg5MjA3NDI5NTI4MTciPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBzYW5peWUgacOnaW5kZSB0ZWtyYXIgZGVuZXlpbiI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJEYWhhIHNvbnJhIHRla3JhciBkZW5leWluIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IlRhbSBla3JhbmRhbiDDp8Sxa21hayBpw6dpbiBhxZ9hxJ/EsXlhIGjEsXpsxLFjYSBrYXlkxLFyxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IlRhbSBla3JhbmRhbiDDp8Sxa21hayBpw6dpbiB5dWthcsSxZGFuIGHFn2HEn8SxeWEgaMSxemzEsWNhIGtheWTEsXLEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiJCaXR0aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IlNhYXQga2F5ZMSxcm1hIMOnZW1iZXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiJEYWtpa2Ega2F5ZMSxcm1hIMOnZW1iZXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IlNhYXRpIHNlw6dpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IkRha2lrYXnEsSBzZcOnaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODk5MDg0NzkyNTk2MTI5Nzk2OCI+IkF5xLFuIGfDvG5sZXJpIHRhYmxvc3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiJZxLFsIGxpc3Rlc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IkF5xLEgdmUgZ8O8bsO8IHNlw6dpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+IlnEsWzEsSBzZcOnaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4iPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+IHNlw6dpbGRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4iPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4gc2lsaW5kaSI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy11ay9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtdWsvc3RyaW5ncy54bWwKaW5kZXggNjFmNDVlYy4uZGM4YmFkYyAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy11ay9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLXVrL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiLQktCy0LXQtNGW0YLRjCBQVUst0LrQvtC0INGW0LcgOCDQsNCx0L4g0LHRltC70YzRiNC1INGG0LjRhNGALiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsiIG1zZ2lkPSI5MTk2NjgzODU5NTYyNTE2MTEiPiJTSU0t0LrQsNGA0YLQsCDQt9Cw0LHQu9C+0LouIFBVSy3QutC+0LTQvtC8LiDQktCy0LXQtNGW0YLRjCBQVUst0LrQvtC0LCDRidC+0LEg0ZfRlyDRgNC+0LfQsdC70L7Qui4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiLQktCy0LXQtC4gUFVLMiwg0YnQvtCxINGA0L7Qt9Cx0LsuIFNJTS3QutCw0YDRgtGDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+ItCf0L7QvNC40LvQutCwLiDQo9Cy0ZbQvNC60L3RltGC0Ywg0LHQu9C+0LrRg9Cy0LDQvdC90Y8gU0lNL1JVSU0uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4i0KMg0LLQsNGBINC30LDQu9C40YjQuNC70LDRgdGMIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDRgdC/0YDQvtCx0LAuINCf0ZbRgdC70Y8g0YbRjNC+0LPQviBTSU0t0LrQsNGA0YLRgyDQsdGD0LTQtSDQt9Cw0LHQu9C+0LrQvtCy0LDQvdC+LiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+ItCjINCy0LDRgSDQt9Cw0LvQuNGI0LjQu9C+0YHRjyDRgdGC0ZbQu9GM0LrQuCDRgdC/0YDQvtCxOiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4uINCf0ZbRgdC70Y8g0YbRjNC+0LPQviBTSU0t0LrQsNGA0YLRgyDQsdGD0LTQtSDQt9Cw0LHQu9C+0LrQvtCy0LDQvdC+LiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4i0JLRhdGW0LTQvS4g0ZbQtC4g0LDQsdC+0L3QtdC90YLQsCI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4i0JTQvtC30LLQvtC70Y/RlCDQv9GA0L7Qs9GA0LDQvNGWINCy0LjQutC+0YDQuNGB0YLQvtCy0YPQstCw0YLQuCDQvdC40LfRjNC60L7RgNGW0LLQvdC10LLRliDRhNGD0L3QutGG0ZbRlyBTdXJmYWNlRmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjY2OTA1MDQyNDgxNzg0OTgxMzYiPiLRh9C40YLQsNGC0Lgg0YTRgNC10LnQvC3QsdGD0YTQtdGAIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+ItCU0L7Qt9Cy0L7Qu9GP0ZQg0L/RgNC+0LPRgNCw0LzRliDRh9C40YLQsNGC0Lgg0LLQvNGW0YHRgiDQsdGD0YTQtdGA0LAg0LrQsNC00YDRltCyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+ItC+0YLRgNC40LzRg9Cy0LDRgtC4INC00L7RgdGC0YPQvyDQtNC+IElucHV0RmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjIxMDQ4NjQ5NDEyMDEyMjY2MTYiPiLQlNC+0LfQstC+0LvRj9GUINC/0YDQvtCz0YDQsNC80ZYg0LLQuNC60L7RgNC40YHRgtC+0LLRg9Cy0LDRgtC4INC90LjQt9GM0LrQvtGA0ZbQstC90LXQstGWINGE0YPQvdC60YbRltGXIElucHV0Rmxpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+ItC90LDQu9Cw0YjRgtGD0LLQsNGC0Lgg0LXQutGA0LDQvdC4IFdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i0JTQvtC30LLQvtC70Y/RlCDQv9GA0L7Qs9GA0LDQvNGWINC90LDQu9Cw0YjRgtC+0LLRg9Cy0LDRgtC4INC10LrRgNCw0L3QuCBXaS1GaSDRliDQv9GW0LTigJnRlNC00L3Rg9Cy0LDRgtC40YHRjyDQtNC+INC90LjRhS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+ItC60LXRgNGD0LLQsNGC0Lgg0LXQutGA0LDQvdCw0LzQuCBXaS1GaSI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkVudGVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb24iIG1zZ2lkPSIyMTI1MTY4MDU3MTk5OTQxMTk5Ij4i0JLQuNCx0YDQsNGC0Lgg0L/RgNC+0LPRgNCw0LzRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+ItCd0LUg0LLQtNCw0LvQvtGB0Y8g0LfQsNC/0YPRgdGC0LjRgtC4INC/0YDQvtCz0YDQsNC80YMgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+ItCd0LDQtNGW0YHQu9Cw0YLQuCDRh9C10YDQtdC3Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+ItCd0LDQtNGW0YHQu9Cw0YLQuCDRh9C10YDQtdC3IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4i0JLQutCw0LfRltCy0L3QuNC6LdC/0L7QstC30YPQvdC+0LouINCi0L7RgNC60L3RltGC0YzRgdGPINC5INGD0YLRgNC40LzRg9C50YLQtS4iPC9zdHJpbmc+CkBAIC0xNjUwLDQgKzE2NTgsMTUgQEAKICAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdHJfcGluX3RyeV9sYXRlciIgbXNnaWQ9Ijk3MzE0NDQ3MjQ5MDUzMjM3NyI+ItCh0L/RgNC+0LHRg9C50YLQtSDQv9GW0LfQvdGW0YjQtSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiLQn9GA0L7QstC10LTRltGC0Ywg0L/QsNC70YzRhtC10Lwg0LfQstC10YDRhdGDINCy0L3QuNC3LCDRidC+0LEg0LLQuNC50YLQuCDQtyDQv9C+0LLQvdC+0LXQutGA0LDQvdC90L7Qs9C+INGA0LXQttC40LzRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+ItCT0L7RgtC+0LLQviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+ItCS0LjQsdGW0YAg0LPQvtC00LjQvSDQvdCwINGG0LjRhNC10YDQsdC70LDRgtGWIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiLQktC40LHRltGAINGF0LLQuNC70LjQvSDQvdCwINGG0LjRhNC10YDQsdC70LDRgtGWIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+ItCS0LjQsdC10YDRltGC0Ywg0LPQvtC00LjQvdC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4i0JLQuNCx0LXRgNGW0YLRjCDRhdCy0LjQu9C40L3QuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4i0JLRltC60L3QviDQstC40LHQvtGA0YMg0LTQsNGC0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLQnNC10L3RjiDQstC40LHQvtGA0YMg0YDQvtC60YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+ItCS0LjQsdC10YDRltGC0Ywg0LzRltGB0Y/RhtGMINGWINC00LXQvdGMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4i0JLQuNCx0LXRgNGW0YLRjCDRgNGW0LoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4i0JLQuNCx0YDQsNC90L46IDx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+Ijx4bGlmZjpnIGlkPSJLRVkiPiUxJHM8L3hsaWZmOmc+INCy0LjQtNCw0LvQtdC90L4iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtdmkvc3RyaW5ncy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLXZpL3N0cmluZ3MueG1sCmluZGV4IDgyNzUyYjcuLmFlNzUzYTkgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtdmkvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy12aS9zdHJpbmdzLnhtbApAQCAtNTAsNiArNTAsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRQdWsiIG1zZ2lkPSI4NzYxNDU2MjEwODk4MDM2NTEzIj4iTmjhuq1wIFBVSyBjw7MgdOG7qyA4IHPhu5EgdHLhu58gbMOqbi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4iVGjhursgU0lNIGPhu6dhIGLhuqFuIMSRw6MgYuG7iyBraMOzYSBQVUsuIE5o4bqtcCBtw6MgUFVLIMSR4buDIG3hu58ga2jDs2EgdGjhursgU0lNIMSRw7MuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4iTmjhuq1wIG3DoyBQVUsyIMSR4buDIGLhu48gY2jhurduIHRo4bq7IFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiJLaMO0bmcgdGjDoG5oIGPDtG5nLCBrw61jaCBob+G6oXQgdMOtbmggbsSDbmcga2jDs2EgU0lNL1JVSU0uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4iQuG6oW4gY8OybiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gbOG6p24gdGjhu60gdHLGsOG7m2Mga2hpIFNJTSBi4buLIGtow7NhLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+IkLhuqFuIGPDsm4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGzhuqduIHRo4butIHRyxrDhu5tjIGtoaSBTSU0gYuG7iyBraMOzYS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJpbWVpIiBtc2dpZD0iMjYyNTQyOTg5MDg2OTAwNTc4MiI+IklNRUkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJtZWlkIiBtc2dpZD0iNDg0MTIyMTIzNzY4MTI1NDE5NSI+Ik1FSUQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJDbGlwTW1pIiBtc2dpZD0iNjk1MjgyMTIxNjQ4MDI4OTI4NSI+IlPhu5EgZ+G7jWkgxJHhur9uIjwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiJDaG8gcGjDqXAg4bupbmcgZOG7pW5nIHPhu60gZOG7pW5nIGPDoWMgdMOtbmggbsSDbmcgU3VyZmFjZUZsaW5nZXIgY+G6pXAgxJHhu5kgdGjhuqVwLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+IsSR4buNYyBi4buZIMSR4buHbSBraHVuZyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiJDaG8gcGjDqXAg4bupbmcgZOG7pW5nIMSR4buNYyBu4buZaSBkdW5nIGPhu6dhIGLhu5kgxJHhu4dtIGtodW5nLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+InRydXkgY+G6rXAgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IkNobyBwaMOpcCDhu6luZyBk4bulbmcgc+G7rSBk4bulbmcgY8OhYyB0w61uaCBuxINuZyBJbnB1dEZsaW5nZXIgY+G6pXAgxJHhu5kgdGjhuqVwLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI1NTk1NjYxNjk0NzQ2NzQyMTY4Ij4ixJHhu4tuaCBj4bqldSBow6xuaCBtw6BuIGjDrG5oIFdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4iQ2hvIHBow6lwIOG7qW5nIGThu6VuZyDEkeG7i25oIGPhuqV1IGjDrG5oIHbDoCBr4bq/dCBu4buRaSB24bubaSBtw6BuIGjDrG5oIFdpLUZpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4ia2nhu4NtIHNvw6F0IG3DoG4gaMOsbmggV2ktRmkiPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IkNo4buNbiBt4buZdCDhu6luZyBk4bulbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiJLaMO0bmcgdGjhu4Mga2jhu59pIGNo4bqheSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4iQ2hpYSBz4bq7IHbhu5tpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IkNoaWEgc+G6uyB24bubaSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+IlRheSB0csaw4bujdC4gQ2jhuqFtICZhbXA7IGdp4buvLiI8L3N0cmluZz4KQEAgLTE2NDksNSArMTY1NywxNiBAQAogICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ3MzA4Njg5MjA3NDI5NTI4MTciPiJIw6N5IHRo4butIGzhuqFpIHNhdSA8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiBnacOieSI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJIw6N5IHRo4butIGzhuqFpIHNhdSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiJWdeG7kXQgdOG7qyB0csOqbiB4deG7kW5nIMSR4buDIHRob8OhdCB0b8OgbiBtw6BuIGjDrG5oIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IlZ14buRdCB04burIHRyw6puIHh14buRbmcgxJHhu4MgdGhvw6F0IHRvw6BuIG3DoG4gaMOsbmguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCIgbXNnaWQ9IjIwOTM3MjYwOTk1MDU4OTIzOTgiPiJYb25nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4iVGhhbmggdHLGsOG7o3QgZ2nhu50gaMOsbmggdHLDsm4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODYwNjAxMDk2Njg3Mzc5MTE5MCI+IlRoYW5oIHRyxrDhu6N0IHBow7p0IGjDrG5oIHRyw7JuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IkNo4buNbiBnaeG7nSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IkNo4buNbiBwaMO6dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4iTMaw4bubaSBuZ8OgeSB0aGVvIHRow6FuZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTUyNDMzMTIwNzQzNjA1MjQwMyI+IkRhbmggc8OhY2ggbsSDbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iQ2jhu41uIHRow6FuZyB2w6AgbmfDoHkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiJDaOG7jW4gbsSDbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiLEkMOjIGNo4buNbiA8eGxpZmY6ZyBpZD0iSVRFTSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiLEkMOjIHjDs2EgPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtemgtckNOL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy16aC1yQ04vc3RyaW5ncy54bWwKaW5kZXggZGJmZDAzOS4uMjhhYjQ1NSAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy16aC1yQ04vc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy16aC1yQ04vc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+Iuivt+mUruWFpeiHs+WwkSA4IOS9jeaVsOWtl+eahCBQVUsg56CB44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IuW3suWvuSBTSU0g5Y2h6L+b6KGMIFBVSyDnoIHplIHlrprjgILplK7lhaUgUFVLIOeggeWwhuWFtuino+mUgeOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+Iui+k+WFpSBQVUsyIOeggeS7peino+mUgSBTSU0g5Y2h44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW5hYmxlUGluIiBtc2dpZD0iMjA5NDEyMDIwOTA3MjA3OTUwIj4i5aSx6LSl77yM6K+35ZCv55SoIFNJTS9SVUlNIOWNoemUgeWumuiuvue9ruOAgiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IuaCqOi/mOaciTx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPuasoeWwneivleacuuS8muOAguWmguaenOS7jeeEtuWksei0pe+8jFNJTSDljaHlsIbooqvplIHlrprjgIIiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijc1MzA1OTc4MDgzNTg3NzQ3NDAiPiLmgqjov5jmnIk8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz7mrKHlsJ3or5XmnLrkvJrjgILlpoLmnpzku43nhLblpLHotKXvvIxTSU0g5Y2h5bCG6KKr6ZSB5a6a44CCIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiLmnaXnlLXmmL7npLoiPC9zdHJpbmc+CkBAIC00NzcsMTQgKzQ4MiwxNiBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4i5YWB6K645bqU55So5L2/55SoIFN1cmZhY2VGbGluZ2VyIOS9jue6p+WKn+iDveOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+Iuivu+WPluW4p+e8k+WGsuWMuiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiLlhYHorrjlupTnlKjor7vlj5bluKfnvJPlhrLljLrnmoTlhoXlrrnjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiLkvb/nlKggSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IuWFgeiuuOW6lOeUqOS9v+eUqCBJbnB1dEZsaW5nZXIg5bqV5bGC5Yqf6IO944CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiLphY3nva4gV0xBTiDmmL7npLrorr7lpIciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiLlhYHorrjlupTnlKjphY3nva7lubbov57mjqXliLAgV0xBTiDmmL7npLrorr7lpIfjgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjM5MzY0MTI3NjcyMzY5NTQ5NiI+IuaOp+WItiBXTEFOIOaYvuekuuiuvuWkhyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjQ1NDM5MTIyOTI2ODE4MjY5ODYiPiLlhYHorrjlupTnlKjmjqfliLYgV0xBTiDmmL7npLrorr7lpIfnmoTln7rnoYDlip/og73jgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NhcHR1cmVBdWRpb091dHB1dCIgbXNnaWQ9IjY4NTcxMzQ0OTg0MDIzNDY3MDgiPiLmjZXojrfpn7PpopHovpPlh7oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlQXVkaW9PdXRwdXQiIG1zZ2lkPSI2MjEwNTk3NzU0MjEyMjA4ODUzIj4i5YWB6K646K+l5bqU55So5o2V6I635ZKM6YeN5a6a5ZCR6Z+z6aKR6L6T5Ye644CCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlQXVkaW9Ib3R3b3JkIiBtc2dpZD0iMTg5MDU1MzkzNTY1MDM0OTgwOCI+IuajgOa1i+WFs+mUruivjSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVBdWRpb0hvdHdvcmQiIG1zZ2lkPSI5MTUxODA3OTU4MTUzMDU2ODEwIj4i5YWB6K645bqU55So5o2V6I636Z+z6aKR5Lul5L6/5qOA5rWL6K+t6Z+z5oyH5Luk55qE5YWz6ZSu6K+N44CC5o2V6I635pON5L2c5Lya5Zyo5ZCO5Y+w6L+b6KGM77yM5L2G5LiN5Lya5aao56KN5YW25LuW6Z+z6aKR5o2V6I635bel5YW377yI5L6L5aaC5pGE5YOP5py677yJ44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlQXVkaW9Ib3R3b3JkIiBtc2dpZD0iMTg5MDU1MzkzNTY1MDM0OTgwOCI+IuWQr+WKqOaMh+S7pOajgOa1iyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVBdWRpb0hvdHdvcmQiIG1zZ2lkPSI5MTUxODA3OTU4MTUzMDU2ODEwIj4i5YWB6K645bqU55So5o2V6I636Z+z6aKR5Lul5L6/5qOA5rWL6K+t6Z+z5ZCv5Yqo5oyH5Luk44CC5o2V6I635pON5L2c5Lya5Zyo5ZCO5Y+w6L+b6KGM77yM5L2G5LiN5Lya5aao56KN5YW25LuW6Z+z6aKR5o2V6I635bel5YW377yI5L6L5aaC5pGE5YOP5py677yJ44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSIyMjQ2ODI4NzczNTg5MDk0MDIzIj4i5o2V6I636KeG6aKR6L6T5Ye6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMzU5NDgxNjU4MDM0MTQ5ODYwIj4i5YWB6K646K+l5bqU55So5o2V6I635ZKM6YeN5a6a5ZCR6KeG6aKR6L6T5Ye644CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlU2VjdXJlVmlkZW9PdXRwdXQiIG1zZ2lkPSI3ODE1Mzk4OTY5MzAzMzgyMDE2Ij4i5o2V6I635a6J5YWo6KeG6aKR6L6T5Ye6Ijwvc3RyaW5nPgpAQCAtNTQ1LDcgKzU1Miw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NoZWNraW5Qcm9wZXJ0aWVzIiBtc2dpZD0iNzg1NTI1OTQ2MTI2ODczNDkxNCI+Iuiuv+mXruajgOWFpeWxnuaApyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NoZWNraW5Qcm9wZXJ0aWVzIiBtc2dpZD0iNDAyNDUyNjk2ODYzMDE5NDEyOCI+IuWFgeiuuOW6lOeUqOWvueeZu+iusOacjeWKoeS4iuS8oOeahOWxnuaAp+aLpeacieivu+WPli/lhpnlhaXmnYPpmZDjgILmma7pgJrlupTnlKjkuI3lupTkvb/nlKjmraTmnYPpmZDjgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2JpbmRHYWRnZXQiIG1zZ2lkPSI3NzY5MDUzMzkwMTU4NjM0NzEiPiLpgInmi6nlsI/pg6jku7YiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19iaW5kR2FkZ2V0IiBtc2dpZD0iODI2MTMyNjkzODU5OTA0OTI5MCI+IuWFgeiuuOW6lOeUqOWRiuefpeezu+e7n+WTquS6m+Wwj+mDqOS7tuWPr+S+m+WTquS4quW6lOeUqOS9v+eUqOOAguaLpeacieatpOadg+mZkOeahOW6lOeUqOWPr+WQkeWFtuS7luW6lOeUqOaOiOS6iOWvueS4quS6uui1hOaWmeeahOiuv+mXruadg+mZkOOAguaZrumAmuW6lOeUqOS4jeW6lOS9v+eUqOatpOadg+mZkOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2JpbmRHYWRnZXQiIG1zZ2lkPSI4MjYxMzI2OTM4NTk5MDQ5MjkwIj4i5YWB6K645bqU55So5ZGK55+l57O757uf5ZOq5Lqb5bCP6YOo5Lu25Y+v5L6b5ZOq5Liq5bqU55So5L2/55So44CC5oul5pyJ5q2k5p2D6ZmQ55qE5bqU55So5Y+v5ZCR5YW25LuW5bqU55So5o6I5LqI5a+55Liq5Lq65pWw5o2u55qE6K6/6Zeu5p2D6ZmQ44CC5pmu6YCa5bqU55So5LiN5bqU5L2/55So5q2k5p2D6ZmQ44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9tb2RpZnlQaG9uZVN0YXRlIiBtc2dpZD0iODQyMzkyMzc3NzY1OTI5MjIyOCI+IuS/ruaUueaJi+acuueKtuaAgSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX21vZGlmeVBob25lU3RhdGUiIG1zZ2lkPSIxMDI5ODc3NTI5MDA3Njg2NzMyIj4i5YWB6K645bqU55So5o6n5Yi26K6+5aSH55qE55S16K+d5Yqf6IO944CC5oul5pyJ5q2k5p2D6ZmQ55qE5bqU55So5Y+v5Zyo5LiN6YCa55+l5oKo55qE5oOF5Ya15LiL5omn6KGM5YiH5o2i572R57uc44CB5byA5YWz5omL5py65peg57q/6KOF572u562J5q2k57G75pON5L2c44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkUGhvbmVTdGF0ZSIgbXNnaWQ9IjkxNzgyMjg1MjQ1MDc2MTA0ODYiPiLor7vlj5bmiYvmnLrnirbmgIHlkozouqvku70iPC9zdHJpbmc+CkBAIC0xNDE0LDYgKzE0MjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IumAieaLqeW6lOeUqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+IuaXoOazleWQr+WKqOKAnDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz7igJ0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGgiIG1zZ2lkPSI4MDY2ODgwNTYxNDExMzE4MTkiPiLliIbkuqvmlrnlvI8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzaGFyZWFjdGlvbnByb3ZpZGVyX3NoYXJlX3dpdGhfYXBwbGljYXRpb24iIG1zZ2lkPSI1NjI3NDExMzg0NjM4Mzg5NzM4Ij4i5L2/55SoPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPuWIhuS6qyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbnRlbnRfZGVzY3JpcHRpb25fc2xpZGluZ19oYW5kbGUiIG1zZ2lkPSI0MTU5NzUwNTYxNTkyNjIyNDgiPiLmu5HliqjmiYvmn4TjgILop6bmkbjlubbmjInkvY/jgIIiPC9zdHJpbmc+CkBAIC0xNjQ5LDUgKzE2NTcsMTYgQEAKICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI0NzMwODY4OTIwNzQyOTUyODE3Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lZDwveGxpZmY6Zz7np5LlkI7ph43or5UiPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4i56iN5ZCO6YeN6K+VIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IuS7jumhtumDqOWQkeS4i+a7keWKqOWNs+WPr+mAgOWHuuWFqOWxj+aooeW8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiLku47pobbpg6jlkJHkuIvmu5HliqjljbPlj6/pgIDlh7rlhajlsY/mqKHlvI/jgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IuWujOaIkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IuWwj+aXtui9rOebmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4i5YiG6ZKf6L2s55uYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IumAieaLqeWwj+aXtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IumAieaLqeWIhumSnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4i5oyJ5pyI5Lu95YiS5YiG55qE5pel5pyf572R5qC8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4i5bm05Lu95YiX6KGoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2RheSIgbXNnaWQ9Ijc3NzQ3NTk2MDQ3MDE3NzMzMzIiPiLpgInmi6nmnIjku73lkozml6XmnJ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiLpgInmi6nlubTku70iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4i5bey6YCJ5oupPHhsaWZmOmcgaWQ9IklURU0iPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiIG1zZ2lkPSI3NjU5NDc3ODg2NjI1NTY2NTkwIj4i5bey5Yig6ZmkPHhsaWZmOmcgaWQ9IktFWSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy16aC1ySEsvc3RyaW5ncy54bWwKaW5kZXggMmQyZTc3ZS4uZjEwYWU5YiAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy16aC1ySEsvc3RyaW5ncy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy16aC1ySEsvc3RyaW5ncy54bWwKQEAgLTUwLDYgKzUwLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkUHVrIiBtc2dpZD0iODc2MTQ1NjIxMDg5ODAzNjUxMyI+Iui8uOWFpSA4IOS9jeaVuOS7peS4iueahCBQVUvjgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4i5oKo55qEIFNJTSDljaHlt7LpjpblrpogUFVL77yM6KuL6Ly45YWlIFBVSyDnorzku6Xop6PpmaTpjpblrprjgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrMiIgbXNnaWQ9IjQ1MjYwMzMzNzE5ODcxOTMwNzAiPiLovLjlhaUgUFVLMiDngrogU0lNIOWNoeino+mZpOWwgemOluOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+IuaTjeS9nOWkseaVl++8jOiri+WVn+eUqOOAjFNJTS9SVUlNIOmOluWumuOAjeOAgiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icGlucHVrX2F0dGVtcHRzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNjU5NjI0NTI4NTgwOTc5MDE0MiI+IuaCqOWJqeS4iyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g5qyh5qmf5pyD6Ly45YWl44CC5aaC5p6c5LuN54S26Ly45YWl6Yyv6Kqk77yMU0lNIOWwh+acg+iiq+mOluWumuOAgiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+IuaCqOWJqeS4iyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g5qyh5qmf5pyD6Ly45YWl44CC5aaC5p6c5LuN54S26Ly45YWl6Yyv6Kqk77yMU0lNIOWwh+acg+iiq+mOluWumuOAgiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9ImltZWkiIG1zZ2lkPSIyNjI1NDI5ODkwODY5MDA1NzgyIj4iSU1FSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im1laWQiIG1zZ2lkPSI0ODQxMjIxMjM3NjgxMjU0MTk1Ij4iTUVJRCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9IkNsaXBNbWkiIG1zZ2lkPSI2OTUyODIxMjE2NDgwMjg5Mjg1Ij4i5L6G6Zu76aGv56S6Ijwvc3RyaW5nPgpAQCAtNDc3LDYgKzQ4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NTdXJmYWNlRmxpbmdlciIgbXNnaWQ9IjEwNDE2MTk1MTY3MzMyOTM1NTEiPiLlhYHoqLHmh4nnlKjnqIvlvI/kvb/nlKggU3VyZmFjZUZsaW5nZXIg55qE5L2O5bGk5Yqf6IO944CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9yZWFkRnJhbWVCdWZmZXIiIG1zZ2lkPSI2NjkwNTA0MjQ4MTc4NDk4MTM2Ij4i6K6A5Y+W5qGG5p6257ep6KGd5Y2AIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+IuWFgeioseaHieeUqOeoi+W8j+iugOWPlueVq+mdoue3qeihneWNgOeahOWFp+WuueOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iNTM0ODYzNTI3MDY4OTU1Mzg1NyI+IuWtmOWPliBJbnB1dEZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiIG1zZ2lkPSIyMTA0ODY0OTQxMjAxMjI2NjE2Ij4i5YWB6Kix5oeJ55So56iL5byP5L2/55SoIElucHV0RmxpbmdlciDnmoTkvY7pmo7lip/og73jgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNTU5NTY2MTY5NDc0Njc0MjE2OCI+IuioreWumiBXaUZpIERpc3BsYXkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9Ijc5MTY4MTUxNTg2OTAyMTgwNjUiPiLlhYHoqLHmh4nnlKjnqIvlvI/oqK3lrprlj4rpgKPmjqUgV2lGaSBEaXNwbGF544CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiLmjqfliLYgV2lGaSBEaXNwbGF5Ijwvc3RyaW5nPgpAQCAtMTQxNCw2ICsxNDIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0IOmNtSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkVudGVyIOmNtSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uIiBtc2dpZD0iMjEyNTE2ODA1NzE5OTk0MTE5OSI+IumBuOaTh+aHieeUqOeoi+W8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjdGl2aXR5Y2hvb3NlcnZpZXdfY2hvb3NlX2FwcGxpY2F0aW9uX2Vycm9yIiBtc2dpZD0iODYyNDYxODM2NTQ4MTEyNjY2OCI+IueEoeazleWVn+WLlSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoIiBtc2dpZD0iODA2Njg4MDU2MTQxMTMxODE5Ij4i5YiG5Lqr57WmIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IuiIh+OAjDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz7jgI3liIbkuqsiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4i5ruR5YuV5o6n5Yi244CC5oyB57qM6LyV6Ke444CCIjwvc3RyaW5nPgpAQCAtMTY0OSw1ICsxNjU3LDE2IEBACiAgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNDczMDg2ODkyMDc0Mjk1MjgxNyI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JWQ8L3hsaWZmOmc+IOenkuW+jOWGjeippuS4gOasoSI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiLnqI3lvozlho3oqaYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4i5b6e6aCC56uv5b6A5LiL5ruR5YuV5Y2z5Y+v57WQ5p2f5YWo6J6i5bmV44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IueUsemgguerr+W+gOS4i+W/q+mAn+a7keWLleWNs+WPr+mboumWi+WFqOieouW5leOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfbGFiZWwiIG1zZ2lkPSIyMDkzNzI2MDk5NTA1ODkyMzk4Ij4i5a6M5oiQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4i5bCP5pmC55Kw5b2i5ruR5qG/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiLliIbpkJjnkrDlvaLmu5Hmob8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4i6YG45Y+W5bCP5pmCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X21pbnV0ZXMiIG1zZ2lkPSIzOTc0MzQ1NjE1OTIwMzM2MDg3Ij4i6YG45Y+W5YiG6ZCYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF5X3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg5OTA4NDc5MjU5NjEyOTc5NjgiPiLpoa/npLrmr4/ml6XnmoTmnIjmm4bmlrnmoLwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ5ZWFyX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjU1MjQzMzEyMDc0MzYwNTI0MDMiPiLlubTku73muIXllq4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfZGF5IiBtc2dpZD0iNzc3NDc1OTYwNDcwMTc3MzMzMiI+IumBuOWPluaciOS7veWSjOaXpeacnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF95ZWFyIiBtc2dpZD0iNzk1MjA1Mjg2Njk5NDE5NjE3MCI+IumBuOWPluW5tOS7vSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiLlt7Lpgbjlj5Y8eGxpZmY6ZyBpZD0iSVRFTSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiI8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiDlt7LliKrpmaQiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy16aC1yVFcvc3RyaW5ncy54bWwKaW5kZXggM2VjOGQ0Yy4uNGM4NmFiZDEgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiLovLjlhaUgOCDkvY3mlbjku6XkuIrnmoQgUFVL44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1ayIgbXNnaWQ9IjkxOTY2ODM4NTk1NjI1MTYxMSI+IlNJTSDljaHnmoQgUFVLIOW3sumOluWumuOAguiri+i8uOWFpSBQVUsg56K86Kej6Zmk6Y6W5a6a44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibmVlZFB1azIiIG1zZ2lkPSI0NTI2MDMzMzcxOTg3MTkzMDcwIj4i6KuL6Ly45YWlIFBVSzIg5Lul6Kej6Y6WIFNJTSDljaHjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbmFibGVQaW4iIG1zZ2lkPSIyMDk0MTIwMjA5MDcyMDc5NTAiPiLmk43kvZzlpLHmlZfvvIzoq4vllZ/nlKggU0lNL1JVSU0g6Y6W5a6a44CCIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwaW5wdWtfYXR0ZW1wdHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI2NTk2MjQ1Mjg1ODA5NzkwMTQyIj4i5oKo6YKE5Y+v5Lul5YaN6KmmIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDmrKHjgILlpoLmnpzku43nhLblpLHmlZfvvIxTSU0g5Y2h5bCH6KKr6Y6W5L2P44CCIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI3NTMwNTk3ODA4MzU4Nzc0NzQwIj4i5oKo6YKE5Y+v5Lul5YaN6KmmIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDmrKHjgILlpoLmnpzku43nhLblpLHmlZfvvIxTSU0g5Y2h5bCH6KKr6Y6W5L2P44CCIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiLkvobpm7vpoa/npLoiPC9zdHJpbmc+CkBAIC00NzcsMTQgKzQ4MiwxNiBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4i5YWB6Kix5oeJ55So56iL5byP5L2/55SoIFN1cmZhY2VGbGluZ2VyIOeahOS9jumajuWKn+iDveOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+IuiugOWPluahhuaetue3qeihnSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX3JlYWRGcmFtZUJ1ZmZlciIgbXNnaWQ9IjQ5Mzc0MDU1MjE4MDk0NTQ2ODAiPiLlhYHoqLHmh4nnlKjnqIvlvI/oroDlj5bnlavpnaLnt6nooZ3ljYDnmoTlhaflrrnjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiLlrZjlj5YgSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+IuWFgeioseaHieeUqOeoi+W8j+S9v+eUqCBJbnB1dEZsaW5nZXIg55qE5L2O6ZqO5Yqf6IO944CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiLoqK3lrpogV2ktRmkg6aGv56S66KOd572uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiIG1zZ2lkPSI3OTE2ODE1MTU4NjkwMjE4MDY1Ij4i5YWB6Kix5oeJ55So56iL5byP6Kit5a6a5Y+K6YCj5o6lIFdpLUZpIOmhr+ekuuijnee9ruOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY29udHJvbFdpZmlEaXNwbGF5IiBtc2dpZD0iMzkzNjQxMjc2NzIzNjk1NDk2Ij4i5o6n5Yi2IFdpLUZpIOmhr+ekuuijnee9riI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbnRyb2xXaWZpRGlzcGxheSIgbXNnaWQ9IjQ1NDM5MTIyOTI2ODE4MjY5ODYiPiLlhYHoqLHmh4nnlKjnqIvlvI/mjqfliLYgV2ktRmkg6aGv56S66KOd572u55qE5L2O6ZqO5Yqf6IO944CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jYXB0dXJlQXVkaW9PdXRwdXQiIG1zZ2lkPSI2ODU3MTM0NDk4NDAyMzQ2NzA4Ij4i5pO35Y+W6Z+z6KiK6Ly45Ye6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY2FwdHVyZUF1ZGlvT3V0cHV0IiBtc2dpZD0iNjIxMDU5Nzc1NDIxMjIwODg1MyI+IuWFgeioseaHieeUqOeoi+W8j+aTt+WPluWPiumHjeaWsOWwjuWQkemfs+ioiui8uOWHuuOAgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZUF1ZGlvSG90d29yZCIgbXNnaWQ9IjE4OTA1NTM5MzU2NTAzNDk4MDgiPiLnhrHploDlrZfoqZ7lgbXmuKwiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlQXVkaW9Ib3R3b3JkIiBtc2dpZD0iOTE1MTgwNzk1ODE1MzA1NjgxMCI+IuWFgeioseaHieeUqOeoi+W8j+aTt+WPlumfs+ioiueUqOaWvOeGsemWgOWtl+ipnuWBtea4rOOAguaTt+WPluS9nOalreWPr+WcqOiDjOaZr+Wft+ihjO+8jOS9huS4puacquemgeatouS9v+eUqOWFtuS7lumfs+ioiuaTt+WPluW3peWFtyAo5L6L5aaC5pSd6YyE5b2x5qmfKeOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZUF1ZGlvSG90d29yZCIgbXNnaWQ9IjE4OTA1NTM5MzU2NTAzNDk4MDgiPiLllZ/li5XlrZfoqZ7lgbXmuKwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19jYXB0dXJlQXVkaW9Ib3R3b3JkIiBtc2dpZD0iOTE1MTgwNzk1ODE1MzA1NjgxMCI+IuWFgeioseaHieeUqOeoi+W8j+aTt+WPlumfs+ioiueUqOaWvOWVn+WLleWtl+ipnuWBtea4rOOAguaTt+WPluS9nOalreWPr+WcqOiDjOaZr+Wft+ihjO+8jOS9huS4puacquemgeatouS9v+eUqOWFtuS7lumfs+ioiuaTt+WPluW3peWFtyAo5L6L5aaC5pSd6YyE5b2x5qmfKeOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZVZpZGVvT3V0cHV0IiBtc2dpZD0iMjI0NjgyODc3MzU4OTA5NDAyMyI+IuaTt+WPluimluioiui8uOWHuiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NhcHR1cmVWaWRlb091dHB1dCIgbXNnaWQ9IjM1OTQ4MTY1ODAzNDE0OTg2MCI+IuWFgeioseaHieeUqOeoi+W8j+aTt+WPluWPiumHjeaWsOWwjuWQkeimluioiui8uOWHuuOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfY2FwdHVyZVNlY3VyZVZpZGVvT3V0cHV0IiBtc2dpZD0iNzgxNTM5ODk2OTMwMzM4MjAxNiI+IuaTt+WPluWuieWFqOimluioiui8uOWHuiI8L3N0cmluZz4KQEAgLTE0MTQsNiArMTQyMSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCDpjbUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciDpjbUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiLpgbjmk4fmh4nnlKjnqIvlvI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbl9lcnJvciIgbXNnaWQ9Ijg2MjQ2MTgzNjU0ODExMjY2NjgiPiLnhKHms5XllZ/li5UgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IuWIhuS6q+Wwjeixoe+8miI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aF9hcHBsaWNhdGlvbiIgbXNnaWQ9IjU2Mjc0MTEzODQ2MzgzODk3MzgiPiLoiIfjgIw8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT05fTkFNRSI+JXM8L3hsaWZmOmc+44CN5YiG5LqrIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29udGVudF9kZXNjcmlwdGlvbl9zbGlkaW5nX2hhbmRsZSIgbXNnaWQ9IjQxNTk3NTA1NjE1OTI2MjI0OCI+Iua7keWLleaOp+WItuOAguaMgee6jOi8leinuOOAgiI8L3N0cmluZz4KQEAgLTE2NDksNSArMTY1NywxNiBAQAogICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjQ3MzA4Njg5MjA3NDI5NTI4MTciPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiVkPC94bGlmZjpnPiDnp5Llvozlho3oqabkuIDmrKEiPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0cl9waW5fdHJ5X2xhdGVyIiBtc2dpZD0iOTczMTQ0NDcyNDkwNTMyMzc3Ij4i56iN5b6M5YaN6KmmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iNzIyNzQxNjg5NDk3OTA0NzQ2NyI+IuW+numgguerr+W+gOS4i+a7keWLleWNs+WPr+e1kOadn+WFqOieouW5leOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImltbWVyc2l2ZV9tb2RlX2NvbmZpcm1hdGlvbiIgbXNnaWQ9IjcyMjc0MTY4OTQ5NzkwNDc0NjciPiLlvp7poILnq6/lvoDkuIvmu5Hli5XljbPlj6/pgIDlh7rlhajonqLluZXmqKHlvI/jgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+IuWujOaIkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNjY5ODE5OTE4Njg1OTczNjUxMiI+IuWwj+aZguaVuOeSsOeLgOa7keahvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NjA2MDEwOTY2ODczNzkxMTkwIj4i5YiG6ZCY5pW455Kw54uA5ruR5qG/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2hvdXJzIiBtc2dpZD0iNjA0MzA3OTUxMTc2NjAwODI0NSI+IumBuOWPluWwj+aZguaVuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9taW51dGVzIiBtc2dpZD0iMzk3NDM0NTYxNTkyMDMzNjA4NyI+IumBuOWPluWIhumQmOaVuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4i5pel5pyf57ay5qC8ICjmjInmnIjpoa/npLopIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ieWVhcl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI1NTI0MzMxMjA3NDM2MDUyNDAzIj4i5bm05Lu95riF5ZauIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X2RheSIgbXNnaWQ9Ijc3NzQ3NTk2MDQ3MDE3NzMzMzIiPiLpgbjlj5bmnIjku73lkozml6XmnJ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfeWVhciIgbXNnaWQ9Ijc5NTIwNTI4NjY5OTQxOTYxNzAiPiLpgbjlj5blubTku70iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIiBtc2dpZD0iOTQ5Njg3NDAxNjgyNDc2NjA4Ij4i5bey6YG45Y+WIDx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbGV0ZWRfa2V5IiBtc2dpZD0iNzY1OTQ3Nzg4NjYyNTU2NjU5MCI+IuW3suWIqumZpCA8eGxpZmY6ZyBpZD0iS0VZIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy16dS9zdHJpbmdzLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMtenUvc3RyaW5ncy54bWwKaW5kZXggNTdkNTljMy4uZDc4YjhkMSAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy16dS9zdHJpbmdzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzLXp1L3N0cmluZ3MueG1sCkBAIC01MCw2ICs1MCwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZFB1ayIgbXNnaWQ9Ijg3NjE0NTYyMTA4OTgwMzY1MTMiPiJUaGF5aXBoYSBpLVBVSyBlbmV6aW5vbWJvbG8gZXppbmd1LTggbm9tYSBuZ2FwaGV6dS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJuZWVkUHVrIiBtc2dpZD0iOTE5NjY4Mzg1OTU2MjUxNjExIj4iSWtoYWRpIGxha2hvIGxlLVNJTSBsaXZhbHdlIG5nZS1QVUsuIFRoYXlpcGhhIGlraG9kaSB5ZS1QVUsgdWt1bGl2dWxhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Im5lZWRQdWsyIiBtc2dpZD0iNDUyNjAzMzM3MTk4NzE5MzA3MCI+IlRoYXlpcGhhIGktUFVLMiB1a3V6ZSB1dnVsZSBpa2hhZGkgbGUtU0lNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVuYWJsZVBpbiIgbXNnaWQ9IjIwOTQxMjAyMDkwNzIwNzk1MCI+IkFrdXBodW1lbGVsYW5nYSwgbmlrYSBhbWFuZGxhIHVraGl5ZSB3ZS1TSU0vUlVJTS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InBpbnB1a19hdHRlbXB0cyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjY1OTYyNDUyODU4MDk3OTAxNDIiPiJVbmVtaXphbW8gZW5ndS08eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gbmdhcGhhbWJpIGtva3ViYSBpLVNJTSBpa2hpeXdlLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNzUzMDU5NzgwODM1ODc3NDc0MCI+IlVuZW1pemFtbyBlbmd1LTx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBuZ2FwaGFtYmkga29rdWJhIGktU0lNIGlraGl5d2UuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgogICAgIDxzdHJpbmcgbmFtZT0iaW1laSIgbXNnaWQ9IjI2MjU0Mjk4OTA4NjkwMDU3ODIiPiJJTUVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibWVpZCIgbXNnaWQ9IjQ4NDEyMjEyMzc2ODEyNTQxOTUiPiJNRUlEIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iQ2xpcE1taSIgbXNnaWQ9IjY5NTI4MjEyMTY0ODAyODkyODUiPiJJLUlEIFlvY2luZ28gT2x1bmdlbmF5byI8L3N0cmluZz4KQEAgLTQ3Nyw2ICs0ODIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzU3VyZmFjZUZsaW5nZXIiIG1zZ2lkPSIxMDQxNjE5NTE2NzMzMjkzNTUxIj4iSXZ1bWVsYSB1aGxlbG8gbG9rdXNlYmVuemEgdWt1dGhpIGlzZWJlbnppc2Ugb2t1cXVrZXRod2UgaS1TdXJmYWNlRmxpbmdlciBva3VzZXppbmdlbmkgZWxpcGhhbnNpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNjY5MDUwNDI0ODE3ODQ5ODEzNiI+ImZ1bmRhIGlzaWtodW1idWxpIHNlc2lraGFzaGFuYSBzZW5kaWtpbWJhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIiBtc2dpZD0iNDkzNzQwNTUyMTgwOTQ1NDY4MCI+Ikl2dW1lbGEgdWhsZWxvIGxva3VzZWJlbnphIHVrdXRoaSBpZnVuZGUgb2t1cXVrZXRod2UgaWZyZXlpbXUgeWViaGFmYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2FjY2Vzc0lucHV0RmxpbmdlciIgbXNnaWQ9IjUzNDg2MzUyNzA2ODk1NTM4NTciPiJmaW55ZWxlbGEga3UtSW5wdXRGbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfYWNjZXNzSW5wdXRGbGluZ2VyIiBtc2dpZD0iMjEwNDg2NDk0MTIwMTIyNjYxNiI+Ikl2dW1lbGEgdWhsZWxvIGxva3VzZWJlbnphIHVrdXRoaSBsdXNlYmVuemlzZSBpemljaSB6ZXppbmdhIGVsaXBoYW5zaSB6ZS1JbnB1dEZsaW5nZXIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb25maWd1cmVXaWZpRGlzcGxheSIgbXNnaWQ9IjU1OTU2NjE2OTQ3NDY3NDIxNjgiPiJsdW5naXNhIHVrdWJ1a3dhIGt3ZS1XaS1GaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBlcm1kZXNjX2NvbmZpZ3VyZVdpZmlEaXNwbGF5IiBtc2dpZD0iNzkxNjgxNTE1ODY5MDIxODA2NSI+Ikl2dW1lbGEgdWhsZWxvIGxva3VzZWJlbnphIHVrdWx1bmdpc2Egbm9rdXhodW1hIGVrdWJ1a2lzd2VuaSBrd2UtV2ktRmkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWxhYl9jb250cm9sV2lmaURpc3BsYXkiIG1zZ2lkPSIzOTM2NDEyNzY3MjM2OTU0OTYiPiJsYXd1bGEgdWt1YnVrd2Ega3dlLVdpLUZpIjwvc3RyaW5nPgpAQCAtMTQxNCw2ICsxNDIxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IkJla2Ega3dlbnllIGluZGF3byI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkZha2EiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY3Rpdml0eWNob29zZXJ2aWV3X2Nob29zZV9hcHBsaWNhdGlvbiIgbXNnaWQ9IjIxMjUxNjgwNTcxOTk5NDExOTkiPiJLaGV0aGEgdWhsZWxvIGxva3VzZWJlbnphIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWN0aXZpdHljaG9vc2Vydmlld19jaG9vc2VfYXBwbGljYXRpb25fZXJyb3IiIG1zZ2lkPSI4NjI0NjE4MzY1NDgxMTI2NjY4Ij4iQXlpa3dhemFuZ2EgdWt1cWFsaXNhIGktPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OX05BTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNoYXJlYWN0aW9ucHJvdmlkZXJfc2hhcmVfd2l0aCIgbXNnaWQ9IjgwNjY4ODA1NjE0MTEzMTgxOSI+IllhYmVsYW5hIG5vIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVhY3Rpb25wcm92aWRlcl9zaGFyZV93aXRoX2FwcGxpY2F0aW9uIiBtc2dpZD0iNTYyNzQxMTM4NDYzODM4OTczOCI+IllhYmVsYW5hIG5vIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTl9OQU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb250ZW50X2Rlc2NyaXB0aW9uX3NsaWRpbmdfaGFuZGxlIiBtc2dpZD0iNDE1OTc1MDU2MTU5MjYyMjQ4Ij4iSWhhYW1iaXMgaXNpYmFtYm8uIFRoaW50YSAmYW1wOyB1YmFtYmUuIjwvc3RyaW5nPgpAQCAtMTY1MCw0ICsxNjU4LDE1IEBACiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RyX3Bpbl90cnlfbGF0ZXIiIG1zZ2lkPSI5NzMxNDQ0NzI0OTA1MzIzNzciPiJaYW1hIGZ1dGhpIGVtdmEga3dlc2lraGF0aGkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJpbW1lcnNpdmVfbW9kZV9jb25maXJtYXRpb24iIG1zZ2lkPSI3MjI3NDE2ODk0OTc5MDQ3NDY3Ij4iU3dheWlwaGVsYSBwaGFuc2kga3VzdWtlbGEgcGhlenVsdSB1a3V6ZSB1cGh1bWUga3VzaWtyaW5pIGVzaWdjd2VsZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2xhYmVsIiBtc2dpZD0iMjA5MzcyNjA5OTUwNTg5MjM5OCI+Ikt3ZW56aXdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI2Njk4MTk5MTg2ODU5NzM2NTEyIj4iQW1haG9yYSB3ZXNsYXlpZGkgZXNpeWluZGluZ2lsaXppIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWludXRlX3BpY2tlcl9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg2MDYwMTA5NjY4NzM3OTExOTAiPiJBbWFtaW5pdGhpIHdlc2xheWlkaSBlc2l5aW5kaW5naWxpemkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiIG1zZ2lkPSI2MDQzMDc5NTExNzY2MDA4MjQ1Ij4iS2hldGhhIGFtYWhvcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyIgbXNnaWQ9IjM5NzQzNDU2MTU5MjAzMzYwODciPiJLaGV0aGEgYW1hbWluaXRoaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9waWNrZXJfZGVzY3JpcHRpb24iIG1zZ2lkPSI4OTkwODQ3OTI1OTYxMjk3OTY4Ij4iSWdyaWRpIHllbnlhbmdhIHllemluc3VrdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTUyNDMzMTIwNzQzNjA1MjQwMyI+IlVobHUgbG9ueWFrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiIG1zZ2lkPSI3Nzc0NzU5NjA0NzAxNzczMzMyIj4iS2hldGhhIGlueWFuZ2Egbm9zdWt1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiIG1zZ2lkPSI3OTUyMDUyODY2OTk0MTk2MTcwIj4iS2hldGhhIHVueWFrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Iml0ZW1faXNfc2VsZWN0ZWQiIG1zZ2lkPSI5NDk2ODc0MDE2ODI0NzY2MDgiPiJJLTx4bGlmZjpnIGlkPSJJVEVNIj4lMSRzPC94bGlmZjpnPiBla2hldGhpd2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZWxldGVkX2tleSIgbXNnaWQ9Ijc2NTk0Nzc4ODY2MjU1NjY1OTAiPiJJLTx4bGlmZjpnIGlkPSJLRVkiPiUxJHM8L3hsaWZmOmc+IGlzdXNpd2UiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMvYXR0cnMueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy9hdHRycy54bWwKaW5kZXggNDJlM2I1MC4uMjhmNTc5NiAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy9hdHRycy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy9hdHRycy54bWwKQEAgLTQ0Nyw2ICs0NDcsMTUgQEAKICAgICAgICAgICAgICB0byB7QGxpbmsgYW5kcm9pZC52aWV3LldpbmRvd01hbmFnZXIuTGF5b3V0UGFyYW1zI0ZMQUdfVFJBTlNMVUNFTlRfTkFWSUdBVElPTn0uIC0tPgogICAgICAgICA8YXR0ciBuYW1lPSJ3aW5kb3dUcmFuc2x1Y2VudE5hdmlnYXRpb24iIGZvcm1hdD0iYm9vbGVhbiIgLz4KIAorICAgICAgICA8IS0tIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoaXMgd2luZG93IHJlcXVlc3RzIHRoYXQgY29udGVudCBjaGFuZ2VzIGJlIHBlcmZvcm1lZAorICAgICAgICAgICAgIGFzIHNjZW5lIGNoYW5nZXMgd2l0aCB0cmFuc2l0aW9ucy4gQ29ycmVzcG9uZHMgdG8KKyAgICAgICAgICAgICB7QGxpbmsgYW5kcm9pZC52aWV3LldpbmRvdyNGRUFUVVJFX0NPTlRFTlRfVFJBTlNJVElPTlN9LiAtLT4KKyAgICAgICAgPGF0dHIgbmFtZT0id2luZG93Q29udGVudFRyYW5zaXRpb25zIiBmb3JtYXQ9ImJvb2xlYW4iIC8+CisKKyAgICAgICAgPCEtLSBSZWZlcmVuY2UgdG8gYSBUcmFuc2l0aW9uTWFuYWdlciBYTUwgcmVzb3VyY2UgZGVmaW5pbmcgdGhlIGRlc2lyZWQKKyAgICAgICAgICAgICB0cmFuc2l0aW9ucyBiZXR3ZWVuIGRpZmZlcmVudCB3aW5kb3cgY29udGVudC4gLS0+CisgICAgICAgIDxhdHRyIG5hbWU9IndpbmRvd0NvbnRlbnRUcmFuc2l0aW9uTWFuYWdlciIgZm9ybWF0PSJyZWZlcmVuY2UiIC8+CisKICAgICAgICAgPCEtLSA9PT09PT09PT09PT0gLS0+CiAgICAgICAgIDwhLS0gQWxlcnQgRGlhbG9nIHN0eWxlcyAtLT4KICAgICAgICAgPCEtLSA9PT09PT09PT09PT0gLS0+CkBAIC02MDcsNiArNjE2LDggQEAKICAgICAgICAgPGF0dHIgbmFtZT0icG9wdXBNZW51U3R5bGUiIGZvcm1hdD0icmVmZXJlbmNlIiAvPgogICAgICAgICA8IS0tIERlZmF1bHQgU3RhY2tWaWV3IHN0eWxlLiAtLT4KICAgICAgICAgPGF0dHIgbmFtZT0ic3RhY2tWaWV3U3R5bGUiIGZvcm1hdD0icmVmZXJlbmNlIiAvPgorICAgICAgICA8IS0tIERlZmF1bHQgc3R5bGUgZm9yIHRoZSBGcmFnbWVudEJyZWFkQ3J1bWJzIHdpZGdldC4gLS0+CisgICAgICAgIDxhdHRyIG5hbWU9ImZyYWdtZW50QnJlYWRDcnVtYnNTdHlsZSIgZm9ybWF0PSJyZWZlcmVuY2UiIC8+CiAKICAgICAgICAgPCEtLSBOdW1iZXJQaWNrZXIgc3R5bGUuIC0tPgogICAgICAgICA8YXR0ciBuYW1lPSJudW1iZXJQaWNrZXJTdHlsZSIgZm9ybWF0PSJyZWZlcmVuY2UiIC8+CkBAIC02MTcsNiArNjI4LDE4IEBACiAgICAgICAgIDwhLS0gVGhlIFRpbWVQaWNrZXIgc3R5bGUuIC0tPgogICAgICAgICA8YXR0ciBuYW1lPSJ0aW1lUGlja2VyU3R5bGUiIGZvcm1hdD0icmVmZXJlbmNlIiAvPgogCisgICAgICAgIDwhLS0gVGhlIFRpbWVQaWNrZXIgSGVhZGVyIGJhY2tncm91bmQgY29sb3IgLiAtLT4KKyAgICAgICAgPGF0dHIgbmFtZT0idGltZVBpY2tlckhlYWRlckJhY2tncm91bmRDb2xvciIgZm9ybWF0PSJyZWZlcmVuY2UiIC8+CisKKyAgICAgICAgPCEtLSBUaGUgVGltZVBpY2tlciBIZWFkZXIgdGltZSBsYWJlbCB0ZXh0IGFwcGVhcmFuY2UgLS0+CisgICAgICAgIDxhdHRyIG5hbWU9InRpbWVQaWNrZXJIZWFkZXJUaW1lTGFiZWxUZXh0QXBwZWFyYW5jZSIgZm9ybWF0PSJyZWZlcmVuY2UiIC8+CisKKyAgICAgICAgPCEtLSBUaW1lUGlja2VyIEhlYWRlciBhbSBwbSBsYWJlbCB0ZXh0IGFwcGVhcmFuY2UgLS0+CisgICAgICAgIDxhdHRyIG5hbWU9InRpbWVQaWNrZXJIZWFkZXJBbVBtTGFiZWxUZXh0QXBwZWFyYW5jZSIgZm9ybWF0PSJyZWZlcmVuY2UiIC8+CisKKyAgICAgICAgPCEtLSBUaGUgVGltZVBpY2tlciBkaWFsb2cgdGhlbWUuIC0tPgorICAgICAgICA8YXR0ciBuYW1lPSJ0aW1lUGlja2VyRGlhbG9nVGhlbWUiIGZvcm1hdD0icmVmZXJlbmNlIiAvPgorCiAgICAgICAgIDwhLS0gVGhlIERhdGVQaWNrZXIgc3R5bGUuIC0tPgogICAgICAgICA8YXR0ciBuYW1lPSJkYXRlUGlja2VyU3R5bGUiIGZvcm1hdD0icmVmZXJlbmNlIiAvPgogCkBAIC0xNjA0LDYgKzE2MjcsOSBAQAogICAgICAgICA8YXR0ciBuYW1lPSJ3aW5kb3dDbG9zZU9uVG91Y2hPdXRzaWRlIiAvPgogICAgICAgICA8YXR0ciBuYW1lPSJ3aW5kb3dUcmFuc2x1Y2VudFN0YXR1cyIgLz4KICAgICAgICAgPGF0dHIgbmFtZT0id2luZG93VHJhbnNsdWNlbnROYXZpZ2F0aW9uIiAvPgorICAgICAgICA8YXR0ciBuYW1lPSJ3aW5kb3dDb250ZW50VHJhbnNpdGlvbnMiIC8+CisgICAgICAgIDxhdHRyIG5hbWU9IndpbmRvd0NvbnRlbnRUcmFuc2l0aW9uTWFuYWdlciIgLz4KKwogICAgICAgICA8IS0tIFRoZSBtaW5pbXVtIHdpZHRoIHRoZSB3aW5kb3cgaXMgYWxsb3dlZCB0byBiZSwgYWxvbmcgdGhlIG1ham9yCiAgICAgICAgICAgICAgYXhpcyBvZiB0aGUgc2NyZWVuLiAgVGhhdCBpcywgd2hlbiBpbiBsYW5kc2NhcGUuICBDYW4gYmUgZWl0aGVyCiAgICAgICAgICAgICAgYW4gYWJzb2x1dGUgZGltZW5zaW9uIG9yIGEgZnJhY3Rpb24gb2YgdGhlIHNjcmVlbiBzaXplIGluIHRoYXQKQEAgLTI3MjUsNiArMjc1MSw4IEBACiAgICAgICAgIDwhLS0gRW5hYmxlcyB0aGUgZmFzdCBzY3JvbGwgdGh1bWIgdGhhdCBjYW4gYmUgZHJhZ2dlZCB0byBxdWlja2x5IHNjcm9sbCB0aHJvdWdoCiAgICAgICAgICAgICAgdGhlIGxpc3QuIC0tPgogICAgICAgICA8YXR0ciBuYW1lPSJmYXN0U2Nyb2xsRW5hYmxlZCIgZm9ybWF0PSJib29sZWFuIiAvPgorICAgICAgICA8IS0tIFNwZWNpZmllcyB0aGUgc3R5bGUgb2YgdGhlIGZhc3Qgc2Nyb2xsIGRlY29yYXRpb25zLiAtLT4KKyAgICAgICAgPGF0dHIgbmFtZT0iZmFzdFNjcm9sbFN0eWxlIiBmb3JtYXQ9InJlZmVyZW5jZSIgLz4KICAgICAgICAgPCEtLSBXaGVuIHNldCB0byB0cnVlLCB0aGUgbGlzdCB3aWxsIHVzZSBhIG1vcmUgcmVmaW5lZCBjYWxjdWxhdGlvbgogICAgICAgICAgICAgIG1ldGhvZCBiYXNlZCBvbiB0aGUgcGl4ZWxzIGhlaWdodCBvZiB0aGUgaXRlbXMgdmlzaWJsZSBvbiBzY3JlZW4uIFRoaXMKICAgICAgICAgICAgICBwcm9wZXJ0eSBpcyBzZXQgdG8gdHJ1ZSBieSBkZWZhdWx0IGJ1dCBzaG91bGQgYmUgc2V0IHRvIGZhbHNlIGlmIHlvdXIgYWRhcHRlcgpAQCAtMjc5Myw2ICsyODIxLDM2IEBACiAgICAgPC9kZWNsYXJlLXN0eWxlYWJsZT4KICAgICA8ZGVjbGFyZS1zdHlsZWFibGUgbmFtZT0iRWRpdFRleHQiPgogICAgIDwvZGVjbGFyZS1zdHlsZWFibGU+CisgICAgPGRlY2xhcmUtc3R5bGVhYmxlIG5hbWU9IkZhc3RTY3JvbGwiPgorICAgICAgICA8IS0tIERyYXdhYmxlIHVzZWQgZm9yIHRoZSBzY3JvbGwgYmFyIHRodW1iLiAtLT4KKyAgICAgICAgPGF0dHIgbmFtZT0idGh1bWJEcmF3YWJsZSIgZm9ybWF0PSJyZWZlcmVuY2UiIC8+CisgICAgICAgIDwhLS0gTWluaW11bSB3aWR0aCBvZiB0aGUgdGh1bWIuIC0tPgorICAgICAgICA8YXR0ciBuYW1lPSJ0aHVtYk1pbldpZHRoIiBmb3JtYXQ9ImRpbWVuc2lvbiIgLz4KKyAgICAgICAgPCEtLSBNaW5pbXVtIGhlaWdodCBvZiB0aGUgdGh1bWIuIC0tPgorICAgICAgICA8YXR0ciBuYW1lPSJ0aHVtYk1pbkhlaWdodCIgZm9ybWF0PSJkaW1lbnNpb24iIC8+CisgICAgICAgIDwhLS0gRHJhd2FibGUgdXNlZCBmb3IgdGhlIHNjcm9sbCBiYXIgdHJhY2suIC0tPgorICAgICAgICA8YXR0ciBuYW1lPSJ0cmFja0RyYXdhYmxlIiBmb3JtYXQ9InJlZmVyZW5jZSIgLz4KKyAgICAgICAgPCEtLSBEcmF3YWJsZSB1c2VkIGZvciB0aGUgc2VjdGlvbiBoZWFkZXIgcHJldmlldyB3aGVuIHJpZ2h0LWFsaWduZWQuIC0tPgorICAgICAgICA8YXR0ciBuYW1lPSJiYWNrZ3JvdW5kUmlnaHQiIGZvcm1hdD0icmVmZXJlbmNlIiAvPgorICAgICAgICA8IS0tIERyYXdhYmxlIHVzZWQgZm9yIHRoZSBzZWN0aW9uIGhlYWRlciBwcmV2aWV3IHdoZW4gbGVmdC1hbGlnbmVkLiAtLT4KKyAgICAgICAgPGF0dHIgbmFtZT0iYmFja2dyb3VuZExlZnQiIGZvcm1hdD0icmVmZXJlbmNlIiAvPgorICAgICAgICA8IS0tIFBvc2l0aW9uIG9mIHNlY3Rpb24gaGVhZGVyIHByZXZpZXcuIC0tPgorICAgICAgICA8YXR0ciBuYW1lPSJwb3NpdGlvbiI+CisgICAgICAgICAgICA8IS0tIEZsb2F0aW5nIGF0IHRoZSB0b3Agb2YgdGhlIGNvbnRlbnQuIC0tPgorICAgICAgICAgICAgPGVudW0gbmFtZT0iZmxvYXRpbmciIHZhbHVlPSIwIiAvPgorICAgICAgICAgICAgPCEtLSBQaW5uZWQgYWxvbmdzaWRlIHRoZSB0aHVtYi4gLS0+CisgICAgICAgICAgICA8ZW51bSBuYW1lPSJhdFRodW1iIiB2YWx1ZT0iMSIgLz4KKyAgICAgICAgPC9hdHRyPgorICAgICAgICA8YXR0ciBuYW1lPSJ0ZXh0QXBwZWFyYW5jZSIgLz4KKyAgICAgICAgPGF0dHIgbmFtZT0idGV4dENvbG9yIiAvPgorICAgICAgICA8YXR0ciBuYW1lPSJ0ZXh0U2l6ZSIgLz4KKyAgICAgICAgPCEtLSBNaW5pbXVtIHdpZHRoIG9mIHRoZSBzZWN0aW9uIGhlYWRlciBwcmV2aWV3LiAtLT4KKyAgICAgICAgPGF0dHIgbmFtZT0ibWluV2lkdGgiIC8+CisgICAgICAgIDwhLS0gTWluaW11bSBoZWlnaHQgb2YgdGhlIHNlY3Rpb24gaGVhZGVyIHByZXZpZXcuIC0tPgorICAgICAgICA8YXR0ciBuYW1lPSJtaW5IZWlnaHQiIC8+CisgICAgICAgIDwhLS0gUGFkZGluZyBmb3IgdGhlIHNlY3Rpb24gaGVhZGVyIHByZXZpZXcuIC0tPgorICAgICAgICA8YXR0ciBuYW1lPSJwYWRkaW5nIiAvPgorICAgIDwvZGVjbGFyZS1zdHlsZWFibGU+CiAgICAgPGRlY2xhcmUtc3R5bGVhYmxlIG5hbWU9IkZyYW1lTGF5b3V0Ij4KICAgICAgICAgPCEtLSBEZWZpbmVzIHRoZSBkcmF3YWJsZSB0byBkcmF3IG92ZXIgdGhlIGNvbnRlbnQuIFRoaXMgY2FuIGJlIHVzZWQgYXMgYW4gb3ZlcmxheS4KICAgICAgICAgICAgICBUaGUgZm9yZWdyb3VuZCBkcmF3YWJsZSBwYXJ0aWNpcGF0ZXMgaW4gdGhlIHBhZGRpbmcgb2YgdGhlIGNvbnRlbnQgaWYgdGhlIGdyYXZpdHkKQEAgLTM5NTgsNiArNDAxNiwzMCBAQAogICAgIDxkZWNsYXJlLXN0eWxlYWJsZSBuYW1lPSJUaW1lUGlja2VyIj4KICAgICAgICAgPCEtLSBAaGlkZSBUaGUgbGF5b3V0IG9mIHRoZSB0aW1lIHBpY2tlci4gLS0+CiAgICAgICAgIDxhdHRyIG5hbWU9ImludGVybmFsTGF5b3V0IiAvPgorICAgICAgICA8IS0tIEBoaWRlIFRoZSBsYXlvdXQgb2YgdGhlIGxlZ2FjeSB0aW1lIHBpY2tlci4gLS0+CisgICAgICAgIDxhdHRyIG5hbWU9ImxlZ2FjeUxheW91dCIgZm9ybWF0PSJyZWZlcmVuY2UiIC8+CisgICAgICAgIDwhLS0gQGhpZGUgRW5hYmxlcyBvciBkaXNhYmxlIHRoZSB1c2Ugb2YgdGhlIGxlZ2FjeSBsYXlvdXQgZm9yIHRoZSBUaW1lUGlja2VyLiAtLT4KKyAgICAgICAgPGF0dHIgbmFtZT0ibGVnYWN5TW9kZSIgZm9ybWF0PSJib29sZWFuIiAvPgorICAgICAgICA8IS0tIEBoaWRlIFRoZSBjb2xvciB3aGVuIHRoZSBub24gbGVnYWN5IFRpbWVQaWNrZXIgaXMgZGlzYWJsZWQuIC0tPgorICAgICAgICA8YXR0ciBuYW1lPSJkaXNhYmxlZENvbG9yIiBmb3JtYXQ9ImNvbG9yfHJlZmVyZW5jZSIgLz4KKyAgICAgICAgPCEtLSBAaGlkZSBUaGUgY29sb3IgZm9yIHNlbGVjdGVkIHRleHQgb2YgdGhlIG5vbiBsZWdhY3kgVGltZVBpY2tlci4gLS0+CisgICAgICAgIDxhdHRyIG5hbWU9ImhlYWRlclNlbGVjdGVkVGV4dENvbG9yIiBmb3JtYXQ9ImNvbG9yfHJlZmVyZW5jZSIgLz4KKyAgICAgICAgPCEtLSBAaGlkZSBUaGUgY29sb3IgZm9yIHVuc2VsZWN0ZWQgdGV4dCBvZiB0aGUgbm9uIGxlZ2FjeSBUaW1lUGlja2VyLiAtLT4KKyAgICAgICAgPGF0dHIgbmFtZT0iaGVhZGVyVW5zZWxlY3RlZFRleHRDb2xvciIgZm9ybWF0PSJjb2xvcnxyZWZlcmVuY2UiIC8+CisgICAgICAgIDwhLS0gQGhpZGUgVGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBoZWFkZXIgb2YgdGhlIG5vbiBsZWdhY3kgVGltZVBpY2tlci4gLS0+CisgICAgICAgIDxhdHRyIG5hbWU9ImhlYWRlckJhY2tncm91bmRDb2xvciIgZm9ybWF0PSJjb2xvcnxyZWZlcmVuY2UiIC8+CisgICAgICAgIDwhLS0gQGhpZGUgVGhlIGNvbG9yIGZvciB0aGUgaG91cnMvbWludXRlcyBudW1iZXJzIG9mIHRoZSBub24gbGVnYWN5IFRpbWVQaWNrZXIuIC0tPgorICAgICAgICA8YXR0ciBuYW1lPSJudW1iZXJzVGV4dENvbG9yIiBmb3JtYXQ9ImNvbG9yfHJlZmVyZW5jZSIgLz4KKyAgICAgICAgPCEtLSBAaGlkZSBUaGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGhvdXJzL21pbnV0ZXMgbnVtYmVycyBvZiB0aGUgbm9uIGxlZ2FjeSBUaW1lUGlja2VyLiAtLT4KKyAgICAgICAgPGF0dHIgbmFtZT0ibnVtYmVyc0JhY2tncm91bmRDb2xvciIgZm9ybWF0PSJjb2xvcnxyZWZlcmVuY2UiIC8+CisgICAgICAgIDwhLS0gQGhpZGUgVGhlIGNvbG9yIGZvciB0aGUgQU0vUE0gc2VsZWN0b3JzIG9mIHRoZSBub24gbGVnYWN5IFRpbWVQaWNrZXIuIC0tPgorICAgICAgICA8YXR0ciBuYW1lPSJhbVBtVGV4dENvbG9yIiBmb3JtYXQ9ImNvbG9yfHJlZmVyZW5jZSIgLz4KKyAgICAgICAgPCEtLSBAaGlkZSBUaGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIEFNL1BNIHNlbGVjdG9ycyBvZiB0aGUgbm9uIGxlZ2FjeSBUaW1lUGlja2VyIHdoZW4gdW5zZWxlY3RlZC4gLS0+CisgICAgICAgIDxhdHRyIG5hbWU9ImFtUG1VbnNlbGVjdGVkQmFja2dyb3VuZENvbG9yIiBmb3JtYXQ9ImNvbG9yfHJlZmVyZW5jZSIgLz4KKyAgICAgICAgPCEtLSBAaGlkZSBUaGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIEFNL1BNIHNlbGVjdG9ycyBvZiB0aGUgbm9uIGxlZ2FjeSBUaW1lUGlja2VyIHdoZW4gc2VsZWN0ZWQuIC0tPgorICAgICAgICA8YXR0ciBuYW1lPSJhbVBtU2VsZWN0ZWRCYWNrZ3JvdW5kQ29sb3IiIGZvcm1hdD0iY29sb3J8cmVmZXJlbmNlIiAvPgorICAgICAgICA8IS0tIEBoaWRlIFRoZSBjb2xvciBmb3IgdGhlIGhvdXJzL21pbnV0ZXMgc2VsZWN0b3Igb2YgdGhlIG5vbiBsZWdhY3kgVGltZVBpY2tlci4gLS0+CisgICAgICAgIDxhdHRyIG5hbWU9Im51bWJlcnNTZWxlY3RvckNvbG9yIiBmb3JtYXQ9ImNvbG9yfHJlZmVyZW5jZSIgLz4KICAgICA8L2RlY2xhcmUtc3R5bGVhYmxlPgogCiAgICAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgpAQCAtNDYwNSw2ICs0Njg3LDE0IEBACiAgICAgICAgIDxhdHRyIG5hbWU9ImZyb21TY2VuZSIgZm9ybWF0PSJyZWZlcmVuY2UiIC8+CiAgICAgICAgIDwhLS0gVGhlIGRlc3RpbmF0aW9uIHNjZW5lIGluIHRoaXMgc2NlbmUgY2hhbmdlLiAtLT4KICAgICAgICAgPGF0dHIgbmFtZT0idG9TY2VuZSIgZm9ybWF0PSJyZWZlcmVuY2UiIC8+CisgICAgICAgIDwhLS0gVGhlIG5hbWUgb2YgdGhlIG9yaWdpbmF0aW5nIHNjZW5lIGluIHRoaXMgc2NlbmUgY2hhbmdlLgorICAgICAgICAgICAgIEFwcHMgc2hvdWxkIHRyZWF0IHRoaXMgbmFtZSBhcyBhbiBBUEkgaW4gdGhlIHNhbWUgc2Vuc2UKKyAgICAgICAgICAgICB0aGF0IGFuIEludGVudCBhY3Rpb24gb3IgZXh0cmEga2V5IGlzLiAtLT4KKyAgICAgICAgPGF0dHIgbmFtZT0iZnJvbVNjZW5lTmFtZSIgZm9ybWF0PSJzdHJpbmciIC8+CisgICAgICAgIDwhLS0gVGhlIG5hbWUgb2YgdGhlIGRlc3RpbmF0aW9uIHNjZW5lIGluIHRoaXMgc2NlbmUgY2hhbmdlLgorICAgICAgICAgICAgIEFwcHMgc2hvdWxkIHRyZWF0IHRoaXMgbmFtZSBhcyBhbiBBUEkgaW4gdGhlIHNhbWUgc2Vuc2UKKyAgICAgICAgICAgICB0aGF0IGFuIEludGVudCBhY3Rpb24gb3IgZXh0cmEga2V5IGlzLiAtLT4KKyAgICAgICAgPGF0dHIgbmFtZT0idG9TY2VuZU5hbWUiIGZvcm1hdD0ic3RyaW5nIiAvPgogICAgIDwvZGVjbGFyZS1zdHlsZWFibGU+CiAKICAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy9jb2xvcnMueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy9jb2xvcnMueG1sCmluZGV4IDI4ZTdhZjcuLjdjZDI1ODIgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMvY29sb3JzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzL2NvbG9ycy54bWwKQEAgLTIwMiw1ICsyMDIsMjIgQEAKICAgICA8Y29sb3IgbmFtZT0ia2V5Z3VhcmRfYXZhdGFyX2ZyYW1lX3ByZXNzZWRfY29sb3IiPiNmZjM1YjVlNTwvY29sb3I+CiAKICAgICA8Y29sb3IgbmFtZT0iYWNjZXNzaWJpbGl0eV9mb2N1c19oaWdobGlnaHQiPiM4MGZmZmYwMDwvY29sb3I+CisKKyAgICA8IS0tIE5ldyBUaW1lUGlja2VyIGNvbG9ycyAtLT4KKyAgICA8Y29sb3IgbmFtZT0idGltZXBpY2tlcl9kZWZhdWx0X2JhY2tncm91bmRfaG9sb19saWdodCI+QGFuZHJvaWQ6Y29sb3Ivd2hpdGU8L2NvbG9yPgorICAgIDxjb2xvciBuYW1lPSJ0aW1lcGlja2VyX2RlZmF1bHRfYmFja2dyb3VuZF9ob2xvX2RhcmsiPiNmZjMwMzAzMDwvY29sb3I+CisKKyAgICA8Y29sb3IgbmFtZT0idGltZXBpY2tlcl9kZWZhdWx0X3RleHRfY29sb3JfaG9sb19saWdodCI+IzhjOGM4YzwvY29sb3I+CisgICAgPGNvbG9yIG5hbWU9InRpbWVwaWNrZXJfZGVmYXVsdF90ZXh0X2NvbG9yX2hvbG9fZGFyayI+QGFuZHJvaWQ6Y29sb3Ivd2hpdGU8L2NvbG9yPgorCisgICAgPGNvbG9yIG5hbWU9InRpbWVwaWNrZXJfZGVmYXVsdF9kaXNhYmxlZF9jb2xvcl9ob2xvX2xpZ2h0Ij4jN2YwMDAwMDA8L2NvbG9yPgorICAgIDxjb2xvciBuYW1lPSJ0aW1lcGlja2VyX2RlZmF1bHRfZGlzYWJsZWRfY29sb3JfaG9sb19kYXJrIj4jN2YwOGM4Yzg8L2NvbG9yPgorCisgICAgPGNvbG9yIG5hbWU9InRpbWVwaWNrZXJfZGVmYXVsdF9hbXBtX3NlbGVjdGVkX2JhY2tncm91bmRfY29sb3JfaG9sb19saWdodCI+QGFuZHJvaWQ6Y29sb3IvaG9sb19ibHVlX2xpZ2h0PC9jb2xvcj4KKyAgICA8Y29sb3IgbmFtZT0idGltZXBpY2tlcl9kZWZhdWx0X2FtcG1fc2VsZWN0ZWRfYmFja2dyb3VuZF9jb2xvcl9ob2xvX2RhcmsiPkBhbmRyb2lkOmNvbG9yL2hvbG9fYmx1ZV9saWdodDwvY29sb3I+CisKKyAgICA8Y29sb3IgbmFtZT0idGltZXBpY2tlcl9kZWZhdWx0X2FtcG1fdW5zZWxlY3RlZF9iYWNrZ3JvdW5kX2NvbG9yX2hvbG9fbGlnaHQiPkBhbmRyb2lkOmNvbG9yL3doaXRlPC9jb2xvcj4KKyAgICA8Y29sb3IgbmFtZT0idGltZXBpY2tlcl9kZWZhdWx0X2FtcG1fdW5zZWxlY3RlZF9iYWNrZ3JvdW5kX2NvbG9yX2hvbG9fZGFyayI+QGFuZHJvaWQ6Y29sb3IvdHJhbnNwYXJlbnQ8L2NvbG9yPgorCiA8L3Jlc291cmNlcz4KIApkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy9jb25maWcueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy9jb25maWcueG1sCmluZGV4IDE4Y2Y1N2QuLmVlNDE4NGYgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMvY29uZmlnLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzL2NvbmZpZy54bWwKQEAgLTUwOCw2ICs1MDgsMTIgQEAKICAgICAgICAgPGl0ZW0+NDA8L2l0ZW0+CiAgICAgPC9pbnRlZ2VyLWFycmF5PgogCisgICAgPCEtLSBWaWJyYXRvciBwYXR0ZXJuIGZvciBmZWVkYmFjayB3aGVuIHNlbGVjdGluZyBhbiBob3VyL21pbnV0ZSB0aWNrIG9mIGEgQ2xvY2sgLS0+CisgICAgPGludGVnZXItYXJyYXkgbmFtZT0iY29uZmlnX2Nsb2NrVGlja1ZpYmVQYXR0ZXJuIj4KKyAgICAgICAgPGl0ZW0+MTI1PC9pdGVtPgorICAgICAgICA8aXRlbT41PC9pdGVtPgorICAgIDwvaW50ZWdlci1hcnJheT4KKwogICAgIDwhLS0gVmlicmF0b3IgcGF0dGVybiBmb3IgZmVlZGJhY2sgYWJvdXQgYm9vdGluZyB3aXRoIHNhZmUgbW9kZSBkaXNhYmxlZCAtLT4KICAgICA8aW50ZWdlci1hcnJheSBuYW1lPSJjb25maWdfc2FmZU1vZGVEaXNhYmxlZFZpYmVQYXR0ZXJuIj4KICAgICAgICAgPGl0ZW0+MDwvaXRlbT4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMvZGltZW5zLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMvZGltZW5zLnhtbAppbmRleCBmOTYxOTVjLi5jNmQyOTQ3IDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzL2RpbWVucy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy9kaW1lbnMueG1sCkBAIC01MCwxNiArNTAsNiBAQAogICAgIDwhLS0gTWFyZ2luIGF0IHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4gdG8gaWdub3JlIHRvdWNoIGV2ZW50cyBmb3IgaW4gdGhlIHdpbmRvd3NoYWRlLiAtLT4KICAgICA8ZGltZW4gbmFtZT0ic3RhdHVzX2Jhcl9lZGdlX2lnbm9yZSI+NWRwPC9kaW1lbj4KIAotICAgIDwhLS0gTWluaW11bSBzaXplIG9mIHRoZSBmYXN0c2Nyb2xsIG92ZXJsYXkgLS0+Ci0gICAgPGRpbWVuIG5hbWU9ImZhc3RzY3JvbGxfb3ZlcmxheV9zaXplIj4xMDRkcDwvZGltZW4+Ci0gICAgPCEtLSBUZXh0IHNpemUgb2YgdGhlIGZhc3RzY3JvbGwgb3ZlcmxheSAtLT4KLSAgICA8ZGltZW4gbmFtZT0iZmFzdHNjcm9sbF9vdmVybGF5X3RleHRfc2l6ZSI+NTJzcDwvZGltZW4+Ci0gICAgPCEtLSBQYWRkaW5nIG9mIHRoZSBmYXN0c2Nyb2xsIG92ZXJsYXkgLS0+Ci0gICAgPGRpbWVuIG5hbWU9ImZhc3RzY3JvbGxfb3ZlcmxheV9wYWRkaW5nIj4xNmRwPC9kaW1lbj4KLSAgICA8IS0tIFdpZHRoIG9mIHRoZSBmYXN0c2Nyb2xsIHRodW1iIC0tPgotICAgIDxkaW1lbiBuYW1lPSJmYXN0c2Nyb2xsX3RodW1iX3dpZHRoIj42NGRwPC9kaW1lbj4KLSAgICA8IS0tIEhlaWdodCBvZiB0aGUgZmFzdHNjcm9sbCB0aHVtYiAtLT4KLSAgICA8ZGltZW4gbmFtZT0iZmFzdHNjcm9sbF90aHVtYl9oZWlnaHQiPjUyZHA8L2RpbWVuPgogICAgIDwhLS0gTWluIHdpZHRoIGZvciBhIHRhYmxldCBkZXZpY2UgLS0+CiAgICAgPGRpbWVuIG5hbWU9Im1pbl94bGFyZ2Vfc2NyZWVuX3dpZHRoIj44MDBkcDwvZGltZW4+CiAKQEAgLTM1Niw2ICszNDYsMzIgQEAKICAgICA8IS0tIE91dGxpbmUgd2lkdGggZm9yIHZpZGVvIHN1YnRpdGxlcy4gLS0+CiAgICAgPGRpbWVuIG5hbWU9InN1YnRpdGxlX291dGxpbmVfd2lkdGgiPjJkcDwvZGltZW4+CiAKKyAgICA8IS0tIE5ldyBUaW1lUGlja2VyIGRpbWVuc2lvbnMuIC0tPgorICAgIDxpdGVtIG5hbWU9InRpbWVwaWNrZXJfY2lyY2xlX3JhZGl1c19tdWx0aXBsaWVyIiBmb3JtYXQ9ImZsb2F0IiB0eXBlPSJzdHJpbmciPjAuODI8L2l0ZW0+CisgICAgPGl0ZW0gbmFtZT0idGltZXBpY2tlcl9jaXJjbGVfcmFkaXVzX211bHRpcGxpZXJfMjRIb3VyTW9kZSIgZm9ybWF0PSJmbG9hdCIgdHlwZT0ic3RyaW5nIj4wLjg1PC9pdGVtPgorICAgIDxpdGVtIG5hbWU9InRpbWVwaWNrZXJfc2VsZWN0aW9uX3JhZGl1c19tdWx0aXBsaWVyIiBmb3JtYXQ9ImZsb2F0IiB0eXBlPSJzdHJpbmciPjAuMTY8L2l0ZW0+CisgICAgPGl0ZW0gbmFtZT0idGltZXBpY2tlcl9hbXBtX2NpcmNsZV9yYWRpdXNfbXVsdGlwbGllciIgZm9ybWF0PSJmbG9hdCIgdHlwZT0ic3RyaW5nIj4wLjE5PC9pdGVtPgorICAgIDxpdGVtIG5hbWU9InRpbWVwaWNrZXJfbnVtYmVyc19yYWRpdXNfbXVsdGlwbGllcl9ub3JtYWwiIGZvcm1hdD0iZmxvYXQiIHR5cGU9InN0cmluZyI+MC44MTwvaXRlbT4KKyAgICA8aXRlbSBuYW1lPSJ0aW1lcGlja2VyX251bWJlcnNfcmFkaXVzX211bHRpcGxpZXJfaW5uZXIiIGZvcm1hdD0iZmxvYXQiIHR5cGU9InN0cmluZyI+MC42MDwvaXRlbT4KKyAgICA8aXRlbSBuYW1lPSJ0aW1lcGlja2VyX251bWJlcnNfcmFkaXVzX211bHRpcGxpZXJfb3V0ZXIiIGZvcm1hdD0iZmxvYXQiIHR5cGU9InN0cmluZyI+MC44MzwvaXRlbT4KKyAgICA8aXRlbSBuYW1lPSJ0aW1lcGlja2VyX3RleHRfc2l6ZV9tdWx0aXBsaWVyX25vcm1hbCIgZm9ybWF0PSJmbG9hdCIgdHlwZT0ic3RyaW5nIj4wLjE3PC9pdGVtPgorICAgIDxpdGVtIG5hbWU9InRpbWVwaWNrZXJfdGV4dF9zaXplX211bHRpcGxpZXJfaW5uZXIiIGZvcm1hdD0iZmxvYXQiIHR5cGU9InN0cmluZyI+MC4xNDwvaXRlbT4KKyAgICA8aXRlbSBuYW1lPSJ0aW1lcGlja2VyX3RleHRfc2l6ZV9tdWx0aXBsaWVyX291dGVyIiBmb3JtYXQ9ImZsb2F0IiB0eXBlPSJzdHJpbmciPjAuMTE8L2l0ZW0+CisgICAgPGl0ZW0gbmFtZT0idGltZXBpY2tlcl90cmFuc2l0aW9uX21pZF9yYWRpdXNfbXVsdGlwbGllciIgZm9ybWF0PSJmbG9hdCIgdHlwZT0ic3RyaW5nIj4wLjk1PC9pdGVtPgorICAgIDxpdGVtIG5hbWU9InRpbWVwaWNrZXJfdHJhbnNpdGlvbl9lbmRfcmFkaXVzX211bHRpcGxpZXIiIGZvcm1hdD0iZmxvYXQiIHR5cGU9InN0cmluZyI+MS4zPC9pdGVtPgorCisgICAgPGRpbWVuIG5hbWU9InRpbWVwaWNrZXJfdGltZV9sYWJlbF9zaXplIj42MHNwPC9kaW1lbj4KKyAgICA8ZGltZW4gbmFtZT0idGltZXBpY2tlcl9leHRyYV90aW1lX2xhYmVsX21hcmdpbiI+LTMwZHA8L2RpbWVuPgorICAgIDxkaW1lbiBuYW1lPSJ0aW1lcGlja2VyX2FtcG1fbGFiZWxfc2l6ZSI+MTZzcDwvZGltZW4+CisgICAgPGRpbWVuIG5hbWU9InRpbWVwaWNrZXJfZG9uZV9sYWJlbF9zaXplIj4xNHNwPC9kaW1lbj4KKyAgICA8ZGltZW4gbmFtZT0idGltZXBpY2tlcl9hbXBtX2xlZnRfcGFkZGluZyI+NmRpcDwvZGltZW4+CisgICAgPGRpbWVuIG5hbWU9InRpbWVwaWNrZXJfc2VwYXJhdG9yX3BhZGRpbmciPjRkaXA8L2RpbWVuPgorICAgIDxkaW1lbiBuYW1lPSJ0aW1lcGlja2VyX2hlYWRlcl9oZWlnaHQiPjk2ZGlwPC9kaW1lbj4KKyAgICA8ZGltZW4gbmFtZT0idGltZXBpY2tlcl9taW5pbXVtX21hcmdpbl9zaWRlcyI+NDhkaXA8L2RpbWVuPgorICAgIDxkaW1lbiBuYW1lPSJ0aW1lcGlja2VyX21pbmltdW1fbWFyZ2luX3RvcF9ib3R0b20iPjI0ZGlwPC9kaW1lbj4KKyAgICA8ZGltZW4gbmFtZT0idGltZXBpY2tlcl9yYWRpYWxfcGlja2VyX2RpbWVuIj4yNzBkaXA8L2RpbWVuPgorCiAgICAgPCEtLSB3aWR0aCBvZiBJbW1lcnNpdmVNb2RlQ29uZmlybWF0aW9uICgtMSBmb3IgbWF0Y2hfcGFyZW50KSAtLT4KICAgICA8ZGltZW4gbmFtZT0iaW1tZXJzaXZlX21vZGVfY2xpbmdfd2lkdGgiPi0xcHg8L2RpbWVuPgorCiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMvcHVibGljLnhtbCBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMvcHVibGljLnhtbAppbmRleCA4MTg3OTM5Li4wOTA3MDJkIDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzL3B1YmxpYy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy9wdWJsaWMueG1sCkBAIC0yMDg3LDQgKzIwODcsMjYgQEAKICAgPHB1YmxpYyB0eXBlPSJzdHlsZSIgbmFtZT0iVGhlbWUuRGV2aWNlRGVmYXVsdC5Ob0FjdGlvbkJhci5UcmFuc2x1Y2VudERlY29yIiBpZD0iMHgwMTAzMDFlMyIgLz4KICAgPHB1YmxpYyB0eXBlPSJzdHlsZSIgbmFtZT0iVGhlbWUuRGV2aWNlRGVmYXVsdC5MaWdodC5Ob0FjdGlvbkJhci5UcmFuc2x1Y2VudERlY29yIiBpZD0iMHgwMTAzMDFlNCIgLz4KIAorPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAgUmVzb3VyY2VzIGFkZGVkIGluIHZlcnNpb24gMjAgb2YgdGhlIHBsYXRmb3JtCisgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKyAgPGVhdC1jb21tZW50IC8+CisKKyAgPHB1YmxpYyB0eXBlPSJhdHRyIiBuYW1lPSJmcmFnbWVudEJyZWFkQ3J1bWJzU3R5bGUiIC8+CisgIDxwdWJsaWMgdHlwZT0iYXR0ciIgbmFtZT0iZmFzdFNjcm9sbFN0eWxlIiAvPgorICA8cHVibGljIHR5cGU9ImF0dHIiIG5hbWU9IndpbmRvd0NvbnRlbnRUcmFuc2l0aW9ucyIgLz4KKyAgPHB1YmxpYyB0eXBlPSJhdHRyIiBuYW1lPSJ3aW5kb3dDb250ZW50VHJhbnNpdGlvbk1hbmFnZXIiIC8+CisKKyAgPHB1YmxpYyB0eXBlPSJzdHlsZSIgbmFtZT0iV2lkZ2V0LkhvbG8uRnJhZ21lbnRCcmVhZENydW1icyIgLz4KKyAgPHB1YmxpYyB0eXBlPSJzdHlsZSIgbmFtZT0iV2lkZ2V0LkhvbG8uTGlnaHQuRnJhZ21lbnRCcmVhZENydW1icyIgLz4KKyAgPHB1YmxpYyB0eXBlPSJzdHlsZSIgbmFtZT0iV2lkZ2V0LkRldmljZURlZmF1bHQuRnJhZ21lbnRCcmVhZENydW1icyIgLz4KKyAgPHB1YmxpYyB0eXBlPSJzdHlsZSIgbmFtZT0iV2lkZ2V0LkRldmljZURlZmF1bHQuTGlnaHQuRnJhZ21lbnRCcmVhZENydW1icyIgLz4KKyAgPHB1YmxpYyB0eXBlPSJzdHlsZSIgbmFtZT0iV2lkZ2V0LkZhc3RTY3JvbGwiIC8+CisgIDxwdWJsaWMgdHlwZT0ic3R5bGUiIG5hbWU9IldpZGdldC5Ib2xvLkZhc3RTY3JvbGwiIC8+CisgIDxwdWJsaWMgdHlwZT0ic3R5bGUiIG5hbWU9IldpZGdldC5Ib2xvLkxpZ2h0LkZhc3RTY3JvbGwiIC8+CisgIDxwdWJsaWMgdHlwZT0ic3R5bGUiIG5hbWU9IldpZGdldC5EZXZpY2VEZWZhdWx0LkZhc3RTY3JvbGwiIC8+CisgIDxwdWJsaWMgdHlwZT0ic3R5bGUiIG5hbWU9IldpZGdldC5EZXZpY2VEZWZhdWx0LkxpZ2h0LkZhc3RTY3JvbGwiIC8+CisKKyAgPHB1YmxpYyB0eXBlPSJzdHlsZSIgbmFtZT0iVGhlbWUuUXVhbnR1bSIgLz4KKwogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzL3N0cmluZ3MueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy9zdHJpbmdzLnhtbAppbmRleCA4ODhiMGEzLi5kMjE5ZWMxIDEwMDY0NAotLS0gYS9jb3JlL3Jlcy9yZXMvdmFsdWVzL3N0cmluZ3MueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMvc3RyaW5ncy54bWwKQEAgLTE0MzEsNiArMTQzMSwxMSBAQAogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfcmVhZEZyYW1lQnVmZmVyIj5BbGxvd3MgdGhlIGFwcCB0byByZWFkIHRoZSBjb250ZW50IG9mIHRoZSBmcmFtZSBidWZmZXIuPC9zdHJpbmc+CiAKICAgICA8IS0tIFRpdGxlIG9mIGFuIGFwcGxpY2F0aW9uIHBlcm1pc3Npb24sIGxpc3RlZCBzbyB0aGUgdXNlciBjYW4gY2hvb3NlIHdoZXRoZXIgdGhleSB3YW50IHRvIGFsbG93IHRoZSBhcHBsaWNhdGlvbiB0byBkbyB0aGlzLiAtLT4KKyAgICA8c3RyaW5nIG5hbWU9InBlcm1sYWJfYWNjZXNzSW5wdXRGbGluZ2VyIj5hY2Nlc3MgSW5wdXRGbGluZ2VyPC9zdHJpbmc+CisgICAgPCEtLSBEZXNjcmlwdGlvbiBvZiBhbiBhcHBsaWNhdGlvbiBwZXJtaXNzaW9uLCBsaXN0ZWQgc28gdGhlIHVzZXIgY2FuIGNob29zZSB3aGV0aGVyIHRoZXkgd2FudCB0byBhbGxvdyB0aGUgYXBwbGljYXRpb24gdG8gZG8gdGhpcy4gLS0+CisgICAgPHN0cmluZyBuYW1lPSJwZXJtZGVzY19hY2Nlc3NJbnB1dEZsaW5nZXIiPkFsbG93cyB0aGUgYXBwIHRvIHVzZSBJbnB1dEZsaW5nZXIgbG93LWxldmVsIGZlYXR1cmVzLjwvc3RyaW5nPgorCisgICAgPCEtLSBUaXRsZSBvZiBhbiBhcHBsaWNhdGlvbiBwZXJtaXNzaW9uLCBsaXN0ZWQgc28gdGhlIHVzZXIgY2FuIGNob29zZSB3aGV0aGVyIHRoZXkgd2FudCB0byBhbGxvdyB0aGUgYXBwbGljYXRpb24gdG8gZG8gdGhpcy4gLS0+CiAgICAgPHN0cmluZyBuYW1lPSJwZXJtbGFiX2NvbmZpZ3VyZVdpZmlEaXNwbGF5Ij5jb25maWd1cmUgV2lmaSBkaXNwbGF5czwvc3RyaW5nPgogICAgIDwhLS0gRGVzY3JpcHRpb24gb2YgYW4gYXBwbGljYXRpb24gcGVybWlzc2lvbiwgbGlzdGVkIHNvIHRoZSB1c2VyIGNhbiBjaG9vc2Ugd2hldGhlciB0aGV5IHdhbnQgdG8gYWxsb3cgdGhlIGFwcGxpY2F0aW9uIHRvIGRvIHRoaXMuIC0tPgogICAgIDxzdHJpbmcgbmFtZT0icGVybWRlc2NfY29uZmlndXJlV2lmaURpc3BsYXkiPkFsbG93cyB0aGUgYXBwIHRvIGNvbmZpZ3VyZSBhbmQgY29ubmVjdCB0byBXaWZpIGRpc3BsYXlzLjwvc3RyaW5nPgpAQCAtNDUwNSw0ICs0NTEwLDU1IEBACiAgICAgPCEtLSBDbGluZyBoZWxwIG1lc3NhZ2Ugd2hlbiBoaWRpbmcgdGhlIG5hdmlnYXRpb24gYmFyIGVudGVyaW5nIGltbWVyc2l2ZSBtb2RlIFtDSEFSIExJTUlUPW5vbmVdIC0tPgogICAgIDxzdHJpbmcgbmFtZT0iaW1tZXJzaXZlX21vZGVfY29uZmlybWF0aW9uIiBtc2dpZD0iODU1NDk5MTQ4ODA5NjY2MjUwOCI+U3dpcGUgZG93biBmcm9tIHRoZSB0b3AgdG8gZXhpdCBmdWxsIHNjcmVlbi48L3N0cmluZz4KIAorICAgIDwhLS0gTGFiZWwgZm9yIGJ1dHRvbiB0byBjb25maXJtIGNob3NlbiBkYXRlIG9yIHRpbWUgW0NIQVIgTElNSVQ9MzBdIC0tPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9sYWJlbCI+RG9uZTwvc3RyaW5nPgorICAgIDwhLS0KKyAgICAgICAgIENvbnRlbnQgZGVzY3JpcHRpb24gZm9yIHRoZSBob3VyIHNlbGVjdG9yIGluIHRoZSB0aW1lIHBpY2tlciwgd2hpY2ggZGlzcGxheXMKKyAgICAgICAgIHNlbGVjdGFibGUgaG91cnMgb2YgdGhlIGRheSBhbG9uZyB0aGUgaW5zaWRlIGVkZ2Ugb2YgYSBjaXJjbGUsIGFzIGluIGFuIGFuYWxvZyBjbG9jay4KKyAgICAgICAgIFtDSEFSIExJTUlUPTUwXQorICAgIC0tPgorICAgIDxzdHJpbmcgbmFtZT0iaG91cl9waWNrZXJfZGVzY3JpcHRpb24iPkhvdXJzIGNpcmN1bGFyIHNsaWRlcjwvc3RyaW5nPgorICAgIDwhLS0KKyAgICAgICAgIENvbnRlbnQgZGVzY3JpcHRpb24gZm9yIHRoZSBtaW51dGUgc2VsZWN0b3IgaW4gdGhlIHRpbWUgcGlja2VyLCB3aGljaCBkaXNwbGF5cworICAgICAgICAgc2VsZWN0YWJsZSBmaXZlLW1pbnV0ZSBpbnRlcnZhbHMgYWxvbmcgdGhlIGluc2lkZSBlZGdlIG9mIGEgY2lyY2xlLCBhcyBpbiBhbiBhbmFsb2cgY2xvY2suCisgICAgICAgICBbQ0hBUiBMSU1JVD01MF0KKyAgICAtLT4KKyAgICA8c3RyaW5nIG5hbWU9Im1pbnV0ZV9waWNrZXJfZGVzY3JpcHRpb24iPk1pbnV0ZXMgY2lyY3VsYXIgc2xpZGVyPC9zdHJpbmc+CisgICAgPCEtLSBBY2Nlc3NpYmlsaXR5IGFubm91bmNlbWVudCBmb3IgaG91ciBjaXJjdWxhciBwaWNrZXIgW0NIQVIgTElNSVQ9Tk9ORV0gLS0+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfaG91cnMiPlNlbGVjdCBob3Vyczwvc3RyaW5nPgorICAgIDwhLS0gQWNjZXNzaWJpbGl0eSBhbm5vdW5jZW1lbnQgZm9yIG1pbnV0ZSBjaXJjdWxhciBwaWNrZXIgW0NIQVIgTElNSVQ9Tk9ORV0gLS0+CisgICAgPHN0cmluZyBuYW1lPSJzZWxlY3RfbWludXRlcyI+U2VsZWN0IG1pbnV0ZXM8L3N0cmluZz4KKworICAgIDwhLS0KKyAgICAgICAgQ29udGVudCBkZXNjcmlwdGlvbiBmb3IgdGhlIG1vbnRoIGFuZCBkYXkgc2VsZWN0b3IgaW4gdGhlIGRhdGUgcGlja2VyLCB3aGljaCBkaXNwbGF5cworICAgICAgICBhIHNlbGVjdGFibGUgZ3JpZCBvZiBkYXlzIGxhaWQgb3V0IGJ5IG1vbnRoLgorICAgICAgICBbQ0hBUiBMSU1JVD01MF0KKyAgICAgLS0+CisgICAgPHN0cmluZyBuYW1lPSJkYXlfcGlja2VyX2Rlc2NyaXB0aW9uIj5Nb250aCBncmlkIG9mIGRheXM8L3N0cmluZz4KKyAgICA8IS0tCisgICAgICAgIENvbnRlbnQgZGVzY3JpcHRpb24gZm9yIHRoZSB5ZWFyIHNlbGVjdG9yIGluIHRoZSBkYXRlIHBpY2tlciwgd2hpY2ggZGlzcGxheXMKKyAgICAgICAgYSBzY3JvbGxpbmcsIHZlcnRpY2FsIGxpc3Qgb2YgeWVhcnMuCisgICAgICAgIFtDSEFSIExJTUlUPTUwXQorICAgICAtLT4KKyAgICA8c3RyaW5nIG5hbWU9InllYXJfcGlja2VyX2Rlc2NyaXB0aW9uIj5ZZWFyIGxpc3Q8L3N0cmluZz4KKyAgICA8IS0tIEFjY2Vzc2liaWxpdHkgYW5ub3VuY2VtZW50IGZvciB0aGUgZGF5IHBpY2tlciBbQ0hBUiBMSU1JVD1OT05FXSAtLT4KKyAgICA8c3RyaW5nIG5hbWU9InNlbGVjdF9kYXkiPlNlbGVjdCBtb250aCBhbmQgZGF5PC9zdHJpbmc+CisgICAgPCEtLSBBY2Nlc3NpYmlsaXR5IGFubm91bmNlbWVudCBmb3IgdGhlIHllYXIgcGlja2VyIFtDSEFSIExJTUlUPU5PTkVdIC0tPgorICAgIDxzdHJpbmcgbmFtZT0ic2VsZWN0X3llYXIiPlNlbGVjdCB5ZWFyPC9zdHJpbmc+CisgICAgPCEtLSBBY2Nlc3NpYmlsaXR5IGRlc2NyaXB0aW9uIGZvciB0aGUgaXRlbSB0aGF0IGlzIGN1cnJlbnRseSBzZWxlY3RlZC4gLS0+CisgICAgPHN0cmluZyBuYW1lPSJpdGVtX2lzX3NlbGVjdGVkIj48eGxpZmY6ZyBpZD0iaXRlbSIgZXhhbXBsZT0iMjAxMyI+JTEkczwveGxpZmY6Zz4gc2VsZWN0ZWQ8L3N0cmluZz4KKyAgICA8IS0tIEFjY2Vzc2liaWxpdHkgYW5ub3VuY2VtZW50IHdoZW4gYSBudW1iZXIgdGhhdCBoYWQgYmVlbiB0eXBlZCBpbiBpcyBkZWxldGVkIFtDSEFSX0xJTUlUPU5PTkVdIC0tPgorICAgIDxzdHJpbmcgbmFtZT0iZGVsZXRlZF9rZXkiPjx4bGlmZjpnIGlkPSJrZXkiIGV4YW1wbGU9IjQiPiUxJHM8L3hsaWZmOmc+IGRlbGV0ZWQ8L3N0cmluZz4KKworICAgIDwhLS0gRE8gTk9UIFRSQU5TTEFURSAtLT4KKyAgICA8c3RyaW5nIG5hbWU9InRpbWVfcGxhY2Vob2xkZXIiPi0tPC9zdHJpbmc+CisKKyAgICA8IS0tIERPIE5PVCBUUkFOU0xBVEUgLS0+CisgICAgPHN0cmluZyBuYW1lPSJyYWRpYWxfbnVtYmVyc190eXBlZmFjZSI+c2Fucy1zZXJpZjwvc3RyaW5nPgorICAgIDwhLS0gRE8gTk9UIFRSQU5TTEFURSAtLT4KKyAgICA8c3RyaW5nIG5hbWU9InNhbnNfc2VyaWYiPnNhbnMtc2VyaWY8L3N0cmluZz4KKworICAgIDwhLS0gRE8gTk9UIFRSQU5TTEFURSAtLT4KKyAgICA8c3RyaW5nIG5hbWU9ImRheV9vZl93ZWVrX2xhYmVsX3R5cGVmYWNlIj5zYW5zLXNlcmlmPC9zdHJpbmc+CisKIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvY29yZS9yZXMvcmVzL3ZhbHVlcy9zdHlsZXMueG1sIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy9zdHlsZXMueG1sCmluZGV4IGNiMmZkNmQuLjNhZjVkNmQgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMvc3R5bGVzLnhtbAorKysgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzL3N0eWxlcy54bWwKQEAgLTI5Miw2ICsyOTIsNyBAQAogICAgIDxzdHlsZSBuYW1lPSJXaWRnZXQuQWJzTGlzdFZpZXciPgogICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOnNjcm9sbGJhcnMiPnZlcnRpY2FsPC9pdGVtPgogICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOmZhZGluZ0VkZ2UiPnZlcnRpY2FsPC9pdGVtPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOmZhc3RTY3JvbGxTdHlsZSI+P2FuZHJvaWQ6YXR0ci9mYXN0U2Nyb2xsU3R5bGU8L2l0ZW0+CiAgICAgPC9zdHlsZT4KIAogICAgIDxzdHlsZSBuYW1lPSJXaWRnZXQuR2VzdHVyZU92ZXJsYXlWaWV3Ij4KQEAgLTUxMCw2ICs1MTEsMTEgQEAKICAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDpjaGlsZERpdmlkZXIiPkBhbmRyb2lkOmRyYXdhYmxlL2RpdmlkZXJfaG9yaXpvbnRhbF9icmlnaHRfb3BhcXVlPC9pdGVtPgogICAgIDwvc3R5bGU+CiAKKyAgICA8c3R5bGUgbmFtZT0iV2lkZ2V0LkZyYWdtZW50QnJlYWRDcnVtYnMiPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOnBhZGRpbmciPjRkcDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDphbmltYXRlTGF5b3V0Q2hhbmdlcyI+dHJ1ZTwvaXRlbT4KKyAgICA8L3N0eWxlPgorCiAgICAgPHN0eWxlIG5hbWU9IldpZGdldC5JbWFnZVdlbGwiPgogICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOmJhY2tncm91bmQiPkBhbmRyb2lkOmRyYXdhYmxlL3BhbmVsX3BpY3R1cmVfZnJhbWVfYmFja2dyb3VuZDwvaXRlbT4KICAgICA8L3N0eWxlPgpAQCAtNTQ0LDcgKzU1MCw3IEBACiAgICAgPC9zdHlsZT4KIAogICAgIDxzdHlsZSBuYW1lPSJXaWRnZXQuVGltZVBpY2tlciI+Ci0gICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6aW50ZXJuYWxMYXlvdXQiPkBhbmRyb2lkOmxheW91dC90aW1lX3BpY2tlcjwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDpsZWdhY3lMYXlvdXQiPkBhbmRyb2lkOmxheW91dC90aW1lX3BpY2tlcl9sZWdhY3k8L2l0ZW0+CiAgICAgPC9zdHlsZT4KIAogICAgIDxzdHlsZSBuYW1lPSJXaWRnZXQuRGF0ZVBpY2tlciI+CkBAIC02ODEsMTIgKzY4Nyw2IEBACiAgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6cG9wdXBBbmltYXRpb25TdHlsZSI+QGFuZHJvaWQ6c3R5bGUvQW5pbWF0aW9uLlBvcHVwV2luZG93PC9pdGVtPgogICAgIDwvc3R5bGU+CiAKLSAgICA8IS0tIERlZmF1bHQgc3R5bGUgZm9yIHtAbGluayBhbmRyb2lkLmFwcC5GcmFnbWVudEJyZWFkQ3J1bWJzfSB2aWV3LiAtLT4KLSAgICA8c3R5bGUgbmFtZT0iV2lkZ2V0LkZyYWdtZW50QnJlYWRDcnVtYnMiPgotICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOnBhZGRpbmciPjRkcDwvaXRlbT4KLSAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDphbmltYXRlTGF5b3V0Q2hhbmdlcyI+dHJ1ZTwvaXRlbT4KLSAgICA8L3N0eWxlPgotCiAgICAgPHN0eWxlIG5hbWU9IldpZGdldC5LZXlib2FyZFZpZXciIHBhcmVudD0iYW5kcm9pZDpXaWRnZXQiPgogICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOmJhY2tncm91bmQiPkBhbmRyb2lkOmRyYXdhYmxlL2tleWJvYXJkX2JhY2tncm91bmQ8L2l0ZW0+CiAgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6a2V5QmFja2dyb3VuZCI+QGFuZHJvaWQ6ZHJhd2FibGUvYnRuX2tleWJvYXJkX2tleTwvaXRlbT4KQEAgLTE2NjIsNiArMTY2Miw5IEBACiAgICAgPHN0eWxlIG5hbWU9IldpZGdldC5Ib2xvLkV4cGFuZGFibGVMaXN0Vmlldy5XaGl0ZSI+CiAgICAgPC9zdHlsZT4KIAorICAgIDxzdHlsZSBuYW1lPSJXaWRnZXQuSG9sby5GcmFnbWVudEJyZWFkQ3J1bWJzIiBwYXJlbnQ9IldpZGdldC5GcmFnbWVudEJyZWFkQ3J1bWJzIj4KKyAgICA8L3N0eWxlPgorCiAgICAgPHN0eWxlIG5hbWU9IldpZGdldC5Ib2xvLkdhbGxlcnkiIHBhcmVudD0iV2lkZ2V0LkdhbGxlcnkiPgogICAgIDwvc3R5bGU+CiAKQEAgLTE2OTgsNyArMTcwMSwxOCBAQAogICAgIDwvc3R5bGU+CiAKICAgICA8c3R5bGUgbmFtZT0iV2lkZ2V0LkhvbG8uVGltZVBpY2tlciIgcGFyZW50PSJXaWRnZXQuVGltZVBpY2tlciI+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6bGVnYWN5TGF5b3V0Ij5AYW5kcm9pZDpsYXlvdXQvdGltZV9waWNrZXJfbGVnYWN5X2hvbG88L2l0ZW0+CiAgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6aW50ZXJuYWxMYXlvdXQiPkBhbmRyb2lkOmxheW91dC90aW1lX3BpY2tlcl9ob2xvPC9pdGVtPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOmRpc2FibGVkQ29sb3IiPkBhbmRyb2lkOmNvbG9yL3RpbWVwaWNrZXJfZGVmYXVsdF9kaXNhYmxlZF9jb2xvcl9ob2xvX2Rhcms8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6aGVhZGVyU2VsZWN0ZWRUZXh0Q29sb3IiPkBhbmRyb2lkOmNvbG9yL2hvbG9fYmx1ZV9saWdodDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDpoZWFkZXJVbnNlbGVjdGVkVGV4dENvbG9yIj5AYW5kcm9pZDpjb2xvci90aW1lcGlja2VyX2RlZmF1bHRfdGV4dF9jb2xvcl9ob2xvX2Rhcms8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6aGVhZGVyQmFja2dyb3VuZENvbG9yIj5AYW5kcm9pZDpjb2xvci90aW1lcGlja2VyX2RlZmF1bHRfYmFja2dyb3VuZF9ob2xvX2Rhcms8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6bnVtYmVyc1RleHRDb2xvciI+QGFuZHJvaWQ6Y29sb3IvdGltZXBpY2tlcl9kZWZhdWx0X3RleHRfY29sb3JfaG9sb19kYXJrPC9pdGVtPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOm51bWJlcnNCYWNrZ3JvdW5kQ29sb3IiPkBhbmRyb2lkOmNvbG9yL3RpbWVwaWNrZXJfZGVmYXVsdF9iYWNrZ3JvdW5kX2hvbG9fZGFyazwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDphbVBtVGV4dENvbG9yIj5AYW5kcm9pZDpjb2xvci90aW1lcGlja2VyX2RlZmF1bHRfdGV4dF9jb2xvcl9ob2xvX2Rhcms8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6YW1QbVVuc2VsZWN0ZWRCYWNrZ3JvdW5kQ29sb3IiPkBhbmRyb2lkOmNvbG9yL3RpbWVwaWNrZXJfZGVmYXVsdF9iYWNrZ3JvdW5kX2hvbG9fZGFyazwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDphbVBtU2VsZWN0ZWRCYWNrZ3JvdW5kQ29sb3IiPkBhbmRyb2lkOmNvbG9yL2hvbG9fYmx1ZV9saWdodDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDpudW1iZXJzU2VsZWN0b3JDb2xvciI+QGFuZHJvaWQ6Y29sb3IvaG9sb19ibHVlX2xpZ2h0PC9pdGVtPgogICAgIDwvc3R5bGU+CiAKICAgICA8c3R5bGUgbmFtZT0iV2lkZ2V0LkhvbG8uRGF0ZVBpY2tlciIgcGFyZW50PSJXaWRnZXQuRGF0ZVBpY2tlciI+CkBAIC0yMDkxLDYgKzIxMDUsOSBAQAogICAgIDxzdHlsZSBuYW1lPSJXaWRnZXQuSG9sby5MaWdodC5FeHBhbmRhYmxlTGlzdFZpZXcuV2hpdGUiPgogICAgIDwvc3R5bGU+CiAKKyAgICA8c3R5bGUgbmFtZT0iV2lkZ2V0LkhvbG8uTGlnaHQuRnJhZ21lbnRCcmVhZENydW1icyIgcGFyZW50PSJXaWRnZXQuRnJhZ21lbnRCcmVhZENydW1icyI+CisgICAgPC9zdHlsZT4KKwogICAgIDxzdHlsZSBuYW1lPSJXaWRnZXQuSG9sby5MaWdodC5HYWxsZXJ5IiBwYXJlbnQ9IldpZGdldC5HYWxsZXJ5Ij4KICAgICA8L3N0eWxlPgogCkBAIC0yMTE2LDcgKzIxMzMsMTkgQEAKICAgICA8c3R5bGUgbmFtZT0iV2lkZ2V0LkhvbG8uTGlnaHQuTnVtYmVyUGlja2VyIiBwYXJlbnQ9IldpZGdldC5Ib2xvLk51bWJlclBpY2tlciI+CiAgICAgPC9zdHlsZT4KIAotICAgIDxzdHlsZSBuYW1lPSJXaWRnZXQuSG9sby5MaWdodC5UaW1lUGlja2VyIiBwYXJlbnQ9IldpZGdldC5Ib2xvLlRpbWVQaWNrZXIiPgorICAgIDxzdHlsZSBuYW1lPSJXaWRnZXQuSG9sby5MaWdodC5UaW1lUGlja2VyIiBwYXJlbnQ9IldpZGdldC5UaW1lUGlja2VyIj4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDpsZWdhY3lMYXlvdXQiPkBhbmRyb2lkOmxheW91dC90aW1lX3BpY2tlcl9sZWdhY3lfaG9sbzwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDppbnRlcm5hbExheW91dCI+QGFuZHJvaWQ6bGF5b3V0L3RpbWVfcGlja2VyX2hvbG88L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6ZGlzYWJsZWRDb2xvciI+QGFuZHJvaWQ6Y29sb3IvdGltZXBpY2tlcl9kZWZhdWx0X2Rpc2FibGVkX2NvbG9yX2hvbG9fbGlnaHQ8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6aGVhZGVyU2VsZWN0ZWRUZXh0Q29sb3IiPkBhbmRyb2lkOmNvbG9yL2hvbG9fYmx1ZV9saWdodDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDpoZWFkZXJVbnNlbGVjdGVkVGV4dENvbG9yIj5AYW5kcm9pZDpjb2xvci90aW1lcGlja2VyX2RlZmF1bHRfdGV4dF9jb2xvcl9ob2xvX2xpZ2h0PC9pdGVtPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOmhlYWRlckJhY2tncm91bmRDb2xvciI+QGFuZHJvaWQ6Y29sb3IvdGltZXBpY2tlcl9kZWZhdWx0X2JhY2tncm91bmRfaG9sb19saWdodDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDpudW1iZXJzVGV4dENvbG9yIj5AYW5kcm9pZDpjb2xvci90aW1lcGlja2VyX2RlZmF1bHRfdGV4dF9jb2xvcl9ob2xvX2xpZ2h0PC9pdGVtPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOm51bWJlcnNCYWNrZ3JvdW5kQ29sb3IiPkBhbmRyb2lkOmNvbG9yL3RpbWVwaWNrZXJfZGVmYXVsdF9iYWNrZ3JvdW5kX2hvbG9fbGlnaHQ8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6YW1QbVRleHRDb2xvciI+QGFuZHJvaWQ6Y29sb3IvdGltZXBpY2tlcl9kZWZhdWx0X3RleHRfY29sb3JfaG9sb19saWdodDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDphbVBtVW5zZWxlY3RlZEJhY2tncm91bmRDb2xvciI+QGFuZHJvaWQ6Y29sb3IvdGltZXBpY2tlcl9kZWZhdWx0X2JhY2tncm91bmRfaG9sb19saWdodDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDphbVBtU2VsZWN0ZWRCYWNrZ3JvdW5kQ29sb3IiPkBhbmRyb2lkOmNvbG9yL2hvbG9fYmx1ZV9saWdodDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDpudW1iZXJzU2VsZWN0b3JDb2xvciI+QGFuZHJvaWQ6Y29sb3IvaG9sb19ibHVlX2xpZ2h0PC9pdGVtPgogICAgIDwvc3R5bGU+CiAKICAgICA8c3R5bGUgbmFtZT0iV2lkZ2V0LkhvbG8uTGlnaHQuRGF0ZVBpY2tlciIgcGFyZW50PSJXaWRnZXQuSG9sby5EYXRlUGlja2VyIj4KQEAgLTIzNzksNiArMjQwOCwxNiBAQAogICAgIDxzdHlsZSBuYW1lPSJBbmltYXRpb24uSG9sby5EaWFsb2ciIHBhcmVudD0iQW5pbWF0aW9uLkRpYWxvZyI+CiAgICAgPC9zdHlsZT4KIAorICAgIDxzdHlsZSBuYW1lPSJBbmltYXRpb24uUXVhbnR1bSIgcGFyZW50PSJBbmltYXRpb24uSG9sbyI+CisgICAgPC9zdHlsZT4KKworICAgIDxzdHlsZSBuYW1lPSJBbmltYXRpb24uUXVhbnR1bS5BY3Rpdml0eSIgcGFyZW50PSJBbmltYXRpb24uSG9sby5BY3Rpdml0eSI+CisgICAgICAgIDxpdGVtIG5hbWU9ImFjdGl2aXR5T3BlbkVudGVyQW5pbWF0aW9uIj5AbnVsbDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYWN0aXZpdHlPcGVuRXhpdEFuaW1hdGlvbiI+QG51bGw8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFjdGl2aXR5Q2xvc2VFbnRlckFuaW1hdGlvbiI+QG51bGw8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFjdGl2aXR5Q2xvc2VFeGl0QW5pbWF0aW9uIj5AYW5pbS9mYWRlX291dDwvaXRlbT4KKyAgICA8L3N0eWxlPgorCiAgICAgPCEtLSBEaWFsb2cgc3R5bGVzIC0tPgogCiAgICAgPHN0eWxlIG5hbWU9IkFsZXJ0RGlhbG9nLkhvbG8iIHBhcmVudD0iQWxlcnREaWFsb2ciPgpAQCAtMjUzMSw0ICsyNTcwLDU3IEBACiAgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6dGV4dENvbG9yIj4jODBmZmZmZmY8L2l0ZW0+CiAgICAgPC9zdHlsZT4KIAorICAgIDxzdHlsZSBuYW1lPSJUZXh0QXBwZWFyYW5jZS5UaW1lUGlja2VyLlRpbWVMYWJlbCIgcGFyZW50PSJUZXh0QXBwZWFyYW5jZSI+CisgICAgPC9zdHlsZT4KKworICAgIDxzdHlsZSBuYW1lPSJUZXh0QXBwZWFyYW5jZS5UaW1lUGlja2VyLkFtUG1MYWJlbCIgcGFyZW50PSJUZXh0QXBwZWFyYW5jZSI+CisgICAgPC9zdHlsZT4KKworICAgIDxzdHlsZSBuYW1lPSJUZXh0QXBwZWFyYW5jZS5Ib2xvLlRpbWVQaWNrZXIuVGltZUxhYmVsIiBwYXJlbnQ9IlRleHRBcHBlYXJhbmNlLkhvbG8iPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOnRleHRTaXplIj5AZGltZW4vdGltZXBpY2tlcl90aW1lX2xhYmVsX3NpemU8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6dGV4dENvbG9yIj5AYW5kcm9pZDpjb2xvci90aW1lcGlja2VyX2RlZmF1bHRfdGV4dF9jb2xvcl9ob2xvX2Rhcms8L2l0ZW0+CisgICAgPC9zdHlsZT4KKworICAgIDxzdHlsZSBuYW1lPSJUZXh0QXBwZWFyYW5jZS5Ib2xvLlRpbWVQaWNrZXIuQW1QbUxhYmVsIiBwYXJlbnQ9IlRleHRBcHBlYXJhbmNlLkhvbG8iPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOnRleHRTaXplIj5AZGltZW4vdGltZXBpY2tlcl9hbXBtX2xhYmVsX3NpemU8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6dGV4dEFsbENhcHMiPnRydWU8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6dGV4dENvbG9yIj5AYW5kcm9pZDpjb2xvci90aW1lcGlja2VyX2RlZmF1bHRfdGV4dF9jb2xvcl9ob2xvX2Rhcms8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6dGV4dFN0eWxlIj5ib2xkPC9pdGVtPgorICAgIDwvc3R5bGU+CisKKyAgICA8c3R5bGUgbmFtZT0iVGV4dEFwcGVhcmFuY2UuSG9sby5MaWdodC5UaW1lUGlja2VyLlRpbWVMYWJlbCIgcGFyZW50PSJUZXh0QXBwZWFyYW5jZS5Ib2xvLkxpZ2h0Ij4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDp0ZXh0U2l6ZSI+QGRpbWVuL3RpbWVwaWNrZXJfdGltZV9sYWJlbF9zaXplPC9pdGVtPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOnRleHRDb2xvciI+QGNvbG9yL3RpbWVwaWNrZXJfZGVmYXVsdF90ZXh0X2NvbG9yX2hvbG9fbGlnaHQ8L2l0ZW0+CisgICAgPC9zdHlsZT4KKworICAgIDxzdHlsZSBuYW1lPSJUZXh0QXBwZWFyYW5jZS5Ib2xvLkxpZ2h0LlRpbWVQaWNrZXIuQW1QbUxhYmVsIiBwYXJlbnQ9IlRleHRBcHBlYXJhbmNlLkhvbG8uTGlnaHQiPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOnRleHRTaXplIj5AZGltZW4vdGltZXBpY2tlcl9hbXBtX2xhYmVsX3NpemU8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6dGV4dEFsbENhcHMiPnRydWU8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6dGV4dENvbG9yIj5AY29sb3IvdGltZXBpY2tlcl9kZWZhdWx0X3RleHRfY29sb3JfaG9sb19saWdodDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDp0ZXh0U3R5bGUiPmJvbGQ8L2l0ZW0+CisgICAgPC9zdHlsZT4KKworICAgIDxzdHlsZSBuYW1lPSJXaWRnZXQuRmFzdFNjcm9sbCI+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6dGh1bWJEcmF3YWJsZSI+P2FuZHJvaWQ6YXR0ci9mYXN0U2Nyb2xsVGh1bWJEcmF3YWJsZTwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDp0cmFja0RyYXdhYmxlIj4/YW5kcm9pZDphdHRyL2Zhc3RTY3JvbGxUcmFja0RyYXdhYmxlPC9pdGVtPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOmJhY2tncm91bmRMZWZ0Ij4/YW5kcm9pZDphdHRyL2Zhc3RTY3JvbGxQcmV2aWV3QmFja2dyb3VuZExlZnQ8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6YmFja2dyb3VuZFJpZ2h0Ij4/YW5kcm9pZDphdHRyL2Zhc3RTY3JvbGxQcmV2aWV3QmFja2dyb3VuZFJpZ2h0PC9pdGVtPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOnBvc2l0aW9uIj4/YW5kcm9pZDphdHRyL2Zhc3RTY3JvbGxPdmVybGF5UG9zaXRpb248L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6dGV4dENvbG9yIj4/YW5kcm9pZDphdHRyL2Zhc3RTY3JvbGxUZXh0Q29sb3I8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6dGh1bWJNaW5XaWR0aCI+NjRkcDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDp0aHVtYk1pbkhlaWdodCI+NTJkcDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDp0ZXh0U2l6ZSI+NTJzcDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDptaW5XaWR0aCI+NzJkcDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDptaW5IZWlnaHQiPjcyZHA8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6cGFkZGluZyI+MTZkcDwvaXRlbT4KKyAgICA8L3N0eWxlPgorCisgICAgPHN0eWxlIG5hbWU9IldpZGdldC5Ib2xvLkZhc3RTY3JvbGwiIHBhcmVudD0iV2lkZ2V0LkZhc3RTY3JvbGwiPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOnRodW1iTWluV2lkdGgiPjBkcDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDp0aHVtYk1pbkhlaWdodCI+MGRwPC9pdGVtPgorICAgIDwvc3R5bGU+CisKKyAgICA8c3R5bGUgbmFtZT0iV2lkZ2V0LkhvbG8uTGlnaHQuRmFzdFNjcm9sbCIgcGFyZW50PSJXaWRnZXQuSG9sby5GYXN0U2Nyb2xsIj4KKyAgICA8L3N0eWxlPgorCiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMvc3R5bGVzX2RldmljZV9kZWZhdWx0cy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzL3N0eWxlc19kZXZpY2VfZGVmYXVsdHMueG1sCmluZGV4IGVkZWJhMDIuLjUxMmM5YjggMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMvc3R5bGVzX2RldmljZV9kZWZhdWx0cy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy9zdHlsZXNfZGV2aWNlX2RlZmF1bHRzLnhtbApAQCAtMjA2LDYgKzIwNiwxMiBAQAogICAgIDxzdHlsZSBuYW1lPSJXaWRnZXQuRGV2aWNlRGVmYXVsdC5FeHBhbmRhYmxlTGlzdFZpZXcuV2hpdGUiIHBhcmVudD0iV2lkZ2V0LkhvbG8uRXhwYW5kYWJsZUxpc3RWaWV3LldoaXRlIj4KIAogICAgIDwvc3R5bGU+CisgICAgPHN0eWxlIG5hbWU9IldpZGdldC5EZXZpY2VEZWZhdWx0LkZhc3RTY3JvbGwiIHBhcmVudD0iV2lkZ2V0LkhvbG8uRmFzdFNjcm9sbCI+CisKKyAgICA8L3N0eWxlPgorICAgIDxzdHlsZSBuYW1lPSJXaWRnZXQuRGV2aWNlRGVmYXVsdC5GcmFnbWVudEJyZWFkQ3J1bWJzIiBwYXJlbnQ9IldpZGdldC5Ib2xvLkZyYWdtZW50QnJlYWRDcnVtYnMiPgorCisgICAgPC9zdHlsZT4KICAgICA8c3R5bGUgbmFtZT0iV2lkZ2V0LkRldmljZURlZmF1bHQuR2FsbGVyeSIgcGFyZW50PSJXaWRnZXQuSG9sby5HYWxsZXJ5Ij4KIAogICAgIDwvc3R5bGU+CkBAIC0zMDksNiArMzE1LDEyIEBACiAgICAgPHN0eWxlIG5hbWU9IldpZGdldC5EZXZpY2VEZWZhdWx0LkxpZ2h0LkV4cGFuZGFibGVMaXN0VmlldyIgcGFyZW50PSJXaWRnZXQuSG9sby5MaWdodC5FeHBhbmRhYmxlTGlzdFZpZXciID4KIAogICAgIDwvc3R5bGU+CisgICAgPHN0eWxlIG5hbWU9IldpZGdldC5EZXZpY2VEZWZhdWx0LkxpZ2h0LkZhc3RTY3JvbGwiIHBhcmVudD0iV2lkZ2V0LkhvbG8uTGlnaHQuRmFzdFNjcm9sbCI+CisKKyAgICA8L3N0eWxlPgorICAgIDxzdHlsZSBuYW1lPSJXaWRnZXQuRGV2aWNlRGVmYXVsdC5MaWdodC5GcmFnbWVudEJyZWFkQ3J1bWJzIiBwYXJlbnQ9IldpZGdldC5Ib2xvLkxpZ2h0LkZyYWdtZW50QnJlYWRDcnVtYnMiPgorCisgICAgPC9zdHlsZT4KICAgICA8c3R5bGUgbmFtZT0iV2lkZ2V0LkRldmljZURlZmF1bHQuTGlnaHQuR3JpZFZpZXciIHBhcmVudD0iV2lkZ2V0LkhvbG8uTGlnaHQuR3JpZFZpZXciID4KIAogICAgIDwvc3R5bGU+CkBAIC03MjksNCArNzQxLDIyIEBACiAgICAgPHN0eWxlIG5hbWU9IldpZGdldC5EZXZpY2VEZWZhdWx0Lk1lZGlhUm91dGVCdXR0b24iIHBhcmVudD0iV2lkZ2V0LkhvbG8uTWVkaWFSb3V0ZUJ1dHRvbiIgLz4KICAgICA8c3R5bGUgbmFtZT0iV2lkZ2V0LkRldmljZURlZmF1bHQuTGlnaHQuTWVkaWFSb3V0ZUJ1dHRvbiIgcGFyZW50PSJXaWRnZXQuSG9sby5MaWdodC5NZWRpYVJvdXRlQnV0dG9uIiAvPgogCisgICAgPHN0eWxlIG5hbWU9IlRleHRBcHBlYXJhbmNlLkRldmljZURlZmF1bHQuVGltZVBpY2tlci5UaW1lTGFiZWwiIHBhcmVudD0iVGV4dEFwcGVhcmFuY2UuSG9sby5UaW1lUGlja2VyLlRpbWVMYWJlbCI+CisgICAgPC9zdHlsZT4KKworICAgIDxzdHlsZSBuYW1lPSJUZXh0QXBwZWFyYW5jZS5EZXZpY2VEZWZhdWx0LkxpZ2h0LlRpbWVQaWNrZXIuVGltZUxhYmVsIiBwYXJlbnQ9IlRleHRBcHBlYXJhbmNlLkhvbG8uTGlnaHQuVGltZVBpY2tlci5UaW1lTGFiZWwiPgorICAgIDwvc3R5bGU+CisKKyAgICA8c3R5bGUgbmFtZT0iVGV4dEFwcGVhcmFuY2UuRGV2aWNlRGVmYXVsdC5UaW1lUGlja2VyLkFtUG1MYWJlbCIgcGFyZW50PSJUZXh0QXBwZWFyYW5jZS5Ib2xvLlRpbWVQaWNrZXIuQW1QbUxhYmVsIj4KKyAgICA8L3N0eWxlPgorCisgICAgPHN0eWxlIG5hbWU9IlRleHRBcHBlYXJhbmNlLkRldmljZURlZmF1bHQuTGlnaHQuVGltZVBpY2tlci5BbVBtTGFiZWwiIHBhcmVudD0iVGV4dEFwcGVhcmFuY2UuSG9sby5MaWdodC5UaW1lUGlja2VyLkFtUG1MYWJlbCI+CisgICAgPC9zdHlsZT4KKworICAgIDxzdHlsZSBuYW1lPSJUaGVtZS5EZXZpY2VEZWZhdWx0LkRpYWxvZy5UaW1lUGlja2VyIiBwYXJlbnQ9IlRoZW1lLkhvbG8uRGlhbG9nLlRpbWVQaWNrZXIiPgorICAgIDwvc3R5bGU+CisKKyAgICA8c3R5bGUgbmFtZT0iVGhlbWUuRGV2aWNlRGVmYXVsdC5MaWdodC5EaWFsb2cuVGltZVBpY2tlciIgcGFyZW50PSJUaGVtZS5Ib2xvLkxpZ2h0LkRpYWxvZy5UaW1lUGlja2VyIj4KKyAgICA8L3N0eWxlPgorCiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMvc3ltYm9scy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzL3N5bWJvbHMueG1sCmluZGV4IGI4NWJmZjQuLmNhNTRjOGEgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMvc3ltYm9scy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy9zeW1ib2xzLnhtbApAQCAtMjI0LDYgKzIyNCw3IEBACiAKICAgPGphdmEtc3ltYm9sIHR5cGU9ImF0dHIiIG5hbWU9ImFjdGlvbk1vZGVTaGFyZURyYXdhYmxlIiAvPgogICA8amF2YS1zeW1ib2wgdHlwZT0iYXR0ciIgbmFtZT0iYWxlcnREaWFsb2dDZW50ZXJCdXR0b25zIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0iYXR0ciIgbmFtZT0iZnJhZ21lbnRCcmVhZENydW1ic1N0eWxlIiAvPgogICA8amF2YS1zeW1ib2wgdHlwZT0iYXR0ciIgbmFtZT0iZ2VzdHVyZU92ZXJsYXlWaWV3U3R5bGUiIC8+CiAgIDxqYXZhLXN5bWJvbCB0eXBlPSJhdHRyIiBuYW1lPSJrZXlib2FyZFZpZXdTdHlsZSIgLz4KICAgPGphdmEtc3ltYm9sIHR5cGU9ImF0dHIiIG5hbWU9Im51bWJlclBpY2tlclN0eWxlIiAvPgpAQCAtMzMxLDExICszMzIsNiBAQAogICA8amF2YS1zeW1ib2wgdHlwZT0iZGltZW4iIG5hbWU9ImRlZmF1bHRfZ2FwIiAvPgogICA8amF2YS1zeW1ib2wgdHlwZT0iZGltZW4iIG5hbWU9ImRyb3Bkb3duaXRlbV9pY29uX3dpZHRoIiAvPgogICA8amF2YS1zeW1ib2wgdHlwZT0iZGltZW4iIG5hbWU9ImRyb3Bkb3duaXRlbV90ZXh0X3BhZGRpbmdfbGVmdCIgLz4KLSAgPGphdmEtc3ltYm9sIHR5cGU9ImRpbWVuIiBuYW1lPSJmYXN0c2Nyb2xsX292ZXJsYXlfc2l6ZSIgLz4KLSAgPGphdmEtc3ltYm9sIHR5cGU9ImRpbWVuIiBuYW1lPSJmYXN0c2Nyb2xsX292ZXJsYXlfdGV4dF9zaXplIiAvPgotICA8amF2YS1zeW1ib2wgdHlwZT0iZGltZW4iIG5hbWU9ImZhc3RzY3JvbGxfb3ZlcmxheV9wYWRkaW5nIiAvPgotICA8amF2YS1zeW1ib2wgdHlwZT0iZGltZW4iIG5hbWU9ImZhc3RzY3JvbGxfdGh1bWJfaGVpZ2h0IiAvPgotICA8amF2YS1zeW1ib2wgdHlwZT0iZGltZW4iIG5hbWU9ImZhc3RzY3JvbGxfdGh1bWJfd2lkdGgiIC8+CiAgIDxqYXZhLXN5bWJvbCB0eXBlPSJkaW1lbiIgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfc3BhY2ViYXJfdmVydGljYWxfY29ycmVjdGlvbiIgLz4KICAgPGphdmEtc3ltYm9sIHR5cGU9ImRpbWVuIiBuYW1lPSJzZWFyY2hfdmlld19wcmVmZXJyZWRfd2lkdGgiIC8+CiAgIDxqYXZhLXN5bWJvbCB0eXBlPSJkaW1lbiIgbmFtZT0idGV4dHZpZXdfZXJyb3JfcG9wdXBfZGVmYXVsdF93aWR0aCIgLz4KQEAgLTExNzQsNyArMTE3MCw3IEBACiAgIDxqYXZhLXN5bWJvbCB0eXBlPSJsYXlvdXQiIG5hbWU9InRhYl9jb250ZW50IiAvPgogICA8amF2YS1zeW1ib2wgdHlwZT0ibGF5b3V0IiBuYW1lPSJ0YWJfaW5kaWNhdG9yX2hvbG8iIC8+CiAgIDxqYXZhLXN5bWJvbCB0eXBlPSJsYXlvdXQiIG5hbWU9InRleHR2aWV3X2hpbnQiIC8+Ci0gIDxqYXZhLXN5bWJvbCB0eXBlPSJsYXlvdXQiIG5hbWU9InRpbWVfcGlja2VyIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ibGF5b3V0IiBuYW1lPSJ0aW1lX3BpY2tlcl9sZWdhY3kiIC8+CiAgIDxqYXZhLXN5bWJvbCB0eXBlPSJsYXlvdXQiIG5hbWU9InRpbWVfcGlja2VyX2RpYWxvZyIgLz4KICAgPGphdmEtc3ltYm9sIHR5cGU9ImxheW91dCIgbmFtZT0idHJhbnNpZW50X25vdGlmaWNhdGlvbiIgLz4KICAgPGphdmEtc3ltYm9sIHR5cGU9ImxheW91dCIgbmFtZT0idm9sdW1lX2FkanVzdCIgLz4KQEAgLTE3NTEsNCArMTc0Nyw1NSBAQAogICA8amF2YS1zeW1ib2wgdHlwZT0iZGltZW4iIG5hbWU9InN1YnRpdGxlX3NoYWRvd19yYWRpdXMiIC8+CiAgIDxqYXZhLXN5bWJvbCB0eXBlPSJkaW1lbiIgbmFtZT0ic3VidGl0bGVfc2hhZG93X29mZnNldCIgLz4KICAgPGphdmEtc3ltYm9sIHR5cGU9ImRpbWVuIiBuYW1lPSJzdWJ0aXRsZV9vdXRsaW5lX3dpZHRoIiAvPgorCisgIDwhLS0gRnJvbSB0aGUgbmV3IFRpbWVQaWNrZXIgLS0+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJhdHRyIiBuYW1lPSJ0aW1lUGlja2VySGVhZGVyQmFja2dyb3VuZENvbG9yIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0iYXR0ciIgbmFtZT0idGltZVBpY2tlckRpYWxvZ1RoZW1lIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0iYXR0ciIgbmFtZT0iaGVhZGVyU2VsZWN0ZWRUZXh0Q29sb3IiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJhdHRyIiBuYW1lPSJoZWFkZXJVbnNlbGVjdGVkVGV4dENvbG9yIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0iYXR0ciIgbmFtZT0ibnVtYmVyc1RleHRDb2xvciIgLz4KKyAgPGphdmEtc3ltYm9sIHR5cGU9ImF0dHIiIG5hbWU9Im51bWJlcnNCYWNrZ3JvdW5kQ29sb3IiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJhdHRyIiBuYW1lPSJhbVBtVGV4dENvbG9yIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0iYXR0ciIgbmFtZT0iYW1QbVVuc2VsZWN0ZWRCYWNrZ3JvdW5kQ29sb3IiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJhdHRyIiBuYW1lPSJhbVBtU2VsZWN0ZWRCYWNrZ3JvdW5kQ29sb3IiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJhdHRyIiBuYW1lPSJudW1iZXJzU2VsZWN0b3JDb2xvciIgLz4KKyAgPGphdmEtc3ltYm9sIHR5cGU9ImF0dHIiIG5hbWU9InRpbWVQaWNrZXJIZWFkZXJUaW1lTGFiZWxUZXh0QXBwZWFyYW5jZSIgLz4KKyAgPGphdmEtc3ltYm9sIHR5cGU9InN0eWxlIiBuYW1lPSJUZXh0QXBwZWFyYW5jZS5Ib2xvLlRpbWVQaWNrZXIuVGltZUxhYmVsIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ibGF5b3V0IiBuYW1lPSJ0aW1lX3BpY2tlcl9ob2xvIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ibGF5b3V0IiBuYW1lPSJ0aW1lX2hlYWRlcl9sYWJlbCIgLz4KKyAgPGphdmEtc3ltYm9sIHR5cGU9ImlkIiBuYW1lPSJ0aW1lX2hlYWRlciIgLz4KKyAgPGphdmEtc3ltYm9sIHR5cGU9ImlkIiBuYW1lPSJob3VycyIgLz4KKyAgPGphdmEtc3ltYm9sIHR5cGU9ImlkIiBuYW1lPSJtaW51dGVzIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0iaWQiIG5hbWU9ImFtcG1fbGFiZWwiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJpZCIgbmFtZT0icmFkaWFsX3BpY2tlciIgLz4KKyAgPGphdmEtc3ltYm9sIHR5cGU9ImlkIiBuYW1lPSJzZXBhcmF0b3IiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJpZCIgbmFtZT0ibGF5b3V0X2J1dHRvbnMiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJpZCIgbmFtZT0iZG9uZV9idXR0b24iIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJzdHJpbmciIG5hbWU9ImRvbmVfbGFiZWwiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJzdHJpbmciIG5hbWU9ImhvdXJfcGlja2VyX2Rlc2NyaXB0aW9uIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ic3RyaW5nIiBuYW1lPSJtaW51dGVfcGlja2VyX2Rlc2NyaXB0aW9uIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ic3RyaW5nIiBuYW1lPSJzZWxlY3RfaG91cnMiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJzdHJpbmciIG5hbWU9InNlbGVjdF9taW51dGVzIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ic3RyaW5nIiBuYW1lPSJ0aW1lX3BsYWNlaG9sZGVyIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ic3RyaW5nIiBuYW1lPSJ0aW1lcGlja2VyX2NpcmNsZV9yYWRpdXNfbXVsdGlwbGllciIgLz4KKyAgPGphdmEtc3ltYm9sIHR5cGU9InN0cmluZyIgbmFtZT0idGltZXBpY2tlcl9jaXJjbGVfcmFkaXVzX211bHRpcGxpZXJfMjRIb3VyTW9kZSIgLz4KKyAgPGphdmEtc3ltYm9sIHR5cGU9InN0cmluZyIgbmFtZT0idGltZXBpY2tlcl9hbXBtX2NpcmNsZV9yYWRpdXNfbXVsdGlwbGllciIgLz4KKyAgPGphdmEtc3ltYm9sIHR5cGU9InN0cmluZyIgbmFtZT0iZGVsZXRlZF9rZXkiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJzdHJpbmciIG5hbWU9InNhbnNfc2VyaWYiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJzdHJpbmciIG5hbWU9InJhZGlhbF9udW1iZXJzX3R5cGVmYWNlIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ic3RyaW5nIiBuYW1lPSJ0aW1lcGlja2VyX3RleHRfc2l6ZV9tdWx0aXBsaWVyX2lubmVyIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ic3RyaW5nIiBuYW1lPSJ0aW1lcGlja2VyX3RleHRfc2l6ZV9tdWx0aXBsaWVyX291dGVyIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ic3RyaW5nIiBuYW1lPSJ0aW1lcGlja2VyX3RleHRfc2l6ZV9tdWx0aXBsaWVyX25vcm1hbCIgLz4KKyAgPGphdmEtc3ltYm9sIHR5cGU9InN0cmluZyIgbmFtZT0idGltZXBpY2tlcl9udW1iZXJzX3JhZGl1c19tdWx0aXBsaWVyX291dGVyIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ic3RyaW5nIiBuYW1lPSJ0aW1lcGlja2VyX3NlbGVjdGlvbl9yYWRpdXNfbXVsdGlwbGllciIgLz4KKyAgPGphdmEtc3ltYm9sIHR5cGU9InN0cmluZyIgbmFtZT0idGltZXBpY2tlcl9udW1iZXJzX3JhZGl1c19tdWx0aXBsaWVyX2lubmVyIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ic3RyaW5nIiBuYW1lPSJ0aW1lcGlja2VyX251bWJlcnNfcmFkaXVzX211bHRpcGxpZXJfbm9ybWFsIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ic3RyaW5nIiBuYW1lPSJ0aW1lcGlja2VyX3RyYW5zaXRpb25fbWlkX3JhZGl1c19tdWx0aXBsaWVyIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0ic3RyaW5nIiBuYW1lPSJ0aW1lcGlja2VyX3RyYW5zaXRpb25fZW5kX3JhZGl1c19tdWx0aXBsaWVyIiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0iY29sb3IiIG5hbWU9InRpbWVwaWNrZXJfZGVmYXVsdF90ZXh0X2NvbG9yX2hvbG9fbGlnaHQiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJjb2xvciIgbmFtZT0idGltZXBpY2tlcl9kZWZhdWx0X2Rpc2FibGVkX2NvbG9yX2hvbG9fbGlnaHQiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJjb2xvciIgbmFtZT0idGltZXBpY2tlcl9kZWZhdWx0X2FtcG1fdW5zZWxlY3RlZF9iYWNrZ3JvdW5kX2NvbG9yX2hvbG9fbGlnaHQiIC8+CisgIDxqYXZhLXN5bWJvbCB0eXBlPSJjb2xvciIgbmFtZT0idGltZXBpY2tlcl9kZWZhdWx0X2FtcG1fc2VsZWN0ZWRfYmFja2dyb3VuZF9jb2xvcl9ob2xvX2xpZ2h0IiAvPgorICA8amF2YS1zeW1ib2wgdHlwZT0iYXJyYXkiIG5hbWU9ImNvbmZpZ19jbG9ja1RpY2tWaWJlUGF0dGVybiIgLz4KKwogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9jb3JlL3Jlcy9yZXMvdmFsdWVzL3RoZW1lcy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzL3RoZW1lcy54bWwKaW5kZXggYzhkOWZjNi4uMDM2MWRmMSAxMDA2NDQKLS0tIGEvY29yZS9yZXMvcmVzL3ZhbHVlcy90aGVtZXMueG1sCisrKyBiL2NvcmUvcmVzL3Jlcy92YWx1ZXMvdGhlbWVzLnhtbApAQCAtMjQ5LDYgKzI0OSw3IEBACiAgICAgICAgIDxpdGVtIG5hbWU9ImVkaXRUZXh0U3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5FZGl0VGV4dDwvaXRlbT4KICAgICAgICAgPGl0ZW0gbmFtZT0iZXhwYW5kYWJsZUxpc3RWaWV3U3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5FeHBhbmRhYmxlTGlzdFZpZXc8L2l0ZW0+CiAgICAgICAgIDxpdGVtIG5hbWU9ImV4cGFuZGFibGVMaXN0Vmlld1doaXRlU3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5FeHBhbmRhYmxlTGlzdFZpZXcuV2hpdGU8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImZhc3RTY3JvbGxTdHlsZSI+QGFuZHJvaWQ6c3R5bGUvV2lkZ2V0LkZhc3RTY3JvbGw8L2l0ZW0+CiAgICAgICAgIDxpdGVtIG5hbWU9ImdhbGxlcnlTdHlsZSI+QGFuZHJvaWQ6c3R5bGUvV2lkZ2V0LkdhbGxlcnk8L2l0ZW0+CiAgICAgICAgIDxpdGVtIG5hbWU9Imdlc3R1cmVPdmVybGF5Vmlld1N0eWxlIj5AYW5kcm9pZDpzdHlsZS9XaWRnZXQuR2VzdHVyZU92ZXJsYXlWaWV3PC9pdGVtPgogICAgICAgICA8aXRlbSBuYW1lPSJncmlkVmlld1N0eWxlIj5AYW5kcm9pZDpzdHlsZS9XaWRnZXQuR3JpZFZpZXc8L2l0ZW0+CkBAIC0yOTYsOCArMjk3LDggQEAKICAgICAgICAgPGl0ZW0gbmFtZT0ibGlzdFBvcHVwV2luZG93U3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5MaXN0UG9wdXBXaW5kb3c8L2l0ZW0+CiAgICAgICAgIDxpdGVtIG5hbWU9InBvcHVwTWVudVN0eWxlIj5AYW5kcm9pZDpzdHlsZS9XaWRnZXQuUG9wdXBNZW51PC9pdGVtPgogICAgICAgICA8aXRlbSBuYW1lPSJhY3Rpdml0eUNob29zZXJWaWV3U3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5BY3Rpdml0eUNob29zZXJWaWV3PC9pdGVtPgotCiAgICAgICAgIDxpdGVtIG5hbWU9Im1lZGlhUm91dGVCdXR0b25TdHlsZSI+QGFuZHJvaWQ6c3R5bGUvV2lkZ2V0LkRldmljZURlZmF1bHQuTWVkaWFSb3V0ZUJ1dHRvbjwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iZnJhZ21lbnRCcmVhZENydW1ic1N0eWxlIj5AYW5kcm9pZDpzdHlsZS9XaWRnZXQuRnJhZ21lbnRCcmVhZENydW1iczwvaXRlbT4KIAogICAgICAgICA8IS0tIFByZWZlcmVuY2Ugc3R5bGVzIC0tPgogICAgICAgICA8aXRlbSBuYW1lPSJwcmVmZXJlbmNlU2NyZWVuU3R5bGUiPkBhbmRyb2lkOnN0eWxlL1ByZWZlcmVuY2UuUHJlZmVyZW5jZVNjcmVlbjwvaXRlbT4KQEAgLTM4Miw2ICszODMsMTggQEAKICAgICAgICAgPCEtLSBUaW1lUGlja2VyIHN0eWxlIC0tPgogICAgICAgICA8aXRlbSBuYW1lPSJ0aW1lUGlja2VyU3R5bGUiPkBzdHlsZS9XaWRnZXQuVGltZVBpY2tlcjwvaXRlbT4KIAorICAgICAgICA8IS0tIFRpbWVQaWNrZXIgYmFja2dyb3VuZCBjb2xvciAtLT4KKyAgICAgICAgPGl0ZW0gbmFtZT0idGltZVBpY2tlckhlYWRlckJhY2tncm91bmRDb2xvciI+QGFuZHJvaWQ6Y29sb3IvZGFya2VyX2dyYXk8L2l0ZW0+CisKKyAgICAgICAgPCEtLSBUaW1lUGlja2VyIEhlYWRlciB0aW1lIGxhYmVsIHRleHQgYXBwZWFyYW5jZSAtLT4KKyAgICAgICAgPGl0ZW0gbmFtZT0idGltZVBpY2tlckhlYWRlclRpbWVMYWJlbFRleHRBcHBlYXJhbmNlIj5Ac3R5bGUvVGV4dEFwcGVhcmFuY2UuVGltZVBpY2tlci5UaW1lTGFiZWw8L2l0ZW0+CisKKyAgICAgICAgPCEtLSBUaW1lUGlja2VyIEhlYWRlciBhbSBwbSBsYWJlbCB0ZXh0IGFwcGVhcmFuY2UgLS0+CisgICAgICAgIDxpdGVtIG5hbWU9InRpbWVQaWNrZXJIZWFkZXJBbVBtTGFiZWxUZXh0QXBwZWFyYW5jZSI+QHN0eWxlL1RleHRBcHBlYXJhbmNlLlRpbWVQaWNrZXIuQW1QbUxhYmVsPC9pdGVtPgorCisgICAgICAgIDwhLS0gVGltZVBpY2tlciBkaWFsb2cgdGhlbWUgLS0+CisgICAgICAgIDxpdGVtIG5hbWU9InRpbWVQaWNrZXJEaWFsb2dUaGVtZSI+QGFuZHJvaWQ6c3R5bGUvVGhlbWUuRGlhbG9nLlRpbWVQaWNrZXI8L2l0ZW0+CisKICAgICAgICAgPCEtLSBEYXRlUGlja2VyIHN0eWxlIC0tPgogICAgICAgICA8aXRlbSBuYW1lPSJkYXRlUGlja2VyU3R5bGUiPkBzdHlsZS9XaWRnZXQuRGF0ZVBpY2tlcjwvaXRlbT4KIApAQCAtMzkxLDcgKzQwNCw2IEBACiAgICAgICAgIDxpdGVtIG5hbWU9ImZhc3RTY3JvbGxQcmV2aWV3QmFja2dyb3VuZExlZnQiPkBhbmRyb2lkOmRyYXdhYmxlL21lbnVfc3VibWVudV9iYWNrZ3JvdW5kPC9pdGVtPgogICAgICAgICA8aXRlbSBuYW1lPSJmYXN0U2Nyb2xsT3ZlcmxheVBvc2l0aW9uIj5mbG9hdGluZzwvaXRlbT4KICAgICAgICAgPGl0ZW0gbmFtZT0iZmFzdFNjcm9sbFRleHRDb2xvciI+QGFuZHJvaWQ6Y29sb3IvcHJpbWFyeV90ZXh0X2Rhcms8L2l0ZW0+Ci0KICAgICAgICAgPCEtLSBQb2ludGVyIHN0eWxlIC0tPgogICAgICAgICA8aXRlbSBuYW1lPSJwb2ludGVyU3R5bGUiPkBhbmRyb2lkOnN0eWxlL1BvaW50ZXI8L2l0ZW0+CiAKQEAgLTY4OCw3ICs3MDAsMTUgQEAKICAgICAgICAgPGl0ZW0gbmFtZT0idGV4dEFwcGVhcmFuY2VMaXN0SXRlbSI+QGFuZHJvaWQ6c3R5bGUvVGV4dEFwcGVhcmFuY2UuTGFyZ2UuSW52ZXJzZTwvaXRlbT4KICAgICAgICAgPGl0ZW0gbmFtZT0idGV4dEFwcGVhcmFuY2VMaXN0SXRlbVNtYWxsIj5AYW5kcm9pZDpzdHlsZS9UZXh0QXBwZWFyYW5jZS5MYXJnZS5JbnZlcnNlPC9pdGVtPgogICAgIDwvc3R5bGU+Ci0gICAgCisKKyAgICA8IS0tIERlZmF1bHQgaGVtZSBmb3IgdGhlIFRpbWVQaWNrZXIgZGlhbG9nIHdpbmRvd3MsIHdoaWNoIGlzIHVzZWQgYnkgdGhlCisgICAgICAgICB7QGxpbmsgYW5kcm9pZC5hcHAuVGltZVBpY2tlckRpYWxvZ30gY2xhc3MuIC0tPgorICAgIDxzdHlsZSBuYW1lPSJUaGVtZS5EaWFsb2cuVGltZVBpY2tlciI+CisgICAgICAgIDxpdGVtIG5hbWU9IndpbmRvd0JhY2tncm91bmQiPkBhbmRyb2lkOmNvbG9yL3RyYW5zcGFyZW50PC9pdGVtPgorICAgICAgICA8aXRlbSBuYW1lPSJ3aW5kb3dUaXRsZVN0eWxlIj5AYW5kcm9pZDpzdHlsZS9EaWFsb2dXaW5kb3dUaXRsZTwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0id2luZG93Q29udGVudE92ZXJsYXkiPkBudWxsPC9pdGVtPgorICAgIDwvc3R5bGU+CisKICAgICA8IS0tIERlZmF1bHQgZGFyayB0aGVtZSBmb3IgcGFuZWwgd2luZG93cyAob24gQVBJIGxldmVsIDEwIGFuZCBsb3dlcikuICBUaGlzIHJlbW92ZXMgYWxsCiAgICAgICAgICBleHRyYW5lb3VzIHdpbmRvdyBkZWNvcmF0aW9ucywgc28geW91IGJhc2ljYWxseSBoYXZlIGFuIGVtcHR5IHJlY3RhbmdsZSBpbiB3aGljaAogICAgICAgICAgdG8gcGxhY2UgeW91ciBjb250ZW50LiAgSXQgbWFrZXMgdGhlIHdpbmRvdyBmbG9hdGluZywgd2l0aCBhIHRyYW5zcGFyZW50CkBAIC0xMDg4LDYgKzExMDgsNyBAQAogICAgICAgICA8aXRlbSBuYW1lPSJlZGl0VGV4dFN0eWxlIj5AYW5kcm9pZDpzdHlsZS9XaWRnZXQuSG9sby5FZGl0VGV4dDwvaXRlbT4KICAgICAgICAgPGl0ZW0gbmFtZT0iZXhwYW5kYWJsZUxpc3RWaWV3U3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5Ib2xvLkV4cGFuZGFibGVMaXN0VmlldzwvaXRlbT4KICAgICAgICAgPGl0ZW0gbmFtZT0iZXhwYW5kYWJsZUxpc3RWaWV3V2hpdGVTdHlsZSI+QGFuZHJvaWQ6c3R5bGUvV2lkZ2V0LkhvbG8uRXhwYW5kYWJsZUxpc3RWaWV3LldoaXRlPC9pdGVtPgorICAgICAgICA8aXRlbSBuYW1lPSJmYXN0U2Nyb2xsU3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5Ib2xvLkZhc3RTY3JvbGw8L2l0ZW0+CiAgICAgICAgIDxpdGVtIG5hbWU9ImdhbGxlcnlTdHlsZSI+QGFuZHJvaWQ6c3R5bGUvV2lkZ2V0LkhvbG8uR2FsbGVyeTwvaXRlbT4KICAgICAgICAgPGl0ZW0gbmFtZT0iZ2VzdHVyZU92ZXJsYXlWaWV3U3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5Ib2xvLkdlc3R1cmVPdmVybGF5VmlldzwvaXRlbT4KICAgICAgICAgPGl0ZW0gbmFtZT0iZ3JpZFZpZXdTdHlsZSI+QGFuZHJvaWQ6c3R5bGUvV2lkZ2V0LkhvbG8uR3JpZFZpZXc8L2l0ZW0+CkBAIC0xMTM1LDYgKzExNTYsNyBAQAogICAgICAgICA8aXRlbSBuYW1lPSJwb3B1cE1lbnVTdHlsZSI+QGFuZHJvaWQ6c3R5bGUvV2lkZ2V0LkhvbG8uUG9wdXBNZW51PC9pdGVtPgogICAgICAgICA8aXRlbSBuYW1lPSJzdGFja1ZpZXdTdHlsZSI+QGFuZHJvaWQ6c3R5bGUvV2lkZ2V0LkhvbG8uU3RhY2tWaWV3PC9pdGVtPgogICAgICAgICA8aXRlbSBuYW1lPSJhY3Rpdml0eUNob29zZXJWaWV3U3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5Ib2xvLkFjdGl2aXR5Q2hvb3NlclZpZXc8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9ImZyYWdtZW50QnJlYWRDcnVtYnNTdHlsZSI+QGFuZHJvaWQ6c3R5bGUvV2lkZ2V0LkhvbG8uRnJhZ21lbnRCcmVhZENydW1iczwvaXRlbT4KIAogICAgICAgICA8IS0tIFByZWZlcmVuY2Ugc3R5bGVzIC0tPgogICAgICAgICA8aXRlbSBuYW1lPSJwcmVmZXJlbmNlU2NyZWVuU3R5bGUiPkBhbmRyb2lkOnN0eWxlL1ByZWZlcmVuY2UuSG9sby5QcmVmZXJlbmNlU2NyZWVuPC9pdGVtPgpAQCAtMTIwMiw2ICsxMjI0LDE4IEBACiAgICAgICAgIDwhLS0gVGltZVBpY2tlciBzdHlsZSAtLT4KICAgICAgICAgPGl0ZW0gbmFtZT0idGltZVBpY2tlclN0eWxlIj5Ac3R5bGUvV2lkZ2V0LkhvbG8uVGltZVBpY2tlcjwvaXRlbT4KIAorICAgICAgICA8IS0tIFRpbWVQaWNrZXIgYmFja2dyb3VuZCBjb2xvciAtLT4KKyAgICAgICAgPGl0ZW0gbmFtZT0idGltZVBpY2tlckhlYWRlckJhY2tncm91bmRDb2xvciI+QGFuZHJvaWQ6Y29sb3IvdGltZXBpY2tlcl9kZWZhdWx0X2JhY2tncm91bmRfaG9sb19kYXJrPC9pdGVtPgorCisgICAgICAgIDwhLS0gVGltZVBpY2tlciBIZWFkZXIgdGltZSBsYWJlbCB0ZXh0IGFwcGVhcmFuY2UgLS0+CisgICAgICAgIDxpdGVtIG5hbWU9InRpbWVQaWNrZXJIZWFkZXJUaW1lTGFiZWxUZXh0QXBwZWFyYW5jZSI+QHN0eWxlL1RleHRBcHBlYXJhbmNlLkhvbG8uVGltZVBpY2tlci5UaW1lTGFiZWw8L2l0ZW0+CisKKyAgICAgICAgPCEtLSBUaW1lUGlja2VyIEhlYWRlciBhbSBwbSBsYWJlbCB0ZXh0IGFwcGVhcmFuY2UgLS0+CisgICAgICAgIDxpdGVtIG5hbWU9InRpbWVQaWNrZXJIZWFkZXJBbVBtTGFiZWxUZXh0QXBwZWFyYW5jZSI+QHN0eWxlL1RleHRBcHBlYXJhbmNlLkhvbG8uVGltZVBpY2tlci5BbVBtTGFiZWw8L2l0ZW0+CisKKyAgICAgICAgPCEtLSBUaW1lUGlja2VyIGRpYWxvZyB0aGVtZSAtLT4KKyAgICAgICAgPGl0ZW0gbmFtZT0idGltZVBpY2tlckRpYWxvZ1RoZW1lIj5AYW5kcm9pZDpzdHlsZS9UaGVtZS5Ib2xvLkRpYWxvZy5UaW1lUGlja2VyPC9pdGVtPgorCiAgICAgICAgIDwhLS0gRGF0ZVBpY2tlciBzdHlsZSAtLT4KICAgICAgICAgPGl0ZW0gbmFtZT0iZGF0ZVBpY2tlclN0eWxlIj5Ac3R5bGUvV2lkZ2V0LkhvbG8uRGF0ZVBpY2tlcjwvaXRlbT4KIApAQCAtMTQwMyw2ICsxNDM3LDcgQEAKICAgICAgICAgPGl0ZW0gbmFtZT0iZWRpdFRleHRTdHlsZSI+QGFuZHJvaWQ6c3R5bGUvV2lkZ2V0LkhvbG8uTGlnaHQuRWRpdFRleHQ8L2l0ZW0+CiAgICAgICAgIDxpdGVtIG5hbWU9ImV4cGFuZGFibGVMaXN0Vmlld1N0eWxlIj5AYW5kcm9pZDpzdHlsZS9XaWRnZXQuSG9sby5MaWdodC5FeHBhbmRhYmxlTGlzdFZpZXc8L2l0ZW0+CiAgICAgICAgIDxpdGVtIG5hbWU9ImV4cGFuZGFibGVMaXN0Vmlld1doaXRlU3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5Ib2xvLkxpZ2h0LkV4cGFuZGFibGVMaXN0Vmlldy5XaGl0ZTwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iZmFzdFNjcm9sbFN0eWxlIj5AYW5kcm9pZDpzdHlsZS9XaWRnZXQuSG9sby5MaWdodC5GYXN0U2Nyb2xsPC9pdGVtPgogICAgICAgICA8aXRlbSBuYW1lPSJnYWxsZXJ5U3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5Ib2xvLkxpZ2h0LkdhbGxlcnk8L2l0ZW0+CiAgICAgICAgIDxpdGVtIG5hbWU9Imdlc3R1cmVPdmVybGF5Vmlld1N0eWxlIj5AYW5kcm9pZDpzdHlsZS9XaWRnZXQuSG9sby5MaWdodC5HZXN0dXJlT3ZlcmxheVZpZXc8L2l0ZW0+CiAgICAgICAgIDxpdGVtIG5hbWU9ImdyaWRWaWV3U3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5Ib2xvLkxpZ2h0LkdyaWRWaWV3PC9pdGVtPgpAQCAtMTQ1MCw2ICsxNDg1LDcgQEAKICAgICAgICAgPGl0ZW0gbmFtZT0icG9wdXBNZW51U3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5Ib2xvLkxpZ2h0LlBvcHVwTWVudTwvaXRlbT4KICAgICAgICAgPGl0ZW0gbmFtZT0ic3RhY2tWaWV3U3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5Ib2xvLlN0YWNrVmlldzwvaXRlbT4KICAgICAgICAgPGl0ZW0gbmFtZT0iYWN0aXZpdHlDaG9vc2VyVmlld1N0eWxlIj5AYW5kcm9pZDpzdHlsZS9XaWRnZXQuSG9sby5MaWdodC5BY3Rpdml0eUNob29zZXJWaWV3PC9pdGVtPgorICAgICAgICA8aXRlbSBuYW1lPSJmcmFnbWVudEJyZWFkQ3J1bWJzU3R5bGUiPkBhbmRyb2lkOnN0eWxlL1dpZGdldC5Ib2xvLkxpZ2h0LkZyYWdtZW50QnJlYWRDcnVtYnM8L2l0ZW0+CiAKICAgICAgICAgPCEtLSBQcmVmZXJlbmNlIHN0eWxlcyAtLT4KICAgICAgICAgPGl0ZW0gbmFtZT0icHJlZmVyZW5jZVNjcmVlblN0eWxlIj5AYW5kcm9pZDpzdHlsZS9QcmVmZXJlbmNlLkhvbG8uUHJlZmVyZW5jZVNjcmVlbjwvaXRlbT4KQEAgLTE1MTcsNiArMTU1MywxOCBAQAogICAgICAgICA8IS0tIFRpbWVQaWNrZXIgc3R5bGUgLS0+CiAgICAgICAgIDxpdGVtIG5hbWU9InRpbWVQaWNrZXJTdHlsZSI+QHN0eWxlL1dpZGdldC5Ib2xvLkxpZ2h0LlRpbWVQaWNrZXI8L2l0ZW0+CiAKKyAgICAgICAgPCEtLSBUaW1lUGlja2VyIEhlYWRlciBiYWNrZ3JvdW5kIGNvbG9yIC0tPgorICAgICAgICA8aXRlbSBuYW1lPSJ0aW1lUGlja2VySGVhZGVyQmFja2dyb3VuZENvbG9yIj5AYW5kcm9pZDpjb2xvci90aW1lcGlja2VyX2RlZmF1bHRfYmFja2dyb3VuZF9ob2xvX2xpZ2h0PC9pdGVtPgorCisgICAgICAgIDwhLS0gVGltZVBpY2tlciBIZWFkZXIgdGltZSBsYWJlbCB0ZXh0IGFwcGVhcmFuY2UgLS0+CisgICAgICAgIDxpdGVtIG5hbWU9InRpbWVQaWNrZXJIZWFkZXJUaW1lTGFiZWxUZXh0QXBwZWFyYW5jZSI+QHN0eWxlL1RleHRBcHBlYXJhbmNlLkhvbG8uTGlnaHQuVGltZVBpY2tlci5UaW1lTGFiZWw8L2l0ZW0+CisKKyAgICAgICAgPCEtLSBUaW1lUGlja2VyIEhlYWRlciBhbSBwbSBsYWJlbCB0ZXh0IGFwcGVhcmFuY2UgLS0+CisgICAgICAgIDxpdGVtIG5hbWU9InRpbWVQaWNrZXJIZWFkZXJBbVBtTGFiZWxUZXh0QXBwZWFyYW5jZSI+QHN0eWxlL1RleHRBcHBlYXJhbmNlLkhvbG8uTGlnaHQuVGltZVBpY2tlci5BbVBtTGFiZWw8L2l0ZW0+CisKKyAgICAgICAgPCEtLSBUaW1lUGlja2VyIGRpYWxvZyB0aGVtZSAtLT4KKyAgICAgICAgPGl0ZW0gbmFtZT0idGltZVBpY2tlckRpYWxvZ1RoZW1lIj5AYW5kcm9pZDpzdHlsZS9UaGVtZS5Ib2xvLkxpZ2h0LkRpYWxvZy5UaW1lUGlja2VyPC9pdGVtPgorCiAgICAgICAgIDwhLS0gRGF0ZVBpY2tlciBzdHlsZSAtLT4KICAgICAgICAgPGl0ZW0gbmFtZT0iZGF0ZVBpY2tlclN0eWxlIj5Ac3R5bGUvV2lkZ2V0LkhvbG8uTGlnaHQuRGF0ZVBpY2tlcjwvaXRlbT4KIApAQCAtMTcyOSw2ICsxNzc3LDE0IEBACiAgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6d2luZG93TWluV2lkdGhNaW5vciI+QGFuZHJvaWQ6ZGltZW4vZGlhbG9nX21pbl93aWR0aF9taW5vcjwvaXRlbT4KICAgICA8L3N0eWxlPgogCisgICAgPCEtLSBIb2xvIHRoZW1lIGZvciB0aGUgVGltZVBpY2tlciBkaWFsb2cgd2luZG93cywgd2hpY2ggaXMgdXNlZCBieSB0aGUKKyAgICAgICAgIHtAbGluayBhbmRyb2lkLmFwcC5UaW1lUGlja2VyRGlhbG9nfSBjbGFzcy4gLS0+CisgICAgPHN0eWxlIG5hbWU9IlRoZW1lLkhvbG8uRGlhbG9nLlRpbWVQaWNrZXIiPgorICAgICAgICA8aXRlbSBuYW1lPSJ3aW5kb3dCYWNrZ3JvdW5kIj5AYW5kcm9pZDpjb2xvci90cmFuc3BhcmVudDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0id2luZG93VGl0bGVTdHlsZSI+QGFuZHJvaWQ6c3R5bGUvRGlhbG9nV2luZG93VGl0bGUuSG9sbzwvaXRlbT4KKyAgICAgICAgPGl0ZW0gbmFtZT0id2luZG93Q29udGVudE92ZXJsYXkiPkBudWxsPC9pdGVtPgorICAgIDwvc3R5bGU+CisKICAgICA8IS0tIFRoZW1lIGZvciBhIHdpbmRvdyB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIGVpdGhlciBmdWxsLXNjcmVlbiBvbgogICAgICAgICAgc21hbGxlciBzY3JlZW5zIChzbWFsbCwgbm9ybWFsKSBvciBhcyBhIGRpYWxvZyBvbiBsYXJnZXIgc2NyZWVucwogICAgICAgICAgKGxhcmdlLCB4bGFyZ2UpLiAtLT4KQEAgLTE4NDQsNiArMTkwMCwxNCBAQAogICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOndpbmRvd01pbldpZHRoTWlub3IiPkBhbmRyb2lkOmRpbWVuL2RpYWxvZ19taW5fd2lkdGhfbWlub3I8L2l0ZW0+CiAgICAgPC9zdHlsZT4KIAorICAgIDwhLS0gSG9sbyBMaWdodCB0aGVtZSBmb3IgdGhlIFRpbWVQaWNrZXIgZGlhbG9nIHdpbmRvd3MsIHdoaWNoIGlzIHVzZWQgYnkgdGhlCisgICAgICAgICB7QGxpbmsgYW5kcm9pZC5hcHAuVGltZVBpY2tlckRpYWxvZ30gY2xhc3MuIC0tPgorICAgIDxzdHlsZSBuYW1lPSJUaGVtZS5Ib2xvLkxpZ2h0LkRpYWxvZy5UaW1lUGlja2VyIj4KKyAgICAgICAgPGl0ZW0gbmFtZT0id2luZG93QmFja2dyb3VuZCI+QGFuZHJvaWQ6Y29sb3IvdHJhbnNwYXJlbnQ8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9IndpbmRvd1RpdGxlU3R5bGUiPkBhbmRyb2lkOnN0eWxlL0RpYWxvZ1dpbmRvd1RpdGxlLkhvbG8uTGlnaHQ8L2l0ZW0+CisgICAgICAgIDxpdGVtIG5hbWU9IndpbmRvd0NvbnRlbnRPdmVybGF5Ij5AbnVsbDwvaXRlbT4KKyAgICA8L3N0eWxlPgorCiAgICAgPCEtLSBUaGVtZSBmb3IgYSBwcmVzZW50YXRpb24gd2luZG93IG9uIGEgc2Vjb25kYXJ5IGRpc3BsYXkuIC0tPgogICAgIDxzdHlsZSBuYW1lPSJUaGVtZS5Ib2xvLkxpZ2h0LkRpYWxvZy5QcmVzZW50YXRpb24iIHBhcmVudD0iQGFuZHJvaWQ6c3R5bGUvVGhlbWUuSG9sby5MaWdodC5Ob0FjdGlvbkJhci5GdWxsc2NyZWVuIiA+CiAgICAgPC9zdHlsZT4KQEAgLTE4NjEsNCArMTkyNSwxMSBAQAogICAgIDxzdHlsZSBuYW1lPSJUaGVtZS5Ib2xvLldhbGxwYXBlci5Ob1RpdGxlQmFyIj4KICAgICAgICAgPGl0ZW0gbmFtZT0iYW5kcm9pZDp3aW5kb3dOb1RpdGxlIj50cnVlPC9pdGVtPgogICAgIDwvc3R5bGU+CisKKyAgICA8IS0tIERlZmF1bHQgUXVhbnR1bSBQYXBlciB0aGVtZS4gLS0+CisgICAgPHN0eWxlIG5hbWU9IlRoZW1lLlF1YW50dW0iIHBhcmVudD0iQGFuZHJvaWQ6c3R5bGUvVGhlbWUuSG9sby5MaWdodCI+CisgICAgICAgIDxpdGVtIG5hbWU9ImFuZHJvaWQ6d2luZG93Q29udGVudFRyYW5zaXRpb25zIj50cnVlPC9pdGVtPgorICAgICAgICA8aXRlbSBuYW1lPSJhbmRyb2lkOndpbmRvd0FuaW1hdGlvblN0eWxlIj5AYW5kcm9pZDpzdHlsZS9BbmltYXRpb24uUXVhbnR1bS5BY3Rpdml0eTwvaXRlbT4KKyAgICA8L3N0eWxlPgorCiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMvdGhlbWVzX2RldmljZV9kZWZhdWx0cy54bWwgYi9jb3JlL3Jlcy9yZXMvdmFsdWVzL3RoZW1lc19kZXZpY2VfZGVmYXVsdHMueG1sCmluZGV4IDcyMWM2YjAuLjE5NTU2YTEgMTAwNjQ0Ci0tLSBhL2NvcmUvcmVzL3Jlcy92YWx1ZXMvdGhlbWVzX2RldmljZV9kZWZhdWx0cy54bWwKKysrIGIvY29yZS9yZXMvcmVzL3ZhbHVlcy90aGVtZXNfZGV2aWNlX2RlZmF1bHRzLnhtbApAQCAtMTk0LDYgKzE5NCwxNSBAQAogICAgICAgICA8IS0tIFRpbWVQaWNrZXIgc3R5bGUgLS0+CiAgICAgICAgIDxpdGVtIG5hbWU9InRpbWVQaWNrZXJTdHlsZSI+QHN0eWxlL1dpZGdldC5EZXZpY2VEZWZhdWx0LlRpbWVQaWNrZXI8L2l0ZW0+CiAKKyAgICAgICAgPCEtLSBUaW1lUGlja2VyIEhlYWRlciB0aW1lIGxhYmVsIHRleHQgYXBwZWFyYW5jZSAtLT4KKyAgICAgICAgPGl0ZW0gbmFtZT0idGltZVBpY2tlckhlYWRlclRpbWVMYWJlbFRleHRBcHBlYXJhbmNlIj5Ac3R5bGUvVGV4dEFwcGVhcmFuY2UuRGV2aWNlRGVmYXVsdC5UaW1lUGlja2VyLlRpbWVMYWJlbDwvaXRlbT4KKworICAgICAgICA8IS0tIFRpbWVQaWNrZXIgSGVhZGVyIGFtIHBtIGxhYmVsIHRleHQgYXBwZWFyYW5jZSAtLT4KKyAgICAgICAgPGl0ZW0gbmFtZT0idGltZVBpY2tlckhlYWRlckFtUG1MYWJlbFRleHRBcHBlYXJhbmNlIj5Ac3R5bGUvVGV4dEFwcGVhcmFuY2UuRGV2aWNlRGVmYXVsdC5UaW1lUGlja2VyLkFtUG1MYWJlbDwvaXRlbT4KKworICAgICAgICA8IS0tIFRpbWVQaWNrZXIgZGlhbG9nIHRoZW1lIC0tPgorICAgICAgICA8aXRlbSBuYW1lPSJ0aW1lUGlja2VyRGlhbG9nVGhlbWUiPkBhbmRyb2lkOnN0eWxlL1RoZW1lLkRldmljZURlZmF1bHQuRGlhbG9nLlRpbWVQaWNrZXI8L2l0ZW0+CisKICAgICAgICAgPCEtLSBEYXRlUGlja2VyIHN0eWxlIC0tPgogICAgICAgICA8aXRlbSBuYW1lPSJkYXRlUGlja2VyU3R5bGUiPkBzdHlsZS9XaWRnZXQuRGV2aWNlRGVmYXVsdC5EYXRlUGlja2VyPC9pdGVtPgogCkBAIC0zNjMsNiArMzcyLDE1IEBACiAgICAgICAgIDwhLS0gVGltZVBpY2tlciBzdHlsZSAtLT4KICAgICAgICAgPGl0ZW0gbmFtZT0idGltZVBpY2tlclN0eWxlIj5Ac3R5bGUvV2lkZ2V0LkRldmljZURlZmF1bHQuTGlnaHQuVGltZVBpY2tlcjwvaXRlbT4KIAorICAgICAgICA8IS0tIFRpbWVQaWNrZXIgSGVhZGVyIHRpbWUgbGFiZWwgdGV4dCBhcHBlYXJhbmNlIC0tPgorICAgICAgICA8aXRlbSBuYW1lPSJ0aW1lUGlja2VySGVhZGVyVGltZUxhYmVsVGV4dEFwcGVhcmFuY2UiPkBzdHlsZS9UZXh0QXBwZWFyYW5jZS5EZXZpY2VEZWZhdWx0LkxpZ2h0LlRpbWVQaWNrZXIuVGltZUxhYmVsPC9pdGVtPgorCisgICAgICAgIDwhLS0gVGltZVBpY2tlciBIZWFkZXIgYW0gcG0gbGFiZWwgdGV4dCBhcHBlYXJhbmNlIC0tPgorICAgICAgICA8aXRlbSBuYW1lPSJ0aW1lUGlja2VySGVhZGVyQW1QbUxhYmVsVGV4dEFwcGVhcmFuY2UiPkBzdHlsZS9UZXh0QXBwZWFyYW5jZS5EZXZpY2VEZWZhdWx0LkxpZ2h0LlRpbWVQaWNrZXIuQW1QbUxhYmVsPC9pdGVtPgorCisgICAgICAgIDwhLS0gVGltZVBpY2tlciBkaWFsb2cgdGhlbWUgLS0+CisgICAgICAgIDxpdGVtIG5hbWU9InRpbWVQaWNrZXJEaWFsb2dUaGVtZSI+QGFuZHJvaWQ6c3R5bGUvVGhlbWUuRGV2aWNlRGVmYXVsdC5MaWdodC5EaWFsb2cuVGltZVBpY2tlcjwvaXRlbT4KKwogICAgICAgICA8IS0tIERhdGVQaWNrZXIgc3R5bGUgLS0+CiAgICAgICAgIDxpdGVtIG5hbWU9ImRhdGVQaWNrZXJTdHlsZSI+QHN0eWxlL1dpZGdldC5EZXZpY2VEZWZhdWx0LkxpZ2h0LkRhdGVQaWNrZXI8L2l0ZW0+CiAKZGlmZiAtLWdpdCBhL2NvcmUvdGVzdHMvY29yZXRlc3RzL0FuZHJvaWQubWsgYi9jb3JlL3Rlc3RzL2NvcmV0ZXN0cy9BbmRyb2lkLm1rCmluZGV4IGJlNTU0NDQuLjczYTUzY2IgMTAwNjQ0Ci0tLSBhL2NvcmUvdGVzdHMvY29yZXRlc3RzL0FuZHJvaWQubWsKKysrIGIvY29yZS90ZXN0cy9jb3JldGVzdHMvQW5kcm9pZC5tawpAQCAtMjIsNiArMjIsNyBAQAogCSQoY2FsbCBhbGwtamF2YS1maWxlcy11bmRlciwgRW5hYmxlZFRlc3RBcHAvc3JjKQogCiBMT0NBTF9EWF9GTEFHUyA6PSAtLWNvcmUtbGlicmFyeQorTE9DQUxfQUFQVF9GTEFHUyA9IC0wIGRhdCAtMCBnbGQKIExPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBjb3JlLXRlc3RzLXN1cHBvcnQgYW5kcm9pZC1jb21tb24gZnJhbWV3b3Jrcy1jb3JlLXV0aWwtbGliIG1vY2t3ZWJzZXJ2ZXIgZ3VhdmEgbGl0dGxlbW9jawogTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gYW5kcm9pZC50ZXN0LnJ1bm5lciBjb25zY3J5cHQgdGVsZXBob255LWNvbW1vbgogTE9DQUxfUEFDS0FHRV9OQU1FIDo9IEZyYW1ld29ya3NDb3JlVGVzdHMKZGlmZiAtLWdpdCBhL2NvcmUvdGVzdHMvY29yZXRlc3RzL2Fzc2V0cy9iYWNrdXBfbW9jay5kYXQgYi9jb3JlL3Rlc3RzL2NvcmV0ZXN0cy9hc3NldHMvYmFja3VwX21vY2suZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3MGI1NzMKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3Rlc3RzL2NvcmV0ZXN0cy9hc3NldHMvYmFja3VwX21vY2suZGF0CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvcmUvdGVzdHMvY29yZXRlc3RzL2Fzc2V0cy9iYWNrdXBfbW9jay5nbGQgYi9jb3JlL3Rlc3RzL2NvcmV0ZXN0cy9hc3NldHMvYmFja3VwX21vY2suZ2xkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxOTdjMjMKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3Rlc3RzL2NvcmV0ZXN0cy9hc3NldHMvYmFja3VwX21vY2suZ2xkCkBAIC0wLDAgKzEsNCBAQAora2V5MToKK2tleTJhOllXSmpaR1ZtWnc9PQora2V5M2JjOllXSmpaR1ZtWjJnPQora2V5NGRhZDoKZGlmZiAtLWdpdCBhL2NvcmUvdGVzdHMvY29yZXRlc3RzL2Fzc2V0cy9iYWNrdXBfcmVhbC5kYXQgYi9jb3JlL3Rlc3RzL2NvcmV0ZXN0cy9hc3NldHMvYmFja3VwX3JlYWwuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyNjI1NjgKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3Rlc3RzL2NvcmV0ZXN0cy9hc3NldHMvYmFja3VwX3JlYWwuZGF0CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvcmUvdGVzdHMvY29yZXRlc3RzL2Fzc2V0cy9iYWNrdXBfcmVhbC5nbGQgYi9jb3JlL3Rlc3RzL2NvcmV0ZXN0cy9hc3NldHMvYmFja3VwX3JlYWwuZ2xkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmMjhmOWIKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3Rlc3RzL2NvcmV0ZXN0cy9hc3NldHMvYmFja3VwX3JlYWwuZ2xkCkBAIC0wLDAgKzEsMyBAQAorQ0FFWUx3OkNDOFFBQm9JUjBWTUlGTjBkV0lnblAvLy8vLy8vLy8vQVNnQk1BSkFBVWdCYXBnQkkwbHVkR1Z1ZER0aFkzUnBiMjQ5WVc1a2NtOXBaQzVwYm5SbGJuUXVZV04wYVc5dUxrMUJTVTQ3WTJGMFpXZHZjbms5WVc1a2NtOXBaQzVwYm5SbGJuUXVZMkYwWldkdmNua3VURUZWVGtOSVJWSTdiR0YxYm1Ob1JteGhaM005TUhneE1ESXdNREF3TUR0amIyMXdiMjVsYm5ROVkyOXRMbWR2YjJkc1pTNWhibVJ5YjJsa0xtZGxiQzh1VTNSMVlrRndjRHRsYm1RPQorQ0FFWUxROgorQ0FFWUxBOgpkaWZmIC0tZ2l0IGEvY29yZS90ZXN0cy9jb3JldGVzdHMvc3JjL2FuZHJvaWQvYXBwL2JhY2t1cC9CYWNrdXBEYXRhVGVzdC5qYXZhIGIvY29yZS90ZXN0cy9jb3JldGVzdHMvc3JjL2FuZHJvaWQvYXBwL2JhY2t1cC9CYWNrdXBEYXRhVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjMjA0ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3Rlc3RzL2NvcmV0ZXN0cy9zcmMvYW5kcm9pZC9hcHAvYmFja3VwL0JhY2t1cERhdGFUZXN0LmphdmEKQEAgLTAsMCArMSwyOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuYXBwLmJhY2t1cDsKKworaW1wb3J0IGFuZHJvaWQuYXBwLmJhY2t1cC5CYWNrdXBEYXRhSW5wdXQ7CitpbXBvcnQgYW5kcm9pZC5hcHAuYmFja3VwLkJhY2t1cERhdGFPdXRwdXQ7CitpbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5Bc3NldEZpbGVEZXNjcmlwdG9yOworaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuQXNzZXRNYW5hZ2VyOworaW1wb3J0IGFuZHJvaWQub3MuQnVuZGxlOworaW1wb3J0IGFuZHJvaWQub3MuRW52aXJvbm1lbnQ7CitpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWxGaWxlRGVzY3JpcHRvcjsKK2ltcG9ydCBhbmRyb2lkLnRlc3QuQW5kcm9pZFRlc3RDYXNlOworaW1wb3J0IGFuZHJvaWQudGVzdC5JbnN0cnVtZW50YXRpb25UZXN0Q2FzZTsKK2ltcG9ydCBhbmRyb2lkLnV0aWwuQmFzZTY0OworaW1wb3J0IGFuZHJvaWQudXRpbC5Mb2c7CitpbXBvcnQgb3JnLmpzb24uSlNPTk9iamVjdDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVSZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5sYW5nLkV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworCitwdWJsaWMgY2xhc3MgQmFja3VwRGF0YVRlc3QgZXh0ZW5kcyBBbmRyb2lkVGVzdENhc2UgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBLRVkxID0gImtleTEiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBLRVkyID0gImtleTJhIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgS0VZMyA9ICJrZXkzYmMiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBLRVk0ID0gImtleTRkYWQiOyAgLy8gdmFyaWFibGUga2V5IGxlbmd0aHMgdG8gdGVzdCBwYWRkaW5nCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gS0VZUyA9IHtLRVkxLCBLRVkyLCBLRVkzLCBLRVk0fTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBMSA9ICJhYmNkZWYiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBMiA9ICJhYmNkZWZnIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQTMgPSAiYWJjZGVmZ2giOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBNCA9ICJhYmNkZWZmaGkiOyAvL3ZhcmlhYmxlIGRhdGEgbGVuZ3RocyB0byB0ZXN0IHBhZGRpbmcKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBEQVRBID0ge0RBVEExLCBEQVRBMiwgREFUQTMsIERBVEE0fTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEFHID0gIkJhY2t1cERhdGFUZXN0IjsKKworICAgIHByaXZhdGUgRmlsZSBtRmlsZTsKKyAgICBwcml2YXRlIFBhcmNlbEZpbGVEZXNjcmlwdG9yIG1EYXRhRmlsZTsKKyAgICBwcml2YXRlIEZpbGUgbURpcmVjdG9yeTsKKyAgICBwcml2YXRlIEJ1bmRsZSBtU3RhdHVzQnVuZGxlOworICAgIHByaXZhdGUgQXNzZXRNYW5hZ2VyIG1Bc3NldHM7CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICBtRGlyZWN0b3J5ID0gbmV3IEZpbGUoRW52aXJvbm1lbnQuZ2V0RXh0ZXJuYWxTdG9yYWdlRGlyZWN0b3J5KCksICJ0ZXN0X2RhdGEiKTsKKyAgICAgICAgbURpcmVjdG9yeS5ta2RpcnMoKTsKKyAgICAgICAgbUFzc2V0cyA9IG1Db250ZXh0LmdldEFzc2V0cygpOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHByb3RlY3RlZCB2b2lkIHRlYXJEb3duKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyLnRlYXJEb3duKCk7CisgICAgICAgIGlmIChtRGF0YUZpbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgbURhdGFGaWxlLmNsb3NlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2luZ2xlKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbUZpbGUgPSBuZXcgRmlsZShtRGlyZWN0b3J5LCAiYmFja3VwX21peGVkX3NpbmxnZS5kYXQiKTsKKyAgICAgICAgb3BlbkZvcldyaXRpbmcoKTsKKyAgICAgICAgQmFja3VwRGF0YU91dHB1dCBiZG8gPSBuZXcgQmFja3VwRGF0YU91dHB1dChtRGF0YUZpbGUuZ2V0RmlsZURlc2NyaXB0b3IoKSk7CisKKyAgICAgICAgd3JpdGVFbnRpdHkoYmRvLCBLRVkxLCBEQVRBMS5nZXRCeXRlcygpKTsKKworICAgICAgICBtRGF0YUZpbGUuY2xvc2UoKTsKKyAgICAgICAgb3BlbkZvclJlYWRpbmcoKTsKKworICAgICAgICBCYWNrdXBEYXRhSW5wdXQgYmRpID0gbmV3IEJhY2t1cERhdGFJbnB1dChtRGF0YUZpbGUuZ2V0RmlsZURlc2NyaXB0b3IoKSk7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChiZGkucmVhZE5leHRIZWFkZXIoKSkgeworICAgICAgICAgICAgcmVhZEFuZFZlcmlmeUVudGl0eShiZGksIEtFWTEsIERBVEExLmdldEJ5dGVzKCkpOworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRFcXVhbHMoIm9ubHkgb25lIGVudGl0eSBpbiB0aGlzIHN0cmVhbSIsIDEsIGNvdW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0TXVsdGlwbGUoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBtRmlsZSA9IG5ldyBGaWxlKG1EaXJlY3RvcnksICJiYWNrdXBfbXVsdGlwbGVfdGVzdC5kYXQiKTsKKyAgICAgICAgb3BlbkZvcldyaXRpbmcoKTsKKyAgICAgICAgQmFja3VwRGF0YU91dHB1dCBiZG8gPSBuZXcgQmFja3VwRGF0YU91dHB1dChtRGF0YUZpbGUuZ2V0RmlsZURlc2NyaXB0b3IoKSk7CisKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IEtFWVMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHdyaXRlRW50aXR5KGJkbywgS0VZU1tpXSwgREFUQVtpXS5nZXRCeXRlcygpKTsKKyAgICAgICAgfQorCisgICAgICAgIG1EYXRhRmlsZS5jbG9zZSgpOworICAgICAgICBvcGVuRm9yUmVhZGluZygpOworCisgICAgICAgIEJhY2t1cERhdGFJbnB1dCBiZGkgPSBuZXcgQmFja3VwRGF0YUlucHV0KG1EYXRhRmlsZS5nZXRGaWxlRGVzY3JpcHRvcigpKTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGJkaS5yZWFkTmV4dEhlYWRlcigpKSB7CisgICAgICAgICAgICByZWFkQW5kVmVyaWZ5RW50aXR5KGJkaSwgS0VZU1tjb3VudF0sIERBVEFbY291bnRdLmdldEJ5dGVzKCkpOworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRFcXVhbHMoImZvdXIgZW50aXRpZXMgaW4gdGhpcyBzdHJlYW0iLCBLRVlTLmxlbmd0aCwgY291bnQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3REZWxldGUoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBtRmlsZSA9IG5ldyBGaWxlKG1EaXJlY3RvcnksICJiYWNrdXBfZGVsZXRlX3Rlc3QuZGF0Iik7CisgICAgICAgIG9wZW5Gb3JXcml0aW5nKCk7CisgICAgICAgIEJhY2t1cERhdGFPdXRwdXQgYmRvID0gbmV3IEJhY2t1cERhdGFPdXRwdXQobURhdGFGaWxlLmdldEZpbGVEZXNjcmlwdG9yKCkpOworCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBLRVlTLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBkZWxldGVFbnRpdHkoYmRvLCBLRVlTW2ldKTsKKyAgICAgICAgfQorCisgICAgICAgIG1EYXRhRmlsZS5jbG9zZSgpOworICAgICAgICBvcGVuRm9yUmVhZGluZygpOworCisgICAgICAgIEJhY2t1cERhdGFJbnB1dCBiZGkgPSBuZXcgQmFja3VwRGF0YUlucHV0KG1EYXRhRmlsZS5nZXRGaWxlRGVzY3JpcHRvcigpKTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGJkaS5yZWFkTmV4dEhlYWRlcigpKSB7CisgICAgICAgICAgICByZWFkQW5kVmVyaWZ5RGVsZXRlZEVudGl0eShiZGksIEtFWVNbY291bnRdKTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3VyIGRlbGV0ZXMgaW4gdGhpcyBzdHJlYW0iLCBLRVlTLmxlbmd0aCwgY291bnQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RNaXhlZCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIG1GaWxlID0gbmV3IEZpbGUobURpcmVjdG9yeSwgImJhY2t1cF9taXhlZF90ZXN0LmRhdCIpOworICAgICAgICBvcGVuRm9yV3JpdGluZygpOworCisgICAgICAgIEJhY2t1cERhdGFPdXRwdXQgYmRvID0gbmV3IEJhY2t1cERhdGFPdXRwdXQobURhdGFGaWxlLmdldEZpbGVEZXNjcmlwdG9yKCkpOworCisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgZGVsZXRlRW50aXR5KGJkbywgS0VZU1tpXSk7IGkrKzsKKyAgICAgICAgd3JpdGVFbnRpdHkoYmRvLCBLRVlTW2ldLCBEQVRBW2ldLmdldEJ5dGVzKCkpOyBpKys7CisgICAgICAgIHdyaXRlRW50aXR5KGJkbywgS0VZU1tpXSwgREFUQVtpXS5nZXRCeXRlcygpKTsgaSsrOworICAgICAgICBkZWxldGVFbnRpdHkoYmRvLCBLRVlTW2ldKTsgaSsrOworCisgICAgICAgIG1EYXRhRmlsZS5jbG9zZSgpOworICAgICAgICBvcGVuRm9yUmVhZGluZygpOworCisgICAgICAgIEJhY2t1cERhdGFJbnB1dCBiZGkgPSBuZXcgQmFja3VwRGF0YUlucHV0KG1EYXRhRmlsZS5nZXRGaWxlRGVzY3JpcHRvcigpKTsKKyAgICAgICAgaW50IG91dCA9IDA7CisgICAgICAgIGFzc2VydFRydWUoYmRpLnJlYWROZXh0SGVhZGVyKCkpOworICAgICAgICByZWFkQW5kVmVyaWZ5RGVsZXRlZEVudGl0eShiZGksIEtFWVNbb3V0XSk7IG91dCsrOworICAgICAgICBhc3NlcnRUcnVlKGJkaS5yZWFkTmV4dEhlYWRlcigpKTsKKyAgICAgICAgcmVhZEFuZFZlcmlmeUVudGl0eShiZGksIEtFWVNbb3V0XSwgREFUQVtvdXRdLmdldEJ5dGVzKCkpOyBvdXQrKzsKKyAgICAgICAgYXNzZXJ0VHJ1ZShiZGkucmVhZE5leHRIZWFkZXIoKSk7CisgICAgICAgIHJlYWRBbmRWZXJpZnlFbnRpdHkoYmRpLCBLRVlTW291dF0sIERBVEFbb3V0XS5nZXRCeXRlcygpKTsgb3V0Kys7CisgICAgICAgIGFzc2VydFRydWUoYmRpLnJlYWROZXh0SGVhZGVyKCkpOworICAgICAgICByZWFkQW5kVmVyaWZ5RGVsZXRlZEVudGl0eShiZGksIEtFWVNbb3V0XSk7IG91dCsrOworICAgICAgICBhc3NlcnRGYWxzZSgiZm91ciBpdGVtcyBpbiB0aGlzIHN0cmVhbSIsCisgICAgICAgICAgICAgICAgYmRpLnJlYWROZXh0SGVhZGVyKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RSZWFkTW9ja0RhdGEoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBjb3B5QXNzZXRUb0ZpbGUoImJhY2t1cF9tb2NrLmRhdCIsICJiYWNrdXBfcmVhZF9tb2NrX3Rlc3QuZGF0Iik7CisKKyAgICAgICAgb3BlbkZvclJlYWRpbmcoKTsKKyAgICAgICAgQmFja3VwRGF0YUlucHV0IGJkaSA9IG5ldyBCYWNrdXBEYXRhSW5wdXQobURhdGFGaWxlLmdldEZpbGVEZXNjcmlwdG9yKCkpOworICAgICAgICBCdWZmZXJlZFJlYWRlciB0cnV0aCA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIoCisgICAgICAgICAgICAgICAgbUFzc2V0cy5vcGVuRmQoImJhY2t1cF9tb2NrLmdsZCIpLmNyZWF0ZUlucHV0U3RyZWFtKCkpKTsKKyAgICAgICAgd2hpbGUoIGJkaS5yZWFkTmV4dEhlYWRlcigpKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBleHBlY3RlZCA9IHRydXRoLnJlYWRMaW5lKCkuc3BsaXQoIjoiKTsKKyAgICAgICAgICAgIGJ5dGVbXSBleHBlY3RlZEJ5dGVzID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZC5sZW5ndGggPiAxKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRCeXRlcyA9IEJhc2U2NC5kZWNvZGUoZXhwZWN0ZWRbMV0sIEJhc2U2NC5ERUZBVUxUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSBiZGkuZ2V0S2V5KCk7CisgICAgICAgICAgICBpbnQgZGF0YVNpemUgPSBiZGkuZ2V0RGF0YVNpemUoKTsKKworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJ3cm9uZyBrZXkiLCBleHBlY3RlZFswXSwga2V5KTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygid3JvbmcgbGVuZ3RoIGZvciBrZXkgIiArIGtleSwKKyAgICAgICAgICAgICAgICAgICAgKGV4cGVjdGVkQnl0ZXMgPT0gbnVsbCA/IC0xOiBleHBlY3RlZEJ5dGVzLmxlbmd0aCksIGRhdGFTaXplKTsKKyAgICAgICAgICAgIGlmIChkYXRhU2l6ZSAhPSAtMSkgeworICAgICAgICAgICAgICAgIGJ5dGVbXSBidWZmZXIgPSBuZXcgYnl0ZVtkYXRhU2l6ZV07CisgICAgICAgICAgICAgICAgYmRpLnJlYWRFbnRpdHlEYXRhKGJ1ZmZlciwgMCwgZGF0YVNpemUpOworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygid3JvbmcgZGF0YSBmb3Iga2V5ICIgKyBrZXksIGV4cGVjdGVkWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgQmFzZTY0LmVuY29kZVRvU3RyaW5nKGJ1ZmZlciwgMCwgZGF0YVNpemUsIEJhc2U2NC5OT19XUkFQKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0TnVsbCgidGhlcmUgYXJlIHVudXNlZCBlbnRyaWVzIGluIHRoZSBnb2xkZW4gZmlsZSIsIHRydXRoLnJlYWRMaW5lKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RSZWFkUmVhbERhdGEoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBjb3B5QXNzZXRUb0ZpbGUoImJhY2t1cF9yZWFsLmRhdCIsICJiYWNrdXBfcmVhZF9yZWFsX3Rlc3QuZGF0Iik7CisKKyAgICAgICAgb3BlbkZvclJlYWRpbmcoKTsKKyAgICAgICAgQmFja3VwRGF0YUlucHV0IGJkaSA9IG5ldyBCYWNrdXBEYXRhSW5wdXQobURhdGFGaWxlLmdldEZpbGVEZXNjcmlwdG9yKCkpOworICAgICAgICBCdWZmZXJlZFJlYWRlciB0cnV0aCA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIoCisgICAgICAgICAgICAgICAgbUFzc2V0cy5vcGVuRmQoImJhY2t1cF9yZWFsLmdsZCIpLmNyZWF0ZUlucHV0U3RyZWFtKCkpKTsKKworICAgICAgICB3aGlsZShiZGkucmVhZE5leHRIZWFkZXIoKSkgeworICAgICAgICAgICAgU3RyaW5nW10gZXhwZWN0ZWQgPSB0cnV0aC5yZWFkTGluZSgpLnNwbGl0KCI6Iik7CisgICAgICAgICAgICBieXRlW10gZXhwZWN0ZWRCeXRlcyA9IG51bGw7CisgICAgICAgICAgICBpZiAoZXhwZWN0ZWQubGVuZ3RoID4gMSkgeworICAgICAgICAgICAgICAgIGV4cGVjdGVkQnl0ZXMgPSBCYXNlNjQuZGVjb2RlKGV4cGVjdGVkWzFdLCBCYXNlNjQuREVGQVVMVCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gYmRpLmdldEtleSgpOworICAgICAgICAgICAgaW50IGRhdGFTaXplID0gYmRpLmdldERhdGFTaXplKCk7CisKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygid3Jvbmcga2V5IiwgZXhwZWN0ZWRbMF0sIGtleSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIndyb25nIGxlbmd0aCBmb3Iga2V5ICIgKyBrZXksCisgICAgICAgICAgICAgICAgICAgIChleHBlY3RlZEJ5dGVzID09IG51bGwgPyAtMTogZXhwZWN0ZWRCeXRlcy5sZW5ndGgpLCBkYXRhU2l6ZSk7CisgICAgICAgICAgICBpZiAoZGF0YVNpemUgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBieXRlW10gYnVmZmVyID0gbmV3IGJ5dGVbZGF0YVNpemVdOworICAgICAgICAgICAgICAgIGJkaS5yZWFkRW50aXR5RGF0YShidWZmZXIsIDAsIGRhdGFTaXplKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIndyb25nIGRhdGEgZm9yIGtleSAiICsga2V5LCBleHBlY3RlZFsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEJhc2U2NC5lbmNvZGVUb1N0cmluZyhidWZmZXIsIDAsIGRhdGFTaXplLCBCYXNlNjQuTk9fV1JBUCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGFzc2VydE51bGwoInRoZXJlIGFyZSB1bnVzZWQgZW50cmllcyBpbiB0aGUgZ29sZGVuIGZpbGUiLCB0cnV0aC5yZWFkTGluZSgpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY29weUFzc2V0VG9GaWxlKFN0cmluZyBzb3VyY2UsIFN0cmluZyBkZXN0aW5hdGlvbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbUZpbGUgPSBuZXcgRmlsZShtRGlyZWN0b3J5LCBkZXN0aW5hdGlvbik7CisgICAgICAgIG9wZW5Gb3JXcml0aW5nKCk7CisgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBmaWxlSW5wdXRTdHJlYW0gPSBtQXNzZXRzLm9wZW5GZChzb3VyY2UpLmNyZWF0ZUlucHV0U3RyZWFtKCk7CisgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gZmlsZU91dHB1dFN0cmVhbSA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKG1EYXRhRmlsZS5nZXRGaWxlRGVzY3JpcHRvcigpKTsKKyAgICAgICAgYnl0ZVtdIGNvcHlidWZmZXIgPSBuZXcgYnl0ZVsxMDI0XTsKKyAgICAgICAgaW50IG51bUJ5dGVzID0gZmlsZUlucHV0U3RyZWFtLnJlYWQoY29weWJ1ZmZlcik7CisgICAgICAgIGZpbGVPdXRwdXRTdHJlYW0ud3JpdGUoY29weWJ1ZmZlciwgMCwgbnVtQnl0ZXMpOworICAgICAgICBmaWxlT3V0cHV0U3RyZWFtLmNsb3NlKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIG9wZW5Gb3JXcml0aW5nKCkgdGhyb3dzIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiB7CisgICAgICAgIG1EYXRhRmlsZSA9IFBhcmNlbEZpbGVEZXNjcmlwdG9yLm9wZW4obUZpbGUsCisgICAgICAgICAgICAgICAgUGFyY2VsRmlsZURlc2NyaXB0b3IuTU9ERV9XUklURV9PTkxZIHwKKyAgICAgICAgICAgICAgICAgICAgICAgIFBhcmNlbEZpbGVEZXNjcmlwdG9yLk1PREVfQ1JFQVRFIHwKKyAgICAgICAgICAgICAgICAgICAgICAgIFBhcmNlbEZpbGVEZXNjcmlwdG9yLk1PREVfVFJVTkNBVEUpOyAgLy8gTWFrZSBhbiBlbXB0eSBmaWxlIGlmIG5lY2Vzc2FyeQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBvcGVuRm9yUmVhZGluZygpIHRocm93cyBGaWxlTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICBtRGF0YUZpbGUgPSBQYXJjZWxGaWxlRGVzY3JpcHRvci5vcGVuKG1GaWxlLAorICAgICAgICAgICAgICAgIFBhcmNlbEZpbGVEZXNjcmlwdG9yLk1PREVfUkVBRF9PTkxZIHwKKyAgICAgICAgICAgICAgICAgICAgICAgIFBhcmNlbEZpbGVEZXNjcmlwdG9yLk1PREVfQ1JFQVRFKTsgIC8vIE1ha2UgYW4gZW1wdHkgZmlsZSBpZiBuZWNlc3NhcnkKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgd3JpdGVFbnRpdHkoQmFja3VwRGF0YU91dHB1dCBiZG8sIFN0cmluZyBrZXksIGJ5dGVbXSBkYXRhKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpbnQgc3RhdHVzID0gYmRvLndyaXRlRW50aXR5SGVhZGVyKGtleSwgZGF0YS5sZW5ndGgpOworICAgICAgICAvLyBkb2N1bWVudGF0aW9uIHNheXMgIm51bWJlciBvZiBieXRlcyB3cml0dGVuIiBidXQgdGhhdCdzIG5vdCB3aGF0IHdlIGdldDoKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDAsIHN0YXR1cyk7CisKKyAgICAgICAgc3RhdHVzID0gYmRvLndyaXRlRW50aXR5RGF0YShkYXRhLCBkYXRhLmxlbmd0aCk7CisgICAgICAgIC8vIGRvY3VtZW50YXRpb24gc2F5cyAibnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4iIGJ1dCB0aGF0J3Mgbm90IHdoYXQgd2UgZ2V0OgorICAgICAgICBhc3NlcnRFcXVhbHMoMCwgc3RhdHVzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZGVsZXRlRW50aXR5KEJhY2t1cERhdGFPdXRwdXQgYmRvLCBTdHJpbmcga2V5KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpbnQgc3RhdHVzID0gYmRvLndyaXRlRW50aXR5SGVhZGVyKGtleSwgLTEpOworICAgICAgICAvLyBkb2N1bWVudGF0aW9uIHNheXMgIm51bWJlciBvZiBieXRlcyB3cml0dGVuIiBidXQgdGhhdCdzIG5vdCB3aGF0IHdlIGdldDoKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDAsIHN0YXR1cyk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRBbmRWZXJpZnlFbnRpdHkoQmFja3VwRGF0YUlucHV0IGJkaSwgU3RyaW5nIGV4cGVjdGVkS2V5LCBieXRlW10gZXhwZWN0ZWREYXRhKQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJLZXkgbWlzbWF0Y2giLAorICAgICAgICAgICAgICAgIGV4cGVjdGVkS2V5LCBiZGkuZ2V0S2V5KCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoImRhdGEgc2l6ZSBtaXNtYXRjaCIsCisgICAgICAgICAgICAgICAgZXhwZWN0ZWREYXRhLmxlbmd0aCwgYmRpLmdldERhdGFTaXplKCkpOworICAgICAgICBieXRlW10gZGF0YSA9IG5ldyBieXRlW2JkaS5nZXREYXRhU2l6ZSgpXTsKKyAgICAgICAgYmRpLnJlYWRFbnRpdHlEYXRhKGRhdGEsIDAsIGJkaS5nZXREYXRhU2l6ZSgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJwYXlsb2FkIHNpemUgaXMgd3JvbmciLAorICAgICAgICAgICAgICAgIGV4cGVjdGVkRGF0YS5sZW5ndGgsIGRhdGEubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBheWxvYWQgbWlzbWF0Y2giLAorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZERhdGFbaV0sIGRhdGFbaV0pOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgdm9pZCByZWFkQW5kVmVyaWZ5RGVsZXRlZEVudGl0eShCYWNrdXBEYXRhSW5wdXQgYmRpLCBTdHJpbmcgZXhwZWN0ZWRLZXkpCisgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBhc3NlcnRFcXVhbHMoIktleSBtaXNtYXRjaCIsCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRLZXksIGJkaS5nZXRLZXkoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygiZGVsZXRpb24gbWlzLXJlcG9ydGVkIiwKKyAgICAgICAgICAgICAgICAtMSwgYmRpLmdldERhdGFTaXplKCkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvcmUvdGVzdHMvY29yZXRlc3RzL3NyYy9hbmRyb2lkL25ldC9TU0xTZXNzaW9uQ2FjaGVUZXN0LmphdmEgYi9jb3JlL3Rlc3RzL2NvcmV0ZXN0cy9zcmMvYW5kcm9pZC9uZXQvU1NMU2Vzc2lvbkNhY2hlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMTkzMDMKLS0tIC9kZXYvbnVsbAorKysgYi9jb3JlL3Rlc3RzL2NvcmV0ZXN0cy9zcmMvYW5kcm9pZC9uZXQvU1NMU2Vzc2lvbkNhY2hlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UKKyAqLworCitwYWNrYWdlIGFuZHJvaWQubmV0OworCitpbXBvcnQgY29tLmFuZHJvaWQub3JnLmNvbnNjcnlwdC5DbGllbnRTZXNzaW9uQ29udGV4dDsKK2ltcG9ydCBjb20uYW5kcm9pZC5vcmcuY29uc2NyeXB0LlNTTENsaWVudFNlc3Npb25DYWNoZTsKKworaW1wb3J0IGNvbS5nb29nbGUudGVzdGluZy5saXR0bGVtb2NrLkxpdHRsZU1vY2s7CisKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CisKK2ltcG9ydCBqYXZhLnNlY3VyaXR5LktleU1hbmFnZW1lbnRFeGNlcHRpb247CitpbXBvcnQgamF2YS5zZWN1cml0eS5TZWN1cmVSYW5kb207CisKK2ltcG9ydCBqYXZheC5uZXQuc3NsLktleU1hbmFnZXI7CitpbXBvcnQgamF2YXgubmV0LnNzbC5TU0xDb250ZXh0OworaW1wb3J0IGphdmF4Lm5ldC5zc2wuU1NMQ29udGV4dFNwaTsKK2ltcG9ydCBqYXZheC5uZXQuc3NsLlNTTEVuZ2luZTsKK2ltcG9ydCBqYXZheC5uZXQuc3NsLlNTTFNlcnZlclNvY2tldEZhY3Rvcnk7CitpbXBvcnQgamF2YXgubmV0LnNzbC5TU0xTZXNzaW9uQ29udGV4dDsKK2ltcG9ydCBqYXZheC5uZXQuc3NsLlNTTFNvY2tldEZhY3Rvcnk7CitpbXBvcnQgamF2YXgubmV0LnNzbC5UcnVzdE1hbmFnZXI7CisKK3B1YmxpYyBjbGFzcyBTU0xTZXNzaW9uQ2FjaGVUZXN0IGV4dGVuZHMgVGVzdENhc2UgeworCisgICAgcHVibGljIHZvaWQgdGVzdEluc3RhbGxfY29tcGF0aWJsZUNvbnRleHQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZmluYWwgU1NMQ29udGV4dCBjdHggPSBTU0xDb250ZXh0LmdldERlZmF1bHQoKTsKKyAgICAgICAgZmluYWwgU1NMQ2xpZW50U2Vzc2lvbkNhY2hlIG1vY2sgPSBMaXR0bGVNb2NrLm1vY2soU1NMQ2xpZW50U2Vzc2lvbkNhY2hlLmNsYXNzKTsKKyAgICAgICAgZmluYWwgQ2xpZW50U2Vzc2lvbkNvbnRleHQgY2xpZW50Q3R4ID0gKENsaWVudFNlc3Npb25Db250ZXh0KSBjdHguZ2V0Q2xpZW50U2Vzc2lvbkNvbnRleHQoKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgU1NMU2Vzc2lvbkNhY2hlLmluc3RhbGwobmV3IFNTTFNlc3Npb25DYWNoZShtb2NrKSwgY3R4KTsKKyAgICAgICAgICAgIGNsaWVudEN0eC5nZXRTZXNzaW9uKCJ3d3cuZm9vZ2xlLmNvbSIsIDQ0Myk7CisgICAgICAgICAgICBMaXR0bGVNb2NrLnZlcmlmeShtb2NrKS5nZXRTZXNzaW9uRGF0YShMaXR0bGVNb2NrLmFueVN0cmluZygpLCBMaXR0bGVNb2NrLmFueUludCgpKTsKKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIC8vIFJlc3RvcmUgY2FjaGVsZXNzIGJlaGF2aW91ci4KKyAgICAgICAgICAgIFNTTFNlc3Npb25DYWNoZS5pbnN0YWxsKG51bGwsIGN0eCk7CisgICAgICAgICAgICBjbGllbnRDdHguZ2V0U2Vzc2lvbigid3d3LmZvb2dsZS5jb20iLCA0NDMpOworICAgICAgICAgICAgTGl0dGxlTW9jay52ZXJpZnlOb01vcmVJbnRlcmFjdGlvbnMobW9jayk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0SW5zdGFsbF9pbmNvbXBhdGlibGVDb250ZXh0KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU1NMU2Vzc2lvbkNhY2hlLmluc3RhbGwoCisgICAgICAgICAgICAgICAgICAgIG5ldyBTU0xTZXNzaW9uQ2FjaGUoTGl0dGxlTW9jay5tb2NrKFNTTENsaWVudFNlc3Npb25DYWNoZS5jbGFzcykpLAorICAgICAgICAgICAgICAgICAgICBuZXcgRmFrZVNTTENvbnRleHQoKSk7CisgICAgICAgICAgICBmYWlsKCk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleHBlY3RlZCkge30KKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgRmFrZVNTTENvbnRleHQgZXh0ZW5kcyBTU0xDb250ZXh0IHsKKyAgICAgICAgcHJvdGVjdGVkIEZha2VTU0xDb250ZXh0KCkgeworICAgICAgICAgICAgc3VwZXIobmV3IEZha2VTU0xDb250ZXh0U3BpKCksIG51bGwsICJ0ZXN0Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgRmFrZVNTTENvbnRleHRTcGkgZXh0ZW5kcyBTU0xDb250ZXh0U3BpIHsKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGVuZ2luZUluaXQoS2V5TWFuYWdlcltdIGtleU1hbmFnZXJzLCBUcnVzdE1hbmFnZXJbXSB0cnVzdE1hbmFnZXJzLAorICAgICAgICAgICAgICAgIFNlY3VyZVJhbmRvbSBzZWN1cmVSYW5kb20pIHRocm93cyBLZXlNYW5hZ2VtZW50RXhjZXB0aW9uIHsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwcm90ZWN0ZWQgU1NMU29ja2V0RmFjdG9yeSBlbmdpbmVHZXRTb2NrZXRGYWN0b3J5KCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHJvdGVjdGVkIFNTTFNlcnZlclNvY2tldEZhY3RvcnkgZW5naW5lR2V0U2VydmVyU29ja2V0RmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHByb3RlY3RlZCBTU0xFbmdpbmUgZW5naW5lQ3JlYXRlU1NMRW5naW5lKFN0cmluZyBzLCBpbnQgaSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHJvdGVjdGVkIFNTTEVuZ2luZSBlbmdpbmVDcmVhdGVTU0xFbmdpbmUoKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwcm90ZWN0ZWQgU1NMU2Vzc2lvbkNvbnRleHQgZW5naW5lR2V0U2VydmVyU2Vzc2lvbkNvbnRleHQoKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwcm90ZWN0ZWQgU1NMU2Vzc2lvbkNvbnRleHQgZW5naW5lR2V0Q2xpZW50U2Vzc2lvbkNvbnRleHQoKSB7CisgICAgICAgICAgICByZXR1cm4gTGl0dGxlTW9jay5tb2NrKFNTTFNlc3Npb25Db250ZXh0LmNsYXNzKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvcmUvdGVzdHMvY29yZXRlc3RzL3NyYy9hbmRyb2lkL3RleHQvSHRtbFRlc3QuamF2YSBiL2NvcmUvdGVzdHMvY29yZXRlc3RzL3NyYy9hbmRyb2lkL3RleHQvSHRtbFRlc3QuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjIyOThmNy4uMDAwMDAwMAotLS0gYS9jb3JlL3Rlc3RzL2NvcmV0ZXN0cy9zcmMvYW5kcm9pZC90ZXh0L0h0bWxUZXN0LmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC50ZXh0OwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5Db2xvclN0YXRlTGlzdDsKLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLlJlc291cmNlczsKLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlR5cGVmYWNlOwotaW1wb3J0IGFuZHJvaWQudGVzdC5zdWl0ZWJ1aWxkZXIuYW5ub3RhdGlvbi5TbWFsbFRlc3Q7Ci1pbXBvcnQgYW5kcm9pZC50ZXh0LnN0eWxlLkZvcmVncm91bmRDb2xvclNwYW47Ci1pbXBvcnQgYW5kcm9pZC50ZXh0LnN0eWxlLlF1b3RlU3BhbjsKLWltcG9ydCBhbmRyb2lkLnRleHQuc3R5bGUuU3RyaWtldGhyb3VnaFNwYW47Ci1pbXBvcnQgYW5kcm9pZC50ZXh0LnN0eWxlLlN0eWxlU3BhbjsKLWltcG9ydCBhbmRyb2lkLnRleHQuc3R5bGUuU3Vic2NyaXB0U3BhbjsKLWltcG9ydCBhbmRyb2lkLnRleHQuc3R5bGUuU3VwZXJzY3JpcHRTcGFuOwotaW1wb3J0IGFuZHJvaWQudGV4dC5zdHlsZS5UZXh0QXBwZWFyYW5jZVNwYW47Ci1pbXBvcnQgYW5kcm9pZC50ZXh0LnN0eWxlLlR5cGVmYWNlU3BhbjsKLWltcG9ydCBhbmRyb2lkLnRleHQuc3R5bGUuVVJMU3BhbjsKLWltcG9ydCBhbmRyb2lkLnRleHQuc3R5bGUuVW5kZXJsaW5lU3BhbjsKLQotaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKLQotcHVibGljIGNsYXNzIEh0bWxUZXN0IGV4dGVuZHMgVGVzdENhc2UgewotCi0gICAgQFNtYWxsVGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RTaW5nbGVUYWdPbldoaWxlU3RyaW5nKCkgewotICAgICAgICBTcGFubmVkIHNwYW5uZWQgPSBIdG1sLmZyb21IdG1sKCI8Yj5oZWxsbzwvYj4iKTsKLSAgICAgICAgT2JqZWN0W10gc3BhbnMgPSBzcGFubmVkLmdldFNwYW5zKC0xLCAxMDAsIE9iamVjdC5jbGFzcyk7Ci0gICAgICAgIGFzc2VydEVxdWFscygxLCBzcGFucy5sZW5ndGgpOwotICAgICAgICBPYmplY3Qgc3BhbiA9IHNwYW5zWzBdOwotICAgICAgICBhc3NlcnRFcXVhbHMoMCwgc3Bhbm5lZC5nZXRTcGFuU3RhcnQoc3BhbikpOwotICAgICAgICBhc3NlcnRFcXVhbHMoNSwgc3Bhbm5lZC5nZXRTcGFuRW5kKHNwYW4pKTsKLSAgICB9Ci0KLSAgICBAU21hbGxUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdEVtcHR5Rm9udFRhZygpIHsKLSAgICAgICAgU3Bhbm5lZCBzcGFubmVkID0gSHRtbC5mcm9tSHRtbCgiSGVsbG8gPGZvbnQgY29sb3I9XCIjZmYwMGZmMDBcIj48L2ZvbnQ+Iik7Ci0gICAgICAgIE9iamVjdFtdIHNwYW5zID0gc3Bhbm5lZC5nZXRTcGFucygwLCAxMDAsIE9iamVjdC5jbGFzcyk7Ci0gICAgICAgIC8vIFRPRE86IGZpZ3VyZSBvdXQgd2hhdCB0aGUgc3BhbnMgc2hvdWxkIGJlIGFmdGVyIHRoZSBjcmFzaGVzIGFyZSBmaXhlZCBhbmQgYXNzZXJ0IHRoZW0uCi0gICAgfQotCi0gICAgLyoqIFRlc3RzIHRoYXQgdGhlIHBhcnNlciBjYW4gaGFuZGxlIG1hbC1mb3JtZWQgSFRNTC4gKi8KLSAgICBAU21hbGxUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdEJhZEh0bWwoKSB7Ci0gICAgICAgIFNwYW5uZWQgc3Bhbm5lZCA9IEh0bWwuZnJvbUh0bWwoIkhlbGxvIDxiPmI8aT5iaTwvYj5pPC9pPiIpOwotICAgICAgICBPYmplY3RbXSBzcGFucyA9IHNwYW5uZWQuZ2V0U3BhbnMoMCwgMTAwLCBPYmplY3QuY2xhc3MpOwotICAgICAgICBhc3NlcnRFcXVhbHMoVHlwZWZhY2UuSVRBTElDLCAoKFN0eWxlU3Bhbikgc3BhbnNbMF0pLmdldFN0eWxlKCkpOwotICAgICAgICBhc3NlcnRFcXVhbHMoNywgc3Bhbm5lZC5nZXRTcGFuU3RhcnQoc3BhbnNbMF0pKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKDksIHNwYW5uZWQuZ2V0U3BhbkVuZChzcGFuc1swXSkpOwotICAgICAgICBhc3NlcnRFcXVhbHMoVHlwZWZhY2UuQk9MRCwgKChTdHlsZVNwYW4pIHNwYW5zWzFdKS5nZXRTdHlsZSgpKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKDYsIHNwYW5uZWQuZ2V0U3BhblN0YXJ0KHNwYW5zWzFdKSk7Ci0gICAgICAgIGFzc2VydEVxdWFscyg5LCBzcGFubmVkLmdldFNwYW5FbmQoc3BhbnNbMV0pKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKFR5cGVmYWNlLklUQUxJQywgKChTdHlsZVNwYW4pIHNwYW5zWzJdKS5nZXRTdHlsZSgpKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKDksIHNwYW5uZWQuZ2V0U3BhblN0YXJ0KHNwYW5zWzJdKSk7Ci0gICAgICAgIGFzc2VydEVxdWFscygxMCwgc3Bhbm5lZC5nZXRTcGFuRW5kKHNwYW5zWzJdKSk7Ci0gICAgfQotCi0gICAgQFNtYWxsVGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RTeW1ib2xzKCkgewotICAgICAgICBTdHJpbmcgc3Bhbm5lZCA9IEh0bWwuZnJvbUh0bWwoIiZjb3B5OyAmZ3Q7ICZsdCIpLnRvU3RyaW5nKCk7Ci0gICAgICAgIGFzc2VydEVxdWFscygiXHUwMGE5ID4gPCIsIHNwYW5uZWQpOwotICAgIH0KLSAgICAKLSAgICBAU21hbGxUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdENvbG9yKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIFNwYW5uZWQgczsKLSAgICAgICAgRm9yZWdyb3VuZENvbG9yU3BhbltdIGNvbG9yczsKLQotICAgICAgICBzID0gSHRtbC5mcm9tSHRtbCgiPGZvbnQgY29sb3I9XCIjMDBGRjAwXCI+c29tZXRoaW5nPC9mb250PiIpOwotICAgICAgICBjb2xvcnMgPSBzLmdldFNwYW5zKDAsIHMubGVuZ3RoKCksIEZvcmVncm91bmRDb2xvclNwYW4uY2xhc3MpOwotICAgICAgICBhc3NlcnRFcXVhbHMoMSwgY29sb3JzLmxlbmd0aCk7Ci0gICAgICAgIGFzc2VydEVxdWFscygweEZGMDBGRjAwLCBjb2xvcnNbMF0uZ2V0Rm9yZWdyb3VuZENvbG9yKCkpOwotCi0gICAgICAgIHMgPSBIdG1sLmZyb21IdG1sKCI8Zm9udCBjb2xvcj1cIm5hdnlcIj5zb21ldGhpbmc8L2ZvbnQ+Iik7Ci0gICAgICAgIGNvbG9ycyA9IHMuZ2V0U3BhbnMoMCwgcy5sZW5ndGgoKSwgRm9yZWdyb3VuZENvbG9yU3Bhbi5jbGFzcyk7Ci0gICAgICAgIGFzc2VydEVxdWFscygxLCBjb2xvcnMubGVuZ3RoKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKDB4RkYwMDAwODAsIGNvbG9yc1swXS5nZXRGb3JlZ3JvdW5kQ29sb3IoKSk7Ci0KLSAgICAgICAgcyA9IEh0bWwuZnJvbUh0bWwoIjxmb250IGNvbG9yPVwiZ2liYmVyaXNoXCI+c29tZXRoaW5nPC9mb250PiIpOwotICAgICAgICBjb2xvcnMgPSBzLmdldFNwYW5zKDAsIHMubGVuZ3RoKCksIEZvcmVncm91bmRDb2xvclNwYW4uY2xhc3MpOwotICAgICAgICBhc3NlcnRFcXVhbHMoMCwgY29sb3JzLmxlbmd0aCk7Ci0gICAgfQotCi0gICAgQFNtYWxsVGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RSZXNvdXJjZUNvbG9yKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIENvbG9yU3RhdGVMaXN0IGMgPQotICAgICAgICAgICAgICAgIFJlc291cmNlcy5nZXRTeXN0ZW0oKS5nZXRDb2xvclN0YXRlTGlzdChhbmRyb2lkLlIuY29sb3IucHJpbWFyeV90ZXh0X2RhcmspOwotICAgICAgICBTcGFubmVkIHM7Ci0gICAgICAgIFRleHRBcHBlYXJhbmNlU3BhbltdIGNvbG9yczsKLQotICAgICAgICBzID0gSHRtbC5mcm9tSHRtbCgiPGZvbnQgY29sb3I9XCJAYW5kcm9pZDpjb2xvci9wcmltYXJ5X3RleHRfZGFya1wiPnNvbWV0aGluZzwvZm9udD4iKTsKLSAgICAgICAgY29sb3JzID0gcy5nZXRTcGFucygwLCBzLmxlbmd0aCgpLCBUZXh0QXBwZWFyYW5jZVNwYW4uY2xhc3MpOwotICAgICAgICBhc3NlcnRFcXVhbHMoMSwgY29sb3JzLmxlbmd0aCk7Ci0gICAgICAgIGFzc2VydEVxdWFscyhjLnRvU3RyaW5nKCksIGNvbG9yc1swXS5nZXRUZXh0Q29sb3IoKS50b1N0cmluZygpKTsKLQotICAgICAgICBzID0gSHRtbC5mcm9tSHRtbCgiPGZvbnQgY29sb3I9XCJAYW5kcm9pZDpwcmltYXJ5X3RleHRfZGFya1wiPnNvbWV0aGluZzwvZm9udD4iKTsKLSAgICAgICAgY29sb3JzID0gcy5nZXRTcGFucygwLCBzLmxlbmd0aCgpLCBUZXh0QXBwZWFyYW5jZVNwYW4uY2xhc3MpOwotICAgICAgICBhc3NlcnRFcXVhbHMoMSwgY29sb3JzLmxlbmd0aCk7Ci0gICAgICAgIGFzc2VydEVxdWFscyhjLnRvU3RyaW5nKCksIGNvbG9yc1swXS5nZXRUZXh0Q29sb3IoKS50b1N0cmluZygpKTsKLQotICAgICAgICBzID0gSHRtbC5mcm9tSHRtbCgiPGZvbnQgY29sb3I9XCJAY29sb3IvcHJpbWFyeV90ZXh0X2RhcmtcIj5zb21ldGhpbmc8L2ZvbnQ+Iik7Ci0gICAgICAgIGNvbG9ycyA9IHMuZ2V0U3BhbnMoMCwgcy5sZW5ndGgoKSwgVGV4dEFwcGVhcmFuY2VTcGFuLmNsYXNzKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKDEsIGNvbG9ycy5sZW5ndGgpOwotICAgICAgICBhc3NlcnRFcXVhbHMoYy50b1N0cmluZygpLCBjb2xvcnNbMF0uZ2V0VGV4dENvbG9yKCkudG9TdHJpbmcoKSk7Ci0KLSAgICAgICAgcyA9IEh0bWwuZnJvbUh0bWwoIjxmb250IGNvbG9yPVwiQHByaW1hcnlfdGV4dF9kYXJrXCI+c29tZXRoaW5nPC9mb250PiIpOwotICAgICAgICBjb2xvcnMgPSBzLmdldFNwYW5zKDAsIHMubGVuZ3RoKCksIFRleHRBcHBlYXJhbmNlU3Bhbi5jbGFzcyk7Ci0gICAgICAgIGFzc2VydEVxdWFscygxLCBjb2xvcnMubGVuZ3RoKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKGMudG9TdHJpbmcoKSwgY29sb3JzWzBdLmdldFRleHRDb2xvcigpLnRvU3RyaW5nKCkpOwotCi0gICAgICAgIHMgPSBIdG1sLmZyb21IdG1sKCI8Zm9udCBjb2xvcj1cIkAiICsgYW5kcm9pZC5SLmNvbG9yLnByaW1hcnlfdGV4dF9kYXJrCi0gICAgICAgICAgICAgICAgKyAiXCI+c29tZXRoaW5nPC9mb250PiIpOwotICAgICAgICBjb2xvcnMgPSBzLmdldFNwYW5zKDAsIHMubGVuZ3RoKCksIFRleHRBcHBlYXJhbmNlU3Bhbi5jbGFzcyk7Ci0gICAgICAgIGFzc2VydEVxdWFscygxLCBjb2xvcnMubGVuZ3RoKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKGMudG9TdHJpbmcoKSwgY29sb3JzWzBdLmdldFRleHRDb2xvcigpLnRvU3RyaW5nKCkpOwotCi0gICAgICAgIHMgPSBIdG1sLmZyb21IdG1sKCI8Zm9udCBjb2xvcj1cImdpYmJlcmlzaFwiPnNvbWV0aGluZzwvZm9udD4iKTsKLSAgICAgICAgY29sb3JzID0gcy5nZXRTcGFucygwLCBzLmxlbmd0aCgpLCBUZXh0QXBwZWFyYW5jZVNwYW4uY2xhc3MpOwotICAgICAgICBhc3NlcnRFcXVhbHMoY29sb3JzLmxlbmd0aCwgMCk7Ci0gICAgfQotCi0gICAgQFNtYWxsVGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQYXJhZ3JhcGhzKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIFNwYW5uYWJsZVN0cmluZyBzOwotCi0gICAgICAgIHMgPSBuZXcgU3Bhbm5hYmxlU3RyaW5nKCJIZWxsbyB3b3JsZCIpOwotICAgICAgICBhc3NlcnRFcXVhbHMoSHRtbC50b0h0bWwocyksICI8cD5IZWxsbyB3b3JsZDwvcD5cbiIpOwotCi0gICAgICAgIHMgPSBuZXcgU3Bhbm5hYmxlU3RyaW5nKCJIZWxsbyB3b3JsZFxub3Igc29tZXRoaW5nIik7Ci0gICAgICAgIGFzc2VydEVxdWFscyhIdG1sLnRvSHRtbChzKSwgIjxwPkhlbGxvIHdvcmxkPGJyPlxub3Igc29tZXRoaW5nPC9wPlxuIik7Ci0KLSAgICAgICAgcyA9IG5ldyBTcGFubmFibGVTdHJpbmcoIkhlbGxvIHdvcmxkXG5cbm9yIHNvbWV0aGluZyIpOwotICAgICAgICBhc3NlcnRFcXVhbHMoSHRtbC50b0h0bWwocyksICI8cD5IZWxsbyB3b3JsZDwvcD5cbjxwPm9yIHNvbWV0aGluZzwvcD5cbiIpOwotCi0gICAgICAgIHMgPSBuZXcgU3Bhbm5hYmxlU3RyaW5nKCJIZWxsbyB3b3JsZFxuXG5cbm9yIHNvbWV0aGluZyIpOwotICAgICAgICBhc3NlcnRFcXVhbHMoSHRtbC50b0h0bWwocyksICI8cD5IZWxsbyB3b3JsZDxicj48L3A+XG48cD5vciBzb21ldGhpbmc8L3A+XG4iKTsKLQotICAgICAgICBhc3NlcnRFcXVhbHMoImZvb1xuYmFyIiwgSHRtbC5mcm9tSHRtbCgiZm9vPGJyPmJhciIpLnRvU3RyaW5nKCkpOwotICAgICAgICBhc3NlcnRFcXVhbHMoImZvb1xuYmFyIiwgSHRtbC5mcm9tSHRtbCgiZm9vPGJyPlxuYmFyIikudG9TdHJpbmcoKSk7Ci0gICAgICAgIGFzc2VydEVxdWFscygiZm9vXG5iYXIiLCBIdG1sLmZyb21IdG1sKCJmb288YnI+XG4gXG5iYXIiKS50b1N0cmluZygpKTsKLSAgICB9Ci0KLSAgICBAU21hbGxUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdEJsb2NrcXVvdGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgU3Bhbm5hYmxlU3RyaW5nIHM7Ci0KLSAgICAgICAgcyA9IG5ldyBTcGFubmFibGVTdHJpbmcoIkhlbGxvIHdvcmxkIik7Ci0gICAgICAgIHMuc2V0U3BhbihuZXcgUXVvdGVTcGFuKCksIDAsIHMubGVuZ3RoKCksIFNwYW5uYWJsZS5TUEFOX1BBUkFHUkFQSCk7Ci0gICAgICAgIGFzc2VydEVxdWFscyhIdG1sLnRvSHRtbChzKSwgIjxibG9ja3F1b3RlPjxwPkhlbGxvIHdvcmxkPC9wPlxuPC9ibG9ja3F1b3RlPlxuIik7Ci0KLSAgICAgICAgcyA9IG5ldyBTcGFubmFibGVTdHJpbmcoIkhlbGxvXG5cbndvcmxkIik7Ci0gICAgICAgIHMuc2V0U3BhbihuZXcgUXVvdGVTcGFuKCksIDAsIDcsIFNwYW5uYWJsZS5TUEFOX1BBUkFHUkFQSCk7Ci0gICAgICAgIGFzc2VydEVxdWFscyhIdG1sLnRvSHRtbChzKSwgIjxibG9ja3F1b3RlPjxwPkhlbGxvPC9wPlxuPC9ibG9ja3F1b3RlPlxuPHA+d29ybGQ8L3A+XG4iKTsKLSAgICB9Ci0KLSAgICBAU21hbGxUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdEVudGl0aWVzKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIFNwYW5uYWJsZVN0cmluZyBzOwotCi0gICAgICAgIHMgPSBuZXcgU3Bhbm5hYmxlU3RyaW5nKCJIZWxsbyA8Jj4gd29ybGQiKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKEh0bWwudG9IdG1sKHMpLCAiPHA+SGVsbG8gJmx0OyZhbXA7Jmd0OyB3b3JsZDwvcD5cbiIpOwotCi0gICAgICAgIHMgPSBuZXcgU3Bhbm5hYmxlU3RyaW5nKCJIZWxsbyBcdTAzRDUgd29ybGQiKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKEh0bWwudG9IdG1sKHMpLCAiPHA+SGVsbG8gJiM5ODE7IHdvcmxkPC9wPlxuIik7Ci0KLSAgICAgICAgcyA9IG5ldyBTcGFubmFibGVTdHJpbmcoIkhlbGxvICB3b3JsZCIpOwotICAgICAgICBhc3NlcnRFcXVhbHMoSHRtbC50b0h0bWwocyksICI8cD5IZWxsbyZuYnNwOyB3b3JsZDwvcD5cbiIpOwotICAgIH0KLQotICAgIEBTbWFsbFRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0TWFya3VwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIFNwYW5uYWJsZVN0cmluZyBzOwotCi0gICAgICAgIHMgPSBuZXcgU3Bhbm5hYmxlU3RyaW5nKCJIZWxsbyBib2xkIHdvcmxkIik7Ci0gICAgICAgIHMuc2V0U3BhbihuZXcgU3R5bGVTcGFuKFR5cGVmYWNlLkJPTEQpLCA2LCBzLmxlbmd0aCgpIC0gNiwKLSAgICAgICAgICAgICAgICAgIFNwYW5uYWJsZS5TUEFOX0VYQ0xVU0lWRV9JTkNMVVNJVkUpOwotICAgICAgICBhc3NlcnRFcXVhbHMoSHRtbC50b0h0bWwocyksICI8cD5IZWxsbyA8Yj5ib2xkPC9iPiB3b3JsZDwvcD5cbiIpOwotCi0gICAgICAgIHMgPSBuZXcgU3Bhbm5hYmxlU3RyaW5nKCJIZWxsbyBpdGFsaWMgd29ybGQiKTsKLSAgICAgICAgcy5zZXRTcGFuKG5ldyBTdHlsZVNwYW4oVHlwZWZhY2UuSVRBTElDKSwgNiwgcy5sZW5ndGgoKSAtIDYsCi0gICAgICAgICAgICAgICAgICBTcGFubmFibGUuU1BBTl9FWENMVVNJVkVfSU5DTFVTSVZFKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKEh0bWwudG9IdG1sKHMpLCAiPHA+SGVsbG8gPGk+aXRhbGljPC9pPiB3b3JsZDwvcD5cbiIpOwotCi0gICAgICAgIHMgPSBuZXcgU3Bhbm5hYmxlU3RyaW5nKCJIZWxsbyBtb25vc3BhY2Ugd29ybGQiKTsKLSAgICAgICAgcy5zZXRTcGFuKG5ldyBUeXBlZmFjZVNwYW4oIm1vbm9zcGFjZSIpLCA2LCBzLmxlbmd0aCgpIC0gNiwKLSAgICAgICAgICAgICAgICAgIFNwYW5uYWJsZS5TUEFOX0VYQ0xVU0lWRV9JTkNMVVNJVkUpOwotICAgICAgICBhc3NlcnRFcXVhbHMoSHRtbC50b0h0bWwocyksICI8cD5IZWxsbyA8dHQ+bW9ub3NwYWNlPC90dD4gd29ybGQ8L3A+XG4iKTsKLQotICAgICAgICBzID0gbmV3IFNwYW5uYWJsZVN0cmluZygiSGVsbG8gc3VwZXJzY3JpcHQgd29ybGQiKTsKLSAgICAgICAgcy5zZXRTcGFuKG5ldyBTdXBlcnNjcmlwdFNwYW4oKSwgNiwgcy5sZW5ndGgoKSAtIDYsCi0gICAgICAgICAgICAgICAgICBTcGFubmFibGUuU1BBTl9FWENMVVNJVkVfSU5DTFVTSVZFKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKEh0bWwudG9IdG1sKHMpLCAiPHA+SGVsbG8gPHN1cD5zdXBlcnNjcmlwdDwvc3VwPiB3b3JsZDwvcD5cbiIpOwotCi0gICAgICAgIHMgPSBuZXcgU3Bhbm5hYmxlU3RyaW5nKCJIZWxsbyBzdWJzY3JpcHQgd29ybGQiKTsKLSAgICAgICAgcy5zZXRTcGFuKG5ldyBTdWJzY3JpcHRTcGFuKCksIDYsIHMubGVuZ3RoKCkgLSA2LAotICAgICAgICAgICAgICAgICAgU3Bhbm5hYmxlLlNQQU5fRVhDTFVTSVZFX0lOQ0xVU0lWRSk7Ci0gICAgICAgIGFzc2VydEVxdWFscyhIdG1sLnRvSHRtbChzKSwgIjxwPkhlbGxvIDxzdWI+c3Vic2NyaXB0PC9zdWI+IHdvcmxkPC9wPlxuIik7Ci0KLSAgICAgICAgcyA9IG5ldyBTcGFubmFibGVTdHJpbmcoIkhlbGxvIHVuZGVybGluZSB3b3JsZCIpOwotICAgICAgICBzLnNldFNwYW4obmV3IFVuZGVybGluZVNwYW4oKSwgNiwgcy5sZW5ndGgoKSAtIDYsCi0gICAgICAgICAgICAgICAgICBTcGFubmFibGUuU1BBTl9FWENMVVNJVkVfSU5DTFVTSVZFKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKEh0bWwudG9IdG1sKHMpLCAiPHA+SGVsbG8gPHU+dW5kZXJsaW5lPC91PiB3b3JsZDwvcD5cbiIpOwotCi0gICAgICAgIHMgPSBuZXcgU3Bhbm5hYmxlU3RyaW5nKCJIZWxsbyBzdHJ1Y2sgd29ybGQiKTsKLSAgICAgICAgcy5zZXRTcGFuKG5ldyBTdHJpa2V0aHJvdWdoU3BhbigpLCA2LCBzLmxlbmd0aCgpIC0gNiwKLSAgICAgICAgICAgICAgICAgIFNwYW5uYWJsZS5TUEFOX0VYQ0xVU0lWRV9JTkNMVVNJVkUpOwotICAgICAgICBhc3NlcnRFcXVhbHMoSHRtbC50b0h0bWwocyksICI8cD5IZWxsbyA8c3RyaWtlPnN0cnVjazwvc3RyaWtlPiB3b3JsZDwvcD5cbiIpOwotCi0gICAgICAgIHMgPSBuZXcgU3Bhbm5hYmxlU3RyaW5nKCJIZWxsbyBsaW5reSB3b3JsZCIpOwotICAgICAgICBzLnNldFNwYW4obmV3IFVSTFNwYW4oImh0dHA6Ly93d3cuZ29vZ2xlLmNvbSIpLCA2LCBzLmxlbmd0aCgpIC0gNiwKLSAgICAgICAgICAgICAgICAgIFNwYW5uYWJsZS5TUEFOX0VYQ0xVU0lWRV9JTkNMVVNJVkUpOwotICAgICAgICBhc3NlcnRFcXVhbHMoSHRtbC50b0h0bWwocyksCi0gICAgICAgICAgICAgICAgICAgICAiPHA+SGVsbG8gPGEgaHJlZj1cImh0dHA6Ly93d3cuZ29vZ2xlLmNvbVwiPmxpbmt5PC9hPiB3b3JsZDwvcD5cbiIpOwotICAgIH0KLQotICAgIEBTbWFsbFRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0SW1nKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIFNwYW5uZWQgczsKLQotICAgICAgICBzID0gSHRtbC5mcm9tSHRtbCgieWVzPGltZyBzcmM9XCJodHRwOi8vZXhhbXBsZS5jb20vZm9vLmdpZlwiPm5vIik7Ci0KLSAgICAgICAgYXNzZXJ0RXF1YWxzKCI8cD55ZXM8aW1nIHNyYz1cImh0dHA6Ly9leGFtcGxlLmNvbS9mb28uZ2lmXCI+bm88L3A+XG4iLAotICAgICAgICAgICAgICAgICAgICAgSHRtbC50b0h0bWwocykpOwotICAgIH0KLQotICAgIEBTbWFsbFRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0VXRmOCgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBTcGFubmVkIHM7Ci0KLSAgICAgICAgcyA9IEh0bWwuZnJvbUh0bWwoIjxwPlx1MDEyNFx1MDBlYlx1MDE0Mlx1MDE0Mm8sIHdvcmxkITwvcD4iKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKCI8cD4mIzI5MjsmIzIzNTsmIzMyMjsmIzMyMjtvLCB3b3JsZCE8L3A+XG4iLCBIdG1sLnRvSHRtbChzKSk7Ci0gICAgfQotCi19CmRpZmYgLS1naXQgYS9kYXRhL2tleWJvYXJkcy9HZW5lcmljLmtsIGIvZGF0YS9rZXlib2FyZHMvR2VuZXJpYy5rbAppbmRleCAxNDEzMzE5Li4yMDQyMzQ1IDEwMDY0NAotLS0gYS9kYXRhL2tleWJvYXJkcy9HZW5lcmljLmtsCisrKyBiL2RhdGEva2V5Ym9hcmRzL0dlbmVyaWMua2wKQEAgLTQyMywzICs0MjMsMTYgQEAKIGF4aXMgMHgwYSBCUkFLRQogYXhpcyAweDEwIEhBVF9YCiBheGlzIDB4MTEgSEFUX1kKKworIyBMRURzCitsZWQgMHgwMCBOVU1fTE9DSworbGVkIDB4MDEgQ0FQU19MT0NLCitsZWQgMHgwMiBTQ1JPTExfTE9DSworbGVkIDB4MDMgQ09NUE9TRQorbGVkIDB4MDQgS0FOQQorbGVkIDB4MDUgU0xFRVAKK2xlZCAweDA2IFNVU1BFTkQKK2xlZCAweDA3IE1VVEUKK2xlZCAweDA4IE1JU0MKK2xlZCAweDA5IE1BSUwKK2xlZCAweDBhIENIQVJHSU5HCmRpZmYgLS1naXQgYS9ncmFwaGljcy9qYXZhL2FuZHJvaWQvZ3JhcGhpY3MvQml0bWFwRmFjdG9yeS5qYXZhIGIvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL0JpdG1hcEZhY3RvcnkuamF2YQppbmRleCA0MjliZTQ5Li5iNzE0ZmFiIDEwMDY0NAotLS0gYS9ncmFwaGljcy9qYXZhL2FuZHJvaWQvZ3JhcGhpY3MvQml0bWFwRmFjdG9yeS5qYXZhCisrKyBiL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9ncmFwaGljcy9CaXRtYXBGYWN0b3J5LmphdmEKQEAgLTMwMCwxNyArMzAwLDIyIEBACiAgICAgICAgIHB1YmxpYyBib29sZWFuIGluUHJlZmVyUXVhbGl0eU92ZXJTcGVlZDsKIAogICAgICAgICAvKioKLSAgICAgICAgICogVGhlIHJlc3VsdGluZyB3aWR0aCBvZiB0aGUgYml0bWFwLCBzZXQgaW5kZXBlbmRlbnQgb2YgdGhlIHN0YXRlIG9mCi0gICAgICAgICAqIGluSnVzdERlY29kZUJvdW5kcy4gSG93ZXZlciwgaWYgdGhlcmUgaXMgYW4gZXJyb3IgdHJ5aW5nIHRvIGRlY29kZSwKLSAgICAgICAgICogb3V0V2lkdGggd2lsbCBiZSBzZXQgdG8gLTEuCisgICAgICAgICAqIFRoZSByZXN1bHRpbmcgd2lkdGggb2YgdGhlIGJpdG1hcC4gSWYge0BsaW5rICNpbkp1c3REZWNvZGVCb3VuZHN9IGlzCisgICAgICAgICAqIHNldCB0byBmYWxzZSwgdGhpcyB3aWxsIGJlIHdpZHRoIG9mIHRoZSBvdXRwdXQgYml0bWFwIGFmdGVyIGFueQorICAgICAgICAgKiBzY2FsaW5nIGlzIGFwcGxpZWQuIElmIHRydWUsIGl0IHdpbGwgYmUgdGhlIHdpZHRoIG9mIHRoZSBpbnB1dCBpbWFnZQorICAgICAgICAgKiB3aXRob3V0IGFueSBhY2NvdW50aW5nIGZvciBzY2FsaW5nLgorICAgICAgICAgKgorICAgICAgICAgKiA8cD5vdXRXaWR0aCB3aWxsIGJlIHNldCB0byAtMSBpZiB0aGVyZSBpcyBhbiBlcnJvciB0cnlpbmcgdG8gZGVjb2RlLjwvcD4KICAgICAgICAgICovCi0KICAgICAgICAgcHVibGljIGludCBvdXRXaWR0aDsKIAogICAgICAgICAvKioKLSAgICAgICAgICogVGhlIHJlc3VsdGluZyBoZWlnaHQgb2YgdGhlIGJpdG1hcCwgc2V0IGluZGVwZW5kZW50IG9mIHRoZSBzdGF0ZSBvZgotICAgICAgICAgKiBpbkp1c3REZWNvZGVCb3VuZHMuIEhvd2V2ZXIsIGlmIHRoZXJlIGlzIGFuIGVycm9yIHRyeWluZyB0byBkZWNvZGUsCi0gICAgICAgICAqIG91dEhlaWdodCB3aWxsIGJlIHNldCB0byAtMS4gCisgICAgICAgICAqIFRoZSByZXN1bHRpbmcgaGVpZ2h0IG9mIHRoZSBiaXRtYXAuIElmIHtAbGluayAjaW5KdXN0RGVjb2RlQm91bmRzfSBpcworICAgICAgICAgKiBzZXQgdG8gZmFsc2UsIHRoaXMgd2lsbCBiZSBoZWlnaHQgb2YgdGhlIG91dHB1dCBiaXRtYXAgYWZ0ZXIgYW55CisgICAgICAgICAqIHNjYWxpbmcgaXMgYXBwbGllZC4gSWYgdHJ1ZSwgaXQgd2lsbCBiZSB0aGUgaGVpZ2h0IG9mIHRoZSBpbnB1dCBpbWFnZQorICAgICAgICAgKiB3aXRob3V0IGFueSBhY2NvdW50aW5nIGZvciBzY2FsaW5nLgorICAgICAgICAgKgorICAgICAgICAgKiA8cD5vdXRIZWlnaHQgd2lsbCBiZSBzZXQgdG8gLTEgaWYgdGhlcmUgaXMgYW4gZXJyb3IgdHJ5aW5nIHRvIGRlY29kZS48L3A+CiAgICAgICAgICAqLwogICAgICAgICBwdWJsaWMgaW50IG91dEhlaWdodDsKIApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL0NvbG9yRmlsdGVyLmphdmEgYi9ncmFwaGljcy9qYXZhL2FuZHJvaWQvZ3JhcGhpY3MvQ29sb3JGaWx0ZXIuamF2YQppbmRleCBlNWNmODMwLi44ZTBhZjc3IDEwMDY0NAotLS0gYS9ncmFwaGljcy9qYXZhL2FuZHJvaWQvZ3JhcGhpY3MvQ29sb3JGaWx0ZXIuamF2YQorKysgYi9ncmFwaGljcy9qYXZhL2FuZHJvaWQvZ3JhcGhpY3MvQ29sb3JGaWx0ZXIuamF2YQpAQCAtMjEsMjIgKzIxLDMwIEBACiAKIHBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKIAotCisvKioKKyAqIEEgY29sb3IgZmlsdGVyIGNhbiBiZSB1c2VkIHdpdGggYSB7QGxpbmsgUGFpbnR9IHRvIG1vZGlmeSB0aGUgY29sb3Igb2YKKyAqIGVhY2ggcGl4ZWwgZHJhd24gd2l0aCB0aGF0IHBhaW50LiBUaGlzIGlzIGFuIGFic3RyYWN0IGNsYXNzIHRoYXQgc2hvdWxkCisgKiBuZXZlciBiZSB1c2VkIGRpcmVjdGx5LgorICovCiBwdWJsaWMgY2xhc3MgQ29sb3JGaWx0ZXIgeworICAgIC8vIEhvbGRzIHRoZSBwb2ludGVyIHRvIHRoZSBuYXRpdmUgU2tDb2xvckZpbHRlciBpbnN0YW5jZQogICAgIGludCBuYXRpdmVfaW5zdGFuY2U7CiAKICAgICAvKioKKyAgICAgKiBIb2xkcyB0aGUgcG9pbnRlciB0byB0aGUgbmF0aXZlIFNraWFDb2xvckZpbHRlciBpbnN0YW5jZSwgZnJvbSBsaWJod3VpLgorICAgICAqCiAgICAgICogQGhpZGUKICAgICAgKi8KICAgICBwdWJsaWMgaW50IG5hdGl2ZUNvbG9yRmlsdGVyOwogCisgICAgQE92ZXJyaWRlCiAgICAgcHJvdGVjdGVkIHZvaWQgZmluYWxpemUoKSB0aHJvd3MgVGhyb3dhYmxlIHsKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIHN1cGVyLmZpbmFsaXplKCk7CiAgICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgICBmaW5hbGl6ZXIobmF0aXZlX2luc3RhbmNlLCBuYXRpdmVDb2xvckZpbHRlcik7CisgICAgICAgICAgICBkZXN0cm95RmlsdGVyKG5hdGl2ZV9pbnN0YW5jZSwgbmF0aXZlQ29sb3JGaWx0ZXIpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcHJpdmF0ZSBzdGF0aWMgbmF0aXZlIHZvaWQgZmluYWxpemVyKGludCBuYXRpdmVfaW5zdGFuY2UsIGludCBuYXRpdmVDb2xvckZpbHRlcik7CisgICAgc3RhdGljIG5hdGl2ZSB2b2lkIGRlc3Ryb3lGaWx0ZXIoaW50IG5hdGl2ZV9pbnN0YW5jZSwgaW50IG5hdGl2ZUNvbG9yRmlsdGVyKTsKIH0KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9ncmFwaGljcy9Db2xvck1hdHJpeC5qYXZhIGIvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL0NvbG9yTWF0cml4LmphdmEKaW5kZXggYzIyY2RhMS4uMGVmMDM3ZCAxMDA2NDQKLS0tIGEvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL0NvbG9yTWF0cml4LmphdmEKKysrIGIvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL0NvbG9yTWF0cml4LmphdmEKQEAgLTE4LDIzICsxOCwyOSBAQAogCiBpbXBvcnQgYW5kcm9pZC51dGlsLkZsb2F0TWF0aDsKIAoraW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisKIC8qKgotICogIDV4NCBtYXRyaXggZm9yIHRyYW5zZm9ybWluZyB0aGUgY29sb3IrYWxwaGEgY29tcG9uZW50cyBvZiBhIEJpdG1hcC4KLSAqICBUaGUgbWF0cml4IGlzIHN0b3JlZCBpbiBhIHNpbmdsZSBhcnJheSwgYW5kIGl0cyB0cmVhdGVkIGFzIGZvbGxvd3M6CisgKiA1eDQgbWF0cml4IGZvciB0cmFuc2Zvcm1pbmcgdGhlIGNvbG9yK2FscGhhIGNvbXBvbmVudHMgb2YgYSBCaXRtYXAuCisgKiBUaGUgbWF0cml4IGlzIHN0b3JlZCBpbiBhIHNpbmdsZSBhcnJheSwgYW5kIGl0cyB0cmVhdGVkIGFzIGZvbGxvd3M6CisgKiA8cHJlPgogICogIFsgYSwgYiwgYywgZCwgZSwKICAqICAgIGYsIGcsIGgsIGksIGosCiAgKiAgICBrLCBsLCBtLCBuLCBvLAogICogICAgcCwgcSwgciwgcywgdCBdCisgKiA8L3ByZT4KICAqCi0gKiBXaGVuIGFwcGxpZWQgdG8gYSBjb2xvciBbciwgZywgYiwgYV0sIHRoZSByZXN1bHRpbmcgY29sb3IgaXMgY29tcHV0ZWQgYXMKLSAqIChhZnRlciBjbGFtcGluZykKKyAqIFdoZW4gYXBwbGllZCB0byBhIGNvbG9yIDxjb2RlPltyLCBnLCBiLCBhXTwvY29kZT4sIHRoZSByZXN1bHRpbmcgY29sb3IKKyAqIGlzIGNvbXB1dGVkIGFzIChhZnRlciBjbGFtcGluZyk6CisgKiA8cHJlPgogICogICBSJyA9IGEqUiArIGIqRyArIGMqQiArIGQqQSArIGU7CiAgKiAgIEcnID0gZipSICsgZypHICsgaCpCICsgaSpBICsgajsKICAqICAgQicgPSBrKlIgKyBsKkcgKyBtKkIgKyBuKkEgKyBvOwogICogICBBJyA9IHAqUiArIHEqRyArIHIqQiArIHMqQSArIHQ7CisgKiA8L3ByZT4KICAqLworQFN1cHByZXNzV2FybmluZ3MoeyAiTWlzbWF0Y2hlZFJlYWRBbmRXcml0ZU9mQXJyYXkiLCAiUG9pbnRsZXNzQXJpdGhtZXRpY0V4cHJlc3Npb24iIH0pCiBwdWJsaWMgY2xhc3MgQ29sb3JNYXRyaXggewotCiAgICAgcHJpdmF0ZSBmaW5hbCBmbG9hdFtdIG1BcnJheSA9IG5ldyBmbG9hdFsyMF07CiAKICAgICAvKioKQEAgLTY2LDE3ICs3MiwxNiBAQAogICAgIAogICAgIC8qKgogICAgICAqIFNldCB0aGlzIGNvbG9ybWF0cml4IHRvIGlkZW50aXR5OgorICAgICAqIDxwcmU+CiAgICAgICogWyAxIDAgMCAwIDAgICAtIHJlZCB2ZWN0b3IKICAgICAgKiAgIDAgMSAwIDAgMCAgIC0gZ3JlZW4gdmVjdG9yCiAgICAgICogICAwIDAgMSAwIDAgICAtIGJsdWUgdmVjdG9yCiAgICAgICogICAwIDAgMCAxIDAgXSAtIGFscGhhIHZlY3RvcgorICAgICAqIDwvcHJlPgogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgewogICAgICAgICBmaW5hbCBmbG9hdFtdIGEgPSBtQXJyYXk7Ci0gICAgICAgIAotICAgICAgICBmb3IgKGludCBpID0gMTk7IGkgPiAwOyAtLWkpIHsKLSAgICAgICAgICAgIGFbaV0gPSAwOwotICAgICAgICB9CisgICAgICAgIEFycmF5cy5maWxsKGEsIDApOwogICAgICAgICBhWzBdID0gYVs2XSA9IGFbMTJdID0gYVsxOF0gPSAxOwogICAgIH0KICAgICAKQEAgLTExMiw5ICsxMTcsOSBAQAogICAgIAogICAgIC8qKgogICAgICAqIFNldCB0aGUgcm90YXRpb24gb24gYSBjb2xvciBheGlzIGJ5IHRoZSBzcGVjaWZpZWQgdmFsdWVzLgotICAgICAqIGF4aXM9MCBjb3JyZXNwb25kIHRvIGEgcm90YXRpb24gYXJvdW5kIHRoZSBSRUQgY29sb3IKLSAgICAgKiBheGlzPTEgY29ycmVzcG9uZCB0byBhIHJvdGF0aW9uIGFyb3VuZCB0aGUgR1JFRU4gY29sb3IKLSAgICAgKiBheGlzPTIgY29ycmVzcG9uZCB0byBhIHJvdGF0aW9uIGFyb3VuZCB0aGUgQkxVRSBjb2xvcgorICAgICAqIDxjb2RlPmF4aXM9MDwvY29kZT4gY29ycmVzcG9uZCB0byBhIHJvdGF0aW9uIGFyb3VuZCB0aGUgUkVEIGNvbG9yCisgICAgICogPGNvZGU+YXhpcz0xPC9jb2RlPiBjb3JyZXNwb25kIHRvIGEgcm90YXRpb24gYXJvdW5kIHRoZSBHUkVFTiBjb2xvcgorICAgICAqIDxjb2RlPmF4aXM9MjwvY29kZT4gY29ycmVzcG9uZCB0byBhIHJvdGF0aW9uIGFyb3VuZCB0aGUgQkxVRSBjb2xvcgogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIHNldFJvdGF0ZShpbnQgYXhpcywgZmxvYXQgZGVncmVlcykgewogICAgICAgICByZXNldCgpOwpAQCAtMTQ0LDcgKzE0OSw3IEBACiAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigpOwogICAgICAgICB9CiAgICAgfQotICAgIAorCiAgICAgLyoqCiAgICAgICogU2V0IHRoaXMgY29sb3JtYXRyaXggdG8gdGhlIGNvbmNhdGVuYXRpb24gb2YgdGhlIHR3byBzcGVjaWZpZWQKICAgICAgKiBjb2xvcm1hdHJpY2VzLCBzdWNoIHRoYXQgdGhlIHJlc3VsdGluZyBjb2xvcm1hdHJpeCBoYXMgdGhlIHNhbWUgZWZmZWN0CkBAIC0xNTIsMTIgKzE1NywxMCBAQAogICAgICAqIG1hdEIgdG8gYmUgdGhlIHNhbWUgY29sb3JtYXRyaXggYXMgdGhpcy4KICAgICAgKi8KICAgICBwdWJsaWMgdm9pZCBzZXRDb25jYXQoQ29sb3JNYXRyaXggbWF0QSwgQ29sb3JNYXRyaXggbWF0QikgewotICAgICAgICBmbG9hdFtdIHRtcCA9IG51bGw7Ci0gICAgICAgIAorICAgICAgICBmbG9hdFtdIHRtcDsKICAgICAgICAgaWYgKG1hdEEgPT0gdGhpcyB8fCBtYXRCID09IHRoaXMpIHsKICAgICAgICAgICAgIHRtcCA9IG5ldyBmbG9hdFsyMF07Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7CisgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB0bXAgPSBtQXJyYXk7CiAgICAgICAgIH0KICAgICAgICAgCkBAIC0xNzgsNyArMTgxLDcgQEAKICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodG1wLCAwLCBtQXJyYXksIDAsIDIwKTsKICAgICAgICAgfQogICAgIH0KLSAgICAKKwogICAgIC8qKgogICAgICAqIENvbmNhdCB0aGlzIGNvbG9ybWF0cml4IHdpdGggdGhlIHNwZWNpZmllZCBwcmVtYXRyaXguIFRoaXMgaXMgbG9naWNhbGx5CiAgICAgICogdGhlIHNhbWUgYXMgY2FsbGluZyBzZXRDb25jYXQodGhpcywgcHJlbWF0cml4KTsKQEAgLTE4Niw3ICsxODksNyBAQAogICAgIHB1YmxpYyB2b2lkIHByZUNvbmNhdChDb2xvck1hdHJpeCBwcmVtYXRyaXgpIHsKICAgICAgICAgc2V0Q29uY2F0KHRoaXMsIHByZW1hdHJpeCk7CiAgICAgfQotICAgIAorCiAgICAgLyoqCiAgICAgICogQ29uY2F0IHRoaXMgY29sb3JtYXRyaXggd2l0aCB0aGUgc3BlY2lmaWVkIHBvc3RtYXRyaXguIFRoaXMgaXMgbG9naWNhbGx5CiAgICAgICogdGhlIHNhbWUgYXMgY2FsbGluZyBzZXRDb25jYXQocG9zdG1hdHJpeCwgdGhpcyk7CkBAIC0xOTQsNyArMTk3LDcgQEAKICAgICBwdWJsaWMgdm9pZCBwb3N0Q29uY2F0KENvbG9yTWF0cml4IHBvc3RtYXRyaXgpIHsKICAgICAgICAgc2V0Q29uY2F0KHBvc3RtYXRyaXgsIHRoaXMpOwogICAgIH0KLSAgICAKKwogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL0NvbG9yTWF0cml4Q29sb3JGaWx0ZXIuamF2YSBiL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9ncmFwaGljcy9Db2xvck1hdHJpeENvbG9yRmlsdGVyLmphdmEKaW5kZXggNGYzMjM0Mi4uOGRlMzJlYyAxMDA2NDQKLS0tIGEvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL0NvbG9yTWF0cml4Q29sb3JGaWx0ZXIuamF2YQorKysgYi9ncmFwaGljcy9qYXZhL2FuZHJvaWQvZ3JhcGhpY3MvQ29sb3JNYXRyaXhDb2xvckZpbHRlci5qYXZhCkBAIC0xNiwyNCArMTYsMzEgQEAKIAogcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwogCisvKioKKyAqIEEgY29sb3IgZmlsdGVyIHRoYXQgdHJhbnNmb3JtcyBjb2xvcnMgdGhyb3VnaCBhIDR4NSBjb2xvciBtYXRyaXguIFRoaXMgZmlsdGVyCisgKiBjYW4gYmUgdXNlZCB0byBjaGFuZ2UgdGhlIHNhdHVyYXRpb24gb2YgcGl4ZWxzLCBjb252ZXJ0IGZyb20gWVVWIHRvIFJHQiwgZXRjLgorICoKKyAqIEBzZWUgQ29sb3JNYXRyaXgKKyAqLwogcHVibGljIGNsYXNzIENvbG9yTWF0cml4Q29sb3JGaWx0ZXIgZXh0ZW5kcyBDb2xvckZpbHRlciB7CisgICAgcHJpdmF0ZSBmaW5hbCBDb2xvck1hdHJpeCBtTWF0cml4ID0gbmV3IENvbG9yTWF0cml4KCk7CisKICAgICAvKioKLSAgICAgKiBDcmVhdGUgYSBjb2xvcmZpbHRlciB0aGF0IHRyYW5zZm9ybXMgY29sb3JzIHRocm91Z2ggYSA0eDUgY29sb3IgbWF0cml4LgorICAgICAqIENyZWF0ZSBhIGNvbG9yIGZpbHRlciB0aGF0IHRyYW5zZm9ybXMgY29sb3JzIHRocm91Z2ggYSA0eDUgY29sb3IgbWF0cml4LgogICAgICAqCiAgICAgICogQHBhcmFtIG1hdHJpeCA0eDUgbWF0cml4IHVzZWQgdG8gdHJhbnNmb3JtIGNvbG9ycy4gSXQgaXMgY29waWVkIGludG8KICAgICAgKiAgICAgICAgICAgICAgIHRoZSBmaWx0ZXIsIHNvIGNoYW5nZXMgbWFkZSB0byB0aGUgbWF0cml4IGFmdGVyIHRoZSBmaWx0ZXIKICAgICAgKiAgICAgICAgICAgICAgIGlzIGNvbnN0cnVjdGVkIHdpbGwgbm90IGJlIHJlZmxlY3RlZCBpbiB0aGUgZmlsdGVyLgogICAgICAqLwogICAgIHB1YmxpYyBDb2xvck1hdHJpeENvbG9yRmlsdGVyKENvbG9yTWF0cml4IG1hdHJpeCkgewotICAgICAgICBmaW5hbCBmbG9hdFtdIGNvbG9yTWF0cml4ID0gbWF0cml4LmdldEFycmF5KCk7Ci0gICAgICAgIG5hdGl2ZV9pbnN0YW5jZSA9IG5hdGl2ZUNvbG9yTWF0cml4RmlsdGVyKGNvbG9yTWF0cml4KTsKLSAgICAgICAgbmF0aXZlQ29sb3JGaWx0ZXIgPSBuQ29sb3JNYXRyaXhGaWx0ZXIobmF0aXZlX2luc3RhbmNlLCBjb2xvck1hdHJpeCk7CisgICAgICAgIG1NYXRyaXguc2V0KG1hdHJpeCk7CisgICAgICAgIHVwZGF0ZSgpOwogICAgIH0KIAogICAgIC8qKgotICAgICogQ3JlYXRlIGEgY29sb3JmaWx0ZXIgdGhhdCB0cmFuc2Zvcm1zIGNvbG9ycyB0aHJvdWdoIGEgNHg1IGNvbG9yIG1hdHJpeC4KKyAgICAgKiBDcmVhdGUgYSBjb2xvciBmaWx0ZXIgdGhhdCB0cmFuc2Zvcm1zIGNvbG9ycyB0aHJvdWdoIGEgNHg1IGNvbG9yIG1hdHJpeC4KICAgICAgKgotICAgICAqIEBwYXJhbSBhcnJheSBhcnJheSBvZiBmbG9hdHMgdXNlZCB0byB0cmFuc2Zvcm0gY29sb3JzLCB0cmVhdGVkIGFzIGEgNHg1CisgICAgICogQHBhcmFtIGFycmF5IEFycmF5IG9mIGZsb2F0cyB1c2VkIHRvIHRyYW5zZm9ybSBjb2xvcnMsIHRyZWF0ZWQgYXMgYSA0eDUKICAgICAgKiAgICAgICAgICAgICAgbWF0cml4LiBUaGUgZmlyc3QgMjAgZW50cmllcyBvZiB0aGUgYXJyYXkgYXJlIGNvcGllZCBpbnRvCiAgICAgICogICAgICAgICAgICAgIHRoZSBmaWx0ZXIuIFNlZSBDb2xvck1hdHJpeC4KICAgICAgKi8KQEAgLTQxLDggKzQ4LDc1IEBACiAgICAgICAgIGlmIChhcnJheS5sZW5ndGggPCAyMCkgewogICAgICAgICAgICAgdGhyb3cgbmV3IEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOwogICAgICAgICB9Ci0gICAgICAgIG5hdGl2ZV9pbnN0YW5jZSA9IG5hdGl2ZUNvbG9yTWF0cml4RmlsdGVyKGFycmF5KTsKLSAgICAgICAgbmF0aXZlQ29sb3JGaWx0ZXIgPSBuQ29sb3JNYXRyaXhGaWx0ZXIobmF0aXZlX2luc3RhbmNlLCBhcnJheSk7CisgICAgICAgIG1NYXRyaXguc2V0KGFycmF5KTsKKyAgICAgICAgdXBkYXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUge0BsaW5rIENvbG9yTWF0cml4fSB1c2VkIGJ5IHRoaXMgZmlsdGVyLiBUaGUgcmV0dXJuZWQKKyAgICAgKiB2YWx1ZSBpcyBuZXZlciBudWxsLiBNb2RpZnlpbmcgdGhlIHJldHVybmVkIG1hdHJpeCBkb2VzIG5vdCBoYXZlCisgICAgICogYW55IGVmZmVjdCB1bnRpbCB5b3UgY2FsbCB7QGxpbmsgI3NldENvbG9yTWF0cml4KENvbG9yTWF0cml4KX0uCisgICAgICoKKyAgICAgKiBAc2VlICNzZXRDb2xvck1hdHJpeChDb2xvck1hdHJpeCkKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sb3JNYXRyaXggZ2V0Q29sb3JNYXRyaXgoKSB7CisgICAgICAgIHJldHVybiBtTWF0cml4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNwZWNpZmllcyB0aGUgY29sb3IgbWF0cml4IHVzZWQgYnkgdGhpcyBmaWx0ZXIuIElmIHRoZSBzcGVjaWZpZWQKKyAgICAgKiBjb2xvciBtYXRyaXggaXMgbnVsbCwgdGhpcyBmaWx0ZXIncyBjb2xvciBtYXRyaXggd2lsbCBiZSByZXNldCB0bworICAgICAqIHRoZSBpZGVudGl0eSBtYXRyaXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWF0cml4IEEge0BsaW5rIENvbG9yTWF0cml4fSBvciBudWxsCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRDb2xvck1hdHJpeCgpCisgICAgICogQHNlZSBhbmRyb2lkLmdyYXBoaWNzLkNvbG9yTWF0cml4I3Jlc2V0KCkKKyAgICAgKiBAc2VlICNzZXRDb2xvck1hdHJpeChmbG9hdFtdKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbG9yTWF0cml4KENvbG9yTWF0cml4IG1hdHJpeCkgeworICAgICAgICBpZiAobWF0cml4ID09IG51bGwpIHsKKyAgICAgICAgICAgIG1NYXRyaXgucmVzZXQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChtYXRyaXggIT0gbU1hdHJpeCkgeworICAgICAgICAgICAgbU1hdHJpeC5zZXQobWF0cml4KTsKKyAgICAgICAgfQorICAgICAgICB1cGRhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZpZXMgdGhlIGNvbG9yIG1hdHJpeCB1c2VkIGJ5IHRoaXMgZmlsdGVyLiBJZiB0aGUgc3BlY2lmaWVkCisgICAgICogY29sb3IgbWF0cml4IGlzIG51bGwsIHRoaXMgZmlsdGVyJ3MgY29sb3IgbWF0cml4IHdpbGwgYmUgcmVzZXQgdG8KKyAgICAgKiB0aGUgaWRlbnRpdHkgbWF0cml4LgorICAgICAqCisgICAgICogQHBhcmFtIGFycmF5IEFycmF5IG9mIGZsb2F0cyB1c2VkIHRvIHRyYW5zZm9ybSBjb2xvcnMsIHRyZWF0ZWQgYXMgYSA0eDUKKyAgICAgKiAgICAgICAgICAgICAgbWF0cml4LiBUaGUgZmlyc3QgMjAgZW50cmllcyBvZiB0aGUgYXJyYXkgYXJlIGNvcGllZCBpbnRvCisgICAgICogICAgICAgICAgICAgIHRoZSBmaWx0ZXIuIFNlZSB7QGxpbmsgQ29sb3JNYXRyaXh9LgorICAgICAqCisgICAgICogQHNlZSAjZ2V0Q29sb3JNYXRyaXgoKQorICAgICAqIEBzZWUgYW5kcm9pZC5ncmFwaGljcy5Db2xvck1hdHJpeCNyZXNldCgpCisgICAgICogQHNlZSAjc2V0Q29sb3JNYXRyaXgoQ29sb3JNYXRyaXgpCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgc3BlY2lmaWVkIGFycmF5J3MKKyAgICAgKiAgICAgICAgIGxlbmd0aCBpcyA8IDIwCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29sb3JNYXRyaXgoZmxvYXRbXSBhcnJheSkgeworICAgICAgICBpZiAoYXJyYXkgPT0gbnVsbCkgeworICAgICAgICAgICAgbU1hdHJpeC5yZXNldCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGFycmF5Lmxlbmd0aCA8IDIwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtTWF0cml4LnNldChhcnJheSk7CisgICAgICAgIH0KKyAgICAgICAgdXBkYXRlKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZSgpIHsKKyAgICAgICAgZmluYWwgZmxvYXRbXSBjb2xvck1hdHJpeCA9IG1NYXRyaXguZ2V0QXJyYXkoKTsKKyAgICAgICAgZGVzdHJveUZpbHRlcihuYXRpdmVfaW5zdGFuY2UsIG5hdGl2ZUNvbG9yRmlsdGVyKTsKKyAgICAgICAgbmF0aXZlX2luc3RhbmNlID0gbmF0aXZlQ29sb3JNYXRyaXhGaWx0ZXIoY29sb3JNYXRyaXgpOworICAgICAgICBuYXRpdmVDb2xvckZpbHRlciA9IG5Db2xvck1hdHJpeEZpbHRlcihuYXRpdmVfaW5zdGFuY2UsIGNvbG9yTWF0cml4KTsKICAgICB9CiAKICAgICBwcml2YXRlIHN0YXRpYyBuYXRpdmUgaW50IG5hdGl2ZUNvbG9yTWF0cml4RmlsdGVyKGZsb2F0W10gYXJyYXkpOwpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0LmphdmEgYi9ncmFwaGljcy9qYXZhL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuamF2YQppbmRleCAxYmNmYzE4Li5lMDhlZDUwIDEwMDY0NAotLS0gYS9ncmFwaGljcy9qYXZhL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuamF2YQorKysgYi9ncmFwaGljcy9qYXZhL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuamF2YQpAQCAtMTg3LDYgKzE4NywxMCBAQAogICAgICAqID09IHtAbGluayBhbmRyb2lkLm1lZGlhLkltYWdlLlBsYW5lI2dldFBpeGVsU3RyaWRlKCkgdlBsYW5lLmdldFBpeGVsU3RyaWRlKCl9OwogICAgICAqICkuPC9wPgogICAgICAqCisgICAgICogPHA+Rm9yIGV4YW1wbGUsIHRoZSB7QGxpbmsgYW5kcm9pZC5tZWRpYS5JbWFnZX0gb2JqZWN0IGNhbiBwcm92aWRlIGRhdGEKKyAgICAgKiBpbiB0aGlzIGZvcm1hdCBmcm9tIGEge0BsaW5rIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMi5DYW1lcmFEZXZpY2V9CisgICAgICogdGhyb3VnaCBhIHtAbGluayBhbmRyb2lkLm1lZGlhLkltYWdlUmVhZGVyfSBvYmplY3QuPC9wPgorICAgICAqCiAgICAgICogQHNlZSBhbmRyb2lkLm1lZGlhLkltYWdlCiAgICAgICogQHNlZSBhbmRyb2lkLm1lZGlhLkltYWdlUmVhZGVyCiAgICAgICogQHNlZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhRGV2aWNlCkBAIC0yMDMsOCArMjA3LDYgQEAKICAgICAgKiBuZWVkZWQgaW5mb3JtYXRpb24gdG8gaW50ZXJwcmV0IGEgcmF3IHNlbnNvciBpbWFnZSBtdXN0IGJlIHF1ZXJpZWQgZnJvbQogICAgICAqIHRoZSB7QGxpbmsgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYURldmljZX0gd2hpY2ggcHJvZHVjZWQgdGhlCiAgICAgICogaW1hZ2UuPC9wPgotICAgICAqCi0gICAgICogQGhpZGUKICAgICAgKi8KICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSQVdfU0VOU09SID0gMHgyMDsKIApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL0xpZ2h0aW5nQ29sb3JGaWx0ZXIuamF2YSBiL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9ncmFwaGljcy9MaWdodGluZ0NvbG9yRmlsdGVyLmphdmEKaW5kZXggYzYyMWRlNi4uNzVmMTgyNyAxMDA2NDQKLS0tIGEvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL0xpZ2h0aW5nQ29sb3JGaWx0ZXIuamF2YQorKysgYi9ncmFwaGljcy9qYXZhL2FuZHJvaWQvZ3JhcGhpY3MvTGlnaHRpbmdDb2xvckZpbHRlci5qYXZhCkBAIC0yMSwxNiArMjEsODcgQEAKIAogcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwogCisvKioKKyAqIEEgY29sb3IgZmlsdGVyIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2ltdWxhdGUgc2ltcGxlIGxpZ2h0aW5nIGVmZmVjdHMuCisgKiBBIDxjb2RlPkxpZ2h0aW5nQ29sb3JGaWx0ZXI8L2NvZGU+IGlzIGRlZmluZWQgYnkgdHdvIHBhcmFtZXRlcnMsIG9uZQorICogdXNlZCB0byBtdWx0aXBseSB0aGUgc291cmNlIGNvbG9yIChjYWxsZWQgPGNvZGU+Y29sb3JNdWx0aXBseTwvY29kZT4pCisgKiBhbmQgb25lIHVzZWQgdG8gYWRkIHRvIHRoZSBzb3VyY2UgY29sb3IgKGNhbGxlZCA8Y29kZT5jb2xvckFkZDwvY29kZT4pLgorICogVGhlIGFscGhhIGNoYW5uZWwgaXMgbGVmdCB1bnRvdWNoZWQgYnkgdGhpcyBjb2xvciBmaWx0ZXIuCisgKgorICogR2l2ZW4gYSBzb3VyY2UgY29sb3IgUkdCLCB0aGUgcmVzdWx0aW5nIFInRydCJyBjb2xvciBpcyBjb21wdXRlZCB0aHVzbHk6CisgKiA8cHJlPgorICogUicgPSBSICogY29sb3JNdWx0aXBseS5SICsgY29sb3JBZGQuUgorICogRycgPSBHICogY29sb3JNdWx0aXBseS5HICsgY29sb3JBZGQuRworICogQicgPSBCICogY29sb3JNdWx0aXBseS5CICsgY29sb3JBZGQuQgorICogPC9wcmU+CisgKiBUaGUgcmVzdWx0IGlzIHBpbm5lZCB0byB0aGUgPGNvZGU+WzAuLjI1NV08L2NvZGU+IHJhbmdlIGZvciBlYWNoIGNoYW5uZWwuCisgKi8KIHB1YmxpYyBjbGFzcyBMaWdodGluZ0NvbG9yRmlsdGVyIGV4dGVuZHMgQ29sb3JGaWx0ZXIgeworICAgIHByaXZhdGUgaW50IG1NdWw7CisgICAgcHJpdmF0ZSBpbnQgbUFkZDsKIAogICAgIC8qKgotICAgICAqIENyZWF0ZSBhIGNvbG9yZmlsdGVyIHRoYXQgbXVsdGlwbGllcyB0aGUgUkdCIGNoYW5uZWxzIGJ5IG9uZSBjb2xvciwgYW5kIHRoZW4gYWRkcyBhIHNlY29uZCBjb2xvciwKLSAgICAgKiBwaW5uaW5nIHRoZSByZXN1bHQgZm9yIGVhY2ggY29tcG9uZW50IHRvIFswLi4yNTVdLiBUaGUgYWxwaGEgY29tcG9uZW50cyBvZiB0aGUgbXVsIGFuZCBhZGQgYXJndW1lbnRzCi0gICAgICogYXJlIGlnbm9yZWQuCisgICAgICogQ3JlYXRlIGEgY29sb3JmaWx0ZXIgdGhhdCBtdWx0aXBsaWVzIHRoZSBSR0IgY2hhbm5lbHMgYnkgb25lIGNvbG9yLAorICAgICAqIGFuZCB0aGVuIGFkZHMgYSBzZWNvbmQgY29sb3IuIFRoZSBhbHBoYSBjb21wb25lbnRzIG9mIHRoZSBtdWwgYW5kIGFkZAorICAgICAqIGFyZ3VtZW50cyBhcmUgaWdub3JlZC4KKyAgICAgKgorICAgICAqIEBzZWUgI3NldENvbG9yTXVsdGlwbHkoaW50KQorICAgICAqIEBzZWUgI3NldENvbG9yQWRkKGludCkKICAgICAgKi8KICAgICBwdWJsaWMgTGlnaHRpbmdDb2xvckZpbHRlcihpbnQgbXVsLCBpbnQgYWRkKSB7Ci0gICAgICAgIG5hdGl2ZV9pbnN0YW5jZSA9IG5hdGl2ZV9DcmVhdGVMaWdodGluZ0ZpbHRlcihtdWwsIGFkZCk7Ci0gICAgICAgIG5hdGl2ZUNvbG9yRmlsdGVyID0gbkNyZWF0ZUxpZ2h0aW5nRmlsdGVyKG5hdGl2ZV9pbnN0YW5jZSwgbXVsLCBhZGQpOworICAgICAgICBtTXVsID0gbXVsOworICAgICAgICBtQWRkID0gYWRkOworICAgICAgICB1cGRhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBSR0IgY29sb3IgdXNlZCB0byBtdWx0aXBseSB0aGUgc291cmNlIGNvbG9yIHdoZW4gdGhlCisgICAgICogY29sb3IgZmlsdGVyIGlzIGFwcGxpZWQuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXRDb2xvck11bHRpcGx5KGludCkKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldENvbG9yTXVsdGlwbHkoKSB7CisgICAgICAgIHJldHVybiBtTXVsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNwZWNpZmllcyB0aGUgUkdCIGNvbG9yIHVzZWQgdG8gbXVsdGlwbHkgdGhlIHNvdXJjZSBjb2xvciB3aGVuIHRoZQorICAgICAqIGNvbG9yIGZpbHRlciBpcyBhcHBsaWVkLgorICAgICAqIFRoZSBhbHBoYSBjaGFubmVsIG9mIHRoaXMgY29sb3IgaXMgaWdub3JlZC4KKyAgICAgKgorICAgICAqIEBzZWUgI2dldENvbG9yTXVsdGlwbHkoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbG9yTXVsdGlwbHkoaW50IG11bCkgeworICAgICAgICBtTXVsID0gbXVsOworICAgICAgICB1cGRhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBSR0IgY29sb3IgdGhhdCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBzb3VyY2UgY29sb3IKKyAgICAgKiB3aGVuIHRoZSBjb2xvciBmaWx0ZXIgaXMgYXBwbGllZC4KKyAgICAgKgorICAgICAqIEBzZWUgI3NldENvbG9yQWRkKGludCkKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldENvbG9yQWRkKCkgeworICAgICAgICByZXR1cm4gbUFkZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZpZXMgdGhlIFJHQiB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIHNvdXJjZSBjb2xvciB3aGVuCisgICAgICogdGhlIGNvbG9yIGZpbHRlciBpcyBhcHBsaWVkLgorICAgICAqIFRoZSBhbHBoYSBjaGFubmVsIG9mIHRoaXMgY29sb3IgaXMgaWdub3JlZC4KKyAgICAgKgorICAgICAqIEBzZWUgI2dldENvbG9yQWRkKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb2xvckFkZChpbnQgYWRkKSB7CisgICAgICAgIG1BZGQgPSBhZGQ7CisgICAgICAgIHVwZGF0ZSgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGUoKSB7CisgICAgICAgIGRlc3Ryb3lGaWx0ZXIobmF0aXZlX2luc3RhbmNlLCBuYXRpdmVDb2xvckZpbHRlcik7CisgICAgICAgIG5hdGl2ZV9pbnN0YW5jZSA9IG5hdGl2ZV9DcmVhdGVMaWdodGluZ0ZpbHRlcihtTXVsLCBtQWRkKTsKKyAgICAgICAgbmF0aXZlQ29sb3JGaWx0ZXIgPSBuQ3JlYXRlTGlnaHRpbmdGaWx0ZXIobmF0aXZlX2luc3RhbmNlLCBtTXVsLCBtQWRkKTsKICAgICB9CiAKICAgICBwcml2YXRlIHN0YXRpYyBuYXRpdmUgaW50IG5hdGl2ZV9DcmVhdGVMaWdodGluZ0ZpbHRlcihpbnQgbXVsLCBpbnQgYWRkKTsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9ncmFwaGljcy9Qb3J0ZXJEdWZmQ29sb3JGaWx0ZXIuamF2YSBiL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9ncmFwaGljcy9Qb3J0ZXJEdWZmQ29sb3JGaWx0ZXIuamF2YQppbmRleCBlY2M3YzI0Li45ODcwYWQyIDEwMDY0NAotLS0gYS9ncmFwaGljcy9qYXZhL2FuZHJvaWQvZ3JhcGhpY3MvUG9ydGVyRHVmZkNvbG9yRmlsdGVyLmphdmEKKysrIGIvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL1BvcnRlckR1ZmZDb2xvckZpbHRlci5qYXZhCkBAIC0xNiwxNyArMTYsODQgQEAKIAogcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwogCisvKioKKyAqIEEgY29sb3IgZmlsdGVyIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGludCB0aGUgc291cmNlIHBpeGVscyB1c2luZyBhIHNpbmdsZQorICogY29sb3IgYW5kIGEgc3BlY2lmaWMge0BsaW5rIFBvcnRlckR1ZmYgUG9ydGVyLUR1ZmYgY29tcG9zaXRlIG1vZGV9LgorICovCiBwdWJsaWMgY2xhc3MgUG9ydGVyRHVmZkNvbG9yRmlsdGVyIGV4dGVuZHMgQ29sb3JGaWx0ZXIgeworICAgIHByaXZhdGUgaW50IG1Db2xvcjsKKyAgICBwcml2YXRlIFBvcnRlckR1ZmYuTW9kZSBtTW9kZTsKKwogICAgIC8qKgotICAgICAqIENyZWF0ZSBhIGNvbG9yZmlsdGVyIHRoYXQgdXNlcyB0aGUgc3BlY2lmaWVkIGNvbG9yIGFuZCBwb3J0ZXItZHVmZiBtb2RlLgorICAgICAqIENyZWF0ZSBhIGNvbG9yIGZpbHRlciB0aGF0IHVzZXMgdGhlIHNwZWNpZmllZCBjb2xvciBhbmQgUG9ydGVyLUR1ZmYgbW9kZS4KICAgICAgKgotICAgICAqIEBwYXJhbSBzcmNDb2xvciAgICAgICBUaGUgc291cmNlIGNvbG9yIHVzZWQgd2l0aCB0aGUgc3BlY2lmaWVkCi0gICAgICogICAgICAgICAgICAgICAgICAgICAgIHBvcnRlci1kdWZmIG1vZGUKLSAgICAgKiBAcGFyYW0gbW9kZSAgICAgICAgICAgVGhlIHBvcnRlci1kdWZmIG1vZGUgdGhhdCBpcyBhcHBsaWVkCisgICAgICogQHBhcmFtIGNvbG9yIFRoZSBBUkdCIHNvdXJjZSBjb2xvciB1c2VkIHdpdGggdGhlIHNwZWNpZmllZCBQb3J0ZXItRHVmZiBtb2RlCisgICAgICogQHBhcmFtIG1vZGUgVGhlIHBvcnRlci1kdWZmIG1vZGUgdGhhdCBpcyBhcHBsaWVkCisgICAgICoKKyAgICAgKiBAc2VlIENvbG9yCisgICAgICogQHNlZSAjc2V0Q29sb3IoaW50KQorICAgICAqIEBzZWUgI3NldE1vZGUoYW5kcm9pZC5ncmFwaGljcy5Qb3J0ZXJEdWZmLk1vZGUpCiAgICAgICovCi0gICAgcHVibGljIFBvcnRlckR1ZmZDb2xvckZpbHRlcihpbnQgc3JjQ29sb3IsIFBvcnRlckR1ZmYuTW9kZSBtb2RlKSB7Ci0gICAgICAgIG5hdGl2ZV9pbnN0YW5jZSA9IG5hdGl2ZV9DcmVhdGVQb3J0ZXJEdWZmRmlsdGVyKHNyY0NvbG9yLCBtb2RlLm5hdGl2ZUludCk7Ci0gICAgICAgIG5hdGl2ZUNvbG9yRmlsdGVyID0gbkNyZWF0ZVBvcnRlckR1ZmZGaWx0ZXIobmF0aXZlX2luc3RhbmNlLCBzcmNDb2xvciwgbW9kZS5uYXRpdmVJbnQpOworICAgIHB1YmxpYyBQb3J0ZXJEdWZmQ29sb3JGaWx0ZXIoaW50IGNvbG9yLCBQb3J0ZXJEdWZmLk1vZGUgbW9kZSkgeworICAgICAgICBtQ29sb3IgPSBjb2xvcjsKKyAgICAgICAgbU1vZGUgPSBtb2RlOworICAgICAgICB1cGRhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBBUkdCIGNvbG9yIHVzZWQgdG8gdGludCB0aGUgc291cmNlIHBpeGVscyB3aGVuIHRoaXMgZmlsdGVyCisgICAgICogaXMgYXBwbGllZC4KKyAgICAgKgorICAgICAqIEBzZWUgQ29sb3IKKyAgICAgKiBAc2VlICNzZXRDb2xvcihpbnQpCisgICAgICovCisgICAgcHVibGljIGludCBnZXRDb2xvcigpIHsKKyAgICAgICAgcmV0dXJuIG1Db2xvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZpZXMgdGhlIGNvbG9yIHRvIHRpbnQgdGhlIHNvdXJjZSBwaXhlbHMgd2l0aCB3aGVuIHRoaXMgY29sb3IKKyAgICAgKiBmaWx0ZXIgaXMgYXBwbGllZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb2xvciBBbiBBUkdCIHtAbGluayBDb2xvciBjb2xvcn0KKyAgICAgKgorICAgICAqIEBzZWUgQ29sb3IKKyAgICAgKiBAc2VlICNnZXRDb2xvcigpCisgICAgICogQHNlZSAjZ2V0TW9kZSgpCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29sb3IoaW50IGNvbG9yKSB7CisgICAgICAgIG1Db2xvciA9IGNvbG9yOworICAgICAgICB1cGRhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBQb3J0ZXItRHVmZiBtb2RlIHVzZWQgdG8gY29tcG9zaXRlIHRoaXMgY29sb3IgZmlsdGVyJ3MKKyAgICAgKiBjb2xvciB3aXRoIHRoZSBzb3VyY2UgcGl4ZWwgd2hlbiB0aGlzIGZpbHRlciBpcyBhcHBsaWVkLgorICAgICAqCisgICAgICogQHNlZSBQb3J0ZXJEdWZmCisgICAgICogQHNlZSAjc2V0TW9kZShhbmRyb2lkLmdyYXBoaWNzLlBvcnRlckR1ZmYuTW9kZSkKKyAgICAgKi8KKyAgICBwdWJsaWMgUG9ydGVyRHVmZi5Nb2RlIGdldE1vZGUoKSB7CisgICAgICAgIHJldHVybiBtTW9kZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZpZXMgdGhlIFBvcnRlci1EdWZmIG1vZGUgdG8gdXNlIHdoZW4gY29tcG9zaXRpbmcgdGhpcyBjb2xvcgorICAgICAqIGZpbHRlcidzIGNvbG9yIHdpdGggdGhlIHNvdXJjZSBwaXhlbCBhdCBkcmF3IHRpbWUuCisgICAgICoKKyAgICAgKiBAc2VlIFBvcnRlckR1ZmYKKyAgICAgKiBAc2VlICNnZXRNb2RlKCkKKyAgICAgKiBAc2VlICNnZXRDb2xvcigpCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9kZShQb3J0ZXJEdWZmLk1vZGUgbW9kZSkgeworICAgICAgICBtTW9kZSA9IG1vZGU7CisgICAgICAgIHVwZGF0ZSgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGUoKSB7CisgICAgICAgIGRlc3Ryb3lGaWx0ZXIobmF0aXZlX2luc3RhbmNlLCBuYXRpdmVDb2xvckZpbHRlcik7CisgICAgICAgIG5hdGl2ZV9pbnN0YW5jZSA9IG5hdGl2ZV9DcmVhdGVQb3J0ZXJEdWZmRmlsdGVyKG1Db2xvciwgbU1vZGUubmF0aXZlSW50KTsKKyAgICAgICAgbmF0aXZlQ29sb3JGaWx0ZXIgPSBuQ3JlYXRlUG9ydGVyRHVmZkZpbHRlcihuYXRpdmVfaW5zdGFuY2UsIG1Db2xvciwgbU1vZGUubmF0aXZlSW50KTsKICAgICB9CiAKICAgICBwcml2YXRlIHN0YXRpYyBuYXRpdmUgaW50IG5hdGl2ZV9DcmVhdGVQb3J0ZXJEdWZmRmlsdGVyKGludCBzcmNDb2xvciwgaW50IHBvcnRlckR1ZmZNb2RlKTsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9ncmFwaGljcy9kcmF3YWJsZS9EcmF3YWJsZS5qYXZhIGIvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL2RyYXdhYmxlL0RyYXdhYmxlLmphdmEKaW5kZXggOTM3MzhiMC4uYzg0Y2RiMCAxMDA2NDQKLS0tIGEvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL2RyYXdhYmxlL0RyYXdhYmxlLmphdmEKKysrIGIvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL2RyYXdhYmxlL0RyYXdhYmxlLmphdmEKQEAgLTM5LDYgKzM5LDcgQEAKIGltcG9ydCBhbmRyb2lkLnV0aWwuU3RhdGVTZXQ7CiBpbXBvcnQgYW5kcm9pZC51dGlsLlR5cGVkVmFsdWU7CiBpbXBvcnQgYW5kcm9pZC51dGlsLlhtbDsKK2ltcG9ydCBhbmRyb2lkLnZpZXcuVmlldzsKIAogaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CiBpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKQEAgLTM5OSw3ICs0MDAsNyBAQAogICAgICAqCiAgICAgICogQGhpZGUKICAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzZXRMYXlvdXREaXJlY3Rpb24oaW50IGxheW91dERpcmVjdGlvbikgeworICAgIHB1YmxpYyB2b2lkIHNldExheW91dERpcmVjdGlvbihAVmlldy5SZXNvbHZlZExheW91dERpciBpbnQgbGF5b3V0RGlyZWN0aW9uKSB7CiAgICAgICAgIGlmIChnZXRMYXlvdXREaXJlY3Rpb24oKSAhPSBsYXlvdXREaXJlY3Rpb24pIHsKICAgICAgICAgICAgIG1MYXlvdXREaXJlY3Rpb24gPSBsYXlvdXREaXJlY3Rpb247CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9ncmFwaGljcy9kcmF3YWJsZS9HcmFkaWVudERyYXdhYmxlLmphdmEgYi9ncmFwaGljcy9qYXZhL2FuZHJvaWQvZ3JhcGhpY3MvZHJhd2FibGUvR3JhZGllbnREcmF3YWJsZS5qYXZhCmluZGV4IGIzNDA3NzcuLmU1MWRmYmMgMTAwNjQ0Ci0tLSBhL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9ncmFwaGljcy9kcmF3YWJsZS9HcmFkaWVudERyYXdhYmxlLmphdmEKKysrIGIvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL2dyYXBoaWNzL2RyYXdhYmxlL0dyYWRpZW50RHJhd2FibGUuamF2YQpAQCAtMTYsNiArMTYsNyBAQAogCiBwYWNrYWdlIGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGU7CiAKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLkNvbG9yU3RhdGVMaXN0OwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuUmVzb3VyY2VzOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuVHlwZWRBcnJheTsKIGltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLkNhbnZhczsKQEAgLTI0LDEyICsyNSwxMiBAQAogaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuRGFzaFBhdGhFZmZlY3Q7CiBpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5MaW5lYXJHcmFkaWVudDsKIGltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlBhaW50OworaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuUGF0aDsKIGltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlBpeGVsRm9ybWF0OworaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuUmFkaWFsR3JhZGllbnQ7CiBpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5SZWN0OwogaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuUmVjdEY7CiBpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5TaGFkZXI7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5QYXRoOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuUmFkaWFsR3JhZGllbnQ7CiBpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5Td2VlcEdyYWRpZW50OwogaW1wb3J0IGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQ7CiBpbXBvcnQgYW5kcm9pZC51dGlsLkxvZzsKQEAgLTIzMyw2ICsyMzQsMjMgQEAKICAgICB9CiAKICAgICAvKioKKyAgICAgKiA8cD5TZXQgdGhlIHN0cm9rZSB3aWR0aCBhbmQgY29sb3Igc3RhdGUgbGlzdCBmb3IgdGhlIGRyYXdhYmxlLiBJZiB3aWR0aAorICAgICAqIGlzIHplcm8sIHRoZW4gbm8gc3Ryb2tlIGlzIGRyYXduLjwvcD4KKyAgICAgKiA8cD48c3Ryb25nPk5vdGU8L3N0cm9uZz46IGNoYW5naW5nIHRoaXMgcHJvcGVydHkgd2lsbCBhZmZlY3QgYWxsIGluc3RhbmNlcworICAgICAqIG9mIGEgZHJhd2FibGUgbG9hZGVkIGZyb20gYSByZXNvdXJjZS4gSXQgaXMgcmVjb21tZW5kZWQgdG8gaW52b2tlCisgICAgICoge0BsaW5rICNtdXRhdGUoKX0gYmVmb3JlIGNoYW5naW5nIHRoaXMgcHJvcGVydHkuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHdpZHRoIFRoZSB3aWR0aCBpbiBwaXhlbHMgb2YgdGhlIHN0cm9rZQorICAgICAqIEBwYXJhbSBjb2xvclN0YXRlTGlzdCBUaGUgY29sb3Igc3RhdGUgbGlzdCBvZiB0aGUgc3Ryb2tlCisgICAgICoKKyAgICAgKiBAc2VlICNtdXRhdGUoKQorICAgICAqIEBzZWUgI3NldFN0cm9rZShpbnQsIENvbG9yU3RhdGVMaXN0LCBmbG9hdCwgZmxvYXQpCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U3Ryb2tlKGludCB3aWR0aCwgQ29sb3JTdGF0ZUxpc3QgY29sb3JTdGF0ZUxpc3QpIHsKKyAgICAgICAgc2V0U3Ryb2tlKHdpZHRoLCBjb2xvclN0YXRlTGlzdCwgMCwgMCk7CisgICAgfQorCisgICAgLyoqCiAgICAgICogPHA+U2V0IHRoZSBzdHJva2Ugd2lkdGggYW5kIGNvbG9yIGZvciB0aGUgZHJhd2FibGUuIElmIHdpZHRoIGlzIHplcm8sCiAgICAgICogdGhlbiBubyBzdHJva2UgaXMgZHJhd24uIFRoaXMgbWV0aG9kIGNhbiBhbHNvIGJlIHVzZWQgdG8gZGFzaCB0aGUgc3Ryb2tlLjwvcD4KICAgICAgKiA8cD48c3Ryb25nPk5vdGU8L3N0cm9uZz46IGNoYW5naW5nIHRoaXMgcHJvcGVydHkgd2lsbCBhZmZlY3QgYWxsIGluc3RhbmNlcwpAQCAtMjQ5LDcgKzI2NywzNSBAQAogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIHNldFN0cm9rZShpbnQgd2lkdGgsIGludCBjb2xvciwgZmxvYXQgZGFzaFdpZHRoLCBmbG9hdCBkYXNoR2FwKSB7CiAgICAgICAgIG1HcmFkaWVudFN0YXRlLnNldFN0cm9rZSh3aWR0aCwgY29sb3IsIGRhc2hXaWR0aCwgZGFzaEdhcCk7CisgICAgICAgIHNldFN0cm9rZUludGVybmFsKHdpZHRoLCBjb2xvciwgZGFzaFdpZHRoLCBkYXNoR2FwKTsKKyAgICB9CiAKKyAgICAvKioKKyAgICAgKiA8cD5TZXQgdGhlIHN0cm9rZSB3aWR0aCBhbmQgY29sb3Igc3RhdGUgbGlzdCBmb3IgdGhlIGRyYXdhYmxlLiBJZiB3aWR0aAorICAgICAqIGlzIHplcm8sIHRoZW4gbm8gc3Ryb2tlIGlzIGRyYXduLiBUaGlzIG1ldGhvZCBjYW4gYWxzbyBiZSB1c2VkIHRvIGRhc2gKKyAgICAgKiB0aGUgc3Ryb2tlLjwvcD4KKyAgICAgKiA8cD48c3Ryb25nPk5vdGU8L3N0cm9uZz46IGNoYW5naW5nIHRoaXMgcHJvcGVydHkgd2lsbCBhZmZlY3QgYWxsIGluc3RhbmNlcworICAgICAqIG9mIGEgZHJhd2FibGUgbG9hZGVkIGZyb20gYSByZXNvdXJjZS4gSXQgaXMgcmVjb21tZW5kZWQgdG8gaW52b2tlCisgICAgICoge0BsaW5rICNtdXRhdGUoKX0gYmVmb3JlIGNoYW5naW5nIHRoaXMgcHJvcGVydHkuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHdpZHRoIFRoZSB3aWR0aCBpbiBwaXhlbHMgb2YgdGhlIHN0cm9rZQorICAgICAqIEBwYXJhbSBjb2xvclN0YXRlTGlzdCBUaGUgY29sb3Igc3RhdGUgbGlzdCBvZiB0aGUgc3Ryb2tlCisgICAgICogQHBhcmFtIGRhc2hXaWR0aCBUaGUgbGVuZ3RoIGluIHBpeGVscyBvZiB0aGUgZGFzaGVzLCBzZXQgdG8gMCB0byBkaXNhYmxlIGRhc2hlcworICAgICAqIEBwYXJhbSBkYXNoR2FwIFRoZSBnYXAgaW4gcGl4ZWxzIGJldHdlZW4gZGFzaGVzCisgICAgICoKKyAgICAgKiBAc2VlICNtdXRhdGUoKQorICAgICAqIEBzZWUgI3NldFN0cm9rZShpbnQsIENvbG9yU3RhdGVMaXN0KQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFN0cm9rZSgKKyAgICAgICAgICAgIGludCB3aWR0aCwgQ29sb3JTdGF0ZUxpc3QgY29sb3JTdGF0ZUxpc3QsIGZsb2F0IGRhc2hXaWR0aCwgZmxvYXQgZGFzaEdhcCkgeworICAgICAgICBtR3JhZGllbnRTdGF0ZS5zZXRTdHJva2Uod2lkdGgsIGNvbG9yU3RhdGVMaXN0LCBkYXNoV2lkdGgsIGRhc2hHYXApOworCisgICAgICAgIGZpbmFsIGludFtdIHN0YXRlU2V0ID0gZ2V0U3RhdGUoKTsKKyAgICAgICAgZmluYWwgaW50IGNvbG9yID0gY29sb3JTdGF0ZUxpc3QuZ2V0Q29sb3JGb3JTdGF0ZShzdGF0ZVNldCwgMCk7CisgICAgICAgIHNldFN0cm9rZUludGVybmFsKHdpZHRoLCBjb2xvciwgZGFzaFdpZHRoLCBkYXNoR2FwKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0U3Ryb2tlSW50ZXJuYWwoaW50IHdpZHRoLCBpbnQgY29sb3IsIGZsb2F0IGRhc2hXaWR0aCwgZmxvYXQgZGFzaEdhcCkgewogICAgICAgICBpZiAobVN0cm9rZVBhaW50ID09IG51bGwpICB7CiAgICAgICAgICAgICBtU3Ryb2tlUGFpbnQgPSBuZXcgUGFpbnQoUGFpbnQuQU5USV9BTElBU19GTEFHKTsKICAgICAgICAgICAgIG1TdHJva2VQYWludC5zZXRTdHlsZShQYWludC5TdHlsZS5TVFJPS0UpOwpAQCAtNDc5LDcgKzUyNSw4IEBACiAgICAgICAgICAgICBtRmlsbFBhaW50LnNldEFscGhhKGN1cnJGaWxsQWxwaGEpOwogICAgICAgICAgICAgbUZpbGxQYWludC5zZXREaXRoZXIobURpdGhlcik7CiAgICAgICAgICAgICBtRmlsbFBhaW50LnNldENvbG9yRmlsdGVyKG1Db2xvckZpbHRlcik7Ci0gICAgICAgICAgICBpZiAobUNvbG9yRmlsdGVyICE9IG51bGwgJiYgIW1HcmFkaWVudFN0YXRlLm1IYXNTb2xpZENvbG9yKSB7CisgICAgICAgICAgICBpZiAobUNvbG9yRmlsdGVyICE9IG51bGwgJiYgIW1HcmFkaWVudFN0YXRlLm1IYXNTb2xpZENvbG9yCisgICAgICAgICAgICAgICAgICAgICYmIG1HcmFkaWVudFN0YXRlLm1Db2xvclN0YXRlTGlzdCA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgbUZpbGxQYWludC5zZXRDb2xvcihtQWxwaGEgPDwgMjQpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGhhdmVTdHJva2UpIHsKQEAgLTYxMCw3ICs2NTcsNyBAQAogICAgIH0KIAogICAgIC8qKgotICAgICAqIDxwPkNoYW5nZXMgdGhpcyBkcmF3YmFsZSB0byB1c2UgYSBzaW5nbGUgY29sb3IgaW5zdGVhZCBvZiBhIGdyYWRpZW50LjwvcD4KKyAgICAgKiA8cD5DaGFuZ2VzIHRoaXMgZHJhd2FibGUgdG8gdXNlIGEgc2luZ2xlIGNvbG9yIGluc3RlYWQgb2YgYSBncmFkaWVudC48L3A+CiAgICAgICogPHA+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+OiBjaGFuZ2luZyBjb2xvciB3aWxsIGFmZmVjdCBhbGwgaW5zdGFuY2VzCiAgICAgICogb2YgYSBkcmF3YWJsZSBsb2FkZWQgZnJvbSBhIHJlc291cmNlLiBJdCBpcyByZWNvbW1lbmRlZCB0byBpbnZva2UKICAgICAgKiB7QGxpbmsgI211dGF0ZSgpfSBiZWZvcmUgY2hhbmdpbmcgdGhlIGNvbG9yLjwvcD4KQEAgLTYyNiw2ICs2NzMsNjUgQEAKICAgICAgICAgaW52YWxpZGF0ZVNlbGYoKTsKICAgICB9CiAKKyAgICAvKioKKyAgICAgKiBDaGFuZ2VzIHRoaXMgZHJhd2FibGUgdG8gdXNlIGEgc2luZ2xlIGNvbG9yIHN0YXRlIGxpc3QgaW5zdGVhZCBvZiBhCisgICAgICogZ3JhZGllbnQuCisgICAgICogPHA+CisgICAgICogPHN0cm9uZz5Ob3RlPC9zdHJvbmc+OiBjaGFuZ2luZyBjb2xvciB3aWxsIGFmZmVjdCBhbGwgaW5zdGFuY2VzIG9mIGEKKyAgICAgKiBkcmF3YWJsZSBsb2FkZWQgZnJvbSBhIHJlc291cmNlLiBJdCBpcyByZWNvbW1lbmRlZCB0byBpbnZva2UKKyAgICAgKiB7QGxpbmsgI211dGF0ZSgpfSBiZWZvcmUgY2hhbmdpbmcgdGhlIGNvbG9yLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb2xvclN0YXRlTGlzdCBUaGUgY29sb3Igc3RhdGUgbGlzdCB1c2VkIHRvIGZpbGwgdGhlIHNoYXBlCisgICAgICogQHNlZSAjbXV0YXRlKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb2xvcihDb2xvclN0YXRlTGlzdCBjb2xvclN0YXRlTGlzdCkgeworICAgICAgICBmaW5hbCBpbnQgY29sb3IgPSBjb2xvclN0YXRlTGlzdC5nZXRDb2xvckZvclN0YXRlKGdldFN0YXRlKCksIDApOworICAgICAgICBtR3JhZGllbnRTdGF0ZS5zZXRDb2xvclN0YXRlTGlzdChjb2xvclN0YXRlTGlzdCk7CisgICAgICAgIG1GaWxsUGFpbnQuc2V0Q29sb3IoY29sb3IpOworICAgICAgICBpbnZhbGlkYXRlU2VsZigpOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBib29sZWFuIG9uU3RhdGVDaGFuZ2UoaW50W10gc3RhdGVTZXQpIHsKKyAgICAgICAgYm9vbGVhbiBpbnZhbGlkYXRlU2VsZiA9IGZhbHNlOworCisgICAgICAgIGZpbmFsIEdyYWRpZW50U3RhdGUgcyA9IG1HcmFkaWVudFN0YXRlOworICAgICAgICBmaW5hbCBDb2xvclN0YXRlTGlzdCBzdGF0ZUxpc3QgPSBzLm1Db2xvclN0YXRlTGlzdDsKKyAgICAgICAgaWYgKHN0YXRlTGlzdCAhPSBudWxsKSB7CisgICAgICAgICAgICBmaW5hbCBpbnQgbmV3Q29sb3IgPSBzdGF0ZUxpc3QuZ2V0Q29sb3JGb3JTdGF0ZShzdGF0ZVNldCwgMCk7CisgICAgICAgICAgICBmaW5hbCBpbnQgb2xkQ29sb3IgPSBtRmlsbFBhaW50LmdldENvbG9yKCk7CisgICAgICAgICAgICBpZiAob2xkQ29sb3IgIT0gbmV3Q29sb3IpIHsKKyAgICAgICAgICAgICAgICBtRmlsbFBhaW50LnNldENvbG9yKG5ld0NvbG9yKTsKKyAgICAgICAgICAgICAgICBpbnZhbGlkYXRlU2VsZiB8PSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgQ29sb3JTdGF0ZUxpc3Qgc3Ryb2tlU3RhdGVMaXN0ID0gcy5tU3Ryb2tlQ29sb3JTdGF0ZUxpc3Q7CisgICAgICAgIGlmIChzdHJva2VTdGF0ZUxpc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgZmluYWwgaW50IG5ld0NvbG9yID0gc3RhdGVMaXN0LmdldENvbG9yRm9yU3RhdGUoc3RhdGVTZXQsIDApOworICAgICAgICAgICAgZmluYWwgaW50IG9sZENvbG9yID0gbVN0cm9rZVBhaW50LmdldENvbG9yKCk7CisgICAgICAgICAgICBpZiAob2xkQ29sb3IgIT0gbmV3Q29sb3IpIHsKKyAgICAgICAgICAgICAgICBtU3Ryb2tlUGFpbnQuc2V0Q29sb3IobmV3Q29sb3IpOworICAgICAgICAgICAgICAgIGludmFsaWRhdGVTZWxmIHw9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaW52YWxpZGF0ZVNlbGYpIHsKKyAgICAgICAgICAgIGludmFsaWRhdGVTZWxmKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgYm9vbGVhbiBpc1N0YXRlZnVsKCkgeworICAgICAgICBmaW5hbCBHcmFkaWVudFN0YXRlIHMgPSBtR3JhZGllbnRTdGF0ZTsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmlzU3RhdGVmdWwoKQorICAgICAgICAgICAgICAgIHx8IChzLm1Db2xvclN0YXRlTGlzdCAhPSBudWxsICYmIHMubUNvbG9yU3RhdGVMaXN0LmlzU3RhdGVmdWwoKSkKKyAgICAgICAgICAgICAgICB8fCAocy5tU3Ryb2tlQ29sb3JTdGF0ZUxpc3QgIT0gbnVsbCAmJiBzLm1TdHJva2VDb2xvclN0YXRlTGlzdC5pc1N0YXRlZnVsKCkpOworICAgIH0KKwogICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyBpbnQgZ2V0Q2hhbmdpbmdDb25maWd1cmF0aW9ucygpIHsKICAgICAgICAgcmV0dXJuIHN1cGVyLmdldENoYW5naW5nQ29uZmlndXJhdGlvbnMoKSB8IG1HcmFkaWVudFN0YXRlLm1DaGFuZ2luZ0NvbmZpZ3VyYXRpb25zOwpAQCAtNzkxLDcgKzg5Nyw3IEBACiAKICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgc29saWQgY29sb3IsIHRoZSBhbHBoYSBjaGFubmVsIG11c3QgYmUKICAgICAgICAgICAgICAgICAvLyBtYXhlZCBvdXQgc28gdGhhdCBhbHBoYSBtb2R1bGF0aW9uIHdvcmtzIGNvcnJlY3RseS4KLSAgICAgICAgICAgICAgICBpZiAoIXN0Lm1IYXNTb2xpZENvbG9yKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdC5tSGFzU29saWRDb2xvciAmJiBzdC5tQ29sb3JTdGF0ZUxpc3QgPT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICBtRmlsbFBhaW50LnNldENvbG9yKENvbG9yLkJMQUNLKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC05NjcsMjUgKzEwNzMsMjUgQEAKICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZS5lcXVhbHMoInNvbGlkIikpIHsKICAgICAgICAgICAgICAgICBhID0gci5vYnRhaW5BdHRyaWJ1dGVzKGF0dHJzLAogICAgICAgICAgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuR3JhZGllbnREcmF3YWJsZVNvbGlkKTsKLSAgICAgICAgICAgICAgICBpbnQgYXJnYiA9IGEuZ2V0Q29sb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5HcmFkaWVudERyYXdhYmxlU29saWRfY29sb3IsIDApOworICAgICAgICAgICAgICAgIGZpbmFsIENvbG9yU3RhdGVMaXN0IGNvbG9yU3RhdGVMaXN0ID0gYS5nZXRDb2xvclN0YXRlTGlzdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkdyYWRpZW50RHJhd2FibGVTb2xpZF9jb2xvcik7CiAgICAgICAgICAgICAgICAgYS5yZWN5Y2xlKCk7Ci0gICAgICAgICAgICAgICAgc2V0Q29sb3IoYXJnYik7CisgICAgICAgICAgICAgICAgc2V0Q29sb3IoY29sb3JTdGF0ZUxpc3QpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lLmVxdWFscygic3Ryb2tlIikpIHsKICAgICAgICAgICAgICAgICBhID0gci5vYnRhaW5BdHRyaWJ1dGVzKGF0dHJzLAogICAgICAgICAgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuR3JhZGllbnREcmF3YWJsZVN0cm9rZSk7Ci0gICAgICAgICAgICAgICAgaW50IHdpZHRoID0gYS5nZXREaW1lbnNpb25QaXhlbFNpemUoCisgICAgICAgICAgICAgICAgZmluYWwgaW50IHdpZHRoID0gYS5nZXREaW1lbnNpb25QaXhlbFNpemUoCiAgICAgICAgICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5HcmFkaWVudERyYXdhYmxlU3Ryb2tlX3dpZHRoLCAwKTsKLSAgICAgICAgICAgICAgICBpbnQgY29sb3IgPSBhLmdldENvbG9yKAotICAgICAgICAgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuR3JhZGllbnREcmF3YWJsZVN0cm9rZV9jb2xvciwgMCk7Ci0gICAgICAgICAgICAgICAgZmxvYXQgZGFzaFdpZHRoID0gYS5nZXREaW1lbnNpb24oCisgICAgICAgICAgICAgICAgZmluYWwgQ29sb3JTdGF0ZUxpc3QgY29sb3JTdGF0ZUxpc3QgPSBhLmdldENvbG9yU3RhdGVMaXN0KAorICAgICAgICAgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuR3JhZGllbnREcmF3YWJsZVN0cm9rZV9jb2xvcik7CisgICAgICAgICAgICAgICAgZmluYWwgZmxvYXQgZGFzaFdpZHRoID0gYS5nZXREaW1lbnNpb24oCiAgICAgICAgICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5HcmFkaWVudERyYXdhYmxlU3Ryb2tlX2Rhc2hXaWR0aCwgMCk7CiAgICAgICAgICAgICAgICAgaWYgKGRhc2hXaWR0aCAhPSAwLjBmKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZsb2F0IGRhc2hHYXAgPSBhLmdldERpbWVuc2lvbigKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgZmxvYXQgZGFzaEdhcCA9IGEuZ2V0RGltZW5zaW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLkdyYWRpZW50RHJhd2FibGVTdHJva2VfZGFzaEdhcCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgIHNldFN0cm9rZSh3aWR0aCwgY29sb3IsIGRhc2hXaWR0aCwgZGFzaEdhcCk7CisgICAgICAgICAgICAgICAgICAgIHNldFN0cm9rZSh3aWR0aCwgY29sb3JTdGF0ZUxpc3QsIGRhc2hXaWR0aCwgZGFzaEdhcCk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgc2V0U3Ryb2tlKHdpZHRoLCBjb2xvcik7CisgICAgICAgICAgICAgICAgICAgIHNldFN0cm9rZSh3aWR0aCwgY29sb3JTdGF0ZUxpc3QpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBhLnJlY3ljbGUoKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZS5lcXVhbHMoImNvcm5lcnMiKSkgewpAQCAtMTA3Nyw2ICsxMTgzLDggQEAKICAgICAgICAgcHVibGljIGludCBtU2hhcGUgPSBSRUNUQU5HTEU7CiAgICAgICAgIHB1YmxpYyBpbnQgbUdyYWRpZW50ID0gTElORUFSX0dSQURJRU5UOwogICAgICAgICBwdWJsaWMgT3JpZW50YXRpb24gbU9yaWVudGF0aW9uOworICAgICAgICBwdWJsaWMgQ29sb3JTdGF0ZUxpc3QgbUNvbG9yU3RhdGVMaXN0OworICAgICAgICBwdWJsaWMgQ29sb3JTdGF0ZUxpc3QgbVN0cm9rZUNvbG9yU3RhdGVMaXN0OwogICAgICAgICBwdWJsaWMgaW50W10gbUNvbG9yczsKICAgICAgICAgcHVibGljIGludFtdIG1UZW1wQ29sb3JzOyAvLyBubyBuZWVkIHRvIGNvcHkKICAgICAgICAgcHVibGljIGZsb2F0W10gbVRlbXBQb3NpdGlvbnM7IC8vIG5vIG5lZWQgdG8gY29weQpAQCAtMTExMyw2ICsxMjIxLDcgQEAKICAgICAgICAgICAgIG1TaGFwZSA9IHN0YXRlLm1TaGFwZTsKICAgICAgICAgICAgIG1HcmFkaWVudCA9IHN0YXRlLm1HcmFkaWVudDsKICAgICAgICAgICAgIG1PcmllbnRhdGlvbiA9IHN0YXRlLm1PcmllbnRhdGlvbjsKKyAgICAgICAgICAgIG1Db2xvclN0YXRlTGlzdCA9IHN0YXRlLm1Db2xvclN0YXRlTGlzdDsKICAgICAgICAgICAgIGlmIChzdGF0ZS5tQ29sb3JzICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICBtQ29sb3JzID0gc3RhdGUubUNvbG9ycy5jbG9uZSgpOwogICAgICAgICAgICAgfQpAQCAtMTE3OCw2ICsxMjg3LDcgQEAKICAgICAgICAgcHVibGljIHZvaWQgc2V0Q29sb3JzKGludFtdIGNvbG9ycykgewogICAgICAgICAgICAgbUhhc1NvbGlkQ29sb3IgPSBmYWxzZTsKICAgICAgICAgICAgIG1Db2xvcnMgPSBjb2xvcnM7CisgICAgICAgICAgICBtQ29sb3JTdGF0ZUxpc3QgPSBudWxsOwogICAgICAgICAgICAgY29tcHV0ZU9wYWNpdHkoKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTExODUsNiArMTI5NSwxNCBAQAogICAgICAgICAgICAgbUhhc1NvbGlkQ29sb3IgPSB0cnVlOwogICAgICAgICAgICAgbVNvbGlkQ29sb3IgPSBhcmdiOwogICAgICAgICAgICAgbUNvbG9ycyA9IG51bGw7CisgICAgICAgICAgICBtQ29sb3JTdGF0ZUxpc3QgPSBudWxsOworICAgICAgICAgICAgY29tcHV0ZU9wYWNpdHkoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldENvbG9yU3RhdGVMaXN0KENvbG9yU3RhdGVMaXN0IGNvbG9yU3RhdGVMaXN0KSB7CisgICAgICAgICAgICBtSGFzU29saWRDb2xvciA9IGZhbHNlOworICAgICAgICAgICAgbUNvbG9ycyA9IG51bGw7CisgICAgICAgICAgICBtQ29sb3JTdGF0ZUxpc3QgPSBjb2xvclN0YXRlTGlzdDsKICAgICAgICAgICAgIGNvbXB1dGVPcGFjaXR5KCk7CiAgICAgICAgIH0KIApAQCAtMTE5OSwxMSArMTMxNywyMyBAQAogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKG1TdHJva2VXaWR0aCA+IDAgJiYgIWlzT3BhcXVlKG1TdHJva2VDb2xvcikpIHsKKyAgICAgICAgICAgIGlmIChtU3Ryb2tlV2lkdGggPiAwKSB7CisgICAgICAgICAgICAgICAgaWYgKG1TdHJva2VDb2xvclN0YXRlTGlzdCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghbVN0cm9rZUNvbG9yU3RhdGVMaXN0LmlzT3BhcXVlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1PcGFxdWUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWlzT3BhcXVlKG1TdHJva2VDb2xvcikpIHsKKyAgICAgICAgICAgICAgICAgICAgbU9wYXF1ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobUNvbG9yU3RhdGVMaXN0ICE9IG51bGwgJiYgIW1Db2xvclN0YXRlTGlzdC5pc09wYXF1ZSgpKSB7CiAgICAgICAgICAgICAgICAgbU9wYXF1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICBpZiAobUhhc1NvbGlkQ29sb3IpIHsKICAgICAgICAgICAgICAgICBtT3BhcXVlID0gaXNPcGFxdWUobVNvbGlkQ29sb3IpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTEyMjgsMTIgKzEzNTgsMjMgQEAKICAgICAgICAgcHVibGljIHZvaWQgc2V0U3Ryb2tlKGludCB3aWR0aCwgaW50IGNvbG9yKSB7CiAgICAgICAgICAgICBtU3Ryb2tlV2lkdGggPSB3aWR0aDsKICAgICAgICAgICAgIG1TdHJva2VDb2xvciA9IGNvbG9yOworICAgICAgICAgICAgbVN0cm9rZUNvbG9yU3RhdGVMaXN0ID0gbnVsbDsKICAgICAgICAgICAgIGNvbXB1dGVPcGFjaXR5KCk7CiAgICAgICAgIH0KIAogICAgICAgICBwdWJsaWMgdm9pZCBzZXRTdHJva2UoaW50IHdpZHRoLCBpbnQgY29sb3IsIGZsb2F0IGRhc2hXaWR0aCwgZmxvYXQgZGFzaEdhcCkgewogICAgICAgICAgICAgbVN0cm9rZVdpZHRoID0gd2lkdGg7CiAgICAgICAgICAgICBtU3Ryb2tlQ29sb3IgPSBjb2xvcjsKKyAgICAgICAgICAgIG1TdHJva2VDb2xvclN0YXRlTGlzdCA9IG51bGw7CisgICAgICAgICAgICBtU3Ryb2tlRGFzaFdpZHRoID0gZGFzaFdpZHRoOworICAgICAgICAgICAgbVN0cm9rZURhc2hHYXAgPSBkYXNoR2FwOworICAgICAgICAgICAgY29tcHV0ZU9wYWNpdHkoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldFN0cm9rZSgKKyAgICAgICAgICAgICAgICBpbnQgd2lkdGgsIENvbG9yU3RhdGVMaXN0IGNvbG9yU3RhdGVMaXN0LCBmbG9hdCBkYXNoV2lkdGgsIGZsb2F0IGRhc2hHYXApIHsKKyAgICAgICAgICAgIG1TdHJva2VXaWR0aCA9IHdpZHRoOworICAgICAgICAgICAgbVN0cm9rZUNvbG9yU3RhdGVMaXN0ID0gY29sb3JTdGF0ZUxpc3Q7CiAgICAgICAgICAgICBtU3Ryb2tlRGFzaFdpZHRoID0gZGFzaFdpZHRoOwogICAgICAgICAgICAgbVN0cm9rZURhc2hHYXAgPSBkYXNoR2FwOwogICAgICAgICAgICAgY29tcHV0ZU9wYWNpdHkoKTsKQEAgLTEyNzQsNiArMTQxNSwxMCBAQAogICAgIHByaXZhdGUgdm9pZCBpbml0aWFsaXplV2l0aFN0YXRlKEdyYWRpZW50U3RhdGUgc3RhdGUpIHsKICAgICAgICAgaWYgKHN0YXRlLm1IYXNTb2xpZENvbG9yKSB7CiAgICAgICAgICAgICBtRmlsbFBhaW50LnNldENvbG9yKHN0YXRlLm1Tb2xpZENvbG9yKTsKKyAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5tQ29sb3JTdGF0ZUxpc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgZmluYWwgaW50W10gY3VycmVudFN0YXRlID0gZ2V0U3RhdGUoKTsKKyAgICAgICAgICAgIGZpbmFsIGludCBzdGF0ZUNvbG9yID0gc3RhdGUubUNvbG9yU3RhdGVMaXN0LmdldENvbG9yRm9yU3RhdGUoY3VycmVudFN0YXRlLCAwKTsKKyAgICAgICAgICAgIG1GaWxsUGFpbnQuc2V0Q29sb3Ioc3RhdGVDb2xvcik7CiAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubUNvbG9ycyA9PSBudWxsKSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgc29saWQgY29sb3IgYW5kIHdlIGRvbid0IGhhdmUgYSBncmFkaWVudCwKICAgICAgICAgICAgIC8vIHRoZSBhcHAgaXMgc3Ryb2tpbmcgdGhlIHNoYXBlLCBzZXQgdGhlIGNvbG9yIHRvIHRoZSBkZWZhdWx0CmRpZmYgLS1naXQgYS9ncmFwaGljcy9qYXZhL2FuZHJvaWQvcmVuZGVyc2NyaXB0L0FsbG9jYXRpb24uamF2YSBiL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9yZW5kZXJzY3JpcHQvQWxsb2NhdGlvbi5qYXZhCmluZGV4IGRjYTkzNGYuLjBjYWZkZDcgMTAwNjQ0Ci0tLSBhL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9yZW5kZXJzY3JpcHQvQWxsb2NhdGlvbi5qYXZhCisrKyBiL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9yZW5kZXJzY3JpcHQvQWxsb2NhdGlvbi5qYXZhCkBAIC0yNCw3ICsyNCw2IEBACiBpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXA7CiBpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXBGYWN0b3J5OwogaW1wb3J0IGFuZHJvaWQudmlldy5TdXJmYWNlOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuU3VyZmFjZVRleHR1cmU7CiBpbXBvcnQgYW5kcm9pZC51dGlsLkxvZzsKIGltcG9ydCBhbmRyb2lkLnV0aWwuVHlwZWRWYWx1ZTsKIGltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLkNhbnZhczsKQEAgLTEyNywxNyArMTI2LDE3IEBACiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVVNBR0VfR1JBUEhJQ1NfUkVOREVSX1RBUkdFVCA9IDB4MDAxMDsKIAogICAgIC8qKgotICAgICAqIFRoZSBBbGxvY2F0aW9uIHdpbGwgYmUgdXNlZCBhcyBhIHtAbGluayBhbmRyb2lkLmdyYXBoaWNzLlN1cmZhY2VUZXh0dXJlfQotICAgICAqIGNvbnN1bWVyLiAgVGhpcyB1c2FnZSB3aWxsIGNhdXNlIHRoZSBBbGxvY2F0aW9uIHRvIGJlIGNyZWF0ZWQgYXMKLSAgICAgKiByZWFkLW9ubHkuCisgICAgICogVGhlIEFsbG9jYXRpb24gd2lsbCBiZSB1c2VkIGFzIGEge0BsaW5rIGFuZHJvaWQudmlldy5TdXJmYWNlfQorICAgICAqIGNvbnN1bWVyLiAgVGhpcyB1c2FnZSB3aWxsIGNhdXNlIHRoZSBBbGxvY2F0aW9uIHRvIGJlIGNyZWF0ZWQKKyAgICAgKiBhcyByZWFkLW9ubHkuCiAgICAgICoKICAgICAgKi8KICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVU0FHRV9JT19JTlBVVCA9IDB4MDAyMDsKIAogICAgIC8qKgotICAgICAqIFRoZSBBbGxvY2F0aW9uIHdpbGwgYmUgdXNlZCBhcyBhIHtAbGluayBhbmRyb2lkLmdyYXBoaWNzLlN1cmZhY2VUZXh0dXJlfQorICAgICAqIFRoZSBBbGxvY2F0aW9uIHdpbGwgYmUgdXNlZCBhcyBhIHtAbGluayBhbmRyb2lkLnZpZXcuU3VyZmFjZX0KICAgICAgKiBwcm9kdWNlci4gIFRoZSBkaW1lbnNpb25zIGFuZCBmb3JtYXQgb2YgdGhlIHtAbGluawotICAgICAqIGFuZHJvaWQuZ3JhcGhpY3MuU3VyZmFjZVRleHR1cmV9IHdpbGwgYmUgZm9yY2VkIHRvIHRob3NlIG9mIHRoZQorICAgICAqIGFuZHJvaWQudmlldy5TdXJmYWNlfSB3aWxsIGJlIGZvcmNlZCB0byB0aG9zZSBvZiB0aGUKICAgICAgKiBBbGxvY2F0aW9uLgogICAgICAqCiAgICAgICovCkBAIC00MTIsMTQgKzQxMSw2IEBACiAgICAgfQogCiAgICAgLyoqCi0gICAgICogRGVsZXRlIG9uY2UgY29kZSBpcyB1cGRhdGVkLgotICAgICAqIEBoaWRlCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgaW9TZW5kT3V0cHV0KCkgewotICAgICAgICBpb1NlbmQoKTsKLSAgICB9Ci0KLSAgICAvKioKICAgICAgKiBSZWNlaXZlIHRoZSBsYXRlc3QgaW5wdXQgaW50byB0aGUgQWxsb2NhdGlvbi4gVGhpcyBvcGVyYXRpb24KICAgICAgKiBpcyBvbmx5IHZhbGlkIGlmIHtAbGluayAjVVNBR0VfSU9fSU5QVVR9IGlzIHNldCBvbiB0aGUgQWxsb2NhdGlvbi4KICAgICAgKgpAQCAtODEwLDcgKzgwMSw3IEBACiAgICAgICAgIFRyYWNlLnRyYWNlQmVnaW4oUmVuZGVyU2NyaXB0LlRSQUNFX1RBRywgImNvcHkxRFJhbmdlRnJvbVVuY2hlY2tlZCIpOwogICAgICAgICBpbnQgZGF0YVNpemUgPSBtVHlwZS5tRWxlbWVudC5nZXRCeXRlc1NpemUoKSAqIGNvdW50OwogICAgICAgICBkYXRhMURDaGVja3Mob2ZmLCBjb3VudCwgZC5sZW5ndGggKiA0LCBkYXRhU2l6ZSk7Ci0gICAgICAgIG1SUy5uQWxsb2NhdGlvbkRhdGExRChnZXRJRFNhZmUoKSwgb2ZmLCBtU2VsZWN0ZWRMT0QsIGNvdW50LCBkLCBkYXRhU2l6ZSk7CisgICAgICAgIG1SUy5uQWxsb2NhdGlvbkRhdGExRChnZXRJRFNhZmUoKSwgb2ZmLCBtU2VsZWN0ZWRMT0QsIGNvdW50LCBkLCBkYXRhU2l6ZSwgRWxlbWVudC5EYXRhVHlwZS5TSUdORURfMzIpOwogICAgICAgICBUcmFjZS50cmFjZUVuZChSZW5kZXJTY3JpcHQuVFJBQ0VfVEFHKTsKICAgICB9CiAKQEAgLTgyNiw3ICs4MTcsNyBAQAogICAgICAgICBUcmFjZS50cmFjZUJlZ2luKFJlbmRlclNjcmlwdC5UUkFDRV9UQUcsICJjb3B5MURSYW5nZUZyb21VbmNoZWNrZWQiKTsKICAgICAgICAgaW50IGRhdGFTaXplID0gbVR5cGUubUVsZW1lbnQuZ2V0Qnl0ZXNTaXplKCkgKiBjb3VudDsKICAgICAgICAgZGF0YTFEQ2hlY2tzKG9mZiwgY291bnQsIGQubGVuZ3RoICogMiwgZGF0YVNpemUpOwotICAgICAgICBtUlMubkFsbG9jYXRpb25EYXRhMUQoZ2V0SURTYWZlKCksIG9mZiwgbVNlbGVjdGVkTE9ELCBjb3VudCwgZCwgZGF0YVNpemUpOworICAgICAgICBtUlMubkFsbG9jYXRpb25EYXRhMUQoZ2V0SURTYWZlKCksIG9mZiwgbVNlbGVjdGVkTE9ELCBjb3VudCwgZCwgZGF0YVNpemUsIEVsZW1lbnQuRGF0YVR5cGUuU0lHTkVEXzE2KTsKICAgICAgICAgVHJhY2UudHJhY2VFbmQoUmVuZGVyU2NyaXB0LlRSQUNFX1RBRyk7CiAgICAgfQogCkBAIC04NDIsNyArODMzLDcgQEAKICAgICAgICAgVHJhY2UudHJhY2VCZWdpbihSZW5kZXJTY3JpcHQuVFJBQ0VfVEFHLCAiY29weTFEUmFuZ2VGcm9tVW5jaGVja2VkIik7CiAgICAgICAgIGludCBkYXRhU2l6ZSA9IG1UeXBlLm1FbGVtZW50LmdldEJ5dGVzU2l6ZSgpICogY291bnQ7CiAgICAgICAgIGRhdGExRENoZWNrcyhvZmYsIGNvdW50LCBkLmxlbmd0aCwgZGF0YVNpemUpOwotICAgICAgICBtUlMubkFsbG9jYXRpb25EYXRhMUQoZ2V0SURTYWZlKCksIG9mZiwgbVNlbGVjdGVkTE9ELCBjb3VudCwgZCwgZGF0YVNpemUpOworICAgICAgICBtUlMubkFsbG9jYXRpb25EYXRhMUQoZ2V0SURTYWZlKCksIG9mZiwgbVNlbGVjdGVkTE9ELCBjb3VudCwgZCwgZGF0YVNpemUsIEVsZW1lbnQuRGF0YVR5cGUuU0lHTkVEXzgpOwogICAgICAgICBUcmFjZS50cmFjZUVuZChSZW5kZXJTY3JpcHQuVFJBQ0VfVEFHKTsKICAgICB9CiAKQEAgLTg1OCw3ICs4NDksNyBAQAogICAgICAgICBUcmFjZS50cmFjZUJlZ2luKFJlbmRlclNjcmlwdC5UUkFDRV9UQUcsICJjb3B5MURSYW5nZUZyb21VbmNoZWNrZWQiKTsKICAgICAgICAgaW50IGRhdGFTaXplID0gbVR5cGUubUVsZW1lbnQuZ2V0Qnl0ZXNTaXplKCkgKiBjb3VudDsKICAgICAgICAgZGF0YTFEQ2hlY2tzKG9mZiwgY291bnQsIGQubGVuZ3RoICogNCwgZGF0YVNpemUpOwotICAgICAgICBtUlMubkFsbG9jYXRpb25EYXRhMUQoZ2V0SURTYWZlKCksIG9mZiwgbVNlbGVjdGVkTE9ELCBjb3VudCwgZCwgZGF0YVNpemUpOworICAgICAgICBtUlMubkFsbG9jYXRpb25EYXRhMUQoZ2V0SURTYWZlKCksIG9mZiwgbVNlbGVjdGVkTE9ELCBjb3VudCwgZCwgZGF0YVNpemUsIEVsZW1lbnQuRGF0YVR5cGUuRkxPQVRfMzIpOwogICAgICAgICBUcmFjZS50cmFjZUVuZChSZW5kZXJTY3JpcHQuVFJBQ0VfVEFHKTsKICAgICB9CiAKQEAgLTk2NCw3ICs5NTUsNyBAQAogICAgICAgICBtUlMudmFsaWRhdGUoKTsKICAgICAgICAgdmFsaWRhdGUyRFJhbmdlKHhvZmYsIHlvZmYsIHcsIGgpOwogICAgICAgICBtUlMubkFsbG9jYXRpb25EYXRhMkQoZ2V0SURTYWZlKCksIHhvZmYsIHlvZmYsIG1TZWxlY3RlZExPRCwgbVNlbGVjdGVkRmFjZS5tSUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LCBoLCBkYXRhLCBkYXRhLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LCBoLCBkYXRhLCBkYXRhLmxlbmd0aCwgRWxlbWVudC5EYXRhVHlwZS5TSUdORURfOCk7CiAgICAgICAgIFRyYWNlLnRyYWNlRW5kKFJlbmRlclNjcmlwdC5UUkFDRV9UQUcpOwogICAgIH0KIApAQCAtOTczLDcgKzk2NCw3IEBACiAgICAgICAgIG1SUy52YWxpZGF0ZSgpOwogICAgICAgICB2YWxpZGF0ZTJEUmFuZ2UoeG9mZiwgeW9mZiwgdywgaCk7CiAgICAgICAgIG1SUy5uQWxsb2NhdGlvbkRhdGEyRChnZXRJRFNhZmUoKSwgeG9mZiwgeW9mZiwgbVNlbGVjdGVkTE9ELCBtU2VsZWN0ZWRGYWNlLm1JRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcsIGgsIGRhdGEsIGRhdGEubGVuZ3RoICogMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LCBoLCBkYXRhLCBkYXRhLmxlbmd0aCAqIDIsIEVsZW1lbnQuRGF0YVR5cGUuU0lHTkVEXzE2KTsKICAgICAgICAgVHJhY2UudHJhY2VFbmQoUmVuZGVyU2NyaXB0LlRSQUNFX1RBRyk7CiAgICAgfQogCkBAIC05ODIsNyArOTczLDcgQEAKICAgICAgICAgbVJTLnZhbGlkYXRlKCk7CiAgICAgICAgIHZhbGlkYXRlMkRSYW5nZSh4b2ZmLCB5b2ZmLCB3LCBoKTsKICAgICAgICAgbVJTLm5BbGxvY2F0aW9uRGF0YTJEKGdldElEU2FmZSgpLCB4b2ZmLCB5b2ZmLCBtU2VsZWN0ZWRMT0QsIG1TZWxlY3RlZEZhY2UubUlELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdywgaCwgZGF0YSwgZGF0YS5sZW5ndGggKiA0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcsIGgsIGRhdGEsIGRhdGEubGVuZ3RoICogNCwgRWxlbWVudC5EYXRhVHlwZS5TSUdORURfMzIpOwogICAgICAgICBUcmFjZS50cmFjZUVuZChSZW5kZXJTY3JpcHQuVFJBQ0VfVEFHKTsKICAgICB9CiAKQEAgLTk5MSw3ICs5ODIsNyBAQAogICAgICAgICBtUlMudmFsaWRhdGUoKTsKICAgICAgICAgdmFsaWRhdGUyRFJhbmdlKHhvZmYsIHlvZmYsIHcsIGgpOwogICAgICAgICBtUlMubkFsbG9jYXRpb25EYXRhMkQoZ2V0SURTYWZlKCksIHhvZmYsIHlvZmYsIG1TZWxlY3RlZExPRCwgbVNlbGVjdGVkRmFjZS5tSUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LCBoLCBkYXRhLCBkYXRhLmxlbmd0aCAqIDQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdywgaCwgZGF0YSwgZGF0YS5sZW5ndGggKiA0LCBFbGVtZW50LkRhdGFUeXBlLkZMT0FUXzMyKTsKICAgICAgICAgVHJhY2UudHJhY2VFbmQoUmVuZGVyU2NyaXB0LlRSQUNFX1RBRyk7CiAgICAgfQogCkBAIC0xMTM3LDcgKzExMjgsNyBAQAogICAgICAgICBtUlMudmFsaWRhdGUoKTsKICAgICAgICAgdmFsaWRhdGUzRFJhbmdlKHhvZmYsIHlvZmYsIHpvZmYsIHcsIGgsIGQpOwogICAgICAgICBtUlMubkFsbG9jYXRpb25EYXRhM0QoZ2V0SURTYWZlKCksIHhvZmYsIHlvZmYsIHpvZmYsIG1TZWxlY3RlZExPRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcsIGgsIGQsIGRhdGEsIGRhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcsIGgsIGQsIGRhdGEsIGRhdGEubGVuZ3RoLCBFbGVtZW50LkRhdGFUeXBlLlNJR05FRF84KTsKICAgICB9CiAKICAgICAvKioKQEAgLTExNDgsNyArMTEzOSw3IEBACiAgICAgICAgIG1SUy52YWxpZGF0ZSgpOwogICAgICAgICB2YWxpZGF0ZTNEUmFuZ2UoeG9mZiwgeW9mZiwgem9mZiwgdywgaCwgZCk7CiAgICAgICAgIG1SUy5uQWxsb2NhdGlvbkRhdGEzRChnZXRJRFNhZmUoKSwgeG9mZiwgeW9mZiwgem9mZiwgbVNlbGVjdGVkTE9ELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdywgaCwgZCwgZGF0YSwgZGF0YS5sZW5ndGggKiAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcsIGgsIGQsIGRhdGEsIGRhdGEubGVuZ3RoICogMiwgRWxlbWVudC5EYXRhVHlwZS5TSUdORURfMTYpOwogICAgIH0KIAogICAgIC8qKgpAQCAtMTE1OSw3ICsxMTUwLDcgQEAKICAgICAgICAgbVJTLnZhbGlkYXRlKCk7CiAgICAgICAgIHZhbGlkYXRlM0RSYW5nZSh4b2ZmLCB5b2ZmLCB6b2ZmLCB3LCBoLCBkKTsKICAgICAgICAgbVJTLm5BbGxvY2F0aW9uRGF0YTNEKGdldElEU2FmZSgpLCB4b2ZmLCB5b2ZmLCB6b2ZmLCBtU2VsZWN0ZWRMT0QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LCBoLCBkLCBkYXRhLCBkYXRhLmxlbmd0aCAqIDQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdywgaCwgZCwgZGF0YSwgZGF0YS5sZW5ndGggKiA0LCBFbGVtZW50LkRhdGFUeXBlLlNJR05FRF8zMik7CiAgICAgfQogCiAgICAgLyoqCkBAIC0xMTcwLDcgKzExNjEsNyBAQAogICAgICAgICBtUlMudmFsaWRhdGUoKTsKICAgICAgICAgdmFsaWRhdGUzRFJhbmdlKHhvZmYsIHlvZmYsIHpvZmYsIHcsIGgsIGQpOwogICAgICAgICBtUlMubkFsbG9jYXRpb25EYXRhM0QoZ2V0SURTYWZlKCksIHhvZmYsIHlvZmYsIHpvZmYsIG1TZWxlY3RlZExPRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcsIGgsIGQsIGRhdGEsIGRhdGEubGVuZ3RoICogNCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LCBoLCBkLCBkYXRhLCBkYXRhLmxlbmd0aCAqIDQsIEVsZW1lbnQuRGF0YVR5cGUuRkxPQVRfMzIpOwogICAgIH0KIAogCkBAIC0xNTQ3LDEzICsxNTM4LDYgQEAKICAgICB9CiAKICAgICAvKioKLSAgICAgKiBAaGlkZQotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHNldFN1cmZhY2VUZXh0dXJlKFN1cmZhY2VUZXh0dXJlIHN0KSB7Ci0gICAgICAgIHNldFN1cmZhY2UobmV3IFN1cmZhY2Uoc3QpKTsKLSAgICB9Ci0KLSAgICAvKioKICAgICAgKiBBc3NvY2lhdGUgYSB7QGxpbmsgYW5kcm9pZC52aWV3LlN1cmZhY2V9IHdpdGggdGhpcyBBbGxvY2F0aW9uLiBUaGlzCiAgICAgICogb3BlcmF0aW9uIGlzIG9ubHkgdmFsaWQgZm9yIEFsbG9jYXRpb25zIHdpdGgge0BsaW5rICNVU0FHRV9JT19PVVRQVVR9LgogICAgICAqCmRpZmYgLS1naXQgYS9ncmFwaGljcy9qYXZhL2FuZHJvaWQvcmVuZGVyc2NyaXB0L1JlbmRlclNjcmlwdC5qYXZhIGIvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL3JlbmRlcnNjcmlwdC9SZW5kZXJTY3JpcHQuamF2YQppbmRleCA3ZDRhNWM0Li5kYTBjZmViIDEwMDY0NAotLS0gYS9ncmFwaGljcy9qYXZhL2FuZHJvaWQvcmVuZGVyc2NyaXB0L1JlbmRlclNjcmlwdC5qYXZhCisrKyBiL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9yZW5kZXJzY3JpcHQvUmVuZGVyU2NyaXB0LmphdmEKQEAgLTM4NiwyNSArMzg2LDEwIEBACiAgICAgfQogCiAKLSAgICBuYXRpdmUgdm9pZCByc25BbGxvY2F0aW9uRGF0YTFEKGludCBjb24sIGludCBpZCwgaW50IG9mZiwgaW50IG1pcCwgaW50IGNvdW50LCBpbnRbXSBkLCBpbnQgc2l6ZUJ5dGVzKTsKLSAgICBzeW5jaHJvbml6ZWQgdm9pZCBuQWxsb2NhdGlvbkRhdGExRChpbnQgaWQsIGludCBvZmYsIGludCBtaXAsIGludCBjb3VudCwgaW50W10gZCwgaW50IHNpemVCeXRlcykgeworICAgIG5hdGl2ZSB2b2lkIHJzbkFsbG9jYXRpb25EYXRhMUQoaW50IGNvbiwgaW50IGlkLCBpbnQgb2ZmLCBpbnQgbWlwLCBpbnQgY291bnQsIE9iamVjdCBkLCBpbnQgc2l6ZUJ5dGVzLCBpbnQgZHQpOworICAgIHN5bmNocm9uaXplZCB2b2lkIG5BbGxvY2F0aW9uRGF0YTFEKGludCBpZCwgaW50IG9mZiwgaW50IG1pcCwgaW50IGNvdW50LCBPYmplY3QgZCwgaW50IHNpemVCeXRlcywgRWxlbWVudC5EYXRhVHlwZSBkdCkgewogICAgICAgICB2YWxpZGF0ZSgpOwotICAgICAgICByc25BbGxvY2F0aW9uRGF0YTFEKG1Db250ZXh0LCBpZCwgb2ZmLCBtaXAsIGNvdW50LCBkLCBzaXplQnl0ZXMpOwotICAgIH0KLSAgICBuYXRpdmUgdm9pZCByc25BbGxvY2F0aW9uRGF0YTFEKGludCBjb24sIGludCBpZCwgaW50IG9mZiwgaW50IG1pcCwgaW50IGNvdW50LCBzaG9ydFtdIGQsIGludCBzaXplQnl0ZXMpOwotICAgIHN5bmNocm9uaXplZCB2b2lkIG5BbGxvY2F0aW9uRGF0YTFEKGludCBpZCwgaW50IG9mZiwgaW50IG1pcCwgaW50IGNvdW50LCBzaG9ydFtdIGQsIGludCBzaXplQnl0ZXMpIHsKLSAgICAgICAgdmFsaWRhdGUoKTsKLSAgICAgICAgcnNuQWxsb2NhdGlvbkRhdGExRChtQ29udGV4dCwgaWQsIG9mZiwgbWlwLCBjb3VudCwgZCwgc2l6ZUJ5dGVzKTsKLSAgICB9Ci0gICAgbmF0aXZlIHZvaWQgcnNuQWxsb2NhdGlvbkRhdGExRChpbnQgY29uLCBpbnQgaWQsIGludCBvZmYsIGludCBtaXAsIGludCBjb3VudCwgYnl0ZVtdIGQsIGludCBzaXplQnl0ZXMpOwotICAgIHN5bmNocm9uaXplZCB2b2lkIG5BbGxvY2F0aW9uRGF0YTFEKGludCBpZCwgaW50IG9mZiwgaW50IG1pcCwgaW50IGNvdW50LCBieXRlW10gZCwgaW50IHNpemVCeXRlcykgewotICAgICAgICB2YWxpZGF0ZSgpOwotICAgICAgICByc25BbGxvY2F0aW9uRGF0YTFEKG1Db250ZXh0LCBpZCwgb2ZmLCBtaXAsIGNvdW50LCBkLCBzaXplQnl0ZXMpOwotICAgIH0KLSAgICBuYXRpdmUgdm9pZCByc25BbGxvY2F0aW9uRGF0YTFEKGludCBjb24sIGludCBpZCwgaW50IG9mZiwgaW50IG1pcCwgaW50IGNvdW50LCBmbG9hdFtdIGQsIGludCBzaXplQnl0ZXMpOwotICAgIHN5bmNocm9uaXplZCB2b2lkIG5BbGxvY2F0aW9uRGF0YTFEKGludCBpZCwgaW50IG9mZiwgaW50IG1pcCwgaW50IGNvdW50LCBmbG9hdFtdIGQsIGludCBzaXplQnl0ZXMpIHsKLSAgICAgICAgdmFsaWRhdGUoKTsKLSAgICAgICAgcnNuQWxsb2NhdGlvbkRhdGExRChtQ29udGV4dCwgaWQsIG9mZiwgbWlwLCBjb3VudCwgZCwgc2l6ZUJ5dGVzKTsKKyAgICAgICAgcnNuQWxsb2NhdGlvbkRhdGExRChtQ29udGV4dCwgaWQsIG9mZiwgbWlwLCBjb3VudCwgZCwgc2l6ZUJ5dGVzLCBkdC5tSUQpOwogICAgIH0KIAogICAgIG5hdGl2ZSB2b2lkIHJzbkFsbG9jYXRpb25FbGVtZW50RGF0YTFEKGludCBjb24sIGludCBpZCwgaW50IHhvZmYsIGludCBtaXAsIGludCBjb21wSWR4LCBieXRlW10gZCwgaW50IHNpemVCeXRlcyk7CkBAIC00MzMsMjUgKzQxOCwxMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY01pcCwgc3JjRmFjZSk7CiAgICAgfQogCi0gICAgbmF0aXZlIHZvaWQgcnNuQWxsb2NhdGlvbkRhdGEyRChpbnQgY29uLCBpbnQgaWQsIGludCB4b2ZmLCBpbnQgeW9mZiwgaW50IG1pcCwgaW50IGZhY2UsIGludCB3LCBpbnQgaCwgYnl0ZVtdIGQsIGludCBzaXplQnl0ZXMpOwotICAgIHN5bmNocm9uaXplZCB2b2lkIG5BbGxvY2F0aW9uRGF0YTJEKGludCBpZCwgaW50IHhvZmYsIGludCB5b2ZmLCBpbnQgbWlwLCBpbnQgZmFjZSwgaW50IHcsIGludCBoLCBieXRlW10gZCwgaW50IHNpemVCeXRlcykgeworICAgIG5hdGl2ZSB2b2lkIHJzbkFsbG9jYXRpb25EYXRhMkQoaW50IGNvbiwgaW50IGlkLCBpbnQgeG9mZiwgaW50IHlvZmYsIGludCBtaXAsIGludCBmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHcsIGludCBoLCBPYmplY3QgZCwgaW50IHNpemVCeXRlcywgaW50IGR0KTsKKyAgICBzeW5jaHJvbml6ZWQgdm9pZCBuQWxsb2NhdGlvbkRhdGEyRChpbnQgaWQsIGludCB4b2ZmLCBpbnQgeW9mZiwgaW50IG1pcCwgaW50IGZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHcsIGludCBoLCBPYmplY3QgZCwgaW50IHNpemVCeXRlcywgRWxlbWVudC5EYXRhVHlwZSBkdCkgewogICAgICAgICB2YWxpZGF0ZSgpOwotICAgICAgICByc25BbGxvY2F0aW9uRGF0YTJEKG1Db250ZXh0LCBpZCwgeG9mZiwgeW9mZiwgbWlwLCBmYWNlLCB3LCBoLCBkLCBzaXplQnl0ZXMpOwotICAgIH0KLSAgICBuYXRpdmUgdm9pZCByc25BbGxvY2F0aW9uRGF0YTJEKGludCBjb24sIGludCBpZCwgaW50IHhvZmYsIGludCB5b2ZmLCBpbnQgbWlwLCBpbnQgZmFjZSwgaW50IHcsIGludCBoLCBzaG9ydFtdIGQsIGludCBzaXplQnl0ZXMpOwotICAgIHN5bmNocm9uaXplZCB2b2lkIG5BbGxvY2F0aW9uRGF0YTJEKGludCBpZCwgaW50IHhvZmYsIGludCB5b2ZmLCBpbnQgbWlwLCBpbnQgZmFjZSwgaW50IHcsIGludCBoLCBzaG9ydFtdIGQsIGludCBzaXplQnl0ZXMpIHsKLSAgICAgICAgdmFsaWRhdGUoKTsKLSAgICAgICAgcnNuQWxsb2NhdGlvbkRhdGEyRChtQ29udGV4dCwgaWQsIHhvZmYsIHlvZmYsIG1pcCwgZmFjZSwgdywgaCwgZCwgc2l6ZUJ5dGVzKTsKLSAgICB9Ci0gICAgbmF0aXZlIHZvaWQgcnNuQWxsb2NhdGlvbkRhdGEyRChpbnQgY29uLCBpbnQgaWQsIGludCB4b2ZmLCBpbnQgeW9mZiwgaW50IG1pcCwgaW50IGZhY2UsIGludCB3LCBpbnQgaCwgaW50W10gZCwgaW50IHNpemVCeXRlcyk7Ci0gICAgc3luY2hyb25pemVkIHZvaWQgbkFsbG9jYXRpb25EYXRhMkQoaW50IGlkLCBpbnQgeG9mZiwgaW50IHlvZmYsIGludCBtaXAsIGludCBmYWNlLCBpbnQgdywgaW50IGgsIGludFtdIGQsIGludCBzaXplQnl0ZXMpIHsKLSAgICAgICAgdmFsaWRhdGUoKTsKLSAgICAgICAgcnNuQWxsb2NhdGlvbkRhdGEyRChtQ29udGV4dCwgaWQsIHhvZmYsIHlvZmYsIG1pcCwgZmFjZSwgdywgaCwgZCwgc2l6ZUJ5dGVzKTsKLSAgICB9Ci0gICAgbmF0aXZlIHZvaWQgcnNuQWxsb2NhdGlvbkRhdGEyRChpbnQgY29uLCBpbnQgaWQsIGludCB4b2ZmLCBpbnQgeW9mZiwgaW50IG1pcCwgaW50IGZhY2UsIGludCB3LCBpbnQgaCwgZmxvYXRbXSBkLCBpbnQgc2l6ZUJ5dGVzKTsKLSAgICBzeW5jaHJvbml6ZWQgdm9pZCBuQWxsb2NhdGlvbkRhdGEyRChpbnQgaWQsIGludCB4b2ZmLCBpbnQgeW9mZiwgaW50IG1pcCwgaW50IGZhY2UsIGludCB3LCBpbnQgaCwgZmxvYXRbXSBkLCBpbnQgc2l6ZUJ5dGVzKSB7Ci0gICAgICAgIHZhbGlkYXRlKCk7Ci0gICAgICAgIHJzbkFsbG9jYXRpb25EYXRhMkQobUNvbnRleHQsIGlkLCB4b2ZmLCB5b2ZmLCBtaXAsIGZhY2UsIHcsIGgsIGQsIHNpemVCeXRlcyk7CisgICAgICAgIHJzbkFsbG9jYXRpb25EYXRhMkQobUNvbnRleHQsIGlkLCB4b2ZmLCB5b2ZmLCBtaXAsIGZhY2UsIHcsIGgsIGQsIHNpemVCeXRlcywgZHQubUlEKTsKICAgICB9CiAgICAgbmF0aXZlIHZvaWQgcnNuQWxsb2NhdGlvbkRhdGEyRChpbnQgY29uLCBpbnQgaWQsIGludCB4b2ZmLCBpbnQgeW9mZiwgaW50IG1pcCwgaW50IGZhY2UsIEJpdG1hcCBiKTsKICAgICBzeW5jaHJvbml6ZWQgdm9pZCBuQWxsb2NhdGlvbkRhdGEyRChpbnQgaWQsIGludCB4b2ZmLCBpbnQgeW9mZiwgaW50IG1pcCwgaW50IGZhY2UsIEJpdG1hcCBiKSB7CkBAIC00NzcsMjcgKzQ0OSwxMyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY0FsbG9jLCBzcmNYb2ZmLCBzcmNZb2ZmLCBzcmNab2ZmLCBzcmNNaXApOwogICAgIH0KIAotICAgIG5hdGl2ZSB2b2lkIHJzbkFsbG9jYXRpb25EYXRhM0QoaW50IGNvbiwgaW50IGlkLCBpbnQgeG9mZiwgaW50IHlvZmYsIGludCB6b2ZmLCBpbnQgbWlwLCBpbnQgdywgaW50IGgsIGludCBkZXB0aCwgYnl0ZVtdIGQsIGludCBzaXplQnl0ZXMpOwotICAgIHN5bmNocm9uaXplZCB2b2lkIG5BbGxvY2F0aW9uRGF0YTNEKGludCBpZCwgaW50IHhvZmYsIGludCB5b2ZmLCBpbnQgem9mZiwgaW50IG1pcCwgaW50IHcsIGludCBoLCBpbnQgZGVwdGgsIGJ5dGVbXSBkLCBpbnQgc2l6ZUJ5dGVzKSB7CisgICAgbmF0aXZlIHZvaWQgcnNuQWxsb2NhdGlvbkRhdGEzRChpbnQgY29uLCBpbnQgaWQsIGludCB4b2ZmLCBpbnQgeW9mZiwgaW50IHpvZmYsIGludCBtaXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdywgaW50IGgsIGludCBkZXB0aCwgT2JqZWN0IGQsIGludCBzaXplQnl0ZXMsIGludCBkdCk7CisgICAgc3luY2hyb25pemVkIHZvaWQgbkFsbG9jYXRpb25EYXRhM0QoaW50IGlkLCBpbnQgeG9mZiwgaW50IHlvZmYsIGludCB6b2ZmLCBpbnQgbWlwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3LCBpbnQgaCwgaW50IGRlcHRoLCBPYmplY3QgZCwgaW50IHNpemVCeXRlcywgRWxlbWVudC5EYXRhVHlwZSBkdCkgewogICAgICAgICB2YWxpZGF0ZSgpOwotICAgICAgICByc25BbGxvY2F0aW9uRGF0YTNEKG1Db250ZXh0LCBpZCwgeG9mZiwgeW9mZiwgem9mZiwgbWlwLCB3LCBoLCBkZXB0aCwgZCwgc2l6ZUJ5dGVzKTsKKyAgICAgICAgcnNuQWxsb2NhdGlvbkRhdGEzRChtQ29udGV4dCwgaWQsIHhvZmYsIHlvZmYsIHpvZmYsIG1pcCwgdywgaCwgZGVwdGgsIGQsIHNpemVCeXRlcywgZHQubUlEKTsKICAgICB9Ci0gICAgbmF0aXZlIHZvaWQgcnNuQWxsb2NhdGlvbkRhdGEzRChpbnQgY29uLCBpbnQgaWQsIGludCB4b2ZmLCBpbnQgeW9mZiwgaW50IHpvZmYsIGludCBtaXAsIGludCB3LCBpbnQgaCwgaW50IGRlcHRoLCBzaG9ydFtdIGQsIGludCBzaXplQnl0ZXMpOwotICAgIHN5bmNocm9uaXplZCB2b2lkIG5BbGxvY2F0aW9uRGF0YTNEKGludCBpZCwgaW50IHhvZmYsIGludCB5b2ZmLCBpbnQgem9mZiwgaW50IG1pcCwgaW50IHcsIGludCBoLCBpbnQgZGVwdGgsIHNob3J0W10gZCwgaW50IHNpemVCeXRlcykgewotICAgICAgICB2YWxpZGF0ZSgpOwotICAgICAgICByc25BbGxvY2F0aW9uRGF0YTNEKG1Db250ZXh0LCBpZCwgeG9mZiwgeW9mZiwgem9mZiwgbWlwLCB3LCBoLCBkZXB0aCwgZCwgc2l6ZUJ5dGVzKTsKLSAgICB9Ci0gICAgbmF0aXZlIHZvaWQgcnNuQWxsb2NhdGlvbkRhdGEzRChpbnQgY29uLCBpbnQgaWQsIGludCB4b2ZmLCBpbnQgeW9mZiwgaW50IHpvZmYsIGludCBtaXAsIGludCB3LCBpbnQgaCwgaW50IGRlcHRoLCBpbnRbXSBkLCBpbnQgc2l6ZUJ5dGVzKTsKLSAgICBzeW5jaHJvbml6ZWQgdm9pZCBuQWxsb2NhdGlvbkRhdGEzRChpbnQgaWQsIGludCB4b2ZmLCBpbnQgeW9mZiwgaW50IHpvZmYsIGludCBtaXAsIGludCB3LCBpbnQgaCwgaW50IGRlcHRoLCBpbnRbXSBkLCBpbnQgc2l6ZUJ5dGVzKSB7Ci0gICAgICAgIHZhbGlkYXRlKCk7Ci0gICAgICAgIHJzbkFsbG9jYXRpb25EYXRhM0QobUNvbnRleHQsIGlkLCB4b2ZmLCB5b2ZmLCB6b2ZmLCBtaXAsIHcsIGgsIGRlcHRoLCBkLCBzaXplQnl0ZXMpOwotICAgIH0KLSAgICBuYXRpdmUgdm9pZCByc25BbGxvY2F0aW9uRGF0YTNEKGludCBjb24sIGludCBpZCwgaW50IHhvZmYsIGludCB5b2ZmLCBpbnQgem9mZiwgaW50IG1pcCwgaW50IHcsIGludCBoLCBpbnQgZGVwdGgsIGZsb2F0W10gZCwgaW50IHNpemVCeXRlcyk7Ci0gICAgc3luY2hyb25pemVkIHZvaWQgbkFsbG9jYXRpb25EYXRhM0QoaW50IGlkLCBpbnQgeG9mZiwgaW50IHlvZmYsIGludCB6b2ZmLCBpbnQgbWlwLCBpbnQgdywgaW50IGgsIGludCBkZXB0aCwgZmxvYXRbXSBkLCBpbnQgc2l6ZUJ5dGVzKSB7Ci0gICAgICAgIHZhbGlkYXRlKCk7Ci0gICAgICAgIHJzbkFsbG9jYXRpb25EYXRhM0QobUNvbnRleHQsIGlkLCB4b2ZmLCB5b2ZmLCB6b2ZmLCBtaXAsIHcsIGgsIGRlcHRoLCBkLCBzaXplQnl0ZXMpOwotICAgIH0KLQogCiAgICAgbmF0aXZlIHZvaWQgcnNuQWxsb2NhdGlvblJlYWQoaW50IGNvbiwgaW50IGlkLCBieXRlW10gZCk7CiAgICAgc3luY2hyb25pemVkIHZvaWQgbkFsbG9jYXRpb25SZWFkKGludCBpZCwgYnl0ZVtdIGQpIHsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2phdmEvYW5kcm9pZC9yZW5kZXJzY3JpcHQvVHlwZS5qYXZhIGIvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL3JlbmRlcnNjcmlwdC9UeXBlLmphdmEKaW5kZXggZTAyMzczOS4uZGI0YjU3NyAxMDA2NDQKLS0tIGEvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL3JlbmRlcnNjcmlwdC9UeXBlLmphdmEKKysrIGIvZ3JhcGhpY3MvamF2YS9hbmRyb2lkL3JlbmRlcnNjcmlwdC9UeXBlLmphdmEKQEAgLTIxNiw2ICsyMTYsODEgQEAKICAgICB9CiAKICAgICAvKioKKyAgICAgKiBVdGlsaXR5IGZ1bmN0aW9uIGZvciBjcmVhdGluZyBiYXNpYyAxRCB0eXBlcy4gVGhlIHR5cGUgaXMKKyAgICAgKiBjcmVhdGVkIHdpdGhvdXQgbWlwbWFwcyBlbmFibGVkLgorICAgICAqCisgICAgICogQHBhcmFtIHJzIFRoZSBSZW5kZXJTY3JpcHQgY29udGV4dAorICAgICAqIEBwYXJhbSBlIFRoZSBFbGVtZW50IGZvciB0aGUgVHlwZQorICAgICAqIEBwYXJhbSBkaW1YIFRoZSBYIGRpbWVuc2lvbiwgbXVzdCBiZSA+IDAKKyAgICAgKgorICAgICAqIEByZXR1cm4gVHlwZQorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgVHlwZSBjcmVhdGVYKFJlbmRlclNjcmlwdCBycywgRWxlbWVudCBlLCBpbnQgZGltWCkgeworICAgICAgICBpZiAoZGltWCA8IDEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSU0ludmFsaWRTdGF0ZUV4Y2VwdGlvbigiRGltZW5zaW9uIG11c3QgYmUgPj0gMS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBpZCA9IHJzLm5UeXBlQ3JlYXRlKGUuZ2V0SUQocnMpLCBkaW1YLCAwLCAwLCBmYWxzZSwgZmFsc2UsIDApOworICAgICAgICBUeXBlIHQgPSBuZXcgVHlwZShpZCwgcnMpOworICAgICAgICB0Lm1FbGVtZW50ID0gZTsKKyAgICAgICAgdC5tRGltWCA9IGRpbVg7CisgICAgICAgIHQuY2FsY0VsZW1lbnRDb3VudCgpOworICAgICAgICByZXR1cm4gdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGZ1bmN0aW9uIGZvciBjcmVhdGluZyBiYXNpYyAyRCB0eXBlcy4gVGhlIHR5cGUgaXMKKyAgICAgKiBjcmVhdGVkIHdpdGhvdXQgbWlwbWFwcyBvciBjdWJlbWFwcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBycyBUaGUgUmVuZGVyU2NyaXB0IGNvbnRleHQKKyAgICAgKiBAcGFyYW0gZSBUaGUgRWxlbWVudCBmb3IgdGhlIFR5cGUKKyAgICAgKiBAcGFyYW0gZGltWCBUaGUgWCBkaW1lbnNpb24sIG11c3QgYmUgPiAwCisgICAgICogQHBhcmFtIGRpbVkgVGhlIFkgZGltZW5zaW9uLCBtdXN0IGJlID4gMAorICAgICAqCisgICAgICogQHJldHVybiBUeXBlCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBUeXBlIGNyZWF0ZVhZKFJlbmRlclNjcmlwdCBycywgRWxlbWVudCBlLCBpbnQgZGltWCwgaW50IGRpbVkpIHsKKyAgICAgICAgaWYgKChkaW1YIDwgMSkgfHwgKGRpbVkgPCAxKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJTSW52YWxpZFN0YXRlRXhjZXB0aW9uKCJEaW1lbnNpb24gbXVzdCBiZSA+PSAxLiIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGlkID0gcnMublR5cGVDcmVhdGUoZS5nZXRJRChycyksIGRpbVgsIGRpbVksIDAsIGZhbHNlLCBmYWxzZSwgMCk7CisgICAgICAgIFR5cGUgdCA9IG5ldyBUeXBlKGlkLCBycyk7CisgICAgICAgIHQubUVsZW1lbnQgPSBlOworICAgICAgICB0Lm1EaW1YID0gZGltWDsKKyAgICAgICAgdC5tRGltWSA9IGRpbVk7CisgICAgICAgIHQuY2FsY0VsZW1lbnRDb3VudCgpOworICAgICAgICByZXR1cm4gdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGZ1bmN0aW9uIGZvciBjcmVhdGluZyBiYXNpYyAzRCB0eXBlcy4gVGhlIHR5cGUgaXMKKyAgICAgKiBjcmVhdGVkIHdpdGhvdXQgbWlwbWFwcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBycyBUaGUgUmVuZGVyU2NyaXB0IGNvbnRleHQKKyAgICAgKiBAcGFyYW0gZSBUaGUgRWxlbWVudCBmb3IgdGhlIFR5cGUKKyAgICAgKiBAcGFyYW0gZGltWCBUaGUgWCBkaW1lbnNpb24sIG11c3QgYmUgPiAwCisgICAgICogQHBhcmFtIGRpbVkgVGhlIFkgZGltZW5zaW9uLCBtdXN0IGJlID4gMAorICAgICAqIEBwYXJhbSBkaW1aIFRoZSBaIGRpbWVuc2lvbiwgbXVzdCBiZSA+IDAKKyAgICAgKgorICAgICAqIEByZXR1cm4gVHlwZQorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgVHlwZSBjcmVhdGVYWVooUmVuZGVyU2NyaXB0IHJzLCBFbGVtZW50IGUsIGludCBkaW1YLCBpbnQgZGltWSwgaW50IGRpbVopIHsKKyAgICAgICAgaWYgKChkaW1YIDwgMSkgfHwgKGRpbVkgPCAxKSB8fCAoZGltWiA8IDEpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUlNJbnZhbGlkU3RhdGVFeGNlcHRpb24oIkRpbWVuc2lvbiBtdXN0IGJlID49IDEuIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgaWQgPSBycy5uVHlwZUNyZWF0ZShlLmdldElEKHJzKSwgZGltWCwgZGltWSwgZGltWiwgZmFsc2UsIGZhbHNlLCAwKTsKKyAgICAgICAgVHlwZSB0ID0gbmV3IFR5cGUoaWQsIHJzKTsKKyAgICAgICAgdC5tRWxlbWVudCA9IGU7CisgICAgICAgIHQubURpbVggPSBkaW1YOworICAgICAgICB0Lm1EaW1ZID0gZGltWTsKKyAgICAgICAgdC5tRGltWiA9IGRpbVo7CisgICAgICAgIHQuY2FsY0VsZW1lbnRDb3VudCgpOworICAgICAgICByZXR1cm4gdDsKKyAgICB9CisKKyAgICAvKioKICAgICAgKiBCdWlsZGVyIGNsYXNzIGZvciBUeXBlLgogICAgICAqCiAgICAgICovCmRpZmYgLS1naXQgYS9ncmFwaGljcy9qbmkvYW5kcm9pZF9yZW5kZXJzY3JpcHRfUmVuZGVyU2NyaXB0LmNwcCBiL2dyYXBoaWNzL2puaS9hbmRyb2lkX3JlbmRlcnNjcmlwdF9SZW5kZXJTY3JpcHQuY3BwCmluZGV4IGNiYzRlNWEuLmU1NmRmMGEgMTAwNjQ0Ci0tLSBhL2dyYXBoaWNzL2puaS9hbmRyb2lkX3JlbmRlcnNjcmlwdF9SZW5kZXJTY3JpcHQuY3BwCisrKyBiL2dyYXBoaWNzL2puaS9hbmRyb2lkX3JlbmRlcnNjcmlwdF9SZW5kZXJTY3JpcHQuY3BwCkBAIC01MCw2ICs1MCw1NiBAQAogCiB1c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKIAorI2RlZmluZSBQRVJfQVJSQVlfVFlQRShmbGFnLCBmbmMsIC4uLikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBqaW50IGxlbiA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdm9pZCAqcHRyID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN3aXRjaChkYXRhVHlwZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjYXNlIFJTX1RZUEVfRkxPQVRfMzI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGxlbiA9IF9lbnYtPkdldEFycmF5TGVuZ3RoKChqZmxvYXRBcnJheSlkYXRhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBwdHIgPSBfZW52LT5HZXRGbG9hdEFycmF5RWxlbWVudHMoKGpmbG9hdEFycmF5KWRhdGEsIGZsYWcpOyAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZm5jKF9fVkFfQVJHU19fKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIF9lbnYtPlJlbGVhc2VGbG9hdEFycmF5RWxlbWVudHMoKGpmbG9hdEFycmF5KWRhdGEsIChqZmxvYXQgKilwdHIsIEpOSV9BQk9SVCk7ICAgXAorICAgICAgICByZXR1cm47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjYXNlIFJTX1RZUEVfRkxPQVRfNjQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGxlbiA9IF9lbnYtPkdldEFycmF5TGVuZ3RoKChqZG91YmxlQXJyYXkpZGF0YSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBwdHIgPSBfZW52LT5HZXREb3VibGVBcnJheUVsZW1lbnRzKChqZG91YmxlQXJyYXkpZGF0YSwgZmxhZyk7ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZm5jKF9fVkFfQVJHU19fKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIF9lbnYtPlJlbGVhc2VEb3VibGVBcnJheUVsZW1lbnRzKChqZG91YmxlQXJyYXkpZGF0YSwgKGpkb3VibGUgKilwdHIsIEpOSV9BQk9SVCk7XAorICAgICAgICByZXR1cm47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjYXNlIFJTX1RZUEVfU0lHTkVEXzg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY2FzZSBSU19UWVBFX1VOU0lHTkVEXzg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBsZW4gPSBfZW52LT5HZXRBcnJheUxlbmd0aCgoamJ5dGVBcnJheSlkYXRhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcHRyID0gX2Vudi0+R2V0Qnl0ZUFycmF5RWxlbWVudHMoKGpieXRlQXJyYXkpZGF0YSwgZmxhZyk7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGZuYyhfX1ZBX0FSR1NfXyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBfZW52LT5SZWxlYXNlQnl0ZUFycmF5RWxlbWVudHMoKGpieXRlQXJyYXkpZGF0YSwgKGpieXRlKilwdHIsIEpOSV9BQk9SVCk7ICAgICAgIFwKKyAgICAgICAgcmV0dXJuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY2FzZSBSU19UWVBFX1NJR05FRF8xNjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGNhc2UgUlNfVFlQRV9VTlNJR05FRF8xNjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbGVuID0gX2Vudi0+R2V0QXJyYXlMZW5ndGgoKGpzaG9ydEFycmF5KWRhdGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHB0ciA9IF9lbnYtPkdldFNob3J0QXJyYXlFbGVtZW50cygoanNob3J0QXJyYXkpZGF0YSwgZmxhZyk7ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBmbmMoX19WQV9BUkdTX18pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgX2Vudi0+UmVsZWFzZVNob3J0QXJyYXlFbGVtZW50cygoanNob3J0QXJyYXkpZGF0YSwgKGpzaG9ydCAqKXB0ciwgSk5JX0FCT1JUKTsgICBcCisgICAgICAgIHJldHVybjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGNhc2UgUlNfVFlQRV9TSUdORURfMzI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjYXNlIFJTX1RZUEVfVU5TSUdORURfMzI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGxlbiA9IF9lbnYtPkdldEFycmF5TGVuZ3RoKChqaW50QXJyYXkpZGF0YSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBwdHIgPSBfZW52LT5HZXRJbnRBcnJheUVsZW1lbnRzKChqaW50QXJyYXkpZGF0YSwgZmxhZyk7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZm5jKF9fVkFfQVJHU19fKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIF9lbnYtPlJlbGVhc2VJbnRBcnJheUVsZW1lbnRzKChqaW50QXJyYXkpZGF0YSwgKGppbnQgKilwdHIsIEpOSV9BQk9SVCk7ICAgICAgICAgXAorICAgICAgICByZXR1cm47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjYXNlIFJTX1RZUEVfU0lHTkVEXzY0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY2FzZSBSU19UWVBFX1VOU0lHTkVEXzY0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBsZW4gPSBfZW52LT5HZXRBcnJheUxlbmd0aCgoamxvbmdBcnJheSlkYXRhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcHRyID0gX2Vudi0+R2V0TG9uZ0FycmF5RWxlbWVudHMoKGpsb25nQXJyYXkpZGF0YSwgZmxhZyk7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGZuYyhfX1ZBX0FSR1NfXyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBfZW52LT5SZWxlYXNlTG9uZ0FycmF5RWxlbWVudHMoKGpsb25nQXJyYXkpZGF0YSwgKGpsb25nICopcHRyLCBKTklfQUJPUlQpOyAgICAgIFwKKyAgICAgICAgcmV0dXJuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZGVmYXVsdDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9CisKKwogY2xhc3MgQXV0b0phdmFTdHJpbmdUb1VURjggewogcHVibGljOgogICAgIEF1dG9KYXZhU3RyaW5nVG9VVEY4KEpOSUVudiogZW52LCBqc3RyaW5nIHN0cikgOiBmRW52KGVudiksIGZKU3RyKHN0cikgewpAQCAtNjA1LDQzICs2NTUsMTMgQEAKIAogCiBzdGF0aWMgdm9pZAotbkFsbG9jYXRpb25EYXRhMURfaShKTklFbnYgKl9lbnYsIGpvYmplY3QgX3RoaXMsIFJzQ29udGV4dCBjb24sIGppbnQgYWxsb2MsIGppbnQgb2Zmc2V0LCBqaW50IGxvZCwgamludCBjb3VudCwgamludEFycmF5IGRhdGEsIGludCBzaXplQnl0ZXMpCituQWxsb2NhdGlvbkRhdGExRChKTklFbnYgKl9lbnYsIGpvYmplY3QgX3RoaXMsIFJzQ29udGV4dCBjb24sIGppbnQgX2FsbG9jLCBqaW50IG9mZnNldCwgamludCBsb2QsCisgICAgICAgICAgICAgICAgICBqaW50IGNvdW50LCBqb2JqZWN0IGRhdGEsIGludCBzaXplQnl0ZXMsIGludCBkYXRhVHlwZSkKIHsKLSAgICBqaW50IGxlbiA9IF9lbnYtPkdldEFycmF5TGVuZ3RoKGRhdGEpOwotICAgIExPR19BUEkoIm5BbGxvY2F0aW9uMUREYXRhX2ksIGNvbiglcCksIGFkYXB0ZXIoJXApLCBvZmZzZXQoJWkpLCBjb3VudCglaSksIGxlbiglaSksIHNpemVCeXRlcyglaSkiLCBjb24sIChSc0FsbG9jYXRpb24pYWxsb2MsIG9mZnNldCwgY291bnQsIGxlbiwgc2l6ZUJ5dGVzKTsKLSAgICBqaW50ICpwdHIgPSBfZW52LT5HZXRJbnRBcnJheUVsZW1lbnRzKGRhdGEsIE5VTEwpOwotICAgIHJzQWxsb2NhdGlvbjFERGF0YShjb24sIChSc0FsbG9jYXRpb24pYWxsb2MsIG9mZnNldCwgbG9kLCBjb3VudCwgcHRyLCBzaXplQnl0ZXMpOwotICAgIF9lbnYtPlJlbGVhc2VJbnRBcnJheUVsZW1lbnRzKGRhdGEsIHB0ciwgSk5JX0FCT1JUKTsKLX0KLQotc3RhdGljIHZvaWQKLW5BbGxvY2F0aW9uRGF0YTFEX3MoSk5JRW52ICpfZW52LCBqb2JqZWN0IF90aGlzLCBSc0NvbnRleHQgY29uLCBqaW50IGFsbG9jLCBqaW50IG9mZnNldCwgamludCBsb2QsIGppbnQgY291bnQsIGpzaG9ydEFycmF5IGRhdGEsIGludCBzaXplQnl0ZXMpCi17Ci0gICAgamludCBsZW4gPSBfZW52LT5HZXRBcnJheUxlbmd0aChkYXRhKTsKLSAgICBMT0dfQVBJKCJuQWxsb2NhdGlvbjFERGF0YV9zLCBjb24oJXApLCBhZGFwdGVyKCVwKSwgb2Zmc2V0KCVpKSwgY291bnQoJWkpLCBsZW4oJWkpLCBzaXplQnl0ZXMoJWkpIiwgY29uLCAoUnNBbGxvY2F0aW9uKWFsbG9jLCBvZmZzZXQsIGNvdW50LCBsZW4sIHNpemVCeXRlcyk7Ci0gICAganNob3J0ICpwdHIgPSBfZW52LT5HZXRTaG9ydEFycmF5RWxlbWVudHMoZGF0YSwgTlVMTCk7Ci0gICAgcnNBbGxvY2F0aW9uMUREYXRhKGNvbiwgKFJzQWxsb2NhdGlvbilhbGxvYywgb2Zmc2V0LCBsb2QsIGNvdW50LCBwdHIsIHNpemVCeXRlcyk7Ci0gICAgX2Vudi0+UmVsZWFzZVNob3J0QXJyYXlFbGVtZW50cyhkYXRhLCBwdHIsIEpOSV9BQk9SVCk7Ci19Ci0KLXN0YXRpYyB2b2lkCi1uQWxsb2NhdGlvbkRhdGExRF9iKEpOSUVudiAqX2Vudiwgam9iamVjdCBfdGhpcywgUnNDb250ZXh0IGNvbiwgamludCBhbGxvYywgamludCBvZmZzZXQsIGppbnQgbG9kLCBqaW50IGNvdW50LCBqYnl0ZUFycmF5IGRhdGEsIGludCBzaXplQnl0ZXMpCi17Ci0gICAgamludCBsZW4gPSBfZW52LT5HZXRBcnJheUxlbmd0aChkYXRhKTsKLSAgICBMT0dfQVBJKCJuQWxsb2NhdGlvbjFERGF0YV9iLCBjb24oJXApLCBhZGFwdGVyKCVwKSwgb2Zmc2V0KCVpKSwgY291bnQoJWkpLCBsZW4oJWkpLCBzaXplQnl0ZXMoJWkpIiwgY29uLCAoUnNBbGxvY2F0aW9uKWFsbG9jLCBvZmZzZXQsIGNvdW50LCBsZW4sIHNpemVCeXRlcyk7Ci0gICAgamJ5dGUgKnB0ciA9IF9lbnYtPkdldEJ5dGVBcnJheUVsZW1lbnRzKGRhdGEsIE5VTEwpOwotICAgIHJzQWxsb2NhdGlvbjFERGF0YShjb24sIChSc0FsbG9jYXRpb24pYWxsb2MsIG9mZnNldCwgbG9kLCBjb3VudCwgcHRyLCBzaXplQnl0ZXMpOwotICAgIF9lbnYtPlJlbGVhc2VCeXRlQXJyYXlFbGVtZW50cyhkYXRhLCBwdHIsIEpOSV9BQk9SVCk7Ci19Ci0KLXN0YXRpYyB2b2lkCi1uQWxsb2NhdGlvbkRhdGExRF9mKEpOSUVudiAqX2Vudiwgam9iamVjdCBfdGhpcywgUnNDb250ZXh0IGNvbiwgamludCBhbGxvYywgamludCBvZmZzZXQsIGppbnQgbG9kLCBqaW50IGNvdW50LCBqZmxvYXRBcnJheSBkYXRhLCBpbnQgc2l6ZUJ5dGVzKQotewotICAgIGppbnQgbGVuID0gX2Vudi0+R2V0QXJyYXlMZW5ndGgoZGF0YSk7Ci0gICAgTE9HX0FQSSgibkFsbG9jYXRpb24xRERhdGFfZiwgY29uKCVwKSwgYWRhcHRlciglcCksIG9mZnNldCglaSksIGNvdW50KCVpKSwgbGVuKCVpKSwgc2l6ZUJ5dGVzKCVpKSIsIGNvbiwgKFJzQWxsb2NhdGlvbilhbGxvYywgb2Zmc2V0LCBjb3VudCwgbGVuLCBzaXplQnl0ZXMpOwotICAgIGpmbG9hdCAqcHRyID0gX2Vudi0+R2V0RmxvYXRBcnJheUVsZW1lbnRzKGRhdGEsIE5VTEwpOwotICAgIHJzQWxsb2NhdGlvbjFERGF0YShjb24sIChSc0FsbG9jYXRpb24pYWxsb2MsIG9mZnNldCwgbG9kLCBjb3VudCwgcHRyLCBzaXplQnl0ZXMpOwotICAgIF9lbnYtPlJlbGVhc2VGbG9hdEFycmF5RWxlbWVudHMoZGF0YSwgcHRyLCBKTklfQUJPUlQpOworICAgIFJzQWxsb2NhdGlvbiAqYWxsb2MgPSAoUnNBbGxvY2F0aW9uICopX2FsbG9jOworICAgIExPR19BUEkoIm5BbGxvY2F0aW9uMUREYXRhLCBjb24oJXApLCBhZGFwdGVyKCVwKSwgb2Zmc2V0KCVpKSwgY291bnQoJWkpLCBsZW4oJWkpLCBzaXplQnl0ZXMoJWkpLCBkYXRhVHlwZSglaSkiLAorICAgICAgICAgICAgY29uLCBhbGxvYywgb2Zmc2V0LCBjb3VudCwgbGVuLCBzaXplQnl0ZXMsIGRhdGFUeXBlKTsKKyAgICBQRVJfQVJSQVlfVFlQRShOVUxMLCByc0FsbG9jYXRpb24xRERhdGEsIGNvbiwgYWxsb2MsIG9mZnNldCwgbG9kLCBjb3VudCwgcHRyLCBzaXplQnl0ZXMpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtNjU2LDQ3ICs2NzYsMTQgQEAKIH0KIAogc3RhdGljIHZvaWQKLW5BbGxvY2F0aW9uRGF0YTJEX3MoSk5JRW52ICpfZW52LCBqb2JqZWN0IF90aGlzLCBSc0NvbnRleHQgY29uLCBqaW50IGFsbG9jLCBqaW50IHhvZmYsIGppbnQgeW9mZiwgamludCBsb2QsIGppbnQgZmFjZSwKLSAgICAgICAgICAgICAgICAgICAgamludCB3LCBqaW50IGgsIGpzaG9ydEFycmF5IGRhdGEsIGludCBzaXplQnl0ZXMpCituQWxsb2NhdGlvbkRhdGEyRChKTklFbnYgKl9lbnYsIGpvYmplY3QgX3RoaXMsIFJzQ29udGV4dCBjb24sIGppbnQgX2FsbG9jLCBqaW50IHhvZmYsIGppbnQgeW9mZiwgamludCBsb2QsIGppbnQgX2ZhY2UsCisgICAgICAgICAgICAgICAgICBqaW50IHcsIGppbnQgaCwgam9iamVjdCBkYXRhLCBpbnQgc2l6ZUJ5dGVzLCBpbnQgZGF0YVR5cGUpCiB7Ci0gICAgamludCBsZW4gPSBfZW52LT5HZXRBcnJheUxlbmd0aChkYXRhKTsKLSAgICBMT0dfQVBJKCJuQWxsb2NhdGlvbjJERGF0YV9zLCBjb24oJXApLCBhZGFwdGVyKCVwKSwgeG9mZiglaSksIHlvZmYoJWkpLCB3KCVpKSwgaCglaSksIGxlbiglaSkiLCBjb24sIChSc0FsbG9jYXRpb24pYWxsb2MsIHhvZmYsIHlvZmYsIHcsIGgsIGxlbik7Ci0gICAganNob3J0ICpwdHIgPSBfZW52LT5HZXRTaG9ydEFycmF5RWxlbWVudHMoZGF0YSwgTlVMTCk7Ci0gICAgcnNBbGxvY2F0aW9uMkREYXRhKGNvbiwgKFJzQWxsb2NhdGlvbilhbGxvYywgeG9mZiwgeW9mZiwgbG9kLCAoUnNBbGxvY2F0aW9uQ3ViZW1hcEZhY2UpZmFjZSwgdywgaCwgcHRyLCBzaXplQnl0ZXMsIDApOwotICAgIF9lbnYtPlJlbGVhc2VTaG9ydEFycmF5RWxlbWVudHMoZGF0YSwgcHRyLCBKTklfQUJPUlQpOwotfQotCi1zdGF0aWMgdm9pZAotbkFsbG9jYXRpb25EYXRhMkRfYihKTklFbnYgKl9lbnYsIGpvYmplY3QgX3RoaXMsIFJzQ29udGV4dCBjb24sIGppbnQgYWxsb2MsIGppbnQgeG9mZiwgamludCB5b2ZmLCBqaW50IGxvZCwgamludCBmYWNlLAotICAgICAgICAgICAgICAgICAgICBqaW50IHcsIGppbnQgaCwgamJ5dGVBcnJheSBkYXRhLCBpbnQgc2l6ZUJ5dGVzKQotewotICAgIGppbnQgbGVuID0gX2Vudi0+R2V0QXJyYXlMZW5ndGgoZGF0YSk7Ci0gICAgTE9HX0FQSSgibkFsbG9jYXRpb24yRERhdGFfYiwgY29uKCVwKSwgYWRhcHRlciglcCksIHhvZmYoJWkpLCB5b2ZmKCVpKSwgdyglaSksIGgoJWkpLCBsZW4oJWkpIiwgY29uLCAoUnNBbGxvY2F0aW9uKWFsbG9jLCB4b2ZmLCB5b2ZmLCB3LCBoLCBsZW4pOwotICAgIGpieXRlICpwdHIgPSBfZW52LT5HZXRCeXRlQXJyYXlFbGVtZW50cyhkYXRhLCBOVUxMKTsKLSAgICByc0FsbG9jYXRpb24yRERhdGEoY29uLCAoUnNBbGxvY2F0aW9uKWFsbG9jLCB4b2ZmLCB5b2ZmLCBsb2QsIChSc0FsbG9jYXRpb25DdWJlbWFwRmFjZSlmYWNlLCB3LCBoLCBwdHIsIHNpemVCeXRlcywgMCk7Ci0gICAgX2Vudi0+UmVsZWFzZUJ5dGVBcnJheUVsZW1lbnRzKGRhdGEsIHB0ciwgSk5JX0FCT1JUKTsKLX0KLQotc3RhdGljIHZvaWQKLW5BbGxvY2F0aW9uRGF0YTJEX2koSk5JRW52ICpfZW52LCBqb2JqZWN0IF90aGlzLCBSc0NvbnRleHQgY29uLCBqaW50IGFsbG9jLCBqaW50IHhvZmYsIGppbnQgeW9mZiwgamludCBsb2QsIGppbnQgZmFjZSwKLSAgICAgICAgICAgICAgICAgICAgamludCB3LCBqaW50IGgsIGppbnRBcnJheSBkYXRhLCBpbnQgc2l6ZUJ5dGVzKQotewotICAgIGppbnQgbGVuID0gX2Vudi0+R2V0QXJyYXlMZW5ndGgoZGF0YSk7Ci0gICAgTE9HX0FQSSgibkFsbG9jYXRpb24yRERhdGFfaSwgY29uKCVwKSwgYWRhcHRlciglcCksIHhvZmYoJWkpLCB5b2ZmKCVpKSwgdyglaSksIGgoJWkpLCBsZW4oJWkpIiwgY29uLCAoUnNBbGxvY2F0aW9uKWFsbG9jLCB4b2ZmLCB5b2ZmLCB3LCBoLCBsZW4pOwotICAgIGppbnQgKnB0ciA9IF9lbnYtPkdldEludEFycmF5RWxlbWVudHMoZGF0YSwgTlVMTCk7Ci0gICAgcnNBbGxvY2F0aW9uMkREYXRhKGNvbiwgKFJzQWxsb2NhdGlvbilhbGxvYywgeG9mZiwgeW9mZiwgbG9kLCAoUnNBbGxvY2F0aW9uQ3ViZW1hcEZhY2UpZmFjZSwgdywgaCwgcHRyLCBzaXplQnl0ZXMsIDApOwotICAgIF9lbnYtPlJlbGVhc2VJbnRBcnJheUVsZW1lbnRzKGRhdGEsIHB0ciwgSk5JX0FCT1JUKTsKLX0KLQotc3RhdGljIHZvaWQKLW5BbGxvY2F0aW9uRGF0YTJEX2YoSk5JRW52ICpfZW52LCBqb2JqZWN0IF90aGlzLCBSc0NvbnRleHQgY29uLCBqaW50IGFsbG9jLCBqaW50IHhvZmYsIGppbnQgeW9mZiwgamludCBsb2QsIGppbnQgZmFjZSwKLSAgICAgICAgICAgICAgICAgICAgamludCB3LCBqaW50IGgsIGpmbG9hdEFycmF5IGRhdGEsIGludCBzaXplQnl0ZXMpCi17Ci0gICAgamludCBsZW4gPSBfZW52LT5HZXRBcnJheUxlbmd0aChkYXRhKTsKLSAgICBMT0dfQVBJKCJuQWxsb2NhdGlvbjJERGF0YV9pLCBjb24oJXApLCBhZGFwdGVyKCVwKSwgeG9mZiglaSksIHlvZmYoJWkpLCB3KCVpKSwgaCglaSksIGxlbiglaSkiLCBjb24sIChSc0FsbG9jYXRpb24pYWxsb2MsIHhvZmYsIHlvZmYsIHcsIGgsIGxlbik7Ci0gICAgamZsb2F0ICpwdHIgPSBfZW52LT5HZXRGbG9hdEFycmF5RWxlbWVudHMoZGF0YSwgTlVMTCk7Ci0gICAgcnNBbGxvY2F0aW9uMkREYXRhKGNvbiwgKFJzQWxsb2NhdGlvbilhbGxvYywgeG9mZiwgeW9mZiwgbG9kLCAoUnNBbGxvY2F0aW9uQ3ViZW1hcEZhY2UpZmFjZSwgdywgaCwgcHRyLCBzaXplQnl0ZXMsIDApOwotICAgIF9lbnYtPlJlbGVhc2VGbG9hdEFycmF5RWxlbWVudHMoZGF0YSwgcHRyLCBKTklfQUJPUlQpOworICAgIFJzQWxsb2NhdGlvbiAqYWxsb2MgPSAoUnNBbGxvY2F0aW9uICopX2FsbG9jOworICAgIFJzQWxsb2NhdGlvbkN1YmVtYXBGYWNlIGZhY2UgPSAoUnNBbGxvY2F0aW9uQ3ViZW1hcEZhY2UpX2ZhY2U7CisgICAgTE9HX0FQSSgibkFsbG9jYXRpb24yRERhdGEsIGNvbiglcCksIGFkYXB0ZXIoJXApLCB4b2ZmKCVpKSwgeW9mZiglaSksIHcoJWkpLCBoKCVpKSwgbGVuKCVpKSB0eXBlKCVpKSIsCisgICAgICAgICAgICBjb24sIGFsbG9jLCB4b2ZmLCB5b2ZmLCB3LCBoLCBzaXplQnl0ZXMsIGRhdGFUeXBlKTsKKyAgICBQRVJfQVJSQVlfVFlQRShOVUxMLCByc0FsbG9jYXRpb24yRERhdGEsIGNvbiwgYWxsb2MsIHhvZmYsIHlvZmYsIGxvZCwgZmFjZSwgdywgaCwgcHRyLCBzaXplQnl0ZXMsIDApOwogfQogCiBzdGF0aWMgdm9pZApAQCAtNzI0LDQ3ICs3MTEsMTMgQEAKIH0KIAogc3RhdGljIHZvaWQKLW5BbGxvY2F0aW9uRGF0YTNEX3MoSk5JRW52ICpfZW52LCBqb2JqZWN0IF90aGlzLCBSc0NvbnRleHQgY29uLCBqaW50IGFsbG9jLCBqaW50IHhvZmYsIGppbnQgeW9mZiwgamludCB6b2ZmLCBqaW50IGxvZCwKLSAgICAgICAgICAgICAgICAgICAgamludCB3LCBqaW50IGgsIGppbnQgZCwganNob3J0QXJyYXkgZGF0YSwgaW50IHNpemVCeXRlcykKK25BbGxvY2F0aW9uRGF0YTNEKEpOSUVudiAqX2Vudiwgam9iamVjdCBfdGhpcywgUnNDb250ZXh0IGNvbiwgamludCBfYWxsb2MsIGppbnQgeG9mZiwgamludCB5b2ZmLCBqaW50IHpvZmYsIGppbnQgbG9kLAorICAgICAgICAgICAgICAgICAgICBqaW50IHcsIGppbnQgaCwgamludCBkLCBqb2JqZWN0IGRhdGEsIGludCBzaXplQnl0ZXMsIGludCBkYXRhVHlwZSkKIHsKLSAgICBqaW50IGxlbiA9IF9lbnYtPkdldEFycmF5TGVuZ3RoKGRhdGEpOwotICAgIExPR19BUEkoIm5BbGxvY2F0aW9uM0REYXRhX3MsIGNvbiglcCksIGFkYXB0ZXIoJXApLCB4b2ZmKCVpKSwgeW9mZiglaSksIHcoJWkpLCBoKCVpKSwgbGVuKCVpKSIsIGNvbiwgKFJzQWxsb2NhdGlvbilhbGxvYywgeG9mZiwgeW9mZiwgem9mZiwgdywgaCwgZCwgbGVuKTsKLSAgICBqc2hvcnQgKnB0ciA9IF9lbnYtPkdldFNob3J0QXJyYXlFbGVtZW50cyhkYXRhLCBOVUxMKTsKLSAgICByc0FsbG9jYXRpb24zRERhdGEoY29uLCAoUnNBbGxvY2F0aW9uKWFsbG9jLCB4b2ZmLCB5b2ZmLCB6b2ZmLCBsb2QsIHcsIGgsIGQsIHB0ciwgc2l6ZUJ5dGVzLCAwKTsKLSAgICBfZW52LT5SZWxlYXNlU2hvcnRBcnJheUVsZW1lbnRzKGRhdGEsIHB0ciwgSk5JX0FCT1JUKTsKLX0KLQotc3RhdGljIHZvaWQKLW5BbGxvY2F0aW9uRGF0YTNEX2IoSk5JRW52ICpfZW52LCBqb2JqZWN0IF90aGlzLCBSc0NvbnRleHQgY29uLCBqaW50IGFsbG9jLCBqaW50IHhvZmYsIGppbnQgeW9mZiwgamludCB6b2ZmLCBqaW50IGxvZCwKLSAgICAgICAgICAgICAgICAgICAgamludCB3LCBqaW50IGgsIGppbnQgZCwgamJ5dGVBcnJheSBkYXRhLCBpbnQgc2l6ZUJ5dGVzKQotewotICAgIGppbnQgbGVuID0gX2Vudi0+R2V0QXJyYXlMZW5ndGgoZGF0YSk7Ci0gICAgTE9HX0FQSSgibkFsbG9jYXRpb24zRERhdGFfYiwgY29uKCVwKSwgYWRhcHRlciglcCksIHhvZmYoJWkpLCB5b2ZmKCVpKSwgdyglaSksIGgoJWkpLCBsZW4oJWkpIiwgY29uLCAoUnNBbGxvY2F0aW9uKWFsbG9jLCB4b2ZmLCB5b2ZmLCB6b2ZmLCB3LCBoLCBkLCBsZW4pOwotICAgIGpieXRlICpwdHIgPSBfZW52LT5HZXRCeXRlQXJyYXlFbGVtZW50cyhkYXRhLCBOVUxMKTsKLSAgICByc0FsbG9jYXRpb24zRERhdGEoY29uLCAoUnNBbGxvY2F0aW9uKWFsbG9jLCB4b2ZmLCB5b2ZmLCB6b2ZmLCBsb2QsIHcsIGgsIGQsIHB0ciwgc2l6ZUJ5dGVzLCAwKTsKLSAgICBfZW52LT5SZWxlYXNlQnl0ZUFycmF5RWxlbWVudHMoZGF0YSwgcHRyLCBKTklfQUJPUlQpOwotfQotCi1zdGF0aWMgdm9pZAotbkFsbG9jYXRpb25EYXRhM0RfaShKTklFbnYgKl9lbnYsIGpvYmplY3QgX3RoaXMsIFJzQ29udGV4dCBjb24sIGppbnQgYWxsb2MsIGppbnQgeG9mZiwgamludCB5b2ZmLCBqaW50IHpvZmYsIGppbnQgbG9kLAotICAgICAgICAgICAgICAgICAgICBqaW50IHcsIGppbnQgaCwgamludCBkLCBqaW50QXJyYXkgZGF0YSwgaW50IHNpemVCeXRlcykKLXsKLSAgICBqaW50IGxlbiA9IF9lbnYtPkdldEFycmF5TGVuZ3RoKGRhdGEpOwotICAgIExPR19BUEkoIm5BbGxvY2F0aW9uM0REYXRhX2ksIGNvbiglcCksIGFkYXB0ZXIoJXApLCB4b2ZmKCVpKSwgeW9mZiglaSksIHcoJWkpLCBoKCVpKSwgbGVuKCVpKSIsIGNvbiwgKFJzQWxsb2NhdGlvbilhbGxvYywgeG9mZiwgeW9mZiwgem9mZiwgdywgaCwgZCwgbGVuKTsKLSAgICBqaW50ICpwdHIgPSBfZW52LT5HZXRJbnRBcnJheUVsZW1lbnRzKGRhdGEsIE5VTEwpOwotICAgIHJzQWxsb2NhdGlvbjNERGF0YShjb24sIChSc0FsbG9jYXRpb24pYWxsb2MsIHhvZmYsIHlvZmYsIHpvZmYsIGxvZCwgdywgaCwgZCwgcHRyLCBzaXplQnl0ZXMsIDApOwotICAgIF9lbnYtPlJlbGVhc2VJbnRBcnJheUVsZW1lbnRzKGRhdGEsIHB0ciwgSk5JX0FCT1JUKTsKLX0KLQotc3RhdGljIHZvaWQKLW5BbGxvY2F0aW9uRGF0YTNEX2YoSk5JRW52ICpfZW52LCBqb2JqZWN0IF90aGlzLCBSc0NvbnRleHQgY29uLCBqaW50IGFsbG9jLCBqaW50IHhvZmYsIGppbnQgeW9mZiwgamludCB6b2ZmLCBqaW50IGxvZCwKLSAgICAgICAgICAgICAgICAgICAgamludCB3LCBqaW50IGgsIGppbnQgZCwgamZsb2F0QXJyYXkgZGF0YSwgaW50IHNpemVCeXRlcykKLXsKLSAgICBqaW50IGxlbiA9IF9lbnYtPkdldEFycmF5TGVuZ3RoKGRhdGEpOwotICAgIExPR19BUEkoIm5BbGxvY2F0aW9uM0REYXRhX2YsIGNvbiglcCksIGFkYXB0ZXIoJXApLCB4b2ZmKCVpKSwgeW9mZiglaSksIHcoJWkpLCBoKCVpKSwgbGVuKCVpKSIsIGNvbiwgKFJzQWxsb2NhdGlvbilhbGxvYywgeG9mZiwgeW9mZiwgem9mZiwgdywgaCwgZCwgbGVuKTsKLSAgICBqZmxvYXQgKnB0ciA9IF9lbnYtPkdldEZsb2F0QXJyYXlFbGVtZW50cyhkYXRhLCBOVUxMKTsKLSAgICByc0FsbG9jYXRpb24zRERhdGEoY29uLCAoUnNBbGxvY2F0aW9uKWFsbG9jLCB4b2ZmLCB5b2ZmLCB6b2ZmLCBsb2QsIHcsIGgsIGQsIHB0ciwgc2l6ZUJ5dGVzLCAwKTsKLSAgICBfZW52LT5SZWxlYXNlRmxvYXRBcnJheUVsZW1lbnRzKGRhdGEsIHB0ciwgSk5JX0FCT1JUKTsKKyAgICBSc0FsbG9jYXRpb24gKmFsbG9jID0gKFJzQWxsb2NhdGlvbiAqKV9hbGxvYzsKKyAgICBMT0dfQVBJKCJuQWxsb2NhdGlvbjNERGF0YSwgY29uKCVwKSwgYWxsb2MoJXApLCB4b2ZmKCVpKSwgeW9mZiglaSksIHpvZmYoJWkpLCBsb2QoJWkpLCB3KCVpKSwgaCglaSksIGQoJWkpLCBzaXplQnl0ZXMoJWkpIiwKKyAgICAgICAgICAgIGNvbiwgKFJzQWxsb2NhdGlvbilhbGxvYywgeG9mZiwgeW9mZiwgem9mZiwgbG9kLCB3LCBoLCBkLCBzaXplQnl0ZXMpOworICAgIFBFUl9BUlJBWV9UWVBFKE5VTEwsIHJzQWxsb2NhdGlvbjNERGF0YSwgY29uLCBhbGxvYywgeG9mZiwgeW9mZiwgem9mZiwgbG9kLCB3LCBoLCBkLCBwdHIsIHNpemVCeXRlcywgMCk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xNjEzLDIwICsxNTY2LDExIEBACiB7InJzbkFsbG9jYXRpb25TZXRTdXJmYWNlIiwgICAgICAgICAgIihJSUxhbmRyb2lkL3ZpZXcvU3VyZmFjZTspViIsICAgICAgICAgICAodm9pZCopbkFsbG9jYXRpb25TZXRTdXJmYWNlIH0sCiB7InJzbkFsbG9jYXRpb25Jb1NlbmQiLCAgICAgICAgICAgICAgIihJSSlWIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopbkFsbG9jYXRpb25Jb1NlbmQgfSwKIHsicnNuQWxsb2NhdGlvbklvUmVjZWl2ZSIsICAgICAgICAgICAiKElJKVYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKiluQWxsb2NhdGlvbklvUmVjZWl2ZSB9LAoteyJyc25BbGxvY2F0aW9uRGF0YTFEIiwgICAgICAgICAgICAgICIoSUlJSUlbSUkpViIsICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKW5BbGxvY2F0aW9uRGF0YTFEX2kgfSwKLXsicnNuQWxsb2NhdGlvbkRhdGExRCIsICAgICAgICAgICAgICAiKElJSUlJW1NJKVYiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKiluQWxsb2NhdGlvbkRhdGExRF9zIH0sCi17InJzbkFsbG9jYXRpb25EYXRhMUQiLCAgICAgICAgICAgICAgIihJSUlJSVtCSSlWIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopbkFsbG9jYXRpb25EYXRhMURfYiB9LAoteyJyc25BbGxvY2F0aW9uRGF0YTFEIiwgICAgICAgICAgICAgICIoSUlJSUlbRkkpViIsICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKW5BbGxvY2F0aW9uRGF0YTFEX2YgfSwKK3sicnNuQWxsb2NhdGlvbkRhdGExRCIsICAgICAgICAgICAgICAiKElJSUlJTGphdmEvbGFuZy9PYmplY3Q7SUkpViIsICAgICAgICAgICh2b2lkKiluQWxsb2NhdGlvbkRhdGExRCB9LAogeyJyc25BbGxvY2F0aW9uRWxlbWVudERhdGExRCIsICAgICAgICIoSUlJSUlbQkkpViIsICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKW5BbGxvY2F0aW9uRWxlbWVudERhdGExRCB9LAoteyJyc25BbGxvY2F0aW9uRGF0YTJEIiwgICAgICAgICAgICAgICIoSUlJSUlJSUlbSUkpViIsICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKW5BbGxvY2F0aW9uRGF0YTJEX2kgfSwKLXsicnNuQWxsb2NhdGlvbkRhdGEyRCIsICAgICAgICAgICAgICAiKElJSUlJSUlJW1NJKVYiLCAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKiluQWxsb2NhdGlvbkRhdGEyRF9zIH0sCi17InJzbkFsbG9jYXRpb25EYXRhMkQiLCAgICAgICAgICAgICAgIihJSUlJSUlJSVtCSSlWIiwgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopbkFsbG9jYXRpb25EYXRhMkRfYiB9LAoteyJyc25BbGxvY2F0aW9uRGF0YTJEIiwgICAgICAgICAgICAgICIoSUlJSUlJSUlbRkkpViIsICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKW5BbGxvY2F0aW9uRGF0YTJEX2YgfSwKK3sicnNuQWxsb2NhdGlvbkRhdGEyRCIsICAgICAgICAgICAgICAiKElJSUlJSUlJTGphdmEvbGFuZy9PYmplY3Q7SUkpViIsICAgICAgICh2b2lkKiluQWxsb2NhdGlvbkRhdGEyRCB9LAogeyJyc25BbGxvY2F0aW9uRGF0YTJEIiwgICAgICAgICAgICAgICIoSUlJSUlJSUlJSUlJSSlWIiwgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKW5BbGxvY2F0aW9uRGF0YTJEX2FsbG9jIH0sCi17InJzbkFsbG9jYXRpb25EYXRhM0QiLCAgICAgICAgICAgICAgIihJSUlJSUlJSUlbSUkpViIsICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopbkFsbG9jYXRpb25EYXRhM0RfaSB9LAoteyJyc25BbGxvY2F0aW9uRGF0YTNEIiwgICAgICAgICAgICAgICIoSUlJSUlJSUlJW1NJKVYiLCAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKW5BbGxvY2F0aW9uRGF0YTNEX3MgfSwKLXsicnNuQWxsb2NhdGlvbkRhdGEzRCIsICAgICAgICAgICAgICAiKElJSUlJSUlJSVtCSSlWIiwgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKiluQWxsb2NhdGlvbkRhdGEzRF9iIH0sCi17InJzbkFsbG9jYXRpb25EYXRhM0QiLCAgICAgICAgICAgICAgIihJSUlJSUlJSUlbRkkpViIsICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopbkFsbG9jYXRpb25EYXRhM0RfZiB9LAoreyJyc25BbGxvY2F0aW9uRGF0YTNEIiwgICAgICAgICAgICAgICIoSUlJSUlJSUlJTGphdmEvbGFuZy9PYmplY3Q7SUkpViIsICAgICAgKHZvaWQqKW5BbGxvY2F0aW9uRGF0YTNEIH0sCiB7InJzbkFsbG9jYXRpb25EYXRhM0QiLCAgICAgICAgICAgICAgIihJSUlJSUlJSUlJSUlJSSlWIiwgICAgICAgICAgICAgICAgICAgICAodm9pZCopbkFsbG9jYXRpb25EYXRhM0RfYWxsb2MgfSwKIHsicnNuQWxsb2NhdGlvblJlYWQiLCAgICAgICAgICAgICAgICAiKElJW0kpViIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKiluQWxsb2NhdGlvblJlYWRfaSB9LAogeyJyc25BbGxvY2F0aW9uUmVhZCIsICAgICAgICAgICAgICAgICIoSUlbUylWIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKW5BbGxvY2F0aW9uUmVhZF9zIH0sCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FuZHJvaWRmdy9Bc3NldC5oIGIvaW5jbHVkZS9hbmRyb2lkZncvQXNzZXQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWZlMGUwNi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FuZHJvaWRmdy9Bc3NldC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzIyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0vLwotLy8gQ2xhc3MgcHJvdmlkaW5nIGFjY2VzcyB0byBhIHJlYWQtb25seSBhc3NldC4gIEFzc2V0IG9iamVjdHMgYXJlIE5PVAotLy8gdGhyZWFkLXNhZmUsIGFuZCBzaG91bGQgbm90IGJlIHNoYXJlZCBhY3Jvc3MgdGhyZWFkcy4KLS8vCi0jaWZuZGVmIF9fTElCU19BU1NFVF9ICi0jZGVmaW5lIF9fTElCU19BU1NFVF9ICi0KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotCi0jaW5jbHVkZSA8dXRpbHMvQ29tcGF0Lmg+Ci0jaW5jbHVkZSA8dXRpbHMvRXJyb3JzLmg+Ci0jaW5jbHVkZSA8dXRpbHMvRmlsZU1hcC5oPgotI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KLQotbmFtZXNwYWNlIGFuZHJvaWQgewotCi0vKgotICogSW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgcHJvdmlkZSByZWFkLW9ubHkgb3BlcmF0aW9ucyBvbiBhIGJ5dGUgc3RyZWFtLgotICoKLSAqIEFjY2VzcyBtYXkgYmUgb3B0aW1pemVkIGZvciBzdHJlYW1pbmcsIHJhbmRvbSwgb3Igd2hvbGUgYnVmZmVyIG1vZGVzLiAgQWxsCi0gKiBvcGVyYXRpb25zIGFyZSBzdXBwb3J0ZWQgcmVnYXJkbGVzcyBvZiBob3cgdGhlIGZpbGUgd2FzIG9wZW5lZCwgYnV0IHNvbWUKLSAqIHRoaW5ncyB3aWxsIGJlIGxlc3MgZWZmaWNpZW50LiAgW3Bhc3MgdGhhdCBpbj8/XQotICoKLSAqICJBc3NldCIgaXMgdGhlIGJhc2UgY2xhc3MgZm9yIGFsbCB0eXBlcyBvZiBhc3NldHMuICBUaGUgY2xhc3NlcyBiZWxvdwotICogcHJvdmlkZSBtb3N0IG9mIHRoZSBpbXBsZW1lbnRhdGlvbi4gIFRoZSBBc3NldE1hbmFnZXIgdXNlcyBvbmUgb2YgdGhlCi0gKiBzdGF0aWMgImNyZWF0ZSIgZnVuY3Rpb25zIGRlZmluZWQgaGVyZSB0byBjcmVhdGUgYSBuZXcgaW5zdGFuY2UuCi0gKi8KLWNsYXNzIEFzc2V0IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5Bc3NldCh2b2lkKTsKLQotICAgIHN0YXRpYyBpbnQzMl90IGdldEdsb2JhbENvdW50KCk7Ci0gICAgc3RhdGljIFN0cmluZzggZ2V0QXNzZXRBbGxvY2F0aW9ucygpOwotICAgIAotICAgIC8qIHVzZWQgd2hlbiBvcGVuaW5nIGFuIGFzc2V0ICovCi0gICAgdHlwZWRlZiBlbnVtIEFjY2Vzc01vZGUgewotICAgICAgICBBQ0NFU1NfVU5LTk9XTiA9IDAsCi0KLSAgICAgICAgLyogcmVhZCBjaHVua3MsIGFuZCBzZWVrIGZvcndhcmQgYW5kIGJhY2t3YXJkICovCi0gICAgICAgIEFDQ0VTU19SQU5ET00sCi0KLSAgICAgICAgLyogcmVhZCBzZXF1ZW50aWFsbHksIHdpdGggYW4gb2NjYXNpb25hbCBmb3J3YXJkIHNlZWsgKi8KLSAgICAgICAgQUNDRVNTX1NUUkVBTUlORywKLQotICAgICAgICAvKiBjYWxsZXIgcGxhbnMgdG8gYXNrIGZvciBhIHJlYWQtb25seSBidWZmZXIgd2l0aCBhbGwgZGF0YSAqLwotICAgICAgICBBQ0NFU1NfQlVGRkVSLAotICAgIH0gQWNjZXNzTW9kZTsKLQotICAgIC8qCi0gICAgICogUmVhZCBkYXRhIGZyb20gdGhlIGN1cnJlbnQgb2Zmc2V0LiAgUmV0dXJucyB0aGUgYWN0dWFsIG51bWJlciBvZgotICAgICAqIGJ5dGVzIHJlYWQsIDAgb24gRU9GLCBvciAtMSBvbiBlcnJvci4KLSAgICAgKi8KLSAgICB2aXJ0dWFsIHNzaXplX3QgcmVhZCh2b2lkKiBidWYsIHNpemVfdCBjb3VudCkgPSAwOwotCi0gICAgLyoKLSAgICAgKiBTZWVrIHRvIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LiAgIndoZW5jZSIgdXNlcyB0aGUgc2FtZSB2YWx1ZXMgYXMKLSAgICAgKiBsc2Vlay9mc2Vlay4gIFJldHVybnMgdGhlIG5ldyBwb3NpdGlvbiBvbiBzdWNjZXNzLCBvciAob2ZmNjRfdCkgLTEKLSAgICAgKiBvbiBmYWlsdXJlLgotICAgICAqLwotICAgIHZpcnR1YWwgb2ZmNjRfdCBzZWVrKG9mZjY0X3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKSA9IDA7Ci0KLSAgICAvKgotICAgICAqIENsb3NlIHRoZSBhc3NldCwgZnJlZWluZyBhbGwgYXNzb2NpYXRlZCByZXNvdXJjZXMuCi0gICAgICovCi0gICAgdmlydHVhbCB2b2lkIGNsb3NlKHZvaWQpID0gMDsKLQotICAgIC8qCi0gICAgICogR2V0IGEgcG9pbnRlciB0byBhIGJ1ZmZlciB3aXRoIHRoZSBlbnRpcmUgY29udGVudHMgb2YgdGhlIGZpbGUuCi0gICAgICovCi0gICAgdmlydHVhbCBjb25zdCB2b2lkKiBnZXRCdWZmZXIoYm9vbCB3b3JkQWxpZ25lZCkgPSAwOwotCi0gICAgLyoKLSAgICAgKiBHZXQgdGhlIHRvdGFsIGFtb3VudCBvZiBkYXRhIHRoYXQgY2FuIGJlIHJlYWQuCi0gICAgICovCi0gICAgdmlydHVhbCBvZmY2NF90IGdldExlbmd0aCh2b2lkKSBjb25zdCA9IDA7Ci0KLSAgICAvKgotICAgICAqIEdldCB0aGUgdG90YWwgYW1vdW50IG9mIGRhdGEgdGhhdCBjYW4gYmUgcmVhZCBmcm9tIHRoZSBjdXJyZW50IHBvc2l0aW9uLgotICAgICAqLwotICAgIHZpcnR1YWwgb2ZmNjRfdCBnZXRSZW1haW5pbmdMZW5ndGgodm9pZCkgY29uc3QgPSAwOwotCi0gICAgLyoKLSAgICAgKiBPcGVuIGEgbmV3IGZpbGUgZGVzY3JpcHRvciB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlYWQgdGhpcyBhc3NldC4KLSAgICAgKiBSZXR1cm5zIC0xIGlmIHlvdSBjYW4gbm90IHVzZSB0aGUgZmlsZSBkZXNjcmlwdG9yIChmb3IgZXhhbXBsZSBpZiB0aGUKLSAgICAgKiBhc3NldCBpcyBjb21wcmVzc2VkKS4KLSAgICAgKi8KLSAgICB2aXJ0dWFsIGludCBvcGVuRmlsZURlc2NyaXB0b3Iob2ZmNjRfdCogb3V0U3RhcnQsIG9mZjY0X3QqIG91dExlbmd0aCkgY29uc3QgPSAwOwotCi0gICAgLyoKLSAgICAgKiBSZXR1cm4gd2hldGhlciB0aGlzIGFzc2V0J3MgYnVmZmVyIGlzIGFsbG9jYXRlZCBpbiBSQU0gKG5vdCBtbWFwcGVkKS4KLSAgICAgKiBOb3RlOiBub3QgdmlydHVhbCBzbyBpdCBpcyBzYWZlIHRvIGNhbGwgZXZlbiB3aGVuIGJlaW5nIGRlc3Ryb3llZC4KLSAgICAgKi8KLSAgICB2aXJ0dWFsIGJvb2wgaXNBbGxvY2F0ZWQodm9pZCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLQotICAgIC8qCi0gICAgICogR2V0IGEgc3RyaW5nIGlkZW50aWZ5aW5nIHRoZSBhc3NldCdzIHNvdXJjZS4gIFRoaXMgbWlnaHQgYmUgYSBmdWxsCi0gICAgICogcGF0aCwgaXQgbWlnaHQgYmUgYSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZiBpZGVudGlmaWVycy4KLSAgICAgKgotICAgICAqIFRoaXMgaXMgTk9UIGludGVuZGVkIHRvIGJlIHVzZWQgZm9yIGFueXRoaW5nIGV4Y2VwdCBkZWJ1ZyBvdXRwdXQuCi0gICAgICogRE8gTk9UIHRyeSB0byBwYXJzZSB0aGlzIG9yIHVzZSBpdCB0byBvcGVuIGEgZmlsZS4KLSAgICAgKi8KLSAgICBjb25zdCBjaGFyKiBnZXRBc3NldFNvdXJjZSh2b2lkKSBjb25zdCB7IHJldHVybiBtQXNzZXRTb3VyY2Uuc3RyaW5nKCk7IH0KLQotcHJvdGVjdGVkOgotICAgIEFzc2V0KHZvaWQpOyAgICAgICAgLy8gY29uc3RydWN0b3I7IG9ubHkgaW52b2tlZCBpbmRpcmVjdGx5Ci0KLSAgICAvKiBoYW5kbGUgY29tbW9uIHNlZWsoKSBob3VzZWtlZXBpbmcgKi8KLSAgICBvZmY2NF90IGhhbmRsZVNlZWsob2ZmNjRfdCBvZmZzZXQsIGludCB3aGVuY2UsIG9mZjY0X3QgY3VyUG9zbiwgb2ZmNjRfdCBtYXhQb3NuKTsKLQotICAgIC8qIHNldCB0aGUgYXNzZXQgc291cmNlIHN0cmluZyAqLwotICAgIHZvaWQgc2V0QXNzZXRTb3VyY2UoY29uc3QgU3RyaW5nOCYgcGF0aCkgeyBtQXNzZXRTb3VyY2UgPSBwYXRoOyB9Ci0KLSAgICBBY2Nlc3NNb2RlIGdldEFjY2Vzc01vZGUodm9pZCkgY29uc3QgeyByZXR1cm4gbUFjY2Vzc01vZGU7IH0KLQotcHJpdmF0ZToKLSAgICAvKiB0aGVzZSBvcGVyYXRpb25zIGFyZSBub3QgaW1wbGVtZW50ZWQgKi8KLSAgICBBc3NldChjb25zdCBBc3NldCYgc3JjKTsKLSAgICBBc3NldCYgb3BlcmF0b3I9KGNvbnN0IEFzc2V0JiBzcmMpOwotCi0gICAgLyogQXNzZXRNYW5hZ2VyIG5lZWRzIGFjY2VzcyB0byBvdXIgImNyZWF0ZSIgZnVuY3Rpb25zICovCi0gICAgZnJpZW5kIGNsYXNzIEFzc2V0TWFuYWdlcjsKLQotICAgIC8qCi0gICAgICogQ3JlYXRlIHRoZSBhc3NldCBmcm9tIGEgbmFtZWQgZmlsZSBvbiBkaXNrLgotICAgICAqLwotICAgIHN0YXRpYyBBc3NldCogY3JlYXRlRnJvbUZpbGUoY29uc3QgY2hhciogZmlsZU5hbWUsIEFjY2Vzc01vZGUgbW9kZSk7Ci0KLSAgICAvKgotICAgICAqIENyZWF0ZSB0aGUgYXNzZXQgZnJvbSBhIG5hbWVkLCBjb21wcmVzc2VkIGZpbGUgb24gZGlzayAoZS5nLiAiLmd6IikuCi0gICAgICovCi0gICAgc3RhdGljIEFzc2V0KiBjcmVhdGVGcm9tQ29tcHJlc3NlZEZpbGUoY29uc3QgY2hhciogZmlsZU5hbWUsCi0gICAgICAgIEFjY2Vzc01vZGUgbW9kZSk7Ci0KLSNpZiAwCi0gICAgLyoKLSAgICAgKiBDcmVhdGUgdGhlIGFzc2V0IGZyb20gYSBzZWdtZW50IG9mIGFuIG9wZW4gZmlsZS4gIFRoaXMgd2lsbCBmYWlsCi0gICAgICogaWYgIm9mZnNldCIgYW5kICJsZW5ndGgiIGRvbid0IGZpdCB3aXRoaW4gdGhlIGJvdW5kcyBvZiB0aGUgZmlsZS4KLSAgICAgKgotICAgICAqIFRoZSBhc3NldCB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGZpbGUgZGVzY3JpcHRvci4KLSAgICAgKi8KLSAgICBzdGF0aWMgQXNzZXQqIGNyZWF0ZUZyb21GaWxlU2VnbWVudChpbnQgZmQsIG9mZjY0X3Qgb2Zmc2V0LCBzaXplX3QgbGVuZ3RoLAotICAgICAgICBBY2Nlc3NNb2RlIG1vZGUpOwotCi0gICAgLyoKLSAgICAgKiBDcmVhdGUgZnJvbSBjb21wcmVzc2VkIGRhdGEuICAiZmQiIHNob3VsZCBiZSBzZWVrZWQgdG8gdGhlIHN0YXJ0IG9mCi0gICAgICogdGhlIGNvbXByZXNzZWQgZGF0YS4gIFRoaXMgY291bGQgYmUgaW5zaWRlIGEgZ3ppcCBmaWxlIG9yIHBhcnQgb2YgYQotICAgICAqIFppcCBhcmNoaXZlLgotICAgICAqCi0gICAgICogVGhlIGFzc2V0IHRha2VzIG93bmVyc2hpcCBvZiB0aGUgZmlsZSBkZXNjcmlwdG9yLgotICAgICAqCi0gICAgICogVGhpcyBtYXkgbm90IHZlcmlmeSB0aGUgdmFsaWRpdHkgb2YgdGhlIGNvbXByZXNzZWQgZGF0YSB1bnRpbCBmaXJzdAotICAgICAqIHVzZS4KLSAgICAgKi8KLSAgICBzdGF0aWMgQXNzZXQqIGNyZWF0ZUZyb21Db21wcmVzc2VkRGF0YShpbnQgZmQsIG9mZjY0X3Qgb2Zmc2V0LAotICAgICAgICBpbnQgY29tcHJlc3Npb25NZXRob2QsIHNpemVfdCBjb21wcmVzc2VkTGVuZ3RoLAotICAgICAgICBzaXplX3QgdW5jb21wcmVzc2VkTGVuZ3RoLCBBY2Nlc3NNb2RlIG1vZGUpOwotI2VuZGlmCi0KLSAgICAvKgotICAgICAqIENyZWF0ZSB0aGUgYXNzZXQgZnJvbSBhIG1lbW9yeS1tYXBwZWQgZmlsZSBzZWdtZW50LgotICAgICAqCi0gICAgICogVGhlIGFzc2V0IHRha2VzIG93bmVyc2hpcCBvZiB0aGUgRmlsZU1hcC4KLSAgICAgKi8KLSAgICBzdGF0aWMgQXNzZXQqIGNyZWF0ZUZyb21VbmNvbXByZXNzZWRNYXAoRmlsZU1hcCogZGF0YU1hcCwgQWNjZXNzTW9kZSBtb2RlKTsKLQotICAgIC8qCi0gICAgICogQ3JlYXRlIHRoZSBhc3NldCBmcm9tIGEgbWVtb3J5LW1hcHBlZCBmaWxlIHNlZ21lbnQgd2l0aCBjb21wcmVzc2VkCi0gICAgICogZGF0YS4gICJtZXRob2QiIGlzIGEgWmlwIGFyY2hpdmUgY29tcHJlc3Npb24gbWV0aG9kIGNvbnN0YW50LgotICAgICAqCi0gICAgICogVGhlIGFzc2V0IHRha2VzIG93bmVyc2hpcCBvZiB0aGUgRmlsZU1hcC4KLSAgICAgKi8KLSAgICBzdGF0aWMgQXNzZXQqIGNyZWF0ZUZyb21Db21wcmVzc2VkTWFwKEZpbGVNYXAqIGRhdGFNYXAsIGludCBtZXRob2QsCi0gICAgICAgIHNpemVfdCB1bmNvbXByZXNzZWRMZW4sIEFjY2Vzc01vZGUgbW9kZSk7Ci0KLQotICAgIC8qCi0gICAgICogQ3JlYXRlIGZyb20gYSByZWZlcmVuY2UtY291bnRlZCBjaHVuayBvZiBzaGFyZWQgbWVtb3J5LgotICAgICAqLwotICAgIC8vIFRPRE8KLQotICAgIEFjY2Vzc01vZGUgIG1BY2Nlc3NNb2RlOyAgICAgICAgLy8gaG93IHRoZSBhc3NldCB3YXMgb3BlbmVkCi0gICAgU3RyaW5nOCAgICBtQXNzZXRTb3VyY2U7ICAgICAgIC8vIGRlYnVnIHN0cmluZwotICAgIAotICAgIEFzc2V0KgkJbU5leHQ7CQkJCS8vIGxpbmtlZCBsaXN0LgotICAgIEFzc2V0KgkJbVByZXY7Ci19OwotCi0KLS8qCi0gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqCi0gKiBJbm5hcmRzIGZvbGxvdy4gIERvIG5vdCB1c2UgdGhlc2UgY2xhc3NlcyBkaXJlY3RseS4KLSAqLwotCi0vKgotICogQW4gYXNzZXQgYmFzZWQgb24gYW4gdW5jb21wcmVzc2VkIGZpbGUgb24gZGlzay4gIEl0IG1heSBlbmNvbXBhc3MgdGhlCi0gKiBlbnRpcmUgZmlsZSBvciBqdXN0IGEgcGllY2Ugb2YgaXQuICBBY2Nlc3MgaXMgdGhyb3VnaCBmcmVhZC9mc2Vlay4KLSAqLwotY2xhc3MgX0ZpbGVBc3NldCA6IHB1YmxpYyBBc3NldCB7Ci1wdWJsaWM6Ci0gICAgX0ZpbGVBc3NldCh2b2lkKTsKLSAgICB2aXJ0dWFsIH5fRmlsZUFzc2V0KHZvaWQpOwotCi0gICAgLyoKLSAgICAgKiBVc2UgYSBwaWVjZSBvZiBhbiBhbHJlYWR5LW9wZW4gZmlsZS4KLSAgICAgKgotICAgICAqIE9uIHN1Y2Nlc3MsIHRoZSBvYmplY3QgdGFrZXMgb3duZXJzaGlwIG9mICJmZCIuCi0gICAgICovCi0gICAgc3RhdHVzX3Qgb3BlbkNodW5rKGNvbnN0IGNoYXIqIGZpbGVOYW1lLCBpbnQgZmQsIG9mZjY0X3Qgb2Zmc2V0LCBzaXplX3QgbGVuZ3RoKTsKLQotICAgIC8qCi0gICAgICogVXNlIGEgbWVtb3J5LW1hcHBlZCByZWdpb24uCi0gICAgICoKLSAgICAgKiBPbiBzdWNjZXNzLCB0aGUgb2JqZWN0IHRha2VzIG93bmVyc2hpcCBvZiAiZGF0YU1hcCIuCi0gICAgICovCi0gICAgc3RhdHVzX3Qgb3BlbkNodW5rKEZpbGVNYXAqIGRhdGFNYXApOwotCi0gICAgLyoKLSAgICAgKiBTdGFuZGFyZCBBc3NldCBpbnRlcmZhY2VzLgotICAgICAqLwotICAgIHZpcnR1YWwgc3NpemVfdCByZWFkKHZvaWQqIGJ1Ziwgc2l6ZV90IGNvdW50KTsKLSAgICB2aXJ0dWFsIG9mZjY0X3Qgc2VlayhvZmY2NF90IG9mZnNldCwgaW50IHdoZW5jZSk7Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlKHZvaWQpOwotICAgIHZpcnR1YWwgY29uc3Qgdm9pZCogZ2V0QnVmZmVyKGJvb2wgd29yZEFsaWduZWQpOwotICAgIHZpcnR1YWwgb2ZmNjRfdCBnZXRMZW5ndGgodm9pZCkgY29uc3QgeyByZXR1cm4gbUxlbmd0aDsgfQotICAgIHZpcnR1YWwgb2ZmNjRfdCBnZXRSZW1haW5pbmdMZW5ndGgodm9pZCkgY29uc3QgeyByZXR1cm4gbUxlbmd0aC1tT2Zmc2V0OyB9Ci0gICAgdmlydHVhbCBpbnQgb3BlbkZpbGVEZXNjcmlwdG9yKG9mZjY0X3QqIG91dFN0YXJ0LCBvZmY2NF90KiBvdXRMZW5ndGgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc0FsbG9jYXRlZCh2b2lkKSBjb25zdCB7IHJldHVybiBtQnVmICE9IE5VTEw7IH0KLQotcHJpdmF0ZToKLSAgICBvZmY2NF90ICAgICBtU3RhcnQ7ICAgICAgICAgLy8gYWJzb2x1dGUgZmlsZSBvZmZzZXQgb2Ygc3RhcnQgb2YgY2h1bmsKLSAgICBvZmY2NF90ICAgICBtTGVuZ3RoOyAgICAgICAgLy8gbGVuZ3RoIG9mIHRoZSBjaHVuawotICAgIG9mZjY0X3QgICAgIG1PZmZzZXQ7ICAgICAgICAvLyBjdXJyZW50IGxvY2FsIG9mZnNldCwgMCA9PSBtU3RhcnQKLSAgICBGSUxFKiAgICAgICBtRnA7ICAgICAgICAgICAgLy8gZm9yIHJlYWQvc2VlawotICAgIGNoYXIqICAgICAgIG1GaWxlTmFtZTsgICAgICAvLyBmb3Igb3BlbmluZwotCi0gICAgLyoKLSAgICAgKiBUbyBzdXBwb3J0IGdldEJ1ZmZlcigpIHdlIGVpdGhlciBuZWVkIHRvIHJlYWQgdGhlIGVudGlyZSB0aGluZyBpbnRvCi0gICAgICogYSBidWZmZXIgb3IgbWVtb3J5LW1hcCBpdC4gIEZvciBzbWFsbCBmaWxlcyBpdCdzIHByb2JhYmx5IGJlc3QgdG8KLSAgICAgKiBqdXN0IHJlYWQgdGhlbSBpbi4KLSAgICAgKi8KLSAgICBlbnVtIHsga1JlYWRWc01hcFRocmVzaG9sZCA9IDQwOTYgfTsKLQotICAgIEZpbGVNYXAqICAgIG1NYXA7ICAgICAgICAgICAvLyBmb3IgbWVtb3J5IG1hcAotICAgIHVuc2lnbmVkIGNoYXIqIG1CdWY7ICAgICAgICAvLyBmb3IgcmVhZAotICAgIAotICAgIGNvbnN0IHZvaWQqIGVuc3VyZUFsaWdubWVudChGaWxlTWFwKiBtYXApOwotfTsKLQotCi0vKgotICogQW4gYXNzZXQgYmFzZWQgb24gY29tcHJlc3NlZCBkYXRhIGluIGEgZmlsZS4KLSAqLwotY2xhc3MgX0NvbXByZXNzZWRBc3NldCA6IHB1YmxpYyBBc3NldCB7Ci1wdWJsaWM6Ci0gICAgX0NvbXByZXNzZWRBc3NldCh2b2lkKTsKLSAgICB2aXJ0dWFsIH5fQ29tcHJlc3NlZEFzc2V0KHZvaWQpOwotCi0gICAgLyoKLSAgICAgKiBVc2UgYSBwaWVjZSBvZiBhbiBhbHJlYWR5LW9wZW4gZmlsZS4KLSAgICAgKgotICAgICAqIE9uIHN1Y2Nlc3MsIHRoZSBvYmplY3QgdGFrZXMgb3duZXJzaGlwIG9mICJmZCIuCi0gICAgICovCi0gICAgc3RhdHVzX3Qgb3BlbkNodW5rKGludCBmZCwgb2ZmNjRfdCBvZmZzZXQsIGludCBjb21wcmVzc2lvbk1ldGhvZCwKLSAgICAgICAgc2l6ZV90IHVuY29tcHJlc3NlZExlbiwgc2l6ZV90IGNvbXByZXNzZWRMZW4pOwotCi0gICAgLyoKLSAgICAgKiBVc2UgYSBtZW1vcnktbWFwcGVkIHJlZ2lvbi4KLSAgICAgKgotICAgICAqIE9uIHN1Y2Nlc3MsIHRoZSBvYmplY3QgdGFrZXMgb3duZXJzaGlwIG9mICJmZCIuCi0gICAgICovCi0gICAgc3RhdHVzX3Qgb3BlbkNodW5rKEZpbGVNYXAqIGRhdGFNYXAsIGludCBjb21wcmVzc2lvbk1ldGhvZCwKLSAgICAgICAgc2l6ZV90IHVuY29tcHJlc3NlZExlbik7Ci0KLSAgICAvKgotICAgICAqIFN0YW5kYXJkIEFzc2V0IGludGVyZmFjZXMuCi0gICAgICovCi0gICAgdmlydHVhbCBzc2l6ZV90IHJlYWQodm9pZCogYnVmLCBzaXplX3QgY291bnQpOwotICAgIHZpcnR1YWwgb2ZmNjRfdCBzZWVrKG9mZjY0X3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xvc2Uodm9pZCk7Ci0gICAgdmlydHVhbCBjb25zdCB2b2lkKiBnZXRCdWZmZXIoYm9vbCB3b3JkQWxpZ25lZCk7Ci0gICAgdmlydHVhbCBvZmY2NF90IGdldExlbmd0aCh2b2lkKSBjb25zdCB7IHJldHVybiBtVW5jb21wcmVzc2VkTGVuOyB9Ci0gICAgdmlydHVhbCBvZmY2NF90IGdldFJlbWFpbmluZ0xlbmd0aCh2b2lkKSBjb25zdCB7IHJldHVybiBtVW5jb21wcmVzc2VkTGVuLW1PZmZzZXQ7IH0KLSAgICB2aXJ0dWFsIGludCBvcGVuRmlsZURlc2NyaXB0b3Iob2ZmNjRfdCogb3V0U3RhcnQsIG9mZjY0X3QqIG91dExlbmd0aCkgY29uc3QgeyByZXR1cm4gLTE7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNBbGxvY2F0ZWQodm9pZCkgY29uc3QgeyByZXR1cm4gbUJ1ZiAhPSBOVUxMOyB9Ci0KLXByaXZhdGU6Ci0gICAgb2ZmNjRfdCAgICAgbVN0YXJ0OyAgICAgICAgIC8vIG9mZnNldCB0byBzdGFydCBvZiBjb21wcmVzc2VkIGRhdGEKLSAgICBvZmY2NF90ICAgICBtQ29tcHJlc3NlZExlbjsgLy8gbGVuZ3RoIG9mIHRoZSBjb21wcmVzc2VkIGRhdGEKLSAgICBvZmY2NF90ICAgICBtVW5jb21wcmVzc2VkTGVuOyAvLyBsZW5ndGggb2YgdGhlIHVuY29tcHJlc3NlZCBkYXRhCi0gICAgb2ZmNjRfdCAgICAgbU9mZnNldDsgICAgICAgIC8vIGN1cnJlbnQgb2Zmc2V0LCAwID09IHN0YXJ0IG9mIHVuY29tcCBkYXRhCi0KLSAgICBGaWxlTWFwKiAgICBtTWFwOyAgICAgICAgICAgLy8gZm9yIG1lbW9yeS1tYXBwZWQgaW5wdXQKLSAgICBpbnQgICAgICAgICBtRmQ7ICAgICAgICAgICAgLy8gZm9yIGZpbGUgaW5wdXQKLQotICAgIGNsYXNzIFN0cmVhbWluZ1ppcEluZmxhdGVyKiBtWmlwSW5mbGF0ZXI7ICAvLyBmb3Igc3RyZWFtaW5nIGxhcmdlIGNvbXByZXNzZWQgYXNzZXRzCi0KLSAgICB1bnNpZ25lZCBjaGFyKiAgbUJ1ZjsgICAgICAgLy8gZm9yIGdldEJ1ZmZlcigpCi19OwotCi0vLyBuZWVkOiBzaGFyZWQgbW1hcCB2ZXJzaW9uPwotCi19OyAvLyBuYW1lc3BhY2UgYW5kcm9pZAotCi0jZW5kaWYgLy8gX19MSUJTX0FTU0VUX0gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5kcm9pZGZ3L0Fzc2V0RGlyLmggYi9pbmNsdWRlL2FuZHJvaWRmdy9Bc3NldERpci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDg5ZDdkLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYW5kcm9pZGZ3L0Fzc2V0RGlyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLS8vCi0vLyBBY2Nlc3MgYSBjaHVuayBvZiB0aGUgYXNzZXQgaGllcmFyY2h5IGFzIGlmIGl0IHdlcmUgYSBzaW5nbGUgZGlyZWN0b3J5LgotLy8KLSNpZm5kZWYgX19MSUJTX0FTU0VURElSX0gKLSNkZWZpbmUgX19MSUJTX0FTU0VURElSX0gKLQotI2luY2x1ZGUgPGFuZHJvaWRmdy9taXNjLmg+Ci0jaW5jbHVkZSA8dXRpbHMvU3RyaW5nOC5oPgotI2luY2x1ZGUgPHV0aWxzL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHV0aWxzL1NvcnRlZFZlY3Rvci5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotCi1uYW1lc3BhY2UgYW5kcm9pZCB7Ci0KLS8qCi0gKiBUaGlzIHByb3ZpZGVzIHZlY3Rvci1zdHlsZSBhY2Nlc3MgdG8gYSBkaXJlY3RvcnkuICBXZSBkbyB0aGlzIHJhdGhlcgotICogdGhhbiBtb2RlbGluZyBvcGVuZGlyL3JlYWRkaXIgYWNjZXNzIGJlY2F1c2UgaXQncyBzaW1wbGVyIGFuZCB0aGUKLSAqIG5hdHVyZSBvZiB0aGUgb3BlcmF0aW9uIHJlcXVpcmVzIHVzIHRvIGhhdmUgYWxsIGRhdGEgb24gaGFuZCBhbnl3YXkuCi0gKgotICogVGhlIGxpc3Qgb2YgZmlsZXMgd2lsbCBiZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIGJ5IEFTQ0lJIHZhbHVlLgotICoKLSAqIFRoZSBjb250ZW50cyBhcmUgcG9wdWxhdGVkIGJ5IG91ciBmcmllbmQsIHRoZSBBc3NldE1hbmFnZXIuCi0gKi8KLWNsYXNzIEFzc2V0RGlyIHsKLXB1YmxpYzoKLSAgICBBc3NldERpcih2b2lkKQotICAgICAgICA6IG1GaWxlSW5mbyhOVUxMKQotICAgICAgICB7fQotICAgIHZpcnR1YWwgfkFzc2V0RGlyKHZvaWQpIHsKLSAgICAgICAgZGVsZXRlIG1GaWxlSW5mbzsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIFZlY3Rvci1zdHlsZSBhY2Nlc3MuCi0gICAgICovCi0gICAgc2l6ZV90IGdldEZpbGVDb3VudCh2b2lkKSB7IHJldHVybiBtRmlsZUluZm8tPnNpemUoKTsgfQotICAgIGNvbnN0IFN0cmluZzgmIGdldEZpbGVOYW1lKGludCBpZHgpIHsKLSAgICAgICAgcmV0dXJuIG1GaWxlSW5mby0+aXRlbUF0KGlkeCkuZ2V0RmlsZU5hbWUoKTsKLSAgICB9Ci0gICAgY29uc3QgU3RyaW5nOCYgZ2V0U291cmNlTmFtZShpbnQgaWR4KSB7Ci0gICAgICAgIHJldHVybiBtRmlsZUluZm8tPml0ZW1BdChpZHgpLmdldFNvdXJjZU5hbWUoKTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEdldCB0aGUgdHlwZSBvZiBhIGZpbGUgKHVzdWFsbHkgcmVndWxhciBvciBkaXJlY3RvcnkpLgotICAgICAqLwotICAgIEZpbGVUeXBlIGdldEZpbGVUeXBlKGludCBpZHgpIHsKLSAgICAgICAgcmV0dXJuIG1GaWxlSW5mby0+aXRlbUF0KGlkeCkuZ2V0RmlsZVR5cGUoKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgLyogdGhlc2Ugb3BlcmF0aW9ucyBhcmUgbm90IGltcGxlbWVudGVkICovCi0gICAgQXNzZXREaXIoY29uc3QgQXNzZXREaXImIHNyYyk7Ci0gICAgY29uc3QgQXNzZXREaXImIG9wZXJhdG9yPShjb25zdCBBc3NldERpciYgc3JjKTsKLQotICAgIGZyaWVuZCBjbGFzcyBBc3NldE1hbmFnZXI7Ci0KLSAgICAvKgotICAgICAqIFRoaXMgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgZmlsZXMgaW4gdGhlIGFzc2V0IGhpZXJhcmNoeS4KLSAgICAgKi8KLSAgICBjbGFzcyBGaWxlSW5mbyB7Ci0gICAgcHVibGljOgotICAgICAgICBGaWxlSW5mbyh2b2lkKSB7fQotICAgICAgICBGaWxlSW5mbyhjb25zdCBTdHJpbmc4JiBwYXRoKSAgICAgIC8vIHVzZWZ1bCBmb3IgZS5nLiBzdmVjdC5pbmRleE9mCi0gICAgICAgICAgICA6IG1GaWxlTmFtZShwYXRoKSwgbUZpbGVUeXBlKGtGaWxlVHlwZVVua25vd24pCi0gICAgICAgICAgICB7fQotICAgICAgICB+RmlsZUluZm8odm9pZCkge30KLSAgICAgICAgRmlsZUluZm8oY29uc3QgRmlsZUluZm8mIHNyYykgewotICAgICAgICAgICAgY29weU1lbWJlcnMoc3JjKTsKLSAgICAgICAgfQotICAgICAgICBjb25zdCBGaWxlSW5mbyYgb3BlcmF0b3I9IChjb25zdCBGaWxlSW5mbyYgc3JjKSB7Ci0gICAgICAgICAgICBpZiAodGhpcyAhPSAmc3JjKQotICAgICAgICAgICAgICAgIGNvcHlNZW1iZXJzKHNyYyk7Ci0gICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGNvcHlNZW1iZXJzKGNvbnN0IEZpbGVJbmZvJiBzcmMpIHsKLSAgICAgICAgICAgIG1GaWxlTmFtZSA9IHNyYy5tRmlsZU5hbWU7Ci0gICAgICAgICAgICBtRmlsZVR5cGUgPSBzcmMubUZpbGVUeXBlOwotICAgICAgICAgICAgbVNvdXJjZU5hbWUgPSBzcmMubVNvdXJjZU5hbWU7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBuZWVkIHRoaXMgZm9yIFNvcnRlZFZlY3RvcjsgbXVzdCBjb21wYXJlIG9ubHkgb24gZmlsZSBuYW1lICovCi0gICAgICAgIGJvb2wgb3BlcmF0b3I8IChjb25zdCBGaWxlSW5mbyYgcmhzKSBjb25zdCB7Ci0gICAgICAgICAgICByZXR1cm4gbUZpbGVOYW1lIDwgcmhzLm1GaWxlTmFtZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIHVzZWQgYnkgQXNzZXRNYW5hZ2VyICovCi0gICAgICAgIGJvb2wgb3BlcmF0b3I9PSAoY29uc3QgRmlsZUluZm8mIHJocykgY29uc3QgewotICAgICAgICAgICAgcmV0dXJuIG1GaWxlTmFtZSA9PSByaHMubUZpbGVOYW1lOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBzZXQoY29uc3QgU3RyaW5nOCYgcGF0aCwgRmlsZVR5cGUgdHlwZSkgewotICAgICAgICAgICAgbUZpbGVOYW1lID0gcGF0aDsKLSAgICAgICAgICAgIG1GaWxlVHlwZSA9IHR5cGU7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBTdHJpbmc4JiBnZXRGaWxlTmFtZSh2b2lkKSBjb25zdCB7IHJldHVybiBtRmlsZU5hbWU7IH0KLSAgICAgICAgdm9pZCBzZXRGaWxlTmFtZShjb25zdCBTdHJpbmc4JiBwYXRoKSB7IG1GaWxlTmFtZSA9IHBhdGg7IH0KLQotICAgICAgICBGaWxlVHlwZSBnZXRGaWxlVHlwZSh2b2lkKSBjb25zdCB7IHJldHVybiBtRmlsZVR5cGU7IH0KLSAgICAgICAgdm9pZCBzZXRGaWxlVHlwZShGaWxlVHlwZSB0eXBlKSB7IG1GaWxlVHlwZSA9IHR5cGU7IH0KLQotICAgICAgICBjb25zdCBTdHJpbmc4JiBnZXRTb3VyY2VOYW1lKHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1Tb3VyY2VOYW1lOyB9Ci0gICAgICAgIHZvaWQgc2V0U291cmNlTmFtZShjb25zdCBTdHJpbmc4JiBwYXRoKSB7IG1Tb3VyY2VOYW1lID0gcGF0aDsgfQotCi0gICAgICAgIC8qCi0gICAgICAgICAqIEhhbmR5IHV0aWxpdHkgZm9yIGZpbmRpbmcgYW4gZW50cnkgaW4gYSBzb3J0ZWQgdmVjdG9yIG9mIEZpbGVJbmZvLgotICAgICAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hpbmcgZW50cnksIG9yIC0xIGlmIG5vbmUgZm91bmQuCi0gICAgICAgICAqLwotICAgICAgICBzdGF0aWMgaW50IGZpbmRFbnRyeShjb25zdCBTb3J0ZWRWZWN0b3I8RmlsZUluZm8+KiBwVmVjdG9yLAotICAgICAgICAgICAgY29uc3QgU3RyaW5nOCYgZmlsZU5hbWUpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgU3RyaW5nOCAgICBtRmlsZU5hbWU7ICAgICAgLy8gZmlsZW5hbWUgb25seQotICAgICAgICBGaWxlVHlwZSAgICBtRmlsZVR5cGU7ICAgICAgLy8gcmVndWxhciwgZGlyZWN0b3J5LCBldGMKLQotICAgICAgICBTdHJpbmc4ICAgIG1Tb3VyY2VOYW1lOyAgICAvLyBjdXJyZW50bHkgZGVidWctb25seQotICAgIH07Ci0KLSAgICAvKiBBc3NldE1hbmFnZXIgdXNlcyB0aGlzIHRvIGluaXRpYWxpemUgdXMgKi8KLSAgICB2b2lkIHNldEZpbGVMaXN0KFNvcnRlZFZlY3RvcjxGaWxlSW5mbz4qIGxpc3QpIHsgbUZpbGVJbmZvID0gbGlzdDsgfQotCi0gICAgU29ydGVkVmVjdG9yPEZpbGVJbmZvPiogbUZpbGVJbmZvOwotfTsKLQotfTsgLy8gbmFtZXNwYWNlIGFuZHJvaWQKLQotI2VuZGlmIC8vIF9fTElCU19BU1NFVERJUl9ICmRpZmYgLS1naXQgYS9pbmNsdWRlL2FuZHJvaWRmdy9Bc3NldE1hbmFnZXIuaCBiL2luY2x1ZGUvYW5kcm9pZGZ3L0Fzc2V0TWFuYWdlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTViNDVlLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYW5kcm9pZGZ3L0Fzc2V0TWFuYWdlci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0vLwotLy8gQXNzZXQgbWFuYWdlbWVudCBjbGFzcy4gIEFzc2V0TWFuYWdlciBvYmplY3RzIGFyZSB0aHJlYWQtc2FmZS4KLS8vCi0jaWZuZGVmIF9fTElCU19BU1NFVE1BTkFHRVJfSAotI2RlZmluZSBfX0xJQlNfQVNTRVRNQU5BR0VSX0gKLQotI2luY2x1ZGUgPGFuZHJvaWRmdy9Bc3NldC5oPgotI2luY2x1ZGUgPGFuZHJvaWRmdy9Bc3NldERpci5oPgotI2luY2x1ZGUgPGFuZHJvaWRmdy9aaXBGaWxlUk8uaD4KLSNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgotI2luY2x1ZGUgPHV0aWxzL1NvcnRlZFZlY3Rvci5oPgotI2luY2x1ZGUgPHV0aWxzL1N0cmluZzE2Lmg+Ci0jaW5jbHVkZSA8dXRpbHMvU3RyaW5nOC5oPgotI2luY2x1ZGUgPHV0aWxzL3RocmVhZHMuaD4KLSNpbmNsdWRlIDx1dGlscy9WZWN0b3IuaD4KLQotLyoKLSAqIE5hdGl2ZS1hcHAgYWNjZXNzIGlzIHZpYSB0aGUgb3BhcXVlIHR5cGVkZWYgc3RydWN0IEFBc3NldE1hbmFnZXIgaW4gdGhlIEMgbmFtZXNwYWNlLgotICovCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLXN0cnVjdCBBQXNzZXRNYW5hZ2VyIHsgfTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19OwotI2VuZGlmCi0KLQotLyoKLSAqIE5vdyB0aGUgcHJvcGVyIEMrKyBhbmRyb2lkLW5hbWVzcGFjZSBkZWZpbml0aW9ucwotICovCi0KLW5hbWVzcGFjZSBhbmRyb2lkIHsKLQotY2xhc3MgQXNzZXQ7ICAgICAgICAvLyBmd2QgZGVjbCBmb3IgdGhpbmdzIHRoYXQgaW5jbHVkZSBBc3NldC5oIGZpcnN0Ci1jbGFzcyBSZXNUYWJsZTsKLXN0cnVjdCBSZXNUYWJsZV9jb25maWc7Ci0KLS8qCi0gKiBFdmVyeSBhcHBsaWNhdGlvbiB0aGF0IHVzZXMgYXNzZXRzIG5lZWRzIG9uZSBpbnN0YW5jZSBvZiB0aGlzLiAgQQotICogc2luZ2xlIGluc3RhbmNlIG1heSBiZSBzaGFyZWQgYWNyb3NzIG11bHRpcGxlIHRocmVhZHMsIGFuZCBhIHNpbmdsZQotICogdGhyZWFkIG1heSBoYXZlIG1vcmUgdGhhbiBvbmUgaW5zdGFuY2UgKHRoZSBsYXR0ZXIgaXMgZGlzY291cmFnZWQpLgotICoKLSAqIFRoZSBwdXJwb3NlIG9mIHRoZSBBc3NldE1hbmFnZXIgaXMgdG8gY3JlYXRlIEFzc2V0IG9iamVjdHMuICBUbyBkbwotICogdGhpcyBlZmZpY2llbnRseSBpdCBtYXkgY2FjaGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2F0aW9ucyBvZgotICogZmlsZXMgaXQgaGFzIHNlZW4uICBUaGlzIGNhbiBiZSBjb250cm9sbGVkIHdpdGggdGhlICJjYWNoZU1vZGUiCi0gKiBhcmd1bWVudC4KLSAqCi0gKiBUaGUgYXNzZXQgaGllcmFyY2h5IG1heSBiZSBleGFtaW5lZCBsaWtlIGEgZmlsZXN5c3RlbSwgdXNpbmcKLSAqIEFzc2V0RGlyIG9iamVjdHMgdG8gcGVydXNlIGEgc2luZ2xlIGRpcmVjdG9yeS4KLSAqLwotY2xhc3MgQXNzZXRNYW5hZ2VyIDogcHVibGljIEFBc3NldE1hbmFnZXIgewotcHVibGljOgotICAgIHR5cGVkZWYgZW51bSBDYWNoZU1vZGUgewotICAgICAgICBDQUNIRV9VTktOT1dOID0gMCwKLSAgICAgICAgQ0FDSEVfT0ZGLCAgICAgICAgICAvLyBkb24ndCB0cnkgdG8gY2FjaGUgZmlsZSBsb2NhdGlvbnMKLSAgICAgICAgQ0FDSEVfREVGRVIsICAgICAgICAvLyBjb25zdHJ1Y3QgY2FjaGUgYXMgcGllY2VzIGFyZSBuZWVkZWQKLSAgICAgICAgLy9DQUNIRV9TQ0FOLCAgICAgICAgIC8vIHNjYW4gZnVsbCghKSBhc3NldCBoaWVyYXJjaHkgYXQgaW5pdCgpIHRpbWUKLSAgICB9IENhY2hlTW9kZTsKLQotICAgIEFzc2V0TWFuYWdlcihDYWNoZU1vZGUgY2FjaGVNb2RlID0gQ0FDSEVfT0ZGKTsKLSAgICB2aXJ0dWFsIH5Bc3NldE1hbmFnZXIodm9pZCk7Ci0KLSAgICBzdGF0aWMgaW50MzJfdCBnZXRHbG9iYWxDb3VudCgpOwotICAgIAotICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgKiBBZGQgYSBuZXcgc291cmNlIGZvciBhc3NldHMuICBUaGlzIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8KLSAgICAgKiBsb29rIGluIG11bHRpcGxlIHBsYWNlcyBmb3IgYXNzZXRzLiAgSXQgY2FuIGJlIGVpdGhlciBhIGRpcmVjdG9yeSAoZm9yCi0gICAgICogZmluZGluZyBhc3NldHMgYXMgcmF3IGZpbGVzIG9uIHRoZSBkaXNrKSBvciBhIFpJUCBmaWxlLiAgVGhpcyBuZXdseQotICAgICAqIGFkZGVkIGFzc2V0IHBhdGggd2lsbCBiZSBleGFtaW5lZCBmaXJzdCB3aGVuIHNlYXJjaGluZyBmb3IgYXNzZXRzLAotICAgICAqIGJlZm9yZSBhbnkgdGhhdCB3ZXJlIHByZXZpb3VzbHkgYWRkZWQuCi0gICAgICoKLSAgICAgKiBSZXR1cm5zICJ0cnVlIiBvbiBzdWNjZXNzLCAiZmFsc2UiIG9uIGZhaWx1cmUuICBJZiAnY29va2llJyBpcyBub24tTlVMTCwKLSAgICAgKiB0aGVuIG9uIHN1Y2Nlc3MsICpjb29raWUgaXMgc2V0IHRvIHRoZSB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZQotICAgICAqIG5ld2x5LWFkZGVkIGFzc2V0IHNvdXJjZS4KLSAgICAgKi8KLSAgICBib29sIGFkZEFzc2V0UGF0aChjb25zdCBTdHJpbmc4JiBwYXRoLCB2b2lkKiogY29va2llKTsKLQotICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgKiBDb252ZW5pZW5jZSBmb3IgYWRkaW5nIHRoZSBzdGFuZGFyZCBzeXN0ZW0gYXNzZXRzLiAgVXNlcyB0aGUKLSAgICAgKiBBTkRST0lEX1JPT1QgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gZmluZCB0aGVtLgotICAgICAqLwotICAgIGJvb2wgYWRkRGVmYXVsdEFzc2V0cygpOwotCi0gICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAqIEl0ZXJhdGUgb3ZlciB0aGUgYXNzZXQgcGF0aHMgaW4gdGhpcyBtYW5hZ2VyLiAgKFByZXZpb3VzbHkKLSAgICAgKiBhZGRlZCB2aWEgYWRkQXNzZXRQYXRoKCkgYW5kIGFkZERlZmF1bHRBc3NldHMoKS4pICBPbiBmaXJzdCBjYWxsLAotICAgICAqICdjb29raWUnIG11c3QgYmUgTlVMTCwgcmVzdWx0aW5nIGluIHRoZSBmaXJzdCBjb29raWUgYmVpbmcgcmV0dXJuZWQuCi0gICAgICogRWFjaCBuZXh0IGNvb2tpZSB3aWxsIGJlIHJldHVybmVkIHRoZXJlLWFmdGVyLCB1bnRpbCBOVUxMIGluZGljYXRpbmcKLSAgICAgKiB0aGUgZW5kIGhhcyBiZWVuIHJlYWNoZWQuCi0gICAgICovCi0gICAgdm9pZCogbmV4dEFzc2V0UGF0aCh2b2lkKiBjb29raWUpIGNvbnN0OwotCi0gICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAqIFJldHVybiBhbiBhc3NldCBwYXRoIGluIHRoZSBtYW5hZ2VyLiAgJ3doaWNoJyBtdXN0IGJlIGJldHdlZW4gMCBhbmQKLSAgICAgKiBjb3VudEFzc2V0UGF0aHMoKS4KLSAgICAgKi8KLSAgICBTdHJpbmc4IGdldEFzc2V0UGF0aCh2b2lkKiBjb29raWUpIGNvbnN0OwotCi0gICAgLyoKLSAgICAgKiBTZXQgdGhlIGN1cnJlbnQgbG9jYWxlIGFuZCB2ZW5kb3IuICBUaGUgbG9jYWxlIGNhbiBjaGFuZ2UgZHVyaW5nCi0gICAgICogdGhlIGxpZmV0aW1lIG9mIGFuIEFzc2V0TWFuYWdlciBpZiB0aGUgdXNlciB1cGRhdGVzIHRoZSBkZXZpY2UncwotICAgICAqIGxhbmd1YWdlIHNldHRpbmcuICBUaGUgdmVuZG9yIGlzIGxlc3MgbGlrZWx5IHRvIGNoYW5nZS4KLSAgICAgKgotICAgICAqIFBhc3MgaW4gTlVMTCB0byBpbmRpY2F0ZSBubyBwcmVmZXJlbmNlLgotICAgICAqLwotICAgIHZvaWQgc2V0TG9jYWxlKGNvbnN0IGNoYXIqIGxvY2FsZSk7Ci0gICAgdm9pZCBzZXRWZW5kb3IoY29uc3QgY2hhciogdmVuZG9yKTsKLQotICAgIC8qCi0gICAgICogQ2hvb3NlIHNjcmVlbiBvcmllbnRhdGlvbiBmb3IgcmVzb3VyY2VzIHZhbHVlcyByZXR1cm5lZC4KLSAgICAgKi8KLSAgICB2b2lkIHNldENvbmZpZ3VyYXRpb24oY29uc3QgUmVzVGFibGVfY29uZmlnJiBjb25maWcsIGNvbnN0IGNoYXIqIGxvY2FsZSA9IE5VTEwpOwotCi0gICAgdm9pZCBnZXRDb25maWd1cmF0aW9uKFJlc1RhYmxlX2NvbmZpZyogb3V0Q29uZmlnKSBjb25zdDsKLQotICAgIHR5cGVkZWYgQXNzZXQ6OkFjY2Vzc01vZGUgQWNjZXNzTW9kZTsgICAgICAgLy8gdHlwaW5nIHNob3J0Y3V0Ci0KLSAgICAvKgotICAgICAqIE9wZW4gYW4gYXNzZXQuCi0gICAgICoKLSAgICAgKiBUaGlzIHdpbGwgc2VhcmNoIHRocm91Z2ggbG9jYWxlLXNwZWNpZmljIGFuZCB2ZW5kb3Itc3BlY2lmaWMKLSAgICAgKiBkaXJlY3RvcmllcyBhbmQgcGFja2FnZXMgdG8gZmluZCB0aGUgZmlsZS4KLSAgICAgKgotICAgICAqIFRoZSBvYmplY3QgcmV0dXJuZWQgZG9lcyBub3QgZGVwZW5kIG9uIHRoZSBBc3NldE1hbmFnZXIuICBJdCBzaG91bGQKLSAgICAgKiBiZSBmcmVlZCBieSBjYWxsaW5nIEFzc2V0OjpjbG9zZSgpLgotICAgICAqLwotICAgIEFzc2V0KiBvcGVuKGNvbnN0IGNoYXIqIGZpbGVOYW1lLCBBY2Nlc3NNb2RlIG1vZGUpOwotCi0gICAgLyoKLSAgICAgKiBPcGVuIGEgbm9uLWFzc2V0IGZpbGUgYXMgYW4gYXNzZXQuCi0gICAgICoKLSAgICAgKiBUaGlzIGlzIGZvciBvcGVuaW5nIGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIGFuIGFzc2V0IHBhY2thZ2UKLSAgICAgKiBidXQgYXJlbid0IGFzc2V0cy4gIFRoZXNlIHNpdCBvdXRzaWRlIHRoZSB1c3VhbCAibG9jYWxlL3ZlbmRvciIKLSAgICAgKiBwYXRoIGhpZXJhcmNoeSwgYW5kIHdpbGwgbm90IGJlIHNlZW4gYnkgIkFzc2V0RGlyIiBvciBpbmNsdWRlZAotICAgICAqIGluIG91ciBmaWxlbmFtZSBjYWNoZS4KLSAgICAgKi8KLSAgICBBc3NldCogb3Blbk5vbkFzc2V0KGNvbnN0IGNoYXIqIGZpbGVOYW1lLCBBY2Nlc3NNb2RlIG1vZGUpOwotCi0gICAgLyoKLSAgICAgKiBFeHBsaWNpdCBub24tYXNzZXQgZmlsZS4gIFRoZSBmaWxlIGV4cGxpY2l0bHkgbmFtZWQgYnkgdGhlIGNvb2tpZSAodGhlCi0gICAgICogcmVzb3VyY2Ugc2V0IHRvIGxvb2sgaW4pIGFuZCBmaWxlTmFtZSB3aWxsIGJlIG9wZW5lZCBhbmQgcmV0dXJuZWQuCi0gICAgICovCi0gICAgQXNzZXQqIG9wZW5Ob25Bc3NldCh2b2lkKiBjb29raWUsIGNvbnN0IGNoYXIqIGZpbGVOYW1lLCBBY2Nlc3NNb2RlIG1vZGUpOwotCi0gICAgLyoKLSAgICAgKiBPcGVuIGEgZGlyZWN0b3J5IHdpdGhpbiB0aGUgYXNzZXQgaGllcmFyY2h5LgotICAgICAqCi0gICAgICogVGhlIGNvbnRlbnRzIG9mIHRoZSBkaXJlY3RvcnkgYXJlIGFuIGFtYWxnYW0gb2YgdmVuZG9yLXNwZWNpZmljLAotICAgICAqIGxvY2FsZS1zcGVjaWZpYywgYW5kIGdlbmVyaWMgYXNzZXRzIHN0b3JlZCBsb29zZWx5IG9yIGluIGFzc2V0Ci0gICAgICogcGFja2FnZXMuICBEZXBlbmRpbmcgb24gdGhlIGNhY2hlIHNldHRpbmcgYW5kIHByZXZpb3VzIGFjY2Vzc2VzLAotICAgICAqIHRoaXMgY2FsbCBtYXkgaW5jdXIgc2lnbmlmaWNhbnQgZGlzayBvdmVyaGVhZC4KLSAgICAgKgotICAgICAqIFRvIG9wZW4gdGhlIHRvcC1sZXZlbCBkaXJlY3RvcnksIHBhc3MgaW4gIiIuCi0gICAgICovCi0gICAgQXNzZXREaXIqIG9wZW5EaXIoY29uc3QgY2hhciogZGlyTmFtZSk7Ci0KLSAgICAvKgotICAgICAqIE9wZW4gYSBkaXJlY3Rvcnkgd2l0aGluIGEgcGFydGljdWxhciBwYXRoIG9mIHRoZSBhc3NldCBtYW5hZ2VyLgotICAgICAqCi0gICAgICogVGhlIGNvbnRlbnRzIG9mIHRoZSBkaXJlY3RvcnkgYXJlIGFuIGFtYWxnYW0gb2YgdmVuZG9yLXNwZWNpZmljLAotICAgICAqIGxvY2FsZS1zcGVjaWZpYywgYW5kIGdlbmVyaWMgYXNzZXRzIHN0b3JlZCBsb29zZWx5IG9yIGluIGFzc2V0Ci0gICAgICogcGFja2FnZXMuICBEZXBlbmRpbmcgb24gdGhlIGNhY2hlIHNldHRpbmcgYW5kIHByZXZpb3VzIGFjY2Vzc2VzLAotICAgICAqIHRoaXMgY2FsbCBtYXkgaW5jdXIgc2lnbmlmaWNhbnQgZGlzayBvdmVyaGVhZC4KLSAgICAgKgotICAgICAqIFRvIG9wZW4gdGhlIHRvcC1sZXZlbCBkaXJlY3RvcnksIHBhc3MgaW4gIiIuCi0gICAgICovCi0gICAgQXNzZXREaXIqIG9wZW5Ob25Bc3NldERpcih2b2lkKiBjb29raWUsIGNvbnN0IGNoYXIqIGRpck5hbWUpOwotCi0gICAgLyoKLSAgICAgKiBHZXQgdGhlIHR5cGUgb2YgYSBmaWxlIGluIHRoZSBhc3NldCBoaWVyYXJjaHkuICBUaGV5IHdpbGwgZWl0aGVyCi0gICAgICogYmUgInJlZ3VsYXIiIG9yICJkaXJlY3RvcnkiLiAgW0N1cnJlbnRseSBvbmx5IHdvcmtzIGZvciAicmVndWxhciIuXQotICAgICAqCi0gICAgICogQ2FuIGFsc28gYmUgdXNlZCBhcyBhIHF1aWNrIHRlc3QgZm9yIGV4aXN0ZW5jZSBvZiBhIGZpbGUuCi0gICAgICovCi0gICAgRmlsZVR5cGUgZ2V0RmlsZVR5cGUoY29uc3QgY2hhciogZmlsZU5hbWUpOwotCi0gICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAqIFJldHVybiB0aGUgY29tcGxldGUgcmVzb3VyY2UgdGFibGUgdG8gZmluZCB0aGluZ3MgaW4gdGhlIHBhY2thZ2UuCi0gICAgICovCi0gICAgY29uc3QgUmVzVGFibGUmIGdldFJlc291cmNlcyhib29sIHJlcXVpcmVkID0gdHJ1ZSkgY29uc3Q7Ci0KLSAgICAvKgotICAgICAqIERpc2NhcmQgY2FjaGVkIGZpbGVuYW1lIGluZm9ybWF0aW9uLiAgVGhpcyBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZAotICAgICAqIGlmIHNvbWVib2R5IGhhcyB1cGRhdGVkIHRoZSBzZXQgb2YgImxvb3NlIiBmaWxlcywgYW5kIHdlIHdhbnQgdG8KLSAgICAgKiBkaXNjYXJkIG91ciBjYWNoZWQgbm90aW9uIG9mIHdoYXQncyB3aGVyZS4KLSAgICAgKi8KLSAgICB2b2lkIHB1cmdlKHZvaWQpIHsgcHVyZ2VGaWxlTmFtZUNhY2hlTG9ja2VkKCk7IH0KLQotICAgIC8qCi0gICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGZpbGVzIHRoaXMgQXNzZXRNYW5hZ2VyIHJlZmVyZW5jZXMgYXJlIGFsbAotICAgICAqIHVwLXRvLWRhdGUgKGhhdmUgbm90IGJlZW4gY2hhbmdlZCBzaW5jZSBpdCB3YXMgY3JlYXRlZCkuICBJZiBmYWxzZQotICAgICAqIGlzIHJldHVybmVkLCB5b3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBBc3NldE1hbmFnZXIgdG8gZ2V0Ci0gICAgICogdGhlIGN1cnJlbnQgZGF0YS4KLSAgICAgKi8KLSAgICBib29sIGlzVXBUb0RhdGUoKTsKLSAgICAKLSAgICAvKioKLSAgICAgKiBHZXQgdGhlIGtub3duIGxvY2FsZXMgZm9yIHRoaXMgYXNzZXQgbWFuYWdlciBvYmplY3QuCi0gICAgICovCi0gICAgdm9pZCBnZXRMb2NhbGVzKFZlY3RvcjxTdHJpbmc4PiogbG9jYWxlcykgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgc3RydWN0IGFzc2V0X3BhdGgKLSAgICB7Ci0gICAgICAgIFN0cmluZzggcGF0aDsKLSAgICAgICAgRmlsZVR5cGUgdHlwZTsKLSAgICAgICAgU3RyaW5nOCBpZG1hcDsKLSAgICB9OwotCi0gICAgQXNzZXQqIG9wZW5JblBhdGhMb2NrZWQoY29uc3QgY2hhciogZmlsZU5hbWUsIEFjY2Vzc01vZGUgbW9kZSwKLSAgICAgICAgY29uc3QgYXNzZXRfcGF0aCYgcGF0aCk7Ci0gICAgQXNzZXQqIG9wZW5Ob25Bc3NldEluUGF0aExvY2tlZChjb25zdCBjaGFyKiBmaWxlTmFtZSwgQWNjZXNzTW9kZSBtb2RlLAotICAgICAgICBjb25zdCBhc3NldF9wYXRoJiBwYXRoKTsKLSAgICBBc3NldCogb3BlbkluTG9jYWxlVmVuZG9yTG9ja2VkKGNvbnN0IGNoYXIqIGZpbGVOYW1lLCBBY2Nlc3NNb2RlIG1vZGUsCi0gICAgICAgIGNvbnN0IGFzc2V0X3BhdGgmIHBhdGgsIGNvbnN0IGNoYXIqIGxvY2FsZSwgY29uc3QgY2hhciogdmVuZG9yKTsKLSAgICBTdHJpbmc4IGNyZWF0ZVBhdGhOYW1lTG9ja2VkKGNvbnN0IGFzc2V0X3BhdGgmIHBhdGgsIGNvbnN0IGNoYXIqIGxvY2FsZSwKLSAgICAgICAgY29uc3QgY2hhciogdmVuZG9yKTsKLSAgICBTdHJpbmc4IGNyZWF0ZVBhdGhOYW1lTG9ja2VkKGNvbnN0IGFzc2V0X3BhdGgmIHBhdGgsIGNvbnN0IGNoYXIqIHJvb3REaXIpOwotICAgIFN0cmluZzggY3JlYXRlWmlwU291cmNlTmFtZUxvY2tlZChjb25zdCBTdHJpbmc4JiB6aXBGaWxlTmFtZSwKLSAgICAgICAgY29uc3QgU3RyaW5nOCYgZGlyTmFtZSwgY29uc3QgU3RyaW5nOCYgZmlsZU5hbWUpOwotCi0gICAgWmlwRmlsZVJPKiBnZXRaaXBGaWxlTG9ja2VkKGNvbnN0IGFzc2V0X3BhdGgmIHBhdGgpOwotICAgIEFzc2V0KiBvcGVuQXNzZXRGcm9tRmlsZUxvY2tlZChjb25zdCBTdHJpbmc4JiBmaWxlTmFtZSwgQWNjZXNzTW9kZSBtb2RlKTsKLSAgICBBc3NldCogb3BlbkFzc2V0RnJvbVppcExvY2tlZChjb25zdCBaaXBGaWxlUk8qIHBaaXBGaWxlLAotICAgICAgICBjb25zdCBaaXBFbnRyeVJPIGVudHJ5LCBBY2Nlc3NNb2RlIG1vZGUsIGNvbnN0IFN0cmluZzgmIGVudHJ5TmFtZSk7Ci0KLSAgICBib29sIHNjYW5BbmRNZXJnZURpckxvY2tlZChTb3J0ZWRWZWN0b3I8QXNzZXREaXI6OkZpbGVJbmZvPiogcE1lcmdlZEluZm8sCi0gICAgICAgIGNvbnN0IGFzc2V0X3BhdGgmIHBhdGgsIGNvbnN0IGNoYXIqIHJvb3REaXIsIGNvbnN0IGNoYXIqIGRpck5hbWUpOwotICAgIFNvcnRlZFZlY3RvcjxBc3NldERpcjo6RmlsZUluZm8+KiBzY2FuRGlyTG9ja2VkKGNvbnN0IFN0cmluZzgmIHBhdGgpOwotICAgIGJvb2wgc2NhbkFuZE1lcmdlWmlwTG9ja2VkKFNvcnRlZFZlY3RvcjxBc3NldERpcjo6RmlsZUluZm8+KiBwTWVyZ2VkSW5mbywKLSAgICAgICAgY29uc3QgYXNzZXRfcGF0aCYgcGF0aCwgY29uc3QgY2hhciogcm9vdERpciwgY29uc3QgY2hhciogZGlyTmFtZSk7Ci0gICAgdm9pZCBtZXJnZUluZm9Mb2NrZWQoU29ydGVkVmVjdG9yPEFzc2V0RGlyOjpGaWxlSW5mbz4qIHBNZXJnZWRJbmZvLAotICAgICAgICBjb25zdCBTb3J0ZWRWZWN0b3I8QXNzZXREaXI6OkZpbGVJbmZvPiogcENvbnRlbnRzKTsKLQotICAgIHZvaWQgbG9hZEZpbGVOYW1lQ2FjaGVMb2NrZWQodm9pZCk7Ci0gICAgdm9pZCBmbmNTY2FuTG9ja2VkKFNvcnRlZFZlY3RvcjxBc3NldERpcjo6RmlsZUluZm8+KiBwTWVyZ2VkSW5mbywKLSAgICAgICAgY29uc3QgY2hhciogZGlyTmFtZSk7Ci0gICAgYm9vbCBmbmNTY2FuQW5kTWVyZ2VEaXJMb2NrZWQoCi0gICAgICAgIFNvcnRlZFZlY3RvcjxBc3NldERpcjo6RmlsZUluZm8+KiBwTWVyZ2VkSW5mbywKLSAgICAgICAgY29uc3QgYXNzZXRfcGF0aCYgcGF0aCwgY29uc3QgY2hhciogbG9jYWxlLCBjb25zdCBjaGFyKiB2ZW5kb3IsCi0gICAgICAgIGNvbnN0IGNoYXIqIGRpck5hbWUpOwotICAgIHZvaWQgcHVyZ2VGaWxlTmFtZUNhY2hlTG9ja2VkKHZvaWQpOwotCi0gICAgY29uc3QgUmVzVGFibGUqIGdldFJlc1RhYmxlKGJvb2wgcmVxdWlyZWQgPSB0cnVlKSBjb25zdDsKLSAgICB2b2lkIHNldExvY2FsZUxvY2tlZChjb25zdCBjaGFyKiBsb2NhbGUpOwotICAgIHZvaWQgdXBkYXRlUmVzb3VyY2VQYXJhbXNMb2NrZWQoKSBjb25zdDsKLQotICAgIGJvb2wgY3JlYXRlSWRtYXBGaWxlTG9ja2VkKGNvbnN0IFN0cmluZzgmIG9yaWdpbmFsUGF0aCwgY29uc3QgU3RyaW5nOCYgb3ZlcmxheVBhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nOCYgaWRtYXBQYXRoKTsKLQotICAgIGJvb2wgaXNJZG1hcFN0YWxlTG9ja2VkKGNvbnN0IFN0cmluZzgmIG9yaWdpbmFsUGF0aCwgY29uc3QgU3RyaW5nOCYgb3ZlcmxheVBhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nOCYgaWRtYXBQYXRoKTsKLQotICAgIEFzc2V0KiBvcGVuSWRtYXBMb2NrZWQoY29uc3Qgc3RydWN0IGFzc2V0X3BhdGgmIGFwKSBjb25zdDsKLQotICAgIGJvb2wgZ2V0WmlwRW50cnlDcmNMb2NrZWQoY29uc3QgU3RyaW5nOCYgemlwUGF0aCwgY29uc3QgY2hhciogZW50cnlGaWxlbmFtZSwgdWludDMyX3QqIHBDcmMpOwotCi0gICAgY2xhc3MgU2hhcmVkWmlwIDogcHVibGljIFJlZkJhc2UgewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIHNwPFNoYXJlZFppcD4gZ2V0KGNvbnN0IFN0cmluZzgmIHBhdGgpOwotCi0gICAgICAgIFppcEZpbGVSTyogZ2V0WmlwKCk7Ci0KLSAgICAgICAgQXNzZXQqIGdldFJlc291cmNlVGFibGVBc3NldCgpOwotICAgICAgICBBc3NldCogc2V0UmVzb3VyY2VUYWJsZUFzc2V0KEFzc2V0KiBhc3NldCk7Ci0KLSAgICAgICAgUmVzVGFibGUqIGdldFJlc291cmNlVGFibGUoKTsKLSAgICAgICAgUmVzVGFibGUqIHNldFJlc291cmNlVGFibGUoUmVzVGFibGUqIHJlcyk7Ci0gICAgICAgIAotICAgICAgICBib29sIGlzVXBUb0RhdGUoKTsKLSAgICAgICAgCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB+U2hhcmVkWmlwKCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBTaGFyZWRaaXAoY29uc3QgU3RyaW5nOCYgcGF0aCwgdGltZV90IG1vZFdoZW4pOwotICAgICAgICBTaGFyZWRaaXAoKTsgLy8gPC0tIG5vdCBpbXBsZW1lbnRlZAotCi0gICAgICAgIFN0cmluZzggbVBhdGg7Ci0gICAgICAgIFppcEZpbGVSTyogbVppcEZpbGU7Ci0gICAgICAgIHRpbWVfdCBtTW9kV2hlbjsKLQotICAgICAgICBBc3NldCogbVJlc291cmNlVGFibGVBc3NldDsKLSAgICAgICAgUmVzVGFibGUqIG1SZXNvdXJjZVRhYmxlOwotCi0gICAgICAgIHN0YXRpYyBNdXRleCBnTG9jazsKLSAgICAgICAgc3RhdGljIERlZmF1bHRLZXllZFZlY3RvcjxTdHJpbmc4LCB3cDxTaGFyZWRaaXA+ID4gZ09wZW47Ci0gICAgfTsKLQotICAgIC8qCi0gICAgICogTWFuYWdlIGEgc2V0IG9mIFppcCBmaWxlcy4gIEZvciBlYWNoIGZpbGUgd2UgbmVlZCBhIHBvaW50ZXIgdG8gdGhlCi0gICAgICogWmlwRmlsZSBhbmQgYSB0aW1lX3Qgd2l0aCB0aGUgZmlsZSdzIG1vZGlmaWNhdGlvbiBkYXRlLgotICAgICAqCi0gICAgICogV2UgY3VycmVudGx5IG9ubHkgaGF2ZSB0d28gemlwIGZpbGVzIChjdXJyZW50IGFwcCwgImNvbW1vbiIgYXBwKS4KLSAgICAgKiAoVGhpcyB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGZvciA4LCBiYXNlZCBvbiBhcHAvbG9jYWxlL3ZlbmRvci4pCi0gICAgICovCi0gICAgY2xhc3MgWmlwU2V0IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFppcFNldCh2b2lkKTsKLSAgICAgICAgflppcFNldCh2b2lkKTsKLQotICAgICAgICAvKgotICAgICAgICAgKiBSZXR1cm4gYSBaaXBGaWxlUk8gc3RydWN0dXJlIGZvciBhIFppcEZpbGVSTyB3aXRoIHRoZSBzcGVjaWZpZWQKLSAgICAgICAgICogcGFyYW1ldGVycy4KLSAgICAgICAgICovCi0gICAgICAgIFppcEZpbGVSTyogZ2V0WmlwKGNvbnN0IFN0cmluZzgmIHBhdGgpOwotCi0gICAgICAgIEFzc2V0KiBnZXRaaXBSZXNvdXJjZVRhYmxlQXNzZXQoY29uc3QgU3RyaW5nOCYgcGF0aCk7Ci0gICAgICAgIEFzc2V0KiBzZXRaaXBSZXNvdXJjZVRhYmxlQXNzZXQoY29uc3QgU3RyaW5nOCYgcGF0aCwgQXNzZXQqIGFzc2V0KTsKLQotICAgICAgICBSZXNUYWJsZSogZ2V0WmlwUmVzb3VyY2VUYWJsZShjb25zdCBTdHJpbmc4JiBwYXRoKTsKLSAgICAgICAgUmVzVGFibGUqIHNldFppcFJlc291cmNlVGFibGUoY29uc3QgU3RyaW5nOCYgcGF0aCwgUmVzVGFibGUqIHJlcyk7Ci0KLSAgICAgICAgLy8gZ2VuZXJhdGUgcGF0aCwgZS5nLiAiY29tbW9uL2VuLVVTLW5vb2dsZS56aXAiCi0gICAgICAgIHN0YXRpYyBTdHJpbmc4IGdldFBhdGhOYW1lKGNvbnN0IGNoYXIqIHBhdGgpOwotCi0gICAgICAgIGJvb2wgaXNVcFRvRGF0ZSgpOwotICAgICAgICAKLSAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGNsb3NlWmlwKGludCBpZHgpOwotCi0gICAgICAgIGludCBnZXRJbmRleChjb25zdCBTdHJpbmc4JiB6aXApIGNvbnN0OwotICAgICAgICBtdXRhYmxlIFZlY3RvcjxTdHJpbmc4PiBtWmlwUGF0aDsKLSAgICAgICAgbXV0YWJsZSBWZWN0b3I8c3A8U2hhcmVkWmlwPiA+IG1aaXBGaWxlOwotICAgIH07Ci0KLSAgICAvLyBQcm90ZWN0IGFsbCBpbnRlcm5hbCBzdGF0ZS4KLSAgICBtdXRhYmxlIE11dGV4ICAgbUxvY2s7Ci0KLSAgICBaaXBTZXQgICAgICAgICAgbVppcFNldDsKLQotICAgIFZlY3Rvcjxhc3NldF9wYXRoPiBtQXNzZXRQYXRoczsKLSAgICBjaGFyKiAgICAgICAgICAgbUxvY2FsZTsKLSAgICBjaGFyKiAgICAgICAgICAgbVZlbmRvcjsKLQotICAgIG11dGFibGUgUmVzVGFibGUqIG1SZXNvdXJjZXM7Ci0gICAgUmVzVGFibGVfY29uZmlnKiBtQ29uZmlnOwotCi0gICAgLyoKLSAgICAgKiBDYWNoZWQgZGF0YSBmb3IgImxvb3NlIiBmaWxlcy4gIFRoaXMgbGV0cyB1cyBhdm9pZCBwb2tpbmcgYXQgdGhlCi0gICAgICogZmlsZXN5c3RlbSB3aGVuIHNlYXJjaGluZyBmb3IgbG9vc2UgYXNzZXRzLiAgRWFjaCBlbnRyeSBpcyB0aGUKLSAgICAgKiAiZXh0ZW5kZWQgcGFydGlhbCIgcGF0aCwgZS5nLiAiZGVmYXVsdC9kZWZhdWx0L2Zvby9iYXIudHh0Ii4gIFRoZQotICAgICAqIGZ1bGwgc2V0IG9mIGZpbGVzIGlzIHByZXNlbnQsIGluY2x1ZGluZyAiLkVYQ0xVREUiIGVudHJpZXMuCi0gICAgICoKLSAgICAgKiBXZSBkbyBub3QgY2FjaGUgZGlyZWN0b3J5IG5hbWVzLiAgV2UgZG9uJ3QgcmV0YWluIHRoZSAiLmd6IiwKLSAgICAgKiBiZWNhdXNlIHRvIG91ciBjbGllbnRzICJmb28iIGFuZCAiZm9vLmd6IiBib3RoIGxvb2sgbGlrZSAiZm9vIi4KLSAgICAgKi8KLSAgICBDYWNoZU1vZGUgICAgICAgbUNhY2hlTW9kZTsgICAgICAgICAvLyBpcyB0aGUgY2FjaGUgZW5hYmxlZD8KLSAgICBib29sICAgICAgICAgICAgbUNhY2hlVmFsaWQ7ICAgICAgICAvLyBjbGVhciB3aGVuIGxvY2FsZSBvciB2ZW5kb3IgY2hhbmdlcwotICAgIFNvcnRlZFZlY3RvcjxBc3NldERpcjo6RmlsZUluZm8+IG1DYWNoZTsKLX07Ci0KLX07IC8vIG5hbWVzcGFjZSBhbmRyb2lkCi0KLSNlbmRpZiAvLyBfX0xJQlNfQVNTRVRNQU5BR0VSX0gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5kcm9pZGZ3L0JhY2t1cEhlbHBlcnMuaCBiL2luY2x1ZGUvYW5kcm9pZGZ3L0JhY2t1cEhlbHBlcnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWJiMDRhNy4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FuZHJvaWRmdy9CYWNrdXBIZWxwZXJzLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNpZm5kZWYgX1VUSUxTX0JBQ0tVUF9IRUxQRVJTX0gKLSNkZWZpbmUgX1VUSUxTX0JBQ0tVUF9IRUxQRVJTX0gKLQotI2luY2x1ZGUgPHV0aWxzL0Vycm9ycy5oPgotI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KLSNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgotCi1uYW1lc3BhY2UgYW5kcm9pZCB7Ci0KLWVudW0gewotICAgIEJBQ0tVUF9IRUFERVJfRU5USVRZX1YxID0gMHg2MTc0NjE0NCwgLy8gRGF0YSAobGl0dGxlIGVuZGlhbikKLX07Ci0KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBpbnQgdHlwZTsgLy8gQkFDS1VQX0hFQURFUl9FTlRJVFlfVjEKLSAgICBpbnQga2V5TGVuOyAvLyBsZW5ndGggb2YgdGhlIGtleSBuYW1lLCBub3QgaW5jbHVkaW5nIHRoZSBudWxsIHRlcm1pbmF0b3IKLSAgICBpbnQgZGF0YVNpemU7IC8vIHNpemUgb2YgdGhlIGRhdGEsIG5vdCBpbmNsdWRpbmcgdGhlIHBhZGRpbmcsIC0xIG1lYW5zIGRlbGV0ZQotfSBlbnRpdHlfaGVhZGVyX3YxOwotCi1zdHJ1Y3QgU25hcHNob3RIZWFkZXIgewotICAgIGludCBtYWdpYzA7Ci0gICAgaW50IGZpbGVDb3VudDsKLSAgICBpbnQgbWFnaWMxOwotICAgIGludCB0b3RhbFNpemU7Ci19OwotCi1zdHJ1Y3QgRmlsZVN0YXRlIHsKLSAgICBpbnQgbW9kVGltZV9zZWM7Ci0gICAgaW50IG1vZFRpbWVfbnNlYzsKLSAgICBpbnQgbW9kZTsKLSAgICBpbnQgc2l6ZTsKLSAgICBpbnQgY3JjMzI7Ci0gICAgaW50IG5hbWVMZW47Ci19OwotCi1zdHJ1Y3QgRmlsZVJlYyB7Ci0gICAgU3RyaW5nOCBmaWxlOwotICAgIGJvb2wgZGVsZXRlZDsKLSAgICBGaWxlU3RhdGUgczsKLX07Ci0KLQotLyoqCi0gKiBXcml0ZXMgdGhlIGRhdGEuCi0gKgotICogSWYgYW4gZXJyb3Igb2NjdXJzLCBpdCBwb2lzb25zIHRoaXMgb2JqZWN0IGFuZCBhbGwgd3JpdGUgY2FsbHMgd2lsbCBmYWlsCi0gKiB3aXRoIHRoZSBlcnJvciB0aGF0IG9jY3VycmVkLgotICovCi1jbGFzcyBCYWNrdXBEYXRhV3JpdGVyCi17Ci1wdWJsaWM6Ci0gICAgQmFja3VwRGF0YVdyaXRlcihpbnQgZmQpOwotICAgIC8vIGRvZXMgbm90IGNsb3NlIGZkCi0gICAgfkJhY2t1cERhdGFXcml0ZXIoKTsKLQotICAgIHN0YXR1c190IFdyaXRlRW50aXR5SGVhZGVyKGNvbnN0IFN0cmluZzgmIGtleSwgc2l6ZV90IGRhdGFTaXplKTsKLQotICAgIC8qIE5vdGU6IFdyaXRlRW50aXR5RGF0YSB3aWxsIHdyaXRlIGFyYml0cmFyeSBkYXRhIGludG8gdGhlIGZpbGUgd2l0aG91dAotICAgICAqIHZhbGlkYXRpb24gb3IgYSBwcmV2aW91c2x5LXN1cHBsaWVkIGhlYWRlci4gIFRoZSBmdWxsIGJhY2t1cCBpbXBsZW1lbnRhdGlvbgotICAgICAqIHVzZXMgaXQgdGhpcyB3YXkgdG8gZ2VuZXJhdGUgYSBjb250cm9sbGVkIGJpbmFyeSBzdHJlYW0gdGhhdCBpcyBub3QKLSAgICAgKiBlbnRpdHktc3RydWN0dXJlZC4gIElmIHRoZSBpbXBsZW1lbnRhdGlvbiBoZXJlIGlzIGNoYW5nZWQsIGVpdGhlciB0aGlzCi0gICAgICogdXNlIGNhc2UgbXVzdCByZW1haW4gdmFsaWQsIG9yIHRoZSBmdWxsIGJhY2t1cCBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUKLSAgICAgKiBhZGp1c3RlZCB0byB1c2Ugc29tZSBvdGhlciBhcHByb3ByaWF0ZSBtZWNoYW5pc20uCi0gICAgICovCi0gICAgc3RhdHVzX3QgV3JpdGVFbnRpdHlEYXRhKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBzaXplKTsKLQotICAgIHZvaWQgU2V0S2V5UHJlZml4KGNvbnN0IFN0cmluZzgmIGtleVByZWZpeCk7Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgQmFja3VwRGF0YVdyaXRlcigpOwotICAgIHN0YXR1c190IHdyaXRlX3BhZGRpbmdfZm9yKGludCBuKTsKLSAgICAKLSAgICBpbnQgbV9mZDsKLSAgICBzdGF0dXNfdCBtX3N0YXR1czsKLSAgICBzc2l6ZV90IG1fcG9zOwotICAgIGludCBtX2VudGl0eUNvdW50OwotICAgIFN0cmluZzggbV9rZXlQcmVmaXg7Ci19OwotCi0vKioKLSAqIFJlYWRzIHRoZSBkYXRhLgotICoKLSAqIElmIGFuIGVycm9yIG9jY3VycywgaXQgcG9pc29ucyB0aGlzIG9iamVjdCBhbmQgYWxsIHdyaXRlIGNhbGxzIHdpbGwgZmFpbAotICogd2l0aCB0aGUgZXJyb3IgdGhhdCBvY2N1cnJlZC4KLSAqLwotY2xhc3MgQmFja3VwRGF0YVJlYWRlcgotewotcHVibGljOgotICAgIEJhY2t1cERhdGFSZWFkZXIoaW50IGZkKTsKLSAgICAvLyBkb2VzIG5vdCBjbG9zZSBmZAotICAgIH5CYWNrdXBEYXRhUmVhZGVyKCk7Ci0KLSAgICBzdGF0dXNfdCBTdGF0dXMoKTsKLSAgICBzdGF0dXNfdCBSZWFkTmV4dEhlYWRlcihib29sKiBkb25lLCBpbnQqIHR5cGUpOwotCi0gICAgYm9vbCBIYXNFbnRpdGllcygpOwotICAgIHN0YXR1c190IFJlYWRFbnRpdHlIZWFkZXIoU3RyaW5nOCoga2V5LCBzaXplX3QqIGRhdGFTaXplKTsKLSAgICBzdGF0dXNfdCBTa2lwRW50aXR5RGF0YSgpOyAvLyBtdXN0IGJlIGNhbGxlZCB3aXRoIHRoZSBwb2ludGVyIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRhdGEuCi0gICAgc3NpemVfdCBSZWFkRW50aXR5RGF0YSh2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSk7Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgQmFja3VwRGF0YVJlYWRlcigpOwotICAgIHN0YXR1c190IHNraXBfcGFkZGluZygpOwotICAgIAotICAgIGludCBtX2ZkOwotICAgIGJvb2wgbV9kb25lOwotICAgIHN0YXR1c190IG1fc3RhdHVzOwotICAgIHNzaXplX3QgbV9wb3M7Ci0gICAgc3NpemVfdCBtX2RhdGFFbmRQb3M7Ci0gICAgaW50IG1fZW50aXR5Q291bnQ7Ci0gICAgdW5pb24gewotICAgICAgICBpbnQgdHlwZTsKLSAgICAgICAgZW50aXR5X2hlYWRlcl92MSBlbnRpdHk7Ci0gICAgfSBtX2hlYWRlcjsKLSAgICBTdHJpbmc4IG1fa2V5OwotfTsKLQotaW50IGJhY2tfdXBfZmlsZXMoaW50IG9sZFNuYXBzaG90RkQsIEJhY2t1cERhdGFXcml0ZXIqIGRhdGFTdHJlYW0sIGludCBuZXdTbmFwc2hvdEZELAotICAgICAgICBjaGFyIGNvbnN0KiBjb25zdCogZmlsZXMsIGNoYXIgY29uc3QqIGNvbnN0ICprZXlzLCBpbnQgZmlsZUNvdW50KTsKLQotaW50IHdyaXRlX3RhcmZpbGUoY29uc3QgU3RyaW5nOCYgcGFja2FnZU5hbWUsIGNvbnN0IFN0cmluZzgmIGRvbWFpbiwKLSAgICAgICAgY29uc3QgU3RyaW5nOCYgcm9vdFBhdGgsIGNvbnN0IFN0cmluZzgmIGZpbGVQYXRoLCBCYWNrdXBEYXRhV3JpdGVyKiBvdXRwdXRTdHJlYW0pOwotCi1jbGFzcyBSZXN0b3JlSGVscGVyQmFzZQotewotcHVibGljOgotICAgIFJlc3RvcmVIZWxwZXJCYXNlKCk7Ci0gICAgflJlc3RvcmVIZWxwZXJCYXNlKCk7Ci0KLSAgICBzdGF0dXNfdCBXcml0ZUZpbGUoY29uc3QgU3RyaW5nOCYgZmlsZW5hbWUsIEJhY2t1cERhdGFSZWFkZXIqIGluKTsKLSAgICBzdGF0dXNfdCBXcml0ZVNuYXBzaG90KGludCBmZCk7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCogbV9idWY7Ci0gICAgYm9vbCBtX2xvZ2dlZFVua25vd25NZXRhZGF0YTsKLSAgICBLZXllZFZlY3RvcjxTdHJpbmc4LEZpbGVSZWM+IG1fZmlsZXM7Ci19OwotCi0jZGVmaW5lIFRFU1RfQkFDS1VQX0hFTFBFUlMgMQotCi0jaWYgVEVTVF9CQUNLVVBfSEVMUEVSUwotaW50IGJhY2t1cF9oZWxwZXJfdGVzdF9lbXB0eSgpOwotaW50IGJhY2t1cF9oZWxwZXJfdGVzdF9mb3VyKCk7Ci1pbnQgYmFja3VwX2hlbHBlcl90ZXN0X2ZpbGVzKCk7Ci1pbnQgYmFja3VwX2hlbHBlcl90ZXN0X251bGxfYmFzZSgpOwotaW50IGJhY2t1cF9oZWxwZXJfdGVzdF9taXNzaW5nX2ZpbGUoKTsKLWludCBiYWNrdXBfaGVscGVyX3Rlc3RfZGF0YV93cml0ZXIoKTsKLWludCBiYWNrdXBfaGVscGVyX3Rlc3RfZGF0YV9yZWFkZXIoKTsKLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBhbmRyb2lkCi0KLSNlbmRpZiAvLyBfVVRJTFNfQkFDS1VQX0hFTFBFUlNfSApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbmRyb2lkZncvQ3Vyc29yV2luZG93LmggYi9pbmNsdWRlL2FuZHJvaWRmdy9DdXJzb3JXaW5kb3cuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGEyOTc5YS4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FuZHJvaWRmdy9DdXJzb3JXaW5kb3cuaAorKysgL2Rldi9udWxsCkBAIC0xLDE5MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2lmbmRlZiBfQU5EUk9JRF9fREFUQUJBU0VfV0lORE9XX0gKLSNkZWZpbmUgX0FORFJPSURfX0RBVEFCQVNFX1dJTkRPV19ICi0KLSNpbmNsdWRlIDxjdXRpbHMvbG9nLmg+Ci0jaW5jbHVkZSA8c3RkZGVmLmg+Ci0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0KLSNpbmNsdWRlIDxiaW5kZXIvUGFyY2VsLmg+Ci0jaW5jbHVkZSA8dXRpbHMvU3RyaW5nOC5oPgotCi0jaWYgTE9HX05ERUJVRwotCi0jZGVmaW5lIElGX0xPR19XSU5ET1coKSBpZiAoZmFsc2UpCi0jZGVmaW5lIExPR19XSU5ET1coLi4uKQotCi0jZWxzZQotCi0jZGVmaW5lIElGX0xPR19XSU5ET1coKSBJRl9BTE9HKExPR19ERUJVRywgIkN1cnNvcldpbmRvdyIpCi0jZGVmaW5lIExPR19XSU5ET1coLi4uKSBBTE9HKExPR19ERUJVRywgIkN1cnNvcldpbmRvdyIsIF9fVkFfQVJHU19fKQotCi0jZW5kaWYKLQotbmFtZXNwYWNlIGFuZHJvaWQgewotCi0vKioKLSAqIFRoaXMgY2xhc3Mgc3RvcmVzIGEgc2V0IG9mIHJvd3MgZnJvbSBhIGRhdGFiYXNlIGluIGEgYnVmZmVyLiBUaGUgYmVnaW5pbmcgb2YgdGhlCi0gKiB3aW5kb3cgaGFzIGZpcnN0IGNodW5rIG9mIFJvd1Nsb3RzLCB3aGljaCBhcmUgb2Zmc2V0cyB0byB0aGUgcm93IGRpcmVjdG9yeSwgZm9sbG93ZWQgYnkKLSAqIGFuIG9mZnNldCB0byB0aGUgbmV4dCBjaHVuayBpbiBhIGxpbmtlZC1saXN0IG9mIGFkZGl0aW9uYWwgY2h1bmsgb2YgUm93U2xvdHMgaW4gY2FzZQotICogdGhlIHByZS1hbGxvY2F0ZWQgY2h1bmsgaXNuJ3QgYmlnIGVub3VnaCB0byByZWZlciB0byBhbGwgcm93cy4gRWFjaCByb3cgZGlyZWN0b3J5IGhhcyBhCi0gKiBGaWVsZFNsb3QgcGVyIGNvbHVtbiwgd2hpY2ggaGFzIHRoZSBzaXplLCBvZmZzZXQsIGFuZCB0eXBlIG9mIHRoZSBkYXRhIGZvciB0aGF0IGZpZWxkLgotICogTm90ZSB0aGF0IHRoZSBkYXRhIHR5cGVzIGNvbWUgZnJvbSBzcWxpdGUzLmguCi0gKgotICogU3RyaW5ncyBhcmUgc3RvcmVkIGluIFVURi04LgotICovCi1jbGFzcyBDdXJzb3JXaW5kb3cgewotICAgIEN1cnNvcldpbmRvdyhjb25zdCBTdHJpbmc4JiBuYW1lLCBpbnQgYXNobWVtRmQsCi0gICAgICAgICAgICB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSwgYm9vbCByZWFkT25seSk7Ci0KLXB1YmxpYzoKLSAgICAvKiBGaWVsZCB0eXBlcy4gKi8KLSAgICBlbnVtIHsKLSAgICAgICAgRklFTERfVFlQRV9OVUxMID0gMCwKLSAgICAgICAgRklFTERfVFlQRV9JTlRFR0VSID0gMSwKLSAgICAgICAgRklFTERfVFlQRV9GTE9BVCA9IDIsCi0gICAgICAgIEZJRUxEX1RZUEVfU1RSSU5HID0gMywKLSAgICAgICAgRklFTERfVFlQRV9CTE9CID0gNCwKLSAgICB9OwotCi0gICAgLyogT3BhcXVlIHR5cGUgdGhhdCBkZXNjcmliZXMgYSBmaWVsZCBzbG90LiAqLwotICAgIHN0cnVjdCBGaWVsZFNsb3QgewotICAgIHByaXZhdGU6Ci0gICAgICAgIGludDMyX3QgdHlwZTsKLSAgICAgICAgdW5pb24gewotICAgICAgICAgICAgZG91YmxlIGQ7Ci0gICAgICAgICAgICBpbnQ2NF90IGw7Ci0gICAgICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgICAgIHVpbnQzMl90IG9mZnNldDsKLSAgICAgICAgICAgICAgICB1aW50MzJfdCBzaXplOwotICAgICAgICAgICAgfSBidWZmZXI7Ci0gICAgICAgIH0gZGF0YTsKLQotICAgICAgICBmcmllbmQgY2xhc3MgQ3Vyc29yV2luZG93OwotICAgIH0gX19hdHRyaWJ1dGUoKHBhY2tlZCkpOwotCi0gICAgfkN1cnNvcldpbmRvdygpOwotCi0gICAgc3RhdGljIHN0YXR1c190IGNyZWF0ZShjb25zdCBTdHJpbmc4JiBuYW1lLCBzaXplX3Qgc2l6ZSwgQ3Vyc29yV2luZG93Kiogb3V0Q3Vyc29yV2luZG93KTsKLSAgICBzdGF0aWMgc3RhdHVzX3QgY3JlYXRlRnJvbVBhcmNlbChQYXJjZWwqIHBhcmNlbCwgQ3Vyc29yV2luZG93Kiogb3V0Q3Vyc29yV2luZG93KTsKLQotICAgIHN0YXR1c190IHdyaXRlVG9QYXJjZWwoUGFyY2VsKiBwYXJjZWwpOwotCi0gICAgaW5saW5lIFN0cmluZzggbmFtZSgpIHsgcmV0dXJuIG1OYW1lOyB9Ci0gICAgaW5saW5lIHNpemVfdCBzaXplKCkgeyByZXR1cm4gbVNpemU7IH0KLSAgICBpbmxpbmUgc2l6ZV90IGZyZWVTcGFjZSgpIHsgcmV0dXJuIG1TaXplIC0gbUhlYWRlci0+ZnJlZU9mZnNldDsgfQotICAgIGlubGluZSB1aW50MzJfdCBnZXROdW1Sb3dzKCkgeyByZXR1cm4gbUhlYWRlci0+bnVtUm93czsgfQotICAgIGlubGluZSB1aW50MzJfdCBnZXROdW1Db2x1bW5zKCkgeyByZXR1cm4gbUhlYWRlci0+bnVtQ29sdW1uczsgfQotCi0gICAgc3RhdHVzX3QgY2xlYXIoKTsKLSAgICBzdGF0dXNfdCBzZXROdW1Db2x1bW5zKHVpbnQzMl90IG51bUNvbHVtbnMpOwotCi0gICAgLyoqCi0gICAgICogQWxsb2NhdGUgYSByb3cgc2xvdCBhbmQgaXRzIGRpcmVjdG9yeS4KLSAgICAgKiBUaGUgcm93IGlzIGluaXRpYWxpemVkIHdpbGwgbnVsbCBlbnRyaWVzIGZvciBlYWNoIGZpZWxkLgotICAgICAqLwotICAgIHN0YXR1c190IGFsbG9jUm93KCk7Ci0gICAgc3RhdHVzX3QgZnJlZUxhc3RSb3coKTsKLQotICAgIHN0YXR1c190IHB1dEJsb2IodWludDMyX3Qgcm93LCB1aW50MzJfdCBjb2x1bW4sIGNvbnN0IHZvaWQqIHZhbHVlLCBzaXplX3Qgc2l6ZSk7Ci0gICAgc3RhdHVzX3QgcHV0U3RyaW5nKHVpbnQzMl90IHJvdywgdWludDMyX3QgY29sdW1uLCBjb25zdCBjaGFyKiB2YWx1ZSwgc2l6ZV90IHNpemVJbmNsdWRpbmdOdWxsKTsKLSAgICBzdGF0dXNfdCBwdXRMb25nKHVpbnQzMl90IHJvdywgdWludDMyX3QgY29sdW1uLCBpbnQ2NF90IHZhbHVlKTsKLSAgICBzdGF0dXNfdCBwdXREb3VibGUodWludDMyX3Qgcm93LCB1aW50MzJfdCBjb2x1bW4sIGRvdWJsZSB2YWx1ZSk7Ci0gICAgc3RhdHVzX3QgcHV0TnVsbCh1aW50MzJfdCByb3csIHVpbnQzMl90IGNvbHVtbik7Ci0KLSAgICAvKioKLSAgICAgKiBHZXRzIHRoZSBmaWVsZCBzbG90IGF0IHRoZSBzcGVjaWZpZWQgcm93IGFuZCBjb2x1bW4uCi0gICAgICogUmV0dXJucyBudWxsIGlmIHRoZSByZXF1ZXN0ZWQgcm93IG9yIGNvbHVtbiBpcyBub3QgaW4gdGhlIHdpbmRvdy4KLSAgICAgKi8KLSAgICBGaWVsZFNsb3QqIGdldEZpZWxkU2xvdCh1aW50MzJfdCByb3csIHVpbnQzMl90IGNvbHVtbik7Ci0KLSAgICBpbmxpbmUgaW50MzJfdCBnZXRGaWVsZFNsb3RUeXBlKEZpZWxkU2xvdCogZmllbGRTbG90KSB7Ci0gICAgICAgIHJldHVybiBmaWVsZFNsb3QtPnR5cGU7Ci0gICAgfQotCi0gICAgaW5saW5lIGludDY0X3QgZ2V0RmllbGRTbG90VmFsdWVMb25nKEZpZWxkU2xvdCogZmllbGRTbG90KSB7Ci0gICAgICAgIHJldHVybiBmaWVsZFNsb3QtPmRhdGEubDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgZG91YmxlIGdldEZpZWxkU2xvdFZhbHVlRG91YmxlKEZpZWxkU2xvdCogZmllbGRTbG90KSB7Ci0gICAgICAgIHJldHVybiBmaWVsZFNsb3QtPmRhdGEuZDsKLSAgICB9Ci0KLSAgICBpbmxpbmUgY29uc3QgY2hhciogZ2V0RmllbGRTbG90VmFsdWVTdHJpbmcoRmllbGRTbG90KiBmaWVsZFNsb3QsCi0gICAgICAgICAgICBzaXplX3QqIG91dFNpemVJbmNsdWRpbmdOdWxsKSB7Ci0gICAgICAgICpvdXRTaXplSW5jbHVkaW5nTnVsbCA9IGZpZWxkU2xvdC0+ZGF0YS5idWZmZXIuc2l6ZTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIqPihvZmZzZXRUb1B0cihmaWVsZFNsb3QtPmRhdGEuYnVmZmVyLm9mZnNldCkpOwotICAgIH0KLQotICAgIGlubGluZSBjb25zdCB2b2lkKiBnZXRGaWVsZFNsb3RWYWx1ZUJsb2IoRmllbGRTbG90KiBmaWVsZFNsb3QsIHNpemVfdCogb3V0U2l6ZSkgewotICAgICAgICAqb3V0U2l6ZSA9IGZpZWxkU2xvdC0+ZGF0YS5idWZmZXIuc2l6ZTsKLSAgICAgICAgcmV0dXJuIG9mZnNldFRvUHRyKGZpZWxkU2xvdC0+ZGF0YS5idWZmZXIub2Zmc2V0KTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBST1dfU0xPVF9DSFVOS19OVU1fUk9XUyA9IDEwMDsKLQotICAgIHN0cnVjdCBIZWFkZXIgewotICAgICAgICAvLyBPZmZzZXQgb2YgdGhlIGxvd2VzdCB1bnVzZWQgYnl0ZSBpbiB0aGUgd2luZG93LgotICAgICAgICB1aW50MzJfdCBmcmVlT2Zmc2V0OwotCi0gICAgICAgIC8vIE9mZnNldCBvZiB0aGUgZmlyc3Qgcm93IHNsb3QgY2h1bmsuCi0gICAgICAgIHVpbnQzMl90IGZpcnN0Q2h1bmtPZmZzZXQ7Ci0KLSAgICAgICAgdWludDMyX3QgbnVtUm93czsKLSAgICAgICAgdWludDMyX3QgbnVtQ29sdW1uczsKLSAgICB9OwotCi0gICAgc3RydWN0IFJvd1Nsb3QgewotICAgICAgICB1aW50MzJfdCBvZmZzZXQ7Ci0gICAgfTsKLQotICAgIHN0cnVjdCBSb3dTbG90Q2h1bmsgewotICAgICAgICBSb3dTbG90IHNsb3RzW1JPV19TTE9UX0NIVU5LX05VTV9ST1dTXTsKLSAgICAgICAgdWludDMyX3QgbmV4dENodW5rT2Zmc2V0OwotICAgIH07Ci0KLSAgICBTdHJpbmc4IG1OYW1lOwotICAgIGludCBtQXNobWVtRmQ7Ci0gICAgdm9pZCogbURhdGE7Ci0gICAgc2l6ZV90IG1TaXplOwotICAgIGJvb2wgbVJlYWRPbmx5OwotICAgIEhlYWRlciogbUhlYWRlcjsKLQotICAgIGlubGluZSB2b2lkKiBvZmZzZXRUb1B0cih1aW50MzJfdCBvZmZzZXQpIHsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihtRGF0YSkgKyBvZmZzZXQ7Ci0gICAgfQotCi0gICAgaW5saW5lIHVpbnQzMl90IG9mZnNldEZyb21QdHIodm9pZCogcHRyKSB7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90Kj4ocHRyKSAtIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihtRGF0YSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQWxsb2NhdGUgYSBwb3J0aW9uIG9mIHRoZSB3aW5kb3cuIFJldHVybnMgdGhlIG9mZnNldAotICAgICAqIG9mIHRoZSBhbGxvY2F0aW9uLCBvciAwIGlmIHRoZXJlIGlzbid0IGVub3VnaCBzcGFjZS4KLSAgICAgKiBJZiBhbGlnbmVkIGlzIHRydWUsIHRoZSBhbGxvY2F0aW9uIGdldHMgNCBieXRlIGFsaWdubWVudC4KLSAgICAgKi8KLSAgICB1aW50MzJfdCBhbGxvYyhzaXplX3Qgc2l6ZSwgYm9vbCBhbGlnbmVkID0gZmFsc2UpOwotCi0gICAgUm93U2xvdCogZ2V0Um93U2xvdCh1aW50MzJfdCByb3cpOwotICAgIFJvd1Nsb3QqIGFsbG9jUm93U2xvdCgpOwotCi0gICAgc3RhdHVzX3QgcHV0QmxvYk9yU3RyaW5nKHVpbnQzMl90IHJvdywgdWludDMyX3QgY29sdW1uLAotICAgICAgICAgICAgY29uc3Qgdm9pZCogdmFsdWUsIHNpemVfdCBzaXplLCBpbnQzMl90IHR5cGUpOwotfTsKLQotfTsgLy8gbmFtZXNwYWNlIGFuZHJvaWQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FuZHJvaWRmdy9PYmJGaWxlLmggYi9pbmNsdWRlL2FuZHJvaWRmdy9PYmJGaWxlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3NTU5Y2QuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hbmRyb2lkZncvT2JiRmlsZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jaWZuZGVmIE9CQkZJTEVfSF8KLSNkZWZpbmUgT0JCRklMRV9IXwotCi0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0jaW5jbHVkZSA8c3RyaW5ncy5oPgotCi0jaW5jbHVkZSA8dXRpbHMvUmVmQmFzZS5oPgotI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KLQotbmFtZXNwYWNlIGFuZHJvaWQgewotCi0vLyBPQkIgZmxhZ3MgKGJpdCAwKQotI2RlZmluZSBPQkJfT1ZFUkxBWSAgICAgICAgICgxIDw8IDApCi0jZGVmaW5lIE9CQl9TQUxURUQgICAgICAgICAgKDEgPDwgMSkKLQotY2xhc3MgT2JiRmlsZSA6IHB1YmxpYyBSZWZCYXNlIHsKLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5PYmJGaWxlKCk7Ci0KLXB1YmxpYzoKLSAgICBPYmJGaWxlKCk7Ci0KLSAgICBib29sIHJlYWRGcm9tKGNvbnN0IGNoYXIqIGZpbGVuYW1lKTsKLSAgICBib29sIHJlYWRGcm9tKGludCBmZCk7Ci0gICAgYm9vbCB3cml0ZVRvKGNvbnN0IGNoYXIqIGZpbGVuYW1lKTsKLSAgICBib29sIHdyaXRlVG8oaW50IGZkKTsKLSAgICBib29sIHJlbW92ZUZyb20oY29uc3QgY2hhciogZmlsZW5hbWUpOwotICAgIGJvb2wgcmVtb3ZlRnJvbShpbnQgZmQpOwotCi0gICAgY29uc3QgY2hhciogZ2V0RmlsZU5hbWUoKSBjb25zdCB7Ci0gICAgICAgIHJldHVybiBtRmlsZU5hbWU7Ci0gICAgfQotCi0gICAgY29uc3QgU3RyaW5nOCBnZXRQYWNrYWdlTmFtZSgpIGNvbnN0IHsKLSAgICAgICAgcmV0dXJuIG1QYWNrYWdlTmFtZTsKLSAgICB9Ci0KLSAgICB2b2lkIHNldFBhY2thZ2VOYW1lKFN0cmluZzggcGFja2FnZU5hbWUpIHsKLSAgICAgICAgbVBhY2thZ2VOYW1lID0gcGFja2FnZU5hbWU7Ci0gICAgfQotCi0gICAgaW50MzJfdCBnZXRWZXJzaW9uKCkgY29uc3QgewotICAgICAgICByZXR1cm4gbVZlcnNpb247Ci0gICAgfQotCi0gICAgdm9pZCBzZXRWZXJzaW9uKGludDMyX3QgdmVyc2lvbikgewotICAgICAgICBtVmVyc2lvbiA9IHZlcnNpb247Ci0gICAgfQotCi0gICAgaW50MzJfdCBnZXRGbGFncygpIGNvbnN0IHsKLSAgICAgICAgcmV0dXJuIG1GbGFnczsKLSAgICB9Ci0KLSAgICB2b2lkIHNldEZsYWdzKGludDMyX3QgZmxhZ3MpIHsKLSAgICAgICAgbUZsYWdzID0gZmxhZ3M7Ci0gICAgfQotCi0gICAgY29uc3QgdW5zaWduZWQgY2hhciogZ2V0U2FsdChzaXplX3QqIGxlbmd0aCkgY29uc3QgewotICAgICAgICBpZiAoKG1GbGFncyAmIE9CQl9TQUxURUQpID09IDApIHsKLSAgICAgICAgICAgICpsZW5ndGggPSAwOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLQotICAgICAgICAqbGVuZ3RoID0gc2l6ZW9mKG1TYWx0KTsKLSAgICAgICAgcmV0dXJuIG1TYWx0OwotICAgIH0KLQotICAgIGJvb2wgc2V0U2FsdChjb25zdCB1bnNpZ25lZCBjaGFyKiBzYWx0LCBzaXplX3QgbGVuZ3RoKSB7Ci0gICAgICAgIGlmIChsZW5ndGggIT0gc2l6ZW9mKG1TYWx0KSkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgbWVtY3B5KG1TYWx0LCBzYWx0LCBzaXplb2YobVNhbHQpKTsKLSAgICAgICAgbUZsYWdzIHw9IE9CQl9TQUxURUQ7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGJvb2wgaXNPdmVybGF5KCkgewotICAgICAgICByZXR1cm4gKG1GbGFncyAmIE9CQl9PVkVSTEFZKSA9PSBPQkJfT1ZFUkxBWTsKLSAgICB9Ci0KLSAgICB2b2lkIHNldE92ZXJsYXkoYm9vbCBvdmVybGF5KSB7Ci0gICAgICAgIGlmIChvdmVybGF5KSB7Ci0gICAgICAgICAgICBtRmxhZ3MgfD0gT0JCX09WRVJMQVk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtRmxhZ3MgJj0gfk9CQl9PVkVSTEFZOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc3RhdGljIGlubGluZSB1aW50MzJfdCBnZXQ0TEUoY29uc3QgdW5zaWduZWQgY2hhciogYnVmKSB7Ci0gICAgICAgIHJldHVybiBidWZbMF0gfCAoYnVmWzFdIDw8IDgpIHwgKGJ1ZlsyXSA8PCAxNikgfCAoYnVmWzNdIDw8IDI0KTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgaW5saW5lIHZvaWQgcHV0NExFKHVuc2lnbmVkIGNoYXIqIGJ1ZiwgdWludDMyX3QgdmFsKSB7Ci0gICAgICAgIGJ1ZlswXSA9IHZhbCAmIDB4RkY7Ci0gICAgICAgIGJ1ZlsxXSA9ICh2YWwgPj4gOCkgJiAweEZGOwotICAgICAgICBidWZbMl0gPSAodmFsID4+IDE2KSAmIDB4RkY7Ci0gICAgICAgIGJ1ZlszXSA9ICh2YWwgPj4gMjQpICYgMHhGRjsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgLyogUGFja2FnZSBuYW1lIHRoaXMgT2JiRmlsZSBpcyBhc3NvY2lhdGVkIHdpdGggKi8KLSAgICBTdHJpbmc4IG1QYWNrYWdlTmFtZTsKLQotICAgIC8qIFBhY2thZ2UgdmVyc2lvbiB0aGlzIE9iYkZpbGUgaXMgYXNzb2NpYXRlZCB3aXRoICovCi0gICAgaW50MzJfdCBtVmVyc2lvbjsKLQotICAgIC8qIEZsYWdzIGZvciB0aGlzIE9CQiB0eXBlLiAqLwotICAgIGludDMyX3QgbUZsYWdzOwotCi0gICAgLyogV2hldGhlciB0aGUgZmlsZSBpcyBzYWx0ZWQuICovCi0gICAgYm9vbCBtU2FsdGVkOwotCi0gICAgLyogVGhlIGVuY3J5cHRpb24gc2FsdC4gKi8KLSAgICB1bnNpZ25lZCBjaGFyIG1TYWx0WzhdOwotCi0gICAgY29uc3QgY2hhciogbUZpbGVOYW1lOwotCi0gICAgc2l6ZV90IG1GaWxlU2l6ZTsKLQotICAgIHNpemVfdCBtRm9vdGVyU3RhcnQ7Ci0KLSAgICB1bnNpZ25lZCBjaGFyKiBtUmVhZEJ1ZjsKLQotICAgIGJvb2wgcGFyc2VPYmJGaWxlKGludCBmZCk7Ci19OwotCi19Ci0jZW5kaWYgLyogT0JCRklMRV9IXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbmRyb2lkZncvUG93ZXJNYW5hZ2VyLmggYi9pbmNsdWRlL2FuZHJvaWRmdy9Qb3dlck1hbmFnZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmE5OGRiMC4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FuZHJvaWRmdy9Qb3dlck1hbmFnZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jaWZuZGVmIF9BTkRST0lERldfUE9XRVJfTUFOQUdFUl9ICi0jZGVmaW5lIF9BTkRST0lERldfUE9XRVJfTUFOQUdFUl9ICi0KLQotbmFtZXNwYWNlIGFuZHJvaWQgewotCi1lbnVtIHsKLSAgICBVU0VSX0FDVElWSVRZX0VWRU5UX09USEVSID0gMCwKLSAgICBVU0VSX0FDVElWSVRZX0VWRU5UX0JVVFRPTiA9IDEsCi0gICAgVVNFUl9BQ1RJVklUWV9FVkVOVF9UT1VDSCA9IDIsCi0KLSAgICBVU0VSX0FDVElWSVRZX0VWRU5UX0xBU1QgPSBVU0VSX0FDVElWSVRZX0VWRU5UX1RPVUNILCAvLyBMYXN0IHZhbGlkIGV2ZW50IGNvZGUuCi19OwotCi19IC8vIG5hbWVzcGFjZSBhbmRyb2lkCi0KLSNlbmRpZiAvLyBfQU5EUk9JREZXX1BPV0VSX01BTkFHRVJfSApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbmRyb2lkZncvUmVzb3VyY2VUeXBlcy5oIGIvaW5jbHVkZS9hbmRyb2lkZncvUmVzb3VyY2VUeXBlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5N2FmYTU5Li4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYW5kcm9pZGZ3L1Jlc291cmNlVHlwZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2MDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLS8vCi0vLyBEZWZpbml0aW9ucyBvZiByZXNvdXJjZSBkYXRhIHN0cnVjdHVyZXMuCi0vLwotI2lmbmRlZiBfTElCU19VVElMU19SRVNPVVJDRV9UWVBFU19ICi0jZGVmaW5lIF9MSUJTX1VUSUxTX1JFU09VUkNFX1RZUEVTX0gKLQotI2luY2x1ZGUgPGFuZHJvaWRmdy9Bc3NldC5oPgotI2luY2x1ZGUgPHV0aWxzL0J5dGVPcmRlci5oPgotI2luY2x1ZGUgPHV0aWxzL0Vycm9ycy5oPgotI2luY2x1ZGUgPHV0aWxzL1N0cmluZzE2Lmg+Ci0jaW5jbHVkZSA8dXRpbHMvVmVjdG9yLmg+Ci0KLSNpbmNsdWRlIDx1dGlscy90aHJlYWRzLmg+Ci0KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLQotI2luY2x1ZGUgPGFuZHJvaWQvY29uZmlndXJhdGlvbi5oPgotCi1uYW1lc3BhY2UgYW5kcm9pZCB7Ci0KLS8qKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogIFBORyBFeHRlbnNpb25zCi0gKgotICogIE5ldyBwcml2YXRlIGNodW5rcyB0aGF0IG1heSBiZSBwbGFjZWQgaW4gUE5HIGltYWdlcy4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KLQotLyoqCi0gKiBUaGlzIGNodW5rIHNwZWNpZmllcyBob3cgdG8gc3BsaXQgYW4gaW1hZ2UgaW50byBzZWdtZW50cyBmb3IKLSAqIHNjYWxpbmcuCi0gKgotICogVGhlcmUgYXJlIEogaG9yaXpvbnRhbCBhbmQgSyB2ZXJ0aWNhbCBzZWdtZW50cy4gIFRoZXNlIHNlZ21lbnRzIGRpdmlkZQotICogdGhlIGltYWdlIGludG8gSipLIHJlZ2lvbnMgYXMgZm9sbG93cyAod2hlcmUgSj00IGFuZCBLPTMpOgotICoKLSAqICAgICAgRjAgICBTMCAgICBGMSAgICAgUzEKLSAqICAgKy0tLS0tKy0tLS0rLS0tLS0tKy0tLS0tLS0rCi0gKiBTMnwgIDAgIHwgIDEgfCAgMiAgIHwgICAzICAgfAotICogICArLS0tLS0rLS0tLSstLS0tLS0rLS0tLS0tLSsKLSAqICAgfCAgICAgfCAgICB8ICAgICAgfCAgICAgICB8Ci0gKiAgIHwgICAgIHwgICAgfCAgICAgIHwgICAgICAgfAotICogRjJ8ICA0ICB8ICA1IHwgIDYgICB8ICAgNyAgIHwKLSAqICAgfCAgICAgfCAgICB8ICAgICAgfCAgICAgICB8Ci0gKiAgIHwgICAgIHwgICAgfCAgICAgIHwgICAgICAgfAotICogICArLS0tLS0rLS0tLSstLS0tLS0rLS0tLS0tLSsKLSAqIFMzfCAgOCAgfCAgOSB8ICAxMCAgfCAgIDExICB8Ci0gKiAgICstLS0tLSstLS0tKy0tLS0tLSstLS0tLS0tKwotICoKLSAqIEVhY2ggaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgc2VnbWVudCBpcyBjb25zaWRlcmVkIHRvIGJ5IGVpdGhlcgotICogc3RyZXRjaGFibGUgKG1hcmtlZCBieSB0aGUgU3ggbGFiZWxzKSBvciBmaXhlZCAobWFya2VkIGJ5IHRoZSBGeQotICogbGFiZWxzKSwgaW4gdGhlIGhvcml6b250YWwgb3IgdmVydGljYWwgYXhpcywgcmVzcGVjdGl2ZWx5LiBJbiB0aGUKLSAqIGFib3ZlIGV4YW1wbGUsIHRoZSBmaXJzdCBpcyBob3Jpem9udGFsIHNlZ21lbnQgKEYwKSBpcyBmaXhlZCwgdGhlCi0gKiBuZXh0IGlzIHN0cmV0Y2hhYmxlIGFuZCB0aGVuIHRoZXkgY29udGludWUgdG8gYWx0ZXJuYXRlLiBOb3RlIHRoYXQKLSAqIHRoZSBzZWdtZW50IGxpc3QgZm9yIGVhY2ggYXhpcyBjYW4gYmVnaW4gb3IgZW5kIHdpdGggYSBzdHJldGNoYWJsZQotICogb3IgZml4ZWQgc2VnbWVudC4KLSAqCi0gKiBUaGUgcmVsYXRpdmUgc2l6ZXMgb2YgdGhlIHN0cmV0Y2h5IHNlZ21lbnRzIGluZGljYXRlcyB0aGUgcmVsYXRpdmUKLSAqIGFtb3VudCBvZiBzdHJldGNoaW5lc3Mgb2YgdGhlIHJlZ2lvbnMgYm9yZGVyZWQgYnkgdGhlIHNlZ21lbnRzLiAgRm9yCi0gKiBleGFtcGxlLCByZWdpb25zIDMsIDcgYW5kIDExIGFib3ZlIHdpbGwgdGFrZSB1cCBtb3JlIGhvcml6b250YWwgc3BhY2UKLSAqIHRoYW4gcmVnaW9ucyAxLCA1IGFuZCA5IHNpbmNlIHRoZSBob3Jpem9udGFsIHNlZ21lbnQgYXNzb2NpYXRlZCB3aXRoCi0gKiB0aGUgZmlyc3Qgc2V0IG9mIHJlZ2lvbnMgaXMgbGFyZ2VyIHRoYW4gdGhlIG90aGVyIHNldCBvZiByZWdpb25zLiAgVGhlCi0gKiByYXRpb3Mgb2YgdGhlIGFtb3VudCBvZiBob3Jpem9udGFsIChvciB2ZXJ0aWNhbCkgc3BhY2UgdGFrZW4gYnkgYW55Ci0gKiB0d28gc3RyZXRjaGFibGUgc2xpY2VzIGlzIGV4YWN0bHkgdGhlIHJhdGlvIG9mIHRoZWlyIGNvcnJlc3BvbmRpbmcKLSAqIHNlZ21lbnQgbGVuZ3Rocy4KLSAqCi0gKiB4RGl2cyBhbmQgeURpdnMgcG9pbnQgdG8gYXJyYXlzIG9mIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIHBpeGVsCi0gKiBpbmRpY2VzLiAgVGhlIGZpcnN0IHBhaXIgb2YgRGl2cyAoaW4gZWl0aGVyIGFycmF5KSBpbmRpY2F0ZSB0aGUKLSAqIHN0YXJ0aW5nIGFuZCBlbmRpbmcgcG9pbnRzIG9mIHRoZSBmaXJzdCBzdHJldGNoYWJsZSBzZWdtZW50IGluIHRoYXQKLSAqIGF4aXMuIFRoZSBuZXh0IHBhaXIgc3BlY2lmaWVzIHRoZSBuZXh0IHN0cmV0Y2hhYmxlIHNlZ21lbnQsIGV0Yy4gU28KLSAqIGluIHRoZSBhYm92ZSBleGFtcGxlIHhEaXZbMF0gYW5kIHhEaXZbMV0gc3BlY2lmeSB0aGUgaG9yaXpvbnRhbAotICogY29vcmRpbmF0ZXMgZm9yIHRoZSByZWdpb25zIGxhYmVsZWQgMSwgNSBhbmQgOS4gIHhEaXZbMl0gYW5kCi0gKiB4RGl2WzNdIHNwZWNpZnkgdGhlIGNvb3JkaW5hdGVzIGZvciByZWdpb25zIDMsIDcgYW5kIDExLiBOb3RlIHRoYXQKLSAqIHRoZSBsZWZ0bW9zdCBzbGljZXMgYWx3YXlzIHN0YXJ0IGF0IHg9MCBhbmQgdGhlIHJpZ2h0bW9zdCBzbGljZXMKLSAqIGFsd2F5cyBlbmQgYXQgdGhlIGVuZCBvZiB0aGUgaW1hZ2UuIFNvLCBmb3IgZXhhbXBsZSwgdGhlIHJlZ2lvbnMgMCwKLSAqIDQgYW5kIDggKHdoaWNoIGFyZSBmaXhlZCBhbG9uZyB0aGUgWCBheGlzKSBzdGFydCBhdCB4IHZhbHVlIDAgYW5kCi0gKiBnbyB0byB4RGl2WzBdIGFuZCBzbGljZXMgMiwgNiBhbmQgMTAgc3RhcnQgYXQgeERpdlsxXSBhbmQgZW5kIGF0Ci0gKiB4RGl2WzJdLgotICoKLSAqIFRoZSBhcnJheSBwb2ludGVkIHRvIGJ5IHRoZSBjb2xvcnMgZmllbGQgbGlzdHMgY29udGFpbnMgaGludHMgZm9yCi0gKiBlYWNoIG9mIHRoZSByZWdpb25zLiAgVGhleSBhcmUgb3JkZXJlZCBhY2NvcmRpbmcgbGVmdC10by1yaWdodCBhbmQKLSAqIHRvcC10by1ib3R0b20gYXMgaW5kaWNhdGVkIGFib3ZlLiBGb3IgZWFjaCBzZWdtZW50IHRoYXQgaXMgYSBzb2xpZAotICogY29sb3IgdGhlIGFycmF5IGVudHJ5IHdpbGwgY29udGFpbiB0aGF0IGNvbG9yIHZhbHVlOyBvdGhlcndpc2UgaXQKLSAqIHdpbGwgY29udGFpbiBOT19DT0xPUi4gIFNlZ21lbnRzIHRoYXQgYXJlIGNvbXBsZXRlbHkgdHJhbnNwYXJlbnQKLSAqIHdpbGwgYWx3YXlzIGhhdmUgdGhlIHZhbHVlIFRSQU5TUEFSRU5UX0NPTE9SLgotICoKLSAqIFRoZSBQTkcgY2h1bmsgdHlwZSBpcyAibnBUYyIuCi0gKi8KLXN0cnVjdCBSZXNfcG5nXzlwYXRjaAotewotICAgIFJlc19wbmdfOXBhdGNoKCkgOiB3YXNEZXNlcmlhbGl6ZWQoZmFsc2UpLCB4RGl2cyhOVUxMKSwKLSAgICAgICAgICAgICAgICAgICAgICAgeURpdnMoTlVMTCksIGNvbG9ycyhOVUxMKSB7IH0KLQotICAgIGludDhfdCB3YXNEZXNlcmlhbGl6ZWQ7Ci0gICAgaW50OF90IG51bVhEaXZzOwotICAgIGludDhfdCBudW1ZRGl2czsKLSAgICBpbnQ4X3QgbnVtQ29sb3JzOwotCi0gICAgLy8gVGhlc2UgdGVsbCB3aGVyZSB0aGUgbmV4dCBzZWN0aW9uIG9mIGEgcGF0Y2ggc3RhcnRzLgotICAgIC8vIEZvciBleGFtcGxlLCB0aGUgZmlyc3QgcGF0Y2ggaW5jbHVkZXMgdGhlIHBpeGVscyBmcm9tCi0gICAgLy8gMCB0byB4RGl2c1swXS0xIGFuZCB0aGUgc2Vjb25kIHBhdGNoIGluY2x1ZGVzIHRoZSBwaXhlbHMKLSAgICAvLyBmcm9tIHhEaXZzWzBdIHRvIHhEaXZzWzFdLTEuCi0gICAgLy8gTm90ZTogYWxsb2NhdGlvbi9mcmVlIG9mIHRoZXNlIHBvaW50ZXJzIGlzIGxlZnQgdG8gdGhlIGNhbGxlci4KLSAgICBpbnQzMl90KiB4RGl2czsKLSAgICBpbnQzMl90KiB5RGl2czsKLQotICAgIGludDMyX3QgcGFkZGluZ0xlZnQsIHBhZGRpbmdSaWdodDsKLSAgICBpbnQzMl90IHBhZGRpbmdUb3AsIHBhZGRpbmdCb3R0b207Ci0KLSAgICBlbnVtIHsKLSAgICAgICAgLy8gVGhlIDkgcGF0Y2ggc2VnbWVudCBpcyBub3QgYSBzb2xpZCBjb2xvci4KLSAgICAgICAgTk9fQ09MT1IgPSAweDAwMDAwMDAxLAotCi0gICAgICAgIC8vIFRoZSA5IHBhdGNoIHNlZ21lbnQgaXMgY29tcGxldGVseSB0cmFuc3BhcmVudC4KLSAgICAgICAgVFJBTlNQQVJFTlRfQ09MT1IgPSAweDAwMDAwMDAwCi0gICAgfTsKLSAgICAvLyBOb3RlOiBhbGxvY2F0aW9uL2ZyZWUgb2YgdGhpcyBwb2ludGVyIGlzIGxlZnQgdG8gdGhlIGNhbGxlci4KLSAgICB1aW50MzJfdCogY29sb3JzOwotCi0gICAgLy8gQ29udmVydCBkYXRhIGZyb20gZGV2aWNlIHJlcHJlc2VudGF0aW9uIHRvIFBORyBmaWxlIHJlcHJlc2VudGF0aW9uLgotICAgIHZvaWQgZGV2aWNlVG9GaWxlKCk7Ci0gICAgLy8gQ29udmVydCBkYXRhIGZyb20gUE5HIGZpbGUgcmVwcmVzZW50YXRpb24gdG8gZGV2aWNlIHJlcHJlc2VudGF0aW9uLgotICAgIHZvaWQgZmlsZVRvRGV2aWNlKCk7Ci0gICAgLy8gU2VyaWFsaXplL01hcnNoYWxsIHRoZSBwYXRjaCBkYXRhIGludG8gYSBuZXdseSBtYWxsb2MtZWQgYmxvY2sKLSAgICB2b2lkKiBzZXJpYWxpemUoKTsKLSAgICAvLyBTZXJpYWxpemUvTWFyc2hhbGwgdGhlIHBhdGNoIGRhdGEKLSAgICB2b2lkIHNlcmlhbGl6ZSh2b2lkKiBvdXREYXRhKTsKLSAgICAvLyBEZXNlcmlhbGl6ZS9Vbm1hcnNoYWxsIHRoZSBwYXRjaCBkYXRhCi0gICAgc3RhdGljIFJlc19wbmdfOXBhdGNoKiBkZXNlcmlhbGl6ZShjb25zdCB2b2lkKiBkYXRhKTsKLSAgICAvLyBDb21wdXRlIHRoZSBzaXplIG9mIHRoZSBzZXJpYWxpemVkIGRhdGEgc3RydWN0dXJlCi0gICAgc2l6ZV90IHNlcmlhbGl6ZWRTaXplKCk7Ci19OwotCi0vKiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqICBCYXNlIFR5cGVzCi0gKgotICogIFRoZXNlIGFyZSBzdGFuZGFyZCB0eXBlcyB0aGF0IGFyZSBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSBzcGVjaWZpYwotICogIHJlc291cmNlIHR5cGVzLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwotCi0vKioKLSAqIEhlYWRlciB0aGF0IGFwcGVhcnMgYXQgdGhlIGZyb250IG9mIGV2ZXJ5IGRhdGEgY2h1bmsgaW4gYSByZXNvdXJjZS4KLSAqLwotc3RydWN0IFJlc0NodW5rX2hlYWRlcgotewotICAgIC8vIFR5cGUgaWRlbnRpZmllciBmb3IgdGhpcyBjaHVuay4gIFRoZSBtZWFuaW5nIG9mIHRoaXMgdmFsdWUgZGVwZW5kcwotICAgIC8vIG9uIHRoZSBjb250YWluaW5nIGNodW5rLgotICAgIHVpbnQxNl90IHR5cGU7Ci0KLSAgICAvLyBTaXplIG9mIHRoZSBjaHVuayBoZWFkZXIgKGluIGJ5dGVzKS4gIEFkZGluZyB0aGlzIHZhbHVlIHRvCi0gICAgLy8gdGhlIGFkZHJlc3Mgb2YgdGhlIGNodW5rIGFsbG93cyB5b3UgdG8gZmluZCBpdHMgYXNzb2NpYXRlZCBkYXRhCi0gICAgLy8gKGlmIGFueSkuCi0gICAgdWludDE2X3QgaGVhZGVyU2l6ZTsKLQotICAgIC8vIFRvdGFsIHNpemUgb2YgdGhpcyBjaHVuayAoaW4gYnl0ZXMpLiAgVGhpcyBpcyB0aGUgY2h1bmtTaXplIHBsdXMKLSAgICAvLyB0aGUgc2l6ZSBvZiBhbnkgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGNodW5rLiAgQWRkaW5nIHRoaXMgdmFsdWUKLSAgICAvLyB0byB0aGUgY2h1bmsgYWxsb3dzIHlvdSB0byBjb21wbGV0ZWx5IHNraXAgaXRzIGNvbnRlbnRzIChpbmNsdWRpbmcKLSAgICAvLyBhbnkgY2hpbGQgY2h1bmtzKS4gIElmIHRoaXMgdmFsdWUgaXMgdGhlIHNhbWUgYXMgY2h1bmtTaXplLCB0aGVyZSBpcwotICAgIC8vIG5vIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBjaHVuay4KLSAgICB1aW50MzJfdCBzaXplOwotfTsKLQotZW51bSB7Ci0gICAgUkVTX05VTExfVFlQRSAgICAgICAgICAgICAgID0gMHgwMDAwLAotICAgIFJFU19TVFJJTkdfUE9PTF9UWVBFICAgICAgICA9IDB4MDAwMSwKLSAgICBSRVNfVEFCTEVfVFlQRSAgICAgICAgICAgICAgPSAweDAwMDIsCi0gICAgUkVTX1hNTF9UWVBFICAgICAgICAgICAgICAgID0gMHgwMDAzLAotCi0gICAgLy8gQ2h1bmsgdHlwZXMgaW4gUkVTX1hNTF9UWVBFCi0gICAgUkVTX1hNTF9GSVJTVF9DSFVOS19UWVBFICAgID0gMHgwMTAwLAotICAgIFJFU19YTUxfU1RBUlRfTkFNRVNQQUNFX1RZUEU9IDB4MDEwMCwKLSAgICBSRVNfWE1MX0VORF9OQU1FU1BBQ0VfVFlQRSAgPSAweDAxMDEsCi0gICAgUkVTX1hNTF9TVEFSVF9FTEVNRU5UX1RZUEUgID0gMHgwMTAyLAotICAgIFJFU19YTUxfRU5EX0VMRU1FTlRfVFlQRSAgICA9IDB4MDEwMywKLSAgICBSRVNfWE1MX0NEQVRBX1RZUEUgICAgICAgICAgPSAweDAxMDQsCi0gICAgUkVTX1hNTF9MQVNUX0NIVU5LX1RZUEUgICAgID0gMHgwMTdmLAotICAgIC8vIFRoaXMgY29udGFpbnMgYSB1aW50MzJfdCBhcnJheSBtYXBwaW5nIHN0cmluZ3MgaW4gdGhlIHN0cmluZwotICAgIC8vIHBvb2wgYmFjayB0byByZXNvdXJjZSBpZGVudGlmaWVycy4gIEl0IGlzIG9wdGlvbmFsLgotICAgIFJFU19YTUxfUkVTT1VSQ0VfTUFQX1RZUEUgICA9IDB4MDE4MCwKLQotICAgIC8vIENodW5rIHR5cGVzIGluIFJFU19UQUJMRV9UWVBFCi0gICAgUkVTX1RBQkxFX1BBQ0tBR0VfVFlQRSAgICAgID0gMHgwMjAwLAotICAgIFJFU19UQUJMRV9UWVBFX1RZUEUgICAgICAgICA9IDB4MDIwMSwKLSAgICBSRVNfVEFCTEVfVFlQRV9TUEVDX1RZUEUgICAgPSAweDAyMDIKLX07Ci0KLS8qKgotICogTWFjcm9zIGZvciBidWlsZGluZy9zcGxpdHRpbmcgcmVzb3VyY2UgaWRlbnRpZmllcnMuCi0gKi8KLSNkZWZpbmUgUmVzX1ZBTElESUQocmVzaWQpIChyZXNpZCAhPSAwKQotI2RlZmluZSBSZXNfQ0hFQ0tJRChyZXNpZCkgKChyZXNpZCYweEZGRkYwMDAwKSAhPSAwKQotI2RlZmluZSBSZXNfTUFLRUlEKHBhY2thZ2UsIHR5cGUsIGVudHJ5KSBcCi0gICAgKCgocGFja2FnZSsxKTw8MjQpIHwgKCgodHlwZSsxKSYweEZGKTw8MTYpIHwgKGVudHJ5JjB4RkZGRikpCi0jZGVmaW5lIFJlc19HRVRQQUNLQUdFKGlkKSAoKGlkPj4yNCktMSkKLSNkZWZpbmUgUmVzX0dFVFRZUEUoaWQpICgoKGlkPj4xNikmMHhGRiktMSkKLSNkZWZpbmUgUmVzX0dFVEVOVFJZKGlkKSAoaWQmMHhGRkZGKQotCi0jZGVmaW5lIFJlc19JTlRFUk5BTElEKHJlc2lkKSAoKHJlc2lkJjB4RkZGRjAwMDApICE9IDAgJiYgKHJlc2lkJjB4RkYwMDAwKSA9PSAwKQotI2RlZmluZSBSZXNfTUFLRUlOVEVSTkFMKGVudHJ5KSAoMHgwMTAwMDAwMCB8IChlbnRyeSYweEZGRkYpKQotI2RlZmluZSBSZXNfTUFLRUFSUkFZKGVudHJ5KSAoMHgwMjAwMDAwMCB8IChlbnRyeSYweEZGRkYpKQotCi0jZGVmaW5lIFJlc19NQVhQQUNLQUdFIDI1NQotCi0vKioKLSAqIFJlcHJlc2VudGF0aW9uIG9mIGEgdmFsdWUgaW4gYSByZXNvdXJjZSwgc3VwcGx5aW5nIHR5cGUKLSAqIGluZm9ybWF0aW9uLgotICovCi1zdHJ1Y3QgUmVzX3ZhbHVlCi17Ci0gICAgLy8gTnVtYmVyIG9mIGJ5dGVzIGluIHRoaXMgc3RydWN0dXJlLgotICAgIHVpbnQxNl90IHNpemU7Ci0KLSAgICAvLyBBbHdheXMgc2V0IHRvIDAuCi0gICAgdWludDhfdCByZXMwOwotICAgICAgICAKLSAgICAvLyBUeXBlIG9mIHRoZSBkYXRhIHZhbHVlLgotICAgIGVudW0gewotICAgICAgICAvLyBDb250YWlucyBubyBkYXRhLgotICAgICAgICBUWVBFX05VTEwgPSAweDAwLAotICAgICAgICAvLyBUaGUgJ2RhdGEnIGhvbGRzIGEgUmVzVGFibGVfcmVmLCBhIHJlZmVyZW5jZSB0byBhbm90aGVyIHJlc291cmNlCi0gICAgICAgIC8vIHRhYmxlIGVudHJ5LgotICAgICAgICBUWVBFX1JFRkVSRU5DRSA9IDB4MDEsCi0gICAgICAgIC8vIFRoZSAnZGF0YScgaG9sZHMgYW4gYXR0cmlidXRlIHJlc291cmNlIGlkZW50aWZpZXIuCi0gICAgICAgIFRZUEVfQVRUUklCVVRFID0gMHgwMiwKLSAgICAgICAgLy8gVGhlICdkYXRhJyBob2xkcyBhbiBpbmRleCBpbnRvIHRoZSBjb250YWluaW5nIHJlc291cmNlIHRhYmxlJ3MKLSAgICAgICAgLy8gZ2xvYmFsIHZhbHVlIHN0cmluZyBwb29sLgotICAgICAgICBUWVBFX1NUUklORyA9IDB4MDMsCi0gICAgICAgIC8vIFRoZSAnZGF0YScgaG9sZHMgYSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IG51bWJlci4KLSAgICAgICAgVFlQRV9GTE9BVCA9IDB4MDQsCi0gICAgICAgIC8vIFRoZSAnZGF0YScgaG9sZHMgYSBjb21wbGV4IG51bWJlciBlbmNvZGluZyBhIGRpbWVuc2lvbiB2YWx1ZSwKLSAgICAgICAgLy8gc3VjaCBhcyAiMTAwaW4iLgotICAgICAgICBUWVBFX0RJTUVOU0lPTiA9IDB4MDUsCi0gICAgICAgIC8vIFRoZSAnZGF0YScgaG9sZHMgYSBjb21wbGV4IG51bWJlciBlbmNvZGluZyBhIGZyYWN0aW9uIG9mIGEKLSAgICAgICAgLy8gY29udGFpbmVyLgotICAgICAgICBUWVBFX0ZSQUNUSU9OID0gMHgwNiwKLQotICAgICAgICAvLyBCZWdpbm5pbmcgb2YgaW50ZWdlciBmbGF2b3JzLi4uCi0gICAgICAgIFRZUEVfRklSU1RfSU5UID0gMHgxMCwKLQotICAgICAgICAvLyBUaGUgJ2RhdGEnIGlzIGEgcmF3IGludGVnZXIgdmFsdWUgb2YgdGhlIGZvcm0gbi4ubi4KLSAgICAgICAgVFlQRV9JTlRfREVDID0gMHgxMCwKLSAgICAgICAgLy8gVGhlICdkYXRhJyBpcyBhIHJhdyBpbnRlZ2VyIHZhbHVlIG9mIHRoZSBmb3JtIDB4bi4ubi4KLSAgICAgICAgVFlQRV9JTlRfSEVYID0gMHgxMSwKLSAgICAgICAgLy8gVGhlICdkYXRhJyBpcyBlaXRoZXIgMCBvciAxLCBmb3IgaW5wdXQgImZhbHNlIiBvciAidHJ1ZSIgcmVzcGVjdGl2ZWx5LgotICAgICAgICBUWVBFX0lOVF9CT09MRUFOID0gMHgxMiwKLQotICAgICAgICAvLyBCZWdpbm5pbmcgb2YgY29sb3IgaW50ZWdlciBmbGF2b3JzLi4uCi0gICAgICAgIFRZUEVfRklSU1RfQ09MT1JfSU5UID0gMHgxYywKLQotICAgICAgICAvLyBUaGUgJ2RhdGEnIGlzIGEgcmF3IGludGVnZXIgdmFsdWUgb2YgdGhlIGZvcm0gI2FhcnJnZ2JiLgotICAgICAgICBUWVBFX0lOVF9DT0xPUl9BUkdCOCA9IDB4MWMsCi0gICAgICAgIC8vIFRoZSAnZGF0YScgaXMgYSByYXcgaW50ZWdlciB2YWx1ZSBvZiB0aGUgZm9ybSAjcnJnZ2JiLgotICAgICAgICBUWVBFX0lOVF9DT0xPUl9SR0I4ID0gMHgxZCwKLSAgICAgICAgLy8gVGhlICdkYXRhJyBpcyBhIHJhdyBpbnRlZ2VyIHZhbHVlIG9mIHRoZSBmb3JtICNhcmdiLgotICAgICAgICBUWVBFX0lOVF9DT0xPUl9BUkdCNCA9IDB4MWUsCi0gICAgICAgIC8vIFRoZSAnZGF0YScgaXMgYSByYXcgaW50ZWdlciB2YWx1ZSBvZiB0aGUgZm9ybSAjcmdiLgotICAgICAgICBUWVBFX0lOVF9DT0xPUl9SR0I0ID0gMHgxZiwKLQotICAgICAgICAvLyAuLi5lbmQgb2YgaW50ZWdlciBmbGF2b3JzLgotICAgICAgICBUWVBFX0xBU1RfQ09MT1JfSU5UID0gMHgxZiwKLQotICAgICAgICAvLyAuLi5lbmQgb2YgaW50ZWdlciBmbGF2b3JzLgotICAgICAgICBUWVBFX0xBU1RfSU5UID0gMHgxZgotICAgIH07Ci0gICAgdWludDhfdCBkYXRhVHlwZTsKLQotICAgIC8vIFN0cnVjdHVyZSBvZiBjb21wbGV4IGRhdGEgdmFsdWVzIChUWVBFX1VOSVQgYW5kIFRZUEVfRlJBQ1RJT04pCi0gICAgZW51bSB7Ci0gICAgICAgIC8vIFdoZXJlIHRoZSB1bml0IHR5cGUgaW5mb3JtYXRpb24gaXMuICBUaGlzIGdpdmVzIHVzIDE2IHBvc3NpYmxlCi0gICAgICAgIC8vIHR5cGVzLCBhcyBkZWZpbmVkIGJlbG93LgotICAgICAgICBDT01QTEVYX1VOSVRfU0hJRlQgPSAwLAotICAgICAgICBDT01QTEVYX1VOSVRfTUFTSyA9IDB4ZiwKLQotICAgICAgICAvLyBUWVBFX0RJTUVOU0lPTjogVmFsdWUgaXMgcmF3IHBpeGVscy4KLSAgICAgICAgQ09NUExFWF9VTklUX1BYID0gMCwKLSAgICAgICAgLy8gVFlQRV9ESU1FTlNJT046IFZhbHVlIGlzIERldmljZSBJbmRlcGVuZGVudCBQaXhlbHMuCi0gICAgICAgIENPTVBMRVhfVU5JVF9ESVAgPSAxLAotICAgICAgICAvLyBUWVBFX0RJTUVOU0lPTjogVmFsdWUgaXMgYSBTY2FsZWQgZGV2aWNlIGluZGVwZW5kZW50IFBpeGVscy4KLSAgICAgICAgQ09NUExFWF9VTklUX1NQID0gMiwKLSAgICAgICAgLy8gVFlQRV9ESU1FTlNJT046IFZhbHVlIGlzIGluIHBvaW50cy4KLSAgICAgICAgQ09NUExFWF9VTklUX1BUID0gMywKLSAgICAgICAgLy8gVFlQRV9ESU1FTlNJT046IFZhbHVlIGlzIGluIGluY2hlcy4KLSAgICAgICAgQ09NUExFWF9VTklUX0lOID0gNCwKLSAgICAgICAgLy8gVFlQRV9ESU1FTlNJT046IFZhbHVlIGlzIGluIG1pbGxpbWV0ZXJzLgotICAgICAgICBDT01QTEVYX1VOSVRfTU0gPSA1LAotCi0gICAgICAgIC8vIFRZUEVfRlJBQ1RJT046IEEgYmFzaWMgZnJhY3Rpb24gb2YgdGhlIG92ZXJhbGwgc2l6ZS4KLSAgICAgICAgQ09NUExFWF9VTklUX0ZSQUNUSU9OID0gMCwKLSAgICAgICAgLy8gVFlQRV9GUkFDVElPTjogQSBmcmFjdGlvbiBvZiB0aGUgcGFyZW50IHNpemUuCi0gICAgICAgIENPTVBMRVhfVU5JVF9GUkFDVElPTl9QQVJFTlQgPSAxLAotCi0gICAgICAgIC8vIFdoZXJlIHRoZSByYWRpeCBpbmZvcm1hdGlvbiBpcywgdGVsbGluZyB3aGVyZSB0aGUgZGVjaW1hbCBwbGFjZQotICAgICAgICAvLyBhcHBlYXJzIGluIHRoZSBtYW50aXNzYS4gIFRoaXMgZ2l2ZSB1cyA0IHBvc3NpYmxlIGZpeGVkIHBvaW50Ci0gICAgICAgIC8vIHJlcHJlc2VudGF0aW9ucyBhcyBkZWZpbmVkIGJlbG93LgotICAgICAgICBDT01QTEVYX1JBRElYX1NISUZUID0gNCwKLSAgICAgICAgQ09NUExFWF9SQURJWF9NQVNLID0gMHgzLAotCi0gICAgICAgIC8vIFRoZSBtYW50aXNzYSBpcyBhbiBpbnRlZ3JhbCBudW1iZXIgLS0gaS5lLiwgMHhubm5ubm4uMAotICAgICAgICBDT01QTEVYX1JBRElYXzIzcDAgPSAwLAotICAgICAgICAvLyBUaGUgbWFudGlzc2EgbWFnbml0dWRlIGlzIDE2IGJpdHMgLS0gaS5lLCAweG5ubm4ubm4KLSAgICAgICAgQ09NUExFWF9SQURJWF8xNnA3ID0gMSwKLSAgICAgICAgLy8gVGhlIG1hbnRpc3NhIG1hZ25pdHVkZSBpcyA4IGJpdHMgLS0gaS5lLCAweG5uLm5ubm4KLSAgICAgICAgQ09NUExFWF9SQURJWF84cDE1ID0gMiwKLSAgICAgICAgLy8gVGhlIG1hbnRpc3NhIG1hZ25pdHVkZSBpcyAwIGJpdHMgLS0gaS5lLCAweDAubm5ubm5uCi0gICAgICAgIENPTVBMRVhfUkFESVhfMHAyMyA9IDMsCi0KLSAgICAgICAgLy8gV2hlcmUgdGhlIGFjdHVhbCB2YWx1ZSBpcy4gIFRoaXMgZ2l2ZXMgdXMgMjMgYml0cyBvZgotICAgICAgICAvLyBwcmVjaXNpb24uICBUaGUgdG9wIGJpdCBpcyB0aGUgc2lnbi4KLSAgICAgICAgQ09NUExFWF9NQU5USVNTQV9TSElGVCA9IDgsCi0gICAgICAgIENPTVBMRVhfTUFOVElTU0FfTUFTSyA9IDB4ZmZmZmZmCi0gICAgfTsKLQotICAgIC8vIFRoZSBkYXRhIGZvciB0aGlzIGl0ZW0sIGFzIGludGVycHJldGVkIGFjY29yZGluZyB0byBkYXRhVHlwZS4KLSAgICB1aW50MzJfdCBkYXRhOwotCi0gICAgdm9pZCBjb3B5RnJvbV9kdG9oKGNvbnN0IFJlc192YWx1ZSYgc3JjKTsKLX07Ci0KLS8qKgotICogIFRoaXMgaXMgYSByZWZlcmVuY2UgdG8gYSB1bmlxdWUgZW50cnkgKGEgUmVzVGFibGVfZW50cnkgc3RydWN0dXJlKQotICogIGluIGEgcmVzb3VyY2UgdGFibGUuICBUaGUgdmFsdWUgaXMgc3RydWN0dXJlZCBhczogMHhwcHR0ZWVlZSwKLSAqICB3aGVyZSBwcCBpcyB0aGUgcGFja2FnZSBpbmRleCwgdHQgaXMgdGhlIHR5cGUgaW5kZXggaW4gdGhhdAotICogIHBhY2thZ2UsIGFuZCBlZWVlIGlzIHRoZSBlbnRyeSBpbmRleCBpbiB0aGF0IHR5cGUuICBUaGUgcGFja2FnZQotICogIGFuZCB0eXBlIHZhbHVlcyBzdGFydCBhdCAxIGZvciB0aGUgZmlyc3QgaXRlbSwgdG8gaGVscCBjYXRjaCBjYXNlcwotICogIHdoZXJlIHRoZXkgaGF2ZSBub3QgYmVlbiBzdXBwbGllZC4KLSAqLwotc3RydWN0IFJlc1RhYmxlX3JlZgotewotICAgIHVpbnQzMl90IGlkZW50OwotfTsKLQotLyoqCi0gKiBSZWZlcmVuY2UgdG8gYSBzdHJpbmcgaW4gYSBzdHJpbmcgcG9vbC4KLSAqLwotc3RydWN0IFJlc1N0cmluZ1Bvb2xfcmVmCi17Ci0gICAgLy8gSW5kZXggaW50byB0aGUgc3RyaW5nIHBvb2wgdGFibGUgKHVpbnQzMl90LW9mZnNldCBmcm9tIHRoZSBpbmRpY2VzCi0gICAgLy8gaW1tZWRpYXRlbHkgYWZ0ZXIgUmVzU3RyaW5nUG9vbF9oZWFkZXIpIGF0IHdoaWNoIHRvIGZpbmQgdGhlIGxvY2F0aW9uCi0gICAgLy8gb2YgdGhlIHN0cmluZyBkYXRhIGluIHRoZSBwb29sLgotICAgIHVpbnQzMl90IGluZGV4OwotfTsKLQotLyoqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiAgU3RyaW5nIFBvb2wKLSAqCi0gKiAgQSBzZXQgb2Ygc3RyaW5ncyB0aGF0IGNhbiBiZSByZWZlcmVuY2VzIGJ5IG90aGVycyB0aHJvdWdoIGEKLSAqICBSZXNTdHJpbmdQb29sX3JlZi4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KLQotLyoqCi0gKiBEZWZpbml0aW9uIGZvciBhIHBvb2wgb2Ygc3RyaW5ncy4gIFRoZSBkYXRhIG9mIHRoaXMgY2h1bmsgaXMgYW4KLSAqIGFycmF5IG9mIHVpbnQzMl90IHByb3ZpZGluZyBpbmRpY2VzIGludG8gdGhlIHBvb2wsIHJlbGF0aXZlIHRvCi0gKiBzdHJpbmdzU3RhcnQuICBBdCBzdHJpbmdzU3RhcnQgYXJlIGFsbCBvZiB0aGUgVVRGLTE2IHN0cmluZ3MKLSAqIGNvbmNhdGVuYXRlZCB0b2dldGhlcjsgZWFjaCBzdGFydHMgd2l0aCBhIHVpbnQxNl90IG9mIHRoZSBzdHJpbmcncwotICogbGVuZ3RoIGFuZCBlYWNoIGVuZHMgd2l0aCBhIDB4MDAwMCB0ZXJtaW5hdG9yLiAgSWYgYSBzdHJpbmcgaXMgPgotICogMzI3NjcgY2hhcmFjdGVycywgdGhlIGhpZ2ggYml0IG9mIHRoZSBsZW5ndGggaXMgc2V0IG1lYW5pbmcgdG8gdGFrZQotICogdGhvc2UgMTUgYml0cyBhcyBhIGhpZ2ggd29yZCBhbmQgaXQgd2lsbCBiZSBmb2xsb3dlZCBieSBhbm90aGVyCi0gKiB1aW50MTZfdCBjb250YWluaW5nIHRoZSBsb3cgd29yZC4KLSAqCi0gKiBJZiBzdHlsZUNvdW50IGlzIG5vdCB6ZXJvLCB0aGVuIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGUgYXJyYXkgb2YKLSAqIHVpbnQzMl90IGluZGljZXMgaW50byB0aGUgc3RyaW5nIHRhYmxlIGlzIGFub3RoZXIgYXJyYXkgb2YgaW5kaWNlcwotICogaW50byBhIHN0eWxlIHRhYmxlIHN0YXJ0aW5nIGF0IHN0eWxlc1N0YXJ0LiAgRWFjaCBlbnRyeSBpbiB0aGUKLSAqIHN0eWxlIHRhYmxlIGlzIGFuIGFycmF5IG9mIFJlc1N0cmluZ1Bvb2xfc3BhbiBzdHJ1Y3R1cmVzLgotICovCi1zdHJ1Y3QgUmVzU3RyaW5nUG9vbF9oZWFkZXIKLXsKLSAgICBzdHJ1Y3QgUmVzQ2h1bmtfaGVhZGVyIGhlYWRlcjsKLQotICAgIC8vIE51bWJlciBvZiBzdHJpbmdzIGluIHRoaXMgcG9vbCAobnVtYmVyIG9mIHVpbnQzMl90IGluZGljZXMgdGhhdCBmb2xsb3cKLSAgICAvLyBpbiB0aGUgZGF0YSkuCi0gICAgdWludDMyX3Qgc3RyaW5nQ291bnQ7Ci0KLSAgICAvLyBOdW1iZXIgb2Ygc3R5bGUgc3BhbiBhcnJheXMgaW4gdGhlIHBvb2wgKG51bWJlciBvZiB1aW50MzJfdCBpbmRpY2VzCi0gICAgLy8gZm9sbG93IHRoZSBzdHJpbmcgaW5kaWNlcykuCi0gICAgdWludDMyX3Qgc3R5bGVDb3VudDsKLQotICAgIC8vIEZsYWdzLgotICAgIGVudW0gewotICAgICAgICAvLyBJZiBzZXQsIHRoZSBzdHJpbmcgaW5kZXggaXMgc29ydGVkIGJ5IHRoZSBzdHJpbmcgdmFsdWVzIChiYXNlZAotICAgICAgICAvLyBvbiBzdHJjbXAxNigpKS4KLSAgICAgICAgU09SVEVEX0ZMQUcgPSAxPDwwLAotCi0gICAgICAgIC8vIFN0cmluZyBwb29sIGlzIGVuY29kZWQgaW4gVVRGLTgKLSAgICAgICAgVVRGOF9GTEFHID0gMTw8OAotICAgIH07Ci0gICAgdWludDMyX3QgZmxhZ3M7Ci0KLSAgICAvLyBJbmRleCBmcm9tIGhlYWRlciBvZiB0aGUgc3RyaW5nIGRhdGEuCi0gICAgdWludDMyX3Qgc3RyaW5nc1N0YXJ0OwotCi0gICAgLy8gSW5kZXggZnJvbSBoZWFkZXIgb2YgdGhlIHN0eWxlIGRhdGEuCi0gICAgdWludDMyX3Qgc3R5bGVzU3RhcnQ7Ci19OwotCi0vKioKLSAqIFRoaXMgc3RydWN0dXJlIGRlZmluZXMgYSBzcGFuIG9mIHN0eWxlIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aAotICogYSBzdHJpbmcgaW4gdGhlIHBvb2wuCi0gKi8KLXN0cnVjdCBSZXNTdHJpbmdQb29sX3NwYW4KLXsKLSAgICBlbnVtIHsKLSAgICAgICAgRU5EID0gMHhGRkZGRkZGRgotICAgIH07Ci0KLSAgICAvLyBUaGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBzcGFuIC0tIHRoYXQgaXMsIHRoZSBuYW1lIG9mIHRoZSBYTUwKLSAgICAvLyB0YWcgdGhhdCBkZWZpbmVkIGl0LiAgVGhlIHNwZWNpYWwgdmFsdWUgRU5EICgweEZGRkZGRkZGKSBpbmRpY2F0ZXMKLSAgICAvLyB0aGUgZW5kIG9mIGFuIGFycmF5IG9mIHNwYW5zLgotICAgIFJlc1N0cmluZ1Bvb2xfcmVmIG5hbWU7Ci0KLSAgICAvLyBUaGUgcmFuZ2Ugb2YgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nIHRoYXQgdGhpcyBzcGFuIGFwcGxpZXMgdG8uCi0gICAgdWludDMyX3QgZmlyc3RDaGFyLCBsYXN0Q2hhcjsKLX07Ci0KLS8qKgotICogQ29udmVuaWVuY2UgY2xhc3MgZm9yIGFjY2Vzc2luZyBkYXRhIGluIGEgUmVzU3RyaW5nUG9vbCByZXNvdXJjZS4KLSAqLwotY2xhc3MgUmVzU3RyaW5nUG9vbAotewotcHVibGljOgotICAgIFJlc1N0cmluZ1Bvb2woKTsKLSAgICBSZXNTdHJpbmdQb29sKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBzaXplLCBib29sIGNvcHlEYXRhPWZhbHNlKTsKLSAgICB+UmVzU3RyaW5nUG9vbCgpOwotCi0gICAgc3RhdHVzX3Qgc2V0VG8oY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IHNpemUsIGJvb2wgY29weURhdGE9ZmFsc2UpOwotCi0gICAgc3RhdHVzX3QgZ2V0RXJyb3IoKSBjb25zdDsKLQotICAgIHZvaWQgdW5pbml0KCk7Ci0KLSAgICAvLyBSZXR1cm4gc3RyaW5nIGVudHJ5IGFzIFVURjE2OyBpZiB0aGUgcG9vbCBpcyBVVEY4LCB0aGUgc3RyaW5nIHdpbGwKLSAgICAvLyBiZSBjb252ZXJ0ZWQgYmVmb3JlIHJldHVybmluZy4KLSAgICBpbmxpbmUgY29uc3QgY2hhcjE2X3QqIHN0cmluZ0F0KGNvbnN0IFJlc1N0cmluZ1Bvb2xfcmVmJiByZWYsIHNpemVfdCogb3V0TGVuKSBjb25zdCB7Ci0gICAgICAgIHJldHVybiBzdHJpbmdBdChyZWYuaW5kZXgsIG91dExlbik7Ci0gICAgfQotICAgIGNvbnN0IGNoYXIxNl90KiBzdHJpbmdBdChzaXplX3QgaWR4LCBzaXplX3QqIG91dExlbikgY29uc3Q7Ci0KLSAgICAvLyBOb3RlOiByZXR1cm5zIG51bGwgaWYgdGhlIHN0cmluZyBwb29sIGlzIG5vdCBVVEY4LgotICAgIGNvbnN0IGNoYXIqIHN0cmluZzhBdChzaXplX3QgaWR4LCBzaXplX3QqIG91dExlbikgY29uc3Q7Ci0KLSAgICAvLyBSZXR1cm4gc3RyaW5nIHdoZXRoZXIgdGhlIHBvb2wgaXMgVVRGOCBvciBVVEYxNi4gIERvZXMgbm90IGFsbG93IHlvdQotICAgIC8vIHRvIGRpc3Rpbmd1aXNoIG51bGwuCi0gICAgY29uc3QgU3RyaW5nOCBzdHJpbmc4T2JqZWN0QXQoc2l6ZV90IGlkeCkgY29uc3Q7Ci0KLSAgICBjb25zdCBSZXNTdHJpbmdQb29sX3NwYW4qIHN0eWxlQXQoY29uc3QgUmVzU3RyaW5nUG9vbF9yZWYmIHJlZikgY29uc3Q7Ci0gICAgY29uc3QgUmVzU3RyaW5nUG9vbF9zcGFuKiBzdHlsZUF0KHNpemVfdCBpZHgpIGNvbnN0OwotCi0gICAgc3NpemVfdCBpbmRleE9mU3RyaW5nKGNvbnN0IGNoYXIxNl90KiBzdHIsIHNpemVfdCBzdHJMZW4pIGNvbnN0OwotCi0gICAgc2l6ZV90IHNpemUoKSBjb25zdDsKLSAgICBzaXplX3Qgc3R5bGVDb3VudCgpIGNvbnN0OwotICAgIHNpemVfdCBieXRlcygpIGNvbnN0OwotCi0gICAgYm9vbCBpc1NvcnRlZCgpIGNvbnN0OwotICAgIGJvb2wgaXNVVEY4KCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgc3RhdHVzX3QgICAgICAgICAgICAgICAgICAgIG1FcnJvcjsKLSAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgbU93bmVkRGF0YTsKLSAgICBjb25zdCBSZXNTdHJpbmdQb29sX2hlYWRlciogbUhlYWRlcjsKLSAgICBzaXplX3QgICAgICAgICAgICAgICAgICAgICAgbVNpemU7Ci0gICAgbXV0YWJsZSBNdXRleCAgICAgICAgICAgICAgIG1EZWNvZGVMb2NrOwotICAgIGNvbnN0IHVpbnQzMl90KiAgICAgICAgICAgICBtRW50cmllczsKLSAgICBjb25zdCB1aW50MzJfdCogICAgICAgICAgICAgbUVudHJ5U3R5bGVzOwotICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICBtU3RyaW5nczsKLSAgICBjaGFyMTZfdCBtdXRhYmxlKiogICAgICAgICAgbUNhY2hlOwotICAgIHVpbnQzMl90ICAgICAgICAgICAgICAgICAgICBtU3RyaW5nUG9vbFNpemU7ICAgIC8vIG51bWJlciBvZiB1aW50MTZfdAotICAgIGNvbnN0IHVpbnQzMl90KiAgICAgICAgICAgICBtU3R5bGVzOwotICAgIHVpbnQzMl90ICAgICAgICAgICAgICAgICAgICBtU3R5bGVQb29sU2l6ZTsgICAgLy8gbnVtYmVyIG9mIHVpbnQzMl90Ci19OwotCi0vKiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqICBYTUwgVHJlZQotICoKLSAqICBCaW5hcnkgcmVwcmVzZW50YXRpb24gb2YgYW4gWE1MIGRvY3VtZW50LiAgVGhpcyBpcyBkZXNpZ25lZCB0bwotICogIGV4cHJlc3MgZXZlcnl0aGluZyBpbiBhbiBYTUwgZG9jdW1lbnQsIGluIGEgZm9ybSB0aGF0IGlzIG11Y2gKLSAqICBlYXNpZXIgdG8gcGFyc2Ugb24gdGhlIGRldmljZS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KLQotLyoqCi0gKiBYTUwgdHJlZSBoZWFkZXIuICBUaGlzIGFwcGVhcnMgYXQgdGhlIGZyb250IG9mIGFuIFhNTCB0cmVlLAotICogZGVzY3JpYmluZyBpdHMgY29udGVudC4gIEl0IGlzIGZvbGxvd2VkIGJ5IGEgZmxhdCBhcnJheSBvZgotICogUmVzWE1MVHJlZV9ub2RlIHN0cnVjdHVyZXM7IHRoZSBoaWVyYXJjaHkgb2YgdGhlIFhNTCBkb2N1bWVudAotICogaXMgZGVzY3JpYmVkIGJ5IHRoZSBvY2N1cnJhbmNlIG9mIFJFU19YTUxfU1RBUlRfRUxFTUVOVF9UWVBFCi0gKiBhbmQgY29ycmVzcG9uZGluZyBSRVNfWE1MX0VORF9FTEVNRU5UX1RZUEUgbm9kZXMgaW4gdGhlIGFycmF5LgotICovCi1zdHJ1Y3QgUmVzWE1MVHJlZV9oZWFkZXIKLXsKLSAgICBzdHJ1Y3QgUmVzQ2h1bmtfaGVhZGVyIGhlYWRlcjsKLX07Ci0KLS8qKgotICogQmFzaWMgWE1MIHRyZWUgbm9kZS4gIEEgc2luZ2xlIGl0ZW0gaW4gdGhlIFhNTCBkb2N1bWVudC4gIEV4dGVuZGVkIGluZm8KLSAqIGFib3V0IHRoZSBub2RlIGNhbiBiZSBmb3VuZCBhZnRlciBoZWFkZXIuaGVhZGVyU2l6ZS4KLSAqLwotc3RydWN0IFJlc1hNTFRyZWVfbm9kZQotewotICAgIHN0cnVjdCBSZXNDaHVua19oZWFkZXIgaGVhZGVyOwotCi0gICAgLy8gTGluZSBudW1iZXIgaW4gb3JpZ2luYWwgc291cmNlIGZpbGUgYXQgd2hpY2ggdGhpcyBlbGVtZW50IGFwcGVhcmVkLgotICAgIHVpbnQzMl90IGxpbmVOdW1iZXI7Ci0KLSAgICAvLyBPcHRpb25hbCBYTUwgY29tbWVudCB0aGF0IHdhcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBlbGVtZW50OyAtMSBpZiBub25lLgotICAgIHN0cnVjdCBSZXNTdHJpbmdQb29sX3JlZiBjb21tZW50OwotfTsKLQotLyoqCi0gKiBFeHRlbmRlZCBYTUwgdHJlZSBub2RlIGZvciBDREFUQSB0YWdzIC0tIGluY2x1ZGVzIHRoZSBDREFUQSBzdHJpbmcuCi0gKiBBcHBlYXJzIGhlYWRlci5oZWFkZXJTaXplIGJ5dGVzIGFmdGVyIGEgUmVzWE1MVHJlZV9ub2RlLgotICovCi1zdHJ1Y3QgUmVzWE1MVHJlZV9jZGF0YUV4dAotewotICAgIC8vIFRoZSByYXcgQ0RBVEEgY2hhcmFjdGVyIGRhdGEuCi0gICAgc3RydWN0IFJlc1N0cmluZ1Bvb2xfcmVmIGRhdGE7Ci0gICAgCi0gICAgLy8gVGhlIHR5cGVkIHZhbHVlIG9mIHRoZSBjaGFyYWN0ZXIgZGF0YSBpZiB0aGlzIGlzIGEgQ0RBVEEgbm9kZS4KLSAgICBzdHJ1Y3QgUmVzX3ZhbHVlIHR5cGVkRGF0YTsKLX07Ci0KLS8qKgotICogRXh0ZW5kZWQgWE1MIHRyZWUgbm9kZSBmb3IgbmFtZXNwYWNlIHN0YXJ0L2VuZCBub2Rlcy4KLSAqIEFwcGVhcnMgaGVhZGVyLmhlYWRlclNpemUgYnl0ZXMgYWZ0ZXIgYSBSZXNYTUxUcmVlX25vZGUuCi0gKi8KLXN0cnVjdCBSZXNYTUxUcmVlX25hbWVzcGFjZUV4dAotewotICAgIC8vIFRoZSBwcmVmaXggb2YgdGhlIG5hbWVzcGFjZS4KLSAgICBzdHJ1Y3QgUmVzU3RyaW5nUG9vbF9yZWYgcHJlZml4OwotICAgIAotICAgIC8vIFRoZSBVUkkgb2YgdGhlIG5hbWVzcGFjZS4KLSAgICBzdHJ1Y3QgUmVzU3RyaW5nUG9vbF9yZWYgdXJpOwotfTsKLQotLyoqCi0gKiBFeHRlbmRlZCBYTUwgdHJlZSBub2RlIGZvciBlbGVtZW50IHN0YXJ0L2VuZCBub2Rlcy4KLSAqIEFwcGVhcnMgaGVhZGVyLmhlYWRlclNpemUgYnl0ZXMgYWZ0ZXIgYSBSZXNYTUxUcmVlX25vZGUuCi0gKi8KLXN0cnVjdCBSZXNYTUxUcmVlX2VuZEVsZW1lbnRFeHQKLXsKLSAgICAvLyBTdHJpbmcgb2YgdGhlIGZ1bGwgbmFtZXNwYWNlIG9mIHRoaXMgZWxlbWVudC4KLSAgICBzdHJ1Y3QgUmVzU3RyaW5nUG9vbF9yZWYgbnM7Ci0gICAgCi0gICAgLy8gU3RyaW5nIG5hbWUgb2YgdGhpcyBub2RlIGlmIGl0IGlzIGFuIEVMRU1FTlQ7IHRoZSByYXcKLSAgICAvLyBjaGFyYWN0ZXIgZGF0YSBpZiB0aGlzIGlzIGEgQ0RBVEEgbm9kZS4KLSAgICBzdHJ1Y3QgUmVzU3RyaW5nUG9vbF9yZWYgbmFtZTsKLX07Ci0KLS8qKgotICogRXh0ZW5kZWQgWE1MIHRyZWUgbm9kZSBmb3Igc3RhcnQgdGFncyAtLSBpbmNsdWRlcyBhdHRyaWJ1dGUKLSAqIGluZm9ybWF0aW9uLgotICogQXBwZWFycyBoZWFkZXIuaGVhZGVyU2l6ZSBieXRlcyBhZnRlciBhIFJlc1hNTFRyZWVfbm9kZS4KLSAqLwotc3RydWN0IFJlc1hNTFRyZWVfYXR0ckV4dAotewotICAgIC8vIFN0cmluZyBvZiB0aGUgZnVsbCBuYW1lc3BhY2Ugb2YgdGhpcyBlbGVtZW50LgotICAgIHN0cnVjdCBSZXNTdHJpbmdQb29sX3JlZiBuczsKLSAgICAKLSAgICAvLyBTdHJpbmcgbmFtZSBvZiB0aGlzIG5vZGUgaWYgaXQgaXMgYW4gRUxFTUVOVDsgdGhlIHJhdwotICAgIC8vIGNoYXJhY3RlciBkYXRhIGlmIHRoaXMgaXMgYSBDREFUQSBub2RlLgotICAgIHN0cnVjdCBSZXNTdHJpbmdQb29sX3JlZiBuYW1lOwotICAgIAotICAgIC8vIEJ5dGUgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0IG9mIHRoaXMgc3RydWN0dXJlIHdoZXJlIHRoZSBhdHRyaWJ1dGVzIHN0YXJ0LgotICAgIHVpbnQxNl90IGF0dHJpYnV0ZVN0YXJ0OwotICAgIAotICAgIC8vIFNpemUgb2YgdGhlIFJlc1hNTFRyZWVfYXR0cmlidXRlIHN0cnVjdHVyZXMgdGhhdCBmb2xsb3cuCi0gICAgdWludDE2X3QgYXR0cmlidXRlU2l6ZTsKLSAgICAKLSAgICAvLyBOdW1iZXIgb2YgYXR0cmlidXRlcyBhc3NvY2lhdGVkIHdpdGggYW4gRUxFTUVOVC4gIFRoZXNlIGFyZQotICAgIC8vIGF2YWlsYWJsZSBhcyBhbiBhcnJheSBvZiBSZXNYTUxUcmVlX2F0dHJpYnV0ZSBzdHJ1Y3R1cmVzCi0gICAgLy8gaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoaXMgbm9kZS4KLSAgICB1aW50MTZfdCBhdHRyaWJ1dGVDb3VudDsKLSAgICAKLSAgICAvLyBJbmRleCAoMS1iYXNlZCkgb2YgdGhlICJpZCIgYXR0cmlidXRlLiAwIGlmIG5vbmUuCi0gICAgdWludDE2X3QgaWRJbmRleDsKLSAgICAKLSAgICAvLyBJbmRleCAoMS1iYXNlZCkgb2YgdGhlICJjbGFzcyIgYXR0cmlidXRlLiAwIGlmIG5vbmUuCi0gICAgdWludDE2X3QgY2xhc3NJbmRleDsKLSAgICAKLSAgICAvLyBJbmRleCAoMS1iYXNlZCkgb2YgdGhlICJzdHlsZSIgYXR0cmlidXRlLiAwIGlmIG5vbmUuCi0gICAgdWludDE2X3Qgc3R5bGVJbmRleDsKLX07Ci0KLXN0cnVjdCBSZXNYTUxUcmVlX2F0dHJpYnV0ZQotewotICAgIC8vIE5hbWVzcGFjZSBvZiB0aGlzIGF0dHJpYnV0ZS4KLSAgICBzdHJ1Y3QgUmVzU3RyaW5nUG9vbF9yZWYgbnM7Ci0gICAgCi0gICAgLy8gTmFtZSBvZiB0aGlzIGF0dHJpYnV0ZS4KLSAgICBzdHJ1Y3QgUmVzU3RyaW5nUG9vbF9yZWYgbmFtZTsKLQotICAgIC8vIFRoZSBvcmlnaW5hbCByYXcgc3RyaW5nIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlLgotICAgIHN0cnVjdCBSZXNTdHJpbmdQb29sX3JlZiByYXdWYWx1ZTsKLSAgICAKLSAgICAvLyBQcm9jZXNzZXNkIHR5cGVkIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlLgotICAgIHN0cnVjdCBSZXNfdmFsdWUgdHlwZWRWYWx1ZTsKLX07Ci0KLWNsYXNzIFJlc1hNTFRyZWU7Ci0KLWNsYXNzIFJlc1hNTFBhcnNlcgotewotcHVibGljOgotICAgIFJlc1hNTFBhcnNlcihjb25zdCBSZXNYTUxUcmVlJiB0cmVlKTsKLQotICAgIGVudW0gZXZlbnRfY29kZV90IHsKLSAgICAgICAgQkFEX0RPQ1VNRU5UID0gLTEsCi0gICAgICAgIFNUQVJUX0RPQ1VNRU5UID0gMCwKLSAgICAgICAgRU5EX0RPQ1VNRU5UID0gMSwKLSAgICAgICAgCi0gICAgICAgIEZJUlNUX0NIVU5LX0NPREUgPSBSRVNfWE1MX0ZJUlNUX0NIVU5LX1RZUEUsIAotICAgICAgICAKLSAgICAgICAgU1RBUlRfTkFNRVNQQUNFID0gUkVTX1hNTF9TVEFSVF9OQU1FU1BBQ0VfVFlQRSwKLSAgICAgICAgRU5EX05BTUVTUEFDRSA9IFJFU19YTUxfRU5EX05BTUVTUEFDRV9UWVBFLAotICAgICAgICBTVEFSVF9UQUcgPSBSRVNfWE1MX1NUQVJUX0VMRU1FTlRfVFlQRSwKLSAgICAgICAgRU5EX1RBRyA9IFJFU19YTUxfRU5EX0VMRU1FTlRfVFlQRSwKLSAgICAgICAgVEVYVCA9IFJFU19YTUxfQ0RBVEFfVFlQRQotICAgIH07Ci0KLSAgICBzdHJ1Y3QgUmVzWE1MUG9zaXRpb24KLSAgICB7Ci0gICAgICAgIGV2ZW50X2NvZGVfdCAgICAgICAgICAgICAgICBldmVudENvZGU7Ci0gICAgICAgIGNvbnN0IFJlc1hNTFRyZWVfbm9kZSogICAgICBjdXJOb2RlOwotICAgICAgICBjb25zdCB2b2lkKiAgICAgICAgICAgICAgICAgY3VyRXh0OwotICAgIH07Ci0KLSAgICB2b2lkIHJlc3RhcnQoKTsKLQotICAgIGNvbnN0IFJlc1N0cmluZ1Bvb2wmIGdldFN0cmluZ3MoKSBjb25zdDsKLQotICAgIGV2ZW50X2NvZGVfdCBnZXRFdmVudFR5cGUoKSBjb25zdDsKLSAgICAvLyBOb3RlLCB1bmxpa2UgWG1sUHVsbFBhcnNlciwgdGhlIGZpcnN0IGNhbGwgdG8gbmV4dCgpIHdpbGwgcmV0dXJuCi0gICAgLy8gU1RBUlRfVEFHIG9mIHRoZSBmaXJzdCBlbGVtZW50LgotICAgIGV2ZW50X2NvZGVfdCBuZXh0KCk7Ci0KLSAgICAvLyBUaGVzZSBhcmUgYXZhaWxhYmxlIGZvciBhbGwgbm9kZXM6Ci0gICAgaW50MzJfdCBnZXRDb21tZW50SUQoKSBjb25zdDsKLSAgICBjb25zdCB1aW50MTZfdCogZ2V0Q29tbWVudChzaXplX3QqIG91dExlbikgY29uc3Q7Ci0gICAgdWludDMyX3QgZ2V0TGluZU51bWJlcigpIGNvbnN0OwotICAgIAotICAgIC8vIFRoaXMgaXMgYXZhaWxhYmxlIGZvciBURVhUOgotICAgIGludDMyX3QgZ2V0VGV4dElEKCkgY29uc3Q7Ci0gICAgY29uc3QgdWludDE2X3QqIGdldFRleHQoc2l6ZV90KiBvdXRMZW4pIGNvbnN0OwotICAgIHNzaXplX3QgZ2V0VGV4dFZhbHVlKFJlc192YWx1ZSogb3V0VmFsdWUpIGNvbnN0OwotICAgIAotICAgIC8vIFRoZXNlIGFyZSBhdmFpbGFibGUgZm9yIFNUQVJUX05BTUVTUEFDRSBhbmQgRU5EX05BTUVTUEFDRToKLSAgICBpbnQzMl90IGdldE5hbWVzcGFjZVByZWZpeElEKCkgY29uc3Q7Ci0gICAgY29uc3QgdWludDE2X3QqIGdldE5hbWVzcGFjZVByZWZpeChzaXplX3QqIG91dExlbikgY29uc3Q7Ci0gICAgaW50MzJfdCBnZXROYW1lc3BhY2VVcmlJRCgpIGNvbnN0OwotICAgIGNvbnN0IHVpbnQxNl90KiBnZXROYW1lc3BhY2VVcmkoc2l6ZV90KiBvdXRMZW4pIGNvbnN0OwotICAgIAotICAgIC8vIFRoZXNlIGFyZSBhdmFpbGFibGUgZm9yIFNUQVJUX1RBRyBhbmQgRU5EX1RBRzoKLSAgICBpbnQzMl90IGdldEVsZW1lbnROYW1lc3BhY2VJRCgpIGNvbnN0OwotICAgIGNvbnN0IHVpbnQxNl90KiBnZXRFbGVtZW50TmFtZXNwYWNlKHNpemVfdCogb3V0TGVuKSBjb25zdDsKLSAgICBpbnQzMl90IGdldEVsZW1lbnROYW1lSUQoKSBjb25zdDsKLSAgICBjb25zdCB1aW50MTZfdCogZ2V0RWxlbWVudE5hbWUoc2l6ZV90KiBvdXRMZW4pIGNvbnN0OwotICAgIAotICAgIC8vIFJlbWFpbmluZyBtZXRob2RzIGFyZSBmb3IgcmV0cmlldmluZyBpbmZvcm1hdGlvbiBhYm91dCBhdHRyaWJ1dGVzCi0gICAgLy8gYXNzb2NpYXRlZCB3aXRoIGEgU1RBUlRfVEFHOgotICAgIAotICAgIHNpemVfdCBnZXRBdHRyaWJ1dGVDb3VudCgpIGNvbnN0OwotICAgIAotICAgIC8vIFJldHVybnMgLTEgaWYgbm8gbmFtZXNwYWNlLCAtMiBpZiBpZHggb3V0IG9mIHJhbmdlLgotICAgIGludDMyX3QgZ2V0QXR0cmlidXRlTmFtZXNwYWNlSUQoc2l6ZV90IGlkeCkgY29uc3Q7Ci0gICAgY29uc3QgdWludDE2X3QqIGdldEF0dHJpYnV0ZU5hbWVzcGFjZShzaXplX3QgaWR4LCBzaXplX3QqIG91dExlbikgY29uc3Q7Ci0KLSAgICBpbnQzMl90IGdldEF0dHJpYnV0ZU5hbWVJRChzaXplX3QgaWR4KSBjb25zdDsKLSAgICBjb25zdCB1aW50MTZfdCogZ2V0QXR0cmlidXRlTmFtZShzaXplX3QgaWR4LCBzaXplX3QqIG91dExlbikgY29uc3Q7Ci0gICAgdWludDMyX3QgZ2V0QXR0cmlidXRlTmFtZVJlc0lEKHNpemVfdCBpZHgpIGNvbnN0OwotCi0gICAgLy8gVGhlc2Ugd2lsbCB3b3JrIG9ubHkgaWYgdGhlIHVuZGVybHlpbmcgc3RyaW5nIHBvb2wgaXMgVVRGLTguCi0gICAgY29uc3QgY2hhciogZ2V0QXR0cmlidXRlTmFtZXNwYWNlOChzaXplX3QgaWR4LCBzaXplX3QqIG91dExlbikgY29uc3Q7Ci0gICAgY29uc3QgY2hhciogZ2V0QXR0cmlidXRlTmFtZTgoc2l6ZV90IGlkeCwgc2l6ZV90KiBvdXRMZW4pIGNvbnN0OwotCi0gICAgaW50MzJfdCBnZXRBdHRyaWJ1dGVWYWx1ZVN0cmluZ0lEKHNpemVfdCBpZHgpIGNvbnN0OwotICAgIGNvbnN0IHVpbnQxNl90KiBnZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShzaXplX3QgaWR4LCBzaXplX3QqIG91dExlbikgY29uc3Q7Ci0gICAgCi0gICAgaW50MzJfdCBnZXRBdHRyaWJ1dGVEYXRhVHlwZShzaXplX3QgaWR4KSBjb25zdDsKLSAgICBpbnQzMl90IGdldEF0dHJpYnV0ZURhdGEoc2l6ZV90IGlkeCkgY29uc3Q7Ci0gICAgc3NpemVfdCBnZXRBdHRyaWJ1dGVWYWx1ZShzaXplX3QgaWR4LCBSZXNfdmFsdWUqIG91dFZhbHVlKSBjb25zdDsKLQotICAgIHNzaXplX3QgaW5kZXhPZkF0dHJpYnV0ZShjb25zdCBjaGFyKiBucywgY29uc3QgY2hhciogYXR0cikgY29uc3Q7Ci0gICAgc3NpemVfdCBpbmRleE9mQXR0cmlidXRlKGNvbnN0IGNoYXIxNl90KiBucywgc2l6ZV90IG5zTGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogYXR0ciwgc2l6ZV90IGF0dHJMZW4pIGNvbnN0OwotCi0gICAgc3NpemVfdCBpbmRleE9mSUQoKSBjb25zdDsKLSAgICBzc2l6ZV90IGluZGV4T2ZDbGFzcygpIGNvbnN0OwotICAgIHNzaXplX3QgaW5kZXhPZlN0eWxlKCkgY29uc3Q7Ci0KLSAgICB2b2lkIGdldFBvc2l0aW9uKFJlc1hNTFBvc2l0aW9uKiBwb3MpIGNvbnN0OwotICAgIHZvaWQgc2V0UG9zaXRpb24oY29uc3QgUmVzWE1MUG9zaXRpb24mIHBvcyk7Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFJlc1hNTFRyZWU7Ci0gICAgCi0gICAgZXZlbnRfY29kZV90IG5leHROb2RlKCk7Ci0KLSAgICBjb25zdCBSZXNYTUxUcmVlJiAgICAgICAgICAgbVRyZWU7Ci0gICAgZXZlbnRfY29kZV90ICAgICAgICAgICAgICAgIG1FdmVudENvZGU7Ci0gICAgY29uc3QgUmVzWE1MVHJlZV9ub2RlKiAgICAgIG1DdXJOb2RlOwotICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICBtQ3VyRXh0OwotfTsKLQotLyoqCi0gKiBDb252ZW5pZW5jZSBjbGFzcyBmb3IgYWNjZXNzaW5nIGRhdGEgaW4gYSBSZXNYTUxUcmVlIHJlc291cmNlLgotICovCi1jbGFzcyBSZXNYTUxUcmVlIDogcHVibGljIFJlc1hNTFBhcnNlcgotewotcHVibGljOgotICAgIFJlc1hNTFRyZWUoKTsKLSAgICBSZXNYTUxUcmVlKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBzaXplLCBib29sIGNvcHlEYXRhPWZhbHNlKTsKLSAgICB+UmVzWE1MVHJlZSgpOwotCi0gICAgc3RhdHVzX3Qgc2V0VG8oY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IHNpemUsIGJvb2wgY29weURhdGE9ZmFsc2UpOwotCi0gICAgc3RhdHVzX3QgZ2V0RXJyb3IoKSBjb25zdDsKLQotICAgIHZvaWQgdW5pbml0KCk7Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFJlc1hNTFBhcnNlcjsKLQotICAgIHN0YXR1c190IHZhbGlkYXRlTm9kZShjb25zdCBSZXNYTUxUcmVlX25vZGUqIG5vZGUpIGNvbnN0OwotCi0gICAgc3RhdHVzX3QgICAgICAgICAgICAgICAgICAgIG1FcnJvcjsKLSAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgbU93bmVkRGF0YTsKLSAgICBjb25zdCBSZXNYTUxUcmVlX2hlYWRlciogICAgbUhlYWRlcjsKLSAgICBzaXplX3QgICAgICAgICAgICAgICAgICAgICAgbVNpemU7Ci0gICAgY29uc3QgdWludDhfdCogICAgICAgICAgICAgIG1EYXRhRW5kOwotICAgIFJlc1N0cmluZ1Bvb2wgICAgICAgICAgICAgICBtU3RyaW5nczsKLSAgICBjb25zdCB1aW50MzJfdCogICAgICAgICAgICAgbVJlc0lkczsKLSAgICBzaXplX3QgICAgICAgICAgICAgICAgICAgICAgbU51bVJlc0lkczsKLSAgICBjb25zdCBSZXNYTUxUcmVlX25vZGUqICAgICAgbVJvb3ROb2RlOwotICAgIGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICBtUm9vdEV4dDsKLSAgICBldmVudF9jb2RlX3QgICAgICAgICAgICAgICAgbVJvb3RDb2RlOwotfTsKLQotLyoqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiAgUkVTT1VSQ0UgVEFCTEUKLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KLQotLyoqCi0gKiBIZWFkZXIgZm9yIGEgcmVzb3VyY2UgdGFibGUuICBJdHMgZGF0YSBjb250YWlucyBhIHNlcmllcyBvZgotICogYWRkaXRpb25hbCBjaHVua3M6Ci0gKiAgICogQSBSZXNTdHJpbmdQb29sX2hlYWRlciBjb250YWluaW5nIGFsbCB0YWJsZSB2YWx1ZXMuICBUaGlzIHN0cmluZyBwb29sCi0gKiAgICAgY29udGFpbnMgYWxsIG9mIHRoZSBzdHJpbmcgdmFsdWVzIGluIHRoZSBlbnRpcmUgcmVzb3VyY2UgdGFibGUgKG5vdAotICogICAgIHRoZSBuYW1lcyBvZiBlbnRyaWVzIG9yIHR5cGUgaWRlbnRpZmllcnMgaG93ZXZlcikuCi0gKiAgICogT25lIG9yIG1vcmUgUmVzVGFibGVfcGFja2FnZSBjaHVua3MuCi0gKgotICogU3BlY2lmaWMgZW50cmllcyB3aXRoaW4gYSByZXNvdXJjZSB0YWJsZSBjYW4gYmUgdW5pcXVlbHkgaWRlbnRpZmllZAotICogd2l0aCBhIHNpbmdsZSBpbnRlZ2VyIGFzIGRlZmluZWQgYnkgdGhlIFJlc1RhYmxlX3JlZiBzdHJ1Y3R1cmUuCi0gKi8KLXN0cnVjdCBSZXNUYWJsZV9oZWFkZXIKLXsKLSAgICBzdHJ1Y3QgUmVzQ2h1bmtfaGVhZGVyIGhlYWRlcjsKLQotICAgIC8vIFRoZSBudW1iZXIgb2YgUmVzVGFibGVfcGFja2FnZSBzdHJ1Y3R1cmVzLgotICAgIHVpbnQzMl90IHBhY2thZ2VDb3VudDsKLX07Ci0KLS8qKgotICogQSBjb2xsZWN0aW9uIG9mIHJlc291cmNlIGRhdGEgdHlwZXMgd2l0aGluIGEgcGFja2FnZS4gIEZvbGxvd2VkIGJ5Ci0gKiBvbmUgb3IgbW9yZSBSZXNUYWJsZV90eXBlIGFuZCBSZXNUYWJsZV90eXBlU3BlYyBzdHJ1Y3R1cmVzIGNvbnRhaW5pbmcgdGhlCi0gKiBlbnRyeSB2YWx1ZXMgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4KLSAqLwotc3RydWN0IFJlc1RhYmxlX3BhY2thZ2UKLXsKLSAgICBzdHJ1Y3QgUmVzQ2h1bmtfaGVhZGVyIGhlYWRlcjsKLQotICAgIC8vIElmIHRoaXMgaXMgYSBiYXNlIHBhY2thZ2UsIGl0cyBJRC4gIFBhY2thZ2UgSURzIHN0YXJ0Ci0gICAgLy8gYXQgMSAoY29ycmVzcG9uZGluZyB0byB0aGUgdmFsdWUgb2YgdGhlIHBhY2thZ2UgYml0cyBpbiBhCi0gICAgLy8gcmVzb3VyY2UgaWRlbnRpZmllcikuICAwIG1lYW5zIHRoaXMgaXMgbm90IGEgYmFzZSBwYWNrYWdlLgotICAgIHVpbnQzMl90IGlkOwotCi0gICAgLy8gQWN0dWFsIG5hbWUgb2YgdGhpcyBwYWNrYWdlLCBcMC10ZXJtaW5hdGVkLgotICAgIGNoYXIxNl90IG5hbWVbMTI4XTsKLQotICAgIC8vIE9mZnNldCB0byBhIFJlc1N0cmluZ1Bvb2xfaGVhZGVyIGRlZmluaW5nIHRoZSByZXNvdXJjZQotICAgIC8vIHR5cGUgc3ltYm9sIHRhYmxlLiAgSWYgemVybywgdGhpcyBwYWNrYWdlIGlzIGluaGVyaXRpbmcgZnJvbQotICAgIC8vIGFub3RoZXIgYmFzZSBwYWNrYWdlIChvdmVycmlkaW5nIHNwZWNpZmljIHZhbHVlcyBpbiBpdCkuCi0gICAgdWludDMyX3QgdHlwZVN0cmluZ3M7Ci0KLSAgICAvLyBMYXN0IGluZGV4IGludG8gdHlwZVN0cmluZ3MgdGhhdCBpcyBmb3IgcHVibGljIHVzZSBieSBvdGhlcnMuCi0gICAgdWludDMyX3QgbGFzdFB1YmxpY1R5cGU7Ci0KLSAgICAvLyBPZmZzZXQgdG8gYSBSZXNTdHJpbmdQb29sX2hlYWRlciBkZWZpbmluZyB0aGUgcmVzb3VyY2UKLSAgICAvLyBrZXkgc3ltYm9sIHRhYmxlLiAgSWYgemVybywgdGhpcyBwYWNrYWdlIGlzIGluaGVyaXRpbmcgZnJvbQotICAgIC8vIGFub3RoZXIgYmFzZSBwYWNrYWdlIChvdmVycmlkaW5nIHNwZWNpZmljIHZhbHVlcyBpbiBpdCkuCi0gICAgdWludDMyX3Qga2V5U3RyaW5nczsKLQotICAgIC8vIExhc3QgaW5kZXggaW50byBrZXlTdHJpbmdzIHRoYXQgaXMgZm9yIHB1YmxpYyB1c2UgYnkgb3RoZXJzLgotICAgIHVpbnQzMl90IGxhc3RQdWJsaWNLZXk7Ci19OwotCi0vKioKLSAqIERlc2NyaWJlcyBhIHBhcnRpY3VsYXIgcmVzb3VyY2UgY29uZmlndXJhdGlvbi4KLSAqLwotc3RydWN0IFJlc1RhYmxlX2NvbmZpZwotewotICAgIC8vIE51bWJlciBvZiBieXRlcyBpbiB0aGlzIHN0cnVjdHVyZS4KLSAgICB1aW50MzJfdCBzaXplOwotICAgIAotICAgIHVuaW9uIHsKLSAgICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgIC8vIE1vYmlsZSBjb3VudHJ5IGNvZGUgKGZyb20gU0lNKS4gIDAgbWVhbnMgImFueSIuCi0gICAgICAgICAgICB1aW50MTZfdCBtY2M7Ci0gICAgICAgICAgICAvLyBNb2JpbGUgbmV0d29yayBjb2RlIChmcm9tIFNJTSkuICAwIG1lYW5zICJhbnkiLgotICAgICAgICAgICAgdWludDE2X3QgbW5jOwotICAgICAgICB9OwotICAgICAgICB1aW50MzJfdCBpbXNpOwotICAgIH07Ci0gICAgCi0gICAgdW5pb24gewotICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgLy8gXDBcMCBtZWFucyAiYW55Ii4gIE90aGVyd2lzZSwgZW4sIGZyLCBldGMuCi0gICAgICAgICAgICBjaGFyIGxhbmd1YWdlWzJdOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBcMFwwIG1lYW5zICJhbnkiLiAgT3RoZXJ3aXNlLCBVUywgQ0EsIGV0Yy4KLSAgICAgICAgICAgIGNoYXIgY291bnRyeVsyXTsKLSAgICAgICAgfTsKLSAgICAgICAgdWludDMyX3QgbG9jYWxlOwotICAgIH07Ci0gICAgCi0gICAgZW51bSB7Ci0gICAgICAgIE9SSUVOVEFUSU9OX0FOWSAgPSBBQ09ORklHVVJBVElPTl9PUklFTlRBVElPTl9BTlksCi0gICAgICAgIE9SSUVOVEFUSU9OX1BPUlQgPSBBQ09ORklHVVJBVElPTl9PUklFTlRBVElPTl9QT1JULAotICAgICAgICBPUklFTlRBVElPTl9MQU5EID0gQUNPTkZJR1VSQVRJT05fT1JJRU5UQVRJT05fTEFORCwKLSAgICAgICAgT1JJRU5UQVRJT05fU1FVQVJFID0gQUNPTkZJR1VSQVRJT05fT1JJRU5UQVRJT05fU1FVQVJFLAotICAgIH07Ci0gICAgCi0gICAgZW51bSB7Ci0gICAgICAgIFRPVUNIU0NSRUVOX0FOWSAgPSBBQ09ORklHVVJBVElPTl9UT1VDSFNDUkVFTl9BTlksCi0gICAgICAgIFRPVUNIU0NSRUVOX05PVE9VQ0ggID0gQUNPTkZJR1VSQVRJT05fVE9VQ0hTQ1JFRU5fTk9UT1VDSCwKLSAgICAgICAgVE9VQ0hTQ1JFRU5fU1RZTFVTICA9IEFDT05GSUdVUkFUSU9OX1RPVUNIU0NSRUVOX1NUWUxVUywKLSAgICAgICAgVE9VQ0hTQ1JFRU5fRklOR0VSICA9IEFDT05GSUdVUkFUSU9OX1RPVUNIU0NSRUVOX0ZJTkdFUiwKLSAgICB9OwotICAgIAotICAgIGVudW0gewotICAgICAgICBERU5TSVRZX0RFRkFVTFQgPSBBQ09ORklHVVJBVElPTl9ERU5TSVRZX0RFRkFVTFQsCi0gICAgICAgIERFTlNJVFlfTE9XID0gQUNPTkZJR1VSQVRJT05fREVOU0lUWV9MT1csCi0gICAgICAgIERFTlNJVFlfTUVESVVNID0gQUNPTkZJR1VSQVRJT05fREVOU0lUWV9NRURJVU0sCi0gICAgICAgIERFTlNJVFlfVFYgPSBBQ09ORklHVVJBVElPTl9ERU5TSVRZX1RWLAotICAgICAgICBERU5TSVRZX0hJR0ggPSBBQ09ORklHVVJBVElPTl9ERU5TSVRZX0hJR0gsCi0gICAgICAgIERFTlNJVFlfWEhJR0ggPSBBQ09ORklHVVJBVElPTl9ERU5TSVRZX1hISUdILAotICAgICAgICBERU5TSVRZX1hYSElHSCA9IEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfWFhISUdILAotICAgICAgICBERU5TSVRZX1hYWEhJR0ggPSBBQ09ORklHVVJBVElPTl9ERU5TSVRZX1hYWEhJR0gsCi0gICAgICAgIERFTlNJVFlfTk9ORSA9IEFDT05GSUdVUkFUSU9OX0RFTlNJVFlfTk9ORQotICAgIH07Ci0gICAgCi0gICAgdW5pb24gewotICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgdWludDhfdCBvcmllbnRhdGlvbjsKLSAgICAgICAgICAgIHVpbnQ4X3QgdG91Y2hzY3JlZW47Ci0gICAgICAgICAgICB1aW50MTZfdCBkZW5zaXR5OwotICAgICAgICB9OwotICAgICAgICB1aW50MzJfdCBzY3JlZW5UeXBlOwotICAgIH07Ci0gICAgCi0gICAgZW51bSB7Ci0gICAgICAgIEtFWUJPQVJEX0FOWSAgPSBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF9BTlksCi0gICAgICAgIEtFWUJPQVJEX05PS0VZUyAgPSBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF9OT0tFWVMsCi0gICAgICAgIEtFWUJPQVJEX1FXRVJUWSAgPSBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF9RV0VSVFksCi0gICAgICAgIEtFWUJPQVJEXzEyS0VZICA9IEFDT05GSUdVUkFUSU9OX0tFWUJPQVJEXzEyS0VZLAotICAgIH07Ci0gICAgCi0gICAgZW51bSB7Ci0gICAgICAgIE5BVklHQVRJT05fQU5ZICA9IEFDT05GSUdVUkFUSU9OX05BVklHQVRJT05fQU5ZLAotICAgICAgICBOQVZJR0FUSU9OX05PTkFWICA9IEFDT05GSUdVUkFUSU9OX05BVklHQVRJT05fTk9OQVYsCi0gICAgICAgIE5BVklHQVRJT05fRFBBRCAgPSBBQ09ORklHVVJBVElPTl9OQVZJR0FUSU9OX0RQQUQsCi0gICAgICAgIE5BVklHQVRJT05fVFJBQ0tCQUxMICA9IEFDT05GSUdVUkFUSU9OX05BVklHQVRJT05fVFJBQ0tCQUxMLAotICAgICAgICBOQVZJR0FUSU9OX1dIRUVMICA9IEFDT05GSUdVUkFUSU9OX05BVklHQVRJT05fV0hFRUwsCi0gICAgfTsKLSAgICAKLSAgICBlbnVtIHsKLSAgICAgICAgTUFTS19LRVlTSElEREVOID0gMHgwMDAzLAotICAgICAgICBLRVlTSElEREVOX0FOWSA9IEFDT05GSUdVUkFUSU9OX0tFWVNISURERU5fQU5ZLAotICAgICAgICBLRVlTSElEREVOX05PID0gQUNPTkZJR1VSQVRJT05fS0VZU0hJRERFTl9OTywKLSAgICAgICAgS0VZU0hJRERFTl9ZRVMgPSBBQ09ORklHVVJBVElPTl9LRVlTSElEREVOX1lFUywKLSAgICAgICAgS0VZU0hJRERFTl9TT0ZUID0gQUNPTkZJR1VSQVRJT05fS0VZU0hJRERFTl9TT0ZULAotICAgIH07Ci0gICAgCi0gICAgZW51bSB7Ci0gICAgICAgIE1BU0tfTkFWSElEREVOID0gMHgwMDBjLAotICAgICAgICBTSElGVF9OQVZISURERU4gPSAyLAotICAgICAgICBOQVZISURERU5fQU5ZID0gQUNPTkZJR1VSQVRJT05fTkFWSElEREVOX0FOWSA8PCBTSElGVF9OQVZISURERU4sCi0gICAgICAgIE5BVkhJRERFTl9OTyA9IEFDT05GSUdVUkFUSU9OX05BVkhJRERFTl9OTyA8PCBTSElGVF9OQVZISURERU4sCi0gICAgICAgIE5BVkhJRERFTl9ZRVMgPSBBQ09ORklHVVJBVElPTl9OQVZISURERU5fWUVTIDw8IFNISUZUX05BVkhJRERFTiwKLSAgICB9OwotICAgIAotICAgIHVuaW9uIHsKLSAgICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgIHVpbnQ4X3Qga2V5Ym9hcmQ7Ci0gICAgICAgICAgICB1aW50OF90IG5hdmlnYXRpb247Ci0gICAgICAgICAgICB1aW50OF90IGlucHV0RmxhZ3M7Ci0gICAgICAgICAgICB1aW50OF90IGlucHV0UGFkMDsKLSAgICAgICAgfTsKLSAgICAgICAgdWludDMyX3QgaW5wdXQ7Ci0gICAgfTsKLSAgICAKLSAgICBlbnVtIHsKLSAgICAgICAgU0NSRUVOV0lEVEhfQU5ZID0gMAotICAgIH07Ci0gICAgCi0gICAgZW51bSB7Ci0gICAgICAgIFNDUkVFTkhFSUdIVF9BTlkgPSAwCi0gICAgfTsKLSAgICAKLSAgICB1bmlvbiB7Ci0gICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICB1aW50MTZfdCBzY3JlZW5XaWR0aDsKLSAgICAgICAgICAgIHVpbnQxNl90IHNjcmVlbkhlaWdodDsKLSAgICAgICAgfTsKLSAgICAgICAgdWludDMyX3Qgc2NyZWVuU2l6ZTsKLSAgICB9OwotICAgIAotICAgIGVudW0gewotICAgICAgICBTREtWRVJTSU9OX0FOWSA9IDAKLSAgICB9OwotICAgIAotICAgIGVudW0gewotICAgICAgICBNSU5PUlZFUlNJT05fQU5ZID0gMAotICAgIH07Ci0gICAgCi0gICAgdW5pb24gewotICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgdWludDE2X3Qgc2RrVmVyc2lvbjsKLSAgICAgICAgICAgIC8vIEZvciBub3cgbWlub3JWZXJzaW9uIG11c3QgYWx3YXlzIGJlIDAhISEgIEl0cyBtZWFuaW5nCi0gICAgICAgICAgICAvLyBpcyBjdXJyZW50bHkgdW5kZWZpbmVkLgotICAgICAgICAgICAgdWludDE2X3QgbWlub3JWZXJzaW9uOwotICAgICAgICB9OwotICAgICAgICB1aW50MzJfdCB2ZXJzaW9uOwotICAgIH07Ci0gICAgCi0gICAgZW51bSB7Ci0gICAgICAgIC8vIHNjcmVlbkxheW91dCBiaXRzIGZvciBzY3JlZW4gc2l6ZSBjbGFzcy4KLSAgICAgICAgTUFTS19TQ1JFRU5TSVpFID0gMHgwZiwKLSAgICAgICAgU0NSRUVOU0laRV9BTlkgPSBBQ09ORklHVVJBVElPTl9TQ1JFRU5TSVpFX0FOWSwKLSAgICAgICAgU0NSRUVOU0laRV9TTUFMTCA9IEFDT05GSUdVUkFUSU9OX1NDUkVFTlNJWkVfU01BTEwsCi0gICAgICAgIFNDUkVFTlNJWkVfTk9STUFMID0gQUNPTkZJR1VSQVRJT05fU0NSRUVOU0laRV9OT1JNQUwsCi0gICAgICAgIFNDUkVFTlNJWkVfTEFSR0UgPSBBQ09ORklHVVJBVElPTl9TQ1JFRU5TSVpFX0xBUkdFLAotICAgICAgICBTQ1JFRU5TSVpFX1hMQVJHRSA9IEFDT05GSUdVUkFUSU9OX1NDUkVFTlNJWkVfWExBUkdFLAotICAgICAgICAKLSAgICAgICAgLy8gc2NyZWVuTGF5b3V0IGJpdHMgZm9yIHdpZGUvbG9uZyBzY3JlZW4gdmFyaWF0aW9uLgotICAgICAgICBNQVNLX1NDUkVFTkxPTkcgPSAweDMwLAotICAgICAgICBTSElGVF9TQ1JFRU5MT05HID0gNCwKLSAgICAgICAgU0NSRUVOTE9OR19BTlkgPSBBQ09ORklHVVJBVElPTl9TQ1JFRU5MT05HX0FOWSA8PCBTSElGVF9TQ1JFRU5MT05HLAotICAgICAgICBTQ1JFRU5MT05HX05PID0gQUNPTkZJR1VSQVRJT05fU0NSRUVOTE9OR19OTyA8PCBTSElGVF9TQ1JFRU5MT05HLAotICAgICAgICBTQ1JFRU5MT05HX1lFUyA9IEFDT05GSUdVUkFUSU9OX1NDUkVFTkxPTkdfWUVTIDw8IFNISUZUX1NDUkVFTkxPTkcsCi0KLSAgICAgICAgLy8gc2NyZWVuTGF5b3V0IGJpdHMgZm9yIGxheW91dCBkaXJlY3Rpb24uCi0gICAgICAgIE1BU0tfTEFZT1VURElSID0gMHhDMCwKLSAgICAgICAgU0hJRlRfTEFZT1VURElSID0gNiwKLSAgICAgICAgTEFZT1VURElSX0FOWSA9IEFDT05GSUdVUkFUSU9OX0xBWU9VVERJUl9BTlkgPDwgU0hJRlRfTEFZT1VURElSLAotICAgICAgICBMQVlPVVRESVJfTFRSID0gQUNPTkZJR1VSQVRJT05fTEFZT1VURElSX0xUUiA8PCBTSElGVF9MQVlPVVRESVIsCi0gICAgICAgIExBWU9VVERJUl9SVEwgPSBBQ09ORklHVVJBVElPTl9MQVlPVVRESVJfUlRMIDw8IFNISUZUX0xBWU9VVERJUiwKLSAgICB9OwotICAgIAotICAgIGVudW0gewotICAgICAgICAvLyB1aU1vZGUgYml0cyBmb3IgdGhlIG1vZGUgdHlwZS4KLSAgICAgICAgTUFTS19VSV9NT0RFX1RZUEUgPSAweDBmLAotICAgICAgICBVSV9NT0RFX1RZUEVfQU5ZID0gQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9UWVBFX0FOWSwKLSAgICAgICAgVUlfTU9ERV9UWVBFX05PUk1BTCA9IEFDT05GSUdVUkFUSU9OX1VJX01PREVfVFlQRV9OT1JNQUwsCi0gICAgICAgIFVJX01PREVfVFlQRV9ERVNLID0gQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9UWVBFX0RFU0ssCi0gICAgICAgIFVJX01PREVfVFlQRV9DQVIgPSBBQ09ORklHVVJBVElPTl9VSV9NT0RFX1RZUEVfQ0FSLAotICAgICAgICBVSV9NT0RFX1RZUEVfVEVMRVZJU0lPTiA9IEFDT05GSUdVUkFUSU9OX1VJX01PREVfVFlQRV9URUxFVklTSU9OLAotICAgICAgICBVSV9NT0RFX1RZUEVfQVBQTElBTkNFID0gQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9UWVBFX0FQUExJQU5DRSwKLQotICAgICAgICAvLyB1aU1vZGUgYml0cyBmb3IgdGhlIG5pZ2h0IHN3aXRjaC4KLSAgICAgICAgTUFTS19VSV9NT0RFX05JR0hUID0gMHgzMCwKLSAgICAgICAgU0hJRlRfVUlfTU9ERV9OSUdIVCA9IDQsCi0gICAgICAgIFVJX01PREVfTklHSFRfQU5ZID0gQUNPTkZJR1VSQVRJT05fVUlfTU9ERV9OSUdIVF9BTlkgPDwgU0hJRlRfVUlfTU9ERV9OSUdIVCwKLSAgICAgICAgVUlfTU9ERV9OSUdIVF9OTyA9IEFDT05GSUdVUkFUSU9OX1VJX01PREVfTklHSFRfTk8gPDwgU0hJRlRfVUlfTU9ERV9OSUdIVCwKLSAgICAgICAgVUlfTU9ERV9OSUdIVF9ZRVMgPSBBQ09ORklHVVJBVElPTl9VSV9NT0RFX05JR0hUX1lFUyA8PCBTSElGVF9VSV9NT0RFX05JR0hULAotICAgIH07Ci0KLSAgICB1bmlvbiB7Ci0gICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICB1aW50OF90IHNjcmVlbkxheW91dDsKLSAgICAgICAgICAgIHVpbnQ4X3QgdWlNb2RlOwotICAgICAgICAgICAgdWludDE2X3Qgc21hbGxlc3RTY3JlZW5XaWR0aERwOwotICAgICAgICB9OwotICAgICAgICB1aW50MzJfdCBzY3JlZW5Db25maWc7Ci0gICAgfTsKLSAgICAKLSAgICB1bmlvbiB7Ci0gICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICB1aW50MTZfdCBzY3JlZW5XaWR0aERwOwotICAgICAgICAgICAgdWludDE2X3Qgc2NyZWVuSGVpZ2h0RHA7Ci0gICAgICAgIH07Ci0gICAgICAgIHVpbnQzMl90IHNjcmVlblNpemVEcDsKLSAgICB9OwotCi0gICAgdm9pZCBjb3B5RnJvbURldmljZU5vU3dhcChjb25zdCBSZXNUYWJsZV9jb25maWcmIG8pOwotICAgIAotICAgIHZvaWQgY29weUZyb21EdG9IKGNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgbyk7Ci0gICAgCi0gICAgdm9pZCBzd2FwSHRvRCgpOwotCi0gICAgaW50IGNvbXBhcmUoY29uc3QgUmVzVGFibGVfY29uZmlnJiBvKSBjb25zdDsKLSAgICBpbnQgY29tcGFyZUxvZ2ljYWwoY29uc3QgUmVzVGFibGVfY29uZmlnJiBvKSBjb25zdDsKLQotICAgIC8vIEZsYWdzIGluZGljYXRpbmcgYSBzZXQgb2YgY29uZmlnIHZhbHVlcy4gIFRoZXNlIGZsYWcgY29uc3RhbnRzIG11c3QKLSAgICAvLyBtYXRjaCB0aGUgY29ycmVzcG9uZGluZyBvbmVzIGluIGFuZHJvaWQuY29udGVudC5wbS5BY3Rpdml0eUluZm8gYW5kCi0gICAgLy8gYXR0cnNfbWFuaWZlc3QueG1sLgotICAgIGVudW0gewotICAgICAgICBDT05GSUdfTUNDID0gQUNPTkZJR1VSQVRJT05fTUNDLAotICAgICAgICBDT05GSUdfTU5DID0gQUNPTkZJR1VSQVRJT05fTUNDLAotICAgICAgICBDT05GSUdfTE9DQUxFID0gQUNPTkZJR1VSQVRJT05fTE9DQUxFLAotICAgICAgICBDT05GSUdfVE9VQ0hTQ1JFRU4gPSBBQ09ORklHVVJBVElPTl9UT1VDSFNDUkVFTiwKLSAgICAgICAgQ09ORklHX0tFWUJPQVJEID0gQUNPTkZJR1VSQVRJT05fS0VZQk9BUkQsCi0gICAgICAgIENPTkZJR19LRVlCT0FSRF9ISURERU4gPSBBQ09ORklHVVJBVElPTl9LRVlCT0FSRF9ISURERU4sCi0gICAgICAgIENPTkZJR19OQVZJR0FUSU9OID0gQUNPTkZJR1VSQVRJT05fTkFWSUdBVElPTiwKLSAgICAgICAgQ09ORklHX09SSUVOVEFUSU9OID0gQUNPTkZJR1VSQVRJT05fT1JJRU5UQVRJT04sCi0gICAgICAgIENPTkZJR19ERU5TSVRZID0gQUNPTkZJR1VSQVRJT05fREVOU0lUWSwKLSAgICAgICAgQ09ORklHX1NDUkVFTl9TSVpFID0gQUNPTkZJR1VSQVRJT05fU0NSRUVOX1NJWkUsCi0gICAgICAgIENPTkZJR19TTUFMTEVTVF9TQ1JFRU5fU0laRSA9IEFDT05GSUdVUkFUSU9OX1NNQUxMRVNUX1NDUkVFTl9TSVpFLAotICAgICAgICBDT05GSUdfVkVSU0lPTiA9IEFDT05GSUdVUkFUSU9OX1ZFUlNJT04sCi0gICAgICAgIENPTkZJR19TQ1JFRU5fTEFZT1VUID0gQUNPTkZJR1VSQVRJT05fU0NSRUVOX0xBWU9VVCwKLSAgICAgICAgQ09ORklHX1VJX01PREUgPSBBQ09ORklHVVJBVElPTl9VSV9NT0RFLAotICAgICAgICBDT05GSUdfTEFZT1VURElSID0gQUNPTkZJR1VSQVRJT05fTEFZT1VURElSLAotICAgIH07Ci0gICAgCi0gICAgLy8gQ29tcGFyZSB0d28gY29uZmlndXJhdGlvbiwgcmV0dXJuaW5nIENPTkZJR18qIGZsYWdzIHNldCBmb3IgZWFjaCB2YWx1ZQotICAgIC8vIHRoYXQgaXMgZGlmZmVyZW50LgotICAgIGludCBkaWZmKGNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgbykgY29uc3Q7Ci0gICAgCi0gICAgLy8gUmV0dXJuIHRydWUgaWYgJ3RoaXMnIGlzIG1vcmUgc3BlY2lmaWMgdGhhbiAnbycuCi0gICAgYm9vbCBpc01vcmVTcGVjaWZpY1RoYW4oY29uc3QgUmVzVGFibGVfY29uZmlnJiBvKSBjb25zdDsKLQotICAgIC8vIFJldHVybiB0cnVlIGlmICd0aGlzJyBpcyBhIGJldHRlciBtYXRjaCB0aGFuICdvJyBmb3IgdGhlICdyZXF1ZXN0ZWQnCi0gICAgLy8gY29uZmlndXJhdGlvbi4gIFRoaXMgYXNzdW1lcyB0aGF0IG1hdGNoKCkgaGFzIGFscmVhZHkgYmVlbiB1c2VkIHRvCi0gICAgLy8gcmVtb3ZlIGFueSBjb25maWd1cmF0aW9ucyB0aGF0IGRvbid0IG1hdGNoIHRoZSByZXF1ZXN0ZWQgY29uZmlndXJhdGlvbgotICAgIC8vIGF0IGFsbDsgaWYgdGhleSBhcmUgbm90IGZpcnN0IGZpbHRlcmVkLCBub24tbWF0Y2hpbmcgcmVzdWx0cyBjYW4gYmUKLSAgICAvLyBjb25zaWRlcmVkIGJldHRlciB0aGFuIG1hdGNoaW5nIG9uZXMuCi0gICAgLy8gVGhlIGdlbmVyYWwgcnVsZSBwZXIgYXR0cmlidXRlOiBpZiB0aGUgcmVxdWVzdCBjYXJlcyBhYm91dCBhbiBhdHRyaWJ1dGUKLSAgICAvLyAoaXQgbm9ybWFsbHkgZG9lcyksIGlmIHRoZSB0d28gKHRoaXMgYW5kIG8pIGFyZSBlcXVhbCBpdCdzIGEgdGllLiAgSWYKLSAgICAvLyB0aGV5IGFyZSBub3QgZXF1YWwgdGhlbiBvbmUgbXVzdCBiZSBnZW5lcmljIGJlY2F1c2Ugb25seSBnZW5lcmljIGFuZAotICAgIC8vICc9PXJlcXVlc3RlZCcgd2lsbCBwYXNzIHRoZSBtYXRjaCgpIGNhbGwuICBTbyBpZiB0aGlzIGlzIG5vdCBnZW5lcmljLAotICAgIC8vIGl0IHdpbnMuICBJZiB0aGlzIElTIGdlbmVyaWMsIG8gd2lucyAocmV0dXJuIGZhbHNlKS4KLSAgICBib29sIGlzQmV0dGVyVGhhbihjb25zdCBSZXNUYWJsZV9jb25maWcmIG8sIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyogcmVxdWVzdGVkKSBjb25zdDsKLQotICAgIC8vIFJldHVybiB0cnVlIGlmICd0aGlzJyBjYW4gYmUgY29uc2lkZXJlZCBhIG1hdGNoIGZvciB0aGUgcGFyYW1ldGVycyBpbiAKLSAgICAvLyAnc2V0dGluZ3MnLgotICAgIC8vIE5vdGUgdGhpcyBpcyBhc3ltZXRyaWMuICBBIGRlZmF1bHQgcGllY2Ugb2YgZGF0YSB3aWxsIG1hdGNoIGV2ZXJ5IHJlcXVlc3QKLSAgICAvLyBidXQgYSByZXF1ZXN0IGZvciB0aGUgZGVmYXVsdCBzaG91bGQgbm90IG1hdGNoIG9kZCBzcGVjaWZpY3MKLSAgICAvLyAoaWUsIHJlcXVlc3Qgd2l0aCBubyBtY2Mgc2hvdWxkIG5vdCBtYXRjaCBhIHBhcnRpY3VsYXIgbWNjJ3MgZGF0YSkKLSAgICAvLyBzZXR0aW5ncyBpcyB0aGUgcmVxdWVzdGVkIHNldHRpbmdzCi0gICAgYm9vbCBtYXRjaChjb25zdCBSZXNUYWJsZV9jb25maWcmIHNldHRpbmdzKSBjb25zdDsKLQotICAgIHZvaWQgZ2V0TG9jYWxlKGNoYXIgc3RyWzZdKSBjb25zdDsKLQotICAgIFN0cmluZzggdG9TdHJpbmcoKSBjb25zdDsKLX07Ci0KLS8qKgotICogQSBzcGVjaWZpY2F0aW9uIG9mIHRoZSByZXNvdXJjZXMgZGVmaW5lZCBieSBhIHBhcnRpY3VsYXIgdHlwZS4KLSAqCi0gKiBUaGVyZSBzaG91bGQgYmUgb25lIG9mIHRoZXNlIGNodW5rcyBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLgotICoKLSAqIFRoaXMgc3RydWN0dXJlIGlzIGZvbGxvd2VkIGJ5IGFuIGFycmF5IG9mIGludGVnZXJzIHByb3ZpZGluZyB0aGUgc2V0IG9mCi0gKiBjb25maWd1cmF0aW9uIGNoYW5nZSBmbGFncyAoUmVzVGFibGVfY29uZmlnOjpDT05GSUdfKikgdGhhdCBoYXZlIG11bHRpcGxlCi0gKiByZXNvdXJjZXMgZm9yIHRoYXQgY29uZmlndXJhdGlvbi4gIEluIGFkZGl0aW9uLCB0aGUgaGlnaCBiaXQgaXMgc2V0IGlmIHRoYXQKLSAqIHJlc291cmNlIGhhcyBiZWVuIG1hZGUgcHVibGljLgotICovCi1zdHJ1Y3QgUmVzVGFibGVfdHlwZVNwZWMKLXsKLSAgICBzdHJ1Y3QgUmVzQ2h1bmtfaGVhZGVyIGhlYWRlcjsKLQotICAgIC8vIFRoZSB0eXBlIGlkZW50aWZpZXIgdGhpcyBjaHVuayBpcyBob2xkaW5nLiAgVHlwZSBJRHMgc3RhcnQKLSAgICAvLyBhdCAxIChjb3JyZXNwb25kaW5nIHRvIHRoZSB2YWx1ZSBvZiB0aGUgdHlwZSBiaXRzIGluIGEKLSAgICAvLyByZXNvdXJjZSBpZGVudGlmaWVyKS4gIDAgaXMgaW52YWxpZC4KLSAgICB1aW50OF90IGlkOwotICAgIAotICAgIC8vIE11c3QgYmUgMC4KLSAgICB1aW50OF90IHJlczA7Ci0gICAgLy8gTXVzdCBiZSAwLgotICAgIHVpbnQxNl90IHJlczE7Ci0gICAgCi0gICAgLy8gTnVtYmVyIG9mIHVpbnQzMl90IGVudHJ5IGNvbmZpZ3VyYXRpb24gbWFza3MgdGhhdCBmb2xsb3cuCi0gICAgdWludDMyX3QgZW50cnlDb3VudDsKLQotICAgIGVudW0gewotICAgICAgICAvLyBBZGRpdGlvbmFsIGZsYWcgaW5kaWNhdGluZyBhbiBlbnRyeSBpcyBwdWJsaWMuCi0gICAgICAgIFNQRUNfUFVCTElDID0gMHg0MDAwMDAwMAotICAgIH07Ci19OwotCi0vKioKLSAqIEEgY29sbGVjdGlvbiBvZiByZXNvdXJjZSBlbnRyaWVzIGZvciBhIHBhcnRpY3VsYXIgcmVzb3VyY2UgZGF0YQotICogdHlwZS4gRm9sbG93ZWQgYnkgYW4gYXJyYXkgb2YgdWludDMyX3QgZGVmaW5pbmcgdGhlIHJlc291cmNlCi0gKiB2YWx1ZXMsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFycmF5IG9mIHR5cGUgc3RyaW5ncyBpbiB0aGUKLSAqIFJlc1RhYmxlX3BhY2thZ2U6OnR5cGVTdHJpbmdzIHN0cmluZyBibG9jay4gRWFjaCBvZiB0aGVzZSBob2xkIGFuCi0gKiBpbmRleCBmcm9tIGVudHJpZXNTdGFydDsgYSB2YWx1ZSBvZiBOT19FTlRSWSBtZWFucyB0aGF0IGVudHJ5IGlzCi0gKiBub3QgZGVmaW5lZC4KLSAqCi0gKiBUaGVyZSBtYXkgYmUgbXVsdGlwbGUgb2YgdGhlc2UgY2h1bmtzIGZvciBhIHBhcnRpY3VsYXIgcmVzb3VyY2UgdHlwZSwKLSAqIHN1cHBseSBkaWZmZXJlbnQgY29uZmlndXJhdGlvbiB2YXJpYXRpb25zIGZvciB0aGUgcmVzb3VyY2UgdmFsdWVzIG9mCi0gKiB0aGF0IHR5cGUuCi0gKgotICogSXQgd291bGQgYmUgbmljZSB0byBoYXZlIGFuIGFkZGl0aW9uYWwgb3JkZXJlZCBpbmRleCBvZiBlbnRyaWVzLCBzbwotICogd2UgY2FuIGRvIGEgYmluYXJ5IHNlYXJjaCBpZiB0cnlpbmcgdG8gZmluZCBhIHJlc291cmNlIGJ5IHN0cmluZyBuYW1lLgotICovCi1zdHJ1Y3QgUmVzVGFibGVfdHlwZQotewotICAgIHN0cnVjdCBSZXNDaHVua19oZWFkZXIgaGVhZGVyOwotCi0gICAgZW51bSB7Ci0gICAgICAgIE5PX0VOVFJZID0gMHhGRkZGRkZGRgotICAgIH07Ci0gICAgCi0gICAgLy8gVGhlIHR5cGUgaWRlbnRpZmllciB0aGlzIGNodW5rIGlzIGhvbGRpbmcuICBUeXBlIElEcyBzdGFydAotICAgIC8vIGF0IDEgKGNvcnJlc3BvbmRpbmcgdG8gdGhlIHZhbHVlIG9mIHRoZSB0eXBlIGJpdHMgaW4gYQotICAgIC8vIHJlc291cmNlIGlkZW50aWZpZXIpLiAgMCBpcyBpbnZhbGlkLgotICAgIHVpbnQ4X3QgaWQ7Ci0gICAgCi0gICAgLy8gTXVzdCBiZSAwLgotICAgIHVpbnQ4X3QgcmVzMDsKLSAgICAvLyBNdXN0IGJlIDAuCi0gICAgdWludDE2X3QgcmVzMTsKLSAgICAKLSAgICAvLyBOdW1iZXIgb2YgdWludDMyX3QgZW50cnkgaW5kaWNlcyB0aGF0IGZvbGxvdy4KLSAgICB1aW50MzJfdCBlbnRyeUNvdW50OwotCi0gICAgLy8gT2Zmc2V0IGZyb20gaGVhZGVyIHdoZXJlIFJlc1RhYmxlX2VudHJ5IGRhdGEgc3RhcnRzLgotICAgIHVpbnQzMl90IGVudHJpZXNTdGFydDsKLSAgICAKLSAgICAvLyBDb25maWd1cmF0aW9uIHRoaXMgY29sbGVjdGlvbiBvZiBlbnRyaWVzIGlzIGRlc2lnbmVkIGZvci4KLSAgICBSZXNUYWJsZV9jb25maWcgY29uZmlnOwotfTsKLQotLyoqCi0gKiBUaGlzIGlzIHRoZSBiZWdpbm5pbmcgb2YgaW5mb3JtYXRpb24gYWJvdXQgYW4gZW50cnkgaW4gdGhlIHJlc291cmNlCi0gKiB0YWJsZS4gIEl0IGhvbGRzIHRoZSByZWZlcmVuY2UgdG8gdGhlIG5hbWUgb2YgdGhpcyBlbnRyeSwgYW5kIGlzCi0gKiBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBvbmUgb2Y6Ci0gKiAgICogQSBSZXNfdmFsdWUgc3RydWN0dXJlLCBpZiBGTEFHX0NPTVBMRVggaXMgLW5vdC0gc2V0LgotICogICAqIEFuIGFycmF5IG9mIFJlc1RhYmxlX21hcCBzdHJ1Y3R1cmVzLCBpZiBGTEFHX0NPTVBMRVggaXMgc2V0LgotICogICAgIFRoZXNlIHN1cHBseSBhIHNldCBvZiBuYW1lL3ZhbHVlIG1hcHBpbmdzIG9mIGRhdGEuCi0gKi8KLXN0cnVjdCBSZXNUYWJsZV9lbnRyeQotewotICAgIC8vIE51bWJlciBvZiBieXRlcyBpbiB0aGlzIHN0cnVjdHVyZS4KLSAgICB1aW50MTZfdCBzaXplOwotCi0gICAgZW51bSB7Ci0gICAgICAgIC8vIElmIHNldCwgdGhpcyBpcyBhIGNvbXBsZXggZW50cnksIGhvbGRpbmcgYSBzZXQgb2YgbmFtZS92YWx1ZQotICAgICAgICAvLyBtYXBwaW5ncy4gIEl0IGlzIGZvbGxvd2VkIGJ5IGFuIGFycmF5IG9mIFJlc1RhYmxlX21hcCBzdHJ1Y3R1cmVzLgotICAgICAgICBGTEFHX0NPTVBMRVggPSAweDAwMDEsCi0gICAgICAgIC8vIElmIHNldCwgdGhpcyByZXNvdXJjZSBoYXMgYmVlbiBkZWNsYXJlZCBwdWJsaWMsIHNvIGxpYnJhcmllcwotICAgICAgICAvLyBhcmUgYWxsb3dlZCB0byByZWZlcmVuY2UgaXQuCi0gICAgICAgIEZMQUdfUFVCTElDID0gMHgwMDAyCi0gICAgfTsKLSAgICB1aW50MTZfdCBmbGFnczsKLSAgICAKLSAgICAvLyBSZWZlcmVuY2UgaW50byBSZXNUYWJsZV9wYWNrYWdlOjprZXlTdHJpbmdzIGlkZW50aWZ5aW5nIHRoaXMgZW50cnkuCi0gICAgc3RydWN0IFJlc1N0cmluZ1Bvb2xfcmVmIGtleTsKLX07Ci0KLS8qKgotICogRXh0ZW5kZWQgZm9ybSBvZiBhIFJlc1RhYmxlX2VudHJ5IGZvciBtYXAgZW50cmllcywgZGVmaW5pbmcgYSBwYXJlbnQgbWFwCi0gKiByZXNvdXJjZSBmcm9tIHdoaWNoIHRvIGluaGVyaXQgdmFsdWVzLgotICovCi1zdHJ1Y3QgUmVzVGFibGVfbWFwX2VudHJ5IDogcHVibGljIFJlc1RhYmxlX2VudHJ5Ci17Ci0gICAgLy8gUmVzb3VyY2UgaWRlbnRpZmllciBvZiB0aGUgcGFyZW50IG1hcHBpbmcsIG9yIDAgaWYgdGhlcmUgaXMgbm9uZS4KLSAgICBSZXNUYWJsZV9yZWYgcGFyZW50OwotICAgIC8vIE51bWJlciBvZiBuYW1lL3ZhbHVlIHBhaXJzIHRoYXQgZm9sbG93IGZvciBGTEFHX0NPTVBMRVguCi0gICAgdWludDMyX3QgY291bnQ7Ci19OwotCi0vKioKLSAqIEEgc2luZ2xlIG5hbWUvdmFsdWUgbWFwcGluZyB0aGF0IGlzIHBhcnQgb2YgYSBjb21wbGV4IHJlc291cmNlCi0gKiBlbnRyeS4KLSAqLwotc3RydWN0IFJlc1RhYmxlX21hcAotewotICAgIC8vIFRoZSByZXNvdXJjZSBpZGVudGlmaWVyIGRlZmluaW5nIHRoaXMgbWFwcGluZydzIG5hbWUuICBGb3IgYXR0cmlidXRlCi0gICAgLy8gcmVzb3VyY2VzLCAnbmFtZScgY2FuIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHNwZWNpYWwgcmVzb3VyY2UgdHlwZXMKLSAgICAvLyB0byBzdXBwbHkgbWV0YS1kYXRhIGFib3V0IHRoZSBhdHRyaWJ1dGU7IGZvciBhbGwgb3RoZXIgcmVzb3VyY2UgdHlwZXMKLSAgICAvLyBpdCBtdXN0IGJlIGFuIGF0dHJpYnV0ZSByZXNvdXJjZS4KLSAgICBSZXNUYWJsZV9yZWYgbmFtZTsKLQotICAgIC8vIFNwZWNpYWwgdmFsdWVzIGZvciAnbmFtZScgd2hlbiBkZWZpbmluZyBhdHRyaWJ1dGUgcmVzb3VyY2VzLgotICAgIGVudW0gewotICAgICAgICAvLyBUaGlzIGVudHJ5IGhvbGRzIHRoZSBhdHRyaWJ1dGUncyB0eXBlIGNvZGUuCi0gICAgICAgIEFUVFJfVFlQRSA9IFJlc19NQUtFSU5URVJOQUwoMCksCi0KLSAgICAgICAgLy8gRm9yIGludGVncmFsIGF0dHJpYnV0ZXMsIHRoaXMgaXMgdGhlIG1pbmltdW0gdmFsdWUgaXQgY2FuIGhvbGQuCi0gICAgICAgIEFUVFJfTUlOID0gUmVzX01BS0VJTlRFUk5BTCgxKSwKLQotICAgICAgICAvLyBGb3IgaW50ZWdyYWwgYXR0cmlidXRlcywgdGhpcyBpcyB0aGUgbWF4aW11bSB2YWx1ZSBpdCBjYW4gaG9sZC4KLSAgICAgICAgQVRUUl9NQVggPSBSZXNfTUFLRUlOVEVSTkFMKDIpLAotCi0gICAgICAgIC8vIExvY2FsaXphdGlvbiBvZiB0aGlzIHJlc291cmNlIGlzIGNhbiBiZSBlbmNvdXJhZ2VkIG9yIHJlcXVpcmVkIHdpdGgKLSAgICAgICAgLy8gYW4gYWFwdCBmbGFnIGlmIHRoaXMgaXMgc2V0Ci0gICAgICAgIEFUVFJfTDEwTiA9IFJlc19NQUtFSU5URVJOQUwoMyksCi0KLSAgICAgICAgLy8gZm9yIHBsdXJhbCBzdXBwb3J0LCBzZWUgYW5kcm9pZC5jb250ZW50LnJlcy5QbHVyYWxSdWxlcyNhdHRyRm9yUXVhbnRpdHkoaW50KQotICAgICAgICBBVFRSX09USEVSID0gUmVzX01BS0VJTlRFUk5BTCg0KSwKLSAgICAgICAgQVRUUl9aRVJPID0gUmVzX01BS0VJTlRFUk5BTCg1KSwKLSAgICAgICAgQVRUUl9PTkUgPSBSZXNfTUFLRUlOVEVSTkFMKDYpLAotICAgICAgICBBVFRSX1RXTyA9IFJlc19NQUtFSU5URVJOQUwoNyksCi0gICAgICAgIEFUVFJfRkVXID0gUmVzX01BS0VJTlRFUk5BTCg4KSwKLSAgICAgICAgQVRUUl9NQU5ZID0gUmVzX01BS0VJTlRFUk5BTCg5KQotICAgICAgICAKLSAgICB9OwotCi0gICAgLy8gQml0IG1hc2sgb2YgYWxsb3dlZCB0eXBlcywgZm9yIHVzZSB3aXRoIEFUVFJfVFlQRS4KLSAgICBlbnVtIHsKLSAgICAgICAgLy8gTm8gdHlwZSBoYXMgYmVlbiBkZWZpbmVkIGZvciB0aGlzIGF0dHJpYnV0ZSwgdXNlIGdlbmVyaWMKLSAgICAgICAgLy8gdHlwZSBoYW5kbGluZy4gIFRoZSBsb3cgMTYgYml0cyBhcmUgZm9yIHR5cGVzIHRoYXQgY2FuIGJlCi0gICAgICAgIC8vIGhhbmRsZWQgZ2VuZXJpY2FsbHk7IHRoZSB1cHBlciAxNiByZXF1aXJlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KLSAgICAgICAgLy8gaW4gdGhlIGJhZyBzbyBjYW4gbm90IGJlIGhhbmRsZWQgZ2VuZXJpY2FsbHkgZm9yIFRZUEVfQU5ZLgotICAgICAgICBUWVBFX0FOWSA9IDB4MDAwMEZGRkYsCi0KLSAgICAgICAgLy8gQXR0cmlidXRlIGhvbGRzIGEgcmVmZXJlbmNlcyB0byBhbm90aGVyIHJlc291cmNlLgotICAgICAgICBUWVBFX1JFRkVSRU5DRSA9IDE8PDAsCi0KLSAgICAgICAgLy8gQXR0cmlidXRlIGhvbGRzIGEgZ2VuZXJpYyBzdHJpbmcuCi0gICAgICAgIFRZUEVfU1RSSU5HID0gMTw8MSwKLQotICAgICAgICAvLyBBdHRyaWJ1dGUgaG9sZHMgYW4gaW50ZWdlciB2YWx1ZS4gIEFUVFJfTUlOIGFuZCBBVFRSX01JTiBjYW4KLSAgICAgICAgLy8gb3B0aW9uYWxseSBzcGVjaWZ5IGEgY29uc3RyYWluZWQgcmFuZ2Ugb2YgcG9zc2libGUgaW50ZWdlciB2YWx1ZXMuCi0gICAgICAgIFRZUEVfSU5URUdFUiA9IDE8PDIsCi0KLSAgICAgICAgLy8gQXR0cmlidXRlIGhvbGRzIGEgYm9vbGVhbiBpbnRlZ2VyLgotICAgICAgICBUWVBFX0JPT0xFQU4gPSAxPDwzLAotCi0gICAgICAgIC8vIEF0dHJpYnV0ZSBob2xkcyBhIGNvbG9yIHZhbHVlLgotICAgICAgICBUWVBFX0NPTE9SID0gMTw8NCwKLQotICAgICAgICAvLyBBdHRyaWJ1dGUgaG9sZHMgYSBmbG9hdGluZyBwb2ludCB2YWx1ZS4KLSAgICAgICAgVFlQRV9GTE9BVCA9IDE8PDUsCi0KLSAgICAgICAgLy8gQXR0cmlidXRlIGhvbGRzIGEgZGltZW5zaW9uIHZhbHVlLCBzdWNoIGFzICIyMHB4Ii4KLSAgICAgICAgVFlQRV9ESU1FTlNJT04gPSAxPDw2LAotCi0gICAgICAgIC8vIEF0dHJpYnV0ZSBob2xkcyBhIGZyYWN0aW9uIHZhbHVlLCBzdWNoIGFzICIyMCUiLgotICAgICAgICBUWVBFX0ZSQUNUSU9OID0gMTw8NywKLQotICAgICAgICAvLyBBdHRyaWJ1dGUgaG9sZHMgYW4gZW51bWVyYXRpb24uICBUaGUgZW51bWVyYXRpb24gdmFsdWVzIGFyZQotICAgICAgICAvLyBzdXBwbGllZCBhcyBhZGRpdGlvbmFsIGVudHJpZXMgaW4gdGhlIG1hcC4KLSAgICAgICAgVFlQRV9FTlVNID0gMTw8MTYsCi0KLSAgICAgICAgLy8gQXR0cmlidXRlIGhvbGRzIGEgYml0bWFrcyBvZiBmbGFncy4gIFRoZSBmbGFnIGJpdCB2YWx1ZXMgYXJlCi0gICAgICAgIC8vIHN1cHBsaWVkIGFzIGFkZGl0aW9uYWwgZW50cmllcyBpbiB0aGUgbWFwLgotICAgICAgICBUWVBFX0ZMQUdTID0gMTw8MTcKLSAgICB9OwotCi0gICAgLy8gRW51bSBvZiBsb2NhbGl6YXRpb24gbW9kZXMsIGZvciB1c2Ugd2l0aCBBVFRSX0wxME4uCi0gICAgZW51bSB7Ci0gICAgICAgIEwxME5fTk9UX1JFUVVJUkVEID0gMCwKLSAgICAgICAgTDEwTl9TVUdHRVNURUQgICAgPSAxCi0gICAgfTsKLSAgICAKLSAgICAvLyBUaGlzIG1hcHBpbmcncyB2YWx1ZS4KLSAgICBSZXNfdmFsdWUgdmFsdWU7Ci19OwotCi0vKioKLSAqIENvbnZlbmllbmNlIGNsYXNzIGZvciBhY2Nlc3NpbmcgZGF0YSBpbiBhIFJlc1RhYmxlIHJlc291cmNlLgotICovCi1jbGFzcyBSZXNUYWJsZQotewotcHVibGljOgotICAgIFJlc1RhYmxlKCk7Ci0gICAgUmVzVGFibGUoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IHNpemUsIHZvaWQqIGNvb2tpZSwKLSAgICAgICAgICAgICBib29sIGNvcHlEYXRhPWZhbHNlKTsKLSAgICB+UmVzVGFibGUoKTsKLQotICAgIHN0YXR1c190IGFkZChjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSwgdm9pZCogY29va2llLAotICAgICAgICAgICAgICAgICBib29sIGNvcHlEYXRhPWZhbHNlLCBjb25zdCB2b2lkKiBpZG1hcCA9IE5VTEwpOwotICAgIHN0YXR1c190IGFkZChBc3NldCogYXNzZXQsIHZvaWQqIGNvb2tpZSwKLSAgICAgICAgICAgICAgICAgYm9vbCBjb3B5RGF0YT1mYWxzZSwgY29uc3Qgdm9pZCogaWRtYXAgPSBOVUxMKTsKLSAgICBzdGF0dXNfdCBhZGQoUmVzVGFibGUqIHNyYyk7Ci0KLSAgICBzdGF0dXNfdCBnZXRFcnJvcigpIGNvbnN0OwotCi0gICAgdm9pZCB1bmluaXQoKTsKLQotICAgIHN0cnVjdCByZXNvdXJjZV9uYW1lCi0gICAgewotICAgICAgICBjb25zdCBjaGFyMTZfdCogcGFja2FnZTsKLSAgICAgICAgc2l6ZV90IHBhY2thZ2VMZW47Ci0gICAgICAgIGNvbnN0IGNoYXIxNl90KiB0eXBlOwotICAgICAgICBjb25zdCBjaGFyKiB0eXBlODsKLSAgICAgICAgc2l6ZV90IHR5cGVMZW47Ci0gICAgICAgIGNvbnN0IGNoYXIxNl90KiBuYW1lOwotICAgICAgICBjb25zdCBjaGFyKiBuYW1lODsKLSAgICAgICAgc2l6ZV90IG5hbWVMZW47Ci0gICAgfTsKLQotICAgIGJvb2wgZ2V0UmVzb3VyY2VOYW1lKHVpbnQzMl90IHJlc0lELCBib29sIGFsbG93VXRmOCwgcmVzb3VyY2VfbmFtZSogb3V0TmFtZSkgY29uc3Q7Ci0KLSAgICAvKioKLSAgICAgKiBSZXRyaWV2ZSB0aGUgdmFsdWUgb2YgYSByZXNvdXJjZS4gIElmIHRoZSByZXNvdXJjZSBpcyBmb3VuZCwgcmV0dXJucyBhCi0gICAgICogdmFsdWUgPj0gMCBpbmRpY2F0aW5nIHRoZSB0YWJsZSBpdCBpcyBpbiAoZm9yIHVzZSB3aXRoCi0gICAgICogZ2V0VGFibGVTdHJpbmdCbG9jaygpIGFuZCBnZXRUYWJsZUNvb2tpZSgpKSBhbmQgZmlsbHMgaW4gJ291dFZhbHVlJy4gIElmCi0gICAgICogbm90IGZvdW5kLCByZXR1cm5zIGEgbmVnYXRpdmUgZXJyb3IgY29kZS4KLSAgICAgKgotICAgICAqIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGRvIHJlZmVyZW5jZSB0cmF2ZXJzYWwuICBJZiB5b3Ugd2FudAotICAgICAqIHRvIGZvbGxvdyByZWZlcmVuY2VzIHRvIG90aGVyIHJlc291cmNlcyB0byBnZXQgdGhlICJyZWFsIiB2YWx1ZSB0bwotICAgICAqIHVzZSwgeW91IG5lZWQgdG8gY2FsbCByZXNvbHZlUmVmZXJlbmNlKCkgYWZ0ZXIgdGhpcyBmdW5jdGlvbi4KLSAgICAgKgotICAgICAqIEBwYXJhbSByZXNJRCBUaGUgZGVzaXJlZCByZXNvcnVjZSBpZGVudGlmaWVyLgotICAgICAqIEBwYXJhbSBvdXRWYWx1ZSBGaWxsZWQgaW4gd2l0aCB0aGUgcmVzb3VyY2UgZGF0YSB0aGF0IHdhcyBmb3VuZC4KLSAgICAgKgotICAgICAqIEByZXR1cm4gc3NpemVfdCBFaXRoZXIgYSA+PSAwIHRhYmxlIGluZGV4IG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZS4KLSAgICAgKi8KLSAgICBzc2l6ZV90IGdldFJlc291cmNlKHVpbnQzMl90IHJlc0lELCBSZXNfdmFsdWUqIG91dFZhbHVlLCBib29sIG1heUJlQmFnID0gZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IGRlbnNpdHkgPSAwLAotICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogb3V0U3BlY0ZsYWdzID0gTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgUmVzVGFibGVfY29uZmlnKiBvdXRDb25maWcgPSBOVUxMKSBjb25zdDsKLQotICAgIGlubGluZSBzc2l6ZV90IGdldFJlc291cmNlKGNvbnN0IFJlc1RhYmxlX3JlZiYgcmVzLCBSZXNfdmFsdWUqIG91dFZhbHVlLAotICAgICAgICAgICAgdWludDMyX3QqIG91dFNwZWNGbGFncz1OVUxMKSBjb25zdCB7Ci0gICAgICAgIHJldHVybiBnZXRSZXNvdXJjZShyZXMuaWRlbnQsIG91dFZhbHVlLCBmYWxzZSwgMCwgb3V0U3BlY0ZsYWdzLCBOVUxMKTsKLSAgICB9Ci0KLSAgICBzc2l6ZV90IHJlc29sdmVSZWZlcmVuY2UoUmVzX3ZhbHVlKiBpbk91dFZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2l6ZV90IGJsb2NrSW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBvdXRMYXN0UmVmID0gTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGlub3V0VHlwZVNwZWNGbGFncyA9IE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc1RhYmxlX2NvbmZpZyogb3V0Q29uZmlnID0gTlVMTCkgY29uc3Q7Ci0KLSAgICBlbnVtIHsKLSAgICAgICAgVE1QX0JVRkZFUl9TSVpFID0gMTYKLSAgICB9OwotICAgIGNvbnN0IGNoYXIxNl90KiB2YWx1ZVRvU3RyaW5nKGNvbnN0IFJlc192YWx1ZSogdmFsdWUsIHNpemVfdCBzdHJpbmdCbG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyMTZfdCB0bXBCdWZmZXJbVE1QX0JVRkZFUl9TSVpFXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QqIG91dExlbik7Ci0KLSAgICBzdHJ1Y3QgYmFnX2VudHJ5IHsKLSAgICAgICAgc3NpemVfdCBzdHJpbmdCbG9jazsKLSAgICAgICAgUmVzVGFibGVfbWFwIG1hcDsKLSAgICB9OwotCi0gICAgLyoqCi0gICAgICogUmV0cmlldmUgdGhlIGJhZyBvZiBhIHJlc291cmNlLiAgSWYgdGhlIHJlc29ydWNlIGlzIGZvdW5kLCByZXR1cm5zIHRoZQotICAgICAqIG51bWJlciBvZiBiYWdzIGl0IGNvbnRhaW5zIGFuZCAnb3V0QmFnJyBwb2ludHMgdG8gYW4gYXJyYXkgb2YgdGhlaXIKLSAgICAgKiB2YWx1ZXMuICBJZiBub3QgZm91bmQsIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBpcyByZXR1cm5lZC4KLSAgICAgKgotICAgICAqIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIC1kb2VzLSBkbyByZWZlcmVuY2UgdHJhdmVyc2FsIG9mIHRoZSBiYWcgZGF0YS4KLSAgICAgKgotICAgICAqIEBwYXJhbSByZXNJRCBUaGUgZGVzaXJlZCByZXNvdXJjZSBpZGVudGlmaWVyLgotICAgICAqIEBwYXJhbSBvdXRCYWcgRmlsbGVkIGlubSB3aXRoIGEgcG9pbnRlciB0byB0aGUgYmFnIG1hcHBpbmdzLgotICAgICAqCi0gICAgICogQHJldHVybiBzc2l6ZV90IEVpdGhlciBhID49IDAgYmFnIGNvdW50IG9mIG5lZ2F0aXZlIGVycm9yIGNvZGUuCi0gICAgICovCi0gICAgc3NpemVfdCBsb2NrQmFnKHVpbnQzMl90IHJlc0lELCBjb25zdCBiYWdfZW50cnkqKiBvdXRCYWcpIGNvbnN0OwotCi0gICAgdm9pZCB1bmxvY2tCYWcoY29uc3QgYmFnX2VudHJ5KiBiYWcpIGNvbnN0OwotCi0gICAgdm9pZCBsb2NrKCkgY29uc3Q7Ci0KLSAgICBzc2l6ZV90IGdldEJhZ0xvY2tlZCh1aW50MzJfdCByZXNJRCwgY29uc3QgYmFnX2VudHJ5Kiogb3V0QmFnLAotICAgICAgICAgICAgdWludDMyX3QqIG91dFR5cGVTcGVjRmxhZ3M9TlVMTCkgY29uc3Q7Ci0KLSAgICB2b2lkIHVubG9jaygpIGNvbnN0OwotCi0gICAgY2xhc3MgVGhlbWUgewotICAgIHB1YmxpYzoKLSAgICAgICAgVGhlbWUoY29uc3QgUmVzVGFibGUmIHRhYmxlKTsKLSAgICAgICAgflRoZW1lKCk7Ci0KLSAgICAgICAgaW5saW5lIGNvbnN0IFJlc1RhYmxlJiBnZXRSZXNUYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1UYWJsZTsgfQotCi0gICAgICAgIHN0YXR1c190IGFwcGx5U3R5bGUodWludDMyX3QgcmVzSUQsIGJvb2wgZm9yY2U9ZmFsc2UpOwotICAgICAgICBzdGF0dXNfdCBzZXRUbyhjb25zdCBUaGVtZSYgb3RoZXIpOwotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBSZXRyaWV2ZSBhIHZhbHVlIGluIHRoZSB0aGVtZS4gIElmIHRoZSB0aGVtZSBkZWZpbmVzIHRoaXMKLSAgICAgICAgICogdmFsdWUsIHJldHVybnMgYSB2YWx1ZSA+PSAwIGluZGljYXRpbmcgdGhlIHRhYmxlIGl0IGlzIGluCi0gICAgICAgICAqIChmb3IgdXNlIHdpdGggZ2V0VGFibGVTdHJpbmdCbG9jaygpIGFuZCBnZXRUYWJsZUNvb2tpZSkgYW5kCi0gICAgICAgICAqIGZpbGxzIGluICdvdXRWYWx1ZScuICBJZiBub3QgZm91bmQsIHJldHVybnMgYSBuZWdhdGl2ZSBlcnJvcgotICAgICAgICAgKiBjb2RlLgotICAgICAgICAgKgotICAgICAgICAgKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBkbyByZWZlcmVuY2UgdHJhdmVyc2FsLiAgSWYgeW91IHdhbnQKLSAgICAgICAgICogdG8gZm9sbG93IHJlZmVyZW5jZXMgdG8gb3RoZXIgcmVzb3VyY2VzIHRvIGdldCB0aGUgInJlYWwiIHZhbHVlIHRvCi0gICAgICAgICAqIHVzZSwgeW91IG5lZWQgdG8gY2FsbCByZXNvbHZlUmVmZXJlbmNlKCkgYWZ0ZXIgdGhpcyBmdW5jdGlvbi4KLSAgICAgICAgICoKLSAgICAgICAgICogQHBhcmFtIHJlc0lEIEEgcmVzb3VyY2UgaWRlbnRpZmllciBuYW1pbmcgdGhlIGRlc2lyZWQgdGhlbWUKLSAgICAgICAgICogICAgICAgICAgICAgIGF0dHJpYnV0ZS4KLSAgICAgICAgICogQHBhcmFtIG91dFZhbHVlIEZpbGxlZCBpbiB3aXRoIHRoZSB0aGVtZSB2YWx1ZSB0aGF0IHdhcwotICAgICAgICAgKiAgICAgICAgICAgICAgICAgZm91bmQuCi0gICAgICAgICAqCi0gICAgICAgICAqIEByZXR1cm4gc3NpemVfdCBFaXRoZXIgYSA+PSAwIHRhYmxlIGluZGV4IG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZS4KLSAgICAgICAgICovCi0gICAgICAgIHNzaXplX3QgZ2V0QXR0cmlidXRlKHVpbnQzMl90IHJlc0lELCBSZXNfdmFsdWUqIG91dFZhbHVlLAotICAgICAgICAgICAgICAgIHVpbnQzMl90KiBvdXRUeXBlU3BlY0ZsYWdzID0gTlVMTCkgY29uc3Q7Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIFRoaXMgaXMgbGlrZSBSZXNUYWJsZTo6cmVzb2x2ZVJlZmVyZW5jZSgpLCBidXQgYWxzbyB0YWtlcwotICAgICAgICAgKiBjYXJlIG9mIHJlc29sdmluZyBhdHRyaWJ1dGUgcmVmZXJlbmNlcyB0byB0aGUgdGhlbWUuCi0gICAgICAgICAqLwotICAgICAgICBzc2l6ZV90IHJlc29sdmVBdHRyaWJ1dGVSZWZlcmVuY2UoUmVzX3ZhbHVlKiBpbk91dFZhbHVlLAotICAgICAgICAgICAgICAgIHNzaXplX3QgYmxvY2tJbmRleCwgdWludDMyX3QqIG91dExhc3RSZWYgPSBOVUxMLAotICAgICAgICAgICAgICAgIHVpbnQzMl90KiBpbm91dFR5cGVTcGVjRmxhZ3MgPSBOVUxMLAotICAgICAgICAgICAgICAgIFJlc1RhYmxlX2NvbmZpZyogaW5vdXRDb25maWcgPSBOVUxMKSBjb25zdDsKLQotICAgICAgICB2b2lkIGR1bXBUb0xvZygpIGNvbnN0OwotICAgICAgICAKLSAgICBwcml2YXRlOgotICAgICAgICBUaGVtZShjb25zdCBUaGVtZSYpOwotICAgICAgICBUaGVtZSYgb3BlcmF0b3I9KGNvbnN0IFRoZW1lJik7Ci0KLSAgICAgICAgc3RydWN0IHRoZW1lX2VudHJ5IHsKLSAgICAgICAgICAgIHNzaXplX3Qgc3RyaW5nQmxvY2s7Ci0gICAgICAgICAgICB1aW50MzJfdCB0eXBlU3BlY0ZsYWdzOwotICAgICAgICAgICAgUmVzX3ZhbHVlIHZhbHVlOwotICAgICAgICB9OwotICAgICAgICBzdHJ1Y3QgdHlwZV9pbmZvIHsKLSAgICAgICAgICAgIHNpemVfdCBudW1FbnRyaWVzOwotICAgICAgICAgICAgdGhlbWVfZW50cnkqIGVudHJpZXM7Ci0gICAgICAgIH07Ci0gICAgICAgIHN0cnVjdCBwYWNrYWdlX2luZm8gewotICAgICAgICAgICAgc2l6ZV90IG51bVR5cGVzOwotICAgICAgICAgICAgdHlwZV9pbmZvIHR5cGVzW107Ci0gICAgICAgIH07Ci0KLSAgICAgICAgdm9pZCBmcmVlX3BhY2thZ2UocGFja2FnZV9pbmZvKiBwaSk7Ci0gICAgICAgIHBhY2thZ2VfaW5mbyogY29weV9wYWNrYWdlKHBhY2thZ2VfaW5mbyogcGkpOwotCi0gICAgICAgIGNvbnN0IFJlc1RhYmxlJiBtVGFibGU7Ci0gICAgICAgIHBhY2thZ2VfaW5mbyogICBtUGFja2FnZXNbUmVzX01BWFBBQ0tBR0VdOwotICAgIH07Ci0KLSAgICB2b2lkIHNldFBhcmFtZXRlcnMoY29uc3QgUmVzVGFibGVfY29uZmlnKiBwYXJhbXMpOwotICAgIHZvaWQgZ2V0UGFyYW1ldGVycyhSZXNUYWJsZV9jb25maWcqIHBhcmFtcykgY29uc3Q7Ci0KLSAgICAvLyBSZXRyaWV2ZSBhbiBpZGVudGlmaWVyICh3aGljaCBjYW4gYmUgcGFzc2VkIHRvIGdldFJlc291cmNlKQotICAgIC8vIGZvciBhIGdpdmVuIHJlc291cmNlIG5hbWUuICBUaGUgJ25hbWUnIGNhbiBiZSBmdWxseSBxdWFsaWZpZWQKLSAgICAvLyAoPHBhY2thZ2U+Ojx0eXBlPi48YmFzZW5hbWU+KSBvciB0aGUgcGFja2FnZSBvciB0eXBlIGNvbXBvbmVudHMKLSAgICAvLyBjYW4gYmUgZHJvcHBlZCBpZiBkZWZhdWx0IHZhbHVlcyBhcmUgc3VwcGxpZWQgaGVyZS4KLSAgICAvLwotICAgIC8vIFJldHVybnMgMCBpZiBubyBzdWNoIHJlc291cmNlIHdhcyBmb3VuZCwgZWxzZSBhIHZhbGlkIHJlc291cmNlIElELgotICAgIHVpbnQzMl90IGlkZW50aWZpZXJGb3JOYW1lKGNvbnN0IGNoYXIxNl90KiBuYW1lLCBzaXplX3QgbmFtZUxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogdHlwZSA9IDAsIHNpemVfdCB0eXBlTGVuID0gMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogZGVmUGFja2FnZSA9IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRlZlBhY2thZ2VMZW4gPSAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBvdXRUeXBlU3BlY0ZsYWdzID0gTlVMTCkgY29uc3Q7Ci0KLSAgICBzdGF0aWMgYm9vbCBleHBhbmRSZXNvdXJjZVJlZihjb25zdCB1aW50MTZfdCogcmVmU3RyLCBzaXplX3QgcmVmTGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzE2KiBvdXRQYWNrYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzE2KiBvdXRUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzE2KiBvdXROYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2KiBkZWZUeXBlID0gTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiogZGVmUGFja2FnZSA9IE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhcioqIG91dEVycm9yTXNnID0gTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiBvdXRQdWJsaWNPbmx5ID0gTlVMTCk7Ci0KLSAgICBzdGF0aWMgYm9vbCBzdHJpbmdUb0ludChjb25zdCBjaGFyMTZfdCogcywgc2l6ZV90IGxlbiwgUmVzX3ZhbHVlKiBvdXRWYWx1ZSk7Ci0gICAgc3RhdGljIGJvb2wgc3RyaW5nVG9GbG9hdChjb25zdCBjaGFyMTZfdCogcywgc2l6ZV90IGxlbiwgUmVzX3ZhbHVlKiBvdXRWYWx1ZSk7Ci0KLSAgICAvLyBVc2VkIHdpdGggc3RyaW5nVG9WYWx1ZS4KLSAgICBjbGFzcyBBY2Nlc3NvcgotICAgIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGlubGluZSB2aXJ0dWFsIH5BY2Nlc3NvcigpIHsgfQotCi0gICAgICAgIHZpcnR1YWwgdWludDMyX3QgZ2V0Q3VzdG9tUmVzb3VyY2UoY29uc3QgU3RyaW5nMTYmIHBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIG5hbWUpIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCB1aW50MzJfdCBnZXRDdXN0b21SZXNvdXJjZVdpdGhDcmVhdGlvbihjb25zdCBTdHJpbmcxNiYgcGFja2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib29sIGNyZWF0ZUlmTmVlZGVkID0gZmFsc2UpID0gMDsKLSAgICAgICAgdmlydHVhbCB1aW50MzJfdCBnZXRSZW1hcHBlZFBhY2thZ2UodWludDMyX3Qgb3JpZ1BhY2thZ2UpIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCBib29sIGdldEF0dHJpYnV0ZVR5cGUodWludDMyX3QgYXR0cklELCB1aW50MzJfdCogb3V0VHlwZSkgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0QXR0cmlidXRlTWluKHVpbnQzMl90IGF0dHJJRCwgdWludDMyX3QqIG91dE1pbikgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0QXR0cmlidXRlTWF4KHVpbnQzMl90IGF0dHJJRCwgdWludDMyX3QqIG91dE1heCkgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0QXR0cmlidXRlRW51bSh1aW50MzJfdCBhdHRySUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIxNl90KiBuYW1lLCBzaXplX3QgbmFtZUxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzX3ZhbHVlKiBvdXRWYWx1ZSkgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0QXR0cmlidXRlRmxhZ3ModWludDMyX3QgYXR0cklELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhcjE2X3QqIG5hbWUsIHNpemVfdCBuYW1lTGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzX3ZhbHVlKiBvdXRWYWx1ZSkgPSAwOwotICAgICAgICB2aXJ0dWFsIHVpbnQzMl90IGdldEF0dHJpYnV0ZUwxME4odWludDMyX3QgYXR0cklEKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRMb2NhbGl6YXRpb25TZXR0aW5nKCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0RXJyb3Iodm9pZCogYWNjZXNzb3JDb29raWUsIGNvbnN0IGNoYXIqIGZtdCwgLi4uKSA9IDA7Ci0gICAgfTsKLQotICAgIC8vIENvbnZlcnQgYSBzdHJpbmcgdG8gYSByZXNvdXJjZSB2YWx1ZS4gIEhhbmRsZXMgc3RhbmRhcmQgIkByZXMiLAotICAgIC8vICIjY29sb3IiLCAiMTIzIiwgYW5kICIweDFiZCIgdHlwZXM7IHBlcmZvcm1zIGVzY2FwaW5nIG9mIHN0cmluZ3MuCi0gICAgLy8gVGhlIHJlc3VsdGluZyB2YWx1ZSBpcyBwbGFjZWQgaW4gJ291dFZhbHVlJzsgaWYgaXQgaXMgYSBzdHJpbmcgdHlwZSwKLSAgICAvLyAnb3V0U3RyaW5nJyByZWNlaXZlcyB0aGUgc3RyaW5nLiAgSWYgJ2F0dHJJRCcgaXMgc3VwcGxpZWQsIHRoZSB2YWx1ZSBpcwotICAgIC8vIHR5cGUgY2hlY2tlZCBhZ2FpbnN0IHRoaXMgYXR0cmlidXRlIGFuZCBpdCBpcyB1c2VkIHRvIHBlcmZvcm0gZW51bQotICAgIC8vIGV2YWx1YXRpb24uICBJZiAnYWNjY2Vzc29yJyBpcyBzdXBwbGllZCwgaXQgd2lsbCBiZSB1c2VkIHRvIGF0dGVtcHQgdG8KLSAgICAvLyByZXNvbHZlIHJlc291cmNlcyB0aGF0IGRvIG5vdCBleGlzdCBpbiB0aGlzIFJlc1RhYmxlLiAgSWYgJ2F0dHJUeXBlJyBpcwotICAgIC8vIHN1cHBsaWVkLCB0aGUgdmFsdWUgd2lsbCBiZSB0eXBlIGNoZWNrZWQgZm9yIHRoaXMgZm9ybWF0IGlmICdhdHRySUQnCi0gICAgLy8gaXMgbm90IHN1cHBsaWVkIG9yIGZvdW5kLgotICAgIGJvb2wgc3RyaW5nVG9WYWx1ZShSZXNfdmFsdWUqIG91dFZhbHVlLCBTdHJpbmcxNiogb3V0U3RyaW5nLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogcywgc2l6ZV90IGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBwcmVzZXJ2ZVNwYWNlcywgYm9vbCBjb2VyY2VUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBhdHRySUQgPSAwLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiogZGVmVHlwZSA9IE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2KiBkZWZQYWNrYWdlID0gTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgQWNjZXNzb3IqIGFjY2Vzc29yID0gTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYWNjZXNzb3JDb29raWUgPSBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBhdHRyVHlwZSA9IFJlc1RhYmxlX21hcDo6VFlQRV9BTlksCi0gICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZW5mb3JjZVByaXZhdGUgPSB0cnVlKSBjb25zdDsKLQotICAgIC8vIFBlcmZvcm0gcHJvY2Vzc2luZyBvZiBlc2NhcGVzIGFuZCBxdW90ZXMgaW4gYSBzdHJpbmcuCi0gICAgc3RhdGljIGJvb2wgY29sbGVjdFN0cmluZyhTdHJpbmcxNiogb3V0U3RyaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhcjE2X3QqIHMsIHNpemVfdCBsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHByZXNlcnZlU3BhY2VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhcioqIG91dEVycm9yTXNnID0gTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYXBwZW5kID0gZmFsc2UpOwotCi0gICAgc2l6ZV90IGdldEJhc2VQYWNrYWdlQ291bnQoKSBjb25zdDsKLSAgICBjb25zdCBjaGFyMTZfdCogZ2V0QmFzZVBhY2thZ2VOYW1lKHNpemVfdCBpZHgpIGNvbnN0OwotICAgIHVpbnQzMl90IGdldEJhc2VQYWNrYWdlSWQoc2l6ZV90IGlkeCkgY29uc3Q7Ci0KLSAgICAvLyBSZXR1cm4gdGhlIG51bWJlciBvZiByZXNvdXJjZSB0YWJsZXMgdGhhdCB0aGUgb2JqZWN0IGNvbnRhaW5zLgotICAgIHNpemVfdCBnZXRUYWJsZUNvdW50KCkgY29uc3Q7Ci0gICAgLy8gUmV0dXJuIHRoZSB2YWx1ZXMgc3RyaW5nIHBvb2wgZm9yIHRoZSByZXNvdXJjZSB0YWJsZSBhdCB0aGUgZ2l2ZW4KLSAgICAvLyBpbmRleC4gIFRoaXMgc3RyaW5nIHBvb2wgY29udGFpbnMgYWxsIG9mIHRoZSBzdHJpbmdzIGZvciB2YWx1ZXMKLSAgICAvLyBjb250YWluZWQgaW4gdGhlIHJlc291cmNlIHRhYmxlIC0tIHRoYXQgaXMgdGhlIGl0ZW0gdmFsdWVzIHRoZW1zZWx2ZXMsCi0gICAgLy8gYnV0IG5vdCB0aGUgbmFtZXMgdGhlaXIgZW50cmllcyBvciB0eXBlcy4KLSAgICBjb25zdCBSZXNTdHJpbmdQb29sKiBnZXRUYWJsZVN0cmluZ0Jsb2NrKHNpemVfdCBpbmRleCkgY29uc3Q7Ci0gICAgLy8gUmV0dXJuIHVuaXF1ZSBjb29raWUgaWRlbnRpZmllciBmb3IgdGhlIGdpdmVuIHJlc291cmNlIHRhYmxlLgotICAgIHZvaWQqIGdldFRhYmxlQ29va2llKHNpemVfdCBpbmRleCkgY29uc3Q7Ci0KLSAgICAvLyBSZXR1cm4gdGhlIGNvbmZpZ3VyYXRpb25zIChSZXNUYWJsZV9jb25maWcpIHRoYXQgd2Uga25vdyBhYm91dAotICAgIHZvaWQgZ2V0Q29uZmlndXJhdGlvbnMoVmVjdG9yPFJlc1RhYmxlX2NvbmZpZz4qIGNvbmZpZ3MpIGNvbnN0OwotCi0gICAgdm9pZCBnZXRMb2NhbGVzKFZlY3RvcjxTdHJpbmc4PiogbG9jYWxlcykgY29uc3Q7Ci0KLSAgICAvLyBHZW5lcmF0ZSBhbiBpZG1hcC4KLSAgICAvLwotICAgIC8vIFJldHVybiB2YWx1ZTogb24gc3VjY2VzczogTk9fRVJST1I7IGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZS1pbmcKLSAgICAvLyBvdXREYXRhICh1c2luZyBmcmVlKDMpKS4gT24gZmFpbHVyZSwgYW55IHN0YXR1c190IHZhbHVlIG90aGVyIHRoYW4KLSAgICAvLyBOT19FUlJPUjsgdGhlIGNhbGxlciBzaG91bGQgbm90IGZyZWUgb3V0RGF0YS4KLSAgICBzdGF0dXNfdCBjcmVhdGVJZG1hcChjb25zdCBSZXNUYWJsZSYgb3ZlcmxheSwgdWludDMyX3Qgb3JpZ2luYWxDcmMsIHVpbnQzMl90IG92ZXJsYXlDcmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCoqIG91dERhdGEsIHNpemVfdCogb3V0U2l6ZSkgY29uc3Q7Ci0KLSAgICBlbnVtIHsKLSAgICAgICAgSURNQVBfSEVBREVSX1NJWkVfQllURVMgPSAzICogc2l6ZW9mKHVpbnQzMl90KSwKLSAgICB9OwotICAgIC8vIFJldHJpZXZlIGlkbWFwIG1ldGEtZGF0YS4KLSAgICAvLwotICAgIC8vIFRoaXMgZnVuY3Rpb24gb25seSByZXF1aXJlcyB0aGUgaWRtYXAgaGVhZGVyICh0aGUgZmlyc3QKLSAgICAvLyBJRE1BUF9IRUFERVJfU0laRV9CWVRFUykgYnl0ZXMgb2YgYW4gaWRtYXAgZmlsZS4KLSAgICBzdGF0aWMgYm9vbCBnZXRJZG1hcEluZm8oY29uc3Qgdm9pZCogaWRtYXAsIHNpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogcE9yaWdpbmFsQ3JjLCB1aW50MzJfdCogcE92ZXJsYXlDcmMpOwotCi0gICAgdm9pZCBwcmludChib29sIGluY2xWYWx1ZXMpIGNvbnN0OwotICAgIHN0YXRpYyBTdHJpbmc4IG5vcm1hbGl6ZUZvck91dHB1dChjb25zdCBjaGFyKiBpbnB1dCk7Ci0KLXByaXZhdGU6Ci0gICAgc3RydWN0IEhlYWRlcjsKLSAgICBzdHJ1Y3QgVHlwZTsKLSAgICBzdHJ1Y3QgUGFja2FnZTsKLSAgICBzdHJ1Y3QgUGFja2FnZUdyb3VwOwotICAgIHN0cnVjdCBiYWdfc2V0OwotCi0gICAgc3RhdHVzX3QgYWRkKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBzaXplLCB2b2lkKiBjb29raWUsCi0gICAgICAgICAgICAgICAgIEFzc2V0KiBhc3NldCwgYm9vbCBjb3B5RGF0YSwgY29uc3QgQXNzZXQqIGlkbWFwKTsKLQotICAgIHNzaXplX3QgZ2V0UmVzb3VyY2VQYWNrYWdlSW5kZXgodWludDMyX3QgcmVzSUQpIGNvbnN0OwotICAgIHNzaXplX3QgZ2V0RW50cnkoCi0gICAgICAgIGNvbnN0IFBhY2thZ2UqIHBhY2thZ2UsIGludCB0eXBlSW5kZXgsIGludCBlbnRyeUluZGV4LAotICAgICAgICBjb25zdCBSZXNUYWJsZV9jb25maWcqIGNvbmZpZywKLSAgICAgICAgY29uc3QgUmVzVGFibGVfdHlwZSoqIG91dFR5cGUsIGNvbnN0IFJlc1RhYmxlX2VudHJ5Kiogb3V0RW50cnksCi0gICAgICAgIGNvbnN0IFR5cGUqKiBvdXRUeXBlQ2xhc3MpIGNvbnN0OwotICAgIHN0YXR1c190IHBhcnNlUGFja2FnZSgKLSAgICAgICAgY29uc3QgUmVzVGFibGVfcGFja2FnZSogY29uc3QgcGtnLCBjb25zdCBIZWFkZXIqIGNvbnN0IGhlYWRlciwgdWludDMyX3QgaWRtYXBfaWQpOwotCi0gICAgdm9pZCBwcmludF92YWx1ZShjb25zdCBQYWNrYWdlKiBwa2csIGNvbnN0IFJlc192YWx1ZSYgdmFsdWUpIGNvbnN0OwotICAgIAotICAgIG11dGFibGUgTXV0ZXggICAgICAgICAgICAgICBtTG9jazsKLQotICAgIHN0YXR1c190ICAgICAgICAgICAgICAgICAgICBtRXJyb3I7Ci0KLSAgICBSZXNUYWJsZV9jb25maWcgICAgICAgICAgICAgbVBhcmFtczsKLQotICAgIC8vIEFycmF5IG9mIGFsbCByZXNvdXJjZSB0YWJsZXMuCi0gICAgVmVjdG9yPEhlYWRlcio+ICAgICAgICAgICAgIG1IZWFkZXJzOwotCi0gICAgLy8gQXJyYXkgb2YgcGFja2FnZXMgaW4gYWxsIHJlc291cmNlIHRhYmxlcy4KLSAgICBWZWN0b3I8UGFja2FnZUdyb3VwKj4gICAgICAgbVBhY2thZ2VHcm91cHM7Ci0KLSAgICAvLyBNYXBwaW5nIGZyb20gcmVzb3VyY2UgcGFja2FnZSBJRHMgdG8gaW5kaWNlcyBpbnRvIHRoZSBpbnRlcm5hbAotICAgIC8vIHBhY2thZ2UgYXJyYXkuCi0gICAgdWludDhfdCAgICAgICAgICAgICAgICAgICAgIG1QYWNrYWdlTWFwWzI1Nl07Ci19OwotCi19ICAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKLQotI2VuZGlmIC8vIF9MSUJTX1VUSUxTX1JFU09VUkNFX1RZUEVTX0gKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5kcm9pZGZ3L1N0cmVhbWluZ1ppcEluZmxhdGVyLmggYi9pbmNsdWRlL2FuZHJvaWRmdy9TdHJlYW1pbmdaaXBJbmZsYXRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYWNlNWQ1Li4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYW5kcm9pZGZ3L1N0cmVhbWluZ1ppcEluZmxhdGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2lmbmRlZiBfX0xJQlNfU1RSRUFNSU5HWklQSU5GTEFURVJfSAotI2RlZmluZSBfX0xJQlNfU1RSRUFNSU5HWklQSU5GTEFURVJfSAotCi0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8aW50dHlwZXMuaD4KLSNpbmNsdWRlIDx6bGliLmg+Ci0KLSNpbmNsdWRlIDx1dGlscy9Db21wYXQuaD4KLQotbmFtZXNwYWNlIGFuZHJvaWQgewotCi1jbGFzcyBTdHJlYW1pbmdaaXBJbmZsYXRlciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBJTlBVVF9DSFVOS19TSVpFID0gNjQgKiAxMDI0OwotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgT1VUUFVUX0NIVU5LX1NJWkUgPSA2NCAqIDEwMjQ7Ci0KLSAgICAvLyBGbGF2b3IgdGhhdCBwYWdlcyBpbiB0aGUgY29tcHJlc3NlZCBkYXRhIGZyb20gYSBmZAotICAgIFN0cmVhbWluZ1ppcEluZmxhdGVyKGludCBmZCwgb2ZmNjRfdCBjb21wRGF0YVN0YXJ0LCBzaXplX3QgdW5jb21wU2l6ZSwgc2l6ZV90IGNvbXBTaXplKTsKLQotICAgIC8vIEZsYXZvciB0aGF0IGdldHMgdGhlIGNvbXByZXNzZWQgZGF0YSBmcm9tIGFuIGluLW1lbW9yeSBidWZmZXIKLSAgICBTdHJlYW1pbmdaaXBJbmZsYXRlcihjbGFzcyBGaWxlTWFwKiBkYXRhTWFwLCBzaXplX3QgdW5jb21wU2l6ZSk7Ci0KLSAgICB+U3RyZWFtaW5nWmlwSW5mbGF0ZXIoKTsKLQotICAgIC8vIHJlYWQgJ2NvdW50JyBieXRlcyBvZiB1bmNvbXByZXNzZWQgZGF0YSBmcm9tIHRoZSBjdXJyZW50IHBvc2l0aW9uLiAgb3V0QnVmIG1heQotICAgIC8vIGJlIE5VTEwsIGluIHdoaWNoIGNhc2UgdGhlIGRhdGEgaXMgY29uc3VtZWQgYW5kIGRpc2NhcmRlZC4KLSAgICBzc2l6ZV90IHJlYWQodm9pZCogb3V0QnVmLCBzaXplX3QgY291bnQpOwotCi0gICAgLy8gc2Vla2luZyBiYWNrd2FyZHMgcmVxdWlyZXMgdW5jb21wcmVzc2luZyBmb20gdGhlIGJlZ2lubmluZywgc28gaXMgdmVyeQotICAgIC8vIGV4cGVuc2l2ZS4gIHNlZWtpbmcgZm9yd2FyZHMgb25seSByZXF1aXJlcyB1bmNvbXByZXNzaW5nIGZyb20gdGhlIGN1cnJlbnQKLSAgICAvLyBwb3NpdGlvbiB0byB0aGUgZGVzdGluYXRpb24uCi0gICAgb2ZmNjRfdCBzZWVrQWJzb2x1dGUob2ZmNjRfdCBhYnNvbHV0ZUlucHV0UG9zaXRpb24pOwotCi1wcml2YXRlOgotICAgIHZvaWQgaW5pdEluZmxhdGVTdGF0ZSgpOwotICAgIGludCByZWFkTmV4dENodW5rKCk7Ci0KLSAgICAvLyB3aGVyZSB0byBmaW5kIHRoZSB1bmNvbXByZXNzZWQgZGF0YQotICAgIGludCBtRmQ7Ci0gICAgb2ZmNjRfdCBtSW5GaWxlU3RhcnQ7ICAgICAgICAgLy8gd2hlcmUgdGhlIGNvbXByZXNzZWQgZGF0YSBsaXZlcyBpbiB0aGUgZmlsZQotICAgIGNsYXNzIEZpbGVNYXAqIG1EYXRhTWFwOwotCi0gICAgel9zdHJlYW0gbUluZmxhdGVTdGF0ZTsKLSAgICBib29sIG1TdHJlYW1OZWVkc0luaXQ7Ci0KLSAgICAvLyBvdXRwdXQgaW52YXJpYW50cyBmb3IgdGhpcyBhc3NldAotICAgIHVpbnQ4X3QqIG1PdXRCdWY7ICAgICAgICAgICAvLyBvdXRwdXQgYnVmIGZvciBkZWNvbXByZXNzZWQgYnl0ZXMKLSAgICBzaXplX3QgbU91dEJ1ZlNpemU7ICAgICAgICAgLy8gYWxsb2NhdGVkIHNpemUgb2YgbU91dEJ1ZgotICAgIHNpemVfdCBtT3V0VG90YWxTaXplOyAgICAgICAvLyB0b3RhbCB1bmNvbXByZXNzZWQgc2l6ZSBvZiB0aGUgYmxvYgotCi0gICAgLy8gY3VycmVudCBvdXRwdXQgc3RhdGUgYm9va2tlZXBpbmcKLSAgICBvZmY2NF90IG1PdXRDdXJQb3NpdGlvbjsgICAgICAvLyBjdXJyZW50IHBvc2l0aW9uIGluIHRvdGFsIG9mZnNldAotICAgIHNpemVfdCBtT3V0TGFzdERlY29kZWQ7ICAgICAvLyBsYXN0IGRlY29kZWQgYnl0ZSArIDEgaW4gbU91dGJ1ZgotICAgIHNpemVfdCBtT3V0RGVsaXZlcmFibGU7ICAgICAvLyBuZXh0IHVuZGVsaXZlcmVkIGJ5dGUgb2YgZGVjb2RlZCBvdXRwdXQgaW4gbU91dEJ1ZgotCi0gICAgLy8gaW5wdXQgaW52YXJpYW50cwotICAgIHVpbnQ4X3QqIG1JbkJ1ZjsKLSAgICBzaXplX3QgbUluQnVmU2l6ZTsgICAgICAgICAgLy8gYWxsb2NhdGVkIHNpemUgb2YgbUluQnVmOwotICAgIHNpemVfdCBtSW5Ub3RhbFNpemU7ICAgICAgICAvLyB0b3RhbCBzaXplIG9mIGNvbXByZXNzZWQgZGF0YSBmb3IgdGhpcyBibG9iCi0KLSAgICAvLyBpbnB1dCBzdGF0ZSBib29ra2VlcGluZwotICAgIHNpemVfdCBtSW5OZXh0Q2h1bmtPZmZzZXQ7ICAvLyBvZmZzZXQgZnJvbSBzdGFydCBvZiBibG9iIGF0IHdoaWNoIHRoZSBuZXh0IGlucHV0IGNodW5rIGxpZXMKLSAgICAvLyB0aGUgel9zdHJlYW0gY29udGFpbnMgc3RhdGUgYWJvdXQgaW5wdXQgYmxvY2sgY29uc3VtcHRpb24KLX07Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FuZHJvaWRmdy9aaXBGaWxlUk8uaCBiL2luY2x1ZGUvYW5kcm9pZGZ3L1ppcEZpbGVSTy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDdlMzZhLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYW5kcm9pZGZ3L1ppcEZpbGVSTy5oCisrKyAvZGV2L251bGwKQEAgLTEsMjYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0vKgotICogUmVhZC1vbmx5IGFjY2VzcyB0byBaaXAgYXJjaGl2ZXMsIHdpdGggbWluaW1hbCBoZWFwIGFsbG9jYXRpb24uCi0gKgotICogVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSBtb3JlLWNvbXBsZXRlIFppcEZpbGUgY2xhc3MsIGJ1dCBubyBhdHRlbXB0Ci0gKiBoYXMgYmVlbiBtYWRlIHRvIG1ha2UgdGhlbSBpbnRlcmNoYW5nZWFibGUuICBUaGlzIGNsYXNzIG9wZXJhdGVzIHVuZGVyCi0gKiBhIHZlcnkgZGlmZmVyZW50IHNldCBvZiBhc3N1bXB0aW9ucyBhbmQgY29uc3RyYWludHMuCi0gKgotICogT25lIHN1Y2ggYXNzdW1wdGlvbiBpcyB0aGF0IGlmIHlvdSdyZSBnZXR0aW5nIGZpbGUgZGVzY3JpcHRvcnMgZm9yCi0gKiB1c2Ugd2l0aCB0aGlzIGNsYXNzIGFzIGEgY2hpbGQgb2YgYSBmb3JrKCkgb3BlcmF0aW9uLCB5b3UgbXVzdCBiZSBvbgotICogYSBwcmVhZCgpIHRvIGd1YXJhbnRlZSBjb3JyZWN0IG9wZXJhdGlvbi4gVGhpcyBpcyBiZWNhdXNlIHByZWFkKCkgY2FuCi0gKiBhdG9taWNhbGx5IHJlYWQgYXQgYSBmaWxlIG9mZnNldCB3aXRob3V0IHdvcnJ5aW5nIGFib3V0IGEgbG9jayBhcm91bmQgYW4KLSAqIGxzZWVrKCkgKyByZWFkKCkgcGFpci4KLSAqLwotI2lmbmRlZiBfX0xJQlNfWklQRklMRVJPX0gKLSNkZWZpbmUgX19MSUJTX1pJUEZJTEVST19ICi0KLSNpbmNsdWRlIDx1dGlscy9Db21wYXQuaD4KLSNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KLSNpbmNsdWRlIDx1dGlscy9GaWxlTWFwLmg+Ci0jaW5jbHVkZSA8dXRpbHMvdGhyZWFkcy5oPgotCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDx0aW1lLmg+Ci0KLW5hbWVzcGFjZSBhbmRyb2lkIHsKLQotLyoKLSAqIFRyaXZpYWwgdHlwZWRlZiB0byBlbnN1cmUgdGhhdCBaaXBFbnRyeVJPIGlzIG5vdCB0cmVhdGVkIGFzIGEgc2ltcGxlCi0gKiBpbnRlZ2VyLiAgV2UgdXNlIE5VTEwgdG8gaW5kaWNhdGUgYW4gaW52YWxpZCB2YWx1ZS4KLSAqLwotdHlwZWRlZiB2b2lkKiBaaXBFbnRyeVJPOwotCi0vKgotICogT3BlbiBhIFppcCBhcmNoaXZlIGZvciByZWFkaW5nLgotICoKLSAqIFdlIHdhbnQgIm9wZW4iIGFuZCAiZmluZCBlbnRyeSBieSBuYW1lIiB0byBiZSBmYXN0IG9wZXJhdGlvbnMsIGFuZCB3ZQotICogd2FudCB0byB1c2UgYXMgbGl0dGxlIG1lbW9yeSBhcyBwb3NzaWJsZS4gIFdlIG1lbW9yeS1tYXAgdGhlIGZpbGUsCi0gKiBhbmQgbG9hZCBhIGhhc2ggdGFibGUgd2l0aCBwb2ludGVycyB0byB0aGUgZmlsZW5hbWVzICh3aGljaCBhcmVuJ3QKLSAqIG51bGwtdGVybWluYXRlZCkuICBUaGUgb3RoZXIgZmllbGRzIGFyZSBhdCBhIGZpeGVkIG9mZnNldCBmcm9tIHRoZQotICogZmlsZW5hbWUsIHNvIHdlIGRvbid0IG5lZWQgdG8gZXh0cmFjdCB0aG9zZSAoYnV0IHdlIGRvIG5lZWQgdG8gYnl0ZS1yZWFkCi0gKiBhbmQgZW5kaWFuLXN3YXAgdGhlbSBldmVyeSB0aW1lIHdlIHdhbnQgdGhlbSkuCi0gKgotICogVG8gc3BlZWQgY29tcGFyaXNvbnMgd2hlbiBkb2luZyBhIGxvb2t1cCBieSBuYW1lLCB3ZSBjb3VsZCBtYWtlIHRoZSBtYXBwaW5nCi0gKiAicHJpdmF0ZSIgKGNvcHktb24td3JpdGUpIGFuZCBudWxsLXRlcm1pbmF0ZSB0aGUgZmlsZW5hbWVzIGFmdGVyIHZlcmlmeWluZwotICogdGhlIHJlY29yZCBzdHJ1Y3R1cmUuICBIb3dldmVyLCB0aGlzIHJlcXVpcmVzIGEgcHJpdmF0ZSBtYXBwaW5nIG9mCi0gKiBldmVyeSBwYWdlIHRoYXQgdGhlIENlbnRyYWwgRGlyZWN0b3J5IHRvdWNoZXMuICBFYXNpZXIgdG8gdHVjayBhIGNvcHkKLSAqIG9mIHRoZSBzdHJpbmcgbGVuZ3RoIGludG8gdGhlIGhhc2ggdGFibGUgZW50cnkuCi0gKgotICogTk9URTogSWYgdGhpcyBpcyB1c2VkIG9uIGZpbGUgZGVzY3JpcHRvcnMgaW5oZXJpdGVkIGZyb20gYSBmb3JrKCkgb3BlcmF0aW9uLAotICogeW91IG11c3QgYmUgb24gYSBwbGF0Zm9ybSB0aGF0IGltcGxlbWVudHMgcHJlYWQoKSB0byBndWFyYW50ZWUgY29ycmVjdG5lc3MKLSAqIG9uIHRoZSBzaGFyZWQgZmlsZSBkZXNjcmlwdG9ycy4KLSAqLwotY2xhc3MgWmlwRmlsZVJPIHsKLXB1YmxpYzoKLSAgICBaaXBGaWxlUk8oKQotICAgICAgICA6IG1GZCgtMSksIG1GaWxlTmFtZShOVUxMKSwgbUZpbGVMZW5ndGgoLTEpLAotICAgICAgICAgIG1EaXJlY3RvcnlNYXAoTlVMTCksCi0gICAgICAgICAgbU51bUVudHJpZXMoLTEpLCBtRGlyZWN0b3J5T2Zmc2V0KC0xKSwKLSAgICAgICAgICBtSGFzaFRhYmxlU2l6ZSgtMSksIG1IYXNoVGFibGUoTlVMTCkKLSAgICAgICAge30KLQotICAgIH5aaXBGaWxlUk8oKTsKLQotICAgIC8qCi0gICAgICogT3BlbiBhbiBhcmNoaXZlLgotICAgICAqLwotICAgIHN0YXR1c190IG9wZW4oY29uc3QgY2hhciogemlwRmlsZU5hbWUpOwotCi0gICAgLyoKLSAgICAgKiBGaW5kIGFuIGVudHJ5LCBieSBuYW1lLiAgUmV0dXJucyB0aGUgZW50cnkgaWRlbnRpZmllciwgb3IgTlVMTCBpZgotICAgICAqIG5vdCBmb3VuZC4KLSAgICAgKgotICAgICAqIElmIHR3byBlbnRyaWVzIGhhdmUgdGhlIHNhbWUgbmFtZSwgb25lIHdpbGwgYmUgY2hvc2VuIGF0IHNlbWktcmFuZG9tLgotICAgICAqLwotICAgIFppcEVudHJ5Uk8gZmluZEVudHJ5QnlOYW1lKGNvbnN0IGNoYXIqIGZpbGVOYW1lKSBjb25zdDsKLQotICAgIC8qCi0gICAgICogUmV0dXJuIHRoZSAjb2YgZW50cmllcyBpbiB0aGUgWmlwIGFyY2hpdmUuCi0gICAgICovCi0gICAgaW50IGdldE51bUVudHJpZXModm9pZCkgY29uc3QgewotICAgICAgICByZXR1cm4gbU51bUVudHJpZXM7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBSZXR1cm4gdGhlIE50aCBlbnRyeS4gIFppcCBmaWxlIGVudHJpZXMgYXJlIG5vdCBzdG9yZWQgaW4gc29ydGVkCi0gICAgICogb3JkZXIsIGFuZCB1cGRhdGVkIGVudHJpZXMgbWF5IGFwcGVhciBhdCB0aGUgZW5kLCBzbyBhbnlvbmUgd2Fsa2luZwotICAgICAqIHRoZSBhcmNoaXZlIG5lZWRzIHRvIGF2b2lkIG1ha2luZyBvcmRlcmluZyBhc3N1bXB0aW9ucy4gIFdlIHRha2UKLSAgICAgKiB0aGF0IGZ1cnRoZXIgYnkgcmV0dXJuaW5nIHRoZSBOdGggbm9uLWVtcHR5IGVudHJ5IGluIHRoZSBoYXNoIHRhYmxlCi0gICAgICogcmF0aGVyIHRoYW4gdGhlIE50aCBlbnRyeSBpbiB0aGUgYXJjaGl2ZS4KLSAgICAgKgotICAgICAqIFZhbGlkIHZhbHVlcyBhcmUgWzAuLm51bUVudHJpZXMpLgotICAgICAqCi0gICAgICogW1RoaXMgaXMgY3VycmVudGx5IE8obikuICBJZiBpdCBuZWVkcyB0byBiZSBmYXN0IHdlIGNhbiBhbGxvY2F0ZSBhbgotICAgICAqIGFkZGl0aW9uYWwgZGF0YSBzdHJ1Y3R1cmUgb3IgcHJvdmlkZSBhbiBpdGVyYXRvciBpbnRlcmZhY2UuXQotICAgICAqLwotICAgIFppcEVudHJ5Uk8gZmluZEVudHJ5QnlJbmRleChpbnQgaWR4KSBjb25zdDsKLQotICAgIC8qCi0gICAgICogQ29weSB0aGUgZmlsZW5hbWUgaW50byB0aGUgc3VwcGxpZWQgYnVmZmVyLiAgUmV0dXJucyAwIG9uIHN1Y2Nlc3MsCi0gICAgICogLTEgaWYgImVudHJ5IiBpcyBpbnZhbGlkLCBvciB0aGUgZmlsZW5hbWUgbGVuZ3RoIGlmIGl0IGRpZG4ndCBmaXQuICBUaGUKLSAgICAgKiBsZW5ndGgsIGFuZCB0aGUgcmV0dXJuZWQgc3RyaW5nLCBpbmNsdWRlIHRoZSBudWxsLXRlcm1pbmF0aW9uLgotICAgICAqLwotICAgIGludCBnZXRFbnRyeUZpbGVOYW1lKFppcEVudHJ5Uk8gZW50cnksIGNoYXIqIGJ1ZmZlciwgaW50IGJ1ZkxlbikgY29uc3Q7Ci0KLSAgICAvKgotICAgICAqIEdldCB0aGUgdml0YWwgc3RhdHMgZm9yIGFuIGVudHJ5LiAgUGFzcyBpbiBOVUxMIHBvaW50ZXJzIGZvciBhbnl0aGluZwotICAgICAqIHlvdSBkb24ndCBuZWVkLgotICAgICAqCi0gICAgICogIipwT2Zmc2V0IiBob2xkcyB0aGUgWmlwIGZpbGUgb2Zmc2V0IG9mIHRoZSBlbnRyeSdzIGRhdGEuCi0gICAgICoKLSAgICAgKiBSZXR1cm5zICJmYWxzZSIgaWYgImVudHJ5IiBpcyBib2d1cyBvciBpZiB0aGUgZGF0YSBpbiB0aGUgWmlwIGZpbGUKLSAgICAgKiBhcHBlYXJzIHRvIGJlIGJhZC4KLSAgICAgKi8KLSAgICBib29sIGdldEVudHJ5SW5mbyhaaXBFbnRyeVJPIGVudHJ5LCBpbnQqIHBNZXRob2QsIHNpemVfdCogcFVuY29tcExlbiwKLSAgICAgICAgc2l6ZV90KiBwQ29tcExlbiwgb2ZmNjRfdCogcE9mZnNldCwgbG9uZyogcE1vZFdoZW4sIGxvbmcqIHBDcmMzMikgY29uc3Q7Ci0KLSAgICAvKgotICAgICAqIENyZWF0ZSBhIG5ldyBGaWxlTWFwIG9iamVjdCB0aGF0IG1hcHMgYSBzdWJzZXQgb2YgdGhlIGFyY2hpdmUuICBGb3IKLSAgICAgKiBhbiB1bmNvbXByZXNzZWQgZW50cnkgdGhpcyBlZmZlY3RpdmVseSBwcm92aWRlcyBhIHBvaW50ZXIgdG8gdGhlCi0gICAgICogYWN0dWFsIGRhdGEsIGZvciBhIGNvbXByZXNzZWQgZW50cnkgdGhpcyBwcm92aWRlcyB0aGUgaW5wdXQgYnVmZmVyCi0gICAgICogZm9yIGluZmxhdGUoKS4KLSAgICAgKi8KLSAgICBGaWxlTWFwKiBjcmVhdGVFbnRyeUZpbGVNYXAoWmlwRW50cnlSTyBlbnRyeSkgY29uc3Q7Ci0KLSAgICAvKgotICAgICAqIFVuY29tcHJlc3MgdGhlIGRhdGEgaW50byBhIGJ1ZmZlci4gIERlcGVuZGluZyBvbiB0aGUgY29tcHJlc3Npb24KLSAgICAgKiBmb3JtYXQsIHRoaXMgaXMgZWl0aGVyIGFuICJpbmZsYXRlIiBvcGVyYXRpb24gb3IgYSBtZW1jcHkuCi0gICAgICoKLSAgICAgKiBVc2UgInVuY29tcExlbiIgZnJvbSBnZXRFbnRyeUluZm8oKSB0byBkZXRlcm1pbmUgdGhlIHJlcXVpcmVkCi0gICAgICogYnVmZmVyIHNpemUuCi0gICAgICoKLSAgICAgKiBSZXR1cm5zICJ0cnVlIiBvbiBzdWNjZXNzLgotICAgICAqLwotICAgIGJvb2wgdW5jb21wcmVzc0VudHJ5KFppcEVudHJ5Uk8gZW50cnksIHZvaWQqIGJ1ZmZlcikgY29uc3Q7Ci0KLSAgICAvKgotICAgICAqIFVuY29tcHJlc3MgdGhlIGRhdGEgdG8gYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IuCi0gICAgICovCi0gICAgYm9vbCB1bmNvbXByZXNzRW50cnkoWmlwRW50cnlSTyBlbnRyeSwgaW50IGZkKSBjb25zdDsKLQotICAgIC8qIFppcCBjb21wcmVzc2lvbiBtZXRob2RzIHdlIHN1cHBvcnQgKi8KLSAgICBlbnVtIHsKLSAgICAgICAga0NvbXByZXNzU3RvcmVkICAgICA9IDAsICAgICAgICAvLyBubyBjb21wcmVzc2lvbgotICAgICAgICBrQ29tcHJlc3NEZWZsYXRlZCAgID0gOCwgICAgICAgIC8vIHN0YW5kYXJkIGRlZmxhdGUKLSAgICB9OwotCi0gICAgLyoKLSAgICAgKiBVdGlsaXR5IGZ1bmN0aW9uOiB1bmNvbXByZXNzIGRlZmxhdGVkIGRhdGEsIGJ1ZmZlciB0byBidWZmZXIuCi0gICAgICovCi0gICAgc3RhdGljIGJvb2wgaW5mbGF0ZUJ1ZmZlcih2b2lkKiBvdXRCdWYsIGNvbnN0IHZvaWQqIGluQnVmLAotICAgICAgICBzaXplX3QgdW5jb21wTGVuLCBzaXplX3QgY29tcExlbik7Ci0KLSAgICAvKgotICAgICAqIFV0aWxpdHkgZnVuY3Rpb246IHVuY29tcHJlc3MgZGVmbGF0ZWQgZGF0YSwgYnVmZmVyIHRvIGZkLgotICAgICAqLwotICAgIHN0YXRpYyBib29sIGluZmxhdGVCdWZmZXIoaW50IGZkLCBjb25zdCB2b2lkKiBpbkJ1ZiwKLSAgICAgICAgc2l6ZV90IHVuY29tcExlbiwgc2l6ZV90IGNvbXBMZW4pOwotCi0gICAgLyoKLSAgICAgKiBVdGlsaXR5IGZ1bmN0aW9uIHRvIGNvbnZlcnQgWklQJ3MgdGltZSBmb3JtYXQgdG8gYSB0aW1lc3BlYyBzdHJ1Y3QuCi0gICAgICovCi0gICAgc3RhdGljIGlubGluZSB2b2lkIHppcFRpbWVUb1RpbWVzcGVjKGxvbmcgd2hlbiwgc3RydWN0IHRtKiB0aW1lc3BlYykgewotICAgICAgICBjb25zdCBsb25nIGRhdGUgPSB3aGVuID4+IDE2OwotICAgICAgICB0aW1lc3BlYy0+dG1feWVhciA9ICgoZGF0ZSA+PiA5KSAmIDB4N0YpICsgODA7IC8vIFppcCBpcyB5ZWFycyBzaW5jZSAxOTgwCi0gICAgICAgIHRpbWVzcGVjLT50bV9tb24gPSAoZGF0ZSA+PiA1KSAmIDB4MEY7Ci0gICAgICAgIHRpbWVzcGVjLT50bV9tZGF5ID0gZGF0ZSAmIDB4MUY7Ci0KLSAgICAgICAgdGltZXNwZWMtPnRtX2hvdXIgPSAod2hlbiA+PiAxMSkgJiAweDFGOwotICAgICAgICB0aW1lc3BlYy0+dG1fbWluID0gKHdoZW4gPj4gNSkgJiAweDNGOwotICAgICAgICB0aW1lc3BlYy0+dG1fc2VjID0gKHdoZW4gJiAweDFGKSA8PCAxOwotICAgIH0KLQotICAgIC8qCi0gICAgICogU29tZSBiYXNpYyBmdW5jdGlvbnMgZm9yIHJhdyBkYXRhIG1hbmlwdWxhdGlvbi4gICJMRSIgbWVhbnMKLSAgICAgKiBMaXR0bGUgRW5kaWFuLgotICAgICAqLwotICAgIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgc2hvcnQgZ2V0MkxFKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ1ZikgewotICAgICAgICByZXR1cm4gYnVmWzBdIHwgKGJ1ZlsxXSA8PCA4KTsKLSAgICB9Ci0gICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGdldDRMRShjb25zdCB1bnNpZ25lZCBjaGFyKiBidWYpIHsKLSAgICAgICAgcmV0dXJuIGJ1ZlswXSB8IChidWZbMV0gPDwgOCkgfCAoYnVmWzJdIDw8IDE2KSB8IChidWZbM10gPDwgMjQpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICAvKiB0aGVzZSBhcmUgcHJpdmF0ZSBhbmQgbm90IGRlZmluZWQgKi8gCi0gICAgWmlwRmlsZVJPKGNvbnN0IFppcEZpbGVSTyYgc3JjKTsKLSAgICBaaXBGaWxlUk8mIG9wZXJhdG9yPShjb25zdCBaaXBGaWxlUk8mIHNyYyk7Ci0KLSAgICAvKiBsb2NhdGUgYW5kIHBhcnNlIHRoZSBjZW50cmFsIGRpcmVjdG9yeSAqLwotICAgIGJvb2wgbWFwQ2VudHJhbERpcmVjdG9yeSh2b2lkKTsKLQotICAgIC8qIHBhcnNlIHRoZSBhcmNoaXZlLCBwcmVwcGluZyBpbnRlcm5hbCBzdHJ1Y3R1cmVzICovCi0gICAgYm9vbCBwYXJzZVppcEFyY2hpdmUodm9pZCk7Ci0KLSAgICAvKiBhZGQgYSBuZXcgZW50cnkgdG8gdGhlIGhhc2ggdGFibGUgKi8KLSAgICB2b2lkIGFkZFRvSGFzaChjb25zdCBjaGFyKiBzdHIsIGludCBzdHJMZW4sIHVuc2lnbmVkIGludCBoYXNoKTsKLQotICAgIC8qIGNvbXB1dGUgc3RyaW5nIGhhc2ggY29kZSAqLwotICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgY29tcHV0ZUhhc2goY29uc3QgY2hhciogc3RyLCBpbnQgbGVuKTsKLQotICAgIC8qIGNvbnZlcnQgYSBaaXBFbnRyeVJPIGJhY2sgdG8gYSBoYXNoIHRhYmxlIGluZGV4ICovCi0gICAgaW50IGVudHJ5VG9JbmRleChjb25zdCBaaXBFbnRyeVJPIGVudHJ5KSBjb25zdDsKLQotICAgIC8qCi0gICAgICogT25lIGVudHJ5IGluIHRoZSBoYXNoIHRhYmxlLgotICAgICAqLwotICAgIHR5cGVkZWYgc3RydWN0IEhhc2hFbnRyeSB7Ci0gICAgICAgIGNvbnN0IGNoYXIqICAgICBuYW1lOwotICAgICAgICB1bnNpZ25lZCBzaG9ydCAgbmFtZUxlbjsKLSAgICAgICAgLy91bnNpZ25lZCBpbnQgICAgaGFzaDsKLSAgICB9IEhhc2hFbnRyeTsKLQotICAgIC8qIG9wZW4gWmlwIGFyY2hpdmUgKi8KLSAgICBpbnQgICAgICAgICBtRmQ7Ci0KLSAgICAvKiBMb2NrIGZvciBoYW5kbGluZyB0aGUgZmlsZSBkZXNjcmlwdG9yIChzZWVrcywgZXRjKSAqLwotICAgIG11dGFibGUgTXV0ZXggbUZkTG9jazsKLQotICAgIC8qIHppcCBmaWxlIG5hbWUgKi8KLSAgICBjaGFyKiAgICAgICBtRmlsZU5hbWU7Ci0KLSAgICAvKiBsZW5ndGggb2YgZmlsZSAqLwotICAgIHNpemVfdCAgICAgIG1GaWxlTGVuZ3RoOwotCi0gICAgLyogbWFwcGVkIGZpbGUgKi8KLSAgICBGaWxlTWFwKiAgICBtRGlyZWN0b3J5TWFwOwotCi0gICAgLyogbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIFppcCBhcmNoaXZlICovCi0gICAgaW50ICAgICAgICAgbU51bUVudHJpZXM7Ci0KLSAgICAvKiBDRCBkaXJlY3Rvcnkgb2Zmc2V0IGluIHRoZSBaaXAgYXJjaGl2ZSAqLwotICAgIG9mZjY0X3QgICAgIG1EaXJlY3RvcnlPZmZzZXQ7Ci0KLSAgICAvKgotICAgICAqIFdlIGtub3cgaG93IG1hbnkgZW50cmllcyBhcmUgaW4gdGhlIFppcCBhcmNoaXZlLCBzbyB3ZSBoYXZlIGEKLSAgICAgKiBmaXhlZC1zaXplIGhhc2ggdGFibGUuICBXZSBwcm9iZSBmb3IgYW4gZW1wdHkgc2xvdC4KLSAgICAgKi8KLSAgICBpbnQgICAgICAgICBtSGFzaFRhYmxlU2l6ZTsKLSAgICBIYXNoRW50cnkqICBtSGFzaFRhYmxlOwotfTsKLQotfTsgLy8gbmFtZXNwYWNlIGFuZHJvaWQKLQotI2VuZGlmIC8qX19MSUJTX1pJUEZJTEVST19IKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYW5kcm9pZGZ3L1ppcFV0aWxzLmggYi9pbmNsdWRlL2FuZHJvaWRmdy9aaXBVdGlscy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MmM0MmI2Li4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYW5kcm9pZGZ3L1ppcFV0aWxzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotLy8KLS8vIE1pc2NlbGxhbmVvdXMgemlwL2d6aXAgdXRpbGl0eSBmdW5jdGlvbnMuCi0vLwotI2lmbmRlZiBfX0xJQlNfWklQVVRJTFNfSAotI2RlZmluZSBfX0xJQlNfWklQVVRJTFNfSAotCi0jaW5jbHVkZSA8c3RkaW8uaD4KLQotbmFtZXNwYWNlIGFuZHJvaWQgewotCi0vKgotICogQ29udGFpbmVyIGNsYXNzIGZvciB1dGlsaXR5IGZ1bmN0aW9ucywgcHJpbWFyaWx5IGZvciBuYW1lc3BhY2UgcmVhc29ucy4KLSAqLwotY2xhc3MgWmlwVXRpbHMgewotcHVibGljOgotICAgIC8qCi0gICAgICogR2VuZXJhbCB1dGlsaXR5IGZ1bmN0aW9uIGZvciB1bmNvbXByZXNzaW5nICJkZWZsYXRlIiBkYXRhIGZyb20gYSBmaWxlCi0gICAgICogdG8gYSBidWZmZXIuCi0gICAgICovCi0gICAgc3RhdGljIGJvb2wgaW5mbGF0ZVRvQnVmZmVyKGludCBmZCwgdm9pZCogYnVmLCBsb25nIHVuY29tcHJlc3NlZExlbiwKLSAgICAgICAgbG9uZyBjb21wcmVzc2VkTGVuKTsKLSAgICBzdGF0aWMgYm9vbCBpbmZsYXRlVG9CdWZmZXIoRklMRSogZnAsIHZvaWQqIGJ1ZiwgbG9uZyB1bmNvbXByZXNzZWRMZW4sCi0gICAgICAgIGxvbmcgY29tcHJlc3NlZExlbik7Ci0KLSAgICAvKgotICAgICAqIFNvbWVkYXkgd2UgbWlnaHQgd2FudCB0byBtYWtlIHRoaXMgZ2VuZXJpYyBhbmQgaGFuZGxlIGJ6aXAyICIuYnoyIgotICAgICAqIGZpbGVzIHRvby4KLSAgICAgKgotICAgICAqIFdlIGNvdWxkIGRlY2xhcmUgZ3ppcCB0byBiZSBhIHN1Yi1jbGFzcyBvZiB6aXAgdGhhdCBoYXMgZXhhY3RseQotICAgICAqIG9uZSBhbHdheXMtY29tcHJlc3NlZCBlbnRyeSwgYnV0IHdlIGN1cnJlbnRseSB3YW50IHRvIHRyZWF0IFppcAotICAgICAqIGFuZCBnemlwIGFzIGRpc3RpbmN0LCBzbyB0aGVyZSdzIG5vIHZhbHVlLgotICAgICAqCi0gICAgICogVGhlIHpsaWIgbGlicmFyeSBoYXMgc29tZSBnemlwIHV0aWxpdGllcywgYnV0IGl0IGhhcyBubyBpbnRlcmZhY2UKLSAgICAgKiBmb3IgZXh0cmFjdGluZyB0aGUgdW5jb21wcmVzc2VkIGxlbmd0aCBvZiB0aGUgZmlsZSAoeW91IGRvICpub3QqCi0gICAgICogd2FudCB0byBnenNlZWsgdG8gdGhlIGVuZCkuCi0gICAgICoKLSAgICAgKiBQYXNzIGluIGEgc2Vla2VkIGZpbGUgcG9pbnRlciBmb3IgdGhlIGd6aXAgZmlsZS4gIElmIHRoaXMgaXMgYSBnemlwCi0gICAgICogZmlsZSwgd2Ugc2V0IG91ciByZXR1cm4gdmFsdWVzIGFwcHJvcHJpYXRlbHkgYW5kIHJldHVybiAidHJ1ZSIgd2l0aAotICAgICAqIHRoZSBmaWxlIHNlZWtlZCB0byB0aGUgc3RhcnQgb2YgdGhlIGNvbXByZXNzZWQgZGF0YS4KLSAgICAgKi8KLSAgICBzdGF0aWMgYm9vbCBleGFtaW5lR3ppcChGSUxFKiBmcCwgaW50KiBwQ29tcHJlc3Npb25NZXRob2QsCi0gICAgICAgIGxvbmcqIHBVbmNvbXByZXNzZWRMZW4sIGxvbmcqIHBDb21wcmVzc2VkTGVuLCB1bnNpZ25lZCBsb25nKiBwQ1JDMzIpOwotCi1wcml2YXRlOgotICAgIFppcFV0aWxzKCkge30KLSAgICB+WmlwVXRpbHMoKSB7fQotfTsKLQotfTsgLy8gbmFtZXNwYWNlIGFuZHJvaWQKLQotI2VuZGlmIC8qX19MSUJTX1pJUFVUSUxTX0gqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hbmRyb2lkZncvbWlzYy5oIGIvaW5jbHVkZS9hbmRyb2lkZncvbWlzYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTVhMGUyLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYW5kcm9pZGZ3L21pc2MuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0KLS8vCi0vLyBIYW5keSB1dGlsaXR5IGZ1bmN0aW9ucyBhbmQgcG9ydGFiaWxpdHkgY29kZS4KLS8vCi0jaWZuZGVmIF9MSUJTX0FORFJPSURfRldfTUlTQ19ICi0jZGVmaW5lIF9MSUJTX0FORFJPSURfRldfTUlTQ19ICi0KLW5hbWVzcGFjZSBhbmRyb2lkIHsKLQotLyoKLSAqIFNvbWUgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBmaWxlcy4gIFRoZXNlIGNvdWxkIGJlIG1hZGUKLSAqIHBhcnQgb2YgYSAiRmlsZSIgY2xhc3MuCi0gKi8KLXR5cGVkZWYgZW51bSBGaWxlVHlwZSB7Ci0gICAga0ZpbGVUeXBlVW5rbm93biA9IDAsCi0gICAga0ZpbGVUeXBlTm9uZXhpc3RlbnQsICAgICAgIC8vIGkuZS4gRU5PRU5UCi0gICAga0ZpbGVUeXBlUmVndWxhciwKLSAgICBrRmlsZVR5cGVEaXJlY3RvcnksCi0gICAga0ZpbGVUeXBlQ2hhckRldiwKLSAgICBrRmlsZVR5cGVCbG9ja0RldiwKLSAgICBrRmlsZVR5cGVGaWZvLAotICAgIGtGaWxlVHlwZVN5bWxpbmssCi0gICAga0ZpbGVUeXBlU29ja2V0LAotfSBGaWxlVHlwZTsKLS8qIGdldCB0aGUgZmlsZSdzIHR5cGU7IGZvbGxvd3Mgc3ltbGlua3MgKi8KLUZpbGVUeXBlIGdldEZpbGVUeXBlKGNvbnN0IGNoYXIqIGZpbGVOYW1lKTsKLS8qIGdldCB0aGUgZmlsZSdzIG1vZGlmaWNhdGlvbiBkYXRlOyByZXR1cm5zIC0xIHcvZXJybm8gc2V0IG9uIGZhaWx1cmUgKi8KLXRpbWVfdCBnZXRGaWxlTW9kRGF0ZShjb25zdCBjaGFyKiBmaWxlTmFtZSk7Ci0KLX07IC8vIG5hbWVzcGFjZSBhbmRyb2lkCi0KLSNlbmRpZiAvLyBfTElCU19BTkRST0lEX0ZXX01JU0NfSApkaWZmIC0tZ2l0IGEvbGlicy9hbmRyb2lkZncvQW5kcm9pZC5tayBiL2xpYnMvYW5kcm9pZGZ3L0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4MDYxMmIuLjAwMDAwMDAKLS0tIGEvbGlicy9hbmRyb2lkZncvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0KLUxPQ0FMX1BBVEg6PSAkKGNhbGwgbXktZGlyKQotCi0jIGxpYmFuZHJvaWRmdyBpcyBwYXJ0aWFsbHkgYnVpbHQgZm9yIHRoZSBob3N0ICh1c2VkIGJ5IG9iYnRvb2wgYW5kIG90aGVycykKLSMgVGhlc2UgZmlsZXMgYXJlIGNvbW1vbiB0byBob3N0IGFuZCB0YXJnZXQgYnVpbGRzLgotCi1jb21tb25Tb3VyY2VzIDo9IFwKLSAgICBBc3NldC5jcHAgXAotICAgIEFzc2V0RGlyLmNwcCBcCi0gICAgQXNzZXRNYW5hZ2VyLmNwcCBcCi0gICAgbWlzYy5jcHAgXAotICAgIE9iYkZpbGUuY3BwIFwKLSAgICBSZXNvdXJjZVR5cGVzLmNwcCBcCi0gICAgU3RyZWFtaW5nWmlwSW5mbGF0ZXIuY3BwIFwKLSAgICBaaXBGaWxlUk8uY3BwIFwKLSAgICBaaXBVdGlscy5jcHAKLQotZGV2aWNlU291cmNlcyA6PSBcCi0gICAgJChjb21tb25Tb3VyY2VzKSBcCi0gICAgQmFja3VwRGF0YS5jcHAgXAotICAgIEJhY2t1cEhlbHBlcnMuY3BwIFwKLSAgICBDdXJzb3JXaW5kb3cuY3BwCi0KLWhvc3RTb3VyY2VzIDo9IFwKLSAgICAkKGNvbW1vblNvdXJjZXMpCi0KLSMgRm9yIHRoZSBob3N0Ci0jID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotCi1MT0NBTF9TUkNfRklMRVM6PSAkKGhvc3RTb3VyY2VzKQotCi1MT0NBTF9NT0RVTEU6PSBsaWJhbmRyb2lkZncKLQotTE9DQUxfTU9EVUxFX1RBR1MgOj0gb3B0aW9uYWwKLQotTE9DQUxfQ0ZMQUdTICs9IC1EU1RBVElDX0FORFJPSURGV19GT1JfVE9PTFMKLQotTE9DQUxfQ19JTkNMVURFUyA6PSBcCi0JZXh0ZXJuYWwvemxpYgotCi1MT0NBTF9TVEFUSUNfTElCUkFSSUVTIDo9IGxpYmxvZwotCi1pbmNsdWRlICQoQlVJTERfSE9TVF9TVEFUSUNfTElCUkFSWSkKLQotCi0jIEZvciB0aGUgZGV2aWNlCi0jID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotCi1MT0NBTF9TUkNfRklMRVM6PSAkKGRldmljZVNvdXJjZXMpCi0KLUxPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAotCWxpYmJpbmRlciBcCi0JbGlibG9nIFwKLQlsaWJjdXRpbHMgXAotCWxpYnV0aWxzIFwKLQlsaWJ6Ci0KLUxPQ0FMX0NfSU5DTFVERVMgOj0gXAotICAgIGV4dGVybmFsL2ljdTRjL2NvbW1vbiBcCi0JZXh0ZXJuYWwvemxpYgotCi1MT0NBTF9NT0RVTEU6PSBsaWJhbmRyb2lkZncKLQotTE9DQUxfTU9EVUxFX1RBR1MgOj0gb3B0aW9uYWwKLQotaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQotCi0KLSMgSW5jbHVkZSBzdWJkaXJlY3RvcnkgbWFrZWZpbGVzCi0jID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0jIElmIHdlJ3JlIGJ1aWxkaW5nIHdpdGggT05FX1NIT1RfTUFLRUZJTEUgKG1tLCBtbW0pLCB0aGVuIHdoYXQgdGhlIGZyYW1ld29yawotIyB0ZWFtIHJlYWxseSB3YW50cyBpcyB0byBidWlsZCB0aGUgc3R1ZmYgZGVmaW5lZCBieSB0aGlzIG1ha2VmaWxlLgotaWZlcSAoLCQoT05FX1NIT1RfTUFLRUZJTEUpKQotaW5jbHVkZSAkKGNhbGwgZmlyc3QtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCi1lbmRpZgpkaWZmIC0tZ2l0IGEvbGlicy9hbmRyb2lkZncvQXNzZXQuY3BwIGIvbGlicy9hbmRyb2lkZncvQXNzZXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjc2MjhkLi4wMDAwMDAwCi0tLSBhL2xpYnMvYW5kcm9pZGZ3L0Fzc2V0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg5NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotLy8KLS8vIFByb3ZpZGUgYWNjZXNzIHRvIGEgcmVhZC1vbmx5IGFzc2V0LgotLy8KLQotI2RlZmluZSBMT0dfVEFHICJhc3NldCIKLS8vI2RlZmluZSBOREVCVUcgMAotCi0jaW5jbHVkZSA8YW5kcm9pZGZ3L0Fzc2V0Lmg+Ci0jaW5jbHVkZSA8YW5kcm9pZGZ3L1N0cmVhbWluZ1ppcEluZmxhdGVyLmg+Ci0jaW5jbHVkZSA8YW5kcm9pZGZ3L1ppcEZpbGVSTy5oPgotI2luY2x1ZGUgPGFuZHJvaWRmdy9aaXBVdGlscy5oPgotI2luY2x1ZGUgPHV0aWxzL0F0b21pYy5oPgotI2luY2x1ZGUgPHV0aWxzL0ZpbGVNYXAuaD4KLSNpbmNsdWRlIDx1dGlscy9Mb2cuaD4KLSNpbmNsdWRlIDx1dGlscy90aHJlYWRzLmg+Ci0KLSNpbmNsdWRlIDxhc3NlcnQuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8bWVtb3J5Lmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLQotdXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ7Ci0KLSNpZm5kZWYgT19CSU5BUlkKLSMgZGVmaW5lIE9fQklOQVJZIDAKLSNlbmRpZgotCi1zdGF0aWMgTXV0ZXggZ0Fzc2V0TG9jazsKLXN0YXRpYyBpbnQzMl90IGdDb3VudCA9IDA7Ci1zdGF0aWMgQXNzZXQqIGdIZWFkID0gTlVMTDsKLXN0YXRpYyBBc3NldCogZ1RhaWwgPSBOVUxMOwotCi1pbnQzMl90IEFzc2V0OjpnZXRHbG9iYWxDb3VudCgpCi17Ci0gICAgQXV0b011dGV4IF9sKGdBc3NldExvY2spOwotICAgIHJldHVybiBnQ291bnQ7Ci19Ci0KLVN0cmluZzggQXNzZXQ6OmdldEFzc2V0QWxsb2NhdGlvbnMoKQotewotICAgIEF1dG9NdXRleCBfbChnQXNzZXRMb2NrKTsKLSAgICBTdHJpbmc4IHJlczsKLSAgICBBc3NldCogY3VyID0gZ0hlYWQ7Ci0gICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7Ci0gICAgICAgIGlmIChjdXItPmlzQWxsb2NhdGVkKCkpIHsKLSAgICAgICAgICAgIHJlcy5hcHBlbmQoIiAgICAiKTsKLSAgICAgICAgICAgIHJlcy5hcHBlbmQoY3VyLT5nZXRBc3NldFNvdXJjZSgpKTsKLSAgICAgICAgICAgIG9mZjY0X3Qgc2l6ZSA9IChjdXItPmdldExlbmd0aCgpKzUxMikvMTAyNDsKLSAgICAgICAgICAgIGNoYXIgYnVmWzY0XTsKLSAgICAgICAgICAgIHNwcmludGYoYnVmLCAiOiAlZEtcbiIsIChpbnQpc2l6ZSk7Ci0gICAgICAgICAgICByZXMuYXBwZW5kKGJ1Zik7Ci0gICAgICAgIH0KLSAgICAgICAgY3VyID0gY3VyLT5tTmV4dDsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIHJlczsKLX0KLQotQXNzZXQ6OkFzc2V0KHZvaWQpCi0gICAgOiBtQWNjZXNzTW9kZShBQ0NFU1NfVU5LTk9XTikKLXsKLSAgICBBdXRvTXV0ZXggX2woZ0Fzc2V0TG9jayk7Ci0gICAgZ0NvdW50Kys7Ci0gICAgbU5leHQgPSBtUHJldiA9IE5VTEw7Ci0gICAgaWYgKGdUYWlsID09IE5VTEwpIHsKLSAgICAgICAgZ0hlYWQgPSBnVGFpbCA9IHRoaXM7Ci0gIAl9IGVsc2UgewotICAJICAgIG1QcmV2ID0gZ1RhaWw7Ci0gIAkgICAgZ1RhaWwtPm1OZXh0ID0gdGhpczsKLSAgCSAgICBnVGFpbCA9IHRoaXM7Ci0gIAl9Ci0gICAgLy9BTE9HSSgiQ3JlYXRpbmcgQXNzZXQgJXAgIyVkXG4iLCB0aGlzLCBnQ291bnQpOwotfQotCi1Bc3NldDo6fkFzc2V0KHZvaWQpCi17Ci0gICAgQXV0b011dGV4IF9sKGdBc3NldExvY2spOwotCWdDb3VudC0tOwotICAgIGlmIChnSGVhZCA9PSB0aGlzKSB7Ci0gICAgICAgIGdIZWFkID0gbU5leHQ7Ci0gICAgfQotICAgIGlmIChnVGFpbCA9PSB0aGlzKSB7Ci0gICAgICAgIGdUYWlsID0gbVByZXY7Ci0gICAgfQotICAgIGlmIChtTmV4dCAhPSBOVUxMKSB7Ci0gICAgICAgIG1OZXh0LT5tUHJldiA9IG1QcmV2OwotICAgIH0KLSAgICBpZiAobVByZXYgIT0gTlVMTCkgewotICAgICAgICBtUHJldi0+bU5leHQgPSBtTmV4dDsKLSAgICB9Ci0gICAgbU5leHQgPSBtUHJldiA9IE5VTEw7Ci0gICAgLy9BTE9HSSgiRGVzdHJveWluZyBBc3NldCBpbiAlcCAjJWRcbiIsIHRoaXMsIGdDb3VudCk7Ci19Ci0KLS8qCi0gKiBDcmVhdGUgYSBuZXcgQXNzZXQgZnJvbSBhIGZpbGUgb24gZGlzay4gIFRoZXJlIGlzIGEgZmFpciBjaGFuY2UgdGhhdAotICogdGhlIGZpbGUgZG9lc24ndCBhY3R1YWxseSBleGlzdC4KLSAqCi0gKiBXZSBjYW4gdXNlICJtb2RlIiB0byBkZWNpZGUgaG93IHdlIHdhbnQgdG8gZ28gYWJvdXQgaXQuCi0gKi8KLS8qc3RhdGljKi8gQXNzZXQqIEFzc2V0OjpjcmVhdGVGcm9tRmlsZShjb25zdCBjaGFyKiBmaWxlTmFtZSwgQWNjZXNzTW9kZSBtb2RlKQotewotICAgIF9GaWxlQXNzZXQqIHBBc3NldDsKLSAgICBzdGF0dXNfdCByZXN1bHQ7Ci0gICAgb2ZmNjRfdCBsZW5ndGg7Ci0gICAgaW50IGZkOwotCi0gICAgZmQgPSBvcGVuKGZpbGVOYW1lLCBPX1JET05MWSB8IE9fQklOQVJZKTsKLSAgICBpZiAoZmQgPCAwKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIC8qCi0gICAgICogVW5kZXIgTGludXgsIHRoZSBsc2VlayBmYWlscyBpZiB3ZSBhY3R1YWxseSBvcGVuZWQgYSBkaXJlY3RvcnkuICBUbwotICAgICAqIGJlIGNvcnJlY3Qgd2Ugc2hvdWxkIHRlc3QgdGhlIGZpbGUgdHlwZSBleHBsaWNpdGx5LCBidXQgc2luY2Ugd2UKLSAgICAgKiBhbHdheXMgb3BlbiB0aGluZ3MgcmVhZC1vbmx5IGl0IGRvZXNuJ3QgcmVhbGx5IG1hdHRlciwgc28gdGhlcmUncwotICAgICAqIG5vIHZhbHVlIGluIGluY3VycmluZyB0aGUgZXh0cmEgb3ZlcmhlYWQgb2YgYW4gZnN0YXQoKSBjYWxsLgotICAgICAqLwotICAgIC8vIFRPRE8oa3Jvb3QpOiByZXBsYWNlIHRoaXMgd2l0aCBmc3RhdCBkZXNwaXRlIHRoZSBwbGVhIGFib3ZlLgotI2lmIDEKLSAgICBsZW5ndGggPSBsc2VlazY0KGZkLCAwLCBTRUVLX0VORCk7Ci0gICAgaWYgKGxlbmd0aCA8IDApIHsKLSAgICAgICAgOjpjbG9zZShmZCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICAodm9pZCkgbHNlZWs2NChmZCwgMCwgU0VFS19TRVQpOwotI2Vsc2UKLSAgICBzdHJ1Y3Qgc3RhdCBzdDsKLSAgICBpZiAoZnN0YXQoZmQsICZzdCkgPCAwKSB7Ci0gICAgICAgIDo6Y2xvc2UoZmQpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICBpZiAoIVNfSVNSRUcoc3Quc3RfbW9kZSkpIHsKLSAgICAgICAgOjpjbG9zZShmZCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSNlbmRpZgotCi0gICAgcEFzc2V0ID0gbmV3IF9GaWxlQXNzZXQ7Ci0gICAgcmVzdWx0ID0gcEFzc2V0LT5vcGVuQ2h1bmsoZmlsZU5hbWUsIGZkLCAwLCBsZW5ndGgpOwotICAgIGlmIChyZXN1bHQgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgZGVsZXRlIHBBc3NldDsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgcEFzc2V0LT5tQWNjZXNzTW9kZSA9IG1vZGU7Ci0gICAgcmV0dXJuIHBBc3NldDsKLX0KLQotCi0vKgotICogQ3JlYXRlIGEgbmV3IEFzc2V0IGZyb20gYSBjb21wcmVzc2VkIGZpbGUgb24gZGlzay4gIFRoZXJlIGlzIGEgZmFpciBjaGFuY2UKLSAqIHRoYXQgdGhlIGZpbGUgZG9lc24ndCBhY3R1YWxseSBleGlzdC4KLSAqCi0gKiBXZSBjdXJyZW50bHkgc3VwcG9ydCBnemlwIGZpbGVzLiAgV2UgbWlnaHQgd2FudCB0byBoYW5kbGUgLmJ6MiBzb21lZGF5LgotICovCi0vKnN0YXRpYyovIEFzc2V0KiBBc3NldDo6Y3JlYXRlRnJvbUNvbXByZXNzZWRGaWxlKGNvbnN0IGNoYXIqIGZpbGVOYW1lLAotICAgIEFjY2Vzc01vZGUgbW9kZSkKLXsKLSAgICBfQ29tcHJlc3NlZEFzc2V0KiBwQXNzZXQ7Ci0gICAgc3RhdHVzX3QgcmVzdWx0OwotICAgIG9mZjY0X3QgZmlsZUxlbjsKLSAgICBib29sIHNjYW5SZXN1bHQ7Ci0gICAgbG9uZyBvZmZzZXQ7Ci0gICAgaW50IG1ldGhvZDsKLSAgICBsb25nIHVuY29tcHJlc3NlZExlbiwgY29tcHJlc3NlZExlbjsKLSAgICBpbnQgZmQ7Ci0KLSAgICBmZCA9IG9wZW4oZmlsZU5hbWUsIE9fUkRPTkxZIHwgT19CSU5BUlkpOwotICAgIGlmIChmZCA8IDApCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgZmlsZUxlbiA9IGxzZWVrKGZkLCAwLCBTRUVLX0VORCk7Ci0gICAgaWYgKGZpbGVMZW4gPCAwKSB7Ci0gICAgICAgIDo6Y2xvc2UoZmQpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgKHZvaWQpIGxzZWVrKGZkLCAwLCBTRUVLX1NFVCk7Ci0KLSAgICAvKiB3YW50IGJ1ZmZlcmVkIEkvTyBmb3IgdGhlIGZpbGUgc2NhbjsgbXVzdCBkdXAgc28gZmNsb3NlKCkgaXMgc2FmZSAqLwotICAgIEZJTEUqIGZwID0gZmRvcGVuKGR1cChmZCksICJyYiIpOwotICAgIGlmIChmcCA9PSBOVUxMKSB7Ci0gICAgICAgIDo6Y2xvc2UoZmQpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBsb25nIGNyYzMyOwotICAgIHNjYW5SZXN1bHQgPSBaaXBVdGlsczo6ZXhhbWluZUd6aXAoZnAsICZtZXRob2QsICZ1bmNvbXByZXNzZWRMZW4sCi0gICAgICAgICAgICAgICAgICAgICZjb21wcmVzc2VkTGVuLCAmY3JjMzIpOwotICAgIG9mZnNldCA9IGZ0ZWxsKGZwKTsKLSAgICBmY2xvc2UoZnApOwotICAgIGlmICghc2NhblJlc3VsdCkgewotICAgICAgICBBTE9HRCgiRmlsZSAnJXMnIGlzIG5vdCBpbiBnemlwIGZvcm1hdFxuIiwgZmlsZU5hbWUpOwotICAgICAgICA6OmNsb3NlKGZkKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgcEFzc2V0ID0gbmV3IF9Db21wcmVzc2VkQXNzZXQ7Ci0gICAgcmVzdWx0ID0gcEFzc2V0LT5vcGVuQ2h1bmsoZmQsIG9mZnNldCwgbWV0aG9kLCB1bmNvbXByZXNzZWRMZW4sCi0gICAgICAgICAgICAgICAgY29tcHJlc3NlZExlbik7Ci0gICAgaWYgKHJlc3VsdCAhPSBOT19FUlJPUikgewotICAgICAgICBkZWxldGUgcEFzc2V0OwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICBwQXNzZXQtPm1BY2Nlc3NNb2RlID0gbW9kZTsKLSAgICByZXR1cm4gcEFzc2V0OwotfQotCi0KLSNpZiAwCi0vKgotICogQ3JlYXRlIGEgbmV3IEFzc2V0IGZyb20gcGFydCBvZiBhbiBvcGVuIGZpbGUuCi0gKi8KLS8qc3RhdGljKi8gQXNzZXQqIEFzc2V0OjpjcmVhdGVGcm9tRmlsZVNlZ21lbnQoaW50IGZkLCBvZmY2NF90IG9mZnNldCwKLSAgICBzaXplX3QgbGVuZ3RoLCBBY2Nlc3NNb2RlIG1vZGUpCi17Ci0gICAgX0ZpbGVBc3NldCogcEFzc2V0OwotICAgIHN0YXR1c190IHJlc3VsdDsKLQotICAgIHBBc3NldCA9IG5ldyBfRmlsZUFzc2V0OwotICAgIHJlc3VsdCA9IHBBc3NldC0+b3BlbkNodW5rKE5VTEwsIGZkLCBvZmZzZXQsIGxlbmd0aCk7Ci0gICAgaWYgKHJlc3VsdCAhPSBOT19FUlJPUikKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBwQXNzZXQtPm1BY2Nlc3NNb2RlID0gbW9kZTsKLSAgICByZXR1cm4gcEFzc2V0OwotfQotCi0vKgotICogQ3JlYXRlIGEgbmV3IEFzc2V0IGZyb20gY29tcHJlc3NlZCBkYXRhIGluIGFuIG9wZW4gZmlsZS4KLSAqLwotLypzdGF0aWMqLyBBc3NldCogQXNzZXQ6OmNyZWF0ZUZyb21Db21wcmVzc2VkRGF0YShpbnQgZmQsIG9mZjY0X3Qgb2Zmc2V0LAotICAgIGludCBjb21wcmVzc2lvbk1ldGhvZCwgc2l6ZV90IHVuY29tcHJlc3NlZExlbiwgc2l6ZV90IGNvbXByZXNzZWRMZW4sCi0gICAgQWNjZXNzTW9kZSBtb2RlKQotewotICAgIF9Db21wcmVzc2VkQXNzZXQqIHBBc3NldDsKLSAgICBzdGF0dXNfdCByZXN1bHQ7Ci0KLSAgICBwQXNzZXQgPSBuZXcgX0NvbXByZXNzZWRBc3NldDsKLSAgICByZXN1bHQgPSBwQXNzZXQtPm9wZW5DaHVuayhmZCwgb2Zmc2V0LCBjb21wcmVzc2lvbk1ldGhvZCwKLSAgICAgICAgICAgICAgICB1bmNvbXByZXNzZWRMZW4sIGNvbXByZXNzZWRMZW4pOwotICAgIGlmIChyZXN1bHQgIT0gTk9fRVJST1IpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgcEFzc2V0LT5tQWNjZXNzTW9kZSA9IG1vZGU7Ci0gICAgcmV0dXJuIHBBc3NldDsKLX0KLSNlbmRpZgotCi0vKgotICogQ3JlYXRlIGEgbmV3IEFzc2V0IGZyb20gYSBtZW1vcnkgbWFwcGluZy4KLSAqLwotLypzdGF0aWMqLyBBc3NldCogQXNzZXQ6OmNyZWF0ZUZyb21VbmNvbXByZXNzZWRNYXAoRmlsZU1hcCogZGF0YU1hcCwKLSAgICBBY2Nlc3NNb2RlIG1vZGUpCi17Ci0gICAgX0ZpbGVBc3NldCogcEFzc2V0OwotICAgIHN0YXR1c190IHJlc3VsdDsKLQotICAgIHBBc3NldCA9IG5ldyBfRmlsZUFzc2V0OwotICAgIHJlc3VsdCA9IHBBc3NldC0+b3BlbkNodW5rKGRhdGFNYXApOwotICAgIGlmIChyZXN1bHQgIT0gTk9fRVJST1IpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgcEFzc2V0LT5tQWNjZXNzTW9kZSA9IG1vZGU7Ci0gICAgcmV0dXJuIHBBc3NldDsKLX0KLQotLyoKLSAqIENyZWF0ZSBhIG5ldyBBc3NldCBmcm9tIGNvbXByZXNzZWQgZGF0YSBpbiBhIG1lbW9yeSBtYXBwaW5nLgotICovCi0vKnN0YXRpYyovIEFzc2V0KiBBc3NldDo6Y3JlYXRlRnJvbUNvbXByZXNzZWRNYXAoRmlsZU1hcCogZGF0YU1hcCwKLSAgICBpbnQgbWV0aG9kLCBzaXplX3QgdW5jb21wcmVzc2VkTGVuLCBBY2Nlc3NNb2RlIG1vZGUpCi17Ci0gICAgX0NvbXByZXNzZWRBc3NldCogcEFzc2V0OwotICAgIHN0YXR1c190IHJlc3VsdDsKLQotICAgIHBBc3NldCA9IG5ldyBfQ29tcHJlc3NlZEFzc2V0OwotICAgIHJlc3VsdCA9IHBBc3NldC0+b3BlbkNodW5rKGRhdGFNYXAsIG1ldGhvZCwgdW5jb21wcmVzc2VkTGVuKTsKLSAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIHBBc3NldC0+bUFjY2Vzc01vZGUgPSBtb2RlOwotICAgIHJldHVybiBwQXNzZXQ7Ci19Ci0KLQotLyoKLSAqIERvIGdlbmVyaWMgc2VlaygpIGhvdXNla2VlcGluZy4gIFBhc3MgaW4gdGhlIG9mZnNldC93aGVuY2UgdmFsdWVzIGZyb20KLSAqIHRoZSBzZWVrIHJlcXVlc3QsIGFsb25nIHdpdGggdGhlIGN1cnJlbnQgY2h1bmsgb2Zmc2V0IGFuZCB0aGUgY2h1bmsKLSAqIGxlbmd0aC4KLSAqCi0gKiBSZXR1cm5zIHRoZSBuZXcgY2h1bmsgb2Zmc2V0LCBvciAtMSBpZiB0aGUgc2VlayBpcyBpbGxlZ2FsLgotICovCi1vZmY2NF90IEFzc2V0OjpoYW5kbGVTZWVrKG9mZjY0X3Qgb2Zmc2V0LCBpbnQgd2hlbmNlLCBvZmY2NF90IGN1clBvc24sIG9mZjY0X3QgbWF4UG9zbikKLXsKLSAgICBvZmY2NF90IG5ld09mZnNldDsKLQotICAgIHN3aXRjaCAod2hlbmNlKSB7Ci0gICAgY2FzZSBTRUVLX1NFVDoKLSAgICAgICAgbmV3T2Zmc2V0ID0gb2Zmc2V0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFNFRUtfQ1VSOgotICAgICAgICBuZXdPZmZzZXQgPSBjdXJQb3NuICsgb2Zmc2V0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFNFRUtfRU5EOgotICAgICAgICBuZXdPZmZzZXQgPSBtYXhQb3NuICsgb2Zmc2V0OwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBTE9HVygidW5leHBlY3RlZCB3aGVuY2UgJWRcbiIsIHdoZW5jZSk7Ci0gICAgICAgIC8vIHRoaXMgd2FzIGhhcHBlbmluZyBkdWUgdG8gYW4gb2ZmNjRfdCBzaXplIG1pc21hdGNoCi0gICAgICAgIGFzc2VydChmYWxzZSk7Ci0gICAgICAgIHJldHVybiAob2ZmNjRfdCkgLTE7Ci0gICAgfQotCi0gICAgaWYgKG5ld09mZnNldCA8IDAgfHwgbmV3T2Zmc2V0ID4gbWF4UG9zbikgewotICAgICAgICBBTE9HVygic2VlayBvdXQgb2YgcmFuZ2U6IHdhbnQgJWxkLCBlbmQ9JWxkXG4iLAotICAgICAgICAgICAgKGxvbmcpIG5ld09mZnNldCwgKGxvbmcpIG1heFBvc24pOwotICAgICAgICByZXR1cm4gKG9mZjY0X3QpIC0xOwotICAgIH0KLQotICAgIHJldHVybiBuZXdPZmZzZXQ7Ci19Ci0KLQotLyoKLSAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogICAgICBfRmlsZUFzc2V0Ci0gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqLwotCi0vKgotICogQ29uc3RydWN0b3IuCi0gKi8KLV9GaWxlQXNzZXQ6Ol9GaWxlQXNzZXQodm9pZCkKLSAgICA6IG1TdGFydCgwKSwgbUxlbmd0aCgwKSwgbU9mZnNldCgwKSwgbUZwKE5VTEwpLCBtRmlsZU5hbWUoTlVMTCksIG1NYXAoTlVMTCksIG1CdWYoTlVMTCkKLXsKLX0KLQotLyoKLSAqIERlc3RydWN0b3IuICBSZWxlYXNlIHJlc291cmNlcy4KLSAqLwotX0ZpbGVBc3NldDo6fl9GaWxlQXNzZXQodm9pZCkKLXsKLSAgICBjbG9zZSgpOwotfQotCi0vKgotICogT3BlcmF0ZSBvbiBhIGNodW5rIG9mIGFuIHVuY29tcHJlc3NlZCBmaWxlLgotICoKLSAqIFplcm8tbGVuZ3RoIGNodW5rcyBhcmUgYWxsb3dlZC4KLSAqLwotc3RhdHVzX3QgX0ZpbGVBc3NldDo6b3BlbkNodW5rKGNvbnN0IGNoYXIqIGZpbGVOYW1lLCBpbnQgZmQsIG9mZjY0X3Qgb2Zmc2V0LCBzaXplX3QgbGVuZ3RoKQotewotICAgIGFzc2VydChtRnAgPT0gTlVMTCk7ICAgIC8vIG5vIHJlb3BlbgotICAgIGFzc2VydChtTWFwID09IE5VTEwpOwotICAgIGFzc2VydChmZCA+PSAwKTsKLSAgICBhc3NlcnQob2Zmc2V0ID49IDApOwotCi0gICAgLyoKLSAgICAgKiBTZWVrIHRvIGVuZCB0byBnZXQgZmlsZSBsZW5ndGguCi0gICAgICovCi0gICAgb2ZmNjRfdCBmaWxlTGVuZ3RoOwotICAgIGZpbGVMZW5ndGggPSBsc2VlazY0KGZkLCAwLCBTRUVLX0VORCk7Ci0gICAgaWYgKGZpbGVMZW5ndGggPT0gKG9mZjY0X3QpIC0xKSB7Ci0gICAgICAgIC8vIHByb2JhYmx5IGEgYmFkIGZpbGUgZGVzY3JpcHRvcgotICAgICAgICBBTE9HRCgiZmFpbGVkIGxzZWVrIChlcnJubz0lZClcbiIsIGVycm5vKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotCi0gICAgaWYgKChvZmY2NF90KSAob2Zmc2V0ICsgbGVuZ3RoKSA+IGZpbGVMZW5ndGgpIHsKLSAgICAgICAgQUxPR0QoInN0YXJ0ICglbGQpICsgbGVuICglbGQpID4gZW5kICglbGQpXG4iLAotICAgICAgICAgICAgKGxvbmcpIG9mZnNldCwgKGxvbmcpIGxlbmd0aCwgKGxvbmcpIGZpbGVMZW5ndGgpOwotICAgICAgICByZXR1cm4gQkFEX0lOREVYOwotICAgIH0KLQotICAgIC8qIGFmdGVyIGZkb3BlbiwgdGhlIGZkIHdpbGwgYmUgY2xvc2VkIG9uIGZjbG9zZSgpICovCi0gICAgbUZwID0gZmRvcGVuKGZkLCAicmIiKTsKLSAgICBpZiAobUZwID09IE5VTEwpCi0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotCi0gICAgbVN0YXJ0ID0gb2Zmc2V0OwotICAgIG1MZW5ndGggPSBsZW5ndGg7Ci0gICAgYXNzZXJ0KG1PZmZzZXQgPT0gMCk7Ci0KLSAgICAvKiBzZWVrIHRoZSBGSUxFKiB0byB0aGUgc3RhcnQgb2YgY2h1bmsgKi8KLSAgICBpZiAoZnNlZWsobUZwLCBtU3RhcnQsIFNFRUtfU0VUKSAhPSAwKSB7Ci0gICAgICAgIGFzc2VydChmYWxzZSk7Ci0gICAgfQotCi0gICAgbUZpbGVOYW1lID0gZmlsZU5hbWUgIT0gTlVMTCA/IHN0cmR1cChmaWxlTmFtZSkgOiBOVUxMOwotICAgIAotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotLyoKLSAqIENyZWF0ZSB0aGUgY2h1bmsgZnJvbSB0aGUgbWFwLgotICovCi1zdGF0dXNfdCBfRmlsZUFzc2V0OjpvcGVuQ2h1bmsoRmlsZU1hcCogZGF0YU1hcCkKLXsKLSAgICBhc3NlcnQobUZwID09IE5VTEwpOyAgICAvLyBubyByZW9wZW4KLSAgICBhc3NlcnQobU1hcCA9PSBOVUxMKTsKLSAgICBhc3NlcnQoZGF0YU1hcCAhPSBOVUxMKTsKLQotICAgIG1NYXAgPSBkYXRhTWFwOwotICAgIG1TdGFydCA9IC0xOyAgICAgICAgICAgIC8vIG5vdCB1c2VkCi0gICAgbUxlbmd0aCA9IGRhdGFNYXAtPmdldERhdGFMZW5ndGgoKTsKLSAgICBhc3NlcnQobU9mZnNldCA9PSAwKTsKLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotLyoKLSAqIFJlYWQgYSBjaHVuayBvZiBkYXRhLgotICovCi1zc2l6ZV90IF9GaWxlQXNzZXQ6OnJlYWQodm9pZCogYnVmLCBzaXplX3QgY291bnQpCi17Ci0gICAgc2l6ZV90IG1heExlbjsKLSAgICBzaXplX3QgYWN0dWFsOwotCi0gICAgYXNzZXJ0KG1PZmZzZXQgPj0gMCAmJiBtT2Zmc2V0IDw9IG1MZW5ndGgpOwotCi0gICAgaWYgKGdldEFjY2Vzc01vZGUoKSA9PSBBQ0NFU1NfQlVGRkVSKSB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIE9uIGZpcnN0IGFjY2VzcywgcmVhZCBvciBtYXAgdGhlIGVudGlyZSBmaWxlLiAgVGhlIGNhbGxlciBoYXMKLSAgICAgICAgICogcmVxdWVzdGVkIGJ1ZmZlciBhY2Nlc3MsIGVpdGhlciBiZWNhdXNlIHRoZXkncmUgZ29pbmcgdG8gYmUKLSAgICAgICAgICogdXNpbmcgdGhlIGJ1ZmZlciBvciBiZWNhdXNlIHdoYXQgdGhleSdyZSBkb2luZyBoYXMgYXBwcm9wcmlhdGUKLSAgICAgICAgICogcGVyZm9ybWFuY2UgbmVlZHMgYW5kIGFjY2VzcyBwYXR0ZXJucy4KLSAgICAgICAgICovCi0gICAgICAgIGlmIChtQnVmID09IE5VTEwpCi0gICAgICAgICAgICBnZXRCdWZmZXIoZmFsc2UpOwotICAgIH0KLQotICAgIC8qIGFkanVzdCBjb3VudCBpZiB3ZSdyZSBuZWFyIEVPRiAqLwotICAgIG1heExlbiA9IG1MZW5ndGggLSBtT2Zmc2V0OwotICAgIGlmIChjb3VudCA+IG1heExlbikKLSAgICAgICAgY291bnQgPSBtYXhMZW47Ci0KLSAgICBpZiAoIWNvdW50KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlmIChtTWFwICE9IE5VTEwpIHsKLSAgICAgICAgLyogY29weSBmcm9tIG1hcHBlZCBhcmVhICovCi0gICAgICAgIC8vcHJpbnRmKCJtYXAgcmVhZFxuIik7Ci0gICAgICAgIG1lbWNweShidWYsIChjaGFyKiltTWFwLT5nZXREYXRhUHRyKCkgKyBtT2Zmc2V0LCBjb3VudCk7Ci0gICAgICAgIGFjdHVhbCA9IGNvdW50OwotICAgIH0gZWxzZSBpZiAobUJ1ZiAhPSBOVUxMKSB7Ci0gICAgICAgIC8qIGNvcHkgZnJvbSBidWZmZXIgKi8KLSAgICAgICAgLy9wcmludGYoImJ1ZiByZWFkXG4iKTsKLSAgICAgICAgbWVtY3B5KGJ1ZiwgKGNoYXIqKW1CdWYgKyBtT2Zmc2V0LCBjb3VudCk7Ci0gICAgICAgIGFjdHVhbCA9IGNvdW50OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8qIHJlYWQgZnJvbSB0aGUgZmlsZSAqLwotICAgICAgICAvL3ByaW50ZigiZmlsZSByZWFkXG4iKTsKLSAgICAgICAgaWYgKGZ0ZWxsKG1GcCkgIT0gbVN0YXJ0ICsgbU9mZnNldCkgewotICAgICAgICAgICAgQUxPR0UoIkhvc2VkOiAlbGQgIT0gJWxkKyVsZFxuIiwKLSAgICAgICAgICAgICAgICBmdGVsbChtRnApLCAobG9uZykgbVN0YXJ0LCAobG9uZykgbU9mZnNldCk7Ci0gICAgICAgICAgICBhc3NlcnQoZmFsc2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogVGhpcyByZXR1cm5zIDAgb24gZXJyb3Igb3IgZW9mLiAgV2UgbmVlZCB0byB1c2UgZmVycm9yKCkgb3IgZmVvZigpCi0gICAgICAgICAqIHRvIHRlbGwgdGhlIGRpZmZlcmVuY2UsIGJ1dCB3ZSBkb24ndCBjdXJyZW50bHkgaGF2ZSB0aG9zZSBvbiB0aGUKLSAgICAgICAgICogZGV2aWNlLiAgSG93ZXZlciwgd2Uga25vdyBob3cgbXVjaCBkYXRhIGlzICpzdXBwb3NlZCogdG8gYmUgaW4gdGhlCi0gICAgICAgICAqIGZpbGUsIHNvIGlmIHdlIGRvbid0IHJlYWQgdGhlIGZ1bGwgYW1vdW50IHdlIGtub3cgc29tZXRoaW5nIGlzCi0gICAgICAgICAqIGhvc2VkLgotICAgICAgICAgKi8KLSAgICAgICAgYWN0dWFsID0gZnJlYWQoYnVmLCAxLCBjb3VudCwgbUZwKTsKLSAgICAgICAgaWYgKGFjdHVhbCA9PSAwKSAgICAgICAgLy8gc29tZXRoaW5nIGZhaWxlZCAtLSBJL08gZXJyb3I/Ci0gICAgICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICAgICAgYXNzZXJ0KGFjdHVhbCA9PSBjb3VudCk7Ci0gICAgfQotCi0gICAgbU9mZnNldCArPSBhY3R1YWw7Ci0gICAgcmV0dXJuIGFjdHVhbDsKLX0KLQotLyoKLSAqIFNlZWsgdG8gYSBuZXcgcG9zaXRpb24uCi0gKi8KLW9mZjY0X3QgX0ZpbGVBc3NldDo6c2VlayhvZmY2NF90IG9mZnNldCwgaW50IHdoZW5jZSkKLXsKLSAgICBvZmY2NF90IG5ld1Bvc247Ci0gICAgb2ZmNjRfdCBhY3R1YWxPZmZzZXQ7Ci0KLSAgICAvLyBjb21wdXRlIG5ldyBwb3NpdGlvbiB3aXRoaW4gY2h1bmsKLSAgICBuZXdQb3NuID0gaGFuZGxlU2VlayhvZmZzZXQsIHdoZW5jZSwgbU9mZnNldCwgbUxlbmd0aCk7Ci0gICAgaWYgKG5ld1Bvc24gPT0gKG9mZjY0X3QpIC0xKQotICAgICAgICByZXR1cm4gbmV3UG9zbjsKLQotICAgIGFjdHVhbE9mZnNldCA9IG1TdGFydCArIG5ld1Bvc247Ci0KLSAgICBpZiAobUZwICE9IE5VTEwpIHsKLSAgICAgICAgaWYgKGZzZWVrKG1GcCwgKGxvbmcpIGFjdHVhbE9mZnNldCwgU0VFS19TRVQpICE9IDApCi0gICAgICAgICAgICByZXR1cm4gKG9mZjY0X3QpIC0xOwotICAgIH0KLQotICAgIG1PZmZzZXQgPSBhY3R1YWxPZmZzZXQgLSBtU3RhcnQ7Ci0gICAgcmV0dXJuIG1PZmZzZXQ7Ci19Ci0KLS8qCi0gKiBDbG9zZSB0aGUgYXNzZXQuCi0gKi8KLXZvaWQgX0ZpbGVBc3NldDo6Y2xvc2Uodm9pZCkKLXsKLSAgICBpZiAobU1hcCAhPSBOVUxMKSB7Ci0gICAgICAgIG1NYXAtPnJlbGVhc2UoKTsKLSAgICAgICAgbU1hcCA9IE5VTEw7Ci0gICAgfQotICAgIGlmIChtQnVmICE9IE5VTEwpIHsKLSAgICAgICAgZGVsZXRlW10gbUJ1ZjsKLSAgICAgICAgbUJ1ZiA9IE5VTEw7Ci0gICAgfQotCi0gICAgaWYgKG1GaWxlTmFtZSAhPSBOVUxMKSB7Ci0gICAgICAgIGZyZWUobUZpbGVOYW1lKTsKLSAgICAgICAgbUZpbGVOYW1lID0gTlVMTDsKLSAgICB9Ci0gICAgCi0gICAgaWYgKG1GcCAhPSBOVUxMKSB7Ci0gICAgICAgIC8vIGNhbiBvbmx5IGJlIE5VTEwgd2hlbiBjYWxsZWQgZnJvbSBkZXN0cnVjdG9yCi0gICAgICAgIC8vIChvdGhlcndpc2Ugd2Ugd291bGQgbmV2ZXIgcmV0dXJuIHRoaXMgb2JqZWN0KQotICAgICAgICBmY2xvc2UobUZwKTsKLSAgICAgICAgbUZwID0gTlVMTDsKLSAgICB9Ci19Ci0KLS8qCi0gKiBSZXR1cm4gYSByZWFkLW9ubHkgcG9pbnRlciB0byBhIGJ1ZmZlci4KLSAqCi0gKiBXZSBjYW4gZWl0aGVyIHJlYWQgdGhlIHdob2xlIHRoaW5nIGluIG9yIG1hcCB0aGUgcmVsZXZhbnQgcGllY2Ugb2YKLSAqIHRoZSBzb3VyY2UgZmlsZS4gIElkZWFsbHkgYSBtYXAgd291bGQgYmUgZXN0YWJsaXNoZWQgYXQgYSBoaWdoZXIKLSAqIGxldmVsIGFuZCB3ZSdkIGJlIHVzaW5nIGEgZGlmZmVyZW50IG9iamVjdCwgYnV0IHdlIGRpZG4ndCwgc28gd2UKLSAqIGRlYWwgd2l0aCBpdCBoZXJlLgotICovCi1jb25zdCB2b2lkKiBfRmlsZUFzc2V0OjpnZXRCdWZmZXIoYm9vbCB3b3JkQWxpZ25lZCkKLXsKLSAgICAvKiBzdWJzZXF1ZW50IHJlcXVlc3RzIGp1c3QgdXNlIHdoYXQgd2UgZGlkIHByZXZpb3VzbHkgKi8KLSAgICBpZiAobUJ1ZiAhPSBOVUxMKQotICAgICAgICByZXR1cm4gbUJ1ZjsKLSAgICBpZiAobU1hcCAhPSBOVUxMKSB7Ci0gICAgICAgIGlmICghd29yZEFsaWduZWQpIHsKLSAgICAgICAgICAgIHJldHVybiAgbU1hcC0+Z2V0RGF0YVB0cigpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBlbnN1cmVBbGlnbm1lbnQobU1hcCk7Ci0gICAgfQotCi0gICAgYXNzZXJ0KG1GcCAhPSBOVUxMKTsKLQotICAgIGlmIChtTGVuZ3RoIDwga1JlYWRWc01hcFRocmVzaG9sZCkgewotICAgICAgICB1bnNpZ25lZCBjaGFyKiBidWY7Ci0gICAgICAgIGxvbmcgYWxsb2NMZW47Ci0KLSAgICAgICAgLyogemVyby1sZW5ndGggZmlsZXMgYXJlIGFsbG93ZWQ7IG5vdCBzdXJlIGFib3V0IHplcm8tbGVuIGFsbG9jcyAqLwotICAgICAgICAvKiAod29ya3MgZmluZSB3aXRoIGdjYyArIHg4NmxpbnV4KSAqLwotICAgICAgICBhbGxvY0xlbiA9IG1MZW5ndGg7Ci0gICAgICAgIGlmIChtTGVuZ3RoID09IDApCi0gICAgICAgICAgICBhbGxvY0xlbiA9IDE7Ci0KLSAgICAgICAgYnVmID0gbmV3IHVuc2lnbmVkIGNoYXJbYWxsb2NMZW5dOwotICAgICAgICBpZiAoYnVmID09IE5VTEwpIHsKLSAgICAgICAgICAgIEFMT0dFKCJhbGxvYyBvZiAlbGQgYnl0ZXMgZmFpbGVkXG4iLCAobG9uZykgYWxsb2NMZW4pOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLQotICAgICAgICBBTE9HVigiQXNzZXQgJXAgYWxsb2NhdGluZyBidWZmZXIgc2l6ZSAlZCAoc21hbGxlciB0aGFuIHRocmVzaG9sZCkiLCB0aGlzLCAoaW50KWFsbG9jTGVuKTsKLSAgICAgICAgaWYgKG1MZW5ndGggPiAwKSB7Ci0gICAgICAgICAgICBsb25nIG9sZFBvc24gPSBmdGVsbChtRnApOwotICAgICAgICAgICAgZnNlZWsobUZwLCBtU3RhcnQsIFNFRUtfU0VUKTsKLSAgICAgICAgICAgIGlmIChmcmVhZChidWYsIDEsIG1MZW5ndGgsIG1GcCkgIT0gKHNpemVfdCkgbUxlbmd0aCkgewotICAgICAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgcmVhZGluZyAlbGQgYnl0ZXNcbiIsIChsb25nKSBtTGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBkZWxldGVbXSBidWY7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmc2VlayhtRnAsIG9sZFBvc24sIFNFRUtfU0VUKTsKLSAgICAgICAgfQotCi0gICAgICAgIEFMT0dWKCIgZ2V0QnVmZmVyOiBsb2FkZWQgaW50byBidWZmZXJcbiIpOwotCi0gICAgICAgIG1CdWYgPSBidWY7Ci0gICAgICAgIHJldHVybiBtQnVmOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEZpbGVNYXAqIG1hcDsKLQotICAgICAgICBtYXAgPSBuZXcgRmlsZU1hcDsKLSAgICAgICAgaWYgKCFtYXAtPmNyZWF0ZShOVUxMLCBmaWxlbm8obUZwKSwgbVN0YXJ0LCBtTGVuZ3RoLCB0cnVlKSkgewotICAgICAgICAgICAgbWFwLT5yZWxlYXNlKCk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotCi0gICAgICAgIEFMT0dWKCIgZ2V0QnVmZmVyOiBtYXBwZWRcbiIpOwotCi0gICAgICAgIG1NYXAgPSBtYXA7Ci0gICAgICAgIGlmICghd29yZEFsaWduZWQpIHsKLSAgICAgICAgICAgIHJldHVybiAgbU1hcC0+Z2V0RGF0YVB0cigpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBlbnN1cmVBbGlnbm1lbnQobU1hcCk7Ci0gICAgfQotfQotCi1pbnQgX0ZpbGVBc3NldDo6b3BlbkZpbGVEZXNjcmlwdG9yKG9mZjY0X3QqIG91dFN0YXJ0LCBvZmY2NF90KiBvdXRMZW5ndGgpIGNvbnN0Ci17Ci0gICAgaWYgKG1NYXAgIT0gTlVMTCkgewotICAgICAgICBjb25zdCBjaGFyKiBmbmFtZSA9IG1NYXAtPmdldEZpbGVOYW1lKCk7Ci0gICAgICAgIGlmIChmbmFtZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBmbmFtZSA9IG1GaWxlTmFtZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoZm5hbWUgPT0gTlVMTCkgewotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9Ci0gICAgICAgICpvdXRTdGFydCA9IG1NYXAtPmdldERhdGFPZmZzZXQoKTsKLSAgICAgICAgKm91dExlbmd0aCA9IG1NYXAtPmdldERhdGFMZW5ndGgoKTsKLSAgICAgICAgcmV0dXJuIG9wZW4oZm5hbWUsIE9fUkRPTkxZIHwgT19CSU5BUlkpOwotICAgIH0KLSAgICBpZiAobUZpbGVOYW1lID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgICAqb3V0U3RhcnQgPSBtU3RhcnQ7Ci0gICAgKm91dExlbmd0aCA9IG1MZW5ndGg7Ci0gICAgcmV0dXJuIG9wZW4obUZpbGVOYW1lLCBPX1JET05MWSB8IE9fQklOQVJZKTsKLX0KLQotY29uc3Qgdm9pZCogX0ZpbGVBc3NldDo6ZW5zdXJlQWxpZ25tZW50KEZpbGVNYXAqIG1hcCkKLXsKLSAgICB2b2lkKiBkYXRhID0gbWFwLT5nZXREYXRhUHRyKCk7Ci0gICAgaWYgKCgoKHNpemVfdClkYXRhKSYweDMpID09IDApIHsKLSAgICAgICAgLy8gV2UgY2FuIHJldHVybiB0aGlzIGRpcmVjdGx5IGlmIGl0IGlzIGFsaWduZWQgb24gYSB3b3JkCi0gICAgICAgIC8vIGJvdW5kYXJ5LgotICAgICAgICBBTE9HVigiUmV0dXJuaW5nIGFsaWduZWQgRmlsZUFzc2V0ICVwICglcykuIiwgdGhpcywKLSAgICAgICAgICAgICAgICBnZXRBc3NldFNvdXJjZSgpKTsKLSAgICAgICAgcmV0dXJuIGRhdGE7Ci0gICAgfQotICAgIC8vIElmIG5vdCBhbGlnbmVkIG9uIGEgd29yZCBib3VuZGFyeSwgdGhlbiB3ZSBuZWVkIHRvIGNvcHkgaXQgaW50bwotICAgIC8vIG91ciBvd24gYnVmZmVyLgotICAgIEFMT0dWKCJDb3B5aW5nIEZpbGVBc3NldCAlcCAoJXMpIHRvIGJ1ZmZlciBzaXplICVkIHRvIG1ha2UgaXQgYWxpZ25lZC4iLCB0aGlzLAotICAgICAgICAgICAgZ2V0QXNzZXRTb3VyY2UoKSwgKGludCltTGVuZ3RoKTsKLSAgICB1bnNpZ25lZCBjaGFyKiBidWYgPSBuZXcgdW5zaWduZWQgY2hhclttTGVuZ3RoXTsKLSAgICBpZiAoYnVmID09IE5VTEwpIHsKLSAgICAgICAgQUxPR0UoImFsbG9jIG9mICVsZCBieXRlcyBmYWlsZWRcbiIsIChsb25nKSBtTGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIG1lbWNweShidWYsIGRhdGEsIG1MZW5ndGgpOwotICAgIG1CdWYgPSBidWY7Ci0gICAgcmV0dXJuIGJ1ZjsKLX0KLQotLyoKLSAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogICAgICBfQ29tcHJlc3NlZEFzc2V0Ci0gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqLwotCi0vKgotICogQ29uc3RydWN0b3IuCi0gKi8KLV9Db21wcmVzc2VkQXNzZXQ6Ol9Db21wcmVzc2VkQXNzZXQodm9pZCkKLSAgICA6IG1TdGFydCgwKSwgbUNvbXByZXNzZWRMZW4oMCksIG1VbmNvbXByZXNzZWRMZW4oMCksIG1PZmZzZXQoMCksCi0gICAgICBtTWFwKE5VTEwpLCBtRmQoLTEpLCBtWmlwSW5mbGF0ZXIoTlVMTCksIG1CdWYoTlVMTCkKLXsKLX0KLQotLyoKLSAqIERlc3RydWN0b3IuICBSZWxlYXNlIHJlc291cmNlcy4KLSAqLwotX0NvbXByZXNzZWRBc3NldDo6fl9Db21wcmVzc2VkQXNzZXQodm9pZCkKLXsKLSAgICBjbG9zZSgpOwotfQotCi0vKgotICogT3BlbiBhIGNodW5rIG9mIGNvbXByZXNzZWQgZGF0YSBpbnNpZGUgYSBmaWxlLgotICoKLSAqIFRoaXMgY3VycmVudGx5IGp1c3Qgc2V0cyB1cCBzb21lIHZhbHVlcyBhbmQgcmV0dXJucy4gIE9uIHRoZSBmaXJzdAotICogcmVhZCwgd2UgZXhwYW5kIHRoZSBlbnRpcmUgZmlsZSBpbnRvIGEgYnVmZmVyIGFuZCByZXR1cm4gZGF0YSBmcm9tIGl0LgotICovCi1zdGF0dXNfdCBfQ29tcHJlc3NlZEFzc2V0OjpvcGVuQ2h1bmsoaW50IGZkLCBvZmY2NF90IG9mZnNldCwKLSAgICBpbnQgY29tcHJlc3Npb25NZXRob2QsIHNpemVfdCB1bmNvbXByZXNzZWRMZW4sIHNpemVfdCBjb21wcmVzc2VkTGVuKQotewotICAgIGFzc2VydChtRmQgPCAwKTsgICAgICAgIC8vIG5vIHJlLW9wZW4KLSAgICBhc3NlcnQobU1hcCA9PSBOVUxMKTsKLSAgICBhc3NlcnQoZmQgPj0gMCk7Ci0gICAgYXNzZXJ0KG9mZnNldCA+PSAwKTsKLSAgICBhc3NlcnQoY29tcHJlc3NlZExlbiA+IDApOwotCi0gICAgaWYgKGNvbXByZXNzaW9uTWV0aG9kICE9IFppcEZpbGVSTzo6a0NvbXByZXNzRGVmbGF0ZWQpIHsKLSAgICAgICAgYXNzZXJ0KGZhbHNlKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotCi0gICAgbVN0YXJ0ID0gb2Zmc2V0OwotICAgIG1Db21wcmVzc2VkTGVuID0gY29tcHJlc3NlZExlbjsKLSAgICBtVW5jb21wcmVzc2VkTGVuID0gdW5jb21wcmVzc2VkTGVuOwotICAgIGFzc2VydChtT2Zmc2V0ID09IDApOwotICAgIG1GZCA9IGZkOwotICAgIGFzc2VydChtQnVmID09IE5VTEwpOwotCi0gICAgaWYgKHVuY29tcHJlc3NlZExlbiA+IFN0cmVhbWluZ1ppcEluZmxhdGVyOjpPVVRQVVRfQ0hVTktfU0laRSkgewotICAgICAgICBtWmlwSW5mbGF0ZXIgPSBuZXcgU3RyZWFtaW5nWmlwSW5mbGF0ZXIobUZkLCBvZmZzZXQsIHVuY29tcHJlc3NlZExlbiwgY29tcHJlc3NlZExlbik7Ci0gICAgfQotCi0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi0vKgotICogT3BlbiBhIGNodW5rIG9mIGNvbXByZXNzZWQgZGF0YSBpbiBhIG1hcHBlZCByZWdpb24uCi0gKgotICogTm90aGluZyBpcyBleHBhbmRlZCB1bnRpbCB0aGUgZmlyc3QgcmVhZCBjYWxsLgotICovCi1zdGF0dXNfdCBfQ29tcHJlc3NlZEFzc2V0OjpvcGVuQ2h1bmsoRmlsZU1hcCogZGF0YU1hcCwgaW50IGNvbXByZXNzaW9uTWV0aG9kLAotICAgIHNpemVfdCB1bmNvbXByZXNzZWRMZW4pCi17Ci0gICAgYXNzZXJ0KG1GZCA8IDApOyAgICAgICAgLy8gbm8gcmUtb3BlbgotICAgIGFzc2VydChtTWFwID09IE5VTEwpOwotICAgIGFzc2VydChkYXRhTWFwICE9IE5VTEwpOwotCi0gICAgaWYgKGNvbXByZXNzaW9uTWV0aG9kICE9IFppcEZpbGVSTzo6a0NvbXByZXNzRGVmbGF0ZWQpIHsKLSAgICAgICAgYXNzZXJ0KGZhbHNlKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotCi0gICAgbU1hcCA9IGRhdGFNYXA7Ci0gICAgbVN0YXJ0ID0gLTE7ICAgICAgICAvLyBub3QgdXNlZAotICAgIG1Db21wcmVzc2VkTGVuID0gZGF0YU1hcC0+Z2V0RGF0YUxlbmd0aCgpOwotICAgIG1VbmNvbXByZXNzZWRMZW4gPSB1bmNvbXByZXNzZWRMZW47Ci0gICAgYXNzZXJ0KG1PZmZzZXQgPT0gMCk7Ci0KLSAgICBpZiAodW5jb21wcmVzc2VkTGVuID4gU3RyZWFtaW5nWmlwSW5mbGF0ZXI6Ok9VVFBVVF9DSFVOS19TSVpFKSB7Ci0gICAgICAgIG1aaXBJbmZsYXRlciA9IG5ldyBTdHJlYW1pbmdaaXBJbmZsYXRlcihkYXRhTWFwLCB1bmNvbXByZXNzZWRMZW4pOwotICAgIH0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLS8qCi0gKiBSZWFkIGRhdGEgZnJvbSBhIGNodW5rIG9mIGNvbXByZXNzZWQgZGF0YS4KLSAqCi0gKiBbRm9yIG5vdywgdGhhdCdzIGp1c3QgY29weWluZyBkYXRhIG91dCBvZiBhIGJ1ZmZlci5dCi0gKi8KLXNzaXplX3QgX0NvbXByZXNzZWRBc3NldDo6cmVhZCh2b2lkKiBidWYsIHNpemVfdCBjb3VudCkKLXsKLSAgICBzaXplX3QgbWF4TGVuOwotICAgIHNpemVfdCBhY3R1YWw7Ci0KLSAgICBhc3NlcnQobU9mZnNldCA+PSAwICYmIG1PZmZzZXQgPD0gbVVuY29tcHJlc3NlZExlbik7Ci0KLSAgICAvKiBJZiB3ZSdyZSByZWx5aW5nIG9uIGEgc3RyZWFtaW5nIGluZmxhdGVyLCBnbyB0aHJvdWdoIHRoYXQgKi8KLSAgICBpZiAobVppcEluZmxhdGVyKSB7Ci0gICAgICAgIGFjdHVhbCA9IG1aaXBJbmZsYXRlci0+cmVhZChidWYsIGNvdW50KTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAobUJ1ZiA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBpZiAoZ2V0QnVmZmVyKGZhbHNlKSA9PSBOVUxMKQotICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgfQotICAgICAgICBhc3NlcnQobUJ1ZiAhPSBOVUxMKTsKLQotICAgICAgICAvKiBhZGp1c3QgY291bnQgaWYgd2UncmUgbmVhciBFT0YgKi8KLSAgICAgICAgbWF4TGVuID0gbVVuY29tcHJlc3NlZExlbiAtIG1PZmZzZXQ7Ci0gICAgICAgIGlmIChjb3VudCA+IG1heExlbikKLSAgICAgICAgICAgIGNvdW50ID0gbWF4TGVuOwotCi0gICAgICAgIGlmICghY291bnQpCi0gICAgICAgICAgICByZXR1cm4gMDsKLQotICAgICAgICAvKiBjb3B5IGZyb20gYnVmZmVyICovCi0gICAgICAgIC8vcHJpbnRmKCJjb21wIGJ1ZiByZWFkXG4iKTsKLSAgICAgICAgbWVtY3B5KGJ1ZiwgKGNoYXIqKW1CdWYgKyBtT2Zmc2V0LCBjb3VudCk7Ci0gICAgICAgIGFjdHVhbCA9IGNvdW50OwotICAgIH0KLQotICAgIG1PZmZzZXQgKz0gYWN0dWFsOwotICAgIHJldHVybiBhY3R1YWw7Ci19Ci0KLS8qCi0gKiBIYW5kbGUgYSBzZWVrIHJlcXVlc3QuCi0gKgotICogSWYgd2UncmUgd29ya2luZyBpbiBhIHN0cmVhbWluZyBtb2RlLCB0aGlzIGlzIGdvaW5nIHRvIGJlIGZhaXJseQotICogZXhwZW5zaXZlLCBiZWNhdXNlIGl0IHJlcXVpcmVzIHBsb3dpbmcgdGhyb3VnaCBhIGJ1bmNoIG9mIGNvbXByZXNzZWQKLSAqIGRhdGEuCi0gKi8KLW9mZjY0X3QgX0NvbXByZXNzZWRBc3NldDo6c2VlayhvZmY2NF90IG9mZnNldCwgaW50IHdoZW5jZSkKLXsKLSAgICBvZmY2NF90IG5ld1Bvc247Ci0KLSAgICAvLyBjb21wdXRlIG5ldyBwb3NpdGlvbiB3aXRoaW4gY2h1bmsKLSAgICBuZXdQb3NuID0gaGFuZGxlU2VlayhvZmZzZXQsIHdoZW5jZSwgbU9mZnNldCwgbVVuY29tcHJlc3NlZExlbik7Ci0gICAgaWYgKG5ld1Bvc24gPT0gKG9mZjY0X3QpIC0xKQotICAgICAgICByZXR1cm4gbmV3UG9zbjsKLQotICAgIGlmIChtWmlwSW5mbGF0ZXIpIHsKLSAgICAgICAgbVppcEluZmxhdGVyLT5zZWVrQWJzb2x1dGUobmV3UG9zbik7Ci0gICAgfQotICAgIG1PZmZzZXQgPSBuZXdQb3NuOwotICAgIHJldHVybiBtT2Zmc2V0OwotfQotCi0vKgotICogQ2xvc2UgdGhlIGFzc2V0LgotICovCi12b2lkIF9Db21wcmVzc2VkQXNzZXQ6OmNsb3NlKHZvaWQpCi17Ci0gICAgaWYgKG1NYXAgIT0gTlVMTCkgewotICAgICAgICBtTWFwLT5yZWxlYXNlKCk7Ci0gICAgICAgIG1NYXAgPSBOVUxMOwotICAgIH0KLQotICAgIGRlbGV0ZVtdIG1CdWY7Ci0gICAgbUJ1ZiA9IE5VTEw7Ci0KLSAgICBkZWxldGUgbVppcEluZmxhdGVyOwotICAgIG1aaXBJbmZsYXRlciA9IE5VTEw7Ci0KLSAgICBpZiAobUZkID4gMCkgewotICAgICAgICA6OmNsb3NlKG1GZCk7Ci0gICAgICAgIG1GZCA9IC0xOwotICAgIH0KLX0KLQotLyoKLSAqIEdldCBhIHBvaW50ZXIgdG8gYSByZWFkLW9ubHkgYnVmZmVyIG9mIGRhdGEuCi0gKgotICogVGhlIGZpcnN0IHRpbWUgdGhpcyBpcyBjYWxsZWQsIHdlIGV4cGFuZCB0aGUgY29tcHJlc3NlZCBkYXRhIGludG8gYQotICogYnVmZmVyLgotICovCi1jb25zdCB2b2lkKiBfQ29tcHJlc3NlZEFzc2V0OjpnZXRCdWZmZXIoYm9vbCB3b3JkQWxpZ25lZCkKLXsKLSAgICB1bnNpZ25lZCBjaGFyKiBidWYgPSBOVUxMOwotCi0gICAgaWYgKG1CdWYgIT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIG1CdWY7Ci0KLSAgICAvKgotICAgICAqIEFsbG9jYXRlIGEgYnVmZmVyIGFuZCByZWFkIHRoZSBmaWxlIGludG8gaXQuCi0gICAgICovCi0gICAgYnVmID0gbmV3IHVuc2lnbmVkIGNoYXJbbVVuY29tcHJlc3NlZExlbl07Ci0gICAgaWYgKGJ1ZiA9PSBOVUxMKSB7Ci0gICAgICAgIEFMT0dXKCJhbGxvYyAlbGQgYnl0ZXMgZmFpbGVkXG4iLCAobG9uZykgbVVuY29tcHJlc3NlZExlbik7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICBpZiAobU1hcCAhPSBOVUxMKSB7Ci0gICAgICAgIGlmICghWmlwRmlsZVJPOjppbmZsYXRlQnVmZmVyKGJ1ZiwgbU1hcC0+Z2V0RGF0YVB0cigpLAotICAgICAgICAgICAgICAgIG1VbmNvbXByZXNzZWRMZW4sIG1Db21wcmVzc2VkTGVuKSkKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICB9IGVsc2UgewotICAgICAgICBhc3NlcnQobUZkID49IDApOwotCi0gICAgICAgIC8qCi0gICAgICAgICAqIFNlZWsgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjb21wcmVzc2VkIGRhdGEuCi0gICAgICAgICAqLwotICAgICAgICBpZiAobHNlZWsobUZkLCBtU3RhcnQsIFNFRUtfU0VUKSAhPSBtU3RhcnQpCi0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogRXhwYW5kIHRoZSBkYXRhIGludG8gaXQuCi0gICAgICAgICAqLwotICAgICAgICBpZiAoIVppcFV0aWxzOjppbmZsYXRlVG9CdWZmZXIobUZkLCBidWYsIG1VbmNvbXByZXNzZWRMZW4sCi0gICAgICAgICAgICAgICAgbUNvbXByZXNzZWRMZW4pKQotICAgICAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIC8qCi0gICAgICogU3VjY2VzcyAtIG5vdyB0aGF0IHdlIGhhdmUgdGhlIGZ1bGwgYXNzZXQgaW4gUkFNIHdlCi0gICAgICogbm8gbG9uZ2VyIG5lZWQgdGhlIHN0cmVhbWluZyBpbmZsYXRlcgotICAgICAqLwotICAgIGRlbGV0ZSBtWmlwSW5mbGF0ZXI7Ci0gICAgbVppcEluZmxhdGVyID0gTlVMTDsKLQotICAgIG1CdWYgPSBidWY7Ci0gICAgYnVmID0gTlVMTDsKLQotYmFpbDoKLSAgICBkZWxldGVbXSBidWY7Ci0gICAgcmV0dXJuIG1CdWY7Ci19Ci0KZGlmZiAtLWdpdCBhL2xpYnMvYW5kcm9pZGZ3L0Fzc2V0RGlyLmNwcCBiL2xpYnMvYW5kcm9pZGZ3L0Fzc2V0RGlyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDc1ZjUyMS4uMDAwMDAwMAotLS0gYS9saWJzL2FuZHJvaWRmdy9Bc3NldERpci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotLy8KLS8vIFByb3ZpZGUgYWNjZXNzIHRvIGEgdmlydHVhbCBkaXJlY3RvcnkgaW4gImFzc2V0IHNwYWNlIi4gIE1vc3Qgb2YgdGhlCi0vLyBpbXBsZW1lbnRhdGlvbiBpcyBpbiB0aGUgaGVhZGVyIGZpbGUgb3IgaW4gZnJpZW5kIGZ1bmN0aW9ucyBpbgotLy8gQXNzZXRNYW5hZ2VyLgotLy8KLSNpbmNsdWRlIDxhbmRyb2lkZncvQXNzZXREaXIuaD4KLQotdXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ7Ci0KLQotLyoKLSAqIEZpbmQgYSBtYXRjaGluZyBlbnRyeSBpbiBhIHZlY3RvciBvZiBGaWxlSW5mby4gIEJlY2F1c2UgaXQncyBzb3J0ZWQsIHdlCi0gKiBjYW4gdXNlIGEgYmluYXJ5IHNlYXJjaC4KLSAqCi0gKiBBc3N1bWVzIHRoZSB2ZWN0b3IgaXMgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlci4KLSAqLwotLypzdGF0aWMqLyBpbnQgQXNzZXREaXI6OkZpbGVJbmZvOjpmaW5kRW50cnkoY29uc3QgU29ydGVkVmVjdG9yPEZpbGVJbmZvPiogcFZlY3RvciwKLSAgICBjb25zdCBTdHJpbmc4JiBmaWxlTmFtZSkKLXsKLSAgICBGaWxlSW5mbyB0bXBJbmZvOwotCi0gICAgdG1wSW5mby5zZXRGaWxlTmFtZShmaWxlTmFtZSk7Ci0gICAgcmV0dXJuIHBWZWN0b3ItPmluZGV4T2YodG1wSW5mbyk7Ci0KLSNpZiAwICAvLyBkb24ndCBuZWVkIHRoaXMgYWZ0ZXIgYWxsICh1c2VzIDEvMiBjb21wYXJlcyBvZiBTb3J0ZWRWZWN0b3IgdGhvdWdoKQotICAgIGludCBsbywgaGksIGN1cjsKLQotICAgIGxvID0gMDsKLSAgICBoaSA9IHBWZWN0b3ItPnNpemUoKSAtMTsKLSAgICB3aGlsZSAobG8gPD0gaGkpIHsKLSAgICAgICAgaW50IGNtcDsKLQotICAgICAgICBjdXIgPSAoaGkgKyBsbykgLyAyOwotICAgICAgICBjbXAgPSBzdHJjbXAocFZlY3Rvci0+aXRlbUF0KGN1cikuZ2V0RmlsZU5hbWUoKSwgZmlsZU5hbWUpOwotICAgICAgICBpZiAoY21wID09IDApIHsKLSAgICAgICAgICAgIC8qIG1hdGNoLCBiYWlsICovCi0gICAgICAgICAgICByZXR1cm4gY3VyOwotICAgICAgICB9IGVsc2UgaWYgKGNtcCA8IDApIHsKLSAgICAgICAgICAgIC8qIHRvbyBsb3cgKi8KLSAgICAgICAgICAgIGxvID0gY3VyICsgMTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8qIHRvbyBoaWdoICovCi0gICAgICAgICAgICBoaSA9IGN1ciAtMTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiAtMTsKLSNlbmRpZgotfQotCmRpZmYgLS1naXQgYS9saWJzL2FuZHJvaWRmdy9Bc3NldE1hbmFnZXIuY3BwIGIvbGlicy9hbmRyb2lkZncvQXNzZXRNYW5hZ2VyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA2NjcxNS4uMDAwMDAwMAotLS0gYS9saWJzL2FuZHJvaWRmdy9Bc3NldE1hbmFnZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjAzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotLy8KLS8vIFByb3ZpZGUgYWNjZXNzIHRvIHJlYWQtb25seSBhc3NldHMuCi0vLwotCi0jZGVmaW5lIExPR19UQUcgImFzc2V0IgotI2RlZmluZSBBVFJBQ0VfVEFHIEFUUkFDRV9UQUdfUkVTT1VSQ0VTCi0vLyNkZWZpbmUgTE9HX05ERUJVRyAwCi0KLSNpbmNsdWRlIDxhbmRyb2lkZncvQXNzZXQuaD4KLSNpbmNsdWRlIDxhbmRyb2lkZncvQXNzZXREaXIuaD4KLSNpbmNsdWRlIDxhbmRyb2lkZncvQXNzZXRNYW5hZ2VyLmg+Ci0jaW5jbHVkZSA8YW5kcm9pZGZ3L21pc2MuaD4KLSNpbmNsdWRlIDxhbmRyb2lkZncvUmVzb3VyY2VUeXBlcy5oPgotI2luY2x1ZGUgPGFuZHJvaWRmdy9aaXBGaWxlUk8uaD4KLSNpbmNsdWRlIDx1dGlscy9BdG9taWMuaD4KLSNpbmNsdWRlIDx1dGlscy9Mb2cuaD4KLSNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+Ci0jaW5jbHVkZSA8dXRpbHMvU3RyaW5nOC5oPgotI2luY2x1ZGUgPHV0aWxzL3RocmVhZHMuaD4KLSNpbmNsdWRlIDx1dGlscy9UaW1lcnMuaD4KLSNpZmRlZiBIQVZFX0FORFJPSURfT1MKLSNpbmNsdWRlIDxjdXRpbHMvdHJhY2UuaD4KLSNlbmRpZgotCi0jaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0jaW5jbHVkZSA8ZGlyZW50Lmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHN0cmluZ3MuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi0jaWZuZGVmIFRFTVBfRkFJTFVSRV9SRVRSWQotLyogVXNlZCB0byByZXRyeSBzeXNjYWxscyB0aGF0IGNhbiByZXR1cm4gRUlOVFIuICovCi0jZGVmaW5lIFRFTVBfRkFJTFVSRV9SRVRSWShleHApICh7ICAgICAgICAgXAotICAgIHR5cGVvZiAoZXhwKSBfcmM7ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIF9yYyA9IChleHApOyAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0gd2hpbGUgKF9yYyA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUik7IFwKLSAgICBfcmM7IH0pCi0jZW5kaWYKLQotI2lmZGVmIEhBVkVfQU5EUk9JRF9PUwotI2RlZmluZSBNWV9UUkFDRV9CRUdJTih4KSBBVFJBQ0VfQkVHSU4oeCkKLSNkZWZpbmUgTVlfVFJBQ0VfRU5EKCkgQVRSQUNFX0VORCgpCi0jZWxzZQotI2RlZmluZSBNWV9UUkFDRV9CRUdJTih4KQotI2RlZmluZSBNWV9UUkFDRV9FTkQoKQotI2VuZGlmCi0KLXVzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwotCi0vKgotICogTmFtZXMgZm9yIGRlZmF1bHQgYXBwLCBsb2NhbGUsIGFuZCB2ZW5kb3IuICBXZSBtaWdodCB3YW50IHRvIGNoYW5nZQotICogdGhlc2UgdG8gYmUgYW4gYWN0dWFsIGxvY2FsZSwgZS5nLiBhbHdheXMgdXNlIGVuLVVTIGFzIHRoZSBkZWZhdWx0LgotICovCi1zdGF0aWMgY29uc3QgY2hhcioga0RlZmF1bHRMb2NhbGUgPSAiZGVmYXVsdCI7Ci1zdGF0aWMgY29uc3QgY2hhcioga0RlZmF1bHRWZW5kb3IgPSAiZGVmYXVsdCI7Ci1zdGF0aWMgY29uc3QgY2hhcioga0Fzc2V0c1Jvb3QgPSAiYXNzZXRzIjsKLXN0YXRpYyBjb25zdCBjaGFyKiBrQXBwWmlwTmFtZSA9IE5VTEw7IC8vImNsYXNzZXMuamFyIjsKLXN0YXRpYyBjb25zdCBjaGFyKiBrU3lzdGVtQXNzZXRzID0gImZyYW1ld29yay9mcmFtZXdvcmstcmVzLmFwayI7Ci1zdGF0aWMgY29uc3QgY2hhcioga0lkbWFwQ2FjaGVEaXIgPSAicmVzb3VyY2UtY2FjaGUiOwotCi1zdGF0aWMgY29uc3QgY2hhcioga0V4Y2x1ZGVFeHRlbnNpb24gPSAiLkVYQ0xVREUiOwotCi1zdGF0aWMgQXNzZXQqIGNvbnN0IGtFeGNsdWRlZEFzc2V0ID0gKEFzc2V0KikgMHhkMDAwMDAwZDsKLQotc3RhdGljIHZvbGF0aWxlIGludDMyX3QgZ0NvdW50ID0gMDsKLQotbmFtZXNwYWNlIHsKLSAgICAvLyBUcmFuc2Zvcm0gc3RyaW5nIC9hL2IvYy5hcGsgdG8gL2RhdGEvcmVzb3VyY2UtY2FjaGUvYUBiQGMuYXBrQGlkbWFwCi0gICAgU3RyaW5nOCBpZG1hcFBhdGhGb3JQYWNrYWdlUGF0aChjb25zdCBTdHJpbmc4JiBwa2dQYXRoKQotICAgIHsKLSAgICAgICAgY29uc3QgY2hhciogcm9vdCA9IGdldGVudigiQU5EUk9JRF9EQVRBIik7Ci0gICAgICAgIExPR19BTFdBWVNfRkFUQUxfSUYocm9vdCA9PSBOVUxMLCAiQU5EUk9JRF9EQVRBIG5vdCBzZXQiKTsKLSAgICAgICAgU3RyaW5nOCBwYXRoKHJvb3QpOwotICAgICAgICBwYXRoLmFwcGVuZFBhdGgoa0lkbWFwQ2FjaGVEaXIpOwotCi0gICAgICAgIGNoYXIgYnVmWzI1Nl07IC8vIDI1NiBjaGFycyBzaG91bGQgYmUgZW5vdWdoIGZvciBhbnlvbmUuLi4KLSAgICAgICAgc3RybmNweShidWYsIHBrZ1BhdGguc3RyaW5nKCksIDI1NSk7Ci0gICAgICAgIGJ1ZlsyNTVdID0gJ1wwJzsKLSAgICAgICAgY2hhciogZmlsZW5hbWUgPSBidWY7Ci0gICAgICAgIHdoaWxlICgqZmlsZW5hbWUgJiYgKmZpbGVuYW1lID09ICcvJykgewotICAgICAgICAgICAgKytmaWxlbmFtZTsKLSAgICAgICAgfQotICAgICAgICBjaGFyKiBwID0gZmlsZW5hbWU7Ci0gICAgICAgIHdoaWxlICgqcCkgewotICAgICAgICAgICAgaWYgKCpwID09ICcvJykgewotICAgICAgICAgICAgICAgICpwID0gJ0AnOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgKytwOwotICAgICAgICB9Ci0gICAgICAgIHBhdGguYXBwZW5kUGF0aChmaWxlbmFtZSk7Ci0gICAgICAgIHBhdGguYXBwZW5kKCJAaWRtYXAiKTsKLQotICAgICAgICByZXR1cm4gcGF0aDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIExpa2Ugc3RyZHVwKCksIGJ1dCB1c2VzIEMrKyAibmV3IiBvcGVyYXRvciBpbnN0ZWFkIG9mIG1hbGxvYy4KLSAgICAgKi8KLSAgICBzdGF0aWMgY2hhciogc3RyZHVwTmV3KGNvbnN0IGNoYXIqIHN0cikKLSAgICB7Ci0gICAgICAgIGNoYXIqIG5ld1N0cjsKLSAgICAgICAgaW50IGxlbjsKLQotICAgICAgICBpZiAoc3RyID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgICAgICBsZW4gPSBzdHJsZW4oc3RyKTsKLSAgICAgICAgbmV3U3RyID0gbmV3IGNoYXJbbGVuKzFdOwotICAgICAgICBtZW1jcHkobmV3U3RyLCBzdHIsIGxlbisxKTsKLQotICAgICAgICByZXR1cm4gbmV3U3RyOwotICAgIH0KLX0KLQotLyoKLSAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogICAgICBBc3NldE1hbmFnZXIKLSAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICovCi0KLWludDMyX3QgQXNzZXRNYW5hZ2VyOjpnZXRHbG9iYWxDb3VudCgpCi17Ci0gICAgcmV0dXJuIGdDb3VudDsKLX0KLQotQXNzZXRNYW5hZ2VyOjpBc3NldE1hbmFnZXIoQ2FjaGVNb2RlIGNhY2hlTW9kZSkKLSAgICA6IG1Mb2NhbGUoTlVMTCksIG1WZW5kb3IoTlVMTCksCi0gICAgICBtUmVzb3VyY2VzKE5VTEwpLCBtQ29uZmlnKG5ldyBSZXNUYWJsZV9jb25maWcpLAotICAgICAgbUNhY2hlTW9kZShjYWNoZU1vZGUpLCBtQ2FjaGVWYWxpZChmYWxzZSkKLXsKLSAgICBpbnQgY291bnQgPSBhbmRyb2lkX2F0b21pY19pbmMoJmdDb3VudCkrMTsKLSAgICAvL0FMT0dJKCJDcmVhdGluZyBBc3NldE1hbmFnZXIgJXAgIyVkXG4iLCB0aGlzLCBjb3VudCk7Ci0gICAgbWVtc2V0KG1Db25maWcsIDAsIHNpemVvZihSZXNUYWJsZV9jb25maWcpKTsKLX0KLQotQXNzZXRNYW5hZ2VyOjp+QXNzZXRNYW5hZ2VyKHZvaWQpCi17Ci0gICAgaW50IGNvdW50ID0gYW5kcm9pZF9hdG9taWNfZGVjKCZnQ291bnQpOwotICAgIC8vQUxPR0koIkRlc3Ryb3lpbmcgQXNzZXRNYW5hZ2VyIGluICVwICMlZFxuIiwgdGhpcywgY291bnQpOwotCi0gICAgZGVsZXRlIG1Db25maWc7Ci0gICAgZGVsZXRlIG1SZXNvdXJjZXM7Ci0KLSAgICAvLyBkb24ndCBoYXZlIGEgU3RyaW5nIGNsYXNzIHlldCwgc28gbWFrZSBzdXJlIHdlIGNsZWFuIHVwCi0gICAgZGVsZXRlW10gbUxvY2FsZTsKLSAgICBkZWxldGVbXSBtVmVuZG9yOwotfQotCi1ib29sIEFzc2V0TWFuYWdlcjo6YWRkQXNzZXRQYXRoKGNvbnN0IFN0cmluZzgmIHBhdGgsIHZvaWQqKiBjb29raWUpCi17Ci0gICAgQXV0b011dGV4IF9sKG1Mb2NrKTsKLQotICAgIGFzc2V0X3BhdGggYXA7Ci0KLSAgICBTdHJpbmc4IHJlYWxQYXRoKHBhdGgpOwotICAgIGlmIChrQXBwWmlwTmFtZSkgewotICAgICAgICByZWFsUGF0aC5hcHBlbmRQYXRoKGtBcHBaaXBOYW1lKTsKLSAgICB9Ci0gICAgYXAudHlwZSA9IDo6Z2V0RmlsZVR5cGUocmVhbFBhdGguc3RyaW5nKCkpOwotICAgIGlmIChhcC50eXBlID09IGtGaWxlVHlwZVJlZ3VsYXIpIHsKLSAgICAgICAgYXAucGF0aCA9IHJlYWxQYXRoOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGFwLnBhdGggPSBwYXRoOwotICAgICAgICBhcC50eXBlID0gOjpnZXRGaWxlVHlwZShwYXRoLnN0cmluZygpKTsKLSAgICAgICAgaWYgKGFwLnR5cGUgIT0ga0ZpbGVUeXBlRGlyZWN0b3J5ICYmIGFwLnR5cGUgIT0ga0ZpbGVUeXBlUmVndWxhcikgewotICAgICAgICAgICAgQUxPR1coIkFzc2V0IHBhdGggJXMgaXMgbmVpdGhlciBhIGRpcmVjdG9yeSBub3IgZmlsZSAodHlwZT0lZCkuIiwKLSAgICAgICAgICAgICAgICAgcGF0aC5zdHJpbmcoKSwgKGludClhcC50eXBlKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIFNraXAgaWYgd2UgaGF2ZSBpdCBhbHJlYWR5LgotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxtQXNzZXRQYXRocy5zaXplKCk7IGkrKykgewotICAgICAgICBpZiAobUFzc2V0UGF0aHNbaV0ucGF0aCA9PSBhcC5wYXRoKSB7Ci0gICAgICAgICAgICBpZiAoY29va2llKSB7Ci0gICAgICAgICAgICAgICAgKmNvb2tpZSA9ICh2b2lkKikoaSsxKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQUxPR1YoIkluICVwIEFzc2V0ICVzIHBhdGg6ICVzIiwgdGhpcywKLSAgICAgICAgIGFwLnR5cGUgPT0ga0ZpbGVUeXBlRGlyZWN0b3J5ID8gImRpciIgOiAiemlwIiwgYXAucGF0aC5zdHJpbmcoKSk7Ci0KLSAgICBtQXNzZXRQYXRocy5hZGQoYXApOwotCi0gICAgLy8gbmV3IHBhdGhzIGFyZSBhbHdheXMgYWRkZWQgYXQgdGhlIGVuZAotICAgIGlmIChjb29raWUpIHsKLSAgICAgICAgKmNvb2tpZSA9ICh2b2lkKiltQXNzZXRQYXRocy5zaXplKCk7Ci0gICAgfQotCi0gICAgLy8gYWRkIG92ZXJsYXkgcGFja2FnZXMgZm9yIC9zeXN0ZW0vZnJhbWV3b3JrOyBhcHBzIGFyZSBoYW5kbGVkIGJ5IHRoZQotICAgIC8vIChKYXZhKSBwYWNrYWdlIG1hbmFnZXIKLSAgICBpZiAoc3RybmNtcChwYXRoLnN0cmluZygpLCAiL3N5c3RlbS9mcmFtZXdvcmsvIiwgMTgpID09IDApIHsKLSAgICAgICAgLy8gV2hlbiB0aGVyZSBpcyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBmb3IgL3ZlbmRvciwgdGhpcwotICAgICAgICAvLyBzaG91bGQgYmUgY2hhbmdlZCB0byBzb21ldGhpbmcgc2ltaWxhciB0byBob3cgQU5EUk9JRF9ST09UCi0gICAgICAgIC8vIGFuZCBBTkRST0lEX0RBVEEgYXJlIHVzZWQgaW4gdGhpcyBmaWxlLgotICAgICAgICBTdHJpbmc4IG92ZXJsYXlQYXRoKCIvdmVuZG9yL292ZXJsYXkvZnJhbWV3b3JrLyIpOwotICAgICAgICBvdmVybGF5UGF0aC5hcHBlbmQocGF0aC5nZXRQYXRoTGVhZigpKTsKLSAgICAgICAgaWYgKFRFTVBfRkFJTFVSRV9SRVRSWShhY2Nlc3Mob3ZlcmxheVBhdGguc3RyaW5nKCksIFJfT0spKSA9PSAwKSB7Ci0gICAgICAgICAgICBhc3NldF9wYXRoIG9hcDsKLSAgICAgICAgICAgIG9hcC5wYXRoID0gb3ZlcmxheVBhdGg7Ci0gICAgICAgICAgICBvYXAudHlwZSA9IDo6Z2V0RmlsZVR5cGUob3ZlcmxheVBhdGguc3RyaW5nKCkpOwotICAgICAgICAgICAgYm9vbCBhZGRPdmVybGF5ID0gKG9hcC50eXBlID09IGtGaWxlVHlwZVJlZ3VsYXIpOyAvLyBvbmx5IC5hcGtzIHN1cHBvcnRlZCBhcyBvdmVybGF5Ci0gICAgICAgICAgICBpZiAoYWRkT3ZlcmxheSkgewotICAgICAgICAgICAgICAgIG9hcC5pZG1hcCA9IGlkbWFwUGF0aEZvclBhY2thZ2VQYXRoKG92ZXJsYXlQYXRoKTsKLQotICAgICAgICAgICAgICAgIGlmIChpc0lkbWFwU3RhbGVMb2NrZWQoYXAucGF0aCwgb2FwLnBhdGgsIG9hcC5pZG1hcCkpIHsKLSAgICAgICAgICAgICAgICAgICAgYWRkT3ZlcmxheSA9IGNyZWF0ZUlkbWFwRmlsZUxvY2tlZChhcC5wYXRoLCBvYXAucGF0aCwgb2FwLmlkbWFwKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYWRkT3ZlcmxheSkgewotICAgICAgICAgICAgICAgIG1Bc3NldFBhdGhzLmFkZChvYXApOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBBTE9HVygiZmFpbGVkIHRvIGFkZCBvdmVybGF5IHBhY2thZ2UgJXNcbiIsIG92ZXJsYXlQYXRoLnN0cmluZygpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIEFzc2V0TWFuYWdlcjo6aXNJZG1hcFN0YWxlTG9ja2VkKGNvbnN0IFN0cmluZzgmIG9yaWdpbmFsUGF0aCwgY29uc3QgU3RyaW5nOCYgb3ZlcmxheVBhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzgmIGlkbWFwUGF0aCkKLXsKLSAgICBzdHJ1Y3Qgc3RhdCBzdDsKLSAgICBpZiAoVEVNUF9GQUlMVVJFX1JFVFJZKHN0YXQoaWRtYXBQYXRoLnN0cmluZygpLCAmc3QpKSA9PSAtMSkgewotICAgICAgICBpZiAoZXJybm8gPT0gRU5PRU5UKSB7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gbm9uLWV4aXN0aW5nIGlkbWFwIGlzIGFsd2F5cyBzdGFsZQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQUxPR1coImZhaWxlZCB0byBzdGF0IGZpbGUgJXM6ICVzXG4iLCBpZG1hcFBhdGguc3RyaW5nKCksIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKHN0LnN0X3NpemUgPCBSZXNUYWJsZTo6SURNQVBfSEVBREVSX1NJWkVfQllURVMpIHsKLSAgICAgICAgQUxPR1coImZpbGUgJXMgaGFzIHVuZXhwZWN0ZWRseSBzbWFsbCBzaXplPSV6ZFxuIiwgaWRtYXBQYXRoLnN0cmluZygpLCAoc2l6ZV90KXN0LnN0X3NpemUpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGludCBmZCA9IFRFTVBfRkFJTFVSRV9SRVRSWSg6Om9wZW4oaWRtYXBQYXRoLnN0cmluZygpLCBPX1JET05MWSkpOwotICAgIGlmIChmZCA9PSAtMSkgewotICAgICAgICBBTE9HVygiZmFpbGVkIHRvIG9wZW4gZmlsZSAlczogJXNcbiIsIGlkbWFwUGF0aC5zdHJpbmcoKSwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBjaGFyIGJ1ZltSZXNUYWJsZTo6SURNQVBfSEVBREVSX1NJWkVfQllURVNdOwotICAgIHNzaXplX3QgYnl0ZXNMZWZ0ID0gUmVzVGFibGU6OklETUFQX0hFQURFUl9TSVpFX0JZVEVTOwotICAgIGZvciAoOzspIHsKLSAgICAgICAgc3NpemVfdCByID0gVEVNUF9GQUlMVVJFX1JFVFJZKHJlYWQoZmQsIGJ1ZiArIFJlc1RhYmxlOjpJRE1BUF9IRUFERVJfU0laRV9CWVRFUyAtIGJ5dGVzTGVmdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNMZWZ0KSk7Ci0gICAgICAgIGlmIChyIDwgMCkgewotICAgICAgICAgICAgVEVNUF9GQUlMVVJFX1JFVFJZKGNsb3NlKGZkKSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgYnl0ZXNMZWZ0IC09IHI7Ci0gICAgICAgIGlmIChieXRlc0xlZnQgPT0gMCkgewotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgVEVNUF9GQUlMVVJFX1JFVFJZKGNsb3NlKGZkKSk7Ci0KLSAgICB1aW50MzJfdCBjYWNoZWRPcmlnaW5hbENyYywgY2FjaGVkT3ZlcmxheUNyYzsKLSAgICBpZiAoIVJlc1RhYmxlOjpnZXRJZG1hcEluZm8oYnVmLCBSZXNUYWJsZTo6SURNQVBfSEVBREVSX1NJWkVfQllURVMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjYWNoZWRPcmlnaW5hbENyYywgJmNhY2hlZE92ZXJsYXlDcmMpKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICB1aW50MzJfdCBhY3R1YWxPcmlnaW5hbENyYywgYWN0dWFsT3ZlcmxheUNyYzsKLSAgICBpZiAoIWdldFppcEVudHJ5Q3JjTG9ja2VkKG9yaWdpbmFsUGF0aCwgInJlc291cmNlcy5hcnNjIiwgJmFjdHVhbE9yaWdpbmFsQ3JjKSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGlmICghZ2V0WmlwRW50cnlDcmNMb2NrZWQob3ZlcmxheVBhdGgsICJyZXNvdXJjZXMuYXJzYyIsICZhY3R1YWxPdmVybGF5Q3JjKSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiBjYWNoZWRPcmlnaW5hbENyYyAhPSBhY3R1YWxPcmlnaW5hbENyYyB8fCBjYWNoZWRPdmVybGF5Q3JjICE9IGFjdHVhbE92ZXJsYXlDcmM7Ci19Ci0KLWJvb2wgQXNzZXRNYW5hZ2VyOjpnZXRaaXBFbnRyeUNyY0xvY2tlZChjb25zdCBTdHJpbmc4JiB6aXBQYXRoLCBjb25zdCBjaGFyKiBlbnRyeUZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBwQ3JjKQotewotICAgIGFzc2V0X3BhdGggYXA7Ci0gICAgYXAucGF0aCA9IHppcFBhdGg7Ci0gICAgY29uc3QgWmlwRmlsZVJPKiB6aXAgPSBnZXRaaXBGaWxlTG9ja2VkKGFwKTsKLSAgICBpZiAoemlwID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBjb25zdCBaaXBFbnRyeVJPIGVudHJ5ID0gemlwLT5maW5kRW50cnlCeU5hbWUoZW50cnlGaWxlbmFtZSk7Ci0gICAgaWYgKGVudHJ5ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAoIXppcC0+Z2V0RW50cnlJbmZvKGVudHJ5LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCAobG9uZyopcENyYykpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBBc3NldE1hbmFnZXI6OmNyZWF0ZUlkbWFwRmlsZUxvY2tlZChjb25zdCBTdHJpbmc4JiBvcmlnaW5hbFBhdGgsIGNvbnN0IFN0cmluZzgmIG92ZXJsYXlQYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmc4JiBpZG1hcFBhdGgpCi17Ci0gICAgQUxPR0QoIiVzOiBvcmlnaW5hbFBhdGg9JXMgb3ZlcmxheVBhdGg9JXMgaWRtYXBQYXRoPSVzXG4iLAotICAgICAgICAgX19GVU5DVElPTl9fLCBvcmlnaW5hbFBhdGguc3RyaW5nKCksIG92ZXJsYXlQYXRoLnN0cmluZygpLCBpZG1hcFBhdGguc3RyaW5nKCkpOwotICAgIFJlc1RhYmxlIHRhYmxlc1syXTsKLSAgICBjb25zdCBTdHJpbmc4KiBwYXRoc1syXSA9IHsgJm9yaWdpbmFsUGF0aCwgJm92ZXJsYXlQYXRoIH07Ci0gICAgdWludDMyX3Qgb3JpZ2luYWxDcmMsIG92ZXJsYXlDcmM7Ci0gICAgYm9vbCByZXR2YWwgPSBmYWxzZTsKLSAgICBzc2l6ZV90IG9mZnNldCA9IDA7Ci0gICAgaW50IGZkID0gMDsKLSAgICB1aW50MzJfdCogZGF0YSA9IE5VTEw7Ci0gICAgc2l6ZV90IHNpemU7Ci0KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7ICsraSkgewotICAgICAgICBhc3NldF9wYXRoIGFwOwotICAgICAgICBhcC50eXBlID0ga0ZpbGVUeXBlUmVndWxhcjsKLSAgICAgICAgYXAucGF0aCA9ICpwYXRoc1tpXTsKLSAgICAgICAgQXNzZXQqIGFzcyA9IG9wZW5Ob25Bc3NldEluUGF0aExvY2tlZCgicmVzb3VyY2VzLmFyc2MiLCBBc3NldDo6QUNDRVNTX0JVRkZFUiwgYXApOwotICAgICAgICBpZiAoYXNzID09IE5VTEwpIHsKLSAgICAgICAgICAgIEFMT0dXKCJmYWlsZWQgdG8gZmluZCByZXNvdXJjZXMuYXJzYyBpbiAlc1xuIiwgYXAucGF0aC5zdHJpbmcoKSk7Ci0gICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICB9Ci0gICAgICAgIHRhYmxlc1tpXS5hZGQoYXNzLCAodm9pZCopMSwgZmFsc2UpOwotICAgIH0KLQotICAgIGlmICghZ2V0WmlwRW50cnlDcmNMb2NrZWQob3JpZ2luYWxQYXRoLCAicmVzb3VyY2VzLmFyc2MiLCAmb3JpZ2luYWxDcmMpKSB7Ci0gICAgICAgIEFMT0dXKCJmYWlsZWQgdG8gcmV0cmlldmUgY3JjIGZvciByZXNvdXJjZXMuYXJzYyBpbiAlc1xuIiwgb3JpZ2luYWxQYXRoLnN0cmluZygpKTsKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICB9Ci0gICAgaWYgKCFnZXRaaXBFbnRyeUNyY0xvY2tlZChvdmVybGF5UGF0aCwgInJlc291cmNlcy5hcnNjIiwgJm92ZXJsYXlDcmMpKSB7Ci0gICAgICAgIEFMT0dXKCJmYWlsZWQgdG8gcmV0cmlldmUgY3JjIGZvciByZXNvdXJjZXMuYXJzYyBpbiAlc1xuIiwgb3ZlcmxheVBhdGguc3RyaW5nKCkpOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLQotICAgIGlmICh0YWJsZXNbMF0uY3JlYXRlSWRtYXAodGFibGVzWzFdLCBvcmlnaW5hbENyYywgb3ZlcmxheUNyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKiopJmRhdGEsICZzaXplKSAhPSBOT19FUlJPUikgewotICAgICAgICBBTE9HVygiZmFpbGVkIHRvIGdlbmVyYXRlIGlkbWFwIGRhdGEgZm9yIGZpbGUgJXNcbiIsIGlkbWFwUGF0aC5zdHJpbmcoKSk7Ci0gICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgfQotCi0gICAgLy8gVGhpcyBzaG91bGQgYmUgYWJzdHJhY3RlZCAoZWcgcmVwbGFjZWQgYnkgYSBzdGFuZC1hbG9uZQotICAgIC8vIGFwcGxpY2F0aW9uIGxpa2UgZGV4b3B0LCB0cmlnZ2VyZWQgYnkgc29tZXRoaW5nIGVxdWl2YWxlbnQgdG8KLSAgICAvLyBpbnN0YWxsZCkuCi0gICAgZmQgPSBURU1QX0ZBSUxVUkVfUkVUUlkoOjpvcGVuKGlkbWFwUGF0aC5zdHJpbmcoKSwgT19XUk9OTFkgfCBPX0NSRUFUIHwgT19UUlVOQywgMDY0NCkpOwotICAgIGlmIChmZCA9PSAtMSkgewotICAgICAgICBBTE9HVygiZmFpbGVkIHRvIHdyaXRlIGlkbWFwIGZpbGUgJXMgKG9wZW46ICVzKVxuIiwgaWRtYXBQYXRoLnN0cmluZygpLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICBnb3RvIGVycm9yX2ZyZWU7Ci0gICAgfQotICAgIGZvciAoOzspIHsKLSAgICAgICAgc3NpemVfdCB3cml0dGVuID0gVEVNUF9GQUlMVVJFX1JFVFJZKHdyaXRlKGZkLCBkYXRhICsgb2Zmc2V0LCBzaXplKSk7Ci0gICAgICAgIGlmICh3cml0dGVuIDwgMCkgewotICAgICAgICAgICAgQUxPR1coImZhaWxlZCB0byB3cml0ZSBpZG1hcCBmaWxlICVzICh3cml0ZTogJXMpXG4iLCBpZG1hcFBhdGguc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgICAgICBnb3RvIGVycm9yX2Nsb3NlOwotICAgICAgICB9Ci0gICAgICAgIHNpemUgLT0gKHNpemVfdCl3cml0dGVuOwotICAgICAgICBvZmZzZXQgKz0gd3JpdHRlbjsKLSAgICAgICAgaWYgKHNpemUgPT0gMCkgewotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR2YWwgPSB0cnVlOwotZXJyb3JfY2xvc2U6Ci0gICAgVEVNUF9GQUlMVVJFX1JFVFJZKGNsb3NlKGZkKSk7Ci1lcnJvcl9mcmVlOgotICAgIGZyZWUoZGF0YSk7Ci1lcnJvcjoKLSAgICByZXR1cm4gcmV0dmFsOwotfQotCi1ib29sIEFzc2V0TWFuYWdlcjo6YWRkRGVmYXVsdEFzc2V0cygpCi17Ci0gICAgY29uc3QgY2hhciogcm9vdCA9IGdldGVudigiQU5EUk9JRF9ST09UIik7Ci0gICAgTE9HX0FMV0FZU19GQVRBTF9JRihyb290ID09IE5VTEwsICJBTkRST0lEX1JPT1Qgbm90IHNldCIpOwotCi0gICAgU3RyaW5nOCBwYXRoKHJvb3QpOwotICAgIHBhdGguYXBwZW5kUGF0aChrU3lzdGVtQXNzZXRzKTsKLQotICAgIHJldHVybiBhZGRBc3NldFBhdGgocGF0aCwgTlVMTCk7Ci19Ci0KLXZvaWQqIEFzc2V0TWFuYWdlcjo6bmV4dEFzc2V0UGF0aCh2b2lkKiBjb29raWUpIGNvbnN0Ci17Ci0gICAgQXV0b011dGV4IF9sKG1Mb2NrKTsKLSAgICBzaXplX3QgbmV4dCA9ICgoc2l6ZV90KWNvb2tpZSkrMTsKLSAgICByZXR1cm4gbmV4dCA+IG1Bc3NldFBhdGhzLnNpemUoKSA/IE5VTEwgOiAodm9pZCopbmV4dDsKLX0KLQotU3RyaW5nOCBBc3NldE1hbmFnZXI6OmdldEFzc2V0UGF0aCh2b2lkKiBjb29raWUpIGNvbnN0Ci17Ci0gICAgQXV0b011dGV4IF9sKG1Mb2NrKTsKLSAgICBjb25zdCBzaXplX3Qgd2hpY2ggPSAoKHNpemVfdCljb29raWUpLTE7Ci0gICAgaWYgKHdoaWNoIDwgbUFzc2V0UGF0aHMuc2l6ZSgpKSB7Ci0gICAgICAgIHJldHVybiBtQXNzZXRQYXRoc1t3aGljaF0ucGF0aDsKLSAgICB9Ci0gICAgcmV0dXJuIFN0cmluZzgoKTsKLX0KLQotLyoKLSAqIFNldCB0aGUgY3VycmVudCBsb2NhbGUuICBVc2UgTlVMTCB0byBpbmRpY2F0ZSBubyBsb2NhbGUuCi0gKgotICogQ2xvc2UgYW5kIHJlb3BlbiBaaXAgYXJjaGl2ZXMgYXMgYXBwcm9wcmlhdGUsIGFuZCByZXNldCBjYWNoZWQKLSAqIGluZm9ybWF0aW9uIGluIHRoZSBsb2NhbGUtc3BlY2lmaWMgc2VjdGlvbnMgb2YgdGhlIHRyZWUuCi0gKi8KLXZvaWQgQXNzZXRNYW5hZ2VyOjpzZXRMb2NhbGUoY29uc3QgY2hhciogbG9jYWxlKQotewotICAgIEF1dG9NdXRleCBfbChtTG9jayk7Ci0gICAgc2V0TG9jYWxlTG9ja2VkKGxvY2FsZSk7Ci19Ci0KLXZvaWQgQXNzZXRNYW5hZ2VyOjpzZXRMb2NhbGVMb2NrZWQoY29uc3QgY2hhciogbG9jYWxlKQotewotICAgIGlmIChtTG9jYWxlICE9IE5VTEwpIHsKLSAgICAgICAgLyogcHJldmlvdXNseSBzZXQsIHB1cmdlIGNhY2hlZCBkYXRhICovCi0gICAgICAgIHB1cmdlRmlsZU5hbWVDYWNoZUxvY2tlZCgpOwotICAgICAgICAvL21aaXBTZXQucHVyZ2VMb2NhbGUoKTsKLSAgICAgICAgZGVsZXRlW10gbUxvY2FsZTsKLSAgICB9Ci0gICAgbUxvY2FsZSA9IHN0cmR1cE5ldyhsb2NhbGUpOwotCi0gICAgdXBkYXRlUmVzb3VyY2VQYXJhbXNMb2NrZWQoKTsKLX0KLQotLyoKLSAqIFNldCB0aGUgY3VycmVudCB2ZW5kb3IuICBVc2UgTlVMTCB0byBpbmRpY2F0ZSBubyB2ZW5kb3IuCi0gKgotICogQ2xvc2UgYW5kIHJlb3BlbiBaaXAgYXJjaGl2ZXMgYXMgYXBwcm9wcmlhdGUsIGFuZCByZXNldCBjYWNoZWQKLSAqIGluZm9ybWF0aW9uIGluIHRoZSB2ZW5kb3Itc3BlY2lmaWMgc2VjdGlvbnMgb2YgdGhlIHRyZWUuCi0gKi8KLXZvaWQgQXNzZXRNYW5hZ2VyOjpzZXRWZW5kb3IoY29uc3QgY2hhciogdmVuZG9yKQotewotICAgIEF1dG9NdXRleCBfbChtTG9jayk7Ci0KLSAgICBpZiAobVZlbmRvciAhPSBOVUxMKSB7Ci0gICAgICAgIC8qIHByZXZpb3VzbHkgc2V0LCBwdXJnZSBjYWNoZWQgZGF0YSAqLwotICAgICAgICBwdXJnZUZpbGVOYW1lQ2FjaGVMb2NrZWQoKTsKLSAgICAgICAgLy9tWmlwU2V0LnB1cmdlVmVuZG9yKCk7Ci0gICAgICAgIGRlbGV0ZVtdIG1WZW5kb3I7Ci0gICAgfQotICAgIG1WZW5kb3IgPSBzdHJkdXBOZXcodmVuZG9yKTsKLX0KLQotdm9pZCBBc3NldE1hbmFnZXI6OnNldENvbmZpZ3VyYXRpb24oY29uc3QgUmVzVGFibGVfY29uZmlnJiBjb25maWcsIGNvbnN0IGNoYXIqIGxvY2FsZSkKLXsKLSAgICBBdXRvTXV0ZXggX2wobUxvY2spOwotICAgICptQ29uZmlnID0gY29uZmlnOwotICAgIGlmIChsb2NhbGUpIHsKLSAgICAgICAgc2V0TG9jYWxlTG9ja2VkKGxvY2FsZSk7Ci0gICAgfSBlbHNlIGlmIChjb25maWcubGFuZ3VhZ2VbMF0gIT0gMCkgewotICAgICAgICBjaGFyIHNwZWNbOV07Ci0gICAgICAgIHNwZWNbMF0gPSBjb25maWcubGFuZ3VhZ2VbMF07Ci0gICAgICAgIHNwZWNbMV0gPSBjb25maWcubGFuZ3VhZ2VbMV07Ci0gICAgICAgIGlmIChjb25maWcuY291bnRyeVswXSAhPSAwKSB7Ci0gICAgICAgICAgICBzcGVjWzJdID0gJ18nOwotICAgICAgICAgICAgc3BlY1szXSA9IGNvbmZpZy5jb3VudHJ5WzBdOwotICAgICAgICAgICAgc3BlY1s0XSA9IGNvbmZpZy5jb3VudHJ5WzFdOwotICAgICAgICAgICAgc3BlY1s1XSA9IDA7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzcGVjWzNdID0gMDsKLSAgICAgICAgfQotICAgICAgICBzZXRMb2NhbGVMb2NrZWQoc3BlYyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdXBkYXRlUmVzb3VyY2VQYXJhbXNMb2NrZWQoKTsKLSAgICB9Ci19Ci0KLXZvaWQgQXNzZXRNYW5hZ2VyOjpnZXRDb25maWd1cmF0aW9uKFJlc1RhYmxlX2NvbmZpZyogb3V0Q29uZmlnKSBjb25zdAotewotICAgIEF1dG9NdXRleCBfbChtTG9jayk7Ci0gICAgKm91dENvbmZpZyA9ICptQ29uZmlnOwotfQotCi0vKgotICogT3BlbiBhbiBhc3NldC4KLSAqCi0gKiBUaGUgZGF0YSBjb3VsZCBiZTsKLSAqICAtIEluIGEgZmlsZSBvbiBkaXNrIChhc3NldEJhc2UgKyBmaWxlTmFtZSkuCi0gKiAgLSBJbiBhIGNvbXByZXNzZWQgZmlsZSBvbiBkaXNrIChhc3NldEJhc2UgKyBmaWxlTmFtZS5neikuCi0gKiAgLSBJbiBhIFppcCBhcmNoaXZlLCB1bmNvbXByZXNzZWQgb3IgY29tcHJlc3NlZC4KLSAqCi0gKiBJdCBjYW4gYmUgaW4gYSBudW1iZXIgb2YgZGlmZmVyZW50IGRpcmVjdG9yaWVzIGFuZCBaaXAgYXJjaGl2ZXMuCi0gKiBUaGUgc2VhcmNoIG9yZGVyIGlzOgotICogIC0gW2FwcG5hbWVdCi0gKiAgICAtIGxvY2FsZSArIHZlbmRvcgotICogICAgLSAiZGVmYXVsdCIgKyB2ZW5kb3IKLSAqICAgIC0gbG9jYWxlICsgImRlZmF1bHQiCi0gKiAgICAtICJkZWZhdWx0ICsgImRlZmF1bHQiCi0gKiAgLSAiY29tbW9uIgotICogICAgLSAoc2FtZSBhcyBhYm92ZSkKLSAqCi0gKiBUbyBmaW5kIGEgcGFydGljdWxhciBmaWxlLCB3ZSBoYXZlIHRvIHRyeSB1cCB0byBlaWdodCBwYXRocyB3aXRoCi0gKiBhbGwgdGhyZWUgZm9ybXMgb2YgZGF0YS4KLSAqCi0gKiBXZSBzaG91bGQgcHJvYmFibHkgcmVqZWN0IHJlcXVlc3RzIGZvciAiaWxsZWdhbCIgZmlsZW5hbWVzLCBlLmcuIHRob3NlCi0gKiB3aXRoIGlsbGVnYWwgY2hhcmFjdGVycyBvciAiLi4vIiBiYWNrd2FyZCByZWxhdGl2ZSBwYXRocy4KLSAqLwotQXNzZXQqIEFzc2V0TWFuYWdlcjo6b3Blbihjb25zdCBjaGFyKiBmaWxlTmFtZSwgQWNjZXNzTW9kZSBtb2RlKQotewotICAgIEF1dG9NdXRleCBfbChtTG9jayk7Ci0KLSAgICBMT0dfRkFUQUxfSUYobUFzc2V0UGF0aHMuc2l6ZSgpID09IDAsICJObyBhc3NldHMgYWRkZWQgdG8gQXNzZXRNYW5hZ2VyIik7Ci0KLQotICAgIGlmIChtQ2FjaGVNb2RlICE9IENBQ0hFX09GRiAmJiAhbUNhY2hlVmFsaWQpCi0gICAgICAgIGxvYWRGaWxlTmFtZUNhY2hlTG9ja2VkKCk7Ci0KLSAgICBTdHJpbmc4IGFzc2V0TmFtZShrQXNzZXRzUm9vdCk7Ci0gICAgYXNzZXROYW1lLmFwcGVuZFBhdGgoZmlsZU5hbWUpOwotCi0gICAgLyoKLSAgICAgKiBGb3IgZWFjaCB0b3AtbGV2ZWwgYXNzZXQgcGF0aCwgc2VhcmNoIGZvciB0aGUgYXNzZXQuCi0gICAgICovCi0KLSAgICBzaXplX3QgaSA9IG1Bc3NldFBhdGhzLnNpemUoKTsKLSAgICB3aGlsZSAoaSA+IDApIHsKLSAgICAgICAgaS0tOwotICAgICAgICBBTE9HVigiTG9va2luZyBmb3IgYXNzZXQgJyVzJyBpbiAnJXMnXG4iLAotICAgICAgICAgICAgICAgIGFzc2V0TmFtZS5zdHJpbmcoKSwgbUFzc2V0UGF0aHMuaXRlbUF0KGkpLnBhdGguc3RyaW5nKCkpOwotICAgICAgICBBc3NldCogcEFzc2V0ID0gb3Blbk5vbkFzc2V0SW5QYXRoTG9ja2VkKGFzc2V0TmFtZS5zdHJpbmcoKSwgbW9kZSwgbUFzc2V0UGF0aHMuaXRlbUF0KGkpKTsKLSAgICAgICAgaWYgKHBBc3NldCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gcEFzc2V0ICE9IGtFeGNsdWRlZEFzc2V0ID8gcEFzc2V0IDogTlVMTDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBOVUxMOwotfQotCi0vKgotICogT3BlbiBhIG5vbi1hc3NldCBmaWxlIGFzIGlmIGl0IHdlcmUgYW4gYXNzZXQuCi0gKgotICogVGhlICJmaWxlTmFtZSIgaXMgdGhlIHBhcnRpYWwgcGF0aCBzdGFydGluZyBmcm9tIHRoZSBhcHBsaWNhdGlvbgotICogbmFtZS4KLSAqLwotQXNzZXQqIEFzc2V0TWFuYWdlcjo6b3Blbk5vbkFzc2V0KGNvbnN0IGNoYXIqIGZpbGVOYW1lLCBBY2Nlc3NNb2RlIG1vZGUpCi17Ci0gICAgQXV0b011dGV4IF9sKG1Mb2NrKTsKLQotICAgIExPR19GQVRBTF9JRihtQXNzZXRQYXRocy5zaXplKCkgPT0gMCwgIk5vIGFzc2V0cyBhZGRlZCB0byBBc3NldE1hbmFnZXIiKTsKLQotCi0gICAgaWYgKG1DYWNoZU1vZGUgIT0gQ0FDSEVfT0ZGICYmICFtQ2FjaGVWYWxpZCkKLSAgICAgICAgbG9hZEZpbGVOYW1lQ2FjaGVMb2NrZWQoKTsKLQotICAgIC8qCi0gICAgICogRm9yIGVhY2ggdG9wLWxldmVsIGFzc2V0IHBhdGgsIHNlYXJjaCBmb3IgdGhlIGFzc2V0LgotICAgICAqLwotCi0gICAgc2l6ZV90IGkgPSBtQXNzZXRQYXRocy5zaXplKCk7Ci0gICAgd2hpbGUgKGkgPiAwKSB7Ci0gICAgICAgIGktLTsKLSAgICAgICAgQUxPR1YoIkxvb2tpbmcgZm9yIG5vbi1hc3NldCAnJXMnIGluICclcydcbiIsIGZpbGVOYW1lLCBtQXNzZXRQYXRocy5pdGVtQXQoaSkucGF0aC5zdHJpbmcoKSk7Ci0gICAgICAgIEFzc2V0KiBwQXNzZXQgPSBvcGVuTm9uQXNzZXRJblBhdGhMb2NrZWQoCi0gICAgICAgICAgICBmaWxlTmFtZSwgbW9kZSwgbUFzc2V0UGF0aHMuaXRlbUF0KGkpKTsKLSAgICAgICAgaWYgKHBBc3NldCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gcEFzc2V0ICE9IGtFeGNsdWRlZEFzc2V0ID8gcEFzc2V0IDogTlVMTDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBOVUxMOwotfQotCi1Bc3NldCogQXNzZXRNYW5hZ2VyOjpvcGVuTm9uQXNzZXQodm9pZCogY29va2llLCBjb25zdCBjaGFyKiBmaWxlTmFtZSwgQWNjZXNzTW9kZSBtb2RlKQotewotICAgIGNvbnN0IHNpemVfdCB3aGljaCA9ICgoc2l6ZV90KWNvb2tpZSktMTsKLQotICAgIEF1dG9NdXRleCBfbChtTG9jayk7Ci0KLSAgICBMT0dfRkFUQUxfSUYobUFzc2V0UGF0aHMuc2l6ZSgpID09IDAsICJObyBhc3NldHMgYWRkZWQgdG8gQXNzZXRNYW5hZ2VyIik7Ci0KLQotICAgIGlmIChtQ2FjaGVNb2RlICE9IENBQ0hFX09GRiAmJiAhbUNhY2hlVmFsaWQpCi0gICAgICAgIGxvYWRGaWxlTmFtZUNhY2hlTG9ja2VkKCk7Ci0KLSAgICBpZiAod2hpY2ggPCBtQXNzZXRQYXRocy5zaXplKCkpIHsKLSAgICAgICAgQUxPR1YoIkxvb2tpbmcgZm9yIG5vbi1hc3NldCAnJXMnIGluICclcydcbiIsIGZpbGVOYW1lLAotICAgICAgICAgICAgICAgIG1Bc3NldFBhdGhzLml0ZW1BdCh3aGljaCkucGF0aC5zdHJpbmcoKSk7Ci0gICAgICAgIEFzc2V0KiBwQXNzZXQgPSBvcGVuTm9uQXNzZXRJblBhdGhMb2NrZWQoCi0gICAgICAgICAgICBmaWxlTmFtZSwgbW9kZSwgbUFzc2V0UGF0aHMuaXRlbUF0KHdoaWNoKSk7Ci0gICAgICAgIGlmIChwQXNzZXQgIT0gTlVMTCkgewotICAgICAgICAgICAgcmV0dXJuIHBBc3NldCAhPSBrRXhjbHVkZWRBc3NldCA/IHBBc3NldCA6IE5VTEw7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gTlVMTDsKLX0KLQotLyoKLSAqIEdldCB0aGUgdHlwZSBvZiBhIGZpbGUgaW4gdGhlIGFzc2V0IG5hbWVzcGFjZS4KLSAqCi0gKiBUaGlzIGN1cnJlbnRseSBvbmx5IHdvcmtzIGZvciByZWd1bGFyIGZpbGVzLiAgQWxsIG90aGVycyAoaW5jbHVkaW5nCi0gKiBkaXJlY3Rvcmllcykgd2lsbCByZXR1cm4ga0ZpbGVUeXBlTm9uZXhpc3RlbnQuCi0gKi8KLUZpbGVUeXBlIEFzc2V0TWFuYWdlcjo6Z2V0RmlsZVR5cGUoY29uc3QgY2hhciogZmlsZU5hbWUpCi17Ci0gICAgQXNzZXQqIHBBc3NldCA9IE5VTEw7Ci0KLSAgICAvKgotICAgICAqIE9wZW4gdGhlIGFzc2V0LiAgVGhpcyBpcyBsZXNzIGVmZmljaWVudCB0aGFuIHNpbXBseSBmaW5kaW5nIHRoZQotICAgICAqIGZpbGUsIGJ1dCBpdCdzIG5vdCB0b28gYmFkICh3ZSBkb24ndCB1bmNvbXByZXNzIG9yIG1tYXAgZGF0YSB1bnRpbAotICAgICAqIHRoZSBmaXJzdCByZWFkKCkgY2FsbCkuCi0gICAgICovCi0gICAgcEFzc2V0ID0gb3BlbihmaWxlTmFtZSwgQXNzZXQ6OkFDQ0VTU19TVFJFQU1JTkcpOwotICAgIGRlbGV0ZSBwQXNzZXQ7Ci0KLSAgICBpZiAocEFzc2V0ID09IE5VTEwpCi0gICAgICAgIHJldHVybiBrRmlsZVR5cGVOb25leGlzdGVudDsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBrRmlsZVR5cGVSZWd1bGFyOwotfQotCi1jb25zdCBSZXNUYWJsZSogQXNzZXRNYW5hZ2VyOjpnZXRSZXNUYWJsZShib29sIHJlcXVpcmVkKSBjb25zdAotewotICAgIFJlc1RhYmxlKiBydCA9IG1SZXNvdXJjZXM7Ci0gICAgaWYgKHJ0KSB7Ci0gICAgICAgIHJldHVybiBydDsKLSAgICB9Ci0KLSAgICAvLyBJdGVyYXRlIHRocm91Z2ggYWxsIGFzc2V0IHBhY2thZ2VzLCBjb2xsZWN0aW5nIHJlc291cmNlcyBmcm9tIGVhY2guCi0KLSAgICBBdXRvTXV0ZXggX2wobUxvY2spOwotCi0gICAgaWYgKG1SZXNvdXJjZXMgIT0gTlVMTCkgewotICAgICAgICByZXR1cm4gbVJlc291cmNlczsKLSAgICB9Ci0KLSAgICBpZiAocmVxdWlyZWQpIHsKLSAgICAgICAgTE9HX0ZBVEFMX0lGKG1Bc3NldFBhdGhzLnNpemUoKSA9PSAwLCAiTm8gYXNzZXRzIGFkZGVkIHRvIEFzc2V0TWFuYWdlciIpOwotICAgIH0KLQotICAgIGlmIChtQ2FjaGVNb2RlICE9IENBQ0hFX09GRiAmJiAhbUNhY2hlVmFsaWQpCi0gICAgICAgIGNvbnN0X2Nhc3Q8QXNzZXRNYW5hZ2VyKj4odGhpcyktPmxvYWRGaWxlTmFtZUNhY2hlTG9ja2VkKCk7Ci0KLSAgICBjb25zdCBzaXplX3QgTiA9IG1Bc3NldFBhdGhzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIEFzc2V0KiBhc3MgPSBOVUxMOwotICAgICAgICBSZXNUYWJsZSogc2hhcmVkUmVzID0gTlVMTDsKLSAgICAgICAgYm9vbCBzaGFyZWQgPSB0cnVlOwotICAgICAgICBjb25zdCBhc3NldF9wYXRoJiBhcCA9IG1Bc3NldFBhdGhzLml0ZW1BdChpKTsKLSAgICAgICAgTVlfVFJBQ0VfQkVHSU4oYXAucGF0aC5zdHJpbmcoKSk7Ci0gICAgICAgIEFzc2V0KiBpZG1hcCA9IG9wZW5JZG1hcExvY2tlZChhcCk7Ci0gICAgICAgIEFMT0dWKCJMb29raW5nIGZvciByZXNvdXJjZSBhc3NldCBpbiAnJXMnXG4iLCBhcC5wYXRoLnN0cmluZygpKTsKLSAgICAgICAgaWYgKGFwLnR5cGUgIT0ga0ZpbGVUeXBlRGlyZWN0b3J5KSB7Ci0gICAgICAgICAgICBpZiAoaSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgLy8gVGhlIGZpcnN0IGl0ZW0gaXMgdHlwaWNhbGx5IHRoZSBmcmFtZXdvcmsgcmVzb3VyY2VzLAotICAgICAgICAgICAgICAgIC8vIHdoaWNoIHdlIHdhbnQgdG8gYXZvaWQgcGFyc2luZyBldmVyeSB0aW1lLgotICAgICAgICAgICAgICAgIHNoYXJlZFJlcyA9IGNvbnN0X2Nhc3Q8QXNzZXRNYW5hZ2VyKj4odGhpcyktPgotICAgICAgICAgICAgICAgICAgICBtWmlwU2V0LmdldFppcFJlc291cmNlVGFibGUoYXAucGF0aCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoc2hhcmVkUmVzID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBhc3MgPSBjb25zdF9jYXN0PEFzc2V0TWFuYWdlcio+KHRoaXMpLT4KLSAgICAgICAgICAgICAgICAgICAgbVppcFNldC5nZXRaaXBSZXNvdXJjZVRhYmxlQXNzZXQoYXAucGF0aCk7Ci0gICAgICAgICAgICAgICAgaWYgKGFzcyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIEFMT0dWKCJsb2FkaW5nIHJlc291cmNlIHRhYmxlICVzXG4iLCBhcC5wYXRoLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzID0gY29uc3RfY2FzdDxBc3NldE1hbmFnZXIqPih0aGlzKS0+Ci0gICAgICAgICAgICAgICAgICAgICAgICBvcGVuTm9uQXNzZXRJblBhdGhMb2NrZWQoInJlc291cmNlcy5hcnNjIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBc3NldDo6QUNDRVNTX0JVRkZFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhc3MgIT0gTlVMTCAmJiBhc3MgIT0ga0V4Y2x1ZGVkQXNzZXQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzcyA9IGNvbnN0X2Nhc3Q8QXNzZXRNYW5hZ2VyKj4odGhpcyktPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1aaXBTZXQuc2V0WmlwUmVzb3VyY2VUYWJsZUFzc2V0KGFwLnBhdGgsIGFzcyk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAoaSA9PSAwICYmIGFzcyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGZpcnN0IHJlc291cmNlIHRhYmxlIGluIHRoZSBhc3NldAotICAgICAgICAgICAgICAgICAgICAvLyBtYW5hZ2VyLCB0aGVuIHdlIGFyZSBnb2luZyB0byBjYWNoZSBpdCBzbyB0aGF0IHdlCi0gICAgICAgICAgICAgICAgICAgIC8vIGNhbiBxdWlja2x5IGNvcHkgaXQgb3V0IGZvciBvdGhlcnMuCi0gICAgICAgICAgICAgICAgICAgIEFMT0dWKCJDcmVhdGluZyBzaGFyZWQgcmVzb3VyY2VzIGZvciAlcyIsIGFwLnBhdGguc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICBzaGFyZWRSZXMgPSBuZXcgUmVzVGFibGUoKTsKLSAgICAgICAgICAgICAgICAgICAgc2hhcmVkUmVzLT5hZGQoYXNzLCAodm9pZCopKGkrMSksIGZhbHNlLCBpZG1hcCk7Ci0gICAgICAgICAgICAgICAgICAgIHNoYXJlZFJlcyA9IGNvbnN0X2Nhc3Q8QXNzZXRNYW5hZ2VyKj4odGhpcyktPgotICAgICAgICAgICAgICAgICAgICAgICAgbVppcFNldC5zZXRaaXBSZXNvdXJjZVRhYmxlKGFwLnBhdGgsIHNoYXJlZFJlcyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQUxPR1YoImxvYWRpbmcgcmVzb3VyY2UgdGFibGUgJXNcbiIsIGFwLnBhdGguc3RyaW5nKCkpOwotICAgICAgICAgICAgYXNzID0gY29uc3RfY2FzdDxBc3NldE1hbmFnZXIqPih0aGlzKS0+Ci0gICAgICAgICAgICAgICAgb3Blbk5vbkFzc2V0SW5QYXRoTG9ja2VkKCJyZXNvdXJjZXMuYXJzYyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFzc2V0OjpBQ0NFU1NfQlVGRkVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcCk7Ci0gICAgICAgICAgICBzaGFyZWQgPSBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKGFzcyAhPSBOVUxMIHx8IHNoYXJlZFJlcyAhPSBOVUxMKSAmJiBhc3MgIT0ga0V4Y2x1ZGVkQXNzZXQpIHsKLSAgICAgICAgICAgIGlmIChydCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgbVJlc291cmNlcyA9IHJ0ID0gbmV3IFJlc1RhYmxlKCk7Ci0gICAgICAgICAgICAgICAgdXBkYXRlUmVzb3VyY2VQYXJhbXNMb2NrZWQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEFMT0dWKCJJbnN0YWxsaW5nIHJlc291cmNlIGFzc2V0ICVwIGluIHRvIHRhYmxlICVwXG4iLCBhc3MsIG1SZXNvdXJjZXMpOwotICAgICAgICAgICAgaWYgKHNoYXJlZFJlcyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgQUxPR1YoIkNvcHlpbmcgZXhpc3RpbmcgcmVzb3VyY2VzIGZvciAlcyIsIGFwLnBhdGguc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIHJ0LT5hZGQoc2hhcmVkUmVzKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgQUxPR1YoIlBhcnNpbmcgcmVzb3VyY2VzIGZvciAlcyIsIGFwLnBhdGguc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIHJ0LT5hZGQoYXNzLCAodm9pZCopKGkrMSksICFzaGFyZWQsIGlkbWFwKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFzaGFyZWQpIHsKLSAgICAgICAgICAgICAgICBkZWxldGUgYXNzOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChpZG1hcCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBkZWxldGUgaWRtYXA7Ci0gICAgICAgIH0KLSAgICAgICAgTVlfVFJBQ0VfRU5EKCk7Ci0gICAgfQotCi0gICAgaWYgKHJlcXVpcmVkICYmICFydCkgQUxPR1coIlVuYWJsZSB0byBmaW5kIHJlc291cmNlcyBmaWxlIHJlc291cmNlcy5hcnNjIik7Ci0gICAgaWYgKCFydCkgewotICAgICAgICBtUmVzb3VyY2VzID0gcnQgPSBuZXcgUmVzVGFibGUoKTsKLSAgICB9Ci0gICAgcmV0dXJuIHJ0OwotfQotCi12b2lkIEFzc2V0TWFuYWdlcjo6dXBkYXRlUmVzb3VyY2VQYXJhbXNMb2NrZWQoKSBjb25zdAotewotICAgIFJlc1RhYmxlKiByZXMgPSBtUmVzb3VyY2VzOwotICAgIGlmICghcmVzKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBzaXplX3QgbGxlbiA9IG1Mb2NhbGUgPyBzdHJsZW4obUxvY2FsZSkgOiAwOwotICAgIG1Db25maWctPmxhbmd1YWdlWzBdID0gMDsKLSAgICBtQ29uZmlnLT5sYW5ndWFnZVsxXSA9IDA7Ci0gICAgbUNvbmZpZy0+Y291bnRyeVswXSA9IDA7Ci0gICAgbUNvbmZpZy0+Y291bnRyeVsxXSA9IDA7Ci0gICAgaWYgKGxsZW4gPj0gMikgewotICAgICAgICBtQ29uZmlnLT5sYW5ndWFnZVswXSA9IG1Mb2NhbGVbMF07Ci0gICAgICAgIG1Db25maWctPmxhbmd1YWdlWzFdID0gbUxvY2FsZVsxXTsKLSAgICB9Ci0gICAgaWYgKGxsZW4gPj0gNSkgewotICAgICAgICBtQ29uZmlnLT5jb3VudHJ5WzBdID0gbUxvY2FsZVszXTsKLSAgICAgICAgbUNvbmZpZy0+Y291bnRyeVsxXSA9IG1Mb2NhbGVbNF07Ci0gICAgfQotICAgIG1Db25maWctPnNpemUgPSBzaXplb2YoKm1Db25maWcpOwotCi0gICAgcmVzLT5zZXRQYXJhbWV0ZXJzKG1Db25maWcpOwotfQotCi1Bc3NldCogQXNzZXRNYW5hZ2VyOjpvcGVuSWRtYXBMb2NrZWQoY29uc3Qgc3RydWN0IGFzc2V0X3BhdGgmIGFwKSBjb25zdAotewotICAgIEFzc2V0KiBhc3MgPSBOVUxMOwotICAgIGlmIChhcC5pZG1hcC5zaXplKCkgIT0gMCkgewotICAgICAgICBhc3MgPSBjb25zdF9jYXN0PEFzc2V0TWFuYWdlcio+KHRoaXMpLT4KLSAgICAgICAgICAgIG9wZW5Bc3NldEZyb21GaWxlTG9ja2VkKGFwLmlkbWFwLCBBc3NldDo6QUNDRVNTX0JVRkZFUik7Ci0gICAgICAgIGlmIChhc3MpIHsKLSAgICAgICAgICAgIEFMT0dWKCJsb2FkaW5nIGlkbWFwICVzXG4iLCBhcC5pZG1hcC5zdHJpbmcoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBBTE9HVygiZmFpbGVkIHRvIGxvYWQgaWRtYXAgJXNcbiIsIGFwLmlkbWFwLnN0cmluZygpKTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gYXNzOwotfQotCi1jb25zdCBSZXNUYWJsZSYgQXNzZXRNYW5hZ2VyOjpnZXRSZXNvdXJjZXMoYm9vbCByZXF1aXJlZCkgY29uc3QKLXsKLSAgICBjb25zdCBSZXNUYWJsZSogcnQgPSBnZXRSZXNUYWJsZShyZXF1aXJlZCk7Ci0gICAgcmV0dXJuICpydDsKLX0KLQotYm9vbCBBc3NldE1hbmFnZXI6OmlzVXBUb0RhdGUoKQotewotICAgIEF1dG9NdXRleCBfbChtTG9jayk7Ci0gICAgcmV0dXJuIG1aaXBTZXQuaXNVcFRvRGF0ZSgpOwotfQotCi12b2lkIEFzc2V0TWFuYWdlcjo6Z2V0TG9jYWxlcyhWZWN0b3I8U3RyaW5nOD4qIGxvY2FsZXMpIGNvbnN0Ci17Ci0gICAgUmVzVGFibGUqIHJlcyA9IG1SZXNvdXJjZXM7Ci0gICAgaWYgKHJlcyAhPSBOVUxMKSB7Ci0gICAgICAgIHJlcy0+Z2V0TG9jYWxlcyhsb2NhbGVzKTsKLSAgICB9Ci19Ci0KLS8qCi0gKiBPcGVuIGEgbm9uLWFzc2V0IGZpbGUgYXMgaWYgaXQgd2VyZSBhbiBhc3NldCwgc2VhcmNoaW5nIGZvciBpdCBpbiB0aGUKLSAqIHNwZWNpZmllZCBhcHAuCi0gKgotICogUGFzcyBpbiBhIE5VTEwgdmFsdWVzIGZvciAiYXBwTmFtZSIgaWYgdGhlIGNvbW1vbiBhcHAgZGlyZWN0b3J5IHNob3VsZAotICogYmUgdXNlZC4KLSAqLwotQXNzZXQqIEFzc2V0TWFuYWdlcjo6b3Blbk5vbkFzc2V0SW5QYXRoTG9ja2VkKGNvbnN0IGNoYXIqIGZpbGVOYW1lLCBBY2Nlc3NNb2RlIG1vZGUsCi0gICAgY29uc3QgYXNzZXRfcGF0aCYgYXApCi17Ci0gICAgQXNzZXQqIHBBc3NldCA9IE5VTEw7Ci0KLSAgICAvKiBsb29rIGF0IHRoZSBmaWxlc3lzdGVtIG9uIGRpc2sgKi8KLSAgICBpZiAoYXAudHlwZSA9PSBrRmlsZVR5cGVEaXJlY3RvcnkpIHsKLSAgICAgICAgU3RyaW5nOCBwYXRoKGFwLnBhdGgpOwotICAgICAgICBwYXRoLmFwcGVuZFBhdGgoZmlsZU5hbWUpOwotCi0gICAgICAgIHBBc3NldCA9IG9wZW5Bc3NldEZyb21GaWxlTG9ja2VkKHBhdGgsIG1vZGUpOwotCi0gICAgICAgIGlmIChwQXNzZXQgPT0gTlVMTCkgewotICAgICAgICAgICAgLyogdHJ5IGFnYWluLCB0aGlzIHRpbWUgd2l0aCAiLmd6IiAqLwotICAgICAgICAgICAgcGF0aC5hcHBlbmQoIi5neiIpOwotICAgICAgICAgICAgcEFzc2V0ID0gb3BlbkFzc2V0RnJvbUZpbGVMb2NrZWQocGF0aCwgbW9kZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAocEFzc2V0ICE9IE5VTEwpIHsKLSAgICAgICAgICAgIC8vcHJpbnRmKCJGT1VORCBOQSAnJXMnIG9uIGRpc2tcbiIsIGZpbGVOYW1lKTsKLSAgICAgICAgICAgIHBBc3NldC0+c2V0QXNzZXRTb3VyY2UocGF0aCk7Ci0gICAgICAgIH0KLQotICAgIC8qIGxvb2sgaW5zaWRlIHRoZSB6aXAgZmlsZSAqLwotICAgIH0gZWxzZSB7Ci0gICAgICAgIFN0cmluZzggcGF0aChmaWxlTmFtZSk7Ci0KLSAgICAgICAgLyogY2hlY2sgdGhlIGFwcHJvcHJpYXRlIFppcCBmaWxlICovCi0gICAgICAgIFppcEZpbGVSTyogcFppcDsKLSAgICAgICAgWmlwRW50cnlSTyBlbnRyeTsKLQotICAgICAgICBwWmlwID0gZ2V0WmlwRmlsZUxvY2tlZChhcCk7Ci0gICAgICAgIGlmIChwWmlwICE9IE5VTEwpIHsKLSAgICAgICAgICAgIC8vcHJpbnRmKCJHT1QgemlwLCBjaGVja2luZyBOQSAnJXMnXG4iLCAoY29uc3QgY2hhciopIHBhdGgpOwotICAgICAgICAgICAgZW50cnkgPSBwWmlwLT5maW5kRW50cnlCeU5hbWUocGF0aC5zdHJpbmcoKSk7Ci0gICAgICAgICAgICBpZiAoZW50cnkgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIC8vcHJpbnRmKCJGT1VORCBOQSBpbiBaaXAgZmlsZSBmb3IgJXNcbiIsIGFwcE5hbWUgPyBhcHBOYW1lIDoga0FwcENvbW1vbik7Ci0gICAgICAgICAgICAgICAgcEFzc2V0ID0gb3BlbkFzc2V0RnJvbVppcExvY2tlZChwWmlwLCBlbnRyeSwgbW9kZSwgcGF0aCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAocEFzc2V0ICE9IE5VTEwpIHsKLSAgICAgICAgICAgIC8qIGNyZWF0ZSBhICJzb3VyY2UiIG5hbWUsIGZvciBkZWJ1Zy9kaXNwbGF5ICovCi0gICAgICAgICAgICBwQXNzZXQtPnNldEFzc2V0U291cmNlKAotICAgICAgICAgICAgICAgICAgICBjcmVhdGVaaXBTb3VyY2VOYW1lTG9ja2VkKFppcFNldDo6Z2V0UGF0aE5hbWUoYXAucGF0aC5zdHJpbmcoKSksIFN0cmluZzgoIiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChmaWxlTmFtZSkpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBwQXNzZXQ7Ci19Ci0KLS8qCi0gKiBPcGVuIGFuIGFzc2V0LCBzZWFyY2hpbmcgZm9yIGl0IGluIHRoZSBkaXJlY3RvcnkgaGllcmFyY2h5IGZvciB0aGUKLSAqIHNwZWNpZmllZCBhcHAuCi0gKgotICogUGFzcyBpbiBhIE5VTEwgdmFsdWVzIGZvciAiYXBwTmFtZSIgaWYgdGhlIGNvbW1vbiBhcHAgZGlyZWN0b3J5IHNob3VsZAotICogYmUgdXNlZC4KLSAqLwotQXNzZXQqIEFzc2V0TWFuYWdlcjo6b3BlbkluUGF0aExvY2tlZChjb25zdCBjaGFyKiBmaWxlTmFtZSwgQWNjZXNzTW9kZSBtb2RlLAotICAgIGNvbnN0IGFzc2V0X3BhdGgmIGFwKQotewotICAgIEFzc2V0KiBwQXNzZXQgPSBOVUxMOwotCi0gICAgLyoKLSAgICAgKiBUcnkgdmFyaW91cyBjb21iaW5hdGlvbnMgb2YgbG9jYWxlIGFuZCB2ZW5kb3IuCi0gICAgICovCi0gICAgaWYgKG1Mb2NhbGUgIT0gTlVMTCAmJiBtVmVuZG9yICE9IE5VTEwpCi0gICAgICAgIHBBc3NldCA9IG9wZW5JbkxvY2FsZVZlbmRvckxvY2tlZChmaWxlTmFtZSwgbW9kZSwgYXAsIG1Mb2NhbGUsIG1WZW5kb3IpOwotICAgIGlmIChwQXNzZXQgPT0gTlVMTCAmJiBtVmVuZG9yICE9IE5VTEwpCi0gICAgICAgIHBBc3NldCA9IG9wZW5JbkxvY2FsZVZlbmRvckxvY2tlZChmaWxlTmFtZSwgbW9kZSwgYXAsIE5VTEwsIG1WZW5kb3IpOwotICAgIGlmIChwQXNzZXQgPT0gTlVMTCAmJiBtTG9jYWxlICE9IE5VTEwpCi0gICAgICAgIHBBc3NldCA9IG9wZW5JbkxvY2FsZVZlbmRvckxvY2tlZChmaWxlTmFtZSwgbW9kZSwgYXAsIG1Mb2NhbGUsIE5VTEwpOwotICAgIGlmIChwQXNzZXQgPT0gTlVMTCkKLSAgICAgICAgcEFzc2V0ID0gb3BlbkluTG9jYWxlVmVuZG9yTG9ja2VkKGZpbGVOYW1lLCBtb2RlLCBhcCwgTlVMTCwgTlVMTCk7Ci0KLSAgICByZXR1cm4gcEFzc2V0OwotfQotCi0vKgotICogT3BlbiBhbiBhc3NldCwgc2VhcmNoaW5nIGZvciBpdCBpbiB0aGUgZGlyZWN0b3J5IGhpZXJhcmNoeSBmb3IgdGhlCi0gKiBzcGVjaWZpZWQgbG9jYWxlIGFuZCB2ZW5kb3IuCi0gKgotICogV2UgYWxzbyBzZWFyY2ggaW4gImFwcC5qYXIiLgotICoKLSAqIFBhc3MgaW4gTlVMTCB2YWx1ZXMgZm9yICJhcHBOYW1lIiwgImxvY2FsZSIsIGFuZCAidmVuZG9yIiBpZiB0aGUKLSAqIGRlZmF1bHRzIHNob3VsZCBiZSB1c2VkLgotICovCi1Bc3NldCogQXNzZXRNYW5hZ2VyOjpvcGVuSW5Mb2NhbGVWZW5kb3JMb2NrZWQoY29uc3QgY2hhciogZmlsZU5hbWUsIEFjY2Vzc01vZGUgbW9kZSwKLSAgICBjb25zdCBhc3NldF9wYXRoJiBhcCwgY29uc3QgY2hhciogbG9jYWxlLCBjb25zdCBjaGFyKiB2ZW5kb3IpCi17Ci0gICAgQXNzZXQqIHBBc3NldCA9IE5VTEw7Ci0KLSAgICBpZiAoYXAudHlwZSA9PSBrRmlsZVR5cGVEaXJlY3RvcnkpIHsKLSAgICAgICAgaWYgKG1DYWNoZU1vZGUgPT0gQ0FDSEVfT0ZGKSB7Ci0gICAgICAgICAgICAvKiBsb29rIGF0IHRoZSBmaWxlc3lzdGVtIG9uIGRpc2sgKi8KLSAgICAgICAgICAgIFN0cmluZzggcGF0aChjcmVhdGVQYXRoTmFtZUxvY2tlZChhcCwgbG9jYWxlLCB2ZW5kb3IpKTsKLSAgICAgICAgICAgIHBhdGguYXBwZW5kUGF0aChmaWxlTmFtZSk7Ci0KLSAgICAgICAgICAgIFN0cmluZzggZXhjbHVkZU5hbWUocGF0aCk7Ci0gICAgICAgICAgICBleGNsdWRlTmFtZS5hcHBlbmQoa0V4Y2x1ZGVFeHRlbnNpb24pOwotICAgICAgICAgICAgaWYgKDo6Z2V0RmlsZVR5cGUoZXhjbHVkZU5hbWUuc3RyaW5nKCkpICE9IGtGaWxlVHlwZU5vbmV4aXN0ZW50KSB7Ci0gICAgICAgICAgICAgICAgLyogc2F5IG5vIG1vcmUgKi8KLSAgICAgICAgICAgICAgICAvL3ByaW50ZigiKysrIGV4Y2x1ZGluZyAnJXMnXG4iLCAoY29uc3QgY2hhciopIGV4Y2x1ZGVOYW1lKTsKLSAgICAgICAgICAgICAgICByZXR1cm4ga0V4Y2x1ZGVkQXNzZXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHBBc3NldCA9IG9wZW5Bc3NldEZyb21GaWxlTG9ja2VkKHBhdGgsIG1vZGUpOwotCi0gICAgICAgICAgICBpZiAocEFzc2V0ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAvKiB0cnkgYWdhaW4sIHRoaXMgdGltZSB3aXRoICIuZ3oiICovCi0gICAgICAgICAgICAgICAgcGF0aC5hcHBlbmQoIi5neiIpOwotICAgICAgICAgICAgICAgIHBBc3NldCA9IG9wZW5Bc3NldEZyb21GaWxlTG9ja2VkKHBhdGgsIG1vZGUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAocEFzc2V0ICE9IE5VTEwpCi0gICAgICAgICAgICAgICAgcEFzc2V0LT5zZXRBc3NldFNvdXJjZShwYXRoKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8qIGZpbmQgaW4gY2FjaGUgKi8KLSAgICAgICAgICAgIFN0cmluZzggcGF0aChjcmVhdGVQYXRoTmFtZUxvY2tlZChhcCwgbG9jYWxlLCB2ZW5kb3IpKTsKLSAgICAgICAgICAgIHBhdGguYXBwZW5kUGF0aChmaWxlTmFtZSk7Ci0KLSAgICAgICAgICAgIEFzc2V0RGlyOjpGaWxlSW5mbyB0bXBJbmZvOwotICAgICAgICAgICAgYm9vbCBmb3VuZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBTdHJpbmc4IGV4Y2x1ZGVOYW1lKHBhdGgpOwotICAgICAgICAgICAgZXhjbHVkZU5hbWUuYXBwZW5kKGtFeGNsdWRlRXh0ZW5zaW9uKTsKLQotICAgICAgICAgICAgaWYgKG1DYWNoZS5pbmRleE9mKGV4Y2x1ZGVOYW1lKSAhPSBOQU1FX05PVF9GT1VORCkgewotICAgICAgICAgICAgICAgIC8qIGdvIG5vIGZhcnRoZXIgKi8KLSAgICAgICAgICAgICAgICAvL3ByaW50ZigiKysrIEV4Y2x1ZGluZyAnJXMnXG4iLCAoY29uc3QgY2hhciopIGV4Y2x1ZGVOYW1lKTsKLSAgICAgICAgICAgICAgICByZXR1cm4ga0V4Y2x1ZGVkQXNzZXQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBGaWxlIGNvbXByZXNzaW9uIGV4dGVuc2lvbnMgKCIuZ3oiKSBkb24ndCBnZXQgc3RvcmVkIGluIHRoZQotICAgICAgICAgICAgICogbmFtZSBjYWNoZSwgc28gd2UgaGF2ZSB0byB0cnkgYm90aCBoZXJlLgotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBpZiAobUNhY2hlLmluZGV4T2YocGF0aCkgIT0gTkFNRV9OT1RfRk9VTkQpIHsKLSAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgcEFzc2V0ID0gb3BlbkFzc2V0RnJvbUZpbGVMb2NrZWQocGF0aCwgbW9kZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHBBc3NldCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8qIHRyeSBhZ2FpbiwgdGhpcyB0aW1lIHdpdGggIi5neiIgKi8KLSAgICAgICAgICAgICAgICAgICAgcGF0aC5hcHBlbmQoIi5neiIpOwotICAgICAgICAgICAgICAgICAgICBwQXNzZXQgPSBvcGVuQXNzZXRGcm9tRmlsZUxvY2tlZChwYXRoLCBtb2RlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChwQXNzZXQgIT0gTlVMTCkKLSAgICAgICAgICAgICAgICBwQXNzZXQtPnNldEFzc2V0U291cmNlKHBhdGgpOwotCi0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICogRG9uJ3QgY29udGludWUgdGhlIHNlYXJjaCBpbnRvIHRoZSBaaXAgZmlsZXMuICBPdXIgY2FjaGVkIGluZm8KLSAgICAgICAgICAgICAqIHNhaWQgaXQgd2FzIGEgZmlsZSBvbiBkaXNrOyB0byBiZSBjb25zaXN0ZW50IHdpdGggb3BlbkRpcigpCi0gICAgICAgICAgICAgKiB3ZSB3YW50IHRvIHJldHVybiB0aGUgbG9vc2UgYXNzZXQuICBJZiB0aGUgY2FjaGVkIGZpbGUgZ2V0cwotICAgICAgICAgICAgICogcmVtb3ZlZCwgd2UgZmFpbC4KLSAgICAgICAgICAgICAqCi0gICAgICAgICAgICAgKiBUaGUgYWx0ZXJuYXRpdmUgaXMgdG8gdXBkYXRlIG91ciBjYWNoZSB3aGVuIGZpbGVzIGdldCBkZWxldGVkLAotICAgICAgICAgICAgICogb3IgbWFrZSBzb21lIHNvcnQgb2YgImJlc3QgZWZmb3J0IiBwcm9taXNlLCBidXQgZm9yIG5vdyBJJ20KLSAgICAgICAgICAgICAqIHRha2luZyB0aGUgaGFyZCBsaW5lLgotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBpZiAoZm91bmQpIHsKLSAgICAgICAgICAgICAgICBpZiAocEFzc2V0ID09IE5VTEwpCi0gICAgICAgICAgICAgICAgICAgIEFMT0dEKCJFeHBlY3RlZCBmaWxlIG5vdCBmb3VuZDogJyVzJ1xuIiwgcGF0aC5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHBBc3NldDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qCi0gICAgICogRWl0aGVyIGl0IHdhc24ndCBmb3VuZCBvbiBkaXNrIG9yIG9uIHRoZSBjYWNoZWQgdmlldyBvZiB0aGUgZGlzay4KLSAgICAgKiBEaWcgdGhyb3VnaCB0aGUgY3VycmVudGx5LW9wZW5lZCBzZXQgb2YgWmlwIGZpbGVzLiAgSWYgY2FjaGluZwotICAgICAqIGlzIGRpc2FibGVkLCB0aGUgWmlwIGZpbGUgbWF5IGdldCByZW9wZW5lZC4KLSAgICAgKi8KLSAgICBpZiAocEFzc2V0ID09IE5VTEwgJiYgYXAudHlwZSA9PSBrRmlsZVR5cGVSZWd1bGFyKSB7Ci0gICAgICAgIFN0cmluZzggcGF0aDsKLQotICAgICAgICBwYXRoLmFwcGVuZFBhdGgoKGxvY2FsZSAhPSBOVUxMKSA/IGxvY2FsZSA6IGtEZWZhdWx0TG9jYWxlKTsKLSAgICAgICAgcGF0aC5hcHBlbmRQYXRoKCh2ZW5kb3IgIT0gTlVMTCkgPyB2ZW5kb3IgOiBrRGVmYXVsdFZlbmRvcik7Ci0gICAgICAgIHBhdGguYXBwZW5kUGF0aChmaWxlTmFtZSk7Ci0KLSAgICAgICAgLyogY2hlY2sgdGhlIGFwcHJvcHJpYXRlIFppcCBmaWxlICovCi0gICAgICAgIFppcEZpbGVSTyogcFppcDsKLSAgICAgICAgWmlwRW50cnlSTyBlbnRyeTsKLQotICAgICAgICBwWmlwID0gZ2V0WmlwRmlsZUxvY2tlZChhcCk7Ci0gICAgICAgIGlmIChwWmlwICE9IE5VTEwpIHsKLSAgICAgICAgICAgIC8vcHJpbnRmKCJHT1QgemlwLCBjaGVja2luZyAnJXMnXG4iLCAoY29uc3QgY2hhciopIHBhdGgpOwotICAgICAgICAgICAgZW50cnkgPSBwWmlwLT5maW5kRW50cnlCeU5hbWUocGF0aC5zdHJpbmcoKSk7Ci0gICAgICAgICAgICBpZiAoZW50cnkgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIC8vcHJpbnRmKCJGT1VORCBpbiBaaXAgZmlsZSBmb3IgJXMvJXMtJXNcbiIsCi0gICAgICAgICAgICAgICAgLy8gICAgYXBwTmFtZSwgbG9jYWxlLCB2ZW5kb3IpOwotICAgICAgICAgICAgICAgIHBBc3NldCA9IG9wZW5Bc3NldEZyb21aaXBMb2NrZWQocFppcCwgZW50cnksIG1vZGUsIHBhdGgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHBBc3NldCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAvKiBjcmVhdGUgYSAic291cmNlIiBuYW1lLCBmb3IgZGVidWcvZGlzcGxheSAqLwotICAgICAgICAgICAgcEFzc2V0LT5zZXRBc3NldFNvdXJjZShjcmVhdGVaaXBTb3VyY2VOYW1lTG9ja2VkKFppcFNldDo6Z2V0UGF0aE5hbWUoYXAucGF0aC5zdHJpbmcoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCgiIiksIFN0cmluZzgoZmlsZU5hbWUpKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gcEFzc2V0OwotfQotCi0vKgotICogQ3JlYXRlIGEgInNvdXJjZSBuYW1lIiBmb3IgYSBmaWxlIGZyb20gYSBaaXAgYXJjaGl2ZS4KLSAqLwotU3RyaW5nOCBBc3NldE1hbmFnZXI6OmNyZWF0ZVppcFNvdXJjZU5hbWVMb2NrZWQoY29uc3QgU3RyaW5nOCYgemlwRmlsZU5hbWUsCi0gICAgY29uc3QgU3RyaW5nOCYgZGlyTmFtZSwgY29uc3QgU3RyaW5nOCYgZmlsZU5hbWUpCi17Ci0gICAgU3RyaW5nOCBzb3VyY2VOYW1lKCJ6aXA6Iik7Ci0gICAgc291cmNlTmFtZS5hcHBlbmQoemlwRmlsZU5hbWUpOwotICAgIHNvdXJjZU5hbWUuYXBwZW5kKCI6Iik7Ci0gICAgaWYgKGRpck5hbWUubGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgIHNvdXJjZU5hbWUuYXBwZW5kUGF0aChkaXJOYW1lKTsKLSAgICB9Ci0gICAgc291cmNlTmFtZS5hcHBlbmRQYXRoKGZpbGVOYW1lKTsKLSAgICByZXR1cm4gc291cmNlTmFtZTsKLX0KLQotLyoKLSAqIENyZWF0ZSBhIHBhdGggdG8gYSBsb29zZSBhc3NldCAoYXNzZXQtYmFzZS9hcHAvbG9jYWxlL3ZlbmRvcikuCi0gKi8KLVN0cmluZzggQXNzZXRNYW5hZ2VyOjpjcmVhdGVQYXRoTmFtZUxvY2tlZChjb25zdCBhc3NldF9wYXRoJiBhcCwgY29uc3QgY2hhciogbG9jYWxlLAotICAgIGNvbnN0IGNoYXIqIHZlbmRvcikKLXsKLSAgICBTdHJpbmc4IHBhdGgoYXAucGF0aCk7Ci0gICAgcGF0aC5hcHBlbmRQYXRoKChsb2NhbGUgIT0gTlVMTCkgPyBsb2NhbGUgOiBrRGVmYXVsdExvY2FsZSk7Ci0gICAgcGF0aC5hcHBlbmRQYXRoKCh2ZW5kb3IgIT0gTlVMTCkgPyB2ZW5kb3IgOiBrRGVmYXVsdFZlbmRvcik7Ci0gICAgcmV0dXJuIHBhdGg7Ci19Ci0KLS8qCi0gKiBDcmVhdGUgYSBwYXRoIHRvIGEgbG9vc2UgYXNzZXQgKGFzc2V0LWJhc2UvYXBwL3Jvb3REaXIpLgotICovCi1TdHJpbmc4IEFzc2V0TWFuYWdlcjo6Y3JlYXRlUGF0aE5hbWVMb2NrZWQoY29uc3QgYXNzZXRfcGF0aCYgYXAsIGNvbnN0IGNoYXIqIHJvb3REaXIpCi17Ci0gICAgU3RyaW5nOCBwYXRoKGFwLnBhdGgpOwotICAgIGlmIChyb290RGlyICE9IE5VTEwpIHBhdGguYXBwZW5kUGF0aChyb290RGlyKTsKLSAgICByZXR1cm4gcGF0aDsKLX0KLQotLyoKLSAqIFJldHVybiBhIHBvaW50ZXIgdG8gb25lIG9mIG91ciBvcGVuIFppcCBhcmNoaXZlcy4gIFJldHVybnMgTlVMTCBpZiBubwotICogbWF0Y2hpbmcgWmlwIGZpbGUgZXhpc3RzLgotICoKLSAqIFJpZ2h0IG5vdyB3ZSBoYXZlIDIgcG9zc2libGUgWmlwIGZpbGVzICgxIGVhY2ggaW4gYXBwLyJjb21tb24iKS4KLSAqCi0gKiBJZiBjYWNoaW5nIGlzIHNldCB0byBDQUNIRV9PRkYsIHRvIGdldCB0aGUgZXhwZWN0ZWQgYmVoYXZpb3Igd2UKLSAqIG5lZWQgdG8gcmVvcGVuIHRoZSBaaXAgZmlsZSBvbiBldmVyeSByZXF1ZXN0LiAgVGhhdCB3b3VsZCBiZSBzaWxseQotICogYW5kIGV4cGVuc2l2ZSwgc28gaW5zdGVhZCB3ZSBqdXN0IGNoZWNrIHRoZSBmaWxlIG1vZGlmaWNhdGlvbiBkYXRlLgotICoKLSAqIFBhc3MgaW4gTlVMTCB2YWx1ZXMgZm9yICJhcHBOYW1lIiwgImxvY2FsZSIsIGFuZCAidmVuZG9yIiBpZiB0aGUKLSAqIGdlbmVyaWNzIHNob3VsZCBiZSB1c2VkLgotICovCi1aaXBGaWxlUk8qIEFzc2V0TWFuYWdlcjo6Z2V0WmlwRmlsZUxvY2tlZChjb25zdCBhc3NldF9wYXRoJiBhcCkKLXsKLSAgICBBTE9HVigiZ2V0WmlwRmlsZUxvY2tlZCgpIGluICVwXG4iLCB0aGlzKTsKLQotICAgIHJldHVybiBtWmlwU2V0LmdldFppcChhcC5wYXRoKTsKLX0KLQotLyoKLSAqIFRyeSB0byBvcGVuIGFuIGFzc2V0IGZyb20gYSBmaWxlIG9uIGRpc2suCi0gKgotICogSWYgdGhlIGZpbGUgaXMgY29tcHJlc3NlZCB3aXRoIGd6aXAsIHdlIHNlZWsgdG8gdGhlIHN0YXJ0IG9mIHRoZQotICogZGVmbGF0ZWQgZGF0YSBhbmQgcGFzcyB0aGF0IGluIChqdXN0IGxpa2Ugd2Ugd291bGQgZm9yIGEgWmlwIGFyY2hpdmUpLgotICoKLSAqIEZvciB1bmNvbXByZXNzZWQgZGF0YSwgd2UgbWF5IGFscmVhZHkgaGF2ZSBhbiBtbWFwKCllZCB2ZXJzaW9uIHNpdHRpbmcKLSAqIGFyb3VuZC4gIElmIHNvLCB3ZSB3YW50IHRvIGhhbmQgdGhhdCB0byB0aGUgQXNzZXQgaW5zdGVhZC4KLSAqCi0gKiBUaGlzIHJldHVybnMgTlVMTCBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0LCBjb3VsZG4ndCBiZSBvcGVuZWQsIG9yCi0gKiBjbGFpbXMgdG8gYmUgYSAiLmd6IiBidXQgaXNuJ3QuCi0gKi8KLUFzc2V0KiBBc3NldE1hbmFnZXI6Om9wZW5Bc3NldEZyb21GaWxlTG9ja2VkKGNvbnN0IFN0cmluZzgmIHBhdGhOYW1lLAotICAgIEFjY2Vzc01vZGUgbW9kZSkKLXsKLSAgICBBc3NldCogcEFzc2V0ID0gTlVMTDsKLQotICAgIGlmIChzdHJjYXNlY21wKHBhdGhOYW1lLmdldFBhdGhFeHRlbnNpb24oKS5zdHJpbmcoKSwgIi5neiIpID09IDApIHsKLSAgICAgICAgLy9wcmludGYoIlRSWUlORyAnJXMnXG4iLCAoY29uc3QgY2hhciopIHBhdGhOYW1lKTsKLSAgICAgICAgcEFzc2V0ID0gQXNzZXQ6OmNyZWF0ZUZyb21Db21wcmVzc2VkRmlsZShwYXRoTmFtZS5zdHJpbmcoKSwgbW9kZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy9wcmludGYoIlRSWUlORyAnJXMnXG4iLCAoY29uc3QgY2hhciopIHBhdGhOYW1lKTsKLSAgICAgICAgcEFzc2V0ID0gQXNzZXQ6OmNyZWF0ZUZyb21GaWxlKHBhdGhOYW1lLnN0cmluZygpLCBtb2RlKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcEFzc2V0OwotfQotCi0vKgotICogR2l2ZW4gYW4gZW50cnkgaW4gYSBaaXAgYXJjaGl2ZSwgY3JlYXRlIGEgbmV3IEFzc2V0IG9iamVjdC4KLSAqCi0gKiBJZiB0aGUgZW50cnkgaXMgdW5jb21wcmVzc2VkLCB3ZSBtYXkgd2FudCB0byBjcmVhdGUgb3Igc2hhcmUgYQotICogc2xpY2Ugb2Ygc2hhcmVkIG1lbW9yeS4KLSAqLwotQXNzZXQqIEFzc2V0TWFuYWdlcjo6b3BlbkFzc2V0RnJvbVppcExvY2tlZChjb25zdCBaaXBGaWxlUk8qIHBaaXBGaWxlLAotICAgIGNvbnN0IFppcEVudHJ5Uk8gZW50cnksIEFjY2Vzc01vZGUgbW9kZSwgY29uc3QgU3RyaW5nOCYgZW50cnlOYW1lKQotewotICAgIEFzc2V0KiBwQXNzZXQgPSBOVUxMOwotCi0gICAgLy8gVE9ETzogbG9vayBmb3IgcHJldmlvdXNseS1jcmVhdGVkIHNoYXJlZCBtZW1vcnkgc2xpY2U/Ci0gICAgaW50IG1ldGhvZDsKLSAgICBzaXplX3QgdW5jb21wcmVzc2VkTGVuOwotCi0gICAgLy9wcmludGYoIlVTSU5HIFppcCAnJXMnXG4iLCBwRW50cnktPmdldEZpbGVOYW1lKCkpOwotCi0gICAgLy9wWmlwRmlsZS0+Z2V0RW50cnlJbmZvKGVudHJ5LCAmbWV0aG9kLCAmdW5jb21wcmVzc2VkTGVuLCAmY29tcHJlc3NlZExlbiwKLSAgICAvLyAgICAmb2Zmc2V0KTsKLSAgICBpZiAoIXBaaXBGaWxlLT5nZXRFbnRyeUluZm8oZW50cnksICZtZXRob2QsICZ1bmNvbXByZXNzZWRMZW4sIE5VTEwsIE5VTEwsCi0gICAgICAgICAgICBOVUxMLCBOVUxMKSkKLSAgICB7Ci0gICAgICAgIEFMT0dXKCJnZXRFbnRyeUluZm8gZmFpbGVkXG4iKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgRmlsZU1hcCogZGF0YU1hcCA9IHBaaXBGaWxlLT5jcmVhdGVFbnRyeUZpbGVNYXAoZW50cnkpOwotICAgIGlmIChkYXRhTWFwID09IE5VTEwpIHsKLSAgICAgICAgQUxPR1coImNyZWF0ZSBtYXAgZnJvbSBlbnRyeSBmYWlsZWRcbiIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICBpZiAobWV0aG9kID09IFppcEZpbGVSTzo6a0NvbXByZXNzU3RvcmVkKSB7Ci0gICAgICAgIHBBc3NldCA9IEFzc2V0OjpjcmVhdGVGcm9tVW5jb21wcmVzc2VkTWFwKGRhdGFNYXAsIG1vZGUpOwotICAgICAgICBBTE9HVigiT3BlbmVkIHVuY29tcHJlc3NlZCBlbnRyeSAlcyBpbiB6aXAgJXMgbW9kZSAlZDogJXAiLCBlbnRyeU5hbWUuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgZGF0YU1hcC0+Z2V0RmlsZU5hbWUoKSwgbW9kZSwgcEFzc2V0KTsKLSAgICB9IGVsc2UgewotICAgICAgICBwQXNzZXQgPSBBc3NldDo6Y3JlYXRlRnJvbUNvbXByZXNzZWRNYXAoZGF0YU1hcCwgbWV0aG9kLAotICAgICAgICAgICAgdW5jb21wcmVzc2VkTGVuLCBtb2RlKTsKLSAgICAgICAgQUxPR1YoIk9wZW5lZCBjb21wcmVzc2VkIGVudHJ5ICVzIGluIHppcCAlcyBtb2RlICVkOiAlcCIsIGVudHJ5TmFtZS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICBkYXRhTWFwLT5nZXRGaWxlTmFtZSgpLCBtb2RlLCBwQXNzZXQpOwotICAgIH0KLSAgICBpZiAocEFzc2V0ID09IE5VTEwpIHsKLSAgICAgICAgLyogdW5leHBlY3RlZCAqLwotICAgICAgICBBTE9HVygiY3JlYXRlIGZyb20gc2VnbWVudCBmYWlsZWRcbiIpOwotICAgIH0KLQotICAgIHJldHVybiBwQXNzZXQ7Ci19Ci0KLQotCi0vKgotICogT3BlbiBhIGRpcmVjdG9yeSBpbiB0aGUgYXNzZXQgbmFtZXNwYWNlLgotICoKLSAqIEFuICJhc3NldCBkaXJlY3RvcnkiIGlzIHNpbXBseSB0aGUgY29tYmluYXRpb24gb2YgYWxsIGZpbGVzIGluIGFsbAotICogbG9jYXRpb25zLCB3aXRoICIuZ3oiIHN0cmlwcGVkIGZvciBsb29zZSBmaWxlcy4gIFdpdGggYXBwLCBsb2NhbGUsIGFuZAotICogdmVuZG9yIGRlZmluZWQsIHdlIGhhdmUgOCBkaXJlY3RvcmllcyBhbmQgMiBaaXAgYXJjaGl2ZXMgdG8gc2Nhbi4KLSAqCi0gKiBQYXNzIGluICIiIGZvciB0aGUgcm9vdCBkaXIuCi0gKi8KLUFzc2V0RGlyKiBBc3NldE1hbmFnZXI6Om9wZW5EaXIoY29uc3QgY2hhciogZGlyTmFtZSkKLXsKLSAgICBBdXRvTXV0ZXggX2wobUxvY2spOwotCi0gICAgQXNzZXREaXIqIHBEaXIgPSBOVUxMOwotICAgIFNvcnRlZFZlY3RvcjxBc3NldERpcjo6RmlsZUluZm8+KiBwTWVyZ2VkSW5mbyA9IE5VTEw7Ci0KLSAgICBMT0dfRkFUQUxfSUYobUFzc2V0UGF0aHMuc2l6ZSgpID09IDAsICJObyBhc3NldHMgYWRkZWQgdG8gQXNzZXRNYW5hZ2VyIik7Ci0gICAgYXNzZXJ0KGRpck5hbWUgIT0gTlVMTCk7Ci0KLSAgICAvL3ByaW50ZigiKysrIG9wZW5EaXIoJXMpIGluICclcydcbiIsIGRpck5hbWUsIChjb25zdCBjaGFyKikgbUFzc2V0QmFzZSk7Ci0KLSAgICBpZiAobUNhY2hlTW9kZSAhPSBDQUNIRV9PRkYgJiYgIW1DYWNoZVZhbGlkKQotICAgICAgICBsb2FkRmlsZU5hbWVDYWNoZUxvY2tlZCgpOwotCi0gICAgcERpciA9IG5ldyBBc3NldERpcjsKLQotICAgIC8qCi0gICAgICogU2NhbiB0aGUgdmFyaW91cyBkaXJlY3RvcmllcywgbWVyZ2luZyB3aGF0IHdlIGZpbmQgaW50byBhIHNpbmdsZQotICAgICAqIHZlY3Rvci4gIFdlIHdhbnQgdG8gc2NhbiB0aGVtIGluIHJldmVyc2UgcHJpb3JpdHkgb3JkZXIgc28gdGhhdAotICAgICAqIHRoZSAiLkVYQ0xVREUiIHByb2Nlc3Npbmcgd29ya3MgY29ycmVjdGx5LiAgQWxzbywgaWYgd2UgZGVjaWRlIHdlCi0gICAgICogd2FudCB0byByZW1lbWJlciB3aGVyZSB0aGUgZmlsZSBpcyBjb21pbmcgZnJvbSwgd2UnbGwgZ2V0IHRoZSByaWdodAotICAgICAqIHZlcnNpb24uCi0gICAgICoKLSAgICAgKiBXZSBzdGFydCB3aXRoIFppcCBhcmNoaXZlcywgdGhlbiBkbyBsb29zZSBmaWxlcy4KLSAgICAgKi8KLSAgICBwTWVyZ2VkSW5mbyA9IG5ldyBTb3J0ZWRWZWN0b3I8QXNzZXREaXI6OkZpbGVJbmZvPjsKLQotICAgIHNpemVfdCBpID0gbUFzc2V0UGF0aHMuc2l6ZSgpOwotICAgIHdoaWxlIChpID4gMCkgewotICAgICAgICBpLS07Ci0gICAgICAgIGNvbnN0IGFzc2V0X3BhdGgmIGFwID0gbUFzc2V0UGF0aHMuaXRlbUF0KGkpOwotICAgICAgICBpZiAoYXAudHlwZSA9PSBrRmlsZVR5cGVSZWd1bGFyKSB7Ci0gICAgICAgICAgICBBTE9HVigiQWRkaW5nIGRpcmVjdG9yeSAlcyBmcm9tIHppcCAlcyIsIGRpck5hbWUsIGFwLnBhdGguc3RyaW5nKCkpOwotICAgICAgICAgICAgc2NhbkFuZE1lcmdlWmlwTG9ja2VkKHBNZXJnZWRJbmZvLCBhcCwga0Fzc2V0c1Jvb3QsIGRpck5hbWUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQUxPR1YoIkFkZGluZyBkaXJlY3RvcnkgJXMgZnJvbSBkaXIgJXMiLCBkaXJOYW1lLCBhcC5wYXRoLnN0cmluZygpKTsKLSAgICAgICAgICAgIHNjYW5BbmRNZXJnZURpckxvY2tlZChwTWVyZ2VkSW5mbywgYXAsIGtBc3NldHNSb290LCBkaXJOYW1lKTsKLSAgICAgICAgfQotICAgIH0KLQotI2lmIDAKLSAgICBwcmludGYoIkZJTEUgTElTVDpcbiIpOwotICAgIGZvciAoaSA9IDA7IGkgPCAoc2l6ZV90KSBwTWVyZ2VkSW5mby0+c2l6ZSgpOyBpKyspIHsKLSAgICAgICAgcHJpbnRmKCIgJWQ6ICglZCkgJyVzJ1xuIiwgaSwKLSAgICAgICAgICAgIHBNZXJnZWRJbmZvLT5pdGVtQXQoaSkuZ2V0RmlsZVR5cGUoKSwKLSAgICAgICAgICAgIChjb25zdCBjaGFyKikgcE1lcmdlZEluZm8tPml0ZW1BdChpKS5nZXRGaWxlTmFtZSgpKTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHBEaXItPnNldEZpbGVMaXN0KHBNZXJnZWRJbmZvKTsKLSAgICByZXR1cm4gcERpcjsKLX0KLQotLyoKLSAqIE9wZW4gYSBkaXJlY3RvcnkgaW4gdGhlIG5vbi1hc3NldCBuYW1lc3BhY2UuCi0gKgotICogQW4gImFzc2V0IGRpcmVjdG9yeSIgaXMgc2ltcGx5IHRoZSBjb21iaW5hdGlvbiBvZiBhbGwgZmlsZXMgaW4gYWxsCi0gKiBsb2NhdGlvbnMsIHdpdGggIi5neiIgc3RyaXBwZWQgZm9yIGxvb3NlIGZpbGVzLiAgV2l0aCBhcHAsIGxvY2FsZSwgYW5kCi0gKiB2ZW5kb3IgZGVmaW5lZCwgd2UgaGF2ZSA4IGRpcmVjdG9yaWVzIGFuZCAyIFppcCBhcmNoaXZlcyB0byBzY2FuLgotICoKLSAqIFBhc3MgaW4gIiIgZm9yIHRoZSByb290IGRpci4KLSAqLwotQXNzZXREaXIqIEFzc2V0TWFuYWdlcjo6b3Blbk5vbkFzc2V0RGlyKHZvaWQqIGNvb2tpZSwgY29uc3QgY2hhciogZGlyTmFtZSkKLXsKLSAgICBBdXRvTXV0ZXggX2wobUxvY2spOwotCi0gICAgQXNzZXREaXIqIHBEaXIgPSBOVUxMOwotICAgIFNvcnRlZFZlY3RvcjxBc3NldERpcjo6RmlsZUluZm8+KiBwTWVyZ2VkSW5mbyA9IE5VTEw7Ci0KLSAgICBMT0dfRkFUQUxfSUYobUFzc2V0UGF0aHMuc2l6ZSgpID09IDAsICJObyBhc3NldHMgYWRkZWQgdG8gQXNzZXRNYW5hZ2VyIik7Ci0gICAgYXNzZXJ0KGRpck5hbWUgIT0gTlVMTCk7Ci0KLSAgICAvL3ByaW50ZigiKysrIG9wZW5EaXIoJXMpIGluICclcydcbiIsIGRpck5hbWUsIChjb25zdCBjaGFyKikgbUFzc2V0QmFzZSk7Ci0KLSAgICBpZiAobUNhY2hlTW9kZSAhPSBDQUNIRV9PRkYgJiYgIW1DYWNoZVZhbGlkKQotICAgICAgICBsb2FkRmlsZU5hbWVDYWNoZUxvY2tlZCgpOwotCi0gICAgcERpciA9IG5ldyBBc3NldERpcjsKLQotICAgIHBNZXJnZWRJbmZvID0gbmV3IFNvcnRlZFZlY3RvcjxBc3NldERpcjo6RmlsZUluZm8+OwotCi0gICAgY29uc3Qgc2l6ZV90IHdoaWNoID0gKChzaXplX3QpY29va2llKS0xOwotCi0gICAgaWYgKHdoaWNoIDwgbUFzc2V0UGF0aHMuc2l6ZSgpKSB7Ci0gICAgICAgIGNvbnN0IGFzc2V0X3BhdGgmIGFwID0gbUFzc2V0UGF0aHMuaXRlbUF0KHdoaWNoKTsKLSAgICAgICAgaWYgKGFwLnR5cGUgPT0ga0ZpbGVUeXBlUmVndWxhcikgewotICAgICAgICAgICAgQUxPR1YoIkFkZGluZyBkaXJlY3RvcnkgJXMgZnJvbSB6aXAgJXMiLCBkaXJOYW1lLCBhcC5wYXRoLnN0cmluZygpKTsKLSAgICAgICAgICAgIHNjYW5BbmRNZXJnZVppcExvY2tlZChwTWVyZ2VkSW5mbywgYXAsIE5VTEwsIGRpck5hbWUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQUxPR1YoIkFkZGluZyBkaXJlY3RvcnkgJXMgZnJvbSBkaXIgJXMiLCBkaXJOYW1lLCBhcC5wYXRoLnN0cmluZygpKTsKLSAgICAgICAgICAgIHNjYW5BbmRNZXJnZURpckxvY2tlZChwTWVyZ2VkSW5mbywgYXAsIE5VTEwsIGRpck5hbWUpOwotICAgICAgICB9Ci0gICAgfQotCi0jaWYgMAotICAgIHByaW50ZigiRklMRSBMSVNUOlxuIik7Ci0gICAgZm9yIChpID0gMDsgaSA8IChzaXplX3QpIHBNZXJnZWRJbmZvLT5zaXplKCk7IGkrKykgewotICAgICAgICBwcmludGYoIiAlZDogKCVkKSAnJXMnXG4iLCBpLAotICAgICAgICAgICAgcE1lcmdlZEluZm8tPml0ZW1BdChpKS5nZXRGaWxlVHlwZSgpLAotICAgICAgICAgICAgKGNvbnN0IGNoYXIqKSBwTWVyZ2VkSW5mby0+aXRlbUF0KGkpLmdldEZpbGVOYW1lKCkpOwotICAgIH0KLSNlbmRpZgotCi0gICAgcERpci0+c2V0RmlsZUxpc3QocE1lcmdlZEluZm8pOwotICAgIHJldHVybiBwRGlyOwotfQotCi0vKgotICogU2NhbiB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkgYW5kIG1lcmdlIHRoZW0gaW50byB0aGUKLSAqICJwTWVyZ2VkSW5mbyIgdmVjdG9yLCByZW1vdmluZyBwcmV2aW91cyBlbnRyaWVzIGlmIHdlIGZpbmQgImV4Y2x1ZGUiCi0gKiBkaXJlY3RpdmVzLgotICoKLSAqIFJldHVybnMgImZhbHNlIiBpZiB3ZSBmb3VuZCBub3RoaW5nIHRvIGNvbnRyaWJ1dGUuCi0gKi8KLWJvb2wgQXNzZXRNYW5hZ2VyOjpzY2FuQW5kTWVyZ2VEaXJMb2NrZWQoU29ydGVkVmVjdG9yPEFzc2V0RGlyOjpGaWxlSW5mbz4qIHBNZXJnZWRJbmZvLAotICAgIGNvbnN0IGFzc2V0X3BhdGgmIGFwLCBjb25zdCBjaGFyKiByb290RGlyLCBjb25zdCBjaGFyKiBkaXJOYW1lKQotewotICAgIFNvcnRlZFZlY3RvcjxBc3NldERpcjo6RmlsZUluZm8+KiBwQ29udGVudHM7Ci0gICAgU3RyaW5nOCBwYXRoOwotCi0gICAgYXNzZXJ0KHBNZXJnZWRJbmZvICE9IE5VTEwpOwotCi0gICAgLy9wcmludGYoInNjYW5BbmRNZXJnZURpcjogJXMgJXMgJXMgJXNcbiIsIGFwcE5hbWUsIGxvY2FsZSwgdmVuZG9yLGRpck5hbWUpOwotCi0gICAgaWYgKG1DYWNoZVZhbGlkKSB7Ci0gICAgICAgIGludCBpLCBzdGFydCwgY291bnQ7Ci0KLSAgICAgICAgcENvbnRlbnRzID0gbmV3IFNvcnRlZFZlY3RvcjxBc3NldERpcjo6RmlsZUluZm8+OwotCi0gICAgICAgIC8qCi0gICAgICAgICAqIEdldCB0aGUgYmFzaWMgcGFydGlhbCBwYXRoIGFuZCBmaW5kIGl0IGluIHRoZSBjYWNoZS4gIFRoYXQncwotICAgICAgICAgKiB0aGUgc3RhcnQgcG9pbnQgZm9yIHRoZSBzZWFyY2guCi0gICAgICAgICAqLwotICAgICAgICBwYXRoID0gY3JlYXRlUGF0aE5hbWVMb2NrZWQoYXAsIHJvb3REaXIpOwotICAgICAgICBpZiAoZGlyTmFtZVswXSAhPSAnXDAnKQotICAgICAgICAgICAgcGF0aC5hcHBlbmRQYXRoKGRpck5hbWUpOwotCi0gICAgICAgIHN0YXJ0ID0gbUNhY2hlLmluZGV4T2YocGF0aCk7Ci0gICAgICAgIGlmIChzdGFydCA9PSBOQU1FX05PVF9GT1VORCkgewotICAgICAgICAgICAgLy9wcmludGYoIisrKyBub3QgZm91bmQgaW4gY2FjaGU6IGRpciAnJXMnXG4iLCAoY29uc3QgY2hhciopIHBhdGgpOwotICAgICAgICAgICAgZGVsZXRlIHBDb250ZW50czsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qCi0gICAgICAgICAqIFRoZSBtYXRjaCBzdHJpbmcgbG9va3MgbGlrZSAiY29tbW9uL2RlZmF1bHQvZGVmYXVsdC9mb28vYmFyLyIuCi0gICAgICAgICAqIFRoZSAnLycgb24gdGhlIGVuZCBlbnN1cmVzIHRoYXQgd2UgZG9uJ3QgbWF0Y2ggb24gdGhlIGRpcmVjdG9yeQotICAgICAgICAgKiBpdHNlbGYgb3Igb24gIi4uLi9mb28vYmFyZnkvIi4KLSAgICAgICAgICovCi0gICAgICAgIHBhdGguYXBwZW5kKCIvIik7Ci0KLSAgICAgICAgY291bnQgPSBtQ2FjaGUuc2l6ZSgpOwotCi0gICAgICAgIC8qCi0gICAgICAgICAqIFBpY2sgb3V0IHRoZSBzdHVmZiBpbiB0aGUgY3VycmVudCBkaXIgYnkgZXhhbWluaW5nIHRoZSBwYXRobmFtZS4KLSAgICAgICAgICogSXQgbmVlZHMgdG8gbWF0Y2ggdGhlIHBhcnRpYWwgcGF0aG5hbWUgcHJlZml4LCBhbmQgbm90IGhhdmUgYSAnLycKLSAgICAgICAgICogKGZzc2VwKSBhbnl3aGVyZSBhZnRlciB0aGUgcHJlZml4LgotICAgICAgICAgKi8KLSAgICAgICAgZm9yIChpID0gc3RhcnQrMTsgaSA8IGNvdW50OyBpKyspIHsKLSAgICAgICAgICAgIGlmIChtQ2FjaGVbaV0uZ2V0RmlsZU5hbWUoKS5sZW5ndGgoKSA+IHBhdGgubGVuZ3RoKCkgJiYKLSAgICAgICAgICAgICAgICBzdHJuY21wKG1DYWNoZVtpXS5nZXRGaWxlTmFtZSgpLnN0cmluZygpLCBwYXRoLnN0cmluZygpLCBwYXRoLmxlbmd0aCgpKSA9PSAwKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG5hbWUgPSBtQ2FjaGVbaV0uZ2V0RmlsZU5hbWUoKS5zdHJpbmcoKTsKLSAgICAgICAgICAgICAgICAvLyBYWFggVEhJUyBJUyBCUk9LRU4hICBMb29rcyBsaWtlIHdlIG5lZWQgdG8gc3RvcmUgdGhlIGZ1bGwKLSAgICAgICAgICAgICAgICAvLyBwYXRoIHByZWZpeCBzZXBhcmF0ZWx5IGZyb20gdGhlIGZpbGUgcGF0aC4KLSAgICAgICAgICAgICAgICBpZiAoc3RyY2hyKG5hbWUgKyBwYXRoLmxlbmd0aCgpLCAnLycpID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgLyogZ3JhYiBpdCwgcmVkdWNpbmcgcGF0aCB0byBqdXN0IHRoZSBmaWxlbmFtZSBjb21wb25lbnQgKi8KLSAgICAgICAgICAgICAgICAgICAgQXNzZXREaXI6OkZpbGVJbmZvIHRtcCA9IG1DYWNoZVtpXTsKLSAgICAgICAgICAgICAgICAgICAgdG1wLnNldEZpbGVOYW1lKHRtcC5nZXRGaWxlTmFtZSgpLmdldFBhdGhMZWFmKCkpOwotICAgICAgICAgICAgICAgICAgICBwQ29udGVudHMtPmFkZCh0bXApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLyogbm8gbG9uZ2VyIGluIHRoZSBkaXIgb3IgaXRzIHN1YmRpcnMgKi8KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcGF0aCA9IGNyZWF0ZVBhdGhOYW1lTG9ja2VkKGFwLCByb290RGlyKTsKLSAgICAgICAgaWYgKGRpck5hbWVbMF0gIT0gJ1wwJykKLSAgICAgICAgICAgIHBhdGguYXBwZW5kUGF0aChkaXJOYW1lKTsKLSAgICAgICAgcENvbnRlbnRzID0gc2NhbkRpckxvY2tlZChwYXRoKTsKLSAgICAgICAgaWYgKHBDb250ZW50cyA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIC8vIGlmIHdlIHdhbnRlZCB0byBkbyBhbiBpbmNyZW1lbnRhbCBjYWNoZSBmaWxsLCB3ZSB3b3VsZCBkbyBpdCBoZXJlCi0KLSAgICAvKgotICAgICAqIFByb2Nlc3MgImV4Y2x1ZGUiIGRpcmVjdGl2ZXMuICBJZiB3ZSBmaW5kIGEgZmlsZW5hbWUgdGhhdCBlbmRzIHdpdGgKLSAgICAgKiAiLkVYQ0xVREUiLCB3ZSBsb29rIGZvciBhIG1hdGNoaW5nIGVudHJ5IGluIHRoZSAibWVyZ2VkIiBzZXQsIGFuZAotICAgICAqIHJlbW92ZSBpdCBpZiB3ZSBmaW5kIGl0LiAgV2UgYWxzbyBkZWxldGUgdGhlICJleGNsdWRlIiBlbnRyeS4KLSAgICAgKi8KLSAgICBpbnQgaSwgY291bnQsIGV4Y2xFeHRMZW47Ci0KLSAgICBjb3VudCA9IHBDb250ZW50cy0+c2l6ZSgpOwotICAgIGV4Y2xFeHRMZW4gPSBzdHJsZW4oa0V4Y2x1ZGVFeHRlbnNpb24pOwotICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgICAgIGludCBuYW1lTGVuOwotCi0gICAgICAgIG5hbWUgPSBwQ29udGVudHMtPml0ZW1BdChpKS5nZXRGaWxlTmFtZSgpLnN0cmluZygpOwotICAgICAgICBuYW1lTGVuID0gc3RybGVuKG5hbWUpOwotICAgICAgICBpZiAobmFtZUxlbiA+IGV4Y2xFeHRMZW4gJiYKLSAgICAgICAgICAgIHN0cmNtcChuYW1lICsgKG5hbWVMZW4gLSBleGNsRXh0TGVuKSwga0V4Y2x1ZGVFeHRlbnNpb24pID09IDApCi0gICAgICAgIHsKLSAgICAgICAgICAgIFN0cmluZzggbWF0Y2gobmFtZSwgbmFtZUxlbiAtIGV4Y2xFeHRMZW4pOwotICAgICAgICAgICAgaW50IG1hdGNoSWR4OwotCi0gICAgICAgICAgICBtYXRjaElkeCA9IEFzc2V0RGlyOjpGaWxlSW5mbzo6ZmluZEVudHJ5KHBNZXJnZWRJbmZvLCBtYXRjaCk7Ci0gICAgICAgICAgICBpZiAobWF0Y2hJZHggPiAwKSB7Ci0gICAgICAgICAgICAgICAgQUxPR1YoIkV4Y2x1ZGluZyAnJXMnIFslc11cbiIsCi0gICAgICAgICAgICAgICAgICAgIHBNZXJnZWRJbmZvLT5pdGVtQXQobWF0Y2hJZHgpLmdldEZpbGVOYW1lKCkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgIHBNZXJnZWRJbmZvLT5pdGVtQXQobWF0Y2hJZHgpLmdldFNvdXJjZU5hbWUoKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgcE1lcmdlZEluZm8tPnJlbW92ZUF0KG1hdGNoSWR4KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy9wcmludGYoIisrKyBubyBtYXRjaCBvbiAnJXMnXG4iLCAoY29uc3QgY2hhciopIG1hdGNoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQUxPR0QoIkhFWTogc2l6ZT0lZCByZW1vdmluZyAlZFxuIiwgKGludClwQ29udGVudHMtPnNpemUoKSwgaSk7Ci0gICAgICAgICAgICBwQ29udGVudHMtPnJlbW92ZUF0KGkpOwotICAgICAgICAgICAgaS0tOyAgICAgICAgLy8gYWRqdXN0ICJmb3IiIGxvb3AKLSAgICAgICAgICAgIGNvdW50LS07ICAgIC8vICBhbmQgbG9vcCBsaW1pdAotICAgICAgICB9Ci0gICAgfQotCi0gICAgbWVyZ2VJbmZvTG9ja2VkKHBNZXJnZWRJbmZvLCBwQ29udGVudHMpOwotCi0gICAgZGVsZXRlIHBDb250ZW50czsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi0vKgotICogU2NhbiB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZCBkaXJlY3RvcnksIGFuZCBzdHVmZiB3aGF0IHdlIGZpbmQKLSAqIGludG8gYSBuZXdseS1hbGxvY2F0ZWQgdmVjdG9yLgotICoKLSAqIEZpbGVzIGVuZGluZyBpbiAiLmd6IiB3aWxsIGhhdmUgdGhlaXIgZXh0ZW5zaW9ucyByZW1vdmVkLgotICoKLSAqIFdlIHNob3VsZCBwcm9iYWJseSB0aGluayBhYm91dCBza2lwcGluZyBmaWxlcyB3aXRoICJpbGxlZ2FsIiBuYW1lcywKLSAqIGUuZy4gaWxsZWdhbCBjaGFyYWN0ZXJzICgvXDopIG9yIGV4Y2Vzc2l2ZSBsZW5ndGguCi0gKgotICogUmV0dXJucyBOVUxMIGlmIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IGRvZXNuJ3QgZXhpc3QuCi0gKi8KLVNvcnRlZFZlY3RvcjxBc3NldERpcjo6RmlsZUluZm8+KiBBc3NldE1hbmFnZXI6OnNjYW5EaXJMb2NrZWQoY29uc3QgU3RyaW5nOCYgcGF0aCkKLXsKLSAgICBTb3J0ZWRWZWN0b3I8QXNzZXREaXI6OkZpbGVJbmZvPiogcENvbnRlbnRzID0gTlVMTDsKLSAgICBESVIqIGRpcjsKLSAgICBzdHJ1Y3QgZGlyZW50KiBlbnRyeTsKLSAgICBGaWxlVHlwZSBmaWxlVHlwZTsKLQotICAgIEFMT0dWKCJTY2FubmluZyBkaXIgJyVzJ1xuIiwgcGF0aC5zdHJpbmcoKSk7Ci0KLSAgICBkaXIgPSBvcGVuZGlyKHBhdGguc3RyaW5nKCkpOwotICAgIGlmIChkaXIgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBwQ29udGVudHMgPSBuZXcgU29ydGVkVmVjdG9yPEFzc2V0RGlyOjpGaWxlSW5mbz47Ci0KLSAgICB3aGlsZSAoMSkgewotICAgICAgICBlbnRyeSA9IHJlYWRkaXIoZGlyKTsKLSAgICAgICAgaWYgKGVudHJ5ID09IE5VTEwpCi0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBpZiAoc3RyY21wKGVudHJ5LT5kX25hbWUsICIuIikgPT0gMCB8fAotICAgICAgICAgICAgc3RyY21wKGVudHJ5LT5kX25hbWUsICIuLiIpID09IDApCi0gICAgICAgICAgICBjb250aW51ZTsKLQotI2lmZGVmIF9ESVJFTlRfSEFWRV9EX1RZUEUKLSAgICAgICAgaWYgKGVudHJ5LT5kX3R5cGUgPT0gRFRfUkVHKQotICAgICAgICAgICAgZmlsZVR5cGUgPSBrRmlsZVR5cGVSZWd1bGFyOwotICAgICAgICBlbHNlIGlmIChlbnRyeS0+ZF90eXBlID09IERUX0RJUikKLSAgICAgICAgICAgIGZpbGVUeXBlID0ga0ZpbGVUeXBlRGlyZWN0b3J5OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBmaWxlVHlwZSA9IGtGaWxlVHlwZVVua25vd247Ci0jZWxzZQotICAgICAgICAvLyBzdGF0IHRoZSBmaWxlCi0gICAgICAgIGZpbGVUeXBlID0gOjpnZXRGaWxlVHlwZShwYXRoLmFwcGVuZFBhdGhDb3B5KGVudHJ5LT5kX25hbWUpLnN0cmluZygpKTsKLSNlbmRpZgotCi0gICAgICAgIGlmIChmaWxlVHlwZSAhPSBrRmlsZVR5cGVSZWd1bGFyICYmIGZpbGVUeXBlICE9IGtGaWxlVHlwZURpcmVjdG9yeSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIEFzc2V0RGlyOjpGaWxlSW5mbyBpbmZvOwotICAgICAgICBpbmZvLnNldChTdHJpbmc4KGVudHJ5LT5kX25hbWUpLCBmaWxlVHlwZSk7Ci0gICAgICAgIGlmIChzdHJjYXNlY21wKGluZm8uZ2V0RmlsZU5hbWUoKS5nZXRQYXRoRXh0ZW5zaW9uKCkuc3RyaW5nKCksICIuZ3oiKSA9PSAwKQotICAgICAgICAgICAgaW5mby5zZXRGaWxlTmFtZShpbmZvLmdldEZpbGVOYW1lKCkuZ2V0QmFzZVBhdGgoKSk7Ci0gICAgICAgIGluZm8uc2V0U291cmNlTmFtZShwYXRoLmFwcGVuZFBhdGhDb3B5KGluZm8uZ2V0RmlsZU5hbWUoKSkpOwotICAgICAgICBwQ29udGVudHMtPmFkZChpbmZvKTsKLSAgICB9Ci0KLSAgICBjbG9zZWRpcihkaXIpOwotICAgIHJldHVybiBwQ29udGVudHM7Ci19Ci0KLS8qCi0gKiBTY2FuIHRoZSBjb250ZW50cyBvdXQgb2YgdGhlIHNwZWNpZmllZCBaaXAgYXJjaGl2ZSwgYW5kIG1lcmdlIHdoYXQgd2UKLSAqIGZpbmQgaW50byAicE1lcmdlZEluZm8iLiAgSWYgdGhlIFppcCBhcmNoaXZlIGluIHF1ZXN0aW9uIGRvZXNuJ3QgZXhpc3QsCi0gKiB3ZSByZXR1cm4gaW1tZWRpYXRlbHkuCi0gKgotICogUmV0dXJucyAiZmFsc2UiIGlmIHdlIGZvdW5kIG5vdGhpbmcgdG8gY29udHJpYnV0ZS4KLSAqLwotYm9vbCBBc3NldE1hbmFnZXI6OnNjYW5BbmRNZXJnZVppcExvY2tlZChTb3J0ZWRWZWN0b3I8QXNzZXREaXI6OkZpbGVJbmZvPiogcE1lcmdlZEluZm8sCi0gICAgY29uc3QgYXNzZXRfcGF0aCYgYXAsIGNvbnN0IGNoYXIqIHJvb3REaXIsIGNvbnN0IGNoYXIqIGJhc2VEaXJOYW1lKQotewotICAgIFppcEZpbGVSTyogcFppcDsKLSAgICBWZWN0b3I8U3RyaW5nOD4gZGlyczsKLSAgICBBc3NldERpcjo6RmlsZUluZm8gaW5mbzsKLSAgICBTb3J0ZWRWZWN0b3I8QXNzZXREaXI6OkZpbGVJbmZvPiBjb250ZW50czsKLSAgICBTdHJpbmc4IHNvdXJjZU5hbWUsIHppcE5hbWUsIGRpck5hbWU7Ci0KLSAgICBwWmlwID0gbVppcFNldC5nZXRaaXAoYXAucGF0aCk7Ci0gICAgaWYgKHBaaXAgPT0gTlVMTCkgewotICAgICAgICBBTE9HVygiRmFpbHVyZSBvcGVuaW5nIHppcCAlc1xuIiwgYXAucGF0aC5zdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICB6aXBOYW1lID0gWmlwU2V0OjpnZXRQYXRoTmFtZShhcC5wYXRoLnN0cmluZygpKTsKLQotICAgIC8qIGNvbnZlcnQgInNvdW5kcyIgdG8gInJvb3REaXIvc291bmRzIiAqLwotICAgIGlmIChyb290RGlyICE9IE5VTEwpIGRpck5hbWUgPSByb290RGlyOwotICAgIGRpck5hbWUuYXBwZW5kUGF0aChiYXNlRGlyTmFtZSk7Ci0KLSAgICAvKgotICAgICAqIFNjYW4gdGhyb3VnaCB0aGUgbGlzdCBvZiBmaWxlcywgbG9va2luZyBmb3IgYSBtYXRjaC4gIFRoZSBmaWxlcyBpbgotICAgICAqIHRoZSBaaXAgdGFibGUgb2YgY29udGVudHMgYXJlIG5vdCBpbiBzb3J0ZWQgb3JkZXIsIHNvIHdlIGhhdmUgdG8KLSAgICAgKiBwcm9jZXNzIHRoZSBlbnRpcmUgbGlzdC4gIFdlJ3JlIGxvb2tpbmcgZm9yIGEgc3RyaW5nIHRoYXQgYmVnaW5zCi0gICAgICogd2l0aCB0aGUgY2hhcmFjdGVycyBpbiAiZGlyTmFtZSIsIGlzIGZvbGxvd2VkIGJ5IGEgJy8nLCBhbmQgaGFzIG5vCi0gICAgICogc3Vic2VxdWVudCAnLycgaW4gdGhlIHN0dWZmIHRoYXQgZm9sbG93cy4KLSAgICAgKgotICAgICAqIFdoYXQgbWFrZXMgdGhpcyBlc3BlY2lhbGx5IGZ1biBpcyB0aGF0IGRpcmVjdG9yaWVzIGFyZSBub3Qgc3RvcmVkCi0gICAgICogZXhwbGljaXRseSBpbiBaaXAgYXJjaGl2ZXMsIHNvIHdlIGhhdmUgdG8gaW5mZXIgdGhlbSBmcm9tIGNvbnRleHQuCi0gICAgICogV2hlbiB3ZSBzZWUgInNvdW5kcy9mb28ud2F2IiB3ZSBoYXZlIHRvIGxlYXZlIGEgbm90ZSB0byBvdXJzZWx2ZXMKLSAgICAgKiB0byBpbnNlcnQgYSBkaXJlY3RvcnkgY2FsbGVkICJzb3VuZHMiIGludG8gdGhlIGxpc3QuICBXZSBzdG9yZQotICAgICAqIHRoZXNlIGluIHRlbXBvcmFyeSB2ZWN0b3Igc28gdGhhdCB3ZSBvbmx5IHJldHVybiBlYWNoIG9uZSBvbmNlLgotICAgICAqCi0gICAgICogTmFtZSBjb21wYXJpc29ucyBhcmUgY2FzZS1zZW5zaXRpdmUgdG8gbWF0Y2ggVU5JWCBmaWxlc3lzdGVtCi0gICAgICogc2VtYW50aWNzLgotICAgICAqLwotICAgIGludCBkaXJOYW1lTGVuID0gZGlyTmFtZS5sZW5ndGgoKTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHBaaXAtPmdldE51bUVudHJpZXMoKTsgaSsrKSB7Ci0gICAgICAgIFppcEVudHJ5Uk8gZW50cnk7Ci0gICAgICAgIGNoYXIgbmFtZUJ1ZlsyNTZdOwotCi0gICAgICAgIGVudHJ5ID0gcFppcC0+ZmluZEVudHJ5QnlJbmRleChpKTsKLSAgICAgICAgaWYgKHBaaXAtPmdldEVudHJ5RmlsZU5hbWUoZW50cnksIG5hbWVCdWYsIHNpemVvZihuYW1lQnVmKSkgIT0gMCkgewotICAgICAgICAgICAgLy8gVE9ETzogZml4IHRoaXMgaWYgd2UgZXhwZWN0IHRvIGhhdmUgbG9uZyBuYW1lcwotICAgICAgICAgICAgQUxPR0UoIkFSR0g6IG5hbWUgdG9vIGxvbmc/XG4iKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIC8vcHJpbnRmKCJDb21wYXJpbmcgJXMgaW4gJXM/XG4iLCBuYW1lQnVmLCBkaXJOYW1lLnN0cmluZygpKTsKLSAgICAgICAgaWYgKGRpck5hbWVMZW4gPT0gMCB8fAotICAgICAgICAgICAgKHN0cm5jbXAobmFtZUJ1ZiwgZGlyTmFtZS5zdHJpbmcoKSwgZGlyTmFtZUxlbikgPT0gMCAmJgotICAgICAgICAgICAgIG5hbWVCdWZbZGlyTmFtZUxlbl0gPT0gJy8nKSkKLSAgICAgICAgewotICAgICAgICAgICAgY29uc3QgY2hhciogY3A7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBuZXh0U2xhc2g7Ci0KLSAgICAgICAgICAgIGNwID0gbmFtZUJ1ZiArIGRpck5hbWVMZW47Ci0gICAgICAgICAgICBpZiAoZGlyTmFtZUxlbiAhPSAwKQotICAgICAgICAgICAgICAgIGNwKys7ICAgICAgIC8vIGFkdmFuY2UgcGFzdCB0aGUgJy8nCi0KLSAgICAgICAgICAgIG5leHRTbGFzaCA9IHN0cmNocihjcCwgJy8nKTsKLS8veHh4IHRoaXMgbWF5IGJyZWFrIGlmIHRoZXJlIGFyZSBiYXJlIGRpcmVjdG9yeSBlbnRyaWVzCi0gICAgICAgICAgICBpZiAobmV4dFNsYXNoID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAvKiB0aGlzIGlzIGEgZmlsZSBpbiB0aGUgcmVxdWVzdGVkIGRpcmVjdG9yeSAqLwotCi0gICAgICAgICAgICAgICAgaW5mby5zZXQoU3RyaW5nOChuYW1lQnVmKS5nZXRQYXRoTGVhZigpLCBrRmlsZVR5cGVSZWd1bGFyKTsKLQotICAgICAgICAgICAgICAgIGluZm8uc2V0U291cmNlTmFtZSgKLSAgICAgICAgICAgICAgICAgICAgY3JlYXRlWmlwU291cmNlTmFtZUxvY2tlZCh6aXBOYW1lLCBkaXJOYW1lLCBpbmZvLmdldEZpbGVOYW1lKCkpKTsKLQotICAgICAgICAgICAgICAgIGNvbnRlbnRzLmFkZChpbmZvKTsKLSAgICAgICAgICAgICAgICAvL3ByaW50ZigiRk9VTkQ6IGZpbGUgJyVzJ1xuIiwgaW5mby5nZXRGaWxlTmFtZSgpLnN0cmluZygpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLyogdGhpcyBpcyBhIHN1YmRpcjsgYWRkIGl0IGlmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSBpdCovCi0gICAgICAgICAgICAgICAgU3RyaW5nOCBzdWJkaXJOYW1lKGNwLCBuZXh0U2xhc2ggLSBjcCk7Ci0gICAgICAgICAgICAgICAgc2l6ZV90IGo7Ci0gICAgICAgICAgICAgICAgc2l6ZV90IE4gPSBkaXJzLnNpemUoKTsKLQotICAgICAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBOOyBqKyspIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHN1YmRpck5hbWUgPT0gZGlyc1tqXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGogPT0gTikgewotICAgICAgICAgICAgICAgICAgICBkaXJzLmFkZChzdWJkaXJOYW1lKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAvL3ByaW50ZigiRk9VTkQ6IGRpciAnJXMnXG4iLCBzdWJkaXJOYW1lLnN0cmluZygpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qCi0gICAgICogQWRkIHRoZSBzZXQgb2YgdW5pcXVlIGRpcmVjdG9yaWVzLgotICAgICAqLwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKGludCkgZGlycy5zaXplKCk7IGkrKykgewotICAgICAgICBpbmZvLnNldChkaXJzW2ldLCBrRmlsZVR5cGVEaXJlY3RvcnkpOwotICAgICAgICBpbmZvLnNldFNvdXJjZU5hbWUoCi0gICAgICAgICAgICBjcmVhdGVaaXBTb3VyY2VOYW1lTG9ja2VkKHppcE5hbWUsIGRpck5hbWUsIGluZm8uZ2V0RmlsZU5hbWUoKSkpOwotICAgICAgICBjb250ZW50cy5hZGQoaW5mbyk7Ci0gICAgfQotCi0gICAgbWVyZ2VJbmZvTG9ja2VkKHBNZXJnZWRJbmZvLCAmY29udGVudHMpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotLyoKLSAqIE1lcmdlIHR3byB2ZWN0b3JzIG9mIEZpbGVJbmZvLgotICoKLSAqIFRoZSBtZXJnZWQgY29udGVudHMgd2lsbCBiZSBzdHVmZmVkIGludG8gKnBNZXJnZWRJbmZvLgotICoKLSAqIElmIGFuIGVudHJ5IGZvciBhIGZpbGUgZXhpc3RzIGluIGJvdGggInBNZXJnZWRJbmZvIiBhbmQgInBDb250ZW50cyIsCi0gKiB3ZSB1c2UgdGhlIG5ld2VyICJwQ29udGVudHMiIGVudHJ5LgotICovCi12b2lkIEFzc2V0TWFuYWdlcjo6bWVyZ2VJbmZvTG9ja2VkKFNvcnRlZFZlY3RvcjxBc3NldERpcjo6RmlsZUluZm8+KiBwTWVyZ2VkSW5mbywKLSAgICBjb25zdCBTb3J0ZWRWZWN0b3I8QXNzZXREaXI6OkZpbGVJbmZvPiogcENvbnRlbnRzKQotewotICAgIC8qCi0gICAgICogTWVyZ2Ugd2hhdCB3ZSBmb3VuZCBpbiB0aGlzIGRpcmVjdG9yeSB3aXRoIHdoYXQgd2UgZm91bmQgaW4KLSAgICAgKiBvdGhlciBwbGFjZXMuCi0gICAgICoKLSAgICAgKiBUd28gYmFzaWMgYXBwcm9hY2hlczoKLSAgICAgKiAoMSkgQ3JlYXRlIGEgbmV3IGFycmF5IHRoYXQgaG9sZHMgdGhlIHVuaXF1ZSB2YWx1ZXMgb2YgdGhlIHR3bwotICAgICAqICAgICBhcnJheXMuCi0gICAgICogKDIpIFRha2UgdGhlIGVsZW1lbnRzIGZyb20gcENvbnRlbnRzIGFuZCBzaG92ZSB0aGVtIGludG8gcE1lcmdlZEluZm8uCi0gICAgICoKLSAgICAgKiBCZWNhdXNlIHRoZXNlIGFyZSB2ZWN0b3JzIG9mIGNvbXBsZXggb2JqZWN0cywgbW92aW5nIGVsZW1lbnRzIGFyb3VuZAotICAgICAqIGluc2lkZSB0aGUgdmVjdG9yIHJlcXVpcmVzIGNvbnN0cnVjdGluZyBuZXcgb2JqZWN0cyBhbmQgYWxsb2NhdGluZwotICAgICAqIHN0b3JhZ2UgZm9yIG1lbWJlcnMuICBXaXRoIGFwcHJvYWNoICMxLCB3ZSdyZSBhbHdheXMgYWRkaW5nIHRvIHRoZQotICAgICAqIGVuZCwgd2hlcmVhcyB3aXRoICMyIHdlIGNvdWxkIGJlIGluc2VydGluZyBtdWx0aXBsZSBlbGVtZW50cyBhdCB0aGUKLSAgICAgKiBmcm9udCBvZiB0aGUgdmVjdG9yLiAgQXBwcm9hY2ggIzEgcmVxdWlyZXMgYSBmdWxsIGNvcHkgb2YgdGhlCi0gICAgICogY29udGVudHMgb2YgcE1lcmdlZEluZm8sIGJ1dCBhcHByb2FjaCAjMiByZXF1aXJlcyB0aGUgc2FtZSBjb3B5IGZvcgotICAgICAqIGV2ZXJ5IGluc2VydGlvbiBhdCB0aGUgZnJvbnQgb2YgcE1lcmdlZEluZm8uCi0gICAgICoKLSAgICAgKiAoV2Ugc2hvdWxkIHByb2JhYmx5IHVzZSBhIFNvcnRlZFZlY3RvciBpbnRlcmZhY2UgdGhhdCBhbGxvd3MgdXMgdG8KLSAgICAgKiBqdXN0IHN0dWZmIGl0ZW1zIGluLCB0cnVzdGluZyB1cyB0byBtYWludGFpbiB0aGUgc29ydCBvcmRlci4pCi0gICAgICovCi0gICAgU29ydGVkVmVjdG9yPEFzc2V0RGlyOjpGaWxlSW5mbz4qIHBOZXdTb3J0ZWQ7Ci0gICAgaW50IG1lcmdlTWF4LCBjb250TWF4OwotICAgIGludCBtZXJnZUlkeCwgY29udElkeDsKLQotICAgIHBOZXdTb3J0ZWQgPSBuZXcgU29ydGVkVmVjdG9yPEFzc2V0RGlyOjpGaWxlSW5mbz47Ci0gICAgbWVyZ2VNYXggPSBwTWVyZ2VkSW5mby0+c2l6ZSgpOwotICAgIGNvbnRNYXggPSBwQ29udGVudHMtPnNpemUoKTsKLSAgICBtZXJnZUlkeCA9IGNvbnRJZHggPSAwOwotCi0gICAgd2hpbGUgKG1lcmdlSWR4IDwgbWVyZ2VNYXggfHwgY29udElkeCA8IGNvbnRNYXgpIHsKLSAgICAgICAgaWYgKG1lcmdlSWR4ID09IG1lcmdlTWF4KSB7Ci0gICAgICAgICAgICAvKiBoaXQgZW5kIG9mICJtZXJnZSIgbGlzdCwgY29weSByZXN0IG9mICJjb250ZW50cyIgKi8KLSAgICAgICAgICAgIHBOZXdTb3J0ZWQtPmFkZChwQ29udGVudHMtPml0ZW1BdChjb250SWR4KSk7Ci0gICAgICAgICAgICBjb250SWR4Kys7Ci0gICAgICAgIH0gZWxzZSBpZiAoY29udElkeCA9PSBjb250TWF4KSB7Ci0gICAgICAgICAgICAvKiBoaXQgZW5kIG9mICJjb250IiBsaXN0LCBjb3B5IHJlc3Qgb2YgIm1lcmdlIiAqLwotICAgICAgICAgICAgcE5ld1NvcnRlZC0+YWRkKHBNZXJnZWRJbmZvLT5pdGVtQXQobWVyZ2VJZHgpKTsKLSAgICAgICAgICAgIG1lcmdlSWR4Kys7Ci0gICAgICAgIH0gZWxzZSBpZiAocE1lcmdlZEluZm8tPml0ZW1BdChtZXJnZUlkeCkgPT0gcENvbnRlbnRzLT5pdGVtQXQoY29udElkeCkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8qIGl0ZW1zIGFyZSBpZGVudGljYWwsIGFkZCBuZXdlciBhbmQgYWR2YW5jZSBib3RoIGluZGljZXMgKi8KLSAgICAgICAgICAgIHBOZXdTb3J0ZWQtPmFkZChwQ29udGVudHMtPml0ZW1BdChjb250SWR4KSk7Ci0gICAgICAgICAgICBtZXJnZUlkeCsrOwotICAgICAgICAgICAgY29udElkeCsrOwotICAgICAgICB9IGVsc2UgaWYgKHBNZXJnZWRJbmZvLT5pdGVtQXQobWVyZ2VJZHgpIDwgcENvbnRlbnRzLT5pdGVtQXQoY29udElkeCkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8qICJtZXJnZSIgaXMgbG93ZXIsIGFkZCB0aGF0IG9uZSAqLwotICAgICAgICAgICAgcE5ld1NvcnRlZC0+YWRkKHBNZXJnZWRJbmZvLT5pdGVtQXQobWVyZ2VJZHgpKTsKLSAgICAgICAgICAgIG1lcmdlSWR4Kys7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvKiAiY29udCIgaXMgbG93ZXIsIGFkZCB0aGF0IG9uZSAqLwotICAgICAgICAgICAgYXNzZXJ0KHBDb250ZW50cy0+aXRlbUF0KGNvbnRJZHgpIDwgcE1lcmdlZEluZm8tPml0ZW1BdChtZXJnZUlkeCkpOwotICAgICAgICAgICAgcE5ld1NvcnRlZC0+YWRkKHBDb250ZW50cy0+aXRlbUF0KGNvbnRJZHgpKTsKLSAgICAgICAgICAgIGNvbnRJZHgrKzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qCi0gICAgICogT3ZlcndyaXRlIHRoZSAibWVyZ2VkIiBsaXN0IHdpdGggdGhlIG5ldyBzdHVmZi4KLSAgICAgKi8KLSAgICAqcE1lcmdlZEluZm8gPSAqcE5ld1NvcnRlZDsKLSAgICBkZWxldGUgcE5ld1NvcnRlZDsKLQotI2lmIDAgICAgICAgLy8gZm9yIFZlY3RvciwgcmF0aGVyIHRoYW4gU29ydGVkVmVjdG9yCi0gICAgaW50IGksIGo7Ci0gICAgZm9yIChpID0gcENvbnRlbnRzLT5zaXplKCkgLTE7IGkgPj0gMDsgaS0tKSB7Ci0gICAgICAgIGJvb2wgYWRkID0gdHJ1ZTsKLQotICAgICAgICBmb3IgKGogPSBwTWVyZ2VkSW5mby0+c2l6ZSgpIC0xOyBqID49IDA7IGotLSkgewotICAgICAgICAgICAgLyogY2FzZS1zZW5zaXRpdmUgY29tcGFyaXNvbnMsIHRvIGJlaGF2ZSBsaWtlIFVOSVggZnMgKi8KLSAgICAgICAgICAgIGlmIChzdHJjbXAocENvbnRlbnRzLT5pdGVtQXQoaSkubUZpbGVOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICBwTWVyZ2VkSW5mby0+aXRlbUF0KGopLm1GaWxlTmFtZSkgPT0gMCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAvKiBtYXRjaCwgZG9uJ3QgYWRkIHRoaXMgZW50cnkgKi8KLSAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChhZGQpCi0gICAgICAgICAgICBwTWVyZ2VkSW5mby0+YWRkKHBDb250ZW50cy0+aXRlbUF0KGkpKTsKLSAgICB9Ci0jZW5kaWYKLX0KLQotCi0vKgotICogTG9hZCBhbGwgZmlsZXMgaW50byB0aGUgZmlsZSBuYW1lIGNhY2hlLiAgV2Ugd2FudCB0byBkbyB0aGlzIGFjcm9zcwotICogYWxsIGNvbWJpbmF0aW9ucyBvZiB7IGFwcG5hbWUsIGxvY2FsZSwgdmVuZG9yIH0sIHBlcmZvcm1pbmcgYSByZWN1cnNpdmUKLSAqIGRpcmVjdG9yeSB0cmF2ZXJzYWwuCi0gKgotICogVGhpcyBpcyBub3QgdGhlIG1vc3QgZWZmaWNpZW50IGRhdGEgc3RydWN0dXJlLiAgQWxzbywgZ2F0aGVyaW5nIHRoZQotICogaW5mb3JtYXRpb24gYXMgd2UgbmVlZGVkIGl0IChmaWxlLWJ5LWZpbGUgb3IgZGlyZWN0b3J5LWJ5LWRpcmVjdG9yeSkKLSAqIHdvdWxkIGJlIGZhc3Rlci4gIEhvd2V2ZXIsIG9uIHRoZSBhY3R1YWwgZGV2aWNlLCA5OSUgb2YgdGhlIGZpbGVzIHdpbGwKLSAqIGxpdmUgaW4gWmlwIGFyY2hpdmVzLCBzbyB0aGlzIGxpc3Qgd2lsbCBiZSB2ZXJ5IHNtYWxsLiAgVGhlIHRyb3VibGUKLSAqIGlzIHRoYXQgd2UgaGF2ZSB0byBjaGVjayB0aGUgImxvb3NlIiBmaWxlcyBmaXJzdCwgc28gaXQncyBpbXBvcnRhbnQKLSAqIHRoYXQgd2UgZG9uJ3QgYmVhdCB0aGUgZmlsZXN5c3RlbSBzaWxseSBsb29raW5nIGZvciBmaWxlcyB0aGF0IGFyZW4ndAotICogdGhlcmUuCi0gKgotICogTm90ZSBvbiB0aHJlYWQgc2FmZXR5OiB0aGlzIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIHRoYXQgY2F1c2VzIHVwZGF0ZXMKLSAqIHRvIG1DYWNoZSwgYW5kIGFueWJvZHkgd2hvIHRyaWVzIHRvIHVzZSBpdCB3aWxsIGNhbGwgaGVyZSBpZiAhbUNhY2hlVmFsaWQsCi0gKiBzbyB3ZSBuZWVkIHRvIGVtcGxveSBhIG11dGV4IGhlcmUuCi0gKi8KLXZvaWQgQXNzZXRNYW5hZ2VyOjpsb2FkRmlsZU5hbWVDYWNoZUxvY2tlZCh2b2lkKQotewotICAgIGFzc2VydCghbUNhY2hlVmFsaWQpOwotICAgIGFzc2VydChtQ2FjaGUuc2l6ZSgpID09IDApOwotCi0jaWZkZWYgRE9fVElNSU5HUyAgIC8vIG5lZWQgdG8gbGluayBhZ2FpbnN0IC1scnQgZm9yIHRoaXMgbm93Ci0gICAgRHVyYXRpb25UaW1lciB0aW1lcjsKLSAgICB0aW1lci5zdGFydCgpOwotI2VuZGlmCi0KLSAgICBmbmNTY2FuTG9ja2VkKCZtQ2FjaGUsICIiKTsKLQotI2lmZGVmIERPX1RJTUlOR1MKLSAgICB0aW1lci5zdG9wKCk7Ci0gICAgQUxPR0QoIkNhY2hlIHNjYW4gdG9vayAlLjNmbXNcbiIsCi0gICAgICAgIHRpbWVyLmR1cmF0aW9uVXNlY3MoKSAvIDEwMDAuMCk7Ci0jZW5kaWYKLQotI2lmIDAKLSAgICBpbnQgaTsKLSAgICBwcmludGYoIkNBQ0hFRCBGSUxFIExJU1QgKCVkIGVudHJpZXMpOlxuIiwgbUNhY2hlLnNpemUoKSk7Ci0gICAgZm9yIChpID0gMDsgaSA8IChpbnQpIG1DYWNoZS5zaXplKCk7IGkrKykgewotICAgICAgICBwcmludGYoIiAlZDogKCVkKSAnJXMnXG4iLCBpLAotICAgICAgICAgICAgbUNhY2hlLml0ZW1BdChpKS5nZXRGaWxlVHlwZSgpLAotICAgICAgICAgICAgKGNvbnN0IGNoYXIqKSBtQ2FjaGUuaXRlbUF0KGkpLmdldEZpbGVOYW1lKCkpOwotICAgIH0KLSNlbmRpZgotCi0gICAgbUNhY2hlVmFsaWQgPSB0cnVlOwotfQotCi0vKgotICogU2NhbiB1cCB0byA4IHZlcnNpb25zIG9mIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5LgotICovCi12b2lkIEFzc2V0TWFuYWdlcjo6Zm5jU2NhbkxvY2tlZChTb3J0ZWRWZWN0b3I8QXNzZXREaXI6OkZpbGVJbmZvPiogcE1lcmdlZEluZm8sCi0gICAgY29uc3QgY2hhciogZGlyTmFtZSkKLXsKLSAgICBzaXplX3QgaSA9IG1Bc3NldFBhdGhzLnNpemUoKTsKLSAgICB3aGlsZSAoaSA+IDApIHsKLSAgICAgICAgaS0tOwotICAgICAgICBjb25zdCBhc3NldF9wYXRoJiBhcCA9IG1Bc3NldFBhdGhzLml0ZW1BdChpKTsKLSAgICAgICAgZm5jU2NhbkFuZE1lcmdlRGlyTG9ja2VkKHBNZXJnZWRJbmZvLCBhcCwgTlVMTCwgTlVMTCwgZGlyTmFtZSk7Ci0gICAgICAgIGlmIChtTG9jYWxlICE9IE5VTEwpCi0gICAgICAgICAgICBmbmNTY2FuQW5kTWVyZ2VEaXJMb2NrZWQocE1lcmdlZEluZm8sIGFwLCBtTG9jYWxlLCBOVUxMLCBkaXJOYW1lKTsKLSAgICAgICAgaWYgKG1WZW5kb3IgIT0gTlVMTCkKLSAgICAgICAgICAgIGZuY1NjYW5BbmRNZXJnZURpckxvY2tlZChwTWVyZ2VkSW5mbywgYXAsIE5VTEwsIG1WZW5kb3IsIGRpck5hbWUpOwotICAgICAgICBpZiAobUxvY2FsZSAhPSBOVUxMICYmIG1WZW5kb3IgIT0gTlVMTCkKLSAgICAgICAgICAgIGZuY1NjYW5BbmRNZXJnZURpckxvY2tlZChwTWVyZ2VkSW5mbywgYXAsIG1Mb2NhbGUsIG1WZW5kb3IsIGRpck5hbWUpOwotICAgIH0KLX0KLQotLyoKLSAqIFJlY3Vyc2l2ZWx5IHNjYW4gdGhpcyBkaXJlY3RvcnkgYW5kIGFsbCBzdWJkaXJzLgotICoKLSAqIFRoaXMgaXMgc2ltaWxhciB0byBzY2FuQW5kTWVyZ2VEaXIsIGJ1dCB3ZSBkb24ndCByZW1vdmUgdGhlIC5FWENMVURFCi0gKiBmaWxlcywgYW5kIHdlIHByZXBlbmQgdGhlIGV4dGVuZGVkIHBhcnRpYWwgcGF0aCB0byB0aGUgZmlsZW5hbWVzLgotICovCi1ib29sIEFzc2V0TWFuYWdlcjo6Zm5jU2NhbkFuZE1lcmdlRGlyTG9ja2VkKAotICAgIFNvcnRlZFZlY3RvcjxBc3NldERpcjo6RmlsZUluZm8+KiBwTWVyZ2VkSW5mbywKLSAgICBjb25zdCBhc3NldF9wYXRoJiBhcCwgY29uc3QgY2hhciogbG9jYWxlLCBjb25zdCBjaGFyKiB2ZW5kb3IsCi0gICAgY29uc3QgY2hhciogZGlyTmFtZSkKLXsKLSAgICBTb3J0ZWRWZWN0b3I8QXNzZXREaXI6OkZpbGVJbmZvPiogcENvbnRlbnRzOwotICAgIFN0cmluZzggcGFydGlhbFBhdGg7Ci0gICAgU3RyaW5nOCBmdWxsUGF0aDsKLQotICAgIC8vIFhYWCBUaGlzIGlzIGJyb2tlbiAtLSB0aGUgZmlsZW5hbWUgY2FjaGUgbmVlZHMgdG8gaG9sZCB0aGUgYmFzZQotICAgIC8vIGFzc2V0IHBhdGggc2VwYXJhdGVseSBmcm9tIGl0cyBmaWxlbmFtZS4KLQotICAgIHBhcnRpYWxQYXRoID0gY3JlYXRlUGF0aE5hbWVMb2NrZWQoYXAsIGxvY2FsZSwgdmVuZG9yKTsKLSAgICBpZiAoZGlyTmFtZVswXSAhPSAnXDAnKSB7Ci0gICAgICAgIHBhcnRpYWxQYXRoLmFwcGVuZFBhdGgoZGlyTmFtZSk7Ci0gICAgfQotCi0gICAgZnVsbFBhdGggPSBwYXJ0aWFsUGF0aDsKLSAgICBwQ29udGVudHMgPSBzY2FuRGlyTG9ja2VkKGZ1bGxQYXRoKTsKLSAgICBpZiAocENvbnRlbnRzID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAgICAgICAvLyBkaXJlY3RvcnkgZGlkIG5vdCBleGlzdAotICAgIH0KLQotICAgIC8qCi0gICAgICogU2NhbiBhbGwgc3ViZGlyZWN0b3JpZXMgb2YgdGhlIGN1cnJlbnQgZGlyLCBtZXJnaW5nIHdoYXQgd2UgZmluZAotICAgICAqIGludG8gInBNZXJnZWRJbmZvIi4KLSAgICAgKi8KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IChpbnQpIHBDb250ZW50cy0+c2l6ZSgpOyBpKyspIHsKLSAgICAgICAgaWYgKHBDb250ZW50cy0+aXRlbUF0KGkpLmdldEZpbGVUeXBlKCkgPT0ga0ZpbGVUeXBlRGlyZWN0b3J5KSB7Ci0gICAgICAgICAgICBTdHJpbmc4IHN1YmRpcihkaXJOYW1lKTsKLSAgICAgICAgICAgIHN1YmRpci5hcHBlbmRQYXRoKHBDb250ZW50cy0+aXRlbUF0KGkpLmdldEZpbGVOYW1lKCkpOwotCi0gICAgICAgICAgICBmbmNTY2FuQW5kTWVyZ2VEaXJMb2NrZWQocE1lcmdlZEluZm8sIGFwLCBsb2NhbGUsIHZlbmRvciwgc3ViZGlyLnN0cmluZygpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qCi0gICAgICogVG8gYmUgY29uc2lzdGVudCwgd2Ugd2FudCBlbnRyaWVzIGZvciB0aGUgcm9vdCBkaXJlY3RvcnkuICBJZgotICAgICAqIHdlJ3JlIHRoZSByb290LCBhZGQgb25lIG5vdy4KLSAgICAgKi8KLSAgICBpZiAoZGlyTmFtZVswXSA9PSAnXDAnKSB7Ci0gICAgICAgIEFzc2V0RGlyOjpGaWxlSW5mbyB0bXBJbmZvOwotCi0gICAgICAgIHRtcEluZm8uc2V0KFN0cmluZzgoIiIpLCBrRmlsZVR5cGVEaXJlY3RvcnkpOwotICAgICAgICB0bXBJbmZvLnNldFNvdXJjZU5hbWUoY3JlYXRlUGF0aE5hbWVMb2NrZWQoYXAsIGxvY2FsZSwgdmVuZG9yKSk7Ci0gICAgICAgIHBDb250ZW50cy0+YWRkKHRtcEluZm8pOwotICAgIH0KLQotICAgIC8qCi0gICAgICogV2Ugd2FudCB0byBwcmVwZW5kIHRoZSBleHRlbmRlZCBwYXJ0aWFsIHBhdGggdG8gZXZlcnkgZW50cnkgaW4KLSAgICAgKiAicENvbnRlbnRzIi4gIEl0J3MgdGhlIHNhbWUgdmFsdWUgZm9yIGVhY2ggZW50cnksIHNvIHRoaXMgd2lsbAotICAgICAqIG5vdCBjaGFuZ2UgdGhlIHNvcnRpbmcgb3JkZXIgb2YgdGhlIHZlY3RvciBjb250ZW50cy4KLSAgICAgKi8KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IChpbnQpIHBDb250ZW50cy0+c2l6ZSgpOyBpKyspIHsKLSAgICAgICAgY29uc3QgQXNzZXREaXI6OkZpbGVJbmZvJiBpbmZvID0gcENvbnRlbnRzLT5pdGVtQXQoaSk7Ci0gICAgICAgIHBDb250ZW50cy0+ZWRpdEl0ZW1BdChpKS5zZXRGaWxlTmFtZShwYXJ0aWFsUGF0aC5hcHBlbmRQYXRoQ29weShpbmZvLmdldEZpbGVOYW1lKCkpKTsKLSAgICB9Ci0KLSAgICBtZXJnZUluZm9Mb2NrZWQocE1lcmdlZEluZm8sIHBDb250ZW50cyk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLS8qCi0gKiBUcmFzaCB0aGUgY2FjaGUuCi0gKi8KLXZvaWQgQXNzZXRNYW5hZ2VyOjpwdXJnZUZpbGVOYW1lQ2FjaGVMb2NrZWQodm9pZCkKLXsKLSAgICBtQ2FjaGVWYWxpZCA9IGZhbHNlOwotICAgIG1DYWNoZS5jbGVhcigpOwotfQotCi0vKgotICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiAgICAgIEFzc2V0TWFuYWdlcjo6U2hhcmVkWmlwCi0gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqLwotCi0KLU11dGV4IEFzc2V0TWFuYWdlcjo6U2hhcmVkWmlwOjpnTG9jazsKLURlZmF1bHRLZXllZFZlY3RvcjxTdHJpbmc4LCB3cDxBc3NldE1hbmFnZXI6OlNoYXJlZFppcD4gPiBBc3NldE1hbmFnZXI6OlNoYXJlZFppcDo6Z09wZW47Ci0KLUFzc2V0TWFuYWdlcjo6U2hhcmVkWmlwOjpTaGFyZWRaaXAoY29uc3QgU3RyaW5nOCYgcGF0aCwgdGltZV90IG1vZFdoZW4pCi0gICAgOiBtUGF0aChwYXRoKSwgbVppcEZpbGUoTlVMTCksIG1Nb2RXaGVuKG1vZFdoZW4pLAotICAgICAgbVJlc291cmNlVGFibGVBc3NldChOVUxMKSwgbVJlc291cmNlVGFibGUoTlVMTCkKLXsKLSAgICAvL0FMT0dJKCJDcmVhdGluZyBTaGFyZWRaaXAgJXAgJXNcbiIsIHRoaXMsIChjb25zdCBjaGFyKiltUGF0aCk7Ci0gICAgbVppcEZpbGUgPSBuZXcgWmlwRmlsZVJPOwotICAgIEFMT0dWKCIrKysgb3BlbmluZyB6aXAgJyVzJ1xuIiwgbVBhdGguc3RyaW5nKCkpOwotICAgIGlmIChtWmlwRmlsZS0+b3BlbihtUGF0aC5zdHJpbmcoKSkgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgQUxPR0QoImZhaWxlZCB0byBvcGVuIFppcCBhcmNoaXZlICclcydcbiIsIG1QYXRoLnN0cmluZygpKTsKLSAgICAgICAgZGVsZXRlIG1aaXBGaWxlOwotICAgICAgICBtWmlwRmlsZSA9IE5VTEw7Ci0gICAgfQotfQotCi1zcDxBc3NldE1hbmFnZXI6OlNoYXJlZFppcD4gQXNzZXRNYW5hZ2VyOjpTaGFyZWRaaXA6OmdldChjb25zdCBTdHJpbmc4JiBwYXRoKQotewotICAgIEF1dG9NdXRleCBfbChnTG9jayk7Ci0gICAgdGltZV90IG1vZFdoZW4gPSBnZXRGaWxlTW9kRGF0ZShwYXRoKTsKLSAgICBzcDxTaGFyZWRaaXA+IHppcCA9IGdPcGVuLnZhbHVlRm9yKHBhdGgpLnByb21vdGUoKTsKLSAgICBpZiAoemlwICE9IE5VTEwgJiYgemlwLT5tTW9kV2hlbiA9PSBtb2RXaGVuKSB7Ci0gICAgICAgIHJldHVybiB6aXA7Ci0gICAgfQotICAgIHppcCA9IG5ldyBTaGFyZWRaaXAocGF0aCwgbW9kV2hlbik7Ci0gICAgZ09wZW4uYWRkKHBhdGgsIHppcCk7Ci0gICAgcmV0dXJuIHppcDsKLQotfQotCi1aaXBGaWxlUk8qIEFzc2V0TWFuYWdlcjo6U2hhcmVkWmlwOjpnZXRaaXAoKQotewotICAgIHJldHVybiBtWmlwRmlsZTsKLX0KLQotQXNzZXQqIEFzc2V0TWFuYWdlcjo6U2hhcmVkWmlwOjpnZXRSZXNvdXJjZVRhYmxlQXNzZXQoKQotewotICAgIEFMT0dWKCJHZXR0aW5nIGZyb20gU2hhcmVkWmlwICVwIHJlc291cmNlIGFzc2V0ICVwXG4iLCB0aGlzLCBtUmVzb3VyY2VUYWJsZUFzc2V0KTsKLSAgICByZXR1cm4gbVJlc291cmNlVGFibGVBc3NldDsKLX0KLQotQXNzZXQqIEFzc2V0TWFuYWdlcjo6U2hhcmVkWmlwOjpzZXRSZXNvdXJjZVRhYmxlQXNzZXQoQXNzZXQqIGFzc2V0KQotewotICAgIHsKLSAgICAgICAgQXV0b011dGV4IF9sKGdMb2NrKTsKLSAgICAgICAgaWYgKG1SZXNvdXJjZVRhYmxlQXNzZXQgPT0gTlVMTCkgewotICAgICAgICAgICAgbVJlc291cmNlVGFibGVBc3NldCA9IGFzc2V0OwotICAgICAgICAgICAgLy8gVGhpcyBpcyBub3QgdGhyZWFkIHNhZmUgdGhlIGZpcnN0IHRpbWUgaXQgaXMgY2FsbGVkLCBzbwotICAgICAgICAgICAgLy8gZG8gaXQgaGVyZSB3aXRoIHRoZSBnbG9iYWwgbG9jayBoZWxkLgotICAgICAgICAgICAgYXNzZXQtPmdldEJ1ZmZlcih0cnVlKTsKLSAgICAgICAgICAgIHJldHVybiBhc3NldDsKLSAgICAgICAgfQotICAgIH0KLSAgICBkZWxldGUgYXNzZXQ7Ci0gICAgcmV0dXJuIG1SZXNvdXJjZVRhYmxlQXNzZXQ7Ci19Ci0KLVJlc1RhYmxlKiBBc3NldE1hbmFnZXI6OlNoYXJlZFppcDo6Z2V0UmVzb3VyY2VUYWJsZSgpCi17Ci0gICAgQUxPR1YoIkdldHRpbmcgZnJvbSBTaGFyZWRaaXAgJXAgcmVzb3VyY2UgdGFibGUgJXBcbiIsIHRoaXMsIG1SZXNvdXJjZVRhYmxlKTsKLSAgICByZXR1cm4gbVJlc291cmNlVGFibGU7Ci19Ci0KLVJlc1RhYmxlKiBBc3NldE1hbmFnZXI6OlNoYXJlZFppcDo6c2V0UmVzb3VyY2VUYWJsZShSZXNUYWJsZSogcmVzKQotewotICAgIHsKLSAgICAgICAgQXV0b011dGV4IF9sKGdMb2NrKTsKLSAgICAgICAgaWYgKG1SZXNvdXJjZVRhYmxlID09IE5VTEwpIHsKLSAgICAgICAgICAgIG1SZXNvdXJjZVRhYmxlID0gcmVzOwotICAgICAgICAgICAgcmV0dXJuIHJlczsKLSAgICAgICAgfQotICAgIH0KLSAgICBkZWxldGUgcmVzOwotICAgIHJldHVybiBtUmVzb3VyY2VUYWJsZTsKLX0KLQotYm9vbCBBc3NldE1hbmFnZXI6OlNoYXJlZFppcDo6aXNVcFRvRGF0ZSgpCi17Ci0gICAgdGltZV90IG1vZFdoZW4gPSBnZXRGaWxlTW9kRGF0ZShtUGF0aC5zdHJpbmcoKSk7Ci0gICAgcmV0dXJuIG1Nb2RXaGVuID09IG1vZFdoZW47Ci19Ci0KLUFzc2V0TWFuYWdlcjo6U2hhcmVkWmlwOjp+U2hhcmVkWmlwKCkKLXsKLSAgICAvL0FMT0dJKCJEZXN0cm95aW5nIFNoYXJlZFppcCAlcCAlc1xuIiwgdGhpcywgKGNvbnN0IGNoYXIqKW1QYXRoKTsKLSAgICBpZiAobVJlc291cmNlVGFibGUgIT0gTlVMTCkgewotICAgICAgICBkZWxldGUgbVJlc291cmNlVGFibGU7Ci0gICAgfQotICAgIGlmIChtUmVzb3VyY2VUYWJsZUFzc2V0ICE9IE5VTEwpIHsKLSAgICAgICAgZGVsZXRlIG1SZXNvdXJjZVRhYmxlQXNzZXQ7Ci0gICAgfQotICAgIGlmIChtWmlwRmlsZSAhPSBOVUxMKSB7Ci0gICAgICAgIGRlbGV0ZSBtWmlwRmlsZTsKLSAgICAgICAgQUxPR1YoIkNsb3NlZCAnJXMnXG4iLCBtUGF0aC5zdHJpbmcoKSk7Ci0gICAgfQotfQotCi0vKgotICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiAgICAgIEFzc2V0TWFuYWdlcjo6WmlwU2V0Ci0gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqLwotCi0vKgotICogQ29uc3RydWN0b3IuCi0gKi8KLUFzc2V0TWFuYWdlcjo6WmlwU2V0OjpaaXBTZXQodm9pZCkKLXsKLX0KLQotLyoKLSAqIERlc3RydWN0b3IuICBDbG9zZSBhbnkgb3BlbiBhcmNoaXZlcy4KLSAqLwotQXNzZXRNYW5hZ2VyOjpaaXBTZXQ6On5aaXBTZXQodm9pZCkKLXsKLSAgICBzaXplX3QgTiA9IG1aaXBGaWxlLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE47IGkrKykKLSAgICAgICAgY2xvc2VaaXAoaSk7Ci19Ci0KLS8qCi0gKiBDbG9zZSBhIFppcCBmaWxlIGFuZCByZXNldCB0aGUgZW50cnkuCi0gKi8KLXZvaWQgQXNzZXRNYW5hZ2VyOjpaaXBTZXQ6OmNsb3NlWmlwKGludCBpZHgpCi17Ci0gICAgbVppcEZpbGUuZWRpdEl0ZW1BdChpZHgpID0gTlVMTDsKLX0KLQotCi0vKgotICogUmV0cmlldmUgdGhlIGFwcHJvcHJpYXRlIFppcCBmaWxlIGZyb20gdGhlIHNldC4KLSAqLwotWmlwRmlsZVJPKiBBc3NldE1hbmFnZXI6OlppcFNldDo6Z2V0WmlwKGNvbnN0IFN0cmluZzgmIHBhdGgpCi17Ci0gICAgaW50IGlkeCA9IGdldEluZGV4KHBhdGgpOwotICAgIHNwPFNoYXJlZFppcD4gemlwID0gbVppcEZpbGVbaWR4XTsKLSAgICBpZiAoemlwID09IE5VTEwpIHsKLSAgICAgICAgemlwID0gU2hhcmVkWmlwOjpnZXQocGF0aCk7Ci0gICAgICAgIG1aaXBGaWxlLmVkaXRJdGVtQXQoaWR4KSA9IHppcDsKLSAgICB9Ci0gICAgcmV0dXJuIHppcC0+Z2V0WmlwKCk7Ci19Ci0KLUFzc2V0KiBBc3NldE1hbmFnZXI6OlppcFNldDo6Z2V0WmlwUmVzb3VyY2VUYWJsZUFzc2V0KGNvbnN0IFN0cmluZzgmIHBhdGgpCi17Ci0gICAgaW50IGlkeCA9IGdldEluZGV4KHBhdGgpOwotICAgIHNwPFNoYXJlZFppcD4gemlwID0gbVppcEZpbGVbaWR4XTsKLSAgICBpZiAoemlwID09IE5VTEwpIHsKLSAgICAgICAgemlwID0gU2hhcmVkWmlwOjpnZXQocGF0aCk7Ci0gICAgICAgIG1aaXBGaWxlLmVkaXRJdGVtQXQoaWR4KSA9IHppcDsKLSAgICB9Ci0gICAgcmV0dXJuIHppcC0+Z2V0UmVzb3VyY2VUYWJsZUFzc2V0KCk7Ci19Ci0KLUFzc2V0KiBBc3NldE1hbmFnZXI6OlppcFNldDo6c2V0WmlwUmVzb3VyY2VUYWJsZUFzc2V0KGNvbnN0IFN0cmluZzgmIHBhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXNzZXQqIGFzc2V0KQotewotICAgIGludCBpZHggPSBnZXRJbmRleChwYXRoKTsKLSAgICBzcDxTaGFyZWRaaXA+IHppcCA9IG1aaXBGaWxlW2lkeF07Ci0gICAgLy8gZG9lc24ndCBtYWtlIHNlbnNlIHRvIGNhbGwgYmVmb3JlIHByZXZpb3VzbHkgYWNjZXNzaW5nLgotICAgIHJldHVybiB6aXAtPnNldFJlc291cmNlVGFibGVBc3NldChhc3NldCk7Ci19Ci0KLVJlc1RhYmxlKiBBc3NldE1hbmFnZXI6OlppcFNldDo6Z2V0WmlwUmVzb3VyY2VUYWJsZShjb25zdCBTdHJpbmc4JiBwYXRoKQotewotICAgIGludCBpZHggPSBnZXRJbmRleChwYXRoKTsKLSAgICBzcDxTaGFyZWRaaXA+IHppcCA9IG1aaXBGaWxlW2lkeF07Ci0gICAgaWYgKHppcCA9PSBOVUxMKSB7Ci0gICAgICAgIHppcCA9IFNoYXJlZFppcDo6Z2V0KHBhdGgpOwotICAgICAgICBtWmlwRmlsZS5lZGl0SXRlbUF0KGlkeCkgPSB6aXA7Ci0gICAgfQotICAgIHJldHVybiB6aXAtPmdldFJlc291cmNlVGFibGUoKTsKLX0KLQotUmVzVGFibGUqIEFzc2V0TWFuYWdlcjo6WmlwU2V0OjpzZXRaaXBSZXNvdXJjZVRhYmxlKGNvbnN0IFN0cmluZzgmIHBhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzVGFibGUqIHJlcykKLXsKLSAgICBpbnQgaWR4ID0gZ2V0SW5kZXgocGF0aCk7Ci0gICAgc3A8U2hhcmVkWmlwPiB6aXAgPSBtWmlwRmlsZVtpZHhdOwotICAgIC8vIGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBjYWxsIGJlZm9yZSBwcmV2aW91c2x5IGFjY2Vzc2luZy4KLSAgICByZXR1cm4gemlwLT5zZXRSZXNvdXJjZVRhYmxlKHJlcyk7Ci19Ci0KLS8qCi0gKiBHZW5lcmF0ZSB0aGUgcGFydGlhbCBwYXRobmFtZSBmb3IgdGhlIHNwZWNpZmllZCBhcmNoaXZlLiAgVGhlIGNhbGxlcgotICogZ2V0cyB0byBwcmVwZW5kIHRoZSBhc3NldCByb290IGRpcmVjdG9yeS4KLSAqCi0gKiBSZXR1cm5zIHNvbWV0aGluZyBsaWtlICJjb21tb24vZW4tVVMtbm9vZ2xlLmphciIuCi0gKi8KLS8qc3RhdGljKi8gU3RyaW5nOCBBc3NldE1hbmFnZXI6OlppcFNldDo6Z2V0UGF0aE5hbWUoY29uc3QgY2hhciogemlwUGF0aCkKLXsKLSAgICByZXR1cm4gU3RyaW5nOCh6aXBQYXRoKTsKLX0KLQotYm9vbCBBc3NldE1hbmFnZXI6OlppcFNldDo6aXNVcFRvRGF0ZSgpCi17Ci0gICAgY29uc3Qgc2l6ZV90IE4gPSBtWmlwRmlsZS5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICBpZiAobVppcEZpbGVbaV0gIT0gTlVMTCAmJiAhbVppcEZpbGVbaV0tPmlzVXBUb0RhdGUoKSkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi0vKgotICogQ29tcHV0ZSB0aGUgemlwIGZpbGUncyBpbmRleC4KLSAqCi0gKiAiYXBwTmFtZSIsICJsb2NhbGUiLCBhbmQgInZlbmRvciIgc2hvdWxkIGJlIHNldCB0byBOVUxMIHRvIGluZGljYXRlIHRoZQotICogZGVmYXVsdCBkaXJlY3RvcnkuCi0gKi8KLWludCBBc3NldE1hbmFnZXI6OlppcFNldDo6Z2V0SW5kZXgoY29uc3QgU3RyaW5nOCYgemlwKSBjb25zdAotewotICAgIGNvbnN0IHNpemVfdCBOID0gbVppcFBhdGguc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgaWYgKG1aaXBQYXRoW2ldID09IHppcCkgewotICAgICAgICAgICAgcmV0dXJuIGk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBtWmlwUGF0aC5hZGQoemlwKTsKLSAgICBtWmlwRmlsZS5hZGQoTlVMTCk7Ci0KLSAgICByZXR1cm4gbVppcFBhdGguc2l6ZSgpLTE7Ci19CmRpZmYgLS1naXQgYS9saWJzL2FuZHJvaWRmdy9CYWNrdXBEYXRhLmNwcCBiL2xpYnMvYW5kcm9pZGZ3L0JhY2t1cERhdGEuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTNiNTIyLi4wMDAwMDAwCi0tLSBhL2xpYnMvYW5kcm9pZGZ3L0JhY2t1cERhdGEuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIExPR19UQUcgImJhY2t1cF9kYXRhIgotCi0jaW5jbHVkZSA8YW5kcm9pZGZ3L0JhY2t1cEhlbHBlcnMuaD4KLSNpbmNsdWRlIDx1dGlscy9CeXRlT3JkZXIuaD4KLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0KLSNpbmNsdWRlIDxjdXRpbHMvbG9nLmg+Ci0KLW5hbWVzcGFjZSBhbmRyb2lkIHsKLQotc3RhdGljIGNvbnN0IGJvb2wgREVCVUcgPSBmYWxzZTsKLQotLyoKLSAqIEZpbGUgRm9ybWF0ICh2MSk6Ci0gKgotICogQWxsIGludHMgYXJlIHN0b3JlZCBsaXR0bGUtZW5kaWFuLgotICoKLSAqICAtIEFuIGFwcF9oZWFkZXJfdjEgc3RydWN0LgotICogIC0gVGhlIG5hbWUgb2YgdGhlIHBhY2thZ2UsIHV0Zi04LCBudWxsIHRlcm1pbmF0ZWQsIHBhZGRlZCB0byA0LWJ5dGUgYm91bmRhcnkuCi0gKiAgLSBBIHNlcXVlbmNlIG9mIHplcm8gb3IgbW9yZSBrZXkvdmFsdWUgcGFpcmVzIChlbnRpdGllcyksIGVhY2ggd2l0aAotICogICAgICAtIEEgZW50aXR5X2hlYWRlcl92MSBzdHJ1Y3QKLSAqICAgICAgLSBUaGUga2V5LCB1dGYtOCwgbnVsbCB0ZXJtaW5hdGVkLCBwYWRkZWQgdG8gNC1ieXRlIGJvdW5kYXJ5LgotICogICAgICAtIFRoZSB2YWx1ZSwgcGFkZGVkIHRvIDQgYnl0ZSBib3VuZGFyeQotICovCi0KLWNvbnN0IHN0YXRpYyBpbnQgUk9VTkRfVVBbNF0gPSB7IDAsIDMsIDIsIDEgfTsKLQotc3RhdGljIGlubGluZSBzaXplX3QKLXJvdW5kX3VwKHNpemVfdCBuKQotewotICAgIHJldHVybiBuICsgUk9VTkRfVVBbbiAlIDRdOwotfQotCi1zdGF0aWMgaW5saW5lIHNpemVfdAotcGFkZGluZ19leHRyYShzaXplX3QgbikKLXsKLSAgICByZXR1cm4gUk9VTkRfVVBbbiAlIDRdOwotfQotCi1CYWNrdXBEYXRhV3JpdGVyOjpCYWNrdXBEYXRhV3JpdGVyKGludCBmZCkKLSAgICA6bV9mZChmZCksCi0gICAgIG1fc3RhdHVzKE5PX0VSUk9SKSwKLSAgICAgbV9wb3MoMCksCi0gICAgIG1fZW50aXR5Q291bnQoMCkKLXsKLX0KLQotQmFja3VwRGF0YVdyaXRlcjo6fkJhY2t1cERhdGFXcml0ZXIoKQotewotfQotCi0vLyBQYWQgb3V0IGFueXRoaW5nIHRoZXkndmUgcHJldmlvdXNseSB3cml0dGVuIHRvIHRoZSBuZXh0IDQgYnl0ZSBib3VuZGFyeS4KLXN0YXR1c190Ci1CYWNrdXBEYXRhV3JpdGVyOjp3cml0ZV9wYWRkaW5nX2ZvcihpbnQgbikKLXsKLSAgICBzc2l6ZV90IGFtdDsKLSAgICBzc2l6ZV90IHBhZGRpbmdTaXplOwotCi0gICAgcGFkZGluZ1NpemUgPSBwYWRkaW5nX2V4dHJhKG4pOwotICAgIGlmIChwYWRkaW5nU2l6ZSA+IDApIHsKLSAgICAgICAgdWludDMyX3QgcGFkZGluZyA9IDB4YmNiY2JjYmM7Ci0gICAgICAgIGlmIChERUJVRykgQUxPR0koIndyaXRpbmcgJWQgcGFkZGluZyBieXRlcyBmb3IgJWQiLCBwYWRkaW5nU2l6ZSwgbik7Ci0gICAgICAgIGFtdCA9IHdyaXRlKG1fZmQsICZwYWRkaW5nLCBwYWRkaW5nU2l6ZSk7Ci0gICAgICAgIGlmIChhbXQgIT0gcGFkZGluZ1NpemUpIHsKLSAgICAgICAgICAgIG1fc3RhdHVzID0gZXJybm87Ci0gICAgICAgICAgICByZXR1cm4gbV9zdGF0dXM7Ci0gICAgICAgIH0KLSAgICAgICAgbV9wb3MgKz0gYW10OwotICAgIH0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXR1c190Ci1CYWNrdXBEYXRhV3JpdGVyOjpXcml0ZUVudGl0eUhlYWRlcihjb25zdCBTdHJpbmc4JiBrZXksIHNpemVfdCBkYXRhU2l6ZSkKLXsKLSAgICBpZiAobV9zdGF0dXMgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIG1fc3RhdHVzOwotICAgIH0KLQotICAgIHNzaXplX3QgYW10OwotCi0gICAgYW10ID0gd3JpdGVfcGFkZGluZ19mb3IobV9wb3MpOwotICAgIGlmIChhbXQgIT0gMCkgewotICAgICAgICByZXR1cm4gYW10OwotICAgIH0KLQotICAgIFN0cmluZzggazsKLSAgICBpZiAobV9rZXlQcmVmaXgubGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgIGsgPSBtX2tleVByZWZpeDsKLSAgICAgICAgayArPSAiOiI7Ci0gICAgICAgIGsgKz0ga2V5OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGsgPSBrZXk7Ci0gICAgfQotICAgIGlmIChERUJVRykgewotICAgICAgICBBTE9HRCgiV3JpdGluZyBoZWFkZXI6IHByZWZpeD0nJXMnIGtleT0nJXMnIGRhdGFTaXplPSVkIiwgbV9rZXlQcmVmaXguc3RyaW5nKCksCi0gICAgICAgICAgICAgICAga2V5LnN0cmluZygpLCBkYXRhU2l6ZSk7Ci0gICAgfQotCi0gICAgZW50aXR5X2hlYWRlcl92MSBoZWFkZXI7Ci0gICAgc3NpemVfdCBrZXlMZW47Ci0KLSAgICBrZXlMZW4gPSBrLmxlbmd0aCgpOwotCi0gICAgaGVhZGVyLnR5cGUgPSB0b2xlbChCQUNLVVBfSEVBREVSX0VOVElUWV9WMSk7Ci0gICAgaGVhZGVyLmtleUxlbiA9IHRvbGVsKGtleUxlbik7Ci0gICAgaGVhZGVyLmRhdGFTaXplID0gdG9sZWwoZGF0YVNpemUpOwotCi0gICAgaWYgKERFQlVHKSBBTE9HSSgid3JpdGluZyBlbnRpdHkgaGVhZGVyLCAlZCBieXRlcyIsIHNpemVvZihlbnRpdHlfaGVhZGVyX3YxKSk7Ci0gICAgYW10ID0gd3JpdGUobV9mZCwgJmhlYWRlciwgc2l6ZW9mKGVudGl0eV9oZWFkZXJfdjEpKTsKLSAgICBpZiAoYW10ICE9IHNpemVvZihlbnRpdHlfaGVhZGVyX3YxKSkgewotICAgICAgICBtX3N0YXR1cyA9IGVycm5vOwotICAgICAgICByZXR1cm4gbV9zdGF0dXM7Ci0gICAgfQotICAgIG1fcG9zICs9IGFtdDsKLQotICAgIGlmIChERUJVRykgQUxPR0koIndyaXRpbmcgZW50aXR5IGhlYWRlciBrZXksICVkIGJ5dGVzIiwga2V5TGVuKzEpOwotICAgIGFtdCA9IHdyaXRlKG1fZmQsIGsuc3RyaW5nKCksIGtleUxlbisxKTsKLSAgICBpZiAoYW10ICE9IGtleUxlbisxKSB7Ci0gICAgICAgIG1fc3RhdHVzID0gZXJybm87Ci0gICAgICAgIHJldHVybiBtX3N0YXR1czsKLSAgICB9Ci0gICAgbV9wb3MgKz0gYW10OwotCi0gICAgYW10ID0gd3JpdGVfcGFkZGluZ19mb3Ioa2V5TGVuKzEpOwotCi0gICAgbV9lbnRpdHlDb3VudCsrOwotCi0gICAgcmV0dXJuIGFtdDsKLX0KLQotc3RhdHVzX3QKLUJhY2t1cERhdGFXcml0ZXI6OldyaXRlRW50aXR5RGF0YShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSkKLXsKLSAgICBpZiAoREVCVUcpIEFMT0dEKCJXcml0aW5nIGRhdGE6IHNpemU9JWx1IiwgKHVuc2lnbmVkIGxvbmcpIHNpemUpOwotCi0gICAgaWYgKG1fc3RhdHVzICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIGlmIChERUJVRykgewotICAgICAgICAgICAgQUxPR0QoIk5vdCB3cml0aW5nIGRhdGEgLSBzdHJlYW0gaW4gZXJyb3Igc3RhdGUgJWQgKCVzKSIsIG1fc3RhdHVzLCBzdHJlcnJvcihtX3N0YXR1cykpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBtX3N0YXR1czsKLSAgICB9Ci0KLSAgICAvLyBXZSBkb24ndCB3cml0ZSBwYWRkaW5nIGhlcmUsIGJlY2F1c2UgdGhleSdyZSBhbGxvd2VkIHRvIGNhbGwgdGhpcyBzZXZlcmFsCi0gICAgLy8gdGltZXMgd2l0aCBzbWFsbGVyIGJ1ZmZlcnMuICBXZSB3cml0ZSBpdCBhdCB0aGUgZW5kIG9mIFdyaXRlRW50aXR5SGVhZGVyCi0gICAgLy8gaW5zdGVhZC4KLSAgICBzc2l6ZV90IGFtdCA9IHdyaXRlKG1fZmQsIGRhdGEsIHNpemUpOwotICAgIGlmIChhbXQgIT0gKHNzaXplX3Qpc2l6ZSkgewotICAgICAgICBtX3N0YXR1cyA9IGVycm5vOwotICAgICAgICBpZiAoREVCVUcpIEFMT0dEKCJ3cml0ZSByZXR1cm5lZCBlcnJvciAlZCAoJXMpIiwgbV9zdGF0dXMsIHN0cmVycm9yKG1fc3RhdHVzKSk7Ci0gICAgICAgIHJldHVybiBtX3N0YXR1czsKLSAgICB9Ci0gICAgbV9wb3MgKz0gYW10OwotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotdm9pZAotQmFja3VwRGF0YVdyaXRlcjo6U2V0S2V5UHJlZml4KGNvbnN0IFN0cmluZzgmIGtleVByZWZpeCkKLXsKLSAgICBtX2tleVByZWZpeCA9IGtleVByZWZpeDsKLX0KLQotCi1CYWNrdXBEYXRhUmVhZGVyOjpCYWNrdXBEYXRhUmVhZGVyKGludCBmZCkKLSAgICA6bV9mZChmZCksCi0gICAgIG1fZG9uZShmYWxzZSksCi0gICAgIG1fc3RhdHVzKE5PX0VSUk9SKSwKLSAgICAgbV9wb3MoMCksCi0gICAgIG1fZW50aXR5Q291bnQoMCkKLXsKLSAgICBtZW1zZXQoJm1faGVhZGVyLCAwLCBzaXplb2YobV9oZWFkZXIpKTsKLX0KLQotQmFja3VwRGF0YVJlYWRlcjo6fkJhY2t1cERhdGFSZWFkZXIoKQotewotfQotCi1zdGF0dXNfdAotQmFja3VwRGF0YVJlYWRlcjo6U3RhdHVzKCkKLXsKLSAgICByZXR1cm4gbV9zdGF0dXM7Ci19Ci0KLSNkZWZpbmUgQ0hFQ0tfU0laRShhY3R1YWwsIGV4cGVjdGVkKSBcCi0gICAgZG8geyBcCi0gICAgICAgIGlmICgoYWN0dWFsKSAhPSAoZXhwZWN0ZWQpKSB7IFwKLSAgICAgICAgICAgIGlmICgoYWN0dWFsKSA9PSAwKSB7IFwKLSAgICAgICAgICAgICAgICBtX3N0YXR1cyA9IEVJTzsgXAotICAgICAgICAgICAgICAgIG1fZG9uZSA9IHRydWU7IFwKLSAgICAgICAgICAgIH0gZWxzZSB7IFwKLSAgICAgICAgICAgICAgICBtX3N0YXR1cyA9IGVycm5vOyBcCi0gICAgICAgICAgICAgICAgQUxPR0QoIkNIRUNLX1NJWkUoYT0lbGQgZT0lbGQpIGZhaWxlZCBhdCBsaW5lICVkIG1fc3RhdHVzPSclcyciLCBcCi0gICAgICAgICAgICAgICAgICAgIGxvbmcoYWN0dWFsKSwgbG9uZyhleHBlY3RlZCksIF9fTElORV9fLCBzdHJlcnJvcihtX3N0YXR1cykpOyBcCi0gICAgICAgICAgICB9IFwKLSAgICAgICAgICAgIHJldHVybiBtX3N0YXR1czsgXAotICAgICAgICB9IFwKLSAgICB9IHdoaWxlKDApCi0jZGVmaW5lIFNLSVBfUEFERElORygpIFwKLSAgICBkbyB7IFwKLSAgICAgICAgc3RhdHVzX3QgZXJyID0gc2tpcF9wYWRkaW5nKCk7IFwKLSAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgeyBcCi0gICAgICAgICAgICBBTE9HRCgiU0tJUF9QQURESU5HIEZBSUxFRCBhdCBsaW5lICVkIiwgX19MSU5FX18pOyBcCi0gICAgICAgICAgICBtX3N0YXR1cyA9IGVycjsgXAotICAgICAgICAgICAgcmV0dXJuIGVycjsgXAotICAgICAgICB9IFwKLSAgICB9IHdoaWxlKDApCi0KLXN0YXR1c190Ci1CYWNrdXBEYXRhUmVhZGVyOjpSZWFkTmV4dEhlYWRlcihib29sKiBkb25lLCBpbnQqIHR5cGUpCi17Ci0gICAgKmRvbmUgPSBtX2RvbmU7Ci0gICAgaWYgKG1fc3RhdHVzICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiBtX3N0YXR1czsKLSAgICB9Ci0KLSAgICBpbnQgYW10OwotCi0gICAgYW10ID0gc2tpcF9wYWRkaW5nKCk7Ci0gICAgaWYgKGFtdCA9PSBFSU8pIHsKLSAgICAgICAgKmRvbmUgPSBtX2RvbmUgPSB0cnVlOwotICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgfQotICAgIGVsc2UgaWYgKGFtdCAhPSBOT19FUlJPUikgewotICAgICAgICByZXR1cm4gYW10OwotICAgIH0KLSAgICBhbXQgPSByZWFkKG1fZmQsICZtX2hlYWRlciwgc2l6ZW9mKG1faGVhZGVyKSk7Ci0gICAgKmRvbmUgPSBtX2RvbmUgPSAoYW10ID09IDApOwotICAgIGlmICgqZG9uZSkgewotICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgfQotICAgIENIRUNLX1NJWkUoYW10LCBzaXplb2YobV9oZWFkZXIpKTsKLSAgICBtX3BvcyArPSBzaXplb2YobV9oZWFkZXIpOwotICAgIGlmICh0eXBlKSB7Ci0gICAgICAgICp0eXBlID0gbV9oZWFkZXIudHlwZTsKLSAgICB9Ci0KLSAgICAvLyB2YWxpZGF0ZSBhbmQgZml4IHVwIHRoZSBmaWVsZHMuCi0gICAgbV9oZWFkZXIudHlwZSA9IGZyb21sZWwobV9oZWFkZXIudHlwZSk7Ci0gICAgc3dpdGNoIChtX2hlYWRlci50eXBlKQotICAgIHsKLSAgICAgICAgY2FzZSBCQUNLVVBfSEVBREVSX0VOVElUWV9WMToKLSAgICAgICAgewotICAgICAgICAgICAgbV9oZWFkZXIuZW50aXR5LmtleUxlbiA9IGZyb21sZWwobV9oZWFkZXIuZW50aXR5LmtleUxlbik7Ci0gICAgICAgICAgICBpZiAobV9oZWFkZXIuZW50aXR5LmtleUxlbiA8PSAwKSB7Ci0gICAgICAgICAgICAgICAgQUxPR0QoIkVudGl0eSBoZWFkZXIgYXQgJWQgaGFzIGtleUxlbjw9MDogMHglMDh4XG4iLCAoaW50KW1fcG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgKGludCltX2hlYWRlci5lbnRpdHkua2V5TGVuKTsKLSAgICAgICAgICAgICAgICBtX3N0YXR1cyA9IEVJTlZBTDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1faGVhZGVyLmVudGl0eS5kYXRhU2l6ZSA9IGZyb21sZWwobV9oZWFkZXIuZW50aXR5LmRhdGFTaXplKTsKLSAgICAgICAgICAgIG1fZW50aXR5Q291bnQrKzsKLQotICAgICAgICAgICAgLy8gcmVhZCB0aGUgcmVzdCBvZiB0aGUgaGVhZGVyIChmaWxlbmFtZSkKLSAgICAgICAgICAgIHNpemVfdCBzaXplID0gbV9oZWFkZXIuZW50aXR5LmtleUxlbjsKLSAgICAgICAgICAgIGNoYXIqIGJ1ZiA9IG1fa2V5LmxvY2tCdWZmZXIoc2l6ZSk7Ci0gICAgICAgICAgICBpZiAoYnVmID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBtX3N0YXR1cyA9IEVOT01FTTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbV9zdGF0dXM7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpbnQgYW10ID0gcmVhZChtX2ZkLCBidWYsIHNpemUrMSk7Ci0gICAgICAgICAgICBDSEVDS19TSVpFKGFtdCwgKGludClzaXplKzEpOwotICAgICAgICAgICAgbV9rZXkudW5sb2NrQnVmZmVyKHNpemUpOwotICAgICAgICAgICAgbV9wb3MgKz0gc2l6ZSsxOwotICAgICAgICAgICAgU0tJUF9QQURESU5HKCk7Ci0gICAgICAgICAgICBtX2RhdGFFbmRQb3MgPSBtX3BvcyArIG1faGVhZGVyLmVudGl0eS5kYXRhU2l6ZTsKLQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFMT0dEKCJDaHVuayBoZWFkZXIgYXQgJWQgaGFzIGludmFsaWQgdHlwZTogMHglMDh4IiwKLSAgICAgICAgICAgICAgICAgICAgKGludCkobV9wb3MgLSBzaXplb2YobV9oZWFkZXIpKSwgKGludCltX2hlYWRlci50eXBlKTsKLSAgICAgICAgICAgIG1fc3RhdHVzID0gRUlOVkFMOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gbV9zdGF0dXM7Ci19Ci0KLWJvb2wKLUJhY2t1cERhdGFSZWFkZXI6Okhhc0VudGl0aWVzKCkKLXsKLSAgICByZXR1cm4gbV9zdGF0dXMgPT0gTk9fRVJST1IgJiYgbV9oZWFkZXIudHlwZSA9PSBCQUNLVVBfSEVBREVSX0VOVElUWV9WMTsKLX0KLQotc3RhdHVzX3QKLUJhY2t1cERhdGFSZWFkZXI6OlJlYWRFbnRpdHlIZWFkZXIoU3RyaW5nOCoga2V5LCBzaXplX3QqIGRhdGFTaXplKQotewotICAgIGlmIChtX3N0YXR1cyAhPSBOT19FUlJPUikgewotICAgICAgICByZXR1cm4gbV9zdGF0dXM7Ci0gICAgfQotICAgIGlmIChtX2hlYWRlci50eXBlICE9IEJBQ0tVUF9IRUFERVJfRU5USVRZX1YxKSB7Ci0gICAgICAgIHJldHVybiBFSU5WQUw7Ci0gICAgfQotICAgICprZXkgPSBtX2tleTsKLSAgICAqZGF0YVNpemUgPSBtX2hlYWRlci5lbnRpdHkuZGF0YVNpemU7Ci0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi1zdGF0dXNfdAotQmFja3VwRGF0YVJlYWRlcjo6U2tpcEVudGl0eURhdGEoKQotewotICAgIGlmIChtX3N0YXR1cyAhPSBOT19FUlJPUikgewotICAgICAgICByZXR1cm4gbV9zdGF0dXM7Ci0gICAgfQotICAgIGlmIChtX2hlYWRlci50eXBlICE9IEJBQ0tVUF9IRUFERVJfRU5USVRZX1YxKSB7Ci0gICAgICAgIHJldHVybiBFSU5WQUw7Ci0gICAgfQotICAgIGlmIChtX2hlYWRlci5lbnRpdHkuZGF0YVNpemUgPiAwKSB7Ci0gICAgICAgIGludCBwb3MgPSBsc2VlayhtX2ZkLCBtX2RhdGFFbmRQb3MsIFNFRUtfU0VUKTsKLSAgICAgICAgaWYgKHBvcyA9PSAtMSkgewotICAgICAgICAgICAgcmV0dXJuIGVycm5vOwotICAgICAgICB9Ci0gICAgICAgIG1fcG9zID0gcG9zOwotICAgIH0KLSAgICBTS0lQX1BBRERJTkcoKTsKLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXNzaXplX3QKLUJhY2t1cERhdGFSZWFkZXI6OlJlYWRFbnRpdHlEYXRhKHZvaWQqIGRhdGEsIHNpemVfdCBzaXplKQotewotICAgIGlmIChtX3N0YXR1cyAhPSBOT19FUlJPUikgewotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIGludCByZW1haW5pbmcgPSBtX2RhdGFFbmRQb3MgLSBtX3BvczsKLSAgICAvL0FMT0dEKCJSZWFkRW50aXR5RGF0YSBzaXplPSVkIG1fcG9zPTB4JXggbV9kYXRhRW5kUG9zPTB4JXggcmVtYWluaW5nPSVkXG4iLAotICAgIC8vICAgICAgICBzaXplLCBtX3BvcywgbV9kYXRhRW5kUG9zLCByZW1haW5pbmcpOwotICAgIGlmIChyZW1haW5pbmcgPD0gMCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgaWYgKCgoaW50KXNpemUpID4gcmVtYWluaW5nKSB7Ci0gICAgICAgIHNpemUgPSByZW1haW5pbmc7Ci0gICAgfQotICAgIC8vQUxPR0QoIiAgIHJlYWRpbmcgJWQgYnl0ZXMiLCBzaXplKTsKLSAgICBpbnQgYW10ID0gcmVhZChtX2ZkLCBkYXRhLCBzaXplKTsKLSAgICBpZiAoYW10IDwgMCkgewotICAgICAgICBtX3N0YXR1cyA9IGVycm5vOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIGlmIChhbXQgPT0gMCkgewotICAgICAgICBtX3N0YXR1cyA9IEVJTzsKLSAgICAgICAgbV9kb25lID0gdHJ1ZTsKLSAgICB9Ci0gICAgbV9wb3MgKz0gYW10OwotICAgIHJldHVybiBhbXQ7Ci19Ci0KLXN0YXR1c190Ci1CYWNrdXBEYXRhUmVhZGVyOjpza2lwX3BhZGRpbmcoKQotewotICAgIHNzaXplX3QgYW10OwotICAgIHNzaXplX3QgcGFkZGluZ1NpemU7Ci0KLSAgICBwYWRkaW5nU2l6ZSA9IHBhZGRpbmdfZXh0cmEobV9wb3MpOwotICAgIGlmIChwYWRkaW5nU2l6ZSA+IDApIHsKLSAgICAgICAgdWludDMyX3QgcGFkZGluZzsKLSAgICAgICAgYW10ID0gcmVhZChtX2ZkLCAmcGFkZGluZywgcGFkZGluZ1NpemUpOwotICAgICAgICBDSEVDS19TSVpFKGFtdCwgcGFkZGluZ1NpemUpOwotICAgICAgICBtX3BvcyArPSBhbXQ7Ci0gICAgfQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotCi19IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9saWJzL2FuZHJvaWRmdy9CYWNrdXBIZWxwZXJzLmNwcCBiL2xpYnMvYW5kcm9pZGZ3L0JhY2t1cEhlbHBlcnMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOGQzZjQ4Li4wMDAwMDAwCi0tLSBhL2xpYnMvYW5kcm9pZGZ3L0JhY2t1cEhlbHBlcnMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTU5MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2RlZmluZSBMT0dfVEFHICJmaWxlX2JhY2t1cF9oZWxwZXIiCi0KLSNpbmNsdWRlIDxhbmRyb2lkZncvQmFja3VwSGVscGVycy5oPgotCi0jaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KLSNpbmNsdWRlIDx1dGlscy9CeXRlT3JkZXIuaD4KLSNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+Ci0KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy91aW8uaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+ICAvLyBmb3IgdXRpbWVzCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDx1dGltZS5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8emxpYi5oPgotCi0jaW5jbHVkZSA8Y3V0aWxzL2xvZy5oPgotCi1uYW1lc3BhY2UgYW5kcm9pZCB7Ci0KLSNkZWZpbmUgTUFHSUMwIDB4NzA2MTZlNTMgLy8gU25hcAotI2RlZmluZSBNQUdJQzEgMHg2NTZjNjk0NiAvLyBGaWxlCi0KLS8qCi0gKiBGaWxlIGVudGl0eSBkYXRhIGZvcm1hdCAodjEpOgotICoKLSAqICAgLSA0LWJ5dGUgdmVyc2lvbiBudW1iZXIgb2YgdGhlIG1ldGFkYXRhLCBsaXR0bGUgZW5kaWFuICgweDAwMDAwMDAxIGZvciB2MSkKLSAqICAgLSAxMiBieXRlcyBvZiBtZXRhZGF0YQotICogICAtIHRoZSBmaWxlIGRhdGEgaXRzZWxmCi0gKgotICogaS5lLiBhIDE2LWJ5dGUgbWV0YWRhdGEgaGVhZGVyIGZvbGxvd2VkIGJ5IHRoZSByYXcgZmlsZSBkYXRhLiAgSWYgdGhlCi0gKiByZXN0b3JlIGNvZGUgZG9lcyBub3QgcmVjb2duaXplIHRoZSBtZXRhZGF0YSB2ZXJzaW9uLCBpdCBjYW4gc3RpbGwKLSAqIGludGVycHJldCB0aGUgZmlsZSBkYXRhIGl0c2VsZiBjb3JyZWN0bHkuCi0gKgotICogZmlsZV9tZXRhZGF0YV92MToKLSAqCi0gKiAgIC0gNCBieXRlIHZlcnNpb24gbnVtYmVyID09PSAweDAwMDAwMDAxIChsaXR0bGUgZW5kaWFuKQotICogICAtIDQtYnl0ZSBhY2Nlc3MgbW9kZSAobGl0dGxlLWVuZGlhbikKLSAqICAgLSB1bmRlZmluZWQgKDggYnl0ZXMpCi0gKi8KLQotc3RydWN0IGZpbGVfbWV0YWRhdGFfdjEgewotICAgIGludCB2ZXJzaW9uOwotICAgIGludCBtb2RlOwotICAgIGludCB1bmRlZmluZWRfMTsKLSAgICBpbnQgdW5kZWZpbmVkXzI7Ci19OwotCi1jb25zdCBzdGF0aWMgaW50IENVUlJFTlRfTUVUQURBVEFfVkVSU0lPTiA9IDE7Ci0KLSNpZiAxCi0jZGVmaW5lIExPR1AoZiwgeC4uLikKLSNlbHNlCi0jaWYgVEVTVF9CQUNLVVBfSEVMUEVSUwotI2RlZmluZSBMT0dQKGYsIHguLi4pIHByaW50ZihmICJcbiIsIHgpCi0jZWxzZQotI2RlZmluZSBMT0dQKHguLi4pIEFMT0dEKHgpCi0jZW5kaWYKLSNlbmRpZgotCi1jb25zdCBzdGF0aWMgaW50IFJPVU5EX1VQWzRdID0geyAwLCAzLCAyLCAxIH07Ci0KLXN0YXRpYyBpbmxpbmUgaW50Ci1yb3VuZF91cChpbnQgbikKLXsKLSAgICByZXR1cm4gbiArIFJPVU5EX1VQW24gJSA0XTsKLX0KLQotc3RhdGljIGludAotcmVhZF9zbmFwc2hvdF9maWxlKGludCBmZCwgS2V5ZWRWZWN0b3I8U3RyaW5nOCxGaWxlU3RhdGU+KiBzbmFwc2hvdCkKLXsKLSAgICBpbnQgYnl0ZXNSZWFkID0gMDsKLSAgICBpbnQgYW10OwotICAgIFNuYXBzaG90SGVhZGVyIGhlYWRlcjsKLQotICAgIGFtdCA9IHJlYWQoZmQsICZoZWFkZXIsIHNpemVvZihoZWFkZXIpKTsKLSAgICBpZiAoYW10ICE9IHNpemVvZihoZWFkZXIpKSB7Ci0gICAgICAgIHJldHVybiBlcnJubzsKLSAgICB9Ci0gICAgYnl0ZXNSZWFkICs9IGFtdDsKLQotICAgIGlmIChoZWFkZXIubWFnaWMwICE9IE1BR0lDMCB8fCBoZWFkZXIubWFnaWMxICE9IE1BR0lDMSkgewotICAgICAgICBBTE9HVygicmVhZF9zbmFwc2hvdF9maWxlIGhlYWRlci5tYWdpYzA9MHglMDh4IG1hZ2ljMT0weCUwOHgiLCBoZWFkZXIubWFnaWMwLCBoZWFkZXIubWFnaWMxKTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgZm9yIChpbnQgaT0wOyBpPGhlYWRlci5maWxlQ291bnQ7IGkrKykgewotICAgICAgICBGaWxlU3RhdGUgZmlsZTsKLSAgICAgICAgY2hhciBmaWxlbmFtZUJ1ZlsxMjhdOwotCi0gICAgICAgIGFtdCA9IHJlYWQoZmQsICZmaWxlLCBzaXplb2YoRmlsZVN0YXRlKSk7Ci0gICAgICAgIGlmIChhbXQgIT0gc2l6ZW9mKEZpbGVTdGF0ZSkpIHsKLSAgICAgICAgICAgIEFMT0dXKCJyZWFkX3NuYXBzaG90X2ZpbGUgRmlsZVN0YXRlIHRydW5jYXRlZC9lcnJvciB3aXRoIHJlYWQgYXQgJWQgYnl0ZXNcbiIsIGJ5dGVzUmVhZCk7Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotICAgICAgICBieXRlc1JlYWQgKz0gYW10OwotCi0gICAgICAgIC8vIGZpbGVuYW1lIGlzIG5vdCBOVUxMIHRlcm1pbmF0ZWQsIGJ1dCBpdCBpcyBwYWRkZWQKLSAgICAgICAgaW50IG5hbWVCdWZTaXplID0gcm91bmRfdXAoZmlsZS5uYW1lTGVuKTsKLSAgICAgICAgY2hhciogZmlsZW5hbWUgPSBuYW1lQnVmU2l6ZSA8PSAoaW50KXNpemVvZihmaWxlbmFtZUJ1ZikKLSAgICAgICAgICAgICAgICA/IGZpbGVuYW1lQnVmCi0gICAgICAgICAgICAgICAgOiAoY2hhciopbWFsbG9jKG5hbWVCdWZTaXplKTsKLSAgICAgICAgYW10ID0gcmVhZChmZCwgZmlsZW5hbWUsIG5hbWVCdWZTaXplKTsKLSAgICAgICAgaWYgKGFtdCA9PSBuYW1lQnVmU2l6ZSkgewotICAgICAgICAgICAgc25hcHNob3QtPmFkZChTdHJpbmc4KGZpbGVuYW1lLCBmaWxlLm5hbWVMZW4pLCBmaWxlKTsKLSAgICAgICAgfQotICAgICAgICBieXRlc1JlYWQgKz0gYW10OwotICAgICAgICBpZiAoZmlsZW5hbWUgIT0gZmlsZW5hbWVCdWYpIHsKLSAgICAgICAgICAgIGZyZWUoZmlsZW5hbWUpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChhbXQgIT0gbmFtZUJ1ZlNpemUpIHsKLSAgICAgICAgICAgIEFMT0dXKCJyZWFkX3NuYXBzaG90X2ZpbGUgZmlsZW5hbWUgdHJ1bmNhdGVkL2Vycm9yIHdpdGggcmVhZCBhdCAlZCBieXRlc1xuIiwgYnl0ZXNSZWFkKTsKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGhlYWRlci50b3RhbFNpemUgIT0gYnl0ZXNSZWFkKSB7Ci0gICAgICAgIEFMT0dXKCJyZWFkX3NuYXBzaG90X2ZpbGUgbGVuZ3RoIG1pc21hdGNoOiBoZWFkZXIudG90YWxTaXplPSVkIGJ5dGVzUmVhZD0lZFxuIiwKLSAgICAgICAgICAgICAgICBoZWFkZXIudG90YWxTaXplLCBieXRlc1JlYWQpOwotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludAotd3JpdGVfc25hcHNob3RfZmlsZShpbnQgZmQsIGNvbnN0IEtleWVkVmVjdG9yPFN0cmluZzgsRmlsZVJlYz4mIHNuYXBzaG90KQotewotICAgIGludCBmaWxlQ291bnQgPSAwOwotICAgIGludCBieXRlc1dyaXR0ZW4gPSBzaXplb2YoU25hcHNob3RIZWFkZXIpOwotICAgIC8vIHByZWZsaWdodCBzaXplCi0gICAgY29uc3QgaW50IE4gPSBzbmFwc2hvdC5zaXplKCk7Ci0gICAgZm9yIChpbnQgaT0wOyBpPE47IGkrKykgewotICAgICAgICBjb25zdCBGaWxlUmVjJiBnID0gc25hcHNob3QudmFsdWVBdChpKTsKLSAgICAgICAgaWYgKCFnLmRlbGV0ZWQpIHsKLSAgICAgICAgICAgIGNvbnN0IFN0cmluZzgmIG5hbWUgPSBzbmFwc2hvdC5rZXlBdChpKTsKLSAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiArPSBzaXplb2YoRmlsZVN0YXRlKSArIHJvdW5kX3VwKG5hbWUubGVuZ3RoKCkpOwotICAgICAgICAgICAgZmlsZUNvdW50Kys7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBMT0dQKCJ3cml0ZV9zbmFwc2hvdF9maWxlIGZkPSVkXG4iLCBmZCk7Ci0KLSAgICBpbnQgYW10OwotICAgIFNuYXBzaG90SGVhZGVyIGhlYWRlciA9IHsgTUFHSUMwLCBmaWxlQ291bnQsIE1BR0lDMSwgYnl0ZXNXcml0dGVuIH07Ci0KLSAgICBhbXQgPSB3cml0ZShmZCwgJmhlYWRlciwgc2l6ZW9mKGhlYWRlcikpOwotICAgIGlmIChhbXQgIT0gc2l6ZW9mKGhlYWRlcikpIHsKLSAgICAgICAgQUxPR1coIndyaXRlX3NuYXBzaG90X2ZpbGUgZXJyb3Igd3JpdGluZyBoZWFkZXIgJXMiLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICByZXR1cm4gZXJybm87Ci0gICAgfQotCi0gICAgZm9yIChpbnQgaT0wOyBpPE47IGkrKykgewotICAgICAgICBGaWxlUmVjIHIgPSBzbmFwc2hvdC52YWx1ZUF0KGkpOwotICAgICAgICBpZiAoIXIuZGVsZXRlZCkgewotICAgICAgICAgICAgY29uc3QgU3RyaW5nOCYgbmFtZSA9IHNuYXBzaG90LmtleUF0KGkpOwotICAgICAgICAgICAgaW50IG5hbWVMZW4gPSByLnMubmFtZUxlbiA9IG5hbWUubGVuZ3RoKCk7Ci0KLSAgICAgICAgICAgIGFtdCA9IHdyaXRlKGZkLCAmci5zLCBzaXplb2YoRmlsZVN0YXRlKSk7Ci0gICAgICAgICAgICBpZiAoYW10ICE9IHNpemVvZihGaWxlU3RhdGUpKSB7Ci0gICAgICAgICAgICAgICAgQUxPR1coIndyaXRlX3NuYXBzaG90X2ZpbGUgZXJyb3Igd3JpdGluZyBoZWFkZXIgJXMiLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBmaWxlbmFtZSBpcyBub3QgTlVMTCB0ZXJtaW5hdGVkLCBidXQgaXQgaXMgcGFkZGVkCi0gICAgICAgICAgICBhbXQgPSB3cml0ZShmZCwgbmFtZS5zdHJpbmcoKSwgbmFtZUxlbik7Ci0gICAgICAgICAgICBpZiAoYW10ICE9IG5hbWVMZW4pIHsKLSAgICAgICAgICAgICAgICBBTE9HVygid3JpdGVfc25hcHNob3RfZmlsZSBlcnJvciB3cml0aW5nIGZpbGVuYW1lICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGludCBwYWRkaW5nTGVuID0gUk9VTkRfVVBbbmFtZUxlbiAlIDRdOwotICAgICAgICAgICAgaWYgKHBhZGRpbmdMZW4gIT0gMCkgewotICAgICAgICAgICAgICAgIGludCBwYWRkaW5nID0gMHhhYmFiYWJhYjsKLSAgICAgICAgICAgICAgICBhbXQgPSB3cml0ZShmZCwgJnBhZGRpbmcsIHBhZGRpbmdMZW4pOwotICAgICAgICAgICAgICAgIGlmIChhbXQgIT0gcGFkZGluZ0xlbikgewotICAgICAgICAgICAgICAgICAgICBBTE9HVygid3JpdGVfc25hcHNob3RfZmlsZSBlcnJvciB3cml0aW5nICVkIGJ5dGVzIG9mIGZpbGVuYW1lIHBhZGRpbmcgJXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZW4sIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgaW50Ci13cml0ZV9kZWxldGVfZmlsZShCYWNrdXBEYXRhV3JpdGVyKiBkYXRhU3RyZWFtLCBjb25zdCBTdHJpbmc4JiBrZXkpCi17Ci0gICAgTE9HUCgid3JpdGVfZGVsZXRlX2ZpbGUgJXNcbiIsIGtleS5zdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGRhdGFTdHJlYW0tPldyaXRlRW50aXR5SGVhZGVyKGtleSwgLTEpOwotfQotCi1zdGF0aWMgaW50Ci13cml0ZV91cGRhdGVfZmlsZShCYWNrdXBEYXRhV3JpdGVyKiBkYXRhU3RyZWFtLCBpbnQgZmQsIGludCBtb2RlLCBjb25zdCBTdHJpbmc4JiBrZXksCi0gICAgICAgIGNoYXIgY29uc3QqIHJlYWxGaWxlbmFtZSkKLXsKLSAgICBMT0dQKCJ3cml0ZV91cGRhdGVfZmlsZSAlcyAoJXMpIDogbW9kZSAwJW9cbiIsIHJlYWxGaWxlbmFtZSwga2V5LnN0cmluZygpLCBtb2RlKTsKLQotICAgIGNvbnN0IGludCBidWZzaXplID0gNCoxMDI0OwotICAgIGludCBlcnI7Ci0gICAgaW50IGFtdDsKLSAgICBpbnQgZmlsZVNpemU7Ci0gICAgaW50IGJ5dGVzTGVmdDsKLSAgICBmaWxlX21ldGFkYXRhX3YxIG1ldGFkYXRhOwotCi0gICAgY2hhciogYnVmID0gKGNoYXIqKW1hbGxvYyhidWZzaXplKTsKLSAgICBpbnQgY3JjID0gY3JjMzIoMEwsIFpfTlVMTCwgMCk7Ci0KLQotICAgIGZpbGVTaXplID0gbHNlZWsoZmQsIDAsIFNFRUtfRU5EKTsKLSAgICBsc2VlayhmZCwgMCwgU0VFS19TRVQpOwotCi0gICAgaWYgKHNpemVvZihtZXRhZGF0YSkgIT0gMTYpIHsKLSAgICAgICAgQUxPR0UoIkVSUk9SOiBtZXRhZGF0YSBibG9jayBpcyB0aGUgd3Jvbmcgc2l6ZSEiKTsKLSAgICB9Ci0KLSAgICBieXRlc0xlZnQgPSBmaWxlU2l6ZSArIHNpemVvZihtZXRhZGF0YSk7Ci0gICAgZXJyID0gZGF0YVN0cmVhbS0+V3JpdGVFbnRpdHlIZWFkZXIoa2V5LCBieXRlc0xlZnQpOwotICAgIGlmIChlcnIgIT0gMCkgewotICAgICAgICBmcmVlKGJ1Zik7Ci0gICAgICAgIHJldHVybiBlcnI7Ci0gICAgfQotCi0gICAgLy8gc3RvcmUgdGhlIGZpbGUgbWV0YWRhdGEgZmlyc3QKLSAgICBtZXRhZGF0YS52ZXJzaW9uID0gdG9sZWwoQ1VSUkVOVF9NRVRBREFUQV9WRVJTSU9OKTsKLSAgICBtZXRhZGF0YS5tb2RlID0gdG9sZWwobW9kZSk7Ci0gICAgbWV0YWRhdGEudW5kZWZpbmVkXzEgPSBtZXRhZGF0YS51bmRlZmluZWRfMiA9IDA7Ci0gICAgZXJyID0gZGF0YVN0cmVhbS0+V3JpdGVFbnRpdHlEYXRhKCZtZXRhZGF0YSwgc2l6ZW9mKG1ldGFkYXRhKSk7Ci0gICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgIGZyZWUoYnVmKTsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0gICAgYnl0ZXNMZWZ0IC09IHNpemVvZihtZXRhZGF0YSk7IC8vIGJ5dGVzTGVmdCBzaG91bGQgPT0gZmlsZVNpemUgbm93Ci0KLSAgICAvLyBub3cgc3RvcmUgdGhlIGZpbGUgY29udGVudAotICAgIHdoaWxlICgoYW10ID0gcmVhZChmZCwgYnVmLCBidWZzaXplKSkgIT0gMCAmJiBieXRlc0xlZnQgPiAwKSB7Ci0gICAgICAgIGJ5dGVzTGVmdCAtPSBhbXQ7Ci0gICAgICAgIGlmIChieXRlc0xlZnQgPCAwKSB7Ci0gICAgICAgICAgICBhbXQgKz0gYnl0ZXNMZWZ0OyAvLyBQbHVzIGEgbmVnYXRpdmUgaXMgbWludXMuICBEb24ndCB3cml0ZSBtb3JlIHRoYW4gd2UgcHJvbWlzZWQuCi0gICAgICAgIH0KLSAgICAgICAgZXJyID0gZGF0YVN0cmVhbS0+V3JpdGVFbnRpdHlEYXRhKGJ1ZiwgYW10KTsKLSAgICAgICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgICAgICBmcmVlKGJ1Zik7Ci0gICAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmIChieXRlc0xlZnQgIT0gMCkgewotICAgICAgICBpZiAoYnl0ZXNMZWZ0ID4gMCkgewotICAgICAgICAgICAgLy8gUGFkIG91dCB0aGUgc3BhY2Ugd2UgcHJvbWlzZWQgaW4gdGhlIGJ1ZmZlci4gIFdlIGNhbid0IGNvcnJ1cHQgdGhlIGJ1ZmZlciwKLSAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoZSBkYXRhIHdlJ3JlIHNlbmRpbmcgaXMgcHJvYmFibHkgYmFkLgotICAgICAgICAgICAgbWVtc2V0KGJ1ZiwgMCwgYnVmc2l6ZSk7Ci0gICAgICAgICAgICB3aGlsZSAoYnl0ZXNMZWZ0ID4gMCkgewotICAgICAgICAgICAgICAgIGFtdCA9IGJ5dGVzTGVmdCA8IGJ1ZnNpemUgPyBieXRlc0xlZnQgOiBidWZzaXplOwotICAgICAgICAgICAgICAgIGJ5dGVzTGVmdCAtPSBhbXQ7Ci0gICAgICAgICAgICAgICAgZXJyID0gZGF0YVN0cmVhbS0+V3JpdGVFbnRpdHlEYXRhKGJ1ZiwgYW10KTsKLSAgICAgICAgICAgICAgICBpZiAoZXJyICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgZnJlZShidWYpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBBTE9HRSgid3JpdGVfdXBkYXRlX2ZpbGUgc2l6ZSBtaXNtYXRjaCBmb3IgJXMuIGV4cGVjdGVkPSVkIGFjdHVhbD0lZC4iCi0gICAgICAgICAgICAgICAgIiBZb3UgYXJlbid0IGRvaW5nIHByb3BlciBsb2NraW5nISIsIHJlYWxGaWxlbmFtZSwgZmlsZVNpemUsIGZpbGVTaXplLWJ5dGVzTGVmdCk7Ci0gICAgfQotCi0gICAgZnJlZShidWYpOwotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3RhdGljIGludAotd3JpdGVfdXBkYXRlX2ZpbGUoQmFja3VwRGF0YVdyaXRlciogZGF0YVN0cmVhbSwgY29uc3QgU3RyaW5nOCYga2V5LCBjaGFyIGNvbnN0KiByZWFsRmlsZW5hbWUpCi17Ci0gICAgaW50IGVycjsKLSAgICBzdHJ1Y3Qgc3RhdCBzdDsKLQotICAgIGVyciA9IHN0YXQocmVhbEZpbGVuYW1lLCAmc3QpOwotICAgIGlmIChlcnIgPCAwKSB7Ci0gICAgICAgIHJldHVybiBlcnJubzsKLSAgICB9Ci0KLSAgICBpbnQgZmQgPSBvcGVuKHJlYWxGaWxlbmFtZSwgT19SRE9OTFkpOwotICAgIGlmIChmZCA9PSAtMSkgewotICAgICAgICByZXR1cm4gZXJybm87Ci0gICAgfQotCi0gICAgZXJyID0gd3JpdGVfdXBkYXRlX2ZpbGUoZGF0YVN0cmVhbSwgZmQsIHN0LnN0X21vZGUsIGtleSwgcmVhbEZpbGVuYW1lKTsKLSAgICBjbG9zZShmZCk7Ci0gICAgcmV0dXJuIGVycjsKLX0KLQotc3RhdGljIGludAotY29tcHV0ZV9jcmMzMihpbnQgZmQpCi17Ci0gICAgY29uc3QgaW50IGJ1ZnNpemUgPSA0KjEwMjQ7Ci0gICAgaW50IGFtdDsKLQotICAgIGNoYXIqIGJ1ZiA9IChjaGFyKiltYWxsb2MoYnVmc2l6ZSk7Ci0gICAgaW50IGNyYyA9IGNyYzMyKDBMLCBaX05VTEwsIDApOwotCi0gICAgbHNlZWsoZmQsIDAsIFNFRUtfU0VUKTsKLQotICAgIHdoaWxlICgoYW10ID0gcmVhZChmZCwgYnVmLCBidWZzaXplKSkgIT0gMCkgewotICAgICAgICBjcmMgPSBjcmMzMihjcmMsIChCeXRlZiopYnVmLCBhbXQpOwotICAgIH0KLQotICAgIGZyZWUoYnVmKTsKLSAgICByZXR1cm4gY3JjOwotfQotCi1pbnQKLWJhY2tfdXBfZmlsZXMoaW50IG9sZFNuYXBzaG90RkQsIEJhY2t1cERhdGFXcml0ZXIqIGRhdGFTdHJlYW0sIGludCBuZXdTbmFwc2hvdEZELAotICAgICAgICBjaGFyIGNvbnN0KiBjb25zdCogZmlsZXMsIGNoYXIgY29uc3QqIGNvbnN0KiBrZXlzLCBpbnQgZmlsZUNvdW50KQotewotICAgIGludCBlcnI7Ci0gICAgS2V5ZWRWZWN0b3I8U3RyaW5nOCxGaWxlU3RhdGU+IG9sZFNuYXBzaG90OwotICAgIEtleWVkVmVjdG9yPFN0cmluZzgsRmlsZVJlYz4gbmV3U25hcHNob3Q7Ci0KLSAgICBpZiAob2xkU25hcHNob3RGRCAhPSAtMSkgewotICAgICAgICBlcnIgPSByZWFkX3NuYXBzaG90X2ZpbGUob2xkU25hcHNob3RGRCwgJm9sZFNuYXBzaG90KTsKLSAgICAgICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgICAgICAvLyBPbiBhbiBlcnJvciwgdHJlYXQgdGhpcyBhcyBhIGZ1bGwgYmFja3VwLgotICAgICAgICAgICAgb2xkU25hcHNob3QuY2xlYXIoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZvciAoaW50IGk9MDsgaTxmaWxlQ291bnQ7IGkrKykgewotICAgICAgICBTdHJpbmc4IGtleShrZXlzW2ldKTsKLSAgICAgICAgRmlsZVJlYyByOwotICAgICAgICBjaGFyIGNvbnN0KiBmaWxlID0gZmlsZXNbaV07Ci0gICAgICAgIHIuZmlsZSA9IGZpbGU7Ci0gICAgICAgIHN0cnVjdCBzdGF0IHN0OwotCi0gICAgICAgIGVyciA9IHN0YXQoZmlsZSwgJnN0KTsKLSAgICAgICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgICAgICByLmRlbGV0ZWQgPSB0cnVlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgci5kZWxldGVkID0gZmFsc2U7Ci0gICAgICAgICAgICByLnMubW9kVGltZV9zZWMgPSBzdC5zdF9tdGltZTsKLSAgICAgICAgICAgIHIucy5tb2RUaW1lX25zZWMgPSAwOyAvLyB3b3JrYXJvdW5kIHNpbSBicmVha2FnZQotICAgICAgICAgICAgLy9yLnMubW9kVGltZV9uc2VjID0gc3Quc3RfbXRpbWVfbnNlYzsKLSAgICAgICAgICAgIHIucy5tb2RlID0gc3Quc3RfbW9kZTsKLSAgICAgICAgICAgIHIucy5zaXplID0gc3Quc3Rfc2l6ZTsKLSAgICAgICAgICAgIC8vIHdlIGNvbXB1dGUgdGhlIGNyYzMyIGxhdGVyIGRvd24gYmVsb3csIHdoZW4gd2UgYWxyZWFkeSBoYXZlIHRoZSBmaWxlIG9wZW4uCi0KLSAgICAgICAgICAgIGlmIChuZXdTbmFwc2hvdC5pbmRleE9mS2V5KGtleSkgPj0gMCkgewotICAgICAgICAgICAgICAgIExPR1AoImJhY2tfdXBfZmlsZXMga2V5IGFscmVhZHkgaW4gdXNlICclcyciLCBrZXkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBuZXdTbmFwc2hvdC5hZGQoa2V5LCByKTsKLSAgICB9Ci0KLSAgICBpbnQgbiA9IDA7Ci0gICAgaW50IE4gPSBvbGRTbmFwc2hvdC5zaXplKCk7Ci0gICAgaW50IG0gPSAwOwotCi0gICAgd2hpbGUgKG48TiAmJiBtPGZpbGVDb3VudCkgewotICAgICAgICBjb25zdCBTdHJpbmc4JiBwID0gb2xkU25hcHNob3Qua2V5QXQobik7Ci0gICAgICAgIGNvbnN0IFN0cmluZzgmIHEgPSBuZXdTbmFwc2hvdC5rZXlBdChtKTsKLSAgICAgICAgRmlsZVJlYyYgZyA9IG5ld1NuYXBzaG90LmVkaXRWYWx1ZUF0KG0pOwotICAgICAgICBpbnQgY21wID0gcC5jb21wYXJlKHEpOwotICAgICAgICBpZiAoZy5kZWxldGVkIHx8IGNtcCA8IDApIHsKLSAgICAgICAgICAgIC8vIGZpbGUgcmVtb3ZlZAotICAgICAgICAgICAgTE9HUCgiZmlsZSByZW1vdmVkOiAlcyIsIHAuc3RyaW5nKCkpOwotICAgICAgICAgICAgZy5kZWxldGVkID0gdHJ1ZTsgLy8gVGhleSBkaWRuJ3QgbWVudGlvbiB0aGUgZmlsZSwgYnV0IHdlIG5vdGljZWQgdGhhdCBpdCdzIGdvbmUuCi0gICAgICAgICAgICBkYXRhU3RyZWFtLT5Xcml0ZUVudGl0eUhlYWRlcihwLCAtMSk7Ci0gICAgICAgICAgICBuKys7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoY21wID4gMCkgewotICAgICAgICAgICAgLy8gZmlsZSBhZGRlZAotICAgICAgICAgICAgTE9HUCgiZmlsZSBhZGRlZDogJXMiLCBnLmZpbGUuc3RyaW5nKCkpOwotICAgICAgICAgICAgd3JpdGVfdXBkYXRlX2ZpbGUoZGF0YVN0cmVhbSwgcSwgZy5maWxlLnN0cmluZygpKTsKLSAgICAgICAgICAgIG0rKzsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8vIGJvdGggZmlsZXMgZXhpc3QsIGNoZWNrIHRoZW0KLSAgICAgICAgICAgIGNvbnN0IEZpbGVTdGF0ZSYgZiA9IG9sZFNuYXBzaG90LnZhbHVlQXQobik7Ci0KLSAgICAgICAgICAgIGludCBmZCA9IG9wZW4oZy5maWxlLnN0cmluZygpLCBPX1JET05MWSk7Ci0gICAgICAgICAgICBpZiAoZmQgPCAwKSB7Ci0gICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3Qgb3BlbiB0aGUgZmlsZS4gIERvbid0IHJlcG9ydCBpdCBhcyBhIGRlbGV0ZSBlaXRoZXIuICBMZXQgdGhlCi0gICAgICAgICAgICAgICAgLy8gc2VydmVyIGtlZXAgdGhlIG9sZCB2ZXJzaW9uLiAgTWF5YmUgdGhleSdsbCBiZSBhYmxlIHRvIGRlYWwgd2l0aCBpdAotICAgICAgICAgICAgICAgIC8vIG9uIHJlc3RvcmUuCi0gICAgICAgICAgICAgICAgTE9HUCgiVW5hYmxlIHRvIG9wZW4gZmlsZSAlcyAtIHNraXBwaW5nIiwgZy5maWxlLnN0cmluZygpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZy5zLmNyYzMyID0gY29tcHV0ZV9jcmMzMihmZCk7Ci0KLSAgICAgICAgICAgICAgICBMT0dQKCIlcyIsIHEuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIExPR1AoIiAgbmV3OiBtb2RUaW1lPSVkLCVkIG1vZGU9JTA0byBzaXplPSUtM2QgY3JjMzI9MHglMDh4IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGYubW9kVGltZV9zZWMsIGYubW9kVGltZV9uc2VjLCBmLm1vZGUsIGYuc2l6ZSwgZi5jcmMzMik7Ci0gICAgICAgICAgICAgICAgTE9HUCgiICBvbGQ6IG1vZFRpbWU9JWQsJWQgbW9kZT0lMDRvIHNpemU9JS0zZCBjcmMzMj0weCUwOHgiLAotICAgICAgICAgICAgICAgICAgICAgICAgZy5zLm1vZFRpbWVfc2VjLCBnLnMubW9kVGltZV9uc2VjLCBnLnMubW9kZSwgZy5zLnNpemUsIGcucy5jcmMzMik7Ci0gICAgICAgICAgICAgICAgaWYgKGYubW9kVGltZV9zZWMgIT0gZy5zLm1vZFRpbWVfc2VjIHx8IGYubW9kVGltZV9uc2VjICE9IGcucy5tb2RUaW1lX25zZWMKLSAgICAgICAgICAgICAgICAgICAgICAgIHx8IGYubW9kZSAhPSBnLnMubW9kZSB8fCBmLnNpemUgIT0gZy5zLnNpemUgfHwgZi5jcmMzMiAhPSBnLnMuY3JjMzIpIHsKLSAgICAgICAgICAgICAgICAgICAgd3JpdGVfdXBkYXRlX2ZpbGUoZGF0YVN0cmVhbSwgZmQsIGcucy5tb2RlLCBwLCBnLmZpbGUuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGNsb3NlKGZkKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG4rKzsKLSAgICAgICAgICAgIG0rKzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIHRoZXNlIHdlcmUgZGVsZXRlZAotICAgIHdoaWxlIChuPE4pIHsKLSAgICAgICAgZGF0YVN0cmVhbS0+V3JpdGVFbnRpdHlIZWFkZXIob2xkU25hcHNob3Qua2V5QXQobiksIC0xKTsKLSAgICAgICAgbisrOwotICAgIH0KLQotICAgIC8vIHRoZXNlIHdlcmUgYWRkZWQKLSAgICB3aGlsZSAobTxmaWxlQ291bnQpIHsKLSAgICAgICAgY29uc3QgU3RyaW5nOCYgcSA9IG5ld1NuYXBzaG90LmtleUF0KG0pOwotICAgICAgICBGaWxlUmVjJiBnID0gbmV3U25hcHNob3QuZWRpdFZhbHVlQXQobSk7Ci0gICAgICAgIHdyaXRlX3VwZGF0ZV9maWxlKGRhdGFTdHJlYW0sIHEsIGcuZmlsZS5zdHJpbmcoKSk7Ci0gICAgICAgIG0rKzsKLSAgICB9Ci0KLSAgICBlcnIgPSB3cml0ZV9zbmFwc2hvdF9maWxlKG5ld1NuYXBzaG90RkQsIG5ld1NuYXBzaG90KTsKLQotICAgIHJldHVybiAwOwotfQotCi0vLyBVdGlsaXR5IGZ1bmN0aW9uLCBlcXVpdmFsZW50IHRvIHN0cGNweSgpOiBwZXJmb3JtIGEgc3RyY3B5LCBidXQgaW5zdGVhZCBvZgotLy8gcmV0dXJuaW5nIHRoZSBpbml0aWFsIGRlc3QsIHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIHRyYWlsaW5nIE5VTC4KLXN0YXRpYyBjaGFyKiBzdHJjcHlfcHRyKGNoYXIqIGRlc3QsIGNvbnN0IGNoYXIqIHN0cikgewotICAgIGlmIChkZXN0ICYmIHN0cikgewotICAgICAgICB3aGlsZSAoKCpkZXN0ID0gKnN0cikgIT0gMCkgewotICAgICAgICAgICAgZGVzdCsrOwotICAgICAgICAgICAgc3RyKys7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIGRlc3Q7Ci19Ci0KLXN0YXRpYyB2b2lkIGNhbGNfdGFyX2NoZWNrc3VtKGNoYXIqIGJ1ZikgewotICAgIC8vIFsgMTQ4IDogICA4IF0gY2hlY2tzdW0gLS0gdG8gYmUgY2FsY3VsYXRlZCB3aXRoIHRoaXMgZmllbGQgYXMgc3BhY2UgY2hhcnMKLSAgICBtZW1zZXQoYnVmICsgMTQ4LCAnICcsIDgpOwotCi0gICAgdWludDE2X3Qgc3VtID0gMDsKLSAgICBmb3IgKHVpbnQ4X3QqIHAgPSAodWludDhfdCopIGJ1ZjsgcCA8ICgodWludDhfdCopYnVmKSArIDUxMjsgcCsrKSB7Ci0gICAgICAgIHN1bSArPSAqcDsKLSAgICB9Ci0KLSAgICAvLyBOb3cgd3JpdGUgdGhlIHJlYWwgY2hlY2tzdW0gdmFsdWU6Ci0gICAgLy8gWyAxNDggOiAgIDggXSAgY2hlY2tzdW06IDYgb2N0YWwgZGlnaXRzIFtsZWFkaW5nIHplcm9lc10sIE5VTCwgU1BDCi0gICAgc3ByaW50ZihidWYgKyAxNDgsICIlMDZvIiwgc3VtKTsgLy8gdGhlIHRyYWlsaW5nIHNwYWNlIGlzIGFscmVhZHkgaW4gcGxhY2UKLX0KLQotLy8gUmV0dXJucyBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbgotc3RhdGljIGludCB3cml0ZV9wYXhfaGVhZGVyX2VudHJ5KGNoYXIqIGJ1ZiwgY29uc3QgY2hhcioga2V5LCBjb25zdCBjaGFyKiB2YWx1ZSkgewotICAgIC8vIHN0YXJ0IHdpdGggdGhlIHNpemUgb2YgIjEga2V5PXZhbHVlXG4iCi0gICAgaW50IGxlbiA9IHN0cmxlbihrZXkpICsgc3RybGVuKHZhbHVlKSArIDQ7Ci0gICAgaWYgKGxlbiA+IDkpIGxlbisrOwotICAgIGlmIChsZW4gPiA5OSkgbGVuKys7Ci0gICAgaWYgKGxlbiA+IDk5OSkgbGVuKys7Ci0gICAgLy8gc2luY2UgUEFUSF9NQVggaXMgNDA5NiB3ZSBkb24ndCBleHBlY3QgdG8gaGF2ZSB0byBnZW5lcmF0ZSBhbnkgc2luZ2xlCi0gICAgLy8gaGVhZGVyIGVudHJ5IGxvbmdlciB0aGFuIDk5OTkgY2hhcmFjdGVycwotCi0gICAgcmV0dXJuIHNwcmludGYoYnVmLCAiJWQgJXM9JXNcbiIsIGxlbiwga2V5LCB2YWx1ZSk7Ci19Ci0KLS8vIFdpcmUgZm9ybWF0IHRvIHRoZSBiYWNrdXAgbWFuYWdlciBzZXJ2aWNlIGlzIGNodW5rZWQ6ICBlYWNoIGNodW5rIGlzIHByZWZpeGVkIGJ5Ci0vLyBhIDQtYnl0ZSBjb3VudCBvZiBpdHMgc2l6ZS4gIEEgY2h1bmsgc2l6ZSBvZiB6ZXJvIChmb3VyIHplcm8gYnl0ZXMpIGluZGljYXRlcyBFT0QuCi12b2lkIHNlbmRfdGFyZmlsZV9jaHVuayhCYWNrdXBEYXRhV3JpdGVyKiB3cml0ZXIsIGNvbnN0IGNoYXIqIGJ1ZmZlciwgc2l6ZV90IHNpemUpIHsKLSAgICB1aW50MzJfdCBjaHVua19zaXplX25vID0gaHRvbmwoc2l6ZSk7Ci0gICAgd3JpdGVyLT5Xcml0ZUVudGl0eURhdGEoJmNodW5rX3NpemVfbm8sIDQpOwotICAgIGlmIChzaXplICE9IDApIHdyaXRlci0+V3JpdGVFbnRpdHlEYXRhKGJ1ZmZlciwgc2l6ZSk7Ci19Ci0KLWludCB3cml0ZV90YXJmaWxlKGNvbnN0IFN0cmluZzgmIHBhY2thZ2VOYW1lLCBjb25zdCBTdHJpbmc4JiBkb21haW4sCi0gICAgICAgIGNvbnN0IFN0cmluZzgmIHJvb3RwYXRoLCBjb25zdCBTdHJpbmc4JiBmaWxlcGF0aCwgQmFja3VwRGF0YVdyaXRlciogd3JpdGVyKQotewotICAgIC8vIEluIHRoZSBvdXRwdXQgc3RyZWFtIGV2ZXJ5dGhpbmcgaXMgc3RvcmVkIHJlbGF0aXZlIHRvIHRoZSByb290Ci0gICAgY29uc3QgY2hhciogcmVsc3RhcnQgPSBmaWxlcGF0aC5zdHJpbmcoKSArIHJvb3RwYXRoLmxlbmd0aCgpOwotICAgIGlmICgqcmVsc3RhcnQgPT0gJy8nKSByZWxzdGFydCsrOyAgICAgLy8gd29uJ3QgYmUgdHJ1ZSB3aGVuIHBhdGggPT0gcm9vdHBhdGgKLSAgICBTdHJpbmc4IHJlbHBhdGgocmVsc3RhcnQpOwotCi0gICAgLy8gSWYgcmVscGF0aCBpcyBlbXB0eSwgaXQgbWVhbnMgdGhpcyBpcyB0aGUgdG9wIG9mIG9uZSBvZiB0aGUgc3RhbmRhcmQgbmFtZWQKLSAgICAvLyBkb21haW4gZGlyZWN0b3JpZXMsIHNvIHdlIHNob3VsZCBqdXN0IHNraXAgaXQKLSAgICBpZiAocmVscGF0aC5sZW5ndGgoKSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8vIFRvbyBsb25nIGEgbmFtZSBmb3IgdGhlIHVzdGFyIGZvcm1hdD8KLSAgICAvLyAgICAiYXBwcy8iICsgcGFja2FnZW5hbWUgKyAnLycgKyBkb21haW5wYXRoIDwgMTU1IGNoYXJzCi0gICAgLy8gICAgcmVscGF0aCA8IDEwMCBjaGFycwotICAgIGJvb2wgbmVlZEV4dGVuZGVkID0gZmFsc2U7Ci0gICAgaWYgKCg1ICsgcGFja2FnZU5hbWUubGVuZ3RoKCkgKyAxICsgZG9tYWluLmxlbmd0aCgpID49IDE1NSkgfHwgKHJlbHBhdGgubGVuZ3RoKCkgPj0gMTAwKSkgewotICAgICAgICBuZWVkRXh0ZW5kZWQgPSB0cnVlOwotICAgIH0KLQotICAgIC8vIE5vbi03Yml0LWNsZWFuIHBhdGggYWxzbyBtZWFucyBuZWVkaW5nIHBheCBleHRlbmRlZCBmb3JtYXQKLSAgICBpZiAoIW5lZWRFeHRlbmRlZCkgewotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZpbGVwYXRoLmxlbmd0aCgpOyBpKyspIHsKLSAgICAgICAgICAgIGlmICgoZmlsZXBhdGhbaV0gJiAweDgwKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgbmVlZEV4dGVuZGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGludCBlcnIgPSAwOwotICAgIHN0cnVjdCBzdGF0NjQgczsKLSAgICBpZiAobHN0YXQ2NChmaWxlcGF0aC5zdHJpbmcoKSwgJnMpICE9IDApIHsKLSAgICAgICAgZXJyID0gZXJybm87Ci0gICAgICAgIEFMT0dFKCJFcnJvciAlZCAoJXMpIGZyb20gbHN0YXQ2NCglcykiLCBlcnIsIHN0cmVycm9yKGVyciksIGZpbGVwYXRoLnN0cmluZygpKTsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0KLSAgICBTdHJpbmc4IGZ1bGxuYW1lOyAgIC8vIGZvciBwYXggbGF0ZXIgb24KLSAgICBTdHJpbmc4IHByZWZpeDsKLQotICAgIGNvbnN0IGludCBpc2RpciA9IFNfSVNESVIocy5zdF9tb2RlKTsKLSAgICBpZiAoaXNkaXIpIHMuc3Rfc2l6ZSA9IDA7ICAgLy8gZGlyZWN0b3JpZXMgZ2V0IG5vIGFjdHVhbCBkYXRhIGluIHRoZSB0YXIgc3RyZWFtCi0KLSAgICAvLyAhISEgVE9ETzogdXNlIG1tYXAgd2hlbiBwb3NzaWJsZSB0byBhdm9pZCBjaHVybmluZyB0aGUgYnVmZmVyIGNhY2hlCi0gICAgLy8gISEhIFRPRE86IHRoaXMgd2lsbCBicmVhayB3aXRoIHN5bWxpbmtzOyBuZWVkIHRvIHVzZSByZWFkbGluaygyKQotICAgIGludCBmZCA9IG9wZW4oZmlsZXBhdGguc3RyaW5nKCksIE9fUkRPTkxZKTsKLSAgICBpZiAoZmQgPCAwKSB7Ci0gICAgICAgIGVyciA9IGVycm5vOwotICAgICAgICBBTE9HRSgiRXJyb3IgJWQgKCVzKSBmcm9tIG9wZW4oJXMpIiwgZXJyLCBzdHJlcnJvcihlcnIpLCBmaWxlcGF0aC5zdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBlcnI7Ci0gICAgfQotCi0gICAgLy8gcmVhZC93cml0ZSB1cCB0byB0aGlzIG11Y2ggYXQgYSB0aW1lLgotICAgIGNvbnN0IHNpemVfdCBCVUZTSVpFID0gMzIgKiAxMDI0OwotICAgIGNoYXIqIGJ1ZiA9IChjaGFyICopY2FsbG9jKDEsQlVGU0laRSk7Ci0gICAgY2hhciogcGF4SGVhZGVyID0gYnVmICsgNTEyOyAgICAvLyB1c2UgYSBkaWZmZXJlbnQgY2h1bmsgb2YgaXQgYXMgc2VwYXJhdGUgc2NyYXRjaAotICAgIGNoYXIqIHBheERhdGEgPSBidWYgKyAxMDI0OwotCi0gICAgaWYgKGJ1ZiA9PSBOVUxMKSB7Ci0gICAgICAgIEFMT0dFKCJPdXQgb2YgbWVtIGFsbG9jYXRpbmcgdHJhbnNmZXIgYnVmZmVyIik7Ci0gICAgICAgIGVyciA9IEVOT01FTTsKLSAgICAgICAgZ290byBkb25lOwotICAgIH0KLQotICAgIC8vIE1hZ2ljIGZpZWxkcyBmb3IgdGhlIHVzdGFyIGZpbGUgZm9ybWF0Ci0gICAgc3RyY2F0KGJ1ZiArIDI1NywgInVzdGFyIik7Ci0gICAgc3RyY2F0KGJ1ZiArIDI2MywgIjAwIik7Ci0KLSAgICAvLyBbIDI2NSA6IDMyIF0gdXNlciBuYW1lLCBpZ25vcmVkIG9uIHJlc3RvcmUKLSAgICAvLyBbIDI5NyA6IDMyIF0gZ3JvdXAgbmFtZSwgaWdub3JlZCBvbiByZXN0b3JlCi0KLSAgICAvLyBbIDEwMCA6ICAgOCBdIGZpbGUgbW9kZQotICAgIHNucHJpbnRmKGJ1ZiArIDEwMCwgOCwgIiUwNm8gIiwgcy5zdF9tb2RlICYgflNfSUZNVCk7Ci0KLSAgICAvLyBbIDEwOCA6ICAgOCBdIHVpZCAtLSBpZ25vcmVkIGluIEFuZHJvaWQgZm9ybWF0OyB1aWRzIGFyZSByZW1hcHBlZCBhdCByZXN0b3JlIHRpbWUKLSAgICAvLyBbIDExNiA6ICAgOCBdIGdpZCAtLSBpZ25vcmVkIGluIEFuZHJvaWQgZm9ybWF0Ci0gICAgc25wcmludGYoYnVmICsgMTA4LCA4LCAiMCVsbyIsIHMuc3RfdWlkKTsKLSAgICBzbnByaW50ZihidWYgKyAxMTYsIDgsICIwJWxvIiwgcy5zdF9naWQpOwotCi0gICAgLy8gWyAxMjQgOiAgMTIgXSBmaWxlIHNpemUgaW4gYnl0ZXMKLSAgICBpZiAocy5zdF9zaXplID4gMDc3Nzc3Nzc3Nzc3TEwpIHsKLSAgICAgICAgLy8gdmVyeSBsYXJnZSBmaWxlcyBuZWVkIGEgcGF4IGV4dGVuZGVkIHNpemUgaGVhZGVyCi0gICAgICAgIG5lZWRFeHRlbmRlZCA9IHRydWU7Ci0gICAgfQotICAgIHNucHJpbnRmKGJ1ZiArIDEyNCwgMTIsICIlMDExbGxvIiwgKGlzZGlyKSA/IDBMTCA6IHMuc3Rfc2l6ZSk7Ci0KLSAgICAvLyBbIDEzNiA6ICAxMiBdIGxhc3QgbW9kIHRpbWUgYXMgYSBVVEMgdGltZV90Ci0gICAgc25wcmludGYoYnVmICsgMTM2LCAxMiwgIiUwbG8iLCBzLnN0X210aW1lKTsKLQotICAgIC8vIFsgMTU2IDogICAxIF0gbGluay9maWxlIHR5cGUKLSAgICB1aW50OF90IHR5cGU7Ci0gICAgaWYgKGlzZGlyKSB7Ci0gICAgICAgIHR5cGUgPSAnNSc7ICAgICAvLyB0YXIgbWFnaWM6ICc1JyA9PSBkaXJlY3RvcnkKLSAgICB9IGVsc2UgaWYgKFNfSVNSRUcocy5zdF9tb2RlKSkgewotICAgICAgICB0eXBlID0gJzAnOyAgICAgLy8gdGFyIG1hZ2ljOiAnMCcgPT0gbm9ybWFsIGZpbGUKLSAgICB9IGVsc2UgewotICAgICAgICBBTE9HVygiRXJyb3I6IHVua25vd24gZmlsZSBtb2RlIDAlbyBbJXNdIiwgcy5zdF9tb2RlLCBmaWxlcGF0aC5zdHJpbmcoKSk7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0gICAgYnVmWzE1Nl0gPSB0eXBlOwotCi0gICAgLy8gWyAxNTcgOiAxMDAgXSBuYW1lIG9mIGxpbmtlZCBmaWxlIFtub3QgaW1wbGVtZW50ZWRdCi0KLSAgICB7Ci0gICAgICAgIC8vIFByZWZpeCBhbmQgbWFpbiByZWxhdGl2ZSBwYXRoLiAgUGF0aCBsZW5ndGhzIGhhdmUgYmVlbiBwcmVmbGlnaHRlZC4KLSAgICAgICAgaWYgKHBhY2thZ2VOYW1lLmxlbmd0aCgpID4gMCkgewotICAgICAgICAgICAgcHJlZml4ID0gImFwcHMvIjsKLSAgICAgICAgICAgIHByZWZpeCArPSBwYWNrYWdlTmFtZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoZG9tYWluLmxlbmd0aCgpID4gMCkgewotICAgICAgICAgICAgcHJlZml4LmFwcGVuZFBhdGgoZG9tYWluKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIHBheCBleHRlbmRlZCBtZWFucyB3ZSBkb24ndCBwdXQgaW4gYSBwcmVmaXggZmllbGQsIGFuZCBwdXQgYSBkaWZmZXJlbnQKLSAgICAgICAgLy8gc3RyaW5nIGluIHRoZSBiYXNpYyBuYW1lIGZpZWxkLiAgV2UgY2FuIGFsc28gY29uc3RydWN0IHRoZSBmdWxsIHBhdGggbmFtZQotICAgICAgICAvLyBvdXQgb2YgdGhlIHN1YnN0cmluZ3Mgd2UndmUgbm93IGJ1aWx0LgotICAgICAgICBmdWxsbmFtZSA9IHByZWZpeDsKLSAgICAgICAgZnVsbG5hbWUuYXBwZW5kUGF0aChyZWxwYXRoKTsKLQotICAgICAgICAvLyB1c3RhcjoKLSAgICAgICAgLy8gICAgWyAgIDAgOiAxMDAgXTsgZmlsZSBuYW1lL3BhdGgKLSAgICAgICAgLy8gICAgWyAzNDUgOiAxNTUgXSBmaWxlbmFtZSBwYXRoIHByZWZpeAotICAgICAgICAvLyBXZSBvbmx5IHVzZSB0aGUgcHJlZml4IGFyZWEgaWYgZnVsbG5hbWUgd29uJ3QgZml0IGluIHRoZSBwYXRoCi0gICAgICAgIGlmIChmdWxsbmFtZS5sZW5ndGgoKSA+IDEwMCkgewotICAgICAgICAgICAgc3RybmNweShidWYsIHJlbHBhdGguc3RyaW5nKCksIDEwMCk7Ci0gICAgICAgICAgICBzdHJuY3B5KGJ1ZiArIDM0NSwgcHJlZml4LnN0cmluZygpLCAxNTUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc3RybmNweShidWYsIGZ1bGxuYW1lLnN0cmluZygpLCAxMDApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gWyAzMjkgOiA4IF0gYW5kIFsgMzM3IDogOCBdIGRldm1ham9yL2Rldm1pbm9yLCBub3QgdXNlZAotCi0gICAgQUxPR0koIiAgIE5hbWU6ICVzIiwgZnVsbG5hbWUuc3RyaW5nKCkpOwotCi0gICAgLy8gSWYgd2UncmUgdXNpbmcgYSBwYXggZXh0ZW5kZWQgaGVhZGVyLCBidWlsZCAmIHdyaXRlIHRoYXQgaGVyZTsgbGVuZ3RocyBhcmUKLSAgICAvLyBhbHJlYWR5IHByZWZsaWdodGVkCi0gICAgaWYgKG5lZWRFeHRlbmRlZCkgewotICAgICAgICBjaGFyIHNpemVTdHJbMzJdOyAgIC8vIGJpZyBlbm91Z2ggZm9yIGEgNjQtYml0IHVuc2lnbmVkIHZhbHVlIGluIGRlY2ltYWwKLSAgICAgICAgY2hhciogcCA9IHBheERhdGE7Ci0KLSAgICAgICAgLy8gY29uc3RydWN0IHRoZSBwYXggZXh0ZW5kZWQgaGVhZGVyIGRhdGEgYmxvY2sKLSAgICAgICAgbWVtc2V0KHBheERhdGEsIDAsIEJVRlNJWkUgLSAocGF4RGF0YSAtIGJ1ZikpOwotICAgICAgICBpbnQgbGVuOwotCi0gICAgICAgIC8vIHNpemUgaGVhZGVyIC0tIGNhbGMgbGVuIGluIGRpZ2l0cyBieSBhY3R1YWxseSByZW5kZXJpbmcgdGhlIG51bWJlcgotICAgICAgICAvLyB0byBhIHN0cmluZyAtIGJydXRlIGZvcmNlIGJ1dCBzaW1wbGUKLSAgICAgICAgc25wcmludGYoc2l6ZVN0ciwgc2l6ZW9mKHNpemVTdHIpLCAiJWxsZCIsIHMuc3Rfc2l6ZSk7Ci0gICAgICAgIHAgKz0gd3JpdGVfcGF4X2hlYWRlcl9lbnRyeShwLCAic2l6ZSIsIHNpemVTdHIpOwotCi0gICAgICAgIC8vIGZ1bGxuYW1lIHdhcyBnZW5lcmF0ZWQgYWJvdmUgd2l0aCB0aGUgdXN0YXIgcGF0aHMKLSAgICAgICAgcCArPSB3cml0ZV9wYXhfaGVhZGVyX2VudHJ5KHAsICJwYXRoIiwgZnVsbG5hbWUuc3RyaW5nKCkpOwotCi0gICAgICAgIC8vIE5vdyB3ZSBrbm93IGhvdyBiaWcgdGhlIHBheCBkYXRhIGlzCi0gICAgICAgIGludCBwYXhMZW4gPSBwIC0gcGF4RGF0YTsKLQotICAgICAgICAvLyBOb3cgYnVpbGQgdGhlIHBheCAqaGVhZGVyKiB0ZW1wbGF0ZWQgb24gdGhlIHVzdGFyIGhlYWRlcgotICAgICAgICBtZW1jcHkocGF4SGVhZGVyLCBidWYsIDUxMik7Ci0KLSAgICAgICAgU3RyaW5nOCBsZWFmID0gZnVsbG5hbWUuZ2V0UGF0aExlYWYoKTsKLSAgICAgICAgbWVtc2V0KHBheEhlYWRlciwgMCwgMTAwKTsgICAgICAgICAgICAgICAgICAvLyByZXdyaXRlIHRoZSBuYW1lIGFyZWEKLSAgICAgICAgc25wcmludGYocGF4SGVhZGVyLCAxMDAsICJQYXhIZWFkZXIvJXMiLCBsZWFmLnN0cmluZygpKTsKLSAgICAgICAgbWVtc2V0KHBheEhlYWRlciArIDM0NSwgMCwgMTU1KTsgICAgICAgICAgICAvLyByZXdyaXRlIHRoZSBwcmVmaXggYXJlYQotICAgICAgICBzdHJuY3B5KHBheEhlYWRlciArIDM0NSwgcHJlZml4LnN0cmluZygpLCAxNTUpOwotCi0gICAgICAgIHBheEhlYWRlclsxNTZdID0gJ3gnOyAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyayBpdCBhcyBhIHBheCBleHRlbmRlZCBoZWFkZXIKLQotICAgICAgICAvLyBbIDEyNCA6ICAxMiBdIHNpemUgb2YgcGF4IGV4dGVuZGVkIGhlYWRlciBkYXRhCi0gICAgICAgIG1lbXNldChwYXhIZWFkZXIgKyAxMjQsIDAsIDEyKTsKLSAgICAgICAgc25wcmludGYocGF4SGVhZGVyICsgMTI0LCAxMiwgIiUwMTFvIiwgcCAtIHBheERhdGEpOwotCi0gICAgICAgIC8vIENoZWNrc3VtIGFuZCB3cml0ZSB0aGUgcGF4IGJsb2NrIGhlYWRlcgotICAgICAgICBjYWxjX3Rhcl9jaGVja3N1bShwYXhIZWFkZXIpOwotICAgICAgICBzZW5kX3RhcmZpbGVfY2h1bmsod3JpdGVyLCBwYXhIZWFkZXIsIDUxMik7Ci0KLSAgICAgICAgLy8gTm93IHdyaXRlIHRoZSBwYXggZGF0YSBpdHNlbGYKLSAgICAgICAgaW50IHBheGJsb2NrcyA9IChwYXhMZW4gKyA1MTEpIC8gNTEyOwotICAgICAgICBzZW5kX3RhcmZpbGVfY2h1bmsod3JpdGVyLCBwYXhEYXRhLCA1MTIgKiBwYXhibG9ja3MpOwotICAgIH0KLQotICAgIC8vIENoZWNrc3VtIGFuZCB3cml0ZSB0aGUgNTEyLWJ5dGUgdXN0YXIgZmlsZSBoZWFkZXIgYmxvY2sgdG8gdGhlIG91dHB1dAotICAgIGNhbGNfdGFyX2NoZWNrc3VtKGJ1Zik7Ci0gICAgc2VuZF90YXJmaWxlX2NodW5rKHdyaXRlciwgYnVmLCA1MTIpOwotCi0gICAgLy8gTm93IHdyaXRlIHRoZSBmaWxlIGRhdGEgaXRzZWxmLCBmb3IgcmVhbCBmaWxlcy4gIFdlIGhvbm9yIHRhcidzIGNvbnZlbnRpb24gdGhhdAotICAgIC8vIG9ubHkgZnVsbCA1MTItYnl0ZSBibG9ja3MgYXJlIHNlbnQgdG8gd3JpdGUoKS4KLSAgICBpZiAoIWlzZGlyKSB7Ci0gICAgICAgIG9mZjY0X3QgdG9Xcml0ZSA9IHMuc3Rfc2l6ZTsKLSAgICAgICAgd2hpbGUgKHRvV3JpdGUgPiAwKSB7Ci0gICAgICAgICAgICBzaXplX3QgdG9SZWFkID0gKHRvV3JpdGUgPCBCVUZTSVpFKSA/IHRvV3JpdGUgOiBCVUZTSVpFOwotICAgICAgICAgICAgc3NpemVfdCBuUmVhZCA9IHJlYWQoZmQsIGJ1ZiwgdG9SZWFkKTsKLSAgICAgICAgICAgIGlmIChuUmVhZCA8IDApIHsKLSAgICAgICAgICAgICAgICBlcnIgPSBlcnJubzsKLSAgICAgICAgICAgICAgICBBTE9HRSgiVW5hYmxlIHRvIHJlYWQgZmlsZSBbJXNdLCBlcnI9JWQgKCVzKSIsIGZpbGVwYXRoLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgZXJyLCBzdHJlcnJvcihlcnIpKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoblJlYWQgPT0gMCkgewotICAgICAgICAgICAgICAgIEFMT0dFKCJFT0YgYnV0IGV4cGVjdCAlbGxkIG1vcmUgYnl0ZXMgaW4gWyVzXSIsIChsb25nIGxvbmcpIHRvV3JpdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBmaWxlcGF0aC5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgZXJyID0gRUlPOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBBdCBFT0Ygd2UgbWlnaHQgaGF2ZSBhIHNob3J0IGJsb2NrOyBOVUwtcGFkIHRoYXQgdG8gYSA1MTItYnl0ZSBtdWx0aXBsZS4gIFRoaXMKLSAgICAgICAgICAgIC8vIGRlcGVuZHMgb24gdGhlIE9TIGd1YXJhbnRlZSB0aGF0IGZvciBvcmRpbmFyeSBmaWxlcywgcmVhZCgpIHdpbGwgbmV2ZXIgcmV0dXJuCi0gICAgICAgICAgICAvLyBsZXNzIHRoYW4gdGhlIG51bWJlciBvZiBieXRlcyByZXF1ZXN0ZWQuCi0gICAgICAgICAgICBzc2l6ZV90IHBhcnRpYWwgPSAoblJlYWQrNTEyKSAlIDUxMjsKLSAgICAgICAgICAgIGlmIChwYXJ0aWFsID4gMCkgewotICAgICAgICAgICAgICAgIHNzaXplX3QgcmVtYWluZGVyID0gNTEyIC0gcGFydGlhbDsKLSAgICAgICAgICAgICAgICBtZW1zZXQoYnVmICsgblJlYWQsIDAsIHJlbWFpbmRlcik7Ci0gICAgICAgICAgICAgICAgblJlYWQgKz0gcmVtYWluZGVyOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2VuZF90YXJmaWxlX2NodW5rKHdyaXRlciwgYnVmLCBuUmVhZCk7Ci0gICAgICAgICAgICB0b1dyaXRlIC09IG5SZWFkOwotICAgICAgICB9Ci0gICAgfQotCi1jbGVhbnVwOgotICAgIGZyZWUoYnVmKTsKLWRvbmU6Ci0gICAgY2xvc2UoZmQpOwotICAgIHJldHVybiBlcnI7Ci19Ci0vLyBlbmQgdGFyZmlsZQotCi0KLQotI2RlZmluZSBSRVNUT1JFX0JVRl9TSVpFICg4KjEwMjQpCi0KLVJlc3RvcmVIZWxwZXJCYXNlOjpSZXN0b3JlSGVscGVyQmFzZSgpCi17Ci0gICAgbV9idWYgPSBtYWxsb2MoUkVTVE9SRV9CVUZfU0laRSk7Ci0gICAgbV9sb2dnZWRVbmtub3duTWV0YWRhdGEgPSBmYWxzZTsKLX0KLQotUmVzdG9yZUhlbHBlckJhc2U6On5SZXN0b3JlSGVscGVyQmFzZSgpCi17Ci0gICAgZnJlZShtX2J1Zik7Ci19Ci0KLXN0YXR1c190Ci1SZXN0b3JlSGVscGVyQmFzZTo6V3JpdGVGaWxlKGNvbnN0IFN0cmluZzgmIGZpbGVuYW1lLCBCYWNrdXBEYXRhUmVhZGVyKiBpbikKLXsKLSAgICBzc2l6ZV90IGVycjsKLSAgICBzaXplX3QgZGF0YVNpemU7Ci0gICAgU3RyaW5nOCBrZXk7Ci0gICAgaW50IGZkOwotICAgIHZvaWQqIGJ1ZiA9IG1fYnVmOwotICAgIHNzaXplX3QgYW10OwotICAgIGludCBtb2RlOwotICAgIGludCBjcmM7Ci0gICAgc3RydWN0IHN0YXQgc3Q7Ci0gICAgRmlsZVJlYyByOwotCi0gICAgZXJyID0gaW4tPlJlYWRFbnRpdHlIZWFkZXIoJmtleSwgJmRhdGFTaXplKTsKLSAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiBlcnI7Ci0gICAgfQotCi0gICAgLy8gR2V0IHRoZSBtZXRhZGF0YSBibG9jayBvZmYgdGhlIGhlYWQgb2YgdGhlIGZpbGUgZW50aXR5IGFuZCB1c2UgdGhhdCB0bwotICAgIC8vIHNldCB1cCB0aGUgb3V0cHV0IGZpbGUKLSAgICBmaWxlX21ldGFkYXRhX3YxIG1ldGFkYXRhOwotICAgIGFtdCA9IGluLT5SZWFkRW50aXR5RGF0YSgmbWV0YWRhdGEsIHNpemVvZihtZXRhZGF0YSkpOwotICAgIGlmIChhbXQgIT0gc2l6ZW9mKG1ldGFkYXRhKSkgewotICAgICAgICBBTE9HVygiQ291bGQgbm90IHJlYWQgbWV0YWRhdGEgZm9yICVzIC0tICVsZCAvICVzIiwgZmlsZW5hbWUuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgKGxvbmcpYW10LCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICByZXR1cm4gRUlPOwotICAgIH0KLSAgICBtZXRhZGF0YS52ZXJzaW9uID0gZnJvbWxlbChtZXRhZGF0YS52ZXJzaW9uKTsKLSAgICBtZXRhZGF0YS5tb2RlID0gZnJvbWxlbChtZXRhZGF0YS5tb2RlKTsKLSAgICBpZiAobWV0YWRhdGEudmVyc2lvbiA+IENVUlJFTlRfTUVUQURBVEFfVkVSU0lPTikgewotICAgICAgICBpZiAoIW1fbG9nZ2VkVW5rbm93bk1ldGFkYXRhKSB7Ci0gICAgICAgICAgICBtX2xvZ2dlZFVua25vd25NZXRhZGF0YSA9IHRydWU7Ci0gICAgICAgICAgICBBTE9HVygiUmVzdG9yaW5nIGZpbGUgd2l0aCB1bnN1cHBvcnRlZCBtZXRhZGF0YSB2ZXJzaW9uICVkIChjdXJyZW50bHkgJWQpIiwKLSAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEudmVyc2lvbiwgQ1VSUkVOVF9NRVRBREFUQV9WRVJTSU9OKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBtb2RlID0gbWV0YWRhdGEubW9kZTsKLQotICAgIC8vIFdyaXRlIHRoZSBmaWxlIGFuZCBjb21wdXRlIHRoZSBjcmMKLSAgICBjcmMgPSBjcmMzMigwTCwgWl9OVUxMLCAwKTsKLSAgICBmZCA9IG9wZW4oZmlsZW5hbWUuc3RyaW5nKCksIE9fQ1JFQVR8T19SRFdSfE9fVFJVTkMsIG1vZGUpOwotICAgIGlmIChmZCA9PSAtMSkgewotICAgICAgICBBTE9HVygiQ291bGQgbm90IG9wZW4gZmlsZSAlcyAtLSAlcyIsIGZpbGVuYW1lLnN0cmluZygpLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICByZXR1cm4gZXJybm87Ci0gICAgfQotICAgIAotICAgIHdoaWxlICgoYW10ID0gaW4tPlJlYWRFbnRpdHlEYXRhKGJ1ZiwgUkVTVE9SRV9CVUZfU0laRSkpID4gMCkgewotICAgICAgICBlcnIgPSB3cml0ZShmZCwgYnVmLCBhbXQpOwotICAgICAgICBpZiAoZXJyICE9IGFtdCkgewotICAgICAgICAgICAgY2xvc2UoZmQpOwotICAgICAgICAgICAgQUxPR1coIkVycm9yICclcycgd3JpdGluZyAnJXMnIiwgc3RyZXJyb3IoZXJybm8pLCBmaWxlbmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICByZXR1cm4gZXJybm87Ci0gICAgICAgIH0KLSAgICAgICAgY3JjID0gY3JjMzIoY3JjLCAoQnl0ZWYqKWJ1ZiwgYW10KTsKLSAgICB9Ci0KLSAgICBjbG9zZShmZCk7Ci0KLSAgICAvLyBSZWNvcmQgZm9yIHRoZSBzbmFwc2hvdAotICAgIGVyciA9IHN0YXQoZmlsZW5hbWUuc3RyaW5nKCksICZzdCk7Ci0gICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgIEFMT0dXKCJFcnJvciBzdGF0aW5nIGZpbGUgdGhhdCB3ZSBqdXN0IGNyZWF0ZWQgJXMiLCBmaWxlbmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBlcnJubzsKLSAgICB9Ci0KLSAgICByLmZpbGUgPSBmaWxlbmFtZTsKLSAgICByLmRlbGV0ZWQgPSBmYWxzZTsKLSAgICByLnMubW9kVGltZV9zZWMgPSBzdC5zdF9tdGltZTsKLSAgICByLnMubW9kVGltZV9uc2VjID0gMDsgLy8gd29ya2Fyb3VuZCBzaW0gYnJlYWthZ2UKLSAgICAvL3Iucy5tb2RUaW1lX25zZWMgPSBzdC5zdF9tdGltZV9uc2VjOwotICAgIHIucy5tb2RlID0gc3Quc3RfbW9kZTsKLSAgICByLnMuc2l6ZSA9IHN0LnN0X3NpemU7Ci0gICAgci5zLmNyYzMyID0gY3JjOwotCi0gICAgbV9maWxlcy5hZGQoa2V5LCByKTsKLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3RhdHVzX3QKLVJlc3RvcmVIZWxwZXJCYXNlOjpXcml0ZVNuYXBzaG90KGludCBmZCkKLXsKLSAgICByZXR1cm4gd3JpdGVfc25hcHNob3RfZmlsZShmZCwgbV9maWxlcyk7OwotfQotCi0jaWYgVEVTVF9CQUNLVVBfSEVMUEVSUwotCi0jZGVmaW5lIFNDUkFUQ0hfRElSICIvZGF0YS9iYWNrdXBfaGVscGVyX3Rlc3QvIgotCi1zdGF0aWMgaW50Ci13cml0ZV90ZXh0X2ZpbGUoY29uc3QgY2hhciogcGF0aCwgY29uc3QgY2hhciogZGF0YSkKLXsKLSAgICBpbnQgYW10OwotICAgIGludCBmZDsKLSAgICBpbnQgbGVuOwotCi0gICAgZmQgPSBjcmVhdChwYXRoLCAwNjY2KTsKLSAgICBpZiAoZmQgPT0gLTEpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJjcmVhdCAlcyBmYWlsZWRcbiIsIHBhdGgpOwotICAgICAgICByZXR1cm4gZXJybm87Ci0gICAgfQotCi0gICAgbGVuID0gc3RybGVuKGRhdGEpOwotICAgIGFtdCA9IHdyaXRlKGZkLCBkYXRhLCBsZW4pOwotICAgIGlmIChhbXQgIT0gbGVuKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3IgKCVzKSB3cml0aW5nIHRvIGZpbGUgJXNcbiIsIHN0cmVycm9yKGVycm5vKSwgcGF0aCk7Ci0gICAgICAgIHJldHVybiBlcnJubzsKLSAgICB9Ci0KLSAgICBjbG9zZShmZCk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludAotY29tcGFyZV9maWxlKGNvbnN0IGNoYXIqIHBhdGgsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGludCBsZW4pCi17Ci0gICAgaW50IGZkOwotICAgIGludCBhbXQ7Ci0KLSAgICBmZCA9IG9wZW4ocGF0aCwgT19SRE9OTFkpOwotICAgIGlmIChmZCA9PSAtMSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNvbXBhcmVfZmlsZSBlcnJvciAoJXMpIG9wZW5pbmcgJXNcbiIsIHN0cmVycm9yKGVycm5vKSwgcGF0aCk7Ci0gICAgICAgIHJldHVybiBlcnJubzsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBjaGFyKiBjb250ZW50cyA9ICh1bnNpZ25lZCBjaGFyKiltYWxsb2MobGVuKTsKLSAgICBpZiAoY29udGVudHMgPT0gTlVMTCkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIm1hbGxvYyglZCkgZmFpbGVkXG4iLCBsZW4pOwotICAgICAgICByZXR1cm4gRU5PTUVNOwotICAgIH0KLQotICAgIGJvb2wgc2l6ZXNNYXRjaCA9IHRydWU7Ci0gICAgYW10ID0gbHNlZWsoZmQsIDAsIFNFRUtfRU5EKTsKLSAgICBpZiAoYW10ICE9IGxlbikgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNvbXBhcmVfZmlsZSBmaWxlIGxlbmd0aCBzaG91bGQgYmUgJWQsIHdhcyAlZFxuIiwgbGVuLCBhbXQpOwotICAgICAgICBzaXplc01hdGNoID0gZmFsc2U7Ci0gICAgfQotICAgIGxzZWVrKGZkLCAwLCBTRUVLX1NFVCk7Ci0KLSAgICBpbnQgcmVhZExlbiA9IGFtdCA8IGxlbiA/IGFtdCA6IGxlbjsKLSAgICBhbXQgPSByZWFkKGZkLCBjb250ZW50cywgcmVhZExlbik7Ci0gICAgaWYgKGFtdCAhPSByZWFkTGVuKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiY29tcGFyZV9maWxlIHJlYWQgZXhwZWN0ZWQgJWQgYnl0ZXMgYnV0IGdvdCAlZFxuIiwgbGVuLCBhbXQpOwotICAgIH0KLQotICAgIGJvb2wgY29udGVudHNNYXRjaCA9IHRydWU7Ci0gICAgZm9yIChpbnQgaT0wOyBpPHJlYWRMZW47IGkrKykgewotICAgICAgICBpZiAoZGF0YVtpXSAhPSBjb250ZW50c1tpXSkgewotICAgICAgICAgICAgaWYgKGNvbnRlbnRzTWF0Y2gpIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNvbXBhcmVfZmlsZSBjb250ZW50cyBhcmUgZGlmZmVyZW50OiAoaW5kZXgsIGV4cGVjdGVkLCBhY3R1YWwpXG4iKTsKLSAgICAgICAgICAgICAgICBjb250ZW50c01hdGNoID0gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgWyUtMmRdICUwMnggJTAyeFxuIiwgaSwgZGF0YVtpXSwgY29udGVudHNbaV0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnJlZShjb250ZW50cyk7Ci0gICAgcmV0dXJuIGNvbnRlbnRzTWF0Y2ggJiYgc2l6ZXNNYXRjaCA/IDAgOiAxOwotfQotCi1pbnQKLWJhY2t1cF9oZWxwZXJfdGVzdF9lbXB0eSgpCi17Ci0gICAgaW50IGVycjsKLSAgICBpbnQgZmQ7Ci0gICAgS2V5ZWRWZWN0b3I8U3RyaW5nOCxGaWxlUmVjPiBzbmFwc2hvdDsKLSAgICBjb25zdCBjaGFyKiBmaWxlbmFtZSA9IFNDUkFUQ0hfRElSICJiYWNrdXBfaGVscGVyX3Rlc3RfZW1wdHkuc25hcCI7Ci0KLSAgICBzeXN0ZW0oInJtIC1yICIgU0NSQVRDSF9ESVIpOwotICAgIG1rZGlyKFNDUkFUQ0hfRElSLCAwNzc3KTsKLQotICAgIC8vIHdyaXRlCi0gICAgZmQgPSBjcmVhdChmaWxlbmFtZSwgMDY2Nik7Ci0gICAgaWYgKGZkID09IC0xKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3IgY3JlYXRpbmcgJXNcbiIsIGZpbGVuYW1lKTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgZXJyID0gd3JpdGVfc25hcHNob3RfZmlsZShmZCwgc25hcHNob3QpOwotCi0gICAgY2xvc2UoZmQpOwotCi0gICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAid3JpdGVfc25hcHNob3RfZmlsZSByZXBvcnRlZCBlcnJvciAlZCAoJXMpXG4iLCBlcnIsIHN0cmVycm9yKGVycikpOwotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLQotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGNvcnJlY3RfZGF0YVtdID0gewotICAgICAgICAweDUzLCAweDZlLCAweDYxLCAweDcwLCAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAgICAgMHg0NiwgMHg2OSwgMHg2YywgMHg2NSwgIDB4MTAsIDB4MDAsIDB4MDAsIDB4MDAKLSAgICB9OwotCi0gICAgZXJyID0gY29tcGFyZV9maWxlKGZpbGVuYW1lLCBjb3JyZWN0X2RhdGEsIHNpemVvZihjb3JyZWN0X2RhdGEpKTsKLSAgICBpZiAoZXJyICE9IDApIHsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0KLSAgICAvLyByZWFkCi0gICAgZmQgPSBvcGVuKGZpbGVuYW1lLCBPX1JET05MWSk7Ci0gICAgaWYgKGZkID09IC0xKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3Igb3BlbmluZyBmb3IgcmVhZCAlc1xuIiwgZmlsZW5hbWUpOwotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBLZXllZFZlY3RvcjxTdHJpbmc4LEZpbGVTdGF0ZT4gcmVhZFNuYXBzaG90OwotICAgIGVyciA9IHJlYWRfc25hcHNob3RfZmlsZShmZCwgJnJlYWRTbmFwc2hvdCk7Ci0gICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAicmVhZF9zbmFwc2hvdF9maWxlIGZhaWxlZCAlZFxuIiwgZXJyKTsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0KLSAgICBpZiAocmVhZFNuYXBzaG90LnNpemUoKSAhPSAwKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAicmVhZFNuYXBzaG90IHNob3VsZCBiZSBsZW5ndGggMFxuIik7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi1pbnQKLWJhY2t1cF9oZWxwZXJfdGVzdF9mb3VyKCkKLXsKLSAgICBpbnQgZXJyOwotICAgIGludCBmZDsKLSAgICBLZXllZFZlY3RvcjxTdHJpbmc4LEZpbGVSZWM+IHNuYXBzaG90OwotICAgIGNvbnN0IGNoYXIqIGZpbGVuYW1lID0gU0NSQVRDSF9ESVIgImJhY2t1cF9oZWxwZXJfdGVzdF9mb3VyLnNuYXAiOwotCi0gICAgc3lzdGVtKCJybSAtciAiIFNDUkFUQ0hfRElSKTsKLSAgICBta2RpcihTQ1JBVENIX0RJUiwgMDc3Nyk7Ci0KLSAgICAvLyB3cml0ZQotICAgIGZkID0gY3JlYXQoZmlsZW5hbWUsIDA2NjYpOwotICAgIGlmIChmZCA9PSAtMSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImVycm9yIG9wZW5pbmcgJXNcbiIsIGZpbGVuYW1lKTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgU3RyaW5nOCBmaWxlbmFtZXNbNF07Ci0gICAgRmlsZVN0YXRlIHN0YXRlc1s0XTsKLSAgICBGaWxlUmVjIHI7Ci0gICAgci5kZWxldGVkID0gZmFsc2U7Ci0KLSAgICBzdGF0ZXNbMF0ubW9kVGltZV9zZWMgPSAweGZlZGNiYTk4OwotICAgIHN0YXRlc1swXS5tb2RUaW1lX25zZWMgPSAweGRlYWRiZWVmOwotICAgIHN0YXRlc1swXS5tb2RlID0gMDc3NzsgLy8gZGVjaW1hbCA1MTEsIGhleCAweDAwMDAwMWZmCi0gICAgc3RhdGVzWzBdLnNpemUgPSAweGFiYWJiY2JjOwotICAgIHN0YXRlc1swXS5jcmMzMiA9IDB4MTIzNDU2Nzg7Ci0gICAgc3RhdGVzWzBdLm5hbWVMZW4gPSAtMTI7Ci0gICAgci5zID0gc3RhdGVzWzBdOwotICAgIGZpbGVuYW1lc1swXSA9IFN0cmluZzgoImJ5dGVzX29mX3BhZGRpbmciKTsKLSAgICBzbmFwc2hvdC5hZGQoZmlsZW5hbWVzWzBdLCByKTsKLQotICAgIHN0YXRlc1sxXS5tb2RUaW1lX3NlYyA9IDB4OTM0MDAwMzE7Ci0gICAgc3RhdGVzWzFdLm1vZFRpbWVfbnNlYyA9IDB4ZGVhZGJlZWY7Ci0gICAgc3RhdGVzWzFdLm1vZGUgPSAwNjY2OyAvLyBkZWNpbWFsIDQzOCwgaGV4IDB4MDAwMDAxYjYKLSAgICBzdGF0ZXNbMV0uc2l6ZSA9IDB4ODg1NTc3NjY7Ci0gICAgc3RhdGVzWzFdLmNyYzMyID0gMHgyMjMzNDQyMjsKLSAgICBzdGF0ZXNbMV0ubmFtZUxlbiA9IC0xOwotICAgIHIucyA9IHN0YXRlc1sxXTsKLSAgICBmaWxlbmFtZXNbMV0gPSBTdHJpbmc4KCJieXRlc19vZl9wYWRkaW5nMyIpOwotICAgIHNuYXBzaG90LmFkZChmaWxlbmFtZXNbMV0sIHIpOwotCi0gICAgc3RhdGVzWzJdLm1vZFRpbWVfc2VjID0gMHgzMzIyMTE0NDsKLSAgICBzdGF0ZXNbMl0ubW9kVGltZV9uc2VjID0gMHhkZWFkYmVlZjsKLSAgICBzdGF0ZXNbMl0ubW9kZSA9IDA3NDQ7IC8vIGRlY2ltYWwgNDg0LCBoZXggMHgwMDAwMDFlNAotICAgIHN0YXRlc1syXS5zaXplID0gMHgxMTIyMzM0NDsKLSAgICBzdGF0ZXNbMl0uY3JjMzIgPSAweDAxMTIyMzM0OwotICAgIHN0YXRlc1syXS5uYW1lTGVuID0gMDsKLSAgICByLnMgPSBzdGF0ZXNbMl07Ci0gICAgZmlsZW5hbWVzWzJdID0gU3RyaW5nOCgiYnl0ZXNfb2ZfcGFkZGluZ18yIik7Ci0gICAgc25hcHNob3QuYWRkKGZpbGVuYW1lc1syXSwgcik7Ci0KLSAgICBzdGF0ZXNbM10ubW9kVGltZV9zZWMgPSAweDMzMjIxMTQ0OwotICAgIHN0YXRlc1szXS5tb2RUaW1lX25zZWMgPSAweGRlYWRiZWVmOwotICAgIHN0YXRlc1szXS5tb2RlID0gMDc1NTsgLy8gZGVjaW1hbCA0OTMsIGhleCAweDAwMDAwMWVkCi0gICAgc3RhdGVzWzNdLnNpemUgPSAweDExMjIzMzQ0OwotICAgIHN0YXRlc1szXS5jcmMzMiA9IDB4MDExMjIzMzQ7Ci0gICAgc3RhdGVzWzNdLm5hbWVMZW4gPSAwOwotICAgIHIucyA9IHN0YXRlc1szXTsKLSAgICBmaWxlbmFtZXNbM10gPSBTdHJpbmc4KCJieXRlc19vZl9wYWRkaW5nX18xIik7Ci0gICAgc25hcHNob3QuYWRkKGZpbGVuYW1lc1szXSwgcik7Ci0KLSAgICBlcnIgPSB3cml0ZV9zbmFwc2hvdF9maWxlKGZkLCBzbmFwc2hvdCk7Ci0KLSAgICBjbG9zZShmZCk7Ci0KLSAgICBpZiAoZXJyICE9IDApIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJ3cml0ZV9zbmFwc2hvdF9maWxlIHJlcG9ydGVkIGVycm9yICVkICglcylcbiIsIGVyciwgc3RyZXJyb3IoZXJyKSk7Ci0gICAgICAgIHJldHVybiBlcnI7Ci0gICAgfQotCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgY29ycmVjdF9kYXRhW10gPSB7Ci0gICAgICAgIC8vIGhlYWRlcgotICAgICAgICAweDUzLCAweDZlLCAweDYxLCAweDcwLCAgMHgwNCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAgICAgMHg0NiwgMHg2OSwgMHg2YywgMHg2NSwgIDB4YmMsIDB4MDAsIDB4MDAsIDB4MDAsCi0KLSAgICAgICAgLy8gYnl0ZXNfb2ZfcGFkZGluZwotICAgICAgICAweDk4LCAweGJhLCAweGRjLCAweGZlLCAgMHhlZiwgMHhiZSwgMHhhZCwgMHhkZSwKLSAgICAgICAgMHhmZiwgMHgwMSwgMHgwMCwgMHgwMCwgIDB4YmMsIDB4YmMsIDB4YWIsIDB4YWIsCi0gICAgICAgIDB4NzgsIDB4NTYsIDB4MzQsIDB4MTIsICAweDEwLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgICAweDYyLCAweDc5LCAweDc0LCAweDY1LCAgMHg3MywgMHg1ZiwgMHg2ZiwgMHg2NiwKLSAgICAgICAgMHg1ZiwgMHg3MCwgMHg2MSwgMHg2NCwgIDB4NjQsIDB4NjksIDB4NmUsIDB4NjcsCi0KLSAgICAgICAgLy8gYnl0ZXNfb2ZfcGFkZGluZzMKLSAgICAgICAgMHgzMSwgMHgwMCwgMHg0MCwgMHg5MywgIDB4ZWYsIDB4YmUsIDB4YWQsIDB4ZGUsCi0gICAgICAgIDB4YjYsIDB4MDEsIDB4MDAsIDB4MDAsICAweDY2LCAweDc3LCAweDU1LCAweDg4LAotICAgICAgICAweDIyLCAweDQ0LCAweDMzLCAweDIyLCAgMHgxMSwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAgICAgMHg2MiwgMHg3OSwgMHg3NCwgMHg2NSwgIDB4NzMsIDB4NWYsIDB4NmYsIDB4NjYsCi0gICAgICAgIDB4NWYsIDB4NzAsIDB4NjEsIDB4NjQsICAweDY0LCAweDY5LCAweDZlLCAweDY3LAotICAgICAgICAweDMzLCAweGFiLCAweGFiLCAweGFiLAotCi0gICAgICAgIC8vIGJ5dGVzIG9mIHBhZGRpbmcyCi0gICAgICAgIDB4NDQsIDB4MTEsIDB4MjIsIDB4MzMsICAweGVmLCAweGJlLCAweGFkLCAweGRlLAotICAgICAgICAweGU0LCAweDAxLCAweDAwLCAweDAwLCAgMHg0NCwgMHgzMywgMHgyMiwgMHgxMSwKLSAgICAgICAgMHgzNCwgMHgyMywgMHgxMiwgMHgwMSwgIDB4MTIsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgICAgIDB4NjIsIDB4NzksIDB4NzQsIDB4NjUsICAweDczLCAweDVmLCAweDZmLCAweDY2LAotICAgICAgICAweDVmLCAweDcwLCAweDYxLCAweDY0LCAgMHg2NCwgMHg2OSwgMHg2ZSwgMHg2NywKLSAgICAgICAgMHg1ZiwgMHgzMiwgMHhhYiwgMHhhYiwKLQotICAgICAgICAvLyBieXRlcyBvZiBwYWRkaW5nMwotICAgICAgICAweDQ0LCAweDExLCAweDIyLCAweDMzLCAgMHhlZiwgMHhiZSwgMHhhZCwgMHhkZSwKLSAgICAgICAgMHhlZCwgMHgwMSwgMHgwMCwgMHgwMCwgIDB4NDQsIDB4MzMsIDB4MjIsIDB4MTEsCi0gICAgICAgIDB4MzQsIDB4MjMsIDB4MTIsIDB4MDEsICAweDEzLCAweDAwLCAweDAwLCAweDAwLAotICAgICAgICAweDYyLCAweDc5LCAweDc0LCAweDY1LCAgMHg3MywgMHg1ZiwgMHg2ZiwgMHg2NiwKLSAgICAgICAgMHg1ZiwgMHg3MCwgMHg2MSwgMHg2NCwgIDB4NjQsIDB4NjksIDB4NmUsIDB4NjcsCi0gICAgICAgIDB4NWYsIDB4NWYsIDB4MzEsIDB4YWIKLSAgICB9OwotCi0gICAgZXJyID0gY29tcGFyZV9maWxlKGZpbGVuYW1lLCBjb3JyZWN0X2RhdGEsIHNpemVvZihjb3JyZWN0X2RhdGEpKTsKLSAgICBpZiAoZXJyICE9IDApIHsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0KLSAgICAvLyByZWFkCi0gICAgZmQgPSBvcGVuKGZpbGVuYW1lLCBPX1JET05MWSk7Ci0gICAgaWYgKGZkID09IC0xKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3Igb3BlbmluZyBmb3IgcmVhZCAlc1xuIiwgZmlsZW5hbWUpOwotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLQotICAgIEtleWVkVmVjdG9yPFN0cmluZzgsRmlsZVN0YXRlPiByZWFkU25hcHNob3Q7Ci0gICAgZXJyID0gcmVhZF9zbmFwc2hvdF9maWxlKGZkLCAmcmVhZFNuYXBzaG90KTsKLSAgICBpZiAoZXJyICE9IDApIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJyZWFkX3NuYXBzaG90X2ZpbGUgZmFpbGVkICVkXG4iLCBlcnIpOwotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLQotICAgIGlmIChyZWFkU25hcHNob3Quc2l6ZSgpICE9IDQpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJyZWFkU25hcHNob3Qgc2hvdWxkIGJlIGxlbmd0aCA0IGlzICVkXG4iLCByZWFkU25hcHNob3Quc2l6ZSgpKTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgYm9vbCBtYXRjaGVkID0gdHJ1ZTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8cmVhZFNuYXBzaG90LnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IFN0cmluZzgmIG5hbWUgPSByZWFkU25hcHNob3Qua2V5QXQoaSk7Ci0gICAgICAgIGNvbnN0IEZpbGVTdGF0ZSBzdGF0ZSA9IHJlYWRTbmFwc2hvdC52YWx1ZUF0KGkpOwotCi0gICAgICAgIGlmIChuYW1lICE9IGZpbGVuYW1lc1tpXSB8fCBzdGF0ZXNbaV0ubW9kVGltZV9zZWMgIT0gc3RhdGUubW9kVGltZV9zZWMKLSAgICAgICAgICAgICAgICB8fCBzdGF0ZXNbaV0ubW9kVGltZV9uc2VjICE9IHN0YXRlLm1vZFRpbWVfbnNlYyB8fCBzdGF0ZXNbaV0ubW9kZSAhPSBzdGF0ZS5tb2RlCi0gICAgICAgICAgICAgICAgfHwgc3RhdGVzW2ldLnNpemUgIT0gc3RhdGUuc2l6ZSB8fCBzdGF0ZXNbaV0uY3JjMzIgIT0gc3RhdGVzW2ldLmNyYzMyKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInN0YXRlICVkIGV4cGVjdGVkPXslZC8lZCwgMHglMDh4LCAlMDRvLCAweCUwOHgsICUzZH0gJyVzJ1xuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgYWN0dWFsPXslZC8lZCwgMHglMDh4LCAlMDRvLCAweCUwOHgsICUzZH0gJyVzJ1xuIiwgaSwKLSAgICAgICAgICAgICAgICAgICAgc3RhdGVzW2ldLm1vZFRpbWVfc2VjLCBzdGF0ZXNbaV0ubW9kVGltZV9uc2VjLCBzdGF0ZXNbaV0ubW9kZSwgc3RhdGVzW2ldLnNpemUsCi0gICAgICAgICAgICAgICAgICAgIHN0YXRlc1tpXS5jcmMzMiwgbmFtZS5sZW5ndGgoKSwgZmlsZW5hbWVzW2ldLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICBzdGF0ZS5tb2RUaW1lX3NlYywgc3RhdGUubW9kVGltZV9uc2VjLCBzdGF0ZS5tb2RlLCBzdGF0ZS5zaXplLCBzdGF0ZS5jcmMzMiwKLSAgICAgICAgICAgICAgICAgICAgc3RhdGUubmFtZUxlbiwgbmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICBtYXRjaGVkID0gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gbWF0Y2hlZCA/IDAgOiAxOwotfQotCi0vLyBoZXhkdW1wIC12IC1lICciICAgICIgOC8xICIgMHglMDJ4LCIgIlxuIicgZGF0YV93cml0ZXIuZGF0YQotY29uc3QgdW5zaWduZWQgY2hhciBEQVRBX0dPTERFTl9GSUxFW10gPSB7Ci0gICAgIDB4NDQsIDB4NjEsIDB4NzQsIDB4NjEsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgIDB4MGMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NmUsIDB4NmYsIDB4NWYsIDB4NzAsCi0gICAgIDB4NjEsIDB4NjQsIDB4NjQsIDB4NjksIDB4NmUsIDB4NjcsIDB4NWYsIDB4MDAsCi0gICAgIDB4NmUsIDB4NmYsIDB4NWYsIDB4NzAsIDB4NjEsIDB4NjQsIDB4NjQsIDB4NjksCi0gICAgIDB4NmUsIDB4NjcsIDB4NWYsIDB4MDAsIDB4NDQsIDB4NjEsIDB4NzQsIDB4NjEsCi0gICAgIDB4MGMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MGQsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgIDB4NzAsIDB4NjEsIDB4NjQsIDB4NjQsIDB4NjUsIDB4NjQsIDB4NWYsIDB4NzQsCi0gICAgIDB4NmYsIDB4NWYsIDB4NWYsIDB4MzMsIDB4MDAsIDB4YmMsIDB4YmMsIDB4YmMsCi0gICAgIDB4NzAsIDB4NjEsIDB4NjQsIDB4NjQsIDB4NjUsIDB4NjQsIDB4NWYsIDB4NzQsCi0gICAgIDB4NmYsIDB4NWYsIDB4NWYsIDB4MzMsIDB4MDAsIDB4YmMsIDB4YmMsIDB4YmMsCi0gICAgIDB4NDQsIDB4NjEsIDB4NzQsIDB4NjEsIDB4MGQsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgIDB4MGUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NzAsIDB4NjEsIDB4NjQsIDB4NjQsCi0gICAgIDB4NjUsIDB4NjQsIDB4NWYsIDB4NzQsIDB4NmYsIDB4NWYsIDB4MzIsIDB4NWYsCi0gICAgIDB4NWYsIDB4MDAsIDB4YmMsIDB4YmMsIDB4NzAsIDB4NjEsIDB4NjQsIDB4NjQsCi0gICAgIDB4NjUsIDB4NjQsIDB4NWYsIDB4NzQsIDB4NmYsIDB4NWYsIDB4MzIsIDB4NWYsCi0gICAgIDB4NWYsIDB4MDAsIDB4YmMsIDB4YmMsIDB4NDQsIDB4NjEsIDB4NzQsIDB4NjEsCi0gICAgIDB4MGEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgIDB4NzAsIDB4NjEsIDB4NjQsIDB4NjQsIDB4NjUsIDB4NjQsIDB4NWYsIDB4NzQsCi0gICAgIDB4NmYsIDB4MzEsIDB4MDAsIDB4YmMsIDB4NzAsIDB4NjEsIDB4NjQsIDB4NjQsCi0gICAgIDB4NjUsIDB4NjQsIDB4NWYsIDB4NzQsIDB4NmYsIDB4MzEsIDB4MDAKLQotfTsKLWNvbnN0IGludCBEQVRBX0dPTERFTl9GSUxFX1NJWkUgPSBzaXplb2YoREFUQV9HT0xERU5fRklMRSk7Ci0KLXN0YXRpYyBpbnQKLXRlc3Rfd3JpdGVfaGVhZGVyX2FuZF9lbnRpdHkoQmFja3VwRGF0YVdyaXRlciYgd3JpdGVyLCBjb25zdCBjaGFyKiBzdHIpCi17Ci0gICAgaW50IGVycjsKLSAgICBTdHJpbmc4IHRleHQoc3RyKTsKLQotICAgIGVyciA9IHdyaXRlci5Xcml0ZUVudGl0eUhlYWRlcih0ZXh0LCB0ZXh0Lmxlbmd0aCgpKzEpOwotICAgIGlmIChlcnIgIT0gMCkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIldyaXRlRW50aXR5SGVhZGVyIGZhaWxlZCB3aXRoICVzXG4iLCBzdHJlcnJvcihlcnIpKTsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0KLSAgICBlcnIgPSB3cml0ZXIuV3JpdGVFbnRpdHlEYXRhKHRleHQuc3RyaW5nKCksIHRleHQubGVuZ3RoKCkrMSk7Ci0gICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAid3JpdGUgZmFpbGVkIGZvciBkYXRhICclcydcbiIsIHRleHQuc3RyaW5nKCkpOwotICAgICAgICByZXR1cm4gZXJybm87Ci0gICAgfQotCi0gICAgcmV0dXJuIGVycjsKLX0KLQotaW50Ci1iYWNrdXBfaGVscGVyX3Rlc3RfZGF0YV93cml0ZXIoKQotewotICAgIGludCBlcnI7Ci0gICAgaW50IGZkOwotICAgIGNvbnN0IGNoYXIqIGZpbGVuYW1lID0gU0NSQVRDSF9ESVIgImRhdGFfd3JpdGVyLmRhdGEiOwotCi0gICAgc3lzdGVtKCJybSAtciAiIFNDUkFUQ0hfRElSKTsKLSAgICBta2RpcihTQ1JBVENIX0RJUiwgMDc3Nyk7Ci0gICAgbWtkaXIoU0NSQVRDSF9ESVIgImRhdGEiLCAwNzc3KTsKLQotICAgIGZkID0gY3JlYXQoZmlsZW5hbWUsIDA2NjYpOwotICAgIGlmIChmZCA9PSAtMSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImVycm9yIGNyZWF0aW5nOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0dXJuIGVycm5vOwotICAgIH0KLQotICAgIEJhY2t1cERhdGFXcml0ZXIgd3JpdGVyKGZkKTsKLQotICAgIGVyciA9IDA7Ci0gICAgZXJyIHw9IHRlc3Rfd3JpdGVfaGVhZGVyX2FuZF9lbnRpdHkod3JpdGVyLCAibm9fcGFkZGluZ18iKTsKLSAgICBlcnIgfD0gdGVzdF93cml0ZV9oZWFkZXJfYW5kX2VudGl0eSh3cml0ZXIsICJwYWRkZWRfdG9fXzMiKTsKLSAgICBlcnIgfD0gdGVzdF93cml0ZV9oZWFkZXJfYW5kX2VudGl0eSh3cml0ZXIsICJwYWRkZWRfdG9fMl9fIik7Ci0gICAgZXJyIHw9IHRlc3Rfd3JpdGVfaGVhZGVyX2FuZF9lbnRpdHkod3JpdGVyLCAicGFkZGVkX3RvMSIpOwotCi0gICAgY2xvc2UoZmQpOwotCi0gICAgZXJyID0gY29tcGFyZV9maWxlKGZpbGVuYW1lLCBEQVRBX0dPTERFTl9GSUxFLCBEQVRBX0dPTERFTl9GSUxFX1NJWkUpOwotICAgIGlmIChlcnIgIT0gMCkgewotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLQotICAgIHJldHVybiBlcnI7Ci19Ci0KLWludAotdGVzdF9yZWFkX2hlYWRlcl9hbmRfZW50aXR5KEJhY2t1cERhdGFSZWFkZXImIHJlYWRlciwgY29uc3QgY2hhciogc3RyKQotewotICAgIGludCBlcnI7Ci0gICAgaW50IGJ1ZlNpemUgPSBzdHJsZW4oc3RyKSsxOwotICAgIGNoYXIqIGJ1ZiA9IChjaGFyKiltYWxsb2MoYnVmU2l6ZSk7Ci0gICAgU3RyaW5nOCBzdHJpbmc7Ci0gICAgaW50IGNvb2tpZSA9IDB4MTExMTExMTE7Ci0gICAgc2l6ZV90IGFjdHVhbFNpemU7Ci0gICAgYm9vbCBkb25lOwotICAgIGludCB0eXBlOwotICAgIHNzaXplX3QgblJlYWQ7Ci0KLSAgICAvLyBwcmludGYoIlxuXG4tLS0tLS0tLS0tIHRlc3RfcmVhZF9oZWFkZXJfYW5kX2VudGl0eSAtLSAlc1xuXG4iLCBzdHIpOwotCi0gICAgZXJyID0gcmVhZGVyLlJlYWROZXh0SGVhZGVyKCZkb25lLCAmdHlwZSk7Ci0gICAgaWYgKGRvbmUpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJzaG91bGQgbm90IGJlIGRvbmUgeWV0XG4iKTsKLSAgICAgICAgZ290byBmaW5pc2hlZDsKLSAgICB9Ci0gICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiUmVhZE5leHRIZWFkZXIgKGZvciBhcHAgaGVhZGVyKSBmYWlsZWQgd2l0aCAlc1xuIiwgc3RyZXJyb3IoZXJyKSk7Ci0gICAgICAgIGdvdG8gZmluaXNoZWQ7Ci0gICAgfQotICAgIGlmICh0eXBlICE9IEJBQ0tVUF9IRUFERVJfRU5USVRZX1YxKSB7Ci0gICAgICAgIGVyciA9IEVJTlZBTDsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJ0eXBlPTB4JTA4eCBleHBlY3RlZCAweCUwOHhcbiIsIHR5cGUsIEJBQ0tVUF9IRUFERVJfRU5USVRZX1YxKTsKLSAgICB9Ci0KLSAgICBlcnIgPSByZWFkZXIuUmVhZEVudGl0eUhlYWRlcigmc3RyaW5nLCAmYWN0dWFsU2l6ZSk7Ci0gICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiUmVhZEVudGl0eUhlYWRlciBmYWlsZWQgd2l0aCAlc1xuIiwgc3RyZXJyb3IoZXJyKSk7Ci0gICAgICAgIGdvdG8gZmluaXNoZWQ7Ci0gICAgfQotICAgIGlmIChzdHJpbmcgIT0gc3RyKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiUmVhZEVudGl0eUhlYWRlciBleHBlY3RlZCBrZXkgJyVzJyBnb3QgJyVzJ1xuIiwgc3RyLCBzdHJpbmcuc3RyaW5nKCkpOwotICAgICAgICBlcnIgPSBFSU5WQUw7Ci0gICAgICAgIGdvdG8gZmluaXNoZWQ7Ci0gICAgfQotICAgIGlmICgoaW50KWFjdHVhbFNpemUgIT0gYnVmU2l6ZSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlJlYWRFbnRpdHlIZWFkZXIgZXhwZWN0ZWQgZGF0YVNpemUgMHglMDh4IGdvdCAweCUwOHhcbiIsIGJ1ZlNpemUsCi0gICAgICAgICAgICAgICAgYWN0dWFsU2l6ZSk7Ci0gICAgICAgIGVyciA9IEVJTlZBTDsKLSAgICAgICAgZ290byBmaW5pc2hlZDsKLSAgICB9Ci0KLSAgICBuUmVhZCA9IHJlYWRlci5SZWFkRW50aXR5RGF0YShidWYsIGJ1ZlNpemUpOwotICAgIGlmIChuUmVhZCA8IDApIHsKLSAgICAgICAgZXJyID0gcmVhZGVyLlN0YXR1cygpOwotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlJlYWRFbnRpdHlEYXRhIGZhaWxlZCB3aXRoICVzXG4iLCBzdHJlcnJvcihlcnIpKTsKLSAgICAgICAgZ290byBmaW5pc2hlZDsKLSAgICB9Ci0KLSAgICBpZiAoMCAhPSBtZW1jbXAoYnVmLCBzdHIsIGJ1ZlNpemUpKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiUmVhZEVudGl0eURhdGEgZXhwZWN0ZWQgJyVzJyBidXQgZ290IHNvbWV0aGluZyBzdGFydGluZyB3aXRoICIKLSAgICAgICAgICAgICAgICAiJTAyeCAlMDJ4ICUwMnggJTAyeCAgJyVjJWMlYyVjJ1xuIiwgc3RyLCBidWZbMF0sIGJ1ZlsxXSwgYnVmWzJdLCBidWZbM10sCi0gICAgICAgICAgICAgICAgYnVmWzBdLCBidWZbMV0sIGJ1ZlsyXSwgYnVmWzNdKTsKLSAgICAgICAgZXJyID0gRUlOVkFMOwotICAgICAgICBnb3RvIGZpbmlzaGVkOwotICAgIH0KLQotICAgIC8vIFRoZSBuZXh0IHJlYWQgd2lsbCBjb25maXJtIHdoZXRoZXIgaXQgZ290IHRoZSByaWdodCBhbW91bnQgb2YgZGF0YS4KLQotZmluaXNoZWQ6Ci0gICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInRlc3RfcmVhZF9oZWFkZXJfYW5kX2VudGl0eSBmYWlsZWQgd2l0aCAlc1xuIiwgc3RyZXJyb3IoZXJyKSk7Ci0gICAgfQotICAgIGZyZWUoYnVmKTsKLSAgICByZXR1cm4gZXJyOwotfQotCi1pbnQKLWJhY2t1cF9oZWxwZXJfdGVzdF9kYXRhX3JlYWRlcigpCi17Ci0gICAgaW50IGVycjsKLSAgICBpbnQgZmQ7Ci0gICAgY29uc3QgY2hhciogZmlsZW5hbWUgPSBTQ1JBVENIX0RJUiAiZGF0YV9yZWFkZXIuZGF0YSI7Ci0KLSAgICBzeXN0ZW0oInJtIC1yICIgU0NSQVRDSF9ESVIpOwotICAgIG1rZGlyKFNDUkFUQ0hfRElSLCAwNzc3KTsKLSAgICBta2RpcihTQ1JBVENIX0RJUiAiZGF0YSIsIDA3NzcpOwotCi0gICAgZmQgPSBjcmVhdChmaWxlbmFtZSwgMDY2Nik7Ci0gICAgaWYgKGZkID09IC0xKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3IgY3JlYXRpbmc6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICByZXR1cm4gZXJybm87Ci0gICAgfQotCi0gICAgZXJyID0gd3JpdGUoZmQsIERBVEFfR09MREVOX0ZJTEUsIERBVEFfR09MREVOX0ZJTEVfU0laRSk7Ci0gICAgaWYgKGVyciAhPSBEQVRBX0dPTERFTl9GSUxFX1NJWkUpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFcnJvciBcIiVzXCIgd3JpdGluZyBnb2xkZW4gZmlsZSAlc1xuIiwgc3RyZXJyb3IoZXJybm8pLCBmaWxlbmFtZSk7Ci0gICAgICAgIHJldHVybiBlcnJubzsKLSAgICB9Ci0KLSAgICBjbG9zZShmZCk7Ci0KLSAgICBmZCA9IG9wZW4oZmlsZW5hbWUsIE9fUkRPTkxZKTsKLSAgICBpZiAoZmQgPT0gLTEpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFcnJvciBcIiVzXCIgb3BlbmluZyBnb2xkZW4gZmlsZSAlcyBmb3IgcmVhZFxuIiwgc3RyZXJyb3IoZXJybm8pLAotICAgICAgICAgICAgICAgIGZpbGVuYW1lKTsKLSAgICAgICAgcmV0dXJuIGVycm5vOwotICAgIH0KLQotICAgIHsKLSAgICAgICAgQmFja3VwRGF0YVJlYWRlciByZWFkZXIoZmQpOwotCi0gICAgICAgIGVyciA9IDA7Ci0KLSAgICAgICAgaWYgKGVyciA9PSBOT19FUlJPUikgewotICAgICAgICAgICAgZXJyID0gdGVzdF9yZWFkX2hlYWRlcl9hbmRfZW50aXR5KHJlYWRlciwgIm5vX3BhZGRpbmdfIik7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZXJyID09IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBlcnIgPSB0ZXN0X3JlYWRfaGVhZGVyX2FuZF9lbnRpdHkocmVhZGVyLCAicGFkZGVkX3RvX18zIik7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZXJyID09IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBlcnIgPSB0ZXN0X3JlYWRfaGVhZGVyX2FuZF9lbnRpdHkocmVhZGVyLCAicGFkZGVkX3RvXzJfXyIpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGVyciA9PSBOT19FUlJPUikgewotICAgICAgICAgICAgZXJyID0gdGVzdF9yZWFkX2hlYWRlcl9hbmRfZW50aXR5KHJlYWRlciwgInBhZGRlZF90bzEiKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGNsb3NlKGZkKTsKLQotICAgIHJldHVybiBlcnI7Ci19Ci0KLXN0YXRpYyBpbnQKLWdldF9tb2RfdGltZShjb25zdCBjaGFyKiBmaWxlbmFtZSwgc3RydWN0IHRpbWV2YWwgdGltZXNbMl0pCi17Ci0gICAgaW50IGVycjsKLSAgICBzdHJ1Y3Qgc3RhdDY0IHN0OwotICAgIGVyciA9IHN0YXQ2NChmaWxlbmFtZSwgJnN0KTsKLSAgICBpZiAoZXJyICE9IDApIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJzdGF0ICclcycgZmFpbGVkOiAlc1xuIiwgZmlsZW5hbWUsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgIHJldHVybiBlcnJubzsKLSAgICB9Ci0gICAgdGltZXNbMF0udHZfc2VjID0gc3Quc3RfYXRpbWU7Ci0gICAgdGltZXNbMV0udHZfc2VjID0gc3Quc3RfbXRpbWU7Ci0KLSAgICAvLyBJZiBzdF9hdGltZSBpcyBhIG1hY3JvIHRoZW4gc3RydWN0IHN0YXQ2NCB1c2VzIHN0cnVjdCB0aW1lc3BlYwotICAgIC8vIHRvIHN0b3JlIHRoZSBhY2Nlc3MgYW5kIG1vZGlmIHRpbWUgdmFsdWVzIGFuZCB0eXBpY2FsbHkKLSAgICAvLyBzdF8qdGltZV9uc2VjIGlzIG5vdCBkZWZpbmVkLiBJbiBnbGliYywgdGhpcyBpcyBjb250cm9sbGVkIGJ5Ci0gICAgLy8gX19VU0VfTUlTQy4KLSNpZmRlZiBfX1VTRV9NSVNDCi0jaWYgIWRlZmluZWQoc3RfYXRpbWUpIHx8IGRlZmluZWQoc3RfYXRpbWVfbnNlYykKLSNlcnJvciAiQ2hlY2sgaWYgdGhpcyBfX1VTRV9NSVNDIGNvbmRpdGlvbmFsIGlzIHN0aWxsIG5lZWRlZC4iCi0jZW5kaWYKLSAgICB0aW1lc1swXS50dl91c2VjID0gc3Quc3RfYXRpbS50dl9uc2VjIC8gMTAwMDsKLSAgICB0aW1lc1sxXS50dl91c2VjID0gc3Quc3RfbXRpbS50dl9uc2VjIC8gMTAwMDsKLSNlbHNlCi0gICAgdGltZXNbMF0udHZfdXNlYyA9IHN0LnN0X2F0aW1lX25zZWMgLyAxMDAwOwotICAgIHRpbWVzWzFdLnR2X3VzZWMgPSBzdC5zdF9tdGltZV9uc2VjIC8gMTAwMDsKLSNlbmRpZgotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLWludAotYmFja3VwX2hlbHBlcl90ZXN0X2ZpbGVzKCkKLXsKLSAgICBpbnQgZXJyOwotICAgIGludCBvbGRTbmFwc2hvdEZEOwotICAgIGludCBkYXRhU3RyZWFtRkQ7Ci0gICAgaW50IG5ld1NuYXBzaG90RkQ7Ci0KLSAgICBzeXN0ZW0oInJtIC1yICIgU0NSQVRDSF9ESVIpOwotICAgIG1rZGlyKFNDUkFUQ0hfRElSLCAwNzc3KTsKLSAgICBta2RpcihTQ1JBVENIX0RJUiAiZGF0YSIsIDA3NzcpOwotCi0gICAgd3JpdGVfdGV4dF9maWxlKFNDUkFUQ0hfRElSICJkYXRhL2IiLCAiYlxuYmJcbiIpOwotICAgIHdyaXRlX3RleHRfZmlsZShTQ1JBVENIX0RJUiAiZGF0YS9jIiwgImNcbmNjXG4iKTsKLSAgICB3cml0ZV90ZXh0X2ZpbGUoU0NSQVRDSF9ESVIgImRhdGEvZCIsICJkXG5kZFxuIik7Ci0gICAgd3JpdGVfdGV4dF9maWxlKFNDUkFUQ0hfRElSICJkYXRhL2UiLCAiZVxuZWVcbiIpOwotICAgIHdyaXRlX3RleHRfZmlsZShTQ1JBVENIX0RJUiAiZGF0YS9mIiwgImZcbmZmXG4iKTsKLSAgICB3cml0ZV90ZXh0X2ZpbGUoU0NSQVRDSF9ESVIgImRhdGEvaCIsICJoXG5oaFxuIik7Ci0KLSAgICBjaGFyIGNvbnN0KiBmaWxlc19iZWZvcmVbXSA9IHsKLSAgICAgICAgU0NSQVRDSF9ESVIgImRhdGEvYiIsCi0gICAgICAgIFNDUkFUQ0hfRElSICJkYXRhL2MiLAotICAgICAgICBTQ1JBVENIX0RJUiAiZGF0YS9kIiwKLSAgICAgICAgU0NSQVRDSF9ESVIgImRhdGEvZSIsCi0gICAgICAgIFNDUkFUQ0hfRElSICJkYXRhL2YiCi0gICAgfTsKLQotICAgIGNoYXIgY29uc3QqIGtleXNfYmVmb3JlW10gPSB7Ci0gICAgICAgICJkYXRhL2IiLAotICAgICAgICAiZGF0YS9jIiwKLSAgICAgICAgImRhdGEvZCIsCi0gICAgICAgICJkYXRhL2UiLAotICAgICAgICAiZGF0YS9mIgotICAgIH07Ci0KLSAgICBkYXRhU3RyZWFtRkQgPSBjcmVhdChTQ1JBVENIX0RJUiAiMS5kYXRhIiwgMDY2Nik7Ci0gICAgaWYgKGRhdGFTdHJlYW1GRCA9PSAtMSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImVycm9yIGNyZWF0aW5nOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0dXJuIGVycm5vOwotICAgIH0KLQotICAgIG5ld1NuYXBzaG90RkQgPSBjcmVhdChTQ1JBVENIX0RJUiAiYmVmb3JlLnNuYXAiLCAwNjY2KTsKLSAgICBpZiAobmV3U25hcHNob3RGRCA9PSAtMSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImVycm9yIGNyZWF0aW5nOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0dXJuIGVycm5vOwotICAgIH0KLQotICAgIHsKLSAgICAgICAgQmFja3VwRGF0YVdyaXRlciBkYXRhU3RyZWFtKGRhdGFTdHJlYW1GRCk7Ci0KLSAgICAgICAgZXJyID0gYmFja191cF9maWxlcygtMSwgJmRhdGFTdHJlYW0sIG5ld1NuYXBzaG90RkQsIGZpbGVzX2JlZm9yZSwga2V5c19iZWZvcmUsIDUpOwotICAgICAgICBpZiAoZXJyICE9IDApIHsKLSAgICAgICAgICAgIHJldHVybiBlcnI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBjbG9zZShkYXRhU3RyZWFtRkQpOwotICAgIGNsb3NlKG5ld1NuYXBzaG90RkQpOwotCi0gICAgc2xlZXAoMyk7Ci0KLSAgICBzdHJ1Y3QgdGltZXZhbCBkX3RpbWVzWzJdOwotICAgIHN0cnVjdCB0aW1ldmFsIGVfdGltZXNbMl07Ci0KLSAgICBlcnIgPSBnZXRfbW9kX3RpbWUoU0NSQVRDSF9ESVIgImRhdGEvZCIsIGRfdGltZXMpOwotICAgIGVyciB8PSBnZXRfbW9kX3RpbWUoU0NSQVRDSF9ESVIgImRhdGEvZSIsIGVfdGltZXMpOwotICAgIGlmIChlcnIgIT0gMCkgewotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLQotICAgIHdyaXRlX3RleHRfZmlsZShTQ1JBVENIX0RJUiAiZGF0YS9hIiwgImFcbmFhXG4iKTsKLSAgICB1bmxpbmsoU0NSQVRDSF9ESVIgImRhdGEvYyIpOwotICAgIHdyaXRlX3RleHRfZmlsZShTQ1JBVENIX0RJUiAiZGF0YS9jIiwgImNcbmNjXG4iKTsKLSAgICB3cml0ZV90ZXh0X2ZpbGUoU0NSQVRDSF9ESVIgImRhdGEvZCIsICJkZFxuZGRcbiIpOwotICAgIHV0aW1lcyhTQ1JBVENIX0RJUiAiZGF0YS9kIiwgZF90aW1lcyk7Ci0gICAgd3JpdGVfdGV4dF9maWxlKFNDUkFUQ0hfRElSICJkYXRhL2UiLCAielxuenpcbiIpOwotICAgIHV0aW1lcyhTQ1JBVENIX0RJUiAiZGF0YS9lIiwgZV90aW1lcyk7Ci0gICAgd3JpdGVfdGV4dF9maWxlKFNDUkFUQ0hfRElSICJkYXRhL2ciLCAiZ1xuZ2dcbiIpOwotICAgIHVubGluayhTQ1JBVENIX0RJUiAiZGF0YS9mIik7Ci0KLSAgICBjaGFyIGNvbnN0KiBmaWxlc19hZnRlcltdID0gewotICAgICAgICBTQ1JBVENIX0RJUiAiZGF0YS9hIiwgLy8gYWRkZWQKLSAgICAgICAgU0NSQVRDSF9ESVIgImRhdGEvYiIsIC8vIHNhbWUKLSAgICAgICAgU0NSQVRDSF9ESVIgImRhdGEvYyIsIC8vIGRpZmZlcmVudCBtb2QgdGltZQotICAgICAgICBTQ1JBVENIX0RJUiAiZGF0YS9kIiwgLy8gZGlmZmVyZW50IHNpemUgKHNhbWUgbW9kIHRpbWUpCi0gICAgICAgIFNDUkFUQ0hfRElSICJkYXRhL2UiLCAvLyBkaWZmZXJlbnQgY29udGVudHMgKHNhbWUgbW9kIHRpbWUsIHNhbWUgc2l6ZSkKLSAgICAgICAgU0NSQVRDSF9ESVIgImRhdGEvZyIgIC8vIGFkZGVkCi0gICAgfTsKLQotICAgIGNoYXIgY29uc3QqIGtleXNfYWZ0ZXJbXSA9IHsKLSAgICAgICAgImRhdGEvYSIsIC8vIGFkZGVkCi0gICAgICAgICJkYXRhL2IiLCAvLyBzYW1lCi0gICAgICAgICJkYXRhL2MiLCAvLyBkaWZmZXJlbnQgbW9kIHRpbWUKLSAgICAgICAgImRhdGEvZCIsIC8vIGRpZmZlcmVudCBzaXplIChzYW1lIG1vZCB0aW1lKQotICAgICAgICAiZGF0YS9lIiwgLy8gZGlmZmVyZW50IGNvbnRlbnRzIChzYW1lIG1vZCB0aW1lLCBzYW1lIHNpemUpCi0gICAgICAgICJkYXRhL2ciICAvLyBhZGRlZAotICAgIH07Ci0KLSAgICBvbGRTbmFwc2hvdEZEID0gb3BlbihTQ1JBVENIX0RJUiAiYmVmb3JlLnNuYXAiLCBPX1JET05MWSk7Ci0gICAgaWYgKG9sZFNuYXBzaG90RkQgPT0gLTEpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciBvcGVuaW5nOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0dXJuIGVycm5vOwotICAgIH0KLQotICAgIGRhdGFTdHJlYW1GRCA9IGNyZWF0KFNDUkFUQ0hfRElSICIyLmRhdGEiLCAwNjY2KTsKLSAgICBpZiAoZGF0YVN0cmVhbUZEID09IC0xKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3IgY3JlYXRpbmc6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICByZXR1cm4gZXJybm87Ci0gICAgfQotCi0gICAgbmV3U25hcHNob3RGRCA9IGNyZWF0KFNDUkFUQ0hfRElSICJhZnRlci5zbmFwIiwgMDY2Nik7Ci0gICAgaWYgKG5ld1NuYXBzaG90RkQgPT0gLTEpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciBjcmVhdGluZzogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgIHJldHVybiBlcnJubzsKLSAgICB9Ci0KLSAgICB7Ci0gICAgICAgIEJhY2t1cERhdGFXcml0ZXIgZGF0YVN0cmVhbShkYXRhU3RyZWFtRkQpOwotCi0gICAgICAgIGVyciA9IGJhY2tfdXBfZmlsZXMob2xkU25hcHNob3RGRCwgJmRhdGFTdHJlYW0sIG5ld1NuYXBzaG90RkQsIGZpbGVzX2FmdGVyLCBrZXlzX2FmdGVyLCA2KTsKLSAgICAgICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAgICB9Ci19Ci0KLSAgICBjbG9zZShvbGRTbmFwc2hvdEZEKTsKLSAgICBjbG9zZShkYXRhU3RyZWFtRkQpOwotICAgIGNsb3NlKG5ld1NuYXBzaG90RkQpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLWludAotYmFja3VwX2hlbHBlcl90ZXN0X251bGxfYmFzZSgpCi17Ci0gICAgaW50IGVycjsKLSAgICBpbnQgb2xkU25hcHNob3RGRDsKLSAgICBpbnQgZGF0YVN0cmVhbUZEOwotICAgIGludCBuZXdTbmFwc2hvdEZEOwotCi0gICAgc3lzdGVtKCJybSAtciAiIFNDUkFUQ0hfRElSKTsKLSAgICBta2RpcihTQ1JBVENIX0RJUiwgMDc3Nyk7Ci0gICAgbWtkaXIoU0NSQVRDSF9ESVIgImRhdGEiLCAwNzc3KTsKLQotICAgIHdyaXRlX3RleHRfZmlsZShTQ1JBVENIX0RJUiAiZGF0YS9hIiwgImFcbmFhXG4iKTsKLQotICAgIGNoYXIgY29uc3QqIGZpbGVzW10gPSB7Ci0gICAgICAgIFNDUkFUQ0hfRElSICJkYXRhL2EiLAotICAgIH07Ci0KLSAgICBjaGFyIGNvbnN0KiBrZXlzW10gPSB7Ci0gICAgICAgICJhIiwKLSAgICB9OwotCi0gICAgZGF0YVN0cmVhbUZEID0gY3JlYXQoU0NSQVRDSF9ESVIgIm51bGxfYmFzZS5kYXRhIiwgMDY2Nik7Ci0gICAgaWYgKGRhdGFTdHJlYW1GRCA9PSAtMSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImVycm9yIGNyZWF0aW5nOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0dXJuIGVycm5vOwotICAgIH0KLQotICAgIG5ld1NuYXBzaG90RkQgPSBjcmVhdChTQ1JBVENIX0RJUiAibnVsbF9iYXNlLnNuYXAiLCAwNjY2KTsKLSAgICBpZiAobmV3U25hcHNob3RGRCA9PSAtMSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImVycm9yIGNyZWF0aW5nOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0dXJuIGVycm5vOwotICAgIH0KLQotICAgIHsKLSAgICAgICAgQmFja3VwRGF0YVdyaXRlciBkYXRhU3RyZWFtKGRhdGFTdHJlYW1GRCk7Ci0KLSAgICAgICAgZXJyID0gYmFja191cF9maWxlcygtMSwgJmRhdGFTdHJlYW0sIG5ld1NuYXBzaG90RkQsIGZpbGVzLCBrZXlzLCAxKTsKLSAgICAgICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgY2xvc2UoZGF0YVN0cmVhbUZEKTsKLSAgICBjbG9zZShuZXdTbmFwc2hvdEZEKTsKLQotICAgIHJldHVybiAwOwotfQotCi1pbnQKLWJhY2t1cF9oZWxwZXJfdGVzdF9taXNzaW5nX2ZpbGUoKQotewotICAgIGludCBlcnI7Ci0gICAgaW50IG9sZFNuYXBzaG90RkQ7Ci0gICAgaW50IGRhdGFTdHJlYW1GRDsKLSAgICBpbnQgbmV3U25hcHNob3RGRDsKLQotICAgIHN5c3RlbSgicm0gLXIgIiBTQ1JBVENIX0RJUik7Ci0gICAgbWtkaXIoU0NSQVRDSF9ESVIsIDA3NzcpOwotICAgIG1rZGlyKFNDUkFUQ0hfRElSICJkYXRhIiwgMDc3Nyk7Ci0KLSAgICB3cml0ZV90ZXh0X2ZpbGUoU0NSQVRDSF9ESVIgImRhdGEvYiIsICJiXG5iYlxuIik7Ci0KLSAgICBjaGFyIGNvbnN0KiBmaWxlc1tdID0gewotICAgICAgICBTQ1JBVENIX0RJUiAiZGF0YS9hIiwKLSAgICAgICAgU0NSQVRDSF9ESVIgImRhdGEvYiIsCi0gICAgICAgIFNDUkFUQ0hfRElSICJkYXRhL2MiLAotICAgIH07Ci0KLSAgICBjaGFyIGNvbnN0KiBrZXlzW10gPSB7Ci0gICAgICAgICJhIiwKLSAgICAgICAgImIiLAotICAgICAgICAiYyIsCi0gICAgfTsKLQotICAgIGRhdGFTdHJlYW1GRCA9IGNyZWF0KFNDUkFUQ0hfRElSICJudWxsX2Jhc2UuZGF0YSIsIDA2NjYpOwotICAgIGlmIChkYXRhU3RyZWFtRkQgPT0gLTEpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciBjcmVhdGluZzogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgIHJldHVybiBlcnJubzsKLSAgICB9Ci0KLSAgICBuZXdTbmFwc2hvdEZEID0gY3JlYXQoU0NSQVRDSF9ESVIgIm51bGxfYmFzZS5zbmFwIiwgMDY2Nik7Ci0gICAgaWYgKG5ld1NuYXBzaG90RkQgPT0gLTEpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciBjcmVhdGluZzogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgIHJldHVybiBlcnJubzsKLSAgICB9Ci0KLSAgICB7Ci0gICAgICAgIEJhY2t1cERhdGFXcml0ZXIgZGF0YVN0cmVhbShkYXRhU3RyZWFtRkQpOwotCi0gICAgICAgIGVyciA9IGJhY2tfdXBfZmlsZXMoLTEsICZkYXRhU3RyZWFtLCBuZXdTbmFwc2hvdEZELCBmaWxlcywga2V5cywgMSk7Ci0gICAgICAgIGlmIChlcnIgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGNsb3NlKGRhdGFTdHJlYW1GRCk7Ci0gICAgY2xvc2UobmV3U25hcHNob3RGRCk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotCi0jZW5kaWYgLy8gVEVTVF9CQUNLVVBfSEVMUEVSUwotCi19CmRpZmYgLS1naXQgYS9saWJzL2FuZHJvaWRmdy9DdXJzb3JXaW5kb3cuY3BwIGIvbGlicy9hbmRyb2lkZncvQ3Vyc29yV2luZG93LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGY1NGVkYi4uMDAwMDAwMAotLS0gYS9saWJzL2FuZHJvaWRmdy9DdXJzb3JXaW5kb3cuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI3VuZGVmIExPR19UQUcKLSNkZWZpbmUgTE9HX1RBRyAiQ3Vyc29yV2luZG93IgotCi0jaW5jbHVkZSA8YW5kcm9pZGZ3L0N1cnNvcldpbmRvdy5oPgotI2luY2x1ZGUgPGJpbmRlci9QYXJjZWwuaD4KLSNpbmNsdWRlIDx1dGlscy9Mb2cuaD4KLQotI2luY2x1ZGUgPGN1dGlscy9hc2htZW0uaD4KLSNpbmNsdWRlIDxzeXMvbW1hbi5oPgotCi0jaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0KLW5hbWVzcGFjZSBhbmRyb2lkIHsKLQotQ3Vyc29yV2luZG93OjpDdXJzb3JXaW5kb3coY29uc3QgU3RyaW5nOCYgbmFtZSwgaW50IGFzaG1lbUZkLAotICAgICAgICB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSwgYm9vbCByZWFkT25seSkgOgotICAgICAgICBtTmFtZShuYW1lKSwgbUFzaG1lbUZkKGFzaG1lbUZkKSwgbURhdGEoZGF0YSksIG1TaXplKHNpemUpLCBtUmVhZE9ubHkocmVhZE9ubHkpIHsKLSAgICBtSGVhZGVyID0gc3RhdGljX2Nhc3Q8SGVhZGVyKj4obURhdGEpOwotfQotCi1DdXJzb3JXaW5kb3c6On5DdXJzb3JXaW5kb3coKSB7Ci0gICAgOjptdW5tYXAobURhdGEsIG1TaXplKTsKLSAgICA6OmNsb3NlKG1Bc2htZW1GZCk7Ci19Ci0KLXN0YXR1c190IEN1cnNvcldpbmRvdzo6Y3JlYXRlKGNvbnN0IFN0cmluZzgmIG5hbWUsIHNpemVfdCBzaXplLCBDdXJzb3JXaW5kb3cqKiBvdXRDdXJzb3JXaW5kb3cpIHsKLSAgICBTdHJpbmc4IGFzaG1lbU5hbWUoIkN1cnNvcldpbmRvdzogIik7Ci0gICAgYXNobWVtTmFtZS5hcHBlbmQobmFtZSk7Ci0KLSAgICBzdGF0dXNfdCByZXN1bHQ7Ci0gICAgaW50IGFzaG1lbUZkID0gYXNobWVtX2NyZWF0ZV9yZWdpb24oYXNobWVtTmFtZS5zdHJpbmcoKSwgc2l6ZSk7Ci0gICAgaWYgKGFzaG1lbUZkIDwgMCkgewotICAgICAgICByZXN1bHQgPSAtZXJybm87Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmVzdWx0ID0gYXNobWVtX3NldF9wcm90X3JlZ2lvbihhc2htZW1GZCwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSk7Ci0gICAgICAgIGlmIChyZXN1bHQgPj0gMCkgewotICAgICAgICAgICAgdm9pZCogZGF0YSA9IDo6bW1hcChOVUxMLCBzaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELCBhc2htZW1GZCwgMCk7Ci0gICAgICAgICAgICBpZiAoZGF0YSA9PSBNQVBfRkFJTEVEKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gLWVycm5vOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBhc2htZW1fc2V0X3Byb3RfcmVnaW9uKGFzaG1lbUZkLCBQUk9UX1JFQUQpOwotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgewotICAgICAgICAgICAgICAgICAgICBDdXJzb3JXaW5kb3cqIHdpbmRvdyA9IG5ldyBDdXJzb3JXaW5kb3cobmFtZSwgYXNobWVtRmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgc2l6ZSwgZmFsc2UgLypyZWFkT25seSovKTsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gd2luZG93LT5jbGVhcigpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICAgICAgICAgICAgICAgICAgTE9HX1dJTkRPVygiQ3JlYXRlZCBuZXcgQ3Vyc29yV2luZG93OiBmcmVlT2Zmc2V0PSVkLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJudW1Sb3dzPSVkLCBudW1Db2x1bW5zPSVkLCBtU2l6ZT0lZCwgbURhdGE9JXAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3ctPm1IZWFkZXItPmZyZWVPZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy0+bUhlYWRlci0+bnVtUm93cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LT5tSGVhZGVyLT5udW1Db2x1bW5zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3ctPm1TaXplLCB3aW5kb3ctPm1EYXRhKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICpvdXRDdXJzb3JXaW5kb3cgPSB3aW5kb3c7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT0s7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHdpbmRvdzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICA6Om11bm1hcChkYXRhLCBzaXplKTsKLSAgICAgICAgfQotICAgICAgICA6OmNsb3NlKGFzaG1lbUZkKTsKLSAgICB9Ci0gICAgKm91dEN1cnNvcldpbmRvdyA9IE5VTEw7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdHVzX3QgQ3Vyc29yV2luZG93OjpjcmVhdGVGcm9tUGFyY2VsKFBhcmNlbCogcGFyY2VsLCBDdXJzb3JXaW5kb3cqKiBvdXRDdXJzb3JXaW5kb3cpIHsKLSAgICBTdHJpbmc4IG5hbWUgPSBwYXJjZWwtPnJlYWRTdHJpbmc4KCk7Ci0KLSAgICBzdGF0dXNfdCByZXN1bHQ7Ci0gICAgaW50IGFzaG1lbUZkID0gcGFyY2VsLT5yZWFkRmlsZURlc2NyaXB0b3IoKTsKLSAgICBpZiAoYXNobWVtRmQgPT0gaW50KEJBRF9UWVBFKSkgewotICAgICAgICByZXN1bHQgPSBCQURfVFlQRTsKLSAgICB9IGVsc2UgewotICAgICAgICBzc2l6ZV90IHNpemUgPSBhc2htZW1fZ2V0X3NpemVfcmVnaW9uKGFzaG1lbUZkKTsKLSAgICAgICAgaWYgKHNpemUgPCAwKSB7Ci0gICAgICAgICAgICByZXN1bHQgPSBVTktOT1dOX0VSUk9SOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaW50IGR1cEFzaG1lbUZkID0gOjpkdXAoYXNobWVtRmQpOwotICAgICAgICAgICAgaWYgKGR1cEFzaG1lbUZkIDwgMCkgewotICAgICAgICAgICAgICAgIHJlc3VsdCA9IC1lcnJubzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdm9pZCogZGF0YSA9IDo6bW1hcChOVUxMLCBzaXplLCBQUk9UX1JFQUQsIE1BUF9TSEFSRUQsIGR1cEFzaG1lbUZkLCAwKTsKLSAgICAgICAgICAgICAgICBpZiAoZGF0YSA9PSBNQVBfRkFJTEVEKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IC1lcnJubzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBDdXJzb3JXaW5kb3cqIHdpbmRvdyA9IG5ldyBDdXJzb3JXaW5kb3cobmFtZSwgZHVwQXNobWVtRmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgc2l6ZSwgdHJ1ZSAvKnJlYWRPbmx5Ki8pOwotICAgICAgICAgICAgICAgICAgICBMT0dfV0lORE9XKCJDcmVhdGVkIEN1cnNvcldpbmRvdyBmcm9tIHBhcmNlbDogZnJlZU9mZnNldD0lZCwgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJudW1Sb3dzPSVkLCBudW1Db2x1bW5zPSVkLCBtU2l6ZT0lZCwgbURhdGE9JXAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy0+bUhlYWRlci0+ZnJlZU9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3ctPm1IZWFkZXItPm51bVJvd3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LT5tSGVhZGVyLT5udW1Db2x1bW5zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy0+bVNpemUsIHdpbmRvdy0+bURhdGEpOwotICAgICAgICAgICAgICAgICAgICAqb3V0Q3Vyc29yV2luZG93ID0gd2luZG93OwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gT0s7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIDo6Y2xvc2UoZHVwQXNobWVtRmQpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgICpvdXRDdXJzb3JXaW5kb3cgPSBOVUxMOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXR1c190IEN1cnNvcldpbmRvdzo6d3JpdGVUb1BhcmNlbChQYXJjZWwqIHBhcmNlbCkgewotICAgIHN0YXR1c190IHN0YXR1cyA9IHBhcmNlbC0+d3JpdGVTdHJpbmc4KG1OYW1lKTsKLSAgICBpZiAoIXN0YXR1cykgewotICAgICAgICBzdGF0dXMgPSBwYXJjZWwtPndyaXRlRHVwRmlsZURlc2NyaXB0b3IobUFzaG1lbUZkKTsKLSAgICB9Ci0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotc3RhdHVzX3QgQ3Vyc29yV2luZG93OjpjbGVhcigpIHsKLSAgICBpZiAobVJlYWRPbmx5KSB7Ci0gICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKLSAgICB9Ci0KLSAgICBtSGVhZGVyLT5mcmVlT2Zmc2V0ID0gc2l6ZW9mKEhlYWRlcikgKyBzaXplb2YoUm93U2xvdENodW5rKTsKLSAgICBtSGVhZGVyLT5maXJzdENodW5rT2Zmc2V0ID0gc2l6ZW9mKEhlYWRlcik7Ci0gICAgbUhlYWRlci0+bnVtUm93cyA9IDA7Ci0gICAgbUhlYWRlci0+bnVtQ29sdW1ucyA9IDA7Ci0KLSAgICBSb3dTbG90Q2h1bmsqIGZpcnN0Q2h1bmsgPSBzdGF0aWNfY2FzdDxSb3dTbG90Q2h1bmsqPihvZmZzZXRUb1B0cihtSGVhZGVyLT5maXJzdENodW5rT2Zmc2V0KSk7Ci0gICAgZmlyc3RDaHVuay0+bmV4dENodW5rT2Zmc2V0ID0gMDsKLSAgICByZXR1cm4gT0s7Ci19Ci0KLXN0YXR1c190IEN1cnNvcldpbmRvdzo6c2V0TnVtQ29sdW1ucyh1aW50MzJfdCBudW1Db2x1bW5zKSB7Ci0gICAgaWYgKG1SZWFkT25seSkgewotICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgfQotCi0gICAgdWludDMyX3QgY3VyID0gbUhlYWRlci0+bnVtQ29sdW1uczsKLSAgICBpZiAoKGN1ciA+IDAgfHwgbUhlYWRlci0+bnVtUm93cyA+IDApICYmIGN1ciAhPSBudW1Db2x1bW5zKSB7Ci0gICAgICAgIEFMT0dFKCJUcnlpbmcgdG8gZ28gZnJvbSAlZCBjb2x1bW5zIHRvICVkIiwgY3VyLCBudW1Db2x1bW5zKTsKLSAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOwotICAgIH0KLSAgICBtSGVhZGVyLT5udW1Db2x1bW5zID0gbnVtQ29sdW1uczsKLSAgICByZXR1cm4gT0s7Ci19Ci0KLXN0YXR1c190IEN1cnNvcldpbmRvdzo6YWxsb2NSb3coKSB7Ci0gICAgaWYgKG1SZWFkT25seSkgewotICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgfQotCi0gICAgLy8gRmlsbCBpbiB0aGUgcm93IHNsb3QKLSAgICBSb3dTbG90KiByb3dTbG90ID0gYWxsb2NSb3dTbG90KCk7Ci0gICAgaWYgKHJvd1Nsb3QgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTk9fTUVNT1JZOwotICAgIH0KLQotICAgIC8vIEFsbG9jYXRlIHRoZSBzbG90cyBmb3IgdGhlIGZpZWxkIGRpcmVjdG9yeQotICAgIHNpemVfdCBmaWVsZERpclNpemUgPSBtSGVhZGVyLT5udW1Db2x1bW5zICogc2l6ZW9mKEZpZWxkU2xvdCk7Ci0gICAgdWludDMyX3QgZmllbGREaXJPZmZzZXQgPSBhbGxvYyhmaWVsZERpclNpemUsIHRydWUgLyphbGlnbmVkKi8pOwotICAgIGlmICghZmllbGREaXJPZmZzZXQpIHsKLSAgICAgICAgbUhlYWRlci0+bnVtUm93cy0tOwotICAgICAgICBMT0dfV0lORE9XKCJUaGUgcm93IGZhaWxlZCwgc28gYmFjayBvdXQgdGhlIG5ldyByb3cgYWNjb3VudGluZyAiCi0gICAgICAgICAgICAgICAgImZyb20gYWxsb2NSb3dTbG90ICVkIiwgbUhlYWRlci0+bnVtUm93cyk7Ci0gICAgICAgIHJldHVybiBOT19NRU1PUlk7Ci0gICAgfQotICAgIEZpZWxkU2xvdCogZmllbGREaXIgPSBzdGF0aWNfY2FzdDxGaWVsZFNsb3QqPihvZmZzZXRUb1B0cihmaWVsZERpck9mZnNldCkpOwotICAgIG1lbXNldChmaWVsZERpciwgMCwgZmllbGREaXJTaXplKTsKLQotICAgIExPR19XSU5ET1coIkFsbG9jYXRlZCByb3cgJXUsIHJvd1Nsb3QgaXMgYXQgb2Zmc2V0ICV1LCBmaWVsZERpciBpcyAlZCBieXRlcyBhdCBvZmZzZXQgJXVcbiIsCi0gICAgICAgICAgICBtSGVhZGVyLT5udW1Sb3dzIC0gMSwgb2Zmc2V0RnJvbVB0cihyb3dTbG90KSwgZmllbGREaXJTaXplLCBmaWVsZERpck9mZnNldCk7Ci0gICAgcm93U2xvdC0+b2Zmc2V0ID0gZmllbGREaXJPZmZzZXQ7Ci0gICAgcmV0dXJuIE9LOwotfQotCi1zdGF0dXNfdCBDdXJzb3JXaW5kb3c6OmZyZWVMYXN0Um93KCkgewotICAgIGlmIChtUmVhZE9ubHkpIHsKLSAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOwotICAgIH0KLQotICAgIGlmIChtSGVhZGVyLT5udW1Sb3dzID4gMCkgewotICAgICAgICBtSGVhZGVyLT5udW1Sb3dzLS07Ci0gICAgfQotICAgIHJldHVybiBPSzsKLX0KLQotdWludDMyX3QgQ3Vyc29yV2luZG93OjphbGxvYyhzaXplX3Qgc2l6ZSwgYm9vbCBhbGlnbmVkKSB7Ci0gICAgdWludDMyX3QgcGFkZGluZzsKLSAgICBpZiAoYWxpZ25lZCkgewotICAgICAgICAvLyA0IGJ5dGUgYWxpZ25tZW50Ci0gICAgICAgIHBhZGRpbmcgPSAofm1IZWFkZXItPmZyZWVPZmZzZXQgKyAxKSAmIDM7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcGFkZGluZyA9IDA7Ci0gICAgfQotCi0gICAgdWludDMyX3Qgb2Zmc2V0ID0gbUhlYWRlci0+ZnJlZU9mZnNldCArIHBhZGRpbmc7Ci0gICAgdWludDMyX3QgbmV4dEZyZWVPZmZzZXQgPSBvZmZzZXQgKyBzaXplOwotICAgIGlmIChuZXh0RnJlZU9mZnNldCA+IG1TaXplKSB7Ci0gICAgICAgIEFMT0dXKCJXaW5kb3cgaXMgZnVsbDogcmVxdWVzdGVkIGFsbG9jYXRpb24gJWQgYnl0ZXMsICIKLSAgICAgICAgICAgICAgICAiZnJlZSBzcGFjZSAlZCBieXRlcywgd2luZG93IHNpemUgJWQgYnl0ZXMiLAotICAgICAgICAgICAgICAgIHNpemUsIGZyZWVTcGFjZSgpLCBtU2l6ZSk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIG1IZWFkZXItPmZyZWVPZmZzZXQgPSBuZXh0RnJlZU9mZnNldDsKLSAgICByZXR1cm4gb2Zmc2V0OwotfQotCi1DdXJzb3JXaW5kb3c6OlJvd1Nsb3QqIEN1cnNvcldpbmRvdzo6Z2V0Um93U2xvdCh1aW50MzJfdCByb3cpIHsKLSAgICB1aW50MzJfdCBjaHVua1BvcyA9IHJvdzsKLSAgICBSb3dTbG90Q2h1bmsqIGNodW5rID0gc3RhdGljX2Nhc3Q8Um93U2xvdENodW5rKj4oCi0gICAgICAgICAgICBvZmZzZXRUb1B0cihtSGVhZGVyLT5maXJzdENodW5rT2Zmc2V0KSk7Ci0gICAgd2hpbGUgKGNodW5rUG9zID49IFJPV19TTE9UX0NIVU5LX05VTV9ST1dTKSB7Ci0gICAgICAgIGNodW5rID0gc3RhdGljX2Nhc3Q8Um93U2xvdENodW5rKj4ob2Zmc2V0VG9QdHIoY2h1bmstPm5leHRDaHVua09mZnNldCkpOwotICAgICAgICBjaHVua1BvcyAtPSBST1dfU0xPVF9DSFVOS19OVU1fUk9XUzsKLSAgICB9Ci0gICAgcmV0dXJuICZjaHVuay0+c2xvdHNbY2h1bmtQb3NdOwotfQotCi1DdXJzb3JXaW5kb3c6OlJvd1Nsb3QqIEN1cnNvcldpbmRvdzo6YWxsb2NSb3dTbG90KCkgewotICAgIHVpbnQzMl90IGNodW5rUG9zID0gbUhlYWRlci0+bnVtUm93czsKLSAgICBSb3dTbG90Q2h1bmsqIGNodW5rID0gc3RhdGljX2Nhc3Q8Um93U2xvdENodW5rKj4oCi0gICAgICAgICAgICBvZmZzZXRUb1B0cihtSGVhZGVyLT5maXJzdENodW5rT2Zmc2V0KSk7Ci0gICAgd2hpbGUgKGNodW5rUG9zID4gUk9XX1NMT1RfQ0hVTktfTlVNX1JPV1MpIHsKLSAgICAgICAgY2h1bmsgPSBzdGF0aWNfY2FzdDxSb3dTbG90Q2h1bmsqPihvZmZzZXRUb1B0cihjaHVuay0+bmV4dENodW5rT2Zmc2V0KSk7Ci0gICAgICAgIGNodW5rUG9zIC09IFJPV19TTE9UX0NIVU5LX05VTV9ST1dTOwotICAgIH0KLSAgICBpZiAoY2h1bmtQb3MgPT0gUk9XX1NMT1RfQ0hVTktfTlVNX1JPV1MpIHsKLSAgICAgICAgaWYgKCFjaHVuay0+bmV4dENodW5rT2Zmc2V0KSB7Ci0gICAgICAgICAgICBjaHVuay0+bmV4dENodW5rT2Zmc2V0ID0gYWxsb2Moc2l6ZW9mKFJvd1Nsb3RDaHVuayksIHRydWUgLyphbGlnbmVkKi8pOwotICAgICAgICAgICAgaWYgKCFjaHVuay0+bmV4dENodW5rT2Zmc2V0KSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgY2h1bmsgPSBzdGF0aWNfY2FzdDxSb3dTbG90Q2h1bmsqPihvZmZzZXRUb1B0cihjaHVuay0+bmV4dENodW5rT2Zmc2V0KSk7Ci0gICAgICAgIGNodW5rLT5uZXh0Q2h1bmtPZmZzZXQgPSAwOwotICAgICAgICBjaHVua1BvcyA9IDA7Ci0gICAgfQotICAgIG1IZWFkZXItPm51bVJvd3MgKz0gMTsKLSAgICByZXR1cm4gJmNodW5rLT5zbG90c1tjaHVua1Bvc107Ci19Ci0KLUN1cnNvcldpbmRvdzo6RmllbGRTbG90KiBDdXJzb3JXaW5kb3c6OmdldEZpZWxkU2xvdCh1aW50MzJfdCByb3csIHVpbnQzMl90IGNvbHVtbikgewotICAgIGlmIChyb3cgPj0gbUhlYWRlci0+bnVtUm93cyB8fCBjb2x1bW4gPj0gbUhlYWRlci0+bnVtQ29sdW1ucykgewotICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIHJlYWQgcm93ICVkLCBjb2x1bW4gJWQgZnJvbSBhIEN1cnNvcldpbmRvdyB3aGljaCAiCi0gICAgICAgICAgICAgICAgImhhcyAlZCByb3dzLCAlZCBjb2x1bW5zLiIsCi0gICAgICAgICAgICAgICAgcm93LCBjb2x1bW4sIG1IZWFkZXItPm51bVJvd3MsIG1IZWFkZXItPm51bUNvbHVtbnMpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgUm93U2xvdCogcm93U2xvdCA9IGdldFJvd1Nsb3Qocm93KTsKLSAgICBpZiAoIXJvd1Nsb3QpIHsKLSAgICAgICAgQUxPR0UoIkZhaWxlZCB0byBmaW5kIHJvd1Nsb3QgZm9yIHJvdyAlZC4iLCByb3cpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgRmllbGRTbG90KiBmaWVsZERpciA9IHN0YXRpY19jYXN0PEZpZWxkU2xvdCo+KG9mZnNldFRvUHRyKHJvd1Nsb3QtPm9mZnNldCkpOwotICAgIHJldHVybiAmZmllbGREaXJbY29sdW1uXTsKLX0KLQotc3RhdHVzX3QgQ3Vyc29yV2luZG93OjpwdXRCbG9iKHVpbnQzMl90IHJvdywgdWludDMyX3QgY29sdW1uLCBjb25zdCB2b2lkKiB2YWx1ZSwgc2l6ZV90IHNpemUpIHsKLSAgICByZXR1cm4gcHV0QmxvYk9yU3RyaW5nKHJvdywgY29sdW1uLCB2YWx1ZSwgc2l6ZSwgRklFTERfVFlQRV9CTE9CKTsKLX0KLQotc3RhdHVzX3QgQ3Vyc29yV2luZG93OjpwdXRTdHJpbmcodWludDMyX3Qgcm93LCB1aW50MzJfdCBjb2x1bW4sIGNvbnN0IGNoYXIqIHZhbHVlLAotICAgICAgICBzaXplX3Qgc2l6ZUluY2x1ZGluZ051bGwpIHsKLSAgICByZXR1cm4gcHV0QmxvYk9yU3RyaW5nKHJvdywgY29sdW1uLCB2YWx1ZSwgc2l6ZUluY2x1ZGluZ051bGwsIEZJRUxEX1RZUEVfU1RSSU5HKTsKLX0KLQotc3RhdHVzX3QgQ3Vyc29yV2luZG93OjpwdXRCbG9iT3JTdHJpbmcodWludDMyX3Qgcm93LCB1aW50MzJfdCBjb2x1bW4sCi0gICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlLCBzaXplX3Qgc2l6ZSwgaW50MzJfdCB0eXBlKSB7Ci0gICAgaWYgKG1SZWFkT25seSkgewotICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgfQotCi0gICAgRmllbGRTbG90KiBmaWVsZFNsb3QgPSBnZXRGaWVsZFNsb3Qocm93LCBjb2x1bW4pOwotICAgIGlmICghZmllbGRTbG90KSB7Ci0gICAgICAgIHJldHVybiBCQURfVkFMVUU7Ci0gICAgfQotCi0gICAgdWludDMyX3Qgb2Zmc2V0ID0gYWxsb2Moc2l6ZSk7Ci0gICAgaWYgKCFvZmZzZXQpIHsKLSAgICAgICAgcmV0dXJuIE5PX01FTU9SWTsKLSAgICB9Ci0KLSAgICBtZW1jcHkob2Zmc2V0VG9QdHIob2Zmc2V0KSwgdmFsdWUsIHNpemUpOwotCi0gICAgZmllbGRTbG90LT50eXBlID0gdHlwZTsKLSAgICBmaWVsZFNsb3QtPmRhdGEuYnVmZmVyLm9mZnNldCA9IG9mZnNldDsKLSAgICBmaWVsZFNsb3QtPmRhdGEuYnVmZmVyLnNpemUgPSBzaXplOwotICAgIHJldHVybiBPSzsKLX0KLQotc3RhdHVzX3QgQ3Vyc29yV2luZG93OjpwdXRMb25nKHVpbnQzMl90IHJvdywgdWludDMyX3QgY29sdW1uLCBpbnQ2NF90IHZhbHVlKSB7Ci0gICAgaWYgKG1SZWFkT25seSkgewotICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgfQotCi0gICAgRmllbGRTbG90KiBmaWVsZFNsb3QgPSBnZXRGaWVsZFNsb3Qocm93LCBjb2x1bW4pOwotICAgIGlmICghZmllbGRTbG90KSB7Ci0gICAgICAgIHJldHVybiBCQURfVkFMVUU7Ci0gICAgfQotCi0gICAgZmllbGRTbG90LT50eXBlID0gRklFTERfVFlQRV9JTlRFR0VSOwotICAgIGZpZWxkU2xvdC0+ZGF0YS5sID0gdmFsdWU7Ci0gICAgcmV0dXJuIE9LOwotfQotCi1zdGF0dXNfdCBDdXJzb3JXaW5kb3c6OnB1dERvdWJsZSh1aW50MzJfdCByb3csIHVpbnQzMl90IGNvbHVtbiwgZG91YmxlIHZhbHVlKSB7Ci0gICAgaWYgKG1SZWFkT25seSkgewotICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgfQotCi0gICAgRmllbGRTbG90KiBmaWVsZFNsb3QgPSBnZXRGaWVsZFNsb3Qocm93LCBjb2x1bW4pOwotICAgIGlmICghZmllbGRTbG90KSB7Ci0gICAgICAgIHJldHVybiBCQURfVkFMVUU7Ci0gICAgfQotCi0gICAgZmllbGRTbG90LT50eXBlID0gRklFTERfVFlQRV9GTE9BVDsKLSAgICBmaWVsZFNsb3QtPmRhdGEuZCA9IHZhbHVlOwotICAgIHJldHVybiBPSzsKLX0KLQotc3RhdHVzX3QgQ3Vyc29yV2luZG93OjpwdXROdWxsKHVpbnQzMl90IHJvdywgdWludDMyX3QgY29sdW1uKSB7Ci0gICAgaWYgKG1SZWFkT25seSkgewotICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgfQotCi0gICAgRmllbGRTbG90KiBmaWVsZFNsb3QgPSBnZXRGaWVsZFNsb3Qocm93LCBjb2x1bW4pOwotICAgIGlmICghZmllbGRTbG90KSB7Ci0gICAgICAgIHJldHVybiBCQURfVkFMVUU7Ci0gICAgfQotCi0gICAgZmllbGRTbG90LT50eXBlID0gRklFTERfVFlQRV9OVUxMOwotICAgIGZpZWxkU2xvdC0+ZGF0YS5idWZmZXIub2Zmc2V0ID0gMDsKLSAgICBmaWVsZFNsb3QtPmRhdGEuYnVmZmVyLnNpemUgPSAwOwotICAgIHJldHVybiBPSzsKLX0KLQotfTsgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2xpYnMvYW5kcm9pZGZ3L01PRFVMRV9MSUNFTlNFX0FQQUNIRTIgYi9saWJzL2FuZHJvaWRmdy9NT0RVTEVfTElDRU5TRV9BUEFDSEUyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5Li4wMDAwMDAwCi0tLSBhL2xpYnMvYW5kcm9pZGZ3L01PRFVMRV9MSUNFTlNFX0FQQUNIRTIKKysrIC9kZXYvbnVsbApkaWZmIC0tZ2l0IGEvbGlicy9hbmRyb2lkZncvTk9USUNFIGIvbGlicy9hbmRyb2lkZncvTk9USUNFCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNWIxZWZhLi4wMDAwMDAwCi0tLSBhL2xpYnMvYW5kcm9pZGZ3L05PVElDRQorKysgL2Rldi9udWxsCkBAIC0xLDE5MCArMCwwIEBACi0KLSAgIENvcHlyaWdodCAoYykgMjAwNS0yMDA4LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0KLSAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotCi0gICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAotICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLwotCi0gICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KLQotICAgMS4gRGVmaW5pdGlvbnMuCi0KLSAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCi0gICAgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KLQotICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkKLSAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KLQotICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAotICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgotICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKLSAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQotICAgICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKLSAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQotICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KLQotICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQotICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KLQotICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCi0gICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCi0gICAgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgotCi0gICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbAotICAgICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAotICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAotICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgotCi0gICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgotICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQotICAgICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCi0gICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgotCi0gICAgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0Ci0gICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCi0gICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCi0gICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3NlcwotICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCi0gICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCi0gICAgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgotCi0gICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZwotICAgICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucwotICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5Ci0gICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCi0gICAgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKLSAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgotICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAotICAgICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KLSAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCi0gICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQotICAgICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0Ci0gICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQotICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCi0KLSAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5Ci0gICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKLSAgICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgotCi0gICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKLSAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKLSAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCi0gICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKLSAgICAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQotICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KLQotICAgMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0gICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCi0gICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQotICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCi0gICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKLSAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCi0gICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgotICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQotICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKLSAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCi0gICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCi0gICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAotICAgICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcwotICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCi0gICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCi0KLSAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCi0gICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKLSAgICAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91Ci0gICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLQotICAgICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKLSAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAotCi0gICAgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCi0gICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCi0KLSAgICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcwotICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKLSAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAotICAgICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKLSAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCi0KLSAgICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cwotICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKLSAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKLSAgICAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKLSAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKLSAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZAotICAgICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKLSAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKLSAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCi0gICAgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCi0gICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAotICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCi0gICAgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKLSAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKLSAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKLSAgICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCi0KLSAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAotICAgICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwotICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgotICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCi0gICAgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKLSAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCi0KLSAgIDUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwKLSAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yawotICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKLSAgICAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgotICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQotICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKLSAgICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4KLQotICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQotICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAotICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCi0gICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KLQotICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCi0gICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCi0gICAgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywKLSAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgotICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKLSAgICAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKLSAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQotICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55Ci0gICAgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCi0KLSAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAotICAgICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCi0gICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQotICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKLSAgICAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKLSAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQotICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQotICAgICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAotICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKLSAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKLSAgICAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KLQotICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZwotICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKLSAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCi0gICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcwotICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKLSAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCi0gICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCi0gICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKLSAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KLSAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgotCi0gICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKLQpkaWZmIC0tZ2l0IGEvbGlicy9hbmRyb2lkZncvT2JiRmlsZS5jcHAgYi9saWJzL2FuZHJvaWRmdy9PYmJGaWxlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM1OWYwNi4uMDAwMDAwMAotLS0gYS9saWJzL2FuZHJvaWRmdy9PYmJGaWxlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLQotI2RlZmluZSBMT0dfVEFHICJPYmJGaWxlIgotCi0jaW5jbHVkZSA8YW5kcm9pZGZ3L09iYkZpbGUuaD4KLSNpbmNsdWRlIDx1dGlscy9Db21wYXQuaD4KLSNpbmNsdWRlIDx1dGlscy9Mb2cuaD4KLQotLy8jZGVmaW5lIERFQlVHIDEKLQotI2RlZmluZSBrRm9vdGVyVGFnU2l6ZSA4ICAvKiBsYXN0IHR3byAzMi1iaXQgaW50ZWdlcnMgKi8KLQotI2RlZmluZSBrRm9vdGVyTWluU2l6ZSAzMyAvKiAzMi1iaXQgc2lnbmF0dXJlIHZlcnNpb24gKDQgYnl0ZXMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAqIDMyLWJpdCBwYWNrYWdlIHZlcnNpb24gKDQgYnl0ZXMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAqIDMyLWJpdCBmbGFncyAoNCBieXRlcykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICogNjQtYml0IHNhbHQgKDggYnl0ZXMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAqIDMyLWJpdCBwYWNrYWdlIG5hbWUgc2l6ZSAoNCBieXRlcykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICogPj0xLWNoYXJhY3RlciBwYWNrYWdlIG5hbWUgKDEgYnl0ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICogMzItYml0IGZvb3RlciBzaXplICg0IGJ5dGVzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAzMi1iaXQgZm9vdGVyIG1hcmtlciAoNCBieXRlcykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0KLSNkZWZpbmUga01heEJ1ZlNpemUgICAgMzI3NjggLyogTWF4aW11bSBmaWxlIHJlYWQgYnVmZmVyICovCi0KLSNkZWZpbmUga1NpZ25hdHVyZSAgICAgMHgwMTA1OTk4M1UgLyogT2JiRmlsZSBzaWduYXR1cmUgKi8KLQotI2RlZmluZSBrU2lnVmVyc2lvbiAgICAxIC8qIFdlIG9ubHkga25vdyBhYm91dCBzaWduYXR1cmUgdmVyc2lvbiAxICovCi0KLS8qIG9mZnNldHMgaW4gdmVyc2lvbiAxIG9mIHRoZSBoZWFkZXIgKi8KLSNkZWZpbmUga1BhY2thZ2VWZXJzaW9uT2Zmc2V0IDQKLSNkZWZpbmUga0ZsYWdzT2Zmc2V0ICAgICAgICAgIDgKLSNkZWZpbmUga1NhbHRPZmZzZXQgICAgICAgICAgIDEyCi0jZGVmaW5lIGtQYWNrYWdlTmFtZUxlbk9mZnNldCAyMAotI2RlZmluZSBrUGFja2FnZU5hbWVPZmZzZXQgICAgMjQKLQotLyoKLSAqIFRFTVBfRkFJTFVSRV9SRVRSWSBpcyBkZWZpbmVkIGJ5IHNvbWUsIGJ1dCBub3QgYWxsLCB2ZXJzaW9ucyBvZgotICogPHVuaXN0ZC5oPi4gKEFsYXMsIGl0IGlzIG5vdCBhcyBzdGFuZGFyZCBhcyB3ZSdkIGhvcGVkISkgU28sIGlmIGl0J3MKLSAqIG5vdCBhbHJlYWR5IGRlZmluZWQsIHRoZW4gZGVmaW5lIGl0IGhlcmUuCi0gKi8KLSNpZm5kZWYgVEVNUF9GQUlMVVJFX1JFVFJZCi0vKiBVc2VkIHRvIHJldHJ5IHN5c2NhbGxzIHRoYXQgY2FuIHJldHVybiBFSU5UUi4gKi8KLSNkZWZpbmUgVEVNUF9GQUlMVVJFX1JFVFJZKGV4cCkgKHsgICAgICAgICBcCi0gICAgdHlwZW9mIChleHApIF9yYzsgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgX3JjID0gKGV4cCk7ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgfSB3aGlsZSAoX3JjID09IC0xICYmIGVycm5vID09IEVJTlRSKTsgXAotICAgIF9yYzsgfSkKLSNlbmRpZgotCi0KLW5hbWVzcGFjZSBhbmRyb2lkIHsKLQotT2JiRmlsZTo6T2JiRmlsZSgpCi0gICAgICAgIDogbVBhY2thZ2VOYW1lKCIiKQotICAgICAgICAsIG1WZXJzaW9uKC0xKQotICAgICAgICAsIG1GbGFncygwKQotewotICAgIG1lbXNldChtU2FsdCwgMCwgc2l6ZW9mKG1TYWx0KSk7Ci19Ci0KLU9iYkZpbGU6On5PYmJGaWxlKCkgewotfQotCi1ib29sIE9iYkZpbGU6OnJlYWRGcm9tKGNvbnN0IGNoYXIqIGZpbGVuYW1lKQotewotICAgIGludCBmZDsKLSAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKLQotICAgIGZkID0gOjpvcGVuKGZpbGVuYW1lLCBPX1JET05MWSk7Ci0gICAgaWYgKGZkIDwgMCkgewotICAgICAgICBBTE9HVygiY291bGRuJ3Qgb3BlbiBmaWxlICVzOiAlcyIsIGZpbGVuYW1lLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICBnb3RvIG91dDsKLSAgICB9Ci0gICAgc3VjY2VzcyA9IHJlYWRGcm9tKGZkKTsKLSAgICBjbG9zZShmZCk7Ci0KLSAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgQUxPR1coImZhaWxlZCB0byByZWFkIGZyb20gJXMgKGZkPSVkKVxuIiwgZmlsZW5hbWUsIGZkKTsKLSAgICB9Ci0KLW91dDoKLSAgICByZXR1cm4gc3VjY2VzczsKLX0KLQotYm9vbCBPYmJGaWxlOjpyZWFkRnJvbShpbnQgZmQpCi17Ci0gICAgaWYgKGZkIDwgMCkgewotICAgICAgICBBTE9HVygiYXR0ZW1wdCB0byByZWFkIGZyb20gaW52YWxpZCBmZFxuIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcGFyc2VPYmJGaWxlKGZkKTsKLX0KLQotYm9vbCBPYmJGaWxlOjpwYXJzZU9iYkZpbGUoaW50IGZkKQotewotICAgIG9mZjY0X3QgZmlsZUxlbmd0aCA9IGxzZWVrNjQoZmQsIDAsIFNFRUtfRU5EKTsKLQotICAgIGlmIChmaWxlTGVuZ3RoIDwga0Zvb3Rlck1pblNpemUpIHsKLSAgICAgICAgaWYgKGZpbGVMZW5ndGggPCAwKSB7Ci0gICAgICAgICAgICBBTE9HVygiZXJyb3Igc2Vla2luZyBpbiBPYmJGaWxlOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFMT0dXKCJmaWxlIGlzIG9ubHkgJWxsZCAobGVzcyB0aGFuICVkIG1pbmltdW0pXG4iLCBmaWxlTGVuZ3RoLCBrRm9vdGVyTWluU2l6ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHNzaXplX3QgYWN0dWFsOwotICAgIHNpemVfdCBmb290ZXJTaXplOwotCi0gICAgewotICAgICAgICBsc2VlazY0KGZkLCBmaWxlTGVuZ3RoIC0ga0Zvb3RlclRhZ1NpemUsIFNFRUtfU0VUKTsKLQotICAgICAgICBjaGFyIGZvb3RlcltrRm9vdGVyVGFnU2l6ZV07Ci0gICAgICAgIGFjdHVhbCA9IFRFTVBfRkFJTFVSRV9SRVRSWShyZWFkKGZkLCBmb290ZXIsIGtGb290ZXJUYWdTaXplKSk7Ci0gICAgICAgIGlmIChhY3R1YWwgIT0ga0Zvb3RlclRhZ1NpemUpIHsKLSAgICAgICAgICAgIEFMT0dXKCJjb3VsZG4ndCByZWFkIGZvb3RlciBzaWduYXR1cmU6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgdW5zaWduZWQgaW50IGZpbGVTaWcgPSBnZXQ0TEUoKHVuc2lnbmVkIGNoYXIqKWZvb3RlciArIHNpemVvZihpbnQzMl90KSk7Ci0gICAgICAgIGlmIChmaWxlU2lnICE9IGtTaWduYXR1cmUpIHsKLSAgICAgICAgICAgIEFMT0dXKCJmb290ZXIgZGlkbid0IG1hdGNoIG1hZ2ljIHN0cmluZyAoZXhwZWN0ZWQgMHglMDh4OyBnb3QgMHglMDh4KVxuIiwKLSAgICAgICAgICAgICAgICAgICAga1NpZ25hdHVyZSwgZmlsZVNpZyk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBmb290ZXJTaXplID0gZ2V0NExFKCh1bnNpZ25lZCBjaGFyKilmb290ZXIpOwotICAgICAgICBpZiAoZm9vdGVyU2l6ZSA+IChzaXplX3QpZmlsZUxlbmd0aCAtIGtGb290ZXJUYWdTaXplCi0gICAgICAgICAgICAgICAgfHwgZm9vdGVyU2l6ZSA+IGtNYXhCdWZTaXplKSB7Ci0gICAgICAgICAgICBBTE9HVygiY2xhaW1lZCBmb290ZXIgc2l6ZSBpcyB0b28gbGFyZ2UgKDB4JTA4eng7IGZpbGUgc2l6ZSBpcyAweCUwOGxseClcbiIsCi0gICAgICAgICAgICAgICAgICAgIGZvb3RlclNpemUsIGZpbGVMZW5ndGgpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGZvb3RlclNpemUgPCAoa0Zvb3Rlck1pblNpemUgLSBrRm9vdGVyVGFnU2l6ZSkpIHsKLSAgICAgICAgICAgIEFMT0dXKCJjbGFpbWVkIGZvb3RlciBzaXplIGlzIHRvbyBzbWFsbCAoMHgleng7IG1pbmltdW0gc2l6ZSBpcyAweCV4KVxuIiwKLSAgICAgICAgICAgICAgICAgICAgZm9vdGVyU2l6ZSwga0Zvb3Rlck1pblNpemUgLSBrRm9vdGVyVGFnU2l6ZSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBvZmY2NF90IGZpbGVPZmZzZXQgPSBmaWxlTGVuZ3RoIC0gZm9vdGVyU2l6ZSAtIGtGb290ZXJUYWdTaXplOwotICAgIGlmIChsc2VlazY0KGZkLCBmaWxlT2Zmc2V0LCBTRUVLX1NFVCkgIT0gZmlsZU9mZnNldCkgewotICAgICAgICBBTE9HVygic2VlayAlbGxkIGZhaWxlZDogJXNcbiIsIGZpbGVPZmZzZXQsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBtRm9vdGVyU3RhcnQgPSBmaWxlT2Zmc2V0OwotCi0gICAgY2hhciogc2NhbkJ1ZiA9IChjaGFyKiltYWxsb2MoZm9vdGVyU2l6ZSk7Ci0gICAgaWYgKHNjYW5CdWYgPT0gTlVMTCkgewotICAgICAgICBBTE9HVygiY291bGRuJ3QgYWxsb2NhdGUgc2NhbkJ1ZjogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBhY3R1YWwgPSBURU1QX0ZBSUxVUkVfUkVUUlkocmVhZChmZCwgc2NhbkJ1ZiwgZm9vdGVyU2l6ZSkpOwotICAgIC8vIHJlYWRBbW91bnQgaXMgZ3VhcmFudGVlZCB0byBiZSBsZXNzIHRoYW4ga01heEJ1ZlNpemUKLSAgICBpZiAoYWN0dWFsICE9IChzc2l6ZV90KWZvb3RlclNpemUpIHsKLSAgICAgICAgQUxPR0koImNvdWxkbid0IHJlYWQgT2JiRmlsZSBmb290ZXI6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICBmcmVlKHNjYW5CdWYpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0jaWZkZWYgREVCVUcKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGZvb3RlclNpemU7ICsraSkgewotICAgICAgICBBTE9HSSgiY2hhcjogMHglMDJ4XG4iLCBzY2FuQnVmW2ldKTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHVpbnQzMl90IHNpZ1ZlcnNpb24gPSBnZXQ0TEUoKHVuc2lnbmVkIGNoYXIqKXNjYW5CdWYpOwotICAgIGlmIChzaWdWZXJzaW9uICE9IGtTaWdWZXJzaW9uKSB7Ci0gICAgICAgIEFMT0dXKCJVbnN1cHBvcnRlZCBPYmJGaWxlIHZlcnNpb24gJWRcbiIsIHNpZ1ZlcnNpb24pOwotICAgICAgICBmcmVlKHNjYW5CdWYpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgbVZlcnNpb24gPSAoaW50MzJfdCkgZ2V0NExFKCh1bnNpZ25lZCBjaGFyKilzY2FuQnVmICsga1BhY2thZ2VWZXJzaW9uT2Zmc2V0KTsKLSAgICBtRmxhZ3MgPSAoaW50MzJfdCkgZ2V0NExFKCh1bnNpZ25lZCBjaGFyKilzY2FuQnVmICsga0ZsYWdzT2Zmc2V0KTsKLQotICAgIG1lbWNweSgmbVNhbHQsICh1bnNpZ25lZCBjaGFyKilzY2FuQnVmICsga1NhbHRPZmZzZXQsIHNpemVvZihtU2FsdCkpOwotCi0gICAgc2l6ZV90IHBhY2thZ2VOYW1lTGVuID0gZ2V0NExFKCh1bnNpZ25lZCBjaGFyKilzY2FuQnVmICsga1BhY2thZ2VOYW1lTGVuT2Zmc2V0KTsKLSAgICBpZiAocGFja2FnZU5hbWVMZW4gPT0gMAotICAgICAgICAgICAgfHwgcGFja2FnZU5hbWVMZW4gPiAoZm9vdGVyU2l6ZSAtIGtQYWNrYWdlTmFtZU9mZnNldCkpIHsKLSAgICAgICAgQUxPR1coImJhZCBPYmJGaWxlIHBhY2thZ2UgbmFtZSBsZW5ndGggKDB4JTA0eng7IDB4JTA0enggcG9zc2libGUpXG4iLAotICAgICAgICAgICAgICAgIHBhY2thZ2VOYW1lTGVuLCBmb290ZXJTaXplIC0ga1BhY2thZ2VOYW1lT2Zmc2V0KTsKLSAgICAgICAgZnJlZShzY2FuQnVmKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGNoYXIqIHBhY2thZ2VOYW1lID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oc2NhbkJ1ZiArIGtQYWNrYWdlTmFtZU9mZnNldCk7Ci0gICAgbVBhY2thZ2VOYW1lID0gU3RyaW5nOChjb25zdF9jYXN0PGNoYXIqPihwYWNrYWdlTmFtZSksIHBhY2thZ2VOYW1lTGVuKTsKLQotICAgIGZyZWUoc2NhbkJ1Zik7Ci0KLSNpZmRlZiBERUJVRwotICAgIEFMT0dJKCJPYmIgc2NhbiBzdWNjZWVkZWQ6IHBhY2thZ2VOYW1lPSVzLCB2ZXJzaW9uPSVkXG4iLCBtUGFja2FnZU5hbWUuc3RyaW5nKCksIG1WZXJzaW9uKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgT2JiRmlsZTo6d3JpdGVUbyhjb25zdCBjaGFyKiBmaWxlbmFtZSkKLXsKLSAgICBpbnQgZmQ7Ci0gICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0KLSAgICBmZCA9IDo6b3BlbihmaWxlbmFtZSwgT19XUk9OTFkpOwotICAgIGlmIChmZCA8IDApIHsKLSAgICAgICAgZ290byBvdXQ7Ci0gICAgfQotICAgIHN1Y2Nlc3MgPSB3cml0ZVRvKGZkKTsKLSAgICBjbG9zZShmZCk7Ci0KLW91dDoKLSAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgQUxPR1coImZhaWxlZCB0byB3cml0ZSB0byAlczogJXNcbiIsIGZpbGVuYW1lLCBzdHJlcnJvcihlcnJubykpOwotICAgIH0KLSAgICByZXR1cm4gc3VjY2VzczsKLX0KLQotYm9vbCBPYmJGaWxlOjp3cml0ZVRvKGludCBmZCkKLXsKLSAgICBpZiAoZmQgPCAwKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBsc2VlazY0KGZkLCAwLCBTRUVLX0VORCk7Ci0KLSAgICBpZiAobVBhY2thZ2VOYW1lLnNpemUoKSA9PSAwIHx8IG1WZXJzaW9uID09IC0xKSB7Ci0gICAgICAgIEFMT0dXKCJ0cmllZCB0byB3cml0ZSB1bmluaXRpYWxpemVkIE9iYkZpbGUgZGF0YVxuIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBjaGFyIGludEJ1ZltzaXplb2YodWludDMyX3QpKzFdOwotICAgIG1lbXNldCgmaW50QnVmLCAwLCBzaXplb2YoaW50QnVmKSk7Ci0KLSAgICBwdXQ0TEUoaW50QnVmLCBrU2lnVmVyc2lvbik7Ci0gICAgaWYgKHdyaXRlKGZkLCAmaW50QnVmLCBzaXplb2YodWludDMyX3QpKSAhPSAoc3NpemVfdClzaXplb2YodWludDMyX3QpKSB7Ci0gICAgICAgIEFMT0dXKCJjb3VsZG4ndCB3cml0ZSBzaWduYXR1cmUgdmVyc2lvbjogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBwdXQ0TEUoaW50QnVmLCBtVmVyc2lvbik7Ci0gICAgaWYgKHdyaXRlKGZkLCAmaW50QnVmLCBzaXplb2YodWludDMyX3QpKSAhPSAoc3NpemVfdClzaXplb2YodWludDMyX3QpKSB7Ci0gICAgICAgIEFMT0dXKCJjb3VsZG4ndCB3cml0ZSBwYWNrYWdlIHZlcnNpb25cbiIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcHV0NExFKGludEJ1ZiwgbUZsYWdzKTsKLSAgICBpZiAod3JpdGUoZmQsICZpbnRCdWYsIHNpemVvZih1aW50MzJfdCkpICE9IChzc2l6ZV90KXNpemVvZih1aW50MzJfdCkpIHsKLSAgICAgICAgQUxPR1coImNvdWxkbid0IHdyaXRlIHBhY2thZ2UgdmVyc2lvblxuIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAod3JpdGUoZmQsIG1TYWx0LCBzaXplb2YobVNhbHQpKSAhPSAoc3NpemVfdClzaXplb2YobVNhbHQpKSB7Ci0gICAgICAgIEFMT0dXKCJjb3VsZG4ndCB3cml0ZSBzYWx0OiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHNpemVfdCBwYWNrYWdlTmFtZUxlbiA9IG1QYWNrYWdlTmFtZS5zaXplKCk7Ci0gICAgcHV0NExFKGludEJ1ZiwgcGFja2FnZU5hbWVMZW4pOwotICAgIGlmICh3cml0ZShmZCwgJmludEJ1Ziwgc2l6ZW9mKHVpbnQzMl90KSkgIT0gKHNzaXplX3Qpc2l6ZW9mKHVpbnQzMl90KSkgewotICAgICAgICBBTE9HVygiY291bGRuJ3Qgd3JpdGUgcGFja2FnZSBuYW1lIGxlbmd0aDogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAod3JpdGUoZmQsIG1QYWNrYWdlTmFtZS5zdHJpbmcoKSwgcGFja2FnZU5hbWVMZW4pICE9IChzc2l6ZV90KXBhY2thZ2VOYW1lTGVuKSB7Ci0gICAgICAgIEFMT0dXKCJjb3VsZG4ndCB3cml0ZSBwYWNrYWdlIG5hbWU6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcHV0NExFKGludEJ1Ziwga1BhY2thZ2VOYW1lT2Zmc2V0ICsgcGFja2FnZU5hbWVMZW4pOwotICAgIGlmICh3cml0ZShmZCwgJmludEJ1Ziwgc2l6ZW9mKHVpbnQzMl90KSkgIT0gKHNzaXplX3Qpc2l6ZW9mKHVpbnQzMl90KSkgewotICAgICAgICBBTE9HVygiY291bGRuJ3Qgd3JpdGUgZm9vdGVyIHNpemU6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcHV0NExFKGludEJ1Ziwga1NpZ25hdHVyZSk7Ci0gICAgaWYgKHdyaXRlKGZkLCAmaW50QnVmLCBzaXplb2YodWludDMyX3QpKSAhPSAoc3NpemVfdClzaXplb2YodWludDMyX3QpKSB7Ci0gICAgICAgIEFMT0dXKCJjb3VsZG4ndCB3cml0ZSBmb290ZXIgbWFnaWMgc2lnbmF0dXJlOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIE9iYkZpbGU6OnJlbW92ZUZyb20oY29uc3QgY2hhciogZmlsZW5hbWUpCi17Ci0gICAgaW50IGZkOwotICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwotCi0gICAgZmQgPSA6Om9wZW4oZmlsZW5hbWUsIE9fUkRXUik7Ci0gICAgaWYgKGZkIDwgMCkgewotICAgICAgICBnb3RvIG91dDsKLSAgICB9Ci0gICAgc3VjY2VzcyA9IHJlbW92ZUZyb20oZmQpOwotICAgIGNsb3NlKGZkKTsKLQotb3V0OgotICAgIGlmICghc3VjY2VzcykgewotICAgICAgICBBTE9HVygiZmFpbGVkIHRvIHJlbW92ZSBzaWduYXR1cmUgZnJvbSAlczogJXNcbiIsIGZpbGVuYW1lLCBzdHJlcnJvcihlcnJubykpOwotICAgIH0KLSAgICByZXR1cm4gc3VjY2VzczsKLX0KLQotYm9vbCBPYmJGaWxlOjpyZW1vdmVGcm9tKGludCBmZCkKLXsKLSAgICBpZiAoZmQgPCAwKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoIXJlYWRGcm9tKGZkKSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgZnRydW5jYXRlKGZkLCBtRm9vdGVyU3RhcnQpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL2xpYnMvYW5kcm9pZGZ3L1Jlc291cmNlVHlwZXMuY3BwIGIvbGlicy9hbmRyb2lkZncvUmVzb3VyY2VUeXBlcy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjYzM1NjMuLjAwMDAwMDAKLS0tIGEvbGlicy9hbmRyb2lkZncvUmVzb3VyY2VUeXBlcy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1Nzk2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIExPR19UQUcgIlJlc291cmNlVHlwZSIKLS8vI2RlZmluZSBMT0dfTkRFQlVHIDAKLQotI2luY2x1ZGUgPGFuZHJvaWRmdy9SZXNvdXJjZVR5cGVzLmg+Ci0jaW5jbHVkZSA8dXRpbHMvQXRvbWljLmg+Ci0jaW5jbHVkZSA8dXRpbHMvQnl0ZU9yZGVyLmg+Ci0jaW5jbHVkZSA8dXRpbHMvRGVidWcuaD4KLSNpbmNsdWRlIDx1dGlscy9Mb2cuaD4KLSNpbmNsdWRlIDx1dGlscy9TdHJpbmcxNi5oPgotI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KLQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPG1lbW9yeS5oPgotI2luY2x1ZGUgPGN0eXBlLmg+Ci0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0KLSNpZm5kZWYgSU5UMzJfTUFYCi0jZGVmaW5lIElOVDMyX01BWCAoKGludDMyX3QpKDIxNDc0ODM2NDcpKQotI2VuZGlmCi0KLSNkZWZpbmUgU1RSSU5HX1BPT0xfTk9JU1koeCkgLy94Ci0jZGVmaW5lIFhNTF9OT0lTWSh4KSAvL3gKLSNkZWZpbmUgVEFCTEVfTk9JU1koeCkgLy94Ci0jZGVmaW5lIFRBQkxFX0dFVEVOVFJZKHgpIC8veAotI2RlZmluZSBUQUJMRV9TVVBFUl9OT0lTWSh4KSAvL3gKLSNkZWZpbmUgTE9BRF9UQUJMRV9OT0lTWSh4KSAvL3gKLSNkZWZpbmUgVEFCTEVfVEhFTUUoeCkgLy94Ci0KLW5hbWVzcGFjZSBhbmRyb2lkIHsKLQotI2lmZGVmIEhBVkVfV0lOU09DSwotI3VuZGVmICBuaHRvbAotI3VuZGVmICBodG9ubAotCi0jaWZkZWYgSEFWRV9MSVRUTEVfRU5ESUFOCi0jZGVmaW5lIG50b2hsKHgpICAgICggKCh4KSA8PCAyNCkgfCAoKCh4KSA+PiAyNCkgJiAyNTUpIHwgKCgoeCkgPDwgOCkgJiAweGZmMDAwMCkgfCAoKCh4KSA+PiA4KSAmIDB4ZmYwMCkgKQotI2RlZmluZSBodG9ubCh4KSAgICBudG9obCh4KQotI2RlZmluZSBudG9ocyh4KSAgICAoICgoKHgpIDw8IDgpICYgMHhmZjAwKSB8ICgoKHgpID4+IDgpICYgMjU1KSApCi0jZGVmaW5lIGh0b25zKHgpICAgIG50b2hzKHgpCi0jZWxzZQotI2RlZmluZSBudG9obCh4KSAgICAoeCkKLSNkZWZpbmUgaHRvbmwoeCkgICAgKHgpCi0jZGVmaW5lIG50b2hzKHgpICAgICh4KQotI2RlZmluZSBodG9ucyh4KSAgICAoeCkKLSNlbmRpZgotI2VuZGlmCi0KLSNkZWZpbmUgSURNQVBfTUFHSUMgICAgICAgICAweDcwNmQ2NDY5Ci0vLyBzaXplIG1lYXN1cmVkIGluIHNpemVvZih1aW50MzJfdCkKLSNkZWZpbmUgSURNQVBfSEVBREVSX1NJWkUgKFJlc1RhYmxlOjpJRE1BUF9IRUFERVJfU0laRV9CWVRFUyAvIHNpemVvZih1aW50MzJfdCkpCi0KLXN0YXRpYyB2b2lkIHByaW50VG9Mb2dGdW5jKHZvaWQqIGNvb2tpZSwgY29uc3QgY2hhciogdHh0KQotewotICAgIEFMT0dWKCIlcyIsIHR4dCk7Ci19Ci0KLS8vIFN0YW5kYXJkIEMgaXNzcGFjZSgpIGlzIG9ubHkgcmVxdWlyZWQgdG8gbG9vayBhdCB0aGUgbG93IGJ5dGUgb2YgaXRzIGlucHV0LCBzbwotLy8gcHJvZHVjZXMgaW5jb3JyZWN0IHJlc3VsdHMgZm9yIFVURi0xNiBjaGFyYWN0ZXJzLiAgRm9yIHNhZmV0eSdzIHNha2UsIGFzc3VtZSB0aGF0Ci0vLyBhbnkgaGlnaC1ieXRlIFVURi0xNiBjb2RlIHBvaW50IGlzIG5vdCB3aGl0ZXNwYWNlLgotaW5saW5lIGludCBpc3NwYWNlMTYoY2hhcjE2X3QgYykgewotICAgIHJldHVybiAoYyA8IDB4MDA4MCAmJiBpc3NwYWNlKGMpKTsKLX0KLQotLy8gcmFuZ2UgY2hlY2tlZDsgZ3VhcmFudGVlZCB0byBOVUwtdGVybWluYXRlIHdpdGhpbiB0aGUgc3RhdGVkIG51bWJlciBvZiBhdmFpbGFibGUgc2xvdHMKLS8vIE5PVEU6IGlmIHRoaXMgdHJ1bmNhdGVzIHRoZSBkc3Qgc3RyaW5nIGR1ZSB0byBydW5uaW5nIG91dCBvZiBzcGFjZSwgbm8gYXR0ZW1wdCBpcwotLy8gbWFkZSB0byBhdm9pZCBzcGxpdHRpbmcgc3Vycm9nYXRlIHBhaXJzLgotc3RhdGljIHZvaWQgc3RyY3B5MTZfZHRvaCh1aW50MTZfdCogZHN0LCBjb25zdCB1aW50MTZfdCogc3JjLCBzaXplX3QgYXZhaWwpCi17Ci0gICAgdWludDE2X3QqIGxhc3QgPSBkc3QgKyBhdmFpbCAtIDE7Ci0gICAgd2hpbGUgKCpzcmMgJiYgKGRzdCA8IGxhc3QpKSB7Ci0gICAgICAgIGNoYXIxNl90IHMgPSBkdG9ocygqc3JjKTsKLSAgICAgICAgKmRzdCsrID0gczsKLSAgICAgICAgc3JjKys7Ci0gICAgfQotICAgICpkc3QgPSAwOwotfQotCi1zdGF0aWMgc3RhdHVzX3QgdmFsaWRhdGVfY2h1bmsoY29uc3QgUmVzQ2h1bmtfaGVhZGVyKiBjaHVuaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbWluU2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90KiBkYXRhRW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG5hbWUpCi17Ci0gICAgY29uc3QgdWludDE2X3QgaGVhZGVyU2l6ZSA9IGR0b2hzKGNodW5rLT5oZWFkZXJTaXplKTsKLSAgICBjb25zdCB1aW50MzJfdCBzaXplID0gZHRvaGwoY2h1bmstPnNpemUpOwotCi0gICAgaWYgKGhlYWRlclNpemUgPj0gbWluU2l6ZSkgewotICAgICAgICBpZiAoaGVhZGVyU2l6ZSA8PSBzaXplKSB7Ci0gICAgICAgICAgICBpZiAoKChoZWFkZXJTaXplfHNpemUpJjB4MykgPT0gMCkgewotICAgICAgICAgICAgICAgIGlmICgoc3NpemVfdClzaXplIDw9IChkYXRhRW5kLSgoY29uc3QgdWludDhfdCopY2h1bmspKSkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIEFMT0dXKCIlcyBkYXRhIHNpemUgJXAgZXh0ZW5kcyBiZXlvbmQgcmVzb3VyY2UgZW5kICVwLiIsCi0gICAgICAgICAgICAgICAgICAgICBuYW1lLCAodm9pZCopc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICh2b2lkKikoZGF0YUVuZC0oKGNvbnN0IHVpbnQ4X3QqKWNodW5rKSkpOwotICAgICAgICAgICAgICAgIHJldHVybiBCQURfVFlQRTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEFMT0dXKCIlcyBzaXplIDB4JXggb3IgaGVhZGVyU2l6ZSAweCV4IGlzIG5vdCBvbiBhbiBpbnRlZ2VyIGJvdW5kYXJ5LiIsCi0gICAgICAgICAgICAgICAgIG5hbWUsIChpbnQpc2l6ZSwgKGludCloZWFkZXJTaXplKTsKLSAgICAgICAgICAgIHJldHVybiBCQURfVFlQRTsKLSAgICAgICAgfQotICAgICAgICBBTE9HVygiJXMgc2l6ZSAlcCBpcyBzbWFsbGVyIHRoYW4gaGVhZGVyIHNpemUgJXAuIiwKLSAgICAgICAgICAgICBuYW1lLCAodm9pZCopc2l6ZSwgKHZvaWQqKShpbnQpaGVhZGVyU2l6ZSk7Ci0gICAgICAgIHJldHVybiBCQURfVFlQRTsKLSAgICB9Ci0gICAgQUxPR1coIiVzIGhlYWRlciBzaXplICVwIGlzIHRvbyBzbWFsbC4iLAotICAgICAgICAgbmFtZSwgKHZvaWQqKShpbnQpaGVhZGVyU2l6ZSk7Ci0gICAgcmV0dXJuIEJBRF9UWVBFOwotfQotCi1pbmxpbmUgdm9pZCBSZXNfdmFsdWU6OmNvcHlGcm9tX2R0b2goY29uc3QgUmVzX3ZhbHVlJiBzcmMpCi17Ci0gICAgc2l6ZSA9IGR0b2hzKHNyYy5zaXplKTsKLSAgICByZXMwID0gc3JjLnJlczA7Ci0gICAgZGF0YVR5cGUgPSBzcmMuZGF0YVR5cGU7Ci0gICAgZGF0YSA9IGR0b2hsKHNyYy5kYXRhKTsKLX0KLQotdm9pZCBSZXNfcG5nXzlwYXRjaDo6ZGV2aWNlVG9GaWxlKCkKLXsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVhEaXZzOyBpKyspIHsKLSAgICAgICAgeERpdnNbaV0gPSBodG9ubCh4RGl2c1tpXSk7Ci0gICAgfQotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtWURpdnM7IGkrKykgewotICAgICAgICB5RGl2c1tpXSA9IGh0b25sKHlEaXZzW2ldKTsKLSAgICB9Ci0gICAgcGFkZGluZ0xlZnQgPSBodG9ubChwYWRkaW5nTGVmdCk7Ci0gICAgcGFkZGluZ1JpZ2h0ID0gaHRvbmwocGFkZGluZ1JpZ2h0KTsKLSAgICBwYWRkaW5nVG9wID0gaHRvbmwocGFkZGluZ1RvcCk7Ci0gICAgcGFkZGluZ0JvdHRvbSA9IGh0b25sKHBhZGRpbmdCb3R0b20pOwotICAgIGZvciAoaW50IGk9MDsgaTxudW1Db2xvcnM7IGkrKykgewotICAgICAgICBjb2xvcnNbaV0gPSBodG9ubChjb2xvcnNbaV0pOwotICAgIH0KLX0KLQotdm9pZCBSZXNfcG5nXzlwYXRjaDo6ZmlsZVRvRGV2aWNlKCkKLXsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVhEaXZzOyBpKyspIHsKLSAgICAgICAgeERpdnNbaV0gPSBudG9obCh4RGl2c1tpXSk7Ci0gICAgfQotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtWURpdnM7IGkrKykgewotICAgICAgICB5RGl2c1tpXSA9IG50b2hsKHlEaXZzW2ldKTsKLSAgICB9Ci0gICAgcGFkZGluZ0xlZnQgPSBudG9obChwYWRkaW5nTGVmdCk7Ci0gICAgcGFkZGluZ1JpZ2h0ID0gbnRvaGwocGFkZGluZ1JpZ2h0KTsKLSAgICBwYWRkaW5nVG9wID0gbnRvaGwocGFkZGluZ1RvcCk7Ci0gICAgcGFkZGluZ0JvdHRvbSA9IG50b2hsKHBhZGRpbmdCb3R0b20pOwotICAgIGZvciAoaW50IGk9MDsgaTxudW1Db2xvcnM7IGkrKykgewotICAgICAgICBjb2xvcnNbaV0gPSBudG9obChjb2xvcnNbaV0pOwotICAgIH0KLX0KLQotc2l6ZV90IFJlc19wbmdfOXBhdGNoOjpzZXJpYWxpemVkU2l6ZSgpCi17Ci0gICAgLy8gVGhlIHNpemUgb2YgdGhpcyBzdHJ1Y3QgaXMgMzIgYnl0ZXMgb24gdGhlIDMyLWJpdCB0YXJnZXQgc3lzdGVtCi0gICAgLy8gNCAqIGludDhfdAotICAgIC8vIDQgKiBpbnQzMl90Ci0gICAgLy8gMyAqIHBvaW50ZXIKLSAgICByZXR1cm4gMzIKLSAgICAgICAgICAgICsgbnVtWERpdnMgKiBzaXplb2YoaW50MzJfdCkKLSAgICAgICAgICAgICsgbnVtWURpdnMgKiBzaXplb2YoaW50MzJfdCkKLSAgICAgICAgICAgICsgbnVtQ29sb3JzICogc2l6ZW9mKHVpbnQzMl90KTsKLX0KLQotdm9pZCogUmVzX3BuZ185cGF0Y2g6OnNlcmlhbGl6ZSgpCi17Ci0gICAgLy8gVXNlIGNhbGxvYyBzaW5jZSB3ZSdyZSBnb2luZyB0byBsZWF2ZSBhIGZldyBob2xlcyBpbiB0aGUgZGF0YQotICAgIC8vIGFuZCB3YW50IHRoaXMgdG8gcnVuIGNsZWFubHkgdW5kZXIgdmFsZ3JpbmQKLSAgICB2b2lkKiBuZXdEYXRhID0gY2FsbG9jKDEsIHNlcmlhbGl6ZWRTaXplKCkpOwotICAgIHNlcmlhbGl6ZShuZXdEYXRhKTsKLSAgICByZXR1cm4gbmV3RGF0YTsKLX0KLQotdm9pZCBSZXNfcG5nXzlwYXRjaDo6c2VyaWFsaXplKHZvaWQgKiBvdXREYXRhKQotewotICAgIGNoYXIqIGRhdGEgPSAoY2hhciopIG91dERhdGE7Ci0gICAgbWVtbW92ZShkYXRhLCAmd2FzRGVzZXJpYWxpemVkLCA0KTsgICAgIC8vIGNvcHkgIHdhc0Rlc2VyaWFsaXplZCwgbnVtWERpdnMsIG51bVlEaXZzLCBudW1Db2xvcnMKLSAgICBtZW1tb3ZlKGRhdGEgKyAxMiwgJnBhZGRpbmdMZWZ0LCAxNik7ICAgLy8gY29weSBwYWRkaW5nWFhYWAotICAgIGRhdGEgKz0gMzI7Ci0KLSAgICBtZW1tb3ZlKGRhdGEsIHRoaXMtPnhEaXZzLCBudW1YRGl2cyAqIHNpemVvZihpbnQzMl90KSk7Ci0gICAgZGF0YSArPSAgbnVtWERpdnMgKiBzaXplb2YoaW50MzJfdCk7Ci0gICAgbWVtbW92ZShkYXRhLCB0aGlzLT55RGl2cywgbnVtWURpdnMgKiBzaXplb2YoaW50MzJfdCkpOwotICAgIGRhdGEgKz0gIG51bVlEaXZzICogc2l6ZW9mKGludDMyX3QpOwotICAgIG1lbW1vdmUoZGF0YSwgdGhpcy0+Y29sb3JzLCBudW1Db2xvcnMgKiBzaXplb2YodWludDMyX3QpKTsKLX0KLQotc3RhdGljIHZvaWQgZGVzZXJpYWxpemVJbnRlcm5hbChjb25zdCB2b2lkKiBpbkRhdGEsIFJlc19wbmdfOXBhdGNoKiBvdXREYXRhKSB7Ci0gICAgY2hhciogcGF0Y2ggPSAoY2hhciopIGluRGF0YTsKLSAgICBpZiAoaW5EYXRhICE9IG91dERhdGEpIHsKLSAgICAgICAgbWVtbW92ZSgmb3V0RGF0YS0+d2FzRGVzZXJpYWxpemVkLCBwYXRjaCwgNCk7ICAgICAvLyBjb3B5ICB3YXNEZXNlcmlhbGl6ZWQsIG51bVhEaXZzLCBudW1ZRGl2cywgbnVtQ29sb3JzCi0gICAgICAgIG1lbW1vdmUoJm91dERhdGEtPnBhZGRpbmdMZWZ0LCBwYXRjaCArIDEyLCA0KTsgICAgIC8vIGNvcHkgIHdhc0Rlc2VyaWFsaXplZCwgbnVtWERpdnMsIG51bVlEaXZzLCBudW1Db2xvcnMKLSAgICB9Ci0gICAgb3V0RGF0YS0+d2FzRGVzZXJpYWxpemVkID0gdHJ1ZTsKLSAgICBjaGFyKiBkYXRhID0gKGNoYXIqKW91dERhdGE7Ci0gICAgZGF0YSArPSAgc2l6ZW9mKFJlc19wbmdfOXBhdGNoKTsKLSAgICBvdXREYXRhLT54RGl2cyA9IChpbnQzMl90KikgZGF0YTsKLSAgICBkYXRhICs9ICBvdXREYXRhLT5udW1YRGl2cyAqIHNpemVvZihpbnQzMl90KTsKLSAgICBvdXREYXRhLT55RGl2cyA9IChpbnQzMl90KikgZGF0YTsKLSAgICBkYXRhICs9ICBvdXREYXRhLT5udW1ZRGl2cyAqIHNpemVvZihpbnQzMl90KTsKLSAgICBvdXREYXRhLT5jb2xvcnMgPSAodWludDMyX3QqKSBkYXRhOwotfQotCi1zdGF0aWMgYm9vbCBhc3NlcnRJZG1hcEhlYWRlcihjb25zdCB1aW50MzJfdCogbWFwLCBzaXplX3Qgc2l6ZUJ5dGVzKQotewotICAgIGlmIChzaXplQnl0ZXMgPCBSZXNUYWJsZTo6SURNQVBfSEVBREVSX1NJWkVfQllURVMpIHsKLSAgICAgICAgQUxPR1coImlkbWFwIGFzc2VydGlvbiBmYWlsZWQ6IHNpemU9JWQgYnl0ZXNcbiIsIChpbnQpc2l6ZUJ5dGVzKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAoKm1hcCAhPSBodG9kbChJRE1BUF9NQUdJQykpIHsgLy8gaHRvZGw6IG1hcCBkYXRhIGV4cGVjdGVkIHRvIGJlIGluIGNvcnJlY3QgZW5kaWFuZXNzCi0gICAgICAgIEFMT0dXKCJpZG1hcCBhc3NlcnRpb24gZmFpbGVkOiBpbnZhbGlkIG1hZ2ljIGZvdW5kIChpcyAweCUwOHgsIGV4cGVjdGVkIDB4JTA4eClcbiIsCi0gICAgICAgICAgICAgKm1hcCwgaHRvZGwoSURNQVBfTUFHSUMpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIHN0YXR1c190IGlkbWFwTG9va3VwKGNvbnN0IHVpbnQzMl90KiBtYXAsIHNpemVfdCBzaXplQnl0ZXMsIHVpbnQzMl90IGtleSwgdWludDMyX3QqIG91dFZhbHVlKQotewotICAgIC8vIHNlZSBSRUFETUUgZm9yIGRldGFpbHMgb24gdGhlIGZvcm1hdCBvZiBtYXAKLSAgICBpZiAoIWFzc2VydElkbWFwSGVhZGVyKG1hcCwgc2l6ZUJ5dGVzKSkgewotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0gICAgbWFwID0gbWFwICsgSURNQVBfSEVBREVSX1NJWkU7IC8vIHNraXAgYWhlYWQgdG8gZGF0YSBzZWdtZW50Ci0gICAgLy8gc2l6ZSBvZiBkYXRhIGJsb2NrLCBpbiB1aW50MzJfdAotICAgIGNvbnN0IHNpemVfdCBzaXplID0gKHNpemVCeXRlcyAtIFJlc1RhYmxlOjpJRE1BUF9IRUFERVJfU0laRV9CWVRFUykgLyBzaXplb2YodWludDMyX3QpOwotICAgIGNvbnN0IHVpbnQzMl90IHR5cGUgPSBSZXNfR0VUVFlQRShrZXkpICsgMTsgLy8gYWRkIG9uZSwgaWRtYXAgc3RvcmVzICJwdWJsaWMiIHR5cGUgaWQKLSAgICBjb25zdCB1aW50MzJfdCBlbnRyeSA9IFJlc19HRVRFTlRSWShrZXkpOwotICAgIGNvbnN0IHVpbnQzMl90IHR5cGVDb3VudCA9ICptYXA7Ci0KLSAgICBpZiAodHlwZSA+IHR5cGVDb3VudCkgewotICAgICAgICBBTE9HVygiUmVzb3VyY2UgSUQgbWFwOiB0eXBlPSVkIGV4Y2VlZHMgbnVtYmVyIG9mIHR5cGVzPSVkXG4iLCB0eXBlLCB0eXBlQ291bnQpOwotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0gICAgaWYgKHR5cGVDb3VudCA+IHNpemUpIHsKLSAgICAgICAgQUxPR1coIlJlc291cmNlIElEIG1hcDogbnVtYmVyIG9mIHR5cGVzPSVkIGV4Y2VlZHMgc2l6ZSBvZiBtYXA9JWRcbiIsIHR5cGVDb3VudCwgKGludClzaXplKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotICAgIGNvbnN0IHVpbnQzMl90IHR5cGVPZmZzZXQgPSBtYXBbdHlwZV07Ci0gICAgaWYgKHR5cGVPZmZzZXQgPT0gMCkgewotICAgICAgICAqb3V0VmFsdWUgPSAwOwotICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgfQotICAgIGlmICh0eXBlT2Zmc2V0ICsgMSA+IHNpemUpIHsKLSAgICAgICAgQUxPR1coIlJlc291cmNlIElEIG1hcDogdHlwZSBvZmZzZXQ9JWQgZXhjZWVkcyByZWFzb25hYmxlIHZhbHVlLCBzaXplIG9mIG1hcD0lZFxuIiwKLSAgICAgICAgICAgICB0eXBlT2Zmc2V0LCAoaW50KXNpemUpOwotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0gICAgY29uc3QgdWludDMyX3QgZW50cnlDb3VudCA9IG1hcFt0eXBlT2Zmc2V0XTsKLSAgICBjb25zdCB1aW50MzJfdCBlbnRyeU9mZnNldCA9IG1hcFt0eXBlT2Zmc2V0ICsgMV07Ci0gICAgaWYgKGVudHJ5Q291bnQgPT0gMCB8fCBlbnRyeSA8IGVudHJ5T2Zmc2V0IHx8IGVudHJ5IC0gZW50cnlPZmZzZXQgPiBlbnRyeUNvdW50IC0gMSkgewotICAgICAgICAqb3V0VmFsdWUgPSAwOwotICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgfQotICAgIGNvbnN0IHVpbnQzMl90IGluZGV4ID0gdHlwZU9mZnNldCArIDIgKyBlbnRyeSAtIGVudHJ5T2Zmc2V0OwotICAgIGlmIChpbmRleCA+IHNpemUpIHsKLSAgICAgICAgQUxPR1coIlJlc291cmNlIElEIG1hcDogZW50cnkgaW5kZXg9JWQgZXhjZWVkcyBzaXplIG9mIG1hcD0lZFxuIiwgaW5kZXgsIChpbnQpc2l6ZSk7Ci0gICAgICAgICpvdXRWYWx1ZSA9IDA7Ci0gICAgICAgIHJldHVybiBOT19FUlJPUjsKLSAgICB9Ci0gICAgKm91dFZhbHVlID0gbWFwW2luZGV4XTsKLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3RhdGljIHN0YXR1c190IGdldElkbWFwUGFja2FnZUlkKGNvbnN0IHVpbnQzMl90KiBtYXAsIHNpemVfdCBtYXBTaXplLCB1aW50MzJfdCAqb3V0SWQpCi17Ci0gICAgaWYgKCFhc3NlcnRJZG1hcEhlYWRlcihtYXAsIG1hcFNpemUpKSB7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLSAgICBjb25zdCB1aW50MzJfdCogcCA9IG1hcCArIElETUFQX0hFQURFUl9TSVpFICsgMTsKLSAgICB3aGlsZSAoKnAgPT0gMCkgewotICAgICAgICArK3A7Ci0gICAgfQotICAgICpvdXRJZCA9IChtYXBbKnAgKyBJRE1BUF9IRUFERVJfU0laRSArIDJdID4+IDI0KSAmIDB4MDAwMDAwZmY7Ci0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi1SZXNfcG5nXzlwYXRjaCogUmVzX3BuZ185cGF0Y2g6OmRlc2VyaWFsaXplKGNvbnN0IHZvaWQqIGluRGF0YSkKLXsKLSAgICBpZiAoc2l6ZW9mKHZvaWQqKSAhPSBzaXplb2YoaW50MzJfdCkpIHsKLSAgICAgICAgQUxPR0UoIkNhbm5vdCBkZXNlcmlhbGl6ZSBvbiBub24gMzItYml0IHN5c3RlbVxuIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBkZXNlcmlhbGl6ZUludGVybmFsKGluRGF0YSwgKFJlc19wbmdfOXBhdGNoKikgaW5EYXRhKTsKLSAgICByZXR1cm4gKFJlc19wbmdfOXBhdGNoKikgaW5EYXRhOwotfQotCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVJlc1N0cmluZ1Bvb2w6OlJlc1N0cmluZ1Bvb2woKQotICAgIDogbUVycm9yKE5PX0lOSVQpLCBtT3duZWREYXRhKE5VTEwpLCBtSGVhZGVyKE5VTEwpLCBtQ2FjaGUoTlVMTCkKLXsKLX0KLQotUmVzU3RyaW5nUG9vbDo6UmVzU3RyaW5nUG9vbChjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSwgYm9vbCBjb3B5RGF0YSkKLSAgICA6IG1FcnJvcihOT19JTklUKSwgbU93bmVkRGF0YShOVUxMKSwgbUhlYWRlcihOVUxMKSwgbUNhY2hlKE5VTEwpCi17Ci0gICAgc2V0VG8oZGF0YSwgc2l6ZSwgY29weURhdGEpOwotfQotCi1SZXNTdHJpbmdQb29sOjp+UmVzU3RyaW5nUG9vbCgpCi17Ci0gICAgdW5pbml0KCk7Ci19Ci0KLXN0YXR1c190IFJlc1N0cmluZ1Bvb2w6OnNldFRvKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBzaXplLCBib29sIGNvcHlEYXRhKQotewotICAgIGlmICghZGF0YSB8fCAhc2l6ZSkgewotICAgICAgICByZXR1cm4gKG1FcnJvcj1CQURfVFlQRSk7Ci0gICAgfQotCi0gICAgdW5pbml0KCk7Ci0KLSAgICBjb25zdCBib29sIG5vdERldmljZUVuZGlhbiA9IGh0b2RzKDB4ZjApICE9IDB4ZjA7Ci0KLSAgICBpZiAoY29weURhdGEgfHwgbm90RGV2aWNlRW5kaWFuKSB7Ci0gICAgICAgIG1Pd25lZERhdGEgPSBtYWxsb2Moc2l6ZSk7Ci0gICAgICAgIGlmIChtT3duZWREYXRhID09IE5VTEwpIHsKLSAgICAgICAgICAgIHJldHVybiAobUVycm9yPU5PX01FTU9SWSk7Ci0gICAgICAgIH0KLSAgICAgICAgbWVtY3B5KG1Pd25lZERhdGEsIGRhdGEsIHNpemUpOwotICAgICAgICBkYXRhID0gbU93bmVkRGF0YTsKLSAgICB9Ci0KLSAgICBtSGVhZGVyID0gKGNvbnN0IFJlc1N0cmluZ1Bvb2xfaGVhZGVyKilkYXRhOwotCi0gICAgaWYgKG5vdERldmljZUVuZGlhbikgewotICAgICAgICBSZXNTdHJpbmdQb29sX2hlYWRlciogaCA9IGNvbnN0X2Nhc3Q8UmVzU3RyaW5nUG9vbF9oZWFkZXIqPihtSGVhZGVyKTsKLSAgICAgICAgaC0+aGVhZGVyLmhlYWRlclNpemUgPSBkdG9ocyhtSGVhZGVyLT5oZWFkZXIuaGVhZGVyU2l6ZSk7Ci0gICAgICAgIGgtPmhlYWRlci50eXBlID0gZHRvaHMobUhlYWRlci0+aGVhZGVyLnR5cGUpOwotICAgICAgICBoLT5oZWFkZXIuc2l6ZSA9IGR0b2hsKG1IZWFkZXItPmhlYWRlci5zaXplKTsKLSAgICAgICAgaC0+c3RyaW5nQ291bnQgPSBkdG9obChtSGVhZGVyLT5zdHJpbmdDb3VudCk7Ci0gICAgICAgIGgtPnN0eWxlQ291bnQgPSBkdG9obChtSGVhZGVyLT5zdHlsZUNvdW50KTsKLSAgICAgICAgaC0+ZmxhZ3MgPSBkdG9obChtSGVhZGVyLT5mbGFncyk7Ci0gICAgICAgIGgtPnN0cmluZ3NTdGFydCA9IGR0b2hsKG1IZWFkZXItPnN0cmluZ3NTdGFydCk7Ci0gICAgICAgIGgtPnN0eWxlc1N0YXJ0ID0gZHRvaGwobUhlYWRlci0+c3R5bGVzU3RhcnQpOwotICAgIH0KLQotICAgIGlmIChtSGVhZGVyLT5oZWFkZXIuaGVhZGVyU2l6ZSA+IG1IZWFkZXItPmhlYWRlci5zaXplCi0gICAgICAgICAgICB8fCBtSGVhZGVyLT5oZWFkZXIuc2l6ZSA+IHNpemUpIHsKLSAgICAgICAgQUxPR1coIkJhZCBzdHJpbmcgYmxvY2s6IGhlYWRlciBzaXplICVkIG9yIHRvdGFsIHNpemUgJWQgaXMgbGFyZ2VyIHRoYW4gZGF0YSBzaXplICVkXG4iLAotICAgICAgICAgICAgICAgIChpbnQpbUhlYWRlci0+aGVhZGVyLmhlYWRlclNpemUsIChpbnQpbUhlYWRlci0+aGVhZGVyLnNpemUsIChpbnQpc2l6ZSk7Ci0gICAgICAgIHJldHVybiAobUVycm9yPUJBRF9UWVBFKTsKLSAgICB9Ci0gICAgbVNpemUgPSBtSGVhZGVyLT5oZWFkZXIuc2l6ZTsKLSAgICBtRW50cmllcyA9IChjb25zdCB1aW50MzJfdCopCi0gICAgICAgICgoKGNvbnN0IHVpbnQ4X3QqKWRhdGEpK21IZWFkZXItPmhlYWRlci5oZWFkZXJTaXplKTsKLQotICAgIGlmIChtSGVhZGVyLT5zdHJpbmdDb3VudCA+IDApIHsKLSAgICAgICAgaWYgKChtSGVhZGVyLT5zdHJpbmdDb3VudCpzaXplb2YodWludDMyX3QpIDwgbUhlYWRlci0+c3RyaW5nQ291bnQpICAvLyB1aW50MzIgb3ZlcmZsb3c/Ci0gICAgICAgICAgICB8fCAobUhlYWRlci0+aGVhZGVyLmhlYWRlclNpemUrKG1IZWFkZXItPnN0cmluZ0NvdW50KnNpemVvZih1aW50MzJfdCkpKQotICAgICAgICAgICAgICAgID4gc2l6ZSkgewotICAgICAgICAgICAgQUxPR1coIkJhZCBzdHJpbmcgYmxvY2s6IGVudHJ5IG9mICVkIGl0ZW1zIGV4dGVuZHMgcGFzdCBkYXRhIHNpemUgJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgIChpbnQpKG1IZWFkZXItPmhlYWRlci5oZWFkZXJTaXplKyhtSGVhZGVyLT5zdHJpbmdDb3VudCpzaXplb2YodWludDMyX3QpKSksCi0gICAgICAgICAgICAgICAgICAgIChpbnQpc2l6ZSk7Ci0gICAgICAgICAgICByZXR1cm4gKG1FcnJvcj1CQURfVFlQRSk7Ci0gICAgICAgIH0KLQotICAgICAgICBzaXplX3QgY2hhclNpemU7Ci0gICAgICAgIGlmIChtSGVhZGVyLT5mbGFncyZSZXNTdHJpbmdQb29sX2hlYWRlcjo6VVRGOF9GTEFHKSB7Ci0gICAgICAgICAgICBjaGFyU2l6ZSA9IHNpemVvZih1aW50OF90KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGNoYXJTaXplID0gc2l6ZW9mKGNoYXIxNl90KTsKLSAgICAgICAgfQotCi0gICAgICAgIG1TdHJpbmdzID0gKGNvbnN0IHZvaWQqKQotICAgICAgICAgICAgKCgoY29uc3QgdWludDhfdCopZGF0YSkrbUhlYWRlci0+c3RyaW5nc1N0YXJ0KTsKLSAgICAgICAgaWYgKG1IZWFkZXItPnN0cmluZ3NTdGFydCA+PSAobUhlYWRlci0+aGVhZGVyLnNpemUtc2l6ZW9mKHVpbnQxNl90KSkpIHsKLSAgICAgICAgICAgIEFMT0dXKCJCYWQgc3RyaW5nIGJsb2NrOiBzdHJpbmcgcG9vbCBzdGFydHMgYXQgJWQsIGFmdGVyIHRvdGFsIHNpemUgJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgIChpbnQpbUhlYWRlci0+c3RyaW5nc1N0YXJ0LCAoaW50KW1IZWFkZXItPmhlYWRlci5zaXplKTsKLSAgICAgICAgICAgIHJldHVybiAobUVycm9yPUJBRF9UWVBFKTsKLSAgICAgICAgfQotICAgICAgICBpZiAobUhlYWRlci0+c3R5bGVDb3VudCA9PSAwKSB7Ci0gICAgICAgICAgICBtU3RyaW5nUG9vbFNpemUgPQotICAgICAgICAgICAgICAgIChtSGVhZGVyLT5oZWFkZXIuc2l6ZS1tSGVhZGVyLT5zdHJpbmdzU3RhcnQpL2NoYXJTaXplOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gY2hlY2sgaW52YXJpYW50OiBzdHlsZXMgc3RhcnRzIGJlZm9yZSBlbmQgb2YgZGF0YQotICAgICAgICAgICAgaWYgKG1IZWFkZXItPnN0eWxlc1N0YXJ0ID49IChtSGVhZGVyLT5oZWFkZXIuc2l6ZS1zaXplb2YodWludDE2X3QpKSkgewotICAgICAgICAgICAgICAgIEFMT0dXKCJCYWQgc3R5bGUgYmxvY2s6IHN0eWxlIGJsb2NrIHN0YXJ0cyBhdCAlZCBwYXN0IGRhdGEgc2l6ZSBvZiAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgKGludCltSGVhZGVyLT5zdHlsZXNTdGFydCwgKGludCltSGVhZGVyLT5oZWFkZXIuc2l6ZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChtRXJyb3I9QkFEX1RZUEUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gY2hlY2sgaW52YXJpYW50OiBzdHlsZXMgZm9sbG93IHRoZSBzdHJpbmdzCi0gICAgICAgICAgICBpZiAobUhlYWRlci0+c3R5bGVzU3RhcnQgPD0gbUhlYWRlci0+c3RyaW5nc1N0YXJ0KSB7Ci0gICAgICAgICAgICAgICAgQUxPR1coIkJhZCBzdHlsZSBibG9jazogc3R5bGUgYmxvY2sgc3RhcnRzIGF0ICVkLCBiZWZvcmUgc3RyaW5ncyBhdCAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgKGludCltSGVhZGVyLT5zdHlsZXNTdGFydCwgKGludCltSGVhZGVyLT5zdHJpbmdzU3RhcnQpOwotICAgICAgICAgICAgICAgIHJldHVybiAobUVycm9yPUJBRF9UWVBFKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1TdHJpbmdQb29sU2l6ZSA9Ci0gICAgICAgICAgICAgICAgKG1IZWFkZXItPnN0eWxlc1N0YXJ0LW1IZWFkZXItPnN0cmluZ3NTdGFydCkvY2hhclNpemU7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBjaGVjayBpbnZhcmlhbnQ6IHN0cmluZ0NvdW50ID4gMCByZXF1aXJlcyBhIHN0cmluZyBwb29sIHRvIGV4aXN0Ci0gICAgICAgIGlmIChtU3RyaW5nUG9vbFNpemUgPT0gMCkgewotICAgICAgICAgICAgQUxPR1coIkJhZCBzdHJpbmcgYmxvY2s6IHN0cmluZ0NvdW50IGlzICVkIGJ1dCBwb29sIHNpemUgaXMgMFxuIiwgKGludCltSGVhZGVyLT5zdHJpbmdDb3VudCk7Ci0gICAgICAgICAgICByZXR1cm4gKG1FcnJvcj1CQURfVFlQRSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobm90RGV2aWNlRW5kaWFuKSB7Ci0gICAgICAgICAgICBzaXplX3QgaTsKLSAgICAgICAgICAgIHVpbnQzMl90KiBlID0gY29uc3RfY2FzdDx1aW50MzJfdCo+KG1FbnRyaWVzKTsKLSAgICAgICAgICAgIGZvciAoaT0wOyBpPG1IZWFkZXItPnN0cmluZ0NvdW50OyBpKyspIHsKLSAgICAgICAgICAgICAgICBlW2ldID0gZHRvaGwobUVudHJpZXNbaV0pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCEobUhlYWRlci0+ZmxhZ3MmUmVzU3RyaW5nUG9vbF9oZWFkZXI6OlVURjhfRkxBRykpIHsKLSAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogc3RyaW5ncyA9IChjb25zdCBjaGFyMTZfdCopbVN0cmluZ3M7Ci0gICAgICAgICAgICAgICAgY2hhcjE2X3QqIHMgPSBjb25zdF9jYXN0PGNoYXIxNl90Kj4oc3RyaW5ncyk7Ci0gICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8bVN0cmluZ1Bvb2xTaXplOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgc1tpXSA9IGR0b2hzKHN0cmluZ3NbaV0pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmICgobUhlYWRlci0+ZmxhZ3MmUmVzU3RyaW5nUG9vbF9oZWFkZXI6OlVURjhfRkxBRyAmJgotICAgICAgICAgICAgICAgICgodWludDhfdCopbVN0cmluZ3MpW21TdHJpbmdQb29sU2l6ZS0xXSAhPSAwKSB8fAotICAgICAgICAgICAgICAgICghbUhlYWRlci0+ZmxhZ3MmUmVzU3RyaW5nUG9vbF9oZWFkZXI6OlVURjhfRkxBRyAmJgotICAgICAgICAgICAgICAgICgoY2hhcjE2X3QqKW1TdHJpbmdzKVttU3RyaW5nUG9vbFNpemUtMV0gIT0gMCkpIHsKLSAgICAgICAgICAgIEFMT0dXKCJCYWQgc3RyaW5nIGJsb2NrOiBsYXN0IHN0cmluZyBpcyBub3QgMC10ZXJtaW5hdGVkXG4iKTsKLSAgICAgICAgICAgIHJldHVybiAobUVycm9yPUJBRF9UWVBFKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIG1TdHJpbmdzID0gTlVMTDsKLSAgICAgICAgbVN0cmluZ1Bvb2xTaXplID0gMDsKLSAgICB9Ci0KLSAgICBpZiAobUhlYWRlci0+c3R5bGVDb3VudCA+IDApIHsKLSAgICAgICAgbUVudHJ5U3R5bGVzID0gbUVudHJpZXMgKyBtSGVhZGVyLT5zdHJpbmdDb3VudDsKLSAgICAgICAgLy8gaW52YXJpYW50OiBpbnRlZ2VyIG92ZXJmbG93IGluIGNhbGN1bGF0aW5nIG1FbnRyeVN0eWxlcwotICAgICAgICBpZiAobUVudHJ5U3R5bGVzIDwgbUVudHJpZXMpIHsKLSAgICAgICAgICAgIEFMT0dXKCJCYWQgc3RyaW5nIGJsb2NrOiBpbnRlZ2VyIG92ZXJmbG93IGZpbmRpbmcgc3R5bGVzXG4iKTsKLSAgICAgICAgICAgIHJldHVybiAobUVycm9yPUJBRF9UWVBFKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICgoKGNvbnN0IHVpbnQ4X3QqKW1FbnRyeVN0eWxlcy0oY29uc3QgdWludDhfdCopbUhlYWRlcikgPiAoaW50KXNpemUpIHsKLSAgICAgICAgICAgIEFMT0dXKCJCYWQgc3RyaW5nIGJsb2NrOiBlbnRyeSBvZiAlZCBzdHlsZXMgZXh0ZW5kcyBwYXN0IGRhdGEgc2l6ZSAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgKGludCkoKGNvbnN0IHVpbnQ4X3QqKW1FbnRyeVN0eWxlcy0oY29uc3QgdWludDhfdCopbUhlYWRlciksCi0gICAgICAgICAgICAgICAgICAgIChpbnQpc2l6ZSk7Ci0gICAgICAgICAgICByZXR1cm4gKG1FcnJvcj1CQURfVFlQRSk7Ci0gICAgICAgIH0KLSAgICAgICAgbVN0eWxlcyA9IChjb25zdCB1aW50MzJfdCopCi0gICAgICAgICAgICAoKChjb25zdCB1aW50OF90KilkYXRhKSttSGVhZGVyLT5zdHlsZXNTdGFydCk7Ci0gICAgICAgIGlmIChtSGVhZGVyLT5zdHlsZXNTdGFydCA+PSBtSGVhZGVyLT5oZWFkZXIuc2l6ZSkgewotICAgICAgICAgICAgQUxPR1coIkJhZCBzdHJpbmcgYmxvY2s6IHN0eWxlIHBvb2wgc3RhcnRzICVkLCBhZnRlciB0b3RhbCBzaXplICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAoaW50KW1IZWFkZXItPnN0eWxlc1N0YXJ0LCAoaW50KW1IZWFkZXItPmhlYWRlci5zaXplKTsKLSAgICAgICAgICAgIHJldHVybiAobUVycm9yPUJBRF9UWVBFKTsKLSAgICAgICAgfQotICAgICAgICBtU3R5bGVQb29sU2l6ZSA9Ci0gICAgICAgICAgICAobUhlYWRlci0+aGVhZGVyLnNpemUtbUhlYWRlci0+c3R5bGVzU3RhcnQpL3NpemVvZih1aW50MzJfdCk7Ci0KLSAgICAgICAgaWYgKG5vdERldmljZUVuZGlhbikgewotICAgICAgICAgICAgc2l6ZV90IGk7Ci0gICAgICAgICAgICB1aW50MzJfdCogZSA9IGNvbnN0X2Nhc3Q8dWludDMyX3QqPihtRW50cnlTdHlsZXMpOwotICAgICAgICAgICAgZm9yIChpPTA7IGk8bUhlYWRlci0+c3R5bGVDb3VudDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgZVtpXSA9IGR0b2hsKG1FbnRyeVN0eWxlc1tpXSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1aW50MzJfdCogcyA9IGNvbnN0X2Nhc3Q8dWludDMyX3QqPihtU3R5bGVzKTsKLSAgICAgICAgICAgIGZvciAoaT0wOyBpPG1TdHlsZVBvb2xTaXplOyBpKyspIHsKLSAgICAgICAgICAgICAgICBzW2ldID0gZHRvaGwobVN0eWxlc1tpXSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBSZXNTdHJpbmdQb29sX3NwYW4gZW5kU3BhbiA9IHsKLSAgICAgICAgICAgIHsgaHRvZGwoUmVzU3RyaW5nUG9vbF9zcGFuOjpFTkQpIH0sCi0gICAgICAgICAgICBodG9kbChSZXNTdHJpbmdQb29sX3NwYW46OkVORCksIGh0b2RsKFJlc1N0cmluZ1Bvb2xfc3Bhbjo6RU5EKQotICAgICAgICB9OwotICAgICAgICBpZiAobWVtY21wKCZtU3R5bGVzW21TdHlsZVBvb2xTaXplLShzaXplb2YoZW5kU3Bhbikvc2l6ZW9mKHVpbnQzMl90KSldLAotICAgICAgICAgICAgICAgICAgICZlbmRTcGFuLCBzaXplb2YoZW5kU3BhbikpICE9IDApIHsKLSAgICAgICAgICAgIEFMT0dXKCJCYWQgc3RyaW5nIGJsb2NrOiBsYXN0IHN0eWxlIGlzIG5vdCAweEZGRkZGRkZGLXRlcm1pbmF0ZWRcbiIpOwotICAgICAgICAgICAgcmV0dXJuIChtRXJyb3I9QkFEX1RZUEUpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbUVudHJ5U3R5bGVzID0gTlVMTDsKLSAgICAgICAgbVN0eWxlcyA9IE5VTEw7Ci0gICAgICAgIG1TdHlsZVBvb2xTaXplID0gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gKG1FcnJvcj1OT19FUlJPUik7Ci19Ci0KLXN0YXR1c190IFJlc1N0cmluZ1Bvb2w6OmdldEVycm9yKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbUVycm9yOwotfQotCi12b2lkIFJlc1N0cmluZ1Bvb2w6OnVuaW5pdCgpCi17Ci0gICAgbUVycm9yID0gTk9fSU5JVDsKLSAgICBpZiAobUhlYWRlciAhPSBOVUxMICYmIG1DYWNoZSAhPSBOVUxMKSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IHggPSAwOyB4IDwgbUhlYWRlci0+c3RyaW5nQ291bnQ7IHgrKykgewotICAgICAgICAgICAgaWYgKG1DYWNoZVt4XSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgZnJlZShtQ2FjaGVbeF0pOwotICAgICAgICAgICAgICAgIG1DYWNoZVt4XSA9IE5VTEw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZnJlZShtQ2FjaGUpOwotICAgICAgICBtQ2FjaGUgPSBOVUxMOwotICAgIH0KLSAgICBpZiAobU93bmVkRGF0YSkgewotICAgICAgICBmcmVlKG1Pd25lZERhdGEpOwotICAgICAgICBtT3duZWREYXRhID0gTlVMTDsKLSAgICB9Ci19Ci0KLS8qKgotICogU3RyaW5ncyBpbiBVVEYtMTYgZm9ybWF0IGhhdmUgbGVuZ3RoIGluZGljYXRlZCBieSBhIGxlbmd0aCBlbmNvZGVkIGluIHRoZQotICogc3RvcmVkIGRhdGEuIEl0IGlzIGVpdGhlciAxIG9yIDIgY2hhcmFjdGVycyBvZiBsZW5ndGggZGF0YS4gVGhpcyBhbGxvd3MgYQotICogbWF4aW11bSBsZW5ndGggb2YgMHg3RkZGRkZGICgyMTQ3NDgzNjQ3IGJ5dGVzKSwgYnV0IGlmIHlvdSdyZSBzdG9yaW5nIHRoYXQKLSAqIG11Y2ggZGF0YSBpbiBhIHN0cmluZywgeW91J3JlIGFidXNpbmcgdGhlbS4KLSAqCi0gKiBJZiB0aGUgaGlnaCBiaXQgaXMgc2V0LCB0aGVuIHRoZXJlIGFyZSB0d28gY2hhcmFjdGVycyBvciA0IGJ5dGVzIG9mIGxlbmd0aAotICogZGF0YSBlbmNvZGVkLiBJbiB0aGF0IGNhc2UsIGRyb3AgdGhlIGhpZ2ggYml0IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYW5kCi0gKiBhZGQgaXQgdG9nZXRoZXIgd2l0aCB0aGUgbmV4dCBjaGFyYWN0ZXIuCi0gKi8KLXN0YXRpYyBpbmxpbmUgc2l6ZV90Ci1kZWNvZGVMZW5ndGgoY29uc3QgY2hhcjE2X3QqKiBzdHIpCi17Ci0gICAgc2l6ZV90IGxlbiA9ICoqc3RyOwotICAgIGlmICgobGVuICYgMHg4MDAwKSAhPSAwKSB7Ci0gICAgICAgICgqc3RyKSsrOwotICAgICAgICBsZW4gPSAoKGxlbiAmIDB4N0ZGRikgPDwgMTYpIHwgKipzdHI7Ci0gICAgfQotICAgICgqc3RyKSsrOwotICAgIHJldHVybiBsZW47Ci19Ci0KLS8qKgotICogU3RyaW5ncyBpbiBVVEYtOCBmb3JtYXQgaGF2ZSBsZW5ndGggaW5kaWNhdGVkIGJ5IGEgbGVuZ3RoIGVuY29kZWQgaW4gdGhlCi0gKiBzdG9yZWQgZGF0YS4gSXQgaXMgZWl0aGVyIDEgb3IgMiBjaGFyYWN0ZXJzIG9mIGxlbmd0aCBkYXRhLiBUaGlzIGFsbG93cyBhCi0gKiBtYXhpbXVtIGxlbmd0aCBvZiAweDdGRkYgKDMyNzY3IGJ5dGVzKSwgYnV0IHlvdSBzaG91bGQgY29uc2lkZXIgc3RvcmluZwotICogdGV4dCBpbiBhbm90aGVyIHdheSBpZiB5b3UncmUgdXNpbmcgdGhhdCBtdWNoIGRhdGEgaW4gYSBzaW5nbGUgc3RyaW5nLgotICoKLSAqIElmIHRoZSBoaWdoIGJpdCBpcyBzZXQsIHRoZW4gdGhlcmUgYXJlIHR3byBjaGFyYWN0ZXJzIG9yIDIgYnl0ZXMgb2YgbGVuZ3RoCi0gKiBkYXRhIGVuY29kZWQuIEluIHRoYXQgY2FzZSwgZHJvcCB0aGUgaGlnaCBiaXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBhbmQKLSAqIGFkZCBpdCB0b2dldGhlciB3aXRoIHRoZSBuZXh0IGNoYXJhY3Rlci4KLSAqLwotc3RhdGljIGlubGluZSBzaXplX3QKLWRlY29kZUxlbmd0aChjb25zdCB1aW50OF90Kiogc3RyKQotewotICAgIHNpemVfdCBsZW4gPSAqKnN0cjsKLSAgICBpZiAoKGxlbiAmIDB4ODApICE9IDApIHsKLSAgICAgICAgKCpzdHIpKys7Ci0gICAgICAgIGxlbiA9ICgobGVuICYgMHg3RikgPDwgOCkgfCAqKnN0cjsKLSAgICB9Ci0gICAgKCpzdHIpKys7Ci0gICAgcmV0dXJuIGxlbjsKLX0KLQotY29uc3QgdWludDE2X3QqIFJlc1N0cmluZ1Bvb2w6OnN0cmluZ0F0KHNpemVfdCBpZHgsIHNpemVfdCogdTE2bGVuKSBjb25zdAotewotICAgIGlmIChtRXJyb3IgPT0gTk9fRVJST1IgJiYgaWR4IDwgbUhlYWRlci0+c3RyaW5nQ291bnQpIHsKLSAgICAgICAgY29uc3QgYm9vbCBpc1VURjggPSAobUhlYWRlci0+ZmxhZ3MmUmVzU3RyaW5nUG9vbF9oZWFkZXI6OlVURjhfRkxBRykgIT0gMDsKLSAgICAgICAgY29uc3QgdWludDMyX3Qgb2ZmID0gbUVudHJpZXNbaWR4XS8oaXNVVEY4P3NpemVvZihjaGFyKTpzaXplb2YoY2hhcjE2X3QpKTsKLSAgICAgICAgaWYgKG9mZiA8IChtU3RyaW5nUG9vbFNpemUtMSkpIHsKLSAgICAgICAgICAgIGlmICghaXNVVEY4KSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgY2hhcjE2X3QqIHN0cmluZ3MgPSAoY2hhcjE2X3QqKW1TdHJpbmdzOwotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIxNl90KiBzdHIgPSBzdHJpbmdzK29mZjsKLQotICAgICAgICAgICAgICAgICp1MTZsZW4gPSBkZWNvZGVMZW5ndGgoJnN0cik7Ci0gICAgICAgICAgICAgICAgaWYgKCh1aW50MzJfdCkoc3RyKyp1MTZsZW4tc3RyaW5ncykgPCBtU3RyaW5nUG9vbFNpemUpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0cjsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBBTE9HVygiQmFkIHN0cmluZyBibG9jazogc3RyaW5nICMlZCBleHRlbmRzIHRvICVkLCBwYXN0IGVuZCBhdCAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KWlkeCwgKGludCkoc3RyKyp1MTZsZW4tc3RyaW5ncyksIChpbnQpbVN0cmluZ1Bvb2xTaXplKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIHN0cmluZ3MgPSAodWludDhfdCopbVN0cmluZ3M7Ci0gICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogdThzdHIgPSBzdHJpbmdzK29mZjsKLQotICAgICAgICAgICAgICAgICp1MTZsZW4gPSBkZWNvZGVMZW5ndGgoJnU4c3RyKTsKLSAgICAgICAgICAgICAgICBzaXplX3QgdThsZW4gPSBkZWNvZGVMZW5ndGgoJnU4c3RyKTsKLQotICAgICAgICAgICAgICAgIC8vIGVuY0xlbiBtdXN0IGJlIGxlc3MgdGhhbiAweDdGRkYgZHVlIHRvIGVuY29kaW5nLgotICAgICAgICAgICAgICAgIGlmICgodWludDMyX3QpKHU4c3RyK3U4bGVuLXN0cmluZ3MpIDwgbVN0cmluZ1Bvb2xTaXplKSB7Ci0gICAgICAgICAgICAgICAgICAgIEF1dG9NdXRleCBsb2NrKG1EZWNvZGVMb2NrKTsKLQotICAgICAgICAgICAgICAgICAgICBpZiAobUNhY2hlID09IE5VTEwpIHsKLSNpZm5kZWYgSEFWRV9BTkRST0lEX09TCi0gICAgICAgICAgICAgICAgICAgICAgICBTVFJJTkdfUE9PTF9OT0lTWShBTE9HSSgiQ1JFQVRJTkcgU1RSSU5HIENBQ0hFIE9GICVkIGJ5dGVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUhlYWRlci0+c3RyaW5nQ291bnQqc2l6ZW9mKGNoYXIxNl90KiopKSk7Ci0jZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gYmUgaW4gdGhpcyBjYXNlIHdoZW4gYWN0dWFsbHkgcnVubmluZyBBbmRyb2lkLgotICAgICAgICAgICAgICAgICAgICAgICAgQUxPR1coIkNSRUFUSU5HIFNUUklORyBDQUNIRSBPRiAlZCBieXRlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1IZWFkZXItPnN0cmluZ0NvdW50KnNpemVvZihjaGFyMTZfdCoqKSk7Ci0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgIG1DYWNoZSA9IChjaGFyMTZfdCoqKWNhbGxvYyhtSGVhZGVyLT5zdHJpbmdDb3VudCwgc2l6ZW9mKGNoYXIxNl90KiopKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtQ2FjaGUgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFMT0dXKCJObyBtZW1vcnkgdHJ5aW5nIHRvIGFsbG9jYXRlIGRlY29kZSBjYWNoZSB0YWJsZSBvZiAlZCBieXRlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKG1IZWFkZXItPnN0cmluZ0NvdW50KnNpemVvZihjaGFyMTZfdCoqKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKG1DYWNoZVtpZHhdICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtQ2FjaGVbaWR4XTsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIHNzaXplX3QgYWN0dWFsTGVuID0gdXRmOF90b191dGYxNl9sZW5ndGgodThzdHIsIHU4bGVuKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGFjdHVhbExlbiA8IDAgfHwgKHNpemVfdClhY3R1YWxMZW4gIT0gKnUxNmxlbikgewotICAgICAgICAgICAgICAgICAgICAgICAgQUxPR1coIkJhZCBzdHJpbmcgYmxvY2s6IHN0cmluZyAjJWxsZCBkZWNvZGVkIGxlbmd0aCBpcyBub3QgY29ycmVjdCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlbGxkIHZzICVsbHVcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpaWR4LCAobG9uZyBsb25nKWFjdHVhbExlbiwgKGxvbmcgbG9uZykqdTE2bGVuKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgY2hhcjE2X3QgKnUxNnN0ciA9IChjaGFyMTZfdCAqKWNhbGxvYygqdTE2bGVuKzEsIHNpemVvZihjaGFyMTZfdCkpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIXUxNnN0cikgewotICAgICAgICAgICAgICAgICAgICAgICAgQUxPR1coIk5vIG1lbW9yeSB3aGVuIHRyeWluZyB0byBhbGxvY2F0ZSBkZWNvZGUgY2FjaGUgZm9yIHN0cmluZyAjJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpaWR4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgU1RSSU5HX1BPT0xfTk9JU1koQUxPR0koIkNhY2hpbmcgVVRGOCBzdHJpbmc6ICVzIiwgdThzdHIpKTsKLSAgICAgICAgICAgICAgICAgICAgdXRmOF90b191dGYxNih1OHN0ciwgdThsZW4sIHUxNnN0cik7Ci0gICAgICAgICAgICAgICAgICAgIG1DYWNoZVtpZHhdID0gdTE2c3RyOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdTE2c3RyOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIEFMT0dXKCJCYWQgc3RyaW5nIGJsb2NrOiBzdHJpbmcgIyVsbGQgZXh0ZW5kcyB0byAlbGxkLCBwYXN0IGVuZCBhdCAlbGxkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpaWR4LCAobG9uZyBsb25nKSh1OHN0cit1OGxlbi1zdHJpbmdzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKW1TdHJpbmdQb29sU2l6ZSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQUxPR1coIkJhZCBzdHJpbmcgYmxvY2s6IHN0cmluZyAjJWQgZW50cnkgaXMgYXQgJWQsIHBhc3QgZW5kIGF0ICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAoaW50KWlkeCwgKGludCkob2ZmKnNpemVvZih1aW50MTZfdCkpLAotICAgICAgICAgICAgICAgICAgICAoaW50KShtU3RyaW5nUG9vbFNpemUqc2l6ZW9mKHVpbnQxNl90KSkpOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBOVUxMOwotfQotCi1jb25zdCBjaGFyKiBSZXNTdHJpbmdQb29sOjpzdHJpbmc4QXQoc2l6ZV90IGlkeCwgc2l6ZV90KiBvdXRMZW4pIGNvbnN0Ci17Ci0gICAgaWYgKG1FcnJvciA9PSBOT19FUlJPUiAmJiBpZHggPCBtSGVhZGVyLT5zdHJpbmdDb3VudCkgewotICAgICAgICBpZiAoKG1IZWFkZXItPmZsYWdzJlJlc1N0cmluZ1Bvb2xfaGVhZGVyOjpVVEY4X0ZMQUcpID09IDApIHsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIGNvbnN0IHVpbnQzMl90IG9mZiA9IG1FbnRyaWVzW2lkeF0vc2l6ZW9mKGNoYXIpOwotICAgICAgICBpZiAob2ZmIDwgKG1TdHJpbmdQb29sU2l6ZS0xKSkgewotICAgICAgICAgICAgY29uc3QgdWludDhfdCogc3RyaW5ncyA9ICh1aW50OF90KiltU3RyaW5nczsKLSAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIHN0ciA9IHN0cmluZ3Mrb2ZmOwotICAgICAgICAgICAgKm91dExlbiA9IGRlY29kZUxlbmd0aCgmc3RyKTsKLSAgICAgICAgICAgIHNpemVfdCBlbmNMZW4gPSBkZWNvZGVMZW5ndGgoJnN0cik7Ci0gICAgICAgICAgICBpZiAoKHVpbnQzMl90KShzdHIrZW5jTGVuLXN0cmluZ3MpIDwgbVN0cmluZ1Bvb2xTaXplKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChjb25zdCBjaGFyKilzdHI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIEFMT0dXKCJCYWQgc3RyaW5nIGJsb2NrOiBzdHJpbmcgIyVkIGV4dGVuZHMgdG8gJWQsIHBhc3QgZW5kIGF0ICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgKGludClpZHgsIChpbnQpKHN0citlbmNMZW4tc3RyaW5ncyksIChpbnQpbVN0cmluZ1Bvb2xTaXplKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFMT0dXKCJCYWQgc3RyaW5nIGJsb2NrOiBzdHJpbmcgIyVkIGVudHJ5IGlzIGF0ICVkLCBwYXN0IGVuZCBhdCAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgKGludClpZHgsIChpbnQpKG9mZipzaXplb2YodWludDE2X3QpKSwKLSAgICAgICAgICAgICAgICAgICAgKGludCkobVN0cmluZ1Bvb2xTaXplKnNpemVvZih1aW50MTZfdCkpKTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gTlVMTDsKLX0KLQotY29uc3QgU3RyaW5nOCBSZXNTdHJpbmdQb29sOjpzdHJpbmc4T2JqZWN0QXQoc2l6ZV90IGlkeCkgY29uc3QKLXsKLSAgICBzaXplX3QgbGVuOwotICAgIGNvbnN0IGNoYXIgKnN0ciA9IChjb25zdCBjaGFyKilzdHJpbmc4QXQoaWR4LCAmbGVuKTsKLSAgICBpZiAoc3RyICE9IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIFN0cmluZzgoc3RyKTsKLSAgICB9Ci0gICAgcmV0dXJuIFN0cmluZzgoc3RyaW5nQXQoaWR4LCAmbGVuKSk7Ci19Ci0KLWNvbnN0IFJlc1N0cmluZ1Bvb2xfc3BhbiogUmVzU3RyaW5nUG9vbDo6c3R5bGVBdChjb25zdCBSZXNTdHJpbmdQb29sX3JlZiYgcmVmKSBjb25zdAotewotICAgIHJldHVybiBzdHlsZUF0KHJlZi5pbmRleCk7Ci19Ci0KLWNvbnN0IFJlc1N0cmluZ1Bvb2xfc3BhbiogUmVzU3RyaW5nUG9vbDo6c3R5bGVBdChzaXplX3QgaWR4KSBjb25zdAotewotICAgIGlmIChtRXJyb3IgPT0gTk9fRVJST1IgJiYgaWR4IDwgbUhlYWRlci0+c3R5bGVDb3VudCkgewotICAgICAgICBjb25zdCB1aW50MzJfdCBvZmYgPSAobUVudHJ5U3R5bGVzW2lkeF0vc2l6ZW9mKHVpbnQzMl90KSk7Ci0gICAgICAgIGlmIChvZmYgPCBtU3R5bGVQb29sU2l6ZSkgewotICAgICAgICAgICAgcmV0dXJuIChjb25zdCBSZXNTdHJpbmdQb29sX3NwYW4qKShtU3R5bGVzK29mZik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBBTE9HVygiQmFkIHN0cmluZyBibG9jazogc3R5bGUgIyVkIGVudHJ5IGlzIGF0ICVkLCBwYXN0IGVuZCBhdCAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgKGludClpZHgsIChpbnQpKG9mZipzaXplb2YodWludDMyX3QpKSwKLSAgICAgICAgICAgICAgICAgICAgKGludCkobVN0eWxlUG9vbFNpemUqc2l6ZW9mKHVpbnQzMl90KSkpOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBOVUxMOwotfQotCi1zc2l6ZV90IFJlc1N0cmluZ1Bvb2w6OmluZGV4T2ZTdHJpbmcoY29uc3QgY2hhcjE2X3QqIHN0ciwgc2l6ZV90IHN0ckxlbikgY29uc3QKLXsKLSAgICBpZiAobUVycm9yICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiBtRXJyb3I7Ci0gICAgfQotCi0gICAgc2l6ZV90IGxlbjsKLQotICAgIGlmICgobUhlYWRlci0+ZmxhZ3MmUmVzU3RyaW5nUG9vbF9oZWFkZXI6OlVURjhfRkxBRykgIT0gMCkgewotICAgICAgICBTVFJJTkdfUE9PTF9OT0lTWShBTE9HSSgiaW5kZXhPZlN0cmluZyBVVEYtODogJXMiLCBTdHJpbmc4KHN0ciwgc3RyTGVuKS5zdHJpbmcoKSkpOwotCi0gICAgICAgIC8vIFRoZSBzdHJpbmcgcG9vbCBjb250YWlucyBVVEYgOCBzdHJpbmdzOyB3ZSBkb24ndCB3YW50IHRvIGNhdXNlCi0gICAgICAgIC8vIHRlbXBvcmFyeSBVVEYtMTYgc3RyaW5ncyB0byBiZSBjcmVhdGVkIGFzIHdlIHNlYXJjaC4KLSAgICAgICAgaWYgKG1IZWFkZXItPmZsYWdzJlJlc1N0cmluZ1Bvb2xfaGVhZGVyOjpTT1JURURfRkxBRykgewotICAgICAgICAgICAgLy8gRG8gYSBiaW5hcnkgc2VhcmNoIGZvciB0aGUgc3RyaW5nLi4uICB0aGlzIGlzIGEgbGl0dGxlIHRyaWNreSwKLSAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhlIHN0cmluZ3MgYXJlIHNvcnRlZCB3aXRoIHN0cnpjbXAxNigpLiAgU28gdG8gbWF0Y2gKLSAgICAgICAgICAgIC8vIHRoZSBvcmRlcmluZywgd2UgbmVlZCB0byBjb252ZXJ0IHN0cmluZ3MgaW4gdGhlIHBvb2wgdG8gVVRGLTE2LgotICAgICAgICAgICAgLy8gQnV0IHdlIGRvbid0IHdhbnQgdG8gaGl0IHRoZSBjYWNoZSwgc28gaW5zdGVhZCB3ZSB3aWxsIGhhdmUgYQotICAgICAgICAgICAgLy8gbG9jYWwgdGVtcG9yYXJ5IGFsbG9jYXRpb24gZm9yIHRoZSBjb252ZXJzaW9ucy4KLSAgICAgICAgICAgIGNoYXIxNl90KiBjb252QnVmZmVyID0gKGNoYXIxNl90KiltYWxsb2Moc3RyTGVuKzQpOwotICAgICAgICAgICAgc3NpemVfdCBsID0gMDsKLSAgICAgICAgICAgIHNzaXplX3QgaCA9IG1IZWFkZXItPnN0cmluZ0NvdW50LTE7Ci0KLSAgICAgICAgICAgIHNzaXplX3QgbWlkOwotICAgICAgICAgICAgd2hpbGUgKGwgPD0gaCkgewotICAgICAgICAgICAgICAgIG1pZCA9IGwgKyAoaCAtIGwpLzI7Ci0gICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogcyA9IChjb25zdCB1aW50OF90KilzdHJpbmc4QXQobWlkLCAmbGVuKTsKLSAgICAgICAgICAgICAgICBpbnQgYzsKLSAgICAgICAgICAgICAgICBpZiAocyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNoYXIxNl90KiBlbmQgPSB1dGY4X3RvX3V0ZjE2X24ocywgbGVuLCBjb252QnVmZmVyLCBzdHJMZW4rMyk7Ci0gICAgICAgICAgICAgICAgICAgICplbmQgPSAwOwotICAgICAgICAgICAgICAgICAgICBjID0gc3RyemNtcDE2KGNvbnZCdWZmZXIsIGVuZC1jb252QnVmZmVyLCBzdHIsIHN0ckxlbik7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYyA9IC0xOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBTVFJJTkdfUE9PTF9OT0lTWShBTE9HSSgiTG9va2luZyBhdCAlcywgY21wPSVkLCBsL21pZC9oPSVkLyVkLyVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciopcywgYywgKGludClsLCAoaW50KW1pZCwgKGludCloKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGMgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICBTVFJJTkdfUE9PTF9OT0lTWShBTE9HSSgiTUFUQ0ghIikpOwotICAgICAgICAgICAgICAgICAgICBmcmVlKGNvbnZCdWZmZXIpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWlkOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgbCA9IG1pZCArIDE7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaCA9IG1pZCAtIDE7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZnJlZShjb252QnVmZmVyKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEl0IGlzIHVudXN1YWwgdG8gZ2V0IHRoZSBJRCBmcm9tIGFuIHVuc29ydGVkIHN0cmluZyBibG9jay4uLgotICAgICAgICAgICAgLy8gbW9zdCBvZnRlbiB0aGlzIGhhcHBlbnMgYmVjYXVzZSB3ZSB3YW50IHRvIGdldCBJRHMgZm9yIHN0eWxlCi0gICAgICAgICAgICAvLyBzcGFuIHRhZ3M7IHNpbmNlIHRob3NlIGFsd2F5cyBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nCi0gICAgICAgICAgICAvLyBibG9jaywgc3RhcnQgc2VhcmNoaW5nIGF0IHRoZSBiYWNrLgotICAgICAgICAgICAgU3RyaW5nOCBzdHI4KHN0ciwgc3RyTGVuKTsKLSAgICAgICAgICAgIGNvbnN0IHNpemVfdCBzdHI4TGVuID0gc3RyOC5zaXplKCk7Ci0gICAgICAgICAgICBmb3IgKGludCBpPW1IZWFkZXItPnN0cmluZ0NvdW50LTE7IGk+PTA7IGktLSkgewotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHMgPSBzdHJpbmc4QXQoaSwgJmxlbik7Ci0gICAgICAgICAgICAgICAgU1RSSU5HX1BPT0xfTk9JU1koQUxPR0koIkxvb2tpbmcgYXQgJXMsIGk9JWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgocykuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkpKTsKLSAgICAgICAgICAgICAgICBpZiAocyAmJiBzdHI4TGVuID09IGxlbiAmJiBtZW1jbXAocywgc3RyOC5zdHJpbmcoKSwgc3RyOExlbikgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICBTVFJJTkdfUE9PTF9OT0lTWShBTE9HSSgiTUFUQ0ghIikpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgIH0gZWxzZSB7Ci0gICAgICAgIFNUUklOR19QT09MX05PSVNZKEFMT0dJKCJpbmRleE9mU3RyaW5nIFVURi0xNjogJXMiLCBTdHJpbmc4KHN0ciwgc3RyTGVuKS5zdHJpbmcoKSkpOwotCi0gICAgICAgIGlmIChtSGVhZGVyLT5mbGFncyZSZXNTdHJpbmdQb29sX2hlYWRlcjo6U09SVEVEX0ZMQUcpIHsKLSAgICAgICAgICAgIC8vIERvIGEgYmluYXJ5IHNlYXJjaCBmb3IgdGhlIHN0cmluZy4uLgotICAgICAgICAgICAgc3NpemVfdCBsID0gMDsKLSAgICAgICAgICAgIHNzaXplX3QgaCA9IG1IZWFkZXItPnN0cmluZ0NvdW50LTE7Ci0KLSAgICAgICAgICAgIHNzaXplX3QgbWlkOwotICAgICAgICAgICAgd2hpbGUgKGwgPD0gaCkgewotICAgICAgICAgICAgICAgIG1pZCA9IGwgKyAoaCAtIGwpLzI7Ci0gICAgICAgICAgICAgICAgY29uc3QgY2hhcjE2X3QqIHMgPSBzdHJpbmdBdChtaWQsICZsZW4pOwotICAgICAgICAgICAgICAgIGludCBjID0gcyA/IHN0cnpjbXAxNihzLCBsZW4sIHN0ciwgc3RyTGVuKSA6IC0xOwotICAgICAgICAgICAgICAgIFNUUklOR19QT09MX05PSVNZKEFMT0dJKCJMb29raW5nIGF0ICVzLCBjbXA9JWQsIGwvbWlkL2g9JWQvJWQvJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgocykuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMsIChpbnQpbCwgKGludCltaWQsIChpbnQpaCkpOwotICAgICAgICAgICAgICAgIGlmIChjID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgU1RSSU5HX1BPT0xfTk9JU1koQUxPR0koIk1BVENIISIpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1pZDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGwgPSBtaWQgKyAxOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGggPSBtaWQgLSAxOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEl0IGlzIHVudXN1YWwgdG8gZ2V0IHRoZSBJRCBmcm9tIGFuIHVuc29ydGVkIHN0cmluZyBibG9jay4uLgotICAgICAgICAgICAgLy8gbW9zdCBvZnRlbiB0aGlzIGhhcHBlbnMgYmVjYXVzZSB3ZSB3YW50IHRvIGdldCBJRHMgZm9yIHN0eWxlCi0gICAgICAgICAgICAvLyBzcGFuIHRhZ3M7IHNpbmNlIHRob3NlIGFsd2F5cyBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nCi0gICAgICAgICAgICAvLyBibG9jaywgc3RhcnQgc2VhcmNoaW5nIGF0IHRoZSBiYWNrLgotICAgICAgICAgICAgZm9yIChpbnQgaT1tSGVhZGVyLT5zdHJpbmdDb3VudC0xOyBpPj0wOyBpLS0pIHsKLSAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogcyA9IHN0cmluZ0F0KGksICZsZW4pOwotICAgICAgICAgICAgICAgIFNUUklOR19QT09MX05PSVNZKEFMT0dJKCJMb29raW5nIGF0ICVzLCBpPSVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHMpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKSk7Ci0gICAgICAgICAgICAgICAgaWYgKHMgJiYgc3RyTGVuID09IGxlbiAmJiBzdHJ6Y21wMTYocywgbGVuLCBzdHIsIHN0ckxlbikgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICBTVFJJTkdfUE9PTF9OT0lTWShBTE9HSSgiTUFUQ0ghIikpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gTkFNRV9OT1RfRk9VTkQ7Ci19Ci0KLXNpemVfdCBSZXNTdHJpbmdQb29sOjpzaXplKCkgY29uc3QKLXsKLSAgICByZXR1cm4gKG1FcnJvciA9PSBOT19FUlJPUikgPyBtSGVhZGVyLT5zdHJpbmdDb3VudCA6IDA7Ci19Ci0KLXNpemVfdCBSZXNTdHJpbmdQb29sOjpzdHlsZUNvdW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gKG1FcnJvciA9PSBOT19FUlJPUikgPyBtSGVhZGVyLT5zdHlsZUNvdW50IDogMDsKLX0KLQotc2l6ZV90IFJlc1N0cmluZ1Bvb2w6OmJ5dGVzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gKG1FcnJvciA9PSBOT19FUlJPUikgPyBtSGVhZGVyLT5oZWFkZXIuc2l6ZSA6IDA7Ci19Ci0KLWJvb2wgUmVzU3RyaW5nUG9vbDo6aXNTb3J0ZWQoKSBjb25zdAotewotICAgIHJldHVybiAobUhlYWRlci0+ZmxhZ3MmUmVzU3RyaW5nUG9vbF9oZWFkZXI6OlNPUlRFRF9GTEFHKSE9MDsKLX0KLQotYm9vbCBSZXNTdHJpbmdQb29sOjppc1VURjgoKSBjb25zdAotewotICAgIHJldHVybiAobUhlYWRlci0+ZmxhZ3MmUmVzU3RyaW5nUG9vbF9oZWFkZXI6OlVURjhfRkxBRykhPTA7Ci19Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotUmVzWE1MUGFyc2VyOjpSZXNYTUxQYXJzZXIoY29uc3QgUmVzWE1MVHJlZSYgdHJlZSkKLSAgICA6IG1UcmVlKHRyZWUpLCBtRXZlbnRDb2RlKEJBRF9ET0NVTUVOVCkKLXsKLX0KLQotdm9pZCBSZXNYTUxQYXJzZXI6OnJlc3RhcnQoKQotewotICAgIG1DdXJOb2RlID0gTlVMTDsKLSAgICBtRXZlbnRDb2RlID0gbVRyZWUubUVycm9yID09IE5PX0VSUk9SID8gU1RBUlRfRE9DVU1FTlQgOiBCQURfRE9DVU1FTlQ7Ci19Ci1jb25zdCBSZXNTdHJpbmdQb29sJiBSZXNYTUxQYXJzZXI6OmdldFN0cmluZ3MoKSBjb25zdAotewotICAgIHJldHVybiBtVHJlZS5tU3RyaW5nczsKLX0KLQotUmVzWE1MUGFyc2VyOjpldmVudF9jb2RlX3QgUmVzWE1MUGFyc2VyOjpnZXRFdmVudFR5cGUoKSBjb25zdAotewotICAgIHJldHVybiBtRXZlbnRDb2RlOwotfQotCi1SZXNYTUxQYXJzZXI6OmV2ZW50X2NvZGVfdCBSZXNYTUxQYXJzZXI6Om5leHQoKQotewotICAgIGlmIChtRXZlbnRDb2RlID09IFNUQVJUX0RPQ1VNRU5UKSB7Ci0gICAgICAgIG1DdXJOb2RlID0gbVRyZWUubVJvb3ROb2RlOwotICAgICAgICBtQ3VyRXh0ID0gbVRyZWUubVJvb3RFeHQ7Ci0gICAgICAgIHJldHVybiAobUV2ZW50Q29kZT1tVHJlZS5tUm9vdENvZGUpOwotICAgIH0gZWxzZSBpZiAobUV2ZW50Q29kZSA+PSBGSVJTVF9DSFVOS19DT0RFKSB7Ci0gICAgICAgIHJldHVybiBuZXh0Tm9kZSgpOwotICAgIH0KLSAgICByZXR1cm4gbUV2ZW50Q29kZTsKLX0KLQotaW50MzJfdCBSZXNYTUxQYXJzZXI6OmdldENvbW1lbnRJRCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1DdXJOb2RlICE9IE5VTEwgPyBkdG9obChtQ3VyTm9kZS0+Y29tbWVudC5pbmRleCkgOiAtMTsKLX0KLQotY29uc3QgdWludDE2X3QqIFJlc1hNTFBhcnNlcjo6Z2V0Q29tbWVudChzaXplX3QqIG91dExlbikgY29uc3QKLXsKLSAgICBpbnQzMl90IGlkID0gZ2V0Q29tbWVudElEKCk7Ci0gICAgcmV0dXJuIGlkID49IDAgPyBtVHJlZS5tU3RyaW5ncy5zdHJpbmdBdChpZCwgb3V0TGVuKSA6IE5VTEw7Ci19Ci0KLXVpbnQzMl90IFJlc1hNTFBhcnNlcjo6Z2V0TGluZU51bWJlcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1DdXJOb2RlICE9IE5VTEwgPyBkdG9obChtQ3VyTm9kZS0+bGluZU51bWJlcikgOiAtMTsKLX0KLQotaW50MzJfdCBSZXNYTUxQYXJzZXI6OmdldFRleHRJRCgpIGNvbnN0Ci17Ci0gICAgaWYgKG1FdmVudENvZGUgPT0gVEVYVCkgewotICAgICAgICByZXR1cm4gZHRvaGwoKChjb25zdCBSZXNYTUxUcmVlX2NkYXRhRXh0KiltQ3VyRXh0KS0+ZGF0YS5pbmRleCk7Ci0gICAgfQotICAgIHJldHVybiAtMTsKLX0KLQotY29uc3QgdWludDE2X3QqIFJlc1hNTFBhcnNlcjo6Z2V0VGV4dChzaXplX3QqIG91dExlbikgY29uc3QKLXsKLSAgICBpbnQzMl90IGlkID0gZ2V0VGV4dElEKCk7Ci0gICAgcmV0dXJuIGlkID49IDAgPyBtVHJlZS5tU3RyaW5ncy5zdHJpbmdBdChpZCwgb3V0TGVuKSA6IE5VTEw7Ci19Ci0KLXNzaXplX3QgUmVzWE1MUGFyc2VyOjpnZXRUZXh0VmFsdWUoUmVzX3ZhbHVlKiBvdXRWYWx1ZSkgY29uc3QKLXsKLSAgICBpZiAobUV2ZW50Q29kZSA9PSBURVhUKSB7Ci0gICAgICAgIG91dFZhbHVlLT5jb3B5RnJvbV9kdG9oKCgoY29uc3QgUmVzWE1MVHJlZV9jZGF0YUV4dCopbUN1ckV4dCktPnR5cGVkRGF0YSk7Ci0gICAgICAgIHJldHVybiBzaXplb2YoUmVzX3ZhbHVlKTsKLSAgICB9Ci0gICAgcmV0dXJuIEJBRF9UWVBFOwotfQotCi1pbnQzMl90IFJlc1hNTFBhcnNlcjo6Z2V0TmFtZXNwYWNlUHJlZml4SUQoKSBjb25zdAotewotICAgIGlmIChtRXZlbnRDb2RlID09IFNUQVJUX05BTUVTUEFDRSB8fCBtRXZlbnRDb2RlID09IEVORF9OQU1FU1BBQ0UpIHsKLSAgICAgICAgcmV0dXJuIGR0b2hsKCgoY29uc3QgUmVzWE1MVHJlZV9uYW1lc3BhY2VFeHQqKW1DdXJFeHQpLT5wcmVmaXguaW5kZXgpOwotICAgIH0KLSAgICByZXR1cm4gLTE7Ci19Ci0KLWNvbnN0IHVpbnQxNl90KiBSZXNYTUxQYXJzZXI6OmdldE5hbWVzcGFjZVByZWZpeChzaXplX3QqIG91dExlbikgY29uc3QKLXsKLSAgICBpbnQzMl90IGlkID0gZ2V0TmFtZXNwYWNlUHJlZml4SUQoKTsKLSAgICAvL3ByaW50ZigicHJlZml4PSVkICBldmVudD0lcFxuIiwgaWQsIG1FdmVudENvZGUpOwotICAgIHJldHVybiBpZCA+PSAwID8gbVRyZWUubVN0cmluZ3Muc3RyaW5nQXQoaWQsIG91dExlbikgOiBOVUxMOwotfQotCi1pbnQzMl90IFJlc1hNTFBhcnNlcjo6Z2V0TmFtZXNwYWNlVXJpSUQoKSBjb25zdAotewotICAgIGlmIChtRXZlbnRDb2RlID09IFNUQVJUX05BTUVTUEFDRSB8fCBtRXZlbnRDb2RlID09IEVORF9OQU1FU1BBQ0UpIHsKLSAgICAgICAgcmV0dXJuIGR0b2hsKCgoY29uc3QgUmVzWE1MVHJlZV9uYW1lc3BhY2VFeHQqKW1DdXJFeHQpLT51cmkuaW5kZXgpOwotICAgIH0KLSAgICByZXR1cm4gLTE7Ci19Ci0KLWNvbnN0IHVpbnQxNl90KiBSZXNYTUxQYXJzZXI6OmdldE5hbWVzcGFjZVVyaShzaXplX3QqIG91dExlbikgY29uc3QKLXsKLSAgICBpbnQzMl90IGlkID0gZ2V0TmFtZXNwYWNlVXJpSUQoKTsKLSAgICAvL3ByaW50ZigidXJpPSVkICBldmVudD0lcFxuIiwgaWQsIG1FdmVudENvZGUpOwotICAgIHJldHVybiBpZCA+PSAwID8gbVRyZWUubVN0cmluZ3Muc3RyaW5nQXQoaWQsIG91dExlbikgOiBOVUxMOwotfQotCi1pbnQzMl90IFJlc1hNTFBhcnNlcjo6Z2V0RWxlbWVudE5hbWVzcGFjZUlEKCkgY29uc3QKLXsKLSAgICBpZiAobUV2ZW50Q29kZSA9PSBTVEFSVF9UQUcpIHsKLSAgICAgICAgcmV0dXJuIGR0b2hsKCgoY29uc3QgUmVzWE1MVHJlZV9hdHRyRXh0KiltQ3VyRXh0KS0+bnMuaW5kZXgpOwotICAgIH0KLSAgICBpZiAobUV2ZW50Q29kZSA9PSBFTkRfVEFHKSB7Ci0gICAgICAgIHJldHVybiBkdG9obCgoKGNvbnN0IFJlc1hNTFRyZWVfZW5kRWxlbWVudEV4dCopbUN1ckV4dCktPm5zLmluZGV4KTsKLSAgICB9Ci0gICAgcmV0dXJuIC0xOwotfQotCi1jb25zdCB1aW50MTZfdCogUmVzWE1MUGFyc2VyOjpnZXRFbGVtZW50TmFtZXNwYWNlKHNpemVfdCogb3V0TGVuKSBjb25zdAotewotICAgIGludDMyX3QgaWQgPSBnZXRFbGVtZW50TmFtZXNwYWNlSUQoKTsKLSAgICByZXR1cm4gaWQgPj0gMCA/IG1UcmVlLm1TdHJpbmdzLnN0cmluZ0F0KGlkLCBvdXRMZW4pIDogTlVMTDsKLX0KLQotaW50MzJfdCBSZXNYTUxQYXJzZXI6OmdldEVsZW1lbnROYW1lSUQoKSBjb25zdAotewotICAgIGlmIChtRXZlbnRDb2RlID09IFNUQVJUX1RBRykgewotICAgICAgICByZXR1cm4gZHRvaGwoKChjb25zdCBSZXNYTUxUcmVlX2F0dHJFeHQqKW1DdXJFeHQpLT5uYW1lLmluZGV4KTsKLSAgICB9Ci0gICAgaWYgKG1FdmVudENvZGUgPT0gRU5EX1RBRykgewotICAgICAgICByZXR1cm4gZHRvaGwoKChjb25zdCBSZXNYTUxUcmVlX2VuZEVsZW1lbnRFeHQqKW1DdXJFeHQpLT5uYW1lLmluZGV4KTsKLSAgICB9Ci0gICAgcmV0dXJuIC0xOwotfQotCi1jb25zdCB1aW50MTZfdCogUmVzWE1MUGFyc2VyOjpnZXRFbGVtZW50TmFtZShzaXplX3QqIG91dExlbikgY29uc3QKLXsKLSAgICBpbnQzMl90IGlkID0gZ2V0RWxlbWVudE5hbWVJRCgpOwotICAgIHJldHVybiBpZCA+PSAwID8gbVRyZWUubVN0cmluZ3Muc3RyaW5nQXQoaWQsIG91dExlbikgOiBOVUxMOwotfQotCi1zaXplX3QgUmVzWE1MUGFyc2VyOjpnZXRBdHRyaWJ1dGVDb3VudCgpIGNvbnN0Ci17Ci0gICAgaWYgKG1FdmVudENvZGUgPT0gU1RBUlRfVEFHKSB7Ci0gICAgICAgIHJldHVybiBkdG9ocygoKGNvbnN0IFJlc1hNTFRyZWVfYXR0ckV4dCopbUN1ckV4dCktPmF0dHJpYnV0ZUNvdW50KTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWludDMyX3QgUmVzWE1MUGFyc2VyOjpnZXRBdHRyaWJ1dGVOYW1lc3BhY2VJRChzaXplX3QgaWR4KSBjb25zdAotewotICAgIGlmIChtRXZlbnRDb2RlID09IFNUQVJUX1RBRykgewotICAgICAgICBjb25zdCBSZXNYTUxUcmVlX2F0dHJFeHQqIHRhZyA9IChjb25zdCBSZXNYTUxUcmVlX2F0dHJFeHQqKW1DdXJFeHQ7Ci0gICAgICAgIGlmIChpZHggPCBkdG9ocyh0YWctPmF0dHJpYnV0ZUNvdW50KSkgewotICAgICAgICAgICAgY29uc3QgUmVzWE1MVHJlZV9hdHRyaWJ1dGUqIGF0dHIgPSAoY29uc3QgUmVzWE1MVHJlZV9hdHRyaWJ1dGUqKQotICAgICAgICAgICAgICAgICgoKGNvbnN0IHVpbnQ4X3QqKXRhZykKLSAgICAgICAgICAgICAgICAgKyBkdG9ocyh0YWctPmF0dHJpYnV0ZVN0YXJ0KQotICAgICAgICAgICAgICAgICArIChkdG9ocyh0YWctPmF0dHJpYnV0ZVNpemUpKmlkeCkpOwotICAgICAgICAgICAgcmV0dXJuIGR0b2hsKGF0dHItPm5zLmluZGV4KTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gLTI7Ci19Ci0KLWNvbnN0IHVpbnQxNl90KiBSZXNYTUxQYXJzZXI6OmdldEF0dHJpYnV0ZU5hbWVzcGFjZShzaXplX3QgaWR4LCBzaXplX3QqIG91dExlbikgY29uc3QKLXsKLSAgICBpbnQzMl90IGlkID0gZ2V0QXR0cmlidXRlTmFtZXNwYWNlSUQoaWR4KTsKLSAgICAvL3ByaW50ZigiYXR0cmlidXRlIG5hbWVzcGFjZT0lZCAgaWR4PSVkICBldmVudD0lcFxuIiwgaWQsIGlkeCwgbUV2ZW50Q29kZSk7Ci0gICAgLy9YTUxfTk9JU1kocHJpbnRmKCJnZXRBdHRyaWJ1dGVOYW1lc3BhY2UgMHgleD0weCV4XG4iLCBpZHgsIGlkKSk7Ci0gICAgcmV0dXJuIGlkID49IDAgPyBtVHJlZS5tU3RyaW5ncy5zdHJpbmdBdChpZCwgb3V0TGVuKSA6IE5VTEw7Ci19Ci0KLWNvbnN0IGNoYXIqIFJlc1hNTFBhcnNlcjo6Z2V0QXR0cmlidXRlTmFtZXNwYWNlOChzaXplX3QgaWR4LCBzaXplX3QqIG91dExlbikgY29uc3QKLXsKLSAgICBpbnQzMl90IGlkID0gZ2V0QXR0cmlidXRlTmFtZXNwYWNlSUQoaWR4KTsKLSAgICAvL3ByaW50ZigiYXR0cmlidXRlIG5hbWVzcGFjZT0lZCAgaWR4PSVkICBldmVudD0lcFxuIiwgaWQsIGlkeCwgbUV2ZW50Q29kZSk7Ci0gICAgLy9YTUxfTk9JU1kocHJpbnRmKCJnZXRBdHRyaWJ1dGVOYW1lc3BhY2UgMHgleD0weCV4XG4iLCBpZHgsIGlkKSk7Ci0gICAgcmV0dXJuIGlkID49IDAgPyBtVHJlZS5tU3RyaW5ncy5zdHJpbmc4QXQoaWQsIG91dExlbikgOiBOVUxMOwotfQotCi1pbnQzMl90IFJlc1hNTFBhcnNlcjo6Z2V0QXR0cmlidXRlTmFtZUlEKHNpemVfdCBpZHgpIGNvbnN0Ci17Ci0gICAgaWYgKG1FdmVudENvZGUgPT0gU1RBUlRfVEFHKSB7Ci0gICAgICAgIGNvbnN0IFJlc1hNTFRyZWVfYXR0ckV4dCogdGFnID0gKGNvbnN0IFJlc1hNTFRyZWVfYXR0ckV4dCopbUN1ckV4dDsKLSAgICAgICAgaWYgKGlkeCA8IGR0b2hzKHRhZy0+YXR0cmlidXRlQ291bnQpKSB7Ci0gICAgICAgICAgICBjb25zdCBSZXNYTUxUcmVlX2F0dHJpYnV0ZSogYXR0ciA9IChjb25zdCBSZXNYTUxUcmVlX2F0dHJpYnV0ZSopCi0gICAgICAgICAgICAgICAgKCgoY29uc3QgdWludDhfdCopdGFnKQotICAgICAgICAgICAgICAgICArIGR0b2hzKHRhZy0+YXR0cmlidXRlU3RhcnQpCi0gICAgICAgICAgICAgICAgICsgKGR0b2hzKHRhZy0+YXR0cmlidXRlU2l6ZSkqaWR4KSk7Ci0gICAgICAgICAgICByZXR1cm4gZHRvaGwoYXR0ci0+bmFtZS5pbmRleCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIC0xOwotfQotCi1jb25zdCB1aW50MTZfdCogUmVzWE1MUGFyc2VyOjpnZXRBdHRyaWJ1dGVOYW1lKHNpemVfdCBpZHgsIHNpemVfdCogb3V0TGVuKSBjb25zdAotewotICAgIGludDMyX3QgaWQgPSBnZXRBdHRyaWJ1dGVOYW1lSUQoaWR4KTsKLSAgICAvL3ByaW50ZigiYXR0cmlidXRlIG5hbWU9JWQgIGlkeD0lZCAgZXZlbnQ9JXBcbiIsIGlkLCBpZHgsIG1FdmVudENvZGUpOwotICAgIC8vWE1MX05PSVNZKHByaW50ZigiZ2V0QXR0cmlidXRlTmFtZSAweCV4PTB4JXhcbiIsIGlkeCwgaWQpKTsKLSAgICByZXR1cm4gaWQgPj0gMCA/IG1UcmVlLm1TdHJpbmdzLnN0cmluZ0F0KGlkLCBvdXRMZW4pIDogTlVMTDsKLX0KLQotY29uc3QgY2hhciogUmVzWE1MUGFyc2VyOjpnZXRBdHRyaWJ1dGVOYW1lOChzaXplX3QgaWR4LCBzaXplX3QqIG91dExlbikgY29uc3QKLXsKLSAgICBpbnQzMl90IGlkID0gZ2V0QXR0cmlidXRlTmFtZUlEKGlkeCk7Ci0gICAgLy9wcmludGYoImF0dHJpYnV0ZSBuYW1lPSVkICBpZHg9JWQgIGV2ZW50PSVwXG4iLCBpZCwgaWR4LCBtRXZlbnRDb2RlKTsKLSAgICAvL1hNTF9OT0lTWShwcmludGYoImdldEF0dHJpYnV0ZU5hbWUgMHgleD0weCV4XG4iLCBpZHgsIGlkKSk7Ci0gICAgcmV0dXJuIGlkID49IDAgPyBtVHJlZS5tU3RyaW5ncy5zdHJpbmc4QXQoaWQsIG91dExlbikgOiBOVUxMOwotfQotCi11aW50MzJfdCBSZXNYTUxQYXJzZXI6OmdldEF0dHJpYnV0ZU5hbWVSZXNJRChzaXplX3QgaWR4KSBjb25zdAotewotICAgIGludDMyX3QgaWQgPSBnZXRBdHRyaWJ1dGVOYW1lSUQoaWR4KTsKLSAgICBpZiAoaWQgPj0gMCAmJiAoc2l6ZV90KWlkIDwgbVRyZWUubU51bVJlc0lkcykgewotICAgICAgICByZXR1cm4gZHRvaGwobVRyZWUubVJlc0lkc1tpZF0pOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50MzJfdCBSZXNYTUxQYXJzZXI6OmdldEF0dHJpYnV0ZVZhbHVlU3RyaW5nSUQoc2l6ZV90IGlkeCkgY29uc3QKLXsKLSAgICBpZiAobUV2ZW50Q29kZSA9PSBTVEFSVF9UQUcpIHsKLSAgICAgICAgY29uc3QgUmVzWE1MVHJlZV9hdHRyRXh0KiB0YWcgPSAoY29uc3QgUmVzWE1MVHJlZV9hdHRyRXh0KiltQ3VyRXh0OwotICAgICAgICBpZiAoaWR4IDwgZHRvaHModGFnLT5hdHRyaWJ1dGVDb3VudCkpIHsKLSAgICAgICAgICAgIGNvbnN0IFJlc1hNTFRyZWVfYXR0cmlidXRlKiBhdHRyID0gKGNvbnN0IFJlc1hNTFRyZWVfYXR0cmlidXRlKikKLSAgICAgICAgICAgICAgICAoKChjb25zdCB1aW50OF90Kil0YWcpCi0gICAgICAgICAgICAgICAgICsgZHRvaHModGFnLT5hdHRyaWJ1dGVTdGFydCkKLSAgICAgICAgICAgICAgICAgKyAoZHRvaHModGFnLT5hdHRyaWJ1dGVTaXplKSppZHgpKTsKLSAgICAgICAgICAgIHJldHVybiBkdG9obChhdHRyLT5yYXdWYWx1ZS5pbmRleCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIC0xOwotfQotCi1jb25zdCB1aW50MTZfdCogUmVzWE1MUGFyc2VyOjpnZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShzaXplX3QgaWR4LCBzaXplX3QqIG91dExlbikgY29uc3QKLXsKLSAgICBpbnQzMl90IGlkID0gZ2V0QXR0cmlidXRlVmFsdWVTdHJpbmdJRChpZHgpOwotICAgIC8vWE1MX05PSVNZKHByaW50ZigiZ2V0QXR0cmlidXRlVmFsdWUgMHgleD0weCV4XG4iLCBpZHgsIGlkKSk7Ci0gICAgcmV0dXJuIGlkID49IDAgPyBtVHJlZS5tU3RyaW5ncy5zdHJpbmdBdChpZCwgb3V0TGVuKSA6IE5VTEw7Ci19Ci0KLWludDMyX3QgUmVzWE1MUGFyc2VyOjpnZXRBdHRyaWJ1dGVEYXRhVHlwZShzaXplX3QgaWR4KSBjb25zdAotewotICAgIGlmIChtRXZlbnRDb2RlID09IFNUQVJUX1RBRykgewotICAgICAgICBjb25zdCBSZXNYTUxUcmVlX2F0dHJFeHQqIHRhZyA9IChjb25zdCBSZXNYTUxUcmVlX2F0dHJFeHQqKW1DdXJFeHQ7Ci0gICAgICAgIGlmIChpZHggPCBkdG9ocyh0YWctPmF0dHJpYnV0ZUNvdW50KSkgewotICAgICAgICAgICAgY29uc3QgUmVzWE1MVHJlZV9hdHRyaWJ1dGUqIGF0dHIgPSAoY29uc3QgUmVzWE1MVHJlZV9hdHRyaWJ1dGUqKQotICAgICAgICAgICAgICAgICgoKGNvbnN0IHVpbnQ4X3QqKXRhZykKLSAgICAgICAgICAgICAgICAgKyBkdG9ocyh0YWctPmF0dHJpYnV0ZVN0YXJ0KQotICAgICAgICAgICAgICAgICArIChkdG9ocyh0YWctPmF0dHJpYnV0ZVNpemUpKmlkeCkpOwotICAgICAgICAgICAgcmV0dXJuIGF0dHItPnR5cGVkVmFsdWUuZGF0YVR5cGU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIFJlc192YWx1ZTo6VFlQRV9OVUxMOwotfQotCi1pbnQzMl90IFJlc1hNTFBhcnNlcjo6Z2V0QXR0cmlidXRlRGF0YShzaXplX3QgaWR4KSBjb25zdAotewotICAgIGlmIChtRXZlbnRDb2RlID09IFNUQVJUX1RBRykgewotICAgICAgICBjb25zdCBSZXNYTUxUcmVlX2F0dHJFeHQqIHRhZyA9IChjb25zdCBSZXNYTUxUcmVlX2F0dHJFeHQqKW1DdXJFeHQ7Ci0gICAgICAgIGlmIChpZHggPCBkdG9ocyh0YWctPmF0dHJpYnV0ZUNvdW50KSkgewotICAgICAgICAgICAgY29uc3QgUmVzWE1MVHJlZV9hdHRyaWJ1dGUqIGF0dHIgPSAoY29uc3QgUmVzWE1MVHJlZV9hdHRyaWJ1dGUqKQotICAgICAgICAgICAgICAgICgoKGNvbnN0IHVpbnQ4X3QqKXRhZykKLSAgICAgICAgICAgICAgICAgKyBkdG9ocyh0YWctPmF0dHJpYnV0ZVN0YXJ0KQotICAgICAgICAgICAgICAgICArIChkdG9ocyh0YWctPmF0dHJpYnV0ZVNpemUpKmlkeCkpOwotICAgICAgICAgICAgcmV0dXJuIGR0b2hsKGF0dHItPnR5cGVkVmFsdWUuZGF0YSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXNzaXplX3QgUmVzWE1MUGFyc2VyOjpnZXRBdHRyaWJ1dGVWYWx1ZShzaXplX3QgaWR4LCBSZXNfdmFsdWUqIG91dFZhbHVlKSBjb25zdAotewotICAgIGlmIChtRXZlbnRDb2RlID09IFNUQVJUX1RBRykgewotICAgICAgICBjb25zdCBSZXNYTUxUcmVlX2F0dHJFeHQqIHRhZyA9IChjb25zdCBSZXNYTUxUcmVlX2F0dHJFeHQqKW1DdXJFeHQ7Ci0gICAgICAgIGlmIChpZHggPCBkdG9ocyh0YWctPmF0dHJpYnV0ZUNvdW50KSkgewotICAgICAgICAgICAgY29uc3QgUmVzWE1MVHJlZV9hdHRyaWJ1dGUqIGF0dHIgPSAoY29uc3QgUmVzWE1MVHJlZV9hdHRyaWJ1dGUqKQotICAgICAgICAgICAgICAgICgoKGNvbnN0IHVpbnQ4X3QqKXRhZykKLSAgICAgICAgICAgICAgICAgKyBkdG9ocyh0YWctPmF0dHJpYnV0ZVN0YXJ0KQotICAgICAgICAgICAgICAgICArIChkdG9ocyh0YWctPmF0dHJpYnV0ZVNpemUpKmlkeCkpOwotICAgICAgICAgICAgb3V0VmFsdWUtPmNvcHlGcm9tX2R0b2goYXR0ci0+dHlwZWRWYWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gc2l6ZW9mKFJlc192YWx1ZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIEJBRF9UWVBFOwotfQotCi1zc2l6ZV90IFJlc1hNTFBhcnNlcjo6aW5kZXhPZkF0dHJpYnV0ZShjb25zdCBjaGFyKiBucywgY29uc3QgY2hhciogYXR0cikgY29uc3QKLXsKLSAgICBTdHJpbmcxNiBuc1N0cihucyAhPSBOVUxMID8gbnMgOiAiIik7Ci0gICAgU3RyaW5nMTYgYXR0clN0cihhdHRyKTsKLSAgICByZXR1cm4gaW5kZXhPZkF0dHJpYnV0ZShucyA/IG5zU3RyLnN0cmluZygpIDogTlVMTCwgbnMgPyBuc1N0ci5zaXplKCkgOiAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJTdHIuc3RyaW5nKCksIGF0dHJTdHIuc2l6ZSgpKTsKLX0KLQotc3NpemVfdCBSZXNYTUxQYXJzZXI6OmluZGV4T2ZBdHRyaWJ1dGUoY29uc3QgY2hhcjE2X3QqIG5zLCBzaXplX3QgbnNMZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogYXR0ciwgc2l6ZV90IGF0dHJMZW4pIGNvbnN0Ci17Ci0gICAgaWYgKG1FdmVudENvZGUgPT0gU1RBUlRfVEFHKSB7Ci0gICAgICAgIGlmIChhdHRyID09IE5VTEwpIHsKLSAgICAgICAgICAgIHJldHVybiBOQU1FX05PVF9GT1VORDsKLSAgICAgICAgfQotICAgICAgICBjb25zdCBzaXplX3QgTiA9IGdldEF0dHJpYnV0ZUNvdW50KCk7Ci0gICAgICAgIGlmIChtVHJlZS5tU3RyaW5ncy5pc1VURjgoKSkgewotICAgICAgICAgICAgU3RyaW5nOCBuczgsIGF0dHI4OwotICAgICAgICAgICAgaWYgKG5zICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBuczggPSBTdHJpbmc4KG5zLCBuc0xlbik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBhdHRyOCA9IFN0cmluZzgoYXR0ciwgYXR0ckxlbik7Ci0gICAgICAgICAgICBTVFJJTkdfUE9PTF9OT0lTWShBTE9HSSgiaW5kZXhPZkF0dHJpYnV0ZSBVVEY4ICVzICglZCkgLyAlcyAoJWQpIiwgbnM4LnN0cmluZygpLCBuc0xlbiwKLSAgICAgICAgICAgICAgICAgICAgYXR0cjguc3RyaW5nKCksIGF0dHJMZW4pKTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgICAgICAgICBzaXplX3QgY3VyTnNMZW4gPSAwLCBjdXJBdHRyTGVuID0gMDsKLSAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBjdXJOcyA9IGdldEF0dHJpYnV0ZU5hbWVzcGFjZTgoaSwgJmN1ck5zTGVuKTsKLSAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBjdXJBdHRyID0gZ2V0QXR0cmlidXRlTmFtZTgoaSwgJmN1ckF0dHJMZW4pOwotICAgICAgICAgICAgICAgIFNUUklOR19QT09MX05PSVNZKEFMT0dJKCIgIGN1ck5zPSVzICglZCksIGN1ckF0dHI9JXMgKCVkKSIsIGN1ck5zLCBjdXJOc0xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGN1ckF0dHIsIGN1ckF0dHJMZW4pKTsKLSAgICAgICAgICAgICAgICBpZiAoY3VyQXR0ciAhPSBOVUxMICYmIGN1ck5zTGVuID09IG5zTGVuICYmIGN1ckF0dHJMZW4gPT0gYXR0ckxlbgotICAgICAgICAgICAgICAgICAgICAgICAgJiYgbWVtY21wKGF0dHI4LnN0cmluZygpLCBjdXJBdHRyLCBhdHRyTGVuKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChucyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyTnMgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUUklOR19QT09MX05PSVNZKEFMT0dJKCIgIEZPVU5EISIpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJOcyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvL3ByaW50ZigiIC0tPiBucz0lcywgY3VyTnM9JXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICBTdHJpbmc4KG5zKS5zdHJpbmcoKSwgU3RyaW5nOChjdXJOcykuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1lbWNtcChuczguc3RyaW5nKCksIGN1ck5zLCBuc0xlbikgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUUklOR19QT09MX05PSVNZKEFMT0dJKCIgIEZPVU5EISIpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIFNUUklOR19QT09MX05PSVNZKEFMT0dJKCJpbmRleE9mQXR0cmlidXRlIFVURjE2ICVzICglZCkgLyAlcyAoJWQpIiwKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChucywgbnNMZW4pLnN0cmluZygpLCBuc0xlbiwKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChhdHRyLCBhdHRyTGVuKS5zdHJpbmcoKSwgYXR0ckxlbikpOwotICAgICAgICAgICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICAgICAgICAgIHNpemVfdCBjdXJOc0xlbiA9IDAsIGN1ckF0dHJMZW4gPSAwOwotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIxNl90KiBjdXJOcyA9IGdldEF0dHJpYnV0ZU5hbWVzcGFjZShpLCAmY3VyTnNMZW4pOwotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIxNl90KiBjdXJBdHRyID0gZ2V0QXR0cmlidXRlTmFtZShpLCAmY3VyQXR0ckxlbik7Ci0gICAgICAgICAgICAgICAgU1RSSU5HX1BPT0xfTk9JU1koQUxPR0koIiAgY3VyTnM9JXMgKCVkKSwgY3VyQXR0cj0lcyAoJWQpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoY3VyTnMsIGN1ck5zTGVuKS5zdHJpbmcoKSwgY3VyTnNMZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGN1ckF0dHIsIGN1ckF0dHJMZW4pLnN0cmluZygpLCBjdXJBdHRyTGVuKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGN1ckF0dHIgIT0gTlVMTCAmJiBjdXJOc0xlbiA9PSBuc0xlbiAmJiBjdXJBdHRyTGVuID09IGF0dHJMZW4KLSAgICAgICAgICAgICAgICAgICAgICAgICYmIChtZW1jbXAoYXR0ciwgY3VyQXR0ciwgYXR0ckxlbipzaXplb2YoY2hhcjE2X3QpKSA9PSAwKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAobnMgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ck5zID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVFJJTkdfUE9PTF9OT0lTWShBTE9HSSgiICBGT1VORCEiKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VyTnMgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy9wcmludGYoIiAtLT4gbnM9JXMsIGN1ck5zPSVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgU3RyaW5nOChucykuc3RyaW5nKCksIFN0cmluZzgoY3VyTnMpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZW1jbXAobnMsIGN1ck5zLCBuc0xlbipzaXplb2YoY2hhcjE2X3QpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RSSU5HX1BPT0xfTk9JU1koQUxPR0koIiAgRk9VTkQhIikpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIE5BTUVfTk9UX0ZPVU5EOwotfQotCi1zc2l6ZV90IFJlc1hNTFBhcnNlcjo6aW5kZXhPZklEKCkgY29uc3QKLXsKLSAgICBpZiAobUV2ZW50Q29kZSA9PSBTVEFSVF9UQUcpIHsKLSAgICAgICAgY29uc3Qgc3NpemVfdCBpZHggPSBkdG9ocygoKGNvbnN0IFJlc1hNTFRyZWVfYXR0ckV4dCopbUN1ckV4dCktPmlkSW5kZXgpOwotICAgICAgICBpZiAoaWR4ID4gMCkgcmV0dXJuIChpZHgtMSk7Ci0gICAgfQotICAgIHJldHVybiBOQU1FX05PVF9GT1VORDsKLX0KLQotc3NpemVfdCBSZXNYTUxQYXJzZXI6OmluZGV4T2ZDbGFzcygpIGNvbnN0Ci17Ci0gICAgaWYgKG1FdmVudENvZGUgPT0gU1RBUlRfVEFHKSB7Ci0gICAgICAgIGNvbnN0IHNzaXplX3QgaWR4ID0gZHRvaHMoKChjb25zdCBSZXNYTUxUcmVlX2F0dHJFeHQqKW1DdXJFeHQpLT5jbGFzc0luZGV4KTsKLSAgICAgICAgaWYgKGlkeCA+IDApIHJldHVybiAoaWR4LTEpOwotICAgIH0KLSAgICByZXR1cm4gTkFNRV9OT1RfRk9VTkQ7Ci19Ci0KLXNzaXplX3QgUmVzWE1MUGFyc2VyOjppbmRleE9mU3R5bGUoKSBjb25zdAotewotICAgIGlmIChtRXZlbnRDb2RlID09IFNUQVJUX1RBRykgewotICAgICAgICBjb25zdCBzc2l6ZV90IGlkeCA9IGR0b2hzKCgoY29uc3QgUmVzWE1MVHJlZV9hdHRyRXh0KiltQ3VyRXh0KS0+c3R5bGVJbmRleCk7Ci0gICAgICAgIGlmIChpZHggPiAwKSByZXR1cm4gKGlkeC0xKTsKLSAgICB9Ci0gICAgcmV0dXJuIE5BTUVfTk9UX0ZPVU5EOwotfQotCi1SZXNYTUxQYXJzZXI6OmV2ZW50X2NvZGVfdCBSZXNYTUxQYXJzZXI6Om5leHROb2RlKCkKLXsKLSAgICBpZiAobUV2ZW50Q29kZSA8IDApIHsKLSAgICAgICAgcmV0dXJuIG1FdmVudENvZGU7Ci0gICAgfQotCi0gICAgZG8gewotICAgICAgICBjb25zdCBSZXNYTUxUcmVlX25vZGUqIG5leHQgPSAoY29uc3QgUmVzWE1MVHJlZV9ub2RlKikKLSAgICAgICAgICAgICgoKGNvbnN0IHVpbnQ4X3QqKW1DdXJOb2RlKSArIGR0b2hsKG1DdXJOb2RlLT5oZWFkZXIuc2l6ZSkpOwotICAgICAgICAvL0FMT0dXKCJOZXh0IG5vZGU6IHByZXY9JXAsIG5leHQ9JXBcbiIsIG1DdXJOb2RlLCBuZXh0KTsKLSAgICAgICAgCi0gICAgICAgIGlmICgoKGNvbnN0IHVpbnQ4X3QqKW5leHQpID49IG1UcmVlLm1EYXRhRW5kKSB7Ci0gICAgICAgICAgICBtQ3VyTm9kZSA9IE5VTEw7Ci0gICAgICAgICAgICByZXR1cm4gKG1FdmVudENvZGU9RU5EX0RPQ1VNRU5UKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtVHJlZS52YWxpZGF0ZU5vZGUobmV4dCkgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIG1DdXJOb2RlID0gTlVMTDsKLSAgICAgICAgICAgIHJldHVybiAobUV2ZW50Q29kZT1CQURfRE9DVU1FTlQpOwotICAgICAgICB9Ci0KLSAgICAgICAgbUN1ck5vZGUgPSBuZXh0OwotICAgICAgICBjb25zdCB1aW50MTZfdCBoZWFkZXJTaXplID0gZHRvaHMobmV4dC0+aGVhZGVyLmhlYWRlclNpemUpOwotICAgICAgICBjb25zdCB1aW50MzJfdCB0b3RhbFNpemUgPSBkdG9obChuZXh0LT5oZWFkZXIuc2l6ZSk7Ci0gICAgICAgIG1DdXJFeHQgPSAoKGNvbnN0IHVpbnQ4X3QqKW5leHQpICsgaGVhZGVyU2l6ZTsKLSAgICAgICAgc2l6ZV90IG1pbkV4dFNpemUgPSAwOwotICAgICAgICBldmVudF9jb2RlX3QgZXZlbnRDb2RlID0gKGV2ZW50X2NvZGVfdClkdG9ocyhuZXh0LT5oZWFkZXIudHlwZSk7Ci0gICAgICAgIHN3aXRjaCAoKG1FdmVudENvZGU9ZXZlbnRDb2RlKSkgewotICAgICAgICAgICAgY2FzZSBSRVNfWE1MX1NUQVJUX05BTUVTUEFDRV9UWVBFOgotICAgICAgICAgICAgY2FzZSBSRVNfWE1MX0VORF9OQU1FU1BBQ0VfVFlQRToKLSAgICAgICAgICAgICAgICBtaW5FeHRTaXplID0gc2l6ZW9mKFJlc1hNTFRyZWVfbmFtZXNwYWNlRXh0KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUkVTX1hNTF9TVEFSVF9FTEVNRU5UX1RZUEU6Ci0gICAgICAgICAgICAgICAgbWluRXh0U2l6ZSA9IHNpemVvZihSZXNYTUxUcmVlX2F0dHJFeHQpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBSRVNfWE1MX0VORF9FTEVNRU5UX1RZUEU6Ci0gICAgICAgICAgICAgICAgbWluRXh0U2l6ZSA9IHNpemVvZihSZXNYTUxUcmVlX2VuZEVsZW1lbnRFeHQpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBSRVNfWE1MX0NEQVRBX1RZUEU6Ci0gICAgICAgICAgICAgICAgbWluRXh0U2l6ZSA9IHNpemVvZihSZXNYTUxUcmVlX2NkYXRhRXh0KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgQUxPR1coIlVua25vd24gWE1MIGJsb2NrOiBoZWFkZXIgdHlwZSAlZCBpbiBub2RlIGF0ICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgKGludClkdG9ocyhuZXh0LT5oZWFkZXIudHlwZSksCi0gICAgICAgICAgICAgICAgICAgICAoaW50KSgoKGNvbnN0IHVpbnQ4X3QqKW5leHQpLSgoY29uc3QgdWludDhfdCopbVRyZWUubUhlYWRlcikpKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKCh0b3RhbFNpemUtaGVhZGVyU2l6ZSkgPCBtaW5FeHRTaXplKSB7Ci0gICAgICAgICAgICBBTE9HVygiQmFkIFhNTCBibG9jazogaGVhZGVyIHR5cGUgMHgleCBpbiBub2RlIGF0IDB4JXggaGFzIHNpemUgJWQsIG5lZWQgJWRcbiIsCi0gICAgICAgICAgICAgICAgIChpbnQpZHRvaHMobmV4dC0+aGVhZGVyLnR5cGUpLAotICAgICAgICAgICAgICAgICAoaW50KSgoKGNvbnN0IHVpbnQ4X3QqKW5leHQpLSgoY29uc3QgdWludDhfdCopbVRyZWUubUhlYWRlcikpLAotICAgICAgICAgICAgICAgICAoaW50KSh0b3RhbFNpemUtaGVhZGVyU2l6ZSksIChpbnQpbWluRXh0U2l6ZSk7Ci0gICAgICAgICAgICByZXR1cm4gKG1FdmVudENvZGU9QkFEX0RPQ1VNRU5UKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgLy9wcmludGYoIkN1ck5vZGU9JXAsIEN1ckV4dD0lcCwgaGVhZGVyU2l6ZT0lZCwgbWluRXh0U2l6ZT0lZFxuIiwKLSAgICAgICAgLy8gICAgICAgbUN1ck5vZGUsIG1DdXJFeHQsIGhlYWRlclNpemUsIG1pbkV4dFNpemUpOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIGV2ZW50Q29kZTsKLSAgICB9IHdoaWxlICh0cnVlKTsKLX0KLQotdm9pZCBSZXNYTUxQYXJzZXI6OmdldFBvc2l0aW9uKFJlc1hNTFBhcnNlcjo6UmVzWE1MUG9zaXRpb24qIHBvcykgY29uc3QKLXsKLSAgICBwb3MtPmV2ZW50Q29kZSA9IG1FdmVudENvZGU7Ci0gICAgcG9zLT5jdXJOb2RlID0gbUN1ck5vZGU7Ci0gICAgcG9zLT5jdXJFeHQgPSBtQ3VyRXh0OwotfQotCi12b2lkIFJlc1hNTFBhcnNlcjo6c2V0UG9zaXRpb24oY29uc3QgUmVzWE1MUGFyc2VyOjpSZXNYTUxQb3NpdGlvbiYgcG9zKQotewotICAgIG1FdmVudENvZGUgPSBwb3MuZXZlbnRDb2RlOwotICAgIG1DdXJOb2RlID0gcG9zLmN1ck5vZGU7Ci0gICAgbUN1ckV4dCA9IHBvcy5jdXJFeHQ7Ci19Ci0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotc3RhdGljIHZvbGF0aWxlIGludDMyX3QgZ0NvdW50ID0gMDsKLQotUmVzWE1MVHJlZTo6UmVzWE1MVHJlZSgpCi0gICAgOiBSZXNYTUxQYXJzZXIoKnRoaXMpCi0gICAgLCBtRXJyb3IoTk9fSU5JVCksIG1Pd25lZERhdGEoTlVMTCkKLXsKLSAgICAvL0FMT0dJKCJDcmVhdGluZyBSZXNYTUxUcmVlICVwICMlZFxuIiwgdGhpcywgYW5kcm9pZF9hdG9taWNfaW5jKCZnQ291bnQpKzEpOwotICAgIHJlc3RhcnQoKTsKLX0KLQotUmVzWE1MVHJlZTo6UmVzWE1MVHJlZShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSwgYm9vbCBjb3B5RGF0YSkKLSAgICA6IFJlc1hNTFBhcnNlcigqdGhpcykKLSAgICAsIG1FcnJvcihOT19JTklUKSwgbU93bmVkRGF0YShOVUxMKQotewotICAgIC8vQUxPR0koIkNyZWF0aW5nIFJlc1hNTFRyZWUgJXAgIyVkXG4iLCB0aGlzLCBhbmRyb2lkX2F0b21pY19pbmMoJmdDb3VudCkrMSk7Ci0gICAgc2V0VG8oZGF0YSwgc2l6ZSwgY29weURhdGEpOwotfQotCi1SZXNYTUxUcmVlOjp+UmVzWE1MVHJlZSgpCi17Ci0gICAgLy9BTE9HSSgiRGVzdHJveWluZyBSZXNYTUxUcmVlIGluICVwICMlZFxuIiwgdGhpcywgYW5kcm9pZF9hdG9taWNfZGVjKCZnQ291bnQpLTEpOwotICAgIHVuaW5pdCgpOwotfQotCi1zdGF0dXNfdCBSZXNYTUxUcmVlOjpzZXRUbyhjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSwgYm9vbCBjb3B5RGF0YSkKLXsKLSAgICB1bmluaXQoKTsKLSAgICBtRXZlbnRDb2RlID0gU1RBUlRfRE9DVU1FTlQ7Ci0KLSAgICBpZiAoIWRhdGEgfHwgIXNpemUpIHsKLSAgICAgICAgcmV0dXJuIChtRXJyb3I9QkFEX1RZUEUpOwotICAgIH0KLQotICAgIGlmIChjb3B5RGF0YSkgewotICAgICAgICBtT3duZWREYXRhID0gbWFsbG9jKHNpemUpOwotICAgICAgICBpZiAobU93bmVkRGF0YSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gKG1FcnJvcj1OT19NRU1PUlkpOwotICAgICAgICB9Ci0gICAgICAgIG1lbWNweShtT3duZWREYXRhLCBkYXRhLCBzaXplKTsKLSAgICAgICAgZGF0YSA9IG1Pd25lZERhdGE7Ci0gICAgfQotCi0gICAgbUhlYWRlciA9IChjb25zdCBSZXNYTUxUcmVlX2hlYWRlciopZGF0YTsKLSAgICBtU2l6ZSA9IGR0b2hsKG1IZWFkZXItPmhlYWRlci5zaXplKTsKLSAgICBpZiAoZHRvaHMobUhlYWRlci0+aGVhZGVyLmhlYWRlclNpemUpID4gbVNpemUgfHwgbVNpemUgPiBzaXplKSB7Ci0gICAgICAgIEFMT0dXKCJCYWQgWE1MIGJsb2NrOiBoZWFkZXIgc2l6ZSAlZCBvciB0b3RhbCBzaXplICVkIGlzIGxhcmdlciB0aGFuIGRhdGEgc2l6ZSAlZFxuIiwKLSAgICAgICAgICAgICAoaW50KWR0b2hzKG1IZWFkZXItPmhlYWRlci5oZWFkZXJTaXplKSwKLSAgICAgICAgICAgICAoaW50KWR0b2hsKG1IZWFkZXItPmhlYWRlci5zaXplKSwgKGludClzaXplKTsKLSAgICAgICAgbUVycm9yID0gQkFEX1RZUEU7Ci0gICAgICAgIHJlc3RhcnQoKTsKLSAgICAgICAgcmV0dXJuIG1FcnJvcjsKLSAgICB9Ci0gICAgbURhdGFFbmQgPSAoKGNvbnN0IHVpbnQ4X3QqKW1IZWFkZXIpICsgbVNpemU7Ci0KLSAgICBtU3RyaW5ncy51bmluaXQoKTsKLSAgICBtUm9vdE5vZGUgPSBOVUxMOwotICAgIG1SZXNJZHMgPSBOVUxMOwotICAgIG1OdW1SZXNJZHMgPSAwOwotCi0gICAgLy8gRmlyc3QgbG9vayBmb3IgYSBjb3VwbGUgaW50ZXJlc3RpbmcgY2h1bmtzOiB0aGUgc3RyaW5nIGJsb2NrCi0gICAgLy8gYW5kIGZpcnN0IFhNTCBub2RlLgotICAgIGNvbnN0IFJlc0NodW5rX2hlYWRlciogY2h1bmsgPQotICAgICAgICAoY29uc3QgUmVzQ2h1bmtfaGVhZGVyKikoKChjb25zdCB1aW50OF90KiltSGVhZGVyKSArIGR0b2hzKG1IZWFkZXItPmhlYWRlci5oZWFkZXJTaXplKSk7Ci0gICAgY29uc3QgUmVzQ2h1bmtfaGVhZGVyKiBsYXN0Q2h1bmsgPSBjaHVuazsKLSAgICB3aGlsZSAoKChjb25zdCB1aW50OF90KiljaHVuaykgPCAobURhdGFFbmQtc2l6ZW9mKFJlc0NodW5rX2hlYWRlcikpICYmCi0gICAgICAgICAgICgoY29uc3QgdWludDhfdCopY2h1bmspIDwgKG1EYXRhRW5kLWR0b2hsKGNodW5rLT5zaXplKSkpIHsKLSAgICAgICAgc3RhdHVzX3QgZXJyID0gdmFsaWRhdGVfY2h1bmsoY2h1bmssIHNpemVvZihSZXNDaHVua19oZWFkZXIpLCBtRGF0YUVuZCwgIlhNTCIpOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBtRXJyb3IgPSBlcnI7Ci0gICAgICAgICAgICBnb3RvIGRvbmU7Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3QgdWludDE2X3QgdHlwZSA9IGR0b2hzKGNodW5rLT50eXBlKTsKLSAgICAgICAgY29uc3Qgc2l6ZV90IHNpemUgPSBkdG9obChjaHVuay0+c2l6ZSk7Ci0gICAgICAgIFhNTF9OT0lTWShwcmludGYoIlNjYW5uaW5nIEAgJXA6IHR5cGU9MHgleCwgc2l6ZT0weCV4XG4iLAotICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKSgoKHVpbnQzMl90KWNodW5rKS0oKHVpbnQzMl90KW1IZWFkZXIpKSwgdHlwZSwgc2l6ZSkpOwotICAgICAgICBpZiAodHlwZSA9PSBSRVNfU1RSSU5HX1BPT0xfVFlQRSkgewotICAgICAgICAgICAgbVN0cmluZ3Muc2V0VG8oY2h1bmssIHNpemUpOwotICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gUkVTX1hNTF9SRVNPVVJDRV9NQVBfVFlQRSkgewotICAgICAgICAgICAgbVJlc0lkcyA9IChjb25zdCB1aW50MzJfdCopCi0gICAgICAgICAgICAgICAgKCgoY29uc3QgdWludDhfdCopY2h1bmspK2R0b2hzKGNodW5rLT5oZWFkZXJTaXplKSk7Ci0gICAgICAgICAgICBtTnVtUmVzSWRzID0gKGR0b2hsKGNodW5rLT5zaXplKS1kdG9ocyhjaHVuay0+aGVhZGVyU2l6ZSkpL3NpemVvZih1aW50MzJfdCk7Ci0gICAgICAgIH0gZWxzZSBpZiAodHlwZSA+PSBSRVNfWE1MX0ZJUlNUX0NIVU5LX1RZUEUKLSAgICAgICAgICAgICAgICAgICAmJiB0eXBlIDw9IFJFU19YTUxfTEFTVF9DSFVOS19UWVBFKSB7Ci0gICAgICAgICAgICBpZiAodmFsaWRhdGVOb2RlKChjb25zdCBSZXNYTUxUcmVlX25vZGUqKWNodW5rKSAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIG1FcnJvciA9IEJBRF9UWVBFOwotICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1DdXJOb2RlID0gKGNvbnN0IFJlc1hNTFRyZWVfbm9kZSopbGFzdENodW5rOwotICAgICAgICAgICAgaWYgKG5leHROb2RlKCkgPT0gQkFEX0RPQ1VNRU5UKSB7Ci0gICAgICAgICAgICAgICAgbUVycm9yID0gQkFEX1RZUEU7Ci0gICAgICAgICAgICAgICAgZ290byBkb25lOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbVJvb3ROb2RlID0gbUN1ck5vZGU7Ci0gICAgICAgICAgICBtUm9vdEV4dCA9IG1DdXJFeHQ7Ci0gICAgICAgICAgICBtUm9vdENvZGUgPSBtRXZlbnRDb2RlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBYTUxfTk9JU1kocHJpbnRmKCJTa2lwcGluZyB1bmtub3duIGNodW5rIVxuIikpOwotICAgICAgICB9Ci0gICAgICAgIGxhc3RDaHVuayA9IGNodW5rOwotICAgICAgICBjaHVuayA9IChjb25zdCBSZXNDaHVua19oZWFkZXIqKQotICAgICAgICAgICAgKCgoY29uc3QgdWludDhfdCopY2h1bmspICsgc2l6ZSk7Ci0gICAgfQotCi0gICAgaWYgKG1Sb290Tm9kZSA9PSBOVUxMKSB7Ci0gICAgICAgIEFMT0dXKCJCYWQgWE1MIGJsb2NrOiBubyByb290IGVsZW1lbnQgbm9kZSBmb3VuZFxuIik7Ci0gICAgICAgIG1FcnJvciA9IEJBRF9UWVBFOwotICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfQotCi0gICAgbUVycm9yID0gbVN0cmluZ3MuZ2V0RXJyb3IoKTsKLQotZG9uZToKLSAgICByZXN0YXJ0KCk7Ci0gICAgcmV0dXJuIG1FcnJvcjsKLX0KLQotc3RhdHVzX3QgUmVzWE1MVHJlZTo6Z2V0RXJyb3IoKSBjb25zdAotewotICAgIHJldHVybiBtRXJyb3I7Ci19Ci0KLXZvaWQgUmVzWE1MVHJlZTo6dW5pbml0KCkKLXsKLSAgICBtRXJyb3IgPSBOT19JTklUOwotICAgIG1TdHJpbmdzLnVuaW5pdCgpOwotICAgIGlmIChtT3duZWREYXRhKSB7Ci0gICAgICAgIGZyZWUobU93bmVkRGF0YSk7Ci0gICAgICAgIG1Pd25lZERhdGEgPSBOVUxMOwotICAgIH0KLSAgICByZXN0YXJ0KCk7Ci19Ci0KLXN0YXR1c190IFJlc1hNTFRyZWU6OnZhbGlkYXRlTm9kZShjb25zdCBSZXNYTUxUcmVlX25vZGUqIG5vZGUpIGNvbnN0Ci17Ci0gICAgY29uc3QgdWludDE2X3QgZXZlbnRDb2RlID0gZHRvaHMobm9kZS0+aGVhZGVyLnR5cGUpOwotCi0gICAgc3RhdHVzX3QgZXJyID0gdmFsaWRhdGVfY2h1bmsoCi0gICAgICAgICZub2RlLT5oZWFkZXIsIHNpemVvZihSZXNYTUxUcmVlX25vZGUpLAotICAgICAgICBtRGF0YUVuZCwgIlJlc1hNTFRyZWVfbm9kZSIpOwotCi0gICAgaWYgKGVyciA+PSBOT19FUlJPUikgewotICAgICAgICAvLyBPbmx5IHBlcmZvcm0gYWRkaXRpb25hbCB2YWxpZGF0aW9uIG9uIFNUQVJUIG5vZGVzCi0gICAgICAgIGlmIChldmVudENvZGUgIT0gUkVTX1hNTF9TVEFSVF9FTEVNRU5UX1RZUEUpIHsKLSAgICAgICAgICAgIHJldHVybiBOT19FUlJPUjsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IHVpbnQxNl90IGhlYWRlclNpemUgPSBkdG9ocyhub2RlLT5oZWFkZXIuaGVhZGVyU2l6ZSk7Ci0gICAgICAgIGNvbnN0IHVpbnQzMl90IHNpemUgPSBkdG9obChub2RlLT5oZWFkZXIuc2l6ZSk7Ci0gICAgICAgIGNvbnN0IFJlc1hNTFRyZWVfYXR0ckV4dCogYXR0ckV4dCA9IChjb25zdCBSZXNYTUxUcmVlX2F0dHJFeHQqKQotICAgICAgICAgICAgKCgoY29uc3QgdWludDhfdCopbm9kZSkgKyBoZWFkZXJTaXplKTsKLSAgICAgICAgLy8gY2hlY2sgZm9yIHNlbnNpY2FsIHZhbHVlcyBwdWxsZWQgb3V0IG9mIHRoZSBzdHJlYW0gc28gZmFyLi4uCi0gICAgICAgIGlmICgoc2l6ZSA+PSBoZWFkZXJTaXplICsgc2l6ZW9mKFJlc1hNTFRyZWVfYXR0ckV4dCkpCi0gICAgICAgICAgICAgICAgJiYgKCh2b2lkKilhdHRyRXh0ID4gKHZvaWQqKW5vZGUpKSB7Ci0gICAgICAgICAgICBjb25zdCBzaXplX3QgYXR0clNpemUgPSAoKHNpemVfdClkdG9ocyhhdHRyRXh0LT5hdHRyaWJ1dGVTaXplKSkKLSAgICAgICAgICAgICAgICAqIGR0b2hzKGF0dHJFeHQtPmF0dHJpYnV0ZUNvdW50KTsKLSAgICAgICAgICAgIGlmICgoZHRvaHMoYXR0ckV4dC0+YXR0cmlidXRlU3RhcnQpK2F0dHJTaXplKSA8PSAoc2l6ZS1oZWFkZXJTaXplKSkgewotICAgICAgICAgICAgICAgIHJldHVybiBOT19FUlJPUjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEFMT0dXKCJCYWQgWE1MIGJsb2NrOiBub2RlIGF0dHJpYnV0ZXMgdXNlIDB4JXggYnl0ZXMsIG9ubHkgaGF2ZSAweCV4IGJ5dGVzXG4iLAotICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgaW50KShkdG9ocyhhdHRyRXh0LT5hdHRyaWJ1dGVTdGFydCkrYXR0clNpemUpLAotICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgaW50KShzaXplLWhlYWRlclNpemUpKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIEFMT0dXKCJCYWQgWE1MIHN0YXJ0IGJsb2NrOiBub2RlIGhlYWRlciBzaXplIDB4JXgsIHNpemUgMHgleFxuIiwKLSAgICAgICAgICAgICAgICAodW5zaWduZWQgaW50KWhlYWRlclNpemUsICh1bnNpZ25lZCBpbnQpc2l6ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIEJBRF9UWVBFOwotICAgIH0KLQotICAgIHJldHVybiBlcnI7Ci0KLSNpZiAwCi0gICAgY29uc3QgYm9vbCBpc1N0YXJ0ID0gZHRvaHMobm9kZS0+aGVhZGVyLnR5cGUpID09IFJFU19YTUxfU1RBUlRfRUxFTUVOVF9UWVBFOwotCi0gICAgY29uc3QgdWludDE2X3QgaGVhZGVyU2l6ZSA9IGR0b2hzKG5vZGUtPmhlYWRlci5oZWFkZXJTaXplKTsKLSAgICBjb25zdCB1aW50MzJfdCBzaXplID0gZHRvaGwobm9kZS0+aGVhZGVyLnNpemUpOwotCi0gICAgaWYgKGhlYWRlclNpemUgPj0gKGlzU3RhcnQgPyBzaXplb2YoUmVzWE1MVHJlZV9hdHRyTm9kZSkgOiBzaXplb2YoUmVzWE1MVHJlZV9ub2RlKSkpIHsKLSAgICAgICAgaWYgKHNpemUgPj0gaGVhZGVyU2l6ZSkgewotICAgICAgICAgICAgaWYgKCgoY29uc3QgdWludDhfdCopbm9kZSkgPD0gKG1EYXRhRW5kLXNpemUpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFpc1N0YXJ0KSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOT19FUlJPUjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKCgoKHNpemVfdClkdG9ocyhub2RlLT5hdHRyaWJ1dGVTaXplKSkqZHRvaHMobm9kZS0+YXR0cmlidXRlQ291bnQpKQotICAgICAgICAgICAgICAgICAgICAgICAgPD0gKHNpemUtaGVhZGVyU2l6ZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5PX0VSUk9SOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBBTE9HVygiQmFkIFhNTCBibG9jazogbm9kZSBhdHRyaWJ1dGVzIHVzZSAweCV4IGJ5dGVzLCBvbmx5IGhhdmUgMHgleCBieXRlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICgoaW50KWR0b2hzKG5vZGUtPmF0dHJpYnV0ZVNpemUpKSpkdG9ocyhub2RlLT5hdHRyaWJ1dGVDb3VudCksCi0gICAgICAgICAgICAgICAgICAgICAgICAoaW50KShzaXplLWhlYWRlclNpemUpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gQkFEX1RZUEU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBBTE9HVygiQmFkIFhNTCBibG9jazogbm9kZSBhdCAweCV4IGV4dGVuZHMgYmV5b25kIGRhdGEgZW5kIDB4JXhcbiIsCi0gICAgICAgICAgICAgICAgICAgIChpbnQpKCgoY29uc3QgdWludDhfdCopbm9kZSktKChjb25zdCB1aW50OF90KiltSGVhZGVyKSksIChpbnQpbVNpemUpOwotICAgICAgICAgICAgcmV0dXJuIEJBRF9UWVBFOwotICAgICAgICB9Ci0gICAgICAgIEFMT0dXKCJCYWQgWE1MIGJsb2NrOiBub2RlIGF0IDB4JXggaGVhZGVyIHNpemUgMHgleCBzbWFsbGVyIHRoYW4gdG90YWwgc2l6ZSAweCV4XG4iLAotICAgICAgICAgICAgICAgIChpbnQpKCgoY29uc3QgdWludDhfdCopbm9kZSktKChjb25zdCB1aW50OF90KiltSGVhZGVyKSksCi0gICAgICAgICAgICAgICAgKGludCloZWFkZXJTaXplLCAoaW50KXNpemUpOwotICAgICAgICByZXR1cm4gQkFEX1RZUEU7Ci0gICAgfQotICAgIEFMT0dXKCJCYWQgWE1MIGJsb2NrOiBub2RlIGF0IDB4JXggaGVhZGVyIHNpemUgMHgleCB0b28gc21hbGxcbiIsCi0gICAgICAgICAgICAoaW50KSgoKGNvbnN0IHVpbnQ4X3QqKW5vZGUpLSgoY29uc3QgdWludDhfdCopbUhlYWRlcikpLAotICAgICAgICAgICAgKGludCloZWFkZXJTaXplKTsKLSAgICByZXR1cm4gQkFEX1RZUEU7Ci0jZW5kaWYKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi12b2lkIFJlc1RhYmxlX2NvbmZpZzo6Y29weUZyb21EZXZpY2VOb1N3YXAoY29uc3QgUmVzVGFibGVfY29uZmlnJiBvKSB7Ci0gICAgY29uc3Qgc2l6ZV90IHNpemUgPSBkdG9obChvLnNpemUpOwotICAgIGlmIChzaXplID49IHNpemVvZihSZXNUYWJsZV9jb25maWcpKSB7Ci0gICAgICAgICp0aGlzID0gbzsKLSAgICB9IGVsc2UgewotICAgICAgICBtZW1jcHkodGhpcywgJm8sIHNpemUpOwotICAgICAgICBtZW1zZXQoKCh1aW50OF90Kil0aGlzKStzaXplLCAwLCBzaXplb2YoUmVzVGFibGVfY29uZmlnKS1zaXplKTsKLSAgICB9Ci19Ci0KLXZvaWQgUmVzVGFibGVfY29uZmlnOjpjb3B5RnJvbUR0b0goY29uc3QgUmVzVGFibGVfY29uZmlnJiBvKSB7Ci0gICAgY29weUZyb21EZXZpY2VOb1N3YXAobyk7Ci0gICAgc2l6ZSA9IHNpemVvZihSZXNUYWJsZV9jb25maWcpOwotICAgIG1jYyA9IGR0b2hzKG1jYyk7Ci0gICAgbW5jID0gZHRvaHMobW5jKTsKLSAgICBkZW5zaXR5ID0gZHRvaHMoZGVuc2l0eSk7Ci0gICAgc2NyZWVuV2lkdGggPSBkdG9ocyhzY3JlZW5XaWR0aCk7Ci0gICAgc2NyZWVuSGVpZ2h0ID0gZHRvaHMoc2NyZWVuSGVpZ2h0KTsKLSAgICBzZGtWZXJzaW9uID0gZHRvaHMoc2RrVmVyc2lvbik7Ci0gICAgbWlub3JWZXJzaW9uID0gZHRvaHMobWlub3JWZXJzaW9uKTsKLSAgICBzbWFsbGVzdFNjcmVlbldpZHRoRHAgPSBkdG9ocyhzbWFsbGVzdFNjcmVlbldpZHRoRHApOwotICAgIHNjcmVlbldpZHRoRHAgPSBkdG9ocyhzY3JlZW5XaWR0aERwKTsKLSAgICBzY3JlZW5IZWlnaHREcCA9IGR0b2hzKHNjcmVlbkhlaWdodERwKTsKLX0KLQotdm9pZCBSZXNUYWJsZV9jb25maWc6OnN3YXBIdG9EKCkgewotICAgIHNpemUgPSBodG9kbChzaXplKTsKLSAgICBtY2MgPSBodG9kcyhtY2MpOwotICAgIG1uYyA9IGh0b2RzKG1uYyk7Ci0gICAgZGVuc2l0eSA9IGh0b2RzKGRlbnNpdHkpOwotICAgIHNjcmVlbldpZHRoID0gaHRvZHMoc2NyZWVuV2lkdGgpOwotICAgIHNjcmVlbkhlaWdodCA9IGh0b2RzKHNjcmVlbkhlaWdodCk7Ci0gICAgc2RrVmVyc2lvbiA9IGh0b2RzKHNka1ZlcnNpb24pOwotICAgIG1pbm9yVmVyc2lvbiA9IGh0b2RzKG1pbm9yVmVyc2lvbik7Ci0gICAgc21hbGxlc3RTY3JlZW5XaWR0aERwID0gaHRvZHMoc21hbGxlc3RTY3JlZW5XaWR0aERwKTsKLSAgICBzY3JlZW5XaWR0aERwID0gaHRvZHMoc2NyZWVuV2lkdGhEcCk7Ci0gICAgc2NyZWVuSGVpZ2h0RHAgPSBodG9kcyhzY3JlZW5IZWlnaHREcCk7Ci19Ci0KLWludCBSZXNUYWJsZV9jb25maWc6OmNvbXBhcmUoY29uc3QgUmVzVGFibGVfY29uZmlnJiBvKSBjb25zdCB7Ci0gICAgaW50MzJfdCBkaWZmID0gKGludDMyX3QpKGltc2kgLSBvLmltc2kpOwotICAgIGlmIChkaWZmICE9IDApIHJldHVybiBkaWZmOwotICAgIGRpZmYgPSAoaW50MzJfdCkobG9jYWxlIC0gby5sb2NhbGUpOwotICAgIGlmIChkaWZmICE9IDApIHJldHVybiBkaWZmOwotICAgIGRpZmYgPSAoaW50MzJfdCkoc2NyZWVuVHlwZSAtIG8uc2NyZWVuVHlwZSk7Ci0gICAgaWYgKGRpZmYgIT0gMCkgcmV0dXJuIGRpZmY7Ci0gICAgZGlmZiA9IChpbnQzMl90KShpbnB1dCAtIG8uaW5wdXQpOwotICAgIGlmIChkaWZmICE9IDApIHJldHVybiBkaWZmOwotICAgIGRpZmYgPSAoaW50MzJfdCkoc2NyZWVuU2l6ZSAtIG8uc2NyZWVuU2l6ZSk7Ci0gICAgaWYgKGRpZmYgIT0gMCkgcmV0dXJuIGRpZmY7Ci0gICAgZGlmZiA9IChpbnQzMl90KSh2ZXJzaW9uIC0gby52ZXJzaW9uKTsKLSAgICBpZiAoZGlmZiAhPSAwKSByZXR1cm4gZGlmZjsKLSAgICBkaWZmID0gKGludDMyX3QpKHNjcmVlbkxheW91dCAtIG8uc2NyZWVuTGF5b3V0KTsKLSAgICBpZiAoZGlmZiAhPSAwKSByZXR1cm4gZGlmZjsKLSAgICBkaWZmID0gKGludDMyX3QpKHVpTW9kZSAtIG8udWlNb2RlKTsKLSAgICBpZiAoZGlmZiAhPSAwKSByZXR1cm4gZGlmZjsKLSAgICBkaWZmID0gKGludDMyX3QpKHNtYWxsZXN0U2NyZWVuV2lkdGhEcCAtIG8uc21hbGxlc3RTY3JlZW5XaWR0aERwKTsKLSAgICBpZiAoZGlmZiAhPSAwKSByZXR1cm4gZGlmZjsKLSAgICBkaWZmID0gKGludDMyX3QpKHNjcmVlblNpemVEcCAtIG8uc2NyZWVuU2l6ZURwKTsKLSAgICByZXR1cm4gKGludClkaWZmOwotfQotCi1pbnQgUmVzVGFibGVfY29uZmlnOjpjb21wYXJlTG9naWNhbChjb25zdCBSZXNUYWJsZV9jb25maWcmIG8pIGNvbnN0IHsKLSAgICBpZiAobWNjICE9IG8ubWNjKSB7Ci0gICAgICAgIHJldHVybiBtY2MgPCBvLm1jYyA/IC0xIDogMTsKLSAgICB9Ci0gICAgaWYgKG1uYyAhPSBvLm1uYykgewotICAgICAgICByZXR1cm4gbW5jIDwgby5tbmMgPyAtMSA6IDE7Ci0gICAgfQotICAgIGlmIChsYW5ndWFnZVswXSAhPSBvLmxhbmd1YWdlWzBdKSB7Ci0gICAgICAgIHJldHVybiBsYW5ndWFnZVswXSA8IG8ubGFuZ3VhZ2VbMF0gPyAtMSA6IDE7Ci0gICAgfQotICAgIGlmIChsYW5ndWFnZVsxXSAhPSBvLmxhbmd1YWdlWzFdKSB7Ci0gICAgICAgIHJldHVybiBsYW5ndWFnZVsxXSA8IG8ubGFuZ3VhZ2VbMV0gPyAtMSA6IDE7Ci0gICAgfQotICAgIGlmIChjb3VudHJ5WzBdICE9IG8uY291bnRyeVswXSkgewotICAgICAgICByZXR1cm4gY291bnRyeVswXSA8IG8uY291bnRyeVswXSA/IC0xIDogMTsKLSAgICB9Ci0gICAgaWYgKGNvdW50cnlbMV0gIT0gby5jb3VudHJ5WzFdKSB7Ci0gICAgICAgIHJldHVybiBjb3VudHJ5WzFdIDwgby5jb3VudHJ5WzFdID8gLTEgOiAxOwotICAgIH0KLSAgICBpZiAoKHNjcmVlbkxheW91dCAmIE1BU0tfTEFZT1VURElSKSAhPSAoby5zY3JlZW5MYXlvdXQgJiBNQVNLX0xBWU9VVERJUikpIHsKLSAgICAgICAgcmV0dXJuIChzY3JlZW5MYXlvdXQgJiBNQVNLX0xBWU9VVERJUikgPCAoby5zY3JlZW5MYXlvdXQgJiBNQVNLX0xBWU9VVERJUikgPyAtMSA6IDE7Ci0gICAgfQotICAgIGlmIChzbWFsbGVzdFNjcmVlbldpZHRoRHAgIT0gby5zbWFsbGVzdFNjcmVlbldpZHRoRHApIHsKLSAgICAgICAgcmV0dXJuIHNtYWxsZXN0U2NyZWVuV2lkdGhEcCA8IG8uc21hbGxlc3RTY3JlZW5XaWR0aERwID8gLTEgOiAxOwotICAgIH0KLSAgICBpZiAoc2NyZWVuV2lkdGhEcCAhPSBvLnNjcmVlbldpZHRoRHApIHsKLSAgICAgICAgcmV0dXJuIHNjcmVlbldpZHRoRHAgPCBvLnNjcmVlbldpZHRoRHAgPyAtMSA6IDE7Ci0gICAgfQotICAgIGlmIChzY3JlZW5IZWlnaHREcCAhPSBvLnNjcmVlbkhlaWdodERwKSB7Ci0gICAgICAgIHJldHVybiBzY3JlZW5IZWlnaHREcCA8IG8uc2NyZWVuSGVpZ2h0RHAgPyAtMSA6IDE7Ci0gICAgfQotICAgIGlmIChzY3JlZW5XaWR0aCAhPSBvLnNjcmVlbldpZHRoKSB7Ci0gICAgICAgIHJldHVybiBzY3JlZW5XaWR0aCA8IG8uc2NyZWVuV2lkdGggPyAtMSA6IDE7Ci0gICAgfQotICAgIGlmIChzY3JlZW5IZWlnaHQgIT0gby5zY3JlZW5IZWlnaHQpIHsKLSAgICAgICAgcmV0dXJuIHNjcmVlbkhlaWdodCA8IG8uc2NyZWVuSGVpZ2h0ID8gLTEgOiAxOwotICAgIH0KLSAgICBpZiAoZGVuc2l0eSAhPSBvLmRlbnNpdHkpIHsKLSAgICAgICAgcmV0dXJuIGRlbnNpdHkgPCBvLmRlbnNpdHkgPyAtMSA6IDE7Ci0gICAgfQotICAgIGlmIChvcmllbnRhdGlvbiAhPSBvLm9yaWVudGF0aW9uKSB7Ci0gICAgICAgIHJldHVybiBvcmllbnRhdGlvbiA8IG8ub3JpZW50YXRpb24gPyAtMSA6IDE7Ci0gICAgfQotICAgIGlmICh0b3VjaHNjcmVlbiAhPSBvLnRvdWNoc2NyZWVuKSB7Ci0gICAgICAgIHJldHVybiB0b3VjaHNjcmVlbiA8IG8udG91Y2hzY3JlZW4gPyAtMSA6IDE7Ci0gICAgfQotICAgIGlmIChpbnB1dCAhPSBvLmlucHV0KSB7Ci0gICAgICAgIHJldHVybiBpbnB1dCA8IG8uaW5wdXQgPyAtMSA6IDE7Ci0gICAgfQotICAgIGlmIChzY3JlZW5MYXlvdXQgIT0gby5zY3JlZW5MYXlvdXQpIHsKLSAgICAgICAgcmV0dXJuIHNjcmVlbkxheW91dCA8IG8uc2NyZWVuTGF5b3V0ID8gLTEgOiAxOwotICAgIH0KLSAgICBpZiAodWlNb2RlICE9IG8udWlNb2RlKSB7Ci0gICAgICAgIHJldHVybiB1aU1vZGUgPCBvLnVpTW9kZSA/IC0xIDogMTsKLSAgICB9Ci0gICAgaWYgKHZlcnNpb24gIT0gby52ZXJzaW9uKSB7Ci0gICAgICAgIHJldHVybiB2ZXJzaW9uIDwgby52ZXJzaW9uID8gLTEgOiAxOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotaW50IFJlc1RhYmxlX2NvbmZpZzo6ZGlmZihjb25zdCBSZXNUYWJsZV9jb25maWcmIG8pIGNvbnN0IHsKLSAgICBpbnQgZGlmZnMgPSAwOwotICAgIGlmIChtY2MgIT0gby5tY2MpIGRpZmZzIHw9IENPTkZJR19NQ0M7Ci0gICAgaWYgKG1uYyAhPSBvLm1uYykgZGlmZnMgfD0gQ09ORklHX01OQzsKLSAgICBpZiAobG9jYWxlICE9IG8ubG9jYWxlKSBkaWZmcyB8PSBDT05GSUdfTE9DQUxFOwotICAgIGlmIChvcmllbnRhdGlvbiAhPSBvLm9yaWVudGF0aW9uKSBkaWZmcyB8PSBDT05GSUdfT1JJRU5UQVRJT047Ci0gICAgaWYgKGRlbnNpdHkgIT0gby5kZW5zaXR5KSBkaWZmcyB8PSBDT05GSUdfREVOU0lUWTsKLSAgICBpZiAodG91Y2hzY3JlZW4gIT0gby50b3VjaHNjcmVlbikgZGlmZnMgfD0gQ09ORklHX1RPVUNIU0NSRUVOOwotICAgIGlmICgoKGlucHV0RmxhZ3Neby5pbnB1dEZsYWdzKSYoTUFTS19LRVlTSElEREVOfE1BU0tfTkFWSElEREVOKSkgIT0gMCkKLSAgICAgICAgICAgIGRpZmZzIHw9IENPTkZJR19LRVlCT0FSRF9ISURERU47Ci0gICAgaWYgKGtleWJvYXJkICE9IG8ua2V5Ym9hcmQpIGRpZmZzIHw9IENPTkZJR19LRVlCT0FSRDsKLSAgICBpZiAobmF2aWdhdGlvbiAhPSBvLm5hdmlnYXRpb24pIGRpZmZzIHw9IENPTkZJR19OQVZJR0FUSU9OOwotICAgIGlmIChzY3JlZW5TaXplICE9IG8uc2NyZWVuU2l6ZSkgZGlmZnMgfD0gQ09ORklHX1NDUkVFTl9TSVpFOwotICAgIGlmICh2ZXJzaW9uICE9IG8udmVyc2lvbikgZGlmZnMgfD0gQ09ORklHX1ZFUlNJT047Ci0gICAgaWYgKChzY3JlZW5MYXlvdXQgJiBNQVNLX0xBWU9VVERJUikgIT0gKG8uc2NyZWVuTGF5b3V0ICYgTUFTS19MQVlPVVRESVIpKSBkaWZmcyB8PSBDT05GSUdfTEFZT1VURElSOwotICAgIGlmICgoc2NyZWVuTGF5b3V0ICYgfk1BU0tfTEFZT1VURElSKSAhPSAoby5zY3JlZW5MYXlvdXQgJiB+TUFTS19MQVlPVVRESVIpKSBkaWZmcyB8PSBDT05GSUdfU0NSRUVOX0xBWU9VVDsKLSAgICBpZiAodWlNb2RlICE9IG8udWlNb2RlKSBkaWZmcyB8PSBDT05GSUdfVUlfTU9ERTsKLSAgICBpZiAoc21hbGxlc3RTY3JlZW5XaWR0aERwICE9IG8uc21hbGxlc3RTY3JlZW5XaWR0aERwKSBkaWZmcyB8PSBDT05GSUdfU01BTExFU1RfU0NSRUVOX1NJWkU7Ci0gICAgaWYgKHNjcmVlblNpemVEcCAhPSBvLnNjcmVlblNpemVEcCkgZGlmZnMgfD0gQ09ORklHX1NDUkVFTl9TSVpFOwotICAgIHJldHVybiBkaWZmczsKLX0KLQotYm9vbCBSZXNUYWJsZV9jb25maWc6OmlzTW9yZVNwZWNpZmljVGhhbihjb25zdCBSZXNUYWJsZV9jb25maWcmIG8pIGNvbnN0IHsKLSAgICAvLyBUaGUgb3JkZXIgb2YgdGhlIGZvbGxvd2luZyB0ZXN0cyBkZWZpbmVzIHRoZSBpbXBvcnRhbmNlIG9mIG9uZQotICAgIC8vIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIG92ZXIgYW5vdGhlci4gIFRob3NlIHRlc3RzIGZpcnN0IGFyZSBtb3JlCi0gICAgLy8gaW1wb3J0YW50LCB0cnVtcGluZyBhbnkgdmFsdWVzIGluIHRob3NlIGZvbGxvd2luZyB0aGVtLgotICAgIGlmIChpbXNpIHx8IG8uaW1zaSkgewotICAgICAgICBpZiAobWNjICE9IG8ubWNjKSB7Ci0gICAgICAgICAgICBpZiAoIW1jYykgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFvLm1jYykgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobW5jICE9IG8ubW5jKSB7Ci0gICAgICAgICAgICBpZiAoIW1uYykgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFvLm1uYykgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAobG9jYWxlIHx8IG8ubG9jYWxlKSB7Ci0gICAgICAgIGlmIChsYW5ndWFnZVswXSAhPSBvLmxhbmd1YWdlWzBdKSB7Ci0gICAgICAgICAgICBpZiAoIWxhbmd1YWdlWzBdKSByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIW8ubGFuZ3VhZ2VbMF0pIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGNvdW50cnlbMF0gIT0gby5jb3VudHJ5WzBdKSB7Ci0gICAgICAgICAgICBpZiAoIWNvdW50cnlbMF0pIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghby5jb3VudHJ5WzBdKSByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChzY3JlZW5MYXlvdXQgfHwgby5zY3JlZW5MYXlvdXQpIHsKLSAgICAgICAgaWYgKCgoc2NyZWVuTGF5b3V0Xm8uc2NyZWVuTGF5b3V0KSAmIE1BU0tfTEFZT1VURElSKSAhPSAwKSB7Ci0gICAgICAgICAgICBpZiAoIShzY3JlZW5MYXlvdXQgJiBNQVNLX0xBWU9VVERJUikpIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghKG8uc2NyZWVuTGF5b3V0ICYgTUFTS19MQVlPVVRESVIpKSByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChzbWFsbGVzdFNjcmVlbldpZHRoRHAgfHwgby5zbWFsbGVzdFNjcmVlbldpZHRoRHApIHsKLSAgICAgICAgaWYgKHNtYWxsZXN0U2NyZWVuV2lkdGhEcCAhPSBvLnNtYWxsZXN0U2NyZWVuV2lkdGhEcCkgewotICAgICAgICAgICAgaWYgKCFzbWFsbGVzdFNjcmVlbldpZHRoRHApIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghby5zbWFsbGVzdFNjcmVlbldpZHRoRHApIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHNjcmVlblNpemVEcCB8fCBvLnNjcmVlblNpemVEcCkgewotICAgICAgICBpZiAoc2NyZWVuV2lkdGhEcCAhPSBvLnNjcmVlbldpZHRoRHApIHsKLSAgICAgICAgICAgIGlmICghc2NyZWVuV2lkdGhEcCkgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFvLnNjcmVlbldpZHRoRHApIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHNjcmVlbkhlaWdodERwICE9IG8uc2NyZWVuSGVpZ2h0RHApIHsKLSAgICAgICAgICAgIGlmICghc2NyZWVuSGVpZ2h0RHApIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghby5zY3JlZW5IZWlnaHREcCkgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoc2NyZWVuTGF5b3V0IHx8IG8uc2NyZWVuTGF5b3V0KSB7Ci0gICAgICAgIGlmICgoKHNjcmVlbkxheW91dF5vLnNjcmVlbkxheW91dCkgJiBNQVNLX1NDUkVFTlNJWkUpICE9IDApIHsKLSAgICAgICAgICAgIGlmICghKHNjcmVlbkxheW91dCAmIE1BU0tfU0NSRUVOU0laRSkpIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghKG8uc2NyZWVuTGF5b3V0ICYgTUFTS19TQ1JFRU5TSVpFKSkgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCgoc2NyZWVuTGF5b3V0Xm8uc2NyZWVuTGF5b3V0KSAmIE1BU0tfU0NSRUVOTE9ORykgIT0gMCkgewotICAgICAgICAgICAgaWYgKCEoc2NyZWVuTGF5b3V0ICYgTUFTS19TQ1JFRU5MT05HKSkgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCEoby5zY3JlZW5MYXlvdXQgJiBNQVNLX1NDUkVFTkxPTkcpKSByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChvcmllbnRhdGlvbiAhPSBvLm9yaWVudGF0aW9uKSB7Ci0gICAgICAgIGlmICghb3JpZW50YXRpb24pIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFvLm9yaWVudGF0aW9uKSByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBpZiAodWlNb2RlIHx8IG8udWlNb2RlKSB7Ci0gICAgICAgIGlmICgoKHVpTW9kZV5vLnVpTW9kZSkgJiBNQVNLX1VJX01PREVfVFlQRSkgIT0gMCkgewotICAgICAgICAgICAgaWYgKCEodWlNb2RlICYgTUFTS19VSV9NT0RFX1RZUEUpKSByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIShvLnVpTW9kZSAmIE1BU0tfVUlfTU9ERV9UWVBFKSkgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCgodWlNb2RlXm8udWlNb2RlKSAmIE1BU0tfVUlfTU9ERV9OSUdIVCkgIT0gMCkgewotICAgICAgICAgICAgaWYgKCEodWlNb2RlICYgTUFTS19VSV9NT0RFX05JR0hUKSkgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCEoby51aU1vZGUgJiBNQVNLX1VJX01PREVfTklHSFQpKSByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIGRlbnNpdHkgaXMgbmV2ZXIgJ21vcmUgc3BlY2lmaWMnCi0gICAgLy8gYXMgdGhlIGRlZmF1bHQganVzdCBlcXVhbHMgMTYwCi0KLSAgICBpZiAodG91Y2hzY3JlZW4gIT0gby50b3VjaHNjcmVlbikgewotICAgICAgICBpZiAoIXRvdWNoc2NyZWVuKSByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghby50b3VjaHNjcmVlbikgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgaWYgKGlucHV0IHx8IG8uaW5wdXQpIHsKLSAgICAgICAgaWYgKCgoaW5wdXRGbGFnc15vLmlucHV0RmxhZ3MpICYgTUFTS19LRVlTSElEREVOKSAhPSAwKSB7Ci0gICAgICAgICAgICBpZiAoIShpbnB1dEZsYWdzICYgTUFTS19LRVlTSElEREVOKSkgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCEoby5pbnB1dEZsYWdzICYgTUFTS19LRVlTSElEREVOKSkgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoKChpbnB1dEZsYWdzXm8uaW5wdXRGbGFncykgJiBNQVNLX05BVkhJRERFTikgIT0gMCkgewotICAgICAgICAgICAgaWYgKCEoaW5wdXRGbGFncyAmIE1BU0tfTkFWSElEREVOKSkgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCEoby5pbnB1dEZsYWdzICYgTUFTS19OQVZISURERU4pKSByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChrZXlib2FyZCAhPSBvLmtleWJvYXJkKSB7Ci0gICAgICAgICAgICBpZiAoIWtleWJvYXJkKSByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIW8ua2V5Ym9hcmQpIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKG5hdmlnYXRpb24gIT0gby5uYXZpZ2F0aW9uKSB7Ci0gICAgICAgICAgICBpZiAoIW5hdmlnYXRpb24pIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghby5uYXZpZ2F0aW9uKSByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChzY3JlZW5TaXplIHx8IG8uc2NyZWVuU2l6ZSkgewotICAgICAgICBpZiAoc2NyZWVuV2lkdGggIT0gby5zY3JlZW5XaWR0aCkgewotICAgICAgICAgICAgaWYgKCFzY3JlZW5XaWR0aCkgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFvLnNjcmVlbldpZHRoKSByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChzY3JlZW5IZWlnaHQgIT0gby5zY3JlZW5IZWlnaHQpIHsKLSAgICAgICAgICAgIGlmICghc2NyZWVuSGVpZ2h0KSByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoIW8uc2NyZWVuSGVpZ2h0KSByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICh2ZXJzaW9uIHx8IG8udmVyc2lvbikgewotICAgICAgICBpZiAoc2RrVmVyc2lvbiAhPSBvLnNka1ZlcnNpb24pIHsKLSAgICAgICAgICAgIGlmICghc2RrVmVyc2lvbikgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYgKCFvLnNka1ZlcnNpb24pIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKG1pbm9yVmVyc2lvbiAhPSBvLm1pbm9yVmVyc2lvbikgewotICAgICAgICAgICAgaWYgKCFtaW5vclZlcnNpb24pIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGlmICghby5taW5vclZlcnNpb24pIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBSZXNUYWJsZV9jb25maWc6OmlzQmV0dGVyVGhhbihjb25zdCBSZXNUYWJsZV9jb25maWcmIG8sCi0gICAgICAgIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyogcmVxdWVzdGVkKSBjb25zdCB7Ci0gICAgaWYgKHJlcXVlc3RlZCkgewotICAgICAgICBpZiAoaW1zaSB8fCBvLmltc2kpIHsKLSAgICAgICAgICAgIGlmICgobWNjICE9IG8ubWNjKSAmJiByZXF1ZXN0ZWQtPm1jYykgewotICAgICAgICAgICAgICAgIHJldHVybiAobWNjKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKChtbmMgIT0gby5tbmMpICYmIHJlcXVlc3RlZC0+bW5jKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChtbmMpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGxvY2FsZSB8fCBvLmxvY2FsZSkgewotICAgICAgICAgICAgaWYgKChsYW5ndWFnZVswXSAhPSBvLmxhbmd1YWdlWzBdKSAmJiByZXF1ZXN0ZWQtPmxhbmd1YWdlWzBdKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChsYW5ndWFnZVswXSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICgoY291bnRyeVswXSAhPSBvLmNvdW50cnlbMF0pICYmIHJlcXVlc3RlZC0+Y291bnRyeVswXSkgewotICAgICAgICAgICAgICAgIHJldHVybiAoY291bnRyeVswXSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoc2NyZWVuTGF5b3V0IHx8IG8uc2NyZWVuTGF5b3V0KSB7Ci0gICAgICAgICAgICBpZiAoKChzY3JlZW5MYXlvdXReby5zY3JlZW5MYXlvdXQpICYgTUFTS19MQVlPVVRESVIpICE9IDAKLSAgICAgICAgICAgICAgICAgICAgJiYgKHJlcXVlc3RlZC0+c2NyZWVuTGF5b3V0ICYgTUFTS19MQVlPVVRESVIpKSB7Ci0gICAgICAgICAgICAgICAgaW50IG15TGF5b3V0RGlyID0gc2NyZWVuTGF5b3V0ICYgTUFTS19MQVlPVVRESVI7Ci0gICAgICAgICAgICAgICAgaW50IG9MYXlvdXREaXIgPSBvLnNjcmVlbkxheW91dCAmIE1BU0tfTEFZT1VURElSOwotICAgICAgICAgICAgICAgIHJldHVybiAobXlMYXlvdXREaXIgPiBvTGF5b3V0RGlyKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChzbWFsbGVzdFNjcmVlbldpZHRoRHAgfHwgby5zbWFsbGVzdFNjcmVlbldpZHRoRHApIHsKLSAgICAgICAgICAgIC8vIFRoZSBjb25maWd1cmF0aW9uIGNsb3Nlc3QgdG8gdGhlIGFjdHVhbCBzaXplIGlzIGJlc3QuCi0gICAgICAgICAgICAvLyBXZSBhc3N1bWUgdGhhdCBsYXJnZXIgY29uZmlncyBoYXZlIGFscmVhZHkgYmVlbiBmaWx0ZXJlZAotICAgICAgICAgICAgLy8gb3V0IGF0IHRoaXMgcG9pbnQuICBUaGF0IG1lYW5zIHdlIGp1c3Qgd2FudCB0aGUgbGFyZ2VzdCBvbmUuCi0gICAgICAgICAgICBpZiAoc21hbGxlc3RTY3JlZW5XaWR0aERwICE9IG8uc21hbGxlc3RTY3JlZW5XaWR0aERwKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHNtYWxsZXN0U2NyZWVuV2lkdGhEcCA+IG8uc21hbGxlc3RTY3JlZW5XaWR0aERwOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHNjcmVlblNpemVEcCB8fCBvLnNjcmVlblNpemVEcCkgewotICAgICAgICAgICAgLy8gIkJldHRlciIgaXMgYmFzZWQgb24gdGhlIHN1bSBvZiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGJvdGgKLSAgICAgICAgICAgIC8vIHdpZHRoIGFuZCBoZWlnaHQgZnJvbSB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMuICBXZSBhcmUKLSAgICAgICAgICAgIC8vIGFzc3VtaW5nIHRoZSBpbnZhbGlkIGNvbmZpZ3MgKHdpdGggc21hbGxlciBkaW1lbnMpIGhhdmUKLSAgICAgICAgICAgIC8vIGFscmVhZHkgYmVlbiBmaWx0ZXJlZC4gIE5vdGUgdGhhdCBpZiBhIHBhcnRpY3VsYXIgZGltZW5zaW9uCi0gICAgICAgICAgICAvLyBpcyB1bnNwZWNpZmllZCwgd2Ugd2lsbCBlbmQgdXAgd2l0aCBhIGxhcmdlIHZhbHVlICh0aGUKLSAgICAgICAgICAgIC8vIGRpZmZlcmVuY2UgYmV0d2VlbiAwIGFuZCB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbiksIHdoaWNoIGlzCi0gICAgICAgICAgICAvLyBnb29kIHNpbmNlIHdlIHdpbGwgcHJlZmVyIGEgY29uZmlnIHRoYXQgaGFzIHNwZWNpZmllZCBhCi0gICAgICAgICAgICAvLyBkaW1lbnNpb24gdmFsdWUuCi0gICAgICAgICAgICBpbnQgbXlEZWx0YSA9IDAsIG90aGVyRGVsdGEgPSAwOwotICAgICAgICAgICAgaWYgKHJlcXVlc3RlZC0+c2NyZWVuV2lkdGhEcCkgewotICAgICAgICAgICAgICAgIG15RGVsdGEgKz0gcmVxdWVzdGVkLT5zY3JlZW5XaWR0aERwIC0gc2NyZWVuV2lkdGhEcDsKLSAgICAgICAgICAgICAgICBvdGhlckRlbHRhICs9IHJlcXVlc3RlZC0+c2NyZWVuV2lkdGhEcCAtIG8uc2NyZWVuV2lkdGhEcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXF1ZXN0ZWQtPnNjcmVlbkhlaWdodERwKSB7Ci0gICAgICAgICAgICAgICAgbXlEZWx0YSArPSByZXF1ZXN0ZWQtPnNjcmVlbkhlaWdodERwIC0gc2NyZWVuSGVpZ2h0RHA7Ci0gICAgICAgICAgICAgICAgb3RoZXJEZWx0YSArPSByZXF1ZXN0ZWQtPnNjcmVlbkhlaWdodERwIC0gby5zY3JlZW5IZWlnaHREcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vQUxPR0koIkNvbXBhcmluZyB0aGlzICVkeCVkIHRvIG90aGVyICVkeCVkIGluICVkeCVkOiBteURlbHRhPSVkIG90aGVyRGVsdGE9JWQiLAotICAgICAgICAgICAgLy8gICAgc2NyZWVuV2lkdGhEcCwgc2NyZWVuSGVpZ2h0RHAsIG8uc2NyZWVuV2lkdGhEcCwgby5zY3JlZW5IZWlnaHREcCwKLSAgICAgICAgICAgIC8vICAgIHJlcXVlc3RlZC0+c2NyZWVuV2lkdGhEcCwgcmVxdWVzdGVkLT5zY3JlZW5IZWlnaHREcCwgbXlEZWx0YSwgb3RoZXJEZWx0YSk7Ci0gICAgICAgICAgICBpZiAobXlEZWx0YSAhPSBvdGhlckRlbHRhKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG15RGVsdGEgPCBvdGhlckRlbHRhOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHNjcmVlbkxheW91dCB8fCBvLnNjcmVlbkxheW91dCkgewotICAgICAgICAgICAgaWYgKCgoc2NyZWVuTGF5b3V0Xm8uc2NyZWVuTGF5b3V0KSAmIE1BU0tfU0NSRUVOU0laRSkgIT0gMAotICAgICAgICAgICAgICAgICAgICAmJiAocmVxdWVzdGVkLT5zY3JlZW5MYXlvdXQgJiBNQVNLX1NDUkVFTlNJWkUpKSB7Ci0gICAgICAgICAgICAgICAgLy8gQSBsaXR0bGUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaGVyZTogdW5kZWZpbmVkIGlzCi0gICAgICAgICAgICAgICAgLy8gY29uc2lkZXJlZCBlcXVpdmFsZW50IHRvIG5vcm1hbC4gIEJ1dCBvbmx5IGlmIHRoZQotICAgICAgICAgICAgICAgIC8vIHJlcXVlc3RlZCBzaXplIGlzIGF0IGxlYXN0IG5vcm1hbDsgb3RoZXJ3aXNlLCBzbWFsbAotICAgICAgICAgICAgICAgIC8vIGlzIGJldHRlciB0aGFuIHRoZSBkZWZhdWx0LgotICAgICAgICAgICAgICAgIGludCBteVNMID0gKHNjcmVlbkxheW91dCAmIE1BU0tfU0NSRUVOU0laRSk7Ci0gICAgICAgICAgICAgICAgaW50IG9TTCA9IChvLnNjcmVlbkxheW91dCAmIE1BU0tfU0NSRUVOU0laRSk7Ci0gICAgICAgICAgICAgICAgaW50IGZpeGVkTXlTTCA9IG15U0w7Ci0gICAgICAgICAgICAgICAgaW50IGZpeGVkT1NMID0gb1NMOwotICAgICAgICAgICAgICAgIGlmICgocmVxdWVzdGVkLT5zY3JlZW5MYXlvdXQgJiBNQVNLX1NDUkVFTlNJWkUpID49IFNDUkVFTlNJWkVfTk9STUFMKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChmaXhlZE15U0wgPT0gMCkgZml4ZWRNeVNMID0gU0NSRUVOU0laRV9OT1JNQUw7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChmaXhlZE9TTCA9PSAwKSBmaXhlZE9TTCA9IFNDUkVFTlNJWkVfTk9STUFMOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAvLyBGb3Igc2NyZWVuIHNpemUsIHRoZSBiZXN0IG1hdGNoIGlzIHRoZSBvbmUgdGhhdCBpcwotICAgICAgICAgICAgICAgIC8vIGNsb3Nlc3QgdG8gdGhlIHJlcXVlc3RlZCBzY3JlZW4gc2l6ZSwgYnV0IG5vdCBvdmVyCi0gICAgICAgICAgICAgICAgLy8gKHRoZSBub3Qgb3ZlciBwYXJ0IGlzIGRlYWx0IHdpdGggaW4gbWF0Y2goKSBiZWxvdykuCi0gICAgICAgICAgICAgICAgaWYgKGZpeGVkTXlTTCA9PSBmaXhlZE9TTCkgewotICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdHdvIGFyZSB0aGUgc2FtZSwgYnV0ICd0aGlzJyBpcyBhY3R1YWxseQotICAgICAgICAgICAgICAgICAgICAvLyB1bmRlZmluZWQsIHRoZW4gdGhlIG90aGVyIGlzIHJlYWxseSBhIGJldHRlciBtYXRjaC4KLSAgICAgICAgICAgICAgICAgICAgaWYgKG15U0wgPT0gMCkgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGZpeGVkTXlTTCAhPSBmaXhlZE9TTCkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZml4ZWRNeVNMID4gZml4ZWRPU0w7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCgoc2NyZWVuTGF5b3V0Xm8uc2NyZWVuTGF5b3V0KSAmIE1BU0tfU0NSRUVOTE9ORykgIT0gMAotICAgICAgICAgICAgICAgICAgICAmJiAocmVxdWVzdGVkLT5zY3JlZW5MYXlvdXQgJiBNQVNLX1NDUkVFTkxPTkcpKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChzY3JlZW5MYXlvdXQgJiBNQVNLX1NDUkVFTkxPTkcpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKChvcmllbnRhdGlvbiAhPSBvLm9yaWVudGF0aW9uKSAmJiByZXF1ZXN0ZWQtPm9yaWVudGF0aW9uKSB7Ci0gICAgICAgICAgICByZXR1cm4gKG9yaWVudGF0aW9uKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh1aU1vZGUgfHwgby51aU1vZGUpIHsKLSAgICAgICAgICAgIGlmICgoKHVpTW9kZV5vLnVpTW9kZSkgJiBNQVNLX1VJX01PREVfVFlQRSkgIT0gMAotICAgICAgICAgICAgICAgICAgICAmJiAocmVxdWVzdGVkLT51aU1vZGUgJiBNQVNLX1VJX01PREVfVFlQRSkpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gKHVpTW9kZSAmIE1BU0tfVUlfTU9ERV9UWVBFKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICgoKHVpTW9kZV5vLnVpTW9kZSkgJiBNQVNLX1VJX01PREVfTklHSFQpICE9IDAKLSAgICAgICAgICAgICAgICAgICAgJiYgKHJlcXVlc3RlZC0+dWlNb2RlICYgTUFTS19VSV9NT0RFX05JR0hUKSkgewotICAgICAgICAgICAgICAgIHJldHVybiAodWlNb2RlICYgTUFTS19VSV9NT0RFX05JR0hUKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChzY3JlZW5UeXBlIHx8IG8uc2NyZWVuVHlwZSkgewotICAgICAgICAgICAgaWYgKGRlbnNpdHkgIT0gby5kZW5zaXR5KSB7Ci0gICAgICAgICAgICAgICAgLy8gZGVuc2l0eSBpcyB0b3VnaC4gIEFueSBkZW5zaXR5IGlzIHBvdGVudGlhbGx5IHVzZWZ1bAotICAgICAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhlIHN5c3RlbSB3aWxsIHNjYWxlIGl0LiAgU2NhbGluZyBkb3duCi0gICAgICAgICAgICAgICAgLy8gaXMgZ2VuZXJhbGx5IGJldHRlciB0aGFuIHNjYWxpbmcgdXAuCi0gICAgICAgICAgICAgICAgLy8gRGVmYXVsdCBkZW5zaXR5IGNvdW50cyBhcyAxNjBkcGkgKHRoZSBzeXN0ZW0gZGVmYXVsdCkKLSAgICAgICAgICAgICAgICAvLyBUT0RPIC0gcmVtb3ZlIDE2MCBjb25zdGFudHMKLSAgICAgICAgICAgICAgICBpbnQgaCA9IChkZW5zaXR5P2RlbnNpdHk6MTYwKTsKLSAgICAgICAgICAgICAgICBpbnQgbCA9IChvLmRlbnNpdHk/by5kZW5zaXR5OjE2MCk7Ci0gICAgICAgICAgICAgICAgYm9vbCBiSW1CaWdnZXIgPSB0cnVlOwotICAgICAgICAgICAgICAgIGlmIChsID4gaCkgewotICAgICAgICAgICAgICAgICAgICBpbnQgdCA9IGg7Ci0gICAgICAgICAgICAgICAgICAgIGggPSBsOwotICAgICAgICAgICAgICAgICAgICBsID0gdDsKLSAgICAgICAgICAgICAgICAgICAgYkltQmlnZ2VyID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaW50IHJlcVZhbHVlID0gKHJlcXVlc3RlZC0+ZGVuc2l0eT9yZXF1ZXN0ZWQtPmRlbnNpdHk6MTYwKTsKLSAgICAgICAgICAgICAgICBpZiAocmVxVmFsdWUgPj0gaCkgewotICAgICAgICAgICAgICAgICAgICAvLyByZXF1ZXN0ZWQgdmFsdWUgaGlnaGVyIHRoYW4gYm90aCBsIGFuZCBoLCBnaXZlIGgKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJJbUJpZ2dlcjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGwgPj0gcmVxVmFsdWUpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWVzdGVkIHZhbHVlIGxvd2VyIHRoYW4gYm90aCBsIGFuZCBoLCBnaXZlIGwKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFiSW1CaWdnZXI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIC8vIHNheWluZyB0aGF0IHNjYWxpbmcgZG93biBpcyAyeCBiZXR0ZXIgdGhhbiB1cAotICAgICAgICAgICAgICAgIGlmICgoKDIgKiBsKSAtIHJlcVZhbHVlKSAqIGggPiByZXFWYWx1ZSAqIHJlcVZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAhYkltQmlnZ2VyOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBiSW1CaWdnZXI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoKHRvdWNoc2NyZWVuICE9IG8udG91Y2hzY3JlZW4pICYmIHJlcXVlc3RlZC0+dG91Y2hzY3JlZW4pIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gKHRvdWNoc2NyZWVuKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChpbnB1dCB8fCBvLmlucHV0KSB7Ci0gICAgICAgICAgICBjb25zdCBpbnQga2V5c0hpZGRlbiA9IGlucHV0RmxhZ3MgJiBNQVNLX0tFWVNISURERU47Ci0gICAgICAgICAgICBjb25zdCBpbnQgb0tleXNIaWRkZW4gPSBvLmlucHV0RmxhZ3MgJiBNQVNLX0tFWVNISURERU47Ci0gICAgICAgICAgICBpZiAoa2V5c0hpZGRlbiAhPSBvS2V5c0hpZGRlbikgewotICAgICAgICAgICAgICAgIGNvbnN0IGludCByZXFLZXlzSGlkZGVuID0KLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZC0+aW5wdXRGbGFncyAmIE1BU0tfS0VZU0hJRERFTjsKLSAgICAgICAgICAgICAgICBpZiAocmVxS2V5c0hpZGRlbikgewotCi0gICAgICAgICAgICAgICAgICAgIGlmICgha2V5c0hpZGRlbikgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgICAgICBpZiAoIW9LZXlzSGlkZGVuKSByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgLy8gRm9yIGNvbXBhdGliaWxpdHksIHdlIGNvdW50IEtFWVNISURERU5fTk8gYXMgYmVpbmcKLSAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHNhbWUgYXMgS0VZU0hJRERFTl9TT0ZULiAgSGVyZSB3ZSBkaXNhbWJpZ3VhdGUKLSAgICAgICAgICAgICAgICAgICAgLy8gdGhlc2UgYnkgbWFraW5nIGFuIGV4YWN0IG1hdGNoIG1vcmUgc3BlY2lmaWMuCi0gICAgICAgICAgICAgICAgICAgIGlmIChyZXFLZXlzSGlkZGVuID09IGtleXNIaWRkZW4pIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgICAgICBpZiAocmVxS2V5c0hpZGRlbiA9PSBvS2V5c0hpZGRlbikgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY29uc3QgaW50IG5hdkhpZGRlbiA9IGlucHV0RmxhZ3MgJiBNQVNLX05BVkhJRERFTjsKLSAgICAgICAgICAgIGNvbnN0IGludCBvTmF2SGlkZGVuID0gby5pbnB1dEZsYWdzICYgTUFTS19OQVZISURERU47Ci0gICAgICAgICAgICBpZiAobmF2SGlkZGVuICE9IG9OYXZIaWRkZW4pIHsKLSAgICAgICAgICAgICAgICBjb25zdCBpbnQgcmVxTmF2SGlkZGVuID0KLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZC0+aW5wdXRGbGFncyAmIE1BU0tfTkFWSElEREVOOwotICAgICAgICAgICAgICAgIGlmIChyZXFOYXZIaWRkZW4pIHsKLQotICAgICAgICAgICAgICAgICAgICBpZiAoIW5hdkhpZGRlbikgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgICAgICBpZiAoIW9OYXZIaWRkZW4pIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKChrZXlib2FyZCAhPSBvLmtleWJvYXJkKSAmJiByZXF1ZXN0ZWQtPmtleWJvYXJkKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChrZXlib2FyZCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICgobmF2aWdhdGlvbiAhPSBvLm5hdmlnYXRpb24pICYmIHJlcXVlc3RlZC0+bmF2aWdhdGlvbikgewotICAgICAgICAgICAgICAgIHJldHVybiAobmF2aWdhdGlvbik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoc2NyZWVuU2l6ZSB8fCBvLnNjcmVlblNpemUpIHsKLSAgICAgICAgICAgIC8vICJCZXR0ZXIiIGlzIGJhc2VkIG9uIHRoZSBzdW0gb2YgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBib3RoCi0gICAgICAgICAgICAvLyB3aWR0aCBhbmQgaGVpZ2h0IGZyb20gdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zLiAgV2UgYXJlCi0gICAgICAgICAgICAvLyBhc3N1bWluZyB0aGUgaW52YWxpZCBjb25maWdzICh3aXRoIHNtYWxsZXIgc2l6ZXMpIGhhdmUKLSAgICAgICAgICAgIC8vIGFscmVhZHkgYmVlbiBmaWx0ZXJlZC4gIE5vdGUgdGhhdCBpZiBhIHBhcnRpY3VsYXIgZGltZW5zaW9uCi0gICAgICAgICAgICAvLyBpcyB1bnNwZWNpZmllZCwgd2Ugd2lsbCBlbmQgdXAgd2l0aCBhIGxhcmdlIHZhbHVlICh0aGUKLSAgICAgICAgICAgIC8vIGRpZmZlcmVuY2UgYmV0d2VlbiAwIGFuZCB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbiksIHdoaWNoIGlzCi0gICAgICAgICAgICAvLyBnb29kIHNpbmNlIHdlIHdpbGwgcHJlZmVyIGEgY29uZmlnIHRoYXQgaGFzIHNwZWNpZmllZCBhCi0gICAgICAgICAgICAvLyBzaXplIHZhbHVlLgotICAgICAgICAgICAgaW50IG15RGVsdGEgPSAwLCBvdGhlckRlbHRhID0gMDsKLSAgICAgICAgICAgIGlmIChyZXF1ZXN0ZWQtPnNjcmVlbldpZHRoKSB7Ci0gICAgICAgICAgICAgICAgbXlEZWx0YSArPSByZXF1ZXN0ZWQtPnNjcmVlbldpZHRoIC0gc2NyZWVuV2lkdGg7Ci0gICAgICAgICAgICAgICAgb3RoZXJEZWx0YSArPSByZXF1ZXN0ZWQtPnNjcmVlbldpZHRoIC0gby5zY3JlZW5XaWR0aDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXF1ZXN0ZWQtPnNjcmVlbkhlaWdodCkgewotICAgICAgICAgICAgICAgIG15RGVsdGEgKz0gcmVxdWVzdGVkLT5zY3JlZW5IZWlnaHQgLSBzY3JlZW5IZWlnaHQ7Ci0gICAgICAgICAgICAgICAgb3RoZXJEZWx0YSArPSByZXF1ZXN0ZWQtPnNjcmVlbkhlaWdodCAtIG8uc2NyZWVuSGVpZ2h0OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG15RGVsdGEgIT0gb3RoZXJEZWx0YSkgewotICAgICAgICAgICAgICAgIHJldHVybiBteURlbHRhIDwgb3RoZXJEZWx0YTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmICh2ZXJzaW9uIHx8IG8udmVyc2lvbikgewotICAgICAgICAgICAgaWYgKChzZGtWZXJzaW9uICE9IG8uc2RrVmVyc2lvbikgJiYgcmVxdWVzdGVkLT5zZGtWZXJzaW9uKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChzZGtWZXJzaW9uID4gby5zZGtWZXJzaW9uKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKChtaW5vclZlcnNpb24gIT0gby5taW5vclZlcnNpb24pICYmCi0gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZC0+bWlub3JWZXJzaW9uKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChtaW5vclZlcnNpb24pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gaXNNb3JlU3BlY2lmaWNUaGFuKG8pOwotfQotCi1ib29sIFJlc1RhYmxlX2NvbmZpZzo6bWF0Y2goY29uc3QgUmVzVGFibGVfY29uZmlnJiBzZXR0aW5ncykgY29uc3QgewotICAgIGlmIChpbXNpICE9IDApIHsKLSAgICAgICAgaWYgKG1jYyAhPSAwICYmIG1jYyAhPSBzZXR0aW5ncy5tY2MpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBpZiAobW5jICE9IDAgJiYgbW5jICE9IHNldHRpbmdzLm1uYykgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmIChsb2NhbGUgIT0gMCkgewotICAgICAgICBpZiAobGFuZ3VhZ2VbMF0gIT0gMAotICAgICAgICAgICAgJiYgKGxhbmd1YWdlWzBdICE9IHNldHRpbmdzLmxhbmd1YWdlWzBdCi0gICAgICAgICAgICAgICAgfHwgbGFuZ3VhZ2VbMV0gIT0gc2V0dGluZ3MubGFuZ3VhZ2VbMV0pKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGNvdW50cnlbMF0gIT0gMAotICAgICAgICAgICAgJiYgKGNvdW50cnlbMF0gIT0gc2V0dGluZ3MuY291bnRyeVswXQotICAgICAgICAgICAgICAgIHx8IGNvdW50cnlbMV0gIT0gc2V0dGluZ3MuY291bnRyeVsxXSkpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoc2NyZWVuQ29uZmlnICE9IDApIHsKLSAgICAgICAgY29uc3QgaW50IGxheW91dERpciA9IHNjcmVlbkxheW91dCZNQVNLX0xBWU9VVERJUjsKLSAgICAgICAgY29uc3QgaW50IHNldExheW91dERpciA9IHNldHRpbmdzLnNjcmVlbkxheW91dCZNQVNLX0xBWU9VVERJUjsKLSAgICAgICAgaWYgKGxheW91dERpciAhPSAwICYmIGxheW91dERpciAhPSBzZXRMYXlvdXREaXIpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IGludCBzY3JlZW5TaXplID0gc2NyZWVuTGF5b3V0Jk1BU0tfU0NSRUVOU0laRTsKLSAgICAgICAgY29uc3QgaW50IHNldFNjcmVlblNpemUgPSBzZXR0aW5ncy5zY3JlZW5MYXlvdXQmTUFTS19TQ1JFRU5TSVpFOwotICAgICAgICAvLyBBbnkgc2NyZWVuIHNpemVzIGZvciBsYXJnZXIgc2NyZWVucyB0aGFuIHRoZSBzZXR0aW5nIGRvIG5vdAotICAgICAgICAvLyBtYXRjaC4KLSAgICAgICAgaWYgKHNjcmVlblNpemUgIT0gMCAmJiBzY3JlZW5TaXplID4gc2V0U2NyZWVuU2l6ZSkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3QgaW50IHNjcmVlbkxvbmcgPSBzY3JlZW5MYXlvdXQmTUFTS19TQ1JFRU5MT05HOwotICAgICAgICBjb25zdCBpbnQgc2V0U2NyZWVuTG9uZyA9IHNldHRpbmdzLnNjcmVlbkxheW91dCZNQVNLX1NDUkVFTkxPTkc7Ci0gICAgICAgIGlmIChzY3JlZW5Mb25nICE9IDAgJiYgc2NyZWVuTG9uZyAhPSBzZXRTY3JlZW5Mb25nKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBpbnQgdWlNb2RlVHlwZSA9IHVpTW9kZSZNQVNLX1VJX01PREVfVFlQRTsKLSAgICAgICAgY29uc3QgaW50IHNldFVpTW9kZVR5cGUgPSBzZXR0aW5ncy51aU1vZGUmTUFTS19VSV9NT0RFX1RZUEU7Ci0gICAgICAgIGlmICh1aU1vZGVUeXBlICE9IDAgJiYgdWlNb2RlVHlwZSAhPSBzZXRVaU1vZGVUeXBlKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBpbnQgdWlNb2RlTmlnaHQgPSB1aU1vZGUmTUFTS19VSV9NT0RFX05JR0hUOwotICAgICAgICBjb25zdCBpbnQgc2V0VWlNb2RlTmlnaHQgPSBzZXR0aW5ncy51aU1vZGUmTUFTS19VSV9NT0RFX05JR0hUOwotICAgICAgICBpZiAodWlNb2RlTmlnaHQgIT0gMCAmJiB1aU1vZGVOaWdodCAhPSBzZXRVaU1vZGVOaWdodCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHNtYWxsZXN0U2NyZWVuV2lkdGhEcCAhPSAwCi0gICAgICAgICAgICAgICAgJiYgc21hbGxlc3RTY3JlZW5XaWR0aERwID4gc2V0dGluZ3Muc21hbGxlc3RTY3JlZW5XaWR0aERwKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKHNjcmVlblNpemVEcCAhPSAwKSB7Ci0gICAgICAgIGlmIChzY3JlZW5XaWR0aERwICE9IDAgJiYgc2NyZWVuV2lkdGhEcCA+IHNldHRpbmdzLnNjcmVlbldpZHRoRHApIHsKLSAgICAgICAgICAgIC8vQUxPR0koIkZpbHRlcmluZyBvdXQgd2lkdGggJWQgaW4gcmVxdWVzdGVkICVkIiwgc2NyZWVuV2lkdGhEcCwgc2V0dGluZ3Muc2NyZWVuV2lkdGhEcCk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHNjcmVlbkhlaWdodERwICE9IDAgJiYgc2NyZWVuSGVpZ2h0RHAgPiBzZXR0aW5ncy5zY3JlZW5IZWlnaHREcCkgewotICAgICAgICAgICAgLy9BTE9HSSgiRmlsdGVyaW5nIG91dCBoZWlnaHQgJWQgaW4gcmVxdWVzdGVkICVkIiwgc2NyZWVuSGVpZ2h0RHAsIHNldHRpbmdzLnNjcmVlbkhlaWdodERwKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoc2NyZWVuVHlwZSAhPSAwKSB7Ci0gICAgICAgIGlmIChvcmllbnRhdGlvbiAhPSAwICYmIG9yaWVudGF0aW9uICE9IHNldHRpbmdzLm9yaWVudGF0aW9uKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gZGVuc2l0eSBhbHdheXMgbWF0Y2hlcyAtIHdlIGNhbiBzY2FsZSBpdC4gIFNlZSBpc0JldHRlclRoYW4KLSAgICAgICAgaWYgKHRvdWNoc2NyZWVuICE9IDAgJiYgdG91Y2hzY3JlZW4gIT0gc2V0dGluZ3MudG91Y2hzY3JlZW4pIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoaW5wdXQgIT0gMCkgewotICAgICAgICBjb25zdCBpbnQga2V5c0hpZGRlbiA9IGlucHV0RmxhZ3MmTUFTS19LRVlTSElEREVOOwotICAgICAgICBjb25zdCBpbnQgc2V0S2V5c0hpZGRlbiA9IHNldHRpbmdzLmlucHV0RmxhZ3MmTUFTS19LRVlTSElEREVOOwotICAgICAgICBpZiAoa2V5c0hpZGRlbiAhPSAwICYmIGtleXNIaWRkZW4gIT0gc2V0S2V5c0hpZGRlbikgewotICAgICAgICAgICAgLy8gRm9yIGNvbXBhdGliaWxpdHksIHdlIGNvdW50IGEgcmVxdWVzdCBmb3IgS0VZU0hJRERFTl9OTyBhcyBhbHNvCi0gICAgICAgICAgICAvLyBtYXRjaGluZyB0aGUgbW9yZSByZWNlbnQgS0VZU0hJRERFTl9TT0ZULiAgQmFzaWNhbGx5Ci0gICAgICAgICAgICAvLyBLRVlTSElEREVOX05PIG1lYW5zIHRoZXJlIGlzIHNvbWUga2luZCBvZiBrZXlib2FyZCBhdmFpbGFibGUuCi0gICAgICAgICAgICAvL0FMT0dJKCJNYXRjaGluZyBrZXlzSGlkZGVuOiBoYXZlPSVkLCBjb25maWc9JWRcbiIsIGtleXNIaWRkZW4sIHNldEtleXNIaWRkZW4pOwotICAgICAgICAgICAgaWYgKGtleXNIaWRkZW4gIT0gS0VZU0hJRERFTl9OTyB8fCBzZXRLZXlzSGlkZGVuICE9IEtFWVNISURERU5fU09GVCkgewotICAgICAgICAgICAgICAgIC8vQUxPR0koIk5vIG1hdGNoISIpOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBjb25zdCBpbnQgbmF2SGlkZGVuID0gaW5wdXRGbGFncyZNQVNLX05BVkhJRERFTjsKLSAgICAgICAgY29uc3QgaW50IHNldE5hdkhpZGRlbiA9IHNldHRpbmdzLmlucHV0RmxhZ3MmTUFTS19OQVZISURERU47Ci0gICAgICAgIGlmIChuYXZIaWRkZW4gIT0gMCAmJiBuYXZIaWRkZW4gIT0gc2V0TmF2SGlkZGVuKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGtleWJvYXJkICE9IDAgJiYga2V5Ym9hcmQgIT0gc2V0dGluZ3Mua2V5Ym9hcmQpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBpZiAobmF2aWdhdGlvbiAhPSAwICYmIG5hdmlnYXRpb24gIT0gc2V0dGluZ3MubmF2aWdhdGlvbikgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmIChzY3JlZW5TaXplICE9IDApIHsKLSAgICAgICAgaWYgKHNjcmVlbldpZHRoICE9IDAgJiYgc2NyZWVuV2lkdGggPiBzZXR0aW5ncy5zY3JlZW5XaWR0aCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChzY3JlZW5IZWlnaHQgIT0gMCAmJiBzY3JlZW5IZWlnaHQgPiBzZXR0aW5ncy5zY3JlZW5IZWlnaHQpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAodmVyc2lvbiAhPSAwKSB7Ci0gICAgICAgIGlmIChzZGtWZXJzaW9uICE9IDAgJiYgc2RrVmVyc2lvbiA+IHNldHRpbmdzLnNka1ZlcnNpb24pIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBpZiAobWlub3JWZXJzaW9uICE9IDAgJiYgbWlub3JWZXJzaW9uICE9IHNldHRpbmdzLm1pbm9yVmVyc2lvbikgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFJlc1RhYmxlX2NvbmZpZzo6Z2V0TG9jYWxlKGNoYXIgc3RyWzZdKSBjb25zdCB7Ci0gICAgbWVtc2V0KHN0ciwgMCwgNik7Ci0gICAgaWYgKGxhbmd1YWdlWzBdKSB7Ci0gICAgICAgIHN0clswXSA9IGxhbmd1YWdlWzBdOwotICAgICAgICBzdHJbMV0gPSBsYW5ndWFnZVsxXTsKLSAgICAgICAgaWYgKGNvdW50cnlbMF0pIHsKLSAgICAgICAgICAgIHN0clsyXSA9ICdfJzsKLSAgICAgICAgICAgIHN0clszXSA9IGNvdW50cnlbMF07Ci0gICAgICAgICAgICBzdHJbNF0gPSBjb3VudHJ5WzFdOwotICAgICAgICB9Ci0gICAgfQotfQotCi1TdHJpbmc4IFJlc1RhYmxlX2NvbmZpZzo6dG9TdHJpbmcoKSBjb25zdCB7Ci0gICAgU3RyaW5nOCByZXM7Ci0KLSAgICBpZiAobWNjICE9IDApIHsKLSAgICAgICAgaWYgKHJlcy5zaXplKCkgPiAwKSByZXMuYXBwZW5kKCItIik7Ci0gICAgICAgIHJlcy5hcHBlbmRGb3JtYXQoIiVkbWNjIiwgZHRvaHMobWNjKSk7Ci0gICAgfQotICAgIGlmIChtbmMgIT0gMCkgewotICAgICAgICBpZiAocmVzLnNpemUoKSA+IDApIHJlcy5hcHBlbmQoIi0iKTsKLSAgICAgICAgcmVzLmFwcGVuZEZvcm1hdCgiJWRtbmMiLCBkdG9ocyhtbmMpKTsKLSAgICB9Ci0gICAgaWYgKGxhbmd1YWdlWzBdICE9IDApIHsKLSAgICAgICAgaWYgKHJlcy5zaXplKCkgPiAwKSByZXMuYXBwZW5kKCItIik7Ci0gICAgICAgIHJlcy5hcHBlbmQobGFuZ3VhZ2UsIDIpOwotICAgIH0KLSAgICBpZiAoY291bnRyeVswXSAhPSAwKSB7Ci0gICAgICAgIGlmIChyZXMuc2l6ZSgpID4gMCkgcmVzLmFwcGVuZCgiLSIpOwotICAgICAgICByZXMuYXBwZW5kKGNvdW50cnksIDIpOwotICAgIH0KLSAgICBpZiAoKHNjcmVlbkxheW91dCZNQVNLX0xBWU9VVERJUikgIT0gMCkgewotICAgICAgICBpZiAocmVzLnNpemUoKSA+IDApIHJlcy5hcHBlbmQoIi0iKTsKLSAgICAgICAgc3dpdGNoIChzY3JlZW5MYXlvdXQmUmVzVGFibGVfY29uZmlnOjpNQVNLX0xBWU9VVERJUikgewotICAgICAgICAgICAgY2FzZSBSZXNUYWJsZV9jb25maWc6OkxBWU9VVERJUl9MVFI6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgibGRsdHIiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpMQVlPVVRESVJfUlRMOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoImxkcnRsIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRGb3JtYXQoImxheW91dERpcj0lZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBkdG9ocyhzY3JlZW5MYXlvdXQmUmVzVGFibGVfY29uZmlnOjpNQVNLX0xBWU9VVERJUikpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmIChzbWFsbGVzdFNjcmVlbldpZHRoRHAgIT0gMCkgewotICAgICAgICBpZiAocmVzLnNpemUoKSA+IDApIHJlcy5hcHBlbmQoIi0iKTsKLSAgICAgICAgcmVzLmFwcGVuZEZvcm1hdCgic3clZGRwIiwgZHRvaHMoc21hbGxlc3RTY3JlZW5XaWR0aERwKSk7Ci0gICAgfQotICAgIGlmIChzY3JlZW5XaWR0aERwICE9IDApIHsKLSAgICAgICAgaWYgKHJlcy5zaXplKCkgPiAwKSByZXMuYXBwZW5kKCItIik7Ci0gICAgICAgIHJlcy5hcHBlbmRGb3JtYXQoInclZGRwIiwgZHRvaHMoc2NyZWVuV2lkdGhEcCkpOwotICAgIH0KLSAgICBpZiAoc2NyZWVuSGVpZ2h0RHAgIT0gMCkgewotICAgICAgICBpZiAocmVzLnNpemUoKSA+IDApIHJlcy5hcHBlbmQoIi0iKTsKLSAgICAgICAgcmVzLmFwcGVuZEZvcm1hdCgiaCVkZHAiLCBkdG9ocyhzY3JlZW5IZWlnaHREcCkpOwotICAgIH0KLSAgICBpZiAoKHNjcmVlbkxheW91dCZNQVNLX1NDUkVFTlNJWkUpICE9IFNDUkVFTlNJWkVfQU5ZKSB7Ci0gICAgICAgIGlmIChyZXMuc2l6ZSgpID4gMCkgcmVzLmFwcGVuZCgiLSIpOwotICAgICAgICBzd2l0Y2ggKHNjcmVlbkxheW91dCZSZXNUYWJsZV9jb25maWc6Ok1BU0tfU0NSRUVOU0laRSkgewotICAgICAgICAgICAgY2FzZSBSZXNUYWJsZV9jb25maWc6OlNDUkVFTlNJWkVfU01BTEw6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgic21hbGwiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpTQ1JFRU5TSVpFX05PUk1BTDoKLSAgICAgICAgICAgICAgICByZXMuYXBwZW5kKCJub3JtYWwiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpTQ1JFRU5TSVpFX0xBUkdFOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoImxhcmdlIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6U0NSRUVOU0laRV9YTEFSR0U6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgieGxhcmdlIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRGb3JtYXQoInNjcmVlbkxheW91dFNpemU9JWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgZHRvaHMoc2NyZWVuTGF5b3V0JlJlc1RhYmxlX2NvbmZpZzo6TUFTS19TQ1JFRU5TSVpFKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKChzY3JlZW5MYXlvdXQmTUFTS19TQ1JFRU5MT05HKSAhPSAwKSB7Ci0gICAgICAgIGlmIChyZXMuc2l6ZSgpID4gMCkgcmVzLmFwcGVuZCgiLSIpOwotICAgICAgICBzd2l0Y2ggKHNjcmVlbkxheW91dCZSZXNUYWJsZV9jb25maWc6Ok1BU0tfU0NSRUVOTE9ORykgewotICAgICAgICAgICAgY2FzZSBSZXNUYWJsZV9jb25maWc6OlNDUkVFTkxPTkdfTk86Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgibm90bG9uZyIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBSZXNUYWJsZV9jb25maWc6OlNDUkVFTkxPTkdfWUVTOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoImxvbmciKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZEZvcm1hdCgic2NyZWVuTGF5b3V0TG9uZz0lZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBkdG9ocyhzY3JlZW5MYXlvdXQmUmVzVGFibGVfY29uZmlnOjpNQVNLX1NDUkVFTkxPTkcpKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAob3JpZW50YXRpb24gIT0gT1JJRU5UQVRJT05fQU5ZKSB7Ci0gICAgICAgIGlmIChyZXMuc2l6ZSgpID4gMCkgcmVzLmFwcGVuZCgiLSIpOwotICAgICAgICBzd2l0Y2ggKG9yaWVudGF0aW9uKSB7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6T1JJRU5UQVRJT05fUE9SVDoKLSAgICAgICAgICAgICAgICByZXMuYXBwZW5kKCJwb3J0Iik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6T1JJRU5UQVRJT05fTEFORDoKLSAgICAgICAgICAgICAgICByZXMuYXBwZW5kKCJsYW5kIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6T1JJRU5UQVRJT05fU1FVQVJFOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoInNxdWFyZSIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICByZXMuYXBwZW5kRm9ybWF0KCJvcmllbnRhdGlvbj0lZCIsIGR0b2hzKG9yaWVudGF0aW9uKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKCh1aU1vZGUmTUFTS19VSV9NT0RFX1RZUEUpICE9IFVJX01PREVfVFlQRV9BTlkpIHsKLSAgICAgICAgaWYgKHJlcy5zaXplKCkgPiAwKSByZXMuYXBwZW5kKCItIik7Ci0gICAgICAgIHN3aXRjaCAodWlNb2RlJlJlc1RhYmxlX2NvbmZpZzo6TUFTS19VSV9NT0RFX1RZUEUpIHsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpVSV9NT0RFX1RZUEVfREVTSzoKLSAgICAgICAgICAgICAgICByZXMuYXBwZW5kKCJkZXNrIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6VUlfTU9ERV9UWVBFX0NBUjoKLSAgICAgICAgICAgICAgICByZXMuYXBwZW5kKCJjYXIiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpVSV9NT0RFX1RZUEVfVEVMRVZJU0lPTjoKLSAgICAgICAgICAgICAgICByZXMuYXBwZW5kKCJ0ZWxldmlzaW9uIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6VUlfTU9ERV9UWVBFX0FQUExJQU5DRToKLSAgICAgICAgICAgICAgICByZXMuYXBwZW5kKCJhcHBsaWFuY2UiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZEZvcm1hdCgidWlNb2RlVHlwZT0lZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBkdG9ocyhzY3JlZW5MYXlvdXQmUmVzVGFibGVfY29uZmlnOjpNQVNLX1VJX01PREVfVFlQRSkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmICgodWlNb2RlJk1BU0tfVUlfTU9ERV9OSUdIVCkgIT0gMCkgewotICAgICAgICBpZiAocmVzLnNpemUoKSA+IDApIHJlcy5hcHBlbmQoIi0iKTsKLSAgICAgICAgc3dpdGNoICh1aU1vZGUmUmVzVGFibGVfY29uZmlnOjpNQVNLX1VJX01PREVfTklHSFQpIHsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpVSV9NT0RFX05JR0hUX05POgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoIm5vdG5pZ2h0Iik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6VUlfTU9ERV9OSUdIVF9ZRVM6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgibmlnaHQiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZEZvcm1hdCgidWlNb2RlTmlnaHQ9JWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgZHRvaHModWlNb2RlJk1BU0tfVUlfTU9ERV9OSUdIVCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmIChkZW5zaXR5ICE9IERFTlNJVFlfREVGQVVMVCkgewotICAgICAgICBpZiAocmVzLnNpemUoKSA+IDApIHJlcy5hcHBlbmQoIi0iKTsKLSAgICAgICAgc3dpdGNoIChkZW5zaXR5KSB7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6REVOU0lUWV9MT1c6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgibGRwaSIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBSZXNUYWJsZV9jb25maWc6OkRFTlNJVFlfTUVESVVNOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoIm1kcGkiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpERU5TSVRZX1RWOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoInR2ZHBpIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6REVOU0lUWV9ISUdIOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoImhkcGkiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpERU5TSVRZX1hISUdIOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoInhoZHBpIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6REVOU0lUWV9YWEhJR0g6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgieHhoZHBpIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6REVOU0lUWV9OT05FOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoIm5vZHBpIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRGb3JtYXQoIiVkZHBpIiwgZHRvaHMoZGVuc2l0eSkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmICh0b3VjaHNjcmVlbiAhPSBUT1VDSFNDUkVFTl9BTlkpIHsKLSAgICAgICAgaWYgKHJlcy5zaXplKCkgPiAwKSByZXMuYXBwZW5kKCItIik7Ci0gICAgICAgIHN3aXRjaCAodG91Y2hzY3JlZW4pIHsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpUT1VDSFNDUkVFTl9OT1RPVUNIOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoIm5vdG91Y2giKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpUT1VDSFNDUkVFTl9GSU5HRVI6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgiZmluZ2VyIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6VE9VQ0hTQ1JFRU5fU1RZTFVTOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoInN0eWx1cyIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICByZXMuYXBwZW5kRm9ybWF0KCJ0b3VjaHNjcmVlbj0lZCIsIGR0b2hzKHRvdWNoc2NyZWVuKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKGtleWJvYXJkICE9IEtFWUJPQVJEX0FOWSkgewotICAgICAgICBpZiAocmVzLnNpemUoKSA+IDApIHJlcy5hcHBlbmQoIi0iKTsKLSAgICAgICAgc3dpdGNoIChrZXlib2FyZCkgewotICAgICAgICAgICAgY2FzZSBSZXNUYWJsZV9jb25maWc6OktFWUJPQVJEX05PS0VZUzoKLSAgICAgICAgICAgICAgICByZXMuYXBwZW5kKCJub2tleXMiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpLRVlCT0FSRF9RV0VSVFk6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgicXdlcnR5Iik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6S0VZQk9BUkRfMTJLRVk6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgiMTJrZXkiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZEZvcm1hdCgia2V5Ym9hcmQ9JWQiLCBkdG9ocyhrZXlib2FyZCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmICgoaW5wdXRGbGFncyZNQVNLX0tFWVNISURERU4pICE9IDApIHsKLSAgICAgICAgaWYgKHJlcy5zaXplKCkgPiAwKSByZXMuYXBwZW5kKCItIik7Ci0gICAgICAgIHN3aXRjaCAoaW5wdXRGbGFncyZNQVNLX0tFWVNISURERU4pIHsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpLRVlTSElEREVOX05POgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoImtleXNleHBvc2VkIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6S0VZU0hJRERFTl9ZRVM6Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgia2V5c2hpZGRlbiIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBSZXNUYWJsZV9jb25maWc6OktFWVNISURERU5fU09GVDoKLSAgICAgICAgICAgICAgICByZXMuYXBwZW5kKCJrZXlzc29mdCIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmIChuYXZpZ2F0aW9uICE9IE5BVklHQVRJT05fQU5ZKSB7Ci0gICAgICAgIGlmIChyZXMuc2l6ZSgpID4gMCkgcmVzLmFwcGVuZCgiLSIpOwotICAgICAgICBzd2l0Y2ggKG5hdmlnYXRpb24pIHsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpOQVZJR0FUSU9OX05PTkFWOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoIm5vbmF2Iik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc1RhYmxlX2NvbmZpZzo6TkFWSUdBVElPTl9EUEFEOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoImRwYWQiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpOQVZJR0FUSU9OX1RSQUNLQkFMTDoKLSAgICAgICAgICAgICAgICByZXMuYXBwZW5kKCJ0cmFja2JhbGwiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpOQVZJR0FUSU9OX1dIRUVMOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoIndoZWVsIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRGb3JtYXQoIm5hdmlnYXRpb249JWQiLCBkdG9ocyhuYXZpZ2F0aW9uKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKChpbnB1dEZsYWdzJk1BU0tfTkFWSElEREVOKSAhPSAwKSB7Ci0gICAgICAgIGlmIChyZXMuc2l6ZSgpID4gMCkgcmVzLmFwcGVuZCgiLSIpOwotICAgICAgICBzd2l0Y2ggKGlucHV0RmxhZ3MmTUFTS19OQVZISURERU4pIHsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpOQVZISURERU5fTk86Ci0gICAgICAgICAgICAgICAgcmVzLmFwcGVuZCgibmF2c2V4cG9zZWQiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfY29uZmlnOjpOQVZISURERU5fWUVTOgotICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoIm5hdmhpZGRlbiIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICByZXMuYXBwZW5kRm9ybWF0KCJpbnB1dEZsYWdzTmF2SGlkZGVuPSVkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGR0b2hzKGlucHV0RmxhZ3MmTUFTS19OQVZISURERU4pKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoc2NyZWVuU2l6ZSAhPSAwKSB7Ci0gICAgICAgIGlmIChyZXMuc2l6ZSgpID4gMCkgcmVzLmFwcGVuZCgiLSIpOwotICAgICAgICByZXMuYXBwZW5kRm9ybWF0KCIlZHglZCIsIGR0b2hzKHNjcmVlbldpZHRoKSwgZHRvaHMoc2NyZWVuSGVpZ2h0KSk7Ci0gICAgfQotICAgIGlmICh2ZXJzaW9uICE9IDApIHsKLSAgICAgICAgaWYgKHJlcy5zaXplKCkgPiAwKSByZXMuYXBwZW5kKCItIik7Ci0gICAgICAgIHJlcy5hcHBlbmRGb3JtYXQoInYlZCIsIGR0b2hzKHNka1ZlcnNpb24pKTsKLSAgICAgICAgaWYgKG1pbm9yVmVyc2lvbiAhPSAwKSB7Ci0gICAgICAgICAgICByZXMuYXBwZW5kRm9ybWF0KCIuJWQiLCBkdG9ocyhtaW5vclZlcnNpb24pKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiByZXM7Ci19Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotc3RydWN0IFJlc1RhYmxlOjpIZWFkZXIKLXsKLSAgICBIZWFkZXIoUmVzVGFibGUqIF9vd25lcikgOiBvd25lcihfb3duZXIpLCBvd25lZERhdGEoTlVMTCksIGhlYWRlcihOVUxMKSwKLSAgICAgICAgcmVzb3VyY2VJRE1hcChOVUxMKSwgcmVzb3VyY2VJRE1hcFNpemUoMCkgeyB9Ci0KLSAgICB+SGVhZGVyKCkKLSAgICB7Ci0gICAgICAgIGZyZWUocmVzb3VyY2VJRE1hcCk7Ci0gICAgfQotCi0gICAgUmVzVGFibGUqIGNvbnN0ICAgICAgICAgICAgICAgICBvd25lcjsKLSAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVkRGF0YTsKLSAgICBjb25zdCBSZXNUYWJsZV9oZWFkZXIqICAgICAgICAgIGhlYWRlcjsKLSAgICBzaXplX3QgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU7Ci0gICAgY29uc3QgdWludDhfdCogICAgICAgICAgICAgICAgICBkYXRhRW5kOwotICAgIHNpemVfdCAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg7Ci0gICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICBjb29raWU7Ci0KLSAgICBSZXNTdHJpbmdQb29sICAgICAgICAgICAgICAgICAgIHZhbHVlczsKLSAgICB1aW50MzJfdCogICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlSURNYXA7Ci0gICAgc2l6ZV90ICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZUlETWFwU2l6ZTsKLX07Ci0KLXN0cnVjdCBSZXNUYWJsZTo6VHlwZQotewotICAgIFR5cGUoY29uc3QgSGVhZGVyKiBfaGVhZGVyLCBjb25zdCBQYWNrYWdlKiBfcGFja2FnZSwgc2l6ZV90IGNvdW50KQotICAgICAgICA6IGhlYWRlcihfaGVhZGVyKSwgcGFja2FnZShfcGFja2FnZSksIGVudHJ5Q291bnQoY291bnQpLAotICAgICAgICAgIHR5cGVTcGVjKE5VTEwpLCB0eXBlU3BlY0ZsYWdzKE5VTEwpIHsgfQotICAgIGNvbnN0IEhlYWRlciogY29uc3QgICAgICAgICAgICAgaGVhZGVyOwotICAgIGNvbnN0IFBhY2thZ2UqIGNvbnN0ICAgICAgICAgICAgcGFja2FnZTsKLSAgICBjb25zdCBzaXplX3QgICAgICAgICAgICAgICAgICAgIGVudHJ5Q291bnQ7Ci0gICAgY29uc3QgUmVzVGFibGVfdHlwZVNwZWMqICAgICAgICB0eXBlU3BlYzsKLSAgICBjb25zdCB1aW50MzJfdCogICAgICAgICAgICAgICAgIHR5cGVTcGVjRmxhZ3M7Ci0gICAgVmVjdG9yPGNvbnN0IFJlc1RhYmxlX3R5cGUqPiAgICBjb25maWdzOwotfTsKLQotc3RydWN0IFJlc1RhYmxlOjpQYWNrYWdlCi17Ci0gICAgUGFja2FnZShSZXNUYWJsZSogX293bmVyLCBjb25zdCBIZWFkZXIqIF9oZWFkZXIsIGNvbnN0IFJlc1RhYmxlX3BhY2thZ2UqIF9wYWNrYWdlKQotICAgICAgICA6IG93bmVyKF9vd25lciksIGhlYWRlcihfaGVhZGVyKSwgcGFja2FnZShfcGFja2FnZSkgeyB9Ci0gICAgflBhY2thZ2UoKQotICAgIHsKLSAgICAgICAgc2l6ZV90IGkgPSB0eXBlcy5zaXplKCk7Ci0gICAgICAgIHdoaWxlIChpID4gMCkgewotICAgICAgICAgICAgaS0tOwotICAgICAgICAgICAgZGVsZXRlIHR5cGVzW2ldOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIFJlc1RhYmxlKiBjb25zdCAgICAgICAgICAgICAgICAgb3duZXI7Ci0gICAgY29uc3QgSGVhZGVyKiBjb25zdCAgICAgICAgICAgICBoZWFkZXI7Ci0gICAgY29uc3QgUmVzVGFibGVfcGFja2FnZSogY29uc3QgICBwYWNrYWdlOwotICAgIFZlY3RvcjxUeXBlKj4gICAgICAgICAgICAgICAgICAgdHlwZXM7Ci0KLSAgICBSZXNTdHJpbmdQb29sICAgICAgICAgICAgICAgICAgIHR5cGVTdHJpbmdzOwotICAgIFJlc1N0cmluZ1Bvb2wgICAgICAgICAgICAgICAgICAga2V5U3RyaW5nczsKLSAgICAKLSAgICBjb25zdCBUeXBlKiBnZXRUeXBlKHNpemVfdCBpZHgpIGNvbnN0IHsKLSAgICAgICAgcmV0dXJuIGlkeCA8IHR5cGVzLnNpemUoKSA/IHR5cGVzW2lkeF0gOiBOVUxMOwotICAgIH0KLX07Ci0KLS8vIEEgZ3JvdXAgb2Ygb2JqZWN0cyBkZXNjcmliaW5nIGEgcGFydGljdWxhciByZXNvdXJjZSBwYWNrYWdlLgotLy8gVGhlIGZpcnN0IGluICdwYWNrYWdlJyBpcyBhbHdheXMgdGhlIHJvb3Qgb2JqZWN0IChmcm9tIHRoZSByZXNvdXJjZQotLy8gdGFibGUgdGhhdCBkZWZpbmVkIHRoZSBwYWNrYWdlKTsgdGhlIG9uZXMgYWZ0ZXIgYXJlIHNraW5zIG9uIHRvcCBvZiBpdC4KLXN0cnVjdCBSZXNUYWJsZTo6UGFja2FnZUdyb3VwCi17Ci0gICAgUGFja2FnZUdyb3VwKFJlc1RhYmxlKiBfb3duZXIsIGNvbnN0IFN0cmluZzE2JiBfbmFtZSwgdWludDMyX3QgX2lkKQotICAgICAgICA6IG93bmVyKF9vd25lciksIG5hbWUoX25hbWUpLCBpZChfaWQpLCB0eXBlQ291bnQoMCksIGJhZ3MoTlVMTCkgeyB9Ci0gICAgflBhY2thZ2VHcm91cCgpIHsKLSAgICAgICAgY2xlYXJCYWdDYWNoZSgpOwotICAgICAgICBjb25zdCBzaXplX3QgTiA9IHBhY2thZ2VzLnNpemUoKTsKLSAgICAgICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICAgICAgUGFja2FnZSogcGtnID0gcGFja2FnZXNbaV07Ci0gICAgICAgICAgICBpZiAocGtnLT5vd25lciA9PSBvd25lcikgewotICAgICAgICAgICAgICAgIGRlbGV0ZSBwa2c7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB2b2lkIGNsZWFyQmFnQ2FjaGUoKSB7Ci0gICAgICAgIGlmIChiYWdzKSB7Ci0gICAgICAgICAgICBUQUJMRV9OT0lTWShwcmludGYoImJhZ3M9JXBcbiIsIGJhZ3MpKTsKLSAgICAgICAgICAgIFBhY2thZ2UqIHBrZyA9IHBhY2thZ2VzWzBdOwotICAgICAgICAgICAgVEFCTEVfTk9JU1kocHJpbnRmKCJ0eXBlQ291bnQ9JXhcbiIsIHR5cGVDb3VudCkpOwotICAgICAgICAgICAgZm9yIChzaXplX3QgaT0wOyBpPHR5cGVDb3VudDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgVEFCTEVfTk9JU1kocHJpbnRmKCJ0eXBlPSVkXG4iLCBpKSk7Ci0gICAgICAgICAgICAgICAgY29uc3QgVHlwZSogdHlwZSA9IHBrZy0+Z2V0VHlwZShpKTsKLSAgICAgICAgICAgICAgICBpZiAodHlwZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJhZ19zZXQqKiB0eXBlQmFncyA9IGJhZ3NbaV07Ci0gICAgICAgICAgICAgICAgICAgIFRBQkxFX05PSVNZKHByaW50ZigidHlwZUJhZ3M9JXBcbiIsIHR5cGVCYWdzKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlQmFncykgewotICAgICAgICAgICAgICAgICAgICAgICAgVEFCTEVfTk9JU1kocHJpbnRmKCJ0eXBlLT5lbnRyeUNvdW50PSV4XG4iLCB0eXBlLT5lbnRyeUNvdW50KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplX3QgTiA9IHR5cGUtPmVudHJ5Q291bnQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBqPTA7IGo8TjsgaisrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVCYWdzW2pdICYmIHR5cGVCYWdzW2pdICE9IChiYWdfc2V0KikweEZGRkZGRkZGKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlKHR5cGVCYWdzW2pdKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGZyZWUodHlwZUJhZ3MpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZnJlZShiYWdzKTsKLSAgICAgICAgICAgIGJhZ3MgPSBOVUxMOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIFJlc1RhYmxlKiBjb25zdCAgICAgICAgICAgICAgICAgb3duZXI7Ci0gICAgU3RyaW5nMTYgY29uc3QgICAgICAgICAgICAgICAgICBuYW1lOwotICAgIHVpbnQzMl90IGNvbnN0ICAgICAgICAgICAgICAgICAgaWQ7Ci0gICAgVmVjdG9yPFBhY2thZ2UqPiAgICAgICAgICAgICAgICBwYWNrYWdlczsKLSAgICAKLSAgICAvLyBUaGlzIGlzIGZvciBmaW5kaW5nIHR5cGVTdHJpbmdzIGFuZCBvdGhlciBjb21tb24gcGFja2FnZSBzdHVmZi4KLSAgICBQYWNrYWdlKiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VQYWNrYWdlOwotCi0gICAgLy8gRm9yIHF1aWNrIGFjY2Vzcy4KLSAgICBzaXplX3QgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVDb3VudDsKLSAgICAKLSAgICAvLyBDb21wdXRlZCBhdHRyaWJ1dGUgYmFncywgZmlyc3QgaW5kZXhlZCBieSB0aGUgdHlwZSBhbmQgc2Vjb25kCi0gICAgLy8gYnkgdGhlIGVudHJ5IGluIHRoYXQgdHlwZS4KLSAgICBiYWdfc2V0KioqICAgICAgICAgICAgICAgICAgICAgIGJhZ3M7Ci19OwotCi1zdHJ1Y3QgUmVzVGFibGU6OmJhZ19zZXQKLXsKLSAgICBzaXplX3QgbnVtQXR0cnM7ICAgIC8vIG51bWJlciBpbiBhcnJheQotICAgIHNpemVfdCBhdmFpbEF0dHJzOyAgLy8gdG90YWwgc3BhY2UgaW4gYXJyYXkKLSAgICB1aW50MzJfdCB0eXBlU3BlY0ZsYWdzOwotICAgIC8vIEZvbGxvd2VkIGJ5ICdudW1BdHRyJyBiYWdfZW50cnkgc3RydWN0dXJlcy4KLX07Ci0KLVJlc1RhYmxlOjpUaGVtZTo6VGhlbWUoY29uc3QgUmVzVGFibGUmIHRhYmxlKQotICAgIDogbVRhYmxlKHRhYmxlKQotewotICAgIG1lbXNldChtUGFja2FnZXMsIDAsIHNpemVvZihtUGFja2FnZXMpKTsKLX0KLQotUmVzVGFibGU6OlRoZW1lOjp+VGhlbWUoKQotewotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxSZXNfTUFYUEFDS0FHRTsgaSsrKSB7Ci0gICAgICAgIHBhY2thZ2VfaW5mbyogcGkgPSBtUGFja2FnZXNbaV07Ci0gICAgICAgIGlmIChwaSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBmcmVlX3BhY2thZ2UocGkpOwotICAgICAgICB9Ci0gICAgfQotfQotCi12b2lkIFJlc1RhYmxlOjpUaGVtZTo6ZnJlZV9wYWNrYWdlKHBhY2thZ2VfaW5mbyogcGkpCi17Ci0gICAgZm9yIChzaXplX3Qgaj0wOyBqPHBpLT5udW1UeXBlczsgaisrKSB7Ci0gICAgICAgIHRoZW1lX2VudHJ5KiB0ZSA9IHBpLT50eXBlc1tqXS5lbnRyaWVzOwotICAgICAgICBpZiAodGUgIT0gTlVMTCkgewotICAgICAgICAgICAgZnJlZSh0ZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZnJlZShwaSk7Ci19Ci0KLVJlc1RhYmxlOjpUaGVtZTo6cGFja2FnZV9pbmZvKiBSZXNUYWJsZTo6VGhlbWU6OmNvcHlfcGFja2FnZShwYWNrYWdlX2luZm8qIHBpKQotewotICAgIHBhY2thZ2VfaW5mbyogbmV3cGkgPSAocGFja2FnZV9pbmZvKiltYWxsb2MoCi0gICAgICAgIHNpemVvZihwYWNrYWdlX2luZm8pICsgKHBpLT5udW1UeXBlcypzaXplb2YodHlwZV9pbmZvKSkpOwotICAgIG5ld3BpLT5udW1UeXBlcyA9IHBpLT5udW1UeXBlczsKLSAgICBmb3IgKHNpemVfdCBqPTA7IGo8bmV3cGktPm51bVR5cGVzOyBqKyspIHsKLSAgICAgICAgc2l6ZV90IGNudCA9IHBpLT50eXBlc1tqXS5udW1FbnRyaWVzOwotICAgICAgICBuZXdwaS0+dHlwZXNbal0ubnVtRW50cmllcyA9IGNudDsKLSAgICAgICAgdGhlbWVfZW50cnkqIHRlID0gcGktPnR5cGVzW2pdLmVudHJpZXM7Ci0gICAgICAgIGlmICh0ZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICB0aGVtZV9lbnRyeSogbmV3dGUgPSAodGhlbWVfZW50cnkqKW1hbGxvYyhjbnQqc2l6ZW9mKHRoZW1lX2VudHJ5KSk7Ci0gICAgICAgICAgICBuZXdwaS0+dHlwZXNbal0uZW50cmllcyA9IG5ld3RlOwotICAgICAgICAgICAgbWVtY3B5KG5ld3RlLCB0ZSwgY250KnNpemVvZih0aGVtZV9lbnRyeSkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbmV3cGktPnR5cGVzW2pdLmVudHJpZXMgPSBOVUxMOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBuZXdwaTsKLX0KLQotc3RhdHVzX3QgUmVzVGFibGU6OlRoZW1lOjphcHBseVN0eWxlKHVpbnQzMl90IHJlc0lELCBib29sIGZvcmNlKQotewotICAgIGNvbnN0IGJhZ19lbnRyeSogYmFnOwotICAgIHVpbnQzMl90IGJhZ1R5cGVTcGVjRmxhZ3MgPSAwOwotICAgIG1UYWJsZS5sb2NrKCk7Ci0gICAgY29uc3Qgc3NpemVfdCBOID0gbVRhYmxlLmdldEJhZ0xvY2tlZChyZXNJRCwgJmJhZywgJmJhZ1R5cGVTcGVjRmxhZ3MpOwotICAgIFRBQkxFX05PSVNZKEFMT0dWKCJBcHBseWluZyBzdHlsZSAweCUwOHggdG8gdGhlbWUgJXAsIGNvdW50PSVkIiwgcmVzSUQsIHRoaXMsIE4pKTsKLSAgICBpZiAoTiA8IDApIHsKLSAgICAgICAgbVRhYmxlLnVubG9jaygpOwotICAgICAgICByZXR1cm4gTjsKLSAgICB9Ci0KLSAgICB1aW50MzJfdCBjdXJQYWNrYWdlID0gMHhmZmZmZmZmZjsKLSAgICBzc2l6ZV90IGN1clBhY2thZ2VJbmRleCA9IDA7Ci0gICAgcGFja2FnZV9pbmZvKiBjdXJQSSA9IE5VTEw7Ci0gICAgdWludDMyX3QgY3VyVHlwZSA9IDB4ZmZmZmZmZmY7Ci0gICAgc2l6ZV90IG51bUVudHJpZXMgPSAwOwotICAgIHRoZW1lX2VudHJ5KiBjdXJFbnRyaWVzID0gTlVMTDsKLQotICAgIGNvbnN0IGJhZ19lbnRyeSogZW5kID0gYmFnICsgTjsKLSAgICB3aGlsZSAoYmFnIDwgZW5kKSB7Ci0gICAgICAgIGNvbnN0IHVpbnQzMl90IGF0dHJSZXMgPSBiYWctPm1hcC5uYW1lLmlkZW50OwotICAgICAgICBjb25zdCB1aW50MzJfdCBwID0gUmVzX0dFVFBBQ0tBR0UoYXR0clJlcyk7Ci0gICAgICAgIGNvbnN0IHVpbnQzMl90IHQgPSBSZXNfR0VUVFlQRShhdHRyUmVzKTsKLSAgICAgICAgY29uc3QgdWludDMyX3QgZSA9IFJlc19HRVRFTlRSWShhdHRyUmVzKTsKLQotICAgICAgICBpZiAoY3VyUGFja2FnZSAhPSBwKSB7Ci0gICAgICAgICAgICBjb25zdCBzc2l6ZV90IHBpZHggPSBtVGFibGUuZ2V0UmVzb3VyY2VQYWNrYWdlSW5kZXgoYXR0clJlcyk7Ci0gICAgICAgICAgICBpZiAocGlkeCA8IDApIHsKLSAgICAgICAgICAgICAgICBBTE9HRSgiU3R5bGUgY29udGFpbnMga2V5IHdpdGggYmFkIHBhY2thZ2U6IDB4JTA4eFxuIiwgYXR0clJlcyk7Ci0gICAgICAgICAgICAgICAgYmFnKys7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjdXJQYWNrYWdlID0gcDsKLSAgICAgICAgICAgIGN1clBhY2thZ2VJbmRleCA9IHBpZHg7Ci0gICAgICAgICAgICBjdXJQSSA9IG1QYWNrYWdlc1twaWR4XTsKLSAgICAgICAgICAgIGlmIChjdXJQSSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgUGFja2FnZUdyb3VwKiBjb25zdCBncnAgPSBtVGFibGUubVBhY2thZ2VHcm91cHNbcGlkeF07Ci0gICAgICAgICAgICAgICAgaW50IGNudCA9IGdycC0+dHlwZUNvdW50OwotICAgICAgICAgICAgICAgIGN1clBJID0gKHBhY2thZ2VfaW5mbyopbWFsbG9jKAotICAgICAgICAgICAgICAgICAgICBzaXplb2YocGFja2FnZV9pbmZvKSArIChjbnQqc2l6ZW9mKHR5cGVfaW5mbykpKTsKLSAgICAgICAgICAgICAgICBjdXJQSS0+bnVtVHlwZXMgPSBjbnQ7Ci0gICAgICAgICAgICAgICAgbWVtc2V0KGN1clBJLT50eXBlcywgMCwgY250KnNpemVvZih0eXBlX2luZm8pKTsKLSAgICAgICAgICAgICAgICBtUGFja2FnZXNbcGlkeF0gPSBjdXJQSTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGN1clR5cGUgPSAweGZmZmZmZmZmOwotICAgICAgICB9Ci0gICAgICAgIGlmIChjdXJUeXBlICE9IHQpIHsKLSAgICAgICAgICAgIGlmICh0ID49IGN1clBJLT5udW1UeXBlcykgewotICAgICAgICAgICAgICAgIEFMT0dFKCJTdHlsZSBjb250YWlucyBrZXkgd2l0aCBiYWQgdHlwZTogMHglMDh4XG4iLCBhdHRyUmVzKTsKLSAgICAgICAgICAgICAgICBiYWcrKzsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGN1clR5cGUgPSB0OwotICAgICAgICAgICAgY3VyRW50cmllcyA9IGN1clBJLT50eXBlc1t0XS5lbnRyaWVzOwotICAgICAgICAgICAgaWYgKGN1ckVudHJpZXMgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFBhY2thZ2VHcm91cCogY29uc3QgZ3JwID0gbVRhYmxlLm1QYWNrYWdlR3JvdXBzW2N1clBhY2thZ2VJbmRleF07Ci0gICAgICAgICAgICAgICAgY29uc3QgVHlwZSogdHlwZSA9IGdycC0+cGFja2FnZXNbMF0tPmdldFR5cGUodCk7Ci0gICAgICAgICAgICAgICAgaW50IGNudCA9IHR5cGUgIT0gTlVMTCA/IHR5cGUtPmVudHJ5Q291bnQgOiAwOwotICAgICAgICAgICAgICAgIGN1ckVudHJpZXMgPSAodGhlbWVfZW50cnkqKW1hbGxvYyhjbnQqc2l6ZW9mKHRoZW1lX2VudHJ5KSk7Ci0gICAgICAgICAgICAgICAgbWVtc2V0KGN1ckVudHJpZXMsIFJlc192YWx1ZTo6VFlQRV9OVUxMLCBjbnQqc2l6ZW9mKHRoZW1lX2VudHJ5KSk7Ci0gICAgICAgICAgICAgICAgY3VyUEktPnR5cGVzW3RdLm51bUVudHJpZXMgPSBjbnQ7Ci0gICAgICAgICAgICAgICAgY3VyUEktPnR5cGVzW3RdLmVudHJpZXMgPSBjdXJFbnRyaWVzOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbnVtRW50cmllcyA9IGN1clBJLT50eXBlc1t0XS5udW1FbnRyaWVzOwotICAgICAgICB9Ci0gICAgICAgIGlmIChlID49IG51bUVudHJpZXMpIHsKLSAgICAgICAgICAgIEFMT0dFKCJTdHlsZSBjb250YWlucyBrZXkgd2l0aCBiYWQgZW50cnk6IDB4JTA4eFxuIiwgYXR0clJlcyk7Ci0gICAgICAgICAgICBiYWcrKzsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIHRoZW1lX2VudHJ5KiBjdXJFbnRyeSA9IGN1ckVudHJpZXMgKyBlOwotICAgICAgICBUQUJMRV9OT0lTWShBTE9HVigiQXR0ciAweCUwOHg6IHR5cGU9MHgleCwgZGF0YT0weCUwOHg7IGN1clR5cGU9MHgleCIsCi0gICAgICAgICAgICAgICAgICAgYXR0clJlcywgYmFnLT5tYXAudmFsdWUuZGF0YVR5cGUsIGJhZy0+bWFwLnZhbHVlLmRhdGEsCi0gICAgICAgICAgICAgY3VyRW50cnktPnZhbHVlLmRhdGFUeXBlKSk7Ci0gICAgICAgIGlmIChmb3JjZSB8fCBjdXJFbnRyeS0+dmFsdWUuZGF0YVR5cGUgPT0gUmVzX3ZhbHVlOjpUWVBFX05VTEwpIHsKLSAgICAgICAgICAgIGN1ckVudHJ5LT5zdHJpbmdCbG9jayA9IGJhZy0+c3RyaW5nQmxvY2s7Ci0gICAgICAgICAgICBjdXJFbnRyeS0+dHlwZVNwZWNGbGFncyB8PSBiYWdUeXBlU3BlY0ZsYWdzOwotICAgICAgICAgICAgY3VyRW50cnktPnZhbHVlID0gYmFnLT5tYXAudmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICBiYWcrKzsKLSAgICB9Ci0KLSAgICBtVGFibGUudW5sb2NrKCk7Ci0KLSAgICAvL0FMT0dJKCJBcHBseWluZyBzdHlsZSAweCUwOHggKGZvcmNlPSVkKSAgdGhlbWUgJXAuLi5cbiIsIHJlc0lELCBmb3JjZSwgdGhpcyk7Ci0gICAgLy9kdW1wVG9Mb2coKTsKLSAgICAKLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXR1c190IFJlc1RhYmxlOjpUaGVtZTo6c2V0VG8oY29uc3QgVGhlbWUmIG90aGVyKQotewotICAgIC8vQUxPR0koIlNldHRpbmcgdGhlbWUgJXAgZnJvbSB0aGVtZSAlcC4uLlxuIiwgdGhpcywgJm90aGVyKTsKLSAgICAvL2R1bXBUb0xvZygpOwotICAgIC8vb3RoZXIuZHVtcFRvTG9nKCk7Ci0gICAgCi0gICAgaWYgKCZtVGFibGUgPT0gJm90aGVyLm1UYWJsZSkgewotICAgICAgICBmb3IgKHNpemVfdCBpPTA7IGk8UmVzX01BWFBBQ0tBR0U7IGkrKykgewotICAgICAgICAgICAgaWYgKG1QYWNrYWdlc1tpXSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgZnJlZV9wYWNrYWdlKG1QYWNrYWdlc1tpXSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAob3RoZXIubVBhY2thZ2VzW2ldICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBtUGFja2FnZXNbaV0gPSBjb3B5X3BhY2thZ2Uob3RoZXIubVBhY2thZ2VzW2ldKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbVBhY2thZ2VzW2ldID0gTlVMTDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEB0b2RvOiBuZWVkIHRvIHJlYWxseSBpbXBsZW1lbnQgdGhpcywgbm90IGp1c3QgY29weQotICAgICAgICAvLyB0aGUgc3lzdGVtIHBhY2thZ2UgKHdoaWNoIGlzIHN0aWxsIHdyb25nIGJlY2F1c2UgaXQgaXNuJ3QKLSAgICAgICAgLy8gZml4aW5nIHVwIHJlc291cmNlIHJlZmVyZW5jZXMpLgotICAgICAgICBmb3IgKHNpemVfdCBpPTA7IGk8UmVzX01BWFBBQ0tBR0U7IGkrKykgewotICAgICAgICAgICAgaWYgKG1QYWNrYWdlc1tpXSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgZnJlZV9wYWNrYWdlKG1QYWNrYWdlc1tpXSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaSA9PSAwICYmIG90aGVyLm1QYWNrYWdlc1tpXSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgbVBhY2thZ2VzW2ldID0gY29weV9wYWNrYWdlKG90aGVyLm1QYWNrYWdlc1tpXSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1QYWNrYWdlc1tpXSA9IE5VTEw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvL0FMT0dJKCJGaW5hbCB0aGVtZToiKTsKLSAgICAvL2R1bXBUb0xvZygpOwotICAgIAotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3NpemVfdCBSZXNUYWJsZTo6VGhlbWU6OmdldEF0dHJpYnV0ZSh1aW50MzJfdCByZXNJRCwgUmVzX3ZhbHVlKiBvdXRWYWx1ZSwKLSAgICAgICAgdWludDMyX3QqIG91dFR5cGVTcGVjRmxhZ3MpIGNvbnN0Ci17Ci0gICAgaW50IGNudCA9IDIwOwotCi0gICAgaWYgKG91dFR5cGVTcGVjRmxhZ3MgIT0gTlVMTCkgKm91dFR5cGVTcGVjRmxhZ3MgPSAwOwotICAgIAotICAgIGRvIHsKLSAgICAgICAgY29uc3Qgc3NpemVfdCBwID0gbVRhYmxlLmdldFJlc291cmNlUGFja2FnZUluZGV4KHJlc0lEKTsKLSAgICAgICAgY29uc3QgdWludDMyX3QgdCA9IFJlc19HRVRUWVBFKHJlc0lEKTsKLSAgICAgICAgY29uc3QgdWludDMyX3QgZSA9IFJlc19HRVRFTlRSWShyZXNJRCk7Ci0KLSAgICAgICAgVEFCTEVfVEhFTUUoQUxPR0koIkxvb2tpbmcgdXAgYXR0ciAweCUwOHggaW4gdGhlbWUgJXAiLCByZXNJRCwgdGhpcykpOwotCi0gICAgICAgIGlmIChwID49IDApIHsKLSAgICAgICAgICAgIGNvbnN0IHBhY2thZ2VfaW5mbyogY29uc3QgcGkgPSBtUGFja2FnZXNbcF07Ci0gICAgICAgICAgICBUQUJMRV9USEVNRShBTE9HSSgiRm91bmQgcGFja2FnZTogJXAiLCBwaSkpOwotICAgICAgICAgICAgaWYgKHBpICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBUQUJMRV9USEVNRShBTE9HSSgiRGVzaXJlZCB0eXBlIGluZGV4IGlzICVsZCBpbiBhdmFpbCAlZCIsIHQsIHBpLT5udW1UeXBlcykpOwotICAgICAgICAgICAgICAgIGlmICh0IDwgcGktPm51bVR5cGVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVfaW5mbyYgdGkgPSBwaS0+dHlwZXNbdF07Ci0gICAgICAgICAgICAgICAgICAgIFRBQkxFX1RIRU1FKEFMT0dJKCJEZXNpcmVkIGVudHJ5IGluZGV4IGlzICVsZCBpbiBhdmFpbCAlZCIsIGUsIHRpLm51bUVudHJpZXMpKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGUgPCB0aS5udW1FbnRyaWVzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGVtZV9lbnRyeSYgdGUgPSB0aS5lbnRyaWVzW2VdOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG91dFR5cGVTcGVjRmxhZ3MgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvdXRUeXBlU3BlY0ZsYWdzIHw9IHRlLnR5cGVTcGVjRmxhZ3M7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBUQUJMRV9USEVNRShBTE9HSSgiVGhlbWUgdmFsdWU6IHR5cGU9MHgleCwgZGF0YT0weCUwOHgiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZS52YWx1ZS5kYXRhVHlwZSwgdGUudmFsdWUuZGF0YSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCB0eXBlID0gdGUudmFsdWUuZGF0YVR5cGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBSZXNfdmFsdWU6OlRZUEVfQVRUUklCVVRFKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNudCA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY250LS07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc0lEID0gdGUudmFsdWUuZGF0YTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFMT0dXKCJUb28gbWFueSBhdHRyaWJ1dGUgcmVmZXJlbmNlcywgc3RvcHBlZCBhdDogMHglMDh4XG4iLCByZXNJRCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJBRF9JTkRFWDsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSAhPSBSZXNfdmFsdWU6OlRZUEVfTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvdXRWYWx1ZSA9IHRlLnZhbHVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZS5zdHJpbmdCbG9jazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBCQURfSU5ERVg7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0KLSAgICB9IHdoaWxlICh0cnVlKTsKLQotICAgIHJldHVybiBCQURfSU5ERVg7Ci19Ci0KLXNzaXplX3QgUmVzVGFibGU6OlRoZW1lOjpyZXNvbHZlQXR0cmlidXRlUmVmZXJlbmNlKFJlc192YWx1ZSogaW5PdXRWYWx1ZSwKLSAgICAgICAgc3NpemVfdCBibG9ja0luZGV4LCB1aW50MzJfdCogb3V0TGFzdFJlZiwKLSAgICAgICAgdWludDMyX3QqIGlub3V0VHlwZVNwZWNGbGFncywgUmVzVGFibGVfY29uZmlnKiBpbm91dENvbmZpZykgY29uc3QKLXsKLSAgICAvL3ByaW50ZigiUmVzb2x2aW5nIHR5cGU9MHgleFxuIiwgaW5PdXRWYWx1ZS0+ZGF0YVR5cGUpOwotICAgIGlmIChpbk91dFZhbHVlLT5kYXRhVHlwZSA9PSBSZXNfdmFsdWU6OlRZUEVfQVRUUklCVVRFKSB7Ci0gICAgICAgIHVpbnQzMl90IG5ld1R5cGVTcGVjRmxhZ3M7Ci0gICAgICAgIGJsb2NrSW5kZXggPSBnZXRBdHRyaWJ1dGUoaW5PdXRWYWx1ZS0+ZGF0YSwgaW5PdXRWYWx1ZSwgJm5ld1R5cGVTcGVjRmxhZ3MpOwotICAgICAgICBUQUJMRV9USEVNRShBTE9HSSgiUmVzb2x2aW5nIGF0dHIgcmVmZXJlbmNlOiBibG9ja0luZGV4PSVkLCB0eXBlPTB4JXgsIGRhdGE9JXBcbiIsCi0gICAgICAgICAgICAgKGludClibG9ja0luZGV4LCAoaW50KWluT3V0VmFsdWUtPmRhdGFUeXBlLCAodm9pZCopaW5PdXRWYWx1ZS0+ZGF0YSkpOwotICAgICAgICBpZiAoaW5vdXRUeXBlU3BlY0ZsYWdzICE9IE5VTEwpICppbm91dFR5cGVTcGVjRmxhZ3MgfD0gbmV3VHlwZVNwZWNGbGFnczsKLSAgICAgICAgLy9wcmludGYoIlJldHJpZXZlZCBhdHRyaWJ1dGUgbmV3IHR5cGU9MHgleFxuIiwgaW5PdXRWYWx1ZS0+ZGF0YVR5cGUpOwotICAgICAgICBpZiAoYmxvY2tJbmRleCA8IDApIHsKLSAgICAgICAgICAgIHJldHVybiBibG9ja0luZGV4OwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBtVGFibGUucmVzb2x2ZVJlZmVyZW5jZShpbk91dFZhbHVlLCBibG9ja0luZGV4LCBvdXRMYXN0UmVmLAotICAgICAgICAgICAgaW5vdXRUeXBlU3BlY0ZsYWdzLCBpbm91dENvbmZpZyk7Ci19Ci0KLXZvaWQgUmVzVGFibGU6OlRoZW1lOjpkdW1wVG9Mb2coKSBjb25zdAotewotICAgIEFMT0dJKCJUaGVtZSAlcDpcbiIsIHRoaXMpOwotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxSZXNfTUFYUEFDS0FHRTsgaSsrKSB7Ci0gICAgICAgIHBhY2thZ2VfaW5mbyogcGkgPSBtUGFja2FnZXNbaV07Ci0gICAgICAgIGlmIChwaSA9PSBOVUxMKSBjb250aW51ZTsKLSAgICAgICAgCi0gICAgICAgIEFMT0dJKCIgIFBhY2thZ2UgIzB4JTAyeDpcbiIsIChpbnQpKGkrMSkpOwotICAgICAgICBmb3IgKHNpemVfdCBqPTA7IGo8cGktPm51bVR5cGVzOyBqKyspIHsKLSAgICAgICAgICAgIHR5cGVfaW5mbyYgdGkgPSBwaS0+dHlwZXNbal07Ci0gICAgICAgICAgICBpZiAodGkubnVtRW50cmllcyA9PSAwKSBjb250aW51ZTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgQUxPR0koIiAgICBUeXBlICMweCUwMng6XG4iLCAoaW50KShqKzEpKTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGs9MDsgazx0aS5udW1FbnRyaWVzOyBrKyspIHsKLSAgICAgICAgICAgICAgICB0aGVtZV9lbnRyeSYgdGUgPSB0aS5lbnRyaWVzW2tdOwotICAgICAgICAgICAgICAgIGlmICh0ZS52YWx1ZS5kYXRhVHlwZSA9PSBSZXNfdmFsdWU6OlRZUEVfTlVMTCkgY29udGludWU7Ci0gICAgICAgICAgICAgICAgQUxPR0koIiAgICAgIDB4JTA4eDogdD0weCV4LCBkPTB4JTA4eCAoYmxvY2s9JWQpXG4iLAotICAgICAgICAgICAgICAgICAgICAgKGludClSZXNfTUFLRUlEKGksIGosIGspLAotICAgICAgICAgICAgICAgICAgICAgdGUudmFsdWUuZGF0YVR5cGUsIChpbnQpdGUudmFsdWUuZGF0YSwgKGludCl0ZS5zdHJpbmdCbG9jayk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLVJlc1RhYmxlOjpSZXNUYWJsZSgpCi0gICAgOiBtRXJyb3IoTk9fSU5JVCkKLXsKLSAgICBtZW1zZXQoJm1QYXJhbXMsIDAsIHNpemVvZihtUGFyYW1zKSk7Ci0gICAgbWVtc2V0KG1QYWNrYWdlTWFwLCAwLCBzaXplb2YobVBhY2thZ2VNYXApKTsKLSAgICAvL0FMT0dJKCJDcmVhdGluZyBSZXNUYWJsZSAlcFxuIiwgdGhpcyk7Ci19Ci0KLVJlc1RhYmxlOjpSZXNUYWJsZShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSwgdm9pZCogY29va2llLCBib29sIGNvcHlEYXRhKQotICAgIDogbUVycm9yKE5PX0lOSVQpCi17Ci0gICAgbWVtc2V0KCZtUGFyYW1zLCAwLCBzaXplb2YobVBhcmFtcykpOwotICAgIG1lbXNldChtUGFja2FnZU1hcCwgMCwgc2l6ZW9mKG1QYWNrYWdlTWFwKSk7Ci0gICAgYWRkKGRhdGEsIHNpemUsIGNvb2tpZSwgY29weURhdGEpOwotICAgIExPR19GQVRBTF9JRihtRXJyb3IgIT0gTk9fRVJST1IsICJFcnJvciBwYXJzaW5nIHJlc291cmNlIHRhYmxlIik7Ci0gICAgLy9BTE9HSSgiQ3JlYXRpbmcgUmVzVGFibGUgJXBcbiIsIHRoaXMpOwotfQotCi1SZXNUYWJsZTo6flJlc1RhYmxlKCkKLXsKLSAgICAvL0FMT0dJKCJEZXN0cm95aW5nIFJlc1RhYmxlIGluICVwXG4iLCB0aGlzKTsKLSAgICB1bmluaXQoKTsKLX0KLQotaW5saW5lIHNzaXplX3QgUmVzVGFibGU6OmdldFJlc291cmNlUGFja2FnZUluZGV4KHVpbnQzMl90IHJlc0lEKSBjb25zdAotewotICAgIHJldHVybiAoKHNzaXplX3QpbVBhY2thZ2VNYXBbUmVzX0dFVFBBQ0tBR0UocmVzSUQpKzFdKS0xOwotfQotCi1zdGF0dXNfdCBSZXNUYWJsZTo6YWRkKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBzaXplLCB2b2lkKiBjb29raWUsIGJvb2wgY29weURhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQqIGlkbWFwKQotewotICAgIHJldHVybiBhZGQoZGF0YSwgc2l6ZSwgY29va2llLCBOVUxMLCBjb3B5RGF0YSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBBc3NldCo+KGlkbWFwKSk7Ci19Ci0KLXN0YXR1c190IFJlc1RhYmxlOjphZGQoQXNzZXQqIGFzc2V0LCB2b2lkKiBjb29raWUsIGJvb2wgY29weURhdGEsIGNvbnN0IHZvaWQqIGlkbWFwKQotewotICAgIGNvbnN0IHZvaWQqIGRhdGEgPSBhc3NldC0+Z2V0QnVmZmVyKHRydWUpOwotICAgIGlmIChkYXRhID09IE5VTEwpIHsKLSAgICAgICAgQUxPR1coIlVuYWJsZSB0byBnZXQgYnVmZmVyIG9mIHJlc291cmNlIGFzc2V0IGZpbGUiKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotICAgIHNpemVfdCBzaXplID0gKHNpemVfdClhc3NldC0+Z2V0TGVuZ3RoKCk7Ci0gICAgcmV0dXJuIGFkZChkYXRhLCBzaXplLCBjb29raWUsIGFzc2V0LCBjb3B5RGF0YSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBBc3NldCo+KGlkbWFwKSk7Ci19Ci0KLXN0YXR1c190IFJlc1RhYmxlOjphZGQoUmVzVGFibGUqIHNyYykKLXsKLSAgICBtRXJyb3IgPSBzcmMtPm1FcnJvcjsKLSAgICAKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8c3JjLT5tSGVhZGVycy5zaXplKCk7IGkrKykgewotICAgICAgICBtSGVhZGVycy5hZGQoc3JjLT5tSGVhZGVyc1tpXSk7Ci0gICAgfQotICAgIAotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxzcmMtPm1QYWNrYWdlR3JvdXBzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIFBhY2thZ2VHcm91cCogc3JjUGcgPSBzcmMtPm1QYWNrYWdlR3JvdXBzW2ldOwotICAgICAgICBQYWNrYWdlR3JvdXAqIHBnID0gbmV3IFBhY2thZ2VHcm91cCh0aGlzLCBzcmNQZy0+bmFtZSwgc3JjUGctPmlkKTsKLSAgICAgICAgZm9yIChzaXplX3Qgaj0wOyBqPHNyY1BnLT5wYWNrYWdlcy5zaXplKCk7IGorKykgewotICAgICAgICAgICAgcGctPnBhY2thZ2VzLmFkZChzcmNQZy0+cGFja2FnZXNbal0pOwotICAgICAgICB9Ci0gICAgICAgIHBnLT5iYXNlUGFja2FnZSA9IHNyY1BnLT5iYXNlUGFja2FnZTsKLSAgICAgICAgcGctPnR5cGVDb3VudCA9IHNyY1BnLT50eXBlQ291bnQ7Ci0gICAgICAgIG1QYWNrYWdlR3JvdXBzLmFkZChwZyk7Ci0gICAgfQotICAgIAotICAgIG1lbWNweShtUGFja2FnZU1hcCwgc3JjLT5tUGFja2FnZU1hcCwgc2l6ZW9mKG1QYWNrYWdlTWFwKSk7Ci0gICAgCi0gICAgcmV0dXJuIG1FcnJvcjsKLX0KLQotc3RhdHVzX3QgUmVzVGFibGU6OmFkZChjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSwgdm9pZCogY29va2llLAotICAgICAgICAgICAgICAgICAgICAgICBBc3NldCogYXNzZXQsIGJvb2wgY29weURhdGEsIGNvbnN0IEFzc2V0KiBpZG1hcCkKLXsKLSAgICBpZiAoIWRhdGEpIHJldHVybiBOT19FUlJPUjsKLSAgICBIZWFkZXIqIGhlYWRlciA9IG5ldyBIZWFkZXIodGhpcyk7Ci0gICAgaGVhZGVyLT5pbmRleCA9IG1IZWFkZXJzLnNpemUoKTsKLSAgICBoZWFkZXItPmNvb2tpZSA9IGNvb2tpZTsKLSAgICBpZiAoaWRtYXAgIT0gTlVMTCkgewotICAgICAgICBjb25zdCBzaXplX3QgaWRtYXBfc2l6ZSA9IGlkbWFwLT5nZXRMZW5ndGgoKTsKLSAgICAgICAgY29uc3Qgdm9pZCogaWRtYXBfZGF0YSA9IGNvbnN0X2Nhc3Q8QXNzZXQqPihpZG1hcCktPmdldEJ1ZmZlcih0cnVlKTsKLSAgICAgICAgaGVhZGVyLT5yZXNvdXJjZUlETWFwID0gKHVpbnQzMl90KiltYWxsb2MoaWRtYXBfc2l6ZSk7Ci0gICAgICAgIGlmIChoZWFkZXItPnJlc291cmNlSURNYXAgPT0gTlVMTCkgewotICAgICAgICAgICAgZGVsZXRlIGhlYWRlcjsKLSAgICAgICAgICAgIHJldHVybiAobUVycm9yID0gTk9fTUVNT1JZKTsKLSAgICAgICAgfQotICAgICAgICBtZW1jcHkoKHZvaWQqKWhlYWRlci0+cmVzb3VyY2VJRE1hcCwgaWRtYXBfZGF0YSwgaWRtYXBfc2l6ZSk7Ci0gICAgICAgIGhlYWRlci0+cmVzb3VyY2VJRE1hcFNpemUgPSBpZG1hcF9zaXplOwotICAgIH0KLSAgICBtSGVhZGVycy5hZGQoaGVhZGVyKTsKLQotICAgIGNvbnN0IGJvb2wgbm90RGV2aWNlRW5kaWFuID0gaHRvZHMoMHhmMCkgIT0gMHhmMDsKLQotICAgIExPQURfVEFCTEVfTk9JU1koCi0gICAgICAgIEFMT0dWKCJBZGRpbmcgcmVzb3VyY2VzIHRvIFJlc1RhYmxlOiBkYXRhPSVwLCBzaXplPTB4JXgsIGNvb2tpZT0lcCwgYXNzZXQ9JXAsIGNvcHk9JWQgIgotICAgICAgICAgICAgICJpZG1hcD0lcFxuIiwgZGF0YSwgc2l6ZSwgY29va2llLCBhc3NldCwgY29weURhdGEsIGlkbWFwKSk7Ci0gICAgCi0gICAgaWYgKGNvcHlEYXRhIHx8IG5vdERldmljZUVuZGlhbikgewotICAgICAgICBoZWFkZXItPm93bmVkRGF0YSA9IG1hbGxvYyhzaXplKTsKLSAgICAgICAgaWYgKGhlYWRlci0+b3duZWREYXRhID09IE5VTEwpIHsKLSAgICAgICAgICAgIHJldHVybiAobUVycm9yPU5PX01FTU9SWSk7Ci0gICAgICAgIH0KLSAgICAgICAgbWVtY3B5KGhlYWRlci0+b3duZWREYXRhLCBkYXRhLCBzaXplKTsKLSAgICAgICAgZGF0YSA9IGhlYWRlci0+b3duZWREYXRhOwotICAgIH0KLQotICAgIGhlYWRlci0+aGVhZGVyID0gKGNvbnN0IFJlc1RhYmxlX2hlYWRlciopZGF0YTsKLSAgICBoZWFkZXItPnNpemUgPSBkdG9obChoZWFkZXItPmhlYWRlci0+aGVhZGVyLnNpemUpOwotICAgIC8vQUxPR0koIkdvdCBzaXplIDB4JXgsIGFnYWluIHNpemUgMHgleCwgcmF3IHNpemUgMHgleFxuIiwgaGVhZGVyLT5zaXplLAotICAgIC8vICAgICBkdG9obChoZWFkZXItPmhlYWRlci0+aGVhZGVyLnNpemUpLCBoZWFkZXItPmhlYWRlci0+aGVhZGVyLnNpemUpOwotICAgIExPQURfVEFCTEVfTk9JU1koQUxPR1YoIkxvYWRpbmcgUmVzVGFibGUgQCVwOlxuIiwgaGVhZGVyLT5oZWFkZXIpKTsKLSAgICBMT0FEX1RBQkxFX05PSVNZKHByaW50SGV4RGF0YSgyLCBoZWFkZXItPmhlYWRlciwgaGVhZGVyLT5zaXplIDwgMjU2ID8gaGVhZGVyLT5zaXplIDogMjU2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LCAxNiwgMCwgZmFsc2UsIHByaW50VG9Mb2dGdW5jKSk7Ci0gICAgaWYgKGR0b2hzKGhlYWRlci0+aGVhZGVyLT5oZWFkZXIuaGVhZGVyU2l6ZSkgPiBoZWFkZXItPnNpemUKLSAgICAgICAgICAgIHx8IGhlYWRlci0+c2l6ZSA+IHNpemUpIHsKLSAgICAgICAgQUxPR1coIkJhZCByZXNvdXJjZSB0YWJsZTogaGVhZGVyIHNpemUgMHgleCBvciB0b3RhbCBzaXplIDB4JXggaXMgbGFyZ2VyIHRoYW4gZGF0YSBzaXplIDB4JXhcbiIsCi0gICAgICAgICAgICAgKGludClkdG9ocyhoZWFkZXItPmhlYWRlci0+aGVhZGVyLmhlYWRlclNpemUpLAotICAgICAgICAgICAgIChpbnQpaGVhZGVyLT5zaXplLCAoaW50KXNpemUpOwotICAgICAgICByZXR1cm4gKG1FcnJvcj1CQURfVFlQRSk7Ci0gICAgfQotICAgIGlmICgoKGR0b2hzKGhlYWRlci0+aGVhZGVyLT5oZWFkZXIuaGVhZGVyU2l6ZSl8aGVhZGVyLT5zaXplKSYweDMpICE9IDApIHsKLSAgICAgICAgQUxPR1coIkJhZCByZXNvdXJjZSB0YWJsZTogaGVhZGVyIHNpemUgMHgleCBvciB0b3RhbCBzaXplIDB4JXggaXMgbm90IG9uIGFuIGludGVnZXIgYm91bmRhcnlcbiIsCi0gICAgICAgICAgICAgKGludClkdG9ocyhoZWFkZXItPmhlYWRlci0+aGVhZGVyLmhlYWRlclNpemUpLAotICAgICAgICAgICAgIChpbnQpaGVhZGVyLT5zaXplKTsKLSAgICAgICAgcmV0dXJuIChtRXJyb3I9QkFEX1RZUEUpOwotICAgIH0KLSAgICBoZWFkZXItPmRhdGFFbmQgPSAoKGNvbnN0IHVpbnQ4X3QqKWhlYWRlci0+aGVhZGVyKSArIGhlYWRlci0+c2l6ZTsKLQotICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBhbGwgY2h1bmtzLgotICAgIHNpemVfdCBjdXJQYWNrYWdlID0gMDsKLQotICAgIGNvbnN0IFJlc0NodW5rX2hlYWRlciogY2h1bmsgPQotICAgICAgICAoY29uc3QgUmVzQ2h1bmtfaGVhZGVyKikoKChjb25zdCB1aW50OF90KiloZWFkZXItPmhlYWRlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZHRvaHMoaGVhZGVyLT5oZWFkZXItPmhlYWRlci5oZWFkZXJTaXplKSk7Ci0gICAgd2hpbGUgKCgoY29uc3QgdWludDhfdCopY2h1bmspIDw9IChoZWFkZXItPmRhdGFFbmQtc2l6ZW9mKFJlc0NodW5rX2hlYWRlcikpICYmCi0gICAgICAgICAgICgoY29uc3QgdWludDhfdCopY2h1bmspIDw9IChoZWFkZXItPmRhdGFFbmQtZHRvaGwoY2h1bmstPnNpemUpKSkgewotICAgICAgICBzdGF0dXNfdCBlcnIgPSB2YWxpZGF0ZV9jaHVuayhjaHVuaywgc2l6ZW9mKFJlc0NodW5rX2hlYWRlciksIGhlYWRlci0+ZGF0YUVuZCwgIlJlc1RhYmxlIik7Ci0gICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIHJldHVybiAobUVycm9yPWVycik7Ci0gICAgICAgIH0KLSAgICAgICAgVEFCTEVfTk9JU1koQUxPR1YoIkNodW5rOiB0eXBlPTB4JXgsIGhlYWRlclNpemU9MHgleCwgc2l6ZT0weCV4LCBwb3M9JXBcbiIsCi0gICAgICAgICAgICAgICAgICAgICBkdG9ocyhjaHVuay0+dHlwZSksIGR0b2hzKGNodW5rLT5oZWFkZXJTaXplKSwgZHRvaGwoY2h1bmstPnNpemUpLAotICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKSgoKGNvbnN0IHVpbnQ4X3QqKWNodW5rKSAtICgoY29uc3QgdWludDhfdCopaGVhZGVyLT5oZWFkZXIpKSkpOwotICAgICAgICBjb25zdCBzaXplX3QgY3NpemUgPSBkdG9obChjaHVuay0+c2l6ZSk7Ci0gICAgICAgIGNvbnN0IHVpbnQxNl90IGN0eXBlID0gZHRvaHMoY2h1bmstPnR5cGUpOwotICAgICAgICBpZiAoY3R5cGUgPT0gUkVTX1NUUklOR19QT09MX1RZUEUpIHsKLSAgICAgICAgICAgIGlmIChoZWFkZXItPnZhbHVlcy5nZXRFcnJvcigpICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgLy8gT25seSB1c2UgdGhlIGZpcnN0IHN0cmluZyBjaHVuazsgaWdub3JlIGFueSBvdGhlcnMgdGhhdAotICAgICAgICAgICAgICAgIC8vIG1heSBhcHBlYXIuCi0gICAgICAgICAgICAgICAgc3RhdHVzX3QgZXJyID0gaGVhZGVyLT52YWx1ZXMuc2V0VG8oY2h1bmssIGNzaXplKTsKLSAgICAgICAgICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAobUVycm9yPWVycik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBBTE9HVygiTXVsdGlwbGUgc3RyaW5nIGNodW5rcyBmb3VuZCBpbiByZXNvdXJjZSB0YWJsZS4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChjdHlwZSA9PSBSRVNfVEFCTEVfUEFDS0FHRV9UWVBFKSB7Ci0gICAgICAgICAgICBpZiAoY3VyUGFja2FnZSA+PSBkdG9obChoZWFkZXItPmhlYWRlci0+cGFja2FnZUNvdW50KSkgewotICAgICAgICAgICAgICAgIEFMT0dXKCJNb3JlIHBhY2thZ2UgY2h1bmtzIHdlcmUgZm91bmQgdGhhbiB0aGUgJWQgZGVjbGFyZWQgaW4gdGhlIGhlYWRlci4iLAotICAgICAgICAgICAgICAgICAgICAgZHRvaGwoaGVhZGVyLT5oZWFkZXItPnBhY2thZ2VDb3VudCkpOwotICAgICAgICAgICAgICAgIHJldHVybiAobUVycm9yPUJBRF9UWVBFKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHVpbnQzMl90IGlkbWFwX2lkID0gMDsKLSAgICAgICAgICAgIGlmIChpZG1hcCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgdWludDMyX3QgdG1wOwotICAgICAgICAgICAgICAgIGlmIChnZXRJZG1hcFBhY2thZ2VJZChoZWFkZXItPnJlc291cmNlSURNYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlci0+cmVzb3VyY2VJRE1hcFNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0bXApID09IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlkbWFwX2lkID0gdG1wOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChwYXJzZVBhY2thZ2UoKFJlc1RhYmxlX3BhY2thZ2UqKWNodW5rLCBoZWFkZXIsIGlkbWFwX2lkKSAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIHJldHVybiBtRXJyb3I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjdXJQYWNrYWdlKys7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBBTE9HVygiVW5rbm93biBjaHVuayB0eXBlICVwIGluIHRhYmxlIGF0ICVwLlxuIiwKLSAgICAgICAgICAgICAgICAgKHZvaWQqKShpbnQpKGN0eXBlKSwKLSAgICAgICAgICAgICAgICAgKHZvaWQqKSgoKGNvbnN0IHVpbnQ4X3QqKWNodW5rKSAtICgoY29uc3QgdWludDhfdCopaGVhZGVyLT5oZWFkZXIpKSk7Ci0gICAgICAgIH0KLSAgICAgICAgY2h1bmsgPSAoY29uc3QgUmVzQ2h1bmtfaGVhZGVyKikKLSAgICAgICAgICAgICgoKGNvbnN0IHVpbnQ4X3QqKWNodW5rKSArIGNzaXplKTsKLSAgICB9Ci0KLSAgICBpZiAoY3VyUGFja2FnZSA8IGR0b2hsKGhlYWRlci0+aGVhZGVyLT5wYWNrYWdlQ291bnQpKSB7Ci0gICAgICAgIEFMT0dXKCJGZXdlciBwYWNrYWdlIGNodW5rcyAoJWQpIHdlcmUgZm91bmQgdGhhbiB0aGUgJWQgZGVjbGFyZWQgaW4gdGhlIGhlYWRlci4iLAotICAgICAgICAgICAgIChpbnQpY3VyUGFja2FnZSwgZHRvaGwoaGVhZGVyLT5oZWFkZXItPnBhY2thZ2VDb3VudCkpOwotICAgICAgICByZXR1cm4gKG1FcnJvcj1CQURfVFlQRSk7Ci0gICAgfQotICAgIG1FcnJvciA9IGhlYWRlci0+dmFsdWVzLmdldEVycm9yKCk7Ci0gICAgaWYgKG1FcnJvciAhPSBOT19FUlJPUikgewotICAgICAgICBBTE9HVygiTm8gc3RyaW5nIHZhbHVlcyBmb3VuZCBpbiByZXNvdXJjZSB0YWJsZSEiKTsKLSAgICB9Ci0KLSAgICBUQUJMRV9OT0lTWShBTE9HVigiUmV0dXJuaW5nIGZyb20gYWRkIHdpdGggbUVycm9yPSVkXG4iLCBtRXJyb3IpKTsKLSAgICByZXR1cm4gbUVycm9yOwotfQotCi1zdGF0dXNfdCBSZXNUYWJsZTo6Z2V0RXJyb3IoKSBjb25zdAotewotICAgIHJldHVybiBtRXJyb3I7Ci19Ci0KLXZvaWQgUmVzVGFibGU6OnVuaW5pdCgpCi17Ci0gICAgbUVycm9yID0gTk9fSU5JVDsKLSAgICBzaXplX3QgTiA9IG1QYWNrYWdlR3JvdXBzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIFBhY2thZ2VHcm91cCogZyA9IG1QYWNrYWdlR3JvdXBzW2ldOwotICAgICAgICBkZWxldGUgZzsKLSAgICB9Ci0gICAgTiA9IG1IZWFkZXJzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIEhlYWRlciogaGVhZGVyID0gbUhlYWRlcnNbaV07Ci0gICAgICAgIGlmIChoZWFkZXItPm93bmVyID09IHRoaXMpIHsKLSAgICAgICAgICAgIGlmIChoZWFkZXItPm93bmVkRGF0YSkgewotICAgICAgICAgICAgICAgIGZyZWUoaGVhZGVyLT5vd25lZERhdGEpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZGVsZXRlIGhlYWRlcjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIG1QYWNrYWdlR3JvdXBzLmNsZWFyKCk7Ci0gICAgbUhlYWRlcnMuY2xlYXIoKTsKLX0KLQotYm9vbCBSZXNUYWJsZTo6Z2V0UmVzb3VyY2VOYW1lKHVpbnQzMl90IHJlc0lELCBib29sIGFsbG93VXRmOCwgcmVzb3VyY2VfbmFtZSogb3V0TmFtZSkgY29uc3QKLXsKLSAgICBpZiAobUVycm9yICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBjb25zdCBzc2l6ZV90IHAgPSBnZXRSZXNvdXJjZVBhY2thZ2VJbmRleChyZXNJRCk7Ci0gICAgY29uc3QgaW50IHQgPSBSZXNfR0VUVFlQRShyZXNJRCk7Ci0gICAgY29uc3QgaW50IGUgPSBSZXNfR0VURU5UUlkocmVzSUQpOwotCi0gICAgaWYgKHAgPCAwKSB7Ci0gICAgICAgIGlmIChSZXNfR0VUUEFDS0FHRShyZXNJRCkrMSA9PSAwKSB7Ci0gICAgICAgICAgICBBTE9HVygiTm8gcGFja2FnZSBpZGVudGlmaWVyIHdoZW4gZ2V0dGluZyBuYW1lIGZvciByZXNvdXJjZSBudW1iZXIgMHglMDh4IiwgcmVzSUQpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQUxPR1coIk5vIGtub3duIHBhY2thZ2Ugd2hlbiBnZXR0aW5nIG5hbWUgZm9yIHJlc291cmNlIG51bWJlciAweCUwOHgiLCByZXNJRCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAodCA8IDApIHsKLSAgICAgICAgQUxPR1coIk5vIHR5cGUgaWRlbnRpZmllciB3aGVuIGdldHRpbmcgbmFtZSBmb3IgcmVzb3VyY2UgbnVtYmVyIDB4JTA4eCIsIHJlc0lEKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGNvbnN0IFBhY2thZ2VHcm91cCogY29uc3QgZ3JwID0gbVBhY2thZ2VHcm91cHNbcF07Ci0gICAgaWYgKGdycCA9PSBOVUxMKSB7Ci0gICAgICAgIEFMT0dXKCJCYWQgaWRlbnRpZmllciB3aGVuIGdldHRpbmcgbmFtZSBmb3IgcmVzb3VyY2UgbnVtYmVyIDB4JTA4eCIsIHJlc0lEKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAoZ3JwLT5wYWNrYWdlcy5zaXplKCkgPiAwKSB7Ci0gICAgICAgIGNvbnN0IFBhY2thZ2UqIGNvbnN0IHBhY2thZ2UgPSBncnAtPnBhY2thZ2VzWzBdOwotCi0gICAgICAgIGNvbnN0IFJlc1RhYmxlX3R5cGUqIHR5cGU7Ci0gICAgICAgIGNvbnN0IFJlc1RhYmxlX2VudHJ5KiBlbnRyeTsKLSAgICAgICAgc3NpemVfdCBvZmZzZXQgPSBnZXRFbnRyeShwYWNrYWdlLCB0LCBlLCBOVUxMLCAmdHlwZSwgJmVudHJ5LCBOVUxMKTsKLSAgICAgICAgaWYgKG9mZnNldCA8PSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBvdXROYW1lLT5wYWNrYWdlID0gZ3JwLT5uYW1lLnN0cmluZygpOwotICAgICAgICBvdXROYW1lLT5wYWNrYWdlTGVuID0gZ3JwLT5uYW1lLnNpemUoKTsKLSAgICAgICAgaWYgKGFsbG93VXRmOCkgewotICAgICAgICAgICAgb3V0TmFtZS0+dHlwZTggPSBncnAtPmJhc2VQYWNrYWdlLT50eXBlU3RyaW5ncy5zdHJpbmc4QXQodCwgJm91dE5hbWUtPnR5cGVMZW4pOwotICAgICAgICAgICAgb3V0TmFtZS0+bmFtZTggPSBncnAtPmJhc2VQYWNrYWdlLT5rZXlTdHJpbmdzLnN0cmluZzhBdCgKLSAgICAgICAgICAgICAgICBkdG9obChlbnRyeS0+a2V5LmluZGV4KSwgJm91dE5hbWUtPm5hbWVMZW4pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgb3V0TmFtZS0+dHlwZTggPSBOVUxMOwotICAgICAgICAgICAgb3V0TmFtZS0+bmFtZTggPSBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIGlmIChvdXROYW1lLT50eXBlOCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBvdXROYW1lLT50eXBlID0gZ3JwLT5iYXNlUGFja2FnZS0+dHlwZVN0cmluZ3Muc3RyaW5nQXQodCwgJm91dE5hbWUtPnR5cGVMZW4pOwotICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIGJhZCBpbmRleCBmb3Igc29tZSByZWFzb24sIHdlIHNob3VsZCBhYm9ydC4KLSAgICAgICAgICAgIGlmIChvdXROYW1lLT50eXBlID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKG91dE5hbWUtPm5hbWU4ID09IE5VTEwpIHsKLSAgICAgICAgICAgIG91dE5hbWUtPm5hbWUgPSBncnAtPmJhc2VQYWNrYWdlLT5rZXlTdHJpbmdzLnN0cmluZ0F0KAotICAgICAgICAgICAgICAgIGR0b2hsKGVudHJ5LT5rZXkuaW5kZXgpLCAmb3V0TmFtZS0+bmFtZUxlbik7Ci0gICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgYmFkIGluZGV4IGZvciBzb21lIHJlYXNvbiwgd2Ugc2hvdWxkIGFib3J0LgotICAgICAgICAgICAgaWYgKG91dE5hbWUtPm5hbWUgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3NpemVfdCBSZXNUYWJsZTo6Z2V0UmVzb3VyY2UodWludDMyX3QgcmVzSUQsIFJlc192YWx1ZSogb3V0VmFsdWUsIGJvb2wgbWF5QmVCYWcsIHVpbnQxNl90IGRlbnNpdHksCi0gICAgICAgIHVpbnQzMl90KiBvdXRTcGVjRmxhZ3MsIFJlc1RhYmxlX2NvbmZpZyogb3V0Q29uZmlnKSBjb25zdAotewotICAgIGlmIChtRXJyb3IgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIG1FcnJvcjsKLSAgICB9Ci0KLSAgICBjb25zdCBzc2l6ZV90IHAgPSBnZXRSZXNvdXJjZVBhY2thZ2VJbmRleChyZXNJRCk7Ci0gICAgY29uc3QgaW50IHQgPSBSZXNfR0VUVFlQRShyZXNJRCk7Ci0gICAgY29uc3QgaW50IGUgPSBSZXNfR0VURU5UUlkocmVzSUQpOwotCi0gICAgaWYgKHAgPCAwKSB7Ci0gICAgICAgIGlmIChSZXNfR0VUUEFDS0FHRShyZXNJRCkrMSA9PSAwKSB7Ci0gICAgICAgICAgICBBTE9HVygiTm8gcGFja2FnZSBpZGVudGlmaWVyIHdoZW4gZ2V0dGluZyB2YWx1ZSBmb3IgcmVzb3VyY2UgbnVtYmVyIDB4JTA4eCIsIHJlc0lEKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFMT0dXKCJObyBrbm93biBwYWNrYWdlIHdoZW4gZ2V0dGluZyB2YWx1ZSBmb3IgcmVzb3VyY2UgbnVtYmVyIDB4JTA4eCIsIHJlc0lEKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gQkFEX0lOREVYOwotICAgIH0KLSAgICBpZiAodCA8IDApIHsKLSAgICAgICAgQUxPR1coIk5vIHR5cGUgaWRlbnRpZmllciB3aGVuIGdldHRpbmcgdmFsdWUgZm9yIHJlc291cmNlIG51bWJlciAweCUwOHgiLCByZXNJRCk7Ci0gICAgICAgIHJldHVybiBCQURfSU5ERVg7Ci0gICAgfQotCi0gICAgY29uc3QgUmVzX3ZhbHVlKiBiZXN0VmFsdWUgPSBOVUxMOwotICAgIGNvbnN0IFBhY2thZ2UqIGJlc3RQYWNrYWdlID0gTlVMTDsKLSAgICBSZXNUYWJsZV9jb25maWcgYmVzdEl0ZW07Ci0gICAgbWVtc2V0KCZiZXN0SXRlbSwgMCwgc2l6ZW9mKGJlc3RJdGVtKSk7IC8vIG1ha2UgdGhlIGNvbXBpbGVyIHNodXQgdXAKLQotICAgIGlmIChvdXRTcGVjRmxhZ3MgIT0gTlVMTCkgKm91dFNwZWNGbGFncyA9IDA7Ci0KLSAgICAvLyBMb29rIHRocm91Z2ggYWxsIHJlc291cmNlIHBhY2thZ2VzLCBzdGFydGluZyB3aXRoIHRoZSBtb3N0Ci0gICAgLy8gcmVjZW50bHkgYWRkZWQuCi0gICAgY29uc3QgUGFja2FnZUdyb3VwKiBjb25zdCBncnAgPSBtUGFja2FnZUdyb3Vwc1twXTsKLSAgICBpZiAoZ3JwID09IE5VTEwpIHsKLSAgICAgICAgQUxPR1coIkJhZCBpZGVudGlmaWVyIHdoZW4gZ2V0dGluZyB2YWx1ZSBmb3IgcmVzb3VyY2UgbnVtYmVyIDB4JTA4eCIsIHJlc0lEKTsKLSAgICAgICAgcmV0dXJuIEJBRF9JTkRFWDsKLSAgICB9Ci0KLSAgICAvLyBBbGxvdyBvdmVycmlkaW5nIGRlbnNpdHkKLSAgICBjb25zdCBSZXNUYWJsZV9jb25maWcqIGRlc2lyZWRDb25maWcgPSAmbVBhcmFtczsKLSAgICBSZXNUYWJsZV9jb25maWcqIG92ZXJyaWRlQ29uZmlnID0gTlVMTDsKLSAgICBpZiAoZGVuc2l0eSA+IDApIHsKLSAgICAgICAgb3ZlcnJpZGVDb25maWcgPSAoUmVzVGFibGVfY29uZmlnKikgbWFsbG9jKHNpemVvZihSZXNUYWJsZV9jb25maWcpKTsKLSAgICAgICAgaWYgKG92ZXJyaWRlQ29uZmlnID09IE5VTEwpIHsKLSAgICAgICAgICAgIEFMT0dFKCJDb3VsZG4ndCBtYWxsb2MgUmVzVGFibGVfY29uZmlnIGZvciBvdmVycmlkZXM6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgICAgIHJldHVybiBCQURfSU5ERVg7Ci0gICAgICAgIH0KLSAgICAgICAgbWVtY3B5KG92ZXJyaWRlQ29uZmlnLCAmbVBhcmFtcywgc2l6ZW9mKFJlc1RhYmxlX2NvbmZpZykpOwotICAgICAgICBvdmVycmlkZUNvbmZpZy0+ZGVuc2l0eSA9IGRlbnNpdHk7Ci0gICAgICAgIGRlc2lyZWRDb25maWcgPSBvdmVycmlkZUNvbmZpZzsKLSAgICB9Ci0KLSAgICBzc2l6ZV90IHJjID0gQkFEX1ZBTFVFOwotICAgIHNpemVfdCBpcCA9IGdycC0+cGFja2FnZXMuc2l6ZSgpOwotICAgIHdoaWxlIChpcCA+IDApIHsKLSAgICAgICAgaXAtLTsKLSAgICAgICAgaW50IFQgPSB0OwotICAgICAgICBpbnQgRSA9IGU7Ci0KLSAgICAgICAgY29uc3QgUGFja2FnZSogY29uc3QgcGFja2FnZSA9IGdycC0+cGFja2FnZXNbaXBdOwotICAgICAgICBpZiAocGFja2FnZS0+aGVhZGVyLT5yZXNvdXJjZUlETWFwKSB7Ci0gICAgICAgICAgICB1aW50MzJfdCBvdmVybGF5UmVzSUQgPSAweDA7Ci0gICAgICAgICAgICBzdGF0dXNfdCByZXR2YWwgPSBpZG1hcExvb2t1cChwYWNrYWdlLT5oZWFkZXItPnJlc291cmNlSURNYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrYWdlLT5oZWFkZXItPnJlc291cmNlSURNYXBTaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzSUQsICZvdmVybGF5UmVzSUQpOwotICAgICAgICAgICAgaWYgKHJldHZhbCA9PSBOT19FUlJPUiAmJiBvdmVybGF5UmVzSUQgIT0gMHgwKSB7Ci0gICAgICAgICAgICAgICAgLy8gZm9yIHRoaXMgbG9vcCBpdGVyYXRpb24sIHRoaXMgaXMgdGhlIHR5cGUgYW5kIGVudHJ5IHdlIHJlYWxseSB3YW50Ci0gICAgICAgICAgICAgICAgQUxPR1YoInJlc291cmNlIG1hcCAweCUwOHggLT4gMHglMDh4XG4iLCByZXNJRCwgb3ZlcmxheVJlc0lEKTsKLSAgICAgICAgICAgICAgICBUID0gUmVzX0dFVFRZUEUob3ZlcmxheVJlc0lEKTsKLSAgICAgICAgICAgICAgICBFID0gUmVzX0dFVEVOVFJZKG92ZXJsYXlSZXNJRCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIHJlc291cmNlIG5vdCBwcmVzZW50IGluIG92ZXJsYXkgcGFja2FnZSwgY29udGludWUgd2l0aCB0aGUgbmV4dCBwYWNrYWdlCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBSZXNUYWJsZV90eXBlKiB0eXBlOwotICAgICAgICBjb25zdCBSZXNUYWJsZV9lbnRyeSogZW50cnk7Ci0gICAgICAgIGNvbnN0IFR5cGUqIHR5cGVDbGFzczsKLSAgICAgICAgc3NpemVfdCBvZmZzZXQgPSBnZXRFbnRyeShwYWNrYWdlLCBULCBFLCBkZXNpcmVkQ29uZmlnLCAmdHlwZSwgJmVudHJ5LCAmdHlwZUNsYXNzKTsKLSAgICAgICAgaWYgKG9mZnNldCA8PSAwKSB7Ci0gICAgICAgICAgICAvLyBObyB7ZW50cnksIGFwcHJvcHJpYXRlIGNvbmZpZ30gcGFpciBmb3VuZCBpbiBwYWNrYWdlLiBJZiB0aGlzCi0gICAgICAgICAgICAvLyBwYWNrYWdlIGlzIGFuIG92ZXJsYXkgcGFja2FnZSAoaXAgIT0gMCksIHRoaXMgc2ltcGx5IG1lYW5zIHRoZQotICAgICAgICAgICAgLy8gb3ZlcmxheSBwYWNrYWdlIGRpZCBub3Qgc3BlY2lmeSBhIGRlZmF1bHQuCi0gICAgICAgICAgICAvLyBOb24tb3ZlcmxheSBwYWNrYWdlcyBhcmUgc3RpbGwgcmVxdWlyZWQgdG8gcHJvdmlkZSBhIGRlZmF1bHQuCi0gICAgICAgICAgICBpZiAob2Zmc2V0IDwgMCAmJiBpcCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgQUxPR1coIkZhaWx1cmUgZ2V0dGluZyBlbnRyeSBmb3IgMHglMDh4ICh0PSVkIGU9JWQpIGluIHBhY2thZ2UgJXpkIChlcnJvciAlZClcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICByZXNJRCwgVCwgRSwgaXAsIChpbnQpb2Zmc2V0KTsKLSAgICAgICAgICAgICAgICByYyA9IG9mZnNldDsKLSAgICAgICAgICAgICAgICBnb3RvIG91dDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKChkdG9ocyhlbnRyeS0+ZmxhZ3MpJmVudHJ5LT5GTEFHX0NPTVBMRVgpICE9IDApIHsKLSAgICAgICAgICAgIGlmICghbWF5QmVCYWcpIHsKLSAgICAgICAgICAgICAgICBBTE9HVygiUmVxdWVzdGluZyByZXNvdXJjZSAlcCBmYWlsZWQgYmVjYXVzZSBpdCBpcyBjb21wbGV4XG4iLAotICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKXJlc0lEKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgVEFCTEVfTk9JU1koYW91dCA8PCAiUmVzb3VyY2UgdHlwZSBkYXRhOiAiCi0gICAgICAgICAgICAgIDw8IEhleER1bXAodHlwZSwgZHRvaGwodHlwZS0+aGVhZGVyLnNpemUpKSA8PCBlbmRsKTsKLQotICAgICAgICBpZiAoKHNpemVfdClvZmZzZXQgPiAoZHRvaGwodHlwZS0+aGVhZGVyLnNpemUpLXNpemVvZihSZXNfdmFsdWUpKSkgewotICAgICAgICAgICAgQUxPR1coIlJlc1RhYmxlX2l0ZW0gYXQgJWQgaXMgYmV5b25kIHR5cGUgY2h1bmsgZGF0YSAlZCIsCi0gICAgICAgICAgICAgICAgIChpbnQpb2Zmc2V0LCBkdG9obCh0eXBlLT5oZWFkZXIuc2l6ZSkpOwotICAgICAgICAgICAgcmMgPSBCQURfVFlQRTsKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3QgUmVzX3ZhbHVlKiBpdGVtID0KLSAgICAgICAgICAgIChjb25zdCBSZXNfdmFsdWUqKSgoKGNvbnN0IHVpbnQ4X3QqKXR5cGUpICsgb2Zmc2V0KTsKLSAgICAgICAgUmVzVGFibGVfY29uZmlnIHRoaXNDb25maWc7Ci0gICAgICAgIHRoaXNDb25maWcuY29weUZyb21EdG9IKHR5cGUtPmNvbmZpZyk7Ci0KLSAgICAgICAgaWYgKG91dFNwZWNGbGFncyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBpZiAodHlwZUNsYXNzLT50eXBlU3BlY0ZsYWdzICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAqb3V0U3BlY0ZsYWdzIHw9IGR0b2hsKHR5cGVDbGFzcy0+dHlwZVNwZWNGbGFnc1tFXSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICpvdXRTcGVjRmxhZ3MgPSAtMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChiZXN0UGFja2FnZSAhPSBOVUxMICYmCi0gICAgICAgICAgICAoYmVzdEl0ZW0uaXNNb3JlU3BlY2lmaWNUaGFuKHRoaXNDb25maWcpIHx8IGJlc3RJdGVtLmRpZmYodGhpc0NvbmZpZykgPT0gMCkpIHsKLSAgICAgICAgICAgIC8vIERpc2NhcmQgdGhpc0NvbmZpZyBub3Qgb25seSBpZiBiZXN0SXRlbSBpcyBtb3JlIHNwZWNpZmljLCBidXQgYWxzbyBpZiB0aGUgdHdvIGNvbmZpZ3MKLSAgICAgICAgICAgIC8vIGFyZSBpZGVudGljYWwgKGRpZmYgPT0gMCksIG9yIG92ZXJsYXkgcGFja2FnZXMgd2lsbCBub3QgdGFrZSBlZmZlY3QuCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgYmVzdEl0ZW0gPSB0aGlzQ29uZmlnOwotICAgICAgICBiZXN0VmFsdWUgPSBpdGVtOwotICAgICAgICBiZXN0UGFja2FnZSA9IHBhY2thZ2U7Ci0gICAgfQotCi0gICAgVEFCTEVfTk9JU1kocHJpbnRmKCJGb3VuZCByZXN1bHQ6IHBhY2thZ2UgJXBcbiIsIGJlc3RQYWNrYWdlKSk7Ci0KLSAgICBpZiAoYmVzdFZhbHVlKSB7Ci0gICAgICAgIG91dFZhbHVlLT5zaXplID0gZHRvaHMoYmVzdFZhbHVlLT5zaXplKTsKLSAgICAgICAgb3V0VmFsdWUtPnJlczAgPSBiZXN0VmFsdWUtPnJlczA7Ci0gICAgICAgIG91dFZhbHVlLT5kYXRhVHlwZSA9IGJlc3RWYWx1ZS0+ZGF0YVR5cGU7Ci0gICAgICAgIG91dFZhbHVlLT5kYXRhID0gZHRvaGwoYmVzdFZhbHVlLT5kYXRhKTsKLSAgICAgICAgaWYgKG91dENvbmZpZyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAqb3V0Q29uZmlnID0gYmVzdEl0ZW07Ci0gICAgICAgIH0KLSAgICAgICAgVEFCTEVfTk9JU1koc2l6ZV90IGxlbjsKLSAgICAgICAgICAgICAgcHJpbnRmKCJGb3VuZCB2YWx1ZTogcGtnPSVkLCB0eXBlPSVkLCBzdHI9JXMsIGludD0lZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgIGJlc3RQYWNrYWdlLT5oZWFkZXItPmluZGV4LAotICAgICAgICAgICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGFUeXBlLAotICAgICAgICAgICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGFUeXBlID09IGJlc3RWYWx1ZS0+VFlQRV9TVFJJTkcKLSAgICAgICAgICAgICAgICAgICAgID8gU3RyaW5nOChiZXN0UGFja2FnZS0+aGVhZGVyLT52YWx1ZXMuc3RyaW5nQXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGEsICZsZW4pKS5zdHJpbmcoKQotICAgICAgICAgICAgICAgICAgICAgOiAiIiwKLSAgICAgICAgICAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhKSk7Ci0gICAgICAgIHJjID0gYmVzdFBhY2thZ2UtPmhlYWRlci0+aW5kZXg7Ci0gICAgICAgIGdvdG8gb3V0OwotICAgIH0KLQotb3V0OgotICAgIGlmIChvdmVycmlkZUNvbmZpZyAhPSBOVUxMKSB7Ci0gICAgICAgIGZyZWUob3ZlcnJpZGVDb25maWcpOwotICAgIH0KLQotICAgIHJldHVybiByYzsKLX0KLQotc3NpemVfdCBSZXNUYWJsZTo6cmVzb2x2ZVJlZmVyZW5jZShSZXNfdmFsdWUqIHZhbHVlLCBzc2l6ZV90IGJsb2NrSW5kZXgsCi0gICAgICAgIHVpbnQzMl90KiBvdXRMYXN0UmVmLCB1aW50MzJfdCogaW5vdXRUeXBlU3BlY0ZsYWdzLAotICAgICAgICBSZXNUYWJsZV9jb25maWcqIG91dENvbmZpZykgY29uc3QKLXsKLSAgICBpbnQgY291bnQ9MDsKLSAgICB3aGlsZSAoYmxvY2tJbmRleCA+PSAwICYmIHZhbHVlLT5kYXRhVHlwZSA9PSB2YWx1ZS0+VFlQRV9SRUZFUkVOQ0UKLSAgICAgICAgICAgJiYgdmFsdWUtPmRhdGEgIT0gMCAmJiBjb3VudCA8IDIwKSB7Ci0gICAgICAgIGlmIChvdXRMYXN0UmVmKSAqb3V0TGFzdFJlZiA9IHZhbHVlLT5kYXRhOwotICAgICAgICB1aW50MzJfdCBsYXN0UmVmID0gdmFsdWUtPmRhdGE7Ci0gICAgICAgIHVpbnQzMl90IG5ld0ZsYWdzID0gMDsKLSAgICAgICAgY29uc3Qgc3NpemVfdCBuZXdJbmRleCA9IGdldFJlc291cmNlKHZhbHVlLT5kYXRhLCB2YWx1ZSwgdHJ1ZSwgMCwgJm5ld0ZsYWdzLAotICAgICAgICAgICAgICAgIG91dENvbmZpZyk7Ci0gICAgICAgIGlmIChuZXdJbmRleCA9PSBCQURfSU5ERVgpIHsKLSAgICAgICAgICAgIHJldHVybiBCQURfSU5ERVg7Ci0gICAgICAgIH0KLSAgICAgICAgVEFCTEVfVEhFTUUoQUxPR0koIlJlc29sdmluZyByZWZlcmVuY2UgJXA6IG5ld0luZGV4PSVkLCB0eXBlPTB4JXgsIGRhdGE9JXBcbiIsCi0gICAgICAgICAgICAgKHZvaWQqKWxhc3RSZWYsIChpbnQpbmV3SW5kZXgsIChpbnQpdmFsdWUtPmRhdGFUeXBlLCAodm9pZCopdmFsdWUtPmRhdGEpKTsKLSAgICAgICAgLy9wcmludGYoIkdldHRpbmcgcmVmZXJlbmNlIDB4JTA4eDogbmV3SW5kZXg9JWRcbiIsIHZhbHVlLT5kYXRhLCBuZXdJbmRleCk7Ci0gICAgICAgIGlmIChpbm91dFR5cGVTcGVjRmxhZ3MgIT0gTlVMTCkgKmlub3V0VHlwZVNwZWNGbGFncyB8PSBuZXdGbGFnczsKLSAgICAgICAgaWYgKG5ld0luZGV4IDwgMCkgewotICAgICAgICAgICAgLy8gVGhpcyBjYW4gZmFpbCBpZiB0aGUgcmVzb3VyY2UgYmVpbmcgcmVmZXJlbmNlZCBpcyBhIHN0eWxlLi4uCi0gICAgICAgICAgICAvLyBpbiB0aGlzIGNhc2UsIGp1c3QgcmV0dXJuIHRoZSByZWZlcmVuY2UsIGFuZCBleHBlY3QgdGhlCi0gICAgICAgICAgICAvLyBjYWxsZXIgdG8gZGVhbCB3aXRoLgotICAgICAgICAgICAgcmV0dXJuIGJsb2NrSW5kZXg7Ci0gICAgICAgIH0KLSAgICAgICAgYmxvY2tJbmRleCA9IG5ld0luZGV4OwotICAgICAgICBjb3VudCsrOwotICAgIH0KLSAgICByZXR1cm4gYmxvY2tJbmRleDsKLX0KLQotY29uc3QgY2hhcjE2X3QqIFJlc1RhYmxlOjp2YWx1ZVRvU3RyaW5nKAotICAgIGNvbnN0IFJlc192YWx1ZSogdmFsdWUsIHNpemVfdCBzdHJpbmdCbG9jaywKLSAgICBjaGFyMTZfdCB0bXBCdWZmZXJbVE1QX0JVRkZFUl9TSVpFXSwgc2l6ZV90KiBvdXRMZW4pCi17Ci0gICAgaWYgKCF2YWx1ZSkgewotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgaWYgKHZhbHVlLT5kYXRhVHlwZSA9PSB2YWx1ZS0+VFlQRV9TVFJJTkcpIHsKLSAgICAgICAgcmV0dXJuIGdldFRhYmxlU3RyaW5nQmxvY2soc3RyaW5nQmxvY2spLT5zdHJpbmdBdCh2YWx1ZS0+ZGF0YSwgb3V0TGVuKTsKLSAgICB9Ci0gICAgLy8gWFhYIGRvIGludCB0byBzdHJpbmcgY29udmVyc2lvbnMuCi0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLXNzaXplX3QgUmVzVGFibGU6OmxvY2tCYWcodWludDMyX3QgcmVzSUQsIGNvbnN0IGJhZ19lbnRyeSoqIG91dEJhZykgY29uc3QKLXsKLSAgICBtTG9jay5sb2NrKCk7Ci0gICAgc3NpemVfdCBlcnIgPSBnZXRCYWdMb2NrZWQocmVzSUQsIG91dEJhZyk7Ci0gICAgaWYgKGVyciA8IE5PX0VSUk9SKSB7Ci0gICAgICAgIC8vcHJpbnRmKCIqKiogZ2V0IGZhaWxlZCEgIHVubG9ja2luZ1xuIik7Ci0gICAgICAgIG1Mb2NrLnVubG9jaygpOwotICAgIH0KLSAgICByZXR1cm4gZXJyOwotfQotCi12b2lkIFJlc1RhYmxlOjp1bmxvY2tCYWcoY29uc3QgYmFnX2VudHJ5KiBiYWcpIGNvbnN0Ci17Ci0gICAgLy9wcmludGYoIjw8PCB1bmxvY2tCYWcgJXBcbiIsIHRoaXMpOwotICAgIG1Mb2NrLnVubG9jaygpOwotfQotCi12b2lkIFJlc1RhYmxlOjpsb2NrKCkgY29uc3QKLXsKLSAgICBtTG9jay5sb2NrKCk7Ci19Ci0KLXZvaWQgUmVzVGFibGU6OnVubG9jaygpIGNvbnN0Ci17Ci0gICAgbUxvY2sudW5sb2NrKCk7Ci19Ci0KLXNzaXplX3QgUmVzVGFibGU6OmdldEJhZ0xvY2tlZCh1aW50MzJfdCByZXNJRCwgY29uc3QgYmFnX2VudHJ5Kiogb3V0QmFnLAotICAgICAgICB1aW50MzJfdCogb3V0VHlwZVNwZWNGbGFncykgY29uc3QKLXsKLSAgICBpZiAobUVycm9yICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiBtRXJyb3I7Ci0gICAgfQotCi0gICAgY29uc3Qgc3NpemVfdCBwID0gZ2V0UmVzb3VyY2VQYWNrYWdlSW5kZXgocmVzSUQpOwotICAgIGNvbnN0IGludCB0ID0gUmVzX0dFVFRZUEUocmVzSUQpOwotICAgIGNvbnN0IGludCBlID0gUmVzX0dFVEVOVFJZKHJlc0lEKTsKLQotICAgIGlmIChwIDwgMCkgewotICAgICAgICBBTE9HVygiSW52YWxpZCBwYWNrYWdlIGlkZW50aWZpZXIgd2hlbiBnZXR0aW5nIGJhZyBmb3IgcmVzb3VyY2UgbnVtYmVyIDB4JTA4eCIsIHJlc0lEKTsKLSAgICAgICAgcmV0dXJuIEJBRF9JTkRFWDsKLSAgICB9Ci0gICAgaWYgKHQgPCAwKSB7Ci0gICAgICAgIEFMT0dXKCJObyB0eXBlIGlkZW50aWZpZXIgd2hlbiBnZXR0aW5nIGJhZyBmb3IgcmVzb3VyY2UgbnVtYmVyIDB4JTA4eCIsIHJlc0lEKTsKLSAgICAgICAgcmV0dXJuIEJBRF9JTkRFWDsKLSAgICB9Ci0KLSAgICAvL3ByaW50ZigiR2V0IGJhZzogaWQ9MHglMDh4LCBwPSVkLCB0PSVkXG4iLCByZXNJRCwgcCwgdCk7Ci0gICAgUGFja2FnZUdyb3VwKiBjb25zdCBncnAgPSBtUGFja2FnZUdyb3Vwc1twXTsKLSAgICBpZiAoZ3JwID09IE5VTEwpIHsKLSAgICAgICAgQUxPR1coIkJhZCBpZGVudGlmaWVyIHdoZW4gZ2V0dGluZyBiYWcgZm9yIHJlc291cmNlIG51bWJlciAweCUwOHgiLCByZXNJRCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAodCA+PSAoaW50KWdycC0+dHlwZUNvdW50KSB7Ci0gICAgICAgIEFMT0dXKCJUeXBlIGlkZW50aWZpZXIgMHgleCBpcyBsYXJnZXIgdGhhbiB0eXBlIGNvdW50IDB4JXgiLAotICAgICAgICAgICAgIHQrMSwgKGludClncnAtPnR5cGVDb3VudCk7Ci0gICAgICAgIHJldHVybiBCQURfSU5ERVg7Ci0gICAgfQotCi0gICAgY29uc3QgUGFja2FnZSogY29uc3QgYmFzZVBhY2thZ2UgPSBncnAtPnBhY2thZ2VzWzBdOwotCi0gICAgY29uc3QgVHlwZSogY29uc3QgdHlwZUNvbmZpZ3MgPSBiYXNlUGFja2FnZS0+Z2V0VHlwZSh0KTsKLQotICAgIGNvbnN0IHNpemVfdCBORU5UUlkgPSB0eXBlQ29uZmlncy0+ZW50cnlDb3VudDsKLSAgICBpZiAoZSA+PSAoaW50KU5FTlRSWSkgewotICAgICAgICBBTE9HVygiRW50cnkgaWRlbnRpZmllciAweCV4IGlzIGxhcmdlciB0aGFuIGVudHJ5IGNvdW50IDB4JXgiLAotICAgICAgICAgICAgIGUsIChpbnQpdHlwZUNvbmZpZ3MtPmVudHJ5Q291bnQpOwotICAgICAgICByZXR1cm4gQkFEX0lOREVYOwotICAgIH0KLQotICAgIC8vIEZpcnN0IHNlZSBpZiB3ZSd2ZSBhbHJlYWR5IGNvbXB1dGVkIHRoaXMgYmFnLi4uCi0gICAgaWYgKGdycC0+YmFncykgewotICAgICAgICBiYWdfc2V0KiogdHlwZVNldCA9IGdycC0+YmFnc1t0XTsKLSAgICAgICAgaWYgKHR5cGVTZXQpIHsKLSAgICAgICAgICAgIGJhZ19zZXQqIHNldCA9IHR5cGVTZXRbZV07Ci0gICAgICAgICAgICBpZiAoc2V0KSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNldCAhPSAoYmFnX3NldCopMHhGRkZGRkZGRikgewotICAgICAgICAgICAgICAgICAgICBpZiAob3V0VHlwZVNwZWNGbGFncyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAqb3V0VHlwZVNwZWNGbGFncyA9IHNldC0+dHlwZVNwZWNGbGFnczsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAqb3V0QmFnID0gKGJhZ19lbnRyeSopKHNldCsxKTsKLSAgICAgICAgICAgICAgICAgICAgLy9BTE9HSSgiRm91bmQgZXhpc3RpbmcgYmFnIGZvcjogJXBcbiIsICh2b2lkKilyZXNJRCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXQtPm51bUF0dHJzOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBBTE9HVygiQXR0ZW1wdCB0byByZXRyaWV2ZSBiYWcgMHglMDh4IHdoaWNoIGlzIGludmFsaWQgb3IgaW4gYSBjeWNsZS4iLAotICAgICAgICAgICAgICAgICAgICAgcmVzSUQpOwotICAgICAgICAgICAgICAgIHJldHVybiBCQURfSU5ERVg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBCYWcgbm90IGZvdW5kLCB3ZSBuZWVkIHRvIGNvbXB1dGUgaXQhCi0gICAgaWYgKCFncnAtPmJhZ3MpIHsKLSAgICAgICAgZ3JwLT5iYWdzID0gKGJhZ19zZXQqKiopY2FsbG9jKGdycC0+dHlwZUNvdW50LCBzaXplb2YoYmFnX3NldCopKTsKLSAgICAgICAgaWYgKCFncnAtPmJhZ3MpIHJldHVybiBOT19NRU1PUlk7Ci0gICAgfQotCi0gICAgYmFnX3NldCoqIHR5cGVTZXQgPSBncnAtPmJhZ3NbdF07Ci0gICAgaWYgKCF0eXBlU2V0KSB7Ci0gICAgICAgIHR5cGVTZXQgPSAoYmFnX3NldCoqKWNhbGxvYyhORU5UUlksIHNpemVvZihiYWdfc2V0KikpOwotICAgICAgICBpZiAoIXR5cGVTZXQpIHJldHVybiBOT19NRU1PUlk7Ci0gICAgICAgIGdycC0+YmFnc1t0XSA9IHR5cGVTZXQ7Ci0gICAgfQotCi0gICAgLy8gTWFyayB0aGF0IHdlIGFyZSBjdXJyZW50bHkgd29ya2luZyBvbiB0aGlzIG9uZS4KLSAgICB0eXBlU2V0W2VdID0gKGJhZ19zZXQqKTB4RkZGRkZGRkY7Ci0KLSAgICAvLyBUaGlzIGlzIHdoYXQgd2UgYXJlIGJ1aWxkaW5nLgotICAgIGJhZ19zZXQqIHNldCA9IE5VTEw7Ci0KLSAgICBUQUJMRV9OT0lTWShBTE9HSSgiQnVpbGRpbmcgYmFnOiAlcFxuIiwgKHZvaWQqKXJlc0lEKSk7Ci0gICAgCi0gICAgUmVzVGFibGVfY29uZmlnIGJlc3RDb25maWc7Ci0gICAgbWVtc2V0KCZiZXN0Q29uZmlnLCAwLCBzaXplb2YoYmVzdENvbmZpZykpOwotCi0gICAgLy8gTm93IGNvbGxlY3QgYWxsIGJhZyBhdHRyaWJ1dGVzIGZyb20gYWxsIHBhY2thZ2VzLgotICAgIHNpemVfdCBpcCA9IGdycC0+cGFja2FnZXMuc2l6ZSgpOwotICAgIHdoaWxlIChpcCA+IDApIHsKLSAgICAgICAgaXAtLTsKLSAgICAgICAgaW50IFQgPSB0OwotICAgICAgICBpbnQgRSA9IGU7Ci0KLSAgICAgICAgY29uc3QgUGFja2FnZSogY29uc3QgcGFja2FnZSA9IGdycC0+cGFja2FnZXNbaXBdOwotICAgICAgICBpZiAocGFja2FnZS0+aGVhZGVyLT5yZXNvdXJjZUlETWFwKSB7Ci0gICAgICAgICAgICB1aW50MzJfdCBvdmVybGF5UmVzSUQgPSAweDA7Ci0gICAgICAgICAgICBzdGF0dXNfdCByZXR2YWwgPSBpZG1hcExvb2t1cChwYWNrYWdlLT5oZWFkZXItPnJlc291cmNlSURNYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrYWdlLT5oZWFkZXItPnJlc291cmNlSURNYXBTaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzSUQsICZvdmVybGF5UmVzSUQpOwotICAgICAgICAgICAgaWYgKHJldHZhbCA9PSBOT19FUlJPUiAmJiBvdmVybGF5UmVzSUQgIT0gMHgwKSB7Ci0gICAgICAgICAgICAgICAgLy8gZm9yIHRoaXMgbG9vcCBpdGVyYXRpb24sIHRoaXMgaXMgdGhlIHR5cGUgYW5kIGVudHJ5IHdlIHJlYWxseSB3YW50Ci0gICAgICAgICAgICAgICAgQUxPR1YoInJlc291cmNlIG1hcCAweCUwOHggLT4gMHglMDh4XG4iLCByZXNJRCwgb3ZlcmxheVJlc0lEKTsKLSAgICAgICAgICAgICAgICBUID0gUmVzX0dFVFRZUEUob3ZlcmxheVJlc0lEKTsKLSAgICAgICAgICAgICAgICBFID0gUmVzX0dFVEVOVFJZKG92ZXJsYXlSZXNJRCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIHJlc291cmNlIG5vdCBwcmVzZW50IGluIG92ZXJsYXkgcGFja2FnZSwgY29udGludWUgd2l0aCB0aGUgbmV4dCBwYWNrYWdlCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBSZXNUYWJsZV90eXBlKiB0eXBlOwotICAgICAgICBjb25zdCBSZXNUYWJsZV9lbnRyeSogZW50cnk7Ci0gICAgICAgIGNvbnN0IFR5cGUqIHR5cGVDbGFzczsKLSAgICAgICAgQUxPR1YoIkdldHRpbmcgZW50cnkgcGtnPSVwLCB0PSVkLCBlPSVkXG4iLCBwYWNrYWdlLCBULCBFKTsKLSAgICAgICAgc3NpemVfdCBvZmZzZXQgPSBnZXRFbnRyeShwYWNrYWdlLCBULCBFLCAmbVBhcmFtcywgJnR5cGUsICZlbnRyeSwgJnR5cGVDbGFzcyk7Ci0gICAgICAgIEFMT0dWKCJSZXN1bHRpbmcgb2Zmc2V0PSVkXG4iLCBvZmZzZXQpOwotICAgICAgICBpZiAob2Zmc2V0IDw9IDApIHsKLSAgICAgICAgICAgIC8vIE5vIHtlbnRyeSwgYXBwcm9wcmlhdGUgY29uZmlnfSBwYWlyIGZvdW5kIGluIHBhY2thZ2UuIElmIHRoaXMKLSAgICAgICAgICAgIC8vIHBhY2thZ2UgaXMgYW4gb3ZlcmxheSBwYWNrYWdlIChpcCAhPSAwKSwgdGhpcyBzaW1wbHkgbWVhbnMgdGhlCi0gICAgICAgICAgICAvLyBvdmVybGF5IHBhY2thZ2UgZGlkIG5vdCBzcGVjaWZ5IGEgZGVmYXVsdC4KLSAgICAgICAgICAgIC8vIE5vbi1vdmVybGF5IHBhY2thZ2VzIGFyZSBzdGlsbCByZXF1aXJlZCB0byBwcm92aWRlIGEgZGVmYXVsdC4KLSAgICAgICAgICAgIGlmIChvZmZzZXQgPCAwICYmIGlwID09IDApIHsKLSAgICAgICAgICAgICAgICBpZiAoc2V0KSBmcmVlKHNldCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG9mZnNldDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKChkdG9ocyhlbnRyeS0+ZmxhZ3MpJmVudHJ5LT5GTEFHX0NPTVBMRVgpID09IDApIHsKLSAgICAgICAgICAgIEFMT0dXKCJTa2lwcGluZyBlbnRyeSAlcCBpbiBwYWNrYWdlIHRhYmxlICVkIGJlY2F1c2UgaXQgaXMgbm90IGNvbXBsZXghXG4iLAotICAgICAgICAgICAgICAgICAodm9pZCopcmVzSUQsIChpbnQpaXApOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoc2V0ICE9IE5VTEwgJiYgIXR5cGUtPmNvbmZpZy5pc0JldHRlclRoYW4oYmVzdENvbmZpZywgTlVMTCkpIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGJlc3RDb25maWcgPSB0eXBlLT5jb25maWc7Ci0gICAgICAgIGlmIChzZXQpIHsKLSAgICAgICAgICAgIGZyZWUoc2V0KTsKLSAgICAgICAgICAgIHNldCA9IE5VTEw7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCB1aW50MTZfdCBlbnRyeVNpemUgPSBkdG9ocyhlbnRyeS0+c2l6ZSk7Ci0gICAgICAgIGNvbnN0IHVpbnQzMl90IHBhcmVudCA9IGVudHJ5U2l6ZSA+PSBzaXplb2YoUmVzVGFibGVfbWFwX2VudHJ5KQotICAgICAgICAgICAgPyBkdG9obCgoKGNvbnN0IFJlc1RhYmxlX21hcF9lbnRyeSopZW50cnkpLT5wYXJlbnQuaWRlbnQpIDogMDsKLSAgICAgICAgY29uc3QgdWludDMyX3QgY291bnQgPSBlbnRyeVNpemUgPj0gc2l6ZW9mKFJlc1RhYmxlX21hcF9lbnRyeSkKLSAgICAgICAgICAgID8gZHRvaGwoKChjb25zdCBSZXNUYWJsZV9tYXBfZW50cnkqKWVudHJ5KS0+Y291bnQpIDogMDsKLSAgICAgICAgCi0gICAgICAgIHNpemVfdCBOID0gY291bnQ7Ci0KLSAgICAgICAgVEFCTEVfTk9JU1koQUxPR0koIkZvdW5kIG1hcDogc2l6ZT0lcCBwYXJlbnQ9JXAgY291bnQ9JWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlTaXplLCBwYXJlbnQsIGNvdW50KSk7Ci0KLSAgICAgICAgLy8gSWYgdGhpcyBtYXAgaW5oZXJpdHMgZnJvbSBhbm90aGVyLCB3ZSBuZWVkIHRvIHN0YXJ0Ci0gICAgICAgIC8vIHdpdGggaXRzIHBhcmVudCdzIHZhbHVlcy4gIE90aGVyd2lzZSBzdGFydCBvdXQgZW1wdHkuCi0gICAgICAgIFRBQkxFX05PSVNZKHByaW50ZigiQ3JlYXRpbmcgbmV3IGJhZywgZW50cnlTaXplPTB4JTA4eCwgcGFyZW50PTB4JTA4eFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5U2l6ZSwgcGFyZW50KSk7Ci0gICAgICAgIGlmIChwYXJlbnQpIHsKLSAgICAgICAgICAgIGNvbnN0IGJhZ19lbnRyeSogcGFyZW50QmFnOwotICAgICAgICAgICAgdWludDMyX3QgcGFyZW50VHlwZVNwZWNGbGFncyA9IDA7Ci0gICAgICAgICAgICBjb25zdCBzc2l6ZV90IE5QID0gZ2V0QmFnTG9ja2VkKHBhcmVudCwgJnBhcmVudEJhZywgJnBhcmVudFR5cGVTcGVjRmxhZ3MpOwotICAgICAgICAgICAgY29uc3Qgc2l6ZV90IE5UID0gKChOUCA+PSAwKSA/IE5QIDogMCkgKyBOOwotICAgICAgICAgICAgc2V0ID0gKGJhZ19zZXQqKW1hbGxvYyhzaXplb2YoYmFnX3NldCkrc2l6ZW9mKGJhZ19lbnRyeSkqTlQpOwotICAgICAgICAgICAgaWYgKHNldCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5PX01FTU9SWTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChOUCA+IDApIHsKLSAgICAgICAgICAgICAgICBtZW1jcHkoc2V0KzEsIHBhcmVudEJhZywgTlAqc2l6ZW9mKGJhZ19lbnRyeSkpOwotICAgICAgICAgICAgICAgIHNldC0+bnVtQXR0cnMgPSBOUDsKLSAgICAgICAgICAgICAgICBUQUJMRV9OT0lTWShBTE9HSSgiSW5pdGlhbGl6ZWQgbmV3IGJhZyB3aXRoICVkIGluaGVyaXRlZCBhdHRyaWJ1dGVzLlxuIiwgTlApKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgVEFCTEVfTk9JU1koQUxPR0koIkluaXRpYWxpemVkIG5ldyBiYWcgd2l0aCBubyBpbmhlcml0ZWQgYXR0cmlidXRlcy5cbiIpKTsKLSAgICAgICAgICAgICAgICBzZXQtPm51bUF0dHJzID0gMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldC0+YXZhaWxBdHRycyA9IE5UOwotICAgICAgICAgICAgc2V0LT50eXBlU3BlY0ZsYWdzID0gcGFyZW50VHlwZVNwZWNGbGFnczsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNldCA9IChiYWdfc2V0KiltYWxsb2Moc2l6ZW9mKGJhZ19zZXQpK3NpemVvZihiYWdfZW50cnkpKk4pOwotICAgICAgICAgICAgaWYgKHNldCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5PX01FTU9SWTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldC0+bnVtQXR0cnMgPSAwOwotICAgICAgICAgICAgc2V0LT5hdmFpbEF0dHJzID0gTjsKLSAgICAgICAgICAgIHNldC0+dHlwZVNwZWNGbGFncyA9IDA7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodHlwZUNsYXNzLT50eXBlU3BlY0ZsYWdzICE9IE5VTEwpIHsKLSAgICAgICAgICAgIHNldC0+dHlwZVNwZWNGbGFncyB8PSBkdG9obCh0eXBlQ2xhc3MtPnR5cGVTcGVjRmxhZ3NbRV0pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0LT50eXBlU3BlY0ZsYWdzID0gLTE7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIC8vIE5vdyBtZXJnZSBpbiB0aGUgbmV3IGF0dHJpYnV0ZXMuLi4KLSAgICAgICAgc3NpemVfdCBjdXJPZmYgPSBvZmZzZXQ7Ci0gICAgICAgIGNvbnN0IFJlc1RhYmxlX21hcCogbWFwOwotICAgICAgICBiYWdfZW50cnkqIGVudHJpZXMgPSAoYmFnX2VudHJ5Kikoc2V0KzEpOwotICAgICAgICBzaXplX3QgY3VyRW50cnkgPSAwOwotICAgICAgICB1aW50MzJfdCBwb3MgPSAwOwotICAgICAgICBUQUJMRV9OT0lTWShBTE9HSSgiU3RhcnRpbmcgd2l0aCBzZXQgJXAsIGVudHJpZXM9JXAsIGF2YWlsPSVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgc2V0LCBlbnRyaWVzLCBzZXQtPmF2YWlsQXR0cnMpKTsKLSAgICAgICAgd2hpbGUgKHBvcyA8IGNvdW50KSB7Ci0gICAgICAgICAgICBUQUJMRV9OT0lTWShwcmludGYoIk5vdyBhdCAlcFxuIiwgKHZvaWQqKWN1ck9mZikpOwotCi0gICAgICAgICAgICBpZiAoKHNpemVfdCljdXJPZmYgPiAoZHRvaGwodHlwZS0+aGVhZGVyLnNpemUpLXNpemVvZihSZXNUYWJsZV9tYXApKSkgewotICAgICAgICAgICAgICAgIEFMT0dXKCJSZXNUYWJsZV9tYXAgYXQgJWQgaXMgYmV5b25kIHR5cGUgY2h1bmsgZGF0YSAlZCIsCi0gICAgICAgICAgICAgICAgICAgICAoaW50KWN1ck9mZiwgZHRvaGwodHlwZS0+aGVhZGVyLnNpemUpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gQkFEX1RZUEU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtYXAgPSAoY29uc3QgUmVzVGFibGVfbWFwKikoKChjb25zdCB1aW50OF90Kil0eXBlKSArIGN1ck9mZik7Ci0gICAgICAgICAgICBOKys7Ci0KLSAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90IG5ld05hbWUgPSBodG9kbChtYXAtPm5hbWUuaWRlbnQpOwotICAgICAgICAgICAgYm9vbCBpc0luc2lkZTsKLSAgICAgICAgICAgIHVpbnQzMl90IG9sZE5hbWUgPSAwOwotICAgICAgICAgICAgd2hpbGUgKChpc0luc2lkZT0oY3VyRW50cnkgPCBzZXQtPm51bUF0dHJzKSkKLSAgICAgICAgICAgICAgICAgICAgJiYgKG9sZE5hbWU9ZW50cmllc1tjdXJFbnRyeV0ubWFwLm5hbWUuaWRlbnQpIDwgbmV3TmFtZSkgewotICAgICAgICAgICAgICAgIFRBQkxFX05PSVNZKHByaW50ZigiIyVkOiBLZWVwaW5nIGV4aXN0aW5nIGF0dHJpYnV0ZTogMHglMDh4XG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJFbnRyeSwgZW50cmllc1tjdXJFbnRyeV0ubWFwLm5hbWUuaWRlbnQpKTsKLSAgICAgICAgICAgICAgICBjdXJFbnRyeSsrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoKCFpc0luc2lkZSkgfHwgb2xkTmFtZSAhPSBuZXdOYW1lKSB7Ci0gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhIG5ldyBhdHRyaWJ1dGUuLi4gIGZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIGl0LgotICAgICAgICAgICAgICAgIGlmIChzZXQtPm51bUF0dHJzID49IHNldC0+YXZhaWxBdHRycykgewotICAgICAgICAgICAgICAgICAgICAvLyBOZWVkIHRvIGFsbG9jIG1vcmUgbWVtb3J5Li4uCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpemVfdCBuZXdBdmFpbCA9IHNldC0+YXZhaWxBdHRycytOOwotICAgICAgICAgICAgICAgICAgICBzZXQgPSAoYmFnX3NldCopcmVhbGxvYyhzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihiYWdfc2V0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNpemVvZihiYWdfZW50cnkpKm5ld0F2YWlsKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNldCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTk9fTUVNT1JZOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHNldC0+YXZhaWxBdHRycyA9IG5ld0F2YWlsOwotICAgICAgICAgICAgICAgICAgICBlbnRyaWVzID0gKGJhZ19lbnRyeSopKHNldCsxKTsKLSAgICAgICAgICAgICAgICAgICAgVEFCTEVfTk9JU1kocHJpbnRmKCJSZWFsbG9jYXRlZCBzZXQgJXAsIGVudHJpZXM9JXAsIGF2YWlsPSVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0LCBlbnRyaWVzLCBzZXQtPmF2YWlsQXR0cnMpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGlzSW5zaWRlKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEdvaW5nIGluIHRoZSBtaWRkbGUsIG5lZWQgdG8gbWFrZSBzcGFjZS4KLSAgICAgICAgICAgICAgICAgICAgbWVtbW92ZShlbnRyaWVzK2N1ckVudHJ5KzEsIGVudHJpZXMrY3VyRW50cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGJhZ19lbnRyeSkqKHNldC0+bnVtQXR0cnMtY3VyRW50cnkpKTsKLSAgICAgICAgICAgICAgICAgICAgc2V0LT5udW1BdHRycysrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBUQUJMRV9OT0lTWShwcmludGYoIiMlZDogSW5zZXJ0aW5nIG5ldyBhdHRyaWJ1dGU6IDB4JTA4eFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyRW50cnksIG5ld05hbWUpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgVEFCTEVfTk9JU1kocHJpbnRmKCIjJWQ6IFJlcGxhY2luZyBleGlzdGluZyBhdHRyaWJ1dGU6IDB4JTA4eFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyRW50cnksIG9sZE5hbWUpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYmFnX2VudHJ5KiBjdXIgPSBlbnRyaWVzK2N1ckVudHJ5OwotCi0gICAgICAgICAgICBjdXItPnN0cmluZ0Jsb2NrID0gcGFja2FnZS0+aGVhZGVyLT5pbmRleDsKLSAgICAgICAgICAgIGN1ci0+bWFwLm5hbWUuaWRlbnQgPSBuZXdOYW1lOwotICAgICAgICAgICAgY3VyLT5tYXAudmFsdWUuY29weUZyb21fZHRvaChtYXAtPnZhbHVlKTsKLSAgICAgICAgICAgIFRBQkxFX05PSVNZKHByaW50ZigiU2V0dGluZyBlbnRyeSAjJWQgJXA6IGJsb2NrPSVkLCBuYW1lPTB4JTA4eCwgdHlwZT0lZCwgZGF0YT0weCUwOHhcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgY3VyRW50cnksIGN1ciwgY3VyLT5zdHJpbmdCbG9jaywgY3VyLT5tYXAubmFtZS5pZGVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjdXItPm1hcC52YWx1ZS5kYXRhVHlwZSwgY3VyLT5tYXAudmFsdWUuZGF0YSkpOwotCi0gICAgICAgICAgICAvLyBPbiB0byB0aGUgbmV4dCEKLSAgICAgICAgICAgIGN1ckVudHJ5Kys7Ci0gICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgIGNvbnN0IHNpemVfdCBzaXplID0gZHRvaHMobWFwLT52YWx1ZS5zaXplKTsKLSAgICAgICAgICAgIGN1ck9mZiArPSBzaXplICsgc2l6ZW9mKCptYXApLXNpemVvZihtYXAtPnZhbHVlKTsKLSAgICAgICAgfTsKLSAgICAgICAgaWYgKGN1ckVudHJ5ID4gc2V0LT5udW1BdHRycykgewotICAgICAgICAgICAgc2V0LT5udW1BdHRycyA9IGN1ckVudHJ5OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gQW5kIHRoaXMgaXMgaXQuLi4KLSAgICB0eXBlU2V0W2VdID0gc2V0OwotICAgIGlmIChzZXQpIHsKLSAgICAgICAgaWYgKG91dFR5cGVTcGVjRmxhZ3MgIT0gTlVMTCkgewotICAgICAgICAgICAgKm91dFR5cGVTcGVjRmxhZ3MgPSBzZXQtPnR5cGVTcGVjRmxhZ3M7Ci0gICAgICAgIH0KLSAgICAgICAgKm91dEJhZyA9IChiYWdfZW50cnkqKShzZXQrMSk7Ci0gICAgICAgIFRBQkxFX05PSVNZKEFMT0dJKCJSZXR1cm5pbmcgJWQgYXR0cnNcbiIsIHNldC0+bnVtQXR0cnMpKTsKLSAgICAgICAgcmV0dXJuIHNldC0+bnVtQXR0cnM7Ci0gICAgfQotICAgIHJldHVybiBCQURfSU5ERVg7Ci19Ci0KLXZvaWQgUmVzVGFibGU6OnNldFBhcmFtZXRlcnMoY29uc3QgUmVzVGFibGVfY29uZmlnKiBwYXJhbXMpCi17Ci0gICAgbUxvY2subG9jaygpOwotICAgIFRBQkxFX0dFVEVOVFJZKEFMT0dJKCJTZXR0aW5nIHBhcmFtZXRlcnM6ICVzXG4iLCBwYXJhbXMtPnRvU3RyaW5nKCkuc3RyaW5nKCkpKTsKLSAgICBtUGFyYW1zID0gKnBhcmFtczsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8bVBhY2thZ2VHcm91cHMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgVEFCTEVfTk9JU1koQUxPR0koIkNMRUFSSU5HIEJBR1MgRk9SIEdST1VQICVkISIsIGkpKTsKLSAgICAgICAgbVBhY2thZ2VHcm91cHNbaV0tPmNsZWFyQmFnQ2FjaGUoKTsKLSAgICB9Ci0gICAgbUxvY2sudW5sb2NrKCk7Ci19Ci0KLXZvaWQgUmVzVGFibGU6OmdldFBhcmFtZXRlcnMoUmVzVGFibGVfY29uZmlnKiBwYXJhbXMpIGNvbnN0Ci17Ci0gICAgbUxvY2subG9jaygpOwotICAgICpwYXJhbXMgPSBtUGFyYW1zOwotICAgIG1Mb2NrLnVubG9jaygpOwotfQotCi1zdHJ1Y3QgaWRfbmFtZV9tYXAgewotICAgIHVpbnQzMl90IGlkOwotICAgIHNpemVfdCBsZW47Ci0gICAgY2hhcjE2X3QgbmFtZVs2XTsKLX07Ci0KLWNvbnN0IHN0YXRpYyBpZF9uYW1lX21hcCBJRF9OQU1FU1tdID0gewotICAgIHsgUmVzVGFibGVfbWFwOjpBVFRSX1RZUEUsICA1LCB7ICdeJywgJ3QnLCAneScsICdwJywgJ2UnIH0gfSwKLSAgICB7IFJlc1RhYmxlX21hcDo6QVRUUl9MMTBOLCAgNSwgeyAnXicsICdsJywgJzEnLCAnMCcsICduJyB9IH0sCi0gICAgeyBSZXNUYWJsZV9tYXA6OkFUVFJfTUlOLCAgIDQsIHsgJ14nLCAnbScsICdpJywgJ24nIH0gfSwKLSAgICB7IFJlc1RhYmxlX21hcDo6QVRUUl9NQVgsICAgNCwgeyAnXicsICdtJywgJ2EnLCAneCcgfSB9LAotICAgIHsgUmVzVGFibGVfbWFwOjpBVFRSX09USEVSLCA2LCB7ICdeJywgJ28nLCAndCcsICdoJywgJ2UnLCAncicgfSB9LAotICAgIHsgUmVzVGFibGVfbWFwOjpBVFRSX1pFUk8sICA1LCB7ICdeJywgJ3onLCAnZScsICdyJywgJ28nIH0gfSwKLSAgICB7IFJlc1RhYmxlX21hcDo6QVRUUl9PTkUsICAgNCwgeyAnXicsICdvJywgJ24nLCAnZScgfSB9LAotICAgIHsgUmVzVGFibGVfbWFwOjpBVFRSX1RXTywgICA0LCB7ICdeJywgJ3QnLCAndycsICdvJyB9IH0sCi0gICAgeyBSZXNUYWJsZV9tYXA6OkFUVFJfRkVXLCAgIDQsIHsgJ14nLCAnZicsICdlJywgJ3cnIH0gfSwKLSAgICB7IFJlc1RhYmxlX21hcDo6QVRUUl9NQU5ZLCAgNSwgeyAnXicsICdtJywgJ2EnLCAnbicsICd5JyB9IH0sCi19OwotCi11aW50MzJfdCBSZXNUYWJsZTo6aWRlbnRpZmllckZvck5hbWUoY29uc3QgY2hhcjE2X3QqIG5hbWUsIHNpemVfdCBuYW1lTGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIxNl90KiB0eXBlLCBzaXplX3QgdHlwZUxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogcGFja2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGFja2FnZUxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogb3V0VHlwZVNwZWNGbGFncykgY29uc3QKLXsKLSAgICBUQUJMRV9TVVBFUl9OT0lTWShwcmludGYoIklkZW50aWZpZXIgZm9yIG5hbWU6IGVycm9yPSVkXG4iLCBtRXJyb3IpKTsKLQotICAgIC8vIENoZWNrIGZvciBpbnRlcm5hbCByZXNvdXJjZSBpZGVudGlmaWVyIGFzIHRoZSB2ZXJ5IGZpcnN0IHRoaW5nLCBzbwotICAgIC8vIHRoYXQgd2Ugd2lsbCBhbHdheXMgZmluZCB0aGVtIGV2ZW4gd2hlbiB0aGVyZSBhcmUgbm8gcmVzb3VyY2VzLgotICAgIGlmIChuYW1lWzBdID09ICdeJykgewotICAgICAgICBjb25zdCBpbnQgTiA9IChzaXplb2YoSURfTkFNRVMpL3NpemVvZihJRF9OQU1FU1swXSkpOwotICAgICAgICBzaXplX3QgbGVuOwotICAgICAgICBmb3IgKGludCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgICAgICBjb25zdCBpZF9uYW1lX21hcCogbSA9IElEX05BTUVTICsgaTsKLSAgICAgICAgICAgIGxlbiA9IG0tPmxlbjsKLSAgICAgICAgICAgIGlmIChsZW4gIT0gbmFtZUxlbikgewotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yIChzaXplX3Qgaj0xOyBqPGxlbjsgaisrKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG0tPm5hbWVbal0gIT0gbmFtZVtqXSkgewotICAgICAgICAgICAgICAgICAgICBnb3RvIG5vcGU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG91dFR5cGVTcGVjRmxhZ3MpIHsKLSAgICAgICAgICAgICAgICAqb3V0VHlwZVNwZWNGbGFncyA9IFJlc1RhYmxlX3R5cGVTcGVjOjpTUEVDX1BVQkxJQzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBtLT5pZDsKLW5vcGU6Ci0gICAgICAgICAgICA7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKG5hbWVMZW4gPiA3KSB7Ci0gICAgICAgICAgICBpZiAobmFtZVsxXSA9PSAnaScgJiYgbmFtZVsyXSA9PSAnbicKLSAgICAgICAgICAgICAgICAmJiBuYW1lWzNdID09ICdkJyAmJiBuYW1lWzRdID09ICdlJyAmJiBuYW1lWzVdID09ICd4JwotICAgICAgICAgICAgICAgICYmIG5hbWVbNl0gPT0gJ18nKSB7Ci0gICAgICAgICAgICAgICAgaW50IGluZGV4ID0gYXRvaShTdHJpbmc4KG5hbWUgKyA3LCBuYW1lTGVuIC0gNykuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIGlmIChSZXNfQ0hFQ0tJRChpbmRleCkpIHsKLSAgICAgICAgICAgICAgICAgICAgQUxPR1coIkFycmF5IHJlc291cmNlIGluZGV4OiAlZCBpcyB0b28gbGFyZ2UuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAob3V0VHlwZVNwZWNGbGFncykgewotICAgICAgICAgICAgICAgICAgICAqb3V0VHlwZVNwZWNGbGFncyA9IFJlc1RhYmxlX3R5cGVTcGVjOjpTUEVDX1BVQkxJQzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJuICBSZXNfTUFLRUFSUkFZKGluZGV4KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBpZiAobUVycm9yICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGJvb2wgZmFrZVB1YmxpYyA9IGZhbHNlOwotCi0gICAgLy8gRmlndXJlIG91dCB0aGUgcGFja2FnZSBhbmQgdHlwZSB3ZSBhcmUgbG9va2luZyBpbi4uLgotCi0gICAgY29uc3QgY2hhcjE2X3QqIHBhY2thZ2VFbmQgPSBOVUxMOwotICAgIGNvbnN0IGNoYXIxNl90KiB0eXBlRW5kID0gTlVMTDsKLSAgICBjb25zdCBjaGFyMTZfdCogY29uc3QgbmFtZUVuZCA9IG5hbWUrbmFtZUxlbjsKLSAgICBjb25zdCBjaGFyMTZfdCogcCA9IG5hbWU7Ci0gICAgd2hpbGUgKHAgPCBuYW1lRW5kKSB7Ci0gICAgICAgIGlmICgqcCA9PSAnOicpIHBhY2thZ2VFbmQgPSBwOwotICAgICAgICBlbHNlIGlmICgqcCA9PSAnLycpIHR5cGVFbmQgPSBwOwotICAgICAgICBwKys7Ci0gICAgfQotICAgIGlmICgqbmFtZSA9PSAnQCcpIHsKLSAgICAgICAgbmFtZSsrOwotICAgICAgICBpZiAoKm5hbWUgPT0gJyonKSB7Ci0gICAgICAgICAgICBmYWtlUHVibGljID0gdHJ1ZTsKLSAgICAgICAgICAgIG5hbWUrKzsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAobmFtZSA+PSBuYW1lRW5kKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlmIChwYWNrYWdlRW5kKSB7Ci0gICAgICAgIHBhY2thZ2UgPSBuYW1lOwotICAgICAgICBwYWNrYWdlTGVuID0gcGFja2FnZUVuZC1uYW1lOwotICAgICAgICBuYW1lID0gcGFja2FnZUVuZCsxOwotICAgIH0gZWxzZSBpZiAoIXBhY2thZ2UpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgaWYgKHR5cGVFbmQpIHsKLSAgICAgICAgdHlwZSA9IG5hbWU7Ci0gICAgICAgIHR5cGVMZW4gPSB0eXBlRW5kLW5hbWU7Ci0gICAgICAgIG5hbWUgPSB0eXBlRW5kKzE7Ci0gICAgfSBlbHNlIGlmICghdHlwZSkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBpZiAobmFtZSA+PSBuYW1lRW5kKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBuYW1lTGVuID0gbmFtZUVuZC1uYW1lOwotCi0gICAgVEFCTEVfTk9JU1kocHJpbnRmKCJMb29raW5nIGZvciBpZGVudGlmaWVyOiB0eXBlPSVzLCBuYW1lPSVzLCBwYWNrYWdlPSVzXG4iLAotICAgICAgICAgICAgICAgICBTdHJpbmc4KHR5cGUsIHR5cGVMZW4pLnN0cmluZygpLAotICAgICAgICAgICAgICAgICBTdHJpbmc4KG5hbWUsIG5hbWVMZW4pLnN0cmluZygpLAotICAgICAgICAgICAgICAgICBTdHJpbmc4KHBhY2thZ2UsIHBhY2thZ2VMZW4pLnN0cmluZygpKSk7Ci0KLSAgICBjb25zdCBzaXplX3QgTkcgPSBtUGFja2FnZUdyb3Vwcy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaWc9MDsgaWc8Tkc7IGlnKyspIHsKLSAgICAgICAgY29uc3QgUGFja2FnZUdyb3VwKiBncm91cCA9IG1QYWNrYWdlR3JvdXBzW2lnXTsKLQotICAgICAgICBpZiAoc3RyemNtcDE2KHBhY2thZ2UsIHBhY2thZ2VMZW4sCi0gICAgICAgICAgICAgICAgICAgICAgZ3JvdXAtPm5hbWUuc3RyaW5nKCksIGdyb3VwLT5uYW1lLnNpemUoKSkpIHsKLSAgICAgICAgICAgIFRBQkxFX05PSVNZKHByaW50ZigiU2tpcHBpbmcgcGFja2FnZSBncm91cDogJXNcbiIsIFN0cmluZzgoZ3JvdXAtPm5hbWUpLnN0cmluZygpKSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IHNzaXplX3QgdGkgPSBncm91cC0+YmFzZVBhY2thZ2UtPnR5cGVTdHJpbmdzLmluZGV4T2ZTdHJpbmcodHlwZSwgdHlwZUxlbik7Ci0gICAgICAgIGlmICh0aSA8IDApIHsKLSAgICAgICAgICAgIFRBQkxFX05PSVNZKHByaW50ZigiVHlwZSBub3QgZm91bmQgaW4gcGFja2FnZSAlc1xuIiwgU3RyaW5nOChncm91cC0+bmFtZSkuc3RyaW5nKCkpKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3Qgc3NpemVfdCBlaSA9IGdyb3VwLT5iYXNlUGFja2FnZS0+a2V5U3RyaW5ncy5pbmRleE9mU3RyaW5nKG5hbWUsIG5hbWVMZW4pOwotICAgICAgICBpZiAoZWkgPCAwKSB7Ci0gICAgICAgICAgICBUQUJMRV9OT0lTWShwcmludGYoIk5hbWUgbm90IGZvdW5kIGluIHBhY2thZ2UgJXNcbiIsIFN0cmluZzgoZ3JvdXAtPm5hbWUpLnN0cmluZygpKSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIFRBQkxFX05PSVNZKHByaW50ZigiU2VhcmNoIGluZGljZXM6IHR5cGU9JWQsIG5hbWU9JWRcbiIsIHRpLCBlaSkpOwotCi0gICAgICAgIGNvbnN0IFR5cGUqIGNvbnN0IHR5cGVDb25maWdzID0gZ3JvdXAtPnBhY2thZ2VzWzBdLT5nZXRUeXBlKHRpKTsKLSAgICAgICAgaWYgKHR5cGVDb25maWdzID09IE5VTEwgfHwgdHlwZUNvbmZpZ3MtPmNvbmZpZ3Muc2l6ZSgpIDw9IDApIHsKLSAgICAgICAgICAgIFRBQkxFX05PSVNZKHByaW50ZigiRXhwZWN0ZWQgdHlwZSBzdHJ1Y3R1cmUgbm90IGZvdW5kIGluIHBhY2thZ2UgJXMgZm9yIGlkbmV4ICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoZ3JvdXAtPm5hbWUpLnN0cmluZygpLCB0aSkpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBzaXplX3QgTlRDID0gdHlwZUNvbmZpZ3MtPmNvbmZpZ3Muc2l6ZSgpOwotICAgICAgICBmb3IgKHNpemVfdCB0Y2k9MDsgdGNpPE5UQzsgdGNpKyspIHsKLSAgICAgICAgICAgIGNvbnN0IFJlc1RhYmxlX3R5cGUqIGNvbnN0IHR5ID0gdHlwZUNvbmZpZ3MtPmNvbmZpZ3NbdGNpXTsKLSAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90IHR5cGVPZmZzZXQgPSBkdG9obCh0eS0+ZW50cmllc1N0YXJ0KTsKLQotICAgICAgICAgICAgY29uc3QgdWludDhfdCogY29uc3QgZW5kID0gKChjb25zdCB1aW50OF90Kil0eSkgKyBkdG9obCh0eS0+aGVhZGVyLnNpemUpOwotICAgICAgICAgICAgY29uc3QgdWludDMyX3QqIGNvbnN0IGVpbmRleCA9IChjb25zdCB1aW50MzJfdCopCi0gICAgICAgICAgICAgICAgKCgoY29uc3QgdWludDhfdCopdHkpICsgZHRvaHModHktPmhlYWRlci5oZWFkZXJTaXplKSk7Ci0KLSAgICAgICAgICAgIGNvbnN0IHNpemVfdCBORSA9IGR0b2hsKHR5LT5lbnRyeUNvdW50KTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxORTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgdWludDMyX3Qgb2Zmc2V0ID0gZHRvaGwoZWluZGV4W2ldKTsKLSAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID09IFJlc1RhYmxlX3R5cGU6Ok5PX0VOVFJZKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBvZmZzZXQgKz0gdHlwZU9mZnNldDsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID4gKGR0b2hsKHR5LT5oZWFkZXIuc2l6ZSktc2l6ZW9mKFJlc1RhYmxlX2VudHJ5KSkpIHsKLSAgICAgICAgICAgICAgICAgICAgQUxPR1coIlJlc1RhYmxlX2VudHJ5IGF0ICVkIGlzIGJleW9uZCB0eXBlIGNodW5rIGRhdGEgJWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCwgZHRvaGwodHktPmhlYWRlci5zaXplKSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoKG9mZnNldCYweDMpICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgQUxPR1coIlJlc1RhYmxlX2VudHJ5IGF0ICVkIChwa2c9JWQgdHlwZT0lZCBlbnQ9JWQpIGlzIG5vdCBvbiBhbiBpbnRlZ2VyIGJvdW5kYXJ5IHdoZW4gbG9va2luZyBmb3IgJXM6JXMvJXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpb2Zmc2V0LCAoaW50KWdyb3VwLT5pZCwgKGludCl0aSsxLCAoaW50KWksCi0gICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChwYWNrYWdlLCBwYWNrYWdlTGVuKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHR5cGUsIHR5cGVMZW4pLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgobmFtZSwgbmFtZUxlbikuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgY29uc3QgUmVzVGFibGVfZW50cnkqIGNvbnN0IGVudHJ5ID0gKGNvbnN0IFJlc1RhYmxlX2VudHJ5KikKLSAgICAgICAgICAgICAgICAgICAgKCgoY29uc3QgdWludDhfdCopdHkpICsgb2Zmc2V0KTsKLSAgICAgICAgICAgICAgICBpZiAoZHRvaHMoZW50cnktPnNpemUpIDwgc2l6ZW9mKCplbnRyeSkpIHsKLSAgICAgICAgICAgICAgICAgICAgQUxPR1coIlJlc1RhYmxlX2VudHJ5IHNpemUgJWQgaXMgdG9vIHNtYWxsIiwgZHRvaHMoZW50cnktPnNpemUpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJBRF9UWVBFOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIFRBQkxFX1NVUEVSX05PSVNZKHByaW50ZigiTG9va2luZyBhdCBlbnRyeSAjJWQ6IHdhbnQgc3RyICVkLCBoYXZlICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCBlaSwgZHRvaGwoZW50cnktPmtleS5pbmRleCkpKTsKLSAgICAgICAgICAgICAgICBpZiAoZHRvaGwoZW50cnktPmtleS5pbmRleCkgPT0gKHNpemVfdCllaSkgewotICAgICAgICAgICAgICAgICAgICBpZiAob3V0VHlwZVNwZWNGbGFncykgewotICAgICAgICAgICAgICAgICAgICAgICAgKm91dFR5cGVTcGVjRmxhZ3MgPSB0eXBlQ29uZmlncy0+dHlwZVNwZWNGbGFnc1tpXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWtlUHVibGljKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm91dFR5cGVTcGVjRmxhZ3MgfD0gUmVzVGFibGVfdHlwZVNwZWM6OlNQRUNfUFVCTElDOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXNfTUFLRUlEKGdyb3VwLT5pZC0xLCB0aSwgaSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLWJvb2wgUmVzVGFibGU6OmV4cGFuZFJlc291cmNlUmVmKGNvbnN0IHVpbnQxNl90KiByZWZTdHIsIHNpemVfdCByZWZMZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcxNiogb3V0UGFja2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzE2KiBvdXRUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nMTYqIG91dE5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiogZGVmVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2KiBkZWZQYWNrYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhcioqIG91dEVycm9yTXNnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogb3V0UHVibGljT25seSkKLXsKLSAgICBjb25zdCBjaGFyMTZfdCogcGFja2FnZUVuZCA9IE5VTEw7Ci0gICAgY29uc3QgY2hhcjE2X3QqIHR5cGVFbmQgPSBOVUxMOwotICAgIGNvbnN0IGNoYXIxNl90KiBwID0gcmVmU3RyOwotICAgIGNvbnN0IGNoYXIxNl90KiBjb25zdCBlbmQgPSBwICsgcmVmTGVuOwotICAgIHdoaWxlIChwIDwgZW5kKSB7Ci0gICAgICAgIGlmICgqcCA9PSAnOicpIHBhY2thZ2VFbmQgPSBwOwotICAgICAgICBlbHNlIGlmICgqcCA9PSAnLycpIHsKLSAgICAgICAgICAgIHR5cGVFbmQgPSBwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgcCsrOwotICAgIH0KLSAgICBwID0gcmVmU3RyOwotICAgIGlmICgqcCA9PSAnQCcpIHArKzsKLQotICAgIGlmIChvdXRQdWJsaWNPbmx5ICE9IE5VTEwpIHsKLSAgICAgICAgKm91dFB1YmxpY09ubHkgPSB0cnVlOwotICAgIH0KLSAgICBpZiAoKnAgPT0gJyonKSB7Ci0gICAgICAgIHArKzsKLSAgICAgICAgaWYgKG91dFB1YmxpY09ubHkgIT0gTlVMTCkgewotICAgICAgICAgICAgKm91dFB1YmxpY09ubHkgPSBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChwYWNrYWdlRW5kKSB7Ci0gICAgICAgICpvdXRQYWNrYWdlID0gU3RyaW5nMTYocCwgcGFja2FnZUVuZC1wKTsKLSAgICAgICAgcCA9IHBhY2thZ2VFbmQrMTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoIWRlZlBhY2thZ2UpIHsKLSAgICAgICAgICAgIGlmIChvdXRFcnJvck1zZykgewotICAgICAgICAgICAgICAgICpvdXRFcnJvck1zZyA9ICJObyByZXNvdXJjZSBwYWNrYWdlIHNwZWNpZmllZCI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgKm91dFBhY2thZ2UgPSAqZGVmUGFja2FnZTsKLSAgICB9Ci0gICAgaWYgKHR5cGVFbmQpIHsKLSAgICAgICAgKm91dFR5cGUgPSBTdHJpbmcxNihwLCB0eXBlRW5kLXApOwotICAgICAgICBwID0gdHlwZUVuZCsxOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghZGVmVHlwZSkgewotICAgICAgICAgICAgaWYgKG91dEVycm9yTXNnKSB7Ci0gICAgICAgICAgICAgICAgKm91dEVycm9yTXNnID0gIk5vIHJlc291cmNlIHR5cGUgc3BlY2lmaWVkIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICAqb3V0VHlwZSA9ICpkZWZUeXBlOwotICAgIH0KLSAgICAqb3V0TmFtZSA9IFN0cmluZzE2KHAsIGVuZC1wKTsKLSAgICBpZigqKm91dFBhY2thZ2UgPT0gMCkgewotICAgICAgICBpZihvdXRFcnJvck1zZykgewotICAgICAgICAgICAgKm91dEVycm9yTXNnID0gIlJlc291cmNlIHBhY2thZ2UgY2Fubm90IGJlIGFuIGVtcHR5IHN0cmluZyI7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZigqKm91dFR5cGUgPT0gMCkgewotICAgICAgICBpZihvdXRFcnJvck1zZykgewotICAgICAgICAgICAgKm91dEVycm9yTXNnID0gIlJlc291cmNlIHR5cGUgY2Fubm90IGJlIGFuIGVtcHR5IHN0cmluZyI7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZigqKm91dE5hbWUgPT0gMCkgewotICAgICAgICBpZihvdXRFcnJvck1zZykgewotICAgICAgICAgICAgKm91dEVycm9yTXNnID0gIlJlc291cmNlIGlkIGNhbm5vdCBiZSBhbiBlbXB0eSBzdHJpbmciOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyB1aW50MzJfdCBnZXRfaGV4KGNoYXIgYywgYm9vbCogb3V0RXJyb3IpCi17Ci0gICAgaWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKSB7Ci0gICAgICAgIHJldHVybiBjIC0gJzAnOwotICAgIH0gZWxzZSBpZiAoYyA+PSAnYScgJiYgYyA8PSAnZicpIHsKLSAgICAgICAgcmV0dXJuIGMgLSAnYScgKyAweGE7Ci0gICAgfSBlbHNlIGlmIChjID49ICdBJyAmJiBjIDw9ICdGJykgewotICAgICAgICByZXR1cm4gYyAtICdBJyArIDB4YTsKLSAgICB9Ci0gICAgKm91dEVycm9yID0gdHJ1ZTsKLSAgICByZXR1cm4gMDsKLX0KLQotc3RydWN0IHVuaXRfZW50cnkKLXsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIHNpemVfdCBsZW47Ci0gICAgdWludDhfdCB0eXBlOwotICAgIHVpbnQzMl90IHVuaXQ7Ci0gICAgZmxvYXQgc2NhbGU7Ci19OwotCi1zdGF0aWMgY29uc3QgdW5pdF9lbnRyeSB1bml0TmFtZXNbXSA9IHsKLSAgICB7ICJweCIsIHN0cmxlbigicHgiKSwgUmVzX3ZhbHVlOjpUWVBFX0RJTUVOU0lPTiwgUmVzX3ZhbHVlOjpDT01QTEVYX1VOSVRfUFgsIDEuMGYgfSwKLSAgICB7ICJkaXAiLCBzdHJsZW4oImRpcCIpLCBSZXNfdmFsdWU6OlRZUEVfRElNRU5TSU9OLCBSZXNfdmFsdWU6OkNPTVBMRVhfVU5JVF9ESVAsIDEuMGYgfSwKLSAgICB7ICJkcCIsIHN0cmxlbigiZHAiKSwgUmVzX3ZhbHVlOjpUWVBFX0RJTUVOU0lPTiwgUmVzX3ZhbHVlOjpDT01QTEVYX1VOSVRfRElQLCAxLjBmIH0sCi0gICAgeyAic3AiLCBzdHJsZW4oInNwIiksIFJlc192YWx1ZTo6VFlQRV9ESU1FTlNJT04sIFJlc192YWx1ZTo6Q09NUExFWF9VTklUX1NQLCAxLjBmIH0sCi0gICAgeyAicHQiLCBzdHJsZW4oInB0IiksIFJlc192YWx1ZTo6VFlQRV9ESU1FTlNJT04sIFJlc192YWx1ZTo6Q09NUExFWF9VTklUX1BULCAxLjBmIH0sCi0gICAgeyAiaW4iLCBzdHJsZW4oImluIiksIFJlc192YWx1ZTo6VFlQRV9ESU1FTlNJT04sIFJlc192YWx1ZTo6Q09NUExFWF9VTklUX0lOLCAxLjBmIH0sCi0gICAgeyAibW0iLCBzdHJsZW4oIm1tIiksIFJlc192YWx1ZTo6VFlQRV9ESU1FTlNJT04sIFJlc192YWx1ZTo6Q09NUExFWF9VTklUX01NLCAxLjBmIH0sCi0gICAgeyAiJSIsIHN0cmxlbigiJSIpLCBSZXNfdmFsdWU6OlRZUEVfRlJBQ1RJT04sIFJlc192YWx1ZTo6Q09NUExFWF9VTklUX0ZSQUNUSU9OLCAxLjBmLzEwMCB9LAotICAgIHsgIiVwIiwgc3RybGVuKCIlcCIpLCBSZXNfdmFsdWU6OlRZUEVfRlJBQ1RJT04sIFJlc192YWx1ZTo6Q09NUExFWF9VTklUX0ZSQUNUSU9OX1BBUkVOVCwgMS4wZi8xMDAgfSwKLSAgICB7IE5VTEwsIDAsIDAsIDAsIDAgfQotfTsKLQotc3RhdGljIGJvb2wgcGFyc2VfdW5pdChjb25zdCBjaGFyKiBzdHIsIFJlc192YWx1ZSogb3V0VmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgIGZsb2F0KiBvdXRTY2FsZSwgY29uc3QgY2hhcioqIG91dEVuZCkKLXsKLSAgICBjb25zdCBjaGFyKiBlbmQgPSBzdHI7Ci0gICAgd2hpbGUgKCplbmQgIT0gMCAmJiAhaXNzcGFjZSgodW5zaWduZWQgY2hhcikqZW5kKSkgewotICAgICAgICBlbmQrKzsKLSAgICB9Ci0gICAgY29uc3Qgc2l6ZV90IGxlbiA9IGVuZC1zdHI7Ci0KLSAgICBjb25zdCBjaGFyKiByZWFsRW5kID0gZW5kOwotICAgIHdoaWxlICgqcmVhbEVuZCAhPSAwICYmIGlzc3BhY2UoKHVuc2lnbmVkIGNoYXIpKnJlYWxFbmQpKSB7Ci0gICAgICAgIHJlYWxFbmQrKzsKLSAgICB9Ci0gICAgaWYgKCpyZWFsRW5kICE9IDApIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAKLSAgICBjb25zdCB1bml0X2VudHJ5KiBjdXIgPSB1bml0TmFtZXM7Ci0gICAgd2hpbGUgKGN1ci0+bmFtZSkgewotICAgICAgICBpZiAobGVuID09IGN1ci0+bGVuICYmIHN0cm5jbXAoY3VyLT5uYW1lLCBzdHIsIGxlbikgPT0gMCkgewotICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGFUeXBlID0gY3VyLT50eXBlOwotICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGEgPSBjdXItPnVuaXQgPDwgUmVzX3ZhbHVlOjpDT01QTEVYX1VOSVRfU0hJRlQ7Ci0gICAgICAgICAgICAqb3V0U2NhbGUgPSBjdXItPnNjYWxlOwotICAgICAgICAgICAgKm91dEVuZCA9IGVuZDsKLSAgICAgICAgICAgIC8vcHJpbnRmKCJGb3VuZCB1bml0ICVzIGZvciAlc1xuIiwgY3VyLT5uYW1lLCBzdHIpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgY3VyKys7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi0KLWJvb2wgUmVzVGFibGU6OnN0cmluZ1RvSW50KGNvbnN0IGNoYXIxNl90KiBzLCBzaXplX3QgbGVuLCBSZXNfdmFsdWUqIG91dFZhbHVlKQotewotICAgIHdoaWxlIChsZW4gPiAwICYmIGlzc3BhY2UxNigqcykpIHsKLSAgICAgICAgcysrOwotICAgICAgICBsZW4tLTsKLSAgICB9Ci0KLSAgICBpZiAobGVuIDw9IDApIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHNpemVfdCBpID0gMDsKLSAgICBpbnQzMl90IHZhbCA9IDA7Ci0gICAgYm9vbCBuZWcgPSBmYWxzZTsKLQotICAgIGlmICgqcyA9PSAnLScpIHsKLSAgICAgICAgbmVnID0gdHJ1ZTsKLSAgICAgICAgaSsrOwotICAgIH0KLQotICAgIGlmIChzW2ldIDwgJzAnIHx8IHNbaV0gPiAnOScpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIC8vIERlY2ltYWwgb3IgaGV4PwotICAgIGlmIChzW2ldID09ICcwJyAmJiBzW2krMV0gPT0gJ3gnKSB7Ci0gICAgICAgIGlmIChvdXRWYWx1ZSkKLSAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhVHlwZSA9IG91dFZhbHVlLT5UWVBFX0lOVF9IRVg7Ci0gICAgICAgIGkgKz0gMjsKLSAgICAgICAgYm9vbCBlcnJvciA9IGZhbHNlOwotICAgICAgICB3aGlsZSAoaSA8IGxlbiAmJiAhZXJyb3IpIHsKLSAgICAgICAgICAgIHZhbCA9ICh2YWwqMTYpICsgZ2V0X2hleChzW2ldLCAmZXJyb3IpOwotICAgICAgICAgICAgaSsrOwotICAgICAgICB9Ci0gICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG91dFZhbHVlKQotICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGFUeXBlID0gb3V0VmFsdWUtPlRZUEVfSU5UX0RFQzsKLSAgICAgICAgd2hpbGUgKGkgPCBsZW4pIHsKLSAgICAgICAgICAgIGlmIChzW2ldIDwgJzAnIHx8IHNbaV0gPiAnOScpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB2YWwgPSAodmFsKjEwKSArIHNbaV0tJzAnOwotICAgICAgICAgICAgaSsrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKG5lZykgdmFsID0gLXZhbDsKLQotICAgIHdoaWxlIChpIDwgbGVuICYmIGlzc3BhY2UxNihzW2ldKSkgewotICAgICAgICBpKys7Ci0gICAgfQotCi0gICAgaWYgKGkgPT0gbGVuKSB7Ci0gICAgICAgIGlmIChvdXRWYWx1ZSkKLSAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhID0gdmFsOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgUmVzVGFibGU6OnN0cmluZ1RvRmxvYXQoY29uc3QgY2hhcjE2X3QqIHMsIHNpemVfdCBsZW4sIFJlc192YWx1ZSogb3V0VmFsdWUpCi17Ci0gICAgd2hpbGUgKGxlbiA+IDAgJiYgaXNzcGFjZTE2KCpzKSkgewotICAgICAgICBzKys7Ci0gICAgICAgIGxlbi0tOwotICAgIH0KLQotICAgIGlmIChsZW4gPD0gMCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgY2hhciBidWZbMTI4XTsKLSAgICBpbnQgaT0wOwotICAgIHdoaWxlIChsZW4gPiAwICYmICpzICE9IDAgJiYgaSA8IDEyNikgewotICAgICAgICBpZiAoKnMgPiAyNTUpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBidWZbaSsrXSA9ICpzKys7Ci0gICAgICAgIGxlbi0tOwotICAgIH0KLQotICAgIGlmIChsZW4gPiAwKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKGJ1ZlswXSA8ICcwJyAmJiBidWZbMF0gPiAnOScgJiYgYnVmWzBdICE9ICcuJykgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgYnVmW2ldID0gMDsKLSAgICBjb25zdCBjaGFyKiBlbmQ7Ci0gICAgZmxvYXQgZiA9IHN0cnRvZihidWYsIChjaGFyKiopJmVuZCk7Ci0KLSAgICBpZiAoKmVuZCAhPSAwICYmICFpc3NwYWNlKCh1bnNpZ25lZCBjaGFyKSplbmQpKSB7Ci0gICAgICAgIC8vIE1pZ2h0IGJlIGEgdW5pdC4uLgotICAgICAgICBmbG9hdCBzY2FsZTsKLSAgICAgICAgaWYgKHBhcnNlX3VuaXQoZW5kLCBvdXRWYWx1ZSwgJnNjYWxlLCAmZW5kKSkgewotICAgICAgICAgICAgZiAqPSBzY2FsZTsKLSAgICAgICAgICAgIGNvbnN0IGJvb2wgbmVnID0gZiA8IDA7Ci0gICAgICAgICAgICBpZiAobmVnKSBmID0gLWY7Ci0gICAgICAgICAgICB1aW50NjRfdCBiaXRzID0gKHVpbnQ2NF90KShmKigxPDwyMykrLjVmKTsKLSAgICAgICAgICAgIHVpbnQzMl90IHJhZGl4OwotICAgICAgICAgICAgdWludDMyX3Qgc2hpZnQ7Ci0gICAgICAgICAgICBpZiAoKGJpdHMmMHg3ZmZmZmYpID09IDApIHsKLSAgICAgICAgICAgICAgICAvLyBBbHdheXMgdXNlIDIzcDAgaWYgdGhlcmUgaXMgbm8gZnJhY3Rpb24sIGp1c3QgdG8gbWFrZQotICAgICAgICAgICAgICAgIC8vIHRoaW5ncyBlYXNpZXIgdG8gcmVhZC4KLSAgICAgICAgICAgICAgICByYWRpeCA9IFJlc192YWx1ZTo6Q09NUExFWF9SQURJWF8yM3AwOwotICAgICAgICAgICAgICAgIHNoaWZ0ID0gMjM7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKChiaXRzJjB4ZmZmZmZmZmZmZjgwMDAwMExMKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgLy8gTWFnbml0dWRlIGlzIHplcm8gLS0gY2FuIGZpdCBpbiAwIGJpdHMgb2YgcHJlY2lzaW9uLgotICAgICAgICAgICAgICAgIHJhZGl4ID0gUmVzX3ZhbHVlOjpDT01QTEVYX1JBRElYXzBwMjM7Ci0gICAgICAgICAgICAgICAgc2hpZnQgPSAwOwotICAgICAgICAgICAgfSBlbHNlIGlmICgoYml0cyYweGZmZmZmZmZmODAwMDAwMDBMTCkgPT0gMCkgewotICAgICAgICAgICAgICAgIC8vIE1hZ25pdHVkZSBjYW4gZml0IGluIDggYml0cyBvZiBwcmVjaXNpb24uCi0gICAgICAgICAgICAgICAgcmFkaXggPSBSZXNfdmFsdWU6OkNPTVBMRVhfUkFESVhfOHAxNTsKLSAgICAgICAgICAgICAgICBzaGlmdCA9IDg7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKChiaXRzJjB4ZmZmZmZmODAwMDAwMDAwMExMKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgLy8gTWFnbml0dWRlIGNhbiBmaXQgaW4gMTYgYml0cyBvZiBwcmVjaXNpb24uCi0gICAgICAgICAgICAgICAgcmFkaXggPSBSZXNfdmFsdWU6OkNPTVBMRVhfUkFESVhfMTZwNzsKLSAgICAgICAgICAgICAgICBzaGlmdCA9IDE2OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBNYWduaXR1ZGUgbmVlZHMgZW50aXJlIHJhbmdlLCBzbyBubyBmcmFjdGlvbmFsIHBhcnQuCi0gICAgICAgICAgICAgICAgcmFkaXggPSBSZXNfdmFsdWU6OkNPTVBMRVhfUkFESVhfMjNwMDsKLSAgICAgICAgICAgICAgICBzaGlmdCA9IDIzOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaW50MzJfdCBtYW50aXNzYSA9IChpbnQzMl90KSgKLSAgICAgICAgICAgICAgICAoYml0cz4+c2hpZnQpICYgUmVzX3ZhbHVlOjpDT01QTEVYX01BTlRJU1NBX01BU0spOwotICAgICAgICAgICAgaWYgKG5lZykgewotICAgICAgICAgICAgICAgIG1hbnRpc3NhID0gKC1tYW50aXNzYSkgJiBSZXNfdmFsdWU6OkNPTVBMRVhfTUFOVElTU0FfTUFTSzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhIHw9IAotICAgICAgICAgICAgICAgIChyYWRpeDw8UmVzX3ZhbHVlOjpDT01QTEVYX1JBRElYX1NISUZUKQotICAgICAgICAgICAgICAgIHwgKG1hbnRpc3NhPDxSZXNfdmFsdWU6OkNPTVBMRVhfTUFOVElTU0FfU0hJRlQpOwotICAgICAgICAgICAgLy9wcmludGYoIklucHV0IHZhbHVlOiAlZiAweCUwMTZMeCwgbXVsdDogJWYsIHJhZGl4OiAlZCwgc2hpZnQ6ICVkLCBmaW5hbDogMHglMDh4XG4iLAotICAgICAgICAgICAgLy8gICAgICAgZiAqIChuZWcgPyAtMSA6IDEpLCBiaXRzLCBmKigxPDwyMyksCi0gICAgICAgICAgICAvLyAgICAgICByYWRpeCwgc2hpZnQsIG91dFZhbHVlLT5kYXRhKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICB3aGlsZSAoKmVuZCAhPSAwICYmIGlzc3BhY2UoKHVuc2lnbmVkIGNoYXIpKmVuZCkpIHsKLSAgICAgICAgZW5kKys7Ci0gICAgfQotCi0gICAgaWYgKCplbmQgPT0gMCkgewotICAgICAgICBpZiAob3V0VmFsdWUpIHsKLSAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhVHlwZSA9IG91dFZhbHVlLT5UWVBFX0ZMT0FUOwotICAgICAgICAgICAgKihmbG9hdCopKCZvdXRWYWx1ZS0+ZGF0YSkgPSBmOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgUmVzVGFibGU6OnN0cmluZ1RvVmFsdWUoUmVzX3ZhbHVlKiBvdXRWYWx1ZSwgU3RyaW5nMTYqIG91dFN0cmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhcjE2X3QqIHMsIHNpemVfdCBsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcHJlc2VydmVTcGFjZXMsIGJvb2wgY29lcmNlVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgYXR0cklELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiogZGVmVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYqIGRlZlBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjY2Vzc29yKiBhY2Nlc3NvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYWNjZXNzb3JDb29raWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGF0dHJUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGVuZm9yY2VQcml2YXRlKSBjb25zdAotewotICAgIGJvb2wgbG9jYWxpemF0aW9uU2V0dGluZyA9IGFjY2Vzc29yICE9IE5VTEwgJiYgYWNjZXNzb3ItPmdldExvY2FsaXphdGlvblNldHRpbmcoKTsKLSAgICBjb25zdCBjaGFyKiBlcnJvck1zZyA9IE5VTEw7Ci0KLSAgICBvdXRWYWx1ZS0+c2l6ZSA9IHNpemVvZihSZXNfdmFsdWUpOwotICAgIG91dFZhbHVlLT5yZXMwID0gMDsKLQotICAgIC8vIEZpcnN0IHN0cmlwIGxlYWRpbmcvdHJhaWxpbmcgd2hpdGVzcGFjZS4gIERvIHRoaXMgYmVmb3JlIGhhbmRsaW5nCi0gICAgLy8gZXNjYXBlcywgc28gdGhleSBjYW4gYmUgdXNlZCB0byBmb3JjZSB3aGl0ZXNwYWNlIGludG8gdGhlIHN0cmluZy4KLSAgICBpZiAoIXByZXNlcnZlU3BhY2VzKSB7Ci0gICAgICAgIHdoaWxlIChsZW4gPiAwICYmIGlzc3BhY2UxNigqcykpIHsKLSAgICAgICAgICAgIHMrKzsKLSAgICAgICAgICAgIGxlbi0tOwotICAgICAgICB9Ci0gICAgICAgIHdoaWxlIChsZW4gPiAwICYmIGlzc3BhY2UxNihzW2xlbi0xXSkpIHsKLSAgICAgICAgICAgIGxlbi0tOwotICAgICAgICB9Ci0gICAgICAgIC8vIElmIHRoZSBzdHJpbmcgZW5kcyB3aXRoICdcJywgdGhlbiB3ZSBrZWVwIHRoZSBzcGFjZSBhZnRlciBpdC4KLSAgICAgICAgaWYgKGxlbiA+IDAgJiYgc1tsZW4tMV0gPT0gJ1xcJyAmJiBzW2xlbl0gIT0gMCkgewotICAgICAgICAgICAgbGVuKys7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvL3ByaW50ZigiVmFsdWUgZm9yOiAlc1xuIiwgU3RyaW5nOChzLCBsZW4pLnN0cmluZygpKTsKLQotICAgIHVpbnQzMl90IGwxMG5SZXEgPSBSZXNUYWJsZV9tYXA6OkwxME5fTk9UX1JFUVVJUkVEOwotICAgIHVpbnQzMl90IGF0dHJNaW4gPSAweDgwMDAwMDAwLCBhdHRyTWF4ID0gMHg3ZmZmZmZmZjsKLSAgICBib29sIGZyb21BY2Nlc3NvciA9IGZhbHNlOwotICAgIGlmIChhdHRySUQgIT0gMCAmJiAhUmVzX0lOVEVSTkFMSUQoYXR0cklEKSkgewotICAgICAgICBjb25zdCBzc2l6ZV90IHAgPSBnZXRSZXNvdXJjZVBhY2thZ2VJbmRleChhdHRySUQpOwotICAgICAgICBjb25zdCBiYWdfZW50cnkqIGJhZzsKLSAgICAgICAgc3NpemVfdCBjbnQgPSBwID49IDAgPyBsb2NrQmFnKGF0dHJJRCwgJmJhZykgOiAtMTsKLSAgICAgICAgLy9wcmludGYoIkZvciBhdHRyIDB4JTA4eCBnb3QgYmFnIG9mICVkXG4iLCBhdHRySUQsIGNudCk7Ci0gICAgICAgIGlmIChjbnQgPj0gMCkgewotICAgICAgICAgICAgd2hpbGUgKGNudCA+IDApIHsKLSAgICAgICAgICAgICAgICAvL3ByaW50ZigiRW50cnkgMHglMDh4ID0gMHglMDh4XG4iLCBiYWctPm1hcC5uYW1lLmlkZW50LCBiYWctPm1hcC52YWx1ZS5kYXRhKTsKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKGJhZy0+bWFwLm5hbWUuaWRlbnQpIHsKLSAgICAgICAgICAgICAgICBjYXNlIFJlc1RhYmxlX21hcDo6QVRUUl9UWVBFOgotICAgICAgICAgICAgICAgICAgICBhdHRyVHlwZSA9IGJhZy0+bWFwLnZhbHVlLmRhdGE7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfbWFwOjpBVFRSX01JTjoKLSAgICAgICAgICAgICAgICAgICAgYXR0ck1pbiA9IGJhZy0+bWFwLnZhbHVlLmRhdGE7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfbWFwOjpBVFRSX01BWDoKLSAgICAgICAgICAgICAgICAgICAgYXR0ck1heCA9IGJhZy0+bWFwLnZhbHVlLmRhdGE7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgUmVzVGFibGVfbWFwOjpBVFRSX0wxME46Ci0gICAgICAgICAgICAgICAgICAgIGwxMG5SZXEgPSBiYWctPm1hcC52YWx1ZS5kYXRhOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYmFnKys7Ci0gICAgICAgICAgICAgICAgY250LS07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1bmxvY2tCYWcoYmFnKTsKLSAgICAgICAgfSBlbHNlIGlmIChhY2Nlc3NvciAmJiBhY2Nlc3Nvci0+Z2V0QXR0cmlidXRlVHlwZShhdHRySUQsICZhdHRyVHlwZSkpIHsKLSAgICAgICAgICAgIGZyb21BY2Nlc3NvciA9IHRydWU7Ci0gICAgICAgICAgICBpZiAoYXR0clR5cGUgPT0gUmVzVGFibGVfbWFwOjpUWVBFX0VOVU0KLSAgICAgICAgICAgICAgICAgICAgfHwgYXR0clR5cGUgPT0gUmVzVGFibGVfbWFwOjpUWVBFX0ZMQUdTCi0gICAgICAgICAgICAgICAgICAgIHx8IGF0dHJUeXBlID09IFJlc1RhYmxlX21hcDo6VFlQRV9JTlRFR0VSKSB7Ci0gICAgICAgICAgICAgICAgYWNjZXNzb3ItPmdldEF0dHJpYnV0ZU1pbihhdHRySUQsICZhdHRyTWluKTsKLSAgICAgICAgICAgICAgICBhY2Nlc3Nvci0+Z2V0QXR0cmlidXRlTWF4KGF0dHJJRCwgJmF0dHJNYXgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGxvY2FsaXphdGlvblNldHRpbmcpIHsKLSAgICAgICAgICAgICAgICBsMTBuUmVxID0gYWNjZXNzb3ItPmdldEF0dHJpYnV0ZUwxME4oYXR0cklEKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGNvbnN0IGJvb2wgY2FuU3RyaW5nQ29lcmNlID0KLSAgICAgICAgY29lcmNlVHlwZSAmJiAoYXR0clR5cGUmUmVzVGFibGVfbWFwOjpUWVBFX1NUUklORykgIT0gMDsKLQotICAgIGlmICgqcyA9PSAnQCcpIHsKLSAgICAgICAgb3V0VmFsdWUtPmRhdGFUeXBlID0gb3V0VmFsdWUtPlRZUEVfUkVGRVJFTkNFOwotCi0gICAgICAgIC8vIE5vdGU6IHdlIGRvbid0IGNoZWNrIGF0dHJUeXBlIGhlcmUgYmVjYXVzZSB0aGUgcmVmZXJlbmNlIGNhbgotICAgICAgICAvLyBiZSB0byBhbnkgb3RoZXIgdHlwZTsgd2UganVzdCBuZWVkIHRvIGNvdW50IG9uIHRoZSBjbGllbnQgbWFraW5nCi0gICAgICAgIC8vIHN1cmUgdGhlIHJlZmVyZW5jZWQgdHlwZSBpcyBjb3JyZWN0LgotICAgICAgICAKLSAgICAgICAgLy9wcmludGYoIkxvb2tpbmcgdXAgcmVmOiAlc1xuIiwgU3RyaW5nOChzLCBsZW4pLnN0cmluZygpKTsKLQotICAgICAgICAvLyBJdCdzIGEgcmVmZXJlbmNlIQotICAgICAgICBpZiAobGVuID09IDUgJiYgc1sxXT09J24nICYmIHNbMl09PSd1JyAmJiBzWzNdPT0nbCcgJiYgc1s0XT09J2wnKSB7Ci0gICAgICAgICAgICBvdXRWYWx1ZS0+ZGF0YSA9IDA7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGJvb2wgY3JlYXRlSWZOb3RGb3VuZCA9IGZhbHNlOwotICAgICAgICAgICAgY29uc3QgY2hhcjE2X3QqIHJlc291cmNlUmVmTmFtZTsKLSAgICAgICAgICAgIGludCByZXNvdXJjZU5hbWVMZW47Ci0gICAgICAgICAgICBpZiAobGVuID4gMiAmJiBzWzFdID09ICcrJykgewotICAgICAgICAgICAgICAgIGNyZWF0ZUlmTm90Rm91bmQgPSB0cnVlOwotICAgICAgICAgICAgICAgIHJlc291cmNlUmVmTmFtZSA9IHMgKyAyOwotICAgICAgICAgICAgICAgIHJlc291cmNlTmFtZUxlbiA9IGxlbiAtIDI7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGxlbiA+IDIgJiYgc1sxXSA9PSAnKicpIHsKLSAgICAgICAgICAgICAgICBlbmZvcmNlUHJpdmF0ZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHJlc291cmNlUmVmTmFtZSA9IHMgKyAyOwotICAgICAgICAgICAgICAgIHJlc291cmNlTmFtZUxlbiA9IGxlbiAtIDI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGNyZWF0ZUlmTm90Rm91bmQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICByZXNvdXJjZVJlZk5hbWUgPSBzICsgMTsKLSAgICAgICAgICAgICAgICByZXNvdXJjZU5hbWVMZW4gPSBsZW4gLSAxOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgU3RyaW5nMTYgcGFja2FnZSwgdHlwZSwgbmFtZTsKLSAgICAgICAgICAgIGlmICghZXhwYW5kUmVzb3VyY2VSZWYocmVzb3VyY2VSZWZOYW1lLHJlc291cmNlTmFtZUxlbiwgJnBhY2thZ2UsICZ0eXBlLCAmbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmVHlwZSwgZGVmUGFja2FnZSwgJmVycm9yTXNnKSkgewotICAgICAgICAgICAgICAgIGlmIChhY2Nlc3NvciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFjY2Vzc29yLT5yZXBvcnRFcnJvcihhY2Nlc3NvckNvb2tpZSwgZXJyb3JNc2cpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHVpbnQzMl90IHNwZWNGbGFncyA9IDA7Ci0gICAgICAgICAgICB1aW50MzJfdCByaWQgPSBpZGVudGlmaWVyRm9yTmFtZShuYW1lLnN0cmluZygpLCBuYW1lLnNpemUoKSwgdHlwZS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgdHlwZS5zaXplKCksIHBhY2thZ2Uuc3RyaW5nKCksIHBhY2thZ2Uuc2l6ZSgpLCAmc3BlY0ZsYWdzKTsKLSAgICAgICAgICAgIGlmIChyaWQgIT0gMCkgewotICAgICAgICAgICAgICAgIGlmIChlbmZvcmNlUHJpdmF0ZSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoKHNwZWNGbGFncyZSZXNUYWJsZV90eXBlU3BlYzo6U1BFQ19QVUJMSUMpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY2Nlc3NvciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3ItPnJlcG9ydEVycm9yKGFjY2Vzc29yQ29va2llLCAiUmVzb3VyY2UgaXMgbm90IHB1YmxpYy4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoIWFjY2Vzc29yKSB7Ci0gICAgICAgICAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhID0gcmlkOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmlkID0gUmVzX01BS0VJRCgKLSAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3ItPmdldFJlbWFwcGVkUGFja2FnZShSZXNfR0VUUEFDS0FHRShyaWQpKSwKLSAgICAgICAgICAgICAgICAgICAgUmVzX0dFVFRZUEUocmlkKSwgUmVzX0dFVEVOVFJZKHJpZCkpOwotICAgICAgICAgICAgICAgIFRBQkxFX05PSVNZKHByaW50ZigiSW5jbCAlczolcy8lczogMHglMDh4XG4iLAotICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHBhY2thZ2UpLnN0cmluZygpLCBTdHJpbmc4KHR5cGUpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KG5hbWUpLnN0cmluZygpLCByaWQpKTsKLSAgICAgICAgICAgICAgICBvdXRWYWx1ZS0+ZGF0YSA9IHJpZDsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKGFjY2Vzc29yKSB7Ci0gICAgICAgICAgICAgICAgdWludDMyX3QgcmlkID0gYWNjZXNzb3ItPmdldEN1c3RvbVJlc291cmNlV2l0aENyZWF0aW9uKHBhY2thZ2UsIHR5cGUsIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUlmTm90Rm91bmQpOwotICAgICAgICAgICAgICAgIGlmIChyaWQgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICBUQUJMRV9OT0lTWShwcmludGYoIlBja2cgJXM6JXMvJXM6IDB4JTA4eFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgocGFja2FnZSkuc3RyaW5nKCksIFN0cmluZzgodHlwZSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KG5hbWUpLnN0cmluZygpLCByaWQpKTsKLSAgICAgICAgICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGEgPSByaWQ7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChhY2Nlc3NvciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nvci0+cmVwb3J0RXJyb3IoYWNjZXNzb3JDb29raWUsICJObyByZXNvdXJjZSBmb3VuZCB0aGF0IG1hdGNoZXMgdGhlIGdpdmVuIG5hbWUiKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgLy8gaWYgd2UgZ290IHRvIGhlcmUsIGFuZCBsb2NhbGl6YXRpb24gaXMgcmVxdWlyZWQgYW5kIGl0J3Mgbm90IGEgcmVmZXJlbmNlLAotICAgIC8vIGNvbXBsYWluIGFuZCBiYWlsLgotICAgIGlmIChsMTBuUmVxID09IFJlc1RhYmxlX21hcDo6TDEwTl9TVUdHRVNURUQpIHsKLSAgICAgICAgaWYgKGxvY2FsaXphdGlvblNldHRpbmcpIHsKLSAgICAgICAgICAgIGlmIChhY2Nlc3NvciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgYWNjZXNzb3ItPnJlcG9ydEVycm9yKGFjY2Vzc29yQ29va2llLCAiVGhpcyBhdHRyaWJ1dGUgbXVzdCBiZSBsb2NhbGl6ZWQuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgaWYgKCpzID09ICcjJykgewotICAgICAgICAvLyBJdCdzIGEgY29sb3IhICBDb252ZXJ0IHRvIGFuIGludGVnZXIgb2YgdGhlIGZvcm0gMHhhYXJyZ2diYi4KLSAgICAgICAgdWludDMyX3QgY29sb3IgPSAwOwotICAgICAgICBib29sIGVycm9yID0gZmFsc2U7Ci0gICAgICAgIGlmIChsZW4gPT0gNCkgewotICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGFUeXBlID0gb3V0VmFsdWUtPlRZUEVfSU5UX0NPTE9SX1JHQjQ7Ci0gICAgICAgICAgICBjb2xvciB8PSAweEZGMDAwMDAwOwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzFdLCAmZXJyb3IpIDw8IDIwOwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzFdLCAmZXJyb3IpIDw8IDE2OwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzJdLCAmZXJyb3IpIDw8IDEyOwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzJdLCAmZXJyb3IpIDw8IDg7Ci0gICAgICAgICAgICBjb2xvciB8PSBnZXRfaGV4KHNbM10sICZlcnJvcikgPDwgNDsKLSAgICAgICAgICAgIGNvbG9yIHw9IGdldF9oZXgoc1szXSwgJmVycm9yKTsKLSAgICAgICAgfSBlbHNlIGlmIChsZW4gPT0gNSkgewotICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGFUeXBlID0gb3V0VmFsdWUtPlRZUEVfSU5UX0NPTE9SX0FSR0I0OwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzFdLCAmZXJyb3IpIDw8IDI4OwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzFdLCAmZXJyb3IpIDw8IDI0OwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzJdLCAmZXJyb3IpIDw8IDIwOwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzJdLCAmZXJyb3IpIDw8IDE2OwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzNdLCAmZXJyb3IpIDw8IDEyOwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzNdLCAmZXJyb3IpIDw8IDg7Ci0gICAgICAgICAgICBjb2xvciB8PSBnZXRfaGV4KHNbNF0sICZlcnJvcikgPDwgNDsKLSAgICAgICAgICAgIGNvbG9yIHw9IGdldF9oZXgoc1s0XSwgJmVycm9yKTsKLSAgICAgICAgfSBlbHNlIGlmIChsZW4gPT0gNykgewotICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGFUeXBlID0gb3V0VmFsdWUtPlRZUEVfSU5UX0NPTE9SX1JHQjg7Ci0gICAgICAgICAgICBjb2xvciB8PSAweEZGMDAwMDAwOwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzFdLCAmZXJyb3IpIDw8IDIwOwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzJdLCAmZXJyb3IpIDw8IDE2OwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzNdLCAmZXJyb3IpIDw8IDEyOwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzRdLCAmZXJyb3IpIDw8IDg7Ci0gICAgICAgICAgICBjb2xvciB8PSBnZXRfaGV4KHNbNV0sICZlcnJvcikgPDwgNDsKLSAgICAgICAgICAgIGNvbG9yIHw9IGdldF9oZXgoc1s2XSwgJmVycm9yKTsKLSAgICAgICAgfSBlbHNlIGlmIChsZW4gPT0gOSkgewotICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGFUeXBlID0gb3V0VmFsdWUtPlRZUEVfSU5UX0NPTE9SX0FSR0I4OwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzFdLCAmZXJyb3IpIDw8IDI4OwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzJdLCAmZXJyb3IpIDw8IDI0OwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzNdLCAmZXJyb3IpIDw8IDIwOwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzRdLCAmZXJyb3IpIDw8IDE2OwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzVdLCAmZXJyb3IpIDw8IDEyOwotICAgICAgICAgICAgY29sb3IgfD0gZ2V0X2hleChzWzZdLCAmZXJyb3IpIDw8IDg7Ci0gICAgICAgICAgICBjb2xvciB8PSBnZXRfaGV4KHNbN10sICZlcnJvcikgPDwgNDsKLSAgICAgICAgICAgIGNvbG9yIHw9IGdldF9oZXgoc1s4XSwgJmVycm9yKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVycm9yID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIWVycm9yKSB7Ci0gICAgICAgICAgICBpZiAoKGF0dHJUeXBlJlJlc1RhYmxlX21hcDo6VFlQRV9DT0xPUikgPT0gMCkgewotICAgICAgICAgICAgICAgIGlmICghY2FuU3RyaW5nQ29lcmNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhY2Nlc3NvciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3Nvci0+cmVwb3J0RXJyb3IoYWNjZXNzb3JDb29raWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb2xvciB0eXBlcyBub3QgYWxsb3dlZCIpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhID0gY29sb3I7Ci0gICAgICAgICAgICAgICAgLy9wcmludGYoIkNvbG9yIGlucHV0PSVzLCBvdXRwdXQ9MHgleFxuIiwgU3RyaW5nOChzLCBsZW4pLnN0cmluZygpLCBjb2xvcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoKGF0dHJUeXBlJlJlc1RhYmxlX21hcDo6VFlQRV9DT0xPUikgIT0gMCkgewotICAgICAgICAgICAgICAgIGlmIChhY2Nlc3NvciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFjY2Vzc29yLT5yZXBvcnRFcnJvcihhY2Nlc3NvckNvb2tpZSwgIkNvbG9yIHZhbHVlIG5vdCB2YWxpZCAtLSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIG11c3QgYmUgI3JnYiwgI2FyZ2IsICNycmdnYmIsIG9yICNhYXJyZ2diYiIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAjaWYgMAotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IENvbG9yIElEICVzIHZhbHVlICVzIGlzIG5vdCB2YWxpZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJSZXNvdXJjZSBGaWxlIiwgLy8oY29uc3QgY2hhciopaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCgqY3VyVGFnKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgocywgbGVuKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgI2VuZGlmCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCpzID09ICc/JykgewotICAgICAgICBvdXRWYWx1ZS0+ZGF0YVR5cGUgPSBvdXRWYWx1ZS0+VFlQRV9BVFRSSUJVVEU7Ci0KLSAgICAgICAgLy8gTm90ZTogd2UgZG9uJ3QgY2hlY2sgYXR0clR5cGUgaGVyZSBiZWNhdXNlIHRoZSByZWZlcmVuY2UgY2FuCi0gICAgICAgIC8vIGJlIHRvIGFueSBvdGhlciB0eXBlOyB3ZSBqdXN0IG5lZWQgdG8gY291bnQgb24gdGhlIGNsaWVudCBtYWtpbmcKLSAgICAgICAgLy8gc3VyZSB0aGUgcmVmZXJlbmNlZCB0eXBlIGlzIGNvcnJlY3QuCi0KLSAgICAgICAgLy9wcmludGYoIkxvb2tpbmcgdXAgYXR0cjogJXNcbiIsIFN0cmluZzgocywgbGVuKS5zdHJpbmcoKSk7Ci0KLSAgICAgICAgc3RhdGljIGNvbnN0IFN0cmluZzE2IGF0dHIxNigiYXR0ciIpOwotICAgICAgICBTdHJpbmcxNiBwYWNrYWdlLCB0eXBlLCBuYW1lOwotICAgICAgICBpZiAoIWV4cGFuZFJlc291cmNlUmVmKHMrMSwgbGVuLTEsICZwYWNrYWdlLCAmdHlwZSwgJm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmF0dHIxNiwgZGVmUGFja2FnZSwgJmVycm9yTXNnKSkgewotICAgICAgICAgICAgaWYgKGFjY2Vzc29yICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBhY2Nlc3Nvci0+cmVwb3J0RXJyb3IoYWNjZXNzb3JDb29raWUsIGVycm9yTXNnKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vcHJpbnRmKCJQa2c6ICVzLCBUeXBlOiAlcywgTmFtZTogJXNcbiIsCi0gICAgICAgIC8vICAgICAgIFN0cmluZzgocGFja2FnZSkuc3RyaW5nKCksIFN0cmluZzgodHlwZSkuc3RyaW5nKCksCi0gICAgICAgIC8vICAgICAgIFN0cmluZzgobmFtZSkuc3RyaW5nKCkpOwotICAgICAgICB1aW50MzJfdCBzcGVjRmxhZ3MgPSAwOwotICAgICAgICB1aW50MzJfdCByaWQgPSAKLSAgICAgICAgICAgIGlkZW50aWZpZXJGb3JOYW1lKG5hbWUuc3RyaW5nKCksIG5hbWUuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zdHJpbmcoKSwgdHlwZS5zaXplKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrYWdlLnN0cmluZygpLCBwYWNrYWdlLnNpemUoKSwgJnNwZWNGbGFncyk7Ci0gICAgICAgIGlmIChyaWQgIT0gMCkgewotICAgICAgICAgICAgaWYgKGVuZm9yY2VQcml2YXRlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKChzcGVjRmxhZ3MmUmVzVGFibGVfdHlwZVNwZWM6OlNQRUNfUFVCTElDKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhY2Nlc3NvciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3Nvci0+cmVwb3J0RXJyb3IoYWNjZXNzb3JDb29raWUsICJBdHRyaWJ1dGUgaXMgbm90IHB1YmxpYy4iKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCFhY2Nlc3NvcikgewotICAgICAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhID0gcmlkOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmlkID0gUmVzX01BS0VJRCgKLSAgICAgICAgICAgICAgICBhY2Nlc3Nvci0+Z2V0UmVtYXBwZWRQYWNrYWdlKFJlc19HRVRQQUNLQUdFKHJpZCkpLAotICAgICAgICAgICAgICAgIFJlc19HRVRUWVBFKHJpZCksIFJlc19HRVRFTlRSWShyaWQpKTsKLSAgICAgICAgICAgIC8vcHJpbnRmKCJJbmNsICVzOiVzLyVzOiAweCUwOHhcbiIsCi0gICAgICAgICAgICAvLyAgICAgICBTdHJpbmc4KHBhY2thZ2UpLnN0cmluZygpLCBTdHJpbmc4KHR5cGUpLnN0cmluZygpLAotICAgICAgICAgICAgLy8gICAgICAgU3RyaW5nOChuYW1lKS5zdHJpbmcoKSwgcmlkKTsKLSAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhID0gcmlkOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoYWNjZXNzb3IpIHsKLSAgICAgICAgICAgIHVpbnQzMl90IHJpZCA9IGFjY2Vzc29yLT5nZXRDdXN0b21SZXNvdXJjZShwYWNrYWdlLCB0eXBlLCBuYW1lKTsKLSAgICAgICAgICAgIGlmIChyaWQgIT0gMCkgewotICAgICAgICAgICAgICAgIC8vcHJpbnRmKCJNaW5lICVzOiVzLyVzOiAweCUwOHhcbiIsCi0gICAgICAgICAgICAgICAgLy8gICAgICAgU3RyaW5nOChwYWNrYWdlKS5zdHJpbmcoKSwgU3RyaW5nOCh0eXBlKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAvLyAgICAgICBTdHJpbmc4KG5hbWUpLnN0cmluZygpLCByaWQpOwotICAgICAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhID0gcmlkOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGFjY2Vzc29yICE9IE5VTEwpIHsKLSAgICAgICAgICAgIGFjY2Vzc29yLT5yZXBvcnRFcnJvcihhY2Nlc3NvckNvb2tpZSwgIk5vIHJlc291cmNlIGZvdW5kIHRoYXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gbmFtZSIpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoc3RyaW5nVG9JbnQocywgbGVuLCBvdXRWYWx1ZSkpIHsKLSAgICAgICAgaWYgKChhdHRyVHlwZSZSZXNUYWJsZV9tYXA6OlRZUEVfSU5URUdFUikgPT0gMCkgewotICAgICAgICAgICAgLy8gSWYgdGhpcyB0eXBlIGRvZXMgbm90IGFsbG93IGludGVnZXJzLCBidXQgZG9lcyBhbGxvdyBmbG9hdHMsCi0gICAgICAgICAgICAvLyBmYWxsIHRocm91Z2ggb24gdGhpcyBlcnJvciBjYXNlIGJlY2F1c2UgdGhlIGZsb2F0IHR5cGUgc2hvdWxkCi0gICAgICAgICAgICAvLyBiZSBhYmxlIHRvIGFjY2VwdCBhbnkgaW50ZWdlciB2YWx1ZS4KLSAgICAgICAgICAgIGlmICghY2FuU3RyaW5nQ29lcmNlICYmIChhdHRyVHlwZSZSZXNUYWJsZV9tYXA6OlRZUEVfRkxPQVQpID09IDApIHsKLSAgICAgICAgICAgICAgICBpZiAoYWNjZXNzb3IgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBhY2Nlc3Nvci0+cmVwb3J0RXJyb3IoYWNjZXNzb3JDb29raWUsICJJbnRlZ2VyIHR5cGVzIG5vdCBhbGxvd2VkIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmICgoKGludDMyX3Qpb3V0VmFsdWUtPmRhdGEpIDwgKChpbnQzMl90KWF0dHJNaW4pCi0gICAgICAgICAgICAgICAgICAgIHx8ICgoaW50MzJfdClvdXRWYWx1ZS0+ZGF0YSkgPiAoKGludDMyX3QpYXR0ck1heCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoYWNjZXNzb3IgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBhY2Nlc3Nvci0+cmVwb3J0RXJyb3IoYWNjZXNzb3JDb29raWUsICJJbnRlZ2VyIHZhbHVlIG91dCBvZiByYW5nZSIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChzdHJpbmdUb0Zsb2F0KHMsIGxlbiwgb3V0VmFsdWUpKSB7Ci0gICAgICAgIGlmIChvdXRWYWx1ZS0+ZGF0YVR5cGUgPT0gUmVzX3ZhbHVlOjpUWVBFX0RJTUVOU0lPTikgewotICAgICAgICAgICAgaWYgKChhdHRyVHlwZSZSZXNUYWJsZV9tYXA6OlRZUEVfRElNRU5TSU9OKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIWNhblN0cmluZ0NvZXJjZSkgewotICAgICAgICAgICAgICAgIGlmIChhY2Nlc3NvciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFjY2Vzc29yLT5yZXBvcnRFcnJvcihhY2Nlc3NvckNvb2tpZSwgIkRpbWVuc2lvbiB0eXBlcyBub3QgYWxsb3dlZCIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAob3V0VmFsdWUtPmRhdGFUeXBlID09IFJlc192YWx1ZTo6VFlQRV9GUkFDVElPTikgewotICAgICAgICAgICAgaWYgKChhdHRyVHlwZSZSZXNUYWJsZV9tYXA6OlRZUEVfRlJBQ1RJT04pICE9IDApIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghY2FuU3RyaW5nQ29lcmNlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGFjY2Vzc29yICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3ItPnJlcG9ydEVycm9yKGFjY2Vzc29yQ29va2llLCAiRnJhY3Rpb24gdHlwZXMgbm90IGFsbG93ZWQiKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKChhdHRyVHlwZSZSZXNUYWJsZV9tYXA6OlRZUEVfRkxPQVQpID09IDApIHsKLSAgICAgICAgICAgIGlmICghY2FuU3RyaW5nQ29lcmNlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGFjY2Vzc29yICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3ItPnJlcG9ydEVycm9yKGFjY2Vzc29yQ29va2llLCAiRmxvYXQgdHlwZXMgbm90IGFsbG93ZWQiKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAobGVuID09IDQpIHsKLSAgICAgICAgaWYgKChzWzBdID09ICd0JyB8fCBzWzBdID09ICdUJykgJiYKLSAgICAgICAgICAgIChzWzFdID09ICdyJyB8fCBzWzFdID09ICdSJykgJiYKLSAgICAgICAgICAgIChzWzJdID09ICd1JyB8fCBzWzJdID09ICdVJykgJiYKLSAgICAgICAgICAgIChzWzNdID09ICdlJyB8fCBzWzNdID09ICdFJykpIHsKLSAgICAgICAgICAgIGlmICgoYXR0clR5cGUmUmVzVGFibGVfbWFwOjpUWVBFX0JPT0xFQU4pID09IDApIHsKLSAgICAgICAgICAgICAgICBpZiAoIWNhblN0cmluZ0NvZXJjZSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoYWNjZXNzb3IgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3ItPnJlcG9ydEVycm9yKGFjY2Vzc29yQ29va2llLCAiQm9vbGVhbiB0eXBlcyBub3QgYWxsb3dlZCIpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhVHlwZSA9IG91dFZhbHVlLT5UWVBFX0lOVF9CT09MRUFOOwotICAgICAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhID0gKHVpbnQzMl90KS0xOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGxlbiA9PSA1KSB7Ci0gICAgICAgIGlmICgoc1swXSA9PSAnZicgfHwgc1swXSA9PSAnRicpICYmCi0gICAgICAgICAgICAoc1sxXSA9PSAnYScgfHwgc1sxXSA9PSAnQScpICYmCi0gICAgICAgICAgICAoc1syXSA9PSAnbCcgfHwgc1syXSA9PSAnTCcpICYmCi0gICAgICAgICAgICAoc1szXSA9PSAncycgfHwgc1szXSA9PSAnUycpICYmCi0gICAgICAgICAgICAoc1s0XSA9PSAnZScgfHwgc1s0XSA9PSAnRScpKSB7Ci0gICAgICAgICAgICBpZiAoKGF0dHJUeXBlJlJlc1RhYmxlX21hcDo6VFlQRV9CT09MRUFOKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFjYW5TdHJpbmdDb2VyY2UpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGFjY2Vzc29yICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc29yLT5yZXBvcnRFcnJvcihhY2Nlc3NvckNvb2tpZSwgIkJvb2xlYW4gdHlwZXMgbm90IGFsbG93ZWQiKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBvdXRWYWx1ZS0+ZGF0YVR5cGUgPSBvdXRWYWx1ZS0+VFlQRV9JTlRfQk9PTEVBTjsKLSAgICAgICAgICAgICAgICBvdXRWYWx1ZS0+ZGF0YSA9IDA7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoKGF0dHJUeXBlJlJlc1RhYmxlX21hcDo6VFlQRV9FTlVNKSAhPSAwKSB7Ci0gICAgICAgIGNvbnN0IHNzaXplX3QgcCA9IGdldFJlc291cmNlUGFja2FnZUluZGV4KGF0dHJJRCk7Ci0gICAgICAgIGNvbnN0IGJhZ19lbnRyeSogYmFnOwotICAgICAgICBzc2l6ZV90IGNudCA9IHAgPj0gMCA/IGxvY2tCYWcoYXR0cklELCAmYmFnKSA6IC0xOwotICAgICAgICAvL3ByaW50ZigiR290ICVkIGZvciBlbnVtXG4iLCBjbnQpOwotICAgICAgICBpZiAoY250ID49IDApIHsKLSAgICAgICAgICAgIHJlc291cmNlX25hbWUgcm5hbWU7Ci0gICAgICAgICAgICB3aGlsZSAoY250ID4gMCkgewotICAgICAgICAgICAgICAgIGlmICghUmVzX0lOVEVSTkFMSUQoYmFnLT5tYXAubmFtZS5pZGVudCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy9wcmludGYoIlRyeWluZyBhdHRyICMlMDh4XG4iLCBiYWctPm1hcC5uYW1lLmlkZW50KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGdldFJlc291cmNlTmFtZShiYWctPm1hcC5uYW1lLmlkZW50LCBmYWxzZSwgJnJuYW1lKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgI2lmIDAKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiTWF0Y2hpbmcgJXMgYWdhaW5zdCAlcyAoMHglMDh4KVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHMsIGxlbikuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChybmFtZS5uYW1lLCBybmFtZS5uYW1lTGVuKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWctPm1hcC5uYW1lLmlkZW50KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cnpjbXAxNihzLCBsZW4sIHJuYW1lLm5hbWUsIHJuYW1lLm5hbWVMZW4pID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRWYWx1ZS0+ZGF0YVR5cGUgPSBiYWctPm1hcC52YWx1ZS5kYXRhVHlwZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRWYWx1ZS0+ZGF0YSA9IGJhZy0+bWFwLnZhbHVlLmRhdGE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5sb2NrQmFnKGJhZyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYmFnKys7Ci0gICAgICAgICAgICAgICAgY250LS07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1bmxvY2tCYWcoYmFnKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChmcm9tQWNjZXNzb3IpIHsKLSAgICAgICAgICAgIGlmIChhY2Nlc3Nvci0+Z2V0QXR0cmlidXRlRW51bShhdHRySUQsIHMsIGxlbiwgb3V0VmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoKGF0dHJUeXBlJlJlc1RhYmxlX21hcDo6VFlQRV9GTEFHUykgIT0gMCkgewotICAgICAgICBjb25zdCBzc2l6ZV90IHAgPSBnZXRSZXNvdXJjZVBhY2thZ2VJbmRleChhdHRySUQpOwotICAgICAgICBjb25zdCBiYWdfZW50cnkqIGJhZzsKLSAgICAgICAgc3NpemVfdCBjbnQgPSBwID49IDAgPyBsb2NrQmFnKGF0dHJJRCwgJmJhZykgOiAtMTsKLSAgICAgICAgLy9wcmludGYoIkdvdCAlZCBmb3IgZmxhZ3NcbiIsIGNudCk7Ci0gICAgICAgIGlmIChjbnQgPj0gMCkgewotICAgICAgICAgICAgYm9vbCBmYWlsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHJlc291cmNlX25hbWUgcm5hbWU7Ci0gICAgICAgICAgICBvdXRWYWx1ZS0+ZGF0YVR5cGUgPSBSZXNfdmFsdWU6OlRZUEVfSU5UX0hFWDsKLSAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhID0gMDsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIxNl90KiBlbmQgPSBzICsgbGVuOwotICAgICAgICAgICAgY29uc3QgY2hhcjE2X3QqIHBvcyA9IHM7Ci0gICAgICAgICAgICB3aGlsZSAocG9zIDwgZW5kICYmICFmYWlsZWQpIHsKLSAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogc3RhcnQgPSBwb3M7Ci0gICAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IGVuZCAmJiAqcG9zICE9ICd8JykgewotICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgLy9wcmludGYoIkxvb2tpbmcgZm9yOiAlc1xuIiwgU3RyaW5nOChzdGFydCwgcG9zLXN0YXJ0KS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgY29uc3QgYmFnX2VudHJ5KiBiYWdpID0gYmFnOwotICAgICAgICAgICAgICAgIHNzaXplX3QgaTsKLSAgICAgICAgICAgICAgICBmb3IgKGk9MDsgaTxjbnQ7IGkrKywgYmFnaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghUmVzX0lOVEVSTkFMSUQoYmFnaS0+bWFwLm5hbWUuaWRlbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvL3ByaW50ZigiVHJ5aW5nIGF0dHIgIyUwOHhcbiIsIGJhZ2ktPm1hcC5uYW1lLmlkZW50KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnZXRSZXNvdXJjZU5hbWUoYmFnaS0+bWFwLm5hbWUuaWRlbnQsIGZhbHNlLCAmcm5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgI2lmIDAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIk1hdGNoaW5nICVzIGFnYWluc3QgJXMgKDB4JTA4eClcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoc3RhcnQscG9zLXN0YXJ0KS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChybmFtZS5uYW1lLCBybmFtZS5uYW1lTGVuKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFnaS0+bWFwLm5hbWUuaWRlbnQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJ6Y21wMTYoc3RhcnQsIHBvcy1zdGFydCwgcm5hbWUubmFtZSwgcm5hbWUubmFtZUxlbikgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRWYWx1ZS0+ZGF0YSB8PSBiYWdpLT5tYXAudmFsdWUuZGF0YTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChpID49IGNudCkgewotICAgICAgICAgICAgICAgICAgICAvLyBEaWRuJ3QgZmluZCB0aGlzIGZsYWcgaWRlbnRpZmllci4KLSAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHBvcyA8IGVuZCkgewotICAgICAgICAgICAgICAgICAgICBwb3MrKzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB1bmxvY2tCYWcoYmFnKTsKLSAgICAgICAgICAgIGlmICghZmFpbGVkKSB7Ci0gICAgICAgICAgICAgICAgLy9wcmludGYoIkZpbmFsIGZsYWcgdmFsdWU6IDB4JWx4XG4iLCBvdXRWYWx1ZS0+ZGF0YSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotCi0gICAgICAgIGlmIChmcm9tQWNjZXNzb3IpIHsKLSAgICAgICAgICAgIGlmIChhY2Nlc3Nvci0+Z2V0QXR0cmlidXRlRmxhZ3MoYXR0cklELCBzLCBsZW4sIG91dFZhbHVlKSkgewotICAgICAgICAgICAgICAgIC8vcHJpbnRmKCJGaW5hbCBmbGFnIHZhbHVlOiAweCVseFxuIiwgb3V0VmFsdWUtPmRhdGEpOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKChhdHRyVHlwZSZSZXNUYWJsZV9tYXA6OlRZUEVfU1RSSU5HKSA9PSAwKSB7Ci0gICAgICAgIGlmIChhY2Nlc3NvciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBhY2Nlc3Nvci0+cmVwb3J0RXJyb3IoYWNjZXNzb3JDb29raWUsICJTdHJpbmcgdHlwZXMgbm90IGFsbG93ZWQiKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgLy8gR2VuZXJpYyBzdHJpbmcgaGFuZGxpbmcuLi4KLSAgICBvdXRWYWx1ZS0+ZGF0YVR5cGUgPSBvdXRWYWx1ZS0+VFlQRV9TVFJJTkc7Ci0gICAgaWYgKG91dFN0cmluZykgewotICAgICAgICBib29sIGZhaWxlZCA9IGNvbGxlY3RTdHJpbmcob3V0U3RyaW5nLCBzLCBsZW4sIHByZXNlcnZlU3BhY2VzLCAmZXJyb3JNc2cpOwotICAgICAgICBpZiAoYWNjZXNzb3IgIT0gTlVMTCkgewotICAgICAgICAgICAgYWNjZXNzb3ItPnJlcG9ydEVycm9yKGFjY2Vzc29yQ29va2llLCBlcnJvck1zZyk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhaWxlZDsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBSZXNUYWJsZTo6Y29sbGVjdFN0cmluZyhTdHJpbmcxNiogb3V0U3RyaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogcywgc2l6ZV90IGxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBwcmVzZXJ2ZVNwYWNlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhcioqIG91dEVycm9yTXNnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGFwcGVuZCkKLXsKLSAgICBTdHJpbmcxNiB0bXA7Ci0KLSAgICBjaGFyIHF1b3RlZCA9IDA7Ci0gICAgY29uc3QgY2hhcjE2X3QqIHAgPSBzOwotICAgIHdoaWxlIChwIDwgKHMrbGVuKSkgewotICAgICAgICB3aGlsZSAocCA8IChzK2xlbikpIHsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIxNl90IGMgPSAqcDsKLSAgICAgICAgICAgIGlmIChjID09ICdcXCcpIHsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghcHJlc2VydmVTcGFjZXMpIHsKLSAgICAgICAgICAgICAgICBpZiAocXVvdGVkID09IDAgJiYgaXNzcGFjZTE2KGMpCi0gICAgICAgICAgICAgICAgICAgICYmIChjICE9ICcgJyB8fCBpc3NwYWNlMTYoKihwKzEpKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChjID09ICciJyAmJiAocXVvdGVkID09IDAgfHwgcXVvdGVkID09ICciJykpIHsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChjID09ICdcJycgJiYgKHF1b3RlZCA9PSAwIHx8IHF1b3RlZCA9PSAnXCcnKSkgewotICAgICAgICAgICAgICAgICAgICAvKgotICAgICAgICAgICAgICAgICAgICAgKiBJbiBwcmFjdGljZSwgd2hlbiBwZW9wbGUgd3JpdGUgJyBpbnN0ZWFkIG9mIFwnCi0gICAgICAgICAgICAgICAgICAgICAqIGluIGEgc3RyaW5nLCB0aGV5IGFyZSBkb2luZyBpdCBieSBhY2NpZGVudAotICAgICAgICAgICAgICAgICAgICAgKiBpbnN0ZWFkIG9mIHJlYWxseSBtZWFuaW5nIHRvIHVzZSAnIGFzIGEgcXVvdGluZwotICAgICAgICAgICAgICAgICAgICAgKiBjaGFyYWN0ZXIuICBXYXJuIHRoZW0gc28gdGhleSBkb24ndCBsb3NlIGl0LgotICAgICAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgICAgICAgaWYgKG91dEVycm9yTXNnKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAqb3V0RXJyb3JNc2cgPSAiQXBvc3Ryb3BoZSBub3QgcHJlY2VkZWQgYnkgXFwiOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwKys7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHAgPCAocytsZW4pKSB7Ci0gICAgICAgICAgICBpZiAocCA+IHMpIHsKLSAgICAgICAgICAgICAgICB0bXAuYXBwZW5kKFN0cmluZzE2KHMsIHAtcykpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCFwcmVzZXJ2ZVNwYWNlcyAmJiAoKnAgPT0gJyInIHx8ICpwID09ICdcJycpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHF1b3RlZCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHF1b3RlZCA9ICpwOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHF1b3RlZCA9IDA7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoIXByZXNlcnZlU3BhY2VzICYmIGlzc3BhY2UxNigqcCkpIHsKLSAgICAgICAgICAgICAgICAvLyBTcGFjZSBvdXRzaWRlIG9mIGEgcXVvdGUgLS0gY29uc3VtZSBhbGwgc3BhY2VzIGFuZAotICAgICAgICAgICAgICAgIC8vIGxlYXZlIGEgc2luZ2xlIHBsYWluIHNwYWNlIGNoYXIuCi0gICAgICAgICAgICAgICAgdG1wLmFwcGVuZChTdHJpbmcxNigiICIpKTsKLSAgICAgICAgICAgICAgICBwKys7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKHAgPCAocytsZW4pICYmIGlzc3BhY2UxNigqcCkpIHsKLSAgICAgICAgICAgICAgICAgICAgcCsrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoKnAgPT0gJ1xcJykgewotICAgICAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgICAgICBpZiAocCA8IChzK2xlbikpIHsKLSAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgqcCkgewotICAgICAgICAgICAgICAgICAgICBjYXNlICd0JzoKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcC5hcHBlbmQoU3RyaW5nMTYoIlx0IikpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgJ24nOgotICAgICAgICAgICAgICAgICAgICAgICAgdG1wLmFwcGVuZChTdHJpbmcxNigiXG4iKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAnIyc6Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAuYXBwZW5kKFN0cmluZzE2KCIjIikpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgJ0AnOgotICAgICAgICAgICAgICAgICAgICAgICAgdG1wLmFwcGVuZChTdHJpbmcxNigiQCIpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlICc/JzoKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcC5hcHBlbmQoU3RyaW5nMTYoIj8iKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAnIic6Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAuYXBwZW5kKFN0cmluZzE2KCJcIiIpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlICdcJyc6Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAuYXBwZW5kKFN0cmluZzE2KCInIikpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1xcJzoKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcC5hcHBlbmQoU3RyaW5nMTYoIlxcIikpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3UnOgotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjaGFyMTZfdCBjaHIgPSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgaW50IGkgPSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGkgPCA0ICYmIHBbMV0gIT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCpwID49ICcwJyAmJiAqcCA8PSAnOScpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9ICpwIC0gJzAnOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKnAgPj0gJ2EnICYmICpwIDw9ICdmJykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gKnAgLSAnYScgKyAxMDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCpwID49ICdBJyAmJiAqcCA8PSAnRicpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9ICpwIC0gJ0EnICsgMTA7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG91dEVycm9yTXNnKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqb3V0RXJyb3JNc2cgPSAiQmFkIGNoYXJhY3RlciBpbiBcXHUgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2UiOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hyID0gKGNocjw8NCkgfCBjOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgdG1wLmFwcGVuZChTdHJpbmcxNigmY2hyLCAxKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0gYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmUgdW5rbm93biBlc2NhcGUgY2hhcnMuCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBwKys7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgbGVuIC09IChwLXMpOwotICAgICAgICAgICAgcyA9IHA7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAodG1wLnNpemUoKSAhPSAwKSB7Ci0gICAgICAgIGlmIChsZW4gPiAwKSB7Ci0gICAgICAgICAgICB0bXAuYXBwZW5kKFN0cmluZzE2KHMsIGxlbikpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChhcHBlbmQpIHsKLSAgICAgICAgICAgIG91dFN0cmluZy0+YXBwZW5kKHRtcCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBvdXRTdHJpbmctPnNldFRvKHRtcCk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoYXBwZW5kKSB7Ci0gICAgICAgICAgICBvdXRTdHJpbmctPmFwcGVuZChTdHJpbmcxNihzLCBsZW4pKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG91dFN0cmluZy0+c2V0VG8ocywgbGVuKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCi1zaXplX3QgUmVzVGFibGU6OmdldEJhc2VQYWNrYWdlQ291bnQoKSBjb25zdAotewotICAgIGlmIChtRXJyb3IgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIHJldHVybiBtUGFja2FnZUdyb3Vwcy5zaXplKCk7Ci19Ci0KLWNvbnN0IGNoYXIxNl90KiBSZXNUYWJsZTo6Z2V0QmFzZVBhY2thZ2VOYW1lKHNpemVfdCBpZHgpIGNvbnN0Ci17Ci0gICAgaWYgKG1FcnJvciAhPSBOT19FUlJPUikgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgTE9HX0ZBVEFMX0lGKGlkeCA+PSBtUGFja2FnZUdyb3Vwcy5zaXplKCksCi0gICAgICAgICAgICAgICAgICJSZXF1ZXN0ZWQgcGFja2FnZSBpbmRleCAlZCBwYXN0IHBhY2thZ2UgY291bnQgJWQiLAotICAgICAgICAgICAgICAgICAoaW50KWlkeCwgKGludCltUGFja2FnZUdyb3Vwcy5zaXplKCkpOwotICAgIHJldHVybiBtUGFja2FnZUdyb3Vwc1tpZHhdLT5uYW1lLnN0cmluZygpOwotfQotCi11aW50MzJfdCBSZXNUYWJsZTo6Z2V0QmFzZVBhY2thZ2VJZChzaXplX3QgaWR4KSBjb25zdAotewotICAgIGlmIChtRXJyb3IgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIExPR19GQVRBTF9JRihpZHggPj0gbVBhY2thZ2VHcm91cHMuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAiUmVxdWVzdGVkIHBhY2thZ2UgaW5kZXggJWQgcGFzdCBwYWNrYWdlIGNvdW50ICVkIiwKLSAgICAgICAgICAgICAgICAgKGludClpZHgsIChpbnQpbVBhY2thZ2VHcm91cHMuc2l6ZSgpKTsKLSAgICByZXR1cm4gbVBhY2thZ2VHcm91cHNbaWR4XS0+aWQ7Ci19Ci0KLXNpemVfdCBSZXNUYWJsZTo6Z2V0VGFibGVDb3VudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1IZWFkZXJzLnNpemUoKTsKLX0KLQotY29uc3QgUmVzU3RyaW5nUG9vbCogUmVzVGFibGU6OmdldFRhYmxlU3RyaW5nQmxvY2soc2l6ZV90IGluZGV4KSBjb25zdAotewotICAgIHJldHVybiAmbUhlYWRlcnNbaW5kZXhdLT52YWx1ZXM7Ci19Ci0KLXZvaWQqIFJlc1RhYmxlOjpnZXRUYWJsZUNvb2tpZShzaXplX3QgaW5kZXgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1IZWFkZXJzW2luZGV4XS0+Y29va2llOwotfQotCi12b2lkIFJlc1RhYmxlOjpnZXRDb25maWd1cmF0aW9ucyhWZWN0b3I8UmVzVGFibGVfY29uZmlnPiogY29uZmlncykgY29uc3QKLXsKLSAgICBjb25zdCBzaXplX3QgSSA9IG1QYWNrYWdlR3JvdXBzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8STsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IFBhY2thZ2VHcm91cCogcGFja2FnZUdyb3VwID0gbVBhY2thZ2VHcm91cHNbaV07Ci0gICAgICAgIGNvbnN0IHNpemVfdCBKID0gcGFja2FnZUdyb3VwLT5wYWNrYWdlcy5zaXplKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGo9MDsgajxKOyBqKyspIHsKLSAgICAgICAgICAgIGNvbnN0IFBhY2thZ2UqIHBhY2thZ2UgPSBwYWNrYWdlR3JvdXAtPnBhY2thZ2VzW2pdOwotICAgICAgICAgICAgY29uc3Qgc2l6ZV90IEsgPSBwYWNrYWdlLT50eXBlcy5zaXplKCk7Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCBrPTA7IGs8SzsgaysrKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgVHlwZSogdHlwZSA9IHBhY2thZ2UtPnR5cGVzW2tdOwotICAgICAgICAgICAgICAgIGlmICh0eXBlID09IE5VTEwpIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIGNvbnN0IHNpemVfdCBMID0gdHlwZS0+Y29uZmlncy5zaXplKCk7Ci0gICAgICAgICAgICAgICAgZm9yIChzaXplX3QgbD0wOyBsPEw7IGwrKykgewotICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNUYWJsZV90eXBlKiBjb25maWcgPSB0eXBlLT5jb25maWdzW2xdOwotICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNUYWJsZV9jb25maWcqIGNmZyA9ICZjb25maWctPmNvbmZpZzsKLSAgICAgICAgICAgICAgICAgICAgLy8gb25seSBpbnNlcnQgdW5pcXVlCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpemVfdCBNID0gY29uZmlncy0+c2l6ZSgpOwotICAgICAgICAgICAgICAgICAgICBzaXplX3QgbTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChtPTA7IG08TTsgbSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoMCA9PSAoKmNvbmZpZ3MpW21dLmNvbXBhcmUoKmNmZykpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBkaWRuJ3QgZmluZCBpdAotICAgICAgICAgICAgICAgICAgICBpZiAobSA9PSBNKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25maWdzLT5hZGQoKmNmZyk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLXZvaWQgUmVzVGFibGU6OmdldExvY2FsZXMoVmVjdG9yPFN0cmluZzg+KiBsb2NhbGVzKSBjb25zdAotewotICAgIFZlY3RvcjxSZXNUYWJsZV9jb25maWc+IGNvbmZpZ3M7Ci0gICAgQUxPR1YoImNhbGxpbmcgZ2V0Q29uZmlndXJhdGlvbnMiKTsKLSAgICBnZXRDb25maWd1cmF0aW9ucygmY29uZmlncyk7Ci0gICAgQUxPR1YoImNhbGxlZCBnZXRDb25maWd1cmF0aW9ucyBzaXplPSVkIiwgKGludCljb25maWdzLnNpemUoKSk7Ci0gICAgY29uc3Qgc2l6ZV90IEkgPSBjb25maWdzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8STsgaSsrKSB7Ci0gICAgICAgIGNoYXIgbG9jYWxlWzZdOwotICAgICAgICBjb25maWdzW2ldLmdldExvY2FsZShsb2NhbGUpOwotICAgICAgICBjb25zdCBzaXplX3QgSiA9IGxvY2FsZXMtPnNpemUoKTsKLSAgICAgICAgc2l6ZV90IGo7Ci0gICAgICAgIGZvciAoaj0wOyBqPEo7IGorKykgewotICAgICAgICAgICAgaWYgKDAgPT0gc3RyY21wKGxvY2FsZSwgKCpsb2NhbGVzKVtqXS5zdHJpbmcoKSkpIHsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoaiA9PSBKKSB7Ci0gICAgICAgICAgICBsb2NhbGVzLT5hZGQoU3RyaW5nOChsb2NhbGUpKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotc3NpemVfdCBSZXNUYWJsZTo6Z2V0RW50cnkoCi0gICAgY29uc3QgUGFja2FnZSogcGFja2FnZSwgaW50IHR5cGVJbmRleCwgaW50IGVudHJ5SW5kZXgsCi0gICAgY29uc3QgUmVzVGFibGVfY29uZmlnKiBjb25maWcsCi0gICAgY29uc3QgUmVzVGFibGVfdHlwZSoqIG91dFR5cGUsIGNvbnN0IFJlc1RhYmxlX2VudHJ5Kiogb3V0RW50cnksCi0gICAgY29uc3QgVHlwZSoqIG91dFR5cGVDbGFzcykgY29uc3QKLXsKLSAgICBBTE9HVigiR2V0dGluZyBlbnRyeSBmcm9tIHBhY2thZ2UgJXBcbiIsIHBhY2thZ2UpOwotICAgIGNvbnN0IFJlc1RhYmxlX3BhY2thZ2UqIGNvbnN0IHBrZyA9IHBhY2thZ2UtPnBhY2thZ2U7Ci0KLSAgICBjb25zdCBUeXBlKiBhbGxUeXBlcyA9IHBhY2thZ2UtPmdldFR5cGUodHlwZUluZGV4KTsKLSAgICBBTE9HVigiYWxsVHlwZXM9JXBcbiIsIGFsbFR5cGVzKTsKLSAgICBpZiAoYWxsVHlwZXMgPT0gTlVMTCkgewotICAgICAgICBBTE9HVigiU2tpcHBpbmcgZW50cnkgdHlwZSBpbmRleCAweCUwMnggYmVjYXVzZSB0eXBlIGlzIE5VTEwhXG4iLCB0eXBlSW5kZXgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBpZiAoKHNpemVfdCllbnRyeUluZGV4ID49IGFsbFR5cGVzLT5lbnRyeUNvdW50KSB7Ci0gICAgICAgIEFMT0dXKCJnZXRFbnRyeSBmYWlsaW5nIGJlY2F1c2UgZW50cnlJbmRleCAlZCBpcyBiZXlvbmQgdHlwZSBlbnRyeUNvdW50ICVkIiwKLSAgICAgICAgICAgIGVudHJ5SW5kZXgsIChpbnQpYWxsVHlwZXMtPmVudHJ5Q291bnQpOwotICAgICAgICByZXR1cm4gQkFEX1RZUEU7Ci0gICAgfQotICAgICAgICAKLSAgICBjb25zdCBSZXNUYWJsZV90eXBlKiB0eXBlID0gTlVMTDsKLSAgICB1aW50MzJfdCBvZmZzZXQgPSBSZXNUYWJsZV90eXBlOjpOT19FTlRSWTsKLSAgICBSZXNUYWJsZV9jb25maWcgYmVzdENvbmZpZzsKLSAgICBtZW1zZXQoJmJlc3RDb25maWcsIDAsIHNpemVvZihiZXN0Q29uZmlnKSk7IC8vIG1ha2UgdGhlIGNvbXBpbGVyIHNodXQgdXAKLSAgICAKLSAgICBjb25zdCBzaXplX3QgTlQgPSBhbGxUeXBlcy0+Y29uZmlncy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPE5UOyBpKyspIHsKLSAgICAgICAgY29uc3QgUmVzVGFibGVfdHlwZSogY29uc3QgdGhpc1R5cGUgPSBhbGxUeXBlcy0+Y29uZmlnc1tpXTsKLSAgICAgICAgaWYgKHRoaXNUeXBlID09IE5VTEwpIGNvbnRpbnVlOwotICAgICAgICAKLSAgICAgICAgUmVzVGFibGVfY29uZmlnIHRoaXNDb25maWc7Ci0gICAgICAgIHRoaXNDb25maWcuY29weUZyb21EdG9IKHRoaXNUeXBlLT5jb25maWcpOwotCi0gICAgICAgIFRBQkxFX0dFVEVOVFJZKEFMT0dJKCJNYXRjaCBlbnRyeSAweCV4IGluIHR5cGUgMHgleCAoc3ogMHgleCk6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlJbmRleCwgdHlwZUluZGV4KzEsIGR0b2hsKHRoaXNUeXBlLT5jb25maWcuc2l6ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzQ29uZmlnLnRvU3RyaW5nKCkuc3RyaW5nKCkpKTsKLSAgICAgICAgCi0gICAgICAgIC8vIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGlzIG9uZSBpcyB2YWxpZCBmb3IgdGhlIGN1cnJlbnQgcGFyYW1ldGVycy4KLSAgICAgICAgaWYgKGNvbmZpZyAmJiAhdGhpc0NvbmZpZy5tYXRjaCgqY29uZmlnKSkgewotICAgICAgICAgICAgVEFCTEVfR0VURU5UUlkoQUxPR0koIkRvZXMgbm90IG1hdGNoIGNvbmZpZyFcbiIpKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICAvLyBDaGVjayBpZiB0aGVyZSBpcyB0aGUgZGVzaXJlZCBlbnRyeSBpbiB0aGlzIHR5cGUuCi0gICAgICAgIAotICAgICAgICBjb25zdCB1aW50OF90KiBjb25zdCBlbmQgPSAoKGNvbnN0IHVpbnQ4X3QqKXRoaXNUeXBlKQotICAgICAgICAgICAgKyBkdG9obCh0aGlzVHlwZS0+aGVhZGVyLnNpemUpOwotICAgICAgICBjb25zdCB1aW50MzJfdCogY29uc3QgZWluZGV4ID0gKGNvbnN0IHVpbnQzMl90KikKLSAgICAgICAgICAgICgoKGNvbnN0IHVpbnQ4X3QqKXRoaXNUeXBlKSArIGR0b2hzKHRoaXNUeXBlLT5oZWFkZXIuaGVhZGVyU2l6ZSkpOwotICAgICAgICAKLSAgICAgICAgdWludDMyX3QgdGhpc09mZnNldCA9IGR0b2hsKGVpbmRleFtlbnRyeUluZGV4XSk7Ci0gICAgICAgIGlmICh0aGlzT2Zmc2V0ID09IFJlc1RhYmxlX3R5cGU6Ok5PX0VOVFJZKSB7Ci0gICAgICAgICAgICBUQUJMRV9HRVRFTlRSWShBTE9HSSgiU2tpcHBpbmcgYmVjYXVzZSBpdCBpcyBub3QgZGVmaW5lZCFcbiIpKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAodHlwZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGlzIG9uZSBpcyBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIGxhc3QgZm91bmQuICBJZiBzbywKLSAgICAgICAgICAgIC8vIHdlIHdpbGwgc2tpcCBpdC4gIFdlIGNoZWNrIHN0YXJ0aW5nIHdpdGggdGhpbmdzIHdlIG1vc3QgY2FyZQotICAgICAgICAgICAgLy8gYWJvdXQgdG8gdGhvc2Ugd2UgbGVhc3QgY2FyZSBhYm91dC4KLSAgICAgICAgICAgIGlmICghdGhpc0NvbmZpZy5pc0JldHRlclRoYW4oYmVzdENvbmZpZywgY29uZmlnKSkgewotICAgICAgICAgICAgICAgIFRBQkxFX0dFVEVOVFJZKEFMT0dJKCJUaGlzIGNvbmZpZyBpcyB3b3JzZSB0aGFuIGxhc3QhXG4iKSk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHR5cGUgPSB0aGlzVHlwZTsKLSAgICAgICAgb2Zmc2V0ID0gdGhpc09mZnNldDsKLSAgICAgICAgYmVzdENvbmZpZyA9IHRoaXNDb25maWc7Ci0gICAgICAgIFRBQkxFX0dFVEVOVFJZKEFMT0dJKCJCZXN0IGVudHJ5IHNvIGZhciAtLSB1c2luZyBpdCFcbiIpKTsKLSAgICAgICAgaWYgKCFjb25maWcpIGJyZWFrOwotICAgIH0KLSAgICAKLSAgICBpZiAodHlwZSA9PSBOVUxMKSB7Ci0gICAgICAgIFRBQkxFX0dFVEVOVFJZKEFMT0dJKCJObyB2YWx1ZSBmb3VuZCBmb3IgcmVxdWVzdGVkIGVudHJ5IVxuIikpOwotICAgICAgICByZXR1cm4gQkFEX0lOREVYOwotICAgIH0KLSAgICAKLSAgICBvZmZzZXQgKz0gZHRvaGwodHlwZS0+ZW50cmllc1N0YXJ0KTsKLSAgICBUQUJMRV9OT0lTWShhb3V0IDw8ICJMb29raW5nIGluIHJlc291cmNlIHRhYmxlICIgPDwgcGFja2FnZS0+aGVhZGVyLT5oZWFkZXIKLSAgICAgICAgICA8PCAiLCB0eXBlT2ZmPSIKLSAgICAgICAgICA8PCAodm9pZCopKCgoY29uc3QgY2hhciopdHlwZSktKChjb25zdCBjaGFyKilwYWNrYWdlLT5oZWFkZXItPmhlYWRlcikpCi0gICAgICAgICAgPDwgIiwgb2Zmc2V0PSIgPDwgKHZvaWQqKW9mZnNldCA8PCBlbmRsKTsKLQotICAgIGlmIChvZmZzZXQgPiAoZHRvaGwodHlwZS0+aGVhZGVyLnNpemUpLXNpemVvZihSZXNUYWJsZV9lbnRyeSkpKSB7Ci0gICAgICAgIEFMT0dXKCJSZXNUYWJsZV9lbnRyeSBhdCAweCV4IGlzIGJleW9uZCB0eXBlIGNodW5rIGRhdGEgMHgleCIsCi0gICAgICAgICAgICAgb2Zmc2V0LCBkdG9obCh0eXBlLT5oZWFkZXIuc2l6ZSkpOwotICAgICAgICByZXR1cm4gQkFEX1RZUEU7Ci0gICAgfQotICAgIGlmICgob2Zmc2V0JjB4MykgIT0gMCkgewotICAgICAgICBBTE9HVygiUmVzVGFibGVfZW50cnkgYXQgMHgleCBpcyBub3Qgb24gYW4gaW50ZWdlciBib3VuZGFyeSIsCi0gICAgICAgICAgICAgb2Zmc2V0KTsKLSAgICAgICAgcmV0dXJuIEJBRF9UWVBFOwotICAgIH0KLQotICAgIGNvbnN0IFJlc1RhYmxlX2VudHJ5KiBjb25zdCBlbnRyeSA9IChjb25zdCBSZXNUYWJsZV9lbnRyeSopCi0gICAgICAgICgoKGNvbnN0IHVpbnQ4X3QqKXR5cGUpICsgb2Zmc2V0KTsKLSAgICBpZiAoZHRvaHMoZW50cnktPnNpemUpIDwgc2l6ZW9mKCplbnRyeSkpIHsKLSAgICAgICAgQUxPR1coIlJlc1RhYmxlX2VudHJ5IHNpemUgMHgleCBpcyB0b28gc21hbGwiLCBkdG9ocyhlbnRyeS0+c2l6ZSkpOwotICAgICAgICByZXR1cm4gQkFEX1RZUEU7Ci0gICAgfQotCi0gICAgKm91dFR5cGUgPSB0eXBlOwotICAgICpvdXRFbnRyeSA9IGVudHJ5OwotICAgIGlmIChvdXRUeXBlQ2xhc3MgIT0gTlVMTCkgewotICAgICAgICAqb3V0VHlwZUNsYXNzID0gYWxsVHlwZXM7Ci0gICAgfQotICAgIHJldHVybiBvZmZzZXQgKyBkdG9ocyhlbnRyeS0+c2l6ZSk7Ci19Ci0KLXN0YXR1c190IFJlc1RhYmxlOjpwYXJzZVBhY2thZ2UoY29uc3QgUmVzVGFibGVfcGFja2FnZSogY29uc3QgcGtnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBIZWFkZXIqIGNvbnN0IGhlYWRlciwgdWludDMyX3QgaWRtYXBfaWQpCi17Ci0gICAgY29uc3QgdWludDhfdCogYmFzZSA9IChjb25zdCB1aW50OF90Kilwa2c7Ci0gICAgc3RhdHVzX3QgZXJyID0gdmFsaWRhdGVfY2h1bmsoJnBrZy0+aGVhZGVyLCBzaXplb2YoKnBrZyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyLT5kYXRhRW5kLCAiUmVzVGFibGVfcGFja2FnZSIpOwotICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIChtRXJyb3I9ZXJyKTsKLSAgICB9Ci0KLSAgICBjb25zdCBzaXplX3QgcGtnU2l6ZSA9IGR0b2hsKHBrZy0+aGVhZGVyLnNpemUpOwotCi0gICAgaWYgKGR0b2hsKHBrZy0+dHlwZVN0cmluZ3MpID49IHBrZ1NpemUpIHsKLSAgICAgICAgQUxPR1coIlJlc1RhYmxlX3BhY2thZ2UgdHlwZSBzdHJpbmdzIGF0ICVwIGFyZSBwYXN0IGNodW5rIHNpemUgJXAuIiwKLSAgICAgICAgICAgICAodm9pZCopZHRvaGwocGtnLT50eXBlU3RyaW5ncyksICh2b2lkKilwa2dTaXplKTsKLSAgICAgICAgcmV0dXJuIChtRXJyb3I9QkFEX1RZUEUpOwotICAgIH0KLSAgICBpZiAoKGR0b2hsKHBrZy0+dHlwZVN0cmluZ3MpJjB4MykgIT0gMCkgewotICAgICAgICBBTE9HVygiUmVzVGFibGVfcGFja2FnZSB0eXBlIHN0cmluZ3MgYXQgJXAgaXMgbm90IG9uIGFuIGludGVnZXIgYm91bmRhcnkuIiwKLSAgICAgICAgICAgICAodm9pZCopZHRvaGwocGtnLT50eXBlU3RyaW5ncykpOwotICAgICAgICByZXR1cm4gKG1FcnJvcj1CQURfVFlQRSk7Ci0gICAgfQotICAgIGlmIChkdG9obChwa2ctPmtleVN0cmluZ3MpID49IHBrZ1NpemUpIHsKLSAgICAgICAgQUxPR1coIlJlc1RhYmxlX3BhY2thZ2Uga2V5IHN0cmluZ3MgYXQgJXAgYXJlIHBhc3QgY2h1bmsgc2l6ZSAlcC4iLAotICAgICAgICAgICAgICh2b2lkKilkdG9obChwa2ctPmtleVN0cmluZ3MpLCAodm9pZCopcGtnU2l6ZSk7Ci0gICAgICAgIHJldHVybiAobUVycm9yPUJBRF9UWVBFKTsKLSAgICB9Ci0gICAgaWYgKChkdG9obChwa2ctPmtleVN0cmluZ3MpJjB4MykgIT0gMCkgewotICAgICAgICBBTE9HVygiUmVzVGFibGVfcGFja2FnZSBrZXkgc3RyaW5ncyBhdCAlcCBpcyBub3Qgb24gYW4gaW50ZWdlciBib3VuZGFyeS4iLAotICAgICAgICAgICAgICh2b2lkKilkdG9obChwa2ctPmtleVN0cmluZ3MpKTsKLSAgICAgICAgcmV0dXJuIChtRXJyb3I9QkFEX1RZUEUpOwotICAgIH0KLSAgICAKLSAgICBQYWNrYWdlKiBwYWNrYWdlID0gTlVMTDsKLSAgICBQYWNrYWdlR3JvdXAqIGdyb3VwID0gTlVMTDsKLSAgICB1aW50MzJfdCBpZCA9IGlkbWFwX2lkICE9IDAgPyBpZG1hcF9pZCA6IGR0b2hsKHBrZy0+aWQpOwotICAgIC8vIElmIGF0IHRoaXMgcG9pbnQgaWQgPT0gMCwgcGtnIGlzIGFuIG92ZXJsYXkgcGFja2FnZSB3aXRob3V0IGEKLSAgICAvLyBjb3JyZXNwb25kaW5nIGlkbWFwLiBEdXJpbmcgcmVndWxhciB1c2FnZSwgb3ZlcmxheSBwYWNrYWdlcyBhcmUKLSAgICAvLyBhbHdheXMgbG9hZGVkIGFsb25nc2lkZSB0aGVpciBpZG1hcHMsIGJ1dCBkdXJpbmcgaWRtYXAgY3JlYXRpb24KLSAgICAvLyB0aGUgcGFja2FnZSBpcyB0ZW1wb3JhcmlseSBsb2FkZWQgYnkgaXRzZWxmLgotICAgIGlmIChpZCA8IDI1NikgewotICAgIAotICAgICAgICBwYWNrYWdlID0gbmV3IFBhY2thZ2UodGhpcywgaGVhZGVyLCBwa2cpOwotICAgICAgICBpZiAocGFja2FnZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gKG1FcnJvcj1OT19NRU1PUlkpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBzaXplX3QgaWR4ID0gbVBhY2thZ2VNYXBbaWRdOwotICAgICAgICBpZiAoaWR4ID09IDApIHsKLSAgICAgICAgICAgIGlkeCA9IG1QYWNrYWdlR3JvdXBzLnNpemUoKSsxOwotCi0gICAgICAgICAgICBjaGFyMTZfdCB0bXBOYW1lW3NpemVvZihwa2ctPm5hbWUpL3NpemVvZihjaGFyMTZfdCldOwotICAgICAgICAgICAgc3RyY3B5MTZfZHRvaCh0bXBOYW1lLCBwa2ctPm5hbWUsIHNpemVvZihwa2ctPm5hbWUpL3NpemVvZihjaGFyMTZfdCkpOwotICAgICAgICAgICAgZ3JvdXAgPSBuZXcgUGFja2FnZUdyb3VwKHRoaXMsIFN0cmluZzE2KHRtcE5hbWUpLCBpZCk7Ci0gICAgICAgICAgICBpZiAoZ3JvdXAgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIGRlbGV0ZSBwYWNrYWdlOwotICAgICAgICAgICAgICAgIHJldHVybiAobUVycm9yPU5PX01FTU9SWSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGVyciA9IHBhY2thZ2UtPnR5cGVTdHJpbmdzLnNldFRvKGJhc2UrZHRvaGwocGtnLT50eXBlU3RyaW5ncyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyLT5kYXRhRW5kLShiYXNlK2R0b2hsKHBrZy0+dHlwZVN0cmluZ3MpKSk7Ci0gICAgICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIGdyb3VwOwotICAgICAgICAgICAgICAgIGRlbGV0ZSBwYWNrYWdlOwotICAgICAgICAgICAgICAgIHJldHVybiAobUVycm9yPWVycik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlcnIgPSBwYWNrYWdlLT5rZXlTdHJpbmdzLnNldFRvKGJhc2UrZHRvaGwocGtnLT5rZXlTdHJpbmdzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlci0+ZGF0YUVuZC0oYmFzZStkdG9obChwa2ctPmtleVN0cmluZ3MpKSk7Ci0gICAgICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIGdyb3VwOwotICAgICAgICAgICAgICAgIGRlbGV0ZSBwYWNrYWdlOwotICAgICAgICAgICAgICAgIHJldHVybiAobUVycm9yPWVycik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vcHJpbnRmKCJBZGRpbmcgbmV3IHBhY2thZ2UgaWQgJWQgYXQgaW5kZXggJWRcbiIsIGlkLCBpZHgpOwotICAgICAgICAgICAgZXJyID0gbVBhY2thZ2VHcm91cHMuYWRkKGdyb3VwKTsKLSAgICAgICAgICAgIGlmIChlcnIgPCBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIHJldHVybiAobUVycm9yPWVycik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBncm91cC0+YmFzZVBhY2thZ2UgPSBwYWNrYWdlOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBtUGFja2FnZU1hcFtpZF0gPSAodWludDhfdClpZHg7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBncm91cCA9IG1QYWNrYWdlR3JvdXBzLml0ZW1BdChpZHgtMSk7Ci0gICAgICAgICAgICBpZiAoZ3JvdXAgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIHJldHVybiAobUVycm9yPVVOS05PV05fRVJST1IpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGVyciA9IGdyb3VwLT5wYWNrYWdlcy5hZGQocGFja2FnZSk7Ci0gICAgICAgIGlmIChlcnIgPCBOT19FUlJPUikgewotICAgICAgICAgICAgcmV0dXJuIChtRXJyb3I9ZXJyKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIExPR19BTFdBWVNfRkFUQUwoIlBhY2thZ2UgaWQgb3V0IG9mIHJhbmdlIik7Ci0gICAgICAgIHJldHVybiBOT19FUlJPUjsKLSAgICB9Ci0KLSAgICAKLSAgICAvLyBJdGVyYXRlIHRocm91Z2ggYWxsIGNodW5rcy4KLSAgICBzaXplX3QgY3VyUGFja2FnZSA9IDA7Ci0gICAgCi0gICAgY29uc3QgUmVzQ2h1bmtfaGVhZGVyKiBjaHVuayA9Ci0gICAgICAgIChjb25zdCBSZXNDaHVua19oZWFkZXIqKSgoKGNvbnN0IHVpbnQ4X3QqKXBrZykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZHRvaHMocGtnLT5oZWFkZXIuaGVhZGVyU2l6ZSkpOwotICAgIGNvbnN0IHVpbnQ4X3QqIGVuZFBvcyA9ICgoY29uc3QgdWludDhfdCopcGtnKSArIGR0b2hzKHBrZy0+aGVhZGVyLnNpemUpOwotICAgIHdoaWxlICgoKGNvbnN0IHVpbnQ4X3QqKWNodW5rKSA8PSAoZW5kUG9zLXNpemVvZihSZXNDaHVua19oZWFkZXIpKSAmJgotICAgICAgICAgICAoKGNvbnN0IHVpbnQ4X3QqKWNodW5rKSA8PSAoZW5kUG9zLWR0b2hsKGNodW5rLT5zaXplKSkpIHsKLSAgICAgICAgVEFCTEVfTk9JU1koQUxPR1YoIlBhY2thZ2VDaHVuazogdHlwZT0weCV4LCBoZWFkZXJTaXplPTB4JXgsIHNpemU9MHgleCwgcG9zPSVwXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgIGR0b2hzKGNodW5rLT50eXBlKSwgZHRvaHMoY2h1bmstPmhlYWRlclNpemUpLCBkdG9obChjaHVuay0+c2l6ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKSgoKGNvbnN0IHVpbnQ4X3QqKWNodW5rKSAtICgoY29uc3QgdWludDhfdCopaGVhZGVyLT5oZWFkZXIpKSkpOwotICAgICAgICBjb25zdCBzaXplX3QgY3NpemUgPSBkdG9obChjaHVuay0+c2l6ZSk7Ci0gICAgICAgIGNvbnN0IHVpbnQxNl90IGN0eXBlID0gZHRvaHMoY2h1bmstPnR5cGUpOwotICAgICAgICBpZiAoY3R5cGUgPT0gUkVTX1RBQkxFX1RZUEVfU1BFQ19UWVBFKSB7Ci0gICAgICAgICAgICBjb25zdCBSZXNUYWJsZV90eXBlU3BlYyogdHlwZVNwZWMgPSAoY29uc3QgUmVzVGFibGVfdHlwZVNwZWMqKShjaHVuayk7Ci0gICAgICAgICAgICBlcnIgPSB2YWxpZGF0ZV9jaHVuaygmdHlwZVNwZWMtPmhlYWRlciwgc2l6ZW9mKCp0eXBlU3BlYyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRQb3MsICJSZXNUYWJsZV90eXBlU3BlYyIpOwotICAgICAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIHJldHVybiAobUVycm9yPWVycik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGNvbnN0IHNpemVfdCB0eXBlU3BlY1NpemUgPSBkdG9obCh0eXBlU3BlYy0+aGVhZGVyLnNpemUpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBMT0FEX1RBQkxFX05PSVNZKHByaW50ZigiVHlwZVNwZWMgb2ZmICVwOiB0eXBlPTB4JXgsIGhlYWRlclNpemU9MHgleCwgc2l6ZT0lcFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKikoYmFzZS0oY29uc3QgdWludDhfdCopY2h1bmspLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHRvaHModHlwZVNwZWMtPmhlYWRlci50eXBlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR0b2hzKHR5cGVTcGVjLT5oZWFkZXIuaGVhZGVyU2l6ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopdHlwZVNpemUpKTsKLSAgICAgICAgICAgIC8vIGxvb2sgZm9yIGJsb2NrIG92ZXJydW4gb3IgaW50IG92ZXJmbG93IHdoZW4gbXVsdGlwbHlpbmcgYnkgNAotICAgICAgICAgICAgaWYgKChkdG9obCh0eXBlU3BlYy0+ZW50cnlDb3VudCkgPiAoSU5UMzJfTUFYL3NpemVvZih1aW50MzJfdCkpCi0gICAgICAgICAgICAgICAgICAgIHx8IGR0b2hzKHR5cGVTcGVjLT5oZWFkZXIuaGVhZGVyU2l6ZSkrKHNpemVvZih1aW50MzJfdCkqZHRvaGwodHlwZVNwZWMtPmVudHJ5Q291bnQpKQotICAgICAgICAgICAgICAgICAgICA+IHR5cGVTcGVjU2l6ZSkpIHsKLSAgICAgICAgICAgICAgICBBTE9HVygiUmVzVGFibGVfdHlwZVNwZWMgZW50cnkgaW5kZXggdG8gJXAgZXh0ZW5kcyBiZXlvbmQgY2h1bmsgZW5kICVwLiIsCi0gICAgICAgICAgICAgICAgICAgICAodm9pZCopKGR0b2hzKHR5cGVTcGVjLT5oZWFkZXIuaGVhZGVyU2l6ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyhzaXplb2YodWludDMyX3QpKmR0b2hsKHR5cGVTcGVjLT5lbnRyeUNvdW50KSkpLAotICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKXR5cGVTcGVjU2l6ZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChtRXJyb3I9QkFEX1RZUEUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAodHlwZVNwZWMtPmlkID09IDApIHsKLSAgICAgICAgICAgICAgICBBTE9HVygiUmVzVGFibGVfdHlwZSBoYXMgYW4gaWQgb2YgMC4iKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gKG1FcnJvcj1CQURfVFlQRSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHdoaWxlIChwYWNrYWdlLT50eXBlcy5zaXplKCkgPCB0eXBlU3BlYy0+aWQpIHsKLSAgICAgICAgICAgICAgICBwYWNrYWdlLT50eXBlcy5hZGQoTlVMTCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBUeXBlKiB0ID0gcGFja2FnZS0+dHlwZXNbdHlwZVNwZWMtPmlkLTFdOwotICAgICAgICAgICAgaWYgKHQgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIHQgPSBuZXcgVHlwZShoZWFkZXIsIHBhY2thZ2UsIGR0b2hsKHR5cGVTcGVjLT5lbnRyeUNvdW50KSk7Ci0gICAgICAgICAgICAgICAgcGFja2FnZS0+dHlwZXMuZWRpdEl0ZW1BdCh0eXBlU3BlYy0+aWQtMSkgPSB0OwotICAgICAgICAgICAgfSBlbHNlIGlmIChkdG9obCh0eXBlU3BlYy0+ZW50cnlDb3VudCkgIT0gdC0+ZW50cnlDb3VudCkgewotICAgICAgICAgICAgICAgIEFMT0dXKCJSZXNUYWJsZV90eXBlU3BlYyBlbnRyeSBjb3VudCBpbmNvbnNpc3RlbnQ6IGdpdmVuICVkLCBwcmV2aW91c2x5ICVkIiwKLSAgICAgICAgICAgICAgICAgICAgKGludClkdG9obCh0eXBlU3BlYy0+ZW50cnlDb3VudCksIChpbnQpdC0+ZW50cnlDb3VudCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChtRXJyb3I9QkFEX1RZUEUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdC0+dHlwZVNwZWNGbGFncyA9IChjb25zdCB1aW50MzJfdCopKAotICAgICAgICAgICAgICAgICAgICAoKGNvbnN0IHVpbnQ4X3QqKXR5cGVTcGVjKSArIGR0b2hzKHR5cGVTcGVjLT5oZWFkZXIuaGVhZGVyU2l6ZSkpOwotICAgICAgICAgICAgdC0+dHlwZVNwZWMgPSB0eXBlU3BlYzsKLSAgICAgICAgICAgIAotICAgICAgICB9IGVsc2UgaWYgKGN0eXBlID09IFJFU19UQUJMRV9UWVBFX1RZUEUpIHsKLSAgICAgICAgICAgIGNvbnN0IFJlc1RhYmxlX3R5cGUqIHR5cGUgPSAoY29uc3QgUmVzVGFibGVfdHlwZSopKGNodW5rKTsKLSAgICAgICAgICAgIGVyciA9IHZhbGlkYXRlX2NodW5rKCZ0eXBlLT5oZWFkZXIsIHNpemVvZigqdHlwZSktc2l6ZW9mKFJlc1RhYmxlX2NvbmZpZykrNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZFBvcywgIlJlc1RhYmxlX3R5cGUiKTsKLSAgICAgICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gKG1FcnJvcj1lcnIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBjb25zdCBzaXplX3QgdHlwZVNpemUgPSBkdG9obCh0eXBlLT5oZWFkZXIuc2l6ZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIExPQURfVEFCTEVfTk9JU1kocHJpbnRmKCJUeXBlIG9mZiAlcDogdHlwZT0weCV4LCBoZWFkZXJTaXplPTB4JXgsIHNpemU9JXBcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopKGJhc2UtKGNvbnN0IHVpbnQ4X3QqKWNodW5rKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR0b2hzKHR5cGUtPmhlYWRlci50eXBlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR0b2hzKHR5cGUtPmhlYWRlci5oZWFkZXJTaXplKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKil0eXBlU2l6ZSkpOwotICAgICAgICAgICAgaWYgKGR0b2hzKHR5cGUtPmhlYWRlci5oZWFkZXJTaXplKSsoc2l6ZW9mKHVpbnQzMl90KSpkdG9obCh0eXBlLT5lbnRyeUNvdW50KSkKLSAgICAgICAgICAgICAgICA+IHR5cGVTaXplKSB7Ci0gICAgICAgICAgICAgICAgQUxPR1coIlJlc1RhYmxlX3R5cGUgZW50cnkgaW5kZXggdG8gJXAgZXh0ZW5kcyBiZXlvbmQgY2h1bmsgZW5kICVwLiIsCi0gICAgICAgICAgICAgICAgICAgICAodm9pZCopKGR0b2hzKHR5cGUtPmhlYWRlci5oZWFkZXJTaXplKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICArKHNpemVvZih1aW50MzJfdCkqZHRvaGwodHlwZS0+ZW50cnlDb3VudCkpKSwKLSAgICAgICAgICAgICAgICAgICAgICh2b2lkKil0eXBlU2l6ZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChtRXJyb3I9QkFEX1RZUEUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGR0b2hsKHR5cGUtPmVudHJ5Q291bnQpICE9IDAKLSAgICAgICAgICAgICAgICAmJiBkdG9obCh0eXBlLT5lbnRyaWVzU3RhcnQpID4gKHR5cGVTaXplLXNpemVvZihSZXNUYWJsZV9lbnRyeSkpKSB7Ci0gICAgICAgICAgICAgICAgQUxPR1coIlJlc1RhYmxlX3R5cGUgZW50cmllc1N0YXJ0IGF0ICVwIGV4dGVuZHMgYmV5b25kIGNodW5rIGVuZCAlcC4iLAotICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKWR0b2hsKHR5cGUtPmVudHJpZXNTdGFydCksICh2b2lkKil0eXBlU2l6ZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChtRXJyb3I9QkFEX1RZUEUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHR5cGUtPmlkID09IDApIHsKLSAgICAgICAgICAgICAgICBBTE9HVygiUmVzVGFibGVfdHlwZSBoYXMgYW4gaWQgb2YgMC4iKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gKG1FcnJvcj1CQURfVFlQRSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHdoaWxlIChwYWNrYWdlLT50eXBlcy5zaXplKCkgPCB0eXBlLT5pZCkgewotICAgICAgICAgICAgICAgIHBhY2thZ2UtPnR5cGVzLmFkZChOVUxMKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFR5cGUqIHQgPSBwYWNrYWdlLT50eXBlc1t0eXBlLT5pZC0xXTsKLSAgICAgICAgICAgIGlmICh0ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICB0ID0gbmV3IFR5cGUoaGVhZGVyLCBwYWNrYWdlLCBkdG9obCh0eXBlLT5lbnRyeUNvdW50KSk7Ci0gICAgICAgICAgICAgICAgcGFja2FnZS0+dHlwZXMuZWRpdEl0ZW1BdCh0eXBlLT5pZC0xKSA9IHQ7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGR0b2hsKHR5cGUtPmVudHJ5Q291bnQpICE9IHQtPmVudHJ5Q291bnQpIHsKLSAgICAgICAgICAgICAgICBBTE9HVygiUmVzVGFibGVfdHlwZSBlbnRyeSBjb3VudCBpbmNvbnNpc3RlbnQ6IGdpdmVuICVkLCBwcmV2aW91c2x5ICVkIiwKLSAgICAgICAgICAgICAgICAgICAgKGludClkdG9obCh0eXBlLT5lbnRyeUNvdW50KSwgKGludCl0LT5lbnRyeUNvdW50KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gKG1FcnJvcj1CQURfVFlQRSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFRBQkxFX0dFVEVOVFJZKAotICAgICAgICAgICAgICAgIFJlc1RhYmxlX2NvbmZpZyB0aGlzQ29uZmlnOwotICAgICAgICAgICAgICAgIHRoaXNDb25maWcuY29weUZyb21EdG9IKHR5cGUtPmNvbmZpZyk7Ci0gICAgICAgICAgICAgICAgQUxPR0koIkFkZGluZyBjb25maWcgdG8gdHlwZSAlZDogJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZS0+aWQsIHRoaXNDb25maWcudG9TdHJpbmcoKS5zdHJpbmcoKSkpOwotICAgICAgICAgICAgdC0+Y29uZmlncy5hZGQodHlwZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzdGF0dXNfdCBlcnIgPSB2YWxpZGF0ZV9jaHVuayhjaHVuaywgc2l6ZW9mKFJlc0NodW5rX2hlYWRlciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRQb3MsICJSZXNUYWJsZV9wYWNrYWdlOnVua25vd24iKTsKLSAgICAgICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gKG1FcnJvcj1lcnIpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGNodW5rID0gKGNvbnN0IFJlc0NodW5rX2hlYWRlciopCi0gICAgICAgICAgICAoKChjb25zdCB1aW50OF90KiljaHVuaykgKyBjc2l6ZSk7Ci0gICAgfQotCi0gICAgaWYgKGdyb3VwLT50eXBlQ291bnQgPT0gMCkgewotICAgICAgICBncm91cC0+dHlwZUNvdW50ID0gcGFja2FnZS0+dHlwZXMuc2l6ZSgpOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXR1c190IFJlc1RhYmxlOjpjcmVhdGVJZG1hcChjb25zdCBSZXNUYWJsZSYgb3ZlcmxheSwgdWludDMyX3Qgb3JpZ2luYWxDcmMsIHVpbnQzMl90IG92ZXJsYXlDcmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCoqIG91dERhdGEsIHNpemVfdCogb3V0U2l6ZSkgY29uc3QKLXsKLSAgICAvLyBzZWUgUkVBRE1FIGZvciBkZXRhaWxzIG9uIHRoZSBmb3JtYXQgb2YgbWFwCi0gICAgaWYgKG1QYWNrYWdlR3JvdXBzLnNpemUoKSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLSAgICBpZiAobVBhY2thZ2VHcm91cHNbMF0tPnBhY2thZ2VzLnNpemUoKSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLQotICAgIFZlY3RvcjxWZWN0b3I8dWludDMyX3Q+ID4gbWFwOwotICAgIGNvbnN0IFBhY2thZ2VHcm91cCogcGcgPSBtUGFja2FnZUdyb3Vwc1swXTsKLSAgICBjb25zdCBQYWNrYWdlKiBwa2cgPSBwZy0+cGFja2FnZXNbMF07Ci0gICAgc2l6ZV90IHR5cGVDb3VudCA9IHBrZy0+dHlwZXMuc2l6ZSgpOwotICAgIC8vIHN0YXJ0aW5nIHNpemUgaXMgaGVhZGVyICsgZmlyc3QgaXRlbSAobnVtYmVyIG9mIHR5cGVzIGluIG1hcCkKLSAgICAqb3V0U2l6ZSA9IChJRE1BUF9IRUFERVJfU0laRSArIDEpICogc2l6ZW9mKHVpbnQzMl90KTsKLSAgICBjb25zdCBTdHJpbmcxNiBvdmVybGF5UGFja2FnZShvdmVybGF5Lm1QYWNrYWdlR3JvdXBzWzBdLT5wYWNrYWdlc1swXS0+cGFja2FnZS0+bmFtZSk7Ci0gICAgY29uc3QgdWludDMyX3QgcGtnX2lkID0gcGtnLT5wYWNrYWdlLT5pZCA8PCAyNDsKLQotICAgIGZvciAoc2l6ZV90IHR5cGVJbmRleCA9IDA7IHR5cGVJbmRleCA8IHR5cGVDb3VudDsgKyt0eXBlSW5kZXgpIHsKLSAgICAgICAgc3NpemVfdCBmaXJzdCA9IC0xOwotICAgICAgICBzc2l6ZV90IGxhc3QgPSAtMTsKLSAgICAgICAgY29uc3QgVHlwZSogdHlwZUNvbmZpZ3MgPSBwa2ctPmdldFR5cGUodHlwZUluZGV4KTsKLSAgICAgICAgc3NpemVfdCBtYXBJbmRleCA9IG1hcC5hZGQoKTsKLSAgICAgICAgaWYgKG1hcEluZGV4IDwgMCkgewotICAgICAgICAgICAgcmV0dXJuIE5PX01FTU9SWTsKLSAgICAgICAgfQotICAgICAgICBWZWN0b3I8dWludDMyX3Q+JiB2ZWN0b3IgPSBtYXAuZWRpdEl0ZW1BdChtYXBJbmRleCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGVudHJ5SW5kZXggPSAwOyBlbnRyeUluZGV4IDwgdHlwZUNvbmZpZ3MtPmVudHJ5Q291bnQ7ICsrZW50cnlJbmRleCkgewotICAgICAgICAgICAgdWludDMyX3QgcmVzSUQgPSBwa2dfaWQKLSAgICAgICAgICAgICAgICB8ICgweDAwZmYwMDAwICYgKCh0eXBlSW5kZXgrMSk8PDE2KSkKLSAgICAgICAgICAgICAgICB8ICgweDAwMDBmZmZmICYgKGVudHJ5SW5kZXgpKTsKLSAgICAgICAgICAgIHJlc291cmNlX25hbWUgcmVzTmFtZTsKLSAgICAgICAgICAgIGlmICghdGhpcy0+Z2V0UmVzb3VyY2VOYW1lKHJlc0lELCB0cnVlLCAmcmVzTmFtZSkpIHsKLSAgICAgICAgICAgICAgICBBTE9HVygiaWRtYXA6IHJlc291cmNlIDB4JTA4eCBoYXMgc3BlYyBidXQgbGFja3MgdmFsdWVzLCBza2lwcGluZ1xuIiwgcmVzSUQpOwotICAgICAgICAgICAgICAgIC8vIGFkZCBkdW1teSB2YWx1ZSwgb3IgdHJpbW1pbmcgbGVhZGluZy90cmFpbGluZyB6ZXJvZXMgbGF0ZXIgd2lsbCBmYWlsCi0gICAgICAgICAgICAgICAgdmVjdG9yLnB1c2goMCk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2IG92ZXJsYXlUeXBlKHJlc05hbWUudHlwZSwgcmVzTmFtZS50eXBlTGVuKTsKLSAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2IG92ZXJsYXlOYW1lKHJlc05hbWUubmFtZSwgcmVzTmFtZS5uYW1lTGVuKTsKLSAgICAgICAgICAgIHVpbnQzMl90IG92ZXJsYXlSZXNJRCA9IG92ZXJsYXkuaWRlbnRpZmllckZvck5hbWUob3ZlcmxheU5hbWUuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlOYW1lLnNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVR5cGUuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlUeXBlLnNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheVBhY2thZ2Uuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlQYWNrYWdlLnNpemUoKSk7Ci0gICAgICAgICAgICBpZiAob3ZlcmxheVJlc0lEICE9IDApIHsKLSAgICAgICAgICAgICAgICBvdmVybGF5UmVzSUQgPSBwa2dfaWQgfCAoMHgwMGZmZmZmZiAmIG92ZXJsYXlSZXNJRCk7Ci0gICAgICAgICAgICAgICAgbGFzdCA9IFJlc19HRVRFTlRSWShyZXNJRCk7Ci0gICAgICAgICAgICAgICAgaWYgKGZpcnN0ID09IC0xKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gUmVzX0dFVEVOVFJZKHJlc0lEKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB2ZWN0b3IucHVzaChvdmVybGF5UmVzSUQpOwotI2lmIDAKLSAgICAgICAgICAgIGlmIChvdmVybGF5UmVzSUQgIT0gMCkgewotICAgICAgICAgICAgICAgIEFMT0dEKCIlcy8lcyAweCUwOHggLT4gMHglMDh4XG4iLAotICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChTdHJpbmcxNihyZXNOYW1lLnR5cGUpKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoU3RyaW5nMTYocmVzTmFtZS5uYW1lKSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICByZXNJRCwgb3ZlcmxheVJlc0lEKTsKLSAgICAgICAgICAgIH0KLSNlbmRpZgotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGZpcnN0ICE9IC0xKSB7Ci0gICAgICAgICAgICAvLyBzaGF2ZSBvZmYgdHJhaWxpbmcgZW50cmllcyB3aGljaCBsYWNrIG92ZXJsYXkgdmFsdWVzCi0gICAgICAgICAgICBjb25zdCBzaXplX3QgbGFzdF9wYXN0X29uZSA9IGxhc3QgKyAxOwotICAgICAgICAgICAgaWYgKGxhc3RfcGFzdF9vbmUgPCB2ZWN0b3Iuc2l6ZSgpKSB7Ci0gICAgICAgICAgICAgICAgdmVjdG9yLnJlbW92ZUl0ZW1zQXQobGFzdF9wYXN0X29uZSwgdmVjdG9yLnNpemUoKSAtIGxhc3RfcGFzdF9vbmUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gc2hhdmUgb2ZmIGxlYWRpbmcgZW50cmllcyB3aGljaCBsYWNrIG92ZXJsYXkgdmFsdWVzCi0gICAgICAgICAgICB2ZWN0b3IucmVtb3ZlSXRlbXNBdCgwLCBmaXJzdCk7Ci0gICAgICAgICAgICAvLyBzdG9yZSBvZmZzZXQgdG8gZmlyc3Qgb3ZlcmxhaWQgcmVzb3VyY2UgSUQgb2YgdGhpcyB0eXBlCi0gICAgICAgICAgICB2ZWN0b3IuaW5zZXJ0QXQoKHVpbnQzMl90KWZpcnN0LCAwLCAxKTsKLSAgICAgICAgICAgIC8vIHJlc2VydmUgc3BhY2UgZm9yIG51bWJlciBhbmQgb2Zmc2V0IG9mIGVudHJpZXMsIGFuZCB0aGUgYWN0dWFsIGVudHJpZXMKLSAgICAgICAgICAgICpvdXRTaXplICs9ICgyICsgdmVjdG9yLnNpemUoKSkgKiBzaXplb2YodWludDMyX3QpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gbm8gZW50cmllcyBvZiBjdXJyZW50IHR5cGUgZGVmaW5lZCBpbiBvdmVybGF5IHBhY2thZ2UKLSAgICAgICAgICAgIHZlY3Rvci5jbGVhcigpOwotICAgICAgICAgICAgLy8gcmVzZXJ2ZSBzcGFjZSBmb3IgdHlwZSBvZmZzZXQKLSAgICAgICAgICAgICpvdXRTaXplICs9IDEgKiBzaXplb2YodWludDMyX3QpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCgqb3V0RGF0YSA9IG1hbGxvYygqb3V0U2l6ZSkpID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE5PX01FTU9SWTsKLSAgICB9Ci0gICAgdWludDMyX3QqIGRhdGEgPSAodWludDMyX3QqKSpvdXREYXRhOwotICAgICpkYXRhKysgPSBodG9kbChJRE1BUF9NQUdJQyk7Ci0gICAgKmRhdGErKyA9IGh0b2RsKG9yaWdpbmFsQ3JjKTsKLSAgICAqZGF0YSsrID0gaHRvZGwob3ZlcmxheUNyYyk7Ci0gICAgY29uc3Qgc2l6ZV90IG1hcFNpemUgPSBtYXAuc2l6ZSgpOwotICAgICpkYXRhKysgPSBodG9kbChtYXBTaXplKTsKLSAgICBzaXplX3Qgb2Zmc2V0ID0gbWFwU2l6ZTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hcFNpemU7ICsraSkgewotICAgICAgICBjb25zdCBWZWN0b3I8dWludDMyX3Q+JiB2ZWN0b3IgPSBtYXAuaXRlbUF0KGkpOwotICAgICAgICBjb25zdCBzaXplX3QgTiA9IHZlY3Rvci5zaXplKCk7Ci0gICAgICAgIGlmIChOID09IDApIHsKLSAgICAgICAgICAgICpkYXRhKysgPSBodG9kbCgwKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG9mZnNldCsrOwotICAgICAgICAgICAgKmRhdGErKyA9IGh0b2RsKG9mZnNldCk7Ci0gICAgICAgICAgICBvZmZzZXQgKz0gTjsKLSAgICAgICAgfQotICAgIH0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hcFNpemU7ICsraSkgewotICAgICAgICBjb25zdCBWZWN0b3I8dWludDMyX3Q+JiB2ZWN0b3IgPSBtYXAuaXRlbUF0KGkpOwotICAgICAgICBjb25zdCBzaXplX3QgTiA9IHZlY3Rvci5zaXplKCk7Ci0gICAgICAgIGlmIChOID09IDApIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChOID09IDEpIHsgLy8gdmVjdG9yIGV4cGVjdGVkIHRvIGhvbGQgKG9mZnNldCkgKyAoTiA+IDAgZW50cmllcykKLSAgICAgICAgICAgIEFMT0dXKCJpZG1hcDogdHlwZSAlZCBzdXBwb3NlZGx5IGhhcyBlbnRyaWVzLCBidXQgbm8gZW50cmllcyBmb3VuZFxuIiwgaSk7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotICAgICAgICAqZGF0YSsrID0gaHRvZGwoTiAtIDEpOyAvLyBkbyBub3QgY291bnQgdGhlIG9mZnNldCAod2hpY2ggaXMgdmVjdG9yJ3MgZmlyc3QgZWxlbWVudCkKLSAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBOOyArK2opIHsKLSAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90JiBvdmVybGF5UmVzSUQgPSB2ZWN0b3IuaXRlbUF0KGopOwotICAgICAgICAgICAgKmRhdGErKyA9IGh0b2RsKG92ZXJsYXlSZXNJRCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLWJvb2wgUmVzVGFibGU6OmdldElkbWFwSW5mbyhjb25zdCB2b2lkKiBpZG1hcCwgc2l6ZV90IHNpemVCeXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogcE9yaWdpbmFsQ3JjLCB1aW50MzJfdCogcE92ZXJsYXlDcmMpCi17Ci0gICAgY29uc3QgdWludDMyX3QqIG1hcCA9IChjb25zdCB1aW50MzJfdCopaWRtYXA7Ci0gICAgaWYgKCFhc3NlcnRJZG1hcEhlYWRlcihtYXAsIHNpemVCeXRlcykpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAqcE9yaWdpbmFsQ3JjID0gbWFwWzFdOwotICAgICpwT3ZlcmxheUNyYyA9IG1hcFsyXTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotCi0jZGVmaW5lIENIQVIxNl9UT19DU1RSKGMxNiwgbGVuKSAoU3RyaW5nOChTdHJpbmcxNihjMTYsbGVuKSkuc3RyaW5nKCkpCi0KLSNkZWZpbmUgQ0hBUjE2X0FSUkFZX0VRKGNvbnN0YW50LCB2YXIsIGxlbikgXAotICAgICAgICAoKGxlbiA9PSAoc2l6ZW9mKGNvbnN0YW50KS9zaXplb2YoY29uc3RhbnRbMF0pKSkgJiYgKDAgPT0gbWVtY21wKCh2YXIpLCAoY29uc3RhbnQpLCAobGVuKSkpKQotCi1zdGF0aWMgdm9pZCBwcmludF9jb21wbGV4KHVpbnQzMl90IGNvbXBsZXgsIGJvb2wgaXNGcmFjdGlvbikKLXsKLSAgICBjb25zdCBmbG9hdCBNQU5USVNTQV9NVUxUID0KLSAgICAgICAgMS4wZiAvICgxPDxSZXNfdmFsdWU6OkNPTVBMRVhfTUFOVElTU0FfU0hJRlQpOwotICAgIGNvbnN0IGZsb2F0IFJBRElYX01VTFRTW10gPSB7Ci0gICAgICAgIDEuMGYqTUFOVElTU0FfTVVMVCwgMS4wZi8oMTw8NykqTUFOVElTU0FfTVVMVCwKLSAgICAgICAgMS4wZi8oMTw8MTUpKk1BTlRJU1NBX01VTFQsIDEuMGYvKDE8PDIzKSpNQU5USVNTQV9NVUxUCi0gICAgfTsKLQotICAgIGZsb2F0IHZhbHVlID0gKGNvbXBsZXgmKFJlc192YWx1ZTo6Q09NUExFWF9NQU5USVNTQV9NQVNLCi0gICAgICAgICAgICAgICAgICAgPDxSZXNfdmFsdWU6OkNPTVBMRVhfTUFOVElTU0FfU0hJRlQpKQotICAgICAgICAgICAgKiBSQURJWF9NVUxUU1soY29tcGxleD4+UmVzX3ZhbHVlOjpDT01QTEVYX1JBRElYX1NISUZUKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgUmVzX3ZhbHVlOjpDT01QTEVYX1JBRElYX01BU0tdOwotICAgIHByaW50ZigiJWYiLCB2YWx1ZSk7Ci0gICAgCi0gICAgaWYgKCFpc0ZyYWN0aW9uKSB7Ci0gICAgICAgIHN3aXRjaCAoKGNvbXBsZXg+PlJlc192YWx1ZTo6Q09NUExFWF9VTklUX1NISUZUKSZSZXNfdmFsdWU6OkNPTVBMRVhfVU5JVF9NQVNLKSB7Ci0gICAgICAgICAgICBjYXNlIFJlc192YWx1ZTo6Q09NUExFWF9VTklUX1BYOiBwcmludGYoInB4Iik7IGJyZWFrOwotICAgICAgICAgICAgY2FzZSBSZXNfdmFsdWU6OkNPTVBMRVhfVU5JVF9ESVA6IHByaW50ZigiZHAiKTsgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc192YWx1ZTo6Q09NUExFWF9VTklUX1NQOiBwcmludGYoInNwIik7IGJyZWFrOwotICAgICAgICAgICAgY2FzZSBSZXNfdmFsdWU6OkNPTVBMRVhfVU5JVF9QVDogcHJpbnRmKCJwdCIpOyBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUmVzX3ZhbHVlOjpDT01QTEVYX1VOSVRfSU46IHByaW50ZigiaW4iKTsgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFJlc192YWx1ZTo6Q09NUExFWF9VTklUX01NOiBwcmludGYoIm1tIik7IGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDogcHJpbnRmKCIgKHVua25vd24gdW5pdCkiKTsgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBzd2l0Y2ggKChjb21wbGV4Pj5SZXNfdmFsdWU6OkNPTVBMRVhfVU5JVF9TSElGVCkmUmVzX3ZhbHVlOjpDT01QTEVYX1VOSVRfTUFTSykgewotICAgICAgICAgICAgY2FzZSBSZXNfdmFsdWU6OkNPTVBMRVhfVU5JVF9GUkFDVElPTjogcHJpbnRmKCIlJSIpOyBicmVhazsKLSAgICAgICAgICAgIGNhc2UgUmVzX3ZhbHVlOjpDT01QTEVYX1VOSVRfRlJBQ1RJT05fUEFSRU5UOiBwcmludGYoIiUlcCIpOyBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6IHByaW50ZigiICh1bmtub3duIHVuaXQpIik7IGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotfQotCi0vLyBOb3JtYWxpemUgYSBzdHJpbmcgZm9yIG91dHB1dAotU3RyaW5nOCBSZXNUYWJsZTo6bm9ybWFsaXplRm9yT3V0cHV0KCBjb25zdCBjaGFyICppbnB1dCApCi17Ci0gICAgU3RyaW5nOCByZXQ7Ci0gICAgY2hhciBidWZmWzJdOwotICAgIGJ1ZmZbMV0gPSAnXDAnOwotCi0gICAgd2hpbGUgKCppbnB1dCAhPSAnXDAnKSB7Ci0gICAgICAgIHN3aXRjaCAoKmlucHV0KSB7Ci0gICAgICAgICAgICAvLyBBbGwgaW50ZXJlc3RpbmcgY2hhcmFjdGVycyBhcmUgaW4gdGhlIEFTQ0lJIHpvbmUsIHNvIHdlIGFyZSBtYWtpbmcgb3VyIG93biBsaXZlcwotICAgICAgICAgICAgLy8gZWFzaWVyIGJ5IHNjYW5uaW5nIHRoZSBzdHJpbmcgb25lIGJ5dGUgYXQgYSB0aW1lLgotICAgICAgICBjYXNlICdcXCc6Ci0gICAgICAgICAgICByZXQgKz0gIlxcXFwiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgJ1xuJzoKLSAgICAgICAgICAgIHJldCArPSAiXFxuIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICciJzoKLSAgICAgICAgICAgIHJldCArPSAiXFxcIiI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJ1ZmZbMF0gPSAqaW5wdXQ7Ci0gICAgICAgICAgICByZXQgKz0gYnVmZjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgaW5wdXQrKzsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCi12b2lkIFJlc1RhYmxlOjpwcmludF92YWx1ZShjb25zdCBQYWNrYWdlKiBwa2csIGNvbnN0IFJlc192YWx1ZSYgdmFsdWUpIGNvbnN0Ci17Ci0gICAgaWYgKHZhbHVlLmRhdGFUeXBlID09IFJlc192YWx1ZTo6VFlQRV9OVUxMKSB7Ci0gICAgICAgIHByaW50ZigiKG51bGwpXG4iKTsKLSAgICB9IGVsc2UgaWYgKHZhbHVlLmRhdGFUeXBlID09IFJlc192YWx1ZTo6VFlQRV9SRUZFUkVOQ0UpIHsKLSAgICAgICAgcHJpbnRmKCIocmVmZXJlbmNlKSAweCUwOHhcbiIsIHZhbHVlLmRhdGEpOwotICAgIH0gZWxzZSBpZiAodmFsdWUuZGF0YVR5cGUgPT0gUmVzX3ZhbHVlOjpUWVBFX0FUVFJJQlVURSkgewotICAgICAgICBwcmludGYoIihhdHRyaWJ1dGUpIDB4JTA4eFxuIiwgdmFsdWUuZGF0YSk7Ci0gICAgfSBlbHNlIGlmICh2YWx1ZS5kYXRhVHlwZSA9PSBSZXNfdmFsdWU6OlRZUEVfU1RSSU5HKSB7Ci0gICAgICAgIHNpemVfdCBsZW47Ci0gICAgICAgIGNvbnN0IGNoYXIqIHN0cjggPSBwa2ctPmhlYWRlci0+dmFsdWVzLnN0cmluZzhBdCgKLSAgICAgICAgICAgICAgICB2YWx1ZS5kYXRhLCAmbGVuKTsKLSAgICAgICAgaWYgKHN0cjggIT0gTlVMTCkgewotICAgICAgICAgICAgcHJpbnRmKCIoc3RyaW5nOCkgXCIlc1wiXG4iLCBub3JtYWxpemVGb3JPdXRwdXQoc3RyOCkuc3RyaW5nKCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29uc3QgY2hhcjE2X3QqIHN0cjE2ID0gcGtnLT5oZWFkZXItPnZhbHVlcy5zdHJpbmdBdCgKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUuZGF0YSwgJmxlbik7Ci0gICAgICAgICAgICBpZiAoc3RyMTYgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIHByaW50ZigiKHN0cmluZzE2KSBcIiVzXCJcbiIsCi0gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZUZvck91dHB1dChTdHJpbmc4KHN0cjE2LCBsZW4pLnN0cmluZygpKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHByaW50ZigiKHN0cmluZykgbnVsbFxuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gCi0gICAgfSBlbHNlIGlmICh2YWx1ZS5kYXRhVHlwZSA9PSBSZXNfdmFsdWU6OlRZUEVfRkxPQVQpIHsKLSAgICAgICAgcHJpbnRmKCIoZmxvYXQpICVnXG4iLCAqKGNvbnN0IGZsb2F0KikmdmFsdWUuZGF0YSk7Ci0gICAgfSBlbHNlIGlmICh2YWx1ZS5kYXRhVHlwZSA9PSBSZXNfdmFsdWU6OlRZUEVfRElNRU5TSU9OKSB7Ci0gICAgICAgIHByaW50ZigiKGRpbWVuc2lvbikgIik7Ci0gICAgICAgIHByaW50X2NvbXBsZXgodmFsdWUuZGF0YSwgZmFsc2UpOwotICAgICAgICBwcmludGYoIlxuIik7Ci0gICAgfSBlbHNlIGlmICh2YWx1ZS5kYXRhVHlwZSA9PSBSZXNfdmFsdWU6OlRZUEVfRlJBQ1RJT04pIHsKLSAgICAgICAgcHJpbnRmKCIoZnJhY3Rpb24pICIpOwotICAgICAgICBwcmludF9jb21wbGV4KHZhbHVlLmRhdGEsIHRydWUpOwotICAgICAgICBwcmludGYoIlxuIik7Ci0gICAgfSBlbHNlIGlmICh2YWx1ZS5kYXRhVHlwZSA+PSBSZXNfdmFsdWU6OlRZUEVfRklSU1RfQ09MT1JfSU5UCi0gICAgICAgICAgICB8fCB2YWx1ZS5kYXRhVHlwZSA8PSBSZXNfdmFsdWU6OlRZUEVfTEFTVF9DT0xPUl9JTlQpIHsKLSAgICAgICAgcHJpbnRmKCIoY29sb3IpICMlMDh4XG4iLCB2YWx1ZS5kYXRhKTsKLSAgICB9IGVsc2UgaWYgKHZhbHVlLmRhdGFUeXBlID09IFJlc192YWx1ZTo6VFlQRV9JTlRfQk9PTEVBTikgewotICAgICAgICBwcmludGYoIihib29sZWFuKSAlc1xuIiwgdmFsdWUuZGF0YSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwotICAgIH0gZWxzZSBpZiAodmFsdWUuZGF0YVR5cGUgPj0gUmVzX3ZhbHVlOjpUWVBFX0ZJUlNUX0lOVAotICAgICAgICAgICAgfHwgdmFsdWUuZGF0YVR5cGUgPD0gUmVzX3ZhbHVlOjpUWVBFX0xBU1RfSU5UKSB7Ci0gICAgICAgIHByaW50ZigiKGludCkgMHglMDh4IG9yICVkXG4iLCB2YWx1ZS5kYXRhLCB2YWx1ZS5kYXRhKTsKLSAgICB9IGVsc2UgewotICAgICAgICBwcmludGYoIih1bmtub3duIHR5cGUpIHQ9MHglMDJ4IGQ9MHglMDh4IChzPTB4JTA0eCByPTB4JTAyeClcbiIsCi0gICAgICAgICAgICAgICAoaW50KXZhbHVlLmRhdGFUeXBlLCAoaW50KXZhbHVlLmRhdGEsCi0gICAgICAgICAgICAgICAoaW50KXZhbHVlLnNpemUsIChpbnQpdmFsdWUucmVzMCk7Ci0gICAgfQotfQotCi12b2lkIFJlc1RhYmxlOjpwcmludChib29sIGluY2xWYWx1ZXMpIGNvbnN0Ci17Ci0gICAgaWYgKG1FcnJvciAhPSAwKSB7Ci0gICAgICAgIHByaW50ZigibUVycm9yPTB4JXggKCVzKVxuIiwgbUVycm9yLCBzdHJlcnJvcihtRXJyb3IpKTsKLSAgICB9Ci0jaWYgMAotICAgIHByaW50ZigibVBhcmFtcz0lYyVjLSVjJWMsXG4iLAotICAgICAgICAgICAgbVBhcmFtcy5sYW5ndWFnZVswXSwgbVBhcmFtcy5sYW5ndWFnZVsxXSwKLSAgICAgICAgICAgIG1QYXJhbXMuY291bnRyeVswXSwgbVBhcmFtcy5jb3VudHJ5WzFdKTsKLSNlbmRpZgotICAgIHNpemVfdCBwZ0NvdW50ID0gbVBhY2thZ2VHcm91cHMuc2l6ZSgpOwotICAgIHByaW50ZigiUGFja2FnZSBHcm91cHMgKCVkKVxuIiwgKGludClwZ0NvdW50KTsKLSAgICBmb3IgKHNpemVfdCBwZ0luZGV4PTA7IHBnSW5kZXg8cGdDb3VudDsgcGdJbmRleCsrKSB7Ci0gICAgICAgIGNvbnN0IFBhY2thZ2VHcm91cCogcGcgPSBtUGFja2FnZUdyb3Vwc1twZ0luZGV4XTsKLSAgICAgICAgcHJpbnRmKCJQYWNrYWdlIEdyb3VwICVkIGlkPSVkIHBhY2thZ2VDb3VudD0lZCBuYW1lPSVzXG4iLAotICAgICAgICAgICAgICAgIChpbnQpcGdJbmRleCwgcGctPmlkLCAoaW50KXBnLT5wYWNrYWdlcy5zaXplKCksCi0gICAgICAgICAgICAgICAgU3RyaW5nOChwZy0+bmFtZSkuc3RyaW5nKCkpOwotICAgICAgICAKLSAgICAgICAgc2l6ZV90IHBrZ0NvdW50ID0gcGctPnBhY2thZ2VzLnNpemUoKTsKLSAgICAgICAgZm9yIChzaXplX3QgcGtnSW5kZXg9MDsgcGtnSW5kZXg8cGtnQ291bnQ7IHBrZ0luZGV4KyspIHsKLSAgICAgICAgICAgIGNvbnN0IFBhY2thZ2UqIHBrZyA9IHBnLT5wYWNrYWdlc1twa2dJbmRleF07Ci0gICAgICAgICAgICBzaXplX3QgdHlwZUNvdW50ID0gcGtnLT50eXBlcy5zaXplKCk7Ci0gICAgICAgICAgICBwcmludGYoIiAgUGFja2FnZSAlZCBpZD0lZCBuYW1lPSVzIHR5cGVDb3VudD0lZFxuIiwgKGludClwa2dJbmRleCwKLSAgICAgICAgICAgICAgICAgICAgcGtnLT5wYWNrYWdlLT5pZCwgU3RyaW5nOChTdHJpbmcxNihwa2ctPnBhY2thZ2UtPm5hbWUpKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgKGludCl0eXBlQ291bnQpOwotICAgICAgICAgICAgZm9yIChzaXplX3QgdHlwZUluZGV4PTA7IHR5cGVJbmRleDx0eXBlQ291bnQ7IHR5cGVJbmRleCsrKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgVHlwZSogdHlwZUNvbmZpZ3MgPSBwa2ctPmdldFR5cGUodHlwZUluZGV4KTsKLSAgICAgICAgICAgICAgICBpZiAodHlwZUNvbmZpZ3MgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBwcmludGYoIiAgICB0eXBlICVkIE5VTExcbiIsIChpbnQpdHlwZUluZGV4KTsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvbnN0IHNpemVfdCBOVEMgPSB0eXBlQ29uZmlncy0+Y29uZmlncy5zaXplKCk7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCIgICAgdHlwZSAlZCBjb25maWdDb3VudD0lZCBlbnRyeUNvdW50PSVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAoaW50KXR5cGVJbmRleCwgKGludClOVEMsIChpbnQpdHlwZUNvbmZpZ3MtPmVudHJ5Q291bnQpOwotICAgICAgICAgICAgICAgIGlmICh0eXBlQ29uZmlncy0+dHlwZVNwZWNGbGFncyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGVudHJ5SW5kZXg9MDsgZW50cnlJbmRleDx0eXBlQ29uZmlncy0+ZW50cnlDb3VudDsgZW50cnlJbmRleCsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCByZXNJRCA9ICgweGZmMDAwMDAwICYgKChwa2ctPnBhY2thZ2UtPmlkKTw8MjQpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoMHgwMGZmMDAwMCAmICgodHlwZUluZGV4KzEpPDwxNikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgweDAwMDBmZmZmICYgKGVudHJ5SW5kZXgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlX25hbWUgcmVzTmFtZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLT5nZXRSZXNvdXJjZU5hbWUocmVzSUQsIHRydWUsICZyZXNOYW1lKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzggdHlwZTg7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCBuYW1lODsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzTmFtZS50eXBlOCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU4ID0gU3RyaW5nOChyZXNOYW1lLnR5cGU4LCByZXNOYW1lLnR5cGVMZW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU4ID0gU3RyaW5nOChyZXNOYW1lLnR5cGUsIHJlc05hbWUudHlwZUxlbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNOYW1lLm5hbWU4ICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTggPSBTdHJpbmc4KHJlc05hbWUubmFtZTgsIHJlc05hbWUubmFtZUxlbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTggPSBTdHJpbmc4KHJlc05hbWUubmFtZSwgcmVzTmFtZS5uYW1lTGVuKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgICAgICBzcGVjIHJlc291cmNlIDB4JTA4eCAlczolcy8lczogZmxhZ3M9MHglMDh4XG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0hBUjE2X1RPX0NTVFIocmVzTmFtZS5wYWNrYWdlLCByZXNOYW1lLnBhY2thZ2VMZW4pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOC5zdHJpbmcoKSwgbmFtZTguc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR0b2hsKHR5cGVDb25maWdzLT50eXBlU3BlY0ZsYWdzW2VudHJ5SW5kZXhdKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiICAgICAgSU5WQUxJRCBUWVBFIENPTkZJRyBGT1IgUkVTT1VSQ0UgMHglMDh4XG4iLCByZXNJRCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZm9yIChzaXplX3QgY29uZmlnSW5kZXg9MDsgY29uZmlnSW5kZXg8TlRDOyBjb25maWdJbmRleCsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc1RhYmxlX3R5cGUqIHR5cGUgPSB0eXBlQ29uZmlncy0+Y29uZmlnc1tjb25maWdJbmRleF07Ci0gICAgICAgICAgICAgICAgICAgIGlmICgoKCh1aW50NjRfdCl0eXBlKSYweDMpICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiICAgICAgTk9OLUlOVEVHRVIgUmVzVGFibGVfdHlwZSBBRERSRVNTOiAlcFxuIiwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBTdHJpbmc4IGNvbmZpZ1N0ciA9IHR5cGUtPmNvbmZpZy50b1N0cmluZygpOwotICAgICAgICAgICAgICAgICAgICBwcmludGYoIiAgICAgIGNvbmZpZyAlczpcbiIsIGNvbmZpZ1N0ci5zaXplKCkgPiAwCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjb25maWdTdHIuc3RyaW5nKCkgOiAiKGRlZmF1bHQpIik7Ci0gICAgICAgICAgICAgICAgICAgIHNpemVfdCBlbnRyeUNvdW50ID0gZHRvaGwodHlwZS0+ZW50cnlDb3VudCk7Ci0gICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGVudHJpZXNTdGFydCA9IGR0b2hsKHR5cGUtPmVudHJpZXNTdGFydCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgoZW50cmllc1N0YXJ0JjB4MykgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgICAgICBOT04tSU5URUdFUiBSZXNUYWJsZV90eXBlIGVudHJpZXNTdGFydCBPRkZTRVQ6ICVwXG4iLCAodm9pZCopZW50cmllc1N0YXJ0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHR5cGVTaXplID0gZHRvaGwodHlwZS0+aGVhZGVyLnNpemUpOwotICAgICAgICAgICAgICAgICAgICBpZiAoKHR5cGVTaXplJjB4MykgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgICAgICBOT04tSU5URUdFUiBSZXNUYWJsZV90eXBlIGhlYWRlci5zaXplOiAlcFxuIiwgKHZvaWQqKXR5cGVTaXplKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGVudHJ5SW5kZXg9MDsgZW50cnlJbmRleDxlbnRyeUNvdW50OyBlbnRyeUluZGV4KyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogY29uc3QgZW5kID0gKChjb25zdCB1aW50OF90Kil0eXBlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZHRvaGwodHlwZS0+aGVhZGVyLnNpemUpOwotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QqIGNvbnN0IGVpbmRleCA9IChjb25zdCB1aW50MzJfdCopCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgoY29uc3QgdWludDhfdCopdHlwZSkgKyBkdG9ocyh0eXBlLT5oZWFkZXIuaGVhZGVyU2l6ZSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0aGlzT2Zmc2V0ID0gZHRvaGwoZWluZGV4W2VudHJ5SW5kZXhdKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzT2Zmc2V0ID09IFJlc1RhYmxlX3R5cGU6Ok5PX0VOVFJZKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHJlc0lEID0gKDB4ZmYwMDAwMDAgJiAoKHBrZy0+cGFja2FnZS0+aWQpPDwyNCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgweDAwZmYwMDAwICYgKCh0eXBlSW5kZXgrMSk8PDE2KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKDB4MDAwMGZmZmYgJiAoZW50cnlJbmRleCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VfbmFtZSByZXNOYW1lOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMtPmdldFJlc291cmNlTmFtZShyZXNJRCwgdHJ1ZSwgJnJlc05hbWUpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCB0eXBlODsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4IG5hbWU4OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNOYW1lLnR5cGU4ICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTggPSBTdHJpbmc4KHJlc05hbWUudHlwZTgsIHJlc05hbWUudHlwZUxlbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTggPSBTdHJpbmc4KHJlc05hbWUudHlwZSwgcmVzTmFtZS50eXBlTGVuKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc05hbWUubmFtZTggIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOCA9IFN0cmluZzgocmVzTmFtZS5uYW1lOCwgcmVzTmFtZS5uYW1lTGVuKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOCA9IFN0cmluZzgocmVzTmFtZS5uYW1lLCByZXNOYW1lLm5hbWVMZW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiAgICAgICAgcmVzb3VyY2UgMHglMDh4ICVzOiVzLyVzOiAiLCByZXNJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENIQVIxNl9UT19DU1RSKHJlc05hbWUucGFja2FnZSwgcmVzTmFtZS5wYWNrYWdlTGVuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU4LnN0cmluZygpLCBuYW1lOC5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiICAgICAgICBJTlZBTElEIFJFU09VUkNFIDB4JTA4eDogIiwgcmVzSUQpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh0aGlzT2Zmc2V0JjB4MykgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiTk9OLUlOVEVHRVIgT0ZGU0VUOiAlcFxuIiwgKHZvaWQqKXRoaXNPZmZzZXQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh0aGlzT2Zmc2V0K3NpemVvZihSZXNUYWJsZV9lbnRyeSkpID4gdHlwZVNpemUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIk9GRlNFVCBPVVQgT0YgQk9VTkRTOiAlcCslcCAoc2l6ZSBpcyAlcClcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKillbnRyaWVzU3RhcnQsICh2b2lkKil0aGlzT2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopdHlwZVNpemUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNUYWJsZV9lbnRyeSogZW50ID0gKGNvbnN0IFJlc1RhYmxlX2VudHJ5KikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChjb25zdCB1aW50OF90Kil0eXBlKSArIGVudHJpZXNTdGFydCArIHRoaXNPZmZzZXQpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgoZW50cmllc1N0YXJ0ICsgdGhpc09mZnNldCkmMHgzKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJOT04tSU5URUdFUiBSZXNUYWJsZV9lbnRyeSBPRkZTRVQ6ICVwXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKShlbnRyaWVzU3RhcnQgKyB0aGlzT2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IGVzaXplID0gZHRvaHMoZW50LT5zaXplKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZXNpemUmMHgzKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJOT04tSU5URUdFUiBSZXNUYWJsZV9lbnRyeSBTSVpFOiAlcFxuIiwgKHZvaWQqKWVzaXplKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodGhpc09mZnNldCtlc2l6ZSkgPiB0eXBlU2l6ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiUmVzVGFibGVfZW50cnkgT1VUIE9GIEJPVU5EUzogJXArJXArJXAgKHNpemUgaXMgJXApXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopZW50cmllc1N0YXJ0LCAodm9pZCopdGhpc09mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKWVzaXplLCAodm9pZCopdHlwZVNpemUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzX3ZhbHVlKiB2YWx1ZVB0ciA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNUYWJsZV9tYXBfZW50cnkqIGJhZ1B0ciA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgICAgICBSZXNfdmFsdWUgdmFsdWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGR0b2hzKGVudC0+ZmxhZ3MpJlJlc1RhYmxlX2VudHJ5OjpGTEFHX0NPTVBMRVgpICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIjxiYWc+Iik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFnUHRyID0gKGNvbnN0IFJlc1RhYmxlX21hcF9lbnRyeSopZW50OwotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVB0ciA9IChjb25zdCBSZXNfdmFsdWUqKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChjb25zdCB1aW50OF90KillbnQpICsgZXNpemUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmNvcHlGcm9tX2R0b2goKnZhbHVlUHRyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoInQ9MHglMDJ4IGQ9MHglMDh4IChzPTB4JTA0eCByPTB4JTAyeCkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KXZhbHVlLmRhdGFUeXBlLCAoaW50KXZhbHVlLmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpdmFsdWUuc2l6ZSwgKGludCl2YWx1ZS5yZXMwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChkdG9ocyhlbnQtPmZsYWdzKSZSZXNUYWJsZV9lbnRyeTo6RkxBR19QVUJMSUMpICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiAoUFVCTElDKSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5jbFZhbHVlcykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVB0ciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiICAgICAgICAgICIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludF92YWx1ZShwa2csIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGJhZ1B0ciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBOID0gZHRvaGwoYmFnUHRyLT5jb3VudCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIGJhc2VNYXBQdHIgPSAoY29uc3QgdWludDhfdCopZW50OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbWFwT2Zmc2V0ID0gZXNpemU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc1RhYmxlX21hcCogbWFwUHRyID0gKFJlc1RhYmxlX21hcCopKGJhc2VNYXBQdHIrbWFwT2Zmc2V0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgICAgICAgICAgUGFyZW50PTB4JTA4eCwgQ291bnQ9JWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdG9obChiYWdQdHItPnBhcmVudC5pZGVudCksIE4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8TiAmJiBtYXBPZmZzZXQgPCAodHlwZVNpemUtc2l6ZW9mKFJlc1RhYmxlX21hcCkpOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiICAgICAgICAgICMlaSAoS2V5PTB4JTA4eCk6ICIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgZHRvaGwobWFwUHRyLT5uYW1lLmlkZW50KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5jb3B5RnJvbV9kdG9oKG1hcFB0ci0+dmFsdWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRfdmFsdWUocGtnLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplX3Qgc2l6ZSA9IGR0b2hzKG1hcFB0ci0+dmFsdWUuc2l6ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBPZmZzZXQgKz0gc2l6ZSArIHNpemVvZigqbWFwUHRyKS1zaXplb2YobWFwUHRyLT52YWx1ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBQdHIgPSAoUmVzVGFibGVfbWFwKikoYmFzZU1hcFB0cittYXBPZmZzZXQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotfQotCi19ICAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2xpYnMvYW5kcm9pZGZ3L1N0cmVhbWluZ1ppcEluZmxhdGVyLmNwcCBiL2xpYnMvYW5kcm9pZGZ3L1N0cmVhbWluZ1ppcEluZmxhdGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWRmZWMyMy4uMDAwMDAwMAotLS0gYS9saWJzL2FuZHJvaWRmdy9TdHJlYW1pbmdaaXBJbmZsYXRlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLS8vI2RlZmluZSBMT0dfTkRFQlVHIDAKLSNkZWZpbmUgTE9HX1RBRyAic3ppcGluZiIKLSNpbmNsdWRlIDx1dGlscy9Mb2cuaD4KLQotI2luY2x1ZGUgPGFuZHJvaWRmdy9TdHJlYW1pbmdaaXBJbmZsYXRlci5oPgotI2luY2x1ZGUgPHV0aWxzL0ZpbGVNYXAuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzdGRkZWYuaD4KLSNpbmNsdWRlIDxhc3NlcnQuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotCi0vKgotICogVEVNUF9GQUlMVVJFX1JFVFJZIGlzIGRlZmluZWQgYnkgc29tZSwgYnV0IG5vdCBhbGwsIHZlcnNpb25zIG9mCi0gKiA8dW5pc3RkLmg+LiAoQWxhcywgaXQgaXMgbm90IGFzIHN0YW5kYXJkIGFzIHdlJ2QgaG9wZWQhKSBTbywgaWYgaXQncwotICogbm90IGFscmVhZHkgZGVmaW5lZCwgdGhlbiBkZWZpbmUgaXQgaGVyZS4KLSAqLwotI2lmbmRlZiBURU1QX0ZBSUxVUkVfUkVUUlkKLS8qIFVzZWQgdG8gcmV0cnkgc3lzY2FsbHMgdGhhdCBjYW4gcmV0dXJuIEVJTlRSLiAqLwotI2RlZmluZSBURU1QX0ZBSUxVUkVfUkVUUlkoZXhwKSAoeyAgICAgICAgIFwKLSAgICB0eXBlb2YgKGV4cCkgX3JjOyAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBfcmMgPSAoZXhwKTsgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICB9IHdoaWxlIChfcmMgPT0gLTEgJiYgZXJybm8gPT0gRUlOVFIpOyBcCi0gICAgX3JjOyB9KQotI2VuZGlmCi0KLXN0YXRpYyBpbmxpbmUgc2l6ZV90IG1pbl9vZihzaXplX3QgYSwgc2l6ZV90IGIpIHsgcmV0dXJuIChhIDwgYikgPyBhIDogYjsgfQotCi11c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKLQotLyoKLSAqIFN0cmVhbWluZyBhY2Nlc3MgdG8gY29tcHJlc3NlZCBhc3NldCBkYXRhIGluIGFuIG9wZW4gZmQKLSAqLwotU3RyZWFtaW5nWmlwSW5mbGF0ZXI6OlN0cmVhbWluZ1ppcEluZmxhdGVyKGludCBmZCwgb2ZmNjRfdCBjb21wRGF0YVN0YXJ0LAotICAgICAgICBzaXplX3QgdW5jb21wU2l6ZSwgc2l6ZV90IGNvbXBTaXplKSB7Ci0gICAgbUZkID0gZmQ7Ci0gICAgbURhdGFNYXAgPSBOVUxMOwotICAgIG1JbkZpbGVTdGFydCA9IGNvbXBEYXRhU3RhcnQ7Ci0gICAgbU91dFRvdGFsU2l6ZSA9IHVuY29tcFNpemU7Ci0gICAgbUluVG90YWxTaXplID0gY29tcFNpemU7Ci0KLSAgICBtSW5CdWZTaXplID0gU3RyZWFtaW5nWmlwSW5mbGF0ZXI6OklOUFVUX0NIVU5LX1NJWkU7Ci0gICAgbUluQnVmID0gbmV3IHVpbnQ4X3RbbUluQnVmU2l6ZV07Ci0KLSAgICBtT3V0QnVmU2l6ZSA9IFN0cmVhbWluZ1ppcEluZmxhdGVyOjpPVVRQVVRfQ0hVTktfU0laRTsKLSAgICBtT3V0QnVmID0gbmV3IHVpbnQ4X3RbbU91dEJ1ZlNpemVdOwotCi0gICAgaW5pdEluZmxhdGVTdGF0ZSgpOwotfQotCi0vKgotICogU3RyZWFtaW5nIGFjY2VzcyB0byBjb21wcmVzc2VkIGRhdGEgaGVsZCBpbiBhbiBtbWFwcGVkIHJlZ2lvbiBvZiBtZW1vcnkKLSAqLwotU3RyZWFtaW5nWmlwSW5mbGF0ZXI6OlN0cmVhbWluZ1ppcEluZmxhdGVyKEZpbGVNYXAqIGRhdGFNYXAsIHNpemVfdCB1bmNvbXBTaXplKSB7Ci0gICAgbUZkID0gLTE7Ci0gICAgbURhdGFNYXAgPSBkYXRhTWFwOwotICAgIG1PdXRUb3RhbFNpemUgPSB1bmNvbXBTaXplOwotICAgIG1JblRvdGFsU2l6ZSA9IGRhdGFNYXAtPmdldERhdGFMZW5ndGgoKTsKLQotICAgIG1JbkJ1ZiA9ICh1aW50OF90KikgZGF0YU1hcC0+Z2V0RGF0YVB0cigpOwotICAgIG1JbkJ1ZlNpemUgPSBtSW5Ub3RhbFNpemU7Ci0KLSAgICBtT3V0QnVmU2l6ZSA9IFN0cmVhbWluZ1ppcEluZmxhdGVyOjpPVVRQVVRfQ0hVTktfU0laRTsKLSAgICBtT3V0QnVmID0gbmV3IHVpbnQ4X3RbbU91dEJ1ZlNpemVdOwotCi0gICAgaW5pdEluZmxhdGVTdGF0ZSgpOwotfQotCi1TdHJlYW1pbmdaaXBJbmZsYXRlcjo6flN0cmVhbWluZ1ppcEluZmxhdGVyKCkgewotICAgIC8vIHRlYXIgZG93biB0aGUgaW4tZmxpZ2h0IHppcCBzdGF0ZSBqdXN0IGluIGNhc2UKLSAgICA6OmluZmxhdGVFbmQoJm1JbmZsYXRlU3RhdGUpOwotCi0gICAgaWYgKG1EYXRhTWFwID09IE5VTEwpIHsKLSAgICAgICAgZGVsZXRlIFtdIG1JbkJ1ZjsKLSAgICB9Ci0gICAgZGVsZXRlIFtdIG1PdXRCdWY7Ci19Ci0KLXZvaWQgU3RyZWFtaW5nWmlwSW5mbGF0ZXI6OmluaXRJbmZsYXRlU3RhdGUoKSB7Ci0gICAgQUxPR1YoIkluaXRpYWxpemluZyBpbmZsYXRlIHN0YXRlIik7Ci0KLSAgICBtZW1zZXQoJm1JbmZsYXRlU3RhdGUsIDAsIHNpemVvZihtSW5mbGF0ZVN0YXRlKSk7Ci0gICAgbUluZmxhdGVTdGF0ZS56YWxsb2MgPSBaX05VTEw7Ci0gICAgbUluZmxhdGVTdGF0ZS56ZnJlZSA9IFpfTlVMTDsKLSAgICBtSW5mbGF0ZVN0YXRlLm9wYXF1ZSA9IFpfTlVMTDsKLSAgICBtSW5mbGF0ZVN0YXRlLm5leHRfaW4gPSAoQnl0ZWYqKW1JbkJ1ZjsKLSAgICBtSW5mbGF0ZVN0YXRlLm5leHRfb3V0ID0gKEJ5dGVmKikgbU91dEJ1ZjsKLSAgICBtSW5mbGF0ZVN0YXRlLmF2YWlsX291dCA9IG1PdXRCdWZTaXplOwotICAgIG1JbmZsYXRlU3RhdGUuZGF0YV90eXBlID0gWl9VTktOT1dOOwotCi0gICAgbU91dExhc3REZWNvZGVkID0gbU91dERlbGl2ZXJhYmxlID0gbU91dEN1clBvc2l0aW9uID0gMDsKLSAgICBtSW5OZXh0Q2h1bmtPZmZzZXQgPSAwOwotICAgIG1TdHJlYW1OZWVkc0luaXQgPSB0cnVlOwotCi0gICAgaWYgKG1EYXRhTWFwID09IE5VTEwpIHsKLSAgICAgICAgOjpsc2VlayhtRmQsIG1JbkZpbGVTdGFydCwgU0VFS19TRVQpOwotICAgICAgICBtSW5mbGF0ZVN0YXRlLmF2YWlsX2luID0gMDsgLy8gc2V0IHdoZW4gYSBjaHVuayBpcyByZWFkIGluCi0gICAgfSBlbHNlIHsKLSAgICAgICAgbUluZmxhdGVTdGF0ZS5hdmFpbF9pbiA9IG1JbkJ1ZlNpemU7Ci0gICAgfQotfQotCi0vKgotICogQmFzaWMgYXBwcm9hY2g6Ci0gKgotICogMS4gSWYgd2UgaGF2ZSB1bmRlbGl2ZXJlZCB1bmNvbXByZXNzZWQgZGF0YSwgc2VuZCBpdC4gIEF0IHRoaXMgcG9pbnQKLSAqICAgIGVpdGhlciB3ZSd2ZSBzYXRpc2ZpZWQgdGhlIHJlcXVlc3QsIG9yIHdlJ3ZlIGV4aGF1c3RlZCB0aGUgYXZhaWxhYmxlCi0gKiAgICBvdXRwdXQgZGF0YSBpbiBtT3V0QnVmLgotICoKLSAqIDIuIFdoaWxlIHdlIGhhdmVuJ3Qgc2VudCBlbm91Z2ggZGF0YSB0byBzYXRpc2Z5IHRoZSByZXF1ZXN0OgotICogICAgMC4gaWYgdGhlIHJlcXVlc3QgaXMgZm9yIG1vcmUgZGF0YSB0aGFuIGV4aXN0cywgYmFpbC4KLSAqICAgIGEuIGlmIHRoZXJlIGlzIG5vIGlucHV0IGRhdGEgdG8gZGVjb2RlLCByZWFkIHNvbWUgaW50byB0aGUgaW5wdXQgYnVmZmVyCi0gKiAgICAgICBhbmQgcmVhZGp1c3QgdGhlIHpfc3RyZWFtIGlucHV0IHBvaW50ZXJzCi0gKiAgICBiLiBwb2ludCB0aGUgb3V0cHV0IHRvIHRoZSBzdGFydCBvZiB0aGUgb3V0cHV0IGJ1ZmZlciBhbmQgZGVjb2RlIHdoYXQgd2UgY2FuCi0gKiAgICBjLiBkZWxpdmVyIHdoYXRldmVyIG91dHB1dCBkYXRhIHdlIGNhbgotICovCi1zc2l6ZV90IFN0cmVhbWluZ1ppcEluZmxhdGVyOjpyZWFkKHZvaWQqIG91dEJ1Ziwgc2l6ZV90IGNvdW50KSB7Ci0gICAgdWludDhfdCogZGVzdCA9ICh1aW50OF90Kikgb3V0QnVmOwotICAgIHNpemVfdCBieXRlc1JlYWQgPSAwOwotICAgIHNpemVfdCB0b1JlYWQgPSBtaW5fb2YoY291bnQsIHNpemVfdChtT3V0VG90YWxTaXplIC0gbU91dEN1clBvc2l0aW9uKSk7Ci0gICAgd2hpbGUgKHRvUmVhZCA+IDApIHsKLSAgICAgICAgLy8gRmlyc3QsIHdyaXRlIGZyb20gd2hhdGV2ZXIgd2UgYWxyZWFkeSBoYXZlIGRlY29kZWQgYW5kIHJlYWR5IHRvIGdvCi0gICAgICAgIHNpemVfdCBkZWxpdmVyYWJsZSA9IG1pbl9vZih0b1JlYWQsIG1PdXRMYXN0RGVjb2RlZCAtIG1PdXREZWxpdmVyYWJsZSk7Ci0gICAgICAgIGlmIChkZWxpdmVyYWJsZSA+IDApIHsKLSAgICAgICAgICAgIGlmIChvdXRCdWYgIT0gTlVMTCkgbWVtY3B5KGRlc3QsIG1PdXRCdWYgKyBtT3V0RGVsaXZlcmFibGUsIGRlbGl2ZXJhYmxlKTsKLSAgICAgICAgICAgIG1PdXREZWxpdmVyYWJsZSArPSBkZWxpdmVyYWJsZTsKLSAgICAgICAgICAgIG1PdXRDdXJQb3NpdGlvbiArPSBkZWxpdmVyYWJsZTsKLSAgICAgICAgICAgIGRlc3QgKz0gZGVsaXZlcmFibGU7Ci0gICAgICAgICAgICBieXRlc1JlYWQgKz0gZGVsaXZlcmFibGU7Ci0gICAgICAgICAgICB0b1JlYWQgLT0gZGVsaXZlcmFibGU7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBuZWVkIG1vcmUgZGF0YT8gIHRpbWUgdG8gZGVjb2RlIHNvbWUuCi0gICAgICAgIGlmICh0b1JlYWQgPiAwKSB7Ci0gICAgICAgICAgICAvLyBpZiB3ZSBkb24ndCBoYXZlIGFueSBkYXRhIHRvIGRlY29kZSwgcmVhZCBzb21lIGluLiAgSWYgd2UncmUgd29ya2luZwotICAgICAgICAgICAgLy8gZnJvbSBtbWFwcGVkIGRhdGEgdGhpcyB3b24ndCBoYXBwZW4sIGJlY2F1c2UgdGhlIGNsaXBwaW5nIHRvIHRvdGFsIHNpemUKLSAgICAgICAgICAgIC8vIHdpbGwgcHJldmVudCByZWFkaW5nIG9mZiB0aGUgZW5kIG9mIHRoZSBtYXBwZWQgaW5wdXQgY2h1bmsuCi0gICAgICAgICAgICBpZiAoKG1JbmZsYXRlU3RhdGUuYXZhaWxfaW4gPT0gMCkgJiYgKG1EYXRhTWFwID09IE5VTEwpKSB7Ci0gICAgICAgICAgICAgICAgaW50IGVyciA9IHJlYWROZXh0Q2h1bmsoKTsKLSAgICAgICAgICAgICAgICBpZiAoZXJyIDwgMCkgewotICAgICAgICAgICAgICAgICAgICBBTE9HRSgiVW5hYmxlIHRvIGFjY2VzcyBhc3NldCBkYXRhOiAlZCIsIGVycik7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghbVN0cmVhbU5lZWRzSW5pdCkgewotICAgICAgICAgICAgICAgICAgICAgICAgOjppbmZsYXRlRW5kKCZtSW5mbGF0ZVN0YXRlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGluaXRJbmZsYXRlU3RhdGUoKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gd2Uga25vdyB3ZSd2ZSBkcmFpbmVkIHdoYXRldmVyIGlzIGluIHRoZSBvdXQgYnVmZmVyIG5vdywgc28ganVzdAotICAgICAgICAgICAgLy8gc3RhcnQgZnJvbSBzY3JhdGNoIHRoZXJlLCByZWFkaW5nIGFsbCB0aGUgaW5wdXQgd2UgaGF2ZSBhdCBwcmVzZW50LgotICAgICAgICAgICAgbUluZmxhdGVTdGF0ZS5uZXh0X291dCA9IChCeXRlZiopIG1PdXRCdWY7Ci0gICAgICAgICAgICBtSW5mbGF0ZVN0YXRlLmF2YWlsX291dCA9IG1PdXRCdWZTaXplOwotCi0gICAgICAgICAgICAvKgotICAgICAgICAgICAgQUxPR1YoIkluZmxhdGluZyB0byBvdXRidWY6IGF2YWlsX2luPSV1IGF2YWlsX291dD0ldSBuZXh0X2luPSVwIG5leHRfb3V0PSVwIiwKLSAgICAgICAgICAgICAgICAgICAgbUluZmxhdGVTdGF0ZS5hdmFpbF9pbiwgbUluZmxhdGVTdGF0ZS5hdmFpbF9vdXQsCi0gICAgICAgICAgICAgICAgICAgIG1JbmZsYXRlU3RhdGUubmV4dF9pbiwgbUluZmxhdGVTdGF0ZS5uZXh0X291dCk7Ci0gICAgICAgICAgICAqLwotICAgICAgICAgICAgaW50IHJlc3VsdCA9IFpfT0s7Ci0gICAgICAgICAgICBpZiAobVN0cmVhbU5lZWRzSW5pdCkgewotICAgICAgICAgICAgICAgIEFMT0dWKCJJbml0aWFsaXppbmcgemxpYiB0byBpbmZsYXRlIik7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gaW5mbGF0ZUluaXQyKCZtSW5mbGF0ZVN0YXRlLCAtTUFYX1dCSVRTKTsKLSAgICAgICAgICAgICAgICBtU3RyZWFtTmVlZHNJbml0ID0gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocmVzdWx0ID09IFpfT0spIHJlc3VsdCA9IDo6aW5mbGF0ZSgmbUluZmxhdGVTdGF0ZSwgWl9TWU5DX0ZMVVNIKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHQgPCAwKSB7Ci0gICAgICAgICAgICAgICAgLy8gV2hvb3BzLCBpbmZsYXRpb24gZmFpbGVkCi0gICAgICAgICAgICAgICAgQUxPR0UoIkVycm9yIGluZmxhdGluZyBhc3NldDogJWQiLCByZXN1bHQpOwotICAgICAgICAgICAgICAgIDo6aW5mbGF0ZUVuZCgmbUluZmxhdGVTdGF0ZSk7Ci0gICAgICAgICAgICAgICAgaW5pdEluZmxhdGVTdGF0ZSgpOwotICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBaX1NUUkVBTV9FTkQpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gd2Uga25vdyB3ZSBoYXZlIHRvIGhhdmUgcmVhY2hlZCB0aGUgdGFyZ2V0IHNpemUgaGVyZSBhbmQgd2lsbAotICAgICAgICAgICAgICAgICAgICAvLyBub3QgdHJ5IHRvIHJlYWQgYW55IGZ1cnRoZXIsIHNvIGp1c3Qgd2luZCB0aGluZ3MgdXAuCi0gICAgICAgICAgICAgICAgICAgIDo6aW5mbGF0ZUVuZCgmbUluZmxhdGVTdGF0ZSk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gTm90ZSBob3cgbXVjaCBkYXRhIHdlIGdvdCwgYW5kIG9mZiB3ZSBnbwotICAgICAgICAgICAgICAgIG1PdXREZWxpdmVyYWJsZSA9IDA7Ci0gICAgICAgICAgICAgICAgbU91dExhc3REZWNvZGVkID0gbU91dEJ1ZlNpemUgLSBtSW5mbGF0ZVN0YXRlLmF2YWlsX291dDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gYnl0ZXNSZWFkOwotfQotCi1pbnQgU3RyZWFtaW5nWmlwSW5mbGF0ZXI6OnJlYWROZXh0Q2h1bmsoKSB7Ci0gICAgYXNzZXJ0KG1EYXRhTWFwID09IE5VTEwpOwotCi0gICAgaWYgKG1Jbk5leHRDaHVua09mZnNldCA8IG1JblRvdGFsU2l6ZSkgewotICAgICAgICBzaXplX3QgdG9SZWFkID0gbWluX29mKG1JbkJ1ZlNpemUsIG1JblRvdGFsU2l6ZSAtIG1Jbk5leHRDaHVua09mZnNldCk7Ci0gICAgICAgIGlmICh0b1JlYWQgPiAwKSB7Ci0gICAgICAgICAgICBzc2l6ZV90IGRpZFJlYWQgPSBURU1QX0ZBSUxVUkVfUkVUUlkoOjpyZWFkKG1GZCwgbUluQnVmLCB0b1JlYWQpKTsKLSAgICAgICAgICAgIC8vQUxPR1YoIlJlYWRpbmcgaW5wdXQgY2h1bmssIHNpemUgJTA4eCBkaWRyZWFkICUwOHgiLCB0b1JlYWQsIGRpZFJlYWQpOwotICAgICAgICAgICAgaWYgKGRpZFJlYWQgPCAwKSB7Ci0gICAgICAgICAgICAgICAgQUxPR0UoIkVycm9yIHJlYWRpbmcgYXNzZXQgZGF0YTogJXMiLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICAgICAgICAgIHJldHVybiBkaWRSZWFkOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtSW5OZXh0Q2h1bmtPZmZzZXQgKz0gZGlkUmVhZDsKLSAgICAgICAgICAgICAgICBtSW5mbGF0ZVN0YXRlLm5leHRfaW4gPSAoQnl0ZWYqKSBtSW5CdWY7Ci0gICAgICAgICAgICAgICAgbUluZmxhdGVTdGF0ZS5hdmFpbF9pbiA9IGRpZFJlYWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLS8vIHNlZWtpbmcgYmFja3dhcmRzIHJlcXVpcmVzIHVuY29tcHJlc3NpbmcgZm9tIHRoZSBiZWdpbm5pbmcsIHNvIGlzIHZlcnkKLS8vIGV4cGVuc2l2ZS4gIHNlZWtpbmcgZm9yd2FyZHMgb25seSByZXF1aXJlcyB1bmNvbXByZXNzaW5nIGZyb20gdGhlIGN1cnJlbnQKLS8vIHBvc2l0aW9uIHRvIHRoZSBkZXN0aW5hdGlvbi4KLW9mZjY0X3QgU3RyZWFtaW5nWmlwSW5mbGF0ZXI6OnNlZWtBYnNvbHV0ZShvZmY2NF90IGFic29sdXRlSW5wdXRQb3NpdGlvbikgewotICAgIGlmIChhYnNvbHV0ZUlucHV0UG9zaXRpb24gPCBtT3V0Q3VyUG9zaXRpb24pIHsKLSAgICAgICAgLy8gcmV3aW5kIGFuZCByZXByb2Nlc3MgdGhlIGRhdGEgZnJvbSB0aGUgYmVnaW5uaW5nCi0gICAgICAgIGlmICghbVN0cmVhbU5lZWRzSW5pdCkgewotICAgICAgICAgICAgOjppbmZsYXRlRW5kKCZtSW5mbGF0ZVN0YXRlKTsKLSAgICAgICAgfQotICAgICAgICBpbml0SW5mbGF0ZVN0YXRlKCk7Ci0gICAgICAgIHJlYWQoTlVMTCwgYWJzb2x1dGVJbnB1dFBvc2l0aW9uKTsKLSAgICB9IGVsc2UgaWYgKGFic29sdXRlSW5wdXRQb3NpdGlvbiA+IG1PdXRDdXJQb3NpdGlvbikgewotICAgICAgICByZWFkKE5VTEwsIGFic29sdXRlSW5wdXRQb3NpdGlvbiAtIG1PdXRDdXJQb3NpdGlvbik7Ci0gICAgfQotICAgIC8vIGVsc2UgaWYgdGhlIHRhcmdldCBwb3NpdGlvbiAqaXMqIG91ciBjdXJyZW50IHBvc2l0aW9uLCBkbyBub3RoaW5nCi0gICAgcmV0dXJuIGFic29sdXRlSW5wdXRQb3NpdGlvbjsKLX0KZGlmZiAtLWdpdCBhL2xpYnMvYW5kcm9pZGZ3L1ppcEZpbGVSTy5jcHAgYi9saWJzL2FuZHJvaWRmdy9aaXBGaWxlUk8uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYzVmOTVjLi4wMDAwMDAwCi0tLSBhL2xpYnMvYW5kcm9pZGZ3L1ppcEZpbGVSTy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5OTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLS8vCi0vLyBSZWFkLW9ubHkgYWNjZXNzIHRvIFppcCBhcmNoaXZlcywgd2l0aCBtaW5pbWFsIGhlYXAgYWxsb2NhdGlvbi4KLS8vCi0jZGVmaW5lIExPR19UQUcgInppcHJvIgotLy8jZGVmaW5lIExPR19OREVCVUcgMAotI2luY2x1ZGUgPGFuZHJvaWRmdy9aaXBGaWxlUk8uaD4KLSNpbmNsdWRlIDx1dGlscy9Mb2cuaD4KLSNpbmNsdWRlIDx1dGlscy9Db21wYXQuaD4KLSNpbmNsdWRlIDx1dGlscy9taXNjLmg+Ci0jaW5jbHVkZSA8dXRpbHMvdGhyZWFkcy5oPgotCi0jaW5jbHVkZSA8emxpYi5oPgotCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGFzc2VydC5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi0vKgotICogV2UgbXVzdCBvcGVuIGJpbmFyeSBmaWxlcyB1c2luZyBvcGVuKHBhdGgsIC4uLiB8IE9fQklOQVJZKSB1bmRlciBXaW5kb3dzLgotICogT3RoZXJ3aXNlIHN0cmFuZ2UgcmVhZCBlcnJvcnMgd2lsbCBoYXBwZW4uCi0gKi8KLSNpZm5kZWYgT19CSU5BUlkKLSMgIGRlZmluZSBPX0JJTkFSWSAgMAotI2VuZGlmCi0KLXVzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwotCi0vKgotICogWmlwIGZpbGUgY29uc3RhbnRzLgotICovCi0jZGVmaW5lIGtFT0NEU2lnbmF0dXJlICAgICAgIDB4MDYwNTRiNTAKLSNkZWZpbmUga0VPQ0RMZW4gICAgICAgICAgICAgMjIKLSNkZWZpbmUga0VPQ0REaXNrTnVtYmVyICAgICAgNCAgICAgICAgICAgICAgIC8vIG51bWJlciBvZiB0aGUgY3VycmVudCBkaXNrCi0jZGVmaW5lIGtFT0NERGlza051bWJlckZvckNEIDYgICAgICAgICAgICAgICAvLyBkaXNrIG51bWJlciB3aXRoIHRoZSBDZW50cmFsIERpcmVjdG9yeQotI2RlZmluZSBrRU9DRE51bUVudHJpZXMgICAgICA4ICAgICAgICAgICAgICAgLy8gb2Zmc2V0IHRvICNvZiBlbnRyaWVzIGluIGZpbGUKLSNkZWZpbmUga0VPQ0RUb3RhbE51bUVudHJpZXMgMTAgICAgICAgICAgICAgIC8vIG9mZnNldCB0byB0b3RhbCAjb2YgZW50cmllcyBpbiBzcGFubmVkIGFyY2hpdmVzCi0jZGVmaW5lIGtFT0NEU2l6ZSAgICAgICAgICAgIDEyICAgICAgICAgICAgICAvLyBzaXplIG9mIHRoZSBjZW50cmFsIGRpcmVjdG9yeQotI2RlZmluZSBrRU9DREZpbGVPZmZzZXQgICAgICAxNiAgICAgICAgICAgICAgLy8gb2Zmc2V0IHRvIGNlbnRyYWwgZGlyZWN0b3J5Ci0jZGVmaW5lIGtFT0NEQ29tbWVudFNpemUgICAgIDIwICAgICAgICAgICAgICAvLyBvZmZzZXQgdG8gdGhlIGxlbmd0aCBvZiB0aGUgZmlsZSBjb21tZW50Ci0KLSNkZWZpbmUga01heENvbW1lbnRMZW4gICAgICAgNjU1MzUgICAgICAgICAgIC8vIGxvbmdlc3QgcG9zc2libGUgaW4gdXNob3J0Ci0jZGVmaW5lIGtNYXhFT0NEU2VhcmNoICAgICAgIChrTWF4Q29tbWVudExlbiArIGtFT0NETGVuKQotCi0jZGVmaW5lIGtMRkhTaWduYXR1cmUgICAgICAgIDB4MDQwMzRiNTAKLSNkZWZpbmUga0xGSExlbiAgICAgICAgICAgICAgMzAgICAgICAgICAgICAgIC8vIGV4Y2x1ZGluZyB2YXJpYWJsZS1sZW4gZmllbGRzCi0jZGVmaW5lIGtMRkhHUEJGbGFncyAgICAgICAgICA2ICAgICAgICAgICAgICAvLyBvZmZzZXQgdG8gR1BCIGZsYWdzCi0jZGVmaW5lIGtMRkhOYW1lTGVuICAgICAgICAgIDI2ICAgICAgICAgICAgICAvLyBvZmZzZXQgdG8gZmlsZW5hbWUgbGVuZ3RoCi0jZGVmaW5lIGtMRkhFeHRyYUxlbiAgICAgICAgIDI4ICAgICAgICAgICAgICAvLyBvZmZzZXQgdG8gZXh0cmEgbGVuZ3RoCi0KLSNkZWZpbmUga0NERVNpZ25hdHVyZSAgICAgICAgMHgwMjAxNGI1MAotI2RlZmluZSBrQ0RFTGVuICAgICAgICAgICAgICA0NiAgICAgICAgICAgICAgLy8gZXhjbHVkaW5nIHZhcmlhYmxlLWxlbiBmaWVsZHMKLSNkZWZpbmUga0NERUdQQkZsYWdzICAgICAgICAgIDggICAgICAgICAgICAgIC8vIG9mZnNldCB0byBHUEIgZmxhZ3MKLSNkZWZpbmUga0NERU1ldGhvZCAgICAgICAgICAgMTAgICAgICAgICAgICAgIC8vIG9mZnNldCB0byBjb21wcmVzc2lvbiBtZXRob2QKLSNkZWZpbmUga0NERU1vZFdoZW4gICAgICAgICAgMTIgICAgICAgICAgICAgIC8vIG9mZnNldCB0byBtb2RpZmljYXRpb24gdGltZXN0YW1wCi0jZGVmaW5lIGtDREVDUkMgICAgICAgICAgICAgIDE2ICAgICAgICAgICAgICAvLyBvZmZzZXQgdG8gZW50cnkgQ1JDCi0jZGVmaW5lIGtDREVDb21wTGVuICAgICAgICAgIDIwICAgICAgICAgICAgICAvLyBvZmZzZXQgdG8gY29tcHJlc3NlZCBsZW5ndGgKLSNkZWZpbmUga0NERVVuY29tcExlbiAgICAgICAgMjQgICAgICAgICAgICAgIC8vIG9mZnNldCB0byB1bmNvbXByZXNzZWQgbGVuZ3RoCi0jZGVmaW5lIGtDREVOYW1lTGVuICAgICAgICAgIDI4ICAgICAgICAgICAgICAvLyBvZmZzZXQgdG8gZmlsZW5hbWUgbGVuZ3RoCi0jZGVmaW5lIGtDREVFeHRyYUxlbiAgICAgICAgIDMwICAgICAgICAgICAgICAvLyBvZmZzZXQgdG8gZXh0cmEgbGVuZ3RoCi0jZGVmaW5lIGtDREVDb21tZW50TGVuICAgICAgIDMyICAgICAgICAgICAgICAvLyBvZmZzZXQgdG8gY29tbWVudCBsZW5ndGgKLSNkZWZpbmUga0NERUxvY2FsT2Zmc2V0ICAgICAgNDIgICAgICAgICAgICAgIC8vIG9mZnNldCB0byBsb2NhbCBoZHIKLQotLyogR2VuZXJhbCBQdXJwb3NlIEJpdCBGbGFnICovCi0jZGVmaW5lIGtHUEZFbmNyeXB0ZWRGbGFnICAgICgxIDw8IDApCi0jZGVmaW5lIGtHUEZVbnN1cHBvcnRlZE1hc2sgIChrR1BGRW5jcnlwdGVkRmxhZykKLQotLyoKLSAqIFRoZSB2YWx1ZXMgd2UgcmV0dXJuIGZvciBaaXBFbnRyeVJPIHVzZSAwIGFzIGFuIGludmFsaWQgdmFsdWUsIHNvIHdlCi0gKiB3YW50IHRvIGFkanVzdCB0aGUgaGFzaCB0YWJsZSBpbmRleCBieSBhIGZpeGVkIGFtb3VudC4gIFVzaW5nIGEgbGFyZ2UKLSAqIHZhbHVlIGhlbHBzIGluc3VyZSB0aGF0IHBlb3BsZSBkb24ndCBtaXggJiBtYXRjaCBhcmd1bWVudHMsIGUuZy4gdG8KLSAqIGZpbmRFbnRyeUJ5SW5kZXgoKS4KLSAqLwotI2RlZmluZSBrWmlwRW50cnlBZGogICAgICAgIDEwMDAwCi0KLVppcEZpbGVSTzo6flppcEZpbGVSTygpIHsKLSAgICBmcmVlKG1IYXNoVGFibGUpOwotICAgIGlmIChtRGlyZWN0b3J5TWFwKQotICAgICAgICBtRGlyZWN0b3J5TWFwLT5yZWxlYXNlKCk7Ci0gICAgaWYgKG1GZCA+PSAwKQotICAgICAgICBURU1QX0ZBSUxVUkVfUkVUUlkoY2xvc2UobUZkKSk7Ci0gICAgaWYgKG1GaWxlTmFtZSkKLSAgICAgICAgZnJlZShtRmlsZU5hbWUpOwotfQotCi0vKgotICogQ29udmVydCBhIFppcEVudHJ5Uk8gdG8gYSBoYXNoIHRhYmxlIGluZGV4LCB2ZXJpZnlpbmcgdGhhdCBpdCdzIGluIGEKLSAqIHZhbGlkIHJhbmdlLgotICovCi1pbnQgWmlwRmlsZVJPOjplbnRyeVRvSW5kZXgoY29uc3QgWmlwRW50cnlSTyBlbnRyeSkgY29uc3QKLXsKLSAgICBsb25nIGVudCA9ICgoaW50cHRyX3QpIGVudHJ5KSAtIGtaaXBFbnRyeUFkajsKLSAgICBpZiAoZW50IDwgMCB8fCBlbnQgPj0gbUhhc2hUYWJsZVNpemUgfHwgbUhhc2hUYWJsZVtlbnRdLm5hbWUgPT0gTlVMTCkgewotICAgICAgICBBTE9HVygiSW52YWxpZCBaaXBFbnRyeVJPICVwICglbGQpXG4iLCBlbnRyeSwgZW50KTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgICByZXR1cm4gZW50OwotfQotCi0KLS8qCi0gKiBPcGVuIHRoZSBzcGVjaWZpZWQgZmlsZSByZWFkLW9ubHkuICBXZSBtZW1vcnktbWFwIHRoZSBlbnRpcmUgdGhpbmcgYW5kCi0gKiBjbG9zZSB0aGUgZmlsZSBiZWZvcmUgcmV0dXJuaW5nLgotICovCi1zdGF0dXNfdCBaaXBGaWxlUk86Om9wZW4oY29uc3QgY2hhciogemlwRmlsZU5hbWUpCi17Ci0gICAgaW50IGZkID0gLTE7Ci0KLSAgICBhc3NlcnQobURpcmVjdG9yeU1hcCA9PSBOVUxMKTsKLQotICAgIC8qCi0gICAgICogT3BlbiBhbmQgbWFwIHRoZSBzcGVjaWZpZWQgZmlsZS4KLSAgICAgKi8KLSAgICBmZCA9IFRFTVBfRkFJTFVSRV9SRVRSWSg6Om9wZW4oemlwRmlsZU5hbWUsIE9fUkRPTkxZIHwgT19CSU5BUlkpKTsKLSAgICBpZiAoZmQgPCAwKSB7Ci0gICAgICAgIEFMT0dXKCJVbmFibGUgdG8gb3BlbiB6aXAgJyVzJzogJXNcbiIsIHppcEZpbGVOYW1lLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICByZXR1cm4gTkFNRV9OT1RfRk9VTkQ7Ci0gICAgfQotCi0gICAgbUZpbGVMZW5ndGggPSBsc2VlazY0KGZkLCAwLCBTRUVLX0VORCk7Ci0gICAgaWYgKG1GaWxlTGVuZ3RoIDwga0VPQ0RMZW4pIHsKLSAgICAgICAgVEVNUF9GQUlMVVJFX1JFVFJZKGNsb3NlKGZkKSk7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLQotICAgIGlmIChtRmlsZU5hbWUgIT0gTlVMTCkgewotICAgICAgICBmcmVlKG1GaWxlTmFtZSk7Ci0gICAgfQotICAgIG1GaWxlTmFtZSA9IHN0cmR1cCh6aXBGaWxlTmFtZSk7Ci0KLSAgICBtRmQgPSBmZDsKLQotICAgIC8qCi0gICAgICogRmluZCB0aGUgQ2VudHJhbCBEaXJlY3RvcnkgYW5kIHN0b3JlIGl0cyBzaXplIGFuZCBudW1iZXIgb2YgZW50cmllcy4KLSAgICAgKi8KLSAgICBpZiAoIW1hcENlbnRyYWxEaXJlY3RvcnkoKSkgewotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBWZXJpZnkgQ2VudHJhbCBEaXJlY3RvcnkgYW5kIGNyZWF0ZSBkYXRhIHN0cnVjdHVyZXMgZm9yIGZhc3QgYWNjZXNzLgotICAgICAqLwotICAgIGlmICghcGFyc2VaaXBBcmNoaXZlKCkpIHsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIHJldHVybiBPSzsKLQotYmFpbDoKLSAgICBmcmVlKG1GaWxlTmFtZSk7Ci0gICAgbUZpbGVOYW1lID0gTlVMTDsKLSAgICBURU1QX0ZBSUxVUkVfUkVUUlkoY2xvc2UoZmQpKTsKLSAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLX0KLQotLyoKLSAqIFBhcnNlIHRoZSBaaXAgYXJjaGl2ZSwgdmVyaWZ5aW5nIGl0cyBjb250ZW50cyBhbmQgaW5pdGlhbGl6aW5nIGludGVybmFsCi0gKiBkYXRhIHN0cnVjdHVyZXMuCi0gKi8KLWJvb2wgWmlwRmlsZVJPOjptYXBDZW50cmFsRGlyZWN0b3J5KHZvaWQpCi17Ci0gICAgc3NpemVfdCByZWFkQW1vdW50ID0ga01heEVPQ0RTZWFyY2g7Ci0gICAgaWYgKHJlYWRBbW91bnQgPiAoc3NpemVfdCkgbUZpbGVMZW5ndGgpCi0gICAgICAgIHJlYWRBbW91bnQgPSBtRmlsZUxlbmd0aDsKLQotICAgIGlmIChyZWFkQW1vdW50IDwga0VPQ0RTaXplKSB7Ci0gICAgICAgIEFMT0dXKCJGaWxlIHRvbyBzaG9ydCB0byBiZSBhIHppcCBmaWxlIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBjaGFyKiBzY2FuQnVmID0gKHVuc2lnbmVkIGNoYXIqKSBtYWxsb2MocmVhZEFtb3VudCk7Ci0gICAgaWYgKHNjYW5CdWYgPT0gTlVMTCkgewotICAgICAgICBBTE9HVygiY291bGRuJ3QgYWxsb2NhdGUgc2NhbkJ1ZjogJXMiLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICBmcmVlKHNjYW5CdWYpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBNYWtlIHN1cmUgdGhpcyBpcyBhIFppcCBhcmNoaXZlLgotICAgICAqLwotICAgIGlmIChsc2VlazY0KG1GZCwgMCwgU0VFS19TRVQpICE9IDApIHsKLSAgICAgICAgQUxPR1coInNlZWsgdG8gc3RhcnQgZmFpbGVkOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgIGZyZWUoc2NhbkJ1Zik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBzc2l6ZV90IGFjdHVhbCA9IFRFTVBfRkFJTFVSRV9SRVRSWShyZWFkKG1GZCwgc2NhbkJ1Ziwgc2l6ZW9mKGludDMyX3QpKSk7Ci0gICAgaWYgKGFjdHVhbCAhPSAoc3NpemVfdCkgc2l6ZW9mKGludDMyX3QpKSB7Ci0gICAgICAgIEFMT0dJKCJjb3VsZG4ndCByZWFkIGZpcnN0IHNpZ25hdHVyZSBmcm9tIHppcCBhcmNoaXZlOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgIGZyZWUoc2NhbkJ1Zik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBpbnQgaGVhZGVyID0gZ2V0NExFKHNjYW5CdWYpOwotICAgIGlmIChoZWFkZXIgIT0ga0xGSFNpZ25hdHVyZSkgewotICAgICAgICBBTE9HVigiTm90IGEgWmlwIGFyY2hpdmUgKGZvdW5kIDB4JTA4eClcbiIsIGhlYWRlcik7Ci0gICAgICAgIGZyZWUoc2NhbkJ1Zik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIFBlcmZvcm0gdGhlIHRyYWRpdGlvbmFsIEVPQ0Qgc25pcGUgaHVudC4KLSAgICAgKgotICAgICAqIFdlJ3JlIHNlYXJjaGluZyBmb3IgdGhlIEVuZCBvZiBDZW50cmFsIERpcmVjdG9yeSBtYWdpYyBudW1iZXIsCi0gICAgICogd2hpY2ggYXBwZWFycyBhdCB0aGUgc3RhcnQgb2YgdGhlIEVPQ0QgYmxvY2suICBJdCdzIGZvbGxvd2VkIGJ5Ci0gICAgICogMTggYnl0ZXMgb2YgRU9DRCBzdHVmZiBhbmQgdXAgdG8gNjRLQiBvZiBhcmNoaXZlIGNvbW1lbnQuICBXZQotICAgICAqIG5lZWQgdG8gcmVhZCB0aGUgbGFzdCBwYXJ0IG9mIHRoZSBmaWxlIGludG8gYSBidWZmZXIsIGRpZyB0aHJvdWdoCi0gICAgICogaXQgdG8gZmluZCB0aGUgbWFnaWMgbnVtYmVyLCBwYXJzZSBzb21lIHZhbHVlcyBvdXQsIGFuZCB1c2UgdGhvc2UKLSAgICAgKiB0byBkZXRlcm1pbmUgdGhlIGV4dGVudCBvZiB0aGUgQ0QuCi0gICAgICoKLSAgICAgKiBXZSBzdGFydCBieSBwdWxsaW5nIGluIHRoZSBsYXN0IHBhcnQgb2YgdGhlIGZpbGUuCi0gICAgICovCi0gICAgb2ZmNjRfdCBzZWFyY2hTdGFydCA9IG1GaWxlTGVuZ3RoIC0gcmVhZEFtb3VudDsKLQotICAgIGlmIChsc2VlazY0KG1GZCwgc2VhcmNoU3RhcnQsIFNFRUtfU0VUKSAhPSBzZWFyY2hTdGFydCkgewotICAgICAgICBBTE9HVygic2VlayAlbGQgZmFpbGVkOiAlc1xuIiwgIChsb25nKSBzZWFyY2hTdGFydCwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgZnJlZShzY2FuQnVmKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBhY3R1YWwgPSBURU1QX0ZBSUxVUkVfUkVUUlkocmVhZChtRmQsIHNjYW5CdWYsIHJlYWRBbW91bnQpKTsKLSAgICBpZiAoYWN0dWFsICE9IChzc2l6ZV90KSByZWFkQW1vdW50KSB7Ci0gICAgICAgIEFMT0dXKCJaaXA6IHJlYWQgIiBaRCAiLCBleHBlY3RlZCAiIFpEICIuIEZhaWxlZDogJXNcbiIsCi0gICAgICAgICAgICAoWkRfVFlQRSkgYWN0dWFsLCAoWkRfVFlQRSkgcmVhZEFtb3VudCwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgZnJlZShzY2FuQnVmKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIC8qCi0gICAgICogU2NhbiBiYWNrd2FyZCBmb3IgdGhlIEVPQ0QgbWFnaWMuICBJbiBhbiBhcmNoaXZlIHdpdGhvdXQgYSB0cmFpbGluZwotICAgICAqIGNvbW1lbnQsIHdlJ2xsIGZpbmQgaXQgb24gdGhlIGZpcnN0IHRyeS4gIChXZSBtYXkgd2FudCB0byBjb25zaWRlcgotICAgICAqIGRvaW5nIGFuIGluaXRpYWwgbWluaW1hbCByZWFkOyBpZiB3ZSBkb24ndCBmaW5kIGl0LCByZXRyeSB3aXRoIGEKLSAgICAgKiBzZWNvbmQgcmVhZCBhcyBhYm92ZS4pCi0gICAgICovCi0gICAgaW50IGk7Ci0gICAgZm9yIChpID0gcmVhZEFtb3VudCAtIGtFT0NETGVuOyBpID49IDA7IGktLSkgewotICAgICAgICBpZiAoc2NhbkJ1ZltpXSA9PSAweDUwICYmIGdldDRMRSgmc2NhbkJ1ZltpXSkgPT0ga0VPQ0RTaWduYXR1cmUpIHsKLSAgICAgICAgICAgIEFMT0dWKCIrKysgRm91bmQgRU9DRCBhdCBidWYrJWRcbiIsIGkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKGkgPCAwKSB7Ci0gICAgICAgIEFMT0dEKCJaaXA6IEVPQ0Qgbm90IGZvdW5kLCAlcyBpcyBub3QgemlwXG4iLCBtRmlsZU5hbWUpOwotICAgICAgICBmcmVlKHNjYW5CdWYpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgb2ZmNjRfdCBlb2NkT2Zmc2V0ID0gc2VhcmNoU3RhcnQgKyBpOwotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGVvY2RQdHIgPSBzY2FuQnVmICsgaTsKLQotICAgIGFzc2VydChlb2NkT2Zmc2V0IDwgbUZpbGVMZW5ndGgpOwotCi0gICAgLyoKLSAgICAgKiBHcmFiIHRoZSBDRCBvZmZzZXQgYW5kIHNpemUsIGFuZCB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlCi0gICAgICogYXJjaGl2ZS4gQWZ0ZXIgdGhhdCwgd2UgY2FuIHJlbGVhc2Ugb3VyIEVPQ0QgaHVudCBidWZmZXIuCi0gICAgICovCi0gICAgdW5zaWduZWQgaW50IGRpc2tOdW1iZXIgPSBnZXQyTEUoZW9jZFB0ciArIGtFT0NERGlza051bWJlcik7Ci0gICAgdW5zaWduZWQgaW50IGRpc2tXaXRoQ2VudHJhbERpciA9IGdldDJMRShlb2NkUHRyICsga0VPQ0REaXNrTnVtYmVyRm9yQ0QpOwotICAgIHVuc2lnbmVkIGludCBudW1FbnRyaWVzID0gZ2V0MkxFKGVvY2RQdHIgKyBrRU9DRE51bUVudHJpZXMpOwotICAgIHVuc2lnbmVkIGludCB0b3RhbE51bUVudHJpZXMgPSBnZXQyTEUoZW9jZFB0ciArIGtFT0NEVG90YWxOdW1FbnRyaWVzKTsKLSAgICB1bnNpZ25lZCBpbnQgY2VudHJhbERpclNpemUgPSBnZXQ0TEUoZW9jZFB0ciArIGtFT0NEU2l6ZSk7Ci0gICAgdW5zaWduZWQgaW50IGNlbnRyYWxEaXJPZmZzZXQgPSBnZXQ0TEUoZW9jZFB0ciArIGtFT0NERmlsZU9mZnNldCk7Ci0gICAgdW5zaWduZWQgaW50IGNvbW1lbnRTaXplID0gZ2V0MkxFKGVvY2RQdHIgKyBrRU9DRENvbW1lbnRTaXplKTsKLSAgICBmcmVlKHNjYW5CdWYpOwotCi0gICAgLy8gVmVyaWZ5IHRoYXQgdGhleSBsb29rIHJlYXNvbmFibGUuCi0gICAgaWYgKChsb25nIGxvbmcpIGNlbnRyYWxEaXJPZmZzZXQgKyAobG9uZyBsb25nKSBjZW50cmFsRGlyU2l6ZSA+IChsb25nIGxvbmcpIGVvY2RPZmZzZXQpIHsKLSAgICAgICAgQUxPR1coImJhZCBvZmZzZXRzIChkaXIgJWxkLCBzaXplICV1LCBlb2NkICVsZClcbiIsCi0gICAgICAgICAgICAobG9uZykgY2VudHJhbERpck9mZnNldCwgY2VudHJhbERpclNpemUsIChsb25nKSBlb2NkT2Zmc2V0KTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAobnVtRW50cmllcyA9PSAwKSB7Ci0gICAgICAgIEFMT0dXKCJlbXB0eSBhcmNoaXZlP1xuIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9IGVsc2UgaWYgKG51bUVudHJpZXMgIT0gdG90YWxOdW1FbnRyaWVzIHx8IGRpc2tOdW1iZXIgIT0gMCB8fCBkaXNrV2l0aENlbnRyYWxEaXIgIT0gMCkgewotICAgICAgICBBTE9HVygic3Bhbm5lZCBhcmNoaXZlcyBub3Qgc3VwcG9ydGVkIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICAvLyBDaGVjayB0byBzZWUgaWYgY29tbWVudCBpcyBhIHNhbmUgc2l6ZQotICAgIGlmICgoY29tbWVudFNpemUgPiAobUZpbGVMZW5ndGggLSBrRU9DRExlbikpCi0gICAgICAgICAgICB8fCAoZW9jZE9mZnNldCA+IChtRmlsZUxlbmd0aCAtIGtFT0NETGVuKSAtIGNvbW1lbnRTaXplKSkgewotICAgICAgICBBTE9HVygiY29tbWVudCBzaXplIHJ1bnMgb2ZmIGVuZCBvZiBmaWxlIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBBTE9HVigiKysrIG51bUVudHJpZXM9JWQgZGlyU2l6ZT0lZCBkaXJPZmZzZXQ9JWRcbiIsCi0gICAgICAgIG51bUVudHJpZXMsIGNlbnRyYWxEaXJTaXplLCBjZW50cmFsRGlyT2Zmc2V0KTsKLQotICAgIG1EaXJlY3RvcnlNYXAgPSBuZXcgRmlsZU1hcCgpOwotICAgIGlmIChtRGlyZWN0b3J5TWFwID09IE5VTEwpIHsKLSAgICAgICAgQUxPR1coIlVuYWJsZSB0byBjcmVhdGUgZGlyZWN0b3J5IG1hcDogJXMiLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgaWYgKCFtRGlyZWN0b3J5TWFwLT5jcmVhdGUobUZpbGVOYW1lLCBtRmQsIGNlbnRyYWxEaXJPZmZzZXQsIGNlbnRyYWxEaXJTaXplLCB0cnVlKSkgewotICAgICAgICBBTE9HVygiVW5hYmxlIHRvIG1hcCAnJXMnICgiIFpEICIgdG8gIiBaRCAiKTogJXNcbiIsIG1GaWxlTmFtZSwKLSAgICAgICAgICAgICAgICAoWkRfVFlQRSkgY2VudHJhbERpck9mZnNldCwgKFpEX1RZUEUpIChjZW50cmFsRGlyT2Zmc2V0ICsgY2VudHJhbERpclNpemUpLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgbU51bUVudHJpZXMgPSBudW1FbnRyaWVzOwotICAgIG1EaXJlY3RvcnlPZmZzZXQgPSBjZW50cmFsRGlyT2Zmc2V0OwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotLyoKLSAqIFJvdW5kIHVwIHRvIHRoZSBuZXh0IGhpZ2hlc3QgcG93ZXIgb2YgMi4KLSAqCi0gKiBGb3VuZCBvbiBodHRwOi8vZ3JhcGhpY3Muc3RhbmZvcmQuZWR1L35zZWFuZGVyL2JpdGhhY2tzLmh0bWwuCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBpbnQgcm91bmRVcFBvd2VyMih1bnNpZ25lZCBpbnQgdmFsKQotewotICAgIHZhbC0tOwotICAgIHZhbCB8PSB2YWwgPj4gMTsKLSAgICB2YWwgfD0gdmFsID4+IDI7Ci0gICAgdmFsIHw9IHZhbCA+PiA0OwotICAgIHZhbCB8PSB2YWwgPj4gODsKLSAgICB2YWwgfD0gdmFsID4+IDE2OwotICAgIHZhbCsrOwotCi0gICAgcmV0dXJuIHZhbDsKLX0KLQotYm9vbCBaaXBGaWxlUk86OnBhcnNlWmlwQXJjaGl2ZSh2b2lkKQotewotICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciogY2RQdHIgPSAoY29uc3QgdW5zaWduZWQgY2hhciopIG1EaXJlY3RvcnlNYXAtPmdldERhdGFQdHIoKTsKLSAgICBzaXplX3QgY2RMZW5ndGggPSBtRGlyZWN0b3J5TWFwLT5nZXREYXRhTGVuZ3RoKCk7Ci0gICAgaW50IG51bUVudHJpZXMgPSBtTnVtRW50cmllczsKLQotICAgIC8qCi0gICAgICogQ3JlYXRlIGhhc2ggdGFibGUuICBXZSBoYXZlIGEgbWluaW11bSA3NSUgbG9hZCBmYWN0b3IsIHBvc3NpYmx5IGFzCi0gICAgICogbG93IGFzIDUwJSBhZnRlciB3ZSByb3VuZCBvZmYgdG8gYSBwb3dlciBvZiAyLgotICAgICAqLwotICAgIG1IYXNoVGFibGVTaXplID0gcm91bmRVcFBvd2VyMigxICsgKG51bUVudHJpZXMgKiA0KSAvIDMpOwotICAgIG1IYXNoVGFibGUgPSAoSGFzaEVudHJ5KikgY2FsbG9jKG1IYXNoVGFibGVTaXplLCBzaXplb2YoSGFzaEVudHJ5KSk7Ci0KLSAgICAvKgotICAgICAqIFdhbGsgdGhyb3VnaCB0aGUgY2VudHJhbCBkaXJlY3RvcnksIGFkZGluZyBlbnRyaWVzIHRvIHRoZSBoYXNoCi0gICAgICogdGFibGUuCi0gICAgICovCi0gICAgY29uc3QgdW5zaWduZWQgY2hhciogcHRyID0gY2RQdHI7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1FbnRyaWVzOyBpKyspIHsKLSAgICAgICAgaWYgKGdldDRMRShwdHIpICE9IGtDREVTaWduYXR1cmUpIHsKLSAgICAgICAgICAgIEFMT0dXKCJNaXNzZWQgYSBjZW50cmFsIGRpciBzaWcgKGF0ICVkKVxuIiwgaSk7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHB0ciArIGtDREVMZW4gPiBjZFB0ciArIGNkTGVuZ3RoKSB7Ci0gICAgICAgICAgICBBTE9HVygiUmFuIG9mZiB0aGUgZW5kIChhdCAlZClcbiIsIGkpOwotICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICB9Ci0KLSAgICAgICAgbG9uZyBsb2NhbEhkck9mZnNldCA9IChsb25nKSBnZXQ0TEUocHRyICsga0NERUxvY2FsT2Zmc2V0KTsKLSAgICAgICAgaWYgKGxvY2FsSGRyT2Zmc2V0ID49IG1EaXJlY3RvcnlPZmZzZXQpIHsKLSAgICAgICAgICAgIEFMT0dXKCJiYWQgTEZIIG9mZnNldCAlbGQgYXQgZW50cnkgJWRcbiIsIGxvY2FsSGRyT2Zmc2V0LCBpKTsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotCi0gICAgICAgIHVuc2lnbmVkIGludCBncGJmID0gZ2V0MkxFKHB0ciArIGtDREVHUEJGbGFncyk7Ci0gICAgICAgIGlmICgoZ3BiZiAmIGtHUEZVbnN1cHBvcnRlZE1hc2spICE9IDApIHsKLSAgICAgICAgICAgIEFMT0dXKCJJbnZhbGlkIEdlbmVyYWwgUHVycG9zZSBCaXQgRmxhZzogJWQiLCBncGJmKTsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotCi0gICAgICAgIHVuc2lnbmVkIGludCBuYW1lTGVuID0gZ2V0MkxFKHB0ciArIGtDREVOYW1lTGVuKTsKLSAgICAgICAgdW5zaWduZWQgaW50IGV4dHJhTGVuID0gZ2V0MkxFKHB0ciArIGtDREVFeHRyYUxlbik7Ci0gICAgICAgIHVuc2lnbmVkIGludCBjb21tZW50TGVuID0gZ2V0MkxFKHB0ciArIGtDREVDb21tZW50TGVuKTsKLQotICAgICAgICBjb25zdCBjaGFyICpuYW1lID0gKGNvbnN0IGNoYXIgKikgcHRyICsga0NERUxlbjsKLQotICAgICAgICAvKiBDaGVjayBuYW1lIGZvciBOVUxMIGNoYXJhY3RlcnMgKi8KLSAgICAgICAgaWYgKG1lbWNocihuYW1lLCAwLCBuYW1lTGVuKSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBBTE9HVygiRmlsZW5hbWUgY29udGFpbnMgTlVMIGJ5dGUiKTsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIGFkZCB0aGUgQ0RFIGZpbGVuYW1lIHRvIHRoZSBoYXNoIHRhYmxlICovCi0gICAgICAgIHVuc2lnbmVkIGludCBoYXNoID0gY29tcHV0ZUhhc2gobmFtZSwgbmFtZUxlbik7Ci0gICAgICAgIGFkZFRvSGFzaChuYW1lLCBuYW1lTGVuLCBoYXNoKTsKLQotICAgICAgICAvKiBXZSBkb24ndCBjYXJlIGFib3V0IHRoZSBjb21tZW50IG9yIGV4dHJhIGRhdGEuICovCi0gICAgICAgIHB0ciArPSBrQ0RFTGVuICsgbmFtZUxlbiArIGV4dHJhTGVuICsgY29tbWVudExlbjsKLSAgICAgICAgaWYgKChzaXplX3QpKHB0ciAtIGNkUHRyKSA+IGNkTGVuZ3RoKSB7Ci0gICAgICAgICAgICBBTE9HVygiYmFkIENEIGFkdmFuY2UgKCVkIHZzICIgWkQgIikgYXQgZW50cnkgJWRcbiIsCi0gICAgICAgICAgICAgICAgKGludCkgKHB0ciAtIGNkUHRyKSwgKFpEX1RZUEUpIGNkTGVuZ3RoLCBpKTsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotICAgIH0KLSAgICBBTE9HVigiKysrIHppcCBnb29kIHNjYW4gJWQgZW50cmllc1xuIiwgbnVtRW50cmllcyk7Ci0gICAgcmVzdWx0ID0gdHJ1ZTsKLQotYmFpbDoKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0vKgotICogU2ltcGxlIHN0cmluZyBoYXNoIGZ1bmN0aW9uIGZvciBub24tbnVsbC10ZXJtaW5hdGVkIHN0cmluZ3MuCi0gKi8KLS8qc3RhdGljKi8gdW5zaWduZWQgaW50IFppcEZpbGVSTzo6Y29tcHV0ZUhhc2goY29uc3QgY2hhciogc3RyLCBpbnQgbGVuKQotewotICAgIHVuc2lnbmVkIGludCBoYXNoID0gMDsKLQotICAgIHdoaWxlIChsZW4tLSkKLSAgICAgICAgaGFzaCA9IGhhc2ggKiAzMSArICpzdHIrKzsKLQotICAgIHJldHVybiBoYXNoOwotfQotCi0vKgotICogQWRkIGEgbmV3IGVudHJ5IHRvIHRoZSBoYXNoIHRhYmxlLgotICovCi12b2lkIFppcEZpbGVSTzo6YWRkVG9IYXNoKGNvbnN0IGNoYXIqIHN0ciwgaW50IHN0ckxlbiwgdW5zaWduZWQgaW50IGhhc2gpCi17Ci0gICAgaW50IGVudCA9IGhhc2ggJiAobUhhc2hUYWJsZVNpemUtMSk7Ci0KLSAgICAvKgotICAgICAqIFdlIG92ZXItYWxsb2NhdGUgdGhlIHRhYmxlLCBzbyB3ZSdyZSBndWFyYW50ZWVkIHRvIGZpbmQgYW4gZW1wdHkgc2xvdC4KLSAgICAgKi8KLSAgICB3aGlsZSAobUhhc2hUYWJsZVtlbnRdLm5hbWUgIT0gTlVMTCkKLSAgICAgICAgZW50ID0gKGVudCArIDEpICYgKG1IYXNoVGFibGVTaXplLTEpOwotCi0gICAgbUhhc2hUYWJsZVtlbnRdLm5hbWUgPSBzdHI7Ci0gICAgbUhhc2hUYWJsZVtlbnRdLm5hbWVMZW4gPSBzdHJMZW47Ci19Ci0KLS8qCi0gKiBGaW5kIGEgbWF0Y2hpbmcgZW50cnkuCi0gKgotICogUmV0dXJucyBOVUxMIGlmIG5vdCBmb3VuZC4KLSAqLwotWmlwRW50cnlSTyBaaXBGaWxlUk86OmZpbmRFbnRyeUJ5TmFtZShjb25zdCBjaGFyKiBmaWxlTmFtZSkgY29uc3QKLXsKLSAgICAvKgotICAgICAqIElmIHRoZSBaaXBGaWxlUk8gaW5zdGFuY2UgaXMgbm90IGluaXRpYWxpemVkLCB0aGUgZW50cnkgbnVtYmVyIHdpbGwKLSAgICAgKiBlbmQgdXAgYmVpbmcgZ2FyYmFnZSBzaW5jZSBtSGFzaFRhYmxlU2l6ZSBpcyAtMS4KLSAgICAgKi8KLSAgICBpZiAobUhhc2hUYWJsZVNpemUgPD0gMCkgewotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICBpbnQgbmFtZUxlbiA9IHN0cmxlbihmaWxlTmFtZSk7Ci0gICAgdW5zaWduZWQgaW50IGhhc2ggPSBjb21wdXRlSGFzaChmaWxlTmFtZSwgbmFtZUxlbik7Ci0gICAgaW50IGVudCA9IGhhc2ggJiAobUhhc2hUYWJsZVNpemUtMSk7Ci0KLSAgICB3aGlsZSAobUhhc2hUYWJsZVtlbnRdLm5hbWUgIT0gTlVMTCkgewotICAgICAgICBpZiAobUhhc2hUYWJsZVtlbnRdLm5hbWVMZW4gPT0gbmFtZUxlbiAmJgotICAgICAgICAgICAgbWVtY21wKG1IYXNoVGFibGVbZW50XS5uYW1lLCBmaWxlTmFtZSwgbmFtZUxlbikgPT0gMCkKLSAgICAgICAgewotICAgICAgICAgICAgLyogbWF0Y2ggKi8KLSAgICAgICAgICAgIHJldHVybiAoWmlwRW50cnlSTykobG9uZykoZW50ICsga1ppcEVudHJ5QWRqKTsKLSAgICAgICAgfQotCi0gICAgICAgIGVudCA9IChlbnQgKyAxKSAmIChtSGFzaFRhYmxlU2l6ZS0xKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gTlVMTDsKLX0KLQotLyoKLSAqIEZpbmQgdGhlIE50aCBlbnRyeS4KLSAqCi0gKiBUaGlzIGN1cnJlbnRseSBpbnZvbHZlcyB3YWxraW5nIHRocm91Z2ggdGhlIHNwYXJzZSBoYXNoIHRhYmxlLCBjb3VudGluZwotICogbm9uLWVtcHR5IGVudHJpZXMuICBJZiB3ZSBuZWVkIHRvIHNwZWVkIHRoaXMgdXAgd2UgY2FuIGVpdGhlciBhbGxvY2F0ZQotICogYSBwYXJhbGxlbCBsb29rdXAgdGFibGUgb3IgKHBlcmhhcHMgYmV0dGVyKSBwcm92aWRlIGFuIGl0ZXJhdG9yIGludGVyZmFjZS4KLSAqLwotWmlwRW50cnlSTyBaaXBGaWxlUk86OmZpbmRFbnRyeUJ5SW5kZXgoaW50IGlkeCkgY29uc3QKLXsKLSAgICBpZiAoaWR4IDwgMCB8fCBpZHggPj0gbU51bUVudHJpZXMpIHsKLSAgICAgICAgQUxPR1coIkludmFsaWQgaW5kZXggJWRcbiIsIGlkeCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIGZvciAoaW50IGVudCA9IDA7IGVudCA8IG1IYXNoVGFibGVTaXplOyBlbnQrKykgewotICAgICAgICBpZiAobUhhc2hUYWJsZVtlbnRdLm5hbWUgIT0gTlVMTCkgewotICAgICAgICAgICAgaWYgKGlkeC0tID09IDApCi0gICAgICAgICAgICAgICAgcmV0dXJuIChaaXBFbnRyeVJPKSAoaW50cHRyX3QpKGVudCArIGtaaXBFbnRyeUFkaik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gTlVMTDsKLX0KLQotLyoKLSAqIEdldCB0aGUgdXNlZnVsIGZpZWxkcyBmcm9tIHRoZSB6aXAgZW50cnkuCi0gKgotICogUmV0dXJucyAiZmFsc2UiIGlmIHRoZSBvZmZzZXRzIHRvIHRoZSBmaWVsZHMgb3IgdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWVsZHMKLSAqIGFwcGVhciB0byBiZSBib2d1cy4KLSAqLwotYm9vbCBaaXBGaWxlUk86OmdldEVudHJ5SW5mbyhaaXBFbnRyeVJPIGVudHJ5LCBpbnQqIHBNZXRob2QsIHNpemVfdCogcFVuY29tcExlbiwKLSAgICBzaXplX3QqIHBDb21wTGVuLCBvZmY2NF90KiBwT2Zmc2V0LCBsb25nKiBwTW9kV2hlbiwgbG9uZyogcENyYzMyKSBjb25zdAotewotICAgIGJvb2wgcmV0ID0gZmFsc2U7Ci0KLSAgICBjb25zdCBpbnQgZW50ID0gZW50cnlUb0luZGV4KGVudHJ5KTsKLSAgICBpZiAoZW50IDwgMCkgewotICAgICAgICBBTE9HVygiY2Fubm90IGZpbmQgZW50cnkiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEhhc2hFbnRyeSBoYXNoRW50cnkgPSBtSGFzaFRhYmxlW2VudF07Ci0KLSAgICAvKgotICAgICAqIFJlY292ZXIgdGhlIHN0YXJ0IG9mIHRoZSBjZW50cmFsIGRpcmVjdG9yeSBlbnRyeSBmcm9tIHRoZSBmaWxlbmFtZQotICAgICAqIHBvaW50ZXIuICBUaGUgZmlsZW5hbWUgaXMgdGhlIGZpcnN0IGVudHJ5IHBhc3QgdGhlIGZpeGVkLXNpemUgZGF0YSwKLSAgICAgKiBzbyB3ZSBjYW4ganVzdCBzdWJ0cmFjdCBiYWNrIGZyb20gdGhhdC4KLSAgICAgKi8KLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBwdHIgPSAoY29uc3QgdW5zaWduZWQgY2hhciopIGhhc2hFbnRyeS5uYW1lOwotICAgIG9mZjY0X3QgY2RPZmZzZXQgPSBtRGlyZWN0b3J5T2Zmc2V0OwotCi0gICAgcHRyIC09IGtDREVMZW47Ci0KLSAgICBpbnQgbWV0aG9kID0gZ2V0MkxFKHB0ciArIGtDREVNZXRob2QpOwotICAgIGlmIChwTWV0aG9kICE9IE5VTEwpCi0gICAgICAgICpwTWV0aG9kID0gbWV0aG9kOwotCi0gICAgaWYgKHBNb2RXaGVuICE9IE5VTEwpCi0gICAgICAgICpwTW9kV2hlbiA9IGdldDRMRShwdHIgKyBrQ0RFTW9kV2hlbik7Ci0gICAgaWYgKHBDcmMzMiAhPSBOVUxMKQotICAgICAgICAqcENyYzMyID0gZ2V0NExFKHB0ciArIGtDREVDUkMpOwotCi0gICAgc2l6ZV90IGNvbXBMZW4gPSBnZXQ0TEUocHRyICsga0NERUNvbXBMZW4pOwotICAgIGlmIChwQ29tcExlbiAhPSBOVUxMKQotICAgICAgICAqcENvbXBMZW4gPSBjb21wTGVuOwotICAgIHNpemVfdCB1bmNvbXBMZW4gPSBnZXQ0TEUocHRyICsga0NERVVuY29tcExlbik7Ci0gICAgaWYgKHBVbmNvbXBMZW4gIT0gTlVMTCkKLSAgICAgICAgKnBVbmNvbXBMZW4gPSB1bmNvbXBMZW47Ci0KLSAgICAvKgotICAgICAqIElmIHJlcXVlc3RlZCwgZGV0ZXJtaW5lIHRoZSBvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBkYXRhLiAgQWxsIHdlCi0gICAgICogaGF2ZSBpcyB0aGUgb2Zmc2V0IHRvIHRoZSBMb2NhbCBGaWxlIEhlYWRlciwgd2hpY2ggaXMgdmFyaWFibGUgc2l6ZSwKLSAgICAgKiBzbyB3ZSBoYXZlIHRvIHJlYWQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzdHJ1Y3QgdG8gZmlndXJlIG91dCB3aGVyZQotICAgICAqIHRoZSBhY3R1YWwgZGF0YSBzdGFydHMuCi0gICAgICoKLSAgICAgKiBXZSBhbHNvIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGxlbmd0aHMgYXJlIG5vdCBzbyBsYXJnZSB0aGF0Ci0gICAgICogc29tZWJvZHkgdHJ5aW5nIHRvIG1hcCB0aGUgY29tcHJlc3NlZCBvciB1bmNvbXByZXNzZWQgZGF0YSBydW5zCi0gICAgICogb2ZmIHRoZSBlbmQgb2YgdGhlIG1hcHBlZCByZWdpb24uCi0gICAgICoKLSAgICAgKiBOb3RlIHdlIGRvbid0IHZlcmlmeSBjb21wTGVuL3VuY29tcExlbiBpZiB0aGV5IGRvbid0IHJlcXVlc3QgdGhlCi0gICAgICogZGF0YU9mZnNldCwgYmVjYXVzZSBkYXRhT2Zmc2V0IGlzIGV4cGVuc2l2ZSB0byBkZXRlcm1pbmUuICBIb3dldmVyLAotICAgICAqIGlmIHRoZXkgZG9uJ3QgaGF2ZSB0aGUgZmlsZSBvZmZzZXQsIHRoZXkncmUgbm90IGxpa2VseSB0byBiZSBkb2luZwotICAgICAqIGFueXRoaW5nIHdpdGggdGhlIGNvbnRlbnRzLgotICAgICAqLwotICAgIGlmIChwT2Zmc2V0ICE9IE5VTEwpIHsKLSAgICAgICAgbG9uZyBsb2NhbEhkck9mZnNldCA9IGdldDRMRShwdHIgKyBrQ0RFTG9jYWxPZmZzZXQpOwotICAgICAgICBpZiAobG9jYWxIZHJPZmZzZXQgKyBrTEZITGVuID49IGNkT2Zmc2V0KSB7Ci0gICAgICAgICAgICBBTE9HRSgiRVJST1I6IGJhZCBsb2NhbCBoZHIgb2Zmc2V0IGluIHppcFxuIik7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICB1bnNpZ25lZCBjaGFyIGxmaEJ1ZltrTEZITGVuXTsKLQotI2lmZGVmIEhBVkVfUFJFQUQKLSAgICAgICAgLyoKLSAgICAgICAgICogVGhpcyBmaWxlIGRlc2NyaXB0b3IgbWlnaHQgYmUgZnJvbSB6eWdvdGUncyBwcmVsb2FkZWQgYXNzZXRzLAotICAgICAgICAgKiBzbyB3ZSBuZWVkIHRvIGRvIGFuIHByZWFkNjQoKSBpbnN0ZWFkIG9mIGEgbHNlZWs2NCgpICsgcmVhZCgpIHRvCi0gICAgICAgICAqIGd1YXJhbnRlZSBhdG9taWNpdHkgYWNyb3NzIHRoZSBwcm9jZXNzZXMgd2l0aCB0aGUgc2hhcmVkIGZpbGUKLSAgICAgICAgICogZGVzY3JpcHRvcnMuCi0gICAgICAgICAqLwotICAgICAgICBzc2l6ZV90IGFjdHVhbCA9Ci0gICAgICAgICAgICAgICAgVEVNUF9GQUlMVVJFX1JFVFJZKHByZWFkNjQobUZkLCBsZmhCdWYsIHNpemVvZihsZmhCdWYpLCBsb2NhbEhkck9mZnNldCkpOwotCi0gICAgICAgIGlmIChhY3R1YWwgIT0gc2l6ZW9mKGxmaEJ1ZikpIHsKLSAgICAgICAgICAgIEFMT0dXKCJmYWlsZWQgcmVhZGluZyBsZmggZnJvbSBvZmZzZXQgJWxkXG4iLCBsb2NhbEhkck9mZnNldCk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZ2V0NExFKGxmaEJ1ZikgIT0ga0xGSFNpZ25hdHVyZSkgewotICAgICAgICAgICAgQUxPR1coImRpZG4ndCBmaW5kIHNpZ25hdHVyZSBhdCBzdGFydCBvZiBsZmg7IHdhbnRlZDogb2Zmc2V0PSVsZCBkYXRhPTB4JTA4eDsgIgotICAgICAgICAgICAgICAgICAgICAiZ290OiBkYXRhPTB4JTA4bHhcbiIsCi0gICAgICAgICAgICAgICAgICAgIGxvY2FsSGRyT2Zmc2V0LCBrTEZIU2lnbmF0dXJlLCBnZXQ0TEUobGZoQnVmKSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSNlbHNlIC8qIEhBVkVfUFJFQUQgKi8KLSAgICAgICAgLyoKLSAgICAgICAgICogRm9yIGhvc3RzIGRvbid0IGhhdmUgcHJlYWQ2NCgpIHdlIGNhbm5vdCBndWFyYW50ZWUgYXRvbWljIHJlYWRzIGZyb20KLSAgICAgICAgICogYW4gb2Zmc2V0IGluIGEgZmlsZS4gQW5kcm9pZCBzaG91bGQgbmV2ZXIgcnVuIG9uIHRob3NlIHBsYXRmb3Jtcy4KLSAgICAgICAgICogRmlsZSBkZXNjcmlwdG9ycyBpbmhlcml0ZWQgZnJvbSBhIGZvcmsoKSBzaGFyZSBmaWxlIG9mZnNldHMgYW5kCi0gICAgICAgICAqIHRoZXJlIHdvdWxkIGJlIG5vdGhpbmcgdG8gcHJvdGVjdCBmcm9tIHR3byBkaWZmZXJlbnQgcHJvY2Vzc2VzCi0gICAgICAgICAqIGNhbGxpbmcgbHNlZWs2NCgpIGNvbmN1cnJlbnRseS4KLSAgICAgICAgICovCi0KLSAgICAgICAgewotICAgICAgICAgICAgQXV0b011dGV4IF9sKG1GZExvY2spOwotCi0gICAgICAgICAgICBpZiAobHNlZWs2NChtRmQsIGxvY2FsSGRyT2Zmc2V0LCBTRUVLX1NFVCkgIT0gbG9jYWxIZHJPZmZzZXQpIHsKLSAgICAgICAgICAgICAgICBBTE9HVygiZmFpbGVkIHNlZWtpbmcgdG8gbGZoIGF0IG9mZnNldCAlbGRcbiIsIGxvY2FsSGRyT2Zmc2V0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNzaXplX3QgYWN0dWFsID0KLSAgICAgICAgICAgICAgICAgICAgVEVNUF9GQUlMVVJFX1JFVFJZKHJlYWQobUZkLCBsZmhCdWYsIHNpemVvZihsZmhCdWYpKSk7Ci0gICAgICAgICAgICBpZiAoYWN0dWFsICE9IHNpemVvZihsZmhCdWYpKSB7Ci0gICAgICAgICAgICAgICAgQUxPR1coImZhaWxlZCByZWFkaW5nIGxmaCBmcm9tIG9mZnNldCAlbGRcbiIsIGxvY2FsSGRyT2Zmc2V0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChnZXQ0TEUobGZoQnVmKSAhPSBrTEZIU2lnbmF0dXJlKSB7Ci0gICAgICAgICAgICAgICAgb2ZmNjRfdCBhY3R1YWxPZmZzZXQgPSBsc2VlazY0KG1GZCwgMCwgU0VFS19DVVIpOwotICAgICAgICAgICAgICAgIEFMT0dXKCJkaWRuJ3QgZmluZCBzaWduYXR1cmUgYXQgc3RhcnQgb2YgbGZoOyB3YW50ZWQ6IG9mZnNldD0lbGQgZGF0YT0weCUwOHg7ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJnb3Q6IG9mZnNldD0iIFpEICIgZGF0YT0weCUwOGx4XG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxIZHJPZmZzZXQsIGtMRkhTaWduYXR1cmUsIChaRF9UWVBFKSBhY3R1YWxPZmZzZXQsIGdldDRMRShsZmhCdWYpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSNlbmRpZiAvKiBIQVZFX1BSRUFEICovCi0KLSAgICAgICAgdW5zaWduZWQgaW50IGdwYmYgPSBnZXQyTEUobGZoQnVmICsga0xGSEdQQkZsYWdzKTsKLSAgICAgICAgaWYgKChncGJmICYga0dQRlVuc3VwcG9ydGVkTWFzaykgIT0gMCkgewotICAgICAgICAgICAgQUxPR1coIkludmFsaWQgR2VuZXJhbCBQdXJwb3NlIEJpdCBGbGFnOiAlZCIsIGdwYmYpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgb2ZmNjRfdCBkYXRhT2Zmc2V0ID0gbG9jYWxIZHJPZmZzZXQgKyBrTEZITGVuCi0gICAgICAgICAgICArIGdldDJMRShsZmhCdWYgKyBrTEZITmFtZUxlbikgKyBnZXQyTEUobGZoQnVmICsga0xGSEV4dHJhTGVuKTsKLSAgICAgICAgaWYgKGRhdGFPZmZzZXQgPj0gY2RPZmZzZXQpIHsKLSAgICAgICAgICAgIEFMT0dXKCJiYWQgZGF0YSBvZmZzZXQgJWxkIGluIHppcFxuIiwgKGxvbmcpIGRhdGFPZmZzZXQpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogY2hlY2sgbGVuZ3RocyAqLwotICAgICAgICBpZiAoKGRhdGFPZmZzZXQgPj0gY2RPZmZzZXQpIHx8IChjb21wTGVuID4gKGNkT2Zmc2V0IC0gZGF0YU9mZnNldCkpKSB7Ci0gICAgICAgICAgICBBTE9HVygiYmFkIGNvbXByZXNzZWQgbGVuZ3RoIGluIHppcCAoJWxkICsgIiBaRCAiID4gJWxkKVxuIiwKLSAgICAgICAgICAgICAgICAobG9uZykgZGF0YU9mZnNldCwgKFpEX1RZUEUpIGNvbXBMZW4sIChsb25nKSBjZE9mZnNldCk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobWV0aG9kID09IGtDb21wcmVzc1N0b3JlZCAmJgotICAgICAgICAgICAgKChkYXRhT2Zmc2V0ID49IGNkT2Zmc2V0KSB8fAotICAgICAgICAgICAgICh1bmNvbXBMZW4gPiAoY2RPZmZzZXQgLSBkYXRhT2Zmc2V0KSkpKQotICAgICAgICB7Ci0gICAgICAgICAgICBBTE9HRSgiRVJST1I6IGJhZCB1bmNvbXByZXNzZWQgbGVuZ3RoIGluIHppcCAoJWxkICsgIiBaRCAiID4gJWxkKVxuIiwKLSAgICAgICAgICAgICAgICAobG9uZykgZGF0YU9mZnNldCwgKFpEX1RZUEUpIHVuY29tcExlbiwgKGxvbmcpIGNkT2Zmc2V0KTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgICpwT2Zmc2V0ID0gZGF0YU9mZnNldDsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotLyoKLSAqIENvcHkgdGhlIGVudHJ5J3MgZmlsZW5hbWUgdG8gdGhlIGJ1ZmZlci4KLSAqLwotaW50IFppcEZpbGVSTzo6Z2V0RW50cnlGaWxlTmFtZShaaXBFbnRyeVJPIGVudHJ5LCBjaGFyKiBidWZmZXIsIGludCBidWZMZW4pCi0gICAgY29uc3QKLXsKLSAgICBpbnQgZW50ID0gZW50cnlUb0luZGV4KGVudHJ5KTsKLSAgICBpZiAoZW50IDwgMCkKLSAgICAgICAgcmV0dXJuIC0xOwotCi0gICAgaW50IG5hbWVMZW4gPSBtSGFzaFRhYmxlW2VudF0ubmFtZUxlbjsKLSAgICBpZiAoYnVmTGVuIDwgbmFtZUxlbisxKQotICAgICAgICByZXR1cm4gbmFtZUxlbisxOwotCi0gICAgbWVtY3B5KGJ1ZmZlciwgbUhhc2hUYWJsZVtlbnRdLm5hbWUsIG5hbWVMZW4pOwotICAgIGJ1ZmZlcltuYW1lTGVuXSA9ICdcMCc7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBDcmVhdGUgYSBuZXcgRmlsZU1hcCBvYmplY3QgdGhhdCBzcGFucyB0aGUgZGF0YSBpbiAiZW50cnkiLgotICovCi1GaWxlTWFwKiBaaXBGaWxlUk86OmNyZWF0ZUVudHJ5RmlsZU1hcChaaXBFbnRyeVJPIGVudHJ5KSBjb25zdAotewotICAgIC8qCi0gICAgICogVE9ETzogdGhlIGVmZmljaWVudCB3YXkgdG8gZG8gdGhpcyBpcyB0byBtb2RpZnkgRmlsZU1hcCB0byBhbGxvdwotICAgICAqIHN1Yi1yZWdpb25zIG9mIGEgZmlsZSB0byBiZSBtYXBwZWQuICBBIHJlZmVyZW5jZS1jb3VudGluZyBzY2hlbWUKLSAgICAgKiBjYW4gbWFuYWdlIHRoZSBiYXNlIG1lbW9yeSBtYXBwaW5nLiAgRm9yIG5vdywgd2UganVzdCBjcmVhdGUgYSBicmFuZAotICAgICAqIG5ldyBtYXBwaW5nIG9mZiBvZiB0aGUgWmlwIGFyY2hpdmUgZmlsZSBkZXNjcmlwdG9yLgotICAgICAqLwotCi0gICAgRmlsZU1hcCogbmV3TWFwOwotICAgIGludCBtZXRob2Q7Ci0gICAgc2l6ZV90IHVuY29tcExlbjsKLSAgICBzaXplX3QgY29tcExlbjsKLSAgICBvZmY2NF90IG9mZnNldDsKLQotICAgIGlmICghZ2V0RW50cnlJbmZvKGVudHJ5LCAmbWV0aG9kLCAmdW5jb21wTGVuLCAmY29tcExlbiwgJm9mZnNldCwgTlVMTCwgTlVMTCkpIHsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgc2l6ZV90IGFjdHVhbExlbjsKLSAgICBpZiAobWV0aG9kID09IGtDb21wcmVzc1N0b3JlZCkgewotICAgICAgICBhY3R1YWxMZW4gPSB1bmNvbXBMZW47Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgYWN0dWFsTGVuID0gY29tcExlbjsKLSAgICB9Ci0KLSAgICBuZXdNYXAgPSBuZXcgRmlsZU1hcCgpOwotICAgIGlmICghbmV3TWFwLT5jcmVhdGUobUZpbGVOYW1lLCBtRmQsIG9mZnNldCwgYWN0dWFsTGVuLCB0cnVlKSkgewotICAgICAgICBuZXdNYXAtPnJlbGVhc2UoKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgcmV0dXJuIG5ld01hcDsKLX0KLQotLyoKLSAqIFVuY29tcHJlc3MgYW4gZW50cnksIGluIGl0cyBlbnRpcmV0eSwgaW50byB0aGUgcHJvdmlkZWQgb3V0cHV0IGJ1ZmZlci4KLSAqCi0gKiBUaGlzIGRvZXNuJ3QgdmVyaWZ5IHRoZSBkYXRhJ3MgQ1JDLCB3aGljaCBtaWdodCBiZSB1c2VmdWwgZm9yCi0gKiB1bmNvbXByZXNzZWQgZGF0YS4gIFRoZSBjYWxsZXIgc2hvdWxkIGJlIGFibGUgdG8gbWFuYWdlIGl0LgotICovCi1ib29sIFppcEZpbGVSTzo6dW5jb21wcmVzc0VudHJ5KFppcEVudHJ5Uk8gZW50cnksIHZvaWQqIGJ1ZmZlcikgY29uc3QKLXsKLSAgICBjb25zdCBzaXplX3Qga1NlcXVlbnRpYWxNaW4gPSAzMjc2ODsKLSAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGludCBlbnQgPSBlbnRyeVRvSW5kZXgoZW50cnkpOwotICAgIGlmIChlbnQgPCAwKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpbnQgbWV0aG9kOwotICAgIHNpemVfdCB1bmNvbXBMZW4sIGNvbXBMZW47Ci0gICAgb2ZmNjRfdCBvZmZzZXQ7Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciogcHRyOwotICAgIEZpbGVNYXAgKmZpbGU7Ci0KLSAgICBpZiAoIWdldEVudHJ5SW5mbyhlbnRyeSwgJm1ldGhvZCwgJnVuY29tcExlbiwgJmNvbXBMZW4sICZvZmZzZXQsIE5VTEwsIE5VTEwpKSB7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICBmaWxlID0gY3JlYXRlRW50cnlGaWxlTWFwKGVudHJ5KTsKLSAgICBpZiAoZmlsZSA9PSBOVUxMKSB7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICBwdHIgPSAoY29uc3QgdW5zaWduZWQgY2hhciopIGZpbGUtPmdldERhdGFQdHIoKTsKLQotICAgIC8qCi0gICAgICogRXhwZXJpbWVudCB3aXRoIG1hZHZpc2UgaGludC4gIFdoZW4gd2Ugd2FudCB0byB1bmNvbXByZXNzIGEgZmlsZSwKLSAgICAgKiB3ZSBwdWxsIHNvbWUgc3R1ZmYgb3V0IG9mIHRoZSBjZW50cmFsIGRpciBlbnRyeSBhbmQgdGhlbiBoaXQgYQotICAgICAqIGJ1bmNoIG9mIGNvbXByZXNzZWQgb3IgdW5jb21wcmVzc2VkIGRhdGEgc2VxdWVudGlhbGx5LiAgVGhlIENERQotICAgICAqIHZpc2l0IHdpbGwgY2F1c2UgYSBsaW1pdGVkIGFtb3VudCBvZiByZWFkLWFoZWFkIGJlY2F1c2UgaXQncyBhdAotICAgICAqIHRoZSBlbmQgb2YgdGhlIGZpbGUuICBXZSBjb3VsZCBlbmQgdXAgZG9pbmcgbG90cyBvZiBleHRyYSBkaXNrCi0gICAgICogYWNjZXNzIGlmIHRoZSBmaWxlIHdlJ3JlIHByeWluZyBvcGVuIGlzIHNtYWxsLiAgQm90dG9tIGxpbmUgaXMgd2UKLSAgICAgKiBwcm9iYWJseSBkb24ndCB3YW50IHRvIHR1cm4gTUFEVl9TRVFVRU5USUFMIG9uIGFuZCBsZWF2ZSBpdCBvbi4KLSAgICAgKgotICAgICAqIFNvLCBpZiB0aGUgY29tcHJlc3NlZCBzaXplIG9mIHRoZSBmaWxlIGlzIGFib3ZlIGEgY2VydGFpbiBtaW5pbXVtCi0gICAgICogc2l6ZSwgdGVtcG9yYXJpbHkgYm9vc3QgdGhlIHJlYWQtYWhlYWQgaW4gdGhlIGhvcGUgdGhhdCB0aGUgZXh0cmEKLSAgICAgKiBwYWlyIG9mIHN5c3RlbSBjYWxscyBhcmUgbmVnYXRlZCBieSBhIHJlZHVjdGlvbiBpbiBwYWdlIGZhdWx0cy4KLSAgICAgKi8KLSAgICBpZiAoY29tcExlbiA+IGtTZXF1ZW50aWFsTWluKQotICAgICAgICBmaWxlLT5hZHZpc2UoRmlsZU1hcDo6U0VRVUVOVElBTCk7Ci0KLSAgICBpZiAobWV0aG9kID09IGtDb21wcmVzc1N0b3JlZCkgewotICAgICAgICBtZW1jcHkoYnVmZmVyLCBwdHIsIHVuY29tcExlbik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKCFpbmZsYXRlQnVmZmVyKGJ1ZmZlciwgcHRyLCB1bmNvbXBMZW4sIGNvbXBMZW4pKQotICAgICAgICAgICAgZ290byB1bm1hcDsKLSAgICB9Ci0KLSAgICBpZiAoY29tcExlbiA+IGtTZXF1ZW50aWFsTWluKQotICAgICAgICBmaWxlLT5hZHZpc2UoRmlsZU1hcDo6Tk9STUFMKTsKLQotICAgIHJlc3VsdCA9IHRydWU7Ci0KLXVubWFwOgotICAgIGZpbGUtPnJlbGVhc2UoKTsKLWJhaWw6Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLyoKLSAqIFVuY29tcHJlc3MgYW4gZW50cnksIGluIGl0cyBlbnRpcmV0eSwgdG8gYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IuCi0gKgotICogVGhpcyBkb2Vzbid0IHZlcmlmeSB0aGUgZGF0YSdzIENSQywgYnV0IHByb2JhYmx5IHNob3VsZC4KLSAqLwotYm9vbCBaaXBGaWxlUk86OnVuY29tcHJlc3NFbnRyeShaaXBFbnRyeVJPIGVudHJ5LCBpbnQgZmQpIGNvbnN0Ci17Ci0gICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBpbnQgZW50ID0gZW50cnlUb0luZGV4KGVudHJ5KTsKLSAgICBpZiAoZW50IDwgMCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgaW50IG1ldGhvZDsKLSAgICBzaXplX3QgdW5jb21wTGVuLCBjb21wTGVuOwotICAgIG9mZjY0X3Qgb2Zmc2V0OwotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHB0cjsKLSAgICBGaWxlTWFwICpmaWxlOwotCi0gICAgaWYgKCFnZXRFbnRyeUluZm8oZW50cnksICZtZXRob2QsICZ1bmNvbXBMZW4sICZjb21wTGVuLCAmb2Zmc2V0LCBOVUxMLCBOVUxMKSkgewotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgZmlsZSA9IGNyZWF0ZUVudHJ5RmlsZU1hcChlbnRyeSk7Ci0gICAgaWYgKGZpbGUgPT0gTlVMTCkgewotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgcHRyID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIqKSBmaWxlLT5nZXREYXRhUHRyKCk7Ci0KLSAgICBpZiAobWV0aG9kID09IGtDb21wcmVzc1N0b3JlZCkgewotICAgICAgICBzc2l6ZV90IGFjdHVhbCA9IFRFTVBfRkFJTFVSRV9SRVRSWSh3cml0ZShmZCwgcHRyLCB1bmNvbXBMZW4pKTsKLSAgICAgICAgaWYgKGFjdHVhbCA8IDApIHsKLSAgICAgICAgICAgIEFMT0dFKCJXcml0ZSBmYWlsZWQ6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICAgICAgZ290byB1bm1hcDsKLSAgICAgICAgfSBlbHNlIGlmICgoc2l6ZV90KSBhY3R1YWwgIT0gdW5jb21wTGVuKSB7Ci0gICAgICAgICAgICBBTE9HRSgiUGFydGlhbCB3cml0ZSBkdXJpbmcgdW5jb21wcmVzcyAoIiBaRCAiIG9mICIgWkQgIilcbiIsCi0gICAgICAgICAgICAgICAgKFpEX1RZUEUpIGFjdHVhbCwgKFpEX1RZUEUpIHVuY29tcExlbik7Ci0gICAgICAgICAgICBnb3RvIHVubWFwOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQUxPR0koIisrKyBzdWNjZXNzZnVsIHdyaXRlXG4iKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghaW5mbGF0ZUJ1ZmZlcihmZCwgcHRyLCB1bmNvbXBMZW4sIGNvbXBMZW4pKSB7Ci0gICAgICAgICAgICBnb3RvIHVubWFwOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmVzdWx0ID0gdHJ1ZTsKLQotdW5tYXA6Ci0gICAgZmlsZS0+cmVsZWFzZSgpOwotYmFpbDoKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0vKgotICogVW5jb21wcmVzcyAiZGVmbGF0ZSIgZGF0YSBmcm9tIG9uZSBidWZmZXIgdG8gYW5vdGhlci4KLSAqLwotLypzdGF0aWMqLyBib29sIFppcEZpbGVSTzo6aW5mbGF0ZUJ1ZmZlcih2b2lkKiBvdXRCdWYsIGNvbnN0IHZvaWQqIGluQnVmLAotICAgIHNpemVfdCB1bmNvbXBMZW4sIHNpemVfdCBjb21wTGVuKQotewotICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgel9zdHJlYW0genN0cmVhbTsKLSAgICBpbnQgemVycjsKLQotICAgIC8qCi0gICAgICogSW5pdGlhbGl6ZSB0aGUgemxpYiBzdHJlYW0gc3RydWN0LgotICAgICAqLwotICAgIG1lbXNldCgmenN0cmVhbSwgMCwgc2l6ZW9mKHpzdHJlYW0pKTsKLSAgICB6c3RyZWFtLnphbGxvYyA9IFpfTlVMTDsKLSAgICB6c3RyZWFtLnpmcmVlID0gWl9OVUxMOwotICAgIHpzdHJlYW0ub3BhcXVlID0gWl9OVUxMOwotICAgIHpzdHJlYW0ubmV4dF9pbiA9IChCeXRlZiopaW5CdWY7Ci0gICAgenN0cmVhbS5hdmFpbF9pbiA9IGNvbXBMZW47Ci0gICAgenN0cmVhbS5uZXh0X291dCA9IChCeXRlZiopIG91dEJ1ZjsKLSAgICB6c3RyZWFtLmF2YWlsX291dCA9IHVuY29tcExlbjsKLSAgICB6c3RyZWFtLmRhdGFfdHlwZSA9IFpfVU5LTk9XTjsKLQotICAgIC8qCi0gICAgICogVXNlIHRoZSB1bmRvY3VtZW50ZWQgIm5lZ2F0aXZlIHdpbmRvdyBiaXRzIiBmZWF0dXJlIHRvIHRlbGwgemxpYgotICAgICAqIHRoYXQgdGhlcmUncyBubyB6bGliIGhlYWRlciB3YWl0aW5nIGZvciBpdC4KLSAgICAgKi8KLSAgICB6ZXJyID0gaW5mbGF0ZUluaXQyKCZ6c3RyZWFtLCAtTUFYX1dCSVRTKTsKLSAgICBpZiAoemVyciAhPSBaX09LKSB7Ci0gICAgICAgIGlmICh6ZXJyID09IFpfVkVSU0lPTl9FUlJPUikgewotICAgICAgICAgICAgQUxPR0UoIkluc3RhbGxlZCB6bGliIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggbGlua2VkIHZlcnNpb24gKCVzKVxuIiwKLSAgICAgICAgICAgICAgICBaTElCX1ZFUlNJT04pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQUxPR0UoIkNhbGwgdG8gaW5mbGF0ZUluaXQyIGZhaWxlZCAoemVycj0lZClcbiIsIHplcnIpOwotICAgICAgICB9Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEV4cGFuZCBkYXRhLgotICAgICAqLwotICAgIHplcnIgPSBpbmZsYXRlKCZ6c3RyZWFtLCBaX0ZJTklTSCk7Ci0gICAgaWYgKHplcnIgIT0gWl9TVFJFQU1fRU5EKSB7Ci0gICAgICAgIEFMT0dXKCJaaXAgaW5mbGF0ZSBmYWlsZWQsIHplcnI9JWQgKG5Jbj0lcCBhSW49JXUgbk91dD0lcCBhT3V0PSV1KVxuIiwKLSAgICAgICAgICAgIHplcnIsIHpzdHJlYW0ubmV4dF9pbiwgenN0cmVhbS5hdmFpbF9pbiwKLSAgICAgICAgICAgIHpzdHJlYW0ubmV4dF9vdXQsIHpzdHJlYW0uYXZhaWxfb3V0KTsKLSAgICAgICAgZ290byB6X2JhaWw7Ci0gICAgfQotCi0gICAgLyogcGFyYW5vaWEgKi8KLSAgICBpZiAoenN0cmVhbS50b3RhbF9vdXQgIT0gdW5jb21wTGVuKSB7Ci0gICAgICAgIEFMT0dXKCJTaXplIG1pc21hdGNoIG9uIGluZmxhdGVkIGZpbGUgKCVsZCB2cyAiIFpEICIpXG4iLAotICAgICAgICAgICAgenN0cmVhbS50b3RhbF9vdXQsIChaRF9UWVBFKSB1bmNvbXBMZW4pOwotICAgICAgICBnb3RvIHpfYmFpbDsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSB0cnVlOwotCi16X2JhaWw6Ci0gICAgaW5mbGF0ZUVuZCgmenN0cmVhbSk7ICAgICAgICAvKiBmcmVlIHVwIGFueSBhbGxvY2F0ZWQgc3RydWN0dXJlcyAqLwotCi1iYWlsOgotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLS8qCi0gKiBVbmNvbXByZXNzICJkZWZsYXRlIiBkYXRhIGZyb20gb25lIGJ1ZmZlciB0byBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvci4KLSAqLwotLypzdGF0aWMqLyBib29sIFppcEZpbGVSTzo6aW5mbGF0ZUJ1ZmZlcihpbnQgZmQsIGNvbnN0IHZvaWQqIGluQnVmLAotICAgIHNpemVfdCB1bmNvbXBMZW4sIHNpemVfdCBjb21wTGVuKQotewotICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgY29uc3Qgc2l6ZV90IGtXcml0ZUJ1ZlNpemUgPSAzMjc2ODsKLSAgICB1bnNpZ25lZCBjaGFyIHdyaXRlQnVmW2tXcml0ZUJ1ZlNpemVdOwotICAgIHpfc3RyZWFtIHpzdHJlYW07Ci0gICAgaW50IHplcnI7Ci0KLSAgICAvKgotICAgICAqIEluaXRpYWxpemUgdGhlIHpsaWIgc3RyZWFtIHN0cnVjdC4KLSAgICAgKi8KLSAgICBtZW1zZXQoJnpzdHJlYW0sIDAsIHNpemVvZih6c3RyZWFtKSk7Ci0gICAgenN0cmVhbS56YWxsb2MgPSBaX05VTEw7Ci0gICAgenN0cmVhbS56ZnJlZSA9IFpfTlVMTDsKLSAgICB6c3RyZWFtLm9wYXF1ZSA9IFpfTlVMTDsKLSAgICB6c3RyZWFtLm5leHRfaW4gPSAoQnl0ZWYqKWluQnVmOwotICAgIHpzdHJlYW0uYXZhaWxfaW4gPSBjb21wTGVuOwotICAgIHpzdHJlYW0ubmV4dF9vdXQgPSAoQnl0ZWYqKSB3cml0ZUJ1ZjsKLSAgICB6c3RyZWFtLmF2YWlsX291dCA9IHNpemVvZih3cml0ZUJ1Zik7Ci0gICAgenN0cmVhbS5kYXRhX3R5cGUgPSBaX1VOS05PV047Ci0KLSAgICAvKgotICAgICAqIFVzZSB0aGUgdW5kb2N1bWVudGVkICJuZWdhdGl2ZSB3aW5kb3cgYml0cyIgZmVhdHVyZSB0byB0ZWxsIHpsaWIKLSAgICAgKiB0aGF0IHRoZXJlJ3Mgbm8gemxpYiBoZWFkZXIgd2FpdGluZyBmb3IgaXQuCi0gICAgICovCi0gICAgemVyciA9IGluZmxhdGVJbml0MigmenN0cmVhbSwgLU1BWF9XQklUUyk7Ci0gICAgaWYgKHplcnIgIT0gWl9PSykgewotICAgICAgICBpZiAoemVyciA9PSBaX1ZFUlNJT05fRVJST1IpIHsKLSAgICAgICAgICAgIEFMT0dFKCJJbnN0YWxsZWQgemxpYiBpcyBub3QgY29tcGF0aWJsZSB3aXRoIGxpbmtlZCB2ZXJzaW9uICglcylcbiIsCi0gICAgICAgICAgICAgICAgWkxJQl9WRVJTSU9OKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFMT0dFKCJDYWxsIHRvIGluZmxhdGVJbml0MiBmYWlsZWQgKHplcnI9JWQpXG4iLCB6ZXJyKTsKLSAgICAgICAgfQotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBMb29wIHdoaWxlIHdlIGhhdmUgbW9yZSB0byBkby4KLSAgICAgKi8KLSAgICBkbyB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIEV4cGFuZCBkYXRhLgotICAgICAgICAgKi8KLSAgICAgICAgemVyciA9IGluZmxhdGUoJnpzdHJlYW0sIFpfTk9fRkxVU0gpOwotICAgICAgICBpZiAoemVyciAhPSBaX09LICYmIHplcnIgIT0gWl9TVFJFQU1fRU5EKSB7Ci0gICAgICAgICAgICBBTE9HVygiemxpYiBpbmZsYXRlOiB6ZXJyPSVkIChuSW49JXAgYUluPSV1IG5PdXQ9JXAgYU91dD0ldSlcbiIsCi0gICAgICAgICAgICAgICAgemVyciwgenN0cmVhbS5uZXh0X2luLCB6c3RyZWFtLmF2YWlsX2luLAotICAgICAgICAgICAgICAgIHpzdHJlYW0ubmV4dF9vdXQsIHpzdHJlYW0uYXZhaWxfb3V0KTsKLSAgICAgICAgICAgIGdvdG8gel9iYWlsOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogd3JpdGUgd2hlbiB3ZSdyZSBmdWxsIG9yIHdoZW4gd2UncmUgZG9uZSAqLwotICAgICAgICBpZiAoenN0cmVhbS5hdmFpbF9vdXQgPT0gMCB8fAotICAgICAgICAgICAgKHplcnIgPT0gWl9TVFJFQU1fRU5EICYmIHpzdHJlYW0uYXZhaWxfb3V0ICE9IHNpemVvZih3cml0ZUJ1ZikpKQotICAgICAgICB7Ci0gICAgICAgICAgICBsb25nIHdyaXRlU2l6ZSA9IHpzdHJlYW0ubmV4dF9vdXQgLSB3cml0ZUJ1ZjsKLSAgICAgICAgICAgIGludCBjYyA9IFRFTVBfRkFJTFVSRV9SRVRSWSh3cml0ZShmZCwgd3JpdGVCdWYsIHdyaXRlU2l6ZSkpOwotICAgICAgICAgICAgaWYgKGNjIDwgMCkgewotICAgICAgICAgICAgICAgIEFMT0dXKCJ3cml0ZSBmYWlsZWQgaW4gaW5mbGF0ZTogJXMiLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICAgICAgICAgIGdvdG8gel9iYWlsOwotICAgICAgICAgICAgfSBlbHNlIGlmIChjYyAhPSAoaW50KSB3cml0ZVNpemUpIHsKLSAgICAgICAgICAgICAgICBBTE9HVygid3JpdGUgZmFpbGVkIGluIGluZmxhdGUgKCVkIHZzICVsZCkiLCBjYywgd3JpdGVTaXplKTsKLSAgICAgICAgICAgICAgICBnb3RvIHpfYmFpbDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgenN0cmVhbS5uZXh0X291dCA9IHdyaXRlQnVmOwotICAgICAgICAgICAgenN0cmVhbS5hdmFpbF9vdXQgPSBzaXplb2Yod3JpdGVCdWYpOwotICAgICAgICB9Ci0gICAgfSB3aGlsZSAoemVyciA9PSBaX09LKTsKLQotICAgIGFzc2VydCh6ZXJyID09IFpfU1RSRUFNX0VORCk7ICAgICAgIC8qIG90aGVyIGVycm9ycyBzaG91bGQndmUgYmVlbiBjYXVnaHQgKi8KLQotICAgIC8qIHBhcmFub2lhICovCi0gICAgaWYgKHpzdHJlYW0udG90YWxfb3V0ICE9IHVuY29tcExlbikgewotICAgICAgICBBTE9HVygiU2l6ZSBtaXNtYXRjaCBvbiBpbmZsYXRlZCBmaWxlICglbGQgdnMgIiBaRCAiKVxuIiwKLSAgICAgICAgICAgIHpzdHJlYW0udG90YWxfb3V0LCAoWkRfVFlQRSkgdW5jb21wTGVuKTsKLSAgICAgICAgZ290byB6X2JhaWw7Ci0gICAgfQotCi0gICAgcmVzdWx0ID0gdHJ1ZTsKLQotel9iYWlsOgotICAgIGluZmxhdGVFbmQoJnpzdHJlYW0pOyAgICAgICAgLyogZnJlZSB1cCBhbnkgYWxsb2NhdGVkIHN0cnVjdHVyZXMgKi8KLQotYmFpbDoKLSAgICByZXR1cm4gcmVzdWx0OwotfQpkaWZmIC0tZ2l0IGEvbGlicy9hbmRyb2lkZncvWmlwVXRpbHMuY3BwIGIvbGlicy9hbmRyb2lkZncvWmlwVXRpbHMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTdlYjdkLi4wMDAwMDAwCi0tLSBhL2xpYnMvYW5kcm9pZGZ3L1ppcFV0aWxzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotLy8KLS8vIE1pc2MgemlwL2d6aXAgdXRpbGl0eSBmdW5jdGlvbnMuCi0vLwotCi0jZGVmaW5lIExPR19UQUcgInppcHV0aWwiCi0KLSNpbmNsdWRlIDxhbmRyb2lkZncvWmlwVXRpbHMuaD4KLSNpbmNsdWRlIDxhbmRyb2lkZncvWmlwRmlsZVJPLmg+Ci0jaW5jbHVkZSA8dXRpbHMvTG9nLmg+Ci0jaW5jbHVkZSA8dXRpbHMvQ29tcGF0Lmg+Ci0KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxhc3NlcnQuaD4KLQotI2luY2x1ZGUgPHpsaWIuaD4KLQotdXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ7Ci0KLS8qCi0gKiBVdGlsaXR5IGZ1bmN0aW9uIHRoYXQgZXhwYW5kcyB6aXAvZ3ppcCAiZGVmbGF0ZSIgY29tcHJlc3NlZCBkYXRhCi0gKiBpbnRvIGEgYnVmZmVyLgotICoKLSAqICJmZCIgaXMgYW4gb3BlbiBmaWxlIHBvc2l0aW9uZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSAiZGVmbGF0ZSIgZGF0YQotICogImJ1ZiIgbXVzdCBob2xkIGF0IGxlYXN0ICJ1bmNvbXByZXNzZWRMZW4iIGJ5dGVzLgotICovCi0vKnN0YXRpYyovIGJvb2wgWmlwVXRpbHM6OmluZmxhdGVUb0J1ZmZlcihpbnQgZmQsIHZvaWQqIGJ1ZiwKLSAgICBsb25nIHVuY29tcHJlc3NlZExlbiwgbG9uZyBjb21wcmVzc2VkTGVuKQotewotICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0JY29uc3QgdW5zaWduZWQgbG9uZyBrUmVhZEJ1ZlNpemUgPSAzMjc2ODsKLQl1bnNpZ25lZCBjaGFyKiByZWFkQnVmID0gTlVMTDsKLSAgICB6X3N0cmVhbSB6c3RyZWFtOwotICAgIGludCB6ZXJyOwotICAgIHVuc2lnbmVkIGxvbmcgY29tcFJlbWFpbmluZzsKLQotICAgIGFzc2VydCh1bmNvbXByZXNzZWRMZW4gPj0gMCk7Ci0gICAgYXNzZXJ0KGNvbXByZXNzZWRMZW4gPj0gMCk7Ci0KLQlyZWFkQnVmID0gbmV3IHVuc2lnbmVkIGNoYXJba1JlYWRCdWZTaXplXTsKLQlpZiAocmVhZEJ1ZiA9PSBOVUxMKQotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgY29tcFJlbWFpbmluZyA9IGNvbXByZXNzZWRMZW47Ci0KLSAgICAvKgotICAgICAqIEluaXRpYWxpemUgdGhlIHpsaWIgc3RyZWFtLgotICAgICAqLwotCW1lbXNldCgmenN0cmVhbSwgMCwgc2l6ZW9mKHpzdHJlYW0pKTsKLSAgICB6c3RyZWFtLnphbGxvYyA9IFpfTlVMTDsKLSAgICB6c3RyZWFtLnpmcmVlID0gWl9OVUxMOwotICAgIHpzdHJlYW0ub3BhcXVlID0gWl9OVUxMOwotICAgIHpzdHJlYW0ubmV4dF9pbiA9IE5VTEw7Ci0gICAgenN0cmVhbS5hdmFpbF9pbiA9IDA7Ci0gICAgenN0cmVhbS5uZXh0X291dCA9IChCeXRlZiopIGJ1ZjsKLSAgICB6c3RyZWFtLmF2YWlsX291dCA9IHVuY29tcHJlc3NlZExlbjsKLSAgICB6c3RyZWFtLmRhdGFfdHlwZSA9IFpfVU5LTk9XTjsKLQotCS8qCi0JICogVXNlIHRoZSB1bmRvY3VtZW50ZWQgIm5lZ2F0aXZlIHdpbmRvdyBiaXRzIiBmZWF0dXJlIHRvIHRlbGwgemxpYgotCSAqIHRoYXQgdGhlcmUncyBubyB6bGliIGhlYWRlciB3YWl0aW5nIGZvciBpdC4KLQkgKi8KLSAgICB6ZXJyID0gaW5mbGF0ZUluaXQyKCZ6c3RyZWFtLCAtTUFYX1dCSVRTKTsKLSAgICBpZiAoemVyciAhPSBaX09LKSB7Ci0gICAgICAgIGlmICh6ZXJyID09IFpfVkVSU0lPTl9FUlJPUikgewotICAgICAgICAgICAgQUxPR0UoIkluc3RhbGxlZCB6bGliIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggbGlua2VkIHZlcnNpb24gKCVzKVxuIiwKLSAgICAgICAgICAgICAgICBaTElCX1ZFUlNJT04pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQUxPR0UoIkNhbGwgdG8gaW5mbGF0ZUluaXQyIGZhaWxlZCAoemVycj0lZClcbiIsIHplcnIpOwotICAgICAgICB9Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIExvb3Agd2hpbGUgd2UgaGF2ZSBkYXRhLgotICAgICAqLwotICAgIGRvIHsKLSAgICAgICAgdW5zaWduZWQgbG9uZyBnZXRTaXplOwotCi0gICAgICAgIC8qIHJlYWQgYXMgbXVjaCBhcyB3ZSBjYW4gKi8KLSAgICAgICAgaWYgKHpzdHJlYW0uYXZhaWxfaW4gPT0gMCkgewotICAgICAgICAgICAgZ2V0U2l6ZSA9IChjb21wUmVtYWluaW5nID4ga1JlYWRCdWZTaXplKSA/Ci0gICAgICAgICAgICAgICAgICAgICAgICBrUmVhZEJ1ZlNpemUgOiBjb21wUmVtYWluaW5nOwotICAgICAgICAgICAgQUxPR1YoIisrKyByZWFkaW5nICVsZCBieXRlcyAoJWxkIGxlZnQpXG4iLAotICAgICAgICAgICAgICAgIGdldFNpemUsIGNvbXBSZW1haW5pbmcpOwotCi0gICAgICAgICAgICBpbnQgY2MgPSBURU1QX0ZBSUxVUkVfUkVUUlkocmVhZChmZCwgcmVhZEJ1ZiwgZ2V0U2l6ZSkpOwotICAgICAgICAgICAgaWYgKGNjIDwgMCkgewotICAgICAgICAgICAgICAgIEFMT0dXKCJpbmZsYXRlIHJlYWQgZmFpbGVkOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGNjICE9IChpbnQpIGdldFNpemUpIHsKLSAgICAgICAgICAgICAgICBBTE9HVygiaW5mbGF0ZSByZWFkIGZhaWxlZCAoJWQgdnMgJWxkKSIsIGNjLCBnZXRTaXplKTsKLSAgICAgICAgICAgICAgICBnb3RvIHpfYmFpbDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY29tcFJlbWFpbmluZyAtPSBnZXRTaXplOwotCi0gICAgICAgICAgICB6c3RyZWFtLm5leHRfaW4gPSByZWFkQnVmOwotICAgICAgICAgICAgenN0cmVhbS5hdmFpbF9pbiA9IGdldFNpemU7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiB1bmNvbXByZXNzIHRoZSBkYXRhICovCi0gICAgICAgIHplcnIgPSBpbmZsYXRlKCZ6c3RyZWFtLCBaX05PX0ZMVVNIKTsKLSAgICAgICAgaWYgKHplcnIgIT0gWl9PSyAmJiB6ZXJyICE9IFpfU1RSRUFNX0VORCkgewotICAgICAgICAgICAgQUxPR0QoInpsaWIgaW5mbGF0ZSBjYWxsIGZhaWxlZCAoemVycj0lZClcbiIsIHplcnIpOwotICAgICAgICAgICAgZ290byB6X2JhaWw7Ci0gICAgICAgIH0KLQotCQkvKiBvdXRwdXQgYnVmZmVyIGhvbGRzIGFsbCwgc28gbm8gbmVlZCB0byB3cml0ZSB0aGUgb3V0cHV0ICovCi0gICAgfSB3aGlsZSAoemVyciA9PSBaX09LKTsKLQotICAgIGFzc2VydCh6ZXJyID09IFpfU1RSRUFNX0VORCk7ICAgICAgIC8qIG90aGVyIGVycm9ycyBzaG91bGQndmUgYmVlbiBjYXVnaHQgKi8KLQotICAgIGlmICgobG9uZykgenN0cmVhbS50b3RhbF9vdXQgIT0gdW5jb21wcmVzc2VkTGVuKSB7Ci0gICAgICAgIEFMT0dXKCJTaXplIG1pc21hdGNoIG9uIGluZmxhdGVkIGZpbGUgKCVsZCB2cyAlbGQpXG4iLAotICAgICAgICAgICAgenN0cmVhbS50b3RhbF9vdXQsIHVuY29tcHJlc3NlZExlbik7Ci0gICAgICAgIGdvdG8gel9iYWlsOwotICAgIH0KLQotICAgIC8vIHN1Y2Nlc3MhCi0gICAgcmVzdWx0ID0gdHJ1ZTsKLQotel9iYWlsOgotICAgIGluZmxhdGVFbmQoJnpzdHJlYW0pOyAgICAgICAgLyogZnJlZSB1cCBhbnkgYWxsb2NhdGVkIHN0cnVjdHVyZXMgKi8KLQotYmFpbDoKLQlkZWxldGVbXSByZWFkQnVmOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLS8qCi0gKiBVdGlsaXR5IGZ1bmN0aW9uIHRoYXQgZXhwYW5kcyB6aXAvZ3ppcCAiZGVmbGF0ZSIgY29tcHJlc3NlZCBkYXRhCi0gKiBpbnRvIGEgYnVmZmVyLgotICoKLSAqIChUaGlzIGlzIGEgY2xvbmUgb2YgdGhlIHByZXZpb3VzIGZ1bmN0aW9uLCBidXQgaXQgdGFrZXMgYSBGSUxFKiBpbnN0ZWFkCi0gKiBvZiBhbiBmZC4gIFdlIGNvdWxkIHBhc3MgZmlsZW5vKGZkKSB0byB0aGUgYWJvdmUsIGJ1dCB3ZSBjYW4gcnVuIGludG8KLSAqIHRyb3VibGUgd2hlbiAiZnAiIGhhcyBhIGRpZmZlcmVudCBub3Rpb24gb2Ygd2hhdCBmZCdzIGZpbGUgcG9zaXRpb24gaXMuKQotICoKLSAqICJmcCIgaXMgYW4gb3BlbiBmaWxlIHBvc2l0aW9uZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSAiZGVmbGF0ZSIgZGF0YQotICogImJ1ZiIgbXVzdCBob2xkIGF0IGxlYXN0ICJ1bmNvbXByZXNzZWRMZW4iIGJ5dGVzLgotICovCi0vKnN0YXRpYyovIGJvb2wgWmlwVXRpbHM6OmluZmxhdGVUb0J1ZmZlcihGSUxFKiBmcCwgdm9pZCogYnVmLAotICAgIGxvbmcgdW5jb21wcmVzc2VkTGVuLCBsb25nIGNvbXByZXNzZWRMZW4pCi17Ci0gICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLQljb25zdCB1bnNpZ25lZCBsb25nIGtSZWFkQnVmU2l6ZSA9IDMyNzY4OwotCXVuc2lnbmVkIGNoYXIqIHJlYWRCdWYgPSBOVUxMOwotICAgIHpfc3RyZWFtIHpzdHJlYW07Ci0gICAgaW50IHplcnI7Ci0gICAgdW5zaWduZWQgbG9uZyBjb21wUmVtYWluaW5nOwotCi0gICAgYXNzZXJ0KHVuY29tcHJlc3NlZExlbiA+PSAwKTsKLSAgICBhc3NlcnQoY29tcHJlc3NlZExlbiA+PSAwKTsKLQotCXJlYWRCdWYgPSBuZXcgdW5zaWduZWQgY2hhcltrUmVhZEJ1ZlNpemVdOwotCWlmIChyZWFkQnVmID09IE5VTEwpCi0gICAgICAgIGdvdG8gYmFpbDsKLSAgICBjb21wUmVtYWluaW5nID0gY29tcHJlc3NlZExlbjsKLQotICAgIC8qCi0gICAgICogSW5pdGlhbGl6ZSB0aGUgemxpYiBzdHJlYW0uCi0gICAgICovCi0JbWVtc2V0KCZ6c3RyZWFtLCAwLCBzaXplb2YoenN0cmVhbSkpOwotICAgIHpzdHJlYW0uemFsbG9jID0gWl9OVUxMOwotICAgIHpzdHJlYW0uemZyZWUgPSBaX05VTEw7Ci0gICAgenN0cmVhbS5vcGFxdWUgPSBaX05VTEw7Ci0gICAgenN0cmVhbS5uZXh0X2luID0gTlVMTDsKLSAgICB6c3RyZWFtLmF2YWlsX2luID0gMDsKLSAgICB6c3RyZWFtLm5leHRfb3V0ID0gKEJ5dGVmKikgYnVmOwotICAgIHpzdHJlYW0uYXZhaWxfb3V0ID0gdW5jb21wcmVzc2VkTGVuOwotICAgIHpzdHJlYW0uZGF0YV90eXBlID0gWl9VTktOT1dOOwotCi0JLyoKLQkgKiBVc2UgdGhlIHVuZG9jdW1lbnRlZCAibmVnYXRpdmUgd2luZG93IGJpdHMiIGZlYXR1cmUgdG8gdGVsbCB6bGliCi0JICogdGhhdCB0aGVyZSdzIG5vIHpsaWIgaGVhZGVyIHdhaXRpbmcgZm9yIGl0LgotCSAqLwotICAgIHplcnIgPSBpbmZsYXRlSW5pdDIoJnpzdHJlYW0sIC1NQVhfV0JJVFMpOwotICAgIGlmICh6ZXJyICE9IFpfT0spIHsKLSAgICAgICAgaWYgKHplcnIgPT0gWl9WRVJTSU9OX0VSUk9SKSB7Ci0gICAgICAgICAgICBBTE9HRSgiSW5zdGFsbGVkIHpsaWIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBsaW5rZWQgdmVyc2lvbiAoJXMpXG4iLAotICAgICAgICAgICAgICAgIFpMSUJfVkVSU0lPTik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBBTE9HRSgiQ2FsbCB0byBpbmZsYXRlSW5pdDIgZmFpbGVkICh6ZXJyPSVkKVxuIiwgemVycik7Ci0gICAgICAgIH0KLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIC8qCi0gICAgICogTG9vcCB3aGlsZSB3ZSBoYXZlIGRhdGEuCi0gICAgICovCi0gICAgZG8gewotICAgICAgICB1bnNpZ25lZCBsb25nIGdldFNpemU7Ci0KLSAgICAgICAgLyogcmVhZCBhcyBtdWNoIGFzIHdlIGNhbiAqLwotICAgICAgICBpZiAoenN0cmVhbS5hdmFpbF9pbiA9PSAwKSB7Ci0gICAgICAgICAgICBnZXRTaXplID0gKGNvbXBSZW1haW5pbmcgPiBrUmVhZEJ1ZlNpemUpID8KLSAgICAgICAgICAgICAgICAgICAgICAgIGtSZWFkQnVmU2l6ZSA6IGNvbXBSZW1haW5pbmc7Ci0gICAgICAgICAgICBBTE9HVigiKysrIHJlYWRpbmcgJWxkIGJ5dGVzICglbGQgbGVmdClcbiIsCi0gICAgICAgICAgICAgICAgZ2V0U2l6ZSwgY29tcFJlbWFpbmluZyk7Ci0KLSAgICAgICAgICAgIGludCBjYyA9IGZyZWFkKHJlYWRCdWYsIDEsIGdldFNpemUsIGZwKTsKLSAgICAgICAgICAgIGlmIChjYyAhPSAoaW50KSBnZXRTaXplKSB7Ci0gICAgICAgICAgICAgICAgQUxPR0QoImluZmxhdGUgcmVhZCBmYWlsZWQgKCVkIHZzICVsZClcbiIsCi0gICAgICAgICAgICAgICAgICAgIGNjLCBnZXRTaXplKTsKLSAgICAgICAgICAgICAgICBnb3RvIHpfYmFpbDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY29tcFJlbWFpbmluZyAtPSBnZXRTaXplOwotCi0gICAgICAgICAgICB6c3RyZWFtLm5leHRfaW4gPSByZWFkQnVmOwotICAgICAgICAgICAgenN0cmVhbS5hdmFpbF9pbiA9IGdldFNpemU7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiB1bmNvbXByZXNzIHRoZSBkYXRhICovCi0gICAgICAgIHplcnIgPSBpbmZsYXRlKCZ6c3RyZWFtLCBaX05PX0ZMVVNIKTsKLSAgICAgICAgaWYgKHplcnIgIT0gWl9PSyAmJiB6ZXJyICE9IFpfU1RSRUFNX0VORCkgewotICAgICAgICAgICAgQUxPR0QoInpsaWIgaW5mbGF0ZSBjYWxsIGZhaWxlZCAoemVycj0lZClcbiIsIHplcnIpOwotICAgICAgICAgICAgZ290byB6X2JhaWw7Ci0gICAgICAgIH0KLQotCQkvKiBvdXRwdXQgYnVmZmVyIGhvbGRzIGFsbCwgc28gbm8gbmVlZCB0byB3cml0ZSB0aGUgb3V0cHV0ICovCi0gICAgfSB3aGlsZSAoemVyciA9PSBaX09LKTsKLQotICAgIGFzc2VydCh6ZXJyID09IFpfU1RSRUFNX0VORCk7ICAgICAgIC8qIG90aGVyIGVycm9ycyBzaG91bGQndmUgYmVlbiBjYXVnaHQgKi8KLQotICAgIGlmICgobG9uZykgenN0cmVhbS50b3RhbF9vdXQgIT0gdW5jb21wcmVzc2VkTGVuKSB7Ci0gICAgICAgIEFMT0dXKCJTaXplIG1pc21hdGNoIG9uIGluZmxhdGVkIGZpbGUgKCVsZCB2cyAlbGQpXG4iLAotICAgICAgICAgICAgenN0cmVhbS50b3RhbF9vdXQsIHVuY29tcHJlc3NlZExlbik7Ci0gICAgICAgIGdvdG8gel9iYWlsOwotICAgIH0KLQotICAgIC8vIHN1Y2Nlc3MhCi0gICAgcmVzdWx0ID0gdHJ1ZTsKLQotel9iYWlsOgotICAgIGluZmxhdGVFbmQoJnpzdHJlYW0pOyAgICAgICAgLyogZnJlZSB1cCBhbnkgYWxsb2NhdGVkIHN0cnVjdHVyZXMgKi8KLQotYmFpbDoKLQlkZWxldGVbXSByZWFkQnVmOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLS8qCi0gKiBMb29rIGF0IHRoZSBjb250ZW50cyBvZiBhIGd6aXAgYXJjaGl2ZS4gIFdlIHdhbnQgdG8ga25vdyB3aGVyZSB0aGUKLSAqIGRhdGEgc3RhcnRzLCBhbmQgaG93IGxvbmcgaXQgd2lsbCBiZSBhZnRlciBpdCBpcyB1bmNvbXByZXNzZWQuCi0gKgotICogV2UgZXhwZWN0IHRvIGZpbmQgdGhlIENSQyBhbmQgbGVuZ3RoIGFzIHRoZSBsYXN0IDggYnl0ZXMgb24gdGhlIGZpbGUuCi0gKiBUaGlzIGlzIGEgcHJldHR5IHJlYXNvbmFibGUgdGhpbmcgdG8gZXhwZWN0IGZvciBsb2NhbGx5LWNvbXByZXNzZWQKLSAqIGZpbGVzLCBidXQgdGhlcmUncyBhIHNtYWxsIGNoYW5jZSB0aGF0IHNvbWUgZXh0cmEgcGFkZGluZyBnb3QgdGhyb3duCi0gKiBvbiAodGhlIG1hbiBwYWdlIHRhbGtzIGFib3V0IGNvbXByZXNzZWQgZGF0YSB3cml0dGVuIHRvIHRhcGUpLiAgV2UKLSAqIGRvbid0IGN1cnJlbnRseSBkZWFsIHdpdGggdGhhdCBoZXJlLiAgSWYgImd6aXAgLWwiIHdoaW5lcywgd2UncmUgZ29pbmcKLSAqIHRvIGZhaWwgdG9vLgotICoKLSAqIE9uIGV4aXQsICJmcCIgaXMgcG9pbnRpbmcgYXQgdGhlIHN0YXJ0IG9mIHRoZSBjb21wcmVzc2VkIGRhdGEuCi0gKi8KLS8qc3RhdGljKi8gYm9vbCBaaXBVdGlsczo6ZXhhbWluZUd6aXAoRklMRSogZnAsIGludCogcENvbXByZXNzaW9uTWV0aG9kLAotICAgIGxvbmcqIHBVbmNvbXByZXNzZWRMZW4sIGxvbmcqIHBDb21wcmVzc2VkTGVuLCB1bnNpZ25lZCBsb25nKiBwQ1JDMzIpCi17Ci0gICAgZW51bSB7ICAvLyBmbGFncwotICAgICAgICBGVEVYVCAgICAgICA9IDB4MDEsCi0gICAgICAgIEZIQ1JDICAgICAgID0gMHgwMiwKLSAgICAgICAgRkVYVFJBICAgICAgPSAweDA0LAotICAgICAgICBGTkFNRSAgICAgICA9IDB4MDgsCi0gICAgICAgIEZDT01NRU5UICAgID0gMHgxMCwKLSAgICB9OwotICAgIGludCBpYzsKLSAgICBpbnQgbWV0aG9kLCBmbGFnczsKLSAgICBpbnQgaTsKLQotICAgIGljID0gZ2V0YyhmcCk7Ci0gICAgaWYgKGljICE9IDB4MWYgfHwgZ2V0YyhmcCkgIT0gMHg4YikKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAgICAgICAvLyBub3QgZ3ppcAotICAgIG1ldGhvZCA9IGdldGMoZnApOwotICAgIGZsYWdzID0gZ2V0YyhmcCk7Ci0KLSAgICAvKiBxdWljayBzYW5pdHkgY2hlY2tzICovCi0gICAgaWYgKG1ldGhvZCA9PSBFT0YgfHwgZmxhZ3MgPT0gRU9GKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKG1ldGhvZCAhPSBaaXBGaWxlUk86OmtDb21wcmVzc0RlZmxhdGVkKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAvKiBza2lwIG92ZXIgNCBieXRlcyBvZiBtb2QgdGltZSwgMSBieXRlIFhGTCwgMSBieXRlIE9TICovCi0gICAgZm9yIChpID0gMDsgaSA8IDY7IGkrKykKLSAgICAgICAgKHZvaWQpIGdldGMoZnApOwotICAgIC8qIGNvbnN1bWUgImV4dHJhIiBmaWVsZCwgaWYgcHJlc2VudCAqLwotICAgIGlmICgoZmxhZ3MgJiBGRVhUUkEpICE9IDApIHsKLSAgICAgICAgaW50IGxlbjsKLQotICAgICAgICBsZW4gPSBnZXRjKGZwKTsKLSAgICAgICAgbGVuIHw9IGdldGMoZnApIDw8IDg7Ci0gICAgICAgIHdoaWxlIChsZW4tLSAmJiBnZXRjKGZwKSAhPSBFT0YpCi0gICAgICAgICAgICA7Ci0gICAgfQotICAgIC8qIGNvbnN1bWUgZmlsZW5hbWUsIGlmIHByZXNlbnQgKi8KLSAgICBpZiAoKGZsYWdzICYgRk5BTUUpICE9IDApIHsKLSAgICAgICAgZG8gewotICAgICAgICAgICAgaWMgPSBnZXRjKGZwKTsKLSAgICAgICAgfSB3aGlsZSAoaWMgIT0gMCAmJiBpYyAhPSBFT0YpOwotICAgIH0KLSAgICAvKiBjb25zdW1lIGNvbW1lbnQsIGlmIHByZXNlbnQgKi8KLSAgICBpZiAoKGZsYWdzICYgRkNPTU1FTlQpICE9IDApIHsKLSAgICAgICAgZG8gewotICAgICAgICAgICAgaWMgPSBnZXRjKGZwKTsKLSAgICAgICAgfSB3aGlsZSAoaWMgIT0gMCAmJiBpYyAhPSBFT0YpOwotICAgIH0KLSAgICAvKiBjb25zdW1lIDE2LWJpdCBoZWFkZXIgQ1JDLCBpZiBwcmVzZW50ICovCi0gICAgaWYgKChmbGFncyAmIEZIQ1JDKSAhPSAwKSB7Ci0gICAgICAgICh2b2lkKSBnZXRjKGZwKTsKLSAgICAgICAgKHZvaWQpIGdldGMoZnApOwotICAgIH0KLQotICAgIGlmIChmZW9mKGZwKSB8fCBmZXJyb3IoZnApKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAvKiBzZWVrIHRvIHRoZSBlbmQ7IENSQyBhbmQgbGVuZ3RoIGFyZSBpbiB0aGUgbGFzdCA4IGJ5dGVzICovCi0gICAgbG9uZyBjdXJQb3NuID0gZnRlbGwoZnApOwotICAgIHVuc2lnbmVkIGNoYXIgYnVmWzhdOwotICAgIGZzZWVrKGZwLCAtOCwgU0VFS19FTkQpOwotICAgICpwQ29tcHJlc3NlZExlbiA9IGZ0ZWxsKGZwKSAtIGN1clBvc247Ci0KLSAgICBpZiAoZnJlYWQoYnVmLCAxLCA4LCBmcCkgIT0gOCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIC8qIHNlZWsgYmFjayB0byBzdGFydCBvZiBjb21wcmVzc2VkIGRhdGEgKi8KLSAgICBmc2VlayhmcCwgY3VyUG9zbiwgU0VFS19TRVQpOwotCi0gICAgKnBDb21wcmVzc2lvbk1ldGhvZCA9IG1ldGhvZDsKLSAgICAqcENSQzMyID0gWmlwRmlsZVJPOjpnZXQ0TEUoJmJ1ZlswXSk7Ci0gICAgKnBVbmNvbXByZXNzZWRMZW4gPSBaaXBGaWxlUk86OmdldDRMRSgmYnVmWzRdKTsKLQotICAgIHJldHVybiB0cnVlOwotfQpkaWZmIC0tZ2l0IGEvbGlicy9hbmRyb2lkZncvbWlzYy5jcHAgYi9saWJzL2FuZHJvaWRmdy9taXNjLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjk2ODZlZi4uMDAwMDAwMAotLS0gYS9saWJzL2FuZHJvaWRmdy9taXNjLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIExPR19UQUcgIm1pc2MiCi0KLS8vCi0vLyBNaXNjZWxsYW5lb3VzIHV0aWxpdHkgZnVuY3Rpb25zLgotLy8KLSNpbmNsdWRlIDxhbmRyb2lkZncvbWlzYy5oPgotCi0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwotCi1uYW1lc3BhY2UgYW5kcm9pZCB7Ci0KLS8qCi0gKiBHZXQgYSBmaWxlJ3MgdHlwZS4KLSAqLwotRmlsZVR5cGUgZ2V0RmlsZVR5cGUoY29uc3QgY2hhciogZmlsZU5hbWUpCi17Ci0gICAgc3RydWN0IHN0YXQgc2I7Ci0KLSAgICBpZiAoc3RhdChmaWxlTmFtZSwgJnNiKSA8IDApIHsKLSAgICAgICAgaWYgKGVycm5vID09IEVOT0VOVCB8fCBlcnJubyA9PSBFTk9URElSKQotICAgICAgICAgICAgcmV0dXJuIGtGaWxlVHlwZU5vbmV4aXN0ZW50OwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZ2V0RmlsZVR5cGUgZ290IGVycm5vPSVkIG9uICclcydcbiIsCi0gICAgICAgICAgICAgICAgZXJybm8sIGZpbGVOYW1lKTsKLSAgICAgICAgICAgIHJldHVybiBrRmlsZVR5cGVVbmtub3duOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKFNfSVNSRUcoc2Iuc3RfbW9kZSkpCi0gICAgICAgICAgICByZXR1cm4ga0ZpbGVUeXBlUmVndWxhcjsKLSAgICAgICAgZWxzZSBpZiAoU19JU0RJUihzYi5zdF9tb2RlKSkKLSAgICAgICAgICAgIHJldHVybiBrRmlsZVR5cGVEaXJlY3Rvcnk7Ci0gICAgICAgIGVsc2UgaWYgKFNfSVNDSFIoc2Iuc3RfbW9kZSkpCi0gICAgICAgICAgICByZXR1cm4ga0ZpbGVUeXBlQ2hhckRldjsKLSAgICAgICAgZWxzZSBpZiAoU19JU0JMSyhzYi5zdF9tb2RlKSkKLSAgICAgICAgICAgIHJldHVybiBrRmlsZVR5cGVCbG9ja0RldjsKLSAgICAgICAgZWxzZSBpZiAoU19JU0ZJRk8oc2Iuc3RfbW9kZSkpCi0gICAgICAgICAgICByZXR1cm4ga0ZpbGVUeXBlRmlmbzsKLSNpZmRlZiBIQVZFX1NZTUxJTktTCi0gICAgICAgIGVsc2UgaWYgKFNfSVNMTksoc2Iuc3RfbW9kZSkpCi0gICAgICAgICAgICByZXR1cm4ga0ZpbGVUeXBlU3ltbGluazsKLSAgICAgICAgZWxzZSBpZiAoU19JU1NPQ0soc2Iuc3RfbW9kZSkpCi0gICAgICAgICAgICByZXR1cm4ga0ZpbGVUeXBlU29ja2V0OwotI2VuZGlmCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiBrRmlsZVR5cGVVbmtub3duOwotICAgIH0KLX0KLQotLyoKLSAqIEdldCBhIGZpbGUncyBtb2RpZmljYXRpb24gZGF0ZS4KLSAqLwotdGltZV90IGdldEZpbGVNb2REYXRlKGNvbnN0IGNoYXIqIGZpbGVOYW1lKQotewotICAgIHN0cnVjdCBzdGF0IHNiOwotCi0gICAgaWYgKHN0YXQoZmlsZU5hbWUsICZzYikgPCAwKQotICAgICAgICByZXR1cm4gKHRpbWVfdCkgLTE7Ci0KLSAgICByZXR1cm4gc2Iuc3RfbXRpbWU7Ci19Ci0KLX07IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9saWJzL2FuZHJvaWRmdy90ZXN0cy9BbmRyb2lkLm1rIGIvbGlicy9hbmRyb2lkZncvdGVzdHMvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDUyMjIxMi4uMDAwMDAwMAotLS0gYS9saWJzL2FuZHJvaWRmdy90ZXN0cy9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotIyBCdWlsZCB0aGUgdW5pdCB0ZXN0cy4KLUxPQ0FMX1BBVEg6PSAkKGNhbGwgbXktZGlyKQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi0KLSMgQnVpbGQgdGhlIHVuaXQgdGVzdHMuCi10ZXN0X3NyY19maWxlcyA6PSBcCi0gICAgT2JiRmlsZV90ZXN0LmNwcCBcCi0gICAgWmlwRmlsZVJPX3Rlc3QuY3BwCi0KLXNoYXJlZF9saWJyYXJpZXMgOj0gXAotICAgIGxpYmFuZHJvaWRmdyBcCi0gICAgbGliY3V0aWxzIFwKLSAgICBsaWJ1dGlscyBcCi0gICAgbGlidWkgXAotICAgIGxpYnN0bHBvcnQKLQotc3RhdGljX2xpYnJhcmllcyA6PSBcCi0gICAgbGliZ3Rlc3QgXAotICAgIGxpYmd0ZXN0X21haW4KLQotJChmb3JlYWNoIGZpbGUsJCh0ZXN0X3NyY19maWxlcyksIFwKLSAgICAkKGV2YWwgaW5jbHVkZSAkKENMRUFSX1ZBUlMpKSBcCi0gICAgJChldmFsIExPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gJChzaGFyZWRfbGlicmFyaWVzKSkgXAotICAgICQoZXZhbCBMT0NBTF9TVEFUSUNfTElCUkFSSUVTIDo9ICQoc3RhdGljX2xpYnJhcmllcykpIFwKLSAgICAkKGV2YWwgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoZmlsZSkpIFwKLSAgICAkKGV2YWwgTE9DQUxfTU9EVUxFIDo9ICQobm90ZGlyICQoZmlsZTolLmNwcD0lKSkpIFwKLSAgICAkKGV2YWwgaW5jbHVkZSAkKEJVSUxEX05BVElWRV9URVNUKSkgXAotKQotCi0jIEJ1aWxkIHRoZSBtYW51YWwgdGVzdCBwcm9ncmFtcy4KLWluY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsICQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9saWJzL2FuZHJvaWRmdy90ZXN0cy9PYmJGaWxlX3Rlc3QuY3BwIGIvbGlicy9hbmRyb2lkZncvdGVzdHMvT2JiRmlsZV90ZXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmM5ZjY1MC4uMDAwMDAwMAotLS0gYS9saWJzL2FuZHJvaWRmdy90ZXN0cy9PYmJGaWxlX3Rlc3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jZGVmaW5lIExPR19UQUcgIk9iYkZpbGVfdGVzdCIKLSNpbmNsdWRlIDxhbmRyb2lkZncvT2JiRmlsZS5oPgotI2luY2x1ZGUgPHV0aWxzL0xvZy5oPgotI2luY2x1ZGUgPHV0aWxzL1JlZkJhc2UuaD4KLSNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+Ci0KLSNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgotCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotCi1uYW1lc3BhY2UgYW5kcm9pZCB7Ci0KLSNkZWZpbmUgVEVTVF9GSUxFTkFNRSAiL3Rlc3Qub2JiIgotCi1jbGFzcyBPYmJGaWxlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKLXByb3RlY3RlZDoKLSAgICBzcDxPYmJGaWxlPiBtT2JiRmlsZTsKLSAgICBjaGFyKiBtRXh0ZXJuYWxTdG9yYWdlOwotICAgIGNoYXIqIG1GaWxlTmFtZTsKLQotICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICAgICAgbU9iYkZpbGUgPSBuZXcgT2JiRmlsZSgpOwotICAgICAgICBtRXh0ZXJuYWxTdG9yYWdlID0gZ2V0ZW52KCJFWFRFUk5BTF9TVE9SQUdFIik7Ci0KLSAgICAgICAgY29uc3QgaW50IHRvdGFsTGVuID0gc3RybGVuKG1FeHRlcm5hbFN0b3JhZ2UpICsgc3RybGVuKFRFU1RfRklMRU5BTUUpICsgMTsKLSAgICAgICAgbUZpbGVOYW1lID0gbmV3IGNoYXJbdG90YWxMZW5dOwotICAgICAgICBzbnByaW50ZihtRmlsZU5hbWUsIHRvdGFsTGVuLCAiJXMlcyIsIG1FeHRlcm5hbFN0b3JhZ2UsIFRFU1RfRklMRU5BTUUpOwotCi0gICAgICAgIGludCBmZCA9IDo6b3BlbihtRmlsZU5hbWUsIE9fQ1JFQVQgfCBPX1RSVU5DLCBTX0lSVVNSIHwgU19JV1VTUik7Ci0gICAgICAgIGlmIChmZCA8IDApIHsKLSAgICAgICAgICAgIEZBSUwoKSA8PCAiQ291bGRuJ3QgY3JlYXRlICIgPDwgbUZpbGVOYW1lIDw8ICIgZm9yIHRlc3RzIjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHsKLSAgICB9Ci19OwotCi1URVNUX0YoT2JiRmlsZVRlc3QsIFJlYWRGYWlsdXJlKSB7Ci0gICAgRVhQRUNUX0ZBTFNFKG1PYmJGaWxlLT5yZWFkRnJvbSgtMSkpCi0gICAgICAgICAgICA8PCAiTm8gZmFpbHVyZSBvbiBpbnZhbGlkIGZpbGUgZGVzY3JpcHRvciI7Ci19Ci0KLVRFU1RfRihPYmJGaWxlVGVzdCwgV3JpdGVUaGVuUmVhZCkgewotICAgIGNvbnN0IGNoYXIqIHBhY2thZ2VOYW1lID0gImNvbS5leGFtcGxlLm9iYmZpbGUiOwotICAgIGNvbnN0IGludDMyX3QgdmVyc2lvbk51bSA9IDE7Ci0KLSAgICBtT2JiRmlsZS0+c2V0UGFja2FnZU5hbWUoU3RyaW5nOChwYWNrYWdlTmFtZSkpOwotICAgIG1PYmJGaWxlLT5zZXRWZXJzaW9uKHZlcnNpb25OdW0pOwotI2RlZmluZSBTQUxUX1NJWkUgOAotICAgIHVuc2lnbmVkIGNoYXIgc2FsdFtTQUxUX1NJWkVdID0gezB4MDEsIDB4MTAsIDB4NTUsIDB4QUEsIDB4RkYsIDB4MDAsIDB4NUEsIDB4QTV9OwotICAgIEVYUEVDVF9UUlVFKG1PYmJGaWxlLT5zZXRTYWx0KHNhbHQsIFNBTFRfU0laRSkpCi0gICAgICAgICAgICA8PCAiU2FsdCBzaG91bGQgYmUgc3VjY2Vzc2Z1bGx5IHNldCI7Ci0KLSAgICBFWFBFQ1RfVFJVRShtT2JiRmlsZS0+d3JpdGVUbyhtRmlsZU5hbWUpKQotICAgICAgICAgICAgPDwgImNvdWxkbid0IHdyaXRlIHRvIGZha2UgLm9iYiBmaWxlIjsKLQotICAgIG1PYmJGaWxlID0gbmV3IE9iYkZpbGUoKTsKLQotICAgIEVYUEVDVF9UUlVFKG1PYmJGaWxlLT5yZWFkRnJvbShtRmlsZU5hbWUpKQotICAgICAgICAgICAgPDwgImNvdWxkbid0IHJlYWQgZnJvbSBmYWtlIC5vYmIgZmlsZSI7Ci0KLSAgICBFWFBFQ1RfRVEodmVyc2lvbk51bSwgbU9iYkZpbGUtPmdldFZlcnNpb24oKSkKLSAgICAgICAgICAgIDw8ICJ2ZXJzaW9uIGRpZG4ndCBjb21lIG91dCB0aGUgc2FtZSBhcyBpdCB3ZW50IGluIjsKLSAgICBjb25zdCBjaGFyKiBjdXJyZW50UGFja2FnZU5hbWUgPSBtT2JiRmlsZS0+Z2V0UGFja2FnZU5hbWUoKS5zdHJpbmcoKTsKLSAgICBFWFBFQ1RfU1RSRVEocGFja2FnZU5hbWUsIGN1cnJlbnRQYWNrYWdlTmFtZSkKLSAgICAgICAgICAgIDw8ICJwYWNrYWdlIG5hbWUgZGlkbid0IGNvbWUgb3V0IHRoZSBzYW1lIGFzIGl0IHdlbnQgaW4iOwotCi0gICAgc2l6ZV90IHNhbHRMZW47Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciogbmV3U2FsdCA9IG1PYmJGaWxlLT5nZXRTYWx0KCZzYWx0TGVuKTsKLQotICAgIEVYUEVDVF9FUShzaXplb2Yoc2FsdCksIHNhbHRMZW4pCi0gICAgICAgICAgICA8PCAic2FsdCBzaXplcyB3ZXJlIG5vdCB0aGUgc2FtZSI7Ci0KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemVvZihzYWx0KTsgaSsrKSB7Ci0gICAgICAgIEVYUEVDVF9FUShzYWx0W2ldLCBuZXdTYWx0W2ldKQotICAgICAgICAgICAgICAgIDw8ICJzYWx0IGNoYXJhY3RlciAiIDw8IGkgPDwgIiBzaG91bGQgYmUgZXF1YWwiOwotICAgIH0KLSAgICBFWFBFQ1RfVFJVRShtZW1jbXAobmV3U2FsdCwgc2FsdCwgc2l6ZW9mKHNhbHQpKSA9PSAwKQotICAgICAgICAgICAgPDwgInNhbHRzIHNob3VsZCBiZSB0aGUgc2FtZSI7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL2xpYnMvYW5kcm9pZGZ3L3Rlc3RzL1ppcEZpbGVST190ZXN0LmNwcCBiL2xpYnMvYW5kcm9pZGZ3L3Rlc3RzL1ppcEZpbGVST190ZXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2I5YzcyMS4uMDAwMDAwMAotLS0gYS9saWJzL2FuZHJvaWRmdy90ZXN0cy9aaXBGaWxlUk9fdGVzdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotI2RlZmluZSBMT0dfVEFHICJaaXBGaWxlUk9fdGVzdCIKLSNpbmNsdWRlIDx1dGlscy9Mb2cuaD4KLSNpbmNsdWRlIDxhbmRyb2lkZncvWmlwRmlsZVJPLmg+Ci0KLSNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgotCi0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotbmFtZXNwYWNlIGFuZHJvaWQgewotCi1jbGFzcyBaaXBGaWxlUk9UZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7Ci0gICAgfQotfTsKLQotVEVTVF9GKFppcEZpbGVST1Rlc3QsIFppcFRpbWVDb252ZXJ0U3VjY2VzcykgewotICAgIHN0cnVjdCB0bSB0OwotCi0gICAgLy8gMjAxMS0wNi0yOSAxNDo0MDo0MAotICAgIGxvbmcgd2hlbiA9IDB4M0VERDc1MTQ7Ci0KLSAgICBaaXBGaWxlUk86OnppcFRpbWVUb1RpbWVzcGVjKHdoZW4sICZ0KTsKLQotICAgIEVYUEVDVF9FUSgyMDExLCB0LnRtX3llYXIgKyAxOTAwKQotICAgICAgICAgICAgPDwgIlllYXIgd2FzIGltcHJvcGVybHkgY29udmVydGVkLiI7Ci0KLSAgICBFWFBFQ1RfRVEoNiwgdC50bV9tb24pCi0gICAgICAgICAgICA8PCAiTW9udGggd2FzIGltcHJvcGVybHkgY29udmVydGVkLiI7Ci0KLSAgICBFWFBFQ1RfRVEoMjksIHQudG1fbWRheSkKLSAgICAgICAgICAgIDw8ICJEYXkgd2FzIGltcHJvcGVybHkgY29udmVydGVkLiI7Ci0KLSAgICBFWFBFQ1RfRVEoMTQsIHQudG1faG91cikKLSAgICAgICAgICAgIDw8ICJIb3VyIHdhcyBpbXByb3Blcmx5IGNvbnZlcnRlZC4iOwotCi0gICAgRVhQRUNUX0VRKDQwLCB0LnRtX21pbikKLSAgICAgICAgICAgIDw8ICJNaW51dGUgd2FzIGltcHJvcGVybHkgY29udmVydGVkLiI7Ci0KLSAgICBFWFBFQ1RfRVEoNDAsIHQudG1fc2VjKQotICAgICAgICAgICAgPDwgIlNlY29uZCB3YXMgaW1wcm9wZXJseSBjb252ZXJ0ZWQuIjsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvbGlicy9od3VpL0FuZHJvaWQubWsgYi9saWJzL2h3dWkvQW5kcm9pZC5tawppbmRleCA0MTFjMTMzLi5jZTgzNjRlIDEwMDY0NAotLS0gYS9saWJzL2h3dWkvQW5kcm9pZC5taworKysgYi9saWJzL2h3dWkvQW5kcm9pZC5tawpAQCAtNTgsNiArNTgsNyBAQAogCQlleHRlcm5hbC9za2lhL2luY2x1ZGUvdXRpbHMKIAogCUxPQ0FMX0NGTEFHUyArPSAtRFVTRV9PUEVOR0xfUkVOREVSRVIgLURFR0xfRUdMRVhUX1BST1RPVFlQRVMgLURHTF9HTEVYVF9QUk9UT1RZUEVTCisJTE9DQUxfQ0ZMQUdTICs9IC1Xbm8tdW51c2VkLXBhcmFtZXRlcgogCUxPQ0FMX01PRFVMRV9DTEFTUyA6PSBTSEFSRURfTElCUkFSSUVTCiAJTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBsaWJsb2cgbGliY3V0aWxzIGxpYnV0aWxzIGxpYkVHTCBsaWJHTEVTdjIgbGlic2tpYSBsaWJ1aQogCUxPQ0FMX01PRFVMRSA6PSBsaWJod3VpCmRpZmYgLS1naXQgYS9saWJzL2h3dWkvQ2FjaGVzLmggYi9saWJzL2h3dWkvQ2FjaGVzLmgKaW5kZXggMjgyYWVlOS4uZjhmMjI4NCAxMDA2NDQKLS0tIGEvbGlicy9od3VpL0NhY2hlcy5oCisrKyBiL2xpYnMvaHd1aS9DYWNoZXMuaApAQCAtNjIsNyArNjIsNyBAQAogc3RhdGljIGNvbnN0IHVpbnQzMl90IGdNYXhOdW1iZXJPZlF1YWRzID0gMjA0ODsKIAogLy8gR2VuZXJhdGVzIHNpbXBsZSBhbmQgdGV4dHVyZWQgdmVydGljZXMKLSNkZWZpbmUgRlYoeCwgeSwgdSwgdikgeyB7IHgsIHkgfSwgeyB1LCB2IH0gfQorI2RlZmluZSBGVih4LCB5LCB1LCB2KSB7IHgsIHksIHUsIHYgfQogCiAvLyBUaGlzIGFycmF5IGlzIG5ldmVyIHVzZWQgZGlyZWN0bHkgYnV0IHVzZWQgYXMgYSBtZW1jcHkgc291cmNlIGluIHRoZQogLy8gT3BlbkdMUmVuZGVyZXIgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL2xpYnMvaHd1aS9EaXNwbGF5TGlzdE9wLmggYi9saWJzL2h3dWkvRGlzcGxheUxpc3RPcC5oCmluZGV4IDMyNjgwNWEuLjU4MTY4NzIgMTAwNjQ0Ci0tLSBhL2xpYnMvaHd1aS9EaXNwbGF5TGlzdE9wLmgKKysrIGIvbGlicy9od3VpL0Rpc3BsYXlMaXN0T3AuaApAQCAtMTAyOCw4ICsxMDI4LDggQEAKICAgICAgICAgICAgIFRleHR1cmVWZXJ0ZXgqIG9wVmVydGljZXMgPSBvcE1lc2gtPnZlcnRpY2VzOwogICAgICAgICAgICAgZm9yICh1aW50MzJfdCBqID0gMDsgaiA8IHZlcnRleENvdW50OyBqKyssIG9wVmVydGljZXMrKykgewogICAgICAgICAgICAgICAgIFRleHR1cmVWZXJ0ZXg6OnNldCh2ZXJ0ZXgrKywKLSAgICAgICAgICAgICAgICAgICAgICAgIG9wVmVydGljZXMtPnBvc2l0aW9uWzBdICsgdHgsIG9wVmVydGljZXMtPnBvc2l0aW9uWzFdICsgdHksCi0gICAgICAgICAgICAgICAgICAgICAgICBvcFZlcnRpY2VzLT50ZXh0dXJlWzBdLCBvcFZlcnRpY2VzLT50ZXh0dXJlWzFdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wVmVydGljZXMtPnggKyB0eCwgb3BWZXJ0aWNlcy0+eSArIHR5LAorICAgICAgICAgICAgICAgICAgICAgICAgb3BWZXJ0aWNlcy0+dSwgb3BWZXJ0aWNlcy0+dik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIERpcnR5IHRoZSBjdXJyZW50IGxheWVyIGlmIHBvc3NpYmxlLiBXaGVuIHRoZSA5LXBhdGNoIGRvZXMgbm90CmRpZmYgLS1naXQgYS9saWJzL2h3dWkvRm9udFJlbmRlcmVyLmNwcCBiL2xpYnMvaHd1aS9Gb250UmVuZGVyZXIuY3BwCmluZGV4IDAwZTc4NzAuLjY3ODM1YTQ3IDEwMDY0NAotLS0gYS9saWJzL2h3dWkvRm9udFJlbmRlcmVyLmNwcAorKysgYi9saWJzL2h3dWkvRm9udFJlbmRlcmVyLmNwcApAQCAtNTE0LDggKzUxNCw4IEBACiAgICAgICAgICAgICB0ZXh0dXJlLT5zZXRMaW5lYXJGaWx0ZXJpbmcobUxpbmVhckZpbHRlcmluZywgZmFsc2UpOwogCiAgICAgICAgICAgICBUZXh0dXJlVmVydGV4KiBtZXNoID0gdGV4dHVyZS0+bWVzaCgpOwotICAgICAgICAgICAgY2FjaGVzLmJpbmRQb3NpdGlvblZlcnRleFBvaW50ZXIoZm9yY2UsICZtZXNoWzBdLnBvc2l0aW9uWzBdKTsKLSAgICAgICAgICAgIGNhY2hlcy5iaW5kVGV4Q29vcmRzVmVydGV4UG9pbnRlcihmb3JjZSwgJm1lc2hbMF0udGV4dHVyZVswXSk7CisgICAgICAgICAgICBjYWNoZXMuYmluZFBvc2l0aW9uVmVydGV4UG9pbnRlcihmb3JjZSwgJm1lc2hbMF0ueCk7CisgICAgICAgICAgICBjYWNoZXMuYmluZFRleENvb3Jkc1ZlcnRleFBvaW50ZXIoZm9yY2UsICZtZXNoWzBdLnUpOwogICAgICAgICAgICAgZm9yY2UgPSBmYWxzZTsKIAogICAgICAgICAgICAgZ2xEcmF3RWxlbWVudHMoR0xfVFJJQU5HTEVTLCB0ZXh0dXJlLT5tZXNoRWxlbWVudENvdW50KCksCmRpZmYgLS1naXQgYS9saWJzL2h3dWkvR3JhZGllbnRDYWNoZS5jcHAgYi9saWJzL2h3dWkvR3JhZGllbnRDYWNoZS5jcHAKaW5kZXggMDkxNjk0Mi4uZmZkMWU4YyAxMDA2NDQKLS0tIGEvbGlicy9od3VpL0dyYWRpZW50Q2FjaGUuY3BwCisrKyBiL2xpYnMvaHd1aS9HcmFkaWVudENhY2hlLmNwcApAQCAtMTE1LDcgKzExNSw3IEBACiAvLyBDYWxsYmFja3MKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAotdm9pZCBHcmFkaWVudENhY2hlOjpvcGVyYXRvcigpKEdyYWRpZW50Q2FjaGVFbnRyeSYgc2hhZGVyLCBUZXh0dXJlKiYgdGV4dHVyZSkgewordm9pZCBHcmFkaWVudENhY2hlOjpvcGVyYXRvcigpKEdyYWRpZW50Q2FjaGVFbnRyeSYsIFRleHR1cmUqJiB0ZXh0dXJlKSB7CiAgICAgaWYgKHRleHR1cmUpIHsKICAgICAgICAgY29uc3QgdWludDMyX3Qgc2l6ZSA9IHRleHR1cmUtPndpZHRoICogdGV4dHVyZS0+aGVpZ2h0ICogYnl0ZXNQZXJQaXhlbCgpOwogICAgICAgICBtU2l6ZSAtPSBzaXplOwpAQCAtMTg1LDcgKzE4NSw3IEBACiAgICAgICAgIG1DYWNoZS5yZW1vdmVPbGRlc3QoKTsKICAgICB9CiAKLSAgICBnZW5lcmF0ZVRleHR1cmUoY29sb3JzLCBwb3NpdGlvbnMsIGNvdW50LCB0ZXh0dXJlKTsKKyAgICBnZW5lcmF0ZVRleHR1cmUoY29sb3JzLCBwb3NpdGlvbnMsIHRleHR1cmUpOwogCiAgICAgbVNpemUgKz0gc2l6ZTsKICAgICBtQ2FjaGUucHV0KGdyYWRpZW50LCB0ZXh0dXJlKTsKQEAgLTIzOCw4ICsyMzgsNyBAQAogICAgIGRzdCArPSA0ICogc2l6ZW9mKGZsb2F0KTsKIH0KIAotdm9pZCBHcmFkaWVudENhY2hlOjpnZW5lcmF0ZVRleHR1cmUodWludDMyX3QqIGNvbG9ycywgZmxvYXQqIHBvc2l0aW9ucywKLSAgICAgICAgaW50IGNvdW50LCBUZXh0dXJlKiB0ZXh0dXJlKSB7Cit2b2lkIEdyYWRpZW50Q2FjaGU6OmdlbmVyYXRlVGV4dHVyZSh1aW50MzJfdCogY29sb3JzLCBmbG9hdCogcG9zaXRpb25zLCBUZXh0dXJlKiB0ZXh0dXJlKSB7CiAgICAgY29uc3QgdWludDMyX3Qgd2lkdGggPSB0ZXh0dXJlLT53aWR0aDsKICAgICBjb25zdCBHTHNpemVpIHJvd0J5dGVzID0gd2lkdGggKiBieXRlc1BlclBpeGVsKCk7CiAgICAgdWludDhfdCBwaXhlbHNbcm93Qnl0ZXMgKiB0ZXh0dXJlLT5oZWlnaHRdOwpkaWZmIC0tZ2l0IGEvbGlicy9od3VpL0dyYWRpZW50Q2FjaGUuaCBiL2xpYnMvaHd1aS9HcmFkaWVudENhY2hlLmgKaW5kZXggNDM5MzRkOS4uNmE3ODNiMSAxMDA2NDQKLS0tIGEvbGlicy9od3VpL0dyYWRpZW50Q2FjaGUuaAorKysgYi9saWJzL2h3dWkvR3JhZGllbnRDYWNoZS5oCkBAIC0xNTEsNyArMTUxLDcgQEAKICAgICBUZXh0dXJlKiBhZGRMaW5lYXJHcmFkaWVudChHcmFkaWVudENhY2hlRW50cnkmIGdyYWRpZW50LAogICAgICAgICAgICAgdWludDMyX3QqIGNvbG9ycywgZmxvYXQqIHBvc2l0aW9ucywgaW50IGNvdW50KTsKIAotICAgIHZvaWQgZ2VuZXJhdGVUZXh0dXJlKHVpbnQzMl90KiBjb2xvcnMsIGZsb2F0KiBwb3NpdGlvbnMsIGludCBjb3VudCwgVGV4dHVyZSogdGV4dHVyZSk7CisgICAgdm9pZCBnZW5lcmF0ZVRleHR1cmUodWludDMyX3QqIGNvbG9ycywgZmxvYXQqIHBvc2l0aW9ucywgVGV4dHVyZSogdGV4dHVyZSk7CiAKICAgICBzdHJ1Y3QgR3JhZGllbnRJbmZvIHsKICAgICAgICAgdWludDMyX3Qgd2lkdGg7CmRpZmYgLS1naXQgYS9saWJzL2h3dWkvT3BlbkdMUmVuZGVyZXIuY3BwIGIvbGlicy9od3VpL09wZW5HTFJlbmRlcmVyLmNwcAppbmRleCA0ZDc2YmVkLi5hYWJmYmQwIDEwMDY0NAotLS0gYS9saWJzL2h3dWkvT3BlbkdMUmVuZGVyZXIuY3BwCisrKyBiL2xpYnMvaHd1aS9PcGVuR0xSZW5kZXJlci5jcHAKQEAgLTc3OSwxMSArNzc5LDEwIEBACiAKIGludCBPcGVuR0xSZW5kZXJlcjo6c2F2ZUxheWVyKGZsb2F0IGxlZnQsIGZsb2F0IHRvcCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwKICAgICAgICAgaW50IGFscGhhLCBTa1hmZXJtb2RlOjpNb2RlIG1vZGUsIGludCBmbGFncykgewotICAgIGNvbnN0IEdMdWludCBwcmV2aW91c0ZibyA9IG1TbmFwc2hvdC0+ZmJvOwogICAgIGNvbnN0IGludCBjb3VudCA9IHNhdmVTbmFwc2hvdChmbGFncyk7CiAKICAgICBpZiAoIW1TbmFwc2hvdC0+aXNJZ25vcmVkKCkpIHsKLSAgICAgICAgY3JlYXRlTGF5ZXIobGVmdCwgdG9wLCByaWdodCwgYm90dG9tLCBhbHBoYSwgbW9kZSwgZmxhZ3MsIHByZXZpb3VzRmJvKTsKKyAgICAgICAgY3JlYXRlTGF5ZXIobGVmdCwgdG9wLCByaWdodCwgYm90dG9tLCBhbHBoYSwgbW9kZSwgZmxhZ3MpOwogICAgIH0KIAogICAgIHJldHVybiBjb3VudDsKQEAgLTgzNSw3ICs4MzQsNiBAQAogCiBpbnQgT3BlbkdMUmVuZGVyZXI6OnNhdmVMYXllckRlZmVycmVkKGZsb2F0IGxlZnQsIGZsb2F0IHRvcCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwKICAgICAgICAgaW50IGFscGhhLCBTa1hmZXJtb2RlOjpNb2RlIG1vZGUsIGludCBmbGFncykgewotICAgIGNvbnN0IEdMdWludCBwcmV2aW91c0ZibyA9IG1TbmFwc2hvdC0+ZmJvOwogICAgIGNvbnN0IGludCBjb3VudCA9IHNhdmVTbmFwc2hvdChmbGFncyk7CiAKICAgICBpZiAoIW1TbmFwc2hvdC0+aXNJZ25vcmVkKCkgJiYgKGZsYWdzICYgU2tDYW52YXM6OmtDbGlwVG9MYXllcl9TYXZlRmxhZykpIHsKQEAgLTkxMSw3ICs5MDksNyBAQAogICogICAgIHNvbWV0aGluZyBhY3R1YWxseSBnZXRzIGRyYXduIGFyZSB0aGUgbGF5ZXJzIHJlZ2lvbnMgY2xlYXJlZC4KICAqLwogYm9vbCBPcGVuR0xSZW5kZXJlcjo6Y3JlYXRlTGF5ZXIoZmxvYXQgbGVmdCwgZmxvYXQgdG9wLCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLAotICAgICAgICBpbnQgYWxwaGEsIFNrWGZlcm1vZGU6Ok1vZGUgbW9kZSwgaW50IGZsYWdzLCBHTHVpbnQgcHJldmlvdXNGYm8pIHsKKyAgICAgICAgaW50IGFscGhhLCBTa1hmZXJtb2RlOjpNb2RlIG1vZGUsIGludCBmbGFncykgewogICAgIExBWUVSX0xPR0QoIlJlcXVlc3RpbmcgbGF5ZXIgJS4yZnglLjJmIiwgcmlnaHQgLSBsZWZ0LCBib3R0b20gLSB0b3ApOwogICAgIExBWUVSX0xPR0QoIkxheWVyIGNhY2hlIHNpemUgPSAlZCIsIG1DYWNoZXMubGF5ZXJDYWNoZS5nZXRTaXplKCkpOwogCkBAIC05NDgsNyArOTQ2LDcgQEAKIAogICAgIHN0YXJ0TWFyaygiU2F2ZUxheWVyIik7CiAgICAgaWYgKGZib0xheWVyKSB7Ci0gICAgICAgIHJldHVybiBjcmVhdGVGYm9MYXllcihsYXllciwgYm91bmRzLCBjbGlwLCBwcmV2aW91c0Zibyk7CisgICAgICAgIHJldHVybiBjcmVhdGVGYm9MYXllcihsYXllciwgYm91bmRzLCBjbGlwKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBDb3B5IHRoZSBmcmFtZWJ1ZmZlciBpbnRvIHRoZSBsYXllcgogICAgICAgICBsYXllci0+YmluZFRleHR1cmUoKTsKQEAgLTk3NCw3ICs5NzIsNyBAQAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE9wZW5HTFJlbmRlcmVyOjpjcmVhdGVGYm9MYXllcihMYXllciogbGF5ZXIsIFJlY3QmIGJvdW5kcywgUmVjdCYgY2xpcCwgR0x1aW50IHByZXZpb3VzRmJvKSB7Citib29sIE9wZW5HTFJlbmRlcmVyOjpjcmVhdGVGYm9MYXllcihMYXllciogbGF5ZXIsIFJlY3QmIGJvdW5kcywgUmVjdCYgY2xpcCkgewogICAgIGxheWVyLT5jbGlwUmVjdC5zZXQoY2xpcCk7CiAgICAgbGF5ZXItPnNldEZibyhtQ2FjaGVzLmZib0NhY2hlLmdldCgpKTsKIApAQCAtMTEyOCw3ICsxMTI2LDcgQEAKICAgICAgICAgc2V0dXBEcmF3TW9kZWxWaWV3KHJlY3QubGVmdCwgcmVjdC50b3AsIHJlY3QucmlnaHQsIHJlY3QuYm90dG9tKTsKICAgICB9CiAgICAgc2V0dXBEcmF3VGV4dHVyZVRyYW5zZm9ybVVuaWZvcm1zKGxheWVyLT5nZXRUZXhUcmFuc2Zvcm0oKSk7Ci0gICAgc2V0dXBEcmF3TWVzaCgmbU1lc2hWZXJ0aWNlc1swXS5wb3NpdGlvblswXSwgJm1NZXNoVmVydGljZXNbMF0udGV4dHVyZVswXSk7CisgICAgc2V0dXBEcmF3TWVzaCgmbU1lc2hWZXJ0aWNlc1swXS54LCAmbU1lc2hWZXJ0aWNlc1swXS51KTsKIAogICAgIGdsRHJhd0FycmF5cyhHTF9UUklBTkdMRV9TVFJJUCwgMCwgZ01lc2hDb3VudCk7CiB9CkBAIC0xMTYxLDcgKzExNTksNyBAQAogICAgICAgICBib29sIGJsZW5kID0gbGF5ZXItPmlzQmxlbmQoKSB8fCBhbHBoYSA8IDEuMGY7CiAgICAgICAgIGRyYXdUZXh0dXJlTWVzaCh4LCB5LCB4ICsgcmVjdC5nZXRXaWR0aCgpLCB5ICsgcmVjdC5nZXRIZWlnaHQoKSwKICAgICAgICAgICAgICAgICBsYXllci0+Z2V0VGV4dHVyZSgpLCBhbHBoYSwgbGF5ZXItPmdldE1vZGUoKSwgYmxlbmQsCi0gICAgICAgICAgICAgICAgJm1NZXNoVmVydGljZXNbMF0ucG9zaXRpb25bMF0sICZtTWVzaFZlcnRpY2VzWzBdLnRleHR1cmVbMF0sCisgICAgICAgICAgICAgICAgJm1NZXNoVmVydGljZXNbMF0ueCwgJm1NZXNoVmVydGljZXNbMF0udSwKICAgICAgICAgICAgICAgICBHTF9UUklBTkdMRV9TVFJJUCwgZ01lc2hDb3VudCwgc3dhcCwgc3dhcCB8fCBzaW1wbGVUcmFuc2Zvcm0pOwogCiAgICAgICAgIHJlc2V0RHJhd1RleHR1cmVUZXhDb29yZHMoMC4wZiwgMC4wZiwgMS4wZiwgMS4wZik7CkBAIC0xMjQyLDcgKzEyNDAsNyBAQAogICAgICAgICAgICAgbGF5ZXItPnNldEZpbHRlcihHTF9MSU5FQVIpOwogICAgICAgICAgICAgc2V0dXBEcmF3TW9kZWxWaWV3VHJhbnNsYXRlKHJlY3QubGVmdCwgcmVjdC50b3AsIHJlY3QucmlnaHQsIHJlY3QuYm90dG9tKTsKICAgICAgICAgfQotICAgICAgICBzZXR1cERyYXdNZXNoSW5kaWNlcygmbWVzaFswXS5wb3NpdGlvblswXSwgJm1lc2hbMF0udGV4dHVyZVswXSk7CisgICAgICAgIHNldHVwRHJhd01lc2hJbmRpY2VzKCZtZXNoWzBdLngsICZtZXNoWzBdLnUpOwogCiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewogICAgICAgICAgICAgY29uc3QgYW5kcm9pZDo6UmVjdCogciA9ICZyZWN0c1tpXTsKQEAgLTEyNzQsMTUgKzEyNzIsMTUgQEAKICAgICAgICAgfQogCiAjaWYgREVCVUdfTEFZRVJTX0FTX1JFR0lPTlMKLSAgICAgICAgZHJhd1JlZ2lvblJlY3RzKGxheWVyLT5yZWdpb24pOworICAgICAgICBkcmF3UmVnaW9uUmVjdHNEZWJ1ZyhsYXllci0+cmVnaW9uKTsKICNlbmRpZgogCiAgICAgICAgIGxheWVyLT5yZWdpb24uY2xlYXIoKTsKICAgICB9CiB9CiAKLXZvaWQgT3BlbkdMUmVuZGVyZXI6OmRyYXdSZWdpb25SZWN0cyhjb25zdCBSZWdpb24mIHJlZ2lvbikgewogI2lmIERFQlVHX0xBWUVSU19BU19SRUdJT05TCit2b2lkIE9wZW5HTFJlbmRlcmVyOjpkcmF3UmVnaW9uUmVjdHNEZWJ1Zyhjb25zdCBSZWdpb24mIHJlZ2lvbikgewogICAgIHNpemVfdCBjb3VudDsKICAgICBjb25zdCBhbmRyb2lkOjpSZWN0KiByZWN0cyA9IHJlZ2lvbi5nZXRBcnJheSgmY291bnQpOwogCkBAIC0xMzA0LDggKzEzMDIsOCBAQAogICAgICAgICBkcmF3Q29sb3JSZWN0KHIubGVmdCwgci50b3AsIHIucmlnaHQsIHIuYm90dG9tLCBjb2xvcnNbb2Zmc2V0ICsgKGkgJiAweDEpXSwKICAgICAgICAgICAgICAgICBTa1hmZXJtb2RlOjprU3JjT3Zlcl9Nb2RlKTsKICAgICB9Ci0jZW5kaWYKIH0KKyNlbmRpZgogCiB2b2lkIE9wZW5HTFJlbmRlcmVyOjpkcmF3UmVnaW9uUmVjdHMoY29uc3QgU2tSZWdpb24mIHJlZ2lvbiwgaW50IGNvbG9yLAogICAgICAgICBTa1hmZXJtb2RlOjpNb2RlIG1vZGUsIGJvb2wgZGlydHkpIHsKQEAgLTEzNTYsNyArMTM1NCw3IEBACiAgICAgd2hpbGUgKGVsZW1lbnRzQ291bnQgPiAwKSB7CiAgICAgICAgIEdMc2l6ZWkgZHJhd0NvdW50ID0gbWluKGVsZW1lbnRzQ291bnQsIChHTHNpemVpKSBnTWF4TnVtYmVyT2ZRdWFkcyAqIDYpOwogCi0gICAgICAgIHNldHVwRHJhd0luZGV4ZWRWZXJ0aWNlcygmbWVzaFswXS5wb3NpdGlvblswXSk7CisgICAgICAgIHNldHVwRHJhd0luZGV4ZWRWZXJ0aWNlcygmbWVzaFswXS54KTsKICAgICAgICAgZ2xEcmF3RWxlbWVudHMoR0xfVFJJQU5HTEVTLCBkcmF3Q291bnQsIEdMX1VOU0lHTkVEX1NIT1JULCBOVUxMKTsKIAogICAgICAgICBlbGVtZW50c0NvdW50IC09IGRyYXdDb3VudDsKQEAgLTE3OTgsNyArMTc5Niw3IEBACiAgICAgbUNvbG9yRyA9IG1Db2xvckEgKiAoKGNvbG9yID4+ICA4KSAmIDB4RkYpIC8gMjU1LjBmOwogICAgIG1Db2xvckIgPSBtQ29sb3JBICogKChjb2xvciAgICAgICkgJiAweEZGKSAvIDI1NS4wZjsKICAgICBtQ29sb3JTZXQgPSB0cnVlOwotICAgIG1TZXRTaGFkZXJDb2xvciA9IG1EZXNjcmlwdGlvbi5zZXRDb2xvcihtQ29sb3JSLCBtQ29sb3JHLCBtQ29sb3JCLCBtQ29sb3JBKTsKKyAgICBtU2V0U2hhZGVyQ29sb3IgPSBtRGVzY3JpcHRpb24uc2V0Q29sb3JNb2R1bGF0ZShtQ29sb3JBKTsKIH0KIAogdm9pZCBPcGVuR0xSZW5kZXJlcjo6c2V0dXBEcmF3QWxwaGE4Q29sb3IoaW50IGNvbG9yLCBpbnQgYWxwaGEpIHsKQEAgLTE4MDcsNyArMTgwNSw3IEBACiAgICAgbUNvbG9yRyA9IG1Db2xvckEgKiAoKGNvbG9yID4+ICA4KSAmIDB4RkYpIC8gMjU1LjBmOwogICAgIG1Db2xvckIgPSBtQ29sb3JBICogKChjb2xvciAgICAgICkgJiAweEZGKSAvIDI1NS4wZjsKICAgICBtQ29sb3JTZXQgPSB0cnVlOwotICAgIG1TZXRTaGFkZXJDb2xvciA9IG1EZXNjcmlwdGlvbi5zZXRBbHBoYThDb2xvcihtQ29sb3JSLCBtQ29sb3JHLCBtQ29sb3JCLCBtQ29sb3JBKTsKKyAgICBtU2V0U2hhZGVyQ29sb3IgPSBtRGVzY3JpcHRpb24uc2V0QWxwaGE4Q29sb3JNb2R1bGF0ZShtQ29sb3JSLCBtQ29sb3JHLCBtQ29sb3JCLCBtQ29sb3JBKTsKIH0KIAogdm9pZCBPcGVuR0xSZW5kZXJlcjo6c2V0dXBEcmF3VGV4dEdhbW1hKGNvbnN0IFNrUGFpbnQqIHBhaW50KSB7CkBAIC0xODIwLDcgKzE4MTgsNyBAQAogICAgIG1Db2xvckcgPSBnOwogICAgIG1Db2xvckIgPSBiOwogICAgIG1Db2xvclNldCA9IHRydWU7Ci0gICAgbVNldFNoYWRlckNvbG9yID0gbURlc2NyaXB0aW9uLnNldENvbG9yKHIsIGcsIGIsIGEpOworICAgIG1TZXRTaGFkZXJDb2xvciA9IG1EZXNjcmlwdGlvbi5zZXRDb2xvck1vZHVsYXRlKGEpOwogfQogCiB2b2lkIE9wZW5HTFJlbmRlcmVyOjpzZXR1cERyYXdTaGFkZXIoKSB7CkBAIC0yMTIyLDEyICsyMTIwLDEyIEBACiAgICAgICAgIGludCBjb2xvciA9IHBhaW50ICE9IE5VTEwgPyBwYWludC0+Z2V0Q29sb3IoKSA6IDA7CiAgICAgICAgIGRyYXdBbHBoYThUZXh0dXJlTWVzaCh4LCB5LCB4ICsgYm91bmRzLmdldFdpZHRoKCksIHkgKyBib3VuZHMuZ2V0SGVpZ2h0KCksCiAgICAgICAgICAgICAgICAgdGV4dHVyZS0+aWQsIHBhaW50ICE9IE5VTEwsIGNvbG9yLCBhbHBoYSwgbW9kZSwKLSAgICAgICAgICAgICAgICAmdmVydGljZXNbMF0ucG9zaXRpb25bMF0sICZ2ZXJ0aWNlc1swXS50ZXh0dXJlWzBdLAorICAgICAgICAgICAgICAgICZ2ZXJ0aWNlc1swXS54LCAmdmVydGljZXNbMF0udSwKICAgICAgICAgICAgICAgICBHTF9UUklBTkdMRVMsIGJpdG1hcENvdW50ICogNiwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGRyYXdUZXh0dXJlTWVzaCh4LCB5LCB4ICsgYm91bmRzLmdldFdpZHRoKCksIHkgKyBib3VuZHMuZ2V0SGVpZ2h0KCksCiAgICAgICAgICAgICAgICAgdGV4dHVyZS0+aWQsIGFscGhhIC8gMjU1LjBmLCBtb2RlLCB0ZXh0dXJlLT5ibGVuZCwKLSAgICAgICAgICAgICAgICAmdmVydGljZXNbMF0ucG9zaXRpb25bMF0sICZ2ZXJ0aWNlc1swXS50ZXh0dXJlWzBdLAorICAgICAgICAgICAgICAgICZ2ZXJ0aWNlc1swXS54LCAmdmVydGljZXNbMF0udSwKICAgICAgICAgICAgICAgICBHTF9UUklBTkdMRVMsIGJpdG1hcENvdW50ICogNiwgZmFsc2UsIHRydWUsIDAsIHRydWUsIGZhbHNlKTsKICAgICB9CiAKQEAgLTIzMDksNyArMjMwNyw3IEBACiAgICAgc2V0dXBEcmF3VGV4dHVyZSh0ZXh0dXJlLT5pZCk7CiAgICAgc2V0dXBEcmF3UHVyZUNvbG9yVW5pZm9ybXMoKTsKICAgICBzZXR1cERyYXdDb2xvckZpbHRlclVuaWZvcm1zKCk7Ci0gICAgc2V0dXBEcmF3TWVzaCgmbWVzaFswXS5wb3NpdGlvblswXSwgJm1lc2hbMF0udGV4dHVyZVswXSwgJm1lc2hbMF0uY29sb3JbMF0pOworICAgIHNldHVwRHJhd01lc2goJm1lc2hbMF0ueCwgJm1lc2hbMF0udSwgJm1lc2hbMF0ucik7CiAKICAgICBnbERyYXdBcnJheXMoR0xfVFJJQU5HTEVTLCAwLCBjb3VudCk7CiAKQEAgLTIzOTcsMTIgKzIzOTUsMTIgQEAKICAgICAgICAgaW50IGNvbG9yID0gcGFpbnQgPyBwYWludC0+Z2V0Q29sb3IoKSA6IDA7CiAgICAgICAgIGRyYXdBbHBoYThUZXh0dXJlTWVzaChkc3RMZWZ0LCBkc3RUb3AsIGRzdFJpZ2h0LCBkc3RCb3R0b20sCiAgICAgICAgICAgICAgICAgdGV4dHVyZS0+aWQsIHBhaW50ICE9IE5VTEwsIGNvbG9yLCBhbHBoYSwgbW9kZSwKLSAgICAgICAgICAgICAgICAmbU1lc2hWZXJ0aWNlc1swXS5wb3NpdGlvblswXSwgJm1NZXNoVmVydGljZXNbMF0udGV4dHVyZVswXSwKKyAgICAgICAgICAgICAgICAmbU1lc2hWZXJ0aWNlc1swXS54LCAmbU1lc2hWZXJ0aWNlc1swXS51LAogICAgICAgICAgICAgICAgIEdMX1RSSUFOR0xFX1NUUklQLCBnTWVzaENvdW50LCBpZ25vcmVUcmFuc2Zvcm0pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGRyYXdUZXh0dXJlTWVzaChkc3RMZWZ0LCBkc3RUb3AsIGRzdFJpZ2h0LCBkc3RCb3R0b20sCiAgICAgICAgICAgICAgICAgdGV4dHVyZS0+aWQsIGFscGhhIC8gMjU1LjBmLCBtb2RlLCB0ZXh0dXJlLT5ibGVuZCwKLSAgICAgICAgICAgICAgICAmbU1lc2hWZXJ0aWNlc1swXS5wb3NpdGlvblswXSwgJm1NZXNoVmVydGljZXNbMF0udGV4dHVyZVswXSwKKyAgICAgICAgICAgICAgICAmbU1lc2hWZXJ0aWNlc1swXS54LCAmbU1lc2hWZXJ0aWNlc1swXS51LAogICAgICAgICAgICAgICAgIEdMX1RSSUFOR0xFX1NUUklQLCBnTWVzaENvdW50LCBmYWxzZSwgaWdub3JlVHJhbnNmb3JtKTsKICAgICB9CiAKQEAgLTI1MDcsNyArMjUwNSw3IEBACiAgICAgZ2V0QWxwaGFBbmRNb2RlKHBhaW50LCAmYWxwaGEsICZtb2RlKTsKIAogICAgIGRyYXdJbmRleGVkVGV4dHVyZU1lc2goMC4wZiwgMC4wZiwgMS4wZiwgMS4wZiwgdGV4dHVyZS0+aWQsIGFscGhhIC8gMjU1LjBmLAotICAgICAgICAgICAgbW9kZSwgdGV4dHVyZS0+YmxlbmQsICZ2ZXJ0aWNlc1swXS5wb3NpdGlvblswXSwgJnZlcnRpY2VzWzBdLnRleHR1cmVbMF0sCisgICAgICAgICAgICBtb2RlLCB0ZXh0dXJlLT5ibGVuZCwgJnZlcnRpY2VzWzBdLngsICZ2ZXJ0aWNlc1swXS51LAogICAgICAgICAgICAgR0xfVFJJQU5HTEVTLCBpbmRleENvdW50LCBmYWxzZSwgdHJ1ZSwgMCwgdHJ1ZSwgZmFsc2UpOwogCiAgICAgcmV0dXJuIERyYXdHbEluZm86OmtTdGF0dXNEcmV3OwpAQCAtMzAwNCw3ICszMDAyLDcgQEAKICAgICAgICAgZGlydHlMYXllclVuY2hlY2tlZChsYXllckJvdW5kcywgZ2V0UmVnaW9uKCkpOwogICAgIH0KIAotICAgIGRyYXdUZXh0RGVjb3JhdGlvbnModGV4dCwgYnl0ZXNDb3VudCwgdG90YWxBZHZhbmNlLCBvbGRYLCBvbGRZLCBwYWludCk7CisgICAgZHJhd1RleHREZWNvcmF0aW9ucyh0b3RhbEFkdmFuY2UsIG9sZFgsIG9sZFksIHBhaW50KTsKIAogICAgIHJldHVybiBEcmF3R2xJbmZvOjprU3RhdHVzRHJldzsKIH0KQEAgLTMxMjcsNyArMzEyNSw3IEBACiAgICAgICAgICAgICB3aGlsZSAoZWxlbWVudHNDb3VudCA+IDApIHsKICAgICAgICAgICAgICAgICBHTHNpemVpIGRyYXdDb3VudCA9IG1pbihlbGVtZW50c0NvdW50LCAoR0xzaXplaSkgZ01heE51bWJlck9mUXVhZHMgKiA2KTsKIAotICAgICAgICAgICAgICAgIHNldHVwRHJhd01lc2hJbmRpY2VzKCZtZXNoWzBdLnBvc2l0aW9uWzBdLCAmbWVzaFswXS50ZXh0dXJlWzBdKTsKKyAgICAgICAgICAgICAgICBzZXR1cERyYXdNZXNoSW5kaWNlcygmbWVzaFswXS54LCAmbWVzaFswXS51KTsKICAgICAgICAgICAgICAgICBEUkFXX0RPVUJMRV9TVEVOQ0lMX0lGKCFsYXllci0+aGFzRHJhd25TaW5jZVVwZGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGdsRHJhd0VsZW1lbnRzKEdMX1RSSUFOR0xFUywgZHJhd0NvdW50LCBHTF9VTlNJR05FRF9TSE9SVCwgTlVMTCkpOwogCkBAIC0zMTM4LDcgKzMxMzYsNyBAQAogICAgICAgICAgICAgfQogCiAjaWYgREVCVUdfTEFZRVJTX0FTX1JFR0lPTlMKLSAgICAgICAgICAgIGRyYXdSZWdpb25SZWN0cyhsYXllci0+cmVnaW9uKTsKKyAgICAgICAgICAgIGRyYXdSZWdpb25SZWN0c0RlYnVnKGxheWVyLT5yZWdpb24pOwogI2VuZGlmCiAgICAgICAgIH0KIApAQCAtMzI3OCw4ICszMjc2LDcgQEAKICNkZWZpbmUga1N0ZFVuZGVybGluZV9PZmZzZXQgICAgKDEuMGYgLyA5LjBmKQogI2RlZmluZSBrU3RkVW5kZXJsaW5lX1RoaWNrbmVzcyAoMS4wZiAvIDE4LjBmKQogCi12b2lkIE9wZW5HTFJlbmRlcmVyOjpkcmF3VGV4dERlY29yYXRpb25zKGNvbnN0IGNoYXIqIHRleHQsIGludCBieXRlc0NvdW50LCBmbG9hdCB1bmRlcmxpbmVXaWR0aCwKLSAgICAgICAgZmxvYXQgeCwgZmxvYXQgeSwgU2tQYWludCogcGFpbnQpIHsKK3ZvaWQgT3BlbkdMUmVuZGVyZXI6OmRyYXdUZXh0RGVjb3JhdGlvbnMoZmxvYXQgdW5kZXJsaW5lV2lkdGgsIGZsb2F0IHgsIGZsb2F0IHksIFNrUGFpbnQqIHBhaW50KSB7CiAgICAgLy8gSGFuZGxlIHVuZGVybGluZSBhbmQgc3RyaWtlLXRocm91Z2gKICAgICB1aW50MzJfdCBmbGFncyA9IHBhaW50LT5nZXRGbGFncygpOwogICAgIGlmIChmbGFncyAmIChTa1BhaW50OjprVW5kZXJsaW5lVGV4dF9GbGFnIHwgU2tQYWludDo6a1N0cmlrZVRocnVUZXh0X0ZsYWcpKSB7CkBAIC0zNDMwLDggKzM0MjcsOCBAQAogICAgIEdMdm9pZCogdGV4Q29vcmRzID0gKEdMdm9pZCopIGdNZXNoVGV4dHVyZU9mZnNldDsKIAogICAgIGlmICh0ZXh0dXJlLT51dk1hcHBlcikgewotICAgICAgICB2ZXJ0aWNlcyA9ICZtTWVzaFZlcnRpY2VzWzBdLnBvc2l0aW9uWzBdOwotICAgICAgICB0ZXhDb29yZHMgPSAmbU1lc2hWZXJ0aWNlc1swXS50ZXh0dXJlWzBdOworICAgICAgICB2ZXJ0aWNlcyA9ICZtTWVzaFZlcnRpY2VzWzBdLng7CisgICAgICAgIHRleENvb3JkcyA9ICZtTWVzaFZlcnRpY2VzWzBdLnU7CiAKICAgICAgICAgUmVjdCB1dnMoMC4wZiwgMC4wZiwgMS4wZiwgMS4wZik7CiAgICAgICAgIHRleHR1cmUtPnV2TWFwcGVyLT5tYXAodXZzKTsKZGlmZiAtLWdpdCBhL2xpYnMvaHd1aS9PcGVuR0xSZW5kZXJlci5oIGIvbGlicy9od3VpL09wZW5HTFJlbmRlcmVyLmgKaW5kZXggOWFmYjdhZC4uNmU5Yzc0NyAxMDA2NDQKLS0tIGEvbGlicy9od3VpL09wZW5HTFJlbmRlcmVyLmgKKysrIGIvbGlicy9od3VpL09wZW5HTFJlbmRlcmVyLmgKQEAgLTY1NCwxMiArNjU0LDExIEBACiAgICAgICogQHBhcmFtIGFscGhhIFRoZSB0cmFuc2x1Y2VuY3kgb2YgdGhlIGxheWVyCiAgICAgICogQHBhcmFtIG1vZGUgVGhlIGJsZW5kaW5nIG1vZGUgb2YgdGhlIGxheWVyCiAgICAgICogQHBhcmFtIGZsYWdzIFRoZSBsYXllciBzYXZlIGZsYWdzCi0gICAgICogQHBhcmFtIHByZXZpb3VzRmJvIFRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGZyYW1lYnVmZmVyCiAgICAgICoKICAgICAgKiBAcmV0dXJuIFRydWUgaWYgdGhlIGxheWVyIHdhcyBzdWNjZXNzZnVsbHkgY3JlYXRlZCwgZmFsc2Ugb3RoZXJ3aXNlCiAgICAgICovCiAgICAgYm9vbCBjcmVhdGVMYXllcihmbG9hdCBsZWZ0LCBmbG9hdCB0b3AsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sCi0gICAgICAgICAgICBpbnQgYWxwaGEsIFNrWGZlcm1vZGU6Ok1vZGUgbW9kZSwgaW50IGZsYWdzLCBHTHVpbnQgcHJldmlvdXNGYm8pOworICAgICAgICAgICAgaW50IGFscGhhLCBTa1hmZXJtb2RlOjpNb2RlIG1vZGUsIGludCBmbGFncyk7CiAKICAgICAvKioKICAgICAgKiBDcmVhdGVzIGEgbmV3IGxheWVyIHN0b3JlZCBpbiB0aGUgc3BlY2lmaWVkIHNuYXBzaG90IGFzIGFuIEZCTy4KQEAgLTY2Nyw5ICs2NjYsOCBAQAogICAgICAqIEBwYXJhbSBsYXllciBUaGUgbGF5ZXIgdG8gc3RvcmUgYXMgYW4gRkJPCiAgICAgICogQHBhcmFtIHNuYXBzaG90IFRoZSBzbmFwc2hvdCBhc3NvY2lhdGVkIHdpdGggdGhlIG5ldyBsYXllcgogICAgICAqIEBwYXJhbSBib3VuZHMgVGhlIGJvdW5kcyBvZiB0aGUgbGF5ZXIKLSAgICAgKiBAcGFyYW0gcHJldmlvdXNGYm8gVGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgZnJhbWVidWZmZXIKICAgICAgKi8KLSAgICBib29sIGNyZWF0ZUZib0xheWVyKExheWVyKiBsYXllciwgUmVjdCYgYm91bmRzLCBSZWN0JiBjbGlwLCBHTHVpbnQgcHJldmlvdXNGYm8pOworICAgIGJvb2wgY3JlYXRlRmJvTGF5ZXIoTGF5ZXIqIGxheWVyLCBSZWN0JiBib3VuZHMsIFJlY3QmIGNsaXApOwogCiAgICAgLyoqCiAgICAgICogQ29tcG9zZSB0aGUgc3BlY2lmaWVkIGxheWVyIGFzIGEgcmVnaW9uLgpAQCAtODY4LDggKzg2Niw3IEBACiAgICAgICogQHBhcmFtIHkgVGhlIHkgY29vcmRpbmF0ZSB3aGVyZSB0aGUgdGV4dCB3aWxsIGJlIGRyYXduCiAgICAgICogQHBhcmFtIHBhaW50IFRoZSBwYWludCB0byBkcmF3IHRoZSB0ZXh0IHdpdGgKICAgICAgKi8KLSAgICB2b2lkIGRyYXdUZXh0RGVjb3JhdGlvbnMoY29uc3QgY2hhciogdGV4dCwgaW50IGJ5dGVzQ291bnQsIGZsb2F0IHRvdGFsQWR2YW5jZSwKLSAgICAgICAgICAgIGZsb2F0IHgsIGZsb2F0IHksIFNrUGFpbnQqIHBhaW50KTsKKyAgICB2b2lkIGRyYXdUZXh0RGVjb3JhdGlvbnMoZmxvYXQgdG90YWxBZHZhbmNlLCBmbG9hdCB4LCBmbG9hdCB5LCBTa1BhaW50KiBwYWludCk7CiAKICAgIC8qKgogICAgICAqIERyYXdzIHNoYWRvdyBsYXllciBvbiB0ZXh0ICh3aXRoIG9wdGlvbmFsIHBvc2l0aW9ucykuCkBAIC0xMDA0LDExICsxMDAxLDEzIEBACiAgICAgdm9pZCB1cGRhdGVMYXllcnMoKTsKICAgICB2b2lkIGZsdXNoTGF5ZXJzKCk7CiAKKyNpZiBERUJVR19MQVlFUlNfQVNfUkVHSU9OUwogICAgIC8qKgogICAgICAqIFJlbmRlcnMgdGhlIHNwZWNpZmllZCByZWdpb24gYXMgYSBzZXJpZXMgb2YgcmVjdGFuZ2xlcy4gVGhpcyBtZXRob2QKICAgICAgKiBpcyB1c2VkIGZvciBkZWJ1Z2dpbmcgb25seS4KICAgICAgKi8KLSAgICB2b2lkIGRyYXdSZWdpb25SZWN0cyhjb25zdCBSZWdpb24mIHJlZ2lvbik7CisgICAgdm9pZCBkcmF3UmVnaW9uUmVjdHNEZWJ1Zyhjb25zdCBSZWdpb24mIHJlZ2lvbik7CisjZW5kaWYKIAogICAgIC8qKgogICAgICAqIFJlbmRlcnMgdGhlIHNwZWNpZmllZCByZWdpb24gYXMgYSBzZXJpZXMgb2YgcmVjdGFuZ2xlcy4gVGhlIHJlZ2lvbgpkaWZmIC0tZ2l0IGEvbGlicy9od3VpL1BhdGhUZXNzZWxsYXRvci5jcHAgYi9saWJzL2h3dWkvUGF0aFRlc3NlbGxhdG9yLmNwcAppbmRleCAzOTcwOTEzLi4wM2IyMDk5IDEwMDY0NAotLS0gYS9saWJzL2h3dWkvUGF0aFRlc3NlbGxhdG9yLmNwcAorKysgYi9saWJzL2h3dWkvUGF0aFRlc3NlbGxhdG9yLmNwcApAQCAtMjQsMTEgKzI0LDExIEBACiAjZGVmaW5lIERFQlVHX0RVTVBfQUxQSEFfQlVGRkVSKCkgXAogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgdmVydGV4QnVmZmVyLmdldFNpemUoKTsgaSsrKSB7IFwKICAgICAgICAgQUxPR0QoInBvaW50ICVkIGF0ICVmICVmLCBhbHBoYSAlZiIsIFwKLSAgICAgICAgaSwgYnVmZmVyW2ldLnBvc2l0aW9uWzBdLCBidWZmZXJbaV0ucG9zaXRpb25bMV0sIGJ1ZmZlcltpXS5hbHBoYSk7IFwKKyAgICAgICAgaSwgYnVmZmVyW2ldLngsIGJ1ZmZlcltpXS55LCBidWZmZXJbaV0uYWxwaGEpOyBcCiAgICAgfQogI2RlZmluZSBERUJVR19EVU1QX0JVRkZFUigpIFwKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHZlcnRleEJ1ZmZlci5nZXRTaXplKCk7IGkrKykgeyBcCi0gICAgICAgIEFMT0dEKCJwb2ludCAlZCBhdCAlZiAlZiIsIGksIGJ1ZmZlcltpXS5wb3NpdGlvblswXSwgYnVmZmVyW2ldLnBvc2l0aW9uWzFdKTsgXAorICAgICAgICBBTE9HRCgicG9pbnQgJWQgYXQgJWYgJWYiLCBpLCBidWZmZXJbaV0ueCwgYnVmZmVyW2ldLnkpOyBcCiAgICAgfQogI2Vsc2UKICNkZWZpbmUgREVCVUdfRFVNUF9BTFBIQV9CVUZGRVIoKQpAQCAtNjcsMTEgKzY3LDExIEBACiB9CiAKIGlubGluZSBzdGF0aWMgdm9pZCBjb3B5VmVydGV4KFZlcnRleCogZGVzdFB0ciwgY29uc3QgVmVydGV4KiBzcmNQdHIpIHsKLSAgICBWZXJ0ZXg6OnNldChkZXN0UHRyLCBzcmNQdHItPnBvc2l0aW9uWzBdLCBzcmNQdHItPnBvc2l0aW9uWzFdKTsKKyAgICBWZXJ0ZXg6OnNldChkZXN0UHRyLCBzcmNQdHItPngsIHNyY1B0ci0+eSk7CiB9CiAKIGlubGluZSBzdGF0aWMgdm9pZCBjb3B5QWxwaGFWZXJ0ZXgoQWxwaGFWZXJ0ZXgqIGRlc3RQdHIsIGNvbnN0IEFscGhhVmVydGV4KiBzcmNQdHIpIHsKLSAgICBBbHBoYVZlcnRleDo6c2V0KGRlc3RQdHIsIHNyY1B0ci0+cG9zaXRpb25bMF0sIHNyY1B0ci0+cG9zaXRpb25bMV0sIHNyY1B0ci0+YWxwaGEpOworICAgIEFscGhhVmVydGV4OjpzZXQoZGVzdFB0ciwgc3JjUHRyLT54LCBzcmNQdHItPnksIHNyY1B0ci0+YWxwaGEpOwogfQogCiAvKioKQEAgLTE5MiwyNSArMTkyLDI1IEBACiAgICAgaW50IGN1cnJlbnRJbmRleCA9IDA7CiAgICAgY29uc3QgVmVydGV4KiBsYXN0ID0gJihwZXJpbWV0ZXJbcGVyaW1ldGVyLnNpemUoKSAtIDFdKTsKICAgICBjb25zdCBWZXJ0ZXgqIGN1cnJlbnQgPSAmKHBlcmltZXRlclswXSk7Ci0gICAgdmVjMiBsYXN0Tm9ybWFsKGN1cnJlbnQtPnBvc2l0aW9uWzFdIC0gbGFzdC0+cG9zaXRpb25bMV0sCi0gICAgICAgICAgICBsYXN0LT5wb3NpdGlvblswXSAtIGN1cnJlbnQtPnBvc2l0aW9uWzBdKTsKKyAgICB2ZWMyIGxhc3ROb3JtYWwoY3VycmVudC0+eSAtIGxhc3QtPnksCisgICAgICAgICAgICBsYXN0LT54IC0gY3VycmVudC0+eCk7CiAgICAgbGFzdE5vcm1hbC5ub3JtYWxpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBlcmltZXRlci5zaXplKCk7IGkrKykgewogICAgICAgICBjb25zdCBWZXJ0ZXgqIG5leHQgPSAmKHBlcmltZXRlcltpICsgMSA+PSBwZXJpbWV0ZXIuc2l6ZSgpID8gMCA6IGkgKyAxXSk7Ci0gICAgICAgIHZlYzIgbmV4dE5vcm1hbChuZXh0LT5wb3NpdGlvblsxXSAtIGN1cnJlbnQtPnBvc2l0aW9uWzFdLAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzBdIC0gbmV4dC0+cG9zaXRpb25bMF0pOworICAgICAgICB2ZWMyIG5leHROb3JtYWwobmV4dC0+eSAtIGN1cnJlbnQtPnksCisgICAgICAgICAgICAgICAgY3VycmVudC0+eCAtIG5leHQtPngpOwogICAgICAgICBuZXh0Tm9ybWFsLm5vcm1hbGl6ZSgpOwogCiAgICAgICAgIHZlYzIgdG90YWxPZmZzZXQgPSB0b3RhbE9mZnNldEZyb21Ob3JtYWxzKGxhc3ROb3JtYWwsIG5leHROb3JtYWwpOwogICAgICAgICBwYWludEluZm8uc2NhbGVPZmZzZXRGb3JTdHJva2VXaWR0aCh0b3RhbE9mZnNldCk7CiAKICAgICAgICAgVmVydGV4OjpzZXQoJmJ1ZmZlcltjdXJyZW50SW5kZXgrK10sCi0gICAgICAgICAgICAgICAgY3VycmVudC0+cG9zaXRpb25bMF0gKyB0b3RhbE9mZnNldC54LAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzFdICsgdG90YWxPZmZzZXQueSk7CisgICAgICAgICAgICAgICAgY3VycmVudC0+eCArIHRvdGFsT2Zmc2V0LngsCisgICAgICAgICAgICAgICAgY3VycmVudC0+eSArIHRvdGFsT2Zmc2V0LnkpOwogCiAgICAgICAgIFZlcnRleDo6c2V0KCZidWZmZXJbY3VycmVudEluZGV4KytdLAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzBdIC0gdG90YWxPZmZzZXQueCwKLSAgICAgICAgICAgICAgICBjdXJyZW50LT5wb3NpdGlvblsxXSAtIHRvdGFsT2Zmc2V0LnkpOworICAgICAgICAgICAgICAgIGN1cnJlbnQtPnggLSB0b3RhbE9mZnNldC54LAorICAgICAgICAgICAgICAgIGN1cnJlbnQtPnkgLSB0b3RhbE9mZnNldC55KTsKIAogICAgICAgICBsYXN0ID0gY3VycmVudDsKICAgICAgICAgY3VycmVudCA9IG5leHQ7CkBAIC0yMjksNyArMjI5LDcgQEAKICAgICB2ZWMyIHN0cm9rZU9mZnNldCA9IG5vcm1hbDsKICAgICBwYWludEluZm8uc2NhbGVPZmZzZXRGb3JTdHJva2VXaWR0aChzdHJva2VPZmZzZXQpOwogCi0gICAgdmVjMiByZWZlcmVuY2VQb2ludChjZW50ZXIucG9zaXRpb25bMF0sIGNlbnRlci5wb3NpdGlvblsxXSk7CisgICAgdmVjMiByZWZlcmVuY2VQb2ludChjZW50ZXIueCwgY2VudGVyLnkpOwogICAgIGlmIChwYWludEluZm8uY2FwID09IFNrUGFpbnQ6OmtTcXVhcmVfQ2FwKSB7CiAgICAgICAgIHJlZmVyZW5jZVBvaW50ICs9IHZlYzIoLXN0cm9rZU9mZnNldC55LCBzdHJva2VPZmZzZXQueCkgKiAoYmVnaW4gPyAtMSA6IDEpOwogICAgIH0KQEAgLTI1NSwxMSArMjU1LDExIEBACiAgICAgaWYgKGV4dHJhID4gMCkgewogICAgICAgICAvLyB0ZXNzZWxsYXRlIGJvdGggcm91bmQgY2FwcwogICAgICAgICBmbG9hdCBiZWdpblRoZXRhID0gYXRhbjIoCi0gICAgICAgICAgICAgICAgICAgIC0gKHZlcnRpY2VzWzBdLnBvc2l0aW9uWzBdIC0gdmVydGljZXNbMV0ucG9zaXRpb25bMF0pLAotICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNlc1swXS5wb3NpdGlvblsxXSAtIHZlcnRpY2VzWzFdLnBvc2l0aW9uWzFdKTsKKyAgICAgICAgICAgICAgICAgICAgLSAodmVydGljZXNbMF0ueCAtIHZlcnRpY2VzWzFdLngpLAorICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNlc1swXS55IC0gdmVydGljZXNbMV0ueSk7CiAgICAgICAgIGZsb2F0IGVuZFRoZXRhID0gYXRhbjIoCi0gICAgICAgICAgICAgICAgICAgIC0gKHZlcnRpY2VzW2xhc3RJbmRleF0ucG9zaXRpb25bMF0gLSB2ZXJ0aWNlc1tsYXN0SW5kZXggLSAxXS5wb3NpdGlvblswXSksCi0gICAgICAgICAgICAgICAgICAgIHZlcnRpY2VzW2xhc3RJbmRleF0ucG9zaXRpb25bMV0gLSB2ZXJ0aWNlc1tsYXN0SW5kZXggLSAxXS5wb3NpdGlvblsxXSk7CisgICAgICAgICAgICAgICAgICAgIC0gKHZlcnRpY2VzW2xhc3RJbmRleF0ueCAtIHZlcnRpY2VzW2xhc3RJbmRleCAtIDFdLngpLAorICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNlc1tsYXN0SW5kZXhdLnkgLSB2ZXJ0aWNlc1tsYXN0SW5kZXggLSAxXS55KTsKICAgICAgICAgY29uc3QgZmxvYXQgZFRoZXRhID0gUEkgLyAoZXh0cmEgKyAxKTsKICAgICAgICAgY29uc3QgZmxvYXQgcmFkaWFsU2NhbGUgPSAyLjBmIC8gKDEgKyBjb3MoZFRoZXRhKSk7CiAKQEAgLTI3NSwzNyArMjc1LDM3IEBACiAgICAgICAgICAgICB2ZWMyIGJlZ2luUmFkaWFsT2Zmc2V0KGNvcyhiZWdpblRoZXRhKSwgc2luKGJlZ2luVGhldGEpKTsKICAgICAgICAgICAgIHBhaW50SW5mby5zY2FsZU9mZnNldEZvclN0cm9rZVdpZHRoKGJlZ2luUmFkaWFsT2Zmc2V0KTsKICAgICAgICAgICAgIFZlcnRleDo6c2V0KCZidWZmZXJbY2FwT2Zmc2V0XSwKLSAgICAgICAgICAgICAgICAgICAgdmVydGljZXNbMF0ucG9zaXRpb25bMF0gKyBiZWdpblJhZGlhbE9mZnNldC54LAotICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNlc1swXS5wb3NpdGlvblsxXSArIGJlZ2luUmFkaWFsT2Zmc2V0LnkpOworICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNlc1swXS54ICsgYmVnaW5SYWRpYWxPZmZzZXQueCwKKyAgICAgICAgICAgICAgICAgICAgdmVydGljZXNbMF0ueSArIGJlZ2luUmFkaWFsT2Zmc2V0LnkpOwogCiAgICAgICAgICAgICBlbmRUaGV0YSArPSBkVGhldGE7CiAgICAgICAgICAgICB2ZWMyIGVuZFJhZGlhbE9mZnNldChjb3MoZW5kVGhldGEpLCBzaW4oZW5kVGhldGEpKTsKICAgICAgICAgICAgIHBhaW50SW5mby5zY2FsZU9mZnNldEZvclN0cm9rZVdpZHRoKGVuZFJhZGlhbE9mZnNldCk7CiAgICAgICAgICAgICBWZXJ0ZXg6OnNldCgmYnVmZmVyW2FsbG9jU2l6ZSAtIDEgLSBjYXBPZmZzZXRdLAotICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNlc1tsYXN0SW5kZXhdLnBvc2l0aW9uWzBdICsgZW5kUmFkaWFsT2Zmc2V0LngsCi0gICAgICAgICAgICAgICAgICAgIHZlcnRpY2VzW2xhc3RJbmRleF0ucG9zaXRpb25bMV0gKyBlbmRSYWRpYWxPZmZzZXQueSk7CisgICAgICAgICAgICAgICAgICAgIHZlcnRpY2VzW2xhc3RJbmRleF0ueCArIGVuZFJhZGlhbE9mZnNldC54LAorICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNlc1tsYXN0SW5kZXhdLnkgKyBlbmRSYWRpYWxPZmZzZXQueSk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpbnQgY3VycmVudEluZGV4ID0gZXh0cmE7CiAgICAgY29uc3QgVmVydGV4KiBsYXN0ID0gJih2ZXJ0aWNlc1swXSk7CiAgICAgY29uc3QgVmVydGV4KiBjdXJyZW50ID0gJih2ZXJ0aWNlc1sxXSk7Ci0gICAgdmVjMiBsYXN0Tm9ybWFsKGN1cnJlbnQtPnBvc2l0aW9uWzFdIC0gbGFzdC0+cG9zaXRpb25bMV0sCi0gICAgICAgICAgICAgICAgbGFzdC0+cG9zaXRpb25bMF0gLSBjdXJyZW50LT5wb3NpdGlvblswXSk7CisgICAgdmVjMiBsYXN0Tm9ybWFsKGN1cnJlbnQtPnkgLSBsYXN0LT55LAorICAgICAgICAgICAgICAgIGxhc3QtPnggLSBjdXJyZW50LT54KTsKICAgICBsYXN0Tm9ybWFsLm5vcm1hbGl6ZSgpOwogCiAgICAgc3RvcmVCZWdpbkVuZChwYWludEluZm8sIHZlcnRpY2VzWzBdLCBsYXN0Tm9ybWFsLCBidWZmZXIsIGN1cnJlbnRJbmRleCwgdHJ1ZSk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMTsgaSA8IHZlcnRpY2VzLnNpemUoKSAtIDE7IGkrKykgewogICAgICAgICBjb25zdCBWZXJ0ZXgqIG5leHQgPSAmKHZlcnRpY2VzW2kgKyAxXSk7Ci0gICAgICAgIHZlYzIgbmV4dE5vcm1hbChuZXh0LT5wb3NpdGlvblsxXSAtIGN1cnJlbnQtPnBvc2l0aW9uWzFdLAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzBdIC0gbmV4dC0+cG9zaXRpb25bMF0pOworICAgICAgICB2ZWMyIG5leHROb3JtYWwobmV4dC0+eSAtIGN1cnJlbnQtPnksCisgICAgICAgICAgICAgICAgY3VycmVudC0+eCAtIG5leHQtPngpOwogICAgICAgICBuZXh0Tm9ybWFsLm5vcm1hbGl6ZSgpOwogCiAgICAgICAgIHZlYzIgc3Ryb2tlT2Zmc2V0ICA9IHRvdGFsT2Zmc2V0RnJvbU5vcm1hbHMobGFzdE5vcm1hbCwgbmV4dE5vcm1hbCk7CiAgICAgICAgIHBhaW50SW5mby5zY2FsZU9mZnNldEZvclN0cm9rZVdpZHRoKHN0cm9rZU9mZnNldCk7CiAKLSAgICAgICAgdmVjMiBjZW50ZXIoY3VycmVudC0+cG9zaXRpb25bMF0sIGN1cnJlbnQtPnBvc2l0aW9uWzFdKTsKKyAgICAgICAgdmVjMiBjZW50ZXIoY3VycmVudC0+eCwgY3VycmVudC0+eSk7CiAgICAgICAgIFZlcnRleDo6c2V0KCZidWZmZXJbY3VycmVudEluZGV4KytdLCBjZW50ZXIgKyBzdHJva2VPZmZzZXQpOwogICAgICAgICBWZXJ0ZXg6OnNldCgmYnVmZmVyW2N1cnJlbnRJbmRleCsrXSwgY2VudGVyIC0gc3Ryb2tlT2Zmc2V0KTsKIApAQCAtMzM3LDEzICszMzcsMTMgQEAKICAgICBpbnQgY3VycmVudEluZGV4ID0gMDsKICAgICBjb25zdCBWZXJ0ZXgqIGxhc3QgPSAmKHBlcmltZXRlcltwZXJpbWV0ZXIuc2l6ZSgpIC0gMV0pOwogICAgIGNvbnN0IFZlcnRleCogY3VycmVudCA9ICYocGVyaW1ldGVyWzBdKTsKLSAgICB2ZWMyIGxhc3ROb3JtYWwoY3VycmVudC0+cG9zaXRpb25bMV0gLSBsYXN0LT5wb3NpdGlvblsxXSwKLSAgICAgICAgICAgIGxhc3QtPnBvc2l0aW9uWzBdIC0gY3VycmVudC0+cG9zaXRpb25bMF0pOworICAgIHZlYzIgbGFzdE5vcm1hbChjdXJyZW50LT55IC0gbGFzdC0+eSwKKyAgICAgICAgICAgIGxhc3QtPnggLSBjdXJyZW50LT54KTsKICAgICBsYXN0Tm9ybWFsLm5vcm1hbGl6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGVyaW1ldGVyLnNpemUoKTsgaSsrKSB7CiAgICAgICAgIGNvbnN0IFZlcnRleCogbmV4dCA9ICYocGVyaW1ldGVyW2kgKyAxID49IHBlcmltZXRlci5zaXplKCkgPyAwIDogaSArIDFdKTsKLSAgICAgICAgdmVjMiBuZXh0Tm9ybWFsKG5leHQtPnBvc2l0aW9uWzFdIC0gY3VycmVudC0+cG9zaXRpb25bMV0sCi0gICAgICAgICAgICAgICAgY3VycmVudC0+cG9zaXRpb25bMF0gLSBuZXh0LT5wb3NpdGlvblswXSk7CisgICAgICAgIHZlYzIgbmV4dE5vcm1hbChuZXh0LT55IC0gY3VycmVudC0+eSwKKyAgICAgICAgICAgICAgICBjdXJyZW50LT54IC0gbmV4dC0+eCk7CiAgICAgICAgIG5leHROb3JtYWwubm9ybWFsaXplKCk7CiAKICAgICAgICAgLy8gQUEgcG9pbnQgb2Zmc2V0IGZyb20gb3JpZ2luYWwgcG9pbnQgaXMgdGhhdCBwb2ludCdzIG5vcm1hbCwgc3VjaCB0aGF0IGVhY2ggc2lkZSBpcyBvZmZzZXQKQEAgLTM1MSwxMiArMzUxLDEyIEBACiAgICAgICAgIHZlYzIgdG90YWxPZmZzZXQgPSBwYWludEluZm8uZGVyaXZlQUFPZmZzZXQodG90YWxPZmZzZXRGcm9tTm9ybWFscyhsYXN0Tm9ybWFsLCBuZXh0Tm9ybWFsKSk7CiAKICAgICAgICAgQWxwaGFWZXJ0ZXg6OnNldCgmYnVmZmVyW2N1cnJlbnRJbmRleCsrXSwKLSAgICAgICAgICAgICAgICBjdXJyZW50LT5wb3NpdGlvblswXSArIHRvdGFsT2Zmc2V0LngsCi0gICAgICAgICAgICAgICAgY3VycmVudC0+cG9zaXRpb25bMV0gKyB0b3RhbE9mZnNldC55LAorICAgICAgICAgICAgICAgIGN1cnJlbnQtPnggKyB0b3RhbE9mZnNldC54LAorICAgICAgICAgICAgICAgIGN1cnJlbnQtPnkgKyB0b3RhbE9mZnNldC55LAogICAgICAgICAgICAgICAgIDAuMGYpOwogICAgICAgICBBbHBoYVZlcnRleDo6c2V0KCZidWZmZXJbY3VycmVudEluZGV4KytdLAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzBdIC0gdG90YWxPZmZzZXQueCwKLSAgICAgICAgICAgICAgICBjdXJyZW50LT5wb3NpdGlvblsxXSAtIHRvdGFsT2Zmc2V0LnksCisgICAgICAgICAgICAgICAgY3VycmVudC0+eCAtIHRvdGFsT2Zmc2V0LngsCisgICAgICAgICAgICAgICAgY3VycmVudC0+eSAtIHRvdGFsT2Zmc2V0LnksCiAgICAgICAgICAgICAgICAgMS4wZik7CiAKICAgICAgICAgbGFzdCA9IGN1cnJlbnQ7CkBAIC00MTYsNyArNDE2LDcgQEAKIAogICAgIC8vIGRldGVybWluZSByZWZlcmVuY2VQb2ludCwgdGhlIGNlbnRlciBwb2ludCBmb3IgdGhlIDQgcHJpbWFyeSBjYXAgdmVydGljZXMKICAgICBjb25zdCBWZXJ0ZXgqIHBvaW50ID0gaXNGaXJzdCA/IHZlcnRpY2VzLmJlZ2luKCkgOiAodmVydGljZXMuZW5kKCkgLSAxKTsKLSAgICB2ZWMyIHJlZmVyZW5jZVBvaW50KHBvaW50LT5wb3NpdGlvblswXSwgcG9pbnQtPnBvc2l0aW9uWzFdKTsKKyAgICB2ZWMyIHJlZmVyZW5jZVBvaW50KHBvaW50LT54LCBwb2ludC0+eSk7CiAgICAgaWYgKHBhaW50SW5mby5jYXAgPT0gU2tQYWludDo6a1NxdWFyZV9DYXApIHsKICAgICAgICAgLy8gVG8gYWNjb3VudCBmb3Igc3F1YXJlIGNhcCwgbW92ZSB0aGUgcHJpbWFyeSBjYXAgdmVydGljZXMgKHRoYXQgY3JlYXRlIHRoZSBBQSBlZGdlKSBieSB0aGUKICAgICAgICAgLy8gc3Ryb2tlIG9mZnNldCB2ZWN0b3IgKHJvdGF0ZWQgdG8gYmUgcGFyYWxsZWwgdG8gdGhlIHN0cm9rZSkKQEAgLTU3Niw4ICs1NzYsOCBAQAogCiAgICAgY29uc3QgVmVydGV4KiBsYXN0ID0gJih2ZXJ0aWNlc1swXSk7CiAgICAgY29uc3QgVmVydGV4KiBjdXJyZW50ID0gJih2ZXJ0aWNlc1sxXSk7Ci0gICAgdmVjMiBsYXN0Tm9ybWFsKGN1cnJlbnQtPnBvc2l0aW9uWzFdIC0gbGFzdC0+cG9zaXRpb25bMV0sCi0gICAgICAgICAgICBsYXN0LT5wb3NpdGlvblswXSAtIGN1cnJlbnQtPnBvc2l0aW9uWzBdKTsKKyAgICB2ZWMyIGxhc3ROb3JtYWwoY3VycmVudC0+eSAtIGxhc3QtPnksCisgICAgICAgICAgICBsYXN0LT54IC0gY3VycmVudC0+eCk7CiAgICAgbGFzdE5vcm1hbC5ub3JtYWxpemUoKTsKIAogICAgIC8vIFRPRE86IHVzZSBub3JtYWwgZnJvbSBiZXppZXIgdHJhdmVyc2FsIGZvciBjYXAsIGluc3RlYWQgb2YgZnJvbSB2ZXJ0aWNlcwpAQCAtNTg1LDggKzU4NSw4IEBACiAKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMTsgaSA8IHZlcnRpY2VzLnNpemUoKSAtIDE7IGkrKykgewogICAgICAgICBjb25zdCBWZXJ0ZXgqIG5leHQgPSAmKHZlcnRpY2VzW2kgKyAxXSk7Ci0gICAgICAgIHZlYzIgbmV4dE5vcm1hbChuZXh0LT5wb3NpdGlvblsxXSAtIGN1cnJlbnQtPnBvc2l0aW9uWzFdLAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzBdIC0gbmV4dC0+cG9zaXRpb25bMF0pOworICAgICAgICB2ZWMyIG5leHROb3JtYWwobmV4dC0+eSAtIGN1cnJlbnQtPnksCisgICAgICAgICAgICAgICAgY3VycmVudC0+eCAtIG5leHQtPngpOwogICAgICAgICBuZXh0Tm9ybWFsLm5vcm1hbGl6ZSgpOwogCiAgICAgICAgIHZlYzIgdG90YWxPZmZzZXQgPSB0b3RhbE9mZnNldEZyb21Ob3JtYWxzKGxhc3ROb3JtYWwsIG5leHROb3JtYWwpOwpAQCAtNTk4LDMwICs1OTgsMzAgQEAKICAgICAgICAgaW5uZXJPZmZzZXQgLT0gQUFPZmZzZXQ7CiAKICAgICAgICAgQWxwaGFWZXJ0ZXg6OnNldCgmYnVmZmVyW2N1cnJlbnRBQU91dGVySW5kZXgrK10sCi0gICAgICAgICAgICAgICAgY3VycmVudC0+cG9zaXRpb25bMF0gKyBvdXRlck9mZnNldC54LAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzFdICsgb3V0ZXJPZmZzZXQueSwKKyAgICAgICAgICAgICAgICBjdXJyZW50LT54ICsgb3V0ZXJPZmZzZXQueCwKKyAgICAgICAgICAgICAgICBjdXJyZW50LT55ICsgb3V0ZXJPZmZzZXQueSwKICAgICAgICAgICAgICAgICAwLjBmKTsKICAgICAgICAgQWxwaGFWZXJ0ZXg6OnNldCgmYnVmZmVyW2N1cnJlbnRBQU91dGVySW5kZXgrK10sCi0gICAgICAgICAgICAgICAgY3VycmVudC0+cG9zaXRpb25bMF0gKyBpbm5lck9mZnNldC54LAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzFdICsgaW5uZXJPZmZzZXQueSwKKyAgICAgICAgICAgICAgICBjdXJyZW50LT54ICsgaW5uZXJPZmZzZXQueCwKKyAgICAgICAgICAgICAgICBjdXJyZW50LT55ICsgaW5uZXJPZmZzZXQueSwKICAgICAgICAgICAgICAgICBwYWludEluZm8ubWF4QWxwaGEpOwogCiAgICAgICAgIEFscGhhVmVydGV4OjpzZXQoJmJ1ZmZlcltjdXJyZW50U3Ryb2tlSW5kZXgrK10sCi0gICAgICAgICAgICAgICAgY3VycmVudC0+cG9zaXRpb25bMF0gKyBpbm5lck9mZnNldC54LAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzFdICsgaW5uZXJPZmZzZXQueSwKKyAgICAgICAgICAgICAgICBjdXJyZW50LT54ICsgaW5uZXJPZmZzZXQueCwKKyAgICAgICAgICAgICAgICBjdXJyZW50LT55ICsgaW5uZXJPZmZzZXQueSwKICAgICAgICAgICAgICAgICBwYWludEluZm8ubWF4QWxwaGEpOwogICAgICAgICBBbHBoYVZlcnRleDo6c2V0KCZidWZmZXJbY3VycmVudFN0cm9rZUluZGV4KytdLAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzBdIC0gaW5uZXJPZmZzZXQueCwKLSAgICAgICAgICAgICAgICBjdXJyZW50LT5wb3NpdGlvblsxXSAtIGlubmVyT2Zmc2V0LnksCisgICAgICAgICAgICAgICAgY3VycmVudC0+eCAtIGlubmVyT2Zmc2V0LngsCisgICAgICAgICAgICAgICAgY3VycmVudC0+eSAtIGlubmVyT2Zmc2V0LnksCiAgICAgICAgICAgICAgICAgcGFpbnRJbmZvLm1heEFscGhhKTsKIAogICAgICAgICBBbHBoYVZlcnRleDo6c2V0KCZidWZmZXJbY3VycmVudEFBSW5uZXJJbmRleC0tXSwKLSAgICAgICAgICAgICAgICBjdXJyZW50LT5wb3NpdGlvblswXSAtIGlubmVyT2Zmc2V0LngsCi0gICAgICAgICAgICAgICAgY3VycmVudC0+cG9zaXRpb25bMV0gLSBpbm5lck9mZnNldC55LAorICAgICAgICAgICAgICAgIGN1cnJlbnQtPnggLSBpbm5lck9mZnNldC54LAorICAgICAgICAgICAgICAgIGN1cnJlbnQtPnkgLSBpbm5lck9mZnNldC55LAogICAgICAgICAgICAgICAgIHBhaW50SW5mby5tYXhBbHBoYSk7CiAgICAgICAgIEFscGhhVmVydGV4OjpzZXQoJmJ1ZmZlcltjdXJyZW50QUFJbm5lckluZGV4LS1dLAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzBdIC0gb3V0ZXJPZmZzZXQueCwKLSAgICAgICAgICAgICAgICBjdXJyZW50LT5wb3NpdGlvblsxXSAtIG91dGVyT2Zmc2V0LnksCisgICAgICAgICAgICAgICAgY3VycmVudC0+eCAtIG91dGVyT2Zmc2V0LngsCisgICAgICAgICAgICAgICAgY3VycmVudC0+eSAtIG91dGVyT2Zmc2V0LnksCiAgICAgICAgICAgICAgICAgMC4wZik7CiAKICAgICAgICAgY3VycmVudCA9IG5leHQ7CkBAIC02NDYsMTMgKzY0NiwxMyBAQAogCiAgICAgY29uc3QgVmVydGV4KiBsYXN0ID0gJihwZXJpbWV0ZXJbcGVyaW1ldGVyLnNpemUoKSAtIDFdKTsKICAgICBjb25zdCBWZXJ0ZXgqIGN1cnJlbnQgPSAmKHBlcmltZXRlclswXSk7Ci0gICAgdmVjMiBsYXN0Tm9ybWFsKGN1cnJlbnQtPnBvc2l0aW9uWzFdIC0gbGFzdC0+cG9zaXRpb25bMV0sCi0gICAgICAgICAgICBsYXN0LT5wb3NpdGlvblswXSAtIGN1cnJlbnQtPnBvc2l0aW9uWzBdKTsKKyAgICB2ZWMyIGxhc3ROb3JtYWwoY3VycmVudC0+eSAtIGxhc3QtPnksCisgICAgICAgICAgICBsYXN0LT54IC0gY3VycmVudC0+eCk7CiAgICAgbGFzdE5vcm1hbC5ub3JtYWxpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBlcmltZXRlci5zaXplKCk7IGkrKykgewogICAgICAgICBjb25zdCBWZXJ0ZXgqIG5leHQgPSAmKHBlcmltZXRlcltpICsgMSA+PSBwZXJpbWV0ZXIuc2l6ZSgpID8gMCA6IGkgKyAxXSk7Ci0gICAgICAgIHZlYzIgbmV4dE5vcm1hbChuZXh0LT5wb3NpdGlvblsxXSAtIGN1cnJlbnQtPnBvc2l0aW9uWzFdLAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzBdIC0gbmV4dC0+cG9zaXRpb25bMF0pOworICAgICAgICB2ZWMyIG5leHROb3JtYWwobmV4dC0+eSAtIGN1cnJlbnQtPnksCisgICAgICAgICAgICAgICAgY3VycmVudC0+eCAtIG5leHQtPngpOwogICAgICAgICBuZXh0Tm9ybWFsLm5vcm1hbGl6ZSgpOwogCiAgICAgICAgIHZlYzIgdG90YWxPZmZzZXQgPSB0b3RhbE9mZnNldEZyb21Ob3JtYWxzKGxhc3ROb3JtYWwsIG5leHROb3JtYWwpOwpAQCAtNjY0LDMwICs2NjQsMzAgQEAKICAgICAgICAgaW5uZXJPZmZzZXQgLT0gQUFPZmZzZXQ7CiAKICAgICAgICAgQWxwaGFWZXJ0ZXg6OnNldCgmYnVmZmVyW2N1cnJlbnRBQU91dGVySW5kZXgrK10sCi0gICAgICAgICAgICAgICAgY3VycmVudC0+cG9zaXRpb25bMF0gKyBvdXRlck9mZnNldC54LAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzFdICsgb3V0ZXJPZmZzZXQueSwKKyAgICAgICAgICAgICAgICBjdXJyZW50LT54ICsgb3V0ZXJPZmZzZXQueCwKKyAgICAgICAgICAgICAgICBjdXJyZW50LT55ICsgb3V0ZXJPZmZzZXQueSwKICAgICAgICAgICAgICAgICAwLjBmKTsKICAgICAgICAgQWxwaGFWZXJ0ZXg6OnNldCgmYnVmZmVyW2N1cnJlbnRBQU91dGVySW5kZXgrK10sCi0gICAgICAgICAgICAgICAgY3VycmVudC0+cG9zaXRpb25bMF0gKyBpbm5lck9mZnNldC54LAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzFdICsgaW5uZXJPZmZzZXQueSwKKyAgICAgICAgICAgICAgICBjdXJyZW50LT54ICsgaW5uZXJPZmZzZXQueCwKKyAgICAgICAgICAgICAgICBjdXJyZW50LT55ICsgaW5uZXJPZmZzZXQueSwKICAgICAgICAgICAgICAgICBwYWludEluZm8ubWF4QWxwaGEpOwogCiAgICAgICAgIEFscGhhVmVydGV4OjpzZXQoJmJ1ZmZlcltjdXJyZW50U3Ryb2tlSW5kZXgrK10sCi0gICAgICAgICAgICAgICAgY3VycmVudC0+cG9zaXRpb25bMF0gKyBpbm5lck9mZnNldC54LAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzFdICsgaW5uZXJPZmZzZXQueSwKKyAgICAgICAgICAgICAgICBjdXJyZW50LT54ICsgaW5uZXJPZmZzZXQueCwKKyAgICAgICAgICAgICAgICBjdXJyZW50LT55ICsgaW5uZXJPZmZzZXQueSwKICAgICAgICAgICAgICAgICBwYWludEluZm8ubWF4QWxwaGEpOwogICAgICAgICBBbHBoYVZlcnRleDo6c2V0KCZidWZmZXJbY3VycmVudFN0cm9rZUluZGV4KytdLAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzBdIC0gaW5uZXJPZmZzZXQueCwKLSAgICAgICAgICAgICAgICBjdXJyZW50LT5wb3NpdGlvblsxXSAtIGlubmVyT2Zmc2V0LnksCisgICAgICAgICAgICAgICAgY3VycmVudC0+eCAtIGlubmVyT2Zmc2V0LngsCisgICAgICAgICAgICAgICAgY3VycmVudC0+eSAtIGlubmVyT2Zmc2V0LnksCiAgICAgICAgICAgICAgICAgcGFpbnRJbmZvLm1heEFscGhhKTsKIAogICAgICAgICBBbHBoYVZlcnRleDo6c2V0KCZidWZmZXJbY3VycmVudEFBSW5uZXJJbmRleCsrXSwKLSAgICAgICAgICAgICAgICBjdXJyZW50LT5wb3NpdGlvblswXSAtIGlubmVyT2Zmc2V0LngsCi0gICAgICAgICAgICAgICAgY3VycmVudC0+cG9zaXRpb25bMV0gLSBpbm5lck9mZnNldC55LAorICAgICAgICAgICAgICAgIGN1cnJlbnQtPnggLSBpbm5lck9mZnNldC54LAorICAgICAgICAgICAgICAgIGN1cnJlbnQtPnkgLSBpbm5lck9mZnNldC55LAogICAgICAgICAgICAgICAgIHBhaW50SW5mby5tYXhBbHBoYSk7CiAgICAgICAgIEFscGhhVmVydGV4OjpzZXQoJmJ1ZmZlcltjdXJyZW50QUFJbm5lckluZGV4KytdLAotICAgICAgICAgICAgICAgIGN1cnJlbnQtPnBvc2l0aW9uWzBdIC0gb3V0ZXJPZmZzZXQueCwKLSAgICAgICAgICAgICAgICBjdXJyZW50LT5wb3NpdGlvblsxXSAtIG91dGVyT2Zmc2V0LnksCisgICAgICAgICAgICAgICAgY3VycmVudC0+eCAtIG91dGVyT2Zmc2V0LngsCisgICAgICAgICAgICAgICAgY3VycmVudC0+eSAtIG91dGVyT2Zmc2V0LnksCiAgICAgICAgICAgICAgICAgMC4wZik7CiAKICAgICAgICAgbGFzdCA9IGN1cnJlbnQ7CkBAIC03NDMsNyArNzQzLDcgQEAKICNpZiBWRVJURVhfREVCVUcKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHRlbXBWZXJ0aWNlcy5zaXplKCk7IGkrKykgewogICAgICAgICBBTE9HRCgib3JpZyBwYXRoOiBwb2ludCBhdCAlZiAlZiIsCi0gICAgICAgICAgICAgICAgdGVtcFZlcnRpY2VzW2ldLnBvc2l0aW9uWzBdLCB0ZW1wVmVydGljZXNbaV0ucG9zaXRpb25bMV0pOworICAgICAgICAgICAgICAgIHRlbXBWZXJ0aWNlc1tpXS54LCB0ZW1wVmVydGljZXNbaV0ueSk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTc4MCw3ICs3ODAsNyBAQAogICAgIHJlY3QuZkJvdHRvbSA9IGZtYXhmKHJlY3QuZkJvdHRvbSwgeSk7CiB9CiBzdGF0aWMgdm9pZCBleHBhbmRSZWN0VG9Db3ZlclZlcnRleChTa1JlY3QmIHJlY3QsIGNvbnN0IFZlcnRleCYgdmVydGV4KSB7Ci0gICAgZXhwYW5kUmVjdFRvQ292ZXJWZXJ0ZXgocmVjdCwgdmVydGV4LnBvc2l0aW9uWzBdLCB2ZXJ0ZXgucG9zaXRpb25bMV0pOworICAgIGV4cGFuZFJlY3RUb0NvdmVyVmVydGV4KHJlY3QsIHZlcnRleC54LCB2ZXJ0ZXgueSk7CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBUWVBFPgpAQCAtOTM5LDggKzkzOSw4IEBACiAgICAgfQogCiAgICAgaW50IHNpemUgPSBvdXRwdXRWZXJ0aWNlcy5zaXplKCk7Ci0gICAgaWYgKHNpemUgPj0gMiAmJiBvdXRwdXRWZXJ0aWNlc1swXS5wb3NpdGlvblswXSA9PSBvdXRwdXRWZXJ0aWNlc1tzaXplIC0gMV0ucG9zaXRpb25bMF0gJiYKLSAgICAgICAgICAgIG91dHB1dFZlcnRpY2VzWzBdLnBvc2l0aW9uWzFdID09IG91dHB1dFZlcnRpY2VzW3NpemUgLSAxXS5wb3NpdGlvblsxXSkgeworICAgIGlmIChzaXplID49IDIgJiYgb3V0cHV0VmVydGljZXNbMF0ueCA9PSBvdXRwdXRWZXJ0aWNlc1tzaXplIC0gMV0ueCAmJgorICAgICAgICAgICAgb3V0cHV0VmVydGljZXNbMF0ueSA9PSBvdXRwdXRWZXJ0aWNlc1tzaXplIC0gMV0ueSkgewogICAgICAgICBvdXRwdXRWZXJ0aWNlcy5wb3AoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvbGlicy9od3VpL1Byb2dyYW0uaCBiL2xpYnMvaHd1aS9Qcm9ncmFtLmgKaW5kZXggNGY5NGFmYy4uYmMwZjIxMSAxMDA2NDQKLS0tIGEvbGlicy9od3VpL1Byb2dyYW0uaAorKysgYi9saWJzL2h3dWkvUHJvZ3JhbS5oCkBAIC0yMDcsNyArMjA3LDcgQEAKICAgICAgKiB0aGUgZnJhZ21lbnQgc2hhZGVyLiBXaGVuIHRoaXMgbWV0aG9kIHJldHVybnMgdHJ1ZSwgdGhlIHByb2dyYW0gc2hvdWxkCiAgICAgICogYmUgcHJvdmlkZWQgd2l0aCBhIG1vZHVsYXRpb24gY29sb3IuCiAgICAgICovCi0gICAgYm9vbCBzZXRDb2xvcihjb25zdCBmbG9hdCByLCBjb25zdCBmbG9hdCBnLCBjb25zdCBmbG9hdCBiLCBjb25zdCBmbG9hdCBhKSB7CisgICAgYm9vbCBzZXRDb2xvck1vZHVsYXRlKGNvbnN0IGZsb2F0IGEpIHsKICAgICAgICAgbW9kdWxhdGUgPSBhIDwgQ09MT1JfQ09NUE9ORU5UX1RIUkVTSE9MRDsKICAgICAgICAgcmV0dXJuIG1vZHVsYXRlOwogICAgIH0KQEAgLTIxNyw3ICsyMTcsNyBAQAogICAgICAqIHRoZSBmcmFnbWVudCBzaGFkZXIuIFdoZW4gdGhpcyBtZXRob2QgcmV0dXJucyB0cnVlLCB0aGUgcHJvZ3JhbSBzaG91bGQKICAgICAgKiBiZSBwcm92aWRlZCB3aXRoIGEgbW9kdWxhdGlvbiBjb2xvci4KICAgICAgKi8KLSAgICBib29sIHNldEFscGhhOENvbG9yKGNvbnN0IGZsb2F0IHIsIGNvbnN0IGZsb2F0IGcsIGNvbnN0IGZsb2F0IGIsIGNvbnN0IGZsb2F0IGEpIHsKKyAgICBib29sIHNldEFscGhhOENvbG9yTW9kdWxhdGUoY29uc3QgZmxvYXQgciwgY29uc3QgZmxvYXQgZywgY29uc3QgZmxvYXQgYiwgY29uc3QgZmxvYXQgYSkgewogICAgICAgICBtb2R1bGF0ZSA9IGEgPCBDT0xPUl9DT01QT05FTlRfVEhSRVNIT0xEIHx8IHIgPiBDT0xPUl9DT01QT05FTlRfSU5WX1RIUkVTSE9MRCB8fAogICAgICAgICAgICAgICAgIGcgPiBDT0xPUl9DT01QT05FTlRfSU5WX1RIUkVTSE9MRCB8fCBiID4gQ09MT1JfQ09NUE9ORU5UX0lOVl9USFJFU0hPTEQ7CiAgICAgICAgIHJldHVybiBtb2R1bGF0ZTsKZGlmZiAtLWdpdCBhL2xpYnMvaHd1aS9Ta2lhU2hhZGVyLmNwcCBiL2xpYnMvaHd1aS9Ta2lhU2hhZGVyLmNwcAppbmRleCA3OTdlZDEwLi40ZjJhNDMyIDEwMDY0NAotLS0gYS9saWJzL2h3dWkvU2tpYVNoYWRlci5jcHAKKysrIGIvbGlicy9od3VpL1NraWFTaGFkZXIuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAKIH0KIAogdm9pZCBTa2lhQml0bWFwU2hhZGVyOjpzZXR1cFByb2dyYW0oUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QgbWF0NCYgbW9kZWxWaWV3LAotICAgICAgICBjb25zdCBTbmFwc2hvdCYgc25hcHNob3QsIEdMdWludCogdGV4dHVyZVVuaXQpIHsKKyAgICAgICAgY29uc3QgU25hcHNob3QmLCBHTHVpbnQqIHRleHR1cmVVbml0KSB7CiAgICAgR0x1aW50IHRleHR1cmVTbG90ID0gKCp0ZXh0dXJlVW5pdCkrKzsKICAgICBDYWNoZXM6OmdldEluc3RhbmNlKCkuYWN0aXZlVGV4dHVyZSh0ZXh0dXJlU2xvdCk7CiAKQEAgLTIyOCw3ICsyMjgsNyBAQAogfQogCiB2b2lkIFNraWFMaW5lYXJHcmFkaWVudFNoYWRlcjo6c2V0dXBQcm9ncmFtKFByb2dyYW0qIHByb2dyYW0sIGNvbnN0IG1hdDQmIG1vZGVsVmlldywKLSAgICAgICAgY29uc3QgU25hcHNob3QmIHNuYXBzaG90LCBHTHVpbnQqIHRleHR1cmVVbml0KSB7CisgICAgICAgIGNvbnN0IFNuYXBzaG90JiwgR0x1aW50KiB0ZXh0dXJlVW5pdCkgewogICAgIGlmIChDQ19VTkxJS0VMWSghbUlzU2ltcGxlKSkgewogICAgICAgICBHTHVpbnQgdGV4dHVyZVNsb3QgPSAoKnRleHR1cmVVbml0KSsrOwogICAgICAgICBDYWNoZXM6OmdldEluc3RhbmNlKCkuYWN0aXZlVGV4dHVyZSh0ZXh0dXJlU2xvdCk7CkBAIC0yNjQsNyArMjY0LDcgQEAKIFNraWFDaXJjdWxhckdyYWRpZW50U2hhZGVyOjpTa2lhQ2lyY3VsYXJHcmFkaWVudFNoYWRlcihmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCByYWRpdXMsCiAgICAgICAgIHVpbnQzMl90KiBjb2xvcnMsIGZsb2F0KiBwb3NpdGlvbnMsIGludCBjb3VudCwgU2tTaGFkZXIqIGtleSwgU2tTaGFkZXI6OlRpbGVNb2RlIHRpbGVNb2RlLAogICAgICAgICBTa01hdHJpeCogbWF0cml4LCBib29sIGJsZW5kKToKLSAgICAgICAgU2tpYVN3ZWVwR3JhZGllbnRTaGFkZXIoa0NpcmN1bGFyR3JhZGllbnQsIHgsIHksIGNvbG9ycywgcG9zaXRpb25zLCBjb3VudCwga2V5LAorICAgICAgICBTa2lhU3dlZXBHcmFkaWVudFNoYWRlcihrQ2lyY3VsYXJHcmFkaWVudCwgY29sb3JzLCBwb3NpdGlvbnMsIGNvdW50LCBrZXksCiAgICAgICAgICAgICAgICAgdGlsZU1vZGUsIG1hdHJpeCwgYmxlbmQpIHsKICAgICBTa01hdHJpeCB1bml0TWF0cml4OwogICAgIHRvQ2lyY3VsYXJVbml0TWF0cml4KHgsIHksIHJhZGl1cywgJnVuaXRNYXRyaXgpOwpAQCAtMzE0LDExICszMTQsMTIgQEAKICAgICBtSXNTaW1wbGUgPSBjb3VudCA9PSAyOwogfQogCi1Ta2lhU3dlZXBHcmFkaWVudFNoYWRlcjo6U2tpYVN3ZWVwR3JhZGllbnRTaGFkZXIoVHlwZSB0eXBlLCBmbG9hdCB4LCBmbG9hdCB5LCB1aW50MzJfdCogY29sb3JzLAorU2tpYVN3ZWVwR3JhZGllbnRTaGFkZXI6OlNraWFTd2VlcEdyYWRpZW50U2hhZGVyKFR5cGUgdHlwZSwgdWludDMyX3QqIGNvbG9ycywKICAgICAgICAgZmxvYXQqIHBvc2l0aW9ucywgaW50IGNvdW50LCBTa1NoYWRlcioga2V5LCBTa1NoYWRlcjo6VGlsZU1vZGUgdGlsZU1vZGUsCiAgICAgICAgIFNrTWF0cml4KiBtYXRyaXgsIGJvb2wgYmxlbmQpOgogICAgICAgICBTa2lhU2hhZGVyKHR5cGUsIGtleSwgdGlsZU1vZGUsIHRpbGVNb2RlLCBtYXRyaXgsIGJsZW5kKSwKICAgICAgICAgbUNvbG9ycyhjb2xvcnMpLCBtUG9zaXRpb25zKHBvc2l0aW9ucyksIG1Db3VudChjb3VudCkgeworICAgIC8vIHByb3RlY3RlZCBtZXRob2QsIHRoYXQgZG9lc24ndCBzZXR1cCBtVW5pdE1hdHJpeCAtIHNob3VsZCBiZSBoYW5kbGVkIGJ5IHN1YmNsYXNzCiAKICAgICBtSXNTaW1wbGUgPSBjb3VudCA9PSAyICYmIHRpbGVNb2RlID09IFNrU2hhZGVyOjprQ2xhbXBfVGlsZU1vZGU7CiB9CmRpZmYgLS1naXQgYS9saWJzL2h3dWkvU2tpYVNoYWRlci5oIGIvbGlicy9od3VpL1NraWFTaGFkZXIuaAppbmRleCBhNjM0MzFjLi45ZmM5OWE0IDEwMDY0NAotLS0gYS9saWJzL2h3dWkvU2tpYVNoYWRlci5oCisrKyBiL2xpYnMvaHd1aS9Ta2lhU2hhZGVyLmgKQEAgLTE5Miw3ICsxOTIsNyBAQAogICAgICAgICAgICAgR0x1aW50KiB0ZXh0dXJlVW5pdCk7CiAKIHByb3RlY3RlZDoKLSAgICBTa2lhU3dlZXBHcmFkaWVudFNoYWRlcihUeXBlIHR5cGUsIGZsb2F0IHgsIGZsb2F0IHksIHVpbnQzMl90KiBjb2xvcnMsIGZsb2F0KiBwb3NpdGlvbnMsCisgICAgU2tpYVN3ZWVwR3JhZGllbnRTaGFkZXIoVHlwZSB0eXBlLCB1aW50MzJfdCogY29sb3JzLCBmbG9hdCogcG9zaXRpb25zLAogICAgICAgICAgICAgaW50IGNvdW50LCBTa1NoYWRlcioga2V5LCBTa1NoYWRlcjo6VGlsZU1vZGUgdGlsZU1vZGUsIFNrTWF0cml4KiBtYXRyaXgsIGJvb2wgYmxlbmQpOwogICAgIFNraWFTd2VlcEdyYWRpZW50U2hhZGVyKCkgewogICAgIH0KZGlmZiAtLWdpdCBhL2xpYnMvaHd1aS9UZXh0RHJvcFNoYWRvd0NhY2hlLmNwcCBiL2xpYnMvaHd1aS9UZXh0RHJvcFNoYWRvd0NhY2hlLmNwcAppbmRleCAwYjJjMTMwLi42ZjI3YjM2IDEwMDY0NAotLS0gYS9saWJzL2h3dWkvVGV4dERyb3BTaGFkb3dDYWNoZS5jcHAKKysrIGIvbGlicy9od3VpL1RleHREcm9wU2hhZG93Q2FjaGUuY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAKIC8vIENhbGxiYWNrcwogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi12b2lkIFRleHREcm9wU2hhZG93Q2FjaGU6Om9wZXJhdG9yKCkoU2hhZG93VGV4dCYgdGV4dCwgU2hhZG93VGV4dHVyZSomIHRleHR1cmUpIHsKK3ZvaWQgVGV4dERyb3BTaGFkb3dDYWNoZTo6b3BlcmF0b3IoKShTaGFkb3dUZXh0JiwgU2hhZG93VGV4dHVyZSomIHRleHR1cmUpIHsKICAgICBpZiAodGV4dHVyZSkgewogICAgICAgICBtU2l6ZSAtPSB0ZXh0dXJlLT5iaXRtYXBTaXplOwogCmRpZmYgLS1naXQgYS9saWJzL2h3dWkvVGV4dHVyZUNhY2hlLmNwcCBiL2xpYnMvaHd1aS9UZXh0dXJlQ2FjaGUuY3BwCmluZGV4IGVkMGE3OWEuLmE1NmViMzMgMTAwNjQ0Ci0tLSBhL2xpYnMvaHd1aS9UZXh0dXJlQ2FjaGUuY3BwCisrKyBiL2xpYnMvaHd1aS9UZXh0dXJlQ2FjaGUuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAKIC8vIENhbGxiYWNrcwogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi12b2lkIFRleHR1cmVDYWNoZTo6b3BlcmF0b3IoKShTa0JpdG1hcComIGJpdG1hcCwgVGV4dHVyZSomIHRleHR1cmUpIHsKK3ZvaWQgVGV4dHVyZUNhY2hlOjpvcGVyYXRvcigpKFNrQml0bWFwKiYsIFRleHR1cmUqJiB0ZXh0dXJlKSB7CiAgICAgLy8gVGhpcyB3aWxsIGJlIGNhbGxlZCBhbHJlYWR5IGxvY2tlZAogICAgIGlmICh0ZXh0dXJlKSB7CiAgICAgICAgIG1TaXplIC09IHRleHR1cmUtPmJpdG1hcFNpemU7CmRpZmYgLS1naXQgYS9saWJzL2h3dWkvVmVydGV4LmggYi9saWJzL2h3dWkvVmVydGV4LmgKaW5kZXggNzkwZDRmYy4uMzUxY2U3MSAxMDA2NDQKLS0tIGEvbGlicy9od3VpL1ZlcnRleC5oCisrKyBiL2xpYnMvaHd1aS9WZXJ0ZXguaApAQCAtMzUsMTEgKzM1LDExIEBACiAgICAgICovCiAgICAgc3RhdGljIGNvbnN0IGZsb2F0IGdHZW9tZXRyeUZ1ZGdlRmFjdG9yID0gMC4wNjU2ZjsKIAotICAgIGZsb2F0IHBvc2l0aW9uWzJdOworICAgIGZsb2F0IHgsIHk7CiAKICAgICBzdGF0aWMgaW5saW5lIHZvaWQgc2V0KFZlcnRleCogdmVydGV4LCBmbG9hdCB4LCBmbG9hdCB5KSB7Ci0gICAgICAgIHZlcnRleFswXS5wb3NpdGlvblswXSA9IHg7Ci0gICAgICAgIHZlcnRleFswXS5wb3NpdGlvblsxXSA9IHk7CisgICAgICAgIHZlcnRleFswXS54ID0geDsKKyAgICAgICAgdmVydGV4WzBdLnkgPSB5OwogICAgIH0KIAogICAgIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXQoVmVydGV4KiB2ZXJ0ZXgsIHZlYzIgdmFsKSB7CkBAIC00Nyw3ICs0Nyw3IEBACiAgICAgfQogCiAgICAgc3RhdGljIGlubGluZSB2b2lkIGNvcHlXaXRoT2Zmc2V0KFZlcnRleCogdmVydGV4LCBjb25zdCBWZXJ0ZXgmIHNyYywgZmxvYXQgeCwgZmxvYXQgeSkgewotICAgICAgICBzZXQodmVydGV4LCBzcmMucG9zaXRpb25bMF0gKyB4LCBzcmMucG9zaXRpb25bMV0gKyB5KTsKKyAgICAgICAgc2V0KHZlcnRleCwgc3JjLnggKyB4LCBzcmMueSArIHkpOwogICAgIH0KIAogfTsgLy8gc3RydWN0IFZlcnRleApAQCAtNTYsMTkgKzU2LDE5IEBACiAgKiBTaW1wbGUgc3RydWN0dXJlIHRvIGRlc2NyaWJlIGEgdmVydGV4IHdpdGggYSBwb3NpdGlvbiBhbmQgdGV4dHVyZSBVVi4KICAqLwogc3RydWN0IFRleHR1cmVWZXJ0ZXggewotICAgIGZsb2F0IHBvc2l0aW9uWzJdOwotICAgIGZsb2F0IHRleHR1cmVbMl07CisgICAgZmxvYXQgeCwgeTsKKyAgICBmbG9hdCB1LCB2OwogCiAgICAgc3RhdGljIGlubGluZSB2b2lkIHNldChUZXh0dXJlVmVydGV4KiB2ZXJ0ZXgsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHUsIGZsb2F0IHYpIHsKLSAgICAgICAgdmVydGV4WzBdLnBvc2l0aW9uWzBdID0geDsKLSAgICAgICAgdmVydGV4WzBdLnBvc2l0aW9uWzFdID0geTsKLSAgICAgICAgdmVydGV4WzBdLnRleHR1cmVbMF0gPSB1OwotICAgICAgICB2ZXJ0ZXhbMF0udGV4dHVyZVsxXSA9IHY7CisgICAgICAgIHZlcnRleFswXS54ID0geDsKKyAgICAgICAgdmVydGV4WzBdLnkgPSB5OworICAgICAgICB2ZXJ0ZXhbMF0udSA9IHU7CisgICAgICAgIHZlcnRleFswXS52ID0gdjsKICAgICB9CiAKICAgICBzdGF0aWMgaW5saW5lIHZvaWQgc2V0VVYoVGV4dHVyZVZlcnRleCogdmVydGV4LCBmbG9hdCB1LCBmbG9hdCB2KSB7Ci0gICAgICAgIHZlcnRleFswXS50ZXh0dXJlWzBdID0gdTsKLSAgICAgICAgdmVydGV4WzBdLnRleHR1cmVbMV0gPSB2OworICAgICAgICB2ZXJ0ZXhbMF0udSA9IHU7CisgICAgICAgIHZlcnRleFswXS52ID0gdjsKICAgICB9CiB9OyAvLyBzdHJ1Y3QgVGV4dHVyZVZlcnRleAogCkBAIC03NiwxNyArNzYsMTcgQEAKICAqIFNpbXBsZSBzdHJ1Y3R1cmUgdG8gZGVzY3JpYmUgYSB2ZXJ0ZXggd2l0aCBhIHBvc2l0aW9uLCB0ZXh0dXJlIFVWIGFuZCBBUkdCIGNvbG9yLgogICovCiBzdHJ1Y3QgQ29sb3JUZXh0dXJlVmVydGV4IDogVGV4dHVyZVZlcnRleCB7Ci0gICAgZmxvYXQgY29sb3JbNF07CisgICAgZmxvYXQgciwgZywgYiwgYTsKIAogICAgIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXQoQ29sb3JUZXh0dXJlVmVydGV4KiB2ZXJ0ZXgsIGZsb2F0IHgsIGZsb2F0IHksCiAgICAgICAgICAgICBmbG9hdCB1LCBmbG9hdCB2LCBpbnQgY29sb3IpIHsKICAgICAgICAgVGV4dHVyZVZlcnRleDo6c2V0KHZlcnRleCwgeCwgeSwgdSwgdik7CiAKICAgICAgICAgY29uc3QgZmxvYXQgYSA9ICgoY29sb3IgPj4gMjQpICYgMHhmZikgLyAyNTUuMGY7Ci0gICAgICAgIHZlcnRleFswXS5jb2xvclswXSA9IGEgKiAoKGNvbG9yID4+IDE2KSAmIDB4ZmYpIC8gMjU1LjBmOwotICAgICAgICB2ZXJ0ZXhbMF0uY29sb3JbMV0gPSBhICogKChjb2xvciA+PiAgOCkgJiAweGZmKSAvIDI1NS4wZjsKLSAgICAgICAgdmVydGV4WzBdLmNvbG9yWzJdID0gYSAqICgoY29sb3IgICAgICApICYgMHhmZikgLyAyNTUuMGY7Ci0gICAgICAgIHZlcnRleFswXS5jb2xvclszXSA9IGE7CisgICAgICAgIHZlcnRleFswXS5yID0gYSAqICgoY29sb3IgPj4gMTYpICYgMHhmZikgLyAyNTUuMGY7CisgICAgICAgIHZlcnRleFswXS5nID0gYSAqICgoY29sb3IgPj4gIDgpICYgMHhmZikgLyAyNTUuMGY7CisgICAgICAgIHZlcnRleFswXS5iID0gYSAqICgoY29sb3IgICAgICApICYgMHhmZikgLyAyNTUuMGY7CisgICAgICAgIHZlcnRleFswXS5hID0gYTsKICAgICB9CiB9OyAvLyBzdHJ1Y3QgQ29sb3JUZXh0dXJlVmVydGV4CiAKQEAgLTEwMyw3ICsxMDMsNyBAQAogCiAgICAgc3RhdGljIGlubGluZSB2b2lkIGNvcHlXaXRoT2Zmc2V0KEFscGhhVmVydGV4KiB2ZXJ0ZXgsIGNvbnN0IEFscGhhVmVydGV4JiBzcmMsCiAgICAgICAgICAgICBmbG9hdCB4LCBmbG9hdCB5KSB7Ci0gICAgICAgIFZlcnRleDo6c2V0KHZlcnRleCwgc3JjLnBvc2l0aW9uWzBdICsgeCwgc3JjLnBvc2l0aW9uWzFdICsgeSk7CisgICAgICAgIFZlcnRleDo6c2V0KHZlcnRleCwgc3JjLnggKyB4LCBzcmMueSArIHkpOwogICAgICAgICB2ZXJ0ZXhbMF0uYWxwaGEgPSBzcmMuYWxwaGE7CiAgICAgfQogCmRpZmYgLS1naXQgYS9saWJzL2h3dWkvZm9udC9DYWNoZVRleHR1cmUuY3BwIGIvbGlicy9od3VpL2ZvbnQvQ2FjaGVUZXh0dXJlLmNwcAppbmRleCBkNWYzOGI1Li4yNGZmYjgwIDEwMDY0NAotLS0gYS9saWJzL2h3dWkvZm9udC9DYWNoZVRleHR1cmUuY3BwCisrKyBiL2xpYnMvaHd1aS9mb250L0NhY2hlVGV4dHVyZS5jcHAKQEAgLTExNCw3ICsxMTQsNyBAQAogICAgICAgICAgICAgbU1lc2goTlVMTCksIG1DdXJyZW50UXVhZCgwKSwgbU1heFF1YWRDb3VudChtYXhRdWFkQ291bnQpLAogICAgICAgICAgICAgbUNhY2hlcyhDYWNoZXM6OmdldEluc3RhbmNlKCkpIHsKICAgICBtQ2FjaGVCbG9ja3MgPSBuZXcgQ2FjaGVCbG9jayhURVhUVVJFX0JPUkRFUl9TSVpFLCBURVhUVVJFX0JPUkRFUl9TSVpFLAotICAgICAgICAgICAgbVdpZHRoIC0gVEVYVFVSRV9CT1JERVJfU0laRSwgbUhlaWdodCAtIFRFWFRVUkVfQk9SREVSX1NJWkUsIHRydWUpOworICAgICAgICAgICAgbVdpZHRoIC0gVEVYVFVSRV9CT1JERVJfU0laRSwgbUhlaWdodCAtIFRFWFRVUkVfQk9SREVSX1NJWkUpOwogCiAgICAgLy8gT3BlbkdMIEVTIDMuMCsgbGV0cyB1cyBzcGVjaWZ5IHRoZSByb3cgbGVuZ3RoIGZvciB1bnBhY2sgb3BlcmF0aW9ucyBzdWNoCiAgICAgLy8gYXMgZ2xUZXhTdWJJbWFnZTJEKCkuIFRoaXMgYWxsb3dzIHVzIHRvIHVwbG9hZCBhIHN1Yi1yZWN0YW5nbGUgb2YgYSB0ZXh0dXJlLgpAQCAtMTQzLDcgKzE0Myw3IEBACiAgICAgLy8gcmVzZXQsIHRoZW4gY3JlYXRlIGEgbmV3IHJlbWFpbmRlciBzcGFjZSB0byBzdGFydCBhZ2FpbgogICAgIHJlc2V0KCk7CiAgICAgbUNhY2hlQmxvY2tzID0gbmV3IENhY2hlQmxvY2soVEVYVFVSRV9CT1JERVJfU0laRSwgVEVYVFVSRV9CT1JERVJfU0laRSwKLSAgICAgICAgICAgIG1XaWR0aCAtIFRFWFRVUkVfQk9SREVSX1NJWkUsIG1IZWlnaHQgLSBURVhUVVJFX0JPUkRFUl9TSVpFLCB0cnVlKTsKKyAgICAgICAgICAgIG1XaWR0aCAtIFRFWFRVUkVfQk9SREVSX1NJWkUsIG1IZWlnaHQgLSBURVhUVVJFX0JPUkRFUl9TSVpFKTsKIH0KIAogdm9pZCBDYWNoZVRleHR1cmU6OnJlbGVhc2VNZXNoKCkgewpkaWZmIC0tZ2l0IGEvbGlicy9od3VpL2ZvbnQvQ2FjaGVUZXh0dXJlLmggYi9saWJzL2h3dWkvZm9udC9DYWNoZVRleHR1cmUuaAppbmRleCA2MWIzOGY4Li40Y2M0ZjIyIDEwMDY0NAotLS0gYS9saWJzL2h3dWkvZm9udC9DYWNoZVRleHR1cmUuaAorKysgYi9saWJzL2h3dWkvZm9udC9DYWNoZVRleHR1cmUuaApAQCAtNTQsNyArNTQsNyBAQAogICAgIENhY2hlQmxvY2sqIG1OZXh0OwogICAgIENhY2hlQmxvY2sqIG1QcmV2OwogCi0gICAgQ2FjaGVCbG9jayh1aW50MTZfdCB4LCB1aW50MTZfdCB5LCB1aW50MTZfdCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0LCBib29sIGVtcHR5ID0gZmFsc2UpOgorICAgIENhY2hlQmxvY2sodWludDE2X3QgeCwgdWludDE2X3QgeSwgdWludDE2X3Qgd2lkdGgsIHVpbnQxNl90IGhlaWdodCk6CiAgICAgICAgICAgICBtWCh4KSwgbVkoeSksIG1XaWR0aCh3aWR0aCksIG1IZWlnaHQoaGVpZ2h0KSwgbU5leHQoTlVMTCksIG1QcmV2KE5VTEwpIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL21lZGlhL2phdmEvYW5kcm9pZC9tZWRpYS9JbWFnZS5qYXZhIGIvbWVkaWEvamF2YS9hbmRyb2lkL21lZGlhL0ltYWdlLmphdmEKaW5kZXggMjNhYmNlNy4uYTM0NmUxNyAxMDA2NDQKLS0tIGEvbWVkaWEvamF2YS9hbmRyb2lkL21lZGlhL0ltYWdlLmphdmEKKysrIGIvbWVkaWEvamF2YS9hbmRyb2lkL21lZGlhL0ltYWdlLmphdmEKQEAgLTIxLDcgKzIxLDggQEAKIAogLyoqCiAgKiA8cD5BIHNpbmdsZSBjb21wbGV0ZSBpbWFnZSBidWZmZXIgdG8gdXNlIHdpdGggYSBtZWRpYSBzb3VyY2Ugc3VjaCBhcyBhCi0gKiB7QGxpbmsgTWVkaWFDb2RlY30uPC9wPgorICoge0BsaW5rIE1lZGlhQ29kZWN9IG9yIGEKKyAqIHtAbGluayBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIuQ2FtZXJhRGV2aWNlIENhbWVyYURldmljZX0uPC9wPgogICoKICAqIDxwPlRoaXMgY2xhc3MgYWxsb3dzIGZvciBlZmZpY2llbnQgZGlyZWN0IGFwcGxpY2F0aW9uIGFjY2VzcyB0byB0aGUgcGl4ZWwKICAqIGRhdGEgb2YgdGhlIEltYWdlIHRocm91Z2ggb25lIG9yIG1vcmUKQEAgLTgyLDYgKzgzLDE1IEBACiAgICAgICogICAgIHBsYW5lICg0OjI6MCBzdWJzYW1wbGluZykuIEVhY2ggcGl4ZWwgc2FtcGxlIGluIGVhY2ggcGxhbmUgaGFzIDggYml0cy4KICAgICAgKiAgICAgRWFjaCBwbGFuZSBoYXMgaXRzIG93biByb3cgc3RyaWRlIGFuZCBwaXhlbCBzdHJpZGUuPC90ZD4KICAgICAgKiA8L3RyPgorICAgICAqIDx0cj4KKyAgICAgKiAgIDx0ZD57QGxpbmsgYW5kcm9pZC5ncmFwaGljcy5JbWFnZUZvcm1hdCNSQVdfU0VOU09SIFJBV19TRU5TT1J9PC90ZD4KKyAgICAgKiAgIDx0ZD4xPC90ZD4KKyAgICAgKiAgIDx0ZD5BIHNpbmdsZSBwbGFuZSBvZiByYXcgc2Vuc29yIGltYWdlIGRhdGEsIHdpdGggMTYgYml0cyBwZXIgY29sb3IKKyAgICAgKiAgICAgc2FtcGxlLiBUaGUgZGV0YWlscyBvZiB0aGUgbGF5b3V0IG5lZWQgdG8gYmUgcXVlcmllZCBmcm9tIHRoZSBzb3VyY2Ugb2YKKyAgICAgKiAgICAgdGhlIHJhdyBzZW5zb3IgZGF0YSwgc3VjaCBhcworICAgICAqICAgICB7QGxpbmsgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYURldmljZSBDYW1lcmFEZXZpY2V9LgorICAgICAqICAgPC90ZD4KKyAgICAgKiA8L3RyPgogICAgICAqIDwvdGFibGU+CiAgICAgICoKICAgICAgKiBAc2VlIGFuZHJvaWQuZ3JhcGhpY3MuSW1hZ2VGb3JtYXQKZGlmZiAtLWdpdCBhL21lZGlhL2phdmEvYW5kcm9pZC9tZWRpYS9JbWFnZVJlYWRlci5qYXZhIGIvbWVkaWEvamF2YS9hbmRyb2lkL21lZGlhL0ltYWdlUmVhZGVyLmphdmEKaW5kZXggZDQ1NGM0Mi4uMWJkMzJjNCAxMDA2NDQKLS0tIGEvbWVkaWEvamF2YS9hbmRyb2lkL21lZGlhL0ltYWdlUmVhZGVyLmphdmEKKysrIGIvbWVkaWEvamF2YS9hbmRyb2lkL21lZGlhL0ltYWdlUmVhZGVyLmphdmEKQEAgLTMyLDcgKzMyLDggQEAKICAqIHJlbmRlcmVkIGludG8gYSB7QGxpbmsgYW5kcm9pZC52aWV3LlN1cmZhY2V9PC9wPgogICoKICAqIDxwPlNldmVyYWwgQW5kcm9pZCBtZWRpYSBBUEkgY2xhc3NlcyBhY2NlcHQgU3VyZmFjZSBvYmplY3RzIGFzIHRhcmdldHMgdG8KLSAqIHJlbmRlciB0bywgaW5jbHVkaW5nIHtAbGluayBNZWRpYVBsYXllcn0sIHtAbGluayBNZWRpYUNvZGVjfSwgYW5kCisgKiByZW5kZXIgdG8sIGluY2x1ZGluZyB7QGxpbmsgTWVkaWFQbGF5ZXJ9LCB7QGxpbmsgTWVkaWFDb2RlY30sCisgKiB7QGxpbmsgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyLkNhbWVyYURldmljZX0sIGFuZAogICoge0BsaW5rIGFuZHJvaWQucmVuZGVyc2NyaXB0LkFsbG9jYXRpb24gUmVuZGVyU2NyaXB0IEFsbG9jYXRpb25zfS4gVGhlIGltYWdlCiAgKiBzaXplcyBhbmQgZm9ybWF0cyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggZWFjaCBzb3VyY2UgdmFyeSwgYW5kIHNob3VsZCBiZQogICogY2hlY2tlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHNwZWNpZmljIEFQSS48L3A+CmRpZmYgLS1naXQgYS9tZWRpYS9qYXZhL2FuZHJvaWQvbWVkaWEvV2ViVnR0UmVuZGVyZXIuamF2YSBiL21lZGlhL2phdmEvYW5kcm9pZC9tZWRpYS9XZWJWdHRSZW5kZXJlci5qYXZhCmluZGV4IDRkZWMwODEuLmIwOWM1YmQgMTAwNjQ0Ci0tLSBhL21lZGlhL2phdmEvYW5kcm9pZC9tZWRpYS9XZWJWdHRSZW5kZXJlci5qYXZhCisrKyBiL21lZGlhL2phdmEvYW5kcm9pZC9tZWRpYS9XZWJWdHRSZW5kZXJlci5qYXZhCkBAIC0xMTM2LDExICsxMTM2LDE1IEBACiAgICAgfQogCiAgICAgcHVibGljIFdlYlZ0dFJlbmRlcmluZ1dpZGdldChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycykgewotICAgICAgICB0aGlzKGNvbnRleHQsIG51bGwsIDApOworICAgICAgICB0aGlzKGNvbnRleHQsIGF0dHJzLCAwKTsKICAgICB9CiAKLSAgICBwdWJsaWMgV2ViVnR0UmVuZGVyaW5nV2lkZ2V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKKyAgICBwdWJsaWMgV2ViVnR0UmVuZGVyaW5nV2lkZ2V0KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGVBdHRyKSB7CisgICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlQXR0ciwgMCk7CisgICAgfQorCisgICAgcHVibGljIFdlYlZ0dFJlbmRlcmluZ1dpZGdldChDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7CisgICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZUF0dHIsIGRlZlN0eWxlUmVzKTsKIAogICAgICAgICAvLyBDYW5ub3QgcmVuZGVyIHRleHQgb3ZlciB2aWRlbyB3aGVuIGxheWVyIHR5cGUgaXMgaGFyZHdhcmUuCiAgICAgICAgIHNldExheWVyVHlwZShWaWV3LkxBWUVSX1RZUEVfU09GVFdBUkUsIG51bGwpOwpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWF6LXJBWi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1hei1yQVovc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY5ZTZhYQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1hei1yQVovc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiJUYW0geWVkyZlrbMmZbcmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RpdGxlIiBtc2dpZD0iNTQ2OTM2NTgwOTU2NzQ4NjYwMiI+IlRhbSBiyZlycGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90ZXh0IiBtc2dpZD0iMTg3ODAyMTI4Mjc1ODg5NjU5MyI+IkLDvHTDvG4gZGF0YW7EsW4gcW/Fn3VsbXXFnyBtYXNhw7xzdMO8IGtvbXDDvHRlcsmZIHJlemVydiBvbHVubWFzxLEgc29yxJ91c3UgZ8O2bmTJmXJpbGliLiBCdW5hIGljYXrJmSB2ZXJtyZlrIGlzdMmZeWlyc2luaXogbWk/XG5cbsaPZ8mZciBidSBzb3LEn3VudSBnw7ZuZMmZcm3JmW1pc2luaXpzyZksIGJ1IHByb3Nlc2luIGRhdmFtIGV0bcmZc2luyZkgaWNhesmZIHZlcm3JmXlpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNDIxNzIyODc0Nzc2OTY0NDA2OCI+Ik3JmWx1bWF0bGFyxLFtxLEgeWVkyZlrbMmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNjAwOTExOTExNTU4MTA5NzcwOCI+IlJlemVydiBldG3JmXlpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90ZXh0IiBtc2dpZD0iNzQ5OTg2NjcyODAzMDQ2MTc3NiI+IlFvxZ91bG11xZ8gc3RvbMO8c3TDvCBrb21ww7x0ZXJkyZluIHRhbSBiyZlycGEgdMmZbMmZYiBvbHVudXIuIEJ1bmEgaWNhesmZIHZlcmlsc2luP1xuXG5CyZlycGFuxLEgc2l6IMO2esO8bsO8eiB0yZlsyZliIGV0bcmZbWlzaW5penPJmSwgYnUgyZltyZlsaXl5YXTEsSBkYXZhbSBldGRpcm3JmXlpbi4gQnUgY2loYXpkYWvEsSBpc3TJmW5pbMmZbiBtyZlsdW1hdMSxIGTJmXlpxZ9kaXLJmWPJmWsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3dfcmVzdG9yZV9idXR0b25fbGFiZWwiIG1zZ2lkPSIzMDgxMjg2NzUyMjc3MTI3ODI3Ij4iTcmZbHVtYXRsYXLEsW3EsSBiyZlycGEgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTcyNDM2NzMzNDQ1MzEwNDM3OCI+IkLJmXJwYSBldG3JmXlpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1cnJlbnRfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjgyNjgxODk1NTU1NzgyOTgwNjciPiJMw7x0ZsmZbiwgYcWfYcSfxLFkYSBjYXJpIHllZMmZayBwYXJvbHVudXp1IGRheGlsIGVkaW46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fcmVzdG9yZV90ZXh0IiBtc2dpZD0iMTU3MDg2NDkxNjg1NTIwODk5MiI+IkzDvHRmyZluLCBhxZ9hxJ/EsWRhIGNpaGF6IMWfaWZyyZlsyZltyZkgcGFyb2x1bnUgZGF4aWwgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXZpY2VfZW5jcnlwdGlvbl9iYWNrdXBfdGV4dCIgbXNnaWQ9IjU4NjY1OTA3NjI2NzI4NDQ2NjQiPiJMw7x0ZsmZbiwgYcWfYcSfxLFkYSBjaWhheiDFn2lmcsmZbMmZbcmZIHBhcm9sdW51enUgZGF4aWwgZWRpbi4gQnUgeWVkyZlrIGFyeGl2aW5pIMWfaWZyyZlsyZltyZlrIMO8w6fDvG4gZMmZIGlzdGlmYWTJmSBvbHVuYWNhcS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI0OTgxNTg1NzE0Nzk1MjMzMDk5Ij4iVGFtIHllZMmZayBkYXRhIMWfaWZyyZlsyZltyZlkyZluIGlzdGlmYWTJmSDDvMOnw7xuIMWfaWZyyZkgZGF4aWwgZWRpbi4gxo9nyZlyIGJvxZ8gYnVyYXjEsWxzYSwgY2FyaSB5ZWTJmWsgxZ9pZnLJmSBpc3RpZmFkyZkgb2x1bmFjYXE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF9vcHRpb25hbCIgbXNnaWQ9IjEzNTAxMzczNDU5MDc1NzkzMDYiPiJCw7x0w7xuIHllZMmZayBkYXRhbsSxIMWfaWZyyZlsyZltyZlrIGlzdMmZeWlyc2luaXpzyZksIGHFn2HEn8SxZGEgcGFyb2wgZGF4aWwgZWRpbjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNjE0MDg5ODUyNTU4MDcxMDgyMyI+IkLJmXJwYSBtyZlsdW1hdGxhcsSxIMWfaWZyyZlsyZluaWJzyZksIMWfaWZyyZluaSBhxZ9hxJ/EsWRhIGRheGlsIGVkaW46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfYmFja3VwX3N0YXJ0ZWQiIG1zZ2lkPSI1NTAzNTQyODE0NTI3NTYxMjEiPiJSZXplcnYgZWRpbGlyIC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9lbmRlZCIgbXNnaWQ9IjM4MTgwODA3Njk1NDg3MjY0MjQiPiJZZWTJmWtsyZltyZkgc29uYSDDp2F0ZMSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9zdGFydGVkIiBtc2dpZD0iNzg4MTY3OTIxODk3MTI3NzM4NSI+IkLJmXJwYSBiYcWfbGF5xLFyLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9lbmRlZCIgbXNnaWQ9IjE3NjQwNDE2MzkxOTk2OTYxMzIiPiJCyZlycGEgc29uYSDDp2F0ZMSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfdGltZW91dCIgbXNnaWQ9IjUyNzY1OTg1ODcwODc2MjY4NzciPiLGj23JmWxpeXlhdCB2YXh0xLEgYml0ZGkiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1hei9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1hei9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjllNmFhCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWF6L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICAKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9jb25maXJtX3RpdGxlIiBtc2dpZD0iODI3NTYzNzI0MjA5MzAzMzQ1Ij4iVGFtIHllZMmZa2zJmW3JmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90aXRsZSIgbXNnaWQ9IjU0NjkzNjU4MDk1Njc0ODY2MDIiPiJUYW0gYsmZcnBhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGV4dCIgbXNnaWQ9IjE4NzgwMjEyODI3NTg4OTY1OTMiPiJCw7x0w7xuIGRhdGFuxLFuIHFvxZ91bG11xZ8gbWFzYcO8c3TDvCBrb21ww7x0ZXLJmSByZXplcnYgb2x1bm1hc8SxIHNvcsSfdXN1IGfDtm5kyZlyaWxpYi4gQnVuYSBpY2F6yZkgdmVybcmZayBpc3TJmXlpcnNpbml6IG1pP1xuXG7Gj2fJmXIgYnUgc29yxJ91bnUgZ8O2bmTJmXJtyZltaXNpbml6c8mZLCBidSBwcm9zZXNpbiBkYXZhbSBldG3JmXNpbsmZIGljYXrJmSB2ZXJtyZl5aW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3dfYmFja3VwX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjQyMTcyMjg3NDc3Njk2NDQwNjgiPiJNyZlsdW1hdGxhcsSxbcSxIHllZMmZa2zJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnlfYmFja3VwX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjYwMDkxMTkxMTU1ODEwOTc3MDgiPiJSZXplcnYgZXRtyZl5aW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGV4dCIgbXNnaWQ9Ijc0OTk4NjY3MjgwMzA0NjE3NzYiPiJRb8WfdWxtdcWfIHN0b2zDvHN0w7wga29tcMO8dGVyZMmZbiB0YW0gYsmZcnBhIHTJmWzJmWIgb2x1bnVyLiBCdW5hIGljYXrJmSB2ZXJpbHNpbj9cblxuQsmZcnBhbsSxIHNpeiDDtnrDvG7DvHogdMmZbMmZYiBldG3JmW1pc2luaXpzyZksIGJ1IMmZbcmZbGl5eWF0xLEgZGF2YW0gZXRkaXJtyZl5aW4uIEJ1IGNpaGF6ZGFrxLEgaXN0yZluaWzJmW4gbcmZbHVtYXTEsSBkyZl5acWfZGlyyZljyZlrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMzA4MTI4Njc1MjI3NzEyNzgyNyI+Ik3JmWx1bWF0bGFyxLFtxLEgYsmZcnBhIGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjE3MjQzNjczMzQ0NTMxMDQzNzgiPiJCyZlycGEgZXRtyZl5aW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjdXJyZW50X3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI4MjY4MTg5NTU1NTc4Mjk4MDY3Ij4iTMO8dGbJmW4sIGHFn2HEn8SxZGEgY2FyaSB5ZWTJmWsgcGFyb2x1bnV6dSBkYXhpbCBlZGluOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX3Jlc3RvcmVfdGV4dCIgbXNnaWQ9IjE1NzA4NjQ5MTY4NTUyMDg5OTIiPiJMw7x0ZsmZbiwgYcWfYcSfxLFkYSBjaWhheiDFn2lmcsmZbMmZbcmZIHBhcm9sdW51IGRheGlsIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fYmFja3VwX3RleHQiIG1zZ2lkPSI1ODY2NTkwNzYyNjcyODQ0NjY0Ij4iTMO8dGbJmW4sIGHFn2HEn8SxZGEgY2loYXogxZ9pZnLJmWzJmW3JmSBwYXJvbHVudXp1IGRheGlsIGVkaW4uIEJ1IHllZMmZayBhcnhpdmluaSDFn2lmcsmZbMmZbcmZayDDvMOnw7xuIGTJmSBpc3RpZmFkyZkgb2x1bmFjYXEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNDk4MTU4NTcxNDc5NTIzMzA5OSI+IlRhbSB5ZWTJmWsgZGF0YSDFn2lmcsmZbMmZbcmZZMmZbiBpc3RpZmFkyZkgw7zDp8O8biDFn2lmcsmZIGRheGlsIGVkaW4uIMaPZ8mZciBib8WfIGJ1cmF4xLFsc2EsIGNhcmkgeWVkyZlrIMWfaWZyyZkgaXN0aWZhZMmZIG9sdW5hY2FxOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9lbmNfcGFzc3dvcmRfb3B0aW9uYWwiIG1zZ2lkPSIxMzUwMTM3MzQ1OTA3NTc5MzA2Ij4iQsO8dMO8biB5ZWTJmWsgZGF0YW7EsSDFn2lmcsmZbMmZbcmZayBpc3TJmXlpcnNpbml6c8mZLCBhxZ9hxJ/EsWRhIHBhcm9sIGRheGlsIGVkaW46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjYxNDA4OTg1MjU1ODA3MTA4MjMiPiJCyZlycGEgbcmZbHVtYXRsYXLEsSDFn2lmcsmZbMmZbmlic8mZLCDFn2lmcsmZbmkgYcWfYcSfxLFkYSBkYXhpbCBlZGluOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9zdGFydGVkIiBtc2dpZD0iNTUwMzU0MjgxNDUyNzU2MTIxIj4iUmV6ZXJ2IGVkaWxpciAuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfZW5kZWQiIG1zZ2lkPSIzODE4MDgwNzY5NTQ4NzI2NDI0Ij4iWWVkyZlrbMmZbcmZIHNvbmEgw6dhdGTEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3Jlc3RvcmVfc3RhcnRlZCIgbXNnaWQ9Ijc4ODE2NzkyMTg5NzEyNzczODUiPiJCyZlycGEgYmHFn2xhecSxci4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3Jlc3RvcmVfZW5kZWQiIG1zZ2lkPSIxNzY0MDQxNjM5MTk5Njk2MTMyIj4iQsmZcnBhIHNvbmEgw6dhdGTEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3RpbWVvdXQiIG1zZ2lkPSI1Mjc2NTk4NTg3MDg3NjI2ODc3Ij4ixo9tyZlsaXl5YXQgdmF4dMSxIGJpdGRpIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWVuLXJJTi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDk2ZDk4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWVuLXJJTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90aXRsZSIgbXNnaWQ9IjgyNzU2MzcyNDIwOTMwMzM0NSI+IkZ1bGwgYmFja3VwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RpdGxlIiBtc2dpZD0iNTQ2OTM2NTgwOTU2NzQ4NjYwMiI+IkZ1bGwgcmVzdG9yYXRpb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90ZXh0IiBtc2dpZD0iMTg3ODAyMTI4Mjc1ODg5NjU5MyI+IkEgZnVsbCBiYWNrdXAgb2YgYWxsIGRhdGEgdG8gYSBjb25uZWN0ZWQgZGVza3RvcCBjb21wdXRlciBoYXMgYmVlbiByZXF1ZXN0ZWQuIERvIHlvdSB3YW50IHRvIGFsbG93IHRoaXMgdG8gaGFwcGVuP1xuXG5JZiB5b3UgZGlkIG5vdCByZXF1ZXN0IHRoZSBiYWNrdXAgeW91cnNlbGYsIGRvIG5vdCBhbGxvdyB0aGUgb3BlcmF0aW9uIHRvIHByb2NlZWQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3dfYmFja3VwX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjQyMTcyMjg3NDc3Njk2NDQwNjgiPiJCYWNrIHVwIG15IGRhdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI2MDA5MTE5MTE1NTgxMDk3NzA4Ij4iRG8gbm90IGJhY2sgdXAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGV4dCIgbXNnaWQ9Ijc0OTk4NjY3MjgwMzA0NjE3NzYiPiJBIGZ1bGwgcmVzdG9yZSBvZiBhbGwgZGF0YSBmcm9tIGEgY29ubmVjdGVkIGRlc2t0b3AgY29tcHV0ZXIgaGFzIGJlZW4gcmVxdWVzdGVkLiBEbyB5b3Ugd2FudCB0byBhbGxvdyB0aGlzIHRvIGhhcHBlbj9cblxuSWYgeW91IGRpZCBub3QgcmVxdWVzdCB0aGUgcmVzdG9yZSB5b3Vyc2VsZiwgZG8gbm90IGFsbG93IHRoZSBvcGVyYXRpb24gdG8gcHJvY2VlZC4gVGhpcyB3aWxsIHJlcGxhY2UgYW55IGRhdGEgY3VycmVudGx5IG9uIHRoZSBkZXZpY2UhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3dfcmVzdG9yZV9idXR0b25fbGFiZWwiIG1zZ2lkPSIzMDgxMjg2NzUyMjc3MTI3ODI3Ij4iUmVzdG9yZSBteSBkYXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjE3MjQzNjczMzQ0NTMxMDQzNzgiPiJEbyBub3QgcmVzdG9yZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1cnJlbnRfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjgyNjgxODk1NTU1NzgyOTgwNjciPiJQbGVhc2UgZW50ZXIgeW91ciBjdXJyZW50IGJhY2t1cCBwYXNzd29yZCBiZWxvdzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXZpY2VfZW5jcnlwdGlvbl9yZXN0b3JlX3RleHQiIG1zZ2lkPSIxNTcwODY0OTE2ODU1MjA4OTkyIj4iUGxlYXNlIGVudGVyIHlvdXIgZGV2aWNlIGVuY3J5cHRpb24gcGFzc3dvcmQgYmVsb3cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fYmFja3VwX3RleHQiIG1zZ2lkPSI1ODY2NTkwNzYyNjcyODQ0NjY0Ij4iUGxlYXNlIGVudGVyIHlvdXIgZGV2aWNlIGVuY3J5cHRpb24gcGFzc3dvcmQgYmVsb3cuIFRoaXMgd2lsbCBhbHNvIGJlIHVzZWQgdG8gZW5jcnlwdCB0aGUgYmFja3VwIGFyY2hpdmUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNDk4MTU4NTcxNDc5NTIzMzA5OSI+IlBsZWFzZSBlbnRlciBhIHBhc3N3b3JkIHRvIHVzZSBmb3IgZW5jcnlwdGluZyB0aGUgZnVsbCBiYWNrdXAgZGF0YS4gSWYgdGhpcyBpcyBsZWZ0IGJsYW5rLCB5b3VyIGN1cnJlbnQgYmFja3VwIHBhc3N3b3JkIHdpbGwgYmUgdXNlZDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX29wdGlvbmFsIiBtc2dpZD0iMTM1MDEzNzM0NTkwNzU3OTMwNiI+IklmIHlvdSB3aXNoIHRvIGVuY3J5cHQgdGhlIGZ1bGwgYmFja3VwIGRhdGEsIGVudGVyIGEgcGFzc3dvcmQgYmVsb3c6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjYxNDA4OTg1MjU1ODA3MTA4MjMiPiJJZiB0aGUgcmVzdG9yZSBkYXRhIGlzIGVuY3J5cHRlZCwgcGxlYXNlIGVudGVyIHRoZSBwYXNzd29yZCBiZWxvdzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfc3RhcnRlZCIgbXNnaWQ9IjU1MDM1NDI4MTQ1Mjc1NjEyMSI+IkJhY2t1cCBzdGFydGluZy4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9lbmRlZCIgbXNnaWQ9IjM4MTgwODA3Njk1NDg3MjY0MjQiPiJCYWNrdXAgZmluaXNoZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX3N0YXJ0ZWQiIG1zZ2lkPSI3ODgxNjc5MjE4OTcxMjc3Mzg1Ij4iUmVzdG9yYXRpb24gc3RhcnRpbmcuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX2VuZGVkIiBtc2dpZD0iMTc2NDA0MTYzOTE5OTY5NjEzMiI+IlJlc3RvcmF0aW9uIGVuZGVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfdGltZW91dCIgbXNnaWQ9IjUyNzY1OTg1ODcwODc2MjY4NzciPiJPcGVyYXRpb24gdGltZWQgb3V0Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjVmZGUyCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90aXRsZSIgbXNnaWQ9IjgyNzU2MzcyNDIwOTMwMzM0NSI+IlTDpGllbGlrIHZhcnVuZHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RpdGxlIiBtc2dpZD0iNTQ2OTM2NTgwOTU2NzQ4NjYwMiI+IlTDpGllbGlrIHRhYXN0YW1pbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90ZXh0IiBtc2dpZD0iMTg3ODAyMTI4Mjc1ODg5NjU5MyI+IlRhb3RsZXRpIGvDtWlraWRlIGFuZG1ldGUgdmFydW5kYW1pc3Qgw7xoZW5kYXR1ZCBsYXVhYXJ2dXRpc3QuIEthcyBzb292aXRlIHNlZGEgbHViYWRhP1xuXG5LdWkgdGUgZWkgdGFvdGxlbnVkIHZhcnVuZHVzdCwgc2lpcyDDpHJnZSBsdWJhZ2UgdG9pbWluZ3V0IGrDpHRrYXRhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI0MjE3MjI4NzQ3NzY5NjQ0MDY4Ij4iVmFydW5kYSBtdSBhbmRtZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI2MDA5MTE5MTE1NTgxMDk3NzA4Ij4iw4RyYSB2YXJ1bmRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RleHQiIG1zZ2lkPSI3NDk5ODY2NzI4MDMwNDYxNzc2Ij4iVGFvdGxldHVkIG9uIGvDtWlraWRlIGFuZG1ldGUgdGFhc3RhbWlzdCDDvGhlbmRhdHVkIGxhdWFhcnZ1dGlzdC4gS2FzIHNvb3ZpdGUgc2VkYSBsdWJhZGE/XG5cbkt1aSB0ZSBlaSB0YW90bGVudWQgdGFhc3RhbWlzdCwgc2lpcyDDpHJnZSBsdWJhZ2UgdG9pbWluZ3V0IGrDpHRrYXRhLiBTZWUgYXNlbmRhYiBrw7VpayBwcmFlZ3Ugc2VhZG1lcyBvbGV2YWQgYW5kbWVkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMzA4MTI4Njc1MjI3NzEyNzgyNyI+IlRhYXN0YSBtdSBhbmRtZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTcyNDM2NzMzNDQ1MzEwNDM3OCI+IsOEcmEgdGFhc3RhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3VycmVudF9wYXNzd29yZF90ZXh0IiBtc2dpZD0iODI2ODE4OTU1NTU3ODI5ODA2NyI+IlNpc2VzdGFnZSBhbGxwb29sIHByYWVndW5lIHZhcnVuZHVzZSBwYXJvb2w6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fcmVzdG9yZV90ZXh0IiBtc2dpZD0iMTU3MDg2NDkxNjg1NTIwODk5MiI+IlNpc2VzdGFnZSBhbGxwb29sIG9tYSBzZWFkbWUga3LDvHB0ZWVyaW1pc2UgcGFyb29sLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX2JhY2t1cF90ZXh0IiBtc2dpZD0iNTg2NjU5MDc2MjY3Mjg0NDY2NCI+IlNpc2VzdGFnZSBhbGxwb29sIG9tYSBzZWFkbWUga3LDvHB0ZWVyaW1pc2UgcGFyb29sLiBTZWRhIGthc3V0YXRha3NlIGthIHZhcnVrb29waWF0ZSBhcmhpaXZpIGtyw7xwdGVlcmltaXNla3MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNDk4MTU4NTcxNDc5NTIzMzA5OSI+IlNpc2VzdGFnZSBwYXJvb2wga8O1aWtpZGUgdmFydW5kYXR1ZCBhbmRtZXRlIGtyw7xwdGVlcmltaXNlIGphb2tzLiBLdWkgasOkdGF0ZSBzZWxsZSB0w7xoamFrcywgc2lpcyBrYXN1dGF0YWtzZSB0ZWllIHByYWVndXN0IHZhcnVuZHVzZSBwYXJvb2xpOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9lbmNfcGFzc3dvcmRfb3B0aW9uYWwiIG1zZ2lkPSIxMzUwMTM3MzQ1OTA3NTc5MzA2Ij4iS3VpIHNvb3ZpdGUga8O1aWsgdmFydW5kdXNhbmRtZWQga3LDvHB0ZWVyaWRhLCBzaWlzIHNpc2VzdGFnZSBhbGxwb29sIHBhcm9vbDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNjE0MDg5ODUyNTU4MDcxMDgyMyI+Ikt1aSB0YWFzdGVhbmRtZWQgb24ga3LDvHB0ZWVyaXR1ZCwgc2lpcyBzaXNlc3RhZ2UgYWxscG9vbCBwYXJvb2wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfYmFja3VwX3N0YXJ0ZWQiIG1zZ2lkPSI1NTAzNTQyODE0NTI3NTYxMjEiPiJBbGdhYiB2YXJ1bmRhbWluZSAuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfZW5kZWQiIG1zZ2lkPSIzODE4MDgwNzY5NTQ4NzI2NDI0Ij4iVmFydW5kYW1pbmUgasO1dWRpcyBsw7VwdWxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9zdGFydGVkIiBtc2dpZD0iNzg4MTY3OTIxODk3MTI3NzM4NSI+IkFsZ2FiIHRhYXN0YW1pbmUgLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9lbmRlZCIgbXNnaWQ9IjE3NjQwNDE2MzkxOTk2OTYxMzIiPiJUYWFzdGFtaW5lIGrDtXVkaXMgbMO1cHVsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3RpbWVvdXQiIG1zZ2lkPSI1Mjc2NTk4NTg3MDg3NjI2ODc3Ij4iVG9pbWluZyBhZWd1cyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1mci1yQ0Evc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE3MGZiNQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1mci1yQ0Evc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiJTYXV2ZWdhcmRlIGNvbXBsw6h0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90aXRsZSIgbXNnaWQ9IjU0NjkzNjU4MDk1Njc0ODY2MDIiPiJSZXN0YXVyYXRpb24gY29tcGzDqHRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGV4dCIgbXNnaWQ9IjE4NzgwMjEyODI3NTg4OTY1OTMiPiJWb3VzIGF2ZXogZGVtYW5kw6kgdW5lIHNhdXZlZ2FyZGUgY29tcGzDqHRlIGRlIGxcJ2Vuc2VtYmxlIGRlcyBkb25uw6llcyB2ZXJzIHVuIG9yZGluYXRldXIgZGUgYnVyZWF1IGNvbm5lY3TDqS4gVm91bGV6LXZvdXMgbFwnYXV0b3Jpc2VyP1xuXG5TaSB2b3VzIG5cJ2F2ZXogcGFzIGRlbWFuZMOpIGxhIHNhdXZlZ2FyZGUgdm91cy1tw6ptZSwgblwnYXV0b3Jpc2V6IHBhcyBsYSBwb3Vyc3VpdGUgZGUgbFwnb3DDqXJhdGlvbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNDIxNzIyODc0Nzc2OTY0NDA2OCI+IlNhdXZlZ2FyZGVyIG1lcyBkb25uw6llcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnlfYmFja3VwX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjYwMDkxMTkxMTU1ODEwOTc3MDgiPiJOZSBwYXMgc2F1dmVnYXJkZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGV4dCIgbXNnaWQ9Ijc0OTk4NjY3MjgwMzA0NjE3NzYiPiJWb3VzIGF2ZXogZGVtYW5kw6kgdW5lIHJlc3RhdXJhdGlvbiBjb21wbMOodGUgZGUgbFwnZW5zZW1ibGUgZGVzIGRvbm7DqWVzIMOgIHBhcnRpciBkXCd1biBvcmRpbmF0ZXVyIGRlIGJ1cmVhdSBjb25uZWN0w6kuIFZvdWxlei12b3VzIGxcJ2F1dG9yaXNlcj9cblxuU2kgdm91cyBuXCdhdmV6IHBhcyBkZW1hbmTDqSB2b3VzLW3Dqm1lIGxhIHJlc3RhdXJhdGlvbiwgblwnYXV0b3Jpc2V6IHBhcyBzYSBwb3Vyc3VpdGUuIENldHRlIG9ww6lyYXRpb24gcmVtcGxhY2VyYSB0b3V0ZXMgbGVzIGRvbm7DqWVzIGFjdHVlbGxlbWVudCBzdXIgbFwnYXBwYXJlaWwhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3dfcmVzdG9yZV9idXR0b25fbGFiZWwiIG1zZ2lkPSIzMDgxMjg2NzUyMjc3MTI3ODI3Ij4iUmVzdGF1cmVyIG1lcyBkb25uw6llcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnlfcmVzdG9yZV9idXR0b25fbGFiZWwiIG1zZ2lkPSIxNzI0MzY3MzM0NDUzMTA0Mzc4Ij4iTmUgcGFzIHJlc3RhdXJlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1cnJlbnRfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjgyNjgxODk1NTU1NzgyOTgwNjciPiJWZXVpbGxleiBzYWlzaXIgdm90cmUgbW90IGRlIHBhc3NlIGRlIHNhdXZlZ2FyZGUgYWN0dWVsIGNpLWRlc3NvdXPCoDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXZpY2VfZW5jcnlwdGlvbl9yZXN0b3JlX3RleHQiIG1zZ2lkPSIxNTcwODY0OTE2ODU1MjA4OTkyIj4iVmV1aWxsZXogc2Fpc2lyIGxlIG1vdCBkZSBwYXNzZSBkZSBjaGlmZnJlbWVudCBkZSBsXCdhcHBhcmVpbCBjaS1kZXNzb3VzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX2JhY2t1cF90ZXh0IiBtc2dpZD0iNTg2NjU5MDc2MjY3Mjg0NDY2NCI+IlZldWlsbGV6IHNhaXNpciBsZSBtb3QgZGUgcGFzc2UgZGUgY2hpZmZyZW1lbnQgZGUgbFwnYXBwYXJlaWwgY2ktZGVzc291cy4gSWwgcGVybWV0dHJhIMOpZ2FsZW1lbnQgZGUgY2hpZmZyZXIgbGVzIGFyY2hpdmVzIGRlIHNhdXZlZ2FyZGUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNDk4MTU4NTcxNDc5NTIzMzA5OSI+IlZldWlsbGV6IHNhaXNpciB1biBtb3QgZGUgcGFzc2Ugw6AgdXRpbGlzZXIgcG91ciBjaGlmZnJlciBsZXMgZG9ubsOpZXMgZGUgc2F1dmVnYXJkZSBjb21wbMOodGUuIFNpIGNlIGNoYW1wIG5cJ2VzdCBwYXMgcmVuc2VpZ27DqSwgdm90cmUgbW90IGRlIHBhc3NlIGRlIHNhdXZlZ2FyZGUgYWN0dWVsIHNlcmEgdXRpbGlzw6nCoDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX29wdGlvbmFsIiBtc2dpZD0iMTM1MDEzNzM0NTkwNzU3OTMwNiI+IlNpIHZvdXMgc291aGFpdGV6IGNoaWZmcmVyIGxcJ2Vuc2VtYmxlIGRlcyBkb25uw6llcyBkZSBzYXV2ZWdhcmRlLCB2ZXVpbGxleiBzYWlzaXIgdW4gbW90IGRlIHBhc3NlIGNpLWRlc3NvdXPCoDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNjE0MDg5ODUyNTU4MDcxMDgyMyI+IlNpIGxlcyBkb25uw6llcyBkZSByZXN0YXVyYXRpb24gc29udCBjaGlmZnLDqWVzLCB2ZXVpbGxleiBzYWlzaXIgbGUgbW90IGRlIHBhc3NlIGNpLWRlc3NvdXPCoDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfc3RhcnRlZCIgbXNnaWQ9IjU1MDM1NDI4MTQ1Mjc1NjEyMSI+IkTDqW1hcnJhZ2UgZGUgbGEgc2F1dmVnYXJkZeKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9lbmRlZCIgbXNnaWQ9IjM4MTgwODA3Njk1NDg3MjY0MjQiPiJTYXV2ZWdhcmRlIHRlcm1pbsOpZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX3N0YXJ0ZWQiIG1zZ2lkPSI3ODgxNjc5MjE4OTcxMjc3Mzg1Ij4iRMOpbWFycmFnZSBkZSBsYSByZXN0YXVyYXRpb27igKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX2VuZGVkIiBtc2dpZD0iMTc2NDA0MTYzOTE5OTY5NjEzMiI+IlJlc3RhdXJhdGlvbiB0ZXJtaW7DqWUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfdGltZW91dCIgbXNnaWQ9IjUyNzY1OTg1ODcwODc2MjY4NzciPiJMXCdvcMOpcmF0aW9uIGEgZXhwaXLDqS4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1oaS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1oaS9zdHJpbmdzLnhtbAppbmRleCBkZDBjNjQ1Li4wYjI5ODA0IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sCkBAIC0xNiwyMiArMTYsMjIgQEAKIAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgotICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiLgpKrgpYLgpLDgpY3gpKMg4KSs4KWI4KSV4KSF4KSqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiLgpKrgpYLgpLDgpY3gpKMg4KS44KWB4KSw4KSV4KWN4KS34KS+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RpdGxlIiBtc2dpZD0iNTQ2OTM2NTgwOTU2NzQ4NjYwMiI+IuCkquClguCksOCljeCkoyDgpKrgpYHgpKjgpLDgpY3gpLjgpY3igI3gpKXgpL7gpKrgpKjgpL4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90ZXh0IiBtc2dpZD0iMTg3ODAyMTI4Mjc1ODg5NjU5MyI+IuCkleCkqOClh+CkleCljeKAjeCknyDgpJXgpL/igI3gpI8g4KSX4KSPIOCkoeClh+CkuOCljeKAjeCkleCkn+ClieCkqiDgpJXgpILgpKrgpY3igI3gpK/gpYLgpJ/gpLAg4KS44KWHIOCkuOCkreClgCDgpKHgpYfgpJ/gpL4g4KSV4KWHIOCkuOCkguCkquClguCksOCljeCkoyDgpKzgpYjgpJXgpIXgpKog4KSV4KS+IOCkheCkqOClgeCksOCli+CkpyDgpJXgpL/igI3gpK/gpL4g4KSX4KSv4KS+IOCkueCliC4g4KSV4KWN4oCN4KSv4KS+IOCkhuCkqiDgpIfgpLjgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/4oCNIOCkpuClh+CkqOCkviDgpJrgpL7gpLngpKTgpYcg4KS54KWI4KSCP1xuXG7gpK/gpKbgpL/igI0g4KSG4KSq4KSo4KWHIOCkuOCljeKAjeCkteCkr+CkgiDgpKzgpYjgpJXgpIXgpKog4KSV4KS+IOCkheCkqOClgeCksOCli+CkpyDgpKjgpLngpYDgpIIg4KSV4KS/4oCN4KSv4KS+IOCkueCliCwg4KSk4KWLIOCkquCljeCksOCkleCljeCksOCkv+KAjeCkr+CkviDgpJzgpL7gpLDgpYAg4KSw4KSW4KSo4KWHIOCkleClgCDgpIXgpKjgpYHgpK7gpKTgpL/igI0g4KSoIOCkpuClh+Ckgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90ZXh0IiBtc2dpZD0iMTg3ODAyMTI4Mjc1ODg5NjU5MyI+IuCkleCkqOClh+CkleCljeKAjeCknyDgpJXgpL/igI3gpI8g4KSX4KSPIOCkoeClh+CkuOCljeKAjeCkleCkn+ClieCkqiDgpJXgpILgpKrgpY3igI3gpK/gpYLgpJ/gpLAg4KS44KWHIOCkuOCkreClgCDgpKHgpYfgpJ/gpL4g4KSV4KWHIOCkuOCkguCkquClguCksOCljeCkoyDgpLjgpYHgpLDgpJXgpY3gpLfgpL4g4KSV4KS+IOCkheCkqOClgeCksOCli+CkpyDgpJXgpL/igI3gpK/gpL4g4KSX4KSv4KS+IOCkueCliC4g4KSV4KWN4oCN4KSv4KS+IOCkhuCkqiDgpIfgpLjgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/4oCNIOCkpuClh+CkqOCkviDgpJrgpL7gpLngpKTgpYcg4KS54KWI4KSCP1xuXG7gpK/gpKbgpL/igI0g4KSG4KSq4KSo4KWHIOCkuOCljeKAjeCkteCkr+CkgiDgpKzgpYjgpJXgpIXgpKog4KSV4KS+IOCkheCkqOClgeCksOCli+CkpyDgpKjgpLngpYDgpIIg4KSV4KS/4oCN4KSv4KS+IOCkueCliCwg4KSk4KWLIOCkquCljeCksOCkleCljeCksOCkv+KAjeCkr+CkviDgpJzgpL7gpLDgpYAg4KSw4KSW4KSo4KWHIOCkleClgCDgpIXgpKjgpYHgpK7gpKTgpL/igI0g4KSoIOCkpuClh+Ckgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbGxvd19iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNDIxNzIyODc0Nzc2OTY0NDA2OCI+IuCkruClh+CksOClhyDgpKHgpYfgpJ/gpL4g4KSV4KS+IOCkrOCliOCkleCkheCkqiDgpLLgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkZW55X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI2MDA5MTE5MTE1NTgxMDk3NzA4Ij4i4KSs4KWI4KSV4KSF4KSqIOCkqCDgpLLgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGV4dCIgbXNnaWQ9Ijc0OTk4NjY3MjgwMzA0NjE3NzYiPiLgpJXgpKjgpYfgpJXgpY3igI3gpJ8g4KSV4KS/4oCN4KSPIOCkl+CkjyDgpKHgpYfgpLjgpY3igI3gpJXgpJ/gpYngpKog4KSV4KSC4KSq4KWN4oCN4KSv4KWC4KSf4KSwIOCkuOClhyDgpLjgpK3gpYAg4KSh4KWH4KSf4KS+IOCkleClgCDgpKrgpYLgpLDgpY3gpKMg4KSq4KWB4KSo4KSw4KWN4KS44KWN4KSl4KS+4KSq4KSo4KS+IOCkleCkviDgpIXgpKjgpYHgpLDgpYvgpKcg4KSV4KS/4oCN4KSv4KS+IOCkl+Ckr+CkviDgpLngpYguIOCkleCljeKAjeCkr+CkviDgpIbgpKog4KSH4KS44KSV4KWAIOCkheCkqOClgeCkruCkpOCkv+KAjSDgpKbgpYfgpKjgpL4g4KSa4KS+4KS54KSk4KWHIOCkueCliOCkgj9cblxu4KSv4KSm4KS/4oCNIOCkhuCkquCkqOClhyDgpLjgpY3igI3gpLXgpK/gpIIg4KSq4KWB4KSo4KSw4KWN4KSq4KWN4KSw4KS+4KSq4KWN4KSk4KS/4oCNIOCkleCkviDgpIXgpKjgpYHgpLDgpYvgpKcg4KSo4KS54KWA4KSCIOCkleCkv+KAjeCkr+CkviDgpLngpYgsIOCkpOCliyDgpKrgpY3gpLDgpJXgpY3gpLDgpL/igI3gpK/gpL4g4KSc4KS+4KSw4KWAIOCksOCkluCkqOClhyDgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/4oCNIOCkqCDgpKbgpYfgpIIuIOCkh+CkuOCkuOClhyDgpLXgpLDgpY3gpKTgpK7gpL7gpKgg4KSu4KWH4KSCIOCkhuCkquCkleClhyDgpIngpKrgpJXgpLDgpKMg4KSq4KSwIOCkruCljOCknOClguCkpiDgpKHgpYfgpJ/gpL4g4KSs4KSm4KSyIOCknOCkvuCkj+Ckl+CkviEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbGxvd19yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjMwODEyODY3NTIyNzcxMjc4MjciPiLgpK7gpYfgpLDgpL4g4KSh4KWH4KSf4KS+IOCkquClgeCkqOCksOCljeCkuOCljeCkpeCkvuCkquCkv+CkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkZW55X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTcyNDM2NzMzNDQ1MzEwNDM3OCI+IuCkquClgeCkqOCksOCljeCkuOCljeKAjeCkpeCkvuCkquCkv+CkpCDgpKgg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY3VycmVudF9wYXNzd29yZF90ZXh0IiBtc2dpZD0iODI2ODE4OTU1NTU3ODI5ODA2NyI+IuCkleClg+CkquCkr+CkviDgpKjgpYDgpJrgpYcg4KSF4KSq4KSo4KS+IOCkteCksOCljeCkpOCkruCkvuCkqCDgpKzgpYjgpJXgpIXgpKog4KSq4KS+4KS44KS14KSw4KWN4KShIOCkoeCkvuCksuClh+CkgjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjdXJyZW50X3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI4MjY4MTg5NTU1NTc4Mjk4MDY3Ij4i4KSV4KWD4KSq4KSv4KS+IOCkqOClgOCkmuClhyDgpIXgpKrgpKjgpL4g4KS14KSw4KWN4KSk4KSu4KS+4KSoIOCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSV4KS+IOCkquCkvuCkuOCkteCksOCljeCkoSDgpKHgpL7gpLLgpYfgpII6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fcmVzdG9yZV90ZXh0IiBtc2dpZD0iMTU3MDg2NDkxNjg1NTIwODk5MiI+IuCkleClg+CkquCkr+CkviDgpKjgpYDgpJrgpYcg4KSF4KSq4KSo4KS+IOCkieCkquCkleCksOCkoyDgpI/gpKjgpY3igI3gpJXgpY3gpLDgpL/gpKrgpY3gpLbgpKgg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkoeCkvuCksuClh+Ckgi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkZXZpY2VfZW5jcnlwdGlvbl9iYWNrdXBfdGV4dCIgbXNnaWQ9IjU4NjY1OTA3NjI2NzI4NDQ2NjQiPiLgpJXgpYPgpKrgpK/gpL4g4KSF4KSq4KSo4KS+IOCkieCkquCkleCksOCkoyDgpI/gpKjgpY3gpJXgpY3gpLDgpL/gpKrgpY3gpLbgpKgg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkqOClgOCkmuClhyDgpKbgpLDgpY3gpJwg4KSV4KSw4KWH4KSCLiDgpKzgpYjgpJXgpIXgpKog4KS44KSC4KSX4KWN4KSw4KS54KSjIOCkleCliyDgpI/gpKjgpY3igI3gpJXgpY3gpLDgpL/gpKrgpY3igI3gpJ8g4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSt4KWAIOCkh+CkuOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KS/4KSv4KS+IOCknOCkvuCkj+Ckl+Ckvi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI0OTgxNTg1NzE0Nzk1MjMzMDk5Ij4i4KSV4KWD4KSq4KSv4KS+IOCkuOCkguCkquClguCksOCljeCkoyDgpKzgpYjgpJXgpIXgpKog4KSh4KWH4KSf4KS+IOCkleCliyDgpI/gpKjgpY3igI3gpJXgpY3gpLDgpL/igI3gpKrgpY3igI3gpJ8g4KSV4KSw4KSo4KWHIOCkruClh+CkgiDgpIngpKrgpK/gpYvgpJcg4KSV4KWHIOCksuCkv+KAjeCkjyDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSh4KS+4KSy4KWH4KSCLiDgpK/gpKbgpL/igI0g4KSv4KS5IOCkluCkvuCksuClgCDgpJvgpYvgpKHgpLwg4KSm4KS/4oCN4KSv4KS+IOCknOCkvuCkpOCkviDgpLngpYgsIOCkpOCliyDgpIbgpKrgpJXgpYcg4KS14KSw4KWN4KSk4KSu4KS+4KSoIOCkrOCliOCkleCkheCkqiDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpL/igI3gpK/gpL4g4KSc4KS+4KSP4KSX4KS+OiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9lbmNfcGFzc3dvcmRfb3B0aW9uYWwiIG1zZ2lkPSIxMzUwMTM3MzQ1OTA3NTc5MzA2Ij4i4KSv4KSm4KS/4oCNIOCkhuCkqiDgpLjgpILgpKrgpYLgpLDgpY3gpKMg4KSs4KWI4KSV4KSF4KSqIOCkoeClh+Ckn+CkviDgpI/gpKjgpY3igI3gpJXgpY3gpLDgpL/igI3gpKrgpY3igI3gpJ8g4KSV4KSw4KSo4KS+IOCkmuCkvuCkueCkpOClhyDgpLngpYjgpIIsIOCkpOCliyDgpKjgpYDgpJrgpYcg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkoeCkvuCksuClh+CkgjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXZpY2VfZW5jcnlwdGlvbl9iYWNrdXBfdGV4dCIgbXNnaWQ9IjU4NjY1OTA3NjI2NzI4NDQ2NjQiPiLgpJXgpYPgpKrgpK/gpL4g4KSF4KSq4KSo4KS+IOCkieCkquCkleCksOCkoyDgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KSk4KSw4KWA4KSV4KS+IOCkquCkvuCkuOCkteCksOCljeCkoSDgpKjgpYDgpJrgpYcg4KSm4KSw4KWN4KScIOCkleCksOClh+Ckgi4g4KSs4KWI4KSV4KSF4KSqIOCkuOCkguCkl+CljeCksOCkueCkoyDgpJXgpYsg4KSP4KSo4KWN4oCN4KSV4KWN4KSw4KS/4KSq4KWN4oCN4KSfIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkreClgCDgpIfgpLjgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCkv+Ckr+CkviDgpJzgpL7gpI/gpJfgpL4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNDk4MTU4NTcxNDc5NTIzMzA5OSI+IuCkleClg+CkquCkr+CkviDgpLjgpILgpKrgpYLgpLDgpY3gpKMg4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkoeClh+Ckn+CkviDgpJXgpYsg4KSP4KSo4KWN4oCN4KSV4KWN4KSw4KS/4oCN4KSq4KWN4oCN4KSfIOCkleCksOCkqOClhyDgpK7gpYfgpIIg4KSJ4KSq4KSv4KWL4KSXIOCkleClhyDgpLLgpL/igI3gpI8g4KSq4KS+4KS44KS14KSw4KWN4KShIOCkoeCkvuCksuClh+Ckgi4g4KSv4KSm4KS/4oCNIOCkr+CkuSDgpJbgpL7gpLLgpYAg4KSb4KWL4KSh4KS8IOCkpuCkv+KAjeCkr+CkviDgpJzgpL7gpKTgpL4g4KS54KWILCDgpKTgpYsg4KSG4KSq4KSV4KWHIOCkteCksOCljeCkpOCkruCkvuCkqCDgpKzgpYjgpJXgpIXgpKog4KSq4KS+4KS44KS14KSw4KWN4KShIOCkleCkviDgpIngpKrgpK/gpYvgpJcg4KSV4KS/4oCN4KSv4KS+IOCknOCkvuCkj+Ckl+CkvjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX29wdGlvbmFsIiBtc2dpZD0iMTM1MDEzNzM0NTkwNzU3OTMwNiI+IuCkr+CkpuCkv+KAjSDgpIbgpKog4KS44KSC4KSq4KWC4KSw4KWN4KSjIOCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpKHgpYfgpJ/gpL4g4KSV4KWLIOCkj+CkqOCljeKAjeCkleCljeCksOCkv+KAjeCkquCljeKAjeCknyDgpJXgpLDgpKjgpL4g4KSa4KS+4KS54KSk4KWHIOCkueCliOCkgiwg4KSk4KWLIOCkqOClgOCkmuClhyDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSh4KS+4KSy4KWH4KSCOiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfZW5jX3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI2MTQwODk4NTI1NTgwNzEwODIzIj4i4KSv4KSm4KS/4oCNIOCkquClgeCkqOCksOCljeCkuOCljeCkpeCkvuCkquCkv+CkpCDgpKHgpYfgpJ/gpL4g4KSV4KWLIOCkj+CkqOCljeKAjeCkleCljeCksOCkv+KAjeCkquCljeKAjeCknyDgpJXgpL/igI3gpK/gpL4g4KSX4KSv4KS+IOCkueCliCwg4KSk4KWLIOCkleClg+CkquCkr+CkviDgpKjgpYDgpJrgpYcg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkoeCkvuCksuClh+CkgjoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfc3RhcnRlZCIgbXNnaWQ9IjU1MDM1NDI4MTQ1Mjc1NjEyMSI+IuCkrOCliOCkleCkheCkqiDgpKrgpY3gpLDgpL7gpLDgpILgpK0g4KS54KWLIOCksOCkueCkviDgpLngpYguLi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfZW5kZWQiIG1zZ2lkPSIzODE4MDgwNzY5NTQ4NzI2NDI0Ij4i4KSs4KWI4KSV4KSF4KSqIOCkquClguCksOCljeCkoyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9zdGFydGVkIiBtc2dpZD0iNTUwMzU0MjgxNDUyNzU2MTIxIj4i4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkleCksOCkqOCkviDgpLbgpYHgpLDgpYEg4KS54KWLIOCksOCkueCkviDgpLngpYguLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfZW5kZWQiIG1zZ2lkPSIzODE4MDgwNzY5NTQ4NzI2NDI0Ij4i4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkleCksOCkqOCkviDgpKrgpYLgpLDgpY3gpKMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX3N0YXJ0ZWQiIG1zZ2lkPSI3ODgxNjc5MjE4OTcxMjc3Mzg1Ij4i4KSq4KWB4KSo4KSw4KWN4KS44KWN4oCN4KSl4KS+4KSq4KSo4KS+IOCkquCljeCksOCkvuCksOCkguCkrSDgpLngpYsg4KSw4KS54KWAIOCkueCliC4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3Jlc3RvcmVfZW5kZWQiIG1zZ2lkPSIxNzY0MDQxNjM5MTk5Njk2MTMyIj4i4KSq4KWB4KSo4KSw4KWN4KS44KWN4oCN4KSl4KS+4KSq4KSo4KS+IOCkuOCkruCkvuCkquCljeCkpCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3RpbWVvdXQiIG1zZ2lkPSI1Mjc2NTk4NTg3MDg3NjI2ODc3Ij4i4KSV4KS+4KSw4KWN4KSv4KS14KS+4KS54KWAIOCkuOCkruCkr+CkrOCkvuCkueCljeCkryDgpLngpYsg4KSX4KSIIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWh5LXJBTS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRiOTA4MAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiLUsdW01aLVuNWy1bvVodWv1aHVtiDVutWh1bDVuNaC1b3Vv9Wh1b7VuNaA1bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RpdGxlIiBtc2dpZD0iNTQ2OTM2NTgwOTU2NzQ4NjYwMiI+ItSx1bTVotW41bLVu9Wh1a/VodW2INW+1aXWgNWh1a/VodW21aPVttW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9jb25maXJtX3RleHQiIG1zZ2lkPSIxODc4MDIxMjgyNzU4ODk2NTkzIj4i1L/VodW61aHVr9aB1b7VodWuINWh1bfVrdWh1b/VodW91aXVstWh1bbVuNW+INWw1aHVtNWh1a/VodaA1aPVudWrINW+1oDVoSDVotW41azVuNaAINW/1b7VtdWh1azVttWl1oDVqyDVrNaA1avVviDVutWh1bDVuNaC1b3Vv9Wh1b7VuNaA1bTVodW2INWw1aHWgNaB1bjWgtW0INWnINWh1oDVvtWl1aw6INWR1aHVttWv1aHVttW41oLVntW0INWl1oQg1anVuNaC1bXVrNWh1b/WgNWl1awg1bDVodaA1oHVtNWh1bYg1a/VodW/1aHWgNW41oLVtNWoOlxuXG7UtdWp1aUg1aTVuNaC1oQg1avVttaE1bbVpdaA1aQg1brVodWw1bjWgtW91b/VodW+1bjWgNW01aHVtiDVsNWh1oDWgdW41oLVtCDVudWl1oQg1aHWgNWl1awsINWp1bjWgtW11awg1bTVqyDVv9W+1aXWhCwg1bjWgNW61aXVvdWm1asg1aPVuNaA1a7VuNWy1bjWgtWp1bXVuNaC1bbVqCDVt9Wh1oDVuNaC1bbVodWv1b7VqzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNDIxNzIyODc0Nzc2OTY0NDA2OCI+ItWK1aHVsNW41oLVvdW/1aHVvtW41oDVpdWsINWr1bQg1b/VvtW11aHVrNW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNjAwOTExOTExNTU4MTA5NzcwOCI+ItWJ1brVodWw1bjWgtW91b/VodW+1bjWgNWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGV4dCIgbXNnaWQ9Ijc0OTk4NjY3MjgwMzA0NjE3NzYiPiLVgNWh1bXWgdW+1aXVrCDVpyDVotW41azVuNaAINW/1b7VtdWh1azVttWl1oDVqyDVodW01aLVuNWy1bvVodWv1aHVtiDVvtWl1oDVodWv1aHVttWj1bbVuNaC1bQg1bTVq9Wh1oHVvtWh1a4g1aHVt9Wt1aHVv9Wh1bbWhNWh1bXVq9W2INWw1aHVtNWh1a/VodaA1aPVudWr1oE6INWR1aHVttWv1aHVttW41oLVntW0INWl1oQg1anVuNaC1bXVrNWh1b/WgNWl1awsINW41oAg1aTVoSDVv9Wl1bLVqyDVuNaC1bbVpdW21aE6XG5cbtS11anVpSDVvtWl1oDVodWv1aHVttWj1bbVuNaC1bTVqCDVq9W21oTVttWl1oDVpCDVudWl1oQg1bDVodW11oHVpdWsLCDVqdW41oJq1awg1bTVqyDVv9W+1aXWhCwg1bjWgCDVo9W41oDVrtW41bLVuNaC1anVtdW41oLVttWoINW31aHWgNW41oLVttWh1a/VvtWrOiDUtNWhINWv1oPVuNWt1aHWgNWr1bbVqyDVttWl1oDVr9Wh1bXVuNaC1bQg1bDVpdW81aHVrdW41b3VqyDVtNWl1bsg1aPVv9W21b7VuNWyINaB1aHVttWv1aHWgdWh1a4g1b/VvtW11aHVrDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjMwODEyODY3NTIyNzcxMjc4MjciPiLVjtWl1oDVodWv1aHVttWj1bbVpdWsINWr1bQg1b/VvtW11aHVrNW21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjE3MjQzNjczMzQ0NTMxMDQzNzgiPiLVidW+1aXWgNWh1a/VodW21aPVttWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjdXJyZW50X3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI4MjY4MTg5NTU1NTc4Mjk4MDY3Ij4i1L3VttWk1oDVuNaC1bQg1aXVttaEINW01bjWgtW/1oTVodWj1oDVpdWsINWx1aXWgCDVqNW21anVodaB1avVryDVutWh1bDVuNaC1b3Vv9Wh1bXVq9W2INWj1aHVstW/1bbVodWi1aHVvNWoINW21aXWgNaE1ofVuNaC1bRgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fcmVzdG9yZV90ZXh0IiBtc2dpZD0iMTU3MDg2NDkxNjg1NTIwODk5MiI+ItS91bbVpNaA1bjWgtW0INWl1bbWhCDVtNW41oLVv9aE1aHVo9aA1aXVrCDVsdWl1oAg1b3VodaA1oTVqyDVr9W41aTVodW+1bjWgNW+1aHVriDVo9Wh1bLVv9W21aHVotWh1bzVqCDVttWl1oDWhNaH1bjWgtW0OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX2JhY2t1cF90ZXh0IiBtc2dpZD0iNTg2NjU5MDc2MjY3Mjg0NDY2NCI+ItS91bbVpNaA1bjWgtW0INWl1bbWhCDVtNW41oLVv9aE1aHVo9aA1aXVrCDVsdWl1oAg1b3VodaA1oTVqyDVr9W41aTVodW+1bjWgNW+1aHVriDVo9Wh1bLVv9W21aHVotWh1bzVqCDVttWl1oDWhNaH1bjWgtW0OiDUsdW11bYg1bbVodaHINWv1oXVo9W/1aHVo9W41oDVrtW+1asg1brVodWw1bjWgtW91b/VodW11avVtiDVodaA1a3Vq9W+1asg1a/VuNWk1aHVvtW41oDVtNWh1bYg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI0OTgxNTg1NzE0Nzk1MjMzMDk5Ij4i1L3VttWk1oDVuNaC1bQg1aXVttaEINW01bjWgtW/1oTVodWj1oDVpdWsINWj1aHVstW/1bbVodWi1aHVvNWoYMKg1aHVtNWi1bjVstW71aHVr9Wh1bYg1brVodWw1bjWgtW91b/VodW+1bjWgNW+1bjVsiDVv9W+1bXVodWs1bbVpdaA1agg1a/VuNWk1aHVvtW41oDVpdWs1bjWgiDVsNWh1bTVodaAOiDUtdWp1aUg4oCL4oCL1aHVtdW2INWk1aHVv9Wh1oDVryDVqdW41bLVttWl1oQsINWh1brVoSDVr9aF1aPVv9Wh1aPVuNaA1a7VvtWrINWx1aXWgCDVodW81a/VoSDVutWh1bDVuNaC1b3Vv9Wh1b7VuNaA1bTVodW2INWj1aHVstW/1bbVodWi1aHVvNWoYCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9lbmNfcGFzc3dvcmRfb3B0aW9uYWwiIG1zZ2lkPSIxMzUwMTM3MzQ1OTA3NTc5MzA2Ij4i1LXVqdWlIOKAi+KAi9aB1aHVttWv1aHVttW41oLVtCDVpdaEINWv1bjVpNWh1b7VuNaA1aXVrCDVodW01aLVuNWy1bvVodWv1aHVtiDVutWh1bDVuNaC1b3Vv9Wh1b7VuNaA1b7VodWuINW/1b7VtdWh1azVttWl1oDVqCwg1bTVuNaC1b/WhNWh1aPWgNWl1oQg1aPVodWy1b/VttWh1aLVodW8INW91b/VuNaA1odgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjYxNDA4OTg1MjU1ODA3MTA4MjMiPiLUtdWp1aUg4oCL4oCL1b7VpdaA1aHVr9Wh1bbVo9W21b7VuNWyINW/1b7VtdWh1azVttWl1oDVqCDVr9W41aTVodW+1bjWgNW+1aHVriDVpdW2LCDVrdW21aTWgNW41oLVtCDVpdW21oQg1bTVuNaC1b/WhNWh1aPWgNWl1awg1aPVodWy1b/VttWh1aLVodW81agg1b3Vv9W41oDWh2AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfc3RhcnRlZCIgbXNnaWQ9IjU1MDM1NDI4MTQ1Mjc1NjEyMSI+ItWK1aHVsNW41oLVvdW/1aHVvtW41oDVuNaC1bTVqCDVvdWv1b3VvtW41oLVtCDVpy4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9lbmRlZCIgbXNnaWQ9IjM4MTgwODA3Njk1NDg3MjY0MjQiPiLVitWh1bDVuNaC1b3Vv9Wh1b7VuNaA1bjWgtW01bYg1aHVvtWh1oDVv9W+1aXWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3Jlc3RvcmVfc3RhcnRlZCIgbXNnaWQ9Ijc4ODE2NzkyMTg5NzEyNzczODUiPiLVjtWl1oDVodWv1aHVttWj1bbVuNaC1bTVqCDVtNWl1a/VttWh1oDVr9Wl1oEuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX2VuZGVkIiBtc2dpZD0iMTc2NDA0MTYzOTE5OTY5NjEzMiI+ItWO1aXWgNWh1a/VodW21aPVttW41oLVtNW2INWh1b7VodaA1b/VvtWl1oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF90aW1lb3V0IiBtc2dpZD0iNTI3NjU5ODU4NzA4NzYyNjg3NyI+ItSz1bjWgNWu1bjVstW41oLVqdW11aHVtiDVqtWh1bTVodW21aHVr9WoINW91brVodW81b7VpdaBIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMtaHkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMtaHkvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRiOTA4MAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1oeS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90aXRsZSIgbXNnaWQ9IjgyNzU2MzcyNDIwOTMwMzM0NSI+ItSx1bTVotW41bLVu9Wh1a/VodW2INW61aHVsNW41oLVvdW/1aHVvtW41oDVuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI1NDY5MzY1ODA5NTY3NDg2NjAyIj4i1LHVtNWi1bjVstW71aHVr9Wh1bYg1b7VpdaA1aHVr9Wh1bbVo9W21bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGV4dCIgbXNnaWQ9IjE4NzgwMjEyODI3NTg4OTY1OTMiPiLUv9Wh1brVodWv1oHVvtWh1a4g1aHVt9Wt1aHVv9Wh1b3VpdWy1aHVttW41b4g1bDVodW01aHVr9Wh1oDVo9W51asg1b7WgNWhINWi1bjVrNW41oAg1b/VvtW11aHVrNW21aXWgNWrINWs1oDVq9W+INW61aHVsNW41oLVvdW/1aHVvtW41oDVtNWh1bYg1bDVodaA1oHVuNaC1bQg1acg1aHWgNW+1aXVrDog1ZHVodW21a/VodW21bjWgtWe1bQg1aXWhCDVqdW41oLVtdWs1aHVv9aA1aXVrCDVsNWh1oDWgdW01aHVtiDVr9Wh1b/VodaA1bjWgtW01ag6XG5cbtS11anVpSDVpNW41oLWhCDVq9W21oTVttWl1oDVpCDVutWh1bDVuNaC1b3Vv9Wh1b7VuNaA1bTVodW2INWw1aHWgNaB1bjWgtW0INW51aXWhCDVodaA1aXVrCwg1anVuNaC1bXVrCDVtNWrINW/1b7VpdaELCDVuNaA1brVpdW91abVqyDVo9W41oDVrtW41bLVuNaC1anVtdW41oLVttWoINW31aHWgNW41oLVttWh1a/VvtWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI0MjE3MjI4NzQ3NzY5NjQ0MDY4Ij4i1YrVodWw1bjWgtW91b/VodW+1bjWgNWl1awg1avVtCDVv9W+1bXVodWs1bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI2MDA5MTE5MTE1NTgxMDk3NzA4Ij4i1YnVutWh1bDVuNaC1b3Vv9Wh1b7VuNaA1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90ZXh0IiBtc2dpZD0iNzQ5OTg2NjcyODAzMDQ2MTc3NiI+ItWA1aHVtdaB1b7VpdWsINWnINWi1bjVrNW41oAg1b/VvtW11aHVrNW21aXWgNWrINWh1bTVotW41bLVu9Wh1a/VodW2INW+1aXWgNWh1a/VodW21aPVttW41oLVtCDVtNWr1aHWgdW+1aHVriDVodW31a3VodW/1aHVttaE1aHVtdWr1bYg1bDVodW01aHVr9Wh1oDVo9W51avWgTog1ZHVodW21a/VodW21bjWgtWe1bQg1aXWhCDVqdW41oLVtdWs1aHVv9aA1aXVrCwg1bjWgCDVpNWhINW/1aXVstWrINW41oLVttWl1bbVoTpcblxu1LXVqdWlINW+1aXWgNWh1a/VodW21aPVttW41oLVtNWoINWr1bbWhNW21aXWgNWkINW51aXWhCDVsNWh1bXWgdWl1awsINWp1bjWgmrVrCDVtNWrINW/1b7VpdaELCDVuNaAINWj1bjWgNWu1bjVstW41oLVqdW11bjWgtW21agg1bfVodaA1bjWgtW21aHVr9W+1as6INS01aEg1a/Wg9W41a3VodaA1avVttWrINW21aXWgNWv1aHVtdW41oLVtCDVsNWl1bzVodWt1bjVvdWrINW01aXVuyDVo9W/1bbVvtW41bIg1oHVodW21a/VodaB1aHVriDVv9W+1bXVodWsOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMzA4MTI4Njc1MjI3NzEyNzgyNyI+ItWO1aXWgNWh1a/VodW21aPVttWl1awg1avVtCDVv9W+1bXVodWs1bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTcyNDM2NzMzNDQ1MzEwNDM3OCI+ItWJ1b7VpdaA1aHVr9Wh1bbVo9W21aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1cnJlbnRfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjgyNjgxODk1NTU1NzgyOTgwNjciPiLUvdW21aTWgNW41oLVtCDVpdW21oQg1bTVuNaC1b/WhNWh1aPWgNWl1awg1bHVpdaAINWo1bbVqdWh1oHVq9WvINW61aHVsNW41oLVvdW/1aHVtdWr1bYg1aPVodWy1b/VttWh1aLVodW81agg1bbVpdaA1oTWh9W41oLVtGAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXZpY2VfZW5jcnlwdGlvbl9yZXN0b3JlX3RleHQiIG1zZ2lkPSIxNTcwODY0OTE2ODU1MjA4OTkyIj4i1L3VttWk1oDVuNaC1bQg1aXVttaEINW01bjWgtW/1oTVodWj1oDVpdWsINWx1aXWgCDVvdWh1oDWhNWrINWv1bjVpNWh1b7VuNaA1b7VodWuINWj1aHVstW/1bbVodWi1aHVvNWoINW21aXWgNaE1ofVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fYmFja3VwX3RleHQiIG1zZ2lkPSI1ODY2NTkwNzYyNjcyODQ0NjY0Ij4i1L3VttWk1oDVuNaC1bQg1aXVttaEINW01bjWgtW/1oTVodWj1oDVpdWsINWx1aXWgCDVvdWh1oDWhNWrINWv1bjVpNWh1b7VuNaA1b7VodWuINWj1aHVstW/1bbVodWi1aHVvNWoINW21aXWgNaE1ofVuNaC1bQ6INSx1bXVtiDVttWh1ocg1a/WhdWj1b/VodWj1bjWgNWu1b7VqyDVutWh1bDVuNaC1b3Vv9Wh1bXVq9W2INWh1oDVrdWr1b7VqyDVr9W41aTVodW+1bjWgNW01aHVtiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjQ5ODE1ODU3MTQ3OTUyMzMwOTkiPiLUvdW21aTWgNW41oLVtCDVpdW21oQg1bTVuNaC1b/WhNWh1aPWgNWl1awg1aPVodWy1b/VttWh1aLVodW81ahgwqDVodW01aLVuNWy1bvVodWv1aHVtiDVutWh1bDVuNaC1b3Vv9Wh1b7VuNaA1b7VuNWyINW/1b7VtdWh1azVttWl1oDVqCDVr9W41aTVodW+1bjWgNWl1azVuNaCINWw1aHVtNWh1oA6INS11anVpSDigIvigIvVodW11bYg1aTVodW/1aHWgNWvINWp1bjVstW21aXWhCwg1aHVutWhINWv1oXVo9W/1aHVo9W41oDVrtW+1asg1bHVpdaAINWh1bzVr9WhINW61aHVsNW41oLVvdW/1aHVvtW41oDVtNWh1bYg1aPVodWy1b/VttWh1aLVodW81ahgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF9vcHRpb25hbCIgbXNnaWQ9IjEzNTAxMzczNDU5MDc1NzkzMDYiPiLUtdWp1aUg4oCL4oCL1oHVodW21a/VodW21bjWgtW0INWl1oQg1a/VuNWk1aHVvtW41oDVpdWsINWh1bTVotW41bLVu9Wh1a/VodW2INW61aHVsNW41oLVvdW/1aHVvtW41oDVvtWh1a4g1b/VvtW11aHVrNW21aXWgNWoLCDVtNW41oLVv9aE1aHVo9aA1aXWhCDVo9Wh1bLVv9W21aHVotWh1bwg1b3Vv9W41oDWh2AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNjE0MDg5ODUyNTU4MDcxMDgyMyI+ItS11anVpSDigIvigIvVvtWl1oDVodWv1aHVttWj1bbVvtW41bIg1b/VvtW11aHVrNW21aXWgNWoINWv1bjVpNWh1b7VuNaA1b7VodWuINWl1bYsINWt1bbVpNaA1bjWgtW0INWl1bbWhCDVtNW41oLVv9aE1aHVo9aA1aXVrCDVo9Wh1bLVv9W21aHVotWh1bzVqCDVvdW/1bjWgNaHYCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9zdGFydGVkIiBtc2dpZD0iNTUwMzU0MjgxNDUyNzU2MTIxIj4i1YrVodWw1bjWgtW91b/VodW+1bjWgNW41oLVtNWoINW91a/VvdW+1bjWgtW0INWnLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfYmFja3VwX2VuZGVkIiBtc2dpZD0iMzgxODA4MDc2OTU0ODcyNjQyNCI+ItWK1aHVsNW41oLVvdW/1aHVvtW41oDVuNaC1bTVtiDVodW+1aHWgNW/1b7VpdaBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9zdGFydGVkIiBtc2dpZD0iNzg4MTY3OTIxODk3MTI3NzM4NSI+ItWO1aXWgNWh1a/VodW21aPVttW41oLVtNWoINW01aXVr9W21aHWgNWv1aXWgS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3Jlc3RvcmVfZW5kZWQiIG1zZ2lkPSIxNzY0MDQxNjM5MTk5Njk2MTMyIj4i1Y7VpdaA1aHVr9Wh1bbVo9W21bjWgtW01bYg1aHVvtWh1oDVv9W+1aXWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3RpbWVvdXQiIG1zZ2lkPSI1Mjc2NTk4NTg3MDg3NjI2ODc3Ij4i1LPVuNaA1a7VuNWy1bjWgtWp1bXVodW2INWq1aHVtNWh1bbVodWv1agg1b3VutWh1bzVvtWl1oEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljNmY2N2UKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICAKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9jb25maXJtX3RpdGxlIiBtc2dpZD0iODI3NTYzNzI0MjA5MzAzMzQ1Ij4i4YOh4YOg4YOj4YOa4YOYIOGDoeGDkOGDoOGDlOGDluGDlOGDoOGDleGDnSDhg5nhg53hg57hg5jhg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI1NDY5MzY1ODA5NTY3NDg2NjAyIj4i4YOh4YOg4YOj4YOa4YOQ4YOTIOGDkOGDpuGDk+GDkuGDlOGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9jb25maXJtX3RleHQiIG1zZ2lkPSIxODc4MDIxMjgyNzU4ODk2NTkzIj4i4YOb4YOd4YOX4YOu4YOd4YOV4YOc4YOY4YOaIOGDmOGDpeGDnOGDkCDhg6Hhg5Dhg5vhg5Dhg5Lhg5jhg5Phg50g4YOZ4YOd4YOb4YOe4YOY4YOj4YOi4YOU4YOg4YOX4YOQ4YOcIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDo+GDmuGDmCDhg6fhg5Xhg5Thg5rhg5Ag4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOY4YOhIOGDoeGDoOGDo+GDmuGDp+GDneGDpOGDmOGDmuGDmCDhg6Hhg5Dhg6Dhg5Thg5bhg5Thg6Dhg5Xhg50g4YOQ4YOh4YOa4YOU4YOR4YOYLiBcblxu4YOX4YOjIOGDoeGDkOGDoOGDlOGDluGDlOGDoOGDleGDnSDhg5Dhg6Hhg5rhg5Thg5Hhg5gg4YOX4YOl4YOV4YOU4YOcIOGDkOGDoCDhg5vhg53hg5Lhg5jhg5fhg67hg53hg5Xhg5jhg5Dhg5csIOGDkOGDoCDhg5Phg5Dhg6Phg6jhg5Xhg5Dhg5cg4YOQ4YObIOGDneGDnuGDlOGDoOGDkOGDquGDmOGDmOGDoSDhg5Lhg5Dhg5Lhg6Dhg6vhg5Thg5rhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3dfYmFja3VwX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjQyMTcyMjg3NDc3Njk2NDQwNjgiPiLhg6nhg5Thg5vhg5gg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDoeGDkOGDoOGDlOGDluGDlOGDoOGDleGDnSDhg5nhg53hg57hg5jhg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI2MDA5MTE5MTE1NTgxMDk3NzA4Ij4i4YOh4YOQ4YOg4YOU4YOW4YOU4YOg4YOV4YOdIOGDkOGDoeGDmuGDlOGDkeGDmCDhg5Dhg6Ag4YOS4YOQ4YOQ4YOZ4YOU4YOX4YOdIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RleHQiIG1zZ2lkPSI3NDk5ODY2NzI4MDMwNDYxNzc2Ij4i4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOj4YOa4YOYIOGDk+GDlOGDoeGDmeGDouGDneGDniDhg5nhg53hg5vhg57hg5jhg6Phg6Lhg5Thg6Dhg5jhg5Phg5Dhg5wg4YOb4YOd4YOu4YOT4YOQIOGDp+GDleGDlOGDmuGDkCDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5jhg6Eg4YOh4YOg4YOj4YOa4YOYIOGDkOGDpuGDk+GDkuGDlOGDnOGDmOGDoSDhg5vhg53hg5fhg67hg53hg5Xhg5zhg5AuIOGDkuGDoeGDo+GDoOGDlywg4YOT4YOQ4YOj4YOo4YOV4YOQ4YOXIOGDlOGDoT9cblxu4YOX4YOjIOGDl+GDpeGDleGDlOGDnCDhg5fhg5Xhg5jhg5fhg53hg5wg4YOQ4YOgIOGDm+GDneGDmOGDl+GDruGDneGDleGDlOGDlyDhg5Dhg6bhg5Phg5Lhg5Thg5zhg5AsIOGDkOGDoCDhg5Phg5Dhg6Phg6jhg5Xhg5Dhg5cg4YOQ4YObIOGDneGDnuGDlOGDoOGDkOGDquGDmOGDmOGDoSDhg5Lhg5Dhg5Lhg6Dhg6vhg5Thg5rhg5Thg5Hhg5AuIOGDmOGDoSDhg6nhg5Dhg5Dhg5zhg5Dhg6rhg5Xhg5rhg5Thg5Hhg6Eg4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOQ4YOW4YOUIOGDkOGDm+GDn+GDkOGDm+GDkOGDkyDhg5Dhg6Dhg6Hhg5Thg5Hhg6Phg5og4YOc4YOU4YOR4YOY4YOh4YOb4YOY4YOU4YOgIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDoSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjMwODEyODY3NTIyNzcxMjc4MjciPiLhg6nhg5Thg5vhg5gg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDkOGDpuGDk+GDkuGDlOGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnlfcmVzdG9yZV9idXR0b25fbGFiZWwiIG1zZ2lkPSIxNzI0MzY3MzM0NDUzMTA0Mzc4Ij4i4YOQ4YOgIOGDkOGDpuGDkOGDk+GDkuGDmOGDnOGDnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1cnJlbnRfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjgyNjgxODk1NTU1NzgyOTgwNjciPiLhg5Lhg5fhg67hg53hg5Xhg5csIOGDpeGDleGDlOGDm+GDneGDlyDhg5vhg5jhg6Phg5fhg5jhg5fhg53hg5cg4YOX4YOl4YOV4YOU4YOc4YOYIOGDkOGDm+GDn+GDkOGDm+GDmOGDnOGDk+GDlOGDmuGDmCDhg6Hhg5Dhg5fhg5Dhg5Phg5Dhg6Dhg5jhg5Lhg50g4YOe4YOQ4YOg4YOd4YOa4YOYOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX3Jlc3RvcmVfdGV4dCIgbXNnaWQ9IjE1NzA4NjQ5MTY4NTUyMDg5OTIiPiLhg5Lhg5fhg67hg53hg5Xhg5csIOGDpeGDleGDlOGDm+GDneGDlyDhg5vhg5jhg6Phg5fhg5jhg5fhg53hg5cg4YOX4YOl4YOV4YOU4YOc4YOYIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDmOGDoSDhg5Phg5Dhg6jhg5jhg6Thg5Xhg6Dhg5jhg6Eg4YOe4YOQ4YOg4YOd4YOa4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX2JhY2t1cF90ZXh0IiBtc2dpZD0iNTg2NjU5MDc2MjY3Mjg0NDY2NCI+IuGDkuGDl+GDruGDneGDleGDlywg4YOl4YOV4YOU4YOb4YOd4YOXIOGDm+GDmOGDo+GDl+GDmOGDl+GDneGDlyDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOY4YOhIOGDk+GDkOGDqOGDmOGDpOGDleGDoOGDmOGDoSDhg57hg5Dhg6Dhg53hg5rhg5guIOGDlOGDoSDhg5Dhg6Hhg5Thg5Xhg5Qg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOj4YOa4YOYIOGDmOGDpeGDnOGDlOGDkeGDkCDhg6Hhg5Dhg5fhg5Dhg5Phg5Dhg6Dhg5jhg5Lhg50g4YOQ4YOg4YOl4YOY4YOV4YOY4YOhIOGDk+GDkOGDqOGDmOGDpOGDoOGDleGDmOGDoeGDkOGDl+GDleGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI0OTgxNTg1NzE0Nzk1MjMzMDk5Ij4i4YOS4YOX4YOu4YOd4YOV4YOXIOGDqOGDlOGDmOGDp+GDleGDkOGDnOGDneGDlyDhg6fhg5Xhg5Thg5rhg5Ag4YOh4YOQ4YOb4YOQ4YOg4YOl4YOQ4YOk4YOdIOGDkOGDoeGDmuGDmOGDoSDhg5Phg5Dhg6jhg5jhg6Thg6Dhg5Xhg5jhg6Eg4YOe4YOQ4YOg4YOd4YOa4YOYLiDhg5fhg6Mg4YOQ4YObIOGDleGDlOGDmuGDoSDhg6rhg5Dhg6Dhg5jhg5Thg5rhg6Eg4YOT4YOQ4YOi4YOd4YOV4YOU4YOR4YOXLCDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg6Phg5rhg5gg4YOY4YOl4YOc4YOU4YOR4YOQIOGDm+GDmOGDm+GDk+GDmOGDnOGDkOGDoOGDlCDhg57hg5Dhg6Dhg53hg5rhg5g6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF9vcHRpb25hbCIgbXNnaWQ9IjEzNTAxMzczNDU5MDc1NzkzMDYiPiLhg5fhg6Mg4YOS4YOh4YOj4YOg4YOXIOGDoeGDoOGDo+GDmuGDmCDhg5rhg53hg5nhg5Dhg5rhg6Phg6Dhg5gg4YOh4YOQ4YOg4YOU4YOW4YOU4YOg4YOV4YOdIOGDmeGDneGDnuGDmOGDmOGDoSDhg5Phg5Dhg6jhg5jhg6Thg6Dhg5Xhg5AsIOGDqOGDlOGDmOGDp+GDleGDkOGDnOGDlOGDlyDhg57hg5Dhg6Dhg53hg5rhg5gg4YOl4YOV4YOU4YOb4YOd4YOXOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfZW5jX3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI2MTQwODk4NTI1NTgwNzEwODIzIj4i4YOX4YOjIOGDkOGDpuGDoeGDkOGDk+GDkuGDlOGDnOGDmCDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5gg4YOT4YOQ4YOo4YOY4YOk4YOg4YOj4YOa4YOY4YOQLCDhg5Lhg5fhg67hg53hg5Xhg5csIOGDqOGDlOGDmOGDp+GDleGDkOGDnOGDneGDlyDhg57hg5Dhg6Dhg53hg5rhg5gg4YOl4YOV4YOU4YOb4YOd4YOXOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9zdGFydGVkIiBtc2dpZD0iNTUwMzU0MjgxNDUyNzU2MTIxIj4i4YOQ4YOh4YOa4YOU4YOR4YOY4YOhIOGDm+GDneGDm+GDluGDkOGDk+GDlOGDkeGDkCDhg5jhg6zhg6fhg5Thg5Hhg5AuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfZW5kZWQiIG1zZ2lkPSIzODE4MDgwNzY5NTQ4NzI2NDI0Ij4i4YOh4YOQ4YOg4YOU4YOW4YOU4YOg4YOV4YOdIOGDmeGDneGDnuGDmOGDoOGDlOGDkeGDkCDhg5Phg5Dhg6Hhg6Dhg6Phg5rhg5Thg5Hhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX3N0YXJ0ZWQiIG1zZ2lkPSI3ODgxNjc5MjE4OTcxMjc3Mzg1Ij4i4YOQ4YOm4YOT4YOS4YOU4YOc4YOQIOGDmOGDrOGDp+GDlOGDkeGDkC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3Jlc3RvcmVfZW5kZWQiIG1zZ2lkPSIxNzY0MDQxNjM5MTk5Njk2MTMyIj4i4YOQ4YOm4YOT4YOS4YOU4YOc4YOQIOGDk+GDkOGDoeGDoOGDo+GDmuGDk+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3RpbWVvdXQiIG1zZ2lkPSI1Mjc2NTk4NTg3MDg3NjI2ODc3Ij4i4YOd4YOe4YOU4YOg4YOQ4YOq4YOY4YOY4YOhIOGDk+GDoOGDneGDmOGDoSDhg5rhg5jhg5vhg5jhg6Lhg5gg4YOQ4YOb4YOd4YOY4YOs4YOj4YOg4YOQIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMta2Evc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMta2Evc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDliNzJlMWIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMta2Evc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiLhg6Hhg6Dhg6Phg5rhg5gg4YOT4YOQ4YOb4YOQ4YOg4YOl4YOQ4YOk4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RpdGxlIiBtc2dpZD0iNTQ2OTM2NTgwOTU2NzQ4NjYwMiI+IuGDoeGDoOGDo+GDmuGDkOGDkyDhg5Dhg6bhg5Phg5Lhg5Thg5zhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90ZXh0IiBtc2dpZD0iMTg3ODAyMTI4Mjc1ODg5NjU5MyI+IuGDm+GDneGDl+GDruGDneGDleGDnOGDmOGDmiDhg5jhg6Xhg5zhg5Ag4YOh4YOQ4YOb4YOQ4YOS4YOY4YOT4YOdIOGDmeGDneGDm+GDnuGDmOGDo+GDouGDlOGDoOGDl+GDkOGDnCDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg6Phg5rhg5gg4YOn4YOV4YOU4YOa4YOQIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDmOGDoSDhg6Hhg6Dhg6Phg5rhg6fhg53hg6Thg5jhg5rhg5gg4YOh4YOQ4YOg4YOU4YOW4YOU4YOg4YOV4YOdIOGDkOGDoeGDmuGDlOGDkeGDmC4gXG5cbuGDl+GDoyDhg6Hhg5Dhg6Dhg5Thg5bhg5Thg6Dhg5Xhg50g4YOQ4YOh4YOa4YOU4YOR4YOYIOGDl+GDpeGDleGDlOGDnCDhg5Dhg6Ag4YOb4YOd4YOS4YOY4YOX4YOu4YOd4YOV4YOY4YOQ4YOXLCDhg5Dhg6Ag4YOT4YOQ4YOj4YOo4YOV4YOQ4YOXIOGDkOGDmyDhg53hg57hg5Thg6Dhg5Dhg6rhg5jhg5jhg6Eg4YOS4YOQ4YOS4YOg4YOr4YOU4YOa4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI0MjE3MjI4NzQ3NzY5NjQ0MDY4Ij4i4YOp4YOU4YOb4YOYIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmOGDoSDhg5Phg5Dhg5vhg5Dhg6Dhg6Xhg5Dhg6Thg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI2MDA5MTE5MTE1NTgxMDk3NzA4Ij4i4YOh4YOQ4YOg4YOU4YOW4YOU4YOg4YOV4YOdIOGDkOGDoeGDmuGDlOGDkeGDmCDhg5Dhg6Ag4YOS4YOQ4YOQ4YOZ4YOU4YOX4YOdIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RleHQiIG1zZ2lkPSI3NDk5ODY2NzI4MDMwNDYxNzc2Ij4i4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOj4YOa4YOYIOGDk+GDlOGDoeGDmeGDouGDneGDniDhg5nhg53hg5vhg57hg5jhg6Phg6Lhg5Thg6Dhg5jhg5Phg5Dhg5wg4YOb4YOd4YOu4YOT4YOQIOGDp+GDleGDlOGDmuGDkCDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5jhg6Eg4YOh4YOg4YOj4YOa4YOYIOGDkOGDpuGDk+GDkuGDlOGDnOGDmOGDoSDhg5vhg53hg5fhg67hg53hg5Xhg5zhg5AuIOGDkuGDoeGDo+GDoOGDlywg4YOT4YOQ4YOj4YOo4YOV4YOQ4YOXIOGDlOGDoT9cblxu4YOX4YOjIOGDl+GDpeGDleGDlOGDnCDhg5fhg5Xhg5jhg5fhg53hg5wg4YOQ4YOgIOGDm+GDneGDmOGDl+GDruGDneGDleGDlOGDlyDhg5Dhg6bhg5Phg5Lhg5Thg5zhg5AsIOGDkOGDoCDhg5Phg5Dhg6Phg6jhg5Xhg5Dhg5cg4YOQ4YObIOGDneGDnuGDlOGDoOGDkOGDquGDmOGDmOGDoSDhg5Lhg5Dhg5Lhg6Dhg6vhg5Thg5rhg5Thg5Hhg5AuIOGDmOGDoSDhg6nhg5Dhg5Dhg5zhg5Dhg6rhg5Xhg5rhg5Thg5Hhg6Eg4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOQ4YOW4YOUIOGDkOGDm+GDn+GDkOGDm+GDkOGDkyDhg5Dhg6Dhg6Hhg5Thg5Hhg6Phg5og4YOc4YOU4YOR4YOY4YOh4YOb4YOY4YOU4YOgIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDoSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjMwODEyODY3NTIyNzcxMjc4MjciPiLhg6nhg5Thg5vhg5gg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDkOGDpuGDk+GDkuGDlOGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnlfcmVzdG9yZV9idXR0b25fbGFiZWwiIG1zZ2lkPSIxNzI0MzY3MzM0NDUzMTA0Mzc4Ij4i4YOQ4YOgIOGDkOGDpuGDkOGDk+GDkuGDmOGDnOGDnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1cnJlbnRfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjgyNjgxODk1NTU1NzgyOTgwNjciPiLhg5Lhg5fhg67hg53hg5Xhg5csIOGDpeGDleGDlOGDm+GDneGDlyDhg5vhg5jhg6Phg5fhg5jhg5fhg53hg5cg4YOX4YOl4YOV4YOU4YOc4YOYIOGDkOGDm+GDn+GDkOGDm+GDmOGDnOGDk+GDlOGDmuGDmCDhg6Hhg5Dhg5fhg5Dhg5Phg5Dhg6Dhg5jhg5Lhg50g4YOe4YOQ4YOg4YOd4YOa4YOYOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX3Jlc3RvcmVfdGV4dCIgbXNnaWQ9IjE1NzA4NjQ5MTY4NTUyMDg5OTIiPiLhg5Lhg5fhg67hg53hg5Xhg5csIOGDpeGDleGDlOGDm+GDneGDlyDhg5vhg5jhg6Phg5fhg5jhg5fhg53hg5cg4YOX4YOl4YOV4YOU4YOc4YOYIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDmOGDoSDhg5Phg5Dhg6jhg5jhg6Thg5Xhg6Dhg5jhg6Eg4YOe4YOQ4YOg4YOd4YOa4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX2JhY2t1cF90ZXh0IiBtc2dpZD0iNTg2NjU5MDc2MjY3Mjg0NDY2NCI+IuGDkuGDl+GDruGDneGDleGDlywg4YOl4YOV4YOU4YOb4YOd4YOXIOGDm+GDmOGDo+GDl+GDmOGDl+GDneGDlyDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOY4YOhIOGDk+GDkOGDqOGDmOGDpOGDleGDoOGDmOGDoSDhg57hg5Dhg6Dhg53hg5rhg5guIOGDlOGDoSDhg5Dhg6Hhg5Thg5Xhg5Qg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOj4YOa4YOYIOGDmOGDpeGDnOGDlOGDkeGDkCDhg6Hhg5Dhg5fhg5Dhg5Phg5Dhg6Dhg5jhg5Lhg50g4YOQ4YOg4YOl4YOY4YOV4YOY4YOhIOGDk+GDkOGDqOGDmOGDpOGDoOGDleGDmOGDoeGDkOGDl+GDleGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI0OTgxNTg1NzE0Nzk1MjMzMDk5Ij4i4YOS4YOX4YOu4YOd4YOV4YOXIOGDqOGDlOGDmOGDp+GDleGDkOGDnOGDneGDlyDhg6fhg5Xhg5Thg5rhg5Ag4YOh4YOQ4YOb4YOQ4YOg4YOl4YOQ4YOk4YOdIOGDkOGDoeGDmuGDmOGDoSDhg5Phg5Dhg6jhg5jhg6Thg6Dhg5Xhg5jhg6Eg4YOe4YOQ4YOg4YOd4YOa4YOYLiDhg5fhg6Mg4YOQ4YObIOGDleGDlOGDmuGDoSDhg6rhg5Dhg6Dhg5jhg5Thg5rhg6Eg4YOT4YOQ4YOi4YOd4YOV4YOU4YOR4YOXLCDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg6Phg5rhg5gg4YOY4YOl4YOc4YOU4YOR4YOQIOGDm+GDmOGDm+GDk+GDmOGDnOGDkOGDoOGDlCDhg57hg5Dhg6Dhg53hg5rhg5g6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF9vcHRpb25hbCIgbXNnaWQ9IjEzNTAxMzczNDU5MDc1NzkzMDYiPiLhg5fhg6Mg4YOS4YOh4YOj4YOg4YOXIOGDm+GDl+GDlOGDmuGDmCDhg5Phg5Dhg5vhg5Dhg6Dhg6Xhg5Dhg6Thg5Thg5Hhg6Phg5rhg5gg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDk+GDkOGDqOGDmOGDpOGDoOGDleGDkCwg4YOo4YOU4YOY4YOn4YOV4YOQ4YOc4YOU4YOXIOGDnuGDkOGDoOGDneGDmuGDmCDhg6Xhg5Xhg5Thg5vhg53hg5c6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjYxNDA4OTg1MjU1ODA3MTA4MjMiPiLhg5fhg6Mg4YOQ4YOm4YOh4YOQ4YOT4YOS4YOU4YOc4YOYIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmCDhg5Phg5Dhg6jhg5jhg6Thg6Dhg6Phg5rhg5jhg5AsIOGDkuGDl+GDruGDneGDleGDlywg4YOo4YOU4YOY4YOn4YOV4YOQ4YOc4YOd4YOXIOGDnuGDkOGDoOGDneGDmuGDmCDhg6Xhg5Xhg5Thg5vhg53hg5c6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfYmFja3VwX3N0YXJ0ZWQiIG1zZ2lkPSI1NTAzNTQyODE0NTI3NTYxMjEiPiLhg5Dhg6Hhg5rhg5Thg5Hhg5jhg6Eg4YOb4YOd4YOb4YOW4YOQ4YOT4YOU4YOR4YOQIOGDmOGDrOGDp+GDlOGDkeGDkC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9lbmRlZCIgbXNnaWQ9IjM4MTgwODA3Njk1NDg3MjY0MjQiPiLhg5Phg5Dhg5vhg5Dhg6Dhg6Xhg5Dhg6Thg5Thg5Hhg5Ag4YOT4YOQ4YOh4YOg4YOj4YOa4YOT4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9zdGFydGVkIiBtc2dpZD0iNzg4MTY3OTIxODk3MTI3NzM4NSI+IuGDkOGDpuGDk+GDkuGDlOGDnOGDkCDhg5jhg6zhg6fhg5Thg5Hhg5AuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX2VuZGVkIiBtc2dpZD0iMTc2NDA0MTYzOTE5OTY5NjEzMiI+IuGDkOGDpuGDk+GDkuGDlOGDnOGDkCDhg5Phg5Dhg6Hhg6Dhg6Phg5rhg5Phg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF90aW1lb3V0IiBtc2dpZD0iNTI3NjU5ODU4NzA4NzYyNjg3NyI+IuGDneGDnuGDlOGDoOGDkOGDquGDmOGDmOGDoSDhg5Phg6Dhg53hg5jhg6Eg4YOa4YOY4YOb4YOY4YOi4YOYIOGDkOGDm+GDneGDmOGDrOGDo+GDoOGDkCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1rbS1yS0gvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU2ZmRkNwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1rbS1yS0gvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiLhnoDhnrbhnprigIvhnpThnpjhn5LhnprhnrvhnoTigIvhnpHhnrvhnoDigIvhnpbhn4Hhnonhnpvhn4HhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI1NDY5MzY1ODA5NTY3NDg2NjAyIj4i4Z6f4Z+S4Z6K4Z624Z6a4oCL4Z6h4Z6+4Z6E4Z6c4Z634Z6J4oCL4Z6W4Z+B4Z6J4Z6b4Z+B4Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGV4dCIgbXNnaWQ9IjE4NzgwMjEyODI3NTg4OTY1OTMiPiLhnoDhnrbhnprigIvhnpThnpjhn5LhnprhnrvhnoThnpHhnrvhnoDigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpHhnrbhn4bhnoThnqLhnp/hn4vigIvhnpbhn4Hhnonhnpvhn4HhnonigIvigIvhnpHhn4XigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnorhn4LhnpvigIvhnpThnrbhnpPigIvhnpfhn5LhnofhnrbhnpThn4vigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnp/hn5LhnpPhnr7hn5Qg4Z6P4Z6+4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6F4Z6E4Z+L4Z6y4Z+S4Z6Z4oCL4Z6c4Z624oCL4Z6A4Z6+4Z6P4oCL4Z6h4Z6+4Z6E4oCL4Z6K4Z+C4Z6a4oCL4Z6s4Z6R4Z+BPz9cblxu4Z6U4Z6+4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6Y4Z634Z6T4oCL4Z6U4Z624Z6T4oCL4Z6f4Z+S4Z6T4Z6+4oCL4Z6A4Z624Z6a4oCL4Z6U4Z6Y4Z+S4Z6a4Z674Z6E4Z6R4Z674Z6A4oCL4Z6K4Z+E4Z6Z4oCL4Z6B4Z+S4Z6b4Z694Z6T4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+L4oCL4Z6R4Z+BIOGegOGeu+GfhuKAi+GeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GelOGfkuGemuGej+Get+GelOGej+GfkuGej+Get+GegOGetuGemuKAi+Gek+GfgeGfh+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI0MjE3MjI4NzQ3NzY5NjQ0MDY4Ij4i4Z6U4Z6Y4Z+S4Z6a4Z674Z6E4oCL4Z6R4Z674Z6A4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6B4Z+S4Z6J4Z674Z+GIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNjAwOTExOTExNTU4MTA5NzcwOCI+IuGegOGeu+GfhuKAi+GelOGemOGfkuGemuGeu+GehOKAi+GekeGeu+GegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90ZXh0IiBtc2dpZD0iNzQ5OTg2NjcyODAzMDQ2MTc3NiI+IuGegOGetuGemuKAi+Gen+GfkuGeiuGetuGemuKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GekeGetuGfhuGehOGeouGen+Gfi+KAi+GeluGfgeGeieGem+GfgeGeieKAi+GeluGeuOKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GeiuGfguGem+KAi+GelOGetuGek+KAi+Gej+Gel+GfkuGeh+GetuGelOGfi+KAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+Gen+GfkuGek+GevuGflCDhno/hnr7igIvhnqLhn5LhnpPhnoDigIvhnoXhnoThn4vigIvhnqLhnpPhnrvhnonhn5Lhnonhnrbhno/igIvhnorhn4LhnprigIvhnqzhnpHhn4E/XG5cbiDhnpThnr7igIvhnqLhn5LhnpPhnoDigIvhnpjhnrfhnpPigIvhnpThnrbhnpPigIvhnp/hn5LhnpPhnr7igIvhnoDhnrbhnprigIvhnp/hn5LhnorhnrbhnprigIvhnoHhn5Lhnpvhnr3hnpPigIvhnq/hnoTigIvhnpHhn4Eg4Z6A4Z674Z+G4oCL4Z6i4Z6T4Z674Z6J4Z+S4Z6J4Z624Z6P4Z+UIOGenOGetuKAi+Gek+GeueGehOKAi+Geh+GfhuGek+GeveGen+KAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GejuGetuGemOGeveGemeKAi+GeiuGfguGem+KAi+GemOGetuGek+KAi+Gem+GevuKAi+Gep+GelOGegOGemuGejuGfjSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjMwODEyODY3NTIyNzcxMjc4MjciPiLhnp/hn5LhnorhnrbhnprigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnprhnpThnp/hn4vigIvhnoHhn5Lhnonhnrvhn4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTcyNDM2NzMzNDQ1MzEwNDM3OCI+IuGegOGeu+GfhuKAi+Gen+GfkuGeiuGetuGemuKAi+GeoeGevuGehOGenOGet+GeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1cnJlbnRfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjgyNjgxODk1NTU1NzgyOTgwNjciPiLhnp/hnrzhnpjigIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnpThnpjhn5LhnprhnrvhnoTigIvhnpHhnrvhnoDigIvhnpThnoXhn5LhnoXhnrvhnpThn5LhnpThnpPhn5LhnpPigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnoHhnrbhnoTigIvhnoDhn5Lhnprhn4Thnpjhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXZpY2VfZW5jcnlwdGlvbl9yZXN0b3JlX3RleHQiIG1zZ2lkPSIxNTcwODY0OTE2ODU1MjA4OTkyIj4i4Z6f4Z684Z6Y4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6K4Z624Z6A4Z+L4oCL4Z6b4Z+B4Z6B4oCL4Z6A4Z684Z6K4oCL4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6a4Z6U4Z6f4Z+L4oCL4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6a4Z+E4Z6Y4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fYmFja3VwX3RleHQiIG1zZ2lkPSI1ODY2NTkwNzYyNjcyODQ0NjY0Ij4i4Z6f4Z684Z6Y4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6K4Z624Z6A4Z+L4oCL4Z6b4Z+B4Z6B4oCL4Z6A4Z684Z6K4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6a4Z+E4Z6Y4Z+UIOGenOGetuKAi+Gek+GeueGehOKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GelOGfkuGemuGeviDhnorhnr7hnpjhn5LhnpThnrjigIvhnorhnrbhnoDhn4vigIvhnpvhn4HhnoHigIvhnoDhnrzhnorigIvhnpThn5Dhno7hn5Lhno7hnp/hnrbhnprigIvhnpThnpjhn5LhnprhnrvhnoThnpHhnrvhnoDigIvhnpXhnoTigIvhnorhn4Lhnprhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI0OTgxNTg1NzE0Nzk1MjMzMDk5Ij4i4Z6f4Z684Z6Y4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6K4Z624Z6A4Z+L4Z6b4Z+B4Z6B4oCL4Z6A4Z684Z6K4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6U4Z6Y4Z+S4Z6a4Z674Z6E4Z6R4Z674Z6A4oCL4Z6W4Z+B4Z6J4Z6b4Z+B4Z6J4Z+UIOGelOGevuKAi+GekeGeu+GegOKAi+GenOGetuKAi+GekeGekeGfgSDhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnpThnpjhn5LhnprhnrvhnoThnpHhnrvhnoDigIvhnpThnoXhn5LhnoXhnrvhnpThn5LhnpThnpPhn5LhnpPigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnpPhnrnhnoTigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnpThn5Lhnprhnr7hn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX29wdGlvbmFsIiBtc2dpZD0iMTM1MDEzNzM0NTkwNzU3OTMwNiI+IuGelOGevuKAi+GeouGfkuGek+GegOKAi+GeheGehOGfi+KAi+GeiuGetuGegOGfi+KAi+Gem+GfgeGegeKAi+GegOGevOGeiuKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GelOGemOGfkuGemuGeu+GehOGekeGeu+GegOKAi+GeluGfgeGeieGem+GfgeGeiSDhnpThnonhn5LhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnoHhnrbhnoTigIvhnoDhn5Lhnprhn4Thnpjhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNjE0MDg5ODUyNTU4MDcxMDgyMyI+IuGelOGevuKAi+KAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+Gen+GfkuGeiuGetuGemuKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GeiuGetuGegOGfi+KAi+Gem+GfgeGegeKAi+GegOGevOGeiiDhnp/hnrzhnpjigIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnoHhnrbhnoTigIvhnoDhn5Lhnprhn4Thnpjhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfc3RhcnRlZCIgbXNnaWQ9IjU1MDM1NDI4MTQ1Mjc1NjEyMSI+IuGegOGfhuGeluGeu+GehOKAi+GeheGetuGelOGfi+GeleGfkuGeiuGevuGemOKAi+GelOGemOGfkuGemuGeu+GehOGekeGeu+GegC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9lbmRlZCIgbXNnaWQ9IjM4MTgwODA3Njk1NDg3MjY0MjQiPiLhnoDhnrbhnprigIvigIvhnpThnpjhn5LhnprhnrvhnoTigIvhnpHhnrvhnoDigIvhnpThnrbhnpPigIvhnpThnonhn5LhnoXhnpThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX3N0YXJ0ZWQiIG1zZ2lkPSI3ODgxNjc5MjE4OTcxMjc3Mzg1Ij4i4Z6A4Z624Z6a4oCL4Z6f4Z+S4Z6K4Z624Z6a4oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6YLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9lbmRlZCIgbXNnaWQ9IjE3NjQwNDE2MzkxOTk2OTYxMzIiPiLhnoDhnrbhnprigIvhnp/hn5Lhno/hnrbigIvhnprigIvhnpThnrbhnpPigIvhnpThnonhn5LhnoXhnpThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF90aW1lb3V0IiBtc2dpZD0iNTI3NjU5ODU4NzA4NzYyNjg3NyI+IuGelOGfkuGemuGej+Get+GelOGej+GfkuGej+Get+GegOGetuGemuKAi+GeouGen+Gfi+KAi+GeluGfgeGemyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWttL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWttL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1NmZkZDcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMta20vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiLhnoDhnrbhnprigIvhnpThnpjhn5LhnprhnrvhnoTigIvhnpHhnrvhnoDigIvhnpbhn4Hhnonhnpvhn4HhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI1NDY5MzY1ODA5NTY3NDg2NjAyIj4i4Z6f4Z+S4Z6K4Z624Z6a4oCL4Z6h4Z6+4Z6E4Z6c4Z634Z6J4oCL4Z6W4Z+B4Z6J4Z6b4Z+B4Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGV4dCIgbXNnaWQ9IjE4NzgwMjEyODI3NTg4OTY1OTMiPiLhnoDhnrbhnprigIvhnpThnpjhn5LhnprhnrvhnoThnpHhnrvhnoDigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpHhnrbhn4bhnoThnqLhnp/hn4vigIvhnpbhn4Hhnonhnpvhn4HhnonigIvigIvhnpHhn4XigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnorhn4LhnpvigIvhnpThnrbhnpPigIvhnpfhn5LhnofhnrbhnpThn4vigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnp/hn5LhnpPhnr7hn5Qg4Z6P4Z6+4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6F4Z6E4Z+L4Z6y4Z+S4Z6Z4oCL4Z6c4Z624oCL4Z6A4Z6+4Z6P4oCL4Z6h4Z6+4Z6E4oCL4Z6K4Z+C4Z6a4oCL4Z6s4Z6R4Z+BPz9cblxu4Z6U4Z6+4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6Y4Z634Z6T4oCL4Z6U4Z624Z6T4oCL4Z6f4Z+S4Z6T4Z6+4oCL4Z6A4Z624Z6a4oCL4Z6U4Z6Y4Z+S4Z6a4Z674Z6E4Z6R4Z674Z6A4oCL4Z6K4Z+E4Z6Z4oCL4Z6B4Z+S4Z6b4Z694Z6T4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+L4oCL4Z6R4Z+BIOGegOGeu+GfhuKAi+GeouGek+Geu+GeieGfkuGeieGetuGej+KAi+GelOGfkuGemuGej+Get+GelOGej+GfkuGej+Get+GegOGetuGemuKAi+Gek+GfgeGfh+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI0MjE3MjI4NzQ3NzY5NjQ0MDY4Ij4i4Z6U4Z6Y4Z+S4Z6a4Z674Z6E4oCL4Z6R4Z674Z6A4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6B4Z+S4Z6J4Z674Z+GIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNjAwOTExOTExNTU4MTA5NzcwOCI+IuGegOGeu+GfhuKAi+GelOGemOGfkuGemuGeu+GehOKAi+GekeGeu+GegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90ZXh0IiBtc2dpZD0iNzQ5OTg2NjcyODAzMDQ2MTc3NiI+IuGegOGetuGemuKAi+Gen+GfkuGeiuGetuGemuKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GekeGetuGfhuGehOGeouGen+Gfi+KAi+GeluGfgeGeieGem+GfgeGeieKAi+GeluGeuOKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GeiuGfguGem+KAi+GelOGetuGek+KAi+Gej+Gel+GfkuGeh+GetuGelOGfi+KAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+Gen+GfkuGek+GevuGflCDhno/hnr7igIvhnqLhn5LhnpPhnoDigIvhnoXhnoThn4vigIvhnqLhnpPhnrvhnonhn5Lhnonhnrbhno/igIvhnorhn4LhnprigIvhnqzhnpHhn4E/XG5cbiDhnpThnr7igIvhnqLhn5LhnpPhnoDigIvhnpjhnrfhnpPigIvhnpThnrbhnpPigIvhnp/hn5LhnpPhnr7igIvhnoDhnrbhnprigIvhnp/hn5LhnorhnrbhnprigIvhnoHhn5Lhnpvhnr3hnpPigIvhnq/hnoTigIvhnpHhn4Eg4Z6A4Z674Z+G4oCL4Z6i4Z6T4Z674Z6J4Z+S4Z6J4Z624Z6P4Z+UIOGenOGetuKAi+Gek+GeueGehOKAi+Geh+GfhuGek+GeveGen+KAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GejuGetuGemOGeveGemeKAi+GeiuGfguGem+KAi+GemOGetuGek+KAi+Gem+GevuKAi+Gep+GelOGegOGemuGejuGfjSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjMwODEyODY3NTIyNzcxMjc4MjciPiLhnp/hn5LhnorhnrbhnprigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnprhnpThnp/hn4vigIvhnoHhn5Lhnonhnrvhn4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTcyNDM2NzMzNDQ1MzEwNDM3OCI+IuGegOGeu+GfhuKAi+Gen+GfkuGeiuGetuGemuKAi+GeoeGevuGehOGenOGet+GeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1cnJlbnRfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjgyNjgxODk1NTU1NzgyOTgwNjciPiLhnp/hnrzhnpjigIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnpThnpjhn5LhnprhnrvhnoTigIvhnpHhnrvhnoDigIvhnpThnoXhn5LhnoXhnrvhnpThn5LhnpThnpPhn5LhnpPigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnoHhnrbhnoTigIvhnoDhn5Lhnprhn4Thnpjhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXZpY2VfZW5jcnlwdGlvbl9yZXN0b3JlX3RleHQiIG1zZ2lkPSIxNTcwODY0OTE2ODU1MjA4OTkyIj4i4Z6f4Z684Z6Y4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6K4Z624Z6A4Z+L4oCL4Z6b4Z+B4Z6B4oCL4Z6A4Z684Z6K4oCL4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6a4Z6U4Z6f4Z+L4oCL4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6a4Z+E4Z6Y4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fYmFja3VwX3RleHQiIG1zZ2lkPSI1ODY2NTkwNzYyNjcyODQ0NjY0Ij4i4Z6f4Z684Z6Y4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6K4Z624Z6A4Z+L4oCL4Z6b4Z+B4Z6B4oCL4Z6A4Z684Z6K4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6a4Z+E4Z6Y4Z+UIOGenOGetuKAi+Gek+GeueGehOKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GelOGfkuGemuGeviDhnorhnr7hnpjhn5LhnpThnrjigIvhnorhnrbhnoDhn4vigIvhnpvhn4HhnoHigIvhnoDhnrzhnorigIvhnpThn5Dhno7hn5Lhno7hnp/hnrbhnprigIvhnpThnpjhn5LhnprhnrvhnoThnpHhnrvhnoDigIvhnpXhnoTigIvhnorhn4Lhnprhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI0OTgxNTg1NzE0Nzk1MjMzMDk5Ij4i4Z6f4Z684Z6Y4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6K4Z624Z6A4Z+L4Z6b4Z+B4Z6B4oCL4Z6A4Z684Z6K4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6U4Z6Y4Z+S4Z6a4Z674Z6E4Z6R4Z674Z6A4oCL4Z6W4Z+B4Z6J4Z6b4Z+B4Z6J4Z+UIOGelOGevuKAi+GekeGeu+GegOKAi+GenOGetuKAi+GekeGekeGfgSDhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnpThnpjhn5LhnprhnrvhnoThnpHhnrvhnoDigIvhnpThnoXhn5LhnoXhnrvhnpThn5LhnpThnpPhn5LhnpPigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnpPhnrnhnoTigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnpThn5Lhnprhnr7hn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX29wdGlvbmFsIiBtc2dpZD0iMTM1MDEzNzM0NTkwNzU3OTMwNiI+IuGelOGevuKAi+GeouGfkuGek+GegOKAi+GeheGehOGfi+KAi+GeiuGetuGegOGfi+KAi+Gem+GfgeGegeKAi+GegOGevOGeiuKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GelOGemOGfkuGemuGeu+GehOGekeGeu+GegOKAi+GeluGfgeGeieGem+GfgeGeiSDhnpThnonhn5LhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnoHhnrbhnoTigIvhnoDhn5Lhnprhn4Thnpjhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNjE0MDg5ODUyNTU4MDcxMDgyMyI+IuGelOGevuKAi+KAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+Gen+GfkuGeiuGetuGemuKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GeiuGetuGegOGfi+KAi+Gem+GfgeGegeKAi+GegOGevOGeiiDhnp/hnrzhnpjigIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnoHhnrbhnoTigIvhnoDhn5Lhnprhn4Thnpjhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfc3RhcnRlZCIgbXNnaWQ9IjU1MDM1NDI4MTQ1Mjc1NjEyMSI+IuGegOGfhuGeluGeu+GehOKAi+GeheGetuGelOGfi+GeleGfkuGeiuGevuGemOKAi+GelOGemOGfkuGemuGeu+GehOGekeGeu+GegC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9lbmRlZCIgbXNnaWQ9IjM4MTgwODA3Njk1NDg3MjY0MjQiPiLhnoDhnrbhnprigIvigIvhnpThnpjhn5LhnprhnrvhnoTigIvhnpHhnrvhnoDigIvhnpThnrbhnpPigIvhnpThnonhn5LhnoXhnpThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX3N0YXJ0ZWQiIG1zZ2lkPSI3ODgxNjc5MjE4OTcxMjc3Mzg1Ij4i4Z6A4Z624Z6a4oCL4Z6f4Z+S4Z6K4Z624Z6a4oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6YLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9lbmRlZCIgbXNnaWQ9IjE3NjQwNDE2MzkxOTk2OTYxMzIiPiLhnoDhnrbhnprigIvhnp/hn5Lhno/hnrbigIvhnprigIvhnpThnrbhnpPigIvhnpThnonhn5LhnoXhnpThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF90aW1lb3V0IiBtc2dpZD0iNTI3NjU5ODU4NzA4NzYyNjg3NyI+IuGelOGfkuGemuGej+Get+GelOGej+GfkuGej+Get+GegOGetuGemuKAi+GeouGen+Gfi+KAi+GeluGfgeGemyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWxvLXJMQS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmIyODUwMgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiLguqrgurPguq7guq3guofguoLgu43gu4nguqHgurngupngu4DgupXgurHguqHguq7gurnguprgu4HguprgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI1NDY5MzY1ODA5NTY3NDg2NjAyIj4i4LqB4Lq54LuJ4LqC4LuN4LuJ4Lqh4Lq54LqZ4LuA4LqV4Lqx4Lqh4Lqu4Lq54Lqa4LuB4Lqa4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGV4dCIgbXNnaWQ9IjE4NzgwMjEyODI3NTg4OTY1OTMiPiLguqHgurXguoHgurLgupnguq7gu4nguq3guofguoLgu43gu4Pguqvgu4nguqrgurPguq7guq3guofguoLgu43gu4nguqHgurngupngupfgurHguofgu53gurvgupQg4LuE4Lqb4LuD4Lqq4LuI4LqE4Lqt4Lqh4Lqe4Lq04Lqn4LuA4LqV4Lq14LqV4Lqx4LuJ4LqH4LuC4LqV4Lqw4LqX4Lq14LuI4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4Lqi4Lq54LuILiDgupfgu4jgurLgupnguojgurDguq3gurDgupngurjguqHgurHgupTgu4Pguqvgu4ngupTgurPgu4DgupngurXgupnguoHgurLgupnguqvgurzgurfguprgu43gu4g/XG5cbuC6q+C6suC6geC6l+C7iOC6suC6meC6muC7jeC7iOC7hOC6lOC7ieC6ruC7ieC6reC6h+C6guC7jeC7g+C6q+C7ieC6quC6s+C6ruC6reC6h+C6guC7jeC7ieC6oeC6ueC6meC6lOC7ieC6p+C6jeC6leC6u+C6meC7gOC6reC6hywg4LqB4Lqw4Lql4Lq44LqZ4Lqy4Lqi4LuI4Lqy4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LqU4Lqz4LuA4LqZ4Lq14LqZ4LqB4Lqy4LqZ4LqV4LuN4LuI4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI0MjE3MjI4NzQ3NzY5NjQ0MDY4Ij4i4Lqq4Lqz4Lqu4Lqt4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqC4Lqt4LqH4LqC4LuJ4Lqt4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNjAwOTExOTExNTU4MTA5NzcwOCI+IuC6muC7jeC7iOC7g+C6q+C7ieC6quC6s+C6ruC6reC6h+C6guC7jeC7ieC6oeC6ueC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90ZXh0IiBtc2dpZD0iNzQ5OTg2NjcyODAzMDQ2MTc3NiI+IuC6geC6suC6meC6geC6ueC7ieC6guC7jeC7ieC6oeC6ueC6meC6l+C6seC6h+C7neC6u+C6lOC6iOC6suC6geC6hOC6reC6oeC6nuC6tOC6p+C7gOC6leC6teC6l+C6teC7iOC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6ouC6ueC7iOC6meC6seC7ieC6meC6luC6t+C6geC6ruC7ieC6reC6h+C6guC7jeC7geC6peC7ieC6py4g4LqX4LuI4Lqy4LqZ4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LqB4Lqy4LqZ4LqB4Lqw4LqX4Lqz4LqZ4Lq14LuJ4LuA4LqB4Lq14LqU4LqC4Lq24LuJ4LqZ4Lqa4LuN4LuIP1xuXG7guqvgurLguoHgupfgu4jgurLgupnguprgu43gu4jgu4TgupTgu4ngu4Dguq7gurHgupTguoHgurLgupnguq7gu4nguq3guofguoLgu43gu4nguoHgurLgupnguoHgurngu4nguoLgu43gu4nguqHgurngupngupTgu4nguqfguo3gu4LgupXgupfgu4jgurLgupngu4Dguq3guocsIOC6l+C7iOC6suC6meC6muC7jeC7iOC6hOC6p+C6meC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC6oeC6teC6geC6suC6meC6lOC6s+C7gOC6meC6teC6meC6geC6suC6meC7g+C6lOC7hiDgu4Dgupngurfgu4jguq3guofguojgurLguoHguqHgurHgupnguojgurDgu4TgupvguoLgur3gupngupfgurHguprguoLgu43gu4nguqHgurngupngupfgurHguofgu53gurvgupTgupfgurXgu4jguqLgurngu4jgu4Pgupnguq3gurjgupvgurDguoHguq3gupkhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3dfcmVzdG9yZV9idXR0b25fbGFiZWwiIG1zZ2lkPSIzMDgxMjg2NzUyMjc3MTI3ODI3Ij4i4LqB4Lq54LuJ4LqE4Lq34LqZ4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqC4Lqt4LqH4LqC4LuJ4Lqt4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjE3MjQzNjczMzQ0NTMxMDQzNzgiPiLguprgu43gu4jgu4Pguqvgu4nguoHgurngu4nguoTgurfgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjdXJyZW50X3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI4MjY4MTg5NTU1NTc4Mjk4MDY3Ij4i4LqB4Lqw4Lql4Lq44LqZ4Lqy4Lqb4LuJ4Lqt4LqZ4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZ4LqB4Lqy4LqZ4Lqq4Lqz4Lqu4Lqt4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lq14LuI4LqX4LuI4Lqy4LqZ4LuD4LqK4LuJ4Lqi4Lq54LuI4LuD4Lqq4LuI4LqU4LuJ4Lqy4LqZ4Lql4Lq44LuI4LqhOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX3Jlc3RvcmVfdGV4dCIgbXNnaWQ9IjE1NzA4NjQ5MTY4NTUyMDg5OTIiPiLguoHgurDguqXgurjgupngurLgupvgu4nguq3gupnguqXgurDguqvgurHgupTgupzgu4jgurLgupnguoHgurLgupngu4DguoLgurvgu4ngurLguqXgurDguqvgurHgupTguq3gurjgupvgurDguoHguq3gupnguoLguq3guofgupfgu4jgurLgupngu4Pguqrgu4jgupTgu4ngurLgupnguqXgurjgu4jguqEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fYmFja3VwX3RleHQiIG1zZ2lkPSI1ODY2NTkwNzYyNjcyODQ0NjY0Ij4i4LqB4Lqw4Lql4Lq44LqZ4Lqy4Lqb4LuJ4Lqt4LqZ4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZ4LqB4Lqy4LqZ4LuA4LqC4Lq74LuJ4Lqy4Lql4Lqw4Lqr4Lqx4LqU4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LuD4Lqq4LuI4LqU4LuJ4Lqy4LqZ4Lql4Lq44LuI4LqhLiDguqXgurDguqvgurHgupTgupngurXgu4nguo3gurHguofguojgurDgu4Pguorgu4ngu4Dgup7gurfgu4jguq3gu4DguoLgurvgu4ngurLguqXgurDguqvgurHgupTguoLgu43gu4nguqHgurngupngupfgurXgu4jguqrgurPguq7guq3guofgu4Tguqfgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNDk4MTU4NTcxNDc5NTIzMzA5OSI+IuC6geC6sOC6peC6uOC6meC6suC6m+C7ieC6reC6meC6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6mSDgu4Dgup7gurfgu4jguq3gu4Pguorgu4ngu4PgupnguoHgurLgupngu4DguoLgurvgu4ngurLguqXgurDguqvgurHgupTguoHgurLgupnguqrgurPguq7guq3guofguoLgu43gu4nguqHgurngupngu4DgupXgurHguqHguq7gurnguprgu4HguprgupouIOC6luC7ieC6suC6m+C7iOC6reC6jeC7g+C6q+C7ieC7gOC6m+C6u+C7iOC6suC6q+C6p+C7iOC6suC6h+C7hOC6p+C7iSwg4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZ4Lqq4Lqz4Lqu4Lqt4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lq14LuI4LqX4LuI4Lqy4LqZ4LuD4LqK4LuJ4Lqi4Lq54LuI4LqI4Lqw4LqW4Lq34LqB4LqZ4Lqz4LuD4LqK4LuJ4LuB4LqX4LqZOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9lbmNfcGFzc3dvcmRfb3B0aW9uYWwiIG1zZ2lkPSIxMzUwMTM3MzQ1OTA3NTc5MzA2Ij4i4Lqr4Lqy4LqB4LqX4LuI4Lqy4LqZ4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4LqX4Lq14LuI4LqI4Lqw4LuA4LqC4Lq74LuJ4Lqy4Lql4Lqw4Lqr4Lqx4LqU4LuD4Lqr4LuJ4LqB4Lqx4Lqa4LqB4Lqy4LqZ4Lqq4Lqz4Lqu4Lqt4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lqx4LqH4Lud4Lq74LqULCDguoHgurDguqXgurjgupngurLgu4Pguqrgu4jguqXgurDguqvgurHgupTgupfgurLguofguqXgurjgu4jguqHgupngurXgu4k6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjYxNDA4OTg1MjU1ODA3MTA4MjMiPiLguqvgurLguoHguoLgu43gu4nguqHgurngupnguqrgurPguq7guq3guofgupbgurfguoHgu4DguoLgurvgu4ngurLguqXgurDguqvgurHgupTgu4Tguqfgu4ksIOC6geC6sOC6peC6uOC6meC6suC7g+C6quC7iOC6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6meC6l+C6suC6h+C6lOC7ieC6suC6meC6peC6uOC7iOC6oeC6meC6teC7iToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfc3RhcnRlZCIgbXNnaWQ9IjU1MDM1NDI4MTQ1Mjc1NjEyMSI+IuC6geC6s+C6peC6seC6h+C7gOC6peC6teC7iOC6oeC6geC6suC6meC6quC6s+C6ruC6reC6h+C6guC7jeC7ieC6oeC6ueC6mS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9lbmRlZCIgbXNnaWQ9IjM4MTgwODA3Njk1NDg3MjY0MjQiPiLguqrgurPguq7guq3guofguoLgu43gu4nguqHgurngupnguqrgurPgu4DguqXgurHgupTgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX3N0YXJ0ZWQiIG1zZ2lkPSI3ODgxNjc5MjE4OTcxMjc3Mzg1Ij4i4LqB4Lqy4LqZ4LqB4Lq54LuJ4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqB4Lqz4Lql4Lqx4LqH4LqI4Lqw4LuA4Lql4Lq14LuI4LqhLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9lbmRlZCIgbXNnaWQ9IjE3NjQwNDE2MzkxOTk2OTYxMzIiPiLguoHgurLgupnguoHgurngu4nguoLgu43gu4nguqHgurngupnguqrgurTgu4ngupnguqrgurjgupTgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF90aW1lb3V0IiBtc2dpZD0iNTI3NjU5ODU4NzA4NzYyNjg3NyI+IuC7neC6u+C6lOC7gOC6p+C6peC6suC6m+C6sOC6leC6tOC6muC6seC6lOC6geC6suC6mSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWxvL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLWxvL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMjg1MDIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMtbG8vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiLguqrgurPguq7guq3guofguoLgu43gu4nguqHgurngupngu4DgupXgurHguqHguq7gurnguprgu4HguprgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI1NDY5MzY1ODA5NTY3NDg2NjAyIj4i4LqB4Lq54LuJ4LqC4LuN4LuJ4Lqh4Lq54LqZ4LuA4LqV4Lqx4Lqh4Lqu4Lq54Lqa4LuB4Lqa4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGV4dCIgbXNnaWQ9IjE4NzgwMjEyODI3NTg4OTY1OTMiPiLguqHgurXguoHgurLgupnguq7gu4nguq3guofguoLgu43gu4Pguqvgu4nguqrgurPguq7guq3guofguoLgu43gu4nguqHgurngupngupfgurHguofgu53gurvgupQg4LuE4Lqb4LuD4Lqq4LuI4LqE4Lqt4Lqh4Lqe4Lq04Lqn4LuA4LqV4Lq14LqV4Lqx4LuJ4LqH4LuC4LqV4Lqw4LqX4Lq14LuI4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4Lqi4Lq54LuILiDgupfgu4jgurLgupnguojgurDguq3gurDgupngurjguqHgurHgupTgu4Pguqvgu4ngupTgurPgu4DgupngurXgupnguoHgurLgupnguqvgurzgurfguprgu43gu4g/XG5cbuC6q+C6suC6geC6l+C7iOC6suC6meC6muC7jeC7iOC7hOC6lOC7ieC6ruC7ieC6reC6h+C6guC7jeC7g+C6q+C7ieC6quC6s+C6ruC6reC6h+C6guC7jeC7ieC6oeC6ueC6meC6lOC7ieC6p+C6jeC6leC6u+C6meC7gOC6reC6hywg4LqB4Lqw4Lql4Lq44LqZ4Lqy4Lqi4LuI4Lqy4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LqU4Lqz4LuA4LqZ4Lq14LqZ4LqB4Lqy4LqZ4LqV4LuN4LuI4LuE4LqbLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI0MjE3MjI4NzQ3NzY5NjQ0MDY4Ij4i4Lqq4Lqz4Lqu4Lqt4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqC4Lqt4LqH4LqC4LuJ4Lqt4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNjAwOTExOTExNTU4MTA5NzcwOCI+IuC6muC7jeC7iOC7g+C6q+C7ieC6quC6s+C6ruC6reC6h+C6guC7jeC7ieC6oeC6ueC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90ZXh0IiBtc2dpZD0iNzQ5OTg2NjcyODAzMDQ2MTc3NiI+IuC6geC6suC6meC6geC6ueC7ieC6guC7jeC7ieC6oeC6ueC6meC6l+C6seC6h+C7neC6u+C6lOC6iOC6suC6geC6hOC6reC6oeC6nuC6tOC6p+C7gOC6leC6teC6l+C6teC7iOC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6ouC6ueC7iOC6meC6seC7ieC6meC6luC6t+C6geC6ruC7ieC6reC6h+C6guC7jeC7geC6peC7ieC6py4g4LqX4LuI4Lqy4LqZ4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LqB4Lqy4LqZ4LqB4Lqw4LqX4Lqz4LqZ4Lq14LuJ4LuA4LqB4Lq14LqU4LqC4Lq24LuJ4LqZ4Lqa4LuN4LuIP1xuXG7guqvgurLguoHgupfgu4jgurLgupnguprgu43gu4jgu4TgupTgu4ngu4Dguq7gurHgupTguoHgurLgupnguq7gu4nguq3guofguoLgu43gu4nguoHgurLgupnguoHgurngu4nguoLgu43gu4nguqHgurngupngupTgu4nguqfguo3gu4LgupXgupfgu4jgurLgupngu4Dguq3guocsIOC6l+C7iOC6suC6meC6muC7jeC7iOC6hOC6p+C6meC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC6oeC6teC6geC6suC6meC6lOC6s+C7gOC6meC6teC6meC6geC6suC6meC7g+C6lOC7hiDgu4Dgupngurfgu4jguq3guofguojgurLguoHguqHgurHgupnguojgurDgu4TgupvguoLgur3gupngupfgurHguprguoLgu43gu4nguqHgurngupngupfgurHguofgu53gurvgupTgupfgurXgu4jguqLgurngu4jgu4Pgupnguq3gurjgupvgurDguoHguq3gupkhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3dfcmVzdG9yZV9idXR0b25fbGFiZWwiIG1zZ2lkPSIzMDgxMjg2NzUyMjc3MTI3ODI3Ij4i4LqB4Lq54LuJ4LqE4Lq34LqZ4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqC4Lqt4LqH4LqC4LuJ4Lqt4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjE3MjQzNjczMzQ0NTMxMDQzNzgiPiLguprgu43gu4jgu4Pguqvgu4nguoHgurngu4nguoTgurfgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjdXJyZW50X3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI4MjY4MTg5NTU1NTc4Mjk4MDY3Ij4i4LqB4Lqw4Lql4Lq44LqZ4Lqy4Lqb4LuJ4Lqt4LqZ4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZ4LqB4Lqy4LqZ4Lqq4Lqz4Lqu4Lqt4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lq14LuI4LqX4LuI4Lqy4LqZ4LuD4LqK4LuJ4Lqi4Lq54LuI4LuD4Lqq4LuI4LqU4LuJ4Lqy4LqZ4Lql4Lq44LuI4LqhOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX3Jlc3RvcmVfdGV4dCIgbXNnaWQ9IjE1NzA4NjQ5MTY4NTUyMDg5OTIiPiLguoHgurDguqXgurjgupngurLgupvgu4nguq3gupnguqXgurDguqvgurHgupTgupzgu4jgurLgupnguoHgurLgupngu4DguoLgurvgu4ngurLguqXgurDguqvgurHgupTguq3gurjgupvgurDguoHguq3gupnguoLguq3guofgupfgu4jgurLgupngu4Pguqrgu4jgupTgu4ngurLgupnguqXgurjgu4jguqEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fYmFja3VwX3RleHQiIG1zZ2lkPSI1ODY2NTkwNzYyNjcyODQ0NjY0Ij4i4LqB4Lqw4Lql4Lq44LqZ4Lqy4Lqb4LuJ4Lqt4LqZ4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZ4LqB4Lqy4LqZ4LuA4LqC4Lq74LuJ4Lqy4Lql4Lqw4Lqr4Lqx4LqU4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LuD4Lqq4LuI4LqU4LuJ4Lqy4LqZ4Lql4Lq44LuI4LqhLiDguqXgurDguqvgurHgupTgupngurXgu4nguo3gurHguofguojgurDgu4Pguorgu4ngu4Dgup7gurfgu4jguq3gu4DguoLgurvgu4ngurLguqXgurDguqvgurHgupTguoLgu43gu4nguqHgurngupngupfgurXgu4jguqrgurPguq7guq3guofgu4Tguqfgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNDk4MTU4NTcxNDc5NTIzMzA5OSI+IuC6geC6sOC6peC6uOC6meC6suC6m+C7ieC6reC6meC6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6mSDgu4Dgup7gurfgu4jguq3gu4Pguorgu4ngu4PgupnguoHgurLgupngu4DguoLgurvgu4ngurLguqXgurDguqvgurHgupTguoHgurLgupnguqrgurPguq7guq3guofguoLgu43gu4nguqHgurngupngu4DgupXgurHguqHguq7gurnguprgu4HguprgupouIOC6luC7ieC6suC6m+C7iOC6reC6jeC7g+C6q+C7ieC7gOC6m+C6u+C7iOC6suC6q+C6p+C7iOC6suC6h+C7hOC6p+C7iSwg4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZ4Lqq4Lqz4Lqu4Lqt4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lq14LuI4LqX4LuI4Lqy4LqZ4LuD4LqK4LuJ4Lqi4Lq54LuI4LqI4Lqw4LqW4Lq34LqB4LqZ4Lqz4LuD4LqK4LuJ4LuB4LqX4LqZOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9lbmNfcGFzc3dvcmRfb3B0aW9uYWwiIG1zZ2lkPSIxMzUwMTM3MzQ1OTA3NTc5MzA2Ij4i4Lqr4Lqy4LqB4LqX4LuI4Lqy4LqZ4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZ4LqX4Lq14LuI4LqI4Lqw4LuA4LqC4Lq74LuJ4Lqy4Lql4Lqw4Lqr4Lqx4LqU4LuD4Lqr4LuJ4LqB4Lqx4Lqa4LqB4Lqy4LqZ4Lqq4Lqz4Lqu4Lqt4LqH4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqX4Lqx4LqH4Lud4Lq74LqULCDguoHgurDguqXgurjgupngurLgu4Pguqrgu4jguqXgurDguqvgurHgupTgupfgurLguofguqXgurjgu4jguqHgupngurXgu4k6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjYxNDA4OTg1MjU1ODA3MTA4MjMiPiLguqvgurLguoHguoLgu43gu4nguqHgurngupnguqrgurPguq7guq3guofgupbgurfguoHgu4DguoLgurvgu4ngurLguqXgurDguqvgurHgupTgu4Tguqfgu4ksIOC6geC6sOC6peC6uOC6meC6suC7g+C6quC7iOC6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6meC6l+C6suC6h+C6lOC7ieC6suC6meC6peC6uOC7iOC6oeC6meC6teC7iToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfc3RhcnRlZCIgbXNnaWQ9IjU1MDM1NDI4MTQ1Mjc1NjEyMSI+IuC6geC6s+C6peC6seC6h+C7gOC6peC6teC7iOC6oeC6geC6suC6meC6quC6s+C6ruC6reC6h+C6guC7jeC7ieC6oeC6ueC6mS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9lbmRlZCIgbXNnaWQ9IjM4MTgwODA3Njk1NDg3MjY0MjQiPiLguqrgurPguq7guq3guofguoLgu43gu4nguqHgurngupnguqrgurPgu4DguqXgurHgupTgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX3N0YXJ0ZWQiIG1zZ2lkPSI3ODgxNjc5MjE4OTcxMjc3Mzg1Ij4i4LqB4Lqy4LqZ4LqB4Lq54LuJ4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqB4Lqz4Lql4Lqx4LqH4LqI4Lqw4LuA4Lql4Lq14LuI4LqhLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9lbmRlZCIgbXNnaWQ9IjE3NjQwNDE2MzkxOTk2OTYxMzIiPiLguoHgurLgupnguoHgurngu4nguoLgu43gu4nguqHgurngupnguqrgurTgu4ngupnguqrgurjgupTgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF90aW1lb3V0IiBtc2dpZD0iNTI3NjU5ODU4NzA4NzYyNjg3NyI+IuC7neC6u+C6lOC7gOC6p+C6peC6suC6m+C6sOC6leC6tOC6muC6seC6lOC6geC6suC6mSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI3MzhjMAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiLQkdKv0YDRjdC9INC906nTqdGI0LvTqdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RpdGxlIiBtc2dpZD0iNTQ2OTM2NTgwOTU2NzQ4NjYwMiI+ItCR0q/RgNGN0L0g0YHRjdGA0LPRjdGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90ZXh0IiBtc2dpZD0iMTg3ODAyMTI4Mjc1ODg5NjU5MyI+ItCl0L7Qu9Cx0L7Qs9C00YHQvtC9INCx0LDQudCz0LDQsCDQtNC10YHQutGC0L7QvyDQutC+0LzQv9GM0Y7RgtC10YDQu9Kv0q8g0LHSr9GFINC00LDRgtCw0LMg0LHSr9GA0Y3QvSDQvdOp06nRiNC706nRhSDRhdKv0YHRjdC70YIg0YLQsNCy0LjQs9C00LDQsi4g0KLQsCDRjdC90LjQudCzINC306nQstGI06nTqdGA06nRhSDSr9KvP1xuXG7QpdGN0YDRjdCyINGC0LAg0L3TqdOp0YjQu9Op0LvRgiDRhdC40LnRhSDRhdKv0YHRjdC70YIg0YXQuNC50LPRjdGN0LPSr9C5INCx0L7QuyDRjdC90LjQudCzINC306nQstGI06nTqdGA0Ycg0LHQvtC70L7RhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNDIxNzIyODc0Nzc2OTY0NDA2OCI+ItCc0LjQvdC40Lkg0LTQsNGC0LDQsyDQvdOp06nRiNC706nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnlfYmFja3VwX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjYwMDkxMTkxMTU1ODEwOTc3MDgiPiLQndOp06nRiNC706nRhdCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90ZXh0IiBtc2dpZD0iNzQ5OTg2NjcyODAzMDQ2MTc3NiI+ItCl0L7Qu9Cx0L7Qs9C00YHQvtC9INCx0LDQudCz0LDQsCDQtNC10YHQutGC0L7QvyDQutC+0LzQv9GM0Y7RgtC10YDRjdGN0YEg0LHSr9GFINC00LDRgtCw0LMg0LHSr9GA0Y3QvSDRgdGN0YDQs9GN0Y3RhSDRhdKv0YHRjdC70YIg0YLQsNCy0LjQs9C00LDQsi4g0KLQsCDRjdC90LjQudCzINC306nQstGI06nTqdGA06nRhSDSr9KvP1xuXG7QpdGN0YDRjdCyINGC0LAg0YHRjdGA0LPRjdGN0YUg0YXSr9GB0Y3Qu9GCINGF0LjQudCz0Y3RjdCz0q/QuSDQsdC+0Lsg0Y3QvdC40LnQsyDQt9Op0LLRiNOp06nRgNGHINCx0L7Qu9C+0YXQs9Kv0LkuINCt0L3RjSDQvdGMINGC06nRhdOp06nRgNOp0LzQtiDQtNGN0Y3RgCDQvtC00L7QviDQsdCw0LnQs9Cw0LAg0LTRg9GA0YvQvSDQtNCw0YLQsNCzINC+0YDQu9GD0YPQu9Cw0YUg0LHQvtC70L3QviEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjMwODEyODY3NTIyNzcxMjc4MjciPiLQnNC40L3QuNC5INC00LDRgtCw0LMg0YHRjdGA0LPRjdGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTcyNDM2NzMzNDQ1MzEwNDM3OCI+ItCh0Y3RgNCz0Y3RjdGF0LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3VycmVudF9wYXNzd29yZF90ZXh0IiBtc2dpZD0iODI2ODE4OTU1NTU3ODI5ODA2NyI+ItCe0LTQvtC+0LPQuNC50L0g0L3TqdOp0YjQu9Op0YUg0L3Rg9GD0YYg0q/Qs9C40LnQsyDQtNC+0L7RgCDQvtGA0YPRg9C70L3QsCDRg9GDOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX3Jlc3RvcmVfdGV4dCIgbXNnaWQ9IjE1NzA4NjQ5MTY4NTUyMDg5OTIiPiLQotOp0YXTqdOp0YDTqdC80LYg0YjQuNGE0YDQu9GN0YUg0L3Rg9GD0YYg0q/Qs9C40LnQsyDQtNC+0L7RgCDQvtGA0YPRg9C70L3QsCDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX2JhY2t1cF90ZXh0IiBtc2dpZD0iNTg2NjU5MDc2MjY3Mjg0NDY2NCI+ItCi06nRhdOp06nRgNOp0LzQtiDRiNC40YTRgNC70Y3RhSDQvdGD0YPRhiDSr9Cz0LjQudCzINC00L7QvtGAINC+0YDRg9GD0LvQvdCwINGD0YMuINCt0L3RjSDQvdGD0YPRhiDSr9Cz0LjQudCzINC906nTqdGI0LvTqdGFINCw0YDRhdC40LLQuNC50LMg0YjQuNGE0YDQu9GN0YXRjdC0INCx0LDRgSDQsNGI0LjQs9C70LDQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjQ5ODE1ODU3MTQ3OTUyMzMwOTkiPiLQkdKv0YDRjdC9INC00LDRgtCwINC906nTqdGI0LvTqdC70YLQuNC50LMg0YjQuNGE0YDQu9GN0YXRjdC0INCw0YjQuNCz0LvQsNGFINC90YPRg9GGINKv0LPQuNC50LMg0L7RgNGD0YPQu9C90LAg0YPRgy4g0KXRjdGA0Y3QsiDRgtCwINGF0L7QvtGB0L7QvSDSr9C70LTRjdGN0LLRjdC7INGC0LDQvdGLINC+0LTQvtC+0LPQuNC50L0g0L3TqdOp0YjQu9Op0LvRgtC40LnQvSDQvdGD0YPRhiDSr9CzINCw0YjQuNCz0LvQsNCz0LTQsNGFINCx0L7Qu9C90L46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF9vcHRpb25hbCIgbXNnaWQ9IjEzNTAxMzczNDU5MDc1NzkzMDYiPiLQpdGN0YDRjdCyINGC0LAg0LHSr9GA0Y3QvSDQvdOp06nRiNC706nRhSDQtNCw0YLQsNCzINGI0LjRhNGA0LvRjdGFINCx0L7QuyDQtNC+0L7RgCDQvdGD0YPRhiDSr9Cz0LjQudCzINC+0YDRg9GD0LvQvdCwINGD0YM6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjYxNDA4OTg1MjU1ODA3MTA4MjMiPiLQpdGN0YDRjdCyINGB0Y3RgNCz0Y3RjdGFINC00LDRgtCwINGI0LjRhNGA0LvRjdCz0LTRgdGN0L0g0LHQvtC7INC00L7QvtGAINC90YPRg9GGINKv0LPQuNC50LMg0L7RgNGD0YPQu9C90LAg0YPRgzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfc3RhcnRlZCIgbXNnaWQ9IjU1MDM1NDI4MTQ1Mjc1NjEyMSI+ItCd06nTqdGI0LvTqdC2INGN0YXQu9GN0YUuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfZW5kZWQiIG1zZ2lkPSIzODE4MDgwNzY5NTQ4NzI2NDI0Ij4i0J3TqdOp0YjQu9Op0LvRgiDQtNGD0YPRgdCw0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX3N0YXJ0ZWQiIG1zZ2lkPSI3ODgxNjc5MjE4OTcxMjc3Mzg1Ij4i0KHRjdGA0LPRjdGN0LvRgiDRjdGF0LvRjdC2INCx0LDQudC90LAuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX2VuZGVkIiBtc2dpZD0iMTc2NDA0MTYzOTE5OTY5NjEzMiI+ItCh0Y3RgNCz0Y3RjdC70YIg0LTRg9GD0YHQsNCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfdGltZW91dCIgbXNnaWQ9IjUyNzY1OTg1ODcwODc2MjY4NzciPiLQkNC20LjQu9C70LDQs9Cw0LDQvdGLINGF0YPQs9Cw0YbQsNCwINGF0Y3RgtGA0Y3QsiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyNzM4YzAKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMtbW4vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiLQkdKv0YDRjdC9INC906nTqdGI0LvTqdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RpdGxlIiBtc2dpZD0iNTQ2OTM2NTgwOTU2NzQ4NjYwMiI+ItCR0q/RgNGN0L0g0YHRjdGA0LPRjdGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90ZXh0IiBtc2dpZD0iMTg3ODAyMTI4Mjc1ODg5NjU5MyI+ItCl0L7Qu9Cx0L7Qs9C00YHQvtC9INCx0LDQudCz0LDQsCDQtNC10YHQutGC0L7QvyDQutC+0LzQv9GM0Y7RgtC10YDQu9Kv0q8g0LHSr9GFINC00LDRgtCw0LMg0LHSr9GA0Y3QvSDQvdOp06nRiNC706nRhSDRhdKv0YHRjdC70YIg0YLQsNCy0LjQs9C00LDQsi4g0KLQsCDRjdC90LjQudCzINC306nQstGI06nTqdGA06nRhSDSr9KvP1xuXG7QpdGN0YDRjdCyINGC0LAg0L3TqdOp0YjQu9Op0LvRgiDRhdC40LnRhSDRhdKv0YHRjdC70YIg0YXQuNC50LPRjdGN0LPSr9C5INCx0L7QuyDRjdC90LjQudCzINC306nQstGI06nTqdGA0Ycg0LHQvtC70L7RhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNDIxNzIyODc0Nzc2OTY0NDA2OCI+ItCc0LjQvdC40Lkg0LTQsNGC0LDQsyDQvdOp06nRiNC706nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnlfYmFja3VwX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjYwMDkxMTkxMTU1ODEwOTc3MDgiPiLQndOp06nRiNC706nRhdCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90ZXh0IiBtc2dpZD0iNzQ5OTg2NjcyODAzMDQ2MTc3NiI+ItCl0L7Qu9Cx0L7Qs9C00YHQvtC9INCx0LDQudCz0LDQsCDQtNC10YHQutGC0L7QvyDQutC+0LzQv9GM0Y7RgtC10YDRjdGN0YEg0LHSr9GFINC00LDRgtCw0LMg0LHSr9GA0Y3QvSDRgdGN0YDQs9GN0Y3RhSDRhdKv0YHRjdC70YIg0YLQsNCy0LjQs9C00LDQsi4g0KLQsCDRjdC90LjQudCzINC306nQstGI06nTqdGA06nRhSDSr9KvP1xuXG7QpdGN0YDRjdCyINGC0LAg0YHRjdGA0LPRjdGN0YUg0YXSr9GB0Y3Qu9GCINGF0LjQudCz0Y3RjdCz0q/QuSDQsdC+0Lsg0Y3QvdC40LnQsyDQt9Op0LLRiNOp06nRgNGHINCx0L7Qu9C+0YXQs9Kv0LkuINCt0L3RjSDQvdGMINGC06nRhdOp06nRgNOp0LzQtiDQtNGN0Y3RgCDQvtC00L7QviDQsdCw0LnQs9Cw0LAg0LTRg9GA0YvQvSDQtNCw0YLQsNCzINC+0YDQu9GD0YPQu9Cw0YUg0LHQvtC70L3QviEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjMwODEyODY3NTIyNzcxMjc4MjciPiLQnNC40L3QuNC5INC00LDRgtCw0LMg0YHRjdGA0LPRjdGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTcyNDM2NzMzNDQ1MzEwNDM3OCI+ItCh0Y3RgNCz0Y3RjdGF0LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3VycmVudF9wYXNzd29yZF90ZXh0IiBtc2dpZD0iODI2ODE4OTU1NTU3ODI5ODA2NyI+ItCe0LTQvtC+0LPQuNC50L0g0L3TqdOp0YjQu9Op0YUg0L3Rg9GD0YYg0q/Qs9C40LnQsyDQtNC+0L7RgCDQvtGA0YPRg9C70L3QsCDRg9GDOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX3Jlc3RvcmVfdGV4dCIgbXNnaWQ9IjE1NzA4NjQ5MTY4NTUyMDg5OTIiPiLQotOp0YXTqdOp0YDTqdC80LYg0YjQuNGE0YDQu9GN0YUg0L3Rg9GD0YYg0q/Qs9C40LnQsyDQtNC+0L7RgCDQvtGA0YPRg9C70L3QsCDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX2JhY2t1cF90ZXh0IiBtc2dpZD0iNTg2NjU5MDc2MjY3Mjg0NDY2NCI+ItCi06nRhdOp06nRgNOp0LzQtiDRiNC40YTRgNC70Y3RhSDQvdGD0YPRhiDSr9Cz0LjQudCzINC00L7QvtGAINC+0YDRg9GD0LvQvdCwINGD0YMuINCt0L3RjSDQvdGD0YPRhiDSr9Cz0LjQudCzINC906nTqdGI0LvTqdGFINCw0YDRhdC40LLQuNC50LMg0YjQuNGE0YDQu9GN0YXRjdC0INCx0LDRgSDQsNGI0LjQs9C70LDQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjQ5ODE1ODU3MTQ3OTUyMzMwOTkiPiLQkdKv0YDRjdC9INC00LDRgtCwINC906nTqdGI0LvTqdC70YLQuNC50LMg0YjQuNGE0YDQu9GN0YXRjdC0INCw0YjQuNCz0LvQsNGFINC90YPRg9GGINKv0LPQuNC50LMg0L7RgNGD0YPQu9C90LAg0YPRgy4g0KXRjdGA0Y3QsiDRgtCwINGF0L7QvtGB0L7QvSDSr9C70LTRjdGN0LLRjdC7INGC0LDQvdGLINC+0LTQvtC+0LPQuNC50L0g0L3TqdOp0YjQu9Op0LvRgtC40LnQvSDQvdGD0YPRhiDSr9CzINCw0YjQuNCz0LvQsNCz0LTQsNGFINCx0L7Qu9C90L46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF9vcHRpb25hbCIgbXNnaWQ9IjEzNTAxMzczNDU5MDc1NzkzMDYiPiLQpdGN0YDRjdCyINGC0LAg0LHSr9GA0Y3QvSDQvdOp06nRiNC706nRhSDQtNCw0YLQsNCzINGI0LjRhNGA0LvRjdGFINCx0L7QuyDQtNC+0L7RgCDQvdGD0YPRhiDSr9Cz0LjQudCzINC+0YDRg9GD0LvQvdCwINGD0YM6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjYxNDA4OTg1MjU1ODA3MTA4MjMiPiLQpdGN0YDRjdCyINGB0Y3RgNCz0Y3RjdGFINC00LDRgtCwINGI0LjRhNGA0LvRjdCz0LTRgdGN0L0g0LHQvtC7INC00L7QvtGAINC90YPRg9GGINKv0LPQuNC50LMg0L7RgNGD0YPQu9C90LAg0YPRgzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfc3RhcnRlZCIgbXNnaWQ9IjU1MDM1NDI4MTQ1Mjc1NjEyMSI+ItCd06nTqdGI0LvTqdC2INGN0YXQu9GN0YUuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfZW5kZWQiIG1zZ2lkPSIzODE4MDgwNzY5NTQ4NzI2NDI0Ij4i0J3TqdOp0YjQu9Op0LvRgiDQtNGD0YPRgdCw0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX3N0YXJ0ZWQiIG1zZ2lkPSI3ODgxNjc5MjE4OTcxMjc3Mzg1Ij4i0KHRjdGA0LPRjdGN0LvRgiDRjdGF0LvRjdC2INCx0LDQudC90LAuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX2VuZGVkIiBtc2dpZD0iMTc2NDA0MTYzOTE5OTY5NjEzMiI+ItCh0Y3RgNCz0Y3RjdC70YIg0LTRg9GD0YHQsNCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfdGltZW91dCIgbXNnaWQ9IjUyNzY1OTg1ODcwODc2MjY4NzciPiLQkNC20LjQu9C70LDQs9Cw0LDQvdGLINGF0YPQs9Cw0YbQsNCwINGF0Y3RgtGA0Y3QsiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLW1zLXJNWS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1tcy1yTVkvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjVhOWVkZQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1tcy1yTVkvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiJTYW5kYXJhbiBwZW51aCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90aXRsZSIgbXNnaWQ9IjU0NjkzNjU4MDk1Njc0ODY2MDIiPiJQZW11bGloYW4gcGVudWgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90ZXh0IiBtc2dpZD0iMTg3ODAyMTI4Mjc1ODg5NjU5MyI+IlNhbmRhcmFuIGxlbmdrYXAgYmFnaSBzZW11YSBkYXRhIGtlIGtvbXB1dGVyIG1lamEgeWFuZyBiZXJzYW1idW5nIHRlbGFoIGRpbWludGEuIEFkYWthaCBhbmRhIG1haHUgbWVtYmVuYXJrYW4gaW5pIGJlcmxha3U/XG5cbkppa2EgYW5kYSB0aWRhayBtZW1pbnRhIHNhbmRhcmFuIGluaSBzZW5kaXJpLCBqYW5nYW4gYmVuYXJrYW4gb3BlcmFzaSBkaXRlcnVza2FuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI0MjE3MjI4NzQ3NzY5NjQ0MDY4Ij4iU2FuZGFya2FuIGRhdGEgc2F5YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnlfYmFja3VwX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjYwMDkxMTkxMTU1ODEwOTc3MDgiPiJKYW5nYW4gYnVhdCBzYW5kYXJhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90ZXh0IiBtc2dpZD0iNzQ5OTg2NjcyODAzMDQ2MTc3NiI+IlBlbXVsaWhhbiBwZW51aCBzZW11YSBkYXRhIGRhcmkga29tcHV0ZXIgbWVqYSB5YW5nIGJlcnNhbWJ1bmcgdGVsYWggZGltaW50YS4gQWRha2FoIGFuZGEgbWFodSBtZW1iZW5hcmthbiBpbmkgYmVybGFrdT9cblxuSmlrYSBhbmRhIHRpZGFrIG1lbWludGEgcGVtdWxpaGFuIGluaSBzZW5kaXJpLCBqYW5nYW4gYmVuYXJrYW4gb3BlcmFzaSBpbmkgZGl0ZXJ1c2thbi4gSW5pIGFrYW4gbWVuZ2dhbnRpa2FuIHNlYmFyYW5nIGRhdGEgc2VtYXNhIHBhZGEgcGVyYW50aSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjMwODEyODY3NTIyNzcxMjc4MjciPiJQdWxpaGthbiBkYXRhIHNheWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTcyNDM2NzMzNDQ1MzEwNDM3OCI+IkphbmdhbiBrZW1iYWxpa2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3VycmVudF9wYXNzd29yZF90ZXh0IiBtc2dpZD0iODI2ODE4OTU1NTU3ODI5ODA2NyI+IlNpbGEgbWFzdWtrYW4ga2F0YSBsYWx1YW4gc2FuZGFyYW4gc2VtYXNhIGFuZGEgZGkgYmF3YWg6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fcmVzdG9yZV90ZXh0IiBtc2dpZD0iMTU3MDg2NDkxNjg1NTIwODk5MiI+IlNpbGEgbWFzdWtrYW4ga2F0YSBsYWx1YW4gcGVueXVsaXRhbiBwZXJhbnRpIGFuZGEgZGkgYmF3YWguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fYmFja3VwX3RleHQiIG1zZ2lkPSI1ODY2NTkwNzYyNjcyODQ0NjY0Ij4iU2lsYSBtYXN1a2thbiBrYXRhIGxhbHVhbiBwZW55dWxpdGFuIHBlcmFudGkgYW5kYSBkaSBiYXdhaC4gSW5pIGp1Z2EgYWthbiBkaWd1bmFrYW4gdW50dWsgbWVueXVsaXRrYW4gYXJraWIgc2FuZGFyYW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNDk4MTU4NTcxNDc5NTIzMzA5OSI+IlNpbGEgbWFzdWtrYW4ga2F0YSBsYWx1YW4geWFuZyBoZW5kYWsgZGlndW5ha2FuIHVudHVrIG1lbnl1bGl0a2FuIGRhdGEgc2FuZGFyYW4gbGVuZ2thcC4gSmlrYSBkaWJpYXJrYW4ga29zb25nLCBrYXRhIGxhbHVhbiBzYW5kYXJhbiBzZW1hc2EgYW5kYSBha2FuIGRpZ3VuYWthbjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX29wdGlvbmFsIiBtc2dpZD0iMTM1MDEzNzM0NTkwNzU3OTMwNiI+Ikppa2EgYW5kYSBpbmdpbiBtZW55dWxpdGthbiBkYXRhIHNhbmRhcmFuIGxlbmdrYXAsIG1hc3Vra2FuIGthdGEgbGFsdWFuIGRpIGJhd2FoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfZW5jX3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI2MTQwODk4NTI1NTgwNzEwODIzIj4iSmlrYSBwZW11bGloYW4gZGF0YSBkaXN1bGl0a2FuLCBzaWxhIG1hc3Vra2FuIGthdGEgbGFsdWFuIGRpIGJhd2FoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9zdGFydGVkIiBtc2dpZD0iNTUwMzU0MjgxNDUyNzU2MTIxIj4iU2FuZGFyYW4gYmVybXVsYS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9lbmRlZCIgbXNnaWQ9IjM4MTgwODA3Njk1NDg3MjY0MjQiPiJTYW5kYXJhbiBzZWxlc2FpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9zdGFydGVkIiBtc2dpZD0iNzg4MTY3OTIxODk3MTI3NzM4NSI+IlBlbXVsaWhhbiBiZXJtdWxhLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9lbmRlZCIgbXNnaWQ9IjE3NjQwNDE2MzkxOTk2OTYxMzIiPiJQZW11bGloYW4gYmVyYWtoaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF90aW1lb3V0IiBtc2dpZD0iNTI3NjU5ODU4NzA4NzYyNjg3NyI+Ik9wZXJhc2kgdGFtYXQgbWFzYSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLW5lLXJOUC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1uZS1yTlAvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU2MzMyZgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1uZS1yTlAvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiLgpKrgpYLgpLDgpY3gpKMg4KSs4KWN4KSv4KS+4KSV4KSF4KSqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RpdGxlIiBtc2dpZD0iNTQ2OTM2NTgwOTU2NzQ4NjYwMiI+IuCkquClguCksOCljeCkoyDgpKrgpYHgpKjgpIPgpKrgpY3gpLDgpL7gpKrgpY3gpKTgpL8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90ZXh0IiBtc2dpZD0iMTg3ODAyMTI4Mjc1ODg5NjU5MyI+IuCkj+CkieCkn+CkviDgpJzgpYvgpKHgpL/gpI/gpJXgpYsg4KSh4KWH4KS44KWN4KSV4KSf4KSqIOCkleCkruCljeCkquCljeCkr+ClgeCkn+CksOCkruCkviDgpLjgpKzgpYgg4KSh4KWH4KSf4KS+4KSV4KWLIOCkj+CkieCkn+CkviDgpKrgpYLgpLDgpY3gpKMg4KSc4KSX4KWH4KSh4KS+4KSV4KWLIOCkheCkqOClgeCksOCli+CkpyDgpJfgpLDgpL/gpI/gpJXgpYsg4KSb4KWkIOCkleClhyDgpKTgpKrgpL7gpIjgpIEg4KSv4KWLIOCkueClgeCkqCDgpKbgpL/gpKgg4KSa4KS+4KS54KSo4KWB4KS54KWB4KSo4KWN4KSbPyBcblxu4KSv4KSm4KS/IOCkpOCkquCkvuCkiOCkgeCksuClhyDgpJzgpJfgpYfgpKHgpL7gpJXgpYsg4KSy4KS+4KSX4KS/IOCkhuCkq+CliOCkgSDgpIXgpKjgpYHgpLDgpYvgpKcg4KSX4KSw4KWN4KSo4KWBIOCkreCkj+CkqCDgpK3gpKjgpYcg4KSq4KWN4KSw4KSV4KWN4KSw4KS/4KSv4KS+4KSy4KS+4KSIIOCkheCkl+CkvuCkoeCkvyDgpKzgpKLgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkqOCkpuCkv+CkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI0MjE3MjI4NzQ3NzY5NjQ0MDY4Ij4i4KSu4KWH4KSw4KWLIOCkoeClh+Ckn+CkviDgpKzgpY3gpK/gpL7gpJXgpIXgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNjAwOTExOTExNTU4MTA5NzcwOCI+IuCknOCkl+Clh+CkoeCkviDgpKjgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGV4dCIgbXNnaWQ9Ijc0OTk4NjY3MjgwMzA0NjE3NzYiPiLgpI/gpIngpJ/gpL4g4KSc4KSh4KS/4KSkIOCkoeClh+CkuOCljeCkleCkn+CkqiDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLDgpKzgpL7gpJ8g4KS44KSs4KWIIOCkoeClh+Ckn+CkvuCkleCliyDgpKrgpYLgpLDgpY3gpKMg4KSq4KWB4KSo4KSD4KSs4KS54KS+4KSy4KWAIOCkheCkqOClgeCksOCli+CkpyDgpJfgpLDgpL/gpK/gpYvgpaQg4KSV4KWHIOCkpOCkquCkvuCkiOCkgiDgpK/gpYsg4KS54KWB4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpYHgpLngpYHgpKjgpY3gpJs/XG5cbuCkr+CkpuCkvyDgpKTgpKrgpL7gpIjgpIIg4KSG4KSr4KWI4KSCIOCkquClgeCkqOCkg+CkrOCkueCkvuCksuClgCDgpIXgpKjgpYHgpLDgpYvgpKcg4KSX4KSw4KWN4KSo4KWB4KS54KWB4KSo4KWN4KSoIOCkreCkqOClhyDgpIXgpKrgpLDgpYfgpLjgpKjgpLLgpL7gpIgg4KSF4KSY4KS/IOCkrOCkouCkvuCkieCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSo4KSm4KS/4KSo4KWB4KS54KWL4KS44KWN4KWkIOCkr+CkuOCksuClhyDgpIngpKrgpJXgpLDgpKPgpK7gpL4g4KSt4KSP4KSV4KWLIOCkleClgeCkqOCliCDgpKrgpKjgpL8g4KSh4KWH4KSf4KS+4KSy4KS+4KSIIOCkrOCkpuCksuCljeCkqOClhyDgpJshIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3dfcmVzdG9yZV9idXR0b25fbGFiZWwiIG1zZ2lkPSIzMDgxMjg2NzUyMjc3MTI3ODI3Ij4i4KSu4KWH4KSw4KWLIOCkoeClh+Ckn+CkviDgpKrgpYHgpKjgpIPgpKzgpLngpL7gpLLgpYAg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjE3MjQzNjczMzQ0NTMxMDQzNzgiPiLgpKrgpYHgpKg64KS44KWN4KSl4KS+4KSq4KSo4KS+IOCkqOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1cnJlbnRfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjgyNjgxODk1NTU1NzgyOTgwNjciPiLgpJXgpYPgpKrgpK/gpL4g4KSk4KSyIOCkpOCkquCkvuCkiOCkguCkleCliyDgpLngpL7gpLLgpJXgpYsg4KSs4KWN4KSv4KS+4KSV4KSF4KSqIOCkquCkvuCkuOCkteCksOCljeCkoSDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX3Jlc3RvcmVfdGV4dCIgbXNnaWQ9IjE1NzA4NjQ5MTY4NTUyMDg5OTIiPiLgpJXgpYPgpKrgpK/gpL4g4KSk4KSyIOCkpOCkquCkvuCkiOCkguCkleCliyDgpIngpKrgpJXgpLDgpKMg4KSP4KSo4KWN4KSV4KWN4KSw4KS/4KSq4KWN4KS44KSoIOCkquCkvuCkuOCkteCksOCljeCkoSDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX2JhY2t1cF90ZXh0IiBtc2dpZD0iNTg2NjU5MDc2MjY3Mjg0NDY2NCI+IuCkleClg+CkquCkr+CkviDgpKTgpLIg4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkieCkquCkleCksOCkoyDgpI/gpKjgpY3gpJXgpY3gpLDgpL/gpKrgpY3gpLjgpKgg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY06IOCkr+CliyDgpKzgpY3gpK/gpL7gpJXgpKog4KS44KSB4KSX4KWN4KSw4KS5IOCkj+CkqOCljeCkleCljeCksOCkv+CkquCljeCknyDgpJfgpLDgpY3gpKgg4KSq4KSo4KS/IOCkquCljeCksOCkr+Cli+CklyDgpLngpYHgpKjgpYcg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNDk4MTU4NTcxNDc5NTIzMzA5OSI+IuCkrOCljeCkr+CkvuCkleCkqiDgpKHgpYfgpJ/gpL7gpLLgpL7gpIggZW5jcnlwdCDgpJfgpLDgpY3gpKgg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0sIOCkr+CkpuCkvyDgpK/gpYsg4KSW4KS+4KSy4KS/IOCkm+Cli+CkoeCkv+Ckj+CkleCliyDgpJbgpKPgpY3gpKHgpK7gpL4g4KSk4KSq4KS+4KSI4KSV4KWLIOCkquClgeCksOCkvuCkqOCliCDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSq4KWN4KSw4KSv4KWL4KSXIOCkueClgeCkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX29wdGlvbmFsIiBtc2dpZD0iMTM1MDEzNzM0NTkwNzU3OTMwNiI+IuCkr+CkpuCkvyDgpKTgpKrgpL7gpIjgpIIg4KSq4KWC4KSw4KWN4KSjIOCkrOCljeCkr+CkvuCkleCkheCkqiDgpKHgpYfgpJ/gpL4g4KSH4KSo4KWN4KSV4KWN4KSw4KS/4KSq4KWN4KSfIOCkl+CksOCljeCkqCDgpJrgpL7gpLngpKjgpYEg4KS54KWB4KSo4KWN4KSbIOCkreCkqOClhyDgpKTgpLIg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNjE0MDg5ODUyNTU4MDcxMDgyMyI+IuCkr+CkpuCkvyDgpKrgpYHgpKjgpIPgpKzgpLngpL7gpLLgpYAg4KSh4KWH4KSf4KS+IOCkh+CkqOCljeCkleCljeCksOCkv+CkquCljeCknyDgpJsg4KSt4KSo4KWHIOCkleClg+CkquCkr+CkviDgpKTgpLIg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY06Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfYmFja3VwX3N0YXJ0ZWQiIG1zZ2lkPSI1NTAzNTQyODE0NTI3NTYxMjEiPiLgpJzgpJfgpYfgpKHgpL4g4KSw4KS+4KSW4KWN4KSoIOCkuOClgeCksOClgSDgpLngpYHgpIHgpKbgpYguLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfZW5kZWQiIG1zZ2lkPSIzODE4MDgwNzY5NTQ4NzI2NDI0Ij4i4KSs4KWN4KSv4KS+4KSV4KSF4KSqIOCkuOCkleCkv+Ckr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3Jlc3RvcmVfc3RhcnRlZCIgbXNnaWQ9Ijc4ODE2NzkyMTg5NzEyNzczODUiPiLgpKrgpYHgpKjgpIPgpLjgpY3gpKXgpL7gpKrgpKjgpL4g4KS44KWB4KSw4KWBIOCkueClgeCkgeCkpuCliOCkmy4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3Jlc3RvcmVfZW5kZWQiIG1zZ2lkPSIxNzY0MDQxNjM5MTk5Njk2MTMyIj4i4KSq4KWB4KSo4KSD4KSs4KS54KS+4KSy4KWAIOCkuOCkruCkvuCkquCljeCkpCDgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF90aW1lb3V0IiBtc2dpZD0iNTI3NjU5ODU4NzA4NzYyNjg3NyI+IuCkuOCkguCkmuCksuCkqCDgpJXgpL7gpLDgpY3gpK/gpJXgpYsg4KS44KSu4KSvIOCkuOCkruCkvuCkquCljeCkpCDgpK3gpK/gpYsiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1uZS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy1uZS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTYzMzJmCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLW5lL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICAKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9jb25maXJtX3RpdGxlIiBtc2dpZD0iODI3NTYzNzI0MjA5MzAzMzQ1Ij4i4KSq4KWC4KSw4KWN4KSjIOCkrOCljeCkr+CkvuCkleCkheCkqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90aXRsZSIgbXNnaWQ9IjU0NjkzNjU4MDk1Njc0ODY2MDIiPiLgpKrgpYLgpLDgpY3gpKMg4KSq4KWB4KSo4KSD4KSq4KWN4KSw4KS+4KSq4KWN4KSk4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGV4dCIgbXNnaWQ9IjE4NzgwMjEyODI3NTg4OTY1OTMiPiLgpI/gpIngpJ/gpL4g4KSc4KWL4KSh4KS/4KSP4KSV4KWLIOCkoeClh+CkuOCljeCkleCkn+CkqiDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLDgpK7gpL4g4KS44KSs4KWIIOCkoeClh+Ckn+CkvuCkleCliyDgpI/gpIngpJ/gpL4g4KSq4KWC4KSw4KWN4KSjIOCknOCkl+Clh+CkoeCkvuCkleCliyDgpIXgpKjgpYHgpLDgpYvgpKcg4KSX4KSw4KS/4KSP4KSV4KWLIOCkm+ClpCDgpJXgpYcg4KSk4KSq4KS+4KSI4KSBIOCkr+CliyDgpLngpYHgpKgg4KSm4KS/4KSoIOCkmuCkvuCkueCkqOClgeCkueClgeCkqOCljeCkmz8gXG5cbuCkr+CkpuCkvyDgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSc4KSX4KWH4KSh4KS+4KSV4KWLIOCksuCkvuCkl+CkvyDgpIbgpKvgpYjgpIEg4KSF4KSo4KWB4KSw4KWL4KSnIOCkl+CksOCljeCkqOClgSDgpK3gpI/gpKgg4KSt4KSo4KWHIOCkquCljeCksOCkleCljeCksOCkv+Ckr+CkvuCksuCkvuCkiCDgpIXgpJfgpL7gpKHgpL8g4KSs4KSi4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKjgpKbgpL/gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNDIxNzIyODc0Nzc2OTY0NDA2OCI+IuCkruClh+CksOCliyDgpKHgpYfgpJ/gpL4g4KSs4KWN4KSv4KS+4KSV4KSF4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnlfYmFja3VwX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjYwMDkxMTkxMTU1ODEwOTc3MDgiPiLgpJzgpJfgpYfgpKHgpL4g4KSo4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RleHQiIG1zZ2lkPSI3NDk5ODY2NzI4MDMwNDYxNzc2Ij4i4KSP4KSJ4KSf4KS+IOCknOCkoeCkv+CkpCDgpKHgpYfgpLjgpY3gpJXgpJ/gpKog4KSV4KSu4KWN4KSq4KWN4KSv4KWB4KSf4KSw4KSs4KS+4KSfIOCkuOCkrOCliCDgpKHgpYfgpJ/gpL7gpJXgpYsg4KSq4KWC4KSw4KWN4KSjIOCkquClgeCkqOCkg+CkrOCkueCkvuCksuClgCDgpIXgpKjgpYHgpLDgpYvgpKcg4KSX4KSw4KS/4KSv4KWL4KWkIOCkleClhyDgpKTgpKrgpL7gpIjgpIIg4KSv4KWLIOCkueClgeCkqCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWB4KS54KWB4KSo4KWN4KSbP1xuXG7gpK/gpKbgpL8g4KSk4KSq4KS+4KSI4KSCIOCkhuCkq+CliOCkgiDgpKrgpYHgpKjgpIPgpKzgpLngpL7gpLLgpYAg4KSF4KSo4KWB4KSw4KWL4KSnIOCkl+CksOCljeCkqOClgeCkueClgeCkqOCljeCkqCDgpK3gpKjgpYcg4KSF4KSq4KSw4KWH4KS44KSo4KSy4KS+4KSIIOCkheCkmOCkvyDgpKzgpKLgpL7gpIngpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkqOCkpuCkv+CkqOClgeCkueCli+CkuOCljeClpCDgpK/gpLjgpLLgpYcg4KSJ4KSq4KSV4KSw4KSj4KSu4KS+IOCkreCkj+CkleCliyDgpJXgpYHgpKjgpYgg4KSq4KSo4KS/IOCkoeClh+Ckn+CkvuCksuCkvuCkiCDgpKzgpKbgpLLgpY3gpKjgpYcg4KSbISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMzA4MTI4Njc1MjI3NzEyNzgyNyI+IuCkruClh+CksOCliyDgpKHgpYfgpJ/gpL4g4KSq4KWB4KSo4KSD4KSs4KS54KS+4KSy4KWAIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnlfcmVzdG9yZV9idXR0b25fbGFiZWwiIG1zZ2lkPSIxNzI0MzY3MzM0NDUzMTA0Mzc4Ij4i4KSq4KWB4KSoOuCkuOCljeCkpeCkvuCkquCkqOCkviDgpKjgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjdXJyZW50X3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI4MjY4MTg5NTU1NTc4Mjk4MDY3Ij4i4KSV4KWD4KSq4KSv4KS+IOCkpOCksiDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KS54KS+4KSy4KSV4KWLIOCkrOCljeCkr+CkvuCkleCkheCkqiDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSq4KWN4KSw4KS14KS/4KS34KWN4KSf4KS/IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXZpY2VfZW5jcnlwdGlvbl9yZXN0b3JlX3RleHQiIG1zZ2lkPSIxNTcwODY0OTE2ODU1MjA4OTkyIj4i4KSV4KWD4KSq4KSv4KS+IOCkpOCksiDgpKTgpKrgpL7gpIjgpILgpJXgpYsg4KSJ4KSq4KSV4KSw4KSjIOCkj+CkqOCljeCkleCljeCksOCkv+CkquCljeCkuOCkqCDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSq4KWN4KSw4KS14KS/4KS34KWN4KSf4KS/IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXZpY2VfZW5jcnlwdGlvbl9iYWNrdXBfdGV4dCIgbXNnaWQ9IjU4NjY1OTA3NjI2NzI4NDQ2NjQiPiLgpJXgpYPgpKrgpK/gpL4g4KSk4KSyIOCkpOCkquCkvuCkiOCkguCkleCliyDgpIngpKrgpJXgpLDgpKMg4KSP4KSo4KWN4KSV4KWN4KSw4KS/4KSq4KWN4KS44KSoIOCkquCkvuCkuOCkteCksOCljeCkoSDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNOiDgpK/gpYsg4KSs4KWN4KSv4KS+4KSV4KSqIOCkuOCkgeCkl+CljeCksOCkuSDgpI/gpKjgpY3gpJXgpY3gpLDgpL/gpKrgpY3gpJ8g4KSX4KSw4KWN4KSoIOCkquCkqOCkvyDgpKrgpY3gpLDgpK/gpYvgpJcg4KS54KWB4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjQ5ODE1ODU3MTQ3OTUyMzMwOTkiPiLgpKzgpY3gpK/gpL7gpJXgpKog4KSh4KWH4KSf4KS+4KSy4KS+4KSIIGVuY3J5cHQg4KSX4KSw4KWN4KSoIOCkquCkvuCkuOCkteCksOCljeCkoSDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNLCDgpK/gpKbgpL8g4KSv4KWLIOCkluCkvuCksuCkvyDgpJvgpYvgpKHgpL/gpI/gpJXgpYsg4KSW4KSj4KWN4KSh4KSu4KS+IOCkpOCkquCkvuCkiOCkleCliyDgpKrgpYHgpLDgpL7gpKjgpYgg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkquCljeCksOCkr+Cli+CklyDgpLngpYHgpKjgpYcg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF9vcHRpb25hbCIgbXNnaWQ9IjEzNTAxMzczNDU5MDc1NzkzMDYiPiLgpK/gpKbgpL8g4KSk4KSq4KS+4KSI4KSCIOCkquClguCksOCljeCkoyDgpKzgpY3gpK/gpL7gpJXgpIXgpKog4KSh4KWH4KSf4KS+IOCkh+CkqOCljeCkleCljeCksOCkv+CkquCljeCknyDgpJfgpLDgpY3gpKgg4KSa4KS+4KS54KSo4KWBIOCkueClgeCkqOCljeCkmyDgpK3gpKjgpYcg4KSk4KSyIOCkquCkvuCkuOCkteCksOCljeCkoSDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjYxNDA4OTg1MjU1ODA3MTA4MjMiPiLgpK/gpKbgpL8g4KSq4KWB4KSo4KSD4KSs4KS54KS+4KSy4KWAIOCkoeClh+Ckn+CkviDgpIfgpKjgpY3gpJXgpY3gpLDgpL/gpKrgpY3gpJ8g4KSbIOCkreCkqOClhyDgpJXgpYPgpKrgpK/gpL4g4KSk4KSyIOCkquCkvuCkuOCkteCksOCljeCkoSDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9zdGFydGVkIiBtc2dpZD0iNTUwMzU0MjgxNDUyNzU2MTIxIj4i4KSc4KSX4KWH4KSh4KS+IOCksOCkvuCkluCljeCkqCDgpLjgpYHgpLDgpYEg4KS54KWB4KSB4KSm4KWILi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfYmFja3VwX2VuZGVkIiBtc2dpZD0iMzgxODA4MDc2OTU0ODcyNjQyNCI+IuCkrOCljeCkr+CkvuCkleCkheCkqiDgpLjgpJXgpL/gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX3N0YXJ0ZWQiIG1zZ2lkPSI3ODgxNjc5MjE4OTcxMjc3Mzg1Ij4i4KSq4KWB4KSo4KSD4KS44KWN4KSl4KS+4KSq4KSo4KS+IOCkuOClgeCksOClgSDgpLngpYHgpIHgpKbgpYjgpJsuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX2VuZGVkIiBtc2dpZD0iMTc2NDA0MTYzOTE5OTY5NjEzMiI+IuCkquClgeCkqOCkg+CkrOCkueCkvuCksuClgCDgpLjgpK7gpL7gpKrgpY3gpKQg4KSt4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfdGltZW91dCIgbXNnaWQ9IjUyNzY1OTg1ODcwODc2MjY4NzciPiLgpLjgpILgpJrgpLLgpKgg4KSV4KS+4KSw4KWN4KSv4KSV4KWLIOCkuOCkruCkryDgpLjgpK7gpL7gpKrgpY3gpKQg4KSt4KSv4KWLIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMtc2ktckxLL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLXNpLXJMSy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDMyZTczCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLXNpLXJMSy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90aXRsZSIgbXNnaWQ9IjgyNzU2MzcyNDIwOTMwMzM0NSI+IuC3g+C2uOC3iuC2tOC3luC2u+C3iuC2qyDgtovgtrTgt4Pgt4rgtq7gtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI1NDY5MzY1ODA5NTY3NDg2NjAyIj4i4LeD4La44LeK4La04LeW4La74LeK4Lar4La64LeZ4Lax4LeKIOC2seC3kOC3gOC2rSDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4DgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfY29uZmlybV90ZXh0IiBtc2dpZD0iMTg3ODAyMTI4Mjc1ODg5NjU5MyI+IuC2qeC3meC3g+C3iuC2muC3iuC2p+C3nOC2tOC3iiDgtrTgtrvgt5Lgtpzgtqvgtprgtrrgtprgtqcg4LeD4La44LeK4La24Lax4LeK4Law4LeS4LatIOC3g+C3kuC2uuC2veC3lOC2uCDgtq/gtq3gt4rgtq0g4LeA4La9IOC3g+C2uOC3iuC2tOC3luC2u+C3iuC2qyDgtovgtrTgt4Pgt4rgtq7gtrrgtprgt4og4LaJ4La94LeK4La94LePIOC2reC3kuC2tuC3mi4g4La44LeZ4La4IOC3g+C3kuC2r+C3lCDgt4Dgt5ngtrHgt4Dgt4/gtqcg4LaF4LeA4LeD4La7IOC2r+C3k+C2uOC2pyDgtpTgtrbgtqcg4LaF4LeA4LeB4LeK4oCN4La64LavP1xuXG7gtpTgtrYg4LeA4LeS4LeD4LeS4Lax4LeKIOC2i+C2tOC3g+C3iuC2ruC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaJ4La94LeK4La94LePIOC2seC3nOC2reC3kuC2tuC3lOC2q+C3kiDgtrHgtrjgt4osIOC2uOC3meC2uCDgtrjgt5ngt4Tgt5ngtrrgt5Tgtrgg4LaJ4Lav4LeS4La74LeS4La64LanIOC2muC2u+C2nOC3meC2sSDgtrrgt4/gtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3iuC2sSDgtpHgtrTgt48uIDEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNDIxNzIyODc0Nzc2OTY0NDA2OCI+IuC2uOC2nOC3miDgtq/gtq3gt4rgtq0g4LaL4La04LeD4LeK4LauIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlbnlfYmFja3VwX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjYwMDkxMTkxMTU1ODEwOTc3MDgiPiLgtovgtrTgt4Pgt4rgtq4g4Laa4La74Lax4LeK4LaxIOC2keC2tOC3jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90ZXh0IiBtc2dpZD0iNzQ5OTg2NjcyODAzMDQ2MTc3NiI+IuC3g+C2uOC3iuC2tuC2seC3iuC2sOC3kuC2rSDgtqngt5ngt4Pgt4rgtprgt4rgtqfgt5zgtrTgt4og4La04La74LeS4Lac4Lar4Laa4La64Laa4LeS4Lax4LeKIOC3g+C3kuC2uuC2veC3lCDgtq/gtq3gt4rgtq0g4LeA4La9IOC3g+C2uOC3iuC2tOC3luC2u+C3iuC2qyDgtrTgt4rigI3gtrvgtq3gt5Lgt4Pgt4rgtq7gt4/gtrTgtrHgtrrgtprgt4og4LaJ4La94LeK4La94LePIOC2h+C2rS4g4LaU4La2IOC2uOC3meC2uiDgt4Pgt5Lgtq/gt5Qg4LeA4LeT4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4Dgt48g4LavP1xuXG7gtpTgtrYg4LeA4LeS4LeD4LeS4Lax4LeKIOC2tOC3iuKAjeC2u+C2reC3kuC3g+C3iuC2ruC3j+C2tOC2seC2uiDgtongtr3gt4rgtr3gt48g4Lax4Lec4La44LeQ4Lat4LeSIOC2seC2uOC3iiwg4Laa4LeK4oCN4La74LeS4La64LeP4LeA4La94LeS4La64LanIOC2ieC2r+C3kuC2u+C3kuC2uuC2pyDgtrrgt4/gtrjgtqcg4LaJ4LapIOC2seC3nOC2r+C3meC2seC3iuC2sS4g4LaL4La04LeP4LaC4Lac4La64LeaIOC2r+C3kOC2seC2pyDgtofgtq3gt5Ig4LaV4Lax4LeR4La4IOC2r+C2reC3iuC2reC2uuC2muC3iiDgtrjgt5ngtrjgtp/gt5LgtrHgt4og4La04LeK4oCN4La74Lat4LeS4LeD4LeK4Lau4LeP4La04Lax4La6IOC3gOC3meC2uuC3kiEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjMwODEyODY3NTIyNzcxMjc4MjciPiLgtrjgtpzgt5og4Lav4Lat4LeK4LatIOC2seC3kOC3gOC2rSDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4DgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTcyNDM2NzMzNDQ1MzEwNDM3OCI+IuC2seC3kOC3gOC2rSDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4DgtrHgt4rgtrEg4LaR4La04LePIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3VycmVudF9wYXNzd29yZF90ZXh0IiBtc2dpZD0iODI2ODE4OTU1NTU3ODI5ODA2NyI+IuC2muC2u+C3lOC2q+C3j+C2muC2uyDgtpTgtrbgtpzgt5og4LeA4La74LeK4Lat4La44LeP4LaxIOC2i+C2tOC3g+C3iuC2riDgtrjgt5TgtrvgtrTgtq/gtrog4La04LeE4LatIOC2h+C2reC3lOC2veC2reC3iiDgtprgtrvgtrHgt4rgtrE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fcmVzdG9yZV90ZXh0IiBtc2dpZD0iMTU3MDg2NDkxNjg1NTIwODk5MiI+IuC2muC2u+C3lOC2q+C3j+C2muC2uyDgtpTgtrbgtpzgt5og4LaL4La04LeP4LaC4Lac4La64LeaIOC3g+C2guC2muC3muC2reC2sSDgtrjgt5TgtrvgtrTgtq/gtrog4La04LeE4LatIOC2h+C2reC3lOC2veC2reC3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fYmFja3VwX3RleHQiIG1zZ2lkPSI1ODY2NTkwNzYyNjcyODQ0NjY0Ij4i4Laa4La74LeU4Lar4LeP4Laa4La7IOC2lOC2tuC2nOC3miDgtovgtrTgt4/gtoLgtpzgtrrgt5og4LeD4LaC4Laa4Lea4Lat4LaxIOC2uOC3lOC2u+C2tOC2r+C2uiDgtrTgt4Tgtq0g4LaH4Lat4LeU4La94Lat4LeKIOC2muC2u+C2seC3iuC2sS4g4LeD4LaC4La74Laa4LeK4LeC4LeS4LatIOC2i+C2tOC3g+C3iuC2riDgt4PgtoLgtprgt5rgtq3gtrHgtrog4Laa4LeS4La74LeT4La44LanIOC2uOC3meC2uiDgtrfgt4/gt4Dgt5Lgtq0g4Laa4LeFIOC3hOC3kOC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI0OTgxNTg1NzE0Nzk1MjMzMDk5Ij4i4Laa4La74LeU4Lar4LeP4Laa4La7IOC3g+C3kuC2uuC2veC3lCDgtovgtrTgt4Pgt4rgtq4g4Lav4Lat4LeK4LatIOC3g+C2guC2muC3muC2reC2seC2uiDgtprgt5Lgtrvgt5Pgtrgg4LeD4Laz4LeE4LePIOC2t+C3j+C3gOC3kuC2reC2uuC2pyDgtrjgt5TgtrvgtrTgtq/gtrrgtprgt4og4LaH4Lat4LeU4LeF4Lat4LeKIOC2muC2u+C2seC3iuC2sS4g4La44LeZ4La6IOC3hOC3kuC3g+C3iuC3gCDgtq3gt5Dgtrbgt5Tgt4Dgt5zgtq3gt4osIOC2lOC2tuC2nOC3miDgt4Dgtrvgt4rgtq3gtrjgt4/gtrEg4LaL4La04LeD4LeK4LauIOC2uOC3lOC2u+C2tOC2r+C2uiDgtrfgt4/gt4Dgt5Lgtq0g4LeA4LeZ4La64LeSOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9lbmNfcGFzc3dvcmRfb3B0aW9uYWwiIG1zZ2lkPSIxMzUwMTM3MzQ1OTA3NTc5MzA2Ij4i4LeD4LeS4La64La94LeUIOC2i+C2tOC3g+C3iuC2riDgtq/gtq3gt4rgtq0g4LeD4LaC4Laa4Lea4Lat4Lax4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtpTgtrYg4LaF4Lav4LeE4LeD4LeKIOC2muC2u+C2seC3iuC2seC3miDgtrHgtrjgt4osIOC2uOC3lOC2u+C2tOC2r+C2uiDgtrTgt4Tgtr3gt5LgtrHgt4og4LaH4Lat4LeU4La94Lat4LeKIOC2muC2u+C2seC3iuC2sToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNjE0MDg5ODUyNTU4MDcxMDgyMyI+IuC2uuC3heC3kiDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4DgtrEg4Lav4Lat4LeK4LatIOC3g+C2guC2muC3muC2reC2seC2uiDgtprgtrvgtrEg4La94LavIOC2kuC3gOC3j+C2seC2uOC3iiwg4Laa4La74LeU4Lar4LeP4Laa4La7IOC2uOC3lOC2u+C2tOC2r+C2uiDgtrTgt4Tgtr3gt5LgtrHgt4og4LaH4Lat4LeU4La94LeKIOC2muC2u+C2seC3iuC2sToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfc3RhcnRlZCIgbXNnaWQ9IjU1MDM1NDI4MTQ1Mjc1NjEyMSI+IuC2i+C2tOC3g+C3iuC2riDgtprgt5Lgtrvgt5Pgtrgg4LaG4La74La44LeK4La3IOC2muC2u+C2uOC3kuC2seC3ii4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9lbmRlZCIgbXNnaWQ9IjM4MTgwODA3Njk1NDg3MjY0MjQiPiLgtovgtrTgt4Pgt4rgtq7gtrog4LaF4LeA4LeD4Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9zdGFydGVkIiBtc2dpZD0iNzg4MTY3OTIxODk3MTI3NzM4NSI+IuC2uuC3heC3kiDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4Dgt5Pgtrgg4LaF4La74La54La64LeSLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9lbmRlZCIgbXNnaWQ9IjE3NjQwNDE2MzkxOTk2OTYxMzIiPiLgtrrgt4Xgt5Ig4La04LeS4LeE4LeS4Lan4LeU4LeA4LeT4La4IOC2heC3gOC3g+C2seC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3RpbWVvdXQiIG1zZ2lkPSI1Mjc2NTk4NTg3MDg3NjI2ODc3Ij4i4Laa4LeK4oCN4La74LeS4La64LeP4LeA4La94LeS4La6IOC2muC2veC3iiDgtongtprgt5Tgtq3gt4og4LeA4LeTIOC2h+C2rSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLXNpL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLXNpL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMzJlNzMKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMtc2kvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGl0bGUiIG1zZ2lkPSI4Mjc1NjM3MjQyMDkzMDMzNDUiPiLgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4LaL4La04LeD4LeK4Lau4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RpdGxlIiBtc2dpZD0iNTQ2OTM2NTgwOTU2NzQ4NjYwMiI+IuC3g+C2uOC3iuC2tOC3luC2u+C3iuC2q+C2uuC3meC2seC3iiDgtrHgt5Dgt4Dgtq0g4La04LeS4LeE4LeS4Lan4LeU4LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2NvbmZpcm1fdGV4dCIgbXNnaWQ9IjE4NzgwMjEyODI3NTg4OTY1OTMiPiLgtqngt5ngt4Pgt4rgtprgt4rgtqfgt5zgtrTgt4og4La04La74LeS4Lac4Lar4Laa4La64Laa4LanIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC3kuC2rSDgt4Pgt5Lgtrrgtr3gt5Tgtrgg4Lav4Lat4LeK4LatIOC3gOC2vSDgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4LaL4La04LeD4LeK4Lau4La64Laa4LeKIOC2ieC2veC3iuC2veC3jyDgtq3gt5Lgtrbgt5ouIOC2uOC3meC2uCDgt4Pgt5Lgtq/gt5Qg4LeA4LeZ4Lax4LeA4LeP4LanIOC2heC3gOC3g+C2uyDgtq/gt5Pgtrjgtqcg4LaU4La24LanIOC2heC3gOC3geC3iuKAjeC2uuC2rz9cblxu4LaU4La2IOC3gOC3kuC3g+C3kuC2seC3iiDgtovgtrTgt4Pgt4rgtq7gtrog4Laa4LeS4La74LeT4La44LanIOC2ieC2veC3iuC2veC3jyDgtrHgt5zgtq3gt5Lgtrbgt5Tgtqvgt5Ig4Lax4La44LeKLCDgtrjgt5ngtrgg4La44LeZ4LeE4LeZ4La64LeU4La4IOC2ieC2r+C3kuC2u+C3kuC2uuC2pyDgtprgtrvgtpzgt5ngtrEg4La64LeP4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4rgtrEg4LaR4La04LePLiAxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3dfYmFja3VwX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjQyMTcyMjg3NDc3Njk2NDQwNjgiPiLgtrjgtpzgt5og4Lav4Lat4LeK4LatIOC2i+C2tOC3g+C3iuC2riDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI2MDA5MTE5MTE1NTgxMDk3NzA4Ij4i4LaL4La04LeD4LeK4LauIOC2muC2u+C2seC3iuC2sSDgtpHgtrTgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0b3JlX2NvbmZpcm1fdGV4dCIgbXNnaWQ9Ijc0OTk4NjY3MjgwMzA0NjE3NzYiPiLgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgt5Lgtq0g4Lap4LeZ4LeD4LeK4Laa4LeK4Lan4Lec4La04LeKIOC2tOC2u+C3kuC2nOC2q+C2muC2uuC2muC3kuC2seC3iiDgt4Pgt5Lgtrrgtr3gt5Qg4Lav4Lat4LeK4LatIOC3gOC2vSDgt4Pgtrjgt4rgtrTgt5bgtrvgt4rgtqsg4La04LeK4oCN4La74Lat4LeS4LeD4LeK4Lau4LeP4La04Lax4La64Laa4LeKIOC2ieC2veC3iuC2veC3jyDgtofgtq0uIOC2lOC2tiDgtrjgt5ngtrog4LeD4LeS4Lav4LeUIOC3gOC3k+C2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeA4LePIOC2rz9cblxu4LaU4La2IOC3gOC3kuC3g+C3kuC2seC3iiDgtrTgt4rigI3gtrvgtq3gt5Lgt4Pgt4rgtq7gt4/gtrTgtrHgtrog4LaJ4La94LeK4La94LePIOC2seC3nOC2uOC3kOC2reC3kiDgtrHgtrjgt4osIOC2muC3iuKAjeC2u+C3kuC2uuC3j+C3gOC2veC3kuC2uuC2pyDgtongtq/gt5Lgtrvgt5Lgtrrgtqcg4La64LeP4La44LanIOC2ieC2qSDgtrHgt5zgtq/gt5ngtrHgt4rgtrEuIOC2i+C2tOC3j+C2guC2nOC2uuC3miDgtq/gt5DgtrHgtqcg4LaH4Lat4LeSIOC2leC2seC3keC2uCDgtq/gtq3gt4rgtq3gtrrgtprgt4og4La44LeZ4La44Laf4LeS4Lax4LeKIOC2tOC3iuKAjeC2u+C2reC3kuC3g+C3iuC2ruC3j+C2tOC2seC2uiDgt4Dgt5ngtrrgt5IhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsb3dfcmVzdG9yZV9idXR0b25fbGFiZWwiIG1zZ2lkPSIzMDgxMjg2NzUyMjc3MTI3ODI3Ij4i4La44Lac4LeaIOC2r+C2reC3iuC2rSDgtrHgt5Dgt4Dgtq0g4La04LeS4LeE4LeS4Lan4LeU4LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjE3MjQzNjczMzQ0NTMxMDQzNzgiPiLgtrHgt5Dgt4Dgtq0g4La04LeS4LeE4LeS4Lan4LeU4LeA4Lax4LeK4LaxIOC2keC2tOC3jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1cnJlbnRfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjgyNjgxODk1NTU1NzgyOTgwNjciPiLgtprgtrvgt5Tgtqvgt4/gtprgtrsg4LaU4La24Lac4LeaIOC3gOC2u+C3iuC2reC2uOC3j+C2sSDgtovgtrTgt4Pgt4rgtq4g4La44LeU4La74La04Lav4La6IOC2tOC3hOC2rSDgtofgtq3gt5Tgtr3gtq3gt4og4Laa4La74Lax4LeK4LaxOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX3Jlc3RvcmVfdGV4dCIgbXNnaWQ9IjE1NzA4NjQ5MTY4NTUyMDg5OTIiPiLgtprgtrvgt5Tgtqvgt4/gtprgtrsg4LaU4La24Lac4LeaIOC2i+C2tOC3j+C2guC2nOC2uuC3miDgt4PgtoLgtprgt5rgtq3gtrEg4La44LeU4La74La04Lav4La6IOC2tOC3hOC2rSDgtofgtq3gt5Tgtr3gtq3gt4og4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX2JhY2t1cF90ZXh0IiBtc2dpZD0iNTg2NjU5MDc2MjY3Mjg0NDY2NCI+IuC2muC2u+C3lOC2q+C3j+C2muC2uyDgtpTgtrbgtpzgt5og4LaL4La04LeP4LaC4Lac4La64LeaIOC3g+C2guC2muC3muC2reC2sSDgtrjgt5TgtrvgtrTgtq/gtrog4La04LeE4LatIOC2h+C2reC3lOC2veC2reC3iiDgtprgtrvgtrHgt4rgtrEuIOC3g+C2guC2u+C2muC3iuC3guC3kuC2rSDgtovgtrTgt4Pgt4rgtq4g4LeD4LaC4Laa4Lea4Lat4Lax4La6IOC2muC3kuC2u+C3k+C2uOC2pyDgtrjgt5ngtrog4La34LeP4LeA4LeS4LatIOC2muC3hSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNDk4MTU4NTcxNDc5NTIzMzA5OSI+IuC2muC2u+C3lOC2q+C3j+C2muC2uyDgt4Pgt5Lgtrrgtr3gt5Qg4LaL4La04LeD4LeK4LauIOC2r+C2reC3iuC2rSDgt4PgtoLgtprgt5rgtq3gtrHgtrog4Laa4LeS4La74LeT4La4IOC3g+C2s+C3hOC3jyDgtrfgt4/gt4Dgt5Lgtq3gtrrgtqcg4La44LeU4La74La04Lav4La64Laa4LeKIOC2h+C2reC3lOC3heC2reC3iiDgtprgtrvgtrHgt4rgtrEuIOC2uOC3meC2uiDgt4Tgt5Lgt4Pgt4rgt4Ag4Lat4LeQ4La24LeU4LeA4Lec4Lat4LeKLCDgtpTgtrbgtpzgt5og4LeA4La74LeK4Lat4La44LeP4LaxIOC2i+C2tOC3g+C3iuC2riDgtrjgt5TgtrvgtrTgtq/gtrog4La34LeP4LeA4LeS4LatIOC3gOC3meC2uuC3kjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX29wdGlvbmFsIiBtc2dpZD0iMTM1MDEzNzM0NTkwNzU3OTMwNiI+IuC3g+C3kuC2uuC2veC3lCDgtovgtrTgt4Pgt4rgtq4g4Lav4Lat4LeK4LatIOC3g+C2guC2muC3muC2reC2seC2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4LaU4La2IOC2heC2r+C3hOC3g+C3iiDgtprgtrvgtrHgt4rgtrHgt5og4Lax4La44LeKLCDgtrjgt5TgtrvgtrTgtq/gtrog4La04LeE4La94LeS4Lax4LeKIOC2h+C2reC3lOC2veC2reC3iiDgtprgtrvgtrHgt4rgtrE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjYxNDA4OTg1MjU1ODA3MTA4MjMiPiLgtrrgt4Xgt5Ig4La04LeS4LeE4LeS4Lan4LeU4LeA4LaxIOC2r+C2reC3iuC2rSDgt4PgtoLgtprgt5rgtq3gtrHgtrog4Laa4La74LaxIOC2veC2ryDgtpLgt4Dgt4/gtrHgtrjgt4osIOC2muC2u+C3lOC2q+C3j+C2muC2uyDgtrjgt5TgtrvgtrTgtq/gtrog4La04LeE4La94LeS4Lax4LeKIOC2h+C2reC3lOC2veC3iiDgtprgtrvgtrHgt4rgtrE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfYmFja3VwX3N0YXJ0ZWQiIG1zZ2lkPSI1NTAzNTQyODE0NTI3NTYxMjEiPiLgtovgtrTgt4Pgt4rgtq4g4Laa4LeS4La74LeT4La4IOC2huC2u+C2uOC3iuC2tyDgtprgtrvgtrjgt5LgtrHgt4ouLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfZW5kZWQiIG1zZ2lkPSIzODE4MDgwNzY5NTQ4NzI2NDI0Ij4i4LaL4La04LeD4LeK4Lau4La6IOC2heC3gOC3g+C2seC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3Jlc3RvcmVfc3RhcnRlZCIgbXNnaWQ9Ijc4ODE2NzkyMTg5NzEyNzczODUiPiLgtrrgt4Xgt5Ig4La04LeS4LeE4LeS4Lan4LeU4LeA4LeT4La4IOC2heC2u+C2ueC2uuC3ki4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3Jlc3RvcmVfZW5kZWQiIG1zZ2lkPSIxNzY0MDQxNjM5MTk5Njk2MTMyIj4i4La64LeF4LeSIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC3k+C2uCDgtoXgt4Dgt4PgtrHgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF90aW1lb3V0IiBtc2dpZD0iNTI3NjU5ODU4NzA4NzYyNjg3NyI+IuC2muC3iuKAjeC2u+C3kuC2uuC3j+C3gOC2veC3kuC2uiDgtprgtr3gt4og4LaJ4Laa4LeU4Lat4LeKIOC3gOC3kyDgtofgtq0iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy16aC1ySEsvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzYmNkNmUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICAKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9jb25maXJtX3RpdGxlIiBtc2dpZD0iODI3NTYzNzI0MjA5MzAzMzQ1Ij4i5a6M5pW05YKZ5Lu9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9jb25maXJtX3RpdGxlIiBtc2dpZD0iNTQ2OTM2NTgwOTU2NzQ4NjYwMiI+IuWujOaVtOmChOWOnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9jb25maXJtX3RleHQiIG1zZ2lkPSIxODc4MDIxMjgyNzU4ODk2NTkzIj4i57O757Wx5pS25Yiw5bCH5omA5pyJ6LOH5paZ5a6M5pW05YKZ5Lu95Yiw6YCj57ea5qGM5LiK6Zu76IWm55qE6KaB5rGC77yM6KuL5ZWP5oKo5YWB6Kix6YCy6KGM5YKZ5Lu95ZeO77yfXG5cbuWmguaenOaCqOacrOS6uuS4puacquaPkOWHuuWCmeS7veimgeaxgu+8jOiri+WLv+WFgeiosee5vOe6jOmAsuihjOmAmemgheS9nOalreOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbG93X2JhY2t1cF9idXR0b25fbGFiZWwiIG1zZ2lkPSI0MjE3MjI4NzQ3NzY5NjQ0MDY4Ij4i5YKZ5Lu95oiR55qE6LOH5paZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVueV9iYWNrdXBfYnV0dG9uX2xhYmVsIiBtc2dpZD0iNjAwOTExOTExNTU4MTA5NzcwOCI+IuS4jeimgeWCmeS7vSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RvcmVfY29uZmlybV90ZXh0IiBtc2dpZD0iNzQ5OTg2NjcyODAzMDQ2MTc3NiI+Iuezu+e1seaUtuWIsOW+numAo+e3mueahOahjOS4iumbu+iFpuWujOaVtOmChOWOn+aJgOacieizh+aWmeeahOimgeaxgu+8jOiri+WVj+aCqOWFgeiosemAsuihjOmChOWOn+WXju+8n1xuXG7lpoLmnpzmgqjmnKzkurrkuKbmnKrmj5Dlh7rpgoTljp/opoHmsYLvvIzoq4vli7/lhYHoqLHnubznuozpgLLooYzpgJnpoIXkvZzmpa3jgILpgJnpoIXkvZzmpa3lsIflj5bku6Poo53nva7kuIrnj77mnInnmoTlhajpg6jos4fmlpnvvIEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxvd19yZXN0b3JlX2J1dHRvbl9sYWJlbCIgbXNnaWQ9IjMwODEyODY3NTIyNzcxMjc4MjciPiLpgoTljp/miJHnmoTos4fmlpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZW55X3Jlc3RvcmVfYnV0dG9uX2xhYmVsIiBtc2dpZD0iMTcyNDM2NzMzNDQ1MzEwNDM3OCI+IuS4jeimgemChOWOnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImN1cnJlbnRfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjgyNjgxODk1NTU1NzgyOTgwNjciPiLlnKjkuIvpnaLovLjlhaXmgqjnm67liY3nmoTlgpnku73lr4bnorzvvJoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXZpY2VfZW5jcnlwdGlvbl9yZXN0b3JlX3RleHQiIG1zZ2lkPSIxNTcwODY0OTE2ODU1MjA4OTkyIj4i6KuL5Zyo5LiL6Z2i6Ly45YWl5oKo55qE6KOd572u5Yqg5a+G5a+G56K844CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGV2aWNlX2VuY3J5cHRpb25fYmFja3VwX3RleHQiIG1zZ2lkPSI1ODY2NTkwNzYyNjcyODQ0NjY0Ij4i6KuL5Zyo5LiL6Z2i6Ly45YWl5oKo55qE6KOd572u5Yqg5a+G5a+G56K877yM6YCZ5Lmf5pyD55So5L6G5bCH5bCB5a2Y5YKZ5Lu95Yqg5a+G44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmFja3VwX2VuY19wYXNzd29yZF90ZXh0IiBtc2dpZD0iNDk4MTU4NTcxNDc5NTIzMzA5OSI+Iuiri+i8uOWFpeeCuuWujOaVtOWCmeS7veizh+aWmeWKoOWvhueahOWwiOeUqOWvhueivOOAguWmguaenOeVmeepuu+8jOezu+e1seWwh+S9v+eUqOaCqOebruWJjeeahOWCmeS7veWvhueivO+8miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhY2t1cF9lbmNfcGFzc3dvcmRfb3B0aW9uYWwiIG1zZ2lkPSIxMzUwMTM3MzQ1OTA3NTc5MzA2Ij4i5aaC5p6c5oKo5oOz5bCH5a6M5pW055qE5YKZ5Lu96LOH5paZ5Yqg5a+G77yM6KuL5Zyo5LiL6Z2i6Ly45YWl5LiA57WE5a+G56K877yaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjYxNDA4OTg1MjU1ODA3MTA4MjMiPiLlpoLmnpzpgoTljp/nmoTos4fmlpnntpPpgY7liqDlr4bomZXnkIbvvIzoq4vlnKjkuIvpnaLovLjlhaXlr4bnorzvvJoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfc3RhcnRlZCIgbXNnaWQ9IjU1MDM1NDI4MTQ1Mjc1NjEyMSI+Iuato+WcqOmWi+Wni+WCmeS7vS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2JhY2t1cF9lbmRlZCIgbXNnaWQ9IjM4MTgwODA3Njk1NDg3MjY0MjQiPiLlgpnku73lroznlaIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yZXN0b3JlX3N0YXJ0ZWQiIG1zZ2lkPSI3ODgxNjc5MjE4OTcxMjc3Mzg1Ij4i5q2j5Zyo6ZaL5aeL6YKE5Y6fLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfcmVzdG9yZV9lbmRlZCIgbXNnaWQ9IjE3NjQwNDE2MzkxOTk2OTYxMzIiPiLpgoTljp/lroznlaIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF90aW1lb3V0IiBtc2dpZD0iNTI3NjU5ODU4NzA4NzYyNjg3NyI+IuaTjeS9nOmAvuaZgiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLXp1L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvQmFja3VwUmVzdG9yZUNvbmZpcm1hdGlvbi9yZXMvdmFsdWVzLXp1L3N0cmluZ3MueG1sCmluZGV4IGI2MmI3YWYuLjk1NWIyNmYgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0JhY2t1cFJlc3RvcmVDb25maXJtYXRpb24vcmVzL3ZhbHVlcy16dS9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9CYWNrdXBSZXN0b3JlQ29uZmlybWF0aW9uL3Jlcy92YWx1ZXMtenUvc3RyaW5ncy54bWwKQEAgLTI5LDcgKzI5LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImRldmljZV9lbmNyeXB0aW9uX2JhY2t1cF90ZXh0IiBtc2dpZD0iNTg2NjU5MDc2MjY3Mjg0NDY2NCI+IlV5YWNlbHdhIHVrdWJhIHVmYWtlIGlwaGFzaXdlZGkgZWZha3dlIGt1ZGl2YXlpc2kgeWFraG8gbmdlemFuc2kuIGxva2h1IGt1em9zZXRzaGVuemlzd2EgdWt1ZmFrYSBrdXNpbG9uZG9sb3phIHNva3VzaXphIGxhcGhvIGt1ZGluZ2VrYS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX3RleHQiIG1zZ2lkPSI0OTgxNTg1NzE0Nzk1MjMzMDk5Ij4iU2ljZWxhIHVmYWtlIGlwaGFzaXdlZGkgZXpvc2V0c2hlbnppc2Vsd2EgdWt1YmhhbGEgbmdva3VmaWhsZWtpbGV5byBpbWluaW5pbmdvIGV5ZXNla3dlIG5nb2t1bG9uZG9sb3phLiBVbWEgbG9raHUga3VzaGl5d2Uga3VuZ2FiaGFsd2UgbHV0aG8sIGt1em9zZXRzaGVuemlzd2EgaXBoYXNpd2VkaSB5b2t3ZXNla2Egbmdva3Vsb25kb2xvemEgeWFtYW5qZToiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJiYWNrdXBfZW5jX3Bhc3N3b3JkX29wdGlvbmFsIiBtc2dpZD0iMTM1MDEzNzM0NTkwNzU3OTMwNiI+IlVtYSB1ZnVuYSB1a3VmYWthIGlraG93dWRpIGt3aW1pbmluaW5nbyB5b25rZSBleWVzZWtlbHdlIG5nb2t1bG9uZG9sb3phIGZha2EgaS1wYXNzb3dyZCBlbmdlemFuc2k6Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjYxNDA4OTg1MjU1ODA3MTA4MjMiPiJVbWEgaW5zaXphIHlva3VidXlpc2Vsd2EgZXNpbXdlbmkga3dtaW5pbmluZ28gaWJoYWx3ZSBuZ29rdWZpaGxla2lsZXlvLCBzaWNlbGEgdWZha2UgaXBoYXNpd2VkaSBlbmdlemFuc2k6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdG9yZV9lbmNfcGFzc3dvcmRfdGV4dCIgbXNnaWQ9IjYxNDA4OTg1MjU1ODA3MTA4MjMiPiJVbWEgdWhsZWxvIGxva3VzZWJlbnphIHlva3VidXlpc2Vsd2EgZXNpbXdlbmkga3dtaW5pbmluZ28gaWJoYWx3ZSBuZ29rdWZpaGxla2lsZXlvLCBzaWNlbGEgdWZha2UgaXBoYXNpd2VkaSBlbmdlemFuc2k6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfYmFja3VwX3N0YXJ0ZWQiIG1zZ2lkPSI1NTAzNTQyODE0NTI3NTYxMjEiPiJVa3Vsb25kb2xvemEga3V5YXFhbGEuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9iYWNrdXBfZW5kZWQiIG1zZ2lkPSIzODE4MDgwNzY5NTQ4NzI2NDI0Ij4iVWt1bG9uZG9sb3phIGt1cGhlbGlsZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3Jlc3RvcmVfc3RhcnRlZCIgbXNnaWQ9Ijc4ODE2NzkyMTg5NzEyNzczODUiPiJVa3VidXlpc2Ega3V5YXFhbGEuLi4iPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWF6LXJBWi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtYXotckFaL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhZTdkMDIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWF6LXJBWi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qCisqKgorKiogQ29weXJpZ2h0IDIwMDgsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VfbmFtZSIgbXNnaWQ9IjQ4NDE0OTE2MzUwNTUzNzk1NTMiPiJQYWtldCBHaXJpxZ8gWWFyZMSxbcOnxLFzxLEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtYXovc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWF6L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhZTdkMDIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWF6L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoKKyoqCisqKiBDb3B5cmlnaHQgMjAwOCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZV9uYW1lIiBtc2dpZD0iNDg0MTQ5MTYzNTA1NTM3OTU1MyI+IlBha2V0IEdpcmnFnyBZYXJkxLFtw6fEsXPEsSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWVuLXJJTi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTZkNzE1Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKgorKioKKyoqIENvcHlyaWdodCAyMDA4LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlX25hbWUiIG1zZ2lkPSI0ODQxNDkxNjM1MDU1Mzc5NTUzIj4iUGFja2FnZSBBY2Nlc3MgSGVscGVyIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNmQ3MTUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qCisqKgorKiogQ29weXJpZ2h0IDIwMDgsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VfbmFtZSIgbXNnaWQ9IjQ4NDE0OTE2MzUwNTUzNzk1NTMiPiJQYWNrYWdlIEFjY2VzcyBIZWxwZXIiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1mci1yQ0Evc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjljNGU5OQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoKKyoqCisqKiBDb3B5cmlnaHQgMjAwOCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZV9uYW1lIiBtc2dpZD0iNDg0MTQ5MTYzNTA1NTM3OTU1MyI+IkFpZGUgYWNjw6hzIGF1IHBhcXVldCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWh5LXJBTS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTJmNTg3Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKgorKioKKyoqIENvcHlyaWdodCAyMDA4LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlX25hbWUiIG1zZ2lkPSI0ODQxNDkxNjM1MDU1Mzc5NTUzIj4i1ZPVodWp1aXVqdWrINW01bjWgtW/1oTVqyDWhdWq1aHVttWk1aHVr9W41bIiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtaHkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWh5L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlMmY1ODcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWh5L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoKKyoqCisqKiBDb3B5cmlnaHQgMjAwOCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZV9uYW1lIiBtc2dpZD0iNDg0MTQ5MTYzNTA1NTM3OTU1MyI+ItWT1aHVqdWl1anVqyDVtNW41oLVv9aE1asg1oXVqtWh1bbVpNWh1a/VuNWyIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWthLXJHRS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNmQ3MTUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWthLXJHRS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qCisqKgorKiogQ29weXJpZ2h0IDIwMDgsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VfbmFtZSIgbXNnaWQ9IjQ4NDE0OTE2MzUwNTUzNzk1NTMiPiJQYWNrYWdlIEFjY2VzcyBIZWxwZXIiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMta2Evc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWthL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNmQ3MTUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWthL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoKKyoqCisqKiBDb3B5cmlnaHQgMjAwOCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZV9uYW1lIiBtc2dpZD0iNDg0MTQ5MTYzNTA1NTM3OTU1MyI+IlBhY2thZ2UgQWNjZXNzIEhlbHBlciI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1rbS1yS0gvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDA2ZDU2Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1rbS1yS0gvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKgorKioKKyoqIENvcHlyaWdodCAyMDA4LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlX25hbWUiIG1zZ2lkPSI0ODQxNDkxNjM1MDU1Mzc5NTUzIj4i4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6H4Z+G4Z6T4Z694Z6Z4oCL4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6A4Z6J4Z+S4Z6F4Z6U4Z+LIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLWttL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1rbS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDA2ZDU2Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1rbS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qCisqKgorKiogQ29weXJpZ2h0IDIwMDgsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VfbmFtZSIgbXNnaWQ9IjQ4NDE0OTE2MzUwNTUzNzk1NTMiPiLhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnofhn4bhnpPhnr3hnpnigIvhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnoDhnonhn5LhnoXhnpThn4siPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtbG8tckxBL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE2ZDcxNQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtbG8tckxBL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoKKyoqCisqKiBDb3B5cmlnaHQgMjAwOCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZV9uYW1lIiBtc2dpZD0iNDg0MTQ5MTYzNTA1NTM3OTU1MyI+IlBhY2thZ2UgQWNjZXNzIEhlbHBlciI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1sby9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtbG8vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE2ZDcxNQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtbG8vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKgorKioKKyoqIENvcHlyaWdodCAyMDA4LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlX25hbWUiIG1zZ2lkPSI0ODQxNDkxNjM1MDU1Mzc5NTUzIj4iUGFja2FnZSBBY2Nlc3MgSGVscGVyIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtbW4tck1OL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5ZmU2NDcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qCisqKgorKiogQ29weXJpZ2h0IDIwMDgsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VfbmFtZSIgbXNnaWQ9IjQ4NDE0OTE2MzUwNTUzNzk1NTMiPiLQkdCw0LPRhiDRhdCw0L3QtNCw0LvRgtGL0L0g0YLRg9GB0LvQsNC80LYiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtbW4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5ZmU2NDcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoKKyoqCisqKiBDb3B5cmlnaHQgMjAwOCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZV9uYW1lIiBtc2dpZD0iNDg0MTQ5MTYzNTA1NTM3OTU1MyI+ItCR0LDQs9GGINGF0LDQvdC00LDQu9GC0YvQvSDRgtGD0YHQu9Cw0LzQtiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1tcy1yTVkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLW1zLXJNWS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2Q3OTI3Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1tcy1yTVkvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKgorKioKKyoqIENvcHlyaWdodCAyMDA4LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlX25hbWUiIG1zZ2lkPSI0ODQxNDkxNjM1MDU1Mzc5NTUzIj4iUGVtYmFudHUgQWtzZXMgUGFrZWoiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtbmUtck5QL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1uZS1yTlAvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWI3MGNlMQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtbmUtck5QL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoKKyoqCisqKiBDb3B5cmlnaHQgMjAwOCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZV9uYW1lIiBtc2dpZD0iNDg0MTQ5MTYzNTA1NTM3OTU1MyI+IuCkquCljeCkr+CkvuCkleClh+CknCDgpKrgpLngpYHgpIHgpJog4KS44KS54KSv4KWL4KSX4KWAIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLW5lL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1uZS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjcwY2UxCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1uZS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qCisqKgorKiogQ29weXJpZ2h0IDIwMDgsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VfbmFtZSIgbXNnaWQ9IjQ4NDE0OTE2MzUwNTUzNzk1NTMiPiLgpKrgpY3gpK/gpL7gpJXgpYfgpJwg4KSq4KS54KWB4KSB4KSaIOCkuOCkueCkr+Cli+Ckl+ClgCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1zaS1yTEsvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLXNpLXJMSy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjJlYzZjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRGVmYXVsdENvbnRhaW5lclNlcnZpY2UvcmVzL3ZhbHVlcy1zaS1yTEsvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKgorKioKKyoqIENvcHlyaWdodCAyMDA4LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJzZXJ2aWNlX25hbWUiIG1zZ2lkPSI0ODQxNDkxNjM1MDU1Mzc5NTUzIj4i4La04LeQ4Laa4Lea4LaiIOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgtovgtq/gt4Dgt4rgtprgtrvgt5QiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtc2kvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLXNpL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMmVjNmMKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLXNpL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoKKyoqCisqKiBDb3B5cmlnaHQgMjAwOCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0ic2VydmljZV9uYW1lIiBtc2dpZD0iNDg0MTQ5MTYzNTA1NTM3OTU1MyI+IuC2tOC3kOC2muC3muC2oiDgtrTgt4rigI3gtrvgt4Dgt5rgt4Eg4LaL4Lav4LeA4LeK4Laa4La74LeUIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RlZmF1bHRDb250YWluZXJTZXJ2aWNlL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhNDM1MDkKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9EZWZhdWx0Q29udGFpbmVyU2VydmljZS9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qCisqKgorKiogQ29weXJpZ2h0IDIwMDgsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InNlcnZpY2VfbmFtZSIgbXNnaWQ9IjQ4NDE0OTE2MzUwNTUzNzk1NTMiPiLlpZfku7blrZjlj5bovJTliqnnqIvlvI8iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtYWYvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWFmL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxZmQ2M2EKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWFmL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IkRva3VtZW50ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4iTWFhayBvb3AgdmFuYWYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IlN0b29yIG5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+IlNrZXAgdm91ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iUm9vc3RlcmFhbnNpZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiJMeXNhYW5zaWciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4iU29ydGVlciB2b2xnZW5zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4iU29layI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4iSW5zdGVsbGluZ3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiJNYWFrIG9vcCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiJTdG9vciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4iRGVlbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IlZlZSB1aXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiBnZWtpZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iVm9sZ2VucyBuYWFtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4iVm9sZ2VucyBkYXR1bSBnZXd5c2lnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IlZvbGdlbnMgZ3Jvb3R0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+Ild5cyB3b3J0ZWxzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IlZlcnN0ZWVrIHdvcnRlbHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IktvbiBuaWUgZG9rdW1lbnQgc3Rvb3IgbmllIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+IktvbiBuaWUgdm91ZXIgc2tlcCBuaWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiJLb24gbmllIG5hdnJhYWcgZG9lbiBvb3IgZG9rdW1lbnRlIG5pZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+Ik9ubGFuZ3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4gZ3JhdGlzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4iQmVyZ2luZ2RpZW5zdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4iS29ydHBhYWllIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJUb2VzdGVsbGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiJOb2cgcHJvZ3JhbW1lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4iV3lzIGdldm9yZGVyZGUgdG9lc3RlbGxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4iV3lzIGzDqmVyZ3Jvb3R0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4iV3lzIHRvZXN0ZWxncm9vdHRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4iR2VlbiBpdGVtcyBuaWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJLYW4gbMOqZXIgbmllIG9vcG1hYWsgbmllIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiJLYW4gc29tbWlnZSBkb2t1bWVudGUgbmllIHVpdHZlZSBuaWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4iRGVlbCB2aWEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtYW0vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWFtL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3N2E4ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWFtL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IuGIsOGKkOGLtuGJvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4i4Yqt4Y2I4Ym1IOGKqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4i4Yqg4Yi14YmA4Yid4YylIOGLiOGLsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiLhiqDhiYPhjYog4Y2N4Yyg4YitIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9ncmlkIiBtc2dpZD0iNjg3ODAyMTMzNDQ5NzgzNTI1OSI+IuGLqOGNjeGIreGMjeGIreGMjSDhiqXhi63hibMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4i4Yuo4Yud4Yit4Yud4YitIOGKpeGLreGJsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiLhi7DhiK3hi7XhiK0g4YmgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4i4Y2I4YiN4YyNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiLhiYXhipXhiaXhiK7hib0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiLhiq3hjYjhibUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4i4Yqg4Yi14YmA4Yid4YylIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zaGFyZSIgbXNnaWQ9IjMwNzUxNDk5ODM5Nzk2MjgxNDYiPiLhiqDhjIvhiKsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZSIgbXNnaWQ9IjgxMzg3OTk2MjM4NTA2MTQxNzciPiLhiLDhiK3hi50iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiDhibDhiJjhiK3hjKDhi4vhiI0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4i4Ymg4Yi14YidIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4i4Ymg4Ymw4YiI4YuI4Yyg4Ymg4Ym1IOGJgOGKlSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiLhiaDhiJjhjKDhipUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiLhiLXhiK7hib3hipUg4Yqg4Yiz4YutIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IuGIteGIruGJveGKlSDhi7DhiaXhiYUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IuGIsOGKkOGLtSDhiJvhiLXhiYDhiJjhjKUg4Yqg4YiN4Ymw4Yiz4Yqr4YidIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+IuGKoOGJg+GNiiDhiJjhjY3hjKDhiK0g4Yqg4YiN4Ymw4Yiz4Yqr4YidIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4i4YiI4Yiw4YqQ4Yu24Ym9IOGImOGMoOGLreGJhSDhiJjhiLXhiKvhibUg4Yqg4YiN4Ymw4Yiz4Yqr4YidIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4i4Yuo4YmF4Yit4YmlIOGMiuGLnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiDhipDhjYMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiLhi6jhiJvhiqjhiJvhibsg4Yqg4YyI4YiN4YyN4YiO4Ym24Ym9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IuGKoOGJi+GIq+GMruGJvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4i4YiY4Yij4Yiq4Yur4YuO4Ym9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4i4Ymw4Yyo4Yib4YiqIOGImOGJsOGMjeGJoOGIquGLq+GLjuGJvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+IuGLqOGIi+GJgSDhiJjhiLPhiKrhi6vhi47hib3hipUg4Yqg4Yiz4YutIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4i4Yuo4Y2L4Yut4YiNIOGImOGMoOGKlSDhiqDhiLPhi60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+IuGLqOGImOGIs+GIquGLqyDhiJjhjKDhipUg4Yqg4Yiz4YutIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4i4Yid4YqV4YidIOGKleGMpeGIjuGJvSDhi6jhiInhiJ0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiLhjYvhi63hiI0g4YiY4Yqt4Y2I4Ym1IOGKoOGLreGJu+GIjeGInSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4i4Yqg4YqV4Yuz4YqV4Yu1IOGIsOGKkOGLtuGJveGKlSDhiJjhiLDhiKjhi50g4Yqg4YiN4Ymw4Ym74YiI4YidIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IuGJoOGImuGKqOGJsOGIiOGLjSDhiaDhiqnhiI0g4Yur4YyL4YipIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWFyL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1hci9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTljMGVlCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1hci9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiLZhdiz2KrZhtiv2KfYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4i2YHYqtitINmF2YYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+Itit2YHYuCDZgdmKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+Itil2YbYtNin2KEg2YXYrNmE2K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4i2LnYsdi2INin2YTYtNio2YPYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiLYudix2LYg2KfZhNmC2KfYptmF2KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4i2KrYsdiq2YrYqCDYqNit2LPYqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+Itio2K3YqyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4i2KfZhNil2LnYr9in2K/Yp9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4i2YHYqtitIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+Itit2YHYuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4i2YXYtNin2LHZg9ipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4i2K3YsNmBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+Itiq2YUg2KrYrdiv2YrYryA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+Itio2K3Ys9ioINin2YTYp9iz2YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiLYqNit2LPYqCDYqtin2LHZitiuINin2YTYqti52K/ZitmEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+Itio2K3Ys9ioINin2YTYrdis2YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiLYudix2LYg2KfZhNis2LDZiNixIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+Itil2K7Zgdin2KEg2KfZhNis2LDZiNixIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiLYo9iu2YHZgiDYrdmB2Lgg2KfZhNmF2LPYqtmG2K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4i2KPYrtmB2YIg2KXZhti02KfYoSDYp9mE2YXYrNmE2K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLYo9iu2YHZgiDYpdix2LPYp9mEINi32YTYqCDYqNit2Ksg2LnZhiDYp9mE2YXYs9iq2YbYr9in2KoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiLYp9mE2KPYrtmK2LHYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiDYrtin2YTZitipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4i2K7Yr9mF2KfYqiDYp9mE2KrYrtiy2YrZhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiLYp9iu2KrYtdin2LHYp9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiLYo9is2YfYstipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4i2KfZhNmF2LLZitivINmF2YYg2KfZhNiq2LfYqNmK2YLYp9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4i2LnYsdi2INin2YTYo9is2YfYstipINin2YTZhdiq2YLYr9mF2KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiLYudix2LYg2K3YrNmFINin2YTZhdmE2YEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+Iti52LHYtiDYrdis2YUg2KfZhNis2YfYp9iyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4i2YTZitizINmH2YbYp9mDINij2Yog2LnZhtin2LXYsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+ItmE2Kcg2YrZhdmD2YYg2YHYqtitINin2YTZhdmE2YEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+Itiq2LnYsNixINit2LDZgSDYqNi52LYg2KfZhNmF2LPYqtmG2K/Yp9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+ItmF2LTYp9ix2YPYqSDYudio2LEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtYXotckFaL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1hei1yQVovc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM3NDk4MgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtYXotckFaL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IlPJmW7JmWRsyZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiJWYXNpdMmZc2lsyZkgYcOnxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfc2F2ZSIgbXNnaWQ9IjI0MzM2Nzk2NjQ4ODI4NTc5OTkiPiJidXJheWEgc2F4bGF5xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+IlFvdmx1cSB5YXJhZMSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJUb3JsdSBnw7Zyw7xuw7zFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiJTaXlhaMSxIGfDtnLDvG7DvMWfw7wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4iQnVubGFyZGFuIGJpcmkgw7x6csmZIHPEsXJhbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJBeHRhcsSxxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IkF5YXJsYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiJBw6fEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4iWWFkZGEgc2F4bGF5xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zaGFyZSIgbXNnaWQ9IjMwNzUxNDk5ODM5Nzk2MjgxNDYiPiJQYXlsYcWfxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4iU2lsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4gc2XDp2lsbWnFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiJBZCDDvHpyyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiJUYXJpeCDDvHpyyZkgZMmZeWnFn21pxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4iw5Zsw6fDvCDDvHpyyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJLw7ZrbMmZcmkgZ8O2c3TJmXJpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiJLw7ZrbMmZcmkgZ2l6bMmZZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiJTyZluyZlkaSB5YWRkYSBzYXhsYXlhIGJpbG3JmWRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4iU29uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+IMO2ZMmZbmnFn3NpeiI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciByb290X3R5cGVfc2VydmljZSAoMjE3ODg1NDg5NDQxNjc3NTQwOSkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiJRxLFzYSB5b2xsYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+IkNpaGF6bGFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4iRGFoYSDDp294IHTJmXRiaXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiJRYWJhcWPEsWwgY2loYXpsYXLEsSBnw7Zyw7xudMO8bMmZeWluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4iRmF5bCDDtmzDp8O8c8O8bsO8IGfDtnLDvG50w7xsyZl5aW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+IkNpaGF6IMO2bMOnw7xzw7xuw7wgZ8O2csO8bnTDvGzJmXlpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+IkVsZW1lbnQgeW94ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4iRmF5bMSxIGHDp2EgYmlsbWlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiJCyZl6aSBzyZluyZlkbMmZcmkgc2lsyZkgYmlsbWlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IkJ1bnVuIHZhc2l0yZlzaWzJmSBwYXlsYcWfOiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1hei9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtYXovc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA2MTE4YgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtYXovc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4iU8mZbsmZZGzJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+IlZhc2l0yZlzaWzJmSBhw6fEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+ImJ1cmF5YSBzYXhsYXnEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4iUW92bHVxIHlhcmFkxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9ncmlkIiBtc2dpZD0iNjg3ODAyMTMzNDQ5NzgzNTI1OSI+IlRvcmx1IGfDtnLDvG7DvMWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+IlNpeWFoxLEgZ8O2csO8bsO8xZ/DvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiJCdW5sYXJkYW4gYmlyaSDDvHpyyZkgc8SxcmFsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IkF4dGFyxLHFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4iQXlhcmxhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+IkHDp8SxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiJZYWRkYSBzYXhsYXnEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IlBheWxhxZ/EsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZSIgbXNnaWQ9IjgxMzg3OTk2MjM4NTA2MTQxNzciPiJTaWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiBzZcOnaWxtacWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+IkFkIMO8enLJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IlRhcml4IMO8enLJmSBkyZl5acWfbWnFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiLDlmzDp8O8IMO8enLJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IkvDtmtsyZlyaSBnw7ZzdMmZcmluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IkvDtmtsyZlyaSBnaXpsyZlkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IlPJmW7JmWRpIHlhZGRhIHNheGxheWEgYmlsbcmZZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiJTb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4gw7ZkyZluacWfc2l6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyODU3MzYyNzAwNTc2MDA2Njk0Ij4iWGlkbcmZdGzJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4iUcSxc2EgeW9sbGFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJDaWhhemxhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IkRhaGEgw6dveCB0yZl0YmlxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4iUWFiYXFjxLFsIGNpaGF6bGFyxLEgZ8O2csO8bnTDvGzJmXlpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+IkZheWwgw7Zsw6fDvHPDvG7DvCBnw7Zyw7xudMO8bMmZeWluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiJDaWhheiDDtmzDp8O8c8O8bsO8IGfDtnLDvG50w7xsyZl5aW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiJFbGVtZW50IHlveGR1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+IkZheWzEsSBhw6dhIGJpbG1pciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4iQsmZemkgc8mZbsmZZGzJmXJpIHNpbMmZIGJpbG1pciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vcmUiIG1zZ2lkPSI3MTE3NDIwOTg2NTI5Mjk3MTcxIj4iRGFoYSDDp294Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibG9hZGluZyIgbXNnaWQ9Ijc5MzM2ODEyNjAyOTYwMjExODAiPiJZw7xrbMmZbmly4oCmIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWJnL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1iZy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzI0MmIyCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1iZy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiLQlNC+0LrRg9C80LXQvdGC0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+ItCe0YLQstCw0YDRj9C90LUg0L7RgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4i0JfQsNC/0LDQt9Cy0LDQvdC1INCyL9GK0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4i0KHRitC30LTQsNCy0LDQvdC1INC90LAg0L/QsNC/0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiLQmNC30LPQu9C10LQg0LIg0LzRgNC10LbQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiLQodC/0LjRgdGK0YfQtdC9INC40LfQs9C70LXQtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiLQodC+0YDRgtC40YDQsNC90LUg0L/QviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+ItCi0YrRgNGB0LXQvdC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiLQndCw0YHRgtGA0L7QudC60LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiLQntGC0LLQsNGA0Y/QvdC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+ItCX0LDQv9Cw0LfQstCw0L3QtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4i0KHQv9C+0LTQtdC70Y/QvdC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4i0JjQt9GC0YDQuNCy0LDQvdC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+ItCY0LfQsdGA0LDRhdGC0LUgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiLQn9C+INC40LzQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+ItCf0L4g0LTQsNGC0LAg0L3QsCDQv9GA0L7QvNGP0L3QsNGC0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4i0J/QviDRgNCw0LfQvNC10YAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiLQn9C+0LrQsNC30LLQsNC90LUg0L3QsCDQvtGB0L3QvtCy0L3QuNGC0LUg0LXQu9C10LzQtdC90YLQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiLQodC60YDQuNCy0LDQvdC1INC90LAg0L7RgdC90L7QstC90LjRgtC1INC10LvQtdC80LXQvdGC0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+ItCX0LDQv9Cw0LfQstCw0L3QtdGC0L4g0L3QsCDQtNC+0LrRg9C80LXQvdGC0LAg0L3QtSDQsdC1INGD0YHQv9C10YjQvdC+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+ItCh0YrQt9C00LDQstCw0L3QtdGC0L4g0L3QsCDQv9Cw0L/QutCw0YLQsCDQvdC1INCx0LUg0YPRgdC/0LXRiNC90L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLQl9Cw0Y/QstC60LDRgtCwINC30LAg0LTQvtC60YPQvNC10L3RgtC4INC90LUg0LHQtSDRg9GB0L/QtdGI0L3QsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+ItCh0LrQvtGA0L7RiNC90L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiLQodCy0L7QsdC+0LTQvdC+OiA8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiLQo9GB0LvRg9Cz0Lgg0LfQsCDRgdGK0YXRgNCw0L3QtdC90LjQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiLQn9GA0LXQutC4INC/0YrRgtC40YnQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4i0KPRgdGC0YDQvtC50YHRgtCy0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiLQntGJ0LUg0L/RgNC40LvQvtC20LXQvdC40Y8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiLQo9GB0YLRgNC+0LnRgdGC0LLQsCDRgSDRgNCw0LfRiNC40YDQtdC90Lgg0YQt0LjQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+ItCf0L7QutCw0LfQstCw0L3QtSDQvdCwINGE0LDQudC70L7QstC40Y8g0YDQsNC30LzQtdGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiLQn9C+0LrQsNC30LLQsNC90LUg0L3QsCDRgNCw0LfQvNC10YDQsCDQvdCwINGD0YHRgtGA0L7QudGB0YLQstC+0YLQviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+ItCd0Y/QvNCwINC10LvQtdC80LXQvdGC0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiLQpNCw0LnQu9GK0YIg0L3QtSDQvNC+0LbQtSDQtNCwINGB0LUg0L7RgtCy0L7RgNC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiLQndGP0LrQvtC4INC00L7QutGD0LzQtdC90YLQuCDQvdC1INC80L7Qs9Cw0YIg0LTQsCDQsdGK0LTQsNGCINC40LfRgtGA0LjRgtC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+ItCh0L/QvtC00LXQu9GP0L3QtSDRh9GA0LXQtyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1jYS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtY2Evc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhjN2IwZQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtY2Evc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4iRG9jdW1lbnRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiJPYnJlIGRlcyBkZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4iRGVzYSBhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+IkNyZWEgdW5hIGNhcnBldGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iVmlzdWFsaXR6YWNpw7MgZGUgcXVhZHLDrWN1bGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iVmlzdWFsaXR6YWNpw7MgZGUgbGxpc3RhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+Ik9yZGVuYSBwZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJDZXJjYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4iQ29uZmlndXJhY2nDsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+Ik9icmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4iRGVzYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4iQ29tcGFydGVpeCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IlN1cHJpbWVpeCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiJTZWxlY2Npb25hdHM6IDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iUGVyIG5vbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IlBlciBkYXRhIGRlIG1vZGlmaWNhY2nDsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiJQZXIgbWlkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+Ik1vc3RyYSBsZXMgYXJyZWxzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IkFtYWdhIGxlcyBhcnJlbHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+Ik5vIHNcJ2hhIHBvZ3V0IGRlc2FyIGVsIGRvY3VtZW50LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiJObyBzXCdoYSBwb2d1dCBjcmVhciBsYSBjYXJwZXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iTm8gc1wnaGFuIHBvZ3V0IGNvbnN1bHRhciBlbHMgZG9jdW1lbnRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4iUmVjZW50Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+IGxsaXVyZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiJTZXJ2ZWlzIGRcJ2VtbWFnYXR6ZW1hdGdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IkRyZWNlcmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJEaXNwb3NpdGl1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+Ik3DqXMgYXBsaWNhY2lvbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiJNb3N0cmEgZWxzIGRpc3Bvc2l0aXVzIGF2YW7Dp2F0cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+Ik1vc3RyYSBsYSBtaWRhIGRlbCBmaXR4ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+Ik1vc3RyYSBsYSBtaWRhIGRlbCBkaXNwb3NpdGl1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4iU2Vuc2UgZWxlbWVudHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJObyBlcyBwb3Qgb2JyaXIgZWwgZml0eGVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4iTm8gZXMgcG9kZW4gc3VwcmltaXIgYWxndW5zIGRvY3VtZW50cy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4iQ29tcGFydGVpeCBtaXRqYW7Dp2FudCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1jcy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtY3Mvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA4OWM4YgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtY3Mvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4iRG9rdW1lbnR5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiJPdGV2xZnDrXQgeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4iVWxvxb5pdCBkbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiJWeXR2b8WZaXQgc2xvxb5rdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJNxZnDrcW+a2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iU2V6bmFtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IsWYYWRpdCBwb2RsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IkhsZWRhdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4iTmFzdGF2ZW7DrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+Ik90ZXbFmcOtdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiJVbG/Fvml0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zaGFyZSIgbXNnaWQ9IjMwNzUxNDk5ODM5Nzk2MjgxNDYiPiJTZMOtbGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4iU21hemF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+IlZ5YnLDoW5vOiA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+IlBvZGxlIG7DoXp2dSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IlBvZGxlIGRhdGEgw7pwcmF2eSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiJQb2RsZSB2ZWxpa29zdGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJab2JyYXppdCBrb8WZZW55Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IlNrcsO9dCBrb8WZZW55Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiJVbG/FvmVuw60gZG9rdW1lbnR1IHNlIG5lemRhxZlpbG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4iU2xvxb5rdSBzZSBuZXBvZGHFmWlsbyB2eXR2b8WZaXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiJTZXpuYW0gZG9rdW1lbnTFryBzZSBuZXBvZGHFmWlsbyBuYcSNw61zdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+IlBvc2xlZG7DrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+IlZvbG7DvSBwcm9zdG9yOiA8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiJTbHXFvmJ5IMO6bG/FvmnFoXTEmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiJLbMOhdmVzb3bDqSB6a3JhdGt5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJaYcWZw616ZW7DrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IkRhbMWhw60gYXBsaWthY2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiJab2JyYXppdCBwb2tyb8SNaWzDoSB6YcWZw616ZW7DrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+IlpvYnJheml0IHZlbGlrb3N0IHNvdWJvcnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+IlpvYnJheml0IHZlbGlrb3N0IHphxZnDrXplbsOtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4ixb3DoWRuw6kgcG9sb8W+a3kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJTb3Vib3IgbmVsemUgb3RldsWZw610Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiJOxJtrdGVyw6kgZG9rdW1lbnR5IG5lbHplIHNtYXphdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiJTZMOtbGV0IHBvbW9jw60iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZGEvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWRhL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxNmY5YTcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWRhL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IkRva3VtZW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+IsOFYm4gZnJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfc2F2ZSIgbXNnaWQ9IjI0MzM2Nzk2NjQ4ODI4NTc5OTkiPiJHZW0gcMOlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+Ik9wcmV0IG1hcHBlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9ncmlkIiBtc2dpZD0iNjg3ODAyMTMzNDQ5NzgzNTI1OSI+IkdpdHRlcnZpc25pbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iTGlzdGV2aXNuaW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IlNvcnTDqXIgZWZ0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJTw7hnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiJJbmRzdGlsbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4iw4VibiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiJHZW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IkRlbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IlNsZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiBlciB2YWxndCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiJFZnRlciBuYXZuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4iRWZ0ZXIgw6ZuZHJpbmdzZGF0byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiJFZnRlciBzdMO4cnJlbHNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4iVmlzIHLDuGRkZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4iU2tqdWwgcsO4ZGRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4iRG9rdW1lbnRldCBrdW5uZSBpa2tlIGdlbW1lcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiJNYXBwZW4ga3VubmUgaWtrZSBvcHJldHRlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1ZXJ5X2Vycm9yIiBtc2dpZD0iMTIyMjQ0ODI2MTY2MzUwMzUwMSI+IkRva3VtZW50ZXJuZSBrdW5uZSBpa2tlIGZvcmVzcMO4cmdlcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiJTZW5lc3RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+IGxlZGlnIHBsYWRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4iTGFncmluZ3N0amVuZXN0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4iR2VudmVqZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4iRW5oZWRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IkZsZXJlIGFwcHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiJWaXMgYXZhbmNlcmVkZSBlbmhlZGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4iVmlzIGZpbHN0w7hycmVsc2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+IlZpcyBlbmhlZGVucyBzdMO4cnJlbHNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4iSW5nZW4gZWxlbWVudGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4iRmlsZW4ga2FuIGlra2Ugw6VibmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiJOb2dsZSBkb2t1bWVudGVyIGthbiBpa2tlIHNsZXR0ZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4iRGVsIHZpYSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1kZS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZGUvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2I0NDhkOQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZGUvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4iRG9rdW1lbnRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiLDlmZmbmVuIHZvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4iU3BlaWNoZXJuIHVudGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+Ik9yZG5lciBlcnN0ZWxsZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iUmFzdGVyYW5zaWNodCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiJMaXN0ZW5hbnNpY2h0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IlNvcnRpZXJlbiBuYWNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4iU3VjaGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiJFaW5zdGVsbHVuZ2VuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4iw5ZmZm5lbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiJTcGVpY2hlcm4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IlRlaWxlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IkzDtnNjaGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4gYXVzZ2V3w6RobHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iTmFjaCBOYW1lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4iTmFjaCDDhG5kZXJ1bmdzZGF0dW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4iTmFjaCBHcsO2w59lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4iUm9vdC1WZXJ6ZWljaG5pcyBhbnplaWdlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiJSb290LVZlcnplaWNobmlzIGF1c2JsZW5kZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IkRva3VtZW50IGtvbm50ZSBuaWNodCBnZXNwZWljaGVydCB3ZXJkZW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+Ik9yZG5lciBrb25udGUgbmljaHQgZXJzdGVsbHQgd2VyZGVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1ZXJ5X2Vycm9yIiBtc2dpZD0iMTIyMjQ0ODI2MTY2MzUwMzUwMSI+IkZlaGxlciBiZWkgZGVyIEFuZm9yZGVydW5nIHZvbiBEb2t1bWVudGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4iTGV0enRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+IHZlcmbDvGdiYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiJTcGVpY2hlcmRpZW5zdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4iVmVya27DvHBmdW5nZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+IkdlcsOkdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiJXZWl0ZXJlIEFwcHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiJFcndlaXRlcnRlIEdlcsOkdGUgYW56ZWlnZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJEYXRlaWdyw7bDn2UgYW56ZWlnZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+IkdlcsOkdGVhYm1lc3N1bmdlbiBhbnplaWdlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+IktlaW5lIEVsZW1lbnRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4iRGF0ZWkga2FubiBuaWNodCBnZcO2ZmZuZXQgd2VyZGVuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4iRWluaWdlIERva3VtZW50ZSBrb25udGVuIG5pY2h0IGdlbMO2c2NodCB3ZXJkZW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IlRlaWxlbiDDvGJlciI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1lbC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZWwvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVjMzMxOAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZWwvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4izojOs86zz4HOsc+GzrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+Is6Gzr3Ov865zrPOvM6xIM6xz4DPjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4izpHPgM6/zrjOrs66zrXPhc+Dzrcgz4POtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiLOlM63zrzOuc6/z4XPgc6zzq/OsSDPhs6xzrrOrc67zr/PhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiLOoM+Bzr/Oss6/zrvOriDPgM67zq3Os868zrHPhM6/z4IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4izqDPgc6/zrLOv867zq4gzrvOr8+Dz4TOsc+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+Is6kzrHOvs65zr3PjM68zrfPg863IM66zrHPhM6sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4izpHOvc6xzrbOrs+EzrfPg863Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiLOoc+FzrjOvM6vz4POtc65z4IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiLOhs69zr/Ouc6zzrzOsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiLOkc+Azr/OuM6uzrrOtc+Fz4POtyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4izprOv865zr3OriDPh8+Bzq7Pg863Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4izpTOuc6xzrPPgc6xz4bOriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiLOlc+AzrnOu86tz4fOuM63zrrOsc69IDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4izprOsc+Ezqwgz4zOvc6/zrzOsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+Is6azrHPhM6sIM63zrzOtc+Bzr/OvM63zr3Or86xIM+Ez4HOv8+Azr/PgM6/zq/Ot8+DzrfPgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiLOms6xz4TOrCDOvM6tzrPOtc64zr/PgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+Is6VzrzPhs6szr3Ouc+Dzrcgz4HOr862zrHPgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiLOkc+Az4zOus+Bz4XPiM63IM+Bzq/Ots6xz4IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+Is6Rz4DOv8+Ez4XPh86vzrEgzrHPgM6/zrjOrs66zrXPhc+DzrfPgiDPhM6/z4UgzrXOs86zz4HOrM+Gzr/PhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiLOkc+Azr/PhM+Fz4fOr86xIM60zrfOvM65zr/Phc+BzrPOr86xz4Igz4bOsc66zq3Ou86/z4UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLOkc+Azr/PhM+Fz4fOr86xIM+Fz4DOv86yzr/Ou86uz4IgIM61z4HPic+Ezq7OvM6xz4TOv8+CIM6zzrnOsSDOrc6zzrPPgc6xz4bOsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+Is6gz4HPjM+Dz4bOsc+EzrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4gzrXOu861z43OuM61z4HOsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zZXJ2aWNlIiBtc2dpZD0iMjE3ODg1NDg5NDQxNjc3NTQwOSI+Is6lz4DOt8+BzrXPg86vzrXPgiDOsc+Azr/OuM6uzrrOtc+Fz4POt8+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+Is6jz4XOvc+Ezr/OvM61z43Pg861zrnPgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4izqPPhc+DzrrOtc+Fzq3PgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+Is6gzrXPgc65z4PPg8+Mz4TOtc+BzrXPgiDOtc+GzrHPgc68zr/Os86tz4IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiLOlc68z4bOrM69zrnPg863IM+Az4HOv863zrPOvM6tzr3Pic69IM+Dz4XPg866zrXPhc+Ozr0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiLOlc68z4bOrM69zrnPg863IM68zrXOs86tzrjOv8+Fz4IgzrHPgc+HzrXOr86/z4UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+Is6VzrzPhs6szr3Ouc+DzrcgzrzOtc6zzq3OuM6/z4XPgiDPg8+Fz4POus61z4XOrs+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4izpTOtc69IM+Fz4DOrM+Bz4fOv8+Fzr0gz4PPhM6/zrnPh861zq/OsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+Is6UzrXOvSDOtc6vzr3Osc65IM60z4XOvc6xz4TPjCDPhM6/IM6szr3Ov865zrPOvM6xIM+Ezr/PhSDOsc+Bz4fOtc6vzr/PhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4izpTOtc69IM61zq/Ovc6xzrkgzrTPhc69zrHPhM6uIM63IM60zrnOsc6zz4HOsc+Gzq4gzr/Pgc65z4POvM6tzr3Pic69IM61zrPOs8+BzqzPhs+Jzr0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4izprOv865zr3OriDPh8+Bzq7Pg863IM68zq3Pg8+JIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWVuLXJHQi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZW4tckdCL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5NWU3ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWVuLXJHQi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiJEb2N1bWVudHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+Ik9wZW4gZnJvbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4iU2F2ZSB0byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiJDcmVhdGUgZm9sZGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9ncmlkIiBtc2dpZD0iNjg3ODAyMTMzNDQ5NzgzNTI1OSI+IkdyaWQgdmlldyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiJMaXN0IHZpZXciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4iU29ydCBieSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IlNlYXJjaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4iU2V0dGluZ3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiJPcGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+IlNhdmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IlNoYXJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4iRGVsZXRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4gc2VsZWN0ZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iQnkgbmFtZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IkJ5IGRhdGUgbW9kaWZpZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4iQnkgc2l6ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IlNob3cgcm9vdHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4iSGlkZSByb290cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4iRmFpbGVkIHRvIHNhdmUgZG9jdW1lbnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4iRmFpbGVkIHRvIGNyZWF0ZSBmb2xkZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiJGYWlsZWQgdG8gcXVlcnkgZG9jdW1lbnRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4iUmVjZW50Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+IGZyZWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiJTdG9yYWdlIHNlcnZpY2VzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IlNob3J0Y3V0cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4iRGV2aWNlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+Ik1vcmUgYXBwcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+IkRpc3BsYXkgYWR2YW5jZWQgZGV2aWNlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+IkRpc3BsYXkgZmlsZSBzaXplIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiJEaXNwbGF5IGRldmljZSBzaXplIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4iTm8gaXRlbXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJDYW5ub3Qgb3BlbiBmaWxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiJVbmFibGUgdG8gZGVsZXRlIHNvbWUgZG9jdW1lbnRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IlNoYXJlIHZpYSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWVuLXJJTi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTVlN2YxCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4iRG9jdW1lbnRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiJPcGVuIGZyb20iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IlNhdmUgdG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4iQ3JlYXRlIGZvbGRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJHcmlkIHZpZXciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iTGlzdCB2aWV3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IlNvcnQgYnkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJTZWFyY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IlNldHRpbmdzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4iT3BlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiJTYXZlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zaGFyZSIgbXNnaWQ9IjMwNzUxNDk5ODM5Nzk2MjgxNDYiPiJTaGFyZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IkRlbGV0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+IHNlbGVjdGVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+IkJ5IG5hbWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiJCeSBkYXRlIG1vZGlmaWVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IkJ5IHNpemUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJTaG93IHJvb3RzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IkhpZGUgcm9vdHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IkZhaWxlZCB0byBzYXZlIGRvY3VtZW50Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+IkZhaWxlZCB0byBjcmVhdGUgZm9sZGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iRmFpbGVkIHRvIHF1ZXJ5IGRvY3VtZW50cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+IlJlY2VudCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiBmcmVlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4iU3RvcmFnZSBzZXJ2aWNlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiJTaG9ydGN1dHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+IkRldmljZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiJNb3JlIGFwcHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiJEaXNwbGF5IGFkdmFuY2VkIGRldmljZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJEaXNwbGF5IGZpbGUgc2l6ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4iRGlzcGxheSBkZXZpY2Ugc2l6ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+Ik5vIGl0ZW1zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4iQ2Fubm90IG9wZW4gZmlsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4iVW5hYmxlIHRvIGRlbGV0ZSBzb21lIGRvY3VtZW50cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiJTaGFyZSB2aWEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZXMtclVTL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1lcy1yVVMvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEzZmYzMwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZXMtclVTL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IkRvY3VtZW50b3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+IkFicmlyIGRlc2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfc2F2ZSIgbXNnaWQ9IjI0MzM2Nzk2NjQ4ODI4NTc5OTkiPiJHdWFyZGFyIGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+IkNyZWFyIGNhcnBldGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iVmlzdGEgZGUgY3VhZHLDrWN1bGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iVmlzdGEgZGUgbGlzdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4iT3JkZW5hciBwb3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJCdXNjYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IkNvbmZpZ3VyYWNpw7NuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4iQWJyaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4iR3VhcmRhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4iQ29tcGFydGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4iRWxpbWluYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiBzZWxlY2Npb25hZG8ocykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iUG9yIG5vbWJyZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IlBvciBmZWNoYSBkZSBtb2RpZmljYWNpw7NuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IlBvciB0YW1hw7FvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4iTW9zdHJhciByYcOtY2VzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+Ik9jdWx0YXIgcmHDrWNlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4iRXJyb3IgYWwgZ3VhcmRhciBlbCBkb2N1bWVudG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4iRXJyb3IgYWwgY3JlYXIgbGEgY2FycGV0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1ZXJ5X2Vycm9yIiBtc2dpZD0iMTIyMjQ0ODI2MTY2MzUwMzUwMSI+IkVycm9yIGFsIGNvbnN1bHRhciBkb2N1bWVudG9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4iUmVjaWVudGVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+IGRlIGVzcGFjaW8gbGlicmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiJBbG1hY2VuYW1pZW50byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiJBY2Nlc29zIGRpcmVjdG9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJEaXNwb3NpdGl2b3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiJNw6FzIGFwbGljYWNpb25lcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+Ik1vc3RyYXIgZGlzcG9zaXRpdm9zIGF2YW56YWRvcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+Ik1vc3RyYXIgdGFtYcOxbyBkZWwgYXJjaGl2byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4iTW9zdHJhciB0YW1hw7FvIGRlbCBkaXNwb3NpdGl2byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+IlNpbiBlbGVtZW50b3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJObyBzZSBwdWVkZSBhYnJpciBlbCBhcmNoaXZvLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4iTm8gZXMgcG9zaWJsZSBlbGltaW5hciBhbGd1bm9zIGRvY3VtZW50b3MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IkNvbXBhcnRpciBtZWRpYW50ZSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1lcy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZXMvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTY4MjU0MgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZXMvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4iRG9jdW1lbnRvcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4iQWJyaXIgZGVzZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+Ikd1YXJkYXIgZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4iQ3JlYXIgY2FycGV0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJWaXN0YSBkZSBjdWFkcsOtY3VsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiJWaXN0YSBkZSBsaXN0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiJPcmRlbmFyIHBvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IkJ1c2NhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4iQWp1c3RlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+IkFicmlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+Ikd1YXJkYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IkNvbXBhcnRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IkVsaW1pbmFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+IlNlbGVjY2lvbmFkbzogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiJQb3Igbm9tYnJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4iUG9yIGZlY2hhIGRlIG1vZGlmaWNhY2nDs24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4iUG9yIHRhbWHDsW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJNb3N0cmFyIHJhw61jZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4iT2N1bHRhciByYcOtY2VzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiJFcnJvciBhbCBndWFyZGFyIGRvY3VtZW50byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiJFcnJvciBhbCBjcmVhciBsYSBjYXJwZXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iRXJyb3IgYWwgY29uc3VsdGFyIGxpc3RhIGRlIGRvY3VtZW50b3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiJSZWNpZW50ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiBkZSBlc3BhY2lvIGxpYnJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4iU2VydmljaW9zIGFsbWFjZW5hbWllbnRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IkFjY2Vzb3MgZGlyZWN0b3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+IkRpc3Bvc2l0aXZvcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+Ik3DoXMgYXBsaWNhY2lvbmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4iTW9zdHJhciBkaXNwb3NpdGl2b3MgYXZhbnphZG9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4iTW9zdHJhciB0YW1hw7FvIGRlbCBhcmNoaXZvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiJNb3N0cmFyIHRhbWHDsW8gZGVsIGRpc3Bvc2l0aXZvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4iU2luIGVsZW1lbnRvcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+IkVycm9yIGFsIGFicmlyIGVsIGFyY2hpdm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+Ik5vIGVzIHBvc2libGUgZWxpbWluYXIgYWxndW5vcyBkb2N1bWVudG9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IkNvbXBhcnRpciBhIHRyYXbDqXMgZGUiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1ldC1yRUUvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQxMjk1NgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IkRva3VtZW5kaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+IkF2YToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IlNhbHZlc3RhOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiJMb28ga2F1c3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iUnV1ZHVzdGlra3V2YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiJMb2VuZGlrdXZhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IlNvcnRpbWlzYWx1czoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJPdHNpbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IlNlYWRlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+IkF2YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiJTYWx2ZXN0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4iSmFnYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+Ikt1c3R1dGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiBvbiB2YWxpdHVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+Ik5pbWUgasOkcmdpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4iTXV1dG1pc2t1dXDDpGV2YSBqw6RyZ2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4iU3V1cnVzZSBqw6RyZ2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJLdXZhIGp1dXJlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiJQZWlkYSBqdXVyZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IkRva3VtZW5kaSBzYWx2ZXN0YW1pbmUgZWJhw7VubmVzdHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+IkthdXN0YSBsb29taW5lIGViYcO1bm5lc3R1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1ZXJ5X2Vycm9yIiBtc2dpZD0iMTIyMjQ0ODI2MTY2MzUwMzUwMSI+IkRva3VtZW50aWRlIHDDpHJpbmcgZWJhw7VubmVzdHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4iSGlsanV0aXNlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiBvbiB2YWJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4iTcOkbHVydXVtaSB0ZWVudXNlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiJPdHNldGVlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4iU2VhZG1lZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IlJvaGtlbSByYWtlbmR1c2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiJLdXZhIHRpcHBzZWFkbWVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4iS3V2YSBmYWlsaSBzdXVydXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+Ikt1dmEgc2VhZG1lIHN1dXJ1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+IsOca3N1c2kgZWkgb2xlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4iRmFpbGkgZWkgc2FhIGF2YWRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiJNw7VuZGEgZG9rdW1lbnRpIGVpIMO1bm5lc3R1IGt1c3R1dGFkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiJKYWdhZ2UgdGVlbnVzZWdhIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWZhL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1mYS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTIyYjM3Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1mYS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiLYp9iz2YbYp9ivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiLYqNin2LIg2qnYsdiv2YYg2KfYsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4i2LDYrtuM2LHZhyDYr9ixIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+Itin24zYrNin2K8g2b7ZiNi02YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4i2YbZhdin24wg2KzYr9mI2YTbjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiLZhtmF2KfbjCDZgdmH2LHYs9iq4oCM2YjYp9ixIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+ItmF2LHYqtio4oCM2LPYp9iy24wg2KjYsSDYp9iz2KfYsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+Itis2LPYqtis2YgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+Itiq2YbYuNuM2YXYp9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4i2KjYp9iyINqp2LHYr9mGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+Itiw2K7bjNix2YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+Itin2LTYqtix2KfaqeKAjNqv2LDYp9ix24wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZSIgbXNnaWQ9IjgxMzg3OTk2MjM4NTA2MTQxNzciPiLYrdiw2YEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiDYp9mG2KrYrtin2Kgg2LTYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiLYqNixINin2LPYp9izINmG2KfZhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+Itio2LEg2KfYs9in2LMg2KrYp9ix24zYriDYp9i12YTYp9itIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+Itio2LEg2KfYs9in2LMg2KfZhtiv2KfYstmHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4i2YbZhdin24zYtCDYsduM2LTZh+KAjNmH2KciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4i2b7ZhtmH2KfZhiDaqdix2K/ZhiDYsduM2LTZh+KAjNmH2KciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+Itiw2K7bjNix2Ycg2LPZhtivINin2YbYrNin2YUg2YbYtNivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+Itin24zYrNin2K8g2b7ZiNi02Ycg2KfZhtis2KfZhSDZhti02K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLYrNiz2KrYrNmI24wg2KfYs9mG2KfYryDZhtin2YXZiNmB2YIg2KjZiNivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4i2KfYrtuM2LEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4g2KLYstin2K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiLYrtiv2YXYp9iqINiw2K7bjNix2YfigIzYs9in2LLbjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiLZhduM2KfZhtio2LHZh9inIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiLYr9iz2Krar9in2YfigIzZh9inIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4i2KjYsdmG2KfZhdmH4oCM2YfYp9uMINio24zYtNiq2LEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiLZhtmF2KfbjNi0INiv2LPYqtqv2KfZh+KAjNmH2KfbjCDZvtuM2LTYsdmB2KrZhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+ItmG2YXYp9uM2LQg2KfZhtiv2KfYstmHINmB2KfbjNmEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiLZhtmF2KfbjNi0INin2YbYr9in2LLZhyDYtdmB2K3ZhyDZhtmF2KfbjNi0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4i2YXZiNix2K/bjCDZhdmI2KzZiNivINmG24zYs9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4i2YHYp9uM2YQg2KjYp9iyINmG2YXbjOKAjNi02YjYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4i2KjYsdiu24wg2KfYsiDYp9iz2YbYp9ivINit2LDZgSDZhtmF24zigIzYtNmI2YbYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiLYp9i02KrYsdin2qnigIzar9iw2KfYsduMINin2LIg2LfYsduM2YIiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZmkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWZpL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlNDBlY2QKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWZpL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IkFzaWFraXJqYXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+IkF2b2lubmEgYWxrYWVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfc2F2ZSIgbXNnaWQ9IjI0MzM2Nzk2NjQ4ODI4NTc5OTkiPiJUYWxsZW5uYSBrb2h0ZWVzZWVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+Ikx1byBrYW5zaW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iUnV1ZHVra29uw6RreW3DpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiJMdWV0dGVsb27DpGt5bcOkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+Ikxhaml0dGVsdXBlcnVzdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJIYWt1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiJBc2V0dWtzZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiJBdmFhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+IlRhbGxlbm5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zaGFyZSIgbXNnaWQ9IjMwNzUxNDk5ODM5Nzk2MjgxNDYiPiJKYWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZSIgbXNnaWQ9IjgxMzg3OTk2MjM4NTA2MTQxNzciPiJQb2lzdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiB2YWxpdHR1YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiJOaW1lbiBtdWthYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiJNdW9ra2F1c3DDpGl2w6RuIG11a2FhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiJLb29uIG11a2FhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+Ik7DpHl0w6QganV1cmV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IlBpaWxvdGEganV1cmV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiJBc2lha2lyamFuIHRhbGxlbm51cyBlcMOkb25uaXN0dWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4iS2Fuc2lvbiBsdW9taW5lbiBlcMOkb25uaXN0dWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiJEb2t1bWVudHRpa3lzZWx5IGVww6Rvbm5pc3R1aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+IlZpaW1laXNpbW3DpHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4gdmFwYWFuYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zZXJ2aWNlIiBtc2dpZD0iMjE3ODg1NDg5NDQxNjc3NTQwOSI+IlRhbGxlbm51c3BhbHZlbHV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IlBpa2FrdXZha2tlZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+IkxhaXR0ZWV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4iTGlzw6TDpCBzb3ZlbGx1a3NpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+Ik7DpHl0w6Qga2VoaXR0eW5lZXQgbGFpdHRlZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJOw6R5dMOkIHRpZWRvc3RvbiBrb2tvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiJOw6R5dMOkIGxhaXR0ZWVuIGtva28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiJFaSBrb2h0ZWl0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+IlRpZWRvc3RvYSBlaSB2b2kgYXZhdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+IkpvaXRha2luIGFzaWFraXJqb2phIGVpIHZvaSBwb2lzdGFhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IkphYSBzb3ZlbGx1a3Nlc3NhIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4MzczNzkKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiJEb2N1bWVudHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+Ik91dmVydCDDoCBwYXJ0aXIgZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IkVucmVnaXN0cmVyIGRhbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4iQ3LDqWVyIHVuIGRvc3NpZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iR3JpbGxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+Ikxpc3RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IlRyaWVyIHBhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IlJlY2hlcmNoZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IlBhcmFtw6h0cmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4iT3V2cmlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+IkVucmVnaXN0cmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zaGFyZSIgbXNnaWQ9IjMwNzUxNDk5ODM5Nzk2MjgxNDYiPiJQYXJ0YWdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IlN1cHByaW1lciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+wqBzw6lsZWN0aW9ubsOpKHMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+IlBhciBub20iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiJQYXIgZGF0ZSBkZSBtb2RpZmljYXRpb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4iUGFyIHRhaWxsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IkFmZmljaGVyIGxlcyByYWNpbmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+Ik1hc3F1ZXIgbGVzIHJhY2luZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IsOJY2hlYyBkZSBsXCdlbnJlZ2lzdHJlbWVudCBkdSBkb2N1bWVudCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiLDiWNoZWMgZGUgbGEgY3LDqWF0aW9uIGR1IGRvc3NpZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLDiWNoZWMgZGUgbGEgZGVtYW5kZSBkZSBkb2N1bWVudCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+IlLDqWNlbnRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+wqBkaXNwb25pYmxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4iU2VydmljZXMgZGUgc3RvY2thZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4iUmFjY291cmNpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4iQXBwYXJlaWxzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4iUGx1cyBkXCdhcHBsaWNhdGlvbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiJBZmZpY2hlciBsZXMgYXBwYXJlaWxzIGF2YW5jw6lzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4iQWZmaWNoZXIgbGEgdGFpbGxlIGR1IGZpY2hpZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+IlRhaWxsZSBkZSBsXCfDqWNyYW4gZGUgbFwnYXBwYXJlaWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiJBdWN1biDDqWzDqW1lbnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJJbXBvc3NpYmxlIGRcJ291dnJpciBsZSBmaWNoaWVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiJJbXBvc3NpYmxlIGRlIHN1cHByaW1lciBjZXJ0YWlucyBkb2N1bWVudHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4iUGFydGFnZXIgcGFyIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWZyL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1mci9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjlhZWRhCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1mci9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiJEb2N1bWVudHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+Ik91dnJpciDDoCBwYXJ0aXIgZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IkVucmVnaXN0cmVyIHNvdXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4iQ3LDqWVyIHVuIGRvc3NpZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iR3JpbGxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+Ikxpc3RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IlRyaWVyIHBhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IlJlY2hlcmNoZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IlBhcmFtw6h0cmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4iT3V2cmlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+IkVucmVnaXN0cmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zaGFyZSIgbXNnaWQ9IjMwNzUxNDk5ODM5Nzk2MjgxNDYiPiJQYXJ0YWdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IlN1cHByaW1lciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+wqDDqWzDqW1lbnQocykgc8OpbGVjdGlvbm7DqShzKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiJQYXIgbm9tIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4iUGFyIGRhdGUgZGUgbW9kaWZpY2F0aW9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IlBhciB0YWlsbGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJBZmZpY2hlciBsZXMgcsOpcGVydG9pcmVzIHJhY2luZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4iTWFzcXVlciBsZXMgcsOpcGVydG9pcmVzIHJhY2luZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IsOJY2hlYyBkZSBsXCdlbnJlZ2lzdHJlbWVudCBkdSBkb2N1bWVudC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4iw4ljaGVjIGRlIGxhIGNyw6lhdGlvbiBkdSBkb3NzaWVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1ZXJ5X2Vycm9yIiBtc2dpZD0iMTIyMjQ0ODI2MTY2MzUwMzUwMSI+IsOJY2hlYyBkZSBsYSBkZW1hbmRlIGRlIGRvY3VtZW50cy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiJSw6ljZW50cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+IkVzcGFjZSBkaXNwb25pYmxlwqA6IDx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zZXJ2aWNlIiBtc2dpZD0iMjE3ODg1NDg5NDQxNjc3NTQwOSI+IlNlcnZpY2VzIGRlIHN0b2NrYWdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IlJhY2NvdXJjaXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+IkFwcGFyZWlscyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IkF1dHJlcyBhcHBsaWNhdGlvbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiJBZmZpY2hlciBsZXMgYXBwYXJlaWxzIGF2YW5jw6lzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4iQWZmaWNoZXIgbGEgdGFpbGxlIGRlcyBmaWNoaWVycyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4iQWZmaWNoZXIgbGEgY2FwYWNpdMOpIGRlIHN0b2NrYWdlIGRlcyBhcHBhcmVpbHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiJBdWN1biDDqWzDqW1lbnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJJbXBvc3NpYmxlIGRcJ291dnJpciBsZSBmaWNoaWVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4iSW1wb3NzaWJsZSBkZSBzdXBwcmltZXIgY2VydGFpbnMgZG9jdW1lbnRzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiJQYXJ0YWdlciB2aWEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkN2ZjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IuCkpuCkuOCljeCkpOCkvuCkteClh+CknOCkvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4i4KSv4KS54KS+4KSCIOCkuOClhyDgpJbgpYvgpLLgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IuCkr+CkueCkvuCkgiDgpLjgpLngpYfgpJzgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4i4KSr4KS84KWL4KSy4KWN4KSh4KSwIOCkrOCkqOCkvuCkj+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiLgpJfgpY3gpLDgpL/gpKEg4KSm4KWD4KS24KWN4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+IuCkuOClguCkmuClgCDgpKbgpYPgpLbgpY3gpK8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4i4KSH4KS44KS44KWHIOCkleCljeCksOCkruCkv+CkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiLgpJbgpYvgpJzgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IuCkuOClh+Ckn+Ckv+CkguCklyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+IuCkluCli+CksuClh+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiLgpLjgpLngpYfgpJzgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IuCkuOCkvuCkneCkviDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZSIgbXNnaWQ9IjgxMzg3OTk2MjM4NTA2MTQxNzciPiLgpLngpJ/gpL7gpI/gpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiDgpJrgpK/gpKjgpL/gpKQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4i4KSo4KS+4KSuIOCkleClhyDgpIXgpKjgpYHgpLjgpL7gpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiLgpKzgpKbgpLLgpL7gpLUg4KSV4KWHIOCkpuCkv+CkqOCkvuCkguCklSDgpJXgpYcg4KSF4KSo4KWB4KS44KS+4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IuCkhuCkleCkvuCksCDgpJXgpYcg4KSF4KSo4KWB4KS44KS+4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4i4KSw4KWC4KSfIOCkpuCkv+CkluCkvuCkj+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiLgpLDgpYLgpJ8g4KSb4KS/4KSq4KS+4KSP4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiLgpKbgpLjgpY3gpKTgpL7gpLXgpYfgpJzgpLwg4KS44KS54KWH4KSc4KSo4KWHIOCkruClh+CkgiDgpLXgpL/gpKvgpLIg4KSw4KS54KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+IuCkq+CkvOCli+CksuCljeCkoeCksCDgpKzgpKjgpL7gpKjgpYcg4KSu4KWH4KSCIOCkteCkv+Ckq+CksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1ZXJ5X2Vycm9yIiBtc2dpZD0iMTIyMjQ0ODI2MTY2MzUwMzUwMSI+IuCkpuCkuOCljeCkpOCkvuCkteClh+CknOCli+CkgiDgpJXgpYcg4KSy4KS/4KSPIOCkleCljeCkteClh+CksOClgCDgpJXgpLDgpKjgpYcg4KSu4KWH4KSCIOCkteCkv+Ckq+CksiDgpLDgpLngpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiLgpLngpL7gpLIg4KS54KWAIOCkleClhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiDgpLDgpL/gpJXgpY3gpKQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiLgpLjgpILgpJfgpY3gpLDgpLngpKMg4KS44KWH4KS14KS+4KSP4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IuCktuClieCksOCljeCkn+CkleCknyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4i4KSJ4KSq4KSV4KSw4KSjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4i4KSF4KSn4KS/4KSVIOCkkOCkquCljeCkuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+IuCkieCkqOCljeCkqOCkpCDgpIngpKrgpJXgpLDgpKPgpYvgpIIg4KSV4KWLIOCkpuCkv+CkluCkvuCkj+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+IuCkq+CkvOCkvuCkh+CksiDgpJXgpL4g4KSG4KSV4KS+4KSwIOCkpuCkv+CkluCkvuCkj+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4i4KSJ4KSq4KSV4KSw4KSjIOCkleCkviDgpIbgpJXgpL7gpLAg4KSm4KS/4KSW4KS+4KSP4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4i4KSV4KWL4KSIIOCkhuCkh+Ckn+CkriDgpKjgpLngpYDgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiLgpKvgpLzgpL7gpIfgpLIg4KSo4KS54KWA4KSCIOCkluCli+CksuClgCDgpJzgpL4g4KS44KSV4KSk4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiLgpJXgpYHgpJsg4KSm4KS44KWN4KSk4KS+4KS14KWH4KSc4KS84KWL4KSCIOCkleCliyDgpLngpJ/gpL7gpKjgpYcg4KSu4KWH4KSCIOCkheCkleCljeCkt+CkriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiLgpIfgpLjgpJXgpYcg4KSm4KWN4KS14KS+4KSw4KS+IOCkuOCkvuCkneCkviDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtaHIvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWhyL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczYzJmMDQKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWhyL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IkRva3VtZW50aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4iT3R2b3JpIGl6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfc2F2ZSIgbXNnaWQ9IjI0MzM2Nzk2NjQ4ODI4NTc5OTkiPiJTcHJlbWkgdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiJJenJhZGkgbWFwdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJQcmlrYXogcmXFoWV0a2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iUHJpa2F6IHBvcGlzYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiJQb3JlZGFubyBwbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IlByZXRyYcW+aXZhbmplIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiJQb3N0YXZrZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+Ik90dmFyYW5qZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiJTcHJlbWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IkRpamVsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+Ikl6YnJpxaFpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+Ik9kYWJyYW5vOiA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+IlBvIGtvcmlzbmlrdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IlBvIGRhdHVtdSBpem1qZW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IlBvIHZlbGnEjWluaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IlByaWthxb5pIGtvcmlqZW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IlNha3JpaiBrb3JpamVuZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4iTmlqZSB1c3BqZWxvIHNwcmVtYW5qZSBkb2t1bWVudGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4iSXpyYWRhIG1hcGUgbmlqZSB1c3BqZWxhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iVHJhxb5lbmplIGRva3VtZW5hdGEgbmlqZSB1c3BqZWxvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4iTmVkYXZubyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiBiZXNwbGF0bm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiJVc2x1Z2UgcG9ocmFuZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiJQcmXEjWFjaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4iVXJlxJFhamkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiJWacWhZSBhcGxpa2FjaWphIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4iUHJpa2HFvmkgbmFwcmVkbmUgdXJlxJFhamUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJQcmlrYcW+aSB2ZWxpxI1pbnUgZGF0b3Rla2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+IlByaWthxb5pIHZlbGnEjWludSB1cmXEkWFqYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+Ik5lbWEgc3RhdmtpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4iRGF0b3Rla3UgbmlqZSBtb2d1xIdlIG90dm9yaXRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiJOaWplIG1vZ3XEh2UgaXpicmlzYXRpIG5la2UgZG9rdW1lbnRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IkRpamVsaSBwdXRlbSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1odS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtaHUvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI3ODU0YgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtaHUvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4iRG9rdW1lbnR1bW9rIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiJNZWdueWl0w6FzIGlubmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfc2F2ZSIgbXNnaWQ9IjI0MzM2Nzk2NjQ4ODI4NTc5OTkiPiJNZW50w6lzIGlkZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiJNYXBwYSBsw6l0cmVob3rDoXNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9ncmlkIiBtc2dpZD0iNjg3ODAyMTMzNDQ5NzgzNTI1OSI+IlLDoWNzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+Ikxpc3RhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IlJlbmRlesOpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IktlcmVzw6lzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiJCZcOhbGzDrXTDoXNvayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+Ik1lZ255aXTDoXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4iTWVudMOpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4iTWVnb3N6dMOhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IlTDtnJsw6lzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4ga2l2w6FsYXN6dHZhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+Ik7DqXYgc3plcmludCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+Ik3Ds2Rvc8OtdMOhcyBkw6F0dW1hIHN6ZXJpbnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4iTcOpcmV0IHN6ZXJpbnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJHecO2a8OpcnN6aW50IG1lZ2plbGVuw610w6lzZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiJHecO2a8OpcnN6aW50IGVscmVqdMOpc2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+Ik5lbSBzaWtlcsO8bHQgbWVudGVuaSBhIGRva3VtZW50dW1vdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiJOZW0gc2lrZXLDvGx0IGzDqXRyZWhvem5pIGEgbWFwcMOhdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1ZXJ5X2Vycm9yIiBtc2dpZD0iMTIyMjQ0ODI2MTY2MzUwMzUwMSI+IkEgZG9rdW1lbnR1bW9rIGxla8OpcsOpc2UgbmVtIHNpa2Vyw7xsdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+IkxlZ3V0w7NiYmlhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiBzemFiYWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiJUw6FyaGVseXN6b2xnw6FsdGF0w6Fzb2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4iUGFyYW5jc2lrb25vayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4iRXN6a8O2esO2ayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IlRvdsOhYmJpIGFsa2FsbWF6w6Fzb2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiJTcGVjacOhbGlzIGVzemvDtnrDtmsgbWVnamVsZW7DrXTDqXNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4iRsOhamxtw6lyZXQgbWVnamVsZW7DrXTDqXNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiJFc3prw7Z6bcOpcmV0IG1lZ2plbGVuw610w6lzZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+Ik5pbmNzZW5layBlbGVtZWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJBIGbDoWpsdCBuZW0gbGVoZXQgbWVnbnlpdG5pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiJOw6low6FueSBkb2t1bWVudHVtb3QgbmVtIGxlaGV0IHTDtnLDtmxuaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiJNZWdvc3p0w6FzIGl0dDoiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzY4M2YzZQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+ItWT1aHVvdW/1aHVqdWy1anVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiLUstWh1oHVpdWsINWh1bXVvdW/1aXVstWr1oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+ItWK1aHVsNWl1awg1aHVtdW91b/VpdWyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+ItWN1b/VpdWy1a7VpdWsINWp1bLVqdWh1brVodW21aHVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiLVkdWh1bbWgdWh1bXVq9W2INW/1aXVvdaEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+ItWR1bjWgtaB1aHVr9WrINW/1aXVvdaEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+ItS01aHVvdWh1b7VuNaA1aXVrCDVqNW91b8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiLViNaA1bjVttWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+ItS/1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiLUstWh1oHVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+ItWK1aHVsNWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+ItWA1aHVtNaF1aPVv9Wh1aPVuNaA1a7VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4i1YvVttW71aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+INWo1bbVv9aA1b7VodWuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+ItS41b3VvyDVodW21b7VodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4i1LjVvdW/INaD1bjWg9W41a3VtNWh1bYg1aHVtNW91aHVqdW+1asiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4i1LjVvdW/INW51aHWg9WrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4i1ZHVuNaC1bXWgSDVv9Wh1awg1aHWgNW01aHVv9W21aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+ItS51aHWhNaB1bbVpdWsINWh1oDVtNWh1b/VttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4i1YnVsNWh1bvVuNWy1b7VpdaBINW61aHVsNWl1awg1oPVodW91b/VodWp1bjWgtWy1anVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiLVidWw1aHVu9W41bLVvtWl1oEg1b3Vv9Wl1bLVrtWl1awg1anVstWp1aHVutWh1bbVodWv1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLVk9Wh1b3Vv9Wh1anVstWp1aXWgNWr1bYg1bDVodaA1oHVuNaC1bQg1a/VodW/1aHWgNWl1azVq9W9INW91a3VodWsINW/1aXVstWrINW41oLVttWl1oHVodW+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4i1Y7VpdaA1bvVq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+INWh1abVodW/INWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4i1YrVodWw1bjWgtW91b/VqyDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bbVttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4i1LTVtdW41oLWgNWh1bbWgdW41oLVtNW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4i1Y3VodaA1oTVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4i1YDVodW+1aXVrNW11aHVrCDVrtaA1aHVo9aA1aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+ItWR1bjWgtaB1aHVpNaA1aXVrCDVqNW21aTVrNWh1bXVttW+1aHVriDVvdWh1oDWhNWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+ItWR1bjWgtaB1aHVpNaA1aXVrCDWhtWh1bXVrNWrINW51aHWg9WoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiLVkdW41oLWgdWh1aTWgNWl1awg1b3VodaA1oTVqyDVudWh1oPVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+ItWP1aHWgNaA1aXWgCDVudWv1aHVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+ItWA1bbVodaA1aHVvtW41oAg1bnVpyDVotWh1oHVpdWsINaG1aHVtdWs1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+ItSx1bbVsNW21aHWgCDVpyDVu9W21bvVpdWsINW41oDVuNW3INaD1aHVvdW/1aHVqdWy1anVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+ItWP1aHWgNWh1a7VpdWsIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWluL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1pbi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTliOTM2Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1pbi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiJEb2t1bWVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiJCdWthIGRhcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IlNpbXBhbiBrZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiJCdWF0IGZvbGRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJUYW1waWxhbiBraXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+IlRhbXBpbGFuIGRhZnRhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiJTb3J0aXIgbWVudXJ1dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IlRlbHVzdXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiJTZXRlbGFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4iQnVrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiJTaW1wYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IkJhZ2lrYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZSIgbXNnaWQ9IjgxMzg3OTk2MjM4NTA2MTQxNzciPiJIYXB1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+IGRpcGlsaWgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iTWVudXJ1dCBuYW1hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4iTWVudXJ1dCB0YW5nZ2FsIGRpdWJhaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiJNZW51cnV0IHVrdXJhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IlRhbXBpbGthbiBha2FyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IlNlbWJ1bnlpa2FuIGFrYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IkdhZ2FsIG1lbnlpbXBhbiBkb2t1bWVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+IkdhZ2FsIG1lbWJ1YXQgZm9sZGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iR2FnYWwgbWVuZ2lyaW0ga3VlcmkgdW50dWsgZG9rdW1lbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+IlRlcmtpbmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4gYmViYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiJMYXlhbmFuIHBlbnlpbXBhbmFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IlBpbnRhc2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJQZXJhbmdrYXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiJBcGxpa2FzaSBsYWluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4iVGFtcGlsa2FuIHBlcmFuZ2thdCBsYW5qdXRhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+IlRhbXBpbGthbiB1a3VyYW4gZmlsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4iVGFtcGlsa2FuIHVrdXJhbiBwZXJhbmdrYXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiJUaWRhayBhZGEgaXRlbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+IlRpZGFrIGRhcGF0IG1lbWJ1a2EgZmlsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4iVGlkYWsgZGFwYXQgbWVuZ2hhcHVzIGJlYmVyYXBhIGRva3VtZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4iQmFnaWthbiBtZWxhbHVpIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWl0L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1pdC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODMyM2I2Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1pdC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiJEb2N1bWVudGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+IkFwcmkgZGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IlNhbHZhIGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+IkNyZWEgY2FydGVsbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iVmlzdWFsaXp6YXppb25lIGdyaWdsaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iVmlzdWFsaXp6YXppb25lIGVsZW5jbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiJPcmRpbmEgcGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4iQ2VyY2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IkltcG9zdGF6aW9uaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+IkFwcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4iU2FsdmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IkNvbmRpdmlkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IkVsaW1pbmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiBzZWxlemlvbmF0aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiJQZXIgbm9tZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IlBlciBkYXRhIGRpIG1vZGlmaWNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IlBlciBkaW1lbnNpb25pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4iTW9zdHJhIG5vZGkgcHJpbmNpcGFsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiJOYXNjb25kaSBub2RpIHByaW5jaXBhbGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IkltcG9zc2liaWxlIHNhbHZhcmUgaWwgZG9jdW1lbnRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+IkltcG9zc2liaWxlIGNyZWFyZSBsYSBjYXJ0ZWxsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1ZXJ5X2Vycm9yIiBtc2dpZD0iMTIyMjQ0ODI2MTY2MzUwMzUwMSI+IkltcG9zc2liaWxlIGNoaWVkZXJlIGRvY3VtZW50aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+IlJlY2VudGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4gbGliZXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4iU2Vydml6aSBkaSBhcmNoaXZpYXppb25lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IlNjb3JjaWF0b2llIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJEaXNwb3NpdGl2aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IkFsdHJlIGFwcCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+IlZpc3VhbGl6emEgZGlzcG9zaXRpdmkgYXZhbnphdGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJWaXN1YWxpenphIGRpbWVuc2lvbmkgZmlsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4iVmlzdWFsaXp6YSBkaW1lbnNpb25pIGRpc3Bvc2l0aXZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4iTmVzc3VuIGFydGljb2xvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4iSW1wb3NzaWJpbGUgYXByaXJlIGlsIGZpbGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+IkltcG9zc2liaWxlIGVsaW1pbmFyZSBhbGN1bmkgZG9jdW1lbnRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IkNvbmRpdmlkaSB2aWEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtaXcvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWl3L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxMmMwNjAKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWl3L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+Itee16HXnteb15nXnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4i16TXqteXINeeLSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4i16nXnteV16gg15EtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+Item15XXqCDXqteZ16fXmdeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9ncmlkIiBtc2dpZD0iNjg3ODAyMTMzNDQ5NzgzNTI1OSI+Iteq16bXldeS16og16jXqdeqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+Iteq16bXldeS16og16jXqdeZ157XlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiLXnteZ15nXnyDXnNek15kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiLXl9ek16kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IteU15LXk9eo15XXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+Itek16rXlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiLXqdee15XXqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4i16nXqtejIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4i157Xl9enIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4g16DXkdeX16jXlSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiLXnNek15kg16nXnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+Itec16TXmSDXqteQ16jXmdeaINep15nXoNeV15kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4i15zXpNeZINeS15XXk9ecIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4i15TXpteSINep15XXqNep15nXnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiLXlNeh16rXqCDXqdeV16jXqdeZ150iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+Itep157Xmdeo16og15TXnteh157XmiDXoNeb16nXnNeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+IteZ16bXmdeo16og15TXqteZ16fXmdeUINeg15vXqdec15QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLXqdeQ15nXnNeq16og15TXnteh157Xm9eZ150g16DXm9ep15zXlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+Itee15TXltee158g15TXkNeX16jXldefIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+INep15wg16nXmNeXINek16DXldeZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4i16nXmdeo15XXqteZINeQ15fXodeV158iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4i16fXmdem15XXqNeZINeT16jXmiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4i157Xm9ep15nXqNeZ150iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiLXoteV15Mg15DXpNec15nXp9em15nXldeqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4i15TXpteSINee15vXqdeZ16jXmdedINee16rXp9eT157XmdedIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4i15TXpteSINeQ16og15LXldeT15wg15TXp9eV15HXpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4i15TXpteSINeQ16og15LXldeT15wg15TXnteb16nXmdeoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4i15DXmdefINek16jXmdeY15nXnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+Itec15Ag16DXmdeq158g15zXpNeq15XXlyDXkNeqINeU16fXldeR16UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+Itec15Ag16DXmdeq158g15zXnteX15XXpyDXl9ec16cg157XlNee16HXnteb15nXnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiLXqdeq16Mg15HXkNee16bXoteV16oiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtamEvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWphL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5NjQ5NmQKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWphL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IuODieOCreODpeODoeODs+ODiCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4i5qyh44GL44KJ6ZaL44GPOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4i5qyh44Gr5L+d5a2YOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiLjg5Xjgqnjg6vjg4DjgpLkvZzmiJAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4i44Kw44Oq44OD44OJ6KGo56S6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+IuODquOCueODiOihqOekuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiLkuKbjgbnmm7/jgYgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiLmpJzntKIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IuioreWumiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+IumWi+OBjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiLkv53lrZgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IuWFseaciSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IuWJiumZpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+5Lu26YG45oqe5riI44G/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+IuWQjeWJjemghiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IuabtOaWsOaXpemghiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiLjgrXjgqTjgrrpoIYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiLjg6vjg7zjg4jjgpLooajnpLrjgZnjgosiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4i44Or44O844OI44KS6Z2e6KGo56S644Gr44GZ44KLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiLjg4njgq3jg6Xjg6Hjg7Pjg4jjgpLkv53lrZjjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4i44OV44Kp44Or44OA44KS5L2c5oiQ44Gn44GN44G+44Gb44KT44Gn44GX44GfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4i44OJ44Kt44Ol44Oh44Oz44OI44Gu44Kv44Ko44Oq44Gr5aSx5pWX44GX44G+44GX44GfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4i5pyA6L+RIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4i56m644GN5a656YePOiA8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiLjgrnjg4jjg6zjg7zjgrjjgrXjg7zjg5PjgrkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4i44K344On44O844OI44Kr44OD44OIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiLnq6/mnKsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiLjgZ3jga7ku5bjga7jgqLjg5fjg6oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiLnq6/mnKvjga7oqbPntLDoqK3lrprjgpLooajnpLoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiLjg5XjgqHjgqTjg6vjga7jgrXjgqTjgrrjgpLooajnpLoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+Iuerr+acq+OBruOCteOCpOOCuuOCkuihqOekuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+IuOCouOCpOODhuODoOOBjOOBguOCiuOBvuOBm+OCkyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+IuODleOCoeOCpOODq+OCkumWi+OBkeOBvuOBm+OCkyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4i5LiA6YOo44Gu44OJ44Kt44Ol44Oh44Oz44OI44KS5YmK6Zmk44Gn44GN44G+44Gb44KTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IuWFseacieODhOODvOODqyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWthLXJHRS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mM2UxMjc0Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4i4YOT4YOd4YOZ4YOj4YOb4YOU4YOc4YOi4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiLhg5Lhg5Dhg67hg6Hhg5zhg5Ag4YOQ4YOl4YOU4YOT4YOQ4YOcOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4i4YOo4YOU4YOc4YOQ4YOu4YOV4YOQIOGDkOGDpToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4i4YOh4YOQ4YOl4YOQ4YOm4YOQ4YOa4YOT4YOY4YOhIOGDqOGDlOGDpeGDm+GDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiLhg5Hhg5Dhg5Phg5jhg6Eg4YOu4YOU4YOT4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+IuGDoeGDmOGDmOGDoSDhg67hg5Thg5Phg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4i4YOh4YOd4YOg4YOi4YOY4YOg4YOU4YOR4YOQOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IuGDq+GDmOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4i4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4i4YOS4YOQ4YOu4YOh4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+IuGDqOGDlOGDnOGDkOGDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4i4YOS4YOQ4YOW4YOY4YOQ4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4i4YOs4YOQ4YOo4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4g4YOb4YOd4YOc4YOY4YOo4YOc4YOj4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+IuGDoeGDkOGDruGDlOGDmuGDmOGDlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IuGDquGDleGDmuGDmOGDmuGDlOGDkeGDmOGDoSDhg5fhg5Dhg6Dhg5jhg6bhg5jhg5ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4i4YOW4YOd4YOb4YOY4YOXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4i4YOk4YOU4YOh4YOV4YOU4YOR4YOY4YOhIOGDqeGDleGDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiLhg6Thg5Thg6Hhg5Xhg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOb4YOQ4YOa4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiLhg5Phg53hg5nhg6Phg5vhg5Thg5zhg6Lhg5jhg6Eg4YOo4YOU4YOc4YOQ4YOu4YOV4YOQIOGDleGDlOGDoCDhg5vhg53hg67hg5Thg6Dhg67hg5Phg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4i4YOh4YOQ4YOl4YOQ4YOm4YOQ4YOa4YOT4YOY4YOhIOGDqOGDlOGDpeGDm+GDnOGDkCDhg5Xhg5Thg6Ag4YOb4YOd4YOu4YOU4YOg4YOu4YOT4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4i4YOT4YOd4YOZ4YOj4YOb4YOU4YOc4YOi4YOU4YOR4YOW4YOUIOGDm+GDneGDl+GDruGDneGDleGDnOGDkCDhg5Xhg5Thg6Ag4YOS4YOQ4YOY4YOS4YOW4YOQ4YOV4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4i4YOR4YOd4YOa4YOdIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+IOGDl+GDkOGDleGDmOGDoeGDo+GDpOGDkOGDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zZXJ2aWNlIiBtc2dpZD0iMjE3ODg1NDg5NDQxNjc3NTQwOSI+IuGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDmOGDoSDhg6Hhg5Thg6Dhg5Xhg5jhg6Hhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4i4YOb4YOQ4YOa4YOh4YOQ4YOu4YOb4YOd4YOR4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiLhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiLhg5vhg5Thg6Lhg5gg4YOQ4YOe4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4i4YOZ4YOd4YOb4YOe4YOa4YOU4YOl4YOh4YOj4YOg4YOYIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDlOGDkeGDmOGDoSDhg6nhg5Xhg5Thg5zhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiLhg6Thg5Dhg5jhg5rhg5jhg6Eg4YOW4YOd4YOb4YOY4YOhIOGDqeGDleGDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4i4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOY4YOhIOGDluGDneGDm+GDmOGDoSDhg6nhg5Xhg5Thg5zhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiLhg5Thg6Dhg5fhg5Thg6Phg5rhg5Thg5Hhg5gg4YOQ4YOgIOGDkOGDoOGDmOGDoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+IuGDpOGDkOGDmOGDmuGDmOGDoSDhg5Lhg5Dhg67hg6Hhg5zhg5Ag4YOV4YOU4YOgIOGDruGDlOGDoOGDruGDk+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4i4YOW4YOd4YOS4YOY4YOU4YOg4YOX4YOYIOGDk+GDneGDmeGDo+GDm+GDlOGDnOGDouGDmOGDoSDhg6zhg5Dhg6jhg5rhg5Ag4YOV4YOU4YOgIOGDruGDlOGDoOGDruGDk+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiLhg5Lhg5Dhg5bhg5jhg5Dhg6Dhg5Thg5Hhg5A6Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwZjM2OTgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiLhnq/hnoDhnp/hnrbhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+IuGelOGevuGegOKAi+GeluGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4i4Z6a4Z6A4Z+S4Z6f4Z624oCL4Z6R4Z674Z6A4oCL4Z6R4Z+FIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+IuGelOGehOGfkuGegOGevuGej+KAi+GekOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiLhnpHhnrfhnorhn5LhnovhnpfhnrbhnpbigIvhnoDhn5LhnprhnqHhnrYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4i4Z6R4Z634Z6K4Z+S4Z6L4Z6X4Z624Z6W4oCL4Z6U4Z6J4Z+S4Z6H4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IuGej+GemOGfkuGemuGfgOGelOKAi+Gej+GetuGemCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IuGen+GfkuGenOGfguGehOGemuGegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4i4Z6A4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4i4Z6U4Z6+4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+IuGemuGegOGfkuGen+GetuGekeGeu+GegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4i4Z6F4Z+C4Z6A4Z6a4Z+G4Z6b4Z+C4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4i4Z6b4Z674Z6UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+IuGelOGetuGek+KAi+Geh+GfkuGemuGevuGenyA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+IuGej+GetuGemOKAi+GeiOGfkuGemOGfhOGfhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IuGej+GetuGemOKAi+GegOGetuGem+GelOGemuGet+GeheGfkuGehuGfgeGekeKAi+GelOGetuGek+KAi+GegOGfguGelOGfkuGemuGfgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiLhno/hnrbhnpjigIvigIvhnpHhn4bhnqDhn4YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiLhnpThnoThn5LhnqDhnrbhnokgcm9vdHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4i4Z6b4Z624Z6A4Z+LIHJvb3RzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiLhnpThnrbhnpPigIvhnpThnprhnrbhnofhn5DhnpnigIvhnoDhn5LhnpPhnrvhnoTigIvhnoDhnrbhnprigIvhnprhnoDhn5Lhnp/hnrbigIvhnpHhnrvhnoDigIvhnq/hnoDhnp/hnrbhnpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4i4Z6U4Z624Z6T4oCL4Z6U4Z6a4Z624Z6H4Z+Q4Z6Z4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6A4Z624Z6a4oCL4Z6U4Z6E4Z+S4Z6A4Z6+4Z6P4oCL4Z6Q4Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4i4Z6U4Z624Z6T4oCL4Z6U4Z6a4Z624Z6H4Z+Q4Z6Z4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6A4Z624Z6a4oCL4oCL4Z6F4Z+S4Z6a4Z+E4Z+H4oCL4Z6v4Z6A4Z6f4Z624Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4i4Z6Q4Z+S4Z6Y4Z644Z+XIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4i4Z6R4Z+G4Z6T4Z+B4Z6aIDx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zZXJ2aWNlIiBtc2dpZD0iMjE3ODg1NDg5NDQxNjc3NTQwOSI+IuGen+GfgeGenOGetuGegOGemOGfkuGemOKAi+GeleGfkuGeiuGem+Gfi+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GeleGfkuGekeGeu+GegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiLhnpXhn5LhnpvhnrzhnpzhnoDhnrbhno/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+IuGep+GelOGegOGemuGejuGfjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IuGegOGemOGfkuGemOKAi+GenOGet+GekuGeuOKAi+KAi+GeheGfkuGemuGevuGek+KAi+GekeGfgOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+IuGelOGehOGfkuGeoOGetuGeieKAi+Gep+GelOGegOGemuGejuGfjeKAi+GegOGemOGfkuGemuGet+Gej+KAi+GegeGfkuGeluGen+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+IuGelOGehOGfkuGeoOGetuGeieKAi+GekeGfhuGeoOGfhuKAi+Ger+GegOGen+GetuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4i4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6R4Z+G4Z6g4Z+G4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4i4Z6C4Z+S4Z6Y4Z624Z6T4Z6S4Z624Z6P4Z67Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4i4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6U4Z6+4Z6A4oCL4Z6v4Z6A4Z6f4Z624Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiLhnpjhnrfhnpPigIvhnqLhnrbhnoXigIvhnpvhnrvhnpTigIvhnq/hnoDhnp/hnrbhnprigIvhnpjhnr3hnpnigIvhnoXhn4bhnpPhnr3hnpMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4i4Z6F4Z+C4Z6A4Z6a4Z+G4Z6b4Z+C4Z6A4oCL4Z6P4Z624Z6YIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWtvL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1rby9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2QwZDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1rby9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiLrrLjshJwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+IuyXtOq4sDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IuyggOyepSDsnITsuZg6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+Iu2PtOuNlCDrp4zrk6TquLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4i67CU65GR7YyQ7IudIOuztOq4sCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiLrqqnroZ0g67O06riwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IuygleugrCDquLDspIAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiLqsoDsg4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IuyEpOyglSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+IuyXtOq4sCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiLsoIDsnqUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IuqzteycoCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IuyCreygnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+6rCcIOyEoO2DneuQqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiLsnbTrpoTsiJwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiLsiJjsoJXrkJwg64Kg7Kec7IicIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+Iu2BrOq4sOyInCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IuujqO2KuCDtkZzsi5wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4i66Oo7Yq4IOyIqOq4sOq4sCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4i66y47IScIOyggOyepSDsi6TtjKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4i7Y+0642U66W8IOunjOuTpOyngCDrqrvtlagiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLrrLjshJzrpbwg6rKA7IOJ7ZWY7KeAIOuqu+2WiOyKteuLiOuLpC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiLstZzqt7wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4g64Ko7J2MIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4i7KCA7J6l7Jqp65+JIOyEnOu5hOyKpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiLrsJTroZzqsIDquLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+Iuq4sOq4sCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IuyVsSDrjZTrs7TquLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiLqs6DquIkg6riw6riwIO2RnOyLnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+Iu2MjOydvCDtgazquLAg7ZGc7IucIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiLquLDquLAg7YGs6riwIO2RnOyLnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+Iu2VreuqqSDsl4bsnYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiLtjIzsnbzsnYQg7Je0IOyImCDsl4bsnYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+IuydvOu2gCDrrLjshJzrpbwg7IKt7KCc7ZWgIOyImCDsl4bsnYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4i6rO17JygIOuwqeuylSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWxvLXJMQS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTZmMzJmCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4i4LuA4Lqt4oCL4LqB4Lqw4oCL4Lqq4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiLgu4DgupvgurXgupTigIvguojgurLguoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IuC6muC6seC6meC6l+C6tuC6geC7hOC6m+C6l+C6teC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiLguqrgu4ngurLguofgu4Lgup/gupngu4DgupTgurUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4i4Lqh4Lq44Lqh4Lqh4Lqt4LqH4LuB4Lqa4Lqa4LqK4LuI4Lqt4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+IuC6oeC6uOC6oeC6oeC6reC6h+C7geC6muC6muC6peC6suC6jeC6iuC6t+C7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiLguq7gur3guofguqXgurPgupTgurHguprgupXgurLguqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiLguorguq3guoHguqvgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IuC6geC6suC6meC6leC6seC7ieC6h+C6hOC7iOC6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+IuC7gOC6m+C6teC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiLguprgurHgupngupfgurbguoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IuC7geC6muC7iOC6h+C6m+C6seC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IuC6peC6tuC6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiLgu4DguqXgurfguq3guoHgu4HguqXgu4nguqcgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiDguqXgurLguo3guoHgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4i4LqV4Lqy4Lqh4LqK4Lq34LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4i4LqV4Lqy4Lqh4Lqn4Lqx4LqZ4LqX4Lq14LqX4Lq14LuI4LuB4LqB4LuJ4LuE4LqCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IuC6leC6suC6oeC6guC6sOC7nOC6suC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IuC6quC6sOC7geC6lOC6hyByb290cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiLgu4Dguorgurfgu4jguq3guocgcm9vdHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IuC6geC6suC6meC6muC6seC6meC6l+C6tuC6geC7gOC6reC6geC6sOC6quC6suC6meC6peC6u+C7ieC6oeC7gOC6q+C6peC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiLguoHgurLgupnigIvguqrgu4ngurLguofigIvgu4Lgup/gupnigIvgu4DgupTgurXguqXgurvgu4nguqHgu4DguqvgurzguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLguoHgurLgupnguorguq3guoHguqvgurLgu4Dguq3guoHgurDguqrgurLgupnguqXgurvgu4nguqHgu4DguqvgurzguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiLguqvgurLguoHgu43gu4Pguorgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiLgup/guqPgurUgPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4i4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZ4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IuC6l+C6suC6h+C6peC6seC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4i4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4i4LuB4Lqt4Lqx4Lqa4Lqv4Lqt4Lq34LuI4LqZ4LuGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4i4Lqq4Lqw4LuB4LqU4LqH4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4LqC4Lqx4LuJ4LqZ4Lqq4Lq54LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4i4Lqq4Lqw4LuB4LqU4LqH4LqC4Lqw4Luc4Lqy4LqU4LuE4Lqf4Lql4LuMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiLguqrgurDgu4HgupTguofguoLgurDgu5zgurLgupTguq3gurjgupvgurDguoHguq3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiLguprgu43gu4jguqHgurXguqXgurLguo3guoHgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiLguprgu43gu4jguqrgurLguqHgupTgurLgu4DgupvgurXgupTgu4Tgup/guqXgu4zgu4TgupTgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+IuC6muC7jeC7iOC6quC6suC6oeC6suC6lOC6peC6tuC6muC6muC6suC6h+C7gOC6reC6geC6sOC6quC6suC6meC7hOC6lOC7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiLgu4Hguprgu4jguofgupvgurHgupngupzgu4jgurLgupkiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtbHQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWx0L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4NjFiOTkKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLWx0L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IkRva3VtZW50YWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+IkF0aWRhcnl0aSBpxaEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IknFoXNhdWdvdGkgxK8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4iS3VydGkgYXBsYW5rxIUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iVGlua2xlbGlvIHJvZGlueXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iU8SFcmHFoW8gcm9kaW55cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiJSxavFoWl1b3RpIHBhZ2FsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4iSWXFoWtvdGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+Ik51c3RhdHltYWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiJBdGlkYXJ5dGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4iScWhc2F1Z290aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4iQmVuZHJpbnRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4iScWhdHJpbnRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+IlBhc2lyaW5rdGE6IDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iUGFnYWwgcGF2YWRpbmltxIUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiJQYWdhbCBrZWl0aW1vIGRhdMSFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IlBhZ2FsIGR5ZMSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4iUm9keXRpIMWhYWtuaXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4iU2zEl3B0aSDFoWFrbmlzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiJOZXBhdnlrbyBpxaFzYXVnb3RpIGRva3VtZW50byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiJOZXBhdnlrbyBzdWt1cnRpIGFwbGFua28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiJOZXBhdnlrbyBwYXRlaWt0aSBkb2t1bWVudMWzIHXFvmtsYXVzxbMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiJOYXVqYXVzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+IkxhaXN2b3MgdmlldG9zOiA8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiJTYXVneWtsb3MgcGFzbGF1Z29zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IlNwYXJ0aWVqaSBrbGF2acWhYWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+IsSucmVuZ2luaWFpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4iRGF1Z2lhdSBwcm9ncmFtxbMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiJSb2R5dGkgacWhcGzEl3N0aW5pdXMgxK9yZW5naW5pdXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJSb2R5dGkgZmFpbG8gZHlkxK8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+IlJvZHl0aSDEr3JlbmdpbmlvIGR5ZMSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4iTsSXcmEgZWxlbWVudMWzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4iTmVwYXZ5a3N0YSBhdGlkYXJ5dGkgZmFpbG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+Ik5lcGF2eWtvIGnFoXRyaW50aSBrYWkga3VyacWzIGRva3VtZW50xbMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4iQmVuZHJpbnRpIG5hdWRvamFudCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1sdi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtbHYvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUxYTU5ZmUwZAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtbHYvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4iRG9rdW1lbnRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiJBdHbEk3LFoWFuYSBubzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IlNhZ2xhYsSBxaFhbmE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+Ikl6dmVpZG90IG1hcGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iUmXFvsSjaXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iU2FyYWtzdHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4iS8SBcnRvdCBwxJNjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4iTWVrbMSTdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4iSWVzdGF0xKtqdW1pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4iQXR2xJNydCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiJTYWdsYWLEgXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IktvcMSrZ290Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4iRHrEk3N0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+IkF0bGFzxKt0czogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiJQxJNjIG5vc2F1a3VtYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IlDEk2MgcMSBcnZlaWRvxaFhbmFzIGRhdHVtYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiJQxJNjIGxpZWx1bWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJSxIFkxKt0IHNha25lcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiJTbMSTcHQgc2FrbmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiJOZWl6ZGV2xIFzIHNhZ2xhYsSBdCBkb2t1bWVudHUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+Ik5laXpkZXbEgXMgaXp2ZWlkb3QgbWFwaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiJOZWl6ZGV2xIFzIGF0cmFzdCB2YWljxIFqdW3EgSBub3LEgWTEq3RvcyBkb2t1bWVudHVzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+IlDEk2TEk2ppZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+IkJyxKt2YSB2aWV0YTogPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4iR2xhYsSBxaFhbmFzIHBha2FscG9qdW1pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IlNhxKtzbmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJJZXLEq2NlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IlZhaXLEgWsgbGlldG90xYZ1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4iQXR0xJNsb3QgcGFwaWxkdSBpZXLEq2NlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+IkF0dMSTbG90IGZhaWxhIGxpZWx1bXUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+IkF0dMSTbG90IGllcsSrY2VzIGl6bcSTcnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiJOYXYgdmllbnVtdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+Ik5ldmFyIGF0dsSTcnQgZmFpbHUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiJOZXZhciBkesSTc3QgZGHFvnVzIGRva3VtZW50dXMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IktvcMSrZ290LCBpem1hbnRvam90Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtbW4tck1OL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyYzlmY2QKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiLQlNC+0LrRg9C80LXQvdGC0q/Sr9C0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiLQndGN0Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4i0KXQsNC00LPQsNC70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiLQpNC+0LvQtNC10YAg0q/Sr9GB0LPRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9ncmlkIiBtc2dpZD0iNjg3ODAyMTMzNDQ5NzgzNTI1OSI+ItCt0LPQvdKv0q/Qu9C2INGF0LDRgNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4i0JbQsNCz0YHQsNCw0LYg0YXQsNGA0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiLQrdGA0Y3QvNCx0Y3Qu9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiLQpdCw0LnRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4i0KLQvtGF0LjRgNCz0L7QviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+ItCd0Y3RjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+ItCl0LDQtNCz0LDQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+ItCl0YPQstCw0LDQu9GG0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+ItCj0YHRgtCz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+INGB0L7QvdCz0L7Qs9C00YHQvtC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+ItCd0Y3RgNGN0Y3RgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+ItOo06nRgNGH0LvTqdCz0LTRgdOp0L0g0L7Qs9C90L7QvtCz0L7QvtGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+ItCl0Y3QvNC20Y3RjdCz0Y3RjdGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4i0K/Qt9Cz0YPRg9GA0YvQsyDRhdCw0YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+ItCv0LfQs9GD0YPRgNGL0LMg0L3Rg9GD0YbQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+ItCU0L7QutGD0LzQtdC90YLRi9CzINGF0LDQtNCz0LDQu9C2INGH0LDQtNGB0LDQvdCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiLQpNC+0LvQtNC10YAg0q/Sr9GB0LPRjdC2INGH0LDQtNGB0LDQvdCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1ZXJ5X2Vycm9yIiBtc2dpZD0iMTIyMjQ0ODI2MTY2MzUwMzUwMSI+ItCU0L7QutGD0LzQtdC90YLRi9C9INGF0q/RgdGN0LvRgiDQs9Cw0YDQs9Cw0LYg0YfQsNC00YHQsNC90LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4i0KHQsNGP0YXQvdGLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+INGH06nQu9Op06nRgtGN0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiLQodCw0L3Qs9C40LnQvSDSr9C50LvRh9C40LvQs9GN0Y0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4i0KLQvtCy0YfQu9C+0LsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+ItCi06nRhdOp06nRgNOp0LzQttKv0q/QtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+ItOo06nRgCDQsNC/0L8t0YPRg9C0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4i0JTRjdCy0YjQuNC70YLRjdGCINGC06nRhdOp06nRgNOp0LzQttKv0q/QtNC40LnQsyDRhdCw0YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4i0KTQsNC50LvRi9C9INGF0Y3QvNC20Y3RjdCzINGF0LDRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+ItCi06nRhdOp06nRgNOp0LzQttC40LnQvSDRhdGN0LzQttGN0Y3QsyDRhdCw0YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4i0KXQvtC+0YHQvtC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4i0KTQsNC50LvRi9CzINC90Y3RjdGFINCx0L7Qu9C+0LzQttCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4i0JfQsNGA0LjQvCDQtNC+0LrRg9C80LXQvdGC0YPRg9C00YvQsyDRg9GB0YLQs9Cw0YUg0LHQvtC70L7QvNC20LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+ItCU0LDRgNCw0LDRhdCw0LDRgCDQtNCw0LzQttGD0YPQu9Cw0L0g0YXRg9Cy0LDQsNC70YbQsNGFIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1tbi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjYzN2I4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1tbi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiLQlNC+0LrRg9C80LXQvdGC0q/Sr9C0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiLQndGN0Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4i0KXQsNC00LPQsNC70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiLQpNC+0LvQtNC10YAg0q/Sr9GB0LPRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9ncmlkIiBtc2dpZD0iNjg3ODAyMTMzNDQ5NzgzNTI1OSI+ItCt0LPQvdKv0q/Qu9C2INGF0LDRgNCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4i0JbQsNCz0YHQsNCw0LYg0YXQsNGA0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiLQrdGA0Y3QvNCx0Y3Qu9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiLQpdCw0LnRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4i0KLQvtGF0LjRgNCz0L7QviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+ItCd0Y3RjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+ItCl0LDQtNCz0LDQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+ItCl0YPQstCw0LDQu9GG0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+ItCj0YHRgtCz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+INGB0L7QvdCz0L7Qs9C00YHQvtC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+ItCd0Y3RgNGN0Y3RgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+ItOo06nRgNGH0LvTqdCz0LTRgdOp0L0g0L7Qs9C90L7QvtCz0L7QvtGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+ItCl0Y3QvNC20Y3RjdCz0Y3RjdGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4i0K/Qt9Cz0YPRg9GA0YvQsyDRhdCw0YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+ItCv0LfQs9GD0YPRgNGL0LMg0L3Rg9GD0YbQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+ItCU0L7QutGD0LzQtdC90YLRi9CzINGF0LDQtNCz0LDQu9C2INGH0LDQtNGB0LDQvdCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+ItCh0LDRj9GF0L3RiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiDRh9Op0LvTqdOp0YLRjdC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyODU3MzYyNzAwNTc2MDA2Njk0Ij4i0q7QudC70YfQuNC70LPRjdGN0L3Sr9Kv0LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4i0KLQvtCy0YfQu9C+0LsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+ItCi06nRhdOp06nRgNOp0LzQttKv0q/QtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+ItOo06nRgCDQsNC/0L8t0YPRg9C0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4i0JTRjdCy0YjQuNC70YLRjdGCINGC06nRhdOp06nRgNOp0LzQttKv0q/QtNC40LnQsyDRhdCw0YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4i0KTQsNC50LvRi9C9INGF0Y3QvNC20Y3RjdCzINGF0LDRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+ItCi06nRhdOp06nRgNOp0LzQttC40LnQvSDRhdGN0LzQttGN0Y3QsyDRhdCw0YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4i0KXQvtC+0YHQvtC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4i0KTQsNC50LvRi9CzINC90Y3RjdGFINCx0L7Qu9C+0LzQttCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4i0JfQsNGA0LjQvCDQtNC+0LrRg9C80LXQvdGC0YPRg9C00YvQsyDRg9GB0YLQs9Cw0YUg0LHQvtC70L7QvNC20LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9yZSIgbXNnaWQ9IjcxMTc0MjA5ODY1MjkyOTcxNzEiPiLQptCw0LDRiCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxvYWRpbmciIG1zZ2lkPSI3OTMzNjgxMjYwMjk2MDIxMTgwIj4i0JDRh9Cw0LDQu9C70LDQtiDQsdCw0LnQvdCwLi4uIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLW1zLXJNWS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlMDljNTcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLW1zLXJNWS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiJEb2t1bWVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiJCdWthIGRhcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IlNpbXBhbiBrZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiJCdWF0IGZvbGRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJQYXBhcmFuIGdyaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iUGFwYXJhbiBzZW5hcmFpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IklzaWggbWVuZ2lrdXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJDYXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiJUZXRhcGFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4iQnVrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiJTaW1wYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IktvbmdzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IlBhZGFtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4gZGlwaWxpaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiJNZW5naWt1dCBuYW1hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4iRGl1YmFoIHN1YWkgbWVuZ2lrdXQgdGFyaWtoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+Ik1lbmdpa3V0IHNhaXoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJUdW5qdWtrYW4gYWthciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiJTZW1idW55aWthbiBha2FyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiJHYWdhbCBtZW55aW1wYW4gZG9rdW1lbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiJHYWdhbCBtZW1idWF0IGZvbGRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1ZXJ5X2Vycm9yIiBtc2dpZD0iMTIyMjQ0ODI2MTY2MzUwMzUwMSI+IkdhZ2FsIG1lbmFueWFrYW4gZG9rdW1lbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+IlRlcmJhaGFydSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiBrb3NvbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiJQZXJraGlkbWF0YW4gc3RvcmFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IlBpbnRhc2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJQZXJhbnRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4iTGViaWggYmFueWFrIGFwbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+IlBhcGFya2FuIHBlcmFudGkgdGVycGVyaW5jaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+IlBhcGFya2FuIHNhaXogZmFpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4iUGFwYXJrYW4gc2FpeiBwZXJhbnRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4iVGlhZGEgaXRlbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+IlRpZGFrIGRhcGF0IG1lbWJ1a2EgZmFpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4iVGlkYWsgZGFwYXQgbWVtYWRhbSBiZWJlcmFwYSBkb2t1bWVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IktvbmdzaSBtZWxhbHVpIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLW5iL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODMxYmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiJEb2t1bWVudGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiLDhXBuZSBmcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IkxhZ3JlIGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4iT3BwcmV0dCBlbiBtYXBwZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJSdXRlbmV0dHZpc25pbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iTGlzdGV2aXNuaW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IlNvcnTDqXIgZXR0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJTw7hrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiJJbm5zdGlsbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4iw4VwbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4iTGFncmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IkRlbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IlNsZXR0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4gdmFsZ3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iRXR0ZXIgbmF2biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IsKrRXR0ZXIgZGF0b8K7IGVuZHJldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiJFdHRlciBzdMO4cnJlbHNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4iVmlzIHLDuHR0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4iU2tqdWwgcsO4dHRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4iS3VubmUgaWtrZSBsYWdyZSBkb2t1bWVudGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+Ikt1bm5lIGlra2Ugb3BwcmV0dGUgbWFwcGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iS3VubmUgaWtrZSB1bmRlcnPDuGtlIGRva3VtZW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiJTaXN0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiBncmF0aXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiJMYWdyaW5nc3RqZW5lc3RlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiJTbmFydmVpZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+IkVuaGV0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiJGbGVyZSBhcHBlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+IlZpcyBhdmFuc2VydGUgZW5oZXRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+IlZpcyBmaWxzdMO4cnJlbHNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiJWaXMgZW5oZXRzc3TDuHJyZWxzZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+IkluZ2VuIGVsZW1lbnRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+IkthbiBpa2tlIMOlcG5lIGZpbGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiJFbmtlbHRlIGRva3VtZW50ZXIga3VubmUgaWtrZSBzbGV0dGVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IkRlbCB2aWEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtbmUtck5QL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1uZS1yTlAvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI2MDZkZgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtbmUtck5QL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IuCkleCkvuCkl+CknOCkvuCkpOCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4i4KSv4KS44KSs4KS+4KSfIOCkluCli+CksuCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4i4KSv4KS44KSu4KS+IOCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4i4KSr4KWL4KSy4KWN4KSh4KSwIOCkuOCkv+CksOCljeCknOCkqOCkviDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4i4KSX4KWN4KSw4KS/4KShIOCkpuClg+CktuCljeCkryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiLgpLjgpYLgpJrgpYAg4KSm4KWD4KS24KWN4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IuCkr+CkuOCkpuCljeCkteCkvuCksOCkviDgpJXgpY3gpLDgpK7gpLXgpKbgpY3gpJgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4i4KSW4KWL4KSc4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiLgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiLgpJbgpYvgpLLgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4i4KS44KWB4KSw4KSV4KWN4KS34KS/4KSkIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4i4KS44KS+4KSd4KWH4KSm4KS+4KSw4KWAIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IuCkruClh+Ckn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+IOCkmuCkr+CkqCDgpJfgpLDgpL/gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4i4KSo4KS+4KSuIOCkheCkqOClgeCkuOCkvuCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IuCkquCksOCkv+CkruCkvuCksOCljeCknOCkv+CkpCDgpK7gpL/gpKTgpL8g4KSF4KSo4KWB4KS44KS+4KSwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IuCkhuCkleCkvuCksCDgpIXgpKjgpYHgpLjgpL7gpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiLgpK7gpYLgpLLgpLngpLDgpYIg4KSm4KWH4KSW4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IuCkruClguCksuCkueCksOClgiDgpLLgpYHgpJXgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IuCkleCkvuCkl+CknOCkvuCkpCDgpLjgpYHgpLDgpJXgpY3gpLfgpL/gpKQg4KSX4KSw4KWN4KSoIOCkteCkv+Ckq+CksiDgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiLgpLngpL7gpLLgpYjgpJXgpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4g4KSW4KS+4KSy4KWAIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHJvb3RfdHlwZV9zZXJ2aWNlICgyMTc4ODU0ODk0NDE2Nzc1NDA5KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IuCkuOCksOCljeCkn+CkleCkn+CkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4i4KSJ4KSq4KSV4KSw4KSj4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4i4KSl4KSqIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+IuCkieCkqOCljeCkqOCkpCDgpIngpKrgpJXgpLDgpKPgpLngpLDgpYIg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+IuCkq+CkvuCkh+CksiDgpIbgpJXgpL7gpLAg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4i4KSJ4KSq4KSV4KSw4KSjIOCkhuCkleCkvuCksCDgpKrgpY3gpLDgpKbgpLDgpY3gpLbgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4i4KSV4KWB4KSo4KWIIOCkteCkuOCljeCkpOClgSDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiLgpKvgpL7gpIfgpLIg4KSW4KWL4KSy4KWN4KSoIOCkuOCkleCljeCkpuCliOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4i4KSV4KWH4KS54KWAIOCkleCkvuCkl+CknOCkvuCkpOCkueCksOClgiDgpK7gpYfgpJ/gpY3gpKgg4KSF4KS44KSu4KSw4KWN4KSlIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiLgpK7gpL7gpKfgpY3gpK/gpK7gpKzgpL7gpJ8g4KS44KS+4KSd4KWH4KSm4KS+4KSw4KWAIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1ubC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtbmwvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDg4NjJlOAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtbmwvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4iRG9jdW1lbnRlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4iT3BlbmVuIHZhbnVpdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4iT3BzbGFhbiBpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiJNYXAgbWFrZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iUmFzdGVyd2VlcmdhdmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iTGlqc3R3ZWVyZ2F2ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiJTb3J0ZXJlbiBvcCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IlpvZWtlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4iSW5zdGVsbGluZ2VuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4iT3BlbmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+Ik9wc2xhYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IkRlbGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4iVmVyd2lqZGVyZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiBnZXNlbGVjdGVlcmQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iT3AgbmFhbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+Ik9wIGFhbnBhc3NpbmdzZGF0dW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4iT3AgZ3Jvb3R0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IlJvb3RzIHdlZXJnZXZlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiJSb290cyB2ZXJiZXJnZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IkthbiBkb2N1bWVudCBuaWV0IG9wc2xhYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4iS2FuIG1hcCBuaWV0IG1ha2VuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iS2FuIGdlZW4gcXVlcnlcJ3Mgdm9vciBkb2N1bWVudGVuIHZlcnplbmRlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+IlJlY2VudCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiB2cmlqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4iT3BzbGFnc2VydmljZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4iU25lbHRvZXRzZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+IkFwcGFyYXRlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+Ik1lZXIgYXBwcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+IkdlYXZhbmNlZXJkZSBhcHBhcmF0ZW4gd2VlcmdldmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4iQmVzdGFuZHNncm9vdHRlIHdlZXJnZXZlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4iQXBwYXJhYXRncm9vdHRlIHdlZXJnZXZlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+IkdlZW4gaXRlbXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJLYW4gYmVzdGFuZCBuaWV0IG9wZW5lbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4iS2FuIGJlcGFhbGRlIGRvY3VtZW50ZW4gbmlldCB2ZXJ3aWpkZXJlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiJEZWxlbiB2aWEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtcGwvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXBsL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0ZTU1ODIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXBsL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IkRva3VtZW50eSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4iT3R3w7NyeiB6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfc2F2ZSIgbXNnaWQ9IjI0MzM2Nzk2NjQ4ODI4NTc5OTkiPiJaYXBpc3ogdyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiJVdHfDs3J6IGZvbGRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJXaWRvayBzaWF0a2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iV2lkb2sgbGlzdHkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4iU29ydHVqIHdlZMWCdWciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJTenVrYWoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IlVzdGF3aWVuaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiJPdHfDs3J6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+IlphcGlzeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4iVWRvc3TEmXBuaWoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZSIgbXNnaWQ9IjgxMzg3OTk2MjM4NTA2MTQxNzciPiJVc3XFhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiJXeWJyYW5vOiA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+IldlZMWCdWcgbmF6d3kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiJXZWTFgnVnIGRhdHkgZWR5Y2ppIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IldlZMWCdWcgcm96bWlhcnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJQb2thxbwgZWxlbWVudHkgZ8WCw7N3bmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4iVWtyeWogZWxlbWVudHkgZ8WCw7N3bmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+Ik5pZSB1ZGHFgm8gc2nEmSB6YXBpc2HEhyBkb2t1bWVudHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4iTmllIHVkYcWCbyBzacSZIHV0d29yennEhyBmb2xkZXJ1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iTmllIHVkYcWCbyBzacSZIHBvYnJhxIcgbGlzdHkgZG9rdW1lbnTDs3ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiJPc3RhdG5pZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiB3b2xuZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zZXJ2aWNlIiBtc2dpZD0iMjE3ODg1NDg5NDQxNjc3NTQwOSI+IlVzxYJ1Z2kgcGFtacSZY2kgbWFzb3dlaiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiJTa3LDs3R5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJVcnrEhWR6ZW5pYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IldpxJljZWogYXBsaWthY2ppIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4iV3nFm3dpZXRsIHVyesSFZHplbmlhIHphYXdhbnNvd2FuZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZmlsZV9zaXplIiBtc2dpZD0iMjgyNjg3OTMxNTc0Mzk2MTQ1OSI+Ild5xZt3aWV0bCByb3ptaWFyIHBsaWt1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiJXecWbd2lldGwgcm96bWlhciB1cnrEhWR6ZW5pYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+IkJyYWsgZWxlbWVudMOzdyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+Ik5pZSBtb8W8bmEgb3R3b3J6ecSHIHBsaWt1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiJOaWUgbW/FvG5hIHVzdW7EhcSHIG5pZWt0w7NyeWNoIGRva3VtZW50w7N3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IlVkb3N0xJlwbmlqIHByemV6Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtcHQtclBUL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMWJhOGIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiJEb2N1bWVudG9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiJBYnJpciBkZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4iR3VhcmRhciBlbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiJDcmlhciBwYXN0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJWaXN0YSBkZSBncmVsaGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iVmlzdGEgZGUgbGlzdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4iT3JkZW5hciBwb3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJQZXNxdWlzYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IkRlZmluacOnw7VlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+IkFicmlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+Ikd1YXJkYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IlBhcnRpbGhhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IkVsaW1pbmFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4gc2VsZWNpb25hZG8ocykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iUG9yIG5vbWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiJQb3IgZGF0YSBkZSBtb2RpZmljYcOnw6NvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IlBvciB0YW1hbmhvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4iTW9zdHJhciByYcOtemVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+Ik9jdWx0YXIgcmHDrXplcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4iRmFsaGEgYW8gZ3VhcmRhciBvIGRvY3VtZW50byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiJGYWxoYSBhbyBjcmlhciBhIHBhc3RhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iRmFsaGEgYW8gY29uc3VsdGFyIG9zIGRvY3VtZW50b3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiJSZWNlbnRlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiBlc3Bhw6dvIGxpdnJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4iU2Vydi4gZGUgYXJtYXplbmFtZW50byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiJBdGFsaG9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJEaXNwb3NpdGl2b3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiJNYWlzIGFwbGljYcOnw7VlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+IkFwcmVzZW50YXIgZGlzcG9zaXRpdm9zIGF2YW7Dp2Fkb3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJBcHJlc2VudGFyIHRhbWFuaG8gZG8gZmljaGVpcm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+IkFwcmVzZW50YXIgdGFtYW5obyBkbyBkaXNwb3NpdGl2byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+IlNlbSBpdGVucyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+Ik7Do28gw6kgcG9zc8OtdmVsIGFicmlyIG8gZmljaGVpcm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+Ik7Do28gw6kgcG9zc8OtdmVsIGVsaW1pbmFyIGFsZ3VucyBkb2N1bWVudG9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IlBhcnRpbGhhciBhdHJhdsOpcyBkZSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1wdC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtcHQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhmY2FmOAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtcHQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4iRG9jdW1lbnRvcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4iQWJyaXIgZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IlNhbHZhciBlbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiJDcmlhciBwYXN0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJWaXN1YWxpemHDp8OjbyBlbSBncmFkZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiJWaXN1YWxpemHDp8OjbyBlbSBsaXN0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiJDbGFzc2lmaWNhciBwb3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJQZXNxdWlzYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IkNvbmZpZ3VyYcOnw7VlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+IkFicmlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+IlNhbHZhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4iQ29tcGFydGlsaGFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4iRXhjbHVpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+IHNlbGVjaW9uYWRvcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiJQb3Igbm9tZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IlBvciBkYXRhIGRlIG1vZGlmaWNhw6fDo28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4iUG9yIHRhbWFuaG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJNb3N0cmFyIHJhw616ZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4iT2N1bHRhciByYcOtemVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiJGYWxoYSBhbyBzYWx2YXIgbyBkb2N1bWVudG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4iRmFsaGEgYW8gY3JpYXIgYSBwYXN0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1ZXJ5X2Vycm9yIiBtc2dpZD0iMTIyMjQ0ODI2MTY2MzUwMzUwMSI+IkZhbGhhIGFvIGNvbnN1bHRhciBkb2N1bWVudG9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4iUmVjZW50ZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4gbGl2cmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4iU2VydmnDp29zIGRlIGFybWF6ZW5hbWVudG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4iQXRhbGhvcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4iRGlzcG9zaXRpdm9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4iTWFpcyBhcGxpY2F0aXZvcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+Ik1vc3RyYXIgZGlzcG9zaXRpdm9zIGF2YW7Dp2Fkb3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJNb3N0cmFyIHRhbWFuaG8gZG8gYXJxdWl2byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4iTW9zdHJhciB0YW1hbmhvIGRvIGRpc3Bvc2l0aXZvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4iTmVuaHVtIGl0ZW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJOw6NvIMOpIHBvc3PDrXZlbCBhYnJpciBvIGFycXVpdm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+Ik7Do28gZm9pIHBvc3PDrXZlbCBleGNsdWlyIGFsZ3VucyBkb2N1bWVudG9zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IkNvbXBhcnRpbGhhciB2aWEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtcm8vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXJvL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmZDQ0YzgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXJvL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IkRvY3VtZW50ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4iRGVzY2hpZGXIm2kgZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfc2F2ZSIgbXNnaWQ9IjI0MzM2Nzk2NjQ4ODI4NTc5OTkiPiJTYWx2YcibaSDDrm4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4iQ3JlYcibaSB1biBkb3NhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJBZmnImWFyZSB0aXAgZ3JpbMSDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+IkFmaciZYXJlIHRpcCBsaXN0xIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4iU29ydGHIm2kgZHVwxIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJDxIN1dGHIm2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IlNldMSDcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiJEZXNjaGlkZcibaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiJTYWx2YcibaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4iRGlzdHJpYnVpyJtpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4iyJh0ZXJnZcibaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+IHNlbGVjdGF0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiJEdXDEgyBudW1lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4iRHVwxIMgZGF0YSBtb2RpZmljxINyaWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4iRHVwxIMgZGltZW5zaXVuZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IkFmaciZYcibaSBkaXJlY3RvYXJlbGUgcsSDZMSDY2luxIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4iQXNjdW5kZcibaSBkaXJlY3RvYXJlbGUgcsSDZMSDY2luxIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IlNhbHZhcmVhIGRvY3VtZW50dWx1aSBudSBhIHJldciZaXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4iRXJvYXJlIGxhIGNyZWFyZWEgZG9zYXJ1bHVpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iSW50ZXJvZ2FyZWEgcmVmZXJpdG9hcmUgbGEgZG9jdW1lbnRlIG51IGEgcmV1yJlpdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+IlJlY2VudGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4gc3BhyJtpdSBsaWJlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zZXJ2aWNlIiBtc2dpZD0iMjE3ODg1NDg5NDQxNjc3NTQwOSI+IlNlcnZpY2lpIGRlIHN0b2NhcmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4iQ29tZW56aSByYXBpZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+IkRpc3Bveml0aXZlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4iQWx0ZSBhcGxpY2HIm2lpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4iQWZpyJlhyJtpIGRpc3Bveml0aXZlIGF2YW5zYXRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4iQWZpyJlhyJtpIGRpbWVuc2l1bmlsZSBmaciZaWVyZWxvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4iQWZpyJlhyJtpIGNhcGFjaXRhdGVhIGRlIHN0b2NhcmUgYSBkaXNwb3ppdGl2ZWxvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+Ik51IGV4aXN0xIMgZWxlbWVudGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJGaciZaWVydWwgbnUgcG9hdGUgZmkgZGVzY2hpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4iVW5lbGUgZG9jdW1lbnRlIG51IGF1IHB1dHV0IGZpIMiZdGVyc2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4iRGlzdHJpYnVpyJtpIHByaW4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtcnUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXJ1L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ZmQ3MGUwCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1ydS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiLQlNC+0LrRg9C80LXQvdGC0YsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+ItCe0YLQutGA0YvRgtGMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfc2F2ZSIgbXNnaWQ9IjI0MzM2Nzk2NjQ4ODI4NTc5OTkiPiLQodC+0YXRgNCw0L3QuNGC0YwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4i0J3QvtCy0LDRjyDQv9Cw0L/QutCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9ncmlkIiBtc2dpZD0iNjg3ODAyMTMzNDQ5NzgzNTI1OSI+ItCi0LDQsdC70LjRhtCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+ItCh0L/QuNGB0L7QuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiLQodC+0YDRgtC40YDQvtCy0LDRgtGMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4i0J/QvtC40YHQuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4i0J3QsNGB0YLRgNC+0LnQutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4i0J7RgtC60YDRi9GC0YwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4i0KHQvtGF0YDQsNC90LjRgtGMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zaGFyZSIgbXNnaWQ9IjMwNzUxNDk5ODM5Nzk2MjgxNDYiPiLQn9C+0LTQtdC70LjRgtGM0YHRjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+ItCj0LTQsNC70LjRgtGMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+ItCS0YvQsdGA0LDQvdC+OiA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+ItCf0L4g0L3QsNC30LLQsNC90LjRjiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+ItCf0L4g0LTQsNGC0LUg0LjQt9C80LXQvdC10L3QuNGPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+ItCf0L4g0YDQsNC30LzQtdGA0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiLQn9C+0LrQsNC30LDRgtGMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+ItCh0LrRgNGL0YLRjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4i0J3QtSDRg9C00LDQu9C+0YHRjCDRgdC+0YXRgNCw0L3QuNGC0Ywg0LTQvtC60YPQvNC10L3RgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiLQndC1INGD0LTQsNC70L7RgdGMINGB0L7Qt9C00LDRgtGMINC/0LDQv9C60YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLQndC1INGD0LTQsNC70L7RgdGMINC+0YLQv9GA0LDQstC40YLRjCDQt9Cw0L/RgNC+0YEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiLQndC10LTQsNCy0L3QuNC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4i0KHQstC+0LHQvtC00L3QviA8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiLQodC70YPQttCx0Ysg0YXRgNCw0L3QtdC90LjRjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiLQr9GA0LvRi9C60LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+ItCj0YHRgtGA0L7QudGB0YLQstCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4i0JTRgNGD0LPQuNC1INC/0YDQuNC70L7QttC10L3QuNGPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4i0J/QvtC60LDQt9Cw0YLRjCDQtNGA0YPQs9C40LUg0YPRgdGC0YDQvtC50YHRgtCy0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiLQn9C+0LrQsNC30LDRgtGMINGA0LDQt9C80LXRgCDRhNCw0LnQu9CwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiLQn9C+0LrQsNC30LDRgtGMINGA0LDQt9C80LXRgCDRg9GB0YLRgNC+0LnRgdGC0LLQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+ItCd0LjRh9C10LPQviDQvdC10YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiLQndC1INGD0LTQsNC70L7RgdGMINC+0YLQutGA0YvRgtGMINGE0LDQudC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiLQndC1INGD0LTQsNC70L7RgdGMINGD0LTQsNC70LjRgtGMINC90LXQutC+0YLQvtGA0YvQtSDQtNC+0LrRg9C80LXQvdGC0YsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4i0J/QvtC00LXQu9C40YLRjNGB0Y8iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtc2ktckxLL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1zaS1yTEsvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjI2M2I4MgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtc2ktckxLL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IuC2veC3muC2m+C2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4i4LeA4LeS4LeA4LeY4LatIOC3gOC2seC3iuC2seC3miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4i4LeD4LeU4La74Laa4LeS4Lax4LeK4Lax4LeaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+IuC3huC3neC2veC3iuC2qeC2u+C2uuC2muC3iiDgt4Pgt4/gtq/gtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4i4Lai4LeP4La9IOC2tOC3meC2seC3lOC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiLgtr3gt5Dgtrrgt5Lgt4Pgt4rgtq3gt5Qg4La04LeZ4Lax4LeU4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IuC2heC2seC3lOC2tOC3kuC3heC3kuC3gOC3meC2veC2pyDgt4Pgtprgt4Pgt48g4LaH4Lat4LeK4Lat4LeaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4i4LeD4LeZ4LeA4LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiLgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiLgt4Dgt5Lgt4Dgt5jgtq0g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+IuC3g+C3lOC2u+C2muC3kuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4i4La24LeZ4Lav4LeP4Lac4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4i4La44Laa4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4g4Laa4LeKIOC2reC3neC2u+C3j+C2nOC2seC3iuC2seC3jyDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4i4Lax4La44LeS4Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4i4LeA4LeZ4Lax4LeD4LeKIOC2muC2u+C2sSDgtr3gtq8g4Lav4LeS4Lax4La64LeZ4Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IuC2tOC3iuKAjeC2u+C2uOC3j+C2q+C2uiDgtrjgtpzgt5LgtrHgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiLgtrjgt5Tgtr3gt4og4La04LeZ4Lax4LeK4LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IuC2uOC3lOC2veC3iiDgt4Pgtp/gt4DgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IuC2veC3muC2m+C2seC2uiDgt4Pgt5Tgtrvgt5Dgtprgt5Pgtrjgtqcg4LaF4La04Lec4LeE4Lec4LeD4Lat4LeKIOC3gOC3kuC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+IuC2uOC3keC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiDgtongtq3gt5Lgtrvgt5Lgtrrgt5IiPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Igcm9vdF90eXBlX3NlcnZpY2UgKDIxNzg4NTQ4OTQ0MTY3NzU0MDkpIC0tPgorICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4i4Laa4LeZ4Lan4LeS4La44LaCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiLgtovgtrTgt4/gtoLgtpwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiLgtq3gt4Dgtq3gt4og4La64LeZ4Lav4LeU4La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4i4LaL4LeD4LeD4LeKIOC2i+C2tOC3j+C2guC2nCDgtq/gtrvgt4rgt4HgtrHgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4i4Lac4Lec4Lax4LeUIOC2tOC3iuKAjeC2u+C2uOC3j+C2q+C2uiDgtq/gtrvgt4rgt4HgtrHgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiLgtovgtrTgt4/gtoLgtpwg4La04LeK4oCN4La74La44LeP4Lar4La6IOC2r+C2u+C3iuC3geC2seC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiLgtoXgtrrgt5Lgtq3gtrgg4Lax4LeQ4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4i4Lac4Lec4Lax4LeU4LeAIOC3gOC3kuC3gOC3mOC2rSDgtprgt4Ug4Lax4Lec4LeE4LeQ4LaaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiLgt4Pgtrjgt4Tgtrsg4La94Lea4Lab4LaxIOC2uOC3kOC2muC3k+C2uOC2pyDgtrHgt5zgt4Tgt5Dgtprgt5Ig4LeA4LeS4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IuC3hOC2u+C3hOC3jyDgtrbgt5ngtq/gt4/gtpzgtrHgt4rgtrEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtc2svc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXNrL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhOTZiMWEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXNrL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IkRva3VtZW50eSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4iT3R2b3JpxaUgeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4iVWxvxb5pxaUgZG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4iVnl0dm9yacWlIHByaWXEjWlub2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iWm9icmF6ZW5pZSBtcmllxb5reSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiJab2JyYXplbmllIHpvem5hbXUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4iWm9yYWRpxaUgcG9kxL5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4iSMS+YWRhxaUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+Ik5hc3RhdmVuaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiJPdHZvcmnFpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiJVbG/FvmnFpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4iWmRpZcS+YcWlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4iT2RzdHLDoW5pxaUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iVnlicmF0w6k6IDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iUG9kxL5hIG7DoXp2dSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IlBvZMS+YSBkw6F0dW11IHptZW55Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IlBvZMS+YSB2ZcS+a29zdGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJab2JyYXppxaUga29yZW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IlNrcnnFpSBrb3JlbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IkRva3VtZW50IHNhIG5lcG9kYXJpbG8gdWxvxb5pxaUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4iUHJpZcSNaW5vayBzYSBuZXBvZGFyaWxvIHZ5dHZvcmnFpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1ZXJ5X2Vycm9yIiBtc2dpZD0iMTIyMjQ0ODI2MTY2MzUwMzUwMSI+Ilpvem5hbSBkb2t1bWVudG92IHNhIG5lcG9kYXJpbG8gbmHEjcOtdGHFpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+Ik5lZMOhdm5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iVm/Evm7DqTogPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4iU2x1xb5ieSDDumxvxb5pc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IlNrcmF0a3kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+IlphcmlhZGVuaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiLEjmFsxaFpZSBhcGxpa8OhY2llIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4iWm9icmF6acWlIHJvesWhw61yZW7DqSB6YXJpYWRlbmlhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4iWm9icmF6acWlIHZlxL5rb3PFpSBzw7pib3J1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiJab2JyYXppxaUgdmXEvmtvc8WlIHphcmlhZGVuaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiLFvWlhZG5lIHBvbG/Fvmt5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4iU8O6Ym9yIHNhIG5lcG9kYXJpbG8gb3R2b3JpxaUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+Ik5pZWt0b3LDqSBkb2t1bWVudHkgc2EgbmVwb2RhcmlsbyBvZHN0csOhbmnFpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiJaZGllxL5hxaUgcG9tb2NvdSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1zbC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtc2wvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk4NGEwYQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtc2wvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4iRG9rdW1lbnRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiJPZHBpcmFuamUgaXoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IlNocmFuamV2YW5qZSB2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+IlVzdHZhcmphbmplIG1hcGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4iTXJlxb5uaSBwb2dsZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iUG9nbGVkIHNlem5hbWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4iUmF6dnJzdGkgZ2xlZGUgbmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJJc2thbmplIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiJOYXN0YXZpdHZlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4iT2RwcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4iU2hyYW5pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zaGFyZSIgbXNnaWQ9IjMwNzUxNDk5ODM5Nzk2MjgxNDYiPiJTa3VwbmEgcmFiYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+Ikl6YnJpxaFpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+IsWgdC4gaXpicmFuaWg6IDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iUG8gaW1lbnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiJQbyBkYXR1bXUgc3ByZW1lbWJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IlBvIHZlbGlrb3N0aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IlBva2HFvmkga29yZW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IlNrcmlqIGtvcmVuZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4iRG9rdW1lbnRhIG5pIGJpbG8gbW9nb8SNZSBzaHJhbml0aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiJNYXBlIG5pIGJpbG8gbW9nb8SNZSB1c3R2YXJpdGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiJQb2l6dmVkYmEgemEgZG9rdW1lbnRlIG5pIHVzcGVsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+Ik5lZGF2bm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiJQcm9zdG86IDx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zZXJ2aWNlIiBtc2dpZD0iMjE3ODg1NDg5NDQxNjc3NTQwOSI+IlN0b3JpdHZlIHNocmFtYmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4iQmxpxb5uamljZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4iTmFwcmF2ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IlZlxI0gYXBsaWthY2lqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4iUHJpa2F6IG5hcHJlZG5paCBuYXByYXYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJQcmlrYXogdmVsaWtvc3RpIGRhdG90ZWtlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiJQcmlrYXogdmVsaWtvc3RpIG5hcHJhdmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiJOaSBlbGVtZW50b3YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJEYXRvdGVrZSBuaSBtb2dvxI1lIG9kcHJldGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+Ik5la2F0ZXJpaCBkb2t1bWVudG92IG5pIG1vZ2/EjWUgaXpicmlzYXRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IkRlbGkgeiBkcnVnaW1pIHByZWsiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtc3Ivc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXNyL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViMGIxOTcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXNyL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+ItCU0L7QutGD0LzQtdC90YLQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4i0J7RgtCy0L7RgNC4INGB0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+ItCh0LDRh9GD0LLQsNGYINGDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+ItCd0LDQv9GA0LDQstC4INC00LjRgNC10LrRgtC+0YDQuNGY0YPQvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiLQn9GA0LjQutCw0Lcg0LzRgNC10LbQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiLQn9GA0LjQutCw0Lcg0LvQuNGB0YLQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiLQodC+0YDRgtC40YDQsNGYINC/0YDQtdC80LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiLQn9GA0LXRgtGA0LDQttC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiLQn9C+0LTQtdGI0LDQstCw0ZrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+ItCe0YLQstC+0YDQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiLQodCw0YfRg9Cy0LDRmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4i0JTQtdC70LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZSIgbXNnaWQ9IjgxMzg3OTk2MjM4NTA2MTQxNzciPiLQmNC30LHRgNC40YjQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiLQmNC30LDQsdGA0LDQvdC+INGY0LUgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiLQn9GA0LXQvNCwINC40LzQtdC90YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiLQn9GA0LXQvNCwINC00LDRgtGD0LzRgyDQuNC30LzQtdC90LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X3NpemUiIG1zZ2lkPSIzMzUwNjgxMzE5NzM1NDc0NzQxIj4i0J/RgNC10LzQsCDQstC10LvQuNGH0LjQvdC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4i0J/RgNC40LrQsNC20Lgg0L7RgdC90L7QstC90LUg0LXQu9C10LzQtdC90YLQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiLQodCw0LrRgNC40Zgg0L7RgdC90L7QstC90LUg0LXQu9C10LzQtdC90YLQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4i0KfRg9Cy0LDRmtC1INC00L7QutGD0LzQtdC90YLQsCDQvdC40ZjQtSDRg9GB0L/QtdC70L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4i0JTQuNGA0LXQutGC0L7RgNC40ZjRg9C8INC90LjRmNC1INC90LDQv9GA0LDQstGZ0LXQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1ZXJ5X2Vycm9yIiBtc2dpZD0iMTIyMjQ0ODI2MTY2MzUwMzUwMSI+ItCh0LvQsNGa0LUg0YPQv9C40YLQsCDQt9CwINC00L7QutGD0LzQtdC90YLQtSDQvdC40ZjQtSDRg9GB0L/QtdC70L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiLQndC10LTQsNCy0L3QviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+ItCh0LvQvtCx0L7QtNC90L4g0ZjQtSA8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiLQo9GB0LvRg9Cz0LUg0YHQutC70LDQtNC40YjRgtC10ZrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiLQn9GA0LXRh9C40YbQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4i0KPRgNC10ZLQsNGY0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiLQiNC+0Ygg0LDQv9C70LjQutCw0YbQuNGY0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiLQn9GA0LjQutCw0LbQuCDQvdCw0L/RgNC10LTQvdC1INGD0YDQtdGS0LDRmNC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4i0J/RgNC40LrQsNC20Lgg0LLQtdC70LjRh9C40L3RgyDQtNCw0YLQvtGC0LXQutC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiLQn9GA0LjQutCw0LbQuCDQstC10LvQuNGH0LjQvdGDINGD0YDQtdGS0LDRmNCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4i0J3QtdC80LAg0YHRgtCw0LLQutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4i0J3QuNGY0LUg0LzQvtCz0YPRm9C1INC+0YLQstC+0YDQuNGC0Lgg0LTQsNGC0L7RgtC10LrRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4i0J3QuNGY0LUg0LzQvtCz0YPRm9C1INC40LfQsdGA0LjRgdCw0YLQuCDQvdC10LrQtSDQtNC+0LrRg9C80LXQvdGC0LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4i0JTQtdC70LjRgtC1INC/0YDQtdC60L4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtc3Yvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXN2L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhYTVjNTAKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXN2L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IkRva3VtZW50Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiLDlnBwbmEgZnLDpW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IlNwYXJhIHRpbGwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4iU2thcGEgbWFwcCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJSdXRuw6R0c3Z5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+Ikxpc3R2eSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiJTb3J0ZXJhIGVmdGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4iU8O2ayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4iSW5zdMOkbGxuaW5nYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiLDlnBwbmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4iU3BhcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IkRlbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZSIgbXNnaWQ9IjgxMzg3OTk2MjM4NTA2MTQxNzciPiJUYSBib3J0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+IkhhciB2YWx0IDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iRWZ0ZXIgbmFtbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfZGF0ZSIgbXNnaWQ9IjU4NjA4MDAzMjk1NjE1MTQ0OCI+IkVmdGVyIMOkbmRyaW5nc2RhdHVtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IkVmdGVyIHN0b3JsZWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJWaXNhIHLDtnR0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4iRMO2bGogcsO2dHRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4iRGV0IGdpY2sgaW50ZSBhdHQgc3BhcmEgZG9rdW1lbnRldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiJEZXQgZ2ljayBpbnRlIGF0dCBza2FwYSBtYXBwZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiJEZXQgZ2ljayBpbnRlIGF0dCBzw7ZrYSBlZnRlciBkb2t1bWVudCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+IlNlbmFzdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4gbGVkaWd0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4iTGFncmluZ3N0asOkbnN0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4iR2VudsOkZ2FyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJFbmhldGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4iRmxlciBhcHBhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+IlZpc2EgYXZhbmNlcmFkZSBlbmhldGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4iVmlzYSBmaWxzdG9ybGVrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiJCaWxkc2vDpHJtc3N0b3JsZWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiJJbmdhIG9iamVrdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+IkRldCBnw6VyIGludGUgYXR0IMO2cHBuYSBmaWxlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4iRGV0IGdpY2sgaW50ZSBhdHQgdGEgYm9ydCB2aXNzYSBkb2t1bWVudCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiJEZWxhIHZpYSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy1zdy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtc3cvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk5ZmRhNwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtc3cvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4iSGF0aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4iRnVuZ3VhIGt1dG9rYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4iSGlmYWRoaSBrd2VueWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4iVW5kYSBmb2xkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJNd29uZWthbm8gZ3JpZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iTXdvbmVrYW5vIG9yb2RoYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiJQYW5nYSBrd2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJVdGFmdXRhamkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+Ik1pcGFuZ2lsaW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiJGdW5ndWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4iSGlmYWRoaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4iU2hpcmlraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IkZ1dGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiB6aW1lY2hhZ3VsaXdhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9uYW1lIiBtc2dpZD0iOTE4MzU2MDQ2NzkxNzI1Njc3OSI+Ikt3YSBqaW5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4iS3dhIHRhcmVoZSB2aWxpcG9yZWtlYmlzaHdhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+Ikt3YSB1a3Vid2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJPbnllc2hhIHVzdWxpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IkZpY2hhIHVzdWxpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9lcnJvciIgbXNnaWQ9IjYxNjcwMDk3NzgwMDMyMjM2NjQiPiJJbWVzaGluZHdhIGt1aGlmYWRoaSBoYXRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+IklsaXNoaW5kd2Ega3V1bmRhIGZvbGRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iSWxpc2hpbmR3YSBrdWhvamkgaGF0aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfcmVjZW50IiBtc2dpZD0iNDQ3MDA1MzcwNDMyMDUxODEzMyI+Ikhpdmkga2FyaWJ1bmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4gYmlsYSBtYWxpcG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiJIdWR1bWEgemEgaGlmYWRoaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zaG9ydGN1dCIgbXNnaWQ9IjMzMTg3NjA2MDk0NzE2MTgwOTMiPiJOamlhIHphIG1rYXRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJWaWZhYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IlByb2dyYW11IHphaWRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4iT255ZXNoYSB2aWZhYSBtYWhpcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJPbnllc2hhIHVrdWJ3YSB3YSBmYWlsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4iT255ZXNoYSB1a3Vid2Egd2Ega2lmYWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiJIYWt1bmEgdmlwZW5nZWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJIYWl3ZXppIGt1ZnVuZ3VhIGZhaWxpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiJJbWVzaGluZHdhIGt1ZnV0YSBiYWFkaGkgeWEgaGF0aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiJTaGlyaWtpIGt1cGl0aWEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtdGgvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXRoL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhYzg4MTAKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXRoL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IuC5gOC4reC4geC4quC4suC4oyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX29wZW4iIG1zZ2lkPSI0MzUzMjI4OTM3NjYzOTE3ODAxIj4i4LmA4Lib4Li04LiU4LiI4Liy4LiBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfc2F2ZSIgbXNnaWQ9IjI0MzM2Nzk2NjQ4ODI4NTc5OTkiPiLguJrguLHguJnguJfguLbguIHguYTguJvguKLguLHguIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4i4Liq4Lij4LmJ4Liy4LiH4LmC4Lif4Lil4LmA4LiU4Lit4Lij4LmMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9ncmlkIiBtc2dpZD0iNjg3ODAyMTMzNDQ5NzgzNTI1OSI+IuC4oeC4uOC4oeC4oeC4reC4h+C4leC4suC4o+C4suC4hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfbGlzdCIgbXNnaWQ9IjcyNzkyODU5Mzk4OTI0MTcyNzkiPiLguKHguLjguKHguKHguK3guIfguKPguLLguKLguIHguLLguKMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NvcnQiIG1zZ2lkPSI3Njc3NzQwNDA3MTU4NDE0NDUyIj4i4LiI4Lix4LiU4LmA4Lij4Li14Lii4LiH4LiV4Liy4LihIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4i4LiE4LmJ4LiZ4Lir4LiyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiLguIHguLLguKPguJXguLHguYnguIfguITguYjguLIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiLguYDguJvguLTguJQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4i4Lia4Lix4LiZ4LiX4Li24LiBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zaGFyZSIgbXNnaWQ9IjMwNzUxNDk5ODM5Nzk2MjgxNDYiPiLguYHguIrguKPguYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZSIgbXNnaWQ9IjgxMzg3OTk2MjM4NTA2MTQxNzciPiLguKXguJoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4i4LmA4Lil4Li34Lit4LiB4LmE4Lin4LmJIDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4i4LiV4Liy4Lih4LiK4Li34LmI4LitIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4i4LiV4Liy4Lih4Lin4Lix4LiZ4LiX4Li14LmI4LiX4Li14LmI4Lib4Lij4Lix4Lia4LmA4Lib4Lil4Li14LmI4Lii4LiZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IuC4leC4suC4oeC4guC4meC4suC4lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IuC5geC4quC4lOC4h+C4o+C4suC4gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiLguIvguYjguK3guJnguKPguLLguIEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IuC4geC4suC4o+C4muC4seC4meC4l+C4tuC4geC5gOC4reC4geC4quC4suC4o+C4peC5ieC4oeC5gOC4q+C4peC4pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiLguIHguLLguKPguKrguKPguYnguLLguIfguYLguJ/guKXguYDguJTguK3guKPguYzguKXguYnguKHguYDguKvguKXguKciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLguIHguLLguKPguITguYnguJnguKvguLLguYDguK3guIHguKrguLLguKPguKXguYnguKHguYDguKvguKXguKciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiLguKXguYjguLLguKrguLjguJQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiLguKfguYjguLLguIcgPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4i4Lia4Lij4Li04LiB4Liy4Lij4LiX4Li14LmI4LmA4LiB4LmH4Lia4LiC4LmJ4Lit4Lih4Li54LilIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+IuC4l+C4suC4h+C4peC4seC4lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4i4Lit4Li44Lib4LiB4Lij4LiT4LmMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4i4LmB4Lit4Lib4LmA4Lie4Li04LmI4Lih4LmA4LiV4Li04LihIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4i4LmB4Liq4LiU4LiH4Lit4Li44Lib4LiB4Lij4LiT4LmM4LiC4Lix4LmJ4LiZ4Liq4Li54LiHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4i4LmB4Liq4LiU4LiH4LiC4LiZ4Liy4LiU4LiC4Lit4LiH4LmE4Lif4Lil4LmMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiLguYHguKrguJTguIfguILguJnguLLguJTguILguK3guIfguK3guLjguJvguIHguKPguJPguYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiLguYTguKHguYjguKHguLXguKPguLLguKLguIHguLLguKMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiLguYTguKHguYjguKrguLLguKHguLLguKPguJbguYDguJvguLTguJTguYTguJ/guKXguYzguYTguJTguYkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+IuC5hOC4oeC5iOC4quC4suC4oeC4suC4o+C4luC4peC4muC5gOC4reC4geC4quC4suC4o+C4muC4suC4h+C4o+C4suC4ouC4geC4suC4oyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiLguYHguIrguKPguYzguJzguYjguLLguJkiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtdGwvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXRsL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwZmQ4YzgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXRsL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+Ik1nYSBEb2t1bWVudG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+IkJ1a3NhbiBtdWxhIHNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfc2F2ZSIgbXNnaWQ9IjI0MzM2Nzk2NjQ4ODI4NTc5OTkiPiJJLXNhdmUgc2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4iR3VtYXdhIG5nIGZvbGRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJWaWV3IG5nIGdyaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iVmlldyBuZyBsaXN0YWhhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiJQYWctdXJpLXVyaWluIGF5b24gc2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJNYWdoYW5hcCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4iTWdhIFNldHRpbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiJCdWtzYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4iSS1zYXZlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zaGFyZSIgbXNnaWQ9IjMwNzUxNDk5ODM5Nzk2MjgxNDYiPiJJYmFoYWdpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4iVGFuZ2dhbGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4gYW5nIHBpbmlsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiJBeW9uIHNhIHBhbmdhbGFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4iQXlvbiBzYSBwZXRzYSBuZyBwYWdiYWdvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IkF5b24gc2EgbGFraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IklwYWtpdGEgYW5nIG1nYSByb290Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+Ikl0YWdvIGFuZyBtZ2Egcm9vdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4iSGluZGkgbmEtc2F2ZSBhbmcgZG9rdW1lbnRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+IkhpbmRpIG5hZ2F3YSBhbmcgZm9sZGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iSGluZGkgbmEtcXVlcnkgYW5nIG1nYSBkb2t1bWVudG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiJLYW1ha2FpbGFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+IGFuZyBsaWJyZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zZXJ2aWNlIiBtc2dpZD0iMjE3ODg1NDg5NDQxNjc3NTQwOSI+Ik1nYSBzZXJiaXN5byBuZyBzdG9yYWdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+Ik1nYSBTaG9ydGN1dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4iTWdhIERldmljZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+IkhpZ2l0IHBhbmcgYXBwcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+IklwYWtpdGEgYW5nIG1nYSBhZHZhbmNlZCBuYSBkZXZpY2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJJcGFraXRhIGFuZyBsYWtpIG5nIGZpbGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+IklwYWtpdGEgYW5nIGxha2kgbmcgZGV2aWNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4iV2FsYW5nIG1nYSBpdGVtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4iSGluZGkgbWFidWtzYW4gYW5nIGZpbGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+IkhpbmRpIG1hdGFuZ2dhbCBhbmcgaWxhbmcgZG9rdW1lbnRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IkliYWhhZ2kgc2EgcGFtYW1hZ2l0YW4gbmciPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtdHIvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXRyL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5OWE1Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXRyL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IkRva8O8bWFubGFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiLFnnVyYWRhbiBhw6c6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfc2F2ZSIgbXNnaWQ9IjI0MzM2Nzk2NjQ4ODI4NTc5OTkiPiLFnnVyYXlhIGtheWRldDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2NyZWF0ZV9kaXIiIG1zZ2lkPSI1OTQ3Mjg5NjA1ODQ0Mzk4Mzg5Ij4iS2xhc8O2ciBvbHXFn3R1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJUYWJsbyBnw7Zyw7xuw7xtw7wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4iTGlzdGUgZ8O2csO8bsO8bcO8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IlPEsXJhbGFtYSDDtmzDp8O8dMO8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZWFyY2giIG1zZ2lkPSIzODE2NzEyMDg0NTAyODU2OTc0Ij4iQXJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiJBeWFybGFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4iQcOnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+IktheWRldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4iUGF5bGHFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IlNpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJGQ8L3hsaWZmOmc+IHRhbmUgc2XDp2lsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4iQWRhIGfDtnJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4iRGXEn2nFn2lrbGlrIHRhcmloaW5lIGfDtnJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IkJveXV0YSBnw7ZyZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IkvDtmtsZXJpIGfDtnN0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfY2xvc2UiIG1zZ2lkPSI3NjAyNzM0MzY4NTUyMTIzMzE4Ij4iS8O2a2xlcmkgc2FrbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IkRva8O8bWFuIGtheWRlZGlsZW1lZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjcmVhdGVfZXJyb3IiIG1zZ2lkPSIzNzM1NjQ5MTQxMzM1NDQ0MjE1Ij4iS2xhc8O2ciBvbHXFn3R1cnVsYW1hZMSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iRG9rw7xtYW5sYXIgc29yZ3VsYW5hbWFkxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiJFbiBzb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4gYm/FnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zZXJ2aWNlIiBtc2dpZD0iMjE3ODg1NDg5NDQxNjc3NTQwOSI+IkRlcG9sYW1hIGhpem1ldGxlcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4iS8Sxc2F5b2xsYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfZGV2aWNlIiBtc2dpZD0iNzEyMTM0MjQ3NDY1MzQ4MzUzOCI+IkNpaGF6bGFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2FwcHMiIG1zZ2lkPSI4ODM4MDY1MzY3OTg1OTQ1MTg5Ij4iRGnEn2VyIHV5Z3VsYW1hbGFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9hZHZhbmNlZF9kZXZpY2VzIiBtc2dpZD0iOTAzMjU3MjM5NjA5MzAxMjc2Ij4iR2VsacWfbWnFnyBjaWhhemxhcsSxIGfDtnN0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJEb3N5YSBib3l1dHVudSBnw7ZzdGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9kZXZpY2Vfc2l6ZSIgbXNnaWQ9IjM1NDIxMDY4ODMyNzg5OTcyMjIiPiJDaWhheiBib3l1dHVudSBnw7ZzdGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZW1wdHkiIG1zZ2lkPSI3ODU4ODgyODAzNzA4MTE3NTk2Ij4iw5bEn2UgeW9rIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4iRG9zeWEgYcOnxLFsYW3EsXlvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4iQmF6xLEgZG9rw7xtYW5sYXIgc2lsaW5lbWl5b3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4ixZ51bnUga3VsbGFuYXJhayBwYXlsYcWfOiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy11ay9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtdWsvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg3YjZhMgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtdWsvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4i0JTQvtC60YPQvNC10L3RgtC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiLQktGW0LTQutGA0LjRgtC4INCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfc2F2ZSIgbXNnaWQ9IjI0MzM2Nzk2NjQ4ODI4NTc5OTkiPiLQl9Cx0LXRgNC10LPRgtC4INCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+ItCh0YLQstC+0YDQuNGC0Lgg0L/QsNC/0LrRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiLQoNC10LbQuNC8INGC0LDQsdC70LjRhtGWIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+ItCg0LXQttC40Lwg0YHQv9C40YHQutGDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+ItCf0LDRgNCw0LzQtdGC0YDQuCDRgdC+0YDRgtGD0LLQsNC90L3RjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+ItCf0L7RiNGD0LoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+ItCd0LDQu9Cw0YjRgtGD0LLQsNC90L3RjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+ItCS0ZbQtNC60YDQuNGC0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4i0JfQsdC10YDQtdCz0YLQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4i0J/QvtC00ZbQu9C40YLQuNGB0Y8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2RlbGV0ZSIgbXNnaWQ9IjgxMzg3OTk2MjM4NTA2MTQxNzciPiLQktC40LTQsNC70LjRgtC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+ItCS0LjQsdGA0LDQvdC+IDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4i0JfQsCDQvdCw0LfQstC+0Y4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiLQl9CwINC00LDRgtC+0Y4g0LfQvNGW0L3QtdC90L3RjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiLQl9CwINGA0L7Qt9C80ZbRgNC+0LwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiLQn9C+0LrQsNC30LDRgtC4INC60L7RgNC10L3QtdCy0ZYg0LrQsNGC0LDQu9C+0LPQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiLQodGF0L7QstCw0YLQuCDQutC+0YDQtdC90LXQstGWINC60LDRgtCw0LvQvtCz0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+ItCd0LUg0LLQtNCw0LvQvtGB0Y8g0LfQsdC10YDQtdCz0YLQuCDQtNC+0LrRg9C80LXQvdGCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+ItCf0L7QvNC40LvQutCwINGB0YLQstC+0YDQtdC90L3RjyDQv9Cw0L/QutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4i0J/QvtC80LjQu9C60LAg0L3QsNC00YHQuNC70LDQvdC90Y8g0LfQsNC/0LjRgtGDINC90LAg0LTQvtC60YPQvNC10L3RgtC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9yZWNlbnQiIG1zZ2lkPSI0NDcwMDUzNzA0MzIwNTE4MTMzIj4i0J7RgdGC0LDQvdC90ZYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiI8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4g0LLRltC70YzQvdC+0LPQviDQvNGW0YHRhtGPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3NlcnZpY2UiIG1zZ2lkPSIyMTc4ODU0ODk0NDE2Nzc1NDA5Ij4i0J7QvdC70LDQudC9LdGB0YXQvtCy0LjRidCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+ItCv0YDQu9C40LrQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4i0J/RgNC40YHRgtGA0L7RlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9hcHBzIiBtc2dpZD0iODgzODA2NTM2Nzk4NTk0NTE4OSI+ItCG0L3RiNGWINC/0YDQvtCz0YDQsNC80LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiLQn9C+0LrQsNC30LDRgtC4INC/0L7QutGA0LDRidC10L3RliDQv9GA0LjRgdGC0YDQvtGXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJlZl9maWxlX3NpemUiIG1zZ2lkPSIyODI2ODc5MzE1NzQzOTYxNDU5Ij4i0J/QvtC60LDQt9Cw0YLQuCDRgNC+0LfQvNGW0YAg0YTQsNC50LvRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4i0J/QvtC60LDQt9Cw0YLQuCDRgNC+0LfQvNGW0YAg0L/RgNC40YHRgtGA0L7RjiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+ItCd0LXQvNCw0ZQg0LXQu9C10LzQtdC90YLRltCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfbm9fYXBwbGljYXRpb24iIG1zZ2lkPSIxMzM5ODg1OTc0MDY3ODkxNjY3Ij4i0J3QtSDQstC00LDQu9C+0YHRjyDQstGW0LTQutGA0LjRgtC4INGE0LDQudC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3RfZmFpbGVkX2RlbGV0ZSIgbXNnaWQ9IjIxODA2NzgwMTk0MDcyNDQwNjkiPiLQndC1INCy0LTQsNC70L7RgdGPINCy0LjQtNCw0LvQuNGC0Lgg0LTQtdGP0LrRliDQtNC+0LrRg9C80LXQvdGC0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4i0J3QsNC00ZbRgdC70LDRgtC4INGH0LXRgNC10LciPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtdmkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXZpL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxZTI5ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXZpL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IlTDoGkgbGnhu4d1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiJN4bufIHThu6siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IkzGsHUgdsOgbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiJU4bqhbyB0aMawIG3hu6VjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9ncmlkIiBtc2dpZD0iNjg3ODAyMTMzNDQ5NzgzNTI1OSI+IkNo4bq/IMSR4buZIHhlbSBsxrDhu5tpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+IkNo4bq/IMSR4buZIHhlbSBkYW5oIHPDoWNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IlPhuq9wIHjhur9wIHRoZW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiJUw6xtIGtp4bq/bSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4iQ8OgaSDEkeG6t3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X29wZW4iIG1zZ2lkPSI0MzI5MjI5NTcyNzQ5MjA5MDMiPiJN4bufIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+IkzGsHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IkNoaWEgc+G6uyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IljDs2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4ixJDDoyBjaOG7jW4gPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiJUaGVvIHTDqm4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X2RhdGUiIG1zZ2lkPSI1ODYwODAwMzI5NTYxNTE0NDgiPiJUaGVvIG5nw6B5IHPhu61hIMSR4buVaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiJUaGVvIGvDrWNoIHRoxrDhu5tjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX29wZW4iIG1zZ2lkPSI0NTQ1NDY2NTMyNDMwMjI2OTQ5Ij4iSGnhu4NuIHRo4buLIGfhu5FjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IuG6qG4gZ+G7kWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+Iktow7RuZyBsxrB1IHTDoGkgbGnhu4d1IMSRxrDhu6NjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+Iktow7RuZyB0aOG7gyB04bqhbyB0aMawIG3hu6VjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iS2jDtG5nIHRydXkgduG6pW4gxJHGsOG7o2MgdMOgaSBsaeG7h3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiJH4bqnbiDEkcOieSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfYXZhaWxhYmxlX2J5dGVzIiBtc2dpZD0iODU2ODQ1Mjg1ODYxNzAzMzI4MSI+Ijx4bGlmZjpnIGlkPSJTSVpFIj4lMSRzPC94bGlmZjpnPiBjw7JuIHRy4buRbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiJE4buLY2ggduG7pSBsxrB1IHRy4buvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+Ikzhu5FpIHThuq90Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiJUaGnhur90IGLhu4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiJDw6FjIOG7qW5nIGThu6VuZyBraMOhYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfYWR2YW5jZWRfZGV2aWNlcyIgbXNnaWQ9IjkwMzI1NzIzOTYwOTMwMTI3NiI+Ikhp4buDbiB0aOG7iyBjw6FjIHRoaeG6v3QgYuG7iyBuw6JuZyBjYW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJIaeG7g24gdGjhu4sga8OtY2ggdGjGsOG7m2MgdOG7h3AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+Ikhp4buDbiB0aOG7iyBrw61jaCB0aMaw4bubYyB0aGnhur90IGLhu4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJlbXB0eSIgbXNnaWQ9Ijc4NTg4ODI4MDM3MDgxMTc1OTYiPiJLaMO0bmcgY8OzIG3hu6VjIG7DoG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJLaMO0bmcgdGjhu4MgbeG7nyB04buHcCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4iS2jDtG5nIHRo4buDIHjDs2EgbeG7mXQgc+G7kSB0w6BpIGxp4buHdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNoYXJlX3ZpYSIgbXNnaWQ9Ijg5NjY1OTQyNDYyNjEzNDQyNTkiPiJDaGlhIHPhursgcXVhIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXpoLXJDTi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtemgtckNOL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MmNkYTcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXpoLXJDTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjI3ODM4NDE3NjQ2MTcyMzgzNTQiPiLmlofmoaMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+IuaJk+W8gOaWh+S7tiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4i5L+d5a2Y5paH5Lu2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9jcmVhdGVfZGlyIiBtc2dpZD0iNTk0NzI4OTYwNTg0NDM5ODM4OSI+IuaWsOW7uuaWh+S7tuWkuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiLnvZHmoLzop4blm74iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2xpc3QiIG1zZ2lkPSI3Mjc5Mjg1OTM5ODkyNDE3Mjc5Ij4i5YiX6KGo6KeG5Zu+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zb3J0IiBtc2dpZD0iNzY3Nzc0MDQwNzE1ODQxNDQ1MiI+IuaOkuW6j+S+neaNriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IuaQnOe0oiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2V0dGluZ3MiIG1zZ2lkPSI2MDA4MDMzMTQ4OTQ4NDI4ODIzIj4i6K6+572uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9vcGVuIiBtc2dpZD0iNDMyOTIyOTU3Mjc0OTIwOTAzIj4i5omT5byAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zYXZlIiBtc2dpZD0iMjM5NDc0MzMzNzY4NDQyNjMzOCI+IuS/neWtmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2hhcmUiIG1zZ2lkPSIzMDc1MTQ5OTgzOTc5NjI4MTQ2Ij4i5YiG5LqrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9kZWxldGUiIG1zZ2lkPSI4MTM4Nzk5NjIzODUwNjE0MTc3Ij4i5Yig6ZmkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibW9kZV9zZWxlY3RlZF9jb3VudCIgbXNnaWQ9IjQ1OTExMTg5NDcyNTU5NDYyNSI+IuW3sumAieaLqTx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkZDwveGxpZmY6Zz7pobkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4i5oyJ5ZCN56ewIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4i5oyJ5L+u5pS55pel5pyfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IuaMieWkp+WwjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+IuaYvuekuuagueebruW9lSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiLpmpDol4/moLnnm67lvZUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IuaXoOazleS/neWtmOaWh+ahoyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiLml6Dms5XliJvlu7rmlofku7blpLkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLml6Dms5Xmn6Xor6LmlofmoaMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiLmnIDov5EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiLlj6/nlKjnqbrpl7TvvJo8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiLlrZjlgqjmnI3liqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4i5o235b6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiLorr7lpIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiLmm7TlpJrlupTnlKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiLmmL7npLrpq5jnuqforr7lpIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiLmmL7npLrmlofku7blpKflsI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+IuaYvuekuuiuvuWkh+Wkp+WwjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+IuaXoOS7u+S9leaWh+S7tiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+IuaXoOazleaJk+W8gOaWh+S7tiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4i5peg5rOV5Yig6Zmk6YOo5YiG5paH5qGjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IuWIhuS6q+aWueW8jyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy16aC1ySEsvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2VkNTg3Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy16aC1ySEsvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4i5paH5Lu2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiLplovllZ/oh6oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IuWEsuWtmOiHsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiLlu7rnq4vos4fmlpnlpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4i5qC854uA5qqi6KaWIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+Iua4heWWruaqouimliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiLmjpLluo/mlrnlvI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiLmkJzlsIsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IuioreWumiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+IumWi+WVnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiLlhLLlrZgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IuWIhuS6qyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IuWIqumZpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiLlt7Lpgbjlj5YgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiDlgIsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4i5oyJ5ZCN56ixIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4i5oyJ5L+u5pS55pel5pyfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IuaMieWkp+WwjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+Iumhr+ekuuagueebrumMhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiLpmrHol4/moLnnm67pjIQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IueEoeazleWEsuWtmOaWh+S7tiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiLnhKHms5Xlu7rnq4vos4fmlpnlpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLnhKHms5Xmn6XoqaLmlofku7YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiLov5HmnJ/nlKjpgY4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiLlj6/nlKjnqbrplpPvvJo8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiLlhLLlrZjnqbrplpPmnI3li5kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4i5o235b6RIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiLoo53nva4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiLmm7TlpJrmh4nnlKjnqIvlvI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiLpoa/npLrpgLLpmo7oo53nva4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiLpoa/npLrmqpTmoYjlpKflsI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+Iumhr+ekuuijnee9ruWkp+WwjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+IuaykuaciemgheebriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+IueEoeazlemWi+WVn+aqlOahiCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4i54Sh5rOV5Yiq6Zmk6YOo5YiG5paH5Lu2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IuWIhuS6q+aWueW8j++8miI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy16aC1yVFcvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXpoLXJUVy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjk1ODNhCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy16aC1yVFcvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIyNzgzODQxNzY0NjE3MjM4MzU0Ij4i5paH5Lu2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfb3BlbiIgbXNnaWQ9IjQzNTMyMjg5Mzc2NjM5MTc4MDEiPiLplovllZ/lt6XlhbciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9zYXZlIiBtc2dpZD0iMjQzMzY3OTY2NDg4Mjg1Nzk5OSI+IuWEsuWtmOiHsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiLlu7rnq4vos4fmlpnlpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X2dyaWQiIG1zZ2lkPSI2ODc4MDIxMzM0NDk3ODM1MjU5Ij4i5qC854uA5qqi6KaWIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+Iua4heWWruaqouimliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiLmjpLluo/kvp3mk5oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NlYXJjaCIgbXNnaWQ9IjM4MTY3MTIwODQ1MDI4NTY5NzQiPiLmkJzlsIsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NldHRpbmdzIiBtc2dpZD0iNjAwODAzMzE0ODk0ODQyODgyMyI+IuioreWumiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+IumWi+WVnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2F2ZSIgbXNnaWQ9IjIzOTQ3NDMzMzc2ODQ0MjYzMzgiPiLlhLLlrZgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NoYXJlIiBtc2dpZD0iMzA3NTE0OTk4Mzk3OTYyODE0NiI+IuWFseeUqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IuWIqumZpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1vZGVfc2VsZWN0ZWRfY291bnQiIG1zZ2lkPSI0NTkxMTE4OTQ3MjU1OTQ2MjUiPiLlt7Lpgbjlj5YgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiDlgIvpoIXnm64iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzb3J0X25hbWUiIG1zZ2lkPSI5MTgzNTYwNDY3OTE3MjU2Nzc5Ij4i5L6d5ZCN56ixIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4i5L6d5L+u5pS55pel5pyfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9zaXplIiBtc2dpZD0iMzM1MDY4MTMxOTczNTQ3NDc0MSI+IuS+neWkp+WwjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9vcGVuIiBtc2dpZD0iNDU0NTQ2NjUzMjQzMDIyNjk0OSI+Iumhr+ekuuagueebrumMhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRyYXdlcl9jbG9zZSIgbXNnaWQ9Ijc2MDI3MzQzNjg1NTIxMjMzMTgiPiLpmrHol4/moLnnm67pjIQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2Vycm9yIiBtc2dpZD0iNjE2NzAwOTc3ODAwMzIyMzY2NCI+IueEoeazleWEsuWtmOaWh+S7tiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNyZWF0ZV9lcnJvciIgbXNnaWQ9IjM3MzU2NDkxNDEzMzU0NDQyMTUiPiLnhKHms5Xlu7rnq4vos4fmlpnlpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWVyeV9lcnJvciIgbXNnaWQ9IjEyMjI0NDgyNjE2NjM1MDM1MDEiPiLnhKHms5Xmn6XoqaLmlofku7YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiLmnIDov5Hkvb/nlKjpgY7nmoTpoIXnm64iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2F2YWlsYWJsZV9ieXRlcyIgbXNnaWQ9Ijg1Njg0NTI4NTg2MTcwMzMyODEiPiLlj6/nlKjnqbrplpPvvJo8eGxpZmY6ZyBpZD0iU0laRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2VydmljZSIgbXNnaWQ9IjIxNzg4NTQ4OTQ0MTY3NzU0MDkiPiLlhLLlrZjnqbrplpPmnI3li5kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfc2hvcnRjdXQiIG1zZ2lkPSIzMzE4NzYwNjA5NDcxNjE4MDkzIj4i5o235b6RIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX2RldmljZSIgbXNnaWQ9IjcxMjEzNDI0NzQ2NTM0ODM1MzgiPiLoo53nva4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiLmm7TlpJrmh4nnlKjnqIvlvI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiLpoa/npLrpgLLpmo7oo53nva4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiLpoa/npLrmqpTmoYjlpKflsI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2RldmljZV9zaXplIiBtc2dpZD0iMzU0MjEwNjg4MzI3ODk5NzIyMiI+Iumhr+ekuuijnee9ruWkp+WwjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+IuaykuaciemgheebriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X25vX2FwcGxpY2F0aW9uIiBtc2dpZD0iMTMzOTg4NTk3NDA2Nzg5MTY2NyI+IueEoeazlemWi+WVn+aqlOahiCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X2ZhaWxlZF9kZWxldGUiIG1zZ2lkPSIyMTgwNjc4MDE5NDA3MjQ0MDY5Ij4i54Sh5rOV5Yiq6Zmk6YOo5YiG5paH5Lu2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2hhcmVfdmlhIiBtc2dpZD0iODk2NjU5NDI0NjI2MTM0NDI1OSI+IuWIhuS6q+aWueW8j++8miI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRG9jdW1lbnRzVUkvcmVzL3ZhbHVlcy16dS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0RvY3VtZW50c1VJL3Jlcy92YWx1ZXMtenUvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVkZDJjZGYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9Eb2N1bWVudHNVSS9yZXMvdmFsdWVzLXp1L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMjc4Mzg0MTc2NDYxNzIzODM1NCI+IkFtYWRva2h1bWVudGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV9vcGVuIiBtc2dpZD0iNDM1MzIyODkzNzY2MzkxNzgwMSI+IlZ1bGEga3VzdWthIGt1LSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3NhdmUiIG1zZ2lkPSIyNDMzNjc5NjY0ODgyODU3OTk5Ij4iTG9uZG9sb3phIGt1LSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfY3JlYXRlX2RpciIgbXNnaWQ9IjU5NDcyODk2MDU4NDQzOTgzODkiPiJEYWxhIGlmb2xkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZ3JpZCIgbXNnaWQ9IjY4NzgwMjEzMzQ0OTc4MzUyNTkiPiJVa3VidWthIGt3ZWdyaWRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9saXN0IiBtc2dpZD0iNzI3OTI4NTkzOTg5MjQxNzI3OSI+IlVrdWJ1a2EgdWhsdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc29ydCIgbXNnaWQ9Ijc2Nzc3NDA0MDcxNTg0MTQ0NTIiPiJIbHVuZ2EgbmdlLSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfc2VhcmNoIiBtc2dpZD0iMzgxNjcxMjA4NDUwMjg1Njk3NCI+IlNlc2hhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zZXR0aW5ncyIgbXNnaWQ9IjYwMDgwMzMxNDg5NDg0Mjg4MjMiPiJJemlsdW5naXNlbGVsbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfb3BlbiIgbXNnaWQ9IjQzMjkyMjk1NzI3NDkyMDkwMyI+IlZ1bGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtZW51X3NhdmUiIG1zZ2lkPSIyMzk0NzQzMzM3Njg0NDI2MzM4Ij4iTG9uZG9sb3phIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibWVudV9zaGFyZSIgbXNnaWQ9IjMwNzUxNDk5ODM5Nzk2MjgxNDYiPiJZYWJlbGFuYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im1lbnVfZGVsZXRlIiBtc2dpZD0iODEzODc5OTYyMzg1MDYxNDE3NyI+IlN1c2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJtb2RlX3NlbGVjdGVkX2NvdW50IiBtc2dpZD0iNDU5MTExODk0NzI1NTk0NjI1Ij4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRkPC94bGlmZjpnPiBva3VraGV0aGl3ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfbmFtZSIgbXNnaWQ9IjkxODM1NjA0Njc5MTcyNTY3NzkiPiJOZ2VnYW1hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic29ydF9kYXRlIiBtc2dpZD0iNTg2MDgwMDMyOTU2MTUxNDQ4Ij4iTmdlZGV0aGkgeW9rdWd1cXVsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNvcnRfc2l6ZSIgbXNnaWQ9IjMzNTA2ODEzMTk3MzU0NzQ3NDEiPiJOZ29zYXlpemkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkcmF3ZXJfb3BlbiIgbXNnaWQ9IjQ1NDU0NjY1MzI0MzAyMjY5NDkiPiJCb25pc2EgaXppbXBhbmRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHJhd2VyX2Nsb3NlIiBtc2dpZD0iNzYwMjczNDM2ODU1MjEyMzMxOCI+IkZpaGxhIGl6aW1wYW5kZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfZXJyb3IiIG1zZ2lkPSI2MTY3MDA5Nzc4MDAzMjIzNjY0Ij4iWWVobHVsZWtpbGUgdWt1bG9uZG9sb3phIGlkb2todW1lbnRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY3JlYXRlX2Vycm9yIiBtc2dpZD0iMzczNTY0OTE0MTMzNTQ0NDIxNSI+IlllaGx1bGVraWxlIHVrdWRhbGEgaWZvbGRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVlcnlfZXJyb3IiIG1zZ2lkPSIxMjIyNDQ4MjYxNjYzNTAzNTAxIj4iSWhsdWxla2lsZSB1a3VidXphIGFtYWRva2h1bWVudGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3JlY2VudCIgbXNnaWQ9IjQ0NzAwNTM3MDQzMjA1MTgxMzMiPiJPa3dha2FtdXZhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9hdmFpbGFibGVfYnl0ZXMiIG1zZ2lkPSI4NTY4NDUyODU4NjE3MDMzMjgxIj4iPHhsaWZmOmcgaWQ9IlNJWkUiPiUxJHM8L3hsaWZmOmc+IG9raHVsdWxla2lsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9zZXJ2aWNlIiBtc2dpZD0iMjE3ODg1NDg5NDQxNjc3NTQwOSI+IkFtYXNldmlzaSB3ZXNpdG9yZWppIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF90eXBlX3Nob3J0Y3V0IiBtc2dpZD0iMzMxODc2MDYwOTQ3MTYxODA5MyI+Ikl6aW5xYW11bGVsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfdHlwZV9kZXZpY2UiIG1zZ2lkPSI3MTIxMzQyNDc0NjUzNDgzNTM4Ij4iQW1hZGl2YXlpc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X3R5cGVfYXBwcyIgbXNnaWQ9Ijg4MzgwNjUzNjc5ODU5NDUxODkiPiJJemluaGxlbG8gem9rdXNlYmVuemEgZXppbmluZ2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2FkdmFuY2VkX2RldmljZXMiIG1zZ2lkPSI5MDMyNTcyMzk2MDkzMDEyNzYiPiJCb25pc2EgYW1hZGl2YXlpc2kgYXBoYWtlbWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmVmX2ZpbGVfc2l6ZSIgbXNnaWQ9IjI4MjY4NzkzMTU3NDM5NjE0NTkiPiJCb25pc2EgdXNheWl6aSB3ZWZheWVsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByZWZfZGV2aWNlX3NpemUiIG1zZ2lkPSIzNTQyMTA2ODgzMjc4OTk3MjIyIj4iQm9uaXNhIHVzYXlpemkgd2VkaXZheWlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImVtcHR5IiBtc2dpZD0iNzg1ODg4MjgwMzcwODExNzU5NiI+IkF6aWtobyBpemludG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9ub19hcHBsaWNhdGlvbiIgbXNnaWQ9IjEzMzk4ODU5NzQwNjc4OTE2NjciPiJBeWlrd2F6aSB1a3V2dWxhIGlmYXllbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9mYWlsZWRfZGVsZXRlIiBtc2dpZD0iMjE4MDY3ODAxOTQwNzI0NDA2OSI+IkF5aWt3YXppIHVrdXN1c2EgYW1hbnllIGFtYWRva2h1bWVudGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzaGFyZV92aWEiIG1zZ2lkPSI4OTY2NTk0MjQ2MjYxMzQ0MjU5Ij4iWWFiZWxhbmEgbmdlLSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1hZi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtYWYvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWRlODgxZAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtYWYvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4iRWtzdGVybmUgYmVyZ2luZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IkludGVybmUgYmVyZ2luZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IkRva3VtZW50ZSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1hbS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtYW0vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjMwZmIwNgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtYW0vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4i4YuN4Yyr4YuKIOGIm+GKqOGIm+GJuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IuGLjeGIteGMo+GLiiDhiJvhiqjhiJvhibsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiLhiLDhipDhi7bhib0iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtYXIvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWFyL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyMGEwNTYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWFyL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+ItmI2K3Yr9ipINiq2K7YstmK2YYg2K7Yp9ix2KzZitipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4i2YjYrdiv2Kkg2KrYrtiy2YrZhiDYr9in2K7ZhNmK2KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiLZhdiz2KrZhtiv2KfYqiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1hei1yQVovc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWF6LXJBWi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmE3OWNhOAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtYXotckFaL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IlhhcmljaSBZYWRkYcWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4iRGF4aWxpIHlhZGRhxZ8iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtYXovc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWF6L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2YTc5Y2E4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1hei9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiJYYXJpY2kgWWFkZGHFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IkRheGlsaSB5YWRkYcWfIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWJnL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1iZy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWRjZTMxCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1iZy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiLQktGK0L3RiNC90L4g0YXRgNCw0L3QuNC70LjRidC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4i0JLRitGC0YDQtdGI0L3QviDRhdGA0LDQvdC40LvQuNGJ0LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiLQlNC+0LrRg9C80LXQvdGC0LgiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtY2Evc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWNhL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1ZTlkNDYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWNhL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IkVtbWFnYXR6ZW1hdGdlIGV4dGVybiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IkVtbWFnYXR6ZW1hdGdlIGludGVybiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IkRvY3VtZW50cyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1jcy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtY3Mvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY4YTkyOAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtY3Mvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4iRXh0ZXJuw60gw7psb8W+acWhdMSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4iSW50ZXJuw60gw7psb8W+acWhdMSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4iRG9rdW1lbnR5Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWRhL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1kYS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWVjYjY5Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1kYS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiJFa3N0ZXJuIGxhZ3JpbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiJJbnRlcm4gbGFncmluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IkRva3VtZW50ZXIiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtZGUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWRlL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxODYzNGEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWRlL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IkV4dGVybmVyIFNwZWljaGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4iSW50ZXJuZXIgU3BlaWNoZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiJEb2t1bWVudGUiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtZWwvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWVsL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzYWE3OTIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWVsL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+Is6Vzr7Pic+EzrXPgc65zrrPjM+CIM6xz4DOv864zrfOus61z4XPhM65zrrPjM+CIM+Hz47Pgc6/z4IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiLOlc+Dz4nPhM61z4HOuc66z4zPgiDOsc+Azr/OuM63zrrOtc+Fz4TOuc66z4zPgiDPh8+Oz4HOv8+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4izojOs86zz4HOsc+GzrEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtZW4tckdCL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1lbi1yR0Ivc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg4ZWI5ZQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtZW4tckdCL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IkV4dGVybmFsIFN0b3JhZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiJJbnRlcm5hbCBzdG9yYWdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4iRG9jdW1lbnRzIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWVuLXJJTi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4OGViOWUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWVuLXJJTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiJFeHRlcm5hbCBTdG9yYWdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4iSW50ZXJuYWwgc3RvcmFnZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IkRvY3VtZW50cyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1lcy1yVVMvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWVzLXJVUy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2UzOGI1Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1lcy1yVVMvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4iQWxtYWNlbmFtaWVudG8gZXh0ZXJubyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IkFsbWFjZW5hbWllbnRvIGludGVybm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiJEb2N1bWVudG9zIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWVzL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1lcy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2UzOGI1Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1lcy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiJBbG1hY2VuYW1pZW50byBleHRlcm5vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4iQWxtYWNlbmFtaWVudG8gaW50ZXJubyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IkRvY3VtZW50b3MiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1ldC1yRUUvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjgyNGU5ZAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IlbDpGxpbmUgdGFsbGV0dXNydXVtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4iU2lzZW1pbmUgc2FsdmVzdHVzcnV1bSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IkRva3VtZW5kaWQiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtZmEvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWZhL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0NzFmYzcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWZhL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+ItmB2LbYp9uMINiw2K7bjNix2Ycg2K7Yp9ix2KzbjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+Itit2KfZgdi42YfZlCDYr9in2K7ZhNuMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4i2KfYs9mG2KfYryI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1maS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtZmkvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQxZmJhYQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtZmkvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4iVWxrb2luZW4gdGFsbGVubnVzdGlsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IlNpc8OkaW5lbiB0YWxsZW5udXN0aWxhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4iRG9rdW1lbnRpdCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1mci1yQ0Evc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iM2ZkZDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1mci1yQ0Evc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4iU3RvY2thZ2UgZXh0ZXJuZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+Ik3DqW1vaXJlIGRlIHN0b2NrYWdlIGludGVybmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiJEb2N1bWVudHMiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtZnIvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWZyL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzZmRkNDgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWZyL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IlN0b2NrYWdlIGV4dGVybmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiJNw6ltb2lyZSBkZSBzdG9ja2FnZSBpbnRlcm5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4iRG9jdW1lbnRzIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1oaS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjI3YmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1oaS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiLgpKzgpL7gpLngpLDgpYAg4KS44KSC4KSX4KWN4KSw4KS54KSjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4i4KSu4KWL4KSs4KS+4KSH4KSyIOCkuOCkguCkl+CljeCksOCkueCkoyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IuCkpuCkuOCljeCkpOCkvuCkteClh+CknOCkvCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1oci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtaHIvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc0ZjhlOAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtaHIvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4iVmFuanNrYSBwb2hyYW5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4iVW51dGFybmphIHBvaHJhbmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiJEb2t1bWVudGkiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtaHUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWh1L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmNzJiNDEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWh1L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IkvDvGxzxZEgdMOhcmhlbHkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiJCZWxzxZEgdMOhcmhlbHkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiJEb2t1bWVudHVtb2siPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTM2MDEyNAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+ItSx1oDVv9Wh1oTVq9W2INW61aHVsNW41oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiLVhtWl1oDWhNWr1bYg1brVodWw1bjWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+ItWT1aHVvdW/1aHVqdWy1anVpdaAIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWluL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1pbi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmFjZGU3Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1pbi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiJQZW55aW1wYW5hbiBFa3N0ZXJuYWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiJQZW55aW1wYW5hbiBpbnRlcm5hbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IkRva3VtZW4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtaXQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWl0L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1N2I1ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWl0L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IkFyY2hpdmlvIGVzdGVybm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiJNZW1vcmlhIGludGVybmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiJEb2N1bWVudGkiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtaXcvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWl3L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3NTUwNmEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWl3L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IteQ15fXodeV158g15fXmdem15XXoNeZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4i15DXl9eh15XXnyDXpNeg15nXnteZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4i157Xodee15vXmdedIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWphL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1qYS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODhmY2EyCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1qYS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiLlpJbpg6jjgrnjg4jjg6zjg7zjgrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiLlhoXpg6jjgrnjg4jjg6zjg7zjgrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiLjg4njgq3jg6Xjg6Hjg7Pjg4giPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MwNDg2MAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IuGDkuGDkOGDoOGDlCDhg5vhg5Thg67hg6Hhg5jhg5Thg6Dhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiLhg6jhg5jhg5Phg5Ag4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4i4YOT4YOd4YOZ4YOj4YOb4YOU4YOc4YOi4YOU4YOR4YOYIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljZjc2ZDQwCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1rbS1yS0gvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4i4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6B4Z624Z6E4Z6A4Z+S4Z6a4Z+FIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4i4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6B4Z624Z6E4oCL4Z6A4Z+S4Z6T4Z674Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4i4Z6v4Z6A4Z6f4Z624Z6aIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWtvL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1rby9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDlkMzdlCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1rby9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiLsmbjrtoAg7KCA7J6l7IaMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4i64K067aAIOyggOyepeyGjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IuusuOyEnCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWxvLXJMQS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWNkOWY1Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4i4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqe4Lqy4LqN4LqZ4Lqt4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4i4Lqa4LuI4Lqt4LqZ4LqI4Lqx4LqU4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqe4Lqy4LqN4LuD4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4i4LuA4Lqt4oCL4LqB4Lqw4oCL4Lqq4Lqy4LqZIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWx0L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1sdC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDBlYTg5Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1sdC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiJJxaFvcmluxJcgYXRtaW50aW7ElyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IlZpZGluxJcgYXRtaW50aW7ElyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IkRva3VtZW50YWkiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtbHYvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWx2L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMDhmZTgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLWx2L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IsSAcsSTasSBIGtyxIF0dXZlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4iSWVrxaHEk2rEgSBhdG1pxYZhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4iRG9rdW1lbnRpIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtbW4tck1OL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkN2I3ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiLQk9Cw0LTQsNCw0LQg0YHQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4i0JTQvtGC0L7QvtC0INGB0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+ItCU0L7QutGD0LzQtdC90YLSr9Kv0LQiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtbW4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxOTNjZGIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+ItCT0LDQtNCw0LDQtCDRgdCw0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiLQlNC+0YLQvtC+0LQg0YHQsNC9Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLW1zLXJNWS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiNGQ3MzYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLW1zLXJNWS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiJTdG9yYW4gTHVhcmFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4iU3RvcmFuIGRhbGFtYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiJEb2t1bWVuIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLW5iL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWVjYjY5Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiJFa3N0ZXJuIGxhZ3JpbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiJJbnRlcm4gbGFncmluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IkRva3VtZW50ZXIiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtbmUtck5QL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1uZS1yTlAvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE5NDU0ZQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtbmUtck5QL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IuCkrOCkvuCkueCljeCkryDgpK3gpKPgpY3gpKHgpL7gpLDgpKMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiLgpIbgpKjgpY3gpKTgpLDgpL/gpJUg4KSt4KSj4KWN4KSh4KS+4KSw4KSjIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLW5sL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1ubC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGU2MTY2Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1ubC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiJFeHRlcm5lIG9wc2xhZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IkludGVybmUgb3BzbGFnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4iRG9jdW1lbnRlbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1wbC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtcGwvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM1ZTdkNwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtcGwvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4iUGFtacSZxIcgemV3bsSZdHJ6bmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiJQYW1pxJnEhyB3ZXduxJl0cnpuYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IkRva3VtZW50eSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1wdC1yUFQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2M4OWI4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1wdC1yUFQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4iQXJtYXplbmFtZW50byBleHRlcm5vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4iQXJtYXplbmFtZW50byBpbnRlcm5vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4iRG9jdW1lbnRvcyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1wdC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtcHQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzdjODliOAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtcHQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4iQXJtYXplbmFtZW50byBleHRlcm5vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4iQXJtYXplbmFtZW50byBpbnRlcm5vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4iRG9jdW1lbnRvcyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1yby9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtcm8vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJkMGI5OAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtcm8vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4iU3RvY2FyZSBleHRlcm7EgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IlN0b2NhcmUgaW50ZXJuxIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiJEb2N1bWVudGUiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtcnUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXJ1L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2YzEwOTUxCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1ydS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiLQktC90LXRiNC90LjQuSDQvdCw0LrQvtC/0LjRgtC10LvRjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+ItCS0L3Rg9GC0YDQtdC90L3Rj9GPINC/0LDQvNGP0YLRjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+ItCU0L7QutGD0LzQtdC90YLRiyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1zaS1yTEsvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXNpLXJMSy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTNmM2U4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1zaS1yTEsvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4i4La24LeP4LeE4LeS4La7IOC2huC2oOC2uuC2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IuC2heC2t+C3iuKAjeC2uuC2seC3iuC2reC2uyDgtobgtqDgtrrgtrHgtroiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtc2svc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXNrL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkNDI0YzgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXNrL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IkV4dGVybsO9IHVrbGFkYWPDrSBwcmllc3RvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IkludGVybsO9IHVrbGFkYWPDrSBwcmllc3RvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IkRva3VtZW50eSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1zbC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtc2wvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZmYTY5OAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtc2wvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4iWnVuYW5qYSBzaHJhbWJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4iTm90cmFuamEgc2hyYW1iYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IkRva3VtZW50aSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1zci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtc3Ivc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQyMzhhNAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtc3Ivc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4i0KHQv9C+0ZnQvdCwINC80LXQvNC+0YDQuNGY0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiLQmNC90YLQtdGA0L3QsCDQvNC10LzQvtGA0LjRmNCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4i0JTQvtC60YPQvNC10L3RgtC4Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXN2L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1zdi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZWFjMTFlCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy1zdi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiJFeHRlcm4gbGFncmluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IkludGVybiBsYWdyaW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4iRG9rdW1lbnQiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtc3cvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXN3L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMGU0ODMKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXN3L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IkhpZmFkaGkgeWEgTmplIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4iSGlmYWRoaSB5YSBuZGFuaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IkhhdGkiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtdGgvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXRoL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5NjYzNWUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXRoL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IuC4l+C4teC5iOC4iOC4seC4lOC5gOC4geC5h+C4muC4guC5ieC4reC4oeC4ueC4peC4oOC4suC4ouC4meC4reC4gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IuC4l+C4teC5iOC4iOC4seC4lOC5gOC4geC5h+C4muC4guC5ieC4reC4oeC4ueC4peC4oOC4suC4ouC5g+C4mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IuC5gOC4reC4geC4quC4suC4oyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy10bC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtdGwvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI5Y2RjMgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtdGwvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4iRXh0ZXJuYWwgU3RvcmFnZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IkludGVybmFsIHN0b3JhZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiJNZ2EgRG9rdW1lbnRvIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXRyL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy10ci9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNmJkNTJhCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy10ci9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiJIYXJpY2kgRGVwb2xhbWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiJEYWhpbGkgZGVwb2xhbWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiJEb2vDvG1hbmxhciI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy11ay9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtdWsvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjgyMDZlMAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtdWsvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4i0JfQvtCy0L3RltGI0L3RjyDQv9Cw0LzigJnRj9GC0YwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiLQktC90YPRgtGA0ZbRiNC90Y8g0L/QsNC84oCZ0Y/RgtGMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4i0JTQvtC60YPQvNC10L3RgtC4Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXZpL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy12aS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTcxYzkzCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy12aS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiJC4buZIG5o4bubIG5nb8OgaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IkLhu5kgbmjhu5sgdHJvbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiJUw6BpIGxp4buHdSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy16aC1yQ04vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXpoLXJDTi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGY3N2RkCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy16aC1yQ04vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4i5aSW6YOo5a2Y5YKo6K6+5aSHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9pbnRlcm5hbF9zdG9yYWdlIiBtc2dpZD0iODI3ODQ0MjQzMDY4NTg0MTI3Ij4i5YaF6YOo5a2Y5YKo56m66Ze0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4i5paH5qGjIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZDhhZmIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9FeHRlcm5hbFN0b3JhZ2VQcm92aWRlci9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxMjMzNzUyNzU3NDg1MzAyMzQiPiLlpJbpg6jlhLLlrZjnqbrplpMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2ludGVybmFsX3N0b3JhZ2UiIG1zZ2lkPSI4Mjc4NDQyNDMwNjg1ODQxMjciPiLlhafpg6jlhLLlrZjnqbrplpMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyb290X2RvY3VtZW50cyIgbXNnaWQ9IjQwNTEyNTIzMDQwNzU0NjkyNTAiPiLmlofku7YiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy16aC1yVFcvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJkOGFmYgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzEyMzM3NTI3NTc0ODUzMDIzNCI+IuWklumDqOWEsuWtmOepuumWkyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IuWFp+mDqOWEsuWtmOepuumWkyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfZG9jdW1lbnRzIiBtc2dpZD0iNDA1MTI1MjMwNDA3NTQ2OTI1MCI+IuaWh+S7tiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRXh0ZXJuYWxTdG9yYWdlUHJvdmlkZXIvcmVzL3ZhbHVlcy16dS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtenUvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEwYTg0NQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0V4dGVybmFsU3RvcmFnZVByb3ZpZGVyL3Jlcy92YWx1ZXMtenUvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTIzMzc1Mjc1NzQ4NTMwMjM0Ij4iSXNpdG9yZWppIHNhbmdhcGhhbmRsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJvb3RfaW50ZXJuYWxfc3RvcmFnZSIgbXNnaWQ9IjgyNzg0NDI0MzA2ODU4NDEyNyI+IklzaXRvcmVqaSBzYW5nYXBoYWthdGhpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icm9vdF9kb2N1bWVudHMiIG1zZ2lkPSI0MDUxMjUyMzA0MDc1NDY5MjUwIj4iQW1hZG9raHVtZW50aSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWFmL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWFmL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzMjFhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtYWYvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IlNhYW1nZXNtZWx0ZSBsaWdnaW5nIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtYW0vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtYW0vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQyY2NjYwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1hbS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iRnVzZWQgTG9jYXRpb24iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1hci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1hci9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZmJjZjdhCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWFyL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiLYp9mE2YXZiNmC2Lkg2KfZhNmF2K/ZhdisIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtYmcvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtYmcvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQyY2NjYwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1iZy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iRnVzZWQgTG9jYXRpb24iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1jYS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1jYS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGFlNTEyCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWNhL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJVYmljYWNpw7MgY29tYmluYWRhIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtY3Mvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtY3Mvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQyY2NjYwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1jcy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iRnVzZWQgTG9jYXRpb24iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1kYS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1kYS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDJjY2NjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWRhL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJGdXNlZCBMb2NhdGlvbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWRlL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWRlL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3ZTVmYWEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtZGUvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IktvbWJpbmllcnRlIFN0YW5kb3J0YmVzdGltbXVuZyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWVsL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWVsL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyNDNiMjEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtZWwvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+Is6Vzr3Ov8+Azr/Ouc63zrzOrc69zrcgz4TOv8+Azr/OuM61z4POr86xIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtZW4tckdCL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWVuLXJHQi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDJjY2NjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWVuLXJHQi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iRnVzZWQgTG9jYXRpb24iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMmNjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJGdXNlZCBMb2NhdGlvbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWVzLXJVUy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1lcy1yVVMvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM5NTMxNAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1lcy1yVVMvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IlViaWNhY2nDs24gY29tYmluYWRhIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtZXMvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtZXMvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM5NTMxNAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1lcy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iVWJpY2FjacOzbiBjb21iaW5hZGEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1ldC1yRUUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjZjRlZjcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJMaWlkZXR1ZCBhc3Vrb2h0Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtZmEvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtZmEvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQyY2NjYwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1mYS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iRnVzZWQgTG9jYXRpb24iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1maS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1maS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDMwOGIzCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWZpL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJZaGRpc3RldHR5IHNpamFpbnRpIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDJjY2NjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iRnVzZWQgTG9jYXRpb24iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1mci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1mci9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDJjY2NjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWZyL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJGdXNlZCBMb2NhdGlvbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMmNjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IkZ1c2VkIExvY2F0aW9uIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtaHIvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtaHIvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJhMmNjOQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1oci9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iTG9rYWNpamEgaXoga29tYmluaXJhbmloIGl6dm9yYSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWh1L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWh1L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMmNjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtaHUvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IkZ1c2VkIExvY2F0aW9uIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWh5LXJBTS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDJjY2NjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWh5LXJBTS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iRnVzZWQgTG9jYXRpb24iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1pbi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1pbi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDJjY2NjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWluL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJGdXNlZCBMb2NhdGlvbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWl0L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWl0L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMmNjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtaXQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IkZ1c2VkIExvY2F0aW9uIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtaXcvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtaXcvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQyY2NjYwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1pdy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iRnVzZWQgTG9jYXRpb24iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1qYS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1qYS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDJjY2NjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWphL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJGdXNlZCBMb2NhdGlvbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWthLXJHRS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQyY2NjYwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IkZ1c2VkIExvY2F0aW9uIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDllNGY3Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4i4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6R4Z644Z6P4Z624Z+G4Z6EIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMta28vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMta28vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQyY2NjYwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1rby9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iRnVzZWQgTG9jYXRpb24iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtbG8tckxBL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMmNjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtbG8tckxBL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJGdXNlZCBMb2NhdGlvbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWx0L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLWx0L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMmNjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtbHQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IkZ1c2VkIExvY2F0aW9uIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtbHYvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtbHYvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGM0MGNiMgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1sdi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iQXB2aWVub3RhIGF0cmHFoWFuxIFzIHZpZXRhIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtbW4tck1OL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDU1Y2E4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4i0J3RjdCz0LTQvNGN0Lsg0LHQsNC50YDRiNC40LsiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1tcy1yTVkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzNDVjYjgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJMb2thc2kgVGVybGFrdXIiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDJjY2NjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLW5iL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJGdXNlZCBMb2NhdGlvbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLW5sL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLW5sL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzMDAzYzgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtbmwvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IlNhbWVuZ2VzdGVsZGUgbG9jYXRpZSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXBsL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXBsL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzYTllMmEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtcGwvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IlByenlibGnFvG9uYSBsb2thbGl6YWNqYSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1wdC1yUFQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjcwN2ZhOQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1wdC1yUFQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IkxvY2FsaXphw6fDo28gRnVuZGlkYSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXB0L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXB0L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmODI3N2EKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtcHQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IkxvY2FsaXphw6fDo28gY29tYmluYWRhIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtcm8vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtcm8vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQyY2NjYwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1yby9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iRnVzZWQgTG9jYXRpb24iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1ydS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1ydS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGQ5ZTZmCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXJ1L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiLQk9C10L7QtNCw0L3QvdGL0LUg0LjQtyDQvdC10YHQutC+0LvRjNC60LjRhSDQuNGB0YLQvtGH0L3QuNC60L7QsiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXNrL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXNrL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMmNjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtc2svc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IkZ1c2VkIExvY2F0aW9uIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtc2wvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtc2wvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI4YzUwYgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1zbC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iS29tYmluaXJhbmEgbG9rYWNpamEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1zci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1zci9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDJjY2NjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXNyL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJGdXNlZCBMb2NhdGlvbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXN2L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXN2L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMmNjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtc3Yvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IkZ1c2VkIExvY2F0aW9uIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtc3cvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtc3cvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBjMjM1ZQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy1zdy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iRW5lbyBIYWtpa2EiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy10aC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy10aC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDJjY2NjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXRoL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJGdXNlZCBMb2NhdGlvbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXRsL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXRsL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0YTI1MDcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtdGwvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+Ik5ha2EtZnVzZSBuYSBMb2thc3lvbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXRyL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXRyL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMmNjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtdHIvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IkZ1c2VkIExvY2F0aW9uIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtdWsvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtdWsvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQyY2NjYwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy11ay9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iRnVzZWQgTG9jYXRpb24iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy12aS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy12aS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMGU4M2E4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXZpL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJW4buLIHRyw60gxJHGsOG7o2MgaOG7o3AgbmjhuqV0Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtemgtckNOL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXpoLXJDTi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNmQ3YmMxCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXpoLXJDTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4i5LiA5L2T5YyW5L2N572u5L+h5oGvIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDJjY2NjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI1Mzc5NDc3OTA0NDIzMjAzNjk5Ij4iRnVzZWQgTG9jYXRpb24iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0Z1c2VkTG9jYXRpb24vcmVzL3ZhbHVlcy16aC1yVFcvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMmNjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjUzNzk0Nzc5MDQ0MjMyMDM2OTkiPiJGdXNlZCBMb2NhdGlvbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXp1L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvRnVzZWRMb2NhdGlvbi9yZXMvdmFsdWVzLXp1L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZDQzNTkKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9GdXNlZExvY2F0aW9uL3Jlcy92YWx1ZXMtenUvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNTM3OTQ3NzkwNDQyMzIwMzY5OSI+IkluZGF3byBlaGxhbmdhbmlzaXdlIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1hZi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWFmL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZmNiYjQKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1hZi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+Ikludm9lcnRvZXN0ZWxsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iQW5kcm9pZC1zbGV1dGVsYm9yZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IkVuZ2VscyAoVkspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4iRW5nZWxzIChWUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IkVuZ2VscyAoVlMpLCBpbnRlcm5hc2lvbmFsZSBzdHlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiJFbmdlbHMgKFZTKSwgQ29sZW1hay1zdHlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4iRW5nZWxzIChWUyksIER2b3Jhay1zdHlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJEdWl0cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiJGcmFucyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiJGcmFucyAoS2FuYWRhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IlJ1c3NpZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4iUnVzc2llcywgTWFjLXN0eWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiJTcGFhbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZnJlbmNoX2xhYmVsIiBtc2dpZD0iNDY1OTE5MTAyNTM5NjM3MTY4NCI+IlN3aXRzZXJzZSBGcmFucyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iU3dpdHNlcnNlIER1aXRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iQmVsZ2llcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4iQnVsZ2FhcnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJJdGFsaWFhbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+IkRlZW5zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiJOb29ycyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4iU3dlZWRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iRmlucyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJLcm9hdGllcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiJUc2plZ2dpZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4iRXN0bmllcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4iSG9uZ2FhcnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+IllzbGFuZHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IkJyYXNpbGlhYW5zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4iUG9ydHVnZWVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiJTbG93YWFrcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iU2xvd2VlbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJUdXJrcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4iT2VrcmHDr2VucyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtYW0vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1hbS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDc1NzcyCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtYW0vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiLhi6jhjI3hiaThibUg4YiY4Yij4Yiq4Yur4YuO4Ym9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0c19sYWJlbCIgbXNnaWQ9IjY2ODg3NzMyNjgzMDIwODc1NDUiPiLhi6hBbmRyb2lkIOGLqOGJgeGIjeGNjSDhiLDhiIzhi7MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiLhiqXhipXhjI3hiIrhi53hipsgKOGLqeGKrCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiLhiqXhipXhjI3hiIrhi5jhipsgKOGLqS7hiqThiLUuKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4i4Yql4YqV4YyN4YiK4YuY4YqbICjhi6kuIOGKpOGItS4p4Y2jIOGKoOGIiOGInSDhiqDhiYDhjY0g4YmF4YylIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiLhiqXhipXhjI3hiIrhi5jhipsgKOGLqS4g4Yqk4Yi1LinhjaMg4Yuo4Yqu4YiN4Yib4Yit4YqtIOGJheGMpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IuGKpeGKleGMjeGIiuGLmOGKmyAo4YupLiDhiqThiLUuKeGNoyDhi6jhi7Xhia7hiKvhiq0g4YmF4YylIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiLhjIDhiK3hiJjhipUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4i4Y2I4Yio4YqV4Yiz4Yut4YqbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IuGNiOGIqOGKleGIs+GLreGKmyAo4Yqr4YqT4YuzKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IuGIqeGIteGLq+GKmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiLhiKnhiLXhi6vhipvhjaMgTWFjIOGJheGMpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IuGIteGNk+GKkuGIvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4i4Yuo4Yi14YuK4YudIOGNiOGIqOGKleGIs+GLreGKmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4i4Yuo4Yi14YuK4YudIOGMgOGIreGImOGKlSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IuGJpOGIjeGMguGLqOGInSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4i4Ymh4YiN4YyL4Yiq4YurIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4i4Yyj4YiK4Yur4YqV4YqbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiLhi7ThipLhiL0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+IuGKluGIreGLjOGMguGLqyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4i4Yi14YuK4Yu14YqV4YqbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4i4Y2K4YqS4Yi9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+IuGKreGIruGIveGLqyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiLhibzhiq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4i4Yqk4Yi14Ym24YqS4YurIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiLhiIDhipXhjIvhiKoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+IuGKoOGLreGIteGIi+GKleGLtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4i4Yml4Yir4Yua4YiNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4i4Y2W4Yit4Ym54YyL4YiNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiLhiLXhiI7hiavhiq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmVuaWFuIiBtc2dpZD0iMTczNTkzMzAyODkyNDk4MjM2OCI+IuGIteGIjuGJq+GKkuGLqyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IuGJseGIreGKreGKmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4i4Yup4Yqt4Yis4YqVIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1hci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWFyL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwM2Q5NzgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1hci9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+Itij2KzZh9iy2Kkg2KXYr9iu2KfZhCDYqNmK2KfZhtin2KoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IuKAj9mE2YjYrdipINmF2YHYp9iq2YrYrSBBbmRyb2lkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4i2KfZhNil2YbYrNmE2YrYstmK2KkgKNin2YTZhdmF2YTZg9ipINin2YTZhdiq2K3Yr9ipKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+Itin2YTYpdmG2KzZhNmK2LLZitipICjYp9mE2YjZhNin2YrYp9iqINin2YTZhdiq2K3Yr9ipKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4i2KfZhNil2YbYrNmE2YrYstmK2KkgKNin2YTZiNmE2KfZitin2Kog2KfZhNmF2KrYrdiv2Kkp2Iwg2KfZhNmG2YXYtyDYp9mE2K/ZiNmE2YoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+IuKAj9in2YTYpdmG2KzZhNmK2LLZitipICjYp9mE2YjZhNin2YrYp9iqINin2YTZhdiq2K3Yr9ipKdiMINmG2YXYtyBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4i4oCP2KfZhNil2YbYrNmE2YrYstmK2KkgKNin2YTZiNmE2KfZitin2Kog2KfZhNmF2KrYrdiv2Kkp2Iwg2YbZhdi3IER2b3JhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4i2KfZhNij2YTZhdin2YbZitipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+Itin2YTZgdix2YbYs9mK2KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4i2KfZhNmB2LHZhtiz2YrYqSAo2YPZhtiv2KcpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4i2KfZhNix2YjYs9mK2KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4i4oCP2KfZhNix2YjYs9mK2KnYjCDZhtmF2LcgTWFjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3NwYW5pc2hfbGFiZWwiIG1zZ2lkPSI3MDkxNTU1MTQ4MTMxOTA4MjQwIj4i2KfZhNil2LPYqNin2YbZitipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiLYp9mE2YHYsdmG2LPZitipINin2YTYs9mI2YrYs9ix2YrYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4i2KfZhNij2YTZhdin2YbZitipINin2YTYs9mI2YrYs9ix2YrYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+Itin2YTYqNmE2KzZitmD2YrYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4i2KfZhNio2YTYutin2LHZitipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4i2KfZhNil2YrYt9in2YTZitipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiLYp9mE2K/Yp9mG2YXYp9ix2YPZitipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiLYp9mE2YbYsdmI2YrYrNmK2KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+Itin2YTYs9mI2YrYr9mK2KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZmlubmlzaCIgbXNnaWQ9IjU1ODU2NTk0Mzg5MjQzMTU0NjYiPiLYp9mE2YHZhtmE2YbYr9mK2KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4i2KfZhNmD2LHZiNin2KrZitipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+Itin2YTYqti02YrZg9mK2KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4i2KfZhNil2LPYqtmI2YbZitipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiLYp9mE2YXYrNix2YrYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4i2KfZhNij2YrYs9mE2YbYr9mK2KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+Itin2YTYqNix2KfYstmK2YTZitipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4i2KfZhNio2LHYqti62KfZhNmK2KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+Itin2YTYs9mE2YjZgdin2YPZitipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiLYp9mE2LPZhNmI2YHZitmG2YrYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+Itin2YTYqtix2YPZitipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiLYp9mE2KPZiNmD2LHYp9mG2YrYqSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtYmcvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1iZy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzQxM2E0Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtYmcvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiLQktGF0L7QtNC90Lgg0YPRgdGC0YDQvtC50YHRgtCy0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+ItCa0LvQsNCy0LjQsNGC0YPRgNCwINC90LAgQW5kcm9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+ItCw0L3Qs9C70LjQudGB0LrQuCAo0JLQtdC70LjQutC+0LHRgNC40YLQsNC90LjRjykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiLQsNC90LPQu9C40LnRgdC60LggKNCh0JDQqSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+ItCw0L3Qs9C7LiAo0KHQkNCpKSDigJMg0YHRgtC40Lsg4oCeTdC10LbQtNGD0L3QsNGA0L7QtNC90LDigJwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+ItCw0L3Qs9C70LjQudGB0LrQuCAo0KHQkNCpKSDigJMg0YHRgtC40Lsg4oCe0JrQvtGD0LvQvNCw0LrigJwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19kdm9yYWtfbGFiZWwiIG1zZ2lkPSI3OTM1Mjg5MjMxNzExNDUyMDIiPiLQsNC90LPQu9C40LnRgdC60LggKNCh0JDQqSkg4oCTINGB0YLQuNC7IOKAntCU0LLQvtGA0LDQuuKAnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4i0L3QtdC80YHQutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+ItGE0YDQtdC90YHQutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+ItGE0YDQtdC90YHQutC4ICjQmtCw0L3QsNC00LApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4i0YDRg9GB0LrQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiLRgNGD0YHQutC4IOKAkyDRgdGC0LjQuyDigJ5NYWPigJwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiLQuNGB0L/QsNC90YHQutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiLRiNCy0LXQudGG0LDRgNGB0LrQuCDRhNGA0LXQvdGB0LrQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4i0YjQstC10LnRhtCw0YDRgdC60Lgg0L3QtdC80YHQutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4i0LHQtdC70LPQuNC50YHQutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiLQsdGK0LvQs9Cw0YDRgdC60LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiLQuNGC0LDQu9C40LDQvdGB0LrQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4i0LTQsNGC0YHQutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiLQvdC+0YDQstC10LbQutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiLRiNCy0LXQtNGB0LrQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+ItGE0LjQvdC70LDQvdC00YHQutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+ItGF0YrRgNCy0LDRgtGB0LrQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiLRh9C10YjQutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+ItC10YHRgtC+0L3RgdC60LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+ItGD0L3Qs9Cw0YDRgdC60LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+ItC40YHQu9Cw0L3QtNGB0LrQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4i0L/QvtGA0YLRg9Cz0LDQu9GB0LrQuCAo0JHRgNCw0LfQuNC70LjRjykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiLQv9C+0YDRgtGD0LPQsNC70YHQutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiLRgdC70L7QstCw0YjQutC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiLRgdC70L7QstC10L3RgdC60LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiLRgtGD0YDRgdC60LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+ItGD0LrRgNCw0LjQvdGB0LrQuCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtY2Evc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1jYS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDIxYjhmCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtY2Evc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiJEaXNwb3NpdGl1cyBk4oCZZW50cmFkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iVGVjbGF0IEFuZHJvaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiJBbmdsw6hzIChSVSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJBbmdsw6hzIChFVUEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiJBbmdsw6hzIChFVUEpLCBlc3RpbCBpbnRlcm5hY2lvbmFsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiJBbmdsw6hzIChFVUEpLCBlc3RpbCBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4iQW5nbMOocyAoRVVBKSwgZXN0aWwgRHZvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJBbGVtYW55Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IkZyYW5jw6hzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IkZyYW5jw6hzIChDYW5hZMOgKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IlJ1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiJSdXMsIGVzdGlsIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IkVzcGFueW9sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJGcmFuY8OocyBzdcOtcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iQWxlbWFueSBzdcOtcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IkJlbGdhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiJCw7psZ2FyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4iSXRhbGnDoCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4iRGFuw6hzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiJOb3J1ZWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IlN1ZWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZmlubmlzaCIgbXNnaWQ9IjU1ODU2NTk0Mzg5MjQzMTU0NjYiPiJGaW7DqHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4iQ3JvYXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4iVHhlYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiJFc3RvbmnDoCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4iSG9uZ2Fyw6hzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiJJc2xhbmTDqHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IkJyYXNpbGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4iUG9ydHVndcOocyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4iRXNsb3ZhYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iRXNsb3bDqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IlR1cmMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IlVjcmHDr27DqHMiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWNzL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtY3Mvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNiNDIwZQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWNzL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI4MDE2MTQ1MjgzMTg5NTQ2MDE3Ij4iVnN0dXBuw60gemHFmcOtemVuw60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+Iktsw6F2ZXNuaWNlIEFuZHJvaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiJhbmdsaWNrw6kgKFNwb2plbsOpIGtyw6Fsb3ZzdHbDrSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJhbmdsaWNrw6kgKFVTQSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+ImFuZ2xpY2vDqSAoVVNBKSwgbWV6aW7DoXJvZG7DrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4iYW5nbGlja8OpIChVU0EpLCBzdHlsIENvbGVtYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19kdm9yYWtfbGFiZWwiIG1zZ2lkPSI3OTM1Mjg5MjMxNzExNDUyMDIiPiJhbmdsaWNrw6kgKFVTQSksIHN0eWwgRHZvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJuxJttZWNrw6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4iZnJhbmNvdXpza8OpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+ImZyYW5jb3V6c2vDqSAoS2FuYWRhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+InJ1c2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiJydXNrw6ksIHN0eWwgTWFjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3NwYW5pc2hfbGFiZWwiIG1zZ2lkPSI3MDkxNTU1MTQ4MTMxOTA4MjQwIj4ixaFwYW7Em2xza8OpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiLFoXbDvWNhcnNrw6kgKGZyYW5jb3V6xaF0aW5hKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4ixaF2w71jYXJza8OpIChuxJttxI1pbmEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iYmVsZ2lja8OpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiJidWxoYXJza8OpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4iaXRhbHNrw6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+ImTDoW5za8OpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiJub3Jza8OpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiLFoXbDqWRza8OpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iZmluc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJjaG9ydmF0c2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiLEjWVza8OpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+ImVzdG9uc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4ibWHEj2Fyc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4iaXNsYW5kc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4iYnJhemlsc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+InBvcnR1Z2Fsc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4ic2xvdmVuc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4ic2xvdmluc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+InR1cmVja8OpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiJ1a3Jhamluc2vDqSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtZGEvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1kYS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzA3ZGIyCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtZGEvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiJJbnB1dGVuaGVkZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkFuZHJvaWQtdGFzdGF0dXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiJFbmdlbHNrIChVSykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJFbmdlbHNrIChVU0EpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiJFbmdlbHNrIChVU0EpLCBpbnRlcm5hdGlvbmFsIHN0aWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+IkVuZ2Vsc2sgKFVTQSksIENvbGVtYWstc3RpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IkVuZ2Vsc2sgKFVTQSksIER2b3Jhay1zdGlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJUeXNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IkZyYW5zayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiJGcmFuc2sgKENhbmFkYSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiJSdXNzaXNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+IlJ1c3Npc2ssIE1hYy1zdGlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3NwYW5pc2hfbGFiZWwiIG1zZ2lkPSI3MDkxNTU1MTQ4MTMxOTA4MjQwIj4iU3BhbnNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJTY2h3ZWl6aXNrIGZyYW5zayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iU2Nod2VpemVydHlzayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IkJlbGdpc2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IkJ1bGdhcnNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4iSXRhbGllbnNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiJEYW5zayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4iTm9yc2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IlN2ZW5zayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IkZpbnNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+Iktyb2F0aXNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IlRqZWtraXNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IkVzdGlzayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4iVW5nYXJzayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4iSXNsYW5kc2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IkJyYXNpbGlhbnNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4iUG9ydHVnaXNpc2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+IlNsb3Zha2lzayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iU2xvdmVuc2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJUeXJraXNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiJVa3JhaW5zayI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtZGUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1kZS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNWMzYjUwCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtZGUvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiJFaW5nYWJlZ2Vyw6R0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iQW5kcm9pZC1UYXN0YXR1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IkVuZ2xpc2NoIChHcm/Dn2JyaXRhbm5pZW4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4iRW5nbGlzY2ggKFVTQSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IkVuZ2xpc2NoIChVU0EpLCBpbnRlcm5hdGlvbmFsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiJFbmdsaXNjaCAoVVNBKSwgQ29sZW1hayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IkVuZ2xpc2NoIChVU0EpLCBEdm9yYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+IkRldXRzY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4iRnJhbnrDtnNpc2NoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IkZyYW56w7ZzaXNjaCAoS2FuYWRhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IlJ1c3Npc2NoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+IlJ1c3Npc2NoLCBNYWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiJTcGFuaXNjaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4iU2Nod2VpemVyIEZyYW56w7ZzaXNjaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iU2Nod2VpemVyZGV1dHNjaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IkJlbGdpc2NoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiJCdWxnYXJpc2NoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4iSXRhbGllbmlzY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+IkTDpG5pc2NoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiJOb3J3ZWdpc2NoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiJTY2h3ZWRpc2NoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iRmlubmlzY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4iS3JvYXRpc2NoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IlRzY2hlY2hpc2NoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IkVzdG5pc2NoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiJVbmdhcmlzY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+IklzbMOkbmRpc2NoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiJCcmFzaWxpYW5pc2NoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4iUG9ydHVnaWVzaXNjaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4iU2xvd2FraXNjaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iU2xvd2VuaXNjaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IlTDvHJraXNjaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4iVWtyYWluaXNjaCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtZWwvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1lbC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWQ1N2EwCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtZWwvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiLOo8+Fz4POus61z4XOrc+CIM61zrnPg8+MzrTOv8+FIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0c19sYWJlbCIgbXNnaWQ9IjY2ODg3NzMyNjgzMDIwODc1NDUiPiLOoM67zrfOus+Ez4HOv867z4zOs865zr8gQW5kcm9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+Is6RzrPOs867zrnOus6sICjOl86SKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+Is6RzrPOs867zrnOus6sICjOl86gzpEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiLOkc6zzrPOu865zrrOrCAozpfOoM6RKSwgz4TPjc+Azr/PhSBJbnRlcm5hdGlvbmFsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiLOkc6zzrPOu865zrrOrCAozpfOoM6RKSwgz4TPjc+Azr/PhSBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4izpHOs86zzrvOuc66zqwgKM6XzqDOkSksIM+Ez43PgM6/z4UgRHZvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiLOk861z4HOvM6xzr3Ouc66zqwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4izpPOsc67zrvOuc66zqwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4izpPOsc67zrvOuc66zqwgKM6azrHOvc6xzrTOrCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiLOoc+Jz4POuc66zqwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4izqHPic+DzrnOus6sLCDPhM+Nz4DOv8+FIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+Is6Zz4PPgM6xzr3Ouc66zqwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZnJlbmNoX2xhYmVsIiBtc2dpZD0iNDY1OTE5MTAyNTM5NjM3MTY4NCI+Is6TzrHOu867zrnOus6sIM6VzrvOss61z4TOr86xz4IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+Is6TzrXPgc68zrHOvc65zrrOrCDOlc67zrLOtc+Ezq/Osc+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4izpLOtc67zrPOuc66zqwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+Is6Szr/Phc67zrPOsc+BzrnOus6sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4izpnPhM6xzrvOuc66zqwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+Is6UzrHOvc65zrrOrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4izp3Ov8+BzrLOt86zzrnOus6sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiLOo86/z4XOt860zrnOus6sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4izqbOuc69zrvOsc69zrTOuc66zqwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4izprPgc6/zrHPhM65zrrOrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiLOpM+DzrXPh865zrrOrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiLOlc+DzrjOv869zrnOus6sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiLOn8+FzrPOs8+BzrnOus6sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiLOmc+DzrvOsc69zrTOuc66zqwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+Is6Sz4HOsc62zrnOu865zqzOvc65zrrOsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+Is6gzr/Pgc+Ezr/Os86xzrvOuc66zqwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+Is6jzrvOv86yzrHOus65zrrOrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4izqPOu86/zrLOtc69zrnOus6sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3R1cmtpc2giIG1zZ2lkPSI3NzM2MTYzMjUwOTA3OTY0ODk4Ij4izqTOv8+Fz4HOus65zrrOrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4izp/Phc66z4HOsc69zrnOus6sIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1lbi1yR0Ivc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1lbi1yR0Ivc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ3OTRhNgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWVuLXJHQi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IklucHV0IERldmljZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkFuZHJvaWQga2V5Ym9hcmQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiJFbmdsaXNoIChVSykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJFbmdsaXNoIChVUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IkVuZ2xpc2ggKFVTKSwgSW50ZXJuYXRpb25hbCBzdHlsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4iRW5nbGlzaCAoVVMpLCBDb2xlbWFrIHN0eWxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4iRW5nbGlzaCAoVVMpLCBEdm9yYWsgc3R5bGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+Ikdlcm1hbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiJGcmVuY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4iRnJlbmNoIChDYW5hZGEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4iUnVzc2lhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiJSdXNzaWFuLCBNYWMgc3R5bGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiJTcGFuaXNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJTd2lzcyBGcmVuY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+IlN3aXNzIEdlcm1hbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IkJlbGdpYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IkJ1bGdhcmlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+Ikl0YWxpYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+IkRhbmlzaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4iTm9yd2VnaWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiJTd2VkaXNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iRmlubmlzaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJDcm9hdGlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiJDemVjaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiJFc3RvbmlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4iSHVuZ2FyaWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiJJY2VsYW5kaWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IkJyYXppbGlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IlBvcnR1Z3Vlc2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+IlNsb3ZhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iU2xvdmVuaWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3R1cmtpc2giIG1zZ2lkPSI3NzM2MTYzMjUwOTA3OTY0ODk4Ij4iVHVya2lzaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4iVWtyYWluaWFuIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ3OTRhNgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWVuLXJJTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IklucHV0IERldmljZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkFuZHJvaWQga2V5Ym9hcmQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiJFbmdsaXNoIChVSykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJFbmdsaXNoIChVUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IkVuZ2xpc2ggKFVTKSwgSW50ZXJuYXRpb25hbCBzdHlsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4iRW5nbGlzaCAoVVMpLCBDb2xlbWFrIHN0eWxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4iRW5nbGlzaCAoVVMpLCBEdm9yYWsgc3R5bGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+Ikdlcm1hbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiJGcmVuY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4iRnJlbmNoIChDYW5hZGEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4iUnVzc2lhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiJSdXNzaWFuLCBNYWMgc3R5bGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiJTcGFuaXNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJTd2lzcyBGcmVuY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+IlN3aXNzIEdlcm1hbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IkJlbGdpYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IkJ1bGdhcmlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+Ikl0YWxpYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+IkRhbmlzaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4iTm9yd2VnaWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiJTd2VkaXNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iRmlubmlzaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJDcm9hdGlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiJDemVjaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiJFc3RvbmlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4iSHVuZ2FyaWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiJJY2VsYW5kaWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IkJyYXppbGlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IlBvcnR1Z3Vlc2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+IlNsb3ZhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iU2xvdmVuaWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3R1cmtpc2giIG1zZ2lkPSI3NzM2MTYzMjUwOTA3OTY0ODk4Ij4iVHVya2lzaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4iVWtyYWluaWFuIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1lcy1yVVMvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1lcy1yVVMvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ2MWI4MAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWVzLXJVUy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IkRpc3Bvc2l0aXZvcyBkZSBlbnRyYWRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0c19sYWJlbCIgbXNnaWQ9IjY2ODg3NzMyNjgzMDIwODc1NDUiPiJUZWNsYWRvIGRlIEFuZHJvaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiJJbmdsw6lzIChSZWlubyBVbmlkbykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJJbmdsw6lzIChFRS7CoFVVLikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IkluZ2zDqXMgKEVFLsKgVVUuKSwgaW50ZXJuYWNpb25hbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4iSW5nbMOpcyAoRUUuwqBVVS4pLCBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4iSW5nbMOpcyAoRUUuwqBVVS4pLCBEdm9yYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+IkFsZW3DoW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4iRnJhbmPDqXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4iRnJhbmPDqXMgKENhbmFkw6EpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4iUnVzbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiJSdXNvLCBNYWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiJFc3Bhw7FvbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4iRnJhbmPDqXMgZGUgU3VpemEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+IkFsZW3DoW4gZGUgU3VpemEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYmVsZ2lhbiIgbXNnaWQ9IjIwMTE5ODQ1NzI4Mzg2NTE1NTgiPiJCZWxnYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4iQsO6bGdhcm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJJdGFsaWFubyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4iRGFuw6lzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiJOb3J1ZWdvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiJTdWVjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IkZpbmxhbmTDqXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4iQ3JvYXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IkNoZWNvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IkVzdG9uaW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+IkjDum5nYXJvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiJJc2xhbmTDqXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IkJyYXNpbGXDsW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiJQb3J0dWd1w6lzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiJFc2xvdmFjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iRXNsb3Zlbm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJUdXJjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4iVWNyYW5pYW5vIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1lcy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWVzL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyZWE0ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1lcy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IkRpc3Bvc2l0aXZvcyBkZSBlbnRyYWRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0c19sYWJlbCIgbXNnaWQ9IjY2ODg3NzMyNjgzMDIwODc1NDUiPiJUZWNsYWRvIGRlIEFuZHJvaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiJJbmdsw6lzIChSZWlubyBVbmlkbykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJJbmdsw6lzIChFRS5VVS4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiJJbmdsw6lzIChFRS5VVS4pLCBlc3RpbG8gaW50ZXJuYWNpb25hbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4iSW5nbMOpcyAoRUUuVVUuKSwgZXN0aWxvIENvbGVtYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19kdm9yYWtfbGFiZWwiIG1zZ2lkPSI3OTM1Mjg5MjMxNzExNDUyMDIiPiJJbmdsw6lzIChFRS5VVS4pLCBlc3RpbG8gRHZvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJBbGVtw6FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IkZyYW5jw6lzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IkZyYW5jw6lzIChDYW5hZMOhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IlJ1c28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4iUnVzbywgZXN0aWxvIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IkVzcGHDsW9sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJGcmFuY8OpcyBkZSBTdWl6YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iQWxlbcOhbiBzdWl6byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IkJlbGdhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiJCw7psZ2FybyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+Ikl0YWxpYW5vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiJEYW7DqXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+Ik5vcnVlZ28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IlN1ZWNvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iRmlubGFuZMOpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJDcm9hdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4iQ2hlY28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4iRXN0b25pbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4iSMO6bmdhcm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+IklzbGFuZMOpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4iQnJhc2lsZcOxbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IlBvcnR1Z3XDqXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+IkVzbG92YWNvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiJFc2xvdmVubyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IlR1cmNvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiJVY3Jhbmlhbm8iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjRmYTNiCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI4MDE2MTQ1MjgzMTg5NTQ2MDE3Ij4iU2lzZW5kc2VhZG1lZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iQW5kcm9pZGkga2xhdmlhdHV1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IkluZ2xpc2UgKMOcaGVuZGt1bmluZ3JpaWspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4iSW5nbGlzZSAoVVNBKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4iSW5nbGlzZSAoVVNBKSwgcmFodnVzdmFoZWxpbmUgc3RpaWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+IkluZ2xpc2UgKFVTQSksIENvbGVtYWtpIHN0aWlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4iSW5nbGlzZSAoVVNBKSwgRHZvcmFraSBzdGlpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4iU2Frc2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4iUHJhbnRzdXNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IlByYW50c3VzZSAoS2FuYWRhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IlZlbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4iVmVuZSwgTWFjaSBzdGlpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+Ikhpc3BhYW5pYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4ixaB2ZWl0c2kgcHJhbnRzdXNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2dlcm1hbl9sYWJlbCIgbXNnaWQ9IjIzMDU1MjA5NDE5OTMzMTQyNTgiPiLFoHZlaXRzaXNha3NhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iQmVsZ2lhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiJCdWxnYWFyaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJJdGFhbGlhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiJUYWFuaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4iTm9ycmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IlJvb3RzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IlNvb21lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+IkhvcnZhYXRpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiJUxaFlaGhpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IkVlc3RpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiJVbmdhcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+IklzbGFuZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IkJyYXNpaWxpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IlBvcnR1Z2FsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4iU2xvdmFraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iU2xvdmVlbmlhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3R1cmtpc2giIG1zZ2lkPSI3NzM2MTYzMjUwOTA3OTY0ODk4Ij4iVMO8cmdpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiJVa3JhaW5hIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1mYS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWZhL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2YzdmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1mYS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IklucHV0IERldmljZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IuKAj9i12YHYrdmH4oCM2qnZhNuM2K8gQW5kcm9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+Itin2Ybar9mE24zYs9uMICjYqNix24zYqtin2YbbjNinKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+Itin2Ybar9mE24zYs9uMICjYp9mF2LHbjNqp2KcpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiLYp9mG2q/ZhNuM2LPbjCAo2KfbjNin2YTYp9iqINmF2KrYrdiv2Ycp2Iwg2LPYqNqpINio24zZhuKAjNin2YTZhdmE2YTbjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4i4oCP2KfZhtqv2YTbjNiz24wgKNin24zYp9mE2KfYqiDZhdiq2K3Yr9mHKdiMINiz2KjaqSBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4i4oCP2KfZhtqv2YTbjNiz24wgKNin24zYp9mE2KfYqiDZhdiq2K3Yr9mHKdiMINiz2KjaqSBEdm9yYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+Itii2YTZhdin2YbbjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiLZgdix2KfZhtiz2YjbjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiLZgdix2KfZhtiz2YjbjCAo2qnYp9mG2KfYr9inKeKAjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+Itix2YjYs9uMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+IuKAj9ix2YjYs9uM2Iwg2LPYqNqpIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+Itin2LPZvtin2YbbjNin24zbjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4i2YHYsdin2YbYs9mI24wg2LPZiNim24zYsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4i2KLZhNmF2KfZhtuMINiz2YjYptuM2LPbjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+Itio2YTamNuM2qnbjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4i2KjZhNi62KfYsduMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4i2KfbjNiq2KfZhNuM2KfbjNuMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiLYr9in2YbZhdin2LHaqduMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiLZhtix2YjamNuMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiLYs9mI2KbYr9uMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4i2YHZhtmE2KfZhtiv24wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4i2qnYsdmI2KfYs9uMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+ItqG2qkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4i2KfYs9iq2YjZhtuM2KfbjNuMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiLZhdis2KfYsdiz2KrYp9mG24wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+Itin24zYs9mE2YbYr9uMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiLYqNix2LLbjNmE24wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiLZvtix2KrYutin2YTbjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4i2KfYs9mE2YjZiNin2qnbjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4i2KfYs9mE2YjZiNmG24zYp9uM24wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiLYqtix2qnbjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4i2KfZiNqp2LHYp9uM2YbbjCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtZmkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1maS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjhlYjMwCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtZmkvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiJTecO2dHTDtmxhaXR0ZWV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0c19sYWJlbCIgbXNnaWQ9IjY2ODg3NzMyNjgzMDIwODc1NDUiPiJBbmRyb2lkLW7DpHBww6RpbWlzdMO2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4iZW5nbGFudGkgKElzby1Ccml0YW5uaWEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4iZW5nbGFudGkgKFloZHlzdmFsbGF0KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4iZW5nbGFudGkgKFloZHlzdmFsbGF0KSwga2Fuc2FpbnbDpGxpbmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiJlbmdsYW50aSAoWWhkeXN2YWxsYXQpLCBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4iZW5nbGFudGkgKFloZHlzdmFsbGF0KSwgRHZvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJzYWtzYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiJyYW5za2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4icmFuc2thIChLYW5hZGEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4idmVuw6Rqw6QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4idmVuw6Rqw6QsIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+ImVzcGFuamEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZnJlbmNoX2xhYmVsIiBtc2dpZD0iNDY1OTE5MTAyNTM5NjM3MTY4NCI+InN2ZWl0c2lucmFuc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2dlcm1hbl9sYWJlbCIgbXNnaWQ9IjIzMDU1MjA5NDE5OTMzMTQyNTgiPiJzdmVpdHNpbnNha3NhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iYmVsZ2lhbGFpbmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiJidWxnYXJpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+Iml0YWxpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4idGFuc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiJub3JqYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4icnVvdHNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4ic3VvbWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4ia3JvYWF0dGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4idMWhZWtraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiJ2aXJvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiJ1bmthcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+ImlzbGFudGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+ImJyYXNpbGlhbGFpbmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4icG9ydHVnYWxpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiJzbG92YWtraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4ic2xvdmVlbmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJ0dXJra2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+InVrcmFpbmEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTQ3NjM0Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI4MDE2MTQ1MjgzMTg5NTQ2MDE3Ij4iUMOpcmlwaMOpcmlxdWVzIGRcJ2VudHLDqWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkNsYXZpZXIgQW5kcm9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IkFuZ2xhaXMgKGJyaXRhbm5pcXVlKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+IkFuZ2xhaXMgKMOJdGF0cy1VbmlzKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4iQW5nbGFpcyAow4l0YXRzLVVuaXMpLCBpbnRlcm5hdGlvbmFsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiJBbmdsYWlzICjDiXRhdHMtVW5pcyksIHR5cGUgQ29sZW1hayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IkFuZ2xhaXMgKMOJdGF0cy1VbmlzKSwgdHlwZSBEdm9yYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+IkFsbGVtYW5kIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IkZyYW7Dp2FpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiJGcmFuw6dhaXMgKENhbmFkYSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiJSdXNzZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiJSdXNzZSwgdHlwZSBNYWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiJFc3BhZ25vbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4iRnJhbsOnYWlzIChTdWlzc2UpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2dlcm1hbl9sYWJlbCIgbXNnaWQ9IjIzMDU1MjA5NDE5OTMzMTQyNTgiPiJBbGxlbWFuZCAoU3Vpc3NlKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IkJlbGdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiJCdWxnYXJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4iSXRhbGllbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4iRGFub2lzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiJOb3J2w6lnaWVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiJTdcOpZG9pcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IkZpbm5vaXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4iQ3JvYXRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IlRjaMOocXVlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IkVzdG9uaWVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiJIb25ncm9pcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4iSXNsYW5kYWlzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiJCcsOpc2lsaWVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4iUG9ydHVnYWlzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiJTbG92YXF1ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iU2xvdsOobmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJUdXJjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiJVa3JhaW5pZW4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWZyL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtZnIvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFkNGZmYQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWZyL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI4MDE2MTQ1MjgzMTg5NTQ2MDE3Ij4iSW5wdXQgRGV2aWNlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iQ2xhdmllciBBbmRyb2lkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4iQW5nbGFpcyAoUm95YXVtZS1VbmkpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4iQW5nbGFpcyAow4l0YXRzLVVuaXMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiJBbmdsYWlzICjDiXRhdHMtVW5pcyksIGludGVybmF0aW9uYWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+IkFuZ2xhaXMgKMOJdGF0cy1VbmlzKSwgdHlwZSBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4iQW5nbGFpcyAow4l0YXRzLVVuaXMpLCB0eXBlIER2b3JhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4iQWxsZW1hbmQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4iRnJhbsOnYWlzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IkZyYW7Dp2FpcyAoQ2FuYWRhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IlJ1c3NlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+IlJ1c3NlLCB0eXBlIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IkVzcGFnbm9sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJGcmFuw6dhaXMgKFN1aXNzZSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+IkFsbGVtYW5kIChTdWlzc2UpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iQmVsZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IkJ1bGdhcmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJJdGFsaWVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiJEYW5vaXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+Ik5vcnbDqWdpZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IlN1w6lkb2lzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iRmlubm9pcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJDcm9hdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4iVGNow6hxdWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4iRXN0b25pZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+Ikhvbmdyb2lzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiJJc2xhbmRhaXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IkJyw6lzaWxpZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiJQb3J0dWdhaXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+IlNsb3ZhcXVlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiJTbG92w6huZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IlR1cmMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IlVrcmFpbmllbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1oaS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTE4NjRlCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiLgpIfgpKjgpKrgpYHgpJ8g4KSJ4KSq4KSV4KSw4KSjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0c19sYWJlbCIgbXNnaWQ9IjY2ODg3NzMyNjgzMDIwODc1NDUiPiJBbmRyb2lkIOCkleClgOCkrOCli+CksOCljeCkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IuCkheCkguCkl+CljeCksOClh+CknOCkvOClgCAo4KSv4KWC4KSV4KWHKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+IuCkheCkguCkl+CljeCksOClh+CknOCkvOClgCAo4KSv4KWC4KSP4KS4KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4i4KSF4KSC4KSX4KWN4KSw4KWH4KSc4KS84KWAICjgpK/gpYLgpI/gpLgpLCDgpIXgpILgpKTgpLDgpY3gpLDgpL7gpLfgpY3gpJ/gpY3gpLDgpYDgpK8g4KS24KWI4KSy4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiLgpIXgpILgpJfgpY3gpLDgpYfgpJzgpLzgpYAgKOCkr+ClguCkj+CkuCksIOCkleCli+CksuCkruCliOCklSDgpLbgpYjgpLLgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19kdm9yYWtfbGFiZWwiIG1zZ2lkPSI3OTM1Mjg5MjMxNzExNDUyMDIiPiLgpIXgpILgpJfgpY3gpLDgpYfgpJzgpLzgpYAgKOCkr+ClguCkj+CkuCksIOCkoeCljeCkteCli+CksOCklSDgpLbgpYjgpLLgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+IuCknOCksOCljeCkruCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiLgpKvgpLzgpY3gpLDgpL7gpILgpLjgpYDgpLjgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4i4KSr4KS84KWN4KSw4KS+4KSC4KS44KWA4KS44KWAICjgpJXgpKjgpL7gpKHgpL4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4i4KSw4KWC4KS44KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+IuCksOClguCkuOClgCwg4KSu4KWI4KSVIOCktuCliOCksuClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IuCkuOCljeCkquCliOCkqOCkv+CktiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4i4KS44KWN4KS14KS/4KS4IOCkq+CkvOCljeCksOCkvuCkguCkuOClgOCkuOClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4i4KS44KWN4KS14KS/4KS4IOCknOCksOCljeCkruCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IuCkrOClh+CksuCljeCknOCkv+Ckr+CkvuCkiCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4i4KSs4KWB4KSy4KWN4oCN4KSX4KS+4KSw4KS/4KSv4KS+4KSIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4i4KSH4KSk4KS+4KSy4KS14KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiLgpKHgpYjgpKjgpL/gpLYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+IuCkqOCkvuCksOCljeCkteClh+CknOCkv+Ckr+CkvuCkiCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4i4KS44KWN4KS14KWA4KSh4KS/4KS2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4i4KSr4KS84KS/4KSo4KS/4KS2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+IuCkleCljeCksOCli+Ckj+CktuCkv+Ckr+CkvuCkiCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiLgpJrgpYfgpJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4i4KSP4KS44KWN4KSf4KWL4KSo4KS/4KSv4KS+4KSIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiLgpLngpILgpJfgpYfgpLDgpL/gpK/gpL7gpIgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+IuCkhuCkh+CkuOCksuCliOCkguCkoeCkv+CklSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4i4KSs4KWN4KSw4KS+4KSc4KS84KWA4KSy4KS/4KSv4KS+4KSIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4i4KSq4KWB4KSw4KWN4KSk4KSX4KS+4KSy4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiLgpLjgpY3gpLLgpYvgpLXgpL7gpJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmVuaWFuIiBtc2dpZD0iMTczNTkzMzAyODkyNDk4MjM2OCI+IuCkuOCljeCksuCli+CkteClh+CkqOCkv+Ckr+CkvuCkiCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IuCkpOClgeCksOCljeCkleClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4i4KSv4KWC4KSV4KWN4KSw4KWH4KSo4KS/4KSv4KS+4KSIIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1oci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWhyL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyMTdiZjAKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1oci9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IlVyZcSRYWppIHphIHVub3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkFuZHJvaWQgdGlwa292bmljYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+ImVuZ2xlc2thIChVSykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJlbmdsZXNrYSAoU0FEKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4iZW5nbGVza2EgKFNBRCksIG1lxJF1bmFyb2RuYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4iZW5nbGVza2EgKFNBRCksIENvbGVtYWtvdiByYXNwb3JlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+ImVuZ2xlc2thIChTQUQpLCBEdm9yYWtvdiByYXNwb3JlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4ibmplbWHEjWthIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+ImZyYW5jdXNrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiJmcmFuY3Vza2EgKEthbmFkYSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiJydXNrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiJydXNrYSwgcmFzcG9yZWQgTWFjYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IsWhcGFuam9sc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiLFoXZpY2Fyc2tvLWZyYW5jdXNrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4ixaF2aWNhcnNrby1uamVtYcSNa2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYmVsZ2lhbiIgbXNnaWQ9IjIwMTE5ODQ1NzI4Mzg2NTE1NTgiPiJiZWxnaWpza2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+ImJ1Z2Fyc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4idGFsaWphbnNrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4iZGFuc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiJub3J2ZcWha2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IsWhdmVkc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iZmluc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+ImhydmF0c2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IsSNZcWha2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4iZXN0b25za2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+Im1hxJFhcnNrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4iaXNsYW5kc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiJicmF6aWxza2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiJwb3J0dWdhbHNrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4ic2xvdmHEjWthIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiJzbG92ZW5za2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJ0dXJza2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+InVrcmFqaW5za2EiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWh1L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtaHUvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNkYmZiMgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWh1L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI4MDE2MTQ1MjgzMTg5NTQ2MDE3Ij4iQmV2aXRlbGkgZXN6a8O2esO2ayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iQW5kcm9pZC1iaWxsZW50ecWxemV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4iYW5nb2wgKEVneWVzw7xsdCBLaXLDoWx5c8OhZykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJhbmdvbCAoVVNBKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4iYW5nb2wgKFVTQSksIG5lbXpldGvDtnppIHN0w61sdXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+ImFuZ29sIChVU0EpLCBDb2xlbWFrLXN0w61sdXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19kdm9yYWtfbGFiZWwiIG1zZ2lkPSI3OTM1Mjg5MjMxNzExNDUyMDIiPiJhbmdvbCAoVVNBKSwgRHZvcmFrLXN0w61sdXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+Im7DqW1ldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiJmcmFuY2lhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+ImZyYW5jaWEgKEthbmFkYSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiJvcm9zeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiJvcm9zeiwgTWFjLXN0w61sdXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiJzcGFueW9sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJzdsOhamNpIGZyYW5jaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+InN2w6FqY2kgbsOpbWV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iYmVsZ2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+ImJvbGfDoXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJvbGFzeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4iZMOhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4ibm9ydsOpZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4ic3bDqWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZmlubmlzaCIgbXNnaWQ9IjU1ODU2NTk0Mzg5MjQzMTU0NjYiPiJmaW5uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+ImhvcnbDoXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4iY3NlaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiLDqXN6dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4ibWFneWFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiJpemxhbmRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiJicmF6aWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiJwb3J0dWfDoWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+InN6bG92w6FrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiJzemxvdsOpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+InTDtnLDtmsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+InVrcsOhbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjNWJiZmMKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiLVhNW41oLVv9aE1aHVo9aA1bTVodW2IOKAi+KAi9W91aHWgNaE1aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iQW5kcm9pZCDVvdW/1aXVstW21aHVt9Wh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiLUsdW21aPVrNWl1oDVpdW2ICjVhNSyKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+ItSx1bbVo9Ws1aXWgNWl1bYgKNSx1YTVhikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+ItSx1bbVo9Ws1aXWgNWl1bYgKNSx1YTVhiksINW01avVu9Wh1abVo9Wh1bXVq9W2INW/1aXVvdWh1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+ItSx1bbVo9Ws1aXWgNWl1bYgKNSx1YTVhiksIENvbGVtYWsg1b/VpdW91aHVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+ItSx1bbVo9Ws1aXWgNWl1bYgKNSx1YTVhiksIER2b3JhayDVv9Wl1b3VodWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiLUs9Wl1oDVtNWh1bbVpdaA1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiLVltaA1aHVttW91aXWgNWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4i1ZbWgNWh1bbVvdWl1oDVpdW2ICjUv9Wh1bbVodWk1aEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4i1YzVuNaC1b3VpdaA1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiLVjNW41oLVvdWl1oDVpdW2LCBNYWMg1b/VpdW91aHVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+ItS71b3VutWh1bbVpdaA1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4i1YfVvtWl1bXWgdWh1oDVodWv1aHVtiDWhtaA1aHVttW91aXWgNWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+ItWH1b7VpdW11oHVodaA1aHVr9Wh1bYg1aPVpdaA1bTVodW21aXWgNWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYmVsZ2lhbiIgbXNnaWQ9IjIwMTE5ODQ1NzI4Mzg2NTE1NTgiPiLUstWl1azVo9Wr1aHVr9Wh1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+ItSy1bjWgtWs1bLVodaA1aXWgNWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiLUu9W/1aHVrNWl1oDVpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiLUtNWh1bbVq9Wl1oDVpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiLVhtW41oDVvtWl1aPVpdaA1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4i1YfVvtWl1aTVpdaA1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+ItWW1avVttW21aXWgNWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4i1L3VuNaA1b7VodWp1aXWgNWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4i1YnVpdWt1aXWgNWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4i1LfVvdW/1bjVttWl1oDVpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiLVgNW41oLVttWj1aHWgNWl1oDVpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiLUu9W91azVodW21aTVpdaA1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4i1LLWgNWh1abVq9Ws1aXWgNWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiLVitW41oDVv9W41oLVo9Wh1azVpdaA1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4i1Y3VrNW41b7VodWv1aXWgNWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmVuaWFuIiBtc2dpZD0iMTczNTkzMzAyODkyNDk4MjM2OCI+ItWN1azVuNW+1aXVttWl1oDVpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3R1cmtpc2giIG1zZ2lkPSI3NzM2MTYzMjUwOTA3OTY0ODk4Ij4i1LnVuNaC1oDWhNWl1oDVpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiLViNaC1a/WgNWh1avVttWl1oDVpdW2Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1pbi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWluL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExZTJkZDBhCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtaW4vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiJQZXJhbmdrYXQgTWFzdWthbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iS2V5Ym9hcmQgQW5kcm9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IkluZ2dyaXMgKEJyaXRhbmlhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+IkluZ2dyaXMgKEFtZXJpa2EpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiJJbmdncmlzIChBUyksIGdheWEgSW50ZXJuYXNpb25hbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4iSW5nZ3JpcyAoQVMpLCBnYXlhIENvbGVtYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19kdm9yYWtfbGFiZWwiIG1zZ2lkPSI3OTM1Mjg5MjMxNzExNDUyMDIiPiJJbmdncmlzIChBUyksIGdheWEgRHZvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJKZXJtYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4iUHJhbmNpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiJQcmFuY2lzIChLYW5hZGEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4iUnVzaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4iUnVzaWEsIGdheWEgTWFjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3NwYW5pc2hfbGFiZWwiIG1zZ2lkPSI3MDkxNTU1MTQ4MTMxOTA4MjQwIj4iU3BhbnlvbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4iUHJhbmNpcyBTd2lzcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iSmVybWFuIFN3aXNzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iQmVsZ2lhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiJCdWxnYXJpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+Ikl0YWxpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4iRGVubWFyayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4iTm9yd2VnaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IlN3ZWRpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IkZpbmxhbmRpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJLcm9hc2lhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IkNoZXNrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiJFc3RvbmlhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiJIdW5nYXJpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4iSXNsYW5kaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IkJyYXNpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IlBvcnR1Z2lzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiJTbG93YWtpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iU2xvdmVuaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJUdXJraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4iVWtyYWluYSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtaXQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1pdC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmI3MzAxCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtaXQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiJEaXNwb3NpdGl2aSBkaSBpbnB1dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iVGFzdGllcmEgQW5kcm9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IkluZ2xlc2UgKFVLKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+IkluZ2xlc2UgKFVTQSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IkluZ2xlc2UgKFVTQSksIHN0aWxlIGludGVybmF6aW9uYWxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiJJbmdsZXNlIChVU0EpLCBzdGlsZSBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4iSW5nbGVzZSAoVVNBKSwgc3RpbGUgRHZvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJUZWRlc2NvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IkZyYW5jZXNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IkZyYW5jZXNlIChDYW5hZGEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4iUnVzc28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4iUnVzc28sIHN0aWxlIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IlNwYWdub2xvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJGcmFuY2VzZSBzdml6emVybyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iVGVkZXNjbyBzdml6emVybyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IkJlbGdhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiJCdWxnYXJvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4iSXRhbGlhbm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+IkRhbmVzZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4iTm9ydmVnZXNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiJTdmVkZXNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iRmlubGFuZGVzZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJDcm9hdG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4iQ2VjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiJFc3RvbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+IlVuZ2hlcmVzZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4iSXNsYW5kZXNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiJCcmFzaWxpYW5vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4iUG9ydG9naGVzZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4iU2xvdmFjY28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmVuaWFuIiBtc2dpZD0iMTczNTkzMzAyODkyNDk4MjM2OCI+IlNsb3Zlbm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJUdXJjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4iVWNyYWlubyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtaXcvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1pdy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTg5MzkxCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtaXcvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiLXlNeq16fXoNeZINen15zXmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4i4oCP157Xp9ec15PXqiBBbmRyb2lkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4i15DXoNeS15zXmdeqICjXkdeo15nXmNeg15nXlCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiLXkNeg15LXnNeZ16ogKNeQ16jXlFwi15EpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiLXkNeg15LXnNeZ16ogKNeQ16jXlFwi15EpLCDXodeS16DXldefINeR15nXoFwi15wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+IuKAj9eQ16DXktec15nXqiAo15DXqNeUXCLXkSksINeh15LXoNeV158gQ29sZW1hayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IuKAj9eQ16DXktec15nXqiAo15DXqNeUXCLXkSksINeh15LXoNeV158gRHZvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiLXkteo157XoNeZ16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4i16bXqNek16rXmdeqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+Item16jXpNeq15nXqiAo16fXoNeT15QpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4i16jXldeh15nXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiLigI/XqNeV16HXmdeqLCDXodeS16DXldefIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+Iteh16TXqNeT15nXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4i16bXqNek16rXmdeqINep15XXldeZ16bXqNeZ16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+IteS16jXnteg15nXqiDXqdeV15XXmdem16jXmdeqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4i15HXnNeS15nXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4i15HXldec15LXqNeZ16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiLXkNeZ15jXnNen15nXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4i15PXoNeZ16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+Iteg15XXqNeV15XXkteZ16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+Itep15XXldeT15nXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+Itek15nXoNeZ16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4i16fXqNeV15DXmNeZ16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4i16ZcJ9eb15nXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiLXkNeh15jXldeg15nXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4i15TXldeg15LXqNeZ16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+IteQ15nXodec16DXk9eZ16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IteR16jXlteZ15zXkNeZ16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiLXpNeV16jXmNeV15LXlteZ16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+Iteh15zXldeR16fXmdeqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiLXodec15XXkdeg15nXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IteY15XXqNen15nXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4i15DXlden16jXkNeZ16DXmdeqIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1qYS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWphL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1MGI3MjcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1qYS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IklucHV0IERldmljZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkFuZHJvaWTjgq3jg7zjg5zjg7zjg4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiLoi7Hoqp7vvIjjgqTjgq7jg6rjgrnvvIkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiLoi7Hoqp7vvIjjgqLjg6Hjg6rjgqvvvIkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IuiLseiqnu+8iOOCouODoeODquOCq++8ieOAgeOCpOODs+OCv+ODvOODiuOCt+ODp+ODiuODq+mFjeWIlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4i6Iux6Kqe77yI44Ki44Oh44Oq44Kr77yJ44CBQ29sZW1ha+mFjeWIlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IuiLseiqnu+8iOOCouODoeODquOCq++8ieOAgUR2b3Jha+mFjeWIlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4i44OJ44Kk44OE6KqeIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IuODleODqeODs+OCueiqniI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiLjg5Xjg6njg7Pjgrnoqp7vvIjjgqvjg4rjg4DvvIkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiLjg63jgrfjgqLoqp4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4i44Ot44K344Ki6Kqe77yITWFj6YWN5YiX77yJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3NwYW5pc2hfbGFiZWwiIG1zZ2lkPSI3MDkxNTU1MTQ4MTMxOTA4MjQwIj4i44K544Oa44Kk44Oz6KqeIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiLjg5Xjg6njg7Pjgrnoqp7vvIjjgrnjgqTjgrnvvIkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+IuODieOCpOODhOiqnu+8iOOCueOCpOOCue+8iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IuODmeODq+OCruODvOiqniI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4i44OW44Or44Ks44Oq44Ki6KqeIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4i44Kk44K/44Oq44Ki6KqeIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiLjg4fjg7Pjg57jg7zjgq/oqp4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+IuODjuODq+OCpuOCp+ODvOiqniI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4i44K544Km44Kn44O844OH44Oz6KqeIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4i44OV44Kj44Oz44Op44Oz44OJ6KqeIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+IuOCr+ODreOCouODgeOCouiqniI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiLjg4HjgqfjgrPoqp4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4i44Ko44K544OI44OL44Ki6KqeIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiLjg4/jg7Pjgqzjg6rjg7zoqp4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+IuOCouOCpOOCueODqeODs+ODieiqniI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4i44OW44Op44K444Or6YWN5YiXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4i44Od44Or44OI44Ks44Or6KqeIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiLjgrnjg63jg5Djgq3jgqLoqp4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmVuaWFuIiBtc2dpZD0iMTczNTkzMzAyODkyNDk4MjM2OCI+IuOCueODreODmeODi+OCouiqniI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IuODiOODq+OCs+iqniI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4i44Km44Kv44Op44Kk44OK6KqeIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU1MDdhYQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWthLXJHRS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IuGDqOGDlOGDp+GDleGDkOGDnOGDmOGDoSDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkFuZHJvaWQt4YOY4YOhIOGDmeGDmuGDkOGDleGDmOGDkOGDouGDo+GDoOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IuGDmOGDnOGDkuGDmuGDmOGDoeGDo+GDoOGDmCAo4YOS4YOQ4YOg4YOXLiDhg6Hhg5Dhg5suKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+IuGDmOGDnOGDkuGDmuGDmOGDoeGDo+GDoOGDmCAo4YOQ4YOo4YOoKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4i4YOY4YOc4YOS4YOa4YOY4YOh4YOj4YOg4YOYICjhg5Dhg6jhg6gpLCDhg6Hhg5Dhg5Thg6Dhg5fhg5Dhg6jhg53hg6Dhg5jhg6Hhg50g4YOh4YOi4YOY4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiLhg5jhg5zhg5Lhg5rhg5jhg6Hhg6Phg6Dhg5ggKOGDkOGDqOGDqCksIENvbGVtYWsg4YOh4YOi4YOY4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4i4YOY4YOc4YOS4YOa4YOY4YOh4YOj4YOg4YOYICjhg5Dhg6jhg6gpLCBEdm9yYWsg4YOh4YOi4YOY4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiLhg5Lhg5Thg6Dhg5vhg5Dhg5zhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4i4YOk4YOg4YOQ4YOc4YOS4YOj4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IuGDpOGDoOGDkOGDnOGDkuGDo+GDmuGDmCAo4YOZ4YOQ4YOc4YOQ4YOT4YOQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IuGDoOGDo+GDoeGDo+GDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiLhg6Dhg6Phg6Hhg6Phg5rhg5gsIE1hYyDhg6Hhg6Lhg5jhg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiLhg5Thg6Hhg57hg5Dhg5zhg6Phg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZnJlbmNoX2xhYmVsIiBtc2dpZD0iNDY1OTE5MTAyNTM5NjM3MTY4NCI+IuGDqOGDleGDlOGDmOGDquGDkOGDoOGDmOGDo+GDmuGDmCDhg6Thg6Dhg5Dhg5zhg5Lhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+IuGDqOGDleGDlOGDmOGDquGDkOGDoOGDmOGDo+GDmuGDmCDhg5Lhg5Thg6Dhg5vhg5Dhg5zhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYmVsZ2lhbiIgbXNnaWQ9IjIwMTE5ODQ1NzI4Mzg2NTE1NTgiPiLhg5Hhg5Thg5rhg5Lhg5jhg6Phg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IuGDkeGDo+GDmuGDkuGDkOGDoOGDo+GDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+IuGDmOGDouGDkOGDmuGDmOGDo+GDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4i4YOT4YOQ4YOc4YOY4YOj4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiLhg5zhg53hg6Dhg5Xhg5Thg5Lhg5jhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IuGDqOGDleGDlOGDk+GDo+GDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IuGDpOGDmOGDnOGDo+GDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiLhg67hg53hg6Dhg5Xhg5Dhg6Lhg5jhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4i4YOp4YOU4YOu4YOj4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IuGDlOGDoeGDouGDneGDnOGDo+GDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4i4YOj4YOc4YOS4YOg4YOj4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiLhg5jhg6Hhg5rhg5Dhg5zhg5Phg5jhg6Phg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IuGDkeGDoOGDkOGDluGDmOGDmuGDmOGDo+GDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IuGDnuGDneGDoOGDouGDo+GDkuGDkOGDmuGDmOGDo+GDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4i4YOh4YOa4YOd4YOV4YOQ4YOZ4YOj4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiLhg6Hhg5rhg53hg5Xhg5Thg5zhg6Phg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiLhg5fhg6Phg6Dhg6Xhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IuGDo+GDmeGDoOGDkOGDmOGDnOGDo+GDmuGDmCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhOGM5OWIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1rbS1yS0gvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiLhnqfhnpThnoDhnprhno7hn43igIvhnpThnonhn5LhnoXhnrzhnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IuGegOGfkuGeiuGetuGemuGeheGeu+GeheKAiyBBbmRyb2lkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4i4Z6i4Z6E4Z+L4Z6C4Z+S4Z6b4Z+B4Z6fICjigIvhnoXhnoDhn5LhnprhnpfhnpbigIvhnqLhnoThn4vhnoLhn5Lhnpvhn4Hhnp8pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4i4Z6i4Z6E4Z+L4Z6C4Z+S4Z6b4Z+B4Z6fICjigIvhnp/hnqDhnprhnorhn5LhnovigIvhnqLhnrbhnpjhn4HhnprhnrfhnoApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiLhnqLhnoThn4vhnoLhn5Lhnpvhn4Hhnp8gKOGen+GeoOGemuGeiuGfkuGei+KAi+GeouGetuGemOGfgeGemuGet+GegOKAiynigIssIOKAi+KAi+GemuGeheGek+GetuGelOGfkOGekeGfkuGemOKAi+KAi+GeouGek+GfkuGej+GemuGeh+GetuGej+GetyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4i4Z6i4Z6E4Z+L4Z6C4Z+S4Z6b4Z+B4Z6fICjhnp/hnqDhnprhnorhn5LhnovigIvhnqLhnrbhnpjhn4HhnprhnrfhnoDigIsp4oCLLCDigIvigIvhnprhnoXhnpPhnrbhnpThn5DhnpHhn5LhnpggQ29sZW1hayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IuGeouGehOGfi+GeguGfkuGem+GfgeGenyAo4Z6f4Z6g4Z6a4Z6K4Z+S4Z6L4oCL4Z6i4Z624Z6Y4Z+B4Z6a4Z634Z6A4oCLKeKAiywg4oCL4oCL4Z6a4Z6F4Z6T4Z624Z6U4Z+Q4Z6R4Z+S4Z6YIER2b3JhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4i4Z6i4Z624Z6b4Z+S4Z6b4Z664Z6Y4Z+J4Z6E4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IuGelOGetuGemuGetuGfhuGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiLhnpThnrbhnprhnrbhn4bhnoQgKOGegOGetuGejuGetuGeiuGetuKAiykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiLhnprhnrvhnp/hn5Lhnp/hnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4i4Z6a4Z674Z6f4Z+S4Z6f4Z64IOKAi+GemuGeheGek+GetuGelOGfkOGekeGfkuGemCBNYWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiLhnqLhn4Hhnp/hn5LhnpThn4nhnrbhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZnJlbmNoX2xhYmVsIiBtc2dpZD0iNDY1OTE5MTAyNTM5NjM3MTY4NCI+IuKAi+KAi+GelOGetuGemuGetuGfhuGehOKAiyDhnp/hn5Lhnpzhnrjhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+IuGeouGetuGem+GfkuGem+GeuuGemOGfieGehOGfiyDhnp/hn5Lhnpzhnrjhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYmVsZ2lhbiIgbXNnaWQ9IjIwMTE5ODQ1NzI4Mzg2NTE1NTgiPiLhnpThn4LhnpvhnqDhn5Lhnp/hn4rhnrfhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IuGelOGfiuGeu+Gem+GeoOGfkuGegOGetuGemuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+IuGeouGfiuGeuOGej+GetuGem+GeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4i4Z6K4Z624Z6O4Z664Z6Y4Z+J4Z624Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiLhnpPhn5Dhnprhnpzhn4Lhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IuGen+GfiuGeu+GemeGeouGfguGeiiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IuGeoOGfkuGenOGetuGfhuGehOGeoeGehOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiLhnoDhn5LhnprhnrzhnqLhnrbhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4i4Z6G4Z+B4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IuGeouGfgeGen+GfkuGej+GevOGek+GeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4i4Z6g4Z674Z6E4Z6C4Z+S4Z6a4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiLhnqLhn4rhnrjhnp/hn5LhnpvhnoThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IuGelOGfkuGemuGfgeGen+GfiuGeuOGemyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IuGeluGfkOGemuGekeGeu+GemeGeoOGfkuGeguGetuGem+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4i4Z6f4Z+S4Z6b4Z684Z6c4Z+J4Z624Z6C4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiLhnp/hn5Lhnpvhnrzhnpzhn4nhnrbhnpPhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiLhnpHhnr3hnprhnoLhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IuGeouGfiuGeu+GemeGegOGfkuGemuGfguGekyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMta28vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1rby9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDcxNTg2Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMta28vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiLsnoXroKUg6riw6riwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0c19sYWJlbCIgbXNnaWQ9IjY2ODg3NzMyNjgzMDIwODc1NDUiPiJBbmRyb2lkIO2CpOuztOuTnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IuyYgeyWtCjsmIHqta0pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4i7JiB7Ja0KOuvuOq1rSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IuyYgeyWtCjrr7jqta0pLCDquIDroZzrsowg7Iqk7YOA7J28Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiLsmIHslrQo66+46rWtKSwg7L2c66elIOyKpO2DgOydvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IuyYgeyWtCjrr7jqta0pLCDrk5zrs7Trnb0g7Iqk7YOA7J28Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiLrj4XsnbzslrQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4i7ZSE656R7Iqk7Ja0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+Iu2UhOuekeyKpOyWtCjsupDrgpjri6QpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4i65+s7Iuc7JWE7Ja0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+IuufrOyLnOyVhOyWtCwgTWFjIOyKpO2DgOydvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IuyKpO2OmOyduOyWtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4i7ZSE656R7Iqk7Ja0KOyKpOychOyKpCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+IuuPheydvOyWtCjsiqTsnITsiqQpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4i67Ko6riw7JeQ7Ja0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiLrtojqsIDrpqzslYTslrQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiLsnbTtg4jrpqzslYTslrQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+IuuNtOuniO2BrOyWtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4i64W466W07Juo7J207Ja0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiLsiqTsm6jrjbTslrQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZmlubmlzaCIgbXNnaWQ9IjU1ODU2NTk0Mzg5MjQzMTU0NjYiPiLtlYDrnoDrk5zslrQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4i7YGs66Gc7JWE7Yuw7JWE7Ja0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IuyytOy9lOyWtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiLsl5DsiqTthqDri4jslYTslrQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+Iu2XneqwgOumrOyWtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4i7JWE7J207Iqs656A65Oc7Ja0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiLruIzrnbzsp4jslrQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiLtj6zrpbTtiKzqsIjslrQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+IuyKrOuhnOuwlO2CpOyVhOyWtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4i7Iqs66Gc67Kg64uI7JWE7Ja0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3R1cmtpc2giIG1zZ2lkPSI3NzM2MTYzMjUwOTA3OTY0ODk4Ij4i7YSw7YKk7Ja0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiLsmrDtgazrnbzsnbTrgpjslrQiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWxvLXJMQS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWxvLXJMQS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzk3ZTExCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtbG8tckxBL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI4MDE2MTQ1MjgzMTg5NTQ2MDE3Ij4i4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4Lqb4LuJ4Lqt4LqZ4LqC4LuN4LuJ4Lqh4Lq54LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0c19sYWJlbCIgbXNnaWQ9IjY2ODg3NzMyNjgzMDIwODc1NDUiPiLgu4Hgupvgu4ngupngup7gurTguqEgQW5kcm9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IuC6reC6seC6h+C6geC6tOC6lCAo4Lqq4Lqw4Lqr4Lqw4Lql4Lqx4LqU4LqK4Lqw4Lqt4Lqy4LqZ4Lqy4LqI4Lqx4LqBKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+IuC6reC6seC6h+C6geC6tOC6lCAo4Lqq4Lqw4Lqr4Lqw4Lql4Lqx4LqU4LqvKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4i4Lqt4Lqx4LqH4LqB4Lq04LqUICjguqrgurDguqvgurDguqXgurHgupTguq8pLCDgu4HguprguprguqrgurLguoHgurvgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+IuC6reC6seC6h+C6geC6tOC6lCAo4Lqq4Lqw4Lqr4Lqw4Lql4Lqx4LqU4LqvKSwg4LuB4Lqa4LqaIENvbGVtYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19kdm9yYWtfbGFiZWwiIG1zZ2lkPSI3OTM1Mjg5MjMxNzExNDUyMDIiPiLguq3gurHguofguoHgurTgupQgKOC6quC6sOC6q+C6sOC6peC6seC6lOC6ryksIOC7geC6muC6miBEdm9yYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+IuC7gOC6ouC6jeC6peC6sOC6oeC6seC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiLgup3guqPgurHgu4jguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4i4Lqd4Lqj4Lqx4LuI4LqHICjguoTgurLgupngurLgupTgurIpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4i4Lqj4Lqx4LqU4LuA4LqK4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+IuC6o+C6seC6lOC6iuC6veC6jSwg4LuB4Lqa4LqaIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IuC6quC6sOC7geC6m+C6meC6meC6tOC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4i4Lqq4Lqw4Lqn4Lq04LqqIOC6neC6o+C6seC7iOC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4i4Lqq4Lqw4Lqn4Lq04LqqIOC7gOC6ouC6jeC6peC6sOC6oeC6seC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IuC7gOC6muC6p+C6ouC7ieC6veC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4i4Lqu4Lqx4LqH4LqB4Lqy4Lqj4Lq94LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4i4Lqt4Lq04LqV4Lqy4Lql4Lq94LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiLgu4DgupTgurHgupngupngurTguooiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+IuC6meC7jeC7gOC6p+C6geC6veC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4i4Lqq4Lqw4Lqn4Lq14LqU4Lq04LqKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4i4Lqf4Lq04LqZ4LqZ4Lq04LqKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+IuC7guC6hOC6o+C7gOC6reC6l+C6veC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiLgu4DguorguoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4i4LuA4Lqt4Lqq4LuC4LqV4LqZ4Lq94LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiLguq7gurHguofguoHgurLguqPgur3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+IuC7hOC6reC6quC7geC6peC6meC6lOC6tOC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4i4Lqa4Lqj4Lqy4LqK4Lq04Lql4Lq94LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4i4Lqb4LuN4LqV4Lq54LqB4Lq14LqqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiLguqrgurDgu4LguqXgu4HguqfgurHguoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmVuaWFuIiBtc2dpZD0iMTczNTkzMzAyODkyNDk4MjM2OCI+IuC6quC6sOC7guC6peC7gOC6p+C6meC6veC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IuC7gOC6leC6teC6geC6tOC6qiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4i4Lqi4Lq54LuA4LqE4Lqj4LqZ4Lq94LqZIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1sdC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWx0L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwZWQxNTkKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1sdC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IklucHV0IERldmljZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IuKAnkFuZHJvaWTigJwga2xhdmlhdMWrcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiJBbmdsxbMgay4gKEpLKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+IkFuZ2zFsyBrLiAoSkFWKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4iQW5nbMWzIGsuIChKQVYpLCB0YXJwdGF1dGluaXMgc3RpbGl1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4iQW5nbMWzIGsuIChKQVYpLCDigJ5Db2xlbWFr4oCcIHN0aWxpdXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19kdm9yYWtfbGFiZWwiIG1zZ2lkPSI3OTM1Mjg5MjMxNzExNDUyMDIiPiJBbmdsxbMgay4gKEpBViksIOKAnkR2b3Jha+KAnCBzdGlsaXVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJWb2tpZcSNacWzIGsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IlByYW5jxat6xbMgay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4iUHJhbmPFq3rFsyBrLiAoS2FuYWRhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IlJ1c8WzIGsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+IlJ1c8WzIGsuLCDigJ5NYWPigJwgc3RpbGl1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IklzcGFuxbMgay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZnJlbmNoX2xhYmVsIiBtc2dpZD0iNDY1OTE5MTAyNTM5NjM3MTY4NCI+IsWgdmVpY2FyaWpvcyBwcmFuY8WresWzIGsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2dlcm1hbl9sYWJlbCIgbXNnaWQ9IjIzMDU1MjA5NDE5OTMzMTQyNTgiPiLFoHZlaWNhcmlqb3Mgdm9raWXEjWnFsyBrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IkJlbGfFsyBrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4iQnVsZ2FyxbMgay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJJdGFsxbMgay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+IkRhbsWzIGsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiJOb3J2ZWfFsyBrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4ixaB2ZWTFsyBrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IlN1b21pxbMgay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4iS3JvYXTFsyBrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiLEjGVrxbMgay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4iRXN0xbMgay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+IlZlbmdyxbMgay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+IklzbGFuZMWzIGsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiJCcmF6aWzFsyBrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IlBvcnR1Z2FsxbMgay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+IlNsb3Zha8WzIGsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiJTbG92xJduxbMgay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJUdXJrxbMgay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IlVrcmFpbmllxI1pxbMgay4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWx2L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtbHYvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdhODY1NAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLWx2L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI4MDE2MTQ1MjgzMTg5NTQ2MDE3Ij4iSWV2YWRpZXLEq2NlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iQW5kcm9pZCB0YXN0YXTFq3JhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4iQW5nxLx1IChMaWVsYnJpdMSBbmlqYSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJBbmfEvHUgKEFTVikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IkFuZ8S8dSAoQVNWKSwgc3RhcnB0YXV0aXNrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4iQW5nxLx1IChBU1YpLCBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4iQW5nxLx1IChBU1YpLCBEdm9yYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+IlbEgWN1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IkZyYW7EjXUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4iRnJhbsSNdSAoS2FuxIFkYSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiJLcmlldnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4iS3JpZXZ1LCBNYWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiJTcMSBxYZ1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJGcmFuxI11ICjFoHZlaWNlKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iVsSBY3UgKMWgdmVpY2UpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iQmXEvMSjdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4iQnVsZ8SBcnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJJdMSBxLx1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiJExIHFhnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+Ik5vcnbEk8SjdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4iWnZpZWRydSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IlNvbXUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4iSG9ydsSBdHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4ixIxlaHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4iSWdhdcWGdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4iVW5nxIFydSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4ixKpzbGFuZGllxaF1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiJCcmF6xKvEvHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiJQb3J0dWfEgcS8dSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4iU2xvdsSBa3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmVuaWFuIiBtc2dpZD0iMTczNTkzMzAyODkyNDk4MjM2OCI+IlNsb3bEk8WGdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IlR1cmt1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiJVa3JhacWGdSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtbW4tck1OL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtbW4tck1OL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjZmIwODUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiLQntGA0YPRg9C70LDRhSDQotOp0YXTqdOp0YDTqdC80LYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+ItCQ0L3QtNGA0L7QudC0INCz0LDRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+ItCQ0L3Qs9C70LggKNCY0JEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4i0JDQvdCz0LvQuCAo0JDQndCjKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4i0JDQvdCz0LvQuCAo0JDQndCjKSwg0J7Qu9C+0L0g0YPQu9GB0YvQvSDRgdGC0LjQu9GMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiLQkNC90LPQu9C4ICjQkNCd0KMpLCDQmtC+0LvQtdC80LDQuiDRgdGC0LjQu9GMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4i0JDQvdCz0LvQuCAo0JDQndCjKSwg0JTQstC+0YDQsNC6INGB0YLQuNC70YwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+ItCT0LXRgNC80LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiLQpNGA0LDQvdGGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+ItCk0YDQsNC90YYgKNCa0LDQvdCw0LQpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4i0J7RgNC+0YEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4i0J7RgNC+0YEsIE1h0Log0YHRgtC40LvRjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+ItCY0YHQv9Cw0L3QuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4i0KjQstC10LnRhtCw0YDQuNC50L0g0KTRgNCw0L3RhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4i0KjQstC10LnRhtCw0YDQuNC50L0g0JPQtdGA0LzQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4i0JHQtdC70YzQs9C4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiLQkdC+0LvQs9Cw0YAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiLQmNGC0LDQu9C4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiLQlNCw0L3QuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4i0J3QvtGA0LLQtdCz0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+ItCo0LLQtdC0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4i0KTQuNC90LvRj9C90LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4i0KXQvtGA0LLQsNGCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+ItCn0LXRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiLQrdGB0YLQvtC90LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+ItCj0L3Qs9Cw0YAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+ItCY0YHQu9Cw0L3QtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4i0JHRgNCw0LfQuNC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4i0J/QvtGA0YLRg9Cz0LDQuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4i0KHQu9C+0LLQsNC6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiLQodC70L7QstC10L3QuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+ItCi0YPRgNC6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiLQo9C60YDQsNC50L0iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLW1zLXJNWS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLW1zLXJNWS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODZmMDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI4MDE2MTQ1MjgzMTg5NTQ2MDE3Ij4iUGVyYW50aSBJbnB1dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iUGFwYW4ga2VrdW5jaSBBbmRyb2lkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4iQmFoYXNhIEluZ2dlcmlzIChVSykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJCYWhhc2EgSW5nZ2VyaXMgKEFTKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4iQmFoYXNhIEluZ2dlcmlzIChBUyksIGdheWEgQS9iYW5nc2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+IkJhaGFzYSBJbmdnZXJpcyAoQVMpLCBnYXlhIENvbGVtYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19kdm9yYWtfbGFiZWwiIG1zZ2lkPSI3OTM1Mjg5MjMxNzExNDUyMDIiPiJCYWhhc2EgSW5nZ2VyaXMgKEFTKSwgZ2F5YSBEdm9yYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+IkJhaGFzYSBKZXJtYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4iQmFoYXNhIFBlcmFuY2lzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IkJhaGFzYSBQZXJhbmNpcyAoS2FuYWRhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IkJhaGFzYSBSdXNpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiJCYWhhc2EgUnVzaWEsIGdheWEgTWFjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3NwYW5pc2hfbGFiZWwiIG1zZ2lkPSI3MDkxNTU1MTQ4MTMxOTA4MjQwIj4iQmFoYXNhIFNlcGFueW9sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJQZXJhbmNpcyBTd2l0emVybGFuZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iSmVybWFuIFN3aXR6ZXJsYW5kIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iQmFoYXNhIEJlbGdpdW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IkJhaGFzYSBCdWxnYXJpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+IkJhaGFzYSBJdGFsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4iQmFoYXNhIERlbm1hcmsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+IkJhaGFzYSBOb3J3YXkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IkJhaGFzYSBTd2VkZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZmlubmlzaCIgbXNnaWQ9IjU1ODU2NTk0Mzg5MjQzMTU0NjYiPiJCYWhhc2EgRmlubGFuZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJCYWhhc2EgQ3JvYXRpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiJCYWhhc2EgQ3plY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4iQmFoYXNhIEVzdG9uaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+IkJhaGFzYSBIdW5nYXJ5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiJCYWhhc2EgSWNlbGFuZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4iQmFoYXNhIEJyYXppbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IkJhaGFzYSBQb3J0dWdpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4iQmFoYXNhIFNsb3Zha2lhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiJCYWhhc2EgU2xvdmVuaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJCYWhhc2EgVHVya2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IkJhaGFzYSBVa3JhaW5lIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLW5iL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2NDYwNjEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IklubmRhdGFlbmhldGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0c19sYWJlbCIgbXNnaWQ9IjY2ODg3NzMyNjgzMDIwODc1NDUiPiJBbmRyb2lkLXRhc3RhdHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4iRW5nZWxzayAoU3RvcmJyaXRhbm5pYSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJFbmdlbHNrIChVU0EpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiJFbmdlbHNrIChVU0EpLCBpbnRlcm5hc2pvbmFsIHN0aWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+IkVuZ2Vsc2sgKFVTQSksIENvbGVtYWstc3RpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IkVuZ2Vsc2sgKFVTQSksIER2b3Jhay1zdGlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJUeXNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IkZyYW5zayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiJGcmFuc2sgKENhbmFkYSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiJSdXNzaXNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+IlJ1c3Npc2ssIE1hYy1zdGlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3NwYW5pc2hfbGFiZWwiIG1zZ2lkPSI3MDkxNTU1MTQ4MTMxOTA4MjQwIj4iU3BhbnNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJTdmVpdHNpc2sgZnJhbnNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2dlcm1hbl9sYWJlbCIgbXNnaWQ9IjIzMDU1MjA5NDE5OTMzMTQyNTgiPiJTdmVpdHNpc2sgc3RhbmRhcmR0eXNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iQmVsZ2lzayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4iQnVsZ2Fyc2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJJdGFsaWVuc2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+IkRhbnNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiJOb3JzayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4iU3ZlbnNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iRmluc2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4iS3JvYXRpc2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4iVHNqZWtraXNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IkVzdGlzayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4iVW5nYXJzayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4iSXNsYW5kc2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IkJyYXNpbGlhbnNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4iUG9ydHVnaXNpc2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+IlNsb3Zha2lzayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iU2xvdmVuc2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJUeXJraXNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiJVa3JhaW5zayI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtbmwvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1ubC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmQ4NGM5Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtbmwvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiJJbnZvZXJhcHBhcmF0ZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkFuZHJvaWQtdG9ldHNlbmJvcmQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiJFbmdlbHMgKFZlcmVuaWdkIEtvbmlua3JpamspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4iRW5nZWxzIChWZXJlbmlnZGUgU3RhdGVuKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4iRW5nZWxzIChWUyksIGludGVybmF0aW9uYWFsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiJFbmdlbHMgKFZTKSwgQ29sZW1hayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IkVuZ2VscyAoVlMpLCBEdm9yYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+IkR1aXRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IkZyYW5zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IkZyYW5zIChDYW5hZGEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4iUnVzc2lzY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4iUnVzc2lzY2gsIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IlNwYWFucyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4iWndpdHNlcnMgRnJhbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+Ilp3aXRzZXJzIER1aXRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iQmVsZ2lzY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IkJ1bGdhYXJzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4iSXRhbGlhYW5zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiJEZWVucyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4iTm9vcnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+Ilp3ZWVkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IkZpbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4iS3JvYXRpc2NoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IlRzamVjaGlzY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4iRXN0bGFuZHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+IkhvbmdhYXJzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiJJSnNsYW5kcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4iQnJhemlsaWFhbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiJQb3J0dWdlZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+IlNsb3dhYWtzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiJTbG92ZWVucyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IlR1cmtzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiJPZWtyYcOvZW5zIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1wbC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXBsL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1MjIyMTUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1wbC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IlVyesSFZHplbmlhIHdlasWbY2lvd2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IktsYXdpYXR1cmEgQW5kcm9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IkFuZ2llbHNraSAoV2llbGthIEJyeXRhbmlhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+IkFuZ2llbHNraSAoVVNBKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4iQW5naWVsc2tpIChVU0EpLCBtacSZZHp5bmFyb2Rvd3kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+IkFuZ2llbHNraSAoVVNBKSwgQ29sZW1hayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IkFuZ2llbHNraSAoVVNBKSwgRHZvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJOaWVtaWVja2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4iRnJhbmN1c2tpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IkZyYW5jdXNraSAoS2FuYWRhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IlJvc3lqc2tpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+IlJvc3lqc2tpLCBNYWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiJIaXN6cGHFhHNraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4iRnJhbmN1c2tpIChTendhamNhcmlhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iTmllbWllY2tpIChTendhamNhcmlhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IkJlbGdpanNraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4iQnXFgmdhcnNraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+IlfFgm9za2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+IkR1xYRza2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+Ik5vcndlc2tpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiJTendlZHpraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IkZpxYRza2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4iQ2hvcndhY2tpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IkN6ZXNraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiJFc3RvxYRza2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+IlfEmWdpZXJza2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+IklzbGFuZHpraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4iQnJhenlsaWpza2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiJQb3J0dWdhbHNraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4iU8WCb3dhY2tpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiJTxYJvd2XFhHNraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IlR1cmVja2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IlVrcmFpxYRza2kiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTYzOWNkCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtcHQtclBUL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI4MDE2MTQ1MjgzMTg5NTQ2MDE3Ij4iRGlzcG9zaXRpdm9zIGRlIGVudHJhZGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IlRlY2xhZG8gZG8gQW5kcm9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IkluZ2zDqnMgKFJVKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+IkluZ2zDqnMgKEVVQSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IkluZ2zDqnMgKEVVQSksIGVzdC4gSW50ZXJuYWNpb25hbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4iSW5nbMOqcyAoRVVBKSwgZXN0aWxvIENvbGVtYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19kdm9yYWtfbGFiZWwiIG1zZ2lkPSI3OTM1Mjg5MjMxNzExNDUyMDIiPiJJbmdsw6pzIChFVUEpLCBlc3RpbG8gRHZvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJBbGVtw6NvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IkZyYW5jw6pzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IkZyYW5jw6pzIChDYW5hZMOhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IlJ1c3NvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+IlJ1c3NvLCBlc3RpbG8gTWFjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3NwYW5pc2hfbGFiZWwiIG1zZ2lkPSI3MDkxNTU1MTQ4MTMxOTA4MjQwIj4iRXNwYW5ob2wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZnJlbmNoX2xhYmVsIiBtc2dpZD0iNDY1OTE5MTAyNTM5NjM3MTY4NCI+IkZyYW5jw6pzIChTdcOtw6dhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iQWxlbcOjbyAoU3XDrcOnYSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYmVsZ2lhbiIgbXNnaWQ9IjIwMTE5ODQ1NzI4Mzg2NTE1NTgiPiJCZWxnYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4iQsO6bGdhcm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJJdGFsaWFubyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4iRGluYW1hcnF1w6pzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiJOb3J1ZWd1w6pzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiJTdWVjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IkZpbmxhbmTDqnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4iQ3JvYXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IkNoZWNvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IkVzdMOzbmlvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiJIw7puZ2FybyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4iSXNsYW5kw6pzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiJCcmFzaWxlaXJvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4iUG9ydHVndcOqcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4iRXNsb3ZhY28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmVuaWFuIiBtc2dpZD0iMTczNTkzMzAyODkyNDk4MjM2OCI+IkVzbG92ZW5vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3R1cmtpc2giIG1zZ2lkPSI3NzM2MTYzMjUwOTA3OTY0ODk4Ij4iVHVyY28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IlVjcmFuaWFubyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtcHQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1wdC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWEwY2QwCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtcHQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiJEaXNwb3NpdGl2b3MgZGUgZW50cmFkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iVGVjbGFkbyBkbyBBbmRyb2lkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4iSW5nbMOqcyAoUmVpbm8gVW5pZG8pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4iSW5nbMOqcyAoRVVBKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4iSW5nbMOqcyAoRVVBKSwgZXN0aWxvIGludGVybmFjaW9uYWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+IkluZ2zDqnMgKEVVQSksIGVzdGlsbyBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4iSW5nbMOqcyAoRVVBKSwgZXN0aWxvIER2b3JhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4iQWxlbcOjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiJGcmFuY8OqcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiJGcmFuY8OqcyAoQ2FuYWTDoSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiJSdXNzbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiJSdXNzbywgZXN0aWxvIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IkVzcGFuaG9sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJGcmFuY8OqcyBzdcOtw6dvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2dlcm1hbl9sYWJlbCIgbXNnaWQ9IjIzMDU1MjA5NDE5OTMzMTQyNTgiPiJBbGVtw6NvIHN1w63Dp28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYmVsZ2lhbiIgbXNnaWQ9IjIwMTE5ODQ1NzI4Mzg2NTE1NTgiPiJCZWxnYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4iQsO6bGdhcm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJJdGFsaWFubyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4iRGluYW1hcnF1w6pzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiJOb3J1ZWd1w6pzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiJTdWVjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IkZpbmxhbmTDqnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4iQ3JvYXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IlRjaGVjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiJFc3Rvbmlhbm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+IkjDum5nYXJvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiJJc2xhbmTDqnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IkJyYXNpbGVpcm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiJQb3J0dWd1w6pzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiJFc2xvdmFjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iRXNsb3Zlbm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJUdXJjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4iVWNyYW5pYW5vIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1yby9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXJvL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5NWQ4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1yby9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IkRpc3Bveml0aXZlIGRlIGludHJvZHVjZXJlIGRlIGRhdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IlRhc3RhdHVyxIMgQW5kcm9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IkVuZ2xlesSDIChSZWdhdHVsIFVuaXQpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4iRW5nbGV6xIMgKFNVQSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IkVuZ2xlesSDIChTVUEpLCBzdGlsIGludGVybmHIm2lvbmFsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiJFbmdsZXrEgyAoU1VBKSwgc3RpbCBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4iRW5nbGV6xIMgKFNVQSksIHN0aWwgRHZvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJHZXJtYW7EgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiJGcmFuY2V6xIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4iRnJhbmNlesSDIChDYW5hZGEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4iUnVzxIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4iUnVzxIMsIHN0aWwgTWFjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3NwYW5pc2hfbGFiZWwiIG1zZ2lkPSI3MDkxNTU1MTQ4MTMxOTA4MjQwIj4iU3BhbmlvbMSDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJGcmFuY2V6xIMgKEVsdmXIm2lhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iR2VybWFuxIMgKEVsdmXIm2lhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IkJlbGdpYW7EgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4iQnVsZ2FyxIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJJdGFsaWFuxIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+IkRhbmV6xIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+Ik5vcnZlZ2lhbsSDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiJTdWVkZXrEgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IkZpbmxhbmRlesSDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+IkNyb2F0xIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4iQ2VoxIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4iRXN0b25pYW7EgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4iTWFnaGlhcsSDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiJJc2xhbmRlesSDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiJCcmF6aWxpYW7EgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IlBvcnR1Z2hlesSDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiJTbG92YWPEgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iU2xvdmVuxIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJUdXJjxIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IlVjcmFpbmVhbsSDIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1ydS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXJ1L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0Y2JmZDcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1ydS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+ItCj0YHRgtGA0L7QudGB0YLQstCwINCy0LLQvtC00LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+ItCa0LvQsNCy0LjQsNGC0YPRgNCwIEFuZHJvaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiLQsNC90LPQu9C40LnRgdC60LjQuSAo0JLQtdC70LjQutC+0LHRgNC40YLQsNC90LjRjykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiLQsNC90LPQu9C40LnRgdC60LjQuSAo0KHQqNCQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4i0LDQvdCz0LvQuNC50YHQutC40LkgKNCh0KjQkCwg0LzQtdC20LTRg9C90LDRgNC+0LTQvdCw0Y8pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiLQsNC90LPQu9C40LnRgdC60LjQuSAo0KHQqNCQLCBDb2xlbWFrKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+ItCw0L3Qs9C70LjQudGB0LrQuNC5ICjQodCo0JAsIER2b3JhaykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+ItC90LXQvNC10YbQutC40LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4i0YTRgNCw0L3RhtGD0LfRgdC60LjQuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiLRhNGA0LDQvdGG0YPQt9GB0LrQuNC5ICjQmtCw0L3QsNC00LApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4i0YDRg9GB0YHQutC40LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4i0YDRg9GB0YHQutC40LkgKE1hYykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiLQuNGB0L/QsNC90YHQutC40LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZnJlbmNoX2xhYmVsIiBtc2dpZD0iNDY1OTE5MTAyNTM5NjM3MTY4NCI+ItGE0YDQsNC90YbRg9C30YHQutC40LkgKNCo0LLQtdC50YbQsNGA0LjRjykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+ItC90LXQvNC10YbQutC40LkgKNCo0LLQtdC50YbQsNGA0LjRjykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYmVsZ2lhbiIgbXNnaWQ9IjIwMTE5ODQ1NzI4Mzg2NTE1NTgiPiLQvdC40LTQtdGA0LvQsNC90LTRgdC60LjQuSAo0JHQtdC70YzQs9C40Y8pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiLQsdC+0LvQs9Cw0YDRgdC60LjQuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+ItC40YLQsNC70YzRj9C90YHQutC40LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+ItC00LDRgtGB0LrQuNC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiLQvdC+0YDQstC10LbRgdC60LjQuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4i0YjQstC10LTRgdC60LjQuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+ItGE0LjQvdGB0LrQuNC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+ItGF0L7RgNCy0LDRgtGB0LrQuNC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+ItGH0LXRiNGB0LrQuNC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+ItGN0YHRgtC+0L3RgdC60LjQuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4i0LLQtdC90LPQtdGA0YHQutC40LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+ItC40YHQu9Cw0L3QtNGB0LrQuNC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiLQv9C+0YDRgtGD0LPQsNC70YzRgdC60LjQuSAo0JHRgNCw0LfQuNC70LjRjykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiLQv9C+0YDRgtGD0LPQsNC70YzRgdC60LjQuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4i0YHQu9C+0LLQsNGG0LrQuNC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiLRgdC70L7QstC10L3RgdC60LjQuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+ItGC0YPRgNC10YbQutC40LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+ItGD0LrRgNCw0LjQvdGB0LrQuNC5Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1zay9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXNrL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYWIwNDIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1zay9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IlZzdHVwbsOpIHphcmlhZGVuaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+Iktsw6F2ZXNuaWNhIEFuZHJvaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiJhbmdsaWNrw6kgKFNwb2plbsOpIGtyw6HEvm92c3R2bykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJhbmdsaWNrw6kgKFVTQSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+ImFuZ2xpY2vDqSAoVVNBKSwgbWVkemluw6Fyb2Ruw6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+ImFuZ2xpY2vDqSAoVVNBKSwgxaF0w71sIENvbGVtYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19kdm9yYWtfbGFiZWwiIG1zZ2lkPSI3OTM1Mjg5MjMxNzExNDUyMDIiPiJhbmdsaWNrw6kgKFVTQSksIMWhdMO9bCBEdm9yYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+Im5lbWVja8OpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+ImZyYW5jw7p6c2tlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+ImZyYW5jw7p6c2tlIChLYW5hZGEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4icnVza8OpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+InJ1c2vDqSwgxaF0w71sIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IsWhcGFuaWVsc2tlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiLFoXZhasSNaWFyc2tlIChmcmFuY8O6esWhdGluYSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+IsWhdmFqxI1pYXJza2UgKG5lbcSNaW5hKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+ImJlbGdpY2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4iYnVsaGFyc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+InRhbGlhbnNrZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4iZMOhbnNrZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4ibsOzcnNrZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4ixaF2w6lkc2tlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iZsOtbnNrZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJjaG9ydsOhdHNrZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiLEjWVza8OpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+ImVzdMOzbnNrZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4ibWHEj2Fyc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4iaXNsYW5kc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4iYnJhesOtbHNrZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+InBvcnR1Z2Fsc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4ic2xvdmVuc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4ic2xvdmluc2vDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+InR1cmVja8OpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiJ1a3Jhamluc2vDqSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtc2wvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1zbC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGZmM2M0Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtc2wvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiJWaG9kbmUgbmFwcmF2ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iVGlwa292bmljYSBBbmRyb2lkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4iYW5nbGXFoWthIChaZHJ1xb5lbm8ga3JhbGplc3R2bykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiJhbmdsZcWha2EgKFpEQSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+ImFuZ2xlxaFrYSAoWkRBKSwgbWVkbmFyb2RuaSBzbG9nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiJhbmdsZcWha2EgKFpEQSksIHNsb2cgQ29sZW1hayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+ImFuZ2xlxaFrYSAoWkRBKSwgc2xvZyBEdm9yYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+Im5lbcWha2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4iZnJhbmNvc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+ImZyYW5jb3NrYSAoS2FuYWRhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+InJ1c2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+InJ1c2thLCBzbG9nIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IsWhcGFuc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiLFoXZpY2Fyc2thIGZyYW5jb3NrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4ixaF2aWNhcnNrYSBuZW3FoWthIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iYmVsZ2lqc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiJib2xnYXJza2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJpdGFsaWphbnNrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4iZGFuc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiJub3J2ZcWha2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IsWhdmVkc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iZmluc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+ImhydmHFoWthIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IsSNZcWha2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4iZXN0b25za2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+Im1hZMW+YXJza2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+ImlzbGFuZHNrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4iYnJhemlsc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4icG9ydHVnYWxza2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+InNsb3ZhxaFrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4ic2xvdmVuc2thIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3R1cmtpc2giIG1zZ2lkPSI3NzM2MTYzMjUwOTA3OTY0ODk4Ij4idHVyxaFrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4idWtyYWppbnNrYSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtc3Ivc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1zci9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjNhYzAwCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtc3Ivc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiLQo9C70LDQt9C90Lgg0YPRgNC10ZLQsNGY0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkFuZHJvaWQg0YLQsNGB0YLQsNGC0YPRgNCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4i0LXQvdCz0LvQtdGB0LrQsCAo0KPQmikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiLQtdC90LPQu9C10YHQutCwICjQodCQ0JQpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiLQtdC90LPQu9C10YHQutCwICjQodCQ0JQpLCDQvNC10ZLRg9C90LDRgNC+0LTQvdC4INGB0YLQuNC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiLQtdC90LPQu9C10YHQutCwICjQodCQ0JQpLCBDb2xlbWFrINGB0YLQuNC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4i0LXQvdCz0LvQtdGB0LrQsCAo0KHQkNCUKSwgRHZvcmFrINGB0YLQuNC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiLQvdC10LzQsNGH0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiLRhNGA0LDQvdGG0YPRgdC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4i0YTRgNCw0L3RhtGD0YHQutCwICjQmtCw0L3QsNC00LApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4i0YDRg9GB0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiLRgNGD0YHQutCwLCBNYWMg0YHRgtC40LsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiLRiNC/0LDQvdGB0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4i0YjQstCw0ZjRhtCw0YDRgdC60L4g0YTRgNCw0L3RhtGD0YHQutCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2dlcm1hbl9sYWJlbCIgbXNnaWQ9IjIzMDU1MjA5NDE5OTMzMTQyNTgiPiLRiNCy0LDRmNGG0LDRgNGB0LrQviDQvdC10LzQsNGH0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+ItCx0LXQu9Cz0LjRmNGB0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4i0LHRg9Cz0LDRgNGB0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+ItC40YLQsNC70LjRmNCw0L3RgdC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+ItC00LDQvdGB0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4i0L3QvtGA0LLQtdGI0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4i0YjQstC10LTRgdC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZmlubmlzaCIgbXNnaWQ9IjU1ODU2NTk0Mzg5MjQzMTU0NjYiPiLRhNC40L3RgdC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4i0YXRgNCy0LDRgtGB0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiLRh9C10YjQutCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+ItC10YHRgtC+0L3RgdC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+ItC80LDRktCw0YDRgdC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+ItC40YHQu9Cw0L3QtNGB0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4i0LHRgNCw0LfQuNC70YHQutCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4i0L/QvtGA0YLRg9Cz0LDQu9GB0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4i0YHQu9C+0LLQsNGH0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4i0YHQu9C+0LLQtdC90LDRh9C60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiLRgtGD0YDRgdC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+ItGD0LrRgNCw0ZjQuNC90YHQutCwIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1zdi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXN2L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1YTVhZTgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1zdi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IkluZGF0YWVuaGV0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkFuZHJvaWRzIHRhbmdlbnRib3JkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4iRW5nZWxza3QgKFN0b3Jicml0YW5uaWVuKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+IkVuZ2Vsc2t0IChVU0EpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiJFbmdlbHNrdCAoVVNBKSwgaW50ZXJuYXRpb25lbGx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiJFbmdlbHNrdCAoVVNBKSwgY29sZW1hayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IkVuZ2Vsc2t0IChVU0EpLCBkdm9yYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+IlR5c2t0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IkZyYW5za3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4iRnJhbnNrdCAoS2FuYWRhKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IlJ5c2t0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbWFjX2xhYmVsIiBtc2dpZD0iMzc5NTg2Njg2OTAzODI2NDc5NiI+IlJ5c2t0LCBNYWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiJTcGFuc2t0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJGcmFuc2t0IChTY2h3ZWl6KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iVHlza3QgKFNjaHdlaXopIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iQmVsZ2lza3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IkJ1bGdhcmlza3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJJdGFsaWVuc2t0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiJEYW5za3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+Ik5vcnNrdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4iU3ZlbnNrdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IkZpbnNrdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJLcm9hdGlza3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4iVGplY2tpc2t0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IkVzdG5pc2t0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiJVbmdlcnNrdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4iSXNsw6RuZHNrdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4iUG9ydHVnaXNpc2t0IChCcmFzaWxpZW4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4iUG9ydHVnaXNpc2t0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiJTbG92YWtpc2t0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiJTbG92ZW5za3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiJUdXJraXNrdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4iVWtyYWluc2t0Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy1zdy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXN3L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1YWI5NmExCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtc3cvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiJWaWZhYSBJbmdpemkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IktpYm9kaSB5YSBBbmRyb2lkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4iS2lpbmdlcmV6YSAoVWluZ2VyZXphKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+IktpaW5nZXJlemEgKE1hcmVrYW5pKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2ludGwiIG1zZ2lkPSIzNzA1MTY4NTk0MDM0MjMzNTgzIj4iS2lpbmdlcmV6YSAoTWFyZWthbmkpLCBNdXVuZG8gd2EgS2ltYXRhaWZhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiJLaWluZ2VyZXphIChNYXJla2FuaSksIE11dW5kbyB3YSBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4iS2lpbmdlcmV6YSAoTWFyZWthbmkpLCBNdXVuZG8gd2EgRHZvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiJLaWplcnVtYW5pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IktpZmFyYW5zYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiJLaWZhcmFuc2EgKEthbmFkYSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiJLaXJ1c2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4iS2lydXNpLCBNdXVuZG8gd2EgTWFjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3NwYW5pc2hfbGFiZWwiIG1zZ2lkPSI3MDkxNTU1MTQ4MTMxOTA4MjQwIj4iS2loaXNwYW5pYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4iS2lmYXJhbnNhIGNoYSBVc3dpc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+IktpamVydW1hbmkgY2hhIFVzd2lzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IktpYmVsZ2lqaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4iS2lidWxnYXJpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+IktpaXRhbGlhbm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+IktpZGVubWFya2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+Iktpbm9yd2VpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiJLaXN3aWRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iS2lmaW5sYW5kaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJLaWtyb2VzaGlhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IktpY2hla2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZXN0b25pYW4iIG1zZ2lkPSI4Nzc1ODMwOTg1MTg1NjY1Mjc0Ij4iS2llc3RvbmlhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiJLaWh1bmdhcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+IktpYWlzbGFuZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IktpYnJhemlsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IktpcmVubyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4iS2lzbG92YWtpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iS2lzbG92ZW5pYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IktpdHVydWtpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiJLaXVrcmFuaWEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXRoL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtdGgvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNjN2Q0NwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXRoL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI4MDE2MTQ1MjgzMTg5NTQ2MDE3Ij4i4Lit4Li44Lib4LiB4Lij4LiT4LmM4Lit4Li04LiZ4Lie4Li44LiVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0c19sYWJlbCIgbXNnaWQ9IjY2ODg3NzMyNjgzMDIwODc1NDUiPiLguYHguJvguYnguJnguJ7guLTguKHguJ7guYzguYHguK3guJnguJTguKPguK3guKLguJTguYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiLguK3guLHguIfguIHguKTguKkgKOC4quC4q+C4o+C4suC4iuC4reC4suC4k+C4suC4iOC4seC4geC4oykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19sYWJlbCIgbXNnaWQ9Ijg5OTQ4OTAyNDk2NDkxMDYyOTEiPiLguK3guLHguIfguIHguKTguKkgKOC4reC5gOC4oeC4o+C4tOC4geC4seC4mSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IuC4reC4seC4h+C4geC4pOC4qSAo4Lit4LmA4Lih4Lij4Li04LiB4Lix4LiZKSwg4Lij4Li54Lib4LmB4Lia4Lia4LiZ4Liy4LiZ4Liy4LiK4Liy4LiV4Li0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiLguK3guLHguIfguIHguKTguKkgKOC4reC5gOC4oeC4o+C4tOC4geC4seC4mSksIOC4o+C4ueC4m+C5geC4muC4miBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4i4Lit4Lix4LiH4LiB4Lik4LipICjguK3guYDguKHguKPguLTguIHguLHguJkpLCDguKPguLnguJvguYHguJrguJogRHZvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2dlcm1hbl9sYWJlbCIgbXNnaWQ9Ijg0NTE1NjU4NjU0Njc5MDk5OTkiPiLguYDguKLguK3guKPguKHguLHguJkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4i4Lid4Lij4Lix4LmI4LiH4LmA4Lio4LiqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IuC4neC4o+C4seC5iOC4h+C5gOC4qOC4qiAo4LmB4LiE4LiZ4Liy4LiU4LiyKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+IuC4o+C4seC4quC5gOC4i+C4teC4oiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiLguKPguLHguKrguYDguIvguLXguKIsIOC4o+C4ueC4m+C5geC4muC4miBNYWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiLguKrguYDguJvguJkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZnJlbmNoX2xhYmVsIiBtc2dpZD0iNDY1OTE5MTAyNTM5NjM3MTY4NCI+IuC4neC4o+C4seC5iOC4h+C5gOC4qOC4qiAo4Liq4Lin4Li04LiqKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4i4LmA4Lii4Lit4Lij4Lih4Lix4LiZ4Liq4Lin4Li04LiqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4i4LmA4Lia4Lil4LmA4Lii4Li14Lii4LihIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2J1bGdhcmlhbiIgbXNnaWQ9Ijg5NTEyMjQzMDk5NzIwMjgzOTgiPiLguJrguLHguKXguYHguIHguYDguKPguLXguKIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiLguK3guLTguJXguLLguKXguLUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+IuC5gOC4lOC4meC4oeC4suC4o+C5jOC4gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4i4LiZ4Lit4Lij4LmM4LmA4Lin4Lii4LmMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiLguKrguKfguLXguYDguJTguJkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZmlubmlzaCIgbXNnaWQ9IjU1ODU2NTk0Mzg5MjQzMTU0NjYiPiLguJ/guLTguJnguYHguKXguJnguJTguYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3JvYXRpYW4iIG1zZ2lkPSI0MTcyMjI5NDcxMDc5MjgxMTM4Ij4i4LmC4LiE4Lij4LmA4Lit4LmA4LiK4Li14LiiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+IuC5gOC4iuC5h+C4gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiLguYDguK3guKrguYLguJXguYDguJnguLXguKIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+IuC4ruC4seC4h+C4geC4suC4o+C4tSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4i4LmE4Lit4LiL4LmM4LmB4Lil4LiZ4LiU4Li04LiBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiLguJrguKPguLLguIvguLTguKUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcG9ydHVndWVzZSIgbXNnaWQ9IjI4ODgxOTg1ODczMjk2NjAzMDUiPiLguYLguJvguKPguJXguLjguYDguIHguKoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+IuC4quC5guC4peC4p+C4seC4gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4i4Liq4LmC4Lil4Lin4Li14LmA4LiZ4Li14LiiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3R1cmtpc2giIG1zZ2lkPSI3NzM2MTYzMjUwOTA3OTY0ODk4Ij4i4LiV4Li44Lij4LiB4Li1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiLguKLguLnguYDguITguKPguJkiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXRsL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtdGwvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhmMzRkMgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXRsL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI4MDE2MTQ1MjgzMTg5NTQ2MDE3Ij4iTWdhIElucHV0IERldmljZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iQW5kcm9pZCBrZXlib2FyZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IkluZ2xlcyAoVUspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4iSW5nbGVzIChVUykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IkluZ2xlcyAoVVMpLCBpc3RpbG9uZyBJbnRlcm5hdGlvbmFsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiJJbmdsZXMgKFVTKSwgaXN0aWxvbmcgQ29sZW1hayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IkluZ2xlcyAoVVMpLCBpc3RpbG9uZyBEdm9yYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZ2VybWFuX2xhYmVsIiBtc2dpZD0iODQ1MTU2NTg2NTQ2NzkwOTk5OSI+Ikdlcm1hbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiJGcmVuY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2NhX2xhYmVsIiBtc2dpZD0iMzY1MzUyNjAxMDYwNjA0ODMyIj4iRnJlbmNoIChDYW5hZGEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4iUnVzc2lhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiJSdXNzaWFuLCBpc3RpbG9uZyBNYWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiJTcGFuaXNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJTd2lzcyBGcmVuY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+IlN3aXNzIEdlcm1hbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IkJlbGdpYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IkJ1bGdhcmlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+Ikl0YWxpYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZGFuaXNoIiBtc2dpZD0iODAzNjQzMjA2NjYyNzEyNzg1MSI+IkRhbmlzaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4iTm9yd2VnaWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3ZWRpc2giIG1zZ2lkPSI3MzI5NTkxMDkwODg0NzkzNTEiPiJTd2VkaXNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Zpbm5pc2giIG1zZ2lkPSI1NTg1NjU5NDM4OTI0MzE1NDY2Ij4iRmlubmlzaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJDcm9hdGlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jemVjaCIgbXNnaWQ9IjEzNDkyNTY5MDE0NTI5NzUzNDMiPiJDemVjaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiJFc3RvbmlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4iSHVuZ2FyaWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiJJY2VsYW5kaWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IkJyYXppbGlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IlBvcnR1Z3Vlc2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+IlNsb3ZhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4iU2xvdmVuaWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3R1cmtpc2giIG1zZ2lkPSI3NzM2MTYzMjUwOTA3OTY0ODk4Ij4iVHVya2lzaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF91a3JhaW5pYW4iIG1zZ2lkPSI4MTc2NjM3NzQ0Mzg5NDgwNDE3Ij4iVWtyYWluaWFuIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy10ci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXRyL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3YzEyNjIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy10ci9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iODAxNjE0NTI4MzE4OTU0NjAxNyI+IklucHV0IERldmljZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkFuZHJvaWQga2xhdnllc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiLEsG5naWxpemNlICjEsG5naWx0ZXJlKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+IsSwbmdpbGl6Y2UgKEFCRCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+IsSwbmdpbGl6Y2UgKEFCRCkgVWx1c2xhcmFyYXPEsSBzdGlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiLEsG5naWxpemNlIChBQkQpIENvbGVtYWsgc3RpbGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19kdm9yYWtfbGFiZWwiIG1zZ2lkPSI3OTM1Mjg5MjMxNzExNDUyMDIiPiLEsG5naWxpemNlIChBQkQpIER2b3JhayBzdGlsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4iQWxtYW5jYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiJGcmFuc8SxemNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IkZyYW5zxLF6Y2EgKEthbmFkYSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiJSdXPDp2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4iUnVzw6dhLCBNYWMgc3RpbGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiLEsHNwYW55b2xjYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4ixLBzdmnDp3JlIEZyYW5zxLF6Y2FzxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZ2VybWFuX2xhYmVsIiBtc2dpZD0iMjMwNTUyMDk0MTk5MzMxNDI1OCI+IsSwc3Zpw6dyZSBBbG1hbmNhc8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iQmVsw6dpa2EgZGlsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4iQnVsZ2FyY2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiLEsHRhbHlhbmNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2RhbmlzaCIgbXNnaWQ9IjgwMzY0MzIwNjY2MjcxMjc4NTEiPiJEYW5jYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4iTm9ydmXDp8OnZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4ixLBzdmXDp8OnZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IkZpbmNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+IkjEsXJ2YXTDp2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4iw4dla8OnZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiJFc3RvbmNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2h1bmdhcmlhbiIgbXNnaWQ9IjQxNTQ5NjM2NjE0MDYwMzUxMDkiPiJNYWNhcmNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiLEsHpsYW5kYWNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiJCcmV6aWx5YSBkaWxpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4iUG9ydGVraXpjZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4iU2xvdmFrw6dhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiJTbG92ZW5jZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF90dXJraXNoIiBtc2dpZD0iNzczNjE2MzI1MDkwNzk2NDg5OCI+IlTDvHJrw6dlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiJVa3JheW5hY2EiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXVrL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtdWsvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU2ZmZjNwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0lucHV0RGV2aWNlcy9yZXMvdmFsdWVzLXVrL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI4MDE2MTQ1MjgzMTg5NTQ2MDE3Ij4i0J/RgNC40YHRgtGA0L7RlyDQstCy0L7QtNGDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0c19sYWJlbCIgbXNnaWQ9IjY2ODg3NzMyNjgzMDIwODc1NDUiPiLQmtC70LDQstGW0LDRgtGD0YDQsCBBbmRyb2lkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4i0LDQvdCz0LvRltC50YHRjNC60LAgKNCS0LXQu9C40LrQvtCx0YDQuNGC0LDQvdGW0Y8pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4i0LDQvdCz0LvRltC50YHRjNC60LAgKNCh0KjQkCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19pbnRsIiBtc2dpZD0iMzcwNTE2ODU5NDAzNDIzMzU4MyI+ItCw0L3Qs9C70ZbQudGB0YzQutCwICjQodCo0JApLCDQvNGW0LbQvdCw0YDQvtC00L3QsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4i0LDQvdCz0LvRltC50YHRjNC60LAgKNCh0KjQkCksINGA0L7Qt9C60LvQsNC00LrQsCBDb2xlbWFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4i0LDQvdCz0LvRltC50YHRjNC60LAgKNCh0KjQkCksINGA0L7Qt9C60LvQsNC00LrQsCDQlNCy0L7RgNCw0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4i0L3RltC80LXRhtGM0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiLRhNGA0LDQvdGG0YPQt9GM0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiLRhNGA0LDQvdGG0YPQt9GM0LrQsCAo0JrQsNC90LDQtNCwKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX2xhYmVsIiBtc2dpZD0iODcyNDg3OTc3NTgxNTA0Mjk2OCI+ItGA0L7RgdGW0LnRgdGM0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiLRgNC+0YHRltC50YHRjNC60LAsINGA0L7Qt9C60LvQsNC00LrQsCBNYWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiLRltGB0L/QsNC90YHRjNC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dpc3NfZnJlbmNoX2xhYmVsIiBtc2dpZD0iNDY1OTE5MTAyNTM5NjM3MTY4NCI+ItGE0YDQsNC90YbRg9C30YzQutCwICjQqNCy0LXQudGG0LDRgNGW0Y8pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2dlcm1hbl9sYWJlbCIgbXNnaWQ9IjIzMDU1MjA5NDE5OTMzMTQyNTgiPiLQvdGW0LzQtdGG0YzQutCwICjQqNCy0LXQudGG0LDRgNGW0Y8pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4i0LHQtdC70YzQs9GW0LnRgdGM0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4i0LHQvtC70LPQsNGA0YHRjNC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiLRltGC0LDQu9GW0LnRgdGM0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4i0LTQsNC90YHRjNC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfbm9yd2VnaWFuIiBtc2dpZD0iOTA5MDA5NzkxNzAxMTA0MDkzNyI+ItC90L7RgNCy0LXQt9GM0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4i0YjQstC10LTRgdGM0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+ItGE0ZbQvdGB0YzQutCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2Nyb2F0aWFuIiBtc2dpZD0iNDE3MjIyOTQ3MTA3OTI4MTEzOCI+ItGF0L7RgNCy0LDRgtGB0YzQutCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2N6ZWNoIiBtc2dpZD0iMTM0OTI1NjkwMTQ1Mjk3NTM0MyI+ItGH0LXRgdGM0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lc3RvbmlhbiIgbXNnaWQ9Ijg3NzU4MzA5ODUxODU2NjUyNzQiPiLQtdGB0YLQvtC90YHRjNC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaHVuZ2FyaWFuIiBtc2dpZD0iNDE1NDk2MzY2MTQwNjAzNTEwOSI+ItGD0LPQvtGA0YHRjNC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaWNlbGFuZGljIiBtc2dpZD0iNTgzNjY0NTY1MDkxMjQ4OTY0MiI+ItGW0YHQu9Cw0L3QtNGB0YzQutCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JyYXppbGlhbiIgbXNnaWQ9IjUxMTc4OTY0NDMxNDc3ODE5MzkiPiLQsdGA0LDQt9C40LvRjNGB0YzQutCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4i0L/QvtGA0YLRg9Cz0LDQu9GM0YHRjNC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmFrIiBtc2dpZD0iMjQ2OTM3OTkzNDY3MjgzNzI5NiI+ItGB0LvQvtCy0LDRhtGM0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92ZW5pYW4iIG1zZ2lkPSIxNzM1OTMzMDI4OTI0OTgyMzY4Ij4i0YHQu9C+0LLQtdC90YHRjNC60LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiLRgtGD0YDQtdGG0YzQutCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3VrcmFpbmlhbiIgbXNnaWQ9IjgxNzY2Mzc3NDQzODk0ODA0MTciPiLRg9C60YDQsNGX0L3RgdGM0LrQsCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtdmkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy12aS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTY1ZTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtdmkvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiJUaGnhur90IGLhu4sgxJHhuqd1IHbDoG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkLDoG4gcGjDrW0gQW5kcm9pZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VrX2xhYmVsIiBtc2dpZD0iNjY2NDI1ODQ2MzMxOTk5OTYzMiI+IlRp4bq/bmcgQW5oIChBbmgpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4iVGnhur9uZyBBbmggKE3hu7kpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiJUaeG6v25nIEFuaCAoTeG7uSksIGtp4buDdSBRdeG7kWMgdOG6vyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2NvbGVtYWtfbGFiZWwiIG1zZ2lkPSI0MTk0OTY5NjEwMzQzNDU1MzgwIj4iVGnhur9uZyBBbmggKE3hu7kpLCBraeG7g3UgQ29sZW1hayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2R2b3Jha19sYWJlbCIgbXNnaWQ9Ijc5MzUyODkyMzE3MTE0NTIwMiI+IlRp4bq/bmcgQW5oIChN4bu5KSwga2nhu4N1IER2b3JhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4iVGnhur9uZyDEkOG7qWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZnJlbmNoX2xhYmVsIiBtc2dpZD0iODEzNDUwMTE5NTg5MzgzNzIzIj4iVGnhur9uZyBQaMOhcCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiJUaeG6v25nIFBow6FwIChDYW5hZGEpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3J1c3NpYW5fbGFiZWwiIG1zZ2lkPSI4NzI0ODc5Nzc1ODE1MDQyOTY4Ij4iVGnhur9uZyBOZ2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4iVGnhur9uZyBOZ2EsIGtp4buDdSBNYWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3BhbmlzaF9sYWJlbCIgbXNnaWQ9IjcwOTE1NTUxNDgxMzE5MDgyNDAiPiJUaeG6v25nIFTDonkgQmFuIE5oYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4iVGnhur9uZyBQaMOhcCDhu58gVGjhu6V5IFPEqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19nZXJtYW5fbGFiZWwiIG1zZ2lkPSIyMzA1NTIwOTQxOTkzMzE0MjU4Ij4iVGnhur9uZyDEkOG7qWMgVGjhu6V5IFPEqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9iZWxnaWFuIiBtc2dpZD0iMjAxMTk4NDU3MjgzODY1MTU1OCI+IlRp4bq/bmcgQuG7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9idWxnYXJpYW4iIG1zZ2lkPSI4OTUxMjI0MzA5OTcyMDI4Mzk4Ij4iVGnhur9uZyBCdW5nYXJ5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2l0YWxpYW4iIG1zZ2lkPSI2NDk3MDc5NjYwNDQ5NzgxMjEzIj4iVGnhur9uZyDDnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4iVGnhur9uZyDEkGFuIE3huqFjaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4iVGnhur9uZyBOYSBVeSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4iVGnhur9uZyBUaOG7pXkgxJBp4buDbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IlRp4bq/bmcgUGjhuqduIExhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJUaeG6v25nIENyb2F0aWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4iVGnhur9uZyBTw6ljIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IlRp4bq/bmcgRXN0b25pYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4iVGnhur9uZyBIdW5nYXJ5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiJUaeG6v25nIEFpLXjGoS1sZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IlRp4bq/bmcgQnJhemlsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3BvcnR1Z3Vlc2UiIG1zZ2lkPSIyODg4MTk4NTg3MzI5NjYwMzA1Ij4iVGnhur9uZyBC4buTIMSQw6BvIE5oYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4iVGnhur9uZyBTbG92YWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc2xvdmVuaWFuIiBtc2dpZD0iMTczNTkzMzAyODkyNDk4MjM2OCI+IlRp4bq/bmcgU2xvdmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3R1cmtpc2giIG1zZ2lkPSI3NzM2MTYzMjUwOTA3OTY0ODk4Ij4iVGnhur9uZyBUaOG7lSBOaMSpIEvhu7MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IlRp4bq/bmcgVWtyYWluYSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtemgtckNOL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtemgtckNOL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1YjFjODQKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy16aC1yQ04vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiLovpPlhaXorr7lpIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkFuZHJvaWQg6ZSu55uYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4i6Iux6K+t77yI6Iux5Zu977yJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4i6Iux6K+t77yI576O5Zu977yJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiLoi7Hor63vvIjnvo7lm73vvInvvIzlm73pmYXpo47moLwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+IuiLseivre+8iOe+juWbve+8ie+8jENvbGVtYWsg6aOO5qC8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4i6Iux6K+t77yI576O5Zu977yJ77yMRHZvcmFrIOmjjuagvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4i5b636K+tIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IuazleivrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiLms5Xor63vvIjliqDmi7/lpKfvvIkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiLkv4Tor60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4i5L+E6K+t77yMTWFjIOmjjuagvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+Iuilv+ePreeJmeivrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4i55Ge5aOr5rOV6K+tIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2dlcm1hbl9sYWJlbCIgbXNnaWQ9IjIzMDU1MjA5NDE5OTMzMTQyNTgiPiLnkZ7lo6vlvrfor60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYmVsZ2lhbiIgbXNnaWQ9IjIwMTE5ODQ1NzI4Mzg2NTE1NTgiPiLmr5TliKnml7bor60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IuS/neWKoOWIqeS6muivrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+IuaEj+Wkp+WIqeivrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4i5Li56bqm6K+tIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiLmjKrlqIHor60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IueRnuWFuOivrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IuiKrOWFsOivrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiLlhYvnvZflnLDkupror60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4i5o235YWL6K+tIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IueIseaymeWwvOS6muivrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4i5YyI54mZ5Yip6K+tIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiLlhrDlspvor60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IuW3tOilv+ivrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IuiRoeiQhOeJmeivrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4i5pav5rSb5LyQ5YWL6K+tIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiLmlq/mtJvmloflsLzkupror60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiLlnJ/ogLPlhbbor60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IuS5jOWFi+WFsOivrSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzOWM1NDYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy16aC1ySEsvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiLovLjlhaXoo53nva4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkFuZHJvaWQg6Y2155ukIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4i6Iux5paHICjoi7HlnIspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4i6Iux5paHICjnvo7lnIspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiLoi7HmlocgKOe+juWciynvvIzlnIvpmpvmqKPlvI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+IuiLseaWhyAo576O5ZyLKe+8jENvbGVtYWsg5qij5byPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4i6Iux5paHICjnvo7lnIsp77yMRHZvcmFrIOaoo+W8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4i5b635paHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IuazleaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiLms5XmlocgKOWKoOaLv+WkpykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiLkv4TmlociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4i5L+E5paH77yMTWFjIOaoo+W8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+Iuilv+ePreeJmeaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4i5rOV5paHICjnkZ7lo6spIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2dlcm1hbl9sYWJlbCIgbXNnaWQ9IjIzMDU1MjA5NDE5OTMzMTQyNTgiPiLlvrfmlofvvIjnkZ7lo6vvvIkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYmVsZ2lhbiIgbXNnaWQ9IjIwMTE5ODQ1NzI4Mzg2NTE1NTgiPiLmr5TliKnmmYLmlociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IuS/neWKoOWIqeS6nuaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+IuaEj+Wkp+WIqeaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4i5Li56bql5paHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiLmjKrlqIHmlociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IueRnuWFuOaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IuiKrOiYreaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiLlhYvnvoXlnLDkup7mlociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4i5o235YWL5paHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IuaEm+aymeWwvOS6nuaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4i5YyI54mZ5Yip5paHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiLlhrDls7bmlociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IuW3tOilv+aWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IuiRoeiQhOeJmeaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4i5pav5rSb5LyQ5YWL5paHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiLmlq/mtJvmloflsLzkup7mlociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiLlnJ/ogLPlhbbmlociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IueDj+WFi+iYreaWhyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhOWYxMzIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy16aC1yVFcvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiLovLjlhaXoo53nva4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRzX2xhYmVsIiBtc2dpZD0iNjY4ODc3MzI2ODMwMjA4NzU0NSI+IkFuZHJvaWQg6Y2155ukIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdWtfbGFiZWwiIG1zZ2lkPSI2NjY0MjU4NDYzMzE5OTk5NjMyIj4i6Iux5paHICjoi7HlnIspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfbGFiZWwiIG1zZ2lkPSI4OTk0ODkwMjQ5NjQ5MTA2MjkxIj4i6Iux5paHICjnvo7lnIspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiLoi7HmlocgKOe+juWciynvvIzlnIvpmpvmqKPlvI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19jb2xlbWFrX2xhYmVsIiBtc2dpZD0iNDE5NDk2OTYxMDM0MzQ1NTM4MCI+IuiLseaWhyAo576O5ZyLKe+8jENvbGVtYWsg5qij5byPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfZHZvcmFrX2xhYmVsIiBtc2dpZD0iNzkzNTI4OTIzMTcxMTQ1MjAyIj4i6Iux5paHICjnvo7lnIsp77yMRHZvcmFrIOaoo+W8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4i5b635paHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjgxMzQ1MDExOTU4OTM4MzcyMyI+IuazleaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfY2FfbGFiZWwiIG1zZ2lkPSIzNjUzNTI2MDEwNjA2MDQ4MzIiPiLms5XmlocgKOWKoOaLv+WkpykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiLkv4TmlociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9tYWNfbGFiZWwiIG1zZ2lkPSIzNzk1ODY2ODY5MDM4MjY0Nzk2Ij4i5L+E5paH77yMTWFjIOaoo+W8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+Iuilv+ePreeJmeaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2lzc19mcmVuY2hfbGFiZWwiIG1zZ2lkPSI0NjU5MTkxMDI1Mzk2MzcxNjg0Ij4i5rOV5paHICjnkZ7lo6spIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2dlcm1hbl9sYWJlbCIgbXNnaWQ9IjIzMDU1MjA5NDE5OTMzMTQyNTgiPiLlvrfmlocgKOeRnuWjqykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYmVsZ2lhbiIgbXNnaWQ9IjIwMTE5ODQ1NzI4Mzg2NTE1NTgiPiLmr5TliKnmmYLlvI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IuS/neWKoOWIqeS6nuaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pdGFsaWFuIiBtc2dpZD0iNjQ5NzA3OTY2MDQ0OTc4MTIxMyI+Iue+qeWkp+WIqeaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4i5Li56bql5paHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X25vcndlZ2lhbiIgbXNnaWQ9IjkwOTAwOTc5MTcwMTEwNDA5MzciPiLmjKrlqIHmlociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfc3dlZGlzaCIgbXNnaWQ9IjczMjk1OTEwOTA4ODQ3OTM1MSI+IueRnuWFuOaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9maW5uaXNoIiBtc2dpZD0iNTU4NTY1OTQzODkyNDMxNTQ2NiI+IuiKrOiYreaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiLlhYvnvoXln4Popb/kup7mlociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4i5o235YWL5paHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IuaEm+aymeWwvOS6nuaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4i5YyI54mZ5Yip5paHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ljZWxhbmRpYyIgbXNnaWQ9IjU4MzY2NDU2NTA5MTI0ODk2NDIiPiLlhrDls7bmlociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnJhemlsaWFuIiBtc2dpZD0iNTExNzg5NjQ0MzE0Nzc4MTkzOSI+IuW3tOilv+W8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IuiRoeiQhOeJmeaWhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zbG92YWsiIG1zZ2lkPSIyNDY5Mzc5OTM0NjcyODM3Mjk2Ij4i5pav5rSb5LyQ5YWL5paHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiLmlq/mtJvntq3lsLzkup7mlociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdHVya2lzaCIgbXNnaWQ9Ijc3MzYxNjMyNTA5MDc5NjQ4OTgiPiLlnJ/ogLPlhbbmlociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IueDj+WFi+iYreaWhyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtenUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9JbnB1dERldmljZXMvcmVzL3ZhbHVlcy16dS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmYxMDc0Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvSW5wdXREZXZpY2VzL3Jlcy92YWx1ZXMtenUvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjgwMTYxNDUyODMxODk1NDYwMTciPiJBbWFkaXZheWlzaSB3b2t1ZmFrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dHNfbGFiZWwiIG1zZ2lkPSI2Njg4NzczMjY4MzAyMDg3NTQ1Ij4iSWtoaWJob2RpIHllLUFuZHJvaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91a19sYWJlbCIgbXNnaWQ9IjY2NjQyNTg0NjMzMTk5OTk2MzIiPiJJLUVuZ2xpc2ggKFVLKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9lbmdsaXNoX3VzX2xhYmVsIiBtc2dpZD0iODk5NDg5MDI0OTY0OTEwNjI5MSI+IkktRW5nbGlzaCAoVVMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfaW50bCIgbXNnaWQ9IjM3MDUxNjg1OTQwMzQyMzM1ODMiPiJJLUVuZ2xpc2ggKFVTKSwgaXNpdGF5ZWxhIHNha3dhbWFueWUgYW1hendlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VuZ2xpc2hfdXNfY29sZW1ha19sYWJlbCIgbXNnaWQ9IjQxOTQ5Njk2MTAzNDM0NTUzODAiPiJJLUVuZ2xpc2ggKFVTKSwgaXNpdGF5ZWxhIHNlLUNvbGVtYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZW5nbGlzaF91c19kdm9yYWtfbGFiZWwiIG1zZ2lkPSI3OTM1Mjg5MjMxNzExNDUyMDIiPiJJLUVuZ2xpc2ggKFVTKSwgaXNpdGF5ZWxhIHNlLUR2b3JhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9nZXJtYW5fbGFiZWwiIG1zZ2lkPSI4NDUxNTY1ODY1NDY3OTA5OTk5Ij4iSXNpLUdlcm1hbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9mcmVuY2hfbGFiZWwiIG1zZ2lkPSI4MTM0NTAxMTk1ODkzODM3MjMiPiJJc2ktRnJlbmNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2ZyZW5jaF9jYV9sYWJlbCIgbXNnaWQ9IjM2NTM1MjYwMTA2MDYwNDgzMiI+IklzaS1GcmVuY2ggKENhbmFkYSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfcnVzc2lhbl9sYWJlbCIgbXNnaWQ9Ijg3MjQ4Nzk3NzU4MTUwNDI5NjgiPiJJc2ktUnVzc2lhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ydXNzaWFuX21hY19sYWJlbCIgbXNnaWQ9IjM3OTU4NjY4NjkwMzgyNjQ3OTYiPiJJc2ktUnVzc2lhbiwgaXNpdGF5ZWxhIHNlLU1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zcGFuaXNoX2xhYmVsIiBtc2dpZD0iNzA5MTU1NTE0ODEzMTkwODI0MCI+IklzaS1TcGFuaXNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2ZyZW5jaF9sYWJlbCIgbXNnaWQ9IjQ2NTkxOTEwMjUzOTYzNzE2ODQiPiJJc2ktU3dpc3MgRnJlbmNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3N3aXNzX2dlcm1hbl9sYWJlbCIgbXNnaWQ9IjIzMDU1MjA5NDE5OTMzMTQyNTgiPiJJc2ktU3dpc3MgR2VybWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2JlbGdpYW4iIG1zZ2lkPSIyMDExOTg0NTcyODM4NjUxNTU4Ij4iSXNpLUJlbGdpYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfYnVsZ2FyaWFuIiBtc2dpZD0iODk1MTIyNDMwOTk3MjAyODM5OCI+IklzaS1CdWxnYXJpYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfaXRhbGlhbiIgbXNnaWQ9IjY0OTcwNzk2NjA0NDk3ODEyMTMiPiJJc2ktSXRhbGlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9kYW5pc2giIG1zZ2lkPSI4MDM2NDMyMDY2NjI3MTI3ODUxIj4iSXNpLURhbmlzaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9ub3J3ZWdpYW4iIG1zZ2lkPSI5MDkwMDk3OTE3MDExMDQwOTM3Ij4iSXNpLU5vcndlZ2lhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9zd2VkaXNoIiBtc2dpZD0iNzMyOTU5MTA5MDg4NDc5MzUxIj4iSXNpLVN3ZWRpc2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfZmlubmlzaCIgbXNnaWQ9IjU1ODU2NTk0Mzg5MjQzMTU0NjYiPiJJc2ktRmlubmlzaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9jcm9hdGlhbiIgbXNnaWQ9IjQxNzIyMjk0NzEwNzkyODExMzgiPiJJc2ktQ3JvYXRpYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfY3plY2giIG1zZ2lkPSIxMzQ5MjU2OTAxNDUyOTc1MzQzIj4iSXNpLUN6ZWNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X2VzdG9uaWFuIiBtc2dpZD0iODc3NTgzMDk4NTE4NTY2NTI3NCI+IklzaS1Fc3RvbmlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9odW5nYXJpYW4iIG1zZ2lkPSI0MTU0OTYzNjYxNDA2MDM1MTA5Ij4iSXNpLUh1bmdhcmlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9pY2VsYW5kaWMiIG1zZ2lkPSI1ODM2NjQ1NjUwOTEyNDg5NjQyIj4iSXNpLUljZWxhbmRpYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9icmF6aWxpYW4iIG1zZ2lkPSI1MTE3ODk2NDQzMTQ3NzgxOTM5Ij4iSXNpLUJyYXppbGlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkX2xheW91dF9wb3J0dWd1ZXNlIiBtc2dpZD0iMjg4ODE5ODU4NzMyOTY2MDMwNSI+IklzaS1Qb3J0dWd1ZXNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZhayIgbXNnaWQ9IjI0NjkzNzk5MzQ2NzI4MzcyOTYiPiJJc2ktU2xvdmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3Nsb3ZlbmlhbiIgbXNnaWQ9IjE3MzU5MzMwMjg5MjQ5ODIzNjgiPiJJc2ktU2xvdmVuaWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmRfbGF5b3V0X3R1cmtpc2giIG1zZ2lkPSI3NzM2MTYzMjUwOTA3OTY0ODk4Ij4iSXNpLVR1cmtpc2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZF9sYXlvdXRfdWtyYWluaWFuIiBtc2dpZD0iODE3NjYzNzc0NDM4OTQ4MDQxNyI+IklzaS1Va3JhaW5pYW4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtYWYvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWFmL3N0cmluZ3MueG1sCmluZGV4IDdlMWYwYmYuLjI2NjdlZDIgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtYWYvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1hZi9zdHJpbmdzLnhtbApAQCAtMjEsOSArMjEsOSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iVm9lciBQSU4ta29kZSBpbiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IlZvZXIgUFVLIGVuIG51d2UgUElOLWtvZGUgaW4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IlBVSy1rb2RlIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiJOdXdlIFBJTi1rb2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iVm9lciBTSU0gUFVLLSBlbiBudXdlIFBJTi1rb2RlIGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJTSU0gUFVLLWtvZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+Ik51d2UgU0lNIFBJTi1rb2RlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4iUmFhayBvbSB3YWd3b29yZCBpbiB0ZSB2b2VyIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iVm9lciB3YWd3b29yZCBpbiBvbSB0ZSBvbnRzbHVpdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IlZvZXIgUElOIGluIG9tIHRlIG9udHNsdWl0Ijwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IkxhYXR3YWcta25vcHBpZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iU3BlZWwta25vcHBpZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iU3RvcC1rbm9wcGllIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IkxhYWlrIGJhaWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiJMYWFpayBuaWtzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4iSGFydCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+Ik9udHNsdWl0IG9tIHZvb3J0IHRlIGdhYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJCZWdpbiBnZWthbnNlbGxlZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4iTGFhdCBsb3MgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gb20gdWl0IHRlIHZlZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gc2FsIG5pZSB1aXRnZXZlZSB3b3JkIG5pZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IlZvZXIgZGllIGdld2Vuc3RlIFBJTi1rb2RlIGluIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IkJldmVzdGlnIGdld2Vuc3RlIFBJTi1rb2RlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJPbnRzbHVpdCB0YW5zIFNJTS1rYWFydOKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IlZlcmtlZXJkZSBQSU4ta29kZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiJUaWsgXCduIFBJTiBpbiB3YXQgNCB0b3QgOCBzeWZlcnMgbGFuayBpcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJQVUsta29kZSBtb2V0IDggb2YgbWVlciBzeWZlcnMgd2Vlcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiJWb2VyIHdlZXIgZGllIGtvcnJla3RlIFBVSy1rb2RlIGluLiBIZXJoYWFsZGUgcG9naW5ncyBzYWwgZGllIFNJTSBwZXJtYW5lbnQgZGVha3RpdmVlci4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+Ikp5IGhldCBqb3Ugb250c2x1aXRwYXRyb29uIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGtlZXIgdmVya2VlcmRlbGlrIGdldGVrZW4uIE5hIG5vZyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBvbnN1a3Nlc3ZvbGxlIHBvZ2luZ3MsIHNhbCBqeSBnZXZyYSB3b3JkIG9tIGpvdSBmb29uIHRlIG9udHNsdWl0IGRldXIgbWlkZGVsIHZhbiBcJ24gZS1wb3NyZWtlbmluZy5cblxuIFByb2JlZXIgd2VlciBvb3IgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2Vrb25kZXMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4iVmVyd3lkZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IlZlcmtlZXJkZSBTSU0gUElOLWtvZGUsIGp5IHNhbCBub3Ugam91IGRpZW5zdmVyc2thZmZlciBtb2V0IGtvbnRhayBvbSBqb3UgdG9lc3RlbCB0ZSBvbnRzbHVpdC4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+IlZlcmtlZXJkZSBTSU0gUElOLWtvZGUsIGp5IGhldCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gb29yYmx5d2VuZGUgcG9naW5nIHZvb3JkYXQgankgam91IGRpZW5zdmVyc2thZmZlciBzYWwgbW9ldCBrb250YWsgb20gam91IHRvZXN0ZWwgdGUgb250c2x1aXQuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4iVmVya2VlcmRlIFNJTSBQSU4ta29kZSwgankgaGV0IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBvb3JibHl3ZW5kZSBwb2dpbmdzLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iU0lNIGlzIG9uYnJ1aWtiYWFyLiBLb250YWsgam91IGRpZW5zdmVyc2thZmZlci4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IlZlcmtlZXJkZSBTSU0gUFVLLWtvZGUsIGp5IGhldCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gb29yYmx5d2VuZGUgcG9naW5nIHZvb3JkYXQgU0lNIHBlcm1hbmVudCBvbmJydWlrYmFhciB3b3JkLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IlZlcmtlZXJkZSBTSU0gUFVLLWtvZGUsIGp5IGhldCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gb29yYmx5d2VuZGUgcG9naW5ncyB2b29yZGF0IFNJTSBwZXJtYW5lbnQgb25icnVpa2JhYXIgd29yZC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IlNJTSBQSU4tYmV3ZXJraW5nIGhldCBtaXNsdWshIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJTSU0gUFVLLWJld2Vya2luZyBoZXQgbWlzbHVrISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9hY2NlcHRlZCIgbXNnaWQ9IjE0NDgyNDE2NzM1NzAwMjAwOTciPiJLb2RlIGlzIGFhbnZhYXIhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iVm9yaWdlc25pdC1rbm9wcGllIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4iVm9sZ2VuZGVzbml0LWtub3BwaWUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4iTGFhdHdhZy1rbm9wcGllIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1hbS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtYW0vc3RyaW5ncy54bWwKaW5kZXggMmY2ZGFiMC4uZmQ0Y2Y3OCAxMDA2NDQKLS0tIGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1hbS9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWFtL3N0cmluZ3MueG1sCkBAIC0yMSw5ICsyMSw5IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLhjZLhipUg4Yqu4Yu1IOGJsOGLreGJpSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IlBVSyDhiqXhipMg4Yqg4Yuy4Yi1IOGNkuGKlSDhibDhi63hiaUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IuGLqFBVSyDhiq7hi7UiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+IuGKoOGLsuGItSBQaW4g4Yqu4Yu1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4i4Yuo4Yiy4YidIFBVSyDhiqXhipMg4Yqg4Yuy4Yix4YqVIOGNkuGKlSDhiq7hi7Ug4Yut4Ymw4Yut4YmhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiLhi6jhiLLhiJ0gUFVLIOGKruGLtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4i4Yqg4Yuy4Yi1IOGIsuGInSDhjZLhipUg4Yqu4Yu1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4i4Yuo4Yut4YiI4Y2NIOGJg+GIjSDhiIjhiJjhibDhi6jhiaUg4YqV4YqrIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4i4YiI4YiY4Yqt4Y2I4Ym1IOGLqOGLreGIiOGNjSDhiYPhiI0g4Ymw4Yut4YmlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i4YiI4YiY4Yqt4Y2I4Ym1IOGNkuGKlSDhibDhi63hiaUiPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4i4YiI4Yqg4Y2N4YmzIOGKoOGJgeGInSDhiqDhi53hiKvhiK0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+IuGLqOGKoOGMq+GLjeGJtSDhiqDhi53hiKvhiK0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+IuGKoOGJgeGInSDhiqDhi53hiKvhiK0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4i4Yqg4Yiq4Y2NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4i4Yuw4Ymj4YiqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4i4YiN4YmlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4i4YiI4YiY4YmA4Yyg4YiNIOGLreGKreGNiOGJsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IuGIm+GIteGMgOGImOGIrSDhibDhiLDhiK3hi5/hiI0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4i4YiI4YiY4Yiw4Yio4YudIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+4YqVIOGMo+GIjSDhi6vhi7XhiK3hjInhjaIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4Yqg4Yut4Yiw4Yit4Yud4Yid4Y2iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC0xMDUsNyArMTEyLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiLhi6jhibDhjYjhiIjhjIjhi43hipUg4Yuo4Y2S4YqVIOGKruGLtSDhi6vhiLXhjIjhiaEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4i4Yuo4Ymw4Y2I4YiI4YyI4YuN4YqVIOGLqOGNkuGKlSDhiq7hi7Ug4Yur4Yio4YyL4YyN4YyhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiLhiLLhiJ0g4Yqr4Yit4Yux4YqVIOGJoOGImOGKreGNiOGJtSDhiIvhi63igKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiLhibXhiq3hiq3hiI0g4Yur4YiN4YiG4YqQIOGNkuGKlSDhiq7hi7XhjaIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLhiqg0IOGKpeGIteGKqCA4IOGJgeGMpeGIruGJvSDhi6jhi6vhi5gg4Y2S4YqVIOGLreGJsOGLreGJoeGNoiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IuGLqFBVSyDhiq7hi7UgOCDhi4jhi63hiJ0g4Yqo4Yua4YurIOGJoOGIi+GLrSDhiYHhjKXhiK7hib0g4YiK4YqW4Yio4YuNIOGLreGMiOGJo+GIjeGNoiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IuGJteGKreGKreGIiOGKm+GLjeGKlSDhi6hQVUsg4Yqu4Yu1IOGKpeGKleGLsOGMiOGKkyDhi6vhiLXhjIjhiaHhjaIg4Ymw4Yuw4YyL4YyL4YiaIOGImeGKqOGIq+GLjuGJvSDhiLLhiJ0g4Yqr4Yit4Yux4YqVIOGKpeGIteGKqOGImOGMqOGIqOGIu+GLjSDhi6vhiLDhipPhiq3hiInhibPhiI3hjaIiPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IuGLqOGImOGKreGNiOGJuyDhiLXhiK3hi5PhibAg4Yyl4YiI4Ymx4YqVIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOGMiuGLnCDhiaDhibXhiq3hiq3hiI0g4Yqg4YiN4Yiz4YiJ4Ym14Yid4Y2iIOGKqDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGJsOGMqOGIm+GIqiDhi6vhiI3hibDhiLPhiqkg4YiZ4Yqo4Yir4YuO4Ym9IOGJoOGKi+GIiyDhi6jhiqLhiJzhi63hiI0g4YiY4YiI4YurIOGJsOGMoOGJheGImOGLjSDhiLXhiI3hiq3hi47hipUg4Yql4YqV4Yuy4Yqo4Y2N4YmxIOGLreGMoOGLqOGJg+GIieGNolxuXG7hiqXhiaPhiq3hi44g4YqoPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Yiw4Yqo4YqV4Yu24Ym9IOGJoOGKi+GIiyDhiqXhipXhi7DhjIjhipMg4Yut4Yie4Yqt4Yip4Y2iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i4Yqg4Yi14YuI4YyN4Yu1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiLhiI3hiq0g4Yur4YiN4YiG4YqQIOGLqOGIsuGInSDhiq7hi7XhjaIg4Yqg4YiB4YqVIOGImOGIs+GIquGLq+GLjuGKlSDhiIjhiJvhiLXhiqjhjYjhibUg4Yu14Yid4Yy4IOGJsOGLq+GLq+GLpSDhiJ7hi7DhiJ3hi47hipUg4Yib4YyN4YqY4Ym1IOGKoOGIiOGJpeGLjuGNoiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4i4YiN4YqtIOGLq+GIjeGIhuGKkCDhi6jhiLLhiJ0g4Y2S4YqVIOGKruGLteGNoyDhiJjhiLPhiKrhi6vhi47hipUg4YiI4Yib4Yi14Yqo4Y2I4Ym1IOGLteGIneGMuCDhibDhi6vhi6vhi6Ug4Yie4Yuw4Yid4YuO4YqVIOGIm+GMjeGKmOGJtSDhjI3hi7ThibPhi44g4YiK4YiG4YqVIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhiJnhiqjhiKsg4Yut4YmA4Yit4YuO4Ymz4YiN4Y2iIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4i4YiN4YqtIOGLq+GIjeGIhuGKkCDhi6jhiLLhiJ0g4Y2S4YqVIOGKruGLteGNoyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4YiZ4Yqo4Yir4YuO4Ym9IOGLreGJgOGIqeGLjuGJs+GIjeGNoiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4i4Yiy4YiZIOGMpeGJheGInSDhiIvhi60g4YiY4YuL4YiNIOGKpeGLreGJveGIjeGIneGNoiDhi6jhiqXhiK3hiLXhi47hipUg4Yu14Yid4Yy4IOGJsOGLq+GLq+GLpSDhiJ7hi7DhiJ0g4Yur4YyN4YqZ4Y2iIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiLhiI3hiq0g4Yur4YiN4YiG4YqQIOGLqOGIsuGInSBQVUsg4Yqu4Yu14Y2jIOGIsuGInSDhiqvhiK3hi7Xhi44g4Ymg4YmL4Yia4YqQ4Ym1IOGMpeGJheGInSDhiIvhi60g4YiY4YuL4YiNIOGLqOGIm+GLreGJveGIjSDhiIrhiIbhipUgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOGImeGKqOGIqyDhi63hiYDhiK3hi47hibPhiI3hjaIiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiLhiI3hiq0g4Yur4YiN4YiG4YqQIOGLqOGIsuGInSBQVUsg4Yqu4Yu14Y2jIOGIsuGInSDhiqvhiK3hi7Xhi44g4Ymg4YmL4Yia4YqQ4Ym1IOGMpeGJheGInSDhiIvhi60g4YiY4YuL4YiNIOGLqOGIm+GLreGJveGIjSDhiIrhiIbhipUgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOGImeGKqOGIq+GLjuGJvSDhi63hiYDhiKnhi47hibPhiI3hjaIiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IuGLqOGIsuGInSDhjZLhipUg4Yqt4YuI4YqTIOGKoOGIjeGJsOGIs+GKq+GInSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IuGLqOGIsuGInSBQVUsg4Yqt4YuI4YqTIOGKoOGIjeGJsOGIs+GKq+GInSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4i4Yqu4YuxIOGJsOGJgOGJo+GLreGKkOGJtSDhiqDhjI3hip3hibfhiI0hIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4i4Yuo4YmA4Yuz4YiaIOGJteGIq+GKrSDhiqDhi53hiKvhiK0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiLhi6jhiYDhjKPhi60g4Ym14Yir4YqtIOGKoOGLneGIq+GIrSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiLhiIjhiqDhjY3hibMg4Yqg4YmB4YidIOGKoOGLneGIq+GIrSI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtYXIvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWFyL3N0cmluZ3MueG1sCmluZGV4IGJjZmU3ZGIuLjgzZDRiOTMgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtYXIvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1hci9zdHJpbmdzLnhtbApAQCAtMjAsMTQgKzIwLDE0IEBACiAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+Itin2YPYqtioINix2YXYsiDYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4i2KfZg9iq2Kgg2LHZhdiyIFBVSyDZiNix2YXYsiDYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKINin2YTYrNiv2YrYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4i2LHZhdiyIFBVSyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4i2LHZhdiyINix2YLZhSDYp9mE2KrYudix2YrZgSDYp9mE2LTYrti12Yog2KfZhNis2K/ZitivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4i4oCP2KfZg9iq2Kgg2LHZhdiyINix2YXYsiBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiLigI/Yo9iv2K7ZhCDYsdmF2LIgUFVLINmE2KjYt9in2YLYqSBTSU0g2YjYsdmF2LIgXCLYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKXCIg2KfZhNis2K/ZitivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiLigI/YsdmF2LIgUFVLINmE2KjYt9in2YLYqSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+IuKAj9ix2YXYsiBcItix2YLZhSDYqti52LHZitmBINi02K7YtdmKXCIg2KzYr9mK2K8g2YTYqNi32KfZgtipIFNJTSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+Itin2YTZhdizINmE2YPYqtin2KjYqSDZg9mE2YXYqSDYp9mE2YXYsdmI2LEiPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLYp9mD2KrYqCDZg9mE2YXYqSDYp9mE2YXYsdmI2LEg2YTYpdmE2LrYp9ihINin2YTYqtij2YXZitmGIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i2KfZg9iq2Kgg2LHZgtmFINin2YTYqti52LHZitmBINin2YTYtNiu2LXZiiDZhNil2YTYutin2KEg2KfZhNiq2KPZhdmK2YYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKINi62YrYsSDYtdit2YrYrS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLigI/Yp9mD2KrYqCDYsdmF2LIgUElOINmE2KXZhNi62KfYoSDYp9mE2KrYo9mF2YrZhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMjQyMjIyNTU5MTAwNjEzNDkzNiI+IuKAj9ix2YXYsiBQSU4g2LrZitixINi12K3ZititLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xhYmVsX3RleHQiIG1zZ2lkPSI4NjE3OTY0NjEwMjgyOTg0MjQiPiLZhNil2YTYutin2KEg2KfZhNiq2KPZhdmK2YbYjCDYp9i22LrYtyDYudmE2YkgXCLYp9mE2YLYp9im2YXYqVwiINir2YUg2LnZhNmJIDAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZmFjZXVubG9ja19tdWx0aXBsZV9mYWlsdXJlcyIgbXNnaWQ9Ijc1NDEzNzU4MzAyMjc5MjQyOSI+Itiq2YUg2KrYrNin2YjYsiDYp9mE2K3YryDYp9mE2KPZgti12Ykg2YTYudiv2K8g2YXYrdin2YjZhNin2Kog2KrYo9mF2YrZhiDYp9mE2KzZh9in2LIg2KjYp9mE2YjYrNmHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2hhcmdlZCIgbXNnaWQ9IjMyNzIyMjM5MDYwNzM0OTI0NTQiPiLYqtmFINin2YTYtNit2YYiPC9zdHJpbmc+CkBAIC0zNSwxNyArMzUsMTcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xvd19iYXR0ZXJ5IiBtc2dpZD0iODE0MzgwODAxODcxOTE3Mzg1OSI+Itiq2YjYtdmK2YQg2KzZh9in2LIg2KfZhNi02K3Zhi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iMTMzMjI4ODI2ODYwMDMyOTg0MSI+Itin2LbYuti3INi52YTZiSBcItin2YTZgtin2KbZhdipXCIg2YTYpdmE2LrYp9ihINin2YTZgtmB2YQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjkxNjk3MTc3NzkwNTgwMzcxNjgiPiLYp9mE2LTYqNmD2Kkg2YXYpNmF2ZHZhtipIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjQ5NDk4MDU2MTMwNDIxMTkzMSI+ItmE2YrYs9iqINmH2YbYp9mDINio2LfYp9mC2KkgU0lNIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTQ0NTg0OTAwNTkwOTI2MDAzOSI+ItmE2YrYs9iqINmH2YbYp9mDINio2LfYp9mC2KkgU0lNINmB2Yog2KfZhNis2YfYp9iyINin2YTZhNmI2K3Zii4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ4MTExMDM5NTUwODYzNzY0MyI+ItmE2YrYs9iqINmH2YbYp9mDINio2LfYp9mC2KkgU0lNINmB2Yog2KfZhNmH2KfYqtmBLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUyMTA4OTE1MDk5OTU5NDIyNTAiPiLYo9iv2K7ZhCDYqNi32KfZgtipIFNJTS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjU5Njg5ODU0ODk0NjM4NzAzNTgiPiLYqNi32KfZgtipIFNJTSDZhdmB2YLZiNiv2Kkg2KPZiCDYutmK2LEg2YLYp9io2YTYqSDZhNmE2YLYsdin2KHYqS4g2KPYr9iu2YQg2KjYt9in2YLYqSBTSU0uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iODM0MDgxMzk4OTU4NjYyMjM1NiI+Itio2LfYp9mC2KkgU0lNINi62YrYsSDZgtin2KjZhNipINmE2YTYp9iz2KrYrtiv2KfZhS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU4OTI5NDA5MDk2OTk3MjM1NDQiPiLYqtmFINiq2LnYt9mK2YQg2KjYt9in2YLYqSBTSU0g2KjYtNmD2YQg2K/Yp9im2YUuXG4g2KfYqti12YQg2KjZhdmC2K/ZhSDYrtiv2YXYqSDYp9mE2YTYp9iz2YTZg9mKINmE2YTYrdi12YjZhCDYudmE2Ykg2KjYt9in2YLYqSBTSU0g2KPYrtix2YkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+Itio2LfYp9mC2KkgU0lNINmF2KTZhdmR2YbYqS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMzc0NzIzMjQ2NzQ3MTgwMTYzMyI+Itio2LfYp9mC2KkgU0lNINmF2KTZhdmR2YbYqSDYqNmD2YjYryBQVUsuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc5NzUyMjE4MDUwMzM2MTQ0MjYiPiLYrNin2LHZjSDYpdmE2LrYp9ihINiq2KPZhdmK2YYg2KjYt9in2YLYqSBTSU3igKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9jaGFuZ2VkIiBtc2dpZD0iNTY3ODYyNDYyNDY4MTQwMDE5MSI+IiUxJHMuINin2YTYo9iv2KfYqSAlMiRkINmF2YYgJTMkZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNDk0OTgwNTYxMzA0MjExOTMxIj4i4oCP2YTZitiz2Kog2YfZhtin2YMg2KjYt9in2YLYqSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNDQ1ODQ5MDA1OTA5MjYwMDM5Ij4i4oCP2YTZitiz2Kog2YfZhtin2YMg2KjYt9in2YLYqSBTSU0g2YHZiiDYp9mE2KzZh9in2LIg2KfZhNmE2YjYrdmKLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDgxMTEwMzk1NTA4NjM3NjQzIj4i4oCP2YTZitiz2Kog2YfZhtin2YMg2KjYt9in2YLYqSBTSU0g2YHZiiDYp9mE2YfYp9iq2YEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTIxMDg5MTUwOTk5NTk0MjI1MCI+IuKAj9ij2K/YrtmEINio2LfYp9mC2KkgU0lNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iNTk2ODk4NTQ4OTQ2Mzg3MDM1OCI+IuKAj9io2LfYp9mC2KkgU0lNINmF2YHZgtmI2K/YqSDYo9mIINi62YrYsSDZgtin2KjZhNipINmE2YTZgtix2KfYodipLiDYo9iv2K7ZhCDYqNi32KfZgtipIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI4MzQwODEzOTg5NTg2NjIyMzU2Ij4i4oCP2KjYt9in2YLYqSBTSU0g2LrZitixINmC2KfYqNmE2Kkg2YTZhNin2LPYqtiu2K/Yp9mFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTg5Mjk0MDkwOTY5OTcyMzU0NCI+IuKAj9iq2YUg2KrYudi32YrZhCDYqNi32KfZgtipIFNJTSDYqNi02YPZhCDYr9in2KbZhS5cbiDYp9iq2LXZhCDYqNmF2YLYr9mFINiu2K/ZhdipINin2YTZhNin2LPZhNmD2Yog2YTZhNit2LXZiNmEINi52YTZiSDYqNi32KfZgtipIFNJTSDYo9iu2LHZiS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI2ODc1NzczNDEzMzA2MzgwOTAyIj4i4oCP2KjYt9in2YLYqSBTSU0g2YXYpNmF2ZHZhtipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9wdWtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSIzNzQ3MjMyNDY3NDcxODAxNjMzIj4i4oCP2KjYt9in2YLYqSBTSU0g2YXYpNmF2ZHZhtipINio2YPZiNivIFBVSy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzk3NTIyMTgwNTAzMzYxNDQyNiI+IuKAj9is2KfYsdmNINil2YTYutin2KEg2KrYo9mF2YrZhiDYqNi32KfZgtipIFNJTeKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4i4oCPJTEkcy4g2KfZhNij2K/Yp9ipICUyJGQg2YXZhiAlMyRkLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiLYpdi22KfZgdipINij2K/Yp9ipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i2YHYp9ix2LrYqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfZXhwYW5kZWQiIG1zZ2lkPSIyMjc4MTA2MDIyMzExMTcwMjk5Ij4i2KrZhSDYqtmI2LPZiti5INmF2YbYt9mC2Kkg2KXZhNi62KfYoSDYp9mE2YLZgdmELiI8L3N0cmluZz4KQEAgLTYyLDcgKzYyLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfdW5sb2NrIiBtc2dpZD0iMjk1OTkyODQ3ODc2NDY5NzI1NCI+Itil2YTYutin2KEg2KfZhNmC2YHZhCDYqNin2LPYqtiu2K/Yp9mFINin2YTYqtmF2LHZitixLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl91bmxvY2siIG1zZ2lkPSIxNDkwODQwNzA2MDc1MjQ2NjEyIj4i2KXZhNi62KfYoSDYp9mE2YLZgdmEINio2KfYs9iq2K7Yr9in2YUg2KfZhNmG2YLYtC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+Itiq2KPZhdmK2YYg2KfZhNis2YfYp9iyINio2KfZhNmI2KzZhy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4i2KXZhNi62KfYoSDYp9mE2YLZgdmEINio2KfYs9iq2K7Yr9in2YUg2LHZgtmFINin2YTYqti52LHZitmBINin2YTYtNiu2LXZii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4i4oCP2KXZhNi62KfYoSDYp9mE2YLZgdmEINio2KfYs9iq2K7Yr9in2YUg2LHZhdiyIFBJTi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLYpdmE2LrYp9ihINin2YTZgtmB2YQg2KjYp9iz2KrYrtiv2KfZhSDZg9mE2YXYqSDYp9mE2YXYsdmI2LEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4i2YXZhti32YLYqSDYp9mE2YbZgti0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfYXJlYSIgbXNnaWQ9IjY3MzYwNjQ0OTQwMTk5Nzk1NDQiPiLZhdmG2LfZgtipINin2YTYqtmF2LHZitixLiI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiLYstixINin2YTYpdmK2YLYp9mBINin2YTZhdik2YLYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4i2LLYsSDYp9mE2KrYtNi62YrZhCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4i2LLYsSDYp9mE2KXZitmC2KfZgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiLYsdin2KbYudipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4i2YXYudin2LHYttipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4i2YLZhNioIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4i2KXZhNi62KfYoSDYp9mE2YLZgdmEINmE2YTZhdiq2KfYqNi52KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiLYqtmFINil2YTYutin2KEg2KfZhNiq2LTYutmK2YQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4i2KPYs9mC2LcgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g2YTZhNit2LDZgS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4i2YTZhiDZitiq2YUg2K3YsNmBIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+ItioINiqINirIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC05OCwyNyArMTA1LDI2IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4i2LHZgtmFINiq2LnYsdmK2YEg2LTYrti12Yog2K7Yp9i32KYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfY291bnRkb3duIiBtc2dpZD0iNjM1ODExMDIyMTYwMzI5NzU0OCI+Itit2KfZiNmEINmF2LHYqSDYo9iu2LHZiSDYrtmE2KfZhCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g2KvYp9mG2YrYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5ODk3ODYxMTY4MzA3NTg2OCI+Itin2LHYs9mFINmG2YLYtNmDIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4i2KPYr9iu2YQg2LHZgtmFINin2YTYqti52LHZitmBINin2YTYtNiu2LXZiiDZhNio2LfYp9mC2KkgU0lNIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiLYo9iv2K7ZhCDYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4i4oCP2KPYr9iu2YQg2LHZhdiyIFBJTiDZhNio2LfYp9mC2KkgU0lNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiLigI/Yo9iv2K7ZhCDYsdmF2LIgUElOIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+Itij2K/YrtmEINmD2YTZhdipINin2YTZhdix2YjYsSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+Itio2LfYp9mC2KkgU0lNINmF2LnYt9mE2Kkg2KfZhNii2YYuINij2K/YrtmEINix2YXYsiBQVUsg2YTZhNmF2KrYp9io2LnYqS4g2KfYqti12YQg2KjZhdi02LrZhCDYtNio2YPYqSDYp9mE2KzZiNin2YQg2YTZhNin2LfZhNin2Lkg2LnZhNmJINin2YTYqtmB2KfYtdmK2YQuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+Itil2K/Yrtin2YQg2LHZhdiyINix2YLZhSDYp9mE2KrYudix2YrZgSDYp9mE2LTYrti12Yog2KfZhNmF2LHYp9ivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+Itiq2KPZg9mK2K8g2LHZhdiyINix2YLZhSDYp9mE2KrYudix2YrZgSDYp9mE2LTYrti12Yog2KfZhNmF2LHYp9ivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiLYrNin2LHZjSDYpdmE2LrYp9ihINiq2KPZhdmK2YYg2KjYt9in2YLYqSBTSU3igKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiLYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKINi62YrYsSDYtdit2YrYrS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLYp9mD2KrYqCDYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKINin2YTZhdmD2YjZhiDZhdmGIDQg2KXZhNmJIDgg2KPYsdmC2KfZhS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiLZitis2Kgg2KPZhiDZitiq2LbZhdmGINix2YXYsiBQVUvigI8gOCDYo9ix2YLYp9mFINij2Ygg2KPZg9ir2LEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i2KPYudivINil2K/Yrtin2YQg2LHZhdiyIFBVSyDYp9mE2LXYrdmK2K0uINmI2LPYqtik2K/ZiiDYp9mE2YXYrdin2YjZhNin2Kog2KfZhNmF2KrZg9ix2LHYqSDYpdmE2Ykg2KrYudi32YrZhCDYqNi32KfZgtipIFNJTSDZhtmH2KfYptmK2YvYpy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4i2YTYpyDZitiq2LfYp9io2YIg2LHZhdiy2Kcg2LHZgtmFINin2YTYqti52LHZitmBINin2YTYtNiu2LXZiiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+IuKAj9io2LfYp9mC2KkgU0lNINmF2LnYt9mE2Kkg2KfZhNii2YYuINij2K/YrtmEINix2YXYsiBQVUsg2YTZhNmF2KrYp9io2LnYqS4g2KfYqti12YQg2KjZhdi02LrZhCDYtNio2YPYqSDYp9mE2KzZiNin2YQg2YTZhNin2LfZhNin2Lkg2LnZhNmJINin2YTYqtmB2KfYtdmK2YQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IuKAj9il2K/Yrtin2YQg2LHZhdiyINix2YXYsiBQSU4g2KfZhNmF2LHYp9ivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IuKAj9iq2KPZg9mK2K8g2LHZhdiyINix2YXYsiBQSU4g2KfZhNmF2LHYp9ivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiLigI/YrNin2LHZjSDYpdmE2LrYp9ihINiq2KPZhdmK2YYg2KjYt9in2YLYqSBTSU3igKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLigI/Yp9mD2KrYqCDYsdmF2LIgUElOINin2YTZhdmD2YjZhiDZhdmGIDQg2KXZhNmJIDgg2KPYsdmC2KfZhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiLigI/Zitis2Kgg2KPZhiDZitiq2LbZhdmGINix2YXYsiBQVUvigI8gOCDYo9ix2YLYp9mFINij2Ygg2KPZg9ir2LEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i4oCP2KPYudivINil2K/Yrtin2YQg2LHZhdiyIFBVSyDYp9mE2LXYrdmK2K0uINmI2LPYqtik2K/ZiiDYp9mE2YXYrdin2YjZhNin2Kog2KfZhNmF2KrZg9ix2LHYqSDYpdmE2Ykg2KrYudi32YrZhCDYqNi32KfZgtipIFNJTSDZhtmH2KfYptmK2YvYpy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4i4oCP2YTYpyDZitiq2LfYp9io2YIg2LHZhdiy2Kcg2LHZhdiyIFBJTiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+ItmF2K3Yp9mI2YTYp9iqINin2YTZhtmC2LQg2YPYq9mK2LHYqSDYrNiv2YvYpyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLZhNil2YTYutin2KEg2KfZhNiq2KPZhdmK2YbYjCDYs9is2ZHZhCDYp9mE2K/YrtmI2YQg2KjYrdiz2KfYqNmDINmB2YogR29vZ2xlLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLigI/ZhNil2YTYutin2KEg2KfZhNiq2KPZhdmK2YbYjCDYs9is2ZHZhCDYp9mE2K/YrtmI2YQg2KjYrdiz2KfYqNmDINmB2YogR29vZ2xlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4i2KfYs9mFINin2YTZhdiz2KrYrtiv2YUgKNin2YTYqNix2YrYryDYpdmE2YPYqtix2YjZhtmKKSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4i2YPZhNmF2Kkg2KfZhNmF2LHZiNixIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiLYqtiz2KzZitmEINin2YTYr9iu2YjZhCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4i2KfYs9mFINmF2LPYqtiu2K/ZhSDYutmK2LEg2LXYrdmK2K0g2KPZiCDZg9mE2YXYqSDZhdix2YjYsSDYutmK2LEg2LXYp9mE2K3YqS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i2YfZhCDZhtiz2YrYqiDYp9iz2YUg2KfZhNmF2LPYqtiu2K/ZhSDYo9mIINmD2YTZhdipINin2YTZhdix2YjYsdifXG7Yp9mG2KrZgtmEINil2YTZiSAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IuKAj9mH2YQg2YbYs9mK2Kog2KfYs9mFINin2YTZhdiz2KrYrtiv2YUg2KPZiCDZg9mE2YXYqSDYp9mE2YXYsdmI2LHYn1xu2KfZhtiq2YLZhCDYpdmE2YkgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+Itis2KfYsdmNINmB2K3YtSDYp9mE2K3Ys9in2KjigKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODI3Njc0NTY0MjA0OTUwMjU1MCI+ItmE2YLYryDZg9iq2KjYqiDYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKINio2LTZg9mEINi62YrYsSDYtdit2YrYrSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDZhdix2KkuIFxuXG7Yo9i52K8g2KfZhNmF2K3Yp9mI2YTYqSDYrtmE2KfZhCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYq9in2YbZitipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i4oCP2YTZgtivINmD2KrYqNiqINix2YXYsiBQSU4g2KjYtNmD2YQg2LrZitixINi12K3ZititIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INmF2LHYqS4gXG5cbtij2LnYryDYp9mE2YXYrdin2YjZhNipINiu2YTYp9mEIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INir2KfZhtmK2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+ItmE2YLYryDZg9iq2KjYqiDZg9mE2YXYqSDYp9mE2YXYsdmI2LEg2KjYtNmD2YQg2LrZitixINi12K3ZititIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INmF2LHYqS4gXG5cbtij2LnYryDYp9mE2YXYrdin2YjZhNipINiu2YTYp9mEIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INir2KfZhtmK2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+ItmE2YLYryDYsdiz2YXYqiDZhtmC2LQg2KXZhNi62KfYoSDYp9mE2KrYo9mF2YrZhiDYqNi32LHZitmC2Kkg2LrZitixINi12K3Zitit2KkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2YXYsdipLiBcblxu2KPYudivINin2YTZhdit2KfZiNmE2Kkg2K7ZhNin2YQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g2KvYp9mG2YrYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1NzU1NTcyMDA2MjcxMjg5NDkiPiLZhNmC2K8g2K3Yp9mI2YTYqiDYpdmE2LrYp9ihINiq2KPZhdmK2YYg2KfZhNis2YfYp9iyINin2YTZhNmI2K3ZiiDYqNi02YPZhCDYutmK2LEg2LXYrdmK2K0gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2YXYsdipLiDYqNi52K8g2KXYrNix2KfYoSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDZhdmGINin2YTZhdit2KfZiNmE2KfYqiDYutmK2LEg2KfZhNmG2KfYrNit2Kkg2KfZhNij2K7YsdmJ2Iwg2LPYqtiq2YUg2KXYudin2K/YqSDYqti52YrZitmGINin2YTYrNmH2KfYsiDYp9mE2YTZiNit2Yog2LnZhNmJINin2YTYpdi52K/Yp9iv2KfYqiDYp9mE2KfZgdiq2LHYp9i22YrYqSDZhNmE2YXYtdmG2Lkg2YjYs9mK2KrZhSDZgdmC2K8g2KzZhdmK2Lkg2KjZitin2YbYp9iqINin2YTZhdiz2KrYrtiv2YUuIjwvc3RyaW5nPgpAQCAtMTI5LDYgKzEzNSwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLZhNmC2K8g2LHYs9mF2Kog2YbZgti0INil2YTYutin2KEg2KfZhNiq2KPZhdmK2YYg2KjYtNmD2YQg2LrZitixINi12K3ZititIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INmF2LHYqS4g2KjYudivINil2KzYsdin2KEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g2YXZhiDYp9mE2YXYrdin2YjZhNin2Kog2LrZitixINin2YTZhtin2KzYrdipINin2YTYo9iu2LHZidiMINiz2KrZj9i32KfZhNioINio2KXZhNi62KfYoSDYqtij2YXZitmGINin2YTZh9in2KrZgSDYqNin2LPYqtiu2K/Yp9mFINit2LPYp9ioINio2LHZitivINil2YTZg9iq2LHZiNmG2Yog2YTYpdmE2LrYp9ihINiq2KPZhdmK2YYg2KfZhNmH2KfYqtmBLlxuXG4g2KPYudivINin2YTZhdit2KfZiNmE2Kkg2K7ZhNin2YQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g2KvYp9mG2YrYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLYpdiy2KfZhNipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiLigI/YsdmF2LIgXCLYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKXCIg2YTYqNi32KfZgtipIFNJTSDYutmK2LEg2LXYrdmK2K3YjCDZiNmK2YTYstmF2YMg2KfZhNin2KrYtdin2YQg2KfZhNii2YYg2KjZhdi02LrZkdmEINi02KjZg9ipINin2YTYrNmI2ZHYp9mEINmE2KXZhNi62KfYoSDZgtmB2YQg2KfZhNis2YfYp9iyLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4i4oCP2LHZhdiyIFwi2LHZgtmFINin2YTYqti52LHZitmBINin2YTYtNiu2LXZilwiINmE2KjYt9in2YLYqSBTSU0g2LrZitixINi12K3Zitit2Iwg2YjZitiq2KjZgtmJINmE2K/ZitmDINmF2K3Yp9mI2YTYqSDZiNin2K3Yr9ipICg8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4pINmK2KrYudmK2YYg2LnZhNmK2YMg2KjYudiv2YfYpyDYp9mE2KfYqti12KfZhCDYqNmF2LTYutmR2YQg2LTYqNmD2Kkg2KfZhNis2YjZkdin2YQg2YTYpdmE2LrYp9ihINmC2YHZhCDYp9mE2KzZh9in2LIuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4i4oCP2LHZhdiyIFwi2LHZgtmFINin2YTYqti52LHZitmBINin2YTYtNiu2LXZilwiINmE2KjYt9in2YLYqSBTSU0g2LrZitixINi12K3Zitit2Iwg2YrYqtio2YLZiSDZhNiv2YrZgyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g2YXZhiDYp9mE2YXYrdin2YjZhNin2KouIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiLigI/YqNi32KfZgtipIFNJTSDYutmK2LEg2LXYp9mE2K3YqSDZhNmE2KfYs9iq2K7Yr9in2YUuINmK2Y/Ysdis2Ykg2KfZhNin2KrYtdin2YQg2KjZhdi02LrZkdmEINi02KjZg9ipINin2YTYrNmI2ZHYp9mELiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4i4oCP2LHZhdiyIFBVSyDZhNio2LfYp9mC2KkgU0lNINi62YrYsSDYtdin2YTYrdiMINmI2YrYqtio2YLZiSDZhNiv2YrZgyDZhdit2KfZiNmE2Kkg2YjYp9it2K/YqSAoPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+KdiMINiq2LXYqNitINio2LnYr9mH2Kcg2KjYt9in2YLYqSBTSU0g2LrZitixINi12KfZhNit2Kkg2YTZhNin2LPYqtiu2K/Yp9mFINio2LTZg9mEINiv2KfYptmFLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IuKAj9ix2YXYsiBQVUsg2YTYqNi32KfZgtipIFNJTSDYutmK2LEg2LXYp9mE2K3YjCDZiNmK2KrYqNmC2Ykg2YTYr9mK2YMgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INmF2YYg2KfZhNmF2K3Yp9mI2YTYp9iq2Iwg2KrYtdio2K0g2KjYudiv2YfYpyDYqNi32KfZgtipIFNJTSDYutmK2LEg2LXYp9mE2K3YqSDZhNmE2KfYs9iq2K7Yr9in2YUg2KjYtNmD2YQg2K/Yp9im2YUuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiLigI/Yo9iu2YHZgtiqINi52YXZhNmK2KkgXCLYsdmC2YUg2KfZhNiq2LnYsdmK2YEg2KfZhNi02K7YtdmKXCIg2YTYqNi32KfZgtipIFNJTSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IuKAj9ij2K7ZgdmC2Kog2LnZhdmE2YrYqSBQVUsg2YTYqNi32KfZgtipIFNJTSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4i2KrZhSDZgtio2YjZhCDYp9mE2LHZhdiyISI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+Itiy2LEg2KfZhNmF2YLYt9i5INin2YTYtdmI2KrZiiDYp9mE2LPYp9io2YIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiLYstixINin2YTZhdmC2LfYuSDYp9mE2LXZiNiq2Yog2KfZhNiq2KfZhNmKIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+Itiy2LEg2KfZhNil2YrZgtin2YEg2KfZhNmF2KTZgtiqIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1hei1yQVovc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWF6LXJBWi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzhmNmFjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1hei1yQVovc3RyaW5ncy54bWwKQEAgLTAsMCArMSwxMzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyogLy9kZXZpY2UvYXBwcy9jb21tb24vYXNzZXRzL3Jlcy9hbnkvc3RyaW5ncy54bWwKKyoqCisqKiBDb3B5cmlnaHQgMjAwNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iUMSwTiBrb2R1IGRheGlsIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiJQVUsgdsmZIHllbmkgUMSwTiBrb2QgZGF4aWwgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iUFVLIGtvZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iWWVuaSBQSU4ga29kdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IsWeaWZyyZkgZGF4aWwgZXRtyZlrIMO8w6fDvG4gdG94dW51biI8L2ZvbnQ+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IktpbGlkaSBhw6dtYXEgw7zDp8O8biBwYXJvbCB5YXrEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJLaWxpZGkgYcOnbWFxIMO8w6fDvG4gUElOIGRheGlsIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiJZYW5sxLHFnyBQSU4ga29kdS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4iS2lsaWRpIGHDp21hcSDDvMOnw7xuIE1lbnl1LCBzb25yYSAwIGJhc8Sxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWNldW5sb2NrX211bHRpcGxlX2ZhaWx1cmVzIiBtc2dpZD0iNzU0MTM3NTgzMDIyNzkyNDI5Ij4iU2lmyZl0IGtpbGlkaSBjyZloZGzJmXJpbml6IGJpdGRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2hhcmdlZCIgbXNnaWQ9IjMyNzIyMjM5MDYwNzM0OTI0NTQiPiJEb2xtdcWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGx1Z2dlZF9pbiIgbXNnaWQ9IjgxMTc1NzIwMDA2Mzk5OTgzODgiPiJEb2x1ciwgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xvd19iYXR0ZXJ5IiBtc2dpZD0iODE0MzgwODAxODcxOTE3Mzg1OSI+IkVsZWt0cmlryZkgcW/Fn3VuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSIxMzMyMjg4MjY4NjAwMzI5ODQxIj4iS2lsaWRpIGHDp21hcSDDvMOnw7xuIE1lbnl1IGTDvHltyZlzaW7JmSBiYXjEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjkxNjk3MTc3NzkwNTgwMzcxNjgiPiLFnsmZYsmZa8mZIGtpbGlkbMmZbmRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjQ5NDk4MDU2MTMwNDIxMTkzMSI+IlPEsE0ga2FydCB5b3hkdXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNDQ1ODQ5MDA1OTA5MjYwMDM5Ij4iUGxhbsWfZXRkyZkgU8SwTSBrYXJ0IHlveGR1ci4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0ODExMTAzOTU1MDg2Mzc2NDMiPiJUZWxlZm9uZGEgU8SwTSBrYXJ0IHlveGR1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUyMTA4OTE1MDk5OTU5NDIyNTAiPiJTSU0ga2FydMSxIGRheGlsIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zX2xvbmciIG1zZ2lkPSI1OTY4OTg1NDg5NDYzODcwMzU4Ij4iU8SwTSBrYXJ0IHlveGR1ciB2yZkgeWEgb3h1bmEgYmlsaW5taXIuIFPEsE0ga2FydCBkYXhpbCBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjgzNDA4MTM5ODk1ODY2MjIzNTYiPiJZYXJhcnPEsXogU0lNIGthcnQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1ODkyOTQwOTA5Njk5NzIzNTQ0Ij4iU2l6aW4gU8SwTSBrYXJ0xLFuxLF6IGRhaW1pIG9sYXJhcSBkZWFrdGl2bMmZxZ9pYi5cbiBCYcWfcWEgU8SwTSBrYXJ0IMO8w6fDvG4gc2ltc2l6IHhpZG3JmXQgcHJvdmF5ZGVyaW5pesmZIG3DvHJhY2nJmXQgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI2ODc1NzczNDEzMzA2MzgwOTAyIj4iU0lNIGthcnQga2lsaWRsyZluaWIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3B1a19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NDcyMzI0Njc0NzE4MDE2MzMiPiJTxLBNIGthcnQgUFVLIGlsyZkga2lsaWRsyZluaWIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc5NzUyMjE4MDUwMzM2MTQ0MjYiPiJTxLBNIGthcnTEsW4ga2lsaWRpIGHDp8SxbMSxci4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4gV2lkZ2V0ICUyJGQgb2YgJTMkZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2FkZF93aWRnZXQiIG1zZ2lkPSI4MjczMjc3MDU4NzI0OTI0NjU0Ij4iV2lkZ2V0IMmZbGF2yZkgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9lbXB0eV9zbG90IiBtc2dpZD0iMTI4MTUwNTcwMzMwNzkzMDc1NyI+IkJvxZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2V4cGFuZGVkIiBtc2dpZD0iMjI3ODEwNjAyMjMxMTE3MDI5OSI+IktpbGlkaSBhw6dtYSBzYWjJmXNpIGdlbmnFn2zJmW5kaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2NvbGxhcHNlZCIgbXNnaWQ9IjYzNjY5OTIwNjY5MzYwNzYzOTYiPiJLaWxpZGkgYcOnbWEgc2FoyZlzaSDDp8O2a2TDvC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldCIgbXNnaWQ9IjY1MjcxMzEwMzk3NDE4MDgyNDAiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiB2aWRjZXQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91c2VyX3NlbGVjdG9yIiBtc2dpZD0iMTIyNjc5ODM3MDkxMzY5ODg5NiI+IsSwc3RpZmFkyZnDp2kgc2VsZWt0b3J1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zdGF0dXMiIG1zZ2lkPSI4MDA4MjY0NjAzOTM1OTMwNjExIj4iU3RhdHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4iS2FtZXJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z2F1cmRfYWNjZXNzaWJpbGl0eV9tZWRpYV9jb250cm9scyIgbXNnaWQ9IjI2MjIwOTY1NDI5MjE2MTgwNiI+Ik1lZGlhIGtvbnRyb2xsYXLEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfc3RhcnQiIG1zZ2lkPSI4NzM2ODUzNjE1NTg4ODI4MTk3Ij4iWWVuaWTJmW4gc8SxcmFsYW1hIHZpZGNldGkgYmHFn2xhZMSxbGTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiJWaWRjZXRpbiB0yZlrcmFyIHNpZmFyacWfaSBzb25hIMOnYXRkxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZGVsZXRlZCIgbXNnaWQ9IjQ0MjYyMDQyNjM5MjkyMjQ0MzQiPiJWaWRjZXQgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gc2lsaW5kaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2V4cGFuZF9sb2NrX2FyZWEiIG1zZ2lkPSI1MTk4NTk3MjA5MzQxNzgwMjQiPiJLaWxpZGkgYcOnbWEgc2FoyZlzaW5pIGdlbmnFn2zJmW5kaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV91bmxvY2siIG1zZ2lkPSIyOTU5OTI4NDc4NzY0Njk3MjU0Ij4iU8O8csO8xZ9kw7xybcmZIGtpbGlkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fdW5sb2NrIiBtc2dpZD0iMTQ5MDg0MDcwNjA3NTI0NjYxMiI+IktpbGQgYcOnbWEgbW9kZWxpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZmFjZV91bmxvY2siIG1zZ2lkPSI0ODE3MjgyNTQzMzUxNzE4NTM1Ij4iU2lmyZl0IEtpbGlkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiJQaW4ga2lsaWQgYcOnbWFzxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXNzd29yZF91bmxvY2siIG1zZ2lkPSI3Njc1Nzc3NjIzOTEyMTU1MDg5Ij4ixZ5pZnLJmSBraWxpZGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4iTW9kZWwgc2FoyZlzaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4iU8O8csO8xZ9kw7xybcmZIHNhaMmZc2kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjEzMzcyODY1MzgzMTg1NDM1NTUiPiLGj3Z2yZlsa2kgaXpsyZltyZkgZMO8eW3JmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjcwNzM5MjgzMDA0NDQ5MDkzMjAiPiJOw7Z2YsmZdGkgaXpsyZltyZkgZMO8eW3JmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4iUGF1emEgZMO8eW3JmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJPeHV0bWEgZMO8eW3JmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJEYXlhbmTEsXJtYSBkw7x5bcmZc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2FsdCIgbXNnaWQ9IjQ4NTY4Njg4MjAwNDAwNTE5MzkiPiJBbHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9jYW5jZWwiIG1zZ2lkPSIxMjAzOTg0MDE3MjQ1NzgzMjQ0Ij4iTMmZxJ92IGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZGVsZXRlIiBtc2dpZD0iMzMzNzkxNDgzMzIwNjYzNTc0NCI+IlNpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RvbmUiIG1zZ2lkPSIxOTkyNTcxMTE4NDY2Njc5Nzc1Ij4iSGF6xLFyZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX21vZGVfY2hhbmdlIiBtc2dpZD0iNDU0NzM4Nzc0MTkwNjUzNzUxOSI+IlJlamltIGTJmXlpxZ9pa2xpeWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkRheGlsIG9sdW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrIiBtc2dpZD0iMjIyODUyNDkwMDQzOTgwMTQ1MyI+IktpbGlkaSBhw6ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfY2FtZXJhIiBtc2dpZD0iOTY5MDcxOTk3NTUyNDg2ODE0Ij4iS2FtZXJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NpbGVudCIgbXNnaWQ9Ijg5MzU1MTI4Nzc0NjUyMjE4MiI+IlPJmXNzaXoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4iU8mZcyBhw6fEsXFkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiJBeHRhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl91cCIgbXNnaWQ9IjcxNjkwMzI0NzgyNTk0ODUxODAiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4gw7zDp8O8biB5dXhhcsSxIHPDvHLDvMWfZMO8csO8bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fZG93biIgbXNnaWQ9IjUwODc3Mzk3Mjg2MzkwMTQ1OTUiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4gw7zDp8O8biBhxZ9hxJ/EsSBzw7xyw7zFn2TDvHLDvG4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2xlZnQiIG1zZ2lkPSI3MjA3NDc4NzE5ODA1NTYyMTY1Ij4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IMO8w6fDvG4gc29sYSBzw7xyw7zFn2TDvHIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3JpZ2h0IiBtc2dpZD0iODAzNDQzMzI0MjU3OTYwMDk4MCI+Ijx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiDDvMOnw7xuIHNhxJ9hIHPDvHLDvMWfZMO8ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VyX3N3aXRjaGVkIiBtc2dpZD0iMzc2ODAwNjc4MzE2Njk4NDQxMCI+IkNhcmkgaXN0aWZhZMmZw6dpIDx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbWVyZ2VuY3lfY2FsbF9sYWJlbCIgbXNnaWQ9IjY4NDk0NjE5MjUyMzgzMDUzMSI+IlTJmWNpbGkgesmZbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLFnmFibG9udSB1bnV0bXXFn2FtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiJZYW5sxLHFnyBNb2RlbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3Bhc3N3b3JkIiBtc2dpZD0iMjMzMzI4MTc2MjEyODExMzE1NyI+IllhbmzEscWfIMWeaWZyyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4iUElOIHPJmWh2ZGlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSBzb25yYSB5ZW5pZMmZbiBjyZloZCBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3BhdHRlcm5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzk4OTc4NjExNjgzMDc1ODY4Ij4ixZ5hYmxvbnVudXp1IMOnyZlraW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiJTSU0gUElOIGtvZHUgZGF4aWwgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzc3MjQyMjMzNDk1MTExNTU3Ij4iUMSwTiBrb2R1IGRheGlsIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1NzUzNjQ2NTU2MTg2OTM2ODE5Ij4iUGFyb2wgZGF4aWwgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+IlNJTSBpbmRpIGRlYWt0aXZkaXIuIERhdmFtIGV0bcmZayDDvMOnw7xuIFBVSyBrb2R1IGRheGlsIGVkaW4uIMaPbGF2yZkgbcmZbHVtYXQgw7zDp8O8biBvcGVyYXRvcmEgbcO8cmFjacmZdCBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiLEsHN0yZlkaXlpbml6IFDEsE4ga29kdSBkYXhpbCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IsSwc3TJmWRpeWluaXogUElOIGtvZHUgdMmZc2RpcWzJmXlpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iU8SwTSBrYXJ0xLFuIGtpbGlkaSBhw6fEsWzEsXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiJZYW5sxLHFnyBQxLBOIGtvZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiI0LWTJmW4gOC3JmSBxyZlkyZlyIHLJmXHJmW1pIG9sYW4gUElOIHlhesSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJQVUsga29kIDggcsmZccmZbSB2yZkgeWEgZGFoYSDDp294IG9sbWFsxLFkxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IkTDvHpnw7xuIFBVSyBrb2R1IHllbmlkyZluIGRheGlsIGVkaW4uIFTJmWtyYXJsYW5hbiBjyZloZGzJmXIgU0lNXCdpIGJpcmTJmWbJmWxpayBzxLFyYWRhbiDDp8SxeGFyYWNhcS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4iUElOIGtvZGxhcsSxIHV5xJ91biBkZXlpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+IkjJmWRkaW5kyZluIMOnb3ggY8mZaGQgZWRpbGRpISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiJLaWxpZGkgYcOnbWFxIMO8w6fDvG4gR29vZ2xlIGhlc2FixLFuxLF6IGlsyZkgZGF4aWwgb2x1bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+IsSwc3RpZmFkyZnDp2kgYWTEsSAoZS1wb8OndCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iOTA1NzI4OTEwMzgyNzI5ODU0OSI+IsWeaWZyyZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNTM1NTkwNDU4MjY3NDA1NDcwMiI+IkRheGlsIG9sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjU3NTQ2NjQxMTkzMTk4NzIxOTciPiJZYW5sxLHFnyBpc3RpZmFkyZnDp2kgYWTEsSB2yZkgeWEgcGFyb2wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IsSwc3RpZmFkyZnDp2kgYWTEsW7EsXrEsSB2yZkgeWEgcGFyb2x1bnV6dSB1bnV0bXVzdW51ej9cbiAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIgbGlua2luyZkgZGF4aWwgb2x1bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjEwNTI2ODUxOTc3MTAyNTIzOTUiPiJIZXNhYiB5b3hsYW7EsWzEsXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODI3Njc0NTY0MjA0OTUwMjU1MCI+IlBJTiBrb2R1bnV6dSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgeWFubMSxxZ8gZGF4aWwgZXRkaW5pei5cblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgyZlyemluZMmZIHllbmlkyZluIHlveGxhecSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiLFnmlmcsmZbml6aSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgeWFubMSxxZ8gZGF4aWwgZXRkaW5pei4gXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBzYW5pecmZIMmZcnppbmTJmSB5ZW5pZMmZbiB5b3hsYXnEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+Ik1vZGVsaW5pemkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHlhbmzEscWfIMOnyZlrbWlzaW5pei5cblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgyZlyemluZMmZIHllbmlkyZluIHlveGxhecSxbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+IlNpeiBwbGFuxZ9ldCBraWxpZGluaSBhw6dtYXEgw7zDp8O8biA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgdcSfdXJzdXogY8mZaGQgZXRtaXNpbml6LiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBkyZlmyZkgZMmZIHXEn3Vyc3V6IGPJmWhkIGV0c8mZbml6LCBwbGFuxZ9ldCBmYWJyaWsgYXlhcmxhcsSxbmEgc8SxZsSxcmxhbmFjYXEgdsmZIGLDvHTDvG4gbcmZbHVtYXRsYXLEsW7EsXogaXTJmWPJmWsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDA1MTAxNTk0MzAzODE5OTkxMCI+IlNpeiB0ZWxlZm9uIGtpbGlkaW5pIGHDp21hcSDDvMOnw7xuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSB1xJ91cnN1eiBjyZloZCBldG1pc2luaXouIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGTJmWbJmSBkyZkgdcSfdXJzdXogY8mZaGQgZXRzyZluaXosIHRlbGVmb24gZmFicmlrIGF5YXJsYXLEsW5hIHPEsWbEsXJsYW5hY2FxIHbJmSBiw7x0w7xuIG3JmWx1bWF0bGFyxLFuxLF6IGl0yZljyZlrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDcyOTk2MjY5MTQ4NDgzNjM3Ij4iU2l6IHBsYW7Fn2V0IGtpbGlkaW5pIGHDp21hcSDDvMOnw7xuIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBkyZlmyZkgdcSfdXJzdXogY8mZaGQgZXRtaXNpbml6LiBQbGFuxZ9ldCBmYWJyaWsgYXlhcmxhcsSxbmEgc8SxZsSxcmxhbmFjYXEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4iU2l6IHRlbGVmb251biBraWxpZGluaSBhw6dtYXEgw7zDp8O8biA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4geWFubMSxxZ8gY8mZaGQgZXRtaXNpbml6LiBUZWxlZm9uIGFydMSxcSBkZWZvbHQgemF2b2QgaGFsxLFuYSBzxLFmxLFybGFuYWNhcS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4iU2l6IGtpbGlkaSBhw6dtYXEgw7zDp8O8biDFn2FibG9udSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgc8mZaHYgw6fJmWtkaW5pei4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gZGFoYSB1xJ91cnN1eiBjyZloZGTJmW4gc29ucmEgcGxhbsWfZXRpbml6aW4ga2lsaWRpbmkgZS1wb8OndCBoZXNhYsSxbsSxemxhIGHDp21hcSB0yZlsyZliIG9sdW5hY2FxLlxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSDJmXJ6aW5kyZkgYmlyIGRhaGEgeW94bGF5xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iU2l6IGFydMSxcSBtb2RlbGkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHlhbmzEscWfIGRheGlsIGV0bWlzaW5pei48eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBkyZlmyZkgZMmZIHlhbmzEscWfIGRheGlsIGV0c8mZbml6LCB0ZWxlZm9udW4ga2lsaWRpbmluIGHDp8SxbG1hc8SxIMO8w6fDvG4gZWxla3Ryb24gcG/Dp3Qgw7xudmFuxLFuxLF6IHTJmWzJmWIgb2x1bmFjYXEuXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzYW5pecmZIMmZcnppbmTJmSB5ZW5pZMmZbiBjyZloZCBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIC0gIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJZxLHEn8SxxZ9kxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4ixo92dsmZbGtpIGl6bMmZbcmZIGTDvHltyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+Ik7DtnZiyZl0aSBpemzJmW3JmSBkw7x5bcmZc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4iUGF1emEgZMO8eW3JmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSIyOTI0NjI4ODYzNzQxMTUwOTU2Ij4iT3h1dG1hIGTDvHltyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMzA4NDE3OTMyNDgxMDU3NTc4NyI+IkRheWFuZMSxcm1hIGTDvHltyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NhcnJpZXJfZGVmYXVsdCIgbXNnaWQ9Ijg3MDA2NTA0MDMwNTQwNDIxNTMiPiJYaWRtyZl0IHlveGR1ci4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtYXovc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWF6L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjOGY2YWMKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWF6L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMTM4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qIC8vZGV2aWNlL2FwcHMvY29tbW9uL2Fzc2V0cy9yZXMvYW55L3N0cmluZ3MueG1sCisqKgorKiogQ29weXJpZ2h0IDIwMDYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IlDEsE4ga29kdSBkYXhpbCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iUFVLIHbJmSB5ZW5pIFDEsE4ga29kIGRheGlsIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IlBVSyBrb2QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+IlllbmkgUElOIGtvZHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiLFnmlmcsmZIGRheGlsIGV0bcmZayDDvMOnw7xuIHRveHVudW4iPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiJLaWxpZGkgYcOnbWFxIMO8w6fDvG4gcGFyb2wgeWF6xLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iS2lsaWRpIGHDp21hcSDDvMOnw7xuIFBJTiBkYXhpbCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIyNDIyMjI1NTkxMDA2MTM0OTM2Ij4iWWFubMSxxZ8gUElOIGtvZHUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+IktpbGlkaSBhw6dtYXEgw7zDp8O8biBNZW55dSwgc29ucmEgMCBiYXPEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjZXVubG9ja19tdWx0aXBsZV9mYWlsdXJlcyIgbXNnaWQ9Ijc1NDEzNzU4MzAyMjc5MjQyOSI+IlNpZsmZdCBraWxpZGkgY8mZaGRsyZlyaW5peiBiaXRkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NoYXJnZWQiIG1zZ2lkPSIzMjcyMjIzOTA2MDczNDkyNDU0Ij4iRG9sbXXFnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3BsdWdnZWRfaW4iIG1zZ2lkPSI4MTE3NTcyMDAwNjM5OTk4Mzg4Ij4iRG9sdXIsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sb3dfYmF0dGVyeSIgbXNnaWQ9IjgxNDM4MDgwMTg3MTkxNzM4NTkiPiJFbGVrdHJpa8mZIHFvxZ91bi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iMTMzMjI4ODI2ODYwMDMyOTg0MSI+IktpbGlkaSBhw6dtYXEgw7zDp8O8biBNZW55dSBkw7x5bcmZc2luyZkgYmF4xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX25ldHdvcmtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI5MTY5NzE3Nzc5MDU4MDM3MTY4Ij4ixZ7JmWLJmWvJmSBraWxpZGzJmW5kaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0OTQ5ODA1NjEzMDQyMTE5MzEiPiJTxLBNIGthcnQgeW94ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTQ0NTg0OTAwNTkwOTI2MDAzOSI+IlBsYW7Fn2V0ZMmZIFPEsE0ga2FydCB5b3hkdXIuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDgxMTEwMzk1NTA4NjM3NjQzIj4iVGVsZWZvbmRhIFPEsE0ga2FydCB5b3hkdS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1MjEwODkxNTA5OTk1OTQyMjUwIj4iU0lNIGthcnTEsSBkYXhpbCBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iNTk2ODk4NTQ4OTQ2Mzg3MDM1OCI+IlPEsE0ga2FydCB5b3hkdXIgdsmZIHlhIG94dW5hIGJpbGlubWlyLiBTxLBNIGthcnQgZGF4aWwgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI4MzQwODEzOTg5NTg2NjIyMzU2Ij4iWWFyYXJzxLF6IFNJTSBrYXJ0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTg5Mjk0MDkwOTY5OTcyMzU0NCI+IlNpemluIFPEsE0ga2FydMSxbsSxeiBkYWltaSBvbGFyYXEgZGVha3RpdmzJmcWfaWIuXG4gQmHFn3FhIFPEsE0ga2FydCDDvMOnw7xuIHNpbXNpeiB4aWRtyZl0IHByb3ZheWRlcmluaXrJmSBtw7xyYWNpyZl0IGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+IlNJTSBrYXJ0IGtpbGlkbMmZbmliLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9wdWtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSIzNzQ3MjMyNDY3NDcxODAxNjMzIj4iU8SwTSBrYXJ0IFBVSyBpbMmZIGtpbGlkbMmZbmliLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3OTc1MjIxODA1MDMzNjE0NDI2Ij4iU8SwTSBrYXJ0xLFuIGtpbGlkaSBhw6fEsWzEsXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9jaGFuZ2VkIiBtc2dpZD0iNTY3ODYyNDYyNDY4MTQwMDE5MSI+IiUxJHMuIFdpZGdldCAlMiRkIG9mICUzJGQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9hZGRfd2lkZ2V0IiBtc2dpZD0iODI3MzI3NzA1ODcyNDkyNDY1NCI+IldpZGdldCDJmWxhdsmZIGVkaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZW1wdHlfc2xvdCIgbXNnaWQ9IjEyODE1MDU3MDMzMDc5MzA3NTciPiJCb8WfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiJLaWxpZGkgYcOnbWEgc2FoyZlzaSBnZW5pxZ9syZluZGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9jb2xsYXBzZWQiIG1zZ2lkPSI2MzY2OTkyMDY2OTM2MDc2Mzk2Ij4iS2lsaWRpIGHDp21hIHNhaMmZc2kgw6fDtmtkw7wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXQiIG1zZ2lkPSI2NTI3MTMxMDM5NzQxODA4MjQwIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gdmlkY2V0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdXNlcl9zZWxlY3RvciIgbXNnaWQ9IjEyMjY3OTgzNzA5MTM2OTg4OTYiPiLEsHN0aWZhZMmZw6dpIHNlbGVrdG9ydSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc3RhdHVzIiBtc2dpZD0iODAwODI2NDYwMzkzNTkzMDYxMSI+IlN0YXR1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfY2FtZXJhIiBtc2dpZD0iODkwNDIzMTE5NDE4MTExNDYwMyI+IkthbWVyYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWdhdXJkX2FjY2Vzc2liaWxpdHlfbWVkaWFfY29udHJvbHMiIG1zZ2lkPSIyNjIyMDk2NTQyOTIxNjE4MDYiPiJNZWRpYSBrb250cm9sbGFyxLEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+IlllbmlkyZluIHPEsXJhbGFtYSB2aWRjZXRpIGJhxZ9sYWTEsWxkxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9lbmQiIG1zZ2lkPSI3MTcwMTkwOTUwODcwNDY4MzIwIj4iVmlkY2V0aW4gdMmZa3JhciBzaWZhcmnFn2kgc29uYSDDp2F0ZMSxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4iVmlkY2V0IDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHNpbGluZGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4iS2lsaWRpIGHDp21hIHNhaMmZc2luaSBnZW5pxZ9syZluZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfdW5sb2NrIiBtc2dpZD0iMjk1OTkyODQ3ODc2NDY5NzI1NCI+IlPDvHLDvMWfZMO8cm3JmSBraWxpZGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiJLaWxkIGHDp21hIG1vZGVsaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+IlNpZsmZdCBLaWxpZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4iUGluIGtpbGlkIGHDp21hc8SxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGFzc3dvcmRfdW5sb2NrIiBtc2dpZD0iNzY3NTc3NzYyMzkxMjE1NTA4OSI+IsWeaWZyyZkga2lsaWRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl9hcmVhIiBtc2dpZD0iNzY3OTg5MTMyNDUwOTU5NzkwNCI+Ik1vZGVsIHNhaMmZc2kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV9hcmVhIiBtc2dpZD0iNjczNjA2NDQ5NDAxOTk3OTU0NCI+IlPDvHLDvMWfZMO8cm3JmSBzYWjJmXNpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSIxMzM3Mjg2NTM4MzE4NTQzNTU1Ij4ixo92dsmZbGtpIGl6bMmZbcmZIGTDvHltyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI3MDczOTI4MzAwNDQ0OTA5MzIwIj4iTsO2dmLJmXRpIGl6bMmZbcmZIGTDvHltyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IlBhdXphIGTDvHltyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iT3h1dG1hIGTDvHltyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iRGF5YW5kxLFybWEgZMO8eW3JmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9hbHQiIG1zZ2lkPSI0ODU2ODY4ODIwMDQwMDUxOTM5Ij4iQWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfY2FuY2VsIiBtc2dpZD0iMTIwMzk4NDAxNzI0NTc4MzI0NCI+IkzJmcSfdiBldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiJTaWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kb25lIiBtc2dpZD0iMTk5MjU3MTExODQ2NjY3OTc3NSI+IkhhesSxcmTEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9tb2RlX2NoYW5nZSIgbXNnaWQ9IjQ1NDczODc3NDE5MDY1Mzc1MTkiPiJSZWppbSBkyZl5acWfaWtsaXlpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJEYXhpbCBvbHVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9jayIgbXNnaWQ9IjIyMjg1MjQ5MDA0Mzk4MDE0NTMiPiJLaWxpZGkgYcOnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X2NhbWVyYSIgbXNnaWQ9Ijk2OTA3MTk5NzU1MjQ4NjgxNCI+IkthbWVyYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zaWxlbnQiIG1zZ2lkPSI4OTM1NTEyODc3NDY1MjIxODIiPiJTyZlzc2l6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NvdW5kb24iIG1zZ2lkPSIzMDA1MjQ2NjY3NTUwMDE3MiI+IlPJmXMgYcOnxLFxZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zZWFyY2giIG1zZ2lkPSIzMDkxNTg3MjQ5Nzc2MDMzMTM5Ij4iQXh0YXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IMO8w6fDvG4geXV4YXLEsSBzw7xyw7zFn2TDvHLDvG4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2Rvd24iIG1zZ2lkPSI1MDg3NzM5NzI4NjM5MDE0NTk1Ij4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IMO8w6fDvG4gYcWfYcSfxLEgc8O8csO8xZ9kw7xyw7xuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9sZWZ0IiBtc2dpZD0iNzIwNzQ3ODcxOTgwNTU2MjE2NSI+Ijx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiDDvMOnw7xuIHNvbGEgc8O8csO8xZ9kw7xyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4gw7zDp8O8biBzYcSfYSBzw7xyw7zFn2TDvHIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlcl9zd2l0Y2hlZCIgbXNnaWQ9IjM3NjgwMDY3ODMxNjY5ODQ0MTAiPiJDYXJpIGlzdGlmYWTJmcOnaSA8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW1lcmdlbmN5X2NhbGxfbGFiZWwiIG1zZ2lkPSI2ODQ5NDYxOTI1MjM4MzA1MzEiPiJUyZljaWxpIHrJmW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSI4ODUyMDIxNDY3ODY4MjIwNjA4Ij4ixZ5hYmxvbnUgdW51dG11xZ9hbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BhdHRlcm4iIG1zZ2lkPSIxODUwODA2MDcwODAxMzU4ODMwIj4iWWFubMSxxZ8gTW9kZWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiJZYW5sxLHFnyDFnmlmcsmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGluIiBtc2dpZD0iMTEzMTMwNjUxMDgzMzU2MzgwMSI+IlBJTiBzyZlodmRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MzU4MTEwMjIxNjAzMjk3NTQ4Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgc29ucmEgeWVuaWTJmW4gY8mZaGQgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5ODk3ODYxMTY4MzA3NTg2OCI+IsWeYWJsb251bnV6dSDDp8mZa2luIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4iU0lNIFBJTiBrb2R1IGRheGlsIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IlDEsE4ga29kdSBkYXhpbCBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+IlBhcm9sIGRheGlsIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcHVrX2hpbnQiIG1zZ2lkPSI0NTMyMjcxNDM4NjE3MzU1MzciPiJTSU0gaW5kaSBkZWFrdGl2ZGlyLiBEYXZhbSBldG3JmWsgw7zDp8O8biBQVUsga29kdSBkYXhpbCBlZGluLiDGj2xhdsmZIG3JmWx1bWF0IMO8w6fDvG4gb3BlcmF0b3JhIG3DvHJhY2nJmXQgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4ixLBzdMmZZGl5aW5peiBQxLBOIGtvZHUgZGF4aWwgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLEsHN0yZlkaXlpbml6IFBJTiBrb2R1IHTJmXNkaXFsyZl5aW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlPEsE0ga2FydMSxbiBraWxpZGkgYcOnxLFsxLFyLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iWWFubMSxxZ8gUMSwTiBrb2QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iNC1kyZluIDgtyZkgccmZZMmZciByyZlxyZltaSBvbGFuIFBJTiB5YXrEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iUFVLIGtvZCA4IHLJmXHJmW0gdsmZIHlhIGRhaGEgw6dveCBvbG1hbMSxZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiJEw7x6Z8O8biBQVUsga29kdSB5ZW5pZMmZbiBkYXhpbCBlZGluLiBUyZlrcmFybGFuYW4gY8mZaGRsyZlyIFNJTVwnaSBiaXJkyZlmyZlsaWsgc8SxcmFkYW4gw6fEsXhhcmFjYXEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9jb25maXJtX3Bpbl9oaW50IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzAwMzQ2OTI2MTQ2NDU5MzUxNiI+IlBJTiBrb2RsYXLEsSB1ecSfdW4gZGV5aWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjY0ODY4NDIwOTQwMDU2OTg0NzUiPiJIyZlkZGluZMmZbiDDp294IGPJmWhkIGVkaWxkaSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIxMTAwNTUxMjYxMjY1NTA2NDQ4Ij4iS2lsaWRpIGHDp21hcSDDvMOnw7xuIEdvb2dsZSBoZXNhYsSxbsSxeiBpbMmZIGRheGlsIG9sdW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9IjU3MTg1MzQyNzIwNzA5MjAzNjQiPiLEsHN0aWZhZMmZw6dpIGFkxLEgKGUtcG/Dp3QpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjkwNTcyODkxMDM4MjcyOTg1NDkiPiLFnmlmcsmZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiJEYXhpbCBvbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4iWWFubMSxxZ8gaXN0aWZhZMmZw6dpIGFkxLEgdsmZIHlhIHBhcm9sLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2FjY291bnRfcmVjb3ZlcnlfaGludCIgbXNnaWQ9IjU2OTA3MDkxMzI4NDE3NTI5NzQiPiLEsHN0aWZhZMmZw6dpIGFkxLFuxLF6xLEgdsmZIHlhIHBhcm9sdW51enUgdW51dG11c3VudXo/XG4gIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iIGxpbmtpbsmZIGRheGlsIG9sdW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSIxMDUyNjg1MTk3NzEwMjUyMzk1Ij4iSGVzYWIgeW94bGFuxLFsxLFyLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiJQSU4ga29kdW51enUgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHlhbmzEscWfIGRheGlsIGV0ZGluaXouXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBzYW5pecmZIMmZcnppbmTJmSB5ZW5pZMmZbiB5b3hsYXnEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3ODEzNzEzMzg5NDIyMjI2NTMxIj4ixZ5pZnLJmW5pemkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHlhbmzEscWfIGRheGlsIGV0ZGluaXouIFxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSDJmXJ6aW5kyZkgeWVuaWTJmW4geW94bGF5xLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXR0ZXJuX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzQwODk0NzU5NjUwNTA4MDUiPiJNb2RlbGluaXppIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSB5YW5sxLHFnyDDp8mZa21pc2luaXouXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBzYW5pecmZIMmZcnppbmTJmSB5ZW5pZMmZbiB5b3hsYXnEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1NzU1NTcyMDA2MjcxMjg5NDkiPiJTaXogcGxhbsWfZXQga2lsaWRpbmkgYcOnbWFxIMO8w6fDvG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHXEn3Vyc3V6IGPJmWhkIGV0bWlzaW5pei4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gZMmZZsmZIGTJmSB1xJ91cnN1eiBjyZloZCBldHPJmW5peiwgcGxhbsWfZXQgZmFicmlrIGF5YXJsYXLEsW5hIHPEsWbEsXJsYW5hY2FxIHbJmSBiw7x0w7xuIG3JmWx1bWF0bGFyxLFuxLF6IGl0yZljyZlrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQwNTEwMTU5NDMwMzgxOTk5MTAiPiJTaXogdGVsZWZvbiBraWxpZGluaSBhw6dtYXEgw7zDp8O8biA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBkyZlmyZkgdcSfdXJzdXogY8mZaGQgZXRtaXNpbml6LiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBkyZlmyZkgZMmZIHXEn3Vyc3V6IGPJmWhkIGV0c8mZbml6LCB0ZWxlZm9uIGZhYnJpayBheWFybGFyxLFuYSBzxLFmxLFybGFuYWNhcSB2yZkgYsO8dMO8biBtyZlsdW1hdGxhcsSxbsSxeiBpdMmZY8mZay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA3Mjk5NjI2OTE0ODQ4MzYzNyI+IlNpeiBwbGFuxZ9ldCBraWxpZGluaSBhw6dtYXEgw7zDp8O8biA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHXEn3Vyc3V6IGPJmWhkIGV0bWlzaW5pei4gUGxhbsWfZXQgZmFicmlrIGF5YXJsYXLEsW5hIHPEsWbEsXJsYW5hY2FxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDgxNzYyNzQ3NDQxOTQ3MTUxOCI+IlNpeiB0ZWxlZm9udW4ga2lsaWRpbmkgYcOnbWFxIMO8w6fDvG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHlhbmzEscWfIGPJmWhkIGV0bWlzaW5pei4gVGVsZWZvbiBhcnTEsXEgZGVmb2x0IHphdm9kIGhhbMSxbmEgc8SxZsSxcmxhbmFjYXEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IlNpeiBraWxpZGkgYcOnbWFxIMO8w6fDvG4gxZ9hYmxvbnUgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gZMmZZsmZIHPJmWh2IMOnyZlrZGluaXouIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGRhaGEgdcSfdXJzdXogY8mZaGRkyZluIHNvbnJhIHBsYW7Fn2V0aW5pemluIGtpbGlkaW5pIGUtcG/Dp3QgaGVzYWLEsW7EsXpsYSBhw6dtYXEgdMmZbMmZYiBvbHVuYWNhcS5cblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IHNhbml5yZkgyZlyemluZMmZIGJpciBkYWhhIHlveGxhecSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IlNpeiBhcnTEsXEgbW9kZWxpIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGTJmWbJmSB5YW5sxLHFnyBkYXhpbCBldG1pc2luaXouPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gZMmZZsmZIGTJmSB5YW5sxLHFnyBkYXhpbCBldHPJmW5peiwgdGVsZWZvbnVuIGtpbGlkaW5pbiBhw6fEsWxtYXPEsSDDvMOnw7xuIGVsZWt0cm9uIHBvw6d0IMO8bnZhbsSxbsSxeiB0yZlsyZliIG9sdW5hY2FxLlxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2FuaXnJmSDJmXJ6aW5kyZkgeWVuaWTJmW4gY8mZaGQgZWRpbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiAtICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4iWcSxxJ/EscWfZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IsaPdnbJmWxraSBpemzJmW3JmSBkw7x5bcmZc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiJOw7Z2YsmZdGkgaXpsyZltyZkgZMO8eW3JmXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IlBhdXphIGTDvHltyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjkyNDYyODg2Mzc0MTE1MDk1NiI+Ik94dXRtYSBkw7x5bcmZc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjMwODQxNzkzMjQ4MTA1NzU3ODciPiJEYXlhbmTEsXJtYSBkw7x5bcmZc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jYXJyaWVyX2RlZmF1bHQiIG1zZ2lkPSI4NzAwNjUwNDAzMDU0MDQyMTUzIj4iWGlkbcmZdCB5b3hkdXIuIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWJlL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1iZS9zdHJpbmdzLnhtbAppbmRleCA4MTAyMGEwLi5lMTc5NGUwIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWJlL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtYmUvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDEyIEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLQo9Cy0Y/QtNC30ZbRhtC1IFBJTi3QutC+0LQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiLQo9Cy0Y/QtNC30ZbRhtC1IFBVSy3QutC+0LQg0ZYg0L3QvtCy0YsgUElOLdC60L7QtCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iUFVLIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLQndC+0LLRiyBQSU4t0LrQvtC0Ijwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlICgzMDM1ODU2NTUwMjg5NzI0MzM4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQgKDE4MDE5NDEwNTEwOTQ5NzQ2MDkpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCAoMzIwMTE1MTg0MDU3MDQ5MjUzOCkgLS0+CisgICAgPHNraXAgLz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+ItCU0LDQutGA0LDQvdGW0YbQtdGB0Y8sINC60LDQsSDRg9Cy0LXRgdGG0ZYg0L/QsNGA0L7Qu9GMIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4i0KPQstGP0LTQt9GW0YbQtSDQv9Cw0YDQvtC70Ywg0LTQu9GPINGA0LDQt9Cx0LvQsNC60LDQstCw0L3QvdGPIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i0JrQsNCxINGA0LDQt9Cx0LvQsNC60LDQstCw0YbRjCwg0YPQstGP0LTQt9GW0YbQtSBQSU4t0LrQvtC0Ijwvc3RyaW5nPgpAQCAtNzEsNiArNzQsMjAgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+ItCa0L3QvtC/0LrQsCDQv9Cw0Z7Qt9GLIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiLQmtC90L7Qv9C60LAg0L/RgNCw0LnQs9GA0LDQstCw0L3QvdGPIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiLQmtC90L7Qv9C60LAg0YHQv9GL0L3QtdC90L3RjyI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24gKDQ1MzU5MzgxMjk2NjM5MDMxOTQpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24gKDgxMDE0MzM2NzcxOTIxNzc4NjEpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24gKDIzMzY5NDMyMzI0NzQ2ODk4ODcpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIgKDU0MjU4MzcyNzI0MTgxNzYxNzYpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIgKDc4OTY5OTIxNzE4NzgzMDkzNTgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0ICg0MDk2NTUwNTUyNjM0MzkxNDUxKSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQgKDUwODgzMzUwNjc4MDkwOTM5MykgLS0+CisgICAgPHNraXAgLz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiIxMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBbHQiPC9zdHJpbmc+CkBAIC0xMDUsNyArMTIyLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiLQo9Cy0Y/QtNC30ZbRhtC1INC20LDQtNCw0L3RiyBQSU4t0LrQvtC0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+ItCf0LDRhtCy0LXRgNC00LfRltGG0LUg0LbQsNC00LDQvSBQSU4t0LrQvtC0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiLQoNCw0LfQsdC70LDQumnRgNC+0Z7QutCwIFNJTS3QutCw0YDRgtGLLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i0J3Rj9C/0YDQsNCy0ZbQu9GM0L3RiyBQSU4t0LrQvtC0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+ItCj0LLRj9C00LfRltGG0LUgUElOLdC60L7QtCwg0Y/QutGWINC30LzRj9GI0YfQsNC1INCw0LQgNCDQtNCwIDgg0LvRltGH0LHQsNGeLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSy3QutC+0LQg0L/QsNCy0ZbQvdC10L0g0YPRgtGA0YvQvNC7adCy0LDRhtGMIDgg0Ltp0YfQsdCw0Z4g0ZYg0LHQvtC70YzRiC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLQn9Cw0Z7RgtC+0YDQvdCwINGD0LLRj9C00LfRltGG0LUg0L/RgNCw0LLRltC70YzQvdGLIFBVSy3QutC+0LQuINCd0LXQsNC00L3QsNGA0LDQt9C+0LLRi9GPINGB0L/RgNC+0LHRiyDQvdCw0LfQsNGe0LbQtNGLINCw0LTQutC70Y7Rh9Cw0YbRjCBTSU0t0LrQsNGA0YLRgy4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTQ1LDIwIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+ItCS0Ysg0L3Rj9C/0YDQsNCy0ZbQu9GM0L3QsCDRntCy0Y/Qu9GWINCz0YDQsNGE0ZbRh9C90Ysg0LrQu9GO0Ycg0YDQsNC30LHQu9Cw0Lpp0YDQvtGe0LppINC/0Y3RntC90YPRjiDQutC+0LvRjNC60LDRgdGG0Ywg0YDQsNC30L7RnjogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4uINCf0LDRgdC70Y8g0Y/RiNGH0Y0g0L3QtdC60LDQu9GM0Lpp0YUg0L3Rj9Ge0LTQsNC70YvRhSDRgdC/0YDQvtCxICg8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPikg0LLQsNC8INCx0YPQtNC30LUg0L/RgNCw0L/QsNC90LDQstCw0L3QsCDRgNCw0LfQsdC70LDQumnRgNCw0LLQsNGG0Ywg0YLRjdC70LXRhNC+0L0sINGD0LLQsNC50YjQvtGe0YjRiyDRniBHb29nbGUuXG5cbiDQn9Cw0Z7RgtCw0YDRi9GG0LUg0YHQv9GA0L7QsdGDINC/0YDQsNC3IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INGBLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+ItCS0YvQtNCw0Ltp0YbRjCI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQgKDMwNTMxMDM5NDU1NzY0OTI0KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlOm9uZSAoODEzNDMxMzk5Nzc5OTYzODI1NCkgLS0+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGU6b3RoZXIgKDIyMTU3MjMzNjE1NzUzNTk0ODYpIC0tPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQgKDcwNzc1MzY4MDgyOTEzMTYyMDgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGU6b25lICgzMjU2ODkzNjA3NTYxMDYwNjQ5KSAtLT4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZTpvdGhlciAoNTQ3NzMwNTIyNjAyNjM0MjAzNikgLS0+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2dfcGFzc3dvcmRfcGluX2ZhaWxlZCAoNjI2ODI4ODA5MzU1ODAzMTU2NCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZ19wYXNzd29yZF9wdWtfZmFpbGVkICgyODM4ODI0MzY5NTAyNDU1OTg0KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtnX3Bpbl9hY2NlcHRlZCAoMTQ0ODI0MTY3MzU3MDAyMDA5NykgLS0+CisgICAgPHNraXAgLz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+ItCa0L3QvtC/0LrQsCDQv9Cw0L/Rj9GA0Y3QtNC90Y/QuSDQutCw0LzQv9Cw0Ldp0YbRi9GWIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4i0JrQvdC+0L/QutCwINC90LDRgdGC0YPQv9C90LDQuSDQutCw0LzQv9Cw0Ldp0YbRi9GWIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+ItCa0L3QvtC/0LrQsCDQv9Cw0Z7Qt9GLIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1iZy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtYmcvc3RyaW5ncy54bWwKaW5kZXggODY5YWI3Yi4uNjQxYWRiZCAxMDA2NDQKLS0tIGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1iZy9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWJnL3N0cmluZ3MueG1sCkBAIC0yMSw5ICsyMSw5IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLQktGK0LLQtdC00LXRgtC1INCf0JjQnSDQutC+0LTQsCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+ItCS0YrQstC10LTQtdGC0LUgUFVLINC4INC90L7QstC40Y8g0J/QmNCdINC60L7QtCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iUFVLINC60L7QtCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4i0J3QvtCyINCf0JjQnSDQutC+0LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiLQktGK0LLQtdC00LXRgtC1IFBVSyDQt9CwIFNJTSDQutCw0YDRgtCw0YLQsCDQuCDQvdC+0LLQuNGPINCf0JjQnSDQutC+0LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IlBVSyDQutC+0LQg0LfQsCBTSU0g0LrQsNGA0YLQsNGC0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+ItCd0L7QsiDQn9CY0J0g0LrQvtC0INC30LAgU0lNINC60LDRgNGC0LDRgtCwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4i0JTQvtC60L7RgdC90LXRgtC1INC4INCy0YrQstC10LTQtdGC0LUg0L/QsNGA0L7Qu9CwIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4i0JLRitCy0LXQtNC10YLQtSDQv9Cw0YDQvtC70LAsINC30LAg0LTQsCDQvtGC0LrQu9GO0YfQuNGC0LUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLQktGK0LLQtdC00LXRgtC1INCf0JjQnSwg0LfQsCDQtNCwINC+0YLQutC70Y7Rh9C40YLQtSI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiLQkdGD0YLQvtC9INC30LAg0L/QsNGD0LfQsCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4i0JHRg9GC0L7QvSDQt9CwINC/0YPRgdC60LDQvdC1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiLQkdGD0YLQvtC9INC30LAg0YHQv9C40YDQsNC90LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4i0KXQsNGA0LXRgdCy0LAg0LzQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+ItCd0LUg0LzQuCDRhdCw0YDQtdGB0LLQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+ItCh0YrRgNGG0LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiLQntGC0LrQu9GO0YfQtdGC0LUsINC30LAg0LTQsCDQv9GA0L7QtNGK0LvQttC40YLQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+ItCh0YLQsNGA0YLQuNGA0LDQvdC10YLQviDQtSDQsNC90YPQu9C40YDQsNC90L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4i0J/Rg9GB0L3QtdGC0LUgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4sINC30LAg0LTQsCDQuNC30YLRgNC40LXRgtC1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDQvdGP0LzQsCDQtNCwINGB0LUg0LjQt9GC0YDQuNC1LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+ItCQ0JHQkiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgpAQCAtMTA1LDcgKzExMiw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i0JLRitCy0LXQtNC10YLQtSDQttC10LvQsNC90LjRjyDQn9CY0J0g0LrQvtC0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+ItCf0L7RgtCy0YrRgNC00LXRgtC1INC20LXQu9Cw0L3QuNGPINCf0JjQnSDQutC+0LQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlNJTSDQutCw0YDRgtCw0YLQsCDRgdC1INC+0YLQutC70Y7Rh9Cy0LDigKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiLQndC10L/RgNCw0LLQuNC70LXQvSDQn9CY0J0g0LrQvtC0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+ItCS0YrQstC10LTQtdGC0LUg0J/QmNCdINC60L7QtCDRgSDRh9C10YLQuNGA0Lgg0LTQviDQvtGB0LXQvCDRhtC40YTRgNC4LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyDQutC+0LTRitGCINGC0YDRj9Cx0LLQsCDQtNCwINC1INGBIDgg0LjQu9C4INC/0L7QstC10YfQtSDRhtC40YTRgNC4LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+ItCS0YrQstC10LTQtdGC0LUg0L7RgtC90L7QstC+INC/0YDQsNCy0LjQu9C90LjRjyBQVUsg0LrQvtC0LiDQnNC90L7Qs9C+0LrRgNCw0YLQvdC40YLQtSDQvtC/0LjRgtC4INGJ0LUg0LTQtdCw0LrRgtC40LLQuNGA0LDRgiDQt9CwINC/0L7RgdGC0L7Rj9C90L3QviBTSU0g0LrQsNGA0YLQsNGC0LAuIjwvc3RyaW5nPgpAQCAtMTI5LDYgKzEzNSwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLQndCw0YfQtdGA0YLQsNGF0YLQtSDQvdC10L/RgNCw0LLQuNC70L3QviDRhNC40LPRg9GA0LDRgtCwINGB0Lgg0LfQsCDQvtGC0LrQu9GO0YfQstCw0L3QtSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDQv9GK0YLQuC4g0KHQu9C10LQg0L7RidC1IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INC90LXRg9GB0L/QtdGI0L3QuCDQvtC/0LjRgtCwINGJ0LUg0LHRitC00LXRgtC1INC/0L7QvNC+0LvQtdC90Lgg0LTQsCDQvtGC0LrQu9GO0YfQuNGC0LUg0YLQtdC70LXRhNC+0L3QsCDQv9C+0YHRgNC10LTRgdGC0LLQvtC8INC40LzQtdC50Lsg0LDQtNGA0LXRgS5cblxuINCe0L/QuNGC0LDQudGC0LUg0L7RgtC90L7QstC+INGB0LvQtdC0IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INGB0LXQutGD0L3QtNC4LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAkyAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+ItCf0YDQtdC80LDRhdCy0LDQvdC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiLQndC10L/RgNCw0LLQuNC70LXQvSDQn9CY0J0g0LrQvtC0INC30LAgU0lNINC60LDRgNGC0LDRgtCwIOKAkyDRgdC10LPQsCDRgtGA0Y/QsdCy0LAg0LTQsCDRgdC1INGB0LLRitGA0LbQtdGC0LUg0YEg0L7Qv9C10YDQsNGC0L7RgNCwINGB0LgsINC30LAg0LTQsCDQvtGC0LrQu9GO0YfQuNGC0LUg0YPRgdGC0YDQvtC50YHRgtCy0L7RgtC+LiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4i0J3QtdC/0YDQsNCy0LjQu9C10L0g0J/QmNCdINC60L7QtCDQt9CwIFNJTSDQutCw0YDRgtCw0YLQsCDigJMg0L7RgdGC0LDQstCwINCy0LggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INC+0L/QuNGCLCDQv9GA0LXQtNC4INC00LAg0YLRgNGP0LHQstCwINC00LAg0YHQtSDRgdCy0YrRgNC20LXRgtC1INGBINC+0L/QtdGA0LDRgtC+0YDQsCDRgdC4LCDQt9CwINC00LAg0L7RgtC60LvRjtGH0LjRgtC1INGD0YHRgtGA0L7QudGB0YLQstC+0YLQvi4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiLQndC10L/RgNCw0LLQuNC70LXQvSDQn9CY0J0g0LrQvtC0INC30LAgU0lNINC60LDRgNGC0LDRgtCwIOKAkyDQvtGB0YLQsNCy0LDRgiDQstC4IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDQvtC/0LjRgtCwLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iU0lNINC60LDRgNGC0LDRgtCwINC1INC90LXQuNC30L/QvtC70LfQstCw0LXQvNCwLiDQodCy0YrRgNC20LXRgtC1INGB0LUg0YEg0L7Qv9C10YDQsNGC0L7RgNCwINGB0LguIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiLQndC10L/RgNCw0LLQuNC70LXQvSBQVUsg0LrQvtC0INC30LAgU0lNINC60LDRgNGC0LDRgtCwIOKAkyDQvtGB0YLQsNCy0LAg0LLQuCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g0L7Qv9C40YIsINC/0YDQtdC00LggU0lNINC60LDRgNGC0LDRgtCwINC00LAg0YHRgtCw0L3QtSDQvdC10LjQt9C/0L7Qu9C30LLQsNC10LzQsCDQt9Cw0LLQuNC90LDQs9C4LiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+ItCd0LXQv9GA0LDQstC40LvQtdC9IFBVSyDQutC+0LQg0LfQsCBTSU0g0LrQsNGA0YLQsNGC0LAg4oCTINC+0YHRgtCw0LLQsNGCINCy0LggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INC+0L/QuNGC0LAsINC/0YDQtdC00LggU0lNINC60LDRgNGC0LDRgtCwINC00LAg0YHRgtCw0L3QtSDQvdC10LjQt9C/0L7Qu9C30LLQsNC10LzQsCDQt9Cw0LLQuNC90LDQs9C4LiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4i0J7Qv9C10YDQsNGG0LjRj9GC0LAg0YEg0J/QmNCdINC60L7QtNCwINC30LAgU0lNINC60LDRgNGC0LDRgtCwINC90LUg0LHQtSDRg9GB0L/QtdGI0L3QsCEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+ItCe0L/QtdGA0LDRhtC40Y/RgtCwINGBIFBVSyDQutC+0LTQsCDQt9CwIFNJTSDQutCw0YDRgtCw0YLQsCDQvdC1INCx0LUg0YPRgdC/0LXRiNC90LAhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+ItCa0L7QtNGK0YIg0LUg0L/RgNC40LXRgiEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiLQkdGD0YLQvtC9INC30LAg0L/RgNC10LTQuNGI0L3QuNGPINC30LDQv9C40YEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiLQkdGD0YLQvtC9INC30LAg0YHQu9C10LTQstCw0YnQuNGPINC30LDQv9C40YEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4i0JHRg9GC0L7QvSDQt9CwINC/0LDRg9C30LAiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWNhL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1jYS9zdHJpbmdzLnhtbAppbmRleCA0Zjk3YzZiLi44YjgxMDg2IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWNhL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtY2Evc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IkludHJvZHVlaXggZWwgY29kaSBQSU4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiJJbnRyb2R1ZWl4IGVsIGNvZGkgUFVLIGkgZWwgY29kaSBQSU4gbm91Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJDb2RpIFBVSyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iQ29kaSBQSU4gbm91Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iRXNjcml1IGVsIFBVSyBkZSBsYSBTSU0gaSBlbCBjb2RpIFBJTiBub3UuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJDb2RpIFBVSyBkZSBsYSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+IkNvZGkgUElOIGRlIGxhIFNJTSBub3UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiJUb2NhIHBlciBpbnRyb2R1aXIgY29udHJhc2VueWEiPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiJJbnRyb2R1ZWl4IGxhIGNvbnRyYXNlbnlhIHBlciBkZXNibG9xdWVqYXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJJbnRyb2R1ZWl4IGxhIGNvbnRyYXNlbnlhIHBlciBkZXNibG9xdWVqYXIiPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4iQm90w7MgZGUgcGF1c2EiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+IkJvdMOzIGRlIHJlcHJvZHVjY2nDsyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iQm90w7MgZGUgcGFyYWRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+Ik1cJ2FncmFkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+Ik5vIG1cJ2FncmFkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IkNvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IkRlc2Jsb3F1ZWphIHBlciBjb250aW51YXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJTXCdoYSBjYW5jZWzCt2xhdCBsXCdpbmljaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJEZWl4YSBhbmFyIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHBlciBzdXByaW1pci1sby4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iTm8gc2Ugc3VwcmltaXLDoCA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IkludHJvZHVlaXggZWwgY29kaSBQSU4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4iQ29uZmlybWEgZWwgY29kaSBQSU4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlNcJ2VzdMOgIGRlc2Jsb3F1ZWphbnQgbGEgdGFyZ2V0YSBTSU0uLi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiJDb2RpIFBJTiBpbmNvcnJlY3RlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IkVzY3JpdSB1biBQSU4gcXVlIHRpbmd1aSBkZSA0IGEgOCBuw7ptZXJvcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJFbCBjb2RpIFBVSyBoYSBkZSB0ZW5pciA4IG7Dum1lcm9zIG8gbcOpcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiJUb3JuYSBhIGludHJvZHVpciBlbCBjb2RpIFBVSyBjb3JyZWN0ZS4gRWxzIGludGVudHMgcmVwZXRpdHMgZmFyYW4gcXVlIGVzIGRlc2FjdGl2aSBsYSBTSU0gZGUgbWFuZXJhIHBlcm1hbmVudC4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IkhhcyBkaWJ1aXhhdCBlbCBwYXRyw7MgZGUgZGVzYmxvcXVlaWcgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gdmVnYWRlcyBkZSBtYW5lcmEgaW5jb3JyZWN0YS4gRGVzcHLDqXMgZGUgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gaW50ZW50cyBpbmNvcnJlY3RlcyBtw6lzLCBzZVwndCBkZW1hbmFyw6AgcXVlIGRlc2Jsb3F1ZWdpcyBlbCB0ZWzDqGZvbiBhbWIgdW4gY29tcHRlIGRlIGNvcnJldSBlbGVjdHLDsm5pYy5cblxuIFRvcm5hLWhvIGEgcHJvdmFyIGRcJ2FxdcOtIGEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2Vnb25zLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IkVsaW1pbmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IkVsIGNvZGkgUElOIGRlIGxhIFNJTSBubyDDqXMgY29ycmVjdGUuIEhhcyBkZSBjb250YWN0YXIgYW1iIGxcJ29wZXJhZG9yIGRlIHRlbGVmb25pYSBtw7JiaWwgcGVyIGRlc2Jsb3F1ZWphciBlbCBkaXNwb3NpdGl1LiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iRWwgY29kaSBQSU4gZGUgbGEgU0lNIG5vIMOpcyBjb3JyZWN0ZS4gRXQgcXVlZGEgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGludGVudDsgc2kgbm8gbFwnZW5jZXJ0ZXMsIGNvbnRhY3RhIGFtYiBsXCdvcGVyYWRvciBkZSB0ZWxlZm9uaWEgbcOyYmlsIHBlciBkZXNibG9xdWVqYXIgZWwgZGlzcG9zaXRpdS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJFbCBjb2RpIFBJTiBkZSBsYSBTSU0gbm8gw6lzIGNvcnJlY3RlLiBFdCBxdWVkZW4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGludGVudHMuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJMYSBTSU0gbm8gZXMgcG90IHV0aWxpdHphci4gQ29udGFjdGEgYW1iIGxcJ29wZXJhZG9yIGRlIHRlbGVmb25pYSBtw7JiaWwuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiJFbCBjb2RpIFBVSyBkZSBsYSBTSU0gbm8gw6lzIGNvcnJlY3RlLiBFdCBxdWVkYSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gaW50ZW50OyBzaSBubyBsXCdlbmNlcnRlcywgbGEgU0lNIG5vIGVzIHBvZHLDoCB0b3JuYXIgYSBmZXIgc2VydmlyLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IkVsIGNvZGkgUFVLIGRlIGxhIFNJTSBubyDDqXMgY29ycmVjdGUuIEV0IHF1ZWRlbiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gaW50ZW50czsgc2kgbm8gbFwnZW5jZXJ0ZXMsIGxhIFNJTSBubyBlcyBwb2Ryw6AgdG9ybmFyIGEgZmVyIHNlcnZpci4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IkhpIGhhIGhhZ3V0IHVuIHByb2JsZW1hIGVuIGxcJ29wZXJhY2nDsyBkZWwgUElOIGRlIGxhIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IkhpIGhhIGhhZ3V0IHVuIHByb2JsZW1hIGVuIGxcJ29wZXJhY2nDsyBkZWwgUFVLIGRlIGxhIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iU1wnaGEgYWNjZXB0YXQgZWwgY29kaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiJCb3TDsyBkZSBwaXN0YSBhbnRlcmlvciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IkJvdMOzIGRlIHBpc3RhIHNlZ8O8ZW50Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IkJvdMOzIGRlIHBhdXNhIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1jcy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtY3Mvc3RyaW5ncy54bWwKaW5kZXggZWMyODMzYy4uZTRlZDAyYSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1jcy9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWNzL3N0cmluZ3MueG1sCkBAIC0yMSw5ICsyMSw5IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJaYWRlanRlIGvDs2QgUElOIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iWmFkZWp0ZSBrw7NkIFBVSyBhIG5vdsO9IGvDs2QgUElOLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iS8OzZCBQVUsiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+Ik5vdsO9IGvDs2QgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iWmFkZWp0ZSBrw7NkIFBVSyBTSU0ga2FydHkgYSBub3bDvSBrw7NkIFBJTi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IkvDs2QgUFVLIFNJTSBrYXJ0eSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iTm92w70ga8OzZCBQSU4gU0lNIGthcnR5Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4iRG90eWtlbSB6YWTDoXRlIGhlc2xvIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iWmFkZWp0ZSBoZXNsbyBwcm8gb2RlbWtudXTDrSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IlphZGVqdGUga8OzZCBQSU4gcHJvIG9kZW1rbnV0w60iPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4iVGxhxI3DrXRrbyBQb3phc3Rhdml0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJUbGHEjcOtdGtvIFDFmWVocsOhdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iVGxhxI3DrXRrbyBaYXN0YXZpdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiJMw61iw60gc2UgbWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiJOZWzDrWLDrSBzZSBtaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IlNyZMOtxI1rbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IlBva3JhxI11anRlIG9kZW1rbnV0w61tIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4iU3B1xaF0xJtuw60genJ1xaFlbm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4iVXZvbG7Em27DrW0gZG90eWt1IHdpZGdldCA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiB2eW1hxb5ldGUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+IldpZGdldCA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiBuZWJ1ZGUgdnltYXrDoW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBbHQiPC9zdHJpbmc+CkBAIC0xMDUsNyArMTEyLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiJaYWRlanRlIHBvxb5hZG92YW7DvSBrw7NkIFBJTi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4iUG90dnLEj3RlIHBvxb5hZG92YW7DvSBrw7NkIFBJTi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+Ik9kYmxva292w6Fuw60gU0lNIGthcnR5Li4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iTmVzcHLDoXZuw70ga8OzZCBQSU4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iWmFkZWp0ZSBrw7NkIFBJTiBvIGTDqWxjZSA04oCTOCDEjcOtc2xpYy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJNaW5pbcOhbG7DrSBkw6lsa2Ega8OzZHUgUFVLIGplIDggxI3DrXNsaWMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iWm5vdnUgemFkZWp0ZSBzcHLDoXZuw70ga8OzZCBQVUsuIE9wYWtvdmFuw71taSBwb2t1c3kgU0lNIGthcnR1IHRydmFsZSBkZWFrdGl2dWpldGUuIjwvc3RyaW5nPgpAQCAtMTI5LDYgKzEzNSwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiJKacW+IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+a3LDoXQganN0ZSBuZXNwcsOhdm7EmyBuYWtyZXNsaWxpIHN2w6kgaGVzbG8gb2RlbWtudXTDrS4gUG8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gZGFsxaHDrWNoIG5lw7pzcMSbxaFuw71jaCBwb2t1c2VjaCBidWRldGUgcG/FvsOhZMOhbmkgbyBvZGVtxI1lbsOtIHRlbGVmb251IHBvbW9jw60gZS1tYWlsb3bDqWhvIMO6xI10dS5cblxuIFprdXN0ZSB0byB6bm92dSB6YSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAkyAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+Ik9kZWJyYXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IlphZGFsaSBqc3RlIG5lc3Byw6F2bsO9IGvDs2QgUElOIFNJTSBrYXJ0eS4gTnluw60gbXVzw610ZSB6YSDDusSNZWxlbSBvZGVta251dMOtIHphxZnDrXplbsOtIGtvbnRha3RvdmF0IHN2w6lobyBvcGVyw6F0b3JhLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iWmFkYWxpIGpzdGUgbmVzcHLDoXZuw70ga8OzZCBQSU4gU0lNIGthcnR5LiBNw6F0ZSBqZcWhdMSbIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwb2t1cywgcG90w6kgYnVkZXRlIG11c2V0IG8gb2RlbWtudXTDrSB6YcWZw616ZW7DrSBwb8W+w6FkYXQgc3bDqWhvIG9wZXLDoXRvcmEuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4iWmFkYWxpIGpzdGUgbmVzcHLDoXZuw70ga8OzZCBQSU4gU0lNIGthcnR5LiBQb8SNZXQgemLDvXZhasOtY8OtY2ggcG9rdXPFrzogPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+LiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iU0lNIGthcnR1IG5lbHplIHBvdcW+w610LiBLb250YWt0dWp0ZSBvcGVyw6F0b3JhLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iTmVzcHLDoXZuw70ga8OzZCBQVUsgU0lNIGthcnR5LiBNw6F0ZSBqZcWhdMSbIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwb2t1cywgcG90w6kgYnVkZSBTSU0ga2FydGEgbmF0cnZhbG8gemFibG9rb3bDoW5hLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IlphZGFsaSBqc3RlIG5lc3Byw6F2bsO9IGvDs2QgUFVLIFNJTSBrYXJ0eS4gUG/EjWV0IHpiw712YWrDrWPDrWNoIHBva3Vzxa8sIHBvIGt0ZXLDvWNoIGJ1ZGUgU0lNIGthcnRhIG5hdHJ2YWxvIHphYmxva292w6FuYTogPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+LiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iT3BlcmFjZSBwb21vY8OtIGvDs2R1IFBJTiBTSU0ga2FydHkgc2UgbmV6ZGHFmWlsYSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+Ik9wZXJhY2UgcG9tb2PDrSBrw7NkdSBQVUsgU0lNIGthcnR5IHNlIG5lemRhxZlpbGEhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+IkvDs2QgYnlsIHDFmWlqYXQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iVGxhxI3DrXRrbyBQxZllZGNob3rDrSBzdG9wYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IlRsYcSNw610a28gRGFsxaHDrSBzdG9wYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiJUbGHEjcOtdGtvIFBvemFzdGF2aXQiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWRhL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1kYS9zdHJpbmdzLnhtbAppbmRleCBjZmM3NDY0Li5mOGYwYTZmIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWRhL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtZGEvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IkluZHRhc3QgcGlua29kZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IkluZHRhc3QgUFVLLSBvZyBwaW5rb2RlIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsta29kZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iTnkgcGlua29kZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+IkluZHRhc3QgUFVLLWtvZGVuIHRpbCBTSU0ta29ydGV0IG9nIGRlbiBueWUgcGlua29kZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxODAxOTQxMDUxMDk0OTc0NjA5Ij4iUFVLLWtvZGUgdGlsIFNJTS1rb3J0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiJOeSBwaW5rb2RlIHRpbCBTSU0ta29ydGV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4iVHJ5ayBmb3IgYXQgYW5naXZlIGFkZ2FuZ3Nrb2RlIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iSW5kdGFzdCBhZGdhbmdza29kZW4gZm9yIGF0IGzDpXNlIG9wIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iSW5kdGFzdCBwaW5rb2RlIGZvciBhdCBsw6VzZSBvcCI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiJQYXVzZS1rbmFwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJBZnNwaWwta25hcCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iU3RvcC1rbmFwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IlN5bmVzIG9tIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4iU3luZXMgaWtrZSBvbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IkhqZXJ0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IkzDpXMgb3AgZm9yIGF0IGfDpSB2aWRlcmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJTdGFydGVuIGJsZXYgYW5udWxsZXJldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJTbGlwIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IGZvciBhdCBzbGV0dGUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHNsZXR0ZXMgaWtrZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IkluZHRhc3QgZGVuIMO4bnNrZWRlIHBpbmtvZGUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4iQmVrcsOmZnQgZGVuIMO4bnNrZWRlIHBpbmtvZGUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlNJTS1rb3J0ZXQgbMOlc2VzIG9w4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iRm9ya2VydCBwaW5rb2RlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IkluZHRhc3QgZW4gcGlua29kZSBww6UgbWVsbGVtIDQgb2cgOCB0YWwuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iUFVLLWtvZGVuIHNrYWwgdsOmcmUgcMOlIDggdGFsIGVsbGVyIG1lcmUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iSW5kdGFzdCBkZW4ga29ycmVrdGUgUFVLLWtvZGUuIEdlbnRhZ25lIGZvcnPDuGcgdmlsIHBlcm1hbmVudCBkZWFrdGl2ZXJlIFNJTS1rb3J0ZXQuIjwvc3RyaW5nPgpAQCAtMTI5LDYgKzEzNSwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiJEdSBoYXIgdGVnbmV0IGRpdCBvcGzDpXNuaW5nc23DuG5zdGVyIGZvcmtlcnQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gZ2FuZ2UuIEVmdGVyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHlkZXJsaWdlcmUgbWlzbHlra2VkZSBmb3Jzw7hnIHRpbCB2aWwgZHUgYmxpdmUgYmVkdCBvbSBhdCBsw6VzZSBkaW4gdGVsZWZvbiBvcCB2ZWQgaGrDpmxwIGFmIGVuIGUtbWFpbGtvbnRvLlxuXG4gUHLDuHYgaWdlbiBvbSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzZWt1bmRlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJMgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJGamVybiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iRm9ya2VydCBwaW5rb2RlIHRpbCBTSU0ta29ydC4gRHUgc2thbCBudSBrb250YWt0ZSBkaXQgbW9iaWxzZWxza2FiIGZvciBhdCBsw6VzZSBkaW4gZW5oZWQgb3AuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiJGb3JrZXJ0IHBpbmtvZGUgdGlsIFNJTS1rb3J0LiBEdSBoYXIgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGZvcnPDuGcgdGlsYmFnZSwgZsO4ciBkdSBza2FsIGtvbnRha3RlIGRpdCBtb2JpbHNlbHNrYWIgZm9yIGF0IGzDpXNlIGRpbiBlbmhlZCBvcC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJGb3JrZXJ0IHBpbmtvZGUgdGlsIFNJTS1rb3J0LiBEdSBoYXIgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGZvcnPDuGcgdGlsYmFnZS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+IlNJTS1rb3J0ZXQgZXIgdWJydWdlbGlndC4gS29udGFrdCBkaXQgbW9iaWxzZWxza2FiLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iRm9ya2VydCBQVUsta29kZSB0aWwgU0lNLWtvcnQuIER1IGhhciA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gZm9yc8O4ZyB0aWxiYWdlLCBmw7hyIFNJTS1rb3J0ZXQgYmxpdmVyIHBlcm1hbmVudCB1YnJ1Z2VsaWd0LiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IkZvcmtlcnQgUFVLLWtvZGUgdGlsIFNJTS1rb3J0LiBEdSBoYXIgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGZvcnPDuGcgdGlsYmFnZSwgZsO4ciBkaXQgU0lNLWtvcnQgYmxpdmVyIHBlcm1hbmVudCB1YnJ1Z2VsaWd0LiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iUGlua29kZW4gdGlsIFNJTS1rb3J0ZXQgYmxldiBhZnZpc3QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJQVUsta29kZW4gdGlsIFNJTS1rb3J0ZXQgYmxldiBhZnZpc3QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+IktvZGVuIGJsZXYgYWNjZXB0ZXJldC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiJLbmFwIHRpbCBmb3JyaWdlIG51bW1lciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IktuYXAgdGlsIG7DpnN0ZSBudW1tZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4iUGF1c2Uta25hcCI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtZGUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWRlL3N0cmluZ3MueG1sCmluZGV4IDg1ZDFhNGY5Li40ZWNlNmQ5IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWRlL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtZGUvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IlBJTi1Db2RlIGVpbmdlYmVuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iUFVLIHVuZCBuZXVlbiBQSU4tQ29kZSBlaW5nZWJlbiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iUFVLLUNvZGUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+Ik5ldWVyIFBJTi1Db2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iR2ViZW4gU2llIGRlbiBQVUstQ29kZSBkZXIgU0lNLUthcnRlIHVuZCBkZW4gbmV1ZW4gUElOLUNvZGUgZWluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxODAxOTQxMDUxMDk0OTc0NjA5Ij4iUFVLLUNvZGUgZGVyIFNJTS1LYXJ0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iTmV1ZXIgUElOLUNvZGUgZGVyIFNJTS1LYXJ0ZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+Ilp1ciBQYXNzd29ydGVpbmdhYmUgYmVyw7xocmVuIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iUGFzc3dvcnQgenVtIEVudHNwZXJyZW4gZWluZ2ViZW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJQSU4genVtIEVudHNwZXJyZW4gZWluZ2ViZW4iPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4iU2NoYWx0ZmzDpGNoZSBmw7xyIFBhdXNlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJTY2hhbHRmbMOkY2hlIGbDvHIgV2llZGVyZ2FiZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iU2NoYWx0ZmzDpGNoZSBmw7xyIFN0b3BwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+Ik1hZyBpY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiJNYWcgaWNoIG5pY2h0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4iSGVyeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+Ilp1bSBGb3J0ZmFocmVuIGVudHNwZXJyZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJTdGFydCBhYmdlYnJvY2hlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJMZWdlbiBTaWUgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4genVtIEzDtnNjaGVuIGFiLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiB3aXJkIG5pY2h0IGdlbMO2c2NodC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+Ikdld8O8bnNjaHRlbiBQSU4tQ29kZSBlaW5nZWJlbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiJHZXfDvG5zY2h0ZW4gUElOLUNvZGUgYmVzdMOkdGlnZW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlNJTS1LYXJ0ZSB3aXJkIGVudHNwZXJydOKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IkZhbHNjaGVyIFBJTi1Db2RlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iR2ViZW4gU2llIGVpbmUgNC0gYmlzIDgtc3RlbGxpZ2UgUElOIGVpbi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJEZXIgUFVLLUNvZGUgbXVzcyBtaW5kZXN0ZW5zIDggWmlmZmVybiBiZXRyYWdlbi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiJHZWJlbiBTaWUgZGVuIHJpY2h0aWdlbiBQVUstQ29kZSBlaW4uIEJlaSB3aWVkZXJob2x0ZW4gVmVyc3VjaGVuIHdpcmQgZGllIFNJTS1LYXJ0ZSBkYXVlcmhhZnQgZGVha3RpdmllcnQuIjwvc3RyaW5nPgpAQCAtMTI5LDYgKzEzNSwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiJTaWUgaGFiZW4gSWhyIEVudHNwZXJydW5nc211c3RlciA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPi1tYWwgZmFsc2NoIGdlemVpY2huZXQuIE5hY2ggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gd2VpdGVyZW4gZXJmb2xnbG9zZW4gVmVyc3VjaGVuIHdlcmRlbiBTaWUgYXVmZ2Vmb3JkZXJ0LCBJaHIgVGVsZWZvbiBtaXRoaWxmZSBlaW5lcyBFLU1haWwtS29udG9zIHp1IGVudHNwZXJyZW4uXG5cbiBWZXJzdWNoZW4gU2llIGVzIGluIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IFNla3VuZGVuIGVybmV1dC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJMgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJFbnRmZXJuZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IkZhbHNjaGVyIFBJTi1Db2RlIGRlciBTSU0tS2FydGUuIEJpdHRlIHdlbmRlbiBTaWUgc2ljaCBhbiBJaHJlbiBNb2JpbGZ1bmthbmJpZXRlciwgZGFtaXQgZXIgSWhyIEdlcsOkdCBlbnRzcGVycnQuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiJGYWxzY2hlciBQSU4tQ29kZSBkZXIgU0lNLUthcnRlLiBTaWUgaGFiZW4gbm9jaCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gVmVyc3VjaCwgYmV2b3IgU2llIGRhcyBHZXLDpHQgdm9uIElocmVtIE1vYmlsZnVua2FuYmlldGVyIGVudHNwZXJyZW4gbGFzc2VuIG3DvHNzZW4uIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4iRmFsc2NoZXIgUElOLUNvZGUgZGVyIFNJTS1LYXJ0ZS4gU2llIGhhYmVuIG5vY2ggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IFZlcnN1Y2hlLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iRGllIFNJTS1LYXJ0ZSBrYW5uIG5pY2h0IHZlcndlbmRldCB3ZXJkZW4uIEJpdHRlIHdlbmRlbiBTaWUgc2ljaCBhbiBJaHJlbiBNb2JpbGZ1bmthbmJpZXRlci4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IkZhbHNjaGVyIFBVSy1Db2RlIGRlciBTSU0tS2FydGUuIFNpZSBoYWJlbiBub2NoIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBWZXJzdWNoLCBiZXZvciBJaHJlIFNJTS1LYXJ0ZSBlbmRnw7xsdGlnIGdlc3BlcnJ0IHdpcmQuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4iRmFsc2NoZXIgUFVLLUNvZGUgZGVyIFNJTS1LYXJ0ZS4gU2llIGhhYmVuIG5vY2ggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IFZlcnN1Y2hlLCBiZXZvciBJaHJlIFNJTS1LYXJ0ZSBlbmRnw7xsdGlnIGdlc3BlcnJ0IHdpcmQuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiJGZWhsZXIgYmVpbSBFbnRzcGVycmVuIG1pdCBkZXIgUElOIGRlciBTSU0tS2FydGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IkZlaGxlciBiZWltIEVudHNwZXJyZW4gbWl0aGlsZmUgZGVzIFBVSy1Db2RlcyBkZXIgU0lNLUthcnRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+IkNvZGUgYWt6ZXB0aWVydCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IlNjaGFsdGZsw6RjaGUgZsO8ciB2b3JoZXJpZ2VuIFRpdGVsIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4iU2NoYWx0ZmzDpGNoZSBmw7xyIG7DpGNoc3RlbiBUaXRlbCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiJTY2hhbHRmbMOkY2hlIGbDvHIgUGF1c2UiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWVsL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1lbC9zdHJpbmdzLnhtbAppbmRleCBlODZmMjRkLi5iZTA3ZGNkIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWVsL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtZWwvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+Is6gzrvOt866z4TPgc6/zrvOv86zzq7Pg8+EzrUgz4TOv869IM66z4nOtM65zrrPjCDOsc+BzrnOuM68z4wgUElOIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4izqDOu863zrrPhM+Bzr/Ou86/zrPOrs+Dz4TOtSDPhM6/zr0gzrrPic60zrnOus+MIFBVSyDOus6xzrkgz4TOv869IM69zq3OvyDOus+JzrTOuc66z4wgUElOIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiLOms+JzrTOuc66z4zPgiBQVUsiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+Is6dzq3Ov8+CIM66z4nOtM65zrrPjM+CIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+Is6gzrvOt866z4TPgc6/zrvOv86zzq7Pg8+EzrUgz4TOv869IM66z4nOtM65zrrPjCBQVUsgz4TOt8+CIM66zqzPgc+EzrHPgiBTSU0gzrrOsc65IM+Ezr/OvSDOvc6tzr8gzrrPic60zrnOus+MIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxODAxOTQxMDUxMDk0OTc0NjA5Ij4izprPic60zrnOus+Mz4IgUFVLIM66zqzPgc+EzrHPgiBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+Is6dzq3Ov8+CIM66z47OtM65zrrOsc+CIM6xz4HOuc64zrzOv8+NIFBJTiDPhM63z4IgzrrOrM+Bz4TOsc+CIFNJTSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+Is6RzrPOs86vzr7PhM61IM6zzrnOsSDOtc65z4POsc6zLiDOus+JzrQuIM+Az4HPjM+DzrIuIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4izqDOu863zrrPhM+Bzr/Ou86/zrPOrs+Dz4TOtSDPhM6/zr0gzrrPic60zrnOus+MIM+Az4HPjM+DzrLOsc+DzrfPgiDOs865zrEgzr7Otc66zrvOtc6vzrTPic68zrEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLOoM67zrfOus+Ez4HOv867zr/Os86uz4PPhM61IM+Ezr/OvSDOsc+BzrnOuM68z4wgUElOIM6zzrnOsSDOvs61zrrOu861zq/OtM+JzrzOsSI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiLOms6/z4XOvM+Azq8gz4DOsc+Nz4POt8+CIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiLOms6/z4XOvM+Azq8gzrHOvc6xz4DOsc+BzrHOs8+JzrPOrs+CIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiLOms6/z4XOvM+Azq8gzrTOuc6xzrrOv8+Azq7PgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiLOlc+AzrnOtM6/zrrOuc68zrHPg86vzrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiLOkc+Azr/OtM6/zrrOuc68zrHPg86vzrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiLOms6xz4HOtM65zqwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiLOns61zrrOu861zrnOtM+Oz4PPhM61IM6zzrnOsSDOvc6xIM+Dz4XOvc61z4fOr8+DzrXPhM61Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4izpcgzrXOus66zq/Ovc63z4POtyDOsc66z4XPgc+OzrjOt866zrUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4izpHPgM6/zrjOrc+Dz4TOtSA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDOs865zrEgzrTOuc6xzrPPgc6xz4bOri4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gzrTOtc69IM64zrEgzrTOuc6xzrPPgc6xz4bOtc6vLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+Is6RzpLOkyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgpAQCAtMTA1LDcgKzExMiw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4izpXOuc+DzrHOs86szrPOtc+EzrUgz4TOv869IM6xz4DOsc65z4TOv8+NzrzOtc69zr8gzrrPic60zrnOus+MIFBJTiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLOlc+AzrnOss61zrLOsc65z47Pg8+EzrUgz4TOv869IM6xz4DOsc65z4TOv8+NzrzOtc69zr8gzrrPic60zrnOus+MIFBJTiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4izp7Otc66zrvOtc6vzrTPic68zrEgzrrOrM+Bz4TOsc+CIFNJTS4uLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+Is6Vz4PPhs6xzrvOvM6tzr3Ov8+CIM66z4nOtM65zrrPjM+CIFBJTi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLOoM67zrfOus+Ez4HOv867zr/Os86uz4PPhM61IM6tzr3Osc69IM6xz4HOuc64zrzPjCBQSU4gz4DOv8+FIM69zrEgzrHPgM6/z4TOtc67zrXOr8+EzrHOuSDOsc+Az4wgNCDOrc+Jz4IgOCDOsc+BzrnOuM68zr/Pjc+CLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+Is6fIM66z4nOtM65zrrPjM+CIFBVSyDOuM6xIM+Az4HOrc+AzrXOuSDOvc6xIM+AzrXPgc65zq3Ph861zrkgz4TOv8+FzrvOrM+HzrnPg8+Ezr/OvSA4IM6xz4HOuc64zrzOv8+Nz4IuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4izpXOuc+DzrHOs86szrPOtc+EzrUgzr7Osc69zqwgz4TOv869IM66z4nOtM65zrrPjCBQVUsuIM6fzrkgzrXPgM6xzr3Osc67zrHOvM6yzrHOvc+MzrzOtc69zrXPgiDPgM+Bzr/Pg8+AzqzOuM61zrnOtc+CIM64zrEgzrHPgM61zr3Otc+BzrPOv8+Azr/Ouc6uz4POv8+Fzr0gzr/Pgc65z4PPhM65zrrOrCDPhM63zr0gzrrOrM+Bz4TOsSBTSU0uIjwvc3RyaW5nPgpAQCAtMTI5LDYgKzEzNSwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLOo8+HzrXOtM65zqzPg86xz4TOtSDPhM6/IM68zr/PhM6vzrLOvyDOvs61zrrOu861zrnOtM+OzrzOsc+Ezr/PgiDOtc+Dz4bOsc67zrzOrc69zrEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gz4bOv8+Bzq3Pgi4gzpzOtc+EzqwgzrHPgM+MIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IM6xzr3Otc+AzrnPhM+Fz4fOtc6vz4Igz4DPgc6/z4PPgM6szrjOtc65zrXPgiDOsc66z4zOvM63LCDOuM6xIM+DzrHPgiDOts63z4TOt864zrXOryDOvc6xIM6+zrXOus67zrXOuc60z47Pg861z4TOtSDPhM6/IM+EzrfOu86tz4bPic69z4wgz4POsc+CIM68zrUgz4TOtyDPh8+Bzq7Pg863IM61zr3PjM+CIM67zr/Os86xz4HOuc6xz4POvM6/z40gzrfOu861zrrPhM+Bzr/Ovc65zrrOv8+NIM+EzrHPh8+FzrTPgc6/zrzOtc6vzr/PhS5cblxuIM6Uzr/Ous65zrzOrM+Dz4TOtSDOvs6xzr3OrCDPg861IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IM60zrXPhc+EzrXPgc+MzrvOtc+Az4TOsS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLOms6xz4TOrM+BzrPOt8+DzrciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+Is6Vz4PPhs6xzrvOvM6tzr3Ov8+CIM66z4nOtM65zrrPjM+CIFBJTiDOus6sz4HPhM6xz4IgU0lNLiDOmM6xIM+Az4HOrc+AzrXOuSDOvc6xIM61z4DOuc66zr/Ouc69z4nOvc6uz4POtc+EzrUgzrzOtSDPhM6/zr0gz4DOrM+Bzr/Ph86/IM66zrnOvc63z4TOrs+CIM+EzrfOu861z4bPic69zq/Osc+CIM+DzrHPgiDOs865zrEgzr3OsSDOvs61zrrOu861zrnOtM+Oz4POtc+EzrUgz4TOtyDPg8+Fz4POus61z4XOriDPg86xz4IuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiLOlc+Dz4bOsc67zrzOrc69zr/PgiDOus+JzrTOuc66z4zPgiBQSU4gzrrOrM+Bz4TOsc+CIFNJTS4gzpHPgM6/zrzOrc69zrXOuSDOrM67zrvOtyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gz4DPgc6/z4PPgM6szrjOtc65zrEuIM6jz4TOtyDPg8+Fzr3Orc+HzrXOuc6xLCDOuM6xIM+Az4HOrc+AzrXOuSDOvc6xIM61z4DOuc66zr/Ouc69z4nOvc6uz4POtc+EzrUgzrzOtSDPhM6/zr0gz4DOrM+Bzr/Ph86/IM66zrnOvc63z4TOrs+CIM+EzrfOu861z4bPic69zq/Osc+CIM+DzrHPgiDOs865zrEgzr3OsSDOvs61zrrOu861zrnOtM+Oz4POtc+EzrUgz4TOtyDPg8+Fz4POus61z4XOriDPg86xz4IuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4izpXPg8+GzrHOu868zq3Ovc6/z4IgzrrPic60zrnOus+Mz4IgUElOIM66zqzPgc+EzrHPgiBTSU0uIM6Rz4DOv868zq3Ovc6/z4XOvSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gz4DPgc6/z4PPgM6szrjOtc65zrXPgi4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+Is6XIM66zqzPgc+EzrEgU0lNIM60zrXOvSDOvM+Azr/Pgc61zq8gzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc63zrjOtc6vLiDOlc+AzrnOus6/zrnOvc+Jzr3Ors+Dz4TOtSDOvM61IM+Ezr/OvSDPgM6sz4HOv8+Hzr8gzrrOuc69zrfPhM6uz4Igz4TOt867zrXPhs+Jzr3Or86xz4Igz4POsc+CLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4izpXPg8+GzrHOu868zq3Ovc6/z4IgzrrPic60zrnOus+Mz4IgUFVLIM66zqzPgc+EzrHPgiBTSU0uIM6Rz4DOv868zq3Ovc61zrkgzqzOu867zrcgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IM+Az4HOv8+Dz4DOrM64zrXOuc6xIM+Az4HOv8+Ezr/PjSDOtM61zr0gzrXOr869zrHOuSDPgM67zq3Ov869IM60z4XOvc6xz4TOriDOtyDPh8+Bzq7Pg863IM+EzrfPgiDOus6sz4HPhM6xz4IgU0lNLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+Is6Vz4PPhs6xzrvOvM6tzr3Ov8+CIM66z4nOtM65zrrPjM+CIFBVSyDOus6sz4HPhM6xz4IgU0lNLiDOkc+Azr/OvM6tzr3Ov8+Fzr0gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IM+Az4HOv8+Dz4DOrM64zrXOuc61z4Igz4DPgc6/z4TOv8+NIM60zrXOvSDOtc6vzr3Osc65IM+AzrvOrc6/zr0gzrTPhc69zrHPhM6uIM63IM+Hz4HOrs+Dzrcgz4TOt8+CIM66zqzPgc+EzrHPgiBTSU0uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiLOkc+Azr/PhM+Fz4fOr86xIM67zrXOuc+Ezr/Phc+BzrPOr86xz4IgzrrPic60zrnOus6/z40gUElOIM66zqzPgc+EzrHPgiBTSU0hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiLOkc+Azr/PhM+Fz4fOr86xIM67zrXOuc+Ezr/Phc+BzrPOr86xz4IgzrrPic60zrnOus6/z40gUFVLIM66zqzPgc+EzrHPgiBTSU0hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+Is6Rz4DOv860zrXOus+Ez4zPgiDOus+JzrTOuc66z4zPgiEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiLOms6/z4XOvM+Azq8gz4DPgc6/zrfOs86/z43OvM61zr3Ov8+FIM66zr/OvM68zrHPhM65zr/PjSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+Is6azr/Phc68z4DOryDOtc+Az4zOvM61zr3Ov8+FIM66zr/OvM68zrHPhM65zr/PjSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiLOms6/z4XOvM+Azq8gz4DOsc+Nz4POt8+CIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1lbi1yR0Ivc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWVuLXJHQi9zdHJpbmdzLnhtbAppbmRleCA5NjdjM2ZhLi5mMGQ4MWI4IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWVuLXJHQi9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWVuLXJHQi9zdHJpbmdzLnhtbApAQCAtMjEsOSArMjEsOSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iVHlwZSBQSU4gY29kZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IlR5cGUgUFVLIGFuZCBuZXcgUElOIGNvZGUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IlBVSyBjb2RlIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiJOZXcgUElOIENvZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiJUeXBlIFNJTSBQVUsgYW5kIG5ldyBQSU4gY29kZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxODAxOTQxMDUxMDk0OTc0NjA5Ij4iU0lNIFBVSyBjb2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiJOZXcgU0lNIFBJTiBjb2RlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4iVG91Y2ggdG8gdHlwZSBwYXNzd29yZCI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IlR5cGUgcGFzc3dvcmQgdG8gdW5sb2NrIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iVHlwZSBQSU4gdG8gdW5sb2NrIjwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IlBhdXNlIGJ1dHRvbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iUGxheSBidXR0b24iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+IlN0b3AgYnV0dG9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IlRodW1icyB1cCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+IlRodW1icyBkb3duIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4iSGVhcnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiJVbmxvY2sgdG8gY29udGludWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJMYXVuY2ggY2FuY2VsbGVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+IkRyb3AgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gdG8gZGVsZXRlLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiB3aWxsIG5vdCBiZSBkZWxldGVkLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgpAQCAtMTA1LDcgKzExMiw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4iRW50ZXIgZGVzaXJlZCBQSU4gY29kZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiJDb25maXJtIGRlc2lyZWQgUElOIGNvZGUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlVubG9ja2luZyBTSU0gY2FyZOKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IkluY29ycmVjdCBQSU4gY29kZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiJUeXBlIGEgUElOIHRoYXQgaXMgNCB0byA4IG51bWJlcnMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iUFVLIGNvZGUgc2hvdWxkIGJlIDggbnVtYmVycyBvciBtb3JlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IlJlLWVudGVyIHRoZSBjb3JyZWN0IFBVSyBjb2RlLiBSZXBlYXRlZCBhdHRlbXB0cyB3aWxsIHBlcm1hbmVudGx5IGRpc2FibGUgdGhlIFNJTS4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IllvdSBoYXZlIGluY29ycmVjdGx5IGRyYXduIHlvdXIgdW5sb2NrIHBhdHRlcm4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gdGltZXMuIEFmdGVyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IG1vcmUgdW5zdWNjZXNzZnVsIGF0dGVtcHRzLCB5b3Ugd2lsbCBiZSBhc2tlZCB0byB1bmxvY2sgeW91ciBwaG9uZSB1c2luZyBhbiBlbWFpbCBhY2NvdW50LlxuXG4gVHJ5IGFnYWluIGluIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IHNlY29uZHMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4iUmVtb3ZlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiJJbmNvcnJlY3QgU0lNIFBJTiBjb2RlOyB5b3UgbXVzdCBub3cgY29udGFjdCB5b3VyIG9wZXJhdG9yIHRvIHVubG9jayB5b3VyIGRldmljZS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+IkluY29ycmVjdCBTSU0gUElOIGNvZGU7IHlvdSBoYXZlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiByZW1haW5pbmcgYXR0ZW1wdC9zIGJlZm9yZSB5b3UgbXVzdCBjb250YWN0IHlvdXIgY2FycmllciB0byB1bmxvY2sgeW91ciBkZXZpY2UuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4iSW5jb3JyZWN0IFNJTSBQSU4gY29kZTsgeW91IGhhdmUgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHJlbWFpbmluZyBhdHRlbXB0L3MuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJTSU0gaXMgdW51c2FibGUuIENvbnRhY3QgeW91ciBvcGVyYXRvci4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IkluY29ycmVjdCBTSU0gUFVLIGNvZGU7IHlvdSBoYXZlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiByZW1haW5pbmcgYXR0ZW1wdC9zIGJlZm9yZSBTSU0gYmVjb21lcyBwZXJtYW5lbnRseSB1bnVzYWJsZS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiJJbmNvcnJlY3QgU0lNIFBVSyBjb2RlOyB5b3UgaGF2ZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gcmVtYWluaW5nIGF0dGVtcHQvcyBiZWZvcmUgU0lNIGJlY29tZXMgcGVybWFuZW50bHkgdW51c2FibGUuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiJTSU0gUElOIG9wZXJhdGlvbiBmYWlsZWQhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJTSU0gUFVLIG9wZXJhdGlvbiBmYWlsZWQhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+IkNvZGUgYWNjZXB0ZWQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiJQcmV2aW91cyB0cmFjayBidXR0b24iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiJOZXh0IHRyYWNrIGJ1dHRvbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiJQYXVzZSBidXR0b24iPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWVuLXJJTi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwZDgxYjgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWVuLXJJTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDE1NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJUeXBlIFBJTiBjb2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iVHlwZSBTSU0gUFVLIGFuZCBuZXcgUElOIGNvZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IlNJTSBQVUsgY29kZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iTmV3IFNJTSBQSU4gY29kZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IlRvdWNoIHRvIHR5cGUgcGFzc3dvcmQiPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiJUeXBlIHBhc3N3b3JkIHRvIHVubG9jayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IlR5cGUgUElOIHRvIHVubG9jayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMjQyMjIyNTU5MTAwNjEzNDkzNiI+IkluY29ycmVjdCBQSU4gY29kZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4iVG8gdW5sb2NrLCBwcmVzcyBNZW51LCB0aGVuIDAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjZXVubG9ja19tdWx0aXBsZV9mYWlsdXJlcyIgbXNnaWQ9Ijc1NDEzNzU4MzAyMjc5MjQyOSI+Ik1heGltdW0gRmFjZSBVbmxvY2sgYXR0ZW1wdHMgZXhjZWVkZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jaGFyZ2VkIiBtc2dpZD0iMzI3MjIyMzkwNjA3MzQ5MjQ1NCI+IkNoYXJnZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wbHVnZ2VkX2luIiBtc2dpZD0iODExNzU3MjAwMDYzOTk5ODM4OCI+IkNoYXJnaW5nLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbG93X2JhdHRlcnkiIG1zZ2lkPSI4MTQzODA4MDE4NzE5MTczODU5Ij4iQ29ubmVjdCB5b3VyIGNoYXJnZXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfaW5zdHJ1Y3Rpb25zX3doZW5fcGF0dGVybl9kaXNhYmxlZCIgbXNnaWQ9IjEzMzIyODgyNjg2MDAzMjk4NDEiPiJQcmVzcyBNZW51IHRvIHVubG9jay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9uZXR3b3JrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iOTE2OTcxNzc3OTA1ODAzNzE2OCI+Ik5ldHdvcmsgbG9ja2VkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjQ5NDk4MDU2MTMwNDIxMTkzMSI+Ik5vIFNJTSBjYXJkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTQ0NTg0OTAwNTkwOTI2MDAzOSI+Ik5vIFNJTSBjYXJkIGluIHRhYmxldC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ4MTExMDM5NTUwODYzNzY0MyI+Ik5vIFNJTSBjYXJkIGluIHBob25lLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUyMTA4OTE1MDk5OTU5NDIyNTAiPiJJbnNlcnQgYSBTSU0gY2FyZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjU5Njg5ODU0ODk0NjM4NzAzNTgiPiJUaGUgU0lNIGNhcmQgaXMgbWlzc2luZyBvciBub3QgcmVhZGFibGUuIEluc2VydCBhIFNJTSBjYXJkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjgzNDA4MTM5ODk1ODY2MjIzNTYiPiJVbnVzYWJsZSBTSU0gY2FyZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU4OTI5NDA5MDk2OTk3MjM1NDQiPiJZb3VyIFNJTSBjYXJkIGhhcyBiZWVuIHBlcm1hbmVudGx5IGRpc2FibGVkLlxuIENvbnRhY3QgeW91ciB3aXJlbGVzcyBzZXJ2aWNlIHByb3ZpZGVyIGZvciBhbm90aGVyIFNJTSBjYXJkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjY4NzU3NzM0MTMzMDYzODA5MDIiPiJTSU0gY2FyZCBpcyBsb2NrZWQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3B1a19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NDcyMzI0Njc0NzE4MDE2MzMiPiJTSU0gY2FyZCBpcyBQVUstbG9ja2VkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3OTc1MjIxODA1MDMzNjE0NDI2Ij4iVW5sb2NraW5nIFNJTSBjYXJk4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiIlMSRzLiBXaWRnZXQgJTIkZCBvZiAlMyRkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiJBZGQgd2lkZ2V0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZW1wdHlfc2xvdCIgbXNnaWQ9IjEyODE1MDU3MDMzMDc5MzA3NTciPiJFbXB0eSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfZXhwYW5kZWQiIG1zZ2lkPSIyMjc4MTA2MDIyMzExMTcwMjk5Ij4iVW5sb2NrIGFyZWEgZXhwYW5kZWQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9jb2xsYXBzZWQiIG1zZ2lkPSI2MzY2OTkyMDY2OTM2MDc2Mzk2Ij4iVW5sb2NrIGFyZWEgY29sbGFwc2VkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0IiBtc2dpZD0iNjUyNzEzMTAzOTc0MTgwODI0MCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHdpZGdldC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VzZXJfc2VsZWN0b3IiIG1zZ2lkPSIxMjI2Nzk4MzcwOTEzNjk4ODk2Ij4iVXNlciBzZWxlY3RvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc3RhdHVzIiBtc2dpZD0iODAwODI2NDYwMzkzNTkzMDYxMSI+IlN0YXR1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfY2FtZXJhIiBtc2dpZD0iODkwNDIzMTE5NDE4MTExNDYwMyI+IkNhbWVyYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWdhdXJkX2FjY2Vzc2liaWxpdHlfbWVkaWFfY29udHJvbHMiIG1zZ2lkPSIyNjIyMDk2NTQyOTIxNjE4MDYiPiJNZWRpYSBjb250cm9scyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfc3RhcnQiIG1zZ2lkPSI4NzM2ODUzNjE1NTg4ODI4MTk3Ij4iV2lkZ2V0IHJlb3JkZXJpbmcgc3RhcnRlZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiJXaWRnZXQgcmVvcmRlcmluZyBlbmRlZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9kZWxldGVkIiBtc2dpZD0iNDQyNjIwNDI2MzkyOTIyNDQzNCI+IldpZGdldCA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiBkZWxldGVkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZXhwYW5kX2xvY2tfYXJlYSIgbXNnaWQ9IjUxOTg1OTcyMDkzNDE3ODAyNCI+IkV4cGFuZCB1bmxvY2sgYXJlYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiJTbGlkZSB1bmxvY2suIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiJQYXR0ZXJuIHVubG9jay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+IkZhY2UgdW5sb2NrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiJQaW4gdW5sb2NrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGFzc3dvcmRfdW5sb2NrIiBtc2dpZD0iNzY3NTc3NzYyMzkxMjE1NTA4OSI+IlBhc3N3b3JkIHVubG9jay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fYXJlYSIgbXNnaWQ9Ijc2Nzk4OTEzMjQ1MDk1OTc5MDQiPiJQYXR0ZXJuIGFyZWEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV9hcmVhIiBtc2dpZD0iNjczNjA2NDQ5NDAxOTk3OTU0NCI+IlNsaWRlIGFyZWEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjEzMzcyODY1MzgzMTg1NDM1NTUiPiJQcmV2aW91cyB0cmFjayBidXR0b24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzA3MzkyODMwMDQ0NDkwOTMyMCI+Ik5leHQgdHJhY2sgYnV0dG9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4iUGF1c2UgYnV0dG9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJQbGF5IGJ1dHRvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iU3RvcCBidXR0b24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4iVGh1bWJzIHVwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4iVGh1bWJzIGRvd24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiJIZWFydCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IlVubG9jayB0byBjb250aW51ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IkxhdW5jaCBjYW5jZWxsZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4iRHJvcCA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiB0byBkZWxldGUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHdpbGwgbm90IGJlIGRlbGV0ZWQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9hbHQiIG1zZ2lkPSI0ODU2ODY4ODIwMDQwMDUxOTM5Ij4iQWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfY2FuY2VsIiBtc2dpZD0iMTIwMzk4NDAxNzI0NTc4MzI0NCI+IkNhbmNlbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiJEZWxldGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kb25lIiBtc2dpZD0iMTk5MjU3MTExODQ2NjY3OTc3NSI+IkRvbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9tb2RlX2NoYW5nZSIgbXNnaWQ9IjQ1NDczODc3NDE5MDY1Mzc1MTkiPiJNb2RlIGNoYW5nZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrIiBtc2dpZD0iMjIyODUyNDkwMDQzOTgwMTQ1MyI+IlVubG9jayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9jYW1lcmEiIG1zZ2lkPSI5NjkwNzE5OTc1NTI0ODY4MTQiPiJDYW1lcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2lsZW50IiBtc2dpZD0iODkzNTUxMjg3NzQ2NTIyMTgyIj4iU2lsZW50Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NvdW5kb24iIG1zZ2lkPSIzMDA1MjQ2NjY3NTUwMDE3MiI+IlNvdW5kIG9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiJTZWFyY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4iU2xpZGUgdXAgZm9yIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fZG93biIgbXNnaWQ9IjUwODc3Mzk3Mjg2MzkwMTQ1OTUiPiJTbGlkZSBkb3duIGZvciA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2xlZnQiIG1zZ2lkPSI3MjA3NDc4NzE5ODA1NTYyMTY1Ij4iU2xpZGUgbGVmdCBmb3IgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiJTbGlkZSByaWdodCBmb3IgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZXJfc3dpdGNoZWQiIG1zZ2lkPSIzNzY4MDA2NzgzMTY2OTg0NDEwIj4iQ3VycmVudCB1c2VyIDx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbWVyZ2VuY3lfY2FsbF9sYWJlbCIgbXNnaWQ9IjY4NDk0NjE5MjUyMzgzMDUzMSI+IkVtZXJnZW5jeSBjYWxsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSI4ODUyMDIxNDY3ODY4MjIwNjA4Ij4iRm9yZ290IFBhdHRlcm4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXR0ZXJuIiBtc2dpZD0iMTg1MDgwNjA3MDgwMTM1ODgzMCI+Ildyb25nIFBhdHRlcm4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiJXcm9uZyBQYXNzd29yZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiJXcm9uZyBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfY291bnRkb3duIiBtc2dpZD0iNjM1ODExMDIyMTYwMzI5NzU0OCI+IlRyeSBhZ2FpbiBpbiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gc2Vjb25kcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5ODk3ODYxMTY4MzA3NTg2OCI+IkRyYXcgeW91ciBwYXR0ZXJuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4iRW50ZXIgU0lNIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzc3MjQyMjMzNDk1MTExNTU3Ij4iRW50ZXIgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+IkVudGVyIFBhc3N3b3JkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4iU0lNIGlzIG5vdyBkaXNhYmxlZC4gRW50ZXIgUFVLIGNvZGUgdG8gY29udGludWUuIENvbnRhY3QgY2FycmllciBmb3IgZGV0YWlscy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4iRW50ZXIgZGVzaXJlZCBQSU4gY29kZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiJDb25maXJtIGRlc2lyZWQgUElOIGNvZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlVubG9ja2luZyBTSU0gY2FyZOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IlR5cGUgYSBQSU4gdGhhdCBpcyA0IHRvIDggbnVtYmVycy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJQVUsgY29kZSBzaG91bGQgYmUgOCBudW1iZXJzIG9yIG1vcmUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iUmUtZW50ZXIgdGhlIGNvcnJlY3QgUFVLIGNvZGUuIFJlcGVhdGVkIGF0dGVtcHRzIHdpbGwgcGVybWFuZW50bHkgZGlzYWJsZSB0aGUgU0lNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfY29uZmlybV9waW5faGludCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcwMDM0NjkyNjE0NjQ1OTM1MTYiPiJQSU4gY29kZXMgZG8gbm90IG1hdGNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4iVG9vIG1hbnkgcGF0dGVybiBhdHRlbXB0cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiJUbyB1bmxvY2ssIHNpZ24gaW4gd2l0aCB5b3VyIEdvb2dsZSBhY2NvdW50LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4iVXNlcm5hbWUgKGVtYWlsKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4iUGFzc3dvcmQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNTM1NTkwNDU4MjY3NDA1NDcwMiI+IlNpZ24gaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+IkludmFsaWQgdXNlcm5hbWUgb3IgcGFzc3dvcmQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IkZvcmdvdCB5b3VyIHVzZXJuYW1lIG9yIHBhc3N3b3JkP1xuVmlzaXQgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IkNoZWNraW5nIGFjY291bnTigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODI3Njc0NTY0MjA0OTUwMjU1MCI+IllvdSBoYXZlIGluY29ycmVjdGx5IHR5cGVkIHlvdXIgUElOIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IHRpbWVzLiBcblxuVHJ5IGFnYWluIGluIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHNlY29uZHMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+IllvdSBoYXZlIGluY29ycmVjdGx5IHR5cGVkIHlvdXIgcGFzc3dvcmQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gdGltZXMuIFxuXG5UcnkgYWdhaW4gaW4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gc2Vjb25kcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGF0dGVybl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc0MDg5NDc1OTY1MDUwODA1Ij4iWW91IGhhdmUgaW5jb3JyZWN0bHkgZHJhd24geW91ciB1bmxvY2sgcGF0dGVybiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiB0aW1lcy4gXG5cblRyeSBhZ2FpbiBpbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBzZWNvbmRzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+IllvdSBoYXZlIGluY29ycmVjdGx5IGF0dGVtcHRlZCB0byB1bmxvY2sgdGhlIHRhYmxldCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiB0aW1lcy4gQWZ0ZXIgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gbW9yZSB1bnN1Y2Nlc3NmdWwgYXR0ZW1wdHMsIHRoZSB0YWJsZXQgd2lsbCBiZSByZXNldCB0byBmYWN0b3J5IGRlZmF1bHQgYW5kIGFsbCB1c2VyIGRhdGEgd2lsbCBiZSBsb3N0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQwNTEwMTU5NDMwMzgxOTk5MTAiPiJZb3UgaGF2ZSBpbmNvcnJlY3RseSBhdHRlbXB0ZWQgdG8gdW5sb2NrIHRoZSBwaG9uZSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiB0aW1lcy4gQWZ0ZXIgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gbW9yZSB1bnN1Y2Nlc3NmdWwgYXR0ZW1wdHMsIHRoZSBwaG9uZSB3aWxsIGJlIHJlc2V0IHRvIGZhY3RvcnkgZGVmYXVsdCBhbmQgYWxsIHVzZXIgZGF0YSB3aWxsIGJlIGxvc3QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNzI5OTYyNjkxNDg0ODM2MzciPiJZb3UgaGF2ZSBpbmNvcnJlY3RseSBhdHRlbXB0ZWQgdG8gdW5sb2NrIHRoZSB0YWJsZXQgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHRpbWVzLiBUaGUgdGFibGV0IHdpbGwgbm93IGJlIHJlc2V0IHRvIGZhY3RvcnkgZGVmYXVsdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ4MTc2Mjc0NzQ0MTk0NzE1MTgiPiJZb3UgaGF2ZSBpbmNvcnJlY3RseSBhdHRlbXB0ZWQgdG8gdW5sb2NrIHRoZSBwaG9uZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gdGltZXMuIFRoZSBwaG9uZSB3aWxsIG5vdyBiZSByZXNldCB0byBmYWN0b3J5IGRlZmF1bHQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IllvdSBoYXZlIGluY29ycmVjdGx5IGRyYXduIHlvdXIgdW5sb2NrIHBhdHRlcm4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gdGltZXMuIEFmdGVyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IG1vcmUgdW5zdWNjZXNzZnVsIGF0dGVtcHRzLCB5b3Ugd2lsbCBiZSBhc2tlZCB0byB1bmxvY2sgeW91ciB0YWJsZXQgdXNpbmcgYW4gZW1haWwgYWNjb3VudC5cblxuIFRyeSBhZ2FpbiBpbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzZWNvbmRzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iWW91IGhhdmUgaW5jb3JyZWN0bHkgZHJhd24geW91ciB1bmxvY2sgcGF0dGVybiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiB0aW1lcy4gQWZ0ZXIgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gbW9yZSB1bnN1Y2Nlc3NmdWwgYXR0ZW1wdHMsIHlvdSB3aWxsIGJlIGFza2VkIHRvIHVubG9jayB5b3VyIHBob25lIHVzaW5nIGFuIGVtYWlsIGFjY291bnQuXG5cbiBUcnkgYWdhaW4gaW4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2Vjb25kcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJSZW1vdmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IkluY29ycmVjdCBTSU0gUElOIGNvZGU7IHlvdSBtdXN0IG5vdyBjb250YWN0IHlvdXIgb3BlcmF0b3IgdG8gdW5sb2NrIHlvdXIgZGV2aWNlLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iSW5jb3JyZWN0IFNJTSBQSU4gY29kZTsgeW91IGhhdmUgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHJlbWFpbmluZyBhdHRlbXB0L3MgYmVmb3JlIHlvdSBtdXN0IGNvbnRhY3QgeW91ciBjYXJyaWVyIHRvIHVubG9jayB5b3VyIGRldmljZS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJJbmNvcnJlY3QgU0lNIFBJTiBjb2RlOyB5b3UgaGF2ZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gcmVtYWluaW5nIGF0dGVtcHQvcy4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+IlNJTSBpcyB1bnVzYWJsZS4gQ29udGFjdCB5b3VyIG9wZXJhdG9yLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iSW5jb3JyZWN0IFNJTSBQVUsgY29kZTsgeW91IGhhdmUgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHJlbWFpbmluZyBhdHRlbXB0L3MgYmVmb3JlIFNJTSBiZWNvbWVzIHBlcm1hbmVudGx5IHVudXNhYmxlLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IkluY29ycmVjdCBTSU0gUFVLIGNvZGU7IHlvdSBoYXZlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiByZW1haW5pbmcgYXR0ZW1wdC9zIGJlZm9yZSBTSU0gYmVjb21lcyBwZXJtYW5lbnRseSB1bnVzYWJsZS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IlNJTSBQSU4gb3BlcmF0aW9uIGZhaWxlZCEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IlNJTSBQVUsgb3BlcmF0aW9uIGZhaWxlZCEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iQ29kZSBhY2NlcHRlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IlByZXZpb3VzIHRyYWNrIGJ1dHRvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+Ik5leHQgdHJhY2sgYnV0dG9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IlBhdXNlIGJ1dHRvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjkyNDYyODg2Mzc0MTE1MDk1NiI+IlBsYXkgYnV0dG9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSIzMDg0MTc5MzI0ODEwNTc1Nzg3Ij4iU3RvcCBidXR0b24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jYXJyaWVyX2RlZmF1bHQiIG1zZ2lkPSI4NzAwNjUwNDAzMDU0MDQyMTUzIj4iTm8gc2VydmljZS4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtZXMtclVTL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1lcy1yVVMvc3RyaW5ncy54bWwKaW5kZXggNzg3NTgxYS4uMzhiZWNhMyAxMDA2NDQKLS0tIGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1lcy1yVVMvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1lcy1yVVMvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IkluZ3Jlc2EgZWwgY8OzZGlnbyBQSU4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiJFc2NyaWJlIGVsIGPDs2RpZ28gUFVLIHkgdW4gbnVldm8gY8OzZGlnbyBQSU4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJDw7NkaWdvIFBVSyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iTnVldm8gY8OzZGlnbyBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiJFc2NyaWJlIGVsIGPDs2RpZ28gUFVLIGRlIGxhIHRhcmpldGEgU0lNIHkgdW4gbnVldm8gY8OzZGlnbyBQSU4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJDw7NkaWdvIFBVSyBkZSBsYSB0YXJqZXRhIFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iTnVldm8gY8OzZGlnbyBQSU4gZGUgbGEgdGFyamV0YSBTSU0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiJUb2NhIHBhcmEgaW5ncmVzYXIgbGEgY29udHJhc2XDsWEiPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiJJbmdyZXNhciBjb250cmFzZcOxYSBwYXJhIGRlc2Jsb3F1ZWFyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iSW5ncmVzYSBlbCBQSU4gcGFyYSBkZXNibG9xdWVhciI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiJCb3TDs24gZGUgcGF1c2EiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+IkJvdMOzbiBkZSByZXByb2R1Y2Npw7NuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJCb3TDs24gZGUgZGV0ZW5jacOzbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiJWb3RvcyBhIGZhdm9yIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4iVm90b3MgZW4gY29udHJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4iQ29yYXrDs24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiJEZXNibG9xdWVhIHBhcmEgY29udGludWFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IlNlIGNhbmNlbMOzIGVsIGluaWNpby4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4iU3VlbHRhIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHBhcmEgZWxpbWluYXJsby4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iTm8gc2UgZWxpbWluYXLDoSA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IkluZ3Jlc2EgZWwgY8OzZGlnbyBQSU4gZGVzZWFkbyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiJDb25maXJtYXIgY8OzZGlnbyBQSU4gZGVzZWFkbyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iRGVzYmxvcXVlYW5kbyB0YXJqZXRhIFNJTeKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IkPDs2RpZ28gUElOIGluY29ycmVjdG8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiJFc2NyaWJlIHVuIFBJTiBxdWUgdGVuZ2EgZGUgY3VhdHJvIGEgb2NobyBuw7ptZXJvcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJFbCBjw7NkaWdvIFBVSyBkZWJlIHRlbmVyIG9jaG8gbsO6bWVyb3MgY29tbyBtw61uaW1vLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IlZ1ZWx2ZSBhIGluZ3Jlc2FyIGVsIGPDs2RpZ28gUFVLIGNvcnJlY3RvLiBTaSBpbmdyZXNhcyB1biBjw7NkaWdvIGluY29ycmVjdG8gdmFyaWFzIHZlY2VzLCBzZSBpbmhhYmlsaXRhcsOhIGxhIHRhcmpldGEgU0lNLiI8L3N0cmluZz4KQEAgLTEyOSw2ICsxMzUsMTkgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iRGlidWphc3RlIGluY29ycmVjdGFtZW50ZSB0dSBwYXRyw7NuIGRlIGRlc2Jsb3F1ZW8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gdmVjZXMuIEx1ZWdvIGRlIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGludGVudG9zIGluY29ycmVjdG9zIG3DoXMsIHNlIHRlIHNvbGljaXRhcsOhIHF1ZSBkZXNibG9xdWVlcyB0dSBkaXNwb3NpdGl2byBtZWRpYW50ZSBlbCB1c28gZGUgdW5hIGN1ZW50YSBkZSBjb3JyZW8uXG5cbiBWdWVsdmUgYSBpbnRlbnRhcmxvIGVuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IHNlZ3VuZG9zLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IkVsaW1pbmFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiJFbCBjw7NkaWdvIFBJTiBkZSBsYSB0YXJqZXRhIFNJTSBlcyBpbmNvcnJlY3RvLiBEZWJlcyBjb211bmljYXJ0ZSBjb24gZWwgcHJvdmVlZG9yIHBhcmEgZGVzYmxvcXVlYXIgZWwgZGlzcG9zaXRpdm8uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiJFbCBjw7NkaWdvIFBJTiBkZSBsYSB0YXJqZXRhIFNJTSBlcyBpbmNvcnJlY3RvLiBUZSBxdWVkYSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gaW50ZW50byBhbnRlcyBkZSBxdWUgZGViYXMgY29tdW5pY2FydGUgY29uIGVsIHByb3ZlZWRvciBwYXJhIGRlc2Jsb3F1ZWFyIGVsIGRpc3Bvc2l0aXZvLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+IkVsIGPDs2RpZ28gUElOIGRlIGxhIHRhcmpldGEgU0lNIGVzIGluY29ycmVjdG8uIFRlIHF1ZWRhbiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gaW50ZW50b3MuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJMYSB0YXJqZXRhIFNJTSBubyBzZSBwdWVkZSB1dGlsaXphci4gQ29tdW7DrWNhdGUgY29uIGVsIHByb3ZlZWRvci4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IkVsIGPDs2RpZ28gUFVLIGRlIGxhIHRhcmpldGEgU0lNIGVzIGluY29ycmVjdG8uIFRlIHF1ZWRhIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBpbnRlbnRvIGFudGVzIGRlIHF1ZSBsYSB0YXJqZXRhIFNJTSBxdWVkZSBpbnV0aWxpemFibGUgcGVybWFuZW50ZW1lbnRlLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IkVsIGPDs2RpZ28gUFVLIGRlIGxhIHRhcmpldGEgU0lNIGVzIGluY29ycmVjdG8uIFRlIHF1ZWRhbiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gaW50ZW50b3MgYW50ZXMgZGUgcXVlIGxhIHRhcmpldGEgU0lNIHF1ZWRlIGludXRpbGl6YWJsZSBwZXJtYW5lbnRlbWVudGUuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiJFcnJvciBhbCBkZXNibG9xdWVhciBsYSB0YXJqZXRhIFNJTSBjb24gZWwgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJFcnJvciBhbCBkZXNibG9xdWVhciBsYSB0YXJqZXRhIFNJTSBjb24gZWwgUFVLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+IkPDs2RpZ28gYWNlcHRhZG8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiJCb3TDs24gZGUgcGlzdGEgYW50ZXJpb3IiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiJCb3TDs24gZGUgcGlzdGEgc2lndWllbnRlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IkJvdMOzbiBkZSBwYXVzYSI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtZXMvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWVzL3N0cmluZ3MueG1sCmluZGV4IGQwYzc5ZWIuLmE5M2IxMGQgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtZXMvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1lcy9zdHJpbmdzLnhtbApAQCAtMjEsMTYgKzIxLDE2IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJJbnRyb2R1Y2UgZWwgY8OzZGlnbyBQSU4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iSW50cm9kdWNlIGVsIGPDs2RpZ28gUFVLIHkgdW4gbnVldm8gY8OzZGlnbyBQSU4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJDw7NkaWdvIFBVSyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iTnVldm8gY8OzZGlnbyBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiJFc2NyaWJlIGVsIFBVSyBkZSBsYSB0YXJqZXRhIFNJTSB5IHVuIG51ZXZvIGPDs2RpZ28gUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJDw7NkaWdvIFBVSyBkZSBsYSB0YXJqZXRhIFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iTnVldm8gY8OzZGlnbyBQSU4gZGUgdGFyamV0YSBTSU0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiJUb2NhIHBhcmEgaW50cm9kdWNpciBjb250cmFzZcOxYSI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IkludHJvZHVjZSBsYSBjb250cmFzZcOxYSBwYXJhIGRlc2Jsb3F1ZWFyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IkludHJvZHVjZSBlbCBjw7NkaWdvIFBJTiBwYXJhIGRlc2Jsb3F1ZWFyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMjQyMjIyNTU5MTAwNjEzNDkzNiI+IkPDs2RpZ28gUElOIGluY29ycmVjdG8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4iUGFyYSBkZXNibG9xdWVhciBlbCB0ZWzDqWZvbm8sIHB1bHNhIGxhIHRlY2xhIGRlIG1lbsO6IHksIGEgY29udGludWFjacOzbiwgcHVsc2EgMC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJmYWNldW5sb2NrX211bHRpcGxlX2ZhaWx1cmVzIiBtc2dpZD0iNzU0MTM3NTgzMDIyNzkyNDI5Ij4iU2UgaGEgc3VwZXJhZG8gZWwgbsO6bWVybyBtw6F4aW1vIGRlIGludGVudG9zIGRlIGRlc2Jsb3F1ZW8gZmFjaWFsLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NoYXJnZWQiIG1zZ2lkPSIzMjcyMjIzOTA2MDczNDkyNDU0Ij4iQ2FyZ2FkbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NoYXJnZWQiIG1zZ2lkPSIzMjcyMjIzOTA2MDczNDkyNDU0Ij4iQ2FyZ2FkYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3BsdWdnZWRfaW4iIG1zZ2lkPSI4MTE3NTcyMDAwNjM5OTk4Mzg4Ij4iQ2FyZ2FuZG8gKDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4pIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbG93X2JhdHRlcnkiIG1zZ2lkPSI4MTQzODA4MDE4NzE5MTczODU5Ij4iQ29uZWN0YSBlbCBjYXJnYWRvci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iMTMzMjI4ODI2ODYwMDMyOTg0MSI+IlZlIGFsIG1lbsO6IHBhcmEgZGVzYmxvcXVlYXIgbGEgcGFudGFsbGEuIjwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IkJvdMOzbiBkZSBwYXVzYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iQm90w7NuIGRlIHJlcHJvZHVjY2nDs24iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+IkJvdMOzbiBwYXJhIGRldGVuZXIgbGEgcmVwcm9kdWNjacOzbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiJNZSBndXN0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+Ik5vIG1lIGd1c3RhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4iQ29yYXrDs24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiJEZXNibG9xdWVhciBwYXJhIGNvbnRpbnVhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IkluaWNpbyBjYW5jZWxhZG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4iU3VlbHRhIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHBhcmEgZWxpbWluYXJsby4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gbm8gc2UgZWxpbWluYXLDoS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IkludHJvZHVjZSBlbCBjw7NkaWdvIFBJTiBkZXNlYWRvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IkNvbmZpcm1hIGVsIGPDs2RpZ28gUElOIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJEZXNibG9xdWVhbmRvIHRhcmpldGEgU0lN4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iQ8OzZGlnbyBQSU4gaW5jb3JyZWN0byI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IkludHJvZHVjZSB1biBjw7NkaWdvIFBJTiBjb24gdW5hIGxvbmdpdHVkIGNvbXByZW5kaWRhIGVudHJlIGN1YXRybyB5IG9jaG8gZMOtZ2l0b3MuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iRWwgY8OzZGlnbyBQVUsgZGViZSB0ZW5lciBvY2hvIG7Dum1lcm9zIGNvbW8gbcOtbmltby4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiJWdWVsdmUgYSBpbnRyb2R1Y2lyIGVsIGPDs2RpZ28gUFVLIGNvcnJlY3RvLiBTaSBpbnRyb2R1Y2VzIHVuIGPDs2RpZ28gaW5jb3JyZWN0byB2YXJpYXMgdmVjZXMsIHNlIGluaGFiaWxpdGFyw6EgbGEgdGFyamV0YSBTSU0uIjwvc3RyaW5nPgpAQCAtMTI5LDYgKzEzNSwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiJIYXMgZmFsbGFkbyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiB2ZWNlcyBhbCBkaWJ1amFyIGVsIHBhdHLDs24gZGUgZGVzYmxvcXVlby4gU2kgZmFsbGFzIG90cmFzIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHZlY2VzLCBkZWJlcsOhcyB1c2FyIHVuYSBjdWVudGEgZGUgY29ycmVvIGVsZWN0csOzbmljbyBwYXJhIGRlc2Jsb3F1ZWFyIGVsIHRlbMOpZm9uby5cblxuIEludMOpbnRhbG8gZGUgbnVldm8gZW4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2VndW5kb3MuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4iRWxpbWluYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IkPDs2RpZ28gUElOIGRlIGxhIHRhcmpldGEgU0lNIGluY29ycmVjdG8uIERlYmVzIHBvbmVydGUgZW4gY29udGFjdG8gY29uIHR1IG9wZXJhZG9yIHBhcmEgZGVzYmxvcXVlYXIgZWwgZGlzcG9zaXRpdm8uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiJDw7NkaWdvIFBJTiBkZSBsYSB0YXJqZXRhIFNJTSBpbmNvcnJlY3RvLiBRdWVkYSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gaW50ZW50byBwYXJhIHRlbmVyIHF1ZSBwb25lcnRlIGVuIGNvbnRhY3RvIGNvbiB0dSBvcGVyYWRvciBwYXJhIGRlc2Jsb3F1ZWFyIGVsIGRpc3Bvc2l0aXZvLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+IkPDs2RpZ28gUElOIGRlIGxhIHRhcmpldGEgU0lNIGluY29ycmVjdG8uIFF1ZWRhbiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gaW50ZW50b3MuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJMYSB0YXJqZXRhIFNJTSBubyBzZSBwdWVkZSB1dGlsaXphci4gUG9udGUgZW4gY29udGFjdG8gY29uIHR1IG9wZXJhZG9yLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iQ8OzZGlnbyBQVUsgZGUgbGEgdGFyamV0YSBTSU0gaW5jb3JyZWN0by4gVGUgcXVlZGEgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGludGVudG8gcGFyYSBxdWUgbGEgdGFyamV0YSBTSU0gbm8gc2UgcHVlZGEgdXRpbGl6YXIgZGUgZm9ybWEgcGVybWFuZW50ZS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiJDw7NkaWdvIFBVSyBkZSBsYSB0YXJqZXRhIFNJTSBpbmNvcnJlY3RvLiBRdWVkYW4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGludGVudG9zIHBhcmEgcXVlIGxhIHRhcmpldGEgU0lNIG5vIHNlIHB1ZWRhIHV0aWxpemFyIGRlIGZvcm1hIHBlcm1hbmVudGUuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiJFcnJvciBhbCBpbnRlbnRhciBkZXNibG9xdWVhciBsYSB0YXJqZXRhIFNJTSBjb24gZWwgY8OzZGlnbyBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IkVycm9yIGFsIGludGVudGFyIGRlc2Jsb3F1ZWFyIGxhIHRhcmpldGEgU0lNIGNvbiBlbCBjw7NkaWdvIFBVSyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9hY2NlcHRlZCIgbXNnaWQ9IjE0NDgyNDE2NzM1NzAwMjAwOTciPiJDw7NkaWdvIGFjZXB0YWRvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iQm90w7NuIGRlIGNhbmNpw7NuIGFudGVyaW9yIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4iQm90w7NuIGRlIHNpZ3VpZW50ZSBjYW5jacOzbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiJCb3TDs24gZGUgcGF1c2EiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwYmQ4MjkKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDE1NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJTaXNlc3RhZ2UgUElOLWtvb2QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiJTaXNlc3RhZ2UgU0lNLWkgUFVLLSBqYSB1dXMgUElOLWtvb2QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IlNJTS1pIFBVSy1rb29kIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiJVdXMgU0lNLWkgUElOLWtvb2QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiJQdXVkdXRhZ2UgcGFyb29saSBzaXNlc3RhbWlzZWtzIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iQXZhbWlzZWtzIHNpc2VzdGFnZSBwYXJvb2wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJBdmFtaXNla3Mgc2lzZXN0YWdlIFBJTi1rb29kIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIyNDIyMjI1NTkxMDA2MTM0OTM2Ij4iVmFsZSBQSU4ta29vZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4iQXZhbWlzZWtzIHZhanV0YWdlIG1lbsO8w7xrbGFodmksIHNlZWrDpHJlbCBrbGFodmkgMC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWNldW5sb2NrX211bHRpcGxlX2ZhaWx1cmVzIiBtc2dpZD0iNzU0MTM3NTgzMDIyNzkyNDI5Ij4iTWFrc2ltYWFsbmUgdGVlbnVzZWdhIEZhY2UgVW5sb2NrIGF2YW1pc2Uga2F0c2V0ZSBhcnYgb24gw7xsZXRhdHVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2hhcmdlZCIgbXNnaWQ9IjMyNzIyMjM5MDYwNzM0OTI0NTQiPiJMYWV0dWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wbHVnZ2VkX2luIiBtc2dpZD0iODExNzU3MjAwMDYzOTk5ODM4OCI+IkxhYWRpbWluZSwgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xvd19iYXR0ZXJ5IiBtc2dpZD0iODE0MzgwODAxODcxOTE3Mzg1OSI+IsOcaGVuZGFnZSBsYWFkaWphLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSIxMzMyMjg4MjY4NjAwMzI5ODQxIj4iQXZhbWlzZWtzIHZhanV0YWdlIG1lbsO8w7xrbGFodmkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjkxNjk3MTc3NzkwNTgwMzcxNjgiPiJWw7VyayBvbiBzdWxldHVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjQ5NDk4MDU2MTMwNDIxMTkzMSI+IlNJTS1rYWFydGkgcG9sZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE0NDU4NDkwMDU5MDkyNjAwMzkiPiJUYWh2ZWxhcnZ1dGlzIHBvbGUgU0lNLWthYXJ0aS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ4MTExMDM5NTUwODYzNzY0MyI+IlRlbGVmb25pcyBwb2xlIFNJTS1rYWFydGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTIxMDg5MTUwOTk5NTk0MjI1MCI+IlNpc2VzdGFnZSBTSU0ta2FhcnQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zX2xvbmciIG1zZ2lkPSI1OTY4OTg1NDg5NDYzODcwMzU4Ij4iU0lNLWthYXJ0IHB1dWR1YiB2w7VpIG9uIGxvZXRhbWF0dS4gU2lzZXN0YWdlIFNJTS1rYWFydC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI4MzQwODEzOTg5NTg2NjIyMzU2Ij4iS2FzdXRhbWlza8O1bGJtYXR1IFNJTS1rYWFydC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU4OTI5NDA5MDk2OTk3MjM1NDQiPiJTSU0ta2FhcnQgb24gasOkw6RkYXZhbHQga2VlbGF0dWQuXG4gVXVlIFNJTS1rYWFyZGkgc2FhbWlzZWtzIHbDtXRrZSDDvGhlbmR1c3Qgb21hIG1vYmlpbHNpZGVvcGVyYWF0b3JpZ2EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+IlNJTS1rYWFydCBvbiBsdWt1cy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMzc0NzIzMjQ2NzQ3MTgwMTYzMyI+IlNJTS1rYWFydCBvbiBQVUstbHVrdXMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc5NzUyMjE4MDUwMzM2MTQ0MjYiPiJTSU0ta2FhcmRpIGF2YW1pbmUgLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiIlMSRzLiBWaWRpbiAlMiRkLyUzJGQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9hZGRfd2lkZ2V0IiBtc2dpZD0iODI3MzI3NzA1ODcyNDkyNDY1NCI+IlZpZGluYSBsaXNhbWluZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9lbXB0eV9zbG90IiBtc2dpZD0iMTI4MTUwNTcwMzMwNzkzMDc1NyI+IlTDvGhpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiJBdmFtaXNhbGEgb24gbGFpZW5kYXR1ZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2NvbGxhcHNlZCIgbXNnaWQ9IjYzNjY5OTIwNjY5MzYwNzYzOTYiPiJBdmFtaXNhbGEgb24gYWhlbmRhdHVkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0IiBtc2dpZD0iNjUyNzEzMTAzOTc0MTgwODI0MCI+IlZpZGluIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdXNlcl9zZWxlY3RvciIgbXNnaWQ9IjEyMjY3OTgzNzA5MTM2OTg4OTYiPiJLYXN1dGFqYSB2YWxpamEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3N0YXR1cyIgbXNnaWQ9IjgwMDgyNjQ2MDM5MzU5MzA2MTEiPiJPbGVrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4iS2FhbWVyYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWdhdXJkX2FjY2Vzc2liaWxpdHlfbWVkaWFfY29udHJvbHMiIG1zZ2lkPSIyNjIyMDk2NTQyOTIxNjE4MDYiPiJNZWVkaWEganVodG51cHVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9zdGFydCIgbXNnaWQ9Ijg3MzY4NTM2MTU1ODg4MjgxOTciPiJWaWRpbmEgw7xtYmVya29ycmFsZGFtaW5lIGFsZ2FzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfZW5kIiBtc2dpZD0iNzE3MDE5MDk1MDg3MDQ2ODMyMCI+IlZpZGluYSDDvG1iZXJrb3JyYWxkYW1pbmUgbMO1cHBlcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9kZWxldGVkIiBtc2dpZD0iNDQyNjIwNDI2MzkyOTIyNDQzNCI+IlZpZGluIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IG9uIGt1c3R1dGF0dWQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4iQXZhbWlzYWxhIGxhaWVuZGFtaW5lLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfdW5sb2NrIiBtc2dpZD0iMjk1OTkyODQ3ODc2NDY5NzI1NCI+IkxvaGlzdGFtaXNlZ2EgYXZhbWluZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fdW5sb2NrIiBtc2dpZD0iMTQ5MDg0MDcwNjA3NTI0NjYxMiI+Ik11c3RyaWdhIGF2YW1pbmUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9mYWNlX3VubG9jayIgbXNnaWQ9IjQ4MTcyODI1NDMzNTE3MTg1MzUiPiJOw6RvZ2EgYXZhbWluZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4iUElOLWtvb2RpZ2EgYXZhbWluZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiJQYXJvb2xpZ2EgYXZhbWluZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fYXJlYSIgbXNnaWQ9Ijc2Nzk4OTEzMjQ1MDk1OTc5MDQiPiJNdXN0cmkgYWxhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfYXJlYSIgbXNnaWQ9IjY3MzYwNjQ0OTQwMTk5Nzk1NDQiPiJMb2hpc3RhbWlzYWxhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSIxMzM3Mjg2NTM4MzE4NTQzNTU1Ij4iTnVwcCBFZWxtaW5lIGx1Z3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzA3MzkyODMwMDQ0NDkwOTMyMCI+Ik51cHAgSsOkcmdtaW5lIGx1Z3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiJOdXBwIFBlYXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJOdXBwIEVzaXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJOdXBwIFBlYXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+Ik1lZWxkaWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiJFaSBtZWVsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiJTw7xkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IkrDpHRrYW1pc2VrcyB0w7xoaXN0YWdlIGx1a3VzdHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4iS8OkaXZpdGFtaW5lIG9uIHTDvGhpc3RhdHVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+Ikt1c3R1dGFtaXNla3MgbGFza2UgdmlkaW4gPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gbGFodGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+IlZpZGluYXQgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gZWkga3VzdHV0YXRhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfYWx0IiBtc2dpZD0iNDg1Njg2ODgyMDA0MDA1MTkzOSI+IkFsdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2NhbmNlbCIgbXNnaWQ9IjEyMDM5ODQwMTcyNDU3ODMyNDQiPiJUw7xoaXN0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiJLdXN0dXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZG9uZSIgbXNnaWQ9IjE5OTI1NzExMTg0NjY2Nzk3NzUiPiJWYWxtaXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9tb2RlX2NoYW5nZSIgbXNnaWQ9IjQ1NDczODc3NDE5MDY1Mzc1MTkiPiJSZcW+aWltaSBtdXV0bWluZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlTDtXN0dWtsYWh2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iU2lzZXN0dXNrbGFodiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF91bmxvY2siIG1zZ2lkPSIyMjI4NTI0OTAwNDM5ODAxNDUzIj4iTHVrdSBhdmFtaW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X2NhbWVyYSIgbXNnaWQ9Ijk2OTA3MTk5NzU1MjQ4NjgxNCI+IkthYW1lcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2lsZW50IiBtc2dpZD0iODkzNTUxMjg3NzQ2NTIyMTgyIj4iSMOkw6RsZXR1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NvdW5kb24iIG1zZ2lkPSIzMDA1MjQ2NjY3NTUwMDE3MiI+IkhlbGkgb24gc2VlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zZWFyY2giIG1zZ2lkPSIzMDkxNTg3MjQ5Nzc2MDMzMTM5Ij4iT3RzaW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3VwIiBtc2dpZD0iNzE2OTAzMjQ3ODI1OTQ4NTE4MCI+IkxvaGlzdGFnZSDDvGxlczogPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9kb3duIiBtc2dpZD0iNTA4NzczOTcyODYzOTAxNDU5NSI+IkxvaGlzdGFnZSBhbGxhOiA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2xlZnQiIG1zZ2lkPSI3MjA3NDc4NzE5ODA1NTYyMTY1Ij4iTG9oaXN0YWdlIHZhc2FrdWxlOiA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3JpZ2h0IiBtc2dpZD0iODAzNDQzMzI0MjU3OTYwMDk4MCI+IkxvaGlzdGFnZSBwYXJlbWFsZTogPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZXJfc3dpdGNoZWQiIG1zZ2lkPSIzNzY4MDA2NzgzMTY2OTg0NDEwIj4iUHJhZWd1bmUga2FzdXRhamEgPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VtZXJnZW5jeV9jYWxsX2xhYmVsIiBtc2dpZD0iNjg0OTQ2MTkyNTIzODMwNTMxIj4iSMOkZGFhYmlrw7VuZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iODg1MjAyMTQ2Nzg2ODIyMDYwOCI+IlVudXN0YXNpbiBtdXN0cmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXR0ZXJuIiBtc2dpZD0iMTg1MDgwNjA3MDgwMTM1ODgzMCI+IlZhbGUgbXVzdGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGFzc3dvcmQiIG1zZ2lkPSIyMzMzMjgxNzYyMTI4MTEzMTU3Ij4iVmFsZSBwYXJvb2wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4iVmFsZSBQSU4ta29vZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MzU4MTEwMjIxNjAzMjk3NTQ4Ij4iUHJvb3ZpZ2UgdXVlc3RpIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBzZWt1bmRpIHDDpHJhc3QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiJKb29uaXN0YWdlIG9tYSBtdXN0ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiJTaXNlc3RhZ2UgU0lNLWkgUElOLWtvb2QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IlNpc2VzdGFnZSBQSU4ta29vZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU3NTM2NDY1NTYxODY5MzY4MTkiPiJTaXNlc3RhZ2UgcGFyb29sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4iU0lNIG9uIG7DvMO8ZCBrZWVsYXR1ZC4gSsOkdGthbWlzZWtzIHNpc2VzdGFnZSBQVUsta29vZC4gw5xrc2lrYXNqdSBrw7xzaWdlIG9wZXJhYXRvcmlsdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4iU2lzZXN0YWdlIHNvb3ZpdHVkIFBJTi1rb29kIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+Iktpbm5pdGFnZSBzb292aXR1ZCBQSU4ta29vZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iU0lNLWthYXJkaSBhdmFtaW5lIC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IlNpc2VzdGFnZSA04oCTOC1udW1icmlsaW5lIFBJTi1rb29kLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSy1rb29kaSBwaWtrdXMgcGVhYiBvbGVtYSB2w6RoZW1hbHQgOCBudW1icml0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IlNpc2VzdGFnZSB1dWVzdGkgw7VpZ2UgUFVLLWtvb2QuIEtvcmR1dmthdHNldGUga29ycmFsIGtlZWxhdGFrc2UgU0lNIGrDpMOkZGF2YWx0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfY29uZmlybV9waW5faGludCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcwMDM0NjkyNjE0NjQ1OTM1MTYiPiJQSU4ta29vZGlkIGVpIG9sZSB2YXN0YXZ1c2VzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4iTGlpZ2EgcGFsanUgbXVzdHJpa2F0c2VpZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiJBdmFtaXNla3MgbG9naWdlIHNpc3NlIG9tYSBHb29nbGVcJ2kga29udG9nYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+Ikthc3V0YWphbmltaSAoZS1wb3N0KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4iUGFyb29sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiJMb2dpIHNpc3NlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjU3NTQ2NjQxMTkzMTk4NzIxOTciPiJWYWxlIGthc3V0YWphbmltaSB2w7VpIHBhcm9vbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4iS2FzIHVudXN0YXNpdGUga2FzdXRhamFuaW1lIHbDtWkgcGFyb29saT9cbkvDvGxhc3RhZ2UgYWFkcmVzc2kgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IktvbnRvIGtvbnRyb2xsaW1pbmUgLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiJPbGV0ZSBQSU4ta29vZGkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4ga29yZGEgdmFsZXN0aSBzaXNlc3RhbnVkLlxuXG5Qcm9vdmlnZSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBzZWt1bmRpIHDDpHJhc3QgdXVlc3RpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiJPbGV0ZSBwYXJvb2xpIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGtvcmRhIHZhbGVzdGkgc2lzZXN0YW51ZC4gXG5cblByb292aWdlIHV1ZXN0aSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBzZWt1bmRpIHDDpHJhc3QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+Ikpvb25pc3Rhc2l0ZSBvbWEgYXZhbWlzbXVzdHJpIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGtvcmRhIHZhbGVzdGkuXG5cblByb292aWdlIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHNla3VuZGkgcMOkcmFzdCB1dWVzdGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTc1NTU3MjAwNjI3MTI4OTQ5Ij4iT2xldGUgw7xyaXRhbnVkIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGtvcmRhIHRhaHZlbGFydnV0aXQgdmFsZXN0aSBhdmFkYS4gUMOkcmFzdCB2ZWVsIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGViYcO1bm5lc3R1bnVkIGthdHNldCBsw6RodGVzdGF0YWtzZSB0YWh2ZWxhcnZ1dGkgdGVoYXNlIHZhaWtlc2VhZGV0ZWxlIGphIGvDtWlrIGthc3V0YWphYW5kbWVkIGzDpGhldmFkIGthb3RzaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MDUxMDE1OTQzMDM4MTk5OTEwIj4iT2xldGUgw7xyaXRhbnVkIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGtvcmRhIHRlbGVmb25pIHZhbGVzdGkgYXZhZGEuIFDDpHJhc3QgdmVlbCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBlYmHDtW5uZXN0dW51ZCBrYXRzZXQgbMOkaHRlc3RhdGFrc2UgdGVsZWZvbiB0ZWhhc2UgdmFpa2VzZWFkZXRlbGUgamEga8O1aWsga2FzdXRhamFhbmRtZWQgbMOkaGV2YWQga2FvdHNpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDcyOTk2MjY5MTQ4NDgzNjM3Ij4iT2xldGUgcMO8w7xkbnVkIHRhaHZlbGFydnV0aXQgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGtvcmRhIHZhbGVzdGkgYXZhZGEuIFRhaHZlbGFydnV0aSBsw6RodGVzdGF0YWtzZSBuw7zDvGQgdGVoYXNlIHZhaWtlc2VhZGV0ZWxlLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDgxNzYyNzQ3NDQxOTQ3MTUxOCI+Ik9sZXRlIHDDvMO8ZG51ZCB0ZWxlZm9uaSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4ga29yZGEgdmFsZXN0aSBhdmFkYS4gVGVsZWZvbiBsw6RodGVzdGF0YWtzZSBuw7zDvGQgdGVoYXNlIHZhaWtlc2VhZGV0ZWxlLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMyNTM1NzU1NzIxMTg5MTQzNzAiPiJKb29uaXN0YXNpdGUgb21hIGF2YW1pc211c3RyaSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBrb3JkYSB2YWxlc3RpLiBQw6RyYXN0IHZlZWwgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gZWJhw7VubmVzdHVudWQga2F0c2V0IHBhbHV0YWtzZSB0ZWlsIHRhaHZlbGFydnV0aSBhdmFkYSBtZWlsaWtvbnRvZ2EuXG5cbiBQcm9vdmlnZSB1dWVzdGkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2VrdW5kaSBww6RyYXN0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iSm9vbmlzdGFzaXRlIG9tYSBhdmFtaXNtdXN0cmkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4ga29yZGEgdmFsZXN0aS4gUMOkcmFzdCB2ZWVsIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGViYcO1bm5lc3R1bnVkIGthdHNldCBwYWx1dGFrc2UgdGVpbCB0ZWxlZm9uIGF2YWRhIG1laWxpa29udG9nYS5cblxuIFByb292aWdlIHV1ZXN0aSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzZWt1bmRpIHDDpHJhc3QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4iRWVtYWxkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iVmFsZSBTSU0taSBQSU4ta29vZCwgc2VhZG1lIGF2YW1pc2VrcyBwZWF0ZSBuw7zDvGQgw7xoZW5kdXN0IHbDtXRtYSBvbWEgb3BlcmFhdG9yaWdhLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iVmFsZSBTSU0taSBQSU4ta29vZCwgdGVpbCBvbiBqw6TDpG51ZCB2ZWVsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBrYXRzZSwgZW5uZSBrdWkgcGVhdGUgc2VhZG1lIGF2YW1pc2VrcyBvcGVyYWF0b3JpZ2Egw7xoZW5kdXN0IHbDtXRtYS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJWYWxlIFNJTS1pIFBJTi1rb29kLCB0ZWlsIG9uIGrDpMOkbnVkIHZlZWwgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGthdHNldC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+IlNJTSBlaSBvbGUga2FzdXRhdGF2LiBWw7V0a2Ugw7xoZW5kdXN0IG9wZXJhYXRvcmlnYS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IlZhbGUgU0lNLWkgUFVLLWtvb2QsIHRlaWwgb24gasOkw6RudWQgdmVlbCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4ga2F0c2UsIGVubmUga3VpIFNJTSBww7xzaXZhbHQgbHVrdXN0YXRha3NlLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IlZhbGUgU0lNLWkgUFVLLWtvb2QsIHRlaWwgb24gasOkw6RudWQgdmVlbCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4ga2F0c2V0LCBlbm5lIGt1aSBTSU0gcMO8c2l2YWx0IGx1a3VzdGF0YWtzZS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IlNJTS1pIFBJTi1rb29kaSB0b2ltaW5nIGViYcO1bm5lc3R1cy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IlNJTS1pIFBVSy1rb29kaSB0b2ltaW5nIGViYcO1bm5lc3R1cy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iS29vZCBvbiDDtWlnZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiJOdXBwIEVlbG1pbmUgbHVndSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+Ik51cHAgSsOkcmdtaW5lIGx1Z3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4iTnVwcCBQZWF0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjkyNDYyODg2Mzc0MTE1MDk1NiI+Ik51cHAgRXNpdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjMwODQxNzkzMjQ4MTA1NzU3ODciPiJOdXBwIFBlYXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2Fycmllcl9kZWZhdWx0IiBtc2dpZD0iODcwMDY1MDQwMzA1NDA0MjE1MyI+IlRlZW51cyBwdXVkdWIuIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWZhL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1mYS9zdHJpbmdzLnhtbAppbmRleCA4M2M1YTM0Li5iNGE0YzYxIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWZhL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtZmEvc3RyaW5ncy54bWwKQEAgLTIxLDE1ICsyMSwxNSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4i2b7bjNmGINqp2K8g2LHYpyDZiNin2LHYryDaqdmG24zYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IlBVSyDZiCDZvtuM2YYg2qnYryDYrNiv24zYryDYsdinINiq2KfbjNm+INqp2YbbjNivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiLaqdivIFBVSyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4i2b7bjNmGINqp2K8g2KzYr9uM2K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiLigI9QVUsg2LPbjNmFINqp2KfYsdiqINmIINqp2K8g2b7bjNmGINis2K/bjNivINix2Kcg2KrYp9uM2b4g2qnZhtuM2K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IuKAj9qp2K8gUFVLINiz24zZhSDaqdin2LHYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4i2qnYryDZvtuM2YYg2KzYr9uM2K8g2LPbjNmFINqp2KfYsdiqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4i2KjYsdin24wg2KrYp9uM2b4g2q/YsNix2YjYp9qY2Ycg2YTZhdizINqp2YbbjNivIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4i2KjYsdin24wg2KjYp9iy2qnYsdiv2YYg2YLZgdmE2Iwg2q/YsNix2YjYp9qY2Ycg2LHYpyDZiNin2LHYryDaqdmG24zYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+Itio2LHYp9uMINio2KfYstqp2LHYr9mGINmC2YHZhNiMINm+24zZhiDYsdinINiq2KfbjNm+INqp2YbbjNivIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIyNDIyMjI1NTkxMDA2MTM0OTM2Ij4i2b7bjNmGINqp2K8g2KfYtNiq2KjYp9mHINin2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4i2KjYsdin24wg2KjYp9iy2q/YtNin24zbjCDZgtmB2YTYjCDZhdmG2Ygg2LHYpyDZgdi02KfYsSDYr9mH24zYryDZiCDYs9m+2LMgMCDYsdinINmB2LTYp9ixINiv2YfbjNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLYr9mB2LnYp9iqINiq2YTYp9i0INio2LHYp9uMIEZhY2UgVW5sb2NrINin2LIg2K3Yr9in2qnYq9ixINmF2KzYp9iyINio24zYtNiq2LEg2LTYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLigI/Yr9mB2LnYp9iqINiq2YTYp9i0INio2LHYp9uMIEZhY2UgVW5sb2NrINin2LIg2K3Yr9in2qnYq9ixINmF2KzYp9iyINio24zYtNiq2LEg2LTYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NoYXJnZWQiIG1zZ2lkPSIzMjcyMjIzOTA2MDczNDkyNDU0Ij4i2LTYp9ix2pgg2LTYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3BsdWdnZWRfaW4iIG1zZ2lkPSI4MTE3NTcyMDAwNjM5OTk4Mzg4Ij4i2LTYp9ix2pjYjCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbG93X2JhdHRlcnkiIG1zZ2lkPSI4MTQzODA4MDE4NzE5MTczODU5Ij4i2LTYp9ix2pjYsSDYrtmI2K8g2LHYpyDZiNi12YQg2qnZhtuM2K8uIjwvc3RyaW5nPgpAQCAtNDEsMTEgKzQxLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1MjEwODkxNTA5OTk1OTQyMjUwIj4i2LPbjNmFINqp2KfYsdiqINix2Kcg2YjYp9ix2K8g2qnZhtuM2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zX2xvbmciIG1zZ2lkPSI1OTY4OTg1NDg5NDYzODcwMzU4Ij4i2LPbjNmFINqp2KfYsdiqINmF2YjYrNmI2K8g2YbbjNiz2Kog24zYpyDZgtin2KjZhCDYrtmI2KfZhtiv2YYg2YbbjNiz2KouINuM2qkg2LPbjNmFINqp2KfYsdiqINmI2KfYsdivINqp2YbbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjgzNDA4MTM5ODk1ODY2MjIzNTYiPiLYs9uM2YUg2qnYp9ix2Kog2LrbjNix2YLYp9io2YQg2KfYs9iq2YHYp9iv2Ycg2KfYs9iqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTg5Mjk0MDkwOTY5OTcyMzU0NCI+Itiz24zZhSDaqdin2LHYqiDYtNmF2Kcg2KjZhyDYt9mI2LEg2K/Yp9im2YUg2LrbjNixINmB2LnYp9mEINi02K/ZhyDYp9iz2KouIFxu2KjYsdin24wg2K/Yp9i02KrZhiDYs9uM2YUg2qnYp9ix2Kog2K/bjNqv2LEg2KjYpyDYp9ix2KfYptmH4oCO2K/Zh9mG2K/ZhyDYs9ix2YjbjNizINio24zigI7Ys9uM2YUg2K7ZiNivINiq2YXYp9izINio2q/bjNix24zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU4OTI5NDA5MDk2OTk3MjM1NDQiPiLigI/Ys9uM2YUg2qnYp9ix2Kog2LTZhdinINio2Ycg2LfZiNixINiv2KfYptmFINi624zYsSDZgdi52KfZhCDYtNiv2Ycg2KfYs9iqLiBcbtio2LHYp9uMINiv2KfYtNiq2YYg2LPbjNmFINqp2KfYsdiqINiv24zar9ixINio2Kcg2KfYsdin2KbZh+KAjtiv2YfZhtiv2Ycg2LPYsdmI24zYsyDYqNuM4oCO2LPbjNmFINiu2YjYryDYqtmF2KfYsyDYqNqv24zYsduM2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+Itiz24zZhSDaqdin2LHYqiDZgtmB2YQg2LTYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMzc0NzIzMjQ2NzQ3MTgwMTYzMyI+Itiz24zZhSDaqdin2LHYqiDYqNinIFBVSyDZgtmB2YQg2LTYr9mHINin2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMzc0NzIzMjQ2NzQ3MTgwMTYzMyI+IuKAj9iz24zZhSDaqdin2LHYqiDYqNinIFBVSyDZgtmB2YQg2LTYr9mHINin2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzk3NTIyMTgwNTAzMzYxNDQyNiI+Itiv2LHYrdin2YQg2KjYp9iy2q/YtNin24zbjCDZgtmB2YQg2LPbjNmFINqp2KfYsdiqLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiIlMSRzLiDYp9io2LLYp9ix2qkgJTIkZCDYp9iyICUzJGQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiLigI8lMSRzLiDYp9io2LLYp9ix2qkgJTIkZCDYp9iyICUzJGQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9hZGRfd2lkZ2V0IiBtc2dpZD0iODI3MzI3NzA1ODcyNDkyNDY1NCI+Itin2KjYstin2LHaqSDYp9i22KfZgdmHINqp2YbbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i2K7Yp9mE24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2V4cGFuZGVkIiBtc2dpZD0iMjI3ODEwNjAyMjMxMTE3MDI5OSI+ItmF2YbYt9mC2Ycg2KjYp9iy2q/YtNin24zbjCDar9iz2KrYsdiv2Ycg2LTYry4iPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4i2K/aqdmF2Ycg2KrZiNmC2YEg2YXZiNmC2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+Itiv2qnZhdmHINm+2K7YtCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4i2K/aqdmF2Ycg2KrZiNmC2YEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4i2LHYo9uMINmF2YjYp9mB2YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiLYsdij24wg2YXYrtin2YTZgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+ItmC2YTYqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+Itio2LHYp9uMINin2K/Yp9mF2Ycg2YLZgdmEINix2Kcg2KjYp9iyINqp2YbbjNivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4i2LHYp9mH4oCM2KfZhtiv2KfYstuMINmE2LrZiCDYtNivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+Itis2YfYqiDYrdiw2YHYjCA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDYsdinINio2qnYtNuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+INm+2KfaqSDZhtiu2YjYp9mH2K8g2LTYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSwxOCArMTEyLDE3IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i2b7bjNmGINqp2K8g2K/ZhNiu2YjYp9mHINix2Kcg2YjYp9ix2K8g2qnZhtuM2K8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4i2KrYo9uM24zYryDZvtuM2YYg2qnYryDYr9mE2K7ZiNin2YciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+Itio2KfYstqv2LTYp9uM24wg2YLZgdmEINiz24zZhSDaqdin2LHYqi4uLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+Itm+24zZhiDaqdivINin2LTYqtio2KfZhyDYp9iz2KouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4i24zaqSDZvtuM2YYg27Qg2KrYpyDbuCDYsdmC2YXbjCDYsdinINiq2KfbjNm+INqp2YbbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+Itm+24zZhiDaqdivINio2KfbjNivINu4INi52K/YryDbjNinINio24zYtNiq2LEg2KjYp9i02K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i2b7bjNmGINqp2K8g2LXYrduM2K0g2LHYpyDYr9mI2KjYp9ix2Ycg2YjYp9ix2K8g2qnZhtuM2K8uINiq2YTYp9i04oCM2YfYp9uMINmF2qnYsdixINio2YfigIzYt9mI2LEg2K/Yp9im2YUg2LPbjNmFINqp2KfYsdiqINix2Kcg2LrbjNix2YHYudin2YQg2K7ZiNin2YfYryDaqdix2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9jb25maXJtX3Bpbl9oaW50IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzAwMzQ2OTI2MTQ2NDU5MzUxNiI+Itm+24zZhiDaqdiv2YfYpyDZhdmG2LfYqNmCINmG24zYs9iq2YbYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+Itiq2YTYp9i04oCO2YfYp9uMINiy24zYp9iv24wg2KjYsdin24wg2qnYtNuM2K/ZhiDYp9mE2q/ZiCDYtdmI2LHYqiDar9ix2YHYqtmHINin2LPYqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLYqNix2KfbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhNiMINio2Kcg2K3Ys9in2KggR29vZ2xlINiu2YjYryDZiNin2LHYryDYs9uM2LPYqtmFINi02YjbjNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+IuKAj9iq2YTYp9i04oCO2YfYp9uMINiy24zYp9iv24wg2KjYsdin24wg2qnYtNuM2K/ZhiDYp9mE2q/ZiCDYtdmI2LHYqiDar9ix2YHYqtmHINin2LPYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLigI/YqNix2KfbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhNiMINio2Kcg2K3Ys9in2KggR29vZ2xlINiu2YjYryDZiNin2LHYryDYs9uM2LPYqtmFINi02YjbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4i2YbYp9mFINqp2KfYsdio2LHbjCAo2KfbjNmF24zZhCkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iOTA1NzI4OTEwMzgyNzI5ODU0OSI+Itqv2LDYsdmI2KfamNmHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiLZiNix2YjYryDYqNmHINiz24zYs9iq2YUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+ItmG2KfZhSDaqdin2LHYqNix24wg24zYpyDar9iw2LHZiNin2pjZhyDZhtin2YXYudiq2KjYsS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i2YbYp9mFINqp2KfYsdio2LHbjCDbjNinINqv2LDYsdmI2KfamNmHINiu2YjYryDYsdinINmB2LHYp9mF2YjYtCDaqdix2K/bjNiv2J9cbtin2LIgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iINio2KfYstiv24zYryDaqdmG24zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i4oCP2YbYp9mFINqp2KfYsdio2LHbjCDbjNinINqv2LDYsdmI2KfamNmHINiu2YjYryDYsdinINmB2LHYp9mF2YjYtCDaqdix2K/bjNiv2J9cbtin2LIgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iINio2KfYstiv24zYryDaqdmG24zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjEwNTI2ODUxOTc3MTAyNTIzOTUiPiLYr9ix2K3Yp9mEINio2LHYsdiz24wg2K3Ys9in2KguLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODI3Njc0NTY0MjA0OTUwMjU1MCI+Itm+24zZhiDYrtmI2K8g2LHYpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfYtNiq2KjYp9mHINiq2KfbjNm+INqp2LHYr9uM2K8uIFxuXG7ZvtizINin2LIgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g2KvYp9mG24zZhyDYr9mI2KjYp9ix2Ycg2KfZhdiq2K3Yp9mGINqp2YbbjNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiLar9iw2LHZiNin2pjZhyDYrtmI2K8g2LHYpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfYtNiq2KjYp9mHINiq2KfbjNm+INqp2LHYr9uM2K8uIFxuXG7ZvtizINin2LIgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g2KvYp9mG24zZhyDYr9mI2KjYp9ix2Ycg2KfZhdiq2K3Yp9mGINqp2YbbjNivLiI8L3N0cmluZz4KQEAgLTEyNSwxMCArMTMxLDIzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MDUxMDE1OTQzMDM4MTk5OTEwIj4i2LTZhdinINio2Ycg2KfYtNiq2KjYp9mHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INio2KfYsSDYp9mC2K/Yp9mFINio2Ycg2KjYp9iyINqp2LHYr9mGINmC2YHZhCDYqtmE2YHZhiDaqdix2K/Zh+KAjNin24zYry4g2b7YsyDYp9iyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INiq2YTYp9i0INmG2KfZhdmI2YHZgiDYr9uM2q/YsdiMINiq2YTZgdmGINio2Ycg2b7bjNi04oCM2YHYsdi2INqp2KfYsdiu2KfZhtmHINio2KfYstmG2LTYp9mG24wg2YXbjOKAjNi02YjYryDZiCDYqtmF2KfZhSDYr9in2K/Zh+KAjNmH2KfbjCDaqdin2LHYqNixINin2LIg2K/Ys9iqINiu2YjYp9mH2K8g2LHZgdiqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDcyOTk2MjY5MTQ4NDgzNjM3Ij4i2LTZhdinINio2Ycg2KfYtNiq2KjYp9mHIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfZgtiv2KfZhSDYqNmHINio2KfYsiDaqdix2K/ZhiDZgtmB2YQg2LHYp9uM2KfZhtmHINmE2YjYrduMINqp2LHYr9mH4oCM2KfbjNivLiDYsdin24zYp9mG2Ycg2YTZiNit24wg2KfaqdmG2YjZhiDYqNmHINm+24zYtOKAjNmB2LHYtiDaqdin2LHYrtin2YbZhyDYqNin2LLZhti02KfZhtuMINmF24zigIzYtNmI2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4i2LTZhdinINio2Ycg2KfYtNiq2KjYp9mHIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfZgtiv2KfZhSDYqNmHINio2KfYsiDaqdix2K/ZhiDZgtmB2YQg2KrZhNmB2YYg2qnYsdiv2YfigIzYp9uM2K8uINin24zZhiDYqtmE2YHZhiDYp9qp2YbZiNmGINio2Ycg2b7bjNi04oCM2YHYsdi2INqp2KfYsdiu2KfZhtmHINio2KfYstmG2LTYp9mG24wg2YXbjOKAjNi02YjYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4i2LTZhdinINin2YTar9mI24wg2KjYp9iy2q/YtNin24zbjCDZgtmB2YQg2K7ZiNivINix2KcgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2KjYp9ixINin2LTYqtio2KfZhyDaqdi024zYr9mH4oCO2KfbjNivLiDYqNi52K8g2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYqtmE2KfYtCDZhtin2YXZiNmB2YLYjCDYp9iyINi02YXYpyDYrtmI2KfYs9iq2Ycg2YXbjOKAjti02YjYryDaqdmHINio2Kcg2KfYs9iq2YHYp9iv2Ycg2KfYsiDbjNqpINit2LPYp9ioINin24zZhduM2YQg2YLZgdmEINix2KfbjNin2YbZhyDZhNmI2K3bjCDYrtmI2K8g2LHYpyDYqNin2LIg2qnZhtuM2K8uXG5cbiDZhNi32YHYp9mLINm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDYq9in2YbbjNmHINiv2YjYqNin2LHZhyDYp9mF2KrYrdin2YYg2qnZhtuM2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLYtNmF2Kcg2KfZhNqv2YjbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhCDYrtmI2K8g2LHYpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfYtNiq2KjYp9mHINqp2LTbjNiv2YfigIzYp9uM2K8uINm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYqtmE2KfYtCDZhtin2YXZiNmB2YLYjCDYp9iyINi02YXYpyDYrtmI2KfYs9iq2Ycg2YXbjOKAjti02YjYryDaqdmHINio2Kcg2KfYs9iq2YHYp9iv2Ycg2KfYsiDbjNqpINit2LPYp9ioINin24zZhduM2YQg2YLZgdmEINiq2YTZgdmGINiu2YjYryDYsdinINio2KfYsiDaqdmG24zYry5cblxuINmE2LfZgdin2Ysg2b7YsyDYp9iyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INir2KfZhtuM2Ycg2K/ZiNio2KfYsdmHINin2YXYqtit2KfZhiDaqdmG24zYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4i4oCP2LTZhdinINin2YTar9mI24wg2KjYp9iy2q/YtNin24zbjCDZgtmB2YQg2K7ZiNivINix2KcgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g2KjYp9ixINin2LTYqtio2KfZhyDaqdi024zYr9mH4oCO2KfbjNivLiDYqNi52K8g2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYqtmE2KfYtCDZhtin2YXZiNmB2YLYjCDYp9iyINi02YXYpyDYrtmI2KfYs9iq2Ycg2YXbjOKAjti02YjYryDaqdmHINio2Kcg2KfYs9iq2YHYp9iv2Ycg2KfYsiDbjNqpINit2LPYp9ioINin24zZhduM2YQg2YLZgdmEINix2KfbjNin2YbZhyDZhNmI2K3bjCDYrtmI2K8g2LHYpyDYqNin2LIg2qnZhtuM2K8uXG5cbiDZhNi32YHYp9mLINm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDYq9in2YbbjNmHINiv2YjYqNin2LHZhyDYp9mF2KrYrdin2YYg2qnZhtuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLigI/YtNmF2Kcg2KfZhNqv2YjbjCDYqNin2LLar9i02KfbjNuMINmC2YHZhCDYrtmI2K8g2LHYpyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDYqNin2LEg2KfYtNiq2KjYp9mHINqp2LTbjNiv2YfigIzYp9uM2K8uINm+2LMg2KfYsiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDYqtmE2KfYtCDZhtin2YXZiNmB2YLYjCDYp9iyINi02YXYpyDYrtmI2KfYs9iq2Ycg2YXbjOKAjti02YjYryDaqdmHINio2Kcg2KfYs9iq2YHYp9iv2Ycg2KfYsiDbjNqpINit2LPYp9ioINin24zZhduM2YQg2YLZgdmEINiq2YTZgdmGINiu2YjYryDYsdinINio2KfYsiDaqdmG24zYry5cblxuINmE2LfZgdin2Ysg2b7YsyDYp9iyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INir2KfZhtuM2Ycg2K/ZiNio2KfYsdmHINin2YXYqtit2KfZhiDaqdmG24zYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLYrdiw2YEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+Itqp2K8g2b7bjNmGINiz24zZhSDaqdin2LHYqiDYp9i02KrYqNin2Ycg2KfYs9iq2Iwg2KfaqdmG2YjZhiDYqNix2KfbjCDar9i02YjYr9mGINmC2YHZhCDYr9iz2Krar9in2YfYqtin2YYg2KjYp9uM2K8g2KjYpyDYtNix2qnYqiDZhdiu2KfYqNix2KfYqtuMINiq2YXYp9izINio2q/bjNix24zYry4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+Itqp2K8g2b7bjNmGINiz24zZhSDaqdin2LHYqiDYp9i02KrYqNin2Ycg2KfYs9iq2IwgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INio2KfYsSDYr9uM2q/YsSDZhduM4oCM2KrZiNin2YbbjNivINiq2YTYp9i0INqp2YbbjNivINmIINm+2LMg2KfYsiDYotmGINio2LHYp9uMINqv2LTZiNiv2YYg2YLZgdmEINiv2LPYqtqv2KfZh9iq2KfZhiDYqNin24zYryDYqNinINi02LHaqdiqINmF2K7Yp9io2LHYp9iq24wg2KrZhdin2LMg2Kjar9uM2LHbjNivLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+Itqp2K8g2b7bjNmGINiz24zZhSDaqdin2LHYqiDYp9i02KrYqNin2Ycg2KfYs9iq2IwgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INio2KfYsSDYr9uM2q/YsSDZhduM4oCM2KrZiNin2YbbjNivINiq2YTYp9i0INqp2YbbjNivLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4i2LPbjNmFINqp2KfYsdiqINi624zYsSDZgtin2KjZhCDYp9iz2KrZgdin2K/ZhyDYp9iz2KouINio2Kcg2LTYsdqp2Kog2YXYrtin2KjYsdin2KrbjOKAjNiq2KfZhiDYqtmF2KfYsyDYqNqv24zYsduM2K8uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiLigI/aqdivIFBVSyDYs9uM2YUg2qnYp9ix2Kog2KfYtNiq2KjYp9mHINin2LPYqtiMIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDYqNin2LEg2K/bjNqv2LEg2YXbjOKAjNiq2YjYp9mG24zYryDYqtmE2KfYtCDaqdmG24zYryDZiCDZvtizINin2LIg2KLZhiDYs9uM2YUg2qnYp9ix2Kog2KjZhyDYtdmI2LHYqiDYr9in2KbZhSDYutuM2LEg2YLYp9io2YQg2KfYs9iq2YHYp9iv2Ycg2YXbjOKAjNi02YjYry4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiLigI/aqdivIFBVSyDYs9uM2YUg2qnYp9ix2Kog2KfYtNiq2KjYp9mHINin2LPYqtiMIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDYqNin2LEg2K/bjNqv2LEg2YXbjOKAjNiq2YjYp9mG24zYryDYqtmE2KfYtCDaqdmG24zYryDZiCDZvtizINin2LIg2KLZhiDYs9uM2YUg2qnYp9ix2Kog2KjZhyDYt9mI2LEg2K/Yp9im2YUg2LrbjNixINmC2KfYqNmEINin2LPYqtmB2KfYr9mHINmF24zigIzYtNmI2K8uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiLYudmF2YTbjNin2Kog2b7bjNmGINiz24zZhSDaqdin2LHYqiDZhtin2YXZiNmB2YIg2KjZiNivISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4i4oCP2LnZhdmE24zYp9iqIFBVSyDYs9uM2YUg2qnYp9ix2Kog2YbYp9mF2YjZgdmCINio2YjYryEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4i2qnYryDZvtiw24zYsdmB2KrZhyDYtNivISI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+Itiv2qnZhdmHINiq2LHYp9qpINmC2KjZhNuMIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4i2K/aqdmF2Ycg2KrYsdin2qkg2KjYudiv24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4i2K/aqdmF2Ycg2KrZiNmC2YEg2YXZiNmC2KoiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWZpL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1maS9zdHJpbmdzLnhtbAppbmRleCBkYmNhNTBkLi5lMDc5ZmZhIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWZpL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtZmkvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IkFubmEgUElOLWtvb2RpIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iQW5uYSBQVUsta29vZGkgamEgdXVzaSBQSU4ta29vZGkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IlBVSy1rb29kaSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iVXVzaSBQSU4ta29vZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiJBbm5hIFNJTS1rb3J0aW4gUFVLLWtvb2RpIGphIHV1c2kgUElOLWtvb2RpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJTSU0ta29ydGluIFBVSy1rb29kaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iVXVzaSBTSU0ta29ydGluIFBJTi1rb29kaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+Iktvc2tldGEgamEgYW5uYSBzYWxhc2FuYSI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IlBvaXN0YSBsdWtpdHVzIGFudGFtYWxsYSBzYWxhc2FuYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IlBvaXN0YSBsdWtpdHVzIGFudGFtYWxsYSBQSU4ta29vZGkiPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4iVGF1a28tcGFpbmlrZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iVG9pc3RhLXBhaW5pa2UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+Iktlc2tleXTDpC1wYWluaWtlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IlR5a2vDpMOkbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+IkVuIHR5a2vDpMOkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4iU3lkw6RuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4iSmF0a2EgcG9pc3RhbWFsbGEgbHVraXR1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IkvDpHlubmlzdHlzIHBlcnV1dGV0dHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4iUG9pc3RhIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHB1ZG90dGFtYWxsYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iS29oZGV0dGEgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gZWkgcG9pc3RldGEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC0xMDUsNyArMTEyLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiJBbm5hIGhhbHVhbWFzaSBQSU4ta29vZGkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4iVmFodmlzdGEgaGFsdWFtYXNpIFBJTi1rb29kaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iU0lNLWtvcnRpbiBsdWtpdHVzdGEgcG9pc3RldGFhbuKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IlZpcmhlZWxsaW5lbiBQSU4ta29vZGkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iQW5uYSA04oCTOC1udW1lcm9pbmVuIFBJTi1rb29kaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJQVUsta29vZGlzc2EgdHVsZWUgb2xsYSB2w6RoaW50w6TDpG4gOCBudW1lcm9hLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IkFubmEgdXVkZWxsZWVuIG9pa2VhIFBVSy1rb29kaS4gSm9zIHRlZXQgbGlpYW4gbW9udGEgeXJpdHlzdMOkLCBTSU0ta29ydHRpIHBvaXN0ZXRhYW4ga8OkeXTDtnN0w6QgcHlzeXbDpHN0aS4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IlBpaXJzaXQgbHVraXR1a3NlbnBvaXN0b2t1dmlvbiB2w6TDpHJpbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBrZXJ0YWEuIEpvcyBwaWlycsOkdCBrdXZpb24gdsOkw6RyaW4gdmllbMOkIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGtlcnRhYSwgc2ludWEgcHl5ZGV0w6TDpG4gcG9pc3RhbWFhbiBwdWhlbGltZXNpIGx1a2l0dXMgc8OkaGvDtnBvc3RpdGlsaW4gYXZ1bGxhLlxuXG4gWXJpdMOkIHV1ZGVsbGVlbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzZWt1bm5pbiBrdWx1dHR1YS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJMgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJQb2lzdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IlZpcmhlZWxsaW5lbiBTSU0ta29ydGluIFBJTi1rb29kaS4gU2ludW4gb24gbnl0IG90ZXR0YXZhIHlodGV5cyBvcGVyYWF0dG9yaWluIGxhaXR0ZWVuIGx1a2l0dWtzZW4gYXZhYW1pc2Vrc2kuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiJWaXJoZWVsbGluZW4gU0lNLWtvcnRpbiBQSU4ta29vZGkuIFNpbnVsbGEgb24gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHlyaXR5cyBqw6RsamVsbMOkLCBlbm5lbiBrdWluIHNpbnVuIG9uIG90ZXR0YXZhIHlodGV5cyBvcGVyYWF0dG9yaWluIGxhaXR0ZWVuIGx1a2l0dWtzZW4gYXZhYW1pc2Vrc2kuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4iVmlyaGVlbGxpbmVuIFNJTS1rb3J0aW4gUElOLWtvb2RpLiBTaW51bGxhIG9uIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiB5cml0eXN0w6QgasOkbGplbGzDpC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+IlNJTS1rb3J0dGkgb24ga8OkeXR0w7ZrZWx2b3Rvbi4gT3RhIHlodGV5cyBvcGVyYWF0dG9yaWluLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iVmlyaGVlbGxpbmVuIFNJTS1rb3J0aW4gUFVLLWtvb2RpLiBTaW51bGxhIG9uIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiB5cml0eXMgasOkbGplbGzDpCwgZW5uZW4ga3VpbiBTSU0ta29ydGlzdGEgdHVsZWUgcHlzeXbDpHN0aSBrw6R5dHTDtmtlbHZvdG9uLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IlZpcmhlZWxsaW5lbiBTSU0ta29ydGluIFBVSy1rb29kaS4gU2ludWxsYSBvbiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4geXJpdHlzdMOkIGrDpGxqZWxsw6QsIGVubmVuIGt1aW4gU0lNLWtvcnRpc3RhIHR1bGVlIHB5c3l2w6RzdGkga8OkeXR0w7ZrZWx2b3Rvbi4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IlNJTS1rb3J0aW4gUElOLXRvaW1pbnRvIGVww6Rvbm5pc3R1aSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IlNJTS1rb3J0aW4gUFVLLXRvaW1pbnRvIGVww6Rvbm5pc3R1aSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iS29vZGkgaHl2w6Rrc3l0dHkhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iRWRlbGxpbmVuIGthcHBhbGUgLXBhaW5pa2UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiJTZXVyYWF2YSBrYXBwYWxlIC1wYWluaWtlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IlRhdWtvLXBhaW5pa2UiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5ZjI3YWEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDE1NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJTYWlzaXNzZXogbGUgTklQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+IkVudHJleiBsZSBjb2RlwqBQVUsgZXQgbGUgbm91dmVhdSBOSVAgZGUgbGEgY2FydGUgU0lNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJDb2RlIFBVSyBkZSBsYSBjYXJ0ZSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+Ik5vdXZlYXUgTklQIGRlIGxhIGNhcnRlIFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IkFwcHV5ZXIgcG91ciBzYWlzaXIgbW90IHBhc3NlIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iU2Fpc2lzc2V6IGxlIG1vdCBkZSBwYXNzZSBwb3VyIGTDqXZlcnJvdWlsbGVyIGxlIGNsYXZpZXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iU2Fpc2lzc2V6IGxlIE5JUCBwb3VyIGTDqXZlcnJvdWlsbGVyIGxlIGNsYXZpZXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIyNDIyMjI1NTkxMDA2MTM0OTM2Ij4iTklQIGVycm9uw6kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+IlBvdXIgZMOpdmVycm91aWxsZXIgbGUgdMOpbMOpcGhvbmUsIGFwcHV5ZXogc3VyIFwiTWVudVwiLCBwdWlzIHN1ciAwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiJOb21icmUgbWF4aW1hbCBhdXRvcmlzw6kgZGUgdGVudGF0aXZlcyBGYWNlwqBVbmxvY2sgYXR0ZWludC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jaGFyZ2VkIiBtc2dpZD0iMzI3MjIyMzkwNjA3MzQ5MjQ1NCI+IkNoYXJnw6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wbHVnZ2VkX2luIiBtc2dpZD0iODExNzU3MjAwMDYzOTk5ODM4OCI+IkVuIGNoYXJnZSAoPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+wqA8eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xvd19iYXR0ZXJ5IiBtc2dpZD0iODE0MzgwODAxODcxOTE3Mzg1OSI+IkJyYW5jaGV6IHZvdHJlIGNoYXJnZXVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSIxMzMyMjg4MjY4NjAwMzI5ODQxIj4iQXBwdXlleiBzdXIgXCJNZW51XCIgcG91ciBkw6l2ZXJyb3VpbGxlciBsXCdhcHBhcmVpbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9uZXR3b3JrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iOTE2OTcxNzc3OTA1ODAzNzE2OCI+IlLDqXNlYXUgdmVycm91aWxsw6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNDk0OTgwNTYxMzA0MjExOTMxIj4iQXVjdW5lIGNhcnRlIFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE0NDU4NDkwMDU5MDkyNjAwMzkiPiJBdWN1bmUgY2FydGUgU0lNIG5cJ2VzdCBpbnPDqXLDqWUgZGFucyBsYSB0YWJsZXR0ZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ4MTExMDM5NTUwODYzNzY0MyI+IkF1Y3VuZSBjYXJ0ZSBTSU0gblwnZXN0IGluc8OpcsOpZSBkYW5zIGxlIHTDqWzDqXBob25lLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUyMTA4OTE1MDk5OTU5NDIyNTAiPiJJbnPDqXJleiB1bmUgY2FydGXCoFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjU5Njg5ODU0ODk0NjM4NzAzNTgiPiJDYXJ0ZcKgU0lNIGFic2VudGUgb3UgaWxsaXNpYmxlLiBWZXVpbGxleiBpbnPDqXJlciB1bmUgY2FydGXCoFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI4MzQwODEzOTg5NTg2NjIyMzU2Ij4iQ2FydGUgU0lNIGludXRpbGlzYWJsZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU4OTI5NDA5MDk2OTk3MjM1NDQiPiJWb3RyZSBjYXJ0ZcKgU0lNIGEgw6l0w6kgZMOpZmluaXRpdmVtZW50IGTDqXNhY3RpdsOpZS5cbiBWZXVpbGxleiBjb250YWN0ZXIgdm90cmUgb3DDqXJhdGV1ciBkZSB0w6lsw6lwaG9uaWUgbW9iaWxlIHBvdXIgZW4gb2J0ZW5pciB1bmUgYXV0cmUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+IkxhIGNhcnRlIFNJTSBlc3QgdmVycm91aWxsw6llLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9wdWtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSIzNzQ3MjMyNDY3NDcxODAxNjMzIj4iTGEgY2FydGUgU0lNIGVzdCB2ZXJyb3VpbGzDqWUgcGFyIGNsw6kgUFVLLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3OTc1MjIxODA1MDMzNjE0NDI2Ij4iRMOpdmVycm91aWxsYWdlIGRlIGxhIGNhcnRlIFNJTSBlbiBjb3Vyc+KApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4gV2lkZ2V0ICUyJGQgc3VyICUzJGQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9hZGRfd2lkZ2V0IiBtc2dpZD0iODI3MzI3NzA1ODcyNDkyNDY1NCI+IkFqb3V0ZXIgdW4gd2lkZ2V0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZW1wdHlfc2xvdCIgbXNnaWQ9IjEyODE1MDU3MDMzMDc5MzA3NTciPiJWaWRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiJEw6l2ZWxvcHBlbWVudCBkZSBsYSB6b25lIGRlIGTDqXZlcnJvdWlsbGFnZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfY29sbGFwc2VkIiBtc2dpZD0iNjM2Njk5MjA2NjkzNjA3NjM5NiI+IlLDqWR1Y3Rpb24gZGUgbGEgem9uZSBkZSBkw6l2ZXJyb3VpbGxhZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldCIgbXNnaWQ9IjY1MjcxMzEwMzk3NDE4MDgyNDAiPiJXaWRnZXQgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VzZXJfc2VsZWN0b3IiIG1zZ2lkPSIxMjI2Nzk4MzcwOTEzNjk4ODk2Ij4iU8OpbGVjdGV1ciBkXCd1dGlsaXNhdGV1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc3RhdHVzIiBtc2dpZD0iODAwODI2NDYwMzkzNTkzMDYxMSI+IsOJdGF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4iQ2Ftw6lyYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWdhdXJkX2FjY2Vzc2liaWxpdHlfbWVkaWFfY29udHJvbHMiIG1zZ2lkPSIyNjIyMDk2NTQyOTIxNjE4MDYiPiJDb21tYW5kZXMgbXVsdGltw6lkaWFzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9zdGFydCIgbXNnaWQ9Ijg3MzY4NTM2MTU1ODg4MjgxOTciPiJEw6lidXQgZGUgbGEgcsOpb3JnYW5pc2F0aW9uIGRlcyB3aWRnZXRzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9lbmQiIG1zZ2lkPSI3MTcwMTkwOTUwODcwNDY4MzIwIj4iRmluIGRlIGxhIHLDqW9yZ2FuaXNhdGlvbiBkZXMgd2lkZ2V0cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4iTGUgd2lkZ2V0IDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IGEgw6l0w6kgc3VwcHJpbcOpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZXhwYW5kX2xvY2tfYXJlYSIgbXNnaWQ9IjUxOTg1OTcyMDkzNDE3ODAyNCI+IkTDqXZlbG9wcGVyIGxhIHpvbmUgZGUgZMOpdmVycm91aWxsYWdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV91bmxvY2siIG1zZ2lkPSIyOTU5OTI4NDc4NzY0Njk3MjU0Ij4iRMOpdmVycm91aWxsYWdlIGVuIGZhaXNhbnQgZ2xpc3NlciB2b3RyZSBkb2lndCBzdXIgbFwnw6ljcmFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiJEw6l2ZXJyb3VpbGxhZ2UgcGFyIHNjaMOpbWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+IkTDqXZlcnJvdWlsbGFnZSBwYXIgcmVjb25uYWlzc2FuY2UgZmFjaWFsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiJEw6l2ZXJyb3VpbGxhZ2UgcGFyIE5JUCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGFzc3dvcmRfdW5sb2NrIiBtc2dpZD0iNzY3NTc3NzYyMzkxMjE1NTA4OSI+IkTDqXZlcnJvdWlsbGFnZSBwYXIgbW90IGRlIHBhc3NlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4iWm9uZSBkdSBzY2jDqW1hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV9hcmVhIiBtc2dpZD0iNjczNjA2NDQ5NDAxOTk3OTU0NCI+IlpvbmUgb8O5IGZhaXJlIGdsaXNzZXIgdm90cmUgZG9pZ3Qgc3VyIGxcJ8OpY3JhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSIxMzM3Mjg2NTM4MzE4NTQzNTU1Ij4iQm91dG9uIHBvdXIgcmV2ZW5pciBhdSB0aXRyZSBwcsOpY8OpZGVudCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI3MDczOTI4MzAwNDQ0OTA5MzIwIj4iQm91dG9uIHBvdXIgYXR0ZWluZHJlIGxlIHRpdHJlIHN1aXZhbnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiJCb3V0b24gZGUgcGF1c2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+IkJvdXRvbiBkZSBsZWN0dXJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJCb3V0b24gZFwnYXJyw6p0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IkpcJ2FpbWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiJKZSBuXCdhaW1lIHBhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IkPFk3VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4iRMOpdmVycm91aWxsZXIgcG91ciBjb250aW51ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJMYW5jZW1lbnQgYW5udWzDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJEw6lwb3NleiA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiBwb3VyIHN1cHByaW1lci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gbmUgc2VyYSBwYXMgc3VwcHJpbcOpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfYWx0IiBtc2dpZD0iNDg1Njg2ODgyMDA0MDA1MTkzOSI+IkFsdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2NhbmNlbCIgbXNnaWQ9IjEyMDM5ODQwMTcyNDU3ODMyNDQiPiJBbm51bGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZGVsZXRlIiBtc2dpZD0iMzMzNzkxNDgzMzIwNjYzNTc0NCI+IlN1cHByaW1lciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RvbmUiIG1zZ2lkPSIxOTkyNTcxMTE4NDY2Njc5Nzc1Ij4iVGVybWluw6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9tb2RlX2NoYW5nZSIgbXNnaWQ9IjQ1NDczODc3NDE5MDY1Mzc1MTkiPiJDaGFuZ2VtZW50IGRlIG1vZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJNYWoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRyw6llIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9jayIgbXNnaWQ9IjIyMjg1MjQ5MDA0Mzk4MDE0NTMiPiJEw6l2ZXJyb3VpbGxlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9jYW1lcmEiIG1zZ2lkPSI5NjkwNzE5OTc1NTI0ODY4MTQiPiJBcHBhcmVpbCBwaG90byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zaWxlbnQiIG1zZ2lkPSI4OTM1NTEyODc3NDY1MjIxODIiPiJNb2RlIHNpbGVuY2lldXgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4iU29uIGFjdGl2w6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2VhcmNoIiBtc2dpZD0iMzA5MTU4NzI0OTc3NjAzMzEzOSI+IlJlY2hlcmNoZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl91cCIgbXNnaWQ9IjcxNjkwMzI0NzgyNTk0ODUxODAiPiJGYWlyZSBnbGlzc2VyIGxlIGRvaWd0IHZlcnMgbGUgaGF1dMKgOiA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fZG93biIgbXNnaWQ9IjUwODc3Mzk3Mjg2MzkwMTQ1OTUiPiJGYWlyZSBnbGlzc2VyIGxlIGRvaWd0IHZlcnMgbGUgYmFzwqA6IDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9sZWZ0IiBtc2dpZD0iNzIwNzQ3ODcxOTgwNTU2MjE2NSI+IkZhaXRlcyBnbGlzc2VyIHZvdHJlIGRvaWd0IHZlcnMgbGEgZ2F1Y2hlwqBwb3VyIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fcmlnaHQiIG1zZ2lkPSI4MDM0NDMzMjQyNTc5NjAwOTgwIj4iRmFpdGVzIGdsaXNzZXIgdm90cmUgZG9pZ3QgdmVycyBsYSBkcm9pdGUgcG91ciA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlcl9zd2l0Y2hlZCIgbXNnaWQ9IjM3NjgwMDY3ODMxNjY5ODQ0MTAiPiJVdGlsaXNhdGV1ciBhY3R1ZWzCoDogPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW1lcmdlbmN5X2NhbGxfbGFiZWwiIG1zZ2lkPSI2ODQ5NDYxOTI1MjM4MzA1MzEiPiJBcHBlbCBkXCd1cmdlbmNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSI4ODUyMDIxNDY3ODY4MjIwNjA4Ij4iSlwnYWkgb3VibGnDqSBsZSBzY2jDqW1hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiJTY2jDqW1hIGluY29ycmVjdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiJNb3QgZGUgcGFzc2UgaW5jb3JyZWN0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiJOSVAgaW5jb3JyZWN0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MzU4MTEwMjIxNjAzMjk3NTQ4Ij4iUsOpZXNzYXlleiBkYW5zIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBzZWNvbmRlcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5ODk3ODYxMTY4MzA3NTg2OCI+IkRlc3NpbmV6IHZvdHJlIHNjaMOpbWEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4iU2Fpc2lzc2V6IGxlIE5JUCBkZSBsYSBjYXJ0ZSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IlNhaXNpc3NleiBsZSBOSVAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+IlNhaXNpc3NleiB2b3RyZSBtb3QgZGUgcGFzc2UuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4iTGEgY2FydGUgU0lNIGVzdCBtYWludGVuYW50IGTDqXNhY3RpdsOpZS4gU2Fpc2lzc2V6IGxlIGNvZGUgUFVLIHBvdXIgY29udGludWVyLiBDb250YWN0ZXogdm90cmUgb3DDqXJhdGV1ciBwb3VyIGVuIHNhdm9pciBwbHVzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiJTYWlzaXIgbGUgTklQIHNvdWhhaXTDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiJDb25maXJtZXIgbGUgTklQIHNvdWhhaXTDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iRMOpYmxvY2FnZSBkZSBsYSBjYXJ0ZSBTSU0gZW4gY291cnPigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiJTYWlzaXNzZXogdW4gTklQIGNvbXByZW5hbnQgZW50cmUgcXVhdHJlIGV0IGh1aXTCoGNoaWZmcmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iTGUgY29kZSBQVUsgZG9pdCBjb250ZW5pciBhdSBtb2lucyA4wqBjaGlmZnJlcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiJWZXVpbGxleiBzYWlzaXIgZGUgbm91dmVhdSBsZSBjb2RlIFBVSyBjb3JyZWN0LiBEZXMgdGVudGF0aXZlcyByw6lww6l0w6llcyBkw6lzYWN0aXZlbnQgZMOpZmluaXRpdmVtZW50IGxhIGNhcnRlIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4iTGVzIGNvZGVzIFBJTiBuZSBjb3JyZXNwb25kZW50IHBhcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjY0ODY4NDIwOTQwMDU2OTg0NzUiPiJUcm9wIGRlIHRlbnRhdGl2ZXMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMTEwMDU1MTI2MTI2NTUwNjQ0OCI+IlBvdXIgZMOpdmVycm91aWxsZXIgbFwnYXBwYXJlaWwsIGNvbm5lY3Rlei12b3VzIGF2ZWMgdm90cmUgY29tcHRlIEdvb2dsZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+Ik5vbSBkXCd1dGlsaXNhdGV1ciAoY291cnJpZWwpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjkwNTcyODkxMDM4MjcyOTg1NDkiPiJNb3QgZGUgcGFzc2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNTM1NTkwNDU4MjY3NDA1NDcwMiI+IkNvbm5leGlvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4iTm9tIGRcJ3V0aWxpc2F0ZXVyIG91IG1vdCBkZSBwYXNzZSBub24gdmFsaWRlLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2FjY291bnRfcmVjb3ZlcnlfaGludCIgbXNnaWQ9IjU2OTA3MDkxMzI4NDE3NTI5NzQiPiJWb3VzIGF2ZXogb3VibGnDqSB2b3RyZSBub20gZFwndXRpbGlzYXRldXIgb3Ugdm90cmUgbW90IGRlIHBhc3NlP1xuUmVuZGV6LXZvdXMgc3VyIGxhIHBhZ2UgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IlbDqXJpZmljYXRpb24gZHUgY29tcHRlIGVuIGNvdXJz4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiJWb3VzIGF2ZXogc2Fpc2kgdW4gTklQIGluY29ycmVjdCDDoCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPsKgcmVwcmlzZXMuIFxuXG5WZXVpbGxleiByw6llc3NheWVyIGRhbnMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz7CoHNlY29uZGVzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiJWb3VzIGF2ZXogc2Fpc2kgdW4gbW90IGRlIHBhc3NlIGluY29ycmVjdCDDoCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPsKgcmVwcmlzZXMuIFxuXG5WZXVpbGxleiByw6llc3NheWVyIGRhbnMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz7CoHNlY29uZGVzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXR0ZXJuX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzQwODk0NzU5NjUwNTA4MDUiPiJWb3VzIGF2ZXogZGVzc2luw6kgdW4gc2Now6ltYSBkZSBkw6l2ZXJyb3VpbGxhZ2UgaW5jb3JyZWN0IMOgIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+wqByZXByaXNlcy5cblxuVmV1aWxsZXogcsOpZXNzYXllciBkYW5zIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+wqBzZWNvbmRlcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1NzU1NTcyMDA2MjcxMjg5NDkiPiJWb3VzIGF2ZXogdGVudMOpIGRlIGTDqXZlcnJvdWlsbGVyIGxhIHRhYmxldHRlIGRlIGZhw6dvbiBpbmNvcnJlY3RlIMOgIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+wqByZXByaXNlcy4gU2kgdm91cyDDqWNob3VleiBlbmNvcmUgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz7CoGZvaXMsIHNhIGNvbmZpZ3VyYXRpb24gZFwndXNpbmUgc2VyYSByw6l0YWJsaWUsIGV0IHRvdXRlcyBsZXMgZG9ubsOpZXMgdXRpbGlzYXRldXIgc2Vyb250IHBlcmR1ZXMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDA1MTAxNTk0MzAzODE5OTkxMCI+IlZvdXMgYXZleiB0ZW50w6kgZGUgZMOpdmVycm91aWxsZXIgbGUgdMOpbMOpcGhvbmUgZGUgZmHDp29uIGluY29ycmVjdGUgw6AgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz7CoHJlcHJpc2VzLiBTaSB2b3VzIMOpY2hvdWV6IGVuY29yZSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPsKgZm9pcywgc2EgY29uZmlndXJhdGlvbiBkXCd1c2luZSBzZXJhIHLDqXRhYmxpZSwgZXQgdG91dGVzIGxlcyBkb25uw6llcyB1dGlsaXNhdGV1ciBzZXJvbnQgcGVyZHVlcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA3Mjk5NjI2OTE0ODQ4MzYzNyI+IlZvdXMgYXZleiB0ZW50w6kgZGUgZMOpdmVycm91aWxsZXIgbGEgdGFibGV0dGUgZGUgZmHDp29uIGluY29ycmVjdGUgw6AgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+wqByZXByaXNlcy4gU2EgY29uZmlndXJhdGlvbiBkXCd1c2luZSB2YSDDqnRyZSByw6l0YWJsaWUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4iVm91cyBhdmV6IHRlbnTDqSBkZSBkw6l2ZXJyb3VpbGxlciBsZSB0w6lsw6lwaG9uZSBkZSBmYcOnb24gaW5jb3JyZWN0ZSDDoCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz7CoHJlcHJpc2VzLiBTYSBjb25maWd1cmF0aW9uIGRcJ3VzaW5lIHZhIMOqdHJlIHLDqXRhYmxpZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4iVm91cyBhdmV6IGRlc3NpbsOpIHVuIHNjaMOpbWEgZGUgZMOpdmVycm91aWxsYWdlIGluY29ycmVjdCDDoCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPsKgcmVwcmlzZXMuIFNpIHZvdXMgw6ljaG91ZXogZW5jb3JlIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+wqBmb2lzLCB2b3VzIGRldnJleiBkw6l2ZXJyb3VpbGxlciB2b3RyZSB0YWJsZXR0ZSDDoCBsXCdhaWRlIGRcJ3VuIGNvbXB0ZSBkZSBtZXNzYWdlcmllIMOpbGVjdHJvbmlxdWUuXG5cbiBWZXVpbGxleiByw6llc3NheWVyIGRhbnMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz7CoHNlY29uZGVzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iVm91cyBhdmV6IGRlc3NpbsOpIHVuIHNjaMOpbWEgZGUgZMOpdmVycm91aWxsYWdlIGluY29ycmVjdCDDoCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPsKgcmVwcmlzZXMuIFNpIHZvdXMgw6ljaG91ZXogZW5jb3JlIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+wqBmb2lzLCB2b3VzIGRldnJleiBkw6l2ZXJyb3VpbGxlciB2b3RyZSB0w6lsw6lwaG9uZSDDoCBsXCdhaWRlIGRcJ3VuIGNvbXB0ZSBkZSBtZXNzYWdlcmllIMOpbGVjdHJvbmlxdWUuXG5cbiBWZXVpbGxleiByw6llc3NheWVyIGRhbnMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz7CoHNlY29uZGVzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IlN1cHByaW1lciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iTklQIGRlIGNhcnRlIFNJTSBpbmNvcnJlY3QuIFZvdXMgZGV2ZXogbWFpbnRlbmFudCBjb21tdW5pcXVlciBhdmVjIHZvdHJlIGZvdXJuaXNzZXVyIGRlIHNlcnZpY2VzIHBvdXIgZMOpdmVycm91aWxsZXIgdm90cmUgYXBwYXJlaWwuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiJOSVAgZGUgY2FydGUgU0lNIGluY29ycmVjdC4gSWwgdm91cyByZXN0ZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gdGVudGF0aXZlLiBBcHLDqHMgY2VsYSwgdm91cyBkZXZyZXogY29tbXVuaXF1ZXIgYXZlYyB2b3RyZSBmb3Vybmlzc2V1ciBkZSBzZXJ2aWNlcyBwb3VyIGTDqXZlcnJvdWlsbGVyIHZvdHJlIGFwcGFyZWlsLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+Ik5JUCBkZSBjYXJ0ZSBTSU0gaW5jb3JyZWN0LiBJbCB2b3VzIHJlc3RlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiB0ZW50YXRpdmUocykuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJMYSBjYXJ0ZSBTSU0gZXN0IGludXRpbGlzYWJsZS4gQ29tbXVuaXF1ZXogYXZlYyB2b3RyZSBmb3Vybmlzc2V1ciBkZSBzZXJ2aWNlcy4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IkNvZGUgUFVLIGRlIGxhIGNhcnRlIFNJTSBpbmNvcnJlY3QuIElsIHZvdXMgcmVzdGUgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHRlbnRhdGl2ZSBhdmFudCBxdWUgdm90cmUgY2FydGUgU0lNIGRldmllbm5lIGTDqWZpbml0aXZlbWVudCBpbnV0aWxpc2FibGUuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4iQ29kZSBQVUsgZGUgbGEgY2FydGUgU0lNIGluY29ycmVjdC4gSWwgdm91cyByZXN0ZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gdGVudGF0aXZlKHMpIGF2YW50IHF1ZSB2b3RyZSBjYXJ0ZSBTSU0gZGV2aWVubmUgZMOpZmluaXRpdmVtZW50IGludXRpbGlzYWJsZS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IkxlIGTDqXZlcnJvdWlsbGFnZSBwYXIgTklQIGRlIGxhIGNhcnRlIFNJTSBhIMOpY2hvdcOpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4iTGUgZMOpdmVycm91aWxsYWdlIGRlIGxhIGNhcnRlIFNJTSBwYXIgY29kZSBQVUsgYSDDqWNob3XDqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iQ29kZSBhY2NlcHTDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IkJvdXRvbiBwb3VyIHJldmVuaXIgYXUgdGl0cmUgcHLDqWPDqWRlbnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiJCb3V0b24gcG91ciBhdHRlaW5kcmUgbGUgdGl0cmUgc3VpdmFudCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiJCb3V0b24gZGUgcGF1c2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjI5MjQ2Mjg4NjM3NDExNTA5NTYiPiJCb3V0b24gZGUgbGVjdHVyZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMzA4NDE3OTMyNDgxMDU3NTc4NyI+IkJvdXRvbiBkXCdhcnLDqnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jYXJyaWVyX2RlZmF1bHQiIG1zZ2lkPSI4NzAwNjUwNDAzMDU0MDQyMTUzIj4iQXVjdW4gc2VydmljZSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1mci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtZnIvc3RyaW5ncy54bWwKaW5kZXggMjUwYTEzNi4uYjkxMGRkNCAxMDA2NDQKLS0tIGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1mci9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWZyL3N0cmluZ3MueG1sCkBAIC0yMSw5ICsyMSw5IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJTYWlzaXNzZXogbGUgY29kZcKgUElOLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IlNhaXNpc3NleiBsYSBjbMOpwqBQVUsgZXQgbGUgbm91dmVhdSBjb2RlwqBQSU4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJDb2RlIFBVSyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iTm91dmVhdSBjb2RlwqBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiJTYWlzaXNzZXogbGEgY2zDqSBQVUsgZXQgbGUgbm91dmVhdSBjb2RlIFBJTiBkZSBsYSBjYXJ0ZSBTSU0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJDbMOpIFBVSyBkZSBsYSBjYXJ0ZSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+Ik5vdXZlYXUgY29kZSBQSU4gZGUgbGEgY2FydGUgU0lNIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4iQXBwdXlleiBwb3VyIHNhaXNpciBtb3QgcGFzc2UiPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiJTYWlzaXNzZXogbGUgbW90IGRlIHBhc3NlIHBvdXIgZMOpdmVycm91aWxsZXIgbGUgY2xhdmllci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJTYWlzaXNzZXogbGUgY29kZcKgUElOIHBvdXIgZMOpdmVycm91aWxsZXIgbGUgY2xhdmllci4iPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4iQm91dG9uIGRlIHBhdXNlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJCb3V0b24gZGUgbGVjdHVyZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iQm91dG9uIGRcJ2FycsOqdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiJKXCdhaW1lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4iSmUgblwnYWltZSBwYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiJDxZN1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IkTDqXZlcnJvdWlsbGV6IGxcJ2FwcGFyZWlsIHBvdXIgY29udGludWVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IkxhbmNlbWVudCBhbm51bMOpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJSZWzDomNoZXogbGUgd2lkZ2V0IFwiPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz5cIiBwb3VyIGxlIHN1cHByaW1lci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iTGUgd2lkZ2V0IFwiPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz5cIiBuZSB2YSBwYXMgw6p0cmUgc3VwcHJpbcOpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgpAQCAtMTA1LDcgKzExMiw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4iU2Fpc2lyIGxlIGNvZGUgUElOIHNvdWhhaXTDqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiJDb25maXJtZXIgbGUgY29kZSBQSU4gc291aGFpdMOpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJEw6libG9jYWdlIGRlIGxhIGNhcnRlIFNJTSBlbiBjb3Vyc+KApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IkxlIGNvZGUgUElOIGVzdCBlcnJvbsOpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IlZldWlsbGV6IHNhaXNpciB1biBjb2RlIFBJTiBjb21wcmVuYW50IGVudHJlIHF1YXRyZSBldCBodWl0wqBjaGlmZnJlcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJMZSBjb2RlIFBVSyBkb2l0IGNvbnRlbmlyIGF1IG1vaW5zIDjCoGNoaWZmcmVzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IlZldWlsbGV6IHNhaXNpciBkZSBub3V2ZWF1IGxlIGNvZGUgUFVLIGNvcnJlY3QuIERlcyB0ZW50YXRpdmVzIHLDqXDDqXTDqWVzIGTDqXNhY3RpdmVudCBkw6lmaW5pdGl2ZW1lbnQgbGEgY2FydGUgU0lNLiI8L3N0cmluZz4KQEAgLTEyOSw2ICsxMzUsMTkgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iVm91cyBhdmV6IGRlc3NpbsOpIHVuIHNjaMOpbWEgZGUgZMOpdmVycm91aWxsYWdlIGluY29ycmVjdCDDoCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPsKgcmVwcmlzZXMuIFNpIHZvdXMgw6ljaG91ZXogZW5jb3JlIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+wqBmb2lzLCB2b3VzIGRldnJleiBkw6l2ZXJyb3VpbGxlciB2b3RyZSB0w6lsw6lwaG9uZSDDoCBsXCdhaWRlIGRcJ3VuIGNvbXB0ZSBkZSBtZXNzYWdlcmllIMOpbGVjdHJvbmlxdWUuXG5cbiBWZXVpbGxleiByw6llc3NheWVyIGRhbnMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz7CoHNlY29uZGVzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IlN1cHByaW1lciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iQ29kZSBQSU4gZGUgbGEgY2FydGUgU0lNIGluY29ycmVjdC4gVm91cyBkZXZleiBkw6lzb3JtYWlzIGNvbnRhY3RlciB2b3RyZSBvcMOpcmF0ZXVyIHBvdXIgZMOpdmVycm91aWxsZXIgdm90cmUgYXBwYXJlaWwuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiJDb2RlIFBJTiBkZSBsYSBjYXJ0ZSBTSU0gaW5jb3JyZWN0LiBJbCB2b3VzIHJlc3RlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPsKgdGVudGF0aXZlLiBBcHLDqHMgY2VsYSwgdm91cyBkZXZyZXogY29udGFjdGVyIHZvdHJlIG9ww6lyYXRldXIgcG91ciBkw6l2ZXJyb3VpbGxlciB2b3RyZSBhcHBhcmVpbC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJDb2RlIFBJTiBkZSBsYSBjYXJ0ZSBTSU0gaW5jb3JyZWN0LiBJbCB2b3VzIHJlc3RlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPsKgdGVudGF0aXZlcy4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+IkxhIGNhcnRlIFNJTSBlc3QgaW51dGlsaXNhYmxlLiBWZXVpbGxleiBjb250YWN0ZXIgdm90cmUgb3DDqXJhdGV1ci4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IkNsw6kgUFVLIGRlIGxhIGNhcnRlIFNJTSBpbmNvcnJlY3RlLiBJbCB2b3VzIHJlc3RlIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPsKgdGVudGF0aXZlIGF2YW50IHF1ZSB2b3RyZSBjYXJ0ZSBTSU0gbmUgZGV2aWVubmUgZMOpZmluaXRpdmVtZW50IGludXRpbGlzYWJsZS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiJDbMOpIFBVSyBkZSBsYSBjYXJ0ZSBTSU0gaW5jb3JyZWN0ZS4gSWwgdm91cyByZXN0ZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz7CoHRlbnRhdGl2ZXMgYXZhbnQgcXVlIHZvdHJlIGNhcnRlIFNJTSBuZSBkZXZpZW5uZSBkw6lmaW5pdGl2ZW1lbnQgaW51dGlsaXNhYmxlLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iw4ljaGVjIGR1IGTDqXZlcnJvdWlsbGFnZSDDoCBsXCdhaWRlIGR1IGNvZGUgUElOIGRlIGxhIGNhcnRlIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IsOJY2hlYyBkdSBkw6l2ZXJyb3VpbGxhZ2Ugw6AgbFwnYWlkZSBkZSBsYSBjbMOpIFBVSyBkZSBsYSBjYXJ0ZSBTSU0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+IkNvZGUgYWNjZXB0w6kuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iQm91dG9uIHBvdXIgcmV2ZW5pciBhdSB0aXRyZSBwcsOpY8OpZGVudCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IkJvdXRvbiBwb3VyIGF0dGVpbmRyZSBsZSB0aXRyZSBzdWl2YW50Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IkJvdXRvbiBkZSBwYXVzZSI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sCmluZGV4IDcxNGQ5ZmIuLjhjOTRlYjMgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1oaS9zdHJpbmdzLnhtbApAQCAtMjEsOSArMjEsOSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4i4KSq4KS/4KSoIOCkleCli+CkoSDgpLLgpL/gpJbgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiJQVUsg4KSU4KSwIOCkqOCkr+CkviDgpKrgpL/gpKgg4KSV4KWL4KShIOCksuCkv+CkluClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iUFVLIOCkleCli+CkoSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4i4KSo4KSv4KS+IOCkquCkv+CkqCDgpJXgpYvgpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiLgpLjgpL/gpK4gUFVLIOCklOCksCDgpKjgpK/gpL4gUElOIOCkleCli+CkoSDgpLLgpL/gpJbgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IuCkuOCkv+CkriBQVUsg4KSV4KWL4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiLgpKjgpK/gpL4g4KS44KS/4KSuIFBJTiDgpJXgpYvgpKEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiLgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSy4KS/4KSW4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KS44KWN4KSq4KSw4KWN4KS2IOCkleCksOClh+CkgiI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IuCkheCkqOCksuClieCklSDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSy4KS/4KSW4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i4KSF4KSo4KSy4KWJ4KSVIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkquCkv+CkqCDgpLLgpL/gpJbgpYfgpIIiPC9zdHJpbmc+CkBAIC02MCwxNyArNjAsMjQgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4i4KS14KS/4KSc4KWH4KSfIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOCkleCliyDgpLngpJ/gpL4g4KSm4KS/4KSv4KS+IOCkl+Ckr+Ckvi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2V4cGFuZF9sb2NrX2FyZWEiIG1zZ2lkPSI1MTk4NTk3MjA5MzQxNzgwMjQiPiLgpIXgpKjgpLLgpYngpJUg4KSV4KWN4KS34KWH4KSk4KWN4KSwIOCkteCkv+CkuOCljeCkpOClg+CkpCDgpJXgpLDgpYfgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV91bmxvY2siIG1zZ2lkPSIyOTU5OTI4NDc4NzY0Njk3MjU0Ij4i4KS44KWN4KSy4KS+4KSH4KShIOCkheCkqOCksuClieCklS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fdW5sb2NrIiBtc2dpZD0iMTQ5MDg0MDcwNjA3NTI0NjYxMiI+IuCkquCljeCksOCkpOCkv+CkruCkvuCkqCDgpIXgpKjgpLLgpYngpJUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLgpIbgpJXgpL7gpLAg4KSF4KSo4KSy4KWJ4KSVLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZmFjZV91bmxvY2siIG1zZ2lkPSI0ODE3MjgyNTQzMzUxNzE4NTM1Ij4i4KSr4KWH4KS4IOCkheCkqOCksuClieCklS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4i4KSq4KS/4KSoIOCkheCkqOCksuClieCklS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSF4KSo4KSy4KWJ4KSVLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl9hcmVhIiBtc2dpZD0iNzY3OTg5MTMyNDUwOTU5NzkwNCI+IuCkquCljeCksOCkpOCkv+CkruCkvuCkqCDgpJXgpY3gpLfgpYfgpKTgpY3gpLAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4i4KSG4KSV4KS+4KSwIOCkleCljeCkt+Clh+CkpOCljeCksC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4i4KS44KWN4KSy4KS+4KSH4KShIOCkleCljeCkt+Clh+CkpOCljeCksC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTMzNzI4NjUzODMxODU0MzU1NSI+IuCkquCkv+Ckm+CksuCkviDgpJ/gpY3gpLDgpYjgpJUg4KSs4KSf4KSoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjcwNzM5MjgzMDA0NDQ5MDkzMjAiPiLgpIXgpJfgpLLgpL4g4KSf4KWN4KSw4KWI4KSVIOCkrOCkn+CkqCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IuCkquClieCknOCkvCDgpJXgpLDgpYfgpIIg4KSs4KSf4KSoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiLgpJrgpLLgpL7gpI/gpIIg4KSs4KSf4KSoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiLgpLDgpYvgpJXgpYfgpIIg4KSs4KSf4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IuCkquCkuOCkguCkpiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+IuCkqOCkvuCkquCkuOCkguCkpiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IuCkpuCkv+CksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IuCknOCkvuCksOClgCDgpLDgpJbgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpIXgpKjgpLLgpYngpJUg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4i4KSy4KWJ4KSo4KWN4oCN4KSaIOCksOCkpuCljeCkpiDgpJXgpLAg4KSm4KS/4KSv4KS+IOCkl+Ckr+CkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiLgpLngpJ/gpL7gpKjgpYcg4KSV4KWHIOCksuCkv+CkjyA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDgpJbgpYDgpILgpJrgpYfgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOCkleCliyDgpKjgpLngpYDgpIIg4KS54KSf4KS+4KSv4KS+IOCknOCkvuCkj+Ckl+Ckvi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTkyLDEyICs5OSwxMiBAQAogICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3JpZ2h0IiBtc2dpZD0iODAzNDQzMzI0MjU3OTYwMDk4MCI+Ijx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiDgpJXgpYcg4KSy4KS/4KSPIOCkpuCkvuCkj+CkgiDgpLjgpY3igI3gpLLgpL7gpIfgpKEg4KSV4KSw4KWH4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InVzZXJfc3dpdGNoZWQiIG1zZ2lkPSIzNzY4MDA2NzgzMTY2OTg0NDEwIj4i4KS14KSw4KWN4KSk4KSu4KS+4KSoIOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviA8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW1lcmdlbmN5X2NhbGxfbGFiZWwiIG1zZ2lkPSI2ODQ5NDYxOTI1MjM4MzA1MzEiPiLgpIbgpKrgpL7gpKTgpJXgpL7gpLLgpYDgpKgg4KSV4KWJ4KSyIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSI4ODUyMDIxNDY3ODY4MjIwNjA4Ij4i4KSq4KWN4KSw4KSk4KS/4KSu4KS+4KSoIOCkreClguCksiDgpJfgpI8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXR0ZXJuIiBtc2dpZD0iMTg1MDgwNjA3MDgwMTM1ODgzMCI+IuCkl+CksuCkpCDgpKrgpY3gpLDgpKTgpL/gpK7gpL7gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLgpIbgpJXgpL7gpLAg4KSt4KWC4KSyIOCkl+CkjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BhdHRlcm4iIG1zZ2lkPSIxODUwODA2MDcwODAxMzU4ODMwIj4i4KSX4KSy4KSkIOCkhuCkleCkvuCksCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3Bhc3N3b3JkIiBtc2dpZD0iMjMzMzI4MTc2MjEyODExMzE1NyI+IuCkl+CksuCkpCDgpKrgpL7gpLjgpLXgpLDgpY3gpKEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4i4KSX4KSy4KSkIFBJTiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MzU4MTEwMjIxNjAzMjk3NTQ4Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleCkguCkoSDgpK7gpYfgpIIg4KSq4KWB4KSoOiDgpKrgpY3gpLDgpK/gpL7gpLgg4KSV4KSw4KWH4KSCLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3BhdHRlcm5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzk4OTc4NjExNjgzMDc1ODY4Ij4i4KSF4KSq4KSo4KS+IOCkquCljeCksOCkpOCkv+CkruCkvuCkqCDgpIbgpLDgpYfgpJbgpL/gpKQg4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiLgpIXgpKrgpKjgpL4g4KSG4KSV4KS+4KSwIOCkhuCksOClh+CkluCkv+CkpCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiLgpLjgpL/gpK4gUElOIOCkoeCkvuCksuClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzc3MjQyMjMzNDk1MTExNTU3Ij4iUElOIOCkoeCkvuCksuClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU3NTM2NDY1NTYxODY5MzY4MTkiPiLgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSh4KS+4KSy4KWH4KSCIjwvc3RyaW5nPgpAQCAtMTA1LDMwICsxMTIsNDIgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiLgpIfgpJrgpY3gpJvgpL/gpKQg4KSq4KS/4KSoIOCkleCli+CkoSDgpKHgpL7gpLLgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4i4KSH4KSa4KWN4KSb4KS/4KSkIOCkquCkv+CkqCDgpJXgpYvgpKEg4KSV4KWAIOCkquClgeCkt+CljeCkn+CkvyDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlNJTSDgpJXgpL7gpLDgpY3gpKEg4KSF4KSo4KSy4KWJ4KSVIOCkleCksCDgpLDgpLngpL4g4KS54KWI4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i4KSX4KSy4KSkIFBJTiDgpJXgpYvgpKEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4i4KSQ4KS44KS+IFBJTiDgpLLgpL/gpJbgpYfgpIIsIOCknOCliyA0IOCkuOClhyA4IOCkheCkguCkleCli+CkgiDgpJXgpL4g4KS54KWLLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyDgpJXgpYvgpKEgOCDgpK/gpL4g4KSF4KSn4KS/4KSVIOCkuOCkguCkluCljeCkr+CkviDgpLXgpL7gpLLgpL4g4KS54KWL4KSo4KS+IOCkmuCkvuCkueCkv+Ckjy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLgpLjgpLngpYAgUFVLIOCkleCli+CkoSDgpKrgpYHgpKg6IOCkoeCkvuCksuClh+Ckgi4g4KSs4KS+4KSwLeCkrOCkvuCksCDgpKrgpY3gpLDgpK/gpL7gpLgg4KSV4KSw4KSo4KWHIOCkuOClhyDgpLjgpL/gpK4g4KS44KWN4KSl4KS+4KSv4KWAIOCksOClguCkqiDgpLjgpYcg4KSF4KSV4KWN4KS34KSuIOCkueCliyDgpJzgpL7gpI/gpJfgpYAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9jb25maXJtX3Bpbl9oaW50IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzAwMzQ2OTI2MTQ2NDU5MzUxNiI+IuCkquCkv+CkqCDgpJXgpYvgpKEg4KSV4KS+IOCkruCkv+CksuCkvuCkqCDgpKjgpLngpYDgpIIg4KS54KWL4KSk4KS+Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4i4KSs4KS54KWB4KSkIOCkheCkp+Ckv+CklSDgpKrgpY3gpLDgpKTgpL/gpK7gpL7gpKgg4KSq4KWN4KSw4KSv4KS+4KS4Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMTEwMDU1MTI2MTI2NTUwNjQ0OCI+IuCkheCkqOCksuClieCklSDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+Ckjywg4KSF4KSq4KSo4KWHIEdvb2dsZSDgpJbgpL7gpKTgpYcg4KS44KWHIOCkuOCkvuCkh+CkqCDgpIfgpKgg4KSV4KSw4KWH4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+IuCkrOCkueClgeCkpCDgpIXgpKfgpL/gpJUg4KSG4KSV4KS+4KSwIOCkquCljeCksOCkr+CkvuCkuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLgpIXgpKjgpLLgpYngpJUg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8sIOCkheCkquCkqOClhyBHb29nbGUg4KSW4KS+4KSk4KWHIOCkuOClhyDgpKrgpY3gpLDgpLXgpYfgpLYg4KSV4KSw4KWH4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4i4KSJ4KSq4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkqOCkvuCkriAo4KSI4KSu4KWH4KSyKSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4i4KSq4KS+4KS44KS14KSw4KWN4KShIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiLgpLjgpL7gpIfgpKgg4KSH4KSoIOCkleCksOClh+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI1MzU1OTA0NTgyNjc0MDU0NzAyIj4i4KSq4KWN4KSw4KS14KWH4KS2IOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4i4KSF4KSu4KS+4KSo4KWN4KSvIOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKjgpL7gpK4g4KSv4KS+IOCkquCkvuCkuOCkteCksOCljeCkoS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i4KSF4KSq4KSo4KS+IOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKjgpL7gpK4g4KSv4KS+IOCkquCkvuCkuOCkteCksOCljeCkoSDgpK3gpYLgpLIg4KSX4KSPP1xuICI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+IiDgpKrgpLAg4KSc4KS+4KSP4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IuCkluCkvuCkpOClhyDgpJXgpYAg4KSc4KS+4KSC4KSaIOCkleClgCDgpJzgpL4g4KSw4KS54KWAIOCkueCliOKApiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i4KSG4KSqIOCkheCkquCkqOCkviBQSU4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4KSs4KS+4KSwIOCkl+CksuCkpCDgpKTgpLDgpYDgpJXgpYcg4KS44KWHIOCksuCkv+CkliDgpJrgpYHgpJXgpYcg4KS54KWI4KSCLiBcblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleCkguCkoSDgpK7gpYfgpIIg4KSq4KWB4KSoOiDgpKrgpY3gpLDgpK/gpL7gpLgg4KSV4KSw4KWH4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiLgpIbgpKog4KSF4KSq4KSo4KS+IOCkquCkvuCkuOCkteCksOCljeCkoSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKzgpL7gpLAg4KSX4KSy4KSkIOCkpOCksOClgOCkleClhyDgpLjgpYcg4KSy4KS/4KSWIOCkmuClgeCkleClhyDgpLngpYjgpIIuIFxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KS44KWH4KSV4KSC4KShIOCkruClh+CkgiDgpKrgpYHgpKg6IOCkquCljeCksOCkr+CkvuCkuCDgpJXgpLDgpYfgpIIuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+IuCkhuCkquCkqOClhyDgpIXgpKrgpKjgpL4g4KSF4KSo4KSy4KWJ4KSVIOCkquCljeCksOCkpOCkv+CkruCkvuCkqCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKzgpL7gpLAg4KSX4KSy4KSkIOCkpOCksOClgOCkleClhyDgpLjgpYcg4KSG4KSw4KWH4KSW4KS/4KSkIOCkleCkv+Ckr+CkviDgpLngpYguIFxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KS44KWH4KSV4KSC4KShIOCkruClh+CkgiDgpKrgpYHgpKg6IOCkquCljeCksOCkr+CkvuCkuCDgpJXgpLDgpYfgpIIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+IuCkhuCkquCkqOClhyDgpIXgpKrgpKjgpL4g4KSF4KSo4KSy4KWJ4KSVIOCkhuCkleCkvuCksCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKzgpL7gpLAg4KSX4KSy4KSkIOCkpOCksOClgOCkleClhyDgpLjgpYcg4KSG4KSw4KWH4KSW4KS/4KSkIOCkleCkv+Ckr+CkviDgpLngpYguIFxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KS44KWH4KSV4KSC4KShIOCkruClh+CkgiDgpKrgpYHgpKg6IOCkquCljeCksOCkr+CkvuCkuCDgpJXgpLDgpYfgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTc1NTU3MjAwNjI3MTI4OTQ5Ij4i4KSG4KSqIOCkn+Clh+CkrOCksuClh+CknyDgpJXgpYsg4KSF4KSo4KSy4KWJ4KSVIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkrOCkvuCksCDgpJfgpLLgpKQg4KSk4KSw4KWA4KSV4KWHIOCkuOClhyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSV4KSwIOCkmuClgeCkleClhyDgpLngpYjgpIIuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCklOCksCDgpIXgpLjgpKvgpLIg4KSq4KWN4KSw4KSv4KS+4KS44KWL4KSCIOCkleClhyDgpKzgpL7gpKYsIOCkn+Clh+CkrOCksuClh+CknyDgpKvgpLzgpYjgpJXgpY3gpJ/gpLDgpYAg4KSh4KS/4KSr4KS84KWJ4KSy4KWN4KSfIOCkquCksCDgpLDgpYDgpLjgpYfgpJ8g4KS54KWLIOCknOCkvuCkj+Ckl+CkviDgpJTgpLAg4KS44KSt4KWAIOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKHgpYfgpJ/gpL4g4KSW4KWLIOCknOCkvuCkj+Ckl+Ckvi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MDUxMDE1OTQzMDM4MTk5OTEwIj4i4KSG4KSqIOCkq+CkvOCli+CkqCDgpJXgpYsg4KSF4KSo4KSy4KWJ4KSVIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkrOCkvuCksCDgpJfgpLLgpKQg4KSk4KSw4KWA4KSV4KWHIOCkuOClhyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSV4KSwIOCkmuClgeCkleClhyDgpLngpYjgpIIuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCklOCksCDgpIXgpLjgpKvgpLIg4KSq4KWN4KSw4KSv4KS+4KS44KWL4KSCIOCkleClhyDgpKzgpL7gpKYsIOCkq+CkvOCli+CkqCDgpKvgpLzgpYjgpJXgpY3gpJ/gpLDgpYAg4KSh4KS/4KSr4KS84KWJ4KSy4KWN4KSfIOCkquCksCDgpLDgpYDgpLjgpYfgpJ8g4KS54KWLIOCknOCkvuCkj+Ckl+CkviDgpJTgpLAg4KS44KSt4KWAIOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKHgpYfgpJ/gpL4g4KSW4KWLIOCknOCkvuCkj+Ckl+Ckvi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA3Mjk5NjI2OTE0ODQ4MzYzNyI+IuCkhuCkqiDgpJ/gpYfgpKzgpLLgpYfgpJ8g4KSV4KWLIOCkheCkqOCksuClieCklSDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4KSs4KS+4KSwIOCkl+CksuCkpCDgpKTgpLDgpYDgpJXgpYcg4KS44KWHIOCkquCljeCksOCkr+CkvuCkuCDgpJXgpLAg4KSa4KWB4KSV4KWHIOCkueCliOCkgi4g4KSf4KWH4KSs4KSy4KWH4KSfIOCkheCkrCDgpKvgpLzgpYjgpJXgpY3igI3gpJ/gpLDgpYAg4KSh4KS/4KSr4KS84KWJ4KSy4KWN4oCN4KSfIOCkquCksCDgpLDgpYDgpLjgpYfgpJ8g4KS54KWLIOCknOCkvuCkj+Ckl+Ckvi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ4MTc2Mjc0NzQ0MTk0NzE1MTgiPiLgpIbgpKog4KSr4KS84KWL4KSoIOCkleCliyDgpIXgpKjgpLLgpYngpJUg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOCkrOCkvuCksCDgpJfgpLLgpKQg4KSk4KSw4KWA4KSV4KWHIOCkuOClhyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSV4KSwIOCkmuClgeCkleClhyDgpLngpYjgpIIuIOCkq+CkvOCli+CkqCDgpIXgpKwg4KSr4KS84KWI4KSV4KWN4KSf4KSw4KWAIOCkoeCkv+Ckq+CkvOClieCksuCljeCknyDgpKrgpLAg4KSw4KWA4KS44KWH4KSfIOCkueCliyDgpJzgpL7gpI/gpJfgpL4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IuCkhuCkquCkqOClhyDgpIXgpKrgpKjgpYcg4KSF4KSo4KSy4KWJ4KSVIOCkquCljeCksOCkpOCkv+CkruCkvuCkqCDgpJXgpYsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4KSs4KS+4KSwIOCkl+CksuCkpCDgpKTgpLDgpYDgpJXgpYcg4KS44KWHIOCkhuCksOClh+CkluCkv+CkpCDgpJXgpL/gpK/gpL4g4KS54KWILiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgpJTgpLAg4KSF4KS44KSr4KSyIOCkquCljeCksOCkr+CkvuCkuOCli+CkgiDgpJXgpYcg4KSs4KS+4KSmLCDgpIbgpKrgpLjgpYcg4KSF4KSq4KSo4KWHIOCkn+Clh+CkrOCksuClh+CknyDgpJXgpYsg4KSV4KS/4KS44KWAIOCkiOCkruClh+CksiDgpJbgpL7gpKTgpYcg4KSV4KWHIOCkieCkquCkr+Cli+CklyDgpLjgpYcg4KSF4KSo4KSy4KWJ4KSVIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkleCkueCkviDgpJzgpL7gpI/gpJfgpL4uXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDgpLjgpYfgpJXgpILgpKEg4KSu4KWH4KSCIOCkquClgeCkqDog4KSq4KWN4KSw4KSv4KS+4KS4IOCkleCksOClh+Ckgi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IuCkhuCkquCkqOClhyDgpIXgpKrgpKjgpYcg4KSF4KSo4KSy4KWJ4KSVIOCkquCljeCksOCkpOCkv+CkruCkvuCkqCDgpJXgpYsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4KSs4KS+4KSwIOCkl+CksuCkpCDgpKTgpLDgpYDgpJXgpYcg4KS44KWHIOCkhuCksOClh+CkluCkv+CkpCDgpJXgpL/gpK/gpL4g4KS54KWILiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgpJTgpLAg4KSF4KS44KSr4KSyIOCkquCljeCksOCkr+CkvuCkuOCli+CkgiDgpJXgpYcg4KSs4KS+4KSmLCDgpIbgpKrgpLjgpYcg4KSF4KSq4KSo4KWHIOCkq+CkvOCli+CkqCDgpJXgpYsg4KSV4KS/4KS44KWAIOCkiOCkruClh+CksiDgpJbgpL7gpKTgpYcg4KSV4KS+IOCkieCkquCkr+Cli+CklyDgpJXgpLDgpJXgpYcg4KSF4KSo4KSy4KWJ4KSVIOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkleCkueCkviDgpJzgpL7gpI/gpJfgpL4uXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDgpLjgpYfgpJXgpILgpKEg4KSu4KWH4KSCIOCkquClgeCkqDog4KSq4KWN4KSw4KSv4KS+4KS4IOCkleCksOClh+Ckgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4i4KSG4KSq4KSo4KWHIOCkheCkquCkqOClhyDgpIXgpKjgpLLgpYngpJUg4KSG4KSV4KS+4KSwIOCkleCliyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKzgpL7gpLAg4KSX4KSy4KSkIOCkpOCksOClgOCkleClhyDgpLjgpYcg4KSG4KSw4KWH4KSW4KS/4KSkIOCkleCkv+Ckr+CkviDgpLngpYguIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCklOCksCDgpIXgpLjgpKvgpLIg4KSq4KWN4KSw4KSv4KS+4KS44KWL4KSCIOCkleClhyDgpKzgpL7gpKYsIOCkhuCkquCkuOClhyDgpIXgpKrgpKjgpYcg4KSf4KWH4KSs4KSy4KWH4KSfIOCkleCliyDgpJXgpL/gpLjgpYAg4KSI4KSu4KWH4KSyIOCkluCkvuCkpOClhyDgpJXgpYcg4KSJ4KSq4KSv4KWL4KSXIOCkuOClhyDgpIXgpKjgpLLgpYngpJUg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSV4KS54KS+IOCknOCkvuCkj+Ckl+Ckvi5cblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleCkguCkoSDgpK7gpYfgpIIg4KSq4KWB4KSoOiDgpKrgpY3gpLDgpK/gpL7gpLgg4KSV4KSw4KWH4KSCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i4KSG4KSq4KSo4KWHIOCkheCkquCkqOClhyDgpIXgpKjgpLLgpYngpJUg4KSG4KSV4KS+4KSwIOCkleCliyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKzgpL7gpLAg4KSX4KSy4KSkIOCkpOCksOClgOCkleClhyDgpLjgpYcg4KSG4KSw4KWH4KSW4KS/4KSkIOCkleCkv+Ckr+CkviDgpLngpYguIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCklOCksCDgpIXgpLjgpKvgpLIg4KSq4KWN4KSw4KSv4KS+4KS44KWL4KSCIOCkleClhyDgpKzgpL7gpKYsIOCkhuCkquCkuOClhyDgpIXgpKrgpKjgpYcg4KSr4KS84KWL4KSoIOCkleCliyDgpJXgpL/gpLjgpYAg4KSI4KSu4KWH4KSyIOCkluCkvuCkpOClhyDgpJXgpL4g4KSJ4KSq4KSv4KWL4KSXIOCkleCksOCkleClhyDgpIXgpKjgpLLgpYngpJUg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSV4KS54KS+IOCknOCkvuCkj+Ckl+Ckvi5cblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleCkguCkoSDgpK7gpYfgpIIg4KSq4KWB4KSoOiDgpKrgpY3gpLDgpK/gpL7gpLgg4KSV4KSw4KWH4KSCLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IuCkqOCkv+CkleCkvuCksuClh+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4i4KSX4KSy4KSkIOCkuOCkv+CkriBQSU4g4KSV4KWL4KShIOCkheCkquCkqOClhyDgpIngpKrgpJXgpLDgpKMg4KSV4KWLIOCkheCkqOCksuClieCklSDgpJXgpLDgpKjgpYcg4KSV4KWHIOCksuCkv+CkjyDgpIXgpKwg4KSG4KSq4KSV4KWLIOCkheCkquCkqOClhyDgpLXgpL7gpLngpJUg4KS44KWHIOCkuOCkguCkquCksOCljeCklSDgpJXgpLDgpKjgpL4g4KS54KWL4KSX4KS+LiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4i4KSX4KSy4KSkIOCkuOCkv+CkriBQSU4g4KSV4KWL4KShLCDgpIXgpKrgpKjgpYcg4KSJ4KSq4KSV4KSw4KSjIOCkleCliyDgpIXgpKjgpLLgpYngpJUg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSF4KSq4KSo4KWHIOCkteCkvuCkueCklSDgpLjgpYcg4KS44KSC4KSq4KSw4KWN4KSVIOCkleCksOCkqOClhyDgpLjgpYcg4KSq4KS54KSy4KWHIOCkhuCkquCkleClhyDgpKrgpL7gpLggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOCkquCljeCksOCkr+CkvuCkuCDgpLbgpYfgpLcg4KS54KWILiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+IuCkl+CksuCkpCDgpLjgpL/gpK4gUElOIOCkleCli+CkoSwg4KSG4KSq4KSV4KWHIOCkquCkvuCkuCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4KSq4KWN4KSw4KSv4KS+4KS4IOCktuClh+CktyDgpLngpYjgpIIuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiLgpLjgpL/gpK4g4KSF4KSo4KWB4KSq4KSv4KWL4KSX4KWAIOCkueCliC4g4KSF4KSq4KSo4KWHIOCkteCkvuCkueCklSDgpLjgpYcg4KS44KSC4KSq4KSw4KWN4KSVIOCkleCksOClh+Ckgi4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IuCkl+CksuCkpCDgpLjgpL/gpK4gUFVLIOCkleCli+CkoSwg4KS44KS/4KSuIOCkleClhyDgpLjgpY3gpKXgpL7gpK/gpYAg4KSw4KWC4KSqIOCkuOClhyDgpIXgpKjgpYHgpKrgpK/gpYvgpJfgpYAg4KS54KWLIOCknOCkvuCkqOClhyDgpLjgpYcg4KSq4KS54KSy4KWHIOCkhuCkquCkleClhyDgpKrgpL7gpLggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOCkquCljeCksOCkr+CkvuCkuCDgpLbgpYfgpLcg4KS54KWILiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IuCkl+CksuCkpCDgpLjgpL/gpK4gUFVLIOCkleCli+CkoSwg4KS44KS/4KSuIOCkleClhyDgpLjgpY3gpKXgpL7gpK/gpYAg4KSw4KWC4KSqIOCkuOClhyDgpIXgpKjgpYHgpKrgpK/gpYvgpJfgpYAg4KS54KWLIOCknOCkvuCkqOClhyDgpLjgpYcg4KSq4KS54KSy4KWHIOCkhuCkquCkleClhyDgpKrgpL7gpLggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOCkquCljeCksOCkr+CkvuCkuCDgpLbgpYfgpLcg4KS54KWI4KSCLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4i4KS44KS/4KSuIFBJTiDgpJXgpYAg4KSV4KS+4KSw4KWN4KSv4KS14KS+4KS54KWAIOCkteCkv+Ckq+CksiDgpLDgpLngpYAhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiLgpLjgpL/gpK4gUFVLIOCkleClgCDgpJXgpL7gpLDgpY3gpK/gpLXgpL7gpLngpYAg4KS14KS/4KSr4KSyIOCksOCkueClgCEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4i4KSV4KWL4KShIOCkuOCljeCkteClgOCkleCkvuCksCDgpJXgpL/gpK/gpL4g4KSX4KSv4KS+ISI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IuCkquCkv+Ckm+CksuCkviDgpJ/gpY3gpLDgpYjgpJUg4KSs4KSf4KSoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4i4KSF4KSX4KSy4KS+IOCkn+CljeCksOCliOCklSDgpKzgpJ/gpKgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4i4KSq4KWJ4KSc4KS8IOCkleCksOClh+CkgiDgpKzgpJ/gpKgiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWhyL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1oci9zdHJpbmdzLnhtbAppbmRleCA3MGU2MzA1Li4zODQzNTQ5IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWhyL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtaHIvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IlVuZXNpdGUgUElOIGvDtGQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiJVbmVzaXRlIFBVSyBpIG5vdmkgUElOIGvDtGQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IlBVSyBrw7RkIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiJOb3ZpIFBJTiBrw7RkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iVW5lc2l0ZSBQVUsgaSBub3ZpIFBJTiBrw7RkIFNJTSBrYXJ0aWNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJQVUsga8O0ZCBTSU0ga2FydGljZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iTm92aSBQSU4ga8O0ZCBTSU0ga2FydGljZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IkRvZGlybml0ZSB6YSB0aXBrYW5qZSB6YXBvcmtlIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iVW5lc2l0ZSB6YXBvcmt1IHphIG90a2xqdcSNYXZhbmplIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iVW5lc2l0ZSBQSU4gemEgb3RrbGp1xI1hdmFuamUiPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4iR3VtYiBQYXV6YSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iR3VtYiBSZXByb2R1a2NpamEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+Ikd1bWIgWmF1c3RhdmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4iUGFsYWMgZ29yZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+IlBhbGFjIGRvbGplIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4iU3JjZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+Ik90a2xqdcSNYWp0ZSB6YSBuYXN0YXZhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IlBva3JldGFuamUgamUgb3RrYXphbm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4iSXNwdXN0aXRlIHdpZGdldCA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiBkYSBiaXN0ZSBnYSBpemJyaXNhbGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+IldpZGdldCA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiBuZcSHZSBzZSBpemJyaXNhdGkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC0xMDUsNyArMTEyLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiJVcGnFoWl0ZSDFvmVsamVuaSBQSU4ga8O0ZCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiJQb3R2cmRpdGUgxb5lbGplbmkgUElOIGvDtGQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+Ik90a2xqdcSNYXZhbmplIFNJTSBrYXJ0aWNl4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iTmV0b8SNYW4gUElOIGvDtGQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iVW5lc2l0ZSBQSU4ga29qaSBpbWEgb2QgNCBkbyA4IGJyb2pldmEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iUFVLIGvDtGQgdHJlYmEgaW1hdGkgOCBicm9qZXZhIGlsaSB2acWhZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiJQb25vdm8gdW5lc2l0ZSBpc3ByYXZhbiBQVUsga8O0ZC4gUG9ub3ZsamVuaSBwb2t1xaFhamkgdHJham5vIMSHZSBvbmVtb2d1xIdpdGkgU0lNLiI8L3N0cmluZz4KQEAgLTEyOSw2ICsxMzUsMTkgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iTmV0b8SNbm8gc3RlIGlzY3J0YWxpIG9icmF6YWMgemEgb3RrbGp1xI1hdmFuamUgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gcHV0YS4gTmFrb24gam/FoSBvdm9saWtvIG5ldXNwamXFoW5paCBwb2t1xaFhamE6IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IG1vcmF0IMSHZXRlIG90a2xqdcSNYXRpIHRlbGVmb24gcG9tb8SHdSByYcSNdW5hIGUtcG/FoXRlLlxuXG4gUG9rdcWhYWp0ZSBwb25vdm8gemEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJMgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJVa2xvbmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+Ik5ldG/EjWFuIFBJTiBrw7RkIFNJTSBrYXJ0aWNlOyBzYWRhIG1vcmF0ZSBrb250YWt0aXJhdGkgc3ZvZyBtb2JpbG5vZyBvcGVyYXRlcmEgZGEgYmkgb3RrbGp1xI1hbyB2YcWhIHVyZcSRYWouIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiJOZXRvxI1hbiBQSU4ga8O0ZCBTSU0ga2FydGljZTsgaW1hdGUgam/FoSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gcG9rdcWhYWogcHJpamUgbmVnbyDFoXRvIGJ1ZGV0ZSBtb3JhbGkga29udGFrdGlyYXRpIHN2b2cgbW9iaWxub2cgb3BlcmF0ZXJhIGRhIGJpIG90a2xqdcSNYW8gdmHFoSB1cmXEkWFqLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+Ik5ldG/EjWFuIFBJTiBrw7RkIFNJTSBrYXJ0aWNlOyBpbWF0ZSBqb8WhIG92b2xpa28gcHJlb3N0YWxpaCBwb2t1xaFhamE6IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPi4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+IlNJTSBrYXJ0aWNhIG5pamUgdXBvdHJlYmxqaXZhLiBLb250YWt0aXJhanRlIHN2b2cgbW9iaWxub2cgb3BlcmF0ZXJhLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iTmV0b8SNYW4gUFVLIGvDtGQgU0lNIGthcnRpY2U7IGltYXRlIGpvxaEgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHBva3XFoWFqIHByaWplIG5lZ28gxaF0byBTSU0ga2FydGljYSBwb3N0YW5lIHRyYWpubyBuZXVwb3RyZWJsaml2YS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiJOZXRvxI1hbiBQVUsga8O0ZCBTSU0ga2FydGljZTsgaW1hdGUgam/FoSBuZWtvbGlrbyBwcmVvc3RhbGloIHBva3XFoWFqYSAoPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+KSBwcmlqZSBuZWdvIMWhdG8gU0lNIGthcnRpY2EgcG9zdGFuZSB0cmFqbm8gbmV1cG90cmVibGppdmEuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiJPcGVyYWNpamEgUElOLWEgU0lNIGthcnRpY2UgbmlqZSB1c3BqZWxhISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4iT3BlcmFjaWphIFBVSy1hIFNJTSBrYXJ0aWNlIG5pamUgdXNwamVsYSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iS8O0ZCBqZSBwcmlodmHEh2VuISI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+Ikd1bWIgUHJldGhvZG5pIHphcGlzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4iR3VtYiBTbGplZGXEh2kgemFwaXMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4iR3VtYiBQYXV6YSI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtaHUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWh1L3N0cmluZ3MueG1sCmluZGV4IDYxMTYwMmUuLjBmMzIwMTkgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtaHUvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1odS9zdHJpbmdzLnhtbApAQCAtMjEsOSArMjEsOSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iw41yamEgYmUgYSBQSU4ga8OzZG90Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iw41yamEgYmUgYSBQVUsga8OzZG90LCBtYWpkIGF6IMO6aiBQSU4ga8OzZG90Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsga8OzZCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iw5pqIFBJTiBrw7NkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iw41yamEgYmUgYSBTSU0ga8OhcnR5YSBQVUsga8OzZGrDoXQsIG1hamQgYXogw7pqIFBJTiBrw7Nkb3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IlNJTSBrw6FydHlhIFBVSyBrw7NkamEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+IsOaaiBQSU4ga8OzZCBhIFNJTSBrw6FydHnDoWhveiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IsOJcmludHNlbiBqZWxzesOzIG1lZ2Fkw6Fzw6Fob3oiPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiJBIGZlbG9sZMOhc2hveiDDrXJqYSBiZSBhIGplbHN6w7N0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iRmVsb2xkw6FzaG96IMOtcmphIGJlIGEgUElOIGvDs2RvdCI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiJTesO8bmV0IGdvbWIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+IkxlasOhdHN6w6FzIGdvbWIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+Ikxlw6FsbMOtdMOhcyBnb21iIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IlRldHN6aWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiJOZW0gdGV0c3ppayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IlN6w612Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4iQSBmb2x5dGF0w6FzaG96IG9sZGphIGZlbCBhIGJpbGxlbnR5xbF6w6FyYXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJJbmTDrXTDoXMgdMO2csO2bHZlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+IkVuZ2VkamUgZWwgYSh6KSA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiB0w7ZybMOpc8OpaGV6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiJBKHopIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IG5lbSBsZXN6IHTDtnLDtmx2ZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IkvDrXbDoW50IFBJTiBrw7NkIG1lZ2Fkw6FzYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiJLw612w6FudCBQSU4ga8OzZCBtZWdlcsWRc8OtdMOpc2UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlNJTSBrw6FydHlhIGZlbG9sZMOhc2EuLi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiJIZWx5dGVsZW4gUElOIGvDs2QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iNOKAkzggc3rDoW1qZWd5xbEgUElOIGvDs2RvdCDDrXJqb24gYmUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iQSBQVUsga8OzZCBsZWdhbMOhYmIgIDggc3rDoW1qZWd5YsWRbCBrZWxsLCBob2d5IMOhbGxqb24uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iQWRqYSBtZWcgw7pqcmEgYSBoZWx5ZXMgUFVLIGvDs2RvdC4gQXogaXNtw6l0ZWx0IHByw7Niw6Fsa296w6Fzc2FsIHbDqWdsZWdlc2VuIGxldGlsdGphIGEgU0lNIGvDoXJ0ecOhdC4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+Ijx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGFsa2Fsb21tYWwgaGVseXRlbGVuw7xsIHJhanpvbHRhIGxlIGEgZmVsb2xkw6FzaSBtaW50w6F0LiBUb3bDoWJiaSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBzaWtlcnRlbGVuIGvDrXPDqXJsZXQgdXTDoW4gZWd5IGUtbWFpbCBmacOzayBoYXN6bsOhbGF0w6F2YWwga2VsbCBmZWxvbGRhbmlhIGEgdGVsZWZvbmrDoXQuXG5cbiBLw6lyasO8aywgcHLDs2LDoWxqYSDDumpyYSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBtw6Fzb2RwZXJjIG3Dumx2YS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJMgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJFbHTDoXZvbMOtdMOhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iSGVseXRlbGVuIFBJTiBrw7NkIGEgU0lNIGvDoXJ0ecOhaG96OyB2ZWd5ZSBmZWwgYSBrYXBjc29sYXRvdCBzem9sZ8OhbHRhdMOzasOhdmFsIGF6IGVzemvDtnogZmVsb2xkw6Fzw6Fob3ouIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiJIZWx5dGVsZW4gUElOIGvDs2QgYSBTSU0ga8OhcnR5w6Fob3o7IG3DqWcgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHByw7Niw6Fsa296w6FzYSB2YW4sIG1pZWzFkXR0IGZlbCBrZWxsZW5lIHZlbm5pZSBhIGthcGNzb2xhdG90IHN6b2xnw6FsdGF0w7Nqw6F2YWwgYXogZXN6a8O2eiBmZWxvbGTDoXPDoWhvei4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJIZWx5dGVsZW4gUElOIGvDs2QgYSBTSU0ga8OhcnR5w6Fob3o7IG3DqWcgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHByw7Niw6Fsa296w6FzYSB2YW4uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJBIFNJTSBrw6FydHlhIGhhc3puw6FsaGF0YXRsYW4uIFZlZ3llIGZlbCBhIGthcGNzb2xhdG90IHN6b2xnw6FsdGF0w7Nqw6F2YWwuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiJIZWx5dGVsZW4gUFVLIGvDs2QgYSBTSU0ga8OhcnR5w6Fob3o7IG3DqWcgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHByw7Niw6Fsa296w6FzYSB2YW4sIG1pZWzFkXR0IGEgU0lNIGvDoXJ0eWEgdsOpZ2xlZyBoYXN6bsOhbGhhdGF0bGFuIGxlc3ouIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4iSGVseXRlbGVuIFBVSyBrw7NkIGEgU0lNIGvDoXJ0ecOhaG96OyBtw6lnIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwcsOzYsOhbGtvesOhc2EgdmFuLCBtaWVsxZF0dCBhIFNJTSBrw6FydHlhIHbDqWdsZWcgaGFzem7DoWxoYXRhdGxhbiBsZXN6LiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iQSBTSU0ga8OhcnR5YSBQSU4tbcWxdmVsZXRlIHNpa2VydGVsZW4hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJBIFNJTSBrw6FydHlhIFBVSy1txbF2ZWxldGUgc2lrZXJ0ZWxlbiEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iS8OzZCBlbGZvZ2FkdmEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iRWzFkXrFkSBzesOhbSBnb21iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4iS8O2dmV0a2V6xZEgc3rDoW0gZ29tYiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiJTesO8bmV0IGdvbWIiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWh5LXJBTS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmODc5MjAKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWh5LXJBTS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDE1NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLVhNW41oLVv9aE1aHVo9aA1aXWhCBQSU4g1a/VuNWk1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiLVhNW41oLVv9aE1aHVo9aA1aXWhCBTSU0gUFVLLdWoINaHINW21bjWgCBQSU4g1a/VuNWk1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IlNJTSBQVUsg1a/VuNWk1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+ItWG1bjWgCBTSU0gUElOINWv1bjVpNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4i1YDVutWl1oRgINWj1aHVstW/1bbVodWi1aHVvNWoINW01bjWgtW/1oTVodWj1oDVpdWs1bjWgiDVsNWh1bTVodaAIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4i1YTVuNaC1b/WhNWh1aPWgNWl1oQg1aPVodWy1b/VttWh1aLVodW81agg1aHVutWh1a/VuNWy1brVtNWh1bYg1bDVodW01aHWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+ItWE1bjWgtW/1oTVodWj1oDVpdaEIFBJTi3VqCDVodW61aHVr9W41bLVutW01aHVtiDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIyNDIyMjI1NTkxMDA2MTM0OTM2Ij4i1Y3VrdWh1awgUElOINWu1aHVrtWv1aHVo9Wr1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+ItSx1brVodWv1bjVstW61bTVodW2INWw1aHVtNWh1oAg1b3VpdWy1bTVpdaEINWR1aHVttWvLCDVodW61aEgMDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWNldW5sb2NrX211bHRpcGxlX2ZhaWx1cmVzIiBtc2dpZD0iNzU0MTM3NTgzMDIyNzkyNDI5Ij4i1LHVvNWh1b7VpdWs1aHVo9W41oLVtdW2INS01aXVtNaE1bjVviDVodW61aHVr9W41bLVutW01aHVtiDWg9W41oDVsdWl1oDVqCDVo9Wl1oDVodWm1aHVttaB1b7VodWuINWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jaGFyZ2VkIiBtc2dpZD0iMzI3MjIyMzkwNjA3MzQ5MjQ1NCI+ItS81avWgdaE1aHVvtW41oDVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wbHVnZ2VkX2luIiBtc2dpZD0iODExNzU3MjAwMDYzOTk5ODM4OCI+ItS81avWgdaE1aHVvtW41oDVuNaC1bQsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sb3dfYmF0dGVyeSIgbXNnaWQ9IjgxNDM4MDgwMTg3MTkxNzM4NTkiPiLVhNWr1aHWgdaA1aXWhCDVsdWl1oAg1azVq9aB1oTVodW+1bjWgNWr1bnVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iMTMzMjI4ODI2ODYwMDMyOTg0MSI+ItSx1brVodWv1bjVstW61aXVrNW41oIg1bDVodW01aHWgCDVvdWl1bLVtNWl1oQg1ZHVodW21a/VqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9uZXR3b3JrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iOTE2OTcxNzc3OTA1ODAzNzE2OCI+ItWR1aHVttaB1agg1a/VuNWy1brVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNDk0OTgwNTYxMzA0MjExOTMxIj4iU0lNINaE1aHWgNW/INW51a/VoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE0NDU4NDkwMDU5MDkyNjAwMzkiPiLUs9aA1aHVvdWh1azVq9Wv1bjWgtW0IFNJTSDWhNWh1oDVvyDVudWv1aE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0ODExMTAzOTU1MDg2Mzc2NDMiPiLVgNWl1bzVodWt1bjVvdWrINW01aXVuyBTSU0g1oTVodaA1b8g1bnVr9WhOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUyMTA4OTE1MDk5OTU5NDIyNTAiPiLUttWl1b/VpdWy1aXWhCBTSU0g1oTVodaA1b/VqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjU5Njg5ODU0ODk0NjM4NzAzNTgiPiJTSU0g1oTVodaA1b/VqCDVotWh1oHVodWv1aHVtdW41oLVtCDVpyDVr9Wh1bQg1bnVqyDVr9Wh1oDVuNWyINWv1aHWgNWk1aHWgdW+1aXVrDog1YTVv9aB1oDVpdaEIFNJTSDWhNWh1oDVvzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI4MzQwODEzOTg5NTg2NjIyMzU2Ij4i1LHVttW61avVv9Wh1bYgU0lNINaE1aHWgNW/OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTg5Mjk0MDkwOTY5OTcyMzU0NCI+ItWB1aXWgCBTSU0g1oTVodaA1b/VqCDVqNW21aTVtNWr1bfVvyDVr9Wh1b3VpdaB1b7VpdWsINWnOlxu1L/VodW61b7VpdaEINWx1aXWgCDVotW71bvVodW11avVtiDVrtWh1bzVodW11bjWgtWp1bXVodW2INW01aHVv9Wh1a/VodaA1aHWgNWrINWw1aXVvyDVttW41oAgU0lNINaE1aHWgNW/INWx1aXVvNaEINWi1aXWgNWl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+IlNJTSDWhNWh1oDVv9WoINWv1bjVstW61b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9wdWtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSIzNzQ3MjMyNDY3NDcxODAxNjMzIj4iU0lNINaE1aHWgNW/1aggUFVLLdW41b4g1a/VuNWy1brVvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc5NzUyMjE4MDUwMzM2MTQ0MjYiPiJTSU0g1oTVodaA1b/VqCDVodW61aHVr9W41bLVutW+1bjWgtW0INWnLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiIlMSRzLiDVjtWr1bvVpdWpICUyJGQgb2YgJTMkZDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2FkZF93aWRnZXQiIG1zZ2lkPSI4MjczMjc3MDU4NzI0OTI0NjU0Ij4i1LHVvtWl1azVodaB1bbVpdWsINW+1avVu9Wl1ak6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZW1wdHlfc2xvdCIgbXNnaWQ9IjEyODE1MDU3MDMzMDc5MzA3NTciPiLUtNWh1b/VodaA1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2V4cGFuZGVkIiBtc2dpZD0iMjI3ODEwNjAyMjMxMTE3MDI5OSI+ItSx1brVodWv1bjVstW61bTVodW2INW/1aHWgNWh1a7WhNW2INWo1bbVpNWs1aHVtdW21b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfY29sbGFwc2VkIiBtc2dpZD0iNjM2Njk5MjA2NjkzNjA3NjM5NiI+ItSx1brVodWv1bjVstW61bTVodW2INW/1aHWgNWh1a7WhNWoINWl1b8g1acg1a7VodWs1b7VodWuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0IiBtc2dpZD0iNjUyNzEzMTAzOTc0MTgwODI0MCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+INW+1avVu9Wl1ak6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91c2VyX3NlbGVjdG9yIiBtc2dpZD0iMTIyNjc5ODM3MDkxMzY5ODg5NiI+ItWV1aPVv9W+1bjVstWrINWo1bbVv9aA1avVuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc3RhdHVzIiBtc2dpZD0iODAwODI2NDYwMzkzNTkzMDYxMSI+ItS/1aHWgNWj1aHVvtWr1bPVodWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4i1ZbVuNW/1bjVrdaB1avVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWdhdXJkX2FjY2Vzc2liaWxpdHlfbWVkaWFfY29udHJvbHMiIG1zZ2lkPSIyNjIyMDk2NTQyOTIxNjE4MDYiPiLVhNWl1aTVq9WhINWv1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+ItWO1avVu9Wl1anVttWl1oDVqyDVvtWl1oDVodWk1aHVvdWh1b7VuNaA1bjWgtW01agg1bTVpdWv1bbVodaA1a/VpdWsINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfZW5kIiBtc2dpZD0iNzE3MDE5MDk1MDg3MDQ2ODMyMCI+ItWO1avVu9Wl1anVqyDVvtWl1oDVodWk1aHVvdWh1b7VuNaA1bjWgtW01bYg1aHVvtWh1oDVv9W+1aXWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9kZWxldGVkIiBtc2dpZD0iNDQyNjIwNDI2MzkyOTIyNDQzNCI+ItWO1avVu9Wl1akgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4t1agg1bvVttW71b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZXhwYW5kX2xvY2tfYXJlYSIgbXNnaWQ9IjUxOTg1OTcyMDkzNDE3ODAyNCI+ItS41bbVpNWs1aHVtdW21aXVrCDVodW61aHVr9W41bLVutW01aHVtiDVv9Wh1oDVodWu1bjWgtWp1bXVuNaC1bbVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiLUt9W71asg1aHVutWh1a/VuNWy1brVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLVjdWt1aXVtNWh1bXVuNW+INWh1brVodWv1bjVstW61bjWgtW0OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZmFjZV91bmxvY2siIG1zZ2lkPSI0ODE3MjgyNTQzMzUxNzE4NTM1Ij4i1LTVpdW01oTVuNW+INWh1brVodWv1bjVstW61bjWgtW0OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiJQaW4t1bYg1aHVutWh1a/VuNWy1brVvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXNzd29yZF91bmxvY2siIG1zZ2lkPSI3Njc1Nzc3NjIzOTEyMTU1MDg5Ij4i1LPVodWy1b/VttWh1aLVodW81asg1aHVutWh1a/VuNWy1brVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4i1Y3VrdWl1bTVodW11asg1b/VodaA1aHVrtaEOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfYXJlYSIgbXNnaWQ9IjY3MzYwNjQ0OTQwMTk5Nzk1NDQiPiLVjdWh1bDVpdaB1bTVodW2INW/1aHWgNWh1a7WhDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTMzNzI4NjUzODMxODU0MzU1NSI+ItWG1aHVrdW41oDVpCDVsNWl1b/VodWj1a7VqyDVr9W41bPVodWv1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzA3MzkyODMwMDQ0NDkwOTMyMCI+ItWA1aHVu9W41oDVpCDVsNWl1b/VodWj1a7VqyDVr9W41bPVodWv1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiLUtNWh1aTVodaA1asg1a/VuNWz1aHVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4i1YbVvtWh1aPVodaA1a/VtNWh1bYg1a/VuNWz1aHVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4i1L/VodW21aPVqyDVr9W41bPVodWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+ItS81aHVvtW2INWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4i1LzVodW+1agg1bnVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+ItWN1avWgNW/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4i1YfVodaA1bjWgtW21aHVr9Wl1azVuNaCINWw1aHVtNWh1oAg1aHVutWh1a/VuNWy1brVpdaEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4i1LPVuNaA1a7VodaA1a/VuNaC1bTVqCDVudWl1bLVodaA1a/VvtWl1oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g1b7Vq9W71aXVqdWoINW71bbVu9Wl1azVuNaCINWw1aHVtNWh1oAg1aLVodaBINWp1bjVstWl1oQg1aHVtdW2INWh1bXVvdW/1aXVsjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g1b7Vq9W71aXVqdWoINW51asg1bvVttW71b7VqzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2FsdCIgbXNnaWQ9IjQ4NTY4Njg4MjAwNDAwNTE5MzkiPiJBbHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9jYW5jZWwiIG1zZ2lkPSIxMjAzOTg0MDE3MjQ1NzgzMjQ0Ij4i1YnVpdWy1aHWgNWv1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiLVi9W21bvVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZG9uZSIgbXNnaWQ9IjE5OTI1NzExMTg0NjY2Nzk3NzUiPiLUv9Wh1b/VodaA1b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfbW9kZV9jaGFuZ2UiIG1zZ2lkPSI0NTQ3Mzg3NzQxOTA2NTM3NTE5Ij4i1YzVpdWq1avVtNWrINaD1bjWg9W41a3VuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+ItWE1bjWgtW/1oQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrIiBtc2dpZD0iMjIyODUyNDkwMDQzOTgwMTQ1MyI+ItSx1brVodWv1bjVstW61aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9jYW1lcmEiIG1zZ2lkPSI5NjkwNzE5OTc1NTI0ODY4MTQiPiLVltW41b/VuNWt1oHVq9WvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NpbGVudCIgbXNnaWQ9Ijg5MzU1MTI4Nzc0NjUyMjE4MiI+ItS81bjWgtW8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NvdW5kb24iIG1zZ2lkPSIzMDA1MjQ2NjY3NTUwMDE3MiI+ItWB1aHVtdW21agg1bTVq9Wh1oHVttWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2VhcmNoIiBtc2dpZD0iMzA5MTU4NzI0OTc3NjAzMzEzOSI+ItWI1oDVuNW21aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl91cCIgbXNnaWQ9IjcxNjkwMzI0NzgyNTk0ODUxODAiPiLVjdWh1bDVpdaB1oDVpdaEINW+1aXWgNaHIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi3VqyDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9kb3duIiBtc2dpZD0iNTA4NzczOTcyODYzOTAxNDU5NSI+ItWN1aHVsNWl1oHWgNWl1oQg1oHVodWuIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi3VqyDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9sZWZ0IiBtc2dpZD0iNzIwNzQ3ODcxOTgwNTU2MjE2NSI+ItWN1aHVsNWl1oHWgNWl1oQg1bHVodWtYCA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4t1asg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fcmlnaHQiIG1zZ2lkPSI4MDM0NDMzMjQyNTc5NjAwOTgwIj4i1Y3VodWw1aXWgdaA1aXWhCDVodW7YCA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4t1asg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VyX3N3aXRjaGVkIiBtc2dpZD0iMzc2ODAwNjc4MzE2Njk4NDQxMCI+ItWG1aXWgNWv1aHVtdWr1b0g1oXVo9W/1b7VuNWy1aggPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VtZXJnZW5jeV9jYWxsX2xhYmVsIiBtc2dpZD0iNjg0OTQ2MTkyNTIzODMwNTMxIj4i1LHWgNW/1aHVr9Wh1oDVoyDVq9aA1aHVvtWr1bPVodWv1asg1bDVpdW81aHVrdW41b3VodWm1aHVttWjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSI4ODUyMDIxNDY3ODY4MjIwNjA4Ij4i1YTVuNW81aHWgdWl1awg1aXVtCDVvdWt1aXVtNWh1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXR0ZXJuIiBtc2dpZD0iMTg1MDgwNjA3MDgwMTM1ODgzMCI+ItWN1a3VodWsINW91a3VpdW01aEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiLVjdWt1aHVrCDVo9Wh1bLVv9W21aHVotWh1bwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4i1Y3VrdWh1awgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiLVk9W41oDVsdWl1oQg1a/WgNWv1avVtiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g1b7VodW11oDVr9W11aHVttWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiLVgNWh1b7VodaE1aXWhCDVsdWl1oAg1b3VrdWl1bTVodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4i1YTVuNaC1b/WhNWh1aPWgNWl1oQgU0lNLdWrIFBJTi3VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzc3MjQyMjMzNDk1MTExNTU3Ij4i1YTVuNaC1b/WhNWh1aPWgNWl1oQgUElOLdWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+ItWE1bjWgtW/1oTVodWj1oDVpdaEINWj1aHVstW/1bbVodWi1aHVvNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4iU0lNLdWoINWh1bXVvSDVutWh1bDVq9W2INWh1bbVu9Wh1b/VvtWh1a4g1ac6INWE1bjWgtW/1oTVodWj1oDVpdaEIFBVSyDVr9W41aTVqCDVt9Wh1oDVuNaC1bbVodWv1aXVrNW41oIg1bDVodW01aHWgDog1YTVodW21oDVodW01aHVvdW21aXWgNWrINWw1aHVtNWh1oAg1a/VodW61b7VpdaEINaF1brVpdaA1aHVv9W41oDVqyDVsNWl1b86Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+ItWE1bjWgtW/1oTVodWj1oDVpdaEINaB1aHVttWv1aHVrNWrIFBJTiDVrtWh1a7Vr9Wh1aPVq9aA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4i1YDVodW91b/VodW/1aXWhCDWgdWh1bbVr9Wh1azVqyBQSU4g1a7VodWu1a/VodWj1avWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiLUsdW61aHVr9W41bLVutW41oLVtCDVpyBTSU0g1oTVodaA1b/VqCAuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLVhNW41oLVv9aE1aHVo9aA1aXWhMKgUElOLCDVuNaA1aggNC3Vq9aBIDgg1anVq9W+INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyDVr9W41aTVqCDVutWl1b/WhCDVpyDVrNWr1bbVqyA4INWv1aHVtCDVodW+1aXVrNWrINWp1avVvjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLVjtWl1oDVodW01bjWgtW/1oTVodWj1oDVpdaEINWz1avVt9W/IFBVSyDVrtWh1a7Vr9Wh1aPVq9aA1ag6INS/1oDVr9W21b7VuNWyINaD1bjWgNWx1aXWgNWoINWo1bbVpNW01avVt9W/INWv1a/VodW91aXWgdW21aXVtiBTSU0g1oTVodaA1b/VqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4iUElOINWu1aHVrtWv1aHVo9aA1aXWgNWoINW51aXVtiDVsNWh1bTVqNW21a/VttW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+ItWJ1aHWg9Wr1oEg1bfVodW/INW91a3VpdW01aHVtdWrINaD1bjWgNWx1aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLUsdW61aHVr9W41bLVutWl1azVuNaCINWw1aHVtNWh1oBgINW01bjWgtW/1oQg1aPVuNaA1a7VpdaEINWx1aXWgCBHb29nbGUg1bDVodW31b7VuNW+OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4i1ZXVo9W/1aHVttW41oLVtiAo1afVrNaD1bjVvdW/KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4i1LPVodWy1b/VttWh1aLVodW81agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNTM1NTkwNDU4MjY3NDA1NDcwMiI+ItWE1bjWgtW/1oQg1aPVuNaA1a7VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjU3NTQ2NjQxMTkzMTk4NzIxOTciPiLVjdWt1aHVrCDWhdWj1b/VodW21bjWgtW2INWv1aHVtCDVo9Wh1bLVv9W21aHVotWh1bw6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+ItWE1bjVvNWh1oHVpdWe1awg1aXWhCDVsdWl1oAg1oXVo9W/1aHVttW41oLVttWoINWv1aHVtCDVo9Wh1bLVv9W21aHVotWh1bzVqDpcbtSx1bXWgdWl1azVpdaEICI8Yj4iZ29vZ2xlLmNvbSAvYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiI6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSIxMDUyNjg1MTk3NzEwMjUyMzk1Ij4i1YDVodW31avVvtWoINW91b/VuNaC1aPVvtW41oLVtCDVpy4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i1LTVuNaC1oTCoDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQg1b3VrdWh1awg1aXWhCDVtNW41oLVv9aE1aHVo9aA1aXVrCDVsdWl1oAgUElOLdWoOiBcblxu1ZPVuNaA1bHVpdaEINWv1oDVr9Wr1bYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g1b7VodW11oDVr9W11aHVttWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+ItS01bjWgtaEINW91a3VodWsINWl1oQg1bTVuNaC1b/WhNWh1aPWgNWl1awg1bHVpdaAINWj1aHVstW/1bbVodWi1aHVvNWoIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQ6IFxuXG7Vk9W41oDVsdWl1oQg1a/WgNWv1avVtiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVvtWh1bXWgNWv1bXVodW21avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGF0dGVybl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc0MDg5NDc1OTY1MDUwODA1Ij4i1LTVuNaC1oTCoDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQg1b3VrdWh1awg1aXWhCDVsNWh1b7VodaE1aXVrCDVsdWl1oAg1aHVutWh1a/VuNWy1brVtNWh1bYg1b3VrdWl1bTVodW2OiBcblxu1ZPVuNaA1bHVpdaEINWv1oDVr9Wr1bYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g1b7VodW11oDVr9W11aHVttWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTc1NTU3MjAwNjI3MTI4OTQ5Ij4i1LTVuNaC1oTCoDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQg1b3VrdWh1awg1oPVuNaA1bEg1aXWhCDVodaA1aXVrCDVo9aA1aHVvdWh1azVq9Wv1bYg1aHVutWh1a/VuNWy1brVpdWs1bjWgiDVsNWh1bTVodaAOiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVodW21aPVodW01avWgSDVodW+1aXVrCDVodW21bDVodW71bjVsiDWg9W41oDVsdWl1oDVq9aBINWw1aXVv9W4INWj1oDVodW91aHVrNWr1a/VqCDVr9W+1aXWgNWh1a/VodaA1aPVodW+1bjWgNW+1asg1aPVuNaA1a7VodaA1aHVttWh1bXVq9W2INWs1bzVpdWs1bXVodW11bbVqywg1ocg1oXVo9W/1b7VuNWy1asg1aLVuNWs1bjWgCDVv9W+1bXVodWs1bbVpdaA1agg1a/Vr9W41oDVpdW2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQwNTEwMTU5NDMwMzgxOTk5MTAiPiLUtNW41oLWhMKgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtCDVvdWt1aHVrCDWg9W41oDVsSDVpdaEINWh1oDVpdWsINWw1aXVvNWh1a3VuNW91bYg1aHVutWh1a/VuNWy1brVpdWs1bjWgiDVsNWh1bTVodaAOiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVodW21aPVodW01avWgSDVodW+1aXVrCDVodW21bDVodW71bjVsiDWg9W41oDVsdWl1oDVq9aBINWw1aXVv9W4INWw1aXVvNWh1a3VuNW91agg1a/VvtWl1oDVodWv1aHWgNWj1aHVvtW41oDVvtWrINWj1bjWgNWu1aHWgNWh1bbVodW11avVtiDVrNW81aXVrNW11aHVtdW21assINaHINaF1aPVv9W+1bjVstWrINWi1bjVrNW41oAg1b/VvtW11aHVrNW21aXWgNWoINWv1a/VuNaA1aXVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA3Mjk5NjI2OTE0ODQ4MzYzNyI+ItS01bjWgtaEIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDVodW21aPVodW0INW91a3VodWsINaD1bjWgNWxINWl1oQg1aHWgNWl1awg1aPWgNWh1b3VodWs1avVr9W2INWh1brVodWv1bjVstW61aXVrNW41oIg1bDVodW01aHWgDog1LPWgNWh1b3VodWs1avVr9W2INWh1bXVqtW0INWv1b7VpdaA1aHVr9Wh1oDVo9Wh1b7VuNaA1b7VqyDVo9W41oDVrtWh1oDVodW21aHVtdWr1bYg1azVvNWl1azVtdWh1bXVttWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDgxNzYyNzQ3NDQxOTQ3MTUxOCI+ItS01bjWgtaEwqA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtCDVvdWt1aHVrCDWg9W41oDVsSDVpdaEINWh1oDVpdWswqDVsNWl1bzVodWt1bjVvdW2INWh1brVodWv1bjVstW61aXVrNW41oIg1bDVodW01aHWgDog1YDVpdW81aHVrdW41b3VtiDVodW11arVtCDVr9W+1aXWgNWh1a/VodaA1aPVodW+1bjWgNW+1asg1aPVuNaA1a7VodaA1aHVttWh1bXVq9W2INWs1bzVpdWs1bXVodW11bbVqzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4i1LTVuNaC1oQg1b3VrdWh1awg1aXWhCDVsNWh1b7VodaE1aXVrCDVsdWl1oAg1aHVutWh1a/VuNWy1brVtNWh1bYg1b3VrdWl1bTVodW2IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQ6INS11b7VvSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVodW21bDVodW71bjVsiDWg9W41oDVsdWr1oEg1bDVpdW/1bgg1bHVpdWm1aHVttWr1oEg1a/VutWh1bDVodW21bvVvtWrINWh1brVodWv1bjVstW61aXVrCDVsdWl1oAg1aPWgNWh1b3VodWs1avVr9WoYCDWhdWj1b/VodWj1bjWgNWu1aXVrNW41b4g1afVrNaD1bjVvdW/1asg1bDVodW31avVvjpcblxuINWT1bjWgNWx1aXWhCDVr9aA1a/Vq9W2IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INW+1aHVtdaA1a/VtdWh1bbVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i1LTVuNaC1oTCoDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQg1b3VrdWh1awg1aXWhCDVsNWh1b7VodaE1aXVrCDVsdWl1oAg1aHVutWh1a/VuNWy1brVtNWh1bYg1bbVtNW41oLVt9WoOiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVodW21aPVodW01avWgSDVodW+1aXVrCDVodW21bDVodW71bjVsiDWg9W41oDVsdWl1oDVq9aBINWw1aXVv9W4INWx1aXVpiDVr9Wh1bzVodW71aHWgNWv1b7VqyDVodW61aHVr9W41bLVutWl1awg1bHVpdaAINWw1aXVvNWh1a3VuNW91ahgINaF1aPVv9Wh1aPVuNaA1a7VpdWs1bjVviDVp9Ws1oPVuNW91b/VqyDVsNWh1bfVq9W+OlxuXG4g1ZPVuNaA1bHVpdaEINWv1oDVr9Wr1bYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g1b7VodW11oDVr9W11aHVttWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i1YDVpdW81aHWgdW21aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4i1Y3VrdWh1awgU0lNIFBJTiDVr9W41aTVqyDVutWh1b/Vs9Wh1bzVuNW+INW61aXVv9aEINWnINWk1avVtNWl1oQg1bHVpdaAINaF1brVpdaA1aHVv9W41oDVq9W21Z0g1b3VodaA1oTVtiDVodaA1aPVpdWs1aHVotWh1oHVpdWs1bjWgiDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iU0lNIFBJTiDVr9W41aTVqCDVvdWt1aHVrCDVpzog1YTVttWh1oEgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INaD1bjWgNWxLCDVuNaA1avWgSDVsNWl1b/VuCDVutWl1b/WhCDVpyDVpNWr1bTVpdaEINWx1aXWgCDWhdW61aXWgNWh1b/VuNaA1avVttWdINW91aHWgNaE1bYg1aHWgNWj1aXVrNWh1aLVodaB1aXVrNW41oIg1bDVodW01aHWgDoiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJTSU0gUElOINWv1bjVpNWoINW91a3VodWsINWnOiDVhNW21aHWgSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g1oPVuNaA1bE6IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJTSU0t1agg1bDVttWh1oDVodW+1bjWgCDVudWnINaF1aPVv9Wh1aPVuNaA1a7VpdWsOiDUtNWr1bTVpdaEINWx1aXWgCDWhdW61aXWgNWh1b/VuNaA1avVtjoiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IlNJTSBQVUsg1a/VuNWk1agg1b3VrdWh1awg1ac6INWE1bbVodaBIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDWg9W41oDVsdWdINW01avVttW51ocgU0lNLdWrINWo1bbVpNW01avVt9W/INWh1oDVo9Wl1azVodaD1aHVr9W41oLVtNWoOiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IlNJTSBQVUsg1a/VuNWk1agg1b3VrdWh1awg1ac6INWE1bbVodaBIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDWg9W41oDVsdWdINW01avVttW51ocgU0lNLdWrINWo1bbVpNW01avVt9W/INWh1oDVo9Wl1azVodaD1aHVr9W41oLVtNWoOiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iU0lNIFBJTiDVo9W41oDVrtW41bLVuNaC1anVtdW41oLVttWoINWx1aHVrdW41bLVvtWl1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJTSU0gUFVLINWj1bjWgNWu1bjVstW41oLVqdW11bjWgtW21agg1bHVodWt1bjVstW+1aXWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4i1L/VuNWk1bYg1ajVttWk1bjWgtW21b7VpdaBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+ItWG1aHVrdW41oDVpCDVsNWl1b/VodWj1a7VqyDVr9W41bPVodWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4i1YDVodW71bjWgNWkINWw1aXVv9Wh1aPVrtWrINWv1bjVs9Wh1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4i1LTVodWk1aHWgNWrINWv1bjVs9Wh1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjI5MjQ2Mjg4NjM3NDExNTA5NTYiPiLVhtW+1aHVo9Wh1oDVr9W01aHVtiDVr9W41bPVodWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSIzMDg0MTc5MzI0ODEwNTc1Nzg3Ij4i1LTVodWk1aHWgNWrINWv1bjVs9Wh1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jYXJyaWVyX2RlZmF1bHQiIG1zZ2lkPSI4NzAwNjUwNDAzMDU0MDQyMTUzIj4i1L7VodW81aHVtdW41oLVqdW11bjWgtW2INW51a/VoToiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtaHkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWh5L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5YjNjNzkKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWh5L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMTM4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qIC8vZGV2aWNlL2FwcHMvY29tbW9uL2Fzc2V0cy9yZXMvYW55L3N0cmluZ3MueG1sCisqKgorKiogQ29weXJpZ2h0IDIwMDYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+ItWE1bjWgtW/1oTVodWj1oDVpdaEIFBJTiDVr9W41aTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+ItWE1bjWgtW/1oTVodWj1oDVpdaEIFBVSy3VqCDWhyDVttW41oAgUElOINWv1bjVpNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsg1a/VuNWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLVhtW41oAgUElOINWu1aHVrtWv1aHVo9Wr1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiLVgNW61aXWhGAg1aPVodWy1b/VttWh1aLVodW81agg1bTVuNaC1b/WhNWh1aPWgNWl1azVuNaCINWw1aHVtNWh1oAiPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLVhNW41oLVv9aE1aHVo9aA1aXWhCDVo9Wh1bLVv9W21aHVotWh1bzVqCDVodW61aHVr9W41bLVutW01aHVtiDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i1YTVuNaC1b/WhNWh1aPWgNWl1oQgUElOLdWoINWh1brVodWv1bjVstW61bTVodW2INWw1aHVtNWh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLVjdWt1aHVrCBQSU4g1a7VodWu1a/VodWj1avWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4i1LHVutWh1a/VuNWy1brVtNWh1bYg1bDVodW01aHWgCDVvdWl1bLVtNWl1oQg1ZHVodW21a8sINWh1brVoSAwOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLUsdW81aHVvtWl1azVodWj1bjWgtW11bYg1LTVpdW01oTVuNW+INWh1brVodWv1bjVstW61bTVodW2INaD1bjWgNWx1aXWgNWoINWj1aXWgNWh1abVodW21oHVvtWh1a4g1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NoYXJnZWQiIG1zZ2lkPSIzMjcyMjIzOTA2MDczNDkyNDU0Ij4i1LzVq9aB1oTVodW+1bjWgNW+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3BsdWdnZWRfaW4iIG1zZ2lkPSI4MTE3NTcyMDAwNjM5OTk4Mzg4Ij4i1LzVq9aB1oTVodW+1bjWgNW41oLVtCwgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xvd19iYXR0ZXJ5IiBtc2dpZD0iODE0MzgwODAxODcxOTE3Mzg1OSI+ItWE1avVodaB1oDVpdaEINWx1aXWgCDVrNWr1oHWhNWh1b7VuNaA1avVudWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSIxMzMyMjg4MjY4NjAwMzI5ODQxIj4i1LHVutWh1a/VuNWy1brVpdWs1bjWgiDVsNWh1bTVodaAINW91aXVstW01aXWhCDVkdWh1bbVr9WoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX25ldHdvcmtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI5MTY5NzE3Nzc5MDU4MDM3MTY4Ij4i1ZHVodW21oHVqCDVr9W41bLVutW+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0OTQ5ODA1NjEzMDQyMTE5MzEiPiJTSU0g1oTVodaA1b8g1bnVr9WhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTQ0NTg0OTAwNTkwOTI2MDAzOSI+ItSz1oDVodW91aHVrNWr1a/VuNaC1bQgU0lNINaE1aHWgNW/INW51a/VoToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ4MTExMDM5NTUwODYzNzY0MyI+ItWA1aXVvNWh1a3VuNW91asg1bTVpdW7IFNJTSDWhNWh1oDVvyDVudWv1aE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTIxMDg5MTUwOTk5NTk0MjI1MCI+ItS21aXVv9Wl1bLVpdaEIFNJTSDWhNWh1oDVv9WoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iNTk2ODk4NTQ4OTQ2Mzg3MDM1OCI+IlNJTSDWhNWh1oDVv9WoINWi1aHWgdWh1a/VodW11bjWgtW0INWnINWv1aHVtCDVudWrINWv1aHWgNW41bIg1a/VodaA1aTVodaB1b7VpdWsOiDVhNW/1oHWgNWl1oQgU0lNINaE1aHWgNW/OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjgzNDA4MTM5ODk1ODY2MjIzNTYiPiLUsdW21brVq9W/1aHVtiBTSU0g1oTVodaA1b86Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1ODkyOTQwOTA5Njk5NzIzNTQ0Ij4i1YHVpdaAIFNJTSDWhNWh1oDVv9WoINWo1bbVpNW01avVt9W/INWv1aHVvdWl1oHVvtWl1awg1ac6XG7Uv9Wh1brVvtWl1oQg1bHVpdaAINWi1bvVu9Wh1bXVq9W2INWu1aHVvNWh1bXVuNaC1anVtdWh1bYg1bTVodW/1aHVr9Wh1oDVodaA1asg1bDVpdW/INW21bjWgCBTSU0g1oTVodaA1b8g1bHVpdW81oQg1aLVpdaA1aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI2ODc1NzczNDEzMzA2MzgwOTAyIj4iU0lNINaE1aHWgNW/1agg1a/VuNWy1brVvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3B1a19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NDcyMzI0Njc0NzE4MDE2MzMiPiJTSU0g1oTVodaA1b/VqCBQVUst1bjVviDVr9W41bLVutW+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzk3NTIyMTgwNTAzMzYxNDQyNiI+IlNJTSDWhNWh1oDVv9WoINWh1brVodWv1bjVstW61b7VuNaC1bQg1acuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9jaGFuZ2VkIiBtc2dpZD0iNTY3ODYyNDYyNDY4MTQwMDE5MSI+IiUxJHMuINWO1avVu9Wl1akgJTIkZCBvZiAlMyRkOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiLUsdW+1aXVrNWh1oHVttWl1awg1b7Vq9W71aXVqToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9lbXB0eV9zbG90IiBtc2dpZD0iMTI4MTUwNTcwMzMwNzkzMDc1NyI+ItS01aHVv9Wh1oDVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfZXhwYW5kZWQiIG1zZ2lkPSIyMjc4MTA2MDIyMzExMTcwMjk5Ij4i1LHVutWh1a/VuNWy1brVtNWh1bYg1b/VodaA1aHVrtaE1bYg1ajVttWk1azVodW11bbVvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9jb2xsYXBzZWQiIG1zZ2lkPSI2MzY2OTkyMDY2OTM2MDc2Mzk2Ij4i1LHVutWh1a/VuNWy1brVtNWh1bYg1b/VodaA1aHVrtaE1agg1aXVvyDVpyDVrtWh1azVvtWh1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXQiIG1zZ2lkPSI2NTI3MTMxMDM5NzQxODA4MjQwIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g1b7Vq9W71aXVqToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VzZXJfc2VsZWN0b3IiIG1zZ2lkPSIxMjI2Nzk4MzcwOTEzNjk4ODk2Ij4i1ZXVo9W/1b7VuNWy1asg1ajVttW/1oDVq9W5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zdGF0dXMiIG1zZ2lkPSI4MDA4MjY0NjAzOTM1OTMwNjExIj4i1L/VodaA1aPVodW+1avVs9Wh1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2NhbWVyYSIgbXNnaWQ9Ijg5MDQyMzExOTQxODExMTQ2MDMiPiLVltW41b/VuNWt1oHVq9WvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z2F1cmRfYWNjZXNzaWJpbGl0eV9tZWRpYV9jb250cm9scyIgbXNnaWQ9IjI2MjIwOTY1NDI5MjE2MTgwNiI+ItWE1aXVpNWr1aEg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfc3RhcnQiIG1zZ2lkPSI4NzM2ODUzNjE1NTg4ODI4MTk3Ij4i1Y7Vq9W71aXVqdW21aXWgNWrINW+1aXWgNWh1aTVodW91aHVvtW41oDVuNaC1bTVqCDVtNWl1a/VttWh1oDVr9Wl1awg1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9lbmQiIG1zZ2lkPSI3MTcwMTkwOTUwODcwNDY4MzIwIj4i1Y7Vq9W71aXVqdWrINW+1aXWgNWh1aTVodW91aHVvtW41oDVuNaC1bTVtiDVodW+1aHWgNW/1b7VpdaBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4i1Y7Vq9W71aXVqSA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPi3VqCDVu9W21bvVvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4i1LjVttWk1azVodW11bbVpdWsINWh1brVodWv1bjVstW61bTVodW2INW/1aHWgNWh1a7VuNaC1anVtdW41oLVttWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfdW5sb2NrIiBtc2dpZD0iMjk1OTkyODQ3ODc2NDY5NzI1NCI+ItS31bvVqyDVodW61aHVr9W41bLVutW41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fdW5sb2NrIiBtc2dpZD0iMTQ5MDg0MDcwNjA3NTI0NjYxMiI+ItWN1a3VpdW01aHVtdW41b4g1aHVutWh1a/VuNWy1brVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9mYWNlX3VubG9jayIgbXNnaWQ9IjQ4MTcyODI1NDMzNTE3MTg1MzUiPiLUtNWl1bTWhNW41b4g1aHVutWh1a/VuNWy1brVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9waW5fdW5sb2NrIiBtc2dpZD0iMjQ2OTY4NzExMTc4NDAzNTA0NiI+IlBpbi3VtiDVodW61aHVr9W41bLVutW+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLUs9Wh1bLVv9W21aHVotWh1bzVqyDVodW61aHVr9W41bLVutW41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fYXJlYSIgbXNnaWQ9Ijc2Nzk4OTEzMjQ1MDk1OTc5MDQiPiLVjdWt1aXVtNWh1bXVqyDVv9Wh1oDVodWu1oQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV9hcmVhIiBtc2dpZD0iNjczNjA2NDQ5NDAxOTk3OTU0NCI+ItWN1aHVsNWl1oHVtNWh1bYg1b/VodaA1aHVrtaEOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSIxMzM3Mjg2NTM4MzE4NTQzNTU1Ij4i1YbVodWt1bjWgNWkINWw1aXVv9Wh1aPVrtWrINWv1bjVs9Wh1a/VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI3MDczOTI4MzAwNDQ0OTA5MzIwIj4i1YDVodW71bjWgNWkINWw1aXVv9Wh1aPVrtWrINWv1bjVs9Wh1a/VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+ItS01aHVpNWh1oDVqyDVr9W41bPVodWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiLVhtW+1aHVo9Wh1oDVr9W01aHVtiDVr9W41bPVodWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiLUv9Wh1bbVo9WrINWv1bjVs9Wh1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2FsdCIgbXNnaWQ9IjQ4NTY4Njg4MjAwNDAwNTE5MzkiPiJBbHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9jYW5jZWwiIG1zZ2lkPSIxMjAzOTg0MDE3MjQ1NzgzMjQ0Ij4i1YnVpdWy1aHWgNWv1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiLVi9W21bvVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZG9uZSIgbXNnaWQ9IjE5OTI1NzExMTg0NjY2Nzk3NzUiPiLUv9Wh1b/VodaA1b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfbW9kZV9jaGFuZ2UiIG1zZ2lkPSI0NTQ3Mzg3NzQxOTA2NTM3NTE5Ij4i1YzVpdWq1avVtNWrINaD1bjWg9W41a3VuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+ItWE1bjWgtW/1oQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrIiBtc2dpZD0iMjIyODUyNDkwMDQzOTgwMTQ1MyI+ItSx1brVodWv1bjVstW61aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9jYW1lcmEiIG1zZ2lkPSI5NjkwNzE5OTc1NTI0ODY4MTQiPiLVltW41b/VuNWt1oHVq9WvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NpbGVudCIgbXNnaWQ9Ijg5MzU1MTI4Nzc0NjUyMjE4MiI+ItS81bjWgtW8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NvdW5kb24iIG1zZ2lkPSIzMDA1MjQ2NjY3NTUwMDE3MiI+ItWB1aHVtdW21agg1bTVq9Wh1oHVttWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2VhcmNoIiBtc2dpZD0iMzA5MTU4NzI0OTc3NjAzMzEzOSI+ItWI1oDVuNW21aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl91cCIgbXNnaWQ9IjcxNjkwMzI0NzgyNTk0ODUxODAiPiLVjdWh1bDVpdaB1oDVpdaEINW+1aXWgNaHIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi3VqyDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9kb3duIiBtc2dpZD0iNTA4NzczOTcyODYzOTAxNDU5NSI+ItWN1aHVsNWl1oHWgNWl1oQg1oHVodWuIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi3VqyDVsNWh1bTVodaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9sZWZ0IiBtc2dpZD0iNzIwNzQ3ODcxOTgwNTU2MjE2NSI+ItWN1aHVsNWl1oHWgNWl1oQg1bHVodWtYCA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4t1asg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fcmlnaHQiIG1zZ2lkPSI4MDM0NDMzMjQyNTc5NjAwOTgwIj4i1Y3VodWw1aXWgdaA1aXWhCDVodW7YCA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4t1asg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VyX3N3aXRjaGVkIiBtc2dpZD0iMzc2ODAwNjc4MzE2Njk4NDQxMCI+ItWG1aXWgNWv1aHVtdWr1b0g1oXVo9W/1b7VuNWy1aggPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VtZXJnZW5jeV9jYWxsX2xhYmVsIiBtc2dpZD0iNjg0OTQ2MTkyNTIzODMwNTMxIj4i1LHWgNW/1aHVr9Wh1oDVoyDVq9aA1aHVvtWr1bPVodWv1asg1bDVpdW81aHVrdW41b3VodWm1aHVttWjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSI4ODUyMDIxNDY3ODY4MjIwNjA4Ij4i1YTVuNW81aHWgdWl1awg1aXVtCDVvdWt1aXVtNWh1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXR0ZXJuIiBtc2dpZD0iMTg1MDgwNjA3MDgwMTM1ODgzMCI+ItWN1a3VodWsINW91a3VpdW01aEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiLVjdWt1aHVrCDVo9Wh1bLVv9W21aHVotWh1bwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4i1Y3VrdWh1awgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiLVk9W41oDVsdWl1oQg1a/WgNWv1avVtiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g1b7VodW11oDVr9W11aHVttWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiLVgNWh1b7VodaE1aXWhCDVsdWl1oAg1b3VrdWl1bTVodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4i1YTVuNaC1b/WhNWh1aPWgNWl1oQgU0lNLdWrIFBJTi3VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzc3MjQyMjMzNDk1MTExNTU3Ij4i1YTVuNaC1b/WhNWh1aPWgNWl1oQgUElOLdWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+ItWE1bjWgtW/1oTVodWj1oDVpdaEINWj1aHVstW/1bbVodWi1aHVvNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4iU0lNLdWoINWh1bXVvSDVutWh1bDVq9W2INWh1bbVu9Wh1b/VvtWh1a4g1ac6INWE1bjWgtW/1oTVodWj1oDVpdaEIFBVSyDVr9W41aTVqCDVt9Wh1oDVuNaC1bbVodWv1aXVrNW41oIg1bDVodW01aHWgDog1YTVodW21oDVodW01aHVvdW21aXWgNWrINWw1aHVtNWh1oAg1a/VodW61b7VpdaEINaF1brVpdaA1aHVv9W41oDVqyDVsNWl1b86Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+ItWE1bjWgtW/1oTVodWj1oDVpdaEINaB1aHVttWv1aHVrNWrIFBJTiDVrtWh1a7Vr9Wh1aPVq9aA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4i1YDVodW91b/VodW/1aXWhCDWgdWh1bbVr9Wh1azVqyBQSU4g1a7VodWu1a/VodWj1avWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiLUsdW61aHVr9W41bLVutW41oLVtCDVpyBTSU0g1oTVodaA1b/VqCAuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiLVjdWt1aHVrCBQSU4g1a7VodWu1a/VodWj1avWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLVhNW41oLVv9aE1aHVo9aA1aXWhMKgUElOLCDVuNaA1aggNC3Vq9aBIDgg1anVq9W+INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyDVr9W41aTVqCDVutWl1b/WhCDVpyDVrNWr1bbVqyA4INWv1aHVtCDVodW+1aXVrNWrINWp1avVvjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLVjtWl1oDVodW01bjWgtW/1oTVodWj1oDVpdaEINWz1avVt9W/IFBVSyDVrtWh1a7Vr9Wh1aPVq9aA1ag6INS/1oDVr9W21b7VuNWyINaD1bjWgNWx1aXWgNWoINWo1bbVpNW01avVt9W/INWv1a/VodW91aXWgdW21aXVtiBTSU0g1oTVodaA1b/VqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4iUElOINWu1aHVrtWv1aHVo9aA1aXWgNWoINW51aXVtiDVsNWh1bTVqNW21a/VttW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+ItWJ1aHWg9Wr1oEg1bfVodW/INW91a3VpdW01aHVtdWrINaD1bjWgNWx1aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLUsdW61aHVr9W41bLVutWl1azVuNaCINWw1aHVtNWh1oBgINW01bjWgtW/1oQg1aPVuNaA1a7VpdaEINWx1aXWgCBHb29nbGUg1bDVodW31b7VuNW+OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4i1ZXVo9W/1aHVttW41oLVtiAo1afVrNaD1bjVvdW/KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4i1LPVodWy1b/VttWh1aLVodW81agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNTM1NTkwNDU4MjY3NDA1NDcwMiI+ItWE1bjWgtW/1oQg1aPVuNaA1a7VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjU3NTQ2NjQxMTkzMTk4NzIxOTciPiLVjdWt1aHVrCDWhdWj1b/VodW21bjWgtW2INWv1aHVtCDVo9Wh1bLVv9W21aHVotWh1bw6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+ItWE1bjVvNWh1oHVpdWe1awg1aXWhCDVsdWl1oAg1oXVo9W/1aHVttW41oLVttWoINWv1aHVtCDVo9Wh1bLVv9W21aHVotWh1bzVqDpcbtSx1bXWgdWl1azVpdaEICI8Yj4iZ29vZ2xlLmNvbSAvYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiI6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSIxMDUyNjg1MTk3NzEwMjUyMzk1Ij4i1YDVodW31avVvtWoINW91b/VuNaC1aPVvtW41oLVtCDVpy4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i1LTVuNaC1oTCoDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQg1b3VrdWh1awg1aXWhCDVtNW41oLVv9aE1aHVo9aA1aXVrCDVsdWl1oAgUElOLdWoOiBcblxu1ZPVuNaA1bHVpdaEINWv1oDVr9Wr1bYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g1b7VodW11oDVr9W11aHVttWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+ItS01bjWgtaEINW91a3VodWsINWl1oQg1bTVuNaC1b/WhNWh1aPWgNWl1awg1bHVpdaAINWj1aHVstW/1bbVodWi1aHVvNWoIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQ6IFxuXG7Vk9W41oDVsdWl1oQg1a/WgNWv1avVtiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVvtWh1bXWgNWv1bXVodW21avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGF0dGVybl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc0MDg5NDc1OTY1MDUwODA1Ij4i1LTVuNaC1oTCoDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQg1b3VrdWh1awg1aXWhCDVsNWh1b7VodaE1aXVrCDVsdWl1oAg1aHVutWh1a/VuNWy1brVtNWh1bYg1b3VrdWl1bTVodW2OiBcblxu1ZPVuNaA1bHVpdaEINWv1oDVr9Wr1bYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g1b7VodW11oDVr9W11aHVttWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTc1NTU3MjAwNjI3MTI4OTQ5Ij4i1LTVuNaC1oTCoDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQg1b3VrdWh1awg1oPVuNaA1bEg1aXWhCDVodaA1aXVrCDVo9aA1aHVvdWh1azVq9Wv1bYg1aHVutWh1a/VuNWy1brVpdWs1bjWgiDVsNWh1bTVodaAOiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVodW21aPVodW01avWgSDVodW+1aXVrCDVodW21bDVodW71bjVsiDWg9W41oDVsdWl1oDVq9aBINWw1aXVv9W4INWj1oDVodW91aHVrNWr1a/VqCDVr9W+1aXWgNWh1a/VodaA1aPVodW+1bjWgNW+1asg1aPVuNaA1a7VodaA1aHVttWh1bXVq9W2INWs1bzVpdWs1bXVodW11bbVqywg1ocg1oXVo9W/1b7VuNWy1asg1aLVuNWs1bjWgCDVv9W+1bXVodWs1bbVpdaA1agg1a/Vr9W41oDVpdW2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQwNTEwMTU5NDMwMzgxOTk5MTAiPiLUtNW41oLWhMKgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtCDVvdWt1aHVrCDWg9W41oDVsSDVpdaEINWh1oDVpdWsINWw1aXVvNWh1a3VuNW91bYg1aHVutWh1a/VuNWy1brVpdWs1bjWgiDVsNWh1bTVodaAOiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVodW21aPVodW01avWgSDVodW+1aXVrCDVodW21bDVodW71bjVsiDWg9W41oDVsdWl1oDVq9aBINWw1aXVv9W4INWw1aXVvNWh1a3VuNW91agg1a/VvtWl1oDVodWv1aHWgNWj1aHVvtW41oDVvtWrINWj1bjWgNWu1aHWgNWh1bbVodW11avVtiDVrNW81aXVrNW11aHVtdW21assINaHINaF1aPVv9W+1bjVstWrINWi1bjVrNW41oAg1b/VvtW11aHVrNW21aXWgNWoINWv1a/VuNaA1aXVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA3Mjk5NjI2OTE0ODQ4MzYzNyI+ItS01bjWgtaEIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDVodW21aPVodW0INW91a3VodWsINaD1bjWgNWxINWl1oQg1aHWgNWl1awg1aPWgNWh1b3VodWs1avVr9W2INWh1brVodWv1bjVstW61aXVrNW41oIg1bDVodW01aHWgDog1LPWgNWh1b3VodWs1avVr9W2INWh1bXVqtW0INWv1b7VpdaA1aHVr9Wh1oDVo9Wh1b7VuNaA1b7VqyDVo9W41oDVrtWh1oDVodW21aHVtdWr1bYg1azVvNWl1azVtdWh1bXVttWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDgxNzYyNzQ3NDQxOTQ3MTUxOCI+ItS01bjWgtaEwqA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g1aHVttWj1aHVtCDVvdWt1aHVrCDWg9W41oDVsSDVpdaEINWh1oDVpdWswqDVsNWl1bzVodWt1bjVvdW2INWh1brVodWv1bjVstW61aXVrNW41oIg1bDVodW01aHWgDog1YDVpdW81aHVrdW41b3VtiDVodW11arVtCDVr9W+1aXWgNWh1a/VodaA1aPVodW+1bjWgNW+1asg1aPVuNaA1a7VodaA1aHVttWh1bXVq9W2INWs1bzVpdWs1bXVodW11bbVqzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4i1LTVuNaC1oQg1b3VrdWh1awg1aXWhCDVsNWh1b7VodaE1aXVrCDVsdWl1oAg1aHVutWh1a/VuNWy1brVtNWh1bYg1b3VrdWl1bTVodW2IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQ6INS11b7VvSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVodW21bDVodW71bjVsiDWg9W41oDVsdWr1oEg1bDVpdW/1bgg1bHVpdWm1aHVttWr1oEg1a/VutWh1bDVodW21bvVvtWrINWh1brVodWv1bjVstW61aXVrCDVsdWl1oAg1aPWgNWh1b3VodWs1avVr9WoYCDWhdWj1b/VodWj1bjWgNWu1aXVrNW41b4g1afVrNaD1bjVvdW/1asg1bDVodW31avVvjpcblxuINWT1bjWgNWx1aXWhCDVr9aA1a/Vq9W2IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INW+1aHVtdaA1a/VtdWh1bbVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i1LTVuNaC1oTCoDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INWh1bbVo9Wh1bQg1b3VrdWh1awg1aXWhCDVsNWh1b7VodaE1aXVrCDVsdWl1oAg1aHVutWh1a/VuNWy1brVtNWh1bYg1bbVtNW41oLVt9WoOiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDVodW21aPVodW01avWgSDVodW+1aXVrCDVodW21bDVodW71bjVsiDWg9W41oDVsdWl1oDVq9aBINWw1aXVv9W4INWx1aXVpiDVr9Wh1bzVodW71aHWgNWv1b7VqyDVodW61aHVr9W41bLVutWl1awg1bHVpdaAINWw1aXVvNWh1a3VuNW91ahgINaF1aPVv9Wh1aPVuNaA1a7VpdWs1bjVviDVp9Ws1oPVuNW91b/VqyDVsNWh1bfVq9W+OlxuXG4g1ZPVuNaA1bHVpdaEINWv1oDVr9Wr1bYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g1b7VodW11oDVr9W11aHVttWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i1YDVpdW81aHWgdW21aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+ItWG1aHVrdW41oDVpCDVsNWl1b/VodWj1a7VqyDVr9W41bPVodWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4i1YDVodW71bjWgNWkINWw1aXVv9Wh1aPVrtWrINWv1bjVs9Wh1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4i1LTVodWk1aHWgNWrINWv1bjVs9Wh1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjI5MjQ2Mjg4NjM3NDExNTA5NTYiPiLVhtW+1aHVo9Wh1oDVr9W01aHVtiDVr9W41bPVodWvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSIzMDg0MTc5MzI0ODEwNTc1Nzg3Ij4i1LTVodWk1aHWgNWrINWv1bjVs9Wh1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jYXJyaWVyX2RlZmF1bHQiIG1zZ2lkPSI4NzAwNjUwNDAzMDU0MDQyMTUzIj4i1L7VodW81aHVtdW41oLVqdW11bjWgtW2INW51a/VoToiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtaW4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWluL3N0cmluZ3MueG1sCmluZGV4IDlmNzMxYWIuLjllMTk0NzIgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtaW4vc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1pbi9zdHJpbmdzLnhtbApAQCAtMjEsOSArMjEsOSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iS2V0aWsga29kZSBQSU4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiJLZXRpayBrb2RlIFBVSyBkYW4gUElOIGJhcnUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IktvZGUgUFVLIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiJLb2RlIFBpbiBiYXJ1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iS2V0aWsga29kZSBQSU4gYmFydSBkYW4gUFVLIFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxODAxOTQxMDUxMDk0OTc0NjA5Ij4iS29kZSBQVUsgU0lNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiJLb2RlIFBJTiBTSU0gYmFydSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IlNlbnR1aCB1bnR1ayBtZW5nZXRpa2thbiBzYW5kaSI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IktldGlrIHNhbmRpIHVudHVrIG1lbWJ1a2Ega3VuY2kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJLZXRpayBQSU4gdW50dWsgbWVtYnVrYSBrdW5jaSI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiJUb21ib2wgamVkYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iVG9tYm9sIHB1dGFyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJUb21ib2wgaGVudGlrYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4iQmFndXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiJKZWxlayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IkhhdGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiJCdWthIGt1bmNpIHVudHVrIG1lbGFuanV0a2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4iUGVsdW5jdXJhbiBkaWJhdGFsa2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+IkphdHVoa2FuIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHVudHVrIG1lbmdoYXB1cy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gdGlkYWsgYWthbiBkaWhhcHVzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgpAQCAtMTA1LDcgKzExMiw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4iTWFzdWtrYW4ga29kZSBQSU4geWFuZyBkaWluZ2lua2FuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IktvbmZpcm1hc2kga29kZSBQSU4geWFuZyBkaWluZ2lua2FuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJNZW1idWthIGt1bmNpIGthcnR1IFNJTeKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IktvZGUgUElOIHNhbGFoLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IktldGlrIFBJTiB5YW5nIHRlcmRpcmkgZGFyaSA0IHNhbXBhaSA4IGFuZ2thLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IktvZGUgUFVLIGhhcnVzIHRlcmRpcmkgZGFyaSA4IGFuZ2thIGF0YXUgbGViaWguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iTWFzdWtrYW4ga2VtYmFsaSBrb2RlIFBVSyB5YW5nIGJlbmFyLiBKaWthIGJlcnVsYW5nIGthbGkgZ2FnYWwsIFNJTSBha2FuIGRpbm9uYWt0aWZrYW4gc2VjYXJhIHBlcm1hbmVuLiI8L3N0cmluZz4KQEAgLTEyOSw2ICsxMzUsMTkgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iQW5kYSB0ZWxhaCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBrYWxpIHNhbGFoIG1lbmdnYW1iYXIgcG9sYSBwZW1idWthIGt1bmNpLiBTZXRlbGFoIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGxhZ2kgdXBheWEgZ2FnYWwsIEFuZGEgYWthbiBkaW1pbnRhIG1lbWJ1a2Ega3VuY2kgcG9uc2VsIG1lbmdndW5ha2FuIGFrdW4gZW1haWwuXG5cbkNvYmEgbGFnaSBkYWxhbSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBkZXRpay4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJIYXB1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iS29kZSBQSU4gU0lNIHNhbGFoLiBIdWJ1bmdpIG9wZXJhdG9yIHVudHVrIG1lbWJ1a2Ega3VuY2kgcGVyYW5na2F0LiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iS29kZSBQSU4gU0lNIHNhbGFoLCBzaXNhIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwZXJjb2JhYW4gc2ViZWx1bSBBbmRhIGhhcnVzIG1lbmdodWJ1bmdpIG9wZXJhdG9yIHVudHVrIG1lbWJ1a2Ega3VuY2kgcGVyYW5na2F0LiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+IktvZGUgUElOIFNJTSBzYWxhaCwgc2lzYSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gcGVyY29iYWFuLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iU0lNIHRpZGFrIGRhcGF0IGRpZ3VuYWthbi4gSHVidW5naSBvcGVyYXRvciBBbmRhLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iS29kZSBQVUsgU0lNIHNhbGFoLCBzaXNhIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwZXJjb2JhYW4gc2ViZWx1bSBTSU0gdGlkYWsgZGFwYXQgZGlndW5ha2FuIHNlbGFtYW55YS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiJLb2RlIFBVSyBTSU0gc2FsYWgsIHNpc2EgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHBlcmNvYmFhbiBzZWJlbHVtIFNJTSB0aWRhayBkYXBhdCBkaWd1bmFrYW4gc2VsYW1hbnlhLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iT3BlcmFzaSBQSU4gU0lNIGdhZ2FsISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4iT3BlcmFzaSBQVUsgU0lNIGdhZ2FsISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9hY2NlcHRlZCIgbXNnaWQ9IjE0NDgyNDE2NzM1NzAwMjAwOTciPiJLb2RlIERpdGVyaW1hISI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IlRvbWJvbCBsYWd1IHNlYmVsdW1ueWEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiJUb21ib2wgbGFndSBiZXJpa3V0bnlhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IlRvbWJvbCBqZWRhIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1pdC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtaXQvc3RyaW5ncy54bWwKaW5kZXggNGVkYTM0OC4uNzIxMmU1ZSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1pdC9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWl0L3N0cmluZ3MueG1sCkBAIC0yMSw5ICsyMSw5IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJJbnNlcmlzY2kgaWwgY29kaWNlIFBJTiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+Ikluc2VyaXNjaSBpbCBQVUsgZSBpbCBudW92byBjb2RpY2UgUElOIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJDb2RpY2UgUFVLIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiJOdW92byBjb2RpY2UgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iRGlnaXRhIGlsIFBVSyBkZWxsYSBTSU0gZSBpbCBudW92byBjb2RpY2UgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJDb2RpY2UgUFVLIGRlbGxhIFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iTnVvdm8gUElOIGRlbGxhIFNJTSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IlRvY2NhIHBlciBpbnNlcmlyZSBsYSBwYXNzd29yZCI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+Ikluc2VyaXNjaSBwYXNzd29yZCBwZXIgc2Jsb2NjYXJlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iSW5zZXJpc2NpIFBJTiBwZXIgc2Jsb2NjYXJlIjwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IlB1bHNhbnRlIFBhdXNhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJQdWxzYW50ZSBSaXByb2R1Y2kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+IlB1bHNhbnRlIGRpIGFycmVzdG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4iTWkgcGlhY2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiJQb2xsaWNlIGdpw7kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiJDdW9yZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IlNibG9jY2EgcGVyIGNvbnRpbnVhcmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJBdnZpbyBhbm51bGxhdG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4iUmlsYXNjaWEgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gcGVyIGVsaW1pbmFybG8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IG5vbiBzYXLDoCBlbGltaW5hdG8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC0xMDUsNyArMTEyLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiJJbnNlcmlzY2kgaWwgY29kaWNlIFBJTiBkZXNpZGVyYXRvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IkNvbmZlcm1hIGlsIGNvZGljZSBQSU4gZGVzaWRlcmF0byI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iU2Jsb2NjbyBzY2hlZGEgU0lNLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iQ29kaWNlIFBJTiBlcnJhdG8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iSWwgUElOIGRldmUgZXNzZXJlIGRpIDQtOCBudW1lcmkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iSWwgY29kaWNlIFBVSyBkb3ZyZWJiZSBhdmVyZSBhbG1lbm8gb3R0byBudW1lcmkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iSW5zZXJpc2NpIGRpIG51b3ZvIGlsIGNvZGljZSBQVUsgY29ycmV0dG8uIFJpcGV0dXRpIHRlbnRhdGl2aSBjb21wb3J0YW5vIGxhIGRpc2F0dGl2YXppb25lIGRlZmluaXRpdmEgZGVsbGEgc2NoZWRhIFNJTS4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+Ijx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IHRlbnRhdGl2aSBlcnJhdGkgZGkgaW5zZXJpbWVudG8gZGVsbGEgc2VxdWVuemEgZGkgc2Jsb2Njby4gRG9wbyBhbHRyaSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiB0ZW50YXRpdmkgZmFsbGl0aSwgdGkgdmVycsOgIGNoaWVzdG8gZGkgc2Jsb2NjYXJlIGlsIHRlbGVmb25vIGNvbiB1biBhY2NvdW50IGVtYWlsLlxuXG4gUmlwcm92YSB0cmEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2Vjb25kaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJMgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJSaW11b3ZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiJDb2RpY2UgUElOIGRlbGxhIFNJTSBlcnJhdG8uIERldmkgY29udGF0dGFyZSBsXCdvcGVyYXRvcmUgcGVyIHNibG9jY2FyZSBpbCBkaXNwb3NpdGl2by4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+IkNvZGljZSBQSU4gZGVsbGEgU0lNIGVycmF0by4gSGFpIGFuY29yYSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gdGVudGF0aXZvIGEgZGlzcG9zaXppb25lLCBkb3BvZGljaMOpIGRvdnJhaSBjb250YXR0YXJlIGxcJ29wZXJhdG9yZSBwZXIgc2Jsb2NjYXJlIGlsIGRpc3Bvc2l0aXZvLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+IkNvZGljZSBQSU4gZGVsbGEgU0lNIGVycmF0by4gSGFpIGFuY29yYSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gdGVudGF0aXZpIGEgZGlzcG9zaXppb25lLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iU0lNIGludXRpbGl6emFiaWxlLiBDb250YXR0YSBpbCB0dW8gb3BlcmF0b3JlLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iQ29kaWNlIFBVSyBkZWxsYSBTSU0gZXJyYXRvLiBIYWkgYW5jb3JhIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiB0ZW50YXRpdm8gYSBkaXNwb3NpemlvbmUgcHJpbWEgY2hlIGxhIFNJTSBkaXZlbnRpIGRlZmluaXRpdmFtZW50ZSBpbnV0aWxpenphYmlsZS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiJDb2RpY2UgUFVLIGRlbGxhIFNJTSBlcnJhdG8uIEhhaSBhbmNvcmEgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHRlbnRhdGl2aSBhIGRpc3Bvc2l6aW9uZSBwcmltYSBjaGUgbGEgU0lNIGRpdmVudGkgZGVmaW5pdGl2YW1lbnRlIGludXRpbGl6emFiaWxlLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iT3BlcmF6aW9uZSBjb24gUElOIGRlbGxhIFNJTSBub24gcml1c2NpdGEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJPcGVyYXppb25lIGNvbiBQVUsgZGVsbGEgU0lNIG5vbiByaXVzY2l0YS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iQ29kaWNlIGFjY2V0dGF0by4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiJQdWxzYW50ZSB0cmFjY2lhIHByZWNlZGVudGUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiJQdWxzYW50ZSB0cmFjY2lhIHN1Y2Nlc3NpdmEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4iUHVsc2FudGUgUGF1c2EiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWl3L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1pdy9zdHJpbmdzLnhtbAppbmRleCA4ZDM2MzA5Li4xMmI0NWU0IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWl3L3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtaXcvc3RyaW5ncy54bWwKQEAgLTIwLDQ5ICsyMCw0OSBAQAogCiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLXlNen15zXkyDXp9eV15MgUElOIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4i15TXp9ec15Mg15DXqiDXp9eV15Mg15QtUFVLINeV16fXldeTICDXlC1QSU4g15TXl9eT16kiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+Iten15XXkyBQVUsiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+Iten15XXkyBQSU4g15fXk9epIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4i4oCP15TXp9ec15Mg16fXldeTIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+IuKAj9eU16fXnNeTINen15XXkyBQVUsg16nXnCDXm9eo15jXmdehIFNJTSDXlden15XXkyBQSU4g15fXk9epIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiLigI/Xp9eV15MgUFVLINep15wg15vXqNeY15nXoSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+IuKAj9ee16HXpNeoIFBJTiDXl9eT16kg16nXnCDXm9eo15jXmdehIFNJTSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IteS16Ig15vXk9eZINec15TXp9ec15nXkyDXkNeqINeU16HXmdeh157XlCI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IteU16fXnNeTINeh15nXodee15Qg15zXkdeZ15jXldecINeU16DXoteZ15zXlCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IteU16fXnNeTINen15XXkyBQSU4g15zXkdeZ15jXldecINeU16DXoteZ15zXlCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMjQyMjIyNTU5MTAwNjEzNDkzNiI+Iten15XXkyBQSU4g16nXkteV15kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLigI/XlNen15zXkyDXp9eV15MgUElOINec15HXmdeY15XXnCDXlNeg16LXmdec15QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLigI/Xp9eV15MgUElOINep15LXldeZIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+Iteb15PXmSDXnNeR15jXnCDXkNeqINeU16DXoteZ15zXlCwg15zXl9elINei15wgXCfXqtek16jXmdeYXCcg15XXnNeQ15fXqCDXnteb158g16LXnCAwLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLXl9eo15LXqiDXntee16HXpNeoINeU16DXmdeh15nXldeg15XXqiDXlNee16jXkdeZINep15wg15bXmdeU15XXmSDXpNeo16bXldejIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjZXVubG9ja19tdWx0aXBsZV9mYWlsdXJlcyIgbXNnaWQ9Ijc1NDEzNzU4MzAyMjc5MjQyOSI+IteX16jXkteqINee157Xodek16gg15TXoNeZ16HXmdeV16DXldeqINeU157XqNeR15kg16nXnCDXlteZ15TXldeZINek16DXmdedIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2hhcmdlZCIgbXNnaWQ9IjMyNzIyMjM5MDYwNzM0OTI0NTQiPiLXmNei15XXnyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3BsdWdnZWRfaW4iIG1zZ2lkPSI4MTE3NTcyMDAwNjM5OTk4Mzg4Ij4i15jXldei158sIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sb3dfYmF0dGVyeSIgbXNnaWQ9IjgxNDM4MDgwMTg3MTkxNzM4NTkiPiLXl9eR16gg15DXqiDXlNee15jXotefLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSIxMzMyMjg4MjY4NjAwMzI5ODQxIj4i15zXl9elINei15wgXCfXqtek16jXmdeYXCcg15vXk9eZINec15HXmNecINeQ16og15TXoNei15nXnNeULiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX25ldHdvcmtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI5MTY5NzE3Nzc5MDU4MDM3MTY4Ij4i16jXqdeqINeg16LXldec15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNDk0OTgwNTYxMzA0MjExOTMxIj4i15DXmdefINeb16jXmNeZ16EgU0lNIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTQ0NTg0OTAwNTkwOTI2MDAzOSI+IteQ15nXnyDXm9eo15jXmdehIFNJTSDXkdeY15DXkdec15guIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0ODExMTAzOTU1MDg2Mzc2NDMiPiLXkNeZ158g15vXqNeY15nXoSBTSU0g15HXmNec16TXldefLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUyMTA4OTE1MDk5OTU5NDIyNTAiPiLXlNeb16DXoSDXm9eo15jXmdehIFNJTS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjU5Njg5ODU0ODk0NjM4NzAzNTgiPiLXm9eo15jXmdehINeULVNJTSDXl9eh16gg15DXlSDXqdec15Ag16DXmdeq158g15zXp9eo15XXkCDXkNeV16rXlS4g15TXm9eg16Eg15vXqNeY15nXoSBTSU0uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iODM0MDgxMzk4OTU4NjYyMjM1NiI+Itec15Ag16DXmdeq158g15zXlNep16rXntepINeR15vXqNeY15nXoSBTSU0g15bXlC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU4OTI5NDA5MDk2OTk3MjM1NDQiPiLXm9eo15jXmdehINeULVNJTSDXqdec15og15TXldep15HXqiDXnNem157Xmdeq15XXqi5cbtek16DXlCDXnNeh16TXpyDXlNep15nXqNeV16og15TXkNec15fXldeY15kg16nXnNeaINec16fXkdec16og15vXqNeY15nXoSBTSU0g15DXl9eoLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjY4NzU3NzM0MTMzMDYzODA5MDIiPiLXm9eo15jXmdehINeULVNJTSDXoNei15XXnC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMzc0NzIzMjQ2NzQ3MTgwMTYzMyI+Iteb16jXmNeZ16EgU0lNINeg16LXldecINeR15DXntem16LXldeqIFBVSy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzk3NTIyMTgwNTAzMzYxNDQyNiI+Itee15HXmNecINeg16LXmdec15Qg16nXnCDXm9eo15jXmdehIFNJTeKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4gV2lkZ2V0ICUyJGQg157XqteV15ogJTMkZC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2FkZF93aWRnZXQiIG1zZ2lkPSI4MjczMjc3MDU4NzI0OTI0NjU0Ij4i15TXldeh16MgV2lkZ2V0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0OTQ5ODA1NjEzMDQyMTE5MzEiPiLigI/XkNeZ158g15vXqNeY15nXoSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNDQ1ODQ5MDA1OTA5MjYwMDM5Ij4i4oCP15DXmdefINeb16jXmNeZ16EgU0lNINeR15jXkNeR15zXmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ4MTExMDM5NTUwODYzNzY0MyI+IuKAj9eQ15nXnyDXm9eo15jXmdehIFNJTSDXkdeY15zXpNeV158uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTIxMDg5MTUwOTk5NTk0MjI1MCI+IuKAj9eU15vXoNehINeb16jXmNeZ16EgU0lNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iNTk2ODk4NTQ4OTQ2Mzg3MDM1OCI+IuKAj9eb16jXmNeZ16Eg15QtU0lNINeX16HXqCDXkNeVINep15zXkCDXoNeZ16rXnyDXnNen16jXldeQINeQ15XXqteVLiDXlNeb16DXoSDXm9eo15jXmdehIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI4MzQwODEzOTg5NTg2NjIyMzU2Ij4i4oCP15zXkCDXoNeZ16rXnyDXnNeU16nXqtee16kg15HXm9eo15jXmdehIFNJTSDXlteULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTg5Mjk0MDkwOTY5OTcyMzU0NCI+IuKAj9eb16jXmNeZ16Eg15QtU0lNINep15zXmiDXlNeV16nXkdeqINec16bXnteZ16rXldeqLlxu16TXoNeUINec16HXpNenINeU16nXmdeo15XXqiDXlNeQ15zXl9eV15jXmSDXqdec15og15zXp9eR15zXqiDXm9eo15jXmdehIFNJTSDXkNeX16guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+IuKAj9eb16jXmNeZ16Eg15QtU0lNINeg16LXldecLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9wdWtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSIzNzQ3MjMyNDY3NDcxODAxNjMzIj4i4oCP15vXqNeY15nXoSBTSU0g16DXoteV15wg15HXkNee16bXoteV16ogUFVLLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3OTc1MjIxODA1MDMzNjE0NDI2Ij4i4oCP157XkdeY15wg16DXoteZ15zXlCDXqdecINeb16jXmNeZ16EgU0lN4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiLigI8lMSRzLiBXaWRnZXQgJTIkZCDXnteq15XXmiAlMyRkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiLigI/XlNeV16HXoyBXaWRnZXQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZW1wdHlfc2xvdCIgbXNnaWQ9IjEyODE1MDU3MDMzMDc5MzA3NTciPiLXqNeZ16ciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2V4cGFuZGVkIiBtc2dpZD0iMjI3ODEwNjAyMjMxMTE3MDI5OSI+IteQ15bXldeoINeR15nXmNeV15wg15TXoNei15nXnNeUINeU15XXqNeX15EuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9jb2xsYXBzZWQiIG1zZ2lkPSI2MzY2OTkyMDY2OTM2MDc2Mzk2Ij4i15DXlteV16gg15HXmdeY15XXnCDXlNeg16LXmdec15Qg15vXldeV16UuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXQiIG1zZ2lkPSI2NTI3MTMxMDM5NzQxODA4MjQwIj4iV2lkZ2V0IOKAjzx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0IiBtc2dpZD0iNjUyNzEzMTAzOTc0MTgwODI0MCI+IuKAj1dpZGdldCDigI88eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VzZXJfc2VsZWN0b3IiIG1zZ2lkPSIxMjI2Nzk4MzcwOTEzNjk4ODk2Ij4i15HXldeX16gg157Xqdeq157XqdeZ150iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3N0YXR1cyIgbXNnaWQ9IjgwMDgyNjQ2MDM5MzU5MzA2MTEiPiLXodeY15jXldehIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4i157Xptec157XlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWdhdXJkX2FjY2Vzc2liaWxpdHlfbWVkaWFfY29udHJvbHMiIG1zZ2lkPSIyNjIyMDk2NTQyOTIxNjE4MDYiPiLXpNen15PXmSDXnteT15nXlCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfc3RhcnQiIG1zZ2lkPSI4NzM2ODUzNjE1NTg4ODI4MTk3Ij4i16HXmdeT15XXqCDXnteX15PXqSDXqdecIFdpZGdldHMg15TXqteX15nXnC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiLXodeZ15PXldeoINee15fXk9epINep15wgV2lkZ2V0cyDXlNeh16rXmdeZ150uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZGVsZXRlZCIgbXNnaWQ9IjQ0MjYyMDQyNjM5MjkyMjQ0MzQiPiJXaWRnZXQg4oCPPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g16DXnteX16cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9zdGFydCIgbXNnaWQ9Ijg3MzY4NTM2MTU1ODg4MjgxOTciPiLigI/XodeZ15PXldeoINee15fXk9epINep15wgV2lkZ2V0cyDXlNeq15fXmdecLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfZW5kIiBtc2dpZD0iNzE3MDE5MDk1MDg3MDQ2ODMyMCI+IuKAj9eh15nXk9eV16gg157Xl9eT16kg16nXnCBXaWRnZXRzINeU16HXqteZ15nXnS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9kZWxldGVkIiBtc2dpZD0iNDQyNjIwNDI2MzkyOTIyNDQzNCI+IuKAj1dpZGdldCDigI88eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDXoNee15fXpy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2V4cGFuZF9sb2NrX2FyZWEiIG1zZ2lkPSI1MTk4NTk3MjA5MzQxNzgwMjQiPiLXlNeo15fXkSDXkNeqINeQ15bXldeoINeR15nXmNeV15wg15TXoNei15nXnNeULiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfdW5sb2NrIiBtc2dpZD0iMjk1OTkyODQ3ODc2NDY5NzI1NCI+IteR15nXmNeV15wg16DXoteZ15zXlCDXkdeQ157Xptei15XXqiDXlNeh15jXlC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fdW5sb2NrIiBtc2dpZD0iMTQ5MDg0MDcwNjA3NTI0NjYxMiI+IteR15nXmNeV15wg16DXoteZ15zXlCDXkdeQ157Xptei15XXqiDXpteZ15XXqCDXp9eVLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZmFjZV91bmxvY2siIG1zZ2lkPSI0ODE3MjgyNTQzMzUxNzE4NTM1Ij4i15HXmdeY15XXnCDXoNei15nXnNeUINeR15DXntem16LXldeqINeW15nXlNeV15kg16TXqNem15XXoy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4i15HXmdeY15XXnCDXoNei15nXnNeUINeR15DXntem16LXldeqINee16HXpNeoIFBJTi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+IteR15nXmNeV15wg16DXoteZ15zXlCDXkdeQ157Xptei15XXqiDXlteZ15TXldeZINek16DXmdedLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiLigI/XkdeZ15jXldecINeg16LXmdec15Qg15HXkNee16bXoteV16og157Xodek16ggUElOLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGFzc3dvcmRfdW5sb2NrIiBtc2dpZD0iNzY3NTc3NzYyMzkxMjE1NTA4OSI+IteR15nXmNeV15wg16DXoteZ15zXlCDXkdeQ157Xptei15XXqiDXodeZ16HXnteULiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl9hcmVhIiBtc2dpZD0iNzY3OTg5MTMyNDUwOTU5NzkwNCI+IteQ15bXldeoINem15nXldeoINen15UuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV9hcmVhIiBtc2dpZD0iNjczNjA2NDQ5NDAxOTk3OTU0NCI+IteQ15bXldeoINeU16HXmNeULiI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiLXnNeX16bXnyBcJ9eU16nXlNeUXCciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+Itec15fXptefIFwn15TXpNei15xcJyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4i15zXl9em158gXCfXlNek16HXp1wnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IteQ15TXkdeq15kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiLXnNeQINeQ15TXkdeq15kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiLXnNeRIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4i15HXmNecINeg16LXmdec15Qg15vXk9eZINec15TXntep15nXmiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IteU15TXpNei15zXlCDXkdeV15jXnNeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+Itep15fXqNeoINeQ16ogPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g15zXnteX15nXp9eULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDXnNeQINeZ15nXnteX16cuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4i15DXkdeSIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC05NSwzMCArMTAyLDI5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLXqdeb15fXqiDXkNeqINeU16fXlSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BhdHRlcm4iIG1zZ2lkPSIxODUwODA2MDcwODAxMzU4ODMwIj4i16fXlSDXkdeZ15jXldecINeg16LXmdec15Qg16nXkteV15kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiLXodeZ16HXnteUINep15LXldeZ15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4i157Xodek16ggUElOINep15LXldeZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGluIiBtc2dpZD0iMTEzMTMwNjUxMDgzMzU2MzgwMSI+IuKAj9ee16HXpNeoIFBJTiDXqdeS15XXmSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MzU4MTEwMjIxNjAzMjk3NTQ4Ij4i16DXodeUINep15XXkSDXkdei15XXkyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g16nXoNeZ15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5ODk3ODYxMTY4MzA3NTg2OCI+Itep16jXmNeYINeQ16og16fXlSDXkdeZ15jXldecINeU16DXoteZ15zXlCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV9waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjMxOTUwODU1MDkzNDU1NzMzMSI+IteU15bXnyDXnteh16TXqCBQSU4g15wtU0lNIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiLXlNeW158g157Xodek16ggUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4i4oCP15TXltefINee16HXpNeoIFBJTiDXnC1TSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IuKAj9eU15bXnyDXnteh16TXqCBQSU4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1NzUzNjQ2NTU2MTg2OTM2ODE5Ij4i15TXltefINeQ16og15TXodeZ16HXnteUIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4i15vXqNeY15nXoSDXlC1TSU0g157Xldep15HXqiDXm9ei16ouINeU15bXnyDXp9eV15MgUFVLINeb15PXmSDXnNeU157XqdeZ15ouINek16DXlCDXkNecINeU16HXpNenINec16TXqNeY15nXnS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i15TXltefINeQ16og16fXldeTINeULVBJTiDXlNeo16bXldeZIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IteQ16nXqCDXkNeqINen15XXkyDXlC1QSU4g15TXqNem15XXmSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4i157XkdeY15wg16DXoteZ15zXlCDXqdecINeb16jXmNeZ16EgU0lN4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i16fXldeTIFBJTiDXqdeS15XXmS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLXlNen15zXkyDXnteh16TXqCBQSU4g16nXkNeV16jXm9eVIDQg16LXkyA4INeh16TXqNeV16ouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4i16fXldeTIFBVSyDXpteo15nXmiDXnNeU15nXldeqINeR158gOCDXodek16jXldeqINeQ15Ug15nXldeq16guIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i15TXltefINee15fXk9epINeQ16og16fXldeTIFBVSyDXlNeg15vXldefLiDXoNeZ16HXmdeV16DXldeqINeX15XXlteo15nXnSDXmdep15HXmdeq15Ug15zXptee15nXqteV16og15DXqiDXm9eo15jXmdehINeULVNJTS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4i16fXldeT15kg15QtUElOINeQ15nXoNedINeq15XXkNee15nXnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+IuKAj9eb16jXmNeZ16Eg15QtU0lNINee15XXqdeR16og15vXoteqLiDXlNeW158g16fXldeTIFBVSyDXm9eT15kg15zXlNee16nXmdeaLiDXpNeg15Qg15DXnCDXlNeh16TXpyDXnNek16jXmNeZ150uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IuKAj9eU15bXnyDXkNeqINen15XXkyDXlC1QSU4g15TXqNem15XXmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLigI/XkNep16gg15DXqiDXp9eV15Mg15QtUElOINeU16jXpteV15kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IuKAj9ee15HXmNecINeg16LXmdec15Qg16nXnCDXm9eo15jXmdehIFNJTeKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IuKAj9eU16fXnNeTINee16HXpNeoIFBJTiDXqdeQ15XXqNeb15UgNCDXoteTIDgg16HXpNeo15XXqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiLigI/Xp9eV15MgUFVLINem16jXmdeaINec15TXmdeV16og15HXnyA4INeh16TXqNeV16og15DXlSDXmdeV16rXqC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLigI/XlNeW158g157Xl9eT16kg15DXqiDXp9eV15MgUFVLINeU16DXm9eV158uINeg15nXodeZ15XXoNeV16og15fXldeW16jXmdedINeZ16nXkdeZ16rXlSDXnNem157Xmdeq15XXqiDXkNeqINeb16jXmNeZ16Eg15QtU0lNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfY29uZmlybV9waW5faGludCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcwMDM0NjkyNjE0NjQ1OTM1MTYiPiLigI/Xp9eV15PXmSDXlC1QSU4g15DXmdeg150g16rXldeQ157XmdedIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4i16DXmdeh15nXldeg15XXqiDXqNeR15nXnSDXnteT15kg15zXqdeo15jXldeYINen15Ug15HXmdeY15XXnCDXoNei15nXnNeULiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLXm9eT15kg15zXkdeY15wg15DXqiDXlNeg16LXmdec15QsINeU15nXm9eg16Eg15HXkNee16bXoteV16og15fXqdeR15XXnyBHb29nbGUg16nXnNeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLigI/Xm9eT15kg15zXkdeY15wg15DXqiDXlNeg16LXmdec15QsINeU15nXm9eg16Eg15HXkNee16bXoteV16og15fXqdeR15XXnyBHb29nbGUg16nXnNeaLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4i16nXnSDXntep16rXntepICjXk9eV15BcItecKSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4i16HXmdeh157XlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI1MzU1OTA0NTgyNjc0MDU0NzAyIj4i15TXmdeb16DXoSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4i16nXnSDXntep16rXntepINeQ15Ug16HXmdeh157XlCDXnNeQINeX15XXp9eZ15nXnS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i16nXm9eX16og15DXqiDXqdedINeU157Xqdeq157XqSDXkNeVINeU16HXmdeh157XlD9cbteR16fXqCDXkdeb16rXldeR16ogIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2FjY291bnRfcmVjb3ZlcnlfaGludCIgbXNnaWQ9IjU2OTA3MDkxMzI4NDE3NTI5NzQiPiLigI/Xqdeb15fXqiDXkNeqINep150g15TXntep16rXntepINeQ15Ug15TXodeZ16HXnteUP1xu15HXp9eoINeR15vXqteV15HXqiAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSIxMDUyNjg1MTk3NzEwMjUyMzk1Ij4i15HXldeT16cg15fXqdeR15XXn+KApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i15TXp9ec15PXqiDXnteh16TXqCBQSU4g16nXkteV15kgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g16TXotee15nXnS4gXG5cbteg16HXlCDXqdeV15Eg15HXoteV15MgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g16nXoNeZ15XXqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODI3Njc0NTY0MjA0OTUwMjU1MCI+IuKAj9eU16fXnNeT16og157Xodek16ggUElOINep15LXldeZIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INek16LXnteZ150uIFxuXG7XoNeh15Qg16nXldeRINeR16LXldeTIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INep16DXmdeV16ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+IteU16fXnNeT16og16HXmdeh157XlCDXqdeS15XXmdeUIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INek16LXnteZ150uXG5cbteg16HXlCDXqdeV15Eg15HXoteV15MgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g16nXoNeZ15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGF0dGVybl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc0MDg5NDc1OTY1MDUwODA1Ij4i16nXqNeY15jXqiDXkNeqINen15Ug15HXmdeY15XXnCDXlNeg16LXmdec15Qg15HXkNeV16TXnyDXqdeS15XXmSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDXpNei157XmdedLiBcblxu16DXodeUINep15XXkSDXkdei15XXkyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDXqdeg15nXldeqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+IteR15nXptei16ogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g16DXmdeh15nXldeg15XXqiDXqdeS15XXmdeZ150g15zXkdeZ15jXldecINeg16LXmdec16og15TXmNec16TXldefLiDXnNeQ15fXqCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDXoNeZ16HXmdeV16DXldeqINeb15XXqdec15nXnSDXoNeV16HXpNeZ150sINeU15jXkNeR15zXmCDXmdei15HXldeoINeQ15nXpNeV16Eg15zXkdeo15nXqNeqINeU157Xl9eT15wg16nXnCDXlNeZ16bXqNefINeV15vXnCDXoNeq15XXoNeZINeU157Xqdeq157XqSDXmdeQ15HXk9eVLiI8L3N0cmluZz4KQEAgLTEyOSw2ICsxMzUsMTkgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i16nXqNeY15jXqiDXkNeqINen15Ug15HXmdeY15XXnCDXlNeg16LXmdec15Qg15HXkNeV16TXnyDXqdeS15XXmSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDXpNei157XmdedLiDXnNeQ15fXqCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDXoNeZ16HXmdeV16DXldeqINeb15XXqdec15nXnSDXoNeV16HXpNeZ150sINeq16rXkden16kg15zXkdeY15wg15DXqiDXoNei15nXnNeqINeU15jXnNek15XXnyDXkdeQ157Xptei15XXqiDXl9ep15HXldefINeT15XXkFwi15zigI8uXG5cbteg16HXlCDXqdeV15Eg15HXoteV15MgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g16nXoNeZ15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLXlNeh16giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IuKAj9ee16HXpNeoIFBJTiDXqdeS15XXmSDXqdecINeb16jXmNeZ16Eg15QtU0lNLiDXotec15nXmiDXnNeZ16bXldeoINeb16LXqiDXp9ep16gg16LXnSDXlNeh16TXpyDXotecINee16DXqiDXnNeR15jXnCDXkNeqINeg16LXmdec16og15TXnteb16nXmdeoLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4i4oCP157Xodek16ggUElOINep15LXldeZINep15wg15vXqNeY15nXoSDXlC1TSU0uINeg15XXqteoINec15og16DXmdeh15nXldefIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDXoNeV16HXoyDXnNek16DXmSDXqdeZ15TXmdeUINei15zXmdeaINec15nXpteV16gg16fXqdeoINei150g15TXodek16cg16LXnCDXnteg16og15zXkdeY15wg15DXqiDXoNei15nXnNeqINeU157Xm9ep15nXqC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiLigI/Xnteh16TXqCBQSU4g16nXkteV15kg16nXnCDXm9eo15jXmdehINeULVNJTS4g16DXldeq16jXlSDXnNeaIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDXoNeZ16HXmdeV16DXldeqINeg15XXodek15nXnS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+IuKAj9ec15Ag16DXmdeq158g15zXlNep16rXntepINeR15vXqNeY15nXoSDXlC1TSU0uINem15XXqCDXp9ep16gg16LXnSDXlNeh16TXpy4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IuKAj9en15XXkyBQVUsg16nXkteV15kg16nXnCDXm9eo15jXmdehINeULVNJTS4g16DXldeq16gg15zXmiDXoNeZ16HXmdeV158gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INeg15XXodejINec16TXoNeZINep15vXqNeY15nXoSDXlC1TSU0g15nXoNei15wg15zXptee15nXqteV16ouIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4i4oCP16fXldeTIFBVSyDXqdeS15XXmSDXqdecINeb16jXmNeZ16Eg15QtU0lNLiDXoNeV16rXqNeVINec15ogPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INeg15nXodeZ15XXoNeV16og16DXldeh16TXmdedINec16TXoNeZINep15vXqNeY15nXoSDXlC1TSU0g15nXoNei15wg15zXptee15nXqteV16ouIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiLigI/XpNei15XXnNeqINee16HXpNeoINeULVBJTiDXqdecINeb16jXmNeZ16Eg15QtU0lNINeg15vXqdec15QhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiLigI/XpNei15XXnNeqINen15XXkyDXlC1QVUsg16nXnCDXm9eo15jXmdehINeULVNJTSDXoNeb16nXnNeUISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9hY2NlcHRlZCIgbXNnaWQ9IjE0NDgyNDE2NzM1NzAwMjAwOTciPiLXlNen15XXkyDXlNeq16fXkdecISI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+Itec15fXptefIFwn15TXqNem15XXoteUINeU16fXldeT157XqlwnIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4i15zXl9em158gXCfXlNeo16bXldei15Qg15TXkdeQ15RcJyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiLXnNeX16bXnyBcJ9eU16nXlNeUXCciPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWphL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1qYS9zdHJpbmdzLnhtbAppbmRleCA5MmUzMDhiLi41MTA2MjcxIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWphL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtamEvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IlBJTuOCs+ODvOODieOCkuWFpeWKmyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IlBVS+OBqOaWsOOBl+OBhFBJTuOCs+ODvOODieOCkuWFpeWKmyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iUFVL44Kz44O844OJIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLmlrDjgZfjgYRQSU7jgrPjg7zjg4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiJQVUvjgajmlrDjgZfjgYRQSU7jgrPjg7zjg4njgpLlhaXlipsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IlNJTSBQVUvjgrPjg7zjg4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+IuaWsOOBl+OBhFNJTSBQSU7jgrPjg7zjg4kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiLjgr/jg4Pjg5fjgZfjgabjg5Hjgrnjg6/jg7zjg4njgpLlhaXlipsiPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLjg63jg4Pjgq/jgpLop6PpmaTjgZnjgovjgavjga/jg5Hjgrnjg6/jg7zjg4njgpLlhaXlipsiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLjg63jg4Pjgq/jgpLop6PpmaTjgZnjgovjgavjga9QSU7jgpLlhaXlipsiPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4i5LiA5pmC5YGc5q2i44Oc44K/44OzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiLlho3nlJ/jg5zjgr/jg7MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+IuWBnOatouODnOOCv+ODsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiLjgrDjg4Pjg4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiLjgqTjg57jgqTjg4EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiLjg4/jg7zjg4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiLntprooYzjgZnjgovjgavjga/jg63jg4Pjgq/jgpLop6PpmaTjgZfjgabjgY/jgaDjgZXjgYQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiLotbfli5XjgpLjgq3jg6Pjg7Pjgrvjg6vjgZfjgb7jgZfjgZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4i5YmK6Zmk44GZ44KL44Gr44GvPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz7jgpLjg4njg63jg4Pjg5fjgZfjgabjgY/jgaDjgZXjgYTjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz7jga/liYrpmaTjgZXjgozjgb7jgZvjgpPjgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IuW4jOacm+OBrlBJTuOCs+ODvOODieOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLluIzmnJvjga5QSU7jgrPjg7zjg4njgpLnorroqo3jgZfjgabjgY/jgaDjgZXjgYQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlNJTeOCq+ODvOODieOBruODreODg+OCr+ino+mZpOS4reKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IlBJTuOCs+ODvOODieOBjOato+OBl+OBj+OBguOCiuOBvuOBm+OCk+OAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IlBJTuOBrzTvvZ445qGB44Gu5pWw5a2X44Gn5YWl5Yqb44GX44Gm44GP44Gg44GV44GE44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iUFVL44Kz44O844OJ44GvOOahgeS7peS4iuOBrueVquWPt+OBp+OBmeOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+Iuato+OBl+OBhFBVS+OCs+ODvOODieOCkuWGjeWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhOOAguiqpOWFpeWKm+OCkue5sOOCiui/lOOBmeOBqOOAgVNJTeOBjOawuOS5heOBq+eEoeWKueOBq+OBquOCi+OBiuOBneOCjOOBjOOBguOCiuOBvuOBmeOAgiI8L3N0cmluZz4KQEAgLTEyOSw2ICsxMzUsMTkgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i44Ot44OD44Kv6Kej6Zmk44OR44K/44O844Oz44Gu5YWl5Yqb44KSPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz7lm57plpPpgZXjgYjjgb7jgZfjgZ/jgILjgYLjgag8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPuWbnumWk+mBleOBiOOCi+OBqOOAgeaQuuW4r+err+acq+OBruODreODg+OCr+ino+mZpOOBq+ODoeODvOODq+OCouOCq+OCpuODs+ODiOOBjOW/heimgeOBq+OBquOCiuOBvuOBmeOAglxuXG48eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPuenkuW+jOOBq+OCguOBhuS4gOW6puOBiuippuOBl+OBj+OBoOOBleOBhOOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIC0gIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLliYrpmaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IlNJTSBQSU7jgrPjg7zjg4njgYznhKHlirnjgafjgZnjgILjgYrkvb/jgYTjga7nq6/mnKvjgpLjg63jg4Pjgq/op6PpmaTjgZnjgovjgavjga/mkLrluK/pgJrkv6HkvJrnpL7jgavjgYrllY/jgYTlkIjjgo/jgZvjgYTjgZ/jgaDjgY/lv4XopoHjgYzjgYLjgorjgb7jgZnjgIIiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+IlNJTSBQSU7jgrPjg7zjg4njgYznhKHlirnjgafjgZnjgILlhaXlipvjgafjgY3jgovjga7jga/jgYLjgag8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz7lm57jgafjgZnjgILjgZPjga7lm57mlbDjgpLotoXjgYjjgovjgajjgIHjgYrkvb/jgYTjga7nq6/mnKvjgpLjg63jg4Pjgq/op6PpmaTjgZnjgovjga7jgavmkLrluK/pgJrkv6HkvJrnpL7jgavjgYrllY/jgYTlkIjjgo/jgZvjgYTjgZ/jgaDjgY/lv4XopoHjgYzjgYLjgorjgb7jgZnjgIIiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJTSU0gUElO44Kz44O844OJ44GM54Sh5Yq544Gn44GZ44CC5YWl5Yqb44Gn44GN44KL44Gu44Gv44GC44GoPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+5Zue44Gn44GZ44CCIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJTSU3jga/kvb/nlKjjgafjgY3jgb7jgZvjgpPjgILmkLrluK/pgJrkv6HkvJrnpL7jgavjgYrllY/jgYTlkIjjgo/jgZvjgY/jgaDjgZXjgYTjgIIiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IlNJTSBQVUvjgrPjg7zjg4njgYznhKHlirnjgafjgZnjgILlhaXlipvjgafjgY3jgovjga7jga/jgYLjgag8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz7lm57jgafjgZnjgILjgZPjga7lm57mlbDjgpLotoXjgYjjgovjgahTSU3jga/lrozlhajjgavkvb/nlKjjgafjgY3jgarjgY/jgarjgorjgb7jgZnjgIIiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiJTSU0gUFVL44Kz44O844OJ44GM54Sh5Yq544Gn44GZ44CC5YWl5Yqb44Gn44GN44KL44Gu44Gv44GC44GoPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+5Zue44Gn44GZ44CC44GT44Gu5Zue5pWw44KS6LaF44GI44KL44GoU0lN44Gv5a6M5YWo44Gr5L2/55So44Gn44GN44Gq44GP44Gq44KK44G+44GZ44CCIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiJTSU0gUElO5pON5L2c44Gr5aSx5pWX44GX44G+44GX44Gf44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJTSU0gUFVL5pON5L2c44Gr5aSx5pWX44GX44G+44GX44Gf44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+IuOCs+ODvOODieOBjOaJv+iqjeOBleOCjOOBvuOBl+OBn+OAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IuWJjeOBruODiOODqeODg+OCr+ODnOOCv+ODsyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IuasoeOBruODiOODqeODg+OCr+ODnOOCv+ODsyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiLkuIDmmYLlgZzmraLjg5zjgr/jg7MiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWthLXJHRS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkN2FmNzUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWthLXJHRS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDE1NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLhg5Dhg5nhg6Dhg5jhg6Thg5Thg5cgUElOIOGDmeGDneGDk+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+IuGDk+GDkOGDkeGDlOGDreGDk+GDlOGDlyBTSU0t4YOY4YOhIFBVSyDhg5nhg53hg5Phg5gg4YOT4YOQIOGDkOGDruGDkOGDmuGDmCBQSU4g4YOZ4YOd4YOT4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJTSU0gUFVLIOGDmeGDneGDk+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iU0lNLeGDmOGDoSDhg5Dhg67hg5Dhg5rhg5ggUElOLeGDmOGDoSDhg5nhg53hg5Phg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+IuGDqOGDlOGDlOGDruGDlOGDlyAiPGZvbnQgc2l6ZT0iMTciPiIt4YOhIOGDnuGDkOGDoOGDneGDmuGDmOGDoSI8L2ZvbnQ+IiDhg5Phg5Dhg6Hhg5Dhg5Hhg5Thg63hg5Phg5Dhg5MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLhg5Lhg5Dhg5zhg6Hhg5Dhg5Hhg5rhg53hg5nhg5Dhg5Mg4YOQ4YOZ4YOg4YOY4YOk4YOU4YOXIOGDnuGDkOGDoOGDneGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IuGDkuGDkOGDnOGDoeGDkOGDkeGDmuGDneGDmeGDkOGDkyDhg5Dhg5nhg6Dhg5jhg6Thg5Thg5cgUElOIOGDmeGDneGDk+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMjQyMjIyNTU5MTAwNjEzNDkzNiI+IuGDkOGDoOGDkOGDoeGDrOGDneGDoOGDmCBQSU4g4YOZ4YOd4YOT4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xhYmVsX3RleHQiIG1zZ2lkPSI4NjE3OTY0NjEwMjgyOTg0MjQiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Hhg5Dhg5fhg5Xhg5jhg6Eg4YOT4YOQ4YOQ4YOt4YOY4YOg4YOU4YOXIOGDm+GDlOGDnOGDmOGDo+GDoSDhg5Phg5Ag4YOo4YOU4YOb4YOT4YOU4YOSIDAt4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLhg6Hhg5Dhg67hg5jhg6Eg4YOQ4YOb4YOd4YOq4YOc4YOd4YOR4YOY4YOXIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg5vhg6rhg5Phg5Thg5rhg53hg5Hhg5Dhg5sg4YOT4YOQ4YOo4YOV4YOU4YOR4YOj4YOaIOGDoOGDkOGDneGDk+GDlOGDnOGDneGDkeGDkOGDoSDhg5Lhg5Dhg5Phg5Dhg5Dhg63hg5Dhg6Dhg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jaGFyZ2VkIiBtc2dpZD0iMzI3MjIyMzkwNjA3MzQ5MjQ1NCI+IuGDk+GDkOGDm+GDo+GDruGDouGDo+GDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3BsdWdnZWRfaW4iIG1zZ2lkPSI4MTE3NTcyMDAwNjM5OTk4Mzg4Ij4i4YOb4YOY4YOb4YOT4YOY4YOc4YOQ4YOg4YOU4YOd4YOR4YOhIOGDk+GDkOGDm+GDo+GDruGDouGDleGDkCAoPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sb3dfYmF0dGVyeSIgbXNnaWQ9IjgxNDM4MDgwMTg3MTkxNzM4NTkiPiLhg6jhg5Thg5Dhg5Thg6Dhg5fhg5Thg5cg4YOT4YOQ4YOb4YOi4YOU4YOc4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSIxMzMyMjg4MjY4NjAwMzI5ODQxIj4i4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOY4YOh4YOX4YOV4YOY4YOhIOGDk+GDkOGDkOGDreGDmOGDoOGDlOGDlyDhg5vhg5Thg5zhg5jhg6Phg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjkxNjk3MTc3NzkwNTgwMzcxNjgiPiLhg6Xhg6Hhg5Thg5rhg5gg4YOp4YOQ4YOZ4YOU4YOi4YOY4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjQ5NDk4MDU2MTMwNDIxMTkzMSI+IlNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5gg4YOQ4YOgIOGDkOGDoOGDmOGDoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE0NDU4NDkwMDU5MDkyNjAwMzkiPiLhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg6jhg5gg4YOQ4YOgIOGDk+GDlOGDleGDoSBTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDgxMTEwMzk1NTA4NjM3NjQzIj4i4YOQ4YOgIOGDkOGDoOGDmOGDoSBTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOYIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1MjEwODkxNTA5OTk1OTQyMjUwIj4i4YOp4YOQ4YOT4YOU4YOXIFNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zX2xvbmciIG1zZ2lkPSI1OTY4OTg1NDg5NDYzODcwMzU4Ij4iU0lNIOGDkeGDkOGDoOGDkOGDl+GDmCDhg5Dhg6Ag4YOQ4YOg4YOY4YOhIOGDkOGDnCDhg5Dhg6Ag4YOY4YOZ4YOY4YOX4YOu4YOU4YOR4YOQLiDhg6nhg5Dhg5Phg5Thg5cgU0lNIOGDkeGDkOGDoOGDkOGDl+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI4MzQwODEzOTg5NTg2NjIyMzU2Ij4i4YOQ4YOg4YOQ4YOb4YOd4YOu4YOb4YOQ4YOg4YOU4YOR4YOQ4YOT4YOYIFNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1ODkyOTQwOTA5Njk5NzIzNTQ0Ij4i4YOX4YOl4YOV4YOU4YOc4YOYIFNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5gg4YOS4YOQ4YOb4YOj4YOT4YOb4YOU4YOR4YOY4YOXIOGDkuGDkOGDm+GDneGDoOGDl+GDo+GDmuGDmCDhg5jhg6fhg50uXG4g4YOT4YOQ4YOj4YOZ4YOQ4YOV4YOo4YOY4YOg4YOT4YOY4YOXIOGDl+GDpeGDleGDlOGDnOGDmCDhg6Phg5nhg5Dhg5Hhg5Thg5rhg50g4YOh4YOU4YOg4YOV4YOY4YOh4YOY4YOhIOGDnuGDoOGDneGDleGDkOGDmOGDk+GDlOGDoOGDoSDhg6Hhg67hg5Xhg5AgU0lNIOGDkeGDkOGDoOGDkOGDl+GDmOGDoeGDl+GDleGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI2ODc1NzczNDEzMzA2MzgwOTAyIj4iU0lNIOGDkeGDkOGDoOGDkOGDl+GDmCDhg5Phg5Dhg5Hhg5rhg53hg5nhg5jhg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3B1a19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NDcyMzI0Njc0NzE4MDE2MzMiPiJTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOYIOGDk+GDkOGDkeGDmuGDneGDmeGDmOGDmuGDmOGDkCBQVUsg4YOZ4YOd4YOT4YOY4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3OTc1MjIxODA1MDMzNjE0NDI2Ij4i4YOb4YOY4YOb4YOT4YOY4YOc4YOQ4YOg4YOU4YOd4YOR4YOhIFNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQ4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiIlMSRzLiDhg5Xhg5jhg6/hg5Thg6Lhg5ggJTIkZCBvZiAlMyRkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiLhg5Xhg5jhg6/hg5Thg6Lhg5jhg6Eg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZW1wdHlfc2xvdCIgbXNnaWQ9IjEyODE1MDU3MDMzMDc5MzA3NTciPiLhg6rhg5Dhg6Dhg5jhg5Thg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2V4cGFuZGVkIiBtc2dpZD0iMjI3ODEwNjAyMjMxMTE3MDI5OSI+IuGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg6Hhg5jhg5Xhg6Dhg6rhg5Qg4YOS4YOQ4YOo4YOa4YOY4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfY29sbGFwc2VkIiBtc2dpZD0iNjM2Njk5MjA2NjkzNjA3NjM5NiI+IuGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg6Hhg5jhg5Xhg6Dhg6rhg5Qg4YOp4YOQ4YOZ4YOU4YOq4YOY4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0IiBtc2dpZD0iNjUyNzEzMTAzOTc0MTgwODI0MCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOGDleGDmOGDr+GDlOGDouGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VzZXJfc2VsZWN0b3IiIG1zZ2lkPSIxMjI2Nzk4MzcwOTEzNjk4ODk2Ij4i4YOb4YOd4YOb4YOu4YOb4YOQ4YOg4YOU4YOR4YOa4YOY4YOhIOGDkOGDm+GDneGDm+GDoOGDqeGDlOGDleGDlOGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc3RhdHVzIiBtc2dpZD0iODAwODI2NDYwMzkzNTkzMDYxMSI+IuGDoeGDouGDkOGDouGDo+GDoeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfY2FtZXJhIiBtc2dpZD0iODkwNDIzMTE5NDE4MTExNDYwMyI+IuGDmeGDkOGDm+GDlOGDoOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWdhdXJkX2FjY2Vzc2liaWxpdHlfbWVkaWFfY29udHJvbHMiIG1zZ2lkPSIyNjIyMDk2NTQyOTIxNjE4MDYiPiLhg5vhg5Thg5Phg5jhg5jhg6Eg4YOb4YOQ4YOg4YOX4YOV4YOY4YOhIOGDlOGDmuGDlOGDm+GDlOGDnOGDouGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfc3RhcnQiIG1zZ2lkPSI4NzM2ODUzNjE1NTg4ODI4MTk3Ij4i4YOT4YOQ4YOY4YOs4YOn4YOdIOGDleGDmOGDr+GDlOGDouGDmOGDoSDhg67hg5Thg5rhg5Dhg67hg5rhg5Ag4YOS4YOQ4YOc4YOa4YOQ4YOS4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfZW5kIiBtc2dpZD0iNzE3MDE5MDk1MDg3MDQ2ODMyMCI+IuGDleGDmOGDr+GDlOGDouGDlOGDkeGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg67hg5Dhg6Dhg5jhg6Hhg67hg5Thg5Hhg5Ag4YOT4YOQ4YOh4YOg4YOj4YOa4YOU4YOR4YOj4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4i4YOV4YOY4YOv4YOU4YOi4YOYIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOGDrOGDkOGDmOGDqOGDkOGDmuGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2V4cGFuZF9sb2NrX2FyZWEiIG1zZ2lkPSI1MTk4NTk3MjA5MzQxNzgwMjQiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Eg4YOh4YOY4YOV4YOg4YOq4YOY4YOhIOGDkuGDkOGDqOGDmuGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiLhg5Lhg5Dhg6Hhg6Dhg5jhg5Dhg5rhg5Thg5Hhg5jhg5cg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5Ag4YOc4YOY4YOb4YOj4YOo4YOY4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZmFjZV91bmxvY2siIG1zZ2lkPSI0ODE3MjgyNTQzMzUxNzE4NTM1Ij4i4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIOGDoeGDkOGDruGDmOGDlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5AgUGluLeGDmOGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLhg57hg5Dhg6Dhg53hg5rhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4i4YOc4YOY4YOb4YOj4YOo4YOU4YOR4YOY4YOhIOGDoeGDmOGDleGDoOGDquGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4i4YOS4YOQ4YOT4YOQ4YOh4YOg4YOY4YOQ4YOa4YOU4YOR4YOY4YOhIOGDoeGDmOGDleGDoOGDquGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTMzNzI4NjUzODMxODU0MzU1NSI+IuGDrOGDmOGDnOGDkCDhg6nhg5Dhg5zhg5Dhg6zhg5Thg6Dhg5jhg6Eg4YOm4YOY4YOa4YOQ4YOZ4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjcwNzM5MjgzMDA0NDQ5MDkzMjAiPiLhg6jhg5Thg5vhg5Phg5Thg5Lhg5gg4YOp4YOQ4YOc4YOQ4YOs4YOU4YOg4YOY4YOhIOGDpuGDmOGDmuGDkOGDmeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IuGDnuGDkOGDo+GDluGDmOGDoSDhg6bhg5jhg5rhg5Dhg5nhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+IuGDk+GDkOGDmeGDleGDoOGDmOGDoSDhg6bhg5jhg5rhg5Dhg5nhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+IlN0b3Ag4YOm4YOY4YOa4YOQ4YOZ4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IuGDluGDlOGDleGDmOGDlyDhg5Dhg6zhg5Thg6Phg5rhg5gg4YOq4YOU4YOg4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4i4YOl4YOV4YOU4YOV4YOY4YOXIOGDk+GDkOGDruGDoOGDmOGDmuGDmCDhg6rhg5Thg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiLhg5Lhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Thg5cg4YOS4YOQ4YOh4YOQ4YOS4YOg4YOr4YOU4YOa4YOU4YOR4YOa4YOQ4YOTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4i4YOS4YOQ4YOb4YOd4YOr4YOQ4YOu4YOU4YOR4YOQIOGDkuGDkOGDo+GDpeGDm+GDk+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiLhg6nhg5Dhg5Dhg5Lhg5Phg5Thg5cgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4YOs4YOQ4YOh4YOQ4YOo4YOa4YOU4YOa4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDhg5Dhg6Ag4YOs4YOQ4YOY4YOo4YOa4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfYWx0IiBtc2dpZD0iNDg1Njg2ODgyMDA0MDA1MTkzOSI+IkFsdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2NhbmNlbCIgbXNnaWQ9IjEyMDM5ODQwMTcyNDU3ODMyNDQiPiLhg5Lhg5Dhg6Phg6Xhg5vhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kZWxldGUiIG1zZ2lkPSIzMzM3OTE0ODMzMjA2NjM1NzQ0Ij4i4YOs4YOQ4YOo4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZG9uZSIgbXNnaWQ9IjE5OTI1NzExMTg0NjY2Nzk3NzUiPiLhg5Phg5Dhg6Hhg6Dhg6Phg5rhg5Phg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9tb2RlX2NoYW5nZSIgbXNnaWQ9IjQ1NDczODc3NDE5MDY1Mzc1MTkiPiLhg6Dhg5Thg5/hg5jhg5vhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4i4YOo4YOU4YOn4YOV4YOQ4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9jayIgbXNnaWQ9IjIyMjg1MjQ5MDA0Mzk4MDE0NTMiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfY2FtZXJhIiBtc2dpZD0iOTY5MDcxOTk3NTUyNDg2ODE0Ij4i4YOZ4YOQ4YOb4YOU4YOg4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NpbGVudCIgbXNnaWQ9Ijg5MzU1MTI4Nzc0NjUyMjE4MiI+IuGDo+GDruGDm+GDnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zb3VuZG9uIiBtc2dpZD0iMzAwNTI0NjY2NzU1MDAxNzIiPiLhg67hg5vhg5jhg6Eg4YOp4YOQ4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiLhg6vhg5jhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4i4YOS4YOQ4YOQ4YOh4YOg4YOY4YOQ4YOa4YOU4YOXIOGDluGDlOGDm+GDneGDlyA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4t4YOX4YOV4YOY4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9kb3duIiBtc2dpZD0iNTA4NzczOTcyODYzOTAxNDU5NSI+IuGDkuGDkOGDkOGDoeGDoOGDmOGDkOGDmuGDlOGDlyDhg6Xhg5Xhg5Thg5vhg53hg5cgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LeGDl+GDleGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fbGVmdCIgbXNnaWQ9IjcyMDc0Nzg3MTk4MDU1NjIxNjUiPiLhg5Lhg5Dhg5Dhg6Hhg6Dhg5jhg5Dhg5rhg5Thg5cg4YOb4YOQ4YOg4YOq4YOu4YOc4YOY4YOVIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi3hg5fhg5Xhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3JpZ2h0IiBtc2dpZD0iODAzNDQzMzI0MjU3OTYwMDk4MCI+IuGDkuGDkOGDkOGDoeGDoOGDmOGDkOGDmuGDlOGDlyDhg5vhg5Dhg6Dhg6/hg5Xhg5zhg5jhg5UgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LeGDl+GDleGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VyX3N3aXRjaGVkIiBtc2dpZD0iMzc2ODAwNjc4MzE2Njk4NDQxMCI+IuGDkOGDm+GDn+GDkOGDm+GDmOGDnOGDk+GDlOGDmuGDmCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5Thg5rhg5ggPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VtZXJnZW5jeV9jYWxsX2xhYmVsIiBtc2dpZD0iNjg0OTQ2MTkyNTIzODMwNTMxIj4i4YOS4YOQ4YOT4YOQ4YOj4YOT4YOU4YOR4YOU4YOa4YOYIOGDk+GDkOGDruGDm+GDkOGDoOGDlOGDkeGDmOGDoSDhg5bhg5Dhg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLhg5Phg5Dhg5Lhg5Dhg5Xhg5jhg6zhg6fhg5Phg5Dhg5cg4YOc4YOY4YOb4YOj4YOo4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiLhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5gg4YOc4YOY4YOb4YOj4YOo4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGFzc3dvcmQiIG1zZ2lkPSIyMzMzMjgxNzYyMTI4MTEzMTU3Ij4i4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOYIOGDnuGDkOGDoOGDneGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiLhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5ggUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiLhg5nhg5jhg5Phg5Thg5Ug4YOh4YOq4YOQ4YOT4YOU4YOXIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg5vhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiLhg5Phg5Dhg67hg5Dhg6Lhg5Thg5cg4YOX4YOl4YOV4YOU4YOc4YOYIOGDnOGDmOGDm+GDo+GDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiJTSU0gUElOLeGDmOGDoSDhg6jhg5Thg6fhg5Xhg5Dhg5zhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IuGDqOGDlOGDmOGDp+GDleGDkOGDnOGDlOGDlyBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1NzUzNjQ2NTU2MTg2OTM2ODE5Ij4i4YOe4YOQ4YOg4YOd4YOa4YOY4YOhIOGDqOGDlOGDp+GDleGDkOGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+IlNJTSDhg5Dhg5vhg5/hg5Dhg5vhg5Dhg5Mg4YOT4YOU4YOQ4YOl4YOi4YOY4YOV4YOY4YOg4YOU4YOR4YOj4YOa4YOY4YOQLiDhg5Lhg5Dhg6Hhg5Dhg5Lhg6Dhg6vhg5Thg5rhg5Thg5Hhg5rhg5Dhg5Mg4YOo4YOU4YOY4YOn4YOV4YOQ4YOc4YOU4YOXIFBVSyDhg5nhg53hg5Phg5guIOGDk+GDlOGDouGDkOGDmuGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSDhg5vhg5jhg5vhg5Dhg6Dhg5fhg5Thg5cg4YOb4YOd4YOR4YOY4YOa4YOj4YOgIOGDneGDnuGDlOGDoOGDkOGDouGDneGDoOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i4YOh4YOQ4YOh4YOj4YOg4YOV4YOU4YOa4YOYIFBJTiDhg5nhg53hg5Phg5jhg6Eg4YOo4YOU4YOn4YOV4YOQ4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IuGDoeGDkOGDoeGDo+GDoOGDleGDlOGDmuGDmCBQSU4g4YOZ4YOd4YOT4YOY4YOhIOGDk+GDkOGDk+GDkOGDoeGDouGDo+GDoOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iU0lNIOGDkeGDkOGDoOGDkOGDl+GDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5DigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLhg5Dhg5nhg6Dhg5jhg6Thg5Thg5cgUElOLCDhg6Dhg53hg5vhg5Thg5rhg5jhg6og4YOo4YOU4YOT4YOS4YOU4YOR4YOQIDQt4YOT4YOQ4YOcIDgg4YOq4YOY4YOk4YOg4YOQ4YOb4YOT4YOULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyDhg5nhg53hg5Phg5gg4YOj4YOc4YOT4YOQIOGDmOGDp+GDneGDoSDhg6Dhg5Xhg5Ag4YOQ4YOcIOGDm+GDlOGDouGDmCDhg6rhg5jhg6Thg6Dhg5jhg6Hhg5Lhg5Dhg5wg4YOo4YOU4YOb4YOT4YOS4YOQ4YOg4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IuGDruGDlOGDmuGDkOGDruGDmuGDkCDhg6jhg5Thg5jhg6fhg5Xhg5Dhg5zhg5Thg5cg4YOh4YOs4YOd4YOg4YOYIFBVSyDhg5nhg53hg5Phg5guIOGDoOGDkOGDm+GDk+GDlOGDnOGDmOGDm+GDlCDhg6zhg5Dhg6Dhg6Phg5vhg5Dhg6Lhg5Thg5Hhg5Thg5rhg5gg4YOb4YOq4YOT4YOU4YOa4YOd4YOR4YOQIOGDkuGDkOGDm+GDneGDmOGDrOGDleGDlOGDleGDoSBTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOY4YOhIOGDk+GDkOGDkeGDmuGDneGDmeGDleGDkOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4iUElOIOGDmeGDneGDk+GDlOGDkeGDmCDhg5Dhg6Ag4YOU4YOb4YOX4YOu4YOV4YOU4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4i4YOc4YOQ4YOu4YOQ4YOi4YOYIOGDnOGDmOGDm+GDo+GDqOGDmOGDoSDhg6vhg5Dhg5rhg5jhg5Dhg5wg4YOR4YOU4YOV4YOg4YOYIOGDm+GDquGDk+GDlOGDmuGDneGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOS4YOQ4YOY4YOQ4YOg4YOU4YOXIOGDkOGDleGDouGDneGDoOGDmOGDluGDkOGDquGDmOGDkCDhg5fhg6Xhg5Xhg5Thg5zhg5ggR29vZ2xlICDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5jhg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9IjU3MTg1MzQyNzIwNzA5MjAzNjQiPiLhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOh4YOQ4YOu4YOU4YOa4YOYICjhg5Thg5rhg6Thg53hg6Hhg6Lhg5ApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjkwNTcyODkxMDM4MjcyOTg1NDkiPiLhg57hg5Dhg6Dhg53hg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNTM1NTkwNDU4MjY3NDA1NDcwMiI+IuGDqOGDlOGDoeGDleGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4i4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOYIOGDoeGDkOGDruGDlOGDmuGDmCwg4YOQ4YOcIOGDnuGDkOGDoOGDneGDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i4YOT4YOQ4YOS4YOQ4YOV4YOY4YOs4YOn4YOT4YOQ4YOXIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg6Hhg5Dhg67hg5Thg5rhg5gg4YOT4YOQIOGDnuGDkOGDoOGDneGDmuGDmD9cbuGDlOGDrOGDleGDmOGDlOGDlyAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSIxMDUyNjg1MTk3NzEwMjUyMzk1Ij4i4YOb4YOY4YOb4YOT4YOY4YOc4YOQ4YOg4YOU4YOd4YOR4YOhIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoSDhg6jhg5Thg5vhg53hg6zhg5vhg5Thg5Hhg5DigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODI3Njc0NTY0MjA0OTUwMjU1MCI+IuGDl+GDpeGDleGDlOGDnCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPi3hg6/hg5Thg6Ag4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDqOGDlOGDmOGDp+GDleGDkOGDnOGDlOGDlyBQSU4g4YOZ4YOd4YOT4YOYLiBcblxu4YOh4YOq4YOQ4YOT4YOU4YOXIOGDruGDlOGDmuGDkOGDruGDmuGDkCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg5vhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+IuGDl+GDpeGDleGDlOGDnCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPi3hg6/hg5Thg6Ag4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDk+GDkOGDkeGDlOGDreGDk+GDlOGDlyDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOe4YOQ4YOg4YOd4YOa4YOYLiBcblxu4YOu4YOU4YOa4YOQ4YOu4YOa4YOQIOGDoeGDquGDkOGDk+GDlOGDlyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg5vhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+IuGDl+GDpeGDleGDlOGDnCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPi3hg6/hg5Thg6Ag4YOT4YOQ4YOu4YOQ4YOi4YOU4YOXIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg5zhg5jhg5vhg6Phg6jhg5guIFxuXG7hg6Hhg6rhg5Dhg5Phg5Thg5cg4YOu4YOU4YOa4YOQ4YOu4YOa4YOQIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDm+GDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1NzU1NTcyMDA2MjcxMjg5NDkiPiLhg5fhg6Xhg5Xhg5Thg5wg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDoeGDquGDkOGDk+GDlOGDlyDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+LeGDr+GDlOGDoC4g4YOZ4YOY4YOT4YOU4YOVIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDoOGDo+GDm+GDkOGDouGDlOGDkeGDlOGDmuGDmCDhg6rhg5Phg5jhg6Eg4YOo4YOU4YOb4YOT4YOU4YOSIOGDouGDkOGDkeGDmuGDlOGDouGDluGDlCDhg5Phg5Dhg6fhg5Thg5zhg5Phg5Thg5Hhg5Ag4YOh4YOQ4YOs4YOn4YOY4YOh4YOYLCDhg6Xhg5Dhg6Dhg67hg5zhg6Phg5rhg5gg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYIOGDk+GDkCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOn4YOV4YOU4YOa4YOQIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDmCDhg5Phg5Dhg5jhg5nhg5Dhg6Dhg5Lhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDA1MTAxNTk0MzAzODE5OTkxMCI+IuGDl+GDpeGDleGDlOGDnCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOh4YOq4YOQ4YOT4YOU4YOXIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5AgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4t4YOv4YOU4YOgLiDhg5nhg5jhg5Phg5Thg5UgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOg4YOj4YOb4YOQ4YOi4YOU4YOR4YOU4YOa4YOYIOGDquGDk+GDmOGDoSDhg6jhg5Thg5vhg5Phg5Thg5Ig4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOW4YOUIOGDk+GDkOGDp+GDlOGDnOGDk+GDlOGDkeGDkCDhg6Hhg5Dhg6zhg6fhg5jhg6Hhg5gsIOGDpeGDkOGDoOGDruGDnOGDo+GDmuGDmCDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5gg4YOT4YOQIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg6fhg5Xhg5Thg5rhg5Ag4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOYIOGDk+GDkOGDmOGDmeGDkOGDoOGDkuGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA3Mjk5NjI2OTE0ODQ4MzYzNyI+IuGDl+GDpeGDleGDlOGDnCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOh4YOq4YOQ4YOT4YOU4YOXIOGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5AgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+LeGDr+GDlOGDoC4g4YOi4YOQ4YOR4YOa4YOU4YOi4YOW4YOUIOGDk+GDkOGDp+GDlOGDnOGDk+GDlOGDkeGDkCDhg6Hhg5Dhg6zhg6fhg5jhg6Hhg5gsIOGDpeGDkOGDoOGDruGDnOGDo+GDmuGDmCDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5gg4YOT4YOQIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg6fhg5Xhg5Thg5rhg5Ag4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOYIOGDk+GDkOGDmOGDmeGDkOGDoOGDkuGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ4MTc2Mjc0NzQ0MTk0NzE1MTgiPiLhg5fhg6Xhg5Xhg5Thg5wgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+LeGDr+GDlOGDoCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOh4YOq4YOQ4YOT4YOU4YOXIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5AuIOGDkOGDm+GDmOGDouGDneGDmyDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5bhg5Qg4YOT4YOQ4YOT4YOS4YOU4YOR4YOQIOGDoeGDkOGDrOGDp+GDmOGDoeGDmCwg4YOl4YOQ4YOg4YOu4YOc4YOj4YOa4YOYIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4i4YOX4YOl4YOV4YOU4YOcIOGDkOGDoOGDkOGDoeGDrOGDneGDoOGDkOGDkyDhg5Phg5Dhg67hg5Dhg6Lhg5Thg5cg4YOX4YOl4YOV4YOU4YOc4YOYIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg5zhg5jhg5vhg6Phg6jhg5ggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4YOv4YOU4YOgLiDhg5nhg5jhg5Phg5Thg5UgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOg4YOj4YOb4YOQ4YOi4YOU4YOR4YOU4YOa4YOYIOGDquGDk+GDmOGDoSDhg6jhg5Thg5vhg5Phg5Thg5Ig4YOb4YOd4YOS4YOX4YOu4YOd4YOV4YOXIOGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5Dhg6Eg4YOU4YOa4YOk4YOd4YOh4YOi4YOY4YOhIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg5cuXG5cbiDhg67hg5Thg5rhg5Dhg67hg5rhg5Ag4YOh4YOq4YOQ4YOT4YOU4YOXIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDm+GDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IuGDl+GDpeGDleGDlOGDnCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOT4YOQ4YOu4YOQ4YOi4YOU4YOXIOGDl+GDpeGDleGDlOGDnOGDmCDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Eg4YOc4YOY4YOb4YOj4YOo4YOYIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+LeGDr+GDlOGDoC4g4YOZ4YOY4YOT4YOU4YOVIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDoOGDo+GDm+GDkOGDouGDlOGDkeGDlOGDmuGDmCDhg6rhg5Phg5jhg6Eg4YOo4YOU4YOb4YOT4YOU4YOSLCDhg5Phg5Dhg5Lhg63hg5jhg6Dhg5Phg5Thg5Hhg5Dhg5cg4YOX4YOl4YOV4YOU4YOc4YOYIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5Ag4YOU4YOa4YOk4YOd4YOh4YOi4YOY4YOhIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg5cuXG5cbiDhg67hg5Thg5rhg5Dhg67hg5rhg5Ag4YOh4YOq4YOQ4YOT4YOU4YOXIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDm+GDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLhg5Dhg5vhg53hg6jhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IlNJTS3hg5jhg6Eg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOYIFBJTiDhg5nhg53hg5Phg5guIOGDl+GDpeGDleGDlOGDnCDhg5Dhg67hg5rhg5Ag4YOb4YOd4YOS4YOY4YOs4YOU4YOV4YOXIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDmOGDoSDhg5Lhg5Dhg5zhg6Hhg5Dhg5Hhg5rhg53hg5nhg5Dhg5Mg4YOb4YOY4YOb4YOQ4YOg4YOX4YOd4YOXIOGDneGDnuGDlOGDoOGDkOGDouGDneGDoOGDoS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+IlNJTS3hg5jhg6Eg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOYIFBJTiDhg5nhg53hg5Phg5guIOGDl+GDpeGDleGDlOGDnCDhg5Phg5Dhg5Lhg6Dhg6nhg5Dhg5cgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOGDm+GDquGDk+GDlOGDmuGDneGDkeGDkCwg4YOh4YOQ4YOc4YOQ4YObIOGDm+GDneGDkuGDmOGDrOGDlOGDleGDlyDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOY4YOhIOGDkuGDkOGDnOGDoeGDkOGDkeGDmuGDneGDmeGDkOGDkyDhg53hg57hg5Thg6Dhg5Dhg6Lhg53hg6Dhg5fhg5Dhg5wg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOQLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+IlNJTS3hg5jhg6Eg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOYIFBJTiDhg5nhg53hg5Phg5guIOGDl+GDpeGDleGDlOGDnCDhg5Phg5Dhg5Lhg6Dhg6nhg5Dhg5cgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOGDm+GDquGDk+GDlOGDmuGDneGDkeGDkC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+IlNJTSDhg5Lhg5Dhg5vhg53hg6Phg6Hhg5Dhg5Phg5Thg5Lhg5Dhg6Dhg5jhg5AuIOGDk+GDkOGDo+GDmeGDkOGDleGDqOGDmOGDoOGDk+GDmOGDlyDhg53hg57hg5Thg6Dhg5Dhg6Lhg53hg6Dhg6EuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiLhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5ggU0lNIFBVSyDhg5nhg53hg5Phg5guIOGDl+GDpeGDleGDlOGDnCDhg5Phg5Dhg5Lhg6Dhg6nhg5Dhg5cgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOGDm+GDquGDk+GDlOGDmuGDneGDkeGDkCwg4YOh4YOQ4YOc4YOQ4YObIFNJTSDhg6Hhg5Dhg5vhg6Phg5Phg5Dhg5vhg53hg5Mg4YOS4YOQ4YOb4YOd4YOj4YOh4YOQ4YOT4YOU4YOS4YOQ4YOg4YOYIOGDkuGDkOGDruGDk+GDlOGDkeGDneGDk+GDlOGDoS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiLhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5ggU0lNIFBVSyDhg5nhg53hg5Phg5guIOGDl+GDpeGDleGDlOGDnCDhg5Phg5Dhg5Lhg6Dhg6nhg5Dhg5cgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOGDm+GDquGDk+GDlOGDmuGDneGDkeGDkCwg4YOh4YOQ4YOc4YOQ4YObIFNJTSDhg6Hhg5Dhg5vhg6Phg5Phg5Dhg5vhg53hg5Mg4YOS4YOQ4YOb4YOd4YOj4YOh4YOQ4YOT4YOU4YOS4YOQ4YOg4YOYIOGDkuGDkOGDruGDk+GDlOGDkeGDneGDk+GDlOGDoS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IlNJTSBQSU4g4YOd4YOe4YOU4YOg4YOQ4YOq4YOY4YOQIOGDqeGDkOGDmOGDqOGDkOGDmuGDkCEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IlNJTSBQVUsg4YOd4YOe4YOU4YOg4YOQ4YOq4YOY4YOQIOGDqeGDkOGDmOGDqOGDkOGDmuGDkCEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4i4YOZ4YOd4YOT4YOYIOGDm+GDmOGDpuGDlOGDkeGDo+GDmuGDmOGDkCEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiLhg6zhg5jhg5zhg5Ag4YOp4YOQ4YOc4YOQ4YOs4YOU4YOg4YOW4YOUIOGDkuGDkOGDk+GDkOGDoeGDleGDmuGDmOGDoSDhg6bhg5jhg5rhg5Dhg5nhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiLhg6jhg5Thg5vhg5Phg5Thg5Lhg5gg4YOp4YOQ4YOc4YOQ4YOs4YOU4YOg4YOY4YOhIOGDpuGDmOGDmuGDkOGDmeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiLhg57hg5Dhg6Phg5bhg5jhg6Eg4YOm4YOY4YOa4YOQ4YOZ4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSIyOTI0NjI4ODYzNzQxMTUwOTU2Ij4i4YOT4YOQ4YOZ4YOV4YOg4YOY4YOhIOGDpuGDmOGDmuGDkOGDmeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMzA4NDE3OTMyNDgxMDU3NTc4NyI+IuGDqOGDlOGDqeGDlOGDoOGDlOGDkeGDmOGDoSDhg6bhg5jhg5rhg5Dhg5nhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jYXJyaWVyX2RlZmF1bHQiIG1zZ2lkPSI4NzAwNjUwNDAzMDU0MDQyMTUzIj4i4YOQ4YOgIOGDkOGDoOGDmOGDoSDhg6Hhg5Thg6Dhg5Xhg5jhg6Hhg5guIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWthL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1rYS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTAxYmY0Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1rYS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDEzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLhg5Dhg5nhg6Dhg5jhg6Thg5Thg5cgUElOIOGDmeGDneGDk+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IuGDk+GDkOGDkeGDlOGDreGDk+GDlOGDlyBQVUsg4YOZ4YOd4YOT4YOYIOGDk+GDkCDhg5Dhg67hg5Dhg5rhg5ggUElOIOGDmeGDneGDk+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IlBVSyDhg5nhg53hg5Phg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+IuGDkOGDruGDkOGDmuGDmCBQSU4g4YOZ4YOd4YOT4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPiLhg6jhg5Thg5Thg67hg5Thg5cgIjxmb250IHNpemU9IjE3Ij4iLeGDoSDhg57hg5Dhg6Dhg53hg5rhg5jhg6EiPC9mb250PiIg4YOT4YOQ4YOh4YOQ4YOR4YOU4YOt4YOT4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4i4YOS4YOQ4YOc4YOh4YOQ4YOR4YOa4YOd4YOZ4YOQ4YOTIOGDkOGDmeGDoOGDmOGDpOGDlOGDlyDhg57hg5Dhg6Dhg53hg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLhg5Lhg5Dhg5zhg6Hhg5Dhg5Hhg5rhg53hg5nhg5Dhg5Mg4YOQ4YOZ4YOg4YOY4YOk4YOU4YOXIFBJTiDhg5nhg53hg5Phg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5ggUElOIOGDmeGDneGDk+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4i4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOY4YOh4YOQ4YOX4YOV4YOY4YOhIOGDk+GDkOGDkOGDreGDmOGDoOGDlOGDlyDhg5vhg5Thg5zhg5jhg6Phg6Eg4YOT4YOQIOGDqOGDlOGDm+GDk+GDlOGDkiAwLeGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWNldW5sb2NrX211bHRpcGxlX2ZhaWx1cmVzIiBtc2dpZD0iNzU0MTM3NTgzMDIyNzkyNDI5Ij4i4YOh4YOQ4YOu4YOY4YOhIOGDkOGDm+GDneGDquGDnOGDneGDkeGDmOGDlyDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Eg4YOb4YOq4YOT4YOU4YOa4YOd4YOR4YOQ4YObIOGDk+GDkOGDqOGDleGDlOGDkeGDo+GDmiDhg6Dhg5Dhg53hg5Phg5Thg5zhg53hg5Hhg5Dhg6Eg4YOS4YOQ4YOT4YOQ4YOQ4YOt4YOQ4YOg4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2hhcmdlZCIgbXNnaWQ9IjMyNzIyMjM5MDYwNzM0OTI0NTQiPiLhg5Phg5Dhg5vhg6Phg67hg6Lhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wbHVnZ2VkX2luIiBtc2dpZD0iODExNzU3MjAwMDYzOTk5ODM4OCI+IuGDm+GDmOGDm+GDk+GDmOGDnOGDkOGDoOGDlOGDneGDkeGDoSDhg5Phg5Dhg5vhg6Phg67hg6Lhg5Xhg5AgKDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbG93X2JhdHRlcnkiIG1zZ2lkPSI4MTQzODA4MDE4NzE5MTczODU5Ij4i4YOo4YOU4YOQ4YOU4YOg4YOX4YOU4YOXIOGDk+GDkOGDm+GDouGDlOGDnOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iMTMzMjI4ODI2ODYwMDMyOTg0MSI+IuGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoeGDl+GDleGDmOGDoSDhg5Phg5Dhg5Dhg63hg5jhg6Dhg5Thg5cg4YOb4YOU4YOc4YOY4YOj4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX25ldHdvcmtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI5MTY5NzE3Nzc5MDU4MDM3MTY4Ij4i4YOl4YOh4YOU4YOa4YOYIOGDqeGDkOGDmeGDlOGDouGDmOGDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0OTQ5ODA1NjEzMDQyMTE5MzEiPiJTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOYIOGDkOGDoCDhg5Dhg6Dhg5jhg6EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNDQ1ODQ5MDA1OTA5MjYwMDM5Ij4i4YOi4YOQ4YOR4YOa4YOU4YOi4YOo4YOYIOGDkOGDoCDhg5Phg5Thg5Xhg6EgU0lNIOGDkeGDkOGDoOGDkOGDl+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ4MTExMDM5NTUwODYzNzY0MyI+IuGDkOGDoCDhg5Dhg6Dhg5jhg6EgU0lNIOGDkeGDkOGDoOGDkOGDl+GDmCDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTIxMDg5MTUwOTk5NTk0MjI1MCI+IuGDqeGDkOGDk+GDlOGDlyBTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iNTk2ODk4NTQ4OTQ2Mzg3MDM1OCI+IlNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5gg4YOQ4YOgIOGDkOGDoOGDmOGDoSDhg5Dhg5wg4YOQ4YOgIOGDmOGDmeGDmOGDl+GDruGDlOGDkeGDkC4g4YOp4YOQ4YOT4YOU4YOXIFNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iODM0MDgxMzk4OTU4NjYyMjM1NiI+IuGDkOGDoOGDkOGDm+GDneGDruGDm+GDkOGDoOGDlOGDkeGDkOGDk+GDmCBTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTg5Mjk0MDkwOTY5OTcyMzU0NCI+IuGDl+GDpeGDleGDlOGDnOGDmCBTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOYIOGDkuGDkOGDm+GDo+GDk+GDm+GDlOGDkeGDmOGDlyDhg5Lhg5Dhg5vhg53hg6Dhg5fhg6Phg5rhg5gg4YOY4YOn4YOdLlxuIOGDk+GDkOGDo+GDmeGDkOGDleGDqOGDmOGDoOGDk+GDmOGDlyDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOj4YOZ4YOQ4YOR4YOU4YOa4YOdIOGDoeGDlOGDoOGDleGDmOGDoeGDmOGDoSDhg57hg6Dhg53hg5Xhg5Dhg5jhg5Phg5Thg6Dhg6Eg4YOh4YOu4YOV4YOQIFNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5jhg6Hhg5fhg5Xhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+IlNJTSDhg5Hhg5Dhg6Dhg5Dhg5fhg5gg4YOT4YOQ4YOR4YOa4YOd4YOZ4YOY4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9wdWtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSIzNzQ3MjMyNDY3NDcxODAxNjMzIj4iU0lNIOGDkeGDkOGDoOGDkOGDl+GDmCDhg5Phg5Dhg5Hhg5rhg53hg5nhg5jhg5rhg5jhg5AgUFVLIOGDmeGDneGDk+GDmOGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzk3NTIyMTgwNTAzMzYxNDQyNiI+IuGDm+GDmOGDm+GDk+GDmOGDnOGDkOGDoOGDlOGDneGDkeGDoSBTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOY4YOhIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDkOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4g4YOV4YOY4YOv4YOU4YOi4YOYICUyJGQgb2YgJTMkZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2FkZF93aWRnZXQiIG1zZ2lkPSI4MjczMjc3MDU4NzI0OTI0NjU0Ij4i4YOV4YOY4YOv4YOU4YOi4YOY4YOhIOGDk+GDkOGDm+GDkOGDouGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i4YOq4YOQ4YOg4YOY4YOU4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Eg4YOh4YOY4YOV4YOg4YOq4YOUIOGDkuGDkOGDqOGDmuGDmOGDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2NvbGxhcHNlZCIgbXNnaWQ9IjYzNjY5OTIwNjY5MzYwNzYzOTYiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Eg4YOh4YOY4YOV4YOg4YOq4YOUIOGDqeGDkOGDmeGDlOGDquGDmOGDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldCIgbXNnaWQ9IjY1MjcxMzEwMzk3NDE4MDgyNDAiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDhg5Xhg5jhg6/hg5Thg6Lhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91c2VyX3NlbGVjdG9yIiBtc2dpZD0iMTIyNjc5ODM3MDkxMzY5ODg5NiI+IuGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg5Dhg5vhg53hg5vhg6Dhg6nhg5Thg5Xhg5Thg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3N0YXR1cyIgbXNnaWQ9IjgwMDgyNjQ2MDM5MzU5MzA2MTEiPiLhg6Hhg6Lhg5Dhg6Lhg6Phg6Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2NhbWVyYSIgbXNnaWQ9Ijg5MDQyMzExOTQxODExMTQ2MDMiPiLhg5nhg5Dhg5vhg5Thg6Dhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlnYXVyZF9hY2Nlc3NpYmlsaXR5X21lZGlhX2NvbnRyb2xzIiBtc2dpZD0iMjYyMjA5NjU0MjkyMTYxODA2Ij4i4YOb4YOU4YOT4YOY4YOY4YOhIOGDm+GDkOGDoOGDl+GDleGDmOGDoSDhg5Thg5rhg5Thg5vhg5Thg5zhg6Lhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+IuGDk+GDkOGDmOGDrOGDp+GDnSDhg5Xhg5jhg6/hg5Thg6Lhg5jhg6Eg4YOu4YOU4YOa4YOQ4YOu4YOa4YOQIOGDkuGDkOGDnOGDmuGDkOGDkuGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiLhg5Xhg5jhg6/hg5Thg6Lhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOT4YOQ4YOu4YOQ4YOg4YOY4YOh4YOu4YOU4YOR4YOQIOGDk+GDkOGDoeGDoOGDo+GDmuGDlOGDkeGDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9kZWxldGVkIiBtc2dpZD0iNDQyNjIwNDI2MzkyOTIyNDQzNCI+IuGDleGDmOGDr+GDlOGDouGDmCA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDhg6zhg5Dhg5jhg6jhg5Dhg5rhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4i4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOY4YOhIOGDoeGDmOGDleGDoOGDquGDmOGDoSDhg5Lhg5Dhg6jhg5rhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV91bmxvY2siIG1zZ2lkPSIyOTU5OTI4NDc4NzY0Njk3MjU0Ij4i4YOS4YOQ4YOh4YOg4YOY4YOQ4YOa4YOU4YOR4YOY4YOXIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl91bmxvY2siIG1zZ2lkPSIxNDkwODQwNzA2MDc1MjQ2NjEyIj4i4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIOGDnOGDmOGDm+GDo+GDqOGDmOGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+IuGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDkCDhg6Hhg5Dhg67hg5jhg5ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4i4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIFBpbi3hg5jhg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXNzd29yZF91bmxvY2siIG1zZ2lkPSI3Njc1Nzc3NjIzOTEyMTU1MDg5Ij4i4YOe4YOQ4YOg4YOd4YOa4YOY4YOhIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl9hcmVhIiBtc2dpZD0iNzY3OTg5MTMyNDUwOTU5NzkwNCI+IuGDnOGDmOGDm+GDo+GDqOGDlOGDkeGDmOGDoSDhg6Hhg5jhg5Xhg6Dhg6rhg5QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV9hcmVhIiBtc2dpZD0iNjczNjA2NDQ5NDAxOTk3OTU0NCI+IuGDkuGDkOGDk+GDkOGDoeGDoOGDmOGDkOGDmuGDlOGDkeGDmOGDoSDhg6Hhg5jhg5Xhg6Dhg6rhg5QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjEzMzcyODY1MzgzMTg1NDM1NTUiPiLhg6zhg5jhg5zhg5Ag4YOp4YOQ4YOc4YOQ4YOs4YOU4YOg4YOY4YOhIOGDpuGDmOGDmuGDkOGDmeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI3MDczOTI4MzAwNDQ0OTA5MzIwIj4i4YOo4YOU4YOb4YOT4YOU4YOS4YOYIOGDqeGDkOGDnOGDkOGDrOGDlOGDoOGDmOGDoSDhg6bhg5jhg5rhg5Dhg5nhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiLhg57hg5Dhg6Phg5bhg5jhg6Eg4YOm4YOY4YOa4YOQ4YOZ4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiLhg5Phg5Dhg5nhg5Xhg6Dhg5jhg6Eg4YOm4YOY4YOa4YOQ4YOZ4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJTdG9wIOGDpuGDmOGDmuGDkOGDmeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfYWx0IiBtc2dpZD0iNDg1Njg2ODgyMDA0MDA1MTkzOSI+IkFsdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2NhbmNlbCIgbXNnaWQ9IjEyMDM5ODQwMTcyNDU3ODMyNDQiPiLhg5Lhg5Dhg6Phg6Xhg5vhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kZWxldGUiIG1zZ2lkPSIzMzM3OTE0ODMzMjA2NjM1NzQ0Ij4i4YOs4YOQ4YOo4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZG9uZSIgbXNnaWQ9IjE5OTI1NzExMTg0NjY2Nzk3NzUiPiLhg5Phg5Dhg6Hhg6Dhg6Phg5rhg5Phg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9tb2RlX2NoYW5nZSIgbXNnaWQ9IjQ1NDczODc3NDE5MDY1Mzc1MTkiPiLhg6Dhg5Thg5/hg5jhg5vhg5jhg6Eg4YOo4YOU4YOq4YOV4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4i4YOo4YOU4YOn4YOV4YOQ4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9jayIgbXNnaWQ9IjIyMjg1MjQ5MDA0Mzk4MDE0NTMiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfY2FtZXJhIiBtc2dpZD0iOTY5MDcxOTk3NTUyNDg2ODE0Ij4i4YOZ4YOQ4YOb4YOU4YOg4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NpbGVudCIgbXNnaWQ9Ijg5MzU1MTI4Nzc0NjUyMjE4MiI+IuGDo+GDruGDm+GDnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zb3VuZG9uIiBtc2dpZD0iMzAwNTI0NjY2NzU1MDAxNzIiPiLhg67hg5vhg5jhg6Eg4YOp4YOQ4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiLhg6vhg5jhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4i4YOS4YOQ4YOQ4YOh4YOg4YOY4YOQ4YOa4YOU4YOXIOGDluGDlOGDm+GDneGDlyA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4t4YOX4YOV4YOY4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9kb3duIiBtc2dpZD0iNTA4NzczOTcyODYzOTAxNDU5NSI+IuGDkuGDkOGDkOGDoeGDoOGDmOGDkOGDmuGDlOGDlyDhg6Xhg5Xhg5Thg5vhg53hg5cgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LeGDl+GDleGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fbGVmdCIgbXNnaWQ9IjcyMDc0Nzg3MTk4MDU1NjIxNjUiPiLhg5Lhg5Dhg5Dhg6Hhg6Dhg5jhg5Dhg5rhg5Thg5cg4YOb4YOQ4YOg4YOq4YOu4YOc4YOY4YOVIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi3hg5fhg5Xhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3JpZ2h0IiBtc2dpZD0iODAzNDQzMzI0MjU3OTYwMDk4MCI+IuGDkuGDkOGDkOGDoeGDoOGDmOGDkOGDmuGDlOGDlyDhg5vhg5Dhg6Dhg6/hg5Xhg5zhg5jhg5UgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LeGDl+GDleGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VyX3N3aXRjaGVkIiBtc2dpZD0iMzc2ODAwNjc4MzE2Njk4NDQxMCI+IuGDkOGDm+GDn+GDkOGDm+GDmOGDnOGDk+GDlOGDmuGDmCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5Thg5rhg5ggPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VtZXJnZW5jeV9jYWxsX2xhYmVsIiBtc2dpZD0iNjg0OTQ2MTkyNTIzODMwNTMxIj4i4YOS4YOQ4YOT4YOQ4YOj4YOT4YOU4YOR4YOU4YOa4YOYIOGDk+GDkOGDruGDm+GDkOGDoOGDlOGDkeGDmOGDoSDhg5bhg5Dhg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLhg5Phg5Dhg5Lhg5Dhg5Xhg5jhg6zhg6fhg5Phg5Dhg5cg4YOc4YOY4YOb4YOj4YOo4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiLhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5gg4YOc4YOY4YOb4YOj4YOo4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGFzc3dvcmQiIG1zZ2lkPSIyMzMzMjgxNzYyMTI4MTEzMTU3Ij4i4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOYIOGDnuGDkOGDoOGDneGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiLhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5ggUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiLhg5nhg5jhg5Phg5Thg5Ug4YOh4YOq4YOQ4YOT4YOU4YOXIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg5vhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiLhg5Phg5Dhg67hg5Dhg6Lhg5Thg5cg4YOX4YOl4YOV4YOU4YOc4YOYIOGDnOGDmOGDm+GDo+GDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiJTSU0gUElOLeGDmOGDoSDhg6jhg5Thg6fhg5Xhg5Dhg5zhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IuGDqOGDlOGDmOGDp+GDleGDkOGDnOGDlOGDlyBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1NzUzNjQ2NTU2MTg2OTM2ODE5Ij4i4YOe4YOQ4YOg4YOd4YOa4YOY4YOhIOGDqOGDlOGDp+GDleGDkOGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+IlNJTSDhg5Dhg5vhg5/hg5Dhg5vhg5Dhg5Mg4YOT4YOU4YOQ4YOl4YOi4YOY4YOV4YOY4YOg4YOU4YOR4YOj4YOa4YOY4YOQLiDhg5Lhg5Dhg6Hhg5Dhg5Lhg6Dhg6vhg5Thg5rhg5Thg5Hhg5rhg5Dhg5Mg4YOo4YOU4YOY4YOn4YOV4YOQ4YOc4YOU4YOXIFBVSyDhg5nhg53hg5Phg5guIOGDk+GDlOGDouGDkOGDmuGDlOGDkeGDmOGDoeGDl+GDleGDmOGDoSDhg5vhg5jhg5vhg5Dhg6Dhg5fhg5Thg5cg4YOb4YOd4YOR4YOY4YOa4YOj4YOgIOGDneGDnuGDlOGDoOGDkOGDouGDneGDoOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i4YOh4YOQ4YOh4YOj4YOg4YOV4YOU4YOa4YOYIFBJTiDhg5nhg53hg5Phg5jhg6Eg4YOo4YOU4YOn4YOV4YOQ4YOc4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IuGDoeGDkOGDoeGDo+GDoOGDleGDlOGDmuGDmCBQSU4g4YOZ4YOd4YOT4YOY4YOhIOGDk+GDkOGDk+GDkOGDoeGDouGDo+GDoOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iU0lNIOGDkeGDkOGDoOGDkOGDl+GDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5DigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiLhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5ggUElOIOGDmeGDneGDk+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLhg5Dhg5nhg6Dhg5jhg6Thg5Thg5cgUElOLCDhg6Dhg53hg5vhg5Thg5rhg5jhg6og4YOo4YOU4YOT4YOS4YOU4YOR4YOQIDQt4YOT4YOQ4YOcIDgg4YOq4YOY4YOk4YOg4YOQ4YOb4YOT4YOULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyDhg5nhg53hg5Phg5gg4YOj4YOc4YOT4YOQIOGDmOGDp+GDneGDoSDhg6Dhg5Xhg5Ag4YOQ4YOcIOGDm+GDlOGDouGDmCDhg6rhg5jhg6Thg6Dhg5jhg6Hhg5Lhg5Dhg5wg4YOo4YOU4YOb4YOT4YOS4YOQ4YOg4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IuGDruGDlOGDmuGDkOGDruGDmuGDkCDhg6jhg5Thg5jhg6fhg5Xhg5Dhg5zhg5Thg5cg4YOh4YOs4YOd4YOg4YOYIFBVSyDhg5nhg53hg5Phg5guIOGDoOGDkOGDm+GDk+GDlOGDnOGDmOGDm+GDlCDhg6zhg5Dhg6Dhg6Phg5vhg5Dhg6Lhg5Thg5Hhg5Thg5rhg5gg4YOb4YOq4YOT4YOU4YOa4YOd4YOR4YOQIOGDkuGDkOGDm+GDneGDmOGDrOGDleGDlOGDleGDoSBTSU0g4YOR4YOQ4YOg4YOQ4YOX4YOY4YOhIOGDk+GDkOGDkeGDmuGDneGDmeGDleGDkOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4iUElOIOGDmeGDneGDk+GDlOGDkeGDmCDhg5Dhg6Ag4YOU4YOb4YOX4YOu4YOV4YOU4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4i4YOc4YOQ4YOu4YOQ4YOi4YOYIOGDnOGDmOGDm+GDo+GDqOGDmOGDoSDhg6vhg5Dhg5rhg5jhg5Dhg5wg4YOR4YOU4YOV4YOg4YOYIOGDm+GDquGDk+GDlOGDmuGDneGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Hhg5fhg5Xhg5jhg6Eg4YOS4YOQ4YOY4YOQ4YOg4YOU4YOXIOGDkOGDleGDouGDneGDoOGDmOGDluGDkOGDquGDmOGDkCDhg5fhg6Xhg5Xhg5Thg5zhg5ggR29vZ2xlICDhg5Dhg5zhg5Lhg5Dhg6Dhg5jhg6jhg5jhg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9IjU3MTg1MzQyNzIwNzA5MjAzNjQiPiLhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOh4YOQ4YOu4YOU4YOa4YOYICjhg5Thg5rhg6Thg53hg6Hhg6Lhg5ApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjkwNTcyODkxMDM4MjcyOTg1NDkiPiLhg57hg5Dhg6Dhg53hg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNTM1NTkwNDU4MjY3NDA1NDcwMiI+IuGDqOGDlOGDoeGDleGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4i4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOYIOGDoeGDkOGDruGDlOGDmuGDmCwg4YOQ4YOcIOGDnuGDkOGDoOGDneGDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i4YOT4YOQ4YOS4YOQ4YOV4YOY4YOs4YOn4YOT4YOQ4YOXIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg6Hhg5Dhg67hg5Thg5rhg5gg4YOT4YOQIOGDnuGDkOGDoOGDneGDmuGDmD9cbuGDlOGDrOGDleGDmOGDlOGDlyAiPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSIxMDUyNjg1MTk3NzEwMjUyMzk1Ij4i4YOb4YOY4YOb4YOT4YOY4YOc4YOQ4YOg4YOU4YOd4YOR4YOhIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoSDhg6jhg5Thg5vhg53hg6zhg5vhg5Thg5Hhg5DigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODI3Njc0NTY0MjA0OTUwMjU1MCI+IuGDl+GDpeGDleGDlOGDnCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPi3hg6/hg5Thg6Ag4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDqOGDlOGDmOGDp+GDleGDkOGDnOGDlOGDlyBQSU4g4YOZ4YOd4YOT4YOYLiBcblxu4YOh4YOq4YOQ4YOT4YOU4YOXIOGDruGDlOGDmuGDkOGDruGDmuGDkCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg5vhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+IuGDl+GDpeGDleGDlOGDnCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPi3hg6/hg5Thg6Ag4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDk+GDkOGDkeGDlOGDreGDk+GDlOGDlyDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOe4YOQ4YOg4YOd4YOa4YOYLiBcblxu4YOu4YOU4YOa4YOQ4YOu4YOa4YOQIOGDoeGDquGDkOGDk+GDlOGDlyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhg6zhg5Dhg5vhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+IuGDl+GDpeGDleGDlOGDnCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPi3hg6/hg5Thg6Ag4YOT4YOQ4YOu4YOQ4YOi4YOU4YOXIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg5zhg5jhg5vhg6Phg6jhg5guIFxuXG7hg6Hhg6rhg5Dhg5Phg5Thg5cg4YOu4YOU4YOa4YOQ4YOu4YOa4YOQIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDm+GDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1NzU1NTcyMDA2MjcxMjg5NDkiPiLhg5fhg6Xhg5Xhg5Thg5wg4YOQ4YOg4YOQ4YOh4YOs4YOd4YOg4YOQ4YOTIOGDoeGDquGDkOGDk+GDlOGDlyDhg6Lhg5Dhg5Hhg5rhg5Thg6Lhg5jhg6Eg4YOS4YOQ4YOc4YOR4YOa4YOd4YOZ4YOV4YOQIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+LeGDr+GDlOGDoC4g4YOZ4YOY4YOT4YOU4YOVIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDoOGDo+GDm+GDkOGDouGDlOGDkeGDlOGDmuGDmCDhg6rhg5Phg5jhg6Eg4YOo4YOU4YOb4YOT4YOU4YOSIOGDouGDkOGDkeGDmuGDlOGDouGDluGDlCDhg5Phg5Dhg6fhg5Thg5zhg5Phg5Thg5Hhg5Ag4YOh4YOQ4YOs4YOn4YOY4YOh4YOYLCDhg6Xhg5Dhg6Dhg67hg5zhg6Phg5rhg5gg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYIOGDk+GDkCDhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5rhg5jhg6Eg4YOn4YOV4YOU4YOa4YOQIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDmCDhg5Phg5Dhg5jhg5nhg5Dhg6Dhg5Lhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDA1MTAxNTk0MzAzODE5OTkxMCI+IuGDl+GDpeGDleGDlOGDnCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOh4YOq4YOQ4YOT4YOU4YOXIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5AgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4t4YOv4YOU4YOgLiDhg5nhg5jhg5Phg5Thg5UgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOg4YOj4YOb4YOQ4YOi4YOU4YOR4YOU4YOa4YOYIOGDquGDk+GDmOGDoSDhg6jhg5Thg5vhg5Phg5Thg5Ig4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOW4YOUIOGDk+GDkOGDp+GDlOGDnOGDk+GDlOGDkeGDkCDhg6Hhg5Dhg6zhg6fhg5jhg6Hhg5gsIOGDpeGDkOGDoOGDruGDnOGDo+GDmuGDmCDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5gg4YOT4YOQIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg6fhg5Xhg5Thg5rhg5Ag4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOYIOGDk+GDkOGDmOGDmeGDkOGDoOGDkuGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA3Mjk5NjI2OTE0ODQ4MzYzNyI+IuGDl+GDpeGDleGDlOGDnCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOh4YOq4YOQ4YOT4YOU4YOXIOGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5AgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+LeGDr+GDlOGDoC4g4YOi4YOQ4YOR4YOa4YOU4YOi4YOW4YOUIOGDk+GDkOGDp+GDlOGDnOGDk+GDlOGDkeGDkCDhg6Hhg5Dhg6zhg6fhg5jhg6Hhg5gsIOGDpeGDkOGDoOGDruGDnOGDo+GDmuGDmCDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5gg4YOT4YOQIOGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDmuGDmOGDoSDhg6fhg5Xhg5Thg5rhg5Ag4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOYIOGDk+GDkOGDmOGDmeGDkOGDoOGDkuGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ4MTc2Mjc0NzQ0MTk0NzE1MTgiPiLhg5fhg6Xhg5Xhg5Thg5wgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+LeGDr+GDlOGDoCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOh4YOq4YOQ4YOT4YOU4YOXIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5AuIOGDkOGDm+GDmOGDouGDneGDmyDhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5bhg5Qg4YOT4YOQ4YOT4YOS4YOU4YOR4YOQIOGDoeGDkOGDrOGDp+GDmOGDoeGDmCwg4YOl4YOQ4YOg4YOu4YOc4YOj4YOa4YOYIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4i4YOX4YOl4YOV4YOU4YOcIOGDkOGDoOGDkOGDoeGDrOGDneGDoOGDkOGDkyDhg5Phg5Dhg67hg5Dhg6Lhg5Thg5cg4YOX4YOl4YOV4YOU4YOc4YOYIOGDkuGDkOGDnOGDkeGDmuGDneGDmeGDleGDmOGDoSDhg5zhg5jhg5vhg6Phg6jhg5ggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4YOv4YOU4YOgLiDhg5nhg5jhg5Phg5Thg5UgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4YOs4YOQ4YOg4YOj4YOb4YOQ4YOi4YOU4YOR4YOU4YOa4YOYIOGDquGDk+GDmOGDoSDhg6jhg5Thg5vhg5Phg5Thg5Ig4YOb4YOd4YOS4YOX4YOu4YOd4YOV4YOXIOGDouGDkOGDkeGDmuGDlOGDouGDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5Dhg6Eg4YOU4YOa4YOk4YOd4YOh4YOi4YOY4YOhIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg5cuXG5cbiDhg67hg5Thg5rhg5Dhg67hg5rhg5Ag4YOh4YOq4YOQ4YOT4YOU4YOXIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDm+GDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IuGDl+GDpeGDleGDlOGDnCDhg5Dhg6Dhg5Dhg6Hhg6zhg53hg6Dhg5Dhg5Mg4YOT4YOQ4YOu4YOQ4YOi4YOU4YOXIOGDl+GDpeGDleGDlOGDnOGDmCDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5jhg6Eg4YOc4YOY4YOb4YOj4YOo4YOYIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+LeGDr+GDlOGDoC4g4YOZ4YOY4YOT4YOU4YOVIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDoOGDo+GDm+GDkOGDouGDlOGDkeGDlOGDmuGDmCDhg6rhg5Phg5jhg6Eg4YOo4YOU4YOb4YOT4YOU4YOSLCDhg5Phg5Dhg5Lhg63hg5jhg6Dhg5Phg5Thg5Hhg5Dhg5cg4YOX4YOl4YOV4YOU4YOc4YOYIOGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg5Lhg5Dhg5zhg5Hhg5rhg53hg5nhg5Xhg5Ag4YOU4YOa4YOk4YOd4YOh4YOi4YOY4YOhIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg5cuXG5cbiDhg67hg5Thg5rhg5Dhg67hg5rhg5Ag4YOh4YOq4YOQ4YOT4YOU4YOXIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOGDrOGDkOGDm+GDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLhg5Dhg5vhg53hg6jhg5rhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiLhg6zhg5jhg5zhg5Ag4YOp4YOQ4YOc4YOQ4YOs4YOU4YOg4YOW4YOUIOGDkuGDkOGDk+GDkOGDoeGDleGDmuGDmOGDoSDhg6bhg5jhg5rhg5Dhg5nhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiLhg6jhg5Thg5vhg5Phg5Thg5Lhg5gg4YOp4YOQ4YOc4YOQ4YOs4YOU4YOg4YOY4YOhIOGDpuGDmOGDmuGDkOGDmeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiLhg57hg5Dhg6Phg5bhg5jhg6Eg4YOm4YOY4YOa4YOQ4YOZ4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSIyOTI0NjI4ODYzNzQxMTUwOTU2Ij4i4YOT4YOQ4YOZ4YOV4YOg4YOY4YOhIOGDpuGDmOGDmuGDkOGDmeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMzA4NDE3OTMyNDgxMDU3NTc4NyI+IuGDqOGDlOGDqeGDlOGDoOGDlOGDkeGDmOGDoSDhg6bhg5jhg5rhg5Dhg5nhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jYXJyaWVyX2RlZmF1bHQiIG1zZ2lkPSI4NzAwNjUwNDAzMDU0MDQyMTUzIj4i4YOQ4YOgIOGDkOGDoOGDmOGDoSDhg6Hhg5Thg6Dhg5Xhg5jhg6Hhg5guIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwOWM3NDkKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDE1NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLhnpThnonhn5LhnoXhnrzhnpvigIvhnoDhnrzhnoogUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6b4Z+B4Z6B4oCL4Z6A4Z684Z6KIFBVSyAg4Z6T4Z634Z6E4oCL4oCLIFBJTiDhnpDhn5LhnpjhnrjigIvhnprhnpThnp/hn4vigIvhnp/hn4rhnrjhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IuGem+GfgeGegeKAi+GegOGevOGeiiBQVUsg4Z6f4Z+K4Z644Z6YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiLhnpvhn4HhnoHigIvhnoDhnrzhnoogUElOIOGen+GfiuGeuOGemOKAi+GekOGfkuGemOGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IuGelOGfieGfhyDhnorhnr7hnpjhn5LhnpThnrjigIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4siPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLhnpThnonhn5LhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIsg4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6KIFBJTiDhnorhnr7hnpjhn5LhnpThnrjigIvhnorhn4Thn4figIvhnp/hn4QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLhnoDhnrzhnoogUElOIOGemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xhYmVsX3RleHQiIG1zZ2lkPSI4NjE3OTY0NjEwMjgyOTg0MjQiPiLhnorhnr7hnpjhn5LhnpThnrjigIvhnorhn4Thn4figIvhnp/hn4TigIvigIsg4Z6F4Z674Z6F4oCL4Z6Y4Z+J4Z664Z6T4Z674Z6Z4oCLIOGelOGek+GfkuGekeGetuGelOGfi+GemOGegCAwIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLhnpThnrbhnpPigIvhnpvhnr7hnp/igIvhnoDhnrbhnprigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnorhn4Thn4figIvhnp/hn4TigIvhno/hnrbhnpjigIvhnpHhnpjhn5LhnprhnoThn4vigIvhnpjhnrvhnoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jaGFyZ2VkIiBtc2dpZD0iMzI3MjIyMzkwNjA3MzQ5MjQ1NCI+IuGelOGetuGek+KAi+GelOGeieGfkuGeheGevOGem+KAi+KAi+GeluGfgeGeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3BsdWdnZWRfaW4iIG1zZ2lkPSI4MTE3NTcyMDAwNjM5OTk4Mzg4Ij4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6Q4Z+S4Z6YIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sb3dfYmF0dGVyeSIgbXNnaWQ9IjgxNDM4MDgwMTg3MTkxNzM4NTkiPiLhnpfhn5LhnofhnrbhnpThn4vigIvhnqfhnpThnoDhnprhno7hn43igIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpDhn5LhnpjigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iMTMzMjI4ODI2ODYwMDMyOTg0MSI+IuGeheGeu+GeheKAi+GemOGfieGeuuGek+Geu+GemSDhnorhnr7hnpjhn5LhnpThnrjigIvhnorhn4Thn4figIvhnp/hn4Thn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9uZXR3b3JrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iOTE2OTcxNzc3OTA1ODAzNzE2OCI+IuGelOGejuGfkuGeiuGetuGeieKAi+Geh+GetuGelOGfi+KAi+Gen+GfhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0OTQ5ODA1NjEzMDQyMTE5MzEiPiLhnoLhn5LhnpjhnrbhnpPigIvhnp/hn4rhnrjigIvhnpjigIvhnoDhnrbhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNDQ1ODQ5MDA1OTA5MjYwMDM5Ij4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6f4Z+K4Z644oCL4Z6Y4oCL4Z6A4Z624Z6P4oCL4Z6T4Z+F4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0ODExMTAzOTU1MDg2Mzc2NDMiPiLhnoLhn5LhnpjhnrbhnpPigIvhnp/hn4rhnrjhnpjhnoDhnrbhno/igIvhnoDhn5LhnpPhnrvhnoTigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1MjEwODkxNTA5OTk1OTQyMjUwIj4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4oCL4oCL4Z6f4Z+K4Z644oCL4Z6Y4oCL4Z6A4Z624Z6P4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zX2xvbmciIG1zZ2lkPSI1OTY4OTg1NDg5NDYzODcwMzU4Ij4i4Z6U4Z624Z6P4Z+L4oCL4Z6f4Z+K4Z644Z6Y4Z6A4Z624Z6PIOGerOKAi+GemOGet+Gek+KAi+GeouGetuGeheKAi+GeouGetuGek+GflCDhnpThnonhn5LhnoXhnrzhnpvigIvhnp/hn4rhnrjhnpjigIvhnoDhnrbhno/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI4MzQwODEzOTg5NTg2NjIyMzU2Ij4i4Z6f4Z+K4Z644Z6Y4oCL4Z6A4Z624Z6P4oCL4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6U4Z624Z6T4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1ODkyOTQwOTA5Njk5NzIzNTQ0Ij4i4Z6U4Z624Z6T4oCL4Z6U4Z634Z6R4oCL4Z6f4Z+K4Z644Z6Y4oCL4Z6A4Z624Z6P4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6H4Z624oCL4Z6i4Z6F4Z634Z6T4Z+S4Z6P4Z+S4Z6a4Z+D4Z6Z4Z+N4Z+UXG4g4Z6R4Z624Z6A4Z+L4Z6R4Z6E4oCL4oCL4Z6A4Z+S4Z6a4Z674Z6Y4Z6g4Z+K4Z674Z6T4oCL4Z6V4Z+S4Z6K4Z6b4Z+L4oCL4Z6f4Z+B4Z6c4Z624Z6A4Z6Y4Z+S4Z6Y4oCL4Z6l4Z6P4oCL4Z6B4Z+S4Z6f4Z+C4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6f4Z+K4Z644Z6Y4oCL4Z6A4Z624Z6P4oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+IuGen+GfiuGeuOGemOKAi+GegOGetuGej+KAi+KAi+Geh+GetuGelOGfi+KAi+Gen+GfhOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9wdWtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSIzNzQ3MjMyNDY3NDcxODAxNjMzIj4i4Z6f4Z+K4Z644Z6Y4oCL4Z6A4Z624Z6P4oCL4Z6H4Z624Z6U4Z+L4oCL4Z6A4Z684Z6K4oCL4oCLIFBVSyDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzk3NTIyMTgwNTAzMzYxNDQyNiI+IuGegOGfhuGeluGeu+GehOKAi+GeiuGfhOGfh+KAi+Gen+GfhOKAi+Gen+GfiuGeuOGemOKAi+GegOGetuGejy4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4g4Z6S4Z624Z6P4Z674oCL4Z6A4Z+S4Z6a4Z624Z6g4Z+S4Z6c4Z634Z6AICUyJGQg4Z6T4Z+DICUzJGQg4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9hZGRfd2lkZ2V0IiBtc2dpZD0iODI3MzI3NzA1ODcyNDkyNDY1NCI+IuGelOGek+GfkuGekOGfguGemOKAi+GekuGetuGej+Geu+KAi+GegOGfkuGemuGetuGeoOGfkuGenOGet+GegOKAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i4Z6R4Z6R4Z+BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLhnpThnrbhnpPigIvhnpbhnoThn5LhnprhnrjhnoDigIvhnpXhn5LhnpHhn4PigIvhnorhn4Thn4figIvhnp/hn4Thn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2NvbGxhcHNlZCIgbXNnaWQ9IjYzNjY5OTIwNjY5MzYwNzYzOTYiPiLhnpThnrbhnpPigIvhnpThnoThn5Lhnprhnr3hnpjigIvhnpXhn5LhnpHhn4PigIvhnorhn4Thn4figIvhnp/hn4Thn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldCIgbXNnaWQ9IjY1MjcxMzEwMzk3NDE4MDgyNDAiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDhnpLhnrbhno/hnrvigIvhnoDhn5LhnprhnrbhnqDhn5LhnpzhnrfhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VzZXJfc2VsZWN0b3IiIG1zZ2lkPSIxMjI2Nzk4MzcwOTEzNjk4ODk2Ij4i4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6H4Z+S4Z6a4Z6+4Z6f4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z+S4Z6a4Z6+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zdGF0dXMiIG1zZ2lkPSI4MDA4MjY0NjAzOTM1OTMwNjExIj4i4Z6f4Z+S4Z6Q4Z624Z6T4Z6X4Z624Z6WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4i4Z6Y4Z+J4Z624Z6f4Z+K4Z644Z6T4oCL4Z6Q4Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z2F1cmRfYWNjZXNzaWJpbGl0eV9tZWRpYV9jb250cm9scyIgbXNnaWQ9IjI2MjIwOTY1NDI5MjE2MTgwNiI+IuGeluGet+Gek+Get+Gej+GfkuGemeKAi+GemOGfgeGejOGfgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfc3RhcnQiIG1zZ2lkPSI4NzM2ODUzNjE1NTg4ODI4MTk3Ij4i4Z6U4Z624Z6T4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6Y4oCL4Z6P4Z6Y4Z+S4Z6a4Z+A4Z6U4oCL4Z6S4Z624Z6P4Z674oCL4Z6A4Z+S4Z6a4Z624Z6g4Z+S4Z6c4Z634Z6A4oCL4Z6h4Z6+4Z6E4Z6c4Z634Z6J4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9lbmQiIG1zZ2lkPSI3MTcwMTkwOTUwODcwNDY4MzIwIj4i4Z6U4Z624Z6T4oCL4Z6U4Z6J4Z+S4Z6F4Z6U4Z+L4oCL4Z6A4Z624Z6a4oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6S4Z624Z6P4Z674oCL4Z6A4Z+S4Z6a4Z624Z6g4Z+S4Z6c4Z634Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZGVsZXRlZCIgbXNnaWQ9IjQ0MjYyMDQyNjM5MjkyMjQ0MzQiPiLhnpThnrbhnpPigIvhnpvhnrvhnpTigIvhnpLhnrbhno/hnrvigIvhnoDhn5LhnprhnrbhnqDhn5LhnpzhnrfhnoAgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4i4Z6W4Z6E4Z+S4Z6a4Z644Z6A4oCL4Z6P4Z+G4Z6U4Z6T4Z+L4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV91bmxvY2siIG1zZ2lkPSIyOTU5OTI4NDc4NzY0Njk3MjU0Ij4i4Z6a4Z674Z6J4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLhnpvhn4bhnpPhnrbhn4bigIvhnorhn4Thn4figIvhnp/hn4TigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+IuGeiuGfhOGfh+KAi+Gen+GfhOKAi+Gej+GetuGemOKAi+KAi+GekeGemOGfkuGemuGehOGfi+KAi+GemOGeu+GegeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiLhnoDhnrzhnoogUElOIOGeiuGfhOGfh+KAi+Gen+GfhOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGFzc3dvcmRfdW5sb2NrIiBtc2dpZD0iNzY3NTc3NzYyMzkxMjE1NTA4OSI+IuGeluGetuGegOGfkuGemeKAi+Gen+GemOGfkuGehOGetuGej+Gfi+KAi+GeiuGfhOGfh+KAi+Gen+GfhOKAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl9hcmVhIiBtc2dpZD0iNzY3OTg5MTMyNDUwOTU5NzkwNCI+IuGeleGfkuGekeGfg+KAi+Gem+GfhuGek+GetuGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfYXJlYSIgbXNnaWQ9IjY3MzYwNjQ0OTQwMTk5Nzk1NDQiPiLhnpXhn5LhnpHhn4PigIvhnprhnrvhnonhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTMzNzI4NjUzODMxODU0MzU1NSI+IuGelOGfiuGevOGej+Geu+GehOKAi+GelOGekeKAi+GemOGeu+GekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI3MDczOTI4MzAwNDQ0OTA5MzIwIj4i4Z6U4Z+K4Z684Z6P4Z674Z6E4oCL4Z6U4Z6R4oCL4Z6U4Z6T4Z+S4Z6R4Z624Z6U4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4i4Z6U4Z+K4Z684Z6P4Z674Z6E4oCL4Z6V4Z+S4Z6i4Z624Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiLhnpThn4rhnrzhno/hnrvhnoTigIvhnoXhnrbhnoDhn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+IuGelOGfiuGevOGej+Geu+GehOKAi+GelOGeieGfkuGeiOGelOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiLhnpjhn4Hhnorhn4PigIvhnqHhnr7hnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiLhnpjhn4Hhnorhn4PigIvhnoXhnrvhn4ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiLhnpThn4Hhn4fhnorhnrzhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiLhnorhn4Thn4figIvhnp/hn4Qg4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z6T4Z+S4Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4i4Z6U4Z624Z6T4oCL4Z6U4Z+E4Z+H4Z6U4Z6E4Z+L4oCL4Z6A4Z624Z6a4oCL4Z6F4Z624Z6U4Z+L4Z6V4Z+S4Z6K4Z6+4Z6YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+IuGekeGemOGfkuGem+GetuGegOGfiyA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDhnorhnr7hnpjhn5LhnpThnrjigIvhnpvhnrvhnpThn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4Z6T4Z654Z6E4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6b4Z674Z6U4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9hbHQiIG1zZ2lkPSI0ODU2ODY4ODIwMDQwMDUxOTM5Ij4iQWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfY2FuY2VsIiBtc2dpZD0iMTIwMzk4NDAxNzI0NTc4MzI0NCI+IuGelOGfhOGfh+KAi+GelOGehOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiLhnpvhnrvhnpQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kb25lIiBtc2dpZD0iMTk5MjU3MTExODQ2NjY3OTc3NSI+IuGemuGeveGeheGemuGetuGem+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX21vZGVfY2hhbmdlIiBtc2dpZD0iNDU0NzM4Nzc0MTkwNjUzNzUxOSI+IuGelOGfkuGeiuGevOGemuKAi+GemuGelOGfgOGelCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iRW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrIiBtc2dpZD0iMjIyODUyNDkwMDQzOTgwMTQ1MyI+IuGeiuGfhOGfh+KAi+KAi+Gen+GfhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9jYW1lcmEiIG1zZ2lkPSI5NjkwNzE5OTc1NTI0ODY4MTQiPiLhnpjhn4nhnrbhnp/hn4rhnrjhnpPigIvhnpDhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2lsZW50IiBtc2dpZD0iODkzNTUxMjg3NzQ2NTIyMTgyIj4i4Z6f4Z+S4Z6E4Z624Z6P4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NvdW5kb24iIG1zZ2lkPSIzMDA1MjQ2NjY3NTUwMDE3MiI+IuGelOGevuGegOKAi+Gen+GfhuGeoeGfgeGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zZWFyY2giIG1zZ2lkPSIzMDkxNTg3MjQ5Nzc2MDMzMTM5Ij4i4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3VwIiBtc2dpZD0iNzE2OTAzMjQ3ODI1OTQ4NTE4MCI+IuGemuGeu+GeieKAi+GeoeGevuGehOKAi+Gem+GevuKAi+GeiuGevuGemOGfkuGelOGeuCA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2Rvd24iIG1zZ2lkPSI1MDg3NzM5NzI4NjM5MDE0NTk1Ij4i4Z6a4Z674Z6J4oCL4Z6F4Z674Z+H4Z6A4Z+S4Z6a4Z+E4Z6Y4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+LIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fbGVmdCIgbXNnaWQ9IjcyMDc0Nzg3MTk4MDU1NjIxNjUiPiLhnprhnrvhnonigIvhnpHhn4XigIvhnobhn5Lhnpzhn4HhnoTigIvhnorhnr7hnpjhn5LhnpThnrggPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiLhnprhnrvhnonigIvigIvhnpHhn4XigIvhnp/hn5Lhnorhnrbhn4bigIvhnorhnr7hnpjhn5LhnpThnrggPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZXJfc3dpdGNoZWQiIG1zZ2lkPSIzNzY4MDA2NzgzMTY2OTg0NDEwIj4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6U4Z6F4Z+S4Z6F4Z674Z6U4Z+S4Z6U4Z6T4Z+S4Z6TIDx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPiDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbWVyZ2VuY3lfY2FsbF9sYWJlbCIgbXNnaWQ9IjY4NDk0NjE5MjUyMzgzMDUzMSI+IuGegOGetuGemuKAi+GeoOGfheKAi+GeluGfgeGem+KAi+GeouGetuGen+Gek+GfkuGekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iODg1MjAyMTQ2Nzg2ODIyMDYwOCI+IuGel+GfkuGem+GfgeGeheKAi+KAi+Gem+GfhuGek+GetuGfhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BhdHRlcm4iIG1zZ2lkPSIxODUwODA2MDcwODAxMzU4ODMwIj4i4Z6b4Z+G4Z6T4Z624Z+G4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6cIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGFzc3dvcmQiIG1zZ2lkPSIyMzMzMjgxNzYyMTI4MTEzMTU3Ij4i4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6cIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGluIiBtc2dpZD0iMTEzMTMwNjUxMDgzMzU2MzgwMSI+IuGegOGevOGeiiBQSU4g4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6cIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiLhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhn5LhnorhnoTigIvhnpHhn4Dhno/igIvhnoDhn5LhnpPhnrvhnoTigIvhnprhnpnhn4jigIvhnpbhn4HhnpsgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOGenOGet+Gek+GetuGekeGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3BhdHRlcm5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzk4OTc4NjExNjgzMDc1ODY4Ij4i4Z6C4Z684Z6a4oCL4Z6b4Z+G4Z6T4Z624Z+G4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6KIFBJTiDhnp/hn4rhnrjhnpjigIvhnoDhnrbhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IuGelOGeieGfkuGeheGevOGem+KAi+KAi+GegOGevOGeiiBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1NzUzNjQ2NTU2MTg2OTM2ODE5Ij4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4i4Z6l4Z6h4Z684Z6c4oCL4Z6f4Z+K4Z644Z6Y4Z6A4Z624Z6P4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6U4Z634Z6R4Z+UIOGelOGeieGfkuGeheGevOGem+KAi+GegOGevOGeiiBQVUsg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z6T4Z+S4Z6P4Z+UIOGeheGfhuGeluGfhOGfh+KAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+Gem+GemOGfkuGeouGet+Gej+KAi+GekeGetuGegOGfi+GekeGehOKAi+GegOGfkuGemuGeu+GemOGeoOGfiuGeu+Gek+KAi+GelOGeieGfkuGeh+GevOGek+KAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiLhnpThnonhn5LhnoXhnrzhnpvigIvhnoDhnrzhnoogUElOIOGeiuGfguGem+KAi+GeheGehOGfi+KAi+GelOGetuGekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLhnpThnonhn5LhnofhnrbhnoDhn4vigIvhnoDhnrzhnoogUElOIOGeiuGfguGem+KAi+GeheGehOGfi+KAi+GelOGetuGekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4i4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4oCL4Z6f4Z+K4Z644Z6Y4oCL4Z6A4Z624Z6PLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6KIFBJTiDhnorhn4LhnpvigIvhnpjhnrbhnpPigIvhnpbhnrgg4Z+kIOGeiuGem+GfiyDhn6gg4Z6b4Z+B4Z6B4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4i4Z6A4Z684Z6KIFBVSyDhnoLhnr3hnprigIvhno/hn4LigIvhnpjhnrbhnpPigIvigIsg4Z+oIOGem+GfgeGegSDhnqzigIvigIvhnoXhn5Lhnprhnr7hnpPigIvhnofhnrbhnoTigIvhnpPhn4Hhn4fhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLhnpThnonhn5LhnoXhnrzhnpvigIvhnoDhnrzhnoogUFVLIOGemOGfkuGeiuGehOKAi+GekeGfgOGej+GflCDhnoDhnrbhnprigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnorhnorhn4LhnpvigIvhnoXhn5Lhnprhnr7hnpPigIvhnorhnrnhnoTigIvhnpPhnrnhnoTigIvhnpThnrfhnpHigIvhnp/hn4rhnrjhnpjigIvhnoDhnrbhno/igIvhnofhnrbigIvhnqLhnoXhnrfhnpPhn5Lhno/hn5Lhnprhn4Phnpnhn43hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4i4Z6A4Z684Z6KIFBJTiDhnpjhnrfhnpPigIvhnorhnrzhnoXigIvhnoLhn5LhnpPhnrYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjY0ODY4NDIwOTQwMDU2OTg0NzUiPiLhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpvhn4bhnpPhnrbhn4bigIvhnoXhn5Lhnprhnr7hnpPigIvhnpbhn4HhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIxMTAwNTUxMjYxMjY1NTA2NDQ4Ij4i4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+EIOGeheGevOGem+KAi+GegOGfkuGek+Geu+GehOKAi+GeguGejuGek+GeuCBHb29nbGUg4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9IjU3MTg1MzQyNzIwNzA5MjAzNjQiPiLhnojhn5Lhnpjhn4Thn4figIvhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr4gKOGeouGfiuGeuOKAi+GemOGfieGfguKAi+Gem+KAiykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iOTA1NzI4OTEwMzgyNzI5ODU0OSI+IuGeluGetuGegOGfkuGemeGen+GemOGfkuGehOGetuGej+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI1MzU1OTA0NTgyNjc0MDU0NzAyIj4i4Z6F4Z684Z6bIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjU3NTQ2NjQxMTkzMTk4NzIxOTciPiLhnojhn5Lhnpjhn4Thn4figIvhnqLhn5LhnpPhnoDhnpThn5Lhnprhnr4g4Z6s4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IuGel+GfkuGem+GfgeGeheKAi+GeiOGfkuGemOGfhOGfh+KAi+GeouGfkuGek+GegOGelOGfkuGemuGeviDhnqzigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoA/XG7hnpjhnr7hnpsgIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IuGegOGfhuGeluGeu+GehOKAi+GeluGet+Gek+Get+Gej+GfkuGemeKAi+GemOGevuGem+KAi+GeguGejuGek+GeuC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6KIFBJTiDhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnoXhn4bhnpPhnr3hnpMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UXG5cbiDhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhn5LhnorhnoTigIvhnpHhn4Dhno/igIvhnoDhn5LhnpPhnrvhnoTigIvhnprhnpnhn4jigIvhnpbhn4HhnpsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Z6c4Z634Z6T4Z624Z6R4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+IuGeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GelOGeieGfkuGeheGevOGem+KAi+GeluGetuGegOGfkuGemeKAi+Gen+GemOGfkuGehOGetuGej+Gfi+KAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDhnorhnoThn5Rcblxu4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6Y4Z+S4Z6K4Z6E4oCL4Z6R4Z+A4Z6P4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6a4Z6Z4Z+I4oCL4Z6W4Z+B4Z6bIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGenOGet+Gek+GetuGekeGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXR0ZXJuX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzQwODk0NzU5NjUwNTA4MDUiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvigIvhnoLhnrzhnprigIvhnpvhn4bhnpPhnrbhn4bigIvhnorhn4Thn4figIvhnp/hn4TigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnoXhn4bhnpPhnr3hnpMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UXG5cbuGeluGfkuGemeGetuGemeGetuGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGej+KAi+GegOGfkuGek+Geu+GehOKAi+GemuGemeGfiOKAi+GeluGfgeGemyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhnpzhnrfhnpPhnrbhnpHhnrjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1NzU1NTcyMDA2MjcxMjg5NDkiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnorhn4Thn4figIvhnp/hn4TigIvigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4figIvigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnoXhn4bhnpPhnr3hnpMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UIOGelOGek+GfkuGekeGetuGelOGfi+KAi+GeluGeuOKAi+GegOGetuGemuKAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GemOGet+Gek+KAi+Geh+GfhOGeguGeh+GfkOGemeKAi+KAi+GeheGfkuGemuGevuGek+KAi+Geh+GetuGehCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhnorhnoQg4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6R4Z+F4oCL4Z6b4Z+G4Z6T4Z624Z+G4Z6K4Z6+4Z6Y4oCL4Z6K4Z684Z6F4oCL4Z6F4Z+B4Z6J4oCL4Z6W4Z644oCL4Z6a4Z+E4Z6E4Z6F4Z6A4Z+S4Z6aIOGeoOGevuGemeKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GeouGfkuGek+GegOGelOGfkuGemuGevuKAi+Gek+GeueGehOKAi+GelOGetuGej+Gfi+GelOGehOGfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQwNTEwMTU5NDMwMzgxOTk5MTAiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnorhn4Thn4figIvhnp/hn4TigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnoXhn4bhnpPhnr3hnpMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UIOGelOGek+GfkuGekeGetuGelOGfi+KAi+GeluGeuOKAi+GegOGetuGemuKAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GemOGet+Gek+KAi+Geh+GfhOGeguGeh+GfkOGemeKAi+KAi+GeheGfkuGemuGevuGek+KAi+Geh+GetuGehCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhnorhnoQg4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6R4Z+F4oCL4Z6b4Z+G4Z6T4Z624Z+G4Z6K4Z6+4Z6Y4oCL4Z6K4Z684Z6F4oCL4Z6F4Z+B4Z6J4oCL4Z6W4Z644oCL4Z6a4Z+E4Z6E4Z6F4Z6A4Z+S4Z6aIOGeoOGevuGemeKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GeouGfkuGek+GegOGelOGfkuGemuGevuKAi+Gek+GeueGehOKAi+GelOGetuGej+Gfi+GelOGehOGfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDcyOTk2MjY5MTQ4NDgzNjM3Ij4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6F4Z+G4Z6T4Z694Z6T4oCLIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhnorhnoThn5Qg4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6R4Z+F4oCL4Z6b4Z+G4Z6T4Z624Z+G4Z6K4Z6+4Z6Y4oCL4Z6K4Z684Z6F4oCL4Z6F4Z+B4Z6J4oCL4Z6W4Z644oCL4Z6a4Z+E4Z6E4Z6F4Z6A4Z+S4Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6F4Z+G4Z6T4Z694Z6TIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhnorhnoThn5Qg4Z6l4Z6h4Z684Z6c4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6T4Z654Z6E4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6R4Z+F4oCL4Z6b4Z+G4Z6T4Z624Z+G4oCL4Z6K4Z6+4Z6Y4oCL4Z6K4Z684Z6F4oCL4Z6F4Z+B4Z6J4oCL4Z6W4Z644oCL4Z6a4Z+E4Z6E4Z6F4Z6A4Z+S4Z6a4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IuGeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GeguGevOGemuKAi+Gem+GfhuGek+GetuGfhuKAi+GeiuGfhOGfh+KAi+Gen+GfhOKAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDhnorhnoThn5Qg4Z6U4Z6T4Z+S4Z6R4Z624Z6U4Z+L4oCL4Z6W4Z644oCL4Z6A4Z624Z6a4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6YIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGeiuGehOKAi+GemOGet+Gek+KAi+Geh+GfhOGeguGeh+GfkOGemSDhnqLhn5LhnpPhnoDigIvhnpPhnrnhnoTigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnp/hn5LhnpPhnr7igIvhnrLhn5LhnpnigIvhnorhn4Thn4figIvhnp/hn4TigIvhnoDhnrvhn4bhnpbhn5LhnpnhnrzhnpHhn5DhnprigIvhnpThnpPhn5LhnpHhn4figIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAg4Z6K4Z+E4Z6Z4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6C4Z6O4Z6T4Z644oCL4Z6i4Z+K4Z644Z6Y4Z+C4Z6b4Z+UXG5cbiDhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhn5LhnorhnoTigIvhnpHhn4Dhno/igIvhnoDhn5LhnpPhnrvhnoTigIvhnprhnpnhn4jigIvhnpbhn4HhnpsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Z6c4Z634Z6T4Z624Z6R4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnoLhnrzhnprigIvhnpvhn4bhnpPhnrbhn4bigIvhnorhn4Thn4figIvigIvhnp/hn4TigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIvhnoXhn4bhnpPhnr3hnpMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UIOGelOGek+GfkuGekeGetuGelOGfi+KAi+GeluGeuOKAi+GegOGetuGemuKAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GemOGet+Gek+KAi+Geh+GfhOGeguGeh+GfkOGemeKAi+KAi+GeheGfkuGemuGevuGek+Geh+GetuGehCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhnorhnoQg4Z6i4Z+S4Z6T4Z6A4oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4oCL4Z6f4Z+S4Z6T4Z6+4oCL4Z6y4Z+S4Z6Z4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6K4Z+E4Z6Z4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6C4Z6O4Z6T4Z644oCL4Z6i4Z+K4Z644Z6Y4Z+C4Z6b4Z+UXG5cbiDhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhn5LhnorhnoTigIvhnpHhn4Dhno/igIvhnoDhn5LhnpPhnrvhnoTigIvhnprhnpnhn4jigIvhnpbhn4HhnpsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Z6c4Z634Z6T4Z624Z6R4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i4Z6b4Z674Z6U4oCL4Z6F4Z+B4Z6JIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiLhnpvhn4HhnoHigIvhnoDhnrzhnoogUElOIOGen+GfiuGeuOGemOKAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenCDhnqLhn5LhnpPhnoDigIvhno/hn5LhnprhnrzhnpzigIvhnpHhnrbhnoDhn4vhnpHhnoTigIvhnoDhn5LhnprhnrvhnpjhnqDhn4rhnrvhnpPigIvhnpThnonhn5LhnofhnrzhnpPigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnqXhnqHhnrzhnpzigIvhnpPhn4Hhn4cg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiLhnpvhn4HhnoHigIvhnoDhnrzhnoogUElOIOGen+GfiuGeuOGemOKAi+GemOGet+Gek+KAi+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOKAiywg4Z6i4Z+S4Z6T4Z6A4oCL4Z6Y4Z624Z6TIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhnoDhnrbhnprigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnorhn4LhnpvigIvhnpPhn4Xhnp/hnpvhn4vigIvhnpjhnrvhnpPigIvhnpbhn4HhnpvigIvhnqLhn5LhnpPhnoDigIvhno/hn5LhnprhnrzhnpzigIvigIvhnpHhnrbhnoDhn4vhnpHhnoTigIvhnoDhn5LhnprhnrvhnpjigIvhnqDhn4rhnrvhnpPigIvigIvigIvhnpThnonhn5LhnofhnrzhnpPigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvigIsg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4oCL4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z+UIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4i4Z6b4Z+B4Z6B4oCL4Z6A4Z684Z6K4oCLIFBJTiDhnp/hn4rhnrjhnpjigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpzigIssIOGeouGfkuGek+GegOKAi+GemOGetuGekyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4Z6A4Z624Z6a4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6K4Z+C4Z6b4oCL4Z6T4Z+F4oCL4oCL4Z6f4Z6b4Z+L4oCL4Z+UIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiLhnp/hn4rhnrjhnpjigIvhnpjhnrfhnpPigIvhnqLhnrbhnoXigIvhnpThn5Lhnprhnr7igIvhnpThnrbhnpPhn5Qg4Z6R4Z624Z6A4Z+L4Z6R4Z6E4oCL4Z6A4Z+S4Z6a4Z674Z6Y4Z6g4Z+K4Z674Z6T4oCL4Z6U4Z6J4Z+S4Z6H4Z684Z6T4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiLhnpvhn4HhnoHigIvhnoDhnrzhnoogUFVLIOGen+GfiuGeuOGemOKAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenCwg4Z6i4Z+S4Z6T4Z6A4oCL4Z6Y4Z624Z6TIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhnoDhnrbhnprigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnorhn4LhnpvigIvhnpPhn4XigIvhnp/hnpvhn4sg4Z6Y4Z674Z6T4oCL4Z6W4Z+B4Z6b4oCL4Z6f4Z+K4Z644Z6Y4oCL4oCL4Z6A4Z+S4Z6b4Z624Z6Z4oCL4Z6H4Z624oCL4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6U4Z624Z6T4oCL4Z6H4Z624oCL4Z6i4Z6F4Z634Z6T4Z+S4Z6P4Z+S4Z6a4Z+D4Z6Z4Z+N4oCL4Z+UIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4i4Z6b4Z+B4Z6B4oCL4Z6A4Z684Z6KIFBVSyDhnp/hn4rhnrjhnpjigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpwsIOGeouGfkuGek+GegOKAi+GemOGetuGekyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4Z6A4Z624Z6a4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6K4Z+C4Z6b4oCL4Z6T4Z+F4oCL4Z6f4Z6b4Z+LIOGemOGeu+Gek+KAi+GeluGfgeGem+KAi+Gen+GfiuGeuOGemOKAi+KAi+GegOGfkuGem+GetuGemeKAi+Geh+GetuKAi+GemOGet+Gek+KAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GelOGetuGek+KAi+Geh+GetuKAi+GeouGeheGet+Gek+GfkuGej+GfkuGemuGfg+GemeGfjeKAi+GflCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4i4Z6U4Z624Z6T4oCL4Z6U4Z6a4Z624Z6H4Z+Q4Z6Z4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6A4Z624Z6a4oCL4Z6U4Z+S4Z6a4Z6P4Z634Z6U4Z6P4Z+S4Z6P4Z634oCL4Z6b4Z+B4Z6B4oCL4Z6A4Z684Z6KIFBJTiDhnp/hn4rhnrjhnpghIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiLhnpThnrbhnpPigIvhnpThnprhnrbhnofhn5DhnpnigIvhnoDhn5LhnpPhnrvhnoTigIvhnoDhnrbhnprigIvhnpThn5Lhnprhno/hnrfhnpThno/hn5Lhno/hnrfigIvigIvhnpvhn4HhnoHigIvhnoDhnrzhnoogUFVLIOGen+GfiuGeuOGemCEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4i4Z6U4Z624Z6T4oCL4Z6R4Z6R4Z694Z6b4oCL4Z6Z4Z6A4oCL4Z6b4Z+B4Z6B4oCL4Z6A4Z684Z6K4oCLISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IuGelOGfiuGevOGej+Geu+GehOKAi+GelOGekeKAi+GemOGeu+GekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IuGelOGfiuGevOGej+Geu+GehOKAi+GelOGekeKAi+GelOGek+GfkuGekeGetuGelOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiLhnpThn4rhnrzhno/hnrvhnoTigIvhnpXhn5LhnqLhnrbhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjI5MjQ2Mjg4NjM3NDExNTA5NTYiPiLhnpThn4rhnrzhno/hnrvhnoTigIvhnoXhnrbhnoDhn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjMwODQxNzkzMjQ4MTA1NzU3ODciPiLhnpThn4rhnrzhno/hnrvhnoTigIvhnpThnonhn5LhnojhnpThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jYXJyaWVyX2RlZmF1bHQiIG1zZ2lkPSI4NzAwNjUwNDAzMDU0MDQyMTUzIj4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6f4Z+B4Z6c4Z624oCL4Z+UIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWttL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1rbS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODYxNjllCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1rbS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDEzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLhnpThnonhn5LhnoXhnrzhnpvigIvhnoDhnrzhnoogUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6KIFBVSyDhnpPhnrfhnoTigIsgUElOIOGekOGfkuGemOGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4i4Z6A4Z684Z6KIFBVSyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4i4Z6A4Z684Z6KIFBJTiDhnpDhn5LhnpjhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiLhnpThn4nhn4cg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+LIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCLIOKAi+GeiuGevuGemOGfkuGelOGeuOKAi+GeiuGfhOGfh+KAi+Gen+GfhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IuGelOGeieGfkuGeheGevOGem+KAi+GegOGevOGeiiBQSU4g4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIyNDIyMjI1NTkxMDA2MTM0OTM2Ij4i4Z6A4Z684Z6KIFBJTiDhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5Lhnprhnrzhnpzhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4i4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4oCLIOGeheGeu+GeheKAi+GemOGfieGeuuGek+Geu+GemeKAiyDhnpThnpPhn5LhnpHhnrbhnpThn4vhnpjhnoAgMCDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWNldW5sb2NrX211bHRpcGxlX2ZhaWx1cmVzIiBtc2dpZD0iNzU0MTM3NTgzMDIyNzkyNDI5Ij4i4Z6U4Z624Z6T4oCL4Z6b4Z6+4Z6f4oCL4Z6A4Z624Z6a4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6P4Z624Z6Y4oCL4Z6R4Z6Y4Z+S4Z6a4Z6E4Z+L4oCL4Z6Y4Z674Z6BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2hhcmdlZCIgbXNnaWQ9IjMyNzIyMjM5MDYwNzM0OTI0NTQiPiLhnpThnrbhnpPigIvhnpThnonhn5LhnoXhnrzhnpvigIvigIvhnpbhn4HhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wbHVnZ2VkX2luIiBtc2dpZD0iODExNzU3MjAwMDYzOTk5ODM4OCI+IuGelOGeieGfkuGeheGevOGem+KAi+GekOGfkuGemCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbG93X2JhdHRlcnkiIG1zZ2lkPSI4MTQzODA4MDE4NzE5MTczODU5Ij4i4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6Q4Z+S4Z6Y4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfaW5zdHJ1Y3Rpb25zX3doZW5fcGF0dGVybl9kaXNhYmxlZCIgbXNnaWQ9IjEzMzIyODgyNjg2MDAzMjk4NDEiPiLhnoXhnrvhnoXigIvhnpjhn4nhnrrhnpPhnrvhnpkg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjkxNjk3MTc3NzkwNTgwMzcxNjgiPiLhnpThno7hn5LhnorhnrbhnonigIvhnofhnrbhnpThn4vigIvhnp/hn4QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNDk0OTgwNTYxMzA0MjExOTMxIj4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6f4Z+K4Z644oCL4Z6Y4oCL4Z6A4Z624Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTQ0NTg0OTAwNTkwOTI2MDAzOSI+IuGeguGfkuGemOGetuGek+KAi+Gen+GfiuGeuOKAi+GemOKAi+GegOGetuGej+KAi+Gek+GfheKAi+GegOGfkuGek+Geu+GehOKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDgxMTEwMzk1NTA4NjM3NjQzIj4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6f4Z+K4Z644Z6Y4Z6A4Z624Z6P4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTIxMDg5MTUwOTk5NTk0MjI1MCI+IuGelOGeieGfkuGeheGevOGem+KAi+KAi+KAi+Gen+GfiuGeuOKAi+GemOKAi+GegOGetuGej+KAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iNTk2ODk4NTQ4OTQ2Mzg3MDM1OCI+IuGelOGetuGej+Gfi+KAi+Gen+GfiuGeuOGemOGegOGetuGejyDhnqzigIvhnpjhnrfhnpPigIvhnqLhnrbhnoXigIvhnqLhnrbhnpPhn5Qg4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6f4Z+K4Z644Z6Y4oCL4Z6A4Z624Z6P4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iODM0MDgxMzk4OTU4NjYyMjM1NiI+IuGen+GfiuGeuOGemOKAi+GegOGetuGej+KAi+GemOGet+Gek+KAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GelOGetuGek+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTg5Mjk0MDkwOTY5OTcyMzU0NCI+IuGelOGetuGek+KAi+GelOGet+GekeKAi+Gen+GfiuGeuOGemOKAi+GegOGetuGej+KAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+Geh+GetuKAi+GeouGeheGet+Gek+GfkuGej+GfkuGemuGfg+GemeGfjeGflFxuIOGekeGetuGegOGfi+GekeGehOKAi+KAi+GegOGfkuGemuGeu+GemOGeoOGfiuGeu+Gek+KAi+GeleGfkuGeiuGem+Gfi+KAi+Gen+GfgeGenOGetuGegOGemOGfkuGemOKAi+GepeGej+KAi+GegeGfkuGen+GfguKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+Gen+GfiuGeuOGemOKAi+GegOGetuGej+KAi+GeleGfkuGen+GfgeGehOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjY4NzU3NzM0MTMzMDYzODA5MDIiPiLhnp/hn4rhnrjhnpjigIvhnoDhnrbhno/igIvigIvhnofhnrbhnpThn4vigIvhnp/hn4Thn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMzc0NzIzMjQ2NzQ3MTgwMTYzMyI+IuGen+GfiuGeuOGemOKAi+GegOGetuGej+KAi+Geh+GetuGelOGfi+KAi+GegOGevOGeiuKAi+KAiyBQVUsg4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc5NzUyMjE4MDUwMzM2MTQ0MjYiPiLhnoDhn4bhnpbhnrvhnoTigIvhnorhn4Thn4figIvhnp/hn4TigIvhnp/hn4rhnrjhnpjigIvhnoDhnrbhno8uLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9jaGFuZ2VkIiBtc2dpZD0iNTY3ODYyNDYyNDY4MTQwMDE5MSI+IiUxJHMuIOGekuGetuGej+Geu+KAi+GegOGfkuGemuGetuGeoOGfkuGenOGet+GegCAlMiRkIOGek+GfgyAlMyRkIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiLhnpThnpPhn5LhnpDhn4LhnpjigIvhnpLhnrbhno/hnrvigIvhnoDhn5LhnprhnrbhnqDhn5LhnpzhnrfhnoDigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9lbXB0eV9zbG90IiBtc2dpZD0iMTI4MTUwNTcwMzMwNzkzMDc1NyI+IuGekeGekeGfgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfZXhwYW5kZWQiIG1zZ2lkPSIyMjc4MTA2MDIyMzExMTcwMjk5Ij4i4Z6U4Z624Z6T4oCL4Z6W4Z6E4Z+S4Z6a4Z644Z6A4oCL4Z6V4Z+S4Z6R4Z+D4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9jb2xsYXBzZWQiIG1zZ2lkPSI2MzY2OTkyMDY2OTM2MDc2Mzk2Ij4i4Z6U4Z624Z6T4oCL4Z6U4Z6E4Z+S4Z6a4Z694Z6Y4oCL4Z6V4Z+S4Z6R4Z+D4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXQiIG1zZ2lkPSI2NTI3MTMxMDM5NzQxODA4MjQwIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4Z6S4Z624Z6P4Z674oCL4Z6A4Z+S4Z6a4Z624Z6g4Z+S4Z6c4Z634Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91c2VyX3NlbGVjdG9yIiBtc2dpZD0iMTIyNjc5ODM3MDkxMzY5ODg5NiI+IuGep+GelOGegOGemuGejuGfjeKAi+Geh+GfkuGemuGevuGen+KAi+GeouGfkuGek+GegOKAi+GelOGfkuGemuGeviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc3RhdHVzIiBtc2dpZD0iODAwODI2NDYwMzkzNTkzMDYxMSI+IuGen+GfkuGekOGetuGek+Gel+GetuGeliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfY2FtZXJhIiBtc2dpZD0iODkwNDIzMTE5NDE4MTExNDYwMyI+IuGemOGfieGetuGen+GfiuGeuOGek+KAi+GekOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWdhdXJkX2FjY2Vzc2liaWxpdHlfbWVkaWFfY29udHJvbHMiIG1zZ2lkPSIyNjIyMDk2NTQyOTIxNjE4MDYiPiLhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnpjhn4Hhnozhn4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+IuGelOGetuGek+KAi+GeheGetuGelOGfi+GeleGfkuGeiuGevuGemOKAi+Gej+GemOGfkuGemuGfgOGelOKAi+GekuGetuGej+Geu+KAi+GegOGfkuGemuGetuGeoOGfkuGenOGet+GegOKAi+GeoeGevuGehOGenOGet+GeieGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfZW5kIiBtc2dpZD0iNzE3MDE5MDk1MDg3MDQ2ODMyMCI+IuGelOGetuGek+KAi+GelOGeieGfkuGeheGelOGfi+KAi+GegOGetuGemuKAi+GelOGehOGfkuGeoOGetuGeieKAi+GekuGetuGej+Geu+KAi+GegOGfkuGemuGetuGeoOGfkuGenOGet+GegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4i4Z6U4Z624Z6T4oCL4Z6b4Z674Z6U4oCL4Z6S4Z624Z6P4Z674oCL4Z6A4Z+S4Z6a4Z624Z6g4Z+S4Z6c4Z634Z6AIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZXhwYW5kX2xvY2tfYXJlYSIgbXNnaWQ9IjUxOTg1OTcyMDkzNDE3ODAyNCI+IuGeluGehOGfkuGemuGeuOGegOKAi+Gej+GfhuGelOGek+Gfi+KAi+GeiuGfhOGfh+KAi+Gen+GfhOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfdW5sb2NrIiBtc2dpZD0iMjk1OTkyODQ3ODc2NDY5NzI1NCI+IuGemuGeu+GeieKAi+GeiuGfhOGfh+KAi+Gen+GfhOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl91bmxvY2siIG1zZ2lkPSIxNDkwODQwNzA2MDc1MjQ2NjEyIj4i4Z6b4Z+G4Z6T4Z624Z+G4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9mYWNlX3VubG9jayIgbXNnaWQ9IjQ4MTcyODI1NDMzNTE3MTg1MzUiPiLhnorhn4Thn4figIvhnp/hn4TigIvhno/hnrbhnpjigIvigIvhnpHhnpjhn5LhnprhnoThn4vigIvhnpjhnrvhnoHhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4i4Z6A4Z684Z6KIFBJTiDhnorhn4Thn4figIvhnp/hn4Thn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnorhn4Thn4figIvhnp/hn4TigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fYXJlYSIgbXNnaWQ9Ijc2Nzk4OTEzMjQ1MDk1OTc5MDQiPiLhnpXhn5LhnpHhn4PigIvhnpvhn4bhnpPhnrbhn4bhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4i4Z6V4Z+S4Z6R4Z+D4oCL4Z6a4Z674Z6J4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjEzMzcyODY1MzgzMTg1NDM1NTUiPiLhnpThn4rhnrzhno/hnrvhnoTigIvhnpThnpHigIvhnpjhnrvhnpMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzA3MzkyODMwMDQ0NDkwOTMyMCI+IuGelOGfiuGevOGej+Geu+GehOKAi+GelOGekeKAi+GelOGek+GfkuGekeGetuGelOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IuGelOGfiuGevOGej+Geu+GehOKAi+GeleGfkuGeouGetuGegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4i4Z6U4Z+K4Z684Z6P4Z674Z6E4oCL4Z6F4Z624Z6A4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiLhnpThn4rhnrzhno/hnrvhnoTigIvhnpThnonhn5LhnojhnpThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2FsdCIgbXNnaWQ9IjQ4NTY4Njg4MjAwNDAwNTE5MzkiPiJBbHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9jYW5jZWwiIG1zZ2lkPSIxMjAzOTg0MDE3MjQ1NzgzMjQ0Ij4i4Z6U4Z+E4Z+H4oCL4Z6U4Z6E4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZGVsZXRlIiBtc2dpZD0iMzMzNzkxNDgzMzIwNjYzNTc0NCI+IuGem+Geu+GelCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RvbmUiIG1zZ2lkPSIxOTkyNTcxMTE4NDY2Njc5Nzc1Ij4i4Z6a4Z694Z6F4Z6a4Z624Z6b4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfbW9kZV9jaGFuZ2UiIG1zZ2lkPSI0NTQ3Mzg3NzQxOTA2NTM3NTE5Ij4i4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6a4Z6U4Z+A4Z6UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF91bmxvY2siIG1zZ2lkPSIyMjI4NTI0OTAwNDM5ODAxNDUzIj4i4Z6K4Z+E4Z+H4oCL4oCL4Z6f4Z+EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X2NhbWVyYSIgbXNnaWQ9Ijk2OTA3MTk5NzU1MjQ4NjgxNCI+IuGemOGfieGetuGen+GfiuGeuOGek+KAi+GekOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zaWxlbnQiIG1zZ2lkPSI4OTM1NTEyODc3NDY1MjIxODIiPiLhnp/hn5LhnoThnrbhno/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4i4Z6U4Z6+4Z6A4oCL4Z6f4Z+G4Z6h4Z+B4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiLhnp/hn5Lhnpzhn4LhnoThnprhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4i4Z6a4Z674Z6J4oCL4Z6h4Z6+4Z6E4oCL4Z6b4Z6+4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z64IDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fZG93biIgbXNnaWQ9IjUwODc3Mzk3Mjg2MzkwMTQ1OTUiPiLhnprhnrvhnonigIvhnoXhnrvhn4fhnoDhn5Lhnprhn4ThnpjigIvhnp/hnpjhn5LhnprhnrbhnpThn4sgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9sZWZ0IiBtc2dpZD0iNzIwNzQ3ODcxOTgwNTU2MjE2NSI+IuGemuGeu+GeieKAi+GekeGfheKAi+GehuGfkuGenOGfgeGehOKAi+GeiuGevuGemOGfkuGelOGeuCA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3JpZ2h0IiBtc2dpZD0iODAzNDQzMzI0MjU3OTYwMDk4MCI+IuGemuGeu+GeieKAi+KAi+GekeGfheKAi+Gen+GfkuGeiuGetuGfhuKAi+GeiuGevuGemOGfkuGelOGeuCA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlcl9zd2l0Y2hlZCIgbXNnaWQ9IjM3NjgwMDY3ODMxNjY5ODQ0MTAiPiLhnqLhn5LhnpPhnoDigIvhnpThn5Lhnprhnr7igIvhnpThnoXhn5LhnoXhnrvhnpThn5LhnpThnpPhn5LhnpMgPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VtZXJnZW5jeV9jYWxsX2xhYmVsIiBtc2dpZD0iNjg0OTQ2MTkyNTIzODMwNTMxIj4i4Z6A4Z624Z6a4oCL4Z6g4Z+F4oCL4Z6W4Z+B4Z6b4oCL4Z6i4Z624Z6f4Z6T4Z+S4Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSI4ODUyMDIxNDY3ODY4MjIwNjA4Ij4i4Z6X4Z+S4Z6b4Z+B4Z6F4oCL4oCL4Z6b4Z+G4Z6T4Z624Z+GIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiLhnpvhn4bhnpPhnrbhn4bigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiLhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4i4Z6A4Z684Z6KIFBJTiDhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfY291bnRkb3duIiBtc2dpZD0iNjM1ODExMDIyMTYwMzI5NzU0OCI+IuGeluGfkuGemeGetuGemeGetuGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGej+KAi+GegOGfkuGek+Geu+GehOKAi+GemuGemeGfiOKAi+GeluGfgeGemyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4Z6c4Z634Z6T4Z624Z6R4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiLhnoLhnrzhnprigIvhnpvhn4bhnpPhnrbhn4bigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiLhnpThnonhn5LhnoXhnrzhnpvigIvhnoDhnrzhnoogUElOIOGen+GfiuGeuOGemOKAi+GegOGetuGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzc3MjQyMjMzNDk1MTExNTU3Ij4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4oCL4Z6A4Z684Z6KIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU3NTM2NDY1NTYxODY5MzY4MTkiPiLhnpThnonhn5LhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcHVrX2hpbnQiIG1zZ2lkPSI0NTMyMjcxNDM4NjE3MzU1MzciPiLhnqXhnqHhnrzhnpzigIvhnp/hn4rhnrjhnpjhnoDhnrbhno/igIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnpThnrfhnpHhn5Qg4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6KIFBVSyDhnorhnr7hnpjhn5LhnpThnrjigIvhnpThnpPhn5Lhno/hn5Qg4Z6F4Z+G4Z6W4Z+E4Z+H4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6b4Z6Y4Z+S4Z6i4Z634Z6P4oCL4Z6R4Z624Z6A4Z+L4Z6R4Z6E4oCL4Z6A4Z+S4Z6a4Z674Z6Y4Z6g4Z+K4Z674Z6T4oCL4Z6U4Z6J4Z+S4Z6H4Z684Z6T4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IuGelOGeieGfkuGeheGevOGem+KAi+GegOGevOGeiiBQSU4g4Z6K4Z+C4Z6b4oCL4Z6F4Z6E4Z+L4oCL4Z6U4Z624Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IuGelOGeieGfkuGeh+GetuGegOGfi+KAi+GegOGevOGeiiBQSU4g4Z6K4Z+C4Z6b4oCL4Z6F4Z6E4Z+L4oCL4Z6U4Z624Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiLhnoDhn4bhnpbhnrvhnoTigIvhnorhn4Thn4figIvhnp/hn4TigIvigIvhnp/hn4rhnrjhnpjigIvhnoDhnrbhno8uLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiLhnoDhnrzhnoogUElOIOGemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IuGelOGeieGfkuGeheGevOGem+KAi+GegOGevOGeiiBQSU4g4Z6K4Z+C4Z6b4oCL4Z6Y4Z624Z6T4oCL4Z6W4Z64IOGfpCDhnorhnpvhn4sg4Z+oIOGem+GfgeGegeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IuGegOGevOGeiiBQVUsg4Z6C4Z694Z6a4oCL4Z6P4Z+C4oCL4Z6Y4Z624Z6T4oCL4oCLIOGfqCDhnpvhn4HhnoEg4Z6s4oCL4oCL4Z6F4Z+S4Z6a4Z6+4Z6T4oCL4Z6H4Z624Z6E4oCL4Z6T4Z+B4Z+H4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6A4Z684Z6KIFBVSyDhnpjhn5LhnorhnoTigIvhnpHhn4Dhno/hn5Qg4Z6A4Z624Z6a4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6K4Z6K4Z+C4Z6b4oCL4Z6F4Z+S4Z6a4Z6+4Z6T4oCL4Z6K4Z654Z6E4oCL4Z6T4Z654Z6E4oCL4Z6U4Z634Z6R4oCL4Z6f4Z+K4Z644Z6Y4oCL4Z6A4Z624Z6P4oCL4Z6H4Z624oCL4Z6i4Z6F4Z634Z6T4Z+S4Z6P4Z+S4Z6a4Z+D4Z6Z4Z+N4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9jb25maXJtX3Bpbl9oaW50IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzAwMzQ2OTI2MTQ2NDU5MzUxNiI+IuGegOGevOGeiiBQSU4g4Z6Y4Z634Z6T4oCL4Z6K4Z684Z6F4oCL4Z6C4Z+S4Z6T4Z62Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4i4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6b4Z+G4Z6T4Z624Z+G4oCL4Z6F4Z+S4Z6a4Z6+4Z6T4oCL4Z6W4Z+B4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMTEwMDU1MTI2MTI2NTUwNjQ0OCI+IuGeiuGevuGemOGfkuGelOGeuOKAi+GeiuGfhOGfh+KAi+Gen+GfhCDhnoXhnrzhnpvigIvhnoDhn5LhnpPhnrvhnoTigIvhnoLhno7hnpPhnrggR29vZ2xlIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4i4Z6I4Z+S4Z6Y4Z+E4Z+H4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z+S4Z6a4Z6+ICjhnqLhn4rhnrjigIvhnpjhn4nhn4LigIvhnpvigIspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjkwNTcyODkxMDM4MjcyOTg1NDkiPiLhnpbhnrbhnoDhn5Lhnpnhnp/hnpjhn5LhnoThnrbhno/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNTM1NTkwNDU4MjY3NDA1NDcwMiI+IuGeheGevOGemyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4i4Z6I4Z+S4Z6Y4Z+E4Z+H4oCL4Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+IOGerOKAi+GeluGetuGegOGfkuGemeKAi+Gen+GemOGfkuGehOGetuGej+Gfi+KAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2FjY291bnRfcmVjb3ZlcnlfaGludCIgbXNnaWQ9IjU2OTA3MDkxMzI4NDE3NTI5NzQiPiLhnpfhn5Lhnpvhn4HhnoXigIvhnojhn5Lhnpjhn4Thn4figIvhnqLhn5LhnpPhnoDhnpThn5Lhnprhnr4g4Z6s4oCL4Z6W4Z624Z6A4Z+S4Z6Z4oCL4Z6f4Z6Y4Z+S4Z6E4Z624Z6P4Z+L4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AP1xu4Z6Y4Z6+4Z6bICI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+IiDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjEwNTI2ODUxOTc3MTAyNTIzOTUiPiLhnoDhn4bhnpbhnrvhnoTigIvhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnpjhnr7hnpvigIvhnoLhno7hnpPhnrguLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGluX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODI3Njc0NTY0MjA0OTUwMjU1MCI+IuGeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GelOGeieGfkuGeheGevOGem+KAi+GegOGevOGeiiBQSU4g4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6F4Z+G4Z6T4Z694Z6TIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOGeiuGehOGflFxuXG4g4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6Y4Z+S4Z6K4Z6E4oCL4Z6R4Z+A4Z6P4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6a4Z6Z4Z+I4oCL4Z6W4Z+B4Z6bIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOGenOGet+Gek+GetuGekeGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpbhnrbhnoDhn5LhnpnigIvhnp/hnpjhn5LhnoThnrbhno/hn4vigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpwgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UXG5cbuGeluGfkuGemeGetuGemeGetuGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGej+KAi+GegOGfkuGek+Geu+GehOKAi+GemuGemeGfiOKAi+GeluGfgeGemyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhnpzhnrfhnpPhnrbhnpHhnrjhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGF0dGVybl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc0MDg5NDc1OTY1MDUwODA1Ij4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4oCL4Z6C4Z684Z6a4oCL4Z6b4Z+G4Z6T4Z624Z+G4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6F4Z+G4Z6T4Z694Z6TIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOGeiuGehOGflFxuXG7hnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhn5LhnorhnoTigIvhnpHhn4Dhno/igIvhnoDhn5LhnpPhnrvhnoTigIvhnprhnpnhn4jigIvhnpbhn4HhnpsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Z6c4Z634Z6T4Z624Z6R4Z644Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTc1NTU3MjAwNjI3MTI4OTQ5Ij4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6F4Z+G4Z6T4Z694Z6TIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOGeiuGehOGflCDhnpThnpPhn5LhnpHhnrbhnpThn4vigIvhnpbhnrjigIvhnoDhnrbhnprigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhnrfhnpPigIvhnofhn4ThnoLhnofhn5DhnpnigIvigIvhnoXhn5Lhnprhnr7hnpPigIvhnofhnrbhnoQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Z6K4Z6EIOGegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+KAi+Gek+GeueGehOKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GegOGfhuGejuGej+Gfi+KAi+GekeGfheKAi+Gem+GfhuGek+GetuGfhuGeiuGevuGemOKAi+GeiuGevOGeheKAi+GeheGfgeGeieKAi+GeluGeuOKAi+GemuGfhOGehOGeheGegOGfkuGemiDhnqDhnr7hnpnigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnqLhn5LhnpPhnoDhnpThn5Lhnprhnr7igIvhnpPhnrnhnoTigIvhnpThnrbhno/hn4vhnpThnoThn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MDUxMDE1OTQzMDM4MTk5OTEwIj4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6F4Z+G4Z6T4Z694Z6TIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOGeiuGehOGflCDhnpThnpPhn5LhnpHhnrbhnpThn4vigIvhnpbhnrjigIvhnoDhnrbhnprigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhnrfhnpPigIvhnofhn4ThnoLhnofhn5DhnpnigIvigIvhnoXhn5Lhnprhnr7hnpPigIvhnofhnrbhnoQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Z6K4Z6EIOGekeGevOGemuGen+GfkOGeluGfkuGekeKAi+Gek+GeueGehOKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GegOGfhuGejuGej+Gfi+KAi+GekeGfheKAi+Gem+GfhuGek+GetuGfhuGeiuGevuGemOKAi+GeiuGevOGeheKAi+GeheGfgeGeieKAi+GeluGeuOKAi+GemuGfhOGehOGeheGegOGfkuGemiDhnqDhnr7hnpnigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnqLhn5LhnpPhnoDhnpThn5Lhnprhnr7igIvhnpPhnrnhnoTigIvhnpThnrbhno/hn4vhnpThnoThn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA3Mjk5NjI2OTE0ODQ4MzYzNyI+IuGeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GeiuGfhOGfh+KAi+Gen+GfhOKAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOKAi+GeheGfhuGek+GeveGek+KAiyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UIOGegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GelOGek+GfkuGekeGfh+KAi+Gek+GeueGehOKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GegOGfhuGejuGej+Gfi+KAi+GekeGfheKAi+Gem+GfhuGek+GetuGfhuGeiuGevuGemOKAi+GeiuGevOGeheKAi+GeheGfgeGeieKAi+GeluGeuOKAi+GemuGfhOGehOGeheGegOGfkuGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDgxNzYyNzQ3NDQxOTQ3MTUxOCI+IuGeouGfkuGek+GegOKAi+GelOGetuGek+KAi+GeluGfkuGemeGetuGemeGetuGemOKAi+GeiuGfhOGfh+KAi+Gen+GfhOKAi+GekeGevOGemuGen+GfkOGeluGfkuGekeKAi+GemOGet+Gek+KAi+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOKAi+GeheGfhuGek+GeveGekyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UIOGepeGeoeGevOGenOKAi+GekeGevOGemuGen+GfkOGeluGfkuGekeKAi+Gek+GeueGehOKAi+GegOGfhuGejuGej+Gfi+KAi+GekeGfheKAi+Gem+GfhuGek+GetuGfhuKAi+GeiuGevuGemOKAi+GeiuGevOGeheKAi+GeheGfgeGeieKAi+GeluGeuOKAi+GemuGfhOGehOGeheGegOGfkuGemuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMyNTM1NzU1NzIxMTg5MTQzNzAiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnoLhnrzhnprigIvhnpvhn4bhnpPhnrbhn4bigIvhnorhn4Thn4figIvhnp/hn4TigIvhnpjhnrfhnpPigIvhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpwgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4Z6K4Z6E4Z+UIOGelOGek+GfkuGekeGetuGelOGfi+KAi+GeluGeuOKAi+GegOGetuGemuKAi+GeluGfkuGemeGetuGemeGetuGemCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDhnorhnoTigIvhnpjhnrfhnpPigIvhnofhn4ThnoLhnofhn5Dhnpkg4Z6i4Z+S4Z6T4Z6A4oCL4Z6T4Z654Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6f4Z+S4Z6T4Z6+4oCL4Z6y4Z+S4Z6Z4oCL4Z6K4Z+E4Z+H4oCL4Z6f4Z+E4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6U4Z6T4Z+S4Z6R4Z+H4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIOGeiuGfhOGemeKAi+GelOGfkuGemuGevuKAi+GeguGejuGek+GeuOKAi+GeouGfiuGeuOGemOGfguGem+GflFxuXG4g4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6Y4Z+S4Z6K4Z6E4oCL4Z6R4Z+A4Z6P4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6a4Z6Z4Z+I4oCL4Z6W4Z+B4Z6bIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOGenOGet+Gek+GetuGekeGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6C4Z684Z6a4oCL4Z6b4Z+G4Z6T4Z624Z+G4oCL4Z6K4Z+E4Z+H4oCL4oCL4Z6f4Z+E4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6Y4Z634Z6T4oCL4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6F4Z+G4Z6T4Z694Z6TIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOGeiuGehOGflCDhnpThnpPhn5LhnpHhnrbhnpThn4vigIvhnpbhnrjigIvhnoDhnrbhnprigIvhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpjhnrfhnpPigIvhnofhn4ThnoLhnofhn5DhnpnigIvigIvhnoXhn5Lhnprhnr7hnpPhnofhnrbhnoQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Z6K4Z6EIOGeouGfkuGek+GegOKAi+Gek+GeueGehOKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+KAi+Gen+GfkuGek+GevuKAi+GesuGfkuGemeKAi+GeiuGfhOGfh+KAi+Gen+GfhOKAi+GekeGevOGemuGen+GfkOGeluGfkuGekeKAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+GeiuGfhOGemeKAi+GelOGfkuGemuGevuKAi+GeguGejuGek+GeuOKAi+GeouGfiuGeuOGemOGfguGem+GflFxuXG4g4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6Y4Z+S4Z6K4Z6E4oCL4Z6R4Z+A4Z6P4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6a4Z6Z4Z+I4oCL4Z6W4Z+B4Z6bIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOGenOGet+Gek+GetuGekeGeuOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IuGem+Geu+GelOKAi+GeheGfgeGeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IuGelOGfiuGevOGej+Geu+GehOKAi+GelOGekeKAi+GemOGeu+GekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IuGelOGfiuGevOGej+Geu+GehOKAi+GelOGekeKAi+GelOGek+GfkuGekeGetuGelOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiLhnpThn4rhnrzhno/hnrvhnoTigIvhnpXhn5LhnqLhnrbhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjI5MjQ2Mjg4NjM3NDExNTA5NTYiPiLhnpThn4rhnrzhno/hnrvhnoTigIvhnoXhnrbhnoDhn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjMwODQxNzkzMjQ4MTA1NzU3ODciPiLhnpThn4rhnrzhno/hnrvhnoTigIvhnpThnonhn5LhnojhnpThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jYXJyaWVyX2RlZmF1bHQiIG1zZ2lkPSI4NzAwNjUwNDAzMDU0MDQyMTUzIj4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6f4Z+B4Z6c4Z624oCL4Z+UIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWtvL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1rby9zdHJpbmdzLnhtbAppbmRleCBkZmFjMTA2Li4yYTcyMDBjIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWtvL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMta28vc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IlBJTiDsvZTrk5wg7J6F66ClIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iUFVLIOuwjyDsg4ggUElOIOy9lOuTnCDsnoXroKUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IlBVSyDsvZTrk5wiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+IuyDiCBQSU4g7L2U65OcIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iU0lNIFBVSyDrsI8g7IOIIFBJTiDsvZTrk5wg7J6F66ClIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJTSU0gUFVLIOy9lOuTnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4i7IOIIFNJTSBQSU4g7L2U65OcIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4i67mE67CA67KI7Zi466W8IOyeheugpe2VmOugpOuptCDthLDsuZgiPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLsnqDquIgg7ZW07KCc7ZWY66Ck66m0IOu5hOuwgOuyiO2YuCDsnoXroKUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLsnqDquIjsnYQg7ZW07KCc7ZWY66Ck66m0IFBJTiDsnoXroKUiPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4i7J287Iuc7KSR7KeAIOuyhO2KvCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4i7J6s7IOdIOuyhO2KvCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4i7KSR7KeAIOuyhO2KvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiLsoovslYTsmpQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiLsi6vslrTsmpQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiLtlZjtirgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiLqs4Tsho3tlZjroKTrqbQg7J6g6riI7ZW07KCc7ZWp64uI64ukLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IuyLpO2WiSDst6jshozrkKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4i7IKt7KCc7ZWY66Ck66m0IDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+7J2EKOulvCkg65Oc66Gt7ZWp64uI64ukLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPuydgCjripQpIOyCreygnOuQmOyngCDslYrsirXri4jri6QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC0xMDUsNyArMTEyLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiLsm5DtlZjripQgUElOIOy9lOuTnCDsnoXroKUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4i7JuQ7ZWY64qUIFBJTiDsvZTrk5wg7ZmV7J24Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJTSU0g7Lm065OcIOyeoOq4iO2VtOygnCDspJEuLi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiJQSU4g7L2U65Oc6rCAIOyemOuqu+uQmOyXiOyKteuLiOuLpC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiI0fjjsnpDrpqwg7Iir7J6Q66GcIOuQnCBQSU7snYQg7J6F66Cl7ZWY7IS47JqULiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyDsvZTrk5zripQgOOyekOumrCDsnbTsg4HsnZgg7Iir7J6Q7Jes7JW8IO2VqeuLiOuLpC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLsmKzrsJTrpbggUFVLIOy9lOuTnOulvCDri6Tsi5wg7J6F66Cl7ZWY7IS47JqULiDsnoXroKXsnYQg67CY67O17ZW07IScIOyLnOuPhO2VmOuptCBTSU3snYQg7JiB6rWs7KCB7Jy866GcIOyCrOyaqe2VoCDsiJgg7JeG6rKMIOuQqeuLiOuLpC4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IuyeoOq4iO2VtOygnCDtjKjthLTsnYQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz7tmowg7J6Y66q7IOq3uOuguOyKteuLiOuLpC4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz7tmowg642UIOyLpO2MqO2VmOuptCDsnbTrqZTsnbwg6rOE7KCV7J2EIOyCrOyaqe2VmOyXrCDtnLTrjIDsoITtmZTrpbwg7J6g6riI7ZW07KCc7ZW07JW8IO2VqeuLiOuLpC5cblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+7LSIIO2bhOyXkCDri6Tsi5wg7Iuc64+E7ZW0IOyjvOyEuOyalC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLsgq3soJwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IlNJTSBQSU4g7L2U65Oc6rCAIOyemOuqu+uQmOyXiOyKteuLiOuLpC4g7J2064+Z7Ya17Iug7IKs7JeQIOusuOydmO2VmOyXrCDquLDquLDrpbwg7J6g6riIIO2VtOygnO2VtOyVvCDtlanri4jri6QuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiJTSU0gUElOIOy9lOuTnOqwgCDsnpjrqrvrkJjsl4jsirXri4jri6QuIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPu2ajCDsnbTsg4Eg7Iuk7Yyo7ZWgIOqyveyasCDsnbTrj5nthrXsi6Dsgqzsl5Ag66y47J2Y7ZWY7JesIOq4sOq4sOulvCDsnqDquIgg7ZW07KCc7ZW07JW8IO2VqeuLiOuLpC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJTSU0gUElOIOy9lOuTnOqwgCDsnpjrqrvrkJjsl4jsirXri4jri6QuIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPuuyiOydmCDquLDtmozqsIAg64Ko7JWY7Iq164uI64ukLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iU0lN7J2EIOyCrOyaqe2VoCDsiJgg7JeG7Iq164uI64ukLiDsnbTrj5nthrXsi6Dsgqzsl5Ag66y47J2Y7ZWY7IS47JqULiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iU0lNIFBVSyDsvZTrk5zqsIAg7J6Y66q765CY7JeI7Iq164uI64ukLiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz7tmowg7J207IOBIOyLpO2MqO2VoCDqsr3smrAgU0lN7J2EIOyZhOyghO2eiCDsgqzsmqntlaAg7IiYIOyXhuyKteuLiOuLpC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiJTSU0gUFVLIOy9lOuTnOqwgCDsnpjrqrvrkJjsl4jsirXri4jri6QuIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPu2ajCDsnbTsg4Eg7Iuk7Yyo7ZWgIOqyveyasCBTSU3snYQg7JmE7KCE7Z6IIOyCrOyaqe2VoCDsiJgg7JeG7Iq164uI64ukLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iU0lNIFBJTiDsnpHsl4XsnbQg7Iuk7Yyo7ZaI7Iq164uI64ukLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4iU0lNIFBVSyDsnpHsl4XsnbQg7Iuk7Yyo7ZaI7Iq164uI64ukLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9hY2NlcHRlZCIgbXNnaWQ9IjE0NDgyNDE2NzM1NzAwMjAwOTciPiLsvZTrk5wg7Iq57J24IOyZhOujjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IuydtOyghCDtirjrnpkg67KE7Yq8Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4i64uk7J2MIO2KuOuemSDrsoTtirwiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4i7J287Iuc7KSR7KeAIOuyhO2KvCI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtbG8tckxBL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODFjMTAxODEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWxvLXJMQS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDE1NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLgup7gurTguqHguqXgurDguqvgurHgupQgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4i4Lqb4Lqw4LuA4Lqe4LqUIFBVSyDguoLguq3guocgU0lNIOC7geC6peC6sOC6peC6sOC6q+C6seC6lCBQSU4g4LuD4Lud4LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiLguqXgurDguqvgurHgupQgUFVLIOC6guC6reC6hyBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+IuC6peC6sOC6q+C6seC6lCBQSU4g4LuD4Lud4LuI4LqC4Lqt4LqHIFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IuC7geC6leC6sOC7gOC6nuC6t+C7iOC6reC6nuC6tOC6oeC6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6mSI8L2ZvbnQ+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IuC6nuC6tOC6oeC6peC6sOC6q+C6seC6lOC7gOC6nuC6t+C7iOC6reC6m+C6u+C6lOC6peC6seC6reC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IuC6nuC6tOC6oeC6peC6sOC6q+C6seC6lCBQSU4g4LuA4Lqe4Lq34LuI4Lqt4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIyNDIyMjI1NTkxMDA2MTM0OTM2Ij4i4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDguprgu43gu4jgupbgurfguoHgupXgu4nguq3guocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+IuC7gOC6nuC6t+C7iOC6reC6m+C6u+C6lOC6peC6seC6reC6gSwg4LuD4Lqr4LuJ4LqB4Lq74LqU4LuA4Lqh4LqZ4Lq5IOC7geC6peC7ieC6p+C6geC6u+C6lCAwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLguoTguqfgurLguqHgup7gurDguo3gurLguo3gurLguqHgupvgurvgupTguqXgurHguq3guoHgupTgu4nguqfguo3gu5zgu4ngurLgupngurHgu4ngupkg4LuA4LqB4Lq14LqZ4LqI4Lqz4LqZ4Lqn4LqZ4LqX4Lq14LuI4LqB4Lqz4LqZ4Lq74LqU4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2hhcmdlZCIgbXNnaWQ9IjMyNzIyMjM5MDYwNzM0OTI0NTQiPiLguqrgurLguoHgu4DgupXgurHguqHgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wbHVnZ2VkX2luIiBtc2dpZD0iODExNzU3MjAwMDYzOTk5ODM4OCI+IuC6geC6s+C6peC6seC6h+C6quC6suC6gSwgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xvd19iYXR0ZXJ5IiBtc2dpZD0iODE0MzgwODAxODcxOTE3Mzg1OSI+IuC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6reC6uOC6m+C6sOC6geC6reC6meC6quC6suC6geC6guC6reC6h+C6l+C7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iMTMzMjI4ODI2ODYwMDMyOTg0MSI+IuC6geC6u+C6lOC7gOC6oeC6meC6ueC7gOC6nuC6t+C7iOC6reC6m+C6u+C6lOC6peC6seC6reC6gS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9uZXR3b3JrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iOTE2OTcxNzc3OTA1ODAzNzE2OCI+IuC7gOC6hOC6t+C6reC6guC7iOC6suC6jeC6luC6t+C6geC6peC6seC6reC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0OTQ5ODA1NjEzMDQyMTE5MzEiPiLguprgu43gu4jguqHgurXguorgurTguqHguoHgurLgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNDQ1ODQ5MDA1OTA5MjYwMDM5Ij4i4Lqa4LuN4LuI4Lqh4Lq14LqK4Lq04Lqh4LqB4Lqy4LqU4LuD4LqZ4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDgxMTEwMzk1NTA4NjM3NjQzIj4i4Lqa4LuN4LuI4Lqh4Lq14LqK4Lq04Lqh4LqB4Lqy4LqU4Lqi4Lq54LuI4LuD4LqZ4LuC4LqX4Lql4Lqw4Lqq4Lqx4LqaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUyMTA4OTE1MDk5OTU5NDIyNTAiPiLgu4Pguqrgu4ggU0lNIGNhcmQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zX2xvbmciIG1zZ2lkPSI1OTY4OTg1NDg5NDYzODcwMzU4Ij4i4Lqa4LuN4LuI4Lqe4Lq74Lqa4LuA4Lqr4Lqx4LqZ4LqK4Lq04Lqh4LqB4Lqy4LqUIOC6q+C6vOC6t+C6muC7jeC7iOC6quC6suC6oeC6suC6lOC6reC7iOC6suC6meC6iuC6tOC6oeC6geC6suC6lOC7hOC6lOC7iS4g4LqB4Lqw4Lql4Lq44LqZ4Lqy4LuD4Lqq4LuI4LqK4Lq04Lqh4LqB4Lqy4LqU4LuD4Lud4LuILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjgzNDA4MTM5ODk1ODY2MjIzNTYiPiJTSU0gY2FyZCDguprgu43gu4jguqrgurLguqHgurLgupTgu4Pguorgu4ngu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1ODkyOTQwOTA5Njk5NzIzNTQ0Ij4iU0lNIGNhcmQg4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LqW4Lq34LqB4Lqb4Lq04LqU4LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4Lqi4LuI4Lqy4LqH4LqW4Lqy4Lqn4Lqt4LqZ4LuB4Lql4LuJ4LqnLlxuIOC6leC6tOC6lOC6leC7jeC7iOC6nOC6ueC7iOC7g+C6q+C7ieC6muC7jeC6peC6tOC6geC6suC6meC6peC6sOC6muC6u+C6muC6guC6reC6h+C6l+C7iOC6suC6meC7gOC6nuC6t+C7iOC6reC6guC7jSBTSU0gY2FyZCDgu4Pgu53gu4guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+IuC6iuC6tOC6oeC6geC6suC6lOC6luC6t+C6geC6peC6seC6reC6gS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMzc0NzIzMjQ2NzQ3MTgwMTYzMyI+IuC6iuC6tOC6oeC6geC6suC6lOC6luC6t+C6geC6peC6seC6reC6geC6lOC7ieC6p+C6jeC6peC6sOC6q+C6seC6lCBQVUsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc5NzUyMjE4MDUwMzM2MTQ0MjYiPiLguoHgurPguqXgurHguofgupvgurvgupTguqXgurHguq3guoHguorgurTguqHguoHgurLgupQuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9jaGFuZ2VkIiBtc2dpZD0iNTY3ODYyNDYyNDY4MTQwMDE5MSI+IiUxJHMuIOC6p+C6tOC6lOC7gOC6iOC6seC6lCAlMiRkIOC6iOC6suC6geC6l+C6seC6h+C7neC6u+C6lCAlMyRkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiLgu4Dgup7gurXgu4jguqHguqfgurTgupTgu4DguojgurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9lbXB0eV9zbG90IiBtc2dpZD0iMTI4MTUwNTcwMzMwNzkzMDc1NyI+IuC6q+C6p+C7iOC6suC6h+C7gOC6m+C6u+C7iOC6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfZXhwYW5kZWQiIG1zZ2lkPSIyMjc4MTA2MDIyMzExMTcwMjk5Ij4i4LqC4Lqw4Lqr4LqN4Lqy4LqN4Lqe4Lq34LuJ4LqZ4LqX4Lq14LuI4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfY29sbGFwc2VkIiBtc2dpZD0iNjM2Njk5MjA2NjkzNjA3NjM5NiI+IuC6q+C6jeC7jeC7ieC6nuC6t+C7ieC6meC6l+C6teC7iOC6m+C6u+C6lOC6peC6seC6reC6geC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldCIgbXNnaWQ9IjY1MjcxMzEwMzk3NDE4MDgyNDAiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDguqfgurTgupTgu4DguojgurHgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91c2VyX3NlbGVjdG9yIiBtc2dpZD0iMTIyNjc5ODM3MDkxMzY5ODg5NiI+IuC7guC6leC7gOC6peC6t+C6reC6geC6guC6reC6h+C6nOC6ueC7iOC7g+C6iuC7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc3RhdHVzIiBtc2dpZD0iODAwODI2NDYwMzkzNTkzMDYxMSI+IuC6quC6sOC6luC6suC6meC6sCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfY2FtZXJhIiBtc2dpZD0iODkwNDIzMTE5NDE4MTExNDYwMyI+IuC6geC7ieC6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWdhdXJkX2FjY2Vzc2liaWxpdHlfbWVkaWFfY29udHJvbHMiIG1zZ2lkPSIyNjIyMDk2NTQyOTIxNjE4MDYiPiLguoHgurLgupnguoTguqfguprguoTgurjguqHguqrgurfgu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+IuC6geC6suC6meC6iOC6seC6lOC6ruC6veC6h+C6p+C6tOC7gOC6iOC6seC6lOC7g+C7neC7iOC7gOC6peC6teC7iOC6oeC6leC6u+C7ieC6meC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiLguoHgurLgupnguojgurHgupTguq7gur3guofguqfgurTgupTgu4DguojgurHgupTguoTgurfgupngu4Pgu53gu4jguqrgurPgu4DguqXgurHgupTgu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZGVsZXRlZCIgbXNnaWQ9IjQ0MjYyMDQyNjM5MjkyMjQ0MzQiPiLguqXgurbguprguqfgurTgupTgu4DguojgurHgupQgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZXhwYW5kX2xvY2tfYXJlYSIgbXNnaWQ9IjUxOTg1OTcyMDkzNDE3ODAyNCI+IuC6guC6sOC6q+C6jeC6suC6jeC6guC6reC6muC7gOC6guC6lOC6m+C6u+C6lOC6peC6seC6reC6gS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiLguoHgurLgupngupvgurvgupTguqXgurHguq3guoHgupTgu4nguqfguo3guoHgurLgupngu4DguqXgurfgu4jguq3gupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLgupvgurvgupTguqXgurHguq3guoHgupTgu4nguqfguo3guq7gurnguprgu4HguprgupouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9mYWNlX3VubG9jayIgbXNnaWQ9IjQ4MTcyODI1NDMzNTE3MTg1MzUiPiLgupvgurvgupTguqXgurHguq3guoHgupTgu4nguqfguo3gu5zgu4ngurIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9waW5fdW5sb2NrIiBtc2dpZD0iMjQ2OTY4NzExMTc4NDAzNTA0NiI+IuC6m+C6u+C6lOC6peC6seC6reC6geC6lOC7ieC6p+C6jSBQSU4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXNzd29yZF91bmxvY2siIG1zZ2lkPSI3Njc1Nzc3NjIzOTEyMTU1MDg5Ij4i4LqB4Lqy4LqZ4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4LqU4LuJ4Lqn4LqN4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl9hcmVhIiBtc2dpZD0iNzY3OTg5MTMyNDUwOTU5NzkwNCI+IuC6nuC6t+C7ieC6meC6l+C6teC7iOC6ruC6ueC6muC7geC6muC6mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4i4LuA4Lql4Lq34LuI4Lqt4LqZ4Lqe4Lq34LuJ4LqZ4LqX4Lq14LuILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSIxMzM3Mjg2NTM4MzE4NTQzNTU1Ij4i4Lqb4Lq44LuI4Lqh4LuA4Lqe4LqH4LqB4LuI4Lqt4LqZ4Luc4LuJ4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjcwNzM5MjgzMDA0NDQ5MDkzMjAiPiLgupvgurjgu4jguqHgu4Dgup7guofgupXgu43gu4jgu4TgupsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiLgupvgurjgu4jguqHguqLgurjgupTguorgurvgu4jguqfguoTgurLguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+IuC6m+C6uOC7iOC6oeC6q+C6vOC6tOC7ieC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4i4Lqb4Lq44LuI4Lqh4Lqi4Lq44LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IuC7gOC6peC6t+C7iOC6reC6meC6meC6tOC7ieC6p+C7guC6m+C7ieC6guC6tuC7ieC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+IuC7gOC6peC6t+C7iOC6reC6meC6meC6tOC7ieC6p+C7guC6m+C7ieC6peC6u+C6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IuC6q+C6u+C6p+C7g+C6iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IuC6m+C6u+C6lOC6peC6seC6reC6geC7gOC6nuC6t+C7iOC6reC6lOC6s+C7gOC6meC6teC6meC6geC6suC6meC6leC7jeC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IuC6geC6suC6meC7gOC6m+C6teC6lOC7g+C6iuC7ieC6luC6t+C6geC6jeC6u+C6geC7gOC6peC6teC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiLguqfgurLguocgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4LuA4Lqe4Lq34LuI4Lqt4Lql4Lq24LqaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDguojgurDguprgu43gu4jgupbgurfguoHguqXgurbguprguq3guq3guoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2FsdCIgbXNnaWQ9IjQ4NTY4Njg4MjAwNDAwNTE5MzkiPiJBbHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9jYW5jZWwiIG1zZ2lkPSIxMjAzOTg0MDE3MjQ1NzgzMjQ0Ij4i4LqN4Lq74LqB4LuA4Lql4Lq14LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZGVsZXRlIiBtc2dpZD0iMzMzNzkxNDgzMzIwNjYzNTc0NCI+IuC6peC6tuC6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RvbmUiIG1zZ2lkPSIxOTkyNTcxMTE4NDY2Njc5Nzc1Ij4i4LuB4Lql4LuJ4Lqn4LuGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfbW9kZV9jaGFuZ2UiIG1zZ2lkPSI0NTQ3Mzg3NzQxOTA2NTM3NTE5Ij4i4Lqb4LuI4Lq94LqZ4Lqu4Lq54Lqa4LuB4Lqa4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF91bmxvY2siIG1zZ2lkPSIyMjI4NTI0OTAwNDM5ODAxNDUzIj4i4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X2NhbWVyYSIgbXNnaWQ9Ijk2OTA3MTk5NzU1MjQ4NjgxNCI+IuC6geC7ieC6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zaWxlbnQiIG1zZ2lkPSI4OTM1NTEyODc3NDY1MjIxODIiPiLgupvgurTgupTguqrgur3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4i4LuA4Lqb4Lq14LqU4Lqq4Lq94LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiLguorguq3guoHguqvgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4i4LuA4Lql4Lq34LuI4Lqt4LqZ4LqC4Lq24LuJ4LqZ4LuA4Lqe4Lq34LuI4LqtIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fZG93biIgbXNnaWQ9IjUwODc3Mzk3Mjg2MzkwMTQ1OTUiPiLgu4DguqXgurfgu4jguq3gupnguqXgurvguofgu4Dgup7gurfgu4jguq0gPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9sZWZ0IiBtc2dpZD0iNzIwNzQ3ODcxOTgwNTU2MjE2NSI+IuC7gOC6peC6t+C7iOC6reC6meC7hOC6m+C6l+C6suC6h+C6iuC7ieC6suC6jeC7gOC6nuC6t+C7iOC6rSA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3JpZ2h0IiBtc2dpZD0iODAzNDQzMzI0MjU3OTYwMDk4MCI+IuC7gOC6peC6t+C7iOC6reC6meC7hOC6m+C6l+C6suC6h+C6guC6p+C6suC7gOC6nuC6t+C7iOC6rSA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlcl9zd2l0Y2hlZCIgbXNnaWQ9IjM3NjgwMDY3ODMxNjY5ODQ0MTAiPiLgupzgurngu4jgu4Pguorgu4ngupvgurHgupTguojgurjguprgurHgupkgPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+IC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbWVyZ2VuY3lfY2FsbF9sYWJlbCIgbXNnaWQ9IjY4NDk0NjE5MjUyMzgzMDUzMSI+IuC6geC6suC6meC7guC6l+C6quC6uOC6geC7gOC6quC6teC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iODg1MjAyMTQ2Nzg2ODIyMDYwOCI+IuC6peC6t+C6oeC6ruC6ueC6muC7geC6muC6muC6m+C6u+C6lOC6peC6seC6reC6gT8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXR0ZXJuIiBtc2dpZD0iMTg1MDgwNjA3MDgwMTM1ODgzMCI+IuC6ruC6ueC6muC7geC6muC6muC6nOC6tOC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3Bhc3N3b3JkIiBtc2dpZD0iMjMzMzI4MTc2MjEyODExMzE1NyI+IuC6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6meC6muC7jeC7iOC6luC6t+C6geC6leC7ieC6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiLguqXgurDguqvgurHgupQgUElOIOC6nOC6tOC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MzU4MTEwMjIxNjAzMjk3NTQ4Ij4i4Lql4Lqt4LqH4LuD4Lud4LuI4LuD4LqZ4Lqt4Lq14LqBIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDguqfgurTgupngurLgupfgurUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiLgu4HgupXgu4nguqHguq7gurnguprgu4HguprguprgupvgurvgupTguqXgurHguq3guoHguoLguq3guofgupfgu4jgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiLgu4Pguqrgu4jguqXgurDguqvgurHgupQgUElOIOC6guC6reC6h+C6iuC6tOC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzc3MjQyMjMzNDk1MTExNTU3Ij4i4LuD4Lqq4LuI4Lql4Lqw4Lqr4Lqx4LqUIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU3NTM2NDY1NTYxODY5MzY4MTkiPiLgu4Pguqrgu4jguqXgurDguqvgurHgupTgupzgu4jgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcHVrX2hpbnQiIG1zZ2lkPSI0NTMyMjcxNDM4NjE3MzU1MzciPiLguorgurTguqHgupbgurfguoHgupvgurTgupTguoHgurLgupngupngurPgu4Pguorgu4ngu4HguqXgu4nguqcuIOC6m+C7ieC6reC6meC6peC6sOC6q+C6seC6lCBQVUsg4LuA4Lqe4Lq34LuI4Lqt4LqU4Lqz4LuA4LqZ4Lq14LqZ4LqB4Lqy4LqZ4LqV4LuN4LuILiDgupXgurTgupTgupXgu43gu4jgupzgurngu4jgu4Pguqvgu4nguprgu43guqXgurTguoHgurLgupnguqrgurPguqXgurHguprguqXgurLguo3guqXgurDguq3gur3gupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IuC7g+C6quC7iOC6peC6sOC6q+C6seC6lCBQSU4g4LqX4Lq14LuI4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLguqLgurfgupnguqLgurHgupnguqXgurDguqvgurHgupQgUElOIOC6l+C6teC7iOC6leC7ieC6reC6h+C6geC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4i4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBIFNJTSBjYXJkLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4i4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDguoTguqfgurLguqHguo3gurLguqcgNCDgu4DgupbgurTguocgOCDgu4LgupXgu4DguqXguoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4i4Lql4Lqw4Lqr4Lqx4LqUIFBVSyDguoTguqfgupnguqHgurXguqLgu4jgurLguofgu5zgu4nguq3guo0gOCDgu4LgupXgu4DguqXguoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i4Lqb4LuJ4Lqt4LqZ4Lql4Lqw4Lqr4Lqx4LqUIFBVSyDgupfgurXgu4jgupbgurfguoHgupXgu4nguq3guofguoTgurfgupngu4Pgu53gu4guIOC6geC6suC6meC6nuC6sOC6jeC6suC6jeC6suC6oeC7g+C6quC7iOC6q+C6vOC6suC6jeC7gOC6l+C6t+C7iOC6reC6iOC6sOC7gOC6ruC6seC6lOC7g+C6q+C7ieC6iuC6tOC6oeC6geC6suC6lOC7g+C6iuC7ieC6muC7jeC7iOC7hOC6lOC7ieC6luC6suC6p+C6reC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4i4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDguprgu43gu4jguoHgurvguofguoHgurHgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjY0ODY4NDIwOTQwMDU2OTg0NzUiPiLgu4HgupXgu4nguqHguq7gurnguprgu4HguprguprgupvgurvgupTguqXgurHguq3guoHguqvgurzgurLguo3gu4DguoHgurXgupngu4TgupsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIxMTAwNTUxMjYxMjY1NTA2NDQ4Ij4i4LuA4Lqe4Lq34LuI4Lqt4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBLCDgu4DguoLgurvgu4ngurLguqrgurngu4jguqXgurDguprgurvguprgupTgu4nguqfguo3guprgurHgupnguorgurUgR29vZ2xlIOC6guC6reC6h+C6l+C7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+IuC6iuC6t+C7iOC6nOC6ueC7iOC7g+C6iuC7iSAo4Lqt4Lq14LuA4Lqh4LqnKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4i4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiLgu4DguoLgurvgu4ngurLguqrgurngu4jguqXgurDguprgurvgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+IuC6iuC6t+C7iOC6nOC6ueC7iOC7g+C6iuC7iSDguqvgurzgurfguqXgurDguqvgurHgupTgupzgu4jgurLgupnguprgu43gu4jgupbgurfguoHgupXgu4nguq3guocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IuC6peC6t+C6oeC6iuC6t+C7iOC6nOC6ueC7iOC7g+C6iuC7iSDguqvgurzgurfguqXgurDguqvgurHgupTgupzgu4jgurLgupnguoLguq3guofgupfgu4jgurLgupnguprgu43gu4g/XG7gu4TgupvgupfgurXgu4ggIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IuC6geC6s+C6peC6seC6h+C6geC6p+C6lOC6quC6reC6muC6muC6seC6meC6iuC6tS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i4LqX4LuI4Lqy4LqZ4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqUIFBJTuKAiyDguoLguq3guofgupfgu4jgurLgupngupzgurTgupQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LuA4LqX4Lq34LuI4Lqt4LuB4Lql4LuJ4LqnLiBcblxu4LqB4Lqw4Lql4Lq44LqZ4Lqy4Lql4Lqt4LqH4LuD4Lud4LuI4LuD4LqZ4Lqt4Lq14LqBIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC6p+C6tOC6meC6suC6l+C6tS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3ODEzNzEzMzg5NDIyMjI2NTMxIj4i4LqX4LuI4Lqy4LqZ4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqU4Lqc4Lq04LqUIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4gXG5cbuC6peC6reC6h+C7g+C7neC7iOC7g+C6meC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDguqfgurTgupngurLgupfgurUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+IuC6l+C7iOC6suC6meC7geC6leC7ieC6oeC6ruC6ueC6muC7geC6muC6muC6m+C6u+C6lOC6peC6seC6reC6geC6guC6reC6h+C6l+C7iOC6suC6meC6nOC6tOC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3gu4HguqXgu4nguqcuIFxuXG7guoHgurDguqXgurjgupngurLguqXguq3guofgu4Pgu53gu4jgu4Pgupnguq3gurXguoEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Lqn4Lq04LqZ4Lqy4LqX4Lq1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+IuC6l+C7iOC6suC6meC7hOC6lOC7ieC6nuC6sOC6jeC6suC6jeC6suC6oeC6m+C6u+C6lOC6peC6seC6reC6geC7geC6l+C6seC6muC7gOC6peC6seC6lOC6muC7jeC7iOC6quC6s+C7gOC6peC6seC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3gu4HguqXgu4nguqcuIOC6q+C6vOC6seC6h+C6iOC6suC6geC6hOC6p+C6suC6oeC6nuC6sOC6jeC6suC6jeC6suC6oeC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq0g4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LqI4Lqw4LqW4Lq34LqB4LqV4Lqx4LuJ4LqHIOC7g+C6q+C7ieC6geC6seC6muC7hOC6m+C7g+C6iuC7ieC6hOC7iOC6suC7gOC6peC6teC7iOC6oeC6leC6u+C7ieC6meC6iOC6suC6geC7guC6ruC6h+C6h+C6suC6meC6hOC6t+C6meC7g+C7neC7iCDgu4HguqXgurDguoLgu43gu4nguqHgurngupngupzgurngu4jgu4Pguorgu4ngupfgurHguofgu53gurvgupTguojgurDguqrgurngupnguqvgurLguo3gu4TgupsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDA1MTAxNTk0MzAzODE5OTkxMCI+IuC6l+C7iOC6suC6meC7hOC6lOC7ieC6nuC6sOC6jeC6suC6jeC6suC6oeC6m+C6u+C6lOC6peC6seC6reC6geC7guC6l+C6peC6sOC6quC6seC6muC6muC7jeC7iOC6quC6s+C7gOC6peC6seC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3gu4HguqXgu4nguqcuIOC6q+C6vOC6seC6h+C6iOC6suC6geC6hOC6p+C6suC6oeC6nuC6sOC6jeC6suC6jeC6suC6oeC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq0g4LuC4LqX4Lql4Lqw4Lqq4Lqx4Lqa4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LqI4Lqw4LqW4Lq34LqB4LqV4Lqx4LuJ4LqHIOC7g+C6q+C7ieC6geC6seC6muC7hOC6m+C7g+C6iuC7ieC6hOC7iOC6suC7gOC6peC6teC7iOC6oeC6leC6u+C7ieC6meC6iOC6suC6geC7guC6ruC6h+C6h+C6suC6meC6hOC6t+C6meC7g+C7neC7iCDgu4HguqXgurDguoLgu43gu4nguqHgurngupngupzgurngu4jgu4Pguorgu4ngupfgurHguofgu53gurvgupTguojgurDguqrgurngupnguqvgurLguo3gu4TgupsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNzI5OTYyNjkxNDg0ODM2MzciPiLgupfgu4jgurLgupngu4TgupTgu4ngup7gurDguo3gurLguo3gurLguqHgupvgurvgupTguqXgurHguq3guoHgu4HgupfgurHguprgu4DguqXgurHgupTguprgu43gu4jguqrgurPgu4DguqXgurHgupQgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4g4LqV4Lqt4LqZ4LqZ4Lq14LuJ4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqI4Lqw4LqW4Lq34LqB4LqV4Lqx4LuJ4LqH4LuD4Lqr4LuJ4LqB4Lqx4Lqa4LuE4Lqb4LuD4LqK4LuJ4LqE4LuI4Lqy4LuA4Lql4Lq14LuI4Lqh4LqV4Lq74LuJ4LqZ4LqI4Lqy4LqB4LuC4Lqu4LqH4LqH4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDgxNzYyNzQ3NDQxOTQ3MTUxOCI+IuC6l+C7iOC6suC6meC7hOC6lOC7ieC6nuC6sOC6jeC6suC6jeC6suC6oeC6m+C6u+C6lOC6peC6seC6reC6geC7guC6l+C6peC6sOC6quC6seC6muC6muC7jeC7iOC6luC6t+C6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4LuA4LqX4Lq34LuI4Lqt4LuB4Lql4LuJ4LqnLiDgupXguq3gupngupngurXgu4ngu4LgupfguqXgurDguqrgurHguprguojgurDgupbgurfguoHguqPgurXgu4DguorgurHgupTgu4DgupvgurHgupnguoTgu4jgurLguojgurLguoHgu4Lguq7guofguofgurLgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IuC6l+C7iOC6suC6meC7geC6leC7ieC6oeC6ruC6ueC6muC7geC6muC6muC6m+C6u+C6lOC6peC6seC6reC6geC6nOC6tOC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3gu4HguqXgu4nguqcuIOC6q+C6vOC6seC6h+C6iOC6suC6geC7geC6leC7ieC6oeC6nOC6tOC6lOC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq0sIOC6l+C7iOC6suC6meC6iOC6sOC6luC6t+C6geC6luC6suC6oeC7g+C6q+C7ieC6m+C6u+C6lOC6peC6seC6reC6geC7geC6l+C6seC6muC7gOC6peC6seC6lOC6guC6reC6h+C6l+C7iOC6suC6mSDgupTgu4nguqfguo3guoHgurLgupngu4DguoLgurvgu4ngurLguqrgurngu4jguqXgurDguprgurvguprgu4LgupTguo3gu4Pguorgu4nguq3gurXgu4DguqHguqfguoLguq3guofgupfgu4jgurLgupkuXG5cbiDguoHgurDguqXgurjgupngurLguqXguq3guofgu4Pgu53gu4jguq3gurXguoHguoTgurHgu4nguofgu4Pgupnguq3gurXguoEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Lqn4Lq04LqZ4Lqy4LqX4Lq1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i4LqX4LuI4Lqy4LqZ4LuB4LqV4LuJ4Lqh4Lqu4Lq54Lqa4LuB4Lqa4Lqa4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4Lqc4Lq04LqUIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4g4Lqr4Lq84Lqx4LqH4LqI4Lqy4LqB4LqE4Lqn4Lqy4Lqh4Lqe4Lqw4LqN4Lqy4LqN4Lqy4Lqh4Lqt4Lq14LqBIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6rSDgupfgu4jgurLgupnguojgurDgupbgurfguoHgupbgurLguqHgu4Pguqvgu4ngupvgurvgupTguqXgurHguq3guoHgu4LgupfguqXgurDguqrgurHguprguoLguq3guofgupfgu4jgurLgupngupTgu4nguqfguo3guprgurHgupnguorgurXguq3gurXgu4DguqHguqcuXG5cbiDguqXguq3guofgu4Pgu53gu4jguq3gurXguoHguoTgurHgu4nguofgu4PgupkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Lqn4Lq04LqZ4Lqy4LqX4Lq1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IuC6peC6tuC6muC6reC6reC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4i4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDguoLguq3guocgU0lNIOC6muC7jeC7iOC6luC6t+C6geC6leC7ieC6reC6h+C6l+C7iOC6suC6meC6leC7ieC6reC6h+C6leC6tOC6lOC6leC7jeC7iOC6q+C6suC6nOC6ueC7iOC7g+C6q+C7ieC6muC7jeC6peC6tOC6geC6suC6mSDgu4Dgup7gurfgu4jguq3gupvgurvgupTguqXgurHguq3guoHguq3gurjgupvgurDguoHguq3gupnguoLguq3guofgupfgu4jgurLgupkuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiLguqXgurDguqvgurHgupQgUElOIOC6guC6reC6hyBTSU0g4Lqa4LuN4LuI4LqW4Lq34LqB4LqV4LuJ4Lqt4LqHLCDgupfgu4jgurLgupnguqrgurLguqHgurLgupTguqXguq3guofgu4TgupTgu4nguq3gurXguoEgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC6geC7iOC6reC6meC6l+C6teC7iOC6l+C7iOC6suC6meC6iOC6sOC6leC7ieC6reC6h+C6leC6tOC6lOC6leC7jeC7iOC6q+C6suC6nOC6ueC7iOC7g+C6q+C7ieC6muC7jeC6peC6tOC6geC6suC6meC6guC6reC6h+C6l+C7iOC6suC6mSDgu4Dgup7gurfgu4jguq3gupvgurvgupTguqXgurHguq3guoHguq3gurjgupvgurDguoHguq3gupnguoLguq3guofgupfgu4jgurLgupkuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4i4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDguoLguq3guocgU0lNIOC6muC7jeC7iOC6luC6t+C6geC6leC7ieC6reC6hywg4LqX4LuI4Lqy4LqZ4Lqq4Lqy4Lqh4Lqy4LqU4Lql4Lqt4LqH4LuE4LqU4LuJ4Lqt4Lq14LqBIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq0uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJTSU0g4LuD4LqK4LuJ4Lqa4LuN4LuI4LuE4LqU4LuJ4LuB4Lql4LuJ4LqnLiDguoHgurDguqXgurjgupngurLgupXgurTgupTgupXgu43gu4jguqvgurLgupzgurngu4jgu4Pguqvgu4nguprgu43guqXgurTguoHgurLgupnguoLguq3guofgupfgu4jgurLgupkuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiLguqXgurDguqvgurHgupQgUFVLIOC6guC6reC6hyBTSU0g4Lqa4LuN4LuI4LqW4Lq34LqB4LqV4LuJ4Lqt4LqHLCDgupfgu4jgurLgupnguqrgurLguqHgurLgupTguqXguq3guofgu4TgupTgu4nguq3gurXguoEgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC6geC7iOC6reC6meC6l+C6teC7iCBTSU0g4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LqI4Lqw4LuD4LqK4LuJ4Lqa4LuN4LuI4LuE4LqU4LuJ4Lqi4LuI4Lqy4LqH4LqW4Lqy4Lqn4Lqt4LqZLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IuC6peC6sOC6q+C6seC6lCBQVUsg4LqC4Lqt4LqHIFNJTSDguprgu43gu4jgupbgurfguoHgupXgu4nguq3guocsIOC6l+C7iOC6suC6meC6quC6suC6oeC6suC6lOC6peC6reC6h+C7hOC6lOC7ieC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4LuA4LqX4Lq34LuI4Lqt4LqB4LuI4Lqt4LqZ4LqX4Lq14LuIIFNJTSDguoLguq3guofgupfgu4jgurLgupnguojgurDgu4Pguorgu4nguprgu43gu4jgu4TgupTgu4nguqLgu4jgurLguofgupbgurLguqfguq3gupkuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiJQSU4g4LqC4Lqt4LqHIFNJTSDgu4Dguq7gurHgupTguqfgur3guoHguqXgurvgu4nguqHgu4DguqvgurzguqchIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJQVUsg4LqC4Lqt4LqHIFNJTSDgu4Dguq7gurHgupTguqfgur3guoHguqXgurvgu4nguqHgu4DguqvgurzguqchIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+IuC6peC6sOKAi+C6q+C6seC6lOKAi+C6luC6t+C6geC6leC6reC6muC6ruC6seC6muC7geC6peC7ieC6pyEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiLgupvgurjgu4jguqHgu4Dgup7guofguoHgu4jguq3gupngu5zgu4ngurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiLgupvgurjgu4jguqHgu4Dgup7guofgupXgu43gu4jgu4TgupsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4i4Lqb4Lq44LuI4Lqh4Lqi4Lq44LqU4LqK4Lq74LuI4Lqn4LqE4Lqy4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSIyOTI0NjI4ODYzNzQxMTUwOTU2Ij4i4Lqb4Lq44LuI4Lqh4Lqr4Lq84Lq04LuJ4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSIzMDg0MTc5MzI0ODEwNTc1Nzg3Ij4i4Lqb4Lq44LuI4Lqh4Lqi4Lq44LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2Fycmllcl9kZWZhdWx0IiBtc2dpZD0iODcwMDY1MDQwMzA1NDA0MjE1MyI+IuC6muC7jeC7iOC6oeC6teC6muC7jeC6peC6tOC6geC6suC6mSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1sby9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtbG8vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRjYjdkMQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtbG8vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwxMzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyogLy9kZXZpY2UvYXBwcy9jb21tb24vYXNzZXRzL3Jlcy9hbnkvc3RyaW5ncy54bWwKKyoqCisqKiBDb3B5cmlnaHQgMjAwNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4i4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqUIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IuC6nuC6tOC6oeC6peC6sOC6q+C6seC6lCBQVUsg4LuB4Lql4Lqw4oCL4Lql4Lqw4oCL4Lqr4Lqx4LqUIFBJTiDguq3gurHgupngu4Pgu53gu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IuC6peC6sOKAi+C6q+C6seC6lCBQVUsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+IuC6peC6sOC6q+C6seC6lCBQSU4g4LuD4Lud4LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4i4LuB4LqV4Lqw4LuA4Lqe4Lq34LuI4Lqt4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4i4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqU4LuA4Lqe4Lq34LuI4Lqt4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDgu4Dgup7gurfgu4jguq3gupvgurvgupTguqXgurHguq3guoEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLguqXgurDguqvgurHgupQgUElOIOC6muC7jeC7iOC6luC6t+C6geC6leC7ieC6reC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4i4LuA4Lqe4Lq34LuI4Lqt4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBLCDgu4Pguqvgu4nguoHgurvgupTgu4DguqHgupngurkg4LuB4Lql4LuJ4Lqn4LqB4Lq74LqUIDAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjZXVubG9ja19tdWx0aXBsZV9mYWlsdXJlcyIgbXNnaWQ9Ijc1NDEzNzU4MzAyMjc5MjQyOSI+IuC6hOC6p+C6suC6oeC6nuC6sOC6jeC6suC6jeC6suC6oeC6m+C6u+C6lOC6peC6seC6reC6geC6lOC7ieC6p+C6jeC7nOC7ieC6suC6meC6seC7ieC6mSDgu4DguoHgurXgupnguojgurPgupnguqfgupngupfgurXgu4jguoHgurPgupngurvgupTgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jaGFyZ2VkIiBtc2dpZD0iMzI3MjIyMzkwNjA3MzQ5MjQ1NCI+IuC6quC6suC6geC7gOC6leC6seC6oeC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3BsdWdnZWRfaW4iIG1zZ2lkPSI4MTE3NTcyMDAwNjM5OTk4Mzg4Ij4i4LqB4Lqz4Lql4Lqx4LqH4Lqq4Lqy4LqBLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbG93X2JhdHRlcnkiIG1zZ2lkPSI4MTQzODA4MDE4NzE5MTczODU5Ij4i4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4Lqq4Lqy4LqB4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSIxMzMyMjg4MjY4NjAwMzI5ODQxIj4i4LqB4Lq74LqU4LuA4Lqh4LqZ4Lq54LuA4Lqe4Lq34LuI4Lqt4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX25ldHdvcmtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI5MTY5NzE3Nzc5MDU4MDM3MTY4Ij4i4LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqN4LqW4Lq34LqB4Lql4Lqx4Lqt4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjQ5NDk4MDU2MTMwNDIxMTkzMSI+IuC6muC7jeC7iOC6oeC6teC6iuC6tOC6oeC6geC6suC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE0NDU4NDkwMDU5MDkyNjAwMzkiPiLguprgu43gu4jguqHgurXguorgurTguqHguoHgurLgupTgu4Pgupngu4HgupfgurHguprgu4DguqXgurHgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0ODExMTAzOTU1MDg2Mzc2NDMiPiLguprgu43gu4jguqHgurXguorgurTguqHguoHgurLgupTguqLgurngu4jgu4Pgupngu4LgupfguqXgurDguqrgurHgupouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTIxMDg5MTUwOTk5NTk0MjI1MCI+IuC7g+C6quC7iCBTSU0gY2FyZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjU5Njg5ODU0ODk0NjM4NzAzNTgiPiLguprgu43gu4jgup7gurvguprgu4DguqvgurHgupnguorgurTguqHguoHgurLgupQg4Lqr4Lq84Lq34Lqa4LuN4LuI4Lqq4Lqy4Lqh4Lqy4LqU4Lqt4LuI4Lqy4LqZ4LqK4Lq04Lqh4LqB4Lqy4LqU4LuE4LqU4LuJLiDguoHgurDguqXgurjgupngurLgu4Pguqrgu4jguorgurTguqHguoHgurLgupTgu4Pgu53gu4guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iODM0MDgxMzk4OTU4NjYyMjM1NiI+IlNJTSBjYXJkIOC6muC7jeC7iOC6quC6suC6oeC6suC6lOC7g+C6iuC7ieC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU4OTI5NDA5MDk2OTk3MjM1NDQiPiJTSU0gY2FyZCDguoLguq3guofgupfgu4jgurLgupngupbgurfguoHgupvgurTgupTguoHgurLgupngupngurPgu4Pguorgu4nguqLgu4jgurLguofgupbgurLguqfguq3gupngu4HguqXgu4nguqcuXG4g4LqV4Lq04LqU4LqV4LuN4LuI4Lqc4Lq54LuI4LuD4Lqr4LuJ4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZ4Lql4Lqw4Lqa4Lq74Lqa4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LuA4Lqe4Lq34LuI4Lqt4LqC4LuNIFNJTSBjYXJkIOC7g+C7neC7iC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI2ODc1NzczNDEzMzA2MzgwOTAyIj4i4LqK4Lq04Lqh4LqB4Lqy4LqU4LqW4Lq34LqB4Lql4Lqx4Lqt4LqBLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9wdWtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSIzNzQ3MjMyNDY3NDcxODAxNjMzIj4i4LqK4Lq04Lqh4LqB4Lqy4LqU4LqW4Lq34LqB4Lql4Lqx4Lqt4LqB4LqU4LuJ4Lqn4LqN4Lql4Lqw4Lqr4Lqx4LqUIFBVSy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzk3NTIyMTgwNTAzMzYxNDQyNiI+IuC6geC6s+C6peC6seC6h+C6m+C6u+C6lOC6peC6seC6reC6geC6iuC6tOC6oeC6geC6suC6lC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4g4Lqn4Lq04LqU4LuA4LqI4Lqx4LqUICUyJGQg4LqI4Lqy4LqB4LqX4Lqx4LqH4Lud4Lq74LqUICUzJGQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9hZGRfd2lkZ2V0IiBtc2dpZD0iODI3MzI3NzA1ODcyNDkyNDY1NCI+IuC7gOC6nuC6teC7iOC6oeC6p+C6tOC6lOC7gOC6iOC6seC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i4Lqr4Lqn4LuI4Lqy4LqH4LuA4Lqb4Lq74LuI4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLguoLgurDguqvguo3gurLguo3gup7gurfgu4ngupngupfgurXgu4jgupvgurvgupTguqXgurHguq3guoHgu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9jb2xsYXBzZWQiIG1zZ2lkPSI2MzY2OTkyMDY2OTM2MDc2Mzk2Ij4i4Lqr4LqN4LuN4LuJ4Lqe4Lq34LuJ4LqZ4LqX4Lq14LuI4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0IiBtc2dpZD0iNjUyNzEzMTAzOTc0MTgwODI0MCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOC6p+C6tOC6lOC7gOC6iOC6seC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VzZXJfc2VsZWN0b3IiIG1zZ2lkPSIxMjI2Nzk4MzcwOTEzNjk4ODk2Ij4i4LuC4LqV4LuA4Lql4Lq34Lqt4LqB4LqC4Lqt4LqH4Lqc4Lq54LuI4LuD4LqK4LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zdGF0dXMiIG1zZ2lkPSI4MDA4MjY0NjAzOTM1OTMwNjExIj4i4Lqq4Lqw4LqW4Lqy4LqZ4LqwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4i4LqB4LuJ4Lqt4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z2F1cmRfYWNjZXNzaWJpbGl0eV9tZWRpYV9jb250cm9scyIgbXNnaWQ9IjI2MjIwOTY1NDI5MjE2MTgwNiI+IuC6geC6suC6meC6hOC6p+C6muC6hOC6uOC6oeC6quC6t+C7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfc3RhcnQiIG1zZ2lkPSI4NzM2ODUzNjE1NTg4ODI4MTk3Ij4i4LqB4Lqy4LqZ4LqI4Lqx4LqU4Lqu4Lq94LqH4Lqn4Lq04LuA4LqI4Lqx4LqU4LuD4Lud4LuI4LuA4Lql4Lq14LuI4Lqh4LqV4Lq74LuJ4LqZ4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X3Jlb3JkZXJfZW5kIiBtc2dpZD0iNzE3MDE5MDk1MDg3MDQ2ODMyMCI+IuC6geC6suC6meC6iOC6seC6lOC6ruC6veC6h+C6p+C6tOC6lOC7gOC6iOC6seC6lOC6hOC6t+C6meC7g+C7neC7iOC6quC6s+C7gOC6peC6seC6lOC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9kZWxldGVkIiBtc2dpZD0iNDQyNjIwNDI2MzkyOTIyNDQzNCI+IuC6peC6tuC6muC6p+C6tOC6lOC7gOC6iOC6seC6lCA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDgu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4i4LqC4Lqw4Lqr4LqN4Lqy4LqN4LqC4Lqt4Lqa4LuA4LqC4LqU4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfdW5sb2NrIiBtc2dpZD0iMjk1OTkyODQ3ODc2NDY5NzI1NCI+IuC6geC6suC6meC6m+C6u+C6lOC6peC6seC6reC6geC6lOC7ieC6p+C6jeC6geC6suC6meC7gOC6peC6t+C7iOC6reC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fdW5sb2NrIiBtc2dpZD0iMTQ5MDg0MDcwNjA3NTI0NjYxMiI+IuC6m+C6u+C6lOC6peC6seC6reC6geC6lOC7ieC6p+C6jeC6ruC6ueC6muC7geC6muC6mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+IuC6m+C6u+C6lOC6peC6seC6reC6geC6lOC7ieC6p+C6jeC7nOC7ieC6si4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4i4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4LqU4LuJ4Lqn4LqNIFBJTi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLguoHgurLgupngupvgurvgupTguqXgurHguq3guoHgupTgu4nguqfguo3guqXgurDguqvgurHgupTgupzgu4jgurLgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4i4Lqe4Lq34LuJ4LqZ4LqX4Lq14LuI4Lqu4Lq54Lqa4LuB4Lqa4LqaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfYXJlYSIgbXNnaWQ9IjY3MzYwNjQ0OTQwMTk5Nzk1NDQiPiLgu4DguqXgurfgu4jguq3gupngup7gurfgu4ngupngupfgurXgu4guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjEzMzcyODY1MzgzMTg1NDM1NTUiPiLgupvgurjgu4jguqHgu4Dgup7guofguoHgu4jguq3gupngu5zgu4ngurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzA3MzkyODMwMDQ0NDkwOTMyMCI+IuC6m+C6uOC7iOC6oeC7gOC6nuC6h+C6leC7jeC7iOC7hOC6myI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IuC6m+C6uOC7iOC6oeC6ouC6uOC6lOC6iuC6u+C7iOC6p+C6hOC6suC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4i4Lqb4Lq44LuI4Lqh4Lqr4Lq84Lq04LuJ4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiLgupvgurjgu4jguqHguqLgurjgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2FsdCIgbXNnaWQ9IjQ4NTY4Njg4MjAwNDAwNTE5MzkiPiJBbHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9jYW5jZWwiIG1zZ2lkPSIxMjAzOTg0MDE3MjQ1NzgzMjQ0Ij4i4LqN4Lq74LqB4LuA4Lql4Lq14LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZGVsZXRlIiBtc2dpZD0iMzMzNzkxNDgzMzIwNjYzNTc0NCI+IuC6peC6tuC6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RvbmUiIG1zZ2lkPSIxOTkyNTcxMTE4NDY2Njc5Nzc1Ij4i4LuB4Lql4LuJ4Lqn4LuGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfbW9kZV9jaGFuZ2UiIG1zZ2lkPSI0NTQ3Mzg3NzQxOTA2NTM3NTE5Ij4i4Lqb4LuI4Lq94LqZ4Lqu4Lq54Lqa4LuB4Lqa4LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiJFbnRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF91bmxvY2siIG1zZ2lkPSIyMjI4NTI0OTAwNDM5ODAxNDUzIj4i4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X2NhbWVyYSIgbXNnaWQ9Ijk2OTA3MTk5NzU1MjQ4NjgxNCI+IuC6geC7ieC6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zaWxlbnQiIG1zZ2lkPSI4OTM1NTEyODc3NDY1MjIxODIiPiLgupvgurTgupTguqrgur3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4i4LuA4Lqb4Lq14LqU4Lqq4Lq94LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiLguorguq3guoHguqvgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4i4LuA4Lql4Lq34LuI4Lqt4LqZ4LqC4Lq24LuJ4LqZ4LuA4Lqe4Lq34LuI4LqtIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fZG93biIgbXNnaWQ9IjUwODc3Mzk3Mjg2MzkwMTQ1OTUiPiLgu4DguqXgurfgu4jguq3gupnguqXgurvguofgu4Dgup7gurfgu4jguq0gPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9sZWZ0IiBtc2dpZD0iNzIwNzQ3ODcxOTgwNTU2MjE2NSI+IuC7gOC6peC6t+C7iOC6reC6meC7hOC6m+C6l+C6suC6h+C6iuC7ieC6suC6jeC7gOC6nuC6t+C7iOC6rSA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3JpZ2h0IiBtc2dpZD0iODAzNDQzMzI0MjU3OTYwMDk4MCI+IuC7gOC6peC6t+C7iOC6reC6meC7hOC6m+C6l+C6suC6h+C6guC6p+C6suC7gOC6nuC6t+C7iOC6rSA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlcl9zd2l0Y2hlZCIgbXNnaWQ9IjM3NjgwMDY3ODMxNjY5ODQ0MTAiPiLgupzgurngu4jgu4Pguorgu4ngupvgurHgupTguojgurjguprgurHgupkgPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+IC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbWVyZ2VuY3lfY2FsbF9sYWJlbCIgbXNnaWQ9IjY4NDk0NjE5MjUyMzgzMDUzMSI+IuC6geC6suC6meC7guC6l+C6quC6uOC6geC7gOC6quC6teC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iODg1MjAyMTQ2Nzg2ODIyMDYwOCI+IuC6peC6t+C6oeC6ruC6ueC6muC7geC6muC6muC6m+C6u+C6lOC6peC6seC6reC6gT8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXR0ZXJuIiBtc2dpZD0iMTg1MDgwNjA3MDgwMTM1ODgzMCI+IuC6ruC6ueC6muC7geC6muC6muC6nOC6tOC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3Bhc3N3b3JkIiBtc2dpZD0iMjMzMzI4MTc2MjEyODExMzE1NyI+IuC6peC6sOC6q+C6seC6lOC6nOC7iOC6suC6meC6muC7jeC7iOC6luC6t+C6geC6leC7ieC6reC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiLguqXgurDguqvgurHgupQgUElOIOC6nOC6tOC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MzU4MTEwMjIxNjAzMjk3NTQ4Ij4i4Lql4Lqt4LqH4LuD4Lud4LuI4LuD4LqZ4Lqt4Lq14LqBIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDguqfgurTgupngurLgupfgurUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiLgu4HgupXgu4nguqHguq7gurnguprgu4HguprguprgupvgurvgupTguqXgurHguq3guoHguoLguq3guofgupfgu4jgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiLgu4Pguqrgu4jguqXgurDguqvgurHgupQgUElOIOC6guC6reC6h+C6iuC6tOC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzc3MjQyMjMzNDk1MTExNTU3Ij4i4LuD4Lqq4LuI4Lql4Lqw4Lqr4Lqx4LqUIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU3NTM2NDY1NTYxODY5MzY4MTkiPiLgu4Pguqrgu4jguqXgurDguqvgurHgupTgupzgu4jgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcHVrX2hpbnQiIG1zZ2lkPSI0NTMyMjcxNDM4NjE3MzU1MzciPiLguorgurTguqHgupbgurfguoHgupvgurTgupTguoHgurLgupngupngurPgu4Pguorgu4ngu4HguqXgu4nguqcuIOC6m+C7ieC6reC6meC6peC6sOC6q+C6seC6lCBQVUsg4LuA4Lqe4Lq34LuI4Lqt4LqU4Lqz4LuA4LqZ4Lq14LqZ4LqB4Lqy4LqZ4LqV4LuN4LuILiDgupXgurTgupTgupXgu43gu4jgupzgurngu4jgu4Pguqvgu4nguprgu43guqXgurTguoHgurLgupnguqrgurPguqXgurHguprguqXgurLguo3guqXgurDguq3gur3gupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IuC7g+C6quC7iOC6peC6sOC6q+C6seC6lCBQSU4g4LqX4Lq14LuI4LqV4LuJ4Lqt4LqH4LqB4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLguqLgurfgupnguqLgurHgupnguqXgurDguqvgurHgupQgUElOIOC6l+C6teC7iOC6leC7ieC6reC6h+C6geC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4i4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBIFNJTSBjYXJkLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDguprgu43gu4jgupbgurfguoHgupXgu4nguq3guocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4i4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDguoTguqfgurLguqHguo3gurLguqcgNCDgu4DgupbgurTguocgOCDgu4LgupXgu4DguqXguoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4i4Lql4Lqw4Lqr4Lqx4LqUIFBVSyDguoTguqfgupnguqHgurXguqLgu4jgurLguofgu5zgu4nguq3guo0gOCDgu4LgupXgu4DguqXguoEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i4Lqb4LuJ4Lqt4LqZ4Lql4Lqw4Lqr4Lqx4LqUIFBVSyDgupfgurXgu4jgupbgurfguoHgupXgu4nguq3guofguoTgurfgupngu4Pgu53gu4guIOC6geC6suC6meC6nuC6sOC6jeC6suC6jeC6suC6oeC7g+C6quC7iOC6q+C6vOC6suC6jeC7gOC6l+C6t+C7iOC6reC6iOC6sOC7gOC6ruC6seC6lOC7g+C6q+C7ieC6iuC6tOC6oeC6geC6suC6lOC7g+C6iuC7ieC6muC7jeC7iOC7hOC6lOC7ieC6luC6suC6p+C6reC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4i4Lql4Lqw4Lqr4Lqx4LqUIFBJTiDguprgu43gu4jguoHgurvguofguoHgurHgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjY0ODY4NDIwOTQwMDU2OTg0NzUiPiLgu4HgupXgu4nguqHguq7gurnguprgu4HguprguprgupvgurvgupTguqXgurHguq3guoHguqvgurzgurLguo3gu4DguoHgurXgupngu4TgupsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIxMTAwNTUxMjYxMjY1NTA2NDQ4Ij4i4LuA4Lqe4Lq34LuI4Lqt4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqBLCDgu4DguoLgurvgu4ngurLguqrgurngu4jguqXgurDguprgurvguprgupTgu4nguqfguo3guprgurHgupnguorgurUgR29vZ2xlIOC6guC6reC6h+C6l+C7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+IuC6iuC6t+C7iOC6nOC6ueC7iOC7g+C6iuC7iSAo4Lqt4Lq14LuA4Lqh4LqnKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4i4Lql4Lqw4Lqr4Lqx4LqU4Lqc4LuI4Lqy4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiLgu4DguoLgurvgu4ngurLguqrgurngu4jguqXgurDguprgurvgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+IuC6iuC6t+C7iOC6nOC6ueC7iOC7g+C6iuC7iSDguqvgurzgurfguqXgurDguqvgurHgupTgupzgu4jgurLgupnguprgu43gu4jgupbgurfguoHgupXgu4nguq3guocuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IuC6peC6t+C6oeC6iuC6t+C7iOC6nOC6ueC7iOC7g+C6iuC7iSDguqvgurzgurfguqXgurDguqvgurHgupTgupzgu4jgurLgupnguoLguq3guofgupfgu4jgurLgupnguprgu43gu4g/XG7gu4TgupvgupfgurXgu4ggIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IuC6geC6s+C6peC6seC6h+C6geC6p+C6lOC6quC6reC6muC6muC6seC6meC6iuC6tS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i4LqX4LuI4Lqy4LqZ4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqUIFBJTuKAiyDguoLguq3guofgupfgu4jgurLgupngupzgurTgupQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LuA4LqX4Lq34LuI4Lqt4LuB4Lql4LuJ4LqnLiBcblxu4LqB4Lqw4Lql4Lq44LqZ4Lqy4Lql4Lqt4LqH4LuD4Lud4LuI4LuD4LqZ4Lqt4Lq14LqBIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC6p+C6tOC6meC6suC6l+C6tS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3ODEzNzEzMzg5NDIyMjI2NTMxIj4i4LqX4LuI4Lqy4LqZ4Lqe4Lq04Lqh4Lql4Lqw4Lqr4Lqx4LqU4Lqc4Lq04LqUIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4gXG5cbuC6peC6reC6h+C7g+C7neC7iOC7g+C6meC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDguqfgurTgupngurLgupfgurUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+IuC6l+C7iOC6suC6meC7geC6leC7ieC6oeC6ruC6ueC6muC7geC6muC6muC6m+C6u+C6lOC6peC6seC6reC6geC6guC6reC6h+C6l+C7iOC6suC6meC6nOC6tOC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3gu4HguqXgu4nguqcuIFxuXG7guoHgurDguqXgurjgupngurLguqXguq3guofgu4Pgu53gu4jgu4Pgupnguq3gurXguoEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Lqn4Lq04LqZ4Lqy4LqX4Lq1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+IuC6l+C7iOC6suC6meC7hOC6lOC7ieC6nuC6sOC6jeC6suC6jeC6suC6oeC6m+C6u+C6lOC6peC6seC6reC6geC7geC6l+C6seC6muC7gOC6peC6seC6lOC6muC7jeC7iOC6quC6s+C7gOC6peC6seC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3gu4HguqXgu4nguqcuIOC6q+C6vOC6seC6h+C6iOC6suC6geC6hOC6p+C6suC6oeC6nuC6sOC6jeC6suC6jeC6suC6oeC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq0g4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LqI4Lqw4LqW4Lq34LqB4LqV4Lqx4LuJ4LqHIOC7g+C6q+C7ieC6geC6seC6muC7hOC6m+C7g+C6iuC7ieC6hOC7iOC6suC7gOC6peC6teC7iOC6oeC6leC6u+C7ieC6meC6iOC6suC6geC7guC6ruC6h+C6h+C6suC6meC6hOC6t+C6meC7g+C7neC7iCDgu4HguqXgurDguoLgu43gu4nguqHgurngupngupzgurngu4jgu4Pguorgu4ngupfgurHguofgu53gurvgupTguojgurDguqrgurngupnguqvgurLguo3gu4TgupsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDA1MTAxNTk0MzAzODE5OTkxMCI+IuC6l+C7iOC6suC6meC7hOC6lOC7ieC6nuC6sOC6jeC6suC6jeC6suC6oeC6m+C6u+C6lOC6peC6seC6reC6geC7guC6l+C6peC6sOC6quC6seC6muC6muC7jeC7iOC6quC6s+C7gOC6peC6seC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3gu4HguqXgu4nguqcuIOC6q+C6vOC6seC6h+C6iOC6suC6geC6hOC6p+C6suC6oeC6nuC6sOC6jeC6suC6jeC6suC6oeC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq0g4LuC4LqX4Lql4Lqw4Lqq4Lqx4Lqa4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LqI4Lqw4LqW4Lq34LqB4LqV4Lqx4LuJ4LqHIOC7g+C6q+C7ieC6geC6seC6muC7hOC6m+C7g+C6iuC7ieC6hOC7iOC6suC7gOC6peC6teC7iOC6oeC6leC6u+C7ieC6meC6iOC6suC6geC7guC6ruC6h+C6h+C6suC6meC6hOC6t+C6meC7g+C7neC7iCDgu4HguqXgurDguoLgu43gu4nguqHgurngupngupzgurngu4jgu4Pguorgu4ngupfgurHguofgu53gurvgupTguojgurDguqrgurngupnguqvgurLguo3gu4TgupsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNzI5OTYyNjkxNDg0ODM2MzciPiLgupfgu4jgurLgupngu4TgupTgu4ngup7gurDguo3gurLguo3gurLguqHgupvgurvgupTguqXgurHguq3guoHgu4HgupfgurHguprgu4DguqXgurHgupTguprgu43gu4jguqrgurPgu4DguqXgurHgupQgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4g4LqV4Lqt4LqZ4LqZ4Lq14LuJ4LuB4LqX4Lqx4Lqa4LuA4Lql4Lqx4LqU4LqI4Lqw4LqW4Lq34LqB4LqV4Lqx4LuJ4LqH4LuD4Lqr4LuJ4LqB4Lqx4Lqa4LuE4Lqb4LuD4LqK4LuJ4LqE4LuI4Lqy4LuA4Lql4Lq14LuI4Lqh4LqV4Lq74LuJ4LqZ4LqI4Lqy4LqB4LuC4Lqu4LqH4LqH4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDgxNzYyNzQ3NDQxOTQ3MTUxOCI+IuC6l+C7iOC6suC6meC7hOC6lOC7ieC6nuC6sOC6jeC6suC6jeC6suC6oeC6m+C6u+C6lOC6peC6seC6reC6geC7guC6l+C6peC6sOC6quC6seC6muC6muC7jeC7iOC6luC6t+C6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4LuA4LqX4Lq34LuI4Lqt4LuB4Lql4LuJ4LqnLiDgupXguq3gupngupngurXgu4ngu4LgupfguqXgurDguqrgurHguprguojgurDgupbgurfguoHguqPgurXgu4DguorgurHgupTgu4DgupvgurHgupnguoTgu4jgurLguojgurLguoHgu4Lguq7guofguofgurLgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IuC6l+C7iOC6suC6meC7geC6leC7ieC6oeC6ruC6ueC6muC7geC6muC6muC6m+C6u+C6lOC6peC6seC6reC6geC6nOC6tOC6lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq3gu4HguqXgu4nguqcuIOC6q+C6vOC6seC6h+C6iOC6suC6geC7geC6leC7ieC6oeC6nOC6tOC6lOC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgu4Dgupfgurfgu4jguq0sIOC6l+C7iOC6suC6meC6iOC6sOC6luC6t+C6geC6luC6suC6oeC7g+C6q+C7ieC6m+C6u+C6lOC6peC6seC6reC6geC7geC6l+C6seC6muC7gOC6peC6seC6lOC6guC6reC6h+C6l+C7iOC6suC6mSDgupTgu4nguqfguo3guoHgurLgupngu4DguoLgurvgu4ngurLguqrgurngu4jguqXgurDguprgurvguprgu4LgupTguo3gu4Pguorgu4nguq3gurXgu4DguqHguqfguoLguq3guofgupfgu4jgurLgupkuXG5cbiDguoHgurDguqXgurjgupngurLguqXguq3guofgu4Pgu53gu4jguq3gurXguoHguoTgurHgu4nguofgu4Pgupnguq3gurXguoEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Lqn4Lq04LqZ4Lqy4LqX4Lq1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i4LqX4LuI4Lqy4LqZ4LuB4LqV4LuJ4Lqh4Lqu4Lq54Lqa4LuB4Lqa4Lqa4Lqb4Lq74LqU4Lql4Lqx4Lqt4LqB4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4Lqc4Lq04LqUIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6reC7geC6peC7ieC6py4g4Lqr4Lq84Lqx4LqH4LqI4Lqy4LqB4LqE4Lqn4Lqy4Lqh4Lqe4Lqw4LqN4Lqy4LqN4Lqy4Lqh4Lqt4Lq14LqBIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC7gOC6l+C6t+C7iOC6rSDgupfgu4jgurLgupnguojgurDgupbgurfguoHgupbgurLguqHgu4Pguqvgu4ngupvgurvgupTguqXgurHguq3guoHgu4LgupfguqXgurDguqrgurHguprguoLguq3guofgupfgu4jgurLgupngupTgu4nguqfguo3guprgurHgupnguorgurXguq3gurXgu4DguqHguqcuXG5cbiDguqXguq3guofgu4Pgu53gu4jguq3gurXguoHguoTgurHgu4nguofgu4PgupkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Lqn4Lq04LqZ4Lqy4LqX4Lq1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IuC6peC6tuC6muC6reC6reC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IuC6m+C6uOC7iOC6oeC7gOC6nuC6h+C6geC7iOC6reC6meC7nOC7ieC6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IuC6m+C6uOC7iOC6oeC7gOC6nuC6h+C6leC7jeC7iOC7hOC6myI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiLgupvgurjgu4jguqHguqLgurjgupTguorgurvgu4jguqfguoTgurLguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjI5MjQ2Mjg4NjM3NDExNTA5NTYiPiLgupvgurjgu4jguqHguqvgurzgurTgu4ngupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjMwODQxNzkzMjQ4MTA1NzU3ODciPiLgupvgurjgu4jguqHguqLgurjgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jYXJyaWVyX2RlZmF1bHQiIG1zZ2lkPSI4NzAwNjUwNDAzMDU0MDQyMTUzIj4i4Lqa4LuN4LuI4Lqh4Lq14Lqa4LuN4Lql4Lq04LqB4Lqy4LqZIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWx0L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1sdC9zdHJpbmdzLnhtbAppbmRleCAyOWY2MmE3Li5mZjMwMzRhIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWx0L3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtbHQvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IsSudmVza2l0ZSBQSU4ga29kxIUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiLErnZlc2tpdGUgUFVLIGlyIG5hdWrEhSBQSU4ga29kdXMiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IlBVSyBrb2RhcyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iTmF1amFzIFBJTiBrb2RhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+IsSudmVza2l0ZSBTSU0ga29ydGVsxJdzIFBVSyBrb2TEhSBpciBuYXVqxIUgUElOIGtvZMSFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJTSU0ga29ydGVsxJdzIFBVSyBrb2RhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iTmF1amFzIFNJTSBrb3J0ZWzEl3MgUElOIGtvZGFzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4iUGFsaWVza2l0ZSwga2FkIMSvdmVzLiBzbGFwdGHFvi4iPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiJKZWkgbm9yaXRlIGF0cmFraW50aSwgxK92ZXNraXRlIHNsYXB0YcW+b2TEryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IkplaSBub3JpdGUgYXRyYWtpbnRpLCDEr3Zlc2tpdGUgUElOIGtvZMSFIjwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IlByaXN0YWJkeW1vIG15Z3R1a2FzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJQYWxlaWRpbW8gbXlndHVrYXMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+IlN1c3RhYmR5bW8gbXlndHVrYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4iUGF0aW5rYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+Ik5lcGF0aW5rYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IsWgaXJkaXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiJKZWkgbm9yaXRlIHTEmXN0aSwgYXRyYWtpbmtpdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJQYWxlaWRpbWFzIGF0xaFhdWt0YXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4iUGFsZWlza2l0ZSDigJ48eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPuKAnCwga2FkIGrEryBpxaF0cmludHVtxJd0ZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4i4oCePHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz7igJwgbmVidXMgacWhdHJpbnRhcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IsSudmVza2l0ZSBwYWdlaWRhdWphbcSFIFBJTiBrb2TEhSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiJQYXR2aXJ0aW5raXRlIHBhZ2VpZGF1amFtxIUgUElOIGtvZMSFIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJBdHJha2luYW1hIFNJTSBrb3J0ZWzEl+KApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+Ik5ldGlua2FtYXMgUElOIGtvZGFzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IsSudmVza2l0ZSBQSU4ga29kxIUsIHN1ZGFyeXTEhSBpxaEgNOKAkzggc2thacSNacWzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyBrb2RhcyB0dXLEl3TFsyBixat0aSBtYcW+aWF1c2lhaSA4IHNrYWl0bWVuxbMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iUGFrYXJ0b3RpbmFpIMSvdmVza2l0ZSB0aW5rYW3EhSBQVUsga29kxIUuIFBha2FydG90aW5haSBiYW5kYW50IFNJTSBidXMgbmVsZWlkxb5pYW1hIHZpc2FtIGxhaWt1aS4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+Ik5ldGlua2FtYWkgbnVwaWXFocSXdGUgYXRyYWtpbmltbyBwaWXFoWluxK8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gay4gUG8gZGFyIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IG5lc8SXa20uIGJhbmQuIGLFq3NpdGUgcGFwcmHFoXl0aSBhdHJha2ludGkgdGVsZWZvbsSFIG5hdWRvZGFtaSDigJ5Hb29nbGXigJwgcHJpc2lqdW5naW1vIGR1b21lbmlzLlxuXG4gQmFuZHlraXRlIGRhciBrYXJ0xIUgcG8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2VrLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAkyAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IlBhxaFhbGludGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+Ik5ldGlua2FtYXMgU0lNIGtvcnRlbMSXcyBQSU4ga29kYXMuIFJlaWvEl3Mgc3VzaXNpZWt0aSBzdSBvcGVyYXRvcml1bWksIGthZCBhdHJha2ludMWzIMSvcmVuZ2luxK8uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiJOZXRpbmthbWFzIFNJTSBrb3J0ZWzEl3MgUElOIGtvZGFzLiBKdW1zIGxpa28gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGJhbmQuIFBhc2t1aSByZWlrxJdzIHN1c2lzaWVrdGkgc3Ugb3BlcmF0b3JpdW1pLCBrYWQgamlzIGF0cmFraW50xbMgxK9yZW5naW7Ery4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJOZXRpbmthbWFzIFNJTSBrb3J0ZWzEl3MgUElOIGtvZGFzLCBsaWtvIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBiYW5kLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iTmViZWdhbGltYSBuYXVkb3RpIFNJTSBrb3J0ZWzEl3MuIFN1c2lzaWVraXRlIHN1IG9wZXJhdG9yaXVtaS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+Ik5ldGlua2FtYXMgU0lNIGtvcnRlbMSXcyBQVUsga29kYXMuIExpa28gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGJhbmQuIFBhc2t1aSB2aXNpxaFrYWkgbmViZWdhbMSXc2l0ZSBuYXVkb3RpIFNJTSBrb3J0ZWzEl3MuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4iTmV0aW5rYW1hcyBTSU0ga29ydGVsxJdzIFBVSyBrb2Rhcy4gTGlrbyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gYmFuZC4gUGFza3VpIHZpc2nFoWthaSBuZWJlZ2FsxJdzaXRlIG5hdWRvdGkgU0lNIGtvcnRlbMSXcy4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+Ik5lcGF2eWtvIGF0bGlrdGkgU0lNIGtvcnRlbMSXcyBQSU4ga29kbyBvcGVyYWNpam9zLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4iTmVwYXZ5a28gYXRsaWt0aSBTSU0ga29ydGVsxJdzIFBVSyBrb2RvIG9wZXJhY2lqb3MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+IktvZGFzIHByaWltdGFzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IkFua3N0ZXNuaW8gdGFrZWxpbyBteWd0dWthcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IktpdG8gdGFrZWxpbyBteWd0dWthcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiJQcmlzdGFiZHltbyBteWd0dWthcyI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtbHYvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLWx2L3N0cmluZ3MueG1sCmluZGV4IGFhMTM5MzQuLjUzOWY5MWQgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtbHYvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1sdi9zdHJpbmdzLnhtbApAQCAtMjEsOSArMjEsOSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iSWV2YWRpZXQgUElOwqBrb2R1LiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IklldmFkaWV0IFBVS8Kga29kdSB1biBqYXVudSBQSU7CoGtvZHUuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUvCoGtvZHMiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+IkphdW5zIFBJTsKga29kcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+IklldmFkaWV0IFNJTcKga2FydGVzIFBVS8Kga29kdSB1biBqYXVudSBQSU7CoGtvZHUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJTSU3CoGthcnRlcyBQVUvCoGtvZHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+IkphdW5zIFNJTcKga2FydGVzIFBJTsKga29kcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IlBpZXNrYXJpZXRpZXMsIGxhaSBpZXZhZMSrdHUgcGFyb2xpIjwvZm9udD4iLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iSWV2YWRpZXQgcGFyb2xpLCBsYWkgYXRibG/Et8STdHUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iTGFpIGF0YmxvxLfEk3R1LCBpZXZhZGlldCBQSU4uIjwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IlDEgXJ0cmF1a8WhYW5hcyBwb2dhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJBdHNrYcWGb8WhYW5hcyBwb2dhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJBcHR1csSTxaFhbmFzIHBvZ2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4iUGF0xKtrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4iTmVwYXTEq2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiJTaXJkcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IkF0YmxvxLfEk2ppZXQsIGxhaSB0dXJwaW7EgXR1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IlBhbGFpxaFhbmEgYXRjZWx0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJWZWxjaWV0IGxvZ3LEq2t1IDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+LCBsYWkgdG8gaXpkesSTc3R1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiJMb2dyxKtrcyA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiBuZXRpa3MgaXpkesSTc3RzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgpAQCAtMTA1LDcgKzExMiw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4iSWV2YWRpZXQgdsSTbGFtb8KgUElOwqBrb2R1LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiJBcHN0aXByaW5pZXQgdsSTbGFtb8KgUElOLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iTm90aWVrIFNJTcKga2FydGVzIGF0YmxvxLfEk8WhYW5hLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iUElOwqBrb2RzIG5hdiBwYXJlaXpzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IklldmFkaWV0IFBJTiwga2FzIHNhc3TEgXYgbm8gNMKgbMSrZHogOMKgY2lwYXJpZW0uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iUFVLwqBrb2RhbSBpciBqxIFixat0IHZpc21heiA4wqBjaXBhcnVzIGdhcmFtLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IkF0a8SBcnRvdGkgaWV2YWRpZXQgcGFyZWl6byBQVUvCoGtvZHUuIEphIHZhaXLEgWthcyByZWl6ZXMgaWV2YWTEq3NpZXQgdG8gbmVwYXJlaXppLCBTSU3CoGthcnRlIHRpa3MgbmVhdGdyaWV6ZW5pc2tpIGF0c3DEk2pvdGEuIjwvc3RyaW5nPgpAQCAtMTI5LDYgKzEzNSwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiJKxatzIG5lcGFyZWl6aSBub3LEgWTEq2rEgXQgYXRibG/Et8STxaFhbmFzIGtvbWJpbsSBY2lqdSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPsKgcmVpemVzLiBQxJNjIHbEk2wgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz7CoG5ldmVpa3NtxKtnaWVtIG3Ek8SjaW7EgWp1bWllbSB0xIFscnVuaXMgYsWrcyBqxIFhdGJsb8S3xJMsIGl6bWFudG9qb3QgZS1wYXN0YSBrb250dS5cblxuTcSTxKNpbmlldCB2xJNscmVpeiBwxJNjIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+wqBzZWt1bmTEk20uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIgwqDigJQgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJOb8WGZW10Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiJOZXBhcmVpenMgU0lNwqBrYXJ0ZXMgUElOwqBrb2RzLsKgTGFpIGF0YmxvxLfEk3R1IGllcsSrY2ksIHNhemluaWV0aWVzIGFyIG1vYmlsbyBzYWthcnUgb3BlcmF0b3J1LiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iTmVwYXJlaXpzIFNJTcKga2FydGVzIFBJTsKga29kcy4gVmFyYXQgbcSTxKNpbsSBdCB2xJNsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPsKgcmVpemkuIEvEvMWrZGFzIGdhZMSranVtxIEgYsWrcyBqxIFzYXppbsSBcyBhciBtb2JpbG8gc2FrYXJ1IG9wZXJhdG9ydSwgbGFpIHRhcyBhdGJsb8S3xJN0dSBqxatzdSBpZXLEq2NpLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+Ik5lcGFyZWl6cyBTSU3CoGthcnRlcyBQSU7CoGtvZHMuIFZhcmF0IG3Ek8SjaW7EgXQgdsSTbCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz7CoHJlaXppKC1lcykuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJTSU3CoGthcnRlIG5hdiBpem1hbnRvamFtYS4gU2F6aW5pZXRpZXMgYXIgbW9iaWxvIHNha2FydSBvcGVyYXRvcnUuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiJOZXBhcmVpenMgU0lNwqBrYXJ0ZXMgUFVLwqBrb2RzLiBWYXJhdCBtxJPEo2luxIF0IHbEk2wgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+wqByZWl6aS4gS8S8xatkYXMgZ2FkxKtqdW3EgSBTSU3CoGthcnRlIGvEvMWrcyBuZWl6bWFudG9qYW1hLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+Ik5lcGFyZWl6cyBTSU3CoGthcnRlcyBQVUvCoGtvZHMuIFZhcmF0IG3Ek8SjaW7EgXQgdsSTbCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz7CoHJlaXppKC1lcykuIEvEvMWrZGFzIGdhZMSranVtxIEgU0lNwqBrYXJ0ZSBrxLzFq3MgbmVpem1hbnRvamFtYS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IlNJTcKga2FydGVzIFBJTsKga29kYSBpZXZhZMSrxaFhbmEgbmVpemRldsSBcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IlNJTcKga2FydGVzIFBVS8Kga29kYSBpZXZhZMSrxaFhbmEgbmVpemRldsSBcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iS29kcyBpciBwaWXFhmVtdHMhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iSWVwcmlla8WhxJNqxIEgaWVyYWtzdGEgcG9nYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+Ik7EgWthbcSBIGllcmFrc3RhIHBvZ2EiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4iUMSBcnRyYXVrxaFhbmFzIHBvZ2EiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtbW4tck1OL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxYjgzM2UKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDE1NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJQSU4g0LrQvtC00YvQsyDQsdC40YfQvdGNINKv0q8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiLQodCY0Jwg0J/SrtCaLdCzINCx0LjRh9GN0Y3QtCDRiNC40L3RjSDQn9CY0J0g0LrQvtC0INC+0YDRg9GD0LvQvdCwINGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+ItCh0JjQnCDQn9Ku0Jog0LrQvtC0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiLQqNC40L3RjSDQodCY0Jwg0J/QmNCdINC60L7QtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+ItCd0YPRg9GGINKv0LMg0LHQuNGH0LjRhSDQsdC+0Lsg0YXSr9GA0L3RjSDSr9KvIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4i0KLQsNC50LvQsNGFINC90YPRg9GGINKv0LPQuNC50LMg0LHQuNGH0L3RjSDSr9KvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i0KLQsNC50LvQsNGFIFBJTi3QsyDQvtGA0YPRg9C70L3QsCDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIyNDIyMjI1NTkxMDA2MTM0OTM2Ij4i0JHRg9GA0YPRgyBQSU4g0LrQvtC0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xhYmVsX3RleHQiIG1zZ2lkPSI4NjE3OTY0NjEwMjgyOTg0MjQiPiLQotCw0LnQu9Cw0YUg0LHQvtC7INCm0Y3RgdC40LnQsyDQtNCw0YDQsNCw0LQgMC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWNldW5sb2NrX211bHRpcGxlX2ZhaWx1cmVzIiBtc2dpZD0iNzU0MTM3NTgzMDIyNzkyNDI5Ij4i0J3Sr9Kv0YDRjdGN0YAg0YLSr9Cz0LbRjdGNINGC0LDQudC70LDRhSDQvtGA0L7Qu9C00LvQvtCz0YvQvSDRgtC+0L4g0LTRjdGN0LQg0YXRjdC80LbRjdGN0L3RjdGN0YEg0YXRjdGC0Y3RgNGB0Y3QvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NoYXJnZWQiIG1zZ2lkPSIzMjcyMjIzOTA2MDczNDkyNDU0Ij4i0KbRjdC90Y3Qs9C70Y3Qs9C00Y3QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3BsdWdnZWRfaW4iIG1zZ2lkPSI4MTE3NTcyMDAwNjM5OTk4Mzg4Ij4i0KbRjdC90Y3Qs9C70Y3QtiDQsdCw0LnQvdCwLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbG93X2JhdHRlcnkiIG1zZ2lkPSI4MTQzODA4MDE4NzE5MTczODU5Ij4i0KbRjdC90Y3Qs9C70Y3Qs9GH0Y3RjSDRhdC+0LvQsdC+0L3QviDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSIxMzMyMjg4MjY4NjAwMzI5ODQxIj4i0KLQsNC50LvRhSDQsdC+0Lsg0YbRjdGB0LjQudCzINC00LDRgNC90LAg0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9uZXR3b3JrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iOTE2OTcxNzc3OTA1ODAzNzE2OCI+ItCh0q/Qu9C20Y3RjSDRgtKv0LPQttC40LPQtNGB0Y3QvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0OTQ5ODA1NjEzMDQyMTE5MzEiPiJTSU0g0LrQsNGA0YIg0LHQsNC50YXQs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNDQ1ODQ5MDA1OTA5MjYwMDM5Ij4i0KLQsNCx0LvQtdGCIFNJTSDQutCw0YDRgtCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ4MTExMDM5NTUwODYzNzY0MyI+ItCj0YLRgdCw0L3QtCBTSU0g0LrQsNGA0YIg0LHQsNC50YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTIxMDg5MTUwOTk5NTk0MjI1MCI+IlNJTSDQutCw0YDRgtGL0LMg0L7RgNGD0YPQu9C90LAg0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjU5Njg5ODU0ODk0NjM4NzAzNTgiPiJTSU0g0LrQsNGA0YIg0LHQsNC50YXQs9Kv0Lkg0Y3RgdCy0Y3QuyDRg9C90YjQuNGFINCx0L7Qu9C+0LzQttCz0q/QuS4gU0lNINC60LDRgNGCINC+0YDRg9GD0LvQvdCwINGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iODM0MDgxMzk4OTU4NjYyMjM1NiI+ItCQ0YjQuNCz0LvQsNC2INCx0L7Qu9C+0YXQs9Kv0LkgU0lNINC60LDRgNGCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTg5Mjk0MDkwOTY5OTcyMzU0NCI+ItCi0LDQvdGLIFNJTSDQutCw0YDRgiDQsdKv0YDQvNOp0YHTqdC9INC40LTRjdCy0YXQs9Kv0Lkg0LHQvtC70L7Qsi5cbiDTqNOp0YAgU0lNINC60LDRgNGCINCw0LLQsNGFINCx0L7QuyDTqdOp0YDQuNC50L0g0YPRgtCw0YHQs9Kv0Lkg0q/QudC70YfQuNC70LPRjdGN0L3QuNC5INC90LjQudC70q/Sr9C70Y3Qs9GH0YLRjdC5INGF0L7Qu9Cx0L7Qs9C00L7QvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+IlNJTSDQutCw0YDRgiDRgtKv0LPQttC40LPQtNGB0Y3QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMzc0NzIzMjQ2NzQ3MTgwMTYzMyI+IlNJTSDQutCw0YDRgtC90YsgUFVLLdGC0q/Qs9C20LjQs9C00YHRjdC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3OTc1MjIxODA1MDMzNjE0NDI2Ij4iU0lNINC60LDRgNGC0L3RiyDRgtKv0LPQttGN0Y3QsyDQs9Cw0YDQs9Cw0LYg0LHQsNC50L3QsOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4gJTMkZC4gLdC9ICUyJGQg0LLQuNC00LbQtdGCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9hZGRfd2lkZ2V0IiBtc2dpZD0iODI3MzI3NzA1ODcyNDkyNDY1NCI+ItCS0LjQtNC20LXRgiDQvdGN0LzRjdGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i0KXQvtC+0YHQvtC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLQotCw0LnQu9Cw0YUg0YXRjdGB0Y3QsyDQvdGN0Y3Qs9C00YHRjdC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfY29sbGFwc2VkIiBtc2dpZD0iNjM2Njk5MjA2NjkzNjA3NjM5NiI+ItCi0LDQudC70LDRhSDRhdGN0YHRjdCzINGF0LDQsNCz0LTRgdCw0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXQiIG1zZ2lkPSI2NTI3MTMxMDM5NzQxODA4MjQwIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g0LLQuNC00LbQtdGCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdXNlcl9zZWxlY3RvciIgbXNnaWQ9IjEyMjY3OTgzNzA5MTM2OTg4OTYiPiLQpdGN0YDRjdCz0LvRjdCz0Ycg0YHQvtC90LPQvtGHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zdGF0dXMiIG1zZ2lkPSI4MDA4MjY0NjAzOTM1OTMwNjExIj4i0KHRgtCw0YLRg9GBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4i0JrQsNC80LXRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWdhdXJkX2FjY2Vzc2liaWxpdHlfbWVkaWFfY29udHJvbHMiIG1zZ2lkPSIyNjIyMDk2NTQyOTIxNjE4MDYiPiLQnNC10LTQuNCwINC60L7QvdGC0YDQvtC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9zdGFydCIgbXNnaWQ9Ijg3MzY4NTM2MTU1ODg4MjgxOTciPiLQktC40LTQttC10YIg0LTQsNGF0LjQvSDRjdGA0Y3QvNCx0Y3Qu9C2INGN0YXQu9GN0LIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9lbmQiIG1zZ2lkPSI3MTcwMTkwOTUwODcwNDY4MzIwIj4i0JLQuNC00LbQtdGC0LjQudCzINC00LDRhdC40L0g0Y3RgNGN0LzQsdGN0LvQtiDQtNGD0YPRgdCw0LIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZGVsZXRlZCIgbXNnaWQ9IjQ0MjYyMDQyNjM5MjkyMjQ0MzQiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDQstC40LTQttC10YIg0YPRgdGC0YHQsNC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZXhwYW5kX2xvY2tfYXJlYSIgbXNnaWQ9IjUxOTg1OTcyMDkzNDE3ODAyNCI+ItCi0q/Qs9C20Y3RjdCz0q/QuSDRhdGN0YHQs9C40LnQsyDTqdGA0LPTqdGB0LPTqdGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfdW5sb2NrIiBtc2dpZD0iMjk1OTkyODQ3ODc2NDY5NzI1NCI+ItCi0LDQudC70LDRhSDQs9GD0LvRgdGD0YPQu9Cw0LvRgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fdW5sb2NrIiBtc2dpZD0iMTQ5MDg0MDcwNjA3NTI0NjYxMiI+ItCi0LDQudC70LDRhSDRhdGN0Y0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9mYWNlX3VubG9jayIgbXNnaWQ9IjQ4MTcyODI1NDMzNTE3MTg1MzUiPiLQndKv0q/RgNGN0Y3RgCDRgtCw0LnQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4i0KLQsNC50LvQsNGFINC/0LjQvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLQotCw0LnQu9Cw0YUg0L3Rg9GD0YYg0q/Qsy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fYXJlYSIgbXNnaWQ9Ijc2Nzk4OTEzMjQ1MDk1OTc5MDQiPiLQpdGN0Y3QvdC40Lkg0YXRjdGB0Y3Qsy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4i0JPRg9C70YHRg9GD0LvQsNGFINGF0Y3RgdGN0LMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjEzMzcyODY1MzgzMTg1NDM1NTUiPiLTqNC80L3TqdGFINCx0LjRh9C70Y3QsyDRgtC+0LLRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI3MDczOTI4MzAwNDQ0OTA5MzIwIj4i0JTQsNGA0LDQsNCz0LjQudC9INCx0LjRh9C70Y3QsyDRgtC+0LLRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+ItCi0q/RgCDQt9C+0LPRgdC+0L7RhSDRgtC+0LLRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4i0KLQvtCz0LvRg9GD0LvQsNGFINGC0L7QstGHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiLQl9C+0LPRgdC+0L7RhSDRgtC+0LLRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiLQodCw0LnQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+ItCe0L3RhtCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+ItCX0q/RgNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4i0q7RgNCz0Y3Qu9C20LvSr9Kv0LvRjdGF0LjQudC9INGC0YPQu9C0INGC0q/Qs9C20Y3RjdCzINGC0LDQudC70L3QsCDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4i0K3RhdC70q/Sr9C70Y3RhdC40LnQsyDRhtGD0YbQsNC70YHQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+ItCj0YHRgtCz0LDRhdGL0L0g0YLRg9C70LQgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4t0LMg0YLQsNCy0LjQvdCwINGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+INGD0YHRgtCw0YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4i0JDQkdCSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9hbHQiIG1zZ2lkPSI0ODU2ODY4ODIwMDQwMDUxOTM5Ij4iQWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfY2FuY2VsIiBtc2dpZD0iMTIwMzk4NDAxNzI0NTc4MzI0NCI+ItCm0YPRhtC70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiLQo9GB0YLQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kb25lIiBtc2dpZD0iMTk5MjU3MTExODQ2NjY3OTc3NSI+ItCU0YPRg9GB0LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfbW9kZV9jaGFuZ2UiIG1zZ2lkPSI0NTQ3Mzg3NzQxOTA2NTM3NTE5Ij4i0JPQvtGA0LjQvCDTqdOp0YDRh9C706nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+ItCo0LjRhNGCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4i0J7RgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrIiBtc2dpZD0iMjIyODUyNDkwMDQzOTgwMTQ1MyI+ItCi0LDQudC70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9jYW1lcmEiIG1zZ2lkPSI5NjkwNzE5OTc1NTI0ODY4MTQiPiLQmtCw0LzQtdGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NpbGVudCIgbXNnaWQ9Ijg5MzU1MTI4Nzc0NjUyMjE4MiI+ItCn0LjQvNGN0Y3Qs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4i0JTRg9GD0L3Rg9GD0LQg0LjQtNGN0LLRhdGC0Y3QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zZWFyY2giIG1zZ2lkPSIzMDkxNTg3MjQ5Nzc2MDMzMTM5Ij4i0KXQsNC50YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LdCzINCz0YPQu9GB0YPRg9C70LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fZG93biIgbXNnaWQ9IjUwODc3Mzk3Mjg2MzkwMTQ1OTUiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g0YXQuNC50YUg0LHQvtC7INC00L7QvtGIINCz0YPQu9GB0YPRg9C70LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fbGVmdCIgbXNnaWQ9IjcyMDc0Nzg3MTk4MDU1NjIxNjUiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g0YXQuNC50YUg0LfSr9Kv0L3Qu9Kv0q8g0LPRg9C70YHRg9GD0LvQsNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g0YXQuNC50YUg0LHQvtC7INCx0LDRgNGD0YPQvdC70YPRgyDQs9GD0LvRgdGD0YPQu9Cw0YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlcl9zd2l0Y2hlZCIgbXNnaWQ9IjM3NjgwMDY3ODMxNjY5ODQ0MTAiPiLQntC00L7QvtCz0LjQudC9INGF0Y3RgNGN0LPQu9GN0LPRhyA8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW1lcmdlbmN5X2NhbGxfbGFiZWwiIG1zZ2lkPSI2ODQ5NDYxOTI1MjM4MzA1MzEiPiLQr9Cw0YDQsNC70YLQsNC5INC00YPRg9C00LvQsNCz0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLQpdGN0Y3QsyDQvNCw0YDRgtGB0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BhdHRlcm4iIG1zZ2lkPSIxODUwODA2MDcwODAxMzU4ODMwIj4i0JHRg9GA0YPRgyDRhdGN0Y0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiLQndGD0YPRhiDSr9CzINCx0YPRgNGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4iUElOINCx0YPRgNGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfY291bnRkb3duIiBtc2dpZD0iNjM1ODExMDIyMTYwMzI5NzU0OCI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDRgdC10LrRg9C90LTRi9C9INC00LDRgNCw0LAg0LTQsNGF0LjQvSDQvtGA0L7Qu9C00L7QvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiLQpdGN0Y3QsyDQt9GD0YDQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4iU0lNIFBJTiDQvtGA0YPRg9C70L3QsCDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiJQSU4g0L7RgNGD0YPQu9C90LAg0YPRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU3NTM2NDY1NTYxODY5MzY4MTkiPiLQndGD0YPRhiDSr9Cz0Y3RjSDQvtGA0YPRg9C70L3QsCDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4iU0lNINC40LTRjdCy0YXQs9Kv0Lkg0LHQsNC50L3QsC4g0q7RgNCz0Y3Qu9C20LvSr9Kv0LvRjdGFINCx0L7QuyBQVUsg0LrQvtC00YvQsyDQvtGA0YPRg9C70L3QsCDRg9GDLiDQlNGN0LvQs9GN0YDRjdC90LPSr9C5INC80Y3QtNGN0Y3Qu9C70LjQudCzINC+0L/QtdGA0LDRgtC+0YDQvtC+0YEg0LDRgdGD0YPQvdCwINGD0YPRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiLQpdKv0YHRgdGN0L0gUElOINC60L7QtNC+0L4g0L7RgNGD0YPQu9C90LAg0YPRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLQpdKv0YHRgdGN0L0gUElOINC60L7QtNC+0L4g0LTQsNGF0LjQvSDQvtGA0YPRg9C70L3QsCDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJTSU0g0LrQsNGA0YLQvdGLINGC0q/Qs9C20Y3RjdCzINCz0LDRgNCz0LDQtiDQsdCw0LnQvdCw4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iNC04INGC0L7QvtC90L7QvtGBINCx0q/RgtGN0YUgUElOLdCzINCx0LjRh9C90Y0g0q/Sry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJQVUsg0LrQvtC0IDgt0YEg0YbTqdOp0L3Qs9Kv0Lkg0YLQvtC+0L3QvtC+0YEg0LHSr9GC0L3RjS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLQl9Op0LIgUFVLINC60L7QtNGL0LMg0LTQsNGF0LjQvSDQvtGA0YPRg9C70L3QsCDRg9GDLiDQlNCw0LLRgtCw0L0g0L7RgNC+0LvQtNCy0L7QuyBTSU0g0L3RjCDQsdKv0YDQvNOp0YHTqdC9INC40LTRjdCy0YXQs9Kv0Lkg0LHQvtC70LPQvtC90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9jb25maXJtX3Bpbl9oaW50IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzAwMzQ2OTI2MTQ2NDU5MzUxNiI+IlBJTiDQutC+0LTRg9GD0LQg0YLQsNCw0YDQsNGF0LPSr9C5INCx0LDQudC90LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl90b29fbWFueV9hdHRlbXB0cyIgbXNnaWQ9IjY0ODY4NDIwOTQwMDU2OTg0NzUiPiLQpdGN0Y0g0L7RgNGD0YPQu9Cw0YUg0L7RgNC+0LvQtNC70L7Qs9C+INGF0Y3RgiDQvtC70L7QvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLQotKv0LPQttGN0Y3QsyDRgtCw0LnQu9Cw0YUg0LHQvtC7IEdvb2dsZSDQsNC60LDRg9C90YLQsNCw0YDQsNCwINC90Y3QstGC0Y3RgNC90Y0g0q/Sry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+ItCl0Y3RgNGN0LPQu9GN0LPRh9C40LnQvSDQvdGN0YAgKNC40LzRjdC50LspIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjkwNTcyODkxMDM4MjcyOTg1NDkiPiLQndGD0YPRhiDSr9CzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fc3VibWl0X2J1dHRvbiIgbXNnaWQ9IjUzNTU5MDQ1ODI2NzQwNTQ3MDIiPiLQndGN0LLRgtGA0Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4i0KXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC90Y3RgCDRjdGB0LLRjdC7INC90YPRg9GGINKv0LMg0LHRg9GA0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i0KXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC90Y3RgCDQvdGD0YPRhiDSr9Cz0Y3RjSDQvNCw0YDRgtGB0LDQvSDRg9GDP1xuIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iLdC0INC30L7Rh9C40LvQvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSIxMDUyNjg1MTk3NzEwMjUyMzk1Ij4i0JDQutCw0YPQvdGCINGI0LDQu9Cz0LDQtiDQsdCw0LnQvdCw4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiLQotCwIFBJTiDQutC+0LTQvtC+IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0LHQuNGH0LjQsi4gXG5cbjx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INGB0LXQutGD0L3QtNGL0L0g0LTQsNGA0LDQsCDQtNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3ODEzNzEzMzg5NDIyMjI2NTMxIj4i0KLQsCBQSU4g0LrQvtC00L7QviA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINCx0LjRh9C40LIuIFxuXG48eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDRgdC10LrRg9C90LTRi9C9INC00LDRgNCw0LAg0LTQsNGF0LjQvSDQvtGA0L7Qu9C00L7QvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+ItCi0LAg0YLQsNC50LvQsNGFINGF0Y3RjdCzIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0LfRg9GA0LvQsNCwLiBcblxuPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g0YHQtdC60YPQvdC00YvQvSDQtNCw0YDQsNCwINC00LDRhdC40L0g0L7RgNC+0LvQtNC+0L3QviDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+ItCi0LAg0YLQsNCx0LvQtdGC0YvQsyDRgtCw0LnQu9Cw0YUg0LPRjdC2IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0L7RgNC+0LvQtNC70L7Qvi4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g0YPQtNCw0LAg0LTQsNGF0LjQvSDQsdGD0YDRg9GDINC+0YDQvtC70LTQstC+0Lsg0YLQsNCx0LvQtdGCINKv0LnQu9C00LLRjdGA0LjQudC9INKv0L3QtNGB0Y3QvSDRg9GC0LPQsNCw0YDQsNCwINGC0L7RhdC40YDRg9GD0LvQsNCz0LTQsNGFINCx0LAg0YXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC00LDRgtCwINCx0q/RhdGN0LvQtNGN0Y0g0YPRgdGC0LDQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQwNTEwMTU5NDMwMzgxOTk5MTAiPiLQotCwINGD0YLRgdGL0LMg0YLQsNC50LvQsNGFINCz0Y3QtiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINC+0YDQvtC70LTQu9C+0L4uIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINC00LDRhdC40L0g0LHRg9GA0YPRgyDQvtGA0L7Qu9C00LLQvtC7INGD0YLQsNGBINKv0LnQu9C00LLRjdGA0LjQudC9INKv0L3QtNGB0Y3QvSDRg9GC0LPQsNCw0YDQsNCwINGC0L7RhdC40YDRg9GD0LvQsNCz0LTQsNGFINCx0LAg0YXRjdGA0Y3Qs9C70Y3Qs9GH0LjQudC9INC00LDRgtCwINCx0q/RhdGN0LvQtNGN0Y0g0YPRgdGC0LDQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDcyOTk2MjY5MTQ4NDgzNjM3Ij4i0KLQsCDRgtCw0LHQu9C10YLRi9CzINGC0LDQudC70LDRhSDQs9GN0LYgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0L7RgNC+0LvQtNC70L7Qvi4g0KLQsNCx0LvQtdGCINC+0LTQvtC+INKv0LnQu9C00LLRjdGA0LjQudC9INKv0L3QtNGB0Y3QvSDRg9GC0LPQsNCw0YDQsNCwINGC0L7RhdC40YDRg9GD0LvQsNCz0LTQsNGFINCx0L7Qu9C90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4i0KLQsCDRg9GC0YHRi9CzINGC0LDQudC70LDRhSDQs9GN0LYgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0L7RgNC+0LvQtNC70L7Qvi4g0KPRgtCw0YEg0L7QtNC+0L4g0q/QudC70LTQstGN0YDQuNC50L0g0q/QvdC00YHRjdC9INGD0YLQs9Cw0LDRgNCw0LAg0YLQvtGF0LjRgNGD0YPQu9Cw0LPQtNCw0YUg0LHQvtC70L3Qvi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4i0KLQsCDRgtCw0LnQu9Cw0YUg0YXRjdGN0LMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g0YPQtNCw0LAg0LHRg9GA0YPRgyDQt9GD0YDQu9Cw0LAuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINC00LDRhdC40L0g0LHRg9GA0YPRgyDQvtGA0YPRg9C70LHQsNC7LCDRgtCwINGC0LDQsdC70LXRgtCw0LAg0YLQsNC50LvQsNGF0YvQvSDRgtGD0LvQtCDQuNC80Y3QudC7INCw0LrQsNGD0L3RgiDRiNCw0LDRgNC00LvQsNCz0LDRgtCw0Lkg0LHQvtC70L3Qvi5cblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INGB0LXQutGD0L3QtNGL0L0g0LTQsNGA0LDQsCDQtNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+ItCi0LAg0YLQsNC50LvQsNGFINGF0Y3RjdCzIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0LfRg9GA0LvQsNCwLiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQtNCw0YXQuNC9INCx0YPRgNGD0YMg0L7RgNGD0YPQu9Cx0LDQuywg0YLQsCDRg9GC0YHQsNCwINGC0LDQudC70LDRhdGL0L0g0YLRg9C70LQg0LjQvNGN0LnQuyDQsNC60LDRg9C90YLQsNCwINCw0YjQuNCz0LvQsNGFINGI0LDQsNGA0LTQu9Cw0LPQsNGC0LDQuSDQsdC+0LvQvdC+LlxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g0YHQtdC60YPQvdC00YvQvSDQtNCw0YDQsNCwINC00LDRhdC40L0g0L7RgNC+0LvQtNC+0L3QviDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+ItCj0YHRgtCz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4i0KHQmNCcINCf0JjQnSDQutC+0LQg0LHRg9GA0YPRgywg0YLQsCDRgtOp0YXTqdOp0YDTqdC80LbQuNC50L0g0YLSr9Cz0LbRjdGN0LMg0YLQsNC50LvQsNGF0YvQvSDRgtGD0LvQtCDQvtC/0LXRgNCw0YLQvtGAINC60L7QvNC/0LDQvdC40YLQsNC5INGF0L7Qu9Cx0L7QviDQsdCw0YDQuNGFINGI0LDQsNGA0LTQu9Cw0LPQsNGC0LDQuS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+ItCh0JjQnCDQn9CY0J0g0LrQvtC0INCx0YPRgNGD0YMg0LHQsNC50L3QsCwg0YLQsNC90LQg0LzQvtCx0LDQudC7INC+0L/QtdGA0LDRgtC+0YAg0LrQvtC80L/QsNC90LjRgtCw0Lkg0YXQvtC70LHQvtCz0LTQvtGF0LPSr9C50LPRjdGN0YAg0YLTqdGF06nTqdGA06nQvNC20LjQudC9INGC0q/Qs9C20Y3RjdCzINGC0LDQudC70LDRhdCw0LQgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INC+0YDQvtC70LTQu9C+0LPQviDRhdC40LnRhSDQsdC+0LvQvtC80LYg0q/Qu9C00YHRjdC9INCx0LDQudC90LAuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4i0KHQmNCcINCf0JjQnSDQutC+0LQg0LHRg9GA0YPRgyDQsdCw0LnQvdCwLCDRgtCw0L3QtCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g0L7RgNC+0LvQtNC70L7Qs9C+INGF0LjQudGFINCx0L7Qu9C+0LzQtiDSr9C70LTQu9GN0Y0uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiLQodCY0Jwg0LDRiNC40LPQu9Cw0YUg0LHQvtC70L7QvNC20LPSr9C5LiDTqNOp0YDQuNC50L0g0L7Qv9C10YDQsNGC0L7RgCDQutC+0LzQv9Cw0L3QuNGC0LDQuSDRhdC+0LvQsdC+0L4g0LHQsNGA0LjQvdCwINGD0YMuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiLQodCY0Jwg0J/SrtCaINC60L7QtCDQsdGD0YDRg9GDLCDRgtCw0L3RiyDQodCY0Jwg0LHSr9GA0LzTqdGB06nQvSDQsNGI0LjQs9C70LDQu9GC0LPSr9C5INCx0L7Qu9C+0YXQvtC+0YEg06nQvNC906kgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INC+0YDQvtC70LTQu9C+0LPQviDRhdC40LnRhSDQsdC+0LvQvtC80LYg0q/Qu9C00LvRjdGNLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+ItCh0JjQnCDQn9Ku0Jog0LrQvtC0INCx0YPRgNGD0YMsINGC0LDQvdGLINCh0JjQnCDQsdKv0YDQvNOp0YHTqdC9INCw0YjQuNCz0LvQsNC70YLQs9Kv0Lkg0LHQvtC70L7RhdC+0L7RgSDTqdC80L3TqSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g0L7RgNC+0LvQtNC70L7Qs9C+INGF0LjQudGFINCx0L7Qu9C+0LzQtiDSr9C70LTQu9GN0Y0uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiLQodCY0Jwg0J/QmNCdINCw0LbQuNC70LvRg9GD0LvQsNGFINCw0LzQttC40LvRgtCz0q/QuSDQsdC+0LvQu9C+0L4hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiLQodCY0Jwg0J/SrtCaINCw0LbQuNC70LvRg9GD0LvQsNGFINCw0LzQttC40LvRgtCz0q/QuSDQsdC+0LvQu9C+0L4hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+ItCa0L7QtCDQt9Op0LLRiNOp06nRgNOp0LPQtNC706nTqSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiLTqNC80L3TqdGFINC00YPRgyDRgtC+0LLRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+ItCU0LDRgNCw0LDQs9C40LnQvSDQtNGD0YMg0YLQvtCy0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4i0KLSr9GAINC30L7Qs9GB0L7RhSDRgtC+0LLRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjkyNDYyODg2Mzc0MTE1MDk1NiI+ItCi0L7Qs9C70YPRg9C70LDRhSDRgtC+0LLRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMzA4NDE3OTMyNDgxMDU3NTc4NyI+ItCX0L7Qs9GB0L7QvtGFINGC0L7QstGHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2Fycmllcl9kZWZhdWx0IiBtc2dpZD0iODcwMDY1MDQwMzA1NDA0MjE1MyI+ItKu0LnQu9GH0LjQu9Cz0Y3RjSDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtbW4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhZTcyMjAKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMTM4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qIC8vZGV2aWNlL2FwcHMvY29tbW9uL2Fzc2V0cy9yZXMvYW55L3N0cmluZ3MueG1sCisqKgorKiogQ29weXJpZ2h0IDIwMDYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IlBJTiDQutC+0LTRi9CzINCx0LjRh9C90Y0g0q/SryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IlBVSy3QsyDQsdC40YfRjdGN0LQg0YjQuNC90Y0gUElOINC60L7QtCDQvtGA0YPRg9C70L3QsCDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsg0LrQvtC0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLQqNC40L3RjSBQSU4g0LrQvtC0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4i0J3Rg9GD0YYg0q/QsyDQsdC40YfQuNGFINCx0L7QuyDRhdKv0YDQvdGNINKv0q8iPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLQotCw0LnQu9Cw0YUg0L3Rg9GD0YYg0q/Qs9C40LnQsyDQsdC40YfQvdGNINKv0q8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLQotCw0LnQu9Cw0YUgUElOLdCzINC+0YDRg9GD0LvQvdCwINGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLQkdGD0YDRg9GDIFBJTiDQutC+0LQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+ItCi0LDQudC70LDRhSDQsdC+0Lsg0KbRjdGB0LjQudCzINC00LDRgNCw0LDQtCAwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLQndKv0q/RgNGN0Y3RgCDRgtKv0LPQttGN0Y0g0YLQsNC50LvQsNGFINC+0YDQvtC70LTQu9C+0LPRi9C9INGC0L7QviDQtNGN0Y3QtCDRhdGN0LzQttGN0Y3QvdGN0Y3RgSDRhdGN0YLRjdGA0YHRjdC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2hhcmdlZCIgbXNnaWQ9IjMyNzIyMjM5MDYwNzM0OTI0NTQiPiLQptGN0L3RjdCz0LvRjdCz0LTRjdCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGx1Z2dlZF9pbiIgbXNnaWQ9IjgxMTc1NzIwMDA2Mzk5OTgzODgiPiLQptGN0L3RjdCz0LvRjdC2INCx0LDQudC90LAsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sb3dfYmF0dGVyeSIgbXNnaWQ9IjgxNDM4MDgwMTg3MTkxNzM4NTkiPiLQptGN0L3RjdCz0LvRjdCz0YfRjdGNINGF0L7Qu9Cx0L7QvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfaW5zdHJ1Y3Rpb25zX3doZW5fcGF0dGVybl9kaXNhYmxlZCIgbXNnaWQ9IjEzMzIyODgyNjg2MDAzMjk4NDEiPiLQotCw0LnQu9GFINCx0L7QuyDRhtGN0YHQuNC50LMg0LTQsNGA0L3QsCDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX25ldHdvcmtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI5MTY5NzE3Nzc5MDU4MDM3MTY4Ij4i0KHSr9C70LbRjdGNINGC0q/Qs9C20LjQs9C00YHRjdC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjQ5NDk4MDU2MTMwNDIxMTkzMSI+IlNJTSDQutCw0YDRgiDQsdCw0LnRhdCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE0NDU4NDkwMDU5MDkyNjAwMzkiPiLQotCw0LHQu9C10YIgU0lNINC60LDRgNGC0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDgxMTEwMzk1NTA4NjM3NjQzIj4i0KPRgtGB0LDQvdC0IFNJTSDQutCw0YDRgiDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1MjEwODkxNTA5OTk1OTQyMjUwIj4iU0lNINC60LDRgNGC0YvQsyDQvtGA0YPRg9C70L3QsCDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iNTk2ODk4NTQ4OTQ2Mzg3MDM1OCI+IlNJTSDQutCw0YDRgiDQsdCw0LnRhdCz0q/QuSDRjdGB0LLRjdC7INGD0L3RiNC40YUg0LHQvtC70L7QvNC20LPSr9C5LiBTSU0g0LrQsNGA0YIg0L7RgNGD0YPQu9C90LAg0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI4MzQwODEzOTg5NTg2NjIyMzU2Ij4i0JDRiNC40LPQu9Cw0LYg0LHQvtC70L7RhdCz0q/QuSBTSU0g0LrQsNGA0YIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1ODkyOTQwOTA5Njk5NzIzNTQ0Ij4i0KLQsNC90YsgU0lNINC60LDRgNGCINCx0q/RgNC806nRgdOp0L0g0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQvtCyLlxuINOo06nRgCBTSU0g0LrQsNGA0YIg0LDQstCw0YUg0LHQvtC7INOp06nRgNC40LnQvSDRg9GC0LDRgdCz0q/QuSDSr9C50LvRh9C40LvQs9GN0Y3QvdC40Lkg0L3QuNC50LvSr9Kv0LvRjdCz0YfRgtGN0Lkg0YXQvtC70LHQvtCz0LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI2ODc1NzczNDEzMzA2MzgwOTAyIj4iU0lNINC60LDRgNGCINGC0q/Qs9C20LjQs9C00YHRjdC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9wdWtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSIzNzQ3MjMyNDY3NDcxODAxNjMzIj4iU0lNINC60LDRgNGC0L3RiyBQVUst0YLSr9Cz0LbQuNCz0LTRgdGN0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc5NzUyMjE4MDUwMzM2MTQ0MjYiPiJTSU0g0LrQsNGA0YLQvdGLINGC0q/Qs9C20Y3RjdCzINCz0LDRgNCz0LDQtiDQsdCw0LnQvdCw4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiIlMSRzLiAlMyRkLiAt0L0gJTIkZCDQstC40LTQttC10YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2FkZF93aWRnZXQiIG1zZ2lkPSI4MjczMjc3MDU4NzI0OTI0NjU0Ij4i0JLQuNC00LbQtdGCINC90Y3QvNGN0YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZW1wdHlfc2xvdCIgbXNnaWQ9IjEyODE1MDU3MDMzMDc5MzA3NTciPiLQpdC+0L7RgdC+0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2V4cGFuZGVkIiBtc2dpZD0iMjI3ODEwNjAyMjMxMTE3MDI5OSI+ItCi0LDQudC70LDRhSDRhdGN0YHRjdCzINC90Y3RjdCz0LTRgdGN0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9jb2xsYXBzZWQiIG1zZ2lkPSI2MzY2OTkyMDY2OTM2MDc2Mzk2Ij4i0KLQsNC50LvQsNGFINGF0Y3RgdGN0LMg0YXQsNCw0LPQtNGB0LDQvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldCIgbXNnaWQ9IjY1MjcxMzEwMzk3NDE4MDgyNDAiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDQstC40LTQttC10YIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91c2VyX3NlbGVjdG9yIiBtc2dpZD0iMTIyNjc5ODM3MDkxMzY5ODg5NiI+ItCl0Y3RgNGN0LPQu9GN0LPRhyDRgdC+0L3Qs9C+0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3N0YXR1cyIgbXNnaWQ9IjgwMDgyNjQ2MDM5MzU5MzA2MTEiPiLQodGC0LDRgtGD0YEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2NhbWVyYSIgbXNnaWQ9Ijg5MDQyMzExOTQxODExMTQ2MDMiPiLQmtCw0LzQtdGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z2F1cmRfYWNjZXNzaWJpbGl0eV9tZWRpYV9jb250cm9scyIgbXNnaWQ9IjI2MjIwOTY1NDI5MjE2MTgwNiI+ItCc0LXQtNC40LAg0LrQvtC90YLRgNC+0LsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+ItCS0LjQtNC20LXRgiDQtNCw0YXQuNC9INGN0YDRjdC80LHRjdC70LYg0Y3RhdC70Y3Qsi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiLQktC40LTQttC10YLQuNC50LMg0LTQsNGF0LjQvSDRjdGA0Y3QvNCx0Y3Qu9C2INC00YPRg9GB0LDQsi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9kZWxldGVkIiBtc2dpZD0iNDQyNjIwNDI2MzkyOTIyNDQzNCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+INCy0LjQtNC20LXRgiDRg9GB0YLRgdCw0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4i0KLSr9Cz0LbRjdGN0LPSr9C5INGF0Y3RgdCz0LjQudCzINOp0YDQs9Op0YHQs9Op0YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV91bmxvY2siIG1zZ2lkPSIyOTU5OTI4NDc4NzY0Njk3MjU0Ij4i0KLQsNC50LvQsNGFINCz0YPQu9GB0YPRg9C70LDQu9GCLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl91bmxvY2siIG1zZ2lkPSIxNDkwODQwNzA2MDc1MjQ2NjEyIj4i0KLQsNC50LvQsNGFINGF0Y3RjS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+ItCd0q/Sr9GA0Y3RjdGAINGC0LDQudC70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiLQotCw0LnQu9Cw0YUg0L/QuNC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGFzc3dvcmRfdW5sb2NrIiBtc2dpZD0iNzY3NTc3NzYyMzkxMjE1NTA4OSI+ItCi0LDQudC70LDRhSDQvdGD0YPRhiDSr9CzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl9hcmVhIiBtc2dpZD0iNzY3OTg5MTMyNDUwOTU5NzkwNCI+ItCl0Y3RjdC90LjQuSDRhdGN0YHRjdCzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfYXJlYSIgbXNnaWQ9IjY3MzYwNjQ0OTQwMTk5Nzk1NDQiPiLQk9GD0LvRgdGD0YPQu9Cw0YUg0YXRjdGB0Y3Qsy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTMzNzI4NjUzODMxODU0MzU1NSI+ItOo0LzQvdOp0YUg0LHQuNGH0LvRjdCzINGC0L7QstGHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjcwNzM5MjgzMDA0NDQ5MDkzMjAiPiLQlNCw0YDQsNCw0LPQuNC50L0g0LHQuNGH0LvRjdCzINGC0L7QstGHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4i0KLSr9GAINC30L7Qs9GB0L7QvtGFINGC0L7QstGHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiLQotC+0LPQu9GD0YPQu9Cw0YUg0YLQvtCy0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+ItCX0L7Qs9GB0L7QvtGFINGC0L7QstGHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4i0JDQkdCSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9hbHQiIG1zZ2lkPSI0ODU2ODY4ODIwMDQwMDUxOTM5Ij4iQWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfY2FuY2VsIiBtc2dpZD0iMTIwMzk4NDAxNzI0NTc4MzI0NCI+ItCm0YPRhtC70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiLQo9GB0YLQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kb25lIiBtc2dpZD0iMTk5MjU3MTExODQ2NjY3OTc3NSI+ItCU0YPRg9GB0LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfbW9kZV9jaGFuZ2UiIG1zZ2lkPSI0NTQ3Mzg3NzQxOTA2NTM3NTE5Ij4i0JPQvtGA0LjQvCDTqdOp0YDRh9C706nRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+ItCo0LjRhNGCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4i0J7RgNGD0YPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrIiBtc2dpZD0iMjIyODUyNDkwMDQzOTgwMTQ1MyI+ItCi0LDQudC70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9jYW1lcmEiIG1zZ2lkPSI5NjkwNzE5OTc1NTI0ODY4MTQiPiLQmtCw0LzQtdGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NpbGVudCIgbXNnaWQ9Ijg5MzU1MTI4Nzc0NjUyMjE4MiI+ItCn0LjQvNGN0Y3Qs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4i0JTRg9GD0L3Rg9GD0LQg0LjQtNGN0LLRhdGC0Y3QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zZWFyY2giIG1zZ2lkPSIzMDkxNTg3MjQ5Nzc2MDMzMTM5Ij4i0KXQsNC50YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LdCzINCz0YPQu9GB0YPRg9C70LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fZG93biIgbXNnaWQ9IjUwODc3Mzk3Mjg2MzkwMTQ1OTUiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g0YXQuNC50YUg0LHQvtC7INC00L7QvtGIINCz0YPQu9GB0YPRg9C70LDRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fbGVmdCIgbXNnaWQ9IjcyMDc0Nzg3MTk4MDU1NjIxNjUiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g0YXQuNC50YUg0LfSr9Kv0L3Qu9Kv0q8g0LPRg9C70YHRg9GD0LvQsNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g0YXQuNC50YUg0LHQvtC7INCx0LDRgNGD0YPQvdC70YPRgyDQs9GD0LvRgdGD0YPQu9Cw0YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlcl9zd2l0Y2hlZCIgbXNnaWQ9IjM3NjgwMDY3ODMxNjY5ODQ0MTAiPiLQntC00L7QvtCz0LjQudC9INGF0Y3RgNGN0LPQu9GN0LPRhyA8eGxpZmY6ZyBpZD0iTkFNRSI+JTEkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW1lcmdlbmN5X2NhbGxfbGFiZWwiIG1zZ2lkPSI2ODQ5NDYxOTI1MjM4MzA1MzEiPiLQr9Cw0YDQsNC70YLQsNC5INC00YPRg9C00LvQsNCz0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLQpdGN0Y3QsyDQvNCw0YDRgtGB0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BhdHRlcm4iIG1zZ2lkPSIxODUwODA2MDcwODAxMzU4ODMwIj4i0JHRg9GA0YPRgyDRhdGN0Y0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiLQndGD0YPRhiDSr9CzINCx0YPRgNGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19waW4iIG1zZ2lkPSIxMTMxMzA2NTEwODMzNTYzODAxIj4iUElOINCx0YPRgNGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfY291bnRkb3duIiBtc2dpZD0iNjM1ODExMDIyMTYwMzI5NzU0OCI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDRgdC10LrRg9C90LTRi9C9INC00LDRgNCw0LAg0LTQsNGF0LjQvSDQvtGA0L7Qu9C00L7QvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGF0dGVybl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIzOTg5Nzg2MTE2ODMwNzU4NjgiPiLQpdGN0Y3QsyDQt9GD0YDQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4iU0lNIFBJTiDQvtGA0YPRg9C70L3QsCDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiJQSU4g0L7RgNGD0YPQu9C90LAg0YPRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU3NTM2NDY1NTYxODY5MzY4MTkiPiLQndGD0YPRhiDSr9Cz0Y3RjSDQvtGA0YPRg9C70L3QsCDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4iU0lNINC40LTRjdCy0YXQs9Kv0Lkg0LHQsNC50L3QsC4g0q7RgNCz0Y3Qu9C20LvSr9Kv0LvRjdGFINCx0L7QuyBQVUsg0LrQvtC00YvQsyDQvtGA0YPRg9C70L3QsCDRg9GDLiDQlNGN0LvQs9GN0YDRjdC90LPSr9C5INC80Y3QtNGN0Y3Qu9C70LjQudCzINC+0L/QtdGA0LDRgtC+0YDQvtC+0YEg0LDRgdGD0YPQvdCwINGD0YPRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiLQpdKv0YHRgdGN0L0gUElOINC60L7QtNC+0L4g0L7RgNGD0YPQu9C90LAg0YPRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLQpdKv0YHRgdGN0L0gUElOINC60L7QtNC+0L4g0LTQsNGF0LjQvSDQvtGA0YPRg9C70L3QsCDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJTSU0g0LrQsNGA0YLQvdGLINGC0q/Qs9C20Y3RjdCzINCz0LDRgNCz0LDQtiDQsdCw0LnQvdCw4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i0JHRg9GA0YPRgyBQSU4g0LrQvtC0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IjQtOCDRgtC+0L7QvdC+0L7RgSDQsdKv0YLRjdGFIFBJTi3QsyDQsdC40YfQvdGNINKv0q8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iUFVLINC60L7QtCA4LdGBINGG06nTqdC90LPSr9C5INGC0L7QvtC90L7QvtGBINCx0q/RgtC90Y0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i0JfTqdCyIFBVSyDQutC+0LTRi9CzINC00LDRhdC40L0g0L7RgNGD0YPQu9C90LAg0YPRgy4g0JTQsNCy0YLQsNC9INC+0YDQvtC70LTQstC+0LsgU0lNINC90Ywg0LHSr9GA0LzTqdGB06nQvSDQuNC00Y3QstGF0LPSr9C5INCx0L7Qu9Cz0L7QvdC+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfY29uZmlybV9waW5faGludCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcwMDM0NjkyNjE0NjQ1OTM1MTYiPiJQSU4g0LrQvtC00YPRg9C0INGC0LDQsNGA0LDRhdCz0q/QuSDQsdCw0LnQvdCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4i0KXRjdGNINC+0YDRg9GD0LvQsNGFINC+0YDQvtC70LTQu9C+0LPQviDRhdGN0YIg0L7Qu9C+0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIxMTAwNTUxMjYxMjY1NTA2NDQ4Ij4i0KLSr9Cz0LbRjdGN0LMg0YLQsNC50LvQsNGFINCx0L7QuyBHb29nbGUg0LDQutCw0YPQvdGC0LDQsNGA0LDQsCDQvdGN0LLRgtGN0YDQvdGNINKv0q8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9IjU3MTg1MzQyNzIwNzA5MjAzNjQiPiLQpdGN0YDRjdCz0LvRjdCz0YfQuNC50L0g0L3RjdGAICjQuNC80Y3QudC7KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4i0J3Rg9GD0YYg0q/QsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI1MzU1OTA0NTgyNjc0MDU0NzAyIj4i0J3RjdCy0YLRgNGN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+ItCl0Y3RgNGN0LPQu9GN0LPRh9C40LnQvSDQvdGN0YAg0Y3RgdCy0Y3QuyDQvdGD0YPRhiDSr9CzINCx0YPRgNGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+ItCl0Y3RgNGN0LPQu9GN0LPRh9C40LnQvSDQvdGN0YAg0L3Rg9GD0YYg0q/Qs9GN0Y0g0LzQsNGA0YLRgdCw0L0g0YPRgz9cbiI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+Ii3QtCDQt9C+0YfQuNC70L3QviDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+ItCQ0LrQsNGD0L3RgiDRiNCw0LvQs9Cw0LYg0LHQsNC50L3QsOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i0KLQsCBQSU4g0LrQvtC00L7QviA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINCx0LjRh9C40LIuIFxuXG48eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDRgdC10LrRg9C90LTRi9C9INC00LDRgNCw0LAg0LTQsNGF0LjQvSDQvtGA0L7Qu9C00L7QvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+ItCi0LAgUElOINC60L7QtNC+0L4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g0YPQtNCw0LAg0LHRg9GA0YPRgyDQsdC40YfQuNCyLiBcblxuPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g0YHQtdC60YPQvdC00YvQvSDQtNCw0YDQsNCwINC00LDRhdC40L0g0L7RgNC+0LvQtNC+0L3QviDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXR0ZXJuX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzQwODk0NzU5NjUwNTA4MDUiPiLQotCwINGC0LDQudC70LDRhSDRhdGN0Y3QsyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINC30YPRgNC70LDQsC4gXG5cbjx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INGB0LXQutGD0L3QtNGL0L0g0LTQsNGA0LDQsCDQtNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1NzU1NTcyMDA2MjcxMjg5NDkiPiLQotCwINGC0LDQsdC70LXRgtGL0LMg0YLQsNC50LvQsNGFINCz0Y3QtiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINC+0YDQvtC70LTQu9C+0L4uIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINC00LDRhdC40L0g0LHRg9GA0YPRgyDQvtGA0L7Qu9C00LLQvtC7INGC0LDQsdC70LXRgiDSr9C50LvQtNCy0Y3RgNC40LnQvSDSr9C90LTRgdGN0L0g0YPRgtCz0LDQsNGA0LDQsCDRgtC+0YXQuNGA0YPRg9C70LDQs9C00LDRhSDQsdCwINGF0Y3RgNGN0LPQu9GN0LPRh9C40LnQvSDQtNCw0YLQsCDQsdKv0YXRjdC70LTRjdGNINGD0YHRgtCw0L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MDUxMDE1OTQzMDM4MTk5OTEwIj4i0KLQsCDRg9GC0YHRi9CzINGC0LDQudC70LDRhSDQs9GN0LYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g0YPQtNCw0LAg0LHRg9GA0YPRgyDQvtGA0L7Qu9C00LvQvtC+LiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQtNCw0YXQuNC9INCx0YPRgNGD0YMg0L7RgNC+0LvQtNCy0L7QuyDRg9GC0LDRgSDSr9C50LvQtNCy0Y3RgNC40LnQvSDSr9C90LTRgdGN0L0g0YPRgtCz0LDQsNGA0LDQsCDRgtC+0YXQuNGA0YPRg9C70LDQs9C00LDRhSDQsdCwINGF0Y3RgNGN0LPQu9GN0LPRh9C40LnQvSDQtNCw0YLQsCDQsdKv0YXRjdC70LTRjdGNINGD0YHRgtCw0L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA3Mjk5NjI2OTE0ODQ4MzYzNyI+ItCi0LAg0YLQsNCx0LvQtdGC0YvQsyDRgtCw0LnQu9Cw0YUg0LPRjdC2IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINC+0YDQvtC70LTQu9C+0L4uINCi0LDQsdC70LXRgiDQvtC00L7QviDSr9C50LvQtNCy0Y3RgNC40LnQvSDSr9C90LTRgdGN0L0g0YPRgtCz0LDQsNGA0LDQsCDRgtC+0YXQuNGA0YPRg9C70LDQs9C00LDRhSDQsdC+0LvQvdC+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDgxNzYyNzQ3NDQxOTQ3MTUxOCI+ItCi0LAg0YPRgtGB0YvQsyDRgtCw0LnQu9Cw0YUg0LPRjdC2IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINC+0YDQvtC70LTQu9C+0L4uINCj0YLQsNGBINC+0LTQvtC+INKv0LnQu9C00LLRjdGA0LjQudC9INKv0L3QtNGB0Y3QvSDRg9GC0LPQsNCw0YDQsNCwINGC0L7RhdC40YDRg9GD0LvQsNCz0LTQsNGFINCx0L7Qu9C90L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+ItCi0LAg0YLQsNC50LvQsNGFINGF0Y3RjdCzIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+INGD0LTQsNCwINCx0YPRgNGD0YMg0LfRg9GA0LvQsNCwLiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQtNCw0YXQuNC9INCx0YPRgNGD0YMg0L7RgNGD0YPQu9Cx0LDQuywg0YLQsCDRgtCw0LHQu9C10YLQsNCwINGC0LDQudC70LDRhdGL0L0g0YLRg9C70LQg0LjQvNGN0LnQuyDQsNC60LDRg9C90YIg0YjQsNCw0YDQtNC70LDQs9Cw0YLQsNC5INCx0L7Qu9C90L4uXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDRgdC10LrRg9C90LTRi9C9INC00LDRgNCw0LAg0LTQsNGF0LjQvSDQvtGA0L7Qu9C00L7QvdC+INGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLQotCwINGC0LDQudC70LDRhSDRhdGN0Y3QsyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDRg9C00LDQsCDQsdGD0YDRg9GDINC30YPRgNC70LDQsC4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g0YPQtNCw0LAg0LTQsNGF0LjQvSDQsdGD0YDRg9GDINC+0YDRg9GD0LvQsdCw0LssINGC0LAg0YPRgtGB0LDQsCDRgtCw0LnQu9Cw0YXRi9C9INGC0YPQu9C0INC40LzRjdC50Lsg0LDQutCw0YPQvdGC0LDQsCDQsNGI0LjQs9C70LDRhSDRiNCw0LDRgNC00LvQsNCz0LDRgtCw0Lkg0LHQvtC70L3Qvi5cblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INGB0LXQutGD0L3QtNGL0L0g0LTQsNGA0LDQsCDQtNCw0YXQuNC9INC+0YDQvtC70LTQvtC90L4g0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLQo9GB0YLQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiLTqNC80L3TqdGFINC00YPRgyDRgtC+0LLRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+ItCU0LDRgNCw0LDQs9C40LnQvSDQtNGD0YMg0YLQvtCy0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4i0KLSr9GAINC30L7Qs9GB0L7RhSDRgtC+0LLRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjkyNDYyODg2Mzc0MTE1MDk1NiI+ItCi0L7Qs9C70YPRg9C70LDRhSDRgtC+0LLRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMzA4NDE3OTMyNDgxMDU3NTc4NyI+ItCX0L7Qs9GB0L7QvtGFINGC0L7QstGHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2Fycmllcl9kZWZhdWx0IiBtc2dpZD0iODcwMDY1MDQwMzA1NDA0MjE1MyI+ItKu0LnQu9GH0LjQu9Cz0Y3RjSDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1tcy1yTVkvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTY4NDViYwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMTU3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qIC8vZGV2aWNlL2FwcHMvY29tbW9uL2Fzc2V0cy9yZXMvYW55L3N0cmluZ3MueG1sCisqKgorKiogQ29weXJpZ2h0IDIwMDYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IlRhaXAga29kIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+IlRhaXAgUFVLIFNJTSBkYW4ga29kIFBJTiBiYWhhcnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IktvZCBQVUsgU0lNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiJLb2QgUElOIFNJTSBiYWhhcnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiJTZW50dWggdW50dWsgbWVuYWlwIGthdGEgbGFsdWFuIjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iVGFpcCBrYXRhIGxhbHVhbiB1bnR1ayBtZW1idWthIGt1bmNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iVGFpcCBQSU4gdW50dWsgbWVtYnVrYSBrdW5jaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMjQyMjIyNTU5MTAwNjEzNDkzNiI+IktvZCBQSU4gc2FsYWguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+IlVudHVrIG1lbWJ1a2Ega3VuY2ksIHRla2FuIE1lbnUsIGtlbXVkaWFuIDAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjZXVubG9ja19tdWx0aXBsZV9mYWlsdXJlcyIgbXNnaWQ9Ijc1NDEzNzU4MzAyMjc5MjQyOSI+IlRlbGFoIG1lbGVwYXNpIGhhZCBjdWJhYW4gQnVrYSBLdW5jaSBXYWphaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NoYXJnZWQiIG1zZ2lkPSIzMjcyMjIzOTA2MDczNDkyNDU0Ij4iU3VkYWggZGljYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wbHVnZ2VkX2luIiBtc2dpZD0iODExNzU3MjAwMDYzOTk5ODM4OCI+Ik1lbmdlY2FzLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbG93X2JhdHRlcnkiIG1zZ2lkPSI4MTQzODA4MDE4NzE5MTczODU5Ij4iU2FtYnVuZ2thbiBwZW5nZWNhcyBhbmRhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSIxMzMyMjg4MjY4NjAwMzI5ODQxIj4iVGVrYW4gTWVudSB1bnR1ayBtZW1idWthIGt1bmNpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX25ldHdvcmtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI5MTY5NzE3Nzc5MDU4MDM3MTY4Ij4iUmFuZ2thaWFuIGRpa3VuY2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNDk0OTgwNTYxMzA0MjExOTMxIj4iVGlhZGEga2FkIFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE0NDU4NDkwMDU5MDkyNjAwMzkiPiJUaWFkYSBrYWQgU0lNIGRhbGFtIHRhYmxldC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ4MTExMDM5NTUwODYzNzY0MyI+IlRpYWRhIGthZCBTSU0gZGFsYW0gdGVsZWZvbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1MjEwODkxNTA5OTk1OTQyMjUwIj4iTWFzdWtrYW4ga2FkIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjU5Njg5ODU0ODk0NjM4NzAzNTgiPiJLYWQgU0lNIHRpYWRhIGF0YXUgdGlkYWsgYm9sZWggZGliYWNhLiBTaWxhIG1hc3Vra2FuIGthZCBTSU0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iODM0MDgxMzk4OTU4NjYyMjM1NiI+IkthZCBTSU0gdGlkYWsgYm9sZWggZGlndW5ha2FuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTg5Mjk0MDkwOTY5OTcyMzU0NCI+IkthZCBTSU0gYW5kYSB0ZWxhaCBkaWx1bXB1aGthbiBzZWNhcmEga2VrYWwuXG4gSHVidW5naSBwZW1iZWthbCBwZXJraGlkbWF0YW4gd2F5YXJsZXMgYW5kYSB1bnR1ayBtZW5kYXBhdGthbiBrYWQgU0lNIGxhaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+IkthZCBTSU0gZGlrdW5jaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMzc0NzIzMjQ2NzQ3MTgwMTYzMyI+IkthZCBTSU0gZGlrdW5jaSBkZW5nYW4gUFVLLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3OTc1MjIxODA1MDMzNjE0NDI2Ij4iTWVtYnVrYSBrdW5jaSBrYWQgU0lNLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiIlMSRzLiBXaWRnZXQgJTIkZCBkYXJpICUzJGQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9hZGRfd2lkZ2V0IiBtc2dpZD0iODI3MzI3NzA1ODcyNDkyNDY1NCI+IlRhbWJhaCB3aWRnZXQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZW1wdHlfc2xvdCIgbXNnaWQ9IjEyODE1MDU3MDMzMDc5MzA3NTciPiJLb3NvbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2V4cGFuZGVkIiBtc2dpZD0iMjI3ODEwNjAyMjMxMTE3MDI5OSI+IkJhaGFnaWFuIGJ1a2Ega3VuY2kgZGlrZW1iYW5na2FuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfY29sbGFwc2VkIiBtc2dpZD0iNjM2Njk5MjA2NjkzNjA3NjM5NiI+IkJhaGFnaWFuIGJ1a2Ega3VuY2kgZGlydW50dWhrYW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXQiIG1zZ2lkPSI2NTI3MTMxMDM5NzQxODA4MjQwIj4iV2lkZ2V0IDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdXNlcl9zZWxlY3RvciIgbXNnaWQ9IjEyMjY3OTgzNzA5MTM2OTg4OTYiPiJQZW1pbGloIHBlbmdndW5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zdGF0dXMiIG1zZ2lkPSI4MDA4MjY0NjAzOTM1OTMwNjExIj4iU3RhdHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4iS2FtZXJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z2F1cmRfYWNjZXNzaWJpbGl0eV9tZWRpYV9jb250cm9scyIgbXNnaWQ9IjI2MjIwOTY1NDI5MjE2MTgwNiI+Ikthd2FsYW4gbWVkaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+IlBlbnl1c3VuYW4gc2VtdWxhIHdpZGdldCBkaW11bGFrYW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9lbmQiIG1zZ2lkPSI3MTcwMTkwOTUwODcwNDY4MzIwIj4iUGVueXVzdW5hbiBzZW11bGEgd2lkZ2V0IHRhbWF0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4iV2lkZ2V0IDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IGRpcGFkYW1rYW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4iS2VtYmFuZ2thbiBiYWhhZ2lhbiBidWthIGt1bmNpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfdW5sb2NrIiBtc2dpZD0iMjk1OTkyODQ3ODc2NDY5NzI1NCI+IkJ1a2Ega3VuY2kgbHVuY3VyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl91bmxvY2siIG1zZ2lkPSIxNDkwODQwNzA2MDc1MjQ2NjEyIj4iQnVrYSBrdW5jaSBjb3Jhay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+IldhamFoIEJ1a2EgS3VuY2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4iQnVrYSBrdW5jaSBwaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXNzd29yZF91bmxvY2siIG1zZ2lkPSI3Njc1Nzc3NjIzOTEyMTU1MDg5Ij4iQnVrYSBrdW5jaSBrYXRhIGxhbHVhbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3BhdHRlcm5fYXJlYSIgbXNnaWQ9Ijc2Nzk4OTEzMjQ1MDk1OTc5MDQiPiJLYXdhc2FuIGNvcmFrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfYXJlYSIgbXNnaWQ9IjY3MzYwNjQ0OTQwMTk5Nzk1NDQiPiJLYXdhc2FuIGx1bmN1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTMzNzI4NjUzODMxODU0MzU1NSI+IkJ1dGFuZyBsYWd1IHNlYmVsdW1ueWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzA3MzkyODMwMDQ0NDkwOTMyMCI+IkJ1dGFuZyBsYWd1IHNldGVydXNueWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiJCdXRhbmcgamVkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iQnV0YW5nIG1haW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+IkJ1dGFuZyBiZXJoZW50aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiJNZW55dWthaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+IlRpZGFrIGRpdGVyaW1hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4iSmFudHVuZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IkJ1a2Ega3VuY2kgdW50dWsgbWVuZXJ1c2thbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IlBlbGFuY2FyYW4gZGliYXRhbGthbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJKYXR1aGthbiA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiB1bnR1ayBtZW1hZGFtLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiB0aWRhayBha2FuIGRpcGFkYW1rYW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9hbHQiIG1zZ2lkPSI0ODU2ODY4ODIwMDQwMDUxOTM5Ij4iQWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfY2FuY2VsIiBtc2dpZD0iMTIwMzk4NDAxNzI0NTc4MzI0NCI+IkJhdGFsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZGVsZXRlIiBtc2dpZD0iMzMzNzkxNDgzMzIwNjYzNTc0NCI+IlBhZGFtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZG9uZSIgbXNnaWQ9IjE5OTI1NzExMTg0NjY2Nzk3NzUiPiJTZWxlc2FpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfbW9kZV9jaGFuZ2UiIG1zZ2lkPSI0NTQ3Mzg3NzQxOTA2NTM3NTE5Ij4iUGVydWJhaGFuIG1vZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4iTWFzdWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrIiBtc2dpZD0iMjIyODUyNDkwMDQzOTgwMTQ1MyI+IkJ1a2Ega3VuY2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfY2FtZXJhIiBtc2dpZD0iOTY5MDcxOTk3NTUyNDg2ODE0Ij4iS2FtZXJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NpbGVudCIgbXNnaWQ9Ijg5MzU1MTI4Nzc0NjUyMjE4MiI+IlNlbnlhcCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zb3VuZG9uIiBtc2dpZD0iMzAwNTI0NjY2NzU1MDAxNzIiPiJCdW55aSBkaWhpZHVwa2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiJDYXJpYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4iTHVuY3Vya2FuIGtlIGF0YXMgdW50dWsgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9kb3duIiBtc2dpZD0iNTA4NzczOTcyODYzOTAxNDU5NSI+Ikx1bmN1cmthbiBrZSBiYXdhaCB1bnR1ayA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2xlZnQiIG1zZ2lkPSI3MjA3NDc4NzE5ODA1NTYyMTY1Ij4iTHVuY3Vya2FuIGtlIGtpcmkgdW50dWsgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiJMdW5jdXJrYW4ga2Uga2FuYW4gdW50dWsgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZXJfc3dpdGNoZWQiIG1zZ2lkPSIzNzY4MDA2NzgzMTY2OTg0NDEwIj4iUGVuZ2d1bmEgc2VtYXNhIDx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbWVyZ2VuY3lfY2FsbF9sYWJlbCIgbXNnaWQ9IjY4NDk0NjE5MjUyMzgzMDUzMSI+IlBhbmdnaWxhbiBrZWNlbWFzYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiJMdXBhIENvcmFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiJDb3JhayBTYWxhaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3Bhc3N3b3JkIiBtc2dpZD0iMjMzMzI4MTc2MjEyODExMzE1NyI+IkthdGEgTGFsdWFuIFNhbGFoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGluIiBtc2dpZD0iMTEzMTMwNjUxMDgzMzU2MzgwMSI+IlBJTiBzYWxhaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MzU4MTEwMjIxNjAzMjk3NTQ4Ij4iQ3ViYSBsYWdpIGRhbGFtIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBzYWF0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3BhdHRlcm5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzk4OTc4NjExNjgzMDc1ODY4Ij4iTHVraXNrYW4gY29yYWsgYW5kYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV9waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjMxOTUwODU1MDkzNDU1NzMzMSI+Ik1hc3Vra2FuIFBJTiBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+Ik1hc3Vra2FuIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU3NTM2NDY1NTYxODY5MzY4MTkiPiJNYXN1a2thbiBLYXRhIExhbHVhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+IktpbmkgU0lNIGRpbHVtcHVoa2FuLiBNYXN1a2thbiBrb2QgUFVLIHVudHVrIG1lbmVydXNrYW4uIEh1YnVuZ2kgcGVtYmF3YSB1bnR1ayBidXRpcmFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiJNYXN1a2thbiBrb2QgUElOIHlhbmcgZGlpbmdpbmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4iU2Foa2FuIGtvZCBQSU4geWFuZyBkaWluZ2luaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iTWVtYnVrYSBrdW5jaSBrYWQgU0lNLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iVGFpcGthbiBQSU4geWFuZyBtZW5nYW5kdW5naSA0IGhpbmdnYSA4IG5vbWJvci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJLb2QgUFVLIG1lc3RpbGFoIDggbm9tYm9yIGF0YXUgbGViaWguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iTWFzdWtrYW4gc2VtdWxhIGtvZCBQSU4geWFuZyBiZXR1bC4gUGVyY3ViYWFuIGJlcnVsYW5nIGFrYW4gbWVsdW1wdWhrYW4gU0lNIHNlY2FyYSBrZWthbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4iS29kIFBJTiB0aWRhayBzZXBhZGFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4iVGVybGFsdSBiYW55YWsgcGVyY3ViYWFuIG1lbHVraXMgY29yYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIxMTAwNTUxMjYxMjY1NTA2NDQ4Ij4iVW50dWsgbWVtYnVrYSBrdW5jaSwgbG9nIG1hc3VrIGRlbmdhbiBha2F1biBHb29nbGUgYW5kYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+Ik5hbWEgUGVuZ2d1bmEgKEUtbWVsKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Bhc3N3b3JkX2hpbnQiIG1zZ2lkPSI5MDU3Mjg5MTAzODI3Mjk4NTQ5Ij4iS2F0YSBsYWx1YW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNTM1NTkwNDU4MjY3NDA1NDcwMiI+IkxvZyBtYXN1ayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4iTmFtYSBwZW5nZ3VuYSBhdGF1IGthdGEgbGFsdWFuIHRpZGFrIHNhaC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4iTHVwYSBuYW1hIHBlbmdndW5hIGF0YXUga2F0YSBsYWx1YW4gYW5kYT9cbkxhd2F0aSI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+Ii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjEwNTI2ODUxOTc3MTAyNTIzOTUiPiJNZW55ZW1hayBha2F1buKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4iQW5kYSB0ZWxhaCBtZW5haXAgUElOIGFuZGEgc2VjYXJhIHNhbGFoIHNlYmFueWFrIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGthbGkuIFxuXG5DdWJhIGxhZ2kgZGFsYW0gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gc2FhdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3ODEzNzEzMzg5NDIyMjI2NTMxIj4iQW5kYSB0ZWxhaCBtZW5haXAga2F0YSBsYWx1YW4gYW5kYSBzZWNhcmEgc2FsYWggc2ViYW55YWsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4ga2FsaS4gXG5cbkN1YmEgbGFnaSBkYWxhbSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBzYWF0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXR0ZXJuX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzQwODk0NzU5NjUwNTA4MDUiPiJBbmRhIHRlbGFoIHRlcnNpbGFwIG1lbHVraXMgY29yYWsgYnVrYSBrdW5jaSBhbmRhIHNlYmFueWFrIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGthbGkuIFxuXG5DdWJhIGxhZ2kgZGFsYW0gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gc2FhdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1NzU1NTcyMDA2MjcxMjg5NDkiPiJBbmRhIHRlbGFoIG1lbmN1YmEgdW50dWsgbWVtYnVrYSBrdW5jaSB0YWJsZXQgZGVuZ2FuIHNhbGFoIHNlYmFueWFrIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGthbGkuIFNlbGVwYXMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gbGFnaSBwZXJjdWJhYW4geWFuZyB0aWRhayBiZXJqYXlhLCB0YWJsZXQgYWthbiBkaXRldGFwa2FuIHNlbXVsYSBrZXBhZGEgdGV0YXBhbiBsYWxhaSBraWxhbmcgZGFuIHNlbXVhIGRhdGEgcGVuZ2d1bmEgYWthbiBoaWxhbmcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDA1MTAxNTk0MzAzODE5OTkxMCI+IkFuZGEgdGVsYWggbWVuY3ViYSB1bnR1ayBtZW1idWthIGt1bmNpIHRlbGVmb24gZGVuZ2FuIHNhbGFoIHNlYmFueWFrIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGthbGkuIFNlbGVwYXMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gbGFnaSBwZXJjdWJhYW4geWFuZyB0aWRhayBiZXJqYXlhLCB0ZWxlZm9uIGFrYW4gZGl0ZXRhcGthbiBzZW11bGEga2VwYWRhIHRldGFwYW4gbGFsYWkga2lsYW5nIGRhbiBzZW11YSBkYXRhIHBlbmdndW5hIGFrYW4gaGlsYW5nLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDcyOTk2MjY5MTQ4NDgzNjM3Ij4iQW5kYSB0ZWxhaCBtZW5jdWJhIHVudHVrIG1lbWJ1a2Ega3VuY2kgdGFibGV0IHNlY2FyYSBzYWxhaCBzZWJhbnlhayA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4ga2FsaS4gVGFibGV0IGtpbmkgYWthbiBkaXRldGFwa2FuIHNlbXVsYSBrZSB0ZXRhcGFuIGxhbGFpIGtpbGFuZy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ4MTc2Mjc0NzQ0MTk0NzE1MTgiPiJBbmRhIHRlbGFoIG1lbmN1YmEgdW50dWsgbWVtYnVrYSBrdW5jaSB0ZWxlZm9uIHNlY2FyYSBzYWxhaCBzZWJhbnlhayA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4ga2FsaS4gVGVsZWZvbiBraW5pIGFrYW4gZGl0ZXRhcGthbiBzZW11bGEga2UgdGV0YXBhbiBsYWxhaSBraWxhbmcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IkFuZGEgdGVsYWggdGVyc2lsYXAgbWVsdWtpcyBjb3JhayBidWthIGt1bmNpIHNlYmFueWFrIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGthbGkuIFNlbGVwYXMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gbGFnaSBwZXJjdWJhYW4geWFuZyB0aWRhayBiZXJqYXlhLCBhbmRhIGFrYW4gZGltaW50YSBtZW1idWthIGt1bmNpIHRhYmxldCBhbmRhIG1lbmdndW5ha2FuIGxvZyBtYXN1ayBHb29nbGUgYW5kYS5cblxuIEN1YmEgbGFnaSBkYWxhbSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzYWF0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iQW5kYSB0ZWxhaCB0ZXJzaWxhcCBsdWtpcyBjb3JhayBidWthIGt1bmNpIHNlYmFueWFrIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGthbGkuIFNlbGVwYXMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gbGFnaSBwZXJjdWJhYW4geWFuZyB0aWRhayBiZXJqYXlhLCBhbmRhIGFrYW4gZGltaW50YSBtZW1idWthIGt1bmNpIHRlbGVmb24gYW5kYSBtZW5nZ3VuYWthbiBsb2cgbWFzdWsgR29vZ2xlIGFuZGEuXG5cbiBDdWJhIGxhZ2kgZGFsYW0gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2FhdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJBbGloIGtlbHVhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iS29kIFBJTiBTSU0gdGlkYWsgYmV0dWwsIGphZGkgYW5kYSBoYXJ1cyBtZW5naHVidW5naSBwZW1iYXdhIGFuZGEgdW50dWsgbWVtYnVrYSBrdW5jaSBwZXJhbnRpLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iS29kIFBJTiBTSU0gdGlkYWsgYmV0dWwuIEFuZGEgbWVtcHVueWFpIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwZXJjdWJhYW4gbGFnaSBzZWJlbHVtIGFuZGEgaGFydXMgbWVuZ2h1YnVuZ2kgcGVtYmF3YSBhbmRhIHVudHVrIG1lbWJ1a2Ega3VuY2kgcGVyYW50aS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJLb2QgUElOIFNJTSB0aWRhayBiZXR1bCwgYW5kYSBtZW1wdW55YWkgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHBlcmN1YmFhbiBsYWdpLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iU0lNIHRpZGFrIGJvbGVoIGRpZ3VuYWthbi4gSHVidW5naSBwZW1iYXdhIGFuZGEuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiJLb2QgUFVLIFNJTSB0aWRhayBiZXR1bCwgYW5kYSBtZW1wdW55YWkgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHBlcmN1YmFhbiBsYWdpIHNlYmVsdW0gU0lNIHRpZGFrIGJvbGVoIGRpZ3VuYWthbiBzZWNhcmEga2VrYWwuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4iS29kIFBVSyBTSU0gdGlkYWsgYmV0dWwsIGFuZGEgbWVtcHVueWFpIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwZXJjdWJhYW4gbGFnaSBzZWJlbHVtIFNJTSB0aWRhayBib2xlaCBkaWd1bmFrYW4gc2VjYXJhIGtla2FsLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iT3BlcmFzaSBQSU4gU0lNIGdhZ2FsISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4iT3BlcmFzaSBQVUsgU0lNIGdhZ2FsISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9hY2NlcHRlZCIgbXNnaWQ9IjE0NDgyNDE2NzM1NzAwMjAwOTciPiJLb2QgRGl0ZXJpbWEhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iQnV0YW5nIGxhZ3Ugc2ViZWx1bW55YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IkJ1dGFuZyBsYWd1IHNldGVydXNueWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4iQnV0YW5nIGplZGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjI5MjQ2Mjg4NjM3NDExNTA5NTYiPiJCdXRhbmcgbWFpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMzA4NDE3OTMyNDgxMDU3NTc4NyI+IkJ1dGFuZyBiZXJoZW50aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NhcnJpZXJfZGVmYXVsdCIgbXNnaWQ9Ijg3MDA2NTA0MDMwNTQwNDIxNTMiPiJUaWFkYSBwZXJraGlkbWF0YW4uIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLW5iL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbAppbmRleCA2YTViZmE5Li5jMjVhNzcyIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLW5iL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtbmIvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IlNrcml2IGlubiBQSU4ta29kZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IlNrcml2IGlubiBQVUsta29kZSBvZyBueSBwZXJzb25saWcga29kZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iUFVLLWtvZGUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+Ik55IFBJTi1rb2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iU2tyaXYgaW5uIFBVSy1rb2RlbiBmb3IgU0lNLWtvcnRldCBvZyBlbiBueSBQSU4ta29kZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxODAxOTQxMDUxMDk0OTc0NjA5Ij4iUFVLLWtvZGVuIGZvciBTSU0ta29ydGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiJOeSBQSU4ta29kZSBmb3IgU0lNLWtvcnRldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IlRyeWtrIGZvciDDpSBza3JpdmUgaW5uIHBhc3NvcmQiPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiJTa3JpdiBpbm4gcGFzc29yZCBmb3Igw6UgbMOlc2Ugb3BwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iU2tyaXYgaW5uIFBJTi1rb2RlIGZvciDDpSBsw6VzZSBvcHAiPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4iUGF1c2Uta25hcHAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+IkF2c3BpbGxpbmdza25hcHAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+IlN0b3BwLWtuYXBwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+Ikxpa3QgYXYgbWVnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4iU2FuZ2VyIGR1IGlra2UgbGlrZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiJIamVydGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiJMw6VzIG9wcCBmb3Igw6UgZm9ydHNldHRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4iU3RhcnRlbiBibGUga2Fuc2VsbGVydCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJTbGlwcCA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiBmb3Igw6Ugc2xldHRlIGRlbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gYmxpciBpa2tlIHNsZXR0ZXQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC0xMDUsNyArMTEyLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiJUYXN0IGlubiDDuG5za2V0IFBJTi1rb2RlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IkJla3JlZnQgw7huc2tldCBQSU4ta29kZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iTMOlc2VyIG9wcCBTSU0ta29ydGV0IC4uLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IkZlaWwgUElOLWtvZGUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iU2tyaXYgaW5uIGVuIFBJTi1rb2RlIHDDpSBmaXJlIHRpbCDDpXR0ZSBzaWZyZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJQVUsta29kZW4gc2thbCB2w6ZyZSBww6Ugw6V0dGUgZWxsZXIgZmxlcmUgc2lmZmVyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IlNrcml2IGlubiBkZW4ga29ycmVrdGUgUFVLLWtvZGVuIHDDpSBueXR0LiBHamVudGF0dGUgZm9yc8O4ayBrb21tZXIgdGlsIMOlIGRlYWt0aXZlcmUgU0lNLWtvcnRldC4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IkR1IGhhciB0ZWduZXQgb3BwbMOlc25pbmdzbcO4bnN0ZXJldCBmZWlsIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGdhbmdlci4gRXR0ZXIgeXR0ZXJsaWdlcmUgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gZ2FsZSBmb3Jzw7hrLCBibGlyIGR1IGJlZHQgb20gw6UgbMOlc2Ugb3BwIHRlbGVmb25lbiB2aWEgZW4gZS1wb3N0a29udG8uXG5cbiBQcsO4diBww6Ugbnl0dCBvbSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzZWt1bmRlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJGamVybiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iRmVpbCBQSU4ta29kZSBmb3IgU0lNLWtvcnRldC4gRHUgbcOlIG7DpSBrb250YWt0ZSBvcGVyYXTDuHJlbiBkaW4gZm9yIMOlIGzDpXNlIG9wcCBlbmhldGVuLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iRmVpbCBQSU4ta29kZSBmb3IgU0lNLWtvcnRldC4gRHUgaGFyIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBmb3Jzw7hrIGlnamVuIGbDuHIgZHUgbcOlIGtvbnRha3RlIG9wZXJhdMO4cmVuIGRpbiBmb3Igw6UgbMOlc2Ugb3BwIGVuaGV0ZW4uIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4iRmVpbCBQSU4ta29kZSBmb3IgU0lNLWtvcnRldC4gRHUgaGFyIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBmb3Jzw7hrIGlnamVuLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iU0lNLWtvcnRldCBlciB1YnJ1a2VsaWcuIEtvbnRha3Qgb3BlcmF0w7hyZW4gZGluLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iRmVpbCBQVUsta29kZSBmb3IgU0lNLWtvcnRldC4gRHUgaGFyIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBmb3Jzw7hrIGlnamVuIGbDuHIgU0lNLWtvcnRldCBibGlyIHBlcm1hbmVudCB1YnJ1a2VsaWcuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4iRmVpbCBQVUsta29kZSBmb3IgU0lNLWtvcnRldC4gRHUgaGFyIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBmb3Jzw7hrIGlnamVuIGbDuHIgU0lNLWtvcnRldCBibGlyIHBlcm1hbmVudCB1YnJ1a2VsaWcuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiJQSU4ta29kZW4gZm9yIFNJTS1rb3J0ZXQgYmxlIGF2dmlzdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IlBVSy1rb2RlbiBmb3IgU0lNLWtvcnRldCBibGUgYXZ2aXN0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9hY2NlcHRlZCIgbXNnaWQ9IjE0NDgyNDE2NzM1NzAwMjAwOTciPiJLb2RlbiBlciBnb2RramVudC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiJGb3JyaWdlIHNwb3Ita25hcHAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiJOZXN0ZSBzcG9yLWtuYXBwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IlBhdXNlLWtuYXBwIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1uZS1yTlAvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLW5lLXJOUC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZmExMTgyCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1uZS1yTlAvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwxMzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyogLy9kZXZpY2UvYXBwcy9jb21tb24vYXNzZXRzL3Jlcy9hbnkvc3RyaW5ncy54bWwKKyoqCisqKiBDb3B5cmlnaHQgMjAwNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iUElOIOCkleCli+CkoSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iUFVLIOCksCDgpKjgpK/gpL7gpIEgUElOIOCkleCli+CkoSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsg4KSV4KWL4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLgpKjgpK/gpL7gpIEgUElOIOCkleCli+CkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IuCkquCkvuCkuOCkteCksOCljeCkoSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSoIOCkm+ClgeCkqOClgeCkueCli+CkuOCljSI8L2ZvbnQ+PC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IuCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KSq4KS+4KS44KS14KSw4KWN4KShIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIFBJTiDgpJXgpYvgpKEg4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMjQyMjIyNTU5MTAwNjEzNDkzNiI+IuCkl+CksuCkpCBQSU4g4KSV4KWL4KSh4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+IuCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KSu4KWH4KSo4KWBIOCkpeCkv+CkmuCljeCkqOClgeCkueCli+CkuOCljSDgpLAg4KSk4KWN4KSv4KS44KSq4KSb4KS/IOClpiDgpKXgpL/gpJrgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWNldW5sb2NrX211bHRpcGxlX2ZhaWx1cmVzIiBtc2dpZD0iNzU0MTM3NTgzMDIyNzkyNDI5Ij4i4KSF4KSk4KWN4KSv4KS+4KSn4KS/4KSVIOCkruCli+CkueCkoeCkviDgpJbgpYvgpLLgpY3gpKjgpYcg4KSq4KWN4KSw4KSv4KS+4KS44KS54KSw4KWCIOCkrOCkouClgCDgpK3gpI/gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jaGFyZ2VkIiBtc2dpZD0iMzI3MjIyMzkwNjA3MzQ5MjQ1NCI+IuCkmuCkvuCksOCljeCknCDgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wbHVnZ2VkX2luIiBtc2dpZD0iODExNzU3MjAwMDYzOTk5ODM4OCI+IuCkmuCkvuCksOCljeCknCDgpJfgpLDgpY3gpKbgpYgsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sb3dfYmF0dGVyeSIgbXNnaWQ9IjgxNDM4MDgwMTg3MTkxNzM4NTkiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSa4KS+4KSw4KWN4KSc4KSwIOCknOCli+CkoeCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSIxMzMyMjg4MjY4NjAwMzI5ODQxIj4i4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqCDgpK7gpYfgpKjgpYEg4KSl4KS/4KSa4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbmV0d29ya19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjkxNjk3MTc3NzkwNTgwMzcxNjgiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSy4KSVIOCkl+CksOCkv+Ckj+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iNDk0OTgwNTYxMzA0MjExOTMxIj4iU0lNIOCkleCkvuCksOCljeCkoSDgpJvgpYjgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNDQ1ODQ5MDA1OTA5MjYwMDM5Ij4i4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSu4KS+IFNJTSDgpJXgpL7gpLDgpY3gpKEg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjM0ODExMTAzOTU1MDg2Mzc2NDMiPiLgpKvgpYvgpKjgpK7gpL4g4KSV4KWB4KSo4KWIIFNJTSDgpJXgpL7gpLDgpY3gpKEg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTIxMDg5MTUwOTk5NTk0MjI1MCI+IlNJTSDgpJXgpL7gpLDgpY3gpKEg4KSt4KS/4KSk4KWN4KSwIOCksOCkvuCkluCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9uc19sb25nIiBtc2dpZD0iNTk2ODk4NTQ4OTQ2Mzg3MDM1OCI+IlNJTSDgpJXgpL7gpLDgpY3gpKEg4KS54KSw4KS+4KSH4KSw4KS54KWH4KSV4KWLIOCkmyDgpLXgpL4g4KSq4KSi4KWN4KSoIOCkr+Cli+Ckl+CljeCkryDgpJvgpYjgpKjgpaQgU0lNIOCkleCkvuCksOCljeCkoSDgpLngpL7gpLLgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI4MzQwODEzOTg5NTg2NjIyMzU2Ij4i4KSq4KWN4KSw4KSv4KWL4KSXIOCkheCkr+Cli+Ckl+CljeCkryBTSU0g4KSV4KS+4KSw4KWN4KSh4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1ODkyOTQwOTA5Njk5NzIzNTQ0Ij4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIFNJTSDgpJXgpL7gpLDgpY3gpKEg4KS44KWN4KSl4KS+4KSv4KWAIOCksOClguCkquCkruCkviDgpIXgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KS/4KSP4KSV4KWLIOCkm+ClpFxuIOCkheCksOCljeCkleCliyBTSU0g4KSV4KS+4KSw4KWN4KSh4KSV4KWLIOCksuCkvuCkl+CkvyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSk4KS+4KSw4KSw4KS54KS/4KSkIOCkuOClh+CkteCkviDgpKrgpY3gpLDgpKbgpL7gpK/gpJXgpLjgpIHgpJcg4KS44KSu4KWN4KSq4KSw4KWN4KSVIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjY4NzU3NzM0MTMzMDYzODA5MDIiPiJTSU0g4KSV4KS+4KSw4KWN4KShIOCksuCklSDgpJfgpLDgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fcHVrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iMzc0NzIzMjQ2NzQ3MTgwMTYzMyI+IlNJTSDgpJXgpL7gpLDgpY3gpKEgUFVLLeCksuCklSDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzk3NTIyMTgwNTAzMzYxNDQyNiI+IlNJTSDgpJXgpL7gpLDgpY3gpKEg4KSF4KSo4KSy4KSVIOCkueClgeCkgeCkpuCliOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2NoYW5nZWQiIG1zZ2lkPSI1Njc4NjI0NjI0NjgxNDAwMTkxIj4iJTEkcy4g4KS14KS/4KSc4KWH4KSfICUyJGQgb2YgJTMkZOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfYWRkX3dpZGdldCIgbXNnaWQ9IjgyNzMyNzcwNTg3MjQ5MjQ2NTQiPiLgpLXgpL/gpJzgpYfgpJ8g4KSl4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i4KSW4KS+4KSy4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLgpIXgpKjgpLLgpJUg4KSV4KWN4KS34KWH4KSk4KWN4KSwIOCkteCkv+CkuOCljeCkpOCkvuCksCDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2NvbGxhcHNlZCIgbXNnaWQ9IjYzNjY5OTIwNjY5MzYwNzYzOTYiPiLgpIXgpKjgpLLgpJUg4KSV4KWN4KS34KWH4KSk4KWN4KSwIOCkreCkpOCljeCkleCkv+Ckr+Cli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0IiBtc2dpZD0iNjUyNzEzMTAzOTc0MTgwODI0MCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOCkteCkv+CknOClh+Ckn+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdXNlcl9zZWxlY3RvciIgbXNnaWQ9IjEyMjY3OTgzNzA5MTM2OTg4OTYiPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSb4KSo4KWM4KSf4KSV4KSw4KWN4KSk4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zdGF0dXMiIG1zZ2lkPSI4MDA4MjY0NjAzOTM1OTMwNjExIj4i4KS44KWN4KSl4KS/4KSk4KS/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4i4KSV4KWN4KSv4KS+4KSu4KWH4KSw4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z2F1cmRfYWNjZXNzaWJpbGl0eV9tZWRpYV9jb250cm9scyIgbXNnaWQ9IjI2MjIwOTY1NDI5MjE2MTgwNiI+IuCkruCkv+CkoeCkv+Ckr+CkviDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKPgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+IuCkteCkv+CknOClh+CknyDgpKrgpYHgpKjgpIPgpJXgpY3gpLDgpK4g4KSX4KSw4KWN4KSo4KWHIOCkuOClgeCksOClgSDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiLgpLXgpL/gpJzgpYfgpJ8g4KSq4KWB4KSo4KSD4KSV4KWN4KSw4KSuIOCkuOCkruCkvuCkquCljeCkpCDgpK3gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfZGVsZXRlZCIgbXNnaWQ9IjQ0MjYyMDQyNjM5MjkyMjQ0MzQiPiLgpLXgpL/gpJzgpYfgpJ8gPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4KSu4KWH4KSf4KS+4KSH4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4i4KSF4KSo4KSy4KSVIOCkleCljeCkt+Clh+CkpOCljeCksCDgpKzgpKLgpL7gpIngpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX3VubG9jayIgbXNnaWQ9IjI5NTk5Mjg0Nzg3NjQ2OTcyNTQiPiLgpLjgpY3gpLLgpL7gpIfgpKEg4KSF4KSo4KSy4KSV4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLgpKLgpL7gpIHgpJrgpL4g4KSF4KSo4KSy4KSV4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9mYWNlX3VubG9jayIgbXNnaWQ9IjQ4MTcyODI1NDMzNTE3MTg1MzUiPiLgpKvgpYfgpLgg4KSF4KSo4KSy4KSVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9waW5fdW5sb2NrIiBtc2dpZD0iMjQ2OTY4NzExMTc4NDAzNTA0NiI+IlBpbiDgpIXgpKjgpLLgpJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bhc3N3b3JkX3VubG9jayIgbXNnaWQ9Ijc2NzU3Nzc2MjM5MTIxNTUwODkiPiLgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSF4KSo4KSy4KSV4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4i4KSi4KS+4KSB4KSa4KS+IOCkleCljeCkt+Clh+CkpOCljeCksOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2xpZGVfYXJlYSIgbXNnaWQ9IjY3MzYwNjQ0OTQwMTk5Nzk1NDQiPiLgpLjgpY3gpLLgpL7gpIfgpKEg4KSV4KWN4KS34KWH4KSk4KWN4KSw4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjEzMzcyODY1MzgzMTg1NDM1NTUiPiLgpIXgpJjgpL/gpLLgpY3gpLLgpYsg4KSq4KSlIOCkrOCkn+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI3MDczOTI4MzAwNDQ0OTA5MzIwIj4i4KSF4KSw4KWN4KSV4KWLIOCkquCkpSDgpKzgpJ/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiLgpLDgpYvgpJXgpY3gpKjgpYcg4KSs4KSf4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiLgpKzgpJzgpL7gpIngpKjgpYcg4KSs4KSf4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiLgpKzgpJ/gpKgg4KSw4KWL4KSV4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij/gpafgpajgpakiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9hbHQiIG1zZ2lkPSI0ODU2ODY4ODIwMDQwMDUxOTM5Ij4iQWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfY2FuY2VsIiBtc2dpZD0iMTIwMzk4NDAxNzI0NTc4MzI0NCI+IuCksOCkpuCljeCkpiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kZWxldGUiIG1zZ2lkPSIzMzM3OTE0ODMzMjA2NjM1NzQ0Ij4i4KSu4KWH4KSf4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZG9uZSIgbXNnaWQ9IjE5OTI1NzExMTg0NjY2Nzk3NzUiPiLgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9tb2RlX2NoYW5nZSIgbXNnaWQ9IjQ1NDczODc3NDE5MDY1Mzc1MTkiPiLgpK7gpYvgpKEg4KSq4KSw4KS/4KS14KSw4KWN4KSk4KSoIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZW50ZXIiIG1zZ2lkPSIyOTg1ODY0MDE1MDc2MDU5NDY3Ij4i4KSq4KWN4KSw4KS14KS/4KS34KWN4KSf4KS/IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF91bmxvY2siIG1zZ2lkPSIyMjI4NTI0OTAwNDM5ODAxNDUzIj4i4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9jYW1lcmEiIG1zZ2lkPSI5NjkwNzE5OTc1NTI0ODY4MTQiPiLgpJXgpY3gpK/gpL7gpK7gpYfgpLDgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2lsZW50IiBtc2dpZD0iODkzNTUxMjg3NzQ2NTIyMTgyIj4i4KSu4KWM4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NvdW5kb24iIG1zZ2lkPSIzMDA1MjQ2NjY3NTUwMDE3MiI+IuCkhuCkteCkvuCknCDgpJrgpL7gpLLgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2VhcmNoIiBtc2dpZD0iMzA5MTU4NzI0OTc3NjAzMzEzOSI+IuCkluCli+CknOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl91cCIgbXNnaWQ9IjcxNjkwMzI0NzgyNTk0ODUxODAiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz7gpJXgpYsg4KSy4KS+4KSX4KS/IOCkruCkvuCkpeCkvyDgpKfgpL/gpLjgpL7gpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fZG93biIgbXNnaWQ9IjUwODc3Mzk3Mjg2MzkwMTQ1OTUiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g4KSV4KWLIOCksuCkvuCkl+CkvyDgpKTgpLIg4KS44KWN4KSy4KS+4KSH4KShIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9sZWZ0IiBtc2dpZD0iNzIwNzQ3ODcxOTgwNTU2MjE2NSI+IuCkuOCljeCksuCkvuCkh+CkoSA8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz7gpJXgpYsg4KSy4KS+4KSX4KS/IOCkrOCkvuCkr+CkvuCkgeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9yaWdodCIgbXNnaWQ9IjgwMzQ0MzMyNDI1Nzk2MDA5ODAiPiLgpLjgpY3gpLLgpL7gpIfgpKEgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+4KSV4KWLIOCksuCkvuCkl+CkvyDgpKbgpL7gpK/gpL7gpIHgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VyX3N3aXRjaGVkIiBtc2dpZD0iMzc2ODAwNjc4MzE2Njk4NDQxMCI+IuCkheCkueCkv+CksuClh+CkleCliyDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4gPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW1lcmdlbmN5X2NhbGxfbGFiZWwiIG1zZ2lkPSI2ODQ5NDYxOTI1MjM4MzA1MzEiPiLgpIbgpKrgpKTgpJXgpL7gpLLgpYDgpKgg4KSV4KSyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZm9yZ290X3BhdHRlcm5fYnV0dG9uX3RleHQiIG1zZ2lkPSI4ODUyMDIxNDY3ODY4MjIwNjA4Ij4i4KSi4KS+4KSB4KSa4KS+IOCkrOCkv+CksOCljeCkuOCkqOClgSDgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXR0ZXJuIiBtc2dpZD0iMTg1MDgwNjA3MDgwMTM1ODgzMCI+IuCkl+CksuCkpCDgpKLgpL7gpIHgpJrgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXNzd29yZCIgbXNnaWQ9IjIzMzMyODE3NjIxMjgxMTMxNTciPiLgpJfgpLLgpKQg4KSq4KS+4KS44KS14KSw4KWN4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGluIiBtc2dpZD0iMTEzMTMwNjUxMDgzMzU2MzgwMSI+IuCkl+CksuCkpCBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfYXR0ZW1wdHNfY291bnRkb3duIiBtc2dpZD0iNjM1ODExMDIyMTYwMzI5NzU0OCI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPuCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3BhdHRlcm5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzk4OTc4NjExNjgzMDc1ODY4Ij4i4KSG4KSr4KWN4KSo4KWLIOCkouCkvuCkgeCkmuCkviDgpJXgpYvgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiJTSU0gUElOIOCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IlBJTiDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfaW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTc1MzY0NjU1NjE4NjkzNjgxOSI+IuCkquCkvuCkuOCkteCksOCljeCkoSDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4iU0lNIOCkleCkvuCksOCljeCkoSDgpIXgpLngpL/gpLLgpYcg4KSF4KS44KSV4KWN4KS34KSuIOCkm+ClpCDgpLjgpYHgpJrgpL7gpLDgpYEg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyBQVUsg4KSV4KWL4KShIOCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQgIOCkteCkv+CkteCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KS14KS+4KS54KSV4KSy4KS+4KSIIOCkuOCkruCljeCkquCksOCljeCklSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i4KSH4KSa4KWN4KSb4KS/4KSkIFBJTiDgpJXgpYvgpKEg4KSq4KWN4KSw4KS14KS/4KS34KWN4KSf4KS/IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLgpK7gpKjgpKrgpLDgpY3gpKbgpYsgUElOIOCkleCli+CkoSDgpKjgpL/gpLbgpY3gpJrgpL/gpKQg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJTSU0g4KSV4KS+4KSw4KWN4KShIOCkheCkqOCksuCklSDgpJfgpLDgpY3gpKbgpYjigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiLgpJfgpLLgpKQgUElOIOCkleCli+CkoeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IuClqiDgpKbgpYfgpJbgpL8g4KWuIOCkteCkvuCknyDgpKjgpK7gpY3gpKzgpLAg4KSt4KSP4KSV4KWLIOCkj+CkieCkn+CkviBQSU4g4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyDgpJXgpYvgpKEg4KWuIOCkteCkn+CkviDgpKjgpK7gpY3gpKzgpLAg4KS14KS+IOCkuOCliyDgpK3gpKjgpY3gpKbgpL4g4KSs4KSi4KWAIOCkueClgeCkqOClgeCkquCksOCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IlBVSyDgpJXgpYvgpKEg4KSq4KWB4KSoOuCkquCljeCksOCkpuCkvuCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQg4KSn4KWH4KSw4KWIIOCkquClgeCkqDrgpKrgpY3gpLDgpK/gpL7gpLjgpLngpLDgpYLgpLLgpYcgU0lN4KSy4KS+4KSIIOCkuOCljeCkpeCkvuCkr+ClgCDgpLDgpYLgpKrgpK7gpL4g4KSo4KS/4KS34KWN4KSV4KWN4KSw4KS/4KSvIOCkl+CksOCkv+CkpuCkv+CkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4iUElOIOCkleCli+CkoeCkueCksOClgiDgpK7gpYfgpLIg4KSW4KS+4KSP4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4i4KSo4KS/4KSV4KWIIOCkp+Clh+CksOCliCDgpKLgpL7gpIHgpJrgpL4g4KSV4KWL4KS44KS/4KS44KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMTEwMDU1MTI2MTI2NTUwNjQ0OCI+IuCkheCkqOCksuCklSDgpJfgpLDgpY3gpKjgpJXgpYsg4KSy4KS+4KSX4KS/LCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsgR29vZ2xlIOCkluCkvuCkpOCkvuCkleCliyDgpLjgpL7gpKUg4KS44KS+4KSH4KSoIOCkh+CkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl91c2VybmFtZV9oaW50IiBtc2dpZD0iNTcxODUzNDI3MjA3MDkyMDM2NCI+IuCkquCljeCksOCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKjgpL7gpK4gKOCkh+CkruClh+CksikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iOTA1NzI4OTEwMzgyNzI5ODU0OSI+IuCkquCkvuCkuOCkteCksOCljeCkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI1MzU1OTA0NTgyNjc0MDU0NzAyIj4i4KS44KS+4KSH4KSoIOCkh+CkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9pbnZhbGlkX2lucHV0IiBtc2dpZD0iNTc1NDY2NDExOTMxOTg3MjE5NyI+IuCkheCkruCkvuCkqOCljeCkryDgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL7gpKjgpL7gpK4g4KS14KS+IOCkquCkvuCkuOCkteCksOCljeCkoeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2FjY291bnRfcmVjb3ZlcnlfaGludCIgbXNnaWQ9IjU2OTA3MDkxMzI4NDE3NTI5NzQiPiLgpJXgpYcg4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkieCkquCkr+Cli+Ckl+CkleCksOCljeCkpOCkviDgpKjgpL7gpK4g4KS14KS+IOCkquCkvuCkuOCkteCksOCljeCkoSDgpKzgpL/gpLDgpY3gpLjgpKjgpYHgpK3gpK/gpYs/XG4iPGI+Imdvb2dsZS5jb20vYWNjb3VudHMvcmVjb3ZlcnkiPC9iPiIg4KSu4KS+IOCknOCkvuCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IuCkluCkvuCkpOCkviDgpJzgpL7gpIHgpJog4KS54KWB4KSB4KSm4KWI4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsgUElOIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWBIOCkreCkj+CkleCliyDgpJvgpaQgXG5cbjx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSk4KSq4KS+4KSI4KSB4KSVIOCkquCkvuCkuOCkteCksOCljeCkoSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSX4KSy4KSkIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpK3gpI/gpJXgpYsg4KSb4KWkIFxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KS44KWH4KSV4KWH4KSo4KWN4KSh4KSu4KS+IOCkq+Clh+CksOCkvyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3BhdHRlcm5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3NDA4OTQ3NTk2NTA1MDgwNSI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSF4KSo4KSy4KSVIOCkouCkvuCkgeCkmuCkviDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJbgpL/gpJrgpY3gpKjgpYEg4KSt4KSP4KSV4KWLIOCkm+ClpCBcblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSV4KWL4KS44KS/4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ/gpLLgpL7gpIgg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqCDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJXgpYvgpLjgpL/gpLgg4KSX4KSw4KWN4KSo4KWBIOCkreCkj+CkleCliyDgpJvgpaQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KSq4KSb4KS/IOCkpeCkqiDgpIXgpLjgpKvgpLIg4KSq4KWN4KSw4KSv4KS+4KS44KS54KSw4KWCLCDgpJ/gpY3gpK/gpL7gpKzgpY3gpLLgpYfgpJ8g4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSkIOCkleCkvuCksOCljeCkr+CktuCkvuCksuCkvuCkruCkviDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KSX4KSw4KS/4KSo4KWHIOCkmyDgpLAg4KS44KSs4KWIIOCkquCljeCksOCkr+Cli+CklyDgpKHgpYfgpJ/gpL4g4KS54KSw4KS+4KSJ4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQwNTEwMTU5NDMwMzgxOTk5MTAiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSX4KSy4KSk4KS44KSB4KSXIOCkq+Cli+CkqOCksuCkvuCkiCDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJXgpYvgpLjgpL/gpLgg4KSX4KSw4KWN4KSo4KWBIOCkreCkr+Cli+ClpCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgpKrgpJvgpL8g4KSl4KSqIOCkheCkuOCkq+CksiDgpJXgpYvgpLjgpL/gpLjgpLngpLDgpYIsIOCkq+Cli+CkqOCksuCkvuCkiCDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKQg4KSV4KS+4KSw4KWN4KSv4KS24KS+4KSy4KS+4KSu4KS+IOCkquClgeCkqOCkg+CkuOClh+CknyDgpJfgpLDgpL/gpKjgpYcg4KSbIOCksCDgpLjgpKzgpYgg4KSq4KWN4KSw4KSv4KWL4KSXIOCkoeClh+Ckn+CkviDgpLngpLDgpL7gpIngpKjgpYcg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNzI5OTYyNjkxNDg0ODM2MzciPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSf4KWN4KSv4KSs4KWN4KSy4KWH4KSf4KSy4KS+4KSIIOCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4KSq4KSf4KSVIOCkquCljeCksOCkr+CkvuCkuCDgpJfgpLDgpY3gpKjgpYEg4KSt4KSP4KSV4KWLIOCkm+ClpCDgpIXgpKwg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSy4KS+4KSIIOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpCDgpJXgpL7gpLDgpY3gpK/gpLbgpL7gpLLgpL7gpK7gpL4g4KSq4KWB4KSo4KSD4KS44KWH4KSfIOCkl+CksOCkv+CkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQ4MTc2Mjc0NzQ0MTk0NzE1MTgiPiLgpKTgpKrgpL7gpIjgpILgpLLgpYcg4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyDgpKvgpYvgpKggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSo4KWHIOCkquCljeCksOCkr+CkpOCljeCkqCDgpJfgpLDgpY3gpKjgpYHgpK3gpK/gpYvgpaQg4KSF4KSsIOCkq+Cli+CkqCDgpKvgpY3gpK/gpL7gpJXgpY3gpJ/gpY3gpLDgpL8g4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSk4KSu4KS+IOCkquClgeCkqOCkg+CkuOClh+CknyDgpLngpYHgpKjgpYcg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMzI1MzU3NTU3MjExODkxNDM3MCI+IuCkpOCkquCkvuCkiOCkguCksuClhyDgpJfgpLLgpKQg4KSk4KSw4KS/4KSV4KS+4KSy4KWHIOCkhuCkq+CljeCkqOCliyDgpIXgpKjgpLLgpJUg4KSi4KS+4KSB4KSa4KS+IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpJXgpYvgpLDgpY3gpKjgpYHgpK3gpK/gpYvgpaQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KS14KS/4KSr4KSyIOCkquCljeCksOCkr+CkpOCljeCkqOCkueCksOClgiDgpKrgpJvgpL8sIOCkpOCkquCkvuCkiOCkguCksuCkvuCkiCDgpIbgpKvgpY3gpKjgpYsg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkh+CkruClh+CksiDgpJbgpL7gpKTgpL4g4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClh+CksCDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIOCkuOCli+Ckp+Ckv+CkqOClhyDgpJvgpaRcblxuIOCkq+Clh+CksOCkvyDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkueCksOClguCkruCkvuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkhuCkq+CljeCkqOCliyDgpIXgpKjgpLLgpJUg4KSi4KS+4KSB4KSa4KS+IOCkl+CksuCkpCDgpLDgpYLgpKrgpK7gpL4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4KSq4KSf4KSVIOCkpOCkvuCkqOCljeCkqOClgSDgpK3gpI/gpJXgpYsg4KSb4KWkIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkp+Clh+CksOCliCDgpIXgpLjgpKvgpLIg4KSq4KWN4KSw4KSv4KS+4KS44KS54KSw4KWC4KSq4KSb4KS/LCDgpKTgpKrgpL7gpIjgpIHgpLLgpL7gpIgg4KSP4KSJ4KSf4KS+IOCkh+CkruClh+CksiDgpJbgpL7gpKTgpL7gpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOClh+CksCDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSr4KWL4KSoIOCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KS44KWL4KSn4KS/4KSo4KWHIOCkm+ClpFxuXG4g4KSr4KWH4KSw4KS/IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i4KS54KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4i4KSF4KSY4KS/4KSy4KWN4KSy4KWLIOCkn+CljeCksOCkr+CkvuCklSDgpKzgpJ/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiLgpIXgpLDgpY3gpJXgpYsg4KSf4KWN4KSw4KSv4KS+4KSVIOCkrOCkn+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiLgpLDgpYvgpJXgpY3gpKjgpYcg4KSs4KSf4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSIyOTI0NjI4ODYzNzQxMTUwOTU2Ij4i4KSs4KSf4KSoIOCkrOCknOCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMzA4NDE3OTMyNDgxMDU3NTc4NyI+IuCkrOCkn+CkqCDgpLDgpYvgpJXgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jYXJyaWVyX2RlZmF1bHQiIG1zZ2lkPSI4NzAwNjUwNDAzMDU0MDQyMTUzIj4i4KSV4KWB4KSo4KWIIOCkuOClh+CkteCkviDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtbmUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLW5lL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmYTExODIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLW5lL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMTM4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qIC8vZGV2aWNlL2FwcHMvY29tbW9uL2Fzc2V0cy9yZXMvYW55L3N0cmluZ3MueG1sCisqKgorKiogQ29weXJpZ2h0IDIwMDYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IlBJTiDgpJXgpYvgpKEg4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IlBVSyDgpLAg4KSo4KSv4KS+4KSBIFBJTiDgpJXgpYvgpKEg4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iUFVLIOCkleCli+CkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4i4KSo4KSv4KS+4KSBIFBJTiDgpJXgpYvgpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiLgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqCDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY0iPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIOCkquCkvuCkuOCkteCksOCljeCkoSDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqCBQSU4g4KSV4KWL4KShIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLgpJfgpLLgpKQgUElOIOCkleCli+CkoeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2xhYmVsX3RleHQiIG1zZ2lkPSI4NjE3OTY0NjEwMjgyOTg0MjQiPiLgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIOCkruClh+CkqOClgSDgpKXgpL/gpJrgpY3gpKjgpYHgpLngpYvgpLjgpY0g4KSwIOCkpOCljeCkr+CkuOCkquCkm+CkvyDgpaYg4KSl4KS/4KSa4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjZXVubG9ja19tdWx0aXBsZV9mYWlsdXJlcyIgbXNnaWQ9Ijc1NDEzNzU4MzAyMjc5MjQyOSI+IuCkheCkpOCljeCkr+CkvuCkp+Ckv+CklSDgpK7gpYvgpLngpKHgpL4g4KSW4KWL4KSy4KWN4KSo4KWHIOCkquCljeCksOCkr+CkvuCkuOCkueCksOClgiDgpKzgpKLgpYAg4KSt4KSP4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2hhcmdlZCIgbXNnaWQ9IjMyNzIyMjM5MDYwNzM0OTI0NTQiPiLgpJrgpL7gpLDgpY3gpJwg4KSt4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGx1Z2dlZF9pbiIgbXNnaWQ9IjgxMTc1NzIwMDA2Mzk5OTgzODgiPiLgpJrgpL7gpLDgpY3gpJwg4KSX4KSw4KWN4KSm4KWILCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbG93X2JhdHRlcnkiIG1zZ2lkPSI4MTQzODA4MDE4NzE5MTczODU5Ij4i4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkmuCkvuCksOCljeCknOCksCDgpJzgpYvgpKHgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9pbnN0cnVjdGlvbnNfd2hlbl9wYXR0ZXJuX2Rpc2FibGVkIiBtc2dpZD0iMTMzMjI4ODI2ODYwMDMyOTg0MSI+IuCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KSu4KWH4KSo4KWBIOCkpeCkv+CkmuCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX25ldHdvcmtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI5MTY5NzE3Nzc5MDU4MDM3MTY4Ij4i4KSo4KWH4KSf4KS14KSw4KWN4KSVIOCksuCklSDgpJfgpLDgpL/gpI/gpJXgpYsg4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjQ5NDk4MDU2MTMwNDIxMTkzMSI+IlNJTSDgpJXgpL7gpLDgpY3gpKEg4KSb4KWI4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTQ0NTg0OTAwNTkwOTI2MDAzOSI+IuCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CkruCkviBTSU0g4KSV4KS+4KSw4KWN4KShIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDgxMTEwMzk1NTA4NjM3NjQzIj4i4KSr4KWL4KSo4KSu4KS+IOCkleClgeCkqOCliCBTSU0g4KSV4KS+4KSw4KWN4KShIOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX2luc3RydWN0aW9ucyIgbXNnaWQ9IjUyMTA4OTE1MDk5OTU5NDIyNTAiPiJTSU0g4KSV4KS+4KSw4KWN4KShIOCkreCkv+CkpOCljeCksCDgpLDgpL7gpJbgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjU5Njg5ODU0ODk0NjM4NzAzNTgiPiJTSU0g4KSV4KS+4KSw4KWN4KShIOCkueCksOCkvuCkh+CksOCkueClh+CkleCliyDgpJsg4KS14KS+IOCkquCkouCljeCkqCDgpK/gpYvgpJfgpY3gpK8g4KSb4KWI4KSo4KWkIFNJTSDgpJXgpL7gpLDgpY3gpKEg4KS54KS+4KSy4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGVybWFuZW50X2Rpc2FibGVkX3NpbV9tZXNzYWdlX3Nob3J0IiBtc2dpZD0iODM0MDgxMzk4OTU4NjYyMjM1NiI+IuCkquCljeCksOCkr+Cli+CklyDgpIXgpK/gpYvgpJfgpY3gpK8gU0lNIOCkleCkvuCksOCljeCkoeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTg5Mjk0MDkwOTY5OTcyMzU0NCI+IuCkpOCkquCkvuCkiOCkgeCkleCliyBTSU0g4KSV4KS+4KSw4KWN4KShIOCkuOCljeCkpeCkvuCkr+ClgCDgpLDgpYLgpKrgpK7gpL4g4KSF4KS44KSV4KWN4KS34KSuIOCkquCkvuCksOCkv+Ckj+CkleCliyDgpJvgpaRcbiDgpIXgpLDgpY3gpJXgpYsgU0lNIOCkleCkvuCksOCljeCkoeCkleCliyDgpLLgpL7gpJfgpL8g4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkpOCkvuCksOCksOCkueCkv+CkpCDgpLjgpYfgpLXgpL4g4KSq4KWN4KSw4KSm4KS+4KSv4KSV4KS44KSB4KSXIOCkuOCkruCljeCkquCksOCljeCklSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI2ODc1NzczNDEzMzA2MzgwOTAyIj4iU0lNIOCkleCkvuCksOCljeCkoSDgpLLgpJUg4KSX4KSw4KS/4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3B1a19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NDcyMzI0Njc0NzE4MDE2MzMiPiJTSU0g4KSV4KS+4KSw4KWN4KShIFBVSy3gpLLgpJUg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc5NzUyMjE4MDUwMzM2MTQ0MjYiPiJTSU0g4KSV4KS+4KSw4KWN4KShIOCkheCkqOCksuCklSDgpLngpYHgpIHgpKbgpYjigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9jaGFuZ2VkIiBtc2dpZD0iNTY3ODYyNDYyNDY4MTQwMDE5MSI+IiUxJHMuIOCkteCkv+CknOClh+CknyAlMiRkIG9mICUzJGTgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2FkZF93aWRnZXQiIG1zZ2lkPSI4MjczMjc3MDU4NzI0OTI0NjU0Ij4i4KS14KS/4KSc4KWH4KSfIOCkpeCkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9lbXB0eV9zbG90IiBtc2dpZD0iMTI4MTUwNTcwMzMwNzkzMDc1NyI+IuCkluCkvuCksuClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfZXhwYW5kZWQiIG1zZ2lkPSIyMjc4MTA2MDIyMzExMTcwMjk5Ij4i4KSF4KSo4KSy4KSVIOCkleCljeCkt+Clh+CkpOCljeCksCDgpLXgpL/gpLjgpY3gpKTgpL7gpLAg4KSt4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9jb2xsYXBzZWQiIG1zZ2lkPSI2MzY2OTkyMDY2OTM2MDc2Mzk2Ij4i4KSF4KSo4KSy4KSVIOCkleCljeCkt+Clh+CkpOCljeCksCDgpK3gpKTgpY3gpJXgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldCIgbXNnaWQ9IjY1MjcxMzEwMzk3NDE4MDgyNDAiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDgpLXgpL/gpJzgpYfgpJ/gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VzZXJfc2VsZWN0b3IiIG1zZ2lkPSIxMjI2Nzk4MzcwOTEzNjk4ODk2Ij4i4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IOCkm+CkqOCljOCkn+CkleCksOCljeCkpOCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc3RhdHVzIiBtc2dpZD0iODAwODI2NDYwMzkzNTkzMDYxMSI+IuCkuOCljeCkpeCkv+CkpOCkvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfY2FtZXJhIiBtc2dpZD0iODkwNDIzMTE5NDE4MTExNDYwMyI+IuCkleCljeCkr+CkvuCkruClh+CksOCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWdhdXJkX2FjY2Vzc2liaWxpdHlfbWVkaWFfY29udHJvbHMiIG1zZ2lkPSIyNjIyMDk2NTQyOTIxNjE4MDYiPiLgpK7gpL/gpKHgpL/gpK/gpL4g4KSo4KS/4KSv4KSo4KWN4KSk4KWN4KSw4KSj4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9zdGFydCIgbXNnaWQ9Ijg3MzY4NTM2MTU1ODg4MjgxOTciPiLgpLXgpL/gpJzgpYfgpJ8g4KSq4KWB4KSo4KSD4KSV4KWN4KSw4KSuIOCkl+CksOCljeCkqOClhyDgpLjgpYHgpLDgpYEg4KSt4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9lbmQiIG1zZ2lkPSI3MTcwMTkwOTUwODcwNDY4MzIwIj4i4KS14KS/4KSc4KWH4KSfIOCkquClgeCkqOCkg+CkleCljeCksOCkriDgpLjgpK7gpL7gpKrgpY3gpKQg4KSt4KSP4KSV4KWLIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2RlbGV0ZWQiIG1zZ2lkPSI0NDI2MjA0MjYzOTI5MjI0NDM0Ij4i4KS14KS/4KSc4KWH4KSfIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOCkruClh+Ckn+CkvuCkh+Ckr+Cli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZXhwYW5kX2xvY2tfYXJlYSIgbXNnaWQ9IjUxOTg1OTcyMDkzNDE3ODAyNCI+IuCkheCkqOCksuCklSDgpJXgpY3gpLfgpYfgpKTgpY3gpLAg4KSs4KSi4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV91bmxvY2siIG1zZ2lkPSIyOTU5OTI4NDc4NzY0Njk3MjU0Ij4i4KS44KWN4KSy4KS+4KSH4KShIOCkheCkqOCksuCkleClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl91bmxvY2siIG1zZ2lkPSIxNDkwODQwNzA2MDc1MjQ2NjEyIj4i4KSi4KS+4KSB4KSa4KS+IOCkheCkqOCksuCkleClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZmFjZV91bmxvY2siIG1zZ2lkPSI0ODE3MjgyNTQzMzUxNzE4NTM1Ij4i4KSr4KWH4KS4IOCkheCkqOCksuCklSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiJQaW4g4KSF4KSo4KSy4KSVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXNzd29yZF91bmxvY2siIG1zZ2lkPSI3Njc1Nzc3NjIzOTEyMTU1MDg5Ij4i4KSq4KS+4KS44KS14KSw4KWN4KShIOCkheCkqOCksuCkleClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGF0dGVybl9hcmVhIiBtc2dpZD0iNzY3OTg5MTMyNDUwOTU5NzkwNCI+IuCkouCkvuCkgeCkmuCkviDgpJXgpY3gpLfgpYfgpKTgpY3gpLDgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4i4KS44KWN4KSy4KS+4KSH4KShIOCkleCljeCkt+Clh+CkpOCljeCksOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSIxMzM3Mjg2NTM4MzE4NTQzNTU1Ij4i4KSF4KSY4KS/4KSy4KWN4KSy4KWLIOCkquCkpSDgpKzgpJ/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzA3MzkyODMwMDQ0NDkwOTMyMCI+IuCkheCksOCljeCkleCliyDgpKrgpKUg4KSs4KSf4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4i4KSw4KWL4KSV4KWN4KSo4KWHIOCkrOCkn+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4i4KSs4KSc4KS+4KSJ4KSo4KWHIOCkrOCkn+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4i4KSs4KSf4KSoIOCksOCli+CkleCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/4KWn4KWo4KWpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfYWx0IiBtc2dpZD0iNDg1Njg2ODgyMDA0MDA1MTkzOSI+IkFsdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2NhbmNlbCIgbXNnaWQ9IjEyMDM5ODQwMTcyNDU3ODMyNDQiPiLgpLDgpKbgpY3gpKYg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfZGVsZXRlIiBtc2dpZD0iMzMzNzkxNDgzMzIwNjYzNTc0NCI+IuCkruClh+Ckn+CljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RvbmUiIG1zZ2lkPSIxOTkyNTcxMTE4NDY2Njc5Nzc1Ij4i4KSt4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfbW9kZV9jaGFuZ2UiIG1zZ2lkPSI0NTQ3Mzg3NzQxOTA2NTM3NTE5Ij4i4KSu4KWL4KShIOCkquCksOCkv+CkteCksOCljeCkpOCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9zaGlmdCIgbXNnaWQ9IjIyNzA3NDg4MTQzMTUxNDc2OTAiPiJTaGlmdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IuCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfdW5sb2NrIiBtc2dpZD0iMjIyODUyNDkwMDQzOTgwMTQ1MyI+IuCkheCkqOCksuCklSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfY2FtZXJhIiBtc2dpZD0iOTY5MDcxOTk3NTUyNDg2ODE0Ij4i4KSV4KWN4KSv4KS+4KSu4KWH4KSw4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NpbGVudCIgbXNnaWQ9Ijg5MzU1MTI4Nzc0NjUyMjE4MiI+IuCkruCljOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zb3VuZG9uIiBtc2dpZD0iMzAwNTI0NjY2NzU1MDAxNzIiPiLgpIbgpLXgpL7gpJwg4KSa4KS+4KSy4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiLgpJbgpYvgpJzgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+4KSV4KWLIOCksuCkvuCkl+CkvyDgpK7gpL7gpKXgpL8g4KSn4KS/4KS44KS+4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2Rvd24iIG1zZ2lkPSI1MDg3NzM5NzI4NjM5MDE0NTk1Ij4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IOCkleCliyDgpLLgpL7gpJfgpL8g4KSk4KSyIOCkuOCljeCksuCkvuCkh+CkoSDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fbGVmdCIgbXNnaWQ9IjcyMDc0Nzg3MTk4MDU1NjIxNjUiPiLgpLjgpY3gpLLgpL7gpIfgpKEgPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+4KSV4KWLIOCksuCkvuCkl+CkvyDgpKzgpL7gpK/gpL7gpIHgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fcmlnaHQiIG1zZ2lkPSI4MDM0NDMzMjQyNTc5NjAwOTgwIj4i4KS44KWN4KSy4KS+4KSH4KShIDx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPuCkleCliyDgpLLgpL7gpJfgpL8g4KSm4KS+4KSv4KS+4KSB4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlcl9zd2l0Y2hlZCIgbXNnaWQ9IjM3NjgwMDY3ODMxNjY5ODQ0MTAiPiLgpIXgpLngpL/gpLLgpYfgpJXgpYsg4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IDx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2VtZXJnZW5jeV9jYWxsX2xhYmVsIiBtc2dpZD0iNjg0OTQ2MTkyNTIzODMwNTMxIj4i4KSG4KSq4KSk4KSV4KS+4KSy4KWA4KSoIOCkleCksiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZvcmdvdF9wYXR0ZXJuX2J1dHRvbl90ZXh0IiBtc2dpZD0iODg1MjAyMTQ2Nzg2ODIyMDYwOCI+IuCkouCkvuCkgeCkmuCkviDgpKzgpL/gpLDgpY3gpLjgpKjgpYEg4KSt4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiLgpJfgpLLgpKQg4KSi4KS+4KSB4KSa4KS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGFzc3dvcmQiIG1zZ2lkPSIyMzMzMjgxNzYyMTI4MTEzMTU3Ij4i4KSX4KSy4KSkIOCkquCkvuCkuOCkteCksOCljeCkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiLgpJfgpLLgpKQgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz7gpLjgpYfgpJXgpYfgpKjgpY3gpKHgpK7gpL4g4KSr4KWH4KSw4KS/IOCkquCljeCksOCkr+CkvuCkuCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXR0ZXJuX2luc3RydWN0aW9ucyIgbXNnaWQ9IjM5ODk3ODYxMTY4MzA3NTg2OCI+IuCkhuCkq+CljeCkqOCliyDgpKLgpL7gpIHgpJrgpL4g4KSV4KWL4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4iU0lNIFBJTiDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzNzcyNDIyMzM0OTUxMTE1NTciPiJQSU4g4KSq4KWN4KSw4KS14KS/4KS34KWN4KSf4KS/IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU3NTM2NDY1NTYxODY5MzY4MTkiPiLgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSq4KWN4KSw4KS14KS/4KS34KWN4KSf4KS/IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+IlNJTSDgpJXgpL7gpLDgpY3gpKEg4KSF4KS54KS/4KSy4KWHIOCkheCkuOCkleCljeCkt+CkriDgpJvgpaQg4KS44KWB4KSa4KS+4KSw4KWBIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8gUFVLIOCkleCli+CkoSDgpKrgpY3gpLDgpLXgpL/gpLfgpY3gpJ/gpL8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkICDgpLXgpL/gpLXgpLDgpKPgpJXgpYsg4KSy4KS+4KSX4KS/IOCkteCkvuCkueCkleCksuCkvuCkiCDgpLjgpK7gpY3gpKrgpLDgpY3gpJUg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IuCkh+CkmuCljeCkm+Ckv+CkpCBQSU4g4KSV4KWL4KShIOCkquCljeCksOCkteCkv+Ckt+CljeCkn+CkvyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4i4KSu4KSo4KSq4KSw4KWN4KSm4KWLIFBJTiDgpJXgpYvgpKEg4KSo4KS/4KS24KWN4KSa4KS/4KSkIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iU0lNIOCkleCkvuCksOCljeCkoSDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSm4KWI4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i4KSX4KSy4KSkIFBJTiDgpJXgpYvgpKHgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLgpaog4KSm4KWH4KSW4KS/IOClriDgpLXgpL7gpJ8g4KSo4KSu4KWN4KSs4KSwIOCkreCkj+CkleCliyDgpI/gpIngpJ/gpL4gUElOIOCkn+CkvuCkh+CkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJQVUsg4KSV4KWL4KShIOClriDgpLXgpJ/gpL4g4KSo4KSu4KWN4KSs4KSwIOCkteCkviDgpLjgpYsg4KSt4KSo4KWN4KSm4KS+IOCkrOCkouClgCDgpLngpYHgpKjgpYHgpKrgpLDgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiJQVUsg4KSV4KWL4KShIOCkquClgeCkqDrgpKrgpY3gpLDgpKbgpL7gpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIOCkp+Clh+CksOCliCDgpKrgpYHgpKg64KSq4KWN4KSw4KSv4KS+4KS44KS54KSw4KWC4KSy4KWHIFNJTeCksuCkvuCkiCDgpLjgpY3gpKXgpL7gpK/gpYAg4KSw4KWC4KSq4KSu4KS+IOCkqOCkv+Ckt+CljeCkleCljeCksOCkv+CkryDgpJfgpLDgpL/gpKbgpL/gpKjgpYcg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9jb25maXJtX3Bpbl9oaW50IiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNzAwMzQ2OTI2MTQ2NDU5MzUxNiI+IlBJTiDgpJXgpYvgpKHgpLngpLDgpYIg4KSu4KWH4KSyIOCkluCkvuCkj+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3Rvb19tYW55X2F0dGVtcHRzIiBtc2dpZD0iNjQ4Njg0MjA5NDAwNTY5ODQ3NSI+IuCkqOCkv+CkleCliCDgpKfgpYfgpLDgpYgg4KSi4KS+4KSB4KSa4KS+IOCkleCli+CkuOCkv+CkuOCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2luc3RydWN0aW9ucyIgbXNnaWQ9IjExMDA1NTEyNjEyNjU1MDY0NDgiPiLgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+Ckvywg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIEdvb2dsZSDgpJbgpL7gpKTgpL7gpJXgpYsg4KS44KS+4KSlIOCkuOCkvuCkh+CkqCDgpIfgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9IjU3MTg1MzQyNzIwNzA5MjAzNjQiPiLgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSo4KS+4KSuICjgpIfgpK7gpYfgpLIpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fcGFzc3dvcmRfaGludCIgbXNnaWQ9IjkwNTcyODkxMDM4MjcyOTg1NDkiPiLgpKrgpL7gpLjgpLXgpLDgpY3gpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9zdWJtaXRfYnV0dG9uIiBtc2dpZD0iNTM1NTkwNDU4MjY3NDA1NDcwMiI+IuCkuOCkvuCkh+CkqCDgpIfgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjU3NTQ2NjQxMTkzMTk4NzIxOTciPiLgpIXgpK7gpL7gpKjgpY3gpK8g4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+4KSo4KS+4KSuIOCkteCkviDgpKrgpL7gpLjgpLXgpLDgpY3gpKHgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i4KSV4KWHIOCkpOCkquCkvuCkiOCkgeCksuClhyDgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4g4KSo4KS+4KSuIOCkteCkviDgpKrgpL7gpLjgpLXgpLDgpY3gpKEg4KSs4KS/4KSw4KWN4KS44KSo4KWB4KSt4KSv4KWLP1xuIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4iIOCkruCkviDgpJzgpL7gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9jaGVja2luZ19wYXNzd29yZCIgbXNnaWQ9IjEwNTI2ODUxOTc3MTAyNTIzOTUiPiLgpJbgpL7gpKTgpL4g4KSc4KS+4KSB4KSaIOCkueClgeCkgeCkpuCliOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9waW5fYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4Mjc2NzQ1NjQyMDQ5NTAyNTUwIj4i4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkl+CksuCkpCDgpKTgpLDgpL/gpJXgpL7gpLLgpYcg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIFBJTiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSf4KS+4KSH4KSqIOCkl+CksOCljeCkqOClgSDgpK3gpI/gpJXgpYsg4KSb4KWkIFxuXG48eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgpLjgpYfgpJXgpYfgpKjgpY3gpKHgpK7gpL4g4KSr4KWH4KSw4KS/IOCkquCljeCksOCkr+CkvuCkuCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGFzc3dvcmRfYXR0ZW1wdHNfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI3ODEzNzEzMzg5NDIyMjI2NTMxIj4i4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkpOCkquCkvuCkiOCkgeCklSDgpKrgpL7gpLjgpLXgpLDgpY3gpKEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4KSq4KSf4KSVIOCkl+CksuCkpCDgpJ/gpL7gpIfgpKog4KSX4KSw4KWN4KSo4KWB4KSt4KSP4KSV4KWLIOCkm+ClpCBcblxuIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkuOClh+CkleClh+CkqOCljeCkoeCkruCkviDgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXR0ZXJuX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzQwODk0NzU5NjUwNTA4MDUiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkheCkqOCksuCklSDgpKLgpL7gpIHgpJrgpL4g4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSW4KS/4KSa4KWN4KSo4KWBIOCkreCkj+CkleCliyDgpJvgpaQgXG5cbiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgpLjgpYfgpJXgpYfgpKjgpY3gpKHgpK7gpL4g4KSr4KWH4KSw4KS/IOCkleCli+CkuOCkv+CkuCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE1NzU1NTcyMDA2MjcxMjg5NDkiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSf4KSy4KS+4KSIIOCkheCkqOCksuCklSDgpJfgpLDgpY3gpKgg4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSV4KWL4KS44KS/4KS4IOCkl+CksOCljeCkqOClgSDgpK3gpI/gpJXgpYsg4KSb4KWkIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkquCkm+CkvyDgpKXgpKog4KSF4KS44KSr4KSyIOCkquCljeCksOCkr+CkvuCkuOCkueCksOClgiwg4KSf4KWN4KSv4KS+4KSs4KWN4KSy4KWH4KSfIOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpCDgpJXgpL7gpLDgpY3gpK/gpLbgpL7gpLLgpL7gpK7gpL4g4KSq4KWB4KSo4KSD4KS44KWH4KSfIOCkl+CksOCkv+CkqOClhyDgpJsg4KSwIOCkuOCkrOCliCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSh4KWH4KSf4KS+IOCkueCksOCkvuCkieCkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MDUxMDE1OTQzMDM4MTk5OTEwIj4i4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkl+CksuCkpOCkuOCkgeCklyDgpKvgpYvgpKjgpLLgpL7gpIgg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSV4KWL4KS44KS/4KS4IOCkl+CksOCljeCkqOClgSDgpK3gpK/gpYvgpaQgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4KSq4KSb4KS/IOCkpeCkqiDgpIXgpLjgpKvgpLIg4KSV4KWL4KS44KS/4KS44KS54KSw4KWCLCDgpKvgpYvgpKjgpLLgpL7gpIgg4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSkIOCkleCkvuCksOCljeCkr+CktuCkvuCksuCkvuCkruCkviDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KSX4KSw4KS/4KSo4KWHIOCkmyDgpLAg4KS44KSs4KWIIOCkquCljeCksOCkr+Cli+CklyDgpKHgpYfgpJ/gpL4g4KS54KSw4KS+4KSJ4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIyMDcyOTk2MjY5MTQ4NDgzNjM3Ij4i4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkn+CljeCkr+CkrOCljeCksuClh+Ckn+CksuCkvuCkiCDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIOCkl+CksuCkpCDgpKTgpLDgpL/gpJXgpL7gpLLgpYcgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpKrgpY3gpLDgpK/gpL7gpLgg4KSX4KSw4KWN4KSo4KWBIOCkreCkj+CkleCliyDgpJvgpaQg4KSF4KSsIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+Ckn+CksuCkvuCkiCDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKQg4KSV4KS+4KSw4KWN4KSv4KS24KS+4KSy4KS+4KSu4KS+IOCkquClgeCkqOCkg+CkuOClh+CknyDgpJfgpLDgpL/gpKjgpYcg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4i4KSk4KSq4KS+4KSI4KSC4KSy4KWHIOCkl+CksuCkpCDgpKTgpLDgpL/gpJXgpL7gpLLgpYcg4KSr4KWL4KSoIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqOClhyDgpKrgpY3gpLDgpK/gpKTgpY3gpKgg4KSX4KSw4KWN4KSo4KWB4KSt4KSv4KWL4KWkIOCkheCkrCDgpKvgpYvgpKgg4KSr4KWN4KSv4KS+4KSV4KWN4KSf4KWN4KSw4KS/IOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpOCkruCkviDgpKrgpYHgpKjgpIPgpLjgpYfgpJ8g4KS54KWB4KSo4KWHIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMyNTM1NzU1NzIxMTg5MTQzNzAiPiLgpKTgpKrgpL7gpIjgpILgpLLgpYcg4KSX4KSy4KSkIOCkpOCksOCkv+CkleCkvuCksuClhyDgpIbgpKvgpY3gpKjgpYsg4KSF4KSo4KSy4KSVIOCkouCkvuCkgeCkmuCkviA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgpKrgpJ/gpJUg4KSV4KWL4KSw4KWN4KSo4KWB4KSt4KSv4KWL4KWkIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOCkteCkv+Ckq+CksiDgpKrgpY3gpLDgpK/gpKTgpY3gpKjgpLngpLDgpYIg4KSq4KSb4KS/LCDgpKTgpKrgpL7gpIjgpILgpLLgpL7gpIgg4KSG4KSr4KWN4KSo4KWLIOCkn+CljeCkr+CkvuCkrOCljeCksuClh+CknyDgpIfgpK7gpYfgpLIg4KSW4KS+4KSk4KS+IOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpYfgpLAg4KSF4KSo4KSy4KSVIOCkl+CksOCljeCkqCDgpLjgpYvgpKfgpL/gpKjgpYcg4KSb4KWkXG5cbiDgpKvgpYfgpLDgpL8g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDgpLjgpYfgpJXgpYfgpKjgpY3gpKHgpLngpLDgpYLgpK7gpL7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IuCkpOCkquCkvuCkiOCkgeCksuClhyDgpIbgpKvgpY3gpKjgpYsg4KSF4KSo4KSy4KSVIOCkouCkvuCkgeCkmuCkviDgpJfgpLLgpKQg4KSw4KWC4KSq4KSu4KS+IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOCkquCkn+CklSDgpKTgpL7gpKjgpY3gpKjgpYEg4KSt4KSP4KSV4KWLIOCkm+ClpCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgpKfgpYfgpLDgpYgg4KSF4KS44KSr4KSyIOCkquCljeCksOCkr+CkvuCkuOCkueCksOClguCkquCkm+Ckvywg4KSk4KSq4KS+4KSI4KSB4KSy4KS+4KSIIOCkj+CkieCkn+CkviDgpIfgpK7gpYfgpLIg4KSW4KS+4KSk4KS+4KSV4KWLIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpYfgpLAg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkq+Cli+CkqCDgpIXgpKjgpLLgpJUg4KSX4KSw4KWN4KSoIOCkuOCli+Ckp+Ckv+CkqOClhyDgpJvgpaRcblxuIOCkq+Clh+CksOCkvyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDgpLjgpYfgpJXgpYfgpKjgpY3gpKHgpK7gpL4g4KSq4KWN4KSw4KSv4KS+4KS4IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IuCkueCkn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IuCkheCkmOCkv+CksuCljeCksuCliyDgpJ/gpY3gpLDgpK/gpL7gpJUg4KSs4KSf4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4i4KSF4KSw4KWN4KSV4KWLIOCkn+CljeCksOCkr+CkvuCklSDgpKzgpJ/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4i4KSw4KWL4KSV4KWN4KSo4KWHIOCkrOCkn+CkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjkyNDYyODg2Mzc0MTE1MDk1NiI+IuCkrOCkn+CkqCDgpKzgpJzgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjMwODQxNzkzMjQ4MTA1NzU3ODciPiLgpKzgpJ/gpKgg4KSw4KWL4KSV4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfY2Fycmllcl9kZWZhdWx0IiBtc2dpZD0iODcwMDY1MDQwMzA1NDA0MjE1MyI+IuCkleClgeCkqOCliCDgpLjgpYfgpLXgpL4g4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLW5sL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1ubC9zdHJpbmdzLnhtbAppbmRleCBiOTRjYjcwLi4zNDE0OWM5IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLW5sL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtbmwvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IlBpbmNvZGUgdHlwZW4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiJHZWVmIGRlIFBVSy1jb2RlIGVuIGRlIG5pZXV3ZSBwaW5jb2RlIG9wIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUstY29kZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iTmlldXdlIHBpbmNvZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiJUeXAgZGUgcHVrY29kZSB2b29yIGRlIHNpbWthYXJ0IGVuIGRlIG5pZXV3ZSBwaW5jb2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJQdWtjb2RlIHZvb3Igc2lta2FhcnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+Ik5pZXV3ZSBwaW5jb2RlIHZvb3Igc2lta2FhcnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiJSYWFrIGFhbiBvbSB3YWNodHdvb3JkIGluIHRlIHZvZXJlbiI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IlR5cCBoZXQgd2FjaHR3b29yZCBvbSB0ZSBvbnRncmVuZGVsZW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJUeXAgcGluY29kZSBvbSB0ZSBvbnRncmVuZGVsZW4iPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4iS25vcCB2b29yIG9uZGVyYnJla2VuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJLbm9wIHZvb3IgYWZzcGVsZW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+Iktub3Agdm9vciBzdG9wcGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IkxldWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiJOaWV0IGxldWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiJIYXJ0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4iT250Z3JlbmRlbCBvbSBkb29yIHRlIGdhYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJTdGFydCBnZWFubnVsZWVyZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJaZXQgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gbmVlciBvbSB0ZSB2ZXJ3aWpkZXJlbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gd29yZHQgbmlldCB2ZXJ3aWpkZXJkLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQWx0Ijwvc3RyaW5nPgpAQCAtMTA1LDcgKzExMiw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4iR2V3ZW5zdGUgcGluY29kZSBvcGdldmVuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+Ikdld2Vuc3RlIHBpbmNvZGUgYmV2ZXN0aWdlbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iU2lta2FhcnQgb250Z3JlbmRlbGVuLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iT25qdWlzdGUgcGluY29kZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiJWb2VyIGVlbiBwaW5jb2RlIHZhbiA0IHRvdCA4IGNpamZlcnMgaW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iRGUgUFVLLWNvZGUgaXMgbWluaW1hYWwgYWNodCBudW1tZXJzIGxhbmcuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iR2VlZiBkZSBqdWlzdGUgUFVLLWNvZGUgb3BuaWV1dyBvcC4gQmlqIGhlcmhhYWxkZSBwb2dpbmdlbiB3b3JkdCBkZSBzaW1rYWFydCBwZXJtYW5lbnQgdWl0Z2VzY2hha2VsZC4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IlUgaGVlZnQgdXcgb250Z3JlbmRlbGluZ3NwYXRyb29uIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IGtlZXIgb25qdWlzdCBnZXRla2VuZC4gTmEgbm9nIGVlbnMgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gbWlzbHVrdGUgcG9naW5nZW4gd29yZHQgdSBnZXZyYWFnZCB1dyB0ZWxlZm9vbiB0ZSBvbnRncmVuZGVsZW4gdmlhIGVlbiBlLW1haWxhY2NvdW50LlxuXG4gUHJvYmVlciBoZXQgb3ZlciA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzZWNvbmRlbiBvcG5pZXV3LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IlZlcndpamRlcmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiJPbmp1aXN0ZSBwaW5jb2RlIHZvb3Igc2lta2FhcnQuIFUgbW9ldCBudSBjb250YWN0IG9wbmVtZW4gbWV0IHV3IHByb3ZpZGVyIG9tIHV3IGFwcGFyYWF0IHRlIG9udGdyZW5kZWxlbi4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+Ik9uanVpc3RlIHBpbmNvZGUgdm9vciBzaW1rYWFydC4gVSBoZWVmdCBub2cgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHBvZ2luZyBvdmVyIHZvb3JkYXQgdSBjb250YWN0IG1ldCB1dyBwcm92aWRlciBtb2V0IG9wbmVtZW4gb20gdXcgYXBwYXJhYXQgdGUgb250Z3JlbmRlbGVuLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+Ik9uanVpc3RlIHBpbmNvZGUgdm9vciBzaW1rYWFydC4gVSBoZWVmdCBub2cgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHBvZ2luZ2VuIG92ZXIuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJTaW1rYWFydCBpcyBvbmJydWlrYmFhci4gTmVlbSBjb250YWN0IG9wIG1ldCB1dyBwcm92aWRlci4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+Ik9uanVpc3RlIHB1a2NvZGUgdm9vciBzaW1rYWFydC4gVSBoZWVmdCBub2cgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHBvZ2luZyBvdmVyIHZvb3JkYXQgZGUgc2lta2FhcnQgZGVmaW5pdGllZiBvbmJydWlrYmFhciB3b3JkdC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiJPbmp1aXN0ZSBwdWtjb2RlIHZvb3Igc2lta2FhcnQuIFUgaGVlZnQgbm9nIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwb2dpbmdlbiBvdmVyIHZvb3JkYXQgZGUgc2lta2FhcnQgZGVmaW5pdGllZiBvbmJydWlrYmFhciB3b3JkdC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IkJld2Vya2luZyBtZXQgcGluY29kZSB2b29yIHNpbWthYXJ0IG1pc2x1a3QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJCZXdlcmtpbmcgbWV0IHB1a2NvZGUgdm9vciBzaW1rYWFydCBpcyBtaXNsdWt0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9hY2NlcHRlZCIgbXNnaWQ9IjE0NDgyNDE2NzM1NzAwMjAwOTciPiJDb2RlIGdlYWNjZXB0ZWVyZC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiJLbm9wIHZvb3Igdm9yaWcgbnVtbWVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4iS25vcCB2b29yIHZvbGdlbmQgbnVtbWVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+Iktub3Agdm9vciBvbmRlcmJyZWtlbiI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtcGwvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXBsL3N0cmluZ3MueG1sCmluZGV4IDE1YTRhN2MuLmNmY2JjNDYgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtcGwvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1wbC9zdHJpbmdzLnhtbApAQCAtMjEsOSArMjEsOSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iV3Bpc3oga29kIFBJTi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiJXcGlzeiBrb2QgUFVLIGkgbm93eSBrb2QgUElOLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iS29kIFBVSyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iTm93eSBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiJXcGlzeiBQVUsgaSBub3d5IGtvZCBQSU4ga2FydHkgU0lNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJLb2QgUFVLIGthcnR5IFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iTm93eSBrb2QgUElOIGthcnR5IFNJTSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IkRvdGtuaWosIGFieSB3cGlzYcSHIGhhc8WCby4iPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiJXcGlzeiBoYXPFgm8sIGFieSBvZGJsb2tvd2HEhy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJXcGlzeiBrb2QgUElOLCBhYnkgb2RibG9rb3dhxIcuIjwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IlByenljaXNrIHdzdHJ6eW1hbmlhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJQcnp5Y2lzayBvZHR3YXJ6YW5pYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iUHJ6eWNpc2sgemF0cnp5bWFuaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4iUG9kb2JhIG1pIHNpxJkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiJOaWUgcG9kb2JhIG1pIHNpxJkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiJTZXJjZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+Ik9kYmxva3VqLCBieSBrb250eW51b3dhxIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJVcnVjaG9taWVuaWUgYW51bG93YW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+IlVwdcWbxIcgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4sIGJ5IHVzdW7EhcSHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiBuaWUgem9zdGFuaWUgdXN1bmnEmXR5LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgpAQCAtMTA1LDcgKzExMiw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4iUG9kYWogd3licmFueSBrb2QgUElOIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IlBvdHdpZXJkxbogd3licmFueSBrb2QgUElOIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJPZGJsb2tvd3VqxJkga2FydMSZIFNJTeKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+Ik5pZXByYXdpZMWCb3d5IFBJTi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiJXcGlzeiBQSU4gbyBkxYJ1Z2/Fm2NpIG9kIDQgZG8gOCBjeWZyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IktvZCBQVUsgbXVzaSBtaWXEhyBjbyBuYWptbmllaiA4IGN5ZnIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iUG9ub3duaWUgcG9kYWogcG9wcmF3bnkga29kIFBVSy4gTmlldWRhbmUgcHLDs2J5IHNwb3dvZHVqxIUgdHJ3YcWCZSB3ecWCxIVjemVuaWUga2FydHkgU0lNLiI8L3N0cmluZz4KQEAgLTEyOSw2ICsxMzUsMTkgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iUG8gcmF6IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IG5pZXByYXdpZMWCb3dvIG5hcnlzb3dhxYJlxZsgd3rDs3Igb2RibG9rb3dhbmlhLiBQbyBrb2xlam55Y2ggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gbmlldWRhbnljaCBwcsOzYmFjaCBrb25pZWN6bmUgYsSZZHppZSBvZGJsb2tvd2FuaWUgdGVsZWZvbnUgcHJ6eSB1xbx5Y2l1IGRhbnljaCBsb2dvd2FuaWEgbmEga29udG8gR29vZ2xlLlxuXG4gU3Byw7NidWogcG9ub3duaWUgemEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJMgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJVc3XFhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iTmllcHJhd2lkxYJvd3kga29kIFBJTiBrYXJ0eSBTSU0uIE11c2lzeiB0ZXJheiBza29udGFrdG93YcSHIHNpxJkgeiBvcGVyYXRvcmVtLCBieSBvZGJsb2tvd2HFgiBUd29qZSB1cnrEhWR6ZW5pZS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+Ik5pZXByYXdpZMWCb3d5IGtvZCBQSU4ga2FydHkgU0lNLiBNYXN6IGplc3pjemUgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHByw7NixJksIHphbmltIGLEmWR6aWVzeiBtdXNpYcWCIHNrb250YWt0b3dhxIcgc2nEmSB6IG9wZXJhdG9yZW0sIGJ5IG9kYmxva293YcWCIFR3b2plIHVyesSFZHplbmllLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+Ik5pZXByYXdpZMWCb3d5IGtvZCBQSU4ga2FydHkgU0lNLiBNYXN6IGplc3pjemUgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHByw7NiKHkpLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iS2FydGEgU0lNIHpvc3RhxYJhIHRyd2FsZSB6YWJsb2tvd2FuYS4gU2tvbnRha3R1aiBzacSZIHogb3BlcmF0b3JlbS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+Ik5pZXByYXdpZMWCb3d5IGtvZCBQVUsga2FydHkgU0lNLiBNYXN6IGplc3pjemUgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHByw7NixJksIHphbmltIGthcnRhIFNJTSB6b3N0YW5pZSB0cndhbGUgemFibG9rb3dhbmEuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4iTmllcHJhd2lkxYJvd3kga29kIFBVSyBrYXJ0eSBTSU0uIE1hc3ogamVzemN6ZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gcHLDs2IoeSksIHphbmltIGthcnRhIFNJTSB6b3N0YW5pZSB0cndhbGUgemFibG9rb3dhbmEuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiJPcGVyYWNqYSB6IGtvZGVtIFBJTiBrYXJ0eSBTSU0gbmllIHVkYcWCYSBzacSZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4iT3BlcmFjamEgeiBrb2RlbSBQVUsga2FydHkgU0lNIG5pZSB1ZGHFgmEgc2nEmS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iS29kIHpvc3RhxYIgemFha2NlcHRvd2FueS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiJQcnp5Y2lzayBwb3ByemVkbmllZ28gdXR3b3J1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4iUHJ6eWNpc2sgbmFzdMSZcG5lZ28gdXR3b3J1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IlByenljaXNrIHdzdHJ6eW1hbmlhIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1wdC1yUFQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbAppbmRleCAyMjIwNTFjLi5hYmQ0ZmNkIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbApAQCAtMjEsOSArMjEsOSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iRXNjcmV2YSBvIGPDs2RpZ28gUElOIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iRXNjcmV2YSBvIFBVSyBlIG8gbm92byBjw7NkaWdvIFBJTiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iQ8OzZGlnbyBQVUsiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+Ik5vdm8gY8OzZGlnbyBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiJJbnRyb2R1emlyIFBVSyBkbyBjYXJ0w6NvIFNJTSBlIG8gbm92byBjw7NkaWdvIFBJTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxODAxOTQxMDUxMDk0OTc0NjA5Ij4iQ8OzZGlnbyBQVUsgZG8gY2FydMOjbyBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+Ik5vdm8gY8OzZGlnbyBQSU4gZG8gY2FydMOjbyBTSU0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiJUb3F1ZSBwYXJhIGVzY3JldmVyIGEgcGFsYXZyYS1wYXNzZSI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IkVzY3JldmEgYSBwYWxhdnJhLXBhc3NlIHBhcmEgZGVzYmxvcXVlYXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJFc2NyZXZhIG8gUElOIHBhcmEgZGVzYmxvcXVlYXIiPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4iQm90w6NvIFBhdXNhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJCb3TDo28gUmVwcm9kdXppciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iQm90w6NvIFBhcmFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+Ikdvc3RvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4iTsOjbyBnb3N0byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IkNvcmHDp8OjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IkRlc2Jsb3F1ZWFyIHBhcmEgY29udGludWFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4iTGFuw6dhbWVudG8gY2FuY2VsYWRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+Ikxhcmd1ZSA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiBwYXJhIGVsaW1pbmFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiBuw6NvIHNlcsOhIGVsaW1pbmFkby4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IkludHJvZHV6YSBvIGPDs2RpZ28gUElOIHByZXRlbmRpZG8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4iQ29uZmlybWUgbyBjw7NkaWdvIFBJTiBwcmV0ZW5kaWRvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJBIGRlc2Jsb3F1ZWFyIGNhcnTDo28gU0lNLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iQ8OzZGlnbyBQSU4gaW5jb3JyZXRvLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IkludHJvZHV6YSB1bSBQSU4gZW50cmUgNCBlIDggbsO6bWVyb3MuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iTyBjw7NkaWdvIFBVSyBkZXZlIHRlciA4IG91IG1haXMgbsO6bWVyb3MuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iVm9sdGUgYSBpbnRyb2R1emlyIG8gY8OzZGlnbyBQVUsgY29ycmV0by4gRGVtYXNpYWRhcyB0ZW50YXRpdmFzIGNvbnNlY3V0aXZhcyBpcsOjbyBkZXNhdGl2YXIgcGVybWFuZW50ZW1lbnRlIG8gU0lNLiI8L3N0cmluZz4KQEAgLTEyOSw2ICsxMzUsMTkgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iRGVzZW5ob3UgYSBzZXF1w6puY2lhIGRlIGRlc2Jsb3F1ZWlvIGluY29ycmV0YW1lbnRlIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IHZlemVzLiBEZXBvaXMgZGUgbWFpcyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiB0ZW50YXRpdmFzIHNlbSBzdWNlc3NvLCBzZXItbGhlLcOhIHBlZGlkbyBwYXJhIGRlc2Jsb3F1ZWFyIG8gdGVsZW3Ds3ZlbCBhdHJhdsOpcyBkZSB1bWEgY29udGEgZGUgZW1haWwuXG5cbiBUZW50ZSBub3ZhbWVudGUgZGVudHJvIGRlIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IHNlZ3VuZG9zLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIC0gIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJSZW1vdmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiJDw7NkaWdvIFBJTiBkbyBjYXJ0w6NvIFNJTSBpbmNvcnJldG8uIFRlbSBkZSBjb250YWN0YXIgbyBzZXUgb3BlcmFkb3IgcGFyYSBkZXNibG9xdWVhciBvIGRpc3Bvc2l0aXZvLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iQ8OzZGlnbyBQSU4gZG8gY2FydMOjbyBTSU0gaW5jb3JyZXRvLiBUZW0gbWFpcyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gdGVudGF0aXZhIGFudGVzIGRlIG5lY2Vzc2l0YXIgZGUgY29udGFjdGFyIG8gc2V1IG9wZXJhZG9yIHBhcmEgZGVzYmxvcXVlYXIgbyBkaXNwb3NpdGl2by4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJDw7NkaWdvIFBJTiBkbyBjYXJ0w6NvIFNJTSBpbmNvcnJldG8uIFRlbSBtYWlzIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiB0ZW50YXRpdmFzLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iQ2FydMOjbyBTSU0gaW51dGlsaXrDoXZlbC4gQ29udGFjdGUgbyBzZXUgb3BlcmFkb3IuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiJDw7NkaWdvIFBVSyBkbyBjYXJ0w6NvIFNJTSBpbmNvcnJldG8uIFRlbSBtYWlzIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiB0ZW50YXRpdmEgYW50ZXMgZGUgbyBjYXJ0w6NvIFNJTSBmaWNhciBwZXJtYW5lbnRlbWVudGUgaW51dGlsaXrDoXZlbC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiJDw7NkaWdvIFBVSyBkbyBjYXJ0w6NvIFNJTSBpbmNvcnJldG8uIFRlbSBtYWlzIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiB0ZW50YXRpdmFzIGFudGVzIGRlIG8gY2FydMOjbyBTSU0gZmljYXIgcGVybWFuZW50ZW1lbnRlIGludXRpbGl6w6F2ZWwuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiJGYWxoYSBhbyBpbnRyb2R1emlyIG8gUElOIGRvIGNhcnTDo28gU0lNISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4iRmFsaGEgYW8gaW50cm9kdXppciBvIFBVSyBkbyBjYXJ0w6NvIFNJTSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iQ8OzZGlnbyBhY2VpdGUhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iQm90w6NvIEZhaXhhIGFudGVyaW9yIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4iQm90w6NvIEZhaXhhIHNlZ3VpbnRlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IkJvdMOjbyBQYXVzYSI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtcHQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXB0L3N0cmluZ3MueG1sCmluZGV4IGE1NjMzNzIuLjI0ZDc4ZTUgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtcHQvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1wdC9zdHJpbmdzLnhtbApAQCAtMjEsOSArMjEsOSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iSW5zaXJhIG8gY8OzZGlnbyBQSU4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiJJbnNpcmEgbyBQVUsgZSBvIG5vdm8gY8OzZGlnbyBQSU4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IkPDs2RpZ28gUFVLIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiJOb3ZvIGPDs2RpZ28gUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iRGlnaXRlIG8gUFVLIGRvIFNJTSBlIG8gbm92byBjw7NkaWdvIFBJTi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IkPDs2RpZ28gUFVLIGRvIFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iTm92byBjw7NkaWdvIFBJTiBkbyBTSU0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiJUb3F1ZSBwYXJhIGluc2VyaXIgYSBzZW5oYSI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IkRpZ2l0ZSBhIHNlbmhhIHBhcmEgZGVzYmxvcXVlYXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJJbnNpcmEgbyBQSU4gcGFyYSBkZXNibG9xdWVhciI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiJCb3TDo28gXCJQYXVzYXJcIiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iQm90w6NvIFwiUmVwcm9kdXppclwiIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJCb3TDo28gXCJQYXJhclwiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+Ikdvc3RlaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+Ik7Do28gZ29zdGVpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4iQ29yYcOnw6NvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4iRGVzYmxvcXVlaWUgcGFyYSBjb250aW51YXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJJbmljaWFsaXphw6fDo28gY2FuY2VsYWRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+IlNvbHRlIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHBhcmEgZXhjbHVpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gbsOjbyBzZXLDoSBleGNsdcOtZG8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC0xMDUsNyArMTEyLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiJEaWdpdGUgbyBjw7NkaWdvIFBJTiBkZXNlamFkbyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiJDb25maXJtZSBvIGPDs2RpZ28gUElOIGRlc2VqYWRvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJEZXNibG9xdWVhbmRvIG8gY2FydMOjbyBTSU3igKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiJDw7NkaWdvIFBJTiBpbmNvcnJldG8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iRGlnaXRlIHVtIFBJTiBjb20gcXVhdHJvIGEgb2l0byBuw7ptZXJvcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJPIGPDs2RpZ28gUFVLIGRldmUgdGVyIDggbsO6bWVyb3Mgb3UgbWFpcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiJJbnRyb2R1emEgbm92YW1lbnRlIG8gY8OzZGlnbyBQVUsgY29ycmV0by4gTXVpdGFzIHRlbnRhdGl2YXMgbWFsc3VjZWRpZGFzIGRlc2F0aXZhcsOjbyBwZXJtYW5lbnRlbWVudGUgbyBTSU0uIjwvc3RyaW5nPgpAQCAtMTI5LDYgKzEzNSwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiJWb2PDqiBkZXNlbmhvdSBzdWEgc2VxdcOqbmNpYSBkZSBkZXNibG9xdWVpbyBpbmNvcnJldGFtZW50ZSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiB2ZXplcy4gU2UgZml6ZXIgbWFpcyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiB0ZW50YXRpdmFzIGluY29ycmV0YXMsIHNlcsOhIHNvbGljaXRhZG8gcXVlIHZvY8OqIHVzZSBvIGxvZ2luIGRvIEdvb2dsZSBwYXJhIGRlc2Jsb3F1ZWFyLlxuXG4gVGVudGUgbm92YW1lbnRlIGVtIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IHNlZ3VuZG9zLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IlJlbW92ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IkPDs2RpZ28gUElOIGRvIFNJTSBpbmNvcnJldG8uIEVudHJlIGVtIGNvbnRhdG8gY29tIGEgb3BlcmFkb3JhIHBhcmEgZGVzYmxvcXVlYXIgbyBkaXNwb3NpdGl2by4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+IkPDs2RpZ28gUElOIGRvIFNJTSBpbmNvcnJldG8uIFRlbnRhdGl2YXMgcmVzdGFudGVzOiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4uIENhc28gbyBjw7NkaWdvIGNvcnJldG8gbsOjbyBzZWphIGRpZ2l0YWRvLCBzZXLDoSBuZWNlc3PDoXJpbyBlbnRyYXIgZW0gY29udGF0byBjb20gYSBvcGVyYWRvcmEgcGFyYSBkZXNibG9xdWVhciBvIGRpc3Bvc2l0aXZvLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+IkPDs2RpZ28gUElOIGRvIFNJTSBpbmNvcnJldG8uIFRlbnRhdGl2YXMgcmVzdGFudGVzOiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJPIFNJTSBlc3TDoSBpbnV0aWxpesOhdmVsLiBFbnRyZSBlbSBjb250YXRvIGNvbSBhIG9wZXJhZG9yYS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IkPDs2RpZ28gUFVLIGRvIFNJTSBpbmNvcnJldG8uIFRlbnRhdGl2YXMgcmVzdGFudGVzOiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gQ2FzbyBvIGPDs2RpZ28gY29ycmV0byBuw6NvIHNlamEgZGlnaXRhZG8sIG8gU0lNIHNlIHRvcm5hcsOhIHBlcm1hbmVudGVtZW50ZSBpbnV0aWxpesOhdmVsLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IkPDs2RpZ28gUFVLIGRvIFNJTSBpbmNvcnJldG8uIFRlbnRhdGl2YXMgcmVzdGFudGVzOiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4uIENhc28gbyBjw7NkaWdvIGNvcnJldG8gbsOjbyBzZWphIGRpZ2l0YWRvLCBvIFNJTSBzZSB0b3JuYXLDoSBwZXJtYW5lbnRlbWVudGUgaW51dGlsaXrDoXZlbC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IkZhbGhhIG5hIG9wZXJhw6fDo28gZGUgUElOIGRvIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IkZhbGhhIG5hIG9wZXJhw6fDo28gZGUgUFVLIGRvIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iQ8OzZGlnbyBhY2VpdG8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iQm90w6NvIFwiRmFpeGEgYW50ZXJpb3JcIiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IkJvdMOjbyBcIlByw7N4aW1hIGZhaXhhXCIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4iQm90w6NvIFwiUGF1c2FyXCIiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXJtL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1ybS9zdHJpbmdzLnhtbAppbmRleCA4ZGRhMDU1Li5lZTI2YTNkIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXJtL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtcm0vc3RyaW5ncy54bWwKQEAgLTIyLDExICsyMiwxMSBAQAogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSAoMzAzNzY4NTc5NjA1ODQ5NTAxNykgLS0+CiAgICAgPHNraXAgLz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSAoNDgwMDcyNTI2NjkyNTg0NTMzMykgLS0+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUgKDMwMzU4NTY1NTAyODk3MjQzMzgpIC0tPgogICAgIDxza2lwIC8+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCAoMTM0MTExMjE0NjcxMDA4NzA0OCkgLS0+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCAoMTgwMTk0MTA1MTA5NDk3NDYwOSkgLS0+CiAgICAgPHNraXAgLz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0ICg4MDI3NjgwMzIxNjE0MTk2MjU4KSAtLT4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0ICgzMjAxMTUxODQwNTcwNDkyNTM4KSAtLT4KICAgICA8c2tpcCAvPgogICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQgKDc4NTg1NDc0NjQ5ODI5ODEzODQpIC0tPgogICAgIDxza2lwIC8+CkBAIC0xMjEsNiArMTIxLDIwIEBACiAgICAgPHNraXAgLz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uICg3NjU2MzU4NDgyOTgwOTEyMjE2KSAtLT4KICAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiAoNDUzNTkzODEyOTY2MzkwMzE5NCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiAoODEwMTQzMzY3NzE5MjE3Nzg2MSkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiAoMjMzNjk0MzIzMjQ3NDY4OTg4NykgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciAoNTQyNTgzNzI3MjQxODE3NjE3NikgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciAoNzg5Njk5MjE3MTg3ODMwOTM1OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQgKDQwOTY1NTA1NTI2MzQzOTE0NTEpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCAoNTA4ODMzNTA2NzgwOTA5MzkzKSAtLT4KKyAgICA8c2tpcCAvPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC0xODYsOCArMjAwLDYgQEAKICAgICA8c2tpcCAvPgogICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UgKDg5NTAzOTgwMTY5NzY4NjU3NjIpIC0tPgogICAgIDxza2lwIC8+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUgKDExMzkzMjQ4ODc0MTM4NDY5MTIpIC0tPgotICAgIDxza2lwIC8+CiAgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2dfaW52YWxpZF9zaW1fcGluX2hpbnQgKDg3OTUxNTkzNTgxMTA2MjAwMDEpIC0tPgogICAgIDxza2lwIC8+CiAgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2dfaW52YWxpZF9zaW1fcHVrX2hpbnQgKDc1NTMzODgzMjU2NTQzNjk1NzUpIC0tPgpAQCAtMjM0LDYgKzI0NiwyMCBAQAogICAgIDxza2lwIC8+CiAgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCAoNzg5OTIwMjk3ODIwNDQzODcwOCkgLS0+CiAgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQgKDMwNTMxMDM5NDU1NzY0OTI0KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlOm9uZSAoODEzNDMxMzk5Nzc5OTYzODI1NCkgLS0+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGU6b3RoZXIgKDIyMTU3MjMzNjE1NzUzNTk0ODYpIC0tPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQgKDcwNzc1MzY4MDgyOTEzMTYyMDgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGU6b25lICgzMjU2ODkzNjA3NTYxMDYwNjQ5KSAtLT4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZTpvdGhlciAoNTQ3NzMwNTIyNjAyNjM0MjAzNikgLS0+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Iga2dfcGFzc3dvcmRfcGluX2ZhaWxlZCAoNjI2ODI4ODA5MzU1ODAzMTU2NCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZ19wYXNzd29yZF9wdWtfZmFpbGVkICgyODM4ODI0MzY5NTAyNDU1OTg0KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGtnX3Bpbl9hY2NlcHRlZCAoMTQ0ODI0MTY3MzU3MDAyMDA5NykgLS0+CisgICAgPHNraXAgLz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiAoODIyOTEwODQzMDI0NTY2OTg1NCkgLS0+CiAgICAgPHNraXAgLz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiAoNDI5OTI1ODMwMDI4Mzc3ODMwNSkgLS0+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXJvL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1yby9zdHJpbmdzLnhtbAppbmRleCAwMWQ3OWY4Li4xYzdlODhmIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXJvL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtcm8vc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IkludHJvZHVjZcWjaSBjb2R1bCBQSU4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiJJbnRyb2R1Y2XFo2kgY29kdWwgUFVLIMWfaSBub3VsIGNvZCBQSU4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IkNvZHVsIFBVSyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iTm91bCBjb2QgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iSW50cm9kdWNlyJtpIGNvZHVsIFBVSyBwZW50cnUgY2FyZHVsIFNJTSDImWkgY29kdWwgUElOIG5vdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxODAxOTQxMDUxMDk0OTc0NjA5Ij4iQ29kdWwgUFVLIHBlbnRydSBjYXJkdWwgU0lNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiJDb2R1bCBQSU4gbm91IHBlbnRydSBjYXJkdWwgU0lNIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4iQXRpbmdlxaNpIMWfaSBpbnRyb2R1Y2XFo2kgcGFyb2xhIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iSW50cm9kdWNlxaNpIHBhcm9sYSBwZW50cnUgYSBkZWJsb2NhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iSW50cm9kdWNlxaNpIGNvZHVsIFBJTiBwZW50cnUgYSBkZWJsb2NhIjwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IkJ1dG9udWwgw45udHJlcnVwZcibaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iQnV0b251bCBSZWRhyJtpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJCdXRvbnVsIE9wcmnIm2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4iVm90IHBveml0aXYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiJWb3QgbmVnYXRpdiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IkluaW3EgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IkRlYmxvY2HIm2kgcGVudHJ1IGEgY29udGludWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJMYW5zYXJlIGFudWxhdMSDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+IkVsaWJlcmHIm2kgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gcGVudHJ1IGEgyJl0ZXJnZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iV2lkZ2V0dWwgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gbnUgdmEgZmkgyJl0ZXJzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgpAQCAtMTA1LDcgKzExMiw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4iSW50cm9kdWNlxaNpIGNvZHVsIFBJTiBkb3JpdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiJDb25maXJtYcWjaSBjb2R1bCBQSU4gZG9yaXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IlNlIGRlYmxvY2hlYXrEgyBjYXJkdWwgU0lNLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iQ29kIFBJTiBpbmNvcmVjdC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiJJbnRyb2R1Y2XFo2kgdW4gY29kIFBJTiBmb3JtYXQgZGluIDQgcMOibsSDIGxhIDggY2lmcmUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iQ29kdWwgUFVLIHRyZWJ1aWUgc8SDIGFpYsSDIG1pbmltdW0gOCBjaWZyZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiJSZWludHJvZHVjZcWjaSBjb2R1bCBQVUsgY29yZWN0LiDDjm5jZXJjxINyaWxlIHJlcGV0YXRlIHZvciBkZXphY3RpdmEgZGVmaW5pdGl2IGNhcmR1bCBTSU0uIjwvc3RyaW5nPgpAQCAtMTI5LDYgKzEzNSwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiJBxaNpIGRlc2VuYXQgaW5jb3JlY3QgbW9kZWx1bCBwZW50cnUgZGVibG9jYXJlIGRlIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IG9yaS4gRHVwxIMgw65uY8SDIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IMOubmNlcmPEg3JpIG5lcmV1xZ9pdGUsIHZpIHNlIHZhIHNvbGljaXRhIHPEgyBkZWJsb2NhxaNpIHRlbGVmb251bCBjdSBhanV0b3J1bCB1bnVpIGNvbnQgZGUgZS1tYWlsLlxuXG4gw45uY2VyY2HFo2kgZGluIG5vdSBwZXN0ZSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiAoZGUpIHNlY3VuZGUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4iRWxpbWluYcWjaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iQ29kdWwgUElOIHBlbnRydSBjYXJkdWwgU0lNIGVzdGUgaW5jb3JlY3QuIENvbnRhY3RhyJtpIG9wZXJhdG9ydWwgcGVudHJ1IGEgdsSDIGRlYmxvY2EgZGlzcG96aXRpdnVsLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iQ29kdWwgUElOIHBlbnRydSBjYXJkdWwgU0lNIGVzdGUgaW5jb3JlY3QuIFYtYSBtYWkgcsSDbWFzIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDDrm5jZXJjYXJlLCBkdXDEgyBjYXJlIHZhIHRyZWJ1aSBzxIMgY29udGFjdGHIm2kgb3BlcmF0b3J1bCBwZW50cnUgYSB2xIMgZGVibG9jYSBkaXNwb3ppdGl2dWwuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4iQ29kdWwgUElOIHBlbnRydSBjYXJkdWwgU0lNIGVzdGUgaW5jb3JlY3QuIFYtYXUgbWFpIHLEg21hcyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gw65uY2VyY8SDcmkuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJDYXJkdWwgU0lNIG51IHBvYXRlIGZpIHV0aWxpemF0LiBDb250YWN0YcibaSBvcGVyYXRvcnVsLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iQ29kdWwgUFVLIHBlbnRydSBjYXJkdWwgU0lNIGVzdGUgaW5jb3JlY3QuIFYtYSBtYWkgcsSDbWFzIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDDrm5jZXJjYXJlIHDDom7EgyBjw6JuZCBjYXJkdWwgU0lNIHZhIGRldmVuaSBpbnV0aWxpemFiaWwgZGVmaW5pdGl2LiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IkNvZHVsIFBVSyBwZW50cnUgY2FyZHVsIFNJTSBlc3RlIGluY29yZWN0LiBWLWF1IG1haSByxINtYXMgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IMOubmNlcmPEg3JpIHDDom7EgyBjw6JuZCBjYXJkdWwgU0lNIHZhIGRldmVuaSBpbnV0aWxpemFiaWwgZGVmaW5pdGl2LiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iRGVibG9jYXJlYSBjdSBhanV0b3J1bCBjb2R1bHVpIFBJTiBwZW50cnUgY2FyZHVsIFNJTSBudSBhIHJldciZaXQhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJEZWJsb2NhcmVhIGN1IGFqdXRvcnVsIGNvZHVsdWkgUFVLIHBlbnRydSBjYXJkdWwgU0lNIG51IGEgcmV1yJlpdCEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iQ29kIGFjY2VwdGF0ISI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IkJ1dG9udWwgTWVsb2RpYSBhbnRlcmlvYXLEgyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IkJ1dG9udWwgTWVsb2RpYSB1cm3Eg3RvYXJlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IkJ1dG9udWwgw45udHJlcnVwZcibaSI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtcnUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXJ1L3N0cmluZ3MueG1sCmluZGV4IDEzNjk4MmEuLjQ4Yzc0NDIgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtcnUvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1ydS9zdHJpbmdzLnhtbApAQCAtMjEsOSArMjEsOSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4i0JLQstC10LTQuNGC0LUgUElOLdC60L7QtCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+ItCS0LLQtdC00LjRgtC1IFBVSy3QutC+0LQg0Lgg0L3QvtCy0YvQuSBQSU4t0LrQvtC0Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUst0LrQvtC0Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLQndC+0LLRi9C5IFBJTi3QutC+0LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiLQktCy0LXQtNC40YLQtSBQVUst0LrQvtC0INC4INC90L7QstGL0LkgUElOLdC60L7QtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxODAxOTQxMDUxMDk0OTc0NjA5Ij4iUFVLLdC60L7QtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4i0J3QvtCy0YvQuSBQSU4t0LrQvtC0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4i0J3QsNC20LzQuNGC0LUg0LTQu9GPINCy0LLQvtC00LAg0L/QsNGA0L7Qu9GPIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4i0JLQstC10LTQuNGC0LUg0L/QsNGA0L7Qu9GMIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i0JLQstC10LTQuNGC0LUgUElOLdC60L7QtCI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiLQmtC90L7Qv9C60LAg0L/QsNGD0LfRiyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4i0JrQvdC+0L/QutCwINCy0L7RgdC/0YDQvtC40LfQstC10LTQtdC90LjRjyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4i0JrQvdC+0L/QutCwINCy0YvQutC70Y7Rh9C10L3QuNGPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+ItCd0YDQsNCy0LjRgtGB0Y8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiLQndC1INC90YDQsNCy0LjRgtGB0Y8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiLQoNC10LnRgtC40L3QsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+ItCg0LDQt9Cx0LvQvtC60LjRgNGD0LnRgtC1INGN0LrRgNCw0L0sINGH0YLQvtCx0Ysg0L/RgNC+0LTQvtC70LbQuNGC0YwuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4i0JfQsNC/0YPRgdC6INC+0YLQvNC10L3QtdC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiLQntGC0L/Rg9GB0YLQuNGC0LUg0LLQuNC00LbQtdGCIFwiPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz5cIiwg0YfRgtC+0LHRiyDRg9C00LDQu9C40YLRjCDQtdCz0L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+ItCS0LjQtNC20LXRgiBcIjx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+XCIg0L3QtSDQsdGD0LTQtdGCINGD0LTQsNC70LXQvS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiLQkNCR0JIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+ItCS0LLQtdC00LjRgtC1INC20LXQu9Cw0LXQvNGL0LkgUElOLdC60L7QtCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLQktCy0LXQtNC40YLQtSBQSU4t0LrQvtC0INC10YnRkSDRgNCw0LciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+ItCg0LDQt9Cx0LvQvtC60LjRgNC+0LLQutCwIFNJTS3QutCw0YDRgtGL4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i0J3QtdCy0LXRgNC90YvQuSBQSU4t0LrQvtC0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+ItCS0LLQtdC00LjRgtC1IFBJTi3QutC+0LQgKNC+0YIgNCDQtNC+IDgg0YbQuNGE0YApLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSy3QutC+0LQg0LTQvtC70LbQtdC9INGB0L7QtNC10YDQttCw0YLRjCDQvdC1INC80LXQvdC10LUgOMKg0YHQuNC80LLQvtC70L7Qsi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLQktCy0LXQtNC40YLQtSDQv9GA0LDQstC40LvRjNC90YvQuSBQVUst0LrQvtC0LiDQn9C+0YHQu9C1INC90LXRgdC60L7Qu9GM0LrQuNGFINC90LXRg9C00LDRh9C90YvRhSDQv9C+0L/Ri9GC0L7QuiBTSU0t0LrQsNGA0YLQsCDQsdGD0LTQtdGCINC30LDQsdC70L7QutC40YDQvtCy0LDQvdCwLiI8L3N0cmluZz4KQEAgLTEyOSw2ICsxMzUsMTkgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i0JLRiyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDRgNCw0Lcg0L3QtdCy0LXRgNC90L4g0YPQutCw0LfQsNC70Lgg0LPRgNCw0YTQuNGH0LXRgdC60LjQuSDQutC70Y7Rhy4g0J/QvtGB0LvQtSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDQvdC10LLQtdGA0L3Ri9GFINC/0L7Qv9GL0YLQvtC6INC00LvRjyDRgNCw0LfQsdC70L7QutC40YDQvtCy0LrQuCDRgtC10LvQtdGE0L7QvdCwINC/0L7RgtGA0LXQsdGD0LXRgtGB0Y8g0LLQvtC50YLQuCDQsiDQsNC60LrQsNGD0L3RgiBHb29nbGUuXG5cbtCf0L7QstGC0L7RgCDRh9C10YDQtdC3IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+INGB0LXQui4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJMgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLQo9C00LDQu9C40YLRjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4i0J3QtdCy0LXRgNC90YvQuSBQSU4t0LrQvtC0LiDQntCx0YDQsNGC0LjRgtC10YHRjCDQuiDQvtC/0LXRgNCw0YLQvtGA0YMg0YHQstGP0LfQuCwg0YfRgtC+0LHRiyDRgNCw0LfQsdC70L7QutC40YDQvtCy0LDRgtGMIFNJTS3QutCw0YDRgtGDLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4i0J3QtdCy0LXRgNC90YvQuSBQSU4t0LrQvtC0LiDQntGB0YLQsNC70L7RgdGMINC/0L7Qv9GL0YLQvtC6OiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4uINCf0L7RgdC70LUg0Y3RgtC+0LPQviBTSU0t0LrQsNGA0YLQsCDQsdGD0LTQtdGCINC30LDQsdC70L7QutC40YDQvtCy0LDQvdCwINC4INCy0LDQvCDQv9GA0LjQtNC10YLRgdGPINC+0LHRgNCw0YLQuNGC0YzRgdGPINC6INC+0L/QtdGA0LDRgtC+0YDRgyDRgdCy0Y/Qt9C4LiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+ItCd0LXQstC10YDQvdGL0LkgUElOLdC60L7QtC4g0J7RgdGC0LDQu9C+0YHRjCDQv9C+0L/Ri9GC0L7QujogPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+LiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iU0lNLdC60LDRgNGC0LAg0LfQsNCx0LvQvtC60LjRgNC+0LLQsNC90LAg0L3QsNCy0YHQtdCz0LTQsC4g0J7QsdGA0LDRgtC40YLQtdGB0Ywg0Log0L7Qv9C10YDQsNGC0L7RgNGDINGB0LLRj9C30LguIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiLQndC10LLQtdGA0L3Ri9C5IFBVSy3QutC+0LQuINCe0YHRgtCw0LvQvtGB0Ywg0L/QvtC/0YvRgtC+0Lo6IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPi4g0J/QvtGB0LvQtSDRjdGC0L7Qs9C+IFNJTS3QutCw0YDRgtCwINCx0YPQtNC10YIg0LfQsNCx0LvQvtC60LjRgNC+0LLQsNC90LAg0L3QsNCy0YHQtdCz0LTQsC4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiLQndC10LLQtdGA0L3Ri9C5IFBVSy3QutC+0LQuINCe0YHRgtCw0LvQvtGB0Ywg0L/QvtC/0YvRgtC+0Lo6IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPi4g0J/QvtGB0LvQtSDRjdGC0L7Qs9C+IFNJTS3QutCw0YDRgtCwINCx0YPQtNC10YIg0LfQsNCx0LvQvtC60LjRgNC+0LLQsNC90LAg0L3QsNCy0YHQtdCz0LTQsC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+ItCd0LUg0YPQtNCw0LvQvtGB0Ywg0YDQsNC30LHQu9C+0LrQuNGA0L7QstCw0YLRjCBTSU0t0LrQsNGA0YLRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4i0J3QtSDRg9C00LDQu9C+0YHRjCDRgNCw0LfQsdC70L7QutC40YDQvtCy0LDRgtGMIFNJTS3QutCw0YDRgtGDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+ItCa0L7QtCDQv9GA0LjQvdGP0YIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiLQmtC90L7Qv9C60LAg0L/QtdGA0LXRhdC+0LTQsCDQuiDQv9GA0LXQtNGL0LTRg9GJ0LXQvNGDINGC0YDQtdC60YMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiLQmtC90L7Qv9C60LAg0L/QtdGA0LXRhdC+0LTQsCDQuiDRgdC70LXQtNGD0Y7RidC10LzRgyDRgtGA0LXQutGDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+ItCa0L3QvtC/0LrQsCDQv9Cw0YPQt9GLIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1zaS1yTEsvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXNpLXJMSy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTA0YzdlCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1zaS1yTEsvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwxNDAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyogLy9kZXZpY2UvYXBwcy9jb21tb24vYXNzZXRzL3Jlcy9hbnkvc3RyaW5ncy54bWwKKyoqCisqKiBDb3B5cmlnaHQgMjAwNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iUElOIOC2muC3muC2reC2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iUFVLIOC3g+C3hCDgtrHgt4AgUElOIOC2muC3muC2reC2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsg4Laa4Lea4Lat4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLgtrHgt4AgUElOIOC2muC3muC2reC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IuC2uOC3lOC2u+C2tOC2r+C2uiDgtqfgtrrgt5LgtrTgt4og4Laa4LeS4La74LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEiPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC2uOC3lOC2u+C2tOC2r+C2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC2pyBQSU4g4LaR4LaaIOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLgt4Dgt5Dgtrvgtq/gt5IgUElOIOC2muC3muC2reC2uuC2muC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4i4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pywg4La44LeZ4Lax4LeU4LeAIOC2lOC2tuC3jyDgtrTgt4Pgt5Tgt4AgMCDgtq8g4LaU4La24Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLgtrjgt5Tgt4Tgt5Tgtqsg4La34LeP4LeA4LeS4Lat4La64LeZ4Lax4LeKIOC2heC2n+C3lOC3heC3lCDgt4Tgt5Dgtrvgt5Pgtrjgt5og4LaL4La04La74LeS4La4IOC2tOC3iuKAjeC2u+C2uuC2seC3iuC2reC2uuC2seC3iiDgtpzgtqvgtrEg4LaJ4Laa4LeK4La44LeA4LePIOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NoYXJnZWQiIG1zZ2lkPSIzMjcyMjIzOTA2MDczNDkyNDU0Ij4i4LaF4La74Led4La04LeS4Lat4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGx1Z2dlZF9pbiIgbXNnaWQ9IjgxMTc1NzIwMDA2Mzk5OTgzODgiPiLgtobgtrvgt53gtrTgtqvgtrog4LeA4LeZ4La44LeS4Lax4LeKLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbG93X2JhdHRlcnkiIG1zZ2lkPSI4MTQzODA4MDE4NzE5MTczODU5Ij4i4LaU4La24Lac4LeaIOC2huC2u+C3neC2tOC2muC2uuC2pyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSIxMzMyMjg4MjY4NjAwMzI5ODQxIj4i4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pyDgtrjgt5ngtrHgt5Tgt4Ag4LaU4La24Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX25ldHdvcmtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI5MTY5NzE3Nzc5MDU4MDM3MTY4Ij4i4Lai4LeP4La9IOC2heC2nOC3lOC3heC3lCDgtq/gtrjgt48g4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjQ5NDk4MDU2MTMwNDIxMTkzMSI+IlNJTSDgtrTgtq0g4Lax4Lec4La44LeQ4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTQ0NTg0OTAwNTkwOTI2MDAzOSI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miBTSU0g4La04LatIOC2seC3nOC2uOC3kOC2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ4MTExMDM5NTUwODYzNzY0MyI+IuC2r+C3lOC2u+C2muC2ruC2seC2uiDgtq3gt5Tgtr0gU0lNIOC2tOC2reC2muC3iiDgtrHgt5Dgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTIxMDg5MTUwOTk5NTk0MjI1MCI+IlNJTSDgtrTgtq0g4LaH4Lat4LeU4La94LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjU5Njg5ODU0ODk0NjM4NzAzNTgiPiJTSU0g4La04LatIOC2seC3nOC2uOC3kOC2rSDgt4Tgt50g4Laa4LeS4La64LeA4LeS4La6IOC2seC3nOC3hOC3kOC2mi4gU0lNIOC2tOC2reC2muC3iiDgtofgtq3gt5Tgtr3gt4og4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjgzNDA4MTM5ODk1ODY2MjIzNTYiPiLgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeFIOC2seC3nOC3hOC3kOC2muC3kiBTSU0g4La04LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTg5Mjk0MDkwOTY5OTcyMzU0NCI+IuC2lOC2tuC2nOC3miBTSU0g4La04LatIOC3g+C3iuC2ruC3kuC2u+C3gCDgtoXgtrbgtr0g4Laa4La7IOC2h+C2rS5cbiDgt4Dgt5ngtrHgtq3gt4ogU0lNIOC2tOC2reC2muC3iiDgt4PgtrPgt4Tgt48g4LaU4La24Lac4LeaIOC2seC3nOC2u+C3kOC3hOC3kOC2seC3iiDgt4Pgt5rgt4Dgt48g4LeD4LeQ4La04La64LeU4La44LeK4Laa4La74LeUIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgtrvgtpzgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+IlNJTSDgtrTgtq0g4LaF4Lac4LeU4LeF4LeUIOC2r+C2uOC3jyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3B1a19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NDcyMzI0Njc0NzE4MDE2MzMiPiJTSU0g4La04LatIFBVSyDgtoXgtpzgt5Tgt4Xgt5Qg4La94LePIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzk3NTIyMTgwNTAzMzYxNDQyNiI+IlNJTSDgtrTgtq0g4LaF4Lac4LeU4LeF4LeUIOC3hOC2u+C3kuC2uOC3kuC2seC3ii4uLiI8L3N0cmluZz4KKyAgICA8IS0tIFN0cmluZy5mb3JtYXQgZmFpbGVkIGZvciB0cmFuc2xhdGlvbiAtLT4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9jaGFuZ2VkICg1Njc4NjI0NjI0NjgxNDAwMTkxKSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9hZGRfd2lkZ2V0IiBtc2dpZD0iODI3MzI3NzA1ODcyNDkyNDY1NCI+IuC3gOC3kuC2ouC2p+C2uiDgtpHgtprgtq3gt5Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i4LeE4LeS4LeD4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLgtoXgtpzgt5Tgt4Xgt5Qg4LaF4La74LeS4LaxIOC2tOC3iuKAjeC2u+C2r+C3muC3geC2uiDgt4Dgt5Lgtq/gt4Tgt48g4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfY29sbGFwc2VkIiBtc2dpZD0iNjM2Njk5MjA2NjkzNjA3NjM5NiI+IuC2heC2nOC3lOC3heC3lCDgtoXgtrvgt5LgtrEg4La04LeK4oCN4La74Lav4Lea4LeB4La6IOC3hOC3kOC2muC3kuC2veC3kyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXQiIG1zZ2lkPSI2NTI3MTMxMDM5NzQxODA4MjQwIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4LeA4LeS4Lai4Lan4LeKLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdXNlcl9zZWxlY3RvciIgbXNnaWQ9IjEyMjY3OTgzNzA5MTM2OTg4OTYiPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4Lat4Led4La74Lax4LeK4Lax4LePIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zdGF0dXMiIG1zZ2lkPSI4MDA4MjY0NjAzOTM1OTMwNjExIj4i4Lat4Lat4LeK4LeA4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4i4Laa4LeQ4La44La74LeP4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z2F1cmRfYWNjZXNzaWJpbGl0eV9tZWRpYV9jb250cm9scyIgbXNnaWQ9IjI2MjIwOTY1NDI5MjE2MTgwNiI+IuC2uOC3j+C2sOC3iuKAjeC2uiDgtrTgt4/gtr3gtpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+IuC3gOC3kuC2ouC2p+C2uiDgtrHgt5Dgt4Dgtq0g4LaF4Lax4LeU4La04LeS4LeF4LeS4LeA4LeZ4LeF4LanIOC3g+C3kOC2muC3g+C3kuC2uCDgtofgtrvgtrngt5Tgtqvgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9lbmQiIG1zZ2lkPSI3MTcwMTkwOTUwODcwNDY4MzIwIj4i4LeA4LeS4Lai4Lan4LeKIOC2seC3kOC3gOC2rSDgtoXgtrHgt5TgtrTgt5Lgt4Xgt5Lgt4Dgt5ngtr3gtqcg4LeD4LeQ4Laa4LeD4LeT4La4IOC2heC3gOC3g+C3j+C2seC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9kZWxldGVkIiBtc2dpZD0iNDQyNjIwNDI2MzkyOTIyNDQzNCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOC3gOC3kuC2ouC2p+C2uiDgtrjgt5Dgtprgt5Mg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZXhwYW5kX2xvY2tfYXJlYSIgbXNnaWQ9IjUxOTg1OTcyMDkzNDE3ODAyNCI+IuC2heC2nOC3lOC3heC3lCDgtrHgt5zgtq/gt5Dgtrjgt5Yg4La04LeK4oCN4La74Lav4Lea4LeB4La6IOC2tOC3lOC3heC3lOC2veC3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV91bmxvY2siIG1zZ2lkPSIyOTU5OTI4NDc4NzY0Njk3MjU0Ij4i4LeD4La74LeK4La04LarIOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5PgtrguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLgtrvgtqfgt48g4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+IuC2uOC3lOC3hOC3lOC2qyDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4LaF4Laf4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4iUElOIOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5PgtrguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXNzd29yZF91bmxvY2siIG1zZ2lkPSI3Njc1Nzc3NjIzOTEyMTU1MDg5Ij4i4La44LeU4La74La04LavIOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5PgtrguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4i4La74Lan4LePIOC2tOC3iuKAjeC2u+C2r+C3muC3geC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4i4LeD4La74LeK4La04LarIOC2tOC3iuKAjeC2u+C2r+C3muC3geC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTMzNzI4NjUzODMxODU0MzU1NSI+IuC2tOC3meC2uyDgtpzgt5Pgtq0g4La24Lec4Lat4LeK4Lat4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjcwNzM5MjgzMDA0NDQ5MDkzMjAiPiLgtongtq/gt5Lgtrvgt5Ig4Lac4LeT4LatIOC2tuC3nOC2reC3iuC2reC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IuC3gOC3kuC2u+C3j+C2uCDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+IuC2sOC3j+C3gOC2miDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+IuC2seC3kOC3gOC2reC3k+C2uOC3miDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2FsdCIgbXNnaWQ9IjQ4NTY4Njg4MjAwNDAwNTE5MzkiPiJBbHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9jYW5jZWwiIG1zZ2lkPSIxMjAzOTg0MDE3MjQ1NzgzMjQ0Ij4i4LaF4LeA4La94LaC4Lac4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiLgtrjgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kb25lIiBtc2dpZD0iMTk5MjU3MTExODQ2NjY3OTc3NSI+IuC3hOC2u+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX21vZGVfY2hhbmdlIiBtc2dpZD0iNDU0NzM4Nzc0MTkwNjUzNzUxOSI+IuC2huC2muC3j+C2u+C2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiLgtofgtq3gt5Tgtr3gt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9jayIgbXNnaWQ9IjIyMjg1MjQ5MDA0Mzk4MDE0NTMiPiLgtoXgtp/gt5Tgtr0g4LaF4La74LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X2NhbWVyYSIgbXNnaWQ9Ijk2OTA3MTk5NzU1MjQ4NjgxNCI+IuC2muC3kOC2uOC2u+C3j+C3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zaWxlbnQiIG1zZ2lkPSI4OTM1NTEyODc3NDY1MjIxODIiPiLgtrHgt5Lgt4TgtqwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4i4LeB4La24LeK4LavIOC3g+C2muC3iuKAjeC2u+C3k+C2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2VhcmNoIiBtc2dpZD0iMzA5MTU4NzI0OTc3NjAzMzEzOSI+IuC3g+C3meC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl91cCIgbXNnaWQ9IjcxNjkwMzI0NzgyNTk0ODUxODAiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g4LeD4Laz4LeE4LePIOC2i+C2qeC2pyDgt4Pgtrvgt4rgtrTgtqvgtrog4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9kb3duIiBtc2dpZD0iNTA4NzczOTcyODYzOTAxNDU5NSI+Ijx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiDgt4PgtrPgt4Tgt48g4La04LeE4La94LanIOC3g+C2u+C3iuC2tOC2q+C2uiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2xlZnQiIG1zZ2lkPSI3MjA3NDc4NzE5ODA1NTYyMTY1Ij4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IOC3g+C2s+C3hOC3jyDgt4Dgtrjgtqcg4LeD4La74LeK4La04Lar4La6IOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fcmlnaHQiIG1zZ2lkPSI4MDM0NDMzMjQyNTc5NjAwOTgwIj4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IOC3g+C2s+C3hOC3jyDgtq/gtprgt5Tgtqvgtqcg4LeD4La74LeK4La04Lar4La6IOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VyX3N3aXRjaGVkIiBtc2dpZD0iMzc2ODAwNjc4MzE2Njk4NDQxMCI+IuC2r+C3kOC2seC2pyDgt4Pgt5Lgtqfgt5LgtrEg4La04La74LeS4LeB4LeT4La94Laa4La64LePIDx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbWVyZ2VuY3lfY2FsbF9sYWJlbCIgbXNnaWQ9IjY4NDk0NjE5MjUyMzgzMDUzMSI+IuC3hOC2r+C3kuC3g+C3kiDgtofgtrjgtq3gt5TgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLgtrvgtqfgt4/gt4Ag4LaF4La44Lat4Laa4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiLgt4Dgt5Dgtrvgtq/gt5Ig4La74Lan4LeP4LeA4Laa4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGFzc3dvcmQiIG1zZ2lkPSIyMzMzMjgxNzYyMTI4MTEzMTU3Ij4i4LeA4LeQ4La74Lav4LeSIOC2uOC3lOC2u+C2tOC2r+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiJQSU4g4LaR4LaaIOC3gOC3kOC2u+C2r+C3kuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MzU4MTEwMjIxNjAzMjk3NTQ4Ij4i4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgtqcg4La04LeD4LeU4LeAIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3BhdHRlcm5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzk4OTc4NjExNjgzMDc1ODY4Ij4i4LaU4La24Lac4LeaIOC2u+C2p+C3j+C3gCDgtoXgtrPgt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiJTSU0gUElOIOC2h+C2reC3lOC2veC3lCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IlBJTiDgtpHgtpog4LaH4Lat4LeU4LeF4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU3NTM2NDY1NTYxODY5MzY4MTkiPiLgtrjgt5TgtrvgtrTgtq/gtrog4LaH4Lat4LeU4LeF4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+IuC2r+C3kOC2seC3iiBTSU0g4LaR4LaaIOC2heC2tuC2vSDgtprgtrsg4LaH4LatLiDgtongtq/gt5Lgtrvgt5Lgtrrgtqcg4La64LeP4La44LanIFBVSyDgtprgt5rgtq3gtrog4La64Lec4Lav4Lax4LeK4LaxLiDgt4Dgt5Lgt4Pgt4rgtq3gtrsg4LeD4Laz4LeE4LePIOC3gOC3j+C3hOC2muC2uuC3jyDgtoXgtrjgtq3gtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IuC2heC2tOC3muC2muC3iuC3guC3kuC2rSBQSU4g4Laa4Lea4Lat4La6IOC2h+C2reC3lOC3heC2reC3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4i4LaF4La04Lea4Laa4LeK4LeC4LeS4LatIFBJTiDgtprgt5rgtq3gtrog4LeD4LeK4Lau4LeS4La7IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iU0lNIOC2tOC2rSDgtoXgtpzgt5Tgt4Xgt5Qg4LaF4La74LeS4La44LeS4Lax4LeKLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i4LeA4LeQ4La74Lav4LeSIFBJTiDgtprgt5rgtq3gtrrgtprgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4i4LaF4LaC4LaaIDQg4LeD4LeS4LanIDgg4LaF4Lat4La7IOC3gOC2sSBQSU4g4LaR4Laa4Laa4LeKIOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iUFVLIOC2muC3muC2reC2uiDgt4PgtoLgtpvgt4rigI3gtrrgt48gOCDgtprgt4og4LeE4LedIOC3gOC3kOC2qeC3kiDgt4Dgt5Lgtrog4La64LeU4Lat4LeU4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IuC2seC3kuC3gOC3kOC2u+C2r+C3kiBQVUsg4Laa4Lea4Lat4La6IOC2seC3kOC3gOC2rSDgtofgtq3gt5Tgtr3gtq3gt4og4Laa4La74Lax4LeK4LaxLiDgtrHgt5Dgt4Dgtq0g4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgt5Lgtrvgt5Pgtrjgt5ngtrHgt4ogU0lNIOC2keC2miDgt4Pgt4rgtq7gt5Lgtrvgt4Dgtrgg4LaF4La24La9IOC2muC2u+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4iUElOIOC2muC3muC2rSDgtpzgt5Dgtr3gtrTgt5Mg4Lax4LeQ4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4i4La74Lan4LePIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgt5Lgtrvgt5Pgtrjgt4og4LeA4LeQ4Lap4LeS4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMTEwMDU1MTI2MTI2NTUwNjQ0OCI+IuC2heC2nOC3lOC3heC3lCDgtofgtrvgt5PgtrjgtqcsIOC2lOC2tuC2nOC3miBHb29nbGUg4Lac4LeS4Lar4LeU4La4IOC3g+C2uOC2nCDgtrTgt5TgtrvgtrHgtrog4LeA4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4i4La04La74LeS4LeB4LeT4La94LaaIOC2seC3j+C2uOC2uiAo4LaKLeC2reC3kOC2tOC3keC2vSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iOTA1NzI4OTEwMzgyNzI5ODU0OSI+IuC2uOC3lOC2u+C2tOC2r+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI1MzU1OTA0NTgyNjc0MDU0NzAyIj4i4La04LeU4La74Lax4La6IOC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4i4LeA4La94LaC4Lac4LeUIOC2seC3nOC3gOC2sSDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4Lax4LeP4La44La64Laa4LeKIOC3hOC3nSDgtrjgt5TgtrvgtrTgtq/gtrrgtprgt4ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IuC2lOC2tuC2nOC3miDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4Lax4LeP4La44La6IOC3hOC3nSDgtrjgt5TgtrvgtrTgtq/gtrog4LaF4La44Lat4Laa4LavP1xuICI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+IiDgt4Dgt5ngtq0g4La64Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IuC2nOC3kuC2q+C3lOC2uCDgtrTgtrvgt5Pgtprgt4rgt4Lgt48g4Laa4La74La44LeS4Lax4LeK4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiLgtpTgtrYgUElOIOC2heC2guC2muC2uiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgt4Dgt4/gtrvgtrrgtprgt4og4LeA4LeQ4La74Lav4LeS4La64LanIOC2p+C2uuC3kuC2tOC3iiDgtprgt5zgtqcg4LaH4LatLlxuXG4g4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtofgtq3gt5Tgt4Xgtq0g4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+Ijx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC3gOC2reC3j+C3gOC2muC3iiDgtpTgtrbgtpzgt5og4La44LeU4La74La04Lav4La6IOC2lOC2tiDgt4Dgt5Dgtrvgtq/gt5Lgtrrgtqcg4Lan4La64LeS4La04LeKIOC2muC2uyDgtofgtq0uIFxuXG7gtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4LanIOC2tOC3g+C3lOC3gCDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGF0dGVybl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc0MDg5NDc1OTY1MDUwODA1Ij4i4LaU4La2IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC3gOC3j+C2u+C2uuC2muC3iiDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LeaIOC2u+C2p+C3j+C3gCDgt4Dgt5Dgtrvgtq/gt5Lgtrrgtqcg4LaH4LazIOC2h+C2rS4gXG5cbuC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgtprgt4og4LaH4Lat4LeU4LeF4LatIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4/gt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+IuC2lOC2tiDgtqfgt5Dgtrbgt4rgtr3gtqfgtrog4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC2pyDgt4Dgt5Dgtrvgtq/gt5Lgtrrgtqcg4LaF4LeA4LeD4LeK4Lau4LePIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtovgtq3gt4rgt4Pgt4/gt4Qg4Laa4La7IOC2h+C2rS4g4LaF4LeA4LeD4LeK4Lau4LePIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtoXgt4Pgt4/gtrvgt4rgtq7gtprgt4Ag4LaL4Lat4LeK4LeD4LeEIOC2muC3kuC2u+C3k+C2uOC2muC3kuC2seC3iiDgtrTgt4Pgt5Tgt4AsIOC2muC2u+C3iuC2uOC3j+C2seC3iuC2rSDgt4Hgt4/gtr3gt48g4La44LeU4La94LeKIOC2reC2reC3iuC3gOC2uuC2pyDgtrHgt5Dgt4Dgtq0g4La04Lat4LeKIOC3gOC2sSDgtoXgtq3gtrsg4LeD4LeS4La64La94LeUIOC2tOC2u+C3kuC3geC3k+C2veC2miDgtq/gtq3gt4rgtq0g4Lax4LeQ4Lat4LeSIOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MDUxMDE1OTQzMDM4MTk5OTEwIj4i4LaU4La2IOC2r+C3lOC2u+C2muC2ruC2seC2uiDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC3gOC3j+C2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgtprgtq/gt5Mg4LeA4LeQ4La74Lav4LeTIOC2tOC3iuKAjeC2u+C2uuC2reC3iuC2seC2uuC2seC3iiDgtpzgt5ngtrEg4Lat4LeS4La24LeaLiDgtq3gt4Dgtq3gt4og4LaF4LeD4LeP4La74LeK4Lau4LaaIOC2tOC3iuKAjeC2u+C2uuC2reC3iuC2sSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgtprgt5LgtrHgt4og4La04LeD4LeU4LeALCDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4Laa4La74LeK4La44LeP4Lax4LeK4LatIOC3geC3j+C2veC3j+C3gOC3miDgt4Pgt5TgtrTgt5Tgtrvgt5Tgtq/gt4rgtq/gtqcg4La64LeF4LeSIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC2sSDgtoXgtq3gtrsg4LeD4LeS4La64La94LeU4La4IOC2tOC2u+C3kuC3geC3k+C2veC2miDgtq/gtq3gt4rgtq0g4Lax4LeQ4Lat4LeSIOC3gOC3kyDgtrrgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNzI5OTYyNjkxNDg0ODM2MzciPiLgtqfgt5Dgtrbgt4rgtr3gtqfgtrrgt5og4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pyDgtpTgtrYg4LeA4LeQ4La74Lav4LeSIOC2tOC3iuKAjeC2u+C2uuC2reC3iuC2sSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4LeA4LeP4La74La64Laa4LeKIOC2nOC3meC2sSDgtofgtq0uIOC2r+C3kOC2seC3iiDgtqfgt5Dgtrbgt4rgtr3gtqfgtrog4Laa4La74LeK4La44LeP4Lax4LeK4LatIOC3geC3j+C2veC3jyDgt4Pgt5TgtrTgt5Tgtrvgt5Tgtq/gt4rgtq8g4LeA4LeZ4LatIOC2uuC3heC3kiDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4Dgt5Pgtrgg4Laa4LeZ4La74LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDgxNzYyNzQ3NDQxOTQ3MTUxOCI+IuC2lOC2tiDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pyDgt4Dgt4/gtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC2muC2r+C3kyDgt4Dgt5Dgtrvgtq/gt5Mg4La04LeK4oCN4La74La64Lax4LeK4Lat4La64Lax4LeKIOC2nOC3meC2sSDgtq3gt5Lgtrbgt5ouIOC2r+C3kOC2seC3iiDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4Laa4La74LeK4La44LeP4Lax4LeK4Lat4LeB4LeP4La94LePIOC3g+C3lOC2tOC3lOC2u+C3lOC2r+C3iuC2r+C2pyDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4DgtrHgt5Qg4La94La24La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMyNTM1NzU1NzIxMTg5MTQzNzAiPiLgtpTgtrYg4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3kuC2uOC3miDgtrvgtqfgt4/gt4AgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LeA4Lat4LeP4LeA4Laa4LeKIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtofgtrMg4LaH4LatLiDgtq3gt4Dgtq3gt4og4LaF4LeD4LeP4La74LeK4Lau4LaaIOC2i+C2reC3iuC3g+C3j+C3hCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgtprgt5LgtrHgt4og4La04LeD4LeU4LeALCDgtoot4Lat4LeQ4La04LeQ4La94LeKIOC2nOC3kuC2q+C3lOC2uCDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4La74La44LeS4Lax4LeKIOC2lOC2tuC2nOC3miDgtqfgt5Dgtrbgt4rgtr3gtqfgtrrgt5og4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pyDgtpTgtrbgtqcg4La04LeA4LeD4Lax4LeUIOC2h+C2rS5cblxuIOC2seC3kOC3gOC2rSDgtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Laa4LeS4Lax4LeKIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLgtpTgtrYg4LeA4LeQ4La74Lav4LeS4La64LanIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC3gOC2reC3j+C3gOC2muC3iiDgtpTgtrbgtpzgt5og4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC3miDgtrvgtqfgt4/gt4Ag4LaH4LazIOC2h+C2rS4g4LaF4LeD4LeP4La74LeK4Lau4LaaIOC2i+C2reC3iuC3g+C3hCDgtprgt5Lgtrvgt5Pgtrjgt4ogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Lax4LeKIOC2tOC3g+C3lOC3gCwg4LaU4La24Lac4LeaIOC2ii3gtq3gt5DgtrTgt5Dgtr3gt4og4La94LeS4La04LeS4Lax4La6IOC2t+C3j+C3gOC3kuC2reC2uuC3meC2seC3iiDgtpTgtrbgtpzgt5og4Lav4LeU4La74Laa4Lau4Lax4La6IOC2heC2nOC3lOC3heC3lCDgt4Tgt5Dgtrvgt5Pgtrjgtqcg4LaU4La24Lac4LeZ4Lax4LeKIOC2heC3g+C2uuC3ki5cblxuIOC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDgtrHgt4og4La04LeD4LeU4LeAIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IuC2ieC3gOC2reC3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiLgtrTgt5ngtrsg4Lac4LeT4LatIOC2tuC3nOC2reC3iuC2reC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IuC2ieC2r+C3kuC2u+C3kiDgtpzgt5Pgtq0g4La64Lat4LeU4La7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IuC3gOC3kuC2u+C3j+C2uCDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjI5MjQ2Mjg4NjM3NDExNTA5NTYiPiLgtrDgt4/gt4DgtrEg4La24Lec4Lat4LeK4Lat4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSIzMDg0MTc5MzI0ODEwNTc1Nzg3Ij4i4Lax4LeQ4LeA4Lat4LeU4La44LeKIOC2tuC3nOC2reC3iuC2reC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NhcnJpZXJfZGVmYXVsdCIgbXNnaWQ9Ijg3MDA2NTA0MDMwNTQwNDIxNTMiPiLgt4Pgt5rgt4Dgt4/gt4Ag4Lax4LeQ4LatLiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1zaS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtc2kvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODkwNGM3ZQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtc2kvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwxNDAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyogLy9kZXZpY2UvYXBwcy9jb21tb24vYXNzZXRzL3Jlcy9hbnkvc3RyaW5ncy54bWwKKyoqCisqKiBDb3B5cmlnaHQgMjAwNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorKioKKyoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorKiogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqKgorKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKioKKyoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iUElOIOC2muC3muC2reC2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iUFVLIOC3g+C3hCDgtrHgt4AgUElOIOC2muC3muC2reC2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsg4Laa4Lea4Lat4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLgtrHgt4AgUElOIOC2muC3muC2reC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IuC2uOC3lOC2u+C2tOC2r+C2uiDgtqfgtrrgt5LgtrTgt4og4Laa4LeS4La74LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEiPC9mb250Pjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC2uOC3lOC2u+C2tOC2r+C2uiDgtqfgtrrgt5LgtrTgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC2pyBQSU4g4LaR4LaaIOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiLgt4Dgt5Dgtrvgtq/gt5IgUElOIOC2muC3muC2reC2uuC2muC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9sYWJlbF90ZXh0IiBtc2dpZD0iODYxNzk2NDYxMDI4Mjk4NDI0Ij4i4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pywg4La44LeZ4Lax4LeU4LeAIOC2lOC2tuC3jyDgtrTgt4Pgt5Tgt4AgMCDgtq8g4LaU4La24Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhY2V1bmxvY2tfbXVsdGlwbGVfZmFpbHVyZXMiIG1zZ2lkPSI3NTQxMzc1ODMwMjI3OTI0MjkiPiLgtrjgt5Tgt4Tgt5Tgtqsg4La34LeP4LeA4LeS4Lat4La64LeZ4Lax4LeKIOC2heC2n+C3lOC3heC3lCDgt4Tgt5Dgtrvgt5Pgtrjgt5og4LaL4La04La74LeS4La4IOC2tOC3iuKAjeC2u+C2uuC2seC3iuC2reC2uuC2seC3iiDgtpzgtqvgtrEg4LaJ4Laa4LeK4La44LeA4LePIOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NoYXJnZWQiIG1zZ2lkPSIzMjcyMjIzOTA2MDczNDkyNDU0Ij4i4LaF4La74Led4La04LeS4Lat4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGx1Z2dlZF9pbiIgbXNnaWQ9IjgxMTc1NzIwMDA2Mzk5OTgzODgiPiLgtobgtrvgt53gtrTgtqvgtrog4LeA4LeZ4La44LeS4Lax4LeKLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbG93X2JhdHRlcnkiIG1zZ2lkPSI4MTQzODA4MDE4NzE5MTczODU5Ij4i4LaU4La24Lac4LeaIOC2huC2u+C3neC2tOC2muC2uuC2pyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2luc3RydWN0aW9uc193aGVuX3BhdHRlcm5fZGlzYWJsZWQiIG1zZ2lkPSIxMzMyMjg4MjY4NjAwMzI5ODQxIj4i4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pyDgtrjgt5ngtrHgt5Tgt4Ag4LaU4La24Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX25ldHdvcmtfbG9ja2VkX21lc3NhZ2UiIG1zZ2lkPSI5MTY5NzE3Nzc5MDU4MDM3MTY4Ij4i4Lai4LeP4La9IOC2heC2nOC3lOC3heC3lCDgtq/gtrjgt48g4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjQ5NDk4MDU2MTMwNDIxMTkzMSI+IlNJTSDgtrTgtq0g4Lax4Lec4La44LeQ4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1fbWVzc2FnZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTQ0NTg0OTAwNTkwOTI2MDAzOSI+IuC2p+C3kOC2tuC3iuC2veC2p+C2uuC3miBTSU0g4La04LatIOC2seC3nOC2uOC3kOC2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9tZXNzYWdlIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMzQ4MTExMDM5NTUwODYzNzY0MyI+IuC2r+C3lOC2u+C2muC2ruC2seC2uiDgtq3gt5Tgtr0gU0lNIOC2tOC2reC2muC3iiDgtrHgt5Dgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbWlzc2luZ19zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTIxMDg5MTUwOTk5NTk0MjI1MCI+IlNJTSDgtrTgtq0g4LaH4Lat4LeU4La94LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjU5Njg5ODU0ODk0NjM4NzAzNTgiPiJTSU0g4La04LatIOC2seC3nOC2uOC3kOC2rSDgt4Tgt50g4Laa4LeS4La64LeA4LeS4La6IOC2seC3nOC3hOC3kOC2mi4gU0lNIOC2tOC2reC2muC3iiDgtofgtq3gt5Tgtr3gt4og4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1fbWVzc2FnZV9zaG9ydCIgbXNnaWQ9IjgzNDA4MTM5ODk1ODY2MjIzNTYiPiLgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4LeFIOC2seC3nOC3hOC3kOC2muC3kiBTSU0g4La04LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTg5Mjk0MDkwOTY5OTcyMzU0NCI+IuC2lOC2tuC2nOC3miBTSU0g4La04LatIOC3g+C3iuC2ruC3kuC2u+C3gCDgtoXgtrbgtr0g4Laa4La7IOC2h+C2rS5cbiDgt4Dgt5ngtrHgtq3gt4ogU0lNIOC2tOC2reC2muC3iiDgt4PgtrPgt4Tgt48g4LaU4La24Lac4LeaIOC2seC3nOC2u+C3kOC3hOC3kOC2seC3iiDgt4Pgt5rgt4Dgt48g4LeD4LeQ4La04La64LeU4La44LeK4Laa4La74LeUIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgtrvgtpzgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iNjg3NTc3MzQxMzMwNjM4MDkwMiI+IlNJTSDgtrTgtq0g4LaF4Lac4LeU4LeF4LeUIOC2r+C2uOC3jyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3B1a19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NDcyMzI0Njc0NzE4MDE2MzMiPiJTSU0g4La04LatIFBVSyDgtoXgtpzgt5Tgt4Xgt5Qg4La94LePIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzk3NTIyMTgwNTAzMzYxNDQyNiI+IlNJTSDgtrTgtq0g4LaF4Lac4LeU4LeF4LeUIOC3hOC2u+C3kuC2uOC3kuC2seC3ii4uLiI8L3N0cmluZz4KKyAgICA8IS0tIFN0cmluZy5mb3JtYXQgZmFpbGVkIGZvciB0cmFuc2xhdGlvbiAtLT4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9jaGFuZ2VkICg1Njc4NjI0NjI0NjgxNDAwMTkxKSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9hZGRfd2lkZ2V0IiBtc2dpZD0iODI3MzI3NzA1ODcyNDkyNDY1NCI+IuC3gOC3kuC2ouC2p+C2uiDgtpHgtprgtq3gt5Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i4LeE4LeS4LeD4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLgtoXgtpzgt5Tgt4Xgt5Qg4LaF4La74LeS4LaxIOC2tOC3iuKAjeC2u+C2r+C3muC3geC2uiDgt4Dgt5Lgtq/gt4Tgt48g4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdW5sb2NrX2FyZWFfY29sbGFwc2VkIiBtc2dpZD0iNjM2Njk5MjA2NjkzNjA3NjM5NiI+IuC2heC2nOC3lOC3heC3lCDgtoXgtrvgt5LgtrEg4La04LeK4oCN4La74Lav4Lea4LeB4La6IOC3hOC3kOC2muC3kuC2veC3kyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXQiIG1zZ2lkPSI2NTI3MTMxMDM5NzQxODA4MjQwIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4LeA4LeS4Lai4Lan4LeKLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdXNlcl9zZWxlY3RvciIgbXNnaWQ9IjEyMjY3OTgzNzA5MTM2OTg4OTYiPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4Lat4Led4La74Lax4LeK4Lax4LePIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zdGF0dXMiIG1zZ2lkPSI4MDA4MjY0NjAzOTM1OTMwNjExIj4i4Lat4Lat4LeK4LeA4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9jYW1lcmEiIG1zZ2lkPSI4OTA0MjMxMTk0MTgxMTE0NjAzIj4i4Laa4LeQ4La44La74LeP4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z2F1cmRfYWNjZXNzaWJpbGl0eV9tZWRpYV9jb250cm9scyIgbXNnaWQ9IjI2MjIwOTY1NDI5MjE2MTgwNiI+IuC2uOC3j+C2sOC3iuKAjeC2uiDgtrTgt4/gtr3gtpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX3N0YXJ0IiBtc2dpZD0iODczNjg1MzYxNTU4ODgyODE5NyI+IuC3gOC3kuC2ouC2p+C2uiDgtrHgt5Dgt4Dgtq0g4LaF4Lax4LeU4La04LeS4LeF4LeS4LeA4LeZ4LeF4LanIOC3g+C3kOC2muC3g+C3kuC2uCDgtofgtrvgtrngt5Tgtqvgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9lbmQiIG1zZ2lkPSI3MTcwMTkwOTUwODcwNDY4MzIwIj4i4LeA4LeS4Lai4Lan4LeKIOC2seC3kOC3gOC2rSDgtoXgtrHgt5TgtrTgt5Lgt4Xgt5Lgt4Dgt5ngtr3gtqcg4LeD4LeQ4Laa4LeD4LeT4La4IOC2heC3gOC3g+C3j+C2seC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9kZWxldGVkIiBtc2dpZD0iNDQyNjIwNDI2MzkyOTIyNDQzNCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IOC3gOC3kuC2ouC2p+C2uiDgtrjgt5Dgtprgt5Mg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZXhwYW5kX2xvY2tfYXJlYSIgbXNnaWQ9IjUxOTg1OTcyMDkzNDE3ODAyNCI+IuC2heC2nOC3lOC3heC3lCDgtrHgt5zgtq/gt5Dgtrjgt5Yg4La04LeK4oCN4La74Lav4Lea4LeB4La6IOC2tOC3lOC3heC3lOC2veC3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV91bmxvY2siIG1zZ2lkPSIyOTU5OTI4NDc4NzY0Njk3MjU0Ij4i4LeD4La74LeK4La04LarIOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5PgtrguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLgtrvgtqfgt48g4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+IuC2uOC3lOC3hOC3lOC2qyDgtrfgt4/gt4Dgt5Lgtq3gtrrgt5ngtrHgt4og4LaF4Laf4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Bpbl91bmxvY2siIG1zZ2lkPSIyNDY5Njg3MTExNzg0MDM1MDQ2Ij4iUElOIOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5PgtrguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXNzd29yZF91bmxvY2siIG1zZ2lkPSI3Njc1Nzc3NjIzOTEyMTU1MDg5Ij4i4La44LeU4La74La04LavIOC2heC2nOC3lOC3heC3lCDgtofgtrvgt5PgtrguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4i4La74Lan4LePIOC2tOC3iuKAjeC2u+C2r+C3muC3geC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3NsaWRlX2FyZWEiIG1zZ2lkPSI2NzM2MDY0NDk0MDE5OTc5NTQ0Ij4i4LeD4La74LeK4La04LarIOC2tOC3iuKAjeC2u+C2r+C3muC3geC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMTMzNzI4NjUzODMxODU0MzU1NSI+IuC2tOC3meC2uyDgtpzgt5Pgtq0g4La24Lec4Lat4LeK4Lat4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjcwNzM5MjgzMDA0NDQ5MDkzMjAiPiLgtongtq/gt5Lgtrvgt5Ig4Lac4LeT4LatIOC2tuC3nOC2reC3iuC2reC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IuC3gOC3kuC2u+C3j+C2uCDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+IuC2sOC3j+C3gOC2miDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+IuC2seC3kOC3gOC2reC3k+C2uOC3miDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2FsdCIgbXNnaWQ9IjQ4NTY4Njg4MjAwNDAwNTE5MzkiPiJBbHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9jYW5jZWwiIG1zZ2lkPSIxMjAzOTg0MDE3MjQ1NzgzMjQ0Ij4i4LaF4LeA4La94LaC4Lac4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiLgtrjgtprgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kb25lIiBtc2dpZD0iMTk5MjU3MTExODQ2NjY3OTc3NSI+IuC3hOC2u+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX21vZGVfY2hhbmdlIiBtc2dpZD0iNDU0NzM4Nzc0MTkwNjUzNzUxOSI+IuC2huC2muC3j+C2u+C2uiDgt4Dgt5ngtrHgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfc2hpZnQiIG1zZ2lkPSIyMjcwNzQ4ODE0MzE1MTQ3NjkwIj4iU2hpZnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9lbnRlciIgbXNnaWQ9IjI5ODU4NjQwMTUwNzYwNTk0NjciPiLgtofgtq3gt5Tgtr3gt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3VubG9jayIgbXNnaWQ9IjIyMjg1MjQ5MDA0Mzk4MDE0NTMiPiLgtoXgtp/gt5Tgtr0g4LaF4La74LeS4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X2NhbWVyYSIgbXNnaWQ9Ijk2OTA3MTk5NzU1MjQ4NjgxNCI+IuC2muC3kOC2uOC2u+C3j+C3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zaWxlbnQiIG1zZ2lkPSI4OTM1NTEyODc3NDY1MjIxODIiPiLgtrHgt5Lgt4TgtqwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4i4LeB4La24LeK4LavIOC3g+C2muC3iuKAjeC2u+C3k+C2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc2VhcmNoIiBtc2dpZD0iMzA5MTU4NzI0OTc3NjAzMzEzOSI+IuC3g+C3meC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl91cCIgbXNnaWQ9IjcxNjkwMzI0NzgyNTk0ODUxODAiPiI8eGxpZmY6ZyBpZD0iVEFSR0VUX0RFU0NSSVBUSU9OIj4lczwveGxpZmY6Zz4g4LeD4Laz4LeE4LePIOC2i+C2qeC2pyDgt4Pgtrvgt4rgtrTgtqvgtrog4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX2RpcmVjdGlvbl9kb3duIiBtc2dpZD0iNTA4NzczOTcyODYzOTAxNDU5NSI+Ijx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPiDgt4PgtrPgt4Tgt48g4La04LeE4La94LanIOC3g+C2u+C3iuC2tOC2q+C2uiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2xlZnQiIG1zZ2lkPSI3MjA3NDc4NzE5ODA1NTYyMTY1Ij4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IOC3g+C2s+C3hOC3jyDgt4Dgtrjgtqcg4LeD4La74LeK4La04Lar4La6IOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fcmlnaHQiIG1zZ2lkPSI4MDM0NDMzMjQyNTc5NjAwOTgwIj4iPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+IOC3g+C2s+C3hOC3jyDgtq/gtprgt5Tgtqvgtqcg4LeD4La74LeK4La04Lar4La6IOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VyX3N3aXRjaGVkIiBtc2dpZD0iMzc2ODAwNjc4MzE2Njk4NDQxMCI+IuC2r+C3kOC2seC2pyDgt4Pgt5Lgtqfgt5LgtrEg4La04La74LeS4LeB4LeT4La94Laa4La64LePIDx4bGlmZjpnIGlkPSJOQU1FIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbWVyZ2VuY3lfY2FsbF9sYWJlbCIgbXNnaWQ9IjY4NDk0NjE5MjUyMzgzMDUzMSI+IuC3hOC2r+C3kuC3g+C3kiDgtofgtrjgtq3gt5TgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLgtrvgtqfgt4/gt4Ag4LaF4La44Lat4Laa4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGF0dGVybiIgbXNnaWQ9IjE4NTA4MDYwNzA4MDEzNTg4MzAiPiLgt4Dgt5Dgtrvgtq/gt5Ig4La74Lan4LeP4LeA4Laa4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfd3JvbmdfcGFzc3dvcmQiIG1zZ2lkPSIyMzMzMjgxNzYyMTI4MTEzMTU3Ij4i4LeA4LeQ4La74Lav4LeSIOC2uOC3lOC2u+C2tOC2r+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiJQSU4g4LaR4LaaIOC3gOC3kOC2u+C2r+C3kuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9hdHRlbXB0c19jb3VudGRvd24iIG1zZ2lkPSI2MzU4MTEwMjIxNjAzMjk3NTQ4Ij4i4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgtqcg4La04LeD4LeU4LeAIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3BhdHRlcm5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzk4OTc4NjExNjgzMDc1ODY4Ij4i4LaU4La24Lac4LeaIOC2u+C2p+C3j+C3gCDgtoXgtrPgt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fcGluX2luc3RydWN0aW9ucyIgbXNnaWQ9IjIzMTk1MDg1NTA5MzQ1NTczMzEiPiJTSU0gUElOIOC2h+C2reC3lOC2veC3lCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMjM3NzI0MjIzMzQ5NTExMTU1NyI+IlBJTiDgtpHgtpog4LaH4Lat4LeU4LeF4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX2luc3RydWN0aW9ucyIgbXNnaWQ9IjU3NTM2NDY1NTYxODY5MzY4MTkiPiLgtrjgt5TgtrvgtrTgtq/gtrog4LaH4Lat4LeU4LeF4LeUIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9wdWtfaGludCIgbXNnaWQ9IjQ1MzIyNzE0Mzg2MTczNTUzNyI+IuC2r+C3kOC2seC3iiBTSU0g4LaR4LaaIOC2heC2tuC2vSDgtprgtrsg4LaH4LatLiDgtongtq/gt5Lgtrvgt5Lgtrrgtqcg4La64LeP4La44LanIFBVSyDgtprgt5rgtq3gtrog4La64Lec4Lav4Lax4LeK4LaxLiDgt4Dgt5Lgt4Pgt4rgtq3gtrsg4LeD4Laz4LeE4LePIOC3gOC3j+C3hOC2muC2uuC3jyDgtoXgtrjgtq3gtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IuC2heC2tOC3muC2muC3iuC3guC3kuC2rSBQSU4g4Laa4Lea4Lat4La6IOC2h+C2reC3lOC3heC2reC3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4i4LaF4La04Lea4Laa4LeK4LeC4LeS4LatIFBJTiDgtprgt5rgtq3gtrog4LeD4LeK4Lau4LeS4La7IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4iU0lNIOC2tOC2rSDgtoXgtpzgt5Tgt4Xgt5Qg4LaF4La74LeS4La44LeS4Lax4LeKLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i4LeA4LeQ4La74Lav4LeSIFBJTiDgtprgt5rgtq3gtrrgtprgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4i4LaF4LaC4LaaIDQg4LeD4LeS4LanIDgg4LaF4Lat4La7IOC3gOC2sSBQSU4g4LaR4Laa4Laa4LeKIOC2p+C2uuC3kuC2tOC3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iUFVLIOC2muC3muC2reC2uiDgt4PgtoLgtpvgt4rigI3gtrrgt48gOCDgtprgt4og4LeE4LedIOC3gOC3kOC2qeC3kiDgt4Dgt5Lgtrog4La64LeU4Lat4LeU4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IuC2seC3kuC3gOC3kOC2u+C2r+C3kiBQVUsg4Laa4Lea4Lat4La6IOC2seC3kOC3gOC2rSDgtofgtq3gt5Tgtr3gtq3gt4og4Laa4La74Lax4LeK4LaxLiDgtrHgt5Dgt4Dgtq0g4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgt5Lgtrvgt5Pgtrjgt5ngtrHgt4ogU0lNIOC2keC2miDgt4Pgt4rgtq7gt5Lgtrvgt4Dgtrgg4LaF4La24La9IOC2muC2u+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX2NvbmZpcm1fcGluX2hpbnQiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI3MDAzNDY5MjYxNDY0NTkzNTE2Ij4iUElOIOC2muC3muC2rSDgtpzgt5Dgtr3gtrTgt5Mg4Lax4LeQ4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4i4La74Lan4LePIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgt5Lgtrvgt5Pgtrjgt4og4LeA4LeQ4Lap4LeS4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMTEwMDU1MTI2MTI2NTUwNjQ0OCI+IuC2heC2nOC3lOC3heC3lCDgtofgtrvgt5PgtrjgtqcsIOC2lOC2tuC2nOC3miBHb29nbGUg4Lac4LeS4Lar4LeU4La4IOC3g+C2uOC2nCDgtrTgt5TgtrvgtrHgtrog4LeA4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3VzZXJuYW1lX2hpbnQiIG1zZ2lkPSI1NzE4NTM0MjcyMDcwOTIwMzY0Ij4i4La04La74LeS4LeB4LeT4La94LaaIOC2seC3j+C2uOC2uiAo4LaKLeC2reC3kOC2tOC3keC2vSkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iOTA1NzI4OTEwMzgyNzI5ODU0OSI+IuC2uOC3lOC2u+C2tOC2r+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI1MzU1OTA0NTgyNjc0MDU0NzAyIj4i4La04LeU4La74Lax4La6IOC3gOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2ludmFsaWRfaW5wdXQiIG1zZ2lkPSI1NzU0NjY0MTE5MzE5ODcyMTk3Ij4i4LeA4La94LaC4Lac4LeUIOC2seC3nOC3gOC2sSDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4Lax4LeP4La44La64Laa4LeKIOC3hOC3nSDgtrjgt5TgtrvgtrTgtq/gtrrgtprgt4ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fYWNjb3VudF9yZWNvdmVyeV9oaW50IiBtc2dpZD0iNTY5MDcwOTEzMjg0MTc1Mjk3NCI+IuC2lOC2tuC2nOC3miDgtrTgtrvgt5Lgt4Hgt5Pgtr3gtpog4Lax4LeP4La44La6IOC3hOC3nSDgtrjgt5TgtrvgtrTgtq/gtrog4LaF4La44Lat4Laa4LavP1xuICI8Yj4iZ29vZ2xlLmNvbS9hY2NvdW50cy9yZWNvdmVyeSI8L2I+IiDgt4Dgt5ngtq0g4La64Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX2NoZWNraW5nX3Bhc3N3b3JkIiBtc2dpZD0iMTA1MjY4NTE5NzcxMDI1MjM5NSI+IuC2nOC3kuC2q+C3lOC2uCDgtrTgtrvgt5Pgtprgt4rgt4Lgt48g4Laa4La74La44LeS4Lax4LeK4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiLgtpTgtrYgUElOIOC2heC2guC2muC2uiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgt4Dgt4/gtrvgtrrgtprgt4og4LeA4LeQ4La74Lav4LeS4La64LanIOC2p+C2uuC3kuC2tOC3iiDgtprgt5zgtqcg4LaH4LatLlxuXG4g4Lat4Lat4LeK4La04La7IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtofgtq3gt5Tgt4Xgtq0g4Lax4LeQ4LeA4LatIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bhc3N3b3JkX2F0dGVtcHRzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzgxMzcxMzM4OTQyMjIyNjUzMSI+Ijx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC3gOC2reC3j+C3gOC2muC3iiDgtpTgtrbgtpzgt5og4La44LeU4La74La04Lav4La6IOC2lOC2tiDgt4Dgt5Dgtrvgtq/gt5Lgtrrgtqcg4Lan4La64LeS4La04LeKIOC2muC2uyDgtofgtq0uIFxuXG7gtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4LanIOC2tOC3g+C3lOC3gCDgtrHgt5Dgt4Dgtq0g4LaL4Lat4LeK4LeD4LeEIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGF0dGVybl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc0MDg5NDc1OTY1MDUwODA1Ij4i4LaU4La2IDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC3gOC3j+C2u+C2uuC2muC3iiDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LeaIOC2u+C2p+C3j+C3gCDgt4Dgt5Dgtrvgtq/gt5Lgtrrgtqcg4LaH4LazIOC2h+C2rS4gXG5cbuC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgtprgt4og4LaH4Lat4LeU4LeF4LatIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4/gt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfd2lwZSIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMTU3NTU1NzIwMDYyNzEyODk0OSI+IuC2lOC2tiDgtqfgt5Dgtrbgt4rgtr3gtqfgtrog4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC2pyDgt4Dgt5Dgtrvgtq/gt5Lgtrrgtqcg4LaF4LeA4LeD4LeK4Lau4LePIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtovgtq3gt4rgt4Pgt4/gt4Qg4Laa4La7IOC2h+C2rS4g4LaF4LeA4LeD4LeK4Lau4LePIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOC2muC3iiDgtoXgt4Pgt4/gtrvgt4rgtq7gtprgt4Ag4LaL4Lat4LeK4LeD4LeEIOC2muC3kuC2u+C3k+C2uOC2muC3kuC2seC3iiDgtrTgt4Pgt5Tgt4AsIOC2muC2u+C3iuC2uOC3j+C2seC3iuC2rSDgt4Hgt4/gtr3gt48g4La44LeU4La94LeKIOC2reC2reC3iuC3gOC2uuC2pyDgtrHgt5Dgt4Dgtq0g4La04Lat4LeKIOC3gOC2sSDgtoXgtq3gtrsg4LeD4LeS4La64La94LeUIOC2tOC2u+C3kuC3geC3k+C2veC2miDgtq/gtq3gt4rgtq0g4Lax4LeQ4Lat4LeSIOC3gOC3meC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MDUxMDE1OTQzMDM4MTk5OTEwIj4i4LaU4La2IOC2r+C3lOC2u+C2muC2ruC2seC2uiDgtoXgtpzgt5Tgt4Xgt5Qg4LaH4La74LeT4La44LanIOC3gOC3j+C2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDgtprgtq/gt5Mg4LeA4LeQ4La74Lav4LeTIOC2tOC3iuKAjeC2u+C2uuC2reC3iuC2seC2uuC2seC3iiDgtpzgt5ngtrEg4Lat4LeS4La24LeaLiDgtq3gt4Dgtq3gt4og4LaF4LeD4LeP4La74LeK4Lau4LaaIOC2tOC3iuKAjeC2u+C2uuC2reC3iuC2sSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgtprgt5LgtrHgt4og4La04LeD4LeU4LeALCDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4Laa4La74LeK4La44LeP4Lax4LeK4LatIOC3geC3j+C2veC3j+C3gOC3miDgt4Pgt5TgtrTgt5Tgtrvgt5Tgtq/gt4rgtq/gtqcg4La64LeF4LeSIOC2tOC3kuC3hOC3kuC2p+C3lOC3gOC2sSDgtoXgtq3gtrsg4LeD4LeS4La64La94LeU4La4IOC2tOC2u+C3kuC3geC3k+C2veC2miDgtq/gtq3gt4rgtq0g4Lax4LeQ4Lat4LeSIOC3gOC3kyDgtrrgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjIwNzI5OTYyNjkxNDg0ODM2MzciPiLgtqfgt5Dgtrbgt4rgtr3gtqfgtrrgt5og4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pyDgtpTgtrYg4LeA4LeQ4La74Lav4LeSIOC2tOC3iuKAjeC2u+C2uuC2reC3iuC2sSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4LeA4LeP4La74La64Laa4LeKIOC2nOC3meC2sSDgtofgtq0uIOC2r+C3kOC2seC3iiDgtqfgt5Dgtrbgt4rgtr3gtqfgtrog4Laa4La74LeK4La44LeP4Lax4LeK4LatIOC3geC3j+C2veC3jyDgt4Pgt5TgtrTgt5Tgtrvgt5Tgtq/gt4rgtq8g4LeA4LeZ4LatIOC2uuC3heC3kiDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4Dgt5Pgtrgg4Laa4LeZ4La74LeaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19ub3dfd2lwaW5nIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDgxNzYyNzQ3NDQxOTQ3MTUxOCI+IuC2lOC2tiDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pyDgt4Dgt4/gtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOC2muC2r+C3kyDgt4Dgt5Dgtrvgtq/gt5Mg4La04LeK4oCN4La74La64Lax4LeK4Lat4La64Lax4LeKIOC2nOC3meC2sSDgtq3gt5Lgtrbgt5ouIOC2r+C3kOC2seC3iiDgtq/gt5Tgtrvgtprgtq7gtrHgtrog4Laa4La74LeK4La44LeP4Lax4LeK4Lat4LeB4LeP4La94LePIOC3g+C3lOC2tOC3lOC2u+C3lOC2r+C3iuC2r+C2pyDgtrTgt5Lgt4Tgt5Lgtqfgt5Tgt4DgtrHgt5Qg4La94La24La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjMyNTM1NzU1NzIxMTg5MTQzNzAiPiLgtpTgtrYg4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3kuC2uOC3miDgtrvgtqfgt4/gt4AgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LeA4Lat4LeP4LeA4Laa4LeKIOC3gOC3kOC2u+C2r+C3kuC2uuC2pyDgtofgtrMg4LaH4LatLiDgtq3gt4Dgtq3gt4og4LaF4LeD4LeP4La74LeK4Lau4LaaIOC2i+C2reC3iuC3g+C3j+C3hCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDgtprgt5LgtrHgt4og4La04LeD4LeU4LeALCDgtoot4Lat4LeQ4La04LeQ4La94LeKIOC2nOC3kuC2q+C3lOC2uCDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4La74La44LeS4Lax4LeKIOC2lOC2tuC2nOC3miDgtqfgt5Dgtrbgt4rgtr3gtqfgtrrgt5og4LaF4Lac4LeU4LeF4LeUIOC2h+C2u+C3k+C2uOC2pyDgtpTgtrbgtqcg4La04LeA4LeD4Lax4LeUIOC2h+C2rS5cblxuIOC2seC3kOC3gOC2rSDgtq3gtq3gt4rgtrTgtrsgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Laa4LeS4Lax4LeKIOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLgtpTgtrYg4LeA4LeQ4La74Lav4LeS4La64LanIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOC3gOC2reC3j+C3gOC2muC3iiDgtpTgtrbgtpzgt5og4LaF4Lac4LeU4LeF4LeUIOC3hOC3kOC2u+C3k+C2uOC3miDgtrvgtqfgt4/gt4Ag4LaH4LazIOC2h+C2rS4g4LaF4LeD4LeP4La74LeK4Lau4LaaIOC2i+C2reC3iuC3g+C3hCDgtprgt5Lgtrvgt5Pgtrjgt4ogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g4Lax4LeKIOC2tOC3g+C3lOC3gCwg4LaU4La24Lac4LeaIOC2ii3gtq3gt5DgtrTgt5Dgtr3gt4og4La94LeS4La04LeS4Lax4La6IOC2t+C3j+C3gOC3kuC2reC2uuC3meC2seC3iiDgtpTgtrbgtpzgt5og4Lav4LeU4La74Laa4Lau4Lax4La6IOC2heC2nOC3lOC3heC3lCDgt4Tgt5Dgtrvgt5Pgtrjgtqcg4LaU4La24Lac4LeZ4Lax4LeKIOC2heC3g+C2uuC3ki5cblxuIOC2reC2reC3iuC2tOC2uyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDgtrHgt4og4La04LeD4LeU4LeAIOC2seC3kOC3gOC2rSDgtovgtq3gt4rgt4Pgt4Qg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IuC2ieC3gOC2reC3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiLgtrTgt5ngtrsg4Lac4LeT4LatIOC2tuC3nOC2reC3iuC2reC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IuC2ieC2r+C3kuC2u+C3kiDgtpzgt5Pgtq0g4La64Lat4LeU4La7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IuC3gOC3kuC2u+C3j+C2uCDgtrbgt5zgtq3gt4rgtq3gtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjI5MjQ2Mjg4NjM3NDExNTA5NTYiPiLgtrDgt4/gt4DgtrEg4La24Lec4Lat4LeK4Lat4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSIzMDg0MTc5MzI0ODEwNTc1Nzg3Ij4i4Lax4LeQ4LeA4Lat4LeU4La44LeKIOC2tuC3nOC2reC3iuC2reC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NhcnJpZXJfZGVmYXVsdCIgbXNnaWQ9Ijg3MDA2NTA0MDMwNTQwNDIxNTMiPiLgt4Pgt5rgt4Dgt4/gt4Ag4Lax4LeQ4LatLiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1zay9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtc2svc3RyaW5ncy54bWwKaW5kZXggNGIyZTFlMy4uY2RmOGNhOSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1zay9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXNrL3N0cmluZ3MueG1sCkBAIC0yMSw5ICsyMSw5IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJaYWRhanRlIGvDs2QgUElOIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iWmFkYWp0ZSBrw7NkIFBVSyBhIG5vdsO9IGvDs2QgUElOIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJLw7NkIFBVSyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iTm92w70ga8OzZCBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiJaYWRhanRlIGvDs2QgUFVLIGthcnR5IFNJTSBhIG5vdsO9IGvDs2QgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJLw7NkIFBVSyBrYXJ0eSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+Ik5vdsO9IGvDs2QgUElOIGthcnR5IFNJTSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IkRvdGtudXTDrW0gemFkYWp0ZSBoZXNsbyI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IlphZGFqdGUgaGVzbG8gbmEgb2RvbWtudXRpZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IlphZGFqdGUga8OzZCBQSU4gbmEgb2RvbWtudXRpZSI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiJUbGHEjWlkbG8gUG96YXN0YXZpxaUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+IlRsYcSNaWRsbyBQcmVocmHFpSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iVGxhxI1pZGxvIFphc3RhdmnFpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiJQw6HEjWkgc2EgbWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiJOZXDDocSNaSBzYSBtaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IlNyZGNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4iT2RvbWtuaXRlIHphcmlhZGVuaWUgYSBwb2tyYcSNdWp0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IlNwdXN0ZW5pZSBib2xvIHpydcWhZW7DqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJVdm/Evm5lbsOtbSBkb3R5a3UgbWluaWFwbGlrw6FjaXUgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gb2RzdHLDoW5pdGUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+Ik1pbmlhcGxpa8OhY2lhIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IG5lYnVkZSBvZHN0csOhbmVuw6EuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC0xMDUsNyArMTEyLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiJaYWRhanRlIHBvxb5hZG92YW7DvSBrw7NkIFBJTiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiJQb3R2csSPdGUgcG/FvmFkb3ZhbsO9IGvDs2QgUElOIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJQcmViaWVoYSBvZG9teWthbmllIGthcnR5IFNJTS4uLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+Ik5lc3Byw6F2bnkga8OzZCBQSU4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iWmFkYWp0ZSBrw7NkIFBJTiBzIGTEusW+a291IDQgYcW+IDggxI3DrXNsaWMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iS8OzZCBQVUsgbXVzw60gb2JzYWhvdmHFpSA4IGFsZWJvIHZpYWMgxI3DrXNsaWMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iWm5vdmEgemFkYWp0ZSBzcHLDoXZueSBrw7NkIFBVSy4gT3Bha292YW7DqSBwb2t1c3kgemFrw6HFvnUga2FydHUgU0lNIG5hdHJ2YWxvLiI8L3N0cmluZz4KQEAgLTEyOSw2ICsxMzUsMTkgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4ta3LDoXQgc3RlIG5lc3Byw6F2bmUgbmFrcmVzbGlsaSBzdm9qIGJlenBlxI1ub3N0bsO9IHZ6b3IuIFBvIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IMSPYWzFocOtY2ggbmXDunNwZcWhbsO9Y2ggcG9rdXNvY2ggc2Egem9icmF6w60gdsO9enZhIG5hIG9kb21rbnV0aWUgdGVsZWbDs251IHBvbW9jb3UgZS1tYWlsb3bDqWhvIMO6xI10dS5cblxuIFNrw7pzdGUgdG8gem5vdmEgbyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+Ik9kc3Ryw6FuacWlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiJOZXNwcsOhdm55IGvDs2QgUElOIGthcnR5IFNJTS4gVGVyYXogbXVzw610ZSBrb250YWt0b3ZhxaUgc3ZvamhvIG9wZXLDoXRvcmEsIGFieSB2w6FtIG9kb21rb2wgemFyaWFkZW5pZS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+Ik5lc3Byw6F2bnkga8OzZCBQSU4ga2FydHkgU0lNLiBab3N0w6F2YSB2w6FtIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwb2t1cywgaW5hayBidWRldGUgbXVzaWXFpSBrb250YWt0b3ZhxaUgc3ZvamhvIG9wZXLDoXRvcmEsIGFieSB2w6FtIG9kb21rb2wgemFyaWFkZW5pZS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJOZXNwcsOhdm55IGvDs2QgUElOIGthcnR5IFNJTS4gUG/EjWV0IHpvc3TDoXZhasO6Y2ljaCBwb2t1c292OiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJLYXJ0YSBTSU0gamUgbmVwb3XFvml0ZcS+bsOhLiBLb250YWt0dWp0ZSBzdm9qaG8gb3BlcsOhdG9yYS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+Ik5lc3Byw6F2bnkga8OzZCBQVUsga2FydHkgU0lNLiBab3N0w6F2YSB2w6FtIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwb2t1cywgaW5hayBzYSB2YcWhYSBrYXJ0YSBTSU0gbmF0cnZhbG8gemFibG9rdWplLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+Ik5lc3Byw6F2bnkga8OzZCBQVUsga2FydHkgU0lNLiBQb8SNZXQgem9zdMOhdmFqw7pjaWNoIHBva3Vzb3YgcHJlZCB0cnZhbMO9bSB6YWJsb2tvdmFuw61tIGthcnR5IFNJTTogPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+LiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iT3BlcsOhY2lhIGvDs2R1IFBJTiBrYXJ0eSBTSU0gemx5aGFsYSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+Ik9wZXLDoWNpYSBrw7NkdSBQVUsga2FydHkgU0lNIHpseWhhbGEhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+IkvDs2QgYm9sIHByaWphdMO9ISI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IlRsYcSNaWRsbyBQcmVkY2jDoWR6YWrDumNhIHN0b3BhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4iVGxhxI1pZGxvIMSOYWzFoWlhIHN0b3BhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IlRsYcSNaWRsbyBQb3phc3RhdmnFpSI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtc2wvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXNsL3N0cmluZ3MueG1sCmluZGV4IGI2Y2ZjMWMuLmIwZWM4NGUgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtc2wvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1zbC9zdHJpbmdzLnhtbApAQCAtMjEsOSArMjEsOSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iVm5lc2l0ZSBrb2RvIFBJTiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IlZuZXNpdGUga29kbyBQVUsgaW4gbm92byBrb2RvIFBJTiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iS29kYSBQVUsiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+Ik5vdmEga29kYSBQSU4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiJWbmVzaXRlIGtvZG8gUFVLIGluIG5vdm8ga29kbyBQSU4ga2FydGljZSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IktvZGEgUFVLIGthcnRpY2UgU0lNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiJOb3ZhIGtvZGEgUElOIGthcnRpY2UgU0lNIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4iRG90YWtuaXRlIHNlIHphIHZub3MgZ2VzbGEiPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiJWbmVzaXRlIGdlc2xvIHphIG9ka2xlcGFuamUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJWbmVzaXRlIFBJTiB6YSBvZGtsZXBhbmplIjwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+Ikd1bWIgemEgemHEjWFzbm8gdXN0YXZpdGV2Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJHdW1iIHphIHByZWR2YWphbmplIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJHdW1iIHphIHVzdGF2aXRldiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiJWxaFlxI0gbWkgamUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfZG93bl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxMDE0MzM2NzcxOTIxNzc4NjEiPiJOaSBtaSB2xaFlxI0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiJTcmNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4iWmEgbmFkYWxqZXZhbmplIG9ka2xlbml0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IlphZ29uIGplIHByZWtsaWNhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJJenB1c3RpdGUgcHJpcG9tb8SNZWsgPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4sIGRhIGdhIGl6YnJpxaFldGUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+IlByaXBvbW/EjWVrIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IG5lIGJvIGl6YnJpc2FuLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgpAQCAtMTA1LDcgKzExMiw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4iVm5lc2l0ZSDFvmVsZW5vIGtvZG8gUElOIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IlBvdHJkaXRlIMW+ZWxlbm8ga29kbyBQSU4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+Ik9ka2xlcGFuamUga2FydGljZSBTSU0gLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iTmFwYcSNbmEga29kYSBQSU4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iVm5lc2l0ZSBQSU4sIGtpIHZzZWJ1amUgb2QgxaF0aXJpIGRvIG9zZW0gxaF0ZXZpbGsuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iS29kYSBQVUsgbW9yYSB2c2Vib3ZhdGkgOCBhbGkgdmXEjSDFoXRldmsuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iVm5vdmnEjSB2bmVzaXRlIHByYXZpbG5vIGtvZG8gUFVLLiBWZcSNa3JhdG5pIHBvc2t1c2kgYm9kbyB0cmFqbm8gb25lbW9nb8SNaWxpIGthcnRpY28gU0lNLiI8L3N0cmluZz4KQEAgLTEyOSw2ICsxMzUsMTkgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iVnpvcmVjIHphIG9ka2xlcGFuamUgc3RlIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+LWtyYXQgbmFwYcSNbm8gdm5lc2xpLiBQbyBuYWRhbGpuamloIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IG5ldXNwZcWhbmloIHBvc2t1c2loIGJvc3RlIHBvenZhbmksIGRhIG9ka2xlbmV0ZSB0ZWxlZm9uIHogR29vZ2xvdmltaSBwb2RhdGtpIHphIHByaWphdm8uXG5cblBvc2t1c2l0ZSB6bm92YSDEjWV6IDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IHMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCTICI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4iT2RzdHJhbmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+Ik5hcGHEjW5hIGtvZGEgUElOIGthcnRpY2UgU0lNLiBaZGFqIHNlIGJvc3RlIG1vcmFsaSB6YSBvZGtsZW5pdGV2IG5hcHJhdmUgb2Jybml0aSBuYSBvcGVyYXRlcmphLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iTmFwYcSNbmEga29kYSBQSU4ga2FydGljZSBTSU0uIE5hIHZvbGpvIGltYXRlIMWhZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gcG9za3VzLiBQb3RlbSBzZSBib3N0ZSBtb3JhbGkgemEgb2RrbGVuaXRldiBuYXByYXZlIG9icm5pdGkgbmEgb3BlcmF0ZXJqYS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJOYXBhxI1uYSBrb2RhIFBJTiBrYXJ0aWNlIFNJTS4gUG9za3VzaXRlIGxhaGtvIMWhZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4ta3JhdC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+IkthcnRpY2EgU0lNIG5pIHZlxI0gdXBvcmFibmEuIE9icm5pdGUgc2UgbmEgb3BlcmF0ZXJqYS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+Ik5hcGHEjW5hIGtvZGEgUFVLIGthcnRpY2UgU0lNLiBOYSB2b2xqbyBpbWF0ZSDFoWUgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHBvc2t1cy4gUG90ZW0gYm8ga2FydGljYSBTSU0gcG9zdGFsYSB0cmFqbm8gbmV1cG9yYWJuYS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjU0NzczMDUyMjYwMjYzNDIwMzYiPiJOYXBhxI1uYSBrb2RhIFBVSyBrYXJ0aWNlIFNJTS4gUG9za3VzaXRlIGxhaGtvIMWhZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4ta3JhdC4gUG90ZW0gYm8ga2FydGljYSBTSU0gcG9zdGFsYSB0cmFqbm8gbmV1cG9yYWJuYS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IlBvc3RvcGVrIHphIG9ka2xlcGFuamUgcyBrb2RvIFBJTiBrYXJ0aWNlIFNJTSBuaSB1c3BlbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IlBvc3RvcGVrIHphIG9ka2xlcGFuamUgcyBrb2RvIFBVSyBrYXJ0aWNlIFNJTSBuaSB1c3BlbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iS29kYSBqZSBzcHJlamV0YS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiJHdW1iIHphIHByZWrFoW5qbyBza2xhZGJvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4iR3VtYiB6YSBuYXNsZWRuam8gc2tsYWRibyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiJHdW1iIHphIHphxI1hc25vIHVzdGF2aXRldiI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtc3Ivc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXNyL3N0cmluZ3MueG1sCmluZGV4IDY2NGI4NWUuLjJiZGQ4ZjUgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtc3Ivc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1zci9zdHJpbmdzLnhtbApAQCAtMjEsOSArMjEsOSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4i0KPQvdC10YHQuNGC0LUgUElOINC6w7TQtCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+ItCj0L3QtdGB0LjRgtC1IFBVSyDQuCDQvdC+0LLQuCBQSU4g0LrDtNC0Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsg0LrDtNC0Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLQndC+0LLQuCBQSU4g0LrDtNC0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4i0KPQvdC10YHQuNGC0LUgU0lNIFBVSyDQusO00LQg0Lgg0L3QvtCy0LggUElOINC6w7TQtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxODAxOTQxMDUxMDk0OTc0NjA5Ij4iU0lNIFBVSyDQusO00LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+ItCd0L7QstC4IFNJTSBQSU4g0LrDtNC0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4i0JTQvtC00LjRgNC90LjRgtC1INC00LAg0LHQuNGB0YLQtSDRg9C90LXQu9C4INC70L7Qt9C40L3QutGDIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4i0J7RgtC60YPRhtCw0ZjRgtC1INC70L7Qt9C40L3QutGDINC00LAg0LHQuNGB0YLQtSDQvtGC0LrRmdGD0YfQsNC70LgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLQo9C90LXRgdC40YLQtSBQSU4g0LfQsCDQvtGC0LrRmdGD0YfQsNCy0LDRmtC1Ijwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+ItCU0YPQs9C80LUg0LfQsCDQv9Cw0YPQt9GDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiLQlNGD0LPQvNC1INC30LAg0YDQtdC/0YDQvtC00YPQutGG0LjRmNGDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiLQlNGD0LPQvNC1INC30LAg0LfQsNGD0YHRgtCw0LLRmdCw0ZrQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiLQodCy0LjRktCwINC80Lgg0YHQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+ItCd0LUg0YHQstC40ZLQsCDQvNC4INGB0LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiLQodGA0YbQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+ItCe0YLQutGZ0YPRh9Cw0ZjRgtC1INC00LAg0LHQuNGB0YLQtSDQvdCw0YHRgtCw0LLQuNC70LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiLQn9C+0LrRgNC10YLQsNGa0LUg0ZjQtSDQvtGC0LrQsNC30LDQvdC+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+ItCe0YLQv9GD0YHRgtC40YLQtSDQstC40Z/QtdGCIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+INC00LAg0LHQuNGB0YLQtSDQs9CwINC40LfQsdGA0LjRgdCw0LvQuC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4i0JLQuNGf0LXRgiA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDQvdC10ZvQtSDQsdC40YLQuCDQuNC30LHRgNC40YHQsNC9LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgpAQCAtMTA1LDcgKzExMiw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i0KPQvdC10YHQuNGC0LUg0LbQtdGZ0LXQvdC4IFBJTiDQusO00LQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4i0J/QvtGC0LLRgNC00LjRgtC1INC20LXRmdC10L3QuCBQSU4g0LrDtNC0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiLQntGC0LrRmdGD0YfQsNCy0LDRmtC1IFNJTSDQutCw0YDRgtC40YbQteKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IlBJTiDQusO00LQg0ZjQtSDQvdC10YLQsNGH0LDQvS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLQo9C90LXRgdC40YLQtSBQSU4g0LrQvtGY0Lgg0LjQvNCwINC+0LQgNCDQtNC+IDgg0LHRgNC+0ZjQtdCy0LAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iUFVLINC6w7TQtCDRgtGA0LXQsdCwINC00LAg0LjQvNCwIDgg0LjQu9C4INCy0LjRiNC1INCx0YDQvtGY0LXQstCwLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+ItCf0L7QvdC+0LLQviDRg9C90LXRgdC40YLQtSDQuNGB0L/RgNCw0LLQvdC4IFBVSyDQusO00LQuINCf0L7QvdC+0LLRmdC10L3QuCDQv9C+0LrRg9GI0LDRmNC4INGb0LUg0YLRgNCw0ZjQvdC+INC+0L3QtdC80L7Qs9GD0ZvQuNGC0LggU0lNLiI8L3N0cmluZz4KQEAgLTEyOSwxMCArMTM1LDIzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+ItCd0LDRhtGA0YLQsNC70Lgg0YHRgtC1INGI0LDQsdC70L7QvSDQt9CwINC+0YLQutGZ0YPRh9Cw0LLQsNGa0LUg0L3QtdC40YHQv9GA0LDQstC90L4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g0L/Rg9GC0LAuINCf0L7RgdC70LUg0ZjQvtGIIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+INC90LXRg9GB0L/QtdGI0L3QsCjQuNGFKSDQv9C+0LrRg9GI0LDRmNCwLCDQvtC0INCy0LDRgSDRm9C1INCx0LjRgtC4INC30LDRgtGA0LDQttC10L3QviDQtNCwINC+0YLQutGZ0YPRh9Cw0YLQtSDRgtC10LvQtdGE0L7QvSDQv9C+0LzQvtGb0YMg0L3QsNC70L7Qs9CwINC1LdC/0L7RiNGC0LUuXG5cbtCf0L7QutGD0YjQsNGY0YLQtSDQv9C+0L3QvtCy0L4g0LfQsCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDRgdC10LrRg9C90LTQtSjQuCkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCTICI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i0KPQutC70L7QvdC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiLQndC10YLQsNGH0LDQvSBTSU0gUElOINC6w7TQtC4g0KHQsNC00LAg0LzQvtGA0LDRgtC1INC00LAg0LrQvtC90YLQsNC60YLQuNGA0LDRgtC1INC80L7QsdC40LvQvdC+0LMg0L7Qv9C10YDQsNGC0LXRgNCwINC00LAg0LHQuNGB0YLQtSDQvtGC0LrRmdGD0YfQsNC70Lgg0YPRgNC10ZLQsNGYLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4i0J3QtdGC0LDRh9Cw0L0gU0lNIFBJTiDQusO00LQuINCY0LzQsNGC0LUg0ZjQvtGIIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDQv9C+0LrRg9GI0LDRmCwg0LAg0L7QvdC00LAg0LzQvtGA0LDRgtC1INC00LAg0LrQvtC90YLQsNC60YLQuNGA0LDRgtC1INC80L7QsdC40LvQvdC+0LMg0L7Qv9C10YDQsNGC0LXRgNCwINC00LAg0LHQuNGB0YLQtSDQvtGC0LrRmdGD0YfQsNC70Lgg0YPRgNC10ZLQsNGYLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+ItCd0LXRgtCw0YfQsNC9IFNJTSBQSU4g0LrDtNC0LiDQmNC80LDRgtC1INGY0L7RiCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g0L/QvtC60YPRiNCw0ZjQsC4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+IlNJTSDQutCw0YDRgtC40YbQsCDRmNC1INC90LXRg9C/0L7RgtGA0LXQsdGZ0LjQstCwLiDQmtC+0L3RgtCw0LrRgtC40YDQsNGY0YLQtSDQvNC+0LHQuNC70L3QvtCzINC+0L/QtdGA0LDRgtC10YDQsC4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+ItCd0LXRgtCw0YfQsNC9IFNJTSBQVUsg0LrDtNC0LiDQmNC80LDRgtC1INGY0L7RiCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g0L/QvtC60YPRiNCw0Zgg0L/RgNC1INC90LXQs9C+INGI0YLQviBTSU0g0LrQsNGA0YLQuNGG0LAg0L/QvtGB0YLQsNC90LUg0YLRgNCw0ZjQvdC+INC90LXRg9C/0L7RgtGA0LXQsdGZ0LjQstCwLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+ItCd0LXRgtCw0YfQsNC9IFNJTSBQVUsg0LrDtNC0LiDQmNC80LDRgtC1INGY0L7RiCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g0L/QvtC60YPRiNCw0ZjQsCDQv9GA0LUg0L3QtdCz0L4g0YjRgtC+IFNJTSDQutCw0YDRgtC40YbQsCDQv9C+0YHRgtCw0L3QtSDRgtGA0LDRmNC90L4g0L3QtdGD0L/QvtGC0YDQtdCx0ZnQuNCy0LAuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiLQoNCw0LTRmtCwINGB0LAgU0lNIFBJTiDQutC+0LTQvtC8INC90LjRmNC1INGD0YHQv9C10LvQsCEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+ItCg0LDQtNGa0LAg0YHQsCBTSU0gUFVLINC60L7QtNC+0Lwg0L3QuNGY0LUg0YPRgdC/0LXQu9CwISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9hY2NlcHRlZCIgbXNnaWQ9IjE0NDgyNDE2NzM1NzAwMjAwOTciPiLQmsO00LQg0ZjQtSDQv9GA0LjRhdCy0LDRm9C10L0hIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4i0JTRg9Cz0LzQtSDQt9CwINC/0YDQtdGC0YXQvtC00L3RgyDQv9C10YHQvNGDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4i0JTRg9Cz0LzQtSDQt9CwINGB0LvQtdC00LXRm9GDINC/0LXRgdC80YMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4i0JTRg9Cz0LzQtSDQt9CwINC/0LDRg9C30YMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjI5MjQ2Mjg4NjM3NDExNTA5NTYiPiLQlNGD0LPQvNC1INC30LAg0YDQtdC/0YDQvtC00YPQutGG0LjRmNGDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSIzMDg0MTc5MzI0ODEwNTc1Nzg3Ij4i0JTRg9Cz0LzQtSDQt9CwINC30LDRg9GB0YLQsNCy0ZnQsNGa0LUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9jYXJyaWVyX2RlZmF1bHQiIG1zZ2lkPSI4NzAwNjUwNDAzMDU0MDQyMTUzIj4i0JLQsNC9INC80YDQtdC20LUg0YHRgtC1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NhcnJpZXJfZGVmYXVsdCIgbXNnaWQ9Ijg3MDA2NTA0MDMwNTQwNDIxNTMiPiLQntGE0LvQsNGY0L0g0YHRgtC1LiI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1zdi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtc3Yvc3RyaW5ncy54bWwKaW5kZXggZmIwZjkxMi4uZTQ0NmY2MSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1zdi9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXN2L3N0cmluZ3MueG1sCkBAIC0yMSw5ICsyMSw5IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJBbmdlIFBJTi1rb2QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiJBbmdlIFBVSy1rb2RlbiBvY2ggZW4gbnkgUElOLWtvZCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iUFVLLWtvZCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iTnkgUElOLWtvZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+IkFuZ2UgUFVLLWtvZGVuIG9jaCBlbiBueSBwaW5rb2QgZsO2ciBTSU0ta29ydGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJQVUsta29kIGbDtnIgU0lNLWtvcnRldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iTnkgcGlua29kIGbDtnIgU0lNLWtvcnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiJUcnljayBvbSBkdSB2aWxsIGFuZ2UgbMO2c2Vub3JkIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iQW5nZSBsw7ZzZW5vcmQgZsO2ciBhdHQgbMOlc2EgdXBwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4iQW5nZSBQSU4ta29kIGbDtnIgYXR0IGzDpXNhIHVwcCI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiJQYXVza25hcHBlbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iVXBwc3BlbG5pbmdza25hcHBlbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iU3RvcHBrbmFwcGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IkdpbGxhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+IlR1bW1lbiBuZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiJIasOkcnRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4iTMOlcyB1cHAgb20gZHUgdmlsbCBmb3J0c8OkdHRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4iTGFuc2VyaW5nZW4gaGFyIGF2YnJ1dGl0cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJUYSBib3J0IGdlbm9tIGF0dCBzbMOkcHBhIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IGjDpHIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IGtvbW1lciBpbnRlIGF0dCB0YXMgYm9ydC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IkFuZ2Ugw7Zuc2thZCBQSU4ta29kIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IkJla3LDpGZ0YSDDtm5za2FkIFBJTi1rb2QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IkzDpXNlciB1cHAgU0lNLWtvcnQg4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iRmVsIFBJTi1rb2QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iQW5nZSBlbiBQSU4ta29kIG1lZCA0IHRpbGwgOCBzaWZmcm9yLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSy1rb2RlbiBza2EgdmFyYSBtaW5zdCDDpXR0YSBzaWZmcm9yLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IkFuZ2UgcsOkdHQgUFVLLWtvZCBpZ2VuLiBPbSBmw7Zyc8O2a2VuIHVwcHJlcGFzIGluYWt0aXZlcmFzIFNJTS1rb3J0ZXQgcGVybWFuZW50LiI8L3N0cmluZz4KQEAgLTEyOSw2ICsxMzUsMTkgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4iRHUgaGFyIHJpdGF0IGRpdHQgZ3JhZmlza2EgbMO2c2Vub3JkIGZlbCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiBnw6VuZ2VyLiBFZnRlciB5dHRlcmxpZ2FyZSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiBmw7Zyc8O2ayBvbWJlZHMgZHUgbMOlc2EgdXBwIG1vYmlsZW4gbWVkIGhqw6RscCBhdiBldHQgZS1wb3N0a29udG8uXG5cbiBGw7Zyc8O2ayBpZ2VuIG9tIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IHNla3VuZGVyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAkyAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IlRhIGJvcnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IkR1IGFuZ2F2IGZlbCBwaW5rb2QgZsO2ciBTSU0ta29ydGV0IG9jaCBtw6VzdGUgbnUga29udGFrdGEgb3BlcmF0w7ZyZW4gZsO2ciBhdHQgbMOlc2EgdXBwIGVuaGV0ZW4uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjgxMzQzMTM5OTc3OTk2MzgyNTQiPiJEdSBhbmdhdiBmZWwgcGlua29kIGbDtnIgU0lNLWtvcnRldC4gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGbDtnJzw7ZrIMOldGVyc3TDpXIgaW5uYW4gZHUgbcOlc3RlIGtvbnRha3RhIG9wZXJhdMO2cmVuIGbDtnIgYXR0IGzDpXNhIHVwcCBlbmhldGVuLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+IkR1IGFuZ2F2IGZlbCBwaW5rb2QgZsO2ciBTSU0ta29ydGV0LiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gZsO2cnPDtmsgw6V0ZXJzdMOlci4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+IlNJTS1rb3J0ZXQgw6RyIG9icnVrYmFydC4gS29udGFrdGEgb3BlcmF0w7ZyZW4uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiJEdSBhbmdhdiBmZWwgUFVLLWtvZCBmw7ZyIFNJTS1rb3J0ZXQuIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBmw7Zyc8O2ayDDpXRlcnN0w6VyIGlubmFuIFNJTS1rb3J0ZXQgYmxpciBvYnJ1a2JhcnQuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4iRHUgYW5nYXYgZmVsIFBVSy1rb2QgZsO2ciBTSU0ta29ydGV0LiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gZsO2cnPDtmsgw6V0ZXJzdMOlciBpbm5hbiBTSU0ta29ydGV0IGJsaXIgb2JydWtiYXJ0LiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iRGV0IGdpY2sgaW50ZSBhdHQgbMOlc2EgdXBwIG1lZCBwaW5rb2RlbiBmw7ZyIFNJTS1rb3J0ZXQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJEZXQgZ2ljayBpbnRlIGF0dCBsw6VzYSB1cHAgbWVkIFBVSy1rb2RlbiBmw7ZyIFNJTS1rb3J0ZXQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+IktvZGVuIGdvZGvDpG5kZXMhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iS25hcHAgZsO2ciBmw7ZyZWfDpWVuZGUgc3DDpXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiJLbmFwcCBmw7ZyIG7DpHN0YSBzcMOlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiJQYXVza25hcHBlbiI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtc3cvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXN3L3N0cmluZ3MueG1sCmluZGV4IDI3ZjFmMzAuLmM3YWJkOTggMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtc3cvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy1zdy9zdHJpbmdzLnhtbApAQCAtMjEsOSArMjEsOSBAQAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX2NvZGUiIG1zZ2lkPSIzMDM3Njg1Nzk2MDU4NDk1MDE3Ij4iSW5naXphIG1zaW1ibyB3YSBQSU4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiJJbmdpemEgUFVLIG5hIG1zaW1ibyBtcHlhIHdhIFBJTiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iTXNpbWJvIHdhIFBVSyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iTXNpbWJvIG1weWEgd2EgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iQ2hhcGEgUFVLIHlhwqBTSU0gbmEgbXNpbWJvIG1weWEgd2EgUElOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJNc2ltYm8gd2EgUFVLIHlhIFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iTXNpbWJvIG1weWEgd2EgUElOIHlhIFNJTSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+Ikd1c2Ega3VpbmdpemEgbmVub3NpcmkgIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iQ2hhcmF6YSBuZW5vc2lyaSBpbGkga3VmdW5ndWEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJJbmdpemEgUElOIGlsaSBrdWZ1bmd1YSI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiJLaXR1ZmUgY2hhIGt1c2l0aXNoYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iS2l0dWZlIGNoYSBrdWNoZXphIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJLaXR1ZmUgY2hhIGt1c2l0aXNoYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiJCb21iYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+IlNpIGJvbWJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4iTW95byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+IkZ1bmd1YSBpbGkgdWVuZGVsZWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2hpZGVfYm91bmNlciIgbXNnaWQ9Ijc4OTY5OTIxNzE4NzgzMDkzNTgiPiJVemluZHV6aSB1bWVnaGFpcml3YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJEb25kb3NoYSA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiBpbGkgdWZ1dGUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IGhhaXRhZnV0d2EuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC0xMDUsNyArMTEyLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiJJbmdpemEgbXNpbWJvIHdhIFBJTiB1bmFvcGVuZGVsZXdhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IlRoaWJpdGlzaGEgbXNpbWJvIHdhIFBJTiB1bmFvcGVuZGVsZXdhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJJbmFmdW5ndWEgU0lNIGthZGkuLi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiJNc2ltYm8gd2EgUElOIHVzaW8gc2FoaWhpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+IkNoYXJhemEgUElOIGlsaXlvIG5hIHRhcmFraW11IGthdGkgeWEgNCBuYSA4LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+Ik1zaW1ibyB3YSBQVUsgdW5hZmFhIGt1d2EgbmEgbmFtYmFyaSA4IGF1IHphaWRpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IkluZ2l6YSB1cHlhIG1zaW1ibyBzYWhpaGkgd2EgUFVLLiBNYWphcmliaW8geWFuYXlvcnVkaXdhIHlhdGFsZW1hemEgU0lNIGthYmlzYS4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IlVtZWtvc2VhIGt1Y2hvcmEgbWNob3JvIHdha28gd2Ega3VmdW5ndWEgbWFyYSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPi4gQmFhZGEgeWEgbWFqYXJpYmlvIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHlhc2l5b2ZhdWx1LCB1dGFvbWJ3YSBrdWZ1bmd1YSBzaW11IHlha28ga3dhIGt1dHVtaWEgYWthdW50aSB5YSBiYXJ1YSBwZXBlLlxuXG4gSmFyaWJ1IHRlbmEgYmFhZGEgeWEgc2VrdW5kZSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJPbmRvYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iTXNpbWJvIHdhIFBJTiB5YSBTSU0gdXNpb3NhaGloacKgc2FzYSBsYXppbWEgdXdhc2lsaWFuZSBuYSBtdG9hIGh1ZHVtYSB3YWtvwqBpbGkgdWZ1bmd1ZSBraWZhYSBjaGFrby4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+Ik1zaW1ibyB3YSBQSU4geWHCoFNJTSB1c2lvIHNhaGloaSwgdW1lc2FsaWEgbmHCoG1hamFyaWJpb8KgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGthYmxhIHVsYXppbWlrZSBrdXdhc2lsaWFuYcKgbmEgbXRvYSBodWR1bWEgd2FrbyBpbGkgdWZ1bmd1ZSBraWZhYSBjaGFrby4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJNc2ltYm8gd2EgUElOIHlhwqBTSU0gdXNpbyBzYWhpaGkswqB1bWVzYWxpYSBuYSBtYWphcmliaW/CoDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPi4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+IlNJTSBoYWl3ZXppIGt1dHVtaWthLiBXYXNpbGlhbmEgbmEgbXRvYSBodWR1bWEgd2Frby4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+Ik1zaW1ibyB3YSBQVUsgeWEgU0lNIHVzaW8gc2FoaWhpLCB1bWVzYWxpYSBuYSBtYWphcmliaW8gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGthYmxhIHlhIFNJTSBrdWFjaGEga3V0dW1pa2Ega2FiaXNhLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+Ik1zaW1ibyB3YSBQVUsgeWHCoFNJTSB1c2lvIHNhaGloaSzCoHVtZXNhbGlhIG5hIG1hamFyaWJpb8KgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGthYmxhIHlhIFNJTSBrdWFjaGEga3V0dW1pa2Ega2FiaXNhLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iVXRlbmRha2F6aSB3YSBQSU4geWEgU0lNwqB1bWVzaGluZHdhISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4iVXRlbmRha2F6aSB3YSBQVUsgeWEgU0lNIHVtZXNoaW5kd2EhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+Ik1zaW1ibyBVbWVrdWJhbGl3YSEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiJLaXR1ZmUgY2hhIHdpbWJvIHdhIGF3YWxpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4iS2l0dWZlIGNoYSB3aW1ibyB1bmFvZnVhdGEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4iS2l0dWZlIGNoYSBrdXNpdGlzaGEiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXRoL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy10aC9zdHJpbmdzLnhtbAppbmRleCBkNjMwOGI2Li5hNDRmOWZlIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXRoL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtdGgvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+IuC4nuC4tOC4oeC4nuC5jOC4o+C4q+C4seC4qiBQSU4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiLguJ7guLTguKHguJ7guYwgUFVLIOC5geC4peC4sOC4o+C4q+C4seC4qiBQSU4g4LmD4Lir4Lih4LmIIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiLguKPguKvguLHguKogUFVLIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjgwMjc2ODAzMjE2MTQxOTYyNTgiPiLguKPguKvguLHguKogUElOIOC5g+C4q+C4oeC5iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+IuC4nuC4tOC4oeC4nuC5jCBQVUsg4LmB4Lil4Liw4Lij4Lir4Lix4LiqIFBJTiDguYPguKvguKHguYgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IuC4o+C4q+C4seC4qiBQVUsg4LiC4Lit4LiH4LiL4Li04LihIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiLguKPguKvguLHguKogUElOIOC4guC4reC4h+C4i+C4tOC4oeC5g+C4q+C4oeC5iCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+IuC5geC4leC4sOC5gOC4nuC4t+C5iOC4reC4nuC4tOC4oeC4nuC5jOC4o+C4q+C4seC4quC4nOC5iOC4suC4mSI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IuC4nuC4tOC4oeC4nuC5jOC4o+C4q+C4seC4quC4nOC5iOC4suC4meC5gOC4nuC4t+C5iOC4reC4m+C4peC4lOC4peC5h+C4reC4gSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IuC4nuC4tOC4oeC4nuC5jCBQSU4g4LmA4Lie4Li34LmI4Lit4Lib4Lil4LiU4Lil4LmH4Lit4LiBIjwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IuC4m+C4uOC5iOC4oeC4q+C4ouC4uOC4lOC4iuC4seC5iOC4p+C4hOC4o+C4suC4pyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4i4Lib4Li44LmI4Lih4LmA4Lil4LmI4LiZIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiLguJvguLjguYjguKHguKvguKLguLjguJQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4i4Liq4Li44LiU4Lii4Lit4LiUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4i4LmE4Lih4LmI4LiK4Lit4LiaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4i4Lir4Lix4Lin4LmD4LiIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4i4Lib4Lil4LiU4Lil4LmH4Lit4LiB4LmA4Lie4Li34LmI4Lit4LiU4Liz4LmA4LiZ4Li04LiZ4LiB4Liy4Lij4LiV4LmI4LitIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4i4Lii4LiB4LmA4Lil4Li04LiB4LiB4Liy4Lij4LmA4Lib4Li04LiU4LmD4LiK4LmJ4LiH4Liy4LiZ4LmB4Lil4LmJ4LinIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+IuC4peC4suC4gSA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiDguYDguJ7guLfguYjguK3guKXguJoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfZW5kIiBtc2dpZD0iNTA4ODMzNTA2NzgwOTA5MzkzIj4iPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4g4LiI4Liw4LmE4Lih4LmI4LiW4Li54LiB4Lil4LiaIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC0xMDUsNyArMTEyLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiLguJvguYnguK3guJnguKPguKvguLHguKogUElOIOC4l+C4teC5iOC4leC5ieC4reC4h+C4geC4suC4oyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLguKLguLfguJnguKLguLHguJnguKPguKvguLHguKogUElOIOC4l+C4teC5iOC4leC5ieC4reC4h+C4geC4suC4oyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4i4LiB4Liz4Lil4Lix4LiH4Lib4Lil4LiU4Lil4LmH4Lit4LiB4LiL4Li04Lih4LiB4Liy4Lij4LmM4LiU4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i4Lij4Lir4Lix4LiqIFBJTiDguYTguKHguYjguJbguLnguIHguJXguYnguK3guIciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiLguJ7guLTguKHguJ7guYwgUElOIOC4i+C4tuC5iOC4h+C5gOC4m+C5h+C4meC5gOC4peC4giA0IOC4luC4tuC4hyA4IOC4q+C4peC4seC4gSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IuC4o+C4q+C4seC4qiBQVUsg4LiV4LmJ4Lit4LiH4LmA4Lib4LmH4LiZ4LiV4Lix4Lin4LmA4Lil4LiC4Lit4Lii4LmI4Liy4LiH4LiZ4LmJ4Lit4LiiIDgg4Lir4Lil4Lix4LiBIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i4LmD4Liq4LmI4Lij4Lir4Lix4LiqIFBVSyDguJfguLXguYjguJbguLnguIHguJXguYnguK3guIfguK3guLXguIHguITguKPguLHguYnguIcg4LiB4Liy4Lij4Lie4Lii4Liy4Lii4Liy4Lih4LiL4LmJ4Liz4Lir4Lil4Liy4Lii4LiE4Lij4Lix4LmJ4LiH4LiI4Liw4LiX4Liz4LmD4Lir4LmJ4LiL4Li04Lih4LiB4Liy4Lij4LmM4LiU4LiW4Li54LiB4Lib4Li04LiU4LmD4LiK4LmJ4LiH4Liy4LiZ4Lit4Lii4LmI4Liy4LiH4LiW4Liy4Lin4LijIjwvc3RyaW5nPgpAQCAtMTI5LDYgKzEzNSwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLguITguLjguJPguKfguLLguJTguKPguLnguJvguYHguJrguJrguIHguLLguKPguJvguKXguJTguKXguYfguK3guIHguYTguKHguYjguJbguLnguIHguJXguYnguK3guIcgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g4LiE4Lij4Lix4LmJ4LiH4LmB4Lil4LmJ4LinIOC4q+C4suC4geC4l+C4s+C5hOC4oeC5iOC4quC4s+C5gOC4o+C5h+C4iOC4reC4teC4gSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDguITguKPguLHguYnguIcg4Lij4Liw4Lia4Lia4LiI4Liw4LiC4Lit4LmD4Lir4LmJ4LiE4Li44LiT4Lib4Lil4LiU4Lil4LmH4Lit4LiB4LmC4LiX4Lij4Lio4Lix4Lie4LiX4LmM4LmC4LiU4Lii4LmD4LiK4LmJ4Lix4Lia4Lix4LiN4LiK4Li14Lit4Li14LmA4Lih4LilXG5cbiDguYLguJvguKPguJTguKXguK3guIfguK3guLXguIHguITguKPguLHguYnguIfguYPguJnguK3guLXguIEgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g4Lin4Li04LiZ4Liy4LiX4Li1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i4LiZ4Liz4Lit4Lit4LiBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiLguKPguKvguLHguKogUElOIOC4guC4reC4h+C4i+C4tOC4oeC5hOC4oeC5iOC4luC4ueC4geC4leC5ieC4reC4hyDguJXguK3guJnguJnguLXguYnguITguLjguJPguJXguYnguK3guIfguJXguLTguJTguJXguYjguK3guJzguLnguYnguYPguKvguYnguJrguKPguLTguIHguLLguKPguYDguJ7guLfguYjguK3guJvguKXguJTguKXguYfguK3guIHguK3guLjguJvguIHguKPguJPguYzguILguK3guIfguITguLjguJMiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+IuC4o+C4q+C4seC4qiBQSU4g4LiC4Lit4LiH4LiL4Li04Lih4LmE4Lih4LmI4LiW4Li54LiB4LiV4LmJ4Lit4LiHIOC4hOC4uOC4k+C4nuC4ouC4suC4ouC4suC4oeC5hOC4lOC5ieC4reC4teC4gSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4LiE4Lij4Lix4LmJ4LiH4LiB4LmI4Lit4LiZ4LiX4Li14LmI4LiI4Liw4LiV4LmJ4Lit4LiH4LiV4Li04LiU4LiV4LmI4Lit4Lic4Li54LmJ4LmD4Lir4LmJ4Lia4Lij4Li04LiB4Liy4Lij4LmA4Lie4Li34LmI4Lit4Lib4Lil4LiU4Lil4LmH4Lit4LiB4Lit4Li44Lib4LiB4Lij4LiT4LmM4LiC4Lit4LiH4LiE4Li44LiTIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4i4Lij4Lir4Lix4LiqIFBJTiDguILguK3guIfguIvguLTguKHguYTguKHguYjguJbguLnguIHguJXguYnguK3guIcg4LiE4Li44LiT4Lie4Lii4Liy4Lii4Liy4Lih4LmE4LiU4LmJ4Lit4Li14LiBIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDguITguKPguLHguYnguIciPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZV9kZWFkIiBtc2dpZD0iNzA3NzUzNjgwODI5MTMxNjIwOCI+IuC4i+C4tOC4oeC5hOC4oeC5iOC4quC4suC4oeC4suC4o+C4luC5g+C4iuC5ieC4h+C4suC4meC5hOC4lOC5iSDguJXguLTguJTguJXguYjguK3guJzguLnguYnguYPguKvguYnguJrguKPguLTguIHguLLguKPguILguK3guIfguITguLjguJMiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IuC4o+C4q+C4seC4qiBQVUsg4LiC4Lit4LiH4LiL4Li04Lih4LmE4Lih4LmI4LiW4Li54LiB4LiV4LmJ4Lit4LiHIOC4hOC4uOC4k+C4nuC4ouC4suC4ouC4suC4oeC5hOC4lOC5ieC4reC4teC4gSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4LiE4Lij4Lix4LmJ4LiH4LiB4LmI4Lit4LiZ4LiX4Li14LmI4LiL4Li04Lih4LiI4Liw4LmE4Lih4LmI4Liq4Liy4Lih4Liy4Lij4LiW4LmD4LiK4LmJ4LiH4Liy4LiZ4LmE4LiU4LmJ4Lit4Lii4LmI4Liy4LiH4LiW4Liy4Lin4LijIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4i4Lij4Lir4Lix4LiqIFBVSyDguILguK3guIfguIvguLTguKHguYTguKHguYjguJbguLnguIHguJXguYnguK3guIcg4LiE4Li44LiT4Lie4Lii4Liy4Lii4Liy4Lih4LmE4LiU4LmJ4Lit4Li14LiBIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDguITguKPguLHguYnguIfguIHguYjguK3guJnguJfguLXguYjguIvguLTguKHguIjguLDguYTguKHguYjguKrguLLguKHguLLguKPguJbguYPguIrguYnguIfguLLguJnguYTguJTguYnguK3guKLguYjguLLguIfguJbguLLguKfguKMiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IuC4geC4suC4o+C4m+C4peC4lOC4peC5h+C4reC4geC4lOC5ieC4p+C4oiBQSU4g4LiC4Lit4LiH4LiL4Li04Lih4Lil4LmJ4Lih4LmA4Lir4Lil4LinISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4i4LiB4Liy4Lij4Lib4Lil4LiU4Lil4LmH4Lit4LiB4LiU4LmJ4Lin4LiiIFBVSyDguILguK3guIfguIvguLTguKHguKXguYnguKHguYDguKvguKXguKchIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+IuC4o+C4q+C4seC4quC5hOC4lOC5ieC4o+C4seC4muC4geC4suC4o+C4ouC4reC4oeC4o+C4seC4miEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiLguJvguLjguYjguKHguYHguJfguKPguYfguIHguIHguYjguK3guJnguKvguJnguYnguLIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiLguJvguLjguYjguKHguYHguJfguKPguYfguIHguJbguLHguJTguYTguJsiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4i4Lib4Li44LmI4Lih4Lir4Lii4Li44LiU4LiK4Lix4LmI4Lin4LiE4Lij4Liy4LinIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy10bC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtdGwvc3RyaW5ncy54bWwKaW5kZXggYTQxZDI2OC4uNjUxNjc2NiAxMDA2NDQKLS0tIGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy10bC9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXRsL3N0cmluZ3MueG1sCkBAIC0yMSw5ICsyMSw5IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJJLXR5cGUgYW5nIFBJTiBjb2RlIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iSS10eXBlIGFuZyBQVUsgYXQgYmFnb25nIFBJTiBjb2RlIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsgY29kZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iQmFnb25nIFBJTiBjb2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4iSS10eXBlIGFuZyBTSU0gUFVLIGF0IGJhZ29uZyBQSU4gY29kZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxODAxOTQxMDUxMDk0OTc0NjA5Ij4iUFVLIGNvZGUgbmcgU0lNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiJCYWdvbmcgUElOIGNvZGUgbmcgU0lNIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4iUGluZHV0aW4gdXBhbmcgaS10eXBlIHBhc3N3b3JkIjwvZm9udD48L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4iSS10eXBlIGFuZyBwYXNzd29yZCB1cGFuZyBpLXVubG9jayI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IkktdHlwZSBhbmcgUElOIHVwYW5nIGktdW5sb2NrIjwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IkJ1dHRvbiBuYSBJLXBhdXNlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJCdXR0b24gbmEgSS1wbGF5Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJCdXR0b24gbmEgSWhpbnRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IlRodW1icyB1cCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+IlRodW1icyBkb3duIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4iSGVhcnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiJJLXVubG9jayB1cGFuZyBtYWdwYXR1bG95Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4iTmFrYW5zZWxhIGFuZyBwYWdsdW5zYWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2RlbGV0ZV93aWRnZXRfc3RhcnQiIG1zZ2lkPSI0MDk2NTUwNTUyNjM0MzkxNDUxIj4iSS1kcm9wIGFuZyA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiB1cGFuZyB0YW5nZ2FsaW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+IkhpbmRpIHRhdGFuZ2dhbGluIGFuZyA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IklsYWdheSBhbmcgbmluYW5haXMgbmEgUElOIGNvZGUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4iS3VtcGlybWFoaW4gYW5nIG5pbmFuYWlzIG5hIFBJTiBjb2RlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJJbmEtdW5sb2NrIGFuZyBTSU0gY2FyZOKApiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIiBtc2dpZD0iMTEzOTMyNDg4NzQxMzg0NjkxMiI+IkhpbmRpIHRhbWFuZyBQSU4gY29kZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiJNYWctdHlwZSBuZyBQSU4gbmEgNCBoYW5nZ2FuZyA4IG51bWVyby4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJEYXBhdCBheSA4IG51bWVybyBvIGhpZ2l0IHBhIGFuZyBQVUsgY29kZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiJNdWxpbmcgaWxhZ2F5IGFuZyB0YW1hbmcgUFVLIGNvZGUuIFBlcm1hbmVudGVuZyBoaW5kaSBwYWdhZ2FuYWhpbiBhbmcgU0lNIG5nIG1nYSBwYXVsaXQtdWxpdCBuYSBwYWd0YXRhbmdrYS4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+Ik5hZ3VoaXQgbW8gbmFuZyBoaW5kaSB0YW1hIGFuZyBpeW9uZyBwYXR0ZXJuIHNhIHBhZy11bmxvY2sgbmFuZyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiAobmEpIGJlc2VzLiBQYWdrYXRhcG9zIG5nIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IHBhbmcgaGluZGkgbWF0YWd1bXBheSBuYSBwYWd0YXRhbmdrYSwgaGloaWxpbmdpbiBzYSBpeW9uZyBpLXVubG9jayBhbmcgdGVsZXBvbm8gbW8gZ2FtaXQgYW5nIGlzYW5nIGVtYWlsIGFjY291bnQuXG5cbiBTdWJ1a2FuZyBtdWxpIHNhIGxvb2IgbmcgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gKG5hKSBzZWd1bmRvLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IkFsaXNpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iTWFsaW5nIFBJTiBjb2RlIG5nIFNJTSwgZGFwYXQga2EgbmFuZyBtYWtpcGFnLXVnbmF5IHNhIGl5b25nIGNhcnJpZXIgdXBhbmcgaS11bmxvY2sgYW5nIGl5b25nIGRldmljZS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+Ik1hbGluZyBQSU4gY29kZSBuZyBTSU0sIG1heXJvb24ga2FuZyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gKG5hKSBuYXRpdGlyYW5nIHBhZ3N1Ym9rIGJhZ28ga2EgZGFwYXQgbWFraXBhZy11Z25heSBzYSBpeW9uZyBjYXJyaWVyIHVwYW5nIGktdW5sb2NrIGFuZyBpeW9uZyBkZXZpY2UuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4iTWFsaW5nIFBJTiBjb2RlIG5nIFNJTSwgbWF5cm9vbiBrYW5nIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiAobmEpIG5hdGl0aXJhbmcgcGFnc3Vib2suIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJIaW5kaSBtYWdhZ2FtaXQgYW5nIFNJTS4gTWFraXBhZy11Z25heSBzYSBpeW9uZyBjYXJyaWVyLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iTWFsaW5nIFBVSyBjb2RlIG5nIFNJTSwgbWF5cm9vbiBrYW5nIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiAobmEpIG5hdGl0aXJhbmcgcGFnc3Vib2sgYmFnbyBtYWdpbmcgcGVybWFuZW50ZW5nIGhpbmRpIG1hZ2FnYW1pdCBhbmcgU0lNLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+Ik1hbGluZyBQVUsgY29kZSBuZyBTSU0sIG1heXJvb24ga2FuZyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gKG5hKSBuYXRpdGlyYW5nIHBhZ3N1Ym9rIGJhZ28gbWFnaW5nIHBlcm1hbmVudGVuZyBoaW5kaSBtYWdhZ2FtaXQgYW5nIFNJTS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+Ik5hYmlnbyBhbmcgb3BlcmFzeW9uIG5nIFNJTSBQSU4hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJOYWJpZ28gYW5nIG9wZXJhc3lvbiBuZyBTSU0gUFVLISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9hY2NlcHRlZCIgbXNnaWQ9IjE0NDgyNDE2NzM1NzAwMjAwOTciPiJUaW5hbmdnYXAgYW5nIENvZGUhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iQnV0dG9uIG5hIE5ha2FyYWFuZyB0cmFjayI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IkJ1dHRvbiBuYSBTdXN1bm9kIG5hIHRyYWNrIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IkJ1dHRvbiBuYSBJLXBhdXNlIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy10ci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtdHIvc3RyaW5ncy54bWwKaW5kZXggMGFmNzc0MC4uYWVkOGE0NyAxMDA2NDQKLS0tIGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy10ci9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXRyL3N0cmluZ3MueG1sCkBAIC0yMSw5ICsyMSw5IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJQSU4ga29kdW51IHlhesSxbiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+IlBVSyB2ZSB5ZW5pIFBJTiBrb2R1bnUgeWF6xLFuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjEzNDExMTIxNDY3MTAwODcwNDgiPiJQVUsga29kdSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iWWVuaSBQSU4ga29kdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+IlNJTSBQVUsga29kdW51IHZlIHllbmkgYmlyIFBJTiBrb2R1IHlhesSxbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IlNJTSBQVUsga29kdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4iWWVuaSBTSU0gUElOIGtvZHUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiLFnmlmcmUgeWF6bWFrIGnDp2luIGRva3VudW4iPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiJLaWxpZGkgYcOnbWFrIGnDp2luIMWfaWZyZXlpIHlhesSxbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+IktpbGlkaSBhw6dtYWsgacOnaW4gUElOIGtvZHVudSB5YXrEsW4iPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4iRHVyYWtsYXQgZMO8xJ9tZXNpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJPeW5hdCBkw7zEn21lc2kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNzY1NjM1ODQ4Mjk4MDkxMjIxNiI+IkR1cmR1ciBkw7zEn21lc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4iQmXEn2VuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4iQmXEn2VubWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiJLYWxwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4iRGV2YW0gZXRtZWsgacOnaW4ga2lsaWRpbmkgYcOnxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4iQmHFn2xhdG1hIGlwdGFsIGVkaWxkaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJTaWxtZWsgacOnaW4gPHhsaWZmOmcgaWQ9IldJREdFVF9JTkRFWCI+JTEkczwveGxpZmY6Zz4gd2lkZ2V0XCfEsW7EsSBixLFyYWvEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHNpbGlubWV5ZWNlay4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IsSwc3RlbmVuIFBJTiBrb2R1bnUgZ2lyaW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4ixLBzdGVuZW4gUElOIGtvZHVudSBvbmF5bGF5xLFuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiJTSU0ga2FydCBraWxpZGkgYcOnxLFsxLF5b3LigKYiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiJZYW5sxLHFnyBQSU4ga29kdS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiI0LTggcmFrYW1kYW4gb2x1xZ9hbiBiaXIgUElOIGdpcmluLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyBrb2R1IDggdmV5YSBkYWhhIMOnb2sgYmFzYW1ha2zEsSBiaXIgc2F5xLEgb2xtYWzEsWTEsXIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iRG/En3J1IFBVSyBrb2R1bnUgdGVrcmFyIGdpcmluLiDDh29rIHNhecSxZGEgZGVuZW1lIHlhcMSxbMSxcnNhIFNJTSBrYXJ0IGthbMSxY8SxIG9sYXJhayBkZXZyZSBkxLHFn8SxIGLEsXJha8SxbMSxci4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IktpbGl0IGHDp21hIGRlc2VuaW5pemkgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4ga2V6IHlhbmzEscWfIMOnaXpkaW5pei4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4gYmHFn2FyxLFzxLF6IGRlbmVtZWRlbiBzb25yYSB0ZWxlZm9udW51enUgYmlyIGUtcG9zdGEgaGVzYWLEsSBrdWxsYW5hcmFrIGHDp21hbsSxeiBpc3RlbmlyLlxuXG4gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4gc2FuaXllIGnDp2luZGUgdGVrcmFyIGRlbmV5aW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4iS2FsZMSxciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iWWFubMSxxZ8gU0lNIFBJTiBrb2R1LiBDaWhhesSxbsSxesSxbiBraWxpZGluaSBhw6dtYWsgacOnaW4gYXJ0xLFrIG9wZXJhdMO2csO8bsO8emxlIGJhxJ9sYW50xLEga3VybWFuxLF6IGdlcmVraXlvci4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+IllhbmzEscWfIFNJTSBQSU4ga29kdS4gQ2loYXrEsW7EsW4ga2lsaWRpbmkgYcOnbWFrIGnDp2luIG9wZXJhdMO2csO8bsO8emxlIGJhxJ9sYW50xLEga3VybWFrIHpvcnVuZGEga2FsbWFkYW4gw7ZuY2UgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IGRlbmVtZSBoYWtrxLFuxLF6IGthbGTEsS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJZYW5sxLHFnyBTSU0gUElOIGtvZHUuIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBkZW5lbWUgaGFra8SxbsSxeiBrYWxkxLEuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJTSU0ga3VsbGFuxLFsYW1hei4gT3BlcmF0w7Zyw7xuw7x6bGUgYmHEn2xhbnTEsSBrdXJ1bi4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+IllhbmzEscWfIFNJTSBQVUsga29kdS4gU0lNIGthbMSxY8SxIG9sYXJhayBrdWxsYW7EsWxtYXogaGFsZSBnZWxtZWRlbiDDtm5jZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gZGVuZW1lIGhha2vEsW7EsXoga2FsZMSxLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IllhbmzEscWfIFNJTSBQVUsga29kdS4gU0lNIGthbMSxY8SxIG9sYXJhayBrdWxsYW7EsWxtYXogaGFsZSBnZWxtZWRlbiDDtm5jZSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gZGVuZW1lIGhha2vEsW7EsXoga2FsZMSxLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iU0lNIFBJTiBpxZ9sZW1pIGJhxZ9hcsSxc8SxeiBvbGR1ISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4iU0lNIFBVSyBpxZ9sZW1pIGJhxZ9hcsSxc8SxeiBvbGR1ISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9hY2NlcHRlZCIgbXNnaWQ9IjE0NDgyNDE2NzM1NzAwMjAwOTciPiJLb2QgS2FidWwgRWRpbGRpISI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IsOWbmNla2kgcGFyw6dhIGTDvMSfbWVzaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IlNvbnJha2kgcGFyw6dhIGTDvMSfbWVzaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiJEdXJha2xhdCBkw7zEn21lc2kiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXVrL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy11ay9zdHJpbmdzLnhtbAppbmRleCAyODc5ZTg3Li41ZTM1NWU0IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXVrL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtdWsvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+ItCS0LLQtdC00ZbRgtGMIFBJTi3QutC+0LQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiLQktCy0LXQtNGW0YLRjCBQVUst0LrQvtC0INGWINC90L7QstC40LkgUElOLdC60L7QtCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iUFVLLdC60L7QtCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4i0J3QvtCy0LjQuSBQSU4t0LrQvtC0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4i0JLQstC10LTRltGC0YwgUFVLLdC60L7QtCDRliDQvdC+0LLQuNC5IFBJTi3QutC+0LQgU0lNLdC60LDRgNGC0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IlBVSy3QutC+0LQgU0lNLdC60LDRgNGC0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+ItCd0L7QstC40LkgUElOLdC60L7QtCBTSU0t0LrQsNGA0YLQuCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+ItCi0L7RgNC60L3RltGC0YzRgdGPLCDRidC+0LEg0LLQstC10YHRgtC4INC/0LDRgNC+0LvRjCI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+ItCS0LLQtdC00ZbRgtGMINC/0LDRgNC+0LvRjCwg0YnQvtCxINGA0L7Qt9Cx0LvQvtC60YPQstCw0YLQuCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+ItCS0LLQtdC00ZbRgtGMIFBJTi3QutC+0LQsINGJ0L7QsSDRgNC+0LfQsdC70L7QutGD0LLQsNGC0LgiPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4i0JrQvdC+0L/QutCwIFwi0J/RgNC40LfRg9C/0LjQvdC40YLQuFwiIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiLQmtC90L7Qv9C60LAgXCLQktGW0LTRgtCy0L7RgNC40YLQuFwiIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiLQmtC90L7Qv9C60LAgXCLQl9GD0L/QuNC90LjRgtC4XCIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4i0J/QvtC00L7QsdCw0ZTRgtGM0YHRjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+ItCd0LUg0L/QvtC00L7QsdCw0ZTRgtGM0YHRjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+ItCg0LXQudGC0LjQvdCzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4i0KDQvtC30LHQu9C+0LrRg9C50YLQtSwg0YnQvtCxINC/0YDQvtC00L7QstC20LjRgtC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4i0JfQsNC/0YPRgdC6INGB0LrQsNGB0L7QstCw0L3QviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiLQktGW0LTQv9GD0YHRgtGW0YLRjCA8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPiwg0YnQvtCxINCy0LjQtNCw0LvQuNGC0LguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+INC90LUg0LHRg9C00LUg0LLQuNC00LDQu9C10L3Qvi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+ItCS0LLQtdC00ZbRgtGMINC/0L7RgtGA0ZbQsdC90LjQuSBQSU4t0LrQvtC0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+ItCf0ZbQtNGC0LLQtdGA0LTRjNGC0LUg0L/QvtGC0YDRltCx0L3QuNC5IFBJTi3QutC+0LQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+ItCg0L7Qt9Cx0LvQvtC60YPQstCw0L3QvdGPIFNJTS3QutCw0YDRgtC44oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4i0J3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5IFBJTi3QutC+0LQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4i0JLQstC10LTRltGC0YwgUElOLdC60L7QtCDRltC3IDTigJM4INGG0LjRhNGALiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSy3QutC+0LQg0LzQsNGUINGB0LrQu9Cw0LTQsNGC0LjRgdGPINC30ZYg0YnQvtC90LDQudC80LXQvdGI0LUgOCDRhtC40YTRgC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLQn9C+0LLRgtC+0YDQvdC+INCy0LLQtdC00ZbRgtGMINC/0YDQsNCy0LjQu9GM0L3QuNC5IFBVSy3QutC+0LQuINCn0LjRgdC70LXQvdC90ZYg0YHQv9GA0L7QsdC4INC90LDQt9Cw0LLQttC00Lgg0LLQuNC80LrQvdGD0YLRjCBTSU0t0LrQsNGA0YLRgy4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+ItCa0LvRjtGHINGA0L7Qt9Cx0LvQvtC60YPQstCw0L3QvdGPINC90LXQv9GA0LDQstC40LvRjNC90L4g0L3QsNC80LDQu9GM0L7QstCw0L3QviDRgdGC0ZbQu9GM0LrQuCDRgNCw0LfRltCyOiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPi4g0KMg0LLQsNGBINGUINGJ0LUg0YHRgtGW0LvRjNC60Lgg0YHQv9GA0L7QsTogPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4uINCjINGA0LDQt9GWINC90LXQstC00LDRh9GWINC34oCZ0Y/QstC40YLRjNGB0Y8g0LfQsNC/0LjRgiDRgNC+0LfQsdC70L7QutGD0LLQsNGC0Lgg0YLQtdC70LXRhNC+0L0g0LfQsCDQtNC+0L/QvtC80L7Qs9C+0Y4g0L7QsdC70ZbQutC+0LLQvtCz0L4g0LfQsNC/0LjRgdGDINC10LvQtdC60YLRgNC+0L3QvdC+0Zcg0L/QvtGI0YLQuC5cblxuINCf0L7QstGC0L7RgNGW0YLRjCDRgdC/0YDQvtCx0YMg0YfQtdGA0LXQtyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDRgdC10LouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCTICI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i0JLQuNC70YPRh9C40YLQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4i0J3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5IFBJTi3QutC+0LQgU0lNLdC60LDRgNGC0LguINCX0LLigJnRj9C20ZbRgtGM0YHRjyDQt9GWINGB0LLQvtGX0Lwg0L7Qv9C10YDQsNGC0L7RgNC+0LwsINGJ0L7QsSDRgNC+0LfQsdC70L7QutGD0LLQsNGC0Lgg0L/RgNC40YHRgtGA0ZbQuS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+ItCd0LXQv9GA0LDQstC40LvRjNC90LjQuSBQSU4t0LrQvtC0IFNJTS3QutCw0YDRgtC4LiDQoyDQstCw0YEg0LfQsNC70LjRiNC40LvQsNGB0YwgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INGB0L/RgNC+0LHQsC4g0J/RltGB0LvRjyDRhtGM0L7Qs9C+INC/0L7RgtGA0ZbQsdC90L4g0LHRg9C00LUg0LfQsuKAmdGP0LfQsNGC0LjRgdGPINC3INC+0L/QtdGA0LDRgtC+0YDQvtC8LCDRidC+0LEg0YDQvtC30LHQu9C+0LrRg9Cy0LDRgtC4INC/0YDQuNGB0YLRgNGW0LkuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIyMjE1NzIzMzYxNTc1MzU5NDg2Ij4i0J3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5IFBJTi3QutC+0LQgU0lNLdC60LDRgNGC0LguINCjINCy0LDRgSDQt9Cw0LvQuNGI0LjQu9C+0YHRjyDRgdGC0ZbQu9GM0LrQuCDRgdC/0YDQvtCxOiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJTSU0t0LrQsNGA0YLRgyDQt9Cw0LHQu9C+0LrQvtCy0LDQvdC+LiDQl9Cy4oCZ0Y/QttGW0YLRjNGB0Y8g0Lcg0L7Qv9C10YDQsNGC0L7RgNC+0LwuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiLQndC10L/RgNCw0LLQuNC70YzQvdC40LkgUFVLLdC60L7QtCBTSU0t0LrQsNGA0YLQuC4g0KMg0LLQsNGBINC30LDQu9C40YjQuNC70LDRgdGMIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDRgdC/0YDQvtCx0LAuINCf0ZbRgdC70Y8g0YbRjNC+0LPQviBTSU0t0LrQsNGA0YLRgyDQsdGD0LTQtSDQvdCw0LfQsNCy0LbQtNC4INC30LDQsdC70L7QutC+0LLQsNC90L4uIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4i0J3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5IFBVSy3QutC+0LQgU0lNLdC60LDRgNGC0LguINCjINCy0LDRgSDQt9Cw0LvQuNGI0LjQu9C+0YHRjyDRgdGC0ZbQu9GM0LrQuCDRgdC/0YDQvtCxOiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4uINCf0ZbRgdC70Y8g0YbRjNC+0LPQviBTSU0t0LrQsNGA0YLRgyDQsdGD0LTQtSDQvdCw0LfQsNCy0LbQtNC4INC30LDQsdC70L7QutC+0LLQsNC90L4uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiLQn9C+0LzQuNC70LrQsCDQstCy0LXQtNC10L3QvdGPIFBJTi3QutC+0LTRgyBTSU0t0LrQsNGA0YLQuC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+ItCf0L7QvNC40LvQutCwINCy0LLQtdC00LXQvdC90Y8gUFVLLdC60L7QtNGDIFNJTS3QutCw0YDRgtC4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9hY2NlcHRlZCIgbXNnaWQ9IjE0NDgyNDE2NzM1NzAwMjAwOTciPiLQmtC+0LQg0L/RgNC40LnQvdGP0YLQvi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiLQmtC90L7Qv9C60LAgXCLQn9C+0L/QtdGA0LXQtNC90Y8g0LrQvtC80L/QvtC30LjRhtGW0Y9cIiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+ItCa0L3QvtC/0LrQsCBcItCd0LDRgdGC0YPQv9C90LAg0LrQvtC80L/QvtC30LjRhtGW0Y9cIiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiLQmtC90L7Qv9C60LAgXCLQn9GA0LjQt9GD0L/QuNC90LjRgtC4XCIiPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXZpL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy12aS9zdHJpbmdzLnhtbAppbmRleCA3MGQzYzczLi4xOWViNGM1IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXZpL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtdmkvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+Ik5o4bqtcCBtw6MgUElOIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4iTmjhuq1wIFBVSyB2w6AgbcOjIFBJTiBt4bubaSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iTcOjIFBVSyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4iTcOjIFBJTiBt4bubaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+Ik5o4bqtcCBtw6MgUElOIG3hu5tpIHbDoCBtw6MgUFVLIGPhu6dhIFNJTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxODAxOTQxMDUxMDk0OTc0NjA5Ij4iTcOjIFBVSyBj4bunYSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+Ik3DoyBQSU4gbeG7m2kgY+G7p2EgU0lNIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4iQ2jhuqFtIMSR4buDIG5o4bqtcCBt4bqtdCBraOG6qXUiPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiJOaOG6rXAgbeG6rXQga2jhuql1IMSR4buDIG3hu58ga2jDs2EiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJOaOG6rXAgbcOjIFBJTiDEkeG7gyBt4bufIGtow7NhIjwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+Ik7DunQgdOG6oW0gZOG7q25nIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGxheV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgxNDY0MTc3ODk1MTExNTQwNDQiPiJOw7p0IHBow6F0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJOw7p0IGThu6tuZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic191cF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQ1MzU5MzgxMjk2NjM5MDMxOTQiPiJCw6BpIGjDoXQgxJHGsOG7o2MgxJHDoW5oIGThuqV1IHRow61jaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+IkLDoGkgaMOhdCDEkcaw4bujYyDEkcOhbmggZOG6pXUga2jDtG5nIHRow61jaCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IlRyw6FpIHRpbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+Ik3hu58ga2jDs2EgxJHhu4MgdGnhur9wIHThu6VjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4iUXXDoSB0csOsbmgga2jhu59pIGNo4bqheSBi4buLIGjhu6d5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+IlRo4bqjIDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IMSR4buDIHjDs2EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHPhur0ga2jDtG5nIGLhu4sgeMOzYS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+Ik5o4bqtcCBtw6MgUElOIG1vbmcgbXXhu5FuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IljDoWMgbmjhuq1uIG3DoyBQSU4gbW9uZyBtdeG7kW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+IsSQYW5nIG3hu58ga2jDs2EgdGjhursgU0lN4oCmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iTcOjIFBJTiBraMO0bmcgY2jDrW5oIHjDoWMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4iTmjhuq1wIG3DoyBQSU4gY8OzIHThu6sgNCDEkeG6v24gOCBz4buRLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+Ik3DoyBQVUsgcGjhuqNpIGPDsyB04burIDggc+G7kSB0cuG7nyBsw6puLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+IkjDo3kgbmjhuq1wIGzhuqFpIG3DoyBQVUsgY2jDrW5oIHjDoWMuIE5oaeG7gXUgbOG6p24gbOG6t3AgbOG6oWkgc+G6vSB2w7QgaGnhu4d1IGjDs2EgdsSpbmggdmnhu4VuIHRo4bq7IFNJTS4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IkLhuqFuIMSRw6MgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4gbOG6p24gduG6vSBraMO0bmcgY2jDrW5oIHjDoWMgaMOsbmggbeG7nyBraMOzYSBj4bunYSBtw6xuaC4gU2F1IDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IGzhuqduIHRo4butIGtow7RuZyB0aMOgbmggY8O0bmcgbuG7r2EsIGLhuqFuIHPhur0gxJHGsOG7o2MgecOqdSBj4bqndSBt4bufIGtow7NhIMSRaeG7h24gdGhv4bqhaSBi4bqxbmcgdMOgaSBraG/huqNuIGVtYWlsLlxuXG4gVnVpIGzDsm5nIHRo4butIGzhuqFpIHNhdSA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiBnacOieS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiJYw7NhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiJNw6MgUElOIGPhu6dhIFNJTSBraMO0bmcgY2jDrW5oIHjDoWMsIGLDonkgZ2nhu50gYuG6oW4gcGjhuqNpIGxpw6puIGjhu4cgduG7m2kgbmjDoCBjdW5nIGPhuqVwIGThu4tjaCB24bulIMSR4buDIG3hu58ga2jDs2EgdGhp4bq/dCBi4buLIGPhu6dhIGLhuqFuLiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iTcOjIFBJTiBj4bunYSBTSU0ga2jDtG5nIGNow61uaCB4w6FjLCBi4bqhbiBjw7JuIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBs4bqnbiB0aOG7rSB0csaw4bubYyBraGkgYuG6oW4gcGjhuqNpIGxpw6puIGjhu4cgduG7m2kgbmjDoCBjdW5nIGPhuqVwIGThu4tjaCB24bulIMSR4buDIG3hu58ga2jDs2EgdGhp4bq/dCBi4buLIGPhu6dhIGLhuqFuLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+Ik3DoyBQSU4gY+G7p2EgU0lNIGtow7RuZyBjaMOtbmggeMOhYywgYuG6oW4gY8OybiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gbOG6p24gdGjhu60uIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJTSU0ga2jDtG5nIHRo4buDIHPhu60gZOG7pW5nIMSRxrDhu6NjLiBMacOqbiBo4buHIHbhu5tpIG5ow6AgY3VuZyBj4bqlcCBk4buLY2ggduG7pSBj4bunYSBi4bqhbi4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iMzI1Njg5MzYwNzU2MTA2MDY0OSI+Ik3DoyBQVUsgY+G7p2EgU0lNIGtow7RuZyBjaMOtbmggeMOhYywgYuG6oW4gY8OybiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gbOG6p24gdGjhu60gdHLGsOG7m2Mga2hpIFNJTSB2xKluaCB2aeG7hW4ga2jDtG5nIHRo4buDIHPhu60gZOG7pW5nIMSRxrDhu6NjLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+Ik3DoyBQVUsgY+G7p2EgU0lNIGtow7RuZyBjaMOtbmggeMOhYywgYuG6oW4gY8OybiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gbOG6p24gdGjhu60gdHLGsOG7m2Mga2hpIFNJTSB2xKluaCB2aeG7hW4ga2jDtG5nIHRo4buDIHPhu60gZOG7pW5nIMSRxrDhu6NjLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3Bpbl9mYWlsZWQiIG1zZ2lkPSI2MjY4Mjg4MDkzNTU4MDMxNTY0Ij4iVGhhbyB0w6FjIG3DoyBQSU4gY+G7p2EgU0lNIGtow7RuZyB0aMOgbmggY8O0bmchIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcHVrX2ZhaWxlZCIgbXNnaWQ9IjI4Mzg4MjQzNjk1MDI0NTU5ODQiPiJUaGFvIHTDoWMgbcOjIFBVSyBj4bunYSBTSU0ga2jDtG5nIHRow6BuaCBjw7RuZyEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iTcOjIMSRxrDhu6NjIGNo4bqlcCBuaOG6rW4hIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iTsO6dCBi4bqjbiBuaOG6oWMgdHLGsOG7m2MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiJOw7p0IGLhuqNuIG5o4bqhYyB0aeG6v3AgdGhlbyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiJOw7p0IHThuqFtIGThu6tuZyI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtemgtckNOL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy16aC1yQ04vc3RyaW5ncy54bWwKaW5kZXggY2RiMTk0NGUuLjE4NTc4ZTQgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtemgtckNOL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtemgtckNOL3N0cmluZ3MueG1sCkBAIC0yMSw5ICsyMSw5IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLovpPlhaUgUElOIOeggSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iNDgwMDcyNTI2NjkyNTg0NTMzMyI+Iuivt+i+k+WFpSBQVUsg56CB5ZKM5paw55qEIFBJTiDnoIEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IlBVSyDnoIEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+IuaWsOeahCBQSU4g56CBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSIzMDM1ODU2NTUwMjg5NzI0MzM4Ij4i6K+36L6T5YWlIFNJTSDljaEgUFVLIOeggeWSjOaWsOeahCBQSU4g56CBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJTSU0g5Y2hIFBVSyDnoIEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iMzIwMTE1MTg0MDU3MDQ5MjUzOCI+IuaWsCBTSU0g5Y2hIFBJTiDnoIEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiLop6bmkbjlj6/ovpPlhaXlr4bnoIEiPC9mb250Pjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjEwNTQ3MjE2NjgyNzkwNDk3ODAiPiLovpPlhaXlr4bnoIHku6Xop6PplIEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiLovpPlhaUgUElOIOi/m+ihjOino+mUgSI8L3N0cmluZz4KQEAgLTcxLDYgKzcxLDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiLmmoLlgZzmjInpkq4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+IuaSreaUvuaMiemSriI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4i5YGc5q2i5oyJ6ZKuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IuaIkeWWnOasoiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+IuS4jeWWnOasoiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IueIseW/gyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+Iuino+mUgeWNs+WPr+e7p+e7rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IuWQr+WKqOW3suWPlua2iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiLmlL7kuIs8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPuWNs+WPr+WwhuWFtuWIoOmZpOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPuWwhuS4jeS8muiiq+WIoOmZpOOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiI/MTIzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWxwaGFfa2V5IiBtc2dpZD0iODAwMTA5NjE3NTE2NzQ4NTY0OSI+IkFCQyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FsdF9rZXkiIG1zZ2lkPSIxMjg0ODIwOTQyNjIwMjg4Njc4Ij4iQUxUIjwvc3RyaW5nPgpAQCAtMTA1LDcgKzExMiw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19wdWtfZW50ZXJfcGluX2hpbnQiIG1zZ2lkPSI3ODcxNjA0NTI3NDI5NjAyMDI0Ij4i6K+36L6T5YWl5omA6ZyAIFBJTiDnoIEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4i6K+356Gu6K6k5omA6ZyAIFBJTiDnoIEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+Iuato+WcqOino+mUgSBTSU0g5Y2hLi4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiIG1zZ2lkPSIxMTM5MzI0ODg3NDEzODQ2OTEyIj4iUElOIOeggeacieivr+OAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+Iuivt+i+k+WFpSA0IOiHsyA4IOS9jeaVsOeahCBQSU7jgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9wdWtfaGludCIgbXNnaWQ9Ijc1NTMzODgzMjU2NTQzNjk1NzUiPiJQVUsg56CB5bqU6Iez5bCR5YyF5ZCrIDgg5L2N5pWw5a2X44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4i6K+36YeN5paw6L6T5YWl5q2j56Gu55qEIFBVSyDnoIHjgILlpoLmnpzlsJ3or5XplJnor6/mrKHmlbDov4flpJrvvIxTSU0g5Y2h5bCG5rC45LmF5YGc55So44CCIjwvc3RyaW5nPgpAQCAtMTI5LDYgKzEzNSwxOSBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF9sb2dpbiIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjE0Mzc2MzgxNTIwMTU1NzQ4MzkiPiLmgqjlt7Lnu48gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g5qyh6ZSZ6K+v5Zyw57uY5Yi25LqG6Kej6ZSB5Zu+5qGI44CC5aaC5p6c5YaN5bCd6K+VIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOasoeWQjuS7jeS4jeaIkOWKn++8jOezu+e7n+WwseS8muimgeaxguaCqOS9v+eUqOiHquW3seeahOeUteWtkOmCruS7tuW4kOaIt+ino+mUgeaJi+acuuOAglxuXG7or7flnKggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8yIj4lZDwveGxpZmY6Zz4g56eS5ZCO6YeN6K+V44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfdGV4dF9tZXNzYWdlX3NlcGFyYXRvciIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjQxNjA3MDA0MzMyODcyMzM3NzEiPiIg4oCUICI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3Jlb3JkZXJpbmdfZGVsZXRlX2Ryb3BfdGFyZ2V0X3RleHQiIG1zZ2lkPSI3ODk5MjAyOTc4MjA0NDM4NzA4Ij4i5Yig6ZmkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGVfcHVra2VkIiBtc2dpZD0iMzA1MzEwMzk0NTU3NjQ5MjQiPiJTSU0g5Y2hIFBJTiDnoIHkuI3mraPnoa7vvIzmgqjnjrDlnKjlv4XpobvogZTns7vov5DokKXllYbkuLrmgqjop6PplIHorr7lpIfjgIIiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+IlNJTSDljaEgUElOIOeggeS4jeato+ehru+8jOaCqOi/mOaciTx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPuasoeWwneivleacuuS8muOAguWmguaenOS7jeeEtuWksei0pe+8jOWImeW/hemhu+iBlOezu+i/kOiQpeWVhuW4ruaCqOino+mUgeiuvuWkh+OAgiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMjIxNTcyMzM2MTU3NTM1OTQ4NiI+IlNJTSDljaEgUElOIOeggeS4jeato+ehru+8jOaCqOi/mOaciTx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPuasoeWwneivleacuuS8muOAgiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iU0lNIOWNoeaXoOazleS9v+eUqO+8jOivt+S4juaCqOeahOi/kOiQpeWVhuiBlOezu+OAgiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iU0lNIOWNoSBQVUsg56CB5LiN5q2j56Gu77yM5oKo6L+Y5pyJPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+5qyh5bCd6K+V5py65Lya44CC5aaC5p6c5LuN54S25aSx6LSl77yMU0lNIOWNoeWwhuawuOi/nOaXoOazleS9v+eUqOOAgiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IlNJTSDljaEgUFVLIOeggeS4jeato+ehru+8jOaCqOi/mOaciTx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPuasoeWwneivleacuuS8muOAguWmguaenOS7jeeEtuWksei0pe+8jFNJTSDljaHlsIbmsLjov5zml6Dms5Xkvb/nlKjjgIIiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IlNJTSDljaEgUElOIOeggeaTjeS9nOWksei0pe+8gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4iU0lNIOWNoSBQVUsg56CB5pON5L2c5aSx6LSl77yBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGluX2FjY2VwdGVkIiBtc2dpZD0iMTQ0ODI0MTY3MzU3MDAyMDA5NyI+IuS7o+eggeato+ehru+8gSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wcmV2X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODIyOTEwODQzMDI0NTY2OTg1NCI+IuKAnOS4iuS4gOabsuKAneaMiemSriI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+IuKAnOS4i+S4gOabsuKAneaMiemSriI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiLigJzmmoLlgZzigJ3mjInpkq4iPC9zdHJpbmc+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxMGFkMmYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDE1NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKiAvL2RldmljZS9hcHBzL2NvbW1vbi9hc3NldHMvcmVzL2FueS9zdHJpbmdzLnhtbAorKioKKyoqIENvcHlyaWdodCAyMDA2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiLovLjlhaUgUElOIOeivCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+Iuiri+i8uOWFpSBTSU0gUFVLIOeivOWSjOaWsCBQSU4g56K8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX3Byb21wdCIgbXNnaWQ9IjE4MDE5NDEwNTEwOTQ5NzQ2MDkiPiJTSU0gUFVLIOeivCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4i5pawIFNJTSBQSU4g56K8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50cnlfdG91Y2hfaGludCIgbXNnaWQ9Ijc4NTg1NDc0NjQ5ODI5ODEzODQiPjxmb250IHNpemU9IjE3Ij4i6LyV6Ke45Y2z5Y+v6Ly45YWl5a+G56K8IjwvZm9udD48L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSIxMDU0NzIxNjY4Mjc5MDQ5NzgwIj4i6Ly45YWl5a+G56K85Y2z5Y+v6Kej6Y6WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Bhc3N3b3JkX2NvZGUiIG1zZ2lkPSI2MzkxNzU1MTQ2MTEyNTAzNDQzIj4i6Ly45YWlIFBJTiDnorzljbPlj6/op6PpjpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjI0MjIyMjU1OTEwMDYxMzQ5MzYiPiJQSU4g56K85LiN5q2j56K644CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbGFiZWxfdGV4dCIgbXNnaWQ9Ijg2MTc5NjQ2MTAyODI5ODQyNCI+IuWmguimgeino+mOlu+8jOiri+aMiemBuOWWrumNte+8jOeEtuW+jOaMiSAw44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFjZXVubG9ja19tdWx0aXBsZV9mYWlsdXJlcyIgbXNnaWQ9Ijc1NDEzNzU4MzAyMjc5MjQyOSI+IuW3sui2hemBjuiHieWuueino+mOluWYl+ippuasoeaVuOS4iumZkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NoYXJnZWQiIG1zZ2lkPSIzMjcyMjIzOTA2MDczNDkyNDU0Ij4i5YWF6Zu75a6M5oiQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGx1Z2dlZF9pbiIgbXNnaWQ9IjgxMTc1NzIwMDA2Mzk5OTgzODgiPiLlhYXpm7vkuK0gKDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfbG93X2JhdHRlcnkiIG1zZ2lkPSI4MTQzODA4MDE4NzE5MTczODU5Ij4i6KuL6YCj5o6l5YWF6Zu75Zmo44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfaW5zdHJ1Y3Rpb25zX3doZW5fcGF0dGVybl9kaXNhYmxlZCIgbXNnaWQ9IjEzMzIyODgyNjg2MDAzMjk4NDEiPiLmjInpgbjllq7pjbXop6PpjpbjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9uZXR3b3JrX2xvY2tlZF9tZXNzYWdlIiBtc2dpZD0iOTE2OTcxNzc3OTA1ODAzNzE2OCI+Iue2sue1oeW3sumOluWumiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI0OTQ5ODA1NjEzMDQyMTE5MzEiPiLmib7kuI3liLAgU0lNIOWNoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9InRhYmxldCIgbXNnaWQ9IjE0NDU4NDkwMDU5MDkyNjAwMzkiPiLlubPmnb/pm7vohabkuK3mspLmnIkgU0lNIOWNoeOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX21pc3Npbmdfc2ltX21lc3NhZ2UiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIzNDgxMTEwMzk1NTA4NjM3NjQzIj4i5omL5qmf5Lit5rKS5pyJIFNJTSDljaHjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1MjEwODkxNTA5OTk1OTQyMjUwIj4i6KuL5o+S5YWlIFNJTSDljaHjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9taXNzaW5nX3NpbV9pbnN0cnVjdGlvbnNfbG9uZyIgbXNnaWQ9IjU5Njg5ODU0ODk0NjM4NzAzNTgiPiLmib7kuI3liLAgU0lNIOWNoeaIlueEoeazleiugOWPliBTSU0g5Y2h77yM6KuL5o+S5YWlIFNJTSDljaHjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wZXJtYW5lbnRfZGlzYWJsZWRfc2ltX21lc3NhZ2Vfc2hvcnQiIG1zZ2lkPSI4MzQwODEzOTg5NTg2NjIyMzU2Ij4iU0lNIOWNoeeEoeazleS9v+eUqOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Blcm1hbmVudF9kaXNhYmxlZF9zaW1faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iNTg5Mjk0MDkwOTY5OTcyMzU0NCI+IuaCqOeahCBTSU0g5Y2h5bey6KKr5rC45LmF5YGc55So44CCXG7oq4voiIfmgqjnmoTnhKHnt5rmnI3li5nkvpvmh4nllYboga/ntaHvvIzku6Xlj5blvpflj6bkuIDlvLUgU0lNIOWNoeOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3NpbV9sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjY4NzU3NzM0MTMzMDYzODA5MDIiPiJTSU0g5Y2h6JmV5pa86Y6W5a6a54uA5oWL44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfc2ltX3B1a19sb2NrZWRfbWVzc2FnZSIgbXNnaWQ9IjM3NDcyMzI0Njc0NzE4MDE2MzMiPiJTSU0g5Y2h6JmV5pa8IFBVSyDpjpblrprni4DmhYvjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iNzk3NTIyMTgwNTAzMzYxNDQyNiI+Iuato+WcqOino+mWi+S4iumOlueahCBTSU0g5Y2hLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfY2hhbmdlZCIgbXNnaWQ9IjU2Nzg2MjQ2MjQ2ODE0MDAxOTEiPiIlMSRz44CC56ysICUyJGQg5YCL5bCP5bel5YW377yM5YWxICUzJGQg5YCL44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9hZGRfd2lkZ2V0IiBtc2dpZD0iODI3MzI3NzA1ODcyNDkyNDY1NCI+IuaWsOWinuWwj+W3peWFt+OAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfd2lkZ2V0X2VtcHR5X3Nsb3QiIG1zZ2lkPSIxMjgxNTA1NzAzMzA3OTMwNzU3Ij4i56m655m9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV91bmxvY2tfYXJlYV9leHBhbmRlZCIgbXNnaWQ9IjIyNzgxMDYwMjIzMTExNzAyOTkiPiLop6PpjpbljYDln5/lt7LlsZXplovjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3VubG9ja19hcmVhX2NvbGxhcHNlZCIgbXNnaWQ9IjYzNjY5OTIwNjY5MzYwNzYzOTYiPiLop6PpjpbljYDln5/lt7LmlLblkIjjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldCIgbXNnaWQ9IjY1MjcxMzEwMzk3NDE4MDgyNDAiPiI8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPuWwj+W3peWFt+OAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdXNlcl9zZWxlY3RvciIgbXNnaWQ9IjEyMjY3OTgzNzA5MTM2OTg4OTYiPiLnlKjmiLbpgbjlj5blt6XlhbciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3N0YXR1cyIgbXNnaWQ9IjgwMDgyNjQ2MDM5MzU5MzA2MTEiPiLni4DmhYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2NhbWVyYSIgbXNnaWQ9Ijg5MDQyMzExOTQxODExMTQ2MDMiPiLnm7jmqZ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlnYXVyZF9hY2Nlc3NpYmlsaXR5X21lZGlhX2NvbnRyb2xzIiBtc2dpZD0iMjYyMjA5NjU0MjkyMTYxODA2Ij4i5aqS6auU5o6n5Yi2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV93aWRnZXRfcmVvcmRlcl9zdGFydCIgbXNnaWQ9Ijg3MzY4NTM2MTU1ODg4MjgxOTciPiLlt7Lplovlp4vngrrlsI/lt6Xlhbfph43mlrDmjpLliJfmrKHluo/jgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9yZW9yZGVyX2VuZCIgbXNnaWQ9IjcxNzAxOTA5NTA4NzA0NjgzMjAiPiLlt7LlrozmiJDngrrlsI/lt6Xlhbfph43mlrDmjpLliJfmrKHluo/jgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3dpZGdldF9kZWxldGVkIiBtc2dpZD0iNDQyNjIwNDI2MzkyOTIyNDQzNCI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+5bCP5bel5YW35bey5Yiq6Zmk44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9leHBhbmRfbG9ja19hcmVhIiBtc2dpZD0iNTE5ODU5NzIwOTM0MTc4MDI0Ij4i5bGV6ZaL6Kej6Y6W5Y2A5Z+f44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV91bmxvY2siIG1zZ2lkPSIyOTU5OTI4NDc4NzY0Njk3MjU0Ij4i5ruR5YuV6Kej6Y6W44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX3VubG9jayIgbXNnaWQ9IjE0OTA4NDA3MDYwNzUyNDY2MTIiPiLlnJbmoYjop6PpjpbjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X2ZhY2VfdW5sb2NrIiBtc2dpZD0iNDgxNzI4MjU0MzM1MTcxODUzNSI+IuiHieWuueino+mOluOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfcGluX3VubG9jayIgbXNnaWQ9IjI0Njk2ODcxMTE3ODQwMzUwNDYiPiJQSU4g6Kej6Y6W44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXNzd29yZF91bmxvY2siIG1zZ2lkPSI3Njc1Nzc3NjIzOTEyMTU1MDg5Ij4i5a+G56K86Kej6Y6W44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9wYXR0ZXJuX2FyZWEiIG1zZ2lkPSI3Njc5ODkxMzI0NTA5NTk3OTA0Ij4i5ZyW5qGI5Y2A5Z+f44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zbGlkZV9hcmVhIiBtc2dpZD0iNjczNjA2NDQ5NDAxOTk3OTU0NCI+Iua7keWLleWNgOWfn+OAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSIxMzM3Mjg2NTM4MzE4NTQzNTU1Ij4iW+S4iuS4gOmmluabsuebrl0g5oyJ6YiVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjcwNzM5MjgzMDA0NDQ5MDkzMjAiPiJb5LiL5LiA6aaW5puy55uuXSDmjInpiJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijg0NTU5Nzk1NDUyOTUyMjQzMDIiPiJb5pqr5YGcXSDmjInpiJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iODE0NjQxNzc4OTUxMTE1NDA0NCI+Ilvmkq3mlL5dIOaMiemIlSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iW+WBnOatol0g5oyJ6YiVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+IuWWnOatoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+IuS4jeWWnOatoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X2hlYXJ0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjMzNjk0MzIzMjQ3NDY4OTg4NyI+IuW/g+W9oiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfc2hvd19ib3VuY2VyIiBtc2dpZD0iNTQyNTgzNzI3MjQxODE3NjE3NiI+Iuiri+ino+mOluS7pee5vOe6jCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfaGlkZV9ib3VuY2VyIiBtc2dpZD0iNzg5Njk5MjE3MTg3ODMwOTM1OCI+IuW3suWPlua2iOWVn+WLlSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiLmi5bmlL7jgIw8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPuOAjeWNs+WPr+WIqumZpOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9lbmQiIG1zZ2lkPSI1MDg4MzM1MDY3ODA5MDkzOTMiPiLjgIw8eGxpZmY6ZyBpZD0iV0lER0VUX0lOREVYIj4lMSRzPC94bGlmZjpnPuOAjeWwh+S4jeacg+iiq+WIqumZpOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX3N5bWJvbF9rZXkiIG1zZ2lkPSI5OTIyODA3NTYyNTY1MzYwNDIiPiLvvJ8xMjMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9hbHQiIG1zZ2lkPSI0ODU2ODY4ODIwMDQwMDUxOTM5Ij4iQWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Ym9hcmR2aWV3X2tleWNvZGVfY2FuY2VsIiBtc2dpZD0iMTIwMzk4NDAxNzI0NTc4MzI0NCI+IuWPlua2iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2RlbGV0ZSIgbXNnaWQ9IjMzMzc5MTQ4MzMyMDY2MzU3NDQiPiLliKrpmaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlib2FyZHZpZXdfa2V5Y29kZV9kb25lIiBtc2dpZD0iMTk5MjU3MTExODQ2NjY3OTc3NSI+IuWujOaIkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX21vZGVfY2hhbmdlIiBtc2dpZD0iNDU0NzM4Nzc0MTkwNjUzNzUxOSI+IuaooeW8j+abtOaUuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX3NoaWZ0IiBtc2dpZD0iMjI3MDc0ODgxNDMxNTE0NzY5MCI+IlNoaWZ0IOmNtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWJvYXJkdmlld19rZXljb2RlX2VudGVyIiBtc2dpZD0iMjk4NTg2NDAxNTA3NjA1OTQ2NyI+IkVudGVyIOmNtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF91bmxvY2siIG1zZ2lkPSIyMjI4NTI0OTAwNDM5ODAxNDUzIj4i6Kej6Y6WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X2NhbWVyYSIgbXNnaWQ9Ijk2OTA3MTk5NzU1MjQ4NjgxNCI+IuebuOapnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc2NyaXB0aW9uX3RhcmdldF9zaWxlbnQiIG1zZ2lkPSI4OTM1NTEyODc3NDY1MjIxODIiPiLpnZzpn7MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl90YXJnZXRfc291bmRvbiIgbXNnaWQ9IjMwMDUyNDY2Njc1NTAwMTcyIj4i6Z+z5pWI5bey6ZaL5ZWfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fdGFyZ2V0X3NlYXJjaCIgbXNnaWQ9IjMwOTE1ODcyNDk3NzYwMzMxMzkiPiLmkJzlsIsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNjcmlwdGlvbl9kaXJlY3Rpb25fdXAiIG1zZ2lkPSI3MTY5MDMyNDc4MjU5NDg1MTgwIj4i5ZCR5LiK5ruR5YuV5Y2z5Y+vPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2Rvd24iIG1zZ2lkPSI1MDg3NzM5NzI4NjM5MDE0NTk1Ij4i5ZCR5LiL5ruR5YuV5Y2z5Y+vPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX2xlZnQiIG1zZ2lkPSI3MjA3NDc4NzE5ODA1NTYyMTY1Ij4i5ZCR5bem5ruR5YuV5Y2z5Y+vPHhsaWZmOmcgaWQ9IlRBUkdFVF9ERVNDUklQVElPTiI+JXM8L3hsaWZmOmc+44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzY3JpcHRpb25fZGlyZWN0aW9uX3JpZ2h0IiBtc2dpZD0iODAzNDQzMzI0MjU3OTYwMDk4MCI+IuWQkeWPs+a7keWLleWNs+WPrzx4bGlmZjpnIGlkPSJUQVJHRVRfREVTQ1JJUFRJT04iPiVzPC94bGlmZjpnPuOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZXJfc3dpdGNoZWQiIG1zZ2lkPSIzNzY4MDA2NzgzMTY2OTg0NDEwIj4i55uu5YmN55qE55So5oi25pivPHhsaWZmOmcgaWQ9Ik5BTUUiPiUxJHM8L3hsaWZmOmc+44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW1lcmdlbmN5X2NhbGxfbGFiZWwiIG1zZ2lkPSI2ODQ5NDYxOTI1MjM4MzA1MzEiPiLnt4rmgKXpm7voqbEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mb3Jnb3RfcGF0dGVybl9idXR0b25fdGV4dCIgbXNnaWQ9Ijg4NTIwMjE0Njc4NjgyMjA2MDgiPiLlv5joqJjlnJbmoYgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ193cm9uZ19wYXR0ZXJuIiBtc2dpZD0iMTg1MDgwNjA3MDgwMTM1ODgzMCI+IuWcluahiOmMr+iqpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3Bhc3N3b3JkIiBtc2dpZD0iMjMzMzI4MTc2MjEyODExMzE1NyI+IuWvhueivOmMr+iqpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3dyb25nX3BpbiIgbXNnaWQ9IjExMzEzMDY1MTA4MzM1NjM4MDEiPiJQSU4g6Yyv6KqkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX2F0dGVtcHRzX2NvdW50ZG93biIgbXNnaWQ9IjYzNTgxMTAyMjE2MDMyOTc1NDgiPiLoq4vlnKggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOenkuW+jOWGjeippuS4gOasoeOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3BhdHRlcm5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMzk4OTc4NjExNjgzMDc1ODY4Ij4i55Wr5Ye65ZyW5qGIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzE5NTA4NTUwOTM0NTU3MzMxIj4i6Ly45YWlIFNJTSDljaEgUElOIOeivCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9pbnN0cnVjdGlvbnMiIG1zZ2lkPSIyMzc3MjQyMjMzNDk1MTExNTU3Ij4i6Ly45YWlIFBJTiDnorwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9pbnN0cnVjdGlvbnMiIG1zZ2lkPSI1NzUzNjQ2NTU2MTg2OTM2ODE5Ij4i6Ly45YWl5a+G56K8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3B1a19oaW50IiBtc2dpZD0iNDUzMjI3MTQzODYxNzM1NTM3Ij4iU0lNIOWNoeePvuW3suWBnOeUqO+8jOiri+i8uOWFpSBQVUsg56K85Lul57m857qM44CC6Kmz5oOF6KuL6IiH5rWB5YuV57ay57Wh5L6b5oeJ5ZWG6IGv57Wh44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+Iui8uOWFpeaJgOmcgOeahCBQSU4g56K8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZW50ZXJfY29uZmlybV9waW5faGludCIgbXNnaWQ9IjMyNTY3NjE4NDc2MjUyOTk3NiI+IueiuuiqjeaJgOmcgOeahCBQSU4g56K8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfc2ltX3VubG9ja19wcm9ncmVzc19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijg5NTAzOTgwMTY5NzY4NjU3NjIiPiLmraPlnKjop6PplovkuIrpjpbnmoQgU0lNIOWNoS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3Bpbl9oaW50IiBtc2dpZD0iODc5NTE1OTM1ODExMDYyMDAwMSI+Iuiri+i8uOWFpeS4gOWAiyA0IOiHsyA4IOS9jeaVuOeahCBQSU4g56K844CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcHVrX2hpbnQiIG1zZ2lkPSI3NTUzMzg4MzI1NjU0MzY5NTc1Ij4iUFVLIOeivOaHieeUsSA4IOWAi+aIluS7peS4iuaVuOWtl+e1hOaIkOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfcHVrIiBtc2dpZD0iMzYzODI4OTQwOTY3NjA1MTI0MyI+Iuiri+mHjeaWsOi8uOWFpeato+eiuueahCBQVUsg56K844CC5aaC5p6c5ZiX6Kmm6Ly45YWl55qE5qyh5pW46YGO5aSa77yMU0lNIOWNoeWwh+awuOS5heWBnOeUqOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfY29uZmlybV9waW5faGludCIgcHJvZHVjdD0iZGVmYXVsdCIgbXNnaWQ9IjcwMDM0NjkyNjE0NjQ1OTM1MTYiPiJQSU4g56K85LiN56ymIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdG9vX21hbnlfYXR0ZW1wdHMiIG1zZ2lkPSI2NDg2ODQyMDk0MDA1Njk4NDc1Ij4i5ZyW5qGI5ZiX6Kmm5qyh5pW46YGO5aSaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW5zdHJ1Y3Rpb25zIiBtc2dpZD0iMTEwMDU1MTI2MTI2NTUwNjQ0OCI+IuWmguimgeino+mOlu+8jOiri+S7pSBHb29nbGUg5biz5oi255m75YWl44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fdXNlcm5hbWVfaGludCIgbXNnaWQ9IjU3MTg1MzQyNzIwNzA5MjAzNjQiPiLnlKjmiLblkI3nqLEgKOmbu+WtkOmDteS7tikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9wYXNzd29yZF9oaW50IiBtc2dpZD0iOTA1NzI4OTEwMzgyNzI5ODU0OSI+IuWvhueivCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2xvZ2luX3N1Ym1pdF9idXR0b24iIG1zZ2lkPSI1MzU1OTA0NTgyNjc0MDU0NzAyIj4i55m75YWlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5faW52YWxpZF9pbnB1dCIgbXNnaWQ9IjU3NTQ2NjQxMTkzMTk4NzIxOTciPiLnhKHmlYjnmoTnlKjmiLblkI3nqLHmiJblr4bnorzjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19sb2dpbl9hY2NvdW50X3JlY292ZXJ5X2hpbnQiIG1zZ2lkPSI1NjkwNzA5MTMyODQxNzUyOTc0Ij4i5b+Y6KiY55So5oi25ZCN56ix5oiW5a+G56K877yfXG7oq4vngI/opr0gIjxiPiJnb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5IjwvYj4i44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfbG9naW5fY2hlY2tpbmdfcGFzc3dvcmQiIG1zZ2lkPSIxMDUyNjg1MTk3NzEwMjUyMzk1Ij4i5q2j5Zyo5qqi5p+l5biz5oi24oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfdG9vX21hbnlfZmFpbGVkX3Bpbl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9IjgyNzY3NDU2NDIwNDk1MDI1NTAiPiLmgqjlt7LovLjlhaXpjK/oqqTnmoQgUElOIOeivCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDmrKHjgIJcblxu6KuL5ZyoIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+IOenkuW+jOWGjeippuS4gOasoeOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Rvb19tYW55X2ZhaWxlZF9wYXNzd29yZF9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc4MTM3MTMzODk0MjIyMjY1MzEiPiLmgqjlt7LovLjlhaXpjK/oqqTnmoTlr4bnorwgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lZDwveGxpZmY6Zz4g5qyh44CCXG5cbuiri+WcqCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDnp5Llvozlho3oqabkuIDmrKHjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ190b29fbWFueV9mYWlsZWRfcGF0dGVybl9hdHRlbXB0c19kaWFsb2dfbWVzc2FnZSIgbXNnaWQ9Ijc0MDg5NDc1OTY1MDUwODA1Ij4i5oKo5bey55Wr6Yyv6Kej6Y6W5ZyW5qGIIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOasoeOAglxuXG7oq4vlnKggPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g56eS5b6M5YaN6Kmm5LiA5qyh44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX2FsbW9zdF9hdF93aXBlIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIxNTc1NTU3MjAwNjI3MTI4OTQ5Ij4i5oKo5ZiX6Kmm5LqGIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOasoeS7jeacquiDveaIkOWKn+ino+mWi+mAmemDqOS4iumOlueahOW5s+adv+mbu+iFpuOAguWmguaenOWGjeWYl+ippiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDmrKHku43mnKrmiJDlip/vvIzlubPmnb/pm7vohablsIflm57lvqnljp/lu6DoqK3lrprvvIzmiYDmnInnlKjmiLbos4fmlpnlnYfmnIPlpLHljrvjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X3dpcGUiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MDUxMDE1OTQzMDM4MTk5OTEwIj4i5oKo5ZiX6Kmm5LqGIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOasoeS7jeacquiDveaIkOWKn+ino+mWi+mAmemDqOS4iumOlueahOaJi+apn+OAguWmguaenOWGjeWYl+ippiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDmrKHku43mnKrmiJDlip/vvIzmiYvmqZ/lsIflm57lvqnljp/lu6DoqK3lrprvvIzmiYDmnInnlKjmiLbos4fmlpnlnYfmnIPlpLHljrvjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfbm93X3dpcGluZyIgcHJvZHVjdD0idGFibGV0IiBtc2dpZD0iMjA3Mjk5NjI2OTE0ODQ4MzYzNyI+IuaCqOWYl+ippuS6hiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g5qyh5LuN5pyq6IO95oiQ5Yqf6Kej6ZaL6YCZ6YOo5LiK6Y6W55qE5bmz5p2/6Zu76IWm44CC5bmz5p2/6Zu76IWm54++5Zyo5bCH5Zue5b6p5Y6f5bug6Kit5a6a44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfZmFpbGVkX2F0dGVtcHRzX25vd193aXBpbmciIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0ODE3NjI3NDc0NDE5NDcxNTE4Ij4i5oKo5ZiX6Kmm5LqGIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDmrKHku43mnKrog73miJDlip/op6PplovpgJnpg6jkuIrpjpbnmoTmiYvmqZ/jgILmiYvmqZ/nj77lnKjlsIflm57lvqnljp/lu6DoqK3lrprjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJ0YWJsZXQiIG1zZ2lkPSIzMjUzNTc1NTcyMTE4OTE0MzcwIj4i5oKo5bey55Wr6Yyv6Kej6Y6W5ZyW5qGIIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOasoe+8jOWmguaenOWGjeWYl+ippiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDmrKHku43mnKrmiJDlip/vvIzns7vntbHmnIPopoHmsYLmgqjpgI/pgY7pm7vpg7XluLPmiLbop6PplovkuIrpjpbnmoTlubPmnb/pm7vohabjgIJcblxu6KuL5ZyoIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOenkuW+jOWGjeippuS4gOasoeOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX2ZhaWxlZF9hdHRlbXB0c19hbG1vc3RfYXRfbG9naW4iIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSIxNDM3NjM4MTUyMDE1NTc0ODM5Ij4i5oKo5bey55Wr6Yyv6Kej6Y6W5ZyW5qGIIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IOasoe+8jOWmguaenOWGjeWYl+ippiA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiVkPC94bGlmZjpnPiDmrKHku43mnKrmiJDlip/vvIzns7vntbHmnIPopoHmsYLmgqjpgI/pgY7pm7vpg7XluLPmiLbop6PplovkuIrpjpbnmoTmiYvmqZ/jgIJcblxu6KuL5ZyoIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IOenkuW+jOWGjeippuS4gOasoeOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+Iuenu+mZpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlX3B1a2tlZCIgbXNnaWQ9IjMwNTMxMDM5NDU1NzY0OTI0Ij4iU0lNIFBJTiDnorzkuI3mraPnorrvvIzmgqjnj77lnKjlv4XpoIjoga/ntaHmtYHli5XntrLntaHkvpvmh4nllYbngrrmgqjnmoToo53nva7op6PpjpbjgIIiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+IlNJTSBQSU4g56K85LiN5q2j56K677yM5oKo5Ymp5LiLIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDmrKHmqZ/mnIPovLjlhaXjgILlpoLmnpzku43nhLbovLjlhaXpjK/oqqTvvIzmgqjlv4XpoIjoga/ntaHmtYHli5XntrLntaHkvpvmh4nllYbngrrmgqjnmoToo53nva7op6PpjpbjgIIiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJTSU0gUElOIOeivOS4jeato+eiuu+8jOaCqOWJqeS4iyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g5qyh5qmf5pyD6Ly45YWl44CCIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGVfZGVhZCIgbXNnaWQ9IjcwNzc1MzY4MDgyOTEzMTYyMDgiPiJTSU0g54Sh5rOV5L2/55So77yM6KuL6IGv57Wh5oKo55qE5rWB5YuV57ay57Wh5L6b5oeJ5ZWG44CCIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiJTSU0gUFVLIOeivOS4jeato+eiuu+8jOaCqOWJqeS4iyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g5qyh5qmf5pyD6Ly45YWl44CC5aaC5p6c5LuN54S26Lyq5YWl6Yyv6Kqk77yMU0lNIOWwh+awuOS5heeEoeazleS9v+eUqOOAgiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNTQ3NzMwNTIyNjAyNjM0MjAzNiI+IlNJTSBQVUsg56K85LiN5q2j56K677yM5oKo5Ymp5LiLIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDmrKHmqZ/mnIPovLjlhaXjgILlpoLmnpzku43nhLbovLjlhaXpjK/oqqTvvIxTSU0g5bCH5rC45LmF54Sh5rOV5L2/55So44CCIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiJTSU0gUElOIOeivOaTjeS9nOWkseaVl++8gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4iU0lNIFBVSyDnorzmk43kvZzlpLHmlZfvvIEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4i5a+G56K85q2j56K677yBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3ByZXZfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MjI5MTA4NDMwMjQ1NjY5ODU0Ij4iW+S4iuS4gOmmluabsuebrl0g5oyJ6YiVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X25leHRfZGVzY3JpcHRpb24iIG1zZ2lkPSI0Mjk5MjU4MzAwMjgzNzc4MzA1Ij4iW+S4i+S4gOmmluabsuebrl0g5oyJ6YiVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNTA5MzA3MzMzODIzODMxMDIyNCI+IlvmmqvlgZxdIOaMiemIlSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wbGF5X2Rlc2NyaXB0aW9uIiBtc2dpZD0iMjkyNDYyODg2Mzc0MTE1MDk1NiI+Ilvmkq3mlL5dIOaMiemIlSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9zdG9wX2Rlc2NyaXB0aW9uIiBtc2dpZD0iMzA4NDE3OTMyNDgxMDU3NTc4NyI+IlvlgZzmraJdIOaMiemIlSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2NhcnJpZXJfZGVmYXVsdCIgbXNnaWQ9Ijg3MDA2NTA0MDMwNTQwNDIxNTMiPiLmspLmnInmnI3li5njgIIiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy16aC1yVFcvc3RyaW5ncy54bWwKaW5kZXggNzJhMWMwZi4uZDgxY2MxNiAxMDA2NDQKLS0tIGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy16aC1yVFcvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy16aC1yVFcvc3RyaW5ncy54bWwKQEAgLTIxLDkgKzIxLDkgQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9jb2RlIiBtc2dpZD0iMzAzNzY4NTc5NjA1ODQ5NTAxNyI+Iui8uOWFpSBQSU4g56K8Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcHVrX2NvZGUiIG1zZ2lkPSI0ODAwNzI1MjY2OTI1ODQ1MzMzIj4i6Ly45YWlIFBVSyDnorzlkozmlrAgUElOIOeivCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19wcm9tcHQiIG1zZ2lkPSIxMzQxMTEyMTQ2NzEwMDg3MDQ4Ij4iUFVLIOeivCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSI4MDI3NjgwMzIxNjE0MTk2MjU4Ij4i5pawIFBJTiDnorwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjMwMzU4NTY1NTAyODk3MjQzMzgiPiLovLjlhaUgU0lNIOWNoSBQVUsg56K85ZKM5pawIFBJTiDnorwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IlNJTSDljaEgUFVLIOeivCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wcm9tcHQiIG1zZ2lkPSIzMjAxMTUxODQwNTcwNDkyNTM4Ij4i5paw5aKeIFNJTSDljaEgUElOIOeivCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudHJ5X3RvdWNoX2hpbnQiIG1zZ2lkPSI3ODU4NTQ3NDY0OTgyOTgxMzg0Ij48Zm9udCBzaXplPSIxNyI+Iui8leinuOWNs+WPr+i8uOWFpeWvhueivCI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+Iui8uOWFpeWvhueivOWNs+WPr+ino+mOliI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3Bpbl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iNjM5MTc1NTE0NjExMjUwMzQ0MyI+Iui8uOWFpSBQSU4g5Y2z5Y+v6Kej6Y6WIjwvc3RyaW5nPgpAQCAtNzEsNiArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BhdXNlX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODQ1NTk3OTU0NTI5NTIyNDMwMiI+IlvmmqvlgZxdIOaMiemIlSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iW+aSreaUvl0g5oyJ6YiVIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfc3RvcF9kZXNjcmlwdGlvbiIgbXNnaWQ9Ijc2NTYzNTg0ODI5ODA5MTIyMTYiPiJb5YGc5q2iXSDmjInpiJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF90aHVtYnNfdXBfZGVzY3JpcHRpb24iIG1zZ2lkPSI0NTM1OTM4MTI5NjYzOTAzMTk0Ij4i5Zac5q2hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX2Rvd25fZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTAxNDMzNjc3MTkyMTc3ODYxIj4i5LiN5Zac5q2hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfaGVhcnRfZGVzY3JpcHRpb24iIG1zZ2lkPSIyMzM2OTQzMjMyNDc0Njg5ODg3Ij4i5oSb5b+DIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9zaG93X2JvdW5jZXIiIG1zZ2lkPSI1NDI1ODM3MjcyNDE4MTc2MTc2Ij4i5YWI6Kej6Y6W5omN6IO957m857qM5pON5L2cIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4i5bey5Y+W5raI5ZWf5YuVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X3N0YXJ0IiBtc2dpZD0iNDA5NjU1MDU1MjYzNDM5MTQ1MSI+IuaLluaUvuOAjDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+44CN5Y2z5Y+v5bCH5YW25Yiq6Zmk44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+IuOAjDx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+44CN5bCH5LiN5pyD6YGt5Yiw5Yiq6Zmk44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfc3ltYm9sX2tleSIgbXNnaWQ9Ijk5MjI4MDc1NjI1NjUzNjA0MiI+Ij8xMjMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHBoYV9rZXkiIG1zZ2lkPSI4MDAxMDk2MTc1MTY3NDg1NjQ5Ij4iQUJDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icGFzc3dvcmRfa2V5Ym9hcmRfbGFiZWxfYWx0X2tleSIgbXNnaWQ9IjEyODQ4MjA5NDI2MjAyODg2NzgiPiJBTFQiPC9zdHJpbmc+CkBAIC0xMDUsNyArMTEyLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImtnX3B1a19lbnRlcl9waW5faGludCIgbXNnaWQ9Ijc4NzE2MDQ1Mjc0Mjk2MDIwMjQiPiLovLjlhaXmiYDpnIDnmoQgUElOIOeivCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2VudGVyX2NvbmZpcm1fcGluX2hpbnQiIG1zZ2lkPSIzMjU2NzYxODQ3NjI1Mjk5NzYiPiLnorroqo3miYDpnIDnmoQgUElOIOeivCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3NpbV91bmxvY2tfcHJvZ3Jlc3NfZGlhbG9nX21lc3NhZ2UiIG1zZ2lkPSI4OTUwMzk4MDE2OTc2ODY1NzYyIj4i5q2j5Zyo6Kej6ZmkIFNJTSDljaHpjpblrpouLi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiJQSU4g56K85LiN5q2j56K644CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9zaW1fcGluX2hpbnQiIG1zZ2lkPSI4Nzk1MTU5MzU4MTEwNjIwMDAxIj4i6KuL6Ly45YWlIDQg5YiwIDgg56K855qEIFBJTuOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IlBVSyDnorzoh7PlsJHlv4XpoIjngrogOCDnorzjgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3B1ayIgbXNnaWQ9IjM2MzgyODk0MDk2NzYwNTEyNDMiPiLph43mlrDovLjlhaXmraPnorrnmoQgUFVLIOeivOOAguWmguaenOmMr+iqpOasoeaVuOmBjuWkmu+8jFNJTSDljaHlsIfmnIPmsLjkuYXlgZznlKjjgIIiPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IuaCqOeahOino+mOluWcluW9ouW3sueVq+mMryA8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiVkPC94bGlmZjpnPiDmrKHvvIzlpoLmnpzlho3lmJfoqaYgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lZDwveGxpZmY6Zz4g5qyh5LuN5pyq5oiQ5Yqf77yM57O757Wx5bCx5pyD6KaB5rGC5oKo6YCP6YGO6Zu75a2Q6YO15Lu25biz5oi26Kej6Zmk5omL5qmf55qE6Y6W5a6a54uA5oWL44CCXG5cbuiri+WcqCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzIiPiVkPC94bGlmZjpnPiDnp5Llvozlho3oqabkuIDmrKHjgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ190ZXh0X21lc3NhZ2Vfc2VwYXJhdG9yIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iNDE2MDcwMDQzMzI4NzIzMzc3MSI+IiDigJQgIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfcmVvcmRlcmluZ19kZWxldGVfZHJvcF90YXJnZXRfdGV4dCIgbXNnaWQ9Ijc4OTkyMDI5NzgyMDQ0Mzg3MDgiPiLnp7vpmaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IlNJTSDljaHnmoQgUElOIOeivOi8uOWFpemMr+iqpO+8jOaCqOePvuWcqOW/hemgiOiri+ihjOWLlemAmuioiualreiAheeCuuijnee9ruino+mOluOAgiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcGluX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI4MTM0MzEzOTk3Nzk5NjM4MjU0Ij4iU0lNIOWNoeeahCBQSU4g56K86Ly45YWl6Yyv6Kqk77yM5oKo6YKE5Y+v5Lul5YaN6KmmIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDmrKHjgILlpoLmnpzku43nhLblpLHmlZfvvIzlsLHlv4XpoIjoq4vooYzli5XpgJroqIrmpa3ogIXngrroo53nva7op6PpjpbjgIIiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJTSU0g5Y2h55qEIFBJTiDnorzovLjlhaXpjK/oqqTvvIzmgqjpgoTlj6/ku6Xlho3oqaYgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOasoeOAgiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iU0lNIOWNoeeEoeazleS9v+eUqO+8jOiri+iIh+aCqOeahOihjOWLlemAmuioiualreiAheiBr+e1oeOAgiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ia2dfcGFzc3dvcmRfd3JvbmdfcHVrX2NvZGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSIzMjU2ODkzNjA3NTYxMDYwNjQ5Ij4iU0lNIOWNoeeahCBQVUsg56K86Ly45YWl6Yyv6Kqk77yM5oKo6YKE5Y+v5Lul5YaN6KmmIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDmrKHjgILlpoLmnpzku43nhLblpLHmlZfvvIxTSU0g5Y2h5bCH5rC45LmF54Sh5rOV5L2/55So44CCIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4iU0lNIOWNoeeahCBQVUsg56K86Ly45YWl6Yyv6Kqk77yM5oKo6YKE5Y+v5Lul5YaN6KmmIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDmrKHjgILlpoLmnpzku43nhLblpLHmlZfvvIxTSU0g5Y2h5bCH5rC45LmF54Sh5rOV5L2/55So44CCIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ia2dfcGFzc3dvcmRfcGluX2ZhaWxlZCIgbXNnaWQ9IjYyNjgyODgwOTM1NTgwMzE1NjQiPiJTSU0g5Y2hIFBJTiDnorzmk43kvZzlpLHmlZfvvIEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9wdWtfZmFpbGVkIiBtc2dpZD0iMjgzODgyNDM2OTUwMjQ1NTk4NCI+IlNJTSDljaEgUFVLIOeivOaTjeS9nOWkseaVl++8gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bpbl9hY2NlcHRlZCIgbXNnaWQ9IjE0NDgyNDE2NzM1NzAwMjAwOTciPiLlr4bnorzmraPnorrvvIEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiJb5LiK5LiA6aaW5puy55uuXSDmjInpiJUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfbmV4dF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjQyOTkyNTgzMDAyODM3NzgzMDUiPiJb5LiL5LiA6aaW5puy55uuXSDmjInpiJUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI1MDkzMDczMzM4MjM4MzEwMjI0Ij4iW+aaq+WBnF0g5oyJ6YiVIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy16dS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL0tleWd1YXJkL3Jlcy92YWx1ZXMtenUvc3RyaW5ncy54bWwKaW5kZXggMTg1ZWEwMy4uYjIwNTYzNCAxMDA2NDQKLS0tIGEvcGFja2FnZXMvS2V5Z3VhcmQvcmVzL3ZhbHVlcy16dS9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9LZXlndWFyZC9yZXMvdmFsdWVzLXp1L3N0cmluZ3MueG1sCkBAIC0yMSw5ICsyMSw5IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fY29kZSIgbXNnaWQ9IjMwMzc2ODU3OTYwNTg0OTUwMTciPiJGYWthIGlraG9kaSB5ZS1QSU4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfY29kZSIgbXNnaWQ9IjQ4MDA3MjUyNjY5MjU4NDUzMzMiPiJGYWthIGktUFVLIG5lcGhpbmlraG9kaSBlbnRzaGEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTM0MTExMjE0NjcxMDA4NzA0OCI+IklraG9kaSBsZS1QVUsiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcHJvbXB0IiBtc2dpZD0iODAyNzY4MDMyMTYxNDE5NjI1OCI+IklwaGluaWtob2RpIGVudHNoYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3Bhc3N3b3JkX2VudGVyX3B1a19jb2RlIiBtc2dpZD0iMzAzNTg1NjU1MDI4OTcyNDMzOCI+IlRoYXlpcGhhIGktUFVLIHllLVNJTSBuZWtob2RpIHllcGhpbmlraG9kaSBlbnRzaGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wdWtfcHJvbXB0IiBtc2dpZD0iMTgwMTk0MTA1MTA5NDk3NDYwOSI+IklraG9kaSB5ZS1QVUsgeWUtU0lNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfcGFzc3dvcmRfZW50ZXJfcGluX3Byb21wdCIgbXNnaWQ9IjMyMDExNTE4NDA1NzA0OTI1MzgiPiJJa2hvZGkgZW50c2hhIHllcGhpbmlraG9kaSB5ZS1TSU0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRyeV90b3VjaF9oaW50IiBtc2dpZD0iNzg1ODU0NzQ2NDk4Mjk4MTM4NCI+PGZvbnQgc2l6ZT0iMTciPiJUaGludGEgdWt1YmhhbGEgaXBoYXNpd2VkaSI8L2ZvbnQ+PC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9wYXNzd29yZF9jb2RlIiBtc2dpZD0iMTA1NDcyMTY2ODI3OTA0OTc4MCI+IkJoYWxhIGlwaGFzaXdlZGkgdWt1emUga3V2dWxla2UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9wYXNzd29yZF9lbnRlcl9waW5fcGFzc3dvcmRfY29kZSIgbXNnaWQ9IjYzOTE3NTUxNDYxMTI1MDM0NDMiPiJGYWthIGktUElOIHVrdXZ1bGEiPC9zdHJpbmc+CkBAIC03MSw2ICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfcGF1c2VfZGVzY3JpcHRpb24iIG1zZ2lkPSI4NDU1OTc5NTQ1Mjk1MjI0MzAyIj4iSW5raW5vYmhvIHlva3VtaXN3YSBpc2lraGFzaGFuYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3BsYXlfZGVzY3JpcHRpb24iIG1zZ2lkPSI4MTQ2NDE3Nzg5NTExMTU0MDQ0Ij4iSW5raW5vYmhvIHlva3VkbGFsYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3N0b3BfZGVzY3JpcHRpb24iIG1zZ2lkPSI3NjU2MzU4NDgyOTgwOTEyMjE2Ij4iSW5raW5vYmhvIHlva3VtaXNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV90cmFuc3BvcnRfdGh1bWJzX3VwX2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDUzNTkzODEyOTY2MzkwMzE5NCI+Ik9rdXNoYXBodSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfdHJhbnNwb3J0X3RodW1ic19kb3duX2Rlc2NyaXB0aW9uIiBtc2dpZD0iODEwMTQzMzY3NzE5MjE3Nzg2MSI+IkFrdWx1bmdpbGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3RyYW5zcG9ydF9oZWFydF9kZXNjcmlwdGlvbiIgbXNnaWQ9IjIzMzY5NDMyMzI0NzQ2ODk4ODciPiJJbmhsaXppeW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF9hY2Nlc3NpYmlsaXR5X3Nob3dfYm91bmNlciIgbXNnaWQ9IjU0MjU4MzcyNzI0MTgxNzYxNzYiPiJWdWxhIHVrdXplIHVxaHViZWtlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9oaWRlX2JvdW5jZXIiIG1zZ2lkPSI3ODk2OTkyMTcxODc4MzA5MzU4Ij4iVWt1cWFsaXNhIGt1a2hhbnNlbGl3ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX2FjY2Vzc2liaWxpdHlfZGVsZXRlX3dpZGdldF9zdGFydCIgbXNnaWQ9IjQwOTY1NTA1NTI2MzQzOTE0NTEiPiJMYWhsYSBpLTx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IHVrdXplIHV5aXN1c2UuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ia2V5Z3VhcmRfYWNjZXNzaWJpbGl0eV9kZWxldGVfd2lkZ2V0X2VuZCIgbXNnaWQ9IjUwODgzMzUwNjc4MDkwOTM5MyI+Ijx4bGlmZjpnIGlkPSJXSURHRVRfSU5ERVgiPiUxJHM8L3hsaWZmOmc+IG5nZWtlIGlzdXN3ZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9zeW1ib2xfa2V5IiBtc2dpZD0iOTkyMjgwNzU2MjU2NTM2MDQyIj4iPzEyMyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InBhc3N3b3JkX2tleWJvYXJkX2xhYmVsX2FscGhhX2tleSIgbXNnaWQ9IjgwMDEwOTYxNzUxNjc0ODU2NDkiPiJBQkMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJwYXNzd29yZF9rZXlib2FyZF9sYWJlbF9hbHRfa2V5IiBtc2dpZD0iMTI4NDgyMDk0MjYyMDI4ODY3OCI+IkFMVCI8L3N0cmluZz4KQEAgLTEwNSw3ICsxMTIsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0ia2dfcHVrX2VudGVyX3Bpbl9oaW50IiBtc2dpZD0iNzg3MTYwNDUyNzQyOTYwMjAyNCI+IkZha2EgaXBoaW5pa2hvZGkgb3lpdGhhbmRheW8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19lbnRlcl9jb25maXJtX3Bpbl9oaW50IiBtc2dpZD0iMzI1Njc2MTg0NzYyNTI5OTc2Ij4iUWluaXNla2EgaXBoaW5pa2hvZGkgb3lpdGhhbmRheW8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19zaW1fdW5sb2NrX3Byb2dyZXNzX2RpYWxvZ19tZXNzYWdlIiBtc2dpZD0iODk1MDM5ODAxNjk3Njg2NTc2MiI+Ikl2dWxhIGlraGFkaSBsZS1TSU0uLi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZSIgbXNnaWQ9IjExMzkzMjQ4ODc0MTM4NDY5MTIiPiJJcGhpbmlraG9kaSBlbmdhbHVuZ2lsZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19pbnZhbGlkX3NpbV9waW5faGludCIgbXNnaWQ9Ijg3OTUxNTkzNTgxMTA2MjAwMDEiPiJUaGF5aXBoYSBpcGhpbmlraG9kaSBlbmV6aW5vbWJvbG8gZXppbmd1LTQga3V5YSBrd2V6aW5ndS04LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX2ludmFsaWRfc2ltX3B1a19oaW50IiBtc2dpZD0iNzU1MzM4ODMyNTY1NDM2OTU3NSI+IklraG9kaSB5ZS1QVUsga3VmYW5lbGUgaWJlIHlpemlub21ib2xvIGV6aW5ndS04IG5vbWEgZXppbmluZ2kuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ia2dfaW52YWxpZF9wdWsiIG1zZ2lkPSIzNjM4Mjg5NDA5Njc2MDUxMjQzIj4iRmFrYSBrYWJ1c2hhIGlraG9kaSB5ZS1QVUsgZWx1bmdpbGUuIEltaXphbW8gZXBoaW5kaXdlIGl6b2todWJhemEgdW5hcGhha2FkZSBpLVNJTS4iPC9zdHJpbmc+CkBAIC0xMjksNiArMTM1LDE5IEBACiAgICAgPHN0cmluZyBuYW1lPSJrZ19mYWlsZWRfYXR0ZW1wdHNfYWxtb3N0X2F0X2xvZ2luIiBwcm9kdWN0PSJkZWZhdWx0IiBtc2dpZD0iMTQzNzYzODE1MjAxNTU3NDgzOSI+IlVrdWxheWlzaGEgdW5nZW5pc2EgaXBoYXRoaW5pIHlha2hvIHlva3V2dWxhIG5nZW5kbGVsYSBlbmdhbHVuZ2lsZSBpemlraGF0aGkgZXppLTx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JWQ8L3hsaWZmOmc+IEVtdmEga3dlbWlueWUgaW1pemFtbyBlbmd1LTx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JWQ8L3hsaWZmOmc+LCB1em9jZWx3YSB1a3V2dWxhIGlmb25pIHlha2hvIHVzZWJlbnppc2EgdWt1bmdlbmEgbmdlbXZ1bWUga3UtR29vZ2xlXG5cbiBaYW1lIGZ1dGhpIGVtdW12YSBrd2VuZ3UtIDx4bGlmZjpnIGlkPSJOVU1CRVJfMiI+JWQ8L3hsaWZmOmc+IGFtYXNla2hvbmRpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtnX3RleHRfbWVzc2FnZV9zZXBhcmF0b3IiIHByb2R1Y3Q9ImRlZmF1bHQiIG1zZ2lkPSI0MTYwNzAwNDMzMjg3MjMzNzcxIj4iIOKAlCAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZ19yZW9yZGVyaW5nX2RlbGV0ZV9kcm9wX3RhcmdldF90ZXh0IiBtc2dpZD0iNzg5OTIwMjk3ODIwNDQzODcwOCI+IlN1c2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19waW5fY29kZV9wdWtrZWQiIG1zZ2lkPSIzMDUzMTAzOTQ1NTc2NDkyNCI+IklraG9kaSB5ZXBoaW5pa2hvZGkgeWUtU0lNIGVuZ2FsdW5naWxlIG1hbmplIGt1bWVsZSB1eGh1bWFuZSBuZW5rYW1waW5pIHllbmV0aGl3ZWtoaSB5YWtobyB1a3V2dWxhIGlkaXZheWlzaSB5YWtoby4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3Bpbl9jb2RlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iODEzNDMxMzk5Nzc5OTYzODI1NCI+IklraG9kaSB5ZXBoaW5pa2hvZGkgeWUtU0lNIGVuZ2FsdW5naWxlLCB1bmVtaXphbW8gZW5ndS08eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gZXNlbGUgbmdhcGhhbWJpIGtva3ViYSB1eGh1bWFuZSBuZW5rYW1waW5pIHllbmV0aGl3ZWtoaS4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjIyMTU3MjMzNjE1NzUzNTk0ODYiPiJJa2hvZGkgeWVwaGluaWtob2RpIHllLVNJTSBlbmdhbHVuZ2lsZSwgdW5lbWl6YW1vIGVzZWxlIGVuZ3UtPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+LiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3dyb25nX3B1a19jb2RlX2RlYWQiIG1zZ2lkPSI3MDc3NTM2ODA4MjkxMzE2MjA4Ij4iSS1TSU0gYXlpc2ViZW56aXNla2kuIFhodW1hbmEgbmVta2FtcGluaSB5ZW5ldGhpd2VraGkgeWFraG8uIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJrZ19wYXNzd29yZF93cm9uZ19wdWtfY29kZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjMyNTY4OTM2MDc1NjEwNjA2NDkiPiJJa2hvZGkgeWUtUFVLIHllLVNJTcKgZW5nYWx1bmdpbGUsIHVuZW1pemFtbyBlbmd1LTx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBlc2VsZSBuZ2FwaGFtYmkga29rdWJhIGktU0lNIGliZSBlbmdhc2ViZW56aXNla2nCoHVuYXBoYWthZGUuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI1NDc3MzA1MjI2MDI2MzQyMDM2Ij4iSWtob2RpIHllLVBVSyB5ZS1TSU0gZW5nYWx1bmdpbGUsIHVuZW1pemFtbyBlbmd1LTx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBlc2VsZSBuZ2FwaGFtYmkga29rdWJhIGktU0lNIGliYSBlbmdhc2ViZW56aXNla2kgdW5hcGhha2FkZS4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJrZ19wYXNzd29yZF9waW5fZmFpbGVkIiBtc2dpZD0iNjI2ODI4ODA5MzU1ODAzMTU2NCI+IlVtc2ViZW56aSB3ZXBoaW5pa2hvZGkgeWUtU0lNIHdlaGx1bGVraWxlISI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImtnX3Bhc3N3b3JkX3B1a19mYWlsZWQiIG1zZ2lkPSIyODM4ODI0MzY5NTAyNDU1OTg0Ij4iVW1zZWJlbnppIHdlLVBVS8KgeWUtU0lNwqB3ZWhsdWxla2lsZSEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJrZ19waW5fYWNjZXB0ZWQiIG1zZ2lkPSIxNDQ4MjQxNjczNTcwMDIwMDk3Ij4iSWtob2RpIHlhbXVrZWx3ZSEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJrZXlndWFyZF90cmFuc3BvcnRfcHJldl9kZXNjcmlwdGlvbiIgbXNnaWQ9IjgyMjkxMDg0MzAyNDU2Njk4NTQiPiJJbmtpbm9tYm8geWV0aHJla2hpIHlhbmdhcGhhbWJpbGluaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9uZXh0X2Rlc2NyaXB0aW9uIiBtc2dpZD0iNDI5OTI1ODMwMDI4Mzc3ODMwNSI+Iklua2lub2JobyB5ZXRocmVraGkgZWxhbmRlbGF5byI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImtleWd1YXJkX3RyYW5zcG9ydF9wYXVzZV9kZXNjcmlwdGlvbiIgbXNnaWQ9IjUwOTMwNzMzMzgyMzgzMTAyMjQiPiJJbmtpbm9iaG8geW9rdW1pc3dhIGlzaWtoYXNoYW5hIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtYWYvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1hZi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTBhNWEwCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtYWYvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw3OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NDY5ODM2MDc1MzE5ODMxODIxIj4iRHJ1a3dhZ2x5cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkdmFuY2VkX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjU3NjQyMjUwOTEyODk0MTU2MzIiPiJEcnVra2VyaW5zdGVsbGluZ3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJEcnVrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4iU3Rvb3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiJCZXN0ZW1taW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29waWVzIiBtc2dpZD0iMzYzNDUzMTA0MjgyMjk2ODMwOCI+IkFmc2tyaWZ0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4iUGFwaWVyZ3Jvb3R0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+IktsZXVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4iT3Jpw6tudGFzaWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiJCbGFkc3llICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiJidi4gMeKAlDUsOCwxMeKAlDEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiJEcnVrdm9vcnNrb3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+Ikluc3RhbGxlZXIgUERGLWJla3lrZXIgdmlyIHZvb3Jza291Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiJEcnVra2VycHJvZ3JhbSBoZXQgb21nZXZhbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJCbGFkc3llIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4iR2VuZXJlZXIgdWl0ZHJ1a3RhYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2FzX3BkZiIgbXNnaWQ9IjU3MTg0NTQxMTk4NDc1OTY4NTMiPiJTdG9vciBhcyBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iQWxsZSBkcnVra2Vyc+KApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4iRHJ1a2RpYWxvb2ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4iRGV1cnNvZWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4iQWxsZSBkcnVra2VycyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IlZvZWcgZGllbnMgYnkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJTb2Vra2Fzc2llIHZlcnRvb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4iU29la2thc3NpZSB3ZWdnZXN0ZWVrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iVm9lZyBkcnVra2VyIGJ5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VsZWN0X3ByaW50ZXIiIG1zZ2lkPSI3Mzg4NzYwOTM5ODczMzY4Njk4Ij4iS2llcyBkcnVra2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZm9yZ2V0X3ByaW50ZXIiIG1zZ2lkPSI1MDM1Mjg3NDk3MjkxOTEwNzY2Ij4iVmVyZ2VldCBkcnVra2VyIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IGRydWtrZXIgZ2VrcnkiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY1MzM4MTcwMzY2MDcxMjgyNDEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IGRydWtrZXJzIGdla3J5IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4iS2llcyBkcnVrZGllbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IlNvZWsgdGFucyB2aXIgZHJ1a2tlcnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJHZWVuIGRydWtrZXJzIGdla3J5IG5pZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IkRydWsgdGFucyA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iS2Fuc2VsbGVlciB0YW5zIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+IkRydWtrZXJmb3V0IGJ5IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiJEcnVra2VyIGhldCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IGdlYmxva2tlZXIiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPi11aXRkcnVrdGFhayI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4tdWl0ZHJ1a3Rha2UiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4iS2Fuc2VsbGVlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iSGVyYmVnaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iR2VlbiB2ZXJiaW5kaW5nIG1ldCBkcnVra2VyIG5pZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+Im9uYmVrZW5kIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOKAkyBuaWUgYmVza2lrYmFhciBuaWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4iS29uIG5pZSB1aXRkcnVrdGFhayBnZW5lcmVlciBuaWUiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4iU3dhcnQgZW4gd2l0IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IktsZXVyIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+IlBvcnRyZXQiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4iTGFuZHNrYXAiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IkFsbGVzIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IlJlaWt3eWR0ZSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1hbS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWFtL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlM2QxZjMKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1hbS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiLhi6jhiIXhibXhiJjhibUg4Yqg4Yi14Ymw4YiL4YiL4Y2KIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IuGLqOGKoOGJs+GImiDhiYXhipXhiaXhiK7hib0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiLhiqDhibXhiJ0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiLhiqDhiLXhiYDhiJ3hjKUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiLhiJjhi7XhiKjhiLsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4i4YmF4YyC4YuO4Ym9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiLhi6jhi4jhiKjhiYDhibUg4YiY4Yyg4YqVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4i4YmA4YiI4YidIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4i4Yqg4YmA4Yib4YiY4YygIOGMiOGNhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+IuGMiOGMvuGJvSAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4i4YiI4Yid4Yiz4YiM4Y2mIDHigJM1LDgsMTHigJMxMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4i4Yuo4YiF4Ym14YiY4Ym1IOGJheGLteGImCDhiqXhi63hibMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IuGIiOGJheGLteGImC3hiqXhi63hibMg4Yuo4Y2SIOGLsiDhiqThjY0g4YiY4YiY4YiN4Yqo4Ym7IOGLreGMq+GKkSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4i4Yuo4Yqg4Ymz4YiaIOGImOGJsOGMjeGJoOGIquGLqyDhibDhiaDhiIvhiL3hibfhiI0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4i4YyI4Y2G4Ym9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4i4Yuo4YiF4Ym14YiY4Ym1IOGIteGIq+GKlSDhiaDhiJvhiJjhipXhjKjhibUg4YiL4YutIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4i4Yql4YqV4YuwIOGNkiDhi7Ig4Yqk4Y2NIOGKoOGIteGJgOGIneGMpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiLhiIHhiInhiJ0g4Yqg4Ymz4Yia4YuO4Ym94oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiLhi6jhiIXhibXhiJjhibUg4YiY4YyI4YqT4YqbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+IuGNjeGIiOGMiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiLhiIHhiInhiJ0g4Yqg4Ymz4Yia4YuO4Ym9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4i4Yqg4YyI4YiN4YyN4YiO4Ym1IOGKoOGKreGIjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+IuGLqOGNjeGIiOGMiyDhiLPhjKXhipUg4Yut4Ymz4Yur4YiNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IuGLqOGNjeGIiOGMiyDhiLPhjKXhipUg4Ymw4Yuw4Yml4YmL4YiNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4i4Yqg4Ymz4YiaIOGKoOGKreGIjSI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9zZWxlY3RfcHJpbnRlciAoNzM4ODc2MDkzOTg3MzM2ODY5OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9mb3JnZXRfcHJpbnRlciAoNTAzNTI4NzQ5NzI5MTkxMDc2NikgLS0+CisgICAgPHNraXAgLz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiDhiqDhibPhiJog4Ymw4YyI4Yqd4Ym34YiNIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiDhiqDhibPhiJrhi47hib0g4Ymw4YyI4Yqd4Ymw4YuL4YiNIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4i4Yuo4YiF4Ym14YiY4Ym1IOGKoOGMiOGIjeGMjeGIjuGJtSDhi63hiJ3hiKjhjKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IuGKoOGJs+GImuGLjuGJveGKlSDhiaDhiJjhjYjhiIjhjI0g4YiL4YutIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4i4Yid4YqV4YidIOGKoOGJs+GImuGLjuGJvSDhiqDhiI3hibDhjIjhipnhiJ0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyOTU5MDM5NTc3NjI0NDczNjIiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+4YqVIOGJoOGIm+GJsOGInSDhiIvhi60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+4YqVIOGJoOGImOGJsOGLjSDhiIvhi60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+IuGLqOGKoOGJs+GImiDhiLXhiIXhibDhibUgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IuGKoOGJs+GImiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+4YqVIOGKoOGMjeGLt+GIjSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IOGLqOGIheGJteGImOGJtSDhiLXhiKsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg3NDY2MTEyNjQ3MzQyMjI4NjUiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IOGLqOGIheGJteGImOGJtSDhiLXhiKvhi47hib0iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4i4Yiw4Yit4YudIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiLhiqXhipXhi7DhjIjhipMg4YyA4Yid4YitIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fY29ubmVjdGlvbl90b19wcmludGVyIiBtc2dpZD0iMjE1OTI0NjkxNTk3NzI4MjcyOCI+IuGKqOGKoOGJs+GImiDhjIvhiK0g4Yid4YqV4YidIOGMjeGKleGKmeGKkOGJtSDhi6jhiIjhiJ0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiLhiqDhi63hibPhi4jhiYXhiJ0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIOGKoOGLreGMiOGKneGInSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiLhi6jhiIXhibXhiJjhibUg4Yi14Yir4YqVIOGIm+GImOGKleGMqOGJtSDhiqDhiI3hibDhibvhiIjhiJ0iPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4i4Yyl4YmB4YitIOGKpeGKkyDhipDhjK0iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4i4YmA4YiI4YidIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+IuGLqOGJgeGInSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiLhi6jhi4jhiK3hi7UiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IuGIgeGIieGInSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiLhiJ3hjKXhjKXhipAg4YyI4Yy94YmzIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWFyL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtYXIvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWJlMDNjZAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWFyL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNzkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IlByaW50IFNwb29sZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4i2KXYudiv2KfYr9in2Kog2KfZhNi32KfYqNi52KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiLYt9io2KfYudipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4i2K3Zgdi4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4i2KfZhNmI2KzZh9ipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29waWVzIiBtc2dpZD0iMzYzNDUzMTA0MjgyMjk2ODMwOCI+Iti52K/YryDYp9mE2YbYs9iuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiLYrdis2YUg2KfZhNmI2LHZgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+Itin2YTZhNmI2YYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiLYp9mE2KfYqtis2KfZhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+Itin2YTYtdmB2K3Yp9iqICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiLYudmE2Ykg2LPYqNmK2YQg2KfZhNmF2KvYp9mE2IwgMeKAlDXYjDjYjDEx4oCUMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+ItmF2LnYp9mK2YbYqSDZgtio2YQg2KfZhNi32KjYp9i52KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IuKAj9iq2KvYqNmK2Kog2KjYsdmG2KfZhdisINi52LHYtiBQREYg2YTZhNmF2LnYp9mK2YbYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4i2KrYudi32ZHZhCDYqti32KjZitmCINin2YTYt9io2KfYudipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+Itin2YTYtdmB2K3Yp9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4i2KzYp9ix2Y0g2KXZhti02KfYoSDZhdmH2YXYqSDYp9mE2LfYqNin2LnYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IuKAj9it2YHYuCDYqNiq2YbYs9mK2YIgUERGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+Itis2YXZiti5INin2YTYt9in2KjYudin2KrigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+ItmF2LHYqNi5INit2YjYp9ixINin2YTYt9io2KfYudipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+Itio2K3YqyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiLYrNmF2YrYuSDYp9mE2LfYp9io2LnYp9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4i2KXYttin2YHYqSDYrtiv2YXYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+Itiq2YUg2KXYuNmH2KfYsSDZhdix2KjYuSDYp9mE2KjYrdirIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+Itiq2YUg2KXYrtmB2KfYoSDZhdix2KjYuSDYp9mE2KjYrdirIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4i2KXYttin2YHYqSDYt9in2KjYudipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VsZWN0X3ByaW50ZXIiIG1zZ2lkPSI3Mzg4NzYwOTM5ODczMzY4Njk4Ij4i2K3Yr9ivINin2YTYt9in2KjYudipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZm9yZ2V0X3ByaW50ZXIiIG1zZ2lkPSI1MDM1Mjg3NDk3MjkxOTEwNzY2Ij4i2KrYrNin2YfZhCDYp9mE2LfYp9io2LnYqSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4i2KrZhSDYp9mE2LnYq9mI2LEg2LnZhNmJIDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4g2LfYp9io2LnYqSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+Itiq2YUg2KfZhNi52KvZiNixINi52YTZiSA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+INmF2YYg2KfZhNi32KfYqNi52KfYqiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+Itin2K7YqtixINiu2K/ZhdipINi32KjYp9i52KkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+Itin2YTYqNit2Ksg2LnZhiDYt9in2KjYudin2KoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiLZhNmFINmK2KrZhSDYp9mE2LnYq9mI2LEg2LnZhNmJINi32KfYqNi52KfYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+Itis2KfYsdmNINi32KjYp9i52KkgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+Itis2KfYsdmNINil2YTYutin2KEgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4i2K7Yt9inINmB2Yog2KfZhNi32KfYqNi52KkgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+Itix2YHYttiqINin2YTYt9in2KjYudipIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiDZhdmH2YXYqSDYt9io2KfYudipIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiDZhdmGINmF2YfYp9mFINin2YTYt9io2KfYudipIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNDM3MzY3NDEwNzI2NzE0MTg4NSI+Itil2YTYutin2KEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+Itil2LnYp9iv2Kkg2KrYtNi62YrZhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiLZhNinINmK2YjYrNivINin2KrYtdin2YQg2KjYp9mE2LfYp9io2LnYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+Iti62YrYsSDZhdi52LHZiNmBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOKAkyDYutmK2LEg2YXYqtin2K3YqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiLYqti52LDYsSDYpdmG2LTYp9ihINi52YXZhNmK2Kkg2KfZhNi32KjYp9i52KkiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4i2KPYqNmK2LYg2YjYo9iz2YjYryI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiLYp9mE2YTZiNmGIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+Iti52YXZiNiv2YoiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4i2KPZgdmC2YrYqSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4i2KfZhNmD2YQiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4i2KfZhNmG2LfYp9mCIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWJlL2FycmF5cy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1iZS9hcnJheXMueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDAyNzhjLi4wMDAwMDAwCi0tLSBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWJlL2FycmF5cy54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotCi0gICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotCi0gICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0KLSAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS0tPgotPHJlc291cmNlcz4KLQotICAgIDxzdHJpbmctYXJyYXkgbmFtZT0icGRmX3ByaW50ZXJfbWVkaWFfc2l6ZXMiIHRyYW5zbGF0YWJsZT0iZmFsc2UiPgotICAgICAgICA8aXRlbT5OQV9MRVRURVI8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPk5BX0dPVlRfTEVUVEVSPC9pdGVtPgotICAgICAgICA8aXRlbT5OQV9MRUdBTDwvaXRlbT4KLSAgICAgICAgPGl0ZW0+TkFfSlVOSU9SX0xFR0FMPC9pdGVtPgotICAgICAgICA8aXRlbT5OQV9MRURHRVI8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPk5BX1RBQkxPSUQ8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPk5BX0lOREVYXzNYNTwvaXRlbT4KLSAgICAgICAgPGl0ZW0+TkFfSU5ERVhfNFg2PC9pdGVtPgotICAgICAgICA8aXRlbT5OQV9JTkRFWF81WDg8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPk5BX01PTkFSQ0g8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPk5BX1FVQVJUTzwvaXRlbT4KLSAgICAgICAgPGl0ZW0+TkFfRk9PTFNDQVA8L2l0ZW0+Ci0gICAgPC9zdHJpbmctYXJyYXk+Ci0KLTwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtYmcvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1iZy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWI5NmYzMgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWJnL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+ItCh0L/Rg9C70LXRgCDQt9CwINC/0LXRh9Cw0YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4i0J3QsNGB0YLRgNC+0LnQutC4INC90LAg0L/RgNC40L3RgtC10YDQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2J1dHRvbiIgbXNnaWQ9IjY0NTE2NDU2NjI3MTI0NjI2OCI+ItCf0LXRh9Cw0YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiLQl9Cw0L/QsNC30LLQsNC90LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiLQnNC10YHRgtC+0L3QsNC30L3QsNGH0LXQvdC40LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4i0JrQvtC/0LjRjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4i0KDQsNC30LzQtdGAINC90LAg0YXQsNGA0YLQuNGP0YLQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+ItCm0LLRj9GCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4i0J7RgNC40LXQvdGC0LDRhtC40Y8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiLQodGC0YDQsNC90LjRhtC4ICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiLQvdCw0L/RgC4gMeKAkzUsIDgsIDEx4oCTMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+ItCS0LjQt9GD0LDQu9C40LfQsNGG0LjRjyDQt9CwINC/0LXRh9Cw0YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+ItCY0L3RgdGC0LDQu9C40YDQsNC90LUg0L3QsCDQstC40LfRg9Cw0LvQuNC30LDRgtC+0YAg0L3QsCBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+ItCf0L7Qu9GD0YfQuCDRgdC1INGB0YDQuNCyINCyINC/0YDQuNC70L7QttC10L3QuNC10YLQviDQt9CwINC+0YLQv9C10YfQsNGC0LLQsNC90LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4i0KHRgtGA0LDQvdC40YbQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+ItCX0LDQtNCw0L3QuNC10YLQviDQt9CwINC/0LXRh9Cw0YIg0YHQtSDQs9C10L3QtdGA0LjRgNCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4i0JfQsNC/0LDQt9Cy0LDQvdC1INC60LDRgtC+IFBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiLQktGB0LjRh9C60Lgg0L/RgNC40L3RgtC10YDQuOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4i0JTQuNCw0LvQvtCz0L7QsiDQv9GA0L7Qt9C+0YDQtdGGINC30LAg0L7RgtC/0LXRh9Cw0YLQstCw0L3QtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiLQotGK0YDRgdC10L3QtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiLQktGB0LjRh9C60Lgg0L/RgNC40L3RgtC10YDQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+ItCU0L7QsdCw0LLRj9C90LUg0L3QsCDRg9GB0LvRg9Cz0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiLQn9C+0LvQtdGC0L4g0LfQsCDRgtGK0YDRgdC10L3QtSDQtSDQv9C+0LrQsNC30LDQvdC+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+ItCf0L7Qu9C10YLQviDQt9CwINGC0YrRgNGB0LXQvdC1INC1INGB0LrRgNC40YLQviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+ItCU0L7QsdCw0LLRj9C90LUg0L3QsCDQv9GA0LjQvdGC0LXRgCI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9zZWxlY3RfcHJpbnRlciAoNzM4ODc2MDkzOTg3MzM2ODY5OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9mb3JnZXRfcHJpbnRlciAoNTAzNTI4NzQ5NzI5MTkxMDc2NikgLS0+CisgICAgPHNraXAgLz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4i0J3QsNC80LXRgNC10L0g0LUgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiDQv9GA0LjQvdGC0LXRgCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+ItCd0LDQvNC10YDQtdC90Lgg0YHQsCA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+INC/0YDQuNC90YLQtdGA0LAiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiLQmNC30LHQuNGA0LDQvdC1INC90LAg0YPRgdC70YPQs9CwINC30LAg0L7RgtC/0LXRh9Cw0YLQstCw0L3QtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4i0KLRitGA0YHRj9GCINGB0LUg0L/RgNC40L3RgtC10YDQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+ItCd0Y/QvNCwINC90LDQvNC10YDQtdC90Lgg0L/RgNC40L3RgtC10YDQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IuKAnjx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz7igJwg0YHQtSDQvtGC0L/QtdGH0LDRgtCy0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiLigJ48eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+4oCcINGB0LUg0LDQvdGD0LvQuNGA0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+ItCT0YDQtdGI0LrQsCDQsiDQv9GA0LjQvdGC0LXRgNCwINC/0YDQuCDigJ48eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+4oCcIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4i0J/RgNC40L3RgtC10YDRitGCINCx0LvQvtC60LjRgNCwINC/0YDQuCDigJ48eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+4oCcIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+ItCX0LDQtNCw0L3QuNC1INC30LAg0L7RgtC/0LXRh9Cw0YLQstCw0L3QtTogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+ItCX0LDQtNCw0L3QuNGPINC30LAg0L7RgtC/0LXRh9Cw0YLQstCw0L3QtTogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiLQntGC0LrQsNC3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiLQoNC10YHRgtCw0YDRgtC40YDQsNC90LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4i0J3Rj9C80LAg0LLRgNGK0LfQutCwINGBINC/0YDQuNC90YLQtdGA0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiLQvdGP0LzQsCDQtNCw0L3QvdC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOKAkyDQvdC1INC1INC90LDQu9C40YbQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiLQl9Cw0LTQsNC90LjQtdGC0L4g0LfQsCDQvtGC0L/QtdGH0LDRgtCy0LDQvdC1INC90LUg0LzQvtC20LAg0LTQsCDRgdC1INCz0LXQvdC10YDQuNGA0LAiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4i0KfQtdGA0L3Qvi3QsdGP0LvQviI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiLQptCy0LXRgtC90L4iPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4i0JLQtdGA0YLQuNC60LDQu9C90L4iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4i0KXQvtGA0LjQt9C+0L3RgtCw0LvQvdC+IjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiLQktGB0LjRh9C60LgiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4i0J/QvtGA0LXQtNC40YbQsCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1jYS9hcnJheXMueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtY2EvYXJyYXlzLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQwMjc4Yy4uMDAwMDAwMAotLS0gYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1jYS9hcnJheXMueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLQotICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLQotICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotCi0gICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0tLT4KLTxyZXNvdXJjZXM+Ci0KLSAgICA8c3RyaW5nLWFycmF5IG5hbWU9InBkZl9wcmludGVyX21lZGlhX3NpemVzIiB0cmFuc2xhdGFibGU9ImZhbHNlIj4KLSAgICAgICAgPGl0ZW0+TkFfTEVUVEVSPC9pdGVtPgotICAgICAgICA8aXRlbT5OQV9HT1ZUX0xFVFRFUjwvaXRlbT4KLSAgICAgICAgPGl0ZW0+TkFfTEVHQUw8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPk5BX0pVTklPUl9MRUdBTDwvaXRlbT4KLSAgICAgICAgPGl0ZW0+TkFfTEVER0VSPC9pdGVtPgotICAgICAgICA8aXRlbT5OQV9UQUJMT0lEPC9pdGVtPgotICAgICAgICA8aXRlbT5OQV9JTkRFWF8zWDU8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPk5BX0lOREVYXzRYNjwvaXRlbT4KLSAgICAgICAgPGl0ZW0+TkFfSU5ERVhfNVg4PC9pdGVtPgotICAgICAgICA8aXRlbT5OQV9NT05BUkNIPC9pdGVtPgotICAgICAgICA8aXRlbT5OQV9RVUFSVE88L2l0ZW0+Ci0gICAgICAgIDxpdGVtPk5BX0ZPT0xTQ0FQPC9pdGVtPgotICAgIDwvc3RyaW5nLWFycmF5PgotCi08L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWNhL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtY2Evc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQyOWRkNQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWNhL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNzkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+Ikdlc3QuIGN1ZXMgaW1wci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4iQ29uZmlndXJhY2nDsyBpbXByZXNzb3JhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4iSW1wcmltZWl4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4iRGVzYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IkRlc3RpbmFjacOzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29waWVzIiBtc2dpZD0iMzYzNDUzMTA0MjgyMjk2ODMwOCI+IkPDsnBpZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+Ik1pZGEgZGVsIHBhcGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4iQ29sb3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiJPcmllbnRhY2nDsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+IlDDoGdpbmVzICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiJwLiBleC4gMS01LCA4LCAxMS0xMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4iVmlzdWFsaXR6YWNpw7MgcHLDqHZpYSBpbXByZXNzacOzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiJJbnN0YWzCt2xhIHVuIGxlY3RvciBkZSBQREYgcGVyIGEgdmlzdWFsaXR6LiBwcsOodmlhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiJMXCdhcGxpY2FjacOzIGRcJ2ltcHJlc3Npw7MgaGEgZmFsbGF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+IlDDoGdpbmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4iR2VuZXJhbnQgdGFzY2EgaW1wcmVzc2nDsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IkRlc2EgY29tIGEgUERGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+IlRvdGVzIGxlcyBpbXByZXNzb3Jlc+KApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4iRGnDoGxlZyBkXCdpbXByZXNzacOzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+IkNlcmNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IlRvdGVzIGxlcyBpbXByZXNzb3JlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IkFmZWdlaXggdW4gc2VydmVpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4iRXMgbW9zdHJhIGVsIHF1YWRyZSBkZSBjZXJjYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiJTXCdoYSBhbWFnYXQgZWwgcXVhZHJlIGRlIGNlcmNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iQWZlZ2VpeCB1bmEgaW1wcmVzc29yYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlbGVjdF9wcmludGVyIiBtc2dpZD0iNzM4ODc2MDkzOTg3MzM2ODY5OCI+IlNlbGVjY2lvbmEgdW5hIGltcHJlc3NvcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9mb3JnZXRfcHJpbnRlciIgbXNnaWQ9IjUwMzUyODc0OTcyOTE5MTA3NjYiPiJPYmxpZGEgbGEgaW1wcmVzc29yYSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4iU1wnaGEgdHJvYmF0IDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gaW1wcmVzc29yYSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+IlNcJ2hhbiB0cm9iYXQgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBpbXByZXNzb3JlcyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IlNlbGVjY2nDsyBkZWwgc2VydmVpIGRcJ2ltcHJlc3Npw7MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IkNlcmNhIGRcJ2ltcHJlc3NvcmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4iTm8gc1wnaGEgdHJvYmF0IGNhcCBpbXByZXNzb3JhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4iU1wnZXN0w6AgaW1wcmltaW50IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiJTXCdlc3TDoCBjYW5jZWzCt2xhbnQgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4iRXJyb3IgZFwnaW1wcmVzc29yYSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4iSW1wcmVzc29yYSBibG9xdWVqYWRhIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iVGFzY2EgZFwnaW1wcmVzc2nDsyBwZXIgYSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iVGFzcXVlcyBkXCdpbXByZXNzacOzIHBlciBhIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4iQ2FuY2VswrdsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iUmVpbmljaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iTm8gaGkgaGEgY29ubmV4acOzIGFtYiBsYSBpbXByZXNzb3JhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4iZGVzY29uZWd1dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPjogbm8gZGlzcG9uaWJsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJObyBzXCdoYSBwb2d1dCBnZW5lcmFyIGxhIHRhc2NhIGRcJ2ltcHJlc3Npw7MiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4iQmxhbmMgaSBuZWdyZSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiJDb2xvciI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiJWZXJ0aWNhbCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJIb3JpdHpvbnRhbCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4iVG90cyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiJJbnRlcnZhbCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1jcy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWNzL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4NWVhOWIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1jcy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJQcmludCBTcG9vbGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+Ik5hc3RhdmVuw60gdGlza8Ohcm55Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4iVGlzayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IlVsb8W+aXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiJDw61sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29waWVzIiBtc2dpZD0iMzYzNDUzMTA0MjgyMjk2ODMwOCI+IktvcGllIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiJWZWxpa29zdCBwYXDDrXJ1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4iQmFydmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiJPcmllbnRhY2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiJTVFLDgU5LWSAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4ibmFwxZkuIDHigJM1LCA4LCAxMeKAkzEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiJOw6FobGVkIHRpc2t1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiJOYWluc3RhbG92YXQgcHJvaGzDrcW+ZcSNIFBERiAodW1vxb5uw60gbsOhaGxlZCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IkFwbGlrYWNlIHRpc2t1IHNlbGhhbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4iU3Ryw6Fua3kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiJHZW5lcm92w6Fuw60gw7psb2h5IHRpc2t1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iVWxvxb5pdCB2ZSBmb3Jtw6F0dSBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iVsWhZWNobnkgdGlza8Ohcm554oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiJEaWFsb2cgdGlza3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4iSGxlZGF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IlbFoWVjaG55IHRpc2vDoXJueSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IlDFmWlkYXQgc2x1xb5idSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+IlZ5aGxlZMOhdmFjw60gcG9sZSBzZSB6b2JyYXp1amUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4iVnlobGVkw6F2YWPDrSBwb2xlIGplIHNrcnl0byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+IlDFmWlkYXQgdGlza8Ohcm51Ijwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiJQb8SNZXQgbmFsZXplbsO9Y2ggdGlza8OhcmVuOiA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4iUG/EjWV0IG5hbGV6ZW7DvWNoIHRpc2vDoXJlbjogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+Ilp2b2x0ZSBzbHXFvmJ1IHRpc2t1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJWeWhsZWTDoXbDoW7DrSB0aXNrw6FyZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJOZWJ5bHkgbmFsZXplbnkgxb7DoWRuw6kgdGlza8Ohcm55Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4iVGlzayDDumxvaHkgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+IlJ1xaFlbsOtIMO6bG9oeSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiJDaHliYSB0aXNrw6FybnkgdSDDumxvaHkgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IlRpc2vDoXJuYSBibG9rdWplIMO6bG9odSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+IlBvxI1ldCB0aXNrb3bDvWNoIMO6bG9oOiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iUG/EjWV0IHRpc2tvdsO9Y2ggw7psb2g6IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4iWnJ1xaFpdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iUmVzdGFydG92YXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iTmVsemUgc2UgcMWZaXBvaml0IGsgdGlza8Ohcm7EmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+Im5lem7DoW3DqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiDigJMgbmVuw60gayBkaXNwb3ppY2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4iVGlza292b3Ugw7psb2h1IG5lbHplIHZ5dHZvxZlpdCI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiLEjGVybm9iw61sZSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiJCYXJldm7EmyI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiJOYSB2w73FoWt1IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+Ik5hIMWhw63FmWt1IjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiJWxaFlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IlJvenNhaCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1kYS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWRhL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MTkwYjQKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1kYS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJQcmludCBTcG9vbGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IlByaW50ZXJpbmRzdGlsbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4iVWRza3JpdiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IkdlbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IkRlc3RpbmF0aW9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29waWVzIiBtc2dpZD0iMzYzNDUzMTA0MjgyMjk2ODMwOCI+IktvcGllciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4iUGFwaXJzdMO4cnJlbHNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4iRmFydmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiJSZXRuaW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iU2lkZXIgKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+ImYuZWtzLiAxLTUsOCwxMS0xMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4iVmlzIHVkc2tyaWZ0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiJJbnN0YWxsZXIgZXQgUERGLXZpc25pbmdzcHJvZy4gZm9yIGF0IHNlIGVrc2VtcGVsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiJVZHNrcml2bmluZ3NhcHAgZ2lrIG5lZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJTaWRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+IlVkc2tyaWZ0ZW4gZ2VuZXJlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IkdlbSBzb20gUERGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+IkFsbGUgcHJpbnRlcmUuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+IlVkc2tyaWZ0c2RpYWxvZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJTw7hnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IkFsbGUgcHJpbnRlcmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiJUaWxmw7hqIHRqZW5lc3RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4iU8O4Z2VmZWx0ZXQgdmlzZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4iU8O4Z2VmZWx0ZXQgZXIgc2tqdWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iVGlsZsO4aiBwcmludGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VsZWN0X3ByaW50ZXIiIG1zZ2lkPSI3Mzg4NzYwOTM5ODczMzY4Njk4Ij4iVsOmbGcgcHJpbnRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2ZvcmdldF9wcmludGVyIiBtc2dpZD0iNTAzNTI4NzQ5NzI5MTkxMDc2NiI+IkdsZW0gcHJpbnRlciI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4iRGVyIGJsZXYgZnVuZGV0IDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gcHJpbnRlciI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+IkRlciBibGV2IGZ1bmRldCA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IHByaW50ZXJlIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4iVsOmbGcgdWRza3JpZnRzdGplbmVzdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IlPDuGdlciBlZnRlciBwcmludGVyZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+IkRlciBibGV2IGlra2UgZnVuZGV0IG5vZ2VuIHByaW50ZXJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiB1ZHNrcml2ZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IGFubnVsbGVyZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+IlVkc2tyaWZ0ZW4gPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiBtaXNseWtrZWRlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IlByaW50ZXJlbiBoYXIgYmxva2VyZXQgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+LXVkc2tyaWZ0c2pvYiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4tdWRza3JpZnRzam9icyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiJBbm51bGxlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iR2Vuc3RhcnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iSW5nZW4gZm9yYmluZGVsc2UgdGlsIHByaW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJ1a2VuZHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIGlra2UgdGlsZ8OmbmdlbGlnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+IkRlciBrdW5uZSBpa2tlIGdlbmVyZXJlcyBldCB1ZHNrcmlmdHNqb2IiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4iU29ydC9odmlkIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IkZhcnZlIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+IlBvcnRyw6Z0IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+IkxhbmRza2FiIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiJBbGxlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IkludGVydmFsIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWRlL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtZGUvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjEyODllMAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWRlL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IkRydWNrLVNwb29sZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4iRHJ1Y2tlcmVpbnN0ZWxsdW5nZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJEcnVja2VuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4iU3BlaWNoZXJuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4iWmllbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiJFeGVtcGxhcmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+IlBhcGllcmdyw7bDn2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiJGYXJiZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+IkF1c3JpY2h0dW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iU2VpdGVuICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiJ6LsKgQi4gMeKAkzUsIDgsIDEx4oCTMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IlZvcnNjaGF1IGRydWNrZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IlBERi1WaWV3ZXIgZsO8ciBWb3JzY2hhdSBpbnN0YWxsaWVyZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IkRydWNrLUFwcCBhYmdlc3TDvHJ6dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJTZWl0ZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiJEcnVja2F1ZnRyYWcgd2lyZCBnZW5lcmllcnQuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2FzX3BkZiIgbXNnaWQ9IjU3MTg0NTQxMTk4NDc1OTY4NTMiPiJBbHMgUERGIHNwZWljaGVybiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiJBbGxlIERydWNrZXLigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+IkRydWNrZGlhbG9nZmVsZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJTdWNoZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4iQWxsZSBEcnVja2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4iRGllbnN0IGhpbnp1ZsO8Z2VuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4iU3VjaGZlbGQgYW5nZXplaWd0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IlN1Y2hmZWxkIGF1c2dlYmxlbmRldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+IkRydWNrZXIgaGluenVmw7xnZW4iPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfc2VsZWN0X3ByaW50ZXIgKDczODg3NjA5Mzk4NzMzNjg2OTgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfZm9yZ2V0X3ByaW50ZXIgKDUwMzUyODc0OTcyOTE5MTA3NjYpIC0tPgorICAgIDxza2lwIC8+CisgIDxwbHVyYWxzIG5hbWU9InByaW50X3NlYXJjaF9yZXN1bHRfY291bnRfdXR0ZXJhbmNlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDQ4NDk1MzI2MDY4NTk2NDI1MiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gRHJ1Y2tlciBnZWZ1bmRlbiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gRHJ1Y2tlciBnZWZ1bmRlbiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IkRydWNrZGllbnN0IGF1c3fDpGhsZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IlN1Y2hlIG5hY2ggRHJ1Y2tlcm4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJLZWluZSBEcnVja2VyIGdlZnVuZGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiB3aXJkIGdlZHJ1Y2t0Li4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiB3aXJkIGFiZ2Vicm9jaGVuLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiJEcnVja2VyZmVobGVyIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiJEcnVja2VyIGhhdCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IGJsb2NraWVydC4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iRHJ1Y2thdWZ0cmFnIFwiPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPlwiIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iRHJ1Y2thdWZ0csOkZ2UgXCI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+XCIiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4iQWJicmVjaGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiJOZXUgc3RhcnRlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiJLZWluZSBWZXJiaW5kdW5nIHp1bSBEcnVja2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4idW5iZWthbm50Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOKAkyBuaWNodCB2ZXJmw7xnYmFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+IkRydWNrYXVmdHJhZyBrb25udGUgbmljaHQgZ2VuZXJpZXJ0IHdlcmRlbi4iPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4iU2Nod2Fyei13ZWnDnyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiJGYXJiZSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiJIb2NoZm9ybWF0IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+IlF1ZXJmb3JtYXQiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IkFsbGUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4iQmVyZWljaCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1lbC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWVsL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5NWU3MzAKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1lbC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiLOm86/zrPOuc+DzrzOuc66z4wgzr/Phc+BzqzPgiDOtc66z4TPjc+Az4nPg863z4IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4izqHPhc64zrzOr8+DzrXOuc+CIM61zrrPhM+Fz4DPic+Ezq4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiLOlc66z4TPjc+Az4nPg863Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4izpHPgM6/zrjOrs66zrXPhc+DzrciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiLOoM+Bzr/Ov8+BzrnPg868z4zPgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiLOkc69z4TOr86zz4HOsc+GzrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+Is6czq3Os861zrjOv8+CIM+HzrHPgc+EzrnOv8+NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4izqfPgc+OzrzOsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+Is6gz4HOv8+DzrHOvc6xz4TOv867zrnPg868z4zPgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+Is6jzrXOu86vzrTOtc+CICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiLPgC7Phy4gMS01LDgsMTEtMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+Is6gz4HOv861z4DOuc+DzrrPjM+AzrfPg863IM61zrrPhM+Nz4DPic+DzrfPgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxfZm9yX3ByaW50X3ByZXZpZXciIG1zZ2lkPSI2MzY2MzAzOTk3Mzg1NTA5MzMyIj4izpXOs866zrHPhM6xz4PPhM6uz4PPhM61IM+Ezr8gUERGIHZpZXdlciDOs865zrEgz4DPgc6/zrXPgM65z4POus+Mz4DOt8+DzrciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+Is6UzrnOsc66zr/PgM6uIM67zrXOuc+Ezr/Phc+BzrPOr86xz4IgzrXPhs6xz4HOvM6/zrPOrs+CIM61zrrPhM+Nz4DPic+DzrfPgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiLOo861zrvOr860zrXPgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+Is6UzrfOvM65zr/Phc+BzrPOr86xIM61z4HOs86xz4POr86xz4IgzrXOus+Ez43PgM+Jz4POt8+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4izpHPgM6/zrjOrs66zrXPhc+Dzrcgz4nPgiBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4izozOu86/zrkgzr/OuSDOtc66z4TPhc+Az4nPhM6tz4LigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+Is6gzrvOsc6vz4POuc6/IM60zrnOsc67z4zOs86/z4UgzrXOus+Ez43PgM+Jz4POt8+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+Is6Rzr3Osc62zq7PhM63z4POtyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiLOjM67zr/OuSDOv865IM61zrrPhM+Fz4DPic+Ezq3PgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+Is6gz4HOv8+DzrjOrs66zrcgz4XPgM63z4HOtc+Dzq/Osc+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4izpXOvM+GzqzOvc65z4POtyDPgM67zrHOuc+Dzq/Ov8+FIM6xzr3Osc62zq7PhM63z4POt8+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+Is6Rz4DPjM66z4HPhc+Izrcgz4DOu86xzrnPg86vzr/PhSDOsc69zrHOts6uz4TOt8+DzrfPgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+Is6gz4HOv8+DzrjOrs66zrcgzrXOus+Ez4XPgM+Jz4TOriI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlbGVjdF9wcmludGVyIiBtc2dpZD0iNzM4ODc2MDkzOTg3MzM2ODY5OCI+Is6Vz4DOuc67zr/Os86uIM61zrrPhM+Fz4DPic+Ezq4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9mb3JnZXRfcHJpbnRlciIgbXNnaWQ9IjUwMzUyODc0OTcyOTE5MTA3NjYiPiLOlM65zrHOs8+BzrHPhs6uIM61zrrPhM+Fz4DPic+Ezq4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InByaW50X3NlYXJjaF9yZXN1bHRfY291bnRfdXR0ZXJhbmNlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDQ4NDk1MzI2MDY4NTk2NDI1MiI+Is6Sz4HOrc64zrfOus61IDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gzrXOus+Ez4XPgM+Jz4TOrs+CIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4izpLPgc6tzrjOt866zrHOvSA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IM61zrrPhM+Fz4DPic+Ezq3PgiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+Is6Vz4DOuc67zq3Ovs+EzrUgz4XPgM63z4HOtc+Dzq/OsSDOtc66z4TPjc+Az4nPg863z4IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+Is6Rzr3Osc62zq7PhM63z4POtyDOs865zrEgzrXOus+Ez4XPgM+Jz4TOrc+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4izpTOtc69IM6yz4HOrc64zrfOus6xzr0gzrXOus+Ez4XPgM+Jz4TOrc+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4izpXOus+Ez43PgM+Jz4POtyA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4izpHOus+Nz4HPic+DzrcgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4izqPPhs6szrvOvM6xIM61zrrPhM+Fz4DPic+Ezq4gPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+Is6fIM61zrrPhM+Fz4DPic+Ezq7PgiDOsc+Azq3Ous67zrXOuc+DzrUgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiLOtc+BzrPOsc+Dzq/OsSDOtc66z4TPjc+Az4nPg863z4IgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+Is61z4HOs86xz4POr861z4IgzrXOus+Ez43PgM+Jz4POt8+CIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4izpHOus+Nz4HPic+DzrciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+Is6Vz4DOsc69zrXOus66zq/Ovc63z4POtyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiLOlM61zr0gz4XPgM6sz4HPh861zrkgz4PPjc69zrTOtc+DzrcgzrzOtSDOtc66z4TPhc+Az4nPhM6uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4izqzOs869z4nPg8+Ezr8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIM68zrcgzrTOuc6xzrjOrc+DzrnOvM6/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+Is6UzrXOvSDOrs+EzrHOvSDOtM+Fzr3Osc+Ezq4gzrcgzrTOt868zrnOv8+Fz4HOs86vzrEgzrXPgc6zzrHPg86vzrHPgiDOtc66z4TPjc+Az4nPg863z4IiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4izpHPg8+Az4HPjM68zrHPhc+Bzr8iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4izqfPgc+OzrzOsSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiLOoM6/z4HPhM+BzrHOr8+Ezr8iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4izp/Pgc65zrbPjM69z4TOuc6xIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiLOjM67zrEiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4izpXPjc+Bzr/PgiI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1lbi1yR0Ivc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1lbi1yR0Ivc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjczNzJmOAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWVuLXJHQi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJQcmludCBTcG9vbGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IlByaW50ZXIgc2V0dGluZ3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJQcmludCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IlNhdmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiJEZXN0aW5hdGlvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiJDb3BpZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+IlBhcGVyIFNpemUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiJDb2xvdXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiJPcmllbnRhdGlvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+IlBhZ2VzICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiJlLmcuIDHigJM1LDgsMTHigJMxMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4iUHJpbnQgcHJldmlldyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxfZm9yX3ByaW50X3ByZXZpZXciIG1zZ2lkPSI2MzY2MzAzOTk3Mzg1NTA5MzMyIj4iSW5zdGFsbCBQREYgdmlld2VyIGZvciBwcmV2aWV3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiJQcmludGluZyBhcHAgY3Jhc2hlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJQYWdlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+IkdlbmVyYXRpbmcgcHJpbnQgam9iIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iU2F2ZSBhcyBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iQWxsIHByaW50ZXJz4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiJQcmludCBkaWFsb2d1ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJTZWFyY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4iQWxsIHByaW50ZXJzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4iQWRkIHNlcnZpY2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJTZWFyY2ggYm94IHNob3duIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IlNlYXJjaCBib3ggaGlkZGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iQWRkIHByaW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWxlY3RfcHJpbnRlciIgbXNnaWQ9IjczODg3NjA5Mzk4NzMzNjg2OTgiPiJTZWxlY3QgcHJpbnRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2ZvcmdldF9wcmludGVyIiBtc2dpZD0iNTAzNTI4NzQ5NzI5MTkxMDc2NiI+IkZvcmdldCBwcmludGVyIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IHByaW50ZXIgZm91bmQiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY1MzM4MTcwMzY2MDcxMjgyNDEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IHByaW50ZXJzIGZvdW5kIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4iQ2hvb3NlIHByaW50IHNlcnZpY2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IlNlYXJjaGluZyBmb3IgcHJpbnRlcnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJObyBwcmludGVycyBmb3VuZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IlByaW50aW5nIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiJDYW5jZWxsaW5nIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+IlByaW50ZXIgZXJyb3IgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IlByaW50ZXIgYmxvY2tlZCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4gcHJpbnQgam9iIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiBwcmludCBqb2JzIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNDM3MzY3NDEwNzI2NzE0MTg4NSI+IkNhbmNlbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iUmVzdGFydCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiJObyBjb25uZWN0aW9uIHRvIHByaW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJ1bmtub3duIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOKAkyB1bmF2YWlsYWJsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJDb3VsZG5cJ3QgZ2VuZXJhdGUgcHJpbnQgam9iIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+IkJsYWNrICZhbXA7IFdoaXRlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IkNvbG91ciI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiJQb3J0cmFpdCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJMYW5kc2NhcGUiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IkFsbCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiJSYW5nZSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjczNzJmOAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWVuLXJJTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJQcmludCBTcG9vbGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IlByaW50ZXIgc2V0dGluZ3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJQcmludCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IlNhdmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiJEZXN0aW5hdGlvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiJDb3BpZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+IlBhcGVyIFNpemUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiJDb2xvdXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiJPcmllbnRhdGlvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+IlBhZ2VzICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiJlLmcuIDHigJM1LDgsMTHigJMxMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4iUHJpbnQgcHJldmlldyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxfZm9yX3ByaW50X3ByZXZpZXciIG1zZ2lkPSI2MzY2MzAzOTk3Mzg1NTA5MzMyIj4iSW5zdGFsbCBQREYgdmlld2VyIGZvciBwcmV2aWV3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiJQcmludGluZyBhcHAgY3Jhc2hlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJQYWdlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+IkdlbmVyYXRpbmcgcHJpbnQgam9iIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iU2F2ZSBhcyBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iQWxsIHByaW50ZXJz4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiJQcmludCBkaWFsb2d1ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJTZWFyY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4iQWxsIHByaW50ZXJzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4iQWRkIHNlcnZpY2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJTZWFyY2ggYm94IHNob3duIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IlNlYXJjaCBib3ggaGlkZGVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iQWRkIHByaW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWxlY3RfcHJpbnRlciIgbXNnaWQ9IjczODg3NjA5Mzk4NzMzNjg2OTgiPiJTZWxlY3QgcHJpbnRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2ZvcmdldF9wcmludGVyIiBtc2dpZD0iNTAzNTI4NzQ5NzI5MTkxMDc2NiI+IkZvcmdldCBwcmludGVyIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IHByaW50ZXIgZm91bmQiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY1MzM4MTcwMzY2MDcxMjgyNDEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IHByaW50ZXJzIGZvdW5kIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4iQ2hvb3NlIHByaW50IHNlcnZpY2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IlNlYXJjaGluZyBmb3IgcHJpbnRlcnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJObyBwcmludGVycyBmb3VuZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IlByaW50aW5nIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiJDYW5jZWxsaW5nIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+IlByaW50ZXIgZXJyb3IgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IlByaW50ZXIgYmxvY2tlZCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4gcHJpbnQgam9iIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiBwcmludCBqb2JzIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNDM3MzY3NDEwNzI2NzE0MTg4NSI+IkNhbmNlbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iUmVzdGFydCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiJObyBjb25uZWN0aW9uIHRvIHByaW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJ1bmtub3duIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOKAkyB1bmF2YWlsYWJsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJDb3VsZG5cJ3QgZ2VuZXJhdGUgcHJpbnQgam9iIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+IkJsYWNrICZhbXA7IFdoaXRlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IkNvbG91ciI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiJQb3J0cmFpdCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJMYW5kc2NhcGUiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IkFsbCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiJSYW5nZSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1lcy1yVVMvYXJyYXlzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWVzLXJVUy9hcnJheXMueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDAyNzhjLi4wMDAwMDAwCi0tLSBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWVzLXJVUy9hcnJheXMueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLQotICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLQotICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotCi0gICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0tLT4KLTxyZXNvdXJjZXM+Ci0KLSAgICA8c3RyaW5nLWFycmF5IG5hbWU9InBkZl9wcmludGVyX21lZGlhX3NpemVzIiB0cmFuc2xhdGFibGU9ImZhbHNlIj4KLSAgICAgICAgPGl0ZW0+TkFfTEVUVEVSPC9pdGVtPgotICAgICAgICA8aXRlbT5OQV9HT1ZUX0xFVFRFUjwvaXRlbT4KLSAgICAgICAgPGl0ZW0+TkFfTEVHQUw8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPk5BX0pVTklPUl9MRUdBTDwvaXRlbT4KLSAgICAgICAgPGl0ZW0+TkFfTEVER0VSPC9pdGVtPgotICAgICAgICA8aXRlbT5OQV9UQUJMT0lEPC9pdGVtPgotICAgICAgICA8aXRlbT5OQV9JTkRFWF8zWDU8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPk5BX0lOREVYXzRYNjwvaXRlbT4KLSAgICAgICAgPGl0ZW0+TkFfSU5ERVhfNVg4PC9pdGVtPgotICAgICAgICA8aXRlbT5OQV9NT05BUkNIPC9pdGVtPgotICAgICAgICA8aXRlbT5OQV9RVUFSVE88L2l0ZW0+Ci0gICAgICAgIDxpdGVtPk5BX0ZPT0xTQ0FQPC9pdGVtPgotICAgIDwvc3RyaW5nLWFycmF5PgotCi08L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWVzLXJVUy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWVzLXJVUy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmQxNzRkCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtZXMtclVTL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IkNvbGEgZGUgaW1wcmVzacOzbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkdmFuY2VkX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjU3NjQyMjUwOTEyODk0MTU2MzIiPiJDb25maWcuIGRlIGltcHJlc29yYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2J1dHRvbiIgbXNnaWQ9IjY0NTE2NDU2NjI3MTI0NjI2OCI+IkltcHJpbWlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4iR3VhcmRhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IkRlc3Rpbm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4iQ29waWFzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiJUYW1hw7FvIGRlbCBwYXBlbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+IkNvbG9yIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4iT3JpZW50YWNpw7NuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iUMOhZ2luYXMgKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+IkVqLjogMS01LCA4LCAxMS0xMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4iVmlzdGEgcHJldmlhIGRlIGltcHJlc2nDs24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+Ikluc3RhbGFyIHZpc3VhbGl6YWRvciBkZSBQREYgcGFyYSB2aXN0YSBwcmV2aWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IkxhIGFwbGljYWNpw7NuIGRlIGltcHJlc2nDs24gZmFsbMOzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+IlDDoWdpbmFzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4iR2VuZXJhbmRvIHRyYWJham8gZGUgaW1wcmVzacOzbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+Ikd1YXJkYXIgY29tbyBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iVG9kYXMgbGFzIGltcHJlc29yYXPigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+IkN1YWRybyBkZSBkacOhbG9nbyBkZSBpbXByZXNpw7NuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+IkJ1c2NhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiJUb2RhcyBsYXMgaW1wcmVzb3JhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IkFncmVnYXIgc2VydmljaW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJDdWFkcm8gZGUgYsO6c3F1ZWRhIHZpc2libGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4iQ3VhZHJvIGRlIGLDunNxdWVkYSBvY3VsdG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiJBZ3JlZ2FyIGltcHJlc29yYSI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9zZWxlY3RfcHJpbnRlciAoNzM4ODc2MDkzOTg3MzM2ODY5OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9mb3JnZXRfcHJpbnRlciAoNTAzNTI4NzQ5NzI5MTkxMDc2NikgLS0+CisgICAgPHNraXAgLz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4iU2UgZW5jb250csOzIDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gaW1wcmVzb3JhLiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+IlNlIGVuY29udHJhcm9uIDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gaW1wcmVzb3Jhcy4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiJFbGVnaXIgc2VydmljaW8gZGUgaW1wcmVzacOzbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4iQnVzY2FuZG8gaW1wcmVzb3JhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+Ik5vIHNlIGVuY29udHJhcm9uIGltcHJlc29yYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyOTU5MDM5NTc3NjI0NDczNjIiPiJJbXByaW1pZW5kbyA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iQ2FuY2VsYW5kbyA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiJFcnJvciBkZSBpbXByZXNvcmEgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IkxhIGltcHJlc29yYSBibG9xdWXDsyA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiJUcmFiYWpvIGRlIGltcHJlc2nDs24gPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IlRyYWJham9zIGRlIGltcHJlc2nDs24gPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiJDYW5jZWxhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iUmVpbmljaWFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fY29ubmVjdGlvbl90b19wcmludGVyIiBtc2dpZD0iMjE1OTI0NjkxNTk3NzI4MjcyOCI+Ik5vIGhheSBjb25leGnDs24gY29uIGxhIGltcHJlc29yYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJkZXNjb25vY2lkbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPjogbm8gZGlzcG9uaWJsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJFcnJvciBhbCBnZW5lcmFyIGVsIHRyYWJham8gZGUgaW1wcmVzacOzbiI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiJCbGFuY28geSBuZWdybyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiJDb2xvciI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiJWZXJ0aWNhbCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJIb3Jpem9udGFsIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiJUb2RhcyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiJJbnRlcnZhbG8iPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtZXMvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1lcy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjI1Y2FkCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtZXMvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw3OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NDY5ODM2MDc1MzE5ODMxODIxIj4iQ29sYSBkZSBpbXByZXNpw7NuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IkFqdXN0ZXMgZGUgaW1wcmVzb3JhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4iSW1wcmltaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiJHdWFyZGFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4iRGVzdGlubyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiJDb3BpYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+IlRhbWHDsW8gZGVsIHBhcGVsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4iQ29sb3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiJPcmllbnRhY2nDs24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiJQw6FnaW5hcyAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4icC4gZWouOiAxLTUsIDgsIDExLTEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiJWaXN0YSBwcmV2aWEgZGUgaW1wcmVzacOzbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxfZm9yX3ByaW50X3ByZXZpZXciIG1zZ2lkPSI2MzY2MzAzOTk3Mzg1NTA5MzMyIj4iSW5zdGFsYXIgdmlzb3IgUERGIHBhcmEgb2J0ZW5lciB2aXN0YSBwcmV2aWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IkVycm9yIGRlIGFwbGljYWNpw7NuIGRlIGltcHJlc2nDs24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4iUMOhZ2luYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiJHZW5lcmFuZG8gdHJhYmFqbyBkZSBpbXByZXNpw7NuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iR3VhcmRhciBjb21vIFBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiJUb2RhcyBsYXMgaW1wcmVzb3Jhc+KApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4iQ3VhZHJvIGRlIGRpw6Fsb2dvIGRlIGltcHJlc2nDs24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4iQnVzY2FyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IlRvZGFzIGxhcyBpbXByZXNvcmFzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4iQcOxYWRpciBzZXJ2aWNpbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+IkN1YWRybyBkZSBiw7pzcXVlZGEgdmlzaWJsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiJDdWFkcm8gZGUgYsO6c3F1ZWRhIG9jdWx0byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+IkHDsWFkaXIgaW1wcmVzb3JhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VsZWN0X3ByaW50ZXIiIG1zZ2lkPSI3Mzg4NzYwOTM5ODczMzY4Njk4Ij4iU2VsZWNjaW9uYXIgaW1wcmVzb3JhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZm9yZ2V0X3ByaW50ZXIiIG1zZ2lkPSI1MDM1Mjg3NDk3MjkxOTEwNzY2Ij4iQm9ycmFyIGltcHJlc29yYSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4iU2UgaGEgZW5jb250cmFkbyA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IGltcHJlc29yYSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+IlNlIGhhbiBlbmNvbnRyYWRvIDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gaW1wcmVzb3JhcyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IlNlbGVjY2lvbmFyIHNlcnZpY2lvIGRlIGltcHJlc2nDs24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IkJ1c2NhbmRvIGltcHJlc29yYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJObyBzZSBlbmNvbnRyYXJvbiBpbXByZXNvcmFzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4iSW1wcmltaWVuZG8gPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+IkNhbmNlbGFuZG8gPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4iRXJyb3IgZGUgaW1wcmVzb3JhIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiJMYSBpbXByZXNvcmEgaGEgYmxvcXVlYWRvIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iVHJhYmFqbyBkZSBpbXByZXNpw7NuIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg3NDY2MTEyNjQ3MzQyMjI4NjUiPiJUcmFiYWpvcyBkZSBpbXByZXNpw7NuIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4iQ2FuY2VsYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IlZvbHZlciBhIGVtcGV6YXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iTm8gaGF5IGNvbmV4acOzbiBjb24gbGEgaW1wcmVzb3JhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4iZGVzY29ub2NpZG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIG5vIGRpc3BvbmlibGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4iRXJyb3IgYWwgZ2VuZXJhciBlbCB0cmFiYWpvIGRlIGltcHJlc2nDs24iPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4iQmxhbmNvIHkgbmVncm8iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4iQ29sb3IiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4iVmVydGljYWwiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4iSG9yaXpvbnRhbCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4iVG9kbyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiJJbnRlcnZhbG8iPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0MzkxYzgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1ldC1yRUUvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NDY5ODM2MDc1MzE5ODMxODIxIj4iUHJpbmRpc3B1dWxlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkdmFuY2VkX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjU3NjQyMjUwOTEyODk0MTU2MzIiPiJQcmludGVyaSBzZWFkZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJQcmluZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiJTYWx2ZXN0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IlNpaHRrb2h0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29waWVzIiBtc2dpZD0iMzYzNDUzMTA0MjgyMjk2ODMwOCI+Iktvb3BpYWlkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiJQYWJlcmlmb3JtYWF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4iVsOkcnYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiJTdXVuZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+IkxlaHRpICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiJudCAx4oCTNSwgOCwgMTHigJMxMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4iUHJpbmRpIGVlbHZhYWRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiJQREYtdmFhdHVyaSBpbnN0YWxsaW1pbmUgZWVsdmFhdGUga3V2YW1pc2VrcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4iUHJpbnRpbWlzcmFrZW5kdXMgam9va3NpcyBrb2trdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJMZWhlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+IlByaW5kaXTDtsO2IGxvb21pbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2FzX3BkZiIgbXNnaWQ9IjU3MTg0NTQxMTk4NDc1OTY4NTMiPiJTYWx2ZXN0YSBQREYtaW5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+IkvDtWlrIHByaW50ZXJpZCDigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+IlByaW50aW1pc2RpYWxvb2ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4iT3RzaW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IkvDtWlrIHByaW50ZXJpZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+Ikxpc2EgdGVlbnVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4iT3RzaW5ndWthc3Qgb24ga3V2YXR1ZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiJPdHNpbmd1a2FzdCBvbiBwZWlkZXR1ZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+Ikxpc2EgcHJpbnRlciI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9zZWxlY3RfcHJpbnRlciAoNzM4ODc2MDkzOTg3MzM2ODY5OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9mb3JnZXRfcHJpbnRlciAoNTAzNTI4NzQ5NzI5MTkxMDc2NikgLS0+CisgICAgPHNraXAgLz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4iTGVpdGkgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBwcmludGVyIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4iTGVpdGkgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBwcmludGVyaXQiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiJQcmluZGl0ZWVudXNlIHZhbGltaW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJQcmludGVyaXRlIG90c2ltaW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4iUHJpbnRlcmVpZCBlaSBsZWl0dWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyOTU5MDM5NTc3NjI0NDczNjIiPiJQcmluZGl0w7bDtiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IHByaW50aW1pbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiJQcmluZGl0w7bDtiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IHTDvGhpc3RhbWluZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4iUHJpbnRlcmkgdmlnYTogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IlByaW50ZXIgYmxva2VlcmlzIHTDtsO2IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iUHJpbmRpdMO2w7YgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IlByaW5kaXTDtsO2ZCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNDM3MzY3NDEwNzI2NzE0MTg4NSI+IlTDvGhpc3RhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiJUYWFza8OkaXZpdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iUHJpbnRlcmnDvGhlbmR1cyBwdXVkdWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJ0ZWFkbWF0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiDigJMgcG9sZSBzYWFkYXZhbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJQcmluZGl0w7bDtmQgZWkgc2FhbnVkIGx1dWEiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4iTXVzdHZhbGdlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IlbDpHJ2IjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+IlZlcnRpa2FhbHBhaWd1dHVzIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+Ikhvcmlzb250YWFscGFpZ3V0dXMiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IkvDtWlrIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IlZhaGVtaWsiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtZmEvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1mYS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGI5NjVmCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtZmEvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NDY5ODM2MDc1MzE5ODMxODIxIj4i2YfZhdin2YfZhtqv4oCM2qnZhtmG2K/ZhyDahtin2b4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4i2KrZhti424zZhdin2Kog2obYp9m+2q/YsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2J1dHRvbiIgbXNnaWQ9IjY0NTE2NDU2NjI3MTI0NjI2OCI+ItqG2KfZviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+Itiw2K7bjNix2YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiLZhdmC2LXYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiLaqdm+24zigIzZh9inIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiLYp9mG2K/Yp9iy2Ycg2qnYp9i62LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiLYsdmG2q/bjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+Itis2YfYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+Iti12YHYrdin2KogKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+IuKAj+KAj+KAjtmF2KvZhNin2YvCoNux4oCU27XYjOKAj9u52Izbt+KAlNux27AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+Itm+24zYtOKAjNmG2YXYp9uM2LQg2obYp9m+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiLigI/Zhti12Kgg2YbZhdin24zYtNqv2LEgUERGINio2LHYp9uMINm+24zYtOKAjNmG2YXYp9uM2LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+Itio2LHZhtin2YXZhyDahtin2b4g2K7Ysdin2Kgg2LTYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiLYtdmB2K3Yp9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4i2K/YsSDYrdin2YQg2KfbjNis2KfYryDaqdin2LEg2obYp9m+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4i4oCP2LDYrtuM2LHZhyDYqNmH4oCM2LnZhtmI2KfZhiBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4i2YfZhdmHINqG2KfZvtqv2LHZh9inLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiLahtin2b4g2q/Zgdiq2q/ZiCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiLYrNiz2KrYrNmIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+ItmH2YXZhyDahtin2b7ar9ix2YfYpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+Itin2YHYstmI2K/ZhiDYs9ix2YjbjNizIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4i2qnYp9iv2LEg2KzYs9iq2KzZiCDZhtmF2KfbjNin2YYg2LTYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiLaqdin2K/YsSDYrNiz2KrYrNmIINm+2YbZh9in2YYg2LTYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+Itin2YHYstmI2K/ZhiDahtin2b7ar9ixIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+INqG2KfZvtqv2LEg24zYp9mB2Kog2LTYryI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4g2obYp9m+2q/YsSDbjNin2YHYqiDYtNivIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4i2KfZhtiq2K7Yp9ioINiz2LHZiNuM2LMg2obYp9m+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiLYr9ixINit2KfZhCDYrNiz2KrYrNmIINio2LHYp9uMINqG2KfZvtqv2LHZh9inIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4i2YfbjNqGINqG2KfZvtqv2LHbjCDbjNin2YHYqiDZhti02K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyOTU5MDM5NTc3NjI0NDczNjIiPiLYr9ixINit2KfZhCDahtin2b4gPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+Itiv2LEg2K3Yp9mEINmE2LrZiCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiLYrti32KfbjCDahtin2b7ar9ixIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiLahtin2b7ar9ix2Iwg2qnYp9ixIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g2LHYpyDZhdiz2K/ZiNivINqp2LHYryI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiLaqdin2LEg2obYp9m+IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg3NDY2MTEyNjQ3MzQyMjI4NjUiPiLaqdin2LHZh9in24wg2obYp9m+IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4i2YTYutmIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiLYsdin2YfigIzYp9mG2K/Yp9iy24wg2YXYrNiv2K8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4i2KfYqti12KfZhCDYqNinINqG2KfZvtqv2LEg2KjYsdmC2LHYp9ixINmG24zYs9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4i2YbYp9mF2LnZhNmI2YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4gLSDYr9ixINiv2LPYqtix2LMg2YbbjNiz2KoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4i2qnYp9ixINqG2KfZviDYp9uM2KzYp9ivINmG2LTYryI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiLYs9uM2KfZhyDZiCDYs9mB24zYryI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiLYsdmG2q/bjCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiLYudmF2YjYr9uMIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+Itin2YHZgtuMIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiLZh9mF2YciPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4i2YXYrdiv2YjYr9mHIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWZpL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtZmkvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI0M2I2YwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWZpL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IlRhdXN0YXR1bG9zdHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IlR1bG9zdGltZW4gYXNldHVrc2V0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4iVHVsb3N0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IlRhbGxlbm5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4iS29oZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4iS29waW90Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiJQYXBlcmlrb2tvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4iVsOkcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiJTdXVudGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiJTaXZ1dCAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4iZXNpbS4gMeKAkzUsOCwxMeKAkzEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiJUdWxvc3R1a3NlbiBlc2lrYXRzZWx1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiJBc2VubmEgUERGLWthdHNlbHVvaGplbG1hIGVzaWthdHNlbHVhIHZhcnRlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4iVHVsb3N0dXNzb3ZlbGx1cyBrYWF0dWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4iU2l2dXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiJMdW9kYWFuIHR1bG9zdHVzdHnDtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IlRhbGxlbm5hIFBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiJLYWlra2kgdHVsb3N0aW1ldOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4iVHVsb3N0dXNpa2t1bmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4iSGFrdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiJLYWlra2kgdHVsb3N0aW1ldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+Ikxpc8Okw6QgcGFsdmVsdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+Ikhha3VrZW50dMOkIG7DpGt5dmlzc8OkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+Ikhha3VrZW50dMOkIHBpaWxvdGV0dHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiJMaXPDpMOkIHR1bG9zdGluIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiJMw7Z5dHlpIDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gdHVsb3N0aW4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY1MzM4MTcwMzY2MDcxMjgyNDEiPiJMw7Z5dHlpIDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gdHVsb3N0aW50YSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IlZhbGl0c2UgdHVsb3N0dXNwYWx2ZWx1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJFdHNpdMOkw6RuIHR1bG9zdGltaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJUdWxvc3RpbWlhIGVpIGzDtnlkeSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IlR1bG9zdGV0YWFuIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiJQZXJ1dXRldGFhbiB0ecO2IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+IlR1bG9zdGludmlyaGUgdHnDtmxsZSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4iVHVsb3N0aW4gZXN0aSB0ecO2biA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+IlR1bG9zdHVzdHnDtiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iVHVsb3N0dXN0ecO2dCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNDM3MzY3NDEwNzI2NzE0MTg4NSI+IlBlcnV1dGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IkvDpHlubmlzdMOkIHV1ZGVsbGVlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiJFaSB5aHRleXR0w6QgdHVsb3N0aW1lZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJ0dW50ZW1hdG9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOKAkyBlaSBrw6R5dGV0dMOkdmlzc8OkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+IlR1bG9zdHVzdHnDtnTDpCBlaSB2b2l0dSBsdW9kYSI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiJNdXN0YXZhbGtvaW5lbiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiJWw6RyaSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiJQeXN0eSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJWYWFrYSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4iS2Fpa2tpIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IlbDpGxpIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDJkODVmNgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJGaWxlIGRcJ2F0dC4gaW1wci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4iUGFyYW3DqHRyZXMgZGUgbFwnaW1wcmltYW50ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2J1dHRvbiIgbXNnaWQ9IjY0NTE2NDU2NjI3MTI0NjI2OCI+IkltcHJpbWVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4iRW5yZWdpc3RyZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiJEZXN0aW5hdGlvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiJDb3BpZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+IkZvcm1hdCBkdSBwYXBpZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiJDb3VsZXVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4iT3JpZW50YXRpb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiJQYWdlcyAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4icC4gZXguIDEtNSwgOCwgMTEtMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IkFwZXLDp3UgYXZhbnQgaW1wcmVzc2lvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxfZm9yX3ByaW50X3ByZXZpZXciIG1zZ2lkPSI2MzY2MzAzOTk3Mzg1NTA5MzMyIj4iSW5zdGFsbGVyIHVuIGxlY3RldXIgUERGIHBvdXIgdm9pciBsXCdhcGVyw6d1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiJMXCdhcHBsaWNhdGlvbiDDoCBsXCdvcmlnaW5lIGRlIGxcJ2ltcHJlc3Npb24gYSBwbGFudMOpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+IlBhZ2VzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4iR8OpbsOpcmF0aW9uIHTDomNoZSBpbXByZXNzaW9u4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iRW5yZWdpc3RyZXIgZW4gZm9ybWF0IFBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiJUb3V0ZXMgbGVzIGltcHJpbWFudGVz4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiJCb8OudGUgZGUgZGlhbG9ndWUgZFwnaW1wcmVzc2lvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJSZWNoZXJjaGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IlRvdXRlcyBsZXMgaW1wcmltYW50ZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiJBam91dGVyIGxlIHNlcnZpY2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJDaGFtcCBkZSByZWNoZXJjaGUgYWZmaWNow6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4iQ2hhbXAgZGUgcmVjaGVyY2hlIG1hc3F1w6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiJBam91dGVyIHVuZSBpbXByaW1hbnRlIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+wqBpbXByaW1hbnRlIHRyb3V2w6llIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPsKgaW1wcmltYW50ZXMgdHJvdXbDqWVzIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4iU8OpbGVjdGlvbm5lciBsZSBzZXJ2aWNlIGRcJ2ltcHJlc3Npb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IlJlY2hlcmNoZSBkXCdpbXByaW1hbnRlcyBlbiBjb3Vycy4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+IkF1Y3VuZSBpbXByaW1hbnRlIHRyb3V2w6llIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4iSW1wcmVzc2lvbiBkZSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IGVuIGNvdXJz4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iQW5udWxhdGlvbiBkZSDCq8KgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPsKgwrvigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+IkVycmV1ciBpbXByZXNzaW9uIDogwqvCoDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz7CoMK7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4iSW1wcmVzc2lvbiBkZSDCq8KgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPsKgwrsgYmxvcXXDqWUiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iVMOiY2hlIGRcJ2ltcHJlc3Npb24gPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IlTDomNoZXMgZFwnaW1wcmVzc2lvbiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNDM3MzY3NDEwNzI2NzE0MTg4NSI+IkFubnVsZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IlJlY29tbWVuY2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fY29ubmVjdGlvbl90b19wcmludGVyIiBtc2dpZD0iMjE1OTI0NjkxNTk3NzI4MjcyOCI+IkF1Y3VuZSBjb25uZXhpb24gw6AgbFwnaW1wcmltYW50ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+ImluY29ubnUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCUIGluZGlzcG9uaWJsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJJbXBvc3NpYmxlIGRlIGfDqW7DqXJlciBsYSB0w6JjaGUgZFwnaW1wcmVzc2lvbiI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiJOb2lyIGV0IGJsYW5jIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IkNvdWxldXIiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4iUG9ydHJhaXQiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4iUGF5c2FnZSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4iVG91cyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiJQbGFnZSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1mci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWZyL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5ZTc0OTMKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1mci9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJTcG91bGVyIGltcHJlc3MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IlBhcmFtw6h0cmVzIGRlIGxcJ2ltcHJpbWFudGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJJbXByaW1lciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IkVucmVnaXN0cmVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4iRGVzdGluYXRpb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4iQ29waWVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiJGb3JtYXQgZHUgcGFwaWVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4iQ291bGV1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+Ik9yaWVudGF0aW9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iUGFnZXMgKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+ImV4LsKgOiAxLTUsIDgsIDExLTEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiJBcGVyw6d1IGF2YW50IGltcHJlc3Npb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+Ikluc3RhbGxlciB1biBsZWN0ZXVyIFBERiBwb3VyIGFmZmljaGVyIGxcJ2FwZXLDp3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IkxcJ2FwcGxpY2F0aW9uIMOgIGxcJ29yaWdpbmUgZGUgbFwnaW1wcmVzc2lvbiBhIHBsYW50w6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4iUGFnZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiJHw6luw6lyYXRpb24gdMOiY2hlIGltcHJlc3Npb27igKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2FzX3BkZiIgbXNnaWQ9IjU3MTg0NTQxMTk4NDc1OTY4NTMiPiJFbnJlZ2lzdHJlciBhdSBmb3JtYXQgLlBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiJUb3V0ZXMgbGVzIGltcHJpbWFudGVz4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiJCb8OudGUgZGUgZGlhbG9ndWUgZFwnaW1wcmVzc2lvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJSZWNoZXJjaGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IlRvdXRlcyBsZXMgaW1wcmltYW50ZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiJBam91dGVyIHVuIHNlcnZpY2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJDaGFtcCBkZSByZWNoZXJjaGUgYWZmaWNow6kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IkNoYW1wIGRlIHJlY2hlcmNoZSBtYXNxdcOpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+IkFqb3V0ZXIgdW5lIGltcHJpbWFudGUiPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfc2VsZWN0X3ByaW50ZXIgKDczODg3NjA5Mzk4NzMzNjg2OTgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfZm9yZ2V0X3ByaW50ZXIgKDUwMzUyODc0OTcyOTE5MTA3NjYpIC0tPgorICAgIDxza2lwIC8+CisgIDxwbHVyYWxzIG5hbWU9InByaW50X3NlYXJjaF9yZXN1bHRfY291bnRfdXR0ZXJhbmNlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDQ4NDk1MzI2MDY4NTk2NDI1MiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz7CoGltcHJpbWFudGUgdHJvdXbDqWUuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPsKgaW1wcmltYW50ZXMgdHJvdXbDqWVzLiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IlPDqWxlY3Rpb25uZXIgbGUgc2VydmljZSBkXCdpbXByZXNzaW9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJSZWNoZXJjaGUgZFwnaW1wcmltYW50ZXMgZW4gY291cnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJBdWN1bmUgaW1wcmltYW50ZSB0cm91dsOpZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IkltcHJlc3Npb24gZGUgXCI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+XCIgZW4gY291cnPigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiJBbm51bGF0aW9uIGRlIFwiPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPlwiIGVuIGNvdXJz4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiJFcnJldXIgaW1wcmVzc2lvbiBwb3VyIFwiPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPlwiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4iSW1wcmVzc2lvbiBkZSBcIjx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz5cIiBibG9xdcOpZSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IHTDomNoZSBkXCdpbXByZXNzaW9uIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiB0w6JjaGVzIGRcJ2ltcHJlc3Npb24iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4iQW5udWxlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iUmVkw6ltYXJyZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iQXVjdW5lIGNvbm5leGlvbiDDoCBsXCdpbXByaW1hbnRlLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+ImluY29ubnVlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOKAkyBpbmRpc3BvbmlibGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4iSW1wb3NzaWJsZSBkZSBnw6luw6lyZXIgbGEgdMOiY2hlIGRcJ2ltcHJlc3Npb24uIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+Ik5vaXIgZXQgYmxhbmMiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4iQ291bGV1ciI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiJQb3J0cmFpdCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJQYXlzYWdlIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiJUb3V0IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IlBsYWdlIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY1NzQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IuCkquCljeCksOCkv+CkguCknyDgpLjgpY3gpKrgpYLgpLLgpLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4i4KSq4KWN4KSw4KS/4KSC4KSf4KSwIOCkuOClh+Ckn+Ckv+CkguCklyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2J1dHRvbiIgbXNnaWQ9IjY0NTE2NDU2NjI3MTI0NjI2OCI+IuCkquCljeCksOCkv+CkguCknyDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiLgpLjgpLngpYfgpJzgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiLgpJfgpILgpKTgpLXgpY3gpK8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4i4KSq4KWN4KSw4KSk4KS/4KSv4KS+4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiLgpJXgpL7gpJfgpJzgpLwg4KSV4KS+IOCkhuCkleCkvuCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+IuCksOCkguCklyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+IuCkheCkreCkv+CkteCkv+CkqOCljeKAjeCkr+CkvuCkuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+IuCkquClg+Ckt+CljeKAjeCkoCAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4i4KSJ4KSm4KS+LiAx4oCUNSw4LDEx4oCUMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IuCkquCljeCksOCkv+CkguCknyDgpKrgpYLgpLDgpY3gpLXgpL7gpLXgpLLgpYvgpJXgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IuCkquClguCksOCljeCkteCkvuCkteCksuCli+CkleCkqCDgpJXgpYcg4KSy4KS/4KSPIFBERiDgpLXgpY3gpK/gpYLgpIXgpLAg4KSH4KSC4KS44KWN4KSf4KWJ4KSyIOCkleCksOClh+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4i4KSq4KWN4KSw4KS/4KSC4KSf4KS/4KSC4KSXIOCkj+CkquCljeCksuCkv+CkleClh+CktuCkqCDgpJXgpY3gpLDgpYjgpLYg4KS54KWLIOCkl+Ckr+CkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiLgpKrgpYPgpLfgpY3gpKAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiLgpKrgpY3gpLDgpL/gpILgpJ8g4KSV4KS+4KSw4KWN4KSvIOCknOCkqOCksOClh+CknyDgpLngpYsg4KSw4KS54KS+IOCkueCliCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IlBERiDgpJXgpYcg4KSw4KWC4KSqIOCkruClh+CkgiDgpLjgpLngpYfgpJzgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4i4KS44KSt4KWAIOCkquCljeCksOCkv+CkguCkn+CksC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4i4KSq4KWN4KSw4KS/4KSC4KSfIOCkuOCkguCkteCkvuCkpiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiLgpJbgpYvgpJzgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4i4KS44KSt4KWAIOCkquCljeCksOCkv+CkguCkn+CksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IuCkuOClh+CkteCkviDgpJzgpYvgpKHgpLzgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiLgpJbgpYvgpJwg4KSs4KWJ4KSV4KWN4KS4IOCkquCljeCksOCkpuCksOCljeCktuCkv+CkpCDgpLngpYgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4i4KSW4KWL4KScIOCkrOClieCkleCljeCkuCDgpJvgpL/gpKrgpL4g4KS54KWB4KSGIOCkueCliCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+IuCkquCljeCksOCkv+CkguCkn+CksCDgpJzgpYvgpKHgpLzgpYfgpIIiPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfc2VsZWN0X3ByaW50ZXIgKDczODg3NjA5Mzk4NzMzNjg2OTgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfZm9yZ2V0X3ByaW50ZXIgKDUwMzUyODc0OTcyOTE5MTA3NjYpIC0tPgorICAgIDxza2lwIC8+CisgIDxwbHVyYWxzIG5hbWU9InByaW50X3NlYXJjaF9yZXN1bHRfY291bnRfdXR0ZXJhbmNlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDQ4NDk1MzI2MDY4NTk2NDI1MiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4g4KSq4KWN4KSw4KS/4KSC4KSf4KSwIOCkruCkv+CksuCkviI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4g4KSq4KWN4KSw4KS/4KSC4KSf4KSwIOCkruCkv+CksuClhyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IuCkquCljeCksOCkv+CkguCknyDgpLjgpYfgpLXgpL4g4KSa4KWB4KSo4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiLgpKrgpY3gpLDgpL/gpILgpJ/gpLAg4KSW4KWL4KScIOCksOCkueCkviDgpLngpYgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiLgpJXgpYvgpIgg4KSq4KWN4KSw4KS/4KSC4KSf4KSwIOCkqOCkueClgOCkgiDgpK7gpL/gpLLgpYciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyOTU5MDM5NTc3NjI0NDczNjIiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOCkquCljeCksOCkv+CkguCknyDgpLngpYsg4KSw4KS54KS+IOCkueCliCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4KSw4KSm4KWN4KSmIOCkueCliyDgpLDgpLngpL4g4KS54KWIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiLgpKrgpY3gpLDgpL/gpILgpJ/gpLAg4KSk4KWN4KSw4KWB4KSf4KS/IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiLgpKrgpY3gpLDgpL/gpILgpJ/gpLAg4KSF4KS14KSw4KWL4KSn4KS/4KSkIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiDgpKrgpY3gpLDgpL/gpILgpJ8g4KSV4KS+4KSw4KWN4KSvIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiDgpKrgpY3gpLDgpL/gpILgpJ8g4KSV4KS+4KSw4KWN4KSvIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNDM3MzY3NDEwNzI2NzE0MTg4NSI+IuCksOCkpuCljeCkpiDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IuCkquClgeCkqDog4KSG4KSw4KSC4KStIOCkleCksOClh+CkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiLgpKrgpY3gpLDgpL/gpILgpJ/gpLAg4KSV4KWHIOCksuCkv+CkjyDgpJXgpYvgpIgg4KSV4KSo4KWH4KSV4KWN4KS24KSoIOCkqOCkueClgOCkgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+IuCkheCknOCljeCknuCkvuCkpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiDigJMg4KSF4KSo4KWB4KSq4KSy4KSs4KWN4KSnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+IuCkquCljeCksOCkv+CkguCknyDgpJXgpL7gpLDgpY3gpK8g4KSc4KSo4KSw4KWH4KSfIOCkqOCkueClgOCkgiDgpJXgpL/gpK/gpL4g4KSc4KS+IOCkuOCkleCkviI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiLgpLbgpY3gpK/gpL7gpK4g4KSU4KSwIOCktuCljeCkteClh+CkpCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiLgpLDgpILgpJciPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4i4KSq4KWL4KSw4KWN4KSf4KWN4KSw4KWH4KSfIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+IuCksuCliOCkguCkoeCkuOCljeCkleClh+CkqiI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4i4KS44KSt4KWAIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IuCkuOClgOCkruCkviI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1oci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWhyL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjYzQ2NjQKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1oci9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJQcmludCBTcG9vbGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IlBvc3RhdmtlIHBpc2HEjWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJJc3BpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IlNwcmVtaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+Ik9kcmVkacWhdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4iS29waWplIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiJWZWxpxI1pbmEgcGFwaXJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4iVSBib2ppIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4iT3JpamVudGFjaWphIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iU3RyYW5pY2UgKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+Im5wci4gMSDigJMgNSw4LDExIOKAkyAxMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4iUHJlZ2xlZCBpc3Bpc2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+Ikluc3RhbGlyYWogUERGIHByZWdsZWRuaWsgemEgcHJlZ2xlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4iU3J1xaFpbGEgc2UgYXBsaWthY2lqYSB6YSBpc3BpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJTdHJhbmljZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+IkdlbmVyaXJhbmplIHphZGF0a2EgaXNwaXNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iU3ByZW1pIGthbyBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iU3ZpIHBpc2HEjWnigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+IkRpamFsb8Wha2kgb2t2aXIgemEgaXNwaXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4iUHJldHJhxb5pdmFuamUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4iU3ZpIHBpc2HEjWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiJEb2RhaiB1c2x1Z3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJPa3ZpciB6YSBwcmV0cmHFvml2YW5qZSBwcmlrYXphbiBqZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiJPa3ZpciB6YSBwcmV0cmHFvml2YW5qZSBza3JpdmVuIGplIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iRG9kYWogcGlzYcSNIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiJQcm9uYcSRZW4gamUgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBwaXNhxI0iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY1MzM4MTcwMzY2MDcxMjgyNDEiPiJQcm9uYcSRZW4gamUgc2xqZWRlxIdpIGJyb2ogcGlzYcSNYTogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+Ik9kYWJlcml0ZSB1c2x1Z3UgaXNwaXNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJUcmHFvmVuamUgcGlzYcSNYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+Ik5pamUgcHJvbmHEkWVuIG5pamVkYW4gcGlzYcSNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4iSXNwaXNpdmFuamUgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+Ik90a2F6aXZhbmplIHphZGF0a2EgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4iUG9ncmXFoWthIHBpc2HEjWEgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IlBpc2HEjSBqZSBibG9raXJhbyA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+IlphZGF0YWsgaXNwaXNhIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg3NDY2MTEyNjQ3MzQyMjI4NjUiPiJCcm9qIHphZGF0YWthIGlzcGlzYTogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiJPZHVzdGFuaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iUG9ub3ZvIHBva3JlbmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iTmVtYSB2ZXplIHMgcGlzYcSNZW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJuZXBvem5hdG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIHphZGF0YWsgbmlqZSBkb3N0dXBhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJaYWRhdGFrIGlzcGlzYSBuaWplIGdlbmVyaXJhbiI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiJDcm5vLWJpamVsbyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiJVIGJvamkiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4iUG9ydHJldCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJQZWp6YcW+IjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiJTdmUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4iUmFzcG9uIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWh1L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtaHUvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmEwNzQxYgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWh1L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNzkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+Ik55b210YXTDoXNpc29yLWtlemVsxZEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4iTnlvbXRhdMOzYmXDoWxsw610w6Fzb2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJOeW9tdGF0w6FzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4iTWVudMOpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IkPDqWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4iUMOpbGTDoW55c3rDoW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+IlBhcMOtcm3DqXJldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+IlN6w61uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4iVMOham9sw6FzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iT2xkYWxzesOhbSAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4icGwuIDHigJM1LCA4LCAxMeKAkzEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiJFbMWRbsOpemV0IG55b210YXTDoXNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiJBeiBlbMWRbsOpemV0aGV6IHRlbGVww610c2UgYSBQREYtbWVndGVraW50xZF0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4iQSBueW9tdGF0w6FzaSBhbGthbG1hesOhcyDDtnNzemVvbWxvdHQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+Ik9sZGFsYWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiJOeW9tdGF0w6FzaSBmZWxhZGF0IGzDqXRyZWhvesOhc2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2FzX3BkZiIgbXNnaWQ9IjU3MTg0NTQxMTk4NDc1OTY4NTMiPiJNZW50w6lzIFBERi1rw6ludCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiJBeiDDtnNzemVzIG55b210YXTDs+KApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4iTnlvbXRhdMOhc2kgcMOhcmJlc3rDqWRhYmxhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJLZXJlc8OpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiJBeiDDtnNzemVzIG55b210YXTDsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IlN6b2xnw6FsdGF0w6FzIGhvenrDoWFkw6FzYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+IktlcmVzxZFtZXrFkSBtZWdqZWxlbsOtdHZlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IktlcmVzxZFtZXrFkSBlbHJlanR2ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+Ik55b210YXTDsyBob3p6w6FhZMOhc2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWxlY3RfcHJpbnRlciIgbXNnaWQ9IjczODg3NjA5Mzk4NzMzNjg2OTgiPiJOeW9tdGF0w7Mga2l2w6FsYXN6dMOhc2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9mb3JnZXRfcHJpbnRlciIgbXNnaWQ9IjUwMzUyODc0OTcyOTE5MTA3NjYiPiJOeW9tdGF0w7MgZWxmZWxlanTDqXNlIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IG55b210YXTDsyDDqXN6bGVsdmUiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY1MzM4MTcwMzY2MDcxMjgyNDEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IG55b210YXTDsyDDqXN6bGVsdmUiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiJOeW9tdGF0w6FzaSBzem9sZ8OhbHRhdMOhcyBraXbDoWxhc3p0w6FzYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4iTnlvbXRhdMOzayBrZXJlc8Opc2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJOZW0gdGFsw6FsaGF0w7MgbnlvbXRhdMOzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4iQSh6KSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IG55b210YXTDoXNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iQSh6KSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IHTDtnJsw6lzZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4iTnlvbXRhdMOhc2kgaGliYTogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IkEoeikgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiBsZXRpbHR2YS4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiDigJMgbnlvbXRhdMOhc2kgZmVsYWRhdCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4g4oCTIG55b210YXTDoXNpIGZlbGFkYXRvayI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiJNw6lnc2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IsOaanJhaW5kw610w6FzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fY29ubmVjdGlvbl90b19wcmludGVyIiBtc2dpZD0iMjE1OTI0NjkxNTk3NzI4MjcyOCI+Ik5pbmNzIGthcGNzb2xhdCBhIG55b210YXTDs3ZhbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+ImlzbWVyZXRsZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIG5lbSDDqXJoZXTFkSBlbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJOZW0gc2lrZXLDvGx0IGzDqXRyZWhvem5pIGEgbnlvbXRhdMOhc2kgZmVsYWRhdG90LiI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiJGZWtldGUtZmVow6lyIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IlN6w61uIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+IsOBbGzDsyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJGZWt2xZEiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IsOWc3N6ZXMiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4iVGFydG9tw6FueSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZlM2UyYwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWh5LXJBTS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiLVj9W61bTVodW2INWv1aHWgNWj1aHVvtWh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4i1Y/VutWr1bnVqyDVr9Wh1oDVo9Wh1b7VuNaA1bjWgtW01bbVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4i1Y/VutWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiLVitWh1bDVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4i1YbVutWh1b/VodWv1aHVr9Wl1b8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4i1YrVodW/1bPVpdW21bbVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiLUudWy1anVqyDVudWh1oPVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+ItSz1bjWgtW11bbVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+ItS01avWgNaE1aHVvtW41oDVuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiLUt9W71aXWgCAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4i1oXWgC7VnSAxLTUsIDgsIDExLTEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiLVj9W61aXVrNW41oIg1bbVodWt1aHVpNWr1b/VuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+ItWG1aHVrdWh1aTVq9W/1bTVodW2INWw1aHVtNWh1oAg1b/VpdWy1aHVpNaA1aXWhCBQREYg1aTVq9W/1aHWgNWv1avVuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4i1Y/VutWl1azVuNaCINWu1oDVodWj1avWgNWoINW+1anVodaA1asg1acg1aXVttWp1aHWgNWv1b7VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+ItS31bvVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4i1YHWh9Wh1b7VuNaA1b7VuNaC1bQg1acg1b/VutWl1azVuNaCINWh1bfVrdWh1b/VodW21oTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+ItWK1aHVsNWl1awg1bjWgNW61aXVvSBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4i1LLVuNWs1bjWgCDVv9W61avVudW21aXWgNWoLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiLVj9W61aXVrNW41oIg1aXWgNWv1a3VuNW91bjWgtWp1bXVodW2INW61aHVv9W41oLVsNWh1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4i1YjWgNW41bbVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+ItSy1bjVrNW41oAg1b/VutWr1bnVttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+ItSx1b7VpdWs1aHWgdW21aXVrCDVrtWh1bzVodW11bjWgtWp1bXVuNaC1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiLViNaA1bjVttW01aHVtiDVvtWh1bbVpNWh1a/VqCDWgdW41oLWgdWh1aTWgNW+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiLViNaA1bjVttW01aHVtiDVvtWh1bbVpNWh1a/VqCDVqdWh1oTWgdW+1aXVrCDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+ItSx1b7VpdWs1aHWgdW21aXVrCDVv9W61avVuSI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9zZWxlY3RfcHJpbnRlciAoNzM4ODc2MDkzOTg3MzM2ODY5OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9mb3JnZXRfcHJpbnRlciAoNTAzNTI4NzQ5NzI5MTkxMDc2NikgLS0+CisgICAgPHNraXAgLz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiDVv9W61avVuSDVpyDVo9W/1bbVvtWl1awiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY1MzM4MTcwMzY2MDcxMjgyNDEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+INW/1brVq9W5INWnINWj1b/VttW+1aXVrCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+ItS41bbVv9aA1aXWhCDVv9W61aXVrNW41oIg1a7VodW81aHVtdW41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+ItWP1brVq9W51bbVpdaA1asg1bjWgNW41bbVuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiLVj9W61avVudW21aXWgCDVudWl1bYg1aPVv9W21b7VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4i1Y/VutW+1bjWgtW0INWn1Z0gPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4t1agg1bnVpdWy1aHWgNWv1b7VuNaC1bQg1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+ItWP1brVq9W51asg1b3VrdWh1awgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+ItWP1brVq9W51bYg1aHWgNWj1aXVrNWh1oPVodWv1aXVrCDVpyA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+LdWoIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4g1b/VutW01aHVtiDVodW31a3VodW/1aHVttaEIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiDVv9W61bTVodW2INWh1bfVrdWh1b/VodW21oTVttWl1oAiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4i1YnVpdWy1aHWgNWv1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4i1Y7VpdaA1aHVo9W41oDVrtWh1oDVr9Wl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4i1Y/VutWr1bnVqyDVsNWl1b8g1a/VodW6INW51a/VoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+ItWh1bbVsNWh1bXVvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiDVv9W61avVudW2INWh1bbVsNWh1b3VodW21aXVrNWrINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+ItWJ1a/VodaA1bjVstWh1oHVodW21oQg1bTVt9Wh1a/VpdWsINW/1brVtNWh1bYg1aHVt9Wt1aHVv9Wh1bbWhNWoIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+ItWN1ocg1bjWgiDVvdW61avVv9Wh1a8iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4i1LPVuNaC1bXVttWoIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+ItS01avVtNWh1bbVr9Wh1oAiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4i1LzVodW21aTVt9Wh1obVvyI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4i1LLVuNWs1bjWgNWoIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+ItWE1avVu9Wh1a/VodW11oQiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtaW4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1pbi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmM5YzMzCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtaW4vc3RyaW5ncy54bWwKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NDY5ODM2MDc1MzE5ODMxODIxIj4iUHJpbnQgU3Bvb2xlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkdmFuY2VkX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjU3NjQyMjUwOTEyODk0MTU2MzIiPiJTZXRlbGFuIHByaW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJDZXRhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IlNpbXBhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IlR1anVhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiJTYWxpbmFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiJVa3VyYW4gS2VydGFzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4iV2FybmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiJPcmllbnRhc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiIoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSBoYWxhbWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiJtaXNhbG55YSAx4oCUNSw4LDEx4oCUMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IlByYXRpbmphdSBjZXRhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxfZm9yX3ByaW50X3ByZXZpZXciIG1zZ2lkPSI2MzY2MzAzOTk3Mzg1NTA5MzMyIj4iUGFzYW5nIHBlbmFtcGlsIFBERiB1bnR1ayBwcmF0aW5qYXUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IkFwbGlrYXNpIHBlbmNldGFrYW4gbW9nb2siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4iSGFsYW1hbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+Ik1lbWJ1YXQgdHVnYXMgcGVuY2V0YWthbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IlNpbXBhbiBzZWJhZ2FpIFBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiJTZW11YSBwcmludGVy4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiJDZXRhayBkaWFsb2ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4iQ2FyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiJTZW11YSBwcmludGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4iVGFtYmFoa2FuIGxheWFuYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJLb3RhayB0ZWx1c3VyIGRpdGFtcGlsa2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IktvdGFrIHRlbHVzdXIgZGlzZW1idW55aWthbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+IlRhbWJhaGthbiBwcmludGVyIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IHByaW50ZXIgZGl0ZW11a2FuIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBwcmludGVyIGRpdGVtdWthbiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IlBpbGloIGxheWFuYW4gY2V0YWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+Ik1lbmNhcmkgcHJpbnRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+IlRpZGFrIGRpdGVtdWthbiBwcmludGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4iTWVuY2V0YWsgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+Ik1lbWJhdGFsa2FuIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+IkFkYSBrZXNhbGFoYW4gcHJpbnRlciA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4iUHJpbnRlciBtZW1ibG9raXIgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiJUdWdhcyBjZXRhayA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iVHVnYXMgY2V0YWsgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiJCYXRhbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iTXVsYWkgVWxhbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iVGlkYWsgYWRhIHNhbWJ1bmdhbiBrZSBwcmludGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4idGFrIGRpa2V0YWh1aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiDigJMgdGlkYWsgdGVyc2VkaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4iVGlkYWsgZGFwYXQgbWVtYnVhdCB0dWdhcyBjZXRhayI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiJIaXRhbSAmYW1wOyBQdXRpaCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiJXYXJuYSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiJQb3RyZXQiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4iTGFuc2thcCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4iU2VtdWEiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4iUmVudGFuZyI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1pdC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWl0L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2YzNiNDgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1pdC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJQcmludCBTcG9vbGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IkltcG9zdGF6aW9uaSBzdGFtcGFudGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJTdGFtcGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiJTYWx2YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IkRlc3RpbmF6aW9uZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiJDb3BpZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4iRm9ybWF0byBjYXJ0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+IkEgY29sb3JpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4iT3JpZW50YW1lbnRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iUGFnaW5lICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiJFcy46IDEtNSwgOCwgMTEtMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IkFudGVwcmltYSBkaSBzdGFtcGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+Ikluc3RhbGxhIHZpc3VhbGl6emF0b3JlIFBERiBwZXIgYW50ZXByaW1hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiJBcnJlc3RvIGFub21hbG8gZGVsbFwnYXBwIGRpIHN0YW1wYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJQYWdpbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiJHZW5lcmF6aW9uZSBwcm9jZXNzbyBkaSBzdGFtcGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2FzX3BkZiIgbXNnaWQ9IjU3MTg0NTQxMTk4NDc1OTY4NTMiPiJTYWx2YSBpbiBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iVHV0dGUgbGUgc3RhbXBhbnRp4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiJGaW5lc3RyYSBkaSBkaWFsb2dvIFN0YW1wYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJDZXJjYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiJUdXR0ZSBsZSBzdGFtcGFudGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiJBZ2dpdW5naSBzZXJ2aXppbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+IkNhc2VsbGEgZGkgcmljZXJjYSB2aXN1YWxpenphdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4iQ2FzZWxsYSBkaSByaWNlcmNhIG5hc2Nvc3RhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iQWdnaXVuZ2kgc3RhbXBhbnRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VsZWN0X3ByaW50ZXIiIG1zZ2lkPSI3Mzg4NzYwOTM5ODczMzY4Njk4Ij4iU2VsZXppb25hIHN0YW1wYW50ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2ZvcmdldF9wcmludGVyIiBtc2dpZD0iNTAzNTI4NzQ5NzI5MTkxMDc2NiI+IkVsaW1pbmEgc3RhbXBhbnRlIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IHN0YW1wYW50ZSB0cm92YXRhIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBzdGFtcGFudGkgdHJvdmF0ZSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IlNjZWdsaSBzZXJ2aXppbyBkaSBzdGFtcGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IlJpY2VyY2EgZGkgc3RhbXBhbnRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4iTmVzc3VuYSBzdGFtcGFudGUgdHJvdmF0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IlN0YW1wYSBkaSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iQW5udWxsYW1lbnRvIGRpIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+IkVycm9yZSBkZWxsYSBzdGFtcGFudGU6IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiJMYSBzdGFtcGFudGUgaGEgYmxvY2NhdG8gPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiJQcm9jZXNzbyBkaSBzdGFtcGEgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IlByb2Nlc3NpIGRpIHN0YW1wYSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNDM3MzY3NDEwNzI2NzE0MTg4NSI+IkFubnVsbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IlJpYXZ2aWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iTmVzc3VuIGNvbGxlZ2FtZW50byBhbGxhIHN0YW1wYW50ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+InNjb25vc2NpdXRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IC0gbm9uIGRpc3BvbmliaWxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+IkltcG9zc2liaWxlIGdlbmVyYXJlIHByb2Nlc3NvIGRpIHN0YW1wYSI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiJCaWFuY28gZSBuZXJvIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IkEgY29sb3JpIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+IlZlcnRpY2FsZSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJPcml6em9udGFsZSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4iVHV0dGUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4iSW50ZXJ2YWxsbyI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1pdy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWl3L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlMGU3MzIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1pdy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJQcmludCBTcG9vbGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IteU15LXk9eo15XXqiDXnteT16TXodeqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4i15TXk9ek16EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiLXqdee15XXqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IteZ16LXkyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiLXoteV16rXp9eZ150iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+IteS15XXk9ecINeg15nXmdeoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4i16bXkdeiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4i15vXmdeV15XXnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+Itei157XldeT15nXnSAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4i15zXntep15wgMeKAkzXigI8sOCzigI8xMeKAkzEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiLXqtem15XXkteUINee16fXk9eZ157XlCDXqdecINeU15PXpNeh15QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IuKAj9eU16rXp9efINee16bXmdeSIFBERiDXnNeZ16bXmdeo16og16rXpteV15LXlCDXnten15PXmdee15QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IteQ16TXnNeZ16fXpteZ15nXqiDXlNeU15PXpNeh15Qg16fXqNeh15QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4i16LXnteV15PXmdedIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4i15nXldem16gg16LXkdeV15PXqiDXlNeT16TXodeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4i4oCP16nXnteV16gg15stUERGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+Iteb15wg15TXnteT16TXodeV16rigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+Iteq15nXkdeqINeT15Ug16nXmdeXINep15wg157Xk9ek16HXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiLXl9ek16kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4i15vXnCDXlNee15PXpNeh15XXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IteU15XXodejINep15nXqNeV16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiLXqteZ15HXqiDXlNeX15nXpNeV16kg157Xldem15LXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiLXqteZ15HXqiDXlNeX15nXpNeV16kg157Xldeh16rXqNeqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4i15TXldeh16Mg157Xk9ek16HXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlbGVjdF9wcmludGVyIiBtc2dpZD0iNzM4ODc2MDkzOTg3MzM2ODY5OCI+IteR15fXqCDXnteT16TXodeqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZm9yZ2V0X3ByaW50ZXIiIG1zZ2lkPSI1MDM1Mjg3NDk3MjkxOTEwNzY2Ij4i16nXm9eXINeQ16og15TXnteT16TXodeqIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiLXoNee16bXkNeUINee15PXpNeh16ogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+Iteg157XpteQ15UgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiDXnteT16TXodeV16oiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiLXkdeX16gg16nXmdeo15XXqiDXlNeT16TXodeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiLXnteX16TXqSDXnteT16TXodeV16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiLXnNeQINeg157XpteQ15Ug157Xk9ek16HXldeqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4i157Xk9ek15nXoSDXkNeqIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiLXnteR15jXnCDXkNeqIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+Itep15LXmdeQ16og157Xk9ek16HXqiDXkS08eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4i15TXnteT16TXodeqINeX16HXnteUINeQ16ogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiLXoteR15XXk9eqINeU15PXpNeh15QgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4g16LXkdeV15PXldeqINeU15PXpNeh15QiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4i15HXmNecIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiLXlNek16LXnCDXnteX15PXqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiLXkNeZ158g15fXmdeR15XXqCDXnNee15PXpNeh16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiLXnNeQINeZ15PXldeiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOKAkyDXnNeQINeW157Xmdeg15QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4i15zXkCDXoNeZ16rXnyDXlNeZ15Qg15zXmdem15XXqCDXkNeqINei15HXldeT16og15TXlNeT16TXodeUIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+Itep15fXldeoINeV15zXkdefIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+Item15HXoiI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiLXnNeQ15XXqNeaIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+Itec16jXldeX15EiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IteU15vXnCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiLXmNeV15XXlyI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1qYS9hcnJheXMueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtamEvYXJyYXlzLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM2NDk3OS4uMDAwMDAwMAotLS0gYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1qYS9hcnJheXMueG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTwhLS0gQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLQotICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLQotICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotCi0gICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0tLT4KLTxyZXNvdXJjZXM+Ci0KLSAgICA8c3RyaW5nLWFycmF5IG5hbWU9InBkZl9wcmludGVyX21lZGlhX3NpemVzIiB0cmFuc2xhdGFibGU9ImZhbHNlIj4KLSAgICAgICAgPGl0ZW0+SklTX0IxMDwvaXRlbT4KLSAgICAgICAgPGl0ZW0+SklTX0I5PC9pdGVtPgotICAgICAgICA8aXRlbT5KSVNfQjg8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPkpJU19CNzwvaXRlbT4KLSAgICAgICAgPGl0ZW0+SklTX2I2PC9pdGVtPgotICAgICAgICA8aXRlbT5KSVNfYjU8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPkpJU19iNDwvaXRlbT4KLSAgICAgICAgPGl0ZW0+SklTX2IzPC9pdGVtPgotICAgICAgICA8aXRlbT5KSVNfYjI8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPkpJU19iMTwvaXRlbT4KLSAgICAgICAgPGl0ZW0+SklTX2IwPC9pdGVtPgotICAgICAgICA8aXRlbT5KSVNfRVhFQzwvaXRlbT4KLSAgICAgICAgPGl0ZW0+SlBOX0NIT1U0PC9pdGVtPgotICAgICAgICA8aXRlbT5KUE5fQ0hPVTM8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPkpQTl9DSE9VMjwvaXRlbT4KLSAgICAgICAgPGl0ZW0+SlBOX0hBR0FLSTwvaXRlbT4KLSAgICAgICAgPGl0ZW0+SlBOX09VRlVLVTwvaXRlbT4KLSAgICAgICAgPGl0ZW0+SlBOX0tBSFU8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPkpQTl9LQUtVMjwvaXRlbT4KLSAgICAgICAgPGl0ZW0+SlBOX1lPVTQ8L2l0ZW0+Ci0gICAgPC9zdHJpbmctYXJyYXk+Ci0KLTwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtamEvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1qYS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGYxZjJiMQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWphL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IuWNsOWIt+OCueODl+ODvOODqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkdmFuY2VkX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjU3NjQyMjUwOTEyODk0MTU2MzIiPiLjg5fjg6rjg7Pjgr/jga7oqK3lrpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiLljbDliLciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiLkv53lrZgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiLljbDliLflhYgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4i6YOo5pWwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiLnlKjntJnjgrXjgqTjgroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiLoibIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiLmlrnlkJEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiLjg5rjg7zjgrjvvIg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz7vvIkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+IuS+izogMS01LDgsMTEtMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IuWNsOWIt+ODl+ODrOODk+ODpeODvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxfZm9yX3ByaW50X3ByZXZpZXciIG1zZ2lkPSI2MzY2MzAzOTk3Mzg1NTA5MzMyIj4i44OX44Os44OT44Ol44O855SoUERG44OT44Ol44O844Ki44KS44Kk44Oz44K544OI44O844OrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiLljbDliLfjgqLjg5fjg6rjgafjga7pmpzlrrPnmbrnlJ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4i44Oa44O844K45pWwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4i5Y2w5Yi344K444On44OW44KS55Sf5oiQ44GX44Gm44GE44G+44GZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iUERG5b2i5byP44Gn5L+d5a2YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+IuOBmeOBueOBpuOBruODl+ODquODs+OCv+KApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4i5Y2w5Yi344OA44Kk44Ki44Ot44KwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+IuaknOe0oiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiLjgZnjgbnjgabjga7jg5fjg6rjg7Pjgr8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiLjgrXjg7zjg5PjgrnjgpLov73liqAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiLmpJzntKLjg5zjg4Pjgq/jgrnjga/ooajnpLrjgZXjgozjgabjgYTjgb7jgZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4i5qSc57Si44Oc44OD44Kv44K544Gv6KGo56S644GV44KM44Gm44GE44G+44Gb44KTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4i44OX44Oq44Oz44K/44KS6L+95YqgIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+5Y+w44Gu44OX44Oq44Oz44K/44GM6KaL44Gk44GL44KK44G+44GX44GfIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPuWPsOOBruODl+ODquODs+OCv+OBjOimi+OBpOOBi+OCiuOBvuOBl+OBnyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IuWNsOWIt+OCteODvOODk+OCueOBrumBuOaKniI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4i44OX44Oq44Oz44K/44Gu5qSc57Si5LitIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4i44OX44Oq44Oz44K/44GM6KaL44Gk44GL44KK44G+44Gb44KTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPuOCkuWNsOWIt+OBl+OBpuOBhOOBvuOBmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz7jgpLjgq3jg6Pjg7Pjgrvjg6vjgZfjgabjgYTjgb7jgZkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+IuODl+ODquODs+OCv+OCqOODqeODvDogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz7jgpLjg5bjg63jg4Pjgq/jgZfjgb7jgZfjgZ8iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPuOBruWNsOWIt+OCuOODp+ODliI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz7jga7ljbDliLfjgrjjg6fjg5YiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4i44Kt44Oj44Oz44K744OrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiLlho3otbfli5UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4i44OX44Oq44Oz44K/44Gr5o6l57aa44GV44KM44Gm44GE44G+44Gb44KTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4i5LiN5piOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+4oCT5L2/55So5LiN5Y+vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+IuWNsOWIt+OCuOODp+ODluOCkueUn+aIkOOBp+OBjeOBvuOBm+OCk+OBp+OBl+OBnyI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiLjg6Ljg47jgq/jg60iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4i6ImyIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+Iue4puWQkeOBjSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiLmqKrlkJHjgY0iPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IuOBmeOBueOBpiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiLnr4Tlm7IiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmZmE4MWUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NDY5ODM2MDc1MzE5ODMxODIxIj4i4YOR4YOU4YOt4YOT4YOV4YOY4YOhIFNwb29sZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4i4YOe4YOg4YOY4YOc4YOi4YOU4YOg4YOY4YOhIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2J1dHRvbiIgbXNnaWQ9IjY0NTE2NDU2NjI3MTI0NjI2OCI+IuGDkeGDlOGDreGDk+GDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IuGDqOGDlOGDnOGDkOGDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IuGDk+GDkOGDnOGDmOGDqOGDnOGDo+GDmuGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiLhg5Dhg6Hhg5rhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+IuGDpOGDo+GDoOGDquGDmuGDmOGDoSDhg5bhg53hg5vhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiLhg6Thg5Thg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiLhg53hg6Dhg5jhg5Thg5zhg6Lhg5Dhg6rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiLhg5Lhg5Xhg5Thg6Dhg5Phg5Thg5Hhg5ggKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+IuGDm+GDkOGDki4gMeKAkzUsIDgsIDEx4oCTMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IuGDnOGDkOGDruGDleGDkCDhg5Dhg5vhg53hg5Hhg5Thg63hg5Phg5Xhg5Dhg5vhg5Phg5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IuGDkuGDkOGDk+GDkOGDruGDlOGDk+GDleGDmOGDoeGDl+GDleGDmOGDoSDhg5Phg5Dhg5Dhg6fhg5Thg5zhg5Thg5cgUERGIOGDm+GDnOGDkOGDruGDleGDlOGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4i4YOR4YOU4YOt4YOT4YOV4YOY4YOhIOGDkOGDnuGDmCDhg5Dhg5Xhg5Dhg6Dhg5jhg6Phg5rhg5Dhg5Mg4YOS4YOQ4YOY4YOX4YOY4YOo4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+IuGDkuGDleGDlOGDoOGDk+GDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+IuGDm+GDmOGDm+GDk+GDmOGDnOGDkOGDoOGDlOGDneGDkeGDmOGDoSDhg5Hhg5Thg63hg5Phg5Xhg5jhg6Eg4YOT4YOQ4YOV4YOQ4YOa4YOU4YOR4YOY4YOhIOGDqOGDlOGDpeGDm+GDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IlBERi3hg5Dhg5Mg4YOo4YOU4YOc4YOQ4YOu4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+IuGDp+GDleGDlOGDmuGDkCDhg57hg6Dhg5jhg5zhg6Lhg5Thg6Dhg5jigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+IuGDkeGDlOGDreGDk+GDleGDmOGDoSDhg6Hhg5Dhg6Dhg5nhg5vhg5Thg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4i4YOr4YOY4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IuGDp+GDleGDlOGDmuGDkCDhg57hg6Dhg5jhg5zhg6Lhg5Thg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiLhg6Hhg5Thg6Dhg5Xhg5jhg6Hhg5jhg6Eg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4i4YOh4YOQ4YOr4YOY4YOU4YOR4YOdIOGDleGDlOGDmuGDmCDhg5zhg5Dhg6nhg5Xhg5Thg5zhg5Thg5Hhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4i4YOh4YOQ4YOr4YOY4YOU4YOR4YOdIOGDleGDlOGDmuGDmCDhg5Phg5Dhg5vhg5Dhg5rhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiLhg57hg6Dhg5jhg5zhg6Lhg5Thg6Dhg5jhg6Eg4YOT4YOQ4YOb4YOQ4YOi4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiLhg5zhg5Dhg57hg53hg5Xhg5zhg5jhg5AgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiDhg57hg6Dhg5jhg5zhg6Lhg5Thg6Dhg5giPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY1MzM4MTcwMzY2MDcxMjgyNDEiPiLhg5zhg5Dhg57hg53hg5Xhg5zhg5jhg5AgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiDhg57hg6Dhg5jhg5zhg6Lhg5Thg6Dhg5giPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiLhg5Dhg5jhg6Dhg6nhg5jhg5Thg5cg4YOR4YOU4YOt4YOT4YOV4YOY4YOhIOGDoeGDlOGDoOGDleGDmOGDoeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4i4YOb4YOY4YOb4YOT4YOY4YOc4YOQ4YOg4YOU4YOd4YOR4YOhIOGDnuGDoOGDmOGDnOGDouGDlOGDoOGDlOGDkeGDmOGDoSDhg6vhg5jhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiLhg57hg6Dhg5jhg5zhg6Lhg5Thg6Dhg5Thg5Hhg5gg4YOV4YOU4YOgIOGDm+GDneGDmOGDq+GDlOGDkeGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IuGDmOGDkeGDlOGDreGDk+GDlOGDkeGDkCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4i4YOb4YOY4YOb4YOT4YOY4YOc4YOQ4YOg4YOU4YOd4YOR4YOhIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4t4YOY4YOhIOGDkuGDkOGDo+GDpeGDm+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4i4YOR4YOU4YOt4YOT4YOV4YOY4YOhIOGDqOGDlOGDquGDk+GDneGDm+GDkCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4i4YOe4YOg4YOY4YOc4YOi4YOU4YOg4YOb4YOQIOGDk+GDkOGDkeGDmuGDneGDmeGDkCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+IuGDkeGDlOGDreGDk+GDleGDmOGDoSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IOGDk+GDkOGDleGDkOGDmuGDlOGDkeGDkCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IuGDkeGDlOGDreGDk+GDleGDmOGDoSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IOGDk+GDkOGDleGDkOGDmuGDlOGDkeGDkCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiLhg5Lhg5Dhg6Phg6Xhg5vhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IuGDkuGDkOGDk+GDkOGDouGDleGDmOGDoOGDl+GDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiLhg57hg6Dhg5jhg5zhg6Lhg5Thg6Dhg5fhg5Dhg5wg4YOZ4YOQ4YOV4YOo4YOY4YOg4YOYIOGDkOGDoCDhg5Dhg6Dhg5jhg6EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiLhg6Phg6rhg5zhg53hg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIOGDm+GDmOGDo+GDrOGDleGDk+GDneGDm+GDlOGDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiLhg5Hhg5Thg63hg5Phg5Xhg5jhg6Eg4YOT4YOQ4YOV4YOQ4YOa4YOU4YOR4YOY4YOhIOGDkuGDlOGDnOGDlOGDoOGDkOGDquGDmOGDkCDhg5Xhg5Thg6Ag4YOu4YOU4YOg4YOu4YOT4YOU4YOR4YOQIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+IuGDqOGDkOGDlS3hg5fhg5Thg5fhg6Dhg5giPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4i4YOk4YOU4YOg4YOYIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+IuGDnuGDneGDoOGDouGDoOGDlOGDouGDmCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiLhg57hg5Thg5jhg5bhg5Dhg5/hg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOYIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiLhg6fhg5Xhg5Thg5rhg5AiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4i4YOT4YOY4YOQ4YOe4YOQ4YOW4YOd4YOc4YOYIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDBkZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IuGelOGfhOGfh+GeluGeu+GemOGfkuGeluKAi+Gen+GfkuGeluGevOGem+GfkOGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkdmFuY2VkX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjU3NjQyMjUwOTEyODk0MTU2MzIiPiLhnoDhnrbhnprigIvhnoDhn4bhno7hno/hn4vigIvhnpjhn4nhnrbhnp/hn4rhnrjhnpPigIvhnpThn4Thn4fhnpbhnrvhnpjhn5LhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiLhnpThn4Thn4fhnpbhnrvhnpjhn5LhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiLhnprhnoDhn5Lhnp/hnrbhnpHhnrvhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiLhnpHhnrfhnp/hnorhn4UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4i4Z6F4Z+S4Z6U4Z624Z6U4Z+L4oCL4Z6F4Z6Y4Z+S4Z6b4Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiLhnpHhn4bhnqDhn4bigIvhnoDhn5Lhnprhnorhnrbhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiLhnpbhno7hn4wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiLhnpHhnrfhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiLhnpHhn4bhnpbhn5DhnpogKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+IuGepy4gMeKAlDUsOCwxMeKAlDEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiLhnpjhnr7hnpvigIvhnpjhnrvhnpPigIvhnpThn4Thn4fhnpbhnrvhnpjhn5LhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IuGeiuGfhuGeoeGevuGehOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GemOGevuGemyBQREYg4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6A4Z624Z6a4oCL4Z6Y4Z6+4Z6b4oCL4Z6H4Z624oCL4Z6Y4Z674Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiLhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThn4Thn4fhnpbhnrvhnpjhn5LhnpbigIvhnoLhnrbhn4bhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4i4Z6R4Z+G4Z6W4Z+Q4Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4i4oCL4Z6U4Z6E4Z+S4Z6A4Z6+4Z6P4oCL4Z6A4Z624Z6a4oCL4Z6E4Z624Z6a4oCL4Z6U4Z+E4Z+H4Z6W4Z674Z6Y4Z+S4Z6WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4i4Z6a4Z6A4Z+S4Z6f4Z624oCL4Z6R4Z674Z6A4oCL4Z6H4Z62IFBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiLhnpjhn4nhnrbhnp/hn4rhnrjhnpPigIvhnpThn4Thn4fhnpbhnrvhnpjhn5LhnpbigIvhnpHhnrbhn4bhnoThnqLhnp/hn4sgLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiLhnpThn5LhnprhnqLhnpThn4vigIvhnpThn4Thn4fhnpbhnrvhnpjhn5LhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4i4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IuGemOGfieGetuGen+GfiuGeuOGek+KAi+GelOGfhOGfh+GeluGeu+GemOGfkuGeluKAi+GekeGetuGfhuGehOGeouGen+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IuGelOGek+GfkuGekOGfguGemOKAi+Gen+GfgeGenOGetuGegOGemOGfkuGemCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+IuGelOGetuGek+KAi+GelOGehOGfkuGeoOGetuGeieKAi+GelOGfkuGemuKAi+GeouGelOGfi+KAi+Gen+GfkuGenOGfguGehOGemuGegCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiLhnpThnrbhnpPigIvhnpvhnrbhnoDhn4vigIvhnpThn5LhnprhnqLhnpThn4vigIvhnp/hn5Lhnpzhn4LhnoThnprhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiLhnpThnpPhn5LhnpDhn4LhnpjigIvhnpjhn4nhnrbhnp/hn4rhnrjhnpPigIvhnpThn4Thn4fhnpbhnrvhnpjhn5LhnpYiPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfc2VsZWN0X3ByaW50ZXIgKDczODg3NjA5Mzk4NzMzNjg2OTgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfZm9yZ2V0X3ByaW50ZXIgKDUwMzUyODc0OTcyOTE5MTA3NjYpIC0tPgorICAgIDxza2lwIC8+CisgIDxwbHVyYWxzIG5hbWU9InByaW50X3NlYXJjaF9yZXN1bHRfY291bnRfdXR0ZXJhbmNlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDQ4NDk1MzI2MDY4NTk2NDI1MiI+IuGemuGegOKAi+Geg+GevuGeieKAi+GemOGfieGetuGen+GfiuGeuOGek+KAi+GelOGfhOGfh+GeluGeu+GemOGfkuGeliA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4i4Z6a4Z6A4oCL4Z6D4Z6+4Z6J4oCL4Z6Y4Z+J4Z624Z6f4Z+K4Z644Z6T4oCL4Z6U4Z+E4Z+H4Z6W4Z674Z6Y4Z+S4Z6WIDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiLhnofhn5Lhnprhnr7hnp/igIvhnp/hn4HhnpzhnrbigIvhnpThn4Thn4fhnpbhnrvhnpjhn5LhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IuGen+GfkuGenOGfguGehOGemuGegOKAi+GemOGfieGetuGen+GfiuGeuOGek+KAi+GelOGfhOGfh+GeluGeu+GemOGfkuGeliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+IuGemuGegOKAi+GemOGet+Gek+KAi+Geg+GevuGeieKAi+GemOGfieGetuGen+GfiuGeuOGek+KAi+GelOGfhOGfh+GeluGeu+GemOGfkuGeliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IuGegOGfhuGeluGeu+GehOKAi+KAi+GelOGfhOGfh+GeluGeu+GemOGfkuGeliA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4i4Z6A4Z624Z6a4oCL4Z6U4Z+E4Z+H4Z6U4Z6E4Z+LIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+IuGegOGfhuGeoOGeu+Gen+KAi+GemOGfieGetuGen+GfiuGeuOGek+KAi+GelOGfhOGfh+GeluGeu+GemOGfkuGeliA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4i4Z6Y4Z+J4Z624Z6f4Z+K4Z644Z6T4oCL4Z6U4Z+E4Z+H4Z6W4Z674Z6Y4Z+S4Z6W4oCL4Z6U4Z624Z6T4oCL4Z6R4Z6U4Z+L4Z6f4Z+S4Z6A4Z624Z6P4Z+LIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4i4Z6A4Z624Z6a4Z6E4Z624Z6a4oCL4Z6U4Z+E4Z+H4Z6W4Z674Z6Y4Z+S4Z6WIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg3NDY2MTEyNjQ3MzQyMjI4NjUiPiLhnoDhnrbhnprhnoThnrbhnprigIvhnpThn4Thn4fhnpbhnrvhnpjhn5LhnpYgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiLhnpThn4Thn4fhnpThnoThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IuGeheGetuGelOGfi+GeleGfkuGeiuGevuGemOKAi+GeoeGevuGehOGenOGet+GeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiLhnoLhn5LhnpjhnrbhnpPigIvigIvigIvhnoDhnrbhnprigIvhnpfhn5LhnofhnrbhnpThn4vigIvhnpHhn4XigIvhnpjhn4nhnrbhnp/hn4rhnrjhnpPigIvhnpThn4Thn4fhnpbhnrvhnpjhn5LhnpYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiLhnpjhnrfhnpPigIvhnp/hn5LhnoLhnrbhnpvhn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIOGemOGet+Gek+KAi+GeouGetuGeheKAi+GelOGfkuGemuGevuKAi+GelOGetuGekyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiLhnpjhnrfhnpPigIvhnqLhnrbhnoXigIvhnpThnoThn5LhnoDhnr7hno/igIvhnoDhnrbhnprigIvhnoThnrbhnprigIvhnpThn4Thn4fhnpbhnrvhnpjhn5LhnpYiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4i4Z6fICZhbXA7IOGegeGfkuGemOGfhSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiLhnpbhno7hn4wiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4i4Z6U4Z6J4Z+S4Z6I4Z6aIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+IuGeleGfkuGeiuGfgeGegCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4i4Z6R4Z624Z+G4Z6E4oCL4Z6i4Z6f4Z+LIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IuGeh+GeveGemiI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1rby9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWtvL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0YzdjYTYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1rby9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiLsnbjsh4Qg7Iqk7ZKA65+sIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+Iu2UhOumsO2EsCDshKTsoJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiLsnbjsh4QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiLsoIDsnqUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiLrjIDsg4EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4i66ek7IiYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiLsmqnsp4Ag7YGs6riwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4i7IOJ7IOBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4i67Cp7ZalIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4i7Y6Y7J207KeAIOyImCg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiLsmIg6IDEtNSwgOCwgMTEtMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IuyduOyHhCDrr7jrpqzrs7TquLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IuuvuOumrOuztOq4sOyaqSBQREYg67ew7Ja0IOyEpOy5mCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4i7J247IeEIOyVseyXkCDsmKTrpZgg67Cc7IOdIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+Iu2OmOydtOyngCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+IuyduOyHhCDsnpHsl4Ug7IOd7ISxIOykkSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IlBERuuhnCDsoIDsnqUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4i66qo65OgIO2UhOumsO2EsOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4i7J247IeEIOuMgO2ZlOyDgeyekCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiLqsoDsg4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4i66qo65OgIO2UhOumsO2EsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IuyEnOu5hOyKpCDstpTqsIAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiLqsoDsg4nssL0g7ZGc7Iuc65CoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IuqygOyDieywvSDsiKjqsqjsp5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiLtlITrprDthLAg7LaU6rCAIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiLtlITrprDthLAgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPuuMgCDqsoDsg4nrkKgiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY1MzM4MTcwMzY2MDcxMjgyNDEiPiLtlITrprDthLAgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPuuMgCDqsoDsg4nrkKgiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiLsnbjsh4Qg7ISc67mE7IqkIOyEoO2DnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4i7ZSE66aw7YSwIOqygOyDiSDspJEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiLtlITrprDthLAg7JeG7J2MIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiDsnbjsh4Qg7KSRIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiDst6jshowg7KSRIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiLtlITrprDthLAg7Jik66WYOiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4i7LCo64uo65CcIO2UhOumsO2EsDogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IOyduOyHhCDsnpHsl4UiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg3NDY2MTEyNjQ3MzQyMjI4NjUiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IOyduOyHhCDsnpHsl4UiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4i7Leo7IaMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiLri6Tsi5wg7Iuc7J6RIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fY29ubmVjdGlvbl90b19wcmludGVyIiBtc2dpZD0iMjE1OTI0NjkxNTk3NzI4MjcyOCI+Iu2UhOumsO2EsOyZgCDsl7DqsrDrkJjsp4Ag7JWK7J2MIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4i7JWMIOyImCDsl4bsnYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIOyCrOyaqe2VoCDsiJgg7JeG7J2MIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+IuyduOyHhCDsnpHsl4XsnYQg7IOd7ISx7ZWgIOyImCDsl4bsirXri4jri6QuIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+Iu2dkeuwsSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiLsu6zrn6wiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4i7IS466GcIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+IuqwgOuhnCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4i66qo65GQIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IuuylOychCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk1NDYwNgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWxvLXJMQS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiLgupXgurvguqfguojgurHgupTguoTgurTguqfguoHgurLgupngup7gurTguqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4i4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4LuA4LqE4Lq34LuI4Lqt4LqH4Lqe4Lq04LqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4i4Lqe4Lq04LqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4i4Lqa4Lqx4LqZ4LqX4Lq24LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4i4Lqb4Lqy4LqN4LqX4Lqy4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29waWVzIiBtc2dpZD0iMzYzNDUzMTA0MjgyMjk2ODMwOCI+IuC6quC6s+C7gOC6meC6u+C6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4i4LqC4Lqw4Luc4Lqy4LqU4LqC4Lqt4LqH4Luc4LuJ4Lqy4LuA4LqI4LuJ4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4i4Lqq4Lq1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4i4Lql4Lqn4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikg4Luc4LuJ4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiLgupXgurvguqfguqLgu4jgurLguoc6IDHigJQ1LDgsMTHigJQxMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4i4LuA4Lqa4Lq04LuI4LqH4LqB4LuI4Lqt4LqZ4Lqe4Lq04LqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiLgupXgurTgupTgupXgurHgu4nguofgu4Lgupvgurzgu4HguoHgurzguqHgu4DguprgurTgu4jguocgUERGIOC7gOC6nuC6t+C7iOC6reC7gOC6muC6tOC7iOC6h+C6leC6u+C6p+C6ouC7iOC6suC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4i4LuB4Lqt4Lqx4Lqa4Lqv4Lqe4Lq04Lqh4Lql4Lq74LuJ4Lqh4LuA4Lqr4Lql4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+IuC7nOC7ieC6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+IuC6geC6s+C6peC6seC6h+C6quC7ieC6suC6h+C6p+C6veC6geC6nuC6tOC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IuC6muC6seC6meC6l+C6tuC6geC7gOC6m+C6seKAi+KAi+C6mSBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4i4LqX4Lq44LqB4LuA4LqE4Lq34LuI4Lqt4LqH4Lqe4Lq04LqhLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiLgu5zgu4ngurLgupXgu4jgurLguofguoHgurLgupngup7gurTguqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4i4LqK4Lqt4LqB4Lqr4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IuC6l+C6uOC6geC7gOC6hOC6t+C7iOC6reC6h+C6nuC6tOC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IuC7gOC6nuC6teC7iOC6oeC6muC7jeC6peC6tOC6geC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+IuC6geC7iOC6reC6h+C6iuC6reC6geC6q+C6suC6luC6t+C6geC6quC6sOC7geC6lOC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiLguoHgu4jguq3guofguorguq3guoHguqvgurLgupbgurfguoHgu4Dguorgurfgu4jguq3guociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiLgu4Dgup7gurXgu4jguqHgu4DguoTgurfgu4jguq3guofgup7gurTguqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWxlY3RfcHJpbnRlciIgbXNnaWQ9IjczODg3NjA5Mzk4NzMzNjg2OTgiPiLgu4DguqXgurfguq3guoHgu4DguoTgurfgu4jguq3guofgup7gurTguqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9mb3JnZXRfcHJpbnRlciIgbXNnaWQ9IjUwMzUyODc0OTcyOTE5MTA3NjYiPiLguqXgurfguqHgu4DguoTgurfgu4jguq3guofgup7gurTguqEiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InByaW50X3NlYXJjaF9yZXN1bHRfY291bnRfdXR0ZXJhbmNlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDQ4NDk1MzI2MDY4NTk2NDI1MiI+IuC6nuC6u+C6miA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IOC7gOC6hOC6t+C7iOC6reC6h+C6nuC6tOC6oSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+IuC6nuC6u+C6miA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IOC7gOC6hOC6t+C7iOC6reC6h+C6nuC6tOC6oSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IuC7gOC6peC6t+C6reC6geC6muC7jeC6peC6tOC6geC6suC6meC6geC6suC6meC6nuC6tOC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4i4LqB4Lqz4Lql4Lqx4LqH4LqK4Lqt4LqB4Lqr4Lqy4LuA4LqE4Lq34LuI4Lqt4LqH4Lqe4Lq04LqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4i4Lqa4LuN4LuI4Lqe4Lq74Lqa4LuA4LqE4Lq34LuI4Lqt4LqH4Lqe4Lq04LqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4i4LqB4Lqz4Lql4Lqx4LqH4Lqe4Lq04LqhIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiLguoHgurPguqXgurHguofguo3gurvguoHgu4DguqXgurXguoEgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4i4LuA4LqE4Lq34LuI4Lqt4LqH4Lqe4Lq04Lqh4LuA4LqB4Lq14LqU4LqC4LuN4LuJ4Lqc4Lq04LqU4Lqe4Lqy4LqUIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiLgu4DguoTgurfgu4jguq3guofgup7gurTguqHgupbgurfguoHguprguqXguq3guoEgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiLguofgurLgupngup7gurTguqEgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IuC6h+C6suC6meC6nuC6tOC6oSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNDM3MzY3NDEwNzI2NzE0MTg4NSI+IuC6jeC6u+C6geC7gOC6peC6teC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4i4Lqb4Lq04LqU4LuA4Lqb4Lq14LqU4LuD4Lud4LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fY29ubmVjdGlvbl90b19wcmludGVyIiBtc2dpZD0iMjE1OTI0NjkxNTk3NzI4MjcyOCI+IuC6muC7jeC7iOC6oeC6teC6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6q+C6suC7gOC6hOC6t+C7iOC6reC6h+C6nuC6tOC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+IuC6muC7jeC7iOC6ruC6ueC7ieC6iOC6seC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiAtIOC6muC7jeC7iOC6oeC6teC6ouC6ueC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiLguprgu43gu4jigIvguqrgurLigIvguqHgurLgupTigIvguqrgu4ngurLguofguqfgur3guoHgup7gurTguqHgu4TgupTgu4kiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4i4LqC4Lqy4Lqn4LqU4LqzIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IuC6quC6tSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiLguqXguqfguofgupXgurHgu4nguociPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4i4Lql4Lqn4LqH4LqZ4Lqt4LqZIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiLgupfgurHguofgu53gurvgupQiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4i4LuE4Lql4LqN4LqwIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWx0L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtbHQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM0ZTM4NgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWx0L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNzkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IlByaW50IFNwb29sZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4iU3BhdXNkaW50dXZvIG51c3RhdHltYWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJTcGF1c2RpbnRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4iScWhc2F1Z290aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IlBhc2tpcnRpZXMgdmlldGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4iS29waWpvcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4iUG9waWVyaWF1cyBkeWRpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+IlNwYWx2YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+Ik9yaWVudGFjaWphIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iUHVzbGFwaWFpICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiJwdnouLCAx4oCTNSwgOCwgMTHigJMxMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4iU3BhdWRpbmlvIHBlcsW+acWrcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IsSuZGllZ3RpIFBERiBwZXLFvmnFq3JvcyBwcmllbW9uxJkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IlNwYXVzZGluaW1vIHByb2dyYW1hIHXFvnN0cmlnbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJQdXNsYXBpYWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiJHZW5lcnVvamFtYSBzcGF1c2QuIHXFvmR1b3RpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IknFoXNhdWdvdGkga2FpcCBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iVmlzaSBzcGF1c2RpbnR1dmFp4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiJTcGF1c2RpbmltbyBkaWFsb2dvIGxhbmdhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJJZcWha290aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiJWaXNpIHNwYXVzZGludHV2YWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiJQcmlkxJd0aSBwYXNsYXVnxIUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJQYWllxaFrb3MgbGF1a2VsaXMgcm9kb21hcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiJQYWllxaFrb3MgbGF1a2VsaXMgcGFzbMSXcHRhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+IlByaWTEl3RpIHNwYXVzZGludHV2xIUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWxlY3RfcHJpbnRlciIgbXNnaWQ9IjczODg3NjA5Mzk4NzMzNjg2OTgiPiJQYXNpcmlua3RpIHNwYXVzZGludHV2xIUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9mb3JnZXRfcHJpbnRlciIgbXNnaWQ9IjUwMzUyODc0OTcyOTE5MTA3NjYiPiJQYW1pcsWhdGkgc3BhdXNkaW50dXbEhSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4iUmFzdGEgc3BhdXNkaW50dXbFszogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+IlJhc3RhIHNwYXVzZGludHV2xbM6IDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiJQYXNpcmlua2l0ZSBzcGF1c2RpbmltbyBwYXNsYXVnxIUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IkllxaFrb21hIHNwYXVzZGludHV2xbMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJOZXJhc3RhIHNwYXVzZGludHV2xbMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyOTU5MDM5NTc3NjI0NDczNjIiPiJTcGF1c2RpbmFtYTogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+IkF0xaFhdWtpYW1hOiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiJTcGF1c2RpbnR1dm8ga2xhaWRhOiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4iU3BhdXNkaW50dXZhcyB1xb5ibG9rYXZvOiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+IlNwYXVzZGluaW1vIHXFvmR1b3RpczogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IlNwYXVzZGluaW1vIHXFvmR1b3R5czogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiJBdMWhYXVrdGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IlBhbGVpc3RpIGnFoSBuYXVqbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiJOxJdyYSByecWhaW8gc3Ugc3BhdXNkaW50dXZ1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4ibmXFvmlub21hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiLigJ48eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+4oCcIOKAkyBuZXBhc2lla2lhbWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4iTmVwYXZ5a28gc3VrdXJ0aSBzcGF1c2RpbmltbyB1xb5kdW90aWVzIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+Ik5lc3BhbHZvdGFzIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IlNwYWx2YSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiJTdGHEjWlhcyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJHdWxzxI1pYXMiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IlZpc2kiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4iRGlhcGF6b25hcyI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1sdi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLWx2L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmZmZkZmUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1sdi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJQcmludCBTcG9vbGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IlByaW50ZXJhIGllc3RhdMSranVtaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2J1dHRvbiIgbXNnaWQ9IjY0NTE2NDU2NjI3MTI0NjI2OCI+IkRydWvEgXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiJTYWdsYWLEgXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiJHYWxhbcSTcsS3aXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4iRWtzZW1wbMSBcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+IlBhcMSrcmEgaXptxJNycyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+IktyxIFzYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+IlZpcnppZW5zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iTGFwYXPCoCg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiJwaWVtLiwgMeKAkzUsOCwxMeKAkzEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiJEcnVrYXMgcHJpZWvFoXNrYXTEq2p1bXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+Ikluc3RhbMSTdCBQREbCoHNrYXTEq3TEgWp1IHByaWVrxaFza2F0xKvFoWFuYWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IkRydWthcyBsaWV0b3RuZSBhdmFyxJNqYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJMYXBhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+IsSiZW5lcsSTIGRydWthcyBkYXJideKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IlNhZ2xhYsSBdCBrxIHCoFBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiJWaXNpIHByaW50ZXJp4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiJEcnVrxIHFoWFuYXMgZGlhbG9nbG9kemnFhsWhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+Ik1la2zEk3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4iVmlzaSBwcmludGVyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IlBpZXZpZW5vdCBwYWthbHBvanVtdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+Ik1la2zEk8WhYW5hcyBsb2R6acWGxaEgaXIgcmVkemFtcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4iTWVrbMSTxaFhbmFzIGxvZHppxYbFoSBpciBwYXNsxJNwdHMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iUGlldmllbm90IHByaW50ZXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VsZWN0X3ByaW50ZXIiIG1zZ2lkPSI3Mzg4NzYwOTM5ODczMzY4Njk4Ij4iQXRsYXPEq3QgcHJpbnRlcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9mb3JnZXRfcHJpbnRlciIgbXNnaWQ9IjUwMzUyODc0OTcyOTE5MTA3NjYiPiJOZWF0Y2VyxJN0aWVzIHByaW50ZXJpIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiJBdHJhc3RzIDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz7CoHByaW50ZXJpcyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+IkF0cmFzdGkgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPsKgcHJpbnRlcmkiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiJJenbEk2xpZXRpZXMgZHJ1a8SBxaFhbmFzIHBha2FscG9qdW11Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJQcmludGVydSBtZWtsxJPFoWFuYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+Ik5ldGlrYSBhdHJhc3RzIG5ldmllbnMgcHJpbnRlcmlzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+Ik5vdGllayBkYXJiYSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IGRydWvEgcWhYW5h4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iUMSBcnRyYXVjIGRydWthcyBkYXJidSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiJQcmludGVyYSBrxLzFq2RhIGFyIGRhcmJ1IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiJQcmludGVyaXMgYmxvxLfEk2phIGRhcmJ1IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iRHJ1a2FzIGRhcmJzIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg3NDY2MTEyNjQ3MzQyMjI4NjUiPiJEcnVrYXMgZGFyYmkgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiJBdGNlbHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IlJlc3RhcnTEk3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iTmF2IHNhdmllbm9qdW1hIGFyIHByaW50ZXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4ibmV6aW7EgW1zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+wqDigJQgbmF2IHBpZWVqYW1zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+Ik5ldmFyxJNqYSDEo2VuZXLEk3QgZHJ1a2FzIGRhcmJ1Ijwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+Ik1lbG5iYWx0cyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiJLcsSBc2EiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4iUG9ydHJldHMiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4iQWluYXZhIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiJWaXNpIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IkRpYXBhem9ucyI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQyOTM4NwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiLQpdGN0LLQu9GN0LPRh9C40LnQvSDQsdGD0YTQtdGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+ItCf0YDQuNC90YLQtdGA0LjQudC9INGC0L7RhdC40YDQs9C+0L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiLQpdGN0LLQu9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiLQpdCw0LTQs9Cw0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4i0KXSr9C70Y3RjdC9INCw0LLQsNCz0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4i0KXRg9GD0LvQsdCw0YDRg9GD0LQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+ItCm0LDQsNGB0L3RiyDRhdGN0LzQttGN0Y0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiLTqNC90LPTqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+ItCn0LjQs9C70Y3QuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+Iig8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pINGF0YPRg9C00LDRgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4i0LYu0L3RjC4gMeKAkzUsIDgsIDEx4oCTMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+ItCl0Y3QstC70Y3RhdGN0Y3RgCDRg9GA0YzQtNGH0LjQu9Cw0L0g0YXQsNGA0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxfZm9yX3ByaW50X3ByZXZpZXciIG1zZ2lkPSI2MzY2MzAzOTk3Mzg1NTA5MzMyIj4i0KPRgNGM0LTRh9C40LvQsNC9INGF0LDRgNCw0YXRi9C9INGC0YPQu9C0IFBERiDRhdCw0YDQsNCz0YfQuNC50LMg0YHRg9GD0LvQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+ItCl0Y3QstC70Y3Qs9GHINCw0L/QvyDQs9Cw0YbRgdCw0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4i0KXRg9GD0LTQsNGBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4i0KXRjdCy0LvRjdGFINCw0LbQuNC7INKv0q/RgdCz0Y3QtiDQsdCw0LnQvdCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iUERGINCx0L7Qu9Cz0L7QtiDRhdCw0LTQs9Cw0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+ItCR0q/RhSDQv9GA0LjQvdGC0LXRgNKv0q/QtOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4i0KXRjdCy0LvRjdGFINC00LjQsNC70L7Qs9C4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+ItCl0LDQudGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+ItCR0q/RhSDQv9GA0LjQvdGC0LXRgNKv0q/QtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+ItKu0LnQu9GH0LjQu9Cz0Y3RjSDQvdGN0LzRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4i0KXQsNC50LvRgtGL0L0g0L3Sr9C00LjQudCzINCz0LDRgNCz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiLQpdCw0LnQu9GC0YvQvSDQvdKv0LTQuNC50LMg0LTQsNC70LTQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiLQn9GA0LjQvdGC0LXRgCDQvdGN0LzRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VsZWN0X3ByaW50ZXIiIG1zZ2lkPSI3Mzg4NzYwOTM5ODczMzY4Njk4Ij4i0J/RgNC40L3RgtC10YAg0YHQvtC90LPQvtGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZm9yZ2V0X3ByaW50ZXIiIG1zZ2lkPSI1MDM1Mjg3NDk3MjkxOTEwNzY2Ij4i0J/RgNC40L3RgtC10YDQuNC50LMg0LzQsNGA0YLQsNGFIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+INC/0YDQuNC90YLQtdGAINC+0LvQtNGB0L7QvSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4g0L/RgNC40L3RgtC10YAg0L7Qu9C00YHQvtC9IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4i0KXRjdCy0LvRjdGFINKv0LnQu9GH0LjQu9Cz0Y3RjdCzINGB0L7QvdCz0L7RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4i0J/RgNC40L3RgtC10YAg0YXQsNC50LYg0LHQsNC50L3QsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+ItCf0YDQuNC90YLQtdGAINC+0LvQtNGB0L7QvdCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+ItCl0Y3QstC70Y3QtiDQsdCw0LnQvdCwIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiLQptGD0YbQu9Cw0LYg0LHQsNC50L3QsCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiLQn9GA0LjQvdGC0LXRgNC40LnQvSDQsNC70LTQsNCwIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiLQn9GA0LjQvdGC0LXRgCDRhdC+0YDQuNCz0LvQvtCz0LTRgdC+0L0gPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+INGF0Y3QstC70Y3RhSDQsNC20LjQuyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4g0YXRjdCy0LvRjdGFINCw0LbQu9GD0YPQtCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiLQptGD0YbQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+ItCU0LDRhdC40L0g0Y3RhdC70q/Sr9C70Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiLQn9GA0LjQvdGC0LXRgCDRhdC+0LvQsdC+0LPQtNC+0L7Qs9Kv0Lkg0LHQsNC50L3QsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+ItGC0L7QtNC+0YDRhdC+0LnQs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTINCw0YjQuNCz0LvQsNGFINCx0L7Qu9C+0LzQttCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiLQpdGN0LLQu9GN0YUg0LDQttC70YvQsyDSr9Kv0YHQs9GN0LYg0YfQsNC00YHQsNC90LPSr9C5Ijwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+ItCl0LDRgCAmYW1wOyDQptCw0LPQsNCw0L0iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4i06jQvdCz06kiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4i0JHQvtGB0L7QviI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiLQpdGN0LLRgtGN0Y0iPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+ItCR0q/Qs9C0IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+ItCl0q/RgNGN0Y0iPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0MDU5YjEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1tcy1yTVkvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NDY5ODM2MDc1MzE5ODMxODIxIj4iUGVuc3B1bCBDZXRha2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IlRldGFwYW4gcGVuY2V0YWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJDZXRhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IlNpbXBhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IkRlc3RpbmFzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiJTYWxpbmFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiJTYWl6IEtlcnRhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+Ildhcm5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4iT3JpZW50YXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iSGFsYW1hbiAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4iY3RoLiAx4oCUNSw4LDEx4oCUMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IlByYXRvbnRvbiBjZXRhayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxfZm9yX3ByaW50X3ByZXZpZXciIG1zZ2lkPSI2MzY2MzAzOTk3Mzg1NTA5MzMyIj4iUGFzYW5nIHBlbWFwYXIgUERGIHVudHVrIHByYXRvbnRvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4iQXBsIHBlcmNldGFrYW4gcmFuYXAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4iSGFsYW1hbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+Ik1lbmphbmEga2VyamEgY2V0YWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2FzX3BkZiIgbXNnaWQ9IjU3MTg0NTQxMTk4NDc1OTY4NTMiPiJTaW1wYW4gc2ViYWdhaSBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iU2VtdWEgcGVuY2V0YWsuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+IkRpYWxvZyBjZXRha2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+IkNhcmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4iU2VtdWEgcGVuY2V0YWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiJUYW1iYWhrYW4gcGVya2hpZG1hdGFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4iS290YWsgY2FyaWFuIGRpdHVuanVra2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IktvdGFrIGNhcmlhbiB0ZXJzZW1idW55aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+IlRhbWJhaCBwZW5jZXRhayI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9zZWxlY3RfcHJpbnRlciAoNzM4ODc2MDkzOTg3MzM2ODY5OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9mb3JnZXRfcHJpbnRlciAoNTAzNTI4NzQ5NzI5MTkxMDc2NikgLS0+CisgICAgPHNraXAgLz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBwZW5jZXRhayBkaXRlbXVpIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBwZW5jZXRhayBkaXRlbXVpIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4iUGlsaWggcGVya2hpZG1hdGFuIGNldGFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJNZW5jYXJpIHBlbmNldGFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4iVGlhZGEgcGVuY2V0YWsgZGl0ZW11aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+Ik1lbmNldGFrIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiJNZW1iYXRhbGthbiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiJSYWxhdCBwZW5jZXRhayA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4iUGVuY2V0YWsgZGlzZWthdCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+IktlcmphIGNldGFrYW4gPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IktlcmphIGNldGFrYW4gPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiJCYXRhbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iTXVsYWthbiBzZW11bGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iVGlhZGEgc2FtYnVuZ2FuIGtlIHBlbmNldGFrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4idGlkYWsgZGlrZXRhaHVpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOKAkyB0aWRhayB0ZXJzZWRpYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJUaWRhayBkYXBhdCBtZW5qYW5hIGtlcmphIGNldGFrYW4iPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4iSGl0YW0gJmFtcDsgUHV0aWgiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4iV2FybmEiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4iUG90cmV0IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+IkxhbmRza2FwIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiJTZW11YSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiJKdWxhdCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLW5iL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzNDRlMTEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJVdHNrcmlmdHNrw7giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4iU2tyaXZlcmlubnN0aWxsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJTa3JpdiB1dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IkxhZ3JlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4iRGVzdGluYXNqb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4iS29waWVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiJQYXBpcnN0w7hycmVsc2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiJGYXJnZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+IlJldG5pbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiJTaWRlciAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4iZi5la3MuIDHigJM1LCA4LDEx4oCTMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IlV0c2tyaWZ0c2ZvcmjDpW5kc3Zpc25pbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+Ikluc3RhbGxlciBQREYtbGVzZXIgZm9yIGZvcmjDpW5kc3Zpc25pbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IlV0c2tyaWZ0c2FwcGVuIGtyYXNqZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4iU2lkZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiJHZW5lcmVyZXIgdXRza3JpZnRzam9iYiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IkxhZ3JlIHNvbSBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iQWxsZSBza3JpdmVyZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4iU2tyaXYgdXQgZGlhbG9nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+IlPDuGsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4iQWxsZSBza3JpdmVyZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IkxlZ2cgdGlsIHRqZW5lc3RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4iU8O4a2VmZWx0ZXQgdmlzZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4iU8O4a2VmZWx0ZXQgZXIgc2tqdWx0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iTGVnZyB0aWwgc2tyaXZlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlbGVjdF9wcmludGVyIiBtc2dpZD0iNzM4ODc2MDkzOTg3MzM2ODY5OCI+IlZlbGcgc2tyaXZlcmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZm9yZ2V0X3ByaW50ZXIiIG1zZ2lkPSI1MDM1Mjg3NDk3MjkxOTEwNzY2Ij4iR2xlbSBza3JpdmVyZW4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InByaW50X3NlYXJjaF9yZXN1bHRfY291bnRfdXR0ZXJhbmNlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDQ4NDk1MzI2MDY4NTk2NDI1MiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gc2tyaXZlciBibGUgZnVubmV0IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBza3JpdmVyZSBibGUgZnVubmV0IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4iVmVsZyB1dHNrcmlmdHN0amVuZXN0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4iU8O4a2VyIGV0dGVyIHNrcml2ZXJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4iRmFudCBpbmdlbiBza3JpdmVyZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IlNrcml2ZXIgdXQgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+IkF2YnJ5dGVyIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+IlNrcml2ZXJmZWlsIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiJTa3JpdmVyZW4gYmxva2tlcnRlIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iVXRza3JpZnRzam9iYiBmb3IgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IlV0c2tyaWZ0c2pvYmJlciBmb3IgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiJBdmJyeXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IlN0YXJ0IHDDpSBueXR0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fY29ubmVjdGlvbl90b19wcmludGVyIiBtc2dpZD0iMjE1OTI0NjkxNTk3NzI4MjcyOCI+IkluZ2VuIGZvcmJpbmRlbHNlIG1lZCBza3JpdmVyZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJ1a2plbnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIHV0aWxnamVuZ2VsaWciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4iS3VubmUgaWtrZSBnZW5lcmVyZSB1dHNrcmlmdHNqb2JiZW4iPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4iU3ZhcnQgb2cgaHZpdHQiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4iRmFyZ2UiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4iU3TDpWVuZGUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4iTGlnZ2VuZGUiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IkFsbGUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4iT21yw6VkZSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1ubC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLW5sL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMTI1MDgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1ubC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJBZmRydWtzcG9vbGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IlByaW50ZXJpbnN0ZWxsaW5nZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJBZmRydWtrZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiJPcHNsYWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4iQmVzdGVtbWluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiJBYW50YWwgZXhlbXBsYXJlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4iUGFwaWVyZm9ybWFhdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+IktsZXVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4iU3RhbmQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiJQYWdpbmFcJ3MgKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+ImJpanYuIDHigJQ1LDgsMTHigJQxMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4iQWZkcnVrdm9vcmJlZWxkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiJQZGYtdmlld2VyIGluc3RhbGxlcmVuIHZvb3Igdm9vcmJlZWxkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiJBZmRydWstYXBwIGdlY3Jhc2h0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+IlBhZ2luYVwncyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+IkFmZHJ1a3RhYWsgZ2VuZXJlcmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iT3BzbGFhbiBhbHMgcGRmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+IkFsbGUgcHJpbnRlcnPigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+IkFmZHJ1a2RpYWxvb2d2ZW5zdGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+IlpvZWtlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiJBbGxlIHByaW50ZXJzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4iU2VydmljZSB0b2V2b2VnZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJab2VrdmFrIHdlZXJnZWdldmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IlpvZWt2YWsgdmVyYm9yZ2VuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iUHJpbnRlciB0b2V2b2VnZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWxlY3RfcHJpbnRlciIgbXNnaWQ9IjczODg3NjA5Mzk4NzMzNjg2OTgiPiJQcmludGVyIHNlbGVjdGVyZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9mb3JnZXRfcHJpbnRlciIgbXNnaWQ9IjUwMzUyODc0OTcyOTE5MTA3NjYiPiJQcmludGVyIHZlcmdldGVuIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IHByaW50ZXIgZ2V2b25kZW4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY1MzM4MTcwMzY2MDcxMjgyNDEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IHByaW50ZXJzIGdldm9uZGVuIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4iQWZkcnVrc2VydmljZSBraWV6ZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IlByaW50ZXJzIHpvZWtlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+IkdlZW4gcHJpbnRlcnMgZ2V2b25kZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyOTU5MDM5NTc3NjI0NDczNjIiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IGFmZHJ1a2tlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4gYW5udWxlcmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiJQcmludGVyZm91dCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiBnZWJsb2trZWVyZCBkb29yIHByaW50ZXIiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiBhZmRydWt0YWFrIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiBhZmRydWt0YWtlbiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiJBbm51bGVyZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+Ik9wbmlldXcgc3RhcnRlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiJHZWVuIHZlcmJpbmRpbmcgbWV0IHByaW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJvbmJla2VuZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiDigJMgbmlldCBiZXNjaGlrYmFhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJLYW4gZGUgYWZkcnVrdGFhayBuaWV0IGdlbmVyZXJlbiI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiJad2FydC13aXQiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4iS2xldXIiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4iUG9ydHJldCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJMYW5kc2NoYXAiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IkFsbGUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4iQmVyZWlrIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXBsL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtcGwvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRhNGMxNAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXBsL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IkJ1Zm9yIHd5ZHJ1a3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4iVXN0YXdpZW5pYSBkcnVrYXJraSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2J1dHRvbiIgbXNnaWQ9IjY0NTE2NDU2NjI3MTI0NjI2OCI+IkRydWt1aiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IlphcGlzeiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+Ik1pZWpzY2UgZG9jZWxvd2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4iS29waWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+IlJvem1pYXIgcGFwaWVydSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+IktvbG9yIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4iT3JpZW50YWNqYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+IlN0cm9ueSAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4ibnAuIDEtNSwgOCwgMTEtMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IlBvZGdsxIVkIHd5ZHJ1a3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IlphaW5zdGFsdWogcHJ6ZWdsxIVkYXJrxJkgUERGLCBieSB6b2JhY3p5xIcgcG9kZ2zEhWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IkFwbGlrYWNqYSBkcnVrdWrEhWNhIHVsZWfFgmEgYXdhcmlpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+IlN0cm9ueSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+IkdlbmVyb3dhbmllIHphZGFuaWEgd3lkcnVrdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IlphcGlzeiBqYWtvIFBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiJXc3p5c3RraWUgZHJ1a2Fya2nigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+Ik9rbm8gZHJ1a293YW5pYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJTenVrYWoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4iV3N6eXN0a2llIGRydWthcmtpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4iRG9kYWogdXPFgnVnxJkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJQb2xlIHd5c3p1a2l3YW5pYSBqZXN0IHdpZG9jem5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IlBvbGUgd3lzenVraXdhbmlhIGplc3QgdWtyeXRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iRG9kYWogZHJ1a2Fya8SZIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiJabmFsZXppb25vIDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gZHJ1a2Fya8SZIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4iWm5hbGV6aW9uZSBkcnVrYXJraTogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+Ild5YmllcnogdXPFgnVnxJkgZHJ1a293YW5pYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4iU3p1a2FuaWUgZHJ1a2FyZWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJOaWUgem5hbGV6aW9ubyBkcnVrYXJlayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IkRydWtvd2FuaWU6IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiJBbnVsb3dhbmllOiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiJCxYLEhWQgZHJ1a2Fya2k6IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiJEcnVrYXJrYSB6YWJsb2tvd2HFgmEgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IHphZGFuaWUgZHJ1a293YW5pYSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IlphZGFuaWEgZHJ1a293YW5pYTogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiJBbnVsdWoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+Ik9kIG5vd2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iQnJhayBwb8WCxIVjemVuaWEgeiBkcnVrYXJrxIUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJicmFrIGluZm9ybWFjamkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIG5pZWRvc3TEmXBuZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJOaWUgdWRhxYJvIHNpxJkgd3lnZW5lcm93YcSHIHphZGFuaWEgZHJ1a293YW5pYSI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiJDemFybm8tYmlhxYJlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IktvbG9yIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+IlBpb25vd2EiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4iUG96aW9tYSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4iV3N6eXN0a2llIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+Ilpha3JlcyI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1wdC1yUFQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1wdC1yUFQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJmYzM5NQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJQcmludCBTcG9vbGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IkRlZmluacOnw7VlcyBkYSBpbXByZXNzb3JhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4iSW1wcmltaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiJHdWFyZGFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4iRGVzdGlubyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiJDw7NwaWFzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiJUYW1hbmhvIGRvIHBhcGVsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4iQ29yIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4iT3JpZW50YcOnw6NvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iUMOhZ2luYXMgKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+InAuIGV4LiAxLTUsIDgsIDExLTEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiJQcsOpLXZpc3VhbGl6YcOnw6NvIGRlIGltcHJlc3PDo28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+Ikluc3RhbGFyIG8gbGVpdG9yIGRlIFBERiBwYXJhIHByw6ktdmlzdWFsaXphw6fDo28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IkEgYXBsaWNhw6fDo28gZGUgaW1wcmVzc8OjbyBibG9xdWVvdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJQw6FnaW5hcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+IkEgZ2VyYXIgdGFyZWZhIGRlIGltcHJlc3PDo28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2FzX3BkZiIgbXNnaWQ9IjU3MTg0NTQxMTk4NDc1OTY4NTMiPiJHdWFyZGFyIGNvbW8gUERGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+IlRvZGFzIGFzIGltcHJlc3NvcmFzLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiJDYWl4YSBkZSBkacOhbG9nbyBkZSBpbXByZXNzw6NvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+IlBlc3F1aXNhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiJUb2RhcyBhcyBpbXByZXNzb3JhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IkFkaWNpb25hciBzZXJ2acOnbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+IkNhaXhhIGRlIHBlc3F1aXNhIGFwcmVzZW50YWRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IkNhaXhhIGRlIHBlc3F1aXNhIG9jdWx0YWRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iQWRpY2lvbmFyIGltcHJlc3NvcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWxlY3RfcHJpbnRlciIgbXNnaWQ9IjczODg3NjA5Mzk4NzMzNjg2OTgiPiJTZWxlY2lvbmFyIGltcHJlc3NvcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9mb3JnZXRfcHJpbnRlciIgbXNnaWQ9IjUwMzUyODc0OTcyOTE5MTA3NjYiPiJFc3F1ZWNlciBpbXByZXNzb3JhIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IGltcHJlc3NvcmEgZW5jb250cmFkYSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gaW1wcmVzc29yYXMgZW5jb250cmFkYXMiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiJFc2NvbGhlciBvIHNlcnZpw6dvIGRlIGltcHJlc3PDo28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IkEgcHJvY3VyYXIgaW1wcmVzc29yYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJOZW5odW1hIGltcHJlc3NvcmEgZW5jb250cmFkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IkEgaW1wcmltaXIgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+IkEgY2FuY2VsYXIgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4iRXJybyBkYSBpbXByZXNzb3JhIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiJBIGltcHJlc3NvcmEgYmxvcXVlb3UgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiJUYXJlZmEgZGUgaW1wcmVzc8OjbzogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IlRhcmVmYXMgZGUgaW1wcmVzc8OjbzogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiJDYW5jZWxhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iUmVpbmljaWFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fY29ubmVjdGlvbl90b19wcmludGVyIiBtc2dpZD0iMjE1OTI0NjkxNTk3NzI4MjcyOCI+IlNlbSBsaWdhw6fDo28gw6AgaW1wcmVzc29yYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+ImRlc2NvbmhlY2lkbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiDigJMgaW5kaXNwb27DrXZlbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJOw6NvIGZvaSBwb3Nzw612ZWwgZ2VyYXIgYSB0YXJlZmEgZGUgaW1wcmVzc8OjbyI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiJQcmV0byBlIGJyYW5jbyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiJDb3IiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4iVmVydGljYWwiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4iSG9yaXpvbnRhbCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4iVG9kYXMiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4iSW50ZXJ2YWxvIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXB0L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtcHQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWUyNjAzZQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXB0L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IlNwLiBkZSBpbXByZXNzw6NvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IkNvbmZpZ3VyLiBkYSBpbXByZXNzb3JhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4iSW1wcmltaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiJTYWx2YXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiJEZXN0aW5vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29waWVzIiBtc2dpZD0iMzYzNDUzMTA0MjgyMjk2ODMwOCI+IkPDs3BpYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+IlRhbWFuaG8gZG8gcGFwZWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiJDb3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiJPcmllbnRhw6fDo28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiJQw6FnaW5hcyAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4iRXguOiAx4oCTNSwgOCwgMTHigJMxMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4iVmlzdWFsaXphw6fDo28gZGUgaW1wcmVzc8OjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxfZm9yX3ByaW50X3ByZXZpZXciIG1zZ2lkPSI2MzY2MzAzOTk3Mzg1NTA5MzMyIj4iSW5zdGFsYXIgbyB2aXN1YWxpemFkb3IgZGUgUERGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiJPIGFwbGljYXRpdm8gZGUgaW1wcmVzc8OjbyBmYWxob3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4iUMOhZ2luYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiJHZXJhbmRvIHRyYWJhbGhvIGRlIGltcHJlc3PDo28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2FzX3BkZiIgbXNnaWQ9IjU3MTg0NTQxMTk4NDc1OTY4NTMiPiJTYWx2YXIgY29tbyBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iVG9kYXMgYXMgaW1wcmVzc29yYXPigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+IkRpw6Fsb2dvIGRlIGltcHJlc3PDo28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4iUGVzcXVpc2FyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IlRvZGFzIGFzIGltcHJlc3NvcmFzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4iQWRpY2lvbmFyIHNlcnZpw6dvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4iQ2FpeGEgZGUgcGVzcXVpc2EgZXhpYmlkYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiJDYWl4YSBkZSBwZXNxdWlzYSBvY3VsdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiJBZGljaW9uYXIgaW1wcmVzc29yYSI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9zZWxlY3RfcHJpbnRlciAoNzM4ODc2MDkzOTg3MzM2ODY5OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9mb3JnZXRfcHJpbnRlciAoNTAzNTI4NzQ5NzI5MTkxMDc2NikgLS0+CisgICAgPHNraXAgLz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBpbXByZXNzb3JhIGVuY29udHJhZGEiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY1MzM4MTcwMzY2MDcxMjgyNDEiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IGltcHJlc3NvcmFzIGVuY29udHJhZGFzIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4iU2VsZWNpb25lIG8gc2VydmnDp28gZGUgaW1wcmVzc8OjbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4iUHJvY3VyYW5kbyBpbXByZXNzb3JhcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+Ik5lbmh1bWEgaW1wcmVzc29yYSBlbmNvbnRyYWRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4iSW1wcmltaW5kbyA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iQ2FuY2VsYW5kbyA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiJFcnJvIGFvIGltcHJpbWlyIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiJBIGltcHJlc3NvcmEgYmxvcXVlb3UgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiJUcmFiYWxobyBkZSBpbXByZXNzw6NvIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg3NDY2MTEyNjQ3MzQyMjI4NjUiPiJUcmFiYWxob3MgZGUgaW1wcmVzc8OjbyA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNDM3MzY3NDEwNzI2NzE0MTg4NSI+IkNhbmNlbGFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiJSZWluaWNpYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iU2VtIGNvbmV4w6NvIGNvbSBhIGltcHJlc3NvcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJkZXNjb25oZWNpZG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIG7Do28gZGlzcG9uw612ZWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4iTsOjbyBmb2kgcG9zc8OtdmVsIGdlcmFyIG8gdHJhYmFsaG8gZGUgaW1wcmVzc8OjbyI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiJQcmV0byBlIGJyYW5jbyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiJDb3IiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4iUmV0cmF0byI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJQYWlzYWdlbSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4iVG9kYXMiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4iSW50ZXJ2YWxvIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXJvL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtcm8vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRkMzg5YQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXJvL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IkRlcnVsYXRvciBwcmludC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4iU2V0xINyaWxlIGltcHJpbWFudGVpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4iUHJpbnRhyJtpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4iU2FsdmHIm2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiJEZXN0aW5hyJtpZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiJDb3BpaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4iRm9ybWF0dWwgaMOicnRpZWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiJDb2xvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+Ik9yaWVudGFyZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+IlBhZ2luaSAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4iZGUgZXguIDEtNSwgOCwgMTEtMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IlByZXZpenVhbGl6YcibaSBwcmludGFyZWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+Ikluc3RhbGHIm2kgUERGIHZpZXdlciBwZW50cnUgcHJldml6dWFsaXphcmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IkFwbGljYcibaWEgZGUgcHJpbnRhcmUgcy1hIGJsb2NhdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJQYWdpbmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiJTZSBnZW5lcmVhesSDIHNhcmNpbsSDIHByaW50YXJlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iU2FsdmHIm2kgY2EgUERGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+IlRvYXRlIGltcHJpbWFudGVsZS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4iQ2FzZXRhIGRlIGRpYWxvZyBkZSBwcmludGFyZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJDxIN1dGHIm2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4iVG9hdGUgaW1wcmltYW50ZWxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4iQWTEg3VnYcibaSB1biBzZXJ2aWNpdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+IkNhc2V0YSBkZSBjxIN1dGFyZSBlc3RlIGFmaciZYXTEgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiJDYXNldGEgZGUgY8SDdXRhcmUgZXN0ZSBhc2N1bnPEgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+IkFkxIN1Z2HIm2kgbyBpbXByaW1hbnTEgyI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9zZWxlY3RfcHJpbnRlciAoNzM4ODc2MDkzOTg3MzM2ODY5OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9mb3JnZXRfcHJpbnRlciAoNTAzNTI4NzQ5NzI5MTkxMDc2NikgLS0+CisgICAgPHNraXAgLz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBpbXByaW1hbnTEgyBnxINzaXTEgyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gKGRlKSBpbXByaW1hbnRlIGfEg3NpdGUiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiJBbGVnZcibaSBzZXJ2aWNpdWwgZGUgcHJpbnRhcmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IlNlIGNhdXTEgyBpbXByaW1hbnRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4iTnUgYXUgZm9zdCBnxINzaXRlIGltcHJpbWFudGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyOTU5MDM5NTc3NjI0NDczNjIiPiJTZSBwcmludGVhesSDIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiJTZSBhbnVsZWF6xIMgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4iRXJvYXJlIGRlIHByaW50YXJlOiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4iUHJpbnRhcmUgYmxvY2F0xIM6IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iU2FyY2luxIMgZGUgcHJpbnRhcmUgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IlNhcmNpbmkgZGUgcHJpbnRhcmUgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiJBbnVsYcibaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iUmVwb3JuacibaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiJOdSBleGlzdMSDIGNvbmV4aXVuZSBsYSBvIGltcHJpbWFudMSDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4ibmVjdW5vc2N1dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiAtIGluZGlzcG9uaWJpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJOdSBzLWEgcHV0dXQgZ2VuZXJhIHNhcmNpbmEgZGUgcHJpbnRhcmUiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4iQWxiLW5lZ3J1IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IkNvbG9yIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+IlBvcnRyZXQiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4iUGVpc2FqIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiJUb2F0ZSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiJJbnRlcnZhbCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1ydS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXJ1L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlYjJkNTcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1ydS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiLQodC/0YPQu9C10YAg0L/QtdGH0LDRgtC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+ItCd0LDRgdGC0YDQvtC50LrQuCDQv9GA0LjQvdGC0LXRgNCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4i0J/QtdGH0LDRgtGMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4i0KHQvtGF0YDQsNC90LjRgtGMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4i0J/RgNC40L3RgtC10YAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4i0JrQvtC/0LjQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4i0KDQsNC30LzQtdGAINCx0YPQvNCw0LPQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+ItCm0LLQtdGC0L3QvtC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4i0J7RgNC40LXQvdGC0LDRhtC40Y8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiLQodCi0KDQkNCd0JjQptCrICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiLQvdCw0L/RgC4sIDHigJM1LCA4LCAxMeKAkzEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiLQn9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdGL0Lkg0L/RgNC+0YHQvNC+0YLRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxfZm9yX3ByaW50X3ByZXZpZXciIG1zZ2lkPSI2MzY2MzAzOTk3Mzg1NTA5MzMyIj4i0KPRgdGC0LDQvdC+0LLQuNGC0Ywg0YHRgNC10LTRgdGC0LLQviDQv9GA0L7RgdC80L7RgtGA0LAgUERGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiLQodCx0L7QuSDQv9GA0LjQu9C+0LbQtdC90LjRjyDQv9C10YfQsNGC0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4i0JrQvtC70LjRh9C10YHRgtCy0L4g0YHRgtGA0LDQvdC40YYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiLQodC+0LfQtNCw0L3QuNC1INC30LDQtNCw0L3QuNGPINC/0LXRh9Cw0YLQuOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+ItCh0L7RhdGA0LDQvdC40YLRjCDQutCw0LogUERGLdGE0LDQudC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+ItCS0YHQtSDQv9GA0LjQvdGC0LXRgNGLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiLQlNC40LDQu9C+0LPQvtCy0L7QtSDQvtC60L3QviDQv9C10YfQsNGC0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4i0J/QvtC40YHQuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiLQktGB0LUg0L/RgNC40L3RgtC10YDRiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+ItCU0L7QsdCw0LLQuNGC0Ywg0YHQu9GD0LbQsdGDINC/0LXRh9Cw0YLQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+ItCe0LrQvdC+INC/0L7QuNGB0LrQsCDQv9C+0LrQsNC30LDQvdC+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+ItCe0LrQvdC+INC/0L7QuNGB0LrQsCDRgdC60YDRi9GC0L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiLQlNC+0LHQsNCy0LjRgtGMINC/0YDQuNC90YLQtdGAIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiLQndCw0LnQtNC10L0gPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiDQv9GA0LjQvdGC0LXRgCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+ItCd0LDQudC00LXQvdC+INC/0YDQuNC90YLQtdGA0L7QsjogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+ItCS0YvQsdC10YDQuNGC0LUg0YHQu9GD0LbQsdGDINC/0LXRh9Cw0YLQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4i0J/QvtC40YHQuiDQv9GA0LjQvdGC0LXRgNC+0LLigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiLQndC40YfQtdCz0L4g0L3QtSDQvdCw0LnQtNC10L3QviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+ItCf0LXRh9Cw0YLRjCDQt9Cw0LTQsNC90LjRjyBcIjx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz5cIuKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbGxpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTgyMTc1OTU5NDcwNDcwMzE5NyI+ItCe0YLQvNC10L3QsCDQt9Cw0LTQsNC90LjRjyA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiLQntGI0LjQsdC60LAg0LfQsNC00LDQvdC40Y8gXCI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+XCIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiLQl9Cw0LTQsNC90LjQtSBcIjx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz5cIiDQt9Cw0LHQu9C+0LrQuNGA0L7QstCw0L3QviI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiLQl9Cw0LTQsNC90LjQtSDQv9C10YfQsNGC0Lg6IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg3NDY2MTEyNjQ3MzQyMjI4NjUiPiLQl9Cw0LTQsNC90LjRjyDQv9C10YfQsNGC0Lg6IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4i0J7RgtC80LXQvdCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiLQn9C+0LLRgtC+0YDQuNGC0YwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4i0J3QtdGCINGB0LLRj9C30Lgg0YEg0L/RgNC40L3RgtC10YDQvtC8Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4i0L3QtdC40LfQstC10YHRgtC90L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz7CoOKAkyDQvdC10LTQvtGB0YLRg9C/0LXQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiLQndC1INGD0LTQsNC70L7RgdGMINC+0YLQv9GA0LDQstC40YLRjCDQtNC+0LrRg9C80LXQvdGCINC90LAg0L/QtdGH0LDRgtGMLiI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiLQp9C10YDQvdC+LdCx0LXQu9C+0LUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4i0KbQstC10YLQvdC+0LUiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4i0JrQvdC40LbQvdCw0Y8iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4i0JDQu9GM0LHQvtC80L3QsNGPIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiLQktGB0LUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4i0JTQuNCw0L/QsNC30L7QvSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1zay9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXNrL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4NjgwNzgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1zay9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJaYXJhxI9vdmHEjSB0bGHEjWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4iTmFzdGF2ZW5pYSB0bGHEjWlhcm5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4iVGxhxI1pxaUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiJVbG/FvmnFpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IkNpZcS+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29waWVzIiBtc2dpZD0iMzYzNDUzMTA0MjgyMjk2ODMwOCI+IkvDs3BpZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4iVmXEvmtvc8WlIHBhcGllcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiJGYXJiYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+Ik9yaWVudMOhY2lhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iU1RSw4FOS1kgKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+Im5hcHIuIDHigJM1LCA4LCAxMeKAkzEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiJVa8Ohxb5rYSBwcmVkIHRsYcSNb3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IkluxaF0YWxvdmHFpSB6b2JyYXpvdmHEjSBQREYgbmEgem9icmF6ZW5pZSB1a8Ohxb5reSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4iQXBsaWvDoWNpYSBwcmUgdGxhxI0gemx5aGFsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJTdHJhbnkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiJHZW5lcnVqZSBzYSB0bGHEjW92w6Egw7psb2hhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iVWxvxb5pxaUgYWtvIFBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiJWxaFldGt5IHRsYcSNaWFybmUuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+IkRpYWzDs2dvdsOpIG9rbm8gdGxhxI1lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+IlZZSMS9QUTDgVZBTklFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IlbFoWV0a3kgdGxhxI1pYXJuZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IlByaWRhxaUgc2x1xb5idSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+IlZ5aMS+YWTDoXZhY2llIHBvbGUgc2Egem9icmF6dWplIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IlZ5aMS+YWTDoXZhY2llIHBvbGUgamUgc2tyeXTDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+IlByaWRhxaUgdGxhxI1pYXJlxYgiPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfc2VsZWN0X3ByaW50ZXIgKDczODg3NjA5Mzk4NzMzNjg2OTgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfZm9yZ2V0X3ByaW50ZXIgKDUwMzUyODc0OTcyOTE5MTA3NjYpIC0tPgorICAgIDxza2lwIC8+CisgIDxwbHVyYWxzIG5hbWU9InByaW50X3NlYXJjaF9yZXN1bHRfY291bnRfdXR0ZXJhbmNlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDQ4NDk1MzI2MDY4NTk2NDI1MiI+Ik5hxaFsYSBzYSA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IHRsYcSNaWFyZcWIIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4iUG/EjWV0IG7DoWpkZW7DvWNoIHRsYcSNaWFybsOtOiA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4iVsO9YmVyIHRsYcSNb3ZlaiBzbHXFvmJ5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJWeWjEvmFkw6F2YW5pZSB0bGHEjWlhcm7DrSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+Ik5lbmHFoWxpIHNhIMW+aWFkbmUgdGxhxI1pYXJuZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IlByZWJpZWhhIHRsYcSNIMO6bG9oeSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iUHJlYmllaGEgenJ1xaFlbmllIMO6bG9oeSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiJDaHliYSB0bGHEjWlhcm5lIOKAkyDDumxvaGEgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IlRsYcSNaWFyZcWIIHphYmxvay4gw7psb2h1IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iUG/EjWV0IHRsYcSNb3bDvWNoIMO6bG9oOiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iUG/EjWV0IHRsYcSNb3bDvWNoIMO6bG9oOiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNDM3MzY3NDEwNzI2NzE0MTg4NSI+IlpydcWhacWlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiJTcHVzdGnFpSB6bm92YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiLFvWlhZG5lIHByaXBvamVuaWUgayB0bGHEjWlhcm5pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4ibmV6bsOhbWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIG5pZSBqZSBrIGRpc3BvesOtY2lpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+IlRsYcSNb3bDuiDDumxvaHUgbmllIGplIG1vxb5uw6kgdnl0dm9yacWlIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+IsSMaWVybm9iaWVsZSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiJGYXJiYSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiJOYSB2w73FoWt1IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+Ik5hIMWhw61ya3UiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IlbFoWV0a3kiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4iUm96c2FoIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXNsL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtc2wvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE4ZjU2ZAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXNsL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IlRpc2suIHYgb3phZGp1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+Ik5hc3Rhdml0dmUgdGlza2FsbmlrYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2J1dHRvbiIgbXNnaWQ9IjY0NTE2NDU2NjI3MTI0NjI2OCI+Ik5hdGlzbmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiJTaHJhbmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiJDaWxqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29waWVzIiBtc2dpZD0iMzYzNDUzMTA0MjgyMjk2ODMwOCI+IsWgdC4ga29waWoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+IlZlbGlrb3N0IHBhcGlyamEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiJCYXJ2bm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiJQb3N0YXZpdGV2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4ixaB0LiBzdHJhbmkgKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+Im5wci4gMeKAkzUsIDgsIDEx4oCTMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IlByZWRvZ2xlZCB0aXNrYW5qYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxfZm9yX3ByaW50X3ByZXZpZXciIG1zZ2lkPSI2MzY2MzAzOTk3Mzg1NTA5MzMyIj4iWmEgcHJlZG9nbGVkIG5hbWVzdGl0ZSBwcmVnbGVkb3ZhbG5payB6YSBQREYtamUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IkFwbGlrYWNpamEgemEgdGlza2FuamUgc2UgamUgenJ1xaFpbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4ixaB0LiBzdHJhbmk6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4iVXN0dmFyamFuamUgemFodGV2ZSB6YSB0aXNrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iU2hyYW5pIGtvdCBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iVnNpIHRpc2thbG5pa2kg4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiJQb2dvdm9ybm8gb2tubyB6YSB0aXNrYW5qZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJJc2thbmplIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IlZzaSB0aXNrYWxuaWtpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4iRG9kYWogc3Rvcml0ZXYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJJc2thbG5vIHBvbGplIGplIHByaWthemFubyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiJJc2thbG5vIHBvbGplIGplIHNrcml0byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+IkRvZGFqYW5qZSB0aXNrYWxuaWthIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiJOYWpkZW4gPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiB0aXNrYWxuaWsiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY1MzM4MTcwMzY2MDcxMjgyNDEiPiLFoHRldmlsbyBuYWpkZW5paCB0aXNrYWxuaWtvdjogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+Ikl6YmVyaXRlIHRpc2thbG5vIHN0b3JpdGV2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJJc2thbmplIHRpc2thbG5pa292Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4iVGlza2Fsbmlrb3YgbmkgbW9nb8SNZSBuYWp0aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IlRpc2thbmplOiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iUHJla2xpYzogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4iTmFwYWthIHRpc2thbG5pa2E6IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiJUaXNrYWxuaWsgamUgYmxva2lyYWwgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiJUaXNrYWxubyBvcHJhdmlsbzogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IlRpc2thbG5hIG9wcmF2aWxhOiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNDM3MzY3NDEwNzI2NzE0MTg4NSI+IlByZWtsacSNaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlc3RhcnQiIG1zZ2lkPSIyNDcyMDM0MjI3MDM3ODA4NzQ5Ij4iWmHEjW5pIHpub3ZhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fY29ubmVjdGlvbl90b19wcmludGVyIiBtc2dpZD0iMjE1OTI0NjkxNTk3NzI4MjcyOCI+Ik5pIHBvdmV6YXZlIHMgdGlza2Fsbmlrb20iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJuZXpuYW5vIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOKAkyBuaSBuYSB2b2xqbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiJUaXNrYWxuZWdhIG9wcmF2aWxhIG5pIGJpbG8gbW9nb8SNZSB1c3R2YXJpdGkiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4ixIxybm8tYmVsbyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiJCYXJ2bm8iPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4iTmF2cGnEjW5vIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+Ikxlxb5lxI1lIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiJWc2UiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4iT2JzZWciPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtc3Ivc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1zci9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmFiMWE2Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtc3Ivc3RyaW5ncy54bWwKQEAgLTAsMCArMSw3OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NDY5ODM2MDc1MzE5ODMxODIxIj4i0KjRgtCw0LzQvy4g0LjQtyDQvNC10LzQvtGALiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkdmFuY2VkX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjU3NjQyMjUwOTEyODk0MTU2MzIiPiLQn9C+0LTQtdGI0LDQstCw0ZrQsCDRiNGC0LDQvNC/0LDRh9CwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4i0KjRgtCw0LzQv9Cw0ZgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiLQodCw0YfRg9Cy0LDRmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+ItCe0LTRgNC10LTQuNGI0YLQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiLQmtC+0L/QuNGY0LUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+ItCS0LXQu9C40YfQuNC90LAg0L/QsNC/0LjRgNCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4i0JHQvtGY0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiLQn9C+0LvQvtC20LDRmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+ItCh0YLRgNCw0L3QuNGG0LUgKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+ItC90L/RgC4gMeKAkzUsIDgsIDEx4oCTMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+ItCf0YDQtdCz0LvQtdC0INC/0YDQtSDRiNGC0LDQvNC/0LDRmtCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiLQmNC90YHRgtCw0LvQuNGA0LDRmCBQREYg0L/RgNC40LrQsNC30LjQstCw0Ycg0LfQsCDQv9GA0LXQs9C70LXQtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4i0JDQv9C70LjQutCw0YbQuNGY0LAg0LfQsCDRiNGC0LDQvNC/0LDRmtC1INGY0LUg0L7RgtC60LDQt9Cw0LvQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiLQodGC0YDQsNC90LjRhtC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4i0JPQtdC90LXRgNC40YHQsNGa0LUg0LfQsNC00LDRgtC60LAg0LfQsCDRiNGC0LDQvNC/0LDRmtC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4i0KHQsNGH0YPQstCw0Zgg0LrQsNC+IFBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiLQodCy0Lgg0YjRgtCw0LzQv9Cw0YfQuOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4i0JTQuNGY0LDQu9C+0LMg0LfQsCDRiNGC0LDQvNC/0LDRmtC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+ItCf0YDQtdGC0YDQsNC20LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4i0KHQstC4INGI0YLQsNC80L/QsNGH0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiLQlNC+0LTQsNGYINGD0YHQu9GD0LPRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+ItCe0LrQstC40YAg0LfQsCDQv9GA0LXRgtGA0LDQs9GDINGY0LUg0L/RgNC40LrQsNC30LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiLQntC60LLQuNGAINC30LAg0L/RgNC10YLRgNCw0LPRgyDRmNC1INGB0LDQutGA0LjQstC10L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiLQlNC+0LTQsNGYINGI0YLQsNC80L/QsNGHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VsZWN0X3ByaW50ZXIiIG1zZ2lkPSI3Mzg4NzYwOTM5ODczMzY4Njk4Ij4i0JjQt9Cw0LHQtdGA0Lgg0YjRgtCw0LzQv9Cw0YciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9mb3JnZXRfcHJpbnRlciIgbXNnaWQ9IjUwMzUyODc0OTcyOTE5MTA3NjYiPiLQl9Cw0LHQvtGA0LDQstC4INGI0YLQsNC80L/QsNGHIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiLQn9GA0L7QvdCw0ZLQtdC9INGY0LUgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiDRiNGC0LDQvNC/0LDRhyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+ItCf0YDQvtC90LDRktC10L3QviDRmNC1IDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4g0YjRgtCw0LzQv9Cw0YfQsCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+ItCY0LfQsNCx0LXRgNC40YLQtSDRg9GB0LvRg9Cz0YMg0YjRgtCw0LzQv9Cw0ZrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4i0J/RgNC10YLRgNCw0LPQsCDRiNGC0LDQvNC/0LDRh9CwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4i0J3QuNGY0LUg0L/RgNC+0L3QsNGS0LXQvSDQvdC40ZjQtdC00LDQvSDRiNGC0LDQvNC/0LDRhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+ItCo0YLQsNC80L/QsCDRgdC1IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiLQntGC0LrQsNC30YPRmNC1INGB0LUgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4i0JPRgNC10YjQutCwINGI0YLQsNC80L/QsNGH0LAgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+ItCo0YLQsNC80L/QsNGHINGY0LUg0LHQu9C+0LrQuNGA0LDQviA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+ItCX0LDQtNCw0YLQsNC6INGI0YLQsNC80L/QsNGa0LAgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+ItCX0LDQtNCw0YbQuCDRiNGC0LDQvNC/0LDRmtCwIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4i0J7RgtC60LDQttC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiLQn9C+0L3QvtCy0L4g0L/QvtC60YDQtdC90LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4i0J3QtdC80LAg0LLQtdC30LUg0YHQsCDRiNGC0LDQvNC/0LDRh9C10LwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiLQvdC10L/QvtC30L3QsNGC0L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTINC90LXQtNC+0YHRgtGD0L/QsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+ItCd0LjRmNC1INC80L7Qs9GD0ZvQtSDQs9C10L3QtdGA0LjRgdCw0YLQuCDQt9Cw0LTQsNGC0LDQuiDQt9CwINGI0YLQsNC80L/QsNGa0LUiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4i0KbRgNC90L4t0LHQtdC70L4iPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4i0JHQvtGY0LAiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4i0KPRgdC/0YDQsNCy0L3QviI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiLQktC+0LTQvtGA0LDQstC90L4iPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+ItCh0LLQtSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiLQntC/0YHQtdCzIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXN2L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtc3Yvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWViOTkzMAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXN2L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IlV0c2tyaWZ0c2vDtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkdmFuY2VkX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjU3NjQyMjUwOTEyODk0MTU2MzIiPiJTa3JpdmFyaW5zdMOkbGxuaW5nYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiJTa3JpdiB1dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IlNwYXJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4iRGVzdGluYXRpb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4iS29waW9yIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiJQYXBwZXJzc3RvcmxlayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+IkbDpHJnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4iT3JpZW50ZXJpbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiJTaWRvciAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4idC5leC4gMeKAkzUsOCwxMeKAkzEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiJGw7ZyaGFuZHNncmFuc2tuaW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiJJbnN0YWxsZXJhIFBERi1sw6RzYXJlIGbDtnIgZsO2cmhhbmRzZ3JhbnNrbmluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4iVXRza3JpZnRzYXBwZW4ga3Jhc2NoYWRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+IlNpZG9yIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4iR2VuZXJlcmFyIHV0c2tyaWZ0c2pvYmIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2FzX3BkZiIgbXNnaWQ9IjU3MTg0NTQxMTk4NDc1OTY4NTMiPiJTcGFyYSBzb20gUERGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+IkFsbGEgc2tyaXZhcmUgLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiJEaWFsb2dydXRhbiBTa3JpdiB1dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJTw7ZrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IkFsbGEgc2tyaXZhcmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiJMw6RnZyB0aWxsIHRqw6Ruc3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJTw7ZrcnV0YW4gdmlzYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4iU8O2a3J1dGFuIMOkciBkb2xkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iTMOkZ2cgdGlsbCBza3JpdmFyZSI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9zZWxlY3RfcHJpbnRlciAoNzM4ODc2MDkzOTg3MzM2ODY5OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9mb3JnZXRfcHJpbnRlciAoNTAzNTI4NzQ5NzI5MTkxMDc2NikgLS0+CisgICAgPHNraXAgLz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBza3JpdmFyZSBoaXR0YWRlcyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gc2tyaXZhcmUgaGl0dGFkZXMiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiJWw6RsaiB1dHNrcmlmdHN0asOkbnN0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJTw7ZrZXIgZWZ0ZXIgc2tyaXZhcmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJEZXQgZ2ljayBpbnRlIGF0dCBoaXR0YSBuw6VncmEgc2tyaXZhcmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyOTU5MDM5NTc3NjI0NDczNjIiPiJTa3JpdmVyIHV0IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiJBdmJyeXRlciA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiJTa3JpdmFyZmVsIGbDtnIgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IlNrcml2YXJlbiBoYXIgYmxvY2tlcmF0IDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iVXRza3JpZnRzam9iYiDigJMgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IlV0c2tyaWZ0c2pvYmIg4oCTIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4iQXZicnl0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiJTdGFydGEgb20iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iSW5nZW4gYW5zbHV0bmluZyB0aWxsIHNrcml2YXJlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+Im9rw6RudCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiDigJMgaW50ZSB0aWxsZ8OkbmdsaWciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4iRGV0IGdpY2sgaW50ZSBhdHQgc2thcGEgdXRza3JpZnRzam9iYmV0Ijwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+IlN2YXJ0dml0IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IkbDpHJnIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+IlN0w6VlbmRlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+IkxpZ2dhbmRlIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiJBbGxhIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IkludGVydmFsbCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1zdy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXN3L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5OWNlMGQKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy1zdy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJQcm9ncmFtdSB5YSBrdWFuZGFhIFByaW50YSBrd2EgYWppbGkgeWEgS3VjaGFwaXNoYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkdmFuY2VkX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjU3NjQyMjUwOTEyODk0MTU2MzIiPiJNaXBhbmdpbGlvIHlhIHByaW50YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2J1dHRvbiIgbXNnaWQ9IjY0NTE2NDU2NjI3MTI0NjI2OCI+IkNoYXBpc2hhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4iSGlmYWRoaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+Ikl0YWthcG9maWthIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29waWVzIiBtc2dpZD0iMzYzNDUzMTA0MjgyMjk2ODMwOCI+Ik5ha2FsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4iVWt1YndhIHdhIEthcmF0YXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4iUmFuZ2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiJNa2FvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iS3VyYXNhICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiJrLm0uIDHigJM1LCA4LCAxMeKAkzEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiJDaHVuZ3VsaWEga3dhbnphIGthYmxhIHlhIGt1Y2hhcGlzaGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IlNha2luaXNoYSBraXRhemFtYWppIGNoYSBQREYga3dhIG9ueWVzaG8gbGEga3VjaHVuZ3VsaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IlByb2dyYW11IHlhIGt1Y2hhcGlzaGEgaW1lYWNoYSBrdWZhbnlhIGthemkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4iS3VyYXNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4iSW5hemFuemlzaGEga2F6aSB5YSBrdWNoYXBpc2hhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iSGlmYWRoaSBrYW1hIFBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiJQcmludGEgem90ZS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4iQ2hhcGlzaGEgbWF6dW5ndW16byI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJUYWZ1dGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4iUHJpbnRhIHpvdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiJPbmdlemEgaHVkdW1hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4iS2lzYW5kdWt1IGNoYSBrdXRhZnV0aWEga2ltZW9ueWVzaHdhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+Iktpc2FuZHVrdSBjaGEga3V0YWZ1dGlhIGtpbWVmaWNod2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiJPbmdlemEgcHJpbnRhIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiJQcmludGEgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBpbWVwYXRpa2FuYSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+IlByaW50YSA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IHppbWVwYXRpa2FuYSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IkNoYWd1YSBodWR1bWEgeWEgcHJpbnRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJJbmF0YWZ1dGEgcHJpbnRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4iSGFrdW5hIHByaW50YSB6aWxpem9wYXRpa2FuYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IkluYWNoYXBpc2hhIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiJJbmFnaGFpcmkgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4iSGl0aWxhZnUgeWEga3VjaGFwaXNoYSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4iUHJpbnRhIGltZWZ1bmd3YSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+IkthemkgeWEga3VjaGFwaXNoYSB5YSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iS2F6aSB6YSBrdWNoYXBpc2hhIHphIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4iR2hhaXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiJBbnppc2hhIHVweWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4iSGFrdW5hIG11dW5nYW5pc2hvIGt3YSBwcmludGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJoYWlqdWxpa2FuaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiAtIGhhaXBhdGlrYW5pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+IkhhaWt1d2V6YSBrdXVuZGEga2F6aSB5YSBrdWNoYXBpc2hhIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+Ik55ZXVzaSBuYSBOeWV1cGUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4iUmFuZ2kiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4iV2ltYSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJNbGFsbyI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4iWm90ZSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiJNYXNhZmEiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtdGgvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy10aC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjNhZTFmCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtdGgvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NDY5ODM2MDc1MzE5ODMxODIxIj4iUHJpbnQgU3Bvb2xlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkdmFuY2VkX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjU3NjQyMjUwOTEyODk0MTU2MzIiPiLguIHguLLguKPguJXguLHguYnguIfguITguYjguLLguYDguITguKPguLfguYjguK3guIfguJ7guLTguKHguJ7guYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiLguJ7guLTguKHguJ7guYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiLguJrguLHguJnguJfguLbguIEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiLguJvguKXguLLguKLguJfguLLguIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4i4Liq4Liz4LmA4LiZ4LiyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiLguILguJnguLLguJTguILguK3guIfguIHguKPguLDguJTguLLguKkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiLguKrguLUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiLguIHguLLguKPguKfguLLguIfguYHguJnguKciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiLguKvguJnguYnguLIgKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+IuC5gOC4iuC5iOC4mSAx4oCUNSw4LDEx4oCUMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IuC4leC4seC4p+C4reC4ouC5iOC4suC4h+C4geC5iOC4reC4meC4nuC4tOC4oeC4nuC5jCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxfZm9yX3ByaW50X3ByZXZpZXciIG1zZ2lkPSI2MzY2MzAzOTk3Mzg1NTA5MzMyIj4i4LiV4Li04LiU4LiV4Lix4LmJ4LiH4LmC4Lib4Lij4LmB4LiB4Lij4Lih4LiU4Li5IFBERiDguYDguJ7guLfguYjguK3guJTguLnguKvguJnguYnguLLguJXguLHguKfguK3guKLguYjguLLguIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+IuC5geC4reC4m+C4geC4suC4o+C4nuC4tOC4oeC4nuC5jOC4guC4seC4lOC4guC5ieC4reC4hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiLguKvguJnguYnguLIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJnZW5lcmF0aW5nX3ByaW50X2pvYiIgbXNnaWQ9IjMxMTk2MDg3NDI2NTE2OTg5MTYiPiLguIHguLPguKXguLHguIfguKrguKPguYnguLLguIfguIfguLLguJnguJ7guLTguKHguJ7guYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2FzX3BkZiIgbXNnaWQ9IjU3MTg0NTQxMTk4NDc1OTY4NTMiPiLguJrguLHguJnguJfguLbguIHguYDguJvguYfguJkgUERGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzIiBtc2dpZD0iNTAxODgyOTcyNjg2MTg3NjIwMiI+IuC5gOC4hOC4o+C4t+C5iOC4reC4h+C4nuC4tOC4oeC4nuC5jOC4l+C4seC5ieC4h+C4q+C4oeC4lOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4i4LiK4LmI4Lit4LiH4LmC4LiV4LmJ4LiV4Lit4Lia4LiB4Liy4Lij4Lie4Li04Lih4Lie4LmMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+IuC4hOC5ieC4meC4q+C4siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiLguYDguITguKPguLfguYjguK3guIfguJ7guLTguKHguJ7guYzguJfguLHguYnguIfguKvguKHguJQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiLguYDguJ7guLTguYjguKHguJrguKPguLTguIHguLLguKMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiLguYHguKrguJTguIfguIrguYjguK3guIfguITguYnguJnguKvguLLguK3guKLguLnguYgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4i4LiL4LmI4Lit4LiZ4LiK4LmI4Lit4LiH4LiE4LmJ4LiZ4Lir4Liy4Lit4Lii4Li54LmIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4i4LmA4Lie4Li04LmI4Lih4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lie4Li04Lih4Lie4LmMIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiLguJ7guJrguYDguITguKPguLfguYjguK3guIfguJ7guLTguKHguJ7guYwgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiDguYDguITguKPguLfguYjguK3guIciPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjY1MzM4MTcwMzY2MDcxMjgyNDEiPiLguJ7guJrguYDguITguKPguLfguYjguK3guIfguJ7guLTguKHguJ7guYwgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiDguYDguITguKPguLfguYjguK3guIciPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiLguYDguKXguLfguK3guIHguJrguKPguLTguIHguLLguKPguJ7guLTguKHguJ7guYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+IuC4geC4s+C4peC4seC4h+C4hOC5ieC4meC4q+C4suC5gOC4hOC4o+C4t+C5iOC4reC4h+C4nuC4tOC4oeC4nuC5jCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+IuC5hOC4oeC5iOC4nuC4muC5gOC4hOC4o+C4t+C5iOC4reC4h+C4nuC4tOC4oeC4nuC5jCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IuC4geC4s+C4peC4seC4h+C4nuC4tOC4oeC4nuC5jCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4i4LiB4Liz4Lil4Lix4LiH4Lii4LiB4LmA4Lil4Li04LiBIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+IuC4guC5ieC4reC4nOC4tOC4lOC4nuC4peC4suC4lOC5gOC4hOC4o+C4t+C5iOC4reC4h+C4nuC4tOC4oeC4nuC5jCA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4i4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lie4Li04Lih4Lie4LmM4LmE4LiU4LmJ4Lia4Lil4LmH4Lit4LiBIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4i4LiH4Liy4LiZ4Lie4Li04Lih4Lie4LmMIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg3NDY2MTEyNjQ3MzQyMjI4NjUiPiLguIfguLLguJnguJ7guLTguKHguJ7guYwgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiLguKLguIHguYDguKXguLTguIEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IuC5gOC4o+C4tOC5iOC4oeC4leC5ieC4meC5g+C4q+C4oeC5iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiLguYTguKHguYjguKHguLXguIHguLLguKPguYDguIrguLfguYjguK3guKHguJXguYjguK3guYTguJvguKLguLHguIfguYDguITguKPguLfguYjguK3guIfguJ7guLTguKHguJ7guYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiLguYTguKHguYjguJfguKPguLLguJoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4LmE4Lih4LmI4Lie4Lij4LmJ4Lit4Lih4LmD4LiK4LmJ4LiH4Liy4LiZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+IuC5hOC4oeC5iOC4quC4suC4oeC4suC4o+C4luC4quC4o+C5ieC4suC4h+C4h+C4suC4meC4nuC4tOC4oeC4nuC5jCI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiLguILguLLguKfguJTguLMiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4i4Liq4Li1IjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+IuC5geC4meC4p+C4leC4seC5ieC4hyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiLguYHguJnguKfguJnguK3guJkiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IuC4l+C4seC5ieC4h+C4q+C4oeC4lCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiLguIrguYjguKfguIciPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtdGwvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy10bC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZmMxMDcxCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtdGwvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NDY5ODM2MDc1MzE5ODMxODIxIj4iUHJpbnQgU3Bvb2xlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkdmFuY2VkX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjU3NjQyMjUwOTEyODk0MTU2MzIiPiJNZ2Egc2V0dGluZyBuZyBwcmludGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4iSS1wcmludCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+Ikktc2F2ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IlBhdHV0dW5ndWhhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiJNZ2EgS29weWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+Ikxha2kgbmcgUGFwZWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiJLdWxheSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+Ik9yeWVudGFzeW9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4iTWdhIFBhaGluYSAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4iaGFsLiAx4oCUNSw4LDEx4oCUMTMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9wcmV2aWV3IiBtc2dpZD0iODAxMDIxNzc5NjA1Nzc2MzM0MyI+IlByZXZpZXcgc2EgcGFnLXByaW50Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiJNYWctaW5zdGFsbCBuZyBQREYgdmlld2VyIHBhcmEgc2EgcGFnLXByZXZpZXciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+Ik5hZy1jcmFzaCBhbmcgYXBwIHNhIHBhZy1wcmludCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJNZ2EgUGFoaW5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4iR3VtYWdhd2EgbmcgcGFnLXByaW50Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iSS1zYXZlIGJpbGFuZyBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iTGFoYXQgbmcgcHJpbnRlcuKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4iRGlhbG9nIG5nIHBhZy1wcmludCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJIYW5hcGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IkxhaGF0IG5nIHByaW50ZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiJNYWdkYWdkYWcgbmcgc2VyYmlzeW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJJcGluYXBha2l0YSBhbmcgYm94IHBhcmEgc2EgcGFnaGFoYW5hcCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiJOYWthdGFnbyBhbmcgYm94IHBhcmEgc2EgcGFnaGFoYW5hcCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+Ik1hZ2RhZ2RhZyBuZyBwcmludGVyIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IHByaW50ZXIgYW5nIG5ha2l0YSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gKG5hKSBwcmludGVyIGFuZyBuYWtpdGEiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiJQdW1pbGkgbmcgc2VyYmlzeW8gbmcgcGFnLXByaW50Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJOYWdoYWhhbmFwIG5nIG1nYSBwcmludGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4iV2FsYW5nIG1nYSBwcmludGVyIG5hIG5ha2l0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+IlBpbmktcHJpbnQgYW5nIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiJLaW5ha2Fuc2VsYSBhbmcgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4iRXJyb3Igc2EgcHJpbnRlciA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4iTmFrYS1ibG9jayBhbmcgUHJpbnRlciA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+IlBhZy1wcmludCBuZyA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iTWdhIHBhZy1wcmludCBuZyA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsIiBtc2dpZD0iNDM3MzY3NDEwNzI2NzE0MTg4NSI+IkthbnNlbGFoaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IkktcmVzdGFydCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiJIaW5kaSBuYWtha29uZWt0YSBzYSBwcmludGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4iaGluZGkgYWxhbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiDigJMgaGluZGkgYXZhaWxhYmxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZXJyb3JfZGVmYXVsdF9tZXNzYWdlIiBtc2dpZD0iODU2ODUwNjkxODk4Mzk4MDU2NyI+IkhpbmRpIG1hYnVvIGFuZyBwYWctcHJpbnQiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4iQmxhY2sgJmFtcDsgV2hpdGUiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4iS3VsYXkiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4iUG9ydHJhaXQiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4iTGFuZHNjYXBlIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiJMYWhhdCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiJTYWtvcCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy10ci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXRyL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiZTdhMDQKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy10ci9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJQcmludCBTcG9vbGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IllhesSxY8SxIGF5YXJsYXLEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2J1dHRvbiIgbXNnaWQ9IjY0NTE2NDU2NjI3MTI0NjI2OCI+IllhemTEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiJLYXlkZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiJIZWRlZiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiJLb3B5YSBzYXnEsXPEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4iS2HEn8SxdCBCb3l1dHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiJSZW5rbGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiJTYXlmYSB5w7Zuw7wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiJTYXlmYSAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4iw7ZyLiAxLTUsOCwxMS0xMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4iWWF6ZMSxcm1hecSxIMO2bml6bGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IsOWbml6bGVtZWsgacOnaW4gUERGIGfDtnLDvG50w7xsZXlpY2kgecO8a2xleWluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiJZYXpkxLFybWEgdXlndWxhbWFzxLEga2lsaXRsZW5kaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VfY291bnRfdW5rbm93biIgbXNnaWQ9IjYwNTg4NTI2NjU5NTQ1MTExMjQiPiJTYXlmYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+IllhemTEsXJtYSBpxZ9pIG9sdcWfdHVydWx1eW9yIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iUERGIG9sYXJhayBrYXlkZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iVMO8bSB5YXrEsWPEsWxhcuKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4iWWF6ZMSxcm1hIGlsZXRpxZ9pbSBrdXR1c3UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4iQXJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IlTDvG0geWF6xLFjxLFsYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZGRfcHJpbnRfc2VydmljZV9sYWJlbCIgbXNnaWQ9IjUzNTY3MDI1NDYxODg5ODE5NDAiPiJIaXptZXQgZWtsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+IkFyYW1hIGt1dHVzdSBnw7ZzdGVyaWxpeW9yIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IkFyYW1hIGt1dHVzdSBnaXpsaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+IllhesSxY8SxIGVrbGUiPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfc2VsZWN0X3ByaW50ZXIgKDczODg3NjA5Mzk4NzMzNjg2OTgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfZm9yZ2V0X3ByaW50ZXIgKDUwMzUyODc0OTcyOTE5MTA3NjYpIC0tPgorICAgIDxza2lwIC8+CisgIDxwbHVyYWxzIG5hbWU9InByaW50X3NlYXJjaF9yZXN1bHRfY291bnRfdXR0ZXJhbmNlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDQ4NDk1MzI2MDY4NTk2NDI1MiI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4geWF6xLFjxLEgYnVsdW5kdSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+Ijx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4geWF6xLFjxLEgYnVsdW5kdSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IllhemTEsXJtYSBoaXptZXRpbmkgc2XDp2luIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJZYXrEsWPEsWxhciBhcmFuxLF5b3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9ub19wcmludGVycyIgbXNnaWQ9IjQ4Njk0MDMzMjM5MDAwNTQ4NjYiPiJZYXrEsWPEsSBidWx1bmFtYWTEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4geWF6ZMSxcsSxbMSxeW9yIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiBpcHRhbCBlZGlsaXlvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4iWWF6xLFjxLEgaGF0YXPEsTogPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IllhesSxY8SxIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4gacWfaW5pIGVuZ2VsbGVkaSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IHlhemTEsXJtYSBpxZ9pIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiB5YXpkxLFybWEgacWfbGVyaSI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiLEsHB0YWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IlllbmlkZW4gYmHFn2xhdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiJZYXrEsWPEsSBiYcSfbGFudMSxc8SxIHlvayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+ImJpbGlubWl5b3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIGt1bGxhbsSxbGFtxLF5b3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4iWWF6ZMSxcm1hIGnFn2kgb2x1xZ90dXJ1bGFtYWTEsSI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiJTaXlhaCBCZXlheiI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiJSZW5rbGkiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4iRGlrZXkiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4iWWF0YXkiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IlTDvG3DvCI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiJBcmFsxLFrIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXVrL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtdWsvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY1MjZkMAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXVrL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsNzkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IlByaW50IFNwb29sZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4i0J3QsNC70LDRiNGC0YPQstCw0L3QvdGPINC/0YDQuNC90YLQtdGA0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiLQlNGA0YPQuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+ItCX0LHQtdGA0LXQs9GC0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiLQnNGW0YHRhtC1INC/0YDQuNC30L3QsNGHLdC90Y8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4i0JrQvtC/0ZbRlyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4i0KDQvtC30LzRltGAINC/0LDQv9C10YDRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+ItCa0L7Qu9GW0YAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiLQntGA0ZbRlNC90YLQsNGG0ZbRjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+ItCh0YLQvtGA0ZbQvdC60LggKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+ItC90LDQv9GALiwx4oCTNSwgOCwgMTHigJMxMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4i0JLQtdGA0YHRltGPINC00LvRjyDQtNGA0YPQutGDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiLQo9GB0YLQsNC90L7QstC40YLQuCDQt9Cw0YHRltCxINC/0LXRgNC10LPQu9GP0LTRgyBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19hcHBfY3Jhc2hlZCIgbXNnaWQ9Ijg1NDQ3NzYxNjY4NjU2NjM5OCI+ItCf0YDQvtCz0YDQsNC80LAg0LTRgNGD0LrRgyDQsNCy0LDRgNGW0LnQvdC+INC30LDQstC10YDRiNC40LvQsCDRgNC+0LHQvtGC0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4i0KHRgtC+0YDRltC90LrQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+ItCh0YLQstC+0YDRjtGU0YLRjNGB0Y8g0LfQsNCy0LTQsNC90L3RjyDQtNGA0YPQutGDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4i0JfQsdC10YDQtdCz0YLQuCDRj9C6IFBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiLQo9GB0ZYg0L/RgNC40L3RgtC10YDQuOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4i0JTRltCw0LvQvtCz0L7QstC1INCy0ZbQutC90L4g0LTRgNGD0LrRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiLQn9C+0YjRg9C6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+ItCj0YHRliDQv9GA0LjQvdGC0LXRgNC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4i0JTQvtC00LDRgtC4INGB0LvRg9C20LHRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+ItCS0ZbQutC90L4g0L/QvtGI0YPQutGDINC/0L7QutCw0LfQsNC90L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X2hpZGRlbl91dHRlcmFuY2UiIG1zZ2lkPSI1NzI3NzU1MTY5MzQzMTEzMzUxIj4i0JLRltC60L3QviDQv9C+0YjRg9C60YMg0YHRhdC+0LLQsNC90L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiLQlNC+0LTQsNGC0Lgg0L/RgNC40L3RgtC10YAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWxlY3RfcHJpbnRlciIgbXNnaWQ9IjczODg3NjA5Mzk4NzMzNjg2OTgiPiLQktC40LHRgNCw0YLQuCDQv9GA0LjQvdGC0LXRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2ZvcmdldF9wcmludGVyIiBtc2dpZD0iNTAzNTI4NzQ5NzI5MTkxMDc2NiI+ItCG0LPQvdC+0YDRg9Cy0LDRgtC4INC/0YDQuNC90YLQtdGAIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiLQl9C90LDQudC00LXQvdC+INC/0YDQuNC90YLQtdGA0ZbQsjogPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+ItCX0L3QsNC50LTQtdC90L4g0L/RgNC40L3RgtC10YDRltCyOiA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4i0JLQuNCx0YDQsNGC0Lgg0YHQu9GD0LbQsdGDINC00YDRg9C60YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+ItCf0L7RiNGD0Log0L/RgNC40L3RgtC10YDRltCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4i0J/RgNC40L3RgtC10YDQuCDQvdC1INC30L3QsNC50LTQtdC90L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyOTU5MDM5NTc3NjI0NDczNjIiPiLQl9Cw0LLQtNCw0L3QvdGPIFwiPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPlwiINC00YDRg9C60YPRlNGC0YzRgdGPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4i0JfQsNCy0LTQsNC90L3RjyBcIjx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz5cIiDRgdC60LDRgdC+0LLRg9GU0YLRjNGB0Y8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJmYWlsZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjI1NjIxNzIwODE4NjUzMDk3MyI+ItCf0L7QvNC40LvQutCwINC30LDQstC00LDQvdC90Y8gXCI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+XCIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibG9ja2VkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjExNzU0MzU4MjczMzE1ODg2NDYiPiLQl9Cw0LLQtNCw0L3QvdGPIFwiPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPlwiINC30LDQsdC70L7QutC+0LLQsNC90L4iPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4i0JfQsNCy0LTQsNC90L3RjyDQtNGA0YPQutGDIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg3NDY2MTEyNjQ3MzQyMjI4NjUiPiLQl9Cw0LLQtNCw0L3QvdGPINC00YDRg9C60YMgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiLQodC60LDRgdGD0LLQsNGC0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+ItCf0LXRgNC10LfQsNC/0YPRgdGC0LjRgtC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibm9fY29ubmVjdGlvbl90b19wcmludGVyIiBtc2dpZD0iMjE1OTI0NjkxNTk3NzI4MjcyOCI+ItCd0LXQvNCw0ZQg0LfigJnRlNC00L3QsNC90L3RjyDQtyDQv9GA0LjQvdGC0LXRgNC+0LwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiLQvdC10LLRltC00L7QvNC+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiLQl9Cw0LLQtNCw0L3QvdGPIFwiPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPlwiINC90LUg0LTQvtGB0YLRg9C/0L3QtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiLQndC1INCy0LTQsNC70L7RgdGPINGB0YLQstC+0YDQuNGC0Lgg0LfQsNCy0LTQsNC90L3RjyDQtNGA0YPQutGDIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+ItCn0L7RgNC90L4t0LHRltC70LjQuSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiLQmtC+0LvRltGAIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0ib3JpZW50YXRpb25fbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNDA2MTkzMTAyMDkyNjQ4OTIyOCI+ItCa0L3QuNC20LrQvtCy0LAiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4i0JDQu9GM0LHQvtC80L3QsCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4i0KPRgdGWIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+ItCU0ZbQsNC/0LDQt9C+0L0iPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtdmkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy12aS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjY5ZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtdmkvc3RyaW5ncy54bWwKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NDY5ODM2MDc1MzE5ODMxODIxIj4iUHJpbnQgU3Bvb2xlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkdmFuY2VkX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjU3NjQyMjUwOTEyODk0MTU2MzIiPiJDw6BpIMSR4bq3dCBtw6F5IGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4iSW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiJMxrB1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4ixJDDrWNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29waWVzIiBtc2dpZD0iMzYzNDUzMTA0MjgyMjk2ODMwOCI+IkLhuqNuIHNhbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4iS8OtY2ggdGjGsOG7m2MgdHJhbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiJNw6B1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4iSMaw4bubbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiJUcmFuZyAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4iVsOtIGThu6U6IDHigJQ1LCA4LCAxMeKAlDEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiJYZW0gdHLGsOG7m2MgYuG6o24gaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IkPDoGkgxJHhurd0IHRyw6xuaCB4ZW0gUERGIMSR4buDIHhlbSB0csaw4bubYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4i4buobmcgZOG7pW5nIGluIGfhurdwIGzhu5dpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+IlRyYW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4ixJBhbmcgdOG6oW8gbOG7h25oIGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iTMawdSBkxrDhu5tpIGThuqFuZyBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iVOG6pXQgY+G6oyBtw6F5IGlu4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiJI4buZcCB0aG/huqFpIGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2VhcmNoIiBtc2dpZD0iNTQyMTcyNDI2NTMyMjIyODQ5NyI+IlTDrG0ga2nhur9tIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IlThuqV0IGPhuqMgbcOheSBpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IlRow6ptIGThu4tjaCB24bulIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4iSGnhu4NuIHRo4buLIGjhu5lwIHTDrG0ga2nhur9tIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IuG6qG4gaOG7mXAgdMOsbSBraeG6v20iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiJUaMOqbSBtw6F5IGluIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiLEkMOjIHTDrG0gdGjhuqV5IDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz4gbcOheSBpbiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+IsSQw6MgdMOsbSB0aOG6pXkgPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBtw6F5IGluIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4iQ2jhu41uIGThu4tjaCB24bulIGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiLEkGFuZyB0w6xtIGtp4bq/bSBtw6F5IGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4iS2jDtG5nIHTDrG0gdGjhuqV5IG3DoXkgaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyOTU5MDM5NTc3NjI0NDczNjIiPiJJbiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iSOG7p3kgPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4iTOG7l2kgbcOheSBpbiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4iTcOheSBpbiDEkcOjIGNo4bq3biA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+Ikzhu4duaCBpbiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iTOG7h25oIGluIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4iSOG7p3kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IkLhuq90IMSR4bqndSBs4bqhaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiJLaMO0bmcgY8OzIGvhur90IG7hu5FpIG7DoG8gduG7m2kgbcOheSBpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InJlYXNvbl91bmtub3duIiBtc2dpZD0iNTUwNzk0MDE5NjUwMzI0NjEzOSI+Imtow7RuZyB4w6FjIMSR4buLbmgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIGtow7RuZyBraOG6oyBk4bulbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4iS2jDtG5nIHRo4buDIHThuqFvIGzhu4duaCBpbiI8L3N0cmluZz4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJjb2xvcl9tb2RlX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc2MDI5NDg3NDU0MTUxNzQ5MzciPiLEkGVuIHRy4bqvbmciPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIyNzYyMjQxMjQ3MjI4OTgzNzU0Ij4iTcOgdSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiJE4buNYyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjMxOTk2NjAwOTAyNDYxNjY4MTIiPiJOZ2FuZyI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4iVOG6pXQgY+G6oyI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjY4MTI4Njk2MjUyMjI1MDM2MDMiPiJEw6N5IjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXpoLXJDTi9hcnJheXMueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtemgtckNOL2FycmF5cy54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmYzc1ZGIuLjAwMDAwMDAKLS0tIGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtemgtckNOL2FycmF5cy54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPCEtLSBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotCi0gICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotCi0gICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0KLSAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS0tPgotPHJlc291cmNlcz4KLQotICAgIDxzdHJpbmctYXJyYXkgbmFtZT0icGRmX3ByaW50ZXJfbWVkaWFfc2l6ZXMiIHRyYW5zbGF0YWJsZT0iZmFsc2UiPgotICAgICAgICA8aXRlbT5ST0NfOEs8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPlJPQ18xNks8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPlBSQ18xPC9pdGVtPgotICAgICAgICA8aXRlbT5QUkNfMjwvaXRlbT4KLSAgICAgICAgPGl0ZW0+UFJDXzM8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPlBSQ180PC9pdGVtPgotICAgICAgICA8aXRlbT5QUkNfNTwvaXRlbT4KLSAgICAgICAgPGl0ZW0+UFJDXzY8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPlBSQ183PC9pdGVtPgotICAgICAgICA8aXRlbT5QUkNfODwvaXRlbT4KLSAgICAgICAgPGl0ZW0+UFJDXzk8L2l0ZW0+Ci0gICAgICAgIDxpdGVtPlBSQ18xMDwvaXRlbT4KLSAgICAgICAgPGl0ZW0+UFJDXzE2SzwvaXRlbT4KLSAgICAgICAgPGl0ZW0+T01fUEFfS0FJPC9pdGVtPgotICAgICAgICA8aXRlbT5PTV9EQUlfUEFfS0FJPC9pdGVtPgotICAgICAgICA8aXRlbT5PTV9KVVVST19LVV9LQUk8L2l0ZW0+Ci0gICAgPC9zdHJpbmctYXJyYXk+Ci0KLTwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtemgtckNOL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtemgtckNOL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxZjdkNjUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy16aC1yQ04vc3RyaW5ncy54bWwKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NDY5ODM2MDc1MzE5ODMxODIxIj4i5omT5Y2w5aSE55CG5pyN5YqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+IuaJk+WNsOacuuiuvue9riI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2J1dHRvbiIgbXNnaWQ9IjY0NTE2NDU2NjI3MTI0NjI2OCI+IuaJk+WNsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYnV0dG9uIiBtc2dpZD0iMTkyMTMxMDQ1NDA3MTc1ODk5OSI+IuS/neWtmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2Rlc3RpbmF0aW9uIiBtc2dpZD0iOTEzMjUxMDk5NzM4MTU5OTI3NSI+IuebrueahOWcsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvcGllcyIgbXNnaWQ9IjM2MzQ1MzEwNDI4MjI5NjgzMDgiPiLku73mlbAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYXBlcl9zaXplIiBtc2dpZD0iODY4MTg5NTYwNzg3NjgwOTMyMyI+Iue6uOW8oOWwuuWvuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX2NvbG9yIiBtc2dpZD0iMTEwODY5MDMwNTIxODE4ODk2OSI+IuminOiJsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX29yaWVudGF0aW9uIiBtc2dpZD0iMjg1MzE0MjU4MTk5MDQ5NjQ3NyI+IuaWueWQkSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhZ2VzIiBtc2dpZD0iNjMwMDg3NDY2NzU0NjYxNzMzMyI+IumhteaVsCAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4i5L6L5aaC77yaMS0144CBOOOAgTExLTEzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfcHJldmlldyIgbXNnaWQ9IjgwMTAyMTc3OTYwNTc3NjMzNDMiPiLmiZPljbDpooTop4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IuWuieijhSBQREYg5p+l55yL5Zmo5Lul5L6/6aKE6KeIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiLmiZPljbDlupTnlKjltKnmuoPkuoYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlX2NvdW50X3Vua25vd24iIG1zZ2lkPSI2MDU4ODUyNjY1OTU0NTExMTI0Ij4i6aG15pWwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4i5q2j5Zyo55Sf5oiQ5omT5Y2w5L2c5LiaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4i5L+d5a2Y5Li6IFBERiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVycyIgbXNnaWQ9IjUwMTg4Mjk3MjY4NjE4NzYyMDIiPiLmiYDmnInmiZPljbDmnLrigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9kaWFsb2ciIG1zZ2lkPSIzMjYyODY4NzQ2MTMzMTk3OSI+IuaJk+WNsOWvueivneahhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiLmkJzntKIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnNfbGFiZWwiIG1zZ2lkPSIzMTc4ODQ4ODcwMTYxNTI2Mzk5Ij4i5omA5pyJ5omT5Y2w5py6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4i5re75Yqg5pyN5YqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9zaG93bl91dHRlcmFuY2UiIG1zZ2lkPSI3OTY3NDA0OTUzOTAxMzc2MDkwIj4i5pCc57Si5qGG5bey5pi+56S6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoX2JveF9oaWRkZW5fdXR0ZXJhbmNlIiBtc2dpZD0iNTcyNzc1NTE2OTM0MzExMzM1MSI+IuaQnOe0ouahhuW3sumakOiXjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2FkZF9wcmludGVyIiBtc2dpZD0iMTA4ODY1NjQ2ODM2MDY1MzQ1NSI+Iua3u+WKoOaJk+WNsOacuiI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9zZWxlY3RfcHJpbnRlciAoNzM4ODc2MDkzOTg3MzM2ODY5OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBwcmludF9mb3JnZXRfcHJpbnRlciAoNTAzNTI4NzQ5NzI5MTkxMDc2NikgLS0+CisgICAgPHNraXAgLz4KKyAgPHBsdXJhbHMgbmFtZT0icHJpbnRfc2VhcmNoX3Jlc3VsdF9jb3VudF91dHRlcmFuY2UiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI0NDg0OTUzMjYwNjg1OTY0MjUyIj4i5om+5YiwPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPuWPsOaJk+WNsOacuiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+IuaJvuWIsDx4bGlmZjpnIGlkPSJDT1VOVCI+JTEkczwveGxpZmY6Zz7lj7DmiZPljbDmnLoiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjaG9vc2VfcHJpbnRfc2VydmljZSIgbXNnaWQ9IjM3NDAzMDk3NjIzMjQ0NTk2OTQiPiLpgInmi6nmiZPljbDmnI3liqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hpbmdfZm9yX3ByaW50ZXJzIiBtc2dpZD0iNjU1MDQyNDU1NTA3OTkzMjg2NyI+Iuato+WcqOaQnOe0ouaJk+WNsOacuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+IuaJvuS4jeWIsOaJk+WNsOacuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjI5NTkwMzk1Nzc2MjQ0NzM2MiI+Iuato+WcqOaJk+WNsOKAnDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz7igJ0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiLmraPlnKjlj5bmtojmiZPljbDigJw8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+4oCdIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZmFpbGVkX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjIyNTYyMTcyMDgxODY1MzA5NzMiPiLmiZPljbDmnLrlnKjmiZPljbDigJw8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+4oCd5pe25Ye66ZSZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmxvY2tlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxMTc1NDM1ODI3MzMxNTg4NjQ2Ij4i5omT5Y2w5py65ouS57ud5omT5Y2w4oCcPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPuKAnSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0iY29tcG9zaXRlX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NjY2MjQ2MzgwNTQ4NDcwNTciPiLigJw8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+4oCd5omT5Y2w5L2c5LiaIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4i4oCcPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPuKAneaJk+WNsOS9nOS4miI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiLlj5bmtogiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IumHjeaWsOW8gOWniyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiLmnKrkuI7miZPljbDmnLrlu7rnq4vov57mjqUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiLmnKrnn6UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4gLSDml6Dms5Xkvb/nlKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4i5peg5rOV55Sf5oiQ5omT5Y2w5L2c5LiaIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+Ium7keeZvSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiLlvanoibIiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4i57q15ZCRIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+IuaoquWQkSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4i5YWo6YOoIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IuiMg+WbtCI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy16aC1ySEsvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy16aC1ySEsvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWEwYTJjOQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiLliJfljbDlpJrlt6Xnt6nooZ3omZXnkIblmagiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhZHZhbmNlZF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI1NzY0MjI1MDkxMjg5NDE1NjMyIj4i5omT5Y2w5qmf6Kit5a6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYnV0dG9uIiBtc2dpZD0iNjQ1MTY0NTY2MjcxMjQ2MjY4Ij4i5YiX5Y2wIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9idXR0b24iIG1zZ2lkPSIxOTIxMzEwNDU0MDcxNzU4OTk5Ij4i5YSy5a2YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfZGVzdGluYXRpb24iIG1zZ2lkPSI5MTMyNTEwOTk3MzgxNTk5Mjc1Ij4i55uu55qE5ZywIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29waWVzIiBtc2dpZD0iMzYzNDUzMTA0MjgyMjk2ODMwOCI+IuS7veaVuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3BhcGVyX3NpemUiIG1zZ2lkPSI4NjgxODk1NjA3ODc2ODA5MzIzIj4i57SZ5by15aSn5bCPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4i6aGP6ImyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4i5pa55ZCRIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFnZXMiIG1zZ2lkPSI2MzAwODc0NjY3NTQ2NjE3MzMzIj4i6aCB5pW4ICg8eGxpZmY6ZyBpZD0iUEFHRV9DT1VOVCI+JTEkczwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZXNfcmFuZ2VfZXhhbXBsZSIgbXNnaWQ9Ijg1NTg2OTQ0NTM1NTY5NDUxNzIiPiLkvovlpoLvvJoxLTUsOCwxMS0xMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4i6aCQ6Ka95YiX5Y2wIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiLlronoo53poJDopr3miYDpnIDnmoQgUERGIOaqouimluWZqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4i5YiX5Y2w5oeJ55So56iL5byP55W25qmf5LqGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+IumggeaVuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+Iuato+WcqOeUoueUn+WIl+WNsOW3peS9nCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IuWEsuWtmOeCuiBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4i5omA5pyJ5omT5Y2w5qmf4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiLliJfljbDlsI3oqbHmlrnloYoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4i5pCc5bCLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IuaJgOacieaJk+WNsOapnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IuaWsOWinuacjeWLmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+IuaQnOWwi+ahhuW3sumhr+ekuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiLmkJzlsIvmoYblt7LpmrHol48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiLmlrDlop7miZPljbDmqZ8iPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfc2VsZWN0X3ByaW50ZXIgKDczODg3NjA5Mzk4NzMzNjg2OTgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfZm9yZ2V0X3ByaW50ZXIgKDUwMzUyODc0OTcyOTE5MTA3NjYpIC0tPgorICAgIDxza2lwIC8+CisgIDxwbHVyYWxzIG5hbWU9InByaW50X3NlYXJjaF9yZXN1bHRfY291bnRfdXR0ZXJhbmNlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDQ4NDk1MzI2MDY4NTk2NDI1MiI+IuaJvuWIsCA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IOmDqOaJk+WNsOapnyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+IuaJvuWIsCA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IOmDqOaJk+WNsOapnyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IumBuOaTh+WIl+WNsOacjeWLmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4i5q2j5Zyo5pCc5bCL5omT5Y2w5qmfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4i5om+5LiN5Yiw5omT5Y2w5qmfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4i5q2j5Zyo5YiX5Y2wIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiLmraPlnKjlj5bmtoggPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4i5omT5Y2w5qmf6Yyv6Kqk77yaPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IuaJk+WNsOapn+W3suWwgemOliA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+IuS4gOmghSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IOWIl+WNsOW3peS9nCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iODc0NjYxMTI2NDczNDIyMjg2NSI+IuWkmumghSA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IOWIl+WNsOW3peS9nCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNhbmNlbCIgbXNnaWQ9IjQzNzM2NzQxMDcyNjcxNDE4ODUiPiLlj5bmtogiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IumHjeaWsOmWi+WniyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiLlsJrmnKroiIfmiZPljbDmqZ/pgKPnt5oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiLkuI3mmI4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludGVyX3VuYXZhaWxhYmxlIiBtc2dpZD0iMjQzNDE3MDYxNzAwMzMxNTY5MCI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4g4oCTIOeEoeazleS9v+eUqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2Vycm9yX2RlZmF1bHRfbWVzc2FnZSIgbXNnaWQ9Ijg1Njg1MDY5MTg5ODM5ODA1NjciPiLnhKHms5XnlKLnlJ/liJfljbDlt6XkvZwiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4i6buR55m9IjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IuW9qeiJsiI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiLnm7TlkJEiPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSIzMTk5NjYwMDkwMjQ2MTY2ODEyIj4i5qmr5ZCRIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0icGFnZV9vcHRpb25zX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9Ijc0MjEzNzc0NDIwMTE2OTk5OTQiPiLlhajpg6giPC9pdGVtPgorICAgIDxpdGVtIG1zZ2lkPSI2ODEyODY5NjI1MjIyNTAzNjAzIj4i56+E5ZyNIjwvaXRlbT4KKyAgPC9zdHJpbmctYXJyYXk+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXpoLXJUVy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXpoLXJUVy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzY3NzRjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvUHJpbnRTcG9vbGVyL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDQ2OTgzNjA3NTMxOTgzMTgyMSI+IuWIl+WNsOWkmuW3pee3qeihneiZleeQhuWZqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkdmFuY2VkX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjU3NjQyMjUwOTEyODk0MTU2MzIiPiLljbDooajmqZ/oqK3lrpoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9idXR0b24iIG1zZ2lkPSI2NDUxNjQ1NjYyNzEyNDYyNjgiPiLliJfljbAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiLlhLLlrZgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiLnm67nmoTlnLAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4i5Lu95pW4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiLntJnlvLXlpKflsI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb2xvciIgbXNnaWQ9IjExMDg2OTAzMDUyMTgxODg5NjkiPiLoibLlvakiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9vcmllbnRhdGlvbiIgbXNnaWQ9IjI4NTMxNDI1ODE5OTA0OTY0NzciPiLmlrnlkJEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiLpoIHmlbggKDx4bGlmZjpnIGlkPSJQQUdFX0NPVU5UIj4lMSRzPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwYWdlc19yYW5nZV9leGFtcGxlIiBtc2dpZD0iODU1ODY5NDQ1MzU1Njk0NTE3MiI+IuS+i+Wmgu+8mjHigJQ1LDgsMTHigJQxMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4i5YiX5Y2w6aCQ6Ka9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbF9mb3JfcHJpbnRfcHJldmlldyIgbXNnaWQ9IjYzNjYzMDM5OTczODU1MDkzMzIiPiLlronoo53poJDopr3miYDpnIDnmoQgUERGIOaqouimluWZqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50aW5nX2FwcF9jcmFzaGVkIiBtc2dpZD0iODU0NDc3NjE2Njg2NTY2Mzk4Ij4i5YiX5Y2w5oeJ55So56iL5byP55W25qmf5LqGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+IumggeaVuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImdlbmVyYXRpbmdfcHJpbnRfam9iIiBtc2dpZD0iMzExOTYwODc0MjY1MTY5ODkxNiI+Iuato+WcqOeUoueUn+WIl+WNsOW3peS9nCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNhdmVfYXNfcGRmIiBtc2dpZD0iNTcxODQ1NDExOTg0NzU5Njg1MyI+IuWEsuWtmOeCuiBQREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4i5omA5pyJ5Y2w6KGo5qmf4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfZGlhbG9nIiBtc2dpZD0iMzI2Mjg2ODc0NjEzMzE5NzkiPiLljbDooajmqZ/lsI3oqbHmlrnloYoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZWFyY2giIG1zZ2lkPSI1NDIxNzI0MjY1MzIyMjI4NDk3Ij4i5pCc5bCLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWxsX3ByaW50ZXJzX2xhYmVsIiBtc2dpZD0iMzE3ODg0ODg3MDE2MTUyNjM5OSI+IuaJgOacieWNsOihqOapnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFkZF9wcmludF9zZXJ2aWNlX2xhYmVsIiBtc2dpZD0iNTM1NjcwMjU0NjE4ODk4MTk0MCI+IuaWsOWinuacjeWLmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfc2hvd25fdXR0ZXJhbmNlIiBtc2dpZD0iNzk2NzQwNDk1MzkwMTM3NjA5MCI+IuaQnOWwi+ahhuW3sumhr+ekuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiLmkJzlsIvmoYblt7LpmrHol48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9hZGRfcHJpbnRlciIgbXNnaWQ9IjEwODg2NTY0NjgzNjA2NTM0NTUiPiLmlrDlop7ljbDooajmqZ8iPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfc2VsZWN0X3ByaW50ZXIgKDczODg3NjA5Mzk4NzMzNjg2OTgpIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcHJpbnRfZm9yZ2V0X3ByaW50ZXIgKDUwMzUyODc0OTcyOTE5MTA3NjYpIC0tPgorICAgIDxza2lwIC8+CisgIDxwbHVyYWxzIG5hbWU9InByaW50X3NlYXJjaF9yZXN1bHRfY291bnRfdXR0ZXJhbmNlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNDQ4NDk1MzI2MDY4NTk2NDI1MiI+IuaJvuWIsCA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IOWPsOWNsOihqOapnyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iNjUzMzgxNzAzNjYwNzEyODI0MSI+IuaJvuWIsCA8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IOWPsOWNsOihqOapnyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9ImNob29zZV9wcmludF9zZXJ2aWNlIiBtc2dpZD0iMzc0MDMwOTc2MjMyNDQ1OTY5NCI+IumBuOaTh+WIl+WNsOacjeWLmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaGluZ19mb3JfcHJpbnRlcnMiIG1zZ2lkPSI2NTUwNDI0NTU1MDc5OTMyODY3Ij4i5q2j5Zyo5pCc5bCL5Y2w6KGo5qmfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfbm9fcHJpbnRlcnMiIG1zZ2lkPSI0ODY5NDAzMzIzOTAwMDU0ODY2Ij4i5om+5LiN5Yiw5Y2w6KGo5qmfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4i5q2j5Zyo5YiX5Y2wIDx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWxsaW5nX25vdGlmaWNhdGlvbl90aXRsZV90ZW1wbGF0ZSIgbXNnaWQ9IjE4MjE3NTk1OTQ3MDQ3MDMxOTciPiLmraPlnKjlj5bmtoggPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4i5Y2w6KGo5qmf55m855Sf6Yyv6Kqk77yaPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IuWNsOihqOapn+WwgemOluS6hiA8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJjb21wb3NpdGVfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg2NjYyNDYzODA1NDg0NzA1NyI+Ijx4bGlmZjpnIGlkPSJQUklOVF9KT0JfTkFNRSI+JTEkZDwveGxpZmY6Zz4g5YCL5YiX5Y2w5bel5L2cIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI4NzQ2NjExMjY0NzM0MjIyODY1Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiDlgIvliJfljbDlt6XkvZwiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4i5Y+W5raIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVzdGFydCIgbXNnaWQ9IjI0NzIwMzQyMjcwMzc4MDg3NDkiPiLph43mlrDplovlp4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJub19jb25uZWN0aW9uX3RvX3ByaW50ZXIiIG1zZ2lkPSIyMTU5MjQ2OTE1OTc3MjgyNzI4Ij4i5bCa5pyq6IiH5Y2w6KGo5qmf5bu656uL6YCj57eaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icmVhc29uX3Vua25vd24iIG1zZ2lkPSI1NTA3OTQwMTk2NTAzMjQ2MTM5Ij4i5LiN5piOIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRlcl91bmF2YWlsYWJsZSIgbXNnaWQ9IjI0MzQxNzA2MTcwMDMzMTU2OTAiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOKAkyDnhKHms5Xkvb/nlKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4i54Sh5rOV55Si55Sf5YiX5Y2w5bel5L2cIjwvc3RyaW5nPgorICA8c3RyaW5nLWFycmF5IG5hbWU9ImNvbG9yX21vZGVfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzYwMjk0ODc0NTQxNTE3NDkzNyI+Ium7keeZvSI8L2l0ZW0+CisgICAgPGl0ZW0gbXNnaWQ9IjI3NjIyNDEyNDcyMjg5ODM3NTQiPiLlvanoibIiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJvcmllbnRhdGlvbl9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI0MDYxOTMxMDIwOTI2NDg5MjI4Ij4i57ix5ZCRIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+Iuapq+WQkSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9InBhZ2Vfb3B0aW9uc19sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NDIxMzc3NDQyMDExNjk5OTk0Ij4i5YWo6YOoIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IuevhOWcjSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy16dS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ByaW50U3Bvb2xlci9yZXMvdmFsdWVzLXp1L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzMTBkYjgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9QcmludFNwb29sZXIvcmVzL3ZhbHVlcy16dS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ0Njk4MzYwNzUzMTk4MzE4MjEiPiJJc3B1bGkgc2VwaHJpbnRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWR2YW5jZWRfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNTc2NDIyNTA5MTI4OTQxNTYzMiI+Ikl6aWx1bmdpc2VsZWxvIHplcGhyaW50YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2J1dHRvbiIgbXNnaWQ9IjY0NTE2NDU2NjI3MTI0NjI2OCI+IlBocmludGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzYXZlX2J1dHRvbiIgbXNnaWQ9IjE5MjEzMTA0NTQwNzE3NTg5OTkiPiJMb25kb2xvemEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9kZXN0aW5hdGlvbiIgbXNnaWQ9IjkxMzI1MTA5OTczODE1OTkyNzUiPiJJbmRhd28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9jb3BpZXMiIG1zZ2lkPSIzNjM0NTMxMDQyODIyOTY4MzA4Ij4iQW1ha2hvcGhpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfcGFwZXJfc2l6ZSIgbXNnaWQ9Ijg2ODE4OTU2MDc4NzY4MDkzMjMiPiJVc2F5aXppIHdlcGhlcGhhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfY29sb3IiIG1zZ2lkPSIxMTA4NjkwMzA1MjE4MTg4OTY5Ij4iVW1iYWxhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfb3JpZW50YXRpb24iIG1zZ2lkPSIyODUzMTQyNTgxOTkwNDk2NDc3Ij4iVW11bW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF9wYWdlcyIgbXNnaWQ9IjYzMDA4NzQ2Njc1NDY2MTczMzMiPiJBbWFraGFzaSAoPHhsaWZmOmcgaWQ9IlBBR0VfQ09VTlQiPiUxJHM8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InBhZ2VzX3JhbmdlX2V4YW1wbGUiIG1zZ2lkPSI4NTU4Njk0NDUzNTU2OTQ1MTcyIj4iaXNiLiAx4oCUNSwgOCwgMTHigJQxMyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3ByZXZpZXciIG1zZ2lkPSI4MDEwMjE3Nzk2MDU3NzYzMzQzIj4iVWt1YnVrYSBrdXFhbGEga29rdXBocmludGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsX2Zvcl9wcmludF9wcmV2aWV3IiBtc2dpZD0iNjM2NjMwMzk5NzM4NTUwOTMzMiI+IkZha2EgaXNpYnVrZWxpIHNlLVBERiB1a3V6ZSB1aGxvbGUga3VxYWxhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfYXBwX2NyYXNoZWQiIG1zZ2lkPSI4NTQ0Nzc2MTY2ODY1NjYzOTgiPiJVa3VwaHJpbnRhIHVobGVsbyBsb2t1c2ViZW56YSBrdWtodWJhemVraWxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icGFnZV9jb3VudF91bmtub3duIiBtc2dpZD0iNjA1ODg1MjY2NTk1NDUxMTEyNCI+IkFtYWtoYXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ2VuZXJhdGluZ19wcmludF9qb2IiIG1zZ2lkPSIzMTE5NjA4NzQyNjUxNjk4OTE2Ij4iSWtoaXFpemEgdW1zZWJlbnppIHdva3VwaHJpbnRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2F2ZV9hc19wZGYiIG1zZ2lkPSI1NzE4NDU0MTE5ODQ3NTk2ODUzIj4iTG9uZG9sb3phIG5qZW5nZS1QREYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbGxfcHJpbnRlcnMiIG1zZ2lkPSI1MDE4ODI5NzI2ODYxODc2MjAyIj4iV29ua2UgYW1hcGhyaW50YeKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X2RpYWxvZyIgbXNnaWQ9IjMyNjI4Njg3NDYxMzMxOTc5Ij4iSW5neG94byB5b2t1cGhyaW50YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlYXJjaCIgbXNnaWQ9IjU0MjE3MjQyNjUzMjIyMjg0OTciPiJTZXNoYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsbF9wcmludGVyc19sYWJlbCIgbXNnaWQ9IjMxNzg4NDg4NzAxNjE1MjYzOTkiPiJXb25rZSBhbWFwaHJpbnRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWRkX3ByaW50X3NlcnZpY2VfbGFiZWwiIG1zZ2lkPSI1MzU2NzAyNTQ2MTg4OTgxOTQwIj4iRW5nZXphIGlzZXZpc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9zZWFyY2hfYm94X3Nob3duX3V0dGVyYW5jZSIgbXNnaWQ9Ijc5Njc0MDQ5NTM5MDEzNzYwOTAiPiJJYmhva2lzaSBsb2t1aGxvbGEgbGlib25pc2l3ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X3NlYXJjaF9ib3hfaGlkZGVuX3V0dGVyYW5jZSIgbXNnaWQ9IjU3Mjc3NTUxNjkzNDMxMTMzNTEiPiJJYmhva2lzaSBsb2t1c2VzaGEgbGlmaWhsaXdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfYWRkX3ByaW50ZXIiIG1zZ2lkPSIxMDg4NjU2NDY4MzYwNjUzNDU1Ij4iRW5nZXphIGlwaHJpbnRhIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X3NlbGVjdF9wcmludGVyICg3Mzg4NzYwOTM5ODczMzY4Njk4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHByaW50X2ZvcmdldF9wcmludGVyICg1MDM1Mjg3NDk3MjkxOTEwNzY2KSAtLT4KKyAgICA8c2tpcCAvPgorICA8cGx1cmFscyBuYW1lPSJwcmludF9zZWFyY2hfcmVzdWx0X2NvdW50X3V0dGVyYW5jZSI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjQ0ODQ5NTMyNjA2ODU5NjQyNTIiPiI8eGxpZmY6ZyBpZD0iQ09VTlQiPiUxJHM8L3hsaWZmOmc+IGlwaHJpbnRhIGl0aG9saXdlIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSI2NTMzODE3MDM2NjA3MTI4MjQxIj4iPHhsaWZmOmcgaWQ9IkNPVU5UIj4lMSRzPC94bGlmZjpnPiBhbWFwaHJpbnRhIGF0aG9saXdlIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0iY2hvb3NlX3ByaW50X3NlcnZpY2UiIG1zZ2lkPSIzNzQwMzA5NzYyMzI0NDU5Njk0Ij4iS2hldGhhIGlzZXZpc2kgeWVwaHJpbnRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRfc2VhcmNoaW5nX2Zvcl9wcmludGVycyIgbXNnaWQ9IjY1NTA0MjQ1NTUwNzk5MzI4NjciPiJJc2VzaGEgYW1hcGhyaW50YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50X25vX3ByaW50ZXJzIiBtc2dpZD0iNDg2OTQwMzMyMzkwMDA1NDg2NiI+IkF3ZWtobyBhbWFwaHJpbnRhIGF0aG9saXdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJpbnRpbmdfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMjk1OTAzOTU3NzYyNDQ3MzYyIj4iSXBocmludGEgaS08eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY2FuY2VsbGluZ19ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIxODIxNzU5NTk0NzA0NzAzMTk3Ij4iSWtoYW5zZWxhIGktPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImZhaWxlZF9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiIG1zZ2lkPSIyMjU2MjE3MjA4MTg2NTMwOTczIj4iSXBodXRoYSBsZXBocmludGEgeWUtPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsb2NrZWRfbm90aWZpY2F0aW9uX3RpdGxlX3RlbXBsYXRlIiBtc2dpZD0iMTE3NTQzNTgyNzMzMTU4ODY0NiI+IklwaHJpbnRhIGVuZ3UtPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRzPC94bGlmZjpnPiBpdmluamVsd2UiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9ImNvbXBvc2l0ZV9ub3RpZmljYXRpb25fdGl0bGVfdGVtcGxhdGUiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODY2NjI0NjM4MDU0ODQ3MDU3Ij4iPHhsaWZmOmcgaWQ9IlBSSU5UX0pPQl9OQU1FIj4lMSRkPC94bGlmZjpnPiB1bXNlYmVuemkgd29rdXBocmludGEiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9Ijg3NDY2MTEyNjQ3MzQyMjI4NjUiPiI8eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJGQ8L3hsaWZmOmc+IGltaXNlYmVuemkgeW9rdXBocmludGEiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJjYW5jZWwiIG1zZ2lkPSI0MzczNjc0MTA3MjY3MTQxODg1Ij4iS2hhbnNlbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZXN0YXJ0IiBtc2dpZD0iMjQ3MjAzNDIyNzAzNzgwODc0OSI+IlFhbGEga2FidXNoYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Im5vX2Nvbm5lY3Rpb25fdG9fcHJpbnRlciIgbXNnaWQ9IjIxNTkyNDY5MTU5NzcyODI3MjgiPiJBa3VraG8gdWt1eGh1bWFuYSBrdXBocmludGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJyZWFzb25fdW5rbm93biIgbXNnaWQ9IjU1MDc5NDAxOTY1MDMyNDYxMzkiPiJha3dheml3YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByaW50ZXJfdW5hdmFpbGFibGUiIG1zZ2lkPSIyNDM0MTcwNjE3MDAzMzE1NjkwIj4iSS08eGxpZmY6ZyBpZD0iUFJJTlRfSk9CX05BTUUiPiUxJHM8L3hsaWZmOmc+IOKAkyBheWl0aG9sYWthbGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcmludF9lcnJvcl9kZWZhdWx0X21lc3NhZ2UiIG1zZ2lkPSI4NTY4NTA2OTE4OTgzOTgwNTY3Ij4iQXlpa3dhemFuZ2EgdWt1a2hpcWl6YSB1bXNlYmVuemkgd29rdXBocmludGEiPC9zdHJpbmc+CisgIDxzdHJpbmctYXJyYXkgbmFtZT0iY29sb3JfbW9kZV9sYWJlbHMiPgorICAgIDxpdGVtIG1zZ2lkPSI3NjAyOTQ4NzQ1NDE1MTc0OTM3Ij4iT2t1bW55YW1hIG5va3VtaGxvcGhlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMjc2MjI0MTI0NzIyODk4Mzc1NCI+IlVtYmFsYSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorICA8c3RyaW5nLWFycmF5IG5hbWU9Im9yaWVudGF0aW9uX2xhYmVscyI+CisgICAgPGl0ZW0gbXNnaWQ9IjQwNjE5MzEwMjA5MjY0ODkyMjgiPiJVa3VtYSBuZ29idWRlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iMzE5OTY2MDA5MDI0NjE2NjgxMiI+IlVrd2FraGVrYSBrd2V6d2UiPC9pdGVtPgorICA8L3N0cmluZy1hcnJheT4KKyAgPHN0cmluZy1hcnJheSBuYW1lPSJwYWdlX29wdGlvbnNfbGFiZWxzIj4KKyAgICA8aXRlbSBtc2dpZD0iNzQyMTM3NzQ0MjAxMTY5OTk5NCI+IktvbmtlIjwvaXRlbT4KKyAgICA8aXRlbSBtc2dpZD0iNjgxMjg2OTYyNTIyMjUwMzYwMyI+IkliYW5nYSI8L2l0ZW0+CisgIDwvc3RyaW5nLWFycmF5PgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtYXotckFaL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLWF6LXJBWi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGQwZDQzCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLWF6LXJBWi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA3LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NTY3NTY2MDk4NTI4NTg4ODYzIj4iUGFyYW1ldHJsyZlyIERlcG9zdSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLWF6L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLWF6L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0ZDBkNDMKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtYXovc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAwNywgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDU2NzU2NjA5ODUyODU4ODg2MyI+IlBhcmFtZXRybMmZciBEZXBvc3UiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxOWZkZDcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ1Njc1NjYwOTg1Mjg1ODg4NjMiPiJTZXR0aW5ncyBTdG9yYWdlIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGI3MjkzCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA3LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NTY3NTY2MDk4NTI4NTg4ODYzIj4iU2VhZGV0ZSB0YWxsZXR1c3J1dW0iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1mci1yQ0Evc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5MGViMDkKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ1Njc1NjYwOTg1Mjg1ODg4NjMiPiJTdG9ja2FnZSBkZXMgcGFyYW3DqHRyZXMiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxZjFhZmIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ1Njc1NjYwOTg1Mjg1ODg4NjMiPiLUv9Wh1oDVo9Wh1b7VuNaA1bjWgtW01bbVpdaA1asg1brVodWw1bjWgtW91b8iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1oeS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1oeS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMWYxYWZiCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLWh5L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ1Njc1NjYwOTg1Mjg1ODg4NjMiPiLUv9Wh1oDVo9Wh1b7VuNaA1bjWgtW01bbVpdaA1asg1brVodWw1bjWgtW91b8iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5MWEyZTkKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ1Njc1NjYwOTg1Mjg1ODg4NjMiPiLhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5jhg6Eg4YOh4YOQ4YOq4YOQ4YOV4YOYIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMta2Evc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMta2Evc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjkxYTJlOQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1rYS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA3LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NTY3NTY2MDk4NTI4NTg4ODYzIj4i4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOY4YOhIOGDoeGDkOGDquGDkOGDleGDmCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1rbS1yS0gvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JlNjI0MjcKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ1Njc1NjYwOTg1Mjg1ODg4NjMiPiLhnoDhn4bhno7hno/hn4vigIvhnoDhnrbhnprigIvhnpXhn5LhnpHhnrvhnoAiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1rbS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1rbS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmU2MjQyNwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1rbS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA3LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NTY3NTY2MDk4NTI4NTg4ODYzIj4i4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6A4Z624Z6a4oCL4Z6V4Z+S4Z6R4Z674Z6AIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtbG8tckxBL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLWxvLXJMQS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTU3OTM2Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLWxvLXJMQS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA3LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NTY3NTY2MDk4NTI4NTg4ODYzIj4i4Lqa4LuI4Lqt4LqZ4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4LqyIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtbG8vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtbG8vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU1NzkzNgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1sby9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA3LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NTY3NTY2MDk4NTI4NTg4ODYzIj4i4Lqa4LuI4Lqt4LqZ4LuA4LqB4Lqx4Lqa4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4LqyIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtbW4tck1OL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDUyMTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA3LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NTY3NTY2MDk4NTI4NTg4ODYzIj4i0KLQvtGF0LjRgNCz0L7QvtC90Ysg0KHQsNC9Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtbW4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtbW4vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQ1MjE0NQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1tbi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA3LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NTY3NTY2MDk4NTI4NTg4ODYzIj4i0KLQvtGF0LjRgNCz0L7QvtC90Ysg0KHQsNC9Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLW1zLXJNWS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTA4YjA3Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLW1zLXJNWS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA3LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NTY3NTY2MDk4NTI4NTg4ODYzIj4iU3RvcmFuIFRldGFwYW4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1uZS1yTlAvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtbmUtck5QL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNmVmNjIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtbmUtck5QL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ1Njc1NjYwOTg1Mjg1ODg4NjMiPiLgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIg4KSt4KSj4KWN4KSh4KS+4KSw4KSjIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtbmUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtbmUvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY2ZWY2MgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1uZS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA3LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NTY3NTY2MDk4NTI4NTg4ODYzIj4i4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIOCkreCko+CljeCkoeCkvuCksOCkoyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLXNpLXJMSy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1zaS1yTEsvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRlZjc5OAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1zaS1yTEsvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAwNywgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNDU2NzU2NjA5ODUyODU4ODg2MyI+IuC3g+C3kOC2muC3g+C3k+C2uOC3iiDgtpzgtrbgtqngt4/gt4AiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1zaS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NldHRpbmdzUHJvdmlkZXIvcmVzL3ZhbHVlcy1zaS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGVmNzk4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLXNpL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjQ1Njc1NjYwOTg1Mjg1ODg4NjMiPiLgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4og4Lac4La24Lap4LeP4LeAIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TZXR0aW5nc1Byb3ZpZGVyL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzdjOWI5Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2V0dGluZ3NQcm92aWRlci9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA3LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI0NTY3NTY2MDk4NTI4NTg4ODYzIj4i6Kit5a6a5YSy5a2Y56m66ZaTIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWF6LXJBWi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtYXotckFaL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhMDhlMzgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWF6LXJBWi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIzNzAxODQ2MDE3MDQ5NTQwOTEwIj4iU2hlbGwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGl0bGUiIG1zZ2lkPSIyMjkzNzExNTQ2ODkyODYzODk4Ij4iQmFxIHJhcG9ydCBhbMSxbmTEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90ZXh0IiBtc2dpZD0iMzU1OTkwNDc0Njg1OTQwMDczMiI+IljJmXRhbsSxIMWfaWthecmZdGluaSBwYXlsYcWfbWFxIMO8w6fDvG4gdG94dW51biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtIiBtc2dpZD0iNTEzMDY5ODQ2Nzc5NTY2OTc4MCI+IkJhcSByYXBvcnRsYXLEsSBzaXN0ZW1pbiBtw7x4dMmZbGlmIGp1cm5hbCBmYXlsbGFyxLFuZGFuIGRhdGEgacOnyZlyaXIga2ksIGJ1bmEgxZ/JmXhzaSB2yZkga29uZmlkZW5zaWFsIG3JmWx1bWF0bGFyIGRhIGFpZGRpci4gWWFsbsSxeiBpbmFuZMSxxJ/EsW7EsXogYWRhbWxhcmxhIGJhcSByYXBvcnRsYXLEsW7EsSBwYXlsYcWfxLFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtX3JlcGVhdCIgbXNnaWQ9IjQ5MjY4NDI0NjA2ODg2NDUwNTgiPiJCdSBtZXNhasSxIG7DtnZiyZl0aSBkyZlmyZkgZ8O2c3TJmXIiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtYXovc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWF6L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhMDhlMzgKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWF6L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICAKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjM3MDE4NDYwMTcwNDk1NDA5MTAiPiJTaGVsbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90aXRsZSIgbXNnaWQ9IjIyOTM3MTE1NDY4OTI4NjM4OTgiPiJCYXEgcmFwb3J0IGFsxLFuZMSxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RleHQiIG1zZ2lkPSIzNTU5OTA0NzQ2ODU5NDAwNzMyIj4iWMmZdGFuxLEgxZ9pa2F5yZl0aW5pIHBheWxhxZ9tYXEgw7zDp8O8biB0b3h1bnVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm0iIG1zZ2lkPSI1MTMwNjk4NDY3Nzk1NjY5NzgwIj4iQmFxIHJhcG9ydGxhcsSxIHNpc3RlbWluIG3DvHh0yZlsaWYganVybmFsIGZheWxsYXLEsW5kYW4gZGF0YSBpw6fJmXJpciBraSwgYnVuYSDFn8mZeHNpIHbJmSBrb25maWRlbnNpYWwgbcmZbHVtYXRsYXIgZGEgYWlkZGlyLiBZYWxuxLF6IGluYW5kxLHEn8SxbsSxeiBhZGFtbGFybGEgYmFxIHJhcG9ydGxhcsSxbsSxIHBheWxhxZ/EsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm1fcmVwZWF0IiBtc2dpZD0iNDkyNjg0MjQ2MDY4ODY0NTA1OCI+IkJ1IG1lc2FqxLEgbsO2dmLJmXRpIGTJmWbJmSBnw7ZzdMmZciI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1jcy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtY3Mvc3RyaW5ncy54bWwKaW5kZXggZWZmZGNiOS4uM2YxYzkyMSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1jcy9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWNzL3N0cmluZ3MueG1sCkBAIC0xNyw4ICsxNyw4IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIzNzAxODQ2MDE3MDQ5NTQwOTEwIj4iUHJvc3TFmWVkw60iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGl0bGUiIG1zZ2lkPSIyMjkzNzExNTQ2ODkyODYzODk4Ij4iQnlsYSB2eXR2b8WZZW5hIHpwcsOhdmEgbyBjaHlixJsiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGV4dCIgbXNnaWQ9IjM1NTk5MDQ3NDY4NTk0MDA3MzIiPiJacHLDoXZ1IG8gY2h5YsSbIG3Fr8W+ZXRlIHNkw61sZXQga2xlcG51dMOtbS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiJacHLDoXZ5IG8gY2h5YsOhY2ggb2JzYWh1asOtIGRhdGEgeiByxa96bsO9Y2ggc291Ym9yxa8gcHJvdG9rb2zFryBzeXN0w6ltdSB2xI1ldG7EmyBvc29ibsOtY2ggYSBzb3Vrcm9tw71jaCBpbmZvcm1hY8OtLiBacHLDoXZ5IG8gY2h5YsOhY2ggc2TDrWxlanRlIHBvdXplIHMgYXBsaWthY2VtaSBhIHXFvml2YXRlbGksIGt0ZXLDvW0gZMWvdsSbxZl1amV0ZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGl0bGUiIG1zZ2lkPSIyMjkzNzExNTQ2ODkyODYzODk4Ij4iQnlsbyB2eXR2b8WZZW5vIGNoeWJvdsOpIGhsw6HFoWVuw60iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGV4dCIgbXNnaWQ9IjM1NTk5MDQ3NDY4NTk0MDA3MzIiPiJDaHlib3bDqSBobMOhxaFlbsOtIG3Fr8W+ZXRlIHNkw61sZXQga2xlcG51dMOtbS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiJDaHlib3bDoSBobMOhxaFlbsOtIG9ic2FodWrDrSBkYXRhIHrCoHLFr3puw71jaCBzb3Vib3LFryBwcm90b2tvbMWvIHN5c3TDqW11IHbEjWV0bsSbIG9zb2Juw61jaCBhwqBzb3Vrcm9tw71jaCBpbmZvcm1hY8OtLiBDaHlib3bDoSBobMOhxaFlbsOtIHNkw61sZWp0ZSBwb3V6ZSBzwqBhcGxpa2FjZW1pIGHCoHXFvml2YXRlbGksIGt0ZXLDvW0gZMWvdsSbxZl1amV0ZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybV9yZXBlYXQiIG1zZ2lkPSI0OTI2ODQyNDYwNjg4NjQ1MDU4Ij4iWm9icmF6aXQgdHV0byB6cHLDoXZ1IHDFmcOtxaF0xJsiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtZGEvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWRhL3N0cmluZ3MueG1sCmluZGV4IDAxZWE0MmIuLmE4YTM2MDUgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtZGEvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1kYS9zdHJpbmdzLnhtbApAQCAtMTksNiArMTksNiBAQAogICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMzcwMTg0NjAxNzA0OTU0MDkxMCI+IlNoZWxsIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IkZlamxyYXBwb3J0ZW4gZXIgcmVnaXN0cmVyZXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGV4dCIgbXNnaWQ9IjM1NTk5MDQ3NDY4NTk0MDA3MzIiPiJUcnlrIGZvciBhdCBkZWxlIGRpbiBmZWpscmFwcG9ydCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtIiBtc2dpZD0iNTEzMDY5ODQ2Nzc5NTY2OTc4MCI+IkZlamxyYXBwb3J0ZXIgaW5kZWhvbGRlciBkYXRhIGZyYSBzeXN0ZW1ldHMgZm9yc2tlbGxpZ2UgbG9nZmlsZXIsIGhlcnVuZGVyIHBlcnNvbmxpZ2Ugb2cgcHJpdmF0ZSBvcGx5c25pbmdlci4gRGVsIGt1biBmZWpscmFwcG9ydGVyIG1lZCBhcHBzIG9nIHBlcnNvbmVyLCBkdSBoYXIgdGlsbGlkIHRpbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiJGZWpscmFwcG9ydGVyIGluZGVob2xkZXIgZGF0YSBmcmEgc3lzdGVtZXRzIGZvcnNrZWxsaWdlIGxvZ2ZpbGVyLCBmLmVrcy4gcGVyc29ubGlnZSBvZyBwcml2YXRlIG9wbHlzbmluZ2VyLiBEZWwga3VuIGZlamxyYXBwb3J0ZXIgbWVkIGFwcHMgb2cgcGVyc29uZXIsIGR1IGhhciB0aWxsaWQgdGlsLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtX3JlcGVhdCIgbXNnaWQ9IjQ5MjY4NDI0NjA2ODg2NDUwNTgiPiJWaXMgZGVubmUgbWVkZGVsZWxzZSBuw6ZzdGUgZ2FuZyI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWVuLXJJTi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODcwOGUwCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMzcwMTg0NjAxNzA0OTU0MDkxMCI+IlNoZWxsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IkJ1ZyByZXBvcnQgY2FwdHVyZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGV4dCIgbXNnaWQ9IjM1NTk5MDQ3NDY4NTk0MDA3MzIiPiJUb3VjaCB0byBzaGFyZSB5b3VyIGJ1ZyByZXBvcnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiJCdWcgcmVwb3J0cyBjb250YWluIGRhdGEgZnJvbSB0aGUgc3lzdGVtXCdzIHZhcmlvdXMgbG9nIGZpbGVzLCBpbmNsdWRpbmcgcGVyc29uYWwgYW5kIHByaXZhdGUgaW5mb3JtYXRpb24uIE9ubHkgc2hhcmUgYnVnIHJlcG9ydHMgd2l0aCBhcHBzIGFuZCBwZW9wbGUgdGhhdCB5b3UgdHJ1c3QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm1fcmVwZWF0IiBtc2dpZD0iNDkyNjg0MjQ2MDY4ODY0NTA1OCI+IlNob3cgdGhpcyBtZXNzYWdlIG5leHQgdGltZSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1ldC1yRUUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Nzg4MTU4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1ldC1yRUUvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMzcwMTg0NjAxNzA0OTU0MDkxMCI+Iktlc3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGl0bGUiIG1zZ2lkPSIyMjkzNzExNTQ2ODkyODYzODk4Ij4iVmVhYXJ1YW5uZSBqw6TDpGR2dXN0YXRpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RleHQiIG1zZ2lkPSIzNTU5OTA0NzQ2ODU5NDAwNzMyIj4iVmVhYXJ1YW5kZSBqYWdhbWlzZWtzIHB1dWR1dGFnZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtIiBtc2dpZD0iNTEzMDY5ODQ2Nzc5NTY2OTc4MCI+IlZlYWFydWFuZGVkIHNpc2FsZGF2YWQgYW5kbWVpZCBlcmluZXZhdGVzdCBzw7xzdGVlbWkgbG9naWZhaWxpZGVzdCwgc2ggaXNpa2xpa2t1IGphIHByaXZhYXRzZXQgdGVhdmV0LiBKYWdhZ2UgdmVhYXJ1YW5kZWlkIGFpbnVsdCB1c2FsZHVzdsOkw6Ryc2V0ZSByYWtlbmR1c3RlIGphIGluaW1lc3RlZ2EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm1fcmVwZWF0IiBtc2dpZD0iNDkyNjg0MjQ2MDY4ODY0NTA1OCI+Ikt1dmEgc2VlIHPDtW51bSBqw6RyZ21pc2VsIGtvcnJhbCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1mci1yQ0Evc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWZyLXJDQS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjcyZjIzCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1mci1yQ0Evc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMzcwMTg0NjAxNzA0OTU0MDkxMCI+IlNoZWxsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IlJhcHBvcnQgZGUgYm9ndWUgZW5yZWdpc3Ryw6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGV4dCIgbXNnaWQ9IjM1NTk5MDQ3NDY4NTk0MDA3MzIiPiJBcHB1eWVyIGljaSBwb3VyIHBhcnRhZ2VyIHZvdHJlIHJhcHBvcnQgZGUgYm9ndWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiJMZXMgcmFwcG9ydHMgZGUgYm9ndWUgY29udGllbm5lbnQgZGVzIGRvbm7DqWVzIGRlcyBmaWNoaWVycyBqb3VybmF1eCBkdSBzeXN0w6htZSwgeSBjb21wcmlzIGRlcyBpbmZvcm1hdGlvbnMgcGVyc29ubmVsbGVzIGV0IHByaXbDqWVzLiBOZSBwYXJ0YWdleiBsZXMgcmFwcG9ydHMgZGUgYm9ndWUgcXVcJ2F2ZWMgbGVzIGFwcGxpY2F0aW9ucyBldCBsZXMgcGVyc29ubmVzIHF1ZSB2b3VzIGVzdGltZXogZmlhYmxlcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybV9yZXBlYXQiIG1zZ2lkPSI0OTI2ODQyNDYwNjg4NjQ1MDU4Ij4iQWZmaWNoZXIgY2UgbWVzc2FnZSBsYSBwcm9jaGFpbmUgZm9pcyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1oaS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwKaW5kZXggNGVhMDY2NC4uZjg4OTMxMSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1oaS9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sCkBAIC0xOSw2ICsxOSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIzNzAxODQ2MDE3MDQ5NTQwOTEwIj4i4KS24KWH4KSyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IuCkrOCklyDgpLDgpL/gpKrgpYvgpLDgpY3gpJ8g4KSV4KWI4KSq4KWN4KSa4KSwIOCkleCksCDgpLLgpYAg4KSX4KSIIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RleHQiIG1zZ2lkPSIzNTU5OTA0NzQ2ODU5NDAwNzMyIj4i4KSF4KSq4KSo4KWAIOCkrOCklyDgpLDgpL/gpKrgpYvgpLDgpY3gpJ8g4KS44KS+4KSd4KS+IOCkleCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkuOCljeCkquCksOCljeCktiDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiLgpKzgpJcg4KSw4KS/4KSq4KWL4KSw4KWN4KSfIOCkruClh+CkgiDgpLXgpY3gpK/gpJXgpY3gpKTgpL/gpJfgpKQg4KSU4KSwIOCkqOCkv+CknOClgCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KS44KS54KS/4KSkLCDgpLjgpL/gpLjgpY3gpJ/gpK4g4KSV4KWAIOCkteCkv+CkreCkv+CkqOCljeCkqCDgpLLgpYngpJcg4KSr4KS84KS+4KSH4KSy4KWL4KSCIOCkleCkviDgpKHgpYfgpJ/gpL4g4KS54KWL4KSk4KS+IOCkueCliC4g4KSs4KSXIOCksOCkv+CkquCli+CksOCljeCknyDgpJXgpYfgpLXgpLIg4KS14KS/4KS24KWN4KS14KS44KSo4KWA4KSvIOCkj+CkquCljeCksuCkv+CkleClh+CktuCkqCDgpJTgpLAg4KS14KWN4KSv4KSV4KWN4KSk4KS/4KSv4KWL4KSCIOCkuOClhyDgpLngpYAg4KS44KS+4KSd4KS+IOCkleCksOClh+Ckgi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiLgpKzgpJcg4KSw4KS/4KSq4KWL4KSw4KWN4KSfIOCkruClh+CkgiDgpLXgpY3gpK/gpJXgpY3gpKTgpL/gpJfgpKQg4KSU4KSwIOCkqOCkv+CknOClgCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAg4KS44KS54KS/4KSkLCDgpLjgpL/gpLjgpY3gpJ/gpK4g4KSV4KWAIOCkteCkv+CkreCkv+CkqOCljeCkqCDgpLLgpYngpJcg4KSr4KS84KS+4KSH4KSy4KWL4KSCIOCkleCkviDgpKHgpYfgpJ/gpL4g4KS54KWL4KSk4KS+IOCkueCliC4g4KSs4KSXIOCksOCkv+CkquCli+CksOCljeCknyDgpJXgpYfgpLXgpLIg4KS14KS/4KS24KWN4KS14KS44KSo4KWA4KSvIOCkkOCkquCljeCkuCAg4KSU4KSwIOCkteCljeCkr+CkleCljeCkpOCkv+Ckr+Cli+CkgiDgpLjgpYcg4KS54KWAIOCkuOCkvuCkneCkviDgpJXgpLDgpYfgpIIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm1fcmVwZWF0IiBtc2dpZD0iNDkyNjg0MjQ2MDY4ODY0NTA1OCI+IuCkr+CkuSDgpLjgpILgpKbgpYfgpLYg4KSF4KSX4KSy4KWAIOCkrOCkvuCksCDgpKbgpL/gpJbgpL7gpI/gpIIiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWE3ZmE5ZgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICAKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjM3MDE4NDYwMTcwNDk1NDA5MTAiPiLUvdWl1oHVqyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90aXRsZSIgbXNnaWQ9IjIyOTM3MTE1NDY4OTI4NjM4OTgiPiLVjtaA1avVutWh1a/VqyDVptWl1a/VuNaC1bXWgSDVvdW/1aHWgdW+1aXWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90ZXh0IiBtc2dpZD0iMzU1OTkwNDc0Njg1OTQwMDczMiI+ItWA1brVpdaEYCDVsdWl1oAg1b7WgNWr1brVodWv1asg1bTVodW91avVtiDVptWl1a/VuNaC1bXWgdWoINW/1aHWgNWh1a7VpdWs1bjWgiDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm0iIG1zZ2lkPSI1MTMwNjk4NDY3Nzk1NjY5NzgwIj4i1Y7WgNWr1brVodWv1asg1abVpdWv1bjWgtW11oHVttWl1oDVqCDVutWh1oDVuNaC1bbVodWv1bjWgtW0INWl1bYg1b/VvtW11aHVrNW21aXWgCDVsNWh1bTVodWv1aHWgNWj1asg1b/VodaA1aLVpdaAINW01bjWgtW/1oTVqyDWhtWh1bXVrNWl1oDVq9aBLCDVodW11aQg1anVvtW41oLVtCDVttWh1ocg1aHVttWw1aHVv9Wh1a/VodW2IOKAi+KAi9aHINWj1aHVstW/1bbVqyDVv9Wl1bLVpdWv1bjWgtWp1bXVuNaC1bbVttWl1oA6INWO1oDVq9W61aHVr9WrINWm1aXVr9W41oLVtdaB1bbVpdaA1ajCoNWv1avVvdWl1oQg1bTVq9Wh1bXVtiDVodW11bYg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINaHINW01aHWgNWk1a/VodW21oEg1bDVpdW/LCDVuNaA1bjVttaBINW+1b3Vv9Wh1bDVuNaC1bQg1aXWhDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybV9yZXBlYXQiIG1zZ2lkPSI0OTI2ODQyNDYwNjg4NjQ1MDU4Ij4i1LHVtdW9INWw1aHVstW41oDVpNWh1aPWgNW41oLVqdW11bjWgtW21agg1oHVuNaC1bXWgSDVv9Wh1awg1bDVodW71bjWgNWkINWh1bbVo9Wh1bQiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtaHkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWh5L3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhN2ZhOWYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWh5L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICAKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjM3MDE4NDYwMTcwNDk1NDA5MTAiPiLUvdWl1oHVqyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90aXRsZSIgbXNnaWQ9IjIyOTM3MTE1NDY4OTI4NjM4OTgiPiLVjtaA1avVutWh1a/VqyDVptWl1a/VuNaC1bXWgSDVvdW/1aHWgdW+1aXWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90ZXh0IiBtc2dpZD0iMzU1OTkwNDc0Njg1OTQwMDczMiI+ItWA1brVpdaEYCDVsdWl1oAg1b7WgNWr1brVodWv1asg1bTVodW91avVtiDVptWl1a/VuNaC1bXWgdWoINW/1aHWgNWh1a7VpdWs1bjWgiDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm0iIG1zZ2lkPSI1MTMwNjk4NDY3Nzk1NjY5NzgwIj4i1Y7WgNWr1brVodWv1asg1abVpdWv1bjWgtW11oHVttWl1oDVqCDVutWh1oDVuNaC1bbVodWv1bjWgtW0INWl1bYg1b/VvtW11aHVrNW21aXWgCDVsNWh1bTVodWv1aHWgNWj1asg1b/VodaA1aLVpdaAINW01bjWgtW/1oTVqyDWhtWh1bXVrNWl1oDVq9aBLCDVodW11aQg1anVvtW41oLVtCDVttWh1ocg1aHVttWw1aHVv9Wh1a/VodW2IOKAi+KAi9aHINWj1aHVstW/1bbVqyDVv9Wl1bLVpdWv1bjWgtWp1bXVuNaC1bbVttWl1oA6INWO1oDVq9W61aHVr9WrINWm1aXVr9W41oLVtdaB1bbVpdaA1ajCoNWv1avVvdWl1oQg1bTVq9Wh1bXVtiDVodW11bYg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWrINaHINW01aHWgNWk1a/VodW21oEg1bDVpdW/LCDVuNaA1bjVttaBINW+1b3Vv9Wh1bDVuNaC1bQg1aXWhDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybV9yZXBlYXQiIG1zZ2lkPSI0OTI2ODQyNDYwNjg4NjQ1MDU4Ij4i1LHVtdW9INWw1aHVstW41oDVpNWh1aPWgNW41oLVqdW11bjWgtW21agg1oHVuNaC1bXWgSDVv9Wh1awg1bDVodW71bjWgNWkINWh1bbVo9Wh1bQiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtaXcvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWl3L3N0cmluZ3MueG1sCmluZGV4IGU3NzE1ZTkuLmRlZDg2MGMgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtaXcvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1pdy9zdHJpbmdzLnhtbApAQCAtMTksNiArMTksNiBAQAogICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMzcwMTg0NjAxNzA0OTU0MDkxMCI+Itee16LXmNek16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGl0bGUiIG1zZ2lkPSIyMjkzNzExNTQ2ODkyODYzODk4Ij4i15PXldeXINeU15HXkNeS15nXnSDXpteV15zXnSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90ZXh0IiBtc2dpZD0iMzU1OTkwNDc0Njg1OTQwMDczMiI+IteS16Ig15vXk9eZINec16nXqtejINeQ16og15PXldeXINeU15HXkNeS15nXnSDXqdec15oiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiLXk9eV15fXldeqINei15wg15HXkNeS15nXnSDXm9eV15zXnNeZ150g16DXqteV16DXmdedINee16fXldeR16bXmSDXlNeZ15XXntefINeU16nXldeg15nXnSDXkdee16LXqNeb16osINeb15XXnNecINee15nXk9eiINeQ15nXqdeZINeV16TXqNeY15kuINep16rXoyDXk9eV15fXldeqINeR15DXkteZ150g16jXpyDXotedINeZ15nXqdeV157XmdedINeV15DXoNep15nXnSDXqdeQ16rXlCDXodeV157XmiDXotec15nXlNedLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtIiBtc2dpZD0iNTEzMDY5ODQ2Nzc5NTY2OTc4MCI+IteT15XXl9eV16og16LXnCDXkdeQ15LXmdedINeb15XXnNec15nXnSDXoNeq15XXoNeZ150g157Xp9eV15HXpteZINeU15nXldee158g15TXqdeV16DXmdedINeR157Xoteo15vXqiwg15vXldec15wg157XmdeT16Ig15DXmdep15kg15XXpNeo15jXmS4g16nXqtejINeT15XXl9eV16og15HXkNeS15nXnSDXqNenINei150g15DXpNec15nXp9em15nXldeqINeV15DXoNep15nXnSDXqdeQ16rXlCDXodeV157XmiDXotec15nXlNedLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtX3JlcGVhdCIgbXNnaWQ9IjQ5MjY4NDI0NjA2ODg2NDUwNTgiPiLXlNem15Ig15DXqiDXlNeU15XXk9ei15Qg15TXlteVINeR16TXotedINeU15HXkNeUIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWthLXJHRS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkOWM3MmEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWthLXJHRS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIzNzAxODQ2MDE3MDQ5NTQwOTEwIj4i4YOS4YOQ4YOg4YOU4YOZ4YOQ4YOc4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IuGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmCDhg67hg5Dhg6Dhg5Xhg5Thg5bhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOu4YOU4YORIOGDqOGDlOGDpeGDm+GDnOGDmOGDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90ZXh0IiBtc2dpZD0iMzU1OTkwNDc0Njg1OTQwMDczMiI+IuGDqOGDlOGDlOGDruGDlOGDlyDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOu4YOQ4YOg4YOV4YOU4YOW4YOU4YOR4YOY4YOhIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoSDhg5Lhg5Dhg6Hhg5Dhg5bhg5jhg5Dhg6Dhg5Thg5Hhg5rhg5Dhg5MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiLhg67hg5Dhg6Dhg5Xhg5Thg5bhg5jhg6Eg4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOU4YOR4YOYIOGDm+GDneGDmOGDquGDkOGDleGDoSDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg6Eg4YOh4YOu4YOV4YOQ4YOT4YOQ4YOh4YOu4YOV4YOQIOGDoeGDmOGDoeGDouGDlOGDm+GDo+GDoOGDmCDhg5/hg6Phg6Dhg5zhg5Dhg5rhg5jhg6Eg4YOk4YOQ4YOY4YOa4YOU4YOR4YOY4YOT4YOQ4YOcLCDhg5vhg5Dhg5cg4YOo4YOd4YOg4YOY4YOhIOGDnuGDmOGDoOGDkOGDkyDhg5Phg5Ag4YOZ4YOd4YOc4YOk4YOY4YOT4YOU4YOc4YOq4YOY4YOQ4YOa4YOj4YOgIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDkOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybV9yZXBlYXQiIG1zZ2lkPSI0OTI2ODQyNDYwNjg4NjQ1MDU4Ij4i4YOo4YOU4YOb4YOT4YOS4YOd4YOb4YOo4YOYIOGDkOGDqeGDleGDlOGDnOGDlCDhg5Thg6Eg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOQIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWthL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1rYS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDljNzJhCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1rYS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIzNzAxODQ2MDE3MDQ5NTQwOTEwIj4i4YOS4YOQ4YOg4YOU4YOZ4YOQ4YOc4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IuGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmCDhg67hg5Dhg6Dhg5Xhg5Thg5bhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOu4YOU4YORIOGDqOGDlOGDpeGDm+GDnOGDmOGDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90ZXh0IiBtc2dpZD0iMzU1OTkwNDc0Njg1OTQwMDczMiI+IuGDqOGDlOGDlOGDruGDlOGDlyDhg5fhg6Xhg5Xhg5Thg5zhg5gg4YOu4YOQ4YOg4YOV4YOU4YOW4YOU4YOR4YOY4YOhIOGDkOGDnOGDkuGDkOGDoOGDmOGDqOGDmOGDoSDhg5Lhg5Dhg6Hhg5Dhg5bhg5jhg5Dhg6Dhg5Thg5Hhg5rhg5Dhg5MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiLhg67hg5Dhg6Dhg5Xhg5Thg5bhg5jhg6Eg4YOQ4YOc4YOS4YOQ4YOg4YOY4YOo4YOU4YOR4YOYIOGDm+GDneGDmOGDquGDkOGDleGDoSDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg6Eg4YOh4YOu4YOV4YOQ4YOT4YOQ4YOh4YOu4YOV4YOQIOGDoeGDmOGDoeGDouGDlOGDm+GDo+GDoOGDmCDhg5/hg6Phg6Dhg5zhg5Dhg5rhg5jhg6Eg4YOk4YOQ4YOY4YOa4YOU4YOR4YOY4YOT4YOQ4YOcLCDhg5vhg5Dhg5cg4YOo4YOd4YOg4YOY4YOhIOGDnuGDmOGDoOGDkOGDkyDhg5Phg5Ag4YOZ4YOd4YOc4YOk4YOY4YOT4YOU4YOc4YOq4YOY4YOQ4YOa4YOj4YOgIOGDmOGDnOGDpOGDneGDoOGDm+GDkOGDquGDmOGDkOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybV9yZXBlYXQiIG1zZ2lkPSI0OTI2ODQyNDYwNjg4NjQ1MDU4Ij4i4YOo4YOU4YOb4YOT4YOS4YOd4YOb4YOo4YOYIOGDkOGDqeGDleGDlOGDnOGDlCDhg5Thg6Eg4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOQIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmYjM0NWMKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIzNzAxODQ2MDE3MDQ5NTQwOTEwIj4i4Z6f4Z+C4Z6bIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IuGelOGetuGek+KAi+GeheGetuGelOGfi+KAi+GemeGegOKAi+GemuGelOGetuGemeGegOGetuGemuGejuGfjeKAi+GegOGfhuGeoOGeu+GenyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90ZXh0IiBtc2dpZD0iMzU1OTkwNDc0Njg1OTQwMDczMiI+IuGelOGfieGfh+KAiyDhnorhnr7hnpjhn5LhnpThnrjigIvhnoXhn4LhnoDigIvhnprhn4bhnpvhn4LhnoDigIvhnprhnpThnrbhnpnhnoDhnrbhnprhno7hn43igIvhnoDhn4bhnqDhnrvhnp/igIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiLhnprhnpThnrbhnpnhnoDhnrbhnprhno7hn43igIvhnoDhn4bhnqDhnrvhnp/igIvhnprhnr3hnpjhnpjhnrbhnpPigIvhnq/hnoDhnp/hnrbhnprigIvhnoDhn4bhno7hno/hn4vigIvhnqDhn4Hhno/hnrvigIvhnpXhn5Lhnp/hn4HhnoThn5figIvhnprhnpThnp/hn4vigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpIg4Z6a4Z694Z6Y4Z6Y4Z624Z6T4oCL4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6V4Z+S4Z6R4Z624Z6b4Z+L4Z6B4Z+S4Z6b4Z694Z6TIOGek+Get+GehOKAi+Ger+GegOGeh+Gek+GflCDhnoXhn4LhnoDhnprhn4bhnpvhn4LhnoDigIvhnprhnpThnrbhnpnhnoDhnrbhnprhno7hn43igIvhnoDhn4bhnqDhnrvhnp/igIvhnofhnrbigIvhnpjhnr3hnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrgg4Z6T4Z634Z6E4oCL4Z6Y4Z6T4Z674Z6f4Z+S4Z6f4oCL4Z6K4Z+C4Z6b4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6R4Z674Z6A4oCL4Z6F4Z634Z6P4Z+S4Z6P4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm1fcmVwZWF0IiBtc2dpZD0iNDkyNjg0MjQ2MDY4ODY0NTA1OCI+IuGelOGehOGfkuGeoOGetuGeieKAi+Gen+GetuGemuKAi+Gek+GfgeGfh+KAi+GeluGfgeGem+KAi+GegOGfkuGemuGfhOGemSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1rbS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMta20vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZiMzQ1YwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMta20vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMzcwMTg0NjAxNzA0OTU0MDkxMCI+IuGen+GfguGemyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90aXRsZSIgbXNnaWQ9IjIyOTM3MTE1NDY4OTI4NjM4OTgiPiLhnpThnrbhnpPigIvhnoXhnrbhnpThn4vigIvhnpnhnoDigIvhnprhnpThnrbhnpnhnoDhnrbhnprhno7hn43igIvhnoDhn4bhnqDhnrvhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGV4dCIgbXNnaWQ9IjM1NTk5MDQ3NDY4NTk0MDA3MzIiPiLhnpThn4nhn4figIsg4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6F4Z+C4Z6A4oCL4Z6a4Z+G4Z6b4Z+C4Z6A4oCL4Z6a4Z6U4Z624Z6Z4Z6A4Z624Z6a4Z6O4Z+N4oCL4Z6A4Z+G4Z6g4Z674Z6f4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm0iIG1zZ2lkPSI1MTMwNjk4NDY3Nzk1NjY5NzgwIj4i4Z6a4Z6U4Z624Z6Z4Z6A4Z624Z6a4Z6O4Z+N4oCL4Z6A4Z+G4Z6g4Z674Z6f4oCL4Z6a4Z694Z6Y4Z6Y4Z624Z6T4oCL4Z6v4Z6A4Z6f4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6g4Z+B4Z6P4Z674oCL4Z6V4Z+S4Z6f4Z+B4Z6E4Z+X4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6SIOGemuGeveGemOGemOGetuGek+KAi+GeluGfkOGej+GfjOGemOGetuGek+KAi+GeleGfkuGekeGetuGem+Gfi+GegeGfkuGem+GeveGekyDhnpPhnrfhnoTigIvhnq/hnoDhnofhnpPhn5Qg4Z6F4Z+C4Z6A4Z6a4Z+G4Z6b4Z+C4Z6A4oCL4Z6a4Z6U4Z624Z6Z4Z6A4Z624Z6a4Z6O4Z+N4oCL4Z6A4Z+G4Z6g4Z674Z6f4oCL4Z6H4Z624oCL4Z6Y4Z694Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64IOGek+Get+GehOKAi+GemOGek+Geu+Gen+GfkuGen+KAi+GeiuGfguGem+KAi+GeouGfkuGek+GegOKAi+GekeGeu+GegOKAi+GeheGet+Gej+GfkuGej+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtX3JlcGVhdCIgbXNnaWQ9IjQ5MjY4NDI0NjA2ODg2NDUwNTgiPiLhnpThnoThn5LhnqDhnrbhnonigIvhnp/hnrbhnprigIvhnpPhn4Hhn4figIvhnpbhn4HhnpvigIvhnoDhn5Lhnprhn4ThnpkiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtbG8tckxBL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIzN2Q0OAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtbG8tckxBL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICAKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjM3MDE4NDYwMTcwNDk1NDA5MTAiPiJTaGVsbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90aXRsZSIgbXNnaWQ9IjIyOTM3MTE1NDY4OTI4NjM4OTgiPiLguqXgurLguo3guofgurLgupnguojgurjgupTguprgurvguoHgup7gu4jguq3guofgupbgurfguoHgu4DguoHgurHguprguoHgurPgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGV4dCIgbXNnaWQ9IjM1NTk5MDQ3NDY4NTk0MDA3MzIiPiLgu4HgupXgurDgu4Dgup7gurfgu4jguq3guqrgurvgu4jguofguoHgurLgupnguqXgurLguo3guofgurLgupngupvgurHgupnguqvgurLguoLguq3guofgupfgu4jgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiLguoHgurLgupnguqXgurLguo3guofgurLgupnguoLgu43gu4ngupzgurTgupTgup7gurLgupTgupvgurDguoHguq3guprguqHgurUg4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqI4Lqy4LqB4LuE4Lqf4Lql4LuM4Lqa4Lqx4LqZ4LqX4Lq24LqB4LqC4Lqt4LqH4Lql4Lqw4Lqa4Lq74Lqa4Lqr4Lq84Lqy4LqN4LuE4Lqf4Lql4LuMLCDguq7guqfguqHgupfgurHguofguoLgu43gu4nguqHgurngupnguqrgu4jguqfgupngu4LgupXgupngurMuIOC6l+C7iOC6suC6meC6leC7ieC6reC6h+C7geC6muC7iOC6h+C6m+C6seC6meC6peC6suC6jeC6h+C6suC6meC6guC7jeC7ieC6nOC6tOC6lOC6nuC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryDgu4HguqXgurDguoTgurvgupngupfgurXgu4jgupfgu4jgurLgupngu4Dguorgurfgu4jguq3gupbgurfgu4TgupTgu4ngu4Dgupfgurvgu4jgurLgupngurHgu4ngupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm1fcmVwZWF0IiBtc2dpZD0iNDkyNjg0MjQ2MDY4ODY0NTA1OCI+IuC6quC6sOC7geC6lOC6h+C6guC7jeC7ieC6hOC6p+C6suC6oeC6meC6teC7ieC6reC6teC6geC7g+C6meC7gOC6l+C6t+C7iOC6reC6leC7jeC7iOC7hOC6myI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1sby9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtbG8vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIzN2Q0OAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtbG8vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMzcwMTg0NjAxNzA0OTU0MDkxMCI+IlNoZWxsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IuC6peC6suC6jeC6h+C6suC6meC6iOC6uOC6lOC6muC6u+C6geC6nuC7iOC6reC6h+C6luC6t+C6geC7gOC6geC6seC6muC6geC6s+C7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90ZXh0IiBtc2dpZD0iMzU1OTkwNDc0Njg1OTQwMDczMiI+IuC7geC6leC6sOC7gOC6nuC6t+C7iOC6reC6quC6u+C7iOC6h+C6geC6suC6meC6peC6suC6jeC6h+C6suC6meC6m+C6seC6meC6q+C6suC6guC6reC6h+C6l+C7iOC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtIiBtc2dpZD0iNTEzMDY5ODQ2Nzc5NTY2OTc4MCI+IuC6geC6suC6meC6peC6suC6jeC6h+C6suC6meC6guC7jeC7ieC6nOC6tOC6lOC6nuC6suC6lOC6m+C6sOC6geC6reC6muC6oeC6tSDguoLgu43gu4nguqHgurngupnguojgurLguoHgu4Tgup/guqXgu4zguprgurHgupngupfgurbguoHguoLguq3guofguqXgurDguprgurvguprguqvgurzgurLguo3gu4Tgup/guqXgu4wsIOC6ruC6p+C6oeC6l+C6seC6h+C6guC7jeC7ieC6oeC6ueC6meC6quC7iOC6p+C6meC7guC6leC6meC6sy4g4LqX4LuI4Lqy4LqZ4LqV4LuJ4Lqt4LqH4LuB4Lqa4LuI4LqH4Lqb4Lqx4LqZ4Lql4Lqy4LqN4LqH4Lqy4LqZ4LqC4LuN4LuJ4Lqc4Lq04LqU4Lqe4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIOC7geC6peC6sOC6hOC6u+C6meC6l+C6teC7iOC6l+C7iOC6suC6meC7gOC6iuC6t+C7iOC6reC6luC6t+C7hOC6lOC7ieC7gOC6l+C6u+C7iOC6suC6meC6seC7ieC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybV9yZXBlYXQiIG1zZ2lkPSI0OTI2ODQyNDYwNjg4NjQ1MDU4Ij4i4Lqq4Lqw4LuB4LqU4LqH4LqC4LuN4LuJ4LqE4Lqn4Lqy4Lqh4LqZ4Lq14LuJ4Lqt4Lq14LqB4LuD4LqZ4LuA4LqX4Lq34LuI4Lqt4LqV4LuN4LuI4LuE4LqbIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtbW4tck1OL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3NDI5OGQKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIzNzAxODQ2MDE3MDQ5NTQwOTEwIj4i0KjQtdC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+ItCQ0LvQtNCw0LDQvdGLINC80Y3QtNGN0Y3Qu9GN0Lsg0YXSr9C70Y3RjdC9INCw0LLQsNCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RleHQiIG1zZ2lkPSIzNTU5OTA0NzQ2ODU5NDAwNzMyIj4i0KLQsCDQsNC70LTQsNCw0L3RiyDQvNGN0LTRjdCz0LTQu9C40LnQsyDRhdGD0LLQsNCw0LvRhtCw0YUg0LHQvtC7INGF0q/RgNC90Y0g0q/SryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtIiBtc2dpZD0iNTEzMDY5ODQ2Nzc5NTY2OTc4MCI+ItCQ0LvQtNCw0LDQvdGLINGA0LXQv9C+0YDRgiDQvdGMINGF0YPQstC40LnQvSDQsdC+0LvQvtC9INC90YPRg9GGINC80Y3QtNGN0Y3Qu9GN0Lsg0LfRjdGA0LPQuNC50LMg0LDQs9GD0YPQu9GB0LDQvSDRgdC40YHRgtC10LzQuNC50L0g0YLTqdGA06nQuyDQsdKv0YDQuNC50L0g0LvQvtCzINGE0LDQudC70YvQvSDQtNCw0YLQsNCzINCw0LPRg9GD0LvQvdCwLiDQkNC70LTQsNCw0L3RiyDRgNC10L/QvtGA0YLRi9CzINC306nQstGF06nQvSDQuNGC0LPRjdC70YLRjdC5INCw0L/QvyDQsdC+0LvQvtC9INGF0q/QvNKv0q/RgdGCINGF0YPQstCw0LDQu9GG0LDQvdCwINGD0YMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm1fcmVwZWF0IiBtc2dpZD0iNDkyNjg0MjQ2MDY4ODY0NTA1OCI+ItCt0L3RjSDQvNC10YHRgdC10LbQuNC50LMg0LTQsNGA0LDQsNCz0LjQudC9INGD0LTQsNCwINGF0LDRgNGD0YPQu9Cw0YUiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtbW4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3NDI5OGQKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICAKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjM3MDE4NDYwMTcwNDk1NDA5MTAiPiLQqNC10LsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGl0bGUiIG1zZ2lkPSIyMjkzNzExNTQ2ODkyODYzODk4Ij4i0JDQu9C00LDQsNC90Ysg0LzRjdC00Y3RjdC70Y3QuyDRhdKv0LvRjdGN0L0g0LDQstCw0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGV4dCIgbXNnaWQ9IjM1NTk5MDQ3NDY4NTk0MDA3MzIiPiLQotCwINCw0LvQtNCw0LDQvdGLINC80Y3QtNGN0LPQtNC70LjQudCzINGF0YPQstCw0LDQu9GG0LDRhSDQsdC+0Lsg0YXSr9GA0L3RjSDSr9KvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm0iIG1zZ2lkPSI1MTMwNjk4NDY3Nzk1NjY5NzgwIj4i0JDQu9C00LDQsNC90Ysg0YDQtdC/0L7RgNGCINC90Ywg0YXRg9Cy0LjQudC9INCx0L7Qu9C+0L0g0L3Rg9GD0YYg0LzRjdC00Y3RjdC70Y3QuyDQt9GN0YDQs9C40LnQsyDQsNCz0YPRg9C70YHQsNC9INGB0LjRgdGC0LXQvNC40LnQvSDRgtOp0YDTqdC7INCx0q/RgNC40LnQvSDQu9C+0LMg0YTQsNC50LvRi9C9INC00LDRgtCw0LMg0LDQs9GD0YPQu9C90LAuINCQ0LvQtNCw0LDQvdGLINGA0LXQv9C+0YDRgtGL0LMg0LfTqdCy0YXTqdC9INC40YLQs9GN0LvRgtGN0Lkg0LDQv9C/INCx0L7Qu9C+0L0g0YXSr9C80q/Sr9GB0YIg0YXRg9Cy0LDQsNC70YbQsNC90LAg0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybV9yZXBlYXQiIG1zZ2lkPSI0OTI2ODQyNDYwNjg4NjQ1MDU4Ij4i0K3QvdGNINC80LXRgdGB0LXQttC40LnQsyDQtNCw0YDQsNCw0LPQuNC50L0g0YPQtNCw0LAg0YXQsNGA0YPRg9C70LDRhSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1tcy1yTVkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLW1zLXJNWS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDFlNGEyCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1tcy1yTVkvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgIAorICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iMzcwMTg0NjAxNzA0OTU0MDkxMCI+IlNoZWxsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IkxhcG9yYW4gcGVwaWphdCB0ZWxhaCBkaXRhbmdrYXAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfZmluaXNoZWRfdGV4dCIgbXNnaWQ9IjM1NTk5MDQ3NDY4NTk0MDA3MzIiPiJTZW50dWggdW50dWsgYmVya29uZ3NpIGxhcG9yYW4gcGVwaWphdCBhbmRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm0iIG1zZ2lkPSI1MTMwNjk4NDY3Nzk1NjY5NzgwIj4iTGFwb3JhbiBwZXBpamF0IG1lbmdhbmR1bmdpIGRhdGEgZGFyaSBwZWxiYWdhaSBmYWlsIGxvZyBzaXN0ZW0sIHRlcm1hc3VrIG1ha2x1bWF0IHBlcmliYWRpIGRhbiBzdWxpdC4gS29uZ3Npa2FuIGxhcG9yYW4gcGVwaWphdCBoYW55YSBkZW5nYW4gYXBsIGRhbiBvcmFuZyB5YW5nIGFuZGEgcGVyY2F5YWkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2NvbmZpcm1fcmVwZWF0IiBtc2dpZD0iNDkyNjg0MjQ2MDY4ODY0NTA1OCI+IlR1bmp1a2thbiBtZXNlaiBpbmkgcGFkYSBtYXNhIGFrYW4gZGF0YW5nIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLW5lLXJOUC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtbmUtck5QL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMDk0MzMKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLW5lLXJOUC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIzNzAxODQ2MDE3MDQ5NTQwOTEwIj4i4KS44KWH4KSyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IuCkrOCklyDgpKrgpY3gpLDgpKTgpL/gpLXgpYfgpKbgpKgg4KS44KSu4KS+4KSk4KS/4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RleHQiIG1zZ2lkPSIzNTU5OTA0NzQ2ODU5NDAwNzMyIj4i4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkrOCklyDgpLDgpL/gpKrgpYvgpLDgpY3gpJ8g4KS44KS+4KSd4KWH4KSm4KS+4KSw4KWAIOCkl+CksOCljeCkqCDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiLgpKzgpJcg4KSw4KS/4KSq4KWL4KSw4KWN4KSf4KS54KSw4KWC4KSu4KS+IOCkquCljeCksOCko+CkvuCksuClgOCkleCkviDgpLXgpL/gpK3gpL/gpKjgpY3gpKgg4KSy4KSXIOCkq+CkvuCkh+CksuCkueCksOClguCkrOCkvuCknyDgpLXgpY3gpK/gpJXgpY3gpKTgpL/gpJfgpKQg4KSk4KSl4KS+IOCkqOClgOCknOCkvyDgpLjgpYLgpJrgpKjgpL7gpLjgpLngpL/gpKTgpJXgpYsg4KSh4KWH4KSf4KS+IOCksOCkueCkqOCljeCkm+ClpCAg4KSs4KSXIOCksOCkv+CkquCli+CksOCljeCkn+CkueCksOClgiDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KSwIOCkpOCkquCkvuCkiOCkgeCksuClhyDgpLXgpL/gpLbgpY3gpLXgpL7gpLgg4KSX4KSw4KWH4KSV4KS+IOCkteCljeCkr+CkleCljeCkpOCkv+CkueCksOClguCkuOCkgeCklyDgpK7gpL7gpKTgpY3gpLAg4KS44KS+4KSd4KWH4KSm4KS+4KSw4KWAIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtX3JlcGVhdCIgbXNnaWQ9IjQ5MjY4NDI0NjA2ODg2NDUwNTgiPiLgpK/gpYsg4KS44KSo4KWN4KSm4KWH4KS2IOCkheCksOCljeCkleCliyDgpKrgpJ/gpJUg4KSm4KWH4KSW4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLW5lL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1uZS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjA5NDMzCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1uZS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIzNzAxODQ2MDE3MDQ5NTQwOTEwIj4i4KS44KWH4KSyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IuCkrOCklyDgpKrgpY3gpLDgpKTgpL/gpLXgpYfgpKbgpKgg4KS44KSu4KS+4KSk4KS/4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RleHQiIG1zZ2lkPSIzNTU5OTA0NzQ2ODU5NDAwNzMyIj4i4KSk4KSq4KS+4KSI4KSC4KSV4KWLIOCkrOCklyDgpLDgpL/gpKrgpYvgpLDgpY3gpJ8g4KS44KS+4KSd4KWH4KSm4KS+4KSw4KWAIOCkl+CksOCljeCkqCDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJidWdyZXBvcnRfY29uZmlybSIgbXNnaWQ9IjUxMzA2OTg0Njc3OTU2Njk3ODAiPiLgpKzgpJcg4KSw4KS/4KSq4KWL4KSw4KWN4KSf4KS54KSw4KWC4KSu4KS+IOCkquCljeCksOCko+CkvuCksuClgOCkleCkviDgpLXgpL/gpK3gpL/gpKjgpY3gpKgg4KSy4KSXIOCkq+CkvuCkh+CksuCkueCksOClguCkrOCkvuCknyDgpLXgpY3gpK/gpJXgpY3gpKTgpL/gpJfgpKQg4KSk4KSl4KS+IOCkqOClgOCknOCkvyDgpLjgpYLgpJrgpKjgpL7gpLjgpLngpL/gpKTgpJXgpYsg4KSh4KWH4KSf4KS+IOCksOCkueCkqOCljeCkm+ClpCAg4KSs4KSXIOCksOCkv+CkquCli+CksOCljeCkn+CkueCksOClgiDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KSwIOCkpOCkquCkvuCkiOCkgeCksuClhyDgpLXgpL/gpLbgpY3gpLXgpL7gpLgg4KSX4KSw4KWH4KSV4KS+IOCkteCljeCkr+CkleCljeCkpOCkv+CkueCksOClguCkuOCkgeCklyDgpK7gpL7gpKTgpY3gpLAg4KS44KS+4KSd4KWH4KSm4KS+4KSw4KWAIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtX3JlcGVhdCIgbXNnaWQ9IjQ5MjY4NDI0NjA2ODg2NDUwNTgiPiLgpK/gpYsg4KS44KSo4KWN4KSm4KWH4KS2IOCkheCksOCljeCkleCliyDgpKrgpJ/gpJUg4KSm4KWH4KSW4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLXNpLXJMSy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtc2ktckxLL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ODA3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLXNpLXJMSy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIzNzAxODQ2MDE3MDQ5NTQwOTEwIj4i4LeC4LeZ4La94LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IuC2r+C3neC3giDgt4Dgt4/gtrvgt4rgtq3gt4/gt4Ag4La94La24LeP4Lac4Lax4LeK4Lax4LePIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90ZXh0IiBtc2dpZD0iMzU1OTkwNDc0Njg1OTQwMDczMiI+IuC2lOC2tuC2nOC3miDgtq/gt53gt4Ig4LeA4LeP4La74LeK4Lat4LeP4LeAIOC2tuC3meC2r+C3jyDgtpzgt5DgtrHgt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtIiBtc2dpZD0iNTEzMDY5ODQ2Nzc5NTY2OTc4MCI+IuC2tOC3lOC2r+C3iuC2nOC2veC3kuC2miDgt4Pgt4Qg4La04Lee4Lav4LeK4Lac4La94LeS4LaaIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtofgtq3gt5Tgt4Xgtq3gt4rgt4Ag4La04Lav4LeK4Law4Lat4LeS4La64LeaIOC3gOC3kuC3gOC3kuC2sCDgtr3gt5zgtpzgt4og4Lac4Lec4Lax4LeUIOC3gOC2vSDgtq/gtq3gt4rgtq0g4Lav4Led4LeCIOC3gOC3j+C2u+C3iuC2reC3j+C3gOC3miDgtoXgtqngtoLgtpzgt5Qg4LeA4LeaLiDgtpTgtrbgtqcg4LeA4LeS4LeB4LeK4LeA4LeP4LeD4LeA4Lax4LeK4LatIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Pgt4Qg4La04LeU4Lav4LeK4Lac4La94La64LeS4Lax4LeKIOC3g+C2uOC2nyDgtrTgtrjgtqvgtprgt4og4Lav4Led4LeCIOC3gOC3j+C2u+C3iuC2reC3jyDgtrbgt5ngtq/gt48g4Lac4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtX3JlcGVhdCIgbXNnaWQ9IjQ5MjY4NDI0NjA2ODg2NDUwNTgiPiLgtorgt4Xgtp8g4LeA4LeZ4La94LeP4LeA4LeaIOC2uOC3meC2uCDgtrTgtqvgt5Lgt4Dgt5Lgtqngtrog4La04LeZ4Lax4LeK4LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLXNpL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1zaS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzgwNzg5Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU2hlbGwvcmVzL3ZhbHVlcy1zaS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIzNzAxODQ2MDE3MDQ5NTQwOTEwIj4i4LeC4LeZ4La94LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IuC2r+C3neC3giDgt4Dgt4/gtrvgt4rgtq3gt4/gt4Ag4La94La24LeP4Lac4Lax4LeK4Lax4LePIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90ZXh0IiBtc2dpZD0iMzU1OTkwNDc0Njg1OTQwMDczMiI+IuC2lOC2tuC2nOC3miDgtq/gt53gt4Ig4LeA4LeP4La74LeK4Lat4LeP4LeAIOC2tuC3meC2r+C3jyDgtpzgt5DgtrHgt5Pgtrjgtqcg4LeD4LeK4La04La74LeK4LeBIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtIiBtc2dpZD0iNTEzMDY5ODQ2Nzc5NTY2OTc4MCI+IuC2tOC3lOC2r+C3iuC2nOC2veC3kuC2miDgt4Pgt4Qg4La04Lee4Lav4LeK4Lac4La94LeS4LaaIOC2reC3nOC2u+C2reC3lOC2u+C3lCDgtofgtq3gt5Tgt4Xgtq3gt4rgt4Ag4La04Lav4LeK4Law4Lat4LeS4La64LeaIOC3gOC3kuC3gOC3kuC2sCDgtr3gt5zgtpzgt4og4Lac4Lec4Lax4LeUIOC3gOC2vSDgtq/gtq3gt4rgtq0g4Lav4Led4LeCIOC3gOC3j+C2u+C3iuC2reC3j+C3gOC3miDgtoXgtqngtoLgtpzgt5Qg4LeA4LeaLiDgtpTgtrbgtqcg4LeA4LeS4LeB4LeK4LeA4LeP4LeD4LeA4Lax4LeK4LatIOC2uuC3meC2r+C3lOC2uOC3iiDgt4Pgt4Qg4La04LeU4Lav4LeK4Lac4La94La64LeS4Lax4LeKIOC3g+C2uOC2nyDgtrTgtrjgtqvgtprgt4og4Lav4Led4LeCIOC3gOC3j+C2u+C3iuC2reC3jyDgtrbgt5ngtq/gt48g4Lac4Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtX3JlcGVhdCIgbXNnaWQ9IjQ5MjY4NDI0NjA2ODg2NDUwNTgiPiLgtorgt4Xgtp8g4LeA4LeZ4La94LeP4LeA4LeaIOC2uOC3meC2uCDgtrTgtqvgt5Lgt4Dgt5Lgtqngtrog4La04LeZ4Lax4LeK4LeA4Lax4LeK4LaxIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1NoZWxsL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1ZjE5MzUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TaGVsbC9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDI0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgIAorICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSIzNzAxODQ2MDE3MDQ5NTQwOTEwIj4i5ZG95Luk5LuL6Z2iIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYnVncmVwb3J0X2ZpbmlzaGVkX3RpdGxlIiBtc2dpZD0iMjI5MzcxMTU0Njg5Mjg2Mzg5OCI+IuW3suaTt+WPlumMr+iqpOWgseWRiiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9maW5pc2hlZF90ZXh0IiBtc2dpZD0iMzU1OTkwNDc0Njg1OTQwMDczMiI+Iui8leinuOWNs+WPr+WIhuS6q+aCqOeahOmMr+iqpOWgseWRiiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtIiBtc2dpZD0iNTEzMDY5ODQ2Nzc5NTY2OTc4MCI+IumMr+iqpOWgseWRiuS4reacieS+huiHquezu+e1seWQhOWAi+iomOmMhOaqlOahiOeahOizh+aWme+8jOWMheaLrOWAi+S6uuWSjOengeS6uuizh+aWmeOAguiri+WPquiIh+aCqOS/oeS7u+eahOaHieeUqOeoi+W8j+WSjOeUqOaItuWIhuS6q+mMr+iqpOWgseWRiuOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJ1Z3JlcG9ydF9jb25maXJtX3JlcGVhdCIgbXNnaWQ9IjQ5MjY4NDI0NjA2ODg2NDUwNTgiPiLkuIvmrKHlho3poa/npLrpgJnliYfoqIrmga8iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Byb2d1YXJkLmZsYWdzIGIvcGFja2FnZXMvU3lzdGVtVUkvcHJvZ3VhcmQuZmxhZ3MKaW5kZXggYWI0NWQ5OS4uMWZmOTNkMiAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcHJvZ3VhcmQuZmxhZ3MKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcHJvZ3VhcmQuZmxhZ3MKQEAgLTcsNCArNyw1IEBACiAgIHB1YmxpYyB2b2lkIHNldEdsb3dTY2FsZShmbG9hdCk7CiB9CiAKKy1rZWVwIGNsYXNzIGNvbS5hbmRyb2lkLnN5c3RlbXVpLnN0YXR1c2Jhci5waG9uZS5QaG9uZVN0YXR1c0JhcgogLWtlZXAgY2xhc3MgY29tLmFuZHJvaWQuc3lzdGVtdWkuc3RhdHVzYmFyLnR2LlR2U3RhdHVzQmFyCmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWFmL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1hZi9zdHJpbmdzLnhtbAppbmRleCA5ZGRmNDJhLi5lZDliYzhmIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWFmL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtYWYvc3RyaW5ncy54bWwKQEAgLTYxLDggKzYxLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4iTGFhdCBhbHR5ZCB0b2UgdmFuIGhpZXJkaWUgcmVrZW5hYXIgYWYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiJab2VtIG9tIHNrZXJtIHRlIHZ1bCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiJTdHJlayBvbSBza2VybSB0ZSB2dWwiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJWZXJzb2VuYmFhcmhlaWRzem9lbSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiJBcyBcJ24gcHJvZ3JhbSB2aXIgXCduIGtsZWluZXIgc2tlcm0gb250d2VycCBpcywgc2FsIFwnbiB6b2Vta29udHJvbGUgbmFieSBkaWUgaG9ybG9zaWUgdmVyc2t5biI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiJTdG9vciB0YW5zIHNrZXJta2lla2llLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4iU3Rvb3IgdGFucyBza2VybWtpZWtpZS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4iU2tlcm1raWVraWUgd29yZCB0YW5zIGdlc3Rvb3IuIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IlR1aXMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJLaWVzbHlzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iT25sYW5nc2UgcHJvZ3JhbW1lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4iRGV1cnNvZWsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4iS2FtZXJhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiJLbm9wcGllIHZpciB3aXNzZWwgdmFuIGludm9lcm1ldG9kZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4iVmVyc29lbmJhYXJoZWlkLXpvZW0gc2Uga25vcHBpZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+IlpvZW0ga2xlaW5lciBuYSBncm90ZXIgc2tlcm0uIjwvc3RyaW5nPgpAQCAtMTUzLDYgKzE1Myw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4iQmF0dGVyeSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IlZsaWVndHVpZ21vZHVzIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IkxpZ2dpbmcgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiJXZWtrZXIgZ2VzdGVsIHZpciA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IjJHLTNHLWRhdGEgZ2VkZWFrdGl2ZWVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iNEcgZGF0YSBnZWRlYWt0aXZlZXIiPC9zdHJpbmc+CkBAIC0xNjQsMTIgKzE2NSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkgZ2Vrb3BwZWwiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IlNvZWsgdmlyIEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJMaWdnaW5nIGRldXIgR1BTIGdlc3RlbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IkxpZ2dpbmd2ZXJzb2VrZSBha3RpZWYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiJWZXJ3eWRlciBhbGxlIGtlbm5pc2dld2luZ3MuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IlByb2dyYW1pbmxpZ3RpbmciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IkRpZSBza2VybSBzYWwgb3V0b21hdGllcyBkcmFhaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IlNrZXJtIGlzIGluIGxhbmRza2Fwc29yacOrbnRhc2llIGdlc2x1aXQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IlNrZXJtIGlzIGluIHBvcnRyZXRvcmnDq250YXNpZSBnZXNsdWl0LiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiJOYWdlcmVna2FzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IlNsdWltZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJFdGhlcm5ldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4iVmxpZWd0dWlnbW9kdXMiPC9zdHJpbmc+CkBAIC0xODIsMTAgKzE4NCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+Ik91dG9yb3RlZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4iUm90YXNpZSBnZXNsdWl0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+Ikludm9lcm1ldG9kZSI8L3N0cmluZz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCAoNTAxMTMyNzA0ODc0ODc2MjI1NykgLS0+Ci0gICAgPHNraXAgLz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwgKDc0NjQ1NDQwODY1MDczMzE0NTkpIC0tPgotICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCIgbXNnaWQ9IjUwMTEzMjcwNDg3NDg3NjIyNTciPiJMaWdnaW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsIiBtc2dpZD0iNzQ2NDU0NDA4NjUwNzMzMTQ1OSI+IkxpZ2dpbmcgYWYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4iTWVkaWF0b2VzdGVsIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9sYWJlbCIgbXNnaWQ9Ijc3MjU2NzEzMzU1NTA2OTU1ODkiPiJSU1NJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9lbWVyZ2VuY3lfb25seSIgbXNnaWQ9IjI3MTM3NzQwNDE2NzI4ODY3NTAiPiJOZXQgbm9vZG9wcm9lcGUiPC9zdHJpbmc+CkBAIC0yMDAsOCArMjAwLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IkRyYWFkbG9zZSBhYW5zaWciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiJIZWxkZXJoZWlkIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+Ik9VVE8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4iS2VubmlzZ2V3aW5ncyB2ZXJza3luIGhpZXIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiJWZXJrcnkgZW5pZ2UgdHlkIHRvZWdhbmcgdG90IGh1bGxlIGRldXIgYWYgdGUgc2xlZXAuXG5TbGVlcCB3ZWVyIGFmIHZpciBzdGVsc2Vsa29udHJvbGVzLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+IlNsZWVwIHJhbmQgdmFuIHNrZXJtIG9tIGJhbGsgdGUgd3lzIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiJTbGVlcCB2YW4gcmFuZCB2YW4gc2tlcm0gYWYgb20gc3RlbHNlbGJhbGsgdGUgd3lzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+IktsZXVyLW9ta2VyaW5nbW9kdXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiJWZXJiZXRlcmRlIGtvbnRyYXNtb2R1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4iS2xldXJyZWdzdGVsbGluZ21vZHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiJOZXR3ZXJrIHdvcmRcbmRhbGsgZ2Vtb25pdG9yIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWFtL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1hbS9zdHJpbmdzLnhtbAppbmRleCAxZDgxZWE3Li43MDU0ZDE1IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWFtL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtYW0vc3RyaW5ncy54bWwKQEAgLTYxLDggKzYxLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4i4YiB4YiN4YyK4YucIOGKqOGLmuGIhSDhiq7hiJ3hjZLhi43hibDhiK0g4Y2N4YmA4Yu1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4i4Yib4YurIOGKpeGKleGLsuGInuGIiyDhiqDhjInhiIsiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4i4Yib4YurIOGIiOGImOGImeGIiOGJtSDhiLPhiaUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiLhi6jhibDhirPhiovhip3hipDhibUg4Yqg4YyJ4YiLIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+IuGJteGMjeGJoOGIqyDhiIjhibXhipXhiL0g4Yib4YurIOGIsuGKkOGLsOGNjeGNoyDhi6jhiqDhjInhiIsg4YiY4YmG4YiY4Yyj4Yyg4Yiq4YurIOGJoOGIsOGLk+GJtSDhiaDhiqnhiI0g4Yml4YmFIOGLreGIi+GIjeGNoiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiLhiYXhjL3hiaDhibPhi4og4YyI4Yy9IOGKpeGLreGJsyDhiaDhiJvhiLXhiYDhiJjhjKUg4YiL4YutLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4i4YmF4Yy94Ymg4Ymz4YuKIOGMiOGMvSDhiqXhi63hibMg4Ymg4Yib4Yi14YmA4YiY4YylIOGIi+GLrS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i4YmF4Yy94Ymg4Ymz4YuKIOGMiOGMvSDhiqXhi63hibMg4Yql4Yuo4Ymw4YmA4YiY4YygIOGKkOGLjTo6Ijwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IuGImOGKkOGIuyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+IuGIneGKk+GIjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IuGLqOGJheGIreGJpSDhjIrhi5wgIOGImOGJsOGMjeGJoOGIquGLq+GLjuGJvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+IuGNiOGIjeGMjSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiLhiqvhiJzhiKsiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IuGLqOGMjeGJpOGJtSDhiLXhiI3hibUg4Yqg4Yud4Yir4YitIOGJgOGLreGIrSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiLhi6jhibDhirPhiovhip3hiqDhjInhiIsg4Yqg4Yud4Yir4Yit4Y2iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiLhiqDhipDhiLXhibDhipvhi43hipUg4Yib4YurIOGLiOGLsCDhibXhiI3hiYUg4Yqg4YyJ4YiL4Y2iIjwvc3RyaW5nPgpAQCAtMTUzLDYgKzE1Myw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4i4Ymj4Ym14YiqIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+4Y2iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLhi6jhiqDhi43hiK7hjZXhiIvhipUg4YiB4YqQ4YmzIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+4Y2iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4i4Yml4YiJ4Ymx4YudIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+4Y2iIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiLhiqDhiqvhiaPhiaIgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz7hjaIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IuGIm+GKleGJguGLqyDhiIg8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+IOGJsOGLi+GJheGIr+GIjeGNoiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IjJHLTNHIOGLjeGIguGJpSDhiabhi53hipfhiI0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiI0RyDhi43hiILhiaUg4Ymm4Yud4YqX4YiNIjwvc3RyaW5nPgpAQCAtMTY0LDEyICsxNjUsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpIOGJsOGLq+GLreGLn+GIjSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4i4YiIR1BTIOGJoOGImOGNiOGIiOGMjSDhiIvhi60iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4i4YmgIEdQUyDhi6jhibDhi5jhjIvhjIAg4Yil4Y2N4YirIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4i4Yuo4Yqg4Yqr4Ymj4YmiIOGMpeGLq+GJhOGLjuGJvSDhipDhiYXhibDhi4vhiI0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiLhiIHhiInhipXhiJ0g4Yib4Yiz4YuI4YmC4Yur4YuO4Ym9IOGKoOGMveGLsyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiLhi6jhiJjhibDhjI3hiaDhiKrhi6sg4YiY4Yio4YyDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiLhiJvhi6sg4YyI4Yy9IOGJoOGIq+GItSDhiLDhiK0g4Yut4Yue4Yir4YiN4Y2iIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiLhiJvhi6sg4YyI4Yy9IOGJoOGLiOGIreGLtSDhjIjhjYUg4Yqg4YmA4Yib4YiY4YylIOGJsOGJhuGIjeGNj+GIjeGNoiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLhiJvhi6sg4YyI4Yy9IOGJoOGJgeGInSDhjIjhjYUg4Yqg4YmA4Yib4YiY4YylIOGJsOGJhuGIjeGNj+GIjeGNoiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiLhi6jhiJvhi4jhiKvhiKjhjIMg4Yid4YyN4Ymm4Ym9IOGImOGLq+GLoyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiLhi6jhiYDhipUg4YiF4YiN4YidIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4i4Yqk4Ymw4Yit4YqU4Ym1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLhi6jhiqDhi43hiK7hjZXhiIvhipUg4YiB4YqQ4YmzIjwvc3RyaW5nPgpAQCAtMTk4LDggKzIwMCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiLhjIjhiJjhi7Ug4Yqg4YiN4YmjIOGIm+GIs+GLqyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IuGJpeGIqeGIheGKkOGJtSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiLhiKvhiLUt4Yiw4YitIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RpdGxlIiBtc2dpZD0iMTE5OTIzNzc0NDA4NjQ2OTIxNyI+IuGIm+GIs+GLiOGJguGLq+GLjuGJvSDhiqXhi5rhiIUg4YiL4YutIOGLreGJs+GLq+GIiSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+IuGLiOGLsCDhibPhib0g4Ymg4Yib4YqV4Yi44Yir4Ymw4Ym1IOGJoOGIm+GKleGKm+GLjeGInSDhjIrhi5wg4Yut4Yu14Yio4Yix4Ymj4Ym44YuN4Y2iXG5Td2lwZSDhi6jhiLXhiK3hi5PhibUg4YiY4YmG4Yyj4Yyg4Yiq4Yur4YuO4Ym94YqVIOGIiOGIm+GIneGMo+GJtSDhiqXhipXhi7DhjIjhipMg4YuI4YuwIOGJs+GJvSDhi6vhipXhiLjhiKvhibXhibHhjaIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiLhiqDhiJ7hiIzhi43hipUg4YiI4Yib4Yiz4Yuo4Ym1IOGLqOGIm+GLqyDhjIjhjLnhipUg4Yyg4Yit4YudIOGIi+GLrSDhi6vhipXhiLjhiKvhibXhibEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IuGKoOGInuGIjOGLjeGKlSDhiIjhiJvhiLPhi6jhibUg4Yqo4Yib4YurIOGMiOGMuSDhjKDhiK3hi50g4YyA4Yid4Yio4YuNIOGLq+GKleGIuOGIq+GJteGJsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiLhi6jhibDhiYPhiKvhipIg4YmA4YiI4YidIOGIgeGKkOGJsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+IuGLqOGJsOGIu+GIu+GIiCDhipXhjYXhjYXhiK0g4YiB4YqQ4YmzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiLhi6jhiYDhiIjhiJ0g4Yql4Yit4Yib4Ym1IOGIgeGKkOGJsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4i4Yqg4YuN4Ymz4YioIOGImOGIqOGJpVxu4Yqt4Ym14Ym14YiNIOGIiuGLsOGIqOGMjeGJoOGJtSDhi63hib3hiIvhiI0iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtYXIvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWFyL3N0cmluZ3MueG1sCmluZGV4IGMzMWQ2ZDkuLjcwNTg2ZGUgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtYXIvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1hci9zdHJpbmdzLnhtbApAQCAtMjcsMTUgKzI3LDE1IEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfZGlzbWlzc19yZWNlbnRzIiBtc2dpZD0iNDU3NjA3NjA3NTIyNjU0MDEwNSI+Itil2LLYp9mE2Kkg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYrdiv2YrYq9ipIjwvc3RyaW5nPgogICA8cGx1cmFscyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfcmVjZW50X2FwcHMiPgogICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODU0MTc2MDgzODY1ODQ1NTQxIj4i2KrYt9io2YrZgiDYrdiv2YrYqyDZiNin2K3YryI8L2l0ZW0+Ci0gICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTA0MDc4NDM1OTc5NDg5MDc0NCI+IiVkINmF2YYg2KfZhNiq2LfYqNmK2YLYp9iqINin2YTYrdiv2YrYq9ipIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMDQwNzg0MzU5Nzk0ODkwNzQ0Ij4i4oCPJWQg2YXZhiDYp9mE2KrYt9io2YrZgtin2Kog2KfZhNit2K/Zitir2KkiPC9pdGVtPgogICA8L3BsdXJhbHM+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX25vdGlmaWNhdGlvbnNfdGl0bGUiIG1zZ2lkPSI0NzU1MjYxMTY3MTkzODMzMjEzIj4i2YTZitizINmH2YbYp9mDINij2Yog2KrZhtio2YrZh9in2KoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX25vdGlmaWNhdGlvbnNfdGl0bGUiIG1zZ2lkPSI0NzU1MjYxMTY3MTkzODMzMjEzIj4i2YTZitizINmH2YbYp9mDINij2Yog2KfYtNi52KfYsdin2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX29uZ29pbmdfZXZlbnRzX3RpdGxlIiBtc2dpZD0iMTY4MjUwNDUxMzMxNjg3OTIwMiI+ItmF2LPYqtmF2LEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2xhdGVzdF9ldmVudHNfdGl0bGUiIG1zZ2lkPSI2NTk0NzY3NDM4NTc3NTkzMTcyIj4i2KfZhNiq2YbYqNmK2YfYp9iqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9sYXRlc3RfZXZlbnRzX3RpdGxlIiBtc2dpZD0iNjU5NDc2NzQzODU3NzU5MzE3MiI+Itin2YTYpdi02LnYp9ix2KfYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3RpdGxlIiBtc2dpZD0iMjc4MzEwNDgwNzU1MTIxMTYzOSI+Itiq2YjYtdmK2YQg2KfZhNi02KfYrdmGIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfc3VidGl0bGUiIG1zZ2lkPSIxNzUyMDQwMDYyMDg3ODI5MTk2Ij4i2KfZhtiu2YHYttiqINi32KfZgtipINin2YTYqNi32KfYsdmK2KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfcGVyY2VudF9mb3JtYXQiIG1zZ2lkPSIxMDc3MjQ0OTQ5MzE4MjYxNzYxIj4i2KfZhNmF2KrYqNmC2Yo6IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkJSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZF9jaGFyZ2VyIiBtc2dpZD0iNDU0OTEwNTk5Njc0MDUyMjUyMyI+Iti02K3ZhiBVU0Ig2LrZitixINmF2LnYqtmF2K8uXG7Yp9iz2KrYrtiv2YUg2KfZhNi02KfYrdmGINin2YTZhdmI2YHYsSDZgdmC2LcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZF9jaGFyZ2VyIiBtc2dpZD0iNDU0OTEwNTk5Njc0MDUyMjUyMyI+IuKAj9i02K3ZhiBVU0Ig2LrZitixINmF2LnYqtmF2K8uXG7Yp9iz2KrYrtiv2YUg2KfZhNi02KfYrdmGINin2YTZhdmI2YHYsSDZgdmC2LcuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfd2h5IiBtc2dpZD0iNzI3OTE2OTYwOTUxODM4NjM3MiI+Itin2LPYqtiu2K/Yp9mFINin2YTYqNi32KfYsdmK2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjMwMjM4ODk5MTY2OTkyNzAyMjQiPiLYp9mE2KXYudiv2KfYr9in2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3dpZmlfYnV0dG9uIiBtc2dpZD0iMTczMzkyODE1MTY5ODMxMTkyMyI+IldpLUZpIjwvc3RyaW5nPgpAQCAtNDMsMjYgKzQzLDI0IEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fcm90YXRpb24iIG1zZ2lkPSIzNzkwNDgyNTQxMzU3Nzk4NDIxIj4i2KfZhNiq2K/ZiNmK2LEg2KfZhNiq2YTZgtin2KbZiiDZhNmE2LTYp9i02KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX211dGVfbGFiZWwiIG1zZ2lkPSI1NTQ2ODI1NDk5MTc0MjkzOTYiPiLZg9iq2YUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUxMTQ1MzYxNDk2MjMyNDY3NCI+Itiq2YTZgtin2KbZiiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfbm90aWZpY2F0aW9ucyIgbXNnaWQ9IjM5NzE0NjE3NjI4MDkwNTEzNyI+Itin2YTYqtmG2KjZitmH2KfYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfbm90aWZpY2F0aW9ucyIgbXNnaWQ9IjM5NzE0NjE3NjI4MDkwNTEzNyI+Itin2YTYpdi02LnYp9ix2KfYqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImJsdWV0b290aF90ZXRoZXJlZCIgbXNnaWQ9IjcwOTQxMDE2MTIxNjExMzMyNjciPiLYqtmFINil2YbYtNin2KEg2KfZhNin2KrYtdin2YQg2KjYp9mE2KXZhtiq2LHZhtiqINi52YYg2LfYsdmK2YIg2KfZhNio2YTZiNiq2YjYqy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2lucHV0X21ldGhvZF9zZXR0aW5nc19jb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjM1MDQyOTI0NzE1MTIzMTc4MjciPiLYpdi52K/Yp9ivINij2LPZhNmI2Kgg2KfZhNil2K/Yrtin2YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3VzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9Ijc1NTE5MDMwODQ0MTYwNTc4MTAiPiLZhNmI2K3YqSDZhdmB2KfYqtmK2K0g2YHYudmE2YrYqSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI4MzQ2OTgwMDEyNzE1NjIwNTciPiLZh9mEINiq2LHZitivINin2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+INio2KfZhNiv2K7ZiNmEINil2YTZiSDYrNmH2KfYsiBVU0LYnyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI1MTcxNzc1NDExMTc4ODY1NzUwIj4i2YfZhCDYqtix2YrYryDYp9mE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDYqNin2YTYr9iu2YjZhCDYpdmE2Ykg2YXZhNit2YIgVVNC2J8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iNTE2MTIwNTI1ODYzNTI1MzIwNiI+ItmH2YQg2KrYsdmK2K8g2YHYqtitIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g2LnZhtivINiq2YjYtdmK2YQg2KzZh9in2LIgVVNCINmH2LDYp9ifIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjM4MDg5ODQ5MzE4MzAyMjk4ODgiPiLZh9mEINiq2LHZitivINmB2KrYrSA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+INi52YbYryDYqtmI2LXZitmEINmF2YTYrdmCIFVTQiDZh9iw2KfYnyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfdXJpX3Byb21wdCIgbXNnaWQ9IjUxMzQ1MDYyMTQxMzczMzM0MyI+ItmE2Kcg2YrYudmF2YQg2KPZiiDYqti32KjZitmCINmF2KvYqNiqINmF2Lkg2YXZhNit2YIgVUVCINmH2LDYpy4g2YXYstmK2K8g2YXZhiDYp9mE2YXYudmE2YjZhdin2Kog2LnZhiDZh9iw2Kcg2KfZhNmF2YTYrdmCINi52YTZiSA8eGxpZmY6ZyBpZD0iVVJMIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+ItmF2YTYrdmCIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI4MzQ2OTgwMDEyNzE1NjIwNTciPiLigI/Zh9mEINiq2LHZitivINin2YTYs9mF2KfYrSDZhNmE2KrYt9io2YrZgiA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+INio2KfZhNiv2K7ZiNmEINil2YTZiSDYrNmH2KfYsiBVU0LYnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI1MTcxNzc1NDExMTc4ODY1NzUwIj4i4oCP2YfZhCDYqtix2YrYryDYp9mE2LPZhdin2K0g2YTZhNiq2LfYqNmK2YIgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDYqNin2YTYr9iu2YjZhCDYpdmE2Ykg2YXZhNit2YIgVVNC2J8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iNTE2MTIwNTI1ODYzNTI1MzIwNiI+IuKAj9mH2YQg2KrYsdmK2K8g2YHYqtitIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g2LnZhtivINiq2YjYtdmK2YQg2KzZh9in2LIgVVNCINmH2LDYp9ifIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjM4MDg5ODQ5MzE4MzAyMjk4ODgiPiLigI/Zh9mEINiq2LHZitivINmB2KrYrSA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+INi52YbYryDYqtmI2LXZitmEINmF2YTYrdmCIFVTQiDZh9iw2KfYnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfdXJpX3Byb21wdCIgbXNnaWQ9IjUxMzQ1MDYyMTQxMzczMzM0MyI+IuKAj9mE2Kcg2YrYudmF2YQg2KPZiiDYqti32KjZitmCINmF2KvYqNiqINmF2Lkg2YXZhNit2YIgVUVCINmH2LDYpy4g2YXYstmK2K8g2YXZhiDYp9mE2YXYudmE2YjZhdin2Kog2LnZhiDZh9iw2Kcg2KfZhNmF2YTYrdmCINi52YTZiSA8eGxpZmY6ZyBpZD0iVVJMIj4lMSRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+IuKAj9mF2YTYrdmCIFVTQiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3ZpZXciIG1zZ2lkPSI2MzA0NTY1NTUzMjE4MTkyOTkwIj4i2LnYsdi2Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9kZXZpY2UiIG1zZ2lkPSIxNDUwMjg3NDM3MDE3MzE1OTA2Ij4i2KfZhNin2LPYqtiu2K/Yp9mFINio2LTZg9mEINin2YHYqtix2KfYttmKINmE2KzZh9in2LIgVVNCINmH2LDYpyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfYWNjZXNzb3J5IiBtc2dpZD0iMTIxMDk1NDU3Njk3OTYyMTU5NiI+Itin2YTYp9iz2KrYrtiv2KfZhSDYqNi02YPZhCDYp9mB2KrYsdin2LbZiiDZhNmF2YTYrdmCIFVTQiDZh9iw2KciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX3RpdGxlIiBtc2dpZD0iNDUxMzkxODM5MzM4NzE0MTk0OSI+ItmH2YQg2KrYsdmK2K8g2KfZhNiz2YXYp9itINio2KrYtdit2YrYrSDYo9iu2LfYp9ihIFVTQtifIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+Itin2YTZhdmE2YEg2KfZhNmF2LHYrNi52Yog2KfZhNix2KbZitiz2Yog2YTZgCBSU0Eg2YHZiiDZh9iw2Kcg2KfZhNmD2YXYqNmK2YjYqtixINmH2Yg6XG48eGxpZmY6ZyBpZD0iRklOR0VSUFJJTlQiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9kZXZpY2UiIG1zZ2lkPSIxNDUwMjg3NDM3MDE3MzE1OTA2Ij4i4oCP2KfZhNin2LPYqtiu2K/Yp9mFINio2LTZg9mEINin2YHYqtix2KfYttmKINmE2KzZh9in2LIgVVNCINmH2LDYpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfYWNjZXNzb3J5IiBtc2dpZD0iMTIxMDk1NDU3Njk3OTYyMTU5NiI+IuKAj9in2YTYp9iz2KrYrtiv2KfZhSDYqNi02YPZhCDYp9mB2KrYsdin2LbZiiDZhNmF2YTYrdmCIFVTQiDZh9iw2KciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX3RpdGxlIiBtc2dpZD0iNDUxMzkxODM5MzM4NzE0MTk0OSI+IuKAj9mH2YQg2KrYsdmK2K8g2KfZhNiz2YXYp9itINio2KrYtdit2YrYrSDYo9iu2LfYp9ihIFVTQtifIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+IuKAj9in2YTZhdmE2YEg2KfZhNmF2LHYrNi52Yog2KfZhNix2KbZitiz2Yog2YTZgCBSU0Eg2YHZiiDZh9iw2Kcg2KfZhNmD2YXYqNmK2YjYqtixINmH2Yg6XG48eGxpZmY6ZyBpZD0iRklOR0VSUFJJTlQiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiLYp9mE2LPZhdin2K0g2K/Yp9im2YXZi9inINmF2YYg2YfYsNinINin2YTZg9mF2KjZitmI2KrYsSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+Itiq2YPYqNmK2LEv2KrYtdi62YrYsSDZhNmF2YTYoSDYp9mE2LTYp9i02KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4i2KrZiNiz2YrYuSDYqNmF2YTYoSDYp9mE2LTYp9i02KkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiLYqtmD2KjZitixL9iq2LXYutmK2LEg2KfZhNiq2YjYp9mB2YIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4i2LnZhtivINiq2LXZhdmK2YUg2KrYt9io2YrZgiDZhNi02KfYtNipINij2LXYutix2Iwg2LPZiti42YfYsSDYudmG2LXYsSDYqtit2YPZhSDZgdmKINin2YTYqtmD2KjZitixL9in2YTYqti12LrZitixINio2KzZiNin2LEg2KfZhNiz2KfYudipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiLYrNin2LHZjSDYrdmB2Lgg2YTZgti32Kkg2KfZhNi02KfYtNipLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4i2KzYp9ix2Y0g2K3Zgdi4INmE2YLYt9ipINin2YTYtNin2LTYqS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i2YrYqtmFINit2YHYuCDZhNmC2LfYqS4iPC9zdHJpbmc+CkBAIC03MCwxNCArNjgsMTYgQEAKICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2ZWRfdGV4dCIgbXNnaWQ9IjExNTI4Mzk2NDc2Nzc1NTg4MTUiPiLYp9mE2YXYsyDZhNi52LHYtiDZhNmC2LfYqSDYp9mE2LTYp9i02KkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGl0bGUiIG1zZ2lkPSI3MDU3ODExMTY3NDY5MjI3NzEiPiLYqti52LDYsSDYp9mE2KrZgtin2Lcg2YTZgti32Kkg2KfZhNi02KfYtNipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RleHQiIG1zZ2lkPSI4MTM0MDExMjY5NTcyNDE1NDAyIj4i2KrYudiw2LEg2K3Zgdi4INmE2YLYt9ipINin2YTYtNin2LTYqS4g2YLYryDZitmD2YjZhiDYp9mE2KrYrtiy2YrZhiDZgtmK2K8g2KfZhNin2LPYqtiu2K/Yp9mFLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9wcmVmZXJlbmNlX3RpdGxlIiBtc2dpZD0iNjU1MTA1MDM3NzM4ODg4Mjc4NyI+Itiu2YrYp9ix2KfYqiDZhtmC2YQg2KfZhNmF2YTZgdin2Kog2LnYqNixIFVTQiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzZV9tdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNDMzMzUwNDQxMzU2MzAyMzYyNiI+Itiq2K3ZhdmK2YQg2YPZhdi02LrZhCDZiNiz2KfYpti3IChNVFApIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNlX3B0cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI3NTE3MTI3NTQwMzAxNjI1NzUxIj4i2KrYrdmF2YrZhCDZg9mD2KfZhdmK2LHYpyAoUFRQKSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxlcl9jZF9idXR0b25fdGl0bGUiIG1zZ2lkPSIyMzEyNjY3NTc4NTYyMjAxNTgzIj4i2KrYq9io2YrYqiDYqti32KjZitmCIEFuZHJvaWQgRmlsZSBUcmFuc2ZlciDZhNmAIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9wcmVmZXJlbmNlX3RpdGxlIiBtc2dpZD0iNjU1MTA1MDM3NzM4ODg4Mjc4NyI+IuKAj9iu2YrYp9ix2KfYqiDZhtmC2YQg2KfZhNmF2YTZgdin2Kog2LnYqNixIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9tdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNDMzMzUwNDQxMzU2MzAyMzYyNiI+IuKAj9iq2K3ZhdmK2YQg2YPZhdi02LrZhCDZiNiz2KfYpti3IChNVFApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX3B0cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI3NTE3MTI3NTQwMzAxNjI1NzUxIj4i4oCP2KrYrdmF2YrZhCDZg9mD2KfZhdmK2LHYpyAoUFRQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxlcl9jZF9idXR0b25fdGl0bGUiIG1zZ2lkPSIyMzEyNjY3NTc4NTYyMjAxNTgzIj4i4oCP2KrYq9io2YrYqiDYqti32KjZitmCIEFuZHJvaWQgRmlsZSBUcmFuc2ZlciDZhNmAIE1hYyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmFjayIgbXNnaWQ9IjU2NzAxMTUzODk5NDQyOTEyMCI+Itix2KzZiNi5Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+Itin2YTYsdim2YrYs9mK2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiLYp9mE2YLYp9im2YXYqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+Itin2YTYqti32KjZitmC2KfYqiDYp9mE2K3Yr9mK2KvYqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+Itio2K3YqyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiLYp9mE2YPYp9mF2YrYsdinIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiLYstixINiq2KjYr9mK2YQg2LfYsdmK2YLYqSDYp9mE2KXYr9iu2KfZhC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4i2LLYsSDYqtmD2KjZitixL9iq2LXYutmK2LEg2YTZhNiq2YjYp9mB2YIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiLYp9iz2KrYrtiv2KfZhSDYp9mE2KrZg9io2YrYsS/Yp9mE2KrYtdi62YrYsSDZhNiq2K3ZiNmK2YQg2LTYp9i02Kkg2LXYutmK2LHYqSDYpdmE2Ykg2LTYp9i02Kkg2KPZg9io2LEiPC9zdHJpbmc+CkBAIC05OCwxNyArOTgsMTcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90d29fYmFycyIgbXNnaWQ9IjYxNjYwMTg0OTIzNjA0MzIwOTEiPiLYpdi02KfYsdipINin2YTYqNmK2KfZhtin2Kog2KrYqtmD2YjZhiDZhdmGINi02LHZiti32YrZhi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfdGhyZWVfYmFycyIgbXNnaWQ9IjkxNjc2NzA0NTIzOTUwMzg1MjAiPiLYpdi02KfYsdipINin2YTYqNmK2KfZhtin2Kog2KrYqtmD2YjZhiDZhdmGINir2YTYp9ir2Kkg2KPYtNix2LfYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzA4Mzg0NjA4MTI0NTE5MzY5Ij4i2KXYtNin2LHYqSDYp9mE2KjZitin2YbYp9iqINmD2KfZhdmE2KkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29mZiIgbXNnaWQ9IjMxNzczODAyOTY2OTc5MzM2MjciPiLYqtmFINil2YrZgtin2YEgV2ktRmkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub193aWZpIiBtc2dpZD0iMTQyNTQ3NjU1MTgyNzkyNDQ3NCI+Itiq2YUg2YLYt9i5INin2KrYtdin2YQgV2ktRmkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29uZV9iYXIiIG1zZ2lkPSI3NzM1ODkzMTc4MDEwNzI0Mzc3Ij4i2KXYtNin2LHYqSBXaS1GaSDYqtiq2YPZiNmGINmF2YYg2LTYsdmK2Lcg2YjYp9it2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3R3b19iYXJzIiBtc2dpZD0iNDk5NDI3NDI1MDQ5NzI2MjQzNCI+Itil2LTYp9ix2KkgV2ktRmkg2KrYqtmD2YjZhiDZhdmGINi02LHZiti32YrZhi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfdGhyZWVfYmFycyIgbXNnaWQ9IjM0OTU3NTUwNDQyNzY1ODgzODQiPiLYpdi02KfYsdipIFdpLUZpINiq2KrZg9mI2YYg2YXZhiDYq9mE2KfYq9ipINij2LTYsdi32KkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+Itil2LTYp9ix2KkgV2ktRmkg2YPYp9mF2YTYqS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpbWF4IiBtc2dpZD0iNDMyOTE4MDEyOTcyNzYzMDM2OCI+ItmE2YrYsyDZh9mG2KfZgyBXaU1BWC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X29uZV9iYXIiIG1zZ2lkPSI0MTcwOTk0Mjk5MDExODYzNjQ4Ij4i2LTYsdmK2LcgV2lNQVgg2YjYp9it2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90d29fYmFycyIgbXNnaWQ9IjkxNzYyMzY4NTgzMzY1MDIyODgiPiLYtNix2YrYt9inIFdpTUFYLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiLYo9i02LHYt9ipIFdpTUFYINin2YTYq9mE2KfYq9ipLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzY4MDg5OTg2Nzk1NTc5NTU4Ij4i2KXYtNin2LHYqSBXaU1BWCDZg9in2YXZhNipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9vZmYiIG1zZ2lkPSIzMTc3MzgwMjk2Njk3OTMzNjI3Ij4i4oCP2KrZhSDYpdmK2YLYp9mBIFdpLUZpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2lmaSIgbXNnaWQ9IjE0MjU0NzY1NTE4Mjc5MjQ0NzQiPiLigI/YqtmFINmC2LfYuSDYp9iq2LXYp9mEIFdpLUZpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9vbmVfYmFyIiBtc2dpZD0iNzczNTg5MzE3ODAxMDcyNDM3NyI+IuKAj9il2LTYp9ix2KkgV2ktRmkg2KrYqtmD2YjZhiDZhdmGINi02LHZiti3INmI2KfYrdivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90d29fYmFycyIgbXNnaWQ9IjQ5OTQyNzQyNTA0OTcyNjI0MzQiPiLigI/Ypdi02KfYsdipIFdpLUZpINiq2KrZg9mI2YYg2YXZhiDYtNix2YrYt9mK2YYuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3RocmVlX2JhcnMiIG1zZ2lkPSIzNDk1NzU1MDQ0Mjc2NTg4Mzg0Ij4i4oCP2KXYtNin2LHYqSBXaS1GaSDYqtiq2YPZiNmGINmF2YYg2KvZhNin2KvYqSDYo9i02LHYt9ipLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9zaWduYWxfZnVsbCIgbXNnaWQ9IjY4NTM1NjEzMDM1ODY0ODAzNzYiPiLigI/Ypdi02KfYsdipIFdpLUZpINmD2KfZhdmE2KkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub193aW1heCIgbXNnaWQ9IjQzMjkxODAxMjk3Mjc2MzAzNjgiPiLigI/ZhNmK2LMg2YfZhtin2YMgV2lNQVguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9vbmVfYmFyIiBtc2dpZD0iNDE3MDk5NDI5OTAxMTg2MzY0OCI+IuKAj9i02LHZiti3IFdpTUFYINmI2KfYrdivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdHdvX2JhcnMiIG1zZ2lkPSI5MTc2MjM2ODU4MzM2NTAyMjg4Ij4i4oCP2LTYsdmK2LfYpyBXaU1BWC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3RocmVlX2JhcnMiIG1zZ2lkPSI2MTE2NTUxNjM2NzUyMTAzOTI3Ij4i4oCP2KPYtNix2LfYqSBXaU1BWCDYp9mE2KvZhNin2KvYqS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3NpZ25hbF9mdWxsIiBtc2dpZD0iMjc2ODA4OTk4Njc5NTU3OTU1OCI+IuKAj9il2LTYp9ix2KkgV2lNQVgg2YPYp9mF2YTYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpZ25hbCIgbXNnaWQ9IjcwNjQ2NDUzMjA3ODI1ODUxNjciPiLZhNmK2LPYqiDZh9mG2KfZgyDYpdi02KfYsdipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90X2Nvbm5lY3RlZCIgbXNnaWQ9IjYzOTUzMjYyNzYyMTM0MDI4ODMiPiLYutmK2LEg2YXYqti12YQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV96ZXJvX2JhcnMiIG1zZ2lkPSIzODA2MDYwMjI0NDY3MDI3ODg3Ij4i2YTZitiz2Kog2YfZhtin2YMg2KPYtNix2LfYqS4iPC9zdHJpbmc+CkBAIC0xMjMsMjIgKzEyMywyMiBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMXgiIG1zZ2lkPSI5OTQxMzM0NjgxMjAyNDQwMTgiPiIx4oCOIFjigI4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9oc3BhIiBtc2dpZD0iMjAzMjMyODg1NTQ2MjY0NTE5OCI+IkhTUEEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8zZyIgbXNnaWQ9Ijg2Mjg1NjIzMDUwMDM1NjgyNjAiPiLYtNio2YPYqSDYp9mE2KzZitmEINin2YTYq9in2YTYqyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzMuNWciIG1zZ2lkPSI4NjY0ODQ1NjA5OTgxNjkyMDAxIj4i2LTYqNmD2KkgMy41RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzMuNWciIG1zZ2lkPSI4NjY0ODQ1NjA5OTgxNjkyMDAxIj4i4oCP2LTYqNmD2KkgMy41RyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzRnIiBtc2dpZD0iNzc0MTAwMDc1MDYzMDA4OTYxMiI+Iti02KjZg9ipINin2YTYrNmK2YQg2KfZhNix2KfYqNi5Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fbHRlIiBtc2dpZD0iNTQxMzQ2ODgwODYzNzU0MDY1OCI+IkxURSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2NkbWEiIG1zZ2lkPSI2MTMyNjQ4MTkzOTc4ODIzMDIzIj4iQ0RNQSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX3JvYW1pbmciIG1zZ2lkPSI1OTc3MzYyMzMzNDY2NTU2MDk0Ij4i2KrYrNmI2KfZhCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2VkZ2UiIG1zZ2lkPSI0NDc3NDU3MDUxNjMxOTc5Mjc4Ij4iRWRnZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX3dpZmkiIG1zZ2lkPSIyMzI0NDk2NzU2NTkwNjQ1MjIxIj4iV2ktRmkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpbSIgbXNnaWQ9IjgyNzQwMTcxMTg0NzI0NTUxNTUiPiLZhNmK2LPYqiDZh9mG2KfZgyDYqNi32KfZgtipIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpbSIgbXNnaWQ9IjgyNzQwMTcxMTg0NzI0NTUxNTUiPiLigI/ZhNmK2LPYqiDZh9mG2KfZgyDYqNi32KfZgtipIFNJTS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF90ZXRoZXIiIG1zZ2lkPSI0MTAyNzg0NDk4MTQwMjcxOTY5Ij4i2LHYqNi3INin2YTYqNmE2YjYqtmI2KsuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9haXJwbGFuZV9tb2RlIiBtc2dpZD0iODM0NzQ4OTk5NzkwNzYzMDkyIj4i2YjYtti5INin2YTYt9in2KbYsdipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9sZXZlbCIgbXNnaWQ9Ijc0NTE0NzQxODcxMTMzNzE5NjUiPiLZhdiz2KrZiNmJINin2YTYqNi32KfYsdmK2KkgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INmB2Yog2KfZhNmF2KfYptipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNzk5NTgzOTExMjMxODkzMzgwIj4i2KXYudiv2KfYr9in2Kog2KfZhNmG2LjYp9mFLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uc19idXR0b24iIG1zZ2lkPSI0NDk4MDAwMzY5Nzc5NDIxODkyIj4i2KfZhNil2LTYudin2LHYp9iqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVtb3ZlX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjM2MDMwOTk1MTQ5MDIxODIzNTAiPiLZhdit2Ygg2KfZhNil2LTYudin2LEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfZW5hYmxlZCIgbXNnaWQ9IjM1MTE0Njk0OTkyNDAxMjMwMTkiPiLYqtmFINiq2YXZg9mK2YYgR1BTLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2FjcXVpcmluZyIgbXNnaWQ9Ijg5NTkzMzMzNTEwNTg5NjcxNTgiPiLYp9mE2K3YtdmI2YQg2LnZhNmJIEdQUy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19lbmFibGVkIiBtc2dpZD0iMzUxMTQ2OTQ5OTI0MDEyMzAxOSI+IuKAj9iq2YUg2KrZhdmD2YrZhiBHUFMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfYWNxdWlyaW5nIiBtc2dpZD0iODk1OTMzMzM1MTA1ODk2NzE1OCI+IuKAj9in2YTYrdi12YjZhCDYudmE2YkgR1BTLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHR5X2VuYWJsZWQiIG1zZ2lkPSI0NjEzMjAwMzY1Mzc5NDI2NTYxIj4i2KrZhSDYqtmF2YPZitmGINin2YTZhdio2LHZgtipINin2YTZg9in2KrYqNipLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3ZpYnJhdGUiIG1zZ2lkPSI2NjY1ODUzNjMzNjQxNTUwNTUiPiLYsdmG2YrZhiDZhdi5INin2YTYp9mH2KrYstin2LIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfc2lsZW50IiBtc2dpZD0iOTA2MTI0MzMwNzkzOTEzNTM4MyI+Itix2YbZitmGINi12KfZhdiqLiI8L3N0cmluZz4KQEAgLTE1Myw2ICsxNTMsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+Itin2YTYqNi32KfYsdmK2KkgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLZiNi22Lkg2KfZhNi32KfYptix2KkgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4i2KfZhNio2YTZiNiq2YjYqyA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+Itit2KfZhNipINin2YTZhdmI2YLYuTogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiLYqtmFINi22KjYtyDYp9mE2YXZhtio2Ycg2LnZhNmJIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4i2KrZhSDYqti52LfZitmEINio2YrYp9mG2KfYqiDYtNio2YPYp9iqINin2YTYrNmK2YQg2KfZhNir2KfZhtmKINmI2KfZhNis2YrZhCDYp9mE2KvYp9mE2KsiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiLYqtmFINiq2LnYt9mK2YQg2KjZitin2YbYp9iqINi02KjZg9ipINin2YTYrNmK2YQg2KfZhNix2KfYqNi5Ijwvc3RyaW5nPgpAQCAtMTYxLDE1ICsxNjIsMTYgQEAKICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nIiBtc2dpZD0iMzg1MzExNzI2OTA1MTgwNjI4MCI+ItmE2YLYryDZiNi12YTYqiDYpdmE2Ykg2K3YryDYp9iz2KrYrtiv2KfZhSDYp9mE2KjZitin2YbYp9iqINin2YTZhdit2K/Yry4gXG4gXG4g2KXYsNinINij2LnYr9iqINiq2YXZg9mK2YYg2KfZhNio2YrYp9mG2KfYqiDYjCDZgdmC2K8g2YrYqtmFINiq2K3YtdmK2YQg2LHYs9mI2YUg2YXZhtmDINmF2YYg2YLYqNmEINmF2LTYutmEINi02KjZg9ipINin2YTYrNmI2KfZhC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19lbmFibGUiIG1zZ2lkPSI3NzI5NzcyMDM5MjA4NjY0NjA2Ij4i2KXYudin2K/YqSDYqtmF2YPZitmGINin2YTYqNmK2KfZhtin2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl9kaXNjb25uZWN0ZWQiIG1zZ2lkPSIxOTQwMjMxNTIxMjc0MTQ3NzcxIj4i2YTYpyDZitmI2KzYryDYp9iq2LXYp9mEINil2YbYqtix2YbYqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpINmF2KrYtdmEIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiLYrNin2LHZjSDYp9mE2KjYrdirINi52YYgR1BTIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+Itiq2YUg2KrYudmK2YrZhiDYp9mE2YXZiNmC2Lkg2KjZiNin2LPYt9ipIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IuKAj1dpLUZpINmF2KrYtdmEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiLigI/YrNin2LHZjSDYp9mE2KjYrdirINi52YYgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IuKAj9iq2YUg2KrYudmK2YrZhiDYp9mE2YXZiNmC2Lkg2KjZiNin2LPYt9ipIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+Iti32YTYqNin2Kog2KfZhNmF2YjZgti5INmG2LTYt9ipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4i2YXYrdmIINis2YXZiti5INin2YTYpdi02LnYp9ix2KfYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4i2YXYudmE2YjZhdin2Kog2KfZhNiq2LfYqNmK2YIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+Itiz2YrYqtmFINiq2K/ZiNmK2LEg2KfZhNi02KfYtNipINiq2YTZgtin2KbZitmL2KcuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiLYqtmFINiq2KPZhdmK2YYg2KfZhNi02KfYtNipINmB2Yog2KfZhNin2KrYrNin2Ycg2KfZhNij2YHZgtmKLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLYqtmFINiq2KPZhdmK2YYg2KfZhNi02KfYtNipINmB2Yog2KfZhNin2KrYrNin2Ycg2KfZhNi52YXZiNiv2YouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+Itit2KfZhNipINin2YTYrdmE2YjZitin2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4i2K3ZhNmFINin2YTZitmC2LjYqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLZiNi22Lkg2KfZhNi32KfYptix2KkiPC9zdHJpbmc+CkBAIC0xOTMsMTMgKzE5NSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9sYWJlbCIgbXNnaWQ9IjkxMzUzNDQ3MDQ4OTk1NDYwNDEiPiJXaS1GaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm90X2Nvbm5lY3RlZCIgbXNnaWQ9IjcxNzE5MDQ4NDUzNDU1NzM0MzEiPiLZhNmK2LPYqiDZhdiq2LXZhNipIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub19uZXR3b3JrIiBtc2dpZD0iMjIyMTk5MzA3NzIyMDg1NjM3NiI+ItmE2Kcg2KrYqtmI2YHYsSDYtNio2YPYqSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfb2ZmX2xhYmVsIiBtc2dpZD0iNzU1ODc3ODEwMDg0Mzg4NTg2NCI+Itil2YrZgtin2YEgV2ktRmkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbGFiZWwiIG1zZ2lkPSI2ODkzNTkyOTY0NDYzNjI0MzMzIj4i2LnYsdi2IFdpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9vZmZfbGFiZWwiIG1zZ2lkPSI3NTU4Nzc4MTAwODQzODg1ODY0Ij4i4oCP2KXZitmC2KfZgSBXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9sYWJlbCIgbXNnaWQ9IjY4OTM1OTI5NjQ0NjM2MjQzMzMiPiLigI/Yudix2LYgV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiLYudix2LYg2LTYp9i02Kkg2YTYp9iz2YTZg9mKIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4i2KfZhNiz2LfZiNi5Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+Itiq2YTZgtin2KbZiiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiLYqti42YfYsSDYp9mE2KXYtNi52KfYsdin2Kog2YfZhtinIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4i2YrZhdmD2YbZgyDYp9mE2K/YrtmI2YQg2KXZhNmK2YfYpyDZgdmKINij2Yog2YjZgtiqINio2KfZhNiq2YXYsdmK2LEg2KfZhNiz2LHZiti5INil2YTZiSDYo9iz2YHZhC5cbtmK2YXZg9mG2YMg2KfZhNiq2YXYsdmK2LEg2KfZhNiz2LHZiti5INil2YTZiSDYo9iz2YHZhCDZhdix2Kkg2KPYrtix2Ykg2YTZhNmI2LXZiNmEINil2YTZiSDYudmG2KfYtdixINiq2K3Zg9mFINin2YTZhti42KfZhS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiLZhdix2LEg2LPYsdmK2LnZi9inINmE2K3Yp9mB2Kkg2KfZhNi02KfYtNipINmE2KXYuNmH2KfYsSDYp9mE2LTYsdmK2LciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+ItmF2LHYsSDYs9ix2YrYudmL2Kcg2YXZhiDYrdin2YHYqSDYp9mE2LTYp9i02Kkg2YTYpdi42YfYp9ixINi02LHZiti3INin2YTZhti42KfZhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiLZiNi22Lkg2KfZhti52YPYp9izINin2YTZhNmI2YYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiLZiNi22Lkg2KfZhNiq2KjYp9mK2YYg2KfZhNmF2K3Ys9mGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiLZiNi22Lkg2KrYtdit2YrYrSDYp9mE2KPZhNmI2KfZhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4i2YLYryDYqtmD2YjZhiDYp9mE2LTYqNmD2Klcbtiu2KfYtti52Kkg2YTZhNix2YLYp9io2KkiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtYXotbGFuZC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtYXotbGFuZC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWI2OTc4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1hei1sYW5kL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3JvdGF0aW9uX2xvY2tlZCIgbXNnaWQ9Ijc2MDk2NzMwMTE0MzE1NTYwOTIiPiJIYXrEsXJkYSBla3JhbiBsYW5kxZ9hZnQgb3JpZW50YXNpeWFzxLFuZGEga2lsaWRsyZluaWIuIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWF6LXJBWi1sYW5kL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1hei1yQVotbGFuZC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWI2OTc4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1hei1yQVotbGFuZC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yb3RhdGlvbl9sb2NrZWQiIG1zZ2lkPSI3NjA5NjczMDExNDMxNTU2MDkyIj4iSGF6xLFyZGEgZWtyYW4gbGFuZMWfYWZ0IG9yaWVudGFzaXlhc8SxbmRhIGtpbGlkbMmZbmliLiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1hei1yQVovc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWF6LXJBWi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTY1ZWVlCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1hei1yQVovc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDksIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxNjQ5MzczNDQ4NTAwMDQ0NjYiPiJTaXN0ZW1pbiDEsHN0aWZhZMmZIMSwbnRlcmZleXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9jbGVhcl9hbGxfYnV0dG9uIiBtc2dpZD0iNzc3NDcyMTM0NDcxNjczMTYwMyI+IlTJmW1pemzJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X3JlbW92ZV9pdGVtX3RpdGxlIiBtc2dpZD0iNjAyNjM5NTg2ODEyOTg1Mjk2OCI+IlNpeWFoxLFkYW4gc2lsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9yZWNlbnRfaW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iNzc5MzYyNDg2NDUyODgxODU2OSI+IlTJmXRiaXEgaW5mb3N1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19yZWNlbnRfYXBwcyIgbXNnaWQ9IjY1NzYzOTI5NTEwNTM5OTQ2NDAiPiJZZW5pIHTJmXRiaXEgeW94ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X2Rpc21pc3NfcmVjZW50cyIgbXNnaWQ9IjQ1NzYwNzYwNzUyMjY1NDAxMDUiPiJTb24gdMmZdGJpcWzJmXJpIGvJmW5hcmxhxZ9kxLFyIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfcmVjZW50X2FwcHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODU0MTc2MDgzODY1ODQ1NTQxIj4iMSBzb24gdMmZdGJpcSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTA0MDc4NDM1OTc5NDg5MDc0NCI+IiVkIHNvbiB0yZl0YmlxIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19ub3RpZmljYXRpb25zX3RpdGxlIiBtc2dpZD0iNDc1NTI2MTE2NzE5MzgzMzIxMyI+IkJpbGRpcmnFnyB5b3hkdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfb25nb2luZ19ldmVudHNfdGl0bGUiIG1zZ2lkPSIxNjgyNTA0NTEzMzE2ODc5MjAyIj4iRGF2YW0gZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbGF0ZXN0X2V2ZW50c190aXRsZSIgbXNnaWQ9IjY1OTQ3Njc0Mzg1Nzc1OTMxNzIiPiJCaWxkaXJpxZ9syZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfdGl0bGUiIG1zZ2lkPSIyNzgzMTA0ODA3NTUxMjExNjM5Ij4iQWRhcHRlcmkgcW/Fn3VuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfc3VidGl0bGUiIG1zZ2lkPSIxNzUyMDQwMDYyMDg3ODI5MTk2Ij4iQmF0YXJleWEgYXphbMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19wZXJjZW50X2Zvcm1hdCIgbXNnaWQ9IjEwNzcyNDQ5NDkzMTgyNjE3NjEiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZCUlPC94bGlmZjpnPiBxYWzEsWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkX2NoYXJnZXIiIG1zZ2lkPSI0NTQ5MTA1OTk2NzQwNTIyNTIzIj4iVVNCIGlsyZkgZWxla3RyaWsgZG9sZHVybWEgZMmZc3TJmWtsyZlubWlyLlxuWWFsbsSxeiBhZGFwdGVyIGlzdGlmYWTJmSBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3doeSIgbXNnaWQ9IjcyNzkxNjk2MDk1MTgzODYzNzIiPiJCYXRhcmV5YSBpc3RpZmFkyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iMzAyMzg4OTkxNjY5OTI3MDIyNCI+IkF5YXJsYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3dpZmlfYnV0dG9uIiBtc2dpZD0iMTczMzkyODE1MTY5ODMxMTkyMyI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQ4Nzk4Nzk2OTg1MDA5NTUzMDAiPiJUyZl5eWFyyZkgcmVqaW1pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX3JvdGF0aW9uIiBtc2dpZD0iMzc5MDQ4MjU0MTM1Nzc5ODQyMSI+IkVrcmFuxLFuIGF2dG8tZMO2bsO8xZ/DvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfbXV0ZV9sYWJlbCIgbXNnaWQ9IjU1NDY4MjU0OTkxNzQyOTM5NiI+IlNVU0RVUiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTExNDUzNjE0OTYyMzI0Njc0Ij4iQVZUTyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfbm90aWZpY2F0aW9ucyIgbXNnaWQ9IjM5NzE0NjE3NjI4MDkwNTEzNyI+IkJpbGRpcmnFn2zJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4iQmx1ZXRvb3RoIHRlemVyaW5xIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9pbnB1dF9tZXRob2Rfc2V0dGluZ3NfY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSIzNTA0MjkyNDcxNTEyMzE3ODI3Ij4iRGF4aWxldG3JmSBtZXRvZGxhcsSxbsSxIGF5YXJsYXnEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3VzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9Ijc1NTE5MDMwODQ0MTYwNTc4MTAiPiJGaXppa2kga2xhdmlhdHVyYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI4MzQ2OTgwMDEyNzE1NjIwNTciPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IHTJmXRiaXFpbsmZIFVTQiBjaWhhesSxbmEgZGF4aWwgb2xtYcSfYSBpY2F6yZkgdmVyaWxzaW4/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjUxNzE3NzU0MTExNzg4NjU3NTAiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IHTJmXRiaXFpbsmZIFVTQiBha3Nlc3VhcsSxbmEgcW/Fn3VsbWHEn2EgaWNhesmZIHZlcmlyc2luaXo/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjUxNjEyMDUyNTg2MzUyNTMyMDYiPiJVU0IgY2loYXogcW/Fn3VsdSBvbGFuIHphbWFuIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4gYcOnxLFsc8SxbiBtxLE/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjM4MDg5ODQ5MzE4MzAyMjk4ODgiPiJVU0IgYWtzZXN1YXIgcW/Fn3VsdSBvbGFuIHphbWFuIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4gYcOnxLFsc8SxbiBtxLE/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV91cmlfcHJvbXB0IiBtc2dpZD0iNTEzNDUwNjIxNDEzNzMzMzQzIj4iSGXDpyBiaXIgcXVyYcWfZMSxcsSxbG3EscWfIHTJmXRiaXEgYnUgVVNCIGFrc2VzdWFyIGlsyZkgacWfbMmZbWlyLiBCdSBha3Nlc3VhciBoYXFxxLFuZGEgZGFoYSDJmXRyYWZsxLEgbcmZbHVtYXTEsSA8eGxpZmY6ZyBpZD0iVVJMIj4lMSRzPC94bGlmZjpnPiBhZHJlc2luZMmZbiDDtnlyyZluaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+IlVTQiBha3Nlc3VhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3ZpZXciIG1zZ2lkPSI2MzA0NTY1NTUzMjE4MTkyOTkwIj4iR8O2c3TJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2RldmljZSIgbXNnaWQ9IjE0NTAyODc0MzcwMTczMTU5MDYiPiJCdSBVU0IgY2loYXogw7zDp8O8biBkZWZvbHQgb2xhcmFxIGlzdGlmYWTJmSBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfYWNjZXNzb3J5IiBtc2dpZD0iMTIxMDk1NDU3Njk3OTYyMTU5NiI+IkJ1IFVTQiBha3Nlc3VhciDDvMOnw7xuIGRlZm9sdCBpc3RpZmFkyZkgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfdGl0bGUiIG1zZ2lkPSI0NTEzOTE4MzkzMzg3MTQxOTQ5Ij4iVVNCIHNhemxhbWF5YSBpY2F6yZkgdmVyaWxzaW4/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+IktvbXDDvHRlcmluIFJTQSBiYXJtYXEgaXppOiBcbjx4bGlmZjpnIGlkPSJGSU5HRVJQUklOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IkJ1IGtvbXDDvHRlcmTJmW4gaMmZbWnFn8mZIGljYXrJmSB2ZXJpbHNpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IkVrcmFuxLEgZG9sZHVybWFxIMO8w6fDvG4geWF4xLFubGHFn2TEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iRWtyYW7EsSBkb2xkdXJtYXEgw7zDp8O8biB1emF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IlNrcmluxZ9vdCB5YWRkYSBzYXhsYW7EsWzEsXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiJTa3JpbsWfb3QgeWFkZGEgc2F4bGFuxLFyLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiJTa3JpbsWfb3QgeWFkZGEgc2F4bGFuxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2ZWRfdGl0bGUiIG1zZ2lkPSI2NDYxODY1OTYwOTYxNDE0OTYxIj4iU2tyaW7Fn290IMOnyZlraWxkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RleHQiIG1zZ2lkPSIxMTUyODM5NjQ3Njc3NTU4ODE1Ij4iU2tyaW7Fn290dW51emEgYmF4bWFxIMO8w6fDvG4gdG94dW51biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RpdGxlIiBtc2dpZD0iNzA1NzgxMTE2NzQ2OTIyNzcxIj4iU2tyaW7Fn290IGfDtnTDvHLDvGzJmSBiaWxpbm3JmWRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RleHQiIG1zZ2lkPSI4MTM0MDExMjY5NTcyNDE1NDAyIj4iU2tyaW7Fn290dSB5YWRkYSBzYXhsYW1hcSBhbMSxbm1hZMSxLCB5yZlxaW4geWFkZGHFnyBpc3RpZmFkyZkgb2x1bnVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9wcmVmZXJlbmNlX3RpdGxlIiBtc2dpZD0iNjU1MTA1MDM3NzM4ODg4Mjc4NyI+IlVTQiBmYXlsIHRyYW5zZmVyaSBzZcOnaW1syZlyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9tdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNDMzMzUwNDQxMzU2MzAyMzYyNiI+Ik1lZGlhIHBsZXllciAoTVRQKSBraW1pIG1vbnRhaiBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX3B0cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI3NTE3MTI3NTQwMzAxNjI1NzUxIj4iS2FtZXJhIGtpbWkgYmlybMmZxZ9kaXIgKFBUUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsZXJfY2RfYnV0dG9uX3RpdGxlIiBtc2dpZD0iMjMxMjY2NzU3ODU2MjIwMTU4MyI+Ik1hYyDDvMOnw7xuIEFuZHJvaWQgRmlsZSBUcmFuc2ZlciB0yZl0YmlxaW5pIHF1cmHFn2TEsXLEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhY2siIG1zZ2lkPSI1NjcwMTE1Mzg5OTQ0MjkxMjAiPiJHZXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IkFuYSBzyZloaWbJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+Ik1lbnl1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iU29uIHTJmXRiaXFsyZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiJEYXhpbGV0bcmZIG1ldG9kdSBkw7x5bcmZc2luyZkga2XDpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiJVecSfdW5sdXEgem9vbSBkw7x5bcmZc2kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiJEYWhhIGLDtnnDvGsgZWtyYW5kYSB1emFxbGHFn2TEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfY29ubmVjdGVkIiBtc2dpZD0iMjcwNzAyNzYzMzI0Mjk4MzM3MCI+IkJsdWV0b290aCBxb8WfdWx1Yi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9kaXNjb25uZWN0ZWQiIG1zZ2lkPSI3NDE2NjQ4NjY5OTc2ODcwMTc1Ij4iQmx1ZXRvb3RoIMmZbGFxyZlzaSBryZlzaWxkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2JhdHRlcnkiIG1zZ2lkPSIzNTgzNDMwMjIzNTI4MjA5NDYiPiJCYXRhcmV5YSB5b3hkdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X29uZV9iYXIiIG1zZ2lkPSI3Nzc0ODg3NzIxODkxMDU3NTIzIj4iQmF0YXJleWEgYmlyIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3R3b19iYXJzIiBtc2dpZD0iODUwMDY1MDQzODczNTAwOTk3MyI+IkJhdGFyZXlhIGlraSB4yZl0ZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90aHJlZV9iYXJzIiBtc2dpZD0iMjMwMjk4MzMzMDg2NTA0MDQ0NiI+IkJhdGFyZXlhIMO8w6cgeMmZdGRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfZnVsbCIgbXNnaWQ9Ijg5MDkxMjI0MDE3MjAxNTg1ODIiPiJCYXRhcmV5YSBkb2x1ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19waG9uZSIgbXNnaWQ9IjQ4OTQ3MDg5MzcwNTI2MTEyODEiPiJUZWxlZm9uIHlveGR1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX29uZV9iYXIiIG1zZ2lkPSI2ODc2OTkyNzgxMzI2NjQxMTUiPiLFnsmZYsmZa8mZIGJpciB4yZl0ZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdHdvX2JhcnMiIG1zZ2lkPSI4Mzg0OTA1MzgyODA0ODE1MjAxIj4ixZ7JmWLJmWvJmSBpa2kgeMmZdGRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3RocmVlX2JhcnMiIG1zZ2lkPSI4NTIxOTA0ODQzOTE5OTcxODg1Ij4ixZ7JmWLJmWvJmSDDvMOnIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9zaWduYWxfZnVsbCIgbXNnaWQ9IjY0NzE4MzQ4Njg1ODA3NTc4OTgiPiJUYW0gxZ/JmWLJmWvJmS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2RhdGEiIG1zZ2lkPSI0NzkxOTY2Mjk1MDk2ODY3NTU1Ij4iTcmZbHVtYXQgeW94ZHVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9vbmVfYmFyIiBtc2dpZD0iMTQxNTYyNTgzMzIzODI3MzYyOCI+IkRhdGEgYmlyIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3R3b19iYXJzIiBtc2dpZD0iNjE2NjAxODQ5MjM2MDQzMjA5MSI+IkRhdGEgaWtpIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4iRGF0YSDDvMOnIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3NpZ25hbF9mdWxsIiBtc2dpZD0iMjcwODM4NDYwODEyNDUxOTM2OSI+IkRhdGEgc2lxbmFsxLEgdGFtZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb2ZmIiBtc2dpZD0iMzE3NzM4MDI5NjY5NzkzMzYyNyI+IldpZmkgc8O2bsO8bMO8ZMO8ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpZmkiIG1zZ2lkPSIxNDI1NDc2NTUxODI3OTI0NDc0Ij4iV2lmaSBiYcSfbGFudMSxIGvJmXNpbGRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9vbmVfYmFyIiBtc2dpZD0iNzczNTg5MzE3ODAxMDcyNDM3NyI+IldpZmkgYmlyIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3R3b19iYXJzIiBtc2dpZD0iNDk5NDI3NDI1MDQ5NzI2MjQzNCI+IldpZmkgaWtpIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3RocmVlX2JhcnMiIG1zZ2lkPSIzNDk1NzU1MDQ0Mjc2NTg4Mzg0Ij4iV2lmaSDDvMOnIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IldpZmkgc2lxbmFsxLEgdGFtZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpbWF4IiBtc2dpZD0iNDMyOTE4MDEyOTcyNzYzMDM2OCI+IldpTUFYIHlveGR1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X29uZV9iYXIiIG1zZ2lkPSI0MTcwOTk0Mjk5MDExODYzNjQ4Ij4iV2lNQVggYmlyIHjJmXR0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdHdvX2JhcnMiIG1zZ2lkPSI5MTc2MjM2ODU4MzM2NTAyMjg4Ij4iV2lNQVggaWtpIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90aHJlZV9iYXJzIiBtc2dpZD0iNjExNjU1MTYzNjc1MjEwMzkyNyI+IldpTUFYIMO8w6cgeMmZdGRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3NpZ25hbF9mdWxsIiBtc2dpZD0iMjc2ODA4OTk4Njc5NTU3OTU1OCI+IldpTUFYIHNpcW5hbMSxIHRhbWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaWduYWwiIG1zZ2lkPSI3MDY0NjQ1MzIwNzgyNTg1MTY3Ij4iU2lxbmFsIHlveGR1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4iUW/Fn3VsdSBkZXlpbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3plcm9fYmFycyIgbXNnaWQ9IjM4MDYwNjAyMjQ0NjcwMjc4ODciPiJTxLFmxLFyIHjJmXR0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfb25lX2JhciIgbXNnaWQ9IjE2ODU3MzAxMTMxOTIwODE4OTUiPiJCaXIgeMmZdHQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90d29fYmFycyIgbXNnaWQ9IjY0MzczNjM2NDgzODUyMDY2NzkiPiLEsGtpIHjJmXR0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdGhyZWVfYmFycyIgbXNnaWQ9IjI2NDgyNDE0MTUxMTkzOTY2NDgiPiLDnMOnIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zaWduYWxfZnVsbCIgbXNnaWQ9IjkxMjI5MjI4ODY1MTk2NzY4MzkiPiJTaXFuYWwgdGFtZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb24iIG1zZ2lkPSIyMzg1MjU0NjkzNjI0MzQ1MjY1Ij4iQWt0aXYuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29mZiIgbXNnaWQ9IjY0NzU1MDgxNTc3ODY4NTMxNTciPiJEZWFrdGl2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX2Nvbm5lY3RlZCIgbXNnaWQ9IjgzNjYyNTY2OTM3MTk0OTk2NjUiPiJRb8WfdWx1ZHVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2dwcnMiIG1zZ2lkPSIxNjA2NDc3MjI0NDg2NzQ3NzUxIj4iR1BSUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzF4IiBtc2dpZD0iOTk0MTMzNDY4MTIwMjQ0MDE4Ij4iMSBYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25faHNwYSIgbXNnaWQ9IjIwMzIzMjg4NTU0NjI2NDUxOTgiPiJIU1BBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fM2ciIG1zZ2lkPSI4NjI4NTYyMzA1MDAzNTY4MjYwIj4iM0ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8zLjVnIiBtc2dpZD0iODY2NDg0NTYwOTk4MTY5MjAwMSI+IjMuNUciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl80ZyIgbXNnaWQ9Ijc3NDEwMDA3NTA2MzAwODk2MTIiPiI0RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2x0ZSIgbXNnaWQ9IjU0MTM0Njg4MDg2Mzc1NDA2NTgiPiJMVEUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9jZG1hIiBtc2dpZD0iNjEzMjY0ODE5Mzk3ODgyMzAyMyI+IkNETUEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9yb2FtaW5nIiBtc2dpZD0iNTk3NzM2MjMzMzQ2NjU1NjA5NCI+IlJvdW1pbnEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9lZGdlIiBtc2dpZD0iNDQ3NzQ1NzA1MTYzMTk3OTI3OCI+IkVkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl93aWZpIiBtc2dpZD0iMjMyNDQ5Njc1NjU5MDY0NTIyMSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaW0iIG1zZ2lkPSI4Mjc0MDE3MTE4NDcyNDU1MTU1Ij4iU0lNIHlveGR1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX3RldGhlciIgbXNnaWQ9IjQxMDI3ODQ0OTgxNDAyNzE5NjkiPiJCbHVldG9vdGggdGV6ZXJpbmcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9haXJwbGFuZV9tb2RlIiBtc2dpZD0iODM0NzQ4OTk5NzkwNzYzMDkyIj4iVcOndcWfIHJlamltaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9sZXZlbCIgbXNnaWQ9Ijc0NTE0NzQxODcxMTMzNzE5NjUiPiJCYXRhcmV5YSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gZmFpemRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9Ijc5OTU4MzkxMTIzMTg5MzM4MCI+IlNpc3RlbSBwYXJhbWV0cmzJmXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25zX2J1dHRvbiIgbXNnaWQ9IjQ0OTgwMDAzNjk3Nzk0MjE4OTIiPiJCaWxkaXJpxZ9syZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVtb3ZlX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjM2MDMwOTk1MTQ5MDIxODIzNTAiPiJCaWxkaXJpxZ9pIHTJmW1pemzJmS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19lbmFibGVkIiBtc2dpZD0iMzUxMTQ2OTQ5OTI0MDEyMzAxOSI+IkdQUyBha3RpdmRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19hY3F1aXJpbmciIG1zZ2lkPSI4OTU5MzMzMzUxMDU4OTY3MTU4Ij4iR1BTIMmZbGTJmSBlZGlsaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90dHlfZW5hYmxlZCIgbXNnaWQ9IjQ2MTMyMDAzNjUzNzk0MjY1NjEiPiJUZWxlVHlwZXdyaXRlciBha3RpdmzJmcWfZGlyaWxpYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl92aWJyYXRlIiBtc2dpZD0iNjY2NTg1MzYzMzY0MTU1MDU1Ij4iWsmZbmcgdmlicmFzaXlhc8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfc2lsZW50IiBtc2dpZD0iOTA2MTI0MzMwNzkzOTEzNTM4MyI+IlrJmW5ndnVyYW4gc8mZc3Npei4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudHNfaXRlbV9kaXNtaXNzZWQiIG1zZ2lkPSI2ODAzNTc0OTM1MDg0ODY3MDcwIj4iPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IMOnxLF4YXLEsWxkxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25fZGlzbWlzc2VkIiBtc2dpZD0iODU0MjExMzg3MTg2MzA2OTI3Ij4iQmlsZGlyacWfIHV6YXFsYcWfZMSxcsSxbGTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfbm90aWZpY2F0aW9uX3NoYWRlIiBtc2dpZD0iNDY5MDI3NDg0NDQ0NzUwNDIwOCI+IkJpbGRpcmnFnyBrw7ZsZ8mZc2kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3F1aWNrX3NldHRpbmdzIiBtc2dpZD0iNjE4NjM3ODQxMTU4MjQzNzA0NiI+IlRleiBheWFybGFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19yZWNlbnRfYXBwcyIgbXNnaWQ9IjkwMTQwMzI5MTY0MTA1OTAwMjciPiJBeMSxcsSxbmPEsSB0yZl0YmlxbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3VzZXIiIG1zZ2lkPSIxMTA0ODQ2Njk5ODY5NDc2ODU1Ij4ixLBzdGlmYWTJmcOnaSA8eGxpZmY6ZyBpZD0iVVNFUiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3Nfd2lmaSIgbXNnaWQ9IjYwOTk3ODEwMzE2Njk3Mjg3MDkiPiI8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19tb2JpbGUiIG1zZ2lkPSI0ODc2ODA2NTY0MDg2MjQxMzQxIj4iTW9iaWwgPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJUWVBFIj4lMiRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUzJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJCYXRhcmV5YSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IlTJmXl5YXLJmSBSZWppbWkgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4iQWxhcm0gPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPiDDvMOnw7xuIHF1cnVsdWIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iMkctM0cgZGF0YSBxZXlyaS1ha3RpdmRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHIGRhdGEgZGVha3RpdiBlZGlsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19tb2JpbGVfdGl0bGUiIG1zZ2lkPSIxMDQ2MDQ3MjQ4ODQ0ODIxMjAyIj4iTW9iaWwgZGF0YSBxZXlyaS1ha3RpdmRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMjA4NjgxNTMwNDg1ODk2NDk1NCI+IkRhdGEgcWV5cmktYWt0aXZkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZyIgbXNnaWQ9IjM4NTMxMTcyNjkwNTE4MDYyODAiPiJHw7ZzdMmZcmlsbWnFnyBkYXRhIGlzdGlmYWTJmSBsaW1pdGluyZkgw6dhdGTEsW7EsXouXG5cbsaPZ8mZciBkYXRhbsSxIHllbmlkyZluIGFrdGl2bMmZxZ9kaXJzyZluaXosIG9wZXJhdG9yIHTJmXLJmWZpbmTJmW4gyZlsYXbJmSB0YXJpZmzJmXIgdMmZdGJpcSBvbHVuYSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfZW5hYmxlIiBtc2dpZD0iNzcyOTc3MjAzOTIwODY2NDYwNiI+IkRhdGFuxLEgeWVuaWTJmW4gYWt0aXYgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl9kaXNjb25uZWN0ZWQiIG1zZ2lkPSIxOTQwMjMxNTIxMjc0MTQ3NzcxIj4ixLBudGVybmV0IGJhxJ9sYW50xLFzxLEgeW94ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkgcW/Fn3VsdWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IkdQUyBBeHRhcsSxxZ/EsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJZZXIgR1BTIHTJmXLJmWZpbmTJmW4gbcO8yZl5ecmZbiBlZGlsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJNyZlrYW4gc29yxJ91bGFyxLEgYXJ4aXZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iQsO8dMO8biBiaWxkaXJpxZ9syZlyaSBzaWwuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IlTJmXRiaXEgaW5mb3N1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiJFa3JhbiBhdnRvbWF0aWsgZMO2bmTJmXJpbMmZY8mZay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IkVrcmFuIGxhbmTFn2FmdCBvcmllbnRhc2l5YXPEsW5kYSBraWxpZGzJmW5pYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fcG9ydHJhaXQiIG1zZ2lkPSI1ODA5MzY3NTIxNjQ0MDEyMTE1Ij4iRWtyYW4gcG9ydHJldCBvcmllbnRhc2l5YXPEsW5kYSBraWxpZGzJmW5pYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iWMmZeWFsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+IlXDp3XFnyByZWppbWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnaW5nX2xhYmVsIiBtc2dpZD0iNDkwMDc0Nzc0NDY1MzA5MjA5Ij4iRG9sdXIsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnZWRfbGFiZWwiIG1zZ2lkPSI4ODY1NDEzMDc5NDE0MjQ2MDgxIj4iRG9sdWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbGFiZWwiIG1zZ2lkPSI2MzA0MTkwMjg1MTcwNzIxNDAxIj4iQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX211bHRpcGxlX2RldmljZXNfbGFiZWwiIG1zZ2lkPSIzOTEyMjQ1NTY1NjEzNjg0NzM1Ij4iQmx1ZXRvb3RoICg8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gQ2loYXopIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiJCbHVldG9vdGggYmHEn2zEsWTEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNjk2ODM3MjI5NzAxODc1NTgxNSI+IlBhcmxhcWzEsXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IkF2dG9mxLFybGFubWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4iRsSxcmxhdG1hIGtpbGlkbGlkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4iRGF4aWxldG3JmSBtZXRvZHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCIgbXNnaWQ9IjUwMTEzMjcwNDg3NDg3NjIyNTciPiJZZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4iWWVyIERlYWt0aXYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4iTWVkaWEgY2loYXrEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4iWWFsbsSxeiBmw7Z2ccmZbGFkyZkgesmZbmdsyZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfc2V0dGluZ3NfbGFiZWwiIG1zZ2lkPSI1MzI2NTU2NTkyNTc4MDY1NDAxIj4iTml6YW1sYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc190aW1lX2xhYmVsIiBtc2dpZD0iNDYzNTk2OTE4MjIzOTczNjQwOCI+IlZheHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc191c2VyX2xhYmVsIiBtc2dpZD0iNTIzODk5NTYzMjEzMDg5Nzg0MCI+Ik3JmW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2xhYmVsIiBtc2dpZD0iOTEzNTM0NDcwNDg5OTU0NjA0MSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNzE3MTkwNDg0NTM0NTU3MzQzMSI+IkJhxJ9sYW50xLEgeW94ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub19uZXR3b3JrIiBtc2dpZD0iMjIyMTk5MzA3NzIyMDg1NjM3NiI+IsWeyZliyZlryZkgeW94ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9vZmZfbGFiZWwiIG1zZ2lkPSI3NTU4Nzc4MTAwODQzODg1ODY0Ij4iV2ktRmkgc8O2bsO8bMO8ZMO8ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9sYWJlbCIgbXNnaWQ9IjY4OTM1OTI5NjQ0NjM2MjQzMzMiPiJXaS1GaSBFa3JhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IlNpbXNpeiBFa3JhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IlBhcmxhcWzEsXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4iQVZUTyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI1ODQ4NDAyMTI3NDU1MDIxNzE0Ij4ixZ7JmWLJmWvJmSBtb25pdG9yIGVkaWzJmSBiaWzJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2J1dHRvbiIgbXNnaWQ9IjE3NTkzODcxODE3NjY2MDMzNjEiPiJIYXrEsXJkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMTI3Mzc5Njk2NzA5MjAyNzI5MSI+IsWeyZliyZlryZkgTW9uaXRvcmlucWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF9pbmZvX21lc3NhZ2UiIG1zZ2lkPSI1NDMwMzIwNTM5NTU1MzU4NDUyIj4iQnUgY2loYXogPHhsaWZmOmcgaWQ9Ik1BTkFHSU5HX0RPTUFJTiI+JXM8L3hsaWZmOmc+IHTJmXLJmWZpbmTJmW4gaWRhcsmZIGVkaWxpciAuIFxuIFxuIFNpemluIGFkbWluaXN0cmF0b3IgxZ/JmWLJmWvJmSBmyZlhbGl5ecmZdGluaXppbiwgaMmZbcOnaW5pbiBlLXBvw6d0LCB0yZl0YmlxbMmZciB2yZkgdMmZaGzDvGvJmXNpeiB2ZWIgc2F5dGxhcsSxbsSxesSxbiBtb25pdG9yaW5xaW5pIGV0bcmZecmZIHFhZGlyZGlyLiBcbiBcbiDGj3RyYWZsxLEgbcmZbHVtYXQgw7zDp8O8biBhZG1pbmlzdHJhdG9yIGlsyZkgyZlsYXHJmSBzYXhsYXnEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZ19tZXNzYWdlIiBtc2dpZD0iMjAzMzA5MTY1NjEyOTk2MzY2OSI+IsOcw6fDvG5jw7wgdMmZcsmZZiBcbiDFn8mZYsmZa8mZIGbJmWFsaXl5yZl0aW5pemluLCBoyZltw6dpbmluIGUtcG/Dp3QsIHTJmXRiaXFsyZlyIHbJmSB0yZlobMO8a8mZc2l6IHZlYiBzYXl0bGFyxLFuxLF6xLFuIG1vbml0b3JpbnFpbmkgZXRtyZl5yZkgcWFkaXJkaXIuIC4gXG4gXG5DaWhhbnrEsW7EsXphIHnDvGtsyZlubWnFnyBldGliYXJsxLEgZXRpbWFkIGJ1bnUgbcO8bWvDvG4gZWRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI3OTQ2OTU2OTc3Mzc3MTY2NzA5Ij4iRXRpYmFybMSxIGV0aW1hZGxhcsSxIHlveGxhecSxbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1hei9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtYXovc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I0OGFhMAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtYXovc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDksIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxNjQ5MzczNDQ4NTAwMDQ0NjYiPiJTaXN0ZW1pbiDEsHN0aWZhZMmZIMSwbnRlcmZleXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9jbGVhcl9hbGxfYnV0dG9uIiBtc2dpZD0iNzc3NDcyMTM0NDcxNjczMTYwMyI+IlTJmW1pemzJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X3JlbW92ZV9pdGVtX3RpdGxlIiBtc2dpZD0iNjAyNjM5NTg2ODEyOTg1Mjk2OCI+IlNpeWFoxLFkYW4gc2lsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9yZWNlbnRfaW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iNzc5MzYyNDg2NDUyODgxODU2OSI+IlTJmXRiaXEgaW5mb3N1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19yZWNlbnRfYXBwcyIgbXNnaWQ9IjY1NzYzOTI5NTEwNTM5OTQ2NDAiPiJZZW5pIHTJmXRiaXEgeW94ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X2Rpc21pc3NfcmVjZW50cyIgbXNnaWQ9IjQ1NzYwNzYwNzUyMjY1NDAxMDUiPiJTb24gdMmZdGJpcWzJmXJpIGvJmW5hcmxhxZ9kxLFyIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfcmVjZW50X2FwcHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODU0MTc2MDgzODY1ODQ1NTQxIj4iMSBzb24gdMmZdGJpcSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTA0MDc4NDM1OTc5NDg5MDc0NCI+IiVkIHNvbiB0yZl0YmlxIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19ub3RpZmljYXRpb25zX3RpdGxlIiBtc2dpZD0iNDc1NTI2MTE2NzE5MzgzMzIxMyI+IkJpbGRpcmnFnyB5b3hkdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfb25nb2luZ19ldmVudHNfdGl0bGUiIG1zZ2lkPSIxNjgyNTA0NTEzMzE2ODc5MjAyIj4iRGF2YW0gZWRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbGF0ZXN0X2V2ZW50c190aXRsZSIgbXNnaWQ9IjY1OTQ3Njc0Mzg1Nzc1OTMxNzIiPiJCaWxkaXJpxZ9syZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfdGl0bGUiIG1zZ2lkPSIyNzgzMTA0ODA3NTUxMjExNjM5Ij4iQWRhcHRlcmkgcW/Fn3VuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfc3VidGl0bGUiIG1zZ2lkPSIxNzUyMDQwMDYyMDg3ODI5MTk2Ij4iQmF0YXJleWEgYXphbMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19wZXJjZW50X2Zvcm1hdCIgbXNnaWQ9IjEwNzcyNDQ5NDkzMTgyNjE3NjEiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZCUlPC94bGlmZjpnPiBxYWzEsWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkX2NoYXJnZXIiIG1zZ2lkPSI0NTQ5MTA1OTk2NzQwNTIyNTIzIj4iVVNCIGlsyZkgZWxla3RyaWsgZG9sZHVybWEgZMmZc3TJmWtsyZlubWlyLlxuWWFsbsSxeiBhZGFwdGVyIGlzdGlmYWTJmSBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3doeSIgbXNnaWQ9IjcyNzkxNjk2MDk1MTgzODYzNzIiPiJCYXRhcmV5YSBpc3RpZmFkyZlzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iMzAyMzg4OTkxNjY5OTI3MDIyNCI+IkF5YXJsYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3dpZmlfYnV0dG9uIiBtc2dpZD0iMTczMzkyODE1MTY5ODMxMTkyMyI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQ4Nzk4Nzk2OTg1MDA5NTUzMDAiPiJUyZl5eWFyyZkgcmVqaW1pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX3JvdGF0aW9uIiBtc2dpZD0iMzc5MDQ4MjU0MTM1Nzc5ODQyMSI+IkVrcmFuxLFuIGF2dG8tZMO2bsO8xZ/DvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfbXV0ZV9sYWJlbCIgbXNnaWQ9IjU1NDY4MjU0OTkxNzQyOTM5NiI+IlNVU0RVUiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTExNDUzNjE0OTYyMzI0Njc0Ij4iQVZUTyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfbm90aWZpY2F0aW9ucyIgbXNnaWQ9IjM5NzE0NjE3NjI4MDkwNTEzNyI+IkJpbGRpcmnFn2zJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4iQmx1ZXRvb3RoIHRlemVyaW5xIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9pbnB1dF9tZXRob2Rfc2V0dGluZ3NfY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSIzNTA0MjkyNDcxNTEyMzE3ODI3Ij4iRGF4aWxldG3JmSBtZXRvZGxhcsSxbsSxIGF5YXJsYXnEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3VzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9Ijc1NTE5MDMwODQ0MTYwNTc4MTAiPiJGaXppa2kga2xhdmlhdHVyYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI4MzQ2OTgwMDEyNzE1NjIwNTciPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IHTJmXRiaXFpbsmZIFVTQiBjaWhhesSxbmEgZGF4aWwgb2xtYcSfYSBpY2F6yZkgdmVyaWxzaW4/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjUxNzE3NzU0MTExNzg4NjU3NTAiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IHTJmXRiaXFpbsmZIFVTQiBha3Nlc3VhcsSxbmEgcW/Fn3VsbWHEn2EgaWNhesmZIHZlcmlyc2luaXo/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjUxNjEyMDUyNTg2MzUyNTMyMDYiPiJVU0IgY2loYXogcW/Fn3VsdSBvbGFuIHphbWFuIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4gYcOnxLFsc8SxbiBtxLE/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjM4MDg5ODQ5MzE4MzAyMjk4ODgiPiJVU0IgYWtzZXN1YXIgcW/Fn3VsdSBvbGFuIHphbWFuIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4gYcOnxLFsc8SxbiBtxLE/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV91cmlfcHJvbXB0IiBtc2dpZD0iNTEzNDUwNjIxNDEzNzMzMzQzIj4iSGXDpyBiaXIgcXVyYcWfZMSxcsSxbG3EscWfIHTJmXRiaXEgYnUgVVNCIGFrc2VzdWFyIGlsyZkgacWfbMmZbWlyLiBCdSBha3Nlc3VhciBoYXFxxLFuZGEgZGFoYSDJmXRyYWZsxLEgbcmZbHVtYXTEsSA8eGxpZmY6ZyBpZD0iVVJMIj4lMSRzPC94bGlmZjpnPiBhZHJlc2luZMmZbiDDtnlyyZluaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+IlVTQiBha3Nlc3VhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3ZpZXciIG1zZ2lkPSI2MzA0NTY1NTUzMjE4MTkyOTkwIj4iR8O2c3TJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2RldmljZSIgbXNnaWQ9IjE0NTAyODc0MzcwMTczMTU5MDYiPiJCdSBVU0IgY2loYXogw7zDp8O8biBkZWZvbHQgb2xhcmFxIGlzdGlmYWTJmSBlZGluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfYWNjZXNzb3J5IiBtc2dpZD0iMTIxMDk1NDU3Njk3OTYyMTU5NiI+IkJ1IFVTQiBha3Nlc3VhciDDvMOnw7xuIGRlZm9sdCBpc3RpZmFkyZkgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfdGl0bGUiIG1zZ2lkPSI0NTEzOTE4MzkzMzg3MTQxOTQ5Ij4iVVNCIHNhemxhbWF5YSBpY2F6yZkgdmVyaWxzaW4/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+IktvbXDDvHRlcmluIFJTQSBiYXJtYXEgaXppOiBcbjx4bGlmZjpnIGlkPSJGSU5HRVJQUklOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IkJ1IGtvbXDDvHRlcmTJmW4gaMmZbWnFn8mZIGljYXrJmSB2ZXJpbHNpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IkVrcmFuxLEgZG9sZHVybWFxIMO8w6fDvG4geWF4xLFubGHFn2TEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iRWtyYW7EsSBkb2xkdXJtYXEgw7zDp8O8biB1emF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IlNrcmluxZ9vdCB5YWRkYSBzYXhsYW7EsWzEsXIuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiJTa3JpbsWfb3QgeWFkZGEgc2F4bGFuxLFyLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiJTa3JpbsWfb3QgeWFkZGEgc2F4bGFuxLFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2ZWRfdGl0bGUiIG1zZ2lkPSI2NDYxODY1OTYwOTYxNDE0OTYxIj4iU2tyaW7Fn290IMOnyZlraWxkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RleHQiIG1zZ2lkPSIxMTUyODM5NjQ3Njc3NTU4ODE1Ij4iU2tyaW7Fn290dW51emEgYmF4bWFxIMO8w6fDvG4gdG94dW51biI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RpdGxlIiBtc2dpZD0iNzA1NzgxMTE2NzQ2OTIyNzcxIj4iU2tyaW7Fn290IGfDtnTDvHLDvGzJmSBiaWxpbm3JmWRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RleHQiIG1zZ2lkPSI4MTM0MDExMjY5NTcyNDE1NDAyIj4iU2tyaW7Fn290dSB5YWRkYSBzYXhsYW1hcSBhbMSxbm1hZMSxLCB5yZlxaW4geWFkZGHFnyBpc3RpZmFkyZkgb2x1bnVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9wcmVmZXJlbmNlX3RpdGxlIiBtc2dpZD0iNjU1MTA1MDM3NzM4ODg4Mjc4NyI+IlVTQiBmYXlsIHRyYW5zZmVyaSBzZcOnaW1syZlyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9tdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNDMzMzUwNDQxMzU2MzAyMzYyNiI+Ik1lZGlhIHBsZXllciAoTVRQKSBraW1pIG1vbnRhaiBlZGluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX3B0cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI3NTE3MTI3NTQwMzAxNjI1NzUxIj4iS2FtZXJhIGtpbWkgYmlybMmZxZ9kaXIgKFBUUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsZXJfY2RfYnV0dG9uX3RpdGxlIiBtc2dpZD0iMjMxMjY2NzU3ODU2MjIwMTU4MyI+Ik1hYyDDvMOnw7xuIEFuZHJvaWQgRmlsZSBUcmFuc2ZlciB0yZl0YmlxaW5pIHF1cmHFn2TEsXLEsW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhY2siIG1zZ2lkPSI1NjcwMTE1Mzg5OTQ0MjkxMjAiPiJHZXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IkFuYSBzyZloaWbJmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+Ik1lbnl1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iU29uIHTJmXRiaXFsyZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiJEYXhpbGV0bcmZIG1ldG9kdSBkw7x5bcmZc2luyZkga2XDpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiJVecSfdW5sdXEgem9vbSBkw7x5bcmZc2kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiJEYWhhIGLDtnnDvGsgZWtyYW5kYSB1emFxbGHFn2TEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfY29ubmVjdGVkIiBtc2dpZD0iMjcwNzAyNzYzMzI0Mjk4MzM3MCI+IkJsdWV0b290aCBxb8WfdWx1Yi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9kaXNjb25uZWN0ZWQiIG1zZ2lkPSI3NDE2NjQ4NjY5OTc2ODcwMTc1Ij4iQmx1ZXRvb3RoIMmZbGFxyZlzaSBryZlzaWxkaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2JhdHRlcnkiIG1zZ2lkPSIzNTgzNDMwMjIzNTI4MjA5NDYiPiJCYXRhcmV5YSB5b3hkdXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X29uZV9iYXIiIG1zZ2lkPSI3Nzc0ODg3NzIxODkxMDU3NTIzIj4iQmF0YXJleWEgYmlyIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3R3b19iYXJzIiBtc2dpZD0iODUwMDY1MDQzODczNTAwOTk3MyI+IkJhdGFyZXlhIGlraSB4yZl0ZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90aHJlZV9iYXJzIiBtc2dpZD0iMjMwMjk4MzMzMDg2NTA0MDQ0NiI+IkJhdGFyZXlhIMO8w6cgeMmZdGRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfZnVsbCIgbXNnaWQ9Ijg5MDkxMjI0MDE3MjAxNTg1ODIiPiJCYXRhcmV5YSBkb2x1ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19waG9uZSIgbXNnaWQ9IjQ4OTQ3MDg5MzcwNTI2MTEyODEiPiJUZWxlZm9uIHlveGR1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX29uZV9iYXIiIG1zZ2lkPSI2ODc2OTkyNzgxMzI2NjQxMTUiPiLFnsmZYsmZa8mZIGJpciB4yZl0ZGlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdHdvX2JhcnMiIG1zZ2lkPSI4Mzg0OTA1MzgyODA0ODE1MjAxIj4ixZ7JmWLJmWvJmSBpa2kgeMmZdGRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3RocmVlX2JhcnMiIG1zZ2lkPSI4NTIxOTA0ODQzOTE5OTcxODg1Ij4ixZ7JmWLJmWvJmSDDvMOnIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9zaWduYWxfZnVsbCIgbXNnaWQ9IjY0NzE4MzQ4Njg1ODA3NTc4OTgiPiJUYW0gxZ/JmWLJmWvJmS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2RhdGEiIG1zZ2lkPSI0NzkxOTY2Mjk1MDk2ODY3NTU1Ij4iTcmZbHVtYXQgeW94ZHVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9vbmVfYmFyIiBtc2dpZD0iMTQxNTYyNTgzMzIzODI3MzYyOCI+IkRhdGEgYmlyIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3R3b19iYXJzIiBtc2dpZD0iNjE2NjAxODQ5MjM2MDQzMjA5MSI+IkRhdGEgaWtpIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4iRGF0YSDDvMOnIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3NpZ25hbF9mdWxsIiBtc2dpZD0iMjcwODM4NDYwODEyNDUxOTM2OSI+IkRhdGEgc2lxbmFsxLEgdGFtZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb2ZmIiBtc2dpZD0iMzE3NzM4MDI5NjY5NzkzMzYyNyI+IldpZmkgc8O2bsO8bMO8ZMO8ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpZmkiIG1zZ2lkPSIxNDI1NDc2NTUxODI3OTI0NDc0Ij4iV2lmaSBiYcSfbGFudMSxIGvJmXNpbGRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9vbmVfYmFyIiBtc2dpZD0iNzczNTg5MzE3ODAxMDcyNDM3NyI+IldpZmkgYmlyIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3R3b19iYXJzIiBtc2dpZD0iNDk5NDI3NDI1MDQ5NzI2MjQzNCI+IldpZmkgaWtpIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3RocmVlX2JhcnMiIG1zZ2lkPSIzNDk1NzU1MDQ0Mjc2NTg4Mzg0Ij4iV2lmaSDDvMOnIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IldpZmkgc2lxbmFsxLEgdGFtZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpbWF4IiBtc2dpZD0iNDMyOTE4MDEyOTcyNzYzMDM2OCI+IldpTUFYIHlveGR1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X29uZV9iYXIiIG1zZ2lkPSI0MTcwOTk0Mjk5MDExODYzNjQ4Ij4iV2lNQVggYmlyIHjJmXR0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdHdvX2JhcnMiIG1zZ2lkPSI5MTc2MjM2ODU4MzM2NTAyMjg4Ij4iV2lNQVggaWtpIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90aHJlZV9iYXJzIiBtc2dpZD0iNjExNjU1MTYzNjc1MjEwMzkyNyI+IldpTUFYIMO8w6cgeMmZdGRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3NpZ25hbF9mdWxsIiBtc2dpZD0iMjc2ODA4OTk4Njc5NTU3OTU1OCI+IldpTUFYIHNpcW5hbMSxIHRhbWTEsXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaWduYWwiIG1zZ2lkPSI3MDY0NjQ1MzIwNzgyNTg1MTY3Ij4iU2lxbmFsIHlveGR1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4iUW/Fn3VsdSBkZXlpbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3plcm9fYmFycyIgbXNnaWQ9IjM4MDYwNjAyMjQ0NjcwMjc4ODciPiJTxLFmxLFyIHjJmXR0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfb25lX2JhciIgbXNnaWQ9IjE2ODU3MzAxMTMxOTIwODE4OTUiPiJCaXIgeMmZdHQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90d29fYmFycyIgbXNnaWQ9IjY0MzczNjM2NDgzODUyMDY2NzkiPiLEsGtpIHjJmXR0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdGhyZWVfYmFycyIgbXNnaWQ9IjI2NDgyNDE0MTUxMTkzOTY2NDgiPiLDnMOnIHjJmXRkaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zaWduYWxfZnVsbCIgbXNnaWQ9IjkxMjI5MjI4ODY1MTk2NzY4MzkiPiJTaXFuYWwgdGFtZMSxci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb24iIG1zZ2lkPSIyMzg1MjU0NjkzNjI0MzQ1MjY1Ij4iQWt0aXYuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29mZiIgbXNnaWQ9IjY0NzU1MDgxNTc3ODY4NTMxNTciPiJEZWFrdGl2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX2Nvbm5lY3RlZCIgbXNnaWQ9IjgzNjYyNTY2OTM3MTk0OTk2NjUiPiJRb8WfdWx1ZHVyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2dwcnMiIG1zZ2lkPSIxNjA2NDc3MjI0NDg2NzQ3NzUxIj4iR1BSUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzF4IiBtc2dpZD0iOTk0MTMzNDY4MTIwMjQ0MDE4Ij4iMSBYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25faHNwYSIgbXNnaWQ9IjIwMzIzMjg4NTU0NjI2NDUxOTgiPiJIU1BBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fM2ciIG1zZ2lkPSI4NjI4NTYyMzA1MDAzNTY4MjYwIj4iM0ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8zLjVnIiBtc2dpZD0iODY2NDg0NTYwOTk4MTY5MjAwMSI+IjMuNUciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl80ZyIgbXNnaWQ9Ijc3NDEwMDA3NTA2MzAwODk2MTIiPiI0RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2x0ZSIgbXNnaWQ9IjU0MTM0Njg4MDg2Mzc1NDA2NTgiPiJMVEUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9jZG1hIiBtc2dpZD0iNjEzMjY0ODE5Mzk3ODgyMzAyMyI+IkNETUEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9yb2FtaW5nIiBtc2dpZD0iNTk3NzM2MjMzMzQ2NjU1NjA5NCI+IlJvdW1pbnEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9lZGdlIiBtc2dpZD0iNDQ3NzQ1NzA1MTYzMTk3OTI3OCI+IkVkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl93aWZpIiBtc2dpZD0iMjMyNDQ5Njc1NjU5MDY0NTIyMSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaW0iIG1zZ2lkPSI4Mjc0MDE3MTE4NDcyNDU1MTU1Ij4iU0lNIHlveGR1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX3RldGhlciIgbXNnaWQ9IjQxMDI3ODQ0OTgxNDAyNzE5NjkiPiJCbHVldG9vdGggdGV6ZXJpbmcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9haXJwbGFuZV9tb2RlIiBtc2dpZD0iODM0NzQ4OTk5NzkwNzYzMDkyIj4iVcOndcWfIHJlamltaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9sZXZlbCIgbXNnaWQ9Ijc0NTE0NzQxODcxMTMzNzE5NjUiPiJCYXRhcmV5YSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gZmFpemRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9Ijc5OTU4MzkxMTIzMTg5MzM4MCI+IlNpc3RlbSBwYXJhbWV0cmzJmXJpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25zX2J1dHRvbiIgbXNnaWQ9IjQ0OTgwMDAzNjk3Nzk0MjE4OTIiPiJCaWxkaXJpxZ9syZlyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVtb3ZlX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjM2MDMwOTk1MTQ5MDIxODIzNTAiPiJCaWxkaXJpxZ9pIHTJmW1pemzJmS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19lbmFibGVkIiBtc2dpZD0iMzUxMTQ2OTQ5OTI0MDEyMzAxOSI+IkdQUyBha3RpdmRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19hY3F1aXJpbmciIG1zZ2lkPSI4OTU5MzMzMzUxMDU4OTY3MTU4Ij4iR1BTIMmZbGTJmSBlZGlsaXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90dHlfZW5hYmxlZCIgbXNnaWQ9IjQ2MTMyMDAzNjUzNzk0MjY1NjEiPiJUZWxlVHlwZXdyaXRlciBha3RpdmzJmcWfZGlyaWxpYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl92aWJyYXRlIiBtc2dpZD0iNjY2NTg1MzYzMzY0MTU1MDU1Ij4iWsmZbmcgdmlicmFzaXlhc8SxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfc2lsZW50IiBtc2dpZD0iOTA2MTI0MzMwNzkzOTEzNTM4MyI+IlrJmW5ndnVyYW4gc8mZc3Npei4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudHNfaXRlbV9kaXNtaXNzZWQiIG1zZ2lkPSI2ODAzNTc0OTM1MDg0ODY3MDcwIj4iPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IMOnxLF4YXLEsWxkxLEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25fZGlzbWlzc2VkIiBtc2dpZD0iODU0MjExMzg3MTg2MzA2OTI3Ij4iQmlsZGlyacWfIHV6YXFsYcWfZMSxcsSxbGTEsS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfbm90aWZpY2F0aW9uX3NoYWRlIiBtc2dpZD0iNDY5MDI3NDg0NDQ0NzUwNDIwOCI+IkJpbGRpcmnFnyBrw7ZsZ8mZc2kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3F1aWNrX3NldHRpbmdzIiBtc2dpZD0iNjE4NjM3ODQxMTU4MjQzNzA0NiI+IlRleiBheWFybGFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19yZWNlbnRfYXBwcyIgbXNnaWQ9IjkwMTQwMzI5MTY0MTA1OTAwMjciPiJBeMSxcsSxbmPEsSB0yZl0YmlxbMmZci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3VzZXIiIG1zZ2lkPSIxMTA0ODQ2Njk5ODY5NDc2ODU1Ij4ixLBzdGlmYWTJmcOnaSA8eGxpZmY6ZyBpZD0iVVNFUiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3Nfd2lmaSIgbXNnaWQ9IjYwOTk3ODEwMzE2Njk3Mjg3MDkiPiI8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19tb2JpbGUiIG1zZ2lkPSI0ODc2ODA2NTY0MDg2MjQxMzQxIj4iTW9iaWwgPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJUWVBFIj4lMiRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUzJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJCYXRhcmV5YSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IlTJmXl5YXLJmSBSZWppbWkgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4iQWxhcm0gPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPiDDvMOnw7xuIHF1cnVsdWIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iMkctM0cgZGF0YSBxZXlyaS1ha3RpdmRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHIGRhdGEgZGVha3RpdiBlZGlsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19tb2JpbGVfdGl0bGUiIG1zZ2lkPSIxMDQ2MDQ3MjQ4ODQ0ODIxMjAyIj4iTW9iaWwgZGF0YSBxZXlyaS1ha3RpdmRpciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMjA4NjgxNTMwNDg1ODk2NDk1NCI+IkRhdGEgcWV5cmktYWt0aXZkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZyIgbXNnaWQ9IjM4NTMxMTcyNjkwNTE4MDYyODAiPiJHw7ZzdMmZcmlsbWnFnyBkYXRhIGlzdGlmYWTJmSBsaW1pdGluyZkgw6dhdGTEsW7EsXouXG5cbsaPZ8mZciBkYXRhbsSxIHllbmlkyZluIGFrdGl2bMmZxZ9kaXJzyZluaXosIG9wZXJhdG9yIHTJmXLJmWZpbmTJmW4gyZlsYXbJmSB0YXJpZmzJmXIgdMmZdGJpcSBvbHVuYSBiaWzJmXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfZW5hYmxlIiBtc2dpZD0iNzcyOTc3MjAzOTIwODY2NDYwNiI+IkRhdGFuxLEgeWVuaWTJmW4gYWt0aXYgZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl9kaXNjb25uZWN0ZWQiIG1zZ2lkPSIxOTQwMjMxNTIxMjc0MTQ3NzcxIj4ixLBudGVybmV0IGJhxJ9sYW50xLFzxLEgeW94ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkgcW/Fn3VsdWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IkdQUyBBeHRhcsSxxZ/EsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJZZXIgR1BTIHTJmXLJmWZpbmTJmW4gbcO8yZl5ecmZbiBlZGlsZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJNyZlrYW4gc29yxJ91bGFyxLEgYXJ4aXZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iQsO8dMO8biBiaWxkaXJpxZ9syZlyaSBzaWwuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IlTJmXRiaXEgaW5mb3N1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiJFa3JhbiBhdnRvbWF0aWsgZMO2bmTJmXJpbMmZY8mZay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IkVrcmFuIGxhbmTFn2FmdCBvcmllbnRhc2l5YXPEsW5kYSBraWxpZGzJmW5pYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fcG9ydHJhaXQiIG1zZ2lkPSI1ODA5MzY3NTIxNjQ0MDEyMTE1Ij4iRWtyYW4gcG9ydHJldCBvcmllbnRhc2l5YXPEsW5kYSBraWxpZGzJmW5pYi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iWMmZeWFsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+IlXDp3XFnyByZWppbWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnaW5nX2xhYmVsIiBtc2dpZD0iNDkwMDc0Nzc0NDY1MzA5MjA5Ij4iRG9sdXIsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnZWRfbGFiZWwiIG1zZ2lkPSI4ODY1NDEzMDc5NDE0MjQ2MDgxIj4iRG9sdWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbGFiZWwiIG1zZ2lkPSI2MzA0MTkwMjg1MTcwNzIxNDAxIj4iQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX211bHRpcGxlX2RldmljZXNfbGFiZWwiIG1zZ2lkPSIzOTEyMjQ1NTY1NjEzNjg0NzM1Ij4iQmx1ZXRvb3RoICg8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gQ2loYXopIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiJCbHVldG9vdGggYmHEn2zEsWTEsXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNjk2ODM3MjI5NzAxODc1NTgxNSI+IlBhcmxhcWzEsXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IkF2dG9mxLFybGFubWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4iRsSxcmxhdG1hIGtpbGlkbGlkaXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4iRGF4aWxldG3JmSBtZXRvZHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCIgbXNnaWQ9IjUwMTEzMjcwNDg3NDg3NjIyNTciPiJZZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4iWWVyIERlYWt0aXYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4iTWVkaWEgY2loYXrEsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4iWWFsbsSxeiBmw7Z2ccmZbGFkyZkgesmZbmdsyZlyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfc2V0dGluZ3NfbGFiZWwiIG1zZ2lkPSI1MzI2NTU2NTkyNTc4MDY1NDAxIj4iTml6YW1sYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc190aW1lX2xhYmVsIiBtc2dpZD0iNDYzNTk2OTE4MjIzOTczNjQwOCI+IlZheHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc191c2VyX2xhYmVsIiBtc2dpZD0iNTIzODk5NTYzMjEzMDg5Nzg0MCI+Ik3JmW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2xhYmVsIiBtc2dpZD0iOTEzNTM0NDcwNDg5OTU0NjA0MSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNzE3MTkwNDg0NTM0NTU3MzQzMSI+IkJhxJ9sYW50xLEgeW94ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub19uZXR3b3JrIiBtc2dpZD0iMjIyMTk5MzA3NzIyMDg1NjM3NiI+IsWeyZliyZlryZkgeW94ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9vZmZfbGFiZWwiIG1zZ2lkPSI3NTU4Nzc4MTAwODQzODg1ODY0Ij4iV2ktRmkgc8O2bsO8bMO8ZMO8ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9sYWJlbCIgbXNnaWQ9IjY4OTM1OTI5NjQ0NjM2MjQzMzMiPiJXaS1GaSBFa3JhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IlNpbXNpeiBFa3JhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IlBhcmxhcWzEsXEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4iQVZUTyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiJCaWxkaXJpxZ9syZlyIGJ1cmFkYSBnw7Zyw7xuw7xyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4iQcWfYcSfxLEgc8O8csO8xZ9kw7xybcmZa2zJmSBpc3TJmW5pbMmZbiB2YXh0IG9ubGFyxLEgyZlsZMmZIGVkaW4uXG5TaXN0ZW1pIG7JmXphcsmZdGkgw7zDp8O8biB5ZW7JmSBkyZkgYcWfYcSfxLEgc8O8csO8xZ9kw7xyw7xuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI1ODQ4NDAyMTI3NDU1MDIxNzE0Ij4ixZ7JmWLJmWvJmSBtb25pdG9yIGVkaWzJmSBiaWzJmXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkb25lX2J1dHRvbiIgbXNnaWQ9IjE3NTkzODcxODE3NjY2MDMzNjEiPiJIYXrEsXJkxLFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMTI3Mzc5Njk2NzA5MjAyNzI5MSI+IsWeyZliyZlryZkgTW9uaXRvcmlucWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF9pbmZvX21lc3NhZ2UiIG1zZ2lkPSI1NDMwMzIwNTM5NTU1MzU4NDUyIj4iQnUgY2loYXogPHhsaWZmOmcgaWQ9Ik1BTkFHSU5HX0RPTUFJTiI+JXM8L3hsaWZmOmc+IHTJmXLJmWZpbmTJmW4gaWRhcsmZIGVkaWxpciAuIFxuIFxuIFNpemluIGFkbWluaXN0cmF0b3IgxZ/JmWLJmWvJmSBmyZlhbGl5ecmZdGluaXppbiwgaMmZbcOnaW5pbiBlLXBvw6d0LCB0yZl0YmlxbMmZciB2yZkgdMmZaGzDvGvJmXNpeiB2ZWIgc2F5dGxhcsSxbsSxesSxbiBtb25pdG9yaW5xaW5pIGV0bcmZecmZIHFhZGlyZGlyLiBcbiBcbiDGj3RyYWZsxLEgbcmZbHVtYXQgw7zDp8O8biBhZG1pbmlzdHJhdG9yIGlsyZkgyZlsYXHJmSBzYXhsYXnEsW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZ19tZXNzYWdlIiBtc2dpZD0iMjAzMzA5MTY1NjEyOTk2MzY2OSI+IsOcw6fDvG5jw7wgdMmZcsmZZiBcbiDFn8mZYsmZa8mZIGbJmWFsaXl5yZl0aW5pemluLCBoyZltw6dpbmluIGUtcG/Dp3QsIHTJmXRiaXFsyZlyIHbJmSB0yZlobMO8a8mZc2l6IHZlYiBzYXl0bGFyxLFuxLF6xLFuIG1vbml0b3JpbnFpbmkgZXRtyZl5yZkgcWFkaXJkaXIuIC4gXG4gXG5DaWhhbnrEsW7EsXphIHnDvGtsyZlubWnFnyBldGliYXJsxLEgZXRpbWFkIGJ1bnUgbcO8bWvDvG4gZWRpci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI3OTQ2OTU2OTc3Mzc3MTY2NzA5Ij4iRXRpYmFybMSxIGV0aW1hZGxhcsSxIHlveGxhecSxbiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1iZS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtYmUvc3RyaW5ncy54bWwKaW5kZXggNjYwOGI3OS4uMTA2NTVkOCAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1iZS9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWJlL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+ItCX0LDRntGB0ZHQtNGLINC00LDQt9Cy0LDQu9GP0YbRjCDQtyDQs9GN0YLQsNCz0LAg0LrQsNC80L9cJ9GO0YLQsNGA0LAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiLQn9Cw0LLRj9C7LiDQvdCwINGe0LLQtdGB0Ywg0Y3QutGA0LDQvSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLQoNCw0YHRhtGP0LPQvS4g0L3QsCDRntCy0LXRgdGMINGN0LrRgNCw0L0iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiLQnNCw0YjRgtCw0LHQsNCy0LDQvdC90LUg0LTQu9GPINGB0YPQvNGP0YjRh9Cw0LvRjNC90LDRgdGGaSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiLQmtCw0LvRliDQv9GA0YvQutC70LDQtNCw0L3QvdC1INGA0LDRgdC/0YDQsNGG0LDQstCw0L3QsNC1INC00LvRjyDQvdC10LLRj9C70ZbQutGW0YUg0Y3QutGA0LDQvdCw0Z4sINC60LDQu9GPINCz0LDQtNC30ZbQvdC90ZbQutCwINC3XCfRj9Cy0ZbRhtGG0LAg0LrRltGA0LDQstCw0L3QvdC1INC80LDRiNGC0LDQsdCw0LLQsNC90L3QtdC8LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiLQl9Cw0YXQsNCy0LDQvdC90LUg0YHQutGA0YvQvdGI0L7RgtCwLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4i0JfQsNGF0LDQstCw0L3QvdC1INGB0LrRgNGL0L3RiNC+0YLQsC4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i0KHQutGA0YvQvdGI0L7RgiDQt9Cw0YXQsNCy0LDQvdGLLiI8L3N0cmluZz4KQEAgLTc4LDYgKzc2LDEwIEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4i0J3QsCDQk9Cw0LvQvtGe0L3Rg9GOINGB0YLQsNGA0L7QvdC60YMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiLQnNC10L3RjiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+ItCd0Y/QtNCw0Z7QvdGW0Y8g0L/RgNGL0LrQu9Cw0LTQsNC90L3RliI8L3N0cmluZz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCAoMTEwMzg2NzU5NjMzMDI3MTg0OCkgLS0+CisgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24gKDgwNjQ2NzE1ODI4MjAzNTgxNTIpIC0tPgorICAgIDxza2lwIC8+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+ItCa0L3QvtC/0LrQsCDQv9C10YDQsNC60LvRjtGH0Y3QvdC90Y8g0LzQtdGC0LDQtNGDINGe0LLQvtC00YMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+ItCa0L3QvtC/0LrQsCDRgdGD0LzRj9GI0YfQsNC70YzQvdCw0YHRhtGWINC80LDRiNGC0LDQsdCwLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4i0JzQsNGI0YLQsNCx0LDQstCw0L3QvdC1INC80LDQu9GL0YUg0Y3Qu9C10LzQtdC90YLQsNGeINC00LvRjyDQsdC+0LvRjNGI0LDQs9CwINGN0LrRgNCw0L3QsC4iPC9zdHJpbmc+CkBAIC0xNTUsNiArMTU3LDggQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiLQkNC60YPQvNGD0LvRj9GC0LDRgDogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLQoNGN0LbRi9C8INC/0LDQu9GR0YLRgzogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiAoNDU3NzI4MjMyOTg2NjgxMzEwMCkgLS0+CisgICAgPHNraXAgLz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4i0J3QsNC70LDQtNC20LDQvdGLINCx0YPQtNC3adC70YzQvWnQujogPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiLQlNCw0LTQt9C10L3Ri9GPIDJHLTNHINCw0LTQutC70Y7Rh9Cw0L3Ri9GPIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4i0JTQsNC00LfQtdC90YvRjyA0RyDQsNC00LrQu9GO0YfQsNC90YvRjyI8L3N0cmluZz4KQEAgLTE2NiwxMiArMTcwLDE1IEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaS1GaSDQv9Cw0LTQutC70Y7Rh9Cw0L3RiyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4i0J/QvtGI0YPQuiBHUFMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4i0JzQtdGB0YbQsCDQt9Cw0LTQsNC90LAg0L/RgNCw0LcgR1BTIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlICgyNDI3MjkwMTQ2MTM4MTY5MDE0KSAtLT4KKyAgICA8c2tpcCAvPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4i0JLRi9C00LDQu2nRhtGMINGD0YHQtSDQsNC/0LDQstGP0YjRh9GN0L3QvWkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+ItCG0L3RhNCw0YDQvNCw0YbRi9GPINC/0YDQsCDQv9GA0YvQutC70LDQtNCw0L3QvdC1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiLQrdC60YDQsNC9INC/0LDQstCw0YDQvtGH0LLQsNC10YbRhtCwINCw0Z7RgtCw0LzQsNGC0YvRh9C90LAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiLQrdC60YDQsNC9INC30LDQsdC70LDQumnRgNCw0LLQsNC90Ysg0Z4g0LDQu9GM0LHQvtC80L3QsNC5INCw0YDRi9C10L3RgtCw0YbRi9GWLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLQrdC60YDQsNC9INC30LDQsdC70LDQumnRgNCw0LLQsNC90Ysg0Z4g0L/QsNGA0YLRgNGN0YLQvdCw0Lkg0LDRgNGL0LXQvdGC0LDRhtGL0ZYuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGRlc3NlcnRfY2FzZSAoMTI5NTE2MTc3NjIyMzk1OTIyMSkgLS0+CisgICAgPHNraXAgLz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiLQnNGA0L5pIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+ItCg0Y3QttGL0Lwg0L/QsNC70ZHRgtGDIjwvc3RyaW5nPgpAQCAtMjAyLDEwICsyMDksMTIgQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+ItCR0LXRgdC/0YDQsNCy0LDQtNC90Ysg0LTRi9GB0L/Qu9C10LkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiLQr9GA0LrQsNGB0YbRjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiLQkNCO0KLQkCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiLQkNC/0LDQstGP0YjRh9GN0L3QvdGWINC3XCfRj9Ge0LvRj9GO0YbRhtCwINGC0YPRgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+ItCQ0YLRgNGL0LzQu9GW0LLQsNC50YbQtSDQtNC+0YHRgtGD0L8g0LTQsCDRltGFINGDINC70Y7QsdGLINGH0LDRgSwg0L/RgNCw0LLQvtC00LfRj9GH0Ysg0L/QsNC70YzRhtCw0Lwg0YPQvdGW0LcuXG7Qn9GA0LDQstGP0LTQt9GW0YbQtSDQv9Cw0LvRjNGG0LDQvCDRg9C90ZbQtyDRj9GI0YfRjSDRgNCw0LcsINC60LDQsSDQsNGC0YDRi9C80LDRhtGMINC00L7RgdGC0YPQvyDQtNCwINGB0YDQvtC00LrQsNGeINC60ZbRgNCw0LLQsNC90L3RjyDRgdGW0YHRgtGN0LzQsNC5LiI8L3N0cmluZz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSAoOTA1MDg2OTU0ODk1MTA0NDM3MSkgLS0+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsICgxNjY2MzU4Nzg0MjgzMDIwNzYyKSAtLT4KICAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlX2xvbmcgKDcxMTc2OTI3OTUxNjM2MjA2MjYpIC0tPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsICgzMzE5NTA3NTUxNjg5MTA4NjkyKSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsICg4NTM0NDM2ODk3NDU1ODQ3NzApIC0tPgorICAgIDxza2lwIC8+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Igc3NsX2NhX2NlcnRfd2FybmluZyAoOTAwNTk1NDEwNjkwMjA1MzY0MSkgLS0+CiAgICAgPHNraXAgLz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1iZy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtYmcvc3RyaW5ncy54bWwKaW5kZXggNjE5NGZkOC4uYmIxZjE4YiAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1iZy9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWJnL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+ItCS0LjQvdCw0LPQuCDQtNCwINGB0LUg0YDQsNC30YDQtdGI0LDQstCwINC+0YIg0YLQvtC30Lgg0LrQvtC80L/RjtGC0YrRgCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+ItCc0LDRidCw0LEg4oCTINC30LDQv9GK0LvQstCwINC10LrRgNCw0L3QsCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLQoNCw0LfQv9GK0LLQsNC90LUg4oCTINC30LDQv9GK0LvQstCwINC10LrRgNCw0L3QsCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+ItCf0YDQvtC80Y/QvdCwINC90LAg0LzQsNGJ0LDQsdCwINC30LAg0YHRitCy0LzQtdGB0YLQuNC80L7RgdGCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+ItCa0L7Qs9Cw0YLQviDQtNCw0LTQtdC90L4g0L/RgNC40LvQvtC20LXQvdC40LUg0LUg0YHRitC30LTQsNC00LXQvdC+INC30LAg0L/Qvi3QvNCw0LvRitC6INC10LrRgNCw0L0sINC00L4g0YfQsNGB0L7QstC90LjQutCwINGJ0LUg0YHQtSDQv9C+0LrQsNC20LUg0YPQv9GA0LDQstC70LXQvdC40LUg0LfQsCDQv9GA0L7QvNGP0L3QsCDQvdCwINC80LDRidCw0LHQsC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4i0JXQutGA0LDQvdC90LDRgtCwINGB0L3QuNC80LrQsCDRgdC1INC30LDQv9Cw0LfQstCwLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4i0JXQutGA0LDQvdC90LDRgtCwINGB0L3QuNC80LrQsCDRgdC1INC30LDQv9Cw0LfQstCwLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLQldC60YDQsNC90L3QsNGC0LAg0YHQvdC40LzQutCwINGB0LUg0LfQsNC/0LDQt9Cy0LAuIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+ItCd0LDRh9Cw0LvQviI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+ItCc0LXQvdGOIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4i0KHQutC+0YDQvtGI0L3QuCDQv9GA0LjQu9C+0LbQtdC90LjRjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+ItCi0YrRgNGB0LXQvdC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+ItCa0LDQvNC10YDQsCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4i0JHRg9GC0L7QvSDQt9CwINC/0YDQtdCy0LrQu9GO0YfQstCw0L3QtSDQvdCwINC80LXRgtC+0LTQsCDQvdCwINCy0YrQstC10LbQtNCw0L3QtS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4i0JHRg9GC0L7QvSDQt9CwINC/0YDQvtC80Y/QvdCwINC90LAg0LzQsNGJ0LDQsdCwINGBINGG0LXQuyDRgdGK0LLQvNC10YHRgtC40LzQvtGB0YIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiLQn9GA0L7QvNGP0L3QsCDQvdCwINC80LDRidCw0LHQsCDQvdCwINC10LrRgNCw0L3QsCDQvtGCINC/0L4t0LzQsNC70YrQuiDQtNC+INC/0L4t0LPQvtC70Y/QvC4iPC9zdHJpbmc+CkBAIC0xNTMsNiArMTUzLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiLQkdCw0YLQtdGA0LjRjzogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLQodCw0LzQvtC70LXRgtC10L0g0YDQtdC20LjQvDogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+ItCc0LXRgdGC0L7Qv9C+0LvQvtC20LXQvdC40LXRgtC+INC1IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4i0JHRg9C00LjQu9C90LjQutGK0YIg0LUg0L3QsNCy0LjRgiDQt9CwIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iMkctM0cg0LTQsNC90L3QuNGC0LUg0YHQsCDQtNC10LDQutGC0LjQstC40YDQsNC90LgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiI0RyDQtNCw0L3QvdC40YLQtSDRgdCwINC00LXQsNC60YLQuNCy0LjRgNCw0L3QuCI8L3N0cmluZz4KQEAgLTE2NCwxMiArMTY1LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaS1GaTog0JjQvNCwINCy0YDRitC30LrQsCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4i0KLRitGA0YHQuCDRgdC1IEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiLQnNC10YHRgtC+0L/QvtC70L7QttC10L3QuNC10YLQviDQtSDQt9Cw0LTQsNC00LXQvdC+INC+0YIgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4i0JDQutGC0LjQstC90Lgg0LfQsNGP0LLQutC4INC30LAg0LzQtdGB0YLQvtC/0L7Qu9C+0LbQtdC90LjQtSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+ItCY0LfRh9C40YHRgtCy0LDQvdC1INC90LAg0LLRgdC40YfQutC4INC40LfQstC10YHRgtC40Y8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+ItCY0L3RhNC+0YDQvNCw0YbQuNGPINC30LAg0L/RgNC40LvQvtC20LXQvdC40LXRgtC+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiLQldC60YDQsNC90YrRgiDRidC1INGB0LUg0LfQsNCy0YrRgNGC0LAg0LDQstGC0L7QvNCw0YLQuNGH0L3Qvi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+ItCV0LrRgNCw0L3RitGCINC1INC30LDQutC70Y7Rh9C10L0g0LIg0YXQvtGA0LjQt9C+0L3RgtCw0LvQvdCwINC+0YDQuNC10L3RgtCw0YbQuNGPLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLQldC60YDQsNC90YrRgiDQtSDQt9Cw0LrQu9GO0YfQtdC9INCy0YrQsiDQstC10YDRgtC40LrQsNC70L3QsCDQvtGA0LjQtdC90YLQsNGG0LjRjy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4i0JLQuNGC0YDQuNC90LAg0YEg0LTQtdGB0LXRgNGC0LgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4i0JzQtdGH0YLQsCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLQodCw0LzQvtC70LXRgtC10L0g0YDQtdC20LjQvCI8L3N0cmluZz4KQEAgLTE4MiwxMCArMTg0LDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX3VubG9ja2VkX2xhYmVsIiBtc2dpZD0iMzM2MDU0OTMwMzYyNTgwNTg0Ij4i0JDQstGC0L7QvNCw0YLQuNGH0L3QsCDQvtGA0LjQtdC90YLQsNGG0LjRjyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX2xvY2tlZF9sYWJlbCIgbXNnaWQ9IjgwNTg2NDY0NDcyNDI1NjU0ODYiPiLQntGA0LjQtdC90YLQsNGG0LjRj9GC0LAg0LUg0LfQsNC60LvRjtGH0LXQvdCwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+ItCc0LXRgtC+0LQg0L3QsCDQstGK0LLQtdC20LTQsNC90LUiPC9zdHJpbmc+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwgKDUwMTEzMjcwNDg3NDg3NjIyNTcpIC0tPgotICAgIDxza2lwIC8+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsICg3NDY0NTQ0MDg2NTA3MzMxNDU5KSAtLT4KLSAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwiIG1zZ2lkPSI1MDExMzI3MDQ4NzQ4NzYyMjU3Ij4i0JzQtdGB0YLQvtC/0L7Qu9C+0LbQtdC90LjQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiLQnNC10YHRgtC+0L/QvtC70L7QttC10L3QuNC10YLQviDQtSDQuNC30LrQu9GO0YfQtdC90L4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4i0JzRg9C70YLQuNC80LXQtNC40LnQvdC+INGD0YHRgtGA0L7QudGB0YLQstC+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9sYWJlbCIgbXNnaWQ9Ijc3MjU2NzEzMzU1NTA2OTU1ODkiPiLQmNC90LTQuNC60LDRgtC+0YAg0LfQsCDRgdC40LvQsNGC0LAg0L3QsCDQv9C+0LvRg9GH0LXQvdC40Y8g0YHQuNCz0L3QsNC7IChSU1NJKSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4i0KHQsNC80L4g0YHQv9C10YjQvdC4INC+0LHQsNC20LTQsNC90LjRjyI8L3N0cmluZz4KQEAgLTIwMCw4ICsyMDAsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4i0JHQtdC30LbQuNGH0LXQvSDQtNC40YHQv9C70LXQuSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+ItCv0YDQutC+0YHRgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiLQkNCS0KIuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RpdGxlIiBtc2dpZD0iMTE5OTIzNzc0NDA4NjQ2OTIxNyI+ItCY0LfQstC10YHRgtC40Y/RgtCwINGB0LUg0L/QvtC60LDQt9Cy0LDRgiDRgtGD0LoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiLQntGB0YrRidC10YHRgtCy0Y/QstCw0LnRgtC1INC00L7RgdGC0YrQvyDQtNC+INGC0Y/RhSDQv9C+INCy0YHRj9C60L4g0LLRgNC10LzQtSwg0LrQsNGC0L4g0L/RgNC10LrQsNGA0LDRgtC1INC/0YDRitGB0YIg0L3QsNC00L7Qu9GDLlxu0J3QsNC/0YDQsNCy0LXRgtC1INCz0L4g0L7RgtC90L7QstC+INC30LAg0YHQuNGB0YLQtdC80L3QuNGC0LUg0LrQvtC90YLRgNC+0LvQuC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiLQn9GA0LXQutCw0YDQsNC50YLQtSDQv9GA0YrRgdGCINC/0L4g0YDRitCx0LAg0L3QsCDQtdC60YDQsNC90LAsINC30LAg0LTQsCDRgdC1INC/0L7QutCw0LbQtSDQu9C10L3RgtCw0YLQsCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlX2xvbmciIG1zZ2lkPSI3MTE3NjkyNzk1MTYzNjIwNjI2Ij4i0J/RgNC10LrQsNGA0LDQudGC0LUg0L/RgNGK0YHRgiDQvtGCINGA0YrQsdCwINC90LAg0LXQutGA0LDQvdCwLCDQt9CwINC00LAg0YHQtSDQv9C+0LrQsNC20LUg0YHQuNGB0YLQtdC80L3QsNGC0LAg0LvQtdC90YLQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiLQoNC10LbQuNC8INC90LAg0LjQvdCy0LXRgNGC0LjRgNCw0L3QtSDQvdCwINGG0LLQtdGC0L7QstC10YLQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+ItCg0LXQttC40Lwg0L3QsCDQv9C+0LTQvtCx0YDQtdC9INC60L7QvdGC0YDQsNGB0YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+ItCg0LXQttC40Lwg0L3QsCDQutC+0YDQuNCz0LjRgNCw0L3QtSDQvdCwINGG0LLQtdGC0L7QstC10YLQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4i0JzRgNC10LbQsNGC0LAg0LzQvtC20LVcbtC00LAg0YHQtSDQvdCw0LHQu9GO0LTQsNCy0LAiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtY2Evc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWNhL3N0cmluZ3MueG1sCmluZGV4IGVkZGVkYTMuLjFjZDVlMWQgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtY2Evc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1jYS9zdHJpbmdzLnhtbApAQCAtNjEsOSArNjEsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiJEw7NuYSBzZW1wcmUgcGVybcOtcyBkZXMgZFwnYXF1ZXN0IGVxdWlwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4iWm9vbSBwZXIgb21wbGlyIHBhbnRhbGxhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+IkVzdGlyYSBwZXIgb21wbGlyIHBhbnQuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4iWm9vbSBkZSBjb21wYXRpYmlsaXRhdCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiJRdWFuIHVuYSBhcGxpY2FjacOzIHNcJ2hhZ2kgZGlzc2VueWF0IHBlciBhIHVuYSBwYW50YWxsYSBtw6lzIHBldGl0YSwgYXBhcmVpeGVyw6AgdW4gY29udHJvbCBkZSB6b29tIGFsIGNvc3RhdCBkZWwgcmVsbG90Z2UuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IkRlc2FudCBjYXB0dXJhIGRlIHBhbnRhbGxhLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IlNcJ2VzdMOgIGRlc2FudCBjYXB0dXJhIGRlIHBhbnRhbGxhLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4iU1wnZXN0w6AgZGVzYW50IGxhIGNhcHR1cmEgZGUgcGFudGFsbGEuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+IkxhIGNhcHR1cmEgZGUgcGFudGFsbGEgc1wnaGEgZGVzYXQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90aXRsZSIgbXNnaWQ9IjY0NjE4NjU5NjA5NjE0MTQ5NjEiPiJTXCdoYSBmZXQgdW5hIGNhcHR1cmEgZGUgcGFudGFsbGEuIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IlDDoGdpbmEgZFwnaW5pY2kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJNZW7DuiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IkFwbGljYWNpb25zIHJlY2VudHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJDZXJjYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiJDw6BtZXJhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiJCb3TDsyBkZSBjYW52aSBkZWwgbcOodG9kZSBkXCdlbnRyYWRhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiJCb3TDsyBkZSB6b29tIGRlIGNvbXBhdGliaWxpdGF0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4iQW1wbGlhIG1lbnlzIGNvbSBtw6lzIGdyYW4gc2lndWkgbGEgcGFudGFsbGEuIjwvc3RyaW5nPgpAQCAtMTU1LDYgKzE1NSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4iQmF0ZXJpYSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+Ik1vZGUgZFwnYXZpw7MgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4iVWJpY2FjacOzOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IkFsYXJtYSBlc3RhYmxlcnRhIGEgbGVzIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iRGFkZXMgMkctM0cgZGVzYWN0aXZhZGVzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iRGFkZXMgNEcgZGVzYWN0aXZhZGVzIjwvc3RyaW5nPgpAQCAtMTY2LDEyICsxNjcsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpOiBjb25uZWN0YWRhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJTXCdlc3TDoCBjZXJjYW50IHVuIEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJTXCdoYSBlc3RhYmxlcnQgbGEgdWJpY2FjacOzIHBlciBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJTb2zCt2xpY2l0dWRzIGRcJ3ViaWNhY2nDsyBhY3RpdmVzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iRXNib3JyYSB0b3RlcyBsZXMgbm90aWZpY2FjaW9ucy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4iSW5mb3JtYWNpw7MgZGUgbFwnYXBsaWNhY2nDsyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4iTGEgcGFudGFsbGEgZ2lyYXLDoCBhdXRvbcOgdGljYW1lbnQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiJMYSBwYW50YWxsYSBlc3TDoCBibG9xdWVqYWRhIGVuIG9yaWVudGFjacOzIGhvcml0em9udGFsLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiJMYSBwYW50YWxsYSBlc3TDoCBibG9xdWVqYWRhIGVuIG9yaWVudGFjacOzIHZlcnRpY2FsLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiJDYXBzYSBkZSBwb3N0cmVzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IkVzdGFsdmkgZGUgcGFudGFsbGEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJFdGhlcm5ldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4iTW9kZSBkXCdhdmnDsyI8L3N0cmluZz4KQEAgLTIwMCw4ICsyMDIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4iUGFudGFsbGEgc2Vuc2UgZmlsIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4iQnJpbGxhbnRvciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiJBVVRPTcOAVElDQSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiJMZXMgbm90aWZpY2FjaW9ucyBhcGFyZWl4ZW4gYXF1w60iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiJBY2NlZGVpeC1oaSBlbiBxdWFsc2V2b2wgbW9tZW50OiBub23DqXMgaGFzIGRlIGZlciBsbGlzY2FyIGVsIGRpdCBjYXAgYXZhbGwuXG5Ub3JuYSBhIGZlciBsbGlzY2FyIGVsIGRpdCBjYXAgYXZhbGwgcGVyIGZlciBxdWUgZXMgbW9zdHJpbiBlbHMgY29udHJvbHMgZGVsIHNpc3RlbWEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4iRmVzIGxsaXNjYXIgZWwgZGl0IHBlciBsYSB2b3JhIGRlIGxhIHBhbnRhbGxhIHBlcnF1w6ggZXMgbW9zdHJpIGxhIGJhcnJhIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiJGZXMgbGxpc2NhciBlbCBkaXQgZGVzIGRlIGxhIHZvcmEgZGUgbGEgcGFudGFsbGEgcGVycXXDqCBlcyBtb3N0cmkgbGEgYmFycmEgZGVsIHNpc3RlbWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4iTW9kZSBkXCdpbnZlcnNpw7MgZGUgY29sb3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiJNb2RlIGRlIGNvbnRyYXN0IG1pbGxvcmF0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiJNb2RlIGRlIGNvcnJlY2Npw7MgZGUgY29sb3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+IsOJcyBwb3NzaWJsZSBxdWUgbGEgeGFyeGFcbmVzdGlndWkgY29udHJvbGFkYSI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1jcy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtY3Mvc3RyaW5ncy54bWwKaW5kZXggODdiYTY3YS4uYmE3MmI4MSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1jcy9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWNzL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IlbFvmR5IHBvdm9saXQgeiB0b2hvdG8gcG/EjcOtdGHEjWUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiJQxZlpYmzDrcW+aXQgbmEgY2Vsb3Ugb2JyYXpvdmt1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+Ik5hIGNlbG91IG9icmF6b3ZrdSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+IsOacHJhdmEgdmVsaWtvc3RpIHogZMWvdm9kdSBrb21wYXRpYmlsaXR5Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+IlBva3VkIGplIGFwbGlrYWNlIG5hdnLFvmVuYSBwcm8gbWVuxaHDrSBvYnJhem92a3UsIHpvYnJhesOtIHNlIHZlZGxlIGhvZGluIG92bMOhZGFjw60gcHJ2ZWsgcMWZaWJsw63FvmVuw60uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IlVrbMOhZMOhbsOtIHNuw61ta3Ugb2JyYXpvdmt5Li4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4iVWtsw6Fkw6Fuw60gc27DrW1rdSBvYnJhem92a3kuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+IlByb2LDrWjDoSB1a2zDoWTDoW7DrSBzbsOtbWt1IG9icmF6b3ZreS4iPC9zdHJpbmc+CkBAIC03OCw2ICs3Niw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4iRG9txa8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJNZW51Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iTm92w6kgYXBsaWthY2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJIbGVkYXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4iRm90b2FwYXLDoXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IlRsYcSNw610a28gcMWZZXBudXTDrSBtZXRvZHkgemFkw6F2w6Fuw60iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4iVGxhxI3DrXRrbyDDunByYXZ5IHZlbGlrb3N0aSB6IGTFr3ZvZHUga29tcGF0aWJpbGl0eSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4iWnbEm3TFoWl0IG1lbsWhw60gb2Jyw6F6ZWsgbmEgdsSbdMWhw60gb2JyYXpvdmt1LiI8L3N0cmluZz4KQEAgLTE1NSw2ICsxNTUsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IkJhdGVyaWU6IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iUmXFvmltIFYgbGV0YWRsZTogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IlBvbG9oYTogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IkJ1ZMOtayBqZSBuYXN0YXZlbiBuYSA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IkRhdG92w6kgcMWZZW5vc3kgMkcgYSAzRyBqc291IHpha8OhesOhbnkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiJEYXRvdsOpIHDFmWVub3N5IDRHIGpzb3UgemFrw6F6w6FueSI8L3N0cmluZz4KQEAgLTE2NiwxMiArMTY3LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaS1GaTogcMWZaXBvamVubyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iVnlobGVkw6F2w6Fuw60gc2F0ZWxpdMWvIEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJQb2xvaGEgbmFzdGF2ZW5hIHBvbW9jw60gc3lzdMOpbXUgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4iQWt0aXZuw60gxb7DoWRvc3RpIG8gcG9sb2h1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iVnltYXphdCB2xaFlY2huYSBvem7DoW1lbsOtLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiJJbmZvcm1hY2UgbyBhcGxpa2FjaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4iT2JyYXpvdmthIHNlIGF1dG9tYXRpY2t5IG90b8SNw60uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiJPYnJhem92a2EgamUgdXphbcSNZW5hIHYgb3JpZW50YWNpIG5hIMWhw63FmWt1LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiJPYnJhem92a2EgamUgdXphbcSNZW5hIHYgb3JpZW50YWNpIG5hIHbDvcWha3UuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IlB1bHQgc2Ugc2xhZGtvc3RtaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJTcG/FmWnEjSBvYnJhem92a3kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJFdGhlcm5ldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4iUmXFvmltIFYgbGV0YWRsZSI8L3N0cmluZz4KQEAgLTE4NCwxMCArMTg2LDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX3VubG9ja2VkX2xhYmVsIiBtc2dpZD0iMzM2MDU0OTMwMzYyNTgwNTg0Ij4iQXV0b21hdGlja8OpIG90w6HEjWVuw60iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4iT3TDocSNZW7DrSBqZSB1emFtxI1lbm8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4iTWV0b2RhIHphZMOhdsOhbsOtIGRhdCI8L3N0cmluZz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCAoNTAxMTMyNzA0ODc0ODc2MjI1NykgLS0+Ci0gICAgPHNraXAgLz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwgKDc0NjQ1NDQwODY1MDczMzE0NTkpIC0tPgotICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCIgbXNnaWQ9IjUwMTEzMjcwNDg3NDg3NjIyNTciPiJQb2xvaGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4iUG9sb2hhIHZ5cG51dGEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4iTWVkacOhbG7DrSB6YcWZw616ZW7DrSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4iUG91emUgdMOtc8WIb3bDoSB2b2zDoW7DrSI8L3N0cmluZz4KQEAgLTIwMiw4ICsyMDIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4iQmV6ZHLDoXRvdsO9IGRpc3BsZWoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiJKYXMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4iQVVUT01BVElDS1kiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4iWmRlIHNlIHpvYnJhenVqw60gb3puw6FtZW7DrSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+Ik3Fr8W+ZXRlIGplIGtkeWtvbGkgem9icmF6aXQgdMOtbSwgxb5lIHDFmWVqZWRldGUgcHJzdGVtIGRvbMWvLlxuUMWZZWplZGV0ZS1saSBwcnN0ZW0gZG9sxa8gamXFoXTEmyBqZWRub3UsIHpvYnJhesOtIHNlIG92bMOhZGFjw60gcHJ2a3kgc3lzdMOpbXUuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4iUGFuZWwgem9icmF6w610ZSBwxZllamV0w61tIHDFmWVzIG9rcmFqIG9icmF6b3ZreSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlX2xvbmciIG1zZ2lkPSI3MTE3NjkyNzk1MTYzNjIwNjI2Ij4iU3lzdMOpbW92w70gcGFuZWwgem9icmF6w610ZSBwxZllamV0w61tIHDFmWVzIG9rcmFqIG9icmF6b3ZreSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiJSZcW+aW0gcMWZZXZyw6FjZW7DrSBiYXJldiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+IlJlxb5pbSB6dsO9xaFlbsOpaG8ga29udHJhc3R1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiJSZcW+aW0ga29yZWtjZSBiYXJldiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iU8OtxaUgbcWvxb5lIGLDvXRcbm1vbml0b3JvdsOhbmEiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZGEvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWRhL3N0cmluZ3MueG1sCmluZGV4IGFmNGJiMzMuLjMwYzQxYmYgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZGEvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1kYS9zdHJpbmdzLnhtbApAQCAtNDQsNyArNDQsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19tdXRlX2xhYmVsIiBtc2dpZD0iNTU0NjgyNTQ5OTE3NDI5Mzk2Ij4iTFlETMOYUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTExNDUzNjE0OTYyMzI0Njc0Ij4iQVVUTyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfbm90aWZpY2F0aW9ucyIgbXNnaWQ9IjM5NzE0NjE3NjI4MDkwNTEzNyI+IlVuZGVycmV0bmluZ2VyIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYmx1ZXRvb3RoX3RldGhlcmVkIiBtc2dpZD0iNzA5NDEwMTYxMjE2MTEzMzI2NyI+IkJsdWV0b290aC10ZXRoZXJpbmcgYW52ZW5kdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsdWV0b290aF90ZXRoZXJlZCIgbXNnaWQ9IjcwOTQxMDE2MTIxNjExMzMyNjciPiJOZXRkZWxpbmcgdmlhIEJsdWV0b290aCBhbnZlbmR0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9pbnB1dF9tZXRob2Rfc2V0dGluZ3NfY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSIzNTA0MjkyNDcxNTEyMzE3ODI3Ij4iS29uZmlndXJlciBpbnB1dG1ldG9kZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3VzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9Ijc1NTE5MDMwODQ0MTYwNTc4MTAiPiJGeXNpc2sgdGFzdGF0dXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iODM0Njk4MDAxMjcxNTYyMDU3Ij4iVGlsbGFkLCBhdCBhcHBlbiA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IGthbiBmw6UgYWRnYW5nIHRpbCBVU0ItZW5oZWRlbj8iPC9zdHJpbmc+CkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IlRpbGxhZCBhbHRpZCBmcmEgZGVubmUgY29tcHV0ZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiJab29tIHRpbCBmdWxkIHNrw6ZybSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiJTdHLDpmsgdGlsIGZ1bGQgc2vDpnJtIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4iS29tcGF0aWJpbGl0ZXRzem9vbSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiJOw6VyIGVuIGFwcCBlciB1ZHZpa2xldCB0aWwgZW4gbWluZHJlIHNrw6ZybSwgdmlzZXMgZGVyIGVuIHpvb21mdW5rdGlvbiB2ZWQgdXJldC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4iR2VtbWVyIHNrw6ZybWJpbGxlZGUuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiJHZW1tZXIgc2vDpnJtYmlsbGVkZS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4iU2vDpnJtYmlsbGVkZXQgZ2VtbWVzLiI8L3N0cmluZz4KQEAgLTc1LDkgKzczLDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2VfcHRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9Ijc1MTcxMjc1NDAzMDE2MjU3NTEiPiJJc8OmdCBzb20gZXQga2FtZXJhIChQVFApIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbGVyX2NkX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjIzMTI2Njc1Nzg1NjIyMDE1ODMiPiJJbnN0YWxsZXIgYXBwZW4gQW5kcm9pZCBGaWxvdmVyZsO4cnNlbCB0aWwgTWFjIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYWNrIiBtc2dpZD0iNTY3MDExNTM4OTk0NDI5MTIwIj4iVGlsYmFnZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiJTdGFydHNpZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4iU3RhcnRza8Omcm0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJNZW51Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iU2VuZXN0ZSBhcHBzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4iU8O4ZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiJLYW1lcmEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IlNraWZ0IGluZHRhc3RuaW5nc21ldG9kZS1rbmFwcGVuLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiJLbmFwIGZvciBrb21wYXRpYmlsaXRldHN6b29tLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4iWm9vbSBtaW5kcmUgdGlsIHN0w7hycmUgc2vDpnJtLiI8L3N0cmluZz4KQEAgLTE1Myw2ICsxNTMsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IkJhdHRlcmkgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiJGbHl0aWxzdGFuZCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGggPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiJQbGFjZXJpbmcgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiJBbGFybWVuIGVyIGluZHN0aWxsZXQgdGlsIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iMkctM0ctZGF0YSBlciBkZWFrdGl2ZXJldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHLWRhdGEgZXIgZGVha3RpdmVyZXQiPC9zdHJpbmc+CkBAIC0xNjQsMTIgKzE2NSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkgZXIgZm9yYnVuZGV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJTw7hnZXIgZWZ0ZXIgR1BTIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IlBsYWNlcmluZ2VuIGVyIGFuZ2l2ZXQgdmVkIGhqw6ZscCBhZiBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJBa3RpdmUgcGxhY2VyaW5nc2FubW9kbmluZ2VyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iUnlkIGFsbGUgbWVkZGVsZWxzZXIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+Ik9wbHlzbmluZ2VyIG9tIGFwcGVuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiJTa8Omcm1lbiByb3RlcmVyIGF1dG9tYXRpc2suIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiJTa8Omcm1lbiBlciBudSBsw6VzdCBpIGxpZ2dlbmRlIHJldG5pbmcuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IlNrw6ZybWVuIGVyIG51IGzDpXN0IGkgc3TDpWVuZGUgcmV0bmluZy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4iRGVzc2VydGNhc2UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iRGFnZHLDuG0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJFdGhlcm5ldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4iRmx5dGlsc3RhbmQiPC9zdHJpbmc+CkBAIC0xOTgsOCArMjAwLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IlRyw6VkbMO4cyBza8Omcm0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiJMeXNzdHlya2UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4iQVVUTyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiJVbmRlcnJldG5pbmdlciB2aXNlcyBoZXIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiJGw6UgYWRnYW5nIHRpbCBkZW0gbsOlciBzb20gaGVsc3QgdmVkIGF0IHN0cnlnZSBuZWQuXG5TdHJ5ZyBuZWQgaWdlbiBmb3IgYXQga29tbWUgdGlsIHN5c3RlbWluZHN0aWxsaW5nZXJuZS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiJTdHJ5ZyBrYW50ZW4gYWYgc2vDpnJtZW4gZm9yIGF0IHNlIGJqw6Zsa2VuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiJTdHJ5ZyBmcmEgc2vDpnJtZW5zIGthbnQgZm9yIGF0IHNlIHN5c3RlbWJqw6Zsa2VuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+IkZhcnZlaW52ZXJ0ZXJpbmdzdGlsc3RhbmQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiJUaWxzdGFuZCBmb3IgZm9yYmVkcmV0IGtvbnRyYXN0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiJGYXJ2ZWtvcnJpZ2VyaW5nc3RpbHN0YW5kIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiJOZXR2w6Zya2V0IGthblxudsOmcmUgb3ZlcnbDpWdldCI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1kZS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZGUvc3RyaW5ncy54bWwKaW5kZXggZWM1MmVkZS4uZmY3ODViZSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1kZS9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWRlL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IlZvbiBkaWVzZW0gQ29tcHV0ZXIgaW1tZXIgenVsYXNzZW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiJab29tIGF1ZiBCaWxkc2NoaXJtZ3LDtsOfZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiJBdWYgQmlsZHNjaGlybWdyw7bDn2UgYW5wYXNzZW4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJLb21wYXRpYmlsaXTDpHRzem9vbSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiJXZW5uIGVpbmUgQXBwIGbDvHIgZWluZW4ga2xlaW5lcmVuIEJpbGRzY2hpcm0gYXVzZ2VsZWd0IGlzdCwgd2lyZCBlaW4gWm9vbS1TdGV1ZXJlbGVtZW50IG5lYmVuIGRlciBVaHIgYW5nZXplaWd0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiJTY3JlZW5zaG90IHdpcmQgZ2VzcGVpY2hlcnQuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiJTY3JlZW5zaG90IHdpcmQgZ2VzcGVpY2hlcnQuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+IlNjcmVlbnNob3Qgd2lyZCBnZXNwZWljaGVydC4uLiI8L3N0cmluZz4KQEAgLTc4LDYgKzc2LDggQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiJTdGFydGJpbGRzY2hpcm0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJNZW7DvCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IkvDvHJ6bGljaCBnZcO2ZmZuZXRlIEFwcHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJTdWNoZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4iS2FtZXJhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiJTY2hhbHRmbMOkY2hlIHp1bSDDhG5kZXJuIGRlciBFaW5nYWJlbWV0aG9kZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiJTY2hhbHRmbMOkY2hlIGbDvHIgS29tcGF0aWJpbGl0w6R0c3pvb20iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+Ilpvb20gYXVmIGVpbmVuIGdyw7bDn2VyZW4gQmlsZHNjaGlybSI8L3N0cmluZz4KQEAgLTE1NSw2ICsxNTUsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IkFra3U6IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiJGbHVnbW9kdXM6IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4iU3RhbmRvcnQgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IldlY2tlciBnZXN0ZWxsdCBmw7xyIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiIyRy0vM0ctRGF0ZW4gZGVha3RpdmllcnQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiI0Ry1EYXRlbiBkZWFrdGl2aWVydCI8L3N0cmluZz4KQEAgLTE2NiwxMiArMTY3LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXTEFOIHZlcmJ1bmRlbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iR1BTIHdpcmQgZ2VzdWNodCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJTdGFuZG9ydCBkdXJjaCBHUFMgZmVzdGdlbGVndCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IlN0YW5kb3J0YW5mcmFnZW4gYWt0aXYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiJBbGxlIEJlbmFjaHJpY2h0aWd1bmdlbiBsw7ZzY2hlbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiJBcHAtRGV0YWlscyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4iQmlsZHNjaGlybSB3aXJkIGF1dG9tYXRpc2NoIGdlZHJlaHQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiJCaWxkc2NoaXJtIGJsZWlidCBpbSBRdWVyZm9ybWF0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiJCaWxkc2NoaXJtIGJsZWlidCBpbSBIb2NoZm9ybWF0LiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiJEZXNzZXJ0YmVow6RsdGVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IkRheWRyZWFtIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+IkZsdWdtb2R1cyI8L3N0cmluZz4KQEAgLTE4NCwxMCArMTg2LDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX3VubG9ja2VkX2xhYmVsIiBtc2dpZD0iMzM2MDU0OTMwMzYyNTgwNTg0Ij4iQXV0b20uIGRyZWhlbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX2xvY2tlZF9sYWJlbCIgbXNnaWQ9IjgwNTg2NDY0NDcyNDI1NjU0ODYiPiJEcmVodW5nIGdlc3BlcnJ0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+IkVpbmdhYmVtZXRob2RlIjwvc3RyaW5nPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsICg1MDExMzI3MDQ4NzQ4NzYyMjU3KSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCAoNzQ2NDU0NDA4NjUwNzMzMTQ1OSkgLS0+Ci0gICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+IlN0YW5kb3J0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsIiBtc2dpZD0iNzQ2NDU0NDA4NjUwNzMzMTQ1OSI+IlN0YW5kb3J0IGF1cyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX21lZGlhX2RldmljZV9sYWJlbCIgbXNnaWQ9IjEzMDI5MDY4MzYzNzI2MDM3NjIiPiJNZWRpZW5nZXLDpHQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2xhYmVsIiBtc2dpZD0iNzcyNTY3MTMzNTU1MDY5NTU4OSI+IlJTU0kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2VtZXJnZW5jeV9vbmx5IiBtc2dpZD0iMjcxMzc3NDA0MTY3Mjg4Njc1MCI+Ik51ciBOb3RydWZlIjwvc3RyaW5nPgpAQCAtMjAyLDggKzIwMiw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJLYWJlbGxvc2Ugw5xiZXJ0cmFndW5nIChXaURpKSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IkhlbGxpZ2tlaXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4iQVVUTyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiJCZW5hY2hyaWNodGlndW5nZW4gZXJzY2hlaW5lbiBoaWVyIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4iR3JlaWZlbiBTaWUgamVkZXJ6ZWl0IGF1ZiBzaWUgenUsIGluZGVtIFNpZSBuYWNoIHVudGVuIHdpc2NoZW4uXG5XaXNjaGVuIFNpZSBmw7xyIFN5c3RlbWVpbnN0ZWxsdW5nZW4gZXJuZXV0IG5hY2ggdW50ZW4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4iWnVtIEVpbmJsZW5kZW4gZGVyIExlaXN0ZSB2b20gUmFuZCB3aXNjaGVuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiJadW0gRWluYmxlbmRlbiBkZXIgU3lzdGVtbGVpc3RlIHZvbSBEaXNwbGF5LVJhbmQgd2VnIHdpc2NoZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4iRmFyYmludmVyc2lvbnNtb2R1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+IktvbnRyYXN0dmVyYmVzc2VydW5nc21vZHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiJGYXJia29ycmVrdHVybW9kdXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+Ik5ldHp3ZXJrIHdpcmRcbmV2ZW50dWVsbCDDvGJlcndhY2h0LiI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1lbC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZWwvc3RyaW5ncy54bWwKaW5kZXggYWI0MzA4MS4uMDEyOWE5MyAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1lbC9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWVsL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+Is6dzrEgzrXPgM65z4TPgc6tz4DOtc+EzrHOuSDPgM6szr3PhM6xIM6xz4DPjCDOsc+Fz4TPjM69IM+Ezr/OvSDPhc+Azr/Ou86/zrPOuc+Dz4TOriI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+Is6Wzr/Phc68IM+DzrUgz4DOu86uz4HOtyDOv864z4zOvc63Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+Is6gz4HOv86yb867zq4gz4POtSDPgM67zq7Pgc63IM6/zrguIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4izpbOv8+FzrwgzrPOuc6xIM+Dz4XOvM6yzrHPhM+Mz4TOt8+EzrEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4izozPhM6xzr0gzrzOuc6xIM61z4bOsc+BzrzOv86zzq4gzq3Ph861zrkgz4PPh861zrTOuc6xz4PPhM61zq8gzrPOuc6xIM+Az4HOv86yzr/Ou86uIM+DzrUgzrzOuc66z4HPjM+EzrXPgc63IM6/zrjPjM69zrcsIM60zq/PgM67zrEgzrHPgM+MIM+Ezr8gz4HOv867z4zOuSDOuM6xIM61zrzPhs6xzr3Ouc+Dz4TOtc6vIM6tzr3OsSDPg8+Ezr/Ouc+HzrXOr86/IM61zrvOrc6zz4fOv8+FIM62zr/Phc68LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiLOkc+Azr/OuM6uzrouIM+Dz4TOuc6zzrzOuc+Mz4TPhc+Azr/PhSDOv864z4zOvc63z4IuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiLOkc+Azr/OuM6uzrrOtc+Fz4POtyDPg8+EzrnOs868zrnPjM+Ez4XPgM6/z4Ugzr/OuM+Mzr3Ot8+CLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLOk86vzr3Otc+EzrHOuSDOsc+Azr/OuM6uzrrOtc+Fz4POtyDPhM6/z4Ugz4PPhM65zrPOvM65z4zPhM+Fz4DOv8+FIM6/zrjPjM69zrfPgi4iPC9zdHJpbmc+CkBAIC03OCw2ICs3Niw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4izpHPgc+HzrnOus6uIM+DzrXOu86vzrTOsSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+Is6czrXOvc6/z40iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiLOoM+Bz4zPg8+GzrHPhM61z4IgzrXPhs6xz4HOvM6/zrPOrc+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4izpHOvc6xzrbOrs+EzrfPg863Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+Is6mz4nPhM6/zrPPgc6xz4bOuc66zq4gzrzOt8+HzrHOvc6uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiLOms6/z4XOvM+Azq8gzrXOvc6xzrvOu86xzrPOrs+CIM68zrXOuM+MzrTOv8+FIM61zrnPg8+MzrTOv8+FIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+Is6azr/Phc68z4DOryDOtc+Dz4TOr86xz4POt8+CIM+Dz4XOvM6yzrHPhM+Mz4TOt8+EzrHPgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+Is6Wzr/Phc68IM6xz4DPjCDOvM65zrrPgc+Mz4TOtc+Bzrcgz4POtSDOvM61zrPOsc67z43PhM61z4HOtyDOv864z4zOvc63LiI8L3N0cmluZz4KQEAgLTE1NSw2ICsxNTUsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+Is6cz4DOsc+EzrHPgc6vzrEgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLOm861zrnPhM6/z4XPgc6zzq/OsSDPgM+Ezq7Pg863z4IgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4izqTOv8+Azr/OuM61z4POr86xIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4izqTOvyDOvs+Fz4DOvc63z4TOrs+Bzrkgzq3Ph861zrkgzr/Pgc65z4PPhM61zq8gz4PPhM65z4IgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiLOpM6xIM60zrXOtM6/zrzOrc69zrEgMkctM0cgzrHPgM61zr3Otc+BzrPOv8+Azr/Ouc6uzrjOt866zrHOvSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+Is6kzrEgzrTOtc60zr/OvM6tzr3OsSA0RyDOsc+AzrXOvc61z4HOs86/z4DOv865zq7OuM63zrrOsc69Ijwvc3RyaW5nPgpAQCAtMTY2LDEyICsxNjcsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpIM+Dz4XOvc60zrXOtM61zrzOrc69zr8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+Is6Rzr3Osc62zq7PhM63z4POtyDOs865zrEgR1BTIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+Is6hz43OuM68zrnPg863IM+Ezr/PgM6/zrjOtc+Dzq/Osc+CIM68zrUgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4izqTOsSDOsc65z4TOrs68zrHPhM6xIM+Ezr/PgM6/zrjOtc+Dzq/Osc+CIM6tz4fOv8+Fzr0gzrXOvc61z4HOs86/z4DOv865zrfOuM61zq8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiLOlc66zrrOsc64zqzPgc65z4POtyDPjM67z4nOvSDPhM+Jzr0gzrXOuc60zr/PgM6/zrnOrs+DzrXPic69LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiLOoM67zrfPgc6/z4bOv8+Bzq/Otc+CIM61z4bOsc+BzrzOv86zzq7PgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4izpjOsSDOs86vzr3Otc+EzrHOuSDOsc+Fz4TPjM68zrHPhM63IM+AzrXPgc65z4PPhM+Bzr/Phs6uIM+EzrfPgiDOv864z4zOvc63z4IuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiLOlyDOv864z4zOvc63IM6tz4fOtc65IM66zrvOtc65zrTPic64zrXOryDPg861IM6/z4HOuc62z4zOvc+EzrnOvyDPgM+Bzr/Pg86xzr3Osc+Ezr/Ou865z4POvM+MLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLOlyDOv864z4zOvc63IM6tz4fOtc65IM66zrvOtc65zrTPic64zrXOryDPg861IM66zrHPhM6xzrrPjM+Bz4XPhs6/IM+Az4HOv8+DzrHOvc6xz4TOv867zrnPg868z4wuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+Is6Vz4DOuc60z4zPgc+AzrnOvyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJEYXlkcmVhbSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLOm861zrnPhM6/z4XPgc6zzq/OsSDPgM+Ezq7Pg863z4IiPC9zdHJpbmc+CkBAIC0yMDAsOCArMjAyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+Is6Rz4PPjc+BzrzOsc+Ezrcgzr/OuM+Mzr3OtyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+Is6mz4nPhM61zrnOvc+Mz4TOt8+EzrEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4izpHOpc6kzp/OnM6RzqTOlyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiLOn865IM61zrnOtM6/z4DOv865zq7Pg861zrnPgiDOtc68z4bOsc69zq/Ots6/zr3PhM6xzrkgzrXOtM+OIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4izpzOtc+EzrHOss61zq/PhM61IM+DzrUgzrHPhc+Ezq3PgiDOsc69zqwgz4DOrM+DzrEgz4PPhM65zrPOvM6uIM+Dz43Pgc6/zr3PhM6xz4Igz4DPgc6/z4Igz4TOsSDOus6sz4TPiS5cbs6jz43Pgc61z4TOtSDOvs6xzr3OrCDPgM+Bzr/PgiDPhM6xIM66zqzPhM+JIM6zzrnOsSDPhM6xIM+Dz4TOv865z4fOtc6vzrEgzrXOu86tzrPPh86/z4Ugz4PPhc+Dz4TOrs68zrHPhM6/z4IuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4izqPPjc+BzrXPhM61IM6xz4DPjCDPhM63zr0gzqzOus+Bzrcgz4TOt8+CIM6/zrjPjM69zrfPgiDOs865zrEgzr3OsSDOtc68z4bOsc69zq/Pg861z4TOtSDPhM63IM6zz4HOsc68zrzOriI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlX2xvbmciIG1zZ2lkPSI3MTE3NjkyNzk1MTYzNjIwNjI2Ij4izqPPjc+BzrXPhM61IM6xz4DPjCDPhM63zr0gzqzOus+Bzrcgz4TOt8+CIM6/zrjPjM69zrfPgiDOs865zrEgzr3OsSDOtc68z4bOsc69zq/Pg861z4TOtSDPhM63IM6zz4HOsc68zrzOriDPg8+Fz4PPhM6uzrzOsc+Ezr/PgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiLOm861zrnPhM6/z4XPgc6zzq/OsSDOsc69zrHPg8+Ez4HOv8+Gzq7PgiDPh8+Bz47OvM6xz4TOv8+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4izpvOtc65z4TOv8+Fz4HOs86vzrEgzrLOtc67z4TOr8+Jz4POt8+CIM6xzr3PhM6vzrjOtc+DzrfPgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4izpvOtc65z4TOv8+Fz4HOs86vzrEgzrTOuc+Mz4HOuM+Jz4POt8+CIM+Hz4HPjs68zrHPhM6/z4IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+Is6kzr8gzrTOr866z4TPhc6/IM68z4DOv8+BzrXOr1xuzr3OsSDPgM6xz4HOsc66zr/Ou86/z4XOuM61zq/PhM6xzrkiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZW4tckdCL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1lbi1yR0Ivc3RyaW5ncy54bWwKaW5kZXggNjAyNzU1M2YuLjFjMjJjODYgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZW4tckdCL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZW4tckdCL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IkFsd2F5cyBhbGxvdyBmcm9tIHRoaXMgY29tcHV0ZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiJab29tIHRvIGZpbGwgc2NyZWVuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+IlN0cmV0Y2ggdG8gZmlsbCBzY3JlZW4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJDb21wYXRpYmlsaXR5IHpvb20iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4iV2hlbiBhbiBhcHAgd2FzIGRlc2lnbmVkIGZvciBhIHNtYWxsZXIgc2NyZWVuLCBhIHpvb20gY29udHJvbCB3aWxsIGFwcGVhciBieSB0aGUgY2xvY2suIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IlNhdmluZyBzY3JlZW5zaG904oCmIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4iU2F2aW5nIHNjcmVlbnNob3TigKYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+IlNjcmVlbnNob3QgaXMgYmVpbmcgc2F2ZWQuIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IkhvbWUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJNZW51Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iUmVjZW50IGFwcHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJTZWFyY2giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4iQ2FtZXJhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiJTd2l0Y2ggaW5wdXQgbWV0aG9kIGJ1dHRvbi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4iQ29tcGF0aWJpbGl0eSB6b29tIGJ1dHRvbi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+Ilpvb20gc21hbGxlciB0byBsYXJnZXIgc2NyZWVuLiI8L3N0cmluZz4KQEAgLTE1Myw2ICsxNTMsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IkJhdHRlcnkgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiJBZXJvcGxhbmUgTW9kZSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGggPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiJMb2NhdGlvbiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IkFsYXJtIHNldCBmb3IgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiIyRy0zRyBkYXRhIGRpc2FibGVkIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iNEcgZGF0YSBkaXNhYmxlZCI8L3N0cmluZz4KQEAgLTE2NCwxMiArMTY1LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaS1GaSBjb25uZWN0ZWQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IlNlYXJjaGluZyBmb3IgR1BTIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IkxvY2F0aW9uIHNldCBieSBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJMb2NhdGlvbiByZXF1ZXN0cyBhY3RpdmUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiJDbGVhciBhbGwgbm90aWZpY2F0aW9ucy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4iQXBwIGluZm8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IlNjcmVlbiB3aWxsIHJvdGF0ZSBhdXRvbWF0aWNhbGx5LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iU2NyZWVuIGlzIGxvY2tlZCBpbiBsYW5kc2NhcGUgb3JpZW50YXRpb24uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IlNjcmVlbiBpcyBsb2NrZWQgaW4gcG9ydHJhaXQgb3JpZW50YXRpb24uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IkRlc3NlcnQgQ2FzZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJEYXlkcmVhbSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiJBZXJvcGxhbmUgbW9kZSI8L3N0cmluZz4KQEAgLTE5OCw4ICsyMDAsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4iV2lyZWxlc3MgRGlzcGxheSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IkJyaWdodG5lc3MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4iQVVUTyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiJOb3RpZmljYXRpb25zIGFwcGVhciBoZXJlIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4iQWNjZXNzIHRoZW0gYW55IHRpbWUgYnkgc3dpcGluZyBkb3duLlxuU3dpcGUgZG93biBhZ2FpbiBmb3Igc3lzdGVtIGNvbnRyb2xzLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+IlN3aXBlIGVkZ2Ugb2Ygc2NyZWVuIHRvIHJldmVhbCBiYXIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IlN3aXBlIGZyb20gZWRnZSBvZiBzY3JlZW4gdG8gcmV2ZWFsIHN5c3RlbSBiYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4iQ29sb3VyIGludmVyc2lvbiBtb2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4iRW5oYW5jZWQgY29udHJhc3QgbW9kZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4iQ29sb3VyIGNvcnJlY3Rpb24gbW9kZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iTmV0d29yayBtYXlcbmJlIG1vbml0b3JlZCI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1lbi1ySU4tbGFuZC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZW4tcklOLWxhbmQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE3NzNiOAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZW4tcklOLWxhbmQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfcm90YXRpb25fbG9ja2VkIiBtc2dpZD0iNzYwOTY3MzAxMTQzMTU1NjA5MiI+IlNjcmVlbiBpcyBub3cgbG9ja2VkIGluIGxhbmRzY2FwZSBvcmllbnRhdGlvbi4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWMyMmM4NgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZW4tcklOL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjA3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTY0OTM3MzQ0ODUwMDA0NDY2Ij4iU3lzdGVtIFVJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9jbGVhcl9hbGxfYnV0dG9uIiBtc2dpZD0iNzc3NDcyMTM0NDcxNjczMTYwMyI+IkNsZWFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9yZWNlbnRfcmVtb3ZlX2l0ZW1fdGl0bGUiIG1zZ2lkPSI2MDI2Mzk1ODY4MTI5ODUyOTY4Ij4iUmVtb3ZlIGZyb20gbGlzdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9Ijc3OTM2MjQ4NjQ1Mjg4MTg1NjkiPiJBcHAgaW5mbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm9fcmVjZW50X2FwcHMiIG1zZ2lkPSI2NTc2MzkyOTUxMDUzOTk0NjQwIj4iTm8gcmVjZW50IGFwcHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfZGlzbWlzc19yZWNlbnRzIiBtc2dpZD0iNDU3NjA3NjA3NTIyNjU0MDEwNSI+IkRpc21pc3MgcmVjZW50IGFwcHMiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9yZWNlbnRfYXBwcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NTQxNzYwODM4NjU4NDU1NDEiPiIxIHJlY2VudCBhcHAiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjEwNDA3ODQzNTk3OTQ4OTA3NDQiPiIlZCByZWNlbnQgYXBwcyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm9fbm90aWZpY2F0aW9uc190aXRsZSIgbXNnaWQ9IjQ3NTUyNjExNjcxOTM4MzMyMTMiPiJObyBub3RpZmljYXRpb25zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9vbmdvaW5nX2V2ZW50c190aXRsZSIgbXNnaWQ9IjE2ODI1MDQ1MTMzMTY4NzkyMDIiPiJPbmdvaW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9sYXRlc3RfZXZlbnRzX3RpdGxlIiBtc2dpZD0iNjU5NDc2NzQzODU3NzU5MzE3MiI+Ik5vdGlmaWNhdGlvbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd190aXRsZSIgbXNnaWQ9IjI3ODMxMDQ4MDc1NTEyMTE2MzkiPiJDb25uZWN0IGNoYXJnZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19zdWJ0aXRsZSIgbXNnaWQ9IjE3NTIwNDAwNjIwODc4MjkxOTYiPiJUaGUgYmF0dGVyeSBpcyBnZXR0aW5nIGxvdy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19wZXJjZW50X2Zvcm1hdCIgbXNnaWQ9IjEwNzcyNDQ5NDkzMTgyNjE3NjEiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZCUlPC94bGlmZjpnPiByZW1haW5pbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkX2NoYXJnZXIiIG1zZ2lkPSI0NTQ5MTA1OTk2NzQwNTIyNTIzIj4iVVNCIGNoYXJnaW5nIG5vdCBzdXBwb3J0ZWQuXG5Vc2Ugb25seSB0aGUgc3VwcGxpZWQgY2hhcmdlci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd193aHkiIG1zZ2lkPSI3Mjc5MTY5NjA5NTE4Mzg2MzcyIj4iQmF0dGVyeSB1c2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjMwMjM4ODk5MTY2OTkyNzAyMjQiPiJTZXR0aW5ncyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfd2lmaV9idXR0b24iIG1zZ2lkPSIxNzMzOTI4MTUxNjk4MzExOTIzIj4iV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDg3OTg3OTY5ODUwMDk1NTMwMCI+IkFlcm9wbGFuZSBtb2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX3JvdGF0aW9uIiBtc2dpZD0iMzc5MDQ4MjU0MTM1Nzc5ODQyMSI+IkF1dG8tcm90YXRlIHNjcmVlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfbXV0ZV9sYWJlbCIgbXNnaWQ9IjU1NDY4MjU0OTkxNzQyOTM5NiI+Ik1VVEUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUxMTQ1MzYxNDk2MjMyNDY3NCI+IkFVVE8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX25vdGlmaWNhdGlvbnMiIG1zZ2lkPSIzOTcxNDYxNzYyODA5MDUxMzciPiJOb3RpZmljYXRpb25zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmx1ZXRvb3RoX3RldGhlcmVkIiBtc2dpZD0iNzA5NDEwMTYxMjE2MTEzMzI2NyI+IkJsdWV0b290aCB0ZXRoZXJlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaW5wdXRfbWV0aG9kX3NldHRpbmdzX2NvbmZpZ3VyZV9pbnB1dF9tZXRob2RzIiBtc2dpZD0iMzUwNDI5MjQ3MTUxMjMxNzgyNyI+IlNldCB1cCBpbnB1dCBtZXRob2RzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl91c2VfcGh5c2ljYWxfa2V5Ym9hcmQiIG1zZ2lkPSI3NTUxOTAzMDg0NDE2MDU3ODEwIj4iUGh5c2ljYWwga2V5Ym9hcmQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iODM0Njk4MDAxMjcxNTYyMDU3Ij4iQWxsb3cgdGhlIGFwcCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IHRvIGFjY2VzcyB0aGUgVVNCIGRldmljZT8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iNTE3MTc3NTQxMTE3ODg2NTc1MCI+IkFsbG93IHRoZSBhcHAgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiB0byBhY2Nlc3MgdGhlIFVTQiBhY2Nlc3Nvcnk/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjUxNjEyMDUyNTg2MzUyNTMyMDYiPiJPcGVuIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4gd2hlbiB0aGlzIFVTQiBkZXZpY2UgaXMgY29ubmVjdGVkPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSIzODA4OTg0OTMxODMwMjI5ODg4Ij4iT3BlbiA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+IHdoZW4gdGhpcyBVU0IgYWNjZXNzb3J5IGlzIGNvbm5lY3RlZD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3VyaV9wcm9tcHQiIG1zZ2lkPSI1MTM0NTA2MjE0MTM3MzMzNDMiPiJObyBpbnN0YWxsZWQgYXBwcyB3b3JrIHdpdGggdGhpcyBVU0IgYWNjZXNzb3J5LiBMZWFybiBtb3JlIGFib3V0IHRoaXMgYWNjZXNzb3J5IGF0IDx4bGlmZjpnIGlkPSJVUkwiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfdXNiX2FjY2Vzc29yeSIgbXNnaWQ9IjQ5NjYyNjUyNjM0NjUxODEzNzIiPiJVU0IgYWNjZXNzb3J5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfdmlldyIgbXNnaWQ9IjYzMDQ1NjU1NTMyMTgxOTI5OTAiPiJWaWV3Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9kZXZpY2UiIG1zZ2lkPSIxNDUwMjg3NDM3MDE3MzE1OTA2Ij4iVXNlIGJ5IGRlZmF1bHQgZm9yIHRoaXMgVVNCIGRldmljZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfYWNjZXNzb3J5IiBtc2dpZD0iMTIxMDk1NDU3Njk3OTYyMTU5NiI+IlVzZSBieSBkZWZhdWx0IGZvciB0aGlzIFVTQiBhY2Nlc3NvcnkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX3RpdGxlIiBtc2dpZD0iNDUxMzkxODM5MzM4NzE0MTk0OSI+IkFsbG93IFVTQiBkZWJ1Z2dpbmc/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+IlRoZSBjb21wdXRlclwncyBSU0Ega2V5IGZpbmdlcnByaW50IGlzOlxuPHhsaWZmOmcgaWQ9IkZJTkdFUlBSSU5UIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4iQWx3YXlzIGFsbG93IGZyb20gdGhpcyBjb21wdXRlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+Ilpvb20gdG8gZmlsbCBzY3JlZW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iU3RyZXRjaCB0byBmaWxsIHNjcmVlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiJTYXZpbmcgc2NyZWVuc2hvdOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IlNhdmluZyBzY3JlZW5zaG904oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiJTY3JlZW5zaG90IGlzIGJlaW5nIHNhdmVkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2ZWRfdGl0bGUiIG1zZ2lkPSI2NDYxODY1OTYwOTYxNDE0OTYxIj4iU2NyZWVuc2hvdCBjYXB0dXJlZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RleHQiIG1zZ2lkPSIxMTUyODM5NjQ3Njc3NTU4ODE1Ij4iVG91Y2ggdG8gdmlldyB5b3VyIHNjcmVlbnNob3QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGl0bGUiIG1zZ2lkPSI3MDU3ODExMTY3NDY5MjI3NzEiPiJDb3VsZG5cJ3QgY2FwdHVyZSBzY3JlZW5zaG90LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RleHQiIG1zZ2lkPSI4MTM0MDExMjY5NTcyNDE1NDAyIj4iQ291bGRuXCd0IHNhdmUgc2NyZWVuc2hvdC4gU3RvcmFnZSBtYXkgYmUgaW4gdXNlLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9wcmVmZXJlbmNlX3RpdGxlIiBtc2dpZD0iNjU1MTA1MDM3NzM4ODg4Mjc4NyI+IlVTQiBmaWxlIHRyYW5zZmVyIG9wdGlvbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfbXRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjQzMzM1MDQ0MTM1NjMwMjM2MjYiPiJNb3VudCBhcyBhIG1lZGlhIHBsYXllciAoTVRQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9wdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNzUxNzEyNzU0MDMwMTYyNTc1MSI+Ik1vdW50IGFzIGEgY2FtZXJhIChQVFApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbGVyX2NkX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjIzMTI2Njc1Nzg1NjIyMDE1ODMiPiJJbnN0YWxsIEFuZHJvaWQgRmlsZSBUcmFuc2ZlciBhcHBsaWNhdGlvbiBmb3IgTWFjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYWNrIiBtc2dpZD0iNTY3MDExNTM4OTk0NDI5MTIwIj4iQmFjayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiJIb21lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4iTWVudSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IlJlY2VudCBhcHBzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4iU2VhcmNoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+IkNhbWVyYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4iU3dpdGNoIGlucHV0IG1ldGhvZCBidXR0b24uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IkNvbXBhdGliaWxpdHkgem9vbSBidXR0b24uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiJab29tIHNtYWxsZXIgdG8gbGFyZ2VyIHNjcmVlbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9jb25uZWN0ZWQiIG1zZ2lkPSIyNzA3MDI3NjMzMjQyOTgzMzcwIj4iQmx1ZXRvb3RoIGNvbm5lY3RlZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9kaXNjb25uZWN0ZWQiIG1zZ2lkPSI3NDE2NjQ4NjY5OTc2ODcwMTc1Ij4iQmx1ZXRvb3RoIGRpc2Nvbm5lY3RlZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2JhdHRlcnkiIG1zZ2lkPSIzNTgzNDMwMjIzNTI4MjA5NDYiPiJObyBiYXR0ZXJ5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9vbmVfYmFyIiBtc2dpZD0iNzc3NDg4NzcyMTg5MTA1NzUyMyI+IkJhdHRlcnkgb25lIGJhci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfdHdvX2JhcnMiIG1zZ2lkPSI4NTAwNjUwNDM4NzM1MDA5OTczIj4iQmF0dGVyeSB0d28gYmFycy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfdGhyZWVfYmFycyIgbXNnaWQ9IjIzMDI5ODMzMzA4NjUwNDA0NDYiPiJCYXR0ZXJ5IHRocmVlIGJhcnMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X2Z1bGwiIG1zZ2lkPSI4OTA5MTIyNDAxNzIwMTU4NTgyIj4iQmF0dGVyeSBmdWxsLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fcGhvbmUiIG1zZ2lkPSI0ODk0NzA4OTM3MDUyNjExMjgxIj4iTm8gcGhvbmUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9vbmVfYmFyIiBtc2dpZD0iNjg3Njk5Mjc4MTMyNjY0MTE1Ij4iUGhvbmUgb25lIGJhci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3R3b19iYXJzIiBtc2dpZD0iODM4NDkwNTM4MjgwNDgxNTIwMSI+IlBob25lIHR3byBiYXJzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdGhyZWVfYmFycyIgbXNnaWQ9Ijg1MjE5MDQ4NDM5MTk5NzE4ODUiPiJQaG9uZSB0aHJlZSBiYXJzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2NDcxODM0ODY4NTgwNzU3ODk4Ij4iUGhvbmUgc2lnbmFsIGZ1bGwuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19kYXRhIiBtc2dpZD0iNDc5MTk2NjI5NTA5Njg2NzU1NSI+Ik5vIGRhdGEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX29uZV9iYXIiIG1zZ2lkPSIxNDE1NjI1ODMzMjM4MjczNjI4Ij4iRGF0YSBvbmUgYmFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90d29fYmFycyIgbXNnaWQ9IjYxNjYwMTg0OTIzNjA0MzIwOTEiPiJEYXRhIHR3byBiYXJzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90aHJlZV9iYXJzIiBtc2dpZD0iOTE2NzY3MDQ1MjM5NTAzODUyMCI+IkRhdGEgdGhyZWUgYmFycy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzA4Mzg0NjA4MTI0NTE5MzY5Ij4iRGF0YSBzaWduYWwgZnVsbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb2ZmIiBtc2dpZD0iMzE3NzM4MDI5NjY5NzkzMzYyNyI+IldpLUZpIG9mZi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpZmkiIG1zZ2lkPSIxNDI1NDc2NTUxODI3OTI0NDc0Ij4iV2ktRmkgZGlzY29ubmVjdGVkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9vbmVfYmFyIiBtc2dpZD0iNzczNTg5MzE3ODAxMDcyNDM3NyI+IldpLUZpIG9uZSBiYXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3R3b19iYXJzIiBtc2dpZD0iNDk5NDI3NDI1MDQ5NzI2MjQzNCI+IldpLUZpIHR3byBiYXJzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90aHJlZV9iYXJzIiBtc2dpZD0iMzQ5NTc1NTA0NDI3NjU4ODM4NCI+IldpLUZpIHRocmVlIGJhcnMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IldpLUZpIHNpZ25hbCBmdWxsLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2ltYXgiIG1zZ2lkPSI0MzI5MTgwMTI5NzI3NjMwMzY4Ij4iTm8gV2lNQVguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9vbmVfYmFyIiBtc2dpZD0iNDE3MDk5NDI5OTAxMTg2MzY0OCI+IldpTUFYIG9uZSBiYXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90d29fYmFycyIgbXNnaWQ9IjkxNzYyMzY4NTgzMzY1MDIyODgiPiJXaU1BWCB0d28gYmFycy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3RocmVlX2JhcnMiIG1zZ2lkPSI2MTE2NTUxNjM2NzUyMTAzOTI3Ij4iV2lNQVggdGhyZWUgYmFycy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3NpZ25hbF9mdWxsIiBtc2dpZD0iMjc2ODA4OTk4Njc5NTU3OTU1OCI+IldpTUFYIHNpZ25hbCBmdWxsLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fc2lnbmFsIiBtc2dpZD0iNzA2NDY0NTMyMDc4MjU4NTE2NyI+Ik5vIHNpZ25hbC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4iTm90IGNvbm5lY3RlZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3plcm9fYmFycyIgbXNnaWQ9IjM4MDYwNjAyMjQ0NjcwMjc4ODciPiJaZXJvIGJhcnMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9vbmVfYmFyIiBtc2dpZD0iMTY4NTczMDExMzE5MjA4MTg5NSI+Ik9uZSBiYXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90d29fYmFycyIgbXNnaWQ9IjY0MzczNjM2NDgzODUyMDY2NzkiPiJUd28gYmFycy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3RocmVlX2JhcnMiIG1zZ2lkPSIyNjQ4MjQxNDE1MTE5Mzk2NjQ4Ij4iVGhyZWUgYmFycy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NpZ25hbF9mdWxsIiBtc2dpZD0iOTEyMjkyMjg4NjUxOTY3NjgzOSI+IlNpZ25hbCBmdWxsLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vbiIgbXNnaWQ9IjIzODUyNTQ2OTM2MjQzNDUyNjUiPiJPbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb2ZmIiBtc2dpZD0iNjQ3NTUwODE1Nzc4Njg1MzE1NyI+Ik9mZi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfY29ubmVjdGVkIiBtc2dpZD0iODM2NjI1NjY5MzcxOTQ5OTY2NSI+IkNvbm5lY3RlZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9ncHJzIiBtc2dpZD0iMTYwNjQ3NzIyNDQ4Njc0Nzc1MSI+IkdQUlMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8xeCIgbXNnaWQ9Ijk5NDEzMzQ2ODEyMDI0NDAxOCI+IjEgWCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2hzcGEiIG1zZ2lkPSIyMDMyMzI4ODU1NDYyNjQ1MTk4Ij4iSFNQQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzNnIiBtc2dpZD0iODYyODU2MjMwNTAwMzU2ODI2MCI+IjNHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMy41ZyIgbXNnaWQ9Ijg2NjQ4NDU2MDk5ODE2OTIwMDEiPiIzLjVHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fNGciIG1zZ2lkPSI3NzQxMDAwNzUwNjMwMDg5NjEyIj4iNEciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9sdGUiIG1zZ2lkPSI1NDEzNDY4ODA4NjM3NTQwNjU4Ij4iTFRFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fY2RtYSIgbXNnaWQ9IjYxMzI2NDgxOTM5Nzg4MjMwMjMiPiJDRE1BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fcm9hbWluZyIgbXNnaWQ9IjU5NzczNjIzMzM0NjY1NTYwOTQiPiJSb2FtaW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZWRnZSIgbXNnaWQ9IjQ0Nzc0NTcwNTE2MzE5NzkyNzgiPiJFZGdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fd2lmaSIgbXNnaWQ9IjIzMjQ0OTY3NTY1OTA2NDUyMjEiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fc2ltIiBtc2dpZD0iODI3NDAxNzExODQ3MjQ1NTE1NSI+Ik5vIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF90ZXRoZXIiIG1zZ2lkPSI0MTAyNzg0NDk4MTQwMjcxOTY5Ij4iQmx1ZXRvb3RoIHRldGhlcmluZyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYWlycGxhbmVfbW9kZSIgbXNnaWQ9IjgzNDc0ODk5OTc5MDc2MzA5MiI+IkFlcm9wbGFuZSBtb2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X2xldmVsIiBtc2dpZD0iNzQ1MTQ3NDE4NzExMzM3MTk2NSI+IkJhdHRlcnkgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHBlciBjZW50LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNzk5NTgzOTExMjMxODkzMzgwIj4iU3lzdGVtIHNldHRpbmdzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25zX2J1dHRvbiIgbXNnaWQ9IjQ0OTgwMDAzNjk3Nzk0MjE4OTIiPiJOb3RpZmljYXRpb25zLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVtb3ZlX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjM2MDMwOTk1MTQ5MDIxODIzNTAiPiJDbGVhciBub3RpZmljYXRpb24uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfZW5hYmxlZCIgbXNnaWQ9IjM1MTE0Njk0OTkyNDAxMjMwMTkiPiJHUFMgZW5hYmxlZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19hY3F1aXJpbmciIG1zZ2lkPSI4OTU5MzMzMzUxMDU4OTY3MTU4Ij4iR1BTIGFjcXVpcmluZy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3R0eV9lbmFibGVkIiBtc2dpZD0iNDYxMzIwMDM2NTM3OTQyNjU2MSI+IlRlbGVUeXBld3JpdGVyIGVuYWJsZWQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfdmlicmF0ZSIgbXNnaWQ9IjY2NjU4NTM2MzM2NDE1NTA1NSI+IlJpbmdlciB2aWJyYXRlLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3NpbGVudCIgbXNnaWQ9IjkwNjEyNDMzMDc5MzkxMzUzODMiPiJSaW5nZXIgc2lsZW50LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50c19pdGVtX2Rpc21pc3NlZCIgbXNnaWQ9IjY4MDM1NzQ5MzUwODQ4NjcwNzAiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4gZGlzbWlzc2VkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uX2Rpc21pc3NlZCIgbXNnaWQ9Ijg1NDIxMTM4NzE4NjMwNjkyNyI+Ik5vdGlmaWNhdGlvbiBkaXNtaXNzZWQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX25vdGlmaWNhdGlvbl9zaGFkZSIgbXNnaWQ9IjQ2OTAyNzQ4NDQ0NDc1MDQyMDgiPiJOb3RpZmljYXRpb24gc2hhZGUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3F1aWNrX3NldHRpbmdzIiBtc2dpZD0iNjE4NjM3ODQxMTU4MjQzNzA0NiI+IlF1aWNrIHNldHRpbmdzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19yZWNlbnRfYXBwcyIgbXNnaWQ9IjkwMTQwMzI5MTY0MTA1OTAwMjciPiJSZWNlbnQgYXBwcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfdXNlciIgbXNnaWQ9IjExMDQ4NDY2OTk4Njk0NzY4NTUiPiJVc2VyIDx4bGlmZjpnIGlkPSJVU0VSIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc193aWZpIiBtc2dpZD0iNjA5OTc4MTAzMTY2OTcyODcwOSI+Ijx4bGlmZjpnIGlkPSJTSUdOQUwiPiUxJHM8L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTIkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX21vYmlsZSIgbXNnaWQ9IjQ4NzY4MDY1NjQwODYyNDEzNDEiPiJNb2JpbGUgPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJUWVBFIj4lMiRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUzJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJCYXR0ZXJ5IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iQWVyb3BsYW5lIE1vZGUgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4iTG9jYXRpb24gPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiJBbGFybSBzZXQgZm9yIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iMkctM0cgZGF0YSBkaXNhYmxlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHIGRhdGEgZGlzYWJsZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19tb2JpbGVfdGl0bGUiIG1zZ2lkPSIxMDQ2MDQ3MjQ4ODQ0ODIxMjAyIj4iTW9iaWxlIGRhdGEgZGlzYWJsZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjIwODY4MTUzMDQ4NTg5NjQ5NTQiPiJEYXRhIGRpc2FibGVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2ciIG1zZ2lkPSIzODUzMTE3MjY5MDUxODA2MjgwIj4iWW91XCd2ZSByZWFjaGVkIHRoZSBzcGVjaWZpZWQgZGF0YSB1c2FnZSBsaW1pdC5cblxuSWYgeW91IHJlLWVuYWJsZSBkYXRhLCB5b3UgbWF5IGJlIGNoYXJnZWQgYnkgdGhlIG9wZXJhdG9yLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX2VuYWJsZSIgbXNnaWQ9Ijc3Mjk3NzIwMzkyMDg2NjQ2MDYiPiJSZWVuYWJsZSBkYXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfZGlzY29ubmVjdGVkIiBtc2dpZD0iMTk0MDIzMTUyMTI3NDE0Nzc3MSI+Ik5vIEludGVybmV0IGNvbm5lY3Rpb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaS1GaSBjb25uZWN0ZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IlNlYXJjaGluZyBmb3IgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IkxvY2F0aW9uIHNldCBieSBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJMb2NhdGlvbiByZXF1ZXN0cyBhY3RpdmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiJDbGVhciBhbGwgbm90aWZpY2F0aW9ucy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4iQXBwIGluZm8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IlNjcmVlbiB3aWxsIHJvdGF0ZSBhdXRvbWF0aWNhbGx5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iU2NyZWVuIGlzIGxvY2tlZCBpbiBsYW5kc2NhcGUgb3JpZW50YXRpb24uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IlNjcmVlbiBpcyBsb2NrZWQgaW4gcG9ydHJhaXQgb3JpZW50YXRpb24uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IkRlc3NlcnQgQ2FzZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJEYXlkcmVhbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiJBZXJvcGxhbmUgbW9kZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JhdHRlcnlfY2hhcmdpbmdfbGFiZWwiIG1zZ2lkPSI0OTAwNzQ3NzQ0NjUzMDkyMDkiPiJDaGFyZ2luZywgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JhdHRlcnlfY2hhcmdlZF9sYWJlbCIgbXNnaWQ9Ijg4NjU0MTMwNzk0MTQyNDYwODEiPiJDaGFyZ2VkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX2xhYmVsIiBtc2dpZD0iNjMwNDE5MDI4NTE3MDcyMTQwMSI+IkJsdWV0b290aCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9tdWx0aXBsZV9kZXZpY2VzX2xhYmVsIiBtc2dpZD0iMzkxMjI0NTU2NTYxMzY4NDczNSI+IkJsdWV0b290aCAoPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IERldmljZXMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiJCbHVldG9vdGggT2ZmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjY5NjgzNzIyOTcwMTg3NTU4MTUiPiJCcmlnaHRuZXNzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fdW5sb2NrZWRfbGFiZWwiIG1zZ2lkPSIzMzYwNTQ5MzAzNjI1ODA1ODQiPiJBdXRvIFJvdGF0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX2xvY2tlZF9sYWJlbCIgbXNnaWQ9IjgwNTg2NDY0NDcyNDI1NjU0ODYiPiJSb3RhdGlvbiBMb2NrZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4iSW5wdXQgTWV0aG9kIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwiIG1zZ2lkPSI1MDExMzI3MDQ4NzQ4NzYyMjU3Ij4iTG9jYXRpb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4iTG9jYXRpb24gT2ZmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbWVkaWFfZGV2aWNlX2xhYmVsIiBtc2dpZD0iMTMwMjkwNjgzNjM3MjYwMzc2MiI+Ik1lZGlhIGRldmljZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4iRW1lcmdlbmN5IENhbGxzIE9ubHkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19zZXR0aW5nc19sYWJlbCIgbXNnaWQ9IjUzMjY1NTY1OTI1NzgwNjU0MDEiPiJTZXR0aW5ncyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3RpbWVfbGFiZWwiIG1zZ2lkPSI0NjM1OTY5MTgyMjM5NzM2NDA4Ij4iVGltZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3VzZXJfbGFiZWwiIG1zZ2lkPSI1MjM4OTk1NjMyMTMwODk3ODQwIj4iTWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2xhYmVsIiBtc2dpZD0iOTEzNTM0NDcwNDg5OTU0NjA0MSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNzE3MTkwNDg0NTM0NTU3MzQzMSI+Ik5vdCBDb25uZWN0ZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vX25ldHdvcmsiIG1zZ2lkPSIyMjIxOTkzMDc3MjIwODU2Mzc2Ij4iTm8gTmV0d29yayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfb2ZmX2xhYmVsIiBtc2dpZD0iNzU1ODc3ODEwMDg0Mzg4NTg2NCI+IldpLUZpIE9mZiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9sYWJlbCIgbXNnaWQ9IjY4OTM1OTI5NjQ0NjM2MjQzMzMiPiJXaS1GaSBEaXNwbGF5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4iV2lyZWxlc3MgRGlzcGxheSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IkJyaWdodG5lc3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4iQVVUTyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiJDb2xvdXIgaW52ZXJzaW9uIG1vZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiJFbmhhbmNlZCBjb250cmFzdCBtb2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiJDb2xvdXIgY29ycmVjdGlvbiBtb2RlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiJOZXR3b3JrIG1heVxuYmUgbW9uaXRvcmVkIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWVzLXJVUy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZXMtclVTL3N0cmluZ3MueG1sCmluZGV4IDYyZjZjMjAuLjg2YTZiOTYgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZXMtclVTL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZXMtclVTL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IlBlcm1pdGlyIHNpZW1wcmUgZGVzZGUgZXN0YSBjb21wdXRhZG9yYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+Ilpvb20gcGFyYSBvY3VwYXIgbGEgcGFudGFsbGEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iRXN0aXJhciBwLyBvY3VwYXIgbGEgcGFudGFsbGEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJab29tIGRlIGNvbXBhdGliaWxpZGFkIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+IkN1YW5kbyB1bmEgYXBsaWNhY2nDs24gZnVlIGRpc2XDsWFkYSBwYXJhIHVuYSBwYW50YWxsYSBtw6FzIHBlcXVlw7FhLCBhcGFyZWNlIHVuIGNvbnRyb2wgZGUgem9vbSBqdW50byBhbCByZWxvai4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4iR3VhcmRhbmRvIGNhcHR1cmEgZGUgcGFudGFsbGEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiJHdWFyZGFuZG8gbGEgY2FwdHVyYSBkZSBwYW50YWxsYS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4iTGEgY2FwdHVyYSBkZSBwYW50YWxsYSBzZSBlc3TDoSBndWFyZGFuZG8uIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IlDDoWdpbmEgcHJpbmNpcGFsIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4iTWVuw7oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiJBcGxpY2FjaW9uZXMgcmVjaWVudGVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4iQnVzY2FyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+IkPDoW1hcmEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IkJvdMOzbiBDYW1iaWFyIG3DqXRvZG8gZGUgZW50cmFkYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiJCb3TDs24gZGUgem9vbSBkZSBjb21wYXRpYmlsaWRhZCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4iWm9vbSBkZSBwYW50YWxsYSBtw6FzIHBlcXVlw7FhIGEgbcOhcyBncmFuZGUiPC9zdHJpbmc+CkBAIC0xNTUsNiArMTU1LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJCYXRlcsOtYSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iTW9kbyBhdmnDs24gPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGggPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IlViaWNhY2nDs24gPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IkFsYXJtYTogPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IkRhdG9zIGRlIDJHLTNHIGluaGFiaWxpdGFkb3MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiJEYXRvcyBkZSA0RyBpbmhhYmlsaXRhZG9zIjwvc3RyaW5nPgpAQCAtMTY2LDEyICsxNjcsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpIGNvbmVjdGFkbyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iQnVzY2FuZG8gR1BTIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IkxhIHViaWNhY2nDs24gc2UgZXN0YWJsZWNpw7MgcG9yIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IlNvbGljaXR1ZGVzIGRlIHViaWNhY2nDs24gYWN0aXZhcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+IkVsaW1pbmFyIHRvZGFzIGxhcyBub3RpZmljYWNpb25lcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiJJbmZvcm1hY2nDs24gZGUgbGEgYXBsaWNhY2nDs24iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IkxhIHBhbnRhbGxhIGdpcmFyw6EgYXV0b23DoXRpY2FtZW50ZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IkxhIHBhbnRhbGxhIGVzdMOhIGJsb3F1ZWFkYSBlbiBtb2RvIGhvcml6b250YWwuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IkxhIHBhbnRhbGxhIGVzdMOhIGJsb3F1ZWFkYSBlbiBtb2RvIHZlcnRpY2FsLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiJDYWphIHBhcmEgcG9zdHJlcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJBY3RpdmFyIHByb3RlY3RvciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiJNb2RvIGF2acOzbiI8L3N0cmluZz4KQEAgLTE4NCwxMCArMTg2LDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX3VubG9ja2VkX2xhYmVsIiBtc2dpZD0iMzM2MDU0OTMwMzYyNTgwNTg0Ij4iR2lyYXIgYXV0b23DoXRpY2FtZW50ZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX2xvY2tlZF9sYWJlbCIgbXNnaWQ9IjgwNTg2NDY0NDcyNDI1NjU0ODYiPiJSb3RhY2nDs24gYmxvcXVlYWRhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+Ik3DqXRvZG8gZGUgaW50cm9kdWNjacOzbiI8L3N0cmluZz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCAoNTAxMTMyNzA0ODc0ODc2MjI1NykgLS0+Ci0gICAgPHNraXAgLz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwgKDc0NjQ1NDQwODY1MDczMzE0NTkpIC0tPgotICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCIgbXNnaWQ9IjUwMTEzMjcwNDg3NDg3NjIyNTciPiJVYmljYWNpw7NuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsIiBtc2dpZD0iNzQ2NDU0NDA4NjUwNzMzMTQ1OSI+IlViaWNhY2nDs24gZGVzYWN0aXZhZGEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4iRGlzcG9zaXRpdm8gbXVsdGltZWRpYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4iU29sbyBlbWVyZ2VuY2lhIjwvc3RyaW5nPgpAQCAtMjAyLDggKzIwMiw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJQYW50YWxsYSBpbmFsw6FtYnJpY2EiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiJCcmlsbG8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4iQVVUT03DgVRJQ08iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4iTGFzIG5vdGlmaWNhY2lvbmVzIGFwYXJlY2VuIGFxdcOtLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+IkRlc2xpemEgZWwgZGVkbyBoYWNpYSBhYmFqbyBwYXJhIGFjY2VkZXIgYWwgY29udGVuaWRvLlxuVnVlbHZlIGEgZGVzbGl6YXIgZWwgZGVkbyBoYWNpYSBhYmFqbyBwYXJhIGFjY2VkZXIgYSBsb3MgY29udHJvbGVzIGRlbCBzaXN0ZW1hLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+IkRlc2xpemEgZWwgZGVkbyBkZXNkZSBlbCBib3JkZSBkZSBsYSBwYW50YWxsYSBwYXJhIG1vc3RyYXIgbGEgYmFycmEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiJEZXNsaXphIGVsIGRlZG8gZGVzZGUgZWwgYm9yZGUgZGUgbGEgcGFudGFsbGEgcGFyYSBtb3N0cmFyIGxhIGJhcnJhIGRlbCBzaXN0ZW1hLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiJNb2RvIGRlIGludmVyc2nDs24gZGUgY29sb3IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiJNb2RvIGRlIGNvbnRyYXN0ZSBtZWpvcmFkbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4iTW9kbyBkZSBjb3JyZWNjacOzbiBkZSBjb2xvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iRXMgcG9zaWJsZSBxdWUgbGEgcmVkXG5lc3TDqSBzdXBlcnZpc2FkYS4iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZXMvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWVzL3N0cmluZ3MueG1sCmluZGV4IDY0YzNjYWIuLjIwMGIwNjYgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZXMvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1lcy9zdHJpbmdzLnhtbApAQCAtNjEsOCArNjEsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiJQZXJtaXRpciBzaWVtcHJlIGRlc2RlIGVzdGUgb3JkZW5hZG9yIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4iWm9vbSBwYXJhIGFqdXN0YXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iRXhwYW5kaXIgcGFyYSBhanVzdGFyIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4iWm9vbSBkZSBjb21wYXRpYmlsaWRhZCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiJTaSBsYSBhcGxpY2FjacOzbiBzZSBoYSBkaXNlw7FhZG8gcGFyYSB1bmEgcGFudGFsbGEgbcOhcyBwZXF1ZcOxYSwgYXBhcmVjZXLDoSB1biBjb250cm9sIGRlIHpvb20ganVudG8gYWwgcmVsb2ouIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+Ikd1YXJkYW5kbyBjYXB0dXJhLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4iR3VhcmRhbmRvIGNhcHR1cmEuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+IkxhIGNhcHR1cmEgZGUgcGFudGFsbGEgc2UgZXN0w6EgZ3VhcmRhbmRvLiI8L3N0cmluZz4KQEAgLTc4LDYgKzc2LDggQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiJJbmljaW8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJNZW7DuiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IkFwbGljYWNpb25lcyByZWNpZW50ZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJCdXNjYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4iQ8OhbWFyYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4iQm90w7NuIENhbWJpYXIgbcOpdG9kbyBkZSBlbnRyYWRhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IkJvdMOzbiBkZSB6b29tIGRlIGNvbXBhdGliaWxpZGFkIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiJab29tIGRlIHBhbnRhbGxhIG3DoXMgcGVxdWXDsWEgYSBtw6FzIGdyYW5kZSI8L3N0cmluZz4KQEAgLTE1Myw2ICsxNTMsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IkJhdGVyw61hIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiJNb2RvIGF2acOzbiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4iVWJpY2FjacOzbiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IkxhIGFsYXJtYSBzb25hcsOhIGEgbGEocykgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiJEYXRvcyAyRy0zRyBpbmhhYmlsaXRhZG9zIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iRGF0b3MgNEcgaW5oYWJpbGl0YWRvcyI8L3N0cmluZz4KQEAgLTE2NCwxMiArMTY1LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJDb24gY29uZXhpw7NuIFdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJCdXNjYW5kbyBHUFMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4iVWJpY2FjacOzbiBkZWZpbmlkYSBwb3IgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4iU29saWNpdHVkZXMgZGUgdWJpY2FjacOzbiBhY3RpdmFzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iQm9ycmFyIHRvZGFzIGxhcyBub3RpZmljYWNpb25lcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiJJbmZvcm1hY2nDs24gZGUgbGEgYXBsaWNhY2nDs24iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IkxhIHBhbnRhbGxhIGdpcmFyw6EgYXV0b23DoXRpY2FtZW50ZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IkxhIHBhbnRhbGxhIGVzdMOhIGJsb3F1ZWFkYSBlbiBtb2RvIGhvcml6b250YWwuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IkxhIHBhbnRhbGxhIGVzdMOhIGJsb3F1ZWFkYSBlbiBtb2RvIHZlcnRpY2FsLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiJDYWphIHBhcmEgcG9zdHJlcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJTYWx2YXBhbnRhbGxhcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiJNb2RvIGF2acOzbiI8L3N0cmluZz4KQEAgLTE5OCw4ICsyMDAsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4iUGFudGFsbGEgaW5hbMOhbWJyaWNhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4iQnJpbGxvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IkFVVE8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4iTGFzIG5vdGlmaWNhY2lvbmVzIGFwYXJlY2VuIGFxdcOtIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4iRGVzbGl6YSBlbCBkZWRvIGhhY2lhIGFiYWpvIHBhcmEgYWNjZWRlciBhbCBjb250ZW5pZG8uXG5WdWVsdmUgYSBkZXNsaXphciBlbCBkZWRvIGhhY2lhIGFiYWpvIHBhcmEgYWNjZWRlciBhIGxvcyBjb250cm9sZXMgZGVsIHNpc3RlbWEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4iRGVzbGl6YSBlbCBib3JkZSBkZSBsYSBwYW50YWxsYSBwYXJhIG1vc3RyYXIgbGEgYmFycmEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IkRlc2xpemEgZWwgYm9yZGUgZGUgbGEgcGFudGFsbGEgcGFyYSBtb3N0cmFyIGxhIGJhcnJhIGRlbCBzaXN0ZW1hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+Ik1vZG8gZGUgaW52ZXJzacOzbiBkZSBjb2xvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+Ik1vZG8gZGUgY29udHJhc3RlIG1lam9yYWRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiJNb2RvIGRlIGNvcnJlY2Npw7NuIGRlIGNvbG9yIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiJMYSByZWQgc2VcbnB1ZWRlIHN1cGVydmlzYXIiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZXQtckVFLWxhbmQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWV0LXJFRS1sYW5kL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3YjBjZTEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWV0LXJFRS1sYW5kL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3JvdGF0aW9uX2xvY2tlZCIgbXNnaWQ9Ijc2MDk2NzMwMTE0MzE1NTYwOTIiPiJFa3JhYW4gb24gbsO8w7xkIGx1a3VzdGF0dWQgaG9yaXNvbnRhYWxhc2VuZGlzc2UuIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlZmViOWQKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIwNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAwOSwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzE2NDkzNzM0NDg1MDAwNDQ2NiI+IlPDvHN0ZWVtaSBVSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfY2xlYXJfYWxsX2J1dHRvbiIgbXNnaWQ9Ijc3NzQ3MjEzNDQ3MTY3MzE2MDMiPiJLdXN0dXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9yZWNlbnRfcmVtb3ZlX2l0ZW1fdGl0bGUiIG1zZ2lkPSI2MDI2Mzk1ODY4MTI5ODUyOTY4Ij4iTG9lbmRpc3QgZWVtYWxkYW1pbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSI3NzkzNjI0ODY0NTI4ODE4NTY5Ij4iUmFrZW5kdXNlIHRlYXZlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19yZWNlbnRfYXBwcyIgbXNnaWQ9IjY1NzYzOTI5NTEwNTM5OTQ2NDAiPiJVdXNpIHJha2VuZHVzaSBwb2xlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X2Rpc21pc3NfcmVjZW50cyIgbXNnaWQ9IjQ1NzYwNzYwNzUyMjY1NDAxMDUiPiJMb29idSBoaWxqdXRpc3Rlc3QgcmFrZW5kdXN0ZXN0Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfcmVjZW50X2FwcHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODU0MTc2MDgzODY1ODQ1NTQxIj4iMSBoaWxqdXRpbmUgcmFrZW5kdXMiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjEwNDA3ODQzNTk3OTQ4OTA3NDQiPiIlZCBoaWxqdXRpc3QgcmFrZW5kdXN0IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19ub3RpZmljYXRpb25zX3RpdGxlIiBtc2dpZD0iNDc1NTI2MTE2NzE5MzgzMzIxMyI+IlRlYXRpc2kgcG9sZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfb25nb2luZ19ldmVudHNfdGl0bGUiIG1zZ2lkPSIxNjgyNTA0NTEzMzE2ODc5MjAyIj4iSsOkdGt1diI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbGF0ZXN0X2V2ZW50c190aXRsZSIgbXNnaWQ9IjY1OTQ3Njc0Mzg1Nzc1OTMxNzIiPiJUZWFkaXN0dXNlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3RpdGxlIiBtc2dpZD0iMjc4MzEwNDgwNzU1MTIxMTYzOSI+IsOcaGVuZGFnZSBsYWFkaWphIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfc3VidGl0bGUiIG1zZ2lkPSIxNzUyMDQwMDYyMDg3ODI5MTk2Ij4iQWt1IGhha2thYiB0w7xoamVuZW1hLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3BlcmNlbnRfZm9ybWF0IiBtc2dpZD0iMTA3NzI0NDk0OTMxODI2MTc2MSI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkJSU8L3hsaWZmOmc+IG9uIGFsbGVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZF9jaGFyZ2VyIiBtc2dpZD0iNDU0OTEwNTk5Njc0MDUyMjUyMyI+IlVTQiBsYWFkaW1pc3QgZWkgdG9ldGF0YS5cbkthc3V0YWdlIGFpbnVsdCB0b290amEgbGFhZGlqYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd193aHkiIG1zZ2lkPSI3Mjc5MTY5NjA5NTE4Mzg2MzcyIj4iQWt1a2FzdXR1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iMzAyMzg4OTkxNjY5OTI3MDIyNCI+IlNlYWRlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfd2lmaV9idXR0b24iIG1zZ2lkPSIxNzMzOTI4MTUxNjk4MzExOTIzIj4iV2lGaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0ODc5ODc5Njk4NTAwOTU1MzAwIj4iTGVubnVyZcW+aWltIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX3JvdGF0aW9uIiBtc2dpZD0iMzc5MDQ4MjU0MTM1Nzc5ODQyMSI+IlDDtsO2cmEgZWtyYWFuaSBhdXRvbWFhdHNlbHQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX211dGVfbGFiZWwiIG1zZ2lkPSI1NTQ2ODI1NDk5MTc0MjkzOTYiPiJTVU1NVVRBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MTE0NTM2MTQ5NjIzMjQ2NzQiPiJBVVRPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19ub3RpZmljYXRpb25zIiBtc2dpZD0iMzk3MTQ2MTc2MjgwOTA1MTM3Ij4iVGVhdGlzZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4iQmx1ZXRvb3RoIG9uIGphZ2F0dWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2lucHV0X21ldGhvZF9zZXR0aW5nc19jb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjM1MDQyOTI0NzE1MTIzMTc4MjciPiJTZWFkaXN0YSBzaXNlc3R1c21lZXRvZGVpZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfdXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNzU1MTkwMzA4NDQxNjA1NzgxMCI+IkbDvMO8c2lsaW5lIGtsYXZpYXR1dXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iODM0Njk4MDAxMjcxNTYyMDU3Ij4iS2FzIGx1YmF0ZSByYWtlbmR1c2VsIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4gVVNCLXNlYWRtZWxlIGp1dXJkZSBww6TDpHNlZGE/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjUxNzE3NzU0MTExNzg4NjU3NTAiPiJLYXMgbHViYXRlIHJha2VuZHVzZWwgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiBVU0Itc2VhZG1lbGUganV1cmRlIHDDpMOkc2VkYT8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iNTE2MTIwNTI1ODYzNTI1MzIwNiI+IkthcyBhdmFkYSA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+LCBrdWkgc2VlIFVTQi1zZWFkZSBvbiDDvGhlbmRhdHVkPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSIzODA4OTg0OTMxODMwMjI5ODg4Ij4iS2FzIGF2YWRhIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4sIGt1aSBVU0ItbGlzYXNlYWRlIG9uIMO8aGVuZGF0dWQ/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV91cmlfcHJvbXB0IiBtc2dpZD0iNTEzNDUwNjIxNDEzNzMzMzQzIj4iSW5zdC4gcmFrLiBlaSB0w7bDtnRhIHNlbGxlIFVTQi1zZWFkbWVnYS4gTGlzYXRlYXZldCBsaXNhc2VhZG1lIGtvaHRhIHZ0IHNpaXQ6IDx4bGlmZjpnIGlkPSJVUkwiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfdXNiX2FjY2Vzc29yeSIgbXNnaWQ9IjQ5NjYyNjUyNjM0NjUxODEzNzIiPiJVU0ItbGlzYXNlYWRlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfdmlldyIgbXNnaWQ9IjYzMDQ1NjU1NTMyMTgxOTI5OTAiPiJLdXZhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9kZXZpY2UiIG1zZ2lkPSIxNDUwMjg3NDM3MDE3MzE1OTA2Ij4iS2FzdXRhIHZhaWtpbWlzaSBzZWxsZSBVU0Itc2VhZG1lIGphb2tzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9hY2Nlc3NvcnkiIG1zZ2lkPSIxMjEwOTU0NTc2OTc5NjIxNTk2Ij4iVmFpa2ltaXNpIGthc3V0YSBzZWRhIFVTQi1saXNhc2VhZGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ190aXRsZSIgbXNnaWQ9IjQ1MTM5MTgzOTMzODcxNDE5NDkiPiJLYXMgbHViYW4gVVNCIHNpbHVtaXNlPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfbWVzc2FnZSIgbXNnaWQ9IjIyMjAxNDM4NTU5MTIzNzY0OTYiPiJBcnZ1dGkgUlNBLXbDtXRtZSBzw7VybWVqw6RsZzpcbjx4bGlmZjpnIGlkPSJGSU5HRVJQUklOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+Ikx1YmEgYWxhdGkgc2VsbGVzdCBhcnZ1dGlzdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IlN1dW1pIGVrcmFhbmkgdMOkaXRtaXNla3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iVmVuaXRhIGVrcmFhbmkgdMOkaXRtaXNla3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4iS3V2YXTDtW1taXNlIHNhbHZlc3RhbWluZSAuLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiJLdXZhdMO1bW1pc2Ugc2FsdmVzdGFtaW5lIC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4iS3V2YXTDtW1taXN0IHNhbHZlc3RhdGFrc2UuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90aXRsZSIgbXNnaWQ9IjY0NjE4NjU5NjA5NjE0MTQ5NjEiPiJFa3JhYW5pcGlsdCBvbiBqw6TDpGR2dXN0YXR1ZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RleHQiIG1zZ2lkPSIxMTUyODM5NjQ3Njc3NTU4ODE1Ij4iUHV1ZHV0YWdlIGt1dmF0w7VtbWlzZSB2YWF0YW1pc2Vrcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X2ZhaWxlZF90aXRsZSIgbXNnaWQ9IjcwNTc4MTExNjc0NjkyMjc3MSI+Ikt1dmF0w7VtbWlzdCBlaSBzYWFudWQgasOkw6RkdnVzdGFkYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X2ZhaWxlZF90ZXh0IiBtc2dpZD0iODEzNDAxMTI2OTU3MjQxNTQwMiI+Ikt1dmF0w7VtbWlzdCBlaSBzYWEgc2FsdmVzdGFkYS4gTcOkbHVzZWFkZSB2w7VpYiBvbGxhIGthc3V0dXNlcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHJlZmVyZW5jZV90aXRsZSIgbXNnaWQ9IjY1NTEwNTAzNzczODg4ODI3ODciPiJVU0ItZmFpbGllZGFzdHVzZSB2YWxpa3VkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX210cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI0MzMzNTA0NDEzNTYzMDIzNjI2Ij4iUGFpZ2FsZGEgbWVlZGl1bWltw6RuZ2lqYW5hIChNVFApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX3B0cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI3NTE3MTI3NTQwMzAxNjI1NzUxIj4iUGFpZ2FsZGEga2FhbWVyYW5hIChQVFApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbGVyX2NkX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjIzMTI2Njc1Nzg1NjIyMDE1ODMiPiJBbmRyb2lkIEZpbGUgVHJhbnNmZXJpIGluc3RhbGxpbWluZSBNYWNpbGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhY2siIG1zZ2lkPSI1NjcwMTE1Mzg5OTQ0MjkxMjAiPiJUYWdhc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4iS29kdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+Ik1lbsO8w7wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiJIaWxqdXRpc2VkIHJha2VuZHVzZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJPdHNpbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4iS2FhbWVyYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4iU2lzZXN0dXNtZWV0b2RpIHZhaGV0YW1pc2UgbnVwcC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4iU29iaXZ1c3N1dW1pIG51cHAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiJTdXVtaSBzdXVyZW1hbGUgZWtyYWFuaWxlIHbDpGhlbS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9jb25uZWN0ZWQiIG1zZ2lkPSIyNzA3MDI3NjMzMjQyOTgzMzcwIj4iQmx1ZXRvb3RoIG9uIMO8aGVuZGF0dWQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfZGlzY29ubmVjdGVkIiBtc2dpZD0iNzQxNjY0ODY2OTk3Njg3MDE3NSI+IkJsdWV0b290aGkgw7xoZW5kdXMga2F0a2VzdGF0dWQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19iYXR0ZXJ5IiBtc2dpZD0iMzU4MzQzMDIyMzUyODIwOTQ2Ij4iQWt1IHB1dWR1Yi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfb25lX2JhciIgbXNnaWQ9Ijc3NzQ4ODc3MjE4OTEwNTc1MjMiPiJBa3U6IMO8a3MgcHVsay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfdHdvX2JhcnMiIG1zZ2lkPSI4NTAwNjUwNDM4NzM1MDA5OTczIj4iQWt1OiBrYWtzIHB1bGthLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90aHJlZV9iYXJzIiBtc2dpZD0iMjMwMjk4MzMzMDg2NTA0MDQ0NiI+IkFrdToga29sbSBwdWxrYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfZnVsbCIgbXNnaWQ9Ijg5MDkxMjI0MDE3MjAxNTg1ODIiPiJBa3UgdMOkaXMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19waG9uZSIgbXNnaWQ9IjQ4OTQ3MDg5MzcwNTI2MTEyODEiPiJUZWxlZm9uaXNpZ25hYWwgcHV1ZHViIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9vbmVfYmFyIiBtc2dpZD0iNjg3Njk5Mjc4MTMyNjY0MTE1Ij4iVGVsZWZvbmlzaWduYWFsOiDDvGtzIHB1bGsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV90d29fYmFycyIgbXNnaWQ9IjgzODQ5MDUzODI4MDQ4MTUyMDEiPiJUZWxlZm9uaXNpZ25hYWw6IGtha3MgcHVsa2EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV90aHJlZV9iYXJzIiBtc2dpZD0iODUyMTkwNDg0MzkxOTk3MTg4NSI+IlRlbGVmb25pc2lnbmFhbDoga29sbSBwdWxrYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjQ3MTgzNDg2ODU4MDc1Nzg5OCI+IlRlbGVmb25pc2lnbmFhbCBvbiB0dWdldi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2RhdGEiIG1zZ2lkPSI0NzkxOTY2Mjk1MDk2ODY3NTU1Ij4iQW5kbWVkIHB1dWR1dmFkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9vbmVfYmFyIiBtc2dpZD0iMTQxNTYyNTgzMzIzODI3MzYyOCI+IkFuZG1lc2lnbmFhbDogw7xrcyBwdWxrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90d29fYmFycyIgbXNnaWQ9IjYxNjYwMTg0OTIzNjA0MzIwOTEiPiJBbmRtZXNpZGU6IGtha3MgcHVsa2EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4iQW5kbWVzaWRlOiBrb2xtIHB1bGthLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3MDgzODQ2MDgxMjQ1MTkzNjkiPiJBbmRtZXNpZ25hYWwgb24gdHVnZXYuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29mZiIgbXNnaWQ9IjMxNzczODAyOTY2OTc5MzM2MjciPiJXaWZpIG9uIHbDpGxqYXMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub193aWZpIiBtc2dpZD0iMTQyNTQ3NjU1MTgyNzkyNDQ3NCI+IldpZmktw7xoZW5kdXMgb24ga2F0a2VzdGF0dWQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29uZV9iYXIiIG1zZ2lkPSI3NzM1ODkzMTc4MDEwNzI0Mzc3Ij4iV2lGaTogw7xrcyBwdWxrLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90d29fYmFycyIgbXNnaWQ9IjQ5OTQyNzQyNTA0OTcyNjI0MzQiPiJXaUZpOiBrYWtzIHB1bGthLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90aHJlZV9iYXJzIiBtc2dpZD0iMzQ5NTc1NTA0NDI3NjU4ODM4NCI+IldpRmk6IGtvbG0gcHVsa2EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IldpRmktc2lnbmFhbCBvbiB0dWdldi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpbWF4IiBtc2dpZD0iNDMyOTE4MDEyOTcyNzYzMDM2OCI+IldpTUFYLWkgcG9sZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X29uZV9iYXIiIG1zZ2lkPSI0MTcwOTk0Mjk5MDExODYzNjQ4Ij4iV2lNQVgtaSBvbiDDvGtzIHJpYmEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90d29fYmFycyIgbXNnaWQ9IjkxNzYyMzY4NTgzMzY1MDIyODgiPiJXaU1BWC1pIG9uIGtha3MgcmliYS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3RocmVlX2JhcnMiIG1zZ2lkPSI2MTE2NTUxNjM2NzUyMTAzOTI3Ij4iV2lNQVgtaSBvbiBrb2xtIHJpYmEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3NjgwODk5ODY3OTU1Nzk1NTgiPiJXaU1BWC1pIHNpZ25hYWwgb24gdHVnZXYuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaWduYWwiIG1zZ2lkPSI3MDY0NjQ1MzIwNzgyNTg1MTY3Ij4iU2lnbmFhbCBwdXVkdWIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNjM5NTMyNjI3NjIxMzQwMjg4MyI+IsOcaGVuZHVzIHB1dWR1Yi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3plcm9fYmFycyIgbXNnaWQ9IjM4MDYwNjAyMjQ0NjcwMjc4ODciPiJOdWxsIHB1bGthLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfb25lX2JhciIgbXNnaWQ9IjE2ODU3MzAxMTMxOTIwODE4OTUiPiLDnGtzIHB1bGsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90d29fYmFycyIgbXNnaWQ9IjY0MzczNjM2NDgzODUyMDY2NzkiPiJLYWtzIHB1bGthLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdGhyZWVfYmFycyIgbXNnaWQ9IjI2NDgyNDE0MTUxMTkzOTY2NDgiPiJLb2xtIHB1bGthLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI5MTIyOTIyODg2NTE5Njc2ODM5Ij4iU2lnbmFhbCBvbiB0dWdldi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb24iIG1zZ2lkPSIyMzg1MjU0NjkzNjI0MzQ1MjY1Ij4iU2Vlcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb2ZmIiBtc2dpZD0iNjQ3NTUwODE1Nzc4Njg1MzE1NyI+IlbDpGxqYXMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX2Nvbm5lY3RlZCIgbXNnaWQ9IjgzNjYyNTY2OTM3MTk0OTk2NjUiPiLDnGhlbmRhdHVkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2dwcnMiIG1zZ2lkPSIxNjA2NDc3MjI0NDg2NzQ3NzUxIj4iR1BSUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzF4IiBtc2dpZD0iOTk0MTMzNDY4MTIwMjQ0MDE4Ij4iMSBYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25faHNwYSIgbXNnaWQ9IjIwMzIzMjg4NTU0NjI2NDUxOTgiPiJIU1BBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fM2ciIG1zZ2lkPSI4NjI4NTYyMzA1MDAzNTY4MjYwIj4iM0ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8zLjVnIiBtc2dpZD0iODY2NDg0NTYwOTk4MTY5MjAwMSI+IjMsNUciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl80ZyIgbXNnaWQ9Ijc3NDEwMDA3NTA2MzAwODk2MTIiPiI0RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2x0ZSIgbXNnaWQ9IjU0MTM0Njg4MDg2Mzc1NDA2NTgiPiJMVEUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9jZG1hIiBtc2dpZD0iNjEzMjY0ODE5Mzk3ODgyMzAyMyI+IkNETUEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9yb2FtaW5nIiBtc2dpZD0iNTk3NzM2MjMzMzQ2NjU1NjA5NCI+IlLDpG5kbHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZWRnZSIgbXNnaWQ9IjQ0Nzc0NTcwNTE2MzE5NzkyNzgiPiJTZXJ2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fd2lmaSIgbXNnaWQ9IjIzMjQ0OTY3NTY1OTA2NDUyMjEiPiJXaUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaW0iIG1zZ2lkPSI4Mjc0MDE3MTE4NDcyNDU1MTU1Ij4iU0lNLWthYXJ0aSBwb2xlLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX3RldGhlciIgbXNnaWQ9IjQxMDI3ODQ0OTgxNDAyNzE5NjkiPiJCbHVldG9vdGhpIGphZ2FtaW5lLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYWlycGxhbmVfbW9kZSIgbXNnaWQ9IjgzNDc0ODk5OTc5MDc2MzA5MiI+Ikxlbm51cmXFvmlpbS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfbGV2ZWwiIG1zZ2lkPSI3NDUxNDc0MTg3MTEzMzcxOTY1Ij4iQWt1OiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4gcHJvdHNlbnRpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNzk5NTgzOTExMjMxODkzMzgwIj4iU8O8c3RlZW1pc2VhZGVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25zX2J1dHRvbiIgbXNnaWQ9IjQ0OTgwMDAzNjk3Nzk0MjE4OTIiPiJUZWF0aXNlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVtb3ZlX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjM2MDMwOTk1MTQ5MDIxODIzNTAiPiJUZWF0aXNlIGt1c3R1dGFtaW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfZW5hYmxlZCIgbXNnaWQ9IjM1MTE0Njk0OTkyNDAxMjMwMTkiPiJHUFMgb24gbHViYXR1ZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19hY3F1aXJpbmciIG1zZ2lkPSI4OTU5MzMzMzUxMDU4OTY3MTU4Ij4iR1BTLXNpZ25hYWxpIG90c2ltaW5lLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHR5X2VuYWJsZWQiIG1zZ2lkPSI0NjEzMjAwMzY1Mzc5NDI2NTYxIj4iVGVsZVR5cGV3cml0ZXIgbHViYXR1ZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl92aWJyYXRlIiBtc2dpZD0iNjY2NTg1MzYzMzY0MTU1MDU1Ij4iVmlicmVlcml2IGvDtWxpc3RpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3NpbGVudCIgbXNnaWQ9IjkwNjEyNDMzMDc5MzkxMzUzODMiPiJWYWlrbmUga8O1bGlzdGkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnRzX2l0ZW1fZGlzbWlzc2VkIiBtc2dpZD0iNjgwMzU3NDkzNTA4NDg2NzA3MCI+Ikxvb2J1c2l0ZSByYWtlbmR1c2VzdCA8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25fZGlzbWlzc2VkIiBtc2dpZD0iODU0MjExMzg3MTg2MzA2OTI3Ij4iTcOkcmd1YW5kZXN0IG9uIGxvb2J1dHVkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19ub3RpZmljYXRpb25fc2hhZGUiIG1zZ2lkPSI0NjkwMjc0ODQ0NDQ3NTA0MjA4Ij4iTcOkcmd1YW5kZSB2YXJpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19xdWlja19zZXR0aW5ncyIgbXNnaWQ9IjYxODYzNzg0MTE1ODI0MzcwNDYiPiJLaWlyc2VhZGVkLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19yZWNlbnRfYXBwcyIgbXNnaWQ9IjkwMTQwMzI5MTY0MTA1OTAwMjciPiJIaWxqdXRpc2VkIHJha2VuZHVzZWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3VzZXIiIG1zZ2lkPSIxMTA0ODQ2Njk5ODY5NDc2ODU1Ij4iS2FzdXRhamEgPHhsaWZmOmcgaWQ9IlVTRVIiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3dpZmkiIG1zZ2lkPSI2MDk5NzgxMDMxNjY5NzI4NzA5Ij4iPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJORVRXT1JLIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbW9iaWxlIiBtc2dpZD0iNDg3NjgwNjU2NDA4NjI0MTM0MSI+Ik1vYmlpbGkgPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJUWVBFIj4lMiRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUzJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJBa3U6IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iTGVubnVraXJlxb5paW06IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aDogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiJBc3Vrb2h0OiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+Ik3DpMOkcmF0dWQgw6RyYXR1czogPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IjJH4oCTM0cgYW5kbWVzaWRlIGtlZWxhdHVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iNEcgYW5kbWVzaWRlIGtlZWxhdHVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfbW9iaWxlX3RpdGxlIiBtc2dpZD0iMTA0NjA0NzI0ODg0NDgyMTIwMiI+Ik1vYmlpbG5lIGFuZG1lc2lkZSBrZWVsYXR1ZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMjA4NjgxNTMwNDg1ODk2NDk1NCI+IkFuZG1la2FzdXR1cyBrZWVsYXR1ZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZyIgbXNnaWQ9IjM4NTMxMTcyNjkwNTE4MDYyODAiPiJPbGV0ZSBqw7V1ZG51ZCBtw6TDpHJhdHVkIGFuZG1la2FzdXR1c2UgcGlpcmluaS5cblxuS3VpIGzDvGxpdGF0ZSBhbmRtZXNpZGUgdXVlc3RpIHNpc3NlLCBzaWlzIHbDtWliIG9wZXJhYXRvciB0ZWlsdCB0YXN1IHbDtXR0YS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19lbmFibGUiIG1zZ2lkPSI3NzI5NzcyMDM5MjA4NjY0NjA2Ij4iTHViYSBhbmRtZXNpZGUgdXVlc3RpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfZGlzY29ubmVjdGVkIiBtc2dpZD0iMTk0MDIzMTUyMTI3NDE0Nzc3MSI+IkludGVybmV0aS3DvGhlbmR1cyBwdXVkdWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaUZpIG9uIMO8aGVuZGF0dWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IkdQUy1pIG90c2ltaW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IkdQUy1pIG3DpMOkcmF0dWQgYXN1a29odCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IkFzdWtvaGEgdGFvdGx1c2VkIG9uIGFrdGlpdnNlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+Ikt1c3R1dGEga8O1aWsgdGVhdGlzZWQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IlJha2VuZHVzZSB0ZWF2ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4iRWtyYWFuaSBww7bDtnJhbWluZSB0b2ltdWIgYXV0b21hYXRzZWx0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iRWtyYWFuIG9uIGx1a3VzdGF0dWQgaG9yaXNvbnRhYWxzdXVuYXMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IkVrcmFhbiBvbiBsdWt1c3RhdHVkIHZlcnRpa2FhbHN1dW5hcy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4iTWFpdXN0dXNla29ydiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJVbmlzdHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+Ikxlbm51cmXFvmlpbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JhdHRlcnlfY2hhcmdpbmdfbGFiZWwiIG1zZ2lkPSI0OTAwNzQ3NzQ0NjUzMDkyMDkiPiJMYWFkaW1pbmUsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnZWRfbGFiZWwiIG1zZ2lkPSI4ODY1NDEzMDc5NDE0MjQ2MDgxIj4iTGFldHVkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX2xhYmVsIiBtc2dpZD0iNjMwNDE5MDI4NTE3MDcyMTQwMSI+IkJsdWV0b290aCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9tdWx0aXBsZV9kZXZpY2VzX2xhYmVsIiBtc2dpZD0iMzkxMjI0NTU2NTYxMzY4NDczNSI+IkJsdWV0b290aCAoPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IHNlYWRldCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfb2ZmX2xhYmVsIiBtc2dpZD0iODE1OTY1MjE0NjE0OTIxOTkzNyI+IkJsdWV0b290aCBvbiB2w6RsamFzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjY5NjgzNzIyOTcwMTg3NTU4MTUiPiJIZWxlZHVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fdW5sb2NrZWRfbGFiZWwiIG1zZ2lkPSIzMzYwNTQ5MzAzNjI1ODA1ODQiPiJBdXRvbWFhdG5lIHDDtsO2cmFtaW5lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fbG9ja2VkX2xhYmVsIiBtc2dpZD0iODA1ODY0NjQ0NzI0MjU2NTQ4NiI+IlDDtsO2cmFtaW5lIGx1a3VzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+IlNpc2VzdHVzbWVldG9kIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwiIG1zZ2lkPSI1MDExMzI3MDQ4NzQ4NzYyMjU3Ij4iQXN1a29odCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiJBc3Vrb2h0IG9uIHbDpGxqYXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4iTWVlZGlhc2VhZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2xhYmVsIiBtc2dpZD0iNzcyNTY3MTMzNTU1MDY5NTU4OSI+IlJTU0kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2VtZXJnZW5jeV9vbmx5IiBtc2dpZD0iMjcxMzc3NDA0MTY3Mjg4Njc1MCI+IkFpbnVsdCBow6RkYWFiaWvDtW5lZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3NldHRpbmdzX2xhYmVsIiBtc2dpZD0iNTMyNjU1NjU5MjU3ODA2NTQwMSI+IlNlYWRlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3RpbWVfbGFiZWwiIG1zZ2lkPSI0NjM1OTY5MTgyMjM5NzM2NDA4Ij4iQWVnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfdXNlcl9sYWJlbCIgbXNnaWQ9IjUyMzg5OTU2MzIxMzA4OTc4NDAiPiJNaW5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9sYWJlbCIgbXNnaWQ9IjkxMzUzNDQ3MDQ4OTk1NDYwNDEiPiJXaUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNzE3MTkwNDg0NTM0NTU3MzQzMSI+IsOcaGVuZHVzIHB1dWR1YiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm9fbmV0d29yayIgbXNnaWQ9IjIyMjE5OTMwNzcyMjA4NTYzNzYiPiJWw7Vya3UgcG9sZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfb2ZmX2xhYmVsIiBtc2dpZD0iNzU1ODc3ODEwMDg0Mzg4NTg2NCI+IldpRmktw7xoZW5kdXMgb24gdsOkbGphcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9sYWJlbCIgbXNnaWQ9IjY4OTM1OTI5NjQ0NjM2MjQzMzMiPiJXaUZpLWVrcmFhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+Ikp1aHRtZXRhIGVrcmFhbmnDvGhlbmR1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IkhlbGVkdXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4iQVVUT01BQVRORSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiJWw6RydmlkZSDDvG1iZXJww7bDtnJhbWlzZSByZcW+aWltIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4iVMOkaXVzdGF0dWQga29udHJhc3RpIHJlxb5paW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+IlbDpHJ2aXBhcmFuZHVzcmXFvmlpbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iVsO1cmt1IHbDtWlkYWtzZVxuasOkbGdpZGEiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZXQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWV0L3N0cmluZ3MueG1sCmluZGV4IDZkOWM4MzguLjI4ZWNlNjUgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZXQvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1ldC9zdHJpbmdzLnhtbApAQCAtMTY0LDYgKzE2NCw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaUZpIG9uIMO8aGVuZGF0dWQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IkdQUy1pIG90c2ltaW5lIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IkdQUy1pIG3DpMOkcmF0dWQgYXN1a29odCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IkFzdWtvaGEgdGFvdGx1c2VkIG9uIGFrdGlpdnNlZCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+Ikt1c3R1dGEga8O1aWsgdGVhdGlzZWQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IlJha2VuZHVzZSB0ZWF2ZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4iRWtyYWFuaSBww7bDtnJhbWluZSB0b2ltdWIgYXV0b21hYXRzZWx0LiI8L3N0cmluZz4KQEAgLTIwMCw2ICsyMDEsNCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IkFVVE9NQUFUTkUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4iTcOkcmd1YW5kZWQgaWxtdXZhZCBzaWlhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4iSnV1cmRlcMOkw6RzIGlnYWwgYWphbCBzw7VybWVnYSBhbGxhIHDDvGhraWRlcy5cblPDvHN0ZWVtaSBqdWh0bnVwcHVkZSBqYW9rcyBww7xoa2lnZSB1dWVzdGkgYWxsYS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiJSaWJhIGt1dmFtaXNla3MgcMO8aGtpZ2UgZWtyYWFuaSBzZXJ2YSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlX2xvbmciIG1zZ2lkPSI3MTE3NjkyNzk1MTYzNjIwNjI2Ij4iU8O8c3RlZW1pcmliYSBrdXZhbWlzZWtzIHDDvGhraWdlIGVrcmFhbmkgc2VydmFzdCI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1mYS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZmEvc3RyaW5ncy54bWwKaW5kZXggYjA5NTUxOS4uZWE2YzEwMiAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1mYS9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWZhL3N0cmluZ3MueG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfZGlzbWlzc19yZWNlbnRzIiBtc2dpZD0iNDU3NjA3NjA3NTIyNjU0MDEwNSI+Itix2K8g2qnYsdiv2YYg2KjYsdmG2KfZhdmH4oCM2YfYp9uMINin2K7bjNixIjwvc3RyaW5nPgogICA8cGx1cmFscyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfcmVjZW50X2FwcHMiPgogICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODU0MTc2MDgzODY1ODQ1NTQxIj4iMSDYqNix2YbYp9mF2Ycg2KfYrtuM2LEiPC9pdGVtPgotICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjEwNDA3ODQzNTk3OTQ4OTA3NDQiPiIlZCDYqNix2YbYp9mF2YfigIwg2KfYrtuM2LEiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjEwNDA3ODQzNTk3OTQ4OTA3NDQiPiLigI8lZCDYqNix2YbYp9mF2YfigIwg2KfYrtuM2LEiPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX25vdGlmaWNhdGlvbnNfdGl0bGUiIG1zZ2lkPSI0NzU1MjYxMTY3MTkzODMzMjEzIj4i2KfYudmE2KfZhtuMINmF2YjYrNmI2K8g2YbbjNiz2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX29uZ29pbmdfZXZlbnRzX3RpdGxlIiBtc2dpZD0iMTY4MjUwNDUxMzMxNjg3OTIwMiI+Itiv2LEg2K3Yp9mEINin2YbYrNin2YUiPC9zdHJpbmc+CkBAIC0zNSw3ICszNSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd190aXRsZSIgbXNnaWQ9IjI3ODMxMDQ4MDc1NTEyMTE2MzkiPiLYtNin2LHamNixINix2Kcg2YXYqti12YQg2qnZhtuM2K8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19zdWJ0aXRsZSIgbXNnaWQ9IjE3NTIwNDAwNjIwODc4MjkxOTYiPiLYqNin2KrYsduMINiv2LEg2K3Yp9mEINqp2YUg2LTYr9mGINin2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19wZXJjZW50X2Zvcm1hdCIgbXNnaWQ9IjEwNzcyNDQ5NDkzMTgyNjE3NjEiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZCUlPC94bGlmZjpnPiDYqNin2YLbjNmF2KfZhtiv2Ycg2KfYs9iqIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZF9jaGFyZ2VyIiBtc2dpZD0iNDU0OTEwNTk5Njc0MDUyMjUyMyI+Iti02KfYsdqYIFVTQiDZvti02KrbjNio2KfZhtuMINmG2YXbjOKAjNi02YjYry5cbtmB2YLYtyDYp9iyINi02KfYsdqY2LEg2KfYsdin2KbZhyDYtNiv2Ycg2KfYs9iq2YHYp9iv2Ycg2qnZhtuM2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZF9jaGFyZ2VyIiBtc2dpZD0iNDU0OTEwNTk5Njc0MDUyMjUyMyI+IuKAj9i02KfYsdqYIFVTQiDZvti02KrbjNio2KfZhtuMINmG2YXbjOKAjNi02YjYry5cbtmB2YLYtyDYp9iyINi02KfYsdqY2LEg2KfYsdin2KbZhyDYtNiv2Ycg2KfYs9iq2YHYp9iv2Ycg2qnZhtuM2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfd2h5IiBtc2dpZD0iNzI3OTE2OTYwOTUxODM4NjM3MiI+Itin2LPYqtmB2KfYr9mHINin2LIg2KjYp9iq2LHbjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iMzAyMzg4OTkxNjY5OTI3MDIyNCI+Itiq2YbYuNuM2YXYp9iqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc193aWZpX2J1dHRvbiIgbXNnaWQ9IjE3MzM5MjgxNTE2OTgzMTE5MjMiPiJXaS1GaSI8L3N0cmluZz4KQEAgLTQ3LDIyICs0NywyMCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYmx1ZXRvb3RoX3RldGhlcmVkIiBtc2dpZD0iNzA5NDEwMTYxMjE2MTEzMzI2NyI+Itin2KrYtdin2YQg2KfbjNmG2KrYsdmG2KrbjCDYqNinINio2YTZiNiq2YjYqyDYqtmE2YHZhiDZh9mF2LHYp9mHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9pbnB1dF9tZXRob2Rfc2V0dGluZ3NfY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSIzNTA0MjkyNDcxNTEyMzE3ODI3Ij4i2KrZhti424zZhSDYsdmI2LTigIzZh9in24wg2YjYsdmI2K/bjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfdXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNzU1MTkwMzA4NDQxNjA1NzgxMCI+Iti12YHYrdmH4oCM2qnZhNuM2K8g2YHbjNiy24zaqduMIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjgzNDY5ODAwMTI3MTU2MjA1NyI+Itio2Ycg2KjYsdmG2KfZhdmHIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g2KfYrNin2LLZhyDZhduM4oCM2K/Zh9uM2K8g2KjZhyDYr9iz2Krar9in2YcgVVNCINiv2LPYqtix2LPbjCDYr9in2LTYqtmHINio2KfYtNiv2J8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iNTE3MTc3NTQxMTE3ODg2NTc1MCI+Itio2Ycg2KjYsdmG2KfZhdmHIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g2KfYrNin2LLZhyDZhduM4oCM2K/Zh9ivINiq2Kcg2KjZhyDZiNiz24zZhNmHINis2KfZhtio24wgVVNCINiv2LPYqtix2LPbjCDYr9in2LTYqtmHINio2KfYtNiv2J8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iNTE2MTIwNTI1ODYzNTI1MzIwNiI+ItmI2YLYqtuMINin24zZhiDYr9iz2Krar9in2YcgVVNCINmI2LXZhCDYp9iz2KrYjCA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+INio2KfYsiDYtNmI2K/YnyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSIzODA4OTg0OTMxODMwMjI5ODg4Ij4i2YjZgtiq24wg2KfbjNmGINmI2LPbjNmE2Ycg2KzYp9mG2KjbjCBVU0Ig2YjYtdmEINin2LPYqtiMIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g2KjYp9iyINi02YjYr9ifIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV91cmlfcHJvbXB0IiBtc2dpZD0iNTEzNDUwNjIxNDEzNzMzMzQzIj4i2YfbjNqGINio2LHZhtin2YXZh9mUINqp2KfYsdio2LHYr9uMINmG2LXYqCDYtNiv2YfigIzYp9uMINio2Kcg2KfbjNmGINmI2LPbjNmE2Ycg2KzYp9mG2KjbjCBVU0Ig2qnYp9ixINmG2YXbjOKAjNqp2YbYry4g2K/YsSA8eGxpZmY6ZyBpZD0iVVJMIj4lMSRzPC94bGlmZjpnPiDYr9ix2KjYp9ix2YfZlCDYp9uM2YYg2YjYs9uM2YTZhyDYrNin2YbYqNuMINin2LfZhNin2LnYp9iqINio24zYtNiq2LHbjCDaqdiz2Kgg2qnZhtuM2K8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+ItmE2YjYp9iy2YUg2KzYp9mG2KjbjCBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iODM0Njk4MDAxMjcxNTYyMDU3Ij4i4oCP2KjZhyDYqNix2YbYp9mF2YcgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDYp9is2KfYstmHINmF24zigIzYr9mH24zYryDYqNmHINiv2LPYqtqv2KfZhyBVU0Ig2K/Ys9iq2LHYs9uMINiv2KfYtNiq2Ycg2KjYp9i02K/YnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI1MTcxNzc1NDExMTc4ODY1NzUwIj4i4oCP2KjZhyDYqNix2YbYp9mF2YcgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDYp9is2KfYstmHINmF24zigIzYr9mH2K8g2KrYpyDYqNmHINmI2LPbjNmE2Ycg2KzYp9mG2KjbjCBVU0Ig2K/Ys9iq2LHYs9uMINiv2KfYtNiq2Ycg2KjYp9i02K/YnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSI1MTYxMjA1MjU4NjM1MjUzMjA2Ij4i4oCP2YjZgtiq24wg2KfbjNmGINiv2LPYqtqv2KfZhyBVU0Ig2YjYtdmEINin2LPYqtiMIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g2KjYp9iyINi02YjYr9ifIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjM4MDg5ODQ5MzE4MzAyMjk4ODgiPiLigI/ZiNmC2KrbjCDYp9uM2YYg2YjYs9uM2YTZhyDYrNin2YbYqNuMIFVTQiDZiNi12YQg2KfYs9iq2IwgPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiDYqNin2LIg2LTZiNiv2J8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3VyaV9wcm9tcHQiIG1zZ2lkPSI1MTM0NTA2MjE0MTM3MzMzNDMiPiLigI/Zh9uM2oYg2KjYsdmG2KfZhdmH2ZQg2qnYp9ix2KjYsdiv24wg2YbYtdioINi02K/Zh+KAjNin24wg2KjYpyDYp9uM2YYg2YjYs9uM2YTZhyDYrNin2YbYqNuMIFVTQiDaqdin2LEg2YbZhduM4oCM2qnZhtivLiDYr9ixIDx4bGlmZjpnIGlkPSJVUkwiPiUxJHM8L3hsaWZmOmc+INiv2LHYqNin2LHZh9mUINin24zZhiDZiNiz24zZhNmHINis2KfZhtio24wg2KfYt9mE2KfYudin2Kog2KjbjNi02KrYsduMINqp2LPYqCDaqdmG24zYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3VzYl9hY2Nlc3NvcnkiIG1zZ2lkPSI0OTY2MjY1MjYzNDY1MTgxMzcyIj4i4oCP2YTZiNin2LLZhSDYrNin2YbYqNuMIFVTQiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3ZpZXciIG1zZ2lkPSI2MzA0NTY1NTUzMjE4MTkyOTkwIj4i2YXYtNin2YfYr9mHIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9kZXZpY2UiIG1zZ2lkPSIxNDUwMjg3NDM3MDE3MzE1OTA2Ij4i2KfYs9iq2YHYp9iv2Ycg2KjZhyDYtdmI2LHYqiDZvtuM2LTigIzZgdix2LYg2KjYsdin24wg2KfbjNmGINiv2LPYqtqv2KfZhyBVU0IiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2FjY2Vzc29yeSIgbXNnaWQ9IjEyMTA5NTQ1NzY5Nzk2MjE1OTYiPiLYp9iz2KrZgdin2K/ZhyDYqNmHINi12YjYsdiqINm+24zYtOKAjNmB2LHYtiDYqNix2KfbjCDYp9uM2YYg2K/Ys9iq2q/Yp9mHIFVTQiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfdGl0bGUiIG1zZ2lkPSI0NTEzOTE4MzkzMzg3MTQxOTQ5Ij4i2KfYrNin2LLZhyDYqNmHINin2LTaqdin2YTigIzYstiv2KfbjNuMIFVTQtifIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+Itin2KvYsSDYp9mG2q/YtNiqINqp2YTbjNivIFJTQSDYsdin24zYp9mG2Yc6IFxuPHhsaWZmOmcgaWQ9IkZJTkdFUlBSSU5UIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfZGV2aWNlIiBtc2dpZD0iMTQ1MDI4NzQzNzAxNzMxNTkwNiI+IuKAj9in2LPYqtmB2KfYr9mHINio2Ycg2LXZiNix2Kog2b7bjNi04oCM2YHYsdi2INio2LHYp9uMINin24zZhiDYr9iz2Krar9in2YcgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9hY2Nlc3NvcnkiIG1zZ2lkPSIxMjEwOTU0NTc2OTc5NjIxNTk2Ij4i4oCP2KfYs9iq2YHYp9iv2Ycg2KjZhyDYtdmI2LHYqiDZvtuM2LTigIzZgdix2LYg2KjYsdin24wg2KfbjNmGINiv2LPYqtqv2KfZhyBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX3RpdGxlIiBtc2dpZD0iNDUxMzkxODM5MzM4NzE0MTk0OSI+IuKAj9in2KzYp9iy2Ycg2KjZhyDYp9i02qnYp9mE4oCM2LLYr9in24zbjCBVU0LYnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfbWVzc2FnZSIgbXNnaWQ9IjIyMjAxNDM4NTU5MTIzNzY0OTYiPiLigI/Yp9ir2LEg2KfZhtqv2LTYqiDaqdmE24zYryBSU0Eg2LHYp9uM2KfZhtmHOiBcbjx4bGlmZjpnIGlkPSJGSU5HRVJQUklOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+ItmH2YXbjNi02Ycg2KfYsiDYp9uM2YYg2LHYp9uM2KfZhtmHINin2YbYrNin2YUg2LTZiNivIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4i2KjYstix2q/ZhtmF2KfbjNuMINio2LHYp9uMINm+2LEg2qnYsdiv2YYg2LXZgdit2YciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4i2q/Ys9iq2LHYr9mHINqp2LHYr9mGINio2LHYp9uMINm+2LEg2qnYsdiv2YYg2LXZgdit2YciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiLYqNiy2LHar9mG2YXYp9uM24wg2LPYp9iy2q/Yp9ix24wiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4i2Kfar9ixINuM2qkg2KjYsdmG2KfZhdmHINio2LHYp9uMINi12YHYrdmHINqp2YjahtqpINiq2LHbjCDYt9ix2KfYrduMINi02K/ZhyDYqNin2LTYr9iMINuM2qkg2qnZhtiq2LHZhCDYqNiy2LHar9mG2YXYp9uM24wg2KrZiNiz2Lcg2LPYp9i52Kog2YbYtNin2YYg2K/Yp9iv2Ycg2YXbjOKAjNi02YjYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4i2K/YsSDYrdin2YQg2LDYrtuM2LHZhyDYqti12YjbjNixINi12YHYrdmHLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4i2K/YsSDYrdin2YQg2LDYrtuM2LHZhyDYqti12YjbjNixINi12YHYrdmHLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLYqti12YjbjNixINi12YHYrdmHINiw2K7bjNix2Ycg2LTYry4iPC9zdHJpbmc+CkBAIC03MCwxNCArNjgsMTYgQEAKICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2ZWRfdGV4dCIgbXNnaWQ9IjExNTI4Mzk2NDc2Nzc1NTg4MTUiPiLYqNix2KfbjCDZhdi02KfZh9iv2Ycg2KrYtdmI24zYsSDYtdmB2K3ZhyDYrtmI2K/YjCDZhNmF2LMg2qnZhtuM2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGl0bGUiIG1zZ2lkPSI3MDU3ODExMTY3NDY5MjI3NzEiPiLYqti12YjbjNixINi12YHYrdmHINqv2LHZgdiq2Ycg2YbYtNivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RleHQiIG1zZ2lkPSI4MTM0MDExMjY5NTcyNDE1NDAyIj4i2KrYtdmI24zYsSDYtdmB2K3ZhyDYsNiu24zYsdmHINmG2LTYry4g2YXZhdqp2YYg2KfYs9iqINiv2LPYqtqv2KfZhyDYsNiu24zYsdmH4oCMINiv2LEg2K3Yp9mEINin2LPYqtmB2KfYr9mHINio2KfYtNivLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9wcmVmZXJlbmNlX3RpdGxlIiBtc2dpZD0iNjU1MTA1MDM3NzM4ODg4Mjc4NyI+Itqv2LLbjNmG2YfigIzZh9in24wg2KfZhtiq2YLYp9mEINmB2KfbjNmEIFVTQiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzZV9tdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNDMzMzUwNDQxMzU2MzAyMzYyNiI+ItmG2LXYqCDYqNmH4oCM2LnZhtmI2KfZhiDYr9iz2Krar9in2Ycg2b7Yrti0INix2LPYp9mG2YcgKE1UUCkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2VfcHRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9Ijc1MTcxMjc1NDAzMDE2MjU3NTEiPiLYqti12Kgg2KjZh+KAjNi52YbZiNin2YYg2K/ZiNix2KjbjNmGIChQVFApIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbGVyX2NkX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjIzMTI2Njc1Nzg1NjIyMDE1ODMiPiLYqNix2YbYp9mF2YcgQW5kcm9pZCBGaWxlIFRyYW5zZmVyINix2Kcg2KjYsdin24wgTWFjINmG2LXYqCDaqdmG24zYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9wcmVmZXJlbmNlX3RpdGxlIiBtc2dpZD0iNjU1MTA1MDM3NzM4ODg4Mjc4NyI+IuKAj9qv2LLbjNmG2YfigIzZh9in24wg2KfZhtiq2YLYp9mEINmB2KfbjNmEIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9tdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNDMzMzUwNDQxMzU2MzAyMzYyNiI+IuKAj9mG2LXYqCDYqNmH4oCM2LnZhtmI2KfZhiDYr9iz2Krar9in2Ycg2b7Yrti0INix2LPYp9mG2YcgKE1UUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfcHRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9Ijc1MTcxMjc1NDAzMDE2MjU3NTEiPiLigI/Yqti12Kgg2KjZh+KAjNi52YbZiNin2YYg2K/ZiNix2KjbjNmGIChQVFApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbGVyX2NkX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjIzMTI2Njc1Nzg1NjIyMDE1ODMiPiLigI/YqNix2YbYp9mF2YcgQW5kcm9pZCBGaWxlIFRyYW5zZmVyINix2Kcg2KjYsdin24wgTWFjINmG2LXYqCDaqdmG24zYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmFjayIgbXNnaWQ9IjU2NzAxMTUzODk5NDQyOTEyMCI+Itio2LHar9i02KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4i2LXZgdit2YfZlCDYp9i12YTbjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+ItmF2YbZiCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+Itio2LHZhtin2YXZh+KAjNmH2KfbjCDYp9iu24zYsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+Itis2LPYqtis2YgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4i2K/ZiNix2KjbjNmGIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiLaqdmE24zYryDYqti624zbjNixINix2YjYtCDZiNix2YjYryDZhdiq2YYuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+Itiv2qnZhdmHINio2LLYsdqv2YbZhdin24zbjCDYs9in2LLar9in2LEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiLYqNiy2LHar9mG2YXYp9uM24wg2KfYsiDYtdmB2K3Zh+KAjNmH2KfbjCDaqdmI2obaqSDYqtinINio2LLYsdqvLiI8L3N0cmluZz4KQEAgLTk4LDE3ICs5OCwxNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3R3b19iYXJzIiBtc2dpZD0iNjE2NjAxODQ5MjM2MDQzMjA5MSI+Itiv2Ygg2YbZiNin2LEg2KjYsdin24wg2K/Yp9iv2YcuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4i2LPZhyDZhtmI2KfYsSDYqNix2KfbjCDYr9in2K/Zhy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzA4Mzg0NjA4MTI0NTE5MzY5Ij4i2YLYr9ix2Kog2LPbjNqv2YbYp9mEINiv2KfYr9mHINqp2KfZhdmEINin2LPYqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb2ZmIiBtc2dpZD0iMzE3NzM4MDI5NjY5NzkzMzYyNyI+Ildp4oCRRmkg2K7Yp9mF2YjYtC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpZmkiIG1zZ2lkPSIxNDI1NDc2NTUxODI3OTI0NDc0Ij4iV2ktRmkg2YLYt9i54oCM2LTYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiLbjNqpINmG2YjYp9ixINio2LHYp9uMIFdp4oCRRmkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3R3b19iYXJzIiBtc2dpZD0iNDk5NDI3NDI1MDQ5NzI2MjQzNCI+Itiv2Ygg2YbZiNin2LEg2KjYsdin24wgV2nigJFGaS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfdGhyZWVfYmFycyIgbXNnaWQ9IjM0OTU3NTUwNDQyNzY1ODgzODQiPiLYs9mHINmG2YjYp9ixINio2LHYp9uMIFdp4oCRRmkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+ItmC2K/YsdiqINiz24zar9mG2KfZhCBXaeKAkUZpINqp2KfZhdmEINin2LPYqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpbWF4IiBtc2dpZD0iNDMyOTE4MDEyOTcyNzYzMDM2OCI+IldpTUFYINmI2KzZiNivINmG2K/Yp9ix2K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9vbmVfYmFyIiBtc2dpZD0iNDE3MDk5NDI5OTAxMTg2MzY0OCI+IldpTUFYINiv2KfYsdin24wg24zaqSDZhtmI2KfYsSDYp9iz2KouIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90d29fYmFycyIgbXNnaWQ9IjkxNzYyMzY4NTgzMzY1MDIyODgiPiJXaU1BWCDYr9in2LHYp9uMINiv2Ygg2YbZiNin2LEg2KfYs9iqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiJXaU1BWCDYr9in2LHYp9uMINiz2Ycg2YbZiNin2LEg2KfYs9iqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzY4MDg5OTg2Nzk1NTc5NTU4Ij4i2YLYr9ix2Kog2LPbjNqv2YbYp9mEIFdpTUFYINqp2KfZhdmEINin2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb2ZmIiBtc2dpZD0iMzE3NzM4MDI5NjY5NzkzMzYyNyI+IuKAj1dp4oCRRmkg2K7Yp9mF2YjYtC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpZmkiIG1zZ2lkPSIxNDI1NDc2NTUxODI3OTI0NDc0Ij4i4oCPV2ktRmkg2YLYt9i54oCM2LTYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiLigI/bjNqpINmG2YjYp9ixINio2LHYp9uMIFdp4oCRRmkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3R3b19iYXJzIiBtc2dpZD0iNDk5NDI3NDI1MDQ5NzI2MjQzNCI+IuKAj9iv2Ygg2YbZiNin2LEg2KjYsdin24wgV2nigJFGaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfdGhyZWVfYmFycyIgbXNnaWQ9IjM0OTU3NTUwNDQyNzY1ODgzODQiPiLigI/Ys9mHINmG2YjYp9ixINio2LHYp9uMIFdp4oCRRmkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IuKAj9mC2K/YsdiqINiz24zar9mG2KfZhCBXaeKAkUZpINqp2KfZhdmEINin2LPYqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpbWF4IiBtc2dpZD0iNDMyOTE4MDEyOTcyNzYzMDM2OCI+IuKAj1dpTUFYINmI2KzZiNivINmG2K/Yp9ix2K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9vbmVfYmFyIiBtc2dpZD0iNDE3MDk5NDI5OTAxMTg2MzY0OCI+IuKAj1dpTUFYINiv2KfYsdin24wg24zaqSDZhtmI2KfYsSDYp9iz2KouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90d29fYmFycyIgbXNnaWQ9IjkxNzYyMzY4NTgzMzY1MDIyODgiPiLigI9XaU1BWCDYr9in2LHYp9uMINiv2Ygg2YbZiNin2LEg2KfYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiLigI9XaU1BWCDYr9in2LHYp9uMINiz2Ycg2YbZiNin2LEg2KfYs9iqLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzY4MDg5OTg2Nzk1NTc5NTU4Ij4i4oCP2YLYr9ix2Kog2LPbjNqv2YbYp9mEIFdpTUFYINqp2KfZhdmEINin2LPYqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpZ25hbCIgbXNnaWQ9IjcwNjQ2NDUzMjA3ODI1ODUxNjciPiLZgdin2YLYryDYs9uM2q/Zhtin2YQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNjM5NTMyNjI3NjIxMzQwMjg4MyI+ItmF2KrYtdmEINmG24zYs9iqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfemVyb19iYXJzIiBtc2dpZD0iMzgwNjA2MDIyNDQ2NzAyNzg4NyI+Itio2K/ZiNmGINmF24zZhNmHLiI8L3N0cmluZz4KQEAgLTEzNyw5ICsxMzcsOSBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI3OTk1ODM5MTEyMzE4OTMzODAiPiLYqtmG2LjbjNmF2KfYqiDYs9uM2LPYqtmFLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uc19idXR0b24iIG1zZ2lkPSI0NDk4MDAwMzY5Nzc5NDIxODkyIj4i2KfYudmE2KfZhuKAjNmH2KcuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZW1vdmVfbm90aWZpY2F0aW9uIiBtc2dpZD0iMzYwMzA5OTUxNDkwMjE4MjM1MCI+Itm+2KfaqSDaqdix2K/ZhiDYp9i52YTYp9mGIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfZW5hYmxlZCIgbXNnaWQ9IjM1MTE0Njk0OTkyNDAxMjMwMTkiPiJHUFMg2YHYudin2YQg2LTYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19hY3F1aXJpbmciIG1zZ2lkPSI4OTU5MzMzMzUxMDU4OTY3MTU4Ij4i2K/Ys9iq24zYp9io24wg2KjZhyBHUFMuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90dHlfZW5hYmxlZCIgbXNnaWQ9IjQ2MTMyMDAzNjUzNzk0MjY1NjEiPiJUZWxlVHlwZXdyaXRlciDZgdi52KfZhCDYtNivLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2VuYWJsZWQiIG1zZ2lkPSIzNTExNDY5NDk5MjQwMTIzMDE5Ij4i4oCPR1BTINmB2LnYp9mEINi02K8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfYWNxdWlyaW5nIiBtc2dpZD0iODk1OTMzMzM1MTA1ODk2NzE1OCI+IuKAj9iv2LPYqtuM2KfYqNuMINio2YcgR1BTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHR5X2VuYWJsZWQiIG1zZ2lkPSI0NjEzMjAwMzY1Mzc5NDI2NTYxIj4i4oCPVGVsZVR5cGV3cml0ZXIg2YHYudin2YQg2LTYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl92aWJyYXRlIiBtc2dpZD0iNjY2NTg1MzYzMzY0MTU1MDU1Ij4i2LLZhtqvINmE2LHYsti024wuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfc2lsZW50IiBtc2dpZD0iOTA2MTI0MzMwNzkzOTEzNTM4MyI+Itiy2YbaryDYqNuM4oCM2LXYr9inLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50c19pdGVtX2Rpc21pc3NlZCIgbXNnaWQ9IjY4MDM1NzQ5MzUwODQ4NjcwNzAiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g2YbYp9iv24zYr9mHINqv2LHZgdiq2Ycg2LTYry4iPC9zdHJpbmc+CkBAIC0xNTMsMjMgKzE1MywyNSBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+Itio2KfYqtix24wgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLYrdin2YTYqiDZh9mI2KfZvtuM2YXYpyA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiLYqNmE2YjYqtmI2KsgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiLZhdqp2KfZhiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+ItmH2LTYr9in2LEg2KjYsdin24wgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPiDYqtmG2LjbjNmFINi02K8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4i2K/Yp9iv2YcgMkctM0cg2LrbjNix2YHYudin2YQg2LTYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+Itiv2KfYr9mHIDRHINi624zYsSDZgdi52KfZhCDYtNivIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4i4oCP2K/Yp9iv2YcgMkctM0cg2LrbjNix2YHYudin2YQg2LTYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IuKAj9iv2KfYr9mHIDRHINi624zYsSDZgdi52KfZhCDYtNivIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfbW9iaWxlX3RpdGxlIiBtc2dpZD0iMTA0NjA0NzI0ODg0NDgyMTIwMiI+Itiv2KfYr9mH4oCM2YfYp9uMINiq2YTZgdmGINmH2YXYsdin2Ycg2LrbjNix2YHYudin2YQg2KfYs9iqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfdGl0bGUiIG1zZ2lkPSIyMDg2ODE1MzA0ODU4OTY0OTU0Ij4i2K/Yp9iv2Ycg2LrbjNix2YHYudin2YQg2LTYryI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nIiBtc2dpZD0iMzg1MzExNzI2OTA1MTgwNjI4MCI+Itio2Ycg2K3Yr9in2qnYq9ixINmF2K3Yr9mI2K/ZhyDZhdi02K7YtSDYtNiv2Ycg2KjYsdin24wg2KfYs9iq2YHYp9iv2Ycg2KfYsiDYr9in2K/ZhyDYsdiz24zYr9mH4oCM2KfbjNivLlxuXG7Yr9ixINi12YjYsdiqINmB2LnYp9mEINqp2LHYr9mGINmF2KzYr9ivINiv2KfYr9mH2Iwg2YXZhdqp2YYg2KfYs9iqINin2LIg2LfYsdmBINin2b7Ysdin2KrZiNixINio2LHYp9uMINi02YXYpyDZh9iy24zZhtmHINmF2K3Yp9iz2KjZhyDYtNmI2K8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfZW5hYmxlIiBtc2dpZD0iNzcyOTc3MjAzOTIwODY2NDYwNiI+ItmB2LnYp9mEINqp2LHYr9mGINmF2KzYr9ivINiv2KfYr9mHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfZGlzY29ubmVjdGVkIiBtc2dpZD0iMTk0MDIzMTUyMTI3NDE0Nzc3MSI+Itin2KrYtdin2YQg2KfbjNmG2KrYsdmG2KrbjCDZiNis2YjYryDZhtiv2KfYsdivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkg2YXYqti12YQg2LTYryI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4i2KzYs9iq2KzZiCDYqNix2KfbjCBHUFMiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4i2YXaqdin2YYg2KrZhti424zZhSDYtNiv2Ycg2KrZiNiz2LcgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4i4oCPV2ktRmkg2YXYqti12YQg2LTYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4i4oCP2KzYs9iq2KzZiCDYqNix2KfbjCBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4i4oCP2YXaqdin2YYg2KrZhti424zZhSDYtNiv2Ycg2KrZiNiz2LcgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4i2K/Ysdiu2YjYp9iz2KrigIzZh9in24wg2YXZiNmC2LnbjNiqINmF2qnYp9mG24wg2YHYudin2YQg2KfYs9iqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4i2b7Yp9qpINqp2LHYr9mGINiq2YXYp9mFINin2LnZhNin2YbigIzZh9inIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+Itin2LfZhNin2LnYp9iqINio2LHZhtin2YXZhyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4i2LXZgdit2Ycg2KjZhyDYtdmI2LHYqiDYrtmI2K/aqdin2LEg2YXbjOKAjNqG2LHYrtivLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4i2LXZgdit2Ycg2KfaqdmG2YjZhiDYr9ixINis2YfYqiDYp9mB2YLbjCDZgtmB2YQg2KfYs9iqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLYtdmB2K3ZhyDYp9qp2YbZiNmGINiv2LEg2KzZh9iqINi52YXZiNiv24wg2YLZgdmEINin2LPYqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4i2YjbjNiq2LHbjNmGINiv2LPYsSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiLYsdmI24zYp9m+2LHYr9in2LLbjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+Itin2KrYsdmG2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+Itit2KfZhNiqINmH2YjYp9m+24zZhdinIjwvc3RyaW5nPgpAQCAtMTgyLDEwICsxODQsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fdW5sb2NrZWRfbGFiZWwiIG1zZ2lkPSIzMzYwNTQ5MzAzNjI1ODA1ODQiPiLahtix2K7YtCDYrtmI2K/aqdin2LEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4i2obYsdiu2LQg2YLZgdmEINi02K8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4i2LHZiNi0INmI2LHZiNiv24wiPC9zdHJpbmc+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwgKDUwMTEzMjcwNDg3NDg3NjIyNTcpIC0tPgotICAgIDxza2lwIC8+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsICg3NDY0NTQ0MDg2NTA3MzMxNDU5KSAtLT4KLSAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwiIG1zZ2lkPSI1MDExMzI3MDQ4NzQ4NzYyMjU3Ij4i2YXaqdin2YYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4i2YXaqdin2YYg2K7Yp9mF2YjYtCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX21lZGlhX2RldmljZV9sYWJlbCIgbXNnaWQ9IjEzMDI5MDY4MzYzNzI2MDM3NjIiPiLYr9iz2Krar9in2Ycg2LHYs9in2YbZhyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4i2YHZgti3INiq2YXYp9iz4oCM2YfYp9uMINin2LbYt9ix2KfYsduMIjwvc3RyaW5nPgpAQCAtMTk1LDEzICsxOTUsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbGFiZWwiIG1zZ2lkPSI5MTM1MzQ0NzA0ODk5NTQ2MDQxIj4iV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI3MTcxOTA0ODQ1MzQ1NTczNDMxIj4i2YXYqti12YQg2YbbjNiz2KoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vX25ldHdvcmsiIG1zZ2lkPSIyMjIxOTkzMDc3MjIwODU2Mzc2Ij4i2LTYqNqp2YfigIzYp9uMINmF2YjYrNmI2K8g2YbbjNiz2KoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX29mZl9sYWJlbCIgbXNnaWQ9Ijc1NTg3NzgxMDA4NDM4ODU4NjQiPiJXaS1GaSDYrtin2YXZiNi0INin2LPYqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfb2ZmX2xhYmVsIiBtc2dpZD0iNzU1ODc3ODEwMDg0Mzg4NTg2NCI+IuKAj1dpLUZpINiu2KfZhdmI2LQg2KfYs9iqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X2xhYmVsIiBtc2dpZD0iNjg5MzU5Mjk2NDQ2MzYyNDMzMyI+IldpLUZpIERpc3BsYXkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiLZhtmF2KfbjNi0INio2K/ZiNmGINiz24zZhSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+Itix2YjYtNmG2KfbjNuMIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+Itiu2YjYr9qp2KfYsSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiLYp9i52YTYp9mG4oCM2YfYpyDYr9ixINin24zZhtis2Kcg2YbZhdin24zYtCDYr9in2K/ZhyDZhduM4oCM2LTZiNmG2K8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiLYqNinINqp2LTbjNiv2YYg2KfZhtqv2LTYqiDYqNmHINi32LHZgSDZvtin24zbjNmGINio2Ycg2KLZhtmH2Kcg2K/Ys9iq2LHYs9uMINm+24zYr9inINqp2YbbjNivLlxu2KjYsdin24wg2qnZhtiq2LHZhOKAjNmH2KfbjCDYs9uM2LPYqtmFINiv2YjYqNin2LHZhyDYp9mG2q/YtNiqINiu2YjYryDYsdinINio2Ycg2LPZhdiqINm+2KfbjNuM2YYg2Kjaqdi024zYry4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiLYqNix2KfbjCDZhtmF2KfbjNi0INmG2YjYp9ix2Iwg2KfZhtqv2LTYqiDYrtmI2K8g2LHYp8Kg2KfYsiDZhNio2YfigIwg2LXZgdit2Ycg2KjZhyDYr9in2K7ZhCDYqNqp2LTbjNivIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiLYqNix2KfbjCDZhtmF2KfbjNi0INmG2YjYp9ixINiz24zYs9iq2YXYjCDYp9mG2q/YtNiqINiu2YjYryDYsdinINin2LIg2YTYqNmH4oCMINi12YHYrdmHINio2Ycg2K/Yp9iu2YQg2Kjaqdi024zYryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiLYrdin2YTYqiDZiNin2LHZiNmG2q/bjCDYsdmG2q8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiLYrdin2YTYqiDaqdmG2KrYsdin2LPYqiDYqNmH2KjZiNiv24zYp9mB2KrZhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4i2K3Yp9mE2Kog2KrYtdit24zYrSDYsdmG2q8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+ItmF2YXaqdmGINin2LPYqiDYtNio2qnZh1xu2KrYrdiqINmG2LjYp9ix2Kog2KjYp9i02K8iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZmkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWZpL3N0cmluZ3MueG1sCmluZGV4IDA2ZTE5MjYuLjJlOWM1ZjMgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZmkvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1maS9zdHJpbmdzLnhtbApAQCAtNjEsOCArNjEsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiJTYWxsaSBhaW5hIHTDpGxsw6QgdGlldG9rb25lZWxsYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+Ilpvb21hYSBrb2tvIG7DpHl0dMO2w7ZuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+IlZlbnl0w6Qga29rbyBuw6R5dHTDtsO2biI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+IllodGVlbnNvcGl2dXVzem9vbWF1cyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiJKb3Mgc292ZWxsdXMgb24gc3V1bm5pdGVsdHUgcGllbmVtbcOkbGxlIG7DpHl0w7ZsbGUsIGtlbGxvbiB2aWVyZWVuIHR1bGVlIG7DpGt5dmlpbiB6b29tYXVzc8Okw6RkaW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IlRhbGxlbm5ldGFhbiBrdXZha2FhcHBhdXN0YS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IlRhbGxlbm5ldGFhbiBrdXZha2FhcHBhdXN0YS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4iS3V2YWthYXBwYXVzdGEgdGFsbGVubmV0YWFuLiI8L3N0cmluZz4KQEAgLTc4LDYgKzc2LDggQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiJBbG9pdHVzcGFpbmlrZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+IlZhbGlra28iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiJWaWltZWFpa2Fpc2V0IHNvdmVsbHVrc2V0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4iSGFrdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiJLYW1lcmEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IlN5w7Z0dMO2dGF2YW4gdmFpaHRvcGFpbmlrZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4iWWh0ZWVuc29waXZ1dXN6b29tYXVzLXBhaW5pa2UuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiJab29tYWEgcGllbmVtbcOkbHTDpCBzdXVyZW1tYWxsZSBydXVkdWxsZS4iPC9zdHJpbmc+CkBAIC0xNTMsNiArMTUzLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJBa2t1OiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IkxlbnRva29uZXRpbGEgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IlNpamFpbnRpIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4iSMOkbHl0eXMgYXNldGV0dHUsIGFpa2E6IDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iMkctM0ctdGllZG9uc2lpcnRvIHBvaXMga8OkeXTDtnN0w6QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiI0Ry10aWVkb25zaWlydG8gcG9pcyBrw6R5dMO2c3TDpCI8L3N0cmluZz4KQEAgLTE2NCwxMiArMTY1LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaWZpIHloZGlzdGV0dHkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IkhhZXRhYW4gR1BTLXlodGV5dHTDpCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJTaWphaW50aSBtw6TDpHJpdGV0dHkgR1BTOm4gYXZ1bGxhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4iU2lqYWludGlweXlubsO2dCBha3RpaXZpc2V0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iVHloamVubsOkIGthaWtraSBpbG1vaXR1a3NldC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4iU292ZWxsdWtzZW4gdGllZG90Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiJSdXV0dSBrw6TDpG50eXkgYXV0b21hYXR0aXNlc3RpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iUnV1dHUgb24gbHVraXR0dSB2YWFrYXN1dW50YWFuLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiJSdXV0dSBvbiBsdWtpdHR1IHB5c3R5c3V1bnRhYW4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IkrDpGxraXJ1b2thdml0cmlpbmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iVW5lbG1hdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiJMZW50b2tvbmV0aWxhIjwvc3RyaW5nPgpAQCAtMTk4LDggKzIwMCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJMYW5nYXRvbiBuw6R5dHTDtiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IktpcmtrYXVzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IkFVVE8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4iSWxtb2l0dWtzZXQgbsOka3l2w6R0IHTDpHNzw6QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiJOw6RldCBpbG1vaXR1a3NldCBsaXVcJ3V0dGFtYWxsYSBzb3JtZWEgYWxhcyBydXVkdWxsYS5cblZvaXQgcGFsYXV0dGFhIGrDpHJqZXN0ZWxtw6RuIG9oamFpbWV0IG7DpGt5dmlpbiBsaXVcJ3V0dGFtYWxsYSBzb3JtZWEgYWxhcyB1dWRlbGxlZW4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4iVHVvIHBhbGtraSBuw6RreXZpaW4gbGl1XCd1dHRhbWFsbGEgcnV1ZHVuIHJldW5hc3RhIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiJUdW8gasOkcmplc3RlbG3DpHBhbGtraSBuw6RreXZpaW4gbGl1XCd1dHRhbWFsbGEgcnV1ZHVuIHJldW5hc3RhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+IkvDpMOkbnRlaW5lbiB2w6RyaXRpbGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiJLb250cmFzdGlucGFyYW5udXN0aWxhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiJWw6RyaW5rb3JqYXVzdGlsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iVmVya2tvYSBzYWF0ZXRhYW5cbnZhbHZvYSI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1mci1yQ0EtbGFuZC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZnItckNBLWxhbmQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc3NWZjNgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZnItckNBLWxhbmQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfcm90YXRpb25fbG9ja2VkIiBtc2dpZD0iNzYwOTY3MzAxMTQzMTU1NjA5MiI+IkxcJ8OpY3JhbiBlc3QgZMOpc29ybWFpcyB2ZXJyb3VpbGzDqSBhdSBmb3JtYXQgcGF5c2FnZS4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1mci1yQ0Evc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBjYzAxMgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjA5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTY0OTM3MzQ0ODUwMDA0NDY2Ij4iSVUgc3lzdMOobWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2NsZWFyX2FsbF9idXR0b24iIG1zZ2lkPSI3Nzc0NzIxMzQ0NzE2NzMxNjAzIj4iRWZmYWNlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X3JlbW92ZV9pdGVtX3RpdGxlIiBtc2dpZD0iNjAyNjM5NTg2ODEyOTg1Mjk2OCI+IlN1cHByaW1lciBkZSBsYSBsaXN0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9Ijc3OTM2MjQ4NjQ1Mjg4MTg1NjkiPiJJbmZvcm1hdGlvbnMgc3VyIGxcJ2FwcGxpY2F0aW9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19yZWNlbnRfYXBwcyIgbXNnaWQ9IjY1NzYzOTI5NTEwNTM5OTQ2NDAiPiJBdWN1bmUgYXBwbGljYXRpb24gcsOpY2VudGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfZGlzbWlzc19yZWNlbnRzIiBtc2dpZD0iNDU3NjA3NjA3NTIyNjU0MDEwNSI+Ik1hc3F1ZXIgbGVzIGFwcGxpY2F0aW9ucyByw6ljZW50ZXMiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9yZWNlbnRfYXBwcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NTQxNzYwODM4NjU4NDU1NDEiPiIxwqBhcHBsaWNhdGlvbiByw6ljZW50ZSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTA0MDc4NDM1OTc5NDg5MDc0NCI+IiVkwqBhcHBsaWNhdGlvbnMgcsOpY2VudGVzIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19ub3RpZmljYXRpb25zX3RpdGxlIiBtc2dpZD0iNDc1NTI2MTE2NzE5MzgzMzIxMyI+IkF1Y3VuZSBub3RpZmljYXRpb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX29uZ29pbmdfZXZlbnRzX3RpdGxlIiBtc2dpZD0iMTY4MjUwNDUxMzMxNjg3OTIwMiI+IkVuIGNvdXJzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9sYXRlc3RfZXZlbnRzX3RpdGxlIiBtc2dpZD0iNjU5NDc2NzQzODU3NzU5MzE3MiI+Ik5vdGlmaWNhdGlvbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd190aXRsZSIgbXNnaWQ9IjI3ODMxMDQ4MDc1NTEyMTE2MzkiPiJCcmFuY2hlciBsZSBjaGFyZ2V1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3N1YnRpdGxlIiBtc2dpZD0iMTc1MjA0MDA2MjA4NzgyOTE5NiI+IkxlIG5pdmVhdSBkZSBsYSBiYXR0ZXJpZSBlc3QgZmFpYmxlLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3BlcmNlbnRfZm9ybWF0IiBtc2dpZD0iMTA3NzI0NDk0OTMxODI2MTc2MSI+Ijx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkJSU8L3hsaWZmOmc+IHJlc3RhbnQocykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkX2NoYXJnZXIiIG1zZ2lkPSI0NTQ5MTA1OTk2NzQwNTIyNTIzIj4iQ2hhcmdlbWVudCBVU0Igbm9uIGNvbXBhdGlibGUuXG5Wb3VzIGRldmV6IHV0aWxpc2VyIGxlIGNoYXJnZXVyIGZvdXJuaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd193aHkiIG1zZ2lkPSI3Mjc5MTY5NjA5NTE4Mzg2MzcyIj4iVXRpbGlzYXRpb24gZGUgbGEgYmF0dGVyaWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjMwMjM4ODk5MTY2OTkyNzAyMjQiPiJQYXJhbcOodHJlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfd2lmaV9idXR0b24iIG1zZ2lkPSIxNzMzOTI4MTUxNjk4MzExOTIzIj4iV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDg3OTg3OTY5ODUwMDk1NTMwMCI+Ik1vZGUgQXZpb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fcm90YXRpb24iIG1zZ2lkPSIzNzkwNDgyNTQxMzU3Nzk4NDIxIj4iUm90YXRpb24gYXV0byBkZSBsXCfDqWNyYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX211dGVfbGFiZWwiIG1zZ2lkPSI1NTQ2ODI1NDk5MTc0MjkzOTYiPiJNVUVUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MTE0NTM2MTQ5NjIzMjQ2NzQiPiJBVVRPTUFUSVFVRSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfbm90aWZpY2F0aW9ucyIgbXNnaWQ9IjM5NzE0NjE3NjI4MDkwNTEzNyI+Ik5vdGlmaWNhdGlvbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4iQ29ubmV4aW9uIEJsdWV0b290aCBwYXJ0YWfDqWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2lucHV0X21ldGhvZF9zZXR0aW5nc19jb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjM1MDQyOTI0NzE1MTIzMTc4MjciPiJDb25maWd1cmVyIGxlcyBtb2RlcyBkZSBzYWlzaWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3VzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9Ijc1NTE5MDMwODQ0MTYwNTc4MTAiPiJDbGF2aWVyIHBoeXNpcXVlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjgzNDY5ODAwMTI3MTU2MjA1NyI+IkF1dG9yaXNlciBsXCdhcHBsaWNhdGlvbiA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IMOgIGFjY8OpZGVyIGF1IHDDqXJpcGjDqXJpcXVlIFVTQj8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iNTE3MTc3NTQxMTE3ODg2NTc1MCI+IkF1dG9yaXNlciBsXCdhcHBsaWNhdGlvbiA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IMOgIGFjY8OpZGVyIMOgIGxcJ2FjY2Vzc29pcmUgVVNCPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSI1MTYxMjA1MjU4NjM1MjUzMjA2Ij4iT3V2cmlyIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4gbG9ycyBkZSBsYSBjb25uZXhpb24gZGUgY2UgcMOpcmlwaMOpcmlxdWUgVVNCPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSIzODA4OTg0OTMxODMwMjI5ODg4Ij4iT3V2cmlyIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4gbG9ycyBkZSBsYSBjb25uZXhpb24gZGUgY2V0IGFjY2Vzc29pcmUgVVNCPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfdXJpX3Byb21wdCIgbXNnaWQ9IjUxMzQ1MDYyMTQxMzczMzM0MyI+IkF1Y3VuZSBhcHBsaWNhdGlvbiBpbnN0YWxsw6llIGNvbXBhdGlibGUgYXZlYyBhY2Nlc3NvaXJlIFVTQi4gRW4gc2F2b2lyIHBsdXMgc3VyIDx4bGlmZjpnIGlkPSJVUkwiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfdXNiX2FjY2Vzc29yeSIgbXNnaWQ9IjQ5NjYyNjUyNjM0NjUxODEzNzIiPiJBY2Nlc3NvaXJlIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3ZpZXciIG1zZ2lkPSI2MzA0NTY1NTUzMjE4MTkyOTkwIj4iQWZmaWNoZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2RldmljZSIgbXNnaWQ9IjE0NTAyODc0MzcwMTczMTU5MDYiPiJVdGlsaXNlciBwYXIgZMOpZmF1dCBwb3VyIGNlIHDDqXJpcGjDqXJpcXVlIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfYWNjZXNzb3J5IiBtc2dpZD0iMTIxMDk1NDU3Njk3OTYyMTU5NiI+IlV0aWxpc2VyIHBhciBkw6lmYXV0IHBvdXIgY2V0IGFjY2Vzc29pcmUgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ190aXRsZSIgbXNnaWQ9IjQ1MTM5MTgzOTMzODcxNDE5NDkiPiJBdXRvcmlzZXIgbGUgZMOpYm9nYWdlIFVTQj8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX21lc3NhZ2UiIG1zZ2lkPSIyMjIwMTQzODU1OTEyMzc2NDk2Ij4iRW1wcmVpbnRlIG51bcOpcmlxdWUgZGUgbGEgY2zDqSBSU0EgZGUgbFwnb3JkaW5hdGV1csKgOiBcbjx4bGlmZjpnIGlkPSJGSU5HRVJQUklOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IlRvdWpvdXJzIGF1dG9yaXNlciBzdXIgY2V0IG9yZGluYXRldXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiJab29tZXIgcG91ciByZW1wbGlyIGxcJ8OpY3JhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLDiXRpcmVyIHBvdXIgcmVtcGxpciBsXCfDqWNyYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4iRW5yZWdpc3RyZW1lbnQgY2FwdHVyZSDDqWNyYW7igKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiJFbnJlZ2lzdHJlbWVudCBjYXB0dXJlIMOpY3JhbuKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4iRW5yZWdpc3RyZW1lbnQgZGUgbGEgY2FwdHVyZSBkXCfDqWNyYW4gZW4gY291cnPigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RpdGxlIiBtc2dpZD0iNjQ2MTg2NTk2MDk2MTQxNDk2MSI+IkNhcHR1cmUgZFwnw6ljcmFuIHLDqXVzc2llIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90ZXh0IiBtc2dpZD0iMTE1MjgzOTY0NzY3NzU1ODgxNSI+IkFwcHV5ZXogcG91ciBhZmZpY2hlciB2b3RyZSBjYXB0dXJlIGRcJ8OpY3Jhbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X2ZhaWxlZF90aXRsZSIgbXNnaWQ9IjcwNTc4MTExNjc0NjkyMjc3MSI+IkltcG9zc2libGUgZGUgcsOpYWxpc2VyIHVuZSBjYXB0dXJlIGRcJ8OpY3JhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RleHQiIG1zZ2lkPSI4MTM0MDExMjY5NTcyNDE1NDAyIj4iSW1wb3NzaWJsZSBlbnJlZ2lzdHJlciBjYXB0dXJlIGRcJ8OpY3Jhbi4gUMOpcmlwaMOpcmlxdWUgZGUgc3RvY2thZ2UgcGV1dC3DqnRyZSBlbiBjb3VycyBkXCd1dGlsaXNhdGlvbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHJlZmVyZW5jZV90aXRsZSIgbXNnaWQ9IjY1NTEwNTAzNzczODg4ODI3ODciPiJPcHRpb25zIHRyYW5zZmVydCBmaWNoaWVycyBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfbXRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjQzMzM1MDQ0MTM1NjMwMjM2MjYiPiJJbnN0YWxsZXIgY29tbWUgdW4gbGVjdGV1ciBtdWx0aW3DqWRpYSAoTVRQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9wdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNzUxNzEyNzU0MDMwMTYyNTc1MSI+Ikluc3RhbGxlciBjb21tZSB1biBhcHBhcmVpbCBwaG90byAoUFRQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxlcl9jZF9idXR0b25fdGl0bGUiIG1zZ2lkPSIyMzEyNjY3NTc4NTYyMjAxNTgzIj4iSW5zdGFsbGVyIGFwcGxpY2F0aW9uIEFuZHJvaWTCoEZpbGXCoFRyYW5zZmVyIChNYWMpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYWNrIiBtc2dpZD0iNTY3MDExNTM4OTk0NDI5MTIwIj4iUHLDqWPDqWRlbnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4iRG9taWNpbGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJNZW51Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iQXBwbGljYXRpb25zIHLDqWNlbnRlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+IlJlY2hlcmNoZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4iQXBwYXJlaWwgcGhvdG8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IkJvdXRvbiBcIkNoYW5nZXIgbGUgbW9kZSBkZSBzYWlzaWVcIiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiJCb3V0b24gXCJab29tIGRlIGNvbXBhdGliaWxpdMOpXCIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+Ilpvb20gZGUgY29tcGF0aWJpbGl0w6kgYXZlYyBsYSB0YWlsbGUgZGUgbFwnw6ljcmFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfY29ubmVjdGVkIiBtc2dpZD0iMjcwNzAyNzYzMzI0Mjk4MzM3MCI+IkJsdWV0b290aCBjb25uZWN0w6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9kaXNjb25uZWN0ZWQiIG1zZ2lkPSI3NDE2NjQ4NjY5OTc2ODcwMTc1Ij4iQmx1ZXRvb3RoIGTDqWNvbm5lY3TDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fYmF0dGVyeSIgbXNnaWQ9IjM1ODM0MzAyMjM1MjgyMDk0NiI+IkJhdHRlcmllIHZpZGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfb25lX2JhciIgbXNnaWQ9Ijc3NzQ4ODc3MjE4OTEwNTc1MjMiPiJOaXZlYXUgZGUgYmF0dGVyaWXCoDogZmFpYmxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3R3b19iYXJzIiBtc2dpZD0iODUwMDY1MDQzODczNTAwOTk3MyI+Ik5pdmVhdSBkZSBiYXR0ZXJpZcKgOiBtb3llbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90aHJlZV9iYXJzIiBtc2dpZD0iMjMwMjk4MzMzMDg2NTA0MDQ0NiI+Ik5pdmVhdSBkZSBiYXR0ZXJpZcKgOiBib24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfZnVsbCIgbXNnaWQ9Ijg5MDkxMjI0MDE3MjAxNTg1ODIiPiJCYXR0ZXJpZSBwbGVpbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3Bob25lIiBtc2dpZD0iNDg5NDcwODkzNzA1MjYxMTI4MSI+IkF1Y3VuIHNpZ25hbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfb25lX2JhciIgbXNnaWQ9IjY4NzY5OTI3ODEzMjY2NDExNSI+IlNpZ25hbMKgOiBmYWlibGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3R3b19iYXJzIiBtc2dpZD0iODM4NDkwNTM4MjgwNDgxNTIwMSI+IlNpZ25hbMKgOiBtb3llbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdGhyZWVfYmFycyIgbXNnaWQ9Ijg1MjE5MDQ4NDM5MTk5NzE4ODUiPiJTaWduYWzCoDogYm9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9zaWduYWxfZnVsbCIgbXNnaWQ9IjY0NzE4MzQ4Njg1ODA3NTc4OTgiPiJTaWduYWwgZXhjZWxsZW50Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19kYXRhIiBtc2dpZD0iNDc5MTk2NjI5NTA5Njg2NzU1NSI+IkF1Y3VuIHNpZ25hbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9vbmVfYmFyIiBtc2dpZD0iMTQxNTYyNTgzMzIzODI3MzYyOCI+IlNpZ25hbCBmYWlibGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfdHdvX2JhcnMiIG1zZ2lkPSI2MTY2MDE4NDkyMzYwNDMyMDkxIj4iU2lnbmFsIG1veWVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4iU2lnbmFsIGJvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3MDgzODQ2MDgxMjQ1MTkzNjkiPiJTaWduYWwgZXhjZWxsZW50Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29mZiIgbXNnaWQ9IjMxNzczODAyOTY2OTc5MzM2MjciPiJXaS1GaSBkw6lzYWN0aXbDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2lmaSIgbXNnaWQ9IjE0MjU0NzY1NTE4Mjc5MjQ0NzQiPiJXaS1GaSBkw6ljb25uZWN0w6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiJTaWduYWwgV2ktRmkgZmFpYmxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3R3b19iYXJzIiBtc2dpZD0iNDk5NDI3NDI1MDQ5NzI2MjQzNCI+IlNpZ25hbCBXaS1GaSBtb3llbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90aHJlZV9iYXJzIiBtc2dpZD0iMzQ5NTc1NTA0NDI3NjU4ODM4NCI+IlNpZ25hbCBXaS1GaSBib24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2ODUzNTYxMzAzNTg2NDgwMzc2Ij4iU2lnbmFsIFdpLUZpIGV4Y2VsbGVudCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2ltYXgiIG1zZ2lkPSI0MzI5MTgwMTI5NzI3NjMwMzY4Ij4iQXVjdW4gc2lnbmFsIFdpTUFYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9vbmVfYmFyIiBtc2dpZD0iNDE3MDk5NDI5OTAxMTg2MzY0OCI+IlNpZ25hbCBXaU1BWMKgOiBmYWlibGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3R3b19iYXJzIiBtc2dpZD0iOTE3NjIzNjg1ODMzNjUwMjI4OCI+IlNpZ25hbCBXaU1BWMKgOiBtb3llbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiJTaWduYWwgV2lNQVjCoDogYm9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3NjgwODk5ODY3OTU1Nzk1NTgiPiJTaWduYWwgV2lNQVggOiBleGNlbGxlbnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpZ25hbCIgbXNnaWQ9IjcwNjQ2NDUzMjA3ODI1ODUxNjciPiJBdWN1biBzaWduYWwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4iTm9uIGNvbm5lY3TDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfemVyb19iYXJzIiBtc2dpZD0iMzgwNjA2MDIyNDQ2NzAyNzg4NyI+IkF1Y3VuIHNpZ25hbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfb25lX2JhciIgbXNnaWQ9IjE2ODU3MzAxMTMxOTIwODE4OTUiPiJTaWduYWwgZmFpYmxlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90d29fYmFycyIgbXNnaWQ9IjY0MzczNjM2NDgzODUyMDY2NzkiPiJNb3llbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdGhyZWVfYmFycyIgbXNnaWQ9IjI2NDgyNDE0MTUxMTkzOTY2NDgiPiJCb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NpZ25hbF9mdWxsIiBtc2dpZD0iOTEyMjkyMjg4NjUxOTY3NjgzOSI+IlNpZ25hbCBleGNlbGxlbnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb24iIG1zZ2lkPSIyMzg1MjU0NjkzNjI0MzQ1MjY1Ij4iQWN0aXbDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vZmYiIG1zZ2lkPSI2NDc1NTA4MTU3Nzg2ODUzMTU3Ij4iRMOpc2FjdGl2w6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfY29ubmVjdGVkIiBtc2dpZD0iODM2NjI1NjY5MzcxOTQ5OTY2NSI+IkNvbm5lY3TDqSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2dwcnMiIG1zZ2lkPSIxNjA2NDc3MjI0NDg2NzQ3NzUxIj4iR1BSUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzF4IiBtc2dpZD0iOTk0MTMzNDY4MTIwMjQ0MDE4Ij4iMXgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9oc3BhIiBtc2dpZD0iMjAzMjMyODg1NTQ2MjY0NTE5OCI+IjNHKyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzNnIiBtc2dpZD0iODYyODU2MjMwNTAwMzU2ODI2MCI+IjNHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMy41ZyIgbXNnaWQ9Ijg2NjQ4NDU2MDk5ODE2OTIwMDEiPiIzRysiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl80ZyIgbXNnaWQ9Ijc3NDEwMDA3NTA2MzAwODk2MTIiPiI0RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2x0ZSIgbXNnaWQ9IjU0MTM0Njg4MDg2Mzc1NDA2NTgiPiJMVEUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9jZG1hIiBtc2dpZD0iNjEzMjY0ODE5Mzk3ODgyMzAyMyI+IkNETUEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9yb2FtaW5nIiBtc2dpZD0iNTk3NzM2MjMzMzQ2NjU1NjA5NCI+Ikl0aW7DqXJhbmNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZWRnZSIgbXNnaWQ9IjQ0Nzc0NTcwNTE2MzE5NzkyNzgiPiJFREdFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fd2lmaSIgbXNnaWQ9IjIzMjQ0OTY3NTY1OTA2NDUyMjEiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fc2ltIiBtc2dpZD0iODI3NDAxNzExODQ3MjQ1NTE1NSI+IkF1Y3VuZSBjYXJ0ZSBTSU0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF90ZXRoZXIiIG1zZ2lkPSI0MTAyNzg0NDk4MTQwMjcxOTY5Ij4iUGFydGFnZSBkZSBjb25uZXhpb24gQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9haXJwbGFuZV9tb2RlIiBtc2dpZD0iODM0NzQ4OTk5NzkwNzYzMDkyIj4iTW9kZSBBdmlvbiI8L3N0cmluZz4KKyAgICA8IS0tIFN0cmluZy5mb3JtYXQgZmFpbGVkIGZvciB0cmFuc2xhdGlvbiAtLT4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfbGV2ZWwgKDc0NTE0NzQxODcxMTMzNzE5NjUpIC0tPgorICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9Ijc5OTU4MzkxMTIzMTg5MzM4MCI+IlBhcmFtw6h0cmVzIHN5c3TDqG1lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25zX2J1dHRvbiIgbXNnaWQ9IjQ0OTgwMDAzNjk3Nzk0MjE4OTIiPiJOb3RpZmljYXRpb25zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZW1vdmVfbm90aWZpY2F0aW9uIiBtc2dpZD0iMzYwMzA5OTUxNDkwMjE4MjM1MCI+IlN1cHByaW1lciBsYSBub3RpZmljYXRpb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19lbmFibGVkIiBtc2dpZD0iMzUxMTQ2OTQ5OTI0MDEyMzAxOSI+IkdQUyBhY3RpdsOpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfYWNxdWlyaW5nIiBtc2dpZD0iODk1OTMzMzM1MTA1ODk2NzE1OCI+IkFjcXVpc2l0aW9uIGRlIGRvbm7DqWVzIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHR5X2VuYWJsZWQiIG1zZ2lkPSI0NjEzMjAwMzY1Mzc5NDI2NTYxIj4iVMOpbMOpc2NyaXB0ZXVyIGFjdGl2w6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl92aWJyYXRlIiBtc2dpZD0iNjY2NTg1MzYzMzY0MTU1MDU1Ij4iU29ubmVyaWUgZW4gbW9kZSB2aWJyZXVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfc2lsZW50IiBtc2dpZD0iOTA2MTI0MzMwNzkzOTEzNTM4MyI+IlNvbm5lcmllIGVuIG1vZGUgc2lsZW5jaWV1eCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50c19pdGVtX2Rpc21pc3NlZCIgbXNnaWQ9IjY4MDM1NzQ5MzUwODQ4NjcwNzAiPiJBcHBsaWNhdGlvbiBcIjx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPlwiIGlnbm9yw6llLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uX2Rpc21pc3NlZCIgbXNnaWQ9Ijg1NDIxMTM4NzE4NjMwNjkyNyI+Ik5vdGlmaWNhdGlvbiBtYXNxdcOpZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19ub3RpZmljYXRpb25fc2hhZGUiIG1zZ2lkPSI0NjkwMjc0ODQ0NDQ3NTA0MjA4Ij4iVm9sZXQgZGVzIG5vdGlmaWNhdGlvbnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfcXVpY2tfc2V0dGluZ3MiIG1zZ2lkPSI2MTg2Mzc4NDExNTgyNDM3MDQ2Ij4iUGFyYW3DqHRyZXMgcmFwaWRlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19yZWNlbnRfYXBwcyIgbXNnaWQ9IjkwMTQwMzI5MTY0MTA1OTAwMjciPiJBcHBsaWNhdGlvbnMgcsOpY2VudGVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc191c2VyIiBtc2dpZD0iMTEwNDg0NjY5OTg2OTQ3Njg1NSI+IlV0aWxpc2F0ZXVyIDogPHhsaWZmOmcgaWQ9IlVTRVIiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3Nfd2lmaSIgbXNnaWQ9IjYwOTk3ODEwMzE2Njk3Mjg3MDkiPiI8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19tb2JpbGUiIG1zZ2lkPSI0ODc2ODA2NTY0MDg2MjQxMzQxIj4iU2lnbmFsIG1vYmlsZcKgOiA8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPiwgPHhsaWZmOmcgaWQ9IlRZUEUiPiUyJHM8L3hsaWZmOmc+LCA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTMkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4iQmF0dGVyaWXCoDogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+Ik1vZGUgQXZpb27CoDogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGjCoDogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IkxvY2FsaXNhdGlvbiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4iQWxhcm1lIHLDqWdsw6llIHN1ciA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iRG9ubsOpZXMgMkctM0cgIGTDqXNhY3RpdsOpZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiJEb25uw6llcyA0RyBkw6lzYWN0aXbDqWVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfbW9iaWxlX3RpdGxlIiBtc2dpZD0iMTA0NjA0NzI0ODg0NDgyMTIwMiI+IkRvbm7DqWVzIG1vYmlsZXMgZMOpc2FjdGl2w6llcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMjA4NjgxNTMwNDg1ODk2NDk1NCI+IkRvbm7DqWVzIGTDqXNhY3RpdsOpZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZyIgbXNnaWQ9IjM4NTMxMTcyNjkwNTE4MDYyODAiPiJWb3VzIGF2ZXogYXR0ZWludCBsZSBwbGFmb25kIGRlIGNvbnNvbW1hdGlvbiBkZSBkb25uw6llcyBzcMOpY2lmacOpLlxuXG5TaSB2b3VzIHV0aWxpc2V6IGRlcyBkb25uw6llcyBzdXBwbMOpbWVudGFpcmVzLCBjZWxsZXMtY2kgcG91cnJvbnQgw6p0cmUgZmFjdHVyw6llcyBwYXIgbFwnb3DDqXJhdGV1ci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19lbmFibGUiIG1zZ2lkPSI3NzI5NzcyMDM5MjA4NjY0NjA2Ij4iUsOpYWN0aXZlciBjb25uZXhpb24gZG9ubsOpZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl9kaXNjb25uZWN0ZWQiIG1zZ2lkPSIxOTQwMjMxNTIxMjc0MTQ3NzcxIj4iQXVjdW5lIGNvbm5leGlvbiBJbnRlcm5ldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IkNvbm5lY3TDqSBhdSBXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iUmVjaGVyY2hlIGRlIEdQUy4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJQb3NpdGlvbiBkw6lmaW5pZSBwYXIgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4iRGVtYW5kZXMgZGUgbG9jYWxpc2F0aW9uIGFjdGl2ZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiJTdXBwcmltZXIgdG91dGVzIGxlcyBub3RpZmljYXRpb25zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IkluZm9ybWF0aW9ucyBzdXIgbFwnYXBwbGljYXRpb24iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IkxcJ8OpY3JhbiBwaXZvdGUgYXV0b21hdGlxdWVtZW50LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iTFwnw6ljcmFuIGVzdCB2ZXJyb3VpbGzDqSBlbiBtb2RlIHBheXNhZ2UuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IkxcJ8OpY3JhbiBlc3QgdmVycm91aWxsw6kgZW4gbW9kZSBwb3J0cmFpdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4iVml0cmluZSBkZXMgZGVzc2VydHMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iw4ljcmFuIGRlIHZlaWxsZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiJNb2RlIEF2aW9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2luZ19sYWJlbCIgbXNnaWQ9IjQ5MDA3NDc3NDQ2NTMwOTIwOSI+IkVuIGNoYXJnZSAoPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnZWRfbGFiZWwiIG1zZ2lkPSI4ODY1NDEzMDc5NDE0MjQ2MDgxIj4iQ2hhcmfDqWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbGFiZWwiIG1zZ2lkPSI2MzA0MTkwMjg1MTcwNzIxNDAxIj4iQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX211bHRpcGxlX2RldmljZXNfbGFiZWwiIG1zZ2lkPSIzOTEyMjQ1NTY1NjEzNjg0NzM1Ij4iQmx1ZXRvb3RoICg8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz7CoGFwcGFyZWlscykiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfb2ZmX2xhYmVsIiBtc2dpZD0iODE1OTY1MjE0NjE0OTIxOTkzNyI+IkJMVUVUT09USCBEw4lTQUNUSVbDiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI2OTY4MzcyMjk3MDE4NzU1ODE1Ij4iTHVtaW5vc2l0w6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IlJvdGF0aW9uIGF1dG9tYXRpcXVlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fbG9ja2VkX2xhYmVsIiBtc2dpZD0iODA1ODY0NjQ0NzI0MjU2NTQ4NiI+IlJvdGF0aW9uIHZlcnJvdWlsbMOpZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ltZV9sYWJlbCIgbXNnaWQ9IjcwNzM0NjMwNjQzNjk0Njg0MjkiPiJNb2RlIGRlIHNhaXNpZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+IlBvc2l0aW9uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsIiBtc2dpZD0iNzQ2NDU0NDA4NjUwNzMzMTQ1OSI+IkxvY2FsaXNhdGlvbiBkw6lzYWN0aXbDqWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4iQXBwYXJlaWwgbXVsdGltw6lkaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2xhYmVsIiBtc2dpZD0iNzcyNTY3MTMzNTU1MDY5NTU4OSI+IlJTU0kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2VtZXJnZW5jeV9vbmx5IiBtc2dpZD0iMjcxMzc3NDA0MTY3Mjg4Njc1MCI+IkFwcGVscyBkXCd1cmdlbmNlIHVuaXF1ZW1lbnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19zZXR0aW5nc19sYWJlbCIgbXNnaWQ9IjUzMjY1NTY1OTI1NzgwNjU0MDEiPiJQYXJhbcOodHJlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3RpbWVfbGFiZWwiIG1zZ2lkPSI0NjM1OTY5MTgyMjM5NzM2NDA4Ij4iSGV1cmVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfdXNlcl9sYWJlbCIgbXNnaWQ9IjUyMzg5OTU2MzIxMzA4OTc4NDAiPiJNb2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2xhYmVsIiBtc2dpZD0iOTEzNTM0NDcwNDg5OTU0NjA0MSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNzE3MTkwNDg0NTM0NTU3MzQzMSI+Ik5vbiBjb25uZWN0w6kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vX25ldHdvcmsiIG1zZ2lkPSIyMjIxOTkzMDc3MjIwODU2Mzc2Ij4iQXVjdW4gcsOpc2VhdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfb2ZmX2xhYmVsIiBtc2dpZD0iNzU1ODc3ODEwMDg0Mzg4NTg2NCI+IldpLUZpIGTDqXNhY3RpdsOpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X2xhYmVsIiBtc2dpZD0iNjg5MzU5Mjk2NDQ2MzYyNDMzMyI+IkFmZmljaGFnZSBXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IkFmZmljaGFnZSBzYW5zIGZpbCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+Ikx1bWlub3NpdMOpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IkFVVE9NQVRJUVVFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+Ik1vZGUgZFwnaW52ZXJzaW9uIGRlcyBjb3VsZXVycyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+Ik1vZGUgZFwnYWNjZW50dWF0aW9uIGR1IGNvbnRyYXN0ZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4iTW9kZSBkZSBjb3JyZWN0aW9uIGRlcyBjb3VsZXVycyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iTGUgcsOpc2VhdSBwZXV0XG7DqnRyZSBzdXJ2ZWlsbMOpLiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1mci9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtZnIvc3RyaW5ncy54bWwKaW5kZXggN2RiMDdlMi4uN2IxZTEwMCAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1mci9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWZyL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IlRvdWpvdXJzIGF1dG9yaXNlciBzdXIgY2V0IG9yZGluYXRldXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiJab29tZXIgcG91ciByZW1wbGlyIGxcJ8OpY3JhbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLDiXRpcmVyIHBvdXIgcmVtcGxpciBsXCfDqWNyYW4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJab29tIGRlIGNvbXBhdGliaWxpdMOpIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+IlNpIHVuZSBhcHBsaWNhdGlvbiBhIMOpdMOpIGNvbsOndWUgcG91ciB1biDDqWNyYW4gcGx1cyBwZXRpdCwgdW5lIGNvbW1hbmRlIGRlIHpvb20gc1wnYWZmaWNoZSDDoCBjw7R0w6kgZGUgbFwnaG9ybG9nZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4iRW5yZWdpc3RyZW1lbnQgY2FwdHVyZSDDqWNyYW7igKYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiJFbnJlZ2lzdHJlbWVudCBkZSBsYSBjYXB0dXJlIGRcJ8OpY3JhbuKApiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4iRW5yZWdpc3RyZW1lbnQgZGUgbGEgY2FwdHVyZSBkXCfDqWNyYW4gZW4gY291cnPigKYiPC9zdHJpbmc+CkBAIC03OCw2ICs3Niw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4iQWNjdWVpbCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+Ik1lbnUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiJBcHBsaWNhdGlvbnMgcsOpY2VudGVzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4iUmVjaGVyY2hlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiJBcHBhcmVpbCBwaG90byI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4iQm91dG9uIFwiQ2hhbmdlciBsZSBtb2RlIGRlIHNhaXNpZVwiIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IkJvdXRvbiBcIlpvb20gZGUgY29tcGF0aWJpbGl0w6lcIiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4iWm9vbSBkZSBjb21wYXRpYmlsaXTDqSBhdmVjIGxhIHRhaWxsZSBkZSBsXCfDqWNyYW4iPC9zdHJpbmc+CkBAIC0xNTUsNiArMTU1LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJCYXR0ZXJpZcKgOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iTW9kZSBBdmlvbsKgOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aMKgOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4iTG9jYWxpc2F0aW9uIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiJBbGFybWUgcsOpZ2zDqWUgc3VyIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiJEb25uw6llcyAyRy0zRyBkw6lzYWN0aXbDqWVzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iRG9ubsOpZXMgNEcgZMOpc2FjdGl2w6llcyI8L3N0cmluZz4KQEAgLTE2NiwxMiArMTY3LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJDb25uZWN0w6kgYXUgV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IlJlY2hlcmNoZSBkZSBHUFMuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4iUG9zaXRpb24gZMOpZmluaWUgcGFyIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IkRlbWFuZGVzIGRlIGxvY2FsaXNhdGlvbiBhY3RpdmVzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iU3VwcHJpbWVyIHRvdXRlcyBsZXMgbm90aWZpY2F0aW9ucyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiJJbmZvcm1hdGlvbnMgc3VyIGxcJ2FwcGxpY2F0aW9uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiJMXCfDqWNyYW4gcGl2b3RlIGF1dG9tYXRpcXVlbWVudC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IkxcJ8OpY3JhbiBlc3QgdmVycm91aWxsw6kgZW4gbW9kZSBwYXlzYWdlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiJMXCfDqWNyYW4gZXN0IHZlcnJvdWlsbMOpIGVuIG1vZGUgcG9ydHJhaXQuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IlZpdHJpbmUgZGVzIGRlc3NlcnRzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IsOJY3JhbiBkZSB2ZWlsbGUgaW50ZXJhY3RpZiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiJNb2RlIGF2aW9uIjwvc3RyaW5nPgpAQCAtMTg0LDEwICsxODYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fdW5sb2NrZWRfbGFiZWwiIG1zZ2lkPSIzMzYwNTQ5MzAzNjI1ODA1ODQiPiJSb3RhdGlvbiBhdXRvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fbG9ja2VkX2xhYmVsIiBtc2dpZD0iODA1ODY0NjQ0NzI0MjU2NTQ4NiI+IlJvdGF0aW9uIGJsb3F1w6llIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+Ik1vZGUgZGUgc2Fpc2llIjwvc3RyaW5nPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsICg1MDExMzI3MDQ4NzQ4NzYyMjU3KSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCAoNzQ2NDU0NDA4NjUwNzMzMTQ1OSkgLS0+Ci0gICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+IkxvY2FsaXNhdGlvbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiJMb2NhbGlzYXRpb24gZMOpc2FjdGl2w6llIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbWVkaWFfZGV2aWNlX2xhYmVsIiBtc2dpZD0iMTMwMjkwNjgzNjM3MjYwMzc2MiI+IkFwcGFyZWlsIG11bHRpbcOpZGlhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9sYWJlbCIgbXNnaWQ9Ijc3MjU2NzEzMzU1NTA2OTU1ODkiPiJSU1NJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9lbWVyZ2VuY3lfb25seSIgbXNnaWQ9IjI3MTM3NzQwNDE2NzI4ODY3NTAiPiJBcHBlbHMgZFwndXJnZW5jZSB1bmlxdWVtZW50Ijwvc3RyaW5nPgpAQCAtMjAyLDggKzIwMiw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJBZmZpY2hhZ2Ugc2FucyBmaWwiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiJMdW1pbm9zaXTDqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiJBVVRPTUFUSVFVRSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiJMZXMgbm90aWZpY2F0aW9ucyBz4oCZYWZmaWNoZW50IGljaSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+IkFjY8OpZGV6LXkgw6AgdG91dCBtb21lbnQgZW4gZmFpc2FudCBnbGlzc2VyIGxlIGRvaWd0IHZlcnMgbGUgYmFzLlxuUsOpcMOpdGV6IGxcJ29ww6lyYXRpb24gcG91ciBhY2PDqWRlciBhdXggY29tbWFuZGVzIGR1IHN5c3TDqG1lLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+IkZhaXRlcyBnbGlzc2VyIHZvdHJlIGRvaWd0IHN1ciBsZSBjw7R0w6kgZGUgbFwnw6ljcmFuIHBvdXIgYWZmaWNoZXIgbGEgYmFycmUuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiJGYWl0ZXMgZ2xpc3NlciB2b3RyZSBkb2lndCDDoCBwYXJ0aXIgZFwndW4gY8O0dMOpIGRlIGxcJ8OpY3JhbiBwb3VyIGFmZmljaGVyIGxhIGJhcnJlIHN5c3TDqG1lLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiJNb2RlIGRcJ2ludmVyc2lvbiBkZXMgY291bGV1cnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiJNb2RlIGRcJ2FjY2VudHVhdGlvbiBkdSBjb250cmFzdGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+Ik1vZGUgZGUgY29ycmVjdGlvbiBkZXMgY291bGV1cnMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+IkxlIHLDqXNlYXUgcGV1dFxuw6p0cmUgc3VydmVpbGzDqS4iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sCmluZGV4IDg2MmUyZWYuLjU5YzVkYmQgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1oaS9zdHJpbmdzLnhtbApAQCAtMjIsMTIgKzIyLDEyIEBACiAgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTY0OTM3MzQ0ODUwMDA0NDY2Ij4i4KS44KS/4KS44KWN4oCN4KSf4KSuIFVJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9jbGVhcl9hbGxfYnV0dG9uIiBtc2dpZD0iNzc3NDcyMTM0NDcxNjczMTYwMyI+IuCkuOCkvuCkq+CkvCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9yZW1vdmVfaXRlbV90aXRsZSIgbXNnaWQ9IjYwMjYzOTU4NjgxMjk4NTI5NjgiPiLgpLjgpYLgpJrgpYAg4KS44KWHIOCkqOCkv+CkleCkvuCksuClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9Ijc3OTM2MjQ4NjQ1Mjg4MTg1NjkiPiLgpI/gpKrgpY3igI3gpLLgpL/gpJXgpYfgpLbgpKgg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19yZWNlbnRfYXBwcyIgbXNnaWQ9IjY1NzYzOTI5NTEwNTM5OTQ2NDAiPiLgpJXgpYvgpIgg4KS54KS+4KSyIOCkueClgCDgpJXgpYcg4KSP4KSq4KWN4KSy4KS/4KSV4KWH4KS24KSoIOCkqOCkueClgOCkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9kaXNtaXNzX3JlY2VudHMiIG1zZ2lkPSI0NTc2MDc2MDc1MjI2NTQwMTA1Ij4i4KS54KS+4KSyIOCkueClgCDgpJXgpYcg4KSP4KSq4KWN4KSy4KS/4KSV4KWH4KS24KSoIOCkluCkvuCksOCkv+CknCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSI3NzkzNjI0ODY0NTI4ODE4NTY5Ij4i4KSQ4KSq4KWN4KS4IOCknOCkvuCkqOCkleCkvuCksOClgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm9fcmVjZW50X2FwcHMiIG1zZ2lkPSI2NTc2MzkyOTUxMDUzOTk0NjQwIj4i4KSV4KWL4KSIIOCkueCkvuCksiDgpLngpYAg4KSV4KWHIOCkkOCkquCljeCkuCAg4KSo4KS54KWA4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X2Rpc21pc3NfcmVjZW50cyIgbXNnaWQ9IjQ1NzYwNzYwNzUyMjY1NDAxMDUiPiLgpLngpL7gpLIg4KS54KWAIOCkleClhyDgpJDgpKrgpY3gpLggIOCkluCkvuCksOCkv+CknCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgIDxwbHVyYWxzIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9yZWNlbnRfYXBwcyI+Ci0gICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NTQxNzYwODM4NjU4NDU1NDEiPiIxIOCkueCkvuCksiDgpLngpYAg4KSV4KS+IOCkj+CkquCljeCksuCkv+CkleClh+CktuCkqCI8L2l0ZW0+Ci0gICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTA0MDc4NDM1OTc5NDg5MDc0NCI+IiVkIOCkueCkvuCksiDgpLngpYAg4KSV4KWHIOCkj+CkquCljeCksuCkv+CkleClh+CktuCkqCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NTQxNzYwODM4NjU4NDU1NDEiPiIxIOCkueCkvuCksiDgpLngpYAg4KSV4KS+IOCkkOCkquCljeCkuCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTA0MDc4NDM1OTc5NDg5MDc0NCI+IiVkIOCkueCkvuCksiDgpLngpYAg4KSV4KWHIOCkkOCkquCljeCkuCI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm9fbm90aWZpY2F0aW9uc190aXRsZSIgbXNnaWQ9IjQ3NTUyNjExNjcxOTM4MzMyMTMiPiLgpJXgpYvgpIgg4KS44KWC4KSa4KSo4KS+IOCkqOCkueClgOCkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfb25nb2luZ19ldmVudHNfdGl0bGUiIG1zZ2lkPSIxNjgyNTA0NTEzMzE2ODc5MjAyIj4i4KSR4KSo4KSX4KWL4KSH4KSC4KSXIjwvc3RyaW5nPgpAQCAtNDAsMTggKzQwLDE4IEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjMwMjM4ODk5MTY2OTkyNzAyMjQiPiLgpLjgpYfgpJ/gpL/gpILgpJciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3dpZmlfYnV0dG9uIiBtc2dpZD0iMTczMzkyODE1MTY5ODMxMTkyMyI+IldpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQ4Nzk4Nzk2OTg1MDA5NTUzMDAiPiLgpLngpLXgpL7gpIgg4KSc4KS54KS+4KScIOCkruCli+CkoSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19yb3RhdGlvbiIgbXNnaWQ9IjM3OTA0ODI1NDEzNTc3OTg0MjEiPiLgpLjgpY3igI3gpJXgpY3gpLDgpYDgpKgg4KS44KWN4oCN4KS14KSkOiDgpJjgpYHgpK7gpL7gpI/gpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fcm90YXRpb24iIG1zZ2lkPSIzNzkwNDgyNTQxMzU3Nzk4NDIxIj4i4KS44KWN4oCN4KSV4KWN4KSw4KWA4KSoIOCkheCkquCkqOClh+CkhuCkqiDgpJjgpYHgpK7gpL7gpI/gpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX211dGVfbGFiZWwiIG1zZ2lkPSI1NTQ2ODI1NDk5MTc0MjkzOTYiPiLgpK7gpY3gpK/gpYLgpJ8g4KSV4KSw4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MTE0NTM2MTQ5NjIzMjQ2NzQiPiLgpLjgpY3gpLXgpKQ6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19ub3RpZmljYXRpb25zIiBtc2dpZD0iMzk3MTQ2MTc2MjgwOTA1MTM3Ij4i4KS44KWC4KSa4KSo4KS+4KSP4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYmx1ZXRvb3RoX3RldGhlcmVkIiBtc2dpZD0iNzA5NDEwMTYxMjE2MTEzMzI2NyI+IkJsdWV0b290aCDgpJ/gpYDgpKbgpLAg4KSV4KS/4KSv4KS+IOCkl+Ckr+CkviI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaW5wdXRfbWV0aG9kX3NldHRpbmdzX2NvbmZpZ3VyZV9pbnB1dF9tZXRob2RzIiBtc2dpZD0iMzUwNDI5MjQ3MTUxMjMxNzgyNyI+IuCkh+CkqOCkquClgeCknyDgpKrgpKbgpY3gpKfgpKTgpL8g4KS44KWH4KSfIOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfdXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNzU1MTkwMzA4NDQxNjA1NzgxMCI+IuCkreCljOCkpOCkv+CklSDgpJXgpYDgpKzgpYvgpLDgpY3gpKEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iODM0Njk4MDAxMjcxNTYyMDU3Ij4i4KSP4KSq4KWN4KSy4KS/4KSV4KWH4KS24KSoIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g4KSV4KWLIFVTQiDgpIngpKrgpJXgpLDgpKMg4KSk4KSVIOCkquCkueClgeCkguCkmuCkqOClhyDgpKbgpYfgpII/Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjUxNzE3NzU0MTExNzg4NjU3NTAiPiLgpI/gpKrgpY3gpLLgpL/gpJXgpYfgpLbgpKggPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDgpJXgpYsgVVNCIOCkuOCkueCkvuCkr+CklSDgpIngpKrgpJXgpLDgpKMg4KSk4KSVIOCkquCkueClgeCkguCkmuCkqOClhyDgpKbgpYfgpII/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjgzNDY5ODAwMTI3MTU2MjA1NyI+IuCkkOCkquCljeCkuCAgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDgpJXgpYsgVVNCIOCkieCkquCkleCksOCkoyDgpKTgpJUg4KSq4KS54KWB4KSC4KSa4KSo4KWHIOCkpuClh+Ckgj8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iNTE3MTc3NTQxMTE3ODg2NTc1MCI+IuCkkOCkquCljeCkuCAgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDgpJXgpYsgVVNCIOCkuOCkueCkvuCkr+CklSDgpIngpKrgpJXgpLDgpKMg4KSk4KSVIOCkquCkueClgeCkguCkmuCkqOClhyDgpKbgpYfgpII/Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjUxNjEyMDUyNTg2MzUyNTMyMDYiPiLgpJzgpKwg4KSv4KS5IFVTQiDgpIngpKrgpJXgpLDgpKMg4KSV4KSo4KWH4KSV4KWN4KSfIOCkleCkv+Ckr+CkviDgpJzgpL7gpI8sIOCkpOCkrCA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+IOCkleCliyDgpJbgpYvgpLLgpYfgpII/Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjM4MDg5ODQ5MzE4MzAyMjk4ODgiPiLgpJzgpKwg4KSv4KS5IFVTQiDgpI/gpLjgpYfgpLjgpLDgpYAg4KSV4KSo4KWH4KSV4KWN4KSfIOCkleClgCDgpJzgpL7gpI8sIOCkpOCkrCA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+IOCkleCliyDgpJbgpYvgpLLgpYfgpII/Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV91cmlfcHJvbXB0IiBtc2dpZD0iNTEzNDUwNjIxNDEzNzMzMzQzIj4i4KSH4KS4IFVTQiDgpLjgpLngpL7gpK/gpJUg4KSJ4KSq4KSV4KSw4KSjIOCkleClhyDgpLjgpL7gpKUg4KSV4KWL4KSIIOCkreClgCDgpIfgpILgpLjgpY3gpJ/gpYngpLIg4KSP4KSq4KWN4KSy4KS/4KSV4KWH4KS24KSoIOCkleCkvuCkriDgpKjgpLngpYDgpIIg4KSV4KSw4KSk4KS+LiDgpIfgpLgg4KS44KS54KS+4KSv4KSVIOCkieCkquCkleCksOCkoyDgpJXgpYcg4KSs4KS+4KSw4KWHIOCkruClh+CkgiDgpK/gpLngpL7gpIIg4KSF4KSn4KS/4KSVIOCknOCkvuCkqOClh+CkgjogPHhsaWZmOmcgaWQ9IlVSTCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3VyaV9wcm9tcHQiIG1zZ2lkPSI1MTM0NTA2MjE0MTM3MzMzNDMiPiLgpIfgpLggVVNCIOCkuOCkueCkvuCkr+CklSDgpIngpKrgpJXgpLDgpKMg4KSV4KWHIOCkuOCkvuCkpSDgpJXgpYvgpIgg4KSt4KWAIOCkh+CkguCkuOCljeCkn+ClieCksiDgpJDgpKrgpY3gpLggIOCkleCkvuCkriDgpKjgpLngpYDgpIIg4KSV4KSw4KSk4KS+LiDgpIfgpLgg4KS44KS54KS+4KSv4KSVIOCkieCkquCkleCksOCkoyDgpJXgpYcg4KSs4KS+4KSw4KWHIOCkruClh+CkgiDgpK/gpLngpL7gpIIg4KSF4KSn4KS/4KSVIOCknOCkvuCkqOClh+CkgjogPHhsaWZmOmcgaWQ9IlVSTCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+IlVTQiDgpLjgpLngpL7gpK/gpJUg4KS44KS+4KSn4KSoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfdmlldyIgbXNnaWQ9IjYzMDQ1NjU1NTMyMTgxOTI5OTAiPiLgpKbgpYfgpJbgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2RldmljZSIgbXNnaWQ9IjE0NTAyODc0MzcwMTczMTU5MDYiPiLgpIfgpLggVVNCIOCkieCkquCkleCksOCkoyDgpJXgpYcg4KSy4KS/4KSPIOCkoeCkv+Ckq+CkvOClieCksuCljeKAjeCknyDgpLDgpYLgpKog4KS44KWHIOCkieCkquCkr+Cli+CklyDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IuCkh+CkuCDgpJXgpILgpKrgpY3gpK/gpYLgpJ/gpLAg4KS44KWHIOCkueCkruClh+CktuCkviDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KWH4KSCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4i4KS44KWN4oCN4KSV4KWN4KSw4KWA4KSoIOCkreCksOCkqOClhyDgpLngpYfgpKTgpYEg4KSc4KS84KWC4KSuIOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLgpLjgpY3igI3gpJXgpY3gpLDgpYDgpKgg4KSV4KWLIOCkreCksOCkqOClhyDgpJXgpYcg4KSy4KS/4KSPIOCkluClgOCkguCkmuClh+CkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+IuCkuOCkguCkl+CkpOCkpOCkviDgpJzgpLzgpYLgpK4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4i4KSc4KSsIOCkleCkv+CkuOClgCDgpJvgpYvgpJ/gpYAg4KS44KWN4oCN4KSV4KWN4KSw4KWA4KSoIOCkleClhyDgpLLgpL/gpI8g4KSP4KSq4KWN4oCN4KSy4KS/4KSV4KWH4KS24KSoIOCkleCliyDgpKHgpL/gpJzgpLzgpL7gpIfgpKgg4KSV4KS/4KSv4KS+IOCknOCkvuCkpOCkviDgpLngpYgsIOCkpOCliyDgpJzgpLzgpYLgpK4g4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KSjIOCkleCljeCksuClieCklSDgpJXgpYcg4KSq4KS+4KS4IOCkpuCkv+CkluCkvuCkiCDgpKbgpYfgpJfgpL4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IuCkuOCljeCkleCljeCksOClgOCkqOCktuClieCknyDgpLjgpLngpYfgpJzgpL4g4KSc4KS+IOCksOCkueCkviDgpLngpYguLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiLgpLjgpY3gpJXgpY3gpLDgpYDgpKjgpLbgpYngpJ8g4KS44KS54KWH4KSc4KS+IOCknOCkviDgpLDgpLngpL4g4KS54KWILi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLgpLjgpY3gpJXgpY3gpLDgpYDgpKjgpLbgpYngpJ8g4KS44KS54KWH4KSc4KS+IOCknOCkviDgpLDgpLngpL4g4KS54KWILiI8L3N0cmluZz4KQEAgLTczLDExICs3MSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX3ByZWZlcmVuY2VfdGl0bGUiIG1zZ2lkPSI2NTUxMDUwMzc3Mzg4ODgyNzg3Ij4iVVNCIOCkq+CkvOCkvuCkh+CksiDgpLjgpY3gpKXgpL7gpKjgpL7gpILgpKTgpLDgpKMg4KS14KS/4KSV4KSy4KWN4KSqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXNlX210cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI0MzMzNTA0NDEzNTYzMDIzNjI2Ij4i4KSu4KWA4KSh4KS/4KSv4KS+IOCkquCljeCksuClh+Ckr+CksCDgpJXgpYcg4KSw4KWC4KSqIOCkruClh+CkgiDgpK7gpL7gpIngpILgpJ8g4KSV4KSw4KWH4KSCIChNVFApIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXNlX3B0cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI3NTE3MTI3NTQwMzAxNjI1NzUxIj4i4KSV4KWI4KSu4KSw4KWHIOCkleClhyDgpLDgpYLgpKog4KSu4KWH4KSCIOCkruCkvuCkieCkguCknyDgpJXgpLDgpYfgpIIgKFBUUCkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsZXJfY2RfYnV0dG9uX3RpdGxlIiBtc2dpZD0iMjMxMjY2NzU3ODU2MjIwMTU4MyI+Ik1hYyDgpJXgpYcg4KSy4KS/4KSPIEFuZHJvaWQgRmlsZSBUcmFuc2ZlciDgpI/gpKrgpY3gpLLgpL8uIOCkh+CkguCkuOCljeCkn+ClieCksiDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsZXJfY2RfYnV0dG9uX3RpdGxlIiBtc2dpZD0iMjMxMjY2NzU3ODU2MjIwMTU4MyI+Ik1hYyDgpJXgpYcg4KSy4KS/4KSPIEFuZHJvaWQgRmlsZSBUcmFuc2ZlciDgpJDgpKrgpY3gpLgg4KSH4KSC4KS44KWN4KSf4KWJ4KSyIOCkleCksOClh+CkgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmFjayIgbXNnaWQ9IjU2NzAxMTUzODk5NDQyOTEyMCI+IuCkteCkvuCkquCkuCDgpJzgpL7gpI/gpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4i4KS54KWL4KSuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4i4KSu4KWH4KSo4KWCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4i4KS54KS+4KSyIOCkueClgCDgpJXgpYcg4KSP4KSq4KWN4oCN4KSy4KS/4KSV4KWH4KS24KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4i4KS54KS+4KSyIOCkueClgCDgpJXgpYcg4KSQ4KSq4KWN4KS4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4i4KSW4KWL4KSc4KWH4KSCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+IuCkleCliOCkruCksOCkviI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4i4KSH4KSo4KSq4KWB4KSfIOCkquCkpuCljeCkp+CkpOCkv+KAjSDgpKzgpJ/gpKgg4KS44KWN4KS14KS/4KSaIOCkleCksOClh+Ckgi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4i4KS44KSC4KSX4KSk4KSk4KS+IOCknOCkvOClguCkriDgpKzgpJ/gpKguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiLgpJvgpYvgpJ/gpYAg4KS44KWHIOCkrOCkoeCkvOClgCDgpLjgpY3igI3gpJXgpY3gpLDgpYDgpKgg4KSq4KSwIOCknOCkvOClguCkriDgpJXgpLDgpYfgpIIuIjwvc3RyaW5nPgpAQCAtMTQ2LDEzICsxNDYsMTQgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uX2Rpc21pc3NlZCIgbXNnaWQ9Ijg1NDIxMTM4NzE4NjMwNjkyNyI+IuCkuOClguCkmuCkqOCkviDgpJbgpL7gpLDgpL/gpJwg4KSV4KWAIOCkl+CkiC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfbm90aWZpY2F0aW9uX3NoYWRlIiBtc2dpZD0iNDY5MDI3NDg0NDQ0NzUwNDIwOCI+IuCkuOClguCkmuCkqOCkviDgpLbgpYfgpKEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3F1aWNrX3NldHRpbmdzIiBtc2dpZD0iNjE4NjM3ODQxMTU4MjQzNzA0NiI+IuCkpOCljeCkteCksOCkv+CkpCDgpLjgpYfgpJ/gpL/gpILgpJcuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3JlY2VudF9hcHBzIiBtc2dpZD0iOTAxNDAzMjkxNjQxMDU5MDAyNyI+IuCkueCkvuCksiDgpLngpYAg4KSV4KWHIOCkj+CkquCljeKAjeCksuCkv+CkleClh+CktuCkqC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfcmVjZW50X2FwcHMiIG1zZ2lkPSI5MDE0MDMyOTE2NDEwNTkwMDI3Ij4i4KS54KS+4KSyIOCkueClgCDgpJXgpYcg4KSQ4KSq4KWN4KS4LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfdXNlciIgbXNnaWQ9IjExMDQ4NDY2OTk4Njk0NzY4NTUiPiLgpIngpKrgpK/gpYvgpJfgpJXgpLDgpY3gpKTgpL4gPHhsaWZmOmcgaWQ9IlVTRVIiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3dpZmkiIG1zZ2lkPSI2MDk5NzgxMDMxNjY5NzI4NzA5Ij4iPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJORVRXT1JLIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbW9iaWxlIiBtc2dpZD0iNDg3NjgwNjU2NDA4NjI0MTM0MSI+IuCkruCli+CkrOCkvuCkh+CksiA8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9IlRZUEUiPiUyJHM8L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTMkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IuCkrOCliOCkn+CksOClgCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IuCkueCkteCkvuCkiCDgpJzgpLngpL7gpJzgpLwg4KSu4KWL4KShIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IuCkuOCljeCkpeCkvuCkqCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+Ijx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4g4KSV4KWHIOCksuCkv+CkjyDgpIXgpLLgpL7gpLDgpY3gpK4g4KS44KWH4KSfIOCkleCkv+Ckr+CkviDgpJfgpK/gpL4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iMkctM0cg4KSh4KWH4KSf4KS+IOCkheCkleCljeCkt+CkriI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHIOCkoeClh+Ckn+CkviDgpIXgpJXgpY3gpLfgpK4iPC9zdHJpbmc+CkBAIC0xNjQsMTMgKzE2NSwxNCBAQAogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkg4KSV4KSo4KWH4KSV4KWN4oCN4KSfIOCkleCkv+Ckr+CkviDgpJfgpK/gpL4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IkdQUyDgpJXgpYsg4KSW4KWL4KSc4KS+IOCknOCkviDgpLDgpLngpL4g4KS54KWIIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IkdQUyDgpKbgpY3gpLXgpL7gpLDgpL4g4KS44KWH4KSfIOCkleCkv+Ckr+CkviDgpJfgpK/gpL4g4KS44KWN4oCN4KSl4KS+4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4i4KS44KWN4KSl4KS+4KSoIOCkheCkqOClgeCksOCli+CkpyDgpLjgpJXgpY3gpLDgpL/gpK8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiLgpLjgpK3gpYAg4KS44KWC4KSa4KSo4KS+4KSP4KSCIOCkuOCkvuCkq+CkvCDgpJXgpLDgpYfgpIIuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IuCkj+CkquCljeKAjeCksuCkv+CkleClh+CktuCkqCDgpJzgpL7gpKjgpJXgpL7gpLDgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4i4KSQ4KSq4KWN4KS4IOCknOCkvuCkqOCkleCkvuCksOClgCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4i4KS44KWN4oCN4KSV4KWN4KSw4KWA4KSoIOCkuOCljeKAjeCkteCkmuCkvuCksuCkv+CkpCDgpLDgpYLgpKog4KS44KWHIOCkmOClguCkruClh+Ckl+ClgC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IuCkuOCljeKAjeCkleCljeCksOClgOCkqCDgpLLgpYjgpILgpKHgpLjgpY3gpJXgpYfgpKog4KSF4KSt4KS/4KS14KS/4KSo4KWN4KSv4KS+4KS4IOCkruClh+CkgiDgpLLgpYngpJUg4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLgpLjgpY3igI3gpJXgpY3gpLDgpYDgpKgg4KSq4KWL4KSw4KWN4KSf4KWN4KSw4KWH4KSfIOCkheCkreCkv+CkteCkv+CkqOCljeKAjeCkr+CkvuCkuCDgpK7gpYfgpIIg4KSy4KWJ4KSVIOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iRGF5ZHJlYW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4i4KSu4KS/4KSg4KS+4KSIIOCkleCkviDgpKHgpL/gpKzgpY3gpKzgpL4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4i4KSm4KS/4KS14KS+4KS44KWN4KS14KSq4KWN4KSoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4i4KSI4KSl4KSw4KSo4KWH4KSfIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLgpLngpLXgpL7gpIgg4KSc4KS54KS+4KSc4KS8IOCkruCli+CkoSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JhdHRlcnlfY2hhcmdpbmdfbGFiZWwiIG1zZ2lkPSI0OTAwNzQ3NzQ0NjUzMDkyMDkiPiLgpJrgpL7gpLDgpY3gpJwg4KS54KWLIOCksOCkueClgCDgpLngpYgsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CkBAIC0xNzgsNyArMTgwLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9sYWJlbCIgbXNnaWQ9IjYzMDQxOTAyODUxNzA3MjE0MDEiPiJCbHVldG9vdGgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbXVsdGlwbGVfZGV2aWNlc19sYWJlbCIgbXNnaWQ9IjM5MTIyNDU1NjU2MTM2ODQ3MzUiPiJCbHVldG9vdGggKDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgpIngpKrgpJXgpLDgpKMpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiJCbHVldG9vdGgg4KSs4KSC4KSmIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjY5NjgzNzIyOTcwMTg3NTU4MTUiPiLgpJrgpK7gpJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNjk2ODM3MjI5NzAxODc1NTgxNSI+IuCkuOCljeCkleCljeCksOClgOCkqCDgpJXgpYAg4KSw4KWL4KS24KSo4KWAIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fdW5sb2NrZWRfbGFiZWwiIG1zZ2lkPSIzMzYwNTQ5MzAzNjI1ODA1ODQiPiLgpLjgpY3gpLXgpKQ6IOCksOCli+Ckn+Clh+CknyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX2xvY2tlZF9sYWJlbCIgbXNnaWQ9IjgwNTg2NDY0NDcyNDI1NjU0ODYiPiLgpLDgpYvgpJ/gpYfgpLbgpKgg4KSy4KWJ4KSVIOCkleCkv+Ckr+CkviDgpJfgpK/gpL4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4i4KSH4KSo4KSq4KWB4KSfIOCkteCkv+Ckp+CkvyI8L3N0cmluZz4KQEAgLTE5NiwxMCArMTk4LDEwIEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX29mZl9sYWJlbCIgbXNnaWQ9Ijc1NTg3NzgxMDA4NDM4ODU4NjQiPiJXaS1GaSDgpKzgpILgpKYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbGFiZWwiIG1zZ2lkPSI2ODkzNTkyOTY0NDYzNjI0MzMzIj4iV2ktRmkg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4i4KS14KS+4KSv4KSw4KSy4KWH4KS4IOCkoeCkv+CkuOCljeCkquCljeCksuClhyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IuCkmuCkruCklSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IuCkuOCljeCkleCljeCksOClgOCkqCDgpJXgpYAg4KSw4KWL4KS24KSo4KWAIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IuCkuOCljeCkteCkpDoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4i4KS44KWC4KSa4KSo4KS+4KSP4KSCIOCkr+CkueCkvuCkgiDgpKbgpL/gpJbgpL7gpIgg4KSm4KWH4KSk4KWAIOCkueCliOCkgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+IuCkqOClgOCkmuClhyDgpLjgpY3gpLXgpL7gpIfgpKog4KSV4KSw4KSV4KWHIOCkieCkqCDgpKTgpJUg4KSV4KSt4KWAIOCkreClgCDgpKrgpLngpYHgpILgpJrgpYfgpIIuXG7gpLjgpL/gpLjgpY3gpJ/gpK4g4KSo4KS/4KSv4KSC4KSk4KWN4KSw4KSj4KWL4KSCIOCkleClhyDgpLLgpL/gpI8g4KSq4KWB4KSoOiDgpKjgpYDgpJrgpYcg4KS44KWN4KS14KS+4KSH4KSqIOCkleCksOClh+Ckgi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiLgpKzgpL7gpLAg4KSm4KS/4KSW4KS+4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KS44KWN4KSV4KWN4KSw4KWA4KSoIOCkleClhyDgpJXgpL/gpKjgpL7gpLDgpYcg4KSV4KWLIOCkuOCljeCkteCkvuCkh+CkqiDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IuCkuOCkv+CkuOCljeCkn+CkriDgpKzgpL7gpLAg4KSm4KS/4KSW4KS+4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KS44KWN4KSV4KWN4KSw4KWA4KSoIOCkleClhyDgpJXgpL/gpKjgpL7gpLDgpYcg4KS44KWHIOCkuOCljeCkteCkvuCkh+CkqiDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4i4KSw4KSC4KSXIOCkteCljeCkr+ClgeCkpOCljeCkleCljeCksOCkriDgpK7gpYvgpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiLgpIngpKjgpY3gpKjgpKQg4KSV4KSC4KSf4KWN4KSw4KS+4KS44KWN4KSfIOCkruCli+CkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4i4KSw4KSC4KSXIOCkuOClgeCkp+CkvuCksCDgpK7gpYvgpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+IuCkqOClh+Ckn+CkteCksOCljeCklSDgpJXgpYtcbuCkruClieCkqOClgOCkn+CksCDgpJXgpL/gpK/gpL4g4KSc4KS+IOCkuOCkleCkpOCkviDgpLngpYgiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtaHIvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWhyL3N0cmluZ3MueG1sCmluZGV4IDYzMWQ1NDkuLjZkMjFlNDQgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtaHIvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1oci9zdHJpbmdzLnhtbApAQCAtNjEsOCArNjEsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiJVdmlqZWsgZG9wdXN0aSBzIG92b2cgcmHEjXVuYWxhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4iWnVtaXJhaiBpIGlzcHVuaSB6YXNsb24iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iUmFzdGVnbmkgaSBpc3B1bmkgemFzbG9uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4iS29tcGF0aWJpbG5vIHp1bWlyYW5qZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiJLYWRhIGplIGFwbGlrYWNpamEgZGl6YWpuaXJhbmEgemEgbWFuamkgemFzbG9uLCBrb250cm9sZSB6dW1pcmFuamEgcHJpa2F6dWp1IHNlIHBvcmVkIHNhdGEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IlNwcmVtYW5qZSBzbmlta2UgemFzbG9uYS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IlNwcmVtYW5qZSBzbmlta2UgemFzbG9uYS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4iU3ByZW1hbmplIHNuaW1rZSB6YXNsb25hLiI8L3N0cmluZz4KQEAgLTc4LDYgKzc2LDggQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiJQb8SNZXRuYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+Ikl6Ym9ybmlrIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iTmVkYXZuZSBhcGxpa2FjaWplIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4iUHJldHJhxb5pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+IkZvdG9hcGFyYXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+Ikd1bWIgemEgcHJvbWplbnUgbmHEjWluYSB1bm9zYS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4iR3VtYiB6YSBrb21wYXRpYmlsbm9zdCB6dW1pcmFuamEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiJadW1pcmFuamUgbWFuamVnIHphc2xvbmEgbmEgdmXEh2kuIjwvc3RyaW5nPgpAQCAtMTUzLDYgKzE1Myw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4iQmF0ZXJpamEg4oCTIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iTmHEjWluIHJhZGEgdSB6cmFrb3Bsb3Z1IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aCDigJMgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiJMb2thY2lqYSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IlZyaWplbWUgYWxhcm1hOiA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+Ik9uZW1vZ3XEh2VuaSBzdSAyRy0zRyBwb2RhY2kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiJPbmVtb2d1xIdlbmkgc3UgNEcgcG9kYWNpIjwvc3RyaW5nPgpAQCAtMTY0LDEyICsxNjUsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpIHBvdmV6YW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IlRyYcW+ZW5qZSBHUFMtYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJMb2thY2lqdSB1dHZyZGlvIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IlphaHRqZXZpIHphIGxva2FjaWp1IGFrdGl2bmkgc3UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiJCcmlzYW5qZSBzdmloIG9iYXZpamVzdGkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IkluZm9ybWFjaWplIG8gYXBsaWthY2lqaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4iWmFzbG9uIMSHZSBzZSBhdXRvbWF0c2tpIHpha3JlbnV0aS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+Ilphc2xvbiBqZSB6YWtsanXEjWFuIHUgcGVqemHFvm5vaiBvcmlqZW50YWNpamkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+Ilphc2xvbiBqZSB6YWtsanXEjWFuIHUgcG9ydHJldG5vaiBvcmlqZW50YWNpamkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+Ikl6bG9nIHphIHNsYXN0aWNlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IlNhbmphcmVuamUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJFdGhlcm5ldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4iTmHEjWluIHJhZGEgdSB6cmFrb3Bsb3Z1Ijwvc3RyaW5nPgpAQCAtMTk4LDggKzIwMCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJCZcW+acSNbmkgcHJpa2F6Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4iU3ZqZXRsaW5hIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IkFVVE9NQVRTS0kiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4iT2JhdmlqZXN0aSBzZSBwcmlrYXp1anUgb3ZkamUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiJQcmlzdHVwaXRlIGltIHUgYmlsbyBrb2plbSB0cmVudXRrdSB0YWtvIGRhIHByc3RvbSB0cnpuZXRlIHByZW1hIGRvbGplLiBcblBvbm92byBwcnN0b20gdHJ6bml0ZSBwcmVtYSBkb2xqZSB6YSBrb250cm9sZSBzdXN0YXZhLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+IlByaWplxJFpdGUgcHJzdG9tIHBvIHJ1YnUgemFzbG9uYSBkYSBiaSBzZSBwcmlrYXphbGEgdHJha2EiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IlByaWplxJFpdGUgcHJzdG9tIG9kIHJ1YmEgemFzbG9uYSBkYSBiaSBzZSBwcmlrYXphbGEgdHJha2Egc3VzdGF2YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiJOYcSNaW4gaW52ZXJ6aWplIGJvamUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiJOYcSNaW4gcG9qYcSNYW5vZyBrb250cmFzdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+Ik5hxI1pbiBrb3Jla2NpamUgYm9qZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iTXJlxb5hIHNlXG5tb8W+ZGEgcHJhdGkiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtaHUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWh1L3N0cmluZ3MueG1sCmluZGV4IGMxYzkxMzZiLi5jYTc4MTcwIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWh1L3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtaHUvc3RyaW5ncy54bWwKQEAgLTYxLDggKzYxLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4iTWluZGlnIGVuZ2Vkw6lseWV6emUgZXJyxZFsIGEgc3rDoW3DrXTDs2fDqXByxZFsIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4iTmFnecOtdMOhcyBhIGtpdMO2bHTDqXNoZXoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iTnnDump0w6FzIGtpdMO2bHTDqXNoZXoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJLb21wYXRpYmlsaXTDoXMgLS0gbmFnecOtdMOhcy9raWNzaW55w610w6lzIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+IkhhIGVneSBhbGthbG1hesOhc3Qga2lzZWJiIGvDqXBlcm55xZFyZSB0ZXJ2ZXp0ZWssIGFra29yIGEgbmFnecOtdMOhcy9raWNzaW55w610w6lzIHZlesOpcmzFkWplIGF6IMOzcmEgbWVsbGV0dCBqZWxlbmlrIG1lZy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4iS8OpcGVybnnFkWvDqXAgbWVudMOpc2UuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiJLw6lwZXJuecWRa8OpcCBtZW50w6lzZS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4iS8OpcGVybnnFkWvDqXAgbWVudMOpc2UuIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IkbFkW9sZGFsIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4iTWVuw7wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiJMZWfDumphYmIgYWxrYWxtYXrDoXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJLZXJlc8OpcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiJLYW1lcmEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IkJldml0ZWxpIG3Ds2QgdsOhbHTDoXNhIGdvbWIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IktvbXBhdGliaWxpdMOhc2kgem9vbSBnb21iLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4iS2ljc2luecOtdHNlbiBhIG5hZ3lvYmIga8OpcGVybnnFkWjDtnouIjwvc3RyaW5nPgpAQCAtMTUzLDYgKzE1Myw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4iQWtrdW11bMOhdG9yIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iUmVww7xsxZFzIMO8emVtbcOzZCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGggPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiJIZWx5YWRhdG9rOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IsOJYnJlc3p0w6lzIGlkxZFwb250amE6IDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iMkctM0cgYWRhdGZvcmdhbG9tIGxldGlsdHZhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iNEcgYWRhdGZvcmdhbG9tIGxldGlsdHZhIjwvc3RyaW5nPgpAQCAtMTY0LDEyICsxNjUsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpIGNzYXRsYWtvenRhdHZhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJHUFMga2VyZXPDqXNlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IkEgR1BTIGJlw6FsbMOtdG90dGEgYSBoZWx5ZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJBa3TDrXYgaGVseWxla8OpcsOpc2VrIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iTWluZGVuIMOpcnRlc8OtdMOpcyB0w7ZybMOpc2UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4iQWxrYWxtYXrDoXNpbmZvcm3DoWNpw7MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IkEga8OpcGVybnnFkSBhdXRvbWF0aWt1c2FuIGZvcm9nbmkgZm9nLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iQSBrw6lwZXJuecWRIHrDoXJvbHZhIHZhbiBmZWt2xZEgdMOham9sw6FzYmFuLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiJBIGvDqXBlcm55xZEgesOhcm9sdmEgdmFuIMOhbGzDsyB0w6Fqb2zDoXNiYW4uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IkRlc3NlcnQgQ2FzZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiLDgWxtb2RvesOhcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiJSZXDDvGzFkWfDqXAgw7x6ZW1tw7NkIjwvc3RyaW5nPgpAQCAtMTk4LDggKzIwMCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJWZXpldMOpayBuw6lsa8O8bGkga2lqZWx6xZEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiJGw6lueWVyxZEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4iYXV0b21hdGlrdXMiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4iQXogw6lydGVzw610w6lzZWsgaXR0IGplbGVubmVrIG1lZy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiJCw6FybWlrb3IgZWzDqXJoZXRpIMWRa2V0LCBoYSBsZWZlbMOpIGjDunp6YSBheiB1amrDoXQuXG5Iw7p6emEgbGUgYXogdWpqw6F0IG3DqWcgZWd5c3plciBhIHJlbmRzemVyYmXDoWxsw610w6Fzb2sgZWzDqXLDqXPDqWhlei4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiJDc8O6c3p0YXNzYSB1amrDoXQgYSBrw6lwZXJuecWRIHN6w6lsw6luIGEgc8OhdiBtZWdqZWxlbsOtdMOpc8OpaGV6Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiJDc8O6c3p0YXNzYSB1amrDoXQgYSBrw6lwZXJuecWRIHN6w6lsw6l0xZFsIGEgcmVuZHN6ZXJzw6F2IG1lZ2plbGVuw610w6lzw6loZXoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4iU3rDrW5pbnZlcnTDoWzDoXMgbcOzZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+IktvbnRyYXN6dGphdsOtdMOhcyBtw7NkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiJTesOtbmphdsOtdMOhcyBtw7NkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiJMZWhldCwgaG9neSBhXG5ow6Fsw7N6YXQgZmVsw7xneWVsdCI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1oeS1sYW5kL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1oeS1sYW5kL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjMDUzNWMKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWh5LWxhbmQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfcm90YXRpb25fbG9ja2VkIiBtc2dpZD0iNzYwOTY3MzAxMTQzMTU1NjA5MiI+ItS31a/WgNWh1bbVtiDVodW11arVtCDVr9W41bLVutW+1aHVriDVpyDVsNW41oDVq9Wm1bjVttWh1a/VodW2INWk1avWgNaE1aHVvtW41oDVtNWh1bYg1bTVpdW7OiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1oeS1yQU0tbGFuZC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtaHktckFNLWxhbmQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MwNTM1YwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtaHktckFNLWxhbmQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfcm90YXRpb25fbG9ja2VkIiBtc2dpZD0iNzYwOTY3MzAxMTQzMTU1NjA5MiI+ItS31a/WgNWh1bbVtiDVodW11arVtCDVr9W41bLVutW+1aHVriDVpyDVsNW41oDVq9Wm1bjVttWh1a/VodW2INWk1avWgNaE1aHVvtW41oDVtNWh1bYg1bTVpdW7OiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWh5LXJBTS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDJjNmJlCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDksIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxNjQ5MzczNDQ4NTAwMDQ0NjYiPiLVgNWh1bTVodWv1aHWgNWj1aHVtdWr1bYgVUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2NsZWFyX2FsbF9idXR0b24iIG1zZ2lkPSI3Nzc0NzIxMzQ0NzE2NzMxNjAzIj4i1YTVodaE1oDVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9yZWNlbnRfcmVtb3ZlX2l0ZW1fdGl0bGUiIG1zZ2lkPSI2MDI2Mzk1ODY4MTI5ODUyOTY4Ij4i1YDVpdW81aHWgdW21aXVrCDWgdWh1bbVr9Wr1oEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSI3NzkzNjI0ODY0NTI4ODE4NTY5Ij4i1Y/VpdWy1aXVr9W41oLVqdW11bjWgtW21bbVpdaAINWu1oDVodWj1oDVqyDVtNWh1b3Vq9W2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19yZWNlbnRfYXBwcyIgbXNnaWQ9IjY1NzYzOTI5NTEwNTM5OTQ2NDAiPiLUudWh1oDVtCDVsNWh1b7VpdWs1b7VodWu1bbVpdaAINW51a/VodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X2Rpc21pc3NfcmVjZW50cyIgbXNnaWQ9IjQ1NzYwNzYwNzUyMjY1NDAxMDUiPiLUsdW21b/VpdW91aXVrCDVvtWl1oDVu9Wr1bYg1a7WgNWh1aPWgNWl1oDVqCI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X3JlY2VudF9hcHBzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg1NDE3NjA4Mzg2NTg0NTU0MSI+IjEg1bbVuNaAINWu1oDVodWj1avWgCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTA0MDc4NDM1OTc5NDg5MDc0NCI+IiVkINW21bjWgCDVrtaA1aHVo9Wr1oAiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX25vdGlmaWNhdGlvbnNfdGl0bGUiIG1zZ2lkPSI0NzU1MjYxMTY3MTkzODMzMjEzIj4i1L7VodW21bjWgtaB1bjWgtW01bbVpdaAINW51a/VodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9vbmdvaW5nX2V2ZW50c190aXRsZSIgbXNnaWQ9IjE2ODI1MDQ1MTMzMTY4NzkyMDIiPiLUuNW21anVodaB1avVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbGF0ZXN0X2V2ZW50c190aXRsZSIgbXNnaWQ9IjY1OTQ3Njc0Mzg1Nzc1OTMxNzIiPiLUvtWh1bbVuNaC1oHVuNaC1bTVttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd190aXRsZSIgbXNnaWQ9IjI3ODMxMDQ4MDc1NTEyMTE2MzkiPiLVhNWr1aHWgdaA1aXWhCDVrNWr1oHWhNWh1b7VuNaA1avVudWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfc3VidGl0bGUiIG1zZ2lkPSIxNzUyMDQwMDYyMDg3ODI5MTk2Ij4i1YTVodaA1b/Vr9W41oHVqCDVrNWr1oHWhNWh1anVodaD1b7VuNaC1bQg1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfcGVyY2VudF9mb3JtYXQiIG1zZ2lkPSIxMDc3MjQ0OTQ5MzE4MjYxNzYxIj4i1bTVttW41oLVtCDVpyA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZCUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRfY2hhcmdlciIgbXNnaWQ9IjQ1NDkxMDU5OTY3NDA1MjI1MjMiPiJVU0Ig1azVq9aB1oTVodW+1bjWgNW41oLVtNWoINW51asg1aHVu9Wh1a/WgdW+1bjWgtW0Olxu1ZXVo9W/1b7VpdaEINW01avVodW11bYg1aPVuNaA1a7VuNWyINWs1avWgdaE1aHVvtW41oDVq9W51avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd193aHkiIG1zZ2lkPSI3Mjc5MTY5NjA5NTE4Mzg2MzcyIj4i1YTVodaA1b/Vr9W41oHVqyDWhdWj1b/VodWj1bjWgNWu1bjWgtW01agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjMwMjM4ODk5MTY2OTkyNzAyMjQiPiLUv9Wh1oDVo9Wh1b7VuNaA1bjWgtW01bbVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc193aWZpX2J1dHRvbiIgbXNnaWQ9IjE3MzM5MjgxNTE2OTgzMTE5MjMiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0ODc5ODc5Njk4NTAwOTU1MzAwIj4i1LvVttaE1bbVodWp1avVvNWh1bXVq9W2INW81aXVqtWr1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fcm90YXRpb24iIG1zZ2lkPSIzNzkwNDgyNTQxMzU3Nzk4NDIxIj4i1LvVttaE1bbVodW61b/Vv9W+1bjVsiDVp9Wv1oDVodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19tdXRlX2xhYmVsIiBtc2dpZD0iNTU0NjgyNTQ5OTE3NDI5Mzk2Ij4i1YDVodW01oDVpdaB1bbVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MTE0NTM2MTQ5NjIzMjQ2NzQiPiLUu9W21oTVttWh1bfVrdWh1b8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX25vdGlmaWNhdGlvbnMiIG1zZ2lkPSIzOTcxNDYxNzYyODA5MDUxMzciPiLUvtWh1bbVuNaC1oHVuNaC1bTVttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4iQmx1ZXRvb3RoLdWoINWv1aHVutW+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaW5wdXRfbWV0aG9kX3NldHRpbmdzX2NvbmZpZ3VyZV9pbnB1dF9tZXRob2RzIiBtc2dpZD0iMzUwNDI5MjQ3MTUxMjMxNzgyNyI+ItS/1aHWgNWj1aHVvtW41oDVpdWsINW01bjWgtW/1oTVodWj1oDVtNWh1bYg1aXVstWh1bbVodWv1bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3VzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9Ijc1NTE5MDMwODQ0MTYwNTc4MTAiPiLVltWr1abVq9Wv1aHVr9Wh1bYg1b3Vv9Wl1bLVttWh1bfVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjgzNDY5ODAwMTI3MTU2MjA1NyI+ItS51bjWgtW11azVodW/1oDVpdWe1awgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDVsNWh1b7VpdWs1b7VodWu1asg1bTVuNaC1b/WhNWoIFVTQiDVvdWh1oDWhDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iNTE3MTc3NTQxMTE3ODg2NTc1MCI+ItS51bjWgtW11azVodW/1oDVpdWe1awsINW41oAgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDVsNWh1b7VpdWs1b7VodWu1agg1bTVuNaC1b/WhCDVo9W41oDVrtWrIFVTQiDVrNaA1aHVvdWh1oDWhDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iNTE2MTIwNTI1ODYzNTI1MzIwNiI+ItSy1aHWgdWl1Z7VrCA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+LdWoLCDVpdaA1aIg1aHVtdW9IFVTQiDVr9aA1avVudWoINWv1aHVutWh1a/WgdW+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iMzgwODk4NDkzMTgzMDIyOTg4OCI+ItSy1aHWgdWl1Z7VrCA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+LdWoLCDVpdaA1aIg1aHVtdW9IFVTQiDVrNaA1aHVvdWh1oDWhNWoINWv1aHVutWh1a/WgdW+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3VyaV9wcm9tcHQiIG1zZ2lkPSI1MTM0NTA2MjE0MTM3MzMzNDMiPiLUsdW11b0gVVNCINWs1oDVodW91aHWgNaE1asg1bDVpdW/INW41bkg1bTVqyDVsNWh1b7VpdWs1b7VodWuINW51asg1aHVt9Wt1aHVv9W41oLVtDog1LvVtNWh1oHVpdaEINWh1b7VpdWs1avVtiDVodW11b3CoNWs1oDVodW91aHWgNaE1asg1bTVodW91avVtiA8eGxpZmY6ZyBpZD0iVVJMIj4lMSRzPC94bGlmZjpnPi3VuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+IlVTQiDVrNaA1aHVvdWh1oDWhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3ZpZXciIG1zZ2lkPSI2MzA0NTY1NTUzMjE4MTkyOTkwIj4i1LTVq9W/1aXVrCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfZGV2aWNlIiBtc2dpZD0iMTQ1MDI4NzQzNzAxNzMxNTkwNiI+ItWV1aPVv9Wh1aPVuNaA1a7VpdWsINWs1bzVpdWs1bXVodW11bYg1aHVtdW9IFVTQiDVvdWh1oDWhNWrINWw1aHVtNWh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2FjY2Vzc29yeSIgbXNnaWQ9IjEyMTA5NTQ1NzY5Nzk2MjE1OTYiPiLVldWj1b/VodWj1bjWgNWu1aXVrCDVrNW81aXVrNW11aHVtdW2INWh1bXVvSBVU0Ig1azWgNWh1b3VodaA1oTVqyDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ190aXRsZSIgbXNnaWQ9IjQ1MTM5MTgzOTMzODcxNDE5NDkiPiLUudW41oLVtdWs1aHVv9aA1aXVntWsIFVTQi3VqyDVr9Wh1oDVo9Wh1aLVpdaA1bjWgtW01ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+ItWA1aHVtNWh1a/VodaA1aPVudWrIFJTQS3VqyDVotWh1bbVodWs1asg1bTVodW/1bbVodWw1aXVv9aE1bYg1adgXG48eGxpZmY6ZyBpZD0iRklOR0VSUFJJTlQiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiLVhNWr1bfVvyDVqdW41oLVtdWs1aHVv9aA1aXVrCDVodW11b0g1bDVodW01aHVr9Wh1oDVo9W51avWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+ItS91bjVt9W41oDVodaB1bbVpdWsYCDVp9Wv1oDVodW21agg1azWgdW21aXVrNW41oIg1bDVodW01aHWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLVgdWj1aXVrGAg1afVr9aA1aHVttWoINWs1oHVttWl1azVuNaCINWw1aHVtNWh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4i1YrVodWw1bjWgtW0INWnINWn1a/WgNWh1bbVqyDVsNWh1bbVuNaC1bXVqdWo4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4i1YrVodWw1bjWgtW0INWnINWn1a/WgNWh1bbVqyDVsNWh1bbVuNaC1bXVqdWoLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLUt9Wv1oDVodW21asg1bDVodW21bjWgtW11anVqCDVutWh1bDVvtW41oLVtCDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RpdGxlIiBtc2dpZD0iNjQ2MTg2NTk2MDk2MTQxNDk2MSI+ItS31a/WgNWh1bbVqyDVsNWh1bbVuNaC1bXVqdWoINWs1bjWgtW91aHVttWv1aHWgNW+1aXVrCDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RleHQiIG1zZ2lkPSIxMTUyODM5NjQ3Njc3NTU4ODE1Ij4i1YDVutWl1oQg1bHVpdaAINWn1a/WgNWh1bbVqyDVsNWh1bbVuNaC1bXVqdWoINW/1aXVvdW21aXVrNW41oIg1bDVodW01aHWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X2ZhaWxlZF90aXRsZSIgbXNnaWQ9IjcwNTc4MTExNjc0NjkyMjc3MSI+ItWJ1bDVodW71bjVstW+1aXWgSDVrNW41oLVvdWh1bbVr9Wh1oDVpdWsINWn1a/WgNWh1bbVqyDVsNWh1bbVuNaC1bXVqdWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RleHQiIG1zZ2lkPSI4MTM0MDExMjY5NTcyNDE1NDAyIj4i1YnVsNWh1bvVuNWy1b7VpdaBINW61aHVsNWl1awg1afVr9aA1aHVttWrINWw1aHVttW41oLVtdWp1ag6INWA1bbVodaA1aHVvtW41oAg1adgINW61aHVsNW41oHVtiDWhdWj1b/VodWj1bjWgNWu1bTVodW2INW01aXVuyDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHJlZmVyZW5jZV90aXRsZSIgbXNnaWQ9IjY1NTEwNTAzNzczODg4ODI3ODciPiJVU0Ig1obVodW11azVpdaA1asg1oPVuNWt1aHVttaB1bTVodW2INWo1bbVv9aA1aHVttaE1bbVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX210cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI0MzMzNTA0NDEzNTYzMDIzNjI2Ij4i1YTVq9Wh1oHVttWl1awg1bjWgNW61aXVvSDVtNWl1aTVq9WhINW21b7VodWj1aHWgNWv1avVuSAoTVRQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9wdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNzUxNzEyNzU0MDMwMTYyNTc1MSI+ItWE1avVodaB1bbVpdWsINW41oDVutWl1b0g1obVuNW/1bjVrdaB1avVryAoUFRQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxlcl9jZF9idXR0b25fdGl0bGUiIG1zZ2lkPSIyMzEyNjY3NTc4NTYyMjAxNTgzIj4i1Y/VpdWy1aHVpNaA1aXVrCBBbmRyb2lkINaG1aHVtdWs1aXWgNWrINaD1bjVrdWh1bbWgdW01aHVtiDVsNWh1b7VpdWs1b7VodWu1aggTWFjLdWrINWw1aHVtNWh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhY2siIG1zZ2lkPSI1NjcwMTE1Mzg5OTQ0MjkxMjAiPiLVgNWl1b8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4i1Y/VuNaC1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiLVkdWh1bbVryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+ItWO1aXWgNW71avVtiDVrtaA1aHVo9aA1aXWgNWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4i1YjWgNW41bbVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+ItWW1bjVv9W41a3WgdWr1a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+ItWE1avVodaB1bbVpdWsINW01bjWgtW/1oTVodWj1oDVtNWh1bYg1aXVstWh1bbVodWv1asg1a/VuNWz1aHVr9WoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiLVgNWh1bTVodW/1aXVstWl1azVq9W41oLVqdW11aHVtiDVrdW41bfVuNaA1aHWgdW01aHVtiDVr9W41bPVodWv1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiLUtNWr1b/VodaD1bjVrdWl1awg1oPVuNaE1oDVq9aBINWh1b7VpdWs1asg1bTVpdWuINWn1a/WgNWh1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfY29ubmVjdGVkIiBtc2dpZD0iMjcwNzAyNzYzMzI0Mjk4MzM3MCI+IkJsdWV0b290aC3VqCDVtNWr1aHWgdW+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9kaXNjb25uZWN0ZWQiIG1zZ2lkPSI3NDE2NjQ4NjY5OTc2ODcwMTc1Ij4iQmx1ZXRvb3RoLdW2INWh1bbVu9Wh1b/VvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19iYXR0ZXJ5IiBtc2dpZD0iMzU4MzQzMDIyMzUyODIwOTQ2Ij4i1YTVodaA1b/Vr9W41oEg1bnVr9WhOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9vbmVfYmFyIiBtc2dpZD0iNzc3NDg4NzcyMTg5MTA1NzUyMyI+ItWE1aHWgNW/1a/VuNaB1asg1bTVpdWvINWj1avVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfdHdvX2JhcnMiIG1zZ2lkPSI4NTAwNjUwNDM4NzM1MDA5OTczIj4i1YTVodaA1b/Vr9W41oHVqyDVpdaA1a/VuNaCINWj1avVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfdGhyZWVfYmFycyIgbXNnaWQ9IjIzMDI5ODMzMzA4NjUwNDA0NDYiPiLVhNWh1oDVv9Wv1bjWgdWrINWl1oDVpdaEINWj1avVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfZnVsbCIgbXNnaWQ9Ijg5MDkxMjI0MDE3MjAxNTg1ODIiPiLVhNWh1oDVv9Wv1bjWgdWoINWs1avWhNW2INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fcGhvbmUiIG1zZ2lkPSI0ODk0NzA4OTM3MDUyNjExMjgxIj4i1YDVpdW81aHVrdW41b0g1bnVr9WhOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfb25lX2JhciIgbXNnaWQ9IjY4NzY5OTI3ODEzMjY2NDExNSI+ItWA1aXVvNWh1a3VuNW91asg1bTVpdWvINWj1avVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3R3b19iYXJzIiBtc2dpZD0iODM4NDkwNTM4MjgwNDgxNTIwMSI+ItWA1aXVvNWh1a3VuNW91asg1aXWgNWv1bjWgiDVo9Wr1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV90aHJlZV9iYXJzIiBtc2dpZD0iODUyMTkwNDg0MzkxOTk3MTg4NSI+ItWA1aXVvNWh1a3VuNW91asg1aXWgNWl1oQg1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2NDcxODM0ODY4NTgwNzU3ODk4Ij4i1YDVpdW81aHVrdW41b3VqyDVodWm1aTVodW21bfVodW21agg1azVq9aE1bYg1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19kYXRhIiBtc2dpZD0iNDc5MTk2NjI5NTA5Njg2NzU1NSI+ItWP1b7VtdWh1azVttWl1oAg1bnVr9Wh1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX29uZV9iYXIiIG1zZ2lkPSIxNDE1NjI1ODMzMjM4MjczNjI4Ij4i1Y/VvtW11aHVrNW21aXWgNWrINW01aXVryDVo9Wr1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3R3b19iYXJzIiBtc2dpZD0iNjE2NjAxODQ5MjM2MDQzMjA5MSI+ItWP1b7VtdWh1azVttWl1oDVqyDVpdaA1a/VuNaCINWj1avVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfdGhyZWVfYmFycyIgbXNnaWQ9IjkxNjc2NzA0NTIzOTUwMzg1MjAiPiLVj9W+1bXVodWs1bbVpdaA1asg1aXWgNWl1oQg1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3MDgzODQ2MDgxMjQ1MTkzNjkiPiLVj9W+1bXVodWs1bbVpdaA1asg1aHVptWk1aHVttW31aHVttWoINWs1oDVq9W+INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9vZmYiIG1zZ2lkPSIzMTc3MzgwMjk2Njk3OTMzNjI3Ij4iV2lmaS3VqCDVodW21bvVodW/1b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2lmaSIgbXNnaWQ9IjE0MjU0NzY1NTE4Mjc5MjQ0NzQiPiJXaUZpLdWoINWh1bbVu9Wh1b/VvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29uZV9iYXIiIG1zZ2lkPSI3NzM1ODkzMTc4MDEwNzI0Mzc3Ij4iV2lmaS3VqyDVtNWl1a8g1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90d29fYmFycyIgbXNnaWQ9IjQ5OTQyNzQyNTA0OTcyNjI0MzQiPiJXaWZpLdWrINWl1oDVr9W41oIg1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90aHJlZV9iYXJzIiBtc2dpZD0iMzQ5NTc1NTA0NDI3NjU4ODM4NCI+IldpRmkt1asg1aXWgNWl1oQg1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9zaWduYWxfZnVsbCIgbXNnaWQ9IjY4NTM1NjEzMDM1ODY0ODAzNzYiPiJXaWZpLdWrINWh1abVpNWh1bbVt9Wh1bbVqCDVrNWr1oTVtiDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpbWF4IiBtc2dpZD0iNDMyOTE4MDEyOTcyNzYzMDM2OCI+IldpTUFYINW51a/VoToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X29uZV9iYXIiIG1zZ2lkPSI0MTcwOTk0Mjk5MDExODYzNjQ4Ij4iV2lNQVgt1asg1bTVpdWvINWj1avVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3R3b19iYXJzIiBtc2dpZD0iOTE3NjIzNjg1ODMzNjUwMjI4OCI+IldpTUFYLdWrINWl1oDVr9W41oIg1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiJXaU1BWC3VqyDVpdaA1aXWhCDVo9Wr1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3NjgwODk5ODY3OTU1Nzk1NTgiPiJXaU1BWC3VqyDVodWm1aTVodW21bfVodW21agg1azVq9aE1bYg1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaWduYWwiIG1zZ2lkPSI3MDY0NjQ1MzIwNzgyNTg1MTY3Ij4i1LHVptWk1aHVttW31aHVtiDVudWv1aE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNjM5NTMyNjI3NjIxMzQwMjg4MyI+ItWE1avVodaB1b7VodWuINW51ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV96ZXJvX2JhcnMiIG1zZ2lkPSIzODA2MDYwMjI0NDY3MDI3ODg3Ij4i1LbWgNW4INWj1avVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X29uZV9iYXIiIG1zZ2lkPSIxNjg1NzMwMTEzMTkyMDgxODk1Ij4i1YTVpdWvINWj1avVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3R3b19iYXJzIiBtc2dpZD0iNjQzNzM2MzY0ODM4NTIwNjY3OSI+ItS11oDVr9W41oIg1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdGhyZWVfYmFycyIgbXNnaWQ9IjI2NDgyNDE0MTUxMTkzOTY2NDgiPiLUtdaA1aXWhCDVo9Wr1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zaWduYWxfZnVsbCIgbXNnaWQ9IjkxMjI5MjI4ODY1MTk2NzY4MzkiPiLUsdWm1aTVodW21bfVodW21agg1azWgNWr1b4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29uIiBtc2dpZD0iMjM4NTI1NDY5MzYyNDM0NTI2NSI+ItWE1avVodaB1b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vZmYiIG1zZ2lkPSI2NDc1NTA4MTU3Nzg2ODUzMTU3Ij4i1LHVttW71aHVv9W+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfY29ubmVjdGVkIiBtc2dpZD0iODM2NjI1NjY5MzcxOTQ5OTY2NSI+ItWE1avVodaB1b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2dwcnMiIG1zZ2lkPSIxNjA2NDc3MjI0NDg2NzQ3NzUxIj4iR1BSUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzF4IiBtc2dpZD0iOTk0MTMzNDY4MTIwMjQ0MDE4Ij4iMSBYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25faHNwYSIgbXNnaWQ9IjIwMzIzMjg4NTU0NjI2NDUxOTgiPiJIU1BBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fM2ciIG1zZ2lkPSI4NjI4NTYyMzA1MDAzNTY4MjYwIj4iM0ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8zLjVnIiBtc2dpZD0iODY2NDg0NTYwOTk4MTY5MjAwMSI+IjMuNUciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl80ZyIgbXNnaWQ9Ijc3NDEwMDA3NTA2MzAwODk2MTIiPiI0RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2x0ZSIgbXNnaWQ9IjU0MTM0Njg4MDg2Mzc1NDA2NTgiPiJMVEUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9jZG1hIiBtc2dpZD0iNjEzMjY0ODE5Mzk3ODgyMzAyMyI+IkNETUEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9yb2FtaW5nIiBtc2dpZD0iNTk3NzM2MjMzMzQ2NjU1NjA5NCI+ItWM1bjVuNaC1bTVq9W21aMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9lZGdlIiBtc2dpZD0iNDQ3NzQ1NzA1MTYzMTk3OTI3OCI+IkVkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl93aWZpIiBtc2dpZD0iMjMyNDQ5Njc1NjU5MDY0NTIyMSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaW0iIG1zZ2lkPSI4Mjc0MDE3MTE4NDcyNDU1MTU1Ij4iU0lNINW51a/VoToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF90ZXRoZXIiIG1zZ2lkPSI0MTAyNzg0NDk4MTQwMjcxOTY5Ij4iQmx1ZXRvb3RoLdWoINWv1aHVutW+1bjWgtW0INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYWlycGxhbmVfbW9kZSIgbXNnaWQ9IjgzNDc0ODk5OTc5MDc2MzA5MiI+ItS71bbWhNW21aHVqdWr1bzVodW11avVtiDVvNWl1arVq9W0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X2xldmVsIiBtc2dpZD0iNzQ1MTQ3NDE4NzExMzM3MTk2NSI+ItWE1aHWgNW/1a/VuNaB1aggPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INW/1bjVr9W41b0g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI3OTk1ODM5MTEyMzE4OTMzODAiPiLVgNWh1bTVodWv1aHWgNWj1asg1a/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdGlmaWNhdGlvbnNfYnV0dG9uIiBtc2dpZD0iNDQ5ODAwMDM2OTc3OTQyMTg5MiI+ItS+1aHVttW41oLWgdW41oLVtNW21aXWgDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlbW92ZV9ub3RpZmljYXRpb24iIG1zZ2lkPSIzNjAzMDk5NTE0OTAyMTgyMzUwIj4i1YTVodaE1oDVpdWsINWu1aHVttW41oLWgdW41oLVtNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2VuYWJsZWQiIG1zZ2lkPSIzNTExNDY5NDk5MjQwMTIzMDE5Ij4iR1BTLdWoINW01avVodaB1b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2FjcXVpcmluZyIgbXNnaWQ9Ijg5NTkzMzMzNTEwNTg5NjcxNTgiPiJHUFMt1asg1b3Vv9Wh1oHVuNaC1bQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90dHlfZW5hYmxlZCIgbXNnaWQ9IjQ2MTMyMDAzNjUzNzk0MjY1NjEiPiLVgNWl1bzVodW01bjWgtW/1oTVodWj1oDVq9W51agg1bTVq9Wh1oHVvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfdmlicmF0ZSIgbXNnaWQ9IjY2NjU4NTM2MzM2NDE1NTA1NSI+ItS21aHVttWj1asg1anWgNWp1bzVuNaBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3NpbGVudCIgbXNnaWQ9IjkwNjEyNDMzMDc5MzkxMzUzODMiPiLUttWh1bbVo9Wh1a/VqCDVrNW81aXWgdW+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudHNfaXRlbV9kaXNtaXNzZWQiIG1zZ2lkPSI2ODAzNTc0OTM1MDg0ODY3MDcwIj4iPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+LdWoINWh1bbVv9Wl1b3VvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25fZGlzbWlzc2VkIiBtc2dpZD0iODU0MjExMzg3MTg2MzA2OTI3Ij4i1L7VodW21bjWgtaB1bjWgtW01agg1aHVttW/1aXVvdW+1aXWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfbm90aWZpY2F0aW9uX3NoYWRlIiBtc2dpZD0iNDY5MDI3NDg0NDQ0NzUwNDIwOCI+ItS+1aHVttW41oLWgdW41oLVtNW21aXWgNWrINW+1aHVsNWh1bbVodWvOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19xdWlja19zZXR0aW5ncyIgbXNnaWQ9IjYxODYzNzg0MTE1ODI0MzcwNDYiPiLUsdaA1aHVoyDVr9Wh1oDVo9Wh1b7VuNaA1bjWgtW01bbVpdaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19yZWNlbnRfYXBwcyIgbXNnaWQ9IjkwMTQwMzI5MTY0MTA1OTAwMjciPiLVjtWl1oDVu9Wr1bYg1bDVodW+1aXVrNW+1aHVrtW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfdXNlciIgbXNnaWQ9IjExMDQ4NDY2OTk4Njk0NzY4NTUiPiLVldWj1b/VvtW41bIgPHhsaWZmOmcgaWQ9IlVTRVIiPiVzPC94bGlmZjpnPjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3dpZmkiIG1zZ2lkPSI2MDk5NzgxMDMxNjY5NzI4NzA5Ij4iPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz46IDx4bGlmZjpnIGlkPSJORVRXT1JLIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbW9iaWxlIiBtc2dpZD0iNDg3NjgwNjU2NDA4NjI0MTM0MSI+ItWH1aHWgNWq1aHVr9Wh1bYgPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz46IDx4bGlmZjpnIGlkPSJUWVBFIj4lMiRzPC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUzJHM8L3hsaWZmOmc+OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiLVhNWh1oDVv9Wv1bjWgdWoIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4i1LvVttaE1bbVodWp1avVvNWh1bXVq9W2INW81aXVqtWr1bTVqCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGgt1aggPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiLVj9Wl1bLVodWk1oDVuNaC1anVtdW41oLVttWo1Z0gPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiLUttWh1oDVqdW41oLWgdWr1bnVqCDVpNaA1b7VodWuINWnIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4t1avVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiIyRy0zRyDVv9W+1bXVodWs1bbVpdaA1agg1aHVttW71aHVv9W+1aHVriDVpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iNEcg1b/VvtW11aHVrNW21aXWgNWoINWh1bbVu9Wh1b/VvtWh1a4g1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX21vYmlsZV90aXRsZSIgbXNnaWQ9IjEwNDYwNDcyNDg4NDQ4MjEyMDIiPiLVh9Wh1oDVqtWh1a/VodW2INW/1b7VtdWh1azVttWl1oDVqCDVodW21bvVodW/1b7VodWuINWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjIwODY4MTUzMDQ4NTg5NjQ5NTQiPiLVj9W+1bXVodWs1bbVpdaA1agg1aHVttW71aHVv9W+1aHVriDVpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2ciIG1zZ2lkPSIzODUzMTE3MjY5MDUxODA2MjgwIj4i1LTVuNaC1oQg1bDVodW91aXVrCDVpdaEINW21bfVvtWh1a4g1b/VvtW11aHVrNW21aXWgNWrINaF1aPVv9Wh1aPVuNaA1a7VtNWh1bYg1b3VodWw1bTVodW21avVtjpcblxuINS11anVpSDVpNW41oLWhCDVr9aA1a/Vq9W2INWh1a/Vv9Wr1b7VodaB1bbVpdaEINW/1b7VtdWh1azVttWl1oDVqCwg1aHVtdW2INWv1aHWgNW41bIg1acg1aPVodW21bHVvtWl1awg1oXVutWl1oDVodW/1bjWgNWrINWv1bjVstW01avWgToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19lbmFibGUiIG1zZ2lkPSI3NzI5NzcyMDM5MjA4NjY0NjA2Ij4i1Y7VpdaA1aHVtNWr1aHWgdW21aXVrCDVv9W+1bXVodWs1bbVpdaA1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl9kaXNjb25uZWN0ZWQiIG1zZ2lkPSIxOTQwMjMxNTIxMjc0MTQ3NzcxIj4i1LvVttW/1aXWgNW21aXVvyDVr9Wh1bog1bnVr9WhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkt1agg1bTVq9Wh1oHVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+ItWI1oDVuNW21bjWgtW0INWnIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiLVj9Wl1bLVodWk1oDVuNaC1anVtdW41oLVttWoINWv1aHWgNWj1aHVvtW41oDVvtWl1awg1acgR1BTLdWrINWv1bjVstW01avWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+ItWP1aXVstWh1aTWgNW41oLVqdW11aHVtiDVsNWh1oDWgdW41oLVtNW21aXWgNW2INWh1a/Vv9Wr1b4g1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+ItWE1aHWhNaA1aXVrCDVotW41azVuNaAINWu1aHVttW41oLWgdW41oLVtNW21aXWgNWoOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiLVj9Wl1bLVpdWv1bjWgtWp1bXVuNaC1bbVttWl1oAg1a7WgNWh1aPWgNWrINW01aHVvdWr1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+ItS31a/WgNWh1bbVqCDVq9W21oTVttW41oLWgNW41oLVtdW2INWv1brVv9W/1b7VqzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+ItS31a/WgNWh1bbVqCDVr9W41bLVutW+1aHVriDVpyDVsNW41oDVq9Wm1bjVttWh1a/VodW2INWk1avWgNaE1aHVvtW41oDVtNWh1bYg1bTVpdW7OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLUt9Wv1oDVodW21agg1a/VuNWy1brVvtWh1a4g1acg1bjWgtWy1bLVodWx1avVoyDVpNWr1oDWhNWh1b7VuNaA1bTVodW01aI6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IkRlc3NlcnQgQ2FzZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiLVkdWl1oDVpdWv1aHVtdWr1bYg1bzVpdWq1avVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLUu9W21oTVttWh1anVq9W81aHVtdWr1bYg1bzVpdWq1avVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JhdHRlcnlfY2hhcmdpbmdfbGFiZWwiIG1zZ2lkPSI0OTAwNzQ3NzQ0NjUzMDkyMDkiPiLUvNWr1oHWhNWh1b7VuNaA1bjWgtW0YCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2VkX2xhYmVsIiBtc2dpZD0iODg2NTQxMzA3OTQxNDI0NjA4MSI+ItS81avWgdaE1aHVvtW41oDVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbGFiZWwiIG1zZ2lkPSI2MzA0MTkwMjg1MTcwNzIxNDAxIj4iQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX211bHRpcGxlX2RldmljZXNfbGFiZWwiIG1zZ2lkPSIzOTEyMjQ1NTY1NjEzNjg0NzM1Ij4iQmx1ZXRvb3RoICg8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g1b3VodaA1oQpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiJCbHVldG9vdGgt1bYg1aHVttW71aHVv9W+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI2OTY4MzcyMjk3MDE4NzU1ODE1Ij4i1YrVodW11a7VodW81bjWgtWp1bXVuNaC1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+ItS71bbWhNW21aHVutW/1b/VuNaC1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4i1YrVv9W/1bjWgtW01agg1a/VuNWy1brVvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4i1YTVuNaC1b/WhNWh1aPWgNW01aHVtiDVpdWy1aHVttWh1a/VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+ItWP1aXVstWh1aTWgNW41oLVqdW11bjWgtW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsIiBtc2dpZD0iNzQ2NDU0NDA4NjUwNzMzMTQ1OSI+ItSx1bbVu9Wh1b/VpdWsINW/1aXVstWh1aTWgNW41oLVqdW11bjWgtW21agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4i1YTVpdWk1avVoSDVvdWh1oDWhCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4i1YTVq9Wh1bXVtiDVodaA1b/VodWv1aHWgNWjINWr1oDVodW+1avVs9Wh1a/VttWl1oDVqyDVptWh1bbVo9Wl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19zZXR0aW5nc19sYWJlbCIgbXNnaWQ9IjUzMjY1NTY1OTI1NzgwNjU0MDEiPiLUv9Wh1oDVo9Wh1b7VuNaA1bjWgtW01bbVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfdGltZV9sYWJlbCIgbXNnaWQ9IjQ2MzU5NjkxODIyMzk3MzY0MDgiPiLUutWh1bTVodW21aHVr9WoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfdXNlcl9sYWJlbCIgbXNnaWQ9IjUyMzg5OTU2MzIxMzA4OTc4NDAiPiLUtdW9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9sYWJlbCIgbXNnaWQ9IjkxMzUzNDQ3MDQ4OTk1NDYwNDEiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm90X2Nvbm5lY3RlZCIgbXNnaWQ9IjcxNzE5MDQ4NDUzNDU1NzM0MzEiPiLVhNWr1aHWgdW+1aHVriDVudWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub19uZXR3b3JrIiBtc2dpZD0iMjIyMTk5MzA3NzIyMDg1NjM3NiI+ItWR1aHVttaBINW51a/VoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfb2ZmX2xhYmVsIiBtc2dpZD0iNzU1ODc3ODEwMDg0Mzg4NTg2NCI+IldpLUZpLdWoINWh1bbVu9Wh1b/VvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbGFiZWwiIG1zZ2lkPSI2ODkzNTkyOTY0NDYzNjI0MzMzIj4iV2ktRmkg1oHVuNaC1oHVodWk1oDVq9W5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4i1LHVttWs1aHWgCDVp9Wv1oDVodW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4i1YrVodW11a7VodW81bjWgtWp1bXVuNaC1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4i1LvVttaE1bbVodW31a3VodW/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+ItSz1bjWgtW21aHVt9aA1bvVtNWh1bYg1bzVpdWq1avVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+ItS41bbVpNWs1aHVtdW21b7VodWuINaB1aHVtdW/1bjWgtW21bjWgtWp1bXVodW2INW81aXVqtWr1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+ItSz1bjWgtW11bbVpdaA1asg1a/VodaA1aPVodW+1bjWgNW01aHVtiDVvNWl1arVq9W0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiLVkdWh1bbWgdWoINWv1aHWgNW41bIg1adcbtW+1aXWgNWh1bDVvdWv1b7VpdWsIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWh5L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1oeS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjQxODk4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1oeS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIwNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAwOSwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzE2NDkzNzM0NDg1MDAwNDQ2NiI+ItWA1aHVtNWh1a/VodaA1aPVodW11avVtiBVSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfY2xlYXJfYWxsX2J1dHRvbiIgbXNnaWQ9Ijc3NzQ3MjEzNDQ3MTY3MzE2MDMiPiLVhNWh1oTWgNWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9yZW1vdmVfaXRlbV90aXRsZSIgbXNnaWQ9IjYwMjYzOTU4NjgxMjk4NTI5NjgiPiLVgNWl1bzVodaB1bbVpdWsINaB1aHVttWv1avWgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9Ijc3OTM2MjQ4NjQ1Mjg4MTg1NjkiPiLVj9Wl1bLVpdWv1bjWgtWp1bXVuNaC1bbVttWl1oAg1a7WgNWh1aPWgNWrINW01aHVvdWr1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX3JlY2VudF9hcHBzIiBtc2dpZD0iNjU3NjM5Mjk1MTA1Mzk5NDY0MCI+ItS51aHWgNW0INWw1aHVvtWl1azVvtWh1a7VttWl1oAg1bnVr9Wh1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfZGlzbWlzc19yZWNlbnRzIiBtc2dpZD0iNDU3NjA3NjA3NTIyNjU0MDEwNSI+ItSx1bbVv9Wl1b3VpdWsINW+1aXWgNW71avVtiDVrtaA1aHVo9aA1aXWgNWoIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfcmVjZW50X2FwcHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODU0MTc2MDgzODY1ODQ1NTQxIj4iMSDVttW41oAg1a7WgNWh1aPVq9aAIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMDQwNzg0MzU5Nzk0ODkwNzQ0Ij4iJWQg1bbVuNaAINWu1oDVodWj1avWgCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm9fbm90aWZpY2F0aW9uc190aXRsZSIgbXNnaWQ9IjQ3NTUyNjExNjcxOTM4MzMyMTMiPiLUvtWh1bbVuNaC1oHVuNaC1bTVttWl1oAg1bnVr9Wh1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX29uZ29pbmdfZXZlbnRzX3RpdGxlIiBtc2dpZD0iMTY4MjUwNDUxMzMxNjg3OTIwMiI+ItS41bbVqdWh1oHVq9WvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9sYXRlc3RfZXZlbnRzX3RpdGxlIiBtc2dpZD0iNjU5NDc2NzQzODU3NzU5MzE3MiI+ItS+1aHVttW41oLWgdW41oLVtNW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3RpdGxlIiBtc2dpZD0iMjc4MzEwNDgwNzU1MTIxMTYzOSI+ItWE1avVodaB1oDVpdaEINWs1avWgdaE1aHVvtW41oDVq9W51agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19zdWJ0aXRsZSIgbXNnaWQ9IjE3NTIwNDAwNjIwODc4MjkxOTYiPiLVhNWh1oDVv9Wv1bjWgdWoINWs1avWgdaE1aHVqdWh1oPVvtW41oLVtCDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19wZXJjZW50X2Zvcm1hdCIgbXNnaWQ9IjEwNzcyNDQ5NDkzMTgyNjE3NjEiPiLVtNW21bjWgtW0INWnIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkJSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZF9jaGFyZ2VyIiBtc2dpZD0iNDU0OTEwNTk5Njc0MDUyMjUyMyI+IlVTQiDVrNWr1oHWhNWh1b7VuNaA1bjWgtW01agg1bnVqyDVodW71aHVr9aB1b7VuNaC1bQ6XG7VldWj1b/VvtWl1oQg1bTVq9Wh1bXVtiDVo9W41oDVrtW41bIg1azVq9aB1oTVodW+1bjWgNWr1bnVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3doeSIgbXNnaWQ9IjcyNzkxNjk2MDk1MTgzODYzNzIiPiLVhNWh1oDVv9Wv1bjWgdWrINaF1aPVv9Wh1aPVuNaA1a7VuNaC1bTVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iMzAyMzg4OTkxNjY5OTI3MDIyNCI+ItS/1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3dpZmlfYnV0dG9uIiBtc2dpZD0iMTczMzkyODE1MTY5ODMxMTkyMyI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQ4Nzk4Nzk2OTg1MDA5NTUzMDAiPiLUu9W21oTVttWh1anVq9W81aHVtdWr1bYg1bzVpdWq1avVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19yb3RhdGlvbiIgbXNnaWQ9IjM3OTA0ODI1NDEzNTc3OTg0MjEiPiLUu9W21oTVttWh1brVv9W/1b7VuNWyINWn1a/WgNWh1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX211dGVfbGFiZWwiIG1zZ2lkPSI1NTQ2ODI1NDk5MTc0MjkzOTYiPiLVgNWh1bTWgNWl1oHVttWl1awiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUxMTQ1MzYxNDk2MjMyNDY3NCI+ItS71bbWhNW21aHVt9Wt1aHVvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfbm90aWZpY2F0aW9ucyIgbXNnaWQ9IjM5NzE0NjE3NjI4MDkwNTEzNyI+ItS+1aHVttW41oLWgdW41oLVtNW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsdWV0b290aF90ZXRoZXJlZCIgbXNnaWQ9IjcwOTQxMDE2MTIxNjExMzMyNjciPiJCbHVldG9vdGgt1agg1a/VodW61b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9pbnB1dF9tZXRob2Rfc2V0dGluZ3NfY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSIzNTA0MjkyNDcxNTEyMzE3ODI3Ij4i1L/VodaA1aPVodW+1bjWgNWl1awg1bTVuNaC1b/WhNWh1aPWgNW01aHVtiDVpdWy1aHVttWh1a/VttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfdXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNzU1MTkwMzA4NDQxNjA1NzgxMCI+ItWW1avVptWr1a/VodWv1aHVtiDVvdW/1aXVstW21aHVt9Wh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iODM0Njk4MDAxMjcxNTYyMDU3Ij4i1LnVuNaC1bXVrNWh1b/WgNWl1Z7VrCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+INWw1aHVvtWl1azVvtWh1a7VqyDVtNW41oLVv9aE1aggVVNCINW91aHWgNaEOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI1MTcxNzc1NDExMTc4ODY1NzUwIj4i1LnVuNaC1bXVrNWh1b/WgNWl1Z7VrCwg1bjWgCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+INWw1aHVvtWl1azVvtWh1a7VqCDVtNW41oLVv9aEINWj1bjWgNWu1asgVVNCINWs1oDVodW91aHWgNaEOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSI1MTYxMjA1MjU4NjM1MjUzMjA2Ij4i1LLVodaB1aXVntWsIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4t1agsINWl1oDVoiDVodW11b0gVVNCINWv1oDVq9W51agg1a/VodW61aHVr9aB1b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSIzODA4OTg0OTMxODMwMjI5ODg4Ij4i1LLVodaB1aXVntWsIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4t1agsINWl1oDVoiDVodW11b0gVVNCINWs1oDVodW91aHWgNaE1agg1a/VodW61aHVr9aB1b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfdXJpX3Byb21wdCIgbXNnaWQ9IjUxMzQ1MDYyMTQxMzczMzM0MyI+ItSx1bXVvSBVU0Ig1azWgNWh1b3VodaA1oTVqyDVsNWl1b8g1bjVuSDVtNWrINWw1aHVvtWl1azVvtWh1a4g1bnVqyDVodW31a3VodW/1bjWgtW0OiDUu9W01aHWgdWl1oQg1aHVvtWl1azVq9W2INWh1bXVvcKg1azWgNWh1b3VodaA1oTVqyDVtNWh1b3Vq9W2IDx4bGlmZjpnIGlkPSJVUkwiPiUxJHM8L3hsaWZmOmc+LdW41oLVtCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3VzYl9hY2Nlc3NvcnkiIG1zZ2lkPSI0OTY2MjY1MjYzNDY1MTgxMzcyIj4iVVNCINWs1oDVodW91aHWgNaEIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfdmlldyIgbXNnaWQ9IjYzMDQ1NjU1NTMyMTgxOTI5OTAiPiLUtNWr1b/VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9kZXZpY2UiIG1zZ2lkPSIxNDUwMjg3NDM3MDE3MzE1OTA2Ij4i1ZXVo9W/1aHVo9W41oDVrtWl1awg1azVvNWl1azVtdWh1bXVtiDVodW11b0gVVNCINW91aHWgNaE1asg1bDVodW01aHWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfYWNjZXNzb3J5IiBtc2dpZD0iMTIxMDk1NDU3Njk3OTYyMTU5NiI+ItWV1aPVv9Wh1aPVuNaA1a7VpdWsINWs1bzVpdWs1bXVodW11bYg1aHVtdW9IFVTQiDVrNaA1aHVvdWh1oDWhNWrINWw1aHVtNWh1oAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX3RpdGxlIiBtc2dpZD0iNDUxMzkxODM5MzM4NzE0MTk0OSI+ItS51bjWgtW11azVodW/1oDVpdWe1awgVVNCLdWrINWv1aHWgNWj1aHVotWl1oDVuNaC1bTVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX21lc3NhZ2UiIG1zZ2lkPSIyMjIwMTQzODU1OTEyMzc2NDk2Ij4i1YDVodW01aHVr9Wh1oDVo9W51asgUlNBLdWrINWi1aHVttWh1azVqyDVtNWh1b/VttWh1bDVpdW/1oTVtiDVp2Bcbjx4bGlmZjpnIGlkPSJGSU5HRVJQUklOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+ItWE1avVt9W/INWp1bjWgtW11azVodW/1oDVpdWsINWh1bXVvSDVsNWh1bTVodWv1aHWgNWj1bnVq9aBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4i1L3VuNW31bjWgNWh1oHVttWl1axgINWn1a/WgNWh1bbVqCDVrNaB1bbVpdWs1bjWgiDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+ItWB1aPVpdWsYCDVp9Wv1oDVodW21agg1azWgdW21aXVrNW41oIg1bDVodW01aHWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+ItWA1aHVtNWh1b/VpdWy1aXVrNWr1bjWgtWp1bXVodW2INWt1bjVt9W41oDVodaB1bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+ItS11oDVoiDVsNWh1b7VpdWs1b7VodWu1agg1bbVodWt1aHVo9Wu1b7VodWuINWnINWh1b7VpdWs1asg1oPVuNaE1oAg1afVr9aA1aHVttWrINWw1aHVtNWh1oAsINWt1bjVt9W41oDVodaB1bTVodW2INWv1aHWgNWj1aHVvtW41oDVq9W51agg1a/VsNWh1bXVv9W21b7VqyDVqtWh1bTVodaB1bjWgtW11oHVqyDVr9W41bLWhNWr1bY6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+ItWK1aHVsNW41oLVtCDVpyDVp9Wv1oDVodW21asg1bDVodW21bjWgtW11anVqOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+ItWK1aHVsNW41oLVtCDVpyDVp9Wv1oDVodW21asg1bDVodW21bjWgtW11anVqC4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i1LfVr9aA1aHVttWrINWw1aHVttW41oLVtdWp1agg1brVodWw1b7VuNaC1bQg1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90aXRsZSIgbXNnaWQ9IjY0NjE4NjU5NjA5NjE0MTQ5NjEiPiLUt9Wv1oDVodW21asg1bDVodW21bjWgtW11anVqCDVrNW41oLVvdWh1bbVr9Wh1oDVvtWl1awg1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90ZXh0IiBtc2dpZD0iMTE1MjgzOTY0NzY3NzU1ODgxNSI+ItWA1brVpdaEINWx1aXWgCDVp9Wv1oDVodW21asg1bDVodW21bjWgtW11anVqCDVv9Wl1b3VttWl1azVuNaCINWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGl0bGUiIG1zZ2lkPSI3MDU3ODExMTY3NDY5MjI3NzEiPiLVidWw1aHVu9W41bLVvtWl1oEg1azVuNaC1b3VodW21a/VodaA1aXVrCDVp9Wv1oDVodW21asg1bDVodW21bjWgtW11anVqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X2ZhaWxlZF90ZXh0IiBtc2dpZD0iODEzNDAxMTI2OTU3MjQxNTQwMiI+ItWJ1bDVodW71bjVstW+1aXWgSDVutWh1bDVpdWsINWn1a/WgNWh1bbVqyDVsNWh1bbVuNaC1bXVqdWoOiDVgNW21aHWgNWh1b7VuNaAINWnYCDVutWh1bDVuNaB1bYg1oXVo9W/1aHVo9W41oDVrtW01aHVtiDVtNWl1bsg1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3ByZWZlcmVuY2VfdGl0bGUiIG1zZ2lkPSI2NTUxMDUwMzc3Mzg4ODgyNzg3Ij4iVVNCINaG1aHVtdWs1aXWgNWrINaD1bjVrdWh1bbWgdW01aHVtiDVqNW21b/WgNWh1bbWhNW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9tdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNDMzMzUwNDQxMzU2MzAyMzYyNiI+ItWE1avVodaB1bbVpdWsINW41oDVutWl1b0g1bTVpdWk1avVoSDVttW+1aHVo9Wh1oDVr9Wr1bkgKE1UUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfcHRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9Ijc1MTcxMjc1NDAzMDE2MjU3NTEiPiLVhNWr1aHWgdW21aXVrCDVuNaA1brVpdW9INaG1bjVv9W41a3WgdWr1a8gKFBUUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsZXJfY2RfYnV0dG9uX3RpdGxlIiBtc2dpZD0iMjMxMjY2NzU3ODU2MjIwMTU4MyI+ItWP1aXVstWh1aTWgNWl1awgQW5kcm9pZCDWhtWh1bXVrNWl1oDVqyDWg9W41a3VodW21oHVtNWh1bYg1bDVodW+1aXVrNW+1aHVrtWoIE1hYy3VqyDVsNWh1bTVodaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYWNrIiBtc2dpZD0iNTY3MDExNTM4OTk0NDI5MTIwIj4i1YDVpdW/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+ItWP1bjWgtW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4i1ZHVodW21a8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiLVjtWl1oDVu9Wr1bYg1a7WgNWh1aPWgNWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4i1YTVq9Wh1oHVttWl1awg1bTVuNaC1b/WhNWh1aPWgNW01aHVtiDVpdWy1aHVttWh1a/VqyDVr9W41bPVodWv1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+ItWA1aHVtNWh1b/VpdWy1aXVrNWr1bjWgtWp1bXVodW2INWt1bjVt9W41oDVodaB1bTVodW2INWv1bjVs9Wh1a/VqDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+ItS01avVv9Wh1oPVuNWt1aXVrCDWg9W41oTWgNWr1oEg1aHVvtWl1azVqyDVtNWl1a4g1afVr9aA1aHVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9jb25uZWN0ZWQiIG1zZ2lkPSIyNzA3MDI3NjMzMjQyOTgzMzcwIj4iQmx1ZXRvb3RoLdWoINW01avVodaB1b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX2Rpc2Nvbm5lY3RlZCIgbXNnaWQ9Ijc0MTY2NDg2Njk5NzY4NzAxNzUiPiJCbHVldG9vdGgt1bYg1aHVttW71aHVv9W+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2JhdHRlcnkiIG1zZ2lkPSIzNTgzNDMwMjIzNTI4MjA5NDYiPiLVhNWh1oDVv9Wv1bjWgSDVudWv1aE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X29uZV9iYXIiIG1zZ2lkPSI3Nzc0ODg3NzIxODkxMDU3NTIzIj4i1YTVodaA1b/Vr9W41oHVqyDVtNWl1a8g1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90d29fYmFycyIgbXNnaWQ9Ijg1MDA2NTA0Mzg3MzUwMDk5NzMiPiLVhNWh1oDVv9Wv1bjWgdWrINWl1oDVr9W41oIg1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90aHJlZV9iYXJzIiBtc2dpZD0iMjMwMjk4MzMzMDg2NTA0MDQ0NiI+ItWE1aHWgNW/1a/VuNaB1asg1aXWgNWl1oQg1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9mdWxsIiBtc2dpZD0iODkwOTEyMjQwMTcyMDE1ODU4MiI+ItWE1aHWgNW/1a/VuNaB1agg1azVq9aE1bYg1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19waG9uZSIgbXNnaWQ9IjQ4OTQ3MDg5MzcwNTI2MTEyODEiPiLVgNWl1bzVodWt1bjVvSDVudWv1aE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9vbmVfYmFyIiBtc2dpZD0iNjg3Njk5Mjc4MTMyNjY0MTE1Ij4i1YDVpdW81aHVrdW41b3VqyDVtNWl1a8g1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdHdvX2JhcnMiIG1zZ2lkPSI4Mzg0OTA1MzgyODA0ODE1MjAxIj4i1YDVpdW81aHVrdW41b3VqyDVpdaA1a/VuNaCINWj1avVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3RocmVlX2JhcnMiIG1zZ2lkPSI4NTIxOTA0ODQzOTE5OTcxODg1Ij4i1YDVpdW81aHVrdW41b3VqyDVpdaA1aXWhCDVo9Wr1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9zaWduYWxfZnVsbCIgbXNnaWQ9IjY0NzE4MzQ4Njg1ODA3NTc4OTgiPiLVgNWl1bzVodWt1bjVvdWrINWh1abVpNWh1bbVt9Wh1bbVqCDVrNWr1oTVtiDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2RhdGEiIG1zZ2lkPSI0NzkxOTY2Mjk1MDk2ODY3NTU1Ij4i1Y/VvtW11aHVrNW21aXWgCDVudWv1aHVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfb25lX2JhciIgbXNnaWQ9IjE0MTU2MjU4MzMyMzgyNzM2MjgiPiLVj9W+1bXVodWs1bbVpdaA1asg1bTVpdWvINWj1avVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfdHdvX2JhcnMiIG1zZ2lkPSI2MTY2MDE4NDkyMzYwNDMyMDkxIj4i1Y/VvtW11aHVrNW21aXWgNWrINWl1oDVr9W41oIg1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90aHJlZV9iYXJzIiBtc2dpZD0iOTE2NzY3MDQ1MjM5NTAzODUyMCI+ItWP1b7VtdWh1azVttWl1oDVqyDVpdaA1aXWhCDVo9Wr1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3NpZ25hbF9mdWxsIiBtc2dpZD0iMjcwODM4NDYwODEyNDUxOTM2OSI+ItWP1b7VtdWh1azVttWl1oDVqyDVodWm1aTVodW21bfVodW21agg1azWgNWr1b4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29mZiIgbXNnaWQ9IjMxNzczODAyOTY2OTc5MzM2MjciPiJXaWZpLdWoINWh1bbVu9Wh1b/VvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub193aWZpIiBtc2dpZD0iMTQyNTQ3NjU1MTgyNzkyNDQ3NCI+IldpRmkt1agg1aHVttW71aHVv9W+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiJXaWZpLdWrINW01aXVryDVo9Wr1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3R3b19iYXJzIiBtc2dpZD0iNDk5NDI3NDI1MDQ5NzI2MjQzNCI+IldpZmkt1asg1aXWgNWv1bjWgiDVo9Wr1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3RocmVlX2JhcnMiIG1zZ2lkPSIzNDk1NzU1MDQ0Mjc2NTg4Mzg0Ij4iV2lGaS3VqyDVpdaA1aXWhCDVo9Wr1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IldpZmkt1asg1aHVptWk1aHVttW31aHVttWoINWs1avWhNW2INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2ltYXgiIG1zZ2lkPSI0MzI5MTgwMTI5NzI3NjMwMzY4Ij4iV2lNQVgg1bnVr9WhOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfb25lX2JhciIgbXNnaWQ9IjQxNzA5OTQyOTkwMTE4NjM2NDgiPiJXaU1BWC3VqyDVtNWl1a8g1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdHdvX2JhcnMiIG1zZ2lkPSI5MTc2MjM2ODU4MzM2NTAyMjg4Ij4iV2lNQVgt1asg1aXWgNWv1bjWgiDVo9Wr1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90aHJlZV9iYXJzIiBtc2dpZD0iNjExNjU1MTYzNjc1MjEwMzkyNyI+IldpTUFYLdWrINWl1oDVpdaEINWj1avVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3NpZ25hbF9mdWxsIiBtc2dpZD0iMjc2ODA4OTk4Njc5NTU3OTU1OCI+IldpTUFYLdWrINWh1abVpNWh1bbVt9Wh1bbVqCDVrNWr1oTVtiDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpZ25hbCIgbXNnaWQ9IjcwNjQ2NDUzMjA3ODI1ODUxNjciPiLUsdWm1aTVodW21bfVodW2INW51a/VoToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4i1YTVq9Wh1oHVvtWh1a4g1bnVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3plcm9fYmFycyIgbXNnaWQ9IjM4MDYwNjAyMjQ0NjcwMjc4ODciPiLUttaA1bgg1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfb25lX2JhciIgbXNnaWQ9IjE2ODU3MzAxMTMxOTIwODE4OTUiPiLVhNWl1a8g1aPVq9WuOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHdvX2JhcnMiIG1zZ2lkPSI2NDM3MzYzNjQ4Mzg1MjA2Njc5Ij4i1LXWgNWv1bjWgiDVo9Wr1a46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90aHJlZV9iYXJzIiBtc2dpZD0iMjY0ODI0MTQxNTExOTM5NjY0OCI+ItS11oDVpdaEINWj1avVrjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NpZ25hbF9mdWxsIiBtc2dpZD0iOTEyMjkyMjg4NjUxOTY3NjgzOSI+ItSx1abVpNWh1bbVt9Wh1bbVqCDVrNaA1avVviDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb24iIG1zZ2lkPSIyMzg1MjU0NjkzNjI0MzQ1MjY1Ij4i1YTVq9Wh1oHVvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29mZiIgbXNnaWQ9IjY0NzU1MDgxNTc3ODY4NTMxNTciPiLUsdW21bvVodW/1b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19jb25uZWN0ZWQiIG1zZ2lkPSI4MzY2MjU2NjkzNzE5NDk5NjY1Ij4i1YTVq9Wh1oHVvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZ3BycyIgbXNnaWQ9IjE2MDY0NzcyMjQ0ODY3NDc3NTEiPiJHUFJTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMXgiIG1zZ2lkPSI5OTQxMzM0NjgxMjAyNDQwMTgiPiIxIFgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9oc3BhIiBtc2dpZD0iMjAzMjMyODg1NTQ2MjY0NTE5OCI+IkhTUEEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8zZyIgbXNnaWQ9Ijg2Mjg1NjIzMDUwMDM1NjgyNjAiPiIzRyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzMuNWciIG1zZ2lkPSI4NjY0ODQ1NjA5OTgxNjkyMDAxIj4iMy41RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzRnIiBtc2dpZD0iNzc0MTAwMDc1MDYzMDA4OTYxMiI+IjRHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fbHRlIiBtc2dpZD0iNTQxMzQ2ODgwODYzNzU0MDY1OCI+IkxURSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2NkbWEiIG1zZ2lkPSI2MTMyNjQ4MTkzOTc4ODIzMDIzIj4iQ0RNQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX3JvYW1pbmciIG1zZ2lkPSI1OTc3MzYyMzMzNDY2NTU2MDk0Ij4i1YzVuNW41oLVtNWr1bbVoyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2VkZ2UiIG1zZ2lkPSI0NDc3NDU3MDUxNjMxOTc5Mjc4Ij4iRWRnZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX3dpZmkiIG1zZ2lkPSIyMzI0NDk2NzU2NTkwNjQ1MjIxIj4iV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpbSIgbXNnaWQ9IjgyNzQwMTcxMTg0NzI0NTUxNTUiPiJTSU0g1bnVr9WhOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX3RldGhlciIgbXNnaWQ9IjQxMDI3ODQ0OTgxNDAyNzE5NjkiPiJCbHVldG9vdGgt1agg1a/VodW61b7VuNaC1bQg1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9haXJwbGFuZV9tb2RlIiBtc2dpZD0iODM0NzQ4OTk5NzkwNzYzMDkyIj4i1LvVttaE1bbVodWp1avVvNWh1bXVq9W2INW81aXVqtWr1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfbGV2ZWwiIG1zZ2lkPSI3NDUxNDc0MTg3MTEzMzcxOTY1Ij4i1YTVodaA1b/Vr9W41oHVqCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g1b/VuNWv1bjVvSDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9Ijc5OTU4MzkxMTIzMTg5MzM4MCI+ItWA1aHVtNWh1a/VodaA1aPVqyDVr9Wh1oDVo9Wh1b7VuNaA1bjWgtW01bbVpdaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uc19idXR0b24iIG1zZ2lkPSI0NDk4MDAwMzY5Nzc5NDIxODkyIj4i1L7VodW21bjWgtaB1bjWgtW01bbVpdaAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVtb3ZlX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjM2MDMwOTk1MTQ5MDIxODIzNTAiPiLVhNWh1oTWgNWl1awg1a7VodW21bjWgtaB1bjWgtW01ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfZW5hYmxlZCIgbXNnaWQ9IjM1MTE0Njk0OTkyNDAxMjMwMTkiPiJHUFMt1agg1bTVq9Wh1oHVvtWh1a4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfYWNxdWlyaW5nIiBtc2dpZD0iODk1OTMzMzM1MTA1ODk2NzE1OCI+IkdQUy3VqyDVvdW/1aHWgdW41oLVtDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3R0eV9lbmFibGVkIiBtc2dpZD0iNDYxMzIwMDM2NTM3OTQyNjU2MSI+ItWA1aXVvNWh1bTVuNaC1b/WhNWh1aPWgNWr1bnVqCDVtNWr1aHWgdW+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl92aWJyYXRlIiBtc2dpZD0iNjY2NTg1MzYzMzY0MTU1MDU1Ij4i1LbVodW21aPVqyDVqdaA1anVvNW41oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfc2lsZW50IiBtc2dpZD0iOTA2MTI0MzMwNzkzOTEzNTM4MyI+ItS21aHVttWj1aHVr9WoINWs1bzVpdaB1b7VodWuINWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50c19pdGVtX2Rpc21pc3NlZCIgbXNnaWQ9IjY4MDM1NzQ5MzUwODQ4NjcwNzAiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4t1agg1aHVttW/1aXVvdW+1aHVriDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdGlmaWNhdGlvbl9kaXNtaXNzZWQiIG1zZ2lkPSI4NTQyMTEzODcxODYzMDY5MjciPiLUvtWh1bbVuNaC1oHVuNaC1bTVqCDVodW21b/VpdW91b7VpdaBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19ub3RpZmljYXRpb25fc2hhZGUiIG1zZ2lkPSI0NjkwMjc0ODQ0NDQ3NTA0MjA4Ij4i1L7VodW21bjWgtaB1bjWgtW01bbVpdaA1asg1b7VodWw1aHVttWh1a86Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3F1aWNrX3NldHRpbmdzIiBtc2dpZD0iNjE4NjM3ODQxMTU4MjQzNzA0NiI+ItSx1oDVodWjINWv1aHWgNWj1aHVvtW41oDVuNaC1bTVttWl1oA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3JlY2VudF9hcHBzIiBtc2dpZD0iOTAxNDAzMjkxNjQxMDU5MDAyNyI+ItWO1aXWgNW71avVtiDVsNWh1b7VpdWs1b7VodWu1bbVpdaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc191c2VyIiBtc2dpZD0iMTEwNDg0NjY5OTg2OTQ3Njg1NSI+ItWV1aPVv9W+1bjVsiA8eGxpZmY6ZyBpZD0iVVNFUiI+JXM8L3hsaWZmOmc+OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3Nfd2lmaSIgbXNnaWQ9IjYwOTk3ODEwMzE2Njk3Mjg3MDkiPiI8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19tb2JpbGUiIG1zZ2lkPSI0ODc2ODA2NTY0MDg2MjQxMzQxIj4i1YfVodaA1arVodWv1aHVtiA8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPjogPHhsaWZmOmcgaWQ9IlRZUEUiPiUyJHM8L3hsaWZmOmc+OiA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTMkczwveGxpZmY6Zz46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+ItWE1aHWgNW/1a/VuNaB1aggPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4g1ac6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLUu9W21oTVttWh1anVq9W81aHVtdWr1bYg1bzVpdWq1avVtNWoIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+INWnOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aC3VqCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiDVpzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+ItS21aHWgNWp1bjWgtaB1avVudWoINWk1oDVvtWh1a4g1acgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi3Vq9W2OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IjJHLTNHINW/1b7VtdWh1azVttWl1oDVqCDVodW21bvVodW/1b7VodWuINWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiI0RyDVv9W+1bXVodWs1bbVpdaA1agg1aHVttW71aHVv9W+1aHVriDVpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfbW9iaWxlX3RpdGxlIiBtc2dpZD0iMTA0NjA0NzI0ODg0NDgyMTIwMiI+ItWH1aHWgNWq1aHVr9Wh1bYg1b/VvtW11aHVrNW21aXWgNWoINWh1bbVu9Wh1b/VvtWh1a4g1aXVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMjA4NjgxNTMwNDg1ODk2NDk1NCI+ItWP1b7VtdWh1azVttWl1oDVqCDVodW21bvVodW/1b7VodWuINWl1bYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZyIgbXNnaWQ9IjM4NTMxMTcyNjkwNTE4MDYyODAiPiLUtNW41oLWhCDVsNWh1b3VpdWsINWl1oQg1bbVt9W+1aHVriDVv9W+1bXVodWs1bbVpdaA1asg1oXVo9W/1aHVo9W41oDVrtW01aHVtiDVvdWh1bDVtNWh1bbVq9W2OlxuXG4g1LXVqdWlINWk1bjWgtaEINWv1oDVr9Wr1bYg1aHVr9W/1avVvtWh1oHVttWl1oQg1b/VvtW11aHVrNW21aXWgNWoLCDVodW11bYg1a/VodaA1bjVsiDVpyDVo9Wh1bbVsdW+1aXVrCDWhdW61aXWgNWh1b/VuNaA1asg1a/VuNWy1bTVq9aBOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX2VuYWJsZSIgbXNnaWQ9Ijc3Mjk3NzIwMzkyMDg2NjQ2MDYiPiLVjtWl1oDVodW01avVodaB1bbVpdWsINW/1b7VtdWh1azVttWl1oDVqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX2Rpc2Nvbm5lY3RlZCIgbXNnaWQ9IjE5NDAyMzE1MjEyNzQxNDc3NzEiPiLUu9W21b/VpdaA1bbVpdW/INWv1aHVuiDVudWv1aEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaS1GaS3VqCDVtNWr1aHWgdW+1aHVriDVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4i1YjWgNW41bbVuNaC1bQg1acgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+ItWP1aXVstWh1aTWgNW41oLVqdW11bjWgtW21agg1a/VodaA1aPVodW+1bjWgNW+1aXVrCDVpyBHUFMt1asg1a/VuNWy1bTVq9aBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4i1Y/VpdWy1aHVpNaA1bjWgtWp1bXVodW2INWw1aHWgNaB1bjWgtW01bbVpdaA1bYg1aHVr9W/1avVviDVpdW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4i1YTVodaE1oDVpdWsINWi1bjVrNW41oAg1a7VodW21bjWgtaB1bjWgtW01bbVpdaA1ag6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+ItWP1aXVstWl1a/VuNaC1anVtdW41oLVttW21aXWgCDVrtaA1aHVo9aA1asg1bTVodW91avVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4i1LfVr9aA1aHVttWoINWr1bbWhNW21bjWgtaA1bjWgtW11bYg1a/VutW/1b/VvtWrOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4i1LfVr9aA1aHVttWoINWv1bjVstW61b7VodWuINWnINWw1bjWgNWr1abVuNW21aHVr9Wh1bYg1aTVq9aA1oTVodW+1bjWgNW01aHVtiDVtNWl1bs6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+ItS31a/WgNWh1bbVqCDVr9W41bLVutW+1aHVriDVpyDVuNaC1bLVstWh1bHVq9WjINWk1avWgNaE1aHVvtW41oDVtNWh1bTVojoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4i1ZHVpdaA1aXVr9Wh1bXVq9W2INW81aXVqtWr1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJFdGhlcm5ldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4i1LvVttaE1bbVodWp1avVvNWh1bXVq9W2INW81aXVqtWr1bQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnaW5nX2xhYmVsIiBtc2dpZD0iNDkwMDc0Nzc0NDY1MzA5MjA5Ij4i1LzVq9aB1oTVodW+1bjWgNW41oLVtGAgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JhdHRlcnlfY2hhcmdlZF9sYWJlbCIgbXNnaWQ9Ijg4NjU0MTMwNzk0MTQyNDYwODEiPiLUvNWr1oHWhNWh1b7VuNaA1b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX2xhYmVsIiBtc2dpZD0iNjMwNDE5MDI4NTE3MDcyMTQwMSI+IkJsdWV0b290aCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9tdWx0aXBsZV9kZXZpY2VzX2xhYmVsIiBtc2dpZD0iMzkxMjI0NTU2NTYxMzY4NDczNSI+IkJsdWV0b290aCAoPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INW91aHWgNaEKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9vZmZfbGFiZWwiIG1zZ2lkPSI4MTU5NjUyMTQ2MTQ5MjE5OTM3Ij4iQmx1ZXRvb3RoLdW2INWh1bbVu9Wh1b/VvtWh1a4g1aciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNjk2ODM3MjI5NzAxODc1NTgxNSI+ItWK1aHVtdWu1aHVvNW41oLVqdW11bjWgtW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fdW5sb2NrZWRfbGFiZWwiIG1zZ2lkPSIzMzYwNTQ5MzAzNjI1ODA1ODQiPiLUu9W21oTVttWh1brVv9W/1bjWgtW0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fbG9ja2VkX2xhYmVsIiBtc2dpZD0iODA1ODY0NjQ0NzI0MjU2NTQ4NiI+ItWK1b/Vv9W41oLVtNWoINWv1bjVstW61b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+ItWE1bjWgtW/1oTVodWj1oDVtNWh1bYg1aXVstWh1bbVodWv1agiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCIgbXNnaWQ9IjUwMTEzMjcwNDg3NDg3NjIyNTciPiLVj9Wl1bLVodWk1oDVuNaC1anVtdW41oLVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiLUsdW21bvVodW/1aXVrCDVv9Wl1bLVodWk1oDVuNaC1anVtdW41oLVttWoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbWVkaWFfZGV2aWNlX2xhYmVsIiBtc2dpZD0iMTMwMjkwNjgzNjM3MjYwMzc2MiI+ItWE1aXVpNWr1aEg1b3VodaA1oQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2xhYmVsIiBtc2dpZD0iNzcyNTY3MTMzNTU1MDY5NTU4OSI+IlJTU0kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2VtZXJnZW5jeV9vbmx5IiBtc2dpZD0iMjcxMzc3NDA0MTY3Mjg4Njc1MCI+ItWE1avVodW11bYg1aHWgNW/1aHVr9Wh1oDVoyDVq9aA1aHVvtWr1bPVodWv1bbVpdaA1asg1abVodW21aPVpdaAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfc2V0dGluZ3NfbGFiZWwiIG1zZ2lkPSI1MzI2NTU2NTkyNTc4MDY1NDAxIj4i1L/VodaA1aPVodW+1bjWgNW41oLVtNW21aXWgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3RpbWVfbGFiZWwiIG1zZ2lkPSI0NjM1OTY5MTgyMjM5NzM2NDA4Ij4i1LrVodW01aHVttWh1a/VqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3VzZXJfbGFiZWwiIG1zZ2lkPSI1MjM4OTk1NjMyMTMwODk3ODQwIj4i1LXVvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbGFiZWwiIG1zZ2lkPSI5MTM1MzQ0NzA0ODk5NTQ2MDQxIj4iV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI3MTcxOTA0ODQ1MzQ1NTczNDMxIj4i1YTVq9Wh1oHVvtWh1a4g1bnVpyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm9fbmV0d29yayIgbXNnaWQ9IjIyMjE5OTMwNzcyMjA4NTYzNzYiPiLVkdWh1bbWgSDVudWv1aEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX29mZl9sYWJlbCIgbXNnaWQ9Ijc1NTg3NzgxMDA4NDM4ODU4NjQiPiJXaS1GaS3VqCDVodW21bvVodW/1b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X2xhYmVsIiBtc2dpZD0iNjg5MzU5Mjk2NDQ2MzYyNDMzMyI+IldpLUZpINaB1bjWgtaB1aHVpNaA1avVuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+ItSx1bbVrNWh1oAg1afVr9aA1aHVtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+ItWK1aHVtdWu1aHVvNW41oLVqdW11bjWgtW2Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+ItS71bbWhNW21aHVt9Wt1aHVvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiLUvtWh1bbVuNaC1oHVuNaC1bTVttWl1oDVqCDVsNWh1bXVv9W21b7VuNaC1bQg1aXVtiDVodW11b3Vv9Wl1bIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiLUtNaA1aHVttaEINW01aHVv9W51aXWhCDWgdWh1bbVr9Wh1oHVodWuINW61aHVsNWrYCDVvdWh1bDVodWw1aHWgNW+1aHVrtWl1azVuNW+Olxu1L/WgNWv1avVtiDVvdWh1bDVodWw1aHWgNW+1aHVrtWl1oQg1bbVpdaA1oTWh2Ag1bDVodW01aHVr9Wh1oDVo9Wh1bXVq9W2INWv1aHVvNWh1b7VodaA1bTVodW2INWw1aHVtNWh1oA6Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWluL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1pbi9zdHJpbmdzLnhtbAppbmRleCA2YTcwMmI5Li4xZDU4ZWRhOSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1pbi9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWluL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IlNlbGFsdSBpemlua2FuIGRhcmkga29tcHV0ZXIgaW5pIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4iUGVyYmVzYXIgdXRrIG1lbmdpc2kgbGF5YXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iUmVudGFuZ2tuIHV0ayBtbmdpc2kgbGF5YXIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJQZXJiZXNhci9wZXJrZWNpbCB1bnR1ayBrb21wYXRpYmlsaXRhcyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiJTYWF0IGFwbCBkaXJhbmNhbmcgdW50dWsgbGF5YXIgeWFuZyBsZWJpaCBrZWNpbCwga29udHJvbCB6b29tIGFrYW4gdGFtcGlsIGRpIGRla2F0IGphbS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4iTWVueWltcGFuIHRhbmdrYXBhbiBsYXlhci4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+Ik1lbnlpbXBhbiB0YW5na2FwYW4gbGF5YXIuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+IlRhbmdrYXBhbiBsYXlhciBzZWRhbmcgZGlzaW1wYW4uIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IlV0YW1hIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4iTWVudSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IkFwbCB0ZXJiYXJ1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4iVGVsdXN1cmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4iS2FtZXJhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiJUb21ib2wgYmVyYWxpaCBtZXRvZGUgbWFzdWthbi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4iVG9tYm9sIHBlcmJlc2FyL3BlcmtlY2lsIGtvbXBhdGliaWxpdGFzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4iUGVyYmVzYXIgZGFyaSBsYXlhciBrZWNpbCBrZSBiZXNhci4iPC9zdHJpbmc+CkBAIC0xNTMsNiArMTUzLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJCYXRlcmFpIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iTW9kZSBQZXNhd2F0IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+Ikxva2FzaSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IkFsYXJtIGRpc2V0ZWwga2UgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiJEYXRhIDJHLTNHIGRpbm9uYWt0aWZrYW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiJEYXRhIDRHIGRpbm9uYWt0aWZrYW4iPC9zdHJpbmc+CkBAIC0xNjQsMTIgKzE2NSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkgdGVyc2FtYnVuZyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iTWVuZWx1c3VyaSBHUFMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4iTG9rYXNpIHlhbmcgZGlzZXRlbCBvbGVoIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IlBlcm1pbnRhYW4gbG9rYXNpIGFrdGlmIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iTWVuZ2hhcHVzIHNlbXVhIHBlbWJlcml0YWh1YW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IkluZm8gYXBsaWthc2kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IkxheWFyIGFrYW4gZGlwdXRhciBzZWNhcmEgb3RvbWF0aXMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiJMYXlhciBkaWt1bmNpIGRhbGFtIG9yaWVudGFzaSBsYW5za2FwLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiJMYXlhciBkaWt1bmNpIGRhbGFtIG9yaWVudGFzaSBwb3RyZXQuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IkV0YWxhc2UgSGlkYW5nYW4gUGVudXR1cCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJMYW11bmFuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+Ik1vZGUgcGVzYXdhdCI8L3N0cmluZz4KQEAgLTE4MiwxMCArMTg0LDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX3VubG9ja2VkX2xhYmVsIiBtc2dpZD0iMzM2MDU0OTMwMzYyNTgwNTg0Ij4iUm90YXNpIE90b21hdGlzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fbG9ja2VkX2xhYmVsIiBtc2dpZD0iODA1ODY0NjQ0NzI0MjU2NTQ4NiI+IlJvdGFzaSBEaWt1bmNpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+Ik1ldG9kZSBNYXN1a2FuIjwvc3RyaW5nPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsICg1MDExMzI3MDQ4NzQ4NzYyMjU3KSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCAoNzQ2NDU0NDA4NjUwNzMzMTQ1OSkgLS0+Ci0gICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+Ikxva2FzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiJMb2thc2kgTWF0aSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX21lZGlhX2RldmljZV9sYWJlbCIgbXNnaWQ9IjEzMDI5MDY4MzYzNzI2MDM3NjIiPiJQZXJhbmdrYXQgbWVkaWEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2xhYmVsIiBtc2dpZD0iNzcyNTY3MTMzNTU1MDY5NTU4OSI+IlJTU0kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2VtZXJnZW5jeV9vbmx5IiBtc2dpZD0iMjcxMzc3NDA0MTY3Mjg4Njc1MCI+IlBhbmdnaWxhbiBEYXJ1cmF0IFNhamEiPC9zdHJpbmc+CkBAIC0yMDAsOCArMjAwLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IkxheWFyIE5pcmthYmVsIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4iS2VjZXJhaGFuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+Ik9UT01BVElTIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RpdGxlIiBtc2dpZD0iMTE5OTIzNzc0NDA4NjQ2OTIxNyI+IlBlbWJlcml0YWh1YW4gbXVuY3VsIGRpIHNpbmkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiJBa3NlcyBrYXBhbiBzYWphIGRlbmdhbiBtZW5nZ2VzZWsga2UgYmF3YWguXG5HZXNlayBrZSBiYXdhaCBzZWthbGkgbGFnaSB1bnR1ayBrb250cm9sIHNpc3RlbS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiJHZXNlayB0ZXBpIGxheWFyIHVudHVrIG1lbWJ1a2EgYmlsYWgiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+Ikdlc2VrIGRhcmkgYmFnaWFuIHRlcGkgbGF5YXIgdW50dWsgbWVtYnVrYSBiaWxhaCBzaXN0ZW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4iTW9kZSBpbnZlcnNpIHdhcm5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4iTW9kZSBrb250cmFzIHlhbmcgZGlzZW1wdXJuYWthbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4iTW9kZSBrb3Jla3NpIHdhcm5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiJKYXJpbmdhbiBiaXNhXG5kaWF3YXNpIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWl0L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1pdC9zdHJpbmdzLnhtbAppbmRleCBhMzUwZDM4Li40ZWZlNzVjIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWl0L3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtaXQvc3RyaW5ncy54bWwKQEAgLTYxLDggKzYxLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4iQ29uc2VudGkgc2VtcHJlIGRhIHF1ZXN0byBjb21wdXRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+Ilpvb20gcGVyIHJpZW1waXJlIHNjaGVybW8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iRXN0ZW5kaSBwZXIgcmllbXAuIHNjaGVybW8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJab29tIGNvbXBhdGliaWxpdMOgIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+IlNlIHVuXCdhcHBsaWNhemlvbmUgw6ggc3RhdGEgcHJvZ2V0dGF0YSBwZXIgdW5vIHNjaGVybW8gcGnDuSBwaWNjb2xvLCBhY2NhbnRvIGFsbFwnb3JvbG9naW8gdmllbmUgdmlzdWFsaXp6YXRvIHVuIGNvbnRyb2xsbyBkZWxsbyB6b29tLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiJTYWx2YXRhZ2dpbyBzY3JlZW5zaG90Li4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4iU2FsdmF0YWdnaW8gc2NyZWVuc2hvdC4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4iU2NyZWVuc2hvdCBpbiBjb3JzbyBkaSBzYWx2YXRhZ2dpby4iPC9zdHJpbmc+CkBAIC03OCw2ICs3Niw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4iSG9tZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+Ik1lbnUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiJBcHBsaWNhemlvbmkgcmVjZW50aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+IkNlcmNhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+IkZvdG9jYW1lcmEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IlB1bHNhbnRlIHBlciBjYW1iaWFyZSBtZXRvZG8gZGkgaW1taXNzaW9uZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4iUHVsc2FudGUgem9vbSBjb21wYXRpYmlsaXTDoC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+Ilpvb20gaW5mZXJpb3JlIHBlciBzY2hlcm1vIHBpw7kgZ3JhbmRlLiI8L3N0cmluZz4KQEAgLTExNiw4ICsxMTYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90d29fYmFycyIgbXNnaWQ9IjY0MzczNjM2NDgzODUyMDY2NzkiPiJEdWUgYmFycmUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90aHJlZV9iYXJzIiBtc2dpZD0iMjY0ODI0MTQxNTExOTM5NjY0OCI+IlRyZSBiYXJyZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NpZ25hbF9mdWxsIiBtc2dpZD0iOTEyMjkyMjg4NjUxOTY3NjgzOSI+Ik1hc3NpbW8gc2VnbmFsZS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb24iIG1zZ2lkPSIyMzg1MjU0NjkzNjI0MzQ1MjY1Ij4iQXR0aXZvLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vZmYiIG1zZ2lkPSI2NDc1NTA4MTU3Nzg2ODUzMTU3Ij4iTm9uIGF0dGl2by4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb24iIG1zZ2lkPSIyMzg1MjU0NjkzNjI0MzQ1MjY1Ij4iT04iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb2ZmIiBtc2dpZD0iNjQ3NTUwODE1Nzc4Njg1MzE1NyI+Ik9GRiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19jb25uZWN0ZWQiIG1zZ2lkPSI4MzY2MjU2NjkzNzE5NDk5NjY1Ij4iQ29ubmVzc28uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZ3BycyIgbXNnaWQ9IjE2MDY0NzcyMjQ0ODY3NDc3NTEiPiJHUFJTIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMXgiIG1zZ2lkPSI5OTQxMzM0NjgxMjAyNDQwMTgiPiIxIFgiPC9zdHJpbmc+CkBAIC0xNTUsNiArMTU1LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJCYXR0ZXJpYTogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiJNb2RhbGl0w6AgYWVyZW86IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aDogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiJQb3NpemlvbmU6IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4iQWxsYXJtZSBpbXBvc3RhdG8gcGVyOiA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IkRhdGkgMkctM0cgZGlzYXR0aXZhdGkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiJEYXRpIDRHIGRpc2F0dGl2YXRpIjwvc3RyaW5nPgpAQCAtMTY2LDEyICsxNjcsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpIGNvbm5lc3NvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJSaWNlcmNhIGRlbCBHUFMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4iUG9zaXppb25lIHN0YWJpbGl0YSBkYWwgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4iUmljaGllc3RlIGRpIGFjY2Vzc28gYWxsYSBwb3NpemlvbmUgYXR0aXZlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iQ2FuY2VsbGEgdHV0dGUgbGUgbm90aWZpY2hlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiJJbmZvcm1hemlvbmkgYXBwbGljYXppb25lIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiJMbyBzY2hlcm1vIHJ1b3RlcsOgIGF1dG9tYXRpY2FtZW50ZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IkxvIHNjaGVybW8gw6ggYmxvY2NhdG8gaW4gb3JpZW50YW1lbnRvIG9yaXp6b250YWxlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiJMbyBzY2hlcm1vIMOoIGJsb2NjYXRvIGluIG9yaWVudGFtZW50byB2ZXJ0aWNhbGUuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IlZldHJpbmEgZGkgZG9sY2kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iRGF5ZHJlYW0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJFdGhlcm5ldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4iTW9kYWxpdMOgIGFlcmVvIjwvc3RyaW5nPgpAQCAtMTg0LDcgKzE4Niw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IlJvdGF6aW9uZSBhdXRvbS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4iUm90YXppb25lIGJsb2NjYXRhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+Ik1ldG9kbyBkaSBpbW1pc3Npb25lIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwiIG1zZ2lkPSI1MDExMzI3MDQ4NzQ4NzYyMjU3Ij4iUG9zaXppb25lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwiIG1zZ2lkPSI1MDExMzI3MDQ4NzQ4NzYyMjU3Ij4iR2VvbG9jYWxpenphemlvbmUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4iUG9zaXppb25lIG5vbiBhdHRpdmEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4iRGlzcG9zaXRpdm8gbXVsdGltZWRpYWxlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9sYWJlbCIgbXNnaWQ9Ijc3MjU2NzEzMzU1NTA2OTU1ODkiPiJSU1NJIjwvc3RyaW5nPgpAQCAtMjAwLDggKzIwMiw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJWaXN1YWxpenphemlvbmUgd2lyZWxlc3MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiJMdW1pbm9zaXTDoCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiJBVVRPIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RpdGxlIiBtc2dpZD0iMTE5OTIzNzc0NDA4NjQ2OTIxNyI+IkxlIG5vdGlmaWNoZSB2ZW5nb25vIHZpc3VhbGl6emF0ZSBxdWkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiJQdW9pIGFjY2VkZXJ2aSBpbiBxdWFsc2lhc2kgbW9tZW50byBzY29ycmVuZG8gdmVyc28gaWwgYmFzc28uXG5GYWkgc2NvcnJlcmUgZGkgbnVvdm8gdmVyc28gaWwgYmFzc28gcGVyIHZpc3VhbGl6emFyZSBpIGNvbnRyb2xsaSBkZWwgc2lzdGVtYS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiJGYWkgc2NvcnJlcmUgaWwgYm9yZG8gZGVsbG8gc2NoZXJtbyBwZXIgdmlzdWFsaXp6YXJlIGxhIGJhcnJhIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiJGYWkgc2NvcnJlcmUgaWwgZGl0byBkYWwgYm9yZG8gZGVsbG8gc2NoZXJtbyBwZXIgdmlzdWFsaXp6YXJlIGxhIGJhcnJhIGRpIHNpc3RlbWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4iTW9kYWxpdMOgIGludmVyc2lvbmUgY29sb3JpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4iTW9kYWxpdMOgIGRpIGNvbnRyYXN0byBhdmFuemF0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4iTW9kYWxpdMOgIGRpIGNvcnJlemlvbmUgZGVsIGNvbG9yZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iTGEgcmV0ZSBwb3RyZWJiZVxuZXNzZXJlIG1vbml0b3JhdGEiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtaXcvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWl3L3N0cmluZ3MueG1sCmluZGV4IGIyNzRkY2MuLjBlZDNmOTcgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtaXcvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1pdy9zdHJpbmdzLnhtbApAQCAtMjIsMTIgKzIyLDEyIEBACiAgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTY0OTM3MzQ0ODUwMDA0NDY2Ij4i157Xntep16cg157Xqdeq157XqSDXqdecINeU157Xoteo15vXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfY2xlYXJfYWxsX2J1dHRvbiIgbXNnaWQ9Ijc3NzQ3MjEzNDQ3MTY3MzE2MDMiPiLXoNen15QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9yZW1vdmVfaXRlbV90aXRsZSIgbXNnaWQ9IjYwMjYzOTU4NjgxMjk4NTI5NjgiPiLXlNeh16gg157XlNeo16nXmdee15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSI3NzkzNjI0ODY0NTI4ODE4NTY5Ij4i16TXqNeY15kg15nXmdep15XXnSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm9fcmVjZW50X2FwcHMiIG1zZ2lkPSI2NTc2MzkyOTUxMDUzOTk0NjQwIj4i15DXmdefINeZ15nXqdeV157XmdedINeQ15fXqNeV16DXmdedIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X2Rpc21pc3NfcmVjZW50cyIgbXNnaWQ9IjQ1NzYwNzYwNzUyMjY1NDAxMDUiPiLXodeS15XXqCDXmdeZ16nXldee15nXnSDXkNeX16jXldeg15nXnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9Ijc3OTM2MjQ4NjQ1Mjg4MTg1NjkiPiLXpNeo15jXmSDXkNek15zXmden16bXmdeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19yZWNlbnRfYXBwcyIgbXNnaWQ9IjY1NzYzOTI5NTEwNTM5OTQ2NDAiPiLXkNeZ158g15DXpNec15nXp9em15nXldeqINeQ15fXqNeV16DXldeqIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X2Rpc21pc3NfcmVjZW50cyIgbXNnaWQ9IjQ1NzYwNzYwNzUyMjY1NDAxMDUiPiLXodeS15XXqCDXkNek15zXmden16bXmdeV16og15DXl9eo15XXoNeV16oiPC9zdHJpbmc+CiAgIDxwbHVyYWxzIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9yZWNlbnRfYXBwcyI+Ci0gICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NTQxNzYwODM4NjU4NDU1NDEiPiLXmdeZ16nXldedINeQ15fXqNeV158g15DXl9eTIjwvaXRlbT4KLSAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMDQwNzg0MzU5Nzk0ODkwNzQ0Ij4iJWQg15TXmdeZ16nXldee15nXnSDXlNeQ15fXqNeV16DXmdedIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg1NDE3NjA4Mzg2NTg0NTU0MSI+IteQ16TXnNeZ16fXpteZ15Qg15DXl9eo15XXoNeUINeQ15fXqiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTA0MDc4NDM1OTc5NDg5MDc0NCI+IuKAjyVkINeU15DXpNec15nXp9em15nXldeqINeU15DXl9eo15XXoNeV16oiPC9pdGVtPgogICA8L3BsdXJhbHM+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX25vdGlmaWNhdGlvbnNfdGl0bGUiIG1zZ2lkPSI0NzU1MjYxMTY3MTkzODMzMjEzIj4i15DXmdefINeU16rXqNeQ15XXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfb25nb2luZ19ldmVudHNfdGl0bGUiIG1zZ2lkPSIxNjgyNTA0NTEzMzE2ODc5MjAyIj4i157Xqtee16nXmiI8L3N0cmluZz4KQEAgLTM1LDcgKzM1LDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3RpdGxlIiBtc2dpZD0iMjc4MzEwNDgwNzU1MTIxMTYzOSI+IteX15HXqCDXnteY16LXnyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3N1YnRpdGxlIiBtc2dpZD0iMTc1MjA0MDA2MjA4NzgyOTE5NiI+IteU16HXldec15zXlCDXoNeX15zXqdeqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3BlcmNlbnRfZm9ybWF0IiBtc2dpZD0iMTA3NzI0NDk0OTMxODI2MTc2MSI+Iteg15XXqteo15UgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQlJTwveGxpZmY6Zz4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkX2NoYXJnZXIiIG1zZ2lkPSI0NTQ5MTA1OTk2NzQwNTIyNTIzIj4i15jXoteZ16DXlCDXkdeQ157Xptei15XXqiBVU0Ig15DXmdeg15Qg16DXqtee15vXqi5cbteU16nXqtee16kg15DXmiDXldeo16cg15HXnteY16LXnyDXqdeh15XXpNenLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRfY2hhcmdlciIgbXNnaWQ9IjQ1NDkxMDU5OTY3NDA1MjI1MjMiPiLigI/XmNei15nXoNeUINeR15DXntem16LXldeqIFVTQiDXkNeZ16DXlCDXoNeq157Xm9eqLlxu15TXqdeq157XqSDXkNeaINeV16jXpyDXkdee15jXotefINep16HXldek16cuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfd2h5IiBtc2dpZD0iNzI3OTE2OTYwOTUxODM4NjM3MiI+Item16jXmdeb16og16HXldec15zXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iMzAyMzg4OTkxNjY5OTI3MDIyNCI+IteU15LXk9eo15XXqiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfd2lmaV9idXR0b24iIG1zZ2lkPSIxNzMzOTI4MTUxNjk4MzExOTIzIj4iV2ktRmkiPC9zdHJpbmc+CkBAIC00NCwyNSArNDQsMjMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfbXV0ZV9sYWJlbCIgbXNnaWQ9IjU1NDY4MjU0OTkxNzQyOTM5NiI+IteU16nXqtenIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MTE0NTM2MTQ5NjIzMjQ2NzQiPiLXkNeV15jXldee15jXmSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfbm90aWZpY2F0aW9ucyIgbXNnaWQ9IjM5NzE0NjE3NjI4MDkwNTEzNyI+IteU16rXqNeQ15XXqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImJsdWV0b290aF90ZXRoZXJlZCIgbXNnaWQ9IjcwOTQxMDE2MTIxNjExMzMyNjciPiJCbHVldG9vdGgg16fXqdeV16giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4i4oCPQmx1ZXRvb3RoINen16nXldeoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9pbnB1dF9tZXRob2Rfc2V0dGluZ3NfY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSIzNTA0MjkyNDcxNTEyMzE3ODI3Ij4i15TXkteT16gg16nXmdeY15XXqiDXp9ec15giPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3VzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9Ijc1NTE5MDMwODQ0MTYwNTc4MTAiPiLXnten15zXk9eqINek15nXlteZ16oiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iODM0Njk4MDAxMjcxNTYyMDU3Ij4i15zXkNek16nXqCDXnNeZ15nXqdeV150gPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDXkteZ16nXlCDXnNeU16rXp9efINeULVVTQj8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iNTE3MTc3NTQxMTE3ODg2NTc1MCI+Itec15DXpNep16gg15zXmdeZ16nXldedIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g15LXmdep15Qg15zXkNeR15nXlteoINeULVVTQj8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iNTE2MTIwNTI1ODYzNTI1MzIwNiI+IteU15DXnSDXnNek16rXldeXINeQ16ogPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiDXm9eQ16nXqCDXnteb16nXmdeoIFVTQiDXlteUINee15fXldeR16g/Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjM4MDg5ODQ5MzE4MzAyMjk4ODgiPiLXlNeQ150g15zXpNeq15XXlyDXkNeqIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g15vXkNep16gg15DXkdeZ15bXqCBVU0Ig15bXlCDXnteX15XXkdeoPyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfdXJpX3Byb21wdCIgbXNnaWQ9IjUxMzQ1MDYyMTQxMzczMzM0MyI+IteQ15nXnyDXmdeZ16nXldee15nXnSDXnteV16rXp9eg15nXnSDXlNek15XXotec15nXnSDXotedINeQ15HXmdeW16gg15QtVVNCLiDXnNee15nXk9eiINeg15XXodejINei15wg15DXkdeZ15bXqCDXlteUINeR16fXqCDXkdeb16rXldeR16ogPHhsaWZmOmcgaWQ9IlVSTCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+IteQ15HXmdeW16ggVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjgzNDY5ODAwMTI3MTU2MjA1NyI+IuKAj9ec15DXpNep16gg15zXkNek15zXmden16bXmdeUIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g15LXmdep15Qg15zXlNeq16fXnyDXlC1VU0I/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjUxNzE3NzU0MTExNzg4NjU3NTAiPiLigI/XnNeQ16TXqdeoINec15DXpNec15nXp9em15nXlCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+INeS15nXqdeUINec15DXkdeZ15bXqCDXlC1VU0I/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjUxNjEyMDUyNTg2MzUyNTMyMDYiPiLigI/XlNeQ150g15zXpNeq15XXlyDXkNeqIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g15vXkNep16gg157Xm9ep15nXqCBVU0Ig15bXlCDXnteX15XXkdeoPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSIzODA4OTg0OTMxODMwMjI5ODg4Ij4i4oCP15TXkNedINec16TXqteV15cg15DXqiA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+INeb15DXqdeoINeQ15HXmdeW16ggVVNCINeW15Qg157Xl9eV15HXqD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3VyaV9wcm9tcHQiIG1zZ2lkPSI1MTM0NTA2MjE0MTM3MzMzNDMiPiLigI/XkNeZ158g15DXpNec15nXp9em15nXldeqINee15XXqten16DXldeqINeU16TXldei15zXldeqINei150g15DXkdeZ15bXqCDXlC1VU0IuINec157XmdeT16Ig16DXldeh16Mg16LXnCDXkNeR15nXlteoINeW15Qg15HXp9eoINeR15vXqteV15HXqiA8eGxpZmY6ZyBpZD0iVVJMIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3VzYl9hY2Nlc3NvcnkiIG1zZ2lkPSI0OTY2MjY1MjYzNDY1MTgxMzcyIj4i4oCP15DXkdeZ15bXqCBVU0IiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsYWJlbF92aWV3IiBtc2dpZD0iNjMwNDU2NTU1MzIxODE5Mjk5MCI+IteU16bXkiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfZGV2aWNlIiBtc2dpZD0iMTQ1MDI4NzQzNzAxNzMxNTkwNiI+IteU16nXqtee16kg15vXkdeo15nXqNeqINee15fXk9ecINei15HXldeoINee15vXqdeZ16ggVVNCINeW15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2FjY2Vzc29yeSIgbXNnaWQ9IjEyMTA5NTQ1NzY5Nzk2MjE1OTYiPiLXlNep16rXntepINeb15HXqNeZ16jXqiDXnteX15PXnCDXoteR15XXqCDXkNeR15nXlteoIFVTQiDXlteUIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ190aXRsZSIgbXNnaWQ9IjQ1MTM5MTgzOTMzODcxNDE5NDkiPiLXlNeQ150g15zXkNek16nXqCDXoNeZ16fXldeZINeR15DXkteZ150g15EtVVNCPyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfbWVzc2FnZSIgbXNnaWQ9IjIyMjAxNDM4NTU5MTIzNzY0OTYiPiLXmNeR15nXoteqINeU15DXpteR16Ig16nXnCDXntek16rXlyDXlC1SU0Eg16nXnCDXlNee15fXqdeRINeU15nXkDpcbjx4bGlmZjpnIGlkPSJGSU5HRVJQUklOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2RldmljZSIgbXNnaWQ9IjE0NTAyODc0MzcwMTczMTU5MDYiPiLigI/XlNep16rXntepINeb15HXqNeZ16jXqiDXnteX15PXnCDXoteR15XXqCDXnteb16nXmdeoIFVTQiDXlteUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9hY2Nlc3NvcnkiIG1zZ2lkPSIxMjEwOTU0NTc2OTc5NjIxNTk2Ij4i4oCP15TXqdeq157XqSDXm9eR16jXmdeo16og157Xl9eT15wg16LXkdeV16gg15DXkdeZ15bXqCBVU0Ig15bXlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfdGl0bGUiIG1zZ2lkPSI0NTEzOTE4MzkzMzg3MTQxOTQ5Ij4i4oCP15TXkNedINec15DXpNep16gg16DXmden15XXmSDXkdeQ15LXmdedINeRLVVTQj8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX21lc3NhZ2UiIG1zZ2lkPSIyMjIwMTQzODU1OTEyMzc2NDk2Ij4i4oCP15jXkdeZ16LXqiDXlNeQ16bXkdeiINep15wg157XpNeq15cg15QtUlNBINep15wg15TXnteX16nXkSDXlNeZ15A6XG48eGxpZmY6ZyBpZD0iRklOR0VSUFJJTlQiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiLXkNek16nXqCDXqtee15nXkyDXntee15fXqdeRINeW15QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiLXlNeS15PXnCDXqtem15XXkteUINeb15PXmSDXnNee15zXkCDXkNeqINeU157XodeaIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+Itee16rXlyDXm9eT15kg15zXntec15Ag15DXqiDXlNee16HXmiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+Itep15nXoNeV15kg157XqNeX16cg157Xqtem15XXkteUINec16bXldeo15og16rXkNeZ157XldeqIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+Iteb15DXqdeoINeZ15nXqdeV150g157XmdeV16LXkyDXnNee16HXmiDXp9eY158g15nXldeq16gsINek16fXkyDXqdecINee16jXl9enINee16rXpteV15LXlCDXmdeV16TXmdeiINec15nXkyDXlNep16LXldefLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiLXqdeV157XqCDXpteZ15zXldedINee16HXmi4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+Itep15XXnteoINem15nXnNeV150g157XodeaLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLXnteq15HXptei16og16nXnteZ16jXlCDXqdecINem15nXnNeV150g15TXnteh15ouIjwvc3RyaW5nPgpAQCAtNzAsMTkgKzY4LDIxIEBACiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RleHQiIG1zZ2lkPSIxMTUyODM5NjQ3Njc3NTU4ODE1Ij4i15LXoiDXm9eT15kg15zXlNem15nXkiDXkNeqINem15nXnNeV150g15TXnteh15og16nXnNeaIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGl0bGUiIG1zZ2lkPSI3MDU3ODExMTY3NDY5MjI3NzEiPiLXnNeQINeg15nXqtefINec15HXpteiINem15nXnNeV150g157XodeaLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RleHQiIG1zZ2lkPSI4MTM0MDExMjY5NTcyNDE1NDAyIj4i15zXkCDXoNeZ16rXnyDXnNep157XldeoINeQ16og16bXmdec15XXnSDXlNee16HXmi4g15nXmdeq15vXnyDXqdeg16LXqdeUINep15nXnteV16kg15HXkNee16bXoteZINeQ15fXodeV158uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX3ByZWZlcmVuY2VfdGl0bGUiIG1zZ2lkPSI2NTUxMDUwMzc3Mzg4ODgyNzg3Ij4i15DXpNep16jXldeZ15XXqiDXlNei15HXqNeqINen15HXpteZ150g15EtVVNCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNlX210cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI0MzMzNTA0NDEzNTYzMDIzNjI2Ij4i15jXotefINeb16DXktefINee15PXmdeUIChNVFApIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNlX3B0cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI3NTE3MTI3NTQwMzAxNjI1NzUxIj4i15jXotefINeb157Xptec157XlCAoUFRQKSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxlcl9jZF9idXR0b25fdGl0bGUiIG1zZ2lkPSIyMzEyNjY3NTc4NTYyMjAxNTgzIj4i15TXqten158g15DXqiDXmdeZ16nXldedINeU16LXkdeo16og15TXp9eR16bXmdedINep15wgQW5kcm9pZCDXoteR15XXqCBNYWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHJlZmVyZW5jZV90aXRsZSIgbXNnaWQ9IjY1NTEwNTAzNzczODg4ODI3ODciPiLigI/XkNek16nXqNeV15nXldeqINeU16LXkdeo16og16fXkdem15nXnSDXkS1VU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfbXRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjQzMzM1MDQ0MTM1NjMwMjM2MjYiPiLigI/XmNei158g15vXoNeS158g157Xk9eZ15QgKE1UUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfcHRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9Ijc1MTcxMjc1NDAzMDE2MjU3NTEiPiLigI/XmNei158g15vXntem15zXnteUIChQVFApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbGVyX2NkX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjIzMTI2Njc1Nzg1NjIyMDE1ODMiPiLigI/XlNeq16fXnyDXkNeqINeQ16TXnNeZ16fXpteZ15nXqiDXlNei15HXqNeqINeU16fXkdem15nXnSDXqdecIEFuZHJvaWQg16LXkdeV16ggTWFjIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYWNrIiBtc2dpZD0iNTY3MDExNTM4OTk0NDI5MTIwIj4i15TXp9eV15PXnSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiLXkdeZ16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiLXqtek16jXmdeYIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4i15nXmdep15XXnteZ150g15DXl9eo15XXoNeZ150iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiLXkNek15zXmden16bXmdeV16og15DXl9eo15XXoNeV16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiLXl9ek16kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4i157Xptec157XlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4i15zXl9em158g15TXl9ec16TXqiDXqdeZ15jXqiDXp9ec15guIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+Itec15fXptefINee16jXl9enINee16rXpteV15LXlCDXqdecINeq15DXmdee15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+Itep16DXlCDXnteo15fXpyDXnteq16bXldeS15Qg16nXnCDXnteh15og16fXmNefINec15LXk9eV15wg15nXldeq16guIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfY29ubmVjdGVkIiBtc2dpZD0iMjcwNzAyNzYzMzI0Mjk4MzM3MCI+IkJsdWV0b290aCDXnteX15XXkdeoLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX2Rpc2Nvbm5lY3RlZCIgbXNnaWQ9Ijc0MTY2NDg2Njk5NzY4NzAxNzUiPiJCbHVldG9vdGgg157XoNeV16rXpy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9jb25uZWN0ZWQiIG1zZ2lkPSIyNzA3MDI3NjMzMjQyOTgzMzcwIj4i4oCPQmx1ZXRvb3RoINee15fXldeR16guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfZGlzY29ubmVjdGVkIiBtc2dpZD0iNzQxNjY0ODY2OTk3Njg3MDE3NSI+IuKAj0JsdWV0b290aCDXnteg15XXqtenLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fYmF0dGVyeSIgbXNnaWQ9IjM1ODM0MzAyMjM1MjgyMDk0NiI+IteQ15nXnyDXodeV15zXnNeULiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9vbmVfYmFyIiBtc2dpZD0iNzc3NDg4NzcyMTg5MTA1NzUyMyI+Itek16Eg15DXl9eTINep15wg16HXldec15zXlC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfdHdvX2JhcnMiIG1zZ2lkPSI4NTAwNjUwNDM4NzM1MDA5OTczIj4i16nXoNeZINek16HXmdedINep15wg16HXldec15zXlC4iPC9zdHJpbmc+CkBAIC05OCwxNyArOTgsMTcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90d29fYmFycyIgbXNnaWQ9IjYxNjYwMTg0OTIzNjA0MzIwOTEiPiLXqdeg15kg16TXodeZ150g16nXnCDXoNeq15XXoNeZ150uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4i16nXnNeV16nXlCDXpNeh15nXnSDXqdecINeg16rXldeg15nXnS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzA4Mzg0NjA4MTI0NTE5MzY5Ij4i15DXldeqINeU16DXqteV16DXmdedINee15zXkC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb2ZmIiBtc2dpZD0iMzE3NzM4MDI5NjY5NzkzMzYyNyI+IldpLUZpINeb15HXldeZLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2lmaSIgbXNnaWQ9IjE0MjU0NzY1NTE4Mjc5MjQ0NzQiPiJXaS1GaSDXnteg15XXqtenLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9vbmVfYmFyIiBtc2dpZD0iNzczNTg5MzE3ODAxMDcyNDM3NyI+Itek16Eg15DXl9eTINep15wgV2ktRmkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3R3b19iYXJzIiBtc2dpZD0iNDk5NDI3NDI1MDQ5NzI2MjQzNCI+Itep16DXmSDXpNeh15nXnSDXqdecIFdpLUZpLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90aHJlZV9iYXJzIiBtc2dpZD0iMzQ5NTc1NTA0NDI3NjU4ODM4NCI+Itep15zXldep15Qg16TXodeZ150g16nXnCBXaS1GaS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2ODUzNTYxMzAzNTg2NDgwMzc2Ij4i15DXldeqINeULVdpLUZpINee15zXkC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpbWF4IiBtc2dpZD0iNDMyOTE4MDEyOTcyNzYzMDM2OCI+Itec15zXkCBXaU1BWC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X29uZV9iYXIiIG1zZ2lkPSI0MTcwOTk0Mjk5MDExODYzNjQ4Ij4i16TXoSDXkNeX15Mg16nXnCBXaU1BWC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3R3b19iYXJzIiBtc2dpZD0iOTE3NjIzNjg1ODMzNjUwMjI4OCI+Itep16DXmSDXpNeh15nXnSDXqdecIFdpTUFYLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiLXqdec15XXqdeUINek16HXmdedINep15wgV2lNQVguIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3NjgwODk5ODY3OTU1Nzk1NTgiPiLXkNeV16og15QtV2lNQVgg157XnNeQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9vZmYiIG1zZ2lkPSIzMTc3MzgwMjk2Njk3OTMzNjI3Ij4i4oCPV2ktRmkg15vXkdeV15kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub193aWZpIiBtc2dpZD0iMTQyNTQ3NjU1MTgyNzkyNDQ3NCI+IuKAj1dpLUZpINee16DXldeq16cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29uZV9iYXIiIG1zZ2lkPSI3NzM1ODkzMTc4MDEwNzI0Mzc3Ij4i4oCP16TXoSDXkNeX15Mg16nXnCBXaS1GaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfdHdvX2JhcnMiIG1zZ2lkPSI0OTk0Mjc0MjUwNDk3MjYyNDM0Ij4i4oCP16nXoNeZINek16HXmdedINep15wgV2ktRmkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3RocmVlX2JhcnMiIG1zZ2lkPSIzNDk1NzU1MDQ0Mjc2NTg4Mzg0Ij4i4oCP16nXnNeV16nXlCDXpNeh15nXnSDXqdecIFdpLUZpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9zaWduYWxfZnVsbCIgbXNnaWQ9IjY4NTM1NjEzMDM1ODY0ODAzNzYiPiLigI/XkNeV16og15QtV2ktRmkg157XnNeQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2ltYXgiIG1zZ2lkPSI0MzI5MTgwMTI5NzI3NjMwMzY4Ij4i4oCP15zXnNeQIFdpTUFYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfb25lX2JhciIgbXNnaWQ9IjQxNzA5OTQyOTkwMTE4NjM2NDgiPiLigI/XpNehINeQ15fXkyDXqdecIFdpTUFYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdHdvX2JhcnMiIG1zZ2lkPSI5MTc2MjM2ODU4MzM2NTAyMjg4Ij4i4oCP16nXoNeZINek16HXmdedINep15wgV2lNQVguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90aHJlZV9iYXJzIiBtc2dpZD0iNjExNjU1MTYzNjc1MjEwMzkyNyI+IuKAj9ep15zXldep15Qg16TXodeZ150g16nXnCBXaU1BWC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3NpZ25hbF9mdWxsIiBtc2dpZD0iMjc2ODA4OTk4Njc5NTU3OTU1OCI+IuKAj9eQ15XXqiDXlC1XaU1BWCDXntec15AuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaWduYWwiIG1zZ2lkPSI3MDY0NjQ1MzIwNzgyNTg1MTY3Ij4i15DXmdefINeQ15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4i15zXkCDXnteX15XXkdeoLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfemVyb19iYXJzIiBtc2dpZD0iMzgwNjA2MDIyNDQ2NzAyNzg4NyI+IteQ16TXoSDXpNeh15nXnS4iPC9zdHJpbmc+CkBAIC0xMzAsNTQgKzEzMCw1NiBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fcm9hbWluZyIgbXNnaWQ9IjU5NzczNjIzMzM0NjY1NTYwOTQiPiLXoNeT15nXk9eUIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZWRnZSIgbXNnaWQ9IjQ0Nzc0NTcwNTE2MzE5NzkyNzgiPiLXp9em15QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl93aWZpIiBtc2dpZD0iMjMyNDQ5Njc1NjU5MDY0NTIyMSI+IldpLUZpIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaW0iIG1zZ2lkPSI4Mjc0MDE3MTE4NDcyNDU1MTU1Ij4i15DXmdefINeb16jXmNeZ16EgU0lNLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX3RldGhlciIgbXNnaWQ9IjQxMDI3ODQ0OTgxNDAyNzE5NjkiPiLXqdeZ16rXldejINeQ15nXoNeY16jXoNeYINeR15nXnyDXoNeZ15nXk9eZ150g16nXnCBCbHVldG9vdGgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpbSIgbXNnaWQ9IjgyNzQwMTcxMTg0NzI0NTUxNTUiPiLigI/XkNeZ158g15vXqNeY15nXoSBTSU0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfdGV0aGVyIiBtc2dpZD0iNDEwMjc4NDQ5ODE0MDI3MTk2OSI+IuKAj9ep15nXqteV16Mg15DXmdeg15jXqNeg15gg15HXmdefINeg15nXmdeT15nXnSDXqdecIEJsdWV0b290aCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYWlycGxhbmVfbW9kZSIgbXNnaWQ9IjgzNDc0ODk5OTc5MDc2MzA5MiI+Itee16bXkSDXmNeZ16HXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9sZXZlbCIgbXNnaWQ9Ijc0NTE0NzQxODcxMTMzNzE5NjUiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g15DXl9eV15bXmdedINep15wg16HXldec15zXlC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9Ijc5OTU4MzkxMTIzMTg5MzM4MCI+IteU15LXk9eo15XXqiDXntei16jXm9eqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25zX2J1dHRvbiIgbXNnaWQ9IjQ0OTgwMDAzNjk3Nzk0MjE4OTIiPiLXlNeq16jXkNeV16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlbW92ZV9ub3RpZmljYXRpb24iIG1zZ2lkPSIzNjAzMDk5NTE0OTAyMTgyMzUwIj4i16DXp9eUINeU16rXqNeQ15QiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19lbmFibGVkIiBtc2dpZD0iMzUxMTQ2OTQ5OTI0MDEyMzAxOSI+IkdQUyDXnteV16TXotecLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2FjcXVpcmluZyIgbXNnaWQ9Ijg5NTkzMzMzNTEwNTg5NjcxNTgiPiLXlNep15LXqiBHUFMuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90dHlfZW5hYmxlZCIgbXNnaWQ9IjQ2MTMyMDAzNjUzNzk0MjY1NjEiPiJUZWxlVHlwZXdyaXRlciDXnteV16TXotecIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfZW5hYmxlZCIgbXNnaWQ9IjM1MTE0Njk0OTkyNDAxMjMwMTkiPiLigI9HUFMg157Xldek16LXnC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19hY3F1aXJpbmciIG1zZ2lkPSI4OTU5MzMzMzUxMDU4OTY3MTU4Ij4i4oCP15TXqdeS16ogR1BTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHR5X2VuYWJsZWQiIG1zZ2lkPSI0NjEzMjAwMzY1Mzc5NDI2NTYxIj4i4oCPVGVsZVR5cGV3cml0ZXIg157Xldek16LXnCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3ZpYnJhdGUiIG1zZ2lkPSI2NjY1ODUzNjMzNjQxNTUwNTUiPiLXptec16bXldecINeV16jXmNeYLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3NpbGVudCIgbXNnaWQ9IjkwNjEyNDMzMDc5MzkxMzUzODMiPiLXptec16bXldecINep16fXmC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudHNfaXRlbV9kaXNtaXNzZWQiIG1zZ2lkPSI2ODAzNTc0OTM1MDg0ODY3MDcwIj4iPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+INeg15PXl9eULiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uX2Rpc21pc3NlZCIgbXNnaWQ9Ijg1NDIxMTM4NzE4NjMwNjkyNyI+IteU15XXk9ei15Qg16DXk9eX16rXlC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfbm90aWZpY2F0aW9uX3NoYWRlIiBtc2dpZD0iNDY5MDI3NDg0NDQ0NzUwNDIwOCI+Iteq16jXmdehINeU16rXqNeQ15XXqi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfcXVpY2tfc2V0dGluZ3MiIG1zZ2lkPSI2MTg2Mzc4NDExNTgyNDM3MDQ2Ij4i15TXkteT16jXldeqINee15TXmdeo15XXqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfcmVjZW50X2FwcHMiIG1zZ2lkPSI5MDE0MDMyOTE2NDEwNTkwMDI3Ij4i15nXmdep15XXnteZ150g15DXl9eo15XXoNeZ150iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfcmVjZW50X2FwcHMiIG1zZ2lkPSI5MDE0MDMyOTE2NDEwNTkwMDI3Ij4i15DXpNec15nXp9em15nXldeqINeQ15fXqNeV16DXldeqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc191c2VyIiBtc2dpZD0iMTEwNDg0NjY5OTg2OTQ3Njg1NSI+Itee16nXqtee16kgPHhsaWZmOmcgaWQ9IlVTRVIiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3dpZmkiIG1zZ2lkPSI2MDk5NzgxMDMxNjY5NzI4NzA5Ij4iPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz7igI8uIDx4bGlmZjpnIGlkPSJORVRXT1JLIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbW9iaWxlIiBtc2dpZD0iNDg3NjgwNjU2NDA4NjI0MTM0MSI+Iteg15nXmdeTIDx4bGlmZjpnIGlkPSJTSUdOQUwiPiUxJHM8L3hsaWZmOmc+LuKAjyA8eGxpZmY6ZyBpZD0iVFlQRSI+JTIkczwveGxpZmY6Zz4u4oCPIDx4bGlmZjpnIGlkPSJORVRXT1JLIj4lMyRzPC94bGlmZjpnPi7igI8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4i16HXldec15zXlCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+Itee16bXkSDXmNeZ16HXlCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGgg4oCPPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4i4oCPQmx1ZXRvb3RoIOKAjzx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4i15TXnteZ16fXldedIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4i15TXlNeq16jXkNeUINeg16fXkdei15Qg15wtPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiLXoNeq15XXoNeZIDJHLTNHINee15XXqdeR16rXmdedIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4i16DXqteV16DXmSA0RyDXnteV16nXkdeq15nXnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IuKAj9eg16rXldeg15kgMkctM0cg157Xldep15HXqteZ150iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiLigI/XoNeq15XXoNeZIDRHINee15XXqdeR16rXmdedIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfbW9iaWxlX3RpdGxlIiBtc2dpZD0iMTA0NjA0NzI0ODg0NDgyMTIwMiI+Iteg16rXldeg15nXnSDXnNeg15nXmdeTINee15XXqdeR16rXmdedIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfdGl0bGUiIG1zZ2lkPSIyMDg2ODE1MzA0ODU4OTY0OTU0Ij4i15TXoNeq15XXoNeZ150g157Xldep15HXqteZ150iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZyIgbXNnaWQ9IjM4NTMxMTcyNjkwNTE4MDYyODAiPiLXlNeS16LXqiDXnNeS15HXldecINeU157XldeS15PXqCDXqdecINep15nXnteV16kg15HXoNeq15XXoNeZ150uXG5cbteQ150g16rXpNei15nXnCDXnteX15PXqSDXoNeq15XXoNeZ150sINeZ15nXqteb158g16nXqteX15XXmdeRINei15wg15nXk9eZINeU16HXpNenINep15zXmi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19lbmFibGUiIG1zZ2lkPSI3NzI5NzcyMDM5MjA4NjY0NjA2Ij4i15TXpNei15wg157Xl9eT16kg15DXqiDXlNeg16rXldeg15nXnSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX2Rpc2Nvbm5lY3RlZCIgbXNnaWQ9IjE5NDAyMzE1MjEyNzQxNDc3NzEiPiLXkNeZ158g15fXmdeR15XXqCDXnNeQ15nXoNeY16jXoNeYIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkg157Xl9eV15HXqCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4i157Xl9ek16kgR1BTIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+Itee15nXp9eV150g157XldeS15PXqCDXotecINeZ15PXmSBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiLigI9XaS1GaSDXnteX15XXkdeoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiLigI/XnteX16TXqSBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4i4oCP157Xmden15XXnSDXnteV15LXk9eoINei15wg15nXk9eZIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IteR16fXqdeV16og157Xmden15XXnSDXpNei15nXnNeV16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiLXoNen15Qg15DXqiDXm9ecINeU15TXqteo15DXldeqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiLXpNeo15jXmSDXmdeZ16nXldedIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+Itek16jXmNeZINeQ16TXnNeZ16fXpteZ15QiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IteU157XodeaINeZ16HXqteV15HXkSDXkdeQ15XXpNefINeQ15XXmNeV157XmNeZLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4i15TXnteh15og16DXoteV15wg15vXoteqINec16jXldeX15EuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IteU157XodeaINeg16LXldecINeb16LXqiDXnNeQ15XXqNeaLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiLXnteW16DXldefINen15nXoNeV15fXmdedIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IteX15zXldedINeR15TXp9eZ16UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJFdGhlcm5ldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4i157XpteRINeY15nXodeUIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2luZ19sYWJlbCIgbXNnaWQ9IjQ5MDA3NDc3NDQ2NTMwOTIwOSI+IteY15XXotefICg8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+KSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JhdHRlcnlfY2hhcmdlZF9sYWJlbCIgbXNnaWQ9Ijg4NjU0MTMwNzk0MTQyNDYwODEiPiLXntec15DXlCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9sYWJlbCIgbXNnaWQ9IjYzMDQxOTAyODUxNzA3MjE0MDEiPiJCbHVldG9vdGgiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbXVsdGlwbGVfZGV2aWNlc19sYWJlbCIgbXNnaWQ9IjM5MTIyNDU1NjU2MTM2ODQ3MzUiPiJCbHVldG9vdGgg4oCPKDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDXnteb16nXmdeo15nXnSkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfb2ZmX2xhYmVsIiBtc2dpZD0iODE1OTY1MjE0NjE0OTIxOTkzNyI+IkJsdWV0b290aCDXnteV16TXodenIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX211bHRpcGxlX2RldmljZXNfbGFiZWwiIG1zZ2lkPSIzOTEyMjQ1NTY1NjEzNjg0NzM1Ij4i4oCPQmx1ZXRvb3RoIOKAjyg8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g157Xm9ep15nXqNeZ150pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiLigI9CbHVldG9vdGgg157Xldek16HXpyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI2OTY4MzcyMjk3MDE4NzU1ODE1Ij4i15HXlNeZ16jXldeqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fdW5sb2NrZWRfbGFiZWwiIG1zZ2lkPSIzMzYwNTQ5MzAzNjI1ODA1ODQiPiLXodeZ15HXldeRINeQ15XXmNeV157XmNeZIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fbG9ja2VkX2xhYmVsIiBtc2dpZD0iODA1ODY0NjQ0NzI0MjU2NTQ4NiI+Iteh15nXkdeV15Eg16DXoteV15wiPC9zdHJpbmc+CkBAIC0xOTMsMTMgKzE5NSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9sYWJlbCIgbXNnaWQ9IjkxMzUzNDQ3MDQ4OTk1NDYwNDEiPiJXaS1GaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm90X2Nvbm5lY3RlZCIgbXNnaWQ9IjcxNzE5MDQ4NDUzNDU1NzM0MzEiPiLXnNeQINee15fXldeR16giPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vX25ldHdvcmsiIG1zZ2lkPSIyMjIxOTkzMDc3MjIwODU2Mzc2Ij4i15DXmdefINeo16nXqiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfb2ZmX2xhYmVsIiBtc2dpZD0iNzU1ODc3ODEwMDg0Mzg4NTg2NCI+IldpLUZpINeb15HXldeZIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X2xhYmVsIiBtc2dpZD0iNjg5MzU5Mjk2NDQ2MzYyNDMzMyI+Iteq16bXldeS16ogV2ktRmkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiLXqtem15XXkteqIFdpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9vZmZfbGFiZWwiIG1zZ2lkPSI3NTU4Nzc4MTAwODQzODg1ODY0Ij4i4oCPV2ktRmkg15vXkdeV15kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbGFiZWwiIG1zZ2lkPSI2ODkzNTkyOTY0NDYzNjI0MzMzIj4i4oCP16rXpteV15LXqiBXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IuKAj9eq16bXldeS16ogV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiLXkdeU15nXqNeV16oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4i15DXldeY15XXnteY15kiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4i15TXldeT16LXldeqINee15XXpNeZ16LXldeqINeb15DXnyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+IteS16kg15DXnNeZ15TXnSDXkdeb15wg16LXqiDXotecINeZ15PXmSDXlNeX15zXp9eUINec157XmNeULlxu15TXl9ec16cg15zXnteY15Qg16nXldeRINec157XoteR16gg15zXnteo15vXliDXlNeR16fXqNeUINep15wg15TXntei16jXm9eqLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+IteU15fXnNenINee16fXpteUINeU157XodeaINeb15PXmSDXnNeU16bXmdeSINeQ16og15TXodeo15LXnCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlX2xvbmciIG1zZ2lkPSI3MTE3NjkyNzk1MTYzNjIwNjI2Ij4i15TXl9ec16cg157Xp9em15Qg15TXnteh15og15vXk9eZINec15TXpteZ15Ig15DXqiDXodeo15LXnCDXlNee16LXqNeb16oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4i157XpteRINeU15nXpNeV15og16bXkdei15nXnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+Itee16bXkSDXoNeZ15LXldeT15nXldeqINee15XXkteR16jXqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4i157XpteRINeq15nXp9eV158g16bXkdeiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiLXmdeZ16rXm9efINep15TXqNep16pcbtee16DXldeY16jXqiI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1qYS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtamEvc3RyaW5ncy54bWwKaW5kZXggNzM5MmFlOS4uMGUwZjAyNyAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1qYS9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWphL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IuOBk+OBruODkeOCveOCs+ODs+OBi+OCieOBrlVTQuODh+ODkOODg+OCsOOCkuW4uOOBq+ioseWPr+OBmeOCiyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IueUu+mdouOCteOCpOOCuuOBq+WQiOOCj+OBm+OBpuaLoeWkpyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLnlLvpnaLjgrXjgqTjgrrjgavlkIjjgo/jgZvjgabmi6HlpKciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiLkupLmj5vjgrrjg7zjg6AiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4i44KI44KK5bCP5Z6L44Gu55S76Z2i5ZCR44GR44Gu44Ki44OX44Oq44Gu5aC05ZCI44Gv44CB44K644O844Og44Kz44Oz44OI44Ot44O844Or44GM5pmC6KiI44Gu44Gd44Gw44Gr6KGo56S644GV44KM44G+44GZ44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IuOCueOCr+ODquODvOODs+OCt+ODp+ODg+ODiOOCkuS/neWtmOS4rS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IuOCueOCr+ODquODvOODs+OCt+ODp+ODg+ODiOOCkuS/neWtmOOBl+OBpuOBhOOBvuOBmS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i44K544Kv44Oq44O844Oz44K344On44OD44OI44KS5L+d5a2Y44GX44Gm44GE44G+44GZ44CCIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IuODm+ODvOODoCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+IuODoeODi+ODpeODvCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IuacgOi/keS9v+OBo+OBn+OCouODl+ODqiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+IuaknOe0oiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiLjgqvjg6Hjg6kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IuWFpeWKm+aWueazleOBruWIh+OCiuabv+OBiOODnOOCv+ODs+OAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiLkupLmj5vjgrrjg7zjg6Djg5zjgr/jg7PjgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+IuWwj+OBleOBhOeUu+mdouOBi+OCieWkp+OBjeOBhOeUu+mdouOBq+aLoeWkp+OAgiI8L3N0cmluZz4KQEAgLTE1NSw2ICsxNTUsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+Iumbu+axoDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLmqZ/lhoXjg6Ljg7zjg4k8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4i54++5Zyo5ZywOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4i44Ki44Op44O844Og44GvPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPuOBq+ioreWumuOBleOCjOOBpuOBhOOBvuOBmeOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IjJH772eM0fjg4fjg7zjgr/jgYznhKHlirnjgavjgarjgorjgb7jgZfjgZ8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiI0R+ODh+ODvOOCv+OBjOeEoeWKueOBq+OBquOCiuOBvuOBl+OBnyI8L3N0cmluZz4KQEAgLTE2NiwxMiArMTY3LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaS1GaeaOpee2mua4iOOBvyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iR1BT44Gn5qSc57Si5LitIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IkdQU+OBq+OCiOOCiuePvuWcqOWcsOOBjOioreWumuOBleOCjOOBvuOBl+OBnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IuePvuWcqOWcsOODquOCr+OCqOOCueODiOOBjOOCouOCr+ODhuOCo+ODliI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+IumAmuefpeOCkuOBmeOBueOBpua2iOWOu+OAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiLjgqLjg5fjg6rmg4XloLEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IueUu+mdouOBr+iHquWLleeahOOBq+Wbnui7ouOBl+OBvuOBmeOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4i55S76Z2i44Gv5qiq5ZCR44GN44Gr44Ot44OD44Kv44GV44KM44Gm44GE44G+44GZ44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IueUu+mdouOBr+e4puWQkeOBjeOBq+ODreODg+OCr+OBleOCjOOBpuOBhOOBvuOBmeOAgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiLjg4fjgrbjg7zjg4jjgrHjg7zjgrkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4i44K544Kv44Oq44O844Oz44K744O844OQ44O8Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4i44Kk44O844K144ON44OD44OIIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLmqZ/lhoXjg6Ljg7zjg4kiPC9zdHJpbmc+CkBAIC0yMDAsOCArMjAyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IuODr+OCpOODpOODrOOCueODh+OCo+OCueODl+ODrOOCpCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IueUu+mdouOBruaYjuOCi+OBlSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiLoh6rli5UiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4i44GT44GT44Gr6YCa55+l44GM6KGo56S644GV44KM44G+44GZIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4i5LiL44Gr44K544Ov44Kk44OX44GZ44KL44Go44CB44GE44Gk44Gn44KC6YCa55+l44KS6KGo56S644Gn44GN44G+44GZ44CCXG7jgrfjgrnjg4bjg6DjgpLnrqHnkIbjgZnjgovjgavjga/jgoLjgYbkuIDluqbkuIvjgavjgrnjg6/jgqTjg5fjgZfjgabjgY/jgaDjgZXjgYTjgIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiLjg5Djg7zjgpLooajnpLrjgZnjgovjgavjga/jgIHnlLvpnaLjga7nq6/jgYvjgonjgrnjg6/jgqTjg5fjgZfjgb7jgZkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IuOCt+OCueODhuODoOODkOODvOOCkuihqOekuuOBmeOCi+OBq+OBr+OAgeeUu+mdouOBruerr+OBi+OCieOCueODr+OCpOODl+OBl+OBvuOBmSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiLoibLlj43ou6Ljg6Ljg7zjg4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiLmi6HlvLXjgrPjg7Pjg4jjg6njgrnjg4jjg6Ljg7zjg4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+IuiJsuijnOato+ODouODvOODiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4i44ON44OD44OI44Ov44O844Kv44GM55uj6KaW44GV44KM44KLXG7loLTlkIjjgYzjgYLjgorjgb7jgZkiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMta2EtbGFuZC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMta2EtbGFuZC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjIwOTM4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1rYS1sYW5kL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3JvdGF0aW9uX2xvY2tlZCIgbXNnaWQ9Ijc2MDk2NzMwMTE0MzE1NTYwOTIiPiLhg5Thg5nhg6Dhg5Dhg5zhg5gg4YOQ4YOb4YOf4YOQ4YOb4YOQ4YOTIOGDk+GDkOGDkeGDmuGDneGDmeGDmOGDmuGDmOGDkCDhg5fhg5Dhg6Dhg5Dhg5bhg6Phg5og4YOd4YOg4YOY4YOU4YOc4YOi4YOQ4YOq4YOY4YOQ4YOo4YOYIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWthLXJHRS1sYW5kL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1rYS1yR0UtbGFuZC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjIwOTM4Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1rYS1yR0UtbGFuZC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yb3RhdGlvbl9sb2NrZWQiIG1zZ2lkPSI3NjA5NjczMDExNDMxNTU2MDkyIj4i4YOU4YOZ4YOg4YOQ4YOc4YOYIOGDkOGDm+GDn+GDkOGDm+GDkOGDkyDhg5Phg5Dhg5Hhg5rhg53hg5nhg5jhg5rhg5jhg5Ag4YOX4YOQ4YOg4YOQ4YOW4YOj4YOaIOGDneGDoOGDmOGDlOGDnOGDouGDkOGDquGDmOGDkOGDqOGDmCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWthLXJHRS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDc1MWZjCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDksIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxNjQ5MzczNDQ4NTAwMDQ0NjYiPiLhg6Hhg5jhg6Hhg6Lhg5Thg5vhg5jhg6EgVUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2NsZWFyX2FsbF9idXR0b24iIG1zZ2lkPSI3Nzc0NzIxMzQ0NzE2NzMxNjAzIj4i4YOS4YOQ4YOh4YOj4YOk4YOX4YOQ4YOV4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9yZWNlbnRfcmVtb3ZlX2l0ZW1fdGl0bGUiIG1zZ2lkPSI2MDI2Mzk1ODY4MTI5ODUyOTY4Ij4i4YOh4YOY4YOY4YOT4YOQ4YOcIOGDkOGDm+GDneGDqOGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9Ijc3OTM2MjQ4NjQ1Mjg4MTg1NjkiPiLhg5Dhg57hg5jhg6Eg4YOo4YOU4YOh4YOQ4YOu4YOU4YORIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19yZWNlbnRfYXBwcyIgbXNnaWQ9IjY1NzYzOTI5NTEwNTM5OTQ2NDAiPiLhg5Hhg53hg5rhg53hg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOj4YOa4YOYIOGDkOGDnuGDlOGDkeGDmOGDoSDhg6Hhg5jhg5Ag4YOq4YOQ4YOg4YOY4YOU4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X2Rpc21pc3NfcmVjZW50cyIgbXNnaWQ9IjQ1NzYwNzYwNzUyMjY1NDAxMDUiPiLhg5Hhg53hg5rhg50g4YOQ4YOe4YOU4YOR4YOY4YOhIOGDkuGDkOGDo+GDpeGDm+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X3JlY2VudF9hcHBzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg1NDE3NjA4Mzg2NTg0NTU0MSI+IjEg4YOR4YOd4YOa4YOdIOGDkOGDnuGDmCI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTA0MDc4NDM1OTc5NDg5MDc0NCI+IiVkIOGDkeGDneGDmuGDnSDhg5Dhg57hg5giPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX25vdGlmaWNhdGlvbnNfdGl0bGUiIG1zZ2lkPSI0NzU1MjYxMTY3MTkzODMzMjEzIj4i4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOYIOGDkOGDoCDhg5Dhg6Dhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9vbmdvaW5nX2V2ZW50c190aXRsZSIgbXNnaWQ9IjE2ODI1MDQ1MTMzMTY4NzkyMDIiPiLhg5vhg5jhg5vhg5Phg5jhg5zhg5Dhg6Dhg5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2xhdGVzdF9ldmVudHNfdGl0bGUiIG1zZ2lkPSI2NTk0NzY3NDM4NTc3NTkzMTcyIj4i4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfdGl0bGUiIG1zZ2lkPSIyNzgzMTA0ODA3NTUxMjExNjM5Ij4i4YOo4YOU4YOQ4YOU4YOg4YOX4YOU4YOXIOGDk+GDkOGDm+GDouGDlOGDnOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19zdWJ0aXRsZSIgbXNnaWQ9IjE3NTIwNDAwNjIwODc4MjkxOTYiPiLhg5Hhg5Dhg6Lhg5Dhg6Dhg5Thg5Ag4YOv4YOT4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3BlcmNlbnRfZm9ybWF0IiBtc2dpZD0iMTA3NzI0NDk0OTMxODI2MTc2MSI+IuGDk+GDkOGDoOGDqeGDlOGDnOGDmOGDmuGDmOGDkCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZCUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRfY2hhcmdlciIgbXNnaWQ9IjQ1NDkxMDU5OTY3NDA1MjI1MjMiPiJVU0It4YOY4YOXIOGDk+GDkOGDouGDlOGDnOGDleGDkCDhg5Dhg6Ag4YOQ4YOg4YOY4YOhIOGDm+GDruGDkOGDoOGDk+GDkOGDreGDlOGDoOGDmOGDmuGDmC5cbuGDkuGDkOGDm+GDneGDmOGDp+GDlOGDnOGDlOGDlyDhg5vhg67hg53hg5rhg53hg5Mg4YOU4YOa4YOU4YOl4YOi4YOg4YOdLeGDk+GDkOGDm+GDouGDlOGDnOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd193aHkiIG1zZ2lkPSI3Mjc5MTY5NjA5NTE4Mzg2MzcyIj4i4YOU4YOa4YOU4YOb4YOU4YOc4YOi4YOY4YOhIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iMzAyMzg4OTkxNjY5OTI3MDIyNCI+IuGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfd2lmaV9idXR0b24iIG1zZ2lkPSIxNzMzOTI4MTUxNjk4MzExOTIzIj4iV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDg3OTg3OTY5ODUwMDk1NTMwMCI+IuGDl+GDleGDmOGDl+GDm+GDpOGDoOGDmOGDnOGDkOGDleGDmOGDoSDhg6Dhg5Thg5/hg5jhg5vhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fcm90YXRpb24iIG1zZ2lkPSIzNzkwNDgyNTQxMzU3Nzk4NDIxIj4i4YOQ4YOV4YOi4YOd4YOg4YOd4YOi4YOQ4YOq4YOY4YOY4YOhIOGDlOGDmeGDoOGDkOGDnOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfbXV0ZV9sYWJlbCIgbXNnaWQ9IjU1NDY4MjU0OTkxNzQyOTM5NiI+IuGDk+GDkOGDk+GDo+GDm+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTExNDUzNjE0OTYyMzI0Njc0Ij4i4YOQ4YOV4YOi4YOdLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfbm90aWZpY2F0aW9ucyIgbXNnaWQ9IjM5NzE0NjE3NjI4MDkwNTEzNyI+IuGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsdWV0b290aF90ZXRoZXJlZCIgbXNnaWQ9IjcwOTQxMDE2MTIxNjExMzMyNjciPiJCbHVldG9vdGgg4YOb4YOY4YOU4YOg4YOX4YOU4YOR4YOj4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaW5wdXRfbWV0aG9kX3NldHRpbmdzX2NvbmZpZ3VyZV9pbnB1dF9tZXRob2RzIiBtc2dpZD0iMzUwNDI5MjQ3MTUxMjMxNzgyNyI+IuGDqOGDlOGDp+GDleGDkOGDnOGDmOGDoSDhg5vhg5Thg5fhg53hg5Phg5Thg5Hhg5jhg6Eg4YOT4YOQ4YOn4YOU4YOc4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl91c2VfcGh5c2ljYWxfa2V5Ym9hcmQiIG1zZ2lkPSI3NTUxOTAzMDg0NDE2MDU3ODEwIj4i4YOk4YOY4YOW4YOY4YOZ4YOj4YOg4YOYIOGDmeGDmuGDkOGDleGDmOGDkOGDouGDo+GDoOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI4MzQ2OTgwMDEyNzE1NjIwNTciPiLhg5Lhg6Hhg6Phg6Dhg5csIOGDm+GDmOGDoeGDquGDlOGDlyDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Dhg6Eg4oCePHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPuKAnCBVU0Ig4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOQ4YOh4YOX4YOQ4YOcIOGDrOGDleGDk+GDneGDm+GDmOGDoSDhg6Phg6Thg5rhg5Thg5Hhg5A/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjUxNzE3NzU0MTExNzg4NjU3NTAiPiLhg5Lhg6Hhg6Phg6Dhg5csIOGDm+GDmOGDoeGDquGDlOGDlyDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Dhg6Eg4oCePHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPuKAnCBVU0Ig4YOQ4YOl4YOh4YOU4YOh4YOj4YOQ4YOg4YOX4YOQ4YOcIOGDrOGDleGDk+GDneGDm+GDmOGDoSDhg6Phg6Thg5rhg5Thg5Hhg5A/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjUxNjEyMDUyNTg2MzUyNTMyMDYiPiLhg5Lhg6Hhg6Phg6Dhg5cgPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiAsIOGDoOGDneGDk+GDlOGDoeGDkOGDqiDhg5Thg6EgVVNCIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDkCDhg6jhg5Thg5Thg6Dhg5fhg5Thg5Hhg6Phg5rhg5jhg5A/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjM4MDg5ODQ5MzE4MzAyMjk4ODgiPiLhg5Lhg6Hhg6Phg6Dhg5cgPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiAsIOGDoOGDneGDk+GDlOGDoeGDkOGDqiDhg5Thg6EgVVNCIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDkCDhg6jhg5Thg5Thg6Dhg5fhg5Thg5Hhg6Phg5rhg5jhg5A/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV91cmlfcHJvbXB0IiBtc2dpZD0iNTEzNDUwNjIxNDEzNzMzMzQzIj4i4YOQ4YOg4YOq4YOU4YOg4YOX4YOYIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDo+GDmuGDmCDhg5Dhg57hg5gg4YOQ4YOgIOGDm+GDo+GDqOGDkOGDneGDkeGDoSDhg5Dhg5sgVVNCIOGDkOGDpeGDoeGDlOGDoeGDo+GDkOGDoOGDl+GDkOGDnC4g4YOo4YOU4YOY4YOi4YOn4YOV4YOU4YOXIOGDm+GDlOGDouGDmCDhg5Dhg5sg4YOQ4YOl4YOh4YOU4YOh4YOj4YOQ4YOg4YOY4YOhIOGDqOGDlOGDoeGDkOGDruGDlOGDkSA8eGxpZmY6ZyBpZD0iVVJMIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3VzYl9hY2Nlc3NvcnkiIG1zZ2lkPSI0OTY2MjY1MjYzNDY1MTgxMzcyIj4iVVNCIOGDkOGDpeGDoeGDlOGDoeGDo+GDkOGDoOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3ZpZXciIG1zZ2lkPSI2MzA0NTY1NTUzMjE4MTkyOTkwIj4i4YOc4YOQ4YOu4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9kZXZpY2UiIG1zZ2lkPSIxNDUwMjg3NDM3MDE3MzE1OTA2Ij4i4YOQ4YObIFVTQiDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5jhg6Eg4YOc4YOQ4YOS4YOj4YOa4YOY4YOh4YOu4YOb4YOU4YOV4YOQ4YOTIOGDkuGDkOGDm+GDneGDp+GDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfYWNjZXNzb3J5IiBtc2dpZD0iMTIxMDk1NDU3Njk3OTYyMTU5NiI+IuGDkOGDleGDouGDneGDm+GDkOGDouGDo+GDoOGDkOGDkyDhg5Lhg5Dhg5vhg53hg5jhg6fhg5Thg5zhg5Qg4YOQ4YObIFVTQiDhg5Dhg6Xhg6Hhg5Thg6Hhg6Phg5Dhg6Dhg5jhg6Hhg5fhg5Xhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ190aXRsZSIgbXNnaWQ9IjQ1MTM5MTgzOTMzODcxNDE5NDkiPiLhg5Lhg5Dhg5Dhg6Xhg6Lhg5jhg6Phg6Dhg5Phg5Thg6EgVVNCIOGDkuGDkOGDm+GDkOGDoOGDl+GDleGDkD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX21lc3NhZ2UiIG1zZ2lkPSIyMjIwMTQzODU1OTEyMzc2NDk2Ij4i4YOZ4YOd4YOb4YOe4YOY4YOj4YOi4YOU4YOg4YOY4YOhIFJTQSDhg5Lhg5Dhg6Hhg5Dhg6bhg5Thg5Hhg5jhg6Eg4YOX4YOY4YOX4YOY4YOhIOGDkOGDnOGDkOGDkeGDlOGDreGDk+GDmOGDkDpcbjx4bGlmZjpnIGlkPSJGSU5HRVJQUklOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IuGDp+GDneGDleGDlOGDmuGDl+GDleGDmOGDoSDhg5Phg5Dhg6Dhg5fhg5Qg4YOc4YOU4YOR4YOQIOGDkOGDmyDhg5nhg53hg5vhg57hg5jhg6Phg6Lhg5Thg6Dhg5jhg5Phg5Dhg5wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4i4YOb4YOQ4YOh4YOo4YOi4YOQ4YOR4YOYIOGDqOGDlOGDquGDleGDkOGDmuGDlOGDlyDhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOo4YOU4YOh4YOQ4YOV4YOh4YOU4YOR4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLhg5Lhg5Dhg6zhg5jhg5Thg5cg4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDqOGDlOGDoeGDkOGDleGDoeGDlOGDkeGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4i4YOh4YOZ4YOg4YOY4YOc4YOo4YOd4YOi4YOY4YOhIOGDqOGDlOGDnOGDkOGDruGDleGDkOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IuGDlOGDmeGDoOGDkOGDnOGDmOGDoSDhg6Hhg6Phg6Dhg5Dhg5fhg5jhg6Eg4YOo4YOU4YOc4YOQ4YOu4YOV4YOQ4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOh4YOj4YOg4YOQ4YOX4YOYIOGDqOGDlOGDnOGDkOGDruGDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RpdGxlIiBtc2dpZD0iNjQ2MTg2NTk2MDk2MTQxNDk2MSI+IuGDoeGDmeGDoOGDmOGDnOGDqOGDneGDouGDmCDhg5Lhg5Dhg5Phg5Dhg6bhg5Thg5Hhg6Phg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90ZXh0IiBtc2dpZD0iMTE1MjgzOTY0NzY3NzU1ODgxNSI+IuGDqOGDlOGDlOGDruGDlOGDlyDhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOh4YOj4YOg4YOQ4YOX4YOY4YOhIOGDoeGDkOGDnOGDkOGDruGDkOGDleGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X2ZhaWxlZF90aXRsZSIgbXNnaWQ9IjcwNTc4MTExNjc0NjkyMjc3MSI+IuGDleGDlOGDoCDhg5vhg53hg67hg5Thg6Dhg67hg5Phg5Ag4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDkOGDnOGDkOGDkeGDlOGDreGDk+GDmOGDoSDhg5Lhg5Dhg5Phg5Dhg6bhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGV4dCIgbXNnaWQ9IjgxMzQwMTEyNjk1NzI0MTU0MDIiPiLhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOh4YOj4YOg4YOQ4YOX4YOYIOGDleGDlOGDoCDhg6jhg5Thg5jhg5zhg5Dhg67hg5AuIOGDqOGDlOGDoeGDkOGDq+GDmuGDneGDkCwg4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOQIOGDo+GDmeGDleGDlCDhg5Phg5Dhg5nhg5Dhg5Xhg5Thg5Hhg6Phg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3ByZWZlcmVuY2VfdGl0bGUiIG1zZ2lkPSI2NTUxMDUwMzc3Mzg4ODgyNzg3Ij4iVVNCIOGDpOGDkOGDmOGDmuGDmOGDoSDhg6Lhg6Dhg5Dhg5zhg6Hhg6Thg5Thg6Dhg5jhg6Eg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX210cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI0MzMzNTA0NDEzNTYzMDIzNjI2Ij4i4YOb4YOU4YOT4YOY4YOQLeGDoeGDkOGDmeGDoOGDkOGDleGDkOGDkyAoTVRQKSDhg6nhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfcHRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9Ijc1MTcxMjc1NDAzMDE2MjU3NTEiPiLhg5vhg5jhg6Phg5Thg6Dhg5fhg5Thg5cg4YOg4YOd4YOS4YOd4YOg4YOqIOGDmeGDkOGDm+GDlOGDoOGDkCAoUFRQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxlcl9jZF9idXR0b25fdGl0bGUiIG1zZ2lkPSIyMzEyNjY3NTc4NTYyMjAxNTgzIj4iQW5kcm9pZCBGaWxlIFRyYW5zZmVyIOGDkOGDnuGDmOGDoSDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg5AgTWFjLeGDl+GDleGDmOGDoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmFjayIgbXNnaWQ9IjU2NzAxMTUzODk5NDQyOTEyMCI+IuGDo+GDmeGDkOGDnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiLhg6Hhg5Dhg6zhg6fhg5jhg6Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiLhg5vhg5Thg5zhg5jhg6MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiLhg5Hhg53hg5rhg53hg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOj4YOa4YOYIOGDkOGDnuGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+IuGDq+GDmOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiLhg5nhg5Dhg5vhg5Thg6Dhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IuGDqOGDlOGDp+GDleGDkOGDnOGDmOGDoSDhg5vhg5Thg5fhg53hg5Phg5jhg6Eg4YOS4YOQ4YOT4YOQ4YOg4YOX4YOV4YOY4YOhIOGDpuGDmOGDmuGDkOGDmeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4i4YOX4YOQ4YOV4YOh4YOU4YOR4YOQ4YOT4YOYIOGDm+GDkOGDoeGDqOGDouGDkOGDkeGDmOGDoOGDlOGDkeGDmOGDoSDhg6bhg5jhg5rhg5Dhg5nhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiLhg6jhg5Thg6rhg5Xhg5Dhg5rhg5Thg5cg4YOe4YOQ4YOi4YOQ4YOg4YOQIOGDlOGDmeGDoOGDkOGDnOGDmCDhg6Phg6Thg6Dhg50g4YOT4YOY4YOT4YOY4YOXLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX2Nvbm5lY3RlZCIgbXNnaWQ9IjI3MDcwMjc2MzMyNDI5ODMzNzAiPiJCbHVldG9vdGgg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOj4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX2Rpc2Nvbm5lY3RlZCIgbXNnaWQ9Ijc0MTY2NDg2Njk5NzY4NzAxNzUiPiJCbHVldG9vdGgg4YOZ4YOQ4YOV4YOo4YOY4YOg4YOYIOGDkuGDkOGDrOGDp+GDleGDlOGDouGDmOGDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2JhdHRlcnkiIG1zZ2lkPSIzNTgzNDMwMjIzNTI4MjA5NDYiPiLhg5Hhg5Dhg6Lhg5Dhg6Dhg5Thg5Ag4YOT4YOQ4YOb4YOv4YOT4YOQ4YOg4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9vbmVfYmFyIiBtc2dpZD0iNzc3NDg4NzcyMTg5MTA1NzUyMyI+IuGDkeGDkOGDouGDkOGDoOGDlOGDmOGDkCDhg5Thg6Dhg5cg4YOW4YOd4YOa4YOW4YOU4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90d29fYmFycyIgbXNnaWQ9Ijg1MDA2NTA0Mzg3MzUwMDk5NzMiPiLhg5Thg5rhg5Thg5vhg5Thg5zhg6Lhg5gg4YOd4YOgIOGDluGDneGDmuGDluGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfdGhyZWVfYmFycyIgbXNnaWQ9IjIzMDI5ODMzMzA4NjUwNDA0NDYiPiLhg5Thg5rhg5Thg5vhg5Thg5zhg6Lhg5gg4YOh4YOQ4YObIOGDluGDneGDmuGDluGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfZnVsbCIgbXNnaWQ9Ijg5MDkxMjI0MDE3MjAxNTg1ODIiPiLhg5Thg5rhg5Thg5vhg5Thg5zhg6Lhg5gg4YOh4YOQ4YOV4YOh4YOU4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fcGhvbmUiIG1zZ2lkPSI0ODk0NzA4OTM3MDUyNjExMjgxIj4i4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOYIOGDkOGDoCDhg5Dhg6Dhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9vbmVfYmFyIiBtc2dpZD0iNjg3Njk5Mjc4MTMyNjY0MTE1Ij4i4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOY4YOhIOGDoeGDmOGDkuGDnOGDkOGDmuGDmCDhg5Thg6Dhg5cg4YOW4YOd4YOa4YOW4YOU4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdHdvX2JhcnMiIG1zZ2lkPSI4Mzg0OTA1MzgyODA0ODE1MjAxIj4i4YOi4YOU4YOa4YOU4YOk4YOd4YOc4YOY4YOhIOGDoeGDmOGDkuGDnOGDkOGDmuGDmCDhg53hg6Ag4YOW4YOd4YOa4YOW4YOU4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdGhyZWVfYmFycyIgbXNnaWQ9Ijg1MjE5MDQ4NDM5MTk5NzE4ODUiPiLhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOh4YOY4YOS4YOc4YOQ4YOa4YOYIOGDoeGDkOGDmyDhg5bhg53hg5rhg5bhg5Thg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9zaWduYWxfZnVsbCIgbXNnaWQ9IjY0NzE4MzQ4Njg1ODA3NTc4OTgiPiLhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOh4YOY4YOS4YOc4YOQ4YOa4YOYIOGDoeGDoOGDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2RhdGEiIG1zZ2lkPSI0NzkxOTY2Mjk1MDk2ODY3NTU1Ij4i4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOYIOGDkOGDoCDhg5Dhg6Dhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX29uZV9iYXIiIG1zZ2lkPSIxNDE1NjI1ODMzMjM4MjczNjI4Ij4i4YOX4YOQ4YOg4YOY4YOm4YOYIOGDluGDneGDmuGDluGDlC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfdHdvX2JhcnMiIG1zZ2lkPSI2MTY2MDE4NDkyMzYwNDMyMDkxIj4i4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDkuGDkOGDk+GDkOGDquGDlOGDm+GDkDog4YOd4YOg4YOYIOGDluGDneGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90aHJlZV9iYXJzIiBtc2dpZD0iOTE2NzY3MDQ1MjM5NTAzODUyMCI+IuGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmOGDoSDhg5Lhg5Dhg5Phg5Dhg6rhg5Thg5vhg5A6IOGDoeGDkOGDm+GDmCDhg5bhg53hg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzA4Mzg0NjA4MTI0NTE5MzY5Ij4i4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOX4YOQIOGDkuGDkOGDk+GDkOGDquGDlOGDm+GDmOGDoSDhg6Hhg5Dhg5jhg5vhg5Thg5Phg50g4YOh4YOY4YOS4YOc4YOQ4YOa4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9vZmYiIG1zZ2lkPSIzMTc3MzgwMjk2Njk3OTMzNjI3Ij4iV2lmaSDhg5Lhg5Dhg5vhg53hg6Dhg5fhg6Phg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub193aWZpIiBtc2dpZD0iMTQyNTQ3NjU1MTgyNzkyNDQ3NCI+IldpZmkg4YOQ4YOgIOGDkOGDoOGDmOGDoSDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg6Phg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29uZV9iYXIiIG1zZ2lkPSI3NzM1ODkzMTc4MDEwNzI0Mzc3Ij4iV2lmaSDhg6Hhg5jhg5Lhg5zhg5Dhg5rhg5gg4YOU4YOg4YOXIOGDluGDneGDmuGDluGDlOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfdHdvX2JhcnMiIG1zZ2lkPSI0OTk0Mjc0MjUwNDk3MjYyNDM0Ij4iV2lmaSDhg6Hhg5jhg5Lhg5zhg5Dhg5rhg5gg4YOd4YOgIOGDluGDneGDmuGDluGDlOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfdGhyZWVfYmFycyIgbXNnaWQ9IjM0OTU3NTUwNDQyNzY1ODgzODQiPiJXaWZpIOGDoeGDkOGDm+GDmCDhg5bhg53hg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IldpZmkg4YOh4YOY4YOS4YOc4YOQ4YOa4YOYIOGDoeGDoOGDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpbWF4IiBtc2dpZD0iNDMyOTE4MDEyOTcyNzYzMDM2OCI+IldpTUFYIOGDkOGDoCDhg5Dhg6Dhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9vbmVfYmFyIiBtc2dpZD0iNDE3MDk5NDI5OTAxMTg2MzY0OCI+IldpTUFYIOGDlOGDoOGDl+GDmCDhg6Hhg5Xhg5Thg6Lhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90d29fYmFycyIgbXNnaWQ9IjkxNzYyMzY4NTgzMzY1MDIyODgiPiJXaU1BWC3hg5jhg6Eg4YOd4YOg4YOYIOGDluGDneGDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3RocmVlX2JhcnMiIG1zZ2lkPSI2MTE2NTUxNjM2NzUyMTAzOTI3Ij4iV2lNQVgt4YOY4YOhIOGDoeGDkOGDm+GDmCDhg5bhg53hg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3NjgwODk5ODY3OTU1Nzk1NTgiPiJXaU1BWCDhg6Hhg5jhg5Lhg5zhg5Dhg5rhg5gg4YOh4YOg4YOj4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fc2lnbmFsIiBtc2dpZD0iNzA2NDY0NTMyMDc4MjU4NTE2NyI+IuGDoeGDmOGDkuGDnOGDkOGDmuGDmCDhg5Dhg6Ag4YOQ4YOg4YOY4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90X2Nvbm5lY3RlZCIgbXNnaWQ9IjYzOTUzMjYyNzYyMTM0MDI4ODMiPiLhg5Dhg6Ag4YOQ4YOg4YOY4YOhIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDo+GDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3plcm9fYmFycyIgbXNnaWQ9IjM4MDYwNjAyMjQ0NjcwMjc4ODciPiLhg6Hhg5jhg5Lhg5zhg5Dhg5rhg5gg4YOc4YOj4YOaIOGDluGDneGDmuGDluGDlOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X29uZV9iYXIiIG1zZ2lkPSIxNjg1NzMwMTEzMTkyMDgxODk1Ij4i4YOU4YOg4YOX4YOYIOGDluGDneGDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3R3b19iYXJzIiBtc2dpZD0iNjQzNzM2MzY0ODM4NTIwNjY3OSI+IuGDneGDoOGDmCDhg6Hhg5Xhg5Thg6Lhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90aHJlZV9iYXJzIiBtc2dpZD0iMjY0ODI0MTQxNTExOTM5NjY0OCI+IuGDoeGDkOGDm+GDmCDhg5bhg53hg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zaWduYWxfZnVsbCIgbXNnaWQ9IjkxMjI5MjI4ODY1MTk2NzY4MzkiPiLhg6Hhg6Dhg6Phg5rhg5gg4YOh4YOY4YOS4YOc4YOQ4YOa4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vbiIgbXNnaWQ9IjIzODUyNTQ2OTM2MjQzNDUyNjUiPiLhg6nhg5Dhg6Dhg5fhg6Phg5rhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb2ZmIiBtc2dpZD0iNjQ3NTUwODE1Nzc4Njg1MzE1NyI+IuGDkuGDkOGDm+GDneGDoOGDl+GDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfY29ubmVjdGVkIiBtc2dpZD0iODM2NjI1NjY5MzcxOTQ5OTY2NSI+IuGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9ncHJzIiBtc2dpZD0iMTYwNjQ3NzIyNDQ4Njc0Nzc1MSI+IkdQUlMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8xeCIgbXNnaWQ9Ijk5NDEzMzQ2ODEyMDI0NDAxOCI+IjEgWCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2hzcGEiIG1zZ2lkPSIyMDMyMzI4ODU1NDYyNjQ1MTk4Ij4iSFNQQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzNnIiBtc2dpZD0iODYyODU2MjMwNTAwMzU2ODI2MCI+IjNHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMy41ZyIgbXNnaWQ9Ijg2NjQ4NDU2MDk5ODE2OTIwMDEiPiIzLjXhg5Lhg5EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl80ZyIgbXNnaWQ9Ijc3NDEwMDA3NTA2MzAwODk2MTIiPiI0RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2x0ZSIgbXNnaWQ9IjU0MTM0Njg4MDg2Mzc1NDA2NTgiPiJMVEUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9jZG1hIiBtc2dpZD0iNjEzMjY0ODE5Mzk3ODgyMzAyMyI+IkNETUEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9yb2FtaW5nIiBtc2dpZD0iNTk3NzM2MjMzMzQ2NjU1NjA5NCI+IuGDoOGDneGDo+GDm+GDmOGDnOGDkuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2VkZ2UiIG1zZ2lkPSI0NDc3NDU3MDUxNjMxOTc5Mjc4Ij4iRWRnZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX3dpZmkiIG1zZ2lkPSIyMzI0NDk2NzU2NTkwNjQ1MjIxIj4iV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpbSIgbXNnaWQ9IjgyNzQwMTcxMTg0NzI0NTUxNTUiPiJTSU0g4YOQ4YOgIOGDkOGDoOGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF90ZXRoZXIiIG1zZ2lkPSI0MTAyNzg0NDk4MTQwMjcxOTY5Ij4iQmx1ZXRvb3RoLeGDmOGDoSDhg6nhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2FpcnBsYW5lX21vZGUiIG1zZ2lkPSI4MzQ3NDg5OTk3OTA3NjMwOTIiPiLhg5fhg5Xhg5jhg5fhg5vhg6Thg6Dhg5jhg5zhg5Dhg5Xhg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X2xldmVsIiBtc2dpZD0iNzQ1MTQ3NDE4NzExMzM3MTk2NSI+IuGDkeGDkOGDouGDkOGDoOGDlOGDkDogPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOGDnuGDoOGDneGDquGDlOGDnOGDouGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9Ijc5OTU4MzkxMTIzMTg5MzM4MCI+IuGDoeGDmOGDoeGDouGDlOGDm+GDmOGDoSDhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25zX2J1dHRvbiIgbXNnaWQ9IjQ0OTgwMDAzNjk3Nzk0MjE4OTIiPiLhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlbW92ZV9ub3RpZmljYXRpb24iIG1zZ2lkPSIzNjAzMDk5NTE0OTAyMTgyMzUwIj4i4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOY4YOhIOGDkuGDkOGDoeGDo+GDpOGDl+GDkOGDleGDlOGDkeGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19lbmFibGVkIiBtc2dpZD0iMzUxMTQ2OTQ5OTI0MDEyMzAxOSI+IkdQUyDhg5Lhg5Dhg5Dhg6Xhg6Lhg5jhg6Phg6Dhg5Phg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfYWNxdWlyaW5nIiBtc2dpZD0iODk1OTMzMzM1MTA1ODk2NzE1OCI+IkdQUy3hg5jhg6Eg4YOT4YOQ4YOT4YOS4YOU4YOc4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHR5X2VuYWJsZWQiIG1zZ2lkPSI0NjEzMjAwMzY1Mzc5NDI2NTYxIj4i4YOi4YOU4YOa4YOU4YOi4YOQ4YOY4YOe4YOYIOGDqeGDkOGDoOGDl+GDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl92aWJyYXRlIiBtc2dpZD0iNjY2NTg1MzYzMzY0MTU1MDU1Ij4i4YOV4YOY4YOR4YOg4YOQ4YOq4YOY4YOY4YOhIOGDoOGDlOGDn+GDmOGDm+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl9zaWxlbnQiIG1zZ2lkPSI5MDYxMjQzMzA3OTM5MTM1MzgzIj4i4YOj4YOu4YOb4YOdIOGDoOGDlOGDn+GDmOGDm+GDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudHNfaXRlbV9kaXNtaXNzZWQiIG1zZ2lkPSI2ODAzNTc0OTM1MDg0ODY3MDcwIj4iPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IOGDkOGDm+GDneGDqOGDmuGDmOGDmuGDmOGDkCDhg6Hhg5jhg5jhg5Phg5Dhg5wuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25fZGlzbWlzc2VkIiBtc2dpZD0iODU0MjExMzg3MTg2MzA2OTI3Ij4i4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOQIOGDrOGDkOGDmOGDqOGDkOGDmuGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfbm90aWZpY2F0aW9uX3NoYWRlIiBtc2dpZD0iNDY5MDI3NDg0NDQ0NzUwNDIwOCI+IuGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmOGDoSDhg6Thg5Dhg6Dhg5Phg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfcXVpY2tfc2V0dGluZ3MiIG1zZ2lkPSI2MTg2Mzc4NDExNTgyNDM3MDQ2Ij4i4YOh4YOs4YOg4YOQ4YOk4YOYIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19yZWNlbnRfYXBwcyIgbXNnaWQ9IjkwMTQwMzI5MTY0MTA1OTAwMjciPiLhg5Hhg53hg5rhg50g4YOQ4YOe4YOU4YOR4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfdXNlciIgbXNnaWQ9IjExMDQ4NDY2OTk4Njk0NzY4NTUiPiLhg5vhg53hg5vhg67hg5vhg5Dhg6Dhg5Thg5Hhg5Thg5rhg5g6IDx4bGlmZjpnIGlkPSJVU0VSIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc193aWZpIiBtc2dpZD0iNjA5OTc4MTAzMTY2OTcyODcwOSI+Ijx4bGlmZjpnIGlkPSJTSUdOQUwiPiUxJHM8L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTIkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX21vYmlsZSIgbXNnaWQ9IjQ4NzY4MDY1NjQwODYyNDEzNDEiPiLhg5vhg53hg5Hhg5jhg5rhg6Phg6Dhg5jhg6EgPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJUWVBFIj4lMiRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUzJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiLhg5Thg5rhg5Thg5vhg5Thg5zhg6Lhg5g6IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4i4YOX4YOV4YOY4YOX4YOb4YOk4YOg4YOY4YOc4YOQ4YOV4YOY4YOhIOGDoOGDlOGDn+GDmOGDm+GDmCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGggPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiLhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5AgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiLhg5vhg5Dhg6bhg5Xhg5jhg6vhg5Dhg6Dhg5Ag4YOT4YOQ4YOn4YOU4YOc4YOU4YOR4YOj4YOa4YOY4YOQOiA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iMkctM0cg4YOY4YOc4YOi4YOU4YOg4YOc4YOU4YOi4YOYIOGDkuGDkOGDmOGDl+GDmOGDqOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiI0RyDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5gg4YOS4YOQ4YOX4YOY4YOo4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfbW9iaWxlX3RpdGxlIiBtc2dpZD0iMTA0NjA0NzI0ODg0NDgyMTIwMiI+IuGDm+GDneGDkeGDmOGDmuGDo+GDoOGDmCDhg5jhg5zhg6Lhg5Thg6Dhg5zhg5Thg6Lhg5gg4YOS4YOQ4YOY4YOX4YOY4YOo4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMjA4NjgxNTMwNDg1ODk2NDk1NCI+IuGDmOGDnOGDouGDlOGDoOGDnOGDlOGDouGDmCDhg5Lhg5Dhg5jhg5fhg5jhg6jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2ciIG1zZ2lkPSIzODUzMTE3MjY5MDUxODA2MjgwIj4i4YOX4YOl4YOV4YOU4YOcIOGDm+GDmOGDkOGDpuGDrOGDmOGDlOGDlyDhg5jhg5zhg6Lhg5Thg6Dhg5zhg5Thg6Lhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOY4YOhIOGDkuGDkOGDnOGDoeGDkOGDluGDpuGDleGDoOGDo+GDmiDhg5rhg5jhg5vhg5jhg6Lhg6EuXG5cbuGDl+GDoyDhg5Lhg5Dhg5Dhg6Xhg6Lhg5jhg6Phg6Dhg5Thg5Hhg5cg4YOY4YOc4YOi4YOU4YOg4YOc4YOU4YOi4YOhLCDhg6jhg5Thg6Hhg5Dhg6vhg5rhg53hg5Ag4YOb4YOd4YOR4YOY4YOa4YOj4YOg4YOYIOGDneGDnuGDlOGDoOGDkOGDouGDneGDoOGDmOGDoeGDl+GDleGDmOGDoSDhg5Phg5Dhg5vhg5Dhg6Lhg5Thg5Hhg5jhg5fhg5gg4YOX4YOQ4YOc4YOu4YOY4YOhIOGDkuGDkOGDk+GDkOGDruGDk+GDkCDhg5vhg53hg5Lhg5jhg6zhg5jhg53hg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfZW5hYmxlIiBtc2dpZD0iNzcyOTc3MjAzOTIwODY2NDYwNiI+IuGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmOGDoSDhg67hg5Thg5rhg5Dhg67hg5rhg5Ag4YOp4YOQ4YOg4YOX4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfZGlzY29ubmVjdGVkIiBtc2dpZD0iMTk0MDIzMTUyMTI3NDE0Nzc3MSI+IuGDmOGDnOGDouGDlOGDoOGDnOGDlOGDoiDhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5gg4YOQ4YOgIOGDkOGDoOGDmOGDoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDo+GDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iR1BTLeGDmOGDoSDhg6vhg5Thg5Hhg5zhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4iR1BTLeGDmOGDlyDhg5Phg5Dhg5Phg5Lhg5Thg5zhg5jhg5rhg5gg4YOb4YOT4YOU4YOR4YOQ4YOg4YOU4YOd4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4i4YOb4YOT4YOU4YOR4YOQ4YOg4YOU4YOd4YOR4YOY4YOhIOGDm+GDneGDl+GDruGDneGDleGDnOGDlOGDkeGDmCDhg5Dhg6Xhg6Lhg5jhg6Phg6Dhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiLhg6fhg5Xhg5Thg5rhg5Ag4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOY4YOhIOGDrOGDkOGDqOGDmuGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiLhg5Dhg57hg5jhg6Eg4YOo4YOU4YOh4YOQ4YOu4YOU4YORIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiLhg5Thg5nhg6Dhg5Dhg5zhg5gg4YOo4YOU4YOi4YOg4YOY4YOQ4YOa4YOT4YOU4YOR4YOQIOGDkOGDleGDouGDneGDm+GDkOGDouGDo+GDoOGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IuGDlOGDmeGDoOGDkOGDnOGDmCDhg5Phg5Dhg5Hhg5rhg53hg5nhg5jhg5rhg5jhg5Ag4YOX4YOQ4YOg4YOQ4YOW4YOj4YOaIOGDneGDoOGDmOGDlOGDnOGDouGDkOGDquGDmOGDkOGDqOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLhg5Thg5nhg6Dhg5Dhg5zhg5gg4YOT4YOQ4YOR4YOa4YOd4YOZ4YOY4YOa4YOY4YOQIOGDnuGDneGDoOGDouGDoOGDlOGDouGDmOGDoSDhg53hg6Dhg5jhg5Thg5zhg6Lhg5Dhg6rhg5jhg5Dhg6jhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IuGDoeGDkOGDk+GDlOGDoeGDlOGDoOGDouGDnSDhg6fhg6Phg5fhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iRGF5ZHJlYW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiLhg5Thg5fhg5Thg6Dhg5zhg5Thg6Lhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+IuGDl+GDleGDmOGDl+GDm+GDpOGDoOGDmOGDnOGDkOGDleGDmOGDoSDhg6Dhg5Thg5/hg5jhg5vhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnaW5nX2xhYmVsIiBtc2dpZD0iNDkwMDc0Nzc0NDY1MzA5MjA5Ij4i4YOT4YOQ4YOb4YOj4YOu4YOi4YOV4YOQLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2VkX2xhYmVsIiBtc2dpZD0iODg2NTQxMzA3OTQxNDI0NjA4MSI+IuGDk+GDkOGDm+GDo+GDruGDouGDo+GDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9sYWJlbCIgbXNnaWQ9IjYzMDQxOTAyODUxNzA3MjE0MDEiPiJCbHVldG9vdGgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbXVsdGlwbGVfZGV2aWNlc19sYWJlbCIgbXNnaWQ9IjM5MTIyNDU1NjU2MTM2ODQ3MzUiPiJCbHVldG9vdGggKDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5ApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiJCbHVldG9vdGgg4YOS4YOQ4YOb4YOd4YOg4YOX4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjY5NjgzNzIyOTcwMTg3NTU4MTUiPiLhg6Hhg5jhg5nhg5Dhg6jhg5nhg5Dhg6jhg5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IuGDkOGDleGDouGDnSDhg5vhg53hg5Hhg6Dhg6Phg5zhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4i4YOg4YOd4YOi4YOQ4YOq4YOY4YOY4YOhIOGDqeGDkOGDmeGDlOGDouGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ltZV9sYWJlbCIgbXNnaWQ9IjcwNzM0NjMwNjQzNjk0Njg0MjkiPiLhg6jhg5Thg6fhg5Xhg5Dhg5zhg5jhg6Eg4YOb4YOU4YOX4YOd4YOT4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwiIG1zZ2lkPSI1MDExMzI3MDQ4NzQ4NzYyMjU3Ij4i4YOb4YOT4YOU4YOR4YOQ4YOg4YOU4YOd4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsIiBtc2dpZD0iNzQ2NDU0NDA4NjUwNzMzMTQ1OSI+IuGDm+GDk+GDlOGDkeGDkOGDoOGDlOGDneGDkeGDkCDhg5Lhg5Dhg5vhg53hg6Dhg5fhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4i4YOb4YOU4YOT4YOY4YOQIOGDm+GDneGDrOGDp+GDneGDkeGDmOGDmuGDneGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4i4YOb4YOu4YOd4YOa4YOd4YOTIOGDkuGDkOGDk+GDkOGDo+GDk+GDlOGDkeGDlOGDmuGDmCDhg5Phg5Dhg67hg5vhg5Dhg6Dhg5Thg5Hhg5jhg6Eg4YOW4YOQ4YOg4YOU4YOR4YOY4YOh4YOX4YOV4YOY4YOhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfc2V0dGluZ3NfbGFiZWwiIG1zZ2lkPSI1MzI2NTU2NTkyNTc4MDY1NDAxIj4i4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfdGltZV9sYWJlbCIgbXNnaWQ9IjQ2MzU5NjkxODIyMzk3MzY0MDgiPiLhg5Phg6Dhg50iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc191c2VyX2xhYmVsIiBtc2dpZD0iNTIzODk5NTYzMjEzMDg5Nzg0MCI+IuGDm+GDlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbGFiZWwiIG1zZ2lkPSI5MTM1MzQ0NzA0ODk5NTQ2MDQxIj4iV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI3MTcxOTA0ODQ1MzQ1NTczNDMxIj4i4YOQ4YOgIOGDkOGDoOGDmOGDoSDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg6Phg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub19uZXR3b3JrIiBtc2dpZD0iMjIyMTk5MzA3NzIyMDg1NjM3NiI+IuGDpeGDoeGDlOGDmuGDmCDhg5Dhg6Ag4YOQ4YOg4YOY4YOhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9vZmZfbGFiZWwiIG1zZ2lkPSI3NTU4Nzc4MTAwODQzODg1ODY0Ij4iV2ktRmkg4YOS4YOQ4YOb4YOd4YOg4YOX4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X2xhYmVsIiBtc2dpZD0iNjg5MzU5Mjk2NDQ2MzYyNDMzMyI+IldpLUZpIOGDlOGDmeGDoOGDkOGDnOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IuGDo+GDoeGDkOGDk+GDlOGDnOGDnSDhg5Thg5nhg6Dhg5Dhg5zhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiLhg5Lhg5Dhg5zhg5Dhg5fhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4i4YOQ4YOV4YOi4YOd4YOb4YOQ4YOi4YOj4YOg4YOQ4YOTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+IuGDpOGDlOGDoOGDl+GDkCDhg5jhg5zhg5Xhg5Thg6Dhg6Hhg5jhg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4i4YOS4YOQ4YOj4YOb4YOv4YOd4YOR4YOU4YOh4YOU4YOR4YOj4YOa4YOYIOGDmeGDneGDnOGDouGDoOGDkOGDoeGDouGDmOGDoSDhg6Dhg5Thg5/hg5jhg5vhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+IuGDpOGDlOGDoOGDl+GDkCDhg5nhg53hg6Dhg5Thg6Xhg6rhg5jhg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiLhg6jhg5Thg6Hhg5Dhg6vhg5rhg53hg5Ag4YOl4YOh4YOU4YOa4YOW4YOUXG7hg5vhg53hg5zhg5jhg6Lhg53hg6Dhg5jhg5zhg5Lhg5gg4YOu4YOd4YOg4YOq4YOY4YOU4YOa4YOT4YOU4YOR4YOd4YOT4YOU4YOhIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWthL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1rYS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2JlNGRlCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1rYS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIwNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAwOSwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzE2NDkzNzM0NDg1MDAwNDQ2NiI+IuGDoeGDmOGDoeGDouGDlOGDm+GDmOGDoSBVSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfY2xlYXJfYWxsX2J1dHRvbiIgbXNnaWQ9Ijc3NzQ3MjEzNDQ3MTY3MzE2MDMiPiLhg5Lhg5Dhg6Hhg6Phg6Thg5fhg5Dhg5Xhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9yZW1vdmVfaXRlbV90aXRsZSIgbXNnaWQ9IjYwMjYzOTU4NjgxMjk4NTI5NjgiPiLhg6Hhg5jhg5jhg5Phg5Dhg5wg4YOQ4YOb4YOd4YOo4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9yZWNlbnRfaW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iNzc5MzYyNDg2NDUyODgxODU2OSI+IuGDkOGDnuGDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX3JlY2VudF9hcHBzIiBtc2dpZD0iNjU3NjM5Mjk1MTA1Mzk5NDY0MCI+IuGDkeGDneGDmuGDneGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg6Phg5rhg5gg4YOQ4YOe4YOU4YOR4YOY4YOhIOGDoeGDmOGDkCDhg6rhg5Dhg6Dhg5jhg5Thg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfZGlzbWlzc19yZWNlbnRzIiBtc2dpZD0iNDU3NjA3NjA3NTIyNjU0MDEwNSI+IuGDkeGDneGDmuGDnSDhg5Dhg57hg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOj4YOl4YOb4YOU4YOR4YOQIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfcmVjZW50X2FwcHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODU0MTc2MDgzODY1ODQ1NTQxIj4iMSDhg5Hhg53hg5rhg50g4YOQ4YOe4YOYIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMDQwNzg0MzU5Nzk0ODkwNzQ0Ij4iJWQg4YOR4YOd4YOa4YOdIOGDkOGDnuGDmCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm9fbm90aWZpY2F0aW9uc190aXRsZSIgbXNnaWQ9IjQ3NTUyNjExNjcxOTM4MzMyMTMiPiLhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5gg4YOQ4YOgIOGDkOGDoOGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX29uZ29pbmdfZXZlbnRzX3RpdGxlIiBtc2dpZD0iMTY4MjUwNDUxMzMxNjg3OTIwMiI+IuGDm+GDmOGDm+GDk+GDmOGDnOGDkOGDoOGDlCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbGF0ZXN0X2V2ZW50c190aXRsZSIgbXNnaWQ9IjY1OTQ3Njc0Mzg1Nzc1OTMxNzIiPiLhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd190aXRsZSIgbXNnaWQ9IjI3ODMxMDQ4MDc1NTEyMTE2MzkiPiLhg6jhg5Thg5Dhg5Thg6Dhg5fhg5Thg5cg4YOT4YOQ4YOb4YOi4YOU4YOc4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3N1YnRpdGxlIiBtc2dpZD0iMTc1MjA0MDA2MjA4NzgyOTE5NiI+IuGDkeGDkOGDouGDkOGDoOGDlOGDkCDhg6/hg5Phg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfcGVyY2VudF9mb3JtYXQiIG1zZ2lkPSIxMDc3MjQ0OTQ5MzE4MjYxNzYxIj4i4YOT4YOQ4YOg4YOp4YOU4YOc4YOY4YOa4YOY4YOQIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkJSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZF9jaGFyZ2VyIiBtc2dpZD0iNDU0OTEwNTk5Njc0MDUyMjUyMyI+IlVTQi3hg5jhg5cg4YOT4YOQ4YOi4YOU4YOc4YOV4YOQIOGDkOGDoCDhg5Dhg6Dhg5jhg6Eg4YOb4YOu4YOQ4YOg4YOT4YOQ4YOt4YOU4YOg4YOY4YOa4YOYLlxu4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOU4YOXIOGDm+GDruGDneGDmuGDneGDkyDhg5Thg5rhg5Thg6Xhg6Lhg6Dhg50t4YOT4YOQ4YOb4YOi4YOU4YOc4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3doeSIgbXNnaWQ9IjcyNzkxNjk2MDk1MTgzODYzNzIiPiLhg5Thg5rhg5Thg5vhg5Thg5zhg6Lhg5jhg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zZXR0aW5nc19idXR0b24iIG1zZ2lkPSIzMDIzODg5OTE2Njk5MjcwMjI0Ij4i4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc193aWZpX2J1dHRvbiIgbXNnaWQ9IjE3MzM5MjgxNTE2OTgzMTE5MjMiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0ODc5ODc5Njk4NTAwOTU1MzAwIj4i4YOX4YOV4YOY4YOX4YOb4YOk4YOg4YOY4YOc4YOQ4YOV4YOY4YOhIOGDoOGDlOGDn+GDmOGDm+GDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19yb3RhdGlvbiIgbXNnaWQ9IjM3OTA0ODI1NDEzNTc3OTg0MjEiPiLhg5Dhg5Xhg6Lhg53hg6Dhg53hg6Lhg5Dhg6rhg5jhg5jhg6Eg4YOU4YOZ4YOg4YOQ4YOc4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19tdXRlX2xhYmVsIiBtc2dpZD0iNTU0NjgyNTQ5OTE3NDI5Mzk2Ij4i4YOT4YOQ4YOT4YOj4YOb4YOU4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MTE0NTM2MTQ5NjIzMjQ2NzQiPiLhg5Dhg5Xhg6Lhg53hg5vhg5Dhg6Lhg6Phg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX25vdGlmaWNhdGlvbnMiIG1zZ2lkPSIzOTcxNDYxNzYyODA5MDUxMzciPiLhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4iQmx1ZXRvb3RoIOGDm+GDmOGDlOGDoOGDl+GDlOGDkeGDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2lucHV0X21ldGhvZF9zZXR0aW5nc19jb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjM1MDQyOTI0NzE1MTIzMTc4MjciPiLhg6jhg5Thg6fhg5Xhg5Dhg5zhg5jhg6Eg4YOb4YOU4YOX4YOd4YOT4YOU4YOR4YOY4YOhIOGDk+GDkOGDp+GDlOGDnOGDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfdXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNzU1MTkwMzA4NDQxNjA1NzgxMCI+IuGDpOGDmOGDluGDmOGDmeGDo+GDoOGDmCDhg5nhg5rhg5Dhg5Xhg5jhg5Dhg6Lhg6Phg6Dhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iODM0Njk4MDAxMjcxNTYyMDU3Ij4i4YOS4YOh4YOj4YOg4YOXLCDhg5vhg5jhg6Hhg6rhg5Thg5cg4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOQ4YOhIOKAnjx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz7igJwgVVNCIOGDm+GDlOGDruGDoeGDmOGDlOGDoOGDlOGDkeGDkOGDoeGDl+GDkOGDnCDhg6zhg5Xhg5Phg53hg5vhg5jhg6Eg4YOj4YOk4YOa4YOU4YOR4YOQPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI1MTcxNzc1NDExMTc4ODY1NzUwIj4i4YOS4YOh4YOj4YOg4YOXLCDhg5vhg5jhg6Hhg6rhg5Thg5cg4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOQ4YOhIOKAnjx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz7igJwgVVNCIOGDkOGDpeGDoeGDlOGDoeGDo+GDkOGDoOGDl+GDkOGDnCDhg6zhg5Xhg5Phg53hg5vhg5jhg6Eg4YOj4YOk4YOa4YOU4YOR4YOQPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSI1MTYxMjA1MjU4NjM1MjUzMjA2Ij4i4YOS4YOh4YOj4YOg4YOXIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4gLCDhg6Dhg53hg5Phg5Thg6Hhg5Dhg6og4YOU4YOhIFVTQiDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Ag4YOo4YOU4YOU4YOg4YOX4YOU4YOR4YOj4YOa4YOY4YOQPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSIzODA4OTg0OTMxODMwMjI5ODg4Ij4i4YOS4YOh4YOj4YOg4YOXIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4gLCDhg6Dhg53hg5Phg5Thg6Hhg5Dhg6og4YOU4YOhIFVTQiDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5Ag4YOo4YOU4YOU4YOg4YOX4YOU4YOR4YOj4YOa4YOY4YOQPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfdXJpX3Byb21wdCIgbXNnaWQ9IjUxMzQ1MDYyMTQxMzczMzM0MyI+IuGDkOGDoOGDquGDlOGDoOGDl+GDmCDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg6Phg5rhg5gg4YOQ4YOe4YOYIOGDkOGDoCDhg5vhg6Phg6jhg5Dhg53hg5Hhg6Eg4YOQ4YObIFVTQiDhg5Dhg6Xhg6Hhg5Thg6Hhg6Phg5Dhg6Dhg5fhg5Dhg5wuIOGDqOGDlOGDmOGDouGDp+GDleGDlOGDlyDhg5vhg5Thg6Lhg5gg4YOQ4YObIOGDkOGDpeGDoeGDlOGDoeGDo+GDkOGDoOGDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5EgPHhsaWZmOmcgaWQ9IlVSTCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+IlVTQiDhg5Dhg6Xhg6Hhg5Thg6Hhg6Phg5Dhg6Dhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF92aWV3IiBtc2dpZD0iNjMwNDU2NTU1MzIxODE5Mjk5MCI+IuGDnOGDkOGDruGDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfZGV2aWNlIiBtc2dpZD0iMTQ1MDI4NzQzNzAxNzMxNTkwNiI+IuGDkOGDmyBVU0Ig4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOY4YOhIOGDnOGDkOGDkuGDo+GDmuGDmOGDoeGDruGDm+GDlOGDleGDkOGDkyDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2FjY2Vzc29yeSIgbXNnaWQ9IjEyMTA5NTQ1NzY5Nzk2MjE1OTYiPiLhg5Dhg5Xhg6Lhg53hg5vhg5Dhg6Lhg6Phg6Dhg5Dhg5Mg4YOS4YOQ4YOb4YOd4YOY4YOn4YOU4YOc4YOUIOGDkOGDmyBVU0Ig4YOQ4YOl4YOh4YOU4YOh4YOj4YOQ4YOg4YOY4YOh4YOX4YOV4YOY4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfdGl0bGUiIG1zZ2lkPSI0NTEzOTE4MzkzMzg3MTQxOTQ5Ij4i4YOS4YOQ4YOQ4YOl4YOi4YOY4YOj4YOg4YOT4YOU4YOhIFVTQiDhg5Lhg5Dhg5vhg5Dhg6Dhg5fhg5Xhg5A/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+IuGDmeGDneGDm+GDnuGDmOGDo+GDouGDlOGDoOGDmOGDoSBSU0Eg4YOS4YOQ4YOh4YOQ4YOm4YOU4YOR4YOY4YOhIOGDl+GDmOGDl+GDmOGDoSDhg5Dhg5zhg5Dhg5Hhg5Thg63hg5Phg5jhg5A6XG48eGxpZmY6ZyBpZD0iRklOR0VSUFJJTlQiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiLhg6fhg53hg5Xhg5Thg5rhg5fhg5Xhg5jhg6Eg4YOT4YOQ4YOg4YOX4YOUIOGDnOGDlOGDkeGDkCDhg5Dhg5sg4YOZ4YOd4YOb4YOe4YOY4YOj4YOi4YOU4YOg4YOY4YOT4YOQ4YOcLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IuGDm+GDkOGDoeGDqOGDouGDkOGDkeGDmCDhg6jhg5Thg6rhg5Xhg5Dhg5rhg5Thg5cg4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDqOGDlOGDoeGDkOGDleGDoeGDlOGDkeGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4i4YOS4YOQ4YOs4YOY4YOU4YOXIOGDlOGDmeGDoOGDkOGDnOGDmOGDoSDhg6jhg5Thg6Hhg5Dhg5Xhg6Hhg5Thg5Hhg5Dhg5MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4i4YOX4YOQ4YOV4YOh4YOU4YOR4YOQ4YOT4YOd4YOR4YOY4YOhIOGDm+GDkOGDoeGDqOGDouGDkOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiLhg5fhg6Mg4YOQ4YOe4YOYIOGDkuGDkOGDl+GDleGDmuGDmOGDmuGDmOGDkCDhg5vhg6rhg5jhg6Dhg5Qg4YOU4YOZ4YOg4YOQ4YOc4YOY4YOh4YOX4YOV4YOY4YOhLCDhg6Hhg5Dhg5Dhg5fhg5jhg6Eg4YOS4YOV4YOU4YOg4YOT4YOY4YOXIOGDkuGDkOGDqeGDnOGDk+GDlOGDkeGDkCDhg5vhg5Dhg6Hhg6jhg6Lhg5Dhg5Hhg5jhg6Eg4YOb4YOQ4YOg4YOX4YOV4YOY4YOhIOGDlOGDmuGDlOGDm+GDlOGDnOGDouGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4i4YOh4YOZ4YOg4YOY4YOc4YOo4YOd4YOi4YOY4YOhIOGDqOGDlOGDnOGDkOGDruGDleGDkOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IuGDlOGDmeGDoOGDkOGDnOGDmOGDoSDhg6Hhg6Phg6Dhg5Dhg5fhg5jhg6Eg4YOo4YOU4YOc4YOQ4YOu4YOV4YOQ4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOh4YOj4YOg4YOQ4YOX4YOYIOGDqOGDlOGDnOGDkOGDruGDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RpdGxlIiBtc2dpZD0iNjQ2MTg2NTk2MDk2MTQxNDk2MSI+IuGDoeGDmeGDoOGDmOGDnOGDqOGDneGDouGDmCDhg5Lhg5Dhg5Phg5Dhg6bhg5Thg5Hhg6Phg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90ZXh0IiBtc2dpZD0iMTE1MjgzOTY0NzY3NzU1ODgxNSI+IuGDqOGDlOGDlOGDruGDlOGDlyDhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOh4YOj4YOg4YOQ4YOX4YOY4YOhIOGDoeGDkOGDnOGDkOGDruGDkOGDleGDkOGDky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X2ZhaWxlZF90aXRsZSIgbXNnaWQ9IjcwNTc4MTExNjc0NjkyMjc3MSI+IuGDleGDlOGDoCDhg5vhg53hg67hg5Thg6Dhg67hg5Phg5Ag4YOU4YOZ4YOg4YOQ4YOc4YOY4YOhIOGDkOGDnOGDkOGDkeGDlOGDreGDk+GDmOGDoSDhg5Lhg5Dhg5Phg5Dhg6bhg5Thg5Hhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGV4dCIgbXNnaWQ9IjgxMzQwMTEyNjk1NzI0MTU0MDIiPiLhg5Thg5nhg6Dhg5Dhg5zhg5jhg6Eg4YOh4YOj4YOg4YOQ4YOX4YOYIOGDleGDlOGDoCDhg6jhg5Thg5jhg5zhg5Dhg67hg5AuIOGDqOGDlOGDoeGDkOGDq+GDmuGDneGDkCwg4YOb4YOU4YOu4YOh4YOY4YOU4YOg4YOU4YOR4YOQIOGDo+GDmeGDleGDlCDhg5Phg5Dhg5nhg5Dhg5Xhg5Thg5Hhg6Phg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3ByZWZlcmVuY2VfdGl0bGUiIG1zZ2lkPSI2NTUxMDUwMzc3Mzg4ODgyNzg3Ij4iVVNCIOGDpOGDkOGDmOGDmuGDmOGDoSDhg6Lhg6Dhg5Dhg5zhg6Hhg6Thg5Thg6Dhg5jhg6Eg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX210cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI0MzMzNTA0NDEzNTYzMDIzNjI2Ij4i4YOb4YOU4YOT4YOY4YOQLeGDoeGDkOGDmeGDoOGDkOGDleGDkOGDkyAoTVRQKSDhg6nhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfcHRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9Ijc1MTcxMjc1NDAzMDE2MjU3NTEiPiLhg5vhg5jhg6Phg5Thg6Dhg5fhg5Thg5cg4YOg4YOd4YOS4YOd4YOg4YOqIOGDmeGDkOGDm+GDlOGDoOGDkCAoUFRQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxlcl9jZF9idXR0b25fdGl0bGUiIG1zZ2lkPSIyMzEyNjY3NTc4NTYyMjAxNTgzIj4iQW5kcm9pZCBGaWxlIFRyYW5zZmVyIOGDkOGDnuGDmOGDoSDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg5AgTWFjLeGDl+GDleGDmOGDoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmFjayIgbXNnaWQ9IjU2NzAxMTUzODk5NDQyOTEyMCI+IuGDo+GDmeGDkOGDnCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiLhg6Hhg5Dhg6zhg6fhg5jhg6Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiLhg5vhg5Thg5zhg5jhg6MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiLhg5Hhg53hg5rhg53hg6Eg4YOS4YOQ4YOb4YOd4YOn4YOU4YOc4YOU4YOR4YOj4YOa4YOYIOGDkOGDnuGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4i4YOo4YOU4YOn4YOV4YOQ4YOc4YOY4YOhIOGDm+GDlOGDl+GDneGDk+GDmOGDoSDhg5Lhg5Dhg5Phg5Dhg6Dhg5fhg5Xhg5jhg6Eg4YOm4YOY4YOa4YOQ4YOZ4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiLhg5fhg5Dhg5Xhg6Hhg5Thg5Hhg5Dhg5Phg5gg4YOb4YOQ4YOh4YOo4YOi4YOQ4YOR4YOY4YOg4YOU4YOR4YOY4YOhIOGDpuGDmOGDmuGDkOGDmeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+IuGDqOGDlOGDquGDleGDkOGDmuGDlOGDlyDhg57hg5Dhg6Lhg5Dhg6Dhg5Ag4YOU4YOZ4YOg4YOQ4YOc4YOYIOGDo+GDpOGDoOGDnSDhg5Phg5jhg5Phg5jhg5cuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfY29ubmVjdGVkIiBtc2dpZD0iMjcwNzAyNzYzMzI0Mjk4MzM3MCI+IkJsdWV0b290aCDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg6Phg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfZGlzY29ubmVjdGVkIiBtc2dpZD0iNzQxNjY0ODY2OTk3Njg3MDE3NSI+IkJsdWV0b290aCDhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5gg4YOS4YOQ4YOs4YOn4YOV4YOU4YOi4YOY4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fYmF0dGVyeSIgbXNnaWQ9IjM1ODM0MzAyMjM1MjgyMDk0NiI+IuGDkeGDkOGDouGDkOGDoOGDlOGDkCDhg5Phg5Dhg5vhg6/hg5Phg5Dhg6Dhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X29uZV9iYXIiIG1zZ2lkPSI3Nzc0ODg3NzIxODkxMDU3NTIzIj4i4YOR4YOQ4YOi4YOQ4YOg4YOU4YOY4YOQIOGDlOGDoOGDlyDhg5bhg53hg5rhg5bhg5Thg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3R3b19iYXJzIiBtc2dpZD0iODUwMDY1MDQzODczNTAwOTk3MyI+IuGDlOGDmuGDlOGDm+GDlOGDnOGDouGDmCDhg53hg6Ag4YOW4YOd4YOa4YOW4YOULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90aHJlZV9iYXJzIiBtc2dpZD0iMjMwMjk4MzMzMDg2NTA0MDQ0NiI+IuGDlOGDmuGDlOGDm+GDlOGDnOGDouGDmCDhg6Hhg5Dhg5sg4YOW4YOd4YOa4YOW4YOULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9mdWxsIiBtc2dpZD0iODkwOTEyMjQwMTcyMDE1ODU4MiI+IuGDlOGDmuGDlOGDm+GDlOGDnOGDouGDmCDhg6Hhg5Dhg5Xhg6Hhg5Thg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19waG9uZSIgbXNnaWQ9IjQ4OTQ3MDg5MzcwNTI2MTEyODEiPiLhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5gg4YOQ4YOgIOGDkOGDoOGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX29uZV9iYXIiIG1zZ2lkPSI2ODc2OTkyNzgxMzI2NjQxMTUiPiLhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOh4YOY4YOS4YOc4YOQ4YOa4YOYIOGDlOGDoOGDlyDhg5bhg53hg5rhg5bhg5Thg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV90d29fYmFycyIgbXNnaWQ9IjgzODQ5MDUzODI4MDQ4MTUyMDEiPiLhg6Lhg5Thg5rhg5Thg6Thg53hg5zhg5jhg6Eg4YOh4YOY4YOS4YOc4YOQ4YOa4YOYIOGDneGDoCDhg5bhg53hg5rhg5bhg5Thg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV90aHJlZV9iYXJzIiBtc2dpZD0iODUyMTkwNDg0MzkxOTk3MTg4NSI+IuGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg6Hhg5jhg5Lhg5zhg5Dhg5rhg5gg4YOh4YOQ4YObIOGDluGDneGDmuGDluGDlOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjQ3MTgzNDg2ODU4MDc1Nzg5OCI+IuGDouGDlOGDmuGDlOGDpOGDneGDnOGDmOGDoSDhg6Hhg5jhg5Lhg5zhg5Dhg5rhg5gg4YOh4YOg4YOj4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fZGF0YSIgbXNnaWQ9IjQ3OTE5NjYyOTUwOTY4Njc1NTUiPiLhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5gg4YOQ4YOgIOGDkOGDoOGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfb25lX2JhciIgbXNnaWQ9IjE0MTU2MjU4MzMyMzgyNzM2MjgiPiLhg5fhg5Dhg6Dhg5jhg6bhg5gg4YOW4YOd4YOa4YOW4YOULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90d29fYmFycyIgbXNnaWQ9IjYxNjYwMTg0OTIzNjA0MzIwOTEiPiLhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOT4YOQ4YOq4YOU4YOb4YOQOiDhg53hg6Dhg5gg4YOW4YOd4YOa4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4i4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDkuGDkOGDk+GDkOGDquGDlOGDm+GDkDog4YOh4YOQ4YOb4YOYIOGDluGDneGDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3MDgzODQ2MDgxMjQ1MTkzNjkiPiLhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5fhg5Ag4YOS4YOQ4YOT4YOQ4YOq4YOU4YOb4YOY4YOhIOGDoeGDkOGDmOGDm+GDlOGDk+GDnSDhg6Hhg5jhg5Lhg5zhg5Dhg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29mZiIgbXNnaWQ9IjMxNzczODAyOTY2OTc5MzM2MjciPiJXaWZpIOGDkuGDkOGDm+GDneGDoOGDl+GDo+GDmuGDmOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpZmkiIG1zZ2lkPSIxNDI1NDc2NTUxODI3OTI0NDc0Ij4iV2lmaSDhg5Dhg6Ag4YOQ4YOg4YOY4YOhIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDo+GDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiJXaWZpIOGDoeGDmOGDkuGDnOGDkOGDmuGDmCDhg5Thg6Dhg5cg4YOW4YOd4YOa4YOW4YOU4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90d29fYmFycyIgbXNnaWQ9IjQ5OTQyNzQyNTA0OTcyNjI0MzQiPiJXaWZpIOGDoeGDmOGDkuGDnOGDkOGDmuGDmCDhg53hg6Ag4YOW4YOd4YOa4YOW4YOU4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90aHJlZV9iYXJzIiBtc2dpZD0iMzQ5NTc1NTA0NDI3NjU4ODM4NCI+IldpZmkg4YOh4YOQ4YOb4YOYIOGDluGDneGDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2ODUzNTYxMzAzNTg2NDgwMzc2Ij4iV2lmaSDhg6Hhg5jhg5Lhg5zhg5Dhg5rhg5gg4YOh4YOg4YOj4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2ltYXgiIG1zZ2lkPSI0MzI5MTgwMTI5NzI3NjMwMzY4Ij4iV2lNQVgg4YOQ4YOgIOGDkOGDoOGDmOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X29uZV9iYXIiIG1zZ2lkPSI0MTcwOTk0Mjk5MDExODYzNjQ4Ij4iV2lNQVgg4YOU4YOg4YOX4YOYIOGDoeGDleGDlOGDouGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3R3b19iYXJzIiBtc2dpZD0iOTE3NjIzNjg1ODMzNjUwMjI4OCI+IldpTUFYLeGDmOGDoSDhg53hg6Dhg5gg4YOW4YOd4YOa4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiJXaU1BWC3hg5jhg6Eg4YOh4YOQ4YOb4YOYIOGDluGDneGDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3NpZ25hbF9mdWxsIiBtc2dpZD0iMjc2ODA4OTk4Njc5NTU3OTU1OCI+IldpTUFYIOGDoeGDmOGDkuGDnOGDkOGDmuGDmCDhg6Hhg6Dhg6Phg5rhg5jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaWduYWwiIG1zZ2lkPSI3MDY0NjQ1MzIwNzgyNTg1MTY3Ij4i4YOh4YOY4YOS4YOc4YOQ4YOa4YOYIOGDkOGDoCDhg5Dhg6Dhg5jhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNjM5NTMyNjI3NjIxMzQwMjg4MyI+IuGDkOGDoCDhg5Dhg6Dhg5jhg6Eg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOj4YOa4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfemVyb19iYXJzIiBtc2dpZD0iMzgwNjA2MDIyNDQ2NzAyNzg4NyI+IuGDoeGDmOGDkuGDnOGDkOGDmuGDmCDhg5zhg6Phg5og4YOW4YOd4YOa4YOW4YOU4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfb25lX2JhciIgbXNnaWQ9IjE2ODU3MzAxMTMxOTIwODE4OTUiPiLhg5Thg6Dhg5fhg5gg4YOW4YOd4YOa4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHdvX2JhcnMiIG1zZ2lkPSI2NDM3MzYzNjQ4Mzg1MjA2Njc5Ij4i4YOd4YOg4YOYIOGDoeGDleGDlOGDouGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3RocmVlX2JhcnMiIG1zZ2lkPSIyNjQ4MjQxNDE1MTE5Mzk2NjQ4Ij4i4YOh4YOQ4YOb4YOYIOGDluGDneGDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NpZ25hbF9mdWxsIiBtc2dpZD0iOTEyMjkyMjg4NjUxOTY3NjgzOSI+IuGDoeGDoOGDo+GDmuGDmCDhg6Hhg5jhg5Lhg5zhg5Dhg5rhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29uIiBtc2dpZD0iMjM4NTI1NDY5MzYyNDM0NTI2NSI+IuGDqeGDkOGDoOGDl+GDo+GDmuGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vZmYiIG1zZ2lkPSI2NDc1NTA4MTU3Nzg2ODUzMTU3Ij4i4YOS4YOQ4YOb4YOd4YOg4YOX4YOj4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19jb25uZWN0ZWQiIG1zZ2lkPSI4MzY2MjU2NjkzNzE5NDk5NjY1Ij4i4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOj4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2dwcnMiIG1zZ2lkPSIxNjA2NDc3MjI0NDg2NzQ3NzUxIj4iR1BSUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzF4IiBtc2dpZD0iOTk0MTMzNDY4MTIwMjQ0MDE4Ij4iMSBYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25faHNwYSIgbXNnaWQ9IjIwMzIzMjg4NTU0NjI2NDUxOTgiPiJIU1BBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fM2ciIG1zZ2lkPSI4NjI4NTYyMzA1MDAzNTY4MjYwIj4iM0ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8zLjVnIiBtc2dpZD0iODY2NDg0NTYwOTk4MTY5MjAwMSI+IjMuNeGDkuGDkSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzRnIiBtc2dpZD0iNzc0MTAwMDc1MDYzMDA4OTYxMiI+IjRHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fbHRlIiBtc2dpZD0iNTQxMzQ2ODgwODYzNzU0MDY1OCI+IkxURSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2NkbWEiIG1zZ2lkPSI2MTMyNjQ4MTkzOTc4ODIzMDIzIj4iQ0RNQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX3JvYW1pbmciIG1zZ2lkPSI1OTc3MzYyMzMzNDY2NTU2MDk0Ij4i4YOg4YOd4YOj4YOb4YOY4YOc4YOS4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZWRnZSIgbXNnaWQ9IjQ0Nzc0NTcwNTE2MzE5NzkyNzgiPiJFZGdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fd2lmaSIgbXNnaWQ9IjIzMjQ0OTY3NTY1OTA2NDUyMjEiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fc2ltIiBtc2dpZD0iODI3NDAxNzExODQ3MjQ1NTE1NSI+IlNJTSDhg5Dhg6Ag4YOQ4YOg4YOY4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX3RldGhlciIgbXNnaWQ9IjQxMDI3ODQ0OTgxNDAyNzE5NjkiPiJCbHVldG9vdGgt4YOY4YOhIOGDqeGDkOGDoOGDl+GDleGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYWlycGxhbmVfbW9kZSIgbXNnaWQ9IjgzNDc0ODk5OTc5MDc2MzA5MiI+IuGDl+GDleGDmOGDl+GDm+GDpOGDoOGDmOGDnOGDkOGDleGDmOGDoSDhg6Dhg5Thg5/hg5jhg5vhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfbGV2ZWwiIG1zZ2lkPSI3NDUxNDc0MTg3MTEzMzcxOTY1Ij4i4YOR4YOQ4YOi4YOQ4YOg4YOU4YOQOiA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4YOe4YOg4YOd4YOq4YOU4YOc4YOi4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNzk5NTgzOTExMjMxODkzMzgwIj4i4YOh4YOY4YOh4YOi4YOU4YOb4YOY4YOhIOGDnuGDkOGDoOGDkOGDm+GDlOGDouGDoOGDlOGDkeGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdGlmaWNhdGlvbnNfYnV0dG9uIiBtc2dpZD0iNDQ5ODAwMDM2OTc3OTQyMTg5MiI+IuGDqOGDlOGDouGDp+GDneGDkeGDmOGDnOGDlOGDkeGDlOGDkeGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVtb3ZlX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjM2MDMwOTk1MTQ5MDIxODIzNTAiPiLhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOh4YOj4YOk4YOX4YOQ4YOV4YOU4YOR4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2VuYWJsZWQiIG1zZ2lkPSIzNTExNDY5NDk5MjQwMTIzMDE5Ij4iR1BTIOGDkuGDkOGDkOGDpeGDouGDmOGDo+GDoOGDk+GDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19hY3F1aXJpbmciIG1zZ2lkPSI4OTU5MzMzMzUxMDU4OTY3MTU4Ij4iR1BTLeGDmOGDoSDhg5Phg5Dhg5Phg5Lhg5Thg5zhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90dHlfZW5hYmxlZCIgbXNnaWQ9IjQ2MTMyMDAzNjUzNzk0MjY1NjEiPiLhg6Lhg5Thg5rhg5Thg6Lhg5Dhg5jhg57hg5gg4YOp4YOQ4YOg4YOX4YOj4YOa4YOY4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3ZpYnJhdGUiIG1zZ2lkPSI2NjY1ODUzNjMzNjQxNTUwNTUiPiLhg5Xhg5jhg5Hhg6Dhg5Dhg6rhg5jhg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3NpbGVudCIgbXNnaWQ9IjkwNjEyNDMzMDc5MzkxMzUzODMiPiLhg6Phg67hg5vhg50g4YOg4YOU4YOf4YOY4YOb4YOYLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50c19pdGVtX2Rpc21pc3NlZCIgbXNnaWQ9IjY4MDM1NzQ5MzUwODQ4NjcwNzAiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g4YOQ4YOb4YOd4YOo4YOa4YOY4YOa4YOY4YOQIOGDoeGDmOGDmOGDk+GDkOGDnC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdGlmaWNhdGlvbl9kaXNtaXNzZWQiIG1zZ2lkPSI4NTQyMTEzODcxODYzMDY5MjciPiLhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5Ag4YOs4YOQ4YOY4YOo4YOQ4YOa4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19ub3RpZmljYXRpb25fc2hhZGUiIG1zZ2lkPSI0NjkwMjc0ODQ0NDQ3NTA0MjA4Ij4i4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOY4YOhIOGDpOGDkOGDoOGDk+GDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19xdWlja19zZXR0aW5ncyIgbXNnaWQ9IjYxODYzNzg0MTE1ODI0MzcwNDYiPiLhg6Hhg6zhg6Dhg5Dhg6Thg5gg4YOe4YOQ4YOg4YOQ4YOb4YOU4YOi4YOg4YOU4YOR4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3JlY2VudF9hcHBzIiBtc2dpZD0iOTAxNDAzMjkxNjQxMDU5MDAyNyI+IuGDkeGDneGDmuGDnSDhg5Dhg57hg5Thg5Hhg5guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc191c2VyIiBtc2dpZD0iMTEwNDg0NjY5OTg2OTQ3Njg1NSI+IuGDm+GDneGDm+GDruGDm+GDkOGDoOGDlOGDkeGDlOGDmuGDmDogPHhsaWZmOmcgaWQ9IlVTRVIiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3dpZmkiIG1zZ2lkPSI2MDk5NzgxMDMxNjY5NzI4NzA5Ij4iPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJORVRXT1JLIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbW9iaWxlIiBtc2dpZD0iNDg3NjgwNjU2NDA4NjI0MTM0MSI+IuGDm+GDneGDkeGDmOGDmuGDo+GDoOGDmOGDoSA8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9IlRZUEUiPiUyJHM8L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTMkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IuGDlOGDmuGDlOGDm+GDlOGDnOGDouGDmDogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLhg5fhg5Xhg5jhg5fhg5vhg6Thg6Dhg5jhg5zhg5Dhg5Xhg5jhg6Eg4YOg4YOU4YOf4YOY4YOb4YOYIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IuGDm+GDkOGDpuGDleGDmOGDq+GDkOGDoOGDkCDhg5Phg5Dhg6fhg5Thg5zhg5Thg5Hhg6Phg5rhg5jhg5A6IDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiIyRy0zRyDhg5jhg5zhg6Lhg5Thg6Dhg5zhg5Thg6Lhg5gg4YOS4YOQ4YOY4YOX4YOY4YOo4YOQLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDmCDhg5Lhg5Dhg5fhg5jhg6jhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19tb2JpbGVfdGl0bGUiIG1zZ2lkPSIxMDQ2MDQ3MjQ4ODQ0ODIxMjAyIj4i4YOb4YOd4YOR4YOY4YOa4YOj4YOg4YOYIOGDmOGDnOGDouGDlOGDoOGDnOGDlOGDouGDmCDhg5Lhg5Dhg5jhg5fhg5jhg6jhg5AuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfdGl0bGUiIG1zZ2lkPSIyMDg2ODE1MzA0ODU4OTY0OTU0Ij4i4YOY4YOc4YOi4YOU4YOg4YOc4YOU4YOi4YOYIOGDkuGDkOGDmOGDl+GDmOGDqOGDkC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZyIgbXNnaWQ9IjM4NTMxMTcyNjkwNTE4MDYyODAiPiLhg5fhg6Xhg5Xhg5Thg5wg4YOb4YOY4YOQ4YOm4YOs4YOY4YOU4YOXIOGDmOGDnOGDouGDlOGDoOGDnOGDlOGDouGDmOGDoSDhg5Lhg5Dhg5vhg53hg6fhg5Thg5zhg5Thg5Hhg5jhg6Eg4YOS4YOQ4YOc4YOh4YOQ4YOW4YOm4YOV4YOg4YOj4YOaIOGDmuGDmOGDm+GDmOGDouGDoS5cblxu4YOX4YOjIOGDkuGDkOGDkOGDpeGDouGDmOGDo+GDoOGDlOGDkeGDlyDhg5jhg5zhg6Lhg5Thg6Dhg5zhg5Thg6Lhg6EsIOGDqOGDlOGDoeGDkOGDq+GDmuGDneGDkCDhg5vhg53hg5Hhg5jhg5rhg6Phg6Dhg5gg4YOd4YOe4YOU4YOg4YOQ4YOi4YOd4YOg4YOY4YOh4YOX4YOV4YOY4YOhIOGDk+GDkOGDm+GDkOGDouGDlOGDkeGDmOGDl+GDmCDhg5fhg5Dhg5zhg67hg5jhg6Eg4YOS4YOQ4YOT4YOQ4YOu4YOT4YOQIOGDm+GDneGDkuGDmOGDrOGDmOGDneGDly4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19lbmFibGUiIG1zZ2lkPSI3NzI5NzcyMDM5MjA4NjY0NjA2Ij4i4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDruGDlOGDmuGDkOGDruGDmuGDkCDhg6nhg5Dhg6Dhg5fhg5Xhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl9kaXNjb25uZWN0ZWQiIG1zZ2lkPSIxOTQwMjMxNTIxMjc0MTQ3NzcxIj4i4YOY4YOc4YOi4YOU4YOg4YOc4YOU4YOiIOGDmeGDkOGDleGDqOGDmOGDoOGDmCDhg5Dhg6Ag4YOQ4YOg4YOY4YOhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkg4YOT4YOQ4YOZ4YOQ4YOV4YOo4YOY4YOg4YOU4YOR4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJHUFMt4YOY4YOhIOGDq+GDlOGDkeGDnOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJHUFMt4YOY4YOXIOGDk+GDkOGDk+GDkuGDlOGDnOGDmOGDmuGDmCDhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiLhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5jhg6Eg4YOb4YOd4YOX4YOu4YOd4YOV4YOc4YOU4YOR4YOYIOGDkOGDpeGDouGDmOGDo+GDoOGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+IuGDp+GDleGDlOGDmuGDkCDhg6jhg5Thg6Lhg6fhg53hg5Hhg5jhg5zhg5Thg5Hhg5jhg6Eg4YOs4YOQ4YOo4YOa4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IuGDkOGDnuGDmOGDoSDhg6jhg5Thg6Hhg5Dhg67hg5Thg5EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IuGDlOGDmeGDoOGDkOGDnOGDmCDhg6jhg5Thg6Lhg6Dhg5jhg5Dhg5rhg5Phg5Thg5Hhg5Ag4YOQ4YOV4YOi4YOd4YOb4YOQ4YOi4YOj4YOg4YOQ4YOTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4i4YOU4YOZ4YOg4YOQ4YOc4YOYIOGDk+GDkOGDkeGDmuGDneGDmeGDmOGDmuGDmOGDkCDhg5fhg5Dhg6Dhg5Dhg5bhg6Phg5og4YOd4YOg4YOY4YOU4YOc4YOi4YOQ4YOq4YOY4YOQ4YOo4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IuGDlOGDmeGDoOGDkOGDnOGDmCDhg5Phg5Dhg5Hhg5rhg53hg5nhg5jhg5rhg5jhg5Ag4YOe4YOd4YOg4YOi4YOg4YOU4YOi4YOY4YOhIOGDneGDoOGDmOGDlOGDnOGDouGDkOGDquGDmOGDkOGDqOGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iRGF5ZHJlYW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiLhg5Thg5fhg5Thg6Dhg5zhg5Thg6Lhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+IuGDl+GDleGDmOGDl+GDm+GDpOGDoOGDmOGDnOGDkOGDleGDmOGDoSDhg6Dhg5Thg5/hg5jhg5vhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnaW5nX2xhYmVsIiBtc2dpZD0iNDkwMDc0Nzc0NDY1MzA5MjA5Ij4i4YOT4YOQ4YOb4YOj4YOu4YOi4YOV4YOQLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2VkX2xhYmVsIiBtc2dpZD0iODg2NTQxMzA3OTQxNDI0NjA4MSI+IuGDk+GDkOGDm+GDo+GDruGDouGDo+GDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9sYWJlbCIgbXNnaWQ9IjYzMDQxOTAyODUxNzA3MjE0MDEiPiJCbHVldG9vdGgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbXVsdGlwbGVfZGV2aWNlc19sYWJlbCIgbXNnaWQ9IjM5MTIyNDU1NjU2MTM2ODQ3MzUiPiJCbHVldG9vdGggKDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhg5vhg53hg6zhg6fhg53hg5Hhg5jhg5rhg53hg5Hhg5ApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiJCbHVldG9vdGgg4YOS4YOQ4YOb4YOd4YOg4YOX4YOj4YOa4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjY5NjgzNzIyOTcwMTg3NTU4MTUiPiLhg6Hhg5jhg5nhg5Dhg6jhg5nhg5Dhg6jhg5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IuGDkOGDleGDouGDneGDoOGDneGDouGDkOGDquGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX2xvY2tlZF9sYWJlbCIgbXNnaWQ9IjgwNTg2NDY0NDcyNDI1NjU0ODYiPiLhg6Dhg53hg6Lhg5Dhg6rhg5jhg5jhg6Eg4YOp4YOQ4YOZ4YOU4YOi4YOV4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+IuGDqOGDlOGDp+GDleGDkOGDnOGDmOGDoSDhg5vhg5Thg5fhg53hg5Phg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCIgbXNnaWQ9IjUwMTEzMjcwNDg3NDg3NjIyNTciPiLhg5vhg5Phg5Thg5Hhg5Dhg6Dhg5Thg53hg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4i4YOb4YOT4YOU4YOR4YOQ4YOg4YOU4YOd4YOR4YOQIOGDkuGDkOGDm+GDneGDoOGDl+GDo+GDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX21lZGlhX2RldmljZV9sYWJlbCIgbXNnaWQ9IjEzMDI5MDY4MzYzNzI2MDM3NjIiPiLhg5vhg5Thg5Phg5jhg5Ag4YOb4YOd4YOs4YOn4YOd4YOR4YOY4YOa4YOd4YOR4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9sYWJlbCIgbXNnaWQ9Ijc3MjU2NzEzMzU1NTA2OTU1ODkiPiJSU1NJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9lbWVyZ2VuY3lfb25seSIgbXNnaWQ9IjI3MTM3NzQwNDE2NzI4ODY3NTAiPiLhg5vhg67hg53hg5rhg53hg5Mg4YOS4YOQ4YOT4YOQ4YOj4YOT4YOU4YOR4YOU4YOa4YOYIOGDk+GDkOGDruGDm+GDkOGDoOGDlOGDkeGDmOGDoSDhg5bhg5Dhg6Dhg5Thg5Hhg5jhg6Hhg5fhg5Xhg5jhg6EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19zZXR0aW5nc19sYWJlbCIgbXNnaWQ9IjUzMjY1NTY1OTI1NzgwNjU0MDEiPiLhg57hg5Dhg6Dhg5Dhg5vhg5Thg6Lhg6Dhg5Thg5Hhg5giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc190aW1lX2xhYmVsIiBtc2dpZD0iNDYzNTk2OTE4MjIzOTczNjQwOCI+IuGDk+GDoOGDnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3VzZXJfbGFiZWwiIG1zZ2lkPSI1MjM4OTk1NjMyMTMwODk3ODQwIj4i4YOb4YOUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9sYWJlbCIgbXNnaWQ9IjkxMzUzNDQ3MDQ4OTk1NDYwNDEiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm90X2Nvbm5lY3RlZCIgbXNnaWQ9IjcxNzE5MDQ4NDUzNDU1NzM0MzEiPiLhg5Dhg6Ag4YOQ4YOg4YOY4YOhIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDo+GDmuGDmC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vX25ldHdvcmsiIG1zZ2lkPSIyMjIxOTkzMDc3MjIwODU2Mzc2Ij4i4YOl4YOh4YOU4YOa4YOYIOGDkOGDoCDhg5Dhg6Dhg5jhg6EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX29mZl9sYWJlbCIgbXNnaWQ9Ijc1NTg3NzgxMDA4NDM4ODU4NjQiPiJXaS1GaSDhg5Lhg5Dhg5vhg53hg6Dhg5fhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbGFiZWwiIG1zZ2lkPSI2ODkzNTkyOTY0NDYzNjI0MzMzIj4iV2ktRmkg4YOU4YOZ4YOg4YOQ4YOc4YOYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4i4YOj4YOh4YOQ4YOT4YOU4YOc4YOdIOGDlOGDmeGDoOGDkOGDnOGDmCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IuGDkuGDkOGDnOGDkOGDl+GDlOGDkeGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiLhg5Dhg5Xhg6Lhg53hg5vhg5Dhg6Lhg6Phg6Dhg5Dhg5MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4i4YOo4YOU4YOi4YOn4YOd4YOR4YOY4YOc4YOU4YOR4YOU4YOR4YOYIOGDkOGDpSDhg5Lhg5Dhg5vhg53hg6nhg5zhg5Phg5Thg5Hhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiLhg5vhg5Dhg5fhg5bhg5Qg4YOs4YOV4YOT4YOd4YOb4YOY4YOh4YOQ4YOX4YOV4YOY4YOhLCDhg5zhg5Thg5Hhg5jhg6Hhg5vhg5jhg5Thg6Ag4YOT4YOg4YOd4YOhIOGDkuGDkOGDk+GDkOGDpOGDo+GDoOGDquGDmuGDlOGDlyDhg6Xhg5Xhg5Thg5vhg53hg5cuXG7hg6Hhg5jhg6Hhg6Lhg5Thg5vhg5jhg6Eg4YOZ4YOd4YOc4YOi4YOg4YOd4YOa4YOY4YOh4YOX4YOV4YOY4YOh4YOQ4YOqIOGDkuGDkOGDk+GDkOGDpOGDo+GDoOGDquGDmuGDlOGDlyDhg6Xhg5Xhg5Thg5vhg53hg5cuIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWttLWxhbmQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWttLWxhbmQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjE0OGNjMwotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMta20tbGFuZC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yb3RhdGlvbl9sb2NrZWQiIG1zZ2lkPSI3NjA5NjczMDExNDMxNTU2MDkyIj4i4Z6l4Z6h4Z684Z6c4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4oCL4oCL4Z6H4Z624Z6U4Z+L4oCL4Z6f4Z+E4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6R4Z634Z6f4oCL4Z6V4Z+S4Z6K4Z+B4Z6A4Z+UIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWttLXJLSC1sYW5kL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1rbS1yS0gtbGFuZC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTQ4Y2MzCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1rbS1yS0gtbGFuZC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yb3RhdGlvbl9sb2NrZWQiIG1zZ2lkPSI3NjA5NjczMDExNDMxNTU2MDkyIj4i4Z6l4Z6h4Z684Z6c4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4oCL4oCL4Z6H4Z624Z6U4Z+L4oCL4Z6f4Z+E4oCL4Z6A4Z+S4Z6T4Z674Z6E4oCL4Z6R4Z634Z6f4oCL4Z6V4Z+S4Z6K4Z+B4Z6A4Z+UIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyZTFkOTIKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIwNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAwOSwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzE2NDkzNzM0NDg1MDAwNDQ2NiI+IuGeheGfhuGejuGeu+GeheKAi+GelOGfkuGemuGekeGetuGegOGfi+KAi+GelOGfkuGemuGeluGfkOGek+GfkuGekiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfY2xlYXJfYWxsX2J1dHRvbiIgbXNnaWQ9Ijc3NzQ3MjEzNDQ3MTY3MzE2MDMiPiLhnp/hnpjhn5LhnqLhnrbhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9yZW1vdmVfaXRlbV90aXRsZSIgbXNnaWQ9IjYwMjYzOTU4NjgxMjk4NTI5NjgiPiLhnpnhnoDigIvhnoXhn4HhnonigIvhnpbhnrjigIvhnpThnonhn5LhnofhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSI3NzkzNjI0ODY0NTI4ODE4NTY5Ij4i4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19yZWNlbnRfYXBwcyIgbXNnaWQ9IjY1NzYzOTI5NTEwNTM5OTQ2NDAiPiLhnoLhn5LhnpjhnrbhnpPigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpDhn5Lhnpjhnrjhn5ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfZGlzbWlzc19yZWNlbnRzIiBtc2dpZD0iNDU3NjA3NjA3NTIyNjU0MDEwNSI+IuGelOGeiuGet+Gen+GfgeGekuKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekOGfkuGemOGeuOGflyI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X3JlY2VudF9hcHBzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg1NDE3NjA4Mzg2NTg0NTU0MSI+IuGegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekOGfkuGemOGeuCDhn6EiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjEwNDA3ODQzNTk3OTQ4OTA3NDQiPiLhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpDhn5Lhnpjhnrjhn5cgJWQiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX25vdGlmaWNhdGlvbnNfdGl0bGUiIG1zZ2lkPSI0NzU1MjYxMTY3MTkzODMzMjEzIj4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6A4Z624Z6a4oCL4Z6H4Z684Z6T4oCL4Z6K4Z+G4Z6O4Z654Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9vbmdvaW5nX2V2ZW50c190aXRsZSIgbXNnaWQ9IjE2ODI1MDQ1MTMzMTY4NzkyMDIiPiLhnpThnpPhn5Lhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2xhdGVzdF9ldmVudHNfdGl0bGUiIG1zZ2lkPSI2NTk0NzY3NDM4NTc3NTkzMTcyIj4i4Z6A4Z624Z6a4oCL4Z6H4Z684Z6T4oCL4Z6K4Z+G4Z6O4Z654Z6EIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfdGl0bGUiIG1zZ2lkPSIyNzgzMTA0ODA3NTUxMjExNjM5Ij4i4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6Q4Z+S4Z6YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfc3VidGl0bGUiIG1zZ2lkPSIxNzUyMDQwMDYyMDg3ODI5MTk2Ij4i4Z6H4Z634Z6P4oCL4Z6i4Z6f4Z+L4oCL4Z6Q4Z+S4Z6Y4oCL4Z6g4Z6+4Z6Z4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfcGVyY2VudF9mb3JtYXQiIG1zZ2lkPSIxMDc3MjQ0OTQ5MzE4MjYxNzYxIj4i4Z6T4Z+F4oCL4Z6f4Z6b4Z+LIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkJSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZF9jaGFyZ2VyIiBtc2dpZD0iNDU0OTEwNTk5Njc0MDUyMjUyMyI+IuGemOGet+Gek+KAi+GeguGetuGfhuGekeGfkuGemuKAi+GegOGetuGemuKAi+GelOGeieGfkuGeheGevOGem+KAi+Gej+GetuGemOKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOGflFxu4Z6U4Z+S4Z6a4Z6+4oCL4Z6P4Z+C4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6Q4Z+S4Z6Y4oCL4Z6K4Z+C4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6V4Z+S4Z6K4Z6b4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfd2h5IiBtc2dpZD0iNzI3OTE2OTYwOTUxODM4NjM3MiI+IuGegOGetuGemuKAi+GelOGfkuGemuGevuKAi+GekOGfkuGemCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iMzAyMzg4OTkxNjY5OTI3MDIyNCI+IuGegOGetuGemuKAi+GegOGfhuGejuGej+GfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfd2lmaV9idXR0b24iIG1zZ2lkPSIxNzMzOTI4MTUxNjk4MzExOTIzIj4i4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQ4Nzk4Nzk2OTg1MDA5NTUzMDAiPiLhnpbhn4HhnpvigIvhnofhnrfhn4figIvhnpnhnpPhn5Lhno/hnqDhn4Thn4ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fcm90YXRpb24iIG1zZ2lkPSIzNzkwNDgyNTQxMzU3Nzk4NDIxIj4i4Z6U4Z6E4Z+S4Z6c4Z634Z6b4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4oCL4Z6f4Z+S4Z6c4Z+Q4Z6Z4oCL4Z6U4Z+S4Z6a4Z6c4Z6P4Z+S4Z6P4Z63Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19tdXRlX2xhYmVsIiBtc2dpZD0iNTU0NjgyNTQ5OTE3NDI5Mzk2Ij4i4Z6f4Z+S4Z6E4Z624Z6P4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MTE0NTM2MTQ5NjIzMjQ2NzQiPiLhnp/hn5Lhnpzhn5DhnpnhnpThn5Lhnprhnpzhno/hn5Lhno/hnrciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX25vdGlmaWNhdGlvbnMiIG1zZ2lkPSIzOTcxNDYxNzYyODA5MDUxMzciPiLhnoDhnrbhnprigIvhnofhnrzhnpPigIvhnorhn4bhno7hnrnhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4i4Z6U4Z624Z6T4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6U4Z+K4Z+S4Z6b4Z684Z6S4Z684Z6fIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9pbnB1dF9tZXRob2Rfc2V0dGluZ3NfY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSIzNTA0MjkyNDcxNTEyMzE3ODI3Ij4i4Z6a4Z+A4Z6U4Z6F4Z+G4oCL4Z6c4Z634Z6S4Z644Z6f4Z624Z6f4Z+S4Z6P4Z+S4Z6a4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6bIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl91c2VfcGh5c2ljYWxfa2V5Ym9hcmQiIG1zZ2lkPSI3NTUxOTAzMDg0NDE2MDU3ODEwIj4i4Z6A4Z+S4Z6K4Z624Z6a4oCL4Z6F4Z674Z6F4oCL4Z6W4Z634Z6P4Z6U4Z+S4Z6a4Z624Z6A4Z6KIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjgzNDY5ODAwMTI3MTU2MjA1NyI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IOGeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+Gep+GelOGegOGemuGejuGfjeKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iNTE3MTc3NTQxMTE3ODg2NTc1MCI+IuGesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuCA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IOGeheGevOGem+KAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+Gep+GelOGegOGemuGejuGfjeKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iNTE2MTIwNTI1ODYzNTI1MzIwNiI+IuGelOGevuGegCA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+IOGeluGfgeGem+KAi+GelOGetuGek+KAi+Gel+GfkuGeh+GetuGelOGfi+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOKAi+Gek+GfgeGfhz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iMzgwODk4NDkzMTgzMDIyOTg4OCI+IuGelOGevuGegCA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+IOGeluGfgeGem+KAi+GelOGetuGek+KAi+Gel+GfkuGeh+GetuGelOGfi+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3VyaV9wcm9tcHQiIG1zZ2lkPSI1MTM0NTA2MjE0MTM3MzMzNDMiPiLhnoLhn5LhnpjhnrbhnpPigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpThnrbhnpPigIvhnorhn4bhnqHhnr7hnoTigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnofhnrbigIvhnpjhnr3hnpnigIvhnqfhnpThnoDhnprhno7hn43igIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrjhn5Qg4Z6f4Z+S4Z6c4Z+C4Z6E4Z6Z4Z6b4Z+L4oCL4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4oCL4Z6i4Z+G4Z6W4Z644oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6T4Z+B4Z+H4oCL4Z6T4Z+FIDx4bGlmZjpnIGlkPSJVUkwiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfdXNiX2FjY2Vzc29yeSIgbXNnaWQ9IjQ5NjYyNjUyNjM0NjUxODEzNzIiPiLhnqfhnpThnoDhnprhno7hn43igIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF92aWV3IiBtc2dpZD0iNjMwNDU2NTU1MzIxODE5Mjk5MCI+IuGemOGevuGemyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfZGV2aWNlIiBtc2dpZD0iMTQ1MDI4NzQzNzAxNzMxNTkwNiI+IuGelOGfkuGemuGevuKAi+Gej+GetuGemOKAi+Gem+GfhuGek+GetuGfhuGeiuGevuGemOKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+Gep+GelOGegOGemuGejuGfjeKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOKAi+Gek+GfgeGfhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfYWNjZXNzb3J5IiBtc2dpZD0iMTIxMDk1NDU3Njk3OTYyMTU5NiI+IuGelOGfkuGemuGevuKAi+Gej+GetuGemOKAi+Gem+GfhuGek+GetuGfhuGeiuGevuGemOKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegeGfkuGen+GfguKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOKAi+Gek+GfgeGfhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfdGl0bGUiIG1zZ2lkPSI0NTEzOTE4MzkzMzg3MTQxOTQ5Ij4i4Z6i4Z6T4Z674Z6J4Z+S4Z6J4Z624Z6P4oCL4Z6A4Z624Z6a4oCL4Z6A4Z+C4oCL4Z6A4Z+G4Z6g4Z674Z6f4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z64PyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfbWVzc2FnZSIgbXNnaWQ9IjIyMjAxNDM4NTU5MTIzNzY0OTYiPiLhnp/hn5LhnpPhnrbhnpjigIvhnpjhn5LhnprhnrbhnpjigIvhnorhn4PigIsgUlNBIOGemuGelOGen+Gfi+KAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+GeguGeuuGfliBcbjx4bGlmZjpnIGlkPSJGSU5HRVJQUklOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IuGeouGek+Geu+GeieGfkuGeieGetuGej+KAi+Geh+GetuKAi+Gek+Get+GeheGfkuGeheKAi+Gen+GemOGfkuGemuGetuGelOGfi+KAi+GegOGeu+GfhuGeluGfkuGemeGevOGekeGfkOGemuKAi+Gek+GfgeGfhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IuGeluGehOGfkuGemuGeuOGegOKAi+KAi+GeiuGevuGemOGfkuGelOGeuOKAi+GesuGfkuGemeKAi+GeluGfgeGeieKAi+GeouGfgeGegOGfkuGemuGehOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLhnpHhnrbhnonigIvhnorhnr7hnpjhn5LhnpThnrjigIvhnrLhn5LhnpnigIvhnpbhn4HhnonigIvhnqLhn4HhnoDhn5LhnprhnoThn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4i4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6a4Z6A4Z+S4Z6f4Z624Z6R4Z674Z6A4oCL4Z6a4Z684Z6U4Z6Q4Z6P4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4oCmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4i4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6a4Z6A4Z+S4Z6f4Z624Z6R4Z674Z6A4oCL4Z6a4Z684Z6U4Z6Q4Z6P4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+LLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLhnprhnrzhnpThnpDhno/igIvhnqLhn4HhnoDhn5LhnprhnoThn4vigIvhnoDhn4bhnpbhnrvhnoTigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnprhnoDhn5Lhnp/hnrbhnpHhnrvhnoDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RpdGxlIiBtc2dpZD0iNjQ2MTg2NTk2MDk2MTQxNDk2MSI+IuGelOGetuGek+KAi+GeheGetuGelOGfi+KAi+GemeGegOKAi+GemuGevOGelOGekOGej+KAi+GeouGfgeGegOGfkuGemuGehOGfi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2ZWRfdGV4dCIgbXNnaWQ9IjExNTI4Mzk2NDc2Nzc1NTg4MTUiPiLhnpThn4nhn4cg4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6Y4Z6+4Z6b4oCL4Z6a4Z684Z6U4Z6Q4Z6P4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGl0bGUiIG1zZ2lkPSI3MDU3ODExMTY3NDY5MjI3NzEiPiLhnpjhnrfhnpPigIvhnqLhnrbhnoXigIvhnoXhnrbhnpThn4vigIvhnpnhnoDigIvhnprhnrzhnpTigIvhnpDhno/igIvhnqLhn4HhnoDhn5LhnprhnoThn4vigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X2ZhaWxlZF90ZXh0IiBtc2dpZD0iODEzNDAxMTI2OTU3MjQxNTQwMiI+IuGemOGet+Gek+KAi+GeouGetuGeheKAi+GemuGegOGfkuGen+GetuGekeGeu+GegOKAi+GemuGevOGelOGekOGej+KAi+GeouGfgeGegOGfkuGemuGehOGfi+KAi+GflCDhnqfhnpThnoDhnprhno7hn43igIvhnpXhn5LhnpHhnrvhnoDigIvhnqLhnrbhnoXigIvhnoDhn4bhnpbhnrvhnoTigIvhnpThn5Lhnprhnr7igIvigIvhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHJlZmVyZW5jZV90aXRsZSIgbXNnaWQ9IjY1NTEwNTAzNzczODg4ODI3ODciPiLhnofhnpjhn5Lhnprhnr7hnp/igIvhnpXhn5LhnpHhn4HhnprigIvhnq/hnoDhnp/hnrbhnprigIvhno/hnrbhnpjigIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfbXRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjQzMzM1MDQ0MTM1NjMwMjM2MjYiPiLhnpfhn5LhnofhnrbhnpThn4vigIvhnofhnrbigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnoXhnrbhnoDhn4vigIvhnpjhn4Hhnozhn4AgKE1UUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfcHRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9Ijc1MTcxMjc1NDAzMDE2MjU3NTEiPiLhnpfhn5LhnofhnrbhnpThn4vigIvhnofhnrbigIvhnpjhn4nhnrbhnp/hn4rhnrjhnpPigIvhnpDhno8gKFBUUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsZXJfY2RfYnV0dG9uX3RpdGxlIiBtc2dpZD0iMjMxMjY2NzU3ODU2MjIwMTU4MyI+IuGeiuGfhuGeoeGevuGehOKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GeleGfkuGekeGfgeGemuKAi+Ger+GegOGen+GetuGemiBBbmRyb2lkIOGen+GemOGfkuGemuGetuGelOGfiyBNYWMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhY2siIG1zZ2lkPSI1NjcwMTE1Mzg5OTQ0MjkxMjAiPiLhnpDhnpnhnoDhn5Lhnprhn4ThnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4i4Z6C4Z+B4Z6g4oCL4Z6R4Z+G4Z6W4Z+Q4Z6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4i4Z6Y4Z+J4Z664Z6T4Z674Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4i4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6Q4Z+S4Z6Y4Z644Z+XIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4i4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6AIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+IuGemOGfieGetuGen+GfiuGeuOGek+KAi+GekOGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4i4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6U4Z+K4Z684Z6P4Z674Z6E4oCL4Z6c4Z634Z6S4Z644Z6f4Z624Z6f4Z+S4Z6P4Z+S4Z6a4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IuGelOGfiuGevOGej+Geu+GehOKAi+GeluGehOGfkuGemuGeuOGegOKAi+Gej+GfkuGemuGevOGenOKAi+GeguGfkuGek+GetuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4i4Z6W4Z6E4Z+S4Z6a4Z644Z6AL+GelOGehOGfkuGemuGeveGemOKAi+KAi+GeouGfgeGegOGfkuGemuGehOGfi+KAi+GeluGeuOKAi+KAi+GekeGfheGekuGfhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX2Nvbm5lY3RlZCIgbXNnaWQ9IjI3MDcwMjc2MzMyNDI5ODMzNzAiPiLhnpThnrbhnpPigIvhno/hnpfhn5LhnofhnrbhnpThn4vigIvhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9kaXNjb25uZWN0ZWQiIG1zZ2lkPSI3NDE2NjQ4NjY5OTc2ODcwMTc1Ij4i4Z6U4Z624Z6T4oCL4Z6V4Z+S4Z6K4Z624Z6F4Z+L4oCL4oCL4Z6U4Z+K4Z+S4Z6b4Z684Z6S4Z684Z6f4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19iYXR0ZXJ5IiBtc2dpZD0iMzU4MzQzMDIyMzUyODIwOTQ2Ij4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6Q4Z+S4Z6Y4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X29uZV9iYXIiIG1zZ2lkPSI3Nzc0ODg3NzIxODkxMDU3NTIzIj4i4Z6Q4Z+S4Z6Y4oCL4Z6Y4Z694Z6Z4oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3R3b19iYXJzIiBtc2dpZD0iODUwMDY1MDQzODczNTAwOTk3MyI+IuGekOGfkuGemOKAi+GeluGeuOGemuKAi+GegOGetuGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90aHJlZV9iYXJzIiBtc2dpZD0iMjMwMjk4MzMzMDg2NTA0MDQ0NiI+IuGekOGfkuGemOKAi+GekeGetuGfhuGehOKAi+GelOGeuOKAi+KAi+GegOGetuGfhuKAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9mdWxsIiBtc2dpZD0iODkwOTEyMjQwMTcyMDE1ODU4MiI+IuGekOGfkuGemOKAi+GeluGfgeGeieKAi+GeoOGevuGemeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fcGhvbmUiIG1zZ2lkPSI0ODk0NzA4OTM3MDUyNjExMjgxIj4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9vbmVfYmFyIiBtc2dpZD0iNjg3Njk5Mjc4MTMyNjY0MTE1Ij4i4Z6f4Z+B4Z6c4Z624oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6Y4Z694Z6Z4oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV90d29fYmFycyIgbXNnaWQ9IjgzODQ5MDUzODI4MDQ4MTUyMDEiPiLhnp/hn4HhnpzhnrbigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnpbhnrjhnprigIvhnoDhnrbhn4bhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3RocmVlX2JhcnMiIG1zZ2lkPSI4NTIxOTA0ODQzOTE5OTcxODg1Ij4i4Z6f4Z+B4Z6c4Z624oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6U4Z644oCL4Z6A4Z624Z+G4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9zaWduYWxfZnVsbCIgbXNnaWQ9IjY0NzE4MzQ4Njg1ODA3NTc4OTgiPiLhnp/hn4HhnpzhnrbigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnpbhn4Hhnonhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2RhdGEiIG1zZ2lkPSI0NzkxOTY2Mjk1MDk2ODY3NTU1Ij4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX29uZV9iYXIiIG1zZ2lkPSIxNDE1NjI1ODMzMjM4MjczNjI4Ij4i4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6Y4Z694Z6Z4oCL4oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3R3b19iYXJzIiBtc2dpZD0iNjE2NjAxODQ5MjM2MDQzMjA5MSI+IuGekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GeluGeuOGemuKAi+KAi+GegOGetuGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90aHJlZV9iYXJzIiBtc2dpZD0iOTE2NzY3MDQ1MjM5NTAzODUyMCI+IuGekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GelOGeuOKAi+GegOGetuGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3MDgzODQ2MDgxMjQ1MTkzNjkiPiLhnp/hnonhn5LhnonhnrbigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpbhn4Hhnonhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb2ZmIiBtc2dpZD0iMzE3NzM4MDI5NjY5NzkzMzYyNyI+IuGelOGet+GekeKAi+GenOGfieGetuGemeGeoOGfkuGenOGetuGemeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2lmaSIgbXNnaWQ9IjE0MjU0NzY1NTE4Mjc5MjQ0NzQiPiLhnpThnrbhnpPigIvhnpXhn5LhnorhnrbhnoXhn4vigIvhnpzhn4nhnrbhnpnhnqDhn5Lhnpzhnrbhnpnhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiLhnp/hnonhn5LhnonhnrbigIvhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpnigIvhnpjhnr3hnpnigIvhnoDhnrbhn4bhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfdHdvX2JhcnMiIG1zZ2lkPSI0OTk0Mjc0MjUwNDk3MjYyNDM0Ij4i4Z6f4Z+B4Z6c4Z624oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6Z4oCL4Z6W4Z644Z6a4oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3RocmVlX2JhcnMiIG1zZ2lkPSIzNDk1NzU1MDQ0Mjc2NTg4Mzg0Ij4i4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6Z4oCL4Z6U4Z644oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IuGen+GeieGfkuGeieGetuKAi+GenOGfieGetuGemeGeoOGfkuGenOGetuGemeKAi+GeluGfgeGeieGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2ltYXgiIG1zZ2lkPSI0MzI5MTgwMTI5NzI3NjMwMzY4Ij4i4Z6C4Z+S4Z6Y4Z624Z6TIFdpTUFYIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfb25lX2JhciIgbXNnaWQ9IjQxNzA5OTQyOTkwMTE4NjM2NDgiPiJXaU1BWCDhnpjhnr3hnpnigIvhnoDhnrbhn4bhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3R3b19iYXJzIiBtc2dpZD0iOTE3NjIzNjg1ODMzNjUwMjI4OCI+IldpTUFYIOGeluGeuOGemuKAi+GegOGetuGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiJXaU1BWCDhnpThnrjigIvhnoDhnrbhn4bhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3NpZ25hbF9mdWxsIiBtc2dpZD0iMjc2ODA4OTk4Njc5NTU3OTU1OCI+IuGen+GeieGfkuGeieGetiBXaU1BWCDhnpbhn4Hhnonhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpZ25hbCIgbXNnaWQ9IjcwNjQ2NDUzMjA3ODI1ODUxNjciPiLhnoLhn5LhnpjhnrbhnpPigIvhnp/hnonhn5Lhnonhnrbhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4i4Z6Y4Z634Z6T4oCL4Z6U4Z624Z6T4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV96ZXJvX2JhcnMiIG1zZ2lkPSIzODA2MDYwMjI0NDY3MDI3ODg3Ij4i4Z6f4Z684Z6T4Z+S4Z6Z4oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9vbmVfYmFyIiBtc2dpZD0iMTY4NTczMDExMzE5MjA4MTg5NSI+IuGemOGeveGemeKAi+GegOGetuGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHdvX2JhcnMiIG1zZ2lkPSI2NDM3MzYzNjQ4Mzg1MjA2Njc5Ij4i4Z6W4Z644Z6a4oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90aHJlZV9iYXJzIiBtc2dpZD0iMjY0ODI0MTQxNTExOTM5NjY0OCI+IuGelOGeuOKAi+GegOGetuGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI5MTIyOTIyODg2NTE5Njc2ODM5Ij4i4Z6f4Z6J4Z+S4Z6J4Z624oCL4Z6W4Z+B4Z6J4oCL4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29uIiBtc2dpZD0iMjM4NTI1NDY5MzYyNDM0NTI2NSI+IuGelOGevuGegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vZmYiIG1zZ2lkPSI2NDc1NTA4MTU3Nzg2ODUzMTU3Ij4i4Z6U4Z634Z6RIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX2Nvbm5lY3RlZCIgbXNnaWQ9IjgzNjYyNTY2OTM3MTk0OTk2NjUiPiLhnpThnrbhnpPigIvhno/hnpfhn5LhnofhnrbhnpThn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9ncHJzIiBtc2dpZD0iMTYwNjQ3NzIyNDQ4Njc0Nzc1MSI+IkdQUlMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8xeCIgbXNnaWQ9Ijk5NDEzMzQ2ODEyMDI0NDAxOCI+IjEgWCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2hzcGEiIG1zZ2lkPSIyMDMyMzI4ODU1NDYyNjQ1MTk4Ij4iSFNQQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzNnIiBtc2dpZD0iODYyODU2MjMwNTAwMzU2ODI2MCI+IjNHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMy41ZyIgbXNnaWQ9Ijg2NjQ4NDU2MDk5ODE2OTIwMDEiPiIzLjVHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fNGciIG1zZ2lkPSI3NzQxMDAwNzUwNjMwMDg5NjEyIj4iNEciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9sdGUiIG1zZ2lkPSI1NDEzNDY4ODA4NjM3NTQwNjU4Ij4iTFRFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fY2RtYSIgbXNnaWQ9IjYxMzI2NDgxOTM5Nzg4MjMwMjMiPiJDRE1BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fcm9hbWluZyIgbXNnaWQ9IjU5NzczNjIzMzM0NjY1NTYwOTQiPiLhnprhn4nhnrzigIvhnpjhnrjhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9lZGdlIiBtc2dpZD0iNDQ3NzQ1NzA1MTYzMTk3OTI3OCI+IkVkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl93aWZpIiBtc2dpZD0iMjMyNDQ5Njc1NjU5MDY0NTIyMSI+IuGenOGfieGetuGemeGeoOGfkuGenOGetuGemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fc2ltIiBtc2dpZD0iODI3NDAxNzExODQ3MjQ1NTE1NSI+IuGeguGfkuGemOGetuGek+KAi+Gen+GfiuGeuOGemOKAi+GegOGetuGej+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX3RldGhlciIgbXNnaWQ9IjQxMDI3ODQ0OTgxNDAyNzE5NjkiPiLhnoDhnrbhnprigIvhnpfhn5LhnofhnrbhnpThn4vigIvhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2FpcnBsYW5lX21vZGUiIG1zZ2lkPSI4MzQ3NDg5OTk3OTA3NjMwOTIiPiLhnprhnpThn4DhnpTigIvigIvhnpbhn4Hhnpvhnofhnrfhn4figIvhnpnhnpPhn5Lhno/hnqDhn4Thn4ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfbGV2ZWwiIG1zZ2lkPSI3NDUxNDc0MTg3MTEzMzcxOTY1Ij4i4Z6Q4Z+S4Z6YIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhnpfhnrbhnoLhnprhnpnhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9Ijc5OTU4MzkxMTIzMTg5MzM4MCI+IuGegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GelOGfkuGemuGeluGfkOGek+GfkuGekuKAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uc19idXR0b24iIG1zZ2lkPSI0NDk4MDAwMzY5Nzc5NDIxODkyIj4i4Z6A4Z624Z6a4oCL4Z6H4Z684Z6T4oCL4Z6K4Z+G4Z6O4Z654Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZW1vdmVfbm90aWZpY2F0aW9uIiBtc2dpZD0iMzYwMzA5OTUxNDkwMjE4MjM1MCI+IuGen+GemOGfkuGeouGetuGej+KAi+GegOGetuGemuKAi+Geh+GevOGek+KAi+GeiuGfhuGejuGeueGehOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2VuYWJsZWQiIG1zZ2lkPSIzNTExNDY5NDk5MjQwMTIzMDE5Ij4i4Z6U4Z624Z6T4oCL4Z6U4Z6+4Z6AIEdQUyDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19hY3F1aXJpbmciIG1zZ2lkPSI4OTU5MzMzMzUxMDU4OTY3MTU4Ij4i4Z6R4Z6R4Z694Z6b4oCL4oCLIEdQUyDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3R0eV9lbmFibGVkIiBtc2dpZD0iNDYxMzIwMDM2NTM3OTQyNjU2MSI+IuGelOGetuGek+KAi+GelOGevuGegOKAi+GemOGfieGetuGen+GfiuGeuOGek+KAi+GeouGehOGfkuGeguGeu+Gem+GeuOGem+GfgeGegSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3ZpYnJhdGUiIG1zZ2lkPSI2NjY1ODUzNjMzNjQxNTUwNTUiPiLhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnprhn4ThnpHhn43igIvhnonhn5Dhnprhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl9zaWxlbnQiIG1zZ2lkPSI5MDYxMjQzMzA3OTM5MTM1MzgzIj4i4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6a4Z+E4Z6R4Z+N4oCL4Z6f4Z+S4Z6E4Z624Z6P4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnRzX2l0ZW1fZGlzbWlzc2VkIiBtc2dpZD0iNjgwMzU3NDkzNTA4NDg2NzA3MCI+Ijx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiDhnpThnorhnrfhnp/hn4HhnpLhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdGlmaWNhdGlvbl9kaXNtaXNzZWQiIG1zZ2lkPSI4NTQyMTEzODcxODYzMDY5MjciPiLhnpThnrbhnpPigIvhnpThnorhnrfhnp/hn4HhnpLigIvhnoDhnrbhnprigIvhnofhnrzhnpPhnorhn4bhno7hnrnhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfbm90aWZpY2F0aW9uX3NoYWRlIiBtc2dpZD0iNDY5MDI3NDg0NDQ0NzUwNDIwOCI+IuGeluGejuGfjOKAi+GegOGetuGemuKAi+Geh+GevOGek+KAi+GeiuGfhuGejuGeueGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19xdWlja19zZXR0aW5ncyIgbXNnaWQ9IjYxODYzNzg0MTE1ODI0MzcwNDYiPiLhnoDhnrbhnprigIvhnoDhn4bhno7hno/hn4vigIvhnprhnqDhn5Dhnp/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfcmVjZW50X2FwcHMiIG1zZ2lkPSI5MDE0MDMyOTE2NDEwNTkwMDI3Ij4i4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6Q4Z+S4Z6Y4Z644oCL4Z+X4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc191c2VyIiBtc2dpZD0iMTEwNDg0NjY5OTg2OTQ3Njg1NSI+IuGeouGfkuGek+GegOKAi+GelOGfkuGemuGeviA8eGxpZmY6ZyBpZD0iVVNFUiI+JXM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3Nfd2lmaSIgbXNnaWQ9IjYwOTk3ODEwMzE2Njk3Mjg3MDkiPiI8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19tb2JpbGUiIG1zZ2lkPSI0ODc2ODA2NTY0MDg2MjQxMzQxIj4i4Z6F4Z6b4Z+Q4Z6PIDx4bGlmZjpnIGlkPSJTSUdOQUwiPiUxJHM8L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iVFlQRSI+JTIkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJORVRXT1JLIj4lMyRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4i4Z6Q4Z+S4Z6YIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4i4Z6a4Z6U4Z+A4Z6U4Z6W4Z+B4Z6b4oCL4Z6H4Z634Z+H4oCL4Z6Z4Z6T4Z+S4Z6P4oCL4Z6g4Z+E4Z+HIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IuGelOGfiuGfkuGem+GevOGekuGevOGenyA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IuGekeGeuOGej+GetuGfhuGehCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IuGegOGfhuGejuGej+Gfi+KAi+Gen+GfhuGeoeGfgeGehOKAi+GemuGfhOGekeGfjeKAi+Gen+GemOGfkuGemuGetuGelOGfiyA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IuGelOGetuGek+KAi+GelOGet+GekeKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemSAyRy0zRyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IuGelOGetuGek+KAi+GelOGet+GekeKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemSA0RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX21vYmlsZV90aXRsZSIgbXNnaWQ9IjEwNDYwNDcyNDg4NDQ4MjEyMDIiPiLhnpThnrbhnpPigIvhnpThnrfhnpHigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnoXhnpvhn5Dhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjIwODY4MTUzMDQ4NTg5NjQ5NTQiPiLhnpThnrbhnpPigIvhnpThnrfhnpHigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZyIgbXNnaWQ9IjM4NTMxMTcyNjkwNTE4MDYyODAiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnorhnpvhn4vigIvhnorhn4LhnpPigIvhnoDhn4bhno7hno/hn4vigIvhnpThn5Lhnprhnr7igIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpThnrbhnpPigIvhnpThnonhn5LhnofhnrbhnoDhn4vhn5Rcblxu4Z6U4Z6+4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z6+4Z6A4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6h4Z6+4Z6E4Z6c4Z634Z6JIOGeouGfkuGek+GegOKAi+GeouGetuGeheKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GelOGfkuGeiuGevOGemuKAi+GeiuGfhOGemeKAi+GelOGfkuGemuGej+Get+GelOGej+GfkuGej+Get+KAi+GegOGemuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX2VuYWJsZSIgbXNnaWQ9Ijc3Mjk3NzIwMzkyMDg2NjQ2MDYiPiLhnpThnr7hnoDigIvigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnqHhnr7hnoThnpzhnrfhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl9kaXNjb25uZWN0ZWQiIG1zZ2lkPSIxOTQwMjMxNTIxMjc0MTQ3NzcxIj4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6A4Z624Z6a4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6i4Z+K4Z644Z6T4Z6S4Z664Z6O4Z634Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4i4Z6U4Z624Z6T4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiLhnp/hn5Lhnpzhn4LhnoThnprhnoAgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IuGekeGeuOGej+GetuGfhuGehOKAi+KAi+KAi+KAi+KAi+GegOGfhuGejuGej+Gfi+KAi+GeiuGfhOGemSBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiLhnp/hn4bhno7hnr7igIvhnpHhnrjhno/hnrbhn4bhnoTigIvhnp/hnoDhnpjhn5LhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiLhnp/hnpjhn5LhnqLhnrbhno/igIvhnoDhnrbhnprigIvhnofhnrzhnpPigIvhnorhn4bhno7hnrnhnoTigIvhnpHhnrbhn4bhnoThnqLhnp/hn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4i4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiLhnpPhnrnhnoTigIvhnpThnoThn5LhnpzhnrfhnpvigIvhnqLhn4HhnoDhn5LhnprhnoThn4vigIvhnp/hn5Lhnpzhn5DhnpnigIvhnpThn5Lhnprhnpzhno/hn5Lhno/hnrfhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IuGeouGfgeGegOGfkuGemuGehOGfi+KAi+Geh+GetuGelOGfi+KAi+Gen+GfhOKAi+GegOGfkuGek+Geu+GehOKAi+GekeGet+Gen+KAi+GeleGfkuGeiuGfgeGegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLhnpThnrbigIvhnpPigIvhnoXhnrbhnoDhn4vigIvhnp/hn4TigIvhnqLhn4HhnoDhn5LhnprhnoThn4vigIvigIvhnoDhn5LhnpPhnrvhnoTigIvhnpHhnrfhnp/igIvhnpThnonhn5Lhnojhnprhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4i4Z6A4Z6a4Z6O4Z64IERlc3NlcnQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4i4Z6f4Z+S4Z6a4Z6Y4Z6+4oCL4Z6f4Z+S4Z6a4Z6Y4Z+DIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4i4Z6i4Z+K4Z644Z6f4Z664Z6a4Z6O4Z634Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLhnprhnpThn4DhnpThnpbhn4HhnpvigIvigIvhnofhnrfhn4figIvhnpnhnpPhn5Lhno/hnqDhn4Thn4ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnaW5nX2xhYmVsIiBtc2dpZD0iNDkwMDc0Nzc0NDY1MzA5MjA5Ij4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6Q4Z+S4Z6YIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiA8eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2VkX2xhYmVsIiBtc2dpZD0iODg2NTQxMzA3OTQxNDI0NjA4MSI+IuGelOGetuGek+KAi+GelOGeieGfkuGeheGevOGem+KAi+GeluGfgeGeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9sYWJlbCIgbXNnaWQ9IjYzMDQxOTAyODUxNzA3MjE0MDEiPiLhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbXVsdGlwbGVfZGV2aWNlc19sYWJlbCIgbXNnaWQ9IjM5MTIyNDU1NjU2MTM2ODQ3MzUiPiLhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp8gKOGep+GelOGegOGemuGejuGfjSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiLhnpThnrfhnpHigIvhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNjk2ODM3MjI5NzAxODc1NTgxNSI+IuGeluGek+GfkuGem+GeuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX3VubG9ja2VkX2xhYmVsIiBtc2dpZD0iMzM2MDU0OTMwMzYyNTgwNTg0Ij4i4Z6U4Z6E4Z+S4Z6c4Z634Z6b4oCL4oCL4Z6f4Z+S4Z6c4Z+Q4Z6Z4oCL4Z6U4Z+S4Z6a4Z6c4Z6P4Z+S4Z6P4Z63Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fbG9ja2VkX2xhYmVsIiBtc2dpZD0iODA1ODY0NjQ0NzI0MjU2NTQ4NiI+IuGelOGetuGek+KAi+GeheGetuGegOGfi+KAi+Gen+GfhOKAi+GegOGetuGemuKAi+GelOGehOGfkuGenOGet+GemyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ltZV9sYWJlbCIgbXNnaWQ9IjcwNzM0NjMwNjQzNjk0Njg0MjkiPiLhnpzhnrfhnpLhnrjhnp/hnrbhnp/hn5Lhno/hn5LhnprigIvhnpThnonhn5LhnoXhnrzhnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCIgbXNnaWQ9IjUwMTEzMjcwNDg3NDg3NjIyNTciPiLhnpHhnrjigIvhno/hnrbhn4bhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4i4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4Z6U4Z634Z6RIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbWVkaWFfZGV2aWNlX2xhYmVsIiBtc2dpZD0iMTMwMjkwNjgzNjM3MjYwMzc2MiI+IuGep+GelOGegOGemuGejuGfjeKAi+GemOGfgeGejOGfgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4i4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6P4Z+C4oCL4Z6A4Z624Z6a4oCL4Z6g4Z+F4oCL4Z6W4Z+B4Z6b4oCL4Z6i4Z624Z6f4Z6T4Z+S4Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfc2V0dGluZ3NfbGFiZWwiIG1zZ2lkPSI1MzI2NTU2NTkyNTc4MDY1NDAxIj4i4Z6A4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfdGltZV9sYWJlbCIgbXNnaWQ9IjQ2MzU5NjkxODIyMzk3MzY0MDgiPiLhnpbhn4Hhnpvhnpzhn4HhnpvhnrYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc191c2VyX2xhYmVsIiBtc2dpZD0iNTIzODk5NTYzMjEzMDg5Nzg0MCI+IuGegeGfkuGeieGeu+GfhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbGFiZWwiIG1zZ2lkPSI5MTM1MzQ0NzA0ODk5NTQ2MDQxIj4i4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNzE3MTkwNDg0NTM0NTU3MzQzMSI+IuGemOGet+Gek+KAi+GelOGetuGek+KAi+Gej+Gel+GfkuGeh+GetuGelOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm9fbmV0d29yayIgbXNnaWQ9IjIyMjE5OTMwNzcyMjA4NTYzNzYiPiLhnoLhn5LhnpjhnrbhnpPigIvhnpThno7hn5LhnorhnrbhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX29mZl9sYWJlbCIgbXNnaWQ9Ijc1NTg3NzgxMDA4NDM4ODU4NjQiPiLhnpThnrfhnpHigIvhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbGFiZWwiIG1zZ2lkPSI2ODkzNTkyOTY0NDYzNjI0MzMzIj4i4Z6U4Z6E4Z+S4Z6g4Z624oCL4Z6J4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4i4oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6l4Z6P4oCL4Z6B4Z+S4Z6f4Z+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4i4Z6W4Z6T4Z+S4Z6b4Z66Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IuGen+GfkuGenOGfkOGemeGelOGfkuGemuGenOGej+GfkuGej+GetyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiLhnprhnpThn4DhnpTigIvigIvhnpThnonhn5LhnoXhn5Lhnprhnrbhnp/igIvhnpbhno7hn4wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiLhnprhnpThn4DhnpTigIvhnoDhnpjhn5Lhnprhnrfhno/igIvhnpbhno7hn4zigIvhnpThn5LhnprigIvhnp/hnr7igIvhnprigIvhnqHhnr7hnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+IuGemuGelOGfgOGelOKAi+GegOGfguKAi+GeluGejuGfjCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4i4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6i4Z624Z6F4oCLXG7hno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhno/hn5Lhnprhnr3hno/hnpbhnrfhnpPhnrfhno/hn5LhnpkiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMta20vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWttL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5NzI5MjUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWttL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjA0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTY0OTM3MzQ0ODUwMDA0NDY2Ij4i4Z6F4Z+G4Z6O4Z674Z6F4oCL4Z6U4Z+S4Z6a4Z6R4Z624Z6A4Z+L4oCL4Z6U4Z+S4Z6a4Z6W4Z+Q4Z6T4Z+S4Z6SIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9jbGVhcl9hbGxfYnV0dG9uIiBtc2dpZD0iNzc3NDcyMTM0NDcxNjczMTYwMyI+IuGen+GemOGfkuGeouGetuGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X3JlbW92ZV9pdGVtX3RpdGxlIiBtc2dpZD0iNjAyNjM5NTg2ODEyOTg1Mjk2OCI+IuGemeGegOKAi+GeheGfgeGeieKAi+GeluGeuOKAi+GelOGeieGfkuGeh+GeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9Ijc3OTM2MjQ4NjQ1Mjg4MTg1NjkiPiLhnpbhn5Dhno/hn4zhnpjhnrbhnpPigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX3JlY2VudF9hcHBzIiBtc2dpZD0iNjU3NjM5Mjk1MTA1Mzk5NDY0MCI+IuGeguGfkuGemOGetuGek+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekOGfkuGemOGeuOGflyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9kaXNtaXNzX3JlY2VudHMiIG1zZ2lkPSI0NTc2MDc2MDc1MjI2NTQwMTA1Ij4i4Z6U4Z6K4Z634Z6f4Z+B4Z6S4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6Q4Z+S4Z6Y4Z644Z+XIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfcmVjZW50X2FwcHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODU0MTc2MDgzODY1ODQ1NTQxIj4i4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6Q4Z+S4Z6Y4Z64IOGfoSI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTA0MDc4NDM1OTc5NDg5MDc0NCI+IuGegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekOGfkuGemOGeuOGflyAlZCI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm9fbm90aWZpY2F0aW9uc190aXRsZSIgbXNnaWQ9IjQ3NTUyNjExNjcxOTM4MzMyMTMiPiLhnoLhn5LhnpjhnrbhnpPigIvhnoDhnrbhnprigIvhnofhnrzhnpPigIvhnorhn4bhno7hnrnhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX29uZ29pbmdfZXZlbnRzX3RpdGxlIiBtc2dpZD0iMTY4MjUwNDUxMzMxNjg3OTIwMiI+IuGelOGek+GfkuGejyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbGF0ZXN0X2V2ZW50c190aXRsZSIgbXNnaWQ9IjY1OTQ3Njc0Mzg1Nzc1OTMxNzIiPiLhnoDhnrbhnprigIvhnofhnrzhnpPigIvhnorhn4bhno7hnrnhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd190aXRsZSIgbXNnaWQ9IjI3ODMxMDQ4MDc1NTEyMTE2MzkiPiLhnpfhn5LhnofhnrbhnpThn4vigIvhnqfhnpThnoDhnprhno7hn43igIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpDhn5LhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19zdWJ0aXRsZSIgbXNnaWQ9IjE3NTIwNDAwNjIwODc4MjkxOTYiPiLhnofhnrfhno/igIvhnqLhnp/hn4vigIvhnpDhn5LhnpjigIvhnqDhnr7hnpnhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19wZXJjZW50X2Zvcm1hdCIgbXNnaWQ9IjEwNzcyNDQ5NDkzMTgyNjE3NjEiPiLhnpPhn4XigIvhnp/hnpvhn4sgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQlJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkX2NoYXJnZXIiIG1zZ2lkPSI0NTQ5MTA1OTk2NzQwNTIyNTIzIj4i4Z6Y4Z634Z6T4oCL4Z6C4Z624Z+G4Z6R4Z+S4Z6a4oCL4Z6A4Z624Z6a4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6P4Z624Z6Y4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z644Z+UXG7hnpThn5Lhnprhnr7igIvhno/hn4LigIvhnqfhnpThnoDhnprhno7hn43igIvhnpThnonhn5LhnoXhnrzhnpvigIvhnpDhn5LhnpjigIvhnorhn4LhnpvigIvhnpThnrbhnpPigIvhnpXhn5Lhnorhnpvhn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd193aHkiIG1zZ2lkPSI3Mjc5MTY5NjA5NTE4Mzg2MzcyIj4i4Z6A4Z624Z6a4oCL4Z6U4Z+S4Z6a4Z6+4oCL4Z6Q4Z+S4Z6YIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zZXR0aW5nc19idXR0b24iIG1zZ2lkPSIzMDIzODg5OTE2Njk5MjcwMjI0Ij4i4Z6A4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc193aWZpX2J1dHRvbiIgbXNnaWQ9IjE3MzM5MjgxNTE2OTgzMTE5MjMiPiLhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDg3OTg3OTY5ODUwMDk1NTMwMCI+IuGeluGfgeGem+KAi+Geh+Get+Gfh+KAi+GemeGek+GfkuGej+GeoOGfhOGfhyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19yb3RhdGlvbiIgbXNnaWQ9IjM3OTA0ODI1NDEzNTc3OTg0MjEiPiLhnpThnoThn5LhnpzhnrfhnpvigIvhnqLhn4HhnoDhn5LhnprhnoThn4vigIvhnp/hn5Lhnpzhn5DhnpnigIvhnpThn5Lhnprhnpzhno/hn5Lhno/hnrciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX211dGVfbGFiZWwiIG1zZ2lkPSI1NTQ2ODI1NDk5MTc0MjkzOTYiPiLhnp/hn5LhnoThnrbhno/hn4siPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUxMTQ1MzYxNDk2MjMyNDY3NCI+IuGen+GfkuGenOGfkOGemeGelOGfkuGemuGenOGej+GfkuGej+GetyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfbm90aWZpY2F0aW9ucyIgbXNnaWQ9IjM5NzE0NjE3NjI4MDkwNTEzNyI+IuGegOGetuGemuKAi+Geh+GevOGek+KAi+GeiuGfhuGejuGeueGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJsdWV0b290aF90ZXRoZXJlZCIgbXNnaWQ9IjcwOTQxMDE2MTIxNjExMzMyNjciPiLhnpThnrbhnpPigIvhnpfhn5LhnofhnrbhnpThn4vigIvhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2lucHV0X21ldGhvZF9zZXR0aW5nc19jb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjM1MDQyOTI0NzE1MTIzMTc4MjciPiLhnprhn4DhnpThnoXhn4bigIvhnpzhnrfhnpLhnrjhnp/hnrbhnp/hn5Lhno/hn5LhnprigIvhnpThnonhn5LhnoXhnrzhnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3VzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9Ijc1NTE5MDMwODQ0MTYwNTc4MTAiPiLhnoDhn5LhnorhnrbhnprigIvhnoXhnrvhnoXigIvhnpbhnrfhno/hnpThn5LhnprhnrbhnoDhnooiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iODM0Njk4MDAxMjcxNTYyMDU3Ij4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z64PyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI1MTcxNzc1NDExMTc4ODY1NzUwIj4i4Z6y4Z+S4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64IDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g4Z6F4Z684Z6b4oCL4Z6K4Z+G4Z6O4Z6+4Z6a4Z6A4Z624Z6a4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z64PyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSI1MTYxMjA1MjU4NjM1MjUzMjA2Ij4i4Z6U4Z6+4Z6AIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g4Z6W4Z+B4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z644oCL4Z6T4Z+B4Z+HPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSIzODA4OTg0OTMxODMwMjI5ODg4Ij4i4Z6U4Z6+4Z6AIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g4Z6W4Z+B4Z6b4oCL4Z6U4Z624Z6T4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z64PyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfdXJpX3Byb21wdCIgbXNnaWQ9IjUxMzQ1MDYyMTQxMzczMzM0MyI+IuGeguGfkuGemOGetuGek+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GelOGetuGek+KAi+GeiuGfhuGeoeGevuGehOKAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+Geh+GetuKAi+GemOGeveGemeKAi+Gep+GelOGegOGemuGejuGfjeKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuOGflCDhnp/hn5Lhnpzhn4LhnoThnpnhnpvhn4vigIvhnpThnpPhn5LhnpDhn4LhnpjigIvhnqLhn4bhnpbhnrjigIvhnqfhnpThnoDhnprhno7hn43igIvhnpPhn4Hhn4figIvhnpPhn4UgPHhsaWZmOmcgaWQ9IlVSTCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+IuGep+GelOGegOGemuGejuGfjeKAi+GemeGevOGeouGfgeGen+GelOGfiuGeuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3ZpZXciIG1zZ2lkPSI2MzA0NTY1NTUzMjE4MTkyOTkwIj4i4Z6Y4Z6+4Z6bIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9kZXZpY2UiIG1zZ2lkPSIxNDUwMjg3NDM3MDE3MzE1OTA2Ij4i4Z6U4Z+S4Z6a4Z6+4oCL4Z6P4Z624Z6Y4oCL4Z6b4Z+G4Z6T4Z624Z+G4Z6K4Z6+4Z6Y4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z644oCL4Z6T4Z+B4Z+HIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9hY2Nlc3NvcnkiIG1zZ2lkPSIxMjEwOTU0NTc2OTc5NjIxNTk2Ij4i4Z6U4Z+S4Z6a4Z6+4oCL4Z6P4Z624Z6Y4oCL4Z6b4Z+G4Z6T4Z624Z+G4Z6K4Z6+4Z6Y4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6B4Z+S4Z6f4Z+C4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z644oCL4Z6T4Z+B4Z+HIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ190aXRsZSIgbXNnaWQ9IjQ1MTM5MTgzOTMzODcxNDE5NDkiPiLhnqLhnpPhnrvhnonhn5Lhnonhnrbhno/igIvhnoDhnrbhnprigIvhnoDhn4LigIvhnoDhn4bhnqDhnrvhnp/igIvhnpnhnrzhnqLhn4Hhnp/hnpThn4rhnrg/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+IuGen+GfkuGek+GetuGemOKAi+GemOGfkuGemuGetuGemOKAi+GeiuGfg+KAiyBSU0Eg4Z6a4Z6U4Z6f4Z+L4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6C4Z664Z+WIFxuPHhsaWZmOmcgaWQ9IkZJTkdFUlBSSU5UIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4i4Z6i4Z6T4Z674Z6J4Z+S4Z6J4Z624Z6P4oCL4Z6H4Z624oCL4Z6T4Z634Z6F4Z+S4Z6F4oCL4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6A4Z674Z+G4Z6W4Z+S4Z6Z4Z684Z6R4Z+Q4Z6a4oCL4Z6T4Z+B4Z+HIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4i4Z6W4Z6E4Z+S4Z6a4Z644Z6A4oCL4oCL4Z6K4Z6+4Z6Y4Z+S4Z6U4Z644oCL4Z6y4Z+S4Z6Z4oCL4Z6W4Z+B4Z6J4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+IuGekeGetuGeieKAi+GeiuGevuGemOGfkuGelOGeuOKAi+GesuGfkuGemeKAi+GeluGfgeGeieKAi+GeouGfgeGegOGfkuGemuGehOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+IuGegOGetuGemuKAi+GeluGehOGfkuGemuGeuOGegOKAi+Gej+GfkuGemuGevOGenOKAi+GeguGfkuGek+GetiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiLhnpbhn4HhnpvigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhno/hn5LhnprhnrzhnpzigIvhnpThnrbhnpPigIvhnprhn4DhnpThnoXhn4bigIvhnp/hnpjhn5LhnprhnrbhnpThn4vigIvhnqLhn4HhnoDhn5LhnprhnoThn4vigIvhno/hnrzhnoUg4Z6A4Z624Z6a4oCL4Z6C4Z+S4Z6a4Z6U4Z+L4Z6C4Z+S4Z6a4Z6E4oCL4Z6A4Z624Z6a4oCL4Z6W4Z6E4Z+S4Z6a4Z644Z6A4oCL4Z6T4Z654Z6E4oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6P4Z624Z6Y4oCL4Z6T4Z624Z6h4Z634Z6A4Z624Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IuGegOGfhuGeluGeu+GehOKAi+GemuGegOGfkuGen+GetuGekeGeu+GegOKAi+GemuGevOGelOGekOGej+KAi+GeouGfgeGegOGfkuGemuGehOGfi+KApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IuGegOGfhuGeluGeu+GehOKAi+GemuGegOGfkuGen+GetuGekeGeu+GegOKAi+GemuGevOGelOGekOGej+KAi+GeouGfgeGegOGfkuGemuGehOGfiy4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i4Z6a4Z684Z6U4Z6Q4Z6P4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6P4Z+S4Z6a4Z684Z6c4oCL4Z6U4Z624Z6T4oCL4Z6a4Z6A4Z+S4Z6f4Z624Z6R4Z674Z6A4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90aXRsZSIgbXNnaWQ9IjY0NjE4NjU5NjA5NjE0MTQ5NjEiPiLhnpThnrbhnpPigIvhnoXhnrbhnpThn4vigIvhnpnhnoDigIvhnprhnrzhnpThnpDhno/igIvhnqLhn4HhnoDhn5LhnprhnoThn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RleHQiIG1zZ2lkPSIxMTUyODM5NjQ3Njc3NTU4ODE1Ij4i4Z6U4Z+J4Z+HIOKAi+GeiuGevuGemOGfkuGelOGeuOKAi+GemOGevuGem+KAi+GemuGevOGelOGekOGej+KAi+GeouGfgeGegOGfkuGemuGehOGfi+KAi+GemuGelOGen+Gfi+KAi+GeouGfkuGek+GegOKAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RpdGxlIiBtc2dpZD0iNzA1NzgxMTE2NzQ2OTIyNzcxIj4i4Z6Y4Z634Z6T4oCL4Z6i4Z624Z6F4oCL4Z6F4Z624Z6U4Z+L4oCL4Z6Z4Z6A4oCL4Z6a4Z684Z6U4oCL4Z6Q4Z6P4oCL4Z6i4Z+B4Z6A4Z+S4Z6a4Z6E4Z+L4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGV4dCIgbXNnaWQ9IjgxMzQwMTEyNjk1NzI0MTU0MDIiPiLhnpjhnrfhnpPigIvhnqLhnrbhnoXigIvhnprhnoDhn5Lhnp/hnrbhnpHhnrvhnoDigIvhnprhnrzhnpThnpDhno/igIvhnqLhn4HhnoDhn5LhnprhnoThn4vigIvhn5Qg4Z6n4Z6U4Z6A4Z6a4Z6O4Z+N4oCL4Z6V4Z+S4Z6R4Z674Z6A4oCL4Z6i4Z624Z6F4oCL4Z6A4Z+G4Z6W4Z674Z6E4oCL4Z6U4Z+S4Z6a4Z6+4oCL4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3ByZWZlcmVuY2VfdGl0bGUiIG1zZ2lkPSI2NTUxMDUwMzc3Mzg4ODgyNzg3Ij4i4Z6H4Z6Y4Z+S4Z6a4Z6+4Z6f4oCL4Z6V4Z+S4Z6R4Z+B4Z6a4oCL4Z6v4Z6A4Z6f4Z624Z6a4oCL4Z6P4Z624Z6Y4oCL4Z6Z4Z684Z6i4Z+B4Z6f4Z6U4Z+K4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX210cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI0MzMzNTA0NDEzNTYzMDIzNjI2Ij4i4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6H4Z624oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6F4Z624Z6A4Z+L4oCL4Z6Y4Z+B4Z6M4Z+AIChNVFApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX3B0cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI3NTE3MTI3NTQwMzAxNjI1NzUxIj4i4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6H4Z624oCL4Z6Y4Z+J4Z624Z6f4Z+K4Z644Z6T4oCL4Z6Q4Z6PIChQVFApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbGVyX2NkX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjIzMTI2Njc1Nzg1NjIyMDE1ODMiPiLhnorhn4bhnqHhnr7hnoTigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpXhn5LhnpHhn4HhnprigIvhnq/hnoDhnp/hnrbhnpogQW5kcm9pZCDhnp/hnpjhn5LhnprhnrbhnpThn4sgTWFjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYWNrIiBtc2dpZD0iNTY3MDExNTM4OTk0NDI5MTIwIj4i4Z6Q4Z6Z4Z6A4Z+S4Z6a4Z+E4Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IuGeguGfgeGeoOKAi+GekeGfhuGeluGfkOGemiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+IuGemOGfieGeuuGek+Geu+GemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IuGegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekOGfkuGemOGeuOGflyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4i4Z6U4Z+S4Z6K4Z684Z6a4oCL4Z6U4Z+K4Z684Z6P4Z674Z6E4oCL4Z6c4Z634Z6S4Z644Z6f4Z624Z6f4Z+S4Z6P4Z+S4Z6a4oCL4Z6U4Z6J4Z+S4Z6F4Z684Z6b4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IuGelOGfiuGevOGej+Geu+GehOKAi+GeluGehOGfkuGemuGeuOGegOKAi+Gej+GfkuGemuGevOGenOKAi+GeguGfkuGek+GetuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4i4Z6W4Z6E4Z+S4Z6a4Z644Z6AL+GelOGehOGfkuGemuGeveGemOKAi+KAi+GeouGfgeGegOGfkuGemuGehOGfi+KAi+GeluGeuOKAi+KAi+GekeGfheGekuGfhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX2Nvbm5lY3RlZCIgbXNnaWQ9IjI3MDcwMjc2MzMyNDI5ODMzNzAiPiLhnpThnrbhnpPigIvhno/hnpfhn5LhnofhnrbhnpThn4vigIvhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9kaXNjb25uZWN0ZWQiIG1zZ2lkPSI3NDE2NjQ4NjY5OTc2ODcwMTc1Ij4i4Z6U4Z624Z6T4oCL4Z6V4Z+S4Z6K4Z624Z6F4Z+L4oCL4oCL4Z6U4Z+K4Z+S4Z6b4Z684Z6S4Z684Z6f4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19iYXR0ZXJ5IiBtc2dpZD0iMzU4MzQzMDIyMzUyODIwOTQ2Ij4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6Q4Z+S4Z6Y4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X29uZV9iYXIiIG1zZ2lkPSI3Nzc0ODg3NzIxODkxMDU3NTIzIj4i4Z6Q4Z+S4Z6Y4oCL4Z6Y4Z694Z6Z4oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3R3b19iYXJzIiBtc2dpZD0iODUwMDY1MDQzODczNTAwOTk3MyI+IuGekOGfkuGemOKAi+GeluGeuOGemuKAi+GegOGetuGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90aHJlZV9iYXJzIiBtc2dpZD0iMjMwMjk4MzMzMDg2NTA0MDQ0NiI+IuGekOGfkuGemOKAi+GekeGetuGfhuGehOKAi+GelOGeuOKAi+KAi+GegOGetuGfhuKAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9mdWxsIiBtc2dpZD0iODkwOTEyMjQwMTcyMDE1ODU4MiI+IuGekOGfkuGemOKAi+GeluGfgeGeieKAi+GeoOGevuGemeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fcGhvbmUiIG1zZ2lkPSI0ODk0NzA4OTM3MDUyNjExMjgxIj4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9vbmVfYmFyIiBtc2dpZD0iNjg3Njk5Mjc4MTMyNjY0MTE1Ij4i4Z6f4Z+B4Z6c4Z624oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6Y4Z694Z6Z4oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV90d29fYmFycyIgbXNnaWQ9IjgzODQ5MDUzODI4MDQ4MTUyMDEiPiLhnp/hn4HhnpzhnrbigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnpbhnrjhnprigIvhnoDhnrbhn4bhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3RocmVlX2JhcnMiIG1zZ2lkPSI4NTIxOTA0ODQzOTE5OTcxODg1Ij4i4Z6f4Z+B4Z6c4Z624oCL4Z6R4Z684Z6a4Z6f4Z+Q4Z6W4Z+S4Z6R4oCL4Z6U4Z644oCL4Z6A4Z624Z+G4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9zaWduYWxfZnVsbCIgbXNnaWQ9IjY0NzE4MzQ4Njg1ODA3NTc4OTgiPiLhnp/hn4HhnpzhnrbigIvhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpHigIvhnpbhn4Hhnonhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2RhdGEiIG1zZ2lkPSI0NzkxOTY2Mjk1MDk2ODY3NTU1Ij4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX29uZV9iYXIiIG1zZ2lkPSIxNDE1NjI1ODMzMjM4MjczNjI4Ij4i4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6Y4Z694Z6Z4oCL4oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3R3b19iYXJzIiBtc2dpZD0iNjE2NjAxODQ5MjM2MDQzMjA5MSI+IuGekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GeluGeuOGemuKAi+KAi+GegOGetuGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90aHJlZV9iYXJzIiBtc2dpZD0iOTE2NzY3MDQ1MjM5NTAzODUyMCI+IuGekeGet+Gek+GfkuGek+Gek+GfkOGemeKAi+GelOGeuOKAi+GegOGetuGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3MDgzODQ2MDgxMjQ1MTkzNjkiPiLhnp/hnonhn5LhnonhnrbigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpbhn4Hhnonhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb2ZmIiBtc2dpZD0iMzE3NzM4MDI5NjY5NzkzMzYyNyI+IuGelOGet+GekeKAi+GenOGfieGetuGemeGeoOGfkuGenOGetuGemeGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2lmaSIgbXNnaWQ9IjE0MjU0NzY1NTE4Mjc5MjQ0NzQiPiLhnpThnrbhnpPigIvhnpXhn5LhnorhnrbhnoXhn4vigIvhnpzhn4nhnrbhnpnhnqDhn5Lhnpzhnrbhnpnhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiLhnp/hnonhn5LhnonhnrbigIvhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpnigIvhnpjhnr3hnpnigIvhnoDhnrbhn4bhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfdHdvX2JhcnMiIG1zZ2lkPSI0OTk0Mjc0MjUwNDk3MjYyNDM0Ij4i4Z6f4Z+B4Z6c4Z624oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6Z4oCL4Z6W4Z644Z6a4oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3RocmVlX2JhcnMiIG1zZ2lkPSIzNDk1NzU1MDQ0Mjc2NTg4Mzg0Ij4i4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6Z4oCL4Z6U4Z644oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IuGen+GeieGfkuGeieGetuKAi+GenOGfieGetuGemeGeoOGfkuGenOGetuGemeKAi+GeluGfgeGeieGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2ltYXgiIG1zZ2lkPSI0MzI5MTgwMTI5NzI3NjMwMzY4Ij4i4Z6C4Z+S4Z6Y4Z624Z6TIFdpTUFYIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfb25lX2JhciIgbXNnaWQ9IjQxNzA5OTQyOTkwMTE4NjM2NDgiPiJXaU1BWCDhnpjhnr3hnpnigIvhnoDhnrbhn4bhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3R3b19iYXJzIiBtc2dpZD0iOTE3NjIzNjg1ODMzNjUwMjI4OCI+IldpTUFYIOGeluGeuOGemuKAi+GegOGetuGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiJXaU1BWCDhnpThnrjigIvhnoDhnrbhn4bhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3NpZ25hbF9mdWxsIiBtc2dpZD0iMjc2ODA4OTk4Njc5NTU3OTU1OCI+IuGen+GeieGfkuGeieGetiBXaU1BWCDhnpbhn4Hhnonhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpZ25hbCIgbXNnaWQ9IjcwNjQ2NDUzMjA3ODI1ODUxNjciPiLhnoLhn5LhnpjhnrbhnpPigIvhnp/hnonhn5Lhnonhnrbhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4i4Z6Y4Z634Z6T4oCL4Z6U4Z624Z6T4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV96ZXJvX2JhcnMiIG1zZ2lkPSIzODA2MDYwMjI0NDY3MDI3ODg3Ij4i4Z6f4Z684Z6T4Z+S4Z6Z4oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9vbmVfYmFyIiBtc2dpZD0iMTY4NTczMDExMzE5MjA4MTg5NSI+IuGemOGeveGemeKAi+GegOGetuGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHdvX2JhcnMiIG1zZ2lkPSI2NDM3MzYzNjQ4Mzg1MjA2Njc5Ij4i4Z6W4Z644Z6a4oCL4Z6A4Z624Z+G4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90aHJlZV9iYXJzIiBtc2dpZD0iMjY0ODI0MTQxNTExOTM5NjY0OCI+IuGelOGeuOKAi+GegOGetuGfhuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI5MTIyOTIyODg2NTE5Njc2ODM5Ij4i4Z6f4Z6J4Z+S4Z6J4Z624oCL4Z6W4Z+B4Z6J4oCL4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29uIiBtc2dpZD0iMjM4NTI1NDY5MzYyNDM0NTI2NSI+IuGelOGevuGegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vZmYiIG1zZ2lkPSI2NDc1NTA4MTU3Nzg2ODUzMTU3Ij4i4Z6U4Z634Z6RIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX2Nvbm5lY3RlZCIgbXNnaWQ9IjgzNjYyNTY2OTM3MTk0OTk2NjUiPiLhnpThnrbhnpPigIvhno/hnpfhn5LhnofhnrbhnpThn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9ncHJzIiBtc2dpZD0iMTYwNjQ3NzIyNDQ4Njc0Nzc1MSI+IkdQUlMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8xeCIgbXNnaWQ9Ijk5NDEzMzQ2ODEyMDI0NDAxOCI+IjEgWCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2hzcGEiIG1zZ2lkPSIyMDMyMzI4ODU1NDYyNjQ1MTk4Ij4iSFNQQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzNnIiBtc2dpZD0iODYyODU2MjMwNTAwMzU2ODI2MCI+IjNHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMy41ZyIgbXNnaWQ9Ijg2NjQ4NDU2MDk5ODE2OTIwMDEiPiIzLjVHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fNGciIG1zZ2lkPSI3NzQxMDAwNzUwNjMwMDg5NjEyIj4iNEciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9sdGUiIG1zZ2lkPSI1NDEzNDY4ODA4NjM3NTQwNjU4Ij4iTFRFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fY2RtYSIgbXNnaWQ9IjYxMzI2NDgxOTM5Nzg4MjMwMjMiPiJDRE1BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fcm9hbWluZyIgbXNnaWQ9IjU5NzczNjIzMzM0NjY1NTYwOTQiPiLhnprhn4nhnrzigIvhnpjhnrjhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9lZGdlIiBtc2dpZD0iNDQ3NzQ1NzA1MTYzMTk3OTI3OCI+IkVkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl93aWZpIiBtc2dpZD0iMjMyNDQ5Njc1NjU5MDY0NTIyMSI+IuGenOGfieGetuGemeGeoOGfkuGenOGetuGemSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fc2ltIiBtc2dpZD0iODI3NDAxNzExODQ3MjQ1NTE1NSI+IuGeguGfkuGemOGetuGek+KAi+Gen+GfiuGeuOGemOKAi+GegOGetuGej+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX3RldGhlciIgbXNnaWQ9IjQxMDI3ODQ0OTgxNDAyNzE5NjkiPiLhnoDhnrbhnprigIvhnpfhn5LhnofhnrbhnpThn4vigIvhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2FpcnBsYW5lX21vZGUiIG1zZ2lkPSI4MzQ3NDg5OTk3OTA3NjMwOTIiPiLhnprhnpThn4DhnpTigIvigIvhnofhnrfhn4figIvhnpnhnpPhn5Lhno/hnqDhn4Thn4ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfbGV2ZWwiIG1zZ2lkPSI3NDUxNDc0MTg3MTEzMzcxOTY1Ij4i4Z6Q4Z+S4Z6YIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDhnpfhnrbhnoLhnprhnpnhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9Ijc5OTU4MzkxMTIzMTg5MzM4MCI+IuGegOGetuGemuKAi+GegOGfhuGejuGej+Gfi+KAi+GelOGfkuGemuGeluGfkOGek+GfkuGekuKAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uc19idXR0b24iIG1zZ2lkPSI0NDk4MDAwMzY5Nzc5NDIxODkyIj4i4Z6A4Z624Z6a4oCL4Z6H4Z684Z6T4oCL4Z6K4Z+G4Z6O4Z654Z6E4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZW1vdmVfbm90aWZpY2F0aW9uIiBtc2dpZD0iMzYwMzA5OTUxNDkwMjE4MjM1MCI+IuGen+GemOGfkuGeouGetuGej+KAi+GegOGetuGemuKAi+Geh+GevOGek+KAi+GeiuGfhuGejuGeueGehOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2VuYWJsZWQiIG1zZ2lkPSIzNTExNDY5NDk5MjQwMTIzMDE5Ij4i4Z6U4Z624Z6T4oCL4Z6U4Z6+4Z6AIEdQUyDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19hY3F1aXJpbmciIG1zZ2lkPSI4OTU5MzMzMzUxMDU4OTY3MTU4Ij4i4Z6R4Z6R4Z694Z6b4oCL4oCLIEdQUyDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3R0eV9lbmFibGVkIiBtc2dpZD0iNDYxMzIwMDM2NTM3OTQyNjU2MSI+IuGelOGetuGek+KAi+GelOGevuGegOKAi+GemOGfieGetuGen+GfiuGeuOGek+KAi+GeouGehOGfkuGeguGeu+Gem+GeuOGem+GfgeGegSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3ZpYnJhdGUiIG1zZ2lkPSI2NjY1ODUzNjMzNjQxNTUwNTUiPiLhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnprhn4ThnpHhn43igIvhnonhn5Dhnprhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl9zaWxlbnQiIG1zZ2lkPSI5MDYxMjQzMzA3OTM5MTM1MzgzIj4i4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6a4Z+E4Z6R4Z+N4oCL4Z6f4Z+S4Z6E4Z624Z6P4Z+L4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnRzX2l0ZW1fZGlzbWlzc2VkIiBtc2dpZD0iNjgwMzU3NDkzNTA4NDg2NzA3MCI+Ijx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiDhnpThnorhnrfhnp/hn4HhnpLhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdGlmaWNhdGlvbl9kaXNtaXNzZWQiIG1zZ2lkPSI4NTQyMTEzODcxODYzMDY5MjciPiLhnpThnrbhnpPigIvhnpThnorhnrfhnp/hn4HhnpLigIvhnoDhnrbhnprigIvhnofhnrzhnpPhnorhn4bhno7hnrnhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfbm90aWZpY2F0aW9uX3NoYWRlIiBtc2dpZD0iNDY5MDI3NDg0NDQ0NzUwNDIwOCI+IuGeluGejuGfjOKAi+GegOGetuGemuKAi+Geh+GevOGek+KAi+GeiuGfhuGejuGeueGehCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19xdWlja19zZXR0aW5ncyIgbXNnaWQ9IjYxODYzNzg0MTE1ODI0MzcwNDYiPiLhnoDhnrbhnprigIvhnoDhn4bhno7hno/hn4vigIvhnprhnqDhn5Dhnp/hn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfcmVjZW50X2FwcHMiIG1zZ2lkPSI5MDE0MDMyOTE2NDEwNTkwMDI3Ij4i4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6Q4Z+S4Z6Y4Z644oCL4Z+X4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc191c2VyIiBtc2dpZD0iMTEwNDg0NjY5OTg2OTQ3Njg1NSI+IuGeouGfkuGek+GegOKAi+GelOGfkuGemuGeviA8eGxpZmY6ZyBpZD0iVVNFUiI+JXM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3Nfd2lmaSIgbXNnaWQ9IjYwOTk3ODEwMzE2Njk3Mjg3MDkiPiI8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19tb2JpbGUiIG1zZ2lkPSI0ODc2ODA2NTY0MDg2MjQxMzQxIj4i4Z6F4Z6b4Z+Q4Z6PIDx4bGlmZjpnIGlkPSJTSUdOQUwiPiUxJHM8L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iVFlQRSI+JTIkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJORVRXT1JLIj4lMyRzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4i4Z6Q4Z+S4Z6YIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4i4Z6a4Z6U4Z+A4Z6U4oCL4Z6H4Z634Z+H4oCL4Z6Z4Z6T4Z+S4Z6P4oCL4Z6g4Z+E4Z+HIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IuGelOGfiuGfkuGem+GevOGekuGevOGenyA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IuGegOGfhuGejuGej+Gfi+KAi+Gen+GfhuGeoeGfgeGehOKAi+GemuGfhOGekeGfjeKAi+Gen+GemOGfkuGemuGetuGelOGfiyA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+IOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IuGelOGetuGek+KAi+GelOGet+GekeKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemSAyRy0zRyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IuGelOGetuGek+KAi+GelOGet+GekeKAi+GekeGet+Gek+GfkuGek+Gek+GfkOGemSA0RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX21vYmlsZV90aXRsZSIgbXNnaWQ9IjEwNDYwNDcyNDg4NDQ4MjEyMDIiPiLhnpThnrbhnpPigIvhnpThnrfhnpHigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnoXhnpvhn5Dhno8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjIwODY4MTUzMDQ4NTg5NjQ5NTQiPiLhnpThnrbhnpPigIvhnpThnrfhnpHigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZyIgbXNnaWQ9IjM4NTMxMTcyNjkwNTE4MDYyODAiPiLhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnorhnpvhn4vigIvhnorhn4LhnpPigIvhnoDhn4bhno7hno/hn4vigIvhnpThn5Lhnprhnr7igIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnpThnrbhnpPigIvhnpThnonhn5LhnofhnrbhnoDhn4vhn5Rcblxu4Z6U4Z6+4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z6+4Z6A4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6h4Z6+4Z6E4Z6c4Z634Z6JIOGeouGfkuGek+GegOKAi+GeouGetuGeheKAi+Gej+GfkuGemuGevOGenOKAi+GelOGetuGek+KAi+GelOGfkuGeiuGevOGemuKAi+GeiuGfhOGemeKAi+GelOGfkuGemuGej+Get+GelOGej+GfkuGej+Get+KAi+GegOGemuGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX2VuYWJsZSIgbXNnaWQ9Ijc3Mjk3NzIwMzkyMDg2NjQ2MDYiPiLhnpThnr7hnoDigIvigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnqHhnr7hnoThnpzhnrfhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl9kaXNjb25uZWN0ZWQiIG1zZ2lkPSIxOTQwMjMxNTIxMjc0MTQ3NzcxIj4i4Z6C4Z+S4Z6Y4Z624Z6T4oCL4Z6A4Z624Z6a4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6i4Z+K4Z644Z6T4Z6S4Z664Z6O4Z634Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4i4Z6U4Z624Z6T4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+L4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiLhnp/hn5Lhnpzhn4LhnoThnprhnoAgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IuGekeGeuOGej+GetuGfhuGehOKAi+KAi+KAi+KAi+KAi+GegOGfhuGejuGej+Gfi+KAi+GeiuGfhOGemSBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiLhnp/hn4bhno7hnr7igIvhnpHhnrjhno/hnrbhn4bhnoTigIvhnp/hnoDhnpjhn5LhnpgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiLhnp/hnpjhn5LhnqLhnrbhno/igIvhnoDhnrbhnprigIvhnofhnrzhnpPigIvhnorhn4bhno7hnrnhnoTigIvhnpHhnrbhn4bhnoThnqLhnp/hn4vhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4i4Z6W4Z+Q4Z6P4Z+M4Z6Y4Z624Z6T4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z64Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiLhnpPhnrnhnoTigIvhnpThnoThn5LhnpzhnrfhnpvigIvhnqLhn4HhnoDhn5LhnprhnoThn4vigIvhnp/hn5Lhnpzhn5DhnpnigIvhnpThn5Lhnprhnpzhno/hn5Lhno/hnrfhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IuGeouGfgeGegOGfkuGemuGehOGfi+KAi+Geh+GetuGelOGfi+KAi+Gen+GfhOKAi+GegOGfkuGek+Geu+GehOKAi+GekeGet+Gen+KAi+GeleGfkuGeiuGfgeGegOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLhnpThnrbigIvhnpPigIvhnoXhnrbhnoDhn4vigIvhnp/hn4TigIvhnqLhn4HhnoDhn5LhnprhnoThn4vigIvigIvhnoDhn5LhnpPhnrvhnoTigIvhnpHhnrfhnp/igIvhnpThnonhn5Lhnojhnprhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4i4Z6f4Z+S4Z6a4Z6Y4Z6+4oCL4Z6f4Z+S4Z6a4Z6Y4Z+DIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4i4Z6i4Z+K4Z644Z6f4Z664Z6a4Z6O4Z634Z6PIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLhnprhnpThn4DhnpTigIvigIvhnofhnrfhn4figIvhnpnhnpPhn5Lhno/hnqDhn4Thn4ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnaW5nX2xhYmVsIiBtc2dpZD0iNDkwMDc0Nzc0NDY1MzA5MjA5Ij4i4Z6U4Z6J4Z+S4Z6F4Z684Z6b4oCL4Z6Q4Z+S4Z6YIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiA8eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2VkX2xhYmVsIiBtc2dpZD0iODg2NTQxMzA3OTQxNDI0NjA4MSI+IuGelOGetuGek+KAi+GelOGeieGfkuGeheGevOGem+KAi+GeluGfgeGeiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9sYWJlbCIgbXNnaWQ9IjYzMDQxOTAyODUxNzA3MjE0MDEiPiLhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbXVsdGlwbGVfZGV2aWNlc19sYWJlbCIgbXNnaWQ9IjM5MTIyNDU1NjU2MTM2ODQ3MzUiPiLhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp8gKOGep+GelOGegOGemuGejuGfjSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiLhnpThnrfhnpHigIvhnpThn4rhn5LhnpvhnrzhnpLhnrzhnp8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNjk2ODM3MjI5NzAxODc1NTgxNSI+IuGeluGek+GfkuGem+GeuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX3VubG9ja2VkX2xhYmVsIiBtc2dpZD0iMzM2MDU0OTMwMzYyNTgwNTg0Ij4i4Z6U4Z6E4Z+S4Z6c4Z634Z6b4oCL4oCL4Z6f4Z+S4Z6c4Z+Q4Z6Z4oCL4Z6U4Z+S4Z6a4Z6c4Z6P4Z+S4Z6P4Z63Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fbG9ja2VkX2xhYmVsIiBtc2dpZD0iODA1ODY0NjQ0NzI0MjU2NTQ4NiI+IuGelOGetuGek+KAi+GeheGetuGegOGfi+KAi+Gen+GfhOKAi+GegOGetuGemuKAi+GelOGehOGfkuGenOGet+GemyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ltZV9sYWJlbCIgbXNnaWQ9IjcwNzM0NjMwNjQzNjk0Njg0MjkiPiLhnpzhnrfhnpLhnrjhnp/hnrbhnp/hn5Lhno/hn5LhnprigIvhnpThnonhn5LhnoXhnrzhnpsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCIgbXNnaWQ9IjUwMTEzMjcwNDg3NDg3NjIyNTciPiLhnpHhnrjigIvhno/hnrbhn4bhnoQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4i4Z6R4Z644Z6P4Z624Z+G4Z6E4oCL4Z6U4Z634Z6RIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbWVkaWFfZGV2aWNlX2xhYmVsIiBtc2dpZD0iMTMwMjkwNjgzNjM3MjYwMzc2MiI+IuGep+GelOGegOGemuGejuGfjeKAi+GemOGfgeGejOGfgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4i4Z6f4Z6Y4Z+S4Z6a4Z624Z6U4Z+L4oCL4Z6P4Z+C4oCL4Z6A4Z624Z6a4oCL4Z6g4Z+F4oCL4Z6W4Z+B4Z6b4oCL4Z6i4Z624Z6f4Z6T4Z+S4Z6TIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfc2V0dGluZ3NfbGFiZWwiIG1zZ2lkPSI1MzI2NTU2NTkyNTc4MDY1NDAxIj4i4Z6A4Z624Z6a4oCL4Z6A4Z+G4Z6O4Z6P4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfdGltZV9sYWJlbCIgbXNnaWQ9IjQ2MzU5NjkxODIyMzk3MzY0MDgiPiLhnpbhn4Hhnpvhnpzhn4HhnpvhnrYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc191c2VyX2xhYmVsIiBtc2dpZD0iNTIzODk5NTYzMjEzMDg5Nzg0MCI+IuGegeGfkuGeieGeu+GfhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbGFiZWwiIG1zZ2lkPSI5MTM1MzQ0NzA0ODk5NTQ2MDQxIj4i4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNzE3MTkwNDg0NTM0NTU3MzQzMSI+IuGemOGet+Gek+KAi+GelOGetuGek+KAi+Gej+Gel+GfkuGeh+GetuGelOGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm9fbmV0d29yayIgbXNnaWQ9IjIyMjE5OTMwNzcyMjA4NTYzNzYiPiLhnoLhn5LhnpjhnrbhnpPigIvhnpThno7hn5LhnorhnrbhnokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX29mZl9sYWJlbCIgbXNnaWQ9Ijc1NTg3NzgxMDA4NDM4ODU4NjQiPiLhnpThnrfhnpHigIvhnpzhn4nhnrbhnpnhnqDhn5LhnpzhnrbhnpkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbGFiZWwiIG1zZ2lkPSI2ODkzNTkyOTY0NDYzNjI0MzMzIj4i4Z6U4Z6E4Z+S4Z6g4Z624oCL4Z6J4oCL4Z6c4Z+J4Z624Z6Z4Z6g4Z+S4Z6c4Z624Z6ZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4i4oCL4Z6U4Z6E4Z+S4Z6g4Z624Z6J4oCL4Z6U4Z6O4Z+S4Z6K4Z624Z6J4oCL4Z6l4Z6P4oCL4Z6B4Z+S4Z6f4Z+CIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4i4Z6W4Z6T4Z+S4Z6b4Z66Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IuGen+GfkuGenOGfkOGemeGelOGfkuGemuGenOGej+GfkuGej+GetyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiLhnoDhnrbhnprigIvhnofhnrzhnpPigIvhnorhn4bhno7hnrnhnoTigIvigIvhnpThnoThn5LhnqDhnrbhnonigIvigIvhnpPhn4XigIvhnpHhnrjhnpPhn4Hhn4ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiLhnoXhnrzhnpvigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnpbhnr3hnoDigIvhnpzhnrbigIvhnpbhn4HhnpvigIvhno7hnrbigIvhnpjhnr3hnpnigIvhnorhn4ThnpnigIvhnqLhnrzhnp/igIvhnoXhnrvhn4fhnoDhn5Lhnprhn4Thnpjhn5RcbuGeouGevOGen+KAi+GeheGeu+Gfh+GegOGfkuGemuGfhOGemOKAi+GemOGfkuGeiuGehOKAi+GekeGfgOGej+KAiyDhnorhnr7hnpjhn5LhnpThnrjigIvhnpbhnrfhnpPhnrfhno/hn5LhnpnigIvhnpThn5Lhnprhnpbhn5DhnpPhn5LhnpLhn5QiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMta28vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWtvL3N0cmluZ3MueG1sCmluZGV4IDE0Mzc2MDEuLjk0NzdiYWMgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMta28vc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1rby9zdHJpbmdzLnhtbApAQCAtNjEsOCArNjEsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiLsnbQg7Lu07ZOo7YSw7JeQ7IScIO2VreyDgSDtl4jsmqkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiLsoITssrTtmZTrqbQg66qo65Oc66GcIO2ZleuMgCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLsoITssrTtmZTrqbQg66qo65Oc66GcIO2ZleuMgCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+Iu2YuO2ZmOyEsSDtmZXrjIAv7LaV7IaMIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+IuyVseydtCDsnpHsnYAg7ZmU66m07JeQIOunnuuPhOuhnSDshKTqs4TrkJwg6rK97JqwIOyLnOqzhCDsmIbsl5Ag7ZmV64yAL+y2leyGjCDsu6jtirjroaTsnbQg7ZGc7Iuc65Cp64uI64ukLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiLsuqHss5DtmZTrqbQg7KCA7J6lIOykkS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+Iuy6oeyzkO2ZlOuptCDsoIDsnqUg7KSRLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLsuqHss5DtmZTrqbTsnYQg7KCA7J6l7ZWY64qUIOykkeyeheuLiOuLpC4iPC9zdHJpbmc+CkBAIC03OCw2ICs3Niw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4i7ZmIIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4i66mU64m0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4i7LWc6re87JeQIOyCrOyaqe2VnCDslbEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiLqsoDsg4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4i7Lm066mU6528Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiLsnoXroKUg67Cp67KVIOuyhO2KvOydhCDsoITtmZjtlanri4jri6QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+Iu2YuO2ZmOyEsSDtmZXrjIAv7LaV7IaMIOuyhO2KvOyeheuLiOuLpC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+IuyekeydgCDtmZTrqbTsnYQg7YGwIO2ZlOuptOycvOuhnCDtmZXrjIDtlanri4jri6QuIjwvc3RyaW5nPgpAQCAtMTUzLDYgKzE1Myw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4i67Cw7YSw66asIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLruYTtlonquLAg66qo65Oc6rCAIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+IOyDge2DnOyeheuLiOuLpC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiLruJTro6jtiKzsiqQgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IuychOy5mCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4i7JWM656M7J20IDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4o7Jy8KeuhnCDshKTsoJXrkJjsl4jsirXri4jri6QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iMkctM0cg642w7J207YSwIOyCrOyaqeykkeyngOuQqCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHIOuNsOydtO2EsCDsgqzsmqnspJHsp4DrkKgiPC9zdHJpbmc+CkBAIC0xNjQsMTIgKzE2NSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkg7Jew6rKw65CoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJHUFMg6rKA7IOJIOykkSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJHUFPsl5DshJwg7JyE7LmYIOyEpOyglSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IuychOy5mCDsmpTssq0g7J6I7J2MIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4i66qo65OgIOyVjOumvCDsp4DsmrDquLAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4i7JWxIOygleuztCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4i7ZmU66m07J20IOyekOuPmeycvOuhnCDtmozsoITrkKnri4jri6QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiLtmZTrqbTsnbQg6rCA66GcIOuwqe2WpeycvOuhnCDsnqDqsqgg7J6I7Iq164uI64ukLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLtmZTrqbTsnbQg7IS466GcIOuwqe2WpeycvOuhnCDsnqDqsqgg7J6I7Iq164uI64ukLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiLrlJTsoIDtirgg7LyA7J207IqkIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+Iu2ZlOuptCDrs7TtmLjquLAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiLsnbTrjZTrhLciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+Iuu5hO2Wieq4sCDrqqjrk5wiPC9zdHJpbmc+CkBAIC0xODIsMTAgKzE4NCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IuyekOuPmSDtmozsoIQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4i7ZqM7KCEIOyeoOq4iCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ltZV9sYWJlbCIgbXNnaWQ9IjcwNzM0NjMwNjQzNjk0Njg0MjkiPiLsnoXroKUg67Cp67KVIjwvc3RyaW5nPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsICg1MDExMzI3MDQ4NzQ4NzYyMjU3KSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCAoNzQ2NDU0NDA4NjUwNzMzMTQ1OSkgLS0+Ci0gICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+IuychOy5mCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiLsnITsuZgg7IKs7JqpIOykkeyngCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX21lZGlhX2RldmljZV9sYWJlbCIgbXNnaWQ9IjEzMDI5MDY4MzYzNzI2MDM3NjIiPiLrr7jrlJTslrQg6riw6riwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9sYWJlbCIgbXNnaWQ9Ijc3MjU2NzEzMzU1NTA2OTU1ODkiPiJSU1NJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9lbWVyZ2VuY3lfb25seSIgbXNnaWQ9IjI3MTM3NzQwNDE2NzI4ODY3NTAiPiLquLTquIkg7Ya17ZmU66eMIO2XiOyaqSI8L3N0cmluZz4KQEAgLTIwMCw4ICsyMDAsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4i66y07ISgIOuUlOyKpO2UjOugiOydtCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+Iuuwneq4sCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiLsnpDrj5kiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4i7JWM66a87J20IOyXrOq4sOyXkCDtkZzsi5zrkKgiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiLslYTrnpjroZwg7Iqk7JmA7J207ZSE7ZWY7JesIOyWuOygnOuToCDslaHshLjsiqTtlZjshLjsmpQuXG7tlZwg67KIIOuNlCDslYTrnpjroZwg7Iqk7JmA7J207ZSE7ZWY66m0IOyLnOyKpO2FnCDqtIDrpqzroZwg7J2064+Z7ZWp64uI64ukLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+Iu2ZlOuptCDqsIDsnqXsnpDrpqzsl5DshJwg7Iqk7JmA7J207ZSE7ZWY7JesIO2RnOyLnOykhCDtkZzsi5wiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+Iu2ZlOuptCDqsIDsnqXsnpDrpqzsl5DshJwg7Iqk7JmA7J207ZSE7ZWY7JesIOyLnOyKpO2FnCDtkZzsi5zspIQg7ZGc7IucIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+IuyDieyDgSDrsJjsoIQg66qo65OcIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4i7Zal7IOB65CcIOuMgOu5hCDrqqjrk5wiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+IuyDieyDgSDrs7TsoJUg66qo65OcIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiLrhKTtirjsm4ztgazqsIBcbuuqqOuLiO2EsOungeuQoCDsiJgg7J6I7J2MIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWxvLWxhbmQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWxvLWxhbmQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTgzOGExNQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbG8tbGFuZC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yb3RhdGlvbl9sb2NrZWQiIG1zZ2lkPSI3NjA5NjczMDExNDMxNTU2MDkyIj4i4Luc4LuJ4Lqy4LqI4LuN4LqV4Lqt4LqZ4LqZ4Lq14LuJ4LqW4Lq34LqB4Lql4Lqx4Lqt4LqB4LuE4Lqn4LuJ4LuD4LqZ4LuB4Lqa4Lqa4Lql4Lqn4LqH4LqZ4Lqt4LqZLiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1sby1yTEEtbGFuZC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbG8tckxBLWxhbmQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTgzOGExNQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbG8tckxBLWxhbmQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfcm90YXRpb25fbG9ja2VkIiBtc2dpZD0iNzYwOTY3MzAxMTQzMTU1NjA5MiI+IuC7nOC7ieC6suC6iOC7jeC6leC6reC6meC6meC6teC7ieC6luC6t+C6geC6peC6seC6reC6geC7hOC6p+C7ieC7g+C6meC7geC6muC6muC6peC6p+C6h+C6meC6reC6mS4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbG8tckxBL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDViYTY2NgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbG8tckxBL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjA3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTY0OTM3MzQ0ODUwMDA0NDY2Ij4i4Lqq4LuI4Lqn4LqZ4LqV4Lq04LqU4LqV4LuN4LuI4Lqc4Lq54LuI4LuD4LqK4LuJ4LqC4Lqt4LqH4Lql4Lqw4Lqa4Lq74LqaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9jbGVhcl9hbGxfYnV0dG9uIiBtc2dpZD0iNzc3NDcyMTM0NDcxNjczMTYwMyI+IuC6peC6tuC6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X3JlbW92ZV9pdGVtX3RpdGxlIiBtc2dpZD0iNjAyNjM5NTg2ODEyOTg1Mjk2OCI+IuC7gOC6reC6u+C6suC6reC6reC6geC6iOC6suC6geC6peC6suC6jeC6geC6suC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9Ijc3OTM2MjQ4NjQ1Mjg4MTg1NjkiPiLguoLgu43gu4nguqHgurngupngu4Hguq3gurHguprguq8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX3JlY2VudF9hcHBzIiBtc2dpZD0iNjU3NjM5Mjk1MTA1Mzk5NDY0MCI+IuC6muC7jeC7iOC6oeC6teC7geC6reC6seC6muC6r+C6l+C6teC7iOC6q+C6suC6geC7jeC7g+C6iuC7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9kaXNtaXNzX3JlY2VudHMiIG1zZ2lkPSI0NTc2MDc2MDc1MjI2NTQwMTA1Ij4i4Lqb4Lq04LqU4LuB4Lqt4Lqx4Lqa4Lqv4Lqr4Lq84LuJ4Lqy4Lqq4Lq44LqU4LqX4Lq14LuI4LuD4LqK4LuJIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfcmVjZW50X2FwcHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODU0MTc2MDgzODY1ODQ1NTQxIj4iMSDgu4Hguq3gurHguprguq/guqvgurzgu4ngurLguqrgurjgupQiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjEwNDA3ODQzNTk3OTQ4OTA3NDQiPiIlZCDgu4Hguq3gurHguprguq/guqvgurzgu4ngurLguqrgurjgupQiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX25vdGlmaWNhdGlvbnNfdGl0bGUiIG1zZ2lkPSI0NzU1MjYxMTY3MTkzODMzMjEzIj4i4Lqa4LuN4LuI4Lqh4Lq14LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9vbmdvaW5nX2V2ZW50c190aXRsZSIgbXNnaWQ9IjE2ODI1MDQ1MTMzMTY4NzkyMDIiPiLgupTgurPgu4DgupngurXgupnguqLgurngu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2xhdGVzdF9ldmVudHNfdGl0bGUiIG1zZ2lkPSI2NTk0NzY3NDM4NTc3NTkzMTcyIj4i4LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfdGl0bGUiIG1zZ2lkPSIyNzgzMTA0ODA3NTUxMjExNjM5Ij4i4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4Lqq4Lqy4LqN4Lqq4Lqy4LqBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfc3VidGl0bGUiIG1zZ2lkPSIxNzUyMDQwMDYyMDg3ODI5MTk2Ij4i4LuB4Lqa4Lqx4LqU4LuA4LqV4Lq14Lqj4Lq14LuA4Lqr4Lq84Lq34Lqt4Luc4LuJ4Lqt4LqN4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3BlcmNlbnRfZm9ybWF0IiBtc2dpZD0iMTA3NzI0NDk0OTMxODI2MTc2MSI+IuC6jeC6seC6h+C7gOC6q+C6vOC6t+C6reC6reC6teC6gSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZCUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRfY2hhcmdlciIgbXNnaWQ9IjQ1NDkxMDU5OTY3NDA1MjI1MjMiPiLguprgu43gu4jguq7guq3guofguq7gurHguprguoHgurLgupnguqrgurLguoHgu4Tgup/gupTgu4nguqfguo0gVVNCLlxu4LqV4LuJ4Lqt4LqH4LuD4LqK4LuJ4Lqq4Lqw4LuA4Lqe4Lqy4Lqw4LuA4LqE4Lq34LuI4Lqt4LqH4Lqq4Lqy4LqB4LqX4Lq14LuI4LuB4LqW4Lqh4Lqh4Lqy4LqZ4Lqz4LuA4LqX4Lq74LuI4Lqy4LqZ4Lqx4LuJ4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3doeSIgbXNnaWQ9IjcyNzkxNjk2MDk1MTgzODYzNzIiPiLguoHgurLgupngupngurPgu4Pguorgu4ngu4HguprgurHgupTgu4DgupXgurXguqPgurUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjMwMjM4ODk5MTY2OTkyNzAyMjQiPiLguoHgurLgupngupXgurHgu4nguofguoTgu4jgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3dpZmlfYnV0dG9uIiBtc2dpZD0iMTczMzkyODE1MTY5ODMxMTkyMyI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQ4Nzk4Nzk2OTg1MDA5NTUzMDAiPiLgu4Lgu53gupTgu4DgupfgurTguofguo3gurvgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fcm90YXRpb24iIG1zZ2lkPSIzNzkwNDgyNTQxMzU3Nzk4NDIxIj4i4Lud4Lq44LqZ4Luc4LuJ4Lqy4LqI4LuN4Lqt4Lqx4LqU4LqV4Lqw4LuC4LqZ4Lqh4Lqx4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19tdXRlX2xhYmVsIiBtc2dpZD0iNTU0NjgyNTQ5OTE3NDI5Mzk2Ij4i4Lqb4Lq04LqU4Lqq4Lq94LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MTE0NTM2MTQ5NjIzMjQ2NzQiPiLguq3gurHgupTgupXgurDgu4LgupnguqHgurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX25vdGlmaWNhdGlvbnMiIG1zZ2lkPSIzOTcxNDYxNzYyODA5MDUxMzciPiLguoHgurLgupngu4Hguojgu4nguofgu4DgupXgurfguq3gupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4i4Lqb4LuI4Lqt4LqN4Lqq4Lqx4LqZ4LqN4Lqy4LqZ4Lqc4LuI4Lqy4LqZIEJsdWV0b290aCDgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2lucHV0X21ldGhvZF9zZXR0aW5nc19jb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjM1MDQyOTI0NzE1MTIzMTc4MjciPiLgupXgurHgu4nguofguoTgu4jgurLguqfgurTgupfgurXguoHgurLgupngupvgu4nguq3gupnguoLgu43gu4nguqHgurngupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3VzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9Ijc1NTE5MDMwODQ0MTYwNTc4MTAiPiLgu4Hgupvgu4ngupngup7gurTguqHgu4Hgupfgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iODM0Njk4MDAxMjcxNTYyMDU3Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LuD4Lqr4LuJ4LuB4Lqt4Lqx4Lqa4LqvIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqH4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZIFVTQj8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iNTE3MTc3NTQxMTE3ODg2NTc1MCI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IOC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C6reC6uOC6m+C6sOC6geC6reC6meC6nuC7iOC6p+C6hyBVU0I/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjUxNjEyMDUyNTg2MzUyNTMyMDYiPiLgu4DgupvgurXgupQgPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiDgu4DguqHgurfgu4jguq3gu4Dguorgurfgu4jguq3guqHgupXgu43gu4jguoHgurHguprguq3gurjgupvgurDguoHguq3gupkgVVNCIOC6meC6teC7ieC6q+C6vOC6t+C6muC7jeC7iD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iMzgwODk4NDkzMTgzMDIyOTg4OCI+IuC7gOC6m+C6teC6lCA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+IOC7gOC6oeC6t+C7iOC6reC6oeC6teC6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6geC6seC6muC6reC6uOC6m+C6sOC6geC6reC6meC7gOC6quC6teC6oSBVU0Ig4LqZ4Lq14LuJ4Lqr4Lq84Lq34Lqa4LuN4LuIPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfdXJpX3Byb21wdCIgbXNnaWQ9IjUxMzQ1MDYyMTQxMzczMzM0MyI+IuC6muC7jeC7iOC6oeC6teC7geC6reC6seC6muC6r+C7g+C6lOC6l+C6teC7iOC6leC6tOC6lOC6leC6seC7ieC6h+C7hOC6m+C7geC6peC7ieC6pyDguqrgurLguqHgurLgupTgu4Dguq7gurHgupTguqfgur3guoHguq7gu4jguqfguqHguoHgurHguprguq3gurjgupvgurDguoHguq3gupngu4DguqrgurXguqEgVVNCIOC6meC6teC7ieC7hOC6lOC7iS4g4Lqq4Lq24LqB4Lqq4Lqy4LuA4Lqe4Lq14LuI4Lqh4LuA4LqV4Lq14Lqh4LqB4LuI4Lq94Lqn4LqB4Lqx4Lqa4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4LuA4Lqq4Lq14Lqh4LqZ4Lq14LuJ4LqX4Lq14LuIIDx4bGlmZjpnIGlkPSJVUkwiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfdXNiX2FjY2Vzc29yeSIgbXNnaWQ9IjQ5NjYyNjUyNjM0NjUxODEzNzIiPiLguq3gurjgupvgurDguoHguq3gupngu4DguqrgurXguqEgVVNCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfdmlldyIgbXNnaWQ9IjYzMDQ1NjU1NTMyMTgxOTI5OTAiPiLgu4DguprgurTgu4jguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2RldmljZSIgbXNnaWQ9IjE0NTAyODc0MzcwMTczMTU5MDYiPiLgu4Pguorgu4ngu4DgupvgurHgupnguoTgu4jgurLgu4DguqXgurXgu4jguqHgupXgurvgu4ngupnguqrgurPguqXgurHguprguq3gurjgupvgurDguoHguq3gupkgVVNCIOC6meC6teC7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfYWNjZXNzb3J5IiBtc2dpZD0iMTIxMDk1NDU3Njk3OTYyMTU5NiI+IuC7g+C6iuC7ieC6hOC7iOC6suC7gOC6peC6teC7iOC6oeC6leC6u+C7ieC6meC6quC6s+C6peC6seC6muC6reC6uOC6m+C6sOC6geC6reC6meC7gOC6quC6teC6oSBVU0Ig4LqZ4Lq14LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfdGl0bGUiIG1zZ2lkPSI0NTEzOTE4MzkzMzg3MTQxOTQ5Ij4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LqB4Lqy4LqZ4LqU4Lq14Lqa4Lqx4LuK4LqB4Lqc4LuI4Lqy4LqZIFVTQj8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX21lc3NhZ2UiIG1zZ2lkPSIyMjIwMTQzODU1OTEyMzc2NDk2Ij4i4Lql4Lqy4LqN4LqZ4Lq04LuJ4Lqh4Lq3IFJTQSDguoLguq3guofguoTguq3guqHgup7gurTguqfgu4DgupXgurXgu4HguqHgu4jgupk6XG48eGxpZmY6ZyBpZD0iRklOR0VSUFJJTlQiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiLguq3gurDgupngurjguo3gurLgupTguojgurLguoHguoTguq3guqHgup7gurTguqfgu4DgupXgurXgupngurXgu4ngupXgurDguqvgurzguq3gupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiLguorgurnguqHgu4Pguqvgu4ngu4DgupXgurHguqHgu5zgu4ngurLguojgu40iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4i4Lqb4Lqx4Lqa4LuD4Lqr4LuJ4LuA4LqV4Lqx4Lqh4Luc4LuJ4Lqy4LqI4LuNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IuC6geC6s+C6peC6seC6h+C6muC6seC6meC6l+C6tuC6geC6ruC6ueC6muC7nOC7ieC6suC6iOC7jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IuC6geC6s+C6peC6seC6h+C6muC6seC6meC6l+C6tuC6geC6nuC6suC6muC7nOC7ieC6suC6iOC7jS4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i4LqB4Lqz4Lql4Lqx4LqH4Lqa4Lqx4LqZ4LqX4Lq24LqB4Lqe4Lqy4Lqa4Luc4LuJ4Lqy4LqI4LuNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2ZWRfdGl0bGUiIG1zZ2lkPSI2NDYxODY1OTYwOTYxNDE0OTYxIj4i4LqW4LuI4Lqy4LqN4Lqu4Lq54Lqa4Luc4LuJ4Lqy4LqI4LuN4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90ZXh0IiBtc2dpZD0iMTE1MjgzOTY0NzY3NzU1ODgxNSI+IuC7geC6leC6sOC7gOC6nuC6t+C7iOC6reC7gOC6muC6tOC7iOC6h+C6nuC6suC6muC7nOC7ieC6suC6iOC7jeC6guC6reC6h+C6l+C7iOC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X2ZhaWxlZF90aXRsZSIgbXNnaWQ9IjcwNTc4MTExNjc0NjkyMjc3MSI+IuC6muC7jeC7iOC6quC6suC6oeC6suC6lOC6luC7iOC6suC6jeC6ruC6ueC6muC7nOC7ieC6suC6iOC7jeC7hOC6lOC7iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RleHQiIG1zZ2lkPSI4MTM0MDExMjY5NTcyNDE1NDAyIj4i4Lqa4LuN4LuI4Lqq4Lqy4Lqh4Lqy4LqU4Lqa4Lqx4LqZ4LqX4Lq24LqB4Lqe4Lqy4Lqa4Luc4LuJ4Lqy4LqI4LuN4LuE4LqU4LuJLiDguprgu4jguq3gupnguojgurHgupTgu4DguoHgurHguprguq3gurLgupTguoHgurPguqXgurHguofgupbgurfguoHgupngurPgu4Pguorgu4nguqLgurngu4guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3ByZWZlcmVuY2VfdGl0bGUiIG1zZ2lkPSI2NTUxMDUwMzc3Mzg4ODgyNzg3Ij4iVVNCIOC7guC6leC7gOC6peC6t+C6reC6geC6geC6suC6meC6jeC7ieC6suC6jeC7hOC6n+C6peC7jCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9tdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNDMzMzUwNDQxMzU2MzAyMzYyNiI+IuC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC7gOC6m+C6seC6mSBtZWRpYSBwbGF5ZXIgKE1UUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfcHRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9Ijc1MTcxMjc1NDAzMDE2MjU3NTEiPiLgu4Dguorgurfgu4jguq3guqHgupXgu43gu4jgu4DgupvgurHgupnguoHgu4nguq3guofgupbgu4jgurLguo3guq7gurngupogKFBUUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsZXJfY2RfYnV0dG9uX3RpdGxlIiBtc2dpZD0iMjMxMjY2NzU3ODU2MjIwMTU4MyI+IuC6leC6tOC6lOC6leC6seC7ieC6h+C7geC6reC6seC6muC6ryBBbmRyb2lkIEZpbGUgVHJhbnNmZXIg4Lqq4Lqz4Lql4Lqx4LqaIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmFjayIgbXNnaWQ9IjU2NzAxMTUzODk5NDQyOTEyMCI+IuC6geC6seC6muC6hOC6t+C6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiLgu5zgu4ngurLgupfgurPguq3gurTgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiLgu4DguqHgupngurkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiLgu4Hguq3gurHguprguq/guqvgurzgu4ngurLguqrgurjgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiLguorguq3guoHguqvgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4i4LqB4LuJ4Lqt4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiLgupvgurjgu4jguqHguqrgurDguqXgurHguprguq7gurnguprgu4HguprguprguoHgurLgupngupvgu4nguq3gupnguoLgu43gu4nguqHgurngupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IuC6m+C6uOC7iOC6oeC6iuC6ueC6oeC6l+C6teC7iOC7g+C6iuC7ieC6ruC7iOC6p+C6oeC6geC6seC6meC7hOC6lOC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+IuC6iuC6ueC6oeC6iOC7jeC6meC7ieC6reC6jeC7hOC6m+C7gOC6m+C6seC6meC6iOC7jeC6guC6sOC6q+C6meC6suC6lOC7g+C6q+C6jeC7iC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9jb25uZWN0ZWQiIG1zZ2lkPSIyNzA3MDI3NjMzMjQyOTgzMzcwIj4i4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuIIEJsdWV0b290aCDgu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfZGlzY29ubmVjdGVkIiBtc2dpZD0iNzQxNjY0ODY2OTk3Njg3MDE3NSI+IkJsdWV0b290aCDgupbgurfguoHgupXgurHgupTguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4jgu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19iYXR0ZXJ5IiBtc2dpZD0iMzU4MzQzMDIyMzUyODIwOTQ2Ij4i4LuB4Lqa4Lqx4LqU4LuA4LqV4Lq14Lqj4Lq14Lud4Lq74LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9vbmVfYmFyIiBtc2dpZD0iNzc3NDg4NzcyMTg5MTA1NzUyMyI+IuC7geC6muC6seC6lOC7gOC6leC6teC6o+C6teC6meC6tuC7iOC6h+C6guC6teC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfdHdvX2JhcnMiIG1zZ2lkPSI4NTAwNjUwNDM4NzM1MDA5OTczIj4i4LuB4Lqa4Lqx4LqU4LuA4LqV4Lq14Lqj4Lq14Lqq4Lqt4LqH4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90aHJlZV9iYXJzIiBtc2dpZD0iMjMwMjk4MzMzMDg2NTA0MDQ0NiI+IuC7geC6muC6seC6lOC7gOC6leC6teC6o+C6teC6quC6suC6oeC6guC6teC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfZnVsbCIgbXNnaWQ9Ijg5MDkxMjI0MDE3MjAxNTg1ODIiPiLgu4HguprgurHgupTgu4DgupXgurXguqPgurXgu4DgupXgurHguqEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19waG9uZSIgbXNnaWQ9IjQ4OTQ3MDg5MzcwNTI2MTEyODEiPiLguprgu43gu4jguqHgurXgu4LgupfguqXgurDguqrgurHgupouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9vbmVfYmFyIiBtc2dpZD0iNjg3Njk5Mjc4MTMyNjY0MTE1Ij4i4Lqq4Lqx4LqZ4LqN4Lqy4LqZ4LqZ4Lq24LuI4LqH4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdHdvX2JhcnMiIG1zZ2lkPSI4Mzg0OTA1MzgyODA0ODE1MjAxIj4i4Lqq4Lqx4LqZ4LqN4Lqy4LqZ4Lqq4Lqt4LqH4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdGhyZWVfYmFycyIgbXNnaWQ9Ijg1MjE5MDQ4NDM5MTk5NzE4ODUiPiLguqrgurHgupnguo3gurLgupnguqrgurLguqHguoLgurXgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9zaWduYWxfZnVsbCIgbXNnaWQ9IjY0NzE4MzQ4Njg1ODA3NTc4OTgiPiLguqrgurHgupnguo3gurLgupngu4DgupXgurHguqEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19kYXRhIiBtc2dpZD0iNDc5MTk2NjI5NTA5Njg2NzU1NSI+IuC6muC7jeC7iOC6oeC6teC6guC7jeC7ieC6oeC6ueC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfb25lX2JhciIgbXNnaWQ9IjE0MTU2MjU4MzMyMzgyNzM2MjgiPiLguoLgu43gu4nguqHgurngupngupngurbgu4jguofguoLgurXgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3R3b19iYXJzIiBtc2dpZD0iNjE2NjAxODQ5MjM2MDQzMjA5MSI+IuC6guC7jeC7ieC6oeC6ueC6meC6quC6reC6h+C6guC6teC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfdGhyZWVfYmFycyIgbXNnaWQ9IjkxNjc2NzA0NTIzOTUwMzg1MjAiPiLguoLgu43gu4nguqHgurngupnguqrgurLguqHguoLgurXgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3NpZ25hbF9mdWxsIiBtc2dpZD0iMjcwODM4NDYwODEyNDUxOTM2OSI+IuC6quC6seC6meKAi+C6jeC6suC6meC6guC7jeC7ieC6oeC6ueC6meKAi+C7gOC6leC6seC6oS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb2ZmIiBtc2dpZD0iMzE3NzM4MDI5NjY5NzkzMzYyNyI+IldpRmkg4Lqb4Lq04LqU4Lqi4Lq54LuILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2lmaSIgbXNnaWQ9IjE0MjU0NzY1NTE4Mjc5MjQ0NzQiPiLgupXgurHgupTguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4ggV2ktRmkg4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9vbmVfYmFyIiBtc2dpZD0iNzczNTg5MzE3ODAxMDcyNDM3NyI+IuC6quC6seC6meC6jeC6suC6mSBXaS1GaSDgupngurbgu4jguofguoLgurXgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3R3b19iYXJzIiBtc2dpZD0iNDk5NDI3NDI1MDQ5NzI2MjQzNCI+IuC6quC6seC6meC6jeC6suC6mSBXaS1GaSDguqrguq3guofguoLgurXgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3RocmVlX2JhcnMiIG1zZ2lkPSIzNDk1NzU1MDQ0Mjc2NTg4Mzg0Ij4iV2lmaSDguqrgurLguqHguoLgurXgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IuC6quC6seC6meC6jeC6suC6mSBXaS1GaSDgu4DgupXgurHguqEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpbWF4IiBtc2dpZD0iNDMyOTE4MDEyOTcyNzYzMDM2OCI+IuC6muC7jeC7iOC6oeC6tSBXaU1BWC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X29uZV9iYXIiIG1zZ2lkPSI0MTcwOTk0Mjk5MDExODYzNjQ4Ij4iV2lNQVgg4LqZ4Lq24LuI4LqH4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdHdvX2JhcnMiIG1zZ2lkPSI5MTc2MjM2ODU4MzM2NTAyMjg4Ij4iV2lNQVgg4Lqq4Lqt4LqH4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiJXaU1BWCDguqrgurLguqHguoLgurXgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3NjgwODk5ODY3OTU1Nzk1NTgiPiLguqrgurHgupnigIvguo3gurLgupkgV2lNQVgg4LuA4LqV4Lqx4LqhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fc2lnbmFsIiBtc2dpZD0iNzA2NDY0NTMyMDc4MjU4NTE2NyI+IuC6muC7jeC7iOC6oeC6teC6quC6seC6meC6jeC6suC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4i4Lqa4LuN4LuI4LuE4LqU4LuJ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfemVyb19iYXJzIiBtc2dpZD0iMzgwNjA2MDIyNDQ2NzAyNzg4NyI+IuC6muC7jeC7iOC6oeC6teC6iOC6seC6geC6guC6teC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X29uZV9iYXIiIG1zZ2lkPSIxNjg1NzMwMTEzMTkyMDgxODk1Ij4i4LqZ4Lq24LuI4LqH4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHdvX2JhcnMiIG1zZ2lkPSI2NDM3MzYzNjQ4Mzg1MjA2Njc5Ij4i4Lqq4Lqt4LqH4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdGhyZWVfYmFycyIgbXNnaWQ9IjI2NDgyNDE0MTUxMTkzOTY2NDgiPiLguqrgurLguqHguoLgurXgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zaWduYWxfZnVsbCIgbXNnaWQ9IjkxMjI5MjI4ODY1MTk2NzY4MzkiPiLguqrgurHgupnguo3gurLgupngu4DgupXgurHguqEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29uIiBtc2dpZD0iMjM4NTI1NDY5MzYyNDM0NTI2NSI+IuC7gOC6m+C6teC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb2ZmIiBtc2dpZD0iNjQ3NTUwODE1Nzc4Njg1MzE1NyI+IuC6m+C6tOC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfY29ubmVjdGVkIiBtc2dpZD0iODM2NjI1NjY5MzcxOTQ5OTY2NSI+IuC7gOC6iuC6t+C7iOC6reC6oeKAi+C6leC7jeC7iOC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9ncHJzIiBtc2dpZD0iMTYwNjQ3NzIyNDQ4Njc0Nzc1MSI+IkdQUlMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8xeCIgbXNnaWQ9Ijk5NDEzMzQ2ODEyMDI0NDAxOCI+IjEgWCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2hzcGEiIG1zZ2lkPSIyMDMyMzI4ODU1NDYyNjQ1MTk4Ij4iSFNQQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzNnIiBtc2dpZD0iODYyODU2MjMwNTAwMzU2ODI2MCI+IjNHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMy41ZyIgbXNnaWQ9Ijg2NjQ4NDU2MDk5ODE2OTIwMDEiPiIzLjVHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fNGciIG1zZ2lkPSI3NzQxMDAwNzUwNjMwMDg5NjEyIj4iNEciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9sdGUiIG1zZ2lkPSI1NDEzNDY4ODA4NjM3NTQwNjU4Ij4iTFRFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fY2RtYSIgbXNnaWQ9IjYxMzI2NDgxOTM5Nzg4MjMwMjMiPiJDRE1BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fcm9hbWluZyIgbXNnaWQ9IjU5NzczNjIzMzM0NjY1NTYwOTQiPiLgu4LguqPguqHguqHgurTguociPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9lZGdlIiBtc2dpZD0iNDQ3NzQ1NzA1MTYzMTk3OTI3OCI+IkVkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl93aWZpIiBtc2dpZD0iMjMyNDQ5Njc1NjU5MDY0NTIyMSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaW0iIG1zZ2lkPSI4Mjc0MDE3MTE4NDcyNDU1MTU1Ij4i4Lqa4LuN4LuI4Lqh4Lq14LqK4Lq04LqhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX3RldGhlciIgbXNnaWQ9IjQxMDI3ODQ0OTgxNDAyNzE5NjkiPiLguoHgurLgupngupvgu4jguq3guo3guqrgurHgupnguo3gurLgupkgQmx1ZXRvb3RoLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYWlycGxhbmVfbW9kZSIgbXNnaWQ9IjgzNDc0ODk5OTc5MDc2MzA5MiI+IuC7guC7neC6lOC7g+C6meC6jeC6u+C6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfbGV2ZWwiIG1zZ2lkPSI3NDUxNDc0MTg3MTEzMzcxOTY1Ij4i4LuB4Lqa4Lqx4LqU4LuA4LqV4Lq14Lqj4Lq1IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgu4DgupvgurXgu4DguorgurHgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI3OTk1ODM5MTEyMzE4OTMzODAiPiLguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLguqXgurDguprgurvgupouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25zX2J1dHRvbiIgbXNnaWQ9IjQ0OTgwMDAzNjk3Nzk0MjE4OTIiPiLguoHgurLgupngu4Hguojgu4nguofgu4DgupXgurfguq3gupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZW1vdmVfbm90aWZpY2F0aW9uIiBtc2dpZD0iMzYwMzA5OTUxNDkwMjE4MjM1MCI+IuC6peC6tuC6muC6peC7ieC6suC6h+C6geC6suC6meC7geC6iOC7ieC6h+C7gOC6leC6t+C6reC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19lbmFibGVkIiBtc2dpZD0iMzUxMTQ2OTQ5OTI0MDEyMzAxOSI+IkdQUyDgu4DgupvgurXgupTgu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfYWNxdWlyaW5nIiBtc2dpZD0iODk1OTMzMzM1MTA1ODk2NzE1OCI+IuC6geC6s+C6peC6seC6h+C6iuC6reC6geC6q+C6siBHUFMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90dHlfZW5hYmxlZCIgbXNnaWQ9IjQ2MTMyMDAzNjUzNzk0MjY1NjEiPiJUZWxlVHlwZXdyaXRlciDgupbgurfguoHgu4DgupvgurXgupTguqLgurngu4guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfdmlicmF0ZSIgbXNnaWQ9IjY2NjU4NTM2MzM2NDE1NTA1NSI+IuC6quC6seC7iOC6meC7gOC6leC6t+C6reC6meC6nuC7ieC6reC6oeC6quC6veC6h+C7gOC6reC6teC7ieC6meC7gOC6guC6u+C7ieC6si4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl9zaWxlbnQiIG1zZ2lkPSI5MDYxMjQzMzA3OTM5MTM1MzgzIj4i4Lqb4Lq04LqU4Lqq4Lq94LqHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50c19pdGVtX2Rpc21pc3NlZCIgbXNnaWQ9IjY4MDM1NzQ5MzUwODQ4NjcwNzAiPiLgupvgurTgupQgPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IOC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdGlmaWNhdGlvbl9kaXNtaXNzZWQiIG1zZ2lkPSI4NTQyMTEzODcxODYzMDY5MjciPiLgupvgurTgupTguoHgurLgupngu4Hguojgu4nguofgu4DgupXgurfguq3gupngu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX25vdGlmaWNhdGlvbl9zaGFkZSIgbXNnaWQ9IjQ2OTAyNzQ4NDQ0NDc1MDQyMDgiPiLgu5zgu4ngurLguojgu43gu4Hguojgu4nguofgu4DgupXgurfguq3gupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3F1aWNrX3NldHRpbmdzIiBtc2dpZD0iNjE4NjM3ODQxMTU4MjQzNzA0NiI+IuC6geC6suC6meC6leC6seC7ieC6h+C6hOC7iOC6suC6lOC7iOC6p+C6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfcmVjZW50X2FwcHMiIG1zZ2lkPSI5MDE0MDMyOTE2NDEwNTkwMDI3Ij4i4LuB4Lqt4Lqx4Lqa4Lqv4LqX4Lq14LuI4Lqr4Lqy4LqB4LuN4LuD4LqK4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfdXNlciIgbXNnaWQ9IjExMDQ4NDY2OTk4Njk0NzY4NTUiPiLgupzgurngu4jgu4Pguorgu4kgPHhsaWZmOmcgaWQ9IlVTRVIiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3dpZmkiIG1zZ2lkPSI2MDk5NzgxMDMxNjY5NzI4NzA5Ij4iPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJORVRXT1JLIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbW9iaWxlIiBtc2dpZD0iNDg3NjgwNjU2NDA4NjI0MTM0MSI+IuC6oeC6t+C6luC6tyA8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9IlRZUEUiPiUyJHM8L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTMkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IuC7geC6muC6seC6lOC7gOC6leC6teC6o+C6tSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IuC7guC7neC6lOC7g+C6meC6jeC6u+C6mSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGggPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiLguqrgurDigIvgupbgurLgupnigIvgupfgurXgu4ggPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiLgupXgurHgu4nguofgu4LguqHguofgupvgurjguoEgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPiDgu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4i4Lqt4Lq04LqZ4LuA4LqV4Lq14LuA4LqZ4Lqx4LqUIDJH4oCLLCAzRyDgupbgurfguoHgupvgurTgupTgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiLguoHgurLgupngupngurPgu4Pguorgu4nguoLgu43gu4nguqHgurngupkgNEcg4LqW4Lq34LqB4Lqb4Lq04LqU4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfbW9iaWxlX3RpdGxlIiBtc2dpZD0iMTA0NjA0NzI0ODg0NDgyMTIwMiI+IuC6reC6tOC6meC7gOC6leC6teC7gOC6meC6seC6lOC7g+C6meC6oeC6t+C6luC6t+C6luC6t+C6geC6m+C6tOC6lOC6geC6suC6meC6meC6s+C7g+C6iuC7ieC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMjA4NjgxNTMwNDg1ODk2NDk1NCI+IuC6reC6tOC6meC7gOC6leC6teC7gOC6meC6seC6lOC6luC6t+C6geC6m+C6tOC6lOC6geC6suC6meC6meC6s+C7g+C6iuC7ieC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nIiBtc2dpZD0iMzg1MzExNzI2OTA1MTgwNjI4MCI+IuC6l+C7iOC6suC6meC7hOC6lOC7ieC7g+C6iuC7ieC6guC7jeC7ieC6oeC6ueC6meC6iOC6u+C6meC6ruC6reC6lOC6iOC6s+C6meC6p+C6meC6l+C6teC7iOC6iOC6s+C6geC6seC6lOC7hOC6p+C7ieC7geC6peC7ieC6py5cblxu4Lqr4Lqy4LqB4LqX4LuI4Lqy4LqZ4LuA4Lqb4Lq14LqU4LqZ4Lqz4LuD4LqK4LuJ4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqE4Lq34LqZ4Lqt4Lq14LqB4LqE4Lqx4LuJ4LqHLCDgupfgu4jgurLgupnguq3gurLgupTgupbgurfguoHguq7gur3guoHgu4DguoHgurHguprgu4DguofgurTgupngu4LgupTguo3gupzgurngu4jgu4Pguqvgu4nguprgu43guqXgurTguoHgurLgupngu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfZW5hYmxlIiBtc2dpZD0iNzcyOTc3MjAzOTIwODY2NDYwNiI+IuC7gOC6m+C6teC6lOC6meC6s+C7g+C6iuC7ieC6guC7jeC7ieC6oeC6ueC6meC6hOC6t+C6meC7g+C7neC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX2Rpc2Nvbm5lY3RlZCIgbXNnaWQ9IjE5NDAyMzE1MjEyNzQxNDc3NzEiPiLguprgu43gu4jguqHgurXguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4jguq3gurTgupngu4DgupXgurXgu4DgupngurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiLgu4Dguorgurfgu4jguq3guqHigIvgupXgu43gu4ggV2kt4oCLLUZpIOC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4i4LqB4Lqz4Lql4Lqx4LqH4LqK4Lqt4LqB4Lqr4LqyIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiLguqrgurDgupbgurLgupngupfgurXgu4jguoHgurPgupngurvgupTgu4LgupTguo0gR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4i4LqB4Lqy4LqZ4Lqu4LuJ4Lqt4LqH4LqC4LuN4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4LqX4Lq14LuI4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4Lqi4Lq54LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4i4Lql4Lq24Lqa4LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZ4LqX4Lqx4LqH4Lud4Lq74LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiLguoLgu43gu4nguqHgurngupngu4Hguq3gurHguprguq8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IuC7nOC7ieC6suC6iOC7jeC6iOC6sOC7neC6uOC6meC7guC6lOC6jeC6reC6seC6lOC6leC6sOC7guC6meC6oeC6seC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IuC7nOC7ieC6suC6iOC7jeC6luC6t+C6geC6peC6seC6reC6geC7g+C6meC6peC6p+C6h+C6meC6reC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fcG9ydHJhaXQiIG1zZ2lkPSI1ODA5MzY3NTIxNjQ0MDEyMTE1Ij4i4Luc4LuJ4Lqy4LqI4LuN4LqW4Lq34LqB4Lql4Lqx4Lqt4LqB4Lqi4Lq54LuI4LuD4LqZ4LuC4Lud4LqU4LuB4LqZ4Lqn4LqV4Lqx4LuJ4LqHLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiLguoHgu4jguq3guofguoLguq3guofguqvguqfgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iRGF5ZHJlYW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJFdGhlcm5ldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4i4LuC4Lud4LqU4Lqi4Lq54LuI4LuD4LqZ4LqN4Lq74LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2luZ19sYWJlbCIgbXNnaWQ9IjQ5MDA3NDc3NDQ2NTMwOTIwOSI+IuC6geC6s+C6peC6seC6h+C6quC6suC6gSwgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JhdHRlcnlfY2hhcmdlZF9sYWJlbCIgbXNnaWQ9Ijg4NjU0MTMwNzk0MTQyNDYwODEiPiLguqrgurLguoHgu4DgupXgurHguqHgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbGFiZWwiIG1zZ2lkPSI2MzA0MTkwMjg1MTcwNzIxNDAxIj4iQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX211bHRpcGxlX2RldmljZXNfbGFiZWwiIG1zZ2lkPSIzOTEyMjQ1NTY1NjEzNjg0NzM1Ij4iQmx1ZXRvb3RoICg8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9vZmZfbGFiZWwiIG1zZ2lkPSI4MTU5NjUyMTQ2MTQ5MjE5OTM3Ij4iQmx1ZXRvb3RoIOC6m+C6tOC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI2OTY4MzcyMjk3MDE4NzU1ODE1Ij4i4LqE4Lqn4Lqy4Lqh4Lqq4Lqw4Lqr4Lqn4LuI4Lqy4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fdW5sb2NrZWRfbGFiZWwiIG1zZ2lkPSIzMzYwNTQ5MzAzNjI1ODA1ODQiPiLgu53gurjgupngu5zgu4ngurLguojgu43guq3gurHgupTgupXgurDgu4LgupnguqHgurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4i4Lql4Lqx4Lqt4LqB4LqB4Lqy4LqZ4Lqb4LuI4Lq94LqZ4Lql4Lqn4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+IuC6p+C6tOC6l+C6teC6geC6suC6meC6m+C7ieC6reC6meC6guC7jeC7ieC6oeC6ueC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+IuC6quC6sOC6luC6suC6meC6l+C6teC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiLguoLgu43gu4nguqHgurngupnguqrgurDgupbgurLgupngupfgurXgu4jgupvgurTgupTguqLgurngu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4i4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4Lqq4Lq34LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9sYWJlbCIgbXNnaWQ9Ijc3MjU2NzEzMzU1NTA2OTU1ODkiPiJSU1NJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9lbWVyZ2VuY3lfb25seSIgbXNnaWQ9IjI3MTM3NzQwNDE2NzI4ODY3NTAiPiLgu4LgupfguqrgurjguoHgu4DguqrgurXgupngu4Dgupfgurvgu4jgurLgupngurHgu4ngupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19zZXR0aW5nc19sYWJlbCIgbXNnaWQ9IjUzMjY1NTY1OTI1NzgwNjU0MDEiPiLguoHgurLgupngupXgurHgu4nguofguoTgu4jgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc190aW1lX2xhYmVsIiBtc2dpZD0iNDYzNTk2OTE4MjIzOTczNjQwOCI+IuC7gOC6p+C6peC6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3VzZXJfbGFiZWwiIG1zZ2lkPSI1MjM4OTk1NjMyMTMwODk3ODQwIj4i4LqC4LuJ4Lqt4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9sYWJlbCIgbXNnaWQ9IjkxMzUzNDQ3MDQ4OTk1NDYwNDEiPiJXaeKAiy1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm90X2Nvbm5lY3RlZCIgbXNnaWQ9IjcxNzE5MDQ4NDUzNDU1NzM0MzEiPiLguprgu43gu4jgu4TgupTgu4ngu4Dguorgurfgu4jguq3guqHgupXgu43gu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vX25ldHdvcmsiIG1zZ2lkPSIyMjIxOTkzMDc3MjIwODU2Mzc2Ij4i4Lqa4LuN4LuI4Lqh4Lq14LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9vZmZfbGFiZWwiIG1zZ2lkPSI3NTU4Nzc4MTAwODQzODg1ODY0Ij4iV2nigIstRmkg4Lqb4Lq04LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X2xhYmVsIiBtc2dpZD0iNjg5MzU5Mjk2NDQ2MzYyNDMzMyI+IuC6iOC7jeC6quC6sOC7geC6lOC6h+C6nOC6u+C6mSBXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IuC6geC6suC6meC6quC6sOC7geC6lOC6h+C6nOC6u+C6meC7hOC6ruC7ieC6quC6suC6jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IuC6hOC6p+C6suC6oeC7geC6iOC7ieC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiLguq3gurHgupTgupXgurDgu4LgupnguqHgurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4i4LuC4Lud4LqU4Lqq4Lqw4Lql4Lqx4Lqa4Lqq4Lq1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4i4LuC4Lud4LqU4LqE4Lqn4Lqy4Lqh4LqV4LuI4Lqy4LqH4LuB4Lqq4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiLgu4Lgu53gupTguoHgurLgupngu4HguoHgu4ngu4TguoLguqrgurUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+IuC7gOC6hOC6t+C6reC6hOC7iOC6suC6jeC6reC6suC6lFxu4LqW4Lq34LqB4LqV4Lq04LqU4LqV4Lqy4LqhIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWxvL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1sby9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWIxMGY3Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1sby9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIwNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAwOSwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzE2NDkzNzM0NDg1MDAwNDQ2NiI+IuC6quC7iOC6p+C6meC6leC6tOC6lOC6leC7jeC7iOC6nOC6ueC7iOC7g+C6iuC7ieC6guC6reC6h+C6peC6sOC6muC6u+C6miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfY2xlYXJfYWxsX2J1dHRvbiIgbXNnaWQ9Ijc3NzQ3MjEzNDQ3MTY3MzE2MDMiPiLguqXgurbgupoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9yZW1vdmVfaXRlbV90aXRsZSIgbXNnaWQ9IjYwMjYzOTU4NjgxMjk4NTI5NjgiPiLgu4Dguq3gurvgurLguq3guq3guoHguojgurLguoHguqXgurLguo3guoHgurLgupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSI3NzkzNjI0ODY0NTI4ODE4NTY5Ij4i4LqC4LuN4LuJ4Lqh4Lq54LqZ4LuB4Lqt4Lqx4Lqa4LqvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19yZWNlbnRfYXBwcyIgbXNnaWQ9IjY1NzYzOTI5NTEwNTM5OTQ2NDAiPiLguprgu43gu4jguqHgurXgu4Hguq3gurHguprguq/gupfgurXgu4jguqvgurLguoHgu43gu4Pguorgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfZGlzbWlzc19yZWNlbnRzIiBtc2dpZD0iNDU3NjA3NjA3NTIyNjU0MDEwNSI+IuC6m+C6tOC6lOC7geC6reC6seC6muC6r+C6q+C6vOC7ieC6suC6quC6uOC6lOC6l+C6teC7iOC7g+C6iuC7iSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X3JlY2VudF9hcHBzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg1NDE3NjA4Mzg2NTg0NTU0MSI+IjEg4LuB4Lqt4Lqx4Lqa4Lqv4Lqr4Lq84LuJ4Lqy4Lqq4Lq44LqUIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMDQwNzg0MzU5Nzk0ODkwNzQ0Ij4iJWQg4LuB4Lqt4Lqx4Lqa4Lqv4Lqr4Lq84LuJ4Lqy4Lqq4Lq44LqUIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19ub3RpZmljYXRpb25zX3RpdGxlIiBtc2dpZD0iNDc1NTI2MTE2NzE5MzgzMzIxMyI+IuC6muC7jeC7iOC6oeC6teC6geC6suC6meC7geC6iOC7ieC6h+C7gOC6leC6t+C6reC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfb25nb2luZ19ldmVudHNfdGl0bGUiIG1zZ2lkPSIxNjgyNTA0NTEzMzE2ODc5MjAyIj4i4LqU4Lqz4LuA4LqZ4Lq14LqZ4Lqi4Lq54LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9sYXRlc3RfZXZlbnRzX3RpdGxlIiBtc2dpZD0iNjU5NDc2NzQzODU3NzU5MzE3MiI+IuC6geC6suC6meC7geC6iOC7ieC6h+C7gOC6leC6t+C6reC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3RpdGxlIiBtc2dpZD0iMjc4MzEwNDgwNzU1MTIxMTYzOSI+IuC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC6quC6suC6jeC6quC6suC6gSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3N1YnRpdGxlIiBtc2dpZD0iMTc1MjA0MDA2MjA4NzgyOTE5NiI+IuC7geC6muC6seC6lOC7gOC6leC6teC6o+C6teC7gOC6q+C6vOC6t+C6reC7nOC7ieC6reC6jeC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19wZXJjZW50X2Zvcm1hdCIgbXNnaWQ9IjEwNzcyNDQ5NDkzMTgyNjE3NjEiPiLguo3gurHguofgu4Dguqvgurzgurfguq3guq3gurXguoEgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQlJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkX2NoYXJnZXIiIG1zZ2lkPSI0NTQ5MTA1OTk2NzQwNTIyNTIzIj4i4Lqa4LuN4LuI4Lqu4Lqt4LqH4Lqu4Lqx4Lqa4LqB4Lqy4LqZ4Lqq4Lqy4LqB4LuE4Lqf4LqU4LuJ4Lqn4LqNIFVTQi5cbuC6leC7ieC6reC6h+C7g+C6iuC7ieC6quC6sOC7gOC6nuC6suC6sOC7gOC6hOC6t+C7iOC6reC6h+C6quC6suC6geC6l+C6teC7iOC7geC6luC6oeC6oeC6suC6meC6s+C7gOC6l+C6u+C7iOC6suC6meC6seC7ieC6mS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd193aHkiIG1zZ2lkPSI3Mjc5MTY5NjA5NTE4Mzg2MzcyIj4i4LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4LuB4Lqa4Lqx4LqU4LuA4LqV4Lq14Lqj4Lq1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zZXR0aW5nc19idXR0b24iIG1zZ2lkPSIzMDIzODg5OTE2Njk5MjcwMjI0Ij4i4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc193aWZpX2J1dHRvbiIgbXNnaWQ9IjE3MzM5MjgxNTE2OTgzMTE5MjMiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0ODc5ODc5Njk4NTAwOTU1MzAwIj4i4LuC4Lud4LqU4LuA4LqX4Lq04LqH4LqN4Lq74LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX3JvdGF0aW9uIiBtc2dpZD0iMzc5MDQ4MjU0MTM1Nzc5ODQyMSI+IuC7neC6uOC6meC7nOC7ieC6suC6iOC7jeC6reC6seC6lOC6leC6sOC7guC6meC6oeC6seC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfbXV0ZV9sYWJlbCIgbXNnaWQ9IjU1NDY4MjU0OTkxNzQyOTM5NiI+IuC6m+C6tOC6lOC6quC6veC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTExNDUzNjE0OTYyMzI0Njc0Ij4i4Lqt4Lqx4LqU4LqV4Lqw4LuC4LqZ4Lqh4Lqx4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19ub3RpZmljYXRpb25zIiBtc2dpZD0iMzk3MTQ2MTc2MjgwOTA1MTM3Ij4i4LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmx1ZXRvb3RoX3RldGhlcmVkIiBtc2dpZD0iNzA5NDEwMTYxMjE2MTEzMzI2NyI+IuC6m+C7iOC6reC6jeC6quC6seC6meC6jeC6suC6meC6nOC7iOC6suC6mSBCbHVldG9vdGgg4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9pbnB1dF9tZXRob2Rfc2V0dGluZ3NfY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSIzNTA0MjkyNDcxNTEyMzE3ODI3Ij4i4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4Lqn4Lq04LqX4Lq14LqB4Lqy4LqZ4Lqb4LuJ4Lqt4LqZ4LqC4LuN4LuJ4Lqh4Lq54LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl91c2VfcGh5c2ljYWxfa2V5Ym9hcmQiIG1zZ2lkPSI3NTUxOTAzMDg0NDE2MDU3ODEwIj4i4LuB4Lqb4LuJ4LqZ4Lqe4Lq04Lqh4LuB4LqX4LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjgzNDY5ODAwMTI3MTU2MjA1NyI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC7g+C6q+C7ieC7geC6reC6seC6muC6ryA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IOC7gOC6guC6u+C7ieC6suC7gOC6luC6tOC6h+C6reC6uOC6m+C6sOC6geC6reC6mSBVU0I/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjUxNzE3NzU0MTExNzg4NjU3NTAiPiLguq3gurDgupngurjguo3gurLgupTgu4Pguqvgu4ngu4Hguq3gurHguprguq8gPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDgu4DguoLgurvgu4ngurLgu4DgupbgurTguofguq3gurjgupvgurDguoHguq3gupngup7gu4jguqfguocgVVNCPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSI1MTYxMjA1MjU4NjM1MjUzMjA2Ij4i4LuA4Lqb4Lq14LqUIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g4LuA4Lqh4Lq34LuI4Lqt4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LqB4Lqx4Lqa4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZIFVTQiDgupngurXgu4nguqvgurzgurfguprgu43gu4g/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjM4MDg5ODQ5MzE4MzAyMjk4ODgiPiLgu4DgupvgurXgupQgPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiDgu4DguqHgurfgu4jguq3guqHgurXguoHgurLgupngu4Dguorgurfgu4jguq3guqHgupXgu43gu4jguoHgurHguprguq3gurjgupvgurDguoHguq3gupngu4DguqrgurXguqEgVVNCIOC6meC6teC7ieC6q+C6vOC6t+C6muC7jeC7iD8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3VyaV9wcm9tcHQiIG1zZ2lkPSI1MTM0NTA2MjE0MTM3MzMzNDMiPiLguprgu43gu4jguqHgurXgu4Hguq3gurHguprguq/gu4PgupTgupfgurXgu4jgupXgurTgupTgupXgurHgu4nguofgu4Tgupvgu4HguqXgu4nguqcg4Lqq4Lqy4Lqh4Lqy4LqU4LuA4Lqu4Lqx4LqU4Lqn4Lq94LqB4Lqu4LuI4Lqn4Lqh4LqB4Lqx4Lqa4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4LuA4Lqq4Lq14LqhIFVTQiDgupngurXgu4ngu4TgupTgu4kuIOC6quC6tuC6geC6quC6suC7gOC6nuC6teC7iOC6oeC7gOC6leC6teC6oeC6geC7iOC6veC6p+C6geC6seC6muC6reC6uOC6m+C6sOC6geC6reC6meC7gOC6quC6teC6oeC6meC6teC7ieC6l+C6teC7iCA8eGxpZmY6ZyBpZD0iVVJMIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3VzYl9hY2Nlc3NvcnkiIG1zZ2lkPSI0OTY2MjY1MjYzNDY1MTgxMzcyIj4i4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4LuA4Lqq4Lq14LqhIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3ZpZXciIG1zZ2lkPSI2MzA0NTY1NTUzMjE4MTkyOTkwIj4i4LuA4Lqa4Lq04LuI4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9kZXZpY2UiIG1zZ2lkPSIxNDUwMjg3NDM3MDE3MzE1OTA2Ij4i4LuD4LqK4LuJ4LuA4Lqb4Lqx4LqZ4LqE4LuI4Lqy4LuA4Lql4Lq14LuI4Lqh4LqV4Lq74LuJ4LqZ4Lqq4Lqz4Lql4Lqx4Lqa4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZIFVTQiDgupngurXgu4kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2FjY2Vzc29yeSIgbXNnaWQ9IjEyMTA5NTQ1NzY5Nzk2MjE1OTYiPiLgu4Pguorgu4nguoTgu4jgurLgu4DguqXgurXgu4jguqHgupXgurvgu4ngupnguqrgurPguqXgurHguprguq3gurjgupvgurDguoHguq3gupngu4DguqrgurXguqEgVVNCIOC6meC6teC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX3RpdGxlIiBtc2dpZD0iNDUxMzkxODM5MzM4NzE0MTk0OSI+IuC6reC6sOC6meC6uOC6jeC6suC6lOC6geC6suC6meC6lOC6teC6muC6seC7iuC6geC6nOC7iOC6suC6mSBVU0I/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+IuC6peC6suC6jeC6meC6tOC7ieC6oeC6tyBSU0Eg4LqC4Lqt4LqH4LqE4Lqt4Lqh4Lqe4Lq04Lqn4LuA4LqV4Lq14LuB4Lqh4LuI4LqZOlxuPHhsaWZmOmcgaWQ9IkZJTkdFUlBSSU5UIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4i4Lqt4Lqw4LqZ4Lq44LqN4Lqy4LqU4LqI4Lqy4LqB4LqE4Lqt4Lqh4Lqe4Lq04Lqn4LuA4LqV4Lq14LqZ4Lq14LuJ4LqV4Lqw4Lqr4Lq84Lqt4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4i4LqK4Lq54Lqh4LuD4Lqr4LuJ4LuA4LqV4Lqx4Lqh4Luc4LuJ4Lqy4LqI4LuNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+IuC6m+C6seC6muC7g+C6q+C7ieC7gOC6leC6seC6oeC7nOC7ieC6suC6iOC7jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+IuC6hOC6p+C6suC6oeC7gOC6guC6u+C7ieC6suC6geC6seC6meC7hOC6lOC7ieC6guC6reC6h+C6geC6suC6meC6iuC6ueC6oSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiLgu4DguqHgurfgu4jguq3gu4Hguq3gurHguprguq/gupbgurfguoHguq3guq3guoHgu4HguprguprguqHgurLguqrgurPguqXgurHguprgu5zgu4ngurLguojgu43gupngu4nguq3guo3guoHguqfgu4jgurLigIssIOC6leC6u+C6p+C6hOC6p+C6muC6hOC6uOC6oeC6geC6suC6meC6iuC6ueC6oeC6iOC6sOC6m+C6suC6geC6u+C6lOC6ouC6ueC7iOC7g+C6geC7ieC6geC6seC6muC7guC6oeC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4i4LqB4Lqz4Lql4Lqx4LqH4Lqa4Lqx4LqZ4LqX4Lq24LqB4Lqu4Lq54Lqa4Luc4LuJ4Lqy4LqI4LuNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4i4LqB4Lqz4Lql4Lqx4LqH4Lqa4Lqx4LqZ4LqX4Lq24LqB4Lqe4Lqy4Lqa4Luc4LuJ4Lqy4LqI4LuNLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLguoHgurPguqXgurHguofguprgurHgupngupfgurbguoHgup7gurLguprgu5zgu4ngurLguojgu40uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90aXRsZSIgbXNnaWQ9IjY0NjE4NjU5NjA5NjE0MTQ5NjEiPiLgupbgu4jgurLguo3guq7gurnguprgu5zgu4ngurLguojgu43gu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RleHQiIG1zZ2lkPSIxMTUyODM5NjQ3Njc3NTU4ODE1Ij4i4LuB4LqV4Lqw4LuA4Lqe4Lq34LuI4Lqt4LuA4Lqa4Lq04LuI4LqH4Lqe4Lqy4Lqa4Luc4LuJ4Lqy4LqI4LuN4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RpdGxlIiBtc2dpZD0iNzA1NzgxMTE2NzQ2OTIyNzcxIj4i4Lqa4LuN4LuI4Lqq4Lqy4Lqh4Lqy4LqU4LqW4LuI4Lqy4LqN4Lqu4Lq54Lqa4Luc4LuJ4Lqy4LqI4LuN4LuE4LqU4LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGV4dCIgbXNnaWQ9IjgxMzQwMTEyNjk1NzI0MTU0MDIiPiLguprgu43gu4jguqrgurLguqHgurLgupTguprgurHgupngupfgurbguoHgup7gurLguprgu5zgu4ngurLguojgu43gu4TgupTgu4kuIOC6muC7iOC6reC6meC6iOC6seC6lOC7gOC6geC6seC6muC6reC6suC6lOC6geC6s+C6peC6seC6h+C6luC6t+C6geC6meC6s+C7g+C6iuC7ieC6ouC6ueC7iC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHJlZmVyZW5jZV90aXRsZSIgbXNnaWQ9IjY1NTEwNTAzNzczODg4ODI3ODciPiJVU0Ig4LuC4LqV4LuA4Lql4Lq34Lqt4LqB4LqB4Lqy4LqZ4LqN4LuJ4Lqy4LqN4LuE4Lqf4Lql4LuMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX210cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI0MzMzNTA0NDEzNTYzMDIzNjI2Ij4i4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LuA4Lqb4Lqx4LqZIG1lZGlhIHBsYXllciAoTVRQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9wdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNzUxNzEyNzU0MDMwMTYyNTc1MSI+IuC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iOC7gOC6m+C6seC6meC6geC7ieC6reC6h+C6luC7iOC6suC6jeC6ruC6ueC6miAoUFRQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxlcl9jZF9idXR0b25fdGl0bGUiIG1zZ2lkPSIyMzEyNjY3NTc4NTYyMjAxNTgzIj4i4LqV4Lq04LqU4LqV4Lqx4LuJ4LqH4LuB4Lqt4Lqx4Lqa4LqvIEFuZHJvaWQgRmlsZSBUcmFuc2ZlciDguqrgurPguqXgurHgupogTWFjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYWNrIiBtc2dpZD0iNTY3MDExNTM4OTk0NDI5MTIwIj4i4LqB4Lqx4Lqa4LqE4Lq34LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IuC7nOC7ieC6suC6l+C6s+C6reC6tOC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+IuC7gOC6oeC6meC6uSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IuC7geC6reC6seC6muC6r+C6q+C6vOC7ieC6suC6quC6uOC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4i4Lqb4Lq44LuI4Lqh4Lqq4Lqw4Lql4Lqx4Lqa4Lqu4Lq54Lqa4LuB4Lqa4Lqa4LqB4Lqy4LqZ4Lqb4LuJ4Lqt4LqZ4LqC4LuN4LuJ4Lqh4Lq54LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiLgupvgurjgu4jguqHguorgurnguqHgupfgurXgu4jgu4Pguorgu4nguq7gu4jguqfguqHguoHgurHgupngu4TgupTgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiLguorgurnguqHguojgu43gupngu4nguq3guo3gu4Tgupvgu4DgupvgurHgupnguojgu43guoLgurDguqvgupngurLgupTgu4Pguqvguo3gu4guIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfY29ubmVjdGVkIiBtc2dpZD0iMjcwNzAyNzYzMzI0Mjk4MzM3MCI+IuC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iCBCbHVldG9vdGgg4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX2Rpc2Nvbm5lY3RlZCIgbXNnaWQ9Ijc0MTY2NDg2Njk5NzY4NzAxNzUiPiJCbHVldG9vdGgg4LqW4Lq34LqB4LqV4Lqx4LqU4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fYmF0dGVyeSIgbXNnaWQ9IjM1ODM0MzAyMjM1MjgyMDk0NiI+IuC7geC6muC6seC6lOC7gOC6leC6teC6o+C6teC7neC6u+C6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfb25lX2JhciIgbXNnaWQ9Ijc3NzQ4ODc3MjE4OTEwNTc1MjMiPiLgu4HguprgurHgupTgu4DgupXgurXguqPgurXgupngurbgu4jguofguoLgurXgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3R3b19iYXJzIiBtc2dpZD0iODUwMDY1MDQzODczNTAwOTk3MyI+IuC7geC6muC6seC6lOC7gOC6leC6teC6o+C6teC6quC6reC6h+C6guC6teC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfdGhyZWVfYmFycyIgbXNnaWQ9IjIzMDI5ODMzMzA4NjUwNDA0NDYiPiLgu4HguprgurHgupTgu4DgupXgurXguqPgurXguqrgurLguqHguoLgurXgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X2Z1bGwiIG1zZ2lkPSI4OTA5MTIyNDAxNzIwMTU4NTgyIj4i4LuB4Lqa4Lqx4LqU4LuA4LqV4Lq14Lqj4Lq14LuA4LqV4Lqx4LqhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fcGhvbmUiIG1zZ2lkPSI0ODk0NzA4OTM3MDUyNjExMjgxIj4i4Lqa4LuN4LuI4Lqh4Lq14LuC4LqX4Lql4Lqw4Lqq4Lqx4LqaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfb25lX2JhciIgbXNnaWQ9IjY4NzY5OTI3ODEzMjY2NDExNSI+IuC6quC6seC6meC6jeC6suC6meC6meC6tuC7iOC6h+C6guC6teC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3R3b19iYXJzIiBtc2dpZD0iODM4NDkwNTM4MjgwNDgxNTIwMSI+IuC6quC6seC6meC6jeC6suC6meC6quC6reC6h+C6guC6teC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3RocmVlX2JhcnMiIG1zZ2lkPSI4NTIxOTA0ODQzOTE5OTcxODg1Ij4i4Lqq4Lqx4LqZ4LqN4Lqy4LqZ4Lqq4Lqy4Lqh4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2NDcxODM0ODY4NTgwNzU3ODk4Ij4i4Lqq4Lqx4LqZ4LqN4Lqy4LqZ4LuA4LqV4Lqx4LqhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fZGF0YSIgbXNnaWQ9IjQ3OTE5NjYyOTUwOTY4Njc1NTUiPiLguprgu43gu4jguqHgurXguoLgu43gu4nguqHgurngupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX29uZV9iYXIiIG1zZ2lkPSIxNDE1NjI1ODMzMjM4MjczNjI4Ij4i4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqZ4Lq24LuI4LqH4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90d29fYmFycyIgbXNnaWQ9IjYxNjYwMTg0OTIzNjA0MzIwOTEiPiLguoLgu43gu4nguqHgurngupnguqrguq3guofguoLgurXgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4i4LqC4LuN4LuJ4Lqh4Lq54LqZ4Lqq4Lqy4Lqh4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3MDgzODQ2MDgxMjQ1MTkzNjkiPiLguqrgurHgupnigIvguo3gurLgupnguoLgu43gu4nguqHgurngupnigIvgu4DgupXgurHguqEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29mZiIgbXNnaWQ9IjMxNzczODAyOTY2OTc5MzM2MjciPiJXaUZpIOC6m+C6tOC6lOC6ouC6ueC7iC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpZmkiIG1zZ2lkPSIxNDI1NDc2NTUxODI3OTI0NDc0Ij4i4LqV4Lqx4LqU4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuIIFdpLUZpIOC7geC6peC7ieC6py4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiLguqrgurHgupnguo3gurLgupkgV2ktRmkg4LqZ4Lq24LuI4LqH4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90d29fYmFycyIgbXNnaWQ9IjQ5OTQyNzQyNTA0OTcyNjI0MzQiPiLguqrgurHgupnguo3gurLgupkgV2ktRmkg4Lqq4Lqt4LqH4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90aHJlZV9iYXJzIiBtc2dpZD0iMzQ5NTc1NTA0NDI3NjU4ODM4NCI+IldpZmkg4Lqq4Lqy4Lqh4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9zaWduYWxfZnVsbCIgbXNnaWQ9IjY4NTM1NjEzMDM1ODY0ODAzNzYiPiLguqrgurHgupnguo3gurLgupkgV2ktRmkg4LuA4LqV4Lqx4LqhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub193aW1heCIgbXNnaWQ9IjQzMjkxODAxMjk3Mjc2MzAzNjgiPiLguprgu43gu4jguqHgurUgV2lNQVguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9vbmVfYmFyIiBtc2dpZD0iNDE3MDk5NDI5OTAxMTg2MzY0OCI+IldpTUFYIOC6meC6tuC7iOC6h+C6guC6teC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3R3b19iYXJzIiBtc2dpZD0iOTE3NjIzNjg1ODMzNjUwMjI4OCI+IldpTUFYIOC6quC6reC6h+C6guC6teC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3RocmVlX2JhcnMiIG1zZ2lkPSI2MTE2NTUxNjM2NzUyMTAzOTI3Ij4iV2lNQVgg4Lqq4Lqy4Lqh4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzY4MDg5OTg2Nzk1NTc5NTU4Ij4i4Lqq4Lqx4LqZ4oCL4LqN4Lqy4LqZIFdpTUFYIOC7gOC6leC6seC6oS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpZ25hbCIgbXNnaWQ9IjcwNjQ2NDUzMjA3ODI1ODUxNjciPiLguprgu43gu4jguqHgurXguqrgurHgupnguo3gurLgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNjM5NTMyNjI3NjIxMzQwMjg4MyI+IuC6muC7jeC7iOC7hOC6lOC7ieC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3plcm9fYmFycyIgbXNnaWQ9IjM4MDYwNjAyMjQ0NjcwMjc4ODciPiLguprgu43gu4jguqHgurXguojgurHguoHguoLgurXgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9vbmVfYmFyIiBtc2dpZD0iMTY4NTczMDExMzE5MjA4MTg5NSI+IuC6meC6tuC7iOC6h+C6guC6teC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3R3b19iYXJzIiBtc2dpZD0iNjQzNzM2MzY0ODM4NTIwNjY3OSI+IuC6quC6reC6h+C6guC6teC6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3RocmVlX2JhcnMiIG1zZ2lkPSIyNjQ4MjQxNDE1MTE5Mzk2NjQ4Ij4i4Lqq4Lqy4Lqh4LqC4Lq14LqULiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI5MTIyOTIyODg2NTE5Njc2ODM5Ij4i4Lqq4Lqx4LqZ4LqN4Lqy4LqZ4LuA4LqV4Lqx4LqhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vbiIgbXNnaWQ9IjIzODUyNTQ2OTM2MjQzNDUyNjUiPiLgu4DgupvgurXgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29mZiIgbXNnaWQ9IjY0NzU1MDgxNTc3ODY4NTMxNTciPiLgupvgurTgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX2Nvbm5lY3RlZCIgbXNnaWQ9IjgzNjYyNTY2OTM3MTk0OTk2NjUiPiLgu4Dguorgurfgu4jguq3guqHigIvgupXgu43gu4jgu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZ3BycyIgbXNnaWQ9IjE2MDY0NzcyMjQ0ODY3NDc3NTEiPiJHUFJTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMXgiIG1zZ2lkPSI5OTQxMzM0NjgxMjAyNDQwMTgiPiIxIFgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9oc3BhIiBtc2dpZD0iMjAzMjMyODg1NTQ2MjY0NTE5OCI+IkhTUEEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8zZyIgbXNnaWQ9Ijg2Mjg1NjIzMDUwMDM1NjgyNjAiPiIzRyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzMuNWciIG1zZ2lkPSI4NjY0ODQ1NjA5OTgxNjkyMDAxIj4iMy41RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzRnIiBtc2dpZD0iNzc0MTAwMDc1MDYzMDA4OTYxMiI+IjRHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fbHRlIiBtc2dpZD0iNTQxMzQ2ODgwODYzNzU0MDY1OCI+IkxURSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2NkbWEiIG1zZ2lkPSI2MTMyNjQ4MTkzOTc4ODIzMDIzIj4iQ0RNQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX3JvYW1pbmciIG1zZ2lkPSI1OTc3MzYyMzMzNDY2NTU2MDk0Ij4i4LuC4Lqj4Lqh4Lqh4Lq04LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZWRnZSIgbXNnaWQ9IjQ0Nzc0NTcwNTE2MzE5NzkyNzgiPiJFZGdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fd2lmaSIgbXNnaWQ9IjIzMjQ0OTY3NTY1OTA2NDUyMjEiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fc2ltIiBtc2dpZD0iODI3NDAxNzExODQ3MjQ1NTE1NSI+IuC6muC7jeC7iOC6oeC6teC6iuC6tOC6oS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF90ZXRoZXIiIG1zZ2lkPSI0MTAyNzg0NDk4MTQwMjcxOTY5Ij4i4LqB4Lqy4LqZ4Lqb4LuI4Lqt4LqN4Lqq4Lqx4LqZ4LqN4Lqy4LqZIEJsdWV0b290aC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2FpcnBsYW5lX21vZGUiIG1zZ2lkPSI4MzQ3NDg5OTk3OTA3NjMwOTIiPiLgu4Lgu53gupTgu4Pgupnguo3gurvgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X2xldmVsIiBtc2dpZD0iNzQ1MTQ3NDE4NzExMzM3MTk2NSI+IuC7geC6muC6seC6lOC7gOC6leC6teC6o+C6tSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4LuA4Lqb4Lq14LuA4LqK4Lqx4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNzk5NTgzOTExMjMxODkzMzgwIj4i4LqB4Lqy4LqZ4LqV4Lqx4LuJ4LqH4LqE4LuI4Lqy4Lql4Lqw4Lqa4Lq74LqaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uc19idXR0b24iIG1zZ2lkPSI0NDk4MDAwMzY5Nzc5NDIxODkyIj4i4LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVtb3ZlX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjM2MDMwOTk1MTQ5MDIxODIzNTAiPiLguqXgurbguprguqXgu4ngurLguofguoHgurLgupngu4Hguojgu4nguofgu4DgupXgurfguq3gupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfZW5hYmxlZCIgbXNnaWQ9IjM1MTE0Njk0OTkyNDAxMjMwMTkiPiJHUFMg4LuA4Lqb4Lq14LqU4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2FjcXVpcmluZyIgbXNnaWQ9Ijg5NTkzMzMzNTEwNTg5NjcxNTgiPiLguoHgurPguqXgurHguofguorguq3guoHguqvgurIgR1BTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHR5X2VuYWJsZWQiIG1zZ2lkPSI0NjEzMjAwMzY1Mzc5NDI2NTYxIj4iVGVsZVR5cGV3cml0ZXIg4LqW4Lq34LqB4LuA4Lqb4Lq14LqU4Lqi4Lq54LuILiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3ZpYnJhdGUiIG1zZ2lkPSI2NjY1ODUzNjMzNjQxNTUwNTUiPiLguqrgurHgu4jgupngu4DgupXgurfguq3gupngup7gu4nguq3guqHguqrgur3guofgu4Dguq3gurXgu4ngupngu4DguoLgurvgu4ngurIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfc2lsZW50IiBtc2dpZD0iOTA2MTI0MzMwNzkzOTEzNTM4MyI+IuC6m+C6tOC6lOC6quC6veC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudHNfaXRlbV9kaXNtaXNzZWQiIG1zZ2lkPSI2ODAzNTc0OTM1MDg0ODY3MDcwIj4i4Lqb4Lq04LqUIDx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiDgu4HguqXgu4nguqcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25fZGlzbWlzc2VkIiBtc2dpZD0iODU0MjExMzg3MTg2MzA2OTI3Ij4i4Lqb4Lq04LqU4LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZ4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19ub3RpZmljYXRpb25fc2hhZGUiIG1zZ2lkPSI0NjkwMjc0ODQ0NDQ3NTA0MjA4Ij4i4Luc4LuJ4Lqy4LqI4LuN4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19xdWlja19zZXR0aW5ncyIgbXNnaWQ9IjYxODYzNzg0MTE1ODI0MzcwNDYiPiLguoHgurLgupngupXgurHgu4nguofguoTgu4jgurLgupTgu4jguqfgupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3JlY2VudF9hcHBzIiBtc2dpZD0iOTAxNDAzMjkxNjQxMDU5MDAyNyI+IuC7geC6reC6seC6muC6r+C6l+C6teC7iOC6q+C6suC6geC7jeC7g+C6iuC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3VzZXIiIG1zZ2lkPSIxMTA0ODQ2Njk5ODY5NDc2ODU1Ij4i4Lqc4Lq54LuI4LuD4LqK4LuJIDx4bGlmZjpnIGlkPSJVU0VSIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc193aWZpIiBtc2dpZD0iNjA5OTc4MTAzMTY2OTcyODcwOSI+Ijx4bGlmZjpnIGlkPSJTSUdOQUwiPiUxJHM8L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTIkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX21vYmlsZSIgbXNnaWQ9IjQ4NzY4MDY1NjQwODYyNDEzNDEiPiLguqHgurfgupbgurcgPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJUWVBFIj4lMiRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUzJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiLgu4HguprgurHgupTgu4DgupXgurXguqPgurUgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLgu4Lgu53gupTgu4Pgupnguo3gurvgupkgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4i4LqV4Lqx4LuJ4LqH4LuC4Lqh4LqH4Lqb4Lq44LqBIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4g4LuB4Lql4LuJ4LqnLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IuC6reC6tOC6meC7gOC6leC6teC7gOC6meC6seC6lCAyR+KAiywgM0cg4LqW4Lq34LqB4Lqb4Lq04LqU4LuB4Lql4LuJ4LqnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4i4LqB4Lqy4LqZ4LqZ4Lqz4LuD4LqK4LuJ4LqC4LuN4LuJ4Lqh4Lq54LqZIDRHIOC6luC6t+C6geC6m+C6tOC6lOC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX21vYmlsZV90aXRsZSIgbXNnaWQ9IjEwNDYwNDcyNDg4NDQ4MjEyMDIiPiLguq3gurTgupngu4DgupXgurXgu4DgupngurHgupTgu4PgupnguqHgurfgupbgurfgupbgurfguoHgupvgurTgupTguoHgurLgupngupngurPgu4Pguorgu4ngu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjIwODY4MTUzMDQ4NTg5NjQ5NTQiPiLguq3gurTgupngu4DgupXgurXgu4DgupngurHgupTgupbgurfguoHgupvgurTgupTguoHgurLgupngupngurPgu4Pguorgu4ngu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZyIgbXNnaWQ9IjM4NTMxMTcyNjkwNTE4MDYyODAiPiLgupfgu4jgurLgupngu4TgupTgu4ngu4Pguorgu4nguoLgu43gu4nguqHgurngupnguojgurvgupnguq7guq3gupTguojgurPgupnguqfgupngupfgurXgu4jguojgurPguoHgurHgupTgu4Tguqfgu4ngu4HguqXgu4nguqcuXG5cbuC6q+C6suC6geC6l+C7iOC6suC6meC7gOC6m+C6teC6lOC6meC6s+C7g+C6iuC7ieC6guC7jeC7ieC6oeC6ueC6meC6hOC6t+C6meC6reC6teC6geC6hOC6seC7ieC6hywg4LqX4LuI4Lqy4LqZ4Lqt4Lqy4LqU4LqW4Lq34LqB4Lqu4Lq94LqB4LuA4LqB4Lqx4Lqa4LuA4LqH4Lq04LqZ4LuC4LqU4LqN4Lqc4Lq54LuI4LuD4Lqr4LuJ4Lqa4LuN4Lql4Lq04LqB4Lqy4LqZ4LuE4LqU4LuJLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX2VuYWJsZSIgbXNnaWQ9Ijc3Mjk3NzIwMzkyMDg2NjQ2MDYiPiLgu4DgupvgurXgupTgupngurPgu4Pguorgu4nguoLgu43gu4nguqHgurngupnguoTgurfgupngu4Pgu53gu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl9kaXNjb25uZWN0ZWQiIG1zZ2lkPSIxOTQwMjMxNTIxMjc0MTQ3NzcxIj4i4Lqa4LuN4LuI4Lqh4Lq14LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuI4Lqt4Lq04LqZ4LuA4LqV4Lq14LuA4LqZ4Lqx4LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4i4LuA4LqK4Lq34LuI4Lqt4Lqh4oCL4LqV4LuN4LuIIFdpLeKAiy1GaSDgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IuC6geC6s+C6peC6seC6h+C6iuC6reC6geC6q+C6siBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4i4Lqq4Lqw4LqW4Lqy4LqZ4LqX4Lq14LuI4LqB4Lqz4LqZ4Lq74LqU4LuC4LqU4LqNIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IuC6geC6suC6meC6ruC7ieC6reC6h+C6guC7jeC6quC6sOC6luC6suC6meC6l+C6teC7iOC6l+C6teC7iOC7gOC6ruC6seC6lOC6p+C6veC6geC6ouC6ueC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+IuC6peC6tuC6muC6geC6suC6meC7geC6iOC7ieC6h+C7gOC6leC6t+C6reC6meC6l+C6seC6h+C7neC6u+C6lC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4i4LqC4LuN4LuJ4Lqh4Lq54LqZ4LuB4Lqt4Lqx4Lqa4LqvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiLgu5zgu4ngurLguojgu43guojgurDgu53gurjgupngu4LgupTguo3guq3gurHgupTgupXgurDgu4LgupnguqHgurHgupQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiLgu5zgu4ngurLguojgu43gupbgurfguoHguqXgurHguq3guoHgu4PgupnguqXguqfguofgupnguq3gupkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IuC7nOC7ieC6suC6iOC7jeC6luC6t+C6geC6peC6seC6reC6geC6ouC6ueC7iOC7g+C6meC7guC7neC6lOC7geC6meC6p+C6leC6seC7ieC6hy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iRGF5ZHJlYW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJFdGhlcm5ldCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4i4LuC4Lud4LqU4Lqi4Lq54LuI4LuD4LqZ4LqN4Lq74LqZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2luZ19sYWJlbCIgbXNnaWQ9IjQ5MDA3NDc3NDQ2NTMwOTIwOSI+IuC6geC6s+C6peC6seC6h+C6quC6suC6gSwgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+PHhsaWZmOmcgaWQ9IlBFUkNFTlQiPiUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JhdHRlcnlfY2hhcmdlZF9sYWJlbCIgbXNnaWQ9Ijg4NjU0MTMwNzk0MTQyNDYwODEiPiLguqrgurLguoHgu4DgupXgurHguqHgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbGFiZWwiIG1zZ2lkPSI2MzA0MTkwMjg1MTcwNzIxNDAxIj4iQmx1ZXRvb3RoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX211bHRpcGxlX2RldmljZXNfbGFiZWwiIG1zZ2lkPSIzOTEyMjQ1NTY1NjEzNjg0NzM1Ij4iQmx1ZXRvb3RoICg8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9vZmZfbGFiZWwiIG1zZ2lkPSI4MTU5NjUyMTQ2MTQ5MjE5OTM3Ij4iQmx1ZXRvb3RoIOC6m+C6tOC6lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI2OTY4MzcyMjk3MDE4NzU1ODE1Ij4i4LqE4Lqn4Lqy4Lqh4Lqq4Lqw4Lqr4Lqn4LuI4Lqy4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fdW5sb2NrZWRfbGFiZWwiIG1zZ2lkPSIzMzYwNTQ5MzAzNjI1ODA1ODQiPiLgu53gurjgupngu5zgu4ngurLguojgu43guq3gurHgupTgupXgurDgu4LgupnguqHgurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4i4Lql4Lqx4Lqt4LqB4LqB4Lqy4LqZ4Lqb4LuI4Lq94LqZ4Lql4Lqn4LqHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+IuC6p+C6tOC6l+C6teC6geC6suC6meC6m+C7ieC6reC6meC6guC7jeC7ieC6oeC6ueC6mSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+IuC6quC6sOC6luC6suC6meC6l+C6teC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiLguoLgu43gu4nguqHgurngupnguqrgurDgupbgurLgupngupfgurXgu4jgupvgurTgupTguqLgurngu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4i4Lqt4Lq44Lqb4Lqw4LqB4Lqt4LqZ4Lqq4Lq34LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9sYWJlbCIgbXNnaWQ9Ijc3MjU2NzEzMzU1NTA2OTU1ODkiPiJSU1NJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9lbWVyZ2VuY3lfb25seSIgbXNnaWQ9IjI3MTM3NzQwNDE2NzI4ODY3NTAiPiLgu4LgupfguqrgurjguoHgu4DguqrgurXgupngu4Dgupfgurvgu4jgurLgupngurHgu4ngupkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19zZXR0aW5nc19sYWJlbCIgbXNnaWQ9IjUzMjY1NTY1OTI1NzgwNjU0MDEiPiLguoHgurLgupngupXgurHgu4nguofguoTgu4jgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc190aW1lX2xhYmVsIiBtc2dpZD0iNDYzNTk2OTE4MjIzOTczNjQwOCI+IuC7gOC6p+C6peC6siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3VzZXJfbGFiZWwiIG1zZ2lkPSI1MjM4OTk1NjMyMTMwODk3ODQwIj4i4LqC4LuJ4Lqt4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9sYWJlbCIgbXNnaWQ9IjkxMzUzNDQ3MDQ4OTk1NDYwNDEiPiJXaeKAiy1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm90X2Nvbm5lY3RlZCIgbXNnaWQ9IjcxNzE5MDQ4NDUzNDU1NzM0MzEiPiLguprgu43gu4jgu4TgupTgu4ngu4Dguorgurfgu4jguq3guqHgupXgu43gu4giPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vX25ldHdvcmsiIG1zZ2lkPSIyMjIxOTkzMDc3MjIwODU2Mzc2Ij4i4Lqa4LuN4LuI4Lqh4Lq14LuA4LqE4Lq34Lqt4LqC4LuI4Lqy4LqNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9vZmZfbGFiZWwiIG1zZ2lkPSI3NTU4Nzc4MTAwODQzODg1ODY0Ij4iV2nigIstRmkg4Lqb4Lq04LqUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X2xhYmVsIiBtc2dpZD0iNjg5MzU5Mjk2NDQ2MzYyNDMzMyI+IuC6iOC7jeC6quC6sOC7geC6lOC6h+C6nOC6u+C6mSBXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IuC6geC6suC6meC6quC6sOC7geC6lOC6h+C6nOC6u+C6meC7hOC6ruC7ieC6quC6suC6jSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IuC6hOC6p+C6suC6oeC7geC6iOC7ieC6hyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiLguq3gurHgupTgupXgurDgu4LgupnguqHgurHgupQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4i4LqB4Lqy4LqZ4LuB4LqI4LuJ4LqH4LuA4LqV4Lq34Lqt4LqZ4LqI4Lqw4Lqb4Lqy4LqB4Lq74LqU4Lqa4LuI4Lqt4LqZ4LqZ4Lq14LuJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4i4LuA4LqC4Lq74LuJ4Lqy4LuA4LqW4Lq04LqH4LuE4LqU4LuJ4LqX4Lq44LqB4LuA4Lqh4Lq34LuI4Lqt4LuC4LqU4LqN4LqB4Lqy4LqZ4Lqb4Lqx4LqU4LqZ4Lq04LuJ4Lqn4Lql4Lq74LqHLlxu4Lqb4Lqx4LqU4Lql4Lq74LqH4Lqt4Lq14LqB4LuA4LqX4Lq34LuI4Lqt4LqZ4Lq24LuI4LqH4Lqq4Lqz4Lql4Lqx4Lqa4LqB4Lqy4LqZ4LqE4Lqn4Lqa4LqE4Lq44Lqh4Lql4Lqw4Lqa4Lq74LqaLiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1sdC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbHQvc3RyaW5ncy54bWwKaW5kZXggYmY4NjYyYS4uM2ZhZTgwNSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1sdC9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWx0L3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IlZpc2FkYSBsZWlzdGkgacWhIMWhaW8ga29tcGl1dGVyaW8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiJLZWlzdGkgbWFzdC4sIGthZCBhdGl0LiBla3IuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+IknFoXRlbXB0aSwga2FkIGF0aXQuIGVrci4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJTdWRlcmluYW11bW8gbWFzdGVsaW8ga2VpdGltYXMiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4iS2FpIHByb2dyYW1hIGJ1cyBwcml0YWlreXRhIG1hxb5lc25pYW0gZWtyYW51aSwgbWFzdGVsaW8ga2VpdGltbyB2YWxkaWtsaXMgYnVzIHBhcm9keXRhcyDFoWFsaWEgbGFpa3JvZMW+aW8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IknFoXNhdWdvbWEgZWtyYW5vIGtvcGlqYS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IknFoXNhdWdvbWEgZWtyYW5vIGtvcGlqYS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4iScWhc2F1Z29tYSBla3Jhbm8ga29waWphLiI8L3N0cmluZz4KQEAgLTc4LDYgKzc2LDggQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiJQYWdyaW5kaW5pcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+Ik1lbml1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iTmF1amF1c2lvcyBwcm9ncmFtb3MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJJZcWha290aSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiJGb3RvYXBhcmF0YXMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IlBlcmp1bmd0aSDEr3Zlc3RpZXMgbWV0b2RvIG15Z3R1a8SFLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiJTdWRlcmluYW11bW8gcHJpYXJ0aW5pbW8gbXlndHVrYXMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiJQYWRpZGludGkgZWtyYW7EhS4iPC9zdHJpbmc+CkBAIC0xNTMsNiArMTUzLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJBa3VtdWxpYXRvcml1cyA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IkzEl2t0dXZvIHJlxb5pbWFzIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IuKAnkJsdWV0b290aOKAnCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IlZpZXRvdsSXIOKAkyA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IlNpZ25hbGFzIG51c3RhdHl0YXMgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiIyR+KAkzNHIGR1b21lbnlzIG5lbGVpZMW+aWFtaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHIGR1b21lbnlzIG5lbGVpZMW+aWFtaSI8L3N0cmluZz4KQEAgLTE2NCwxMiArMTY1LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJQcmlzaWouIHByaWUg4oCeV2ktRmnigJwiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IkllxaFrb21hIEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJHUFMgbnVzdGF0eXRhIHZpZXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4iVmlldG92xJdzIHXFvmtsYXVzb3MgYWt0eXZpb3MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiJJxaF2YWx5dGkgdmlzdXMgcHJhbmXFoWltdXMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IlByb2dyYW1vcyBpbmZvcm1hY2lqYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4iRWtyYW5hcyBidXMgc3VrYW1hcyBhdXRvbWF0acWha2FpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iVcW+cmFraW50YXMgZWtyYW5hcyB5cmEgaG9yaXpvbnRhbGlvcyBvcmllbnRhY2lqb3MuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IlXFvnJha2ludGFzIGVrcmFuYXMgeXJhIHZlcnRpa2FsaW9zIG9yaWVudGFjaWpvcy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4iRGVzZXJ0xbMgZMSXa2xhcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJTdmFqb27ElyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0ZXJuZXRhcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4iTMSXa3R1dm8gcmXFvmltYXMiPC9zdHJpbmc+CkBAIC0xOTgsOCArMjAwLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IkJlbGFpZGlzIHJvZHltYXMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiJTa2Fpc3RpcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiJBVVRPTUFUSU5JUyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiJQcmFuZcWhaW1haSByb2RvbWkgxI1pYSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+IlBlcmJyYXVrxJkgxb5lbXluIGJldCBrdXJpdW8gbWV0dSBwYXNpZWtzaXRlIHByYW5lxaFpbXVzLlxuSmVpIG5vcml0ZSBuYXVkb3RpIHNpc3RlbW9zIHZhbGRpa2xpdXMsIHBlcmJyYXVraXRlIMW+ZW15biBkYXIga2FydMSFLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+IkplaSBub3JpdGUsIGthZCBixat0xbMgcm9kb21hIGp1b3N0YSwgcGVyYnJhdWtpdGUgZWtyYW5vIGtyYcWhdGUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IkplaSBub3JpdGUsIGthZCBixat0xbMgcm9kb21hIHNpc3RlbW9zIGp1b3N0YSwgcGVyYnJhdWtpdGUgacWhIGVrcmFubyBrcmHFoXRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+IlNwYWx2xbMgaW52ZXJzaWpvcyByZcW+aW1hcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+IlBhdG9idWxpbnRvIGtvbnRyYXN0byByZcW+aW1hcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4iU3BhbHbFsyB0YWlzeW1vIHJlxb5pbWFzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiJUaW5rbGFzIGdhbGlcbmLFq3RpIHN0ZWJpbWFzIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWx2L3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1sdi9zdHJpbmdzLnhtbAppbmRleCBiOTZhNzg2Li4yYTNhMzMzIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLWx2L3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbHYvc3RyaW5ncy54bWwKQEAgLTYxLDggKzYxLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4iVmllbm3Ek3IgYXTEvGF1dCBubyDFocSrIGRhdG9yYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IlTEgWx1bW0uLCBsYWkgYWl6cC4gZWtyLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiJTdGllcGlldCwgbGFpIGFpenAuIGVrci4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJTYWRlcsSrYmFzIHTEgWx1bW1hacWGYSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiJKYSBsaWV0b3RuZSBpciBwYXJlZHrEk3RhIG1hesSBa2FtIGVrcsSBbmFtLCBibGFrdXMgcHVsa3N0ZW5pbSB0aWtzIHBhcsSBZMSrdGEgdMSBbHVtbWFpxYZhcyB2YWTEq2tsYS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4iU2FnbGFixIEgZWtyxIFudXrFhsSTbXVtdeKApiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+Ik5vdGllayBla3LEgW51esWGxJNtdW1hIHNhZ2xhYsSBxaFhbmEuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+Ik5vdGllayBla3LEgW51esWGxJNtdW1hIHNhZ2xhYsSBxaFhbmEuIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IlPEgWt1bXMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJJenbEk2xuZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+Ik5lc2VuIGl6bWFudG90xIFzIGxpZXRvdG5lcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+Ik1la2zEk3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4iS2FtZXJhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiJJZXZhZGVzIG1ldG9kZXMgbWFpxYZhcyBwb2dhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiJTYWRlcsSrYmFzIHTEgWx1bW1hacWGYXMgcG9nYS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+IlZlaWt0IHTEgWx1bW1hacWGdSBubyBtYXrEgWthIGVrcsSBbmEgdXogbGllbMSBa3UuIjwvc3RyaW5nPgpAQCAtMTUzLDYgKzE1Myw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4iQWt1bXVsYXRvcmEgc3RhdHVzczogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IkxpZG9qdW1hIHJlxb7Eq21hIHN0YXR1c3M6IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoIHN0YXR1c3M6IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiJBdHJhxaFhbsSBcyB2aWV0YTogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiJTaWduxIFscyBpciBpZXN0YXTEq3RzIHV6OiA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IjJH4oCTM0cgZGF0aSBhdHNwxJNqb3RpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iNEfCoGRhdGkgYXRzcMSTam90aSI8L3N0cmluZz4KQEAgLTE2NCwxMiArMTY1LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJJenYuIHNhdi4gYXIgV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+Ik5vdGllayBHUFMgbWVrbMSTxaFhbmEuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4iR1BTwqBpZXN0YXTEq3TEgSBhdHJhxaFhbsSBcyB2aWV0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IkFrdMSrdmkgYXRyYcWhYW7EgXMgdmlldHUgcGllcHJhc8SranVtaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+Ik5vdMSrcsSrdCB2aXN1cyBwYXppxYZvanVtdXMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4iSW5mb3JtxIFjaWphIHBhciBsaWV0b3RuaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4iRWtyxIFucyB0aWtzIHBhZ3JpZXp0cyBhdXRvbcSBdGlza2kuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiJFa3LEgW5zIHRhZ2FkIGlyIGJsb8S3xJN0cyBhaW5hdmFzIG9yaWVudMSBY2lqxIEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IkVrcsSBbnMgdGFnYWQgaXIgYmxvxLfEk3RzIHBvcnRyZXRhIG9yaWVudMSBY2lqxIEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IlNhbGRvIMSTZGllbnUgc3RlbmRzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IkVrcsSBbnNhdWR6xJN0xIFqcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IlTEq2tscyBFdGhlcm5ldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4iTGlkb2p1bWEgcmXFvsSrbXMiPC9zdHJpbmc+CkBAIC0xOTgsOCArMjAwLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IkJlenZhZHUgYXR0xJNsb8WhYW5hIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4iU3BpbGd0dW1zIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IkFVVE9NxIBUSVNLSSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiLFoGVpdCB0aWVrIHLEgWTEq3RpIHBhemnFhm9qdW1pIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4iUGlla8S8xatzdGlldCB0aWVtIGplYmt1csSBIGxhaWvEgSwgdmVsa290IHV6IGxlanUuXG5WxJNscmVpeiB2ZWxjaWV0LCBsYWkgdGlrdHUgcGFyxIFkxKt0YXMgc2lzdMSTbWFzIHZhZMSra2xhcy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiJWZWxjaWV0IG5vIGVrcsSBbmEgbWFsYXMsIGxhaSBwaWVrxLzFq3R1IGpvc2xhaS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IlZlbGNpZXQgbm8gZWtyxIFuYSBtYWxhcywgbGFpIHBpZWvEvMWrdHUgc2lzdMSTbWFzIGpvc2xhaS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4iS3LEgXN1IGludmVyc2lqYXMgcmXFvsSrbXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiJVemxhYm90YSBrb250cmFzdGEgcmXFvsSrbXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+IktyxIFzdSBrb3Jla2NpamFzIHJlxb7Eq21zIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiJUxKtrbHMgdmFyXG50aWt0IHV6cmF1ZHrEq3RzIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW1uLWxhbmQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW1uLWxhbmQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM0NjE2ZgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbW4tbGFuZC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yb3RhdGlvbl9sb2NrZWQiIG1zZ2lkPSI3NjA5NjczMDExNDMxNTU2MDkyIj4i0JTRjdC70LPRjdGGINGF0Y3QstGC0Y3RjSDRh9C40LPQu9GN0LvQtCDRgtKv0LPQttC40LPQtNGB0Y3QvS4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbW4tck1OLWxhbmQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW1uLXJNTi1sYW5kL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjNDYxNmYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW1uLXJNTi1sYW5kL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3JvdGF0aW9uX2xvY2tlZCIgbXNnaWQ9Ijc2MDk2NzMwMTE0MzE1NTYwOTIiPiLQlNGN0LvQs9GN0YYg0YXRjdCy0YLRjdGNINGH0LjQs9C70Y3Qu9C0INGC0q/Qs9C20LjQs9C00YHRjdC9LiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW1uLXJNTi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmNmOTQzCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDksIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxNjQ5MzczNDQ4NTAwMDQ0NjYiPiLQodC40YHRgtC10LwgVUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2NsZWFyX2FsbF9idXR0b24iIG1zZ2lkPSI3Nzc0NzIxMzQ0NzE2NzMxNjAzIj4i0KbRjdCy0Y3RgNC70Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X3JlbW92ZV9pdGVtX3RpdGxlIiBtc2dpZD0iNjAyNjM5NTg2ODEyOTg1Mjk2OCI+ItCW0LDQs9GB0LDQsNC70YLQsNCw0YEg0YPRgdGC0LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9yZWNlbnRfaW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iNzc5MzYyNDg2NDUyODgxODU2OSI+ItCQ0L/QvyDQvNGN0LTRjdGN0LvRjdC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19yZWNlbnRfYXBwcyIgbXNnaWQ9IjY1NzYzOTI5NTEwNTM5OTQ2NDAiPiLQodKv0q/Qu9C40LnQvSDQsNC/0L8g0YXQvtC+0YHQvtC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X2Rpc21pc3NfcmVjZW50cyIgbXNnaWQ9IjQ1NzYwNzYwNzUyMjY1NDAxMDUiPiLQodKv0q/Qu9C40LnQvSDQsNC/0L8t0YPRg9C00YvQsyDRhdCw0LDRhSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X3JlY2VudF9hcHBzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg1NDE3NjA4Mzg2NTg0NTU0MSI+IjEg0YHSr9Kv0LvQuNC50L0g0LDQv9C/IjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMDQwNzg0MzU5Nzk0ODkwNzQ0Ij4iJWQg0YHSr9Kv0LvQuNC50L0g0LDQv9C/IjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19ub3RpZmljYXRpb25zX3RpdGxlIiBtc2dpZD0iNDc1NTI2MTE2NzE5MzgzMzIxMyI+ItCc0Y3QtNGN0LPQtNGN0Lsg0LHQsNC50YXQs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX29uZ29pbmdfZXZlbnRzX3RpdGxlIiBtc2dpZD0iMTY4MjUwNDUxMzMxNjg3OTIwMiI+ItCT0LDRgNGB0LDQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbGF0ZXN0X2V2ZW50c190aXRsZSIgbXNnaWQ9IjY1OTQ3Njc0Mzg1Nzc1OTMxNzIiPiLQnNGN0LTRjdCz0LTRjdC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfdGl0bGUiIG1zZ2lkPSIyNzgzMTA0ODA3NTUxMjExNjM5Ij4i0KbRjdC90Y3Qs9C70Y3Qs9GH0LjQudCzINGF0L7Qu9Cx0L7QvdC+INGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19zdWJ0aXRsZSIgbXNnaWQ9IjE3NTIwNDAwNjIwODc4MjkxOTYiPiLQkdCw0YLQtdGA0LXQuSDQtNGD0YPRgdCw0LYg0LHQsNC50L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19wZXJjZW50X2Zvcm1hdCIgbXNnaWQ9IjEwNzcyNDQ5NDkzMTgyNjE3NjEiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZCUlPC94bGlmZjpnPiDSr9C70LTRgdGN0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkX2NoYXJnZXIiIG1zZ2lkPSI0NTQ5MTA1OTk2NzQwNTIyNTIzIj4iVVNCINGG0Y3QvdGN0LPQu9GN0LvRgiDQtNGN0LzQttC40LPQtNGN0YXQs9Kv0Lkg0LHQsNC50L3QsC5cbtCX06nQstGF06nQvSDQvdC40LnQu9Kv0q/Qu9GN0LPQtNGB0Y3QvSDRhtGN0L3RjdCz0LvRjdCz0YfQuNC50LMg0LDRiNC40LPQu9Cw0L3QsCDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3doeSIgbXNnaWQ9IjcyNzkxNjk2MDk1MTgzODYzNzIiPiLQkdCw0YLQtdGA0LXQuSDQsNGI0LjQs9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iMzAyMzg4OTkxNjY5OTI3MDIyNCI+ItCi0L7RhdC40YDQs9C+0L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3dpZmlfYnV0dG9uIiBtc2dpZD0iMTczMzkyODE1MTY5ODMxMTkyMyI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQ4Nzk4Nzk2OTg1MDA5NTUzMDAiPiLQndC40YHQu9GN0LPQuNC50L0g0LPQvtGA0LjQvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19yb3RhdGlvbiIgbXNnaWQ9IjM3OTA0ODI1NDEzNTc3OTg0MjEiPiLQlNGN0LvQs9GN0YbQuNC50LMg0LDQstGC0L7QvNCw0YLQsNCw0YAg0Y3RgNCz0q/Sr9C70Y3RhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfbXV0ZV9sYWJlbCIgbXNnaWQ9IjU1NDY4MjU0OTkxNzQyOTM5NiI+ItCl0JDQkNClIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MTE0NTM2MTQ5NjIzMjQ2NzQiPiLQkNCS0KLQntCc0JDQoiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfbm90aWZpY2F0aW9ucyIgbXNnaWQ9IjM5NzE0NjE3NjI4MDkwNTEzNyI+ItCc0Y3QtNGN0LPQtNGN0LsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4i0JHQu9GO0YLSr9Kv0YLRi9CzINC80L7QtNC10Lwg0LHQvtC70LPQvtC2INCx0LDQudC90LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2lucHV0X21ldGhvZF9zZXR0aW5nc19jb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjM1MDQyOTI0NzE1MTIzMTc4MjciPiLQntGA0YPRg9C70LDRhSDQsNGA0LPRi9CzINGC0L7RhdC40YDRg9GD0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl91c2VfcGh5c2ljYWxfa2V5Ym9hcmQiIG1zZ2lkPSI3NTUxOTAzMDg0NDE2MDU3ODEwIj4i0JHQvtC00LjRgiDQs9Cw0YAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iODM0Njk4MDAxMjcxNTYyMDU3Ij4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDQsNC/0L8t0LMgVVNCINGC06nRhdOp06nRgNOp0LzQttC40LQg0YXQsNC90LTQsNGF0YvQsyDQt9Op0LLRiNOp06nRgNOp0YUg0q/Srz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iNTE3MTc3NTQxMTE3ODg2NTc1MCI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g0LDQv9C/LdCzIFVTQiDRgtOp0YXTqdOp0YDTqdC80LbQuNC0INGF0LDQvdC00LDRhdGL0LMg0LfTqdCy0YjTqdOp0YDTqdGFINKv0q8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjUxNjEyMDUyNTg2MzUyNTMyMDYiPiLQrdC90Y0gVVNCINGC06nRhdOp06nRgNOp0LzQtiDRhdC+0LvQsdC+0LPQtNC+0YUg0q/QtdC0IDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4t0LMg0L3RjdGN0YUg0q/Srz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iMzgwODk4NDkzMTgzMDIyOTg4OCI+ItCt0L3RjSBVU0Ig0YLTqdGF06nTqdGA06nQvNC2INGF0L7Qu9Cx0L7Qs9C00L7RhSDSr9C10LQgPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPi3QsyDQvdGN0Y3RhSDSr9KvPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfdXJpX3Byb21wdCIgbXNnaWQ9IjUxMzQ1MDYyMTQxMzczMzM0MyI+ItCt0L3RjSBVU0Ig0YXRjdGA0Y3Qs9GB0Y3QuyDQtNGN0Y3RgCDRgdGD0YPQu9Cz0LDRgdCw0L0g0LDQv9C/INCw0LbQuNC70LvQsNCw0LPSr9C5INCx0LDQudC90LAuINCt0L3RjSDRhdGN0YDRjdCz0YHQu9C40LnQvSDRgtCw0LvQsNCw0YAgPHhsaWZmOmcgaWQ9IlVSTCI+JTEkczwveGxpZmY6Zz4t0YEg0LTRjdC70LPRjdGA0Y3QvdCz0q/QuSDSr9C30L3RjSDSr9KvLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3VzYl9hY2Nlc3NvcnkiIG1zZ2lkPSI0OTY2MjY1MjYzNDY1MTgxMzcyIj4iVVNCINGC06nRhdOp06nRgNOp0LzQtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3ZpZXciIG1zZ2lkPSI2MzA0NTY1NTUzMjE4MTkyOTkwIj4i0q7Qt9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2RldmljZSIgbXNnaWQ9IjE0NTAyODc0MzcwMTczMTU5MDYiPiLQrdC90Y0gVVNCINGC06nRhdOp06nRgNOp0LzQttC40LnQsyDSr9C90LTRgdGN0L0g0LHQvtC70LPQvtC9INCw0YjQuNCz0LvQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9hY2Nlc3NvcnkiIG1zZ2lkPSIxMjEwOTU0NTc2OTc5NjIxNTk2Ij4i0K3QvdGNIFVTQiDRgtOp0YXTqdOp0YDTqdC80LbQuNC50LMg0q/QvdC00YHRjdC9INCx0L7Qu9Cz0L7QvSDQsNGI0LjQs9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfdGl0bGUiIG1zZ2lkPSI0NTEzOTE4MzkzMzg3MTQxOTQ5Ij4iVVNCINC00LXQsdCw0LMg0YXQuNC50YXQuNC50LMg0LfTqdCy0YjTqdOp0YDTqdGFINKv0q8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+ItCa0L7QvNC/0YzRjtGC0LXRgNC40LnQvSBSU0Eg0YLSr9C70YXSr9Kv0YDQuNC50L0g0YXRg9GA0YPRg9C90Ysg0YXRjdGNIDpcbjx4bGlmZjpnIGlkPSJGSU5HRVJQUklOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+ItCt0L3RjSDQutC+0LzQv9GM0Y7RgtC10YDRjdGN0YEg0L7RgNC+0YXRi9CzINCx0LDQudC90LPQsCDQt9Op0LLRiNOp06nRgNOp0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiLQlNGN0LvQs9GN0YYg0LTSr9Kv0YDQs9GN0YUg0LHQvtC7INOp0YHQs9Op0L3TqSDSr9KvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+ItCU0Y3Qu9Cz0Y3RhiDQtNKv0q/RgNCz0Y3RhSDQsdC+0Lsg0YLQsNGC0L3QsCDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+ItCU0Y3Qu9Cz0Y3RhtC40LnQvSDQsNCz0YjQuNC90LMg0YXQsNC00LPQsNC70LYg0LHQsNC50L3QsOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+ItCU0Y3Qu9Cz0Y3RhtC40LnQvSDQsNCz0YjQuNC90LMg0YXQsNC00LPQsNC70LYg0LHQsNC50L3QsOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i0JTRjdC70LPRjdGG0LjQudC9INCw0LPRiNC40L0g0YXQsNC00LPQsNC70LDQs9C00LDQsi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RpdGxlIiBtc2dpZD0iNjQ2MTg2NTk2MDk2MTQxNDk2MSI+ItCU0Y3Qu9Cz0Y3RhtC40LnQvSDQsNCz0YjQuNC90LMg0LDQstGB0LDQvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RleHQiIG1zZ2lkPSIxMTUyODM5NjQ3Njc3NTU4ODE1Ij4i0JTRjdC70LPRjdGG0LjQudC9INCw0LPRiNC90YvQsyDRhdCw0YDQsNGFINCx0L7QuyDRhdKv0YDQvdGNINKv0q8uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGl0bGUiIG1zZ2lkPSI3MDU3ODExMTY3NDY5MjI3NzEiPiLQlNGN0LvQs9GN0YbQuNC50L0g0LDQs9GI0LjQvdCzINCw0LLRhyDRh9Cw0LTRgdCw0L3Qs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGV4dCIgbXNnaWQ9IjgxMzQwMTEyNjk1NzI0MTU0MDIiPiLQlNGN0LvQs9GN0YbQuNC50L0g0LDQs9GI0LjQvdCzINGF0LDQtNCz0LDQu9C2INGH0LDQtNGB0LDQvdCz0q/QuS4g0KHQsNC9INCw0YjQuNCz0LvQsNCz0LTQsNC2INCx0LDQudCz0LDQsCDQsdC+0LvQvtC70YLQvtC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9wcmVmZXJlbmNlX3RpdGxlIiBtc2dpZD0iNjU1MTA1MDM3NzM4ODg4Mjc4NyI+IlVTQiDRhNCw0LnQuyDRiNC40LvQttKv0q/Qu9GN0YUg0YHQvtC90LPQvtC70YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfbXRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjQzMzM1MDQ0MTM1NjMwMjM2MjYiPiLQnNC10LTQuNCwINGC0L7Qs9C70YPRg9C70LDQs9GHKE1UUCkg0LHQvtC70LPQvtC9INC30LDQu9Cz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9wdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNzUxNzEyNzU0MDMwMTYyNTc1MSI+ItCa0LDQvNC10YAg0LHQvtC70LPQvtC9KFBUUCkg0LfQsNC70LPQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbGVyX2NkX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjIzMTI2Njc1Nzg1NjIyMDE1ODMiPiLQnNCw0YEt0LQg0LfQvtGA0LjRg9C70YHQsNC9ICDQkNC90LTRgNC+0LnQtCDQpNCw0LnQuyDQqNC40LvQttKv0q/Qu9GN0YUg0LDQv9C/LdCzINGB0YPRg9C70LPQsNC90LAg0YPRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmFjayIgbXNnaWQ9IjU2NzAxMTUzODk5NDQyOTEyMCI+ItCR0YPRhtCw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4i0JPRjdGA0LjQudC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4i0KbRjdGBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4i0KHSr9Kv0LvQuNC50L0g0LDQv9C/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4i0KXQsNC50YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4i0JrQsNC80LXRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4i0J7RgNGD0YPQu9Cw0YUg0LDRgNCz0YvQsyDRgdGN0LvQs9GN0YUg0YLQvtCy0YcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+ItCi0L7RhdC40YDQvtC80LbRgtC+0Lkg06nRgdCz06nRhSDRgtC+0LLRhy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+ItCW0LjQttCz0Y3RjdGBINGC0L7QvCDQtNGN0LvQs9GN0YbRgNKv0q8g06nRgdCz06nRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9jb25uZWN0ZWQiIG1zZ2lkPSIyNzA3MDI3NjMzMjQyOTgzMzcwIj4i0JHQu9GO0YLSr9Kv0YIg0YXQvtC70LHQvtCz0LTRgdC+0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfZGlzY29ubmVjdGVkIiBtc2dpZD0iNzQxNjY0ODY2OTk3Njg3MDE3NSI+ItCR0LvRjtGC0q/Sr9GCINGC0LDRgdGA0LDQsi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2JhdHRlcnkiIG1zZ2lkPSIzNTgzNDMwMjIzNTI4MjA5NDYiPiLQkdCw0YLQtdGA0LXQuSDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfb25lX2JhciIgbXNnaWQ9Ijc3NzQ4ODc3MjE4OTEwNTc1MjMiPiLQkdCw0YLQtdGA0LXQuSDQvdGN0LMg0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90d29fYmFycyIgbXNnaWQ9Ijg1MDA2NTA0Mzg3MzUwMDk5NzMiPiLQkdCw0YLQtdGA0LXQuSDRhdC+0ZHRgCDQsdCw0LPQsNC90LDRgtCw0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3RocmVlX2JhcnMiIG1zZ2lkPSIyMzAyOTgzMzMwODY1MDQwNDQ2Ij4i0JHQsNGC0LXRgNC10Lkg0LPRg9GA0LLQsNC9INCx0LDQs9Cw0L3QsNGC0LDQuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfZnVsbCIgbXNnaWQ9Ijg5MDkxMjI0MDE3MjAxNTg1ODIiPiLQkdCw0YLQtdGA0LXQuSDQtNKv0q/RgNGN0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19waG9uZSIgbXNnaWQ9IjQ4OTQ3MDg5MzcwNTI2MTEyODEiPiLQo9GC0LDRgSDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX29uZV9iYXIiIG1zZ2lkPSI2ODc2OTkyNzgxMzI2NjQxMTUiPiLQo9GC0LDRgSDQvdGN0LMg0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdHdvX2JhcnMiIG1zZ2lkPSI4Mzg0OTA1MzgyODA0ODE1MjAxIj4i0KPRgtCw0YEg0YXQvtGR0YAg0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdGhyZWVfYmFycyIgbXNnaWQ9Ijg1MjE5MDQ4NDM5MTk5NzE4ODUiPiLQo9GC0LDRgSDQs9GD0YDQstCw0L0g0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2NDcxODM0ODY4NTgwNzU3ODk4Ij4i0KPRgtCw0YHQvdGLINC00L7RhdC40L4g0LTSr9Kv0YDRjdC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fZGF0YSIgbXNnaWQ9IjQ3OTE5NjYyOTUwOTY4Njc1NTUiPiLQlNCw0YLQsCDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfb25lX2JhciIgbXNnaWQ9IjE0MTU2MjU4MzMyMzgyNzM2MjgiPiLQlNCw0YLQsCDQvdGN0LMg0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90d29fYmFycyIgbXNnaWQ9IjYxNjYwMTg0OTIzNjA0MzIwOTEiPiLQlNCw0YLQsCDRhdC+0ZHRgCDQsdCw0LPQsNC90LDRgtCw0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4i0JTQsNGC0LAg0LPRg9GA0LLQsNC9INCx0LDQs9Cw0L3QsNGC0LDQuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzA4Mzg0NjA4MTI0NTE5MzY5Ij4i0JTQsNGC0LAg0LTQvtGF0LjQviDQtNKv0q/RgNGN0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29mZiIgbXNnaWQ9IjMxNzczODAyOTY2OTc5MzM2MjciPiJXaWZpINGD0L3RgtCw0YDRgdCw0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub193aWZpIiBtc2dpZD0iMTQyNTQ3NjU1MTgyNzkyNDQ3NCI+IldpZmkg0YHQsNC70LDQsi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiJXaWZpINC90Y3QsyDQsdCw0LPQsNC90LDRgtCw0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3R3b19iYXJzIiBtc2dpZD0iNDk5NDI3NDI1MDQ5NzI2MjQzNCI+IldpZmkg0YXQvtGR0YAg0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90aHJlZV9iYXJzIiBtc2dpZD0iMzQ5NTc1NTA0NDI3NjU4ODM4NCI+IldpZmkg0LPRg9GA0LLQsNC9INCx0LDQs9Cw0L3QsNGC0LDQuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2ODUzNTYxMzAzNTg2NDgwMzc2Ij4iV2lmaSDQtNC+0YXQuNC+INC00q/Sr9GA0Y3QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpbWF4IiBtc2dpZD0iNDMyOTE4MDEyOTcyNzYzMDM2OCI+IldpTUFYINCx0LDQudGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfb25lX2JhciIgbXNnaWQ9IjQxNzA5OTQyOTkwMTE4NjM2NDgiPiJXaU1BWCDQvdGN0LMg0LHQsNCz0LDQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdHdvX2JhcnMiIG1zZ2lkPSI5MTc2MjM2ODU4MzM2NTAyMjg4Ij4iV2lNQVgg0YXQvtGR0YAg0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiJXaU1BWCDQs9GD0YDQstCw0L0g0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzY4MDg5OTg2Nzk1NTc5NTU4Ij4iV2lNQVgg0LTQvtGF0LjQviDQtNKv0q/RgNGN0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaWduYWwiIG1zZ2lkPSI3MDY0NjQ1MzIwNzgyNTg1MTY3Ij4i0JTQvtGF0LjQviDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4i0KXQvtC70LHQvtCz0LTQvtC+0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfemVyb19iYXJzIiBtc2dpZD0iMzgwNjA2MDIyNDQ2NzAyNzg4NyI+ItCi0Y3QsyDQsdCw0LPQsNC90LDRgtCw0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9vbmVfYmFyIiBtc2dpZD0iMTY4NTczMDExMzE5MjA4MTg5NSI+ItCd0Y3QsyDQsdCw0LPQsNC90LDRgtCw0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90d29fYmFycyIgbXNnaWQ9IjY0MzczNjM2NDgzODUyMDY2NzkiPiLQpdC+0ZHRgCDQsdCw0LPQsNC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90aHJlZV9iYXJzIiBtc2dpZD0iMjY0ODI0MTQxNTExOTM5NjY0OCI+ItCT0YPRgNCy0LDQvSDQsdCw0LPQsNC90LDRgtCw0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zaWduYWxfZnVsbCIgbXNnaWQ9IjkxMjI5MjI4ODY1MTk2NzY4MzkiPiLQlNC+0YXQuNC+INC00q/Sr9GA0Y3QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb24iIG1zZ2lkPSIyMzg1MjU0NjkzNjI0MzQ1MjY1Ij4i0JjQtNGN0LLRhdC40LbRgdGN0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29mZiIgbXNnaWQ9IjY0NzU1MDgxNTc3ODY4NTMxNTciPiLQo9C90YLRgNCw0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19jb25uZWN0ZWQiIG1zZ2lkPSI4MzY2MjU2NjkzNzE5NDk5NjY1Ij4i0KXQvtC70LHQvtCz0LTRgdC+0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZ3BycyIgbXNnaWQ9IjE2MDY0NzcyMjQ0ODY3NDc3NTEiPiJHUFJTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMXgiIG1zZ2lkPSI5OTQxMzM0NjgxMjAyNDQwMTgiPiIxIFgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9oc3BhIiBtc2dpZD0iMjAzMjMyODg1NTQ2MjY0NTE5OCI+IkhTUEEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8zZyIgbXNnaWQ9Ijg2Mjg1NjIzMDUwMDM1NjgyNjAiPiIzRyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzMuNWciIG1zZ2lkPSI4NjY0ODQ1NjA5OTgxNjkyMDAxIj4iMy41RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzRnIiBtc2dpZD0iNzc0MTAwMDc1MDYzMDA4OTYxMiI+IjRHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fbHRlIiBtc2dpZD0iNTQxMzQ2ODgwODYzNzU0MDY1OCI+IkxURSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2NkbWEiIG1zZ2lkPSI2MTMyNjQ4MTkzOTc4ODIzMDIzIj4iQ0RNQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX3JvYW1pbmciIG1zZ2lkPSI1OTc3MzYyMzMzNDY2NTU2MDk0Ij4i0KDSr9Kv0LzQuNC90LMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9lZGdlIiBtc2dpZD0iNDQ3NzQ1NzA1MTYzMTk3OTI3OCI+IkVkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl93aWZpIiBtc2dpZD0iMjMyNDQ5Njc1NjU5MDY0NTIyMSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaW0iIG1zZ2lkPSI4Mjc0MDE3MTE4NDcyNDU1MTU1Ij4iU0lNINCx0LDQudGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX3RldGhlciIgbXNnaWQ9IjQxMDI3ODQ0OTgxNDAyNzE5NjkiPiLQkdC70Y7RgtKv0q/RgiDQvNC+0LTQtdC8INCx0L7Qu9C2INCx0LDQudC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9haXJwbGFuZV9tb2RlIiBtc2dpZD0iODM0NzQ4OTk5NzkwNzYzMDkyIj4i0J3QuNGB0LvRjdCz0LjQudC9INCz0L7RgNC40LwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfbGV2ZWwiIG1zZ2lkPSI3NDUxNDc0MTg3MTEzMzcxOTY1Ij4i0JHQsNGC0LXRgNC10LkgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INGF0YPQstGM0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNzk5NTgzOTExMjMxODkzMzgwIj4i0KHQuNGB0YLQtdC80LjQudC9INGC0L7RhdC40YDQs9C+0L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25zX2J1dHRvbiIgbXNnaWQ9IjQ0OTgwMDAzNjk3Nzk0MjE4OTIiPiLQnNGN0LTRjdCz0LTRjdC7LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVtb3ZlX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjM2MDMwOTk1MTQ5MDIxODIzNTAiPiLQnNGN0LTRjdCz0LTQu9C40LnQsyDRhtGN0LLRjdGA0LvRjdGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2VuYWJsZWQiIG1zZ2lkPSIzNTExNDY5NDk5MjQwMTIzMDE5Ij4iR1BTINC40LTRjdCy0YXRgtGN0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfYWNxdWlyaW5nIiBtc2dpZD0iODk1OTMzMzM1MTA1ODk2NzE1OCI+IkdQUyDRhdCw0LnQtiDQsdCw0LnQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHR5X2VuYWJsZWQiIG1zZ2lkPSI0NjEzMjAwMzY1Mzc5NDI2NTYxIj4iVGVsZVR5cGV3cml0ZXIg0LjQtNGN0LLRhdGC0Y3QuSDQsdC+0LvQvtCyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3ZpYnJhdGUiIG1zZ2lkPSI2NjY1ODUzNjMzNjQxNTUwNTUiPiLQpdC+0L3RhdC90Ysg0YfQuNGH0LjRgNCz0Y3RjS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl9zaWxlbnQiIG1zZ2lkPSI5MDYxMjQzMzA3OTM5MTM1MzgzIj4i0KXQvtC90YXRi9CzINGF0LDQsNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50c19pdGVtX2Rpc21pc3NlZCIgbXNnaWQ9IjY4MDM1NzQ5MzUwODQ4NjcwNzAiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g0LHQsNC50YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25fZGlzbWlzc2VkIiBtc2dpZD0iODU0MjExMzg3MTg2MzA2OTI3Ij4i0JzRjdC00Y3Qs9C00Y3QuyDRhdCw0LDQs9C00YHQsNC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19ub3RpZmljYXRpb25fc2hhZGUiIG1zZ2lkPSI0NjkwMjc0ODQ0NDQ3NTA0MjA4Ij4i0JzRjdC00Y3Qs9C00LvQuNC50L0g0YXRg9GA0LDQsNC90LPRg9C5INGB0LDQvNCx0LDRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19xdWlja19zZXR0aW5ncyIgbXNnaWQ9IjYxODYzNzg0MTE1ODI0MzcwNDYiPiLQqNGD0YPRgNGF0LDQuSDRgtC+0YXQuNGA0LPQvtC+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19yZWNlbnRfYXBwcyIgbXNnaWQ9IjkwMTQwMzI5MTY0MTA1OTAwMjciPiLQodKv0q/Qu9C40LnQvSDQsNC/0L8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3VzZXIiIG1zZ2lkPSIxMTA0ODQ2Njk5ODY5NDc2ODU1Ij4i0KXRjdGA0Y3Qs9C70Y3Qs9GHIDx4bGlmZjpnIGlkPSJVU0VSIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc193aWZpIiBtc2dpZD0iNjA5OTc4MTAzMTY2OTcyODcwOSI+Ijx4bGlmZjpnIGlkPSJTSUdOQUwiPiUxJHM8L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTIkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX21vYmlsZSIgbXNnaWQ9IjQ4NzY4MDY1NjQwODYyNDEzNDEiPiLQnNC+0LHQsNC50LsgPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJUWVBFIj4lMiRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUzJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiLQkdCw0YLQtdGA0LXQuSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+ItCd0LjRgdC70Y3Qs9C40LnQvSDQs9C+0YDQuNC8IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+ItCR0LvRjtGC0q/Sr9GCIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4i0JHQsNC50YDRiNC40LsgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiLQodGN0YDSr9Kv0LvQs9C40LnQsyA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+LdC0INGC0L7RhdC40YDRg9GD0LvRgdCw0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iMkctM0cg0LTQsNGC0LAg0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQvtCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iNEcg0LTQsNGC0LAg0LjQtNGN0LLRhdCz0q/QuSDQsdCw0LnQvdCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfbW9iaWxlX3RpdGxlIiBtc2dpZD0iMTA0NjA0NzI0ODg0NDgyMTIwMiI+ItCc0L7QsdCw0LnQuyDQtNCw0YLQsCDQuNC00Y3QstGF0LPSr9C5INCx0L7Qu9C+0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjIwODY4MTUzMDQ4NTg5NjQ5NTQiPiLQlNCw0YLQsCDQuNC00Y3QstGF0LPSr9C5INCx0L7Qu9C+0LIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZyIgbXNnaWQ9IjM4NTMxMTcyNjkwNTE4MDYyODAiPiLQotCwINC30LDQsNGB0LDQvSDQtNCw0YLQsCDQsNGI0LjQs9C70LDQu9GC0YvQvSDRhdGP0LfQs9Cw0LDRgNGCINGF0q/RgNGN0LIuXG5cbtCl0Y3RgNGN0LIg0YLQsCDQtNCw0YLQsNCzINC00LDRhdC40L0g0LjQtNGN0LLRhdC20q/Sr9C70LHRjdC7INC+0L/QtdGA0LDRgtC+0YDRgiDRgtOp0LvQsdOp0YAg0YLTqdC706nRhSDRhdGN0YDRjdCz0YLRjdC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX2VuYWJsZSIgbXNnaWQ9Ijc3Mjk3NzIwMzkyMDg2NjQ2MDYiPiLQlNCw0YLQsCDQtNCw0YXQuNC9INC40LTRjdCy0YXQttKv0q/Qu9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl9kaXNjb25uZWN0ZWQiIG1zZ2lkPSIxOTQwMjMxNTIxMjc0MTQ3NzcxIj4i0JjQvdGC0LXRgNC90LXRgiDRhdC+0LvQsdC+0LvRgiDQsdCw0LnRhdCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpINGF0L7Qu9Cx0L7Qs9C00YHQvtC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJHUFMg0YXQsNC50LYg0LHQsNC50L3QsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJHUFMg0LHQsNC50YDRiNC40LsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiLQkdCw0LnRgNGI0LvRi9C9INGF0q/RgdGN0LvRgtKv0q/QtCDQuNC00Y3QstGF0YLRjdC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4i0JHSr9GFINC80Y3QtNGN0LPQtNC70LjQudCzINGG0Y3QstGN0YDQu9GN0YUuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+ItCQ0L/QvyDQvNGN0LTRjdGN0LvRjdC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiLQlNGN0LvQs9GN0YYg0LDQstGC0L7QvNCw0YLQsNCw0YAg0Y3RgNCz0Y3QvdGNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4i0JTRjdC70LPRjdGGINGF0Y3QstGC0Y3RjSDRh9C40LPQu9GN0LvQtCDRgtKv0LPQttC40LPQtNGB0Y3QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fcG9ydHJhaXQiIG1zZ2lkPSI1ODA5MzY3NTIxNjQ0MDEyMTE1Ij4i0JTRjdC70LPRjdGGINCx0L7RgdC+0L4g0YfQuNCz0LvRjdC70Y3RjdGAINGC0q/Qs9C20LjQs9C00YHRjdC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiLQkNC80YLRgtCw0L3RiyDRhdCw0LnRgNGG0LDQsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJEYXlkcmVhbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+ItCt0YLQtdGA0L3QtdGCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLQndC40YHQu9GN0LPQuNC50L0g0LPQvtGA0LjQvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JhdHRlcnlfY2hhcmdpbmdfbGFiZWwiIG1zZ2lkPSI0OTAwNzQ3NzQ0NjUzMDkyMDkiPiLQptGN0L3RjdCz0LvRjdC2INCx0LDQudC90LAsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnZWRfbGFiZWwiIG1zZ2lkPSI4ODY1NDEzMDc5NDE0MjQ2MDgxIj4i0KbRjdC90Y3Qs9C70Y3Qs9C00YHRjdC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX2xhYmVsIiBtc2dpZD0iNjMwNDE5MDI4NTE3MDcyMTQwMSI+ItCR0LvRjtGC0q/Sr9GCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX211bHRpcGxlX2RldmljZXNfbGFiZWwiIG1zZ2lkPSIzOTEyMjQ1NTY1NjEzNjg0NzM1Ij4i0JHQu9GO0YLSr9Kv0YIgKDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDRgtOp0YXTqdOp0YDTqdC80LYpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiLQkdC70Y7RgtKv0q/RgiDRg9C90YLRgNCw0LDQu9GC0YLQsNC5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjY5NjgzNzIyOTcwMTg3NTU4MTUiPiLQotC+0LTRgNC+0LsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+ItCQ0LLRgtC+0LzQsNGCINGN0YDQs9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4i0K3RgNCz0q/Sr9C70Y3Qu9GCINGC0q/Qs9C20LjQs9C00YHRjdC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+ItCe0YDRg9GD0LvQsNGFINCw0YDQs9CwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwiIG1zZ2lkPSI1MDExMzI3MDQ4NzQ4NzYyMjU3Ij4i0JHQsNC50YDRiNC40LsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4i0JHQsNC50YDRiNC40Lsg0LjQtNGN0LLRhdCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX21lZGlhX2RldmljZV9sYWJlbCIgbXNnaWQ9IjEzMDI5MDY4MzYzNzI2MDM3NjIiPiLQnNC10LTQuNCwINGC06nRhdOp06nRgNOp0LzQtiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4i0JfTqdCy0YXTqdC9INGP0LDRgNCw0LvRgtCw0Lkg0LTRg9GD0LTQu9Cw0LPQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3NldHRpbmdzX2xhYmVsIiBtc2dpZD0iNTMyNjU1NjU5MjU3ODA2NTQwMSI+ItCi0L7RhdC40YDQs9C+0L4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc190aW1lX2xhYmVsIiBtc2dpZD0iNDYzNTk2OTE4MjIzOTczNjQwOCI+ItCm0LDQsyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3VzZXJfbGFiZWwiIG1zZ2lkPSI1MjM4OTk1NjMyMTMwODk3ODQwIj4i0JHQuCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbGFiZWwiIG1zZ2lkPSI5MTM1MzQ0NzA0ODk5NTQ2MDQxIj4iV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI3MTcxOTA0ODQ1MzQ1NTczNDMxIj4i0KXQvtC70LHQvtCz0LTQvtC+0LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub19uZXR3b3JrIiBtc2dpZD0iMjIyMTk5MzA3NzIyMDg1NjM3NiI+ItCh0q/Qu9C20Y3RjdCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfb2ZmX2xhYmVsIiBtc2dpZD0iNzU1ODc3ODEwMDg0Mzg4NTg2NCI+IldpLUZpINGD0L3RgtCw0YDRgdCw0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbGFiZWwiIG1zZ2lkPSI2ODkzNTkyOTY0NDYzNjI0MzMzIj4iV2ktRmkg0JTRjdC70LPRjdGGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4i0KPRgtCw0YHQs9Kv0Lkg0LTRjdC70LPRjdGGIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4i0KLQvtC00YDQvtC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+ItCQ0JLQotCe0JzQkNCiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+ItOo0L3Qs9OpINGD0YDQstGD0YPQu9Cw0YUg0LPQvtGA0LjQvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+ItCh0LDQudC20YDRg9GD0LvRgdCw0L0g0Y/Qu9Cz0LDRgNCw0LvRgtCw0Lkg0LPQvtGA0LjQvCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4i06jQvdCz06kg0LfQsNC70YDRg9GD0LvQsNGFINCz0L7RgNC40LwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+ItCh0q/Qu9C20Y3RjSDRhdGP0L3QsNCz0LTQsNC2XG7QsdCw0LnQtiDQsdC+0LvQt9C+0YjQs9Kv0LkiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbW4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYTdiZTEKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjA4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTY0OTM3MzQ0ODUwMDA0NDY2Ij4i0KHQuNGB0YLQtdC8IFVJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9jbGVhcl9hbGxfYnV0dG9uIiBtc2dpZD0iNzc3NDcyMTM0NDcxNjczMTYwMyI+ItCm0Y3QstGN0YDQu9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9yZW1vdmVfaXRlbV90aXRsZSIgbXNnaWQ9IjYwMjYzOTU4NjgxMjk4NTI5NjgiPiLQltCw0LPRgdCw0LDQu9GC0LDQsNGBINGD0YHRgtCz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9Ijc3OTM2MjQ4NjQ1Mjg4MTg1NjkiPiLQkNC/0L8g0LzRjdC00Y3RjdC70Y3QuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm9fcmVjZW50X2FwcHMiIG1zZ2lkPSI2NTc2MzkyOTUxMDUzOTk0NjQwIj4i0KHSr9Kv0LvQuNC50L0g0LDQv9C/INGF0L7QvtGB0L7QvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9kaXNtaXNzX3JlY2VudHMiIG1zZ2lkPSI0NTc2MDc2MDc1MjI2NTQwMTA1Ij4i0KHSr9Kv0LvQuNC50L0g0LDQv9C/LdGD0YPQtNGL0LMg0YXQsNCw0YUiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9yZWNlbnRfYXBwcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NTQxNzYwODM4NjU4NDU1NDEiPiIxINGB0q/Sr9C70LjQudC9INCw0L/QvyI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTA0MDc4NDM1OTc5NDg5MDc0NCI+IiVkINGB0q/Sr9C70LjQudC9INCw0L/QvyI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm9fbm90aWZpY2F0aW9uc190aXRsZSIgbXNnaWQ9IjQ3NTUyNjExNjcxOTM4MzMyMTMiPiLQnNGN0LTRjdCz0LTRjdC7INCx0LDQudGF0LPSr9C5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9vbmdvaW5nX2V2ZW50c190aXRsZSIgbXNnaWQ9IjE2ODI1MDQ1MTMzMTY4NzkyMDIiPiLQk9Cw0YDRgdCw0L0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2xhdGVzdF9ldmVudHNfdGl0bGUiIG1zZ2lkPSI2NTk0NzY3NDM4NTc3NTkzMTcyIj4i0JzRjdC00Y3Qs9C00Y3QuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3RpdGxlIiBtc2dpZD0iMjc4MzEwNDgwNzU1MTIxMTYzOSI+ItCm0Y3QvdGN0LPQu9GN0LPRh9C40LnQsyDRhdC+0LvQsdC+0L3QviDRg9GDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfc3VidGl0bGUiIG1zZ2lkPSIxNzUyMDQwMDYyMDg3ODI5MTk2Ij4i0JHQsNGC0LXRgNC10Lkg0LTRg9GD0YHQsNC2INCx0LDQudC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfcGVyY2VudF9mb3JtYXQiIG1zZ2lkPSIxMDc3MjQ0OTQ5MzE4MjYxNzYxIj4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQlJTwveGxpZmY6Zz4g0q/Qu9C00YHRjdC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZF9jaGFyZ2VyIiBtc2dpZD0iNDU0OTEwNTk5Njc0MDUyMjUyMyI+IlVTQiDRhtGN0L3RjdCz0LvRjdC70YIg0LTRjdC80LbQuNCz0LTRjdGF0LPSr9C5INCx0LDQudC90LAuXG7Ql9Op0LLRhdOp0L0g0L3QuNC50LvSr9Kv0LvRjdCz0LTRgdGN0L0g0YbRjdC90Y3Qs9C70Y3Qs9GH0LjQudCzINCw0YjQuNCz0LvQsNC90LAg0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd193aHkiIG1zZ2lkPSI3Mjc5MTY5NjA5NTE4Mzg2MzcyIj4i0JHQsNGC0LXRgNC10Lkg0LDRiNC40LPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjMwMjM4ODk5MTY2OTkyNzAyMjQiPiLQotC+0YXQuNGA0LPQvtC+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc193aWZpX2J1dHRvbiIgbXNnaWQ9IjE3MzM5MjgxNTE2OTgzMTE5MjMiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0ODc5ODc5Njk4NTAwOTU1MzAwIj4i0J3QuNGB0LvRjdCz0LjQudC9INCz0L7RgNC40LwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fcm90YXRpb24iIG1zZ2lkPSIzNzkwNDgyNTQxMzU3Nzk4NDIxIj4i0JTRjdC70LPRjdGG0LjQudCzINCw0LLRgtC+0LzQsNGC0LDQsNGAINGN0YDQs9Kv0q/Qu9GN0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX211dGVfbGFiZWwiIG1zZ2lkPSI1NTQ2ODI1NDk5MTc0MjkzOTYiPiLQpdCQ0JDQpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTExNDUzNjE0OTYyMzI0Njc0Ij4i0JDQktCi0J7QnNCQ0KIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX25vdGlmaWNhdGlvbnMiIG1zZ2lkPSIzOTcxNDYxNzYyODA5MDUxMzciPiLQnNGN0LTRjdCz0LTRjdC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmx1ZXRvb3RoX3RldGhlcmVkIiBtc2dpZD0iNzA5NDEwMTYxMjE2MTEzMzI2NyI+ItCR0LvRjtGC0q/Sr9GC0YvQsyDQvNC+0LTQtdC8INCx0L7Qu9Cz0L7QtiDQsdCw0LnQvdCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9pbnB1dF9tZXRob2Rfc2V0dGluZ3NfY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSIzNTA0MjkyNDcxNTEyMzE3ODI3Ij4i0J7RgNGD0YPQu9Cw0YUg0LDRgNCz0YvQsyDRgtC+0YXQuNGA0YPRg9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfdXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNzU1MTkwMzA4NDQxNjA1NzgxMCI+ItCR0L7QtNC40YIg0LPQsNGAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjgzNDY5ODAwMTI3MTU2MjA1NyI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g0LDQv9C/LdCzIFVTQiDRgtOp0YXTqdOp0YDTqdC80LbQuNC0INGF0LDQvdC00LDRhdGL0LMg0LfTqdCy0YjTqdOp0YDTqdGFINKv0q8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjUxNzE3NzU0MTExNzg4NjU3NTAiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+INCw0L/Qvy3QsyBVU0Ig0YLTqdGF06nTqdGA06nQvNC20LjQtCDRhdCw0L3QtNCw0YXRi9CzINC306nQstGI06nTqdGA06nRhSDSr9KvPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSI1MTYxMjA1MjU4NjM1MjUzMjA2Ij4i0K3QvdGNIFVTQiDRgtOp0YXTqdOp0YDTqdC80LYg0YXQvtC70LHQvtCz0LTQvtGFINKv0LXQtCA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+LdCzINC90Y3RjdGFINKv0q8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjM4MDg5ODQ5MzE4MzAyMjk4ODgiPiLQrdC90Y0gVVNCINGC06nRhdOp06nRgNOp0LzQtiDRhdC+0LvQsdC+0LPQtNC+0YUg0q/QtdC0IDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4t0LMg0L3RjdGN0YUg0q/Srz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3VyaV9wcm9tcHQiIG1zZ2lkPSI1MTM0NTA2MjE0MTM3MzMzNDMiPiLQrdC90Y0gVVNCINGF0Y3RgNGN0LPRgdGN0Lsg0LTRjdGN0YAg0YHRg9GD0LvQs9Cw0YHQsNC9INCw0L/QvyDQsNC20LjQu9C70LDQsNCz0q/QuSDQsdCw0LnQvdCwLiDQrdC90Y0g0YXRjdGA0Y3Qs9GB0LvQuNC50L0g0YLQsNC70LDQsNGAIDx4bGlmZjpnIGlkPSJVUkwiPiUxJHM8L3hsaWZmOmc+LdGBINC00Y3Qu9Cz0Y3RgNGN0L3Qs9Kv0Lkg0q/Qt9C90Y0g0q/Sry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+IlVTQiDRgtOp0YXTqdOp0YDTqdC80LYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF92aWV3IiBtc2dpZD0iNjMwNDU2NTU1MzIxODE5Mjk5MCI+ItKu0LfRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9kZXZpY2UiIG1zZ2lkPSIxNDUwMjg3NDM3MDE3MzE1OTA2Ij4i0K3QvdGNIFVTQiDRgtOp0YXTqdOp0YDTqdC80LbQuNC50LMg0q/QvdC00YHRjdC9INCx0L7Qu9Cz0L7QvSDQsNGI0LjQs9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfYWNjZXNzb3J5IiBtc2dpZD0iMTIxMDk1NDU3Njk3OTYyMTU5NiI+ItCt0L3RjSBVU0Ig0YLTqdGF06nTqdGA06nQvNC20LjQudCzINKv0L3QtNGB0Y3QvSDQsdC+0LvQs9C+0L0g0LDRiNC40LPQu9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX3RpdGxlIiBtc2dpZD0iNDUxMzkxODM5MzM4NzE0MTk0OSI+IlVTQiDQtNC10LHQsNCzINGF0LjQudGF0LjQudCzINC306nQstGI06nTqdGA06nRhSDSr9KvPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfbWVzc2FnZSIgbXNnaWQ9IjIyMjAxNDM4NTU5MTIzNzY0OTYiPiLQmtC+0LzQv9GM0Y7RgtC10YDQuNC50L0gUlNBINGC0q/Qu9GF0q/Sr9GA0LjQudC9INGF0YPRgNGD0YPQvdGLINGF0Y3RjSA6XG48eGxpZmY6ZyBpZD0iRklOR0VSUFJJTlQiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiLQrdC90Y0g0LrQvtC80L/RjNGO0YLQtdGA0Y3RjdGBINC+0YDQvtGF0YvQsyDQsdCw0LnQvdCz0LAg0LfTqdCy0YjTqdOp0YDTqdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4i0JTRjdC70LPRjdGGINC00q/Sr9GA0LPRjdGFINCx0L7QuyDTqdGB0LPTqdC906kg0q/SryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLQlNGN0LvQs9GN0YYg0LTSr9Kv0YDQs9GN0YUg0LHQvtC7INGC0LDRgtC90LAg0YPRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiLQlNGN0LvQs9GN0YbQuNC50L0g0LDQs9GI0LjQvdCzINGF0LDQtNCz0LDQu9C2INCx0LDQudC90LDigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiLQlNGN0LvQs9GN0YbQuNC50L0g0LDQs9GI0LjQvdCzINGF0LDQtNCz0LDQu9C2INCx0LDQudC90LDigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+ItCU0Y3Qu9Cz0Y3RhtC40LnQvSDQsNCz0YjQuNC9INGF0LDQtNCz0LDQu9Cw0LPQtNCw0LIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90aXRsZSIgbXNnaWQ9IjY0NjE4NjU5NjA5NjE0MTQ5NjEiPiLQlNGN0LvQs9GN0YbQuNC50L0g0LDQs9GI0LjQvdCzINCw0LLRgdCw0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90ZXh0IiBtc2dpZD0iMTE1MjgzOTY0NzY3NzU1ODgxNSI+ItCU0Y3Qu9Cz0Y3RhtC40LnQvSDQsNCz0YjQvdGL0LMg0YXQsNGA0LDRhSDQsdC+0Lsg0YXSr9GA0L3RjSDSr9KvLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RpdGxlIiBtc2dpZD0iNzA1NzgxMTE2NzQ2OTIyNzcxIj4i0JTRjdC70LPRjdGG0LjQudC9INCw0LPRiNC40L3QsyDQsNCy0Ycg0YfQsNC00YHQsNC90LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RleHQiIG1zZ2lkPSI4MTM0MDExMjY5NTcyNDE1NDAyIj4i0JTRjdC70LPRjdGG0LjQudC9INCw0LPRiNC40L3QsyDRhdCw0LTQs9Cw0LvQtiDRh9Cw0LTRgdCw0L3Qs9Kv0LkuINCh0LDQvSDQsNGI0LjQs9C70LDQs9C00LDQtiDQsdCw0LnQs9Cw0LAg0LHQvtC70L7Qu9GC0L7QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHJlZmVyZW5jZV90aXRsZSIgbXNnaWQ9IjY1NTEwNTAzNzczODg4ODI3ODciPiJVU0Ig0YTQsNC50Lsg0YjQuNC70LbSr9Kv0LvRjdGFINGB0L7QvdCz0L7Qu9GCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX210cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI0MzMzNTA0NDEzNTYzMDIzNjI2Ij4i0JzQtdC00LjQsCDRgtC+0LPQu9GD0YPQu9Cw0LPRhyhNVFApINCx0L7Qu9Cz0L7QvSDQt9Cw0LvQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfcHRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9Ijc1MTcxMjc1NDAzMDE2MjU3NTEiPiLQmtCw0LzQtdGAINCx0L7Qu9Cz0L7QvShQVFApINC30LDQu9Cz0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxlcl9jZF9idXR0b25fdGl0bGUiIG1zZ2lkPSIyMzEyNjY3NTc4NTYyMjAxNTgzIj4i0JzQsNGBLdC0INC30L7RgNC40YPQu9GB0LDQvSAg0JDQvdC00YDQvtC50LQg0KTQsNC50Lsg0KjQuNC70LbSr9Kv0LvRjdGFINCw0L/Qvy3QsyDRgdGD0YPQu9Cz0LDQvdCwINGD0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhY2siIG1zZ2lkPSI1NjcwMTE1Mzg5OTQ0MjkxMjAiPiLQkdGD0YbQsNGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+ItCT0Y3RgNC40LnQvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+ItCm0Y3RgSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+ItCh0q/Sr9C70LjQudC9INCw0L/QvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4i0J7RgNGD0YPQu9Cw0YUg0LDRgNCz0YvQsyDRgdGN0LvQs9GN0YUg0YLQvtCy0YcuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+ItCi0L7RhdC40YDQvtC80LbRgtC+0Lkg06nRgdCz06nRhSDRgtC+0LLRhy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+ItCW0LjQttCz0Y3RjdGBINGC0L7QvCDQtNGN0LvQs9GN0YbRgNKv0q8g06nRgdCz06nRhS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9jb25uZWN0ZWQiIG1zZ2lkPSIyNzA3MDI3NjMzMjQyOTgzMzcwIj4i0JHQu9GO0YLSr9Kv0YIg0YXQvtC70LHQvtCz0LTRgdC+0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfZGlzY29ubmVjdGVkIiBtc2dpZD0iNzQxNjY0ODY2OTk3Njg3MDE3NSI+ItCR0LvRjtGC0q/Sr9GCINGC0LDRgdGA0LDQsi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2JhdHRlcnkiIG1zZ2lkPSIzNTgzNDMwMjIzNTI4MjA5NDYiPiLQkdCw0YLQtdGA0LXQuSDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfb25lX2JhciIgbXNnaWQ9Ijc3NzQ4ODc3MjE4OTEwNTc1MjMiPiLQkdCw0YLQtdGA0LXQuSDQvdGN0LMg0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90d29fYmFycyIgbXNnaWQ9Ijg1MDA2NTA0Mzg3MzUwMDk5NzMiPiLQkdCw0YLQtdGA0LXQuSDRhdC+0ZHRgCDQsdCw0LPQsNC90LDRgtCw0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3RocmVlX2JhcnMiIG1zZ2lkPSIyMzAyOTgzMzMwODY1MDQwNDQ2Ij4i0JHQsNGC0LXRgNC10Lkg0LPRg9GA0LLQsNC9INCx0LDQs9Cw0L3QsNGC0LDQuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfZnVsbCIgbXNnaWQ9Ijg5MDkxMjI0MDE3MjAxNTg1ODIiPiLQkdCw0YLQtdGA0LXQuSDQtNKv0q/RgNGN0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19waG9uZSIgbXNnaWQ9IjQ4OTQ3MDg5MzcwNTI2MTEyODEiPiLQo9GC0LDRgSDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX29uZV9iYXIiIG1zZ2lkPSI2ODc2OTkyNzgxMzI2NjQxMTUiPiLQo9GC0LDRgSDQvdGN0LMg0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdHdvX2JhcnMiIG1zZ2lkPSI4Mzg0OTA1MzgyODA0ODE1MjAxIj4i0KPRgtCw0YEg0YXQvtGR0YAg0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdGhyZWVfYmFycyIgbXNnaWQ9Ijg1MjE5MDQ4NDM5MTk5NzE4ODUiPiLQo9GC0LDRgSDQs9GD0YDQstCw0L0g0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2NDcxODM0ODY4NTgwNzU3ODk4Ij4i0KPRgtCw0YHQvdGLINC00L7RhdC40L4g0LTSr9Kv0YDRjdC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fZGF0YSIgbXNnaWQ9IjQ3OTE5NjYyOTUwOTY4Njc1NTUiPiLQlNCw0YLQsCDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfb25lX2JhciIgbXNnaWQ9IjE0MTU2MjU4MzMyMzgyNzM2MjgiPiLQlNCw0YLQsCDQvdGN0LMg0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90d29fYmFycyIgbXNnaWQ9IjYxNjYwMTg0OTIzNjA0MzIwOTEiPiLQlNCw0YLQsCDRhdC+0ZHRgCDQsdCw0LPQsNC90LDRgtCw0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4i0JTQsNGC0LAg0LPRg9GA0LLQsNC9INCx0LDQs9Cw0L3QsNGC0LDQuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzA4Mzg0NjA4MTI0NTE5MzY5Ij4i0JTQsNGC0LAg0LTQvtGF0LjQviDQtNKv0q/RgNGN0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29mZiIgbXNnaWQ9IjMxNzczODAyOTY2OTc5MzM2MjciPiJXaWZpINGD0L3RgtCw0YDRgdCw0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub193aWZpIiBtc2dpZD0iMTQyNTQ3NjU1MTgyNzkyNDQ3NCI+IldpZmkg0YHQsNC70LDQsi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiJXaWZpINC90Y3QsyDQsdCw0LPQsNC90LDRgtCw0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3R3b19iYXJzIiBtc2dpZD0iNDk5NDI3NDI1MDQ5NzI2MjQzNCI+IldpZmkg0YXQvtGR0YAg0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90aHJlZV9iYXJzIiBtc2dpZD0iMzQ5NTc1NTA0NDI3NjU4ODM4NCI+IldpZmkg0LPRg9GA0LLQsNC9INCx0LDQs9Cw0L3QsNGC0LDQuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2ODUzNTYxMzAzNTg2NDgwMzc2Ij4iV2lmaSDQtNC+0YXQuNC+INC00q/Sr9GA0Y3QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpbWF4IiBtc2dpZD0iNDMyOTE4MDEyOTcyNzYzMDM2OCI+IldpTUFYINCx0LDQudGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfb25lX2JhciIgbXNnaWQ9IjQxNzA5OTQyOTkwMTE4NjM2NDgiPiJXaU1BWCDQvdGN0LMg0LHQsNCz0LDQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdHdvX2JhcnMiIG1zZ2lkPSI5MTc2MjM2ODU4MzM2NTAyMjg4Ij4iV2lNQVgg0YXQvtGR0YAg0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiJXaU1BWCDQs9GD0YDQstCw0L0g0LHQsNCz0LDQvdCw0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzY4MDg5OTg2Nzk1NTc5NTU4Ij4iV2lNQVgg0LTQvtGF0LjQviDQtNKv0q/RgNGN0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaWduYWwiIG1zZ2lkPSI3MDY0NjQ1MzIwNzgyNTg1MTY3Ij4i0JTQvtGF0LjQviDQsdCw0LnRhdCz0q/QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4i0KXQvtC70LHQvtCz0LTQvtC+0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfemVyb19iYXJzIiBtc2dpZD0iMzgwNjA2MDIyNDQ2NzAyNzg4NyI+ItCi0Y3QsyDQsdCw0LPQsNC90LDRgtCw0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9vbmVfYmFyIiBtc2dpZD0iMTY4NTczMDExMzE5MjA4MTg5NSI+ItCd0Y3QsyDQsdCw0LPQsNC90LDRgtCw0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90d29fYmFycyIgbXNnaWQ9IjY0MzczNjM2NDgzODUyMDY2NzkiPiLQpdC+0ZHRgCDQsdCw0LPQsNC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90aHJlZV9iYXJzIiBtc2dpZD0iMjY0ODI0MTQxNTExOTM5NjY0OCI+ItCT0YPRgNCy0LDQvSDQsdCw0LPQsNC90LDRgtCw0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zaWduYWxfZnVsbCIgbXNnaWQ9IjkxMjI5MjI4ODY1MTk2NzY4MzkiPiLQlNC+0YXQuNC+INC00q/Sr9GA0Y3QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb24iIG1zZ2lkPSIyMzg1MjU0NjkzNjI0MzQ1MjY1Ij4i0JjQtNGN0LLRhdC40LbRgdGN0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29mZiIgbXNnaWQ9IjY0NzU1MDgxNTc3ODY4NTMxNTciPiLQo9C90YLRgNCw0LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19jb25uZWN0ZWQiIG1zZ2lkPSI4MzY2MjU2NjkzNzE5NDk5NjY1Ij4i0KXQvtC70LHQvtCz0LTRgdC+0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZ3BycyIgbXNnaWQ9IjE2MDY0NzcyMjQ0ODY3NDc3NTEiPiJHUFJTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMXgiIG1zZ2lkPSI5OTQxMzM0NjgxMjAyNDQwMTgiPiIxIFgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9oc3BhIiBtc2dpZD0iMjAzMjMyODg1NTQ2MjY0NTE5OCI+IkhTUEEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8zZyIgbXNnaWQ9Ijg2Mjg1NjIzMDUwMDM1NjgyNjAiPiIzRyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzMuNWciIG1zZ2lkPSI4NjY0ODQ1NjA5OTgxNjkyMDAxIj4iMy41RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzRnIiBtc2dpZD0iNzc0MTAwMDc1MDYzMDA4OTYxMiI+IjRHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fbHRlIiBtc2dpZD0iNTQxMzQ2ODgwODYzNzU0MDY1OCI+IkxURSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2NkbWEiIG1zZ2lkPSI2MTMyNjQ4MTkzOTc4ODIzMDIzIj4iQ0RNQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX3JvYW1pbmciIG1zZ2lkPSI1OTc3MzYyMzMzNDY2NTU2MDk0Ij4i0KDSr9Kv0LzQuNC90LMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9lZGdlIiBtc2dpZD0iNDQ3NzQ1NzA1MTYzMTk3OTI3OCI+IkVkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl93aWZpIiBtc2dpZD0iMjMyNDQ5Njc1NjU5MDY0NTIyMSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaW0iIG1zZ2lkPSI4Mjc0MDE3MTE4NDcyNDU1MTU1Ij4iU0lNINCx0LDQudGF0LPSr9C5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX3RldGhlciIgbXNnaWQ9IjQxMDI3ODQ0OTgxNDAyNzE5NjkiPiLQkdC70Y7RgtKv0q/RgiDQvNC+0LTQtdC8INCx0L7Qu9C2INCx0LDQudC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9haXJwbGFuZV9tb2RlIiBtc2dpZD0iODM0NzQ4OTk5NzkwNzYzMDkyIj4i0J3QuNGB0LvRjdCz0LjQudC9INCz0L7RgNC40LwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfbGV2ZWwiIG1zZ2lkPSI3NDUxNDc0MTg3MTEzMzcxOTY1Ij4i0JHQsNGC0LXRgNC10LkgPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+INGF0YPQstGM0YLQsNC5LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNzk5NTgzOTExMjMxODkzMzgwIj4i0KHQuNGB0YLQtdC80LjQudC9INGC0L7RhdC40YDQs9C+0L4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25zX2J1dHRvbiIgbXNnaWQ9IjQ0OTgwMDAzNjk3Nzk0MjE4OTIiPiLQnNGN0LTRjdCz0LTRjdC7LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVtb3ZlX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjM2MDMwOTk1MTQ5MDIxODIzNTAiPiLQnNGN0LTRjdCz0LTQu9C40LnQsyDRhtGN0LLRjdGA0LvRjdGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2VuYWJsZWQiIG1zZ2lkPSIzNTExNDY5NDk5MjQwMTIzMDE5Ij4iR1BTINC40LTRjdCy0YXRgtGN0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfYWNxdWlyaW5nIiBtc2dpZD0iODk1OTMzMzM1MTA1ODk2NzE1OCI+IkdQUyDRhdCw0LnQtiDQsdCw0LnQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHR5X2VuYWJsZWQiIG1zZ2lkPSI0NjEzMjAwMzY1Mzc5NDI2NTYxIj4iVGVsZVR5cGV3cml0ZXIg0LjQtNGN0LLRhdGC0Y3QuSDQsdC+0LvQvtCyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3ZpYnJhdGUiIG1zZ2lkPSI2NjY1ODUzNjMzNjQxNTUwNTUiPiLQpdC+0L3RhdC90Ysg0YfQuNGH0LjRgNCz0Y3RjS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl9zaWxlbnQiIG1zZ2lkPSI5MDYxMjQzMzA3OTM5MTM1MzgzIj4i0KXQvtC90YXRi9CzINGF0LDQsNGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50c19pdGVtX2Rpc21pc3NlZCIgbXNnaWQ9IjY4MDM1NzQ5MzUwODQ4NjcwNzAiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g0LHQsNC50YXQs9Kv0LkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25fZGlzbWlzc2VkIiBtc2dpZD0iODU0MjExMzg3MTg2MzA2OTI3Ij4i0JzRjdC00Y3Qs9C00Y3QuyDRhdCw0LDQs9C00YHQsNC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19ub3RpZmljYXRpb25fc2hhZGUiIG1zZ2lkPSI0NjkwMjc0ODQ0NDQ3NTA0MjA4Ij4i0JzRjdC00Y3Qs9C00LvQuNC50L0g0YXRg9GA0LDQsNC90LPRg9C5INGB0LDQvNCx0LDRgCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19xdWlja19zZXR0aW5ncyIgbXNnaWQ9IjYxODYzNzg0MTE1ODI0MzcwNDYiPiLQqNGD0YPRgNGF0LDQuSDRgtC+0YXQuNGA0LPQvtC+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19yZWNlbnRfYXBwcyIgbXNnaWQ9IjkwMTQwMzI5MTY0MTA1OTAwMjciPiLQodKv0q/Qu9C40LnQvSDQsNC/0L8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3VzZXIiIG1zZ2lkPSIxMTA0ODQ2Njk5ODY5NDc2ODU1Ij4i0KXRjdGA0Y3Qs9C70Y3Qs9GHIDx4bGlmZjpnIGlkPSJVU0VSIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc193aWZpIiBtc2dpZD0iNjA5OTc4MTAzMTY2OTcyODcwOSI+Ijx4bGlmZjpnIGlkPSJTSUdOQUwiPiUxJHM8L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTIkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX21vYmlsZSIgbXNnaWQ9IjQ4NzY4MDY1NjQwODYyNDEzNDEiPiLQnNC+0LHQsNC50LsgPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJUWVBFIj4lMiRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUzJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiLQkdCw0YLQtdGA0LXQuSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+ItCd0LjRgdC70Y3Qs9C40LnQvSDQs9C+0YDQuNC8IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+ItCR0LvRjtGC0q/Sr9GCIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4i0KHRjdGA0q/Sr9C70LPQuNC50LMgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi3QtCDRgtC+0YXQuNGA0YPRg9C70YHQsNC9LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IjJHLTNHINC00LDRgtCwINC40LTRjdCy0YXQs9Kv0Lkg0LHQvtC70L7QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHINC00LDRgtCwINC40LTRjdCy0YXQs9Kv0Lkg0LHQsNC50L3QsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX21vYmlsZV90aXRsZSIgbXNnaWQ9IjEwNDYwNDcyNDg4NDQ4MjEyMDIiPiLQnNC+0LHQsNC50Lsg0LTQsNGC0LAg0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQvtCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfdGl0bGUiIG1zZ2lkPSIyMDg2ODE1MzA0ODU4OTY0OTU0Ij4i0JTQsNGC0LAg0LjQtNGN0LLRhdCz0q/QuSDQsdC+0LvQvtCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2ciIG1zZ2lkPSIzODUzMTE3MjY5MDUxODA2MjgwIj4i0KLQsCDQt9Cw0LDRgdCw0L0g0LTQsNGC0LAg0LDRiNC40LPQu9Cw0LvRgtGL0L0g0YXRj9C30LPQsNCw0YDRgiDRhdKv0YDRjdCyLlxuXG7QpdGN0YDRjdCyINGC0LAg0LTQsNGC0LDQsyDQtNCw0YXQuNC9INC40LTRjdCy0YXQttKv0q/Qu9Cx0Y3QuyDQvtC/0LXRgNCw0YLQvtGA0YIg0YLTqdC70LHTqdGAINGC06nQu9Op0YUg0YXRjdGA0Y3Qs9GC0Y3QuS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19lbmFibGUiIG1zZ2lkPSI3NzI5NzcyMDM5MjA4NjY0NjA2Ij4i0JTQsNGC0LAg0LTQsNGF0LjQvSDQuNC00Y3QstGF0LbSr9Kv0LvRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfZGlzY29ubmVjdGVkIiBtc2dpZD0iMTk0MDIzMTUyMTI3NDE0Nzc3MSI+ItCY0L3RgtC10YDQvdC10YIg0YXQvtC70LHQvtC70YIg0LHQsNC50YXQs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaS1GaSDRhdC+0LvQsdC+0LPQtNGB0L7QvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iR1BTINGF0LDQudC2INCx0LDQudC90LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4iR1BTINCx0LDQudGA0YjQuNC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4i0JHQsNC50YDRiNC70YvQvSDRhdKv0YHRjdC70YLSr9Kv0LQg0LjQtNGN0LLRhdGC0Y3QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+ItCR0q/RhSDQvNGN0LTRjdCz0LTQu9C40LnQsyDRhtGN0LLRjdGA0LvRjdGFLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiLQkNC/0L8g0LzRjdC00Y3RjdC70Y3QuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4i0JTRjdC70LPRjdGGINCw0LLRgtC+0LzQsNGC0LDQsNGAINGN0YDQs9GN0L3RjS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+ItCU0Y3Qu9Cz0Y3RhiDRhdGN0LLRgtGN0Y0g0YfQuNCz0LvRjdC70LQg0YLSr9Cz0LbQuNCz0LTRgdGN0L0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+ItCU0Y3Qu9Cz0Y3RhiDQsdC+0YHQvtC+INGH0LjQs9C70Y3Qu9GN0Y3RgCDRgtKv0LPQttC40LPQtNGB0Y3QvS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iRGF5ZHJlYW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiLQrdGC0LXRgNC90LXRgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4i0J3QuNGB0LvRjdCz0LjQudC9INCz0L7RgNC40LwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnaW5nX2xhYmVsIiBtc2dpZD0iNDkwMDc0Nzc0NDY1MzA5MjA5Ij4i0KbRjdC90Y3Qs9C70Y3QtiDQsdCw0LnQvdCwLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2VkX2xhYmVsIiBtc2dpZD0iODg2NTQxMzA3OTQxNDI0NjA4MSI+ItCm0Y3QvdGN0LPQu9GN0LPQtNGB0Y3QvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9sYWJlbCIgbXNnaWQ9IjYzMDQxOTAyODUxNzA3MjE0MDEiPiLQkdC70Y7RgtKv0q/RgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9tdWx0aXBsZV9kZXZpY2VzX2xhYmVsIiBtc2dpZD0iMzkxMjI0NTU2NTYxMzY4NDczNSI+ItCR0LvRjtGC0q/Sr9GCICg8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g0YLTqdGF06nTqdGA06nQvNC2KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9vZmZfbGFiZWwiIG1zZ2lkPSI4MTU5NjUyMTQ2MTQ5MjE5OTM3Ij4i0JHQu9GO0YLSr9Kv0YIg0YPQvdGC0YDQsNCw0LvRgtGC0LDQuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI2OTY4MzcyMjk3MDE4NzU1ODE1Ij4i0KLQvtC00YDQvtC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fdW5sb2NrZWRfbGFiZWwiIG1zZ2lkPSIzMzYwNTQ5MzAzNjI1ODA1ODQiPiLQkNCy0YLQvtC80LDRgiDRjdGA0LPRjdGFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fbG9ja2VkX2xhYmVsIiBtc2dpZD0iODA1ODY0NjQ0NzI0MjU2NTQ4NiI+ItCt0YDQs9Kv0q/Qu9GN0LvRgiDRgtKv0LPQttC40LPQtNGB0Y3QvSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ltZV9sYWJlbCIgbXNnaWQ9IjcwNzM0NjMwNjQzNjk0Njg0MjkiPiLQntGA0YPRg9C70LDRhSDQsNGA0LPQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+ItCR0LDQudGA0YjQuNC7Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsIiBtc2dpZD0iNzQ2NDU0NDA4NjUwNzMzMTQ1OSI+ItCR0LDQudGA0YjQuNC7INC40LTRjdCy0YXQs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4i0JzQtdC00LjQsCDRgtOp0YXTqdOp0YDTqdC80LYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2xhYmVsIiBtc2dpZD0iNzcyNTY3MTMzNTU1MDY5NTU4OSI+IlJTU0kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2VtZXJnZW5jeV9vbmx5IiBtc2dpZD0iMjcxMzc3NDA0MTY3Mjg4Njc1MCI+ItCX06nQstGF06nQvSDRj9Cw0YDQsNC70YLQsNC5INC00YPRg9C00LvQsNCz0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19zZXR0aW5nc19sYWJlbCIgbXNnaWQ9IjUzMjY1NTY1OTI1NzgwNjU0MDEiPiLQotC+0YXQuNGA0LPQvtC+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfdGltZV9sYWJlbCIgbXNnaWQ9IjQ2MzU5NjkxODIyMzk3MzY0MDgiPiLQptCw0LMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc191c2VyX2xhYmVsIiBtc2dpZD0iNTIzODk5NTYzMjEzMDg5Nzg0MCI+ItCR0LgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2xhYmVsIiBtc2dpZD0iOTEzNTM0NDcwNDg5OTU0NjA0MSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNzE3MTkwNDg0NTM0NTU3MzQzMSI+ItCl0L7Qu9Cx0L7Qs9C00L7QvtCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm9fbmV0d29yayIgbXNnaWQ9IjIyMjE5OTMwNzcyMjA4NTYzNzYiPiLQodKv0LvQttGN0Y3Qs9Kv0LkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX29mZl9sYWJlbCIgbXNnaWQ9Ijc1NTg3NzgxMDA4NDM4ODU4NjQiPiJXaS1GaSDRg9C90YLQsNGA0YHQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X2xhYmVsIiBtc2dpZD0iNjg5MzU5Mjk2NDQ2MzYyNDMzMyI+IldpLUZpINCU0Y3Qu9Cz0Y3RhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+ItCj0YLQsNGB0LPSr9C5INC00Y3Qu9Cz0Y3RhiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+ItCi0L7QtNGA0L7QuyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiLQkNCS0KLQntCc0JDQoiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiLQnNGN0LTRjdCz0LTRjdC7INGN0L3QtCDRhdCw0YDQsNCz0LTQsNC90LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiLQlNC+0L7RiCDRgtCw0YLQsNCw0LQg0YLRjdC00LPRjdGN0YDRgiDRhdCw0L3QtNCw0L3QsCDRg9GDLlxu0JTQsNGF0LjQvSDQtNC+0L7RiCDRgtCw0YLQsNCw0LQg0YHQuNGB0YLQtdC8INC60L7QvdGC0YDQvtC70LQg0YXQsNC90LTQsNC90LAg0YPRgy4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iNTg0ODQwMjEyNzQ1NTAyMTcxNCI+ItCh0q/Qu9C20Y3RjSDRhdGP0L3QsNCz0LTQsNC2INCx0LDQudC2INCx0L7Qu9C30L7RiNCz0q/QuSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRvbmVfYnV0dG9uIiBtc2dpZD0iMTc1OTM4NzE4MTc2NjYwMzM2MSI+ItCU0YPRg9GB0YHQsNC9Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMTI3Mzc5Njk2NzA5MjAyNzI5MSI+ItCh0q/Qu9C20Y3RjdC90LjQuSDQpdGP0L3QsNC70YIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF9pbmZvX21lc3NhZ2UiIG1zZ2lkPSI1NDMwMzIwNTM5NTU1MzU4NDUyIj4i0K3QvdGNINGC06nRhdOp06nRgNOp0LzQttC40LnQsyDRg9C00LjRgNC00LDQs9GHOiA8eGxpZmY6ZyBpZD0iTUFOQUdJTkdfRE9NQUlOIj4lczwveGxpZmY6Zz4uXG5cbtCi0LDQvdGLINCw0LTQvNC40L0g0LjQvNGN0LnQuywg0LDQv9C/LdGD0YPQtCDQsdC+0LvQvtC9INCw0Y7Rg9C70LPSr9C5INCy0LXQsdGB0LDQudGC0YPRg9C00YvQsyDQvtGA0YPRg9C70LDQvSDRgtCw0L3RiyDRgdKv0LvQttGN0Y3QvdC40Lkg0q/QudC7INCw0LbQuNC70LvQsNCz0LDQsNCzINGF0Y/QvdCw0YUg0LHQvtC70L7QvNC20YLQvtC5LlxuXG7QlNGN0LvQs9GN0YDRjdC90LPSr9C5INC80Y3QtNGN0Y3Qu9C70LjQudCzINOp06nRgNC40LnQvSDQsNC00LzQuNC90YLQsNC5INGF0L7Qu9Cx0L7Qs9C00L7QtiDQsNCy0L3QsCDRg9GDLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmdfbWVzc2FnZSIgbXNnaWQ9IjIwMzMwOTE2NTYxMjk5NjM2NjkiPiLQk9GD0YDQsNCy0LTQsNCz0Ycg0YLQsNC70YvQvSDRjdGC0LPRjdGN0LQg0YLQsNC90Ysg0YHSr9C70LbRjdGN0LMg0YXRj9C90LDQtiDQsdCw0LnQtiDQsdC+0LvQt9C+0YjQs9Kv0LlcbtKv0q/QvdC0INC40LzRjdC50LssINCw0L/Qvy3Rg9GD0LQg0LHQvtC70L7QvSDQsNGO0YPQu9Cz0q/QuSDQstC10LHRgdCw0LnRgtGD0YPQtCDQsdCw0LPRgtCw0L3QsC5cblxu0KLQsNC90Ysg0YLTqdGF06nTqdGA06nQvNC2INC00Y3RjdGAINGB0YPRg9C70LPQsNGB0LDQvSDQuNGC0LPRjdC80LbQu9GN0LPQtNGB0Y3QvSDQttGD0YPRhSDRjdC90Y0g0LHQvtC70L7QvNC20L7QvtGAINGF0LDQvdCz0LDQtiDQsdCw0LnQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9Ijc5NDY5NTY5NzczNzcxNjY3MDkiPiLQmNGC0LPRjdC80LbQu9GN0LPQtNGB0Y3QvSDQttGD0YPRhdGD0YPQtNGL0LMg0YjQsNC70LPQsNGFIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW1zLXJNWS1sYW5kL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1tcy1yTVktbGFuZC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzViMGZhCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1tcy1yTVktbGFuZC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yb3RhdGlvbl9sb2NrZWQiIG1zZ2lkPSI3NjA5NjczMDExNDMxNTU2MDkyIj4iU2tyaW4ga2luaSBkaWt1bmNpIGRhbGFtIG9yaWVudGFzaSBsYW5kc2thcC4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1tcy1yTVkvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE4MTI2OAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjA3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTY0OTM3MzQ0ODUwMDA0NDY2Ij4iU2lzdGVtIFVJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9jbGVhcl9hbGxfYnV0dG9uIiBtc2dpZD0iNzc3NDcyMTM0NDcxNjczMTYwMyI+IlBkbSBiZXJzaWgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9yZW1vdmVfaXRlbV90aXRsZSIgbXNnaWQ9IjYwMjYzOTU4NjgxMjk4NTI5NjgiPiJBbGloIGtlbHVhciBkYXJpIHNlbmFyYWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSI3NzkzNjI0ODY0NTI4ODE4NTY5Ij4iTWFrbHVtYXQgYXBsaWthc2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX3JlY2VudF9hcHBzIiBtc2dpZD0iNjU3NjM5Mjk1MTA1Mzk5NDY0MCI+IlRpYWRhIGFwbGlrYXNpIHRlcmJhaGFydSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9kaXNtaXNzX3JlY2VudHMiIG1zZ2lkPSI0NTc2MDc2MDc1MjI2NTQwMTA1Ij4iQnVhbmcgYXBsaWthc2kgdGVyYmFoYXJ1Ijwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfcmVjZW50X2FwcHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODU0MTc2MDgzODY1ODQ1NTQxIj4iMSBhcGxpa2FzaSB0ZXJiYWhhcnUiPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjEwNDA3ODQzNTk3OTQ4OTA3NDQiPiIlZCBhcGxpa2FzaSB0ZXJiYWhhcnUiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX25vdGlmaWNhdGlvbnNfdGl0bGUiIG1zZ2lkPSI0NzU1MjYxMTY3MTkzODMzMjEzIj4iVGlhZGEgcGVtYmVyaXRhaHVhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfb25nb2luZ19ldmVudHNfdGl0bGUiIG1zZ2lkPSIxNjgyNTA0NTEzMzE2ODc5MjAyIj4iU2VkYW5nIGJlcmxhbmdzdW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9sYXRlc3RfZXZlbnRzX3RpdGxlIiBtc2dpZD0iNjU5NDc2NzQzODU3NzU5MzE3MiI+IlBlbWJlcml0YWh1YW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd190aXRsZSIgbXNnaWQ9IjI3ODMxMDQ4MDc1NTEyMTE2MzkiPiJTYW1idW5na2FuIHBlbmdlY2FzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfc3VidGl0bGUiIG1zZ2lkPSIxNzUyMDQwMDYyMDg3ODI5MTk2Ij4iQmF0ZXJpIHNlbWFraW4gbGVtYWguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfcGVyY2VudF9mb3JtYXQiIG1zZ2lkPSIxMDc3MjQ0OTQ5MzE4MjYxNzYxIj4iQmVyYmFraSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZCUlPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRfY2hhcmdlciIgbXNnaWQ9IjQ1NDkxMDU5OTY3NDA1MjI1MjMiPiJQZW5nZWNhc2FuIFVTQiB0aWRhayBkaXNva29uZy5cbkd1bmFrYW4gaGFueWEgcGVuZ2VjYXMgeWFuZyBkaWJla2Fsa2FuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3doeSIgbXNnaWQ9IjcyNzkxNjk2MDk1MTgzODYzNzIiPiJQZW5nZ3VuYWFuIGJhdGVyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iMzAyMzg4OTkxNjY5OTI3MDIyNCI+IlRldGFwYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3dpZmlfYnV0dG9uIiBtc2dpZD0iMTczMzkyODE1MTY5ODMxMTkyMyI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQ4Nzk4Nzk2OTg1MDA5NTUzMDAiPiJNb2QgcGVzYXdhdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19yb3RhdGlvbiIgbXNnaWQ9IjM3OTA0ODI1NDEzNTc3OTg0MjEiPiJBdXRvcHV0YXIgc2tyaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX211dGVfbGFiZWwiIG1zZ2lkPSI1NTQ2ODI1NDk5MTc0MjkzOTYiPiJSRURBTSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTExNDUzNjE0OTYyMzI0Njc0Ij4iQVVUTyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfbm90aWZpY2F0aW9ucyIgbXNnaWQ9IjM5NzE0NjE3NjI4MDkwNTEzNyI+IlBlbWJlcml0YWh1YW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4iQmx1ZXRvb3RoIGRpdGFtYmF0a2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9pbnB1dF9tZXRob2Rfc2V0dGluZ3NfY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSIzNTA0MjkyNDcxNTEyMzE3ODI3Ij4iU2VkaWFrYW4ga2FlZGFoIGlucHV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl91c2VfcGh5c2ljYWxfa2V5Ym9hcmQiIG1zZ2lkPSI3NTUxOTAzMDg0NDE2MDU3ODEwIj4iUGFwYW4ga2VrdW5jaSBmaXppa2FsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjgzNDY5ODAwMTI3MTU2MjA1NyI+IkJlbmFya2FuIGFwbGlrYXNpIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4gbWVuZ2Frc2VzIHBlcmFudGkgVVNCPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI1MTcxNzc1NDExMTc4ODY1NzUwIj4iQmVuYXJrYW4gYXBsaWthc2kgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiBtZW5nYWtzZXMgYWtzZXNvcmkgVVNCPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSI1MTYxMjA1MjU4NjM1MjUzMjA2Ij4iQnVrYSA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+IGFwYWJpbGEgcGVyYW50aSBVU0IgaW5pIGRpc2FtYnVuZ2thbj8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iMzgwODk4NDkzMTgzMDIyOTg4OCI+IkJ1a2EgPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiBhcGFiaWxhIGFrc2Vzb3JpIFVTQiBpbmkgZGlzYW1idW5na2FuPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfdXJpX3Byb21wdCIgbXNnaWQ9IjUxMzQ1MDYyMTQxMzczMzM0MyI+IlRpYWRhIGFwbCB5ZyBkaXBzZyBiZnVuZ3NpIGRnbiBha3Nlc29yaSBVU0IgaW5pLiBLZXRhaHVpIGxnIHR0ZyBha3Nlc29yaSBpbmkgZGkgPHhsaWZmOmcgaWQ9IlVSTCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+IkFrc2Vzb3JpIFVTQiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3ZpZXciIG1zZ2lkPSI2MzA0NTY1NTUzMjE4MTkyOTkwIj4iTGloYXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2RldmljZSIgbXNnaWQ9IjE0NTAyODc0MzcwMTczMTU5MDYiPiJHdW5ha2FuIHNlY2FyYSBsYWxhaSB1bnR1ayBwZXJhbnRpIFVTQiBpbmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2FjY2Vzc29yeSIgbXNnaWQ9IjEyMTA5NTQ1NzY5Nzk2MjE1OTYiPiJHdW5ha2FuIHNlY2FyYSBsYWxhaSB1bnR1ayBha3Nlc29yaSBVU0IgaW5pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ190aXRsZSIgbXNnaWQ9IjQ1MTM5MTgzOTMzODcxNDE5NDkiPiJCZW5hcmthbiBwZW55YWhwZXBpamF0YW4gVVNCPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfbWVzc2FnZSIgbXNnaWQ9IjIyMjAxNDM4NTU5MTIzNzY0OTYiPiJDYXAgamFyaSBrZWt1bmNpIFJTQSBrb21wdXRlciBpYWxhaDpcbjx4bGlmZjpnIGlkPSJGSU5HRVJQUklOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IlNlbnRpYXNhIGJlbmFya2FuIGtvbXB1dGVyIGluaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+Ilp1bSB1bnR1ayBtZW1lbnVoaSBza3JpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiJSZWdhbmcgdXRrIG1lbWVudWhpIHNrcmluIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+Ik1lbnlpbXBhbiB0YW5na2FwYW4gc2tyaW4uLi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiJNZW55aW1wYW4gdGFuZ2thcGFuIHNrcmluLi4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiJUYW5na2FwYW4gc2tyaW4gc2VkYW5nIGRpc2ltcGFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2ZWRfdGl0bGUiIG1zZ2lkPSI2NDYxODY1OTYwOTYxNDE0OTYxIj4iVGFuZ2thcGFuIHNrcmluIGRpdGFuZ2thcC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RleHQiIG1zZ2lkPSIxMTUyODM5NjQ3Njc3NTU4ODE1Ij4iU2VudHVoIHVudHVrIG1lbGloYXQgdGFuZ2thcGFuIHNrcmluIGFuZGEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGl0bGUiIG1zZ2lkPSI3MDU3ODExMTY3NDY5MjI3NzEiPiJUaWRhayBkYXBhdCBtZW5hbmdrYXAgdGFuZ2thcGFuIHNrcmluLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RleHQiIG1zZ2lkPSI4MTM0MDExMjY5NTcyNDE1NDAyIj4iVGlkYWsgYm9sZWggbWVueWltcGFuIHRhbmdrYXBhbiBza3Jpbi4gU3RvcmFuIG11bmdraW4gc2VkYW5nIGRpZ3VuYWthbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfcHJlZmVyZW5jZV90aXRsZSIgbXNnaWQ9IjY1NTEwNTAzNzczODg4ODI3ODciPiJQaWxpaGFuIHBlbWluZGFoYW4gZmFpbCBVU0IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfbXRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjQzMzM1MDQ0MTM1NjMwMjM2MjYiPiJMZWthcGthbiBzZWJhZ2FpIHBlbWFpbiBtZWRpYSAoTVRQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9wdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNzUxNzEyNzU0MDMwMTYyNTc1MSI+Ikxla2Fwa2FuIHNlYmFnYWkga2FtZXJhIChQVFApIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbGVyX2NkX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjIzMTI2Njc1Nzg1NjIyMDE1ODMiPiJQYXNhbmcgYXBsaWthc2kgUGluZGFoYW4gRmFpbCBBbmRyb2lkIHVudHVrIE1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmFjayIgbXNnaWQ9IjU2NzAxMTUzODk5NDQyOTEyMCI+IktlbWJhbGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4iUnVtYWgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJNZW51Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iQXBsaWthc2kgdGVyYmFoYXJ1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4iQ2FyaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiJLYW1lcmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IkJ1dGFuZyB0dWthciBrYWVkYWggaW5wdXQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IkJ1dGFuZyB6dW0ga2VzZXJhc2lhbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+IlNrcmluIHp1bSBsZWJpaCBrZWNpbCBrZXBhZGEgbGViaWggYmVzYXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfY29ubmVjdGVkIiBtc2dpZD0iMjcwNzAyNzYzMzI0Mjk4MzM3MCI+IkJsdWV0b290aCBkaXNhbWJ1bmdrYW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfZGlzY29ubmVjdGVkIiBtc2dpZD0iNzQxNjY0ODY2OTk3Njg3MDE3NSI+IkJsdWV0b290aCBkaXB1dHVza2FuIHNhbWJ1bmdhbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2JhdHRlcnkiIG1zZ2lkPSIzNTgzNDMwMjIzNTI4MjA5NDYiPiJUaWFkYSBiYXRlcmkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X29uZV9iYXIiIG1zZ2lkPSI3Nzc0ODg3NzIxODkxMDU3NTIzIj4iQmF0ZXJpIHNhdHUgYmFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90d29fYmFycyIgbXNnaWQ9Ijg1MDA2NTA0Mzg3MzUwMDk5NzMiPiJCYXRlcmkgZHVhIGJhci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfdGhyZWVfYmFycyIgbXNnaWQ9IjIzMDI5ODMzMzA4NjUwNDA0NDYiPiJCYXRlcmkgdGlnYSBiYXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X2Z1bGwiIG1zZ2lkPSI4OTA5MTIyNDAxNzIwMTU4NTgyIj4iQmF0ZXJpIHBlbnVoLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fcGhvbmUiIG1zZ2lkPSI0ODk0NzA4OTM3MDUyNjExMjgxIj4iVGlhZGEgdGVsZWZvbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX29uZV9iYXIiIG1zZ2lkPSI2ODc2OTkyNzgxMzI2NjQxMTUiPiJUZWxlZm9uIHNhdHUgYmFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdHdvX2JhcnMiIG1zZ2lkPSI4Mzg0OTA1MzgyODA0ODE1MjAxIj4iVGVsZWZvbiBkdWEgYmFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdGhyZWVfYmFycyIgbXNnaWQ9Ijg1MjE5MDQ4NDM5MTk5NzE4ODUiPiJUZWxlZm9uIHRpZ2EgYmFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2NDcxODM0ODY4NTgwNzU3ODk4Ij4iSXN5YXJhdCB0ZWxlZm9uIHBlbnVoLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fZGF0YSIgbXNnaWQ9IjQ3OTE5NjYyOTUwOTY4Njc1NTUiPiJUaWFkYSBkYXRhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9vbmVfYmFyIiBtc2dpZD0iMTQxNTYyNTgzMzIzODI3MzYyOCI+IkRhdGEgc2F0dSBiYXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3R3b19iYXJzIiBtc2dpZD0iNjE2NjAxODQ5MjM2MDQzMjA5MSI+IkRhdGEgZHVhIGJhci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfdGhyZWVfYmFycyIgbXNnaWQ9IjkxNjc2NzA0NTIzOTUwMzg1MjAiPiJEYXRhIHRpZ2EgYmFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3MDgzODQ2MDgxMjQ1MTkzNjkiPiJJc3lhcmF0IGRhdGEgcGVudWguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29mZiIgbXNnaWQ9IjMxNzczODAyOTY2OTc5MzM2MjciPiJXaWZpIGRpbWF0aWthbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpZmkiIG1zZ2lkPSIxNDI1NDc2NTUxODI3OTI0NDc0Ij4iV2lmaSBkaXB1dHVza2FuIHNhbWJ1bmdhbm55YS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiJXaUZpIHNhdHUgYmFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90d29fYmFycyIgbXNnaWQ9IjQ5OTQyNzQyNTA0OTcyNjI0MzQiPiJXaUZpIGR1YSBiYXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3RocmVlX2JhcnMiIG1zZ2lkPSIzNDk1NzU1MDQ0Mjc2NTg4Mzg0Ij4iV2lGaSB0aWdhIGJhci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2ODUzNTYxMzAzNTg2NDgwMzc2Ij4iSXN5YXJhdCBXaUZpIHBlbnVoLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2ltYXgiIG1zZ2lkPSI0MzI5MTgwMTI5NzI3NjMwMzY4Ij4iVGlhZGEgV2lNQVgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X29uZV9iYXIiIG1zZ2lkPSI0MTcwOTk0Mjk5MDExODYzNjQ4Ij4iV2lNQVggc2F0dSBiYXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90d29fYmFycyIgbXNnaWQ9IjkxNzYyMzY4NTgzMzY1MDIyODgiPiJXaU1BWCBkdWEgYmFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiJXaU1BWCB0aWdhIGJhci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3NpZ25hbF9mdWxsIiBtc2dpZD0iMjc2ODA4OTk4Njc5NTU3OTU1OCI+IklzeWFyYXQgV2lNQVggcGVudWguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaWduYWwiIG1zZ2lkPSI3MDY0NjQ1MzIwNzgyNTg1MTY3Ij4iVGlhZGEgaXN5YXJhdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4iVGlkYWsgZGlzYW1idW5na2FuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfemVyb19iYXJzIiBtc2dpZD0iMzgwNjA2MDIyNDQ2NzAyNzg4NyI+IlRpYWRhIGJhci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X29uZV9iYXIiIG1zZ2lkPSIxNjg1NzMwMTEzMTkyMDgxODk1Ij4iU2F0dSBiYXIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90d29fYmFycyIgbXNnaWQ9IjY0MzczNjM2NDgzODUyMDY2NzkiPiJEdWEgYmFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdGhyZWVfYmFycyIgbXNnaWQ9IjI2NDgyNDE0MTUxMTkzOTY2NDgiPiJUaWdhIGJhci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NpZ25hbF9mdWxsIiBtc2dpZD0iOTEyMjkyMjg4NjUxOTY3NjgzOSI+IklzeWFyYXQgcGVudWguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29uIiBtc2dpZD0iMjM4NTI1NDY5MzYyNDM0NTI2NSI+IkRpaGlkdXBrYW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29mZiIgbXNnaWQ9IjY0NzU1MDgxNTc3ODY4NTMxNTciPiJEaW1hdGlrYW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX2Nvbm5lY3RlZCIgbXNnaWQ9IjgzNjYyNTY2OTM3MTk0OTk2NjUiPiJEaXNhbWJ1bmdrYW4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZ3BycyIgbXNnaWQ9IjE2MDY0NzcyMjQ0ODY3NDc3NTEiPiJHUFJTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMXgiIG1zZ2lkPSI5OTQxMzM0NjgxMjAyNDQwMTgiPiIxIFgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9oc3BhIiBtc2dpZD0iMjAzMjMyODg1NTQ2MjY0NTE5OCI+IkhTUEEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8zZyIgbXNnaWQ9Ijg2Mjg1NjIzMDUwMDM1NjgyNjAiPiIzRyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzMuNWciIG1zZ2lkPSI4NjY0ODQ1NjA5OTgxNjkyMDAxIj4iMy41RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzRnIiBtc2dpZD0iNzc0MTAwMDc1MDYzMDA4OTYxMiI+IjRHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fbHRlIiBtc2dpZD0iNTQxMzQ2ODgwODYzNzU0MDY1OCI+IkxURSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2NkbWEiIG1zZ2lkPSI2MTMyNjQ4MTkzOTc4ODIzMDIzIj4iQ0RNQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX3JvYW1pbmciIG1zZ2lkPSI1OTc3MzYyMzMzNDY2NTU2MDk0Ij4iUGVyYXlhdWFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZWRnZSIgbXNnaWQ9IjQ0Nzc0NTcwNTE2MzE5NzkyNzgiPiJFZGdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fd2lmaSIgbXNnaWQ9IjIzMjQ0OTY3NTY1OTA2NDUyMjEiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fc2ltIiBtc2dpZD0iODI3NDAxNzExODQ3MjQ1NTE1NSI+IlRpYWRhIFNJTS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF90ZXRoZXIiIG1zZ2lkPSI0MTAyNzg0NDk4MTQwMjcxOTY5Ij4iUGVuYW1iYXRhbiBCbHVldG9vdGguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9haXJwbGFuZV9tb2RlIiBtc2dpZD0iODM0NzQ4OTk5NzkwNzYzMDkyIj4iTW9kIHBlc2F3YXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfbGV2ZWwiIG1zZ2lkPSI3NDUxNDc0MTg3MTEzMzcxOTY1Ij4iQmF0ZXJpIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiBwZXJhdHVzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNzk5NTgzOTExMjMxODkzMzgwIj4iVGV0YXBhbiBzaXN0ZW0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25zX2J1dHRvbiIgbXNnaWQ9IjQ0OTgwMDAzNjk3Nzk0MjE4OTIiPiJQZW1iZXJpdGFodWFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVtb3ZlX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjM2MDMwOTk1MTQ5MDIxODIzNTAiPiJQYWRhbWthbiBwZW1iZXJpdGFodWFuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2VuYWJsZWQiIG1zZ2lkPSIzNTExNDY5NDk5MjQwMTIzMDE5Ij4iR1BTIGRpZGF5YWthbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19hY3F1aXJpbmciIG1zZ2lkPSI4OTU5MzMzMzUxMDU4OTY3MTU4Ij4iR1BTIHNlZGFuZyBtZW5kYXBhdGthbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3R0eV9lbmFibGVkIiBtc2dpZD0iNDYxMzIwMDM2NTM3OTQyNjU2MSI+Ik1lc2luIFRlbGV0YWlwIGRpZGF5YWthbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl92aWJyYXRlIiBtc2dpZD0iNjY2NTg1MzYzMzY0MTU1MDU1Ij4iUGVuZGVyaW5nIGJlcmdldGFyLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3NpbGVudCIgbXNnaWQ9IjkwNjEyNDMzMDc5MzkxMzUzODMiPiJQZW5kZXJpbmcgc2VueWFwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50c19pdGVtX2Rpc21pc3NlZCIgbXNnaWQ9IjY4MDM1NzQ5MzUwODQ4NjcwNzAiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4gZGl0b2xhay4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdGlmaWNhdGlvbl9kaXNtaXNzZWQiIG1zZ2lkPSI4NTQyMTEzODcxODYzMDY5MjciPiJQZW1iZXJpdGFodWFuIGRpa2V0ZXBpa2FuLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19ub3RpZmljYXRpb25fc2hhZGUiIG1zZ2lkPSI0NjkwMjc0ODQ0NDQ3NTA0MjA4Ij4iQmlkYWkgcGVtYmVyaXRhaHVhbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfcXVpY2tfc2V0dGluZ3MiIG1zZ2lkPSI2MTg2Mzc4NDExNTgyNDM3MDQ2Ij4iVGV0YXBhbiBwYW50YXMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3JlY2VudF9hcHBzIiBtc2dpZD0iOTAxNDAzMjkxNjQxMDU5MDAyNyI+IkFwbCB0ZXJiYXJ1LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfdXNlciIgbXNnaWQ9IjExMDQ4NDY2OTk4Njk0NzY4NTUiPiJQZW5nZ3VuYSA8eGxpZmY6ZyBpZD0iVVNFUiI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3Nfd2lmaSIgbXNnaWQ9IjYwOTk3ODEwMzE2Njk3Mjg3MDkiPiI8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19tb2JpbGUiIG1zZ2lkPSI0ODc2ODA2NTY0MDg2MjQxMzQxIj4iTXVkYWggQWxpaCA8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9IlRZUEUiPiUyJHM8L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTMkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IkJhdGVyaSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+Ik1vZCBQZXNhd2F0IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+Ikxva2FzaSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IlBlbmdnZXJhIGRpdGV0YXBrYW4gcGFkYSA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IkRhdGEgMkctM0cgZGlsdW1wdWhrYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiJEYXRhIDRHIGRpbHVtcHVoa2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfbW9iaWxlX3RpdGxlIiBtc2dpZD0iMTA0NjA0NzI0ODg0NDgyMTIwMiI+IkRhdGEgbXVkYWggYWxpaCBkaWx1bXB1aGthbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMjA4NjgxNTMwNDg1ODk2NDk1NCI+IkRhdGEgZGlsdW1wdWhrYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZyIgbXNnaWQ9IjM4NTMxMTcyNjkwNTE4MDYyODAiPiJBbmRhIHRlbGFoIG1lbmNhcGFpIGhhZCBwZW5nZ3VuYWFuIGRhdGEgeWFuZyBkaW55YXRha2FuLlxuXG5KaWthIGFuZGEgbWVuZGF5YWthbiBzZW11bGEgZGF0YSwgYW5kYSBtdW5na2luIGRpa2VuYWthbiBjYWogb2xlaCBvcGVyYXRvci4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19lbmFibGUiIG1zZ2lkPSI3NzI5NzcyMDM5MjA4NjY0NjA2Ij4iRGF5YWthbiBzZW11bGEgZGF0YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX2Rpc2Nvbm5lY3RlZCIgbXNnaWQ9IjE5NDAyMzE1MjEyNzQxNDc3NzEiPiJUaWFkYSBzbWJnIEludGVybmV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkgZGlzYW1idW5na2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJNZW5jYXJpIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJMb2thc2kgZGl0ZXRhcGthbiBvbGVoIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IlBlcm1pbnRhYW4gbG9rYXNpIGFrdGlmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iUGFkYW1rYW4gc2VtdWEgcGVtYmVyaXRhaHVhbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4iTWFrbHVtYXQgYXBsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiJTa3JpbiBha2FuIGJlcnB1dGFyIHNlY2FyYSBhdXRvbWF0aWsuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiJTa3JpbiBkaWt1bmNpIGRhbGFtIG9yaWVudGFzaSBsYW5kc2thcC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fcG9ydHJhaXQiIG1zZ2lkPSI1ODA5MzY3NTIxNjQ0MDEyMTE1Ij4iU2tyaW4gZGlrdW5jaSBkYWxhbSBvcmllbnRhc2kgcG90cmV0LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiJCZWthcyBQZW5jdWNpIE11bHV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IkxhbXVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+Ik1vZCBrYXBhbCB0ZXJiYW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2luZ19sYWJlbCIgbXNnaWQ9IjQ5MDA3NDc3NDQ2NTMwOTIwOSI+Ik1lbmdlY2FzLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2VkX2xhYmVsIiBtc2dpZD0iODg2NTQxMzA3OTQxNDI0NjA4MSI+IlN1ZGFoIGRpY2FzIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX2xhYmVsIiBtc2dpZD0iNjMwNDE5MDI4NTE3MDcyMTQwMSI+IkJsdWV0b290aCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9tdWx0aXBsZV9kZXZpY2VzX2xhYmVsIiBtc2dpZD0iMzkxMjI0NTU2NTYxMzY4NDczNSI+IkJsdWV0b290aCAoPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IFBlcmFudGkpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiJCbHVldG9vdGggRGltYXRpa2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjY5NjgzNzIyOTcwMTg3NTU4MTUiPiJLZWNlcmFoYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IkF1dG8gUHV0YXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4iUHV0YXJhbiBEaWt1bmNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+IkthZWRhaCBJbnB1dCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+Ikxva2FzaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiJMb2thc2kgRGltYXRpa2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbWVkaWFfZGV2aWNlX2xhYmVsIiBtc2dpZD0iMTMwMjkwNjgzNjM3MjYwMzc2MiI+IlBlcmFudGkgbWVkaWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2xhYmVsIiBtc2dpZD0iNzcyNTY3MTMzNTU1MDY5NTU4OSI+IlJTU0kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2VtZXJnZW5jeV9vbmx5IiBtc2dpZD0iMjcxMzc3NDA0MTY3Mjg4Njc1MCI+IlBhbmdnaWxhbiBLZWNlbWFzYW4gU2FoYWphIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfc2V0dGluZ3NfbGFiZWwiIG1zZ2lkPSI1MzI2NTU2NTkyNTc4MDY1NDAxIj4iVGV0YXBhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3RpbWVfbGFiZWwiIG1zZ2lkPSI0NjM1OTY5MTgyMjM5NzM2NDA4Ij4iTWFzYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3VzZXJfbGFiZWwiIG1zZ2lkPSI1MjM4OTk1NjMyMTMwODk3ODQwIj4iU2F5YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbGFiZWwiIG1zZ2lkPSI5MTM1MzQ0NzA0ODk5NTQ2MDQxIj4iV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI3MTcxOTA0ODQ1MzQ1NTczNDMxIj4iVGlkYWsgRGlzYW1idW5na2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub19uZXR3b3JrIiBtc2dpZD0iMjIyMTk5MzA3NzIyMDg1NjM3NiI+IlRpYWRhIFJhbmdrYWlhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfb2ZmX2xhYmVsIiBtc2dpZD0iNzU1ODc3ODEwMDg0Mzg4NTg2NCI+IldpLUZpIERpbWF0aWthbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9sYWJlbCIgbXNnaWQ9IjY4OTM1OTI5NjQ0NjM2MjQzMzMiPiJQYXBhcmFuIFdpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4iUGFwYXJhbiBXYXlhcmxlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IktlY2VyYWhhbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiJBVVRPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+Ik1vZCBwZW55b25nc2FuZ2FuIHdhcm5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4iTW9kIGtvbnRyYXMgZGlwZXJ0aW5na2F0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiJNb2QgcGVtYmV0dWxhbiB3YXJuYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iUmFuZ2thaWFuIG11bmdraW5cbmJvbGVoIGRpcGFudGF1Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW1zL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1tcy9zdHJpbmdzLnhtbAppbmRleCA1MzEyY2NiLi45Yzc2ZWFlIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW1zL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbXMvc3RyaW5ncy54bWwKQEAgLTE2NCw2ICsxNjQsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkgZGlzYW1idW5na2FuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJNZW5jYXJpIEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJMb2thc2kgZGl0ZXRhcGthbiBvbGVoIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IlBlcm1pbnRhYW4gbG9rYXNpIGFrdGlmIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iUGFkYW1rYW4gc2VtdWEgcGVtYmVyaXRhaHVhbi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4iTWFrbHVtYXQgYXBsIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiJTa3JpbiBha2FuIGJlcnB1dGFyIHNlY2FyYSBhdXRvbWF0aWsuIjwvc3RyaW5nPgpAQCAtMTgyLDEwICsxODMsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fdW5sb2NrZWRfbGFiZWwiIG1zZ2lkPSIzMzYwNTQ5MzAzNjI1ODA1ODQiPiJBdXRvIFB1dGFyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fbG9ja2VkX2xhYmVsIiBtc2dpZD0iODA1ODY0NjQ0NzI0MjU2NTQ4NiI+IlB1dGFyYW4gRGlrdW5jaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ltZV9sYWJlbCIgbXNnaWQ9IjcwNzM0NjMwNjQzNjk0Njg0MjkiPiJLYWVkYWggSW5wdXQiPC9zdHJpbmc+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwgKDUwMTEzMjcwNDg3NDg3NjIyNTcpIC0tPgotICAgIDxza2lwIC8+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsICg3NDY0NTQ0MDg2NTA3MzMxNDU5KSAtLT4KLSAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwiIG1zZ2lkPSI1MDExMzI3MDQ4NzQ4NzYyMjU3Ij4iTG9rYXNpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsIiBtc2dpZD0iNzQ2NDU0NDA4NjUwNzMzMTQ1OSI+Ikxva2FzaSBEaW1hdGlrYW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4iUGVyYW50aSBtZWRpYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4iUGFuZ2dpbGFuIEtlY2VtYXNhbiBTYWhhamEiPC9zdHJpbmc+CkBAIC0yMDIsNiArMjAxLDQgQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiJBVVRPIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RpdGxlIiBtc2dpZD0iMTE5OTIzNzc0NDA4NjQ2OTIxNyI+IlBlbWJlcml0YWh1YW4gZGlwYXBhcmthbiBkaSBzaW5pIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4iQWtzZXMgcGFuZWwgcGFkYSBiaWxhLWJpbGEgbWFzYSBkZW5nYW4gbWVsZXJldCBrZSBiYXdhaC5cbkxlcmV0IGtlIGJhd2FoIHNla2FsaSBsYWdpIHVudHVrIG1lbmRhcGF0a2FuIGthd2FsYW4gc2lzdGVtLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+IkxlcmV0IGtlIGJhaGFnaWFuIHRlcGkgc2tyaW4gdW50dWsgbWVuYW1wYWtrYW4gYmFyIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiJMZXJldCBkYXJpIHRlcGkgc2tyaW4gdW50dWsgbWVuYW1wYWtrYW4gYmFyIHNpc3RlbSI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbmIvc3RyaW5ncy54bWwKaW5kZXggNzc4YmU4My4uOGUzMTc4MSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW5iL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IlRpbGxhdCBhbGx0aWQgZnJhIGRlbm5lIGRhdGFtYXNraW5lbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+Ilpvb20gZm9yIMOlIGZ5bGxlIHNramVybWVuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+IlN0cmVrayBmb3Igw6UgZnlsbGUgc2tqZXJtIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4iS29tcGF0aWJpbGl0ZXRzLXpvb21pbmciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4iTsOlciBlbiBhcHAgZXIgdXRmb3JtZXQgZm9yIGVuIG1pbmRyZSBza2plcm0sIHZpc2VzIGRldCBlbiB6b29ta29udHJvbGwgdmVkIGtsb2trZW4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IkxhZ3JlciBza2plcm1kdW1wZW4g4oCmIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4iTGFncmVyIHNramVybWR1bXBlbiDigKYiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+IlNramVybWR1bXBlbiBsYWdyZXMuIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IlN0YXJ0c2lkZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+Ik1lbnkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiJOeWxpZ2UgYXBwZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJTw7hrIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+IkthbWVyYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4iQnl0dCBrbmFwcCBmb3IgaW5uZGF0YW1ldG9kZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4iWm9vbWtuYXBwIGZvciBrb21wYXRpYmlsaXRldC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+Ilpvb20gZnJhIG1pbmRyZSB0aWwgc3TDuHJyZSBza2plcm0uIjwvc3RyaW5nPgpAQCAtMTUzLDYgKzE1Myw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4iQmF0dGVyaSDigJMgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiJGbHltb2R1cyDigJMgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoIOKAkyA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IlBvc2lzam9uIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4iQWxhcm1lbiBibGUgc3RpbHQgZm9yIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iMkctM0ctZGF0YSBlciBkZWFrdGl2ZXJ0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iNEctZGF0YSBlciBkZWFrdGl2ZXJ0Ijwvc3RyaW5nPgpAQCAtMTY0LDEyICsxNjUsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpIHRpbGtvYmxldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iU8O4a2VyIGV0dGVyIEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJQb3Npc2pvbiBhbmdpdHQgYXYgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4iQWt0aXZlIHN0ZWRzZm9yZXNww7hyc2xlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+IkZqZXJuIGFsbGUgdmFyc2xpbmdlci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4iSW5mbyBvbSBhcHAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IlNramVybWVuIHJvdGVyZXIgYXV0b21hdGlzay4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IlNramVybWVuIGVyIGzDpXN0IGkgbGlnZ2VuZGUgcmV0bmluZy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fcG9ydHJhaXQiIG1zZ2lkPSI1ODA5MzY3NTIxNjQ0MDEyMTE1Ij4iU2tqZXJtZW4gZXIgbMOlc3QgaSBzdMOlZW5kZSByZXRuaW5nLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiJEZXNzZXJ0bW9udGVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IkRhZ2Ryw7htIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+IkZseW1vZHVzIjwvc3RyaW5nPgpAQCAtMTk4LDggKzIwMCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJUcsOlZGzDuHMgc2tqZXJtIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4iTHlzc3R5cmtlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IkFVVE8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4iVmFyc2xlbmUgdmlzZXMgaGVyIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4iQnJ1ayBkZW0gbsOlciBzb20gaGVsc3QgdmVkIMOlIHN2ZWlwZSBuZWRvdmVyLlxuU3ZlaXAgbmVkb3ZlciBpZ2plbiBmb3Igw6UgZ8OlIHRpbCBzeXN0ZW1rb250cm9sbGVuZS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiJTdmVpcCBww6Uga2FudGVuIGF2IHNramVybWVuIGZvciDDpSBmw6UgZnJlbSBmZWx0ZXQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IlN2ZWlwIGZyYSBrYW50ZW4gcMOlIHNramVybWVuIGZvciDDpSBmw6UgZnJlbSBzeXN0ZW1mZWx0ZXQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4iTW9kdXMgZm9yIGZhcmdlaW52ZXJ0ZXJpbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiJGb3JiZWRyZXQga29udHJhc3Rtb2R1cyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4iTW9kdXMgZm9yIGZhcmdla29ycmlnZXJpbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+Ik5ldHR2ZXJrZXQga2FuXG52w6ZyZSBvdmVydsOla2V0Ijwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW5lLWxhbmQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW5lLWxhbmQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQ1Mjg2ZQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbmUtbGFuZC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yb3RhdGlvbl9sb2NrZWQiIG1zZ2lkPSI3NjA5NjczMDExNDMxNTU2MDkyIj4i4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCkheCkueCkv+CksuClhyDgpLLgpY3gpK/gpL7gpKjgpY3gpKHgpLjgpY3gpJXgpYfgpKog4KSF4KS14KS44KWN4KSl4KS+4KSu4KS+IOCkrOCkqOCljeCkpiDgpJvgpaQiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbmUtck5QLWxhbmQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW5lLXJOUC1sYW5kL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNTI4NmUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW5lLXJOUC1sYW5kL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3JvdGF0aW9uX2xvY2tlZCIgbXNnaWQ9Ijc2MDk2NzMwMTE0MzE1NTYwOTIiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSF4KS54KS/4KSy4KWHIOCksuCljeCkr+CkvuCkqOCljeCkoeCkuOCljeCkleClh+CkqiDgpIXgpLXgpLjgpY3gpKXgpL7gpK7gpL4g4KSs4KSo4KWN4KSmIOCkm+ClpCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1uZS1yTlAvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW5lLXJOUC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWUyNzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1uZS1yTlAvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDksIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9ImFwcF9sYWJlbCIgbXNnaWQ9IjcxNjQ5MzczNDQ4NTAwMDQ0NjYiPiLgpKrgpY3gpLDgpKPgpL7gpLLgpYAgVUkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2NsZWFyX2FsbF9idXR0b24iIG1zZ2lkPSI3Nzc0NzIxMzQ0NzE2NzMxNjAzIj4i4KS54KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9yZWNlbnRfcmVtb3ZlX2l0ZW1fdGl0bGUiIG1zZ2lkPSI2MDI2Mzk1ODY4MTI5ODUyOTY4Ij4i4KS44KWC4KSa4KWA4KSs4KS+4KSfIOCkueCkn+CkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9Ijc3OTM2MjQ4NjQ1Mjg4MTg1NjkiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpYsg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19yZWNlbnRfYXBwcyIgbXNnaWQ9IjY1NzYzOTI5NTEwNTM5OTQ2NDAiPiLgpJXgpYHgpKjgpYgg4KSo4KSv4KS+4KSBIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiDgpJvgpYjgpKjgpKjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfZGlzbWlzc19yZWNlbnRzIiBtc2dpZD0iNDU3NjA3NjA3NTIyNjU0MDEwNSI+IuCkqOCkr+CkvuCkgSDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIg4KSW4KS+4KSw4KWH4KScIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgPHBsdXJhbHMgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X3JlY2VudF9hcHBzIj4KKyAgICA8aXRlbSBxdWFudGl0eT0ib25lIiBtc2dpZD0iNTg1NDE3NjA4Mzg2NTg0NTU0MSI+IuClpyDgpK3gpLDgpJbgpLDgpYgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMDQwNzg0MzU5Nzk0ODkwNzQ0Ij4iJWQg4KSt4KSw4KSW4KSw4KWI4KSV4KS+IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiI8L2l0ZW0+CisgIDwvcGx1cmFscz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm9fbm90aWZpY2F0aW9uc190aXRsZSIgbXNnaWQ9IjQ3NTUyNjExNjcxOTM4MzMyMTMiPiLgpJXgpYHgpKjgpYgg4KS44KWC4KSa4KSo4KS+4KS54KSw4KWCIOCkm+CliOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfb25nb2luZ19ldmVudHNfdGl0bGUiIG1zZ2lkPSIxNjgyNTA0NTEzMzE2ODc5MjAyIj4i4KSa4KSy4KS/4KSw4KS54KWH4KSV4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9sYXRlc3RfZXZlbnRzX3RpdGxlIiBtc2dpZD0iNjU5NDc2NzQzODU3NzU5MzE3MiI+IuCkuOClguCkmuCkqOCkvuCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3RpdGxlIiBtc2dpZD0iMjc4MzEwNDgwNzU1MTIxMTYzOSI+IuCkmuCkvuCksOCljeCknOCksCDgpJzgpKHgpL7gpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfc3VidGl0bGUiIG1zZ2lkPSIxNzUyMDQwMDYyMDg3ODI5MTk2Ij4i4KSs4KWN4KSv4KS+4KSf4KWN4KSw4KS/IOCkqOCljeCkr+ClguCkqCDgpLngpYHgpIHgpKbgpYgg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfcGVyY2VudF9mb3JtYXQiIG1zZ2lkPSIxMDc3MjQ0OTQ5MzE4MjYxNzYxIj4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQlJTwveGxpZmY6Zz4g4KSs4KS+4KSB4KSV4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZF9jaGFyZ2VyIiBtc2dpZD0iNDU0OTEwNTk5Njc0MDUyMjUyMyI+IlVTQiDgpJrgpL7gpLDgpY3gpJwg4KSX4KSw4KWN4KSoIOCkuOCkruCksOCljeCkpeCkv+CkpCDgpJvgpYjgpKjgpaRcbiDgpIbgpKrgpYLgpLDgpY3gpKTgpL8g4KSX4KSw4KS/4KSP4KSV4KWLIOCkmuCkvuCksOCljeCknOCksCDgpK7gpL7gpKTgpY3gpLAg4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3doeSIgbXNnaWQ9IjcyNzkxNjk2MDk1MTgzODYzNzIiPiLgpKzgpY3gpK/gpL7gpJ/gpY3gpLDgpL8g4KSq4KWN4KSw4KSv4KWL4KSXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zZXR0aW5nc19idXR0b24iIG1zZ2lkPSIzMDIzODg5OTE2Njk5MjcwMjI0Ij4i4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc193aWZpX2J1dHRvbiIgbXNnaWQ9IjE3MzM5MjgxNTE2OTgzMTE5MjMiPiLgpLXgpL7gpIct4KSr4KS+4KSHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQ4Nzk4Nzk2OTg1MDA5NTUzMDAiPiLgpLngpLXgpL7gpIfgpJzgpLngpL7gpJwg4KSu4KWL4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX3JvdGF0aW9uIiBtc2dpZD0iMzc5MDQ4MjU0MTM1Nzc5ODQyMSI+IuCkuOCljeCkteCkpDrgpJjgpYHgpK7gpY3gpKjgpYcg4KS44KWN4KSV4KWN4KSw4KS/4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19tdXRlX2xhYmVsIiBtc2dpZD0iNTU0NjgyNTQ5OTE3NDI5Mzk2Ij4i4KSu4KWN4KSv4KWB4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTExNDUzNjE0OTYyMzI0Njc0Ij4i4KS44KWN4KS14KSk4KSDIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19ub3RpZmljYXRpb25zIiBtc2dpZD0iMzk3MTQ2MTc2MjgwOTA1MTM3Ij4i4KS44KWC4KSa4KSo4KS+4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmx1ZXRvb3RoX3RldGhlcmVkIiBtc2dpZD0iNzA5NDEwMTYxMjE2MTEzMzI2NyI+IuCkrOCljeCksuClgeCkn+ClgeCkpSDgpJ/gpYfgpKXgpLAg4KSt4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9pbnB1dF9tZXRob2Rfc2V0dGluZ3NfY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSIzNTA0MjkyNDcxNTEyMzE3ODI3Ij4i4KSH4KSo4KSq4KWB4KSfIOCkteCkv+Ckp+Ckv+CkueCksOClgiDgpLjgpYfgpJ/gpIXgpKog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl91c2VfcGh5c2ljYWxfa2V5Ym9hcmQiIG1zZ2lkPSI3NTUxOTAzMDg0NDE2MDU3ODEwIj4i4KSr4KS/4KSc4KS/4KSV4KSyIOCkleCkv+CkrOCli+CksOCljeCkoSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI4MzQ2OTgwMDEyNzE1NjIwNTciPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IFVTQiDgpIngpKrgpJXgpLDgpKPgpLLgpL7gpIgg4KSq4KS54KWB4KSB4KSaIOCkpuCkv+CkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpYcg4KS54KWLPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI1MTcxNzc1NDExMTc4ODY1NzUwIj4iPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiBVU0Ig4KSq4KS+4KSf4KSq4KWB4KSw4KWN4KSc4KS+4KSy4KS+4KSIIOCkquCkueClgeCkgeCkmiDgpKbgpL/gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWHIOCkueCliz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iNTE2MTIwNTI1ODYzNTI1MzIwNiI+IuCkr+CliyBVU0Ig4KSJ4KSq4KSV4KSw4KSjIOCknOCli+CkoeCkv+Ckj+CkleCliyDgpKzgpYfgpLLgpL4gPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiDgpJbgpYvgpLLgpY3gpKjgpYcg4KS54KWLPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSIzODA4OTg0OTMxODMwMjI5ODg4Ij4i4KSv4KWLIFVTQiDgpLjgpLngpL7gpK/gpJUg4KSc4KSh4KS+4KSoIOCkueClgeCkgeCkpuCkviA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+IOCkluCli+CksuCljeCkqOClhyDgpLngpYs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV91cmlfcHJvbXB0IiBtc2dpZD0iNTEzNDUwNjIxNDEzNzMzMzQzIj4i4KSv4KS4IFVTQiDgpIngpKrgpJXgpLDgpKPgpLjgpIHgpJcg4KS44KWN4KSl4KS+4KSq4KS/4KSkIOCkheCkqOClgeCkquCljeCksOCkr+Cli+CklyDgpJXgpL7gpK4g4KSX4KSw4KWN4KSm4KWI4KSo4KWkIOCkr+CkuCDgpIngpKrgpJXgpLDgpKPgpJXgpYsg4KSs4KS+4KSw4KWH4KSu4KS+IDx4bGlmZjpnIGlkPSJVUkwiPiUxJHM8L3hsaWZmOmc+IOCkruCkviDgpKfgpYfgpLDgpYgg4KSc4KS+4KSo4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfdXNiX2FjY2Vzc29yeSIgbXNnaWQ9IjQ5NjYyNjUyNjM0NjUxODEzNzIiPiJVU0Ig4KS44KS54KSv4KWL4KSX4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfdmlldyIgbXNnaWQ9IjYzMDQ1NjU1NTMyMTgxOTI5OTAiPiLgpKbgpYPgpLbgpY3gpK8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2RldmljZSIgbXNnaWQ9IjE0NTAyODc0MzcwMTczMTU5MDYiPiLgpK/gpYsgVVNCIOCkieCkquCkleCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSk4KSs4KS+4KSfIOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2FjY2Vzc29yeSIgbXNnaWQ9IjEyMTA5NTQ1NzY5Nzk2MjE1OTYiPiLgpK/gpLggVVNCIOCkuOCkueCkvuCkr+CklSDgpLjgpL7gpK7gpL7gpKjgpJXgpYsg4KSy4KS+4KSX4KS/IOCkquClguCksOCljeCkteCkqOCkv+CksOCljeCkp+CkvuCksOCkv+CkpOCkpuCljeCkteCkvuCksOCkviDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ190aXRsZSIgbXNnaWQ9IjQ1MTM5MTgzOTMzODcxNDE5NDkiPiJVU0Ig4KSh4KS/4KSs4KSXIOCkl+CksOCljeCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOClhyDgpLngpYs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+IuCkleCkruCljeCkquCljeCkr+ClgeCkn+CksOCkleCliyBSU0Eg4KSV4KWB4KSe4KWN4KSc4KWAIOCklOCkguCksuCkvuCkm+CkvuCkqjpcbjx4bGlmZjpnIGlkPSJGSU5HRVJQUklOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IuCkr+CliyDgpJXgpK7gpY3gpKrgpY3gpK/gpYHgpJ/gpLDgpKzgpL7gpJ8g4KS44KSn4KWI4KSBIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSt4KSw4KWN4KSoIOCknOClgeCkriDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSoIOCkreCksOCljeCkqCDgpKTgpKjgpY3gpJXgpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSo4KS44KSfIOCkrOCkmuCkpCDgpJfgpLDgpY3gpKbgpYjigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKjgpLjgpJ8g4KSs4KSa4KSkIOCkl+CksOCljeCkpuCliOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSo4KS44KSfIOCkrOCkmuCkpCDgpLngpYHgpIHgpKbgpYgg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90aXRsZSIgbXNnaWQ9IjY0NjE4NjU5NjA5NjE0MTQ5NjEiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKjgpLjgpJ8g4KSV4KWN4KSv4KS+4KSq4KWN4KSa4KSwIOCkl+CksOCkv+Ckr+Cli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2ZWRfdGV4dCIgbXNnaWQ9IjExNTI4Mzk2NDc2Nzc1NTg4MTUiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KS44KWN4KSV4KWN4KSw4KS/4KSo4KS44KSfIOCkueClh+CksOCljeCkqCDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X2ZhaWxlZF90aXRsZSIgbXNnaWQ9IjcwNTc4MTExNjc0NjkyMjc3MSI+IuCkuOCljeCkleCljeCksOCkv+CkqOCkuOCknyDgpJXgpY3gpK/gpL7gpKrgpY3gpJrgpLAg4KSX4KSw4KWN4KSoIOCkuOCkleCkv+Ckj+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RleHQiIG1zZ2lkPSI4MTM0MDExMjY5NTcyNDE1NDAyIj4i4KS44KWN4KSV4KWN4KSw4KS/4KSo4KS44KSf4KSy4KS+4KSIIOCkrOCkmuCkpCDgpJfgpLDgpY3gpKgg4KS44KSV4KWH4KSo4KWkIOCkreCko+CljeCkoeCkvuCksOCkoyDgpIngpKrgpK/gpYvgpJfgpK7gpL4g4KS54KWB4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9wcmVmZXJlbmNlX3RpdGxlIiBtc2dpZD0iNjU1MTA1MDM3NzM4ODg4Mjc4NyI+IlVTQiDgpKvgpL7gpIfgpLIg4KS44KS+4KSw4KWN4KSo4KWHIOCkteCkv+CkleCksuCljeCkquCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9tdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNDMzMzUwNDQxMzU2MzAyMzYyNiI+IuCkruCkv+CkoeCkv+Ckr+CkviDgpKrgpY3gpLLgpYfgpK/gpLAoTVRQKeCkleCliyDgpLDgpYLgpKrgpK7gpL4g4KSu4KS+4KSJ4KSo4KWN4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9wdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNzUxNzEyNzU0MDMwMTYyNTc1MSI+IuCkleCljeCkr+CkvuCkruClh+CksOCkvuCkleCliyDgpLDgpYLgpKrgpK7gpL4g4KSu4KS+4KSJ4KSo4KWN4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSAoUFRQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxlcl9jZF9idXR0b25fdGl0bGUiIG1zZ2lkPSIyMzEyNjY3NTc4NTYyMjAxNTgzIj4i4KSu4KWN4KSv4KS+4KSV4KSV4KWLIOCksuCkvuCkl+CkvyDgpI/gpKjgpY3gpKHgpY3gpLDgpYvgpIfgpKEg4KSr4KS+4KSH4KSyIOCkn+CljeCksOCkvuCkqOCljeCkuOCkq+CksCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KS44KWN4KSl4KS+4KSq4KSo4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmFjayIgbXNnaWQ9IjU2NzAxMTUzODk5NDQyOTEyMCI+IuCkquCkm+CkvuCkoeCkvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiLgpJfgpYPgpLkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiLgpK7gpYfgpKjgpYEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiLgpK3gpLDgpY3gpJbgpLDgpJXgpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiLgpIfgpKjgpKrgpYHgpJ8g4KS14KS/4KSn4KS/IOCkrOCkn+CkqCDgpLjgpY3gpLXgpL/gpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IuCkruCkv+CksuCkvuCkieCkqOClhyDgpJzgpYHgpK4g4KSs4KSf4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKjgpLLgpL7gpIgg4KS44KS+4KSo4KWL4KSs4KS+4KSfIOCkoOClguCksuCliyDgpKrgpL7gpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9jb25uZWN0ZWQiIG1zZ2lkPSIyNzA3MDI3NjMzMjQyOTgzMzcwIj4i4KSs4KWN4KSy4KWB4KSf4KWB4KSlIOCknOCkoeCkvuCkqCDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9kaXNjb25uZWN0ZWQiIG1zZ2lkPSI3NDE2NjQ4NjY5OTc2ODcwMTc1Ij4i4KSs4KWN4KSy4KWB4KSf4KWB4KSl4KS44KSB4KSXIOCkteCkv+CkmuCljeCkm+Clh+CkpiDgpJfgpLDgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2JhdHRlcnkiIG1zZ2lkPSIzNTgzNDMwMjIzNTI4MjA5NDYiPiLgpJXgpYHgpKjgpYgg4KSs4KWN4KSv4KS+4KSf4KWN4KSw4KS/IOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9vbmVfYmFyIiBtc2dpZD0iNzc3NDg4NzcyMTg5MTA1NzUyMyI+IuCkrOCljeCkr+CkvuCkn+CljeCksOCkvyDgpI/gpIngpJ/gpL4g4KSq4KSf4KWN4KSf4KS/4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3R3b19iYXJzIiBtc2dpZD0iODUwMDY1MDQzODczNTAwOTk3MyI+IuCkrOCljeCkr+CkvuCkn+CljeCksOCkv+CkleCkviDgpKbgpYHgpIjgpLXgpJ/gpL4g4KSq4KSf4KWN4KSf4KS/4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3RocmVlX2JhcnMiIG1zZ2lkPSIyMzAyOTgzMzMwODY1MDQwNDQ2Ij4i4KSs4KWN4KSv4KS+4KSf4KWN4KSw4KS/4KSV4KS+IOCkpOCkv+CkqOCkteCkn+CkviDgpKrgpJ/gpY3gpJ/gpL/gpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfZnVsbCIgbXNnaWQ9Ijg5MDkxMjI0MDE3MjAxNTg1ODIiPiLgpKzgpY3gpK/gpL7gpJ/gpY3gpLDgpL8g4KSq4KWC4KSw4KWN4KSjIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fcGhvbmUiIG1zZ2lkPSI0ODk0NzA4OTM3MDUyNjExMjgxIj4i4KSr4KWL4KSoIOCkm+CliOCkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfb25lX2JhciIgbXNnaWQ9IjY4NzY5OTI3ODEzMjY2NDExNSI+IuCkq+Cli+CkqCDgpI/gpIngpJ/gpL4g4KSq4KSf4KWN4KSf4KS/4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV90d29fYmFycyIgbXNnaWQ9IjgzODQ5MDUzODI4MDQ4MTUyMDEiPiLgpKvgpYvgpKgg4KSm4KWB4KSIIOCkquCkn+CljeCkn+Ckv+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdGhyZWVfYmFycyIgbXNnaWQ9Ijg1MjE5MDQ4NDM5MTk5NzE4ODUiPiLgpKvgpYvgpKgg4KSk4KS/4KSoIOCkquCkn+CljeCkn+Ckv+CkueCksOClguClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2NDcxODM0ODY4NTgwNzU3ODk4Ij4i4KSr4KWL4KSoIOCkuOCkmeCljeCkleClh+CkpCDgpK3gpLDgpL/gpI/gpJXgpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2RhdGEiIG1zZ2lkPSI0NzkxOTY2Mjk1MDk2ODY3NTU1Ij4i4KSh4KWH4KSf4KS+IOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9vbmVfYmFyIiBtc2dpZD0iMTQxNTYyNTgzMzIzODI3MzYyOCI+IuCkoeClh+Ckn+CkvuCkleCliyDgpI/gpIngpJ/gpL4g4KSq4KSf4KWN4KSf4KS/4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3R3b19iYXJzIiBtc2dpZD0iNjE2NjAxODQ5MjM2MDQzMjA5MSI+IuCkoeClh+Ckn+CkviDgpKbgpYHgpIgg4KSs4KS+4KSn4KS+4KS54KSw4KWC4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4i4KSh4KWH4KSf4KS+IOCkpOCkv+CkqCDgpKzgpL7gpKfgpL7gpLngpLDgpYLgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzA4Mzg0NjA4MTI0NTE5MzY5Ij4i4KSh4KWH4KSf4KS+IOCkuOCkguCkleClh+CkpCDgpKrgpYLgpLDgpY3gpKPgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb2ZmIiBtc2dpZD0iMzE3NzM4MDI5NjY5NzkzMzYyNyI+IuCkteCkvuCkh+Ckq+CkvuCkhyDgpKzgpKjgpY3gpKbgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpZmkiIG1zZ2lkPSIxNDI1NDc2NTUxODI3OTI0NDc0Ij4i4KS14KS+4KSH4KSr4KS+4KSHIOCkteCkv+CkmuCljeCkm+Clh+CkpiDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiLgpLXgpL7gpIfgpKvgpL7gpIcg4KSP4KSVIOCkquCkn+CljeCkn+Ckv+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90d29fYmFycyIgbXNnaWQ9IjQ5OTQyNzQyNTA0OTcyNjI0MzQiPiLgpLXgpL7gpIfgpKvgpL7gpIcg4KSm4KWB4KSIIOCkquCkn+CljeCkn+Ckv+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90aHJlZV9iYXJzIiBtc2dpZD0iMzQ5NTc1NTA0NDI3NjU4ODM4NCI+IuCkteCkvuCkh+Ckq+CkvuCkhyDgpKTgpL/gpKgg4KSs4KS+4KSw4KS54KSw4KWC4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IuCkteCkvuCkh+Ckq+CkvuCkhyDgpLjgpJngpY3gpJXgpYfgpKQg4KSt4KSw4KS/4KSP4KSV4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub193aW1heCIgbXNnaWQ9IjQzMjkxODAxMjk3Mjc2MzAzNjgiPiLgpLXgpL7gpIfgpK7gpY3gpK/gpL7gpLgg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9vbmVfYmFyIiBtc2dpZD0iNDE3MDk5NDI5OTAxMTg2MzY0OCI+IldpTUFYIOCkj+CkieCkn+CkviDgpKrgpJ/gpY3gpJ/gpL/gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3R3b19iYXJzIiBtc2dpZD0iOTE3NjIzNjg1ODMzNjUwMjI4OCI+IuCkteCkvuCkh+CkruCljeCkr+CkvuCkleCljeCkuCDgpKbgpYHgpIjgpLXgpJ/gpL4g4KSs4KS+4KSw4KS54KSw4KWC4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90aHJlZV9iYXJzIiBtc2dpZD0iNjExNjU1MTYzNjc1MjEwMzkyNyI+IuCkteCkvuCkh+CkruCljeCkr+CkvuCkleCljeCkuCDgpKTgpL/gpKjgpLXgpJ/gpL4g4KSs4KS+4KSw4KS54KSw4KWC4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3NjgwODk5ODY3OTU1Nzk1NTgiPiLgpLXgpL7gpIfgpK7gpY3gpK/gpL7gpJXgpY3gpLgg4KS44KSZ4KWN4KSV4KWH4KSkIOCkreCksOCkv+Ckj+CkleCkvuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fc2lnbmFsIiBtc2dpZD0iNzA2NDY0NTMyMDc4MjU4NTE2NyI+IuCkuOCkmeCljeCkleClh+CkpCDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4i4KSc4KSh4KS+4KSoIOCkqOCkl+CksOCkv+Ckj+CkleCli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfemVyb19iYXJzIiBtc2dpZD0iMzgwNjA2MDIyNDQ2NzAyNzg4NyI+IuCktuClguCkqOCljeCkryDgpKrgpJ/gpY3gpJ/gpL/gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X29uZV9iYXIiIG1zZ2lkPSIxNjg1NzMwMTEzMTkyMDgxODk1Ij4i4KSP4KSJ4KSf4KS+IOCkrOCkvuCksOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHdvX2JhcnMiIG1zZ2lkPSI2NDM3MzYzNjQ4Mzg1MjA2Njc5Ij4i4KSm4KWB4KSIIOCkquCkn+CljeCkn+Ckv+CkueCksOClguClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdGhyZWVfYmFycyIgbXNnaWQ9IjI2NDgyNDE0MTUxMTkzOTY2NDgiPiLgpKTgpL/gpKjgpLXgpJ/gpL4g4KSq4KSf4KWN4KSf4KS/4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zaWduYWxfZnVsbCIgbXNnaWQ9IjkxMjI5MjI4ODY1MTk2NzY4MzkiPiLgpLjgpJngpY3gpJXgpYfgpKQg4KSq4KWC4KSw4KWN4KSjIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vbiIgbXNnaWQ9IjIzODUyNTQ2OTM2MjQzNDUyNjUiPiLgpJrgpL7gpLLgpYHgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb2ZmIiBtc2dpZD0iNjQ3NTUwODE1Nzc4Njg1MzE1NyI+IuCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfY29ubmVjdGVkIiBtc2dpZD0iODM2NjI1NjY5MzcxOTQ5OTY2NSI+IuCknOCkoeCkvuCkqCDgpJfgpLDgpL/gpI/gpJXgpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9ncHJzIiBtc2dpZD0iMTYwNjQ3NzIyNDQ4Njc0Nzc1MSI+IkdQUlMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8xeCIgbXNnaWQ9Ijk5NDEzMzQ2ODEyMDI0NDAxOCI+IjEgWCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2hzcGEiIG1zZ2lkPSIyMDMyMzI4ODU1NDYyNjQ1MTk4Ij4iSFNQQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzNnIiBtc2dpZD0iODYyODU2MjMwNTAwMzU2ODI2MCI+IjNHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMy41ZyIgbXNnaWQ9Ijg2NjQ4NDU2MDk5ODE2OTIwMDEiPiIzLjVHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fNGciIG1zZ2lkPSI3NzQxMDAwNzUwNjMwMDg5NjEyIj4iNEciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9sdGUiIG1zZ2lkPSI1NDEzNDY4ODA4NjM3NTQwNjU4Ij4iTFRFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fY2RtYSIgbXNnaWQ9IjYxMzI2NDgxOTM5Nzg4MjMwMjMiPiJDRE1BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fcm9hbWluZyIgbXNnaWQ9IjU5NzczNjIzMzM0NjY1NTYwOTQiPiLgpLDgpYvgpK7gpL/gpJkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9lZGdlIiBtc2dpZD0iNDQ3NzQ1NzA1MTYzMTk3OTI3OCI+IkVkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl93aWZpIiBtc2dpZD0iMjMyNDQ5Njc1NjU5MDY0NTIyMSI+IuCkteCkvuCkhy3gpKvgpL7gpIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpbSIgbXNnaWQ9IjgyNzQwMTcxMTg0NzI0NTUxNTUiPiJTSU0g4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfdGV0aGVyIiBtc2dpZD0iNDEwMjc4NDQ5ODE0MDI3MTk2OSI+IuCkrOCljeCksuClgeCkn+ClgeCkpSDgpJ/gpL/gpKXgpLAg4KSX4KSw4KWN4KSm4KWI4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9haXJwbGFuZV9tb2RlIiBtc2dpZD0iODM0NzQ4OTk5NzkwNzYzMDkyIj4i4KS54KS14KS+4KSH4KSc4KS54KS+4KScIOCkruCli+CkoeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9sZXZlbCIgbXNnaWQ9Ijc0NTE0NzQxODcxMTMzNzE5NjUiPiLgpKzgpY3gpK/gpL7gpJ/gpY3gpLDgpL8gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOCkquCljeCksOCkpOCkv+CktuCkpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNzk5NTgzOTExMjMxODkzMzgwIj4i4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uc19idXR0b24iIG1zZ2lkPSI0NDk4MDAwMzY5Nzc5NDIxODkyIj4i4KS44KWC4KSa4KSo4KS+4KS54KSw4KWC4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZW1vdmVfbm90aWZpY2F0aW9uIiBtc2dpZD0iMzYwMzA5OTUxNDkwMjE4MjM1MCI+IuCkuOClguCkmuCkqOCkviDgpJbgpL7gpLLgpYAg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfZW5hYmxlZCIgbXNnaWQ9IjM1MTE0Njk0OTkyNDAxMjMwMTkiPiJHUFMg4KS44KSV4KWN4KS34KSuIOCkl+CksOCkv+Ckj+CkleCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2FjcXVpcmluZyIgbXNnaWQ9Ijg5NTkzMzMzNTEwNTg5NjcxNTgiPiJHUFMg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkueClgeCkgeCkpuCliOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHR5X2VuYWJsZWQiIG1zZ2lkPSI0NjEzMjAwMzY1Mzc5NDI2NTYxIj4i4KSf4KWH4KSy4KS/IOCkn+CkvuCkh+CkquCksOCkvuCkh+Ckn+CksCDgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KS/4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfdmlicmF0ZSIgbXNnaWQ9IjY2NjU4NTM2MzM2NDE1NTA1NSI+IuCkrOCknOCljeCkqOClhyDgpJXgpK7gpY3gpKrgpKgg4KS54KWB4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfc2lsZW50IiBtc2dpZD0iOTA2MTI0MzMwNzkzOTEzNTM4MyI+IuCkmOCkqOCljeCkn+ClgCDgpK7gpYzgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudHNfaXRlbV9kaXNtaXNzZWQiIG1zZ2lkPSI2ODAzNTc0OTM1MDg0ODY3MDcwIj4iPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IOCkluCkvuCksOClh+CknCDgpJfgpLDgpL/gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25fZGlzbWlzc2VkIiBtc2dpZD0iODU0MjExMzg3MTg2MzA2OTI3Ij4i4KS44KWC4KSa4KSo4KS+IOCkluCkvuCksOClh+CknOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19ub3RpZmljYXRpb25fc2hhZGUiIG1zZ2lkPSI0NjkwMjc0ODQ0NDQ3NTA0MjA4Ij4i4KS44KWC4KSa4KSo4KS+IOCkleCkleCljeCkt+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19xdWlja19zZXR0aW5ncyIgbXNnaWQ9IjYxODYzNzg0MTE1ODI0MzcwNDYiPiLgpKbgpY3gpLDgpYHgpKQg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3JlY2VudF9hcHBzIiBtc2dpZD0iOTAxNDAzMjkxNjQxMDU5MDAyNyI+IuCkteCksOCljeCkpOCkruCkvuCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3VzZXIiIG1zZ2lkPSIxMTA0ODQ2Njk5ODY5NDc2ODU1Ij4i4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IDx4bGlmZjpnIGlkPSJVU0VSIj4lczwveGxpZmY6Zz7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3dpZmkiIG1zZ2lkPSI2MDk5NzgxMDMxNjY5NzI4NzA5Ij4iPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz7gpaQgPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19tb2JpbGUiIG1zZ2lkPSI0ODc2ODA2NTY0MDg2MjQxMzQxIj4i4KSu4KWL4KS14KS+4KSH4KSyIDx4bGlmZjpnIGlkPSJTSUdOQUwiPiUxJHM8L3hsaWZmOmc+4KWkIDx4bGlmZjpnIGlkPSJUWVBFIj4lMiRzPC94bGlmZjpnPuClpCA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTMkczwveGxpZmY6Zz7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4i4KSs4KWN4KSv4KS+4KSf4KWN4KSw4KS/IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLgpLngpLXgpL7gpJzgpLngpL7gpJwg4KSu4KWL4KShIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4i4KSs4KWN4KSy4KWB4KSf4KWB4KSlIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiI8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+4KSV4KWLIOCksuCkvuCkl+CkvyDgpLjgpJngpY3gpJXgpYfgpKQg4KSY4KSo4KWN4KSf4KWAIOCkuOClh+CknyDgpJfgpLDgpL/gpI/gpJXgpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiIyRy0zRyDgpKHgpYfgpJ/gpL4g4KSF4KSV4KWN4KS34KSuIOCkl+CksOCkv+Ckr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHIOCkoeClh+Ckn+CkviDgpIXgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KS/4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfbW9iaWxlX3RpdGxlIiBtc2dpZD0iMTA0NjA0NzI0ODg0NDgyMTIwMiI+IuCkruCli+CkrOCkvuCkh+CksiDgpKHgpYfgpJ/gpL4g4KSF4KSV4KWN4KS34KSuIOCkl+CksOCkv+Ckr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMjA4NjgxNTMwNDg1ODk2NDk1NCI+IuCkoeClh+Ckn+CkviDgpIXgpJXgpY3gpLfgpK4g4KSX4KSw4KS/4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2ciIG1zZ2lkPSIzODUzMTE3MjY5MDUxODA2MjgwIj4i4KSk4KSq4KS+4KSI4KSBIOCkqOCkv+CksOCljeCkpuCkv+Ckt+CljeCknyDgpKHgpYfgpJ/gpL4g4KSJ4KSq4KSv4KWL4KSXIOCkuOClgOCkruCkvuCkruCkviDgpKrgpYHgpJfgpY3gpKjgpYEg4KSt4KSP4KSV4KWLIOCkm+ClpFxuXG7gpK/gpKbgpL8g4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkoeClh+Ckn+CkvuCksuCkvuCkiCDgpKrgpYHgpKjgpIPgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KWN4KSo4KWBIOCkreCkr+CliyDgpK3gpKjgpYcg4KSk4KSq4KS+4KSI4KSB4KSy4KS+4KSIIOCkheCksOCljeCkleCliyDgpLjgpILgpJrgpL7gpLLgpJXgpKzgpL7gpJ8g4KS24KWB4KSy4KWN4KSVIOCksuCkl+CkvuCkieCkqCDgpLjgpJXgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19lbmFibGUiIG1zZ2lkPSI3NzI5NzcyMDM5MjA4NjY0NjA2Ij4i4KSh4KWH4KSf4KS+IOCkquClgeCkqOCkgyDgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfZGlzY29ubmVjdGVkIiBtc2dpZD0iMTk0MDIzMTUyMTI3NDE0Nzc3MSI+IuCkh+CkqOCljeCkn+CksOCkqOClh+CknyDgpJzgpKHgpL7gpKgg4KSb4KWI4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4i4KS14KS+4KSHLeCkq+CkvuCkhyDgpJzgpKHgpL/gpKQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IkdQU+CkleCliyDgpLLgpL7gpJfgpL8g4KSW4KWL4KSc4KWAIOCkl+CksOCljeCkpuCliCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJHUFMg4KSm4KWN4KS14KS+4KSw4KS+IOCkuOCljeCkpeCkvuCkqCDgpLjgpYfgpJ8g4KSX4KSw4KS/4KSP4KSV4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4i4KS44KWN4KSl4KS+4KSoIOCkheCkqOClgeCksOCli+Ckp+CkueCksOClgiDgpLjgpJXgpY3gpLDgpL/gpK8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiLgpLjgpKzgpYgg4KS44KWC4KSa4KSo4KS+4KS54KSw4KWCIOCkueCkn+CkvuCkieCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpYsg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KS44KWN4KS14KSk4KSDIOCkmOClgeCkruCljeCkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IuCkuOCljeCkleCljeCksOCkv+CkqOCksuCkvuCkiCDgpLLgpY3gpK/gpL7gpKjgpY3gpKHgpLjgpY3gpJXgpYfgpKog4KSF4KS14KS44KWN4KSl4KS+4KSu4KS+IOCkrOCkqOCljeCkpiDgpJfgpLDgpL/gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IuCkuOCljeCkleCljeCksOCkv+CkqCDgpKrgpYvgpLDgpY3gpJ/gpYfgpJ8g4KSF4KSt4KS/4KSu4KWC4KSW4KSu4KS+IOCksuCklSDgpJfgpLDgpL/gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IuCkpuCkv+CkteCkvuCkuOCkquCkqOCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLgpLngpLXgpL7gpIfgpJzgpLngpL7gpJwg4KSu4KWL4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2luZ19sYWJlbCIgbXNnaWQ9IjQ5MDA3NDc3NDQ2NTMwOTIwOSI+IuCkmuCkvuCksOCljeCknCDgpLngpYHgpIHgpKbgpYgsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnZWRfbGFiZWwiIG1zZ2lkPSI4ODY1NDEzMDc5NDE0MjQ2MDgxIj4i4KSa4KS+4KSw4KWN4KScIOCkreCkr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9sYWJlbCIgbXNnaWQ9IjYzMDQxOTAyODUxNzA3MjE0MDEiPiLgpKzgpY3gpLLgpYHgpJ/gpYHgpKUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbXVsdGlwbGVfZGV2aWNlc19sYWJlbCIgbXNnaWQ9IjM5MTIyNDU1NjU2MTM2ODQ3MzUiPiLgpKzgpY3gpLLgpYHgpJ/gpYHgpKUgKDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgpIngpKrgpJXgpLDgpKPgpLngpLDgpYIpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiLgpKzgpY3gpLLgpYHgpJ/gpYHgpKUg4KSs4KSo4KWN4KSmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjY5NjgzNzIyOTcwMTg3NTU4MTUiPiLgpJrgpK7gpJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IuCkuOCljeCkteCkpOCkgyDgpJjgpYHgpK7gpL7gpIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4i4KSY4KWB4KSu4KWN4KSo4KWHIOCksuCklSDgpJfgpLDgpYfgpJXgpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4i4KSG4KSX4KSkIOCkteCkv+Ckp+CkvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+IuCkuOCljeCkpeCkvuCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiLgpLjgpY3gpKXgpL7gpKgg4KSs4KSo4KWN4KSmIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX21lZGlhX2RldmljZV9sYWJlbCIgbXNnaWQ9IjEzMDI5MDY4MzYzNzI2MDM3NjIiPiLgpK7gpL/gpKHgpL/gpK/gpL4g4KSJ4KSq4KSV4KSw4KSjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9sYWJlbCIgbXNnaWQ9Ijc3MjU2NzEzMzU1NTA2OTU1ODkiPiJSU1NJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9lbWVyZ2VuY3lfb25seSIgbXNnaWQ9IjI3MTM3NzQwNDE2NzI4ODY3NTAiPiLgpIbgpJXgpLjgpY3gpK7gpL/gpJUg4KSV4KSyIOCkruCkvuCkpOCljeCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3NldHRpbmdzX2xhYmVsIiBtc2dpZD0iNTMyNjU1NjU5MjU3ODA2NTQwMSI+IuCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3RpbWVfbGFiZWwiIG1zZ2lkPSI0NjM1OTY5MTgyMjM5NzM2NDA4Ij4i4KS44KSu4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfdXNlcl9sYWJlbCIgbXNnaWQ9IjUyMzg5OTU2MzIxMzA4OTc4NDAiPiLgpK7gpLLgpL7gpIgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2xhYmVsIiBtc2dpZD0iOTEzNTM0NDcwNDg5OTU0NjA0MSI+IuCkteCkvuCkhy3gpKvgpL7gpIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI3MTcxOTA0ODQ1MzQ1NTczNDMxIj4i4KSc4KWL4KSh4KS/4KSP4KSV4KWLIOCkm+CliOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm9fbmV0d29yayIgbXNnaWQ9IjIyMjE5OTMwNzcyMjA4NTYzNzYiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSb4KWI4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9vZmZfbGFiZWwiIG1zZ2lkPSI3NTU4Nzc4MTAwODQzODg1ODY0Ij4i4KS14KS+4KSHLeCkq+CkvuCkhyDgpKzgpKjgpY3gpKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbGFiZWwiIG1zZ2lkPSI2ODkzNTkyOTY0NDYzNjI0MzMzIj4i4KS14KS+4KSHLeCkq+CkvuCkhyDgpKrgpY3gpLDgpKbgpLDgpY3gpLbgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiLgpKTgpL7gpLDgpLDgpLngpL/gpKQg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4i4KSJ4KSc4KWN4KSv4KS+4KSy4KSq4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IuCkuOCljeCkteCkpOCkgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI1ODQ4NDAyMTI3NDU1MDIxNzE0Ij4i4KS44KSe4KWN4KSc4KS+4KSyIOCkheCkqOClgeCkl+CkruCkv+CkpCDgpLngpYHgpKgg4KS44KSV4KWN4KSbIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9idXR0b24iIG1zZ2lkPSIxNzU5Mzg3MTgxNzY2NjAzMzYxIj4i4KSt4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMTI3Mzc5Njk2NzA5MjAyNzI5MSI+IuCkuOCknuCljeCknOCkvuCksiDgpKjgpL/gpJfgpLDgpL7gpKjgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF9pbmZvX21lc3NhZ2UiIG1zZ2lkPSI1NDMwMzIwNTM5NTU1MzU4NDUyIj4i4KSv4KWLIOCkieCkquCkleCksOCkoyA8eGxpZmY6ZyBpZD0iTUFOQUdJTkdfRE9NQUlOIj4lczwveGxpZmY6Zz7gpKbgpY3gpLXgpL7gpLDgpL4g4KSq4KWN4KSw4KSs4KSo4KWN4KSn4KS/4KSkIOCkm+ClpCBcbiBcbiDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSq4KWN4KSw4KS24KS+4KS44KSVIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSwIOCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpLXgpYfgpKwg4KS44KS+4KSH4KSfIOCksuCkl+CkvuCkr+CkpCDgpLjgpJ7gpY3gpJzgpL7gpLIg4KSX4KSk4KS/4KS14KS/4KSn4KS/IOCkheCkqOClgeCkl+CkruCkqCDgpJfgpLDgpY3gpKgg4KS44KSV4KWN4KS34KSuIOCkm+ClpCBcbiBcbiDgpKXgpKog4KSc4KS+4KSo4KSV4KS+4KSw4KWA4KSV4KWLIOCksuCkvuCkl+CkvyDgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KSq4KWN4KSw4KS24KS+4KS44KSV4KS44KSB4KSXIOCkuOCkruCljeCkquCksOCljeCklSDgpLDgpL7gpJbgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nX21lc3NhZ2UiIG1zZ2lkPSIyMDMzMDkxNjU2MTI5OTYzNjY5Ij4i4KSP4KSVIOCkpOClh+CkuOCljeCksOCliyDgpKrgpJXgpY3gpLcg4KSk4KSq4KS+4KSI4KSB4KSV4KWLIOCkuOCknuCljeCknOCkvuCkslxuIOCkl+CkpOCkv+CkteCkv+Ckp+Ckvywg4KSH4KSu4KWH4KSyLCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KSwIOCkuOClgeCksOCkleCljeCkt+Ckv+CkpCDgpLXgpYfgpKzgpLjgpL7gpIfgpJ8g4KSF4KSo4KWB4KSX4KSu4KSoIOCkl+CksOCljeCkqCDgpLjgpJXgpY3gpLfgpK4g4KSb4KWkIFxuIFxuIOCkpOCkquCkvuCkiOCkgeCkleCliyDgpIngpKrgpJXgpLDgpKPgpK7gpL4g4KS44KWN4KSl4KS+4KSq4KS/4KSkIOCkj+CklSDgpLXgpL/gpLbgpY3gpLXgpLjgpKjgpYDgpK8g4KSq4KWN4KSw4KS+4KSu4KS+4KSj4KS/4KSVIOCkoeClh+Ckn+CkvuCksuClhyDgpLjgpK7gpY3gpK3gpLUg4KSk4KWB4KSy4KWN4KSv4KS+4KSH4KSw4KS54KWH4KSV4KWLIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9Ijc5NDY5NTY5NzczNzcxNjY3MDkiPiLgpLXgpL/gpLbgpY3gpLXgpLjgpKjgpYDgpK8g4KSq4KWN4KSw4KS+4KSu4KS+4KSj4KS/4KSVIOCkoeClh+Ckn+CkviDgpJzgpL7gpIHgpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW5lL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1uZS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2VlZTAxCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1uZS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIwNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAwOSwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzE2NDkzNzM0NDg1MDAwNDQ2NiI+IuCkquCljeCksOCko+CkvuCksuClgCBVSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfY2xlYXJfYWxsX2J1dHRvbiIgbXNnaWQ9Ijc3NzQ3MjEzNDQ3MTY3MzE2MDMiPiLgpLngpJ/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9yZW1vdmVfaXRlbV90aXRsZSIgbXNnaWQ9IjYwMjYzOTU4NjgxMjk4NTI5NjgiPiLgpLjgpYLgpJrgpYDgpKzgpL7gpJ8g4KS54KSf4KS+4KSJ4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9yZWNlbnRfaW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iNzc5MzYyNDg2NDUyODgxODU2OSI+IuCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpJzgpL7gpKjgpJXgpL7gpLDgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX3JlY2VudF9hcHBzIiBtc2dpZD0iNjU3NjM5Mjk1MTA1Mzk5NDY0MCI+IuCkleClgeCkqOCliCDgpKjgpK/gpL7gpIEg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIOCkm+CliOCkqOCkqOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9kaXNtaXNzX3JlY2VudHMiIG1zZ2lkPSI0NTc2MDc2MDc1MjI2NTQwMTA1Ij4i4KSo4KSv4KS+4KSBIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkueCksOClgiDgpJbgpL7gpLDgpYfgpJwg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfcmVjZW50X2FwcHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODU0MTc2MDgzODY1ODQ1NTQxIj4i4KWnIOCkreCksOCkluCksOCliCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJciPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjEwNDA3ODQzNTk3OTQ4OTA3NDQiPiIlZCDgpK3gpLDgpJbgpLDgpYjgpJXgpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19ub3RpZmljYXRpb25zX3RpdGxlIiBtc2dpZD0iNDc1NTI2MTE2NzE5MzgzMzIxMyI+IuCkleClgeCkqOCliCDgpLjgpYLgpJrgpKjgpL7gpLngpLDgpYIg4KSb4KWI4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9vbmdvaW5nX2V2ZW50c190aXRsZSIgbXNnaWQ9IjE2ODI1MDQ1MTMzMTY4NzkyMDIiPiLgpJrgpLLgpL/gpLDgpLngpYfgpJXgpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2xhdGVzdF9ldmVudHNfdGl0bGUiIG1zZ2lkPSI2NTk0NzY3NDM4NTc3NTkzMTcyIj4i4KS44KWC4KSa4KSo4KS+4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfdGl0bGUiIG1zZ2lkPSIyNzgzMTA0ODA3NTUxMjExNjM5Ij4i4KSa4KS+4KSw4KWN4KSc4KSwIOCknOCkoeCkvuCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19zdWJ0aXRsZSIgbXNnaWQ9IjE3NTIwNDAwNjIwODc4MjkxOTYiPiLgpKzgpY3gpK/gpL7gpJ/gpY3gpLDgpL8g4KSo4KWN4KSv4KWC4KSoIOCkueClgeCkgeCkpuCliCDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19wZXJjZW50X2Zvcm1hdCIgbXNnaWQ9IjEwNzcyNDQ5NDkzMTgyNjE3NjEiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZCUlPC94bGlmZjpnPiDgpKzgpL7gpIHgpJXgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnZhbGlkX2NoYXJnZXIiIG1zZ2lkPSI0NTQ5MTA1OTk2NzQwNTIyNTIzIj4iVVNCIOCkmuCkvuCksOCljeCknCDgpJfgpLDgpY3gpKgg4KS44KSu4KSw4KWN4KSl4KS/4KSkIOCkm+CliOCkqOClpFxuIOCkhuCkquClguCksOCljeCkpOCkvyDgpJfgpLDgpL/gpI/gpJXgpYsg4KSa4KS+4KSw4KWN4KSc4KSwIOCkruCkvuCkpOCljeCksCDgpKrgpY3gpLDgpK/gpYvgpJcg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfd2h5IiBtc2dpZD0iNzI3OTE2OTYwOTUxODM4NjM3MiI+IuCkrOCljeCkr+CkvuCkn+CljeCksOCkvyDgpKrgpY3gpLDgpK/gpYvgpJciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9IjMwMjM4ODk5MTY2OTkyNzAyMjQiPiLgpLjgpYfgpJ/gpL/gpJngpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3dpZmlfYnV0dG9uIiBtc2dpZD0iMTczMzkyODE1MTY5ODMxMTkyMyI+IuCkteCkvuCkhy3gpKvgpL7gpIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDg3OTg3OTY5ODUwMDk1NTMwMCI+IuCkueCkteCkvuCkh+CknOCkueCkvuCknCDgpK7gpYvgpKEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fcm90YXRpb24iIG1zZ2lkPSIzNzkwNDgyNTQxMzU3Nzk4NDIxIj4i4KS44KWN4KS14KSkOuCkmOClgeCkruCljeCkqOClhyDgpLjgpY3gpJXgpY3gpLDgpL/gpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX211dGVfbGFiZWwiIG1zZ2lkPSI1NTQ2ODI1NDk5MTc0MjkzOTYiPiLgpK7gpY3gpK/gpYHgpJ8g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MTE0NTM2MTQ5NjIzMjQ2NzQiPiLgpLjgpY3gpLXgpKTgpIMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX25vdGlmaWNhdGlvbnMiIG1zZ2lkPSIzOTcxNDYxNzYyODA5MDUxMzciPiLgpLjgpYLgpJrgpKjgpL7gpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4i4KSs4KWN4KSy4KWB4KSf4KWB4KSlIOCkn+Clh+CkpeCksCDgpK3gpK/gpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2lucHV0X21ldGhvZF9zZXR0aW5nc19jb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjM1MDQyOTI0NzE1MTIzMTc4MjciPiLgpIfgpKjgpKrgpYHgpJ8g4KS14KS/4KSn4KS/4KS54KSw4KWCIOCkuOClh+Ckn+CkheCkqiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3VzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9Ijc1NTE5MDMwODQ0MTYwNTc4MTAiPiLgpKvgpL/gpJzgpL/gpJXgpLIg4KSV4KS/4KSs4KWL4KSw4KWN4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjgzNDY5ODAwMTI3MTU2MjA1NyI+Ijx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4gVVNCIOCkieCkquCkleCksOCko+CksuCkvuCkiCDgpKrgpLngpYHgpIHgpJog4KSm4KS/4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLLgpL7gpIgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOClhyDgpLngpYs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjUxNzE3NzU0MTExNzg4NjU3NTAiPiI8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IFVTQiDgpKrgpL7gpJ/gpKrgpYHgpLDgpY3gpJzgpL7gpLLgpL7gpIgg4KSq4KS54KWB4KSB4KSaIOCkpuCkv+CkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpYcg4KS54KWLPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSI1MTYxMjA1MjU4NjM1MjUzMjA2Ij4i4KSv4KWLIFVTQiDgpIngpKrgpJXgpLDgpKMg4KSc4KWL4KSh4KS/4KSP4KSV4KWLIOCkrOClh+CksuCkviA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+IOCkluCli+CksuCljeCkqOClhyDgpLngpYs/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjM4MDg5ODQ5MzE4MzAyMjk4ODgiPiLgpK/gpYsgVVNCIOCkuOCkueCkvuCkr+CklSDgpJzgpKHgpL7gpKgg4KS54KWB4KSB4KSm4KS+IDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g4KSW4KWL4KSy4KWN4KSo4KWHIOCkueCliz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3VyaV9wcm9tcHQiIG1zZ2lkPSI1MTM0NTA2MjE0MTM3MzMzNDMiPiLgpK/gpLggVVNCIOCkieCkquCkleCksOCko+CkuOCkgeCklyDgpLjgpY3gpKXgpL7gpKrgpL/gpKQg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSXIOCkleCkvuCkriDgpJfgpLDgpY3gpKbgpYjgpKjgpaQg4KSv4KS4IOCkieCkquCkleCksOCko+CkleCliyDgpKzgpL7gpLDgpYfgpK7gpL4gPHhsaWZmOmcgaWQ9IlVSTCI+JTEkczwveGxpZmY6Zz4g4KSu4KS+IOCkp+Clh+CksOCliCDgpJzgpL7gpKjgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+IlVTQiDgpLjgpLngpK/gpYvgpJfgpYAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF92aWV3IiBtc2dpZD0iNjMwNDU2NTU1MzIxODE5Mjk5MCI+IuCkpuClg+CktuCljeCkryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfZGV2aWNlIiBtc2dpZD0iMTQ1MDI4NzQzNzAxNzMxNTkwNiI+IuCkr+CliyBVU0Ig4KSJ4KSq4KSV4KSw4KSj4KSV4KWLIOCksuCkvuCkl+CkvyDgpKrgpYLgpLDgpY3gpLXgpKjgpL/gpLDgpY3gpKfgpL7gpLDgpL/gpKTgpKzgpL7gpJ8g4KSq4KWN4KSw4KSv4KWL4KSXIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfYWNjZXNzb3J5IiBtc2dpZD0iMTIxMDk1NDU3Njk3OTYyMTU5NiI+IuCkr+CkuCBVU0Ig4KS44KS54KS+4KSv4KSVIOCkuOCkvuCkruCkvuCkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSq4KWC4KSw4KWN4KS14KSo4KS/4KSw4KWN4KSn4KS+4KSw4KS/4KSk4KSm4KWN4KS14KS+4KSw4KS+IOCkquCljeCksOCkr+Cli+CklyDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX3RpdGxlIiBtc2dpZD0iNDUxMzkxODM5MzM4NzE0MTk0OSI+IlVTQiDgpKHgpL/gpKzgpJcg4KSX4KSw4KWN4KSo4KSV4KWLIOCksuCkvuCkl+CkvyDgpIXgpKjgpYHgpK7gpKTgpL8g4KSm4KS/4KSo4KWHIOCkueCliz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX21lc3NhZ2UiIG1zZ2lkPSIyMjIwMTQzODU1OTEyMzc2NDk2Ij4i4KSV4KSu4KWN4KSq4KWN4KSv4KWB4KSf4KSw4KSV4KWLIFJTQSDgpJXgpYHgpJ7gpY3gpJzgpYAg4KSU4KSC4KSy4KS+4KSb4KS+4KSqOlxuPHhsaWZmOmcgaWQ9IkZJTkdFUlBSSU5UIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4i4KSv4KWLIOCkleCkruCljeCkquCljeCkr+ClgeCkn+CksOCkrOCkvuCknyDgpLjgpKfgpYjgpIEg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IuCkuOCljeCkleCljeCksOCkv+CkqCDgpK3gpLDgpY3gpKgg4KSc4KWB4KSuIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KSt4KSw4KWN4KSoIOCkpOCkqOCljeCkleCkvuCkieCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+IuCkheCkqOClgeCkleClguCksuCkpOCkviDgpJzgpYHgpK4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4i4KSc4KSsIOCkleClgeCkqOCliCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KS44KS+4KSo4KWLIOCkuOCljeCkleCljeCksOCkv+CkqOCkleCliyDgpLLgpL7gpJfgpL8g4KSs4KSo4KS+4KSH4KSP4KSV4KWLIOCkueClgeCkqOCljeCkmywg4KSk4KSsIOCknOClgeCkriDgpKjgpL/gpK/gpKjgpY3gpKTgpY3gpLDgpKMg4KSY4KSh4KWA4KSV4KWLIOCkqOCknOCkv+CklSDgpKbgpYfgpJbgpL/gpKjgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSo4KS44KSfIOCkrOCkmuCkpCDgpJfgpLDgpY3gpKbgpYjigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKjgpLjgpJ8g4KSs4KSa4KSkIOCkl+CksOCljeCkpuCliOKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i4KS44KWN4KSV4KWN4KSw4KS/4KSo4KS44KSfIOCkrOCkmuCkpCDgpLngpYHgpIHgpKbgpYgg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90aXRsZSIgbXNnaWQ9IjY0NjE4NjU5NjA5NjE0MTQ5NjEiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKjgpLjgpJ8g4KSV4KWN4KSv4KS+4KSq4KWN4KSa4KSwIOCkl+CksOCkv+Ckr+Cli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2ZWRfdGV4dCIgbXNnaWQ9IjExNTI4Mzk2NDc2Nzc1NTg4MTUiPiLgpKTgpKrgpL7gpIjgpIHgpJXgpYsg4KS44KWN4KSV4KWN4KSw4KS/4KSo4KS44KSfIOCkueClh+CksOCljeCkqCDgpJvgpYHgpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X2ZhaWxlZF90aXRsZSIgbXNnaWQ9IjcwNTc4MTExNjc0NjkyMjc3MSI+IuCkuOCljeCkleCljeCksOCkv+CkqOCkuOCknyDgpJXgpY3gpK/gpL7gpKrgpY3gpJrgpLAg4KSX4KSw4KWN4KSoIOCkuOCkleCkv+Ckj+CkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RleHQiIG1zZ2lkPSI4MTM0MDExMjY5NTcyNDE1NDAyIj4i4KS44KWN4KSV4KWN4KSw4KS/4KSo4KS44KSf4KSy4KS+4KSIIOCkrOCkmuCkpCDgpJfgpLDgpY3gpKgg4KS44KSV4KWH4KSo4KWkIOCkreCko+CljeCkoeCkvuCksOCkoyDgpIngpKrgpK/gpYvgpJfgpK7gpL4g4KS54KWB4KSoIOCkuOCkleCljeCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9wcmVmZXJlbmNlX3RpdGxlIiBtc2dpZD0iNjU1MTA1MDM3NzM4ODg4Mjc4NyI+IlVTQiDgpKvgpL7gpIfgpLIg4KS44KS+4KSw4KWN4KSo4KWHIOCkteCkv+CkleCksuCljeCkquCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9tdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNDMzMzUwNDQxMzU2MzAyMzYyNiI+IuCkruCkv+CkoeCkv+Ckr+CkviDgpKrgpY3gpLLgpYfgpK/gpLAoTVRQKeCkleCliyDgpLDgpYLgpKrgpK7gpL4g4KSu4KS+4KSJ4KSo4KWN4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9wdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNzUxNzEyNzU0MDMwMTYyNTc1MSI+IuCkleCljeCkr+CkvuCkruClh+CksOCkvuCkleCliyDgpLDgpYLgpKrgpK7gpL4g4KSu4KS+4KSJ4KSo4KWN4KSfIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSAoUFRQKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxlcl9jZF9idXR0b25fdGl0bGUiIG1zZ2lkPSIyMzEyNjY3NTc4NTYyMjAxNTgzIj4i4KSu4KWN4KSv4KS+4KSV4KSV4KWLIOCksuCkvuCkl+CkvyDgpI/gpKjgpY3gpKHgpY3gpLDgpYvgpIfgpKEg4KSr4KS+4KSH4KSyIOCkn+CljeCksOCkvuCkqOCljeCkuOCkq+CksCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJcg4KS44KWN4KSl4KS+4KSq4KSo4KS+IOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmFjayIgbXNnaWQ9IjU2NzAxMTUzODk5NDQyOTEyMCI+IuCkquCkm+CkvuCkoeCkvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiLgpJfgpYPgpLkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiLgpK7gpYfgpKjgpYEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiLgpK3gpLDgpY3gpJbgpLDgpJXgpL4g4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiLgpIfgpKjgpKrgpYHgpJ8g4KS14KS/4KSn4KS/IOCkrOCkn+CkqCDgpLjgpY3gpLXgpL/gpJog4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IuCkruCkv+CksuCkvuCkieCkqOClhyDgpJzgpYHgpK4g4KSs4KSf4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKjgpLLgpL7gpIgg4KS44KS+4KSo4KWL4KSs4KS+4KSfIOCkoOClguCksuCliyDgpKrgpL7gpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9jb25uZWN0ZWQiIG1zZ2lkPSIyNzA3MDI3NjMzMjQyOTgzMzcwIj4i4KSs4KWN4KSy4KWB4KSf4KWB4KSlIOCknOCkoeCkvuCkqCDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF9kaXNjb25uZWN0ZWQiIG1zZ2lkPSI3NDE2NjQ4NjY5OTc2ODcwMTc1Ij4i4KSs4KWN4KSy4KWB4KSf4KWB4KSl4KS44KSB4KSXIOCkteCkv+CkmuCljeCkm+Clh+CkpiDgpJfgpLDgpL/gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2JhdHRlcnkiIG1zZ2lkPSIzNTgzNDMwMjIzNTI4MjA5NDYiPiLgpJXgpYHgpKjgpYgg4KSs4KWN4KSv4KS+4KSf4KWN4KSw4KS/IOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9vbmVfYmFyIiBtc2dpZD0iNzc3NDg4NzcyMTg5MTA1NzUyMyI+IuCkrOCljeCkr+CkvuCkn+CljeCksOCkvyDgpI/gpIngpJ/gpL4g4KSq4KSf4KWN4KSf4KS/4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3R3b19iYXJzIiBtc2dpZD0iODUwMDY1MDQzODczNTAwOTk3MyI+IuCkrOCljeCkr+CkvuCkn+CljeCksOCkv+CkleCkviDgpKbgpYHgpIjgpLXgpJ/gpL4g4KSq4KSf4KWN4KSf4KS/4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3RocmVlX2JhcnMiIG1zZ2lkPSIyMzAyOTgzMzMwODY1MDQwNDQ2Ij4i4KSs4KWN4KSv4KS+4KSf4KWN4KSw4KS/4KSV4KS+IOCkpOCkv+CkqOCkteCkn+CkviDgpKrgpJ/gpY3gpJ/gpL/gpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfZnVsbCIgbXNnaWQ9Ijg5MDkxMjI0MDE3MjAxNTg1ODIiPiLgpKzgpY3gpK/gpL7gpJ/gpY3gpLDgpL8g4KSq4KWC4KSw4KWN4KSjIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fcGhvbmUiIG1zZ2lkPSI0ODk0NzA4OTM3MDUyNjExMjgxIj4i4KSr4KWL4KSoIOCkm+CliOCkqOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfb25lX2JhciIgbXNnaWQ9IjY4NzY5OTI3ODEzMjY2NDExNSI+IuCkq+Cli+CkqCDgpI/gpIngpJ/gpL4g4KSq4KSf4KWN4KSf4KS/4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV90d29fYmFycyIgbXNnaWQ9IjgzODQ5MDUzODI4MDQ4MTUyMDEiPiLgpKvgpYvgpKgg4KSm4KWB4KSIIOCkquCkn+CljeCkn+Ckv+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdGhyZWVfYmFycyIgbXNnaWQ9Ijg1MjE5MDQ4NDM5MTk5NzE4ODUiPiLgpKvgpYvgpKgg4KSk4KS/4KSoIOCkquCkn+CljeCkn+Ckv+CkueCksOClguClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2NDcxODM0ODY4NTgwNzU3ODk4Ij4i4KSr4KWL4KSoIOCkuOCkmeCljeCkleClh+CkpCDgpK3gpLDgpL/gpI/gpJXgpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2RhdGEiIG1zZ2lkPSI0NzkxOTY2Mjk1MDk2ODY3NTU1Ij4i4KSh4KWH4KSf4KS+IOCkm+CliOCkqOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9vbmVfYmFyIiBtc2dpZD0iMTQxNTYyNTgzMzIzODI3MzYyOCI+IuCkoeClh+Ckn+CkvuCkleCliyDgpI/gpIngpJ/gpL4g4KSq4KSf4KWN4KSf4KS/4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3R3b19iYXJzIiBtc2dpZD0iNjE2NjAxODQ5MjM2MDQzMjA5MSI+IuCkoeClh+Ckn+CkviDgpKbgpYHgpIgg4KSs4KS+4KSn4KS+4KS54KSw4KWC4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4i4KSh4KWH4KSf4KS+IOCkpOCkv+CkqCDgpKzgpL7gpKfgpL7gpLngpLDgpYLgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzA4Mzg0NjA4MTI0NTE5MzY5Ij4i4KSh4KWH4KSf4KS+IOCkuOCkguCkleClh+CkpCDgpKrgpYLgpLDgpY3gpKPgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb2ZmIiBtc2dpZD0iMzE3NzM4MDI5NjY5NzkzMzYyNyI+IuCkteCkvuCkh+Ckq+CkvuCkhyDgpKzgpKjgpY3gpKbgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpZmkiIG1zZ2lkPSIxNDI1NDc2NTUxODI3OTI0NDc0Ij4i4KS14KS+4KSH4KSr4KS+4KSHIOCkteCkv+CkmuCljeCkm+Clh+CkpiDgpK3gpK/gpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiLgpLXgpL7gpIfgpKvgpL7gpIcg4KSP4KSVIOCkquCkn+CljeCkn+Ckv+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90d29fYmFycyIgbXNnaWQ9IjQ5OTQyNzQyNTA0OTcyNjI0MzQiPiLgpLXgpL7gpIfgpKvgpL7gpIcg4KSm4KWB4KSIIOCkquCkn+CljeCkn+Ckv+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90aHJlZV9iYXJzIiBtc2dpZD0iMzQ5NTc1NTA0NDI3NjU4ODM4NCI+IuCkteCkvuCkh+Ckq+CkvuCkhyDgpKTgpL/gpKgg4KSs4KS+4KSw4KS54KSw4KWC4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IuCkteCkvuCkh+Ckq+CkvuCkhyDgpLjgpJngpY3gpJXgpYfgpKQg4KSt4KSw4KS/4KSP4KSV4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub193aW1heCIgbXNnaWQ9IjQzMjkxODAxMjk3Mjc2MzAzNjgiPiLgpLXgpL7gpIfgpK7gpY3gpK/gpL7gpLgg4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9vbmVfYmFyIiBtc2dpZD0iNDE3MDk5NDI5OTAxMTg2MzY0OCI+IldpTUFYIOCkj+CkieCkn+CkviDgpKrgpJ/gpY3gpJ/gpL/gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3R3b19iYXJzIiBtc2dpZD0iOTE3NjIzNjg1ODMzNjUwMjI4OCI+IuCkteCkvuCkh+CkruCljeCkr+CkvuCkleCljeCkuCDgpKbgpYHgpIjgpLXgpJ/gpL4g4KSs4KS+4KSw4KS54KSw4KWC4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90aHJlZV9iYXJzIiBtc2dpZD0iNjExNjU1MTYzNjc1MjEwMzkyNyI+IuCkteCkvuCkh+CkruCljeCkr+CkvuCkleCljeCkuCDgpKTgpL/gpKjgpLXgpJ/gpL4g4KSs4KS+4KSw4KS54KSw4KWC4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3NjgwODk5ODY3OTU1Nzk1NTgiPiLgpLXgpL7gpIfgpK7gpY3gpK/gpL7gpJXgpY3gpLgg4KS44KSZ4KWN4KSV4KWH4KSkIOCkreCksOCkv+Ckj+CkleCkvuClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fc2lnbmFsIiBtc2dpZD0iNzA2NDY0NTMyMDc4MjU4NTE2NyI+IuCkuOCkmeCljeCkleClh+CkpCDgpJvgpYjgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4i4KSc4KSh4KS+4KSoIOCkqOCkl+CksOCkv+Ckj+CkleCli+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfemVyb19iYXJzIiBtc2dpZD0iMzgwNjA2MDIyNDQ2NzAyNzg4NyI+IuCktuClguCkqOCljeCkryDgpKrgpJ/gpY3gpJ/gpL/gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X29uZV9iYXIiIG1zZ2lkPSIxNjg1NzMwMTEzMTkyMDgxODk1Ij4i4KSP4KSJ4KSf4KS+IOCkrOCkvuCksOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHdvX2JhcnMiIG1zZ2lkPSI2NDM3MzYzNjQ4Mzg1MjA2Njc5Ij4i4KSm4KWB4KSIIOCkquCkn+CljeCkn+Ckv+CkueCksOClguClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdGhyZWVfYmFycyIgbXNnaWQ9IjI2NDgyNDE0MTUxMTkzOTY2NDgiPiLgpKTgpL/gpKjgpLXgpJ/gpL4g4KSq4KSf4KWN4KSf4KS/4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zaWduYWxfZnVsbCIgbXNnaWQ9IjkxMjI5MjI4ODY1MTk2NzY4MzkiPiLgpLjgpJngpY3gpJXgpYfgpKQg4KSq4KWC4KSw4KWN4KSjIOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vbiIgbXNnaWQ9IjIzODUyNTQ2OTM2MjQzNDUyNjUiPiLgpJrgpL7gpLLgpYHgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb2ZmIiBtc2dpZD0iNjQ3NTUwODE1Nzc4Njg1MzE1NyI+IuCkrOCkqOCljeCkpiDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfY29ubmVjdGVkIiBtc2dpZD0iODM2NjI1NjY5MzcxOTQ5OTY2NSI+IuCknOCkoeCkvuCkqCDgpJfgpLDgpL/gpI/gpJXgpYvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9ncHJzIiBtc2dpZD0iMTYwNjQ3NzIyNDQ4Njc0Nzc1MSI+IkdQUlMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8xeCIgbXNnaWQ9Ijk5NDEzMzQ2ODEyMDI0NDAxOCI+IjEgWCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2hzcGEiIG1zZ2lkPSIyMDMyMzI4ODU1NDYyNjQ1MTk4Ij4iSFNQQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzNnIiBtc2dpZD0iODYyODU2MjMwNTAwMzU2ODI2MCI+IjNHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMy41ZyIgbXNnaWQ9Ijg2NjQ4NDU2MDk5ODE2OTIwMDEiPiIzLjVHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fNGciIG1zZ2lkPSI3NzQxMDAwNzUwNjMwMDg5NjEyIj4iNEciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9sdGUiIG1zZ2lkPSI1NDEzNDY4ODA4NjM3NTQwNjU4Ij4iTFRFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fY2RtYSIgbXNnaWQ9IjYxMzI2NDgxOTM5Nzg4MjMwMjMiPiJDRE1BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fcm9hbWluZyIgbXNnaWQ9IjU5NzczNjIzMzM0NjY1NTYwOTQiPiLgpLDgpYvgpK7gpL/gpJkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9lZGdlIiBtc2dpZD0iNDQ3NzQ1NzA1MTYzMTk3OTI3OCI+IkVkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl93aWZpIiBtc2dpZD0iMjMyNDQ5Njc1NjU5MDY0NTIyMSI+IuCkteCkvuCkhy3gpKvgpL7gpIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpbSIgbXNnaWQ9IjgyNzQwMTcxMTg0NzI0NTUxNTUiPiJTSU0g4KSb4KWI4KSo4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfdGV0aGVyIiBtc2dpZD0iNDEwMjc4NDQ5ODE0MDI3MTk2OSI+IuCkrOCljeCksuClgeCkn+ClgeCkpSDgpJ/gpL/gpKXgpLAg4KSX4KSw4KWN4KSm4KWI4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9haXJwbGFuZV9tb2RlIiBtc2dpZD0iODM0NzQ4OTk5NzkwNzYzMDkyIj4i4KS54KS14KS+4KSH4KSc4KS54KS+4KScIOCkruCli+CkoeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9sZXZlbCIgbXNnaWQ9Ijc0NTE0NzQxODcxMTMzNzE5NjUiPiLgpKzgpY3gpK/gpL7gpJ/gpY3gpLDgpL8gPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOCkquCljeCksOCkpOCkv+CktuCkpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNzk5NTgzOTExMjMxODkzMzgwIj4i4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uc19idXR0b24iIG1zZ2lkPSI0NDk4MDAwMzY5Nzc5NDIxODkyIj4i4KS44KWC4KSa4KSo4KS+4KS54KSw4KWC4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZW1vdmVfbm90aWZpY2F0aW9uIiBtc2dpZD0iMzYwMzA5OTUxNDkwMjE4MjM1MCI+IuCkuOClguCkmuCkqOCkviDgpJbgpL7gpLLgpYAg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfZW5hYmxlZCIgbXNnaWQ9IjM1MTE0Njk0OTkyNDAxMjMwMTkiPiJHUFMg4KS44KSV4KWN4KS34KSuIOCkl+CksOCkv+Ckj+CkleCliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2FjcXVpcmluZyIgbXNnaWQ9Ijg5NTkzMzMzNTEwNTg5NjcxNTgiPiJHUFMg4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkueClgeCkgeCkpuCliOCkm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHR5X2VuYWJsZWQiIG1zZ2lkPSI0NjEzMjAwMzY1Mzc5NDI2NTYxIj4i4KSf4KWH4KSy4KS/IOCkn+CkvuCkh+CkquCksOCkvuCkh+Ckn+CksCDgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KS/4KSv4KWL4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfdmlicmF0ZSIgbXNnaWQ9IjY2NjU4NTM2MzM2NDE1NTA1NSI+IuCkrOCknOCljeCkqOClhyDgpJXgpK7gpY3gpKrgpKgg4KS54KWB4KSo4KWN4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfc2lsZW50IiBtc2dpZD0iOTA2MTI0MzMwNzkzOTEzNTM4MyI+IuCkmOCkqOCljeCkn+ClgCDgpK7gpYzgpKjgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudHNfaXRlbV9kaXNtaXNzZWQiIG1zZ2lkPSI2ODAzNTc0OTM1MDg0ODY3MDcwIj4iPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IOCkluCkvuCksOClh+CknCDgpJfgpLDgpL/gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25fZGlzbWlzc2VkIiBtc2dpZD0iODU0MjExMzg3MTg2MzA2OTI3Ij4i4KS44KWC4KSa4KSo4KS+IOCkluCkvuCksOClh+CknOClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19ub3RpZmljYXRpb25fc2hhZGUiIG1zZ2lkPSI0NjkwMjc0ODQ0NDQ3NTA0MjA4Ij4i4KS44KWC4KSa4KSo4KS+IOCkleCkleCljeCkt+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19xdWlja19zZXR0aW5ncyIgbXNnaWQ9IjYxODYzNzg0MTE1ODI0MzcwNDYiPiLgpKbgpY3gpLDgpYHgpKQg4KS44KWH4KSf4KS/4KSZ4KS54KSw4KWCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3JlY2VudF9hcHBzIiBtc2dpZD0iOTAxNDAzMjkxNjQxMDU5MDAyNyI+IuCkteCksOCljeCkpOCkruCkvuCkqCDgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpLngpLDgpYIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3VzZXIiIG1zZ2lkPSIxMTA0ODQ2Njk5ODY5NDc2ODU1Ij4i4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KSw4KWN4KSk4KS+IDx4bGlmZjpnIGlkPSJVU0VSIj4lczwveGxpZmY6Zz7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3dpZmkiIG1zZ2lkPSI2MDk5NzgxMDMxNjY5NzI4NzA5Ij4iPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz7gpaQgPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19tb2JpbGUiIG1zZ2lkPSI0ODc2ODA2NTY0MDg2MjQxMzQxIj4i4KSu4KWL4KS14KS+4KSH4KSyIDx4bGlmZjpnIGlkPSJTSUdOQUwiPiUxJHM8L3hsaWZmOmc+4KWkIDx4bGlmZjpnIGlkPSJUWVBFIj4lMiRzPC94bGlmZjpnPuClpCA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTMkczwveGxpZmY6Zz7gpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4i4KSs4KWN4KSv4KS+4KSf4KWN4KSw4KS/IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLgpLngpLXgpL7gpJzgpLngpL7gpJwg4KSu4KWL4KShIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4i4KSs4KWN4KSy4KWB4KSf4KWB4KSlIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiI8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+4KSV4KWLIOCksuCkvuCkl+CkvyDgpLjgpJngpY3gpJXgpYfgpKQg4KSY4KSo4KWN4KSf4KWAIOCkuOClh+CknyDgpJfgpLDgpL/gpI/gpJXgpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiIyRy0zRyDgpKHgpYfgpJ/gpL4g4KSF4KSV4KWN4KS34KSuIOCkl+CksOCkv+Ckr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHIOCkoeClh+Ckn+CkviDgpIXgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KS/4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfbW9iaWxlX3RpdGxlIiBtc2dpZD0iMTA0NjA0NzI0ODg0NDgyMTIwMiI+IuCkruCli+CkrOCkvuCkh+CksiDgpKHgpYfgpJ/gpL4g4KSF4KSV4KWN4KS34KSuIOCkl+CksOCkv+Ckr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMjA4NjgxNTMwNDg1ODk2NDk1NCI+IuCkoeClh+Ckn+CkviDgpIXgpJXgpY3gpLfgpK4g4KSX4KSw4KS/4KSv4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2ciIG1zZ2lkPSIzODUzMTE3MjY5MDUxODA2MjgwIj4i4KSk4KSq4KS+4KSI4KSBIOCkqOCkv+CksOCljeCkpuCkv+Ckt+CljeCknyDgpKHgpYfgpJ/gpL4g4KSJ4KSq4KSv4KWL4KSXIOCkuOClgOCkruCkvuCkruCkviDgpKrgpYHgpJfgpY3gpKjgpYEg4KSt4KSP4KSV4KWLIOCkm+ClpFxuXG7gpK/gpKbgpL8g4KSk4KSq4KS+4KSI4KSB4KSy4KWHIOCkoeClh+Ckn+CkvuCksuCkvuCkiCDgpKrgpYHgpKjgpIPgpLjgpJXgpY3gpLfgpK4g4KSq4KS+4KSw4KWN4KSo4KWBIOCkreCkr+CliyDgpK3gpKjgpYcg4KSk4KSq4KS+4KSI4KSB4KSy4KS+4KSIIOCkheCksOCljeCkleCliyDgpLjgpILgpJrgpL7gpLLgpJXgpKzgpL7gpJ8g4KS24KWB4KSy4KWN4KSVIOCksuCkl+CkvuCkieCkqCDgpLjgpJXgpY3gpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19lbmFibGUiIG1zZ2lkPSI3NzI5NzcyMDM5MjA4NjY0NjA2Ij4i4KSh4KWH4KSf4KS+IOCkquClgeCkqOCkgyDgpLjgpJXgpY3gpLfgpK4g4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfZGlzY29ubmVjdGVkIiBtc2dpZD0iMTk0MDIzMTUyMTI3NDE0Nzc3MSI+IuCkh+CkqOCljeCkn+CksOCkqOClh+CknyDgpJzgpKHgpL7gpKgg4KSb4KWI4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4i4KS14KS+4KSHLeCkq+CkvuCkhyDgpJzgpKHgpL/gpKQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IkdQU+CkleCliyDgpLLgpL7gpJfgpL8g4KSW4KWL4KSc4KWAIOCkl+CksOCljeCkpuCliCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJHUFMg4KSm4KWN4KS14KS+4KSw4KS+IOCkuOCljeCkpeCkvuCkqCDgpLjgpYfgpJ8g4KSX4KSw4KS/4KSP4KSV4KWLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4i4KS44KWN4KSl4KS+4KSoIOCkheCkqOClgeCksOCli+Ckp+CkueCksOClgiDgpLjgpJXgpY3gpLDgpL/gpK8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiLgpLjgpKzgpYgg4KS44KWC4KSa4KSo4KS+4KS54KSw4KWCIOCkueCkn+CkvuCkieCkqOClgeCkueCli+CkuOCljeClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiLgpIXgpKjgpYHgpKrgpY3gpLDgpK/gpYvgpJfgpJXgpYsg4KSc4KS+4KSo4KSV4KS+4KSw4KWAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiLgpLjgpY3gpJXgpY3gpLDgpL/gpKgg4KS44KWN4KS14KSk4KSDIOCkmOClgeCkruCljeCkqOClhyDgpJvgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IuCkuOCljeCkleCljeCksOCkv+CkqOCksuCkvuCkiCDgpLLgpY3gpK/gpL7gpKjgpY3gpKHgpLjgpY3gpJXgpYfgpKog4KSF4KS14KS44KWN4KSl4KS+4KSu4KS+IOCkrOCkqOCljeCkpiDgpJfgpLDgpL/gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IuCkuOCljeCkleCljeCksOCkv+CkqCDgpKrgpYvgpLDgpY3gpJ/gpYfgpJ8g4KSF4KSt4KS/4KSu4KWC4KSW4KSu4KS+IOCksuCklSDgpJfgpLDgpL/gpI/gpJXgpYsg4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IuCkpuCkv+CkteCkvuCkuOCkquCkqOCkviI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLgpIngpKHgpL7gpKgg4KSu4KWL4KShIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2luZ19sYWJlbCIgbXNnaWQ9IjQ5MDA3NDc3NDQ2NTMwOTIwOSI+IuCkmuCkvuCksOCljeCknCDgpLngpYHgpIHgpKbgpYgsIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnZWRfbGFiZWwiIG1zZ2lkPSI4ODY1NDEzMDc5NDE0MjQ2MDgxIj4i4KSa4KS+4KSw4KWN4KScIOCkreCkr+CliyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9sYWJlbCIgbXNnaWQ9IjYzMDQxOTAyODUxNzA3MjE0MDEiPiLgpKzgpY3gpLLgpYHgpJ/gpYHgpKUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbXVsdGlwbGVfZGV2aWNlc19sYWJlbCIgbXNnaWQ9IjM5MTIyNDU1NjU2MTM2ODQ3MzUiPiLgpKzgpY3gpLLgpYHgpJ/gpYHgpKUgKDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiDgpIngpKrgpJXgpLDgpKPgpLngpLDgpYIpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiLgpKzgpY3gpLLgpYHgpJ/gpYHgpKUg4KSs4KSo4KWN4KSmIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjY5NjgzNzIyOTcwMTg3NTU4MTUiPiLgpJrgpK7gpJUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IuCkuOCljeCkteCkpOCkgyDgpJjgpYHgpK7gpL7gpIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4i4KSY4KWB4KSu4KWN4KSo4KWHIOCksuCklSDgpJfgpLDgpYfgpJXgpYsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4i4KSG4KSX4KSkIOCkteCkv+Ckp+CkvyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+IuCkuOCljeCkpeCkvuCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiLgpLjgpY3gpKXgpL7gpKgg4KSs4KSo4KWN4KSmIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX21lZGlhX2RldmljZV9sYWJlbCIgbXNnaWQ9IjEzMDI5MDY4MzYzNzI2MDM3NjIiPiLgpK7gpL/gpKHgpL/gpK/gpL4g4KSJ4KSq4KSV4KSw4KSjIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9sYWJlbCIgbXNnaWQ9Ijc3MjU2NzEzMzU1NTA2OTU1ODkiPiJSU1NJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9lbWVyZ2VuY3lfb25seSIgbXNnaWQ9IjI3MTM3NzQwNDE2NzI4ODY3NTAiPiLgpIbgpJXgpLjgpY3gpK7gpL/gpJUg4KSV4KSyIOCkruCkvuCkpOCljeCksCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3NldHRpbmdzX2xhYmVsIiBtc2dpZD0iNTMyNjU1NjU5MjU3ODA2NTQwMSI+IuCkuOClh+Ckn+Ckv+CkmeCkueCksOClgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3RpbWVfbGFiZWwiIG1zZ2lkPSI0NjM1OTY5MTgyMjM5NzM2NDA4Ij4i4KS44KSu4KSvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfdXNlcl9sYWJlbCIgbXNnaWQ9IjUyMzg5OTU2MzIxMzA4OTc4NDAiPiLgpK7gpLLgpL7gpIgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2xhYmVsIiBtc2dpZD0iOTEzNTM0NDcwNDg5OTU0NjA0MSI+IuCkteCkvuCkhy3gpKvgpL7gpIciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI3MTcxOTA0ODQ1MzQ1NTczNDMxIj4i4KSc4KWL4KSh4KS/4KSP4KSV4KWLIOCkm+CliOCkqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm9fbmV0d29yayIgbXNnaWQ9IjIyMjE5OTMwNzcyMjA4NTYzNzYiPiLgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSb4KWI4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9vZmZfbGFiZWwiIG1zZ2lkPSI3NTU4Nzc4MTAwODQzODg1ODY0Ij4i4KS14KS+4KSHLeCkq+CkvuCkhyDgpKzgpKjgpY3gpKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbGFiZWwiIG1zZ2lkPSI2ODkzNTkyOTY0NDYzNjI0MzMzIj4i4KS14KS+4KSHLeCkq+CkvuCkhyDgpKrgpY3gpLDgpKbgpLDgpY3gpLbgpKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiLgpKTgpL7gpLDgpLDgpLngpL/gpKQg4KSq4KWN4KSw4KSm4KSw4KWN4KS24KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4i4KSJ4KSc4KWN4KSv4KS+4KSy4KSq4KSoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IuCkuOCljeCkteCkpOCkgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiLgpK/gpLngpL7gpIEg4KSc4KS+4KSo4KSV4KS+4KSw4KWA4KS54KSw4KWCIOCkpuClh+CkluCkviDgpKrgpLDgpY3gpJvgpKjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiLgpKTgpLIg4KS54KWB4KSk4KWN4KSk4KWN4KSv4KS+4KSP4KSwIOCkpOCkv+CkqOClgOCkueCksOClguCksuCkvuCkiCDgpLjgpKfgpYjgpIIg4KSq4KS54KWB4KSB4KSaIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljVxu4KSq4KWN4KSw4KSj4KS+4KSy4KWAIOCkqOCkv+Ckr+CkqOCljeCkpOCljeCksOCko+CkleCliyDgpLLgpL7gpJfgpL8g4KSq4KWB4KSo4KSDIOCkpOCksiDgpLngpYHgpKTgpY3gpKTgpY3gpK/gpL7gpIngpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbmwvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLW5sL3N0cmluZ3MueG1sCmluZGV4IGFiNzc4MzkuLmQ0YjBkZWUgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtbmwvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1ubC9zdHJpbmdzLnhtbApAQCAtNjEsOCArNjEsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiJBbHRpamQgdG9lc3RhYW4gdmFuYWYgZGV6ZSBjb21wdXRlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+Ilpvb20gb20gc2NoZXJtIHRlIHZ1bGxlbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiJSZWsgdWl0IHYuIHNjaGVybXZ1bGxpbmciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJDb21wYXRpYmlsaXRlaXRzem9vbSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiJXYW5uZWVyIGVlbiBhcHAgaXMgb250d29ycGVuIHZvb3IgZWVuIGtsZWluZXIgc2NoZXJtLCB3b3JkdCBuYWFzdCBkZSBrbG9rIGVlbiB6b29ta25vcCB3ZWVyZ2VnZXZlbi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4iU2NyZWVuc2hvdCBvcHNsYWFuLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4iU2NyZWVuc2hvdCBvcHNsYWFuLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiJTY3JlZW5zaG90IHdvcmR0IG9wZ2VzbGFnZW4uIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IlN0YXJ0cGFnaW5hIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4iTWVudSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IlJlY2VudGUgYXBwcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+IlpvZWtlbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiJDYW1lcmEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+Iktub3Agdm9vciB3aWp6aWdlbiBpbnZvZXJtZXRob2RlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiJLbm9wIHZvb3IgY29tcGF0aWJpbGl0ZWl0c3pvb20uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiJLbGVpbmVyIHNjaGVybSB1aXR6b29tZW4gbmFhciBncm90ZXIgc2NoZXJtLiI8L3N0cmluZz4KQEAgLTE1Myw2ICsxNTMsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IkFjY3U6IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iVmxpZWdtb2R1czogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IkxvY2F0aWUgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiJBbGFybSBpcyBpbmdlc3RlbGQgb3AgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiIyRy0vM0ctZ2VnZXZlbnMgdWl0Z2VzY2hha2VsZCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHLWdlZ2V2ZW5zIHVpdGdlc2NoYWtlbGQiPC9zdHJpbmc+CkBAIC0xNjQsMTIgKzE2NSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iVmVyYm9uZGVuIHZpYSB3aWZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJab2VrZW4gbmFhciBHUFMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4iTG9jYXRpZSBiZXBhYWxkIG1ldCBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJMb2NhdGlldmVyem9la2VuIGFjdGllZiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+IkFsbGUgbWVsZGluZ2VuIHdpc3Nlbi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4iQXBwLWluZm8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IlNjaGVybSB3b3JkdCBhdXRvbWF0aXNjaCBnZXJvdGVlcmQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiJIZXQgc2NoZXJtIGlzIG51IHZlcmdyZW5kZWxkIGluIGxpZ2dlbmRlIHN0YW5kLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiJIZXQgc2NoZXJtIGlzIG51IHZlcmdyZW5kZWxkIGluIHN0YWFuZGUgc3RhbmQuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IkRlc3NlcnRzaG93Y2FzZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJEYWdkcm9vbSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiJWbGllZ21vZHVzIjwvc3RyaW5nPgpAQCAtMTk1LDExICsxOTcsMTEgQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm9fbmV0d29yayIgbXNnaWQ9IjIyMjE5OTMwNzcyMjA4NTYzNzYiPiJHZWVuIG5ldHdlcmsiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX29mZl9sYWJlbCIgbXNnaWQ9Ijc1NTg3NzgxMDA4NDM4ODU4NjQiPiJXaWZpIHVpdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9sYWJlbCIgbXNnaWQ9IjY4OTM1OTI5NjQ0NjM2MjQzMzMiPiJXaWZpLXdlZXJnYXZlIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4iRHJhYWRsb3plIGRpc3BsYXkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJEcmFhZGxvemUgd2VlcmdhdmUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiJIZWxkZXJoZWlkIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IkFVVE9NQVRJU0NIIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RpdGxlIiBtc2dpZD0iMTE5OTIzNzc0NDA4NjQ2OTIxNyI+Ik1lbGRpbmdlbiB3b3JkZW4gaGllciB3ZWVyZ2VnZXZlbiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+IlUga3VudCBkZSBtZWxkaW5nZW4gb3AgZWxrIGdld2Vuc3QgbW9tZW50IG9wZW5lbiBkb29yIG1ldCB1dyB2aW5nZXIgb21sYWFnIHRlIHZlZ2VuLlxuVmVlZyBub2dtYWFscyBtZXQgdXcgdmluZ2VyIG9tbGFhZyBvbSBkZSBzeXN0ZWVtYmVzdHVyaW5nc2VsZW1lbnRlbiB3ZWVyIHRlIGdldmVuLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+IlZlZWcgdmFuYWYgZGUgcmFuZCBvbSBiYWxrIHdlZXIgdGUgZ2V2ZW4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IlZlZWcgdmFuYWYgZGUgcmFuZCB2YW4gaGV0IHNjaGVybSBvbSBkZSBzeXN0ZWVtYmFsayB3ZWVyIHRlIGdldmVuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+Ik1vZHVzIHZvb3Iga2xldXJpbnZlcnNpZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+Ik1vZHVzIHZvb3IgdmVyYmV0ZXJkIGNvbnRyYXN0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiJNb2R1cyB2b29yIGtsZXVyY29ycmVjdGllIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiJOZXR3ZXJrIGthblxud29yZGVuIGdlY29udHJvbGVlcmQiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtcGwvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXBsL3N0cmluZ3MueG1sCmluZGV4IGM5NGNmYzguLjZhYmFlYTAgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtcGwvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1wbC9zdHJpbmdzLnhtbApAQCAtNjEsOCArNjEsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiJaYXdzemUgemV6d2FsYWogeiB0ZWdvIGtvbXB1dGVyYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IlBvd2nEmWtzeiwgYWJ5IHd5cGXFgm5pxIcgZWtyYW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iUm96Y2nEhWduaWosIGFieSB3eXBlxYJuacSHIGVrcmFuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4iUG93acSZa3N6ZW5pZSB3IHRyeWJpZSB6Z29kbm/Fm2NpIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+IkplxZtsaSBhcGxpa2FjamEgem9zdGHFgmEgcHJ6eXN0b3Nvd2FuYSBkbyBtbmllanN6ZWdvIGVrcmFudSwgb2JvayB6ZWdhcmEgem9zdGFuaWUgd3nFm3dpZXRsb255IGVsZW1lbnQgc3RlcnVqxIVjeSBwb3dpxJlrc3plbmllbS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4iWmFwaXN5d2FuaWUgenJ6dXR1IGVrcmFudS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IlphcGlzeXdhbmllIHpyenV0dSBla3JhbnUuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+IlphcGlzeXdhbmllIHpyenV0dSBla3JhbnUuIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IkVrcmFuIGfFgsOzd255Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4iTWVudSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+Ik9zdGF0bmllIGFwbGlrYWNqZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+IlN6dWthaiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiJBcGFyYXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IlByenljaXNrIHByemXFgsSFY3phbmlhIG1ldG9keSB3cHJvd2FkemFuaWEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IlByenljaXNrIHBvd2nEmWtzemVuaWEgbmEgcG90cnplYnkgemdvZG5vxZtjaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+IlBvd2nEmWtzemEgbW5pZWpzenkgZWtyYW4gZG8gd2nEmWtzemVnby4iPC9zdHJpbmc+CkBAIC0xNTMsNiArMTUzLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJCYXRlcmlhOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IlRyeWIgc2Ftb2xvdG93eTogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+Ikxva2FsaXphY2phIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4iQWxhcm0gdXN0YXdpb255IG5hIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iV3nFgsSFY3pvbm8gdHJhbnNtaXNqxJkgZGFueWNoIDJHLzNHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iV3nFgsSFY3pvbm8gdHJhbnNtaXNqxJkgZGFueWNoIDRHIjwvc3RyaW5nPgpAQCAtMTY0LDEyICsxNjUsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpOiBwb8WCxIVjem9ubyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iV3lzenVraXdhbmllIHN5Z25hxYJ1IEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJMb2thbGl6YWNqYSB6IEdQU2EiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJQcm/Fm2J5IG8gbG9rYWxpemFjasSZIHPEhSBha3R5d25lIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iVXN1xYQgd3N6eXN0a2llIHBvd2lhZG9taWVuaWEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+Ik8gYXBsaWthY2ppIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiJFa3JhbiB6b3N0YW5pZSBvYnLDs2NvbnkgYXV0b21hdHljem5pZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IkVrcmFuIGplc3QgemFibG9rb3dhbnkgdyBvcmllbnRhY2ppIHBvemlvbWVqLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiJFa3JhbiBqZXN0IHphYmxva293YW55IHcgb3JpZW50YWNqaSBwaW9ub3dlai4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4iUMOzxYJrYSB6ZSBzxYJvZGtvxZtjaWFtaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJXeWdhc3phY3ogZWtyYW51Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+IlRyeWIgc2Ftb2xvdG93eSI8L3N0cmluZz4KQEAgLTE5OCw4ICsyMDAsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4iV3nFm3dpZXRsYWN6IGJlenByemV3b2Rvd3kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiJKYXNub8WbxIciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4iQVVUT01BVFlDWk5BIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RpdGxlIiBtc2dpZD0iMTE5OTIzNzc0NDA4NjQ2OTIxNyI+IlR1dGFqIHBva2F6dWrEhSBzacSZIHBvd2lhZG9taWVuaWEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiJNb8W8ZXN6IGplIG90d29yennEhyB3IGRvd29sbmVqIGNod2lsaSwgcHJ6ZXN1d2FqxIVjIHcgZMOzxYIuXG5Qcnplc3XFhCBqZXN6Y3plIHJheiB3IGTDs8WCLCBieSBvdHdvcnp5xIcgdXN0YXdpZW5pYSBzeXN0ZW1vd2UuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4iUHJ6ZXN1xYQgcGFsY2VtIG9kIGtyYXfEmWR6aSBla3JhbnUsIGJ5IG9ka3J5xIcgcGFzZWsiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IlByemVzdcWEIHBhbGNlbSBvZCBrcmF3xJlkemkgZWtyYW51LCBieSBvZGtyecSHIHBhc2VrIHN5c3RlbXUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4iVHJ5YiBvZHdyw7NjZW5pYSBrb2xvcsOzdyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+IlRyeWIgendpxJlrc3pvbmVnbyBrb250cmFzdHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+IlRyeWIga29yZWtjamkga29sb3LDs3ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+IlNpZcSHIG1vxbxlIGJ5xIdcbm1vbml0b3Jvd2FuYSI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1wdC1yUFQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbAppbmRleCBjMTA2MzI5Li4xOTIxNTgxIDEwMDY0NAotLS0gYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXB0LXJQVC9zdHJpbmdzLnhtbApAQCAtNjEsOCArNjEsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiJQZXJtaXRpciBzZW1wcmUgYSBwYXJ0aXIgZGVzdGUgY29tcHV0YWRvciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+Ilpvb20gcGFyYSBwcmVlbmNoZXIgbyBlY3LDoyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiJFc3RpY2FyIHAuIGNhYmVyIGVtIGVjLiBpbnQuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4iWm9vbSBkZSBjb21wYXRpYmlsaWRhZGUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4iU2VtcHJlIHF1ZSB1bWEgYXBsaWNhw6fDo28gdGl2ZXIgc2lkbyBjb25jZWJpZGEgcGFyYSBlY3LDo3MgbWFpcyBwZXF1ZW5vcywgYXBhcmVjZXLDoSB1bSBjb250cm9sbyBkZSB6b29tIGp1bnRvIGFvIHJlbMOzZ2lvLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiJBIGd1YXJkYXIgY2FwdHVyYSBkZSBlY3LDoy4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IkEgZ3VhcmRhciBjYXB0dXJhIGRlIGVjcsOjLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiJBIGd1YXJkYXIgY2FwdHVyYSBkZSBlY3LDoy4iPC9zdHJpbmc+CkBAIC03OCw2ICs3Niw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4iUMOhZ2luYSBpbmljaWFsIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4iTWVudSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IkFwbGljYcOnw7VlcyByZWNlbnRlcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+IlBlc3F1aXNhciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiJDw6JtYXJhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiJBbHRlcm5hciBib3TDo28gZGUgbcOpdG9kbyBkZSBpbnRyb2R1w6fDo28uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IkJvdMOjbyB6b29tIGRlIGNvbXBhdGliaWxpZGFkZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+Ilpvb20gbWVub3IgcGFyYSBlY3LDoyBtYWlvci4iPC9zdHJpbmc+CkBAIC0xNTMsNiArMTUzLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJCYXRlcmlhIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iTW9kbyBkZSBBdmnDo28gPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4iTG9jYWxpemHDp8OjbyA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IkFsYXJtZSBkZWZpbmlkbyBwYXJhIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iT3MgZGFkb3MgMkctM0cgZXN0w6NvIGRlc2F0aXZhZG9zIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iT3MgZGFkb3MgNEcgZXN0w6NvIGRlc2F0aXZhZG9zIjwvc3RyaW5nPgpAQCAtMTY0LDEyICsxNjUsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpIGxpZ2FkbyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iQSBwcm9jdXJhciBHUFMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4iTG9jYWxpemHDp8OjbyBkZWZpbmlkYSBwb3IgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4iUGVkaWRvcyBkZSBsb2NhbGl6YcOnw6NvIGF0aXZvcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+IkxpbXBhciB0b2RhcyBhcyBub3RpZmljYcOnw7Vlcy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4iSW5mb3JtYcOnw7VlcyBkYSBhcGxpY2HDp8OjbyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4iTyBlY3LDoyBzZXLDoSByb2RhZG8gYXV0b21hdGljYW1lbnRlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iTyBlY3LDoyBlc3TDoSBibG9xdWVhZG8gbmEgb3JpZW50YcOnw6NvIGhvcml6b250YWwuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+Ik8gZWNyw6MgZXN0w6EgYmxvcXVlYWRvIG5hIG9yaWVudGHDp8OjbyB2ZXJ0aWNhbC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4iVml0cmluYSBkZSBzb2JyZW1lc2FzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IkRheWRyZWFtIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+Ik1vZG8gZGUgYXZpw6NvIjwvc3RyaW5nPgpAQCAtMTk4LDggKzIwMCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJEaXNwbGF5IFNlbSBGaW9zIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4iQnJpbGhvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IkFVVE9Nw4FUSUNPIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RpdGxlIiBtc2dpZD0iMTE5OTIzNzc0NDA4NjQ2OTIxNyI+IkFzIG5vdGlmaWNhw6fDtWVzIHPDo28gYXByZXNlbnRhZGFzIGFxdWkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiJQb2RlIGFjZWRlciBlbSBxdWFscXVlciBhbHR1cmEsIGRlc2xpemFuZG8gcmFwaWRhbWVudGUgcGFyYSBiYWl4byBjb20gbyBkZWRvLlxuRGVzbGl6ZSBub3ZhbWVudGUgcGFyYSBiYWl4byBwYXJhIGFjZWRlciBhb3MgY29udHJvbG9zIGRvIHNpc3RlbWEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4iRGVzbGl6ZSBkYSBleHRyZW1pZGFkZSBkbyBlY3LDoyBwYXJhIHJldmVsYXIgYSBiYXJyYSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlX2xvbmciIG1zZ2lkPSI3MTE3NjkyNzk1MTYzNjIwNjI2Ij4iRGVzbGl6ZSBkYSBleHRyZW1pZGFkZSBkbyBlY3LDoyBwYXJhIHJldmVsYXIgYSBiYXJyYSBkbyBzaXN0ZW1hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+Ik1vZG8gZGUgaW52ZXJzw6NvIGRlIGNvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+Ik1vZG8gZGUgY29udHJhc3RlIG1lbGhvcmFkbyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4iTW9kbyBkZSBjb3JyZcOnw6NvIGRlIGNvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iQSByZWRlIHBvZGUgc2VyXG5tb25pdG9yaXphZGEiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtcHQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXB0L3N0cmluZ3MueG1sCmluZGV4IDkxZTdmMDIuLmQ2ZTZkNmUgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtcHQvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1wdC9zdHJpbmdzLnhtbApAQCAtNjEsOCArNjEsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiJTZW1wcmUgcGVybWl0aXIgYSBwYXJ0aXIgZGVzdGUgY29tcHV0YWRvciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+Ilpvb20gcC8gcHJlZW5jaGVyIGEgdGVsYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiJBbXBsaWFyIHAvIHByZWVuY2hlciB0ZWxhIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4iWm9vbSBlbSBtb2RvIGRlIGNvbXBhdGliaWxpZGFkZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiJRdWFuZG8gdW0gYXBsaWNhdGl2byDDqSBkZXNlbnZvbHZpZG8gcGFyYSB1bWEgdGVsYSBtZW5vciwgdW0gY29udHJvbGUgZGUgem9vbSDDqSBleGliaWRvIHBlcnRvIGRvIHJlbMOzZ2lvLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiJTYWx2YW5kbyBjYXB0dXJhIGRlIHRlbGEuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiJTYWx2YW5kbyBjYXB0dXJhIGRlIHRlbGEuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+IkEgY2FwdHVyYSBkZSB0ZWxhIGVzdMOhIHNlbmRvIHNhbHZhLiI8L3N0cmluZz4KQEAgLTc4LDYgKzc2LDggQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiJQw6FnaW5hIGluaWNpYWwiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJNZW51Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iQXBsaWNhdGl2b3MgcmVjZW50ZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJQZXNxdWlzYXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4iQ8OibWVyYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4iQWx0ZXJhciBib3TDo28gZG8gbcOpdG9kbyBkZSBlbnRyYWRhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiJCb3TDo28gZGUgem9vbSBkYSBjb21wYXRpYmlsaWRhZGUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiJBdW1lbnRhciBhIHRlbGEgY29tIHpvb20uIjwvc3RyaW5nPgpAQCAtMTU1LDYgKzE1NSw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4iQmF0ZXJpYSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+Ik1vZG8gYXZpw6NvIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IkxvY2FsaXphw6fDo28gPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiJBbGFybWUgZGVmaW5pZG8gcGFyYSA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IkRhZG9zIDJHIGUgM0cgZGVzYXRpdmFkb3MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiJEYWRvcyA0RyBkZXNhdGl2YWRvcyI8L3N0cmluZz4KQEAgLTE2NiwxMiArMTY3LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaS1GaSBjb25lY3RhZG8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IkJ1c2NhbmRvIEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJMb2NhbCBkZWZpbmlkbyBwb3IgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4iU29saWNpdGHDp8O1ZXMgZGUgbG9jYWxpemHDp8OjbyBhdGl2YXMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiJMaW1wYXIgdG9kYXMgYXMgbm90aWZpY2HDp8O1ZXMuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IkluZm9ybWHDp8O1ZXMgZG8gYXBsaWNhdGl2byI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4iQSB0ZWxhIGdpcmFyw6EgYXV0b21hdGljYW1lbnRlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iQSB0ZWxhIGVzdMOhIGJsb3F1ZWFkYSBuYSBvcmllbnRhw6fDo28gcGFpc2FnZW0uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IkEgdGVsYSBlc3TDoSBibG9xdWVhZGEgbmEgb3JpZW50YcOnw6NvIHJldHJhdG8uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+Ik1vc3RydcOhcmlvIGRlIHNvYnJlbWVzYXMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iRGF5ZHJlYW0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJFdGhlcm5ldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4iTW9kbyBhdmnDo28iPC9zdHJpbmc+CkBAIC0xODQsMTAgKzE4Niw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IkdpcmFyIGF1dG9tYXQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fbG9ja2VkX2xhYmVsIiBtc2dpZD0iODA1ODY0NjQ0NzI0MjU2NTQ4NiI+IlJvdGHDp8OjbyBibG9xdWVhZGEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4iTcOpdG9kbyBkZSBlbnRyYWRhIjwvc3RyaW5nPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsICg1MDExMzI3MDQ4NzQ4NzYyMjU3KSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCAoNzQ2NDU0NDA4NjUwNzMzMTQ1OSkgLS0+Ci0gICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+IkxvY2FsaXphw6fDo28iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4iTG9jYWxpemHDp8OjbyBkZXNhdGl2YWRhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbWVkaWFfZGV2aWNlX2xhYmVsIiBtc2dpZD0iMTMwMjkwNjgzNjM3MjYwMzc2MiI+IkRpc3Bvc2l0aXZvIGRlIG3DrWRpYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4iU29tZW50ZSBjaGFtYWRhcyBkZSBlbWVyZ8OqbmNpYSI8L3N0cmluZz4KQEAgLTIwMiw4ICsyMDIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4iRGlzcGxheSBzZW0gZmlvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4iQnJpbGhvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IkFVVE8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4iQXMgbm90aWZpY2HDp8O1ZXMgYXBhcmVjZW0gYXF1aSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+IkFjZXNzZSBhIHF1YWxxdWVyIG1vbWVudG8gZGVzbGl6YW5kbyBwYXJhIGJhaXhvLlxuRGVzbGl6ZSBwYXJhIGJhaXhvIG5vdmFtZW50ZSBwYXJhIGFjZXNzYXIgb3MgY29udHJvbGVzIGRvIHNpc3RlbWEuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4iRGVzbGl6ZSBhIGJvcmRhIGRhIHRlbGEgcGFyYSB2ZXIgYSBiYXJyYSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlX2xvbmciIG1zZ2lkPSI3MTE3NjkyNzk1MTYzNjIwNjI2Ij4iRGVzbGl6ZSBhIHBhcnRpciBkYSBib3JkYSBkYSB0ZWxhIHZlciBhIGJhcnJhIGRvIHNpc3RlbWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4iTW9kbyBkZSBpbnZlcnPDo28gZGUgY29yZXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiJNb2RvIGRlIGNvbnRyYXN0ZSBhcHJpbW9yYWRvIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiJNb2RvIGRlIGNvcnJlw6fDo28gZGUgY29yIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiJBIHJlZGUgcG9kZSBlc3Rhclxuc29iIG1vbml0b3Jhw6fDo28iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtcm0vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXJtL3N0cmluZ3MueG1sCmluZGV4IGQ3NzcyZWQuLmRkNWEyMzEgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtcm0vc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1ybS9zdHJpbmdzLnhtbApAQCAtOTIsMTAgKzkyLDYgQEAKICAgICA8c2tpcCAvPgogICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGNvbXBhdF9tb2RlX29mZiAoNDQzNDQ2NzU3MjQ2MTMyNzg5OCkgLS0+CiAgICAgPHNraXAgLz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBjb21wYXRfbW9kZV9oZWxwX2hlYWRlciAoNzk2OTQ5Mzk4OTM5NzUyOTkxMCkgLS0+Ci0gICAgPHNraXAgLz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBjb21wYXRfbW9kZV9oZWxwX2JvZHkgKDQ5NDY3MjY3NzYzNTkyNzAwNDApIC0tPgotICAgIDxza2lwIC8+CiAgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Igc2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyICg3NDAzNjUyODk0MDU2NjkzNTE1KSAtLT4KICAgICA8c2tpcCAvPgogICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlICg4MjQyMjgyMTQ0NTM1NTU1Njk3KSAtLT4KQEAgLTEyNiw2ICsxMjIsMTAgQEAKICAgICA8c2tpcCAvPgogICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGFjY2Vzc2liaWxpdHlfcmVjZW50ICg4NTcxMzUwNTk4OTg3OTUyODgzKSAtLT4KICAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0ICgxMTAzODY3NTk2MzMwMjcxODQ4KSAtLT4KKyAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiAoODA2NDY3MTU4MjgyMDM1ODE1MikgLS0+CisgICAgPHNraXAgLz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uICg1MDMyOTI2MTM0NzQwNDU2NDI0KSAtLT4KICAgICA8c2tpcCAvPgogICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiAoODQ2MTExNTMxODc0MjM1MDY5OSkgLS0+CkBAIC0yNzYsNiArMjc2LDggQEAKICAgICA8c2tpcCAvPgogICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoICg1NzQ5MDU0OTcxMzQxODgyMzQwKSAtLT4KICAgICA8c2tpcCAvPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24gKDQ1NzcyODIzMjk4NjY4MTMxMDApIC0tPgorICAgIDxza2lwIC8+CiAgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSAoMzk1OTkwODk3Mjg5NzI5NTY2MCkgLS0+CiAgICAgPHNraXAgLz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSAoNTI1NzgzMzg4MTY5ODY0NDY4NykgLS0+CkBAIC0yOTgsNiArMzAwLDggQEAKICAgICA8c2tpcCAvPgogICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIGdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCAoNDYxOTI3NDI0NDE0NjQ0NjQ2NCkgLS0+CiAgICAgPHNraXAgLz4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSAoMjQyNzI5MDE0NjEzODE2OTAxNCkgLS0+CisgICAgPHNraXAgLz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCAoNTIzNTkzODU1OTI0NzE2NDkyNSkgLS0+CiAgICAgPHNraXAgLz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUgKDExNjM1NDc3MjkwMTUzOTAyNTApIC0tPgpAQCAtMzA4LDcgKzMxMiw3IEBACiAgICAgPHNraXAgLz4KICAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fcG9ydHJhaXQgKDU4MDkzNjc1MjE2NDQwMTIxMTUpIC0tPgogICAgIDxza2lwIC8+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgamVsbHlfYmVhbl9kcmVhbV9uYW1lICg1OTkyMDI2NTQzNjM2ODE2NzkyKSAtLT4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBkZXNzZXJ0X2Nhc2UgKDEyOTUxNjE3NzYyMjM5NTkyMjEpIC0tPgogICAgIDxza2lwIC8+CiAgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Igc3RhcnRfZHJlYW1zICg3MjE5NTc1ODU4MzQ4NzE5NzkwKSAtLT4KICAgICA8c2tpcCAvPgpAQCAtMzY2LDEyICszNzAsMTIgQEAKICAgICA8c2tpcCAvPgogICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCAoNTA2NDk4Mjc0Mzc4NDA3MTIxOCkgLS0+CiAgICAgPHNraXAgLz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBzdGF0dXNfYmFyX2hlbHBfdGl0bGUgKDExOTkyMzc3NDQwODY0NjkyMTcpIC0tPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCAoMTY2NjM1ODc4NDI4MzAyMDc2MikgLS0+CiAgICAgPHNraXAgLz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBzdGF0dXNfYmFyX2hlbHBfdGV4dCAoNzg3NDYwNzE1NTA1MjA3NjMyMykgLS0+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwgKDMzMTk1MDc1NTE2ODkxMDg2OTIpIC0tPgogICAgIDxza2lwIC8+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UgKDkwNTA4Njk1NDg5NTEwNDQzNzEpIC0tPgorICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsICg4NTM0NDM2ODk3NDU1ODQ3NzApIC0tPgogICAgIDxza2lwIC8+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyAoNzExNzY5Mjc5NTE2MzYyMDYyNikgLS0+CisgICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3Igc3NsX2NhX2NlcnRfd2FybmluZyAoOTAwNTk1NDEwNjkwMjA1MzY0MSkgLS0+CiAgICAgPHNraXAgLz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1yby9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtcm8vc3RyaW5ncy54bWwKaW5kZXggNDJlMmQ0OC4uNjA2YWZmMSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1yby9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXJvL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IlBlcm1pdGXFo2kgw65udG90ZGVhdW5hIGRlIHBlIGFjZXN0IGNvbXB1dGVyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4iWm9vbSBwdC4gYSB1bXBsZSBlY3JhbnVsIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+IsOObnQuIHB0LiBhIHVtcGxlIGVjcmFudWwiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJab29tIGRlIGNvbXBhdGliaWxpdGF0ZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiJBdHVuY2kgY8OibmQgbyBhcGxpY2HFo2llIGEgZm9zdCBjb25jZXB1dMSDIHBlbnRydSB1biBlY3JhbiBtYWkgbWljLCBvIGNvbWFuZMSDIHBlbnRydSBtxINyaXJlL21pY8Wfb3JhcmUgdmEgYXDEg3JlYSBhbMSDdHVyaSBkZSBjZWFzLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiJTZSBzYWx2LiBjYXB0dXJhIGRlIGVjcmFuLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4iU2Ugc2FsdmVhesSDIGNhcHR1cmEgZGUgZWNyYW4uLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+IkNhcHR1cmEgZGUgZWNyYW4gZXN0ZSBzYWx2YXTEgy4iPC9zdHJpbmc+CkBAIC03OCw2ICs3Niw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4iRWNyYW51bCBkZSBwb3JuaXJlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4iTWVuaXUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiJBcGxpY2HFo2lpIHJlY2VudGUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJDxIN1dGHIm2kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4iQ2FtZXLEgyBmb3RvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiJCdXRvbiBwZW50cnUgY29tdXRhcmVhIG1ldG9kZWkgZGUgaW50cm9kdWNlcmUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IkJ1dG9uIHpvb20gcGVudHJ1IGNvbXBhdGliaWxpdGF0ZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+IkZhY2XFo2kgem9vbSBkZSBsYSBvIGltYWdpbmUgbWFpIG1pY8SDIGxhIHVuYSBtYWkgbWFyZS4iPC9zdHJpbmc+CkBAIC0xNTMsNiArMTUzLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJCYXRlcmllIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iTW9kIEF2aW9uIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkJsdWV0b290aCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IkxvY2HIm2llOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IkFsYXJtxIMgc2V0YXTEgyBwZW50cnUgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiJEYXRlbGUgMkctM0cgYXUgZm9zdCBkZXphY3RpdmF0ZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IkRhdGVsZSA0RyBhdSBmb3N0IGRlemFjdGl2YXRlIjwvc3RyaW5nPgpAQCAtMTY0LDEyICsxNjUsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpIGNvbmVjdGF0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJTZSBjYXV0xIMgR1BTIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IkxvY2HFo2llIHNldGF0xIMgcHJpbiBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJTb2xpY2l0xINyacKgbG9jYcibaWUgYWN0aXZlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iyJh0ZXJnZcWjaSB0b2F0ZSBub3RpZmljxINyaWxlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiJJbmZvcm1hxaNpaSBkZXNwcmUgYXBsaWNhxaNpZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4iRWNyYW51bCBzZSB2YSByb3RpIMOubiBtb2QgYXV0b21hdC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IkVjcmFudWwgZXN0ZSBibG9jYXQgw65uIG9yaWVudGFyZWEgZGUgdGlwIHBlaXNhai4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fcG9ydHJhaXQiIG1zZ2lkPSI1ODA5MzY3NTIxNjQ0MDEyMTE1Ij4iRWNyYW51bCBlc3RlIGJsb2NhdCDDrm4gb3JpZW50YXJlYSBkZSB0aXAgcG9ydHJldC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4iVml0cmluYSBjdSBkdWxjaXVyaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJEYXlkcmVhbSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiJNb2QgQXZpb24iPC9zdHJpbmc+CkBAIC0xODIsMTAgKzE4NCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IlJvdGlyZSBhdXRvbWF0xIMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4iUm90aXJlIGJsb2NhdMSDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+Ik1ldG9kxIMgZGUgaW50cm9kdWNlcmUiPC9zdHJpbmc+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwgKDUwMTEzMjcwNDg3NDg3NjIyNTcpIC0tPgotICAgIDxza2lwIC8+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsICg3NDY0NTQ0MDg2NTA3MzMxNDU5KSAtLT4KLSAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwiIG1zZ2lkPSI1MDExMzI3MDQ4NzQ4NzYyMjU3Ij4iTG9jYcibaWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4iTG9jYWxpemFyZWEgZXN0ZSBkZXphY3RpdmF0xIMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4iRGlzcG96aXRpdiBtZWRpYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfbGFiZWwiIG1zZ2lkPSI3NzI1NjcxMzM1NTUwNjk1NTg5Ij4iUlNTSSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3Jzc2lfZW1lcmdlbmN5X29ubHkiIG1zZ2lkPSIyNzEzNzc0MDQxNjcyODg2NzUwIj4iTnVtYWkgYXBlbHVyaSBkZSB1cmdlbsWjxIMiPC9zdHJpbmc+CkBAIC0yMDAsOCArMjAwLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IkVjcmFuIHdpcmVsZXNzIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4iTHVtaW5veml0YXRlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IkFVVE9NQVQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4iTm90aWZpY8SDcmlsZSBzZSBhZmnFn2VhesSDIGFpY2kiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiJBY2Nlc2HFo2ktbGUgb3JpY8OibmQgZ2xpc8OibmQgw65uIGpvcy5cbkdsaXNhxaNpIMOubiBqb3MgZGluIG5vdSBwZW50cnUgY29tZW56aWxlIHNpc3RlbXVsdWkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4iR2xpc2HIm2kgZGluc3ByZSBtYXJnaW5lYSBlY3JhbnVsdWkgcGVudHJ1IGEgYWZpyJlhIGJhcmEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IkdsaXNhyJtpIGRpbnNwcmUgbWFyZ2luZWEgZWNyYW51bHVpIHBlbnRydSBhIGFmaciZYSBiYXJhIGRlIHNpc3RlbSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiJNb2QgZGUgaW52ZXJzYXJlIGEgY3Vsb3JpbG9yIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4iTW9kIGNvbnRyYXN0IMOubWJ1bsSDdMSDyJtpdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4iTW9kIGRlIGNvcmVjdGFyZSBhIGN1bG9yaWxvciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iUmXIm2VhdWEgcG9hdGVcbmZpIG1vbml0b3JpemF0xIMiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtcnUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXJ1L3N0cmluZ3MueG1sCmluZGV4IDIzM2ZlZThhOC4uN2Y3MTk4YiAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1ydS9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXJ1L3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+ItCS0YHQtdCz0LTQsCDRgNCw0LfRgNC10YjQsNGC0Ywg0L7RgtC70LDQtNC60YMg0YEg0Y3RgtC+0LPQviDQutC+0LzQv9GM0Y7RgtC10YDQsCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+ItCf0L7QtNC+0LPQvdCw0YLRjCDQv9C+INGA0LDQt9C80LXRgNCw0Lwg0Y3QutGA0LDQvdCwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+ItCg0LDRgdGC0Y/QvdGD0YLRjCDQvdCwINCy0LXRgdGMINGN0LrRgNCw0L0iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiLQnNCw0YHRiNGC0LDQsSDQuCDRgdC+0LLQvNC10YHRgtC40LzQvtGB0YLRjCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiLQldGB0LvQuCDQv9GA0LjQu9C+0LbQtdC90LjQtSDRgNCw0YHRgdGH0LjRgtCw0L3QviDQvdCwINGN0LrRgNCw0L0g0LzQtdC90YzRiNC40YUg0YDQsNC30LzQtdGA0L7Qsiwg0YDRj9C00L7QvCDRgSDRh9Cw0YHQsNC80Lgg0L/QvtGP0LLRj9GC0YHRjyDRgdGA0LXQtNGB0YLQstCwINC80LDRgdGI0YLQsNCx0LjRgNC+0LLQsNC90LjRjy4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4i0KHQvtGF0YDQsNC90LXQvdC40LUuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiLQodC+0YXRgNCw0L3QtdC90LjQtS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i0KHQvtGF0YDQsNC90LXQvdC40LUuLi4iPC9zdHJpbmc+CkBAIC03OCw2ICs3Niw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4i0JTQvtC80L7QuSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+ItCc0LXQvdGOIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4i0J3QtdC00LDQstC90LjQtSDQv9GA0LjQu9C+0LbQtdC90LjRjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+ItCf0L7QuNGB0LoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4i0JrQsNC80LXRgNCwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiLQmtC90L7Qv9C60LAg0L/QtdGA0LXQutC70Y7Rh9C10L3QuNGPINGB0L/QvtGB0L7QsdCwINCy0LLQvtC00LAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+ItCa0L3QvtC/0LrQsCDQvNCw0YHRiNGC0LDQsdC40YDQvtCy0LDQvdC40Y8gKNGA0LXQttC40Lwg0YHQvtCy0LzQtdGB0YLQuNC80L7RgdGC0LgpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiLQo9C80LXQvdGM0YjQtdC90LjQtSDQuNC30L7QsdGA0LDQttC10L3QuNGPINC00LvRjyDRg9Cy0LXQu9C40YfQtdC90LjRjyDRgdCy0L7QsdC+0LTQvdC+0LPQviDQvNC10YHRgtCwINC90LAg0Y3QutGA0LDQvdC1LiI8L3N0cmluZz4KQEAgLTE1NSw2ICsxNTUsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+ItCR0LDRgtCw0YDQtdGPOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4i0KDQtdC20LjQvCDQv9C+0LvQtdGC0LAgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGggPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+ItCU0L7RgdGC0YPQvyDQuiDQs9C10L7QtNCw0L3QvdGL0LwgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+ItCR0YPQtNC40LvRjNC90LjQuiDRg9GB0YLQsNC90L7QstC70LXQvSDQvdCwIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiLQn9C10YDQtdC00LDRh9CwINC00LDQvdC90YvRhSDQv9C+INC60LDQvdCw0LvQsNC8IDJHINC4IDNHINC+0YLQutC70Y7Rh9C10L3QsCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+ItCf0LXRgNC10LTQsNGH0LAg0LTQsNC90L3Ri9GFINC/0L4g0LrQsNC90LDQu9GDIDRHINC+0YLQutC70Y7Rh9C10L3QsCI8L3N0cmluZz4KQEAgLTE2NiwxMiArMTY3LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaS1GaSDQv9C+0LTQutC70Y7Rh9C10L3QviI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4i0J/QvtC40YHQuiBHUFMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4i0JrQvtC+0YDQtNC40L3QsNGC0Ysg0L/QviBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiLQldGB0YLRjCDQsNC60YLQuNCy0L3Ri9C1INC30LDQv9GA0L7RgdGLINC90LAg0L7Qv9GA0LXQtNC10LvQtdC90LjQtSDQvNC10YHRgtC+0L/QvtC70L7QttC10L3QuNGPIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4i0KPQtNCw0LvQuNGC0Ywg0LLRgdC1INGD0LLQtdC00L7QvNC70LXQvdC40Y8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4i0J4g0L/RgNC40LvQvtC20LXQvdC40LgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+ItCt0LrRgNCw0L0g0LHRg9C00LXRgiDQv9C+0LLQvtGA0LDRh9C40LLQsNGC0YzRgdGPINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4i0JLRi9Cx0YDQsNC90LAg0YLQvtC70YzQutC+INCw0LvRjNCx0L7QvNC90LDRjyDQvtGA0LjQtdC90YLQsNGG0LjRjyDRjdC60YDQsNC90LAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+ItCS0YvQsdGA0LDQvdCwINGC0L7Qu9GM0LrQviDQutC90LjQttC90LDRjyDQvtGA0LjQtdC90YLQsNGG0LjRjyDRjdC60YDQsNC90LAuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+ItCa0L7RgNC+0LHQutCwINGB0L4g0YHQu9Cw0LTQvtGB0YLRj9C80LgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4i0JfQsNGB0YLQsNCy0LrQsCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLQoNC10LbQuNC8INC/0L7Qu9C10YLQsCI8L3N0cmluZz4KQEAgLTE4NiwxMCArMTg4LDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX3VubG9ja2VkX2xhYmVsIiBtc2dpZD0iMzM2MDU0OTMwMzYyNTgwNTg0Ij4i0JDQstGC0L7Qv9C+0LLQvtGA0L7RgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX2xvY2tlZF9sYWJlbCIgbXNnaWQ9IjgwNTg2NDY0NDcyNDI1NjU0ODYiPiLQkNCy0YLQvtC/0L7QstC+0YDQvtGCINCy0YvQutC7LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ltZV9sYWJlbCIgbXNnaWQ9IjcwNzM0NjMwNjQzNjk0Njg0MjkiPiLQodC/0L7RgdC+0LEg0LLQstC+0LTQsCI8L3N0cmluZz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCAoNTAxMTMyNzA0ODc0ODc2MjI1NykgLS0+Ci0gICAgPHNraXAgLz4KLSAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwgKDc0NjQ1NDQwODY1MDczMzE0NTkpIC0tPgotICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCIgbXNnaWQ9IjUwMTEzMjcwNDg3NDg3NjIyNTciPiLQn9C10YDQtdC00LDRh9CwINCz0LXQvtC00LDQvdC90YvRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiLQnNC10YHRgtC+0L/QvtC70L7QttC10L3QuNC1INCy0YvQutC7LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX21lZGlhX2RldmljZV9sYWJlbCIgbXNnaWQ9IjEzMDI5MDY4MzYzNzI2MDM3NjIiPiLQoNC10LbQuNC8INC80LXQtNC40LAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2xhYmVsIiBtc2dpZD0iNzcyNTY3MTMzNTU1MDY5NTU4OSI+IlJTU0kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2VtZXJnZW5jeV9vbmx5IiBtc2dpZD0iMjcxMzc3NDA0MTY3Mjg4Njc1MCI+ItCt0LrRgdGC0YAuINCy0YvQt9C+0LIiPC9zdHJpbmc+CkBAIC0yMDQsOCArMjA0LDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IldpLUZpLdC80L7QvdC40YLQvtGAIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4i0K/RgNC60L7RgdGC0YwiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4i0JDQktCi0J7QndCQ0KHQotCg0J7QmdCa0JAiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4i0K3RgtC+INC/0LDQvdC10LvRjCDRg9Cy0LXQtNC+0LzQu9C10L3QuNC5Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4i0JXQtSDQvNC+0LbQvdC+INC+0YLQutGA0YvRgtGMLCDQv9GA0L7Qu9C40YHRgtC90YPQsiDRjdC60YDQsNC9INCy0L3QuNC3Llxu0KfRgtC+0LHRiyDQvtGC0LrRgNGL0YLRjCDQvdCw0YHRgtGA0L7QudC60LgsINC/0YDQvtCy0LXQtNC40YLQtSDQv9Cw0LvRjNGG0LXQvCDQstC90LjQtyDQtdGJ0ZEg0YDQsNC3LiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+ItCn0YLQvtCx0Ysg0L7RgtC60YDRi9GC0Ywg0L/QsNC90LXQu9GMLCDQv9GA0L7QstC10LTQuNGC0LUg0L/QsNC70YzRhtC10Lwg0L7RgiDQutGA0LDRjyDQuiDRhtC10L3RgtGA0YMg0Y3QutGA0LDQvdCwIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiLQp9GC0L7QsdGLINC+0YLQutGA0YvRgtGMINC/0LDQvdC10LvRjCDQvdCw0LLQuNCz0LDRhtC40LgsINC/0YDQvtCy0LXQtNC40YLQtSDQv9Cw0LvRjNGG0LXQvCDQvtGCINC60YDQsNGPINC6INGG0LXQvdGC0YDRgyDRjdC60YDQsNC90LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4i0JjQvdCy0LXRgNGB0LjRjyDRhtCy0LXRgtCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4i0JrQvtC90YLRgNCw0YHRgtC90L7RgdGC0YwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+ItCa0L7RgNGA0LXQutGG0LjRjyDRhtCy0LXRgtCwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiLQlNC10LnRgdGC0LLQuNGPINCyINGB0LXRgtC4XG7QvNC+0LPRg9GCINC+0YLRgdC70LXQttC40LLQsNGC0YzRgdGPIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXNpLWxhbmQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXNpLWxhbmQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVhYmEyYQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtc2ktbGFuZC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJ0b2FzdF9yb3RhdGlvbl9sb2NrZWQiIG1zZ2lkPSI3NjA5NjczMDExNDMxNTU2MDkyIj4i4Lat4LeS4La74La6IOC2r+C3kOC2seC3iiDgtq3gt5Lgtrvgt4Pgt4og4Lav4LeS4LeB4LeP4Lax4Lat4LeS4La6IOC2heC2nOC3lOC3heC3lCDgtq/gtrjgt48g4LaH4LatLiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1zaS1yTEstbGFuZC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtc2ktckxLLWxhbmQvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVhYmEyYQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtc2ktckxLLWxhbmQvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0idG9hc3Rfcm90YXRpb25fbG9ja2VkIiBtc2dpZD0iNzYwOTY3MzAxMTQzMTU1NjA5MiI+IuC2reC3kuC2u+C2uiDgtq/gt5DgtrHgt4og4Lat4LeS4La74LeD4LeKIOC2r+C3kuC3geC3j+C2seC2reC3kuC2uiDgtoXgtpzgt5Tgt4Xgt5Qg4Lav4La44LePIOC2h+C2rS4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtc2ktckxLL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1zaS1yTEsvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRhY2NkMQotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtc2ktckxLL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjA2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTY0OTM3MzQ0ODUwMDA0NDY2Ij4i4La04Lav4LeK4Law4Lat4LeSIFVJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9jbGVhcl9hbGxfYnV0dG9uIiBtc2dpZD0iNzc3NDcyMTM0NDcxNjczMTYwMyI+IuC3hOC3kuC3g+C3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9yZW1vdmVfaXRlbV90aXRsZSIgbXNnaWQ9IjYwMjYzOTU4NjgxMjk4NTI5NjgiPiLgtr3gt5Dgtrrgt5Lgt4Pgt4rgtq3gt5Tgt4Dgt5ngtrHgt4og4LaJ4LeA4Lat4LeKIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9Ijc3OTM2MjQ4NjQ1Mjg4MTg1NjkiPiLgtrrgt5ngtq/gt5Tgtrjgt4og4Lat4Lec4La74Lat4LeU4La74LeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19yZWNlbnRfYXBwcyIgbXNnaWQ9IjY1NzYzOTI5NTEwNTM5OTQ2NDAiPiLgtrjgt5Hgtq0g4LaL4La04LeP4LaC4LacIOC2seC3kOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9kaXNtaXNzX3JlY2VudHMiIG1zZ2lkPSI0NTc2MDc2MDc1MjI2NTQwMTA1Ij4i4La44LeR4LatIOC2uuC3meC2r+C3lOC2uOC3iiDgtongt4Dgtq3gtr3gtrHgt4rgtrEiPC9zdHJpbmc+CisgIDxwbHVyYWxzIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9yZWNlbnRfYXBwcyI+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NTQxNzYwODM4NjU4NDU1NDEiPiLgtrjgt5Hgtq0g4La64LeZ4Lav4LeU4La44LeKIDEg4Laa4LeKIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMDQwNzg0MzU5Nzk0ODkwNzQ0Ij4i4La44LeR4LatIOC2uuC3meC2r+C3lOC2uOC3iiAlZCDgtprgt4oiPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX25vdGlmaWNhdGlvbnNfdGl0bGUiIG1zZ2lkPSI0NzU1MjYxMTY3MTkzODMzMjEzIj4i4Lav4LeQ4Lax4LeU4La44LeK4Lav4LeT4La44LeKIOC2seC3kOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfb25nb2luZ19ldmVudHNfdGl0bGUiIG1zZ2lkPSIxNjgyNTA0NTEzMzE2ODc5MjAyIj4i4Lav4LeQ4Lax4LanIOC2tOC3gOC2reC3kuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbGF0ZXN0X2V2ZW50c190aXRsZSIgbXNnaWQ9IjY1OTQ3Njc0Mzg1Nzc1OTMxNzIiPiLgtq/gt5DgtrHgt5Tgtrjgt4rgtq/gt5Pgtrjgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd190aXRsZSIgbXNnaWQ9IjI3ODMxMDQ4MDc1NTEyMTE2MzkiPiLgtoXgtrvgt53gtrTgtprgtrrgtqcg4LeD4La44LeK4La24Lax4LeK4LawIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3N1YnRpdGxlIiBtc2dpZD0iMTc1MjA0MDA2MjA4NzgyOTE5NiI+IuC2tuC3kOC2p+C2u+C3kuC2uiDgtoXgtqngt5Qg4LeA4LeZ4La44LeS4Lax4LeKIOC2tOC3gOC2reC3ky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19wZXJjZW50X2Zvcm1hdCIgbXNnaWQ9IjEwNzcyNDQ5NDkzMTgyNjE3NjEiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZCUlPC94bGlmZjpnPiDgtprgt4og4LaJ4Lat4LeS4La74LeS4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZF9jaGFyZ2VyIiBtc2dpZD0iNDU0OTEwNTk5Njc0MDUyMjUyMyI+IlVTQiDgtobgtrvgt53gtrTgtqvgtrog4LeD4LeE4La6IOC2seC3nOC2r+C2muC3iuC3gOC2uuC3ki5cbuC3g+C2tOC2uuC2sSDgtr3gtq8g4LaG4La74Led4La04Laa4La6IOC2tOC2uOC2q+C2muC3iiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImJhdHRlcnlfbG93X3doeSIgbXNnaWQ9IjcyNzkxNjk2MDk1MTgzODYzNzIiPiLgtrbgt5Dgtqfgtrvgt5Ig4La34LeP4LeA4LeS4Lat4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zZXR0aW5nc19idXR0b24iIG1zZ2lkPSIzMDIzODg5OTE2Njk5MjcwMjI0Ij4i4LeD4LeQ4Laa4LeD4LeT4La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc193aWZpX2J1dHRvbiIgbXNnaWQ9IjE3MzM5MjgxNTE2OTgzMTE5MjMiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0ODc5ODc5Njk4NTAwOTU1MzAwIj4i4LaF4LeE4LeD4LeK4La64LeP4Lax4LePIOC2huC2muC3j+C2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19yb3RhdGlvbiIgbXNnaWQ9IjM3OTA0ODI1NDEzNTc3OTg0MjEiPiLgt4Pgt4rgt4DgtrrgtoLgtprgt4rigI3gtrvgt5Pgtrrgt4At4La34LeK4oCN4La74La44Lar4La6IOC3gOC2sSDgtq3gt5LgtrvgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX211dGVfbGFiZWwiIG1zZ2lkPSI1NTQ2ODI1NDk5MTc0MjkzOTYiPiLgtrHgt5Lgt4Hgt4rgt4Hgtrbgt4rgtq8g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MTE0NTM2MTQ5NjIzMjQ2NzQiPiLgt4Pgt4rgt4DgtrrgtoLgtprgt4rigI3gtrvgt5PgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX25vdGlmaWNhdGlvbnMiIG1zZ2lkPSIzOTcxNDYxNzYyODA5MDUxMzciPiLgtq/gt5DgtrHgt5Tgtrjgt4rgtq/gt5Pgtrjgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4i4La24LeK4La94LeW4Lan4LeW4Lat4LeKIOC2p+C3meC2r+C2u+C3iiDgtprgtrvgt48iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2lucHV0X21ldGhvZF9zZXR0aW5nc19jb25maWd1cmVfaW5wdXRfbWV0aG9kcyIgbXNnaWQ9IjM1MDQyOTI0NzE1MTIzMTc4MjciPiLgtobgtq/gt4/gtrEg4Laa4LeK4oCN4La74La4IOC3g+C2muC3g+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfdXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNzU1MTkwMzA4NDQxNjA1NzgxMCI+IuC2t+C3nuC2reC3kuC2miDgtrrgtq3gt5Tgtrvgt5Qg4La04LeU4LeA4La74LeU4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjgzNDY5ODAwMTI3MTU2MjA1NyI+IlVTQiDgtovgtrTgt4/gtoLgtpzgtrog4La04LeK4oCN4La74LeA4Lea4LeBIOC2muC3kuC2u+C3k+C2uOC2pyA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeA4LeP4LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI1MTcxNzc1NDExMTc4ODY1NzUwIj4iVVNCIOC2uOC3meC3gOC2veC2uCDgtrTgt4rigI3gtrvgt4Dgt5rgt4Eg4Laa4LeS4La74LeT4La44LanIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4g4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4Dgt4/gtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RldmljZV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjUxNjEyMDUyNTg2MzUyNTMyMDYiPiLgtrjgt5ngtrggVVNCIOC2i+C2tOC3j+C2guC2nOC2uiDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeS4LanIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g4LeA4LeS4LeA4LeY4LatIOC2muC2u+C2seC3iuC2seC2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iMzgwODk4NDkzMTgzMDIyOTg4OCI+IuC2uOC3meC2uCBVU0Ig4La44LeZ4LeA4La94La44LanIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgt4Dgt5Mg4LaH4Lat4LeSIOC3gOC3kuC2pyA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+IOC3gOC3kuC3gOC3mOC2rSDgtprgtrvgtrHgt4rgtrHgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV91cmlfcHJvbXB0IiBtc2dpZD0iNTEzNDUwNjIxNDEzNzMzMzQzIj4i4La44LeZ4La4IFVTQiDgtrjgt5ngt4Dgtr3gtrgg4LeD4La44LacIOC2muC3iuKAjeC2u+C3kuC2uuC3jyDgtprgtrvgtrEg4LeD4LeK4Lau4LeP4La04LeS4LatIOC2uuC3meC2r+C3lOC2uOC3iiDgtrHgt5zgtrjgt5Dgtq0uIDx4bGlmZjpnIGlkPSJVUkwiPiUxJHM8L3hsaWZmOmc+IOC3gOC2veC3kuC2seC3iiDgtrjgt5ngtrgg4La44LeZ4LeA4La94La4IOC2nOC3kOC2sSDgtq3gt4Ag4Lav4LeQ4Lax4Lac4Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idGl0bGVfdXNiX2FjY2Vzc29yeSIgbXNnaWQ9IjQ5NjYyNjUyNjM0NjUxODEzNzIiPiJVU0Ig4La44LeZ4LeA4La94La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGFiZWxfdmlldyIgbXNnaWQ9IjYzMDQ1NjU1NTMyMTgxOTI5OTAiPiLgtrTgt5ngtrHgt5TgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2RldmljZSIgbXNnaWQ9IjE0NTAyODc0MzcwMTczMTU5MDYiPiLgtrjgt5ngtrggVVNCIOC2i+C2tOC3j+C2guC2nOC2uiDgt4PgtrPgt4Tgt48g4LeD4LeU4La04LeU4La74LeU4Lav4LeK4Lav4LeZ4Lax4LeKIOC2t+C3j+C3gOC3kuC2reC3jyDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhbHdheXNfdXNlX2FjY2Vzc29yeSIgbXNnaWQ9IjEyMTA5NTQ1NzY5Nzk2MjE1OTYiPiLgtrjgt5ogVVNCIOC2uOC3meC3gOC2veC2uCDgt4PgtrPgt4Tgt48g4LeD4LeU4La04LeU4La74LeU4Lav4LeK4Lav4LeZ4Lax4LeKIOC2t+C3j+C3gOC3kuC2reC3jyDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ190aXRsZSIgbXNnaWQ9IjQ1MTM5MTgzOTMzODcxNDE5NDkiPiJVU0Ig4Lax4LeS4Lav4Lec4LeD4LeK4Laa4La74Lar4La64LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrHgt4Dgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+IuC2uOC3meC2uCDgtrTgtrvgt5Lgtpzgtqvgtprgtrrgt5ogUlNBIOC2uuC2reC3lOC2u+C3lCDgtofgtp/gt5Lgtr3gt5Ig4LeD4Lan4LeE4LaxIOC3gOC2seC3iuC2seC3mjpcbjx4bGlmZjpnIGlkPSJGSU5HRVJQUklOVCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IuC3g+C3kOC2uCDgt4Dgt5Lgtqfgtrgg4La44LeZ4La4IOC2tOC2u+C3kuC2nOC2q+C2muC2uuC3meC2seC3iiDgtongtqkg4La94La24LePIOC2r+C3meC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IuC2reC3kuC2u+C2uiDgtrTgt5Lgtrvgt4Dgt5Pgtrjgtqcg4LeA4LeS4LeB4LeP4La94Lax4La6IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLgtq3gt5Lgtrvgtrog4La04LeS4La74LeA4LeT4La44LanIOC2heC2r+C3kuC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiLgtq3gt5Lgtrsg4La74LeU4LeAIOC3g+C3lOC2u+C2muC3kuC2uOC3kuC2seC3iuKApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IuC2reC3kuC2uyDgtrvgt5Tgt4Ag4LeD4LeU4La74LeQ4Laa4LeZ4La44LeS4Lax4LeKIOC2tOC3gOC2reC3k+KApiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i4Lat4LeS4La7IOC2u+C3lOC3gCDgt4Pgt5Tgtrvgt5Dgtprgt5ngtrjgt5LgtrHgt4og4La04LeA4Lat4LeTLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2ZWRfdGl0bGUiIG1zZ2lkPSI2NDYxODY1OTYwOTYxNDE0OTYxIj4i4Lat4LeS4La7IOC2u+C3lOC3gCDgtpzgt4rigI3gtrvgt4Tgtqvgtrog4Laa4La74LaxIOC2veC2r+C3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RleHQiIG1zZ2lkPSIxMTUyODM5NjQ3Njc3NTU4ODE1Ij4i4LaU4La24Lac4LeaIOC2reC3kuC2uyDgtrvgt5Tgt4Ag4La24LeQ4La94LeT4La44LanIOC3g+C3iuC2tOC2u+C3iuC3gSDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGl0bGUiIG1zZ2lkPSI3MDU3ODExMTY3NDY5MjI3NzEiPiLgtq3gt5Lgtrsg4La74LeU4LeAIOC2nOC3iuKAjeC2u+C3hOC2q+C2uiDgtprgt5Lgtrvgt5Pgtrjgtqcg4Lax4Lec4LeE4LeQ4Laa4LeSIOC3gOC3kuC2ui4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X2ZhaWxlZF90ZXh0IiBtc2dpZD0iODEzNDAxMTI2OTU3MjQxNTQwMiI+IuC2reC3kuC2uyDgtrvgt5Tgt4Ag4LeD4LeU4La74LeQ4Laa4LeT4La44LanIOC2seC3nOC3hOC3kOC2muC3kiDgt4Dgt5LgtrouIOC2huC2oOC2uuC2seC2uiDgtrfgt4/gt4Dgt5Lgtq3gt4/gt4Dgt5og4Lat4LeS4La24LeZ4Lax4LeA4LePIOC3gOC3kuC2uiDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX3ByZWZlcmVuY2VfdGl0bGUiIG1zZ2lkPSI2NTUxMDUwMzc3Mzg4ODgyNzg3Ij4iVVNCIOC2nOC3nOC2seC3lCDgt4Tgt5Tgt4Dgtrjgt4/gtrvgt5Qg4LeA4LeS4Laa4La94LeK4La0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNlX210cF9idXR0b25fdGl0bGUiIG1zZ2lkPSI0MzMzNTA0NDEzNTYzMDIzNjI2Ij4i4La44Law4LeK4oCN4La6IOC2sOC3j+C3gOC2muC2uuC2muC3iiAoTVRQKSDgtr3gt5ngt4Mg4LeD4LeA4LeSIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9wdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNzUxNzEyNzU0MDMwMTYyNTc1MSI+IuC2muC3kOC2uOC2u+C3j+C3gOC2muC3iiAoUFRQKSDgtr3gt5ngt4Mg4LeD4LeA4LeSIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxlcl9jZF9idXR0b25fdGl0bGUiIG1zZ2lkPSIyMzEyNjY3NTc4NTYyMjAxNTgzIj4iTWFjIOC3g+C2s+C3hOC3jyBBbmRyb2lkIOC2nOC3nOC2seC3lCDgt4Tgt5Tgt4Dgtrjgt4/gtrvgt5Qg4La64LeZ4Lav4LeU4La4IOC3g+C3iuC2ruC3j+C2tOC2seC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhY2siIG1zZ2lkPSI1NjcwMTE1Mzg5OTQ0MjkxMjAiPiLgtobgtrTgt4Pgt5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4i4La44LeU4La94LeKIOC2tOC3kuC2p+C3lOC3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+IuC2uOC3meC2seC3lOC3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IuC2uOC3keC2rSDgtrrgt5ngtq/gt5Tgtrjgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IuC2huC2r+C3j+C2sSDgtprgt4rigI3gtrvgtrjgtrog4La44LeP4La74LeUIOC2muC3kuC2u+C3k+C2uOC3miDgtrbgt5zgtq3gt4rgtq3gtrguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IuC2nOC3kOC3heC2tOC3meC2sSDgt4Dgt5Lgt4Hgt4/gtr3gtrEg4La24Lec4Lat4LeK4Lat4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4i4LeA4LeS4LeB4LeP4La9IOC2reC3kuC2u+C2uiDgt4Dgt5ngtq0g4Laa4LeU4Lap4LeP4LeAIOC3gOC3kuC3geC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfY29ubmVjdGVkIiBtc2dpZD0iMjcwNzAyNzYzMzI0Mjk4MzM3MCI+IuC2tuC3iuC2veC3luC2p+C3luC2reC3iiDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgt5Lgtq3gtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfZGlzY29ubmVjdGVkIiBtc2dpZD0iNzQxNjY0ODY2OTk3Njg3MDE3NSI+IuC2tuC3iuC2veC3luC2p+C3luC2reC3iiDgt4Dgt5Lgt4PgtrHgt4rgtrDgt5Ig4Laa4La7IOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2JhdHRlcnkiIG1zZ2lkPSIzNTgzNDMwMjIzNTI4MjA5NDYiPiLgtrbgt5Dgtqfgtrvgt5Lgtrog4Lax4LeQ4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9vbmVfYmFyIiBtc2dpZD0iNzc3NDg4NzcyMTg5MTA1NzUyMyI+IuC2tuC3kOC2p+C2u+C3kuC2uiDgtq3gt5Pgtrvgt5Qg4LaR4Laa4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV90d29fYmFycyIgbXNnaWQ9Ijg1MDA2NTA0Mzg3MzUwMDk5NzMiPiLgtrbgt5Dgtqfgtrvgt5Lgtrog4Lat4LeT4La74LeUIOC2r+C3meC2muC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfdGhyZWVfYmFycyIgbXNnaWQ9IjIzMDI5ODMzMzA4NjUwNDA0NDYiPiLgtrbgt5Dgtqfgtrvgt5Lgtrog4Lat4LeT4La74LeUIOC2reC3lOC2seC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfZnVsbCIgbXNnaWQ9Ijg5MDkxMjI0MDE3MjAxNTg1ODIiPiLgtrbgt5Dgtqfgtrvgt5Lgtrog4La04LeS4La74LeTIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3Bob25lIiBtc2dpZD0iNDg5NDcwODkzNzA1MjYxMTI4MSI+IuC2r+C3lOC2u+C2muC2ruC2seC2uuC2muC3iiDgtrHgt5Dgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9vbmVfYmFyIiBtc2dpZD0iNjg3Njk5Mjc4MTMyNjY0MTE1Ij4i4Lav4LeU4La74Laa4Lau4Lax4La6IOC2reC3k+C2u+C3lCDgtpHgtprgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV90d29fYmFycyIgbXNnaWQ9IjgzODQ5MDUzODI4MDQ4MTUyMDEiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrog4Lat4LeT4La74LeUIOC2r+C3meC2muC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3RocmVlX2JhcnMiIG1zZ2lkPSI4NTIxOTA0ODQzOTE5OTcxODg1Ij4i4Lav4LeU4La74Laa4Lau4Lax4La6IOC2reC3k+C2u+C3lCDgtq3gt5TgtrHgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV9zaWduYWxfZnVsbCIgbXNnaWQ9IjY0NzE4MzQ4Njg1ODA3NTc4OTgiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrrgt5og4LeD4LaC4Lal4LeP4LeAIOC2tOC3kuC2u+C3kyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19kYXRhIiBtc2dpZD0iNDc5MTk2NjI5NTA5Njg2NzU1NSI+IuC2r+C2reC3iuC2rSDgtrHgt5Dgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX29uZV9iYXIiIG1zZ2lkPSIxNDE1NjI1ODMzMjM4MjczNjI4Ij4i4Lav4Lat4LeK4LatIOC2reC3k+C2u+C3lCDgtpHgtprgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3R3b19iYXJzIiBtc2dpZD0iNjE2NjAxODQ5MjM2MDQzMjA5MSI+IuC2r+C2reC3iuC2rSDgtq3gt5Pgtrvgt5QgMi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfdGhyZWVfYmFycyIgbXNnaWQ9IjkxNjc2NzA0NTIzOTUwMzg1MjAiPiLgtq/gtq3gt4rgtq0g4Lat4LeT4La74LeUIDMuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3NpZ25hbF9mdWxsIiBtc2dpZD0iMjcwODM4NDYwODEyNDUxOTM2OSI+IuC2r+C2reC3iuC2rSDgt4PgtoLgtqXgt4/gt4Ag4La04LeS4La74LeTIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb2ZmIiBtc2dpZD0iMzE3NzM4MDI5NjY5NzkzMzYyNyI+IldpZmkg4LaF4Laa4LeK4oCN4La74LeS4La64La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fd2lmaSIgbXNnaWQ9IjE0MjU0NzY1NTE4Mjc5MjQ0NzQiPiJXaWZpIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgtrsg4Lax4Lec4La44LeQ4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9vbmVfYmFyIiBtc2dpZD0iNzczNTg5MzE3ODAxMDcyNDM3NyI+IldpZmkg4Lat4LeT4La74LeUIOC2keC2muC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfdHdvX2JhcnMiIG1zZ2lkPSI0OTk0Mjc0MjUwNDk3MjYyNDM0Ij4iV2lmaSDgtq3gt5Pgtrvgt5Qg4Lav4LeZ4Laa4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90aHJlZV9iYXJzIiBtc2dpZD0iMzQ5NTc1NTA0NDI3NjU4ODM4NCI+IldpRmkg4Lat4LeT4La74LeUIOC2reC3lOC2seC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2ODUzNTYxMzAzNTg2NDgwMzc2Ij4iV2lmaSDgt4PgtoLgtqXgt4/gt4Ag4La04LeS4La74LeTIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpbWF4IiBtc2dpZD0iNDMyOTE4MDEyOTcyNzYzMDM2OCI+IldpTUFYIOC2seC3kOC2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X29uZV9iYXIiIG1zZ2lkPSI0MTcwOTk0Mjk5MDExODYzNjQ4Ij4iV2lNQVgg4Lat4LeT4La74LeUIOC2keC2muC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpbWF4X3R3b19iYXJzIiBtc2dpZD0iOTE3NjIzNjg1ODMzNjUwMjI4OCI+IldpTUFYIOC2reC3k+C2u+C3lCDgtq/gt5ngtprgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90aHJlZV9iYXJzIiBtc2dpZD0iNjExNjU1MTYzNjc1MjEwMzkyNyI+IldpTUFYIOC2reC3k+C2u+C3lCDgtq3gt5TgtrHgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3NjgwODk5ODY3OTU1Nzk1NTgiPiJXaU1BWCDgt4PgtoLgtqXgt4/gt4Ag4La04LeS4La74LeTIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpZ25hbCIgbXNnaWQ9IjcwNjQ2NDUzMjA3ODI1ODUxNjciPiLgt4PgtoLgtqXgt48g4Lax4LeQ4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90X2Nvbm5lY3RlZCIgbXNnaWQ9IjYzOTUzMjYyNzYyMTM0MDI4ODMiPiLgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeTIOC2seC3kOC2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3plcm9fYmFycyIgbXNnaWQ9IjM4MDYwNjAyMjQ0NjcwMjc4ODciPiLgtq3gt5Pgtrvgt5Qg4LeB4LeU4Lax4LeK4oCN4La64La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfb25lX2JhciIgbXNnaWQ9IjE2ODU3MzAxMTMxOTIwODE4OTUiPiLgtq3gt5Pgtrvgt5Qg4LaR4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHdvX2JhcnMiIG1zZ2lkPSI2NDM3MzYzNjQ4Mzg1MjA2Njc5Ij4i4Lat4LeT4La74LeUIOC2r+C3meC2muC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3RocmVlX2JhcnMiIG1zZ2lkPSIyNjQ4MjQxNDE1MTE5Mzk2NjQ4Ij4i4Lat4LeT4La74LeUIOC2reC3lOC2seC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NpZ25hbF9mdWxsIiBtc2dpZD0iOTEyMjkyMjg4NjUxOTY3NjgzOSI+IuC3g+C2guC2peC3j+C3gCDgtrTgt5Lgtrvgt5Mg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vbiIgbXNnaWQ9IjIzODUyNTQ2OTM2MjQzNDUyNjUiPiLgt4Pgtprgt4rigI3gtrvgt5Pgtrrgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX29mZiIgbXNnaWQ9IjY0NzU1MDgxNTc3ODY4NTMxNTciPiLgtoXgtprgt4rigI3gtrvgt5Lgtrog4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19jb25uZWN0ZWQiIG1zZ2lkPSI4MzY2MjU2NjkzNzE5NDk5NjY1Ij4i4LeD4La44LeK4La24Lax4LeK4Law4LeS4Lat4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2dwcnMiIG1zZ2lkPSIxNjA2NDc3MjI0NDg2NzQ3NzUxIj4iR1BSUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzF4IiBtc2dpZD0iOTk0MTMzNDY4MTIwMjQ0MDE4Ij4iMSBYIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25faHNwYSIgbXNnaWQ9IjIwMzIzMjg4NTU0NjI2NDUxOTgiPiJIU1BBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fM2ciIG1zZ2lkPSI4NjI4NTYyMzA1MDAzNTY4MjYwIj4iM0ciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8zLjVnIiBtc2dpZD0iODY2NDg0NTYwOTk4MTY5MjAwMSI+IjMuNUciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl80ZyIgbXNnaWQ9Ijc3NDEwMDA3NTA2MzAwODk2MTIiPiI0RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2x0ZSIgbXNnaWQ9IjU0MTM0Njg4MDg2Mzc1NDA2NTgiPiJMVEUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9jZG1hIiBtc2dpZD0iNjEzMjY0ODE5Mzk3ODgyMzAyMyI+IkNETUEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9yb2FtaW5nIiBtc2dpZD0iNTk3NzM2MjMzMzQ2NjU1NjA5NCI+IuC2u+C3neC2uOC3kuC2giI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2VkZ2UiIG1zZ2lkPSI0NDc3NDU3MDUxNjMxOTc5Mjc4Ij4iRWRnZSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX3dpZmkiIG1zZ2lkPSIyMzI0NDk2NzU2NTkwNjQ1MjIxIj4iV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpbSIgbXNnaWQ9IjgyNzQwMTcxMTg0NzI0NTUxNTUiPiJTSU0g4Lax4LeQ4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX3RldGhlciIgbXNnaWQ9IjQxMDI3ODQ0OTgxNDAyNzE5NjkiPiLgtrbgt4rgtr3gt5bgtqfgt5bgtq3gt4og4Lan4LeZ4Lav4La74LeS4Lax4LeKLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYWlycGxhbmVfbW9kZSIgbXNnaWQ9IjgzNDc0ODk5OTc5MDc2MzA5MiI+IuC2heC3hOC3g+C3iuC2uuC3j+C2seC3jyDgtobgtprgt4/gtrvgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X2xldmVsIiBtc2dpZD0iNzQ1MTQ3NDE4NzExMzM3MTk2NSI+IuC2tuC3kOC2p+C2u+C3kiDgtrTgt4rigI3gtrvgtq3gt5Lgt4Hgtq3gtrogPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI3OTk1ODM5MTEyMzE4OTMzODAiPiLgtrTgtq/gt4rgtrDgtq3gt5Ig4LeD4LeQ4Laa4LeD4LeT4La44LeKLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uc19idXR0b24iIG1zZ2lkPSI0NDk4MDAwMzY5Nzc5NDIxODkyIj4i4Lav4LeQ4Lax4LeU4La44LeK4Lav4LeT4La44LeKLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVtb3ZlX25vdGlmaWNhdGlvbiIgbXNnaWQ9IjM2MDMwOTk1MTQ5MDIxODIzNTAiPiLgtq/gt5DgtrHgt5Tgtrjgt4rgtq/gt5Pgtrgg4LeE4LeS4LeD4LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19lbmFibGVkIiBtc2dpZD0iMzUxMTQ2OTQ5OTI0MDEyMzAxOSI+IkdQUyDgt4Pgtrbgtr0g4Laa4La7IOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2dwc19hY3F1aXJpbmciIG1zZ2lkPSI4OTU5MzMzMzUxMDU4OTY3MTU4Ij4iR1BTIOC2veC2tuC3jyDgtpzgtrHgt5Lgtrjgt5LgtrHgt4ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90dHlfZW5hYmxlZCIgbXNnaWQ9IjQ2MTMyMDAzNjUzNzk0MjY1NjEiPiJUZWxlVHlwZXdyaXRlciDgtprgt4rigI3gtrvgt5Lgtrrgt4/gtq3gt4rgtrjgtprgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfdmlicmF0ZSIgbXNnaWQ9IjY2NjU4NTM2MzM2NDE1NTA1NSI+IuC3hOC2rCDgtrHgtp/gtrHgtrog4Laa4La44LeK4La04Lax4La6IOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Jpbmdlcl9zaWxlbnQiIG1zZ2lkPSI5MDYxMjQzMzA3OTM5MTM1MzgzIj4i4LeE4LasIOC2seC2n+C2seC2uiDgtrHgt5Lgt4Hgt4rgt4Hgtrbgt4rgtq/gtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnRzX2l0ZW1fZGlzbWlzc2VkIiBtc2dpZD0iNjgwMzU3NDkzNTA4NDg2NzA3MCI+Ijx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiDgtoXgt4Pgt4og4Laa4La7IOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdGlmaWNhdGlvbl9kaXNtaXNzZWQiIG1zZ2lkPSI4NTQyMTEzODcxODYzMDY5MjciPiLgtq/gt5DgtrHgt5Tgtrjgt4rgtq/gt5Pgtrgg4Lax4LeS4LeC4LeK4La04LeK4oCN4La74La34LePIOC2muC2u+C2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfbm90aWZpY2F0aW9uX3NoYWRlIiBtc2dpZD0iNDY5MDI3NDg0NDQ0NzUwNDIwOCI+IuC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC3iiDgtobgt4DgtrvgtqvgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3F1aWNrX3NldHRpbmdzIiBtc2dpZD0iNjE4NjM3ODQxMTU4MjQzNzA0NiI+IuC2muC3iuC3guC2q+C3kuC2miDgt4Pgt5Dgtprgt4Pgt5Pgtrjgt4ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3JlY2VudF9hcHBzIiBtc2dpZD0iOTAxNDAzMjkxNjQxMDU5MDAyNyI+IuC2uOC3keC2rSDgtprgt4/gtr3gt5PgtrEg4La64LeZ4Lav4LeU4La44LeKLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfdXNlciIgbXNnaWQ9IjExMDQ4NDY2OTk4Njk0NzY4NTUiPiLgtrTgtrvgt5Lgt4Hgt5Pgtr3gtprgtrrgt48gPHhsaWZmOmcgaWQ9IlVTRVIiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3dpZmkiIG1zZ2lkPSI2MDk5NzgxMDMxNjY5NzI4NzA5Ij4iPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJORVRXT1JLIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbW9iaWxlIiBtc2dpZD0iNDg3NjgwNjU2NDA4NjI0MTM0MSI+IuC2ouC2guC2nOC2uCA8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9IlRZUEUiPiUyJHM8L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTMkczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IuC2tuC3kOC2p+C2u+C3kuC2uiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IuC2heC3hOC3g+C3iuC2uuC3j+C2seC3jyDgtobgtprgt4/gtrvgtrogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4i4La24LeK4La94LeW4Lan4LeW4Lat4LeKIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4iPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPiDgt4PgtrPgt4Tgt48g4LeD4LeT4Lax4LeU4LeAIOC3g+C2muC3g+C3iiDgtprgtrsg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IjJHLTNHIOC2r+C2reC3iuC2rSDgtoXgtrbgtr0g4Laa4La7IOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHIOC2r+C2reC3iuC2rSDgtoXgtrbgtr0g4Laa4La74LaxIOC2veC2r+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX21vYmlsZV90aXRsZSIgbXNnaWQ9IjEwNDYwNDcyNDg4NDQ4MjEyMDIiPiLgtqLgtoLgtpzgtrgg4Lav4Lat4LeK4LatIOC2heC2tuC2vSDgtprgtrsg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfdGl0bGUiIG1zZ2lkPSIyMDg2ODE1MzA0ODU4OTY0OTU0Ij4i4Lav4Lat4LeK4LatIOC2heC2tuC2vSDgtprgtrsg4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2ciIG1zZ2lkPSIzODUzMTE3MjY5MDUxODA2MjgwIj4i4LaU4La2IOC2seC3kuC2uuC2uOC3kuC2rSDgtq/gtq3gt4rgtq0g4La34LeP4LeA4LeS4LatIOC3g+C3k+C2uOC3j+C3gOC2pyDgt4Xgtp/gt48g4LeA4LeTIOC2h+C2rS5cblxu4LaU4La2IOC2r+C2reC3iuC2rSDgtrHgt5Dgt4Dgtq0g4LeD4La24La9IOC2muC3heC3hOC3nOC2reC3iiDgt4Dgt4/gt4Tgtprgtrrgt48g4LaU4La24Lac4LeZ4Lax4LeKIOC2h+C2reC3kOC2uOC3iiDgt4Dgt5Lgtqcg4LaF4La6IOC2muC2u+C2nOC2rSDgt4Tgt5DgtpouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfZW5hYmxlIiBtc2dpZD0iNzcyOTc3MjAzOTIwODY2NDYwNiI+IuC2seC3kOC3gOC2rSDgtq/gtq3gt4rgtq0g4LeD4La24La9IOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX2Rpc2Nvbm5lY3RlZCIgbXNnaWQ9IjE5NDAyMzE1MjEyNzQxNDc3NzEiPiLgtoXgtrHgt4rgtq3gtrvgt4rgtqLgt4/gtr0g4LeD4La44LeK4La24Lax4LeK4Law4Lat4LeP4LeA4La64Laa4LeKIOC2seC3kOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC3kuC2reC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iR1BTIOC3g+C2s+C3hOC3jyDgt4Pgt5zgtrrgtrjgt5LgtrHgt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4iR1BTIOC2uOC2n+C3kuC2seC3iiDgt4Pgt4rgtq7gt4/gtrHgtrog4LeD4Laa4LeD4LePIOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IuC2tOC3kuC3hOC3kuC2p+C3k+C2uOC3iiDgtongtr3gt4rgtr3gt5Pgtrjgt4og4LeD4Laa4LeK4oCN4La74LeS4La64La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4i4LeD4LeS4La64La94LeUIOC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC3iiDgt4Tgt5Lgt4Pgt4og4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiLgtrrgt5ngtq/gt5Tgtrjgt4og4Lat4Lec4La74Lat4LeU4La74LeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiLgtq3gt5Lgtrvgtrog4LeD4LeK4LeA4La64LaC4Laa4LeK4oCN4La74LeT4La64LeAIOC2muC2u+C2muC3kOC3gOC3mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IuC2reC3kuC2u+C2uiDgtq3gt5Lgtrvgt4Pgt4og4Lav4LeS4LeB4LeP4Lax4Lat4LeS4La64LeZ4LeE4LeSIOC2heC2nOC3lOC3heC3lCDgtq/gtrjgt48g4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLgtq3gt5Lgtrvgtrog4LeD4LeS4La74LeD4LeKIOC2r+C3kuC3geC3j+C2seC2reC3kuC2uiDgtq3gt5Tgt4Ug4LaF4Lac4LeU4LeF4LeUIOC3gOC3kOC2p+C3kyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IuC2r+C3gOC2veC3iiDgt4Tgt5PgtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiLgtorgtq3gtrsg4Lax4LeZ4Lan4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLgtoXgt4Tgt4Pgt4rgtrrgt4/gtrHgt48g4LaG4Laa4LeP4La74La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2luZ19sYWJlbCIgbXNnaWQ9IjQ5MDA3NDc3NDQ2NTMwOTIwOSI+IuC2huC2u+C3neC2tOC2q+C2uiDgt4Dgt5ngtrjgt5LgtrHgt4osIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnZWRfbGFiZWwiIG1zZ2lkPSI4ODY1NDEzMDc5NDE0MjQ2MDgxIj4i4LaF4La74Led4La04LeS4Lat4La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX2xhYmVsIiBtc2dpZD0iNjMwNDE5MDI4NTE3MDcyMTQwMSI+IuC2tuC3iuC2veC3luC2p+C3luC2reC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9tdWx0aXBsZV9kZXZpY2VzX2xhYmVsIiBtc2dpZD0iMzkxMjI0NTU2NTYxMzY4NDczNSI+IuC2tuC3iuC2veC3luC2p+C3luC2reC3iiAo4LaL4La04LeP4LaC4LacIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPikiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfb2ZmX2xhYmVsIiBtc2dpZD0iODE1OTY1MjE0NjE0OTIxOTkzNyI+IuC2tuC3iuC2veC3luC2p+C3luC2reC3iiDgtoXgtprgt4rigI3gtrvgt5Lgtrrgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNjk2ODM3MjI5NzAxODc1NTgxNSI+IuC2r+C3k+C2tOC3iuC2reC3kuC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX3VubG9ja2VkX2xhYmVsIiBtc2dpZD0iMzM2MDU0OTMwMzYyNTgwNTg0Ij4i4LeD4LeK4LeA4La64LaC4Laa4LeK4oCN4La74LeT4La6IOC2muC2u+C2muC3kOC3gOC3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX2xvY2tlZF9sYWJlbCIgbXNnaWQ9IjgwNTg2NDY0NDcyNDI1NjU0ODYiPiLgtrfgt4rigI3gtrvgtrjgtqvgtrog4LaF4Lac4LeU4LeF4LeUIOC2r+C2uOC3jyDgtofgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4i4LaG4Lav4LeP4LaxIOC2muC3iuKAjeC2u+C2uOC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+IuC3g+C3iuC2ruC3j+C2seC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiLgt4Pgt4rgtq7gt4/gtrHgtrog4LaF4Laa4LeK4oCN4La74LeS4La64La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbWVkaWFfZGV2aWNlX2xhYmVsIiBtc2dpZD0iMTMwMjkwNjgzNjM3MjYwMzc2MiI+IuC2uOC3j+C2sOC3iuKAjeC2uiDgtovgtrTgt4/gtoLgtpzgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2xhYmVsIiBtc2dpZD0iNzcyNTY3MTMzNTU1MDY5NTU4OSI+IlJTU0kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2VtZXJnZW5jeV9vbmx5IiBtc2dpZD0iMjcxMzc3NDA0MTY3Mjg4Njc1MCI+IuC3hOC2r+C3kuC3g+C3kiDgtofgtrjgtq3gt5Tgtrjgt4og4La04La44Lar4LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfc2V0dGluZ3NfbGFiZWwiIG1zZ2lkPSI1MzI2NTU2NTkyNTc4MDY1NDAxIj4i4LeD4LeQ4Laa4LeD4LeT4La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfdGltZV9sYWJlbCIgbXNnaWQ9IjQ2MzU5NjkxODIyMzk3MzY0MDgiPiLgt4Dgt5rgtr3gt4/gt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc191c2VyX2xhYmVsIiBtc2dpZD0iNTIzODk5NTYzMjEzMDg5Nzg0MCI+IuC2uOC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbGFiZWwiIG1zZ2lkPSI5MTM1MzQ0NzA0ODk5NTQ2MDQxIj4iV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI3MTcxOTA0ODQ1MzQ1NTczNDMxIj4i4LeD4La44LeK4La24Lax4LeK4LawIOC3gOC3kyDgtrHgt5zgtrjgt5Dgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX25vX25ldHdvcmsiIG1zZ2lkPSIyMjIxOTkzMDc3MjIwODU2Mzc2Ij4i4Lai4LeP4La94La64Laa4LeKIOC2seC3kOC2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfb2ZmX2xhYmVsIiBtc2dpZD0iNzU1ODc3ODEwMDg0Mzg4NTg2NCI+IldpLUZpIOC2heC2muC3iuKAjeC2u+C3kuC2uuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9sYWJlbCIgbXNnaWQ9IjY4OTM1OTI5NjQ0NjM2MjQzMzMiPiJXaS1GaSDgt4PgtoLgtq/gtrvgt4rgt4HgtprgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiLgtrHgt5zgtrvgt5Dgt4Tgt5DgtrHgt4og4LeD4LaC4Lav4La74LeK4LeB4Laa4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4i4Lav4LeT4La04LeK4Lat4LeS4La44Lat4LeKIOC2tuC3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiLgt4Pgt4rgt4DgtrrgtoLgtprgt4rigI3gtrvgt5PgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iNTg0ODQwMjEyNzQ1NTAyMTcxNCI+IuC2h+C2reC3kOC2uOC3iiDgt4Dgt5Lgtqcg4Lai4LeP4La94La6IOC2seC3kuC2u+C3k+C2muC3iuC3guC2q+C2uiDgt4Dgt5Lgtrog4LeE4LeQ4LaaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZG9uZV9idXR0b24iIG1zZ2lkPSIxNzU5Mzg3MTgxNzY2NjAzMzYxIj4i4LeE4La74LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMTI3Mzc5Njk2NzA5MjAyNzI5MSI+IuC2ouC3j+C2vSDgtrHgt5Lgtrvgt5Pgtprgt4rgt4Lgtqvgtrog4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfaW5mb19tZXNzYWdlIiBtc2dpZD0iNTQzMDMyMDUzOTU1NTM1ODQ1MiI+IuC2uOC3meC2uCDgtovgtrTgt4/gtoLgtpzgtrog4Laa4LeF4La44Lax4LeP4Laa4La74Lar4La6IOC2muC2u+C2seC3lOC2uuC3mjogPHhsaWZmOmcgaWQ9Ik1BTkFHSU5HX0RPTUFJTiI+JXM8L3hsaWZmOmc+LlxuXG7gtpTgtrbgtpzgt5og4La04La74LeS4La04LeP4La94Laa4La64LePIOC2ii3gtq3gt5DgtrTgt5Dgtr3gt4osIOC2uuC3meC2r+C3lOC2uOC3iiwg4LeD4LeEIOC2huC2u+C2muC3iuKAjeC3guC3kuC2rSDgt4Dgt5ngtrbgt4og4LaF4Lap4LeA4LeSIOC2h+C2reC3lOC3heC3lOC3gCDgtpTgtrbgtpzgt5og4Lai4LeP4La9IOC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C2muC2uOC3iiDgtrHgt5Lgtrvgt5Pgtprgt4rgt4Lgtqvgtrog4Laa4LeS4La74LeT4La44LanIOC3hOC3kOC2muC3kuC2uuC3j+C3gCDgtofgtq0uXG5cbuC3gOC3kOC2qeC3kiDgt4Dgt5Lgt4Pgt4rgtq3gtrsg4LeD4Laz4LeE4LePLCDgtpTgtrbgt5og4La04La74LeS4La04LeP4La94Laa4La64LePIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgtrvgtpzgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZ19tZXNzYWdlIiBtc2dpZD0iMjAzMzA5MTY1NjEyOTk2MzY2OSI+IuC2reC3lOC2seC3iuC3gOC2sSDgtrTgt4/gtrvgt4rgt4Hgt4Dgtrrgtprgtqcg4LaU4La24Lac4LeaIOC2ouC3j+C2veC2uiDgtrHgt5Lgtrvgt5Pgtprgt4rgt4Lgtqvgtrog4Laa4LeS4La74LeT4La44LanIOC3hOC3kOC2muC3kuC2uuC3j+C3gCDgtofgtq1cbuC2muC3iuKAjeC2u+C3kuC2uuC3j+C2muC3j+C2u+C2muC2uOC3iiwg4LaKLeC2reC3kOC2tOC3kOC2veC3iiwg4La64LeZ4Lav4LeU4La44LeKIOC3g+C3hCDgtobgtrvgtprgt4rigI3gt4Lgt5Lgtq0g4LeA4LeZ4La24LeKIOC2heC2qeC3gOC3kiDgtofgtq3gt5Tgt4Xgt5Tgt4AuXG5cbuC2lOC2tuC2nOC3miDgtovgtrTgt4/gtoLgtpzgtrog4La44LatIOC3g+C3iuC2ruC3j+C2tOC3kuC2rSDgt4Dgt5Lgt4Hgt4rgt4Dgt4/gt4Pgtq/gtrrgt5Mg4LaF4Laa4LeK4Lat4La04Lat4LeK4oCN4La7IOC2uOC3meC2uiDgt4Pgt5Lgtq/gt5Tgt4Dgt5Pgtrjgt5og4LeE4LeQ4Laa4LeS4La64LeP4LeAIOC2h+C2reC3kuC2muC2u+C2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF9zZXR0aW5nc19idXR0b24iIG1zZ2lkPSI3OTQ2OTU2OTc3Mzc3MTY2NzA5Ij4i4LeA4LeS4LeB4LeK4LeA4LeP4LeD4Lav4LeP4La64LeTIOC2heC2muC3iuC2reC2tOC2reC3iuKAjeC2uyDgtrTgtrvgt5Lgtprgt4rgt4Lgt48g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXNpL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1zaS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjhjZDE2Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1zaS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDIwNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gCisvKioKKyAqIENvcHlyaWdodCAoYykgMjAwOSwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyAKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQgCisgKgorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIAorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywgCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0iYXBwX2xhYmVsIiBtc2dpZD0iNzE2NDkzNzM0NDg1MDAwNDQ2NiI+IuC2tOC2r+C3iuC2sOC2reC3kiBVSSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfY2xlYXJfYWxsX2J1dHRvbiIgbXNnaWQ9Ijc3NzQ3MjEzNDQ3MTY3MzE2MDMiPiLgt4Tgt5Lgt4Pgt4og4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9yZWNlbnRfcmVtb3ZlX2l0ZW1fdGl0bGUiIG1zZ2lkPSI2MDI2Mzk1ODY4MTI5ODUyOTY4Ij4i4La94LeQ4La64LeS4LeD4LeK4Lat4LeU4LeA4LeZ4Lax4LeKIOC2ieC3gOC2reC3iiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3JlY2VudF9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSI3NzkzNjI0ODY0NTI4ODE4NTY5Ij4i4La64LeZ4Lav4LeU4La44LeKIOC2reC3nOC2u+C2reC3lOC2u+C3lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm9fcmVjZW50X2FwcHMiIG1zZ2lkPSI2NTc2MzkyOTUxMDUzOTk0NjQwIj4i4La44LeR4LatIOC2i+C2tOC3j+C2guC2nCDgtrHgt5Dgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfZGlzbWlzc19yZWNlbnRzIiBtc2dpZD0iNDU3NjA3NjA3NTIyNjU0MDEwNSI+IuC2uOC3keC2rSDgtrrgt5ngtq/gt5Tgtrjgt4og4LaJ4LeA4Lat4La94Lax4LeK4LaxIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfcmVjZW50X2FwcHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODU0MTc2MDgzODY1ODQ1NTQxIj4i4La44LeR4LatIOC2uuC3meC2r+C3lOC2uOC3iiAxIOC2muC3iiI8L2l0ZW0+CisgICAgPGl0ZW0gcXVhbnRpdHk9Im90aGVyIiBtc2dpZD0iMTA0MDc4NDM1OTc5NDg5MDc0NCI+IuC2uOC3keC2rSDgtrrgt5ngtq/gt5Tgtrjgt4ogJWQg4Laa4LeKIjwvaXRlbT4KKyAgPC9wbHVyYWxzPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub19ub3RpZmljYXRpb25zX3RpdGxlIiBtc2dpZD0iNDc1NTI2MTE2NzE5MzgzMzIxMyI+IuC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC3iiDgtrHgt5Dgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX29uZ29pbmdfZXZlbnRzX3RpdGxlIiBtc2dpZD0iMTY4MjUwNDUxMzMxNjg3OTIwMiI+IuC2r+C3kOC2seC2pyDgtrTgt4Dgtq3gt5LgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2xhdGVzdF9ldmVudHNfdGl0bGUiIG1zZ2lkPSI2NTk0NzY3NDM4NTc3NTkzMTcyIj4i4Lav4LeQ4Lax4LeU4La44LeK4Lav4LeT4La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfdGl0bGUiIG1zZ2lkPSIyNzgzMTA0ODA3NTUxMjExNjM5Ij4i4LaF4La74Led4La04Laa4La64LanIOC3g+C2uOC3iuC2tuC2seC3iuC2sCDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd19zdWJ0aXRsZSIgbXNnaWQ9IjE3NTIwNDAwNjIwODc4MjkxOTYiPiLgtrbgt5Dgtqfgtrvgt5Lgtrog4LaF4Lap4LeUIOC3gOC3meC2uOC3kuC2seC3iiDgtrTgt4Dgtq3gt5MuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfcGVyY2VudF9mb3JtYXQiIG1zZ2lkPSIxMDc3MjQ0OTQ5MzE4MjYxNzYxIj4iPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQlJTwveGxpZmY6Zz4g4Laa4LeKIOC2ieC2reC3kuC2u+C3kuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImludmFsaWRfY2hhcmdlciIgbXNnaWQ9IjQ1NDkxMDU5OTY3NDA1MjI1MjMiPiJVU0Ig4LaG4La74Led4La04Lar4La6IOC3g+C3hOC2uiDgtrHgt5zgtq/gtprgt4rgt4Dgtrrgt5IuXG7gt4PgtrTgtrrgtrEg4La94LavIOC2huC2u+C3neC2tOC2muC2uiDgtrTgtrjgtqvgtprgt4og4La34LeP4LeA4LeS4Lat4LePIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd193aHkiIG1zZ2lkPSI3Mjc5MTY5NjA5NTE4Mzg2MzcyIj4i4La24LeQ4Lan4La74LeSIOC2t+C3j+C3gOC3kuC2reC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iMzAyMzg4OTkxNjY5OTI3MDIyNCI+IuC3g+C3kOC2muC3g+C3k+C2uOC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfd2lmaV9idXR0b24iIG1zZ2lkPSIxNzMzOTI4MTUxNjk4MzExOTIzIj4iV2ktRmkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDg3OTg3OTY5ODUwMDk1NTMwMCI+IuC2heC3hOC3g+C3iuC2uuC3j+C2seC3jyDgtobgtprgt4/gtrvgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX2F1dG9fcm90YXRpb24iIG1zZ2lkPSIzNzkwNDgyNTQxMzU3Nzk4NDIxIj4i4LeD4LeK4LeA4La64LaC4Laa4LeK4oCN4La74LeT4La64LeALeC2t+C3iuKAjeC2u+C2uOC2q+C2uiDgt4DgtrEg4Lat4LeS4La74La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19tdXRlX2xhYmVsIiBtc2dpZD0iNTU0NjgyNTQ5OTE3NDI5Mzk2Ij4i4Lax4LeS4LeB4LeK4LeB4La24LeK4LavIOC2muC2u+C2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTExNDUzNjE0OTYyMzI0Njc0Ij4i4LeD4LeK4LeA4La64LaC4Laa4LeK4oCN4La74LeT4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19ub3RpZmljYXRpb25zIiBtc2dpZD0iMzk3MTQ2MTc2MjgwOTA1MTM3Ij4i4Lav4LeQ4Lax4LeU4La44LeK4Lav4LeT4La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmx1ZXRvb3RoX3RldGhlcmVkIiBtc2dpZD0iNzA5NDEwMTYxMjE2MTEzMzI2NyI+IuC2tuC3iuC2veC3luC2p+C3luC2reC3iiDgtqfgt5ngtq/gtrvgt4og4Laa4La74LePIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9pbnB1dF9tZXRob2Rfc2V0dGluZ3NfY29uZmlndXJlX2lucHV0X21ldGhvZHMiIG1zZ2lkPSIzNTA0MjkyNDcxNTEyMzE3ODI3Ij4i4LaG4Lav4LeP4LaxIOC2muC3iuKAjeC2u+C2uCDgt4Pgtprgt4PgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3VzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9Ijc1NTE5MDMwODQ0MTYwNTc4MTAiPiLgtrfgt57gtq3gt5Lgtpog4La64Lat4LeU4La74LeUIOC2tOC3lOC3gOC2u+C3lOC3gCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI4MzQ2OTgwMDEyNzE1NjIwNTciPiJVU0Ig4LaL4La04LeP4LaC4Lac4La6IOC2tOC3iuKAjeC2u+C3gOC3muC3gSDgtprgt5Lgtrvgt5PgtrjgtqcgPHhsaWZmOmcgaWQ9IkFQUExJQ0FUSU9OIj4lMSRzPC94bGlmZjpnPiDgtrrgt5ngtq/gt5Tgtrjgtqcg4LaF4LeA4LeD4La7IOC2r+C3meC2seC3gOC3j+C2rz8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iNTE3MTc3NTQxMTE3ODg2NTc1MCI+IlVTQiDgtrjgt5ngt4Dgtr3gtrgg4La04LeK4oCN4La74LeA4Lea4LeBIOC2muC3kuC2u+C3k+C2uOC2pyA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeA4LeP4LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSI1MTYxMjA1MjU4NjM1MjUzMjA2Ij4i4La44LeZ4La4IFVTQiDgtovgtrTgt4/gtoLgtpzgtrog4LeD4La44LeK4La24Lax4LeK4LawIOC3gOC3kuC2pyA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+IOC3gOC3kuC3gOC3mOC2rSDgtprgtrvgtrHgt4rgtrHgtq8/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9jb25maXJtX3Byb21wdCIgbXNnaWQ9IjM4MDg5ODQ5MzE4MzAyMjk4ODgiPiLgtrjgt5ngtrggVVNCIOC2uOC3meC3gOC2veC2uOC2pyDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4LeA4LeTIOC2h+C2reC3kiDgt4Dgt5LgtqcgPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiDgt4Dgt5Lgt4Dgt5jgtq0g4Laa4La74Lax4LeK4Lax4LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfdXJpX3Byb21wdCIgbXNnaWQ9IjUxMzQ1MDYyMTQxMzczMzM0MyI+IuC2uOC3meC2uCBVU0Ig4La44LeZ4LeA4La94La4IOC3g+C2uOC2nCDgtprgt4rigI3gtrvgt5Lgtrrgt48g4Laa4La74LaxIOC3g+C3iuC2ruC3j+C2tOC3kuC2rSDgtrrgt5ngtq/gt5Tgtrjgt4og4Lax4Lec4La44LeQ4LatLiA8eGxpZmY6ZyBpZD0iVVJMIj4lMSRzPC94bGlmZjpnPiDgt4Dgtr3gt5LgtrHgt4og4La44LeZ4La4IOC2uOC3meC3gOC2veC2uCDgtpzgt5DgtrEg4Lat4LeAIOC2r+C3kOC2seC2nOC2seC3iuC2sSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3VzYl9hY2Nlc3NvcnkiIG1zZ2lkPSI0OTY2MjY1MjYzNDY1MTgxMzcyIj4iVVNCIOC2uOC3meC3gOC2veC2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3ZpZXciIG1zZ2lkPSI2MzA0NTY1NTUzMjE4MTkyOTkwIj4i4La04LeZ4Lax4LeU4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9kZXZpY2UiIG1zZ2lkPSIxNDUwMjg3NDM3MDE3MzE1OTA2Ij4i4La44LeZ4La4IFVTQiDgtovgtrTgt4/gtoLgtpzgtrog4LeD4Laz4LeE4LePIOC3g+C3lOC2tOC3lOC2u+C3lOC2r+C3iuC2r+C3meC2seC3iiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9hY2Nlc3NvcnkiIG1zZ2lkPSIxMjEwOTU0NTc2OTc5NjIxNTk2Ij4i4La44LeaIFVTQiDgtrjgt5ngt4Dgtr3gtrgg4LeD4Laz4LeE4LePIOC3g+C3lOC2tOC3lOC2u+C3lOC2r+C3iuC2r+C3meC2seC3iiDgtrfgt4/gt4Dgt5Lgtq3gt48g4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfdGl0bGUiIG1zZ2lkPSI0NTEzOTE4MzkzMzg3MTQxOTQ5Ij4iVVNCIOC2seC3kuC2r+C3nOC3g+C3iuC2muC2u+C2q+C2uuC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4Lax4LeA4LavPyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfbWVzc2FnZSIgbXNnaWQ9IjIyMjAxNDM4NTU5MTIzNzY0OTYiPiLgtrjgt5ngtrgg4La04La74LeS4Lac4Lar4Laa4La64LeaIFJTQSDgtrrgtq3gt5Tgtrvgt5Qg4LaH4Laf4LeS4La94LeSIOC3g+C2p+C3hOC2sSDgt4DgtrHgt4rgtrHgt5o6XG48eGxpZmY6ZyBpZD0iRklOR0VSUFJJTlQiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiLgt4Pgt5Dgtrgg4LeA4LeS4Lan4La4IOC2uOC3meC2uCDgtrTgtrvgt5Lgtpzgtqvgtprgtrrgt5ngtrHgt4og4LaJ4LapIOC2veC2tuC3jyDgtq/gt5ngtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiLgtq3gt5Lgtrvgtrog4La04LeS4La74LeA4LeT4La44LanIOC3gOC3kuC3geC3j+C2veC2seC2uiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4i4Lat4LeS4La74La6IOC2tOC3kuC2u+C3gOC3k+C2uOC2pyDgtoXgtq/gt5LgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiLgtpzgt5Dgt4XgtrTgt5ngtrEg4LeA4LeS4LeB4LeP4La94Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+IuC2muC3lOC2qeC3jyDgtq3gt5Lgtrvgtrrgtprgt4og4LeD4Laz4LeE4LePIOC2uuC3meC2r+C3lOC2uOC2muC3iiDgtrHgt5Lgtrvgt4rgtrjgt4/gtqvgtrog4Laa4LeFIOC3gOC3kuC2pywg4LeA4LeS4LeB4LeP4La94Lax4La6IOC2tOC3j+C2veC2muC2uiDgtpTgtrvgtr3gt53gt4Pgt5Tgt4Ag4LeF4Laf4LeS4Lax4LeKIOC2tOC3meC2seC3iuC3gOC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4i4Lat4LeS4La7IOC2u+C3lOC3gCDgt4Pgt5Tgtrvgtprgt5Lgtrjgt5LgtrHgt4rigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiLgtq3gt5Lgtrsg4La74LeU4LeAIOC3g+C3lOC2u+C3kOC2muC3meC2uOC3kuC2seC3iiDgtrTgt4Dgtq3gt5PigKYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+IuC2reC3kuC2uyDgtrvgt5Tgt4Ag4LeD4LeU4La74LeQ4Laa4LeZ4La44LeS4Lax4LeKIOC2tOC3gOC2reC3ky4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RpdGxlIiBtc2dpZD0iNjQ2MTg2NTk2MDk2MTQxNDk2MSI+IuC2reC3kuC2uyDgtrvgt5Tgt4Ag4Lac4LeK4oCN4La74LeE4Lar4La6IOC2muC2u+C2sSDgtr3gtq/gt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90ZXh0IiBtc2dpZD0iMTE1MjgzOTY0NzY3NzU1ODgxNSI+IuC2lOC2tuC2nOC3miDgtq3gt5Lgtrsg4La74LeU4LeAIOC2tuC3kOC2veC3k+C2uOC2pyDgt4Pgt4rgtrTgtrvgt4rgt4Eg4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3RfZmFpbGVkX3RpdGxlIiBtc2dpZD0iNzA1NzgxMTE2NzQ2OTIyNzcxIj4i4Lat4LeS4La7IOC2u+C3lOC3gCDgtpzgt4rigI3gtrvgt4Tgtqvgtrog4Laa4LeS4La74LeT4La44LanIOC2seC3nOC3hOC3kOC2muC3kiDgt4Dgt5LgtrouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGV4dCIgbXNnaWQ9IjgxMzQwMTEyNjk1NzI0MTU0MDIiPiLgtq3gt5Lgtrsg4La74LeU4LeAIOC3g+C3lOC2u+C3kOC2muC3k+C2uOC2pyDgtrHgt5zgt4Tgt5Dgtprgt5Ig4LeA4LeS4La6LiDgtobgtqDgtrrgtrHgtrog4La34LeP4LeA4LeS4Lat4LeP4LeA4LeaIOC2reC3kuC2tuC3meC2seC3gOC3jyDgt4Dgt5Lgtrog4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9wcmVmZXJlbmNlX3RpdGxlIiBtc2dpZD0iNjU1MTA1MDM3NzM4ODg4Mjc4NyI+IlVTQiDgtpzgt5zgtrHgt5Qg4LeE4LeU4LeA4La44LeP4La74LeUIOC3gOC3kuC2muC2veC3iuC2tCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzZV9tdHBfYnV0dG9uX3RpdGxlIiBtc2dpZD0iNDMzMzUwNDQxMzU2MzAyMzYyNiI+IuC2uOC2sOC3iuKAjeC2uiDgtrDgt4/gt4Dgtprgtrrgtprgt4ogKE1UUCkg4La94LeZ4LeDIOC3g+C3gOC3kiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfcHRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9Ijc1MTcxMjc1NDAzMDE2MjU3NTEiPiLgtprgt5Dgtrjgtrvgt4/gt4Dgtprgt4ogKFBUUCkg4La94LeZ4LeDIOC3g+C3gOC3kiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsZXJfY2RfYnV0dG9uX3RpdGxlIiBtc2dpZD0iMjMxMjY2NzU3ODU2MjIwMTU4MyI+Ik1hYyDgt4PgtrPgt4Tgt48gQW5kcm9pZCDgtpzgt5zgtrHgt5Qg4LeE4LeU4LeA4La44LeP4La74LeUIOC2uuC3meC2r+C3lOC2uCDgt4Pgt4rgtq7gt4/gtrTgtrHgtrog4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYWNrIiBtc2dpZD0iNTY3MDExNTM4OTk0NDI5MTIwIj4i4LaG4La04LeD4LeUIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IuC2uOC3lOC2veC3iiDgtrTgt5Lgtqfgt5Tgt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiLgtrjgt5ngtrHgt5Tgt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiLgtrjgt5Hgtq0g4La64LeZ4Lav4LeU4La44LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiLgtobgtq/gt4/gtrEg4Laa4LeK4oCN4La74La44La6IOC2uOC3j+C2u+C3lCDgtprgt5Lgtrvgt5Pgtrjgt5og4La24Lec4Lat4LeK4Lat4La4LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiLgtpzgt5Dgt4XgtrTgt5ngtrEg4LeA4LeS4LeB4LeP4La94LaxIOC2tuC3nOC2reC3iuC2reC2uC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+IuC3gOC3kuC3geC3j+C2vSDgtq3gt5Lgtrvgtrog4LeA4LeZ4LatIOC2muC3lOC2qeC3j+C3gCDgt4Dgt5Lgt4Hgt4/gtr3gtrHgtrog4Laa4La74Lax4LeK4LaxLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX2Nvbm5lY3RlZCIgbXNnaWQ9IjI3MDcwMjc2MzMyNDI5ODMzNzAiPiLgtrbgt4rgtr3gt5bgtqfgt5bgtq3gt4og4LeD4La44LeK4La24Lax4LeK4Law4LeS4Lat4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX2Rpc2Nvbm5lY3RlZCIgbXNnaWQ9Ijc0MTY2NDg2Njk5NzY4NzAxNzUiPiLgtrbgt4rgtr3gt5bgtqfgt5bgtq3gt4og4LeA4LeS4LeD4Lax4LeK4Law4LeSIOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19iYXR0ZXJ5IiBtc2dpZD0iMzU4MzQzMDIyMzUyODIwOTQ2Ij4i4La24LeQ4Lan4La74LeS4La6IOC2seC3kOC2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfb25lX2JhciIgbXNnaWQ9Ijc3NzQ4ODc3MjE4OTEwNTc1MjMiPiLgtrbgt5Dgtqfgtrvgt5Lgtrog4Lat4LeT4La74LeUIOC2keC2muC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfdHdvX2JhcnMiIG1zZ2lkPSI4NTAwNjUwNDM4NzM1MDA5OTczIj4i4La24LeQ4Lan4La74LeS4La6IOC2reC3k+C2u+C3lCDgtq/gt5ngtprgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3RocmVlX2JhcnMiIG1zZ2lkPSIyMzAyOTgzMzMwODY1MDQwNDQ2Ij4i4La24LeQ4Lan4La74LeS4La6IOC2reC3k+C2u+C3lCDgtq3gt5TgtrHgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X2Z1bGwiIG1zZ2lkPSI4OTA5MTIyNDAxNzIwMTU4NTgyIj4i4La24LeQ4Lan4La74LeS4La6IOC2tOC3kuC2u+C3kyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19waG9uZSIgbXNnaWQ9IjQ4OTQ3MDg5MzcwNTI2MTEyODEiPiLgtq/gt5Tgtrvgtprgtq7gtrHgtrrgtprgt4og4Lax4LeQ4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfb25lX2JhciIgbXNnaWQ9IjY4NzY5OTI3ODEzMjY2NDExNSI+IuC2r+C3lOC2u+C2muC2ruC2seC2uiDgtq3gt5Pgtrvgt5Qg4LaR4Laa4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdHdvX2JhcnMiIG1zZ2lkPSI4Mzg0OTA1MzgyODA0ODE1MjAxIj4i4Lav4LeU4La74Laa4Lau4Lax4La6IOC2reC3k+C2u+C3lCDgtq/gt5ngtprgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9waG9uZV90aHJlZV9iYXJzIiBtc2dpZD0iODUyMTkwNDg0MzkxOTk3MTg4NSI+IuC2r+C3lOC2u+C2muC2ruC2seC2uiDgtq3gt5Pgtrvgt5Qg4Lat4LeU4Lax4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfc2lnbmFsX2Z1bGwiIG1zZ2lkPSI2NDcxODM0ODY4NTgwNzU3ODk4Ij4i4Lav4LeU4La74Laa4Lau4Lax4La64LeaIOC3g+C2guC2peC3j+C3gCDgtrTgt5Lgtrvgt5Mg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fZGF0YSIgbXNnaWQ9IjQ3OTE5NjYyOTUwOTY4Njc1NTUiPiLgtq/gtq3gt4rgtq0g4Lax4LeQ4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9vbmVfYmFyIiBtc2dpZD0iMTQxNTYyNTgzMzIzODI3MzYyOCI+IuC2r+C2reC3iuC2rSDgtq3gt5Pgtrvgt5Qg4LaR4Laa4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV90d29fYmFycyIgbXNnaWQ9IjYxNjYwMTg0OTIzNjA0MzIwOTEiPiLgtq/gtq3gt4rgtq0g4Lat4LeT4La74LeUIDIuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4i4Lav4Lat4LeK4LatIOC2reC3k+C2u+C3lCAzLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9zaWduYWxfZnVsbCIgbXNnaWQ9IjI3MDgzODQ2MDgxMjQ1MTkzNjkiPiLgtq/gtq3gt4rgtq0g4LeD4LaC4Lal4LeP4LeAIOC2tOC3kuC2u+C3kyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX29mZiIgbXNnaWQ9IjMxNzczODAyOTY2OTc5MzM2MjciPiJXaWZpIOC2heC2muC3iuKAjeC2u+C3kuC2uuC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpZmkiIG1zZ2lkPSIxNDI1NDc2NTUxODI3OTI0NDc0Ij4iV2lmaSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrAg4Laa4La7IOC2seC3nOC2uOC3kOC2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiJXaWZpIOC2reC3k+C2u+C3lCDgtpHgtprgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3R3b19iYXJzIiBtc2dpZD0iNDk5NDI3NDI1MDQ5NzI2MjQzNCI+IldpZmkg4Lat4LeT4La74LeUIOC2r+C3meC2muC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfdGhyZWVfYmFycyIgbXNnaWQ9IjM0OTU3NTUwNDQyNzY1ODgzODQiPiJXaUZpIOC2reC3k+C2u+C3lCDgtq3gt5TgtrHgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IldpZmkg4LeD4LaC4Lal4LeP4LeAIOC2tOC3kuC2u+C3kyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub193aW1heCIgbXNnaWQ9IjQzMjkxODAxMjk3Mjc2MzAzNjgiPiJXaU1BWCDgtrHgt5Dgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9vbmVfYmFyIiBtc2dpZD0iNDE3MDk5NDI5OTAxMTg2MzY0OCI+IldpTUFYIOC2reC3k+C2u+C3lCDgtpHgtprgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90d29fYmFycyIgbXNnaWQ9IjkxNzYyMzY4NTgzMzY1MDIyODgiPiJXaU1BWCDgtq3gt5Pgtrvgt5Qg4Lav4LeZ4Laa4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdGhyZWVfYmFycyIgbXNnaWQ9IjYxMTY1NTE2MzY3NTIxMDM5MjciPiJXaU1BWCDgtq3gt5Pgtrvgt5Qg4Lat4LeU4Lax4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzY4MDg5OTg2Nzk1NTc5NTU4Ij4iV2lNQVgg4LeD4LaC4Lal4LeP4LeAIOC2tOC3kuC2u+C3kyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaWduYWwiIG1zZ2lkPSI3MDY0NjQ1MzIwNzgyNTg1MTY3Ij4i4LeD4LaC4Lal4LePIOC2seC3kOC2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdF9jb25uZWN0ZWQiIG1zZ2lkPSI2Mzk1MzI2Mjc2MjEzNDAyODgzIj4i4LeD4La44LeK4La24Lax4LeK4LawIOC3gOC3kyDgtrHgt5Dgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV96ZXJvX2JhcnMiIG1zZ2lkPSIzODA2MDYwMjI0NDY3MDI3ODg3Ij4i4Lat4LeT4La74LeUIOC3geC3lOC2seC3iuKAjeC2uuC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X29uZV9iYXIiIG1zZ2lkPSIxNjg1NzMwMTEzMTkyMDgxODk1Ij4i4Lat4LeT4La74LeUIOC2keC2mi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3R3b19iYXJzIiBtc2dpZD0iNjQzNzM2MzY0ODM4NTIwNjY3OSI+IuC2reC3k+C2u+C3lCDgtq/gt5ngtprgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV90aHJlZV9iYXJzIiBtc2dpZD0iMjY0ODI0MTQxNTExOTM5NjY0OCI+IuC2reC3k+C2u+C3lCDgtq3gt5TgtrHgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zaWduYWxfZnVsbCIgbXNnaWQ9IjkxMjI5MjI4ODY1MTk2NzY4MzkiPiLgt4PgtoLgtqXgt4/gt4Ag4La04LeS4La74LeTIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb24iIG1zZ2lkPSIyMzg1MjU0NjkzNjI0MzQ1MjY1Ij4i4LeD4Laa4LeK4oCN4La74LeT4La64La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vZmYiIG1zZ2lkPSI2NDc1NTA4MTU3Nzg2ODUzMTU3Ij4i4LaF4Laa4LeK4oCN4La74LeS4La6IOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfY29ubmVjdGVkIiBtc2dpZD0iODM2NjI1NjY5MzcxOTQ5OTY2NSI+IuC3g+C2uOC3iuC2tuC2seC3iuC2sOC3kuC2reC2uuC3ki4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9ncHJzIiBtc2dpZD0iMTYwNjQ3NzIyNDQ4Njc0Nzc1MSI+IkdQUlMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8xeCIgbXNnaWQ9Ijk5NDEzMzQ2ODEyMDI0NDAxOCI+IjEgWCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2hzcGEiIG1zZ2lkPSIyMDMyMzI4ODU1NDYyNjQ1MTk4Ij4iSFNQQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzNnIiBtc2dpZD0iODYyODU2MjMwNTAwMzU2ODI2MCI+IjNHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMy41ZyIgbXNnaWQ9Ijg2NjQ4NDU2MDk5ODE2OTIwMDEiPiIzLjVHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fNGciIG1zZ2lkPSI3NzQxMDAwNzUwNjMwMDg5NjEyIj4iNEciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9sdGUiIG1zZ2lkPSI1NDEzNDY4ODA4NjM3NTQwNjU4Ij4iTFRFIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fY2RtYSIgbXNnaWQ9IjYxMzI2NDgxOTM5Nzg4MjMwMjMiPiJDRE1BIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fcm9hbWluZyIgbXNnaWQ9IjU5NzczNjIzMzM0NjY1NTYwOTQiPiLgtrvgt53gtrjgt5LgtoIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9lZGdlIiBtc2dpZD0iNDQ3NzQ1NzA1MTYzMTk3OTI3OCI+IkVkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl93aWZpIiBtc2dpZD0iMjMyNDQ5Njc1NjU5MDY0NTIyMSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaW0iIG1zZ2lkPSI4Mjc0MDE3MTE4NDcyNDU1MTU1Ij4iU0lNIOC2seC3kOC2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JsdWV0b290aF90ZXRoZXIiIG1zZ2lkPSI0MTAyNzg0NDk4MTQwMjcxOTY5Ij4i4La24LeK4La94LeW4Lan4LeW4Lat4LeKIOC2p+C3meC2r+C2u+C3kuC2seC3ii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2FpcnBsYW5lX21vZGUiIG1zZ2lkPSI4MzQ3NDg5OTk3OTA3NjMwOTIiPiLgtoXgt4Tgt4Pgt4rgtrrgt4/gtrHgt48g4LaG4Laa4LeP4La74La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9sZXZlbCIgbXNnaWQ9Ijc0NTE0NzQxODcxMTMzNzE5NjUiPiLgtrbgt5Dgtqfgtrvgt5Ig4La04LeK4oCN4La74Lat4LeS4LeB4Lat4La6IDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2V0dGluZ3NfYnV0dG9uIiBtc2dpZD0iNzk5NTgzOTExMjMxODkzMzgwIj4i4La04Lav4LeK4Law4Lat4LeSIOC3g+C3kOC2muC3g+C3k+C2uOC3ii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vdGlmaWNhdGlvbnNfYnV0dG9uIiBtc2dpZD0iNDQ5ODAwMDM2OTc3OTQyMTg5MiI+IuC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC3ii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlbW92ZV9ub3RpZmljYXRpb24iIG1zZ2lkPSIzNjAzMDk5NTE0OTAyMTgyMzUwIj4i4Lav4LeQ4Lax4LeU4La44LeK4Lav4LeT4La4IOC3hOC3kuC3g+C3iiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfZW5hYmxlZCIgbXNnaWQ9IjM1MTE0Njk0OTkyNDAxMjMwMTkiPiJHUFMg4LeD4La24La9IOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ncHNfYWNxdWlyaW5nIiBtc2dpZD0iODk1OTMzMzM1MTA1ODk2NzE1OCI+IkdQUyDgtr3gtrbgt48g4Lac4Lax4LeS4La44LeS4Lax4LeKLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHR5X2VuYWJsZWQiIG1zZ2lkPSI0NjEzMjAwMzY1Mzc5NDI2NTYxIj4iVGVsZVR5cGV3cml0ZXIg4Laa4LeK4oCN4La74LeS4La64LeP4Lat4LeK4La44Laa4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3ZpYnJhdGUiIG1zZ2lkPSI2NjY1ODUzNjMzNjQxNTUwNTUiPiLgt4Tgtqwg4Lax4Laf4Lax4La6IOC2muC2uOC3iuC2tOC2seC2uiDgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfc2lsZW50IiBtc2dpZD0iOTA2MTI0MzMwNzkzOTEzNTM4MyI+IuC3hOC2rCDgtrHgtp/gtrHgtrog4Lax4LeS4LeB4LeK4LeB4La24LeK4Lav4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50c19pdGVtX2Rpc21pc3NlZCIgbXNnaWQ9IjY4MDM1NzQ5MzUwODQ4NjcwNzAiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g4LaF4LeD4LeKIOC2muC2uyDgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25fZGlzbWlzc2VkIiBtc2dpZD0iODU0MjExMzg3MTg2MzA2OTI3Ij4i4Lav4LeQ4Lax4LeU4La44LeK4Lav4LeT4La4IOC2seC3kuC3guC3iuC2tOC3iuKAjeC2u+C2t+C3jyDgtprgtrvgtofgtq0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX25vdGlmaWNhdGlvbl9zaGFkZSIgbXNnaWQ9IjQ2OTAyNzQ4NDQ0NDc1MDQyMDgiPiLgtq/gt5DgtrHgt5Tgtrjgt4rgtq/gt5Pgtrjgt4og4LaG4LeA4La74Lar4La6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19xdWlja19zZXR0aW5ncyIgbXNnaWQ9IjYxODYzNzg0MTE1ODI0MzcwNDYiPiLgtprgt4rgt4Lgtqvgt5Lgtpog4LeD4LeQ4Laa4LeD4LeT4La44LeKLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19yZWNlbnRfYXBwcyIgbXNnaWQ9IjkwMTQwMzI5MTY0MTA1OTAwMjciPiLgtrjgt5Hgtq0g4Laa4LeP4La94LeT4LaxIOC2uuC3meC2r+C3lOC2uOC3ii4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3VzZXIiIG1zZ2lkPSIxMTA0ODQ2Njk5ODY5NDc2ODU1Ij4i4La04La74LeS4LeB4LeT4La94Laa4La64LePIDx4bGlmZjpnIGlkPSJVU0VSIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc193aWZpIiBtc2dpZD0iNjA5OTc4MTAzMTY2OTcyODcwOSI+Ijx4bGlmZjpnIGlkPSJTSUdOQUwiPiUxJHM8L3hsaWZmOmc+LiA8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTIkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX21vYmlsZSIgbXNnaWQ9IjQ4NzY4MDY1NjQwODYyNDEzNDEiPiLgtqLgtoLgtpzgtrggPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz4uIDx4bGlmZjpnIGlkPSJUWVBFIj4lMiRzPC94bGlmZjpnPi4gPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUzJHM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiLgtrbgt5Dgtqfgtrvgt5LgtrogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLgtoXgt4Tgt4Pgt4rgtrrgt4/gtrHgt48g4LaG4Laa4LeP4La74La6IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IuC2tuC3iuC2veC3luC2p+C3luC2reC3iiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+Ijx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4g4LeD4Laz4LeE4LePIOC3g+C3k+C2seC3lOC3gCDgt4Pgtprgt4Pgt4og4Laa4La7IOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiIyRy0zRyDgtq/gtq3gt4rgtq0g4LaF4La24La9IOC2muC2uyDgtofgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiI0RyDgtq/gtq3gt4rgtq0g4LaF4La24La9IOC2muC2u+C2sSDgtr3gtq/gt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19tb2JpbGVfdGl0bGUiIG1zZ2lkPSIxMDQ2MDQ3MjQ4ODQ0ODIxMjAyIj4i4Lai4LaC4Lac4La4IOC2r+C2reC3iuC2rSDgtoXgtrbgtr0g4Laa4La7IOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMjA4NjgxNTMwNDg1ODk2NDk1NCI+IuC2r+C2reC3iuC2rSDgtoXgtrbgtr0g4Laa4La7IOC2h+C2rSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nIiBtc2dpZD0iMzg1MzExNzI2OTA1MTgwNjI4MCI+IuC2lOC2tiDgtrHgt5Lgtrrgtrjgt5Lgtq0g4Lav4Lat4LeK4LatIOC2t+C3j+C3gOC3kuC2rSDgt4Pgt5Pgtrjgt4/gt4Dgtqcg4LeF4Laf4LePIOC3gOC3kyDgtofgtq0uXG5cbuC2lOC2tiDgtq/gtq3gt4rgtq0g4Lax4LeQ4LeA4LatIOC3g+C2tuC2vSDgtprgt4Xgt4Tgt5zgtq3gt4og4LeA4LeP4LeE4Laa4La64LePIOC2lOC2tuC2nOC3meC2seC3iiDgtofgtq3gt5Dgtrjgt4og4LeA4LeS4LanIOC2heC2uiDgtprgtrvgtpzgtq0g4LeE4LeQ4LaaLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX2VuYWJsZSIgbXNnaWQ9Ijc3Mjk3NzIwMzkyMDg2NjQ2MDYiPiLgtrHgt5Dgt4Dgtq0g4Lav4Lat4LeK4LatIOC3g+C2tuC2vSDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl9kaXNjb25uZWN0ZWQiIG1zZ2lkPSIxOTQwMjMxNTIxMjc0MTQ3NzcxIj4i4LaF4Lax4LeK4Lat4La74LeK4Lai4LeP4La9IOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3j+C3gOC2uuC2muC3iiDgtrHgt5Dgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaS1GaSDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgt5Lgtq3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IkdQUyDgt4PgtrPgt4Tgt48g4LeD4Lec4La64La44LeS4Lax4LeKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IkdQUyDgtrjgtp/gt5LgtrHgt4og4LeD4LeK4Lau4LeP4Lax4La6IOC3g+C2muC3g+C3jyDgtofgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiLgtrTgt5Lgt4Tgt5Lgtqfgt5Pgtrjgt4og4LaJ4La94LeK4La94LeT4La44LeKIOC3g+C2muC3iuKAjeC2u+C3kuC2uuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+IuC3g+C3kuC2uuC2veC3lCDgtq/gt5DgtrHgt5Tgtrjgt4rgtq/gt5Pgtrjgt4og4LeE4LeS4LeD4LeKIOC2muC2u+C2seC3iuC2sS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4i4La64LeZ4Lav4LeU4La44LeKIOC2reC3nOC2u+C2reC3lOC2u+C3lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4i4Lat4LeS4La74La6IOC3g+C3iuC3gOC2uuC2guC2muC3iuKAjeC2u+C3k+C2uuC3gCDgtprgtrvgtprgt5Dgt4Dgt5ouIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiLgtq3gt5Lgtrvgtrog4Lat4LeS4La74LeD4LeKIOC2r+C3kuC3geC3j+C2seC2reC3kuC2uuC3meC3hOC3kiDgtoXgtpzgt5Tgt4Xgt5Qg4Lav4La44LePIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fcG9ydHJhaXQiIG1zZ2lkPSI1ODA5MzY3NTIxNjQ0MDEyMTE1Ij4i4Lat4LeS4La74La6IOC3g+C3kuC2u+C3g+C3iiDgtq/gt5Lgt4Hgt4/gtrHgtq3gt5Lgtrog4Lat4LeU4LeFIOC2heC2nOC3lOC3heC3lCDgt4Dgt5Dgtqfgt5Mg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiLgtq/gt4Dgtr3gt4og4LeE4LeT4Lax4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4i4LaK4Lat4La7IOC2seC3meC2p+C3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4i4LaF4LeE4LeD4LeK4La64LeP4Lax4LePIOC2huC2muC3j+C2u+C2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JhdHRlcnlfY2hhcmdpbmdfbGFiZWwiIG1zZ2lkPSI0OTAwNzQ3NzQ0NjUzMDkyMDkiPiLgtobgtrvgt53gtrTgtqvgtrog4LeA4LeZ4La44LeS4Lax4LeKLCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmF0dGVyeV9jaGFyZ2VkX2xhYmVsIiBtc2dpZD0iODg2NTQxMzA3OTQxNDI0NjA4MSI+IuC2heC2u+C3neC2tOC3kuC2reC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9sYWJlbCIgbXNnaWQ9IjYzMDQxOTAyODUxNzA3MjE0MDEiPiLgtrbgt4rgtr3gt5bgtqfgt5bgtq3gt4oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbXVsdGlwbGVfZGV2aWNlc19sYWJlbCIgbXNnaWQ9IjM5MTIyNDU1NjU2MTM2ODQ3MzUiPiLgtrbgt4rgtr3gt5bgtqfgt5bgtq3gt4ogKOC2i+C2tOC3j+C2guC2nCA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiLgtrbgt4rgtr3gt5bgtqfgt5bgtq3gt4og4LaF4Laa4LeK4oCN4La74LeS4La64La64LeSIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjY5NjgzNzIyOTcwMTg3NTU4MTUiPiLgtq/gt5PgtrTgt4rgtq3gt5LgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IuC3g+C3iuC3gOC2uuC2guC2muC3iuKAjeC2u+C3k+C2uiDgtprgtrvgtprgt5Dgt4Dgt5PgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl9sb2NrZWRfbGFiZWwiIG1zZ2lkPSI4MDU4NjQ2NDQ3MjQyNTY1NDg2Ij4i4La34LeK4oCN4La74La44Lar4La6IOC2heC2nOC3lOC3heC3lCDgtq/gtrjgt48g4LaH4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW1lX2xhYmVsIiBtc2dpZD0iNzA3MzQ2MzA2NDM2OTQ2ODQyOSI+IuC2huC2r+C3j+C2sSDgtprgt4rigI3gtrvgtrjgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9sYWJlbCIgbXNnaWQ9IjUwMTEzMjcwNDg3NDg3NjIyNTciPiLgt4Pgt4rgtq7gt4/gtrHgtroiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4i4LeD4LeK4Lau4LeP4Lax4La6IOC2heC2muC3iuKAjeC2u+C3kuC2uuC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX21lZGlhX2RldmljZV9sYWJlbCIgbXNnaWQ9IjEzMDI5MDY4MzYzNzI2MDM3NjIiPiLgtrjgt4/gtrDgt4rigI3gtrog4LaL4La04LeP4LaC4Lac4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9sYWJlbCIgbXNnaWQ9Ijc3MjU2NzEzMzU1NTA2OTU1ODkiPiJSU1NJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9lbWVyZ2VuY3lfb25seSIgbXNnaWQ9IjI3MTM3NzQwNDE2NzI4ODY3NTAiPiLgt4Tgtq/gt5Lgt4Pgt5Ig4LaH4La44Lat4LeU4La44LeKIOC2tOC2uOC2q+C3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3NldHRpbmdzX2xhYmVsIiBtc2dpZD0iNTMyNjU1NjU5MjU3ODA2NTQwMSI+IuC3g+C3kOC2muC3g+C3k+C2uOC3iiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3RpbWVfbGFiZWwiIG1zZ2lkPSI0NjM1OTY5MTgyMjM5NzM2NDA4Ij4i4LeA4Lea4La94LeP4LeAIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfdXNlcl9sYWJlbCIgbXNnaWQ9IjUyMzg5OTU2MzIxMzA4OTc4NDAiPiLgtrjgtrgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2xhYmVsIiBtc2dpZD0iOTEzNTM0NDcwNDg5OTU0NjA0MSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNzE3MTkwNDg0NTM0NTU3MzQzMSI+IuC3g+C2uOC3iuC2tuC2seC3iuC2sCDgt4Dgt5Mg4Lax4Lec4La44LeQ4LatIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub19uZXR3b3JrIiBtc2dpZD0iMjIyMTk5MzA3NzIyMDg1NjM3NiI+IuC2ouC3j+C2veC2uuC2muC3iiDgtrHgt5Dgtq0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX29mZl9sYWJlbCIgbXNnaWQ9Ijc1NTg3NzgxMDA4NDM4ODU4NjQiPiJXaS1GaSDgtoXgtprgt4rigI3gtrvgt5Lgtrrgtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbGFiZWwiIG1zZ2lkPSI2ODkzNTkyOTY0NDYzNjI0MzMzIj4iV2ktRmkg4LeD4LaC4Lav4La74LeK4LeB4Laa4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4i4Lax4Lec4La74LeQ4LeE4LeQ4Lax4LeKIOC3g+C2guC2r+C2u+C3iuC3geC2muC2uiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IuC2r+C3k+C2tOC3iuC2reC3kuC2uOC2reC3iiDgtrbgt4AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4i4LeD4LeK4LeA4La64LaC4Laa4LeK4oCN4La74LeT4La6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RpdGxlIiBtc2dpZD0iMTE5OTIzNzc0NDA4NjQ2OTIxNyI+IuC2r+C3kOC2seC3lOC2uOC3iuC2r+C3k+C2uOC3iiDgtrjgt5ngtq3gtrEg4La04LeZ4Lax4LeK4Lax4LeU4La44LeKIOC2muC2u+C2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+IuC2tOC3hOC2veC2pyDgt4Pgtrvgt4rgtrTgtqvgtrog4Laa4LeS4La74LeT4La44LeZ4Lax4LeKIOC2leC2seC3keC2uCDgt4Dgt5ngtr3gt4/gt4Dgtpog4LaS4LeA4LePIOC3gOC3meC2rSDgtrTgt5Lgt4Dgt5Lgt4Pgt5ngtrHgt4rgtrEuXG7gtrTgtq/gt4rgtrDgtq3gt5Ig4La04LeP4La94LaaIOC3g+C2s+C3hOC3jyDgtrHgt5Dgt4Dgtq0g4La04LeE4LeF4LanIOC3g+C2u+C3iuC2tOC2q+C2uiDgtprgtrvgtrHgt4rgtrEuIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXNrL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1zay9zdHJpbmdzLnhtbAppbmRleCBjNTQ1NDBjLi4zOTk2Zjc3IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXNrL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtc2svc3RyaW5ncy54bWwKQEAgLTYxLDggKzYxLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4iVsW+ZHkgcG92b2xpxaUgeiB0b2h0byBwb8SNw610YcSNYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IlByaWJsw63FvmnFpSBuYSBjZWzDuiBvYnJhem92a3UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iTmEgY2Vsw7ogb2JyYXpvdmt1Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4iw5pwcmF2YSB2ZcS+a29zdGkgeiBkw7R2b2R1IGtvbXBhdGliaWxpdHkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4iQWsgamUgYXBsaWvDoWNpYSBuYXZyaG51dMOhIHByZSBtZW7FoWl1IG9icmF6b3ZrdSwgem9icmF6w60gc2EgdmVkxL5hIGhvZMOtbiBvdmzDoWRhY8OtIHBydm9rIHByaWJsw63FvmVuaWEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IlByZWJpZWhhIHVrbGFkYW5pZSBzbsOtbWt5IG9icmF6b3ZreS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IlByZWJpZWhhIHVrbGFkYW5pZSBzbsOtbWt5IG9icmF6b3ZreS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4iU27DrW1rYSBvYnJhem92a3kgc2EgdWtsYWTDoS4iPC9zdHJpbmc+CkBAIC03OCw2ICs3Niw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4iUGxvY2hhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4iTWVudSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+Ik5vdsOpIGFwbGlrw6FjaWUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJIxL5hZGHFpSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiJGb3RvYXBhcsOhdCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4iVGxhxI1pZGxvIHByZXBudXRpYSBtZXTDs2R5IHZzdHVwdS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4iVGxhxI1pZGxvIMO6cHJhdnkgdmXEvmtvc3RpIHogZMO0dm9kdSBrb21wYXRpYmlsaXR5LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4iWnbDpMSNxaFpxaUgbWVuxaHDrSBvYnLDoXpvayBuYSB2w6TEjcWhaXUgb2JyYXpvdmt1LiI8L3N0cmluZz4KQEAgLTE1NSw2ICsxNTUsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IkJhdMOpcmlhOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IlJlxb5pbSBWIGxpZXRhZGxlOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGg6IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4iUG9sb2hhOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IkJ1ZMOtayBuYXN0YXZlbsO9IG5hIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iRMOhdG92w6kgcHJlbm9zeSAyRyBhIDNHIHPDuiB6YWvDoXphbsOpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iRMOhdG92w6kgcHJlbm9zeSA0RyBzw7ogemFrw6F6YW7DqSI8L3N0cmluZz4KQEAgLTE2NiwxMiArMTY3LDEzIEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXaS1GaTogcHJpcG9qZW7DqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iVnloxL5hZMOhdmFuaWUgc2F0ZWxpdG92IEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJQb2xvaGEgbmFzdGF2ZW7DoSBwb21vY291IEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IsW9aWFkb3N0aSBvIHBvbG9odSBzw7ogYWt0w612bmUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiJWeW1hemHFpSB2xaFldGt5IHVwb3pvcm5lbmlhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiJJbmZvcm3DoWNpZSBvIGFwbGlrw6FjaWkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+Ik9icmF6b3ZrYSBzYSBhdXRvbWF0aWNreSBvdG/EjcOtLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iT2JyYXpvdmthIGplIHV6YW1rbnV0w6EgdiBvcmllbnTDoWNpaSBuYSDFocOtcmt1LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiJPYnJhem92a2EgamUgdXphbWtudXTDoSB2IG9yaWVudMOhY2lpIG5hIHbDvcWha3UuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IlB1bHQgcyBkZXplcnRhbWkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4ixaBldHJpxI0gb2JyYXpvdmt5Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+IlJlxb5pbSBWIGxpZXRhZGxlIjwvc3RyaW5nPgpAQCAtMjAwLDggKzIwMiw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJCZXpkcsO0dG92w70gZGlzcGxlaiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IkphcyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiJBVVRPTUFUSUNLWSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiJUdSBzYSB6b2JyYXp1asO6IHVwb3pvcm5lbmlhIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4iTcO0xb5ldGUgaWNoIGtlZHlrb8S+dmVrIHpvYnJhemnFpSB0YWssIMW+ZSBwb3N1bmlldGUgcHJzdG9tIG5hZG9sLlxuQWsgcG9zdW5pZXRlIHByc3RvbSBuYWRvbCBlxaF0ZSByYXosIHpvYnJhemlhIHNhIG92bMOhZGFjaWUgcHJ2a3kgc3lzdMOpbXUuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4iUGFuZWwgem9icmF6w610ZSBwb3N1bnV0w61tIGNleiBva3JhaiBvYnJhem92a3kiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IlN5c3TDqW1vdsO9IHBhbmVsIHpvYnJhesOtdGUgcG9zdW51dMOtbSBjZXogb2tyYWogb2JyYXpvdmt5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+IlJlxb5pbSBwcmV2csOhdGVuaWEgZmFyaWViIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4iUmXFvmltIHp2w73FoWVuw6lobyBrb250cmFzdHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+IlJlxb5pbSBrb3Jla2NpZSBmYXJpZWIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+IlNpZcWlIG3DtMW+ZSBiecWlXG5tb25pdG9yb3ZhbsOhIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXNsL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1zbC9zdHJpbmdzLnhtbAppbmRleCAzZmM0ODgyLi42MzdiNWI5IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXNsL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtc2wvc3RyaW5ncy54bWwKQEAgLTYxLDggKzYxLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4iVmVkbm8gZG92b2xpIGl6IHRlZ2EgcmHEjXVuYWxuaWthIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4iUG92ZcSNYXZhIMSNZXogY2VsIHphc2xvbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiJSYXp0ZWduaXRldiDEjWV6IHphc2xvbiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+IlJhesWhaXJpdGV2IHpkcnXFvmxqaXZvc3RpIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+IsSMZSBqZSBwcm9ncmFtIGl6ZGVsYW4gemEgbWFuasWhZSB6YXNsb25lLCBzZSBvYiB1cmkgcG9rYcW+ZSBrb250cm9sbmlrIHphIHBvdmXEjWF2by4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4iU2hyYW5qZXYuIHBvc25ldGthIHphc2xvbmEgLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4iU2hyYW5qZXZhbmplIHBvc25ldGthIHphc2xvbmEgLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiJTaHJhbmpldmFuamUgcG9zbmV0a2EgemFzbG9uYS4iPC9zdHJpbmc+CkBAIC03OCw2ICs3Niw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4iWmHEjWV0bmkgemFzbG9uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4iTWVuaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+Ik5lZGF2bmkgcHJvZ3JhbWkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJJc2thbmplIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+IkZvdG9hcGFyYXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+Ikd1bWIgemEgcHJla2xvcCBuYcSNaW5hIHZub3NhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiJHdW1iIHBvdmXEjWF2ZSB6YSB6ZHJ1xb5saml2b3N0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4iUG92ZcSNYXZhIG1hbmrFoWVnYSBuYSB2ZcSNamkgemFzbG9uLiI8L3N0cmluZz4KQEAgLTE1Myw2ICsxNTMsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IkJhdGVyaWphOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IkxldGFsc2tpIG5hxI1pbjogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+Ikxva2FjaWphOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IkFsYXJtIGplIG5hc3RhdmxqZW4gbmEgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiJQb2RhdGtpIDJHLTNHIHNvIG9uZW1vZ2/EjWVuaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IlBvZGF0a2kgNEcgc28gb25lbW9nb8SNZW5pIjwvc3RyaW5nPgpAQCAtMTY0LDEyICsxNjUsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpIHBvdmV6YW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+Iklza2FuamUgR1BTLWEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4iTG9rYWNpamEgbmFzdGF2bGplbmEgeiBHUFMtb20iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJBa3Rpdm5lIHphaHRldmUgemEgbG9rYWNpam8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiJJemJyacWhaSB2c2Egb2J2ZXN0aWxhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiJQb2RhdGtpIG8gYXBsaWthY2lqaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4iWmFzbG9uIHNlIGJvIHNhbW9kZWpubyB6YXN1a2FsLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iWmFzbG9uIGplIHpha2xlbmplbiB2IGxlxb5lxI1pIHVzbWVyamVub3N0aS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fcG9ydHJhaXQiIG1zZ2lkPSI1ODA5MzY3NTIxNjQ0MDEyMTE1Ij4iWmFzbG9uIGplIHpha2xlbmplbiB2IHBva29uxI1uaSB1c21lcmplbm9zdGkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IlZpdHJpbmEgemEgc2xhZGljZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJTYW5qYXJqZW5qZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiJOYcSNaW4gemEgbGV0YWxvIjwvc3RyaW5nPgpAQCAtMTk4LDggKzIwMCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJQcmlrYXogYnJlesW+acSNbmloIG5hcHJhdiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IlN2ZXRsb3N0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IlNBTU9ERUpOTyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiJPYnZlc3RpbGEgc28gcHJpa2F6YW5hIHR1a2FqIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4iRG8gbmppaCBsYWhrbyBrYWRhciBrb2xpIGRvc3RvcGF0ZSB0YWtvLCBkYSBwb3ZsZcSNZXRlIG5hdnpkb2wuXG5aYSBwcmlrYXogc2lzdGVtc2tpaCBrb250cm9sbmlrb3Ygem5vdmEgcG92bGVjaXRlIG5hdnpkb2wuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4iVnJzdGljbyBwcmlrYcW+ZXRlIHRha28sIGRhIHBvdmxlxI1ldGUgeiByb2JhIHphc2xvbmEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IlNpc3RlbXNrbyB2cnN0aWNvIHByaWthxb5ldGUgdGFrbywgZGEgcG92bGXEjWV0ZSB6IHJvYmEgemFzbG9uYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiJOYcSNaW4gaW52ZXJ6aWplIGJhcnYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiJOYcSNaW4gaXpib2xqxaFhbmVnYSBrb250cmFzdGEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+Ik5hxI1pbiBwb3ByYXZsamFuamEgYmFydiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iT21yZcW+amUgamVcbmxhaGtvIHNwcmVtbGphbm8iPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtc3Ivc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXNyL3N0cmluZ3MueG1sCmluZGV4IDdiYTJkYTUuLjQyZmQ3YWMgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtc3Ivc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1zci9zdHJpbmdzLnhtbApAQCAtNjEsOCArNjEsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiLQo9Cy0LXQuiDQtNC+0LfQstC+0LvQuCDRgdCwINC+0LLQvtCzINGA0LDRh9GD0L3QsNGA0LAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiLQl9GD0LzQuNGA0LDRmCDQvdCwINGG0LXQu9C+0Lwg0LXQutGA0LDQvdGDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+ItCg0LDQt9Cy0YPRhtC4INC90LAg0YbQtdC+INC10LrRgNCw0L0iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiLQmtC+0LzQv9Cw0YLQuNCx0LjQu9C90L4g0LfRg9C80LjRgNCw0ZrQtSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiLQmtCw0LTQsCDRmNC1INCw0L/Qu9C40LrQsNGG0LjRmNCwINC90LDQvNC10ZrQtdC90LAg0LzQsNGa0LXQvCDQtdC60YDQsNC90YMsINC60L7QvdGC0YDQvtC70LAg0LfRg9C80LjRgNCw0ZrQsCDQv9GA0LjQutCw0LfRg9GY0LUg0YHQtSDQv9C+0YDQtdC0INGB0LDRgtCwLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiLQp9GD0LLQsNGa0LUg0YHQvdC40LzQutCwINC10LrRgNCw0L3QsC4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+ItCn0YPQstCw0ZrQtSDRgdC90LjQvNC60LAg0LXQutGA0LDQvdCwLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLQodC90LjQvNCw0Log0LXQutGA0LDQvdCwINGB0LUg0YfRg9Cy0LAuIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+ItCf0L7Rh9C10YLQvdCwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4i0JzQtdC90LgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiLQndC10LTQsNCy0L3QtSDQsNC/0LvQuNC60LDRhtC40ZjQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+ItCf0YDQtdGC0YDQsNC20LjRgtC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+ItCa0LDQvNC10YDQsCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4i0JTRg9Cz0LzQtSDQn9GA0L7QvNC10L3QuCDQvNC10YLQvtC0INGD0L3QvtGB0LAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+ItCU0YPQs9C80LUg0JfRg9C8INC60L7QvNC/0LDRgtC40LHQuNC70L3QvtGB0YLQuC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+ItCX0YPQvNC40YDQsNGa0LUg0YHQsCDQvNCw0ZrQtdCzINC90LAg0LLQtdGb0Lgg0LXQutGA0LDQvS4iPC9zdHJpbmc+CkBAIC0xNTMsNiArMTUzLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiLQkdCw0YLQtdGA0LjRmNCwOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+ItCg0LXQttC40Lwg0YDQsNC00LAg0YMg0LDQstC40L7QvdGDOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGg6IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4i0JvQvtC60LDRhtC40ZjQsCDRmNC1IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4i0JDQu9Cw0YDQvCDRmNC1INC/0L7QtNC10YjQtdC9INC30LAgPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiIyR+KAkzNHINC/0L7QtNCw0YbQuCDRgdGDINC+0L3QtdC80L7Qs9GD0ZvQtdC90LgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiI0RyDQv9C+0LTQsNGG0Lgg0YHRgyDQvtC90LXQvNC+0LPRg9Gb0LXQvdC4Ijwvc3RyaW5nPgpAQCAtMTY0LDEyICsxNjUsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpINGY0LUg0L/QvtCy0LXQt9Cw0L0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+ItCi0YDQsNC20Lgg0YHQtSBHUFMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4i0JvQvtC60LDRhtC40ZjRgyDRmNC1INC/0L7QtNC10YHQuNC+IEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+ItCY0LzQsCDQsNC60YLQuNCy0L3QuNGFINC30LDRhdGC0LXQstCwINC30LAg0LvQvtC60LDRhtC40ZjRgyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+ItCe0LHRgNC40YjQuCDRgdCy0LAg0L7QsdCw0LLQtdGI0YLQtdGa0LAuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+ItCY0L3RhNC+0YDQvNCw0YbQuNGY0LUg0L4g0LDQv9C70LjQutCw0YbQuNGY0LgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+ItCV0LrRgNCw0L0g0ZvQtSDRgdC1INCw0YPRgtC+0LzQsNGC0YHQutC4INGA0L7RgtC40YDQsNGC0LguIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiLQldC60YDQsNC9INGY0LUg0LfQsNC60ZnRg9GH0LDQvSDRgyDRhdC+0YDQuNC30L7QvdGC0LDQu9C90L7QvCDQv9C+0LvQvtC20LDRmNGDLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLQldC60YDQsNC9INGY0LUg0LfQsNC60ZnRg9GH0LDQvSDRgyDQstC10YDRgtC40LrQsNC70L3QvtC8INC/0L7Qu9C+0LbQsNGY0YMuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+ItCS0LjRgtGA0LjQvdCwINGB0LAg0L/QvtGB0LvQsNGB0YLQuNGG0LDQvNCwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+ItCh0LDRmtCw0YDQtdGa0LUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiLQldGC0LXRgNC90LXRgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4i0KDQtdC20LjQvCDRgNCw0LTQsCDRgyDQsNCy0LjQvtC90YMiPC9zdHJpbmc+CkBAIC0xOTgsOCArMjAwLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+ItCR0LXQttC40YfQvdC4INC10LrRgNCw0L0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiLQntGB0LLQtdGC0ZnQtdC90L7RgdGCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+ItCQ0KPQotCe0JzQkNCi0KHQmtCQIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RpdGxlIiBtc2dpZD0iMTE5OTIzNzc0NDA4NjQ2OTIxNyI+ItCe0LHQsNCy0LXRiNGC0LXRmtCwINGB0LUg0L/QvtGY0LDQstGZ0YPRmNGDINC+0LLQtNC1Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4i0J/RgNC40YHRgtGD0L/QuNGC0LUg0LjQvCDRgyDQsdC40LvQviDQutC+0Lwg0YLRgNC10L3Rg9GC0LrRgyDQu9C40YHRgtCw0ZrQtdC8INC90LDQtNC+0LvQtS5cbtCf0L7QvdC+0LLQviDQu9C40YHRgtCw0ZjRgtC1INC90LDQtNC+0LvQtSDQtNCwINCx0Lgg0YHQtSDQv9GA0LjQutCw0LfQsNC70LUg0YHQuNGB0YLQtdC80YHQutC1INC60L7QvdGC0YDQvtC70LUuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4i0J/RgNC10LLRg9GG0LjRgtC1INC/0L4g0LjQstC40YbQuCDQtdC60YDQsNC90LAg0LTQsCDQsdC4INGB0LUg0L/RgNC40LrQsNC30LDQu9CwINGC0YDQsNC60LAiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+ItCf0YDQtdCy0YPRhtC40YLQtSDQvtC0INC40LLQuNGG0LUg0LXQutGA0LDQvdCwINC00LAg0LHQuCDRgdC1INC/0YDQuNC60LDQt9Cw0LvQsCDRgdC40YHRgtC10LzRgdC60LAg0YLRgNCw0LrQsCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiLQoNC10LbQuNC8INC40L3QstC10YDQt9C40ZjQtSDQsdC+0ZjQtSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+ItCg0LXQttC40Lwg0YPQvdCw0L/RgNC10ZLQtdC90L7QsyDQutC+0L3RgtGA0LDRgdGC0LAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+ItCg0LXQttC40Lwg0LrQvtGA0LXQutGG0LjRmNC1INCx0L7RmNC1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiLQnNGA0LXQttCwINGB0LUg0LzQvtC20LTQsFxu0L3QsNC00LPQu9C10LTQsCI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1zdi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtc3Yvc3RyaW5ncy54bWwKaW5kZXggMDIyZTJmMi4uNTU4YzViNCAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1zdi9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXN2L3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IlRpbGzDpXQgYWxsdGlkIHDDpSBkZW4gaMOkciBkYXRvcm4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiJab29tYSBmw7ZyIGF0dCBmeWxsYSBza8Okcm0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iRHJhIGbDtnIgYXR0IGZ5bGxhIHNrw6RybWVuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4iWm9vbSBpIGtvbXBhdGliaWxpdGV0c2zDpGdlIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+Ik7DpHIgZW4gYXBwIMOkciBhbnBhc3NhZCBmw7ZyIGVuIG1pbmRyZSBza8Okcm0gdmlzYXMgZXR0IHpvb21yZWdsYWdlIHZpZCBrbG9ja2FuLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiJTa8Okcm1kdW1wZW4gc3BhcmFzIC4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IlNrw6RybWR1bXBlbiBzcGFyYXMgLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiJTa8Okcm1kdW1wZW4gc3BhcmFzLiI8L3N0cmluZz4KQEAgLTc4LDYgKzc2LDggQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiJTdGFydHNpZGEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJNZW55Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iU2VuYXN0ZSBhcHBhcm5hIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4iU8O2ayI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiJLYW1lcmEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IktuYXBwIGbDtnIgYnl0ZSBhdiBpbm1hdG5pbmdzbWV0b2QuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IktuYXBwIGbDtnIga29tcGF0aWJpbGl0ZXRzem9vbS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+Ilpvb21hIG1pbmRyZSBza8Okcm0gdGlsbCBzdMO2cnJlLiI8L3N0cmluZz4KQEAgLTE1Myw2ICsxNTMsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IkJhdHRlcmkgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiJGbHlncGxhbnNsw6RnZSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGggPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiJQbGF0cyA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IkFsYXJtZXQgcmluZ2VyIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iRGF0YSB2aWEgMkctM0cgaGFyIGluYWt0aXZlcmF0cyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IkRhdGEgdmlhIDRHIGhhciBpbmFrdGl2ZXJhdHMiPC9zdHJpbmc+CkBAIC0xNjQsMTIgKzE2NSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmktYW5zbHV0ZW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IlPDtmtuaW5nIGVmdGVyIEdQUyBww6Vnw6VyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IlBsYXRzZW4gaGFyIGlkZW50aWZpZXJhdHMgYXYgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4iRGV0IGZpbm5zIGFrdGl2YSBwbGF0c2JlZ8OkcmFuZGVuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iVGEgYm9ydCBhbGxhIG1lZGRlbGFuZGVuLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiJJbmZvIG9tIGFwcGVuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiJTa8Okcm1lbiByb3RlcmFzIGF1dG9tYXRpc2t0LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iQmlsZHNrw6RybWVucyByaWt0bmluZyDDpHIgbnUgbMOlc3QgaSBsaWdnYW5kZSBmb3JtYXQuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IkJpbGRza8Okcm1lbnMgcmlrdG5pbmcgw6RyIG51IGzDpXN0IGkgc3TDpWVuZGUgZm9ybWF0LiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiJEZXNzZXJ0ZGlza2VuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IkRhZ2Ryw7ZtIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+IkZseWdwbGFuc2zDpGdlIjwvc3RyaW5nPgpAQCAtMTk4LDggKzIwMCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJUcsOlZGzDtnMgc2vDpHJtIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4iTGp1c3N0eXJrYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiJBVVRPIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RpdGxlIiBtc2dpZD0iMTE5OTIzNzc0NDA4NjQ2OTIxNyI+Ik1lZGRlbGFuZGVuIHZpc2FzIGjDpHIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiJEdSBrb21tZXIgw6V0IGRlbSBuw6RyIHNvbSBoZWxzdCBnZW5vbSBhdHQgZHJhIG5lZMOldC5cbkRyYSBuZWTDpXQgaWdlbiBvbSBkdSB2aWxsIHZpc2Egc3lzdGVta29udHJvbGxlci4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiJEcmEgZnLDpW4ga2FudGVuIGF2IHNrw6RybWVuIG9tIGR1IHZpbGwgdmlzYSBmw6RsdGV0Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiJEcmEgZnLDpW4ga2FudGVuIGF2IHNrw6RybWVuIG9tIGR1IHZpbGwgdmlzYSBzeXN0ZW1mw6RsdGV0Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+IkbDpHJnaW52ZXJ0ZXJpbmdzbMOkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiJLb250cmFzdGbDtnJiw6R0dHJpbmdzbMOkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+IkbDpHJna29ycmlnZXJpbmdzbMOkZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+Ik7DpHR2ZXJrZXQga2FuXG52YXJhIMO2dmVydmFrYXQiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtc3cvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXN3L3N0cmluZ3MueG1sCmluZGV4IDI3ZjU1NmMuLmE1NDgxMTAgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtc3cvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy1zdy9zdHJpbmdzLnhtbApAQCAtNTksOCArNTksNiBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiJSdWh1c3Uga3V0b2thIGt3ZW55ZSBrb21weXV0YSBoaWkga2lsYSB3YWthdGkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiJLdXphIGlsaSBrdWphemEgc2tyaW5pIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+IlRhbnVhIGlsaSBrdWphemEgc2tyaW5pIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4iS3VrdXphIGt3YSBVdGFuZ2FtYW5pZnUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4iV2FrYXRpIHByb2dyYW11IGlsaWJ1bml3YSBrd2Egc2tyaW5pIG5kb2dvLCBraWRoaWJpdGkgY2hhIGt1a3V6YSBraXRhb25la2FuYSBrd2Egc2FhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiJJbmFoaWZhZGhpIHBpY2hhIHlhIHNrcmluaS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IkluYWhpZmFkaGkgcGljaGEgeWEgc2tyaW5pLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiJQaWNoYSB5YSBza3JpbmkgaW5haGlmYWRoaXdhIjwvc3RyaW5nPgpAQCAtNzYsNiArNzQsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+Ik55dW1iYW5pIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4iTWVueXUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiJQcm9ncmFtdSB6YSBoaXZpIGthcmlidW5pIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4iVGFmdXRhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+IkthbWVyYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4iU3dpY2hpIGtpdHVmZSBjaGEgbWJpbnUgaW5naXppLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiJLaWNodXBvIGNoYSBrdWt1emEga3dhIHV0YW5nYW1hbmlmdSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4iS3V6YSBraWRvZ28ga3dhIHNrcmluaSBrdWJ3YS4iPC9zdHJpbmc+CkBAIC0xMzAsNyArMTMwLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX3dpZmkiIG1zZ2lkPSIyMzI0NDk2NzU2NTkwNjQ1MjIxIj4iV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3NpbSIgbXNnaWQ9IjgyNzQwMTcxMTg0NzI0NTUxNTUiPiJIYWt1bmEgU0lNLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX3RldGhlciIgbXNnaWQ9IjQxMDI3ODQ0OTgxNDAyNzE5NjkiPiJTaGlyaWtpIGludGFuZXRpIGt3YSBCbHVldG9vdGguIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9haXJwbGFuZV9tb2RlIiBtc2dpZD0iODM0NzQ4OTk5NzkwNzYzMDkyIj4iTW9kaSB5YSBuZGVnZS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2FpcnBsYW5lX21vZGUiIG1zZ2lkPSI4MzQ3NDg5OTk3OTA3NjMwOTIiPiJIYWxpIHlhIG5kZWdlLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmF0dGVyeV9sZXZlbCIgbXNnaWQ9Ijc0NTE0NzQxODcxMTMzNzE5NjUiPiJBc2lsaW1pYSA8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4geWEgYmV0cmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9Ijc5OTU4MzkxMTIzMTg5MzM4MCI+Ik1pcGFuZ2lsaW8geWEgbWZ1bW8uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25zX2J1dHRvbiIgbXNnaWQ9IjQ0OTgwMDAzNjk3Nzk0MjE4OTIiPiJBcmlmYS4iPC9zdHJpbmc+CkBAIC0xNTEsNiArMTUxLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiJCZXRyaSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IkhhbGkgeWEgTmRlZ2UgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4iTWFoYWxpIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4iS2VuZ2VsZSBpbWV3ZWt3YSA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IkRhdGEgeWEgMkctM0cgaW1lbGVtYXp3YSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IkRhdGEgeWEgNEcgaW1lbGVtYXp3YSI8L3N0cmluZz4KQEAgLTE2MiwxNSArMTYzLDE2IEBACiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJNdGFuZGFvLWhld2EgdW1ldW5nYW5pc2h3YSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iSW5hdGFmdXRhIEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJNYWhhbGkgcGFtZXdla3dhIG5hIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+Ik1hb21iaSB5YSBlbmVvIHlhbmF0dW1pa2EiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiJGdXRhIGFyaWZhIHpvdGUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IlRhYXJpZmEgeWEgcHJvZ3JhbXUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IlNrcmluaSBpdGF6dW5ndWthIGtpb3RvbWF0aWtpLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iU2tyaW5pIGltZWZ1bmd3YSBzYXNhIGthdGlrYSB1ZWxla2V6byB3YSBtYW5kaGFyaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fcG9ydHJhaXQiIG1zZ2lkPSI1ODA5MzY3NTIxNjQ0MDEyMTE1Ij4iU2tyaW5pIGltZWZ1bmd3YSBrYXRpa2EgdWVsZWtlbyB3YSBwaWNoYS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4iU2FuZHVrdSBsYSBWaXRpbmRhbWxvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IkhhbGkgVHVsaXZ1Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+Ik1vZGkgeWEgbmRlZ2UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+IkhhbGkgeWEgbmRlZ2UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnaW5nX2xhYmVsIiBtc2dpZD0iNDkwMDc0Nzc0NDY1MzA5MjA5Ij4iSW5hY2hhamksIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkPC94bGlmZjpnPjx4bGlmZjpnIGlkPSJQRVJDRU5UIj4lJTwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnZWRfbGFiZWwiIG1zZ2lkPSI4ODY1NDEzMDc5NDE0MjQ2MDgxIj4iSW1lY2hhaml3YSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9sYWJlbCIgbXNnaWQ9IjYzMDQxOTAyODUxNzA3MjE0MDEiPiJCbHVldG9vdGgiPC9zdHJpbmc+CkBAIC0xODAsMTAgKzE4Miw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+Ilp1bmd1c2hhIE90b21hdGlraSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX2xvY2tlZF9sYWJlbCIgbXNnaWQ9IjgwNTg2NDY0NDcyNDI1NjU0ODYiPiJNenVuZ3VrbyBVbWVmdW5nd2EiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4iTWJpbnUgeWEgdWluZ2l6YWppIjwvc3RyaW5nPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsICg1MDExMzI3MDQ4NzQ4NzYyMjU3KSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCAoNzQ2NDU0NDA4NjUwNzMzMTQ1OSkgLS0+Ci0gICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+Ikt1dGFtYnVhIEVuZW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4iS2l0YW1idWEgZW5lbyBraW1lemltd2EiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4iS2lmYWEgY2hhIG1pZGlhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9sYWJlbCIgbXNnaWQ9Ijc3MjU2NzEzMzU1NTA2OTU1ODkiPiJSU1NJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9lbWVyZ2VuY3lfb25seSIgbXNnaWQ9IjI3MTM3NzQwNDE2NzI4ODY3NTAiPiJTaW11IHphIERoYXJ1cmEgUGVrZWUiPC9zdHJpbmc+CkBAIC0xOTgsOCArMTk4LDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IlVvbnllc2hhamkgUGFzaXdheWEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiJVbmdcJ2F2dSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiJLSU9UT01BVElLSSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiJBcmlmYSB6aXRhb25la2FuYSBoYXBhIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4iWmlmaWtpZSB3YWthdGkgd293b3RlIGt3YSBrdXRlbGV6ZXNoYSBjaGluaS5cblRlbGV6ZXNoYSBjaGluaSB0ZW5hIGt1cGF0YSB2aWRoaWJpdGkgdnlhIG1mdW1vLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+IlBhcGFzYSBrd2Ega2FzaSBrdXRva2EgdWtpbmdvIHdhIHNrcmluaSBpbGkga3Vvbnllc2hhIHVwYXUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IlBhcGFzYSBrd2Ega2FzaSBrdXRva2EgdWtpbmdvIHdhIHNrcmluaSBpbGkga3Vvbnllc2hhIHVwYXUgd2EgbWZ1bW8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4iSGFsaSB5YSB1Z2V1emFqaSBraW55dW1lIHdhIHJhbmdpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4iSGFsaSB5YSB1dG9mYXV0aXNoYWppIHVsaW9ib3Jlc2h3YSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4iSGFsaSB5YSBrdXNhaGloaXNoYSByYW5naSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iSHVlbmRhIG10YW5kYW9cbnVuYWZ1YXRpbGl3YSI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy10aC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtdGgvc3RyaW5ncy54bWwKaW5kZXggZGM2NDNjNC4uOTYyZmM3ZSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy10aC9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXRoL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IuC4reC4meC4uOC4jeC4suC4leC4iOC4suC4geC4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jOC5gOC4hOC4o+C4t+C5iOC4reC4h+C4meC4teC5ieC5gOC4quC4oeC4rSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IuC4guC4ouC4suC4ouC4iOC4meC5gOC4leC5h+C4oeC4q+C4meC5ieC4suC4iOC4rSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLguKLguLfguJTguIjguJnguYDguJXguYfguKHguKvguJnguYnguLLguIjguK0iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiLguITguKfguLLguKHguYDguILguYnguLLguIHguLHguJnguYTguJTguYnguILguK3guIfguIHguLLguKPguKLguYjguK0v4LiC4Lii4Liy4LiiIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+IuC4quC4s+C4q+C4o+C4seC4muC5geC4reC4m+C4nuC4peC4tOC5gOC4hOC4iuC4seC4meC4l+C4teC5iOC4reC4reC4geC5geC4muC4muC4oeC4suC4quC4s+C4q+C4o+C4seC4muC4q+C4meC5ieC4suC4iOC4reC4guC4meC4suC4lOC5gOC4peC5h+C4gSDguJXguLHguKfguITguKfguJrguITguLjguKHguIHguLLguKPguKLguYjguK0v4LiC4Lii4Liy4Lii4LiI4Liw4Lib4Lij4Liy4LiB4LiP4LiC4Li24LmJ4LiZ4LiC4LmJ4Liy4LiH4LiZ4Liy4Lis4Li04LiB4LiyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IuC4geC4s+C4peC4seC4h+C4muC4seC4meC4l+C4tuC4geC4oOC4suC4nuC4q+C4meC5ieC4suC4iOC4rS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+IuC4geC4s+C4peC4seC4h+C4muC4seC4meC4l+C4tuC4geC4oOC4suC4nuC4q+C4meC5ieC4suC4iOC4rS4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i4LiB4Liz4Lil4Lix4LiH4Lia4Lix4LiZ4LiX4Li24LiB4Lig4Liy4Lie4Lir4LiZ4LmJ4Liy4LiI4LitIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IuC4q+C4meC5ieC4suC5geC4o+C4gSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+IuC5gOC4oeC4meC4uSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IuC5geC4reC4m+C4nuC4peC4tOC5gOC4hOC4iuC4seC4meC4peC5iOC4suC4quC4uOC4lCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+IuC4hOC5ieC4meC4q+C4siI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiLguIHguKXguYnguK3guIfguJbguYjguLLguKLguKPguLnguJsiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IuC4m+C4uOC5iOC4oeC4quC4peC4seC4muC4p+C4tOC4mOC4teC4geC4suC4o+C4m+C5ieC4reC4meC4guC5ieC4reC4oeC4ueC4pSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiLguJvguLjguYjguKHguIvguLnguKHguJfguLXguYjguYPguIrguYnguIfguLLguJnguKPguYjguKfguKHguIHguLHguJnguYTguJTguYkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+IuC4i+C4ueC4oeC4q+C4meC5ieC4suC4iOC4reC5g+C4q+C5ieC4oeC4teC4guC4meC4suC4lOC5g+C4q+C4jeC5iOC4guC4tuC5ieC4mSI8L3N0cmluZz4KQEAgLTE1Myw2ICsxNTMsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+IuC5geC4muC4leC5gOC4leC4reC4o+C4teC5iCA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4i4LmC4Lir4Lih4LiU4LmD4LiK4LmJ4LiH4Liy4LiZ4Lia4LiZ4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lia4Li04LiZIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4i4Lia4Lil4Li54LiX4Li54LiYIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiLguKrguJbguLLguJnguJfguLXguYggPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IuC4leC4seC5ieC4h+C5gOC4p+C4peC4suC4m+C4peC4uOC4geC5hOC4p+C5ieC4l+C4teC5iCA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4i4Lib4Li04LiU4LmD4LiK4LmJ4LiH4Liy4LiZ4LiC4LmJ4Lit4Lih4Li54LilIDJHLTNHIOC5geC4peC5ieC4pyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IuC4m+C4tOC4lOC5g+C4iuC5ieC4h+C4suC4meC4guC5ieC4reC4oeC4ueC4pSA0RyDguYHguKXguYnguKciPC9zdHJpbmc+CkBAIC0xNjQsMTIgKzE2NSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4i4LmA4LiK4Li34LmI4Lit4Lih4LiV4LmI4LitIFdpRmkg4LmB4Lil4LmJ4LinIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiLguIHguLPguKXguLHguIfguITguYnguJnguKvguLIgR1BTIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IuC4leC4s+C5geC4q+C4meC5iOC4h+C4l+C4teC5iOC4geC4s+C4q+C4meC4lOC5guC4lOC4oiBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiLguITguLPguILguK3guJXguLPguYHguKvguJnguYjguIfguJfguLXguYjguKHguLXguIHguLLguKPguYPguIrguYnguIfguLLguJkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiLguKXguYnguLLguIfguIHguLLguKPguYHguIjguYnguIfguYDguJXguLfguK3guJnguJfguLHguYnguIfguKvguKHguJQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4i4LiC4LmJ4Lit4Lih4Li54Lil4LmB4Lit4LibIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiLguKvguJnguYnguLLguIjguK3guIjguLDguKvguKHguLjguJnguYLguJTguKLguK3guLHguJXguYLguJnguKHguLHguJXguLQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IuC4guC4k+C4sOC4meC4teC5ieC4q+C4meC5ieC4suC4iOC4reC4luC4ueC4geC4peC5h+C4reC4geC5g+C4q+C5ieC4p+C4suC4h+C5g+C4meC5geC4meC4p+C4meC4reC4mSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLguILguJPguLDguJnguLXguYnguKvguJnguYnguLLguIjguK3guJbguLnguIHguKXguYfguK3guIHguYPguKvguYnguKfguLLguIfguYPguJnguYHguJnguKfguJXguLHguYnguIciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iQmVhbkZsaW5nZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4i4LiK4Lix4LmJ4LiZ4LmB4Liq4LiU4LiH4LiC4Lit4LiH4Lir4Lin4Liy4LiZIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IkRheWRyZWFtIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4i4Lit4Li14LmA4LiX4Lit4Lij4LmM4LmA4LiZ4LmH4LiVIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLguYLguKvguKHguJTguYPguIrguYnguIfguLLguJnguJrguJnguYDguITguKPguLfguYjguK3guIfguJrguLTguJkiPC9zdHJpbmc+CkBAIC0xOTgsOCArMjAwLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IuC4iOC4reC5geC4quC4lOC4h+C4nOC4peC5hOC4o+C5ieC4quC4suC4oiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IuC4hOC4p+C4suC4oeC4quC4p+C5iOC4suC4hyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiLguK3guLHguJXguYLguJnguKHguLHguJXguLQiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4i4LiB4Liy4Lij4LmB4LiI4LmJ4LiH4LmA4LiV4Li34Lit4LiZ4LiI4Liw4LmB4Liq4LiU4LiH4LiC4Li24LmJ4LiZ4LiX4Li14LmI4LiZ4Li14LmIIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4i4LmA4LiC4LmJ4Liy4LiW4Li24LiH4LmE4LiU4LmJ4LiX4Li44LiB4LmA4Lih4Li34LmI4Lit4LiU4LmJ4Lin4Lii4LiB4Liy4Lij4LiB4Lin4Liy4LiU4LiZ4Li04LmJ4Lin4Lil4LiHXG7guIHguKfguLLguJTguJnguLTguYnguKfguKXguIfguK3guLXguIHguITguKPguLHguYnguIfguKrguLPguKvguKPguLHguJrguIHguLLguKPguITguKfguJrguITguLjguKHguKPguLDguJrguJoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiLguIHguKfguLLguJTguILguK3guJrguILguK3guIfguKvguJnguYnguLLguIjguK3guYDguJ7guLfguYjguK3guYHguKrguJTguIfguYHguJbguJoiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IuC4geC4p+C4suC4lOC4iOC4suC4geC4guC4reC4muC4guC4reC4h+C4q+C4meC5ieC4suC4iOC4reC5gOC4nuC4t+C5iOC4reC5geC4quC4lOC4h+C5geC4luC4muC4o+C4sOC4muC4miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiLguYLguKvguKHguJTguIHguLLguKPguIHguKXguLHguJrguKrguLUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiLguYLguKvguKHguJTguITguK3guJnguJfguKPguLLguKrguJXguYzguJfguLXguYjguJvguKPguLHguJrguJvguKPguLjguIfguYHguKXguYnguKciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+IuC5guC4q+C4oeC4lOC4geC4suC4o+C5geC4geC5ieC5hOC4guC4quC4tSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4i4LmA4LiE4Lij4Li34Lit4LiC4LmI4Liy4Lii4Lit4Liy4LiIXG7guJbguLnguIHguJXguKPguKfguIjguKrguK3guJoiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtdGwvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXRsL3N0cmluZ3MueG1sCmluZGV4IDAwNTNiZTQuLjNkZTBmMDYgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtdGwvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy10bC9zdHJpbmdzLnhtbApAQCAtNjEsOCArNjEsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiJQYWxhZ2luZyBwYXlhZ2FuIG11bGEgc2EgY29tcHV0ZXIgbmEgaXRvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4iSS16b29tIHVwYW5nIHB1bmFuIHNjcmVlbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiJJLXN0cmV0Y2ggdXBhbmcgbWFwdW5vIHNjcmVlbiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+Ilpvb20gc2EgcGFnaWdpbmcgVHVnbWEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4iS2FwYWcgbmFrYWRpc2VueW8gYW5nIGlzYW5nIGFwcCBwYXJhIHNhIG1hcyBtYWxpaXQgbmEgc2NyZWVuLCBpc2FuZyBrb250cm9sIG5nIHpvb20gYW5nIGxhbGFiYXMgc2EgbWF5IG9yYXNhbi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4iU2luZS1zYXZlIGFuZyBzY3JlZW5zaG904oCmIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4iU2luZS1zYXZlIGFuZyBzY3JlZW5zaG904oCmIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiJTaW5lLXNhdmUgYW5nIHNjcmVlbnNob3QuIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IkhvbWUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJNZW51Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iS2FtYWthaWxhbmcgYXBwcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+IkhhbmFwaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NhbWVyYV9idXR0b24iIG1zZ2lkPSI4MDY0NjcxNTgyODIwMzU4MTUyIj4iQ2FtZXJhIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9pbWVfc3dpdGNoX2J1dHRvbiIgbXNnaWQ9IjUwMzI5MjYxMzQ3NDA0NTY0MjQiPiJJbGlwYXQgYW5nIGJ1dHRvbiBuYSBwYW1hbWFyYWFuIG5nIHBhZy1pbnB1dC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4iQnV0dG9uIG5nIHpvb20gbmcgcGFnaWdpbmcgdHVnbWEuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiJNYWctem9vbSBuYW5nIG1hcyBtYWxpaXQgc2EgbWFzIG1hbGFraW5nIHNjcmVlbi4iPC9zdHJpbmc+CkBAIC0xNTMsNiArMTUzLDcgQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmF0dGVyeSIgbXNnaWQ9IjE0ODA5MzE1ODMzODE0MDg5NzIiPiI8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiBuZyBiYXRlcnlhLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4gbmcgQWlycGxhbmUgTW9kZS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiI8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPiBuZyBCbHVldG9vdGguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiJMb2thc3lvbiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FsYXJtIiBtc2dpZD0iMzk1OTkwODk3Mjg5NzI5NTY2MCI+IkFsYXJtIHNldCBwYXJhIHNhIDx4bGlmZjpnIGlkPSJUSU1FIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iRGkgcGluYXBhZ2FuYSBhbmcgMkctM0cgbmEgZGF0YSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IkhpbmRpIHBpbmFwYWdhbmEgYW5nIDRHIG5hIGRhdGEiPC9zdHJpbmc+CkBAIC0xNjQsMTIgKzE2NSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4ibmFrYWtvbmVrdGEgYW5nIFdpLUZpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJOYWdoYWhhbmFwIG5nIEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJMb2thc3lvbmcgaXRpbmF0YWtkYSBuZyBHUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJBa3RpYm8gYW5nIG1nYSBrYWhpbGluZ2FuIG5nIGxva2FzeW9uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4iSS1jbGVhciBhbmcgbGFoYXQgbmcgbm90aWZpY2F0aW9uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiJJbXBvcm1hc3lvbiBuZyBhcHAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IkF3dG9tYXRpa29uZyBpaWtvdCBhbmcgc2NyZWVuLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iTmFrYS1sb2NrIGFuZyBzY3JlZW4gc2EgcGFoaWdhbmcgb3J5ZW50YXN5b24uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+Ik5ha2EtbG9jayBhbmcgc2NyZWVuIHNhIHBhdGF5b25nIG9yeWVudGFzeW9uLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiJEZXNzZXJ0IENhc2UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iRGF5ZHJlYW0iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJFdGhlcm5ldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4iQWlycGxhbmUgbW9kZSI8L3N0cmluZz4KQEAgLTE5OCw4ICsyMDAsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4iV2lyZWxlc3MgRGlzcGxheSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IkJyaWdodG5lc3MiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4iQVVUTyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiJEaXRvIGx1bWFsYWJhcyBhbmcgbWdhIG5vdGlmaWNhdGlvbiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+IkktYWNjZXNzIGFuZyBtZ2EgaXRvIGFudW1hbmcgb3JhcyBzYSBwYW1hbWFnaXRhbiBuZyBwYWctc3dpcGUgcGFiYWJhLlxuTXVsaW5nIG1hZy1zd2lwZSBwYWJhYmEgcGFyYSBzYSBtZ2Ega29udHJvbCBuZyBzeXN0ZW0uIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2UiIG1zZ2lkPSI5MDUwODY5NTQ4OTUxMDQ0MzcxIj4iTWFnLXN3aXBlIHNhIGdpbGlkIG5nIHNjcmVlbiB1cGFuZyBpcGFraXRhIGFuZyBiYXIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+Ik1hZy1zd2lwZSBtdWxhIHNhIGdpbGlkIG5nIHNjcmVlbiB1cGFuZyBpcGFraXRhIGFuZyBzeXN0ZW0gYmFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+Ik1vZGUgbmcgcGFnLWludmVydCBuZyBrdWxheSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+Ik1vZGUgbmEgZGluYWdkYWdhbiBhbmcgY29udHJhc3QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+Ik1vZGUgbmcgcGFndGF0YW1hIG5nIGt1bGF5Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiJNYWFhcmluZ1xuc2ludXN1YmF5YmF5YW4gYW5nIG5ldHdvcmsiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtdHIvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXRyL3N0cmluZ3MueG1sCmluZGV4IGYzOWY4YmMuLjlhNjhmMzggMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtdHIvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy10ci9zdHJpbmdzLnhtbApAQCAtNjEsOCArNjEsNiBAQAogICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiJCdSBiaWxnaXNheWFyZGFuIGhlciB6YW1hbiBpemluIHZlciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+Illha8SxbmxhxZ90xLFyIChla3JhbsSxIGthcGxhc8SxbikiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iR2VuacWfbGV0IChla3JhbiBrYXBhbnPEsW4pIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9oZWFkZXIiIG1zZ2lkPSI3OTY5NDkzOTg5Mzk3NTI5OTEwIj4iVXl1bWx1bHVrIHlha8SxbmxhxZ90xLFybWFzxLEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4iVXlndWxhbWEga8O8w6fDvGsgYmlyIGVrcmFuIGnDp2luIHRhc2FybGFubcSxxZ9zYSBzYWF0aW4geWFuxLFuZGEgYmlyIHlha8SxbmxhxZ90xLFybWEgZGVuZXRpbWkgZ8O2csO8bsO8ci4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4iRWtyYW4gZ8O2csO8bnTDvHPDvCBrYXlkZWRpbGl5b3IuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiJFa3JhbiBnw7Zyw7xudMO8c8O8IGtheWRlZGlsaXlvci4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4iRWtyYW4gZ8O2csO8bnTDvHPDvCBrYXlkZWRpbGl5b3IuIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IkFuYSBzYXlmYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+Ik1lbsO8Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4iU29uIHV5Z3VsYW1hbGFyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4iQXJhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+IkthbWVyYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4iR2lyacWfIHnDtm50ZW1pbmkgZGXEn2nFn3Rpcm1lIGTDvMSfbWVzaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4iVXl1bWx1bHVrIHp1bSBkw7zEn21lc2kuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiJEYWhhIGLDvHnDvGsgZWtyYW5hIGRhaGEga8O8w6fDvGsgeWFrxLFubGHFn3TEsXIuIjwvc3RyaW5nPgpAQCAtMTUzLDYgKzE1Myw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4iUGlsIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iVcOnYWsgTW9kdSA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JsdWV0b290aCIgbXNnaWQ9IjU3NDkwNTQ5NzEzNDE4ODIzNDAiPiJCbHVldG9vdGggPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiJLb251bTogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiJBbGFybSBzYWF0aTogPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ18zZ190aXRsZSIgbXNnaWQ9IjUyNTc4MzM4ODE2OTg2NDQ2ODciPiIyRy0zRyB2ZXJpbGVyaSBkZXZyZSBkxLHFn8SxIGLEsXJha8SxbGTEsSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IjRHIHZlcmlsZXJpIGRldnJlIGTEscWfxLEiPC9zdHJpbmc+CkBAIC0xNjQsMTIgKzE2NSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iS2FibG9zdXogYmHEn2xhbmTEsSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4iR1BTIGFyYW7EsXlvciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJLb251bSBHUFMgaWxlIGJlbGlybGVuZGkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJLb251bSBiaWxnaXNpIGlzdGVrbGVyaSBldGtpbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+IlTDvG0gYmlsZGlyaW1sZXJpIHRlbWl6bGUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4iVXlndWxhbWEgYmlsZ2lsZXJpIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiJFa3JhbiBvdG9tYXRpayBvbGFyYWsgZMO2bmVjZWt0aXIuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiJFa3JhbiB5YXRheSB5w7ZuZGUga2lsaXRsZW5kaS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fcG9ydHJhaXQiIG1zZ2lkPSI1ODA5MzY3NTIxNjQ0MDEyMTE1Ij4iRWtyYW4gZGlrZXkgecO2bmRlIGtpbGl0bGVuZGkuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IlRhdGzEsSBLdXR1c3UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGFydF9kcmVhbXMiIG1zZ2lkPSI3MjE5NTc1ODU4MzQ4NzE5NzkwIj4iSGFmaWYgdXlrdSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IkV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiJVw6dhayBtb2R1Ijwvc3RyaW5nPgpAQCAtMTgyLDEwICsxODQsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fdW5sb2NrZWRfbGFiZWwiIG1zZ2lkPSIzMzYwNTQ5MzAzNjI1ODA1ODQiPiJPdG9tYXRpayBEw7ZuZMO8ciI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX2xvY2tlZF9sYWJlbCIgbXNnaWQ9IjgwNTg2NDY0NDcyNDI1NjU0ODYiPiJEw7ZubWUgS2lsaXRsZW5kaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ltZV9sYWJlbCIgbXNnaWQ9IjcwNzM0NjMwNjQzNjk0Njg0MjkiPiJHaXJpxZ8gWcO2bnRlbWkiPC9zdHJpbmc+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwgKDUwMTEzMjcwNDg3NDg3NjIyNTcpIC0tPgotICAgIDxza2lwIC8+Ci0gICAgPCEtLSBubyB0cmFuc2xhdGlvbiBmb3VuZCBmb3IgcXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsICg3NDY0NTQ0MDg2NTA3MzMxNDU5KSAtLT4KLSAgICA8c2tpcCAvPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwiIG1zZ2lkPSI1MDExMzI3MDQ4NzQ4NzYyMjU3Ij4iS29udW0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19sb2NhdGlvbl9vZmZfbGFiZWwiIG1zZ2lkPSI3NDY0NTQ0MDg2NTA3MzMxNDU5Ij4iS29udW0gQmlsZ2lzaSBLYXBhbMSxIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbWVkaWFfZGV2aWNlX2xhYmVsIiBtc2dpZD0iMTMwMjkwNjgzNjM3MjYwMzc2MiI+Ik1lZHlhIGNpaGF6xLEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2xhYmVsIiBtc2dpZD0iNzcyNTY3MTMzNTU1MDY5NTU4OSI+IlJTU0kiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2VtZXJnZW5jeV9vbmx5IiBtc2dpZD0iMjcxMzc3NDA0MTY3Mjg4Njc1MCI+IllhbG7EsXpjYSBBY2lsIMOHYcSfcsSxbGFyIMSww6dpbiI8L3N0cmluZz4KQEAgLTIwMCw4ICsyMDAsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4iS2FibG9zdXogRWtyYW4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiJQYXJsYWtsxLFrIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+Ik9UT01BVMSwSyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiJCaWxkaXJpbWxlciBidXJhZGEgZ8O2csO8bsO8ciI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+IkHFn2HEn8SxeWEgaMSxemzEsWNhIGtheWTEsXJhcmFrIGJ1bmxhcmEgaXN0ZWRpxJ9pbml6IHphbWFuIGVyacWfZWJpbGlyc2luaXouXG5TaXN0ZW0gZGVuZXRpbWxlcmkgacOnaW4gdGVrcmFyIGjEsXpsxLFjYSBhxZ9hxJ/EsSBrYXlkxLFyxLFuLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+IsOHdWJ1xJ91IGfDtnLDvG50w7xsZW1layBpw6dpbiBla3JhbsSxbiBrZW5hcsSxbmRhbiBoxLF6bMSxY2Ega2F5ZMSxcsSxbiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlX2xvbmciIG1zZ2lkPSI3MTE3NjkyNzk1MTYzNjIwNjI2Ij4iU2lzdGVtIMOndWJ1xJ91bnUgZ8O2csO8bnTDvGxlbWVrIGnDp2luIGVrcmFuxLFuIGtlbmFyxLFuZGFuIGjEsXpsxLFjYSBrYXlkxLFyxLFuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+IlJlbmsgdGVycyDDp2V2aXJtZSBtb2R1Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4iR2VsacWfdGlyaWxtacWfIGtvbnRyYXN0IG1vZHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+IlJlbmsgZMO8emVsdG1lIG1vZHUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+IkHEnyBpemxlbml5b3Jcbm9sYWJpbGlyIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXVrL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy11ay9zdHJpbmdzLnhtbAppbmRleCAxOGY2N2EyLi5mZTY0Mjc0IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXVrL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtdWsvc3RyaW5ncy54bWwKQEAgLTYxLDggKzYxLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4i0JfQsNCy0LbQtNC4INC00L7Qt9Cy0L7Qu9GP0YLQuCDQtyDRhtGM0L7Qs9C+INC60L7QvNC/4oCZ0Y7RgtC10YDQsCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+ItCc0LDRgdGI0YLQsNCx0YPQsi4g0L3QsCDQstC10YHRjCDQtdC60YDQsNC9Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+ItCg0L7Qt9GC0Y/Qs9C90YPRgtC4INC90LAg0LLQtdGB0Ywg0LXQutGA0LDQvSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+ItCc0LDRgdGI0YLQsNCx0YPQstCw0L3QvdGPINC00LvRjyDRgdGD0LzRltGB0L3QvtGB0YLRliI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiLQr9C60YnQviDQv9GA0L7Qs9GA0LDQvNGDINC/0YDQuNC30L3QsNGH0LXQvdC+INC00LvRjyDQvNC10L3RiNC40YUg0LXQutGA0LDQvdGW0LIsINC10LvQtdC80LXQvdGCINC60LXRgNGD0LLQsNC90L3RjyDQvNCw0YHRiNGC0LDQsdC+0Lwg0LHRg9C00LUg0LLRltC00L7QsdGA0LDQttCw0YLQuNGB0Y8g0LHRltC70Y8g0LPQvtC00LjQvdC90LjQutCwLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpY2tlciIgbXNnaWQ9Ijc0MDM2NTI4OTQwNTY2OTM1MTUiPiLQl9Cx0LXRgNC10LbQtdC90L3RjyDQt9C90ZbQvNC60LAg0LXQutGA0LDQvdCwLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4i0JfQsdC10YDQtdC20LXQvdC90Y8g0LfQvdGW0LzQutCwINC10LrRgNCw0L3QsC4uLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i0JfQsdC10YDRltCz0LDRlNGC0YzRgdGPINC30L3RltC80L7QuiDQtdC60YDQsNC90LAuIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+ItCT0L7Qu9C+0LLQvdCwIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4i0JzQtdC90Y4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiLQntGB0YLQsNC90L3RliDQv9GA0L7Qs9GA0LDQvNC4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4i0J/QvtGI0YPQuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiLQmtCw0LzQtdGA0LAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+ItCa0L3QvtC/0LrQsCDQv9C10YDQtdC80LjQutCw0L3QvdGPINC80LXRgtC+0LTRgyDQstCy0LXQtNC10L3QvdGPLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiLQmtC90L7Qv9C60LAg0LzQsNGB0YjRgtCw0LHRg9Cy0LDQvdC90Y8g0YHRg9C80ZbRgdC90L7RgdGC0ZYuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fZXhhbXBsZSIgbXNnaWQ9IjQyMjA2ODcyOTQ1NjQ5NDU3ODAiPiLQl9Cx0ZbQu9GM0YjQtdC90L3RjyDQtdC60YDQsNC90LAuIjwvc3RyaW5nPgpAQCAtMTUzLDYgKzE1Myw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4i0JDQutGD0LzRg9C70Y/RgtC+0YA6IDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4i0KDQtdC20LjQvCDQv9C+0LvRjNC+0YLRgzogPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoOiA8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+ItCc0ZbRgdGG0LXQt9C90LDRhdC+0LTQttC10L3QvdGPIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4i0KHQuNCz0L3QsNC7INGD0YHRgtCw0L3QvtCy0LvQtdC90L4g0L3QsCA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+ItCU0LDQvdGWIDJH4oCTM0cg0LLQuNC80LrQvdC10L3QviI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+ItCU0LDQvdGWIDRHINCy0LjQvNC60L3QtdC90L4iPC9zdHJpbmc+CkBAIC0xNjQsMTIgKzE2NSwxMyBAQAogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkg0L/RltC04oCZ0ZTQtNC90LDQvdC+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiLQktC40LrQvtC90YPRlNGC0YzRgdGPINC/0L7RiNGD0LogR1BTLdGB0LjQs9C90LDQu9GDIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+ItCc0ZbRgdGG0LXQt9C90LDRhdC+0LTQttC10L3QvdGPINCy0YHRgtCw0L3QvtCy0LvQtdC90L4g0LfQsCDQtNC+0L/QvtC80L7Qs9C+0Y4gR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4i0JfQsNC/0LjRgtC4INC/0YDQviDQvNGW0YHRhtC10LfQvdCw0YXQvtC00LbQtdC90L3RjyDQsNC60YLQuNCy0L3RliI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+ItCe0YfQuNGB0YLQuNGC0Lgg0LLRgdGWINGB0L/QvtCy0ZbRidC10L3QvdGPLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiLQhtC90YTQvtGA0LzQsNGG0ZbRjyDQv9GA0L4g0L/RgNC+0LPRgNCw0LzRgyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4i0JXQutGA0LDQvSDQvtCx0LXRgNGC0LDRgtC40LzQtdGC0YzRgdGPINCw0LLRgtC+0LzQsNGC0LjRh9C90L4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiLQldC60YDQsNC9INC30LDQsdC70L7QutC+0LLQsNC90L4g0LIg0LDQu9GM0LHQvtC80L3RltC5INC+0YDRltGU0L3RgtCw0YbRltGXLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLQldC60YDQsNC9INC30LDQsdC70L7QutC+0LLQsNC90L4g0LIg0LrQvdC40LbQutC+0LLRltC5INC+0YDRltGU0L3RgtCw0YbRltGXLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiJCZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiLQktGW0YLRgNC40L3QsCDQtNC10YHQtdGA0YLRltCyIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+ItCX0LDRgdGC0LDQstC60LAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJFdGhlcm5ldCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4i0KDQtdC20LjQvCDQv9C+0LvRjNC+0YLRgyI8L3N0cmluZz4KQEAgLTE5OCw4ICsyMDAsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4i0JHQtdC30LTRgNC+0YLQvtCy0LUg0LLRltC00L7QsdGA0LDQttC10L3QvdGPIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4i0K/RgdC60YDQsNCy0ZbRgdGC0YwiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiIG1zZ2lkPSI1MDY0OTgyNzQzNzg0MDcxMjE4Ij4i0JDQktCi0J4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4i0KHQv9C+0LLRltGJ0LXQvdC90Y8g0LfigJnRj9Cy0LvRj9GO0YLRjNGB0Y8g0YLRg9GCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4i0J7RgtGA0LjQvNGD0LnRgtC1INC00L4g0L3QuNGFINC00L7RgdGC0YPQvyDQsdGD0LTRjC3QutC+0LvQuCwg0L/RgNC+0LLRltCy0YjQuCDQv9Cw0LvRjNGG0LXQvCDRg9C90LjQty5cbtCX0L3QvtCy0YMg0L/RgNC+0LLQtdC00ZbRgtGMINGD0L3QuNC3LCDRidC+0LEg0LLRltC00LrRgNC40YLQuCDQtdC70LXQvNC10L3RgtC4INC60LXRgNGD0LLQsNC90L3RjyDRgdC40YHRgtC10LzQuC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiLQk9C+0YDRgtCw0LnRgtC1INCy0ZbQtCDQutGA0LDRjiDQtdC60YDQsNC90LAsINGJ0L7QsSDQt+KAmdGP0LLQuNC70LDRgdGMINC/0LDQvdC10LvRjCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlX2xvbmciIG1zZ2lkPSI3MTE3NjkyNzk1MTYzNjIwNjI2Ij4i0J/RgNC+0LLQtdC00ZbRgtGMINC/0LDQu9GM0YbQtdC8INCy0ZbQtCDQutGA0LDRjiDQtdC60YDQsNC90LAsINGJ0L7QsSDQt+KAmdGP0LLQuNC70LDRgdGMINC90LDQstGW0LPQsNGG0ZbQudC90LAg0L/QsNC90LXQu9GMIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+ItCg0LXQttC40Lwg0ZbQvdCy0LXRgNGB0ZbRlyDQutC+0LvRjNC+0YDRltCyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4i0KDQtdC20LjQvCDQv9C+0YHQuNC70LXQvdC+0LPQviDQutC+0L3RgtGA0LDRgdGC0YMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+ItCg0LXQttC40Lwg0LrQvtGA0LjQs9GD0LLQsNC90L3RjyDQutC+0LvRjNC+0YDRgyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4i0JzQtdGA0LXQttCwINC80L7QttC1XG7QstGW0LTRgdGC0LXQttGD0LLQsNGC0LjRgdGPIjwvc3RyaW5nPgogPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXZpL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy12aS9zdHJpbmdzLnhtbAppbmRleCBhY2M3ZTBlLi5mYjRlMzc3IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXZpL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtdmkvc3RyaW5ncy54bWwKQEAgLTYxLDggKzYxLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4iTHXDtG4gY2hvIHBow6lwIHThu6sgbcOheSB0w61uaCBuw6B5Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4iVC5waMOzbmcgxJHhu4MgbOG6pXAgxJHhuqd5IG0uaMOsbmgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iR2nDo24gcmEgxJHhu4MgbOG6pXAgxJHhuqd5IG0uaMOsbmgiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJUaHUgcGjDs25nIHTGsMahbmcgdGjDrWNoIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfaGVscF9ib2R5IiBtc2dpZD0iNDk0NjcyNjc3NjM1OTI3MDA0MCI+IktoaSDhu6luZyBk4bulbmcgxJHGsOG7o2MgdGhp4bq/dCBr4bq/IGNobyBt4buZdCBtw6BuIGjDrG5oIG5o4buPIGjGoW4sIMSRaeG7gXUga2hp4buDbiB0aHUgcGjDs25nIHPhur0geHXhuqV0IGhp4buHbiBiw6puIGPhuqFuaCDEkeG7k25nIGjhu5MuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+IsSQYW5nIGzGsHUg4bqjbmggY2jhu6VwIG3DoG4gaMOsbmguLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aXRsZSIgbXNnaWQ9IjgyNDIyODIxNDQ1MzU1NTU2OTciPiLEkGFuZyBsxrB1IOG6o25oIGNo4bulcCBtw6BuIGjDrG5oLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLhuqJuaCBjaOG7pXAgbcOgbiBow6xuaCDEkWFuZyDEkcaw4bujYyBsxrB1LiI8L3N0cmluZz4KQEAgLTc4LDYgKzc2LDggQEAKICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiJUcmFuZyBjaOG7pyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+IlRyw6xuaCDEkcahbiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IuG7qG5nIGThu6VuZyBn4bqnbiDEkcOieSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+IlTDrG0ga2nhur9tIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+Ik3DoXkg4bqjbmgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+Ik7DunQgY2h1eeG7g24gcGjGsMahbmcgdGjhu6ljIG5o4bqtcC4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9idXR0b24iIG1zZ2lkPSI4NDYxMTE1MzE4NzQyMzUwNjk5Ij4iTsO6dCB0aHUgcGjDs25nIGto4bqjIG7Eg25nIHTGsMahbmcgdGjDrWNoLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4iVGh1IHBow7NuZyBtw6BuIGjDrG5oIGzhu5tuIGjGoW4gaG/hurdjIG5o4buPIGjGoW4uIjwvc3RyaW5nPgpAQCAtMTUzLDYgKzE1Myw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4iUGluIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0MTk2ODc2NzIyMDkwMjI0NzUzIj4iQ2jhur8gxJHhu5kgdHLDqm4gbcOheSBiYXkgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4iQmx1ZXRvb3RoIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4iVuG7iyB0csOtIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4iQsOhbyB0aOG7qWMgxJHGsOG7o2MgxJHhurd0IGNobyA8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IsSQw6MgdOG6r3QgZOG7ryBsaeG7h3UgMkctM0ciPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiLEkMOjIHThuq90IGThu68gbGnhu4d1IDRHIjwvc3RyaW5nPgpAQCAtMTY0LDEyICsxNjUsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IsSQw6Mga+G6v3QgbuG7kWkgV2ktRmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX3NlYXJjaGluZ190ZXh0IiBtc2dpZD0iODU3NDI0NzAwNTY0MjczNjA2MCI+IsSQYW5nIHTDrG0ga2nhur9tIEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJW4buLIHRyw60gxJHhurd0IGLhu59pIEdQUyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IlnDqnUgY+G6p3UgduG7gSB0aMO0bmcgdGluIHbhu4sgdHLDrSDEkWFuZyBob+G6oXQgxJHhu5luZyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+IljDs2EgdOG6pXQgY+G6oyB0aMO0bmcgYsOhby4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4iVGjDtG5nIHRpbiB24buBIOG7qW5nIGThu6VuZyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4iTcOgbiBow6xuaCBz4bq9IHhvYXkgdOG7sSDEkeG7mW5nLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4iTcOgbiBow6xuaCBoaeG7h24gYuG7iyBraMOzYSB0aGVvIGjGsOG7m25nIG5nYW5nLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiJNw6BuIGjDrG5oIGhp4buHbiBi4buLIGtow7NhIHRoZW8gaMaw4bubbmcgZOG7jWMuIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IlThu6cgdHLGsG5nIGLDoHkgYsOhbmggbmfhu410Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IkNo4bq/IMSR4buZIG5n4bunIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4iRXRoZXJuZXQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+IkNo4bq/IMSR4buZIHRyw6puIG3DoXkgYmF5Ijwvc3RyaW5nPgpAQCAtMTk4LDggKzIwMCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJIaeG7g24gdGjhu4sga2jDtG5nIGTDonkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ190aXRsZSIgbXNnaWQ9Ijg1OTk2NzQwNTc2NzM2MDUzNjgiPiLEkOG7mSBzw6FuZyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiJU4buwIMSQ4buYTkciPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4iVGjDtG5nIGLDoW8geHXhuqV0IGhp4buHbiB04bqhaSDEkcOieSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90ZXh0IiBtc2dpZD0iNzg3NDYwNzE1NTA1MjA3NjMyMyI+IlRydXkgY+G6rXAgdsOgbyBjaMO6bmcgYuG6pXQga+G7syBsw7pjIG7DoG8gYuG6sW5nIGPDoWNoIHZ14buRdCB4deG7kW5nLlxuVnXhu5F0IGzhuqFpIHh14buRbmcgxJHhu4MgaGnhu4NuIHRo4buLIGPDoWMgxJFp4buBdSBraGnhu4NuIGjhu4cgdGjhu5FuZy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiJWdeG7kXQgY+G6oW5oIG3DoG4gaMOsbmggxJHhu4MgaGnhu4NuIHRo4buLIHRoYW5oIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaGlkZXliYXJfY29uZmlybWF0aW9uX21lc3NhZ2VfbG9uZyIgbXNnaWQ9IjcxMTc2OTI3OTUxNjM2MjA2MjYiPiJWdeG7kXQgdOG7qyBj4bqhbmggbcOgbiBow6xuaCDEkeG7gyBoaeG7g24gdGjhu4sgdGhhbmggaOG7hyB0aOG7kW5nIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+IkNo4bq/IMSR4buZIMSR4bqjbyBuZ8aw4bujYyBtw6B1IHPhuq9jIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4iQ2jhur8gxJHhu5kgdMawxqFuZyBwaOG6o24gdMSDbmcgY8aw4budbmciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+IkNo4bq/IMSR4buZIGhp4buHdSBjaOG7iW5oIG3DoHUgc+G6r2MiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+Ik3huqFuZyBjw7MgdGjhu4NcbsSRxrDhu6NjIGdpw6FtIHPDoXQiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtemgtckNOL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy16aC1yQ04vc3RyaW5ncy54bWwKaW5kZXggMGE2MmVlMy4uYzU3MDhhYyAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy16aC1yQ04vc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy16aC1yQ04vc3RyaW5ncy54bWwKQEAgLTYxLDggKzYxLDYgQEAKICAgICA8c3RyaW5nIG5hbWU9InVzYl9kZWJ1Z2dpbmdfYWx3YXlzIiBtc2dpZD0iMzAzMzM1NDk2NzA1ODYzMDcwIj4i5LiA5b6L5YWB6K645L2/55So6L+Z5Y+w6K6h566X5py66L+b6KGM6LCD6K+VIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb24iIG1zZ2lkPSI2NjIzODM5MjQ0ODQwNjM4MjEzIj4i57yp5pS+5Lul5aGr5ruh5bGP5bmVIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29tcGF0X21vZGVfb2ZmIiBtc2dpZD0iNDQzNDQ2NzU3MjQ2MTMyNzg5OCI+IuaLieS8uOS7peWhq+a7oeWxj+W5lSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfaGVhZGVyIiBtc2dpZD0iNzk2OTQ5Mzk4OTM5NzUyOTkxMCI+IuWFvOWuueaAp+e8qeaUviI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX2hlbHBfYm9keSIgbXNnaWQ9IjQ5NDY3MjY3NzYzNTkyNzAwNDAiPiLlpoLmnpzlupTnlKjmmK/pkojlr7novoPlsI/lsY/luZXorr7orqHnmoTvvIzliJnml7bpkp/ml4HkvJrmmL7npLrnvKnmlL7mjqfku7bjgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190aWNrZXIiIG1zZ2lkPSI3NDAzNjUyODk0MDU2NjkzNTE1Ij4i5q2j5Zyo5L+d5a2Y5bGP5bmV5oiq5Zu+Li4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4i5q2j5Zyo5L+d5a2Y5bGP5bmV5oiq5Zu+Li4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGV4dCIgbXNnaWQ9IjI0MTk3MTg0NDM0MTE3Mzg4MTgiPiLmraPlnKjkv53lrZjlsY/luZXmiKrlm77jgIIiPC9zdHJpbmc+CkBAIC03OCw2ICs3Niw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4i5Li75bGP5bmVIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4i6I+c5Y2VIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4i5pyA6L+R6L+Q6KGM55qE5bqU55SoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4i5pCc57SiIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+IuebuOacuiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4i6L6T5YWl5rOV5YiH5o2i5oyJ6ZKu44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IuWFvOWuueaAp+e8qeaUvuaMiemSruOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4i5bCG5bCP5bGP5bmV55qE5Zu+54mH5pS+5aSn5Zyo6L6D5aSn5bGP5bmV5LiK5pi+56S644CCIjwvc3RyaW5nPgpAQCAtMTQ3LDcgKzE0Nyw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudHNfaXRlbV9kaXNtaXNzZWQiIG1zZ2lkPSI2ODAzNTc0OTM1MDg0ODY3MDcwIj4i5bey5Yig6ZmkPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25fZGlzbWlzc2VkIiBtc2dpZD0iODU0MjExMzg3MTg2MzA2OTI3Ij4i5bey5YWz6Zet6YCa55+l44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX25vdGlmaWNhdGlvbl9zaGFkZSIgbXNnaWQ9IjQ2OTAyNzQ4NDQ0NDc1MDQyMDgiPiLpgJrnn6XmoI/jgIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfcXVpY2tfc2V0dGluZ3MiIG1zZ2lkPSI2MTg2Mzc4NDExNTgyNDM3MDQ2Ij4i5b+r6YCf6K6+572u44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3F1aWNrX3NldHRpbmdzIiBtc2dpZD0iNjE4NjM3ODQxMTU4MjQzNzA0NiI+IuW/q+aNt+iuvue9ruOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19yZWNlbnRfYXBwcyIgbXNnaWQ9IjkwMTQwMzI5MTY0MTA1OTAwMjciPiLmnIDov5Hkvb/nlKjnmoTlupTnlKjjgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX3VzZXIiIG1zZ2lkPSIxMTA0ODQ2Njk5ODY5NDc2ODU1Ij4i55So5oi377yaPHhsaWZmOmcgaWQ9IlVTRVIiPiVzPC94bGlmZjpnPuOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3Nfd2lmaSIgbXNnaWQ9IjYwOTk3ODEwMzE2Njk3Mjg3MDkiPiI8eGxpZmY6ZyBpZD0iU0lHTkFMIj4lMSRzPC94bGlmZjpnPu+8jDx4bGlmZjpnIGlkPSJORVRXT1JLIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KQEAgLTE1NSwyMyArMTU1LDI1IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4i55S15rGg55S16YeP77yaPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz7jgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+IumjnuihjOaooeW8j++8mjx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4i6JOd54mZ77yaPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz7jgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IuS9jee9ruS/oeaBr+acjeWKoTx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiLpl7npkp/lt7Lorr7nva7kuLrvvJo8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4iMkctM0cg5pWw5o2u572R57uc5bey5YGc55SoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfNGdfdGl0bGUiIG1zZ2lkPSI0Nzg5MTQzMzYzNDkyNjgyNjI5Ij4iNEcg5pWw5o2u572R57uc5bey5YGc55SoIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfbW9iaWxlX3RpdGxlIiBtc2dpZD0iMTA0NjA0NzI0ODg0NDgyMTIwMiI+Iuenu+WKqOaVsOaNruW3suWBnOeUqCI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX3RpdGxlIiBtc2dpZD0iMjA4NjgxNTMwNDg1ODk2NDk1NCI+IuaVsOaNruW3suWBnOeUqCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX21vYmlsZV90aXRsZSIgbXNnaWQ9IjEwNDYwNDcyNDg4NDQ4MjEyMDIiPiLnp7vliqjmlbDmja7nvZHnu5zlt7LlgZznlKgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ190aXRsZSIgbXNnaWQ9IjIwODY4MTUzMDQ4NTg5NjQ5NTQiPiLmlbDmja7nvZHnu5zlt7LlgZznlKgiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZyIgbXNnaWQ9IjM4NTMxMTcyNjkwNTE4MDYyODAiPiLmgqjlt7Lovr7liLDmjIflrprnmoTmlbDmja7mtYHph4/kuIrpmZDjgIJcblxu5aaC5p6c5oKo6YeN5paw5ZCv55So5pWw5o2u77yM6L+Q6JCl5ZWG5Y+v6IO95Lya5pS25Y+W55u45bqU55qE6LS555So44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfZW5hYmxlIiBtc2dpZD0iNzcyOTc3MjAzOTIwODY2NDYwNiI+IumHjeaWsOWQr+eUqOaVsOaNrui/nuaOpSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX2Rpc2Nvbm5lY3RlZCIgbXNnaWQ9IjE5NDAyMzE1MjEyNzQxNDc3NzEiPiLmnKrov57mjqXkupLogZTnvZEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl93aWZpX25vc3NpZCIgbXNnaWQ9IjY1NTc0ODY0NTI3NzQ1OTc4MjAiPiJXTEFOIOW3sui/nuaOpSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4i5q2j5Zyo5pCc57SiIEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiLlt7LpgJrov4cgR1BTIOehruWumuS9jee9riI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbG9jYXRpb25fYWN0aXZlIiBtc2dpZD0iMjQyNzI5MDE0NjEzODE2OTAxNCI+IuW6lOeUqOWPkeWHuuS6huacieaViOS9jee9ruS/oeaBr+ivt+axgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2xlYXJfYWxsIiBtc2dpZD0iNTIzNTkzODU1OTI0NzE2NDkyNSI+Iua4hemZpOaJgOaciemAmuefpeOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm90aWZpY2F0aW9uX2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9IjExNjM1NDc3MjkwMTUzOTAyNTAiPiLlupTnlKjkv6Hmga8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb2ZmIiBtc2dpZD0iNDA2Mjc4MDIyODkzMTU5MDA2OSI+IuWxj+W5leS8muiHquWKqOaXi+i9rOOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9sYW5kc2NhcGUiIG1zZ2lkPSI2NzMxMTk3MzM3NjY1MzY2MjczIj4i5bGP5bmV6ZSB5a6a5Li65qiq5ZCR5qih5byP44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IuWxj+W5lemUgeWumuS4uue6teWQkeaooeW8j+OAgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImplbGx5X2JlYW5fZHJlYW1fbmFtZSIgbXNnaWQ9IjU5OTIwMjY1NDM2MzY4MTY3OTIiPiLmnpzlhrvosYblpKfkubHoiJ4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4i55Sc5ZOB55uSIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IuS6kuWKqOWxj+S/nSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImV0aGVybmV0X2xhYmVsIiBtc2dpZD0iNzk2NzU2MzY3NjMyNDA4NzQ2NCI+IuS7peWkque9kSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2FpcnBsYW5lX21vZGVfbGFiZWwiIG1zZ2lkPSI1NTEwNTIwNjMzNDQ4ODMxMzUwIj4i6aOe6KGM5qih5byPIjwvc3RyaW5nPgpAQCAtMTc5LDE1ICsxODEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JhdHRlcnlfY2hhcmdlZF9sYWJlbCIgbXNnaWQ9Ijg4NjU0MTMwNzk0MTQyNDYwODEiPiLlhYXnlLXlrozmiJAiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbGFiZWwiIG1zZ2lkPSI2MzA0MTkwMjg1MTcwNzIxNDAxIj4i6JOd54mZIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX211bHRpcGxlX2RldmljZXNfbGFiZWwiIG1zZ2lkPSIzOTEyMjQ1NTY1NjEzNjg0NzM1Ij4i6JOd54mZ77yIPHhsaWZmOmcgaWQ9Ik5VTUJFUiI+JWQ8L3hsaWZmOmc+IOWPsOiuvuWkh++8iSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9vZmZfbGFiZWwiIG1zZ2lkPSI4MTU5NjUyMTQ2MTQ5MjE5OTM3Ij4i6JOd54mZ5bey5YWz6ZetIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX29mZl9sYWJlbCIgbXNnaWQ9IjgxNTk2NTIxNDYxNDkyMTk5MzciPiLok53niZnvvJrlhbPpl60iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNjk2ODM3MjI5NzAxODc1NTgxNSI+IuS6ruW6piI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX3VubG9ja2VkX2xhYmVsIiBtc2dpZD0iMzM2MDU0OTMwMzYyNTgwNTg0Ij4i6Ieq5Yqo5peL6L2sIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfcm90YXRpb25fbG9ja2VkX2xhYmVsIiBtc2dpZD0iODA1ODY0NjQ0NzI0MjU2NTQ4NiI+IuWxj+W5leaWueWQkeW3sumUgeWumiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX2xvY2tlZF9sYWJlbCIgbXNnaWQ9IjgwNTg2NDY0NDcyNDI1NjU0ODYiPiLlsY/luZXmlrnlkJHvvJrplIHlrpoiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4i6L6T5YWl5rOVIjwvc3RyaW5nPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsICg1MDExMzI3MDQ4NzQ4NzYyMjU3KSAtLT4KLSAgICA8c2tpcCAvPgotICAgIDwhLS0gbm8gdHJhbnNsYXRpb24gZm91bmQgZm9yIHF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCAoNzQ2NDU0NDA4NjUwNzMzMTQ1OSkgLS0+Ci0gICAgPHNraXAgLz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX2xhYmVsIiBtc2dpZD0iNTAxMTMyNzA0ODc0ODc2MjI1NyI+IuS9jee9ruS/oeaBryI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2xvY2F0aW9uX29mZl9sYWJlbCIgbXNnaWQ9Ijc0NjQ1NDQwODY1MDczMzE0NTkiPiLkvY3nva7kv6Hmga/mnI3liqHlt7LlhbPpl60iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19tZWRpYV9kZXZpY2VfbGFiZWwiIG1zZ2lkPSIxMzAyOTA2ODM2MzcyNjAzNzYyIj4i5aqS5L2T6K6+5aSHIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9sYWJlbCIgbXNnaWQ9Ijc3MjU2NzEzMzU1NTA2OTU1ODkiPiJSU1NJIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfcnNzaV9lbWVyZ2VuY3lfb25seSIgbXNnaWQ9IjI3MTM3NzQwNDE2NzI4ODY3NTAiPiLlj6rog73mi6jmiZPntKfmgKXlkbzmlZHnlLXor50iPC9zdHJpbmc+CkBAIC0yMDIsOCArMjAyLDggQEAKICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IuaXoOe6v+aYvuekuiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IuS6ruW6piI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiLoh6rliqgiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4i6YCa55+l5Lya5pi+56S65Zyo6L+Z6YeMIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9oZWxwX3RleHQiIG1zZ2lkPSI3ODc0NjA3MTU1MDUyMDc2MzIzIj4i5ZCR5LiL5ruR5Yqo5Y+v6ZqP5pe25p+l55yL6YCa55+l44CCXG7lho3mrKHlkJHkuIvmu5Hliqjlj6/kvb/nlKjns7vnu5/mjqfliLblip/og73jgIIiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZSIgbXNnaWQ9IjkwNTA4Njk1NDg5NTEwNDQzNzEiPiLku47ovrnnvJjlkJHph4zmu5Hlj6/mmL7npLrns7vnu5/moI8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJoaWRleWJhcl9jb25maXJtYXRpb25fbWVzc2FnZV9sb25nIiBtc2dpZD0iNzExNzY5Mjc5NTE2MzYyMDYyNiI+IuS7juWxj+W5lei+uee8mOWQkemHjOa7keWKqOWNs+WPr+aYvuekuuezu+e7n+agjyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiLpopzoibLlj43ovazmqKHlvI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCIgbXNnaWQ9IjMzMTk1MDc1NTE2ODkxMDg2OTIiPiLlop7lvLrlr7nmr5TluqbmqKHlvI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+IuminOiJsuagoeato+aooeW8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4i572R57uc5Y+v6IO95LyaXG7lj5fliLDnm5HmjqciPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtemgtckhLLWxhbmQvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXpoLXJISy1sYW5kL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNTVkZjQKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXpoLXJISy1sYW5kL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tIAorLyoqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsgCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIAorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0IAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSAKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsIAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIAorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCAKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InRvYXN0X3JvdGF0aW9uX2xvY2tlZCIgbXNnaWQ9Ijc2MDk2NzMwMTE0MzE1NTYwOTIiPiLlsY/luZXnj77lt7LpjpblrprngrrmqavlkJHmqKHlvI8iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy16aC1ySEsvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNiZTgyZAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMjA5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAKKy8qKgorICogQ29weXJpZ2h0IChjKSAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7IAorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiAKKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCAKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLCAKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAKKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJhcHBfbGFiZWwiIG1zZ2lkPSI3MTY0OTM3MzQ0ODUwMDA0NDY2Ij4i57O757Wx55So5oi25LuL6Z2iIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9jbGVhcl9hbGxfYnV0dG9uIiBtc2dpZD0iNzc3NDcyMTM0NDcxNjczMTYwMyI+Iua4hemZpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X3JlbW92ZV9pdGVtX3RpdGxlIiBtc2dpZD0iNjAyNjM5NTg2ODEyOTg1Mjk2OCI+IuW+nua4heWWruS4reenu+mZpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9Ijc3OTM2MjQ4NjQ1Mjg4MTg1NjkiPiLmh4nnlKjnqIvlvI/os4foqIoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX3JlY2VudF9hcHBzIiBtc2dpZD0iNjU3NjM5Mjk1MTA1Mzk5NDY0MCI+IuaykuacieacgOi/keeahOaHieeUqOeoi+W8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9kaXNtaXNzX3JlY2VudHMiIG1zZ2lkPSI0NTc2MDc2MDc1MjI2NTQwMTA1Ij4i6Zec6ZaJ5pyA6L+R5L2/55So55qE5oeJ55So56iL5byPIjwvc3RyaW5nPgorICA8cGx1cmFscyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfcmVjZW50X2FwcHMiPgorICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiIG1zZ2lkPSI1ODU0MTc2MDgzODY1ODQ1NTQxIj4iMSDlgIvmnIDov5Hkvb/nlKjnmoTmh4nnlKjnqIvlvI8iPC9pdGVtPgorICAgIDxpdGVtIHF1YW50aXR5PSJvdGhlciIgbXNnaWQ9IjEwNDA3ODQzNTk3OTQ4OTA3NDQiPiIlZCDlgIvmnIDov5Hkvb/nlKjnmoTmh4nnlKjnqIvlvI8iPC9pdGVtPgorICA8L3BsdXJhbHM+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX25vdGlmaWNhdGlvbnNfdGl0bGUiIG1zZ2lkPSI0NzU1MjYxMTY3MTkzODMzMjEzIj4i54Sh6YCa55+lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9vbmdvaW5nX2V2ZW50c190aXRsZSIgbXNnaWQ9IjE2ODI1MDQ1MTMzMTY4NzkyMDIiPiLmjIHnuozpgLLooYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2xhdGVzdF9ldmVudHNfdGl0bGUiIG1zZ2lkPSI2NTk0NzY3NDM4NTc3NTkzMTcyIj4i6YCa55+lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfdGl0bGUiIG1zZ2lkPSIyNzgzMTA0ODA3NTUxMjExNjM5Ij4i6YCj5o6l5YWF6Zu75ZmoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfc3VidGl0bGUiIG1zZ2lkPSIxNzUyMDQwMDYyMDg3ODI5MTk2Ij4i6Zu75rGg5Y2z5bCH55So55uh44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmF0dGVyeV9sb3dfcGVyY2VudF9mb3JtYXQiIG1zZ2lkPSIxMDc3MjQ0OTQ5MzE4MjYxNzYxIj4i5Ymp6aSYIDx4bGlmZjpnIGlkPSJOVU1CRVIiPiVkJSU8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iaW52YWxpZF9jaGFyZ2VyIiBtc2dpZD0iNDU0OTEwNTk5Njc0MDUyMjUyMyI+IuS4jeaUr+aPtCBVU0Ig5YWF6Zu744CCXG7lg4Xog73kvb/nlKjpmqjpmYTnmoTlhYXpm7vlmajjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJiYXR0ZXJ5X2xvd193aHkiIG1zZ2lkPSI3Mjc5MTY5NjA5NTE4Mzg2MzcyIj4i6Zu75rGg5L2/55So5oOF5rOBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zZXR0aW5nc19idXR0b24iIG1zZ2lkPSIzMDIzODg5OTE2Njk5MjcwMjI0Ij4i6Kit5a6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc193aWZpX2J1dHRvbiIgbXNnaWQ9IjE3MzM5MjgxNTE2OTgzMTE5MjMiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYWlycGxhbmUiIG1zZ2lkPSI0ODc5ODc5Njk4NTAwOTU1MzAwIj4i6aOb6KGM5qih5byPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19hdXRvX3JvdGF0aW9uIiBtc2dpZD0iMzc5MDQ4MjU0MTM1Nzc5ODQyMSI+IuiHquWLleaXi+i9ieieouW5lSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfbXV0ZV9sYWJlbCIgbXNnaWQ9IjU1NDY4MjU0OTkxNzQyOTM5NiI+IumXnOmWiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3NfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTExNDUzNjE0OTYyMzI0Njc0Ij4i6Ieq5YuVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19ub3RpZmljYXRpb25zIiBtc2dpZD0iMzk3MTQ2MTc2MjgwOTA1MTM3Ij4i6YCa55+lIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYmx1ZXRvb3RoX3RldGhlcmVkIiBtc2dpZD0iNzA5NDEwMTYxMjE2MTEzMzI2NyI+IuW3sue2k+eUseiXjeeJmemAsuihjOe2sue1oeWFseS6qyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaW5wdXRfbWV0aG9kX3NldHRpbmdzX2NvbmZpZ3VyZV9pbnB1dF9tZXRob2RzIiBtc2dpZD0iMzUwNDI5MjQ3MTUxMjMxNzgyNyI+IuioreWumui8uOWFpeaWueW8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfdXNlX3BoeXNpY2FsX2tleWJvYXJkIiBtc2dpZD0iNzU1MTkwMzA4NDQxNjA1NzgxMCI+IuWvpumrlOmNteebpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfcGVybWlzc2lvbl9wcm9tcHQiIG1zZ2lkPSI4MzQ2OTgwMDEyNzE1NjIwNTciPiLlhYHoqLHjgIw8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+44CN5oeJ55So56iL5byP5a2Y5Y+WIFVTQiDoo53nva7ll47vvJ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iNTE3MTc3NTQxMTE3ODg2NTc1MCI+IuWFgeioseOAjDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz7jgI3mh4nnlKjnqIvlvI/lrZjlj5YgVVNCIOmFjeS7tuWXju+8nyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9kZXZpY2VfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSI1MTYxMjA1MjU4NjM1MjUzMjA2Ij4i6YCj5o6l6YCZ5YCLIFVTQiDoo53nva7mmYLllZ/nlKggPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiDll47vvJ8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iMzgwODk4NDkzMTgzMDIyOTg4OCI+IumAo+aOpemAmeWAiyBVU0Ig6YWN5Lu25pmC5ZWf55SoIDx4bGlmZjpnIGlkPSJBQ1RJVklUWSI+JTEkczwveGxpZmY6Zz4g5ZeO77yfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV91cmlfcHJvbXB0IiBtc2dpZD0iNTEzNDUwNjIxNDEzNzMzMzQzIj4i5bey5a6J6KOd55qE5oeJ55So56iL5byP5Z2H54Sh5rOV5a2Y5Y+W6YCZ5YCLIFVTQiDphY3ku7bvvIzlpoLopoHpgLLkuIDmraXnnq3op6PpgJnlgIvphY3ku7bvvIzoq4vngI/opr0gPHhsaWZmOmcgaWQ9IlVSTCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ0aXRsZV91c2JfYWNjZXNzb3J5IiBtc2dpZD0iNDk2NjI2NTI2MzQ2NTE4MTM3MiI+IlVTQiDphY3ku7YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsYWJlbF92aWV3IiBtc2dpZD0iNjMwNDU2NTU1MzIxODE5Mjk5MCI+IuingOeciyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfZGV2aWNlIiBtc2dpZD0iMTQ1MDI4NzQzNzAxNzMxNTkwNiI+IumgkOioreeUqOaWvOmAmeWAiyBVU0Ig6KOd572uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWx3YXlzX3VzZV9hY2Nlc3NvcnkiIG1zZ2lkPSIxMjEwOTU0NTc2OTc5NjIxNTk2Ij4i6aCQ6Kit55So5pa86YCZ5YCLIFVTQiDphY3ku7YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX3RpdGxlIiBtc2dpZD0iNDUxMzkxODM5MzM4NzE0MTk0OSI+IuWFgeiosSBVU0Ig6Zmk6Yyv5ZeO77yfIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19tZXNzYWdlIiBtc2dpZD0iMjIyMDE0Mzg1NTkxMjM3NjQ5NiI+IumAmemDqOmbu+iFpueahCBSU0Eg5a+G6ZGw5oyH57SL5aaC5LiL77yaXG48eGxpZmY6ZyBpZD0iRklOR0VSUFJJTlQiPiUxJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2RlYnVnZ2luZ19hbHdheXMiIG1zZ2lkPSIzMDMzMzU0OTY3MDU4NjMwNzAiPiLkuIDlvovlhYHoqLHpgI/pgY7pgJnpg6jpm7vohabpgLLooYwiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vbiIgbXNnaWQ9IjY2MjM4MzkyNDQ4NDA2MzgyMTMiPiLmlL7lpKfngrrlhajonqLluZUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4i5pS+5aSn54K65YWo6J6i5bmVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+Iuato+WcqOWEsuWtmOWxj+W5leaTt+WPlueVq+mdoi4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+Iuato+WcqOWEsuWtmOWxj+W5leaTt+WPlueVq+mdoi4uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i5q2j5Zyo5YSy5a2Y5bGP5bmV5pO35Y+W55Wr6Z2i44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZlZF90aXRsZSIgbXNnaWQ9IjY0NjE4NjU5NjA5NjE0MTQ5NjEiPiLlt7Lmk7flj5blsY/luZXnlavpnaLjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmVkX3RleHQiIG1zZ2lkPSIxMTUyODM5NjQ3Njc3NTU4ODE1Ij4i6LyV6Ke45Y2z5Y+v5p+l55yL5bGP5bmV5pO35Y+W55Wr6Z2i44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9mYWlsZWRfdGl0bGUiIG1zZ2lkPSI3MDU3ODExMTY3NDY5MjI3NzEiPiLnhKHms5Xmk7flj5blsY/luZXnlavpnaLjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X2ZhaWxlZF90ZXh0IiBtc2dpZD0iODEzNDAxMTI2OTU3MjQxNTQwMiI+IueEoeazleWEsuWtmOWxj+W5leaTt+WPlueVq+mdou+8jOWEsuWtmOijnee9ruWPr+iDveato+WcqOS9v+eUqOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InVzYl9wcmVmZXJlbmNlX3RpdGxlIiBtc2dpZD0iNjU1MTA1MDM3NzM4ODg4Mjc4NyI+IlVTQiDmqpTmoYjlgrPovLjpgbjpoIUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfbXRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjQzMzM1MDQ0MTM1NjMwMjM2MjYiPiLmjpvmjqXngrrlqpLpq5Tmkq3mlL7lmaggKE1UUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2VfcHRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9Ijc1MTcxMjc1NDAzMDE2MjU3NTEiPiLmjpvmjqXngrrnm7jmqZ8gKFBUUCkiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJpbnN0YWxsZXJfY2RfYnV0dG9uX3RpdGxlIiBtc2dpZD0iMjMxMjY2NzU3ODU2MjIwMTU4MyI+IuWuieijnSBNYWMg5bCI55So55qE44CMQW5kcm9pZCDmqpTmoYjlgrPovLjjgI3mh4nnlKjnqIvlvI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhY2siIG1zZ2lkPSI1NjcwMTE1Mzg5OTQ0MjkxMjAiPiLov5Tlm54iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2hvbWUiIG1zZ2lkPSI4MjE3MjE2MDc0ODk1Mzc3NjQxIj4i6aaW6aCBIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9tZW51IiBtc2dpZD0iMzE2ODM5MzAzMzI0Njk1OTQ5Ij4i6YG45ZauIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZWNlbnQiIG1zZ2lkPSI4NTcxMzUwNTk4OTg3OTUyODgzIj4i5pyA6L+R5L2/55So55qE5oeJ55So56iL5byPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9zZWFyY2hfbGlnaHQiIG1zZ2lkPSIxMTAzODY3NTk2MzMwMjcxODQ4Ij4i5pCc5bCLIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jYW1lcmFfYnV0dG9uIiBtc2dpZD0iODA2NDY3MTU4MjgyMDM1ODE1MiI+IuebuOapnyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4i5YiH5o+b6Ly45YWl5rOV5oyJ6YiV44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+IuebuOWuueaAp+e4ruaUvuaMiemIleOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4i5bCH6LyD5bCP6J6i5bmV55qE55Wr6Z2i5pS+5aSn5Zyo6LyD5aSn6J6i5bmV5LiK6aGv56S644CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfY29ubmVjdGVkIiBtc2dpZD0iMjcwNzAyNzYzMzI0Mjk4MzM3MCI+IuiXjeeJmemAo+e3muW3suW7uueri+OAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYmx1ZXRvb3RoX2Rpc2Nvbm5lY3RlZCIgbXNnaWQ9Ijc0MTY2NDg2Njk5NzY4NzAxNzUiPiLol43niZnpgKPnt5rlt7LkuK3mlrfjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX2JhdHRlcnkiIG1zZ2lkPSIzNTgzNDMwMjIzNTI4MjA5NDYiPiLmnKrlronoo53pm7vmsaDjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfb25lX2JhciIgbXNnaWQ9Ijc3NzQ4ODc3MjE4OTEwNTc1MjMiPiLpm7vmsaDpm7vph4/ngrrkuIDmoLzjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfdHdvX2JhcnMiIG1zZ2lkPSI4NTAwNjUwNDM4NzM1MDA5OTczIj4i6Zu75rGg6Zu76YeP54K65YWp5qC844CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X3RocmVlX2JhcnMiIG1zZ2lkPSIyMzAyOTgzMzMwODY1MDQwNDQ2Ij4i6Zu75rGg6Zu76YeP54K65LiJ5qC844CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9iYXR0ZXJ5X2Z1bGwiIG1zZ2lkPSI4OTA5MTIyNDAxNzIwMTU4NTgyIj4i6Zu75rGg5bey5ru/44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19waG9uZSIgbXNnaWQ9IjQ4OTQ3MDg5MzcwNTI2MTEyODEiPiLmspLmnInpm7voqbHoqIromZ/jgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX29uZV9iYXIiIG1zZ2lkPSI2ODc2OTkyNzgxMzI2NjQxMTUiPiLpm7voqbHoqIromZ/lvLfluqbngrrkuIDmoLzjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3R3b19iYXJzIiBtc2dpZD0iODM4NDkwNTM4MjgwNDgxNTIwMSI+Iumbu+ipseioiuiZn+W8t+W6pueCuuWFqeagvOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcGhvbmVfdGhyZWVfYmFycyIgbXNnaWQ9Ijg1MjE5MDQ4NDM5MTk5NzE4ODUiPiLpm7voqbHoqIromZ/lvLfluqbngrrkuInmoLzjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3Bob25lX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjQ3MTgzNDg2ODU4MDc1Nzg5OCI+Iumbu+ipseioiuiZn+a7v+agvOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fZGF0YSIgbXNnaWQ9IjQ3OTE5NjYyOTUwOTY4Njc1NTUiPiLmspLmnInmlbjmk5rntrLntaHjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfb25lX2JhciIgbXNnaWQ9IjE0MTU2MjU4MzMyMzgyNzM2MjgiPiLmlbjmk5rntrLntaHoqIromZ/lvLfluqbngrrkuIDmoLzjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfdHdvX2JhcnMiIG1zZ2lkPSI2MTY2MDE4NDkyMzYwNDMyMDkxIj4i5pW45pOa57ay57Wh6KiK6Jmf5by35bqm54K65YWp5qC844CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3RocmVlX2JhcnMiIG1zZ2lkPSI5MTY3NjcwNDUyMzk1MDM4NTIwIj4i5pW45pOa57ay57Wh6KiK6Jmf5by35bqm54K65LiJ5qC844CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX3NpZ25hbF9mdWxsIiBtc2dpZD0iMjcwODM4NDYwODEyNDUxOTM2OSI+IuaVuOaTmue2sue1oeioiuiZn+a7v+agvOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV9vZmYiIG1zZ2lkPSIzMTc3MzgwMjk2Njk3OTMzNjI3Ij4iV2lGaSDlt7Lpl5zplonjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X25vX3dpZmkiIG1zZ2lkPSIxNDI1NDc2NTUxODI3OTI0NDc0Ij4iV2lGaSDpgKPnt5rlt7LkuK3mlrfjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3dpZmlfb25lX2JhciIgbXNnaWQ9Ijc3MzU4OTMxNzgwMTA3MjQzNzciPiJXaUZpIOioiuiZn+W8t+W6pueCuuS4gOagvOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90d29fYmFycyIgbXNnaWQ9IjQ5OTQyNzQyNTA0OTcyNjI0MzQiPiJXaUZpIOioiuiZn+W8t+W6pueCuuWFqeagvOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2lmaV90aHJlZV9iYXJzIiBtc2dpZD0iMzQ5NTc1NTA0NDI3NjU4ODM4NCI+IldpRmkg6KiK6Jmf5by35bqm54K65LiJ5qC844CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aWZpX3NpZ25hbF9mdWxsIiBtc2dpZD0iNjg1MzU2MTMwMzU4NjQ4MDM3NiI+IldpRmkg6KiK6Jmf5bey5ru/44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub193aW1heCIgbXNnaWQ9IjQzMjkxODAxMjk3Mjc2MzAzNjgiPiLmspLmnIkgV2lNQVgg6KiK6Jmf44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF9vbmVfYmFyIiBtc2dpZD0iNDE3MDk5NDI5OTAxMTg2MzY0OCI+IldpTUFYIOioiuiZn+W8t+W6puS4gOagvOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfdHdvX2JhcnMiIG1zZ2lkPSI5MTc2MjM2ODU4MzM2NTAyMjg4Ij4iV2lNQVgg6KiK6Jmf5by35bqm5YWp5qC844CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV93aW1heF90aHJlZV9iYXJzIiBtc2dpZD0iNjExNjU1MTYzNjc1MjEwMzkyNyI+IldpTUFYIOioiuiZn+W8t+W6puS4ieagvOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfd2ltYXhfc2lnbmFsX2Z1bGwiIG1zZ2lkPSIyNzY4MDg5OTg2Nzk1NTc5NTU4Ij4iV2lNQVgg6KiK6Jmf5ru/5qC844CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub19zaWduYWwiIG1zZ2lkPSI3MDY0NjQ1MzIwNzgyNTg1MTY3Ij4i5rKS5pyJ6KiK6Jmf44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNjM5NTMyNjI3NjIxMzQwMjg4MyI+IuacqumAo+e3muOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfemVyb19iYXJzIiBtc2dpZD0iMzgwNjA2MDIyNDQ2NzAyNzg4NyI+IuioiuiZn+W8t+W6pueCuumbtuagvOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfb25lX2JhciIgbXNnaWQ9IjE2ODU3MzAxMTMxOTIwODE4OTUiPiLoqIromZ/lvLfluqbngrrkuIDmoLzjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3R3b19iYXJzIiBtc2dpZD0iNjQzNzM2MzY0ODM4NTIwNjY3OSI+IuioiuiZn+W8t+W6pueCuuWFqeagvOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdGhyZWVfYmFycyIgbXNnaWQ9IjI2NDgyNDE0MTUxMTkzOTY2NDgiPiLoqIromZ/lvLfluqbngrrkuInmoLzjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NpZ25hbF9mdWxsIiBtc2dpZD0iOTEyMjkyMjg4NjUxOTY3NjgzOSI+IuioiuiZn+W3sua7v+OAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19vbiIgbXNnaWQ9IjIzODUyNTQ2OTM2MjQzNDUyNjUiPiLplovllZ/jgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2Nfb2ZmIiBtc2dpZD0iNjQ3NTUwODE1Nzc4Njg1MzE1NyI+IumXnOmWieOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGVzY19jb25uZWN0ZWQiIG1zZ2lkPSI4MzY2MjU2NjkzNzE5NDk5NjY1Ij4i5bey6YCj57ea44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZ3BycyIgbXNnaWQ9IjE2MDY0NzcyMjQ0ODY3NDc3NTEiPiJHUFJTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fMXgiIG1zZ2lkPSI5OTQxMzM0NjgxMjAyNDQwMTgiPiIxIFgiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl9oc3BhIiBtc2dpZD0iMjAzMjMyODg1NTQ2MjY0NTE5OCI+IkhTUEEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2RhdGFfY29ubmVjdGlvbl8zZyIgbXNnaWQ9Ijg2Mjg1NjIzMDUwMDM1NjgyNjAiPiIzRyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzMuNWciIG1zZ2lkPSI4NjY0ODQ1NjA5OTgxNjkyMDAxIj4iMy41RyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uXzRnIiBtc2dpZD0iNzc0MTAwMDc1MDYzMDA4OTYxMiI+IjRHIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fbHRlIiBtc2dpZD0iNTQxMzQ2ODgwODYzNzU0MDY1OCI+IkxURSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX2NkbWEiIG1zZ2lkPSI2MTMyNjQ4MTkzOTc4ODIzMDIzIj4iQ0RNQSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZGF0YV9jb25uZWN0aW9uX3JvYW1pbmciIG1zZ2lkPSI1OTc3MzYyMzMzNDY2NTU2MDk0Ij4i5ryr6YGKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fZWRnZSIgbXNnaWQ9IjQ0Nzc0NTcwNTE2MzE5NzkyNzgiPiJFZGdlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kYXRhX2Nvbm5lY3Rpb25fd2lmaSIgbXNnaWQ9IjIzMjQ0OTY3NTY1OTA2NDUyMjEiPiJXaS1GaSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm9fc2ltIiBtc2dpZD0iODI3NDAxNzExODQ3MjQ1NTE1NSI+IueEoSBTSU0g5Y2h44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ibHVldG9vdGhfdGV0aGVyIiBtc2dpZD0iNDEwMjc4NDQ5ODE0MDI3MTk2OSI+IuiXjeeJmeaVuOaTmumAo+e3muOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfYWlycGxhbmVfbW9kZSIgbXNnaWQ9IjgzNDc0ODk5OTc5MDc2MzA5MiI+Iumjm+iIquaooeW8j+OAgiI8L3N0cmluZz4KKyAgICA8IS0tIFN0cmluZy5mb3JtYXQgZmFpbGVkIGZvciB0cmFuc2xhdGlvbiAtLT4KKyAgICA8IS0tIG5vIHRyYW5zbGF0aW9uIGZvdW5kIGZvciBhY2Nlc3NpYmlsaXR5X2JhdHRlcnlfbGV2ZWwgKDc0NTE0NzQxODcxMTMzNzE5NjUpIC0tPgorICAgIDxza2lwIC8+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NldHRpbmdzX2J1dHRvbiIgbXNnaWQ9Ijc5OTU4MzkxMTIzMTg5MzM4MCI+Iuezu+e1seioreWumiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbm90aWZpY2F0aW9uc19idXR0b24iIG1zZ2lkPSI0NDk4MDAwMzY5Nzc5NDIxODkyIj4i6YCa55+l44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yZW1vdmVfbm90aWZpY2F0aW9uIiBtc2dpZD0iMzYwMzA5OTUxNDkwMjE4MjM1MCI+Iua4hemZpOmAmuefpeOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2VuYWJsZWQiIG1zZ2lkPSIzNTExNDY5NDk5MjQwMTIzMDE5Ij4iR1BTIOW3suWVn+eUqOOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfZ3BzX2FjcXVpcmluZyIgbXNnaWQ9Ijg5NTkzMzMzNTEwNTg5NjcxNTgiPiLmraPlnKjlj5blvpcgR1BTIOioiuiZn+OAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfdHR5X2VuYWJsZWQiIG1zZ2lkPSI0NjEzMjAwMzY1Mzc5NDI2NTYxIj4iVGVsZVR5cGV3cml0ZXIgKFRUWSkg5bey5ZWf55So44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yaW5nZXJfdmlicmF0ZSIgbXNnaWQ9IjY2NjU4NTM2MzM2NDE1NTA1NSI+IumItOiBsumch+WLleOAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmluZ2VyX3NpbGVudCIgbXNnaWQ9IjkwNjEyNDMzMDc5MzkxMzUzODMiPiLpiLTogbLpnZzpn7PjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudHNfaXRlbV9kaXNtaXNzZWQiIG1zZ2lkPSI2ODAzNTc0OTM1MDg0ODY3MDcwIj4i44CMPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+44CN5bey6Zec6ZaJ44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ub3RpZmljYXRpb25fZGlzbWlzc2VkIiBtc2dpZD0iODU0MjExMzg3MTg2MzA2OTI3Ij4i6YCa55+l5bey6Zec6ZaJ44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX25vdGlmaWNhdGlvbl9zaGFkZSIgbXNnaWQ9IjQ2OTAyNzQ4NDQ0NDc1MDQyMDgiPiLpgJrnn6XmrITjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2Rlc2NfcXVpY2tfc2V0dGluZ3MiIG1zZ2lkPSI2MTg2Mzc4NDExNTgyNDM3MDQ2Ij4i5b+r6YCf6Kit5a6a44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9kZXNjX3JlY2VudF9hcHBzIiBtc2dpZD0iOTAxNDAzMjkxNjQxMDU5MDAyNyI+IuacgOi/keS9v+eUqOeahOaHieeUqOeoi+W8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfdXNlciIgbXNnaWQ9IjExMDQ4NDY2OTk4Njk0NzY4NTUiPiLnlKjmiLbvvJo8eGxpZmY6ZyBpZD0iVVNFUiI+JXM8L3hsaWZmOmc+44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc193aWZpIiBtc2dpZD0iNjA5OTc4MTAzMTY2OTcyODcwOSI+Ijx4bGlmZjpnIGlkPSJTSUdOQUwiPiUxJHM8L3hsaWZmOmc+44CBPHhsaWZmOmcgaWQ9Ik5FVFdPUksiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19tb2JpbGUiIG1zZ2lkPSI0ODc2ODA2NTY0MDg2MjQxMzQxIj4i5rWB5YuV5pW45pOa6YCj57ea77yaPHhsaWZmOmcgaWQ9IlNJR05BTCI+JTEkczwveGxpZmY6Zz7jgIE8eGxpZmY6ZyBpZD0iVFlQRSI+JTIkczwveGxpZmY6Zz7jgIE8eGxpZmY6ZyBpZD0iTkVUV09SSyI+JTMkczwveGxpZmY6Zz7jgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4i6Zu75rGg6Zu76YeP77yaPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz7jgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2FpcnBsYW5lIiBtc2dpZD0iNDE5Njg3NjcyMjA5MDIyNDc1MyI+Iumjm+iIquaooeW8j++8mjx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19ibHVldG9vdGgiIG1zZ2lkPSI1NzQ5MDU0OTcxMzQxODgyMzQwIj4i6JeN54mZ77yaPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz7jgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2xvY2F0aW9uIiBtc2dpZD0iNDU3NzI4MjMyOTg2NjgxMzEwMCI+IuWumuS9jeacjeWLmTx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiLprKfpkJjlt7LoqK3lrprngrrvvJo8eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfM2dfdGl0bGUiIG1zZ2lkPSI1MjU3ODMzODgxNjk4NjQ0Njg3Ij4i5bey5YGc55SoIDJHLTNHIOaVuOaTmiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzRnX3RpdGxlIiBtc2dpZD0iNDc4OTE0MzM2MzQ5MjY4MjYyOSI+IuW3suWBnOeUqCA0RyDmlbjmk5oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ19tb2JpbGVfdGl0bGUiIG1zZ2lkPSIxMDQ2MDQ3MjQ4ODQ0ODIxMjAyIj4i5bey5YGc55So5rWB5YuV5pW45pOaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2dfdGl0bGUiIG1zZ2lkPSIyMDg2ODE1MzA0ODU4OTY0OTU0Ij4i5pW45pOa5YGc55SoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV91c2FnZV9kaXNhYmxlZF9kaWFsb2ciIG1zZ2lkPSIzODUzMTE3MjY5MDUxODA2MjgwIj4i5oKo5bey5Yiw6YGU5oyH5a6a55qE5pW45pOa55So6YeP5LiK6ZmQ44CCXG5cbuWmguaenOaCqOmHjeaWsOWVn+eUqOaVuOaTmuWCs+i8uO+8jOa1geWLlee2sue1oeS+m+aHieWVhuWPr+iDveacg+WQkeaCqOaUtuiyu+OAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nX2VuYWJsZSIgbXNnaWQ9Ijc3Mjk3NzIwMzkyMDg2NjQ2MDYiPiLph43mlrDllZ/nlKjmlbjmk5oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3NldHRpbmdzX3NpZ25hbF9tZXRlcl9kaXNjb25uZWN0ZWQiIG1zZ2lkPSIxOTQwMjMxNTIxMjc0MTQ3NzcxIj4i5rKS5pyJ5LqS6IGv57ay6YCj57eaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9zZXR0aW5nc19zaWduYWxfbWV0ZXJfd2lmaV9ub3NzaWQiIG1zZ2lkPSI2NTU3NDg2NDUyNzc0NTk3ODIwIj4iV2ktRmkg5bey6YCj57eaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiLmraPlnKjmkJzlsIsgR1BTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9mb3VuZF90ZXh0IiBtc2dpZD0iNDYxOTI3NDI0NDE0NjQ0NjQ2NCI+IkdQUyDlt7LlrprkvY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiLkvY3nva7opoHmsYLllZ/li5XkuK0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiLmuIXpmaTmiYDmnInpgJrnn6XjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vdGlmaWNhdGlvbl9pbnNwZWN0X2l0ZW1fdGl0bGUiIG1zZ2lkPSIxMTYzNTQ3NzI5MDE1MzkwMjUwIj4i5oeJ55So56iL5byP6LOH6KiKIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiLlsY/luZXmnIPoh6rli5Xml4vovYnjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IuWxj+W5leW3sumOluWumueCuuapq+WQkeaooeW8j+OAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vbl9wb3J0cmFpdCIgbXNnaWQ9IjU4MDkzNjc1MjE2NDQwMTIxMTUiPiLlsY/luZXlt7LpjpblrprngrrlnoLnm7TmqKHlvI/jgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkZXNzZXJ0X2Nhc2UiIG1zZ2lkPSIxMjk1MTYxNzc2MjIzOTU5MjIxIj4iRGVzc2VydCBDYXNlIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhcnRfZHJlYW1zIiBtc2dpZD0iNzIxOTU3NTg1ODM0ODcxOTc5MCI+IkRheWRyZWFtIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZXRoZXJuZXRfbGFiZWwiIG1zZ2lkPSI3OTY3NTYzNjc2MzI0MDg3NDY0Ij4i5Lul5aSq57ayIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiLpo5vooYzmqKHlvI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19iYXR0ZXJ5X2NoYXJnaW5nX2xhYmVsIiBtc2dpZD0iNDkwMDc0Nzc0NDY1MzA5MjA5Ij4i5YWF6Zu75LitICg8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz48eGxpZmY6ZyBpZD0iUEVSQ0VOVCI+JSU8L3hsaWZmOmc+KSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JhdHRlcnlfY2hhcmdlZF9sYWJlbCIgbXNnaWQ9Ijg4NjU0MTMwNzk0MTQyNDYwODEiPiLlhYXpm7vlrozmiJAiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19ibHVldG9vdGhfbGFiZWwiIG1zZ2lkPSI2MzA0MTkwMjg1MTcwNzIxNDAxIj4i6JeN54mZIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoX211bHRpcGxlX2RldmljZXNfbGFiZWwiIG1zZ2lkPSIzOTEyMjQ1NTY1NjEzNjg0NzM1Ij4i6JeN54mZICg8eGxpZmY6ZyBpZD0iTlVNQkVSIj4lZDwveGxpZmY6Zz4g6YOo6KOd572uKSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JsdWV0b290aF9vZmZfbGFiZWwiIG1zZ2lkPSI4MTU5NjUyMTQ2MTQ5MjE5OTM3Ij4i6JeN54mZ6Zec6ZaJIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjY5NjgzNzIyOTcwMTg3NTU4MTUiPiLkuq7luqYiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yb3RhdGlvbl91bmxvY2tlZF9sYWJlbCIgbXNnaWQ9IjMzNjA1NDkzMDM2MjU4MDU4NCI+IuiHquWLleaXi+i9iSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3JvdGF0aW9uX2xvY2tlZF9sYWJlbCIgbXNnaWQ9IjgwNTg2NDY0NDcyNDI1NjU0ODYiPiLlt7LpjpblrprlsY/luZXml4vovYnlip/og70iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbWVfbGFiZWwiIG1zZ2lkPSI3MDczNDYzMDY0MzY5NDY4NDI5Ij4i6Ly45YWl5rOVIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fbGFiZWwiIG1zZ2lkPSI1MDExMzI3MDQ4NzQ4NzYyMjU3Ij4i5L2N572uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfbG9jYXRpb25fb2ZmX2xhYmVsIiBtc2dpZD0iNzQ2NDU0NDA4NjUwNzMzMTQ1OSI+IuS9jee9rumXnOmWiSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX21lZGlhX2RldmljZV9sYWJlbCIgbXNnaWQ9IjEzMDI5MDY4MzYzNzI2MDM3NjIiPiLlqpLpq5Too53nva4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2xhYmVsIiBtc2dpZD0iNzcyNTY3MTMzNTU1MDY5NTU4OSI+IlJTU0kiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19yc3NpX2VtZXJnZW5jeV9vbmx5IiBtc2dpZD0iMjcxMzc3NDA0MTY3Mjg4Njc1MCI+IuWPquWPr+aSpeaJk+e3iuaApembu+ipsSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3NldHRpbmdzX2xhYmVsIiBtc2dpZD0iNTMyNjU1NjU5MjU3ODA2NTQwMSI+IuioreWumiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3RpbWVfbGFiZWwiIG1zZ2lkPSI0NjM1OTY5MTgyMjM5NzM2NDA4Ij4i5pmC6ZaTIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfdXNlcl9sYWJlbCIgbXNnaWQ9IjUyMzg5OTU2MzIxMzA4OTc4NDAiPiLmiJEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2xhYmVsIiBtc2dpZD0iOTEzNTM0NDcwNDg5OTU0NjA0MSI+IldpLUZpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9ub3RfY29ubmVjdGVkIiBtc2dpZD0iNzE3MTkwNDg0NTM0NTU3MzQzMSI+IuacqumAo+e3miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfbm9fbmV0d29yayIgbXNnaWQ9IjIyMjE5OTMwNzcyMjA4NTYzNzYiPiLmspLmnInntrLntaEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX29mZl9sYWJlbCIgbXNnaWQ9Ijc1NTg3NzgxMDA4NDM4ODU4NjQiPiJXaS1GaSDpl5zplokiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbGFiZWwiIG1zZ2lkPSI2ODkzNTkyOTY0NDYzNjI0MzMzIj4iV2ktRmkgRGlzcGxheSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX3dpZmlfZGlzcGxheV9ub19jb25uZWN0aW9uX2xhYmVsIiBtc2dpZD0iMjM1NTI5ODc0MDc2NTczNjkxOCI+IueEoee3mumhr+ekuiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IuS6ruW6piI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX2F1dG9fYnJpZ2h0bmVzc19sYWJlbCIgbXNnaWQ9IjUwNjQ5ODI3NDM3ODQwNzEyMTgiPiLoh6rli5UiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19pbnZlcnNpb25fbGFiZWwiIG1zZ2lkPSIxNjY2MzU4Nzg0MjgzMDIwNzYyIj4i6Imy5b2p5Y+N6L2J5qih5byPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4i5aKe5by35bCN5q+U5qih5byPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwiIG1zZ2lkPSI4NTM0NDM2ODk3NDU1ODQ3NzAiPiLoibLlvanmoKHmupbmqKHlvI8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzc2xfY2FfY2VydF93YXJuaW5nIiBtc2dpZD0iOTAwNTk1NDEwNjkwMjA1MzY0MSI+Iue2sue1oeWPr+iDveacg1xu5Y+X5Yiw55uj5o6nIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXpoLXJUVy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sCmluZGV4IDJjZmRiNTkuLjViMjA1ZTEgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtemgtclRXL3N0cmluZ3MueG1sCkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IuS4gOW+i+WFgeiosemAj+mBjumAmeWPsOmbu+iFpumAsuihjCI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IuaUvuWkp+eCuuWFqOieouW5lSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29mZiIgbXNnaWQ9IjQ0MzQ0Njc1NzI0NjEzMjc4OTgiPiLmlL7lpKfngrrlhajonqLluZUiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiLnm7jlrrnmgKfnuK7mlL4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4i5Z+36KGM5bCI54K66LyD5bCP6J6i5bmV6Kit6KiI55qE5oeJ55So56iL5byP5pmC77yM57O757Wx5pyD5Zyo5pmC6ZCY5peB6aGv56S657iu5pS+5o6n5Yi26aCF44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+Iuato+WcqOWEsuWtmOieouW5leaTt+WPlueVq+mdouKApiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RpdGxlIiBtc2dpZD0iODI0MjI4MjE0NDUzNTU1NTY5NyI+Iuato+WcqOWEsuWtmOieouW5leaTt+WPlueVq+mdouKApiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNjcmVlbnNob3Rfc2F2aW5nX3RleHQiIG1zZ2lkPSIyNDE5NzE4NDQzNDExNzM4ODE4Ij4i5q2j5Zyo5YSy5a2Y6J6i5bmV5pO35Y+W55Wr6Z2i44CCIjwvc3RyaW5nPgpAQCAtNzgsNiArNzYsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9ob21lIiBtc2dpZD0iODIxNzIxNjA3NDg5NTM3NzY0MSI+IuS4u+ieouW5lSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfbWVudSIgbXNnaWQ9IjMxNjgzOTMwMzMyNDY5NTk0OSI+IumBuOWWriI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcmVjZW50IiBtc2dpZD0iODU3MTM1MDU5ODk4Nzk1Mjg4MyI+IuacgOi/keS9v+eUqOeahOaHieeUqOeoi+W8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfc2VhcmNoX2xpZ2h0IiBtc2dpZD0iMTEwMzg2NzU5NjMzMDI3MTg0OCI+IuaQnOWwiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiLnm7jmqZ8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2ltZV9zd2l0Y2hfYnV0dG9uIiBtc2dpZD0iNTAzMjkyNjEzNDc0MDQ1NjQyNCI+IuWIh+aPm+i8uOWFpeazleaMiemIleOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2J1dHRvbiIgbXNnaWQ9Ijg0NjExMTUzMTg3NDIzNTA2OTkiPiLnm7jlrrnmgKfnuK7mlL7mjInpiJXjgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NvbXBhdGliaWxpdHlfem9vbV9leGFtcGxlIiBtc2dpZD0iNDIyMDY4NzI5NDU2NDk0NTc4MCI+IuWwh+i8g+Wwj+ieouW5leeahOeVq+mdouaUvuWkp+WcqOi8g+Wkp+ieouW5leS4iumhr+ekuuOAgiI8L3N0cmluZz4KQEAgLTE1NSw2ICsxNTUsNyBAQAogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19iYXR0ZXJ5IiBtc2dpZD0iMTQ4MDkzMTU4MzM4MTQwODk3MiI+Iumbu+axoOmbu+mHj++8mjx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiLpo5voiKrmqKHlvI/vvJo8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPuOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IuiXjeeJme+8mjx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19sb2NhdGlvbiIgbXNnaWQ9IjQ1NzcyODIzMjk4NjY4MTMxMDAiPiLlrprkvY3mnI3li5k8eGxpZmY6ZyBpZD0iU1RBVEUiPiVzPC94bGlmZjpnPuOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYWxhcm0iIG1zZ2lkPSIzOTU5OTA4OTcyODk3Mjk1NjYwIj4i6ayn6ZCY5bey6Kit5a6a54K677yaPHhsaWZmOmcgaWQ9IlRJTUUiPiVzPC94bGlmZjpnPuOAgiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+IuW3suWBnOeUqCAyRy0zRyDmlbjmk5oiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiLlt7LlgZznlKggNEcg5pW45pOaIjwvc3RyaW5nPgpAQCAtMTY2LDEyICsxNjcsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IldpLUZpIOW3sumAo+e3miI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fc2VhcmNoaW5nX3RleHQiIG1zZ2lkPSI4NTc0MjQ3MDA1NjQyNzM2MDYwIj4i5q2j5Zyo5pCc5bCLIEdQUyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Imdwc19ub3RpZmljYXRpb25fZm91bmRfdGV4dCIgbXNnaWQ9IjQ2MTkyNzQyNDQxNDY0NDY0NjQiPiJHUFMg5bey5a6a5L2NIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9sb2NhdGlvbl9hY3RpdmUiIG1zZ2lkPSIyNDI3MjkwMTQ2MTM4MTY5MDE0Ij4i5pyJ5L2N572u6LOH6KiK6KaB5rGCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jbGVhcl9hbGwiIG1zZ2lkPSI1MjM1OTM4NTU5MjQ3MTY0OTI1Ij4i5riF6Zmk5omA5pyJ6YCa55+l44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IuaHieeUqOeoi+W8j+izh+ioiiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcm90YXRpb25fbG9ja19vZmYiIG1zZ2lkPSI0MDYyNzgwMjI4OTMxNTkwMDY5Ij4i6J6i5bmV5pyD6Ieq5YuV5peL6L2J44CCIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX2xhbmRzY2FwZSIgbXNnaWQ9IjY3MzExOTczMzc2NjUzNjYyNzMiPiLonqLluZXlt7LpjpblrprngrrmqavlkJHmqKHlvI/jgIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fcG9ydHJhaXQiIG1zZ2lkPSI1ODA5MzY3NTIxNjQ0MDEyMTE1Ij4i6J6i5bmV5bey6Y6W5a6a54K65Z6C55u05qih5byP44CCIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iamVsbHlfYmVhbl9kcmVhbV9uYW1lIiBtc2dpZD0iNTk5MjAyNjU0MzYzNjgxNjc5MiI+IkJlYW5GbGluZ2VyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGVzc2VydF9jYXNlIiBtc2dpZD0iMTI5NTE2MTc3NjIyMzk1OTIyMSI+IkRlc3NlcnQgQ2FzZSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiLkvJHnnKDmqKHlvI8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiLkuZnlpKrntrLot68iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19haXJwbGFuZV9tb2RlX2xhYmVsIiBtc2dpZD0iNTUxMDUyMDYzMzQ0ODgzMTM1MCI+Iumjm+iIquaooeW8jyI8L3N0cmluZz4KQEAgLTIwMCw4ICsyMDIsOCBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3Nfd2lmaV9kaXNwbGF5X25vX2Nvbm5lY3Rpb25fbGFiZWwiIG1zZ2lkPSIyMzU1Mjk4NzQwNzY1NzM2OTE4Ij4i54Sh57ea6J6i5bmV5YiG5LqrIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiIG1zZ2lkPSI4NTk5Njc0MDU3NjczNjA1MzY4Ij4i5Lqu5bqmIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+IuiHquWLlSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaGVscF90aXRsZSIgbXNnaWQ9IjExOTkyMzc3NDQwODY0NjkyMTciPiLns7vntbHmnIPlnKjpgJnoo6Hpoa/npLrpgJrnn6UiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiLlkJHkuIvmu5Hli5XljbPlj6/pmqjmmYLlrZjlj5bpgJrnn6XjgIJcbuWGjeasoeWQkeS4i+a7keWLleWNs+WPr+S9v+eUqOezu+e1seaOp+WItumgheOAgiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+Iua7keWLleieouW5lemCiue3o+WNs+WPr+mhr+ekuuWwjuimveWIlyI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlX2xvbmciIG1zZ2lkPSI3MTE3NjkyNzk1MTYzNjIwNjI2Ij4i5b6e6J6i5bmV6YKK57ej5ZCR5YWn5ruR5YuV5Y2z5Y+v6aGv56S65bCO6Ka95YiXIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsIiBtc2dpZD0iMTY2NjM1ODc4NDI4MzAyMDc2MiI+IuW9qeiJsuWPjei9ieaooeW8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbnRyYXN0X2xhYmVsIiBtc2dpZD0iMzMxOTUwNzU1MTY4OTEwODY5MiI+IuWinuW8t+WwjeavlOaooeW8jyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2NvbG9yX3NwYWNlX2xhYmVsIiBtc2dpZD0iODUzNDQzNjg5NzQ1NTg0NzcwIj4i6Imy5b2p5qCh5q2j5qih5byPIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3NsX2NhX2NlcnRfd2FybmluZyIgbXNnaWQ9IjkwMDU5NTQxMDY5MDIwNTM2NDEiPiLntrLot6/lj6/og71cbuWPl+WIsOebo+aOpyI8L3N0cmluZz4KIDwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy16dS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMtenUvc3RyaW5ncy54bWwKaW5kZXggMDA3ZDMzOC4uMTMxZWVmNSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy16dS9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzLXp1L3N0cmluZ3MueG1sCkBAIC0yNCwxMCArMjQsMTAgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X3JlbW92ZV9pdGVtX3RpdGxlIiBtc2dpZD0iNjAyNjM5NTg2ODEyOTg1Mjk2OCI+IlN1c2Egb2hsd2luaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfcmVjZW50X2luc3BlY3RfaXRlbV90aXRsZSIgbXNnaWQ9Ijc3OTM2MjQ4NjQ1Mjg4MTg1NjkiPiJVbHdhemkgbHdlbnNpemEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX25vX3JlY2VudF9hcHBzIiBtc2dpZD0iNjU3NjM5Mjk1MTA1Mzk5NDY0MCI+IkF6aWtobyBpemluaGxlbG8gem9rdXNlYmVuemEgemFrYW11dmEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2FjY2Vzc2liaWxpdHlfZGlzbWlzc19yZWNlbnRzIiBtc2dpZD0iNDU3NjA3NjA3NTIyNjU0MDEwNSI+IlN1c2EgaXppbnNpemEgemFrYW11bXZhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9hY2Nlc3NpYmlsaXR5X2Rpc21pc3NfcmVjZW50cyIgbXNnaWQ9IjQ1NzYwNzYwNzUyMjY1NDAxMDUiPiJTdXNhIGl6aW5obGVsbyB6b2t1c2ViZW56YSB6YWthbXVtdmEiPC9zdHJpbmc+CiAgIDxwbHVyYWxzIG5hbWU9InN0YXR1c19iYXJfYWNjZXNzaWJpbGl0eV9yZWNlbnRfYXBwcyI+CiAgICAgPGl0ZW0gcXVhbnRpdHk9Im9uZSIgbXNnaWQ9IjU4NTQxNzYwODM4NjU4NDU1NDEiPiJJbnNpemEgZXlpLTEgeWFrYW11bXZhIjwvaXRlbT4KLSAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMDQwNzg0MzU5Nzk0ODkwNzQ0Ij4iJWQgaXppbnNpemEgemFrYW11bXZhIjwvaXRlbT4KKyAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiIG1zZ2lkPSIxMDQwNzg0MzU5Nzk0ODkwNzQ0Ij4iJWQgaXppbmhsZWxvIHpva3VzZWJlbnphIHpha2FtdW12YSI8L2l0ZW0+CiAgIDwvcGx1cmFscz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfbm9fbm90aWZpY2F0aW9uc190aXRsZSIgbXNnaWQ9IjQ3NTUyNjExNjcxOTM4MzMyMTMiPiJBemlraG8gaXphemlzbyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfb25nb2luZ19ldmVudHNfdGl0bGUiIG1zZ2lkPSIxNjgyNTA0NTEzMzE2ODc5MjAyIj4iT2t1cWh1YmVrYXlvIjwvc3RyaW5nPgpAQCAtNDcsMTEgKzQ3LDExIEBACiAgICAgPHN0cmluZyBuYW1lPSJibHVldG9vdGhfdGV0aGVyZWQiIG1zZ2lkPSI3MDk0MTAxNjEyMTYxMTMzMjY3Ij4iVWt1c2ViZW56aXNhIGktQmx1ZXRvb3RoIG5qZW5nZW1vZGVtdSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfaW5wdXRfbWV0aG9kX3NldHRpbmdzX2NvbmZpZ3VyZV9pbnB1dF9tZXRob2RzIiBtc2dpZD0iMzUwNDI5MjQ3MTUxMjMxNzgyNyI+Ikl6aWx1bmdpc2VsZWxvIHplemluZGxlbGEgem9rdWZha3dheW8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX3VzZV9waHlzaWNhbF9rZXlib2FyZCIgbXNnaWQ9Ijc1NTE5MDMwODQ0MTYwNTc4MTAiPiJVa3dha2hla2Ega3dla2hpYmhvZGkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iODM0Njk4MDAxMjcxNTYyMDU3Ij4iVnVtZWxhIGluc2l6YSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IHVrdXRoaSB1ZmlueWVsZWxlIGV6aW50d2VuaSBlemlwaHVtYSBuZS1VU0I/Ijwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjUxNzE3NzU0MTExNzg4NjU3NTAiPiJWdW1lbGEgaW5zaXphIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4gdWt1dGhpIHVmaW55ZWxlbGUgZXppbnR3ZW5pIGV6aXBodW1hIG5lLVVTQj8iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX3Blcm1pc3Npb25fcHJvbXB0IiBtc2dpZD0iODM0Njk4MDAxMjcxNTYyMDU3Ij4iVnVtZWxhIHVobGVsbyBsb2t1c2ViZW56YSA8eGxpZmY6ZyBpZD0iQVBQTElDQVRJT04iPiUxJHM8L3hsaWZmOmc+IHVrdXRoaSB1ZmlueWVsZWxlIGV6aW50d2VuaSBlemlwaHVtYSBuZS1VU0I/Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0idXNiX2FjY2Vzc29yeV9wZXJtaXNzaW9uX3Byb21wdCIgbXNnaWQ9IjUxNzE3NzU0MTExNzg4NjU3NTAiPiJWdW1lbGEgdWhsZWxvIGxva3VzZWJlbnphIDx4bGlmZjpnIGlkPSJBUFBMSUNBVElPTiI+JTEkczwveGxpZmY6Zz4gdWt1dGhpIHVmaW55ZWxlbGUgZXppbnR3ZW5pIGV6aXBodW1hIG5lLVVTQj8iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGV2aWNlX2NvbmZpcm1fcHJvbXB0IiBtc2dpZD0iNTE2MTIwNTI1ODYzNTI1MzIwNiI+IlZ1bGEgPHhsaWZmOmcgaWQ9IkFDVElWSVRZIj4lMSRzPC94bGlmZjpnPiB1bWEgbGVkaXZheWlzaSB5ZS1VU0IgaXhodW55aXdlPyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfY29uZmlybV9wcm9tcHQiIG1zZ2lkPSIzODA4OTg0OTMxODMwMjI5ODg4Ij4iVnVsYSA8eGxpZmY6ZyBpZD0iQUNUSVZJVFkiPiUxJHM8L3hsaWZmOmc+IHVtYSBsZS1hY2Nlc3NvcnkgeWUtVVNCIGl4aHVueWl3ZSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9InVzYl9hY2Nlc3NvcnlfdXJpX3Byb21wdCIgbXNnaWQ9IjUxMzQ1MDYyMTQxMzczMzM0MyI+IkF6aWtobyBpemluc2l6YSBlemlzZWJlbnplIG5nZXppbnRvIHplLVVTQi4gRnVuZGEgb2t3ZW5nZXppd2UgbmdhbGUgaW50byBrd2kgPHhsaWZmOmcgaWQ9IlVSTCI+JTEkczwveGxpZmY6Zz4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ1c2JfYWNjZXNzb3J5X3VyaV9wcm9tcHQiIG1zZ2lkPSI1MTM0NTA2MjE0MTM3MzMzNDMiPiJBemlraG8gaXppbmhsZWxvIHpva3VzZWJlbnphIGV6aXNlYmVuemUgbmdlemludG8gemUtVVNCLiBGdW5kYSBva3dlbmdleml3ZSBuZ2FsZSBpbnRvIGt3aSA8eGxpZmY6ZyBpZD0iVVJMIj4lMSRzPC94bGlmZjpnPiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InRpdGxlX3VzYl9hY2Nlc3NvcnkiIG1zZ2lkPSI0OTY2MjY1MjYzNDY1MTgxMzcyIj4iYW1hLWFjY2Vzc29yeSBlLVVTQiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxhYmVsX3ZpZXciIG1zZ2lkPSI2MzA0NTY1NTUzMjE4MTkyOTkwIj4iQnVrYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFsd2F5c191c2VfZGV2aWNlIiBtc2dpZD0iMTQ1MDI4NzQzNzAxNzMxNTkwNiI+IlNlYmVuemlzYSBuZ29rdXplbnpha2FsZWxheW8geWFsZSBkaXZheWlzaSB5ZS1VU0IiPC9zdHJpbmc+CkBAIC02MSw4ICs2MSw2IEBACiAgICAgPHN0cmluZyBuYW1lPSJ1c2JfZGVidWdnaW5nX2Fsd2F5cyIgbXNnaWQ9IjMwMzMzNTQ5NjcwNTg2MzA3MCI+IkhsYWxhIHV2dW1lbGEgbmphbG8ga3VzdWthIGt1bGUga2hvbXB5dXRoYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImNvbXBhdF9tb2RlX29uIiBtc2dpZD0iNjYyMzgzOTI0NDg0MDYzODIxMyI+IlNvbmRlemEgdWt1Z2N3YWxpc2EgaXNpa3JpbmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9vZmYiIG1zZ2lkPSI0NDM0NDY3NTcyNDYxMzI3ODk4Ij4iTndlYmEgdWt1Z2N3YWxpc2EgaXNpa3JpbmkiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2hlYWRlciIgbXNnaWQ9Ijc5Njk0OTM5ODkzOTc1Mjk5MTAiPiJVa3VoYW1iZWxhbmEgS29rdXNvbmRlemEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJjb21wYXRfbW9kZV9oZWxwX2JvZHkiIG1zZ2lkPSI0OTQ2NzI2Nzc2MzU5MjcwMDQwIj4iVW1hIHVobGVsbyBsb2t1c2ViZW56YSBsd2VuemVsd2UgaXNpa3JpbmkgZXppbmNhbmUsIGlzaWxhd3VsaSBzb2t1c29uZGV6YSBzaXpvdmVsYSBuZ2FrdXlpd2FzaGkuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGlja2VyIiBtc2dpZD0iNzQwMzY1Mjg5NDA1NjY5MzUxNSI+Iklsb25kb2xveiB1bWZhbmVraXNvIHdlc2tyaW5pLi4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic2NyZWVuc2hvdF9zYXZpbmdfdGl0bGUiIG1zZ2lkPSI4MjQyMjgyMTQ0NTM1NTU1Njk3Ij4iSWxvbmRvbG96IHVtZmFuZWtpc28gd2Vza3JpbmkuLi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzY3JlZW5zaG90X3NhdmluZ190ZXh0IiBtc2dpZD0iMjQxOTcxODQ0MzQxMTczODgxOCI+IlVtZmFuZWtpc28gd2Vza3JpbmkgdXlhbG9uZG9sb3p3YS4iPC9zdHJpbmc+CkBAIC03MywxMSArNzEsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InVzYl9wcmVmZXJlbmNlX3RpdGxlIiBtc2dpZD0iNjU1MTA1MDM3NzM4ODg4Mjc4NyI+Ik9rdWtoZXRod2Ega29rdWRsdWxpc3dhIGt3ZWZheWVsYSB5ZS1VU0IiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1c2VfbXRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjQzMzM1MDQ0MTM1NjMwMjM2MjYiPiJMZW5naXNhIG5qZW5nZXNpZGxhbGkgc2VtZWRpeWEgKE1UUCkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ1c2VfcHRwX2J1dHRvbl90aXRsZSIgbXNnaWQ9Ijc1MTcxMjc1NDAzMDE2MjU3NTEiPiJMZW5naXNhIGlraGFtZXJhIChQVFApIjwvc3RyaW5nPgotICAgIDxzdHJpbmcgbmFtZT0iaW5zdGFsbGVyX2NkX2J1dHRvbl90aXRsZSIgbXNnaWQ9IjIzMTI2Njc1Nzg1NjIyMDE1ODMiPiJGYWthIGluc2l6YSB5b2t1ZGx1bGlzd2EgS3dlZmF5ZWxhIHllLUFuZHJvaWQga3dpLU1hYyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Imluc3RhbGxlcl9jZF9idXR0b25fdGl0bGUiIG1zZ2lkPSIyMzEyNjY3NTc4NTYyMjAxNTgzIj4iRmFrYSB1aGxlbG8gbG9rdXNlYmVuemEgeW9rdWRsdWxpc3dhIEt3ZWZheWVsYSB5ZS1BbmRyb2lkIGt3aS1NYWMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2JhY2siIG1zZ2lkPSI1NjcwMTE1Mzg5OTQ0MjkxMjAiPiJFbXV2YSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaG9tZSIgbXNnaWQ9IjgyMTcyMTYwNzQ4OTUzNzc2NDEiPiJFa2hheWEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X21lbnUiIG1zZ2lkPSIzMTY4MzkzMDMzMjQ2OTU5NDkiPiJJbWVueXUiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JlY2VudCIgbXNnaWQ9Ijg1NzEzNTA1OTg5ODc5NTI4ODMiPiJJemluaGxlbG8gem9rdXNlYmVuemEgemFrYW11dmEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3NlYXJjaF9saWdodCIgbXNnaWQ9IjExMDM4Njc1OTYzMzAyNzE4NDgiPiJTZXNoYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY2FtZXJhX2J1dHRvbiIgbXNnaWQ9IjgwNjQ2NzE1ODI4MjAzNTgxNTIiPiJJa2hhbWVsYSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfaW1lX3N3aXRjaF9idXR0b24iIG1zZ2lkPSI1MDMyOTI2MTM0NzQwNDU2NDI0Ij4iVnVsYSBpbmRsZWxhIHlva3VuZ2VuYSB5ZW5raW5vYmhvIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9jb21wYXRpYmlsaXR5X3pvb21fYnV0dG9uIiBtc2dpZD0iODQ2MTExNTMxODc0MjM1MDY5OSI+Iklua2lub2JobyBldnVtZWxla2lsZSB5b2t1c29uZGV6YSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfY29tcGF0aWJpbGl0eV96b29tX2V4YW1wbGUiIG1zZ2lkPSI0MjIwNjg3Mjk0NTY0OTQ1NzgwIj4iU29uZGV6YSBrYW5jYW5lIGVzaWtyaW5pbmkgZXNpa2h1ZGx3YW5hIjwvc3RyaW5nPgpAQCAtMTUzLDYgKzE1Myw3IEBACiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3F1aWNrX3NldHRpbmdzX2JhdHRlcnkiIG1zZ2lkPSIxNDgwOTMxNTgzMzgxNDA4OTcyIj4iSWJoZXRocmkgPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19haXJwbGFuZSIgbXNnaWQ9IjQxOTY4NzY3MjIwOTAyMjQ3NTMiPiJJbW9kaSB5ZW5kaXphIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfYmx1ZXRvb3RoIiBtc2dpZD0iNTc0OTA1NDk3MTM0MTg4MjM0MCI+IkktQmx1ZXRvb3RoIDx4bGlmZjpnIGlkPSJTVEFURSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2Vzc2liaWxpdHlfcXVpY2tfc2V0dGluZ3NfbG9jYXRpb24iIG1zZ2lkPSI0NTc3MjgyMzI5ODY2ODEzMTAwIj4iSW5kYXdvIGktPHhsaWZmOmcgaWQ9IlNUQVRFIj4lczwveGxpZmY6Zz4uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9xdWlja19zZXR0aW5nc19hbGFybSIgbXNnaWQ9IjM5NTk5MDg5NzI4OTcyOTU2NjAiPiJJLWFsYW11IGlzZXRoaXdlIG5nby08eGxpZmY6ZyBpZD0iVElNRSI+JXM8L3hsaWZmOmc+LiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdXNhZ2VfZGlzYWJsZWRfZGlhbG9nXzNnX3RpdGxlIiBtc2dpZD0iNTI1NzgzMzg4MTY5ODY0NDY4NyI+ImlkYXRoYSB5ZS0yRy0zRyBpdmltYmVsd2UiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkYXRhX3VzYWdlX2Rpc2FibGVkX2RpYWxvZ180Z190aXRsZSIgbXNnaWQ9IjQ3ODkxNDMzNjM0OTI2ODI2MjkiPiJJZGF0aGEgeWUtNEcgaXZpbWJlbHdlIjwvc3RyaW5nPgpAQCAtMTY0LDEyICsxNjUsMTMgQEAKICAgICA8c3RyaW5nIG5hbWU9InN0YXR1c19iYXJfc2V0dGluZ3Nfc2lnbmFsX21ldGVyX3dpZmlfbm9zc2lkIiBtc2dpZD0iNjU1NzQ4NjQ1Mjc3NDU5NzgyMCI+IkktV2ktRmkgaXhodW55aXdlIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZ3BzX25vdGlmaWNhdGlvbl9zZWFyY2hpbmdfdGV4dCIgbXNnaWQ9Ijg1NzQyNDcwMDU2NDI3MzYwNjAiPiJJc2VzaGEgaS1HUFMiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJncHNfbm90aWZpY2F0aW9uX2ZvdW5kX3RleHQiIG1zZ2lkPSI0NjE5Mjc0MjQ0MTQ2NDQ2NDY0Ij4iSW5kYXdvIGlobGVsd2UgaS1HUFMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2xvY2F0aW9uX2FjdGl2ZSIgbXNnaWQ9IjI0MjcyOTAxNDYxMzgxNjkwMTQiPiJJemljZWxvIHplbmRhd28geml5YXNlYmVuemEiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X2NsZWFyX2FsbCIgbXNnaWQ9IjUyMzU5Mzg1NTkyNDcxNjQ5MjUiPiJTdXNhIHpvbmtlIGl6YXppc28uIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0ic3RhdHVzX2Jhcl9ub3RpZmljYXRpb25faW5zcGVjdF9pdGVtX3RpdGxlIiBtc2dpZD0iMTE2MzU0NzcyOTAxNTM5MDI1MCI+IlVsd2F6aSBsb2hsZWxvIGxva3VzZWJlbnphIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29mZiIgbXNnaWQ9IjQwNjI3ODAyMjg5MzE1OTAwNjkiPiJJc2lrcmluaSBzaXpvcGhlbmR1a2Egbmdva3V6ZW56YWthbGVsYS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2Nlc3NpYmlsaXR5X3JvdGF0aW9uX2xvY2tfb25fbGFuZHNjYXBlIiBtc2dpZD0iNjczMTE5NzMzNzY2NTM2NjI3MyI+IklzaWtyaW5pIHNpa2hpeWVsd2UgbmdvbXVtbyB3ZS1sYW5kc2NhcGUuIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iYWNjZXNzaWJpbGl0eV9yb3RhdGlvbl9sb2NrX29uX3BvcnRyYWl0IiBtc2dpZD0iNTgwOTM2NzUyMTY0NDAxMjExNSI+IklzaWtyaW5pIHNpa2hpeWVsd2UgbmdvbXVtbyB3ZS1wb3J0cmFpdC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJqZWxseV9iZWFuX2RyZWFtX25hbWUiIG1zZ2lkPSI1OTkyMDI2NTQzNjM2ODE2NzkyIj4iSS1CZWFuRmxpbmdlciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRlc3NlcnRfY2FzZSIgbXNnaWQ9IjEyOTUxNjE3NzYyMjM5NTkyMjEiPiJJc2lraHdhbWEgc29zd2lkaSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InN0YXJ0X2RyZWFtcyIgbXNnaWQ9IjcyMTk1NzU4NTgzNDg3MTk3OTAiPiJVa3VwaHVwaGEgZW1pbmkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJldGhlcm5ldF9sYWJlbCIgbXNnaWQ9Ijc5Njc1NjM2NzYzMjQwODc0NjQiPiJJLUV0aGVybmV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYWlycGxhbmVfbW9kZV9sYWJlbCIgbXNnaWQ9IjU1MTA1MjA2MzM0NDg4MzEzNTAiPiJJc2ltbyBzZW5kaXphIjwvc3RyaW5nPgpAQCAtMTk4LDggKzIwMCw4IEBACiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc193aWZpX2Rpc3BsYXlfbm9fY29ubmVjdGlvbl9sYWJlbCIgbXNnaWQ9IjIzNTUyOTg3NDA3NjU3MzY5MTgiPiJVa3Vib25pc2Egb2t1bmdlbmF6aW50YW1ibyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2JyaWdodG5lc3NfZGlhbG9nX3RpdGxlIiBtc2dpZD0iODU5OTY3NDA1NzY3MzYwNTM2OCI+IlVrdWdxYW1hIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfYXV0b19icmlnaHRuZXNzX2xhYmVsIiBtc2dpZD0iNTA2NDk4Mjc0Mzc4NDA3MTIxOCI+Ik9LVVpFTlpBS0FMRUxBWU8iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGl0bGUiIG1zZ2lkPSIxMTk5MjM3NzQ0MDg2NDY5MjE3Ij4iSXphemlzbyB6aXZlbGEgbGFwaGEiPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJzdGF0dXNfYmFyX2hlbHBfdGV4dCIgbXNnaWQ9Ijc4NzQ2MDcxNTUwNTIwNzYzMjMiPiJLdWZpbnllbGVsZSBub21hIGt1bmluaSBuZ29rdXN3YXlpcGhlbGEgcGhhbnNpLlxuU3dheWlwaGVsYSBwaGFuc2kgZnV0aGkgbmdlemlsYXd1bGkgemVzaXN0aW11LiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlIiBtc2dpZD0iOTA1MDg2OTU0ODk1MTA0NDM3MSI+IlN3YXlpcGhhIHVucWVucWVtYSB3ZXNpa3JpbmkgdWt1emUgdXZlemUgaWJoYSI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImhpZGV5YmFyX2NvbmZpcm1hdGlvbl9tZXNzYWdlX2xvbmciIG1zZ2lkPSI3MTE3NjkyNzk1MTYzNjIwNjI2Ij4iU3dheWlwaGEga3VzdWtlbGEga3VucWVucWVtYSB1a3V6ZSB1dmV6ZSBpYmhhIHllc2lzdGltdSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCIgbXNnaWQ9IjE2NjYzNTg3ODQyODMwMjA3NjIiPiJJbW9kaSB5b2t1Z3VxdWx3YSBrb21iYWxhIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiIG1zZ2lkPSIzMzE5NTA3NTUxNjg5MTA4NjkyIj4iSW1vZGkgZXRodXRodWtpc2l3ZSB5b2t1Z3FhbWEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCIgbXNnaWQ9Ijg1MzQ0MzY4OTc0NTU4NDc3MCI+Ikltb2RpIHlva3VsdW5naXNhIHVtYmFsYSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNzbF9jYV9jZXJ0X3dhcm5pbmciIG1zZ2lkPSI5MDA1OTU0MTA2OTAyMDUzNjQxIj4iS3VuZ2VuemVrYSBpbmV0aGl3ZWtoaVxuaXFhc2hpd2UiPC9zdHJpbmc+CiA8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9TeXN0ZW1VSS9yZXMvdmFsdWVzL3N0cmluZ3MueG1sCmluZGV4IGU2ZmNkZmYuLjU1NmExNDYgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1N5c3RlbVVJL3Jlcy92YWx1ZXMvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvcmVzL3ZhbHVlcy9zdHJpbmdzLnhtbApAQCAtNDk4LDYgKzQ5OCwxMiBAQAogICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfYnJpZ2h0bmVzc19kaWFsb2dfdGl0bGUiPkJyaWdodG5lc3M8L3N0cmluZz4KICAgICA8IS0tIFF1aWNrU2V0dGluZ3M6IEJyaWdodG5lc3MgZGlhbG9nIGF1dG8gYnJpZ2h0bmVzcyBidXR0b24gW0NIQVIgTElNSVQ9Tk9ORV0gLS0+CiAgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19icmlnaHRuZXNzX2RpYWxvZ19hdXRvX2JyaWdodG5lc3NfbGFiZWwiPkFVVE88L3N0cmluZz4KKyAgICA8IS0tIFF1aWNrU2V0dGluZ3M6IExhYmVsIGZvciB0aGUgdG9nZ2xlIHRoYXQgY29udHJvbHMgd2hldGhlciBkaXNwbGF5IGludmVyc2lvbiBpcyBlbmFibGVkLiBbQ0hBUiBMSU1JVD1OT05FXSAtLT4KKyAgICA8c3RyaW5nIG5hbWU9InF1aWNrX3NldHRpbmdzX2ludmVyc2lvbl9sYWJlbCI+Q29sb3IgaW52ZXJzaW9uIG1vZGU8L3N0cmluZz4KKyAgICA8IS0tIFF1aWNrU2V0dGluZ3M6IExhYmVsIGZvciB0aGUgdG9nZ2xlIHRoYXQgY29udHJvbHMgd2hldGhlciBkaXNwbGF5IGNvbnRyYXN0IGVuaGFuY2VtZW50IGlzIGVuYWJsZWQuIFtDSEFSIExJTUlUPU5PTkVdIC0tPgorICAgIDxzdHJpbmcgbmFtZT0icXVpY2tfc2V0dGluZ3NfY29udHJhc3RfbGFiZWwiPkVuaGFuY2VkIGNvbnRyYXN0IG1vZGU8L3N0cmluZz4KKyAgICA8IS0tIFF1aWNrU2V0dGluZ3M6IExhYmVsIGZvciB0aGUgdG9nZ2xlIHRoYXQgY29udHJvbHMgd2hldGhlciBkaXNwbGF5IGNvbG9yIGNvcnJlY3Rpb24gaXMgZW5hYmxlZC4gW0NIQVIgTElNSVQ9Tk9ORV0gLS0+CisgICAgPHN0cmluZyBuYW1lPSJxdWlja19zZXR0aW5nc19jb2xvcl9zcGFjZV9sYWJlbCI+Q29sb3IgY29ycmVjdGlvbiBtb2RlPC9zdHJpbmc+CiAKIAogICAgIDwhLS0gR2x5cGggdG8gYmUgb3ZlcmxhaWQgYXRvcCB0aGUgYmF0dGVyeSB3aGVuIHRoZSBsZXZlbCBpcyBleHRyZW1lbHkgbG93LiBEbyBub3QgdHJhbnNsYXRlLiAtLT4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3NyYy9jb20vYW5kcm9pZC9zeXN0ZW11aS9JbWFnZVdhbGxwYXBlci5qYXZhIGIvcGFja2FnZXMvU3lzdGVtVUkvc3JjL2NvbS9hbmRyb2lkL3N5c3RlbXVpL0ltYWdlV2FsbHBhcGVyLmphdmEKaW5kZXggNGIwYzJjYi4uYzdmNDgyOCAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvc3JjL2NvbS9hbmRyb2lkL3N5c3RlbXVpL0ltYWdlV2FsbHBhcGVyLmphdmEKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvc3JjL2NvbS9hbmRyb2lkL3N5c3RlbXVpL0ltYWdlV2FsbHBhcGVyLmphdmEKQEAgLTQ3MSw3ICs0NzEsNyBAQAogCiAgICAgICAgICAgICBjaGVja0dsRXJyb3IoKTsKIAotICAgICAgICAgICAgaWYgKHcgPCAwIHx8IGggPCAwKSB7CisgICAgICAgICAgICBpZiAodyA+IDAgfHwgaCA+IDApIHsKICAgICAgICAgICAgICAgICBnbENsZWFyQ29sb3IoMC4wZiwgMC4wZiwgMC4wZiwgMC4wZik7CiAgICAgICAgICAgICAgICAgZ2xDbGVhcihHTF9DT0xPUl9CVUZGRVJfQklUKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1N5c3RlbVVJL3NyYy9jb20vYW5kcm9pZC9zeXN0ZW11aS9zdGF0dXNiYXIvcGhvbmUvUXVpY2tTZXR0aW5ncy5qYXZhIGIvcGFja2FnZXMvU3lzdGVtVUkvc3JjL2NvbS9hbmRyb2lkL3N5c3RlbXVpL3N0YXR1c2Jhci9waG9uZS9RdWlja1NldHRpbmdzLmphdmEKaW5kZXggMmVlZjJiMy4uOWE1ZjQzZiAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvc3JjL2NvbS9hbmRyb2lkL3N5c3RlbXVpL3N0YXR1c2Jhci9waG9uZS9RdWlja1NldHRpbmdzLmphdmEKKysrIGIvcGFja2FnZXMvU3lzdGVtVUkvc3JjL2NvbS9hbmRyb2lkL3N5c3RlbXVpL3N0YXR1c2Jhci9waG9uZS9RdWlja1NldHRpbmdzLmphdmEKQEAgLTI1LDYgKzI1LDcgQEAKIGltcG9ydCBhbmRyb2lkLmJsdWV0b290aC5CbHVldG9vdGhBZGFwdGVyOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5Ccm9hZGNhc3RSZWNlaXZlcjsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29tcG9uZW50TmFtZTsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGVudFJlc29sdmVyOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5EaWFsb2dJbnRlcmZhY2U7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkRpYWxvZ0ludGVyZmFjZS5PbkNsaWNrTGlzdGVuZXI7CkBAIC04NCw2ICs4NSw3IEBACiAgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUdfR09ORV9USUxFUyA9IGZhbHNlOwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUQUcgPSAiUXVpY2tTZXR0aW5ncyI7CiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIFNIT1dfSU1FX1RJTEUgPSBmYWxzZTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gU0hPV19BQ0NFU1NJQklMSVRZX1RJTEVTID0gdHJ1ZTsKIAogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBMT05HX1BSRVNTX1RPR0dMRVMgPSB0cnVlOwogCkBAIC0zNzksNiArMzgxLDM1IEBACiAgICAgICAgICAgICAgICAgbmV3IFF1aWNrU2V0dGluZ3NNb2RlbC5CYXNpY1JlZnJlc2hDYWxsYmFjayhzZXR0aW5nc1RpbGUpKTsKICAgICAgICAgcGFyZW50LmFkZFZpZXcoc2V0dGluZ3NUaWxlKTsKICAgICAgICAgbUR5bmFtaWNTcGFubmVkVGlsZXMuYWRkKHNldHRpbmdzVGlsZSk7CisKKyAgICAgICAgaWYgKFNIT1dfQUNDRVNTSUJJTElUWV9USUxFUykgeworICAgICAgICAgICAgLy8gQ29sb3IgaW52ZXJzaW9uIHRpbGUKKyAgICAgICAgICAgIGZpbmFsIFN5c3RlbVNldHRpbmdUaWxlIGludmVyc2lvblRpbGUgPSBuZXcgU3lzdGVtU2V0dGluZ1RpbGUobUNvbnRleHQpOworICAgICAgICAgICAgaW52ZXJzaW9uVGlsZS5zZXRVcmkoU2V0dGluZ3MuU2VjdXJlLkFDQ0VTU0lCSUxJVFlfRElTUExBWV9JTlZFUlNJT05fRU5BQkxFRCwKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtU2V0dGluZ1RpbGUuVFlQRV9TRUNVUkUpOworICAgICAgICAgICAgaW52ZXJzaW9uVGlsZS5zZXRGcmFnbWVudCgiU2V0dGluZ3MkQWNjZXNzaWJpbGl0eUludmVyc2lvblNldHRpbmdzQWN0aXZpdHkiKTsKKyAgICAgICAgICAgIG1Nb2RlbC5hZGRJbnZlcnNpb25UaWxlKGludmVyc2lvblRpbGUsIGludmVyc2lvblRpbGUuZ2V0UmVmcmVzaENhbGxiYWNrKCkpOworICAgICAgICAgICAgcGFyZW50LmFkZFZpZXcoaW52ZXJzaW9uVGlsZSk7CisgICAgICAgICAgICBtRHluYW1pY1NwYW5uZWRUaWxlcy5hZGQoaW52ZXJzaW9uVGlsZSk7CisKKyAgICAgICAgICAgIC8vIENvbnRyYXN0IGVuaGFuY2VtZW50IHRpbGUKKyAgICAgICAgICAgIGZpbmFsIFN5c3RlbVNldHRpbmdUaWxlIGNvbnRyYXN0VGlsZSA9IG5ldyBTeXN0ZW1TZXR0aW5nVGlsZShtQ29udGV4dCk7CisgICAgICAgICAgICBjb250cmFzdFRpbGUuc2V0VXJpKFNldHRpbmdzLlNlY3VyZS5BQ0NFU1NJQklMSVRZX0RJU1BMQVlfQ09OVFJBU1RfRU5BQkxFRCwKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtU2V0dGluZ1RpbGUuVFlQRV9TRUNVUkUpOworICAgICAgICAgICAgY29udHJhc3RUaWxlLnNldEZyYWdtZW50KCJTZXR0aW5ncyRBY2Nlc3NpYmlsaXR5Q29udHJhc3RTZXR0aW5nc0FjdGl2aXR5Iik7CisgICAgICAgICAgICBtTW9kZWwuYWRkQ29udHJhc3RUaWxlKGNvbnRyYXN0VGlsZSwgY29udHJhc3RUaWxlLmdldFJlZnJlc2hDYWxsYmFjaygpKTsKKyAgICAgICAgICAgIHBhcmVudC5hZGRWaWV3KGNvbnRyYXN0VGlsZSk7CisgICAgICAgICAgICBtRHluYW1pY1NwYW5uZWRUaWxlcy5hZGQoY29udHJhc3RUaWxlKTsKKworICAgICAgICAgICAgLy8gQ29sb3Igc3BhY2UgYWRqdXN0bWVudCB0aWxlCisgICAgICAgICAgICBmaW5hbCBTeXN0ZW1TZXR0aW5nVGlsZSBjb2xvclNwYWNlVGlsZSA9IG5ldyBTeXN0ZW1TZXR0aW5nVGlsZShtQ29udGV4dCk7CisgICAgICAgICAgICBjb2xvclNwYWNlVGlsZS5zZXRVcmkoU2V0dGluZ3MuU2VjdXJlLkFDQ0VTU0lCSUxJVFlfRElTUExBWV9EQUxUT05JWkVSX0VOQUJMRUQsCisgICAgICAgICAgICAgICAgICAgIFN5c3RlbVNldHRpbmdUaWxlLlRZUEVfU0VDVVJFKTsKKyAgICAgICAgICAgIGNvbG9yU3BhY2VUaWxlLnNldEZyYWdtZW50KCJTZXR0aW5ncyRBY2Nlc3NpYmlsaXR5RGFsdG9uaXplclNldHRpbmdzQWN0aXZpdHkiKTsKKyAgICAgICAgICAgIG1Nb2RlbC5hZGRDb2xvclNwYWNlVGlsZShjb2xvclNwYWNlVGlsZSwgY29sb3JTcGFjZVRpbGUuZ2V0UmVmcmVzaENhbGxiYWNrKCkpOworICAgICAgICAgICAgcGFyZW50LmFkZFZpZXcoY29sb3JTcGFjZVRpbGUpOworICAgICAgICAgICAgbUR5bmFtaWNTcGFubmVkVGlsZXMuYWRkKGNvbG9yU3BhY2VUaWxlKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHByaXZhdGUgdm9pZCBhZGRTeXN0ZW1UaWxlcyhWaWV3R3JvdXAgcGFyZW50LCBMYXlvdXRJbmZsYXRlciBpbmZsYXRlcikgewpAQCAtOTI0LDQgKzk1NSwxMDggQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KKworICAgIC8qKgorICAgICAqIFF1aWNrIFNldHRpbmcgdGlsZSB0aGF0IHJlcHJlc2VudHMgYSBzZWN1cmUgc2V0dGluZy4gVGhpcyB0eXBlIG9mIHRpbGUKKyAgICAgKiBjYW4gdG9nZ2xlIGEgVVJJIHdpdGhpbiBTZXR0aW5ncy5TZWN1cmUgb24gY2xpY2sgYW5kIGxhdW5jaCBhIFNldHRpbmdzCisgICAgICogZnJhZ21lbnQgb24gbG9uZy1jbGljay4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2xhc3MgU3lzdGVtU2V0dGluZ1RpbGUgZXh0ZW5kcyBRdWlja1NldHRpbmdzQmFzaWNUaWxlIHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRZUEVfR0xPQkFMID0gMDsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRZUEVfU0VDVVJFID0gMTsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRZUEVfU1lTVEVNID0gMjsKKworICAgICAgICBwcml2YXRlIGZpbmFsIFF1aWNrU2V0dGluZ3NNb2RlbC5CYXNpY1JlZnJlc2hDYWxsYmFjayBtUmVmcmVzaENhbGxiYWNrOworCisgICAgICAgIHByaXZhdGUgU3RyaW5nIG1GcmFnbWVudDsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbU5hbWU7CisgICAgICAgIHByaXZhdGUgaW50IG1UeXBlOworCisgICAgICAgIHB1YmxpYyBTeXN0ZW1TZXR0aW5nVGlsZShDb250ZXh0IGNvbnRleHQpIHsKKyAgICAgICAgICAgIHN1cGVyKGNvbnRleHQpOworCisgICAgICAgICAgICBtUmVmcmVzaENhbGxiYWNrID0gbmV3IFF1aWNrU2V0dGluZ3NNb2RlbC5CYXNpY1JlZnJlc2hDYWxsYmFjayh0aGlzKTsKKyAgICAgICAgICAgIG1SZWZyZXNoQ2FsbGJhY2suc2V0U2hvd1doZW5FbmFibGVkKHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBib29sZWFuIHBlcmZvcm1Mb25nQ2xpY2soKSB7CisgICAgICAgICAgICBpZiAobUZyYWdtZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjb2xsYXBzZVBhbmVscygpOworCisgICAgICAgICAgICAgICAgZmluYWwgSW50ZW50IGludGVudCA9IG5ldyBJbnRlbnQoKTsKKyAgICAgICAgICAgICAgICBpbnRlbnQuc2V0Q29tcG9uZW50KG5ldyBDb21wb25lbnROYW1lKAorICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5hbmRyb2lkLnNldHRpbmdzIiwgImNvbS5hbmRyb2lkLnNldHRpbmdzLiIgKyBtRnJhZ21lbnQpKTsKKyAgICAgICAgICAgICAgICBzdGFydFNldHRpbmdzQWN0aXZpdHkoaW50ZW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBwZXJmb3JtQ2xpY2soKSB7CisgICAgICAgICAgICBpZiAobU5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGNvbGxhcHNlUGFuZWxzKCk7CisKKyAgICAgICAgICAgICAgICBmaW5hbCBDb250ZW50UmVzb2x2ZXIgY3IgPSBtQ29udGV4dC5nZXRDb250ZW50UmVzb2x2ZXIoKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKG1UeXBlKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVFlQRV9HTE9CQUw6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gZW5hYmxlID0gU2V0dGluZ3MuR2xvYmFsLmdldEludChjciwgbU5hbWUsIDApID09IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBTZXR0aW5ncy5HbG9iYWwucHV0SW50KGNyLCBtTmFtZSwgZW5hYmxlID8gMSA6IDApOworICAgICAgICAgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIFRZUEVfU0VDVVJFOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBib29sZWFuIGVuYWJsZSA9IFNldHRpbmdzLlNlY3VyZS5nZXRJbnRGb3JVc2VyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciwgbU5hbWUsIDAsIFVzZXJIYW5kbGUuVVNFUl9DVVJSRU5UKSA9PSAwOworICAgICAgICAgICAgICAgICAgICAgICAgU2V0dGluZ3MuU2VjdXJlLnB1dEludEZvclVzZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyLCBtTmFtZSwgZW5hYmxlID8gMSA6IDAsIFVzZXJIYW5kbGUuVVNFUl9DVVJSRU5UKTsKKyAgICAgICAgICAgICAgICAgICAgfSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBUWVBFX1NZU1RFTTogeworICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBlbmFibGUgPSBTZXR0aW5ncy5TeXN0ZW0uZ2V0SW50Rm9yVXNlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IsIG1OYW1lLCAwLCBVc2VySGFuZGxlLlVTRVJfQ1VSUkVOVCkgPT0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIFNldHRpbmdzLlN5c3RlbS5wdXRJbnRGb3JVc2VyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjciwgbU5hbWUsIGVuYWJsZSA/IDEgOiAwLCBVc2VySGFuZGxlLlVTRVJfQ1VSUkVOVCk7CisgICAgICAgICAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNwZWNpZmllcyB0aGUgZnJhZ21lbnQgd2l0aGluIHRoZSBjb20uYW5kcm9pZC5zZXR0aW5ncyBwYWNrYWdlIHRvCisgICAgICAgICAqIGxhdW5jaCB3aGVuIHRoaXMgdGlsZSBpcyBsb25nLWNsaWNrZWQuCisgICAgICAgICAqCisgICAgICAgICAqIEBwYXJhbSBmcmFnbWVudCBhIGZyYWdtZW50IG5hbWUgd2l0aGluIHRoZSBjb20uYW5kcm9pZC5zZXR0aW5ncworICAgICAgICAgKiAgICAgICAgICAgIHBhY2thZ2UKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldEZyYWdtZW50KFN0cmluZyBmcmFnbWVudCkgeworICAgICAgICAgICAgbUZyYWdtZW50ID0gZnJhZ21lbnQ7CisgICAgICAgICAgICBzZXRMb25nQ2xpY2thYmxlKGZyYWdtZW50ICE9IG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNwZWNpZmllcyB0aGUgc2V0dGluZyBuYW1lIGFuZCB0eXBlIHRvIHRvZ2dsZSB3aGVuIHRoaXMgdGlsZSBpcworICAgICAgICAgKiBjbGlja2VkLgorICAgICAgICAgKgorICAgICAgICAgKiBAcGFyYW0gbmFtZSBhIHNldHRpbmcgbmFtZQorICAgICAgICAgKiBAcGFyYW0gdHlwZSB0aGUgdHlwZSBvZiBzZXR0aW5nLCBvbmUgb2Y6CisgICAgICAgICAqICAgICAgICAgICAgPHVsPgorICAgICAgICAgKiAgICAgICAgICAgIDxsaT57QGxpbmsgI1RZUEVfR0xPQkFMfQorICAgICAgICAgKiAgICAgICAgICAgIDxsaT57QGxpbmsgI1RZUEVfU0VDVVJFfQorICAgICAgICAgKiAgICAgICAgICAgIDxsaT57QGxpbmsgI1RZUEVfU1lTVEVNfQorICAgICAgICAgKiAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzZXRVcmkoU3RyaW5nIG5hbWUsIGludCB0eXBlKSB7CisgICAgICAgICAgICBtTmFtZSA9IG5hbWU7CisgICAgICAgICAgICBtVHlwZSA9IHR5cGU7CisgICAgICAgICAgICBzZXRDbGlja2FibGUobU5hbWUgIT0gbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQHJldHVybiB0aGUgcmVmcmVzaCBjYWxsYmFjayBmb3IgdGhpcyB0aWxlCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgUXVpY2tTZXR0aW5nc01vZGVsLkJhc2ljUmVmcmVzaENhbGxiYWNrIGdldFJlZnJlc2hDYWxsYmFjaygpIHsKKyAgICAgICAgICAgIHJldHVybiBtUmVmcmVzaENhbGxiYWNrOworICAgICAgICB9CisgICAgfQogfQpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvU3lzdGVtVUkvc3JjL2NvbS9hbmRyb2lkL3N5c3RlbXVpL3N0YXR1c2Jhci9waG9uZS9RdWlja1NldHRpbmdzTW9kZWwuamF2YSBiL3BhY2thZ2VzL1N5c3RlbVVJL3NyYy9jb20vYW5kcm9pZC9zeXN0ZW11aS9zdGF0dXNiYXIvcGhvbmUvUXVpY2tTZXR0aW5nc01vZGVsLmphdmEKaW5kZXggMTVkNjU1Yy4uZmE5N2ExMSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvU3lzdGVtVUkvc3JjL2NvbS9hbmRyb2lkL3N5c3RlbXVpL3N0YXR1c2Jhci9waG9uZS9RdWlja1NldHRpbmdzTW9kZWwuamF2YQorKysgYi9wYWNrYWdlcy9TeXN0ZW1VSS9zcmMvY29tL2FuZHJvaWQvc3lzdGVtdWkvc3RhdHVzYmFyL3Bob25lL1F1aWNrU2V0dGluZ3NNb2RlbC5qYXZhCkBAIC0yOSw2ICsyOSw3IEBACiBpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS5EcmF3YWJsZTsKIGltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmRpc3BsYXkuV2lmaURpc3BsYXlTdGF0dXM7CiBpbXBvcnQgYW5kcm9pZC5uZXQuQ29ubmVjdGl2aXR5TWFuYWdlcjsKK2ltcG9ydCBhbmRyb2lkLm5ldC5Vcmk7CiBpbXBvcnQgYW5kcm9pZC5vcy5IYW5kbGVyOwogaW1wb3J0IGFuZHJvaWQub3MuVXNlckhhbmRsZTsKIGltcG9ydCBhbmRyb2lkLnByb3ZpZGVyLlNldHRpbmdzOwpAQCAtOTEsNiArOTIsMTkgQEAKICAgICBzdGF0aWMgY2xhc3MgQnJpZ2h0bmVzc1N0YXRlIGV4dGVuZHMgU3RhdGUgewogICAgICAgICBib29sZWFuIGF1dG9CcmlnaHRuZXNzOwogICAgIH0KKyAgICBzdGF0aWMgY2xhc3MgSW52ZXJzaW9uU3RhdGUgZXh0ZW5kcyBTdGF0ZSB7CisgICAgICAgIGJvb2xlYW4gdG9nZ2xlZDsKKyAgICAgICAgaW50IHR5cGU7CisgICAgfQorICAgIHN0YXRpYyBjbGFzcyBDb250cmFzdFN0YXRlIGV4dGVuZHMgU3RhdGUgeworICAgICAgICBib29sZWFuIHRvZ2dsZWQ7CisgICAgICAgIGZsb2F0IGNvbnRyYXN0OworICAgICAgICBmbG9hdCBicmlnaHRuZXNzOworICAgIH0KKyAgICBzdGF0aWMgY2xhc3MgQ29sb3JTcGFjZVN0YXRlIGV4dGVuZHMgU3RhdGUgeworICAgICAgICBib29sZWFuIHRvZ2dsZWQ7CisgICAgICAgIGludCB0eXBlOworICAgIH0KICAgICBwdWJsaWMgc3RhdGljIGNsYXNzIEJsdWV0b290aFN0YXRlIGV4dGVuZHMgU3RhdGUgewogICAgICAgICBib29sZWFuIGNvbm5lY3RlZCA9IGZhbHNlOwogICAgICAgICBTdHJpbmcgc3RhdGVDb250ZW50RGVzY3JpcHRpb247CkBAIC0xOTksMTIgKzIxMyw5NiBAQAogICAgICAgICB9CiAgICAgfQogCisgICAgLyoqIENvbnRlbnRPYnNlcnZlciB0byB3YXRjaCBkaXNwbGF5IGludmVyc2lvbiAqLworICAgIHByaXZhdGUgY2xhc3MgRGlzcGxheUludmVyc2lvbk9ic2VydmVyIGV4dGVuZHMgQ29udGVudE9ic2VydmVyIHsKKyAgICAgICAgcHVibGljIERpc3BsYXlJbnZlcnNpb25PYnNlcnZlcihIYW5kbGVyIGhhbmRsZXIpIHsKKyAgICAgICAgICAgIHN1cGVyKGhhbmRsZXIpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyB2b2lkIG9uQ2hhbmdlKGJvb2xlYW4gc2VsZkNoYW5nZSkgeworICAgICAgICAgICAgb25JbnZlcnNpb25DaGFuZ2VkKCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzdGFydE9ic2VydmluZygpIHsKKyAgICAgICAgICAgIGZpbmFsIENvbnRlbnRSZXNvbHZlciBjciA9IG1Db250ZXh0LmdldENvbnRlbnRSZXNvbHZlcigpOworICAgICAgICAgICAgY3IudW5yZWdpc3RlckNvbnRlbnRPYnNlcnZlcih0aGlzKTsKKyAgICAgICAgICAgIGNyLnJlZ2lzdGVyQ29udGVudE9ic2VydmVyKFNldHRpbmdzLlNlY3VyZS5nZXRVcmlGb3IoCisgICAgICAgICAgICAgICAgICAgIFNldHRpbmdzLlNlY3VyZS5BQ0NFU1NJQklMSVRZX0RJU1BMQVlfSU5WRVJTSU9OX0VOQUJMRUQpLAorICAgICAgICAgICAgICAgICAgICBmYWxzZSwgdGhpcywgbVVzZXJUcmFja2VyLmdldEN1cnJlbnRVc2VySWQoKSk7CisgICAgICAgICAgICBjci5yZWdpc3RlckNvbnRlbnRPYnNlcnZlcihTZXR0aW5ncy5TZWN1cmUuZ2V0VXJpRm9yKAorICAgICAgICAgICAgICAgICAgICBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0lOVkVSU0lPTl9RVUlDS19TRVRUSU5HX0VOQUJMRUQpLAorICAgICAgICAgICAgICAgICAgICBmYWxzZSwgdGhpcywgbVVzZXJUcmFja2VyLmdldEN1cnJlbnRVc2VySWQoKSk7CisgICAgICAgICAgICBjci5yZWdpc3RlckNvbnRlbnRPYnNlcnZlcihTZXR0aW5ncy5TZWN1cmUuZ2V0VXJpRm9yKAorICAgICAgICAgICAgICAgICAgICBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0lOVkVSU0lPTiksCisgICAgICAgICAgICAgICAgICAgIGZhbHNlLCB0aGlzLCBtVXNlclRyYWNrZXIuZ2V0Q3VycmVudFVzZXJJZCgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiBDb250ZW50T2JzZXJ2ZXIgdG8gd2F0Y2ggZGlzcGxheSBjb250cmFzdCAqLworICAgIHByaXZhdGUgY2xhc3MgRGlzcGxheUNvbnRyYXN0T2JzZXJ2ZXIgZXh0ZW5kcyBDb250ZW50T2JzZXJ2ZXIgeworICAgICAgICBwdWJsaWMgRGlzcGxheUNvbnRyYXN0T2JzZXJ2ZXIoSGFuZGxlciBoYW5kbGVyKSB7CisgICAgICAgICAgICBzdXBlcihoYW5kbGVyKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBvbkNoYW5nZShib29sZWFuIHNlbGZDaGFuZ2UpIHsKKyAgICAgICAgICAgIG9uQ29udHJhc3RDaGFuZ2VkKCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzdGFydE9ic2VydmluZygpIHsKKyAgICAgICAgICAgIGZpbmFsIENvbnRlbnRSZXNvbHZlciBjciA9IG1Db250ZXh0LmdldENvbnRlbnRSZXNvbHZlcigpOworICAgICAgICAgICAgY3IudW5yZWdpc3RlckNvbnRlbnRPYnNlcnZlcih0aGlzKTsKKyAgICAgICAgICAgIGNyLnJlZ2lzdGVyQ29udGVudE9ic2VydmVyKFNldHRpbmdzLlNlY3VyZS5nZXRVcmlGb3IoCisgICAgICAgICAgICAgICAgICAgIFNldHRpbmdzLlNlY3VyZS5BQ0NFU1NJQklMSVRZX0RJU1BMQVlfQ09OVFJBU1RfRU5BQkxFRCksCisgICAgICAgICAgICAgICAgICAgIGZhbHNlLCB0aGlzLCBtVXNlclRyYWNrZXIuZ2V0Q3VycmVudFVzZXJJZCgpKTsKKyAgICAgICAgICAgIGNyLnJlZ2lzdGVyQ29udGVudE9ic2VydmVyKFNldHRpbmdzLlNlY3VyZS5nZXRVcmlGb3IoCisgICAgICAgICAgICAgICAgICAgIFNldHRpbmdzLlNlY3VyZS5BQ0NFU1NJQklMSVRZX0RJU1BMQVlfQ09OVFJBU1RfUVVJQ0tfU0VUVElOR19FTkFCTEVEKSwKKyAgICAgICAgICAgICAgICAgICAgZmFsc2UsIHRoaXMsIG1Vc2VyVHJhY2tlci5nZXRDdXJyZW50VXNlcklkKCkpOworICAgICAgICAgICAgY3IucmVnaXN0ZXJDb250ZW50T2JzZXJ2ZXIoU2V0dGluZ3MuU2VjdXJlLmdldFVyaUZvcigKKyAgICAgICAgICAgICAgICAgICAgU2V0dGluZ3MuU2VjdXJlLkFDQ0VTU0lCSUxJVFlfRElTUExBWV9DT05UUkFTVCksCisgICAgICAgICAgICAgICAgICAgIGZhbHNlLCB0aGlzLCBtVXNlclRyYWNrZXIuZ2V0Q3VycmVudFVzZXJJZCgpKTsKKyAgICAgICAgICAgIGNyLnJlZ2lzdGVyQ29udGVudE9ic2VydmVyKFNldHRpbmdzLlNlY3VyZS5nZXRVcmlGb3IoCisgICAgICAgICAgICAgICAgICAgIFNldHRpbmdzLlNlY3VyZS5BQ0NFU1NJQklMSVRZX0RJU1BMQVlfQlJJR0hUTkVTUyksCisgICAgICAgICAgICAgICAgICAgIGZhbHNlLCB0aGlzLCBtVXNlclRyYWNrZXIuZ2V0Q3VycmVudFVzZXJJZCgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiBDb250ZW50T2JzZXJ2ZXIgdG8gd2F0Y2ggZGlzcGxheSBjb2xvciBzcGFjZSBhZGp1c3RtZW50ICovCisgICAgcHJpdmF0ZSBjbGFzcyBEaXNwbGF5Q29sb3JTcGFjZU9ic2VydmVyIGV4dGVuZHMgQ29udGVudE9ic2VydmVyIHsKKyAgICAgICAgcHVibGljIERpc3BsYXlDb2xvclNwYWNlT2JzZXJ2ZXIoSGFuZGxlciBoYW5kbGVyKSB7CisgICAgICAgICAgICBzdXBlcihoYW5kbGVyKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgdm9pZCBvbkNoYW5nZShib29sZWFuIHNlbGZDaGFuZ2UpIHsKKyAgICAgICAgICAgIG9uQ29sb3JTcGFjZUNoYW5nZWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHN0YXJ0T2JzZXJ2aW5nKCkgeworICAgICAgICAgICAgZmluYWwgQ29udGVudFJlc29sdmVyIGNyID0gbUNvbnRleHQuZ2V0Q29udGVudFJlc29sdmVyKCk7CisgICAgICAgICAgICBjci51bnJlZ2lzdGVyQ29udGVudE9ic2VydmVyKHRoaXMpOworICAgICAgICAgICAgY3IucmVnaXN0ZXJDb250ZW50T2JzZXJ2ZXIoU2V0dGluZ3MuU2VjdXJlLmdldFVyaUZvcigKKyAgICAgICAgICAgICAgICAgICAgU2V0dGluZ3MuU2VjdXJlLkFDQ0VTU0lCSUxJVFlfRElTUExBWV9EQUxUT05JWkVSX0VOQUJMRUQpLAorICAgICAgICAgICAgICAgICAgICBmYWxzZSwgdGhpcywgbVVzZXJUcmFja2VyLmdldEN1cnJlbnRVc2VySWQoKSk7CisgICAgICAgICAgICBjci5yZWdpc3RlckNvbnRlbnRPYnNlcnZlcihTZXR0aW5ncy5TZWN1cmUuZ2V0VXJpRm9yKAorICAgICAgICAgICAgICAgICAgICBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0RBTFRPTklaRVJfUVVJQ0tfU0VUVElOR19FTkFCTEVEKSwKKyAgICAgICAgICAgICAgICAgICAgZmFsc2UsIHRoaXMsIG1Vc2VyVHJhY2tlci5nZXRDdXJyZW50VXNlcklkKCkpOworICAgICAgICAgICAgY3IucmVnaXN0ZXJDb250ZW50T2JzZXJ2ZXIoU2V0dGluZ3MuU2VjdXJlLmdldFVyaUZvcigKKyAgICAgICAgICAgICAgICAgICAgU2V0dGluZ3MuU2VjdXJlLkFDQ0VTU0lCSUxJVFlfRElTUExBWV9EQUxUT05JWkVSKSwKKyAgICAgICAgICAgICAgICAgICAgZmFsc2UsIHRoaXMsIG1Vc2VyVHJhY2tlci5nZXRDdXJyZW50VXNlcklkKCkpOworICAgICAgICB9CisgICAgfQorCiAgICAgcHJpdmF0ZSBmaW5hbCBDb250ZXh0IG1Db250ZXh0OwogICAgIHByaXZhdGUgZmluYWwgSGFuZGxlciBtSGFuZGxlcjsKICAgICBwcml2YXRlIGZpbmFsIEN1cnJlbnRVc2VyVHJhY2tlciBtVXNlclRyYWNrZXI7CiAgICAgcHJpdmF0ZSBmaW5hbCBOZXh0QWxhcm1PYnNlcnZlciBtTmV4dEFsYXJtT2JzZXJ2ZXI7CiAgICAgcHJpdmF0ZSBmaW5hbCBCdWdyZXBvcnRPYnNlcnZlciBtQnVncmVwb3J0T2JzZXJ2ZXI7CiAgICAgcHJpdmF0ZSBmaW5hbCBCcmlnaHRuZXNzT2JzZXJ2ZXIgbUJyaWdodG5lc3NPYnNlcnZlcjsKKyAgICBwcml2YXRlIGZpbmFsIERpc3BsYXlJbnZlcnNpb25PYnNlcnZlciBtSW52ZXJzaW9uT2JzZXJ2ZXI7CisgICAgcHJpdmF0ZSBmaW5hbCBEaXNwbGF5Q29udHJhc3RPYnNlcnZlciBtQ29udHJhc3RPYnNlcnZlcjsKKyAgICBwcml2YXRlIGZpbmFsIERpc3BsYXlDb2xvclNwYWNlT2JzZXJ2ZXIgbUNvbG9yU3BhY2VPYnNlcnZlcjsKIAogICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBtSGFzTW9iaWxlRGF0YTsKIApAQCAtMjYwLDYgKzM1OCwxOCBAQAogICAgIHByaXZhdGUgUmVmcmVzaENhbGxiYWNrIG1CcmlnaHRuZXNzQ2FsbGJhY2s7CiAgICAgcHJpdmF0ZSBCcmlnaHRuZXNzU3RhdGUgbUJyaWdodG5lc3NTdGF0ZSA9IG5ldyBCcmlnaHRuZXNzU3RhdGUoKTsKIAorICAgIHByaXZhdGUgUXVpY2tTZXR0aW5nc1RpbGVWaWV3IG1JbnZlcnNpb25UaWxlOworICAgIHByaXZhdGUgUmVmcmVzaENhbGxiYWNrIG1JbnZlcnNpb25DYWxsYmFjazsKKyAgICBwcml2YXRlIEludmVyc2lvblN0YXRlIG1JbnZlcnNpb25TdGF0ZSA9IG5ldyBJbnZlcnNpb25TdGF0ZSgpOworCisgICAgcHJpdmF0ZSBRdWlja1NldHRpbmdzVGlsZVZpZXcgbUNvbnRyYXN0VGlsZTsKKyAgICBwcml2YXRlIFJlZnJlc2hDYWxsYmFjayBtQ29udHJhc3RDYWxsYmFjazsKKyAgICBwcml2YXRlIENvbnRyYXN0U3RhdGUgbUNvbnRyYXN0U3RhdGUgPSBuZXcgQ29udHJhc3RTdGF0ZSgpOworCisgICAgcHJpdmF0ZSBRdWlja1NldHRpbmdzVGlsZVZpZXcgbUNvbG9yU3BhY2VUaWxlOworICAgIHByaXZhdGUgUmVmcmVzaENhbGxiYWNrIG1Db2xvclNwYWNlQ2FsbGJhY2s7CisgICAgcHJpdmF0ZSBDb2xvclNwYWNlU3RhdGUgbUNvbG9yU3BhY2VTdGF0ZSA9IG5ldyBDb2xvclNwYWNlU3RhdGUoKTsKKwogICAgIHByaXZhdGUgUXVpY2tTZXR0aW5nc1RpbGVWaWV3IG1CdWdyZXBvcnRUaWxlOwogICAgIHByaXZhdGUgUmVmcmVzaENhbGxiYWNrIG1CdWdyZXBvcnRDYWxsYmFjazsKICAgICBwcml2YXRlIFN0YXRlIG1CdWdyZXBvcnRTdGF0ZSA9IG5ldyBTdGF0ZSgpOwpAQCAtMjc4LDEwICszODgsMTcgQEAKICAgICAgICAgbUNvbnRleHQgPSBjb250ZXh0OwogICAgICAgICBtSGFuZGxlciA9IG5ldyBIYW5kbGVyKCk7CiAgICAgICAgIG1Vc2VyVHJhY2tlciA9IG5ldyBDdXJyZW50VXNlclRyYWNrZXIobUNvbnRleHQpIHsKKyAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICAgcHVibGljIHZvaWQgb25Vc2VyU3dpdGNoZWQoaW50IG5ld1VzZXJJZCkgewogICAgICAgICAgICAgICAgIG1CcmlnaHRuZXNzT2JzZXJ2ZXIuc3RhcnRPYnNlcnZpbmcoKTsKKyAgICAgICAgICAgICAgICBtSW52ZXJzaW9uT2JzZXJ2ZXIuc3RhcnRPYnNlcnZpbmcoKTsKKyAgICAgICAgICAgICAgICBtQ29udHJhc3RPYnNlcnZlci5zdGFydE9ic2VydmluZygpOworICAgICAgICAgICAgICAgIG1Db2xvclNwYWNlT2JzZXJ2ZXIuc3RhcnRPYnNlcnZpbmcoKTsKICAgICAgICAgICAgICAgICByZWZyZXNoUm90YXRpb25Mb2NrVGlsZSgpOwogICAgICAgICAgICAgICAgIG9uQnJpZ2h0bmVzc0xldmVsQ2hhbmdlZCgpOworICAgICAgICAgICAgICAgIG9uSW52ZXJzaW9uQ2hhbmdlZCgpOworICAgICAgICAgICAgICAgIG9uQ29udHJhc3RDaGFuZ2VkKCk7CisgICAgICAgICAgICAgICAgb25Db2xvclNwYWNlQ2hhbmdlZCgpOwogICAgICAgICAgICAgICAgIG9uTmV4dEFsYXJtQ2hhbmdlZCgpOwogICAgICAgICAgICAgICAgIG9uQnVncmVwb3J0Q2hhbmdlZCgpOwogICAgICAgICAgICAgfQpAQCAtMjkzLDYgKzQxMCwxMiBAQAogICAgICAgICBtQnVncmVwb3J0T2JzZXJ2ZXIuc3RhcnRPYnNlcnZpbmcoKTsKICAgICAgICAgbUJyaWdodG5lc3NPYnNlcnZlciA9IG5ldyBCcmlnaHRuZXNzT2JzZXJ2ZXIobUhhbmRsZXIpOwogICAgICAgICBtQnJpZ2h0bmVzc09ic2VydmVyLnN0YXJ0T2JzZXJ2aW5nKCk7CisgICAgICAgIG1JbnZlcnNpb25PYnNlcnZlciA9IG5ldyBEaXNwbGF5SW52ZXJzaW9uT2JzZXJ2ZXIobUhhbmRsZXIpOworICAgICAgICBtSW52ZXJzaW9uT2JzZXJ2ZXIuc3RhcnRPYnNlcnZpbmcoKTsKKyAgICAgICAgbUNvbnRyYXN0T2JzZXJ2ZXIgPSBuZXcgRGlzcGxheUNvbnRyYXN0T2JzZXJ2ZXIobUhhbmRsZXIpOworICAgICAgICBtQ29udHJhc3RPYnNlcnZlci5zdGFydE9ic2VydmluZygpOworICAgICAgICBtQ29sb3JTcGFjZU9ic2VydmVyID0gbmV3IERpc3BsYXlDb2xvclNwYWNlT2JzZXJ2ZXIobUhhbmRsZXIpOworICAgICAgICBtQ29sb3JTcGFjZU9ic2VydmVyLnN0YXJ0T2JzZXJ2aW5nKCk7CiAKICAgICAgICAgQ29ubmVjdGl2aXR5TWFuYWdlciBjbSA9IChDb25uZWN0aXZpdHlNYW5hZ2VyKQogICAgICAgICAgICAgICAgIGNvbnRleHQuZ2V0U3lzdGVtU2VydmljZShDb250ZXh0LkNPTk5FQ1RJVklUWV9TRVJWSUNFKTsKQEAgLTc3OSw2ICs5MDIsOTAgQEAKICAgICAgICAgb25CcmlnaHRuZXNzTGV2ZWxDaGFuZ2VkKCk7CiAgICAgfQogCisgICAgLy8gQ29sb3IgaW52ZXJzaW9uCisgICAgdm9pZCBhZGRJbnZlcnNpb25UaWxlKFF1aWNrU2V0dGluZ3NUaWxlVmlldyB2aWV3LCBSZWZyZXNoQ2FsbGJhY2sgY2IpIHsKKyAgICAgICAgbUludmVyc2lvblRpbGUgPSB2aWV3OworICAgICAgICBtSW52ZXJzaW9uQ2FsbGJhY2sgPSBjYjsKKyAgICAgICAgb25JbnZlcnNpb25DaGFuZ2VkKCk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIG9uSW52ZXJzaW9uQ2hhbmdlZCgpIHsKKyAgICAgICAgZmluYWwgUmVzb3VyY2VzIHJlcyA9IG1Db250ZXh0LmdldFJlc291cmNlcygpOworICAgICAgICBmaW5hbCBDb250ZW50UmVzb2x2ZXIgY3IgPSBtQ29udGV4dC5nZXRDb250ZW50UmVzb2x2ZXIoKTsKKyAgICAgICAgZmluYWwgaW50IGN1cnJlbnRVc2VySWQgPSBtVXNlclRyYWNrZXIuZ2V0Q3VycmVudFVzZXJJZCgpOworICAgICAgICBmaW5hbCBib29sZWFuIHF1aWNrU2V0dGluZ0VuYWJsZWQgPSBTZXR0aW5ncy5TZWN1cmUuZ2V0SW50Rm9yVXNlcigKKyAgICAgICAgICAgICAgICBjciwgU2V0dGluZ3MuU2VjdXJlLkFDQ0VTU0lCSUxJVFlfRElTUExBWV9JTlZFUlNJT05fUVVJQ0tfU0VUVElOR19FTkFCTEVELCAwLAorICAgICAgICAgICAgICAgIGN1cnJlbnRVc2VySWQpID09IDE7CisgICAgICAgIGZpbmFsIGJvb2xlYW4gZW5hYmxlZCA9IFNldHRpbmdzLlNlY3VyZS5nZXRJbnRGb3JVc2VyKAorICAgICAgICAgICAgICAgIGNyLCBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0lOVkVSU0lPTl9FTkFCTEVELCAwLCBjdXJyZW50VXNlcklkKSA9PSAxOworICAgICAgICBmaW5hbCBpbnQgdHlwZSA9IFNldHRpbmdzLlNlY3VyZS5nZXRJbnRGb3JVc2VyKAorICAgICAgICAgICAgICAgIGNyLCBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0lOVkVSU0lPTiwgMCwgY3VycmVudFVzZXJJZCk7CisgICAgICAgIG1JbnZlcnNpb25TdGF0ZS5lbmFibGVkID0gcXVpY2tTZXR0aW5nRW5hYmxlZDsKKyAgICAgICAgbUludmVyc2lvblN0YXRlLnRvZ2dsZWQgPSBlbmFibGVkOworICAgICAgICBtSW52ZXJzaW9uU3RhdGUudHlwZSA9IHR5cGU7CisgICAgICAgIC8vIFRPRE86IEFkZCByZWFsIGljb24gYXNzZXRzLgorICAgICAgICBtSW52ZXJzaW9uU3RhdGUuaWNvbklkID0gZW5hYmxlZCA/IFIuZHJhd2FibGUuaWNfcXNfYmx1ZXRvb3RoX29uCisgICAgICAgICAgICAgICAgOiBSLmRyYXdhYmxlLmljX3FzX2JsdWV0b290aF9vZmY7CisgICAgICAgIG1JbnZlcnNpb25TdGF0ZS5sYWJlbCA9IHJlcy5nZXRTdHJpbmcoUi5zdHJpbmcucXVpY2tfc2V0dGluZ3NfaW52ZXJzaW9uX2xhYmVsKTsKKyAgICAgICAgbUludmVyc2lvbkNhbGxiYWNrLnJlZnJlc2hWaWV3KG1JbnZlcnNpb25UaWxlLCBtSW52ZXJzaW9uU3RhdGUpOworICAgIH0KKworICAgIC8vIENvbnRyYXN0IGVuaGFuY2VtZW50CisgICAgdm9pZCBhZGRDb250cmFzdFRpbGUoUXVpY2tTZXR0aW5nc1RpbGVWaWV3IHZpZXcsIFJlZnJlc2hDYWxsYmFjayBjYikgeworICAgICAgICBtQ29udHJhc3RUaWxlID0gdmlldzsKKyAgICAgICAgbUNvbnRyYXN0Q2FsbGJhY2sgPSBjYjsKKyAgICAgICAgb25Db250cmFzdENoYW5nZWQoKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgb25Db250cmFzdENoYW5nZWQoKSB7CisgICAgICAgIGZpbmFsIFJlc291cmNlcyByZXMgPSBtQ29udGV4dC5nZXRSZXNvdXJjZXMoKTsKKyAgICAgICAgZmluYWwgQ29udGVudFJlc29sdmVyIGNyID0gbUNvbnRleHQuZ2V0Q29udGVudFJlc29sdmVyKCk7CisgICAgICAgIGZpbmFsIGludCBjdXJyZW50VXNlcklkID0gbVVzZXJUcmFja2VyLmdldEN1cnJlbnRVc2VySWQoKTsKKyAgICAgICAgZmluYWwgYm9vbGVhbiBxdWlja1NldHRpbmdFbmFibGVkID0gU2V0dGluZ3MuU2VjdXJlLmdldEludEZvclVzZXIoCisgICAgICAgICAgICAgICAgY3IsIFNldHRpbmdzLlNlY3VyZS5BQ0NFU1NJQklMSVRZX0RJU1BMQVlfQ09OVFJBU1RfUVVJQ0tfU0VUVElOR19FTkFCTEVELCAwLAorICAgICAgICAgICAgICAgIGN1cnJlbnRVc2VySWQpID09IDE7CisgICAgICAgIGZpbmFsIGJvb2xlYW4gZW5hYmxlZCA9IFNldHRpbmdzLlNlY3VyZS5nZXRJbnRGb3JVc2VyKAorICAgICAgICAgICAgICAgIGNyLCBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0NPTlRSQVNUX0VOQUJMRUQsIDAsIGN1cnJlbnRVc2VySWQpID09IDE7CisgICAgICAgIGZpbmFsIGZsb2F0IGNvbnRyYXN0ID0gU2V0dGluZ3MuU2VjdXJlLmdldEZsb2F0Rm9yVXNlcigKKyAgICAgICAgICAgICAgICBjciwgU2V0dGluZ3MuU2VjdXJlLkFDQ0VTU0lCSUxJVFlfRElTUExBWV9DT05UUkFTVCwgMSwgY3VycmVudFVzZXJJZCk7CisgICAgICAgIGZpbmFsIGZsb2F0IGJyaWdodG5lc3MgPSBTZXR0aW5ncy5TZWN1cmUuZ2V0RmxvYXRGb3JVc2VyKAorICAgICAgICAgICAgICAgIGNyLCBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0JSSUdIVE5FU1MsIDAsIGN1cnJlbnRVc2VySWQpOworICAgICAgICBtQ29udHJhc3RTdGF0ZS5lbmFibGVkID0gcXVpY2tTZXR0aW5nRW5hYmxlZDsKKyAgICAgICAgbUNvbnRyYXN0U3RhdGUudG9nZ2xlZCA9IGVuYWJsZWQ7CisgICAgICAgIG1Db250cmFzdFN0YXRlLmNvbnRyYXN0ID0gY29udHJhc3Q7CisgICAgICAgIG1Db250cmFzdFN0YXRlLmJyaWdodG5lc3MgPSBicmlnaHRuZXNzOworICAgICAgICAvLyBUT0RPOiBBZGQgcmVhbCBpY29uIGFzc2V0cy4KKyAgICAgICAgbUNvbnRyYXN0U3RhdGUuaWNvbklkID0gZW5hYmxlZCA/IFIuZHJhd2FibGUuaWNfcXNfYmx1ZXRvb3RoX29uCisgICAgICAgICAgICAgICAgOiBSLmRyYXdhYmxlLmljX3FzX2JsdWV0b290aF9vZmY7CisgICAgICAgIG1Db250cmFzdFN0YXRlLmxhYmVsID0gcmVzLmdldFN0cmluZyhSLnN0cmluZy5xdWlja19zZXR0aW5nc19jb250cmFzdF9sYWJlbCk7CisgICAgICAgIG1Db250cmFzdENhbGxiYWNrLnJlZnJlc2hWaWV3KG1Db250cmFzdFRpbGUsIG1Db250cmFzdFN0YXRlKTsKKyAgICB9CisKKyAgICAvLyBDb2xvciBzcGFjZSBhZGp1c3RtZW50CisgICAgdm9pZCBhZGRDb2xvclNwYWNlVGlsZShRdWlja1NldHRpbmdzVGlsZVZpZXcgdmlldywgUmVmcmVzaENhbGxiYWNrIGNiKSB7CisgICAgICAgIG1Db2xvclNwYWNlVGlsZSA9IHZpZXc7CisgICAgICAgIG1Db2xvclNwYWNlQ2FsbGJhY2sgPSBjYjsKKyAgICAgICAgb25Db2xvclNwYWNlQ2hhbmdlZCgpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBvbkNvbG9yU3BhY2VDaGFuZ2VkKCkgeworICAgICAgICBmaW5hbCBSZXNvdXJjZXMgcmVzID0gbUNvbnRleHQuZ2V0UmVzb3VyY2VzKCk7CisgICAgICAgIGZpbmFsIENvbnRlbnRSZXNvbHZlciBjciA9IG1Db250ZXh0LmdldENvbnRlbnRSZXNvbHZlcigpOworICAgICAgICBmaW5hbCBpbnQgY3VycmVudFVzZXJJZCA9IG1Vc2VyVHJhY2tlci5nZXRDdXJyZW50VXNlcklkKCk7CisgICAgICAgIGZpbmFsIGJvb2xlYW4gcXVpY2tTZXR0aW5nRW5hYmxlZCA9IFNldHRpbmdzLlNlY3VyZS5nZXRJbnRGb3JVc2VyKAorICAgICAgICAgICAgICAgIGNyLCBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0RBTFRPTklaRVJfUVVJQ0tfU0VUVElOR19FTkFCTEVELCAwLAorICAgICAgICAgICAgICAgIGN1cnJlbnRVc2VySWQpID09IDE7CisgICAgICAgIGZpbmFsIGJvb2xlYW4gZW5hYmxlZCA9IFNldHRpbmdzLlNlY3VyZS5nZXRJbnRGb3JVc2VyKGNyLAorICAgICAgICAgICAgICAgIFNldHRpbmdzLlNlY3VyZS5BQ0NFU1NJQklMSVRZX0RJU1BMQVlfREFMVE9OSVpFUl9FTkFCTEVELCAwLCBjdXJyZW50VXNlcklkKSA9PSAxOworICAgICAgICBmaW5hbCBpbnQgdHlwZSA9IFNldHRpbmdzLlNlY3VyZS5nZXRJbnRGb3JVc2VyKAorICAgICAgICAgICAgICAgIGNyLCBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0RBTFRPTklaRVIsIDAsIGN1cnJlbnRVc2VySWQpOworICAgICAgICBtQ29sb3JTcGFjZVN0YXRlLmVuYWJsZWQgPSBxdWlja1NldHRpbmdFbmFibGVkOworICAgICAgICBtQ29sb3JTcGFjZVN0YXRlLnRvZ2dsZWQgPSBlbmFibGVkOworICAgICAgICBtQ29sb3JTcGFjZVN0YXRlLnR5cGUgPSB0eXBlOworICAgICAgICAvLyBUT0RPOiBBZGQgcmVhbCBpY29uIGFzc2V0cy4KKyAgICAgICAgbUNvbG9yU3BhY2VTdGF0ZS5pY29uSWQgPSBlbmFibGVkID8gUi5kcmF3YWJsZS5pY19xc19ibHVldG9vdGhfb24KKyAgICAgICAgICAgICAgICA6IFIuZHJhd2FibGUuaWNfcXNfYmx1ZXRvb3RoX29mZjsKKyAgICAgICAgbUNvbG9yU3BhY2VTdGF0ZS5sYWJlbCA9IHJlcy5nZXRTdHJpbmcoUi5zdHJpbmcucXVpY2tfc2V0dGluZ3NfY29sb3Jfc3BhY2VfbGFiZWwpOworICAgICAgICBtQ29sb3JTcGFjZUNhbGxiYWNrLnJlZnJlc2hWaWV3KG1Db2xvclNwYWNlVGlsZSwgbUNvbG9yU3BhY2VTdGF0ZSk7CisgICAgfQorCiAgICAgLy8gU1NMIENBIENlcnQgd2FybmluZy4KICAgICBwdWJsaWMgdm9pZCBhZGRTc2xDYUNlcnRXYXJuaW5nVGlsZShRdWlja1NldHRpbmdzVGlsZVZpZXcgdmlldywgUmVmcmVzaENhbGxiYWNrIGNiKSB7CiAgICAgICAgIG1Tc2xDYUNlcnRXYXJuaW5nVGlsZSA9IHZpZXc7CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtYXIvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtYXIvc3RyaW5ncy54bWwKaW5kZXggMjM4MGZhMi4uYmY4M2E0MSAxMDA2NDQKLS0tIGEvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWFyL3N0cmluZ3MueG1sCisrKyBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1hci9zdHJpbmdzLnhtbApAQCAtMTYsMTAgKzE2LDEwIEBACiAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KLSAgICA8c3RyaW5nIG5hbWU9InByb21wdCIgbXNnaWQ9IjgzNTkxNzU5OTkwMDY4MzM0NjIiPiLZitit2KfZiNmEIDx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiDYpdmG2LTYp9ihINin2KrYtdin2YQg2LTYqNmD2Kkg2LjYp9mH2LHZitipINiu2KfYtdipIChWUE4pLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InByb21wdCIgbXNnaWQ9IjgzNTkxNzU5OTkwMDY4MzM0NjIiPiLigI/Zitit2KfZiNmEIDx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiDYpdmG2LTYp9ihINin2KrYtdin2YQg2LTYqNmD2Kkg2LjYp9mH2LHZitipINiu2KfYtdipIChWUE4pLiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9Indhcm5pbmciIG1zZ2lkPSI1NDcwNzQzNTc2NjYwMTYwMDc5Ij4i2KrYudivINin2YTZhdiq2KfYqNi52Kkg2KjZhdir2KfYqNipINil2LDZhiDZhNmE2KrYt9io2YrZgiDYqNin2LnYqtix2KfYtiDYrNmF2YrYuSDYrdix2YPYp9iqINmF2LHZiNixINin2YTYqNmK2KfZhtin2Kog2LnYqNixINin2YTYtNio2YPYqS4gIjxiPiJcItmE2KdcIiDYqtmI2KfZgdmCINil2YTYpyDYpdiw2Kcg2YPZhtiqINiq2KvZgiDZgdmKINin2YTYqti32KjZitmCLiI8L2I+IiDZiNil2YTYpyDZgdmC2K8g2KrYqti52LHYtiDYqNmK2KfZhtin2KrZgyDZhNiu2LfZiNix2Kkg2KfZhNin2K7Yqtix2KfZgiDYqNmI2KfYs9i32Kkg2KjYsdin2YXYrCDYttin2LHYqS4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIyODg5MjI2NDA4NzY1ODEwMTczIj4i2KPYq9mCINmB2Yog2YfYsNinINin2YTYqti32KjZitmCLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxlZ2FjeV90aXRsZSIgbXNnaWQ9IjE5MjkzNjI1MDA2NjU4MDk2NCI+IlZQTiDZhdiq2LXZhNipIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGVnYWN5X3RpdGxlIiBtc2dpZD0iMTkyOTM2MjUwMDY2NTgwOTY0Ij4i4oCPVlBOINmF2KrYtdmE2KkiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmUiIG1zZ2lkPSI0OTA1NTE4Mzc1NTc0NzkxMzc1Ij4i2KrZh9mK2KbYqSI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImRpc2Nvbm5lY3QiIG1zZ2lkPSI5NzE0MTIzMzgzMDQyMDAwNTYiPiLZgti32Lkg2KfZhNin2KrYtdin2YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZXNzaW9uIiBtc2dpZD0iNjQ3MDYyODU0OTQ3MzY0MTAzMCI+Itin2YTYrNmE2LPYqSI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1hei1yQVovc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtYXotckFaL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkZWIwNmYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtYXotckFaL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0icHJvbXB0IiBtc2dpZD0iODM1OTE3NTk5OTAwNjgzMzQ2MiI+IlZQTiBiYcSfbGFudMSxc8SxIHlhcmF0bWFxIMO8w6fDvG4gPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IGPJmWhkbMmZcmkuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FybmluZyIgbXNnaWQ9IjU0NzA3NDM1NzY2NjAxNjAwNzkiPiJCdW51IGjJmXlhdGEga2XDp2lybcmZa2zJmSwgc2l6IHTJmXRiaXHJmSBiw7x0w7xuIMWfyZliyZlryZkgaMmZcsmZa8mZdGluyZkgcWFyxLHFn21hxJ9hIGljYXrJmSB2ZXJpcnNpbml6LiAiPGI+IiBUyZl0YmlxyZkgZ8O8dsmZbm1pcnNpenPJmSBxyZlidWwgZXRtyZl5aW4uICI8L2I+IiDGj2tzIGhhbGRhLCBkYXRhbsSxesSxbiB0yZlobMO8a8mZbGkgcHJvcXJhbWxhciB0yZlyyZlmaW5kyZluIMmZbMmZIGtlw6dpcmlsbcmZIHJpc2tpbmkgYWzEsXJzxLFuxLF6LiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2VwdCIgbXNnaWQ9IjI4ODkyMjY0MDg3NjU4MTAxNzMiPiJCdSB0yZl0YmlxyZkgZ8O8dsmZbmlyyZltLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxlZ2FjeV90aXRsZSIgbXNnaWQ9IjE5MjkzNjI1MDA2NjU4MDk2NCI+IlZQTiBxb8WfdWx1ZHVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29uZmlndXJlIiBtc2dpZD0iNDkwNTUxODM3NTU3NDc5MTM3NSI+IktvbmZpcXVyYXNpeWEgZWRpbiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc2Nvbm5lY3QiIG1zZ2lkPSI5NzE0MTIzMzgzMDQyMDAwNTYiPiLGj2xhccmZbmkga8mZcyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlc3Npb24iIG1zZ2lkPSI2NDcwNjI4NTQ5NDczNjQxMDMwIj4iU2Vzc2l5YToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkdXJhdGlvbiIgbXNnaWQ9IjM1ODQ3ODI0NTk5Mjg3MTk0MzUiPiJNw7xkZMmZdDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3RyYW5zbWl0dGVkIiBtc2dpZD0iNzk4ODE2NzY3Mjk4MjE5OTA2MSI+IkfDtm5kyZlyaWzJmW46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV9yZWNlaXZlZCIgbXNnaWQ9IjQwNjI3NzY5MjkzNzYwNjc4MjAiPiJRyZlidWwgZWRpbMmZbjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3ZhbHVlX2Zvcm1hdCIgbXNnaWQ9IjIxOTI0NjY1NTc4MjY4OTc1ODAiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiUxJHM8L3hsaWZmOmc+IGJheXQgLyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJHM8L3hsaWZmOmc+IHBha2V0Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtYXovc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtYXovc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRlYjA2ZgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1hei9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InByb21wdCIgbXNnaWQ9IjgzNTkxNzU5OTkwMDY4MzM0NjIiPiJWUE4gYmHEn2xhbnTEsXPEsSB5YXJhdG1hcSDDvMOnw7xuIDx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiBjyZloZGzJmXJpLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Indhcm5pbmciIG1zZ2lkPSI1NDcwNzQzNTc2NjYwMTYwMDc5Ij4iQnVudSBoyZl5YXRhIGtlw6dpcm3JmWtsyZksIHNpeiB0yZl0YmlxyZkgYsO8dMO8biDFn8mZYsmZa8mZIGjJmXLJmWvJmXRpbsmZIHFhcsSxxZ9tYcSfYSBpY2F6yZkgdmVyaXJzaW5pei4gIjxiPiIgVMmZdGJpccmZIGfDvHbJmW5taXJzaXpzyZkgccmZYnVsIGV0bcmZeWluLiAiPC9iPiIgxo9rcyBoYWxkYSwgZGF0YW7EsXrEsW4gdMmZaGzDvGvJmWxpIHByb3FyYW1sYXIgdMmZcsmZZmluZMmZbiDJmWzJmSBrZcOnaXJpbG3JmSByaXNraW5pIGFsxLFyc8SxbsSxei4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIyODg5MjI2NDA4NzY1ODEwMTczIj4iQnUgdMmZdGJpccmZIGfDvHbJmW5pcsmZbS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsZWdhY3lfdGl0bGUiIG1zZ2lkPSIxOTI5MzYyNTAwNjY1ODA5NjQiPiJWUE4gcW/Fn3VsdWR1ciI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbmZpZ3VyZSIgbXNnaWQ9IjQ5MDU1MTgzNzU1NzQ3OTEzNzUiPiJLb25maXF1cmFzaXlhIGVkaW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNjb25uZWN0IiBtc2dpZD0iOTcxNDEyMzM4MzA0MjAwMDU2Ij4ixo9sYXHJmW5pIGvJmXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXNzaW9uIiBtc2dpZD0iNjQ3MDYyODU0OTQ3MzY0MTAzMCI+IlNlc3NpeWE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHVyYXRpb24iIG1zZ2lkPSIzNTg0NzgyNDU5OTI4NzE5NDM1Ij4iTcO8ZGTJmXQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV90cmFuc21pdHRlZCIgbXNnaWQ9Ijc5ODgxNjc2NzI5ODIxOTkwNjEiPiJHw7ZuZMmZcmlsyZluOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfcmVjZWl2ZWQiIG1zZ2lkPSI0MDYyNzc2OTI5Mzc2MDY3ODIwIj4iUcmZYnVsIGVkaWzJmW46Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV92YWx1ZV9mb3JtYXQiIG1zZ2lkPSIyMTkyNDY2NTU3ODI2ODk3NTgwIj4iPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRzPC94bGlmZjpnPiBiYXl0IC8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRzPC94bGlmZjpnPiBwYWtldCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWVuLXJJTi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZjNDZkOAotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1lbi1ySU4vc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJwcm9tcHQiIG1zZ2lkPSI4MzU5MTc1OTk5MDA2ODMzNDYyIj4iPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IGF0dGVtcHRzIHRvIGNyZWF0ZSBhIFZQTiBjb25uZWN0aW9uLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Indhcm5pbmciIG1zZ2lkPSI1NDcwNzQzNTc2NjYwMTYwMDc5Ij4iQnkgcHJvY2VlZGluZywgeW91IGFyZSBnaXZpbmcgdGhlIGFwcGxpY2F0aW9uIHBlcm1pc3Npb24gdG8gaW50ZXJjZXB0IGFsbCBuZXR3b3JrIHRyYWZmaWMuICI8Yj4iRG8gTk9UIGFjY2VwdCB1bmxlc3MgeW91IHRydXN0IHRoZSBhcHBsaWNhdGlvbi4iPC9iPiIgT3RoZXJ3aXNlLCB5b3UgcnVuIHRoZSByaXNrIG9mIGhhdmluZyB5b3VyIGRhdGEgY29tcHJvbWlzZWQgYnkgbWFsaWNpb3VzIHNvZnR3YXJlLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2VwdCIgbXNnaWQ9IjI4ODkyMjY0MDg3NjU4MTAxNzMiPiJJIHRydXN0IHRoaXMgYXBwbGljYXRpb24uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGVnYWN5X3RpdGxlIiBtc2dpZD0iMTkyOTM2MjUwMDY2NTgwOTY0Ij4iVlBOIGlzIGNvbm5lY3RlZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbmZpZ3VyZSIgbXNnaWQ9IjQ5MDU1MTgzNzU1NzQ3OTEzNzUiPiJDb25maWd1cmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNjb25uZWN0IiBtc2dpZD0iOTcxNDEyMzM4MzA0MjAwMDU2Ij4iRGlzY29ubmVjdCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlc3Npb24iIG1zZ2lkPSI2NDcwNjI4NTQ5NDczNjQxMDMwIj4iU2Vzc2lvbjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkdXJhdGlvbiIgbXNnaWQ9IjM1ODQ3ODI0NTk5Mjg3MTk0MzUiPiJEdXJhdGlvbjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3RyYW5zbWl0dGVkIiBtc2dpZD0iNzk4ODE2NzY3Mjk4MjE5OTA2MSI+IlNlbnQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV9yZWNlaXZlZCIgbXNnaWQ9IjQwNjI3NzY5MjkzNzYwNjc4MjAiPiJSZWNlaXZlZDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3ZhbHVlX2Zvcm1hdCIgbXNnaWQ9IjIxOTI0NjY1NTc4MjY4OTc1ODAiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiUxJHM8L3hsaWZmOmc+IGJ5dGVzIC8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRzPC94bGlmZjpnPiBwYWNrZXRzIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtZXQtckVFL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDE2ZWIwCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWV0LXJFRS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InByb21wdCIgbXNnaWQ9IjgzNTkxNzU5OTkwMDY4MzM0NjIiPiJSYWtlbmR1c2UgPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IGthdHNlZCBsdXVhIFZQTi3DvGhlbmR1c3QuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FybmluZyIgbXNnaWQ9IjU0NzA3NDM1NzY2NjAxNjAwNzkiPiJKw6R0a2F0ZXMgYW5uYXRlIHJha2VuZHVzZWxlIGxvYSBqw6RsZ2lkYSBrb2d1IHbDtXJndWxpaWtsdXN0LiAiPGI+IsOEUkdFIG7DtXVzdHVnZSwga3VpIHRlIHNlZGEgcmFrZW5kdXN0IGVpIHVzYWxkYS4iPC9iPiIgVmFzdGFzZWwganVodWwgb24gb2h0LCBldCBwYWhhdmFyYSB2w7VpYiBrYWhqdXN0YWRhIHRlaWUgYW5kbWVpZC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIyODg5MjI2NDA4NzY1ODEwMTczIj4iVXNhbGRhbiBzZWRhIHJha2VuZHVzdC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsZWdhY3lfdGl0bGUiIG1zZ2lkPSIxOTI5MzYyNTAwNjY1ODA5NjQiPiJWUE4gb24gw7xoZW5kYXR1ZCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbmZpZ3VyZSIgbXNnaWQ9IjQ5MDU1MTgzNzU1NzQ3OTEzNzUiPiJTZWFkaXN0YW1pbmUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNjb25uZWN0IiBtc2dpZD0iOTcxNDEyMzM4MzA0MjAwMDU2Ij4iS2F0a2VzdGEgw7xoZW5kdXMiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXNzaW9uIiBtc2dpZD0iNjQ3MDYyODU0OTQ3MzY0MTAzMCI+IlNlYW5zaWQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkdXJhdGlvbiIgbXNnaWQ9IjM1ODQ3ODI0NTk5Mjg3MTk0MzUiPiJLZXN0dXM6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV90cmFuc21pdHRlZCIgbXNnaWQ9Ijc5ODgxNjc2NzI5ODIxOTkwNjEiPiJTYWFkZXR1ZDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3JlY2VpdmVkIiBtc2dpZD0iNDA2Mjc3NjkyOTM3NjA2NzgyMCI+IlZhc3R1IG9uIHbDtWV0dWQ6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV92YWx1ZV9mb3JtYXQiIG1zZ2lkPSIyMTkyNDY2NTU3ODI2ODk3NTgwIj4iPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRzPC94bGlmZjpnPiBiYWl0aSAvIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JTIkczwveGxpZmY6Zz4gcGFrZXR0aSI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWZhL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWZhL3N0cmluZ3MueG1sCmluZGV4IGVjMTYzYWYuLjdjMGFhZmUgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1mYS9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtZmEvc3RyaW5ncy54bWwKQEAgLTE2LDEwICsxNiwxMCBAQAogCiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+Ci0gICAgPHN0cmluZyBuYW1lPSJwcm9tcHQiIG1zZ2lkPSI4MzU5MTc1OTk5MDA2ODMzNDYyIj4iPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+INiq2YTYp9i0INmF24zigIzaqdmG2K8g24zaqSDYp9iq2LXYp9mEIFZQTiDYp9uM2KzYp9ivINqp2YbYry4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJwcm9tcHQiIG1zZ2lkPSI4MzU5MTc1OTk5MDA2ODMzNDYyIj4i4oCPPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+INiq2YTYp9i0INmF24zigIzaqdmG2K8g24zaqSDYp9iq2LXYp9mEIFZQTiDYp9uM2KzYp9ivINqp2YbYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJ3YXJuaW5nIiBtc2dpZD0iNTQ3MDc0MzU3NjY2MDE2MDA3OSI+Itio2Kcg2KfYr9in2YXZhyDYr9in2K/ZhtiMINio2Ycg2KjYsdmG2KfZhdmH2ZQg2qnYp9ix2KjYsdiv24wg2KfYrNin2LLZhyDZhduM4oCM2K/Zh9uM2K8g2KrZhdin2YUg2KrYsdin2YHbjNqpINi02KjaqdmHINix2Kcg2LHZh9qv24zYsduMINqp2YbYry4gIjxiPiLYqtinINio2Ycg2KjYsdmG2KfZhdmHINin2LnYqtmF2KfYryDZhtqp2LHYr9uM2K8g2KLZhiDYsdinINmC2KjZiNmEINmG2qnZhtuM2K8uIjwvYj4iINiv2LEg2LrbjNixINin24zZhiDYtdmI2LHYqtiMINin24zZhiDYsduM2LPaqSDYsdinINmC2KjZiNmEINmF24zigIzaqdmG24zYryDaqdmHINiv2KfYr9mH4oCM2YfYp9uMINi02YXYpyDYqtmI2LPYtyDbjNqpINmG2LHZheKAjNin2YHYstin2LEg2YXYrtix2Kgg2KjZhyDYrti32LEg2KjbjNmB2KrYry4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIyODg5MjI2NDA4NzY1ODEwMTczIj4i2YXZhiDYqNmHINin24zZhiDYqNix2YbYp9mF2Ycg2KfYudiq2YXYp9ivINiv2KfYsdmFLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxlZ2FjeV90aXRsZSIgbXNnaWQ9IjE5MjkzNjI1MDA2NjU4MDk2NCI+IlZQTiDZhdiq2LXZhCDYp9iz2KoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsZWdhY3lfdGl0bGUiIG1zZ2lkPSIxOTI5MzYyNTAwNjY1ODA5NjQiPiLigI9WUE4g2YXYqti12YQg2KfYs9iqIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29uZmlndXJlIiBtc2dpZD0iNDkwNTUxODM3NTU3NDc5MTM3NSI+Itm+24zaqdix2KjZhtiv24wiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkaXNjb25uZWN0IiBtc2dpZD0iOTcxNDEyMzM4MzA0MjAwMDU2Ij4i2YLYt9i5INin2KrYtdin2YQiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJzZXNzaW9uIiBtc2dpZD0iNjQ3MDYyODU0OTQ3MzY0MTAzMCI+Itis2YTYs9mHOiI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1mci1yQ0Evc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwMjhmODMKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtZnItckNBL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0icHJvbXB0IiBtc2dpZD0iODM1OTE3NTk5OTAwNjgzMzQ2MiI+Ijx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiB0ZW50ZSBkZSBjcsOpZXIgdW5lIGNvbm5leGlvbiBWUE4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FybmluZyIgbXNnaWQ9IjU0NzA3NDM1NzY2NjAxNjAwNzkiPiJFbiBjb250aW51YW50LCB2b3VzIGF1dG9yaXNleiBsXCdhcHBsaWNhdGlvbiDDoCBpbnRlcmNlcHRlciBsXCdlbnNlbWJsZSBkdSB0cmFmaWMgcsOpc2VhdS4gIjxiPiJOXCdhY2NlcHRleiBQQVMsIHNhdWYgc2kgdm91cyBhdmV6IGNvbmZpYW5jZSBlbiBsXCdhcHBsaWNhdGlvbi4iPC9iPiJTaW5vbiwgdm9zIGRvbm7DqWVzIHJpc3F1ZW50IGRcJ8OqdHJlIHBpcmF0w6llcyBwYXIgdW4gbG9naWNpZWwgbWFsdmVpbGxhbnQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMjg4OTIyNjQwODc2NTgxMDE3MyI+IkpcJ2FpIGNvbmZpYW5jZSBlbiBjZXR0ZSBhcHBsaWNhdGlvbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsZWdhY3lfdGl0bGUiIG1zZ2lkPSIxOTI5MzYyNTAwNjY1ODA5NjQiPiJWUE4gY29ubmVjdMOpIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29uZmlndXJlIiBtc2dpZD0iNDkwNTUxODM3NTU3NDc5MTM3NSI+IkNvbmZpZ3VyZXIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNjb25uZWN0IiBtc2dpZD0iOTcxNDEyMzM4MzA0MjAwMDU2Ij4iRMOpY29ubmVjdGVyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vzc2lvbiIgbXNnaWQ9IjY0NzA2Mjg1NDk0NzM2NDEwMzAiPiJTZXNzaW9uwqA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHVyYXRpb24iIG1zZ2lkPSIzNTg0NzgyNDU5OTI4NzE5NDM1Ij4iRHVyw6llIDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3RyYW5zbWl0dGVkIiBtc2dpZD0iNzk4ODE2NzY3Mjk4MjE5OTA2MSI+IkRhdGUgZFwnZW52b2nCoDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3JlY2VpdmVkIiBtc2dpZD0iNDA2Mjc3NjkyOTM3NjA2NzgyMCI+IlJlw6d1IGxlwqA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV92YWx1ZV9mb3JtYXQiIG1zZ2lkPSIyMTkyNDY2NTU3ODI2ODk3NTgwIj4iPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRzPC94bGlmZjpnPsKgb2N0ZXRzIC8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRzPC94bGlmZjpnPsKgcGFxdWV0cyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWhpL3N0cmluZ3MueG1sCmluZGV4IGUyY2I1MWEuLmI1NzBhNmQgMTAwNjQ0Ci0tLSBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1oaS9zdHJpbmdzLnhtbAorKysgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtaGkvc3RyaW5ncy54bWwKQEAgLTE3LDggKzE3LDggQEAKIDxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgogICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KICAgICA8c3RyaW5nIG5hbWU9InByb21wdCIgbXNnaWQ9IjgzNTkxNzU5OTkwMDY4MzM0NjIiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g4KSP4KSVIFZQTiDgpJXgpKjgpYfgpJXgpY3igI3gpLbgpKgg4KSs4KSo4KS+4KSo4KWHIOCkleCkviDgpKrgpY3gpLDgpK/gpL7gpLgg4KSV4KSw4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ3YXJuaW5nIiBtc2dpZD0iNTQ3MDc0MzU3NjY2MDE2MDA3OSI+IuCknOCkvuCksOClgCDgpLDgpJbgpJXgpLAsIOCkhuCkqiDgpI/gpKrgpY3gpLLgpL/gpJXgpYfgpLbgpKgg4KSV4KWLIOCkuOCkreClgCDgpKjgpYfgpJ/gpLXgpLDgpY3gpJUg4KSf4KWN4KSw4KWI4KSr4KS84KS/4KSVIOCkheCkteCksOCli+Ckp+Ckv+CkpCDgpJXgpLDgpKjgpYcg4KSV4KWAIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpYfgpKTgpYcg4KS54KWI4KSCLiAiPGI+IuCknOCkrCDgpKTgpJUg4KSG4KSq4KSV4KWLIOCkj+CkquCljeCksuCkv+CkleClh+CktuCkqCDgpKrgpLAg4KS14KS/4KS24KWN4KS14KS+4KS4IOCkqCDgpLngpYsg4KS44KWN4oCN4KS14KWA4KSV4KS+4KSwIOCkqCDgpJXgpLDgpYfgpIIuIjwvYj4iIOCkheCkqOCljeKAjeCkr+CkpeCkviwg4KSG4KSq4KSV4KWLIOCkheCkquCkqOClhyDgpKHgpYfgpJ/gpL4g4KSV4KWHIOCkuOCkvuCkpSDgpJXgpL/gpLjgpYAg4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkuOClieCkq+CkvOCljeCkn+CkteClh+Ckr+CksCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSb4KWH4KSh4KS84KSb4KS+4KSh4KS8IOCkleCkv+CkjyDgpJzgpL7gpKjgpYcg4KSV4KS+IOCknOCli+CkluCkv+CkriDgpLngpYsg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIyODg5MjI2NDA4NzY1ODEwMTczIj4i4KSu4KWB4KSd4KWHIOCkh+CkuCDgpI/gpKrgpY3gpLLgpL/gpJXgpYfgpLbgpKgg4KSq4KSwIOCkteCkv+CktuCljeCkteCkvuCkuCDgpLngpYguIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FybmluZyIgbXNnaWQ9IjU0NzA3NDM1NzY2NjAxNjAwNzkiPiLgpJzgpL7gpLDgpYAg4KSw4KSW4KSV4KSwLCDgpIbgpKog4KSQ4KSq4KWN4KS4ICDgpJXgpYsg4KS44KSt4KWAIOCkqOClh+Ckn+CkteCksOCljeCklSDgpJ/gpY3gpLDgpYjgpKvgpLzgpL/gpJUg4KSF4KS14KSw4KWL4KSn4KS/4KSkIOCkleCksOCkqOClhyDgpJXgpYAg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuClh+CkpOClhyDgpLngpYjgpIIuICI8Yj4i4KSc4KSsIOCkpOCklSDgpIbgpKrgpJXgpYsg4KSQ4KSq4KWN4KS4ICDgpKrgpLAg4KS14KS/4KS24KWN4KS14KS+4KS4IOCkqCDgpLngpYsg4KS44KWN4oCN4KS14KWA4KSV4KS+4KSwIOCkqCDgpJXgpLDgpYfgpIIuIjwvYj4iIOCkheCkqOCljeKAjeCkr+CkpeCkviwg4KSG4KSq4KSV4KWLIOCkheCkquCkqOClhyDgpKHgpYfgpJ/gpL4g4KSV4KWHIOCkuOCkvuCkpSDgpJXgpL/gpLjgpYAg4KSm4KWB4KSw4KWN4KSt4KS+4KS14KSo4KS+4KSq4KWC4KSw4KWN4KSjIOCkuOClieCkq+CkvOCljeCkn+CkteClh+Ckr+CksCDgpKbgpY3gpLXgpL7gpLDgpL4g4KSb4KWH4KSh4KS84KSb4KS+4KSh4KS8IOCkleCkv+CkjyDgpJzgpL7gpKjgpYcg4KSV4KS+IOCknOCli+CkluCkv+CkriDgpLngpYsg4KS44KSV4KSk4KS+IOCkueCliC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIyODg5MjI2NDA4NzY1ODEwMTczIj4i4KSu4KWB4KSd4KWHIOCkh+CkuCDgpJDgpKrgpY3gpLggIOCkquCksCDgpLXgpL/gpLbgpY3gpLXgpL7gpLgg4KS54KWILiI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9ImxlZ2FjeV90aXRsZSIgbXNnaWQ9IjE5MjkzNjI1MDA2NjU4MDk2NCI+IlZQTiDgpJXgpKjgpYfgpJXgpY3igI3gpJ8g4KS54KWIIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29uZmlndXJlIiBtc2dpZD0iNDkwNTUxODM3NTU3NDc5MTM3NSI+IuCkleClieCkqOCljeCkq+CkvOCkv+Ckl+CksCDgpJXgpLDgpYfgpIIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkaXNjb25uZWN0IiBtc2dpZD0iOTcxNDEyMzM4MzA0MjAwMDU2Ij4i4KSh4KS/4KS44KWN4oCN4KSV4KSo4KWH4KSV4KWN4oCN4KSfIOCkleCksOClh+CkgiI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1oeS1yQU0vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ZGI1NzkKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtaHktckFNL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0icHJvbXB0IiBtc2dpZD0iODM1OTE3NTk5OTAwNjgzMzQ2MiI+Ijx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPi3VqCDWg9W41oDVsdW41oLVtCDVpyDVvdW/1aXVstWu1aXVrCBWUE4g1a/VodW6OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Indhcm5pbmciIG1zZ2lkPSI1NDcwNzQzNTc2NjYwMTYwMDc5Ij4i1YfVodaA1bjWgtW21aHVr9Wl1azVuNW+YCDVpNW41oLWhCDVsNWh1b7VpdWs1b7VodWu1avVtiDVqdW41oLVtdWs1aHVv9aA1bjWgtW0INWl1oQg1a/VodW21aPVttWl1oHVttWl1awg1aHVtNWi1bjVstW7INaB1aHVttaB1aHVtdWr1bYg1bfVodaA1arVqDogIjxiPiLVhNWrINWo1bbVpNW41oLVttWl1oQsINWl1anVpSDVudWl1oQg1b7VvdW/1aHVsNW41oLVtCDVsNWh1b7VpdWs1b7VodWu1avVtjoiPC9iPiIg1LHVtdWs1aHVutWl1b0g1bzVq9W91a8g1a/VoSDVsdWl1oAg1b/VvtW11aHVrNW21aXWgNWoINW+1b/VodW21aPVpdWs1bjWgiDVvtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVr9W41bLVtNWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMjg4OTIyNjQwODc2NTgxMDE3MyI+ItS11b0g1b7VvdW/1aHVsNW41oLVtCDVpdW0INWh1bXVvSDVrtaA1aHVo9aA1avVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsZWdhY3lfdGl0bGUiIG1zZ2lkPSIxOTI5MzYyNTAwNjY1ODA5NjQiPiJWUE4t1agg1a/VodW61aHVr9aB1b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29uZmlndXJlIiBtc2dpZD0iNDkwNTUxODM3NTU3NDc5MTM3NSI+ItS/1aHWgNWj1aHVvtW41oDVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzY29ubmVjdCIgbXNnaWQ9Ijk3MTQxMjMzODMwNDIwMDA1NiI+ItSx1bbVu9Wh1b/VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vzc2lvbiIgbXNnaWQ9IjY0NzA2Mjg1NDk0NzM2NDEwMzAiPiLUsdW31a3VodW/1aHVt9aA1bvVodW2YCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImR1cmF0aW9uIiBtc2dpZD0iMzU4NDc4MjQ1OTkyODcxOTQzNSI+ItWP1ofVuNWy1bjWgtWp1bXVuNaC1bbVqNWdIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV90cmFuc21pdHRlZCIgbXNnaWQ9Ijc5ODgxNjc2NzI5ODIxOTkwNjEiPiLViNaC1bLVodaA1a/VvtWl1awg1afVnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfcmVjZWl2ZWQiIG1zZ2lkPSI0MDYyNzc2OTI5Mzc2MDY3ODIwIj4i1Y3Vv9Wh1oHVvtWl1awg1afVnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdmFsdWVfZm9ybWF0IiBtc2dpZD0iMjE5MjQ2NjU1NzgyNjg5NzU4MCI+Ijx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JTEkczwveGxpZmY6Zz4g1aLVodW11akgLyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJHM8L3hsaWZmOmc+INaD1aHVqdWl1akiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1oeS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1oeS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWRiNTc5Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWh5L3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0icHJvbXB0IiBtc2dpZD0iODM1OTE3NTk5OTAwNjgzMzQ2MiI+Ijx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPi3VqCDWg9W41oDVsdW41oLVtCDVpyDVvdW/1aXVstWu1aXVrCBWUE4g1a/VodW6OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Indhcm5pbmciIG1zZ2lkPSI1NDcwNzQzNTc2NjYwMTYwMDc5Ij4i1YfVodaA1bjWgtW21aHVr9Wl1azVuNW+YCDVpNW41oLWhCDVsNWh1b7VpdWs1b7VodWu1avVtiDVqdW41oLVtdWs1aHVv9aA1bjWgtW0INWl1oQg1a/VodW21aPVttWl1oHVttWl1awg1aHVtNWi1bjVstW7INaB1aHVttaB1aHVtdWr1bYg1bfVodaA1arVqDogIjxiPiLVhNWrINWo1bbVpNW41oLVttWl1oQsINWl1anVpSDVudWl1oQg1b7VvdW/1aHVsNW41oLVtCDVsNWh1b7VpdWs1b7VodWu1avVtjoiPC9iPiIg1LHVtdWs1aHVutWl1b0g1bzVq9W91a8g1a/VoSDVsdWl1oAg1b/VvtW11aHVrNW21aXWgNWoINW+1b/VodW21aPVpdWs1bjWgiDVvtW21aHVvdWh1oDVodaAINWw1aHVvtWl1azVvtWh1a7VttWl1oDVqyDVr9W41bLVtNWr1oE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMjg4OTIyNjQwODc2NTgxMDE3MyI+ItS11b0g1b7VvdW/1aHVsNW41oLVtCDVpdW0INWh1bXVvSDVrtaA1aHVo9aA1avVtjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsZWdhY3lfdGl0bGUiIG1zZ2lkPSIxOTI5MzYyNTAwNjY1ODA5NjQiPiJWUE4t1agg1a/VodW61aHVr9aB1b7VodWuINWnIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iY29uZmlndXJlIiBtc2dpZD0iNDkwNTUxODM3NTU3NDc5MTM3NSI+ItS/1aHWgNWj1aHVvtW41oDVpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzY29ubmVjdCIgbXNnaWQ9Ijk3MTQxMjMzODMwNDIwMDA1NiI+ItSx1bbVu9Wh1b/VpdWsIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vzc2lvbiIgbXNnaWQ9IjY0NzA2Mjg1NDk0NzM2NDEwMzAiPiLUsdW31a3VodW/1aHVt9aA1bvVodW2YCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImR1cmF0aW9uIiBtc2dpZD0iMzU4NDc4MjQ1OTkyODcxOTQzNSI+ItWP1ofVuNWy1bjWgtWp1bXVuNaC1bbVqNWdIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV90cmFuc21pdHRlZCIgbXNnaWQ9Ijc5ODgxNjc2NzI5ODIxOTkwNjEiPiLViNaC1bLVodaA1a/VvtWl1awg1afVnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfcmVjZWl2ZWQiIG1zZ2lkPSI0MDYyNzc2OTI5Mzc2MDY3ODIwIj4i1Y3Vv9Wh1oHVvtWl1awg1afVnSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdmFsdWVfZm9ybWF0IiBtc2dpZD0iMjE5MjQ2NjU1NzgyNjg5NzU4MCI+Ijx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JTEkczwveGxpZmY6Zz4g1aLVodW11akgLyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJHM8L3hsaWZmOmc+INaD1aHVqdWl1akiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1pdy9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1pdy9zdHJpbmdzLnhtbAppbmRleCBiYjg0NWVlLi4zMzVmNWU0IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtaXcvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWl3L3N0cmluZ3MueG1sCkBAIC0xNiwxMCArMTYsMTAgQEAKIAogPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCiAgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgotICAgIDxzdHJpbmcgbmFtZT0icHJvbXB0IiBtc2dpZD0iODM1OTE3NTk5OTAwNjgzMzQ2MiI+Ijx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiDXnteg16HXlCDXnNeZ16bXldeoINeX15nXkdeV16ggVlBOLiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9Indhcm5pbmciIG1zZ2lkPSI1NDcwNzQzNTc2NjYwMTYwMDc5Ij4i15DXnSDXqtee16nXmdeaLCDXkNeq15Qg157Xoteg15nXpyDXnNeZ15nXqdeV150g15TXqNep15DXlCDXnNei15vXkSDXkNeqINeb15wg15TXqteg15XXoteUINeR16jXqdeqLiAiPGI+IiDXkNecINeq16fXkdecINeQ15zXkCDXkNedINeb158g15DXqteUINeh15XXnteaINei15wg15TXmdeZ16nXldedLiAiPC9iPiIg15DXl9eo16osINeQ16rXlCDXl9eV16nXoyDXkNeqINeU16DXqteV16DXmdedINep15zXmiDXnNeh15vXoNeUINep15wg16TXkteZ16LXlCDXotecLdeZ15PXmSDXqteV15vXoNeUINeW15PXldeg15nXqi4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIyODg5MjI2NDA4NzY1ODEwMTczIj4i15DXoNeZINeh15XXnteaINei15wg15nXmdep15XXnSDXlteULiI8L3N0cmluZz4KLSAgICA8c3RyaW5nIG5hbWU9ImxlZ2FjeV90aXRsZSIgbXNnaWQ9IjE5MjkzNjI1MDA2NjU4MDk2NCI+IlZQTiDXnteX15XXkdeoIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0icHJvbXB0IiBtc2dpZD0iODM1OTE3NTk5OTAwNjgzMzQ2MiI+IuKAjzx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiDXnteg16HXlCDXnNeZ16bXldeoINeX15nXkdeV16ggVlBOLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Indhcm5pbmciIG1zZ2lkPSI1NDcwNzQzNTc2NjYwMTYwMDc5Ij4i15DXnSDXqtee16nXmdeaLCDXkNeq15Qg157Xoteg15nXpyDXnNeQ16TXnNeZ16fXpteZ15Qg15TXqNep15DXlCDXnNei15vXkSDXkNeqINeb15wg15TXqteg15XXoteUINeR16jXqdeqLiAiPGI+IiDXkNecINeq16fXkdecINeQ15zXkCDXkNedINeb158g15DXqteUINeh15XXnteaINei15wg15TXkNek15zXmden16bXmdeULiAiPC9iPiIg15DXl9eo16osINeQ16rXlCDXl9eV16nXoyDXkNeqINeU16DXqteV16DXmdedINep15zXmiDXnNeh15vXoNeUINep15wg16TXkteZ16LXlCDXotecLdeZ15PXmSDXqteV15vXoNeUINeW15PXldeg15nXqi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIyODg5MjI2NDA4NzY1ODEwMTczIj4i15DXoNeZINeh15XXnteaINei15wg15DXpNec15nXp9em15nXlCDXlteVLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxlZ2FjeV90aXRsZSIgbXNnaWQ9IjE5MjkzNjI1MDA2NjU4MDk2NCI+IuKAj1ZQTiDXnteX15XXkdeoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29uZmlndXJlIiBtc2dpZD0iNDkwNTUxODM3NTU3NDc5MTM3NSI+IteU15LXk9eoIjwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iZGlzY29ubmVjdCIgbXNnaWQ9Ijk3MTQxMjMzODMwNDIwMDA1NiI+Iteg16rXpyI8L3N0cmluZz4KICAgICA8c3RyaW5nIG5hbWU9InNlc3Npb24iIG1zZ2lkPSI2NDcwNjI4NTQ5NDczNjQxMDMwIj4i15TXpNei15zXlCI8L3N0cmluZz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1rYS1yR0Uvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2MGQzZjYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMta2EtckdFL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0icHJvbXB0IiBtc2dpZD0iODM1OTE3NTk5OTAwNjgzMzQ2MiI+Ijx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiDhg6rhg5Phg5jhg5rhg53hg5Hhg6EgVlBOIOGDmeGDkOGDleGDqOGDmOGDoOGDmOGDoSDhg6jhg5Thg6Xhg5vhg5zhg5Dhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FybmluZyIgbXNnaWQ9IjU0NzA3NDM1NzY2NjAxNjAwNzkiPiLhg5Lhg5Dhg5Lhg6Dhg6vhg5Thg5rhg5Thg5Hhg5jhg6Eg4YOo4YOU4YOb4YOX4YOu4YOV4YOU4YOV4YOQ4YOo4YOYLCDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Dhg6Eg4YOU4YOl4YOc4YOU4YOR4YOQIOGDpeGDoeGDlOGDmuGDqOGDmCDhg5Lhg5Dhg5Phg5Dhg6rhg5Thg5vhg6Phg5rhg5gg4YOb4YOd4YOc4YOQ4YOq4YOU4YOb4YOU4YOR4YOY4YOhIOGDm+GDneGDnuGDneGDleGDlOGDkeGDmOGDoSDhg6Hhg5Dhg6jhg6Phg5Dhg5rhg5Thg5Hhg5AuICI8Yj4i4YOQ4YOgIOGDkuGDkOGDnOGDkOGDkuGDoOGDq+GDneGDlywg4YOX4YOjIOGDkOGDoCDhg5Thg5zhg5Phg53hg5Hhg5jhg5cg4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOQ4YOhLiI8L2I+IiDhg6zhg5jhg5zhg5Dhg5Dhg6bhg5vhg5Phg5Thg5Ig4YOo4YOU4YOb4YOX4YOV4YOU4YOV4YOQ4YOo4YOYIOGDqOGDlOGDoeGDkOGDq+GDmuGDneGDkCDhg5vhg5Dhg5Xhg5zhg5Qg4YOe4YOg4YOd4YOS4YOg4YOQ4YOb4YOQ4YOhIOGDl+GDpeGDleGDlOGDnCDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5fhg5Dhg5wg4YOs4YOV4YOT4YOd4YOb4YOY4YOhIOGDoeGDkOGDqOGDo+GDkOGDmuGDlOGDkeGDkCDhg5vhg5jhg5Thg6rhg5Thg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMjg4OTIyNjQwODc2NTgxMDE3MyI+IuGDleGDlOGDnOGDk+GDneGDkeGDmCDhg5Dhg5sg4YOQ4YOe4YOa4YOY4YOZ4YOQ4YOq4YOY4YOQ4YOhLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxlZ2FjeV90aXRsZSIgbXNnaWQ9IjE5MjkzNjI1MDA2NjU4MDk2NCI+IlZQTiDhg5Phg5Dhg5nhg5Dhg5Xhg6jhg5jhg6Dhg5Thg5Hhg6Phg5rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmUiIG1zZ2lkPSI0OTA1NTE4Mzc1NTc0NzkxMzc1Ij4i4YOZ4YOd4YOc4YOk4YOY4YOS4YOj4YOg4YOQ4YOq4YOY4YOQIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzY29ubmVjdCIgbXNnaWQ9Ijk3MTQxMjMzODMwNDIwMDA1NiI+IuGDmeGDkOGDleGDqOGDmOGDoOGDmOGDoSDhg5Lhg5Dhg6zhg6fhg5Xhg5Thg6Lhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXNzaW9uIiBtc2dpZD0iNjQ3MDYyODU0OTQ3MzY0MTAzMCI+IuGDoeGDlOGDoeGDmOGDkDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkdXJhdGlvbiIgbXNnaWQ9IjM1ODQ3ODI0NTk5Mjg3MTk0MzUiPiLhg67hg5Dhg5zhg5Lhg6Dhg6vhg5rhg5jhg5Xhg53hg5Hhg5A6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV90cmFuc21pdHRlZCIgbXNnaWQ9Ijc5ODgxNjc2NzI5ODIxOTkwNjEiPiLhg5Lhg5Dhg5Lhg5bhg5Dhg5Xhg5zhg5jhg5rhg5g6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV9yZWNlaXZlZCIgbXNnaWQ9IjQwNjI3NzY5MjkzNzYwNjc4MjAiPiLhg5vhg5jhg6bhg5Thg5Hhg6Phg5rhg5g6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV92YWx1ZV9mb3JtYXQiIG1zZ2lkPSIyMTkyNDY2NTU3ODI2ODk3NTgwIj4iPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRzPC94bGlmZjpnPiDhg5Hhg5Dhg5jhg6Lhg5ggLyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJHM8L3hsaWZmOmc+IOGDnuGDkOGDmeGDlOGDouGDmCI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWthL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWthL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2MGQzZjYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMta2Evc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJwcm9tcHQiIG1zZ2lkPSI4MzU5MTc1OTk5MDA2ODMzNDYyIj4iPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IOGDquGDk+GDmOGDmuGDneGDkeGDoSBWUE4g4YOZ4YOQ4YOV4YOo4YOY4YOg4YOY4YOhIOGDqOGDlOGDpeGDm+GDnOGDkOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YXJuaW5nIiBtc2dpZD0iNTQ3MDc0MzU3NjY2MDE2MDA3OSI+IuGDkuGDkOGDkuGDoOGDq+GDlOGDmuGDlOGDkeGDmOGDoSDhg6jhg5Thg5vhg5fhg67hg5Xhg5Thg5Xhg5Dhg6jhg5gsIOGDkOGDnuGDmuGDmOGDmeGDkOGDquGDmOGDkOGDoSDhg5Thg6Xhg5zhg5Thg5Hhg5Ag4YOl4YOh4YOU4YOa4YOo4YOYIOGDkuGDkOGDk+GDkOGDquGDlOGDm+GDo+GDmuGDmCDhg5vhg53hg5zhg5Dhg6rhg5Thg5vhg5Thg5Hhg5jhg6Eg4YOb4YOd4YOe4YOd4YOV4YOU4YOR4YOY4YOhIOGDoeGDkOGDqOGDo+GDkOGDmuGDlOGDkeGDkC4gIjxiPiLhg5Dhg6Ag4YOS4YOQ4YOc4YOQ4YOS4YOg4YOr4YOd4YOXLCDhg5fhg6Mg4YOQ4YOgIOGDlOGDnOGDk+GDneGDkeGDmOGDlyDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Dhg6EuIjwvYj4iIOGDrOGDmOGDnOGDkOGDkOGDpuGDm+GDk+GDlOGDkiDhg6jhg5Thg5vhg5fhg5Xhg5Thg5Xhg5Dhg6jhg5gg4YOo4YOU4YOh4YOQ4YOr4YOa4YOd4YOQIOGDm+GDkOGDleGDnOGDlCDhg57hg6Dhg53hg5Lhg6Dhg5Dhg5vhg5Dhg6Eg4YOX4YOl4YOV4YOU4YOcIOGDm+GDneGDnOGDkOGDquGDlOGDm+GDlOGDkeGDl+GDkOGDnCDhg6zhg5Xhg5Phg53hg5vhg5jhg6Eg4YOh4YOQ4YOo4YOj4YOQ4YOa4YOU4YOR4YOQIOGDm+GDmOGDlOGDquGDlOGDoS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIyODg5MjI2NDA4NzY1ODEwMTczIj4i4YOV4YOU4YOc4YOT4YOd4YOR4YOYIOGDkOGDmyDhg5Dhg57hg5rhg5jhg5nhg5Dhg6rhg5jhg5Dhg6EuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGVnYWN5X3RpdGxlIiBtc2dpZD0iMTkyOTM2MjUwMDY2NTgwOTY0Ij4iVlBOIOGDk+GDkOGDmeGDkOGDleGDqOGDmOGDoOGDlOGDkeGDo+GDmuGDmOGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbmZpZ3VyZSIgbXNnaWQ9IjQ5MDU1MTgzNzU1NzQ3OTEzNzUiPiLhg5nhg53hg5zhg6Thg5jhg5Lhg6Phg6Dhg5Dhg6rhg5jhg5AiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNjb25uZWN0IiBtc2dpZD0iOTcxNDEyMzM4MzA0MjAwMDU2Ij4i4YOZ4YOQ4YOV4YOo4YOY4YOg4YOY4YOhIOGDkuGDkOGDrOGDp+GDleGDlOGDouGDkCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlc3Npb24iIG1zZ2lkPSI2NDcwNjI4NTQ5NDczNjQxMDMwIj4i4YOh4YOU4YOh4YOY4YOQOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImR1cmF0aW9uIiBtc2dpZD0iMzU4NDc4MjQ1OTkyODcxOTQzNSI+IuGDruGDkOGDnOGDkuGDoOGDq+GDmuGDmOGDleGDneGDkeGDkDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3RyYW5zbWl0dGVkIiBtc2dpZD0iNzk4ODE2NzY3Mjk4MjE5OTA2MSI+IuGDkuGDkOGDkuGDluGDkOGDleGDnOGDmOGDmuGDmDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3JlY2VpdmVkIiBtc2dpZD0iNDA2Mjc3NjkyOTM3NjA2NzgyMCI+IuGDm+GDmOGDpuGDlOGDkeGDo+GDmuGDmDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3ZhbHVlX2Zvcm1hdCIgbXNnaWQ9IjIxOTI0NjY1NTc4MjY4OTc1ODAiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiUxJHM8L3hsaWZmOmc+IOGDkeGDkOGDmOGDouGDmCAvIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JTIkczwveGxpZmY6Zz4g4YOe4YOQ4YOZ4YOU4YOi4YOYIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMta20tcktIL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzc5ZTI2Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWttLXJLSC9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InByb21wdCIgbXNnaWQ9IjgzNTkxNzU5OTkwMDY4MzM0NjIiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g4Z6W4Z+S4Z6Z4Z624Z6Z4Z624Z6Y4oCL4Z6U4Z6E4Z+S4Z6A4Z6+4Z6P4oCL4Z6A4Z624Z6a4oCL4Z6P4Z6X4Z+S4Z6H4Z624Z6U4Z+LIFZQTiDhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YXJuaW5nIiBtc2dpZD0iNTQ3MDc0MzU3NjY2MDE2MDA3OSI+IuGeiuGfhOGemeKAi+GelOGek+GfkuGejyDhnqLhn5LhnpPhnoDigIvhnoDhn4bhnpbhnrvhnoTigIvhnpXhn5Lhnorhnpvhn4vigIvhnp/hnrfhnpHhn5LhnpLhnrfigIvhnrLhn5LhnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpHhnpThn4vhnp/hn5LhnoDhnrbhno/hn4vigIvhnoXhnprhnrbhnoXhnprhno7hn43igIvhnpThno7hn5Lhnorhnrbhnonhn5QgIjxiPiLhnoDhnrvhn4bigIvhnpHhnpHhnr3hnpvigIsg4Z6b4Z674Z+H4oCL4Z6P4Z+S4Z6a4Z624oCL4Z6P4Z+C4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6R4Z674Z6A4oCL4Z6F4Z634Z6P4Z+S4Z6P4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644Z+UIjwvYj4iIOGelOGevuKAi+GemOGet+Gek+KAi+GeiuGevOGeheGfkuGek+GfgeGfh+KAi+GekeGfgSDhnqLhn5LhnpPhnoDigIvhnorhn4bhno7hnr7hnprhnoDhnrbhnprigIvhnpThn5LhnprhnojhnpjigIvhnpPhnrnhnoTigIvhnoLhn5Lhnprhn4Thn4fhnpDhn5LhnpPhnrbhnoDhn4sg4Z6K4Z+E4Z6Z4oCL4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4oCL4Z6a4Z6U4Z6f4Z+L4oCL4Z6i4Z+S4Z6T4Z6A4oCL4Z6U4Z624Z6T4oCL4Z6f4Z6Y4Z+S4Z6a4Z6U4Z6f4Z6Y4Z+S4Z6a4Z694Z6b4oCL4Z6K4Z+E4Z6Z4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6W4Z+S4Z6Z4Z624Z6U4Z624Z6R4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMjg4OTIyNjQwODc2NTgxMDE3MyI+IuGegeGfkuGeieGeu+GfhuKAi+GekeGeu+GegOGeheGet+Gej+GfkuGej+KAi+KAi+KAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+Gek+GfgeGfh+KAi+GflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxlZ2FjeV90aXRsZSIgbXNnaWQ9IjE5MjkzNjI1MDA2NjU4MDk2NCI+IuGelOGetuKAi+Gek+KAi+Gel+GfkuGeh+GetuGelOGfiyBWUE4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmUiIG1zZ2lkPSI0OTA1NTE4Mzc1NTc0NzkxMzc1Ij4i4Z6A4Z+G4Z6O4Z6P4Z+L4oCL4Z6a4Z6F4Z6T4Z624Z6f4Z6Y4Z+S4Z6W4Z+Q4Z6T4Z+S4Z6SIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzY29ubmVjdCIgbXNnaWQ9Ijk3MTQxMjMzODMwNDIwMDA1NiI+IuGeleGfkuGeiuGetuGeheGfiyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlc3Npb24iIG1zZ2lkPSI2NDcwNjI4NTQ5NDczNjQxMDMwIj4i4Z6f4Z6Y4Z+Q4Z6Z4Z+WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHVyYXRpb24iIG1zZ2lkPSIzNTg0NzgyNDU5OTI4NzE5NDM1Ij4i4Z6Q4Z634Z6a4Z6c4Z+B4Z6b4Z624Z+WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV90cmFuc21pdHRlZCIgbXNnaWQ9Ijc5ODgxNjc2NzI5ODIxOTkwNjEiPiLhnpThnrbhnpPigIvhnpXhn5Lhnonhnr7hn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3JlY2VpdmVkIiBtc2dpZD0iNDA2Mjc3NjkyOTM3NjA2NzgyMCI+IuGelOGetuGek+KAi+GekeGekeGeveGem+GfliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdmFsdWVfZm9ybWF0IiBtc2dpZD0iMjE5MjQ2NjU1NzgyNjg5NzU4MCI+Ijx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JTEkczwveGxpZmY6Zz4g4Z6U4Z+DIC8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRzPC94bGlmZjpnPiDhnoDhnonhn5LhnoXhnpThn4vigIvhnpbhn5Dhno/hn4zhnpjhnrbhnpMiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1rbS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1rbS9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzc5ZTI2Ci0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWttL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0icHJvbXB0IiBtc2dpZD0iODM1OTE3NTk5OTAwNjgzMzQ2MiI+Ijx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiDhnpbhn5LhnpnhnrbhnpnhnrbhnpjigIvhnpThnoThn5LhnoDhnr7hno/igIvhnoDhnrbhnprigIvhno/hnpfhn5LhnofhnrbhnpThn4sgVlBOIOGflCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Indhcm5pbmciIG1zZ2lkPSI1NDcwNzQzNTc2NjYwMTYwMDc5Ij4i4Z6K4Z+E4Z6Z4oCL4Z6U4Z6T4Z+S4Z6PIOGeouGfkuGek+GegOKAi+GegOGfhuGeluGeu+GehOKAi+GeleGfkuGeiuGem+Gfi+KAi+Gen+Get+GekeGfkuGekuGet+KAi+GesuGfkuGemeKAi+GegOGemOGfkuGemOGenOGet+GekuGeuOKAi+GekeGelOGfi+Gen+GfkuGegOGetuGej+Gfi+KAi+GeheGemuGetuGeheGemuGejuGfjeKAi+GelOGejuGfkuGeiuGetuGeieGflCAiPGI+IuGegOGeu+GfhuKAi+GekeGekeGeveGem+KAiyDhnpvhnrvhn4figIvhno/hn5LhnprhnrbigIvhno/hn4LigIvhnqLhn5LhnpPhnoDigIvhnpHhnrvhnoDigIvhnoXhnrfhno/hn5Lhno/igIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjhn5QiPC9iPiIg4Z6U4Z6+4oCL4Z6Y4Z634Z6T4oCL4Z6K4Z684Z6F4Z+S4Z6T4Z+B4Z+H4oCL4Z6R4Z+BIOGeouGfkuGek+GegOKAi+GeiuGfhuGejuGevuGemuGegOGetuGemuKAi+GelOGfkuGemuGeiOGemOKAi+Gek+GeueGehOKAi+GeguGfkuGemuGfhOGfh+GekOGfkuGek+GetuGegOGfiyDhnorhn4ThnpnigIvhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnigIvhnprhnpThnp/hn4vigIvhnqLhn5LhnpPhnoDigIvhnpThnrbhnpPigIvhnp/hnpjhn5LhnprhnpThnp/hnpjhn5Lhnprhnr3hnpvigIvhnorhn4ThnpnigIvhnoDhnpjhn5LhnpjhnpzhnrfhnpLhnrjigIvhnpbhn5LhnpnhnrbhnpThnrbhnpHhn5QiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIyODg5MjI2NDA4NzY1ODEwMTczIj4i4Z6B4Z+S4Z6J4Z674Z+G4oCL4Z6R4Z674Z6A4Z6F4Z634Z6P4Z+S4Z6P4oCL4oCL4oCL4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z634Z6S4Z644oCL4Z6T4Z+B4Z+H4oCL4Z+UIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGVnYWN5X3RpdGxlIiBtc2dpZD0iMTkyOTM2MjUwMDY2NTgwOTY0Ij4i4Z6U4Z624oCL4Z6T4oCL4Z6X4Z+S4Z6H4Z624Z6U4Z+LIFZQTiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbmZpZ3VyZSIgbXNnaWQ9IjQ5MDU1MTgzNzU1NzQ3OTEzNzUiPiLhnoDhn4bhno7hno/hn4vigIvhnprhnoXhnpPhnrbhnp/hnpjhn5Lhnpbhn5DhnpPhn5LhnpIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNjb25uZWN0IiBtc2dpZD0iOTcxNDEyMzM4MzA0MjAwMDU2Ij4i4Z6V4Z+S4Z6K4Z624Z6F4Z+LIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vzc2lvbiIgbXNnaWQ9IjY0NzA2Mjg1NDk0NzM2NDEwMzAiPiLhnp/hnpjhn5Dhnpnhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkdXJhdGlvbiIgbXNnaWQ9IjM1ODQ3ODI0NTk5Mjg3MTk0MzUiPiLhnpDhnrfhnprhnpzhn4Hhnpvhnrbhn5YiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3RyYW5zbWl0dGVkIiBtc2dpZD0iNzk4ODE2NzY3Mjk4MjE5OTA2MSI+IuGelOGetuGek+KAi+GeleGfkuGeieGevuGfliI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfcmVjZWl2ZWQiIG1zZ2lkPSI0MDYyNzc2OTI5Mzc2MDY3ODIwIj4i4Z6U4Z624Z6T4oCL4Z6R4Z6R4Z694Z6b4Z+WIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV92YWx1ZV9mb3JtYXQiIG1zZ2lkPSIyMTkyNDY2NTU3ODI2ODk3NTgwIj4iPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRzPC94bGlmZjpnPiDhnpThn4MgLyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJHM8L3hsaWZmOmc+IOGegOGeieGfkuGeheGelOGfi+KAi+GeluGfkOGej+GfjOGemOGetuGekyI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLWxvLXJMQS9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY1MjE2YgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1sby1yTEEvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJwcm9tcHQiIG1zZ2lkPSI4MzU5MTc1OTk5MDA2ODMzNDYyIj4iPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IOC6nuC6sOC6jeC6suC6jeC6suC6oeC6quC7ieC6suC6h+C6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iCBWUE4uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FybmluZyIgbXNnaWQ9IjU0NzA3NDM1NzY2NjAxNjAwNzkiPiLgupbgu4ngurLgupTgurPgu4DgupngurXgupngupXgu43gu4gsIOC7geC6oeC7iOC6meC6l+C7iOC6suC6meC6geC6s+C6peC6seC6h+C6iOC6sOC7g+C6q+C7ieC6quC6tOC6lOC7geC6geC7iOC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6mSDgu4PgupnguoHgurLgupngupTgurHguoHguoLgu43gu4nguqHgurngupnguojgurDguqXgurLguojguq3gupngu4Pgupngu4DguoTgurfguq3guoLgu4jgurLguo3gupfgurHguofgu53gurvgupQuICI8Yj4i4Lqi4LuI4Lqy4LqN4Lqt4Lqh4Lqu4Lqx4LqaIOC6meC6reC6geC6iOC6suC6geC6p+C7iOC6suC6l+C7iOC6suC6meC6iOC6sOC7gOC6iuC6t+C7iOC6reC7g+C6iOC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6lOC6seC7iOC6h+C6geC7iOC6suC6py4iPC9iPiIg4LqW4LuJ4Lqy4Lqa4LuN4LuI4LqU4Lqx4LuI4LqH4LqZ4Lqx4LuJ4LqZLCDgupfgu4jgurLgupnguojgurDgupXgurvguoHguqLgurngu4jgu4PgupnguoTguqfgurLguqHguqrgu4jgur3guocg4LqX4Lq14LuI4LqC4LuN4LuJ4Lqh4Lq54LqZ4LqC4Lqt4LqH4LqX4LuI4Lqy4LqZ4LqI4Lqw4LqW4Lq34LqB4LqE4Lq44LqB4LqE4Lqy4Lqh4LuC4LqU4LqN4LqK4Lqt4Lqa4LuB4Lqn4LqX4Lq14LuI4LuA4Lqb4Lqx4LqZ4Lqt4Lqx4LqZ4LqV4Lqw4Lql4Lqy4LqNLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2VwdCIgbXNnaWQ9IjI4ODkyMjY0MDg3NjU4MTAxNzMiPiLguoLgu4nguq3guo3gu4Dguorgurfgu4jguq3gu4Hguq3gurHguprgup7guqXgurTgu4DguoTguorgurHgupngupngurXgu4kuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGVnYWN5X3RpdGxlIiBtc2dpZD0iMTkyOTM2MjUwMDY2NTgwOTY0Ij4i4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuIIFZQTiDgu4HguqXgu4nguqciPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmUiIG1zZ2lkPSI0OTA1NTE4Mzc1NTc0NzkxMzc1Ij4i4Lqb4Lqx4Lqa4LqE4LuI4LqyIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzY29ubmVjdCIgbXNnaWQ9Ijk3MTQxMjMzODMwNDIwMDA1NiI+IuC6leC6seC6lOC6geC6suC6meC7gOC6iuC6t+C7iOC6reC6oeC6leC7jeC7iCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlc3Npb24iIG1zZ2lkPSI2NDcwNjI4NTQ5NDczNjQxMDMwIj4i4LuA4LqK4Lqq4LqK4Lqx4LqZOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImR1cmF0aW9uIiBtc2dpZD0iMzU4NDc4MjQ1OTkyODcxOTQzNSI+IuC7hOC6peC6jeC6sOC7gOC6p+C6peC6sjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3RyYW5zbWl0dGVkIiBtc2dpZD0iNzk4ODE2NzY3Mjk4MjE5OTA2MSI+IuC6quC6u+C7iOC6hzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3JlY2VpdmVkIiBtc2dpZD0iNDA2Mjc3NjkyOTM3NjA2NzgyMCI+IuC6ruC6seC6mjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3ZhbHVlX2Zvcm1hdCIgbXNnaWQ9IjIxOTI0NjY1NTc4MjY4OTc1ODAiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiUxJHM8L3hsaWZmOmc+IOC7hOC6miAvIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JTIkczwveGxpZmY6Zz4g4LuB4Lqe4Lqx4LqB4LuA4LqB4Lqx4LqUIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtbG8vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtbG8vc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY1MjE2YgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1sby9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InByb21wdCIgbXNnaWQ9IjgzNTkxNzU5OTkwMDY4MzM0NjIiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g4Lqe4Lqw4LqN4Lqy4LqN4Lqy4Lqh4Lqq4LuJ4Lqy4LqH4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuIIFZQTi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YXJuaW5nIiBtc2dpZD0iNTQ3MDc0MzU3NjY2MDE2MDA3OSI+IuC6luC7ieC6suC6lOC6s+C7gOC6meC6teC6meC6leC7jeC7iCwg4LuB4Lqh4LuI4LqZ4LqX4LuI4Lqy4LqZ4LqB4Lqz4Lql4Lqx4LqH4LqI4Lqw4LuD4Lqr4LuJ4Lqq4Lq04LqU4LuB4LqB4LuI4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZIOC7g+C6meC6geC6suC6meC6lOC6seC6geC6guC7jeC7ieC6oeC6ueC6meC6iOC6sOC6peC6suC6iOC6reC6meC7g+C6meC7gOC6hOC6t+C6reC6guC7iOC6suC6jeC6l+C6seC6h+C7neC6u+C6lC4gIjxiPiLguqLgu4jgurLguo3guq3guqHguq7gurHgupog4LqZ4Lqt4LqB4LqI4Lqy4LqB4Lqn4LuI4Lqy4LqX4LuI4Lqy4LqZ4LqI4Lqw4LuA4LqK4Lq34LuI4Lqt4LuD4LqI4LuB4Lqt4Lqx4Lqa4Lqe4Lql4Lq04LuA4LqE4LqK4Lqx4LqZ4LqU4Lqx4LuI4LqH4LqB4LuI4Lqy4LqnLiI8L2I+IiDgupbgu4ngurLguprgu43gu4jgupTgurHgu4jguofgupngurHgu4ngupksIOC6l+C7iOC6suC6meC6iOC6sOC6leC6u+C6geC6ouC6ueC7iOC7g+C6meC6hOC6p+C6suC6oeC6quC7iOC6veC6hyDgupfgurXgu4jguoLgu43gu4nguqHgurngupnguoLguq3guofgupfgu4jgurLgupnguojgurDgupbgurfguoHguoTgurjguoHguoTgurLguqHgu4LgupTguo3guorguq3guprgu4HguqfgupfgurXgu4jgu4DgupvgurHgupnguq3gurHgupngupXgurDguqXgurLguo0uIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMjg4OTIyNjQwODc2NTgxMDE3MyI+IuC6guC7ieC6reC6jeC7gOC6iuC6t+C7iOC6reC7geC6reC6seC6muC6nuC6peC6tOC7gOC6hOC6iuC6seC6meC6meC6teC7iS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsZWdhY3lfdGl0bGUiIG1zZ2lkPSIxOTI5MzYyNTAwNjY1ODA5NjQiPiLgu4Dguorgurfgu4jguq3guqHgupXgu43gu4ggVlBOIOC7geC6peC7ieC6pyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbmZpZ3VyZSIgbXNnaWQ9IjQ5MDU1MTgzNzU1NzQ3OTEzNzUiPiLgupvgurHguprguoTgu4jgurIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNjb25uZWN0IiBtc2dpZD0iOTcxNDEyMzM4MzA0MjAwMDU2Ij4i4LqV4Lqx4LqU4LqB4Lqy4LqZ4LuA4LqK4Lq34LuI4Lqt4Lqh4LqV4LuN4LuIIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vzc2lvbiIgbXNnaWQ9IjY0NzA2Mjg1NDk0NzM2NDEwMzAiPiLgu4DguorguqrguorgurHgupk6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHVyYXRpb24iIG1zZ2lkPSIzNTg0NzgyNDU5OTI4NzE5NDM1Ij4i4LuE4Lql4LqN4Lqw4LuA4Lqn4Lql4LqyOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdHJhbnNtaXR0ZWQiIG1zZ2lkPSI3OTg4MTY3NjcyOTgyMTk5MDYxIj4i4Lqq4Lq74LuI4LqHOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfcmVjZWl2ZWQiIG1zZ2lkPSI0MDYyNzc2OTI5Mzc2MDY3ODIwIj4i4Lqu4Lqx4LqaOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdmFsdWVfZm9ybWF0IiBtc2dpZD0iMjE5MjQ2NjU1NzgyNjg5NzU4MCI+Ijx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JTEkczwveGxpZmY6Zz4g4LuE4LqaIC8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRzPC94bGlmZjpnPiDgu4Hgup7gurHguoHgu4DguoHgurHgupQiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1tbi1yTU4vc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtbW4tck1OL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4N2JiNzMKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtbW4tck1OL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0icHJvbXB0IiBtc2dpZD0iODM1OTE3NTk5OTAwNjgzMzQ2MiI+Ijx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiBWUE4g0YXQvtC70LHQvtC70YLRi9CzINKv0q/RgdCz0Y3RhSDQs9GN0LYg0LHQsNC50L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YXJuaW5nIiBtc2dpZD0iNTQ3MDc0MzU3NjY2MDE2MDA3OSI+ItKu0YDQs9GN0LvQttC70q/Sr9C70YHRjdC90Y3RjdGAwqDRgtCwINCw0L/Qv9C70LjQutC10YjQvdC0INCx0q/RhSDRgdKv0LvQttGN0Y3QvdC40Lkg0YPRgNGB0LPQsNC70YvQsyDRgtCw0YHQu9Cw0YUg0LfTqdCy0YjTqdOp0YDQu9C40LnQsyDTqdCz06nRhSDQsdC+0LvQvdC+LiAiPGI+ItCQ0L/Qv9C40LrQtdGI0L0g0LHQsNGC0LDQu9Cz0LDQsNCz0q/QuSDQs9GN0LYg0q/Qt9GB0Y3QvSDRgtC+0YXQuNC+0LvQtNC+0LvQtCDQuyDQt9Op0LLRiNOp06nRgNGHINCx0L7Qu9C+0YDRhdCz0q/QuS4iPC9iPiIg0JHRg9GB0LDQtCDRgtC+0YXQuNC+0LvQtNC+0LvQtCDRgtCwINOp06nRgNC40LnQvSDQtNCw0YLQsNCzINGF0L7RgNGC0L7QuSDRgdC+0YTRgtCy0LXRgNC40LnQvSDQsNGO0YPQu9C0INOp0YDRgtOp0YUg0Y3RgNGB0LTRjdC70LjQudCzINKv0q/RgdCz0Y3QtiDQsdCw0LnQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2VwdCIgbXNnaWQ9IjI4ODkyMjY0MDg3NjU4MTAxNzMiPiLQkdC4INGN0L3RjSDQsNC/0L/Qu9C40LrQtdGI0L3QtCDQuNGC0LPRjdC2INCx0LDQudC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGVnYWN5X3RpdGxlIiBtc2dpZD0iMTkyOTM2MjUwMDY2NTgwOTY0Ij4iVlBOINGF0L7Qu9Cx0L7Qs9C00L7QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbmZpZ3VyZSIgbXNnaWQ9IjQ5MDU1MTgzNzU1NzQ3OTEzNzUiPiLQotC+0YXQuNGA0YPRg9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc2Nvbm5lY3QiIG1zZ2lkPSI5NzE0MTIzMzgzMDQyMDAwNTYiPiLQodCw0LvQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXNzaW9uIiBtc2dpZD0iNjQ3MDYyODU0OTQ3MzY0MTAzMCI+ItCh0LXRiNC9OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImR1cmF0aW9uIiBtc2dpZD0iMzU4NDc4MjQ1OTkyODcxOTQzNSI+ItKu0YDQs9GN0LvQttC70Y3RhSDRhdGD0LPQsNGG0LDQsDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3RyYW5zbWl0dGVkIiBtc2dpZD0iNzk4ODE2NzY3Mjk4MjE5OTA2MSI+ItCY0LvQs9GN0Y3RgdGN0L06Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV9yZWNlaXZlZCIgbXNnaWQ9IjQwNjI3NzY5MjkzNzYwNjc4MjAiPiLQpdKv0LvRjdGN0L0g0LDQstGB0LDQvToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3ZhbHVlX2Zvcm1hdCIgbXNnaWQ9IjIxOTI0NjY1NTc4MjY4OTc1ODAiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiUxJHM8L3hsaWZmOmc+INCx0LDQudGCLyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJHM8L3hsaWZmOmc+INC/0LDQutC10YIiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1tbi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1tbi9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODdiYjczCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLW1uL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0icHJvbXB0IiBtc2dpZD0iODM1OTE3NTk5OTAwNjgzMzQ2MiI+Ijx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiBWUE4g0YXQvtC70LHQvtC70YLRi9CzINKv0q/RgdCz0Y3RhSDQs9GN0LYg0LHQsNC50L3QsC4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YXJuaW5nIiBtc2dpZD0iNTQ3MDc0MzU3NjY2MDE2MDA3OSI+ItKu0YDQs9GN0LvQttC70q/Sr9C70YHRjdC90Y3RjdGAwqDRgtCwINCw0L/Qv9C70LjQutC10YjQvdC0INCx0q/RhSDRgdKv0LvQttGN0Y3QvdC40Lkg0YPRgNGB0LPQsNC70YvQsyDRgtCw0YHQu9Cw0YUg0LfTqdCy0YjTqdOp0YDQu9C40LnQsyDTqdCz06nRhSDQsdC+0LvQvdC+LiAiPGI+ItCQ0L/Qv9C40LrQtdGI0L0g0LHQsNGC0LDQu9Cz0LDQsNCz0q/QuSDQs9GN0LYg0q/Qt9GB0Y3QvSDRgtC+0YXQuNC+0LvQtNC+0LvQtCDQuyDQt9Op0LLRiNOp06nRgNGHINCx0L7Qu9C+0YDRhdCz0q/QuS4iPC9iPiIg0JHRg9GB0LDQtCDRgtC+0YXQuNC+0LvQtNC+0LvQtCDRgtCwINOp06nRgNC40LnQvSDQtNCw0YLQsNCzINGF0L7RgNGC0L7QuSDRgdC+0YTRgtCy0LXRgNC40LnQvSDQsNGO0YPQu9C0INOp0YDRgtOp0YUg0Y3RgNGB0LTRjdC70LjQudCzINKv0q/RgdCz0Y3QtiDQsdCw0LnQvdCwLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2VwdCIgbXNnaWQ9IjI4ODkyMjY0MDg3NjU4MTAxNzMiPiLQkdC4INGN0L3RjSDQsNC/0L/Qu9C40LrQtdGI0L3QtCDQuNGC0LPRjdC2INCx0LDQudC90LAuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGVnYWN5X3RpdGxlIiBtc2dpZD0iMTkyOTM2MjUwMDY2NTgwOTY0Ij4iVlBOINGF0L7Qu9Cx0L7Qs9C00L7QsiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbmZpZ3VyZSIgbXNnaWQ9IjQ5MDU1MTgzNzU1NzQ3OTEzNzUiPiLQotC+0YXQuNGA0YPRg9C70LDRhSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc2Nvbm5lY3QiIG1zZ2lkPSI5NzE0MTIzMzgzMDQyMDAwNTYiPiLQodCw0LvQs9Cw0YUiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXNzaW9uIiBtc2dpZD0iNjQ3MDYyODU0OTQ3MzY0MTAzMCI+ItCh0LXRiNC9OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImR1cmF0aW9uIiBtc2dpZD0iMzU4NDc4MjQ1OTkyODcxOTQzNSI+ItKu0YDQs9GN0LvQttC70Y3RhSDRhdGD0LPQsNGG0LDQsDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3RyYW5zbWl0dGVkIiBtc2dpZD0iNzk4ODE2NzY3Mjk4MjE5OTA2MSI+ItCY0LvQs9GN0Y3RgdGN0L06Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV9yZWNlaXZlZCIgbXNnaWQ9IjQwNjI3NzY5MjkzNzYwNjc4MjAiPiLQpdKv0LvRjdGN0L0g0LDQstGB0LDQvToiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3ZhbHVlX2Zvcm1hdCIgbXNnaWQ9IjIxOTI0NjY1NTc4MjY4OTc1ODAiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiUxJHM8L3hsaWZmOmc+INCx0LDQudGCLyA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJHM8L3hsaWZmOmc+INC/0LDQutC10YIiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1tcy1yTVkvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxN2ZiYWUKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtbXMtck1ZL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0icHJvbXB0IiBtc2dpZD0iODM1OTE3NTk5OTAwNjgzMzQ2MiI+Ijx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiBwZXJjdWJhYW4gdW50dWsgbWVtYnVhdCBzYW1idW5nYW4gVlBOLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Indhcm5pbmciIG1zZ2lkPSI1NDcwNzQzNTc2NjYwMTYwMDc5Ij4iRGVuZ2FuIG1lbmVydXNrYW4sIGFuZGEgbWVtYmVyaSBrZWl6aW5hbiBrZXBhZGEgYXBsaWthc2kgdW50dWsgbWVtaW50YXMgc2VtdWEgdHJhZmlrIHJhbmdrYWlhbi4gIjxiPiJKQU5HQU4gdGVyaW1hIG1lbGFpbmthbiBhbmRhIG1lbXBlcmNheWFpIGFwbGlrYXNpIGl0dS4iPC9iPiIgSmlrYSB0aWRhaywgYW5kYSBha2FuIG1lbmdhbGFtaSByaXNpa28gZGF0YSB0ZXJqZWphcyBvbGVoIHBlcmlzaWFuIGJlcm5pYXQgamFoYXQuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMjg4OTIyNjQwODc2NTgxMDE3MyI+IlNheWEgcGVyY2F5YWkgYXBsaWthc2kgaW5pLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxlZ2FjeV90aXRsZSIgbXNnaWQ9IjE5MjkzNjI1MDA2NjU4MDk2NCI+IlZQTiB0ZWxhaCBkaXNhbWJ1bmdrYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmUiIG1zZ2lkPSI0OTA1NTE4Mzc1NTc0NzkxMzc1Ij4iS29uZmlndXJhc2lrYW4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkaXNjb25uZWN0IiBtc2dpZD0iOTcxNDEyMzM4MzA0MjAwMDU2Ij4iUHV0dXNrYW4gc2FtYnVuZ2FuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vzc2lvbiIgbXNnaWQ9IjY0NzA2Mjg1NDk0NzM2NDEwMzAiPiJTZXNpOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImR1cmF0aW9uIiBtc2dpZD0iMzU4NDc4MjQ1OTkyODcxOTQzNSI+IlRlbXBvaDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3RyYW5zbWl0dGVkIiBtc2dpZD0iNzk4ODE2NzY3Mjk4MjE5OTA2MSI+IkRpaGFudGFyOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfcmVjZWl2ZWQiIG1zZ2lkPSI0MDYyNzc2OTI5Mzc2MDY3ODIwIj4iRGl0ZXJpbWE6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV92YWx1ZV9mb3JtYXQiIG1zZ2lkPSIyMTkyNDY2NTU3ODI2ODk3NTgwIj4iPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRzPC94bGlmZjpnPiBiYWl0IC8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRzPC94bGlmZjpnPiBiaW5na2lzYW4iPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1uYi9zdHJpbmdzLnhtbAppbmRleCBmNzE2NDIyLi42YmZmYzk4IDEwMDY0NAotLS0gYS9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtbmIvc3RyaW5ncy54bWwKKysrIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLW5iL3N0cmluZ3MueG1sCkBAIC0xNyw4ICsxNyw4IEBACiA8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKICAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CiAgICAgPHN0cmluZyBuYW1lPSJwcm9tcHQiIG1zZ2lkPSI4MzU5MTc1OTk5MDA2ODMzNDYyIj4iPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IGZvcnPDuGtlciDDpSBldGFibGVyZSBlbiBWUE4tdGlsa29ibGluZy4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJ3YXJuaW5nIiBtc2dpZD0iNTQ3MDc0MzU3NjY2MDE2MDA3OSI+IlZlZCDDpSBmb3J0c2V0dGUgZ2lyIGR1IGFwcGxpa2Fzam9uZW4gdGlsbGF0ZWxzZSB0aWwgw6UgZmFuZ2Ugb3BwIGFsbCBuZXR0dmVya3N0cmFmaWtrLiAiPGI+IklLS0UgZ29kdGEgbWVkIG1pbmRyZSBkdSBzdG9sZXIgcMOlIGFwcGxpa2Fzam9uZW4uIjwvYj4iIEVsbGVycyByaXNpa2VyZXIgZHUgYXQgZGF0YWVuZSBkaW5lIGtvbXByb21pdHRlcmVzIGF2IGVuIG9uZHNpbm5ldCBwcm9ncmFtdmFyZS4iPC9zdHJpbmc+Ci0gICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIyODg5MjI2NDA4NzY1ODEwMTczIj4iSmVnIHN0b2xlciBww6UgZGVubmUgYXBwbGlrYXNqb25lbi4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YXJuaW5nIiBtc2dpZD0iNTQ3MDc0MzU3NjY2MDE2MDA3OSI+IlZlZCDDpSBmb3J0c2V0dGUgZ2lyIGR1IGFwcGVuIHRpbGxhdGVsc2UgdGlsIMOlIGZhbmdlIG9wcCBhbGwgbmV0dHZlcmtzdHJhZmlray4gIjxiPiJJS0tFIGdvZHRhIG1lZCBtaW5kcmUgZHUgc3RvbGVyIHDDpSBhcHBlbi4iPC9iPiIgRWxsZXJzIHJpc2lrZXJlciBkdSBhdCBkYXRhZW5lIGRpbmUga29tcHJvbWl0dGVyZXMgYXYgZW4gb25kc2lubmV0IHByb2dyYW12YXJlLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2VwdCIgbXNnaWQ9IjI4ODkyMjY0MDg3NjU4MTAxNzMiPiJKZWcgc3RvbGVyIHDDpSBkZW5uZSBhcHBlbi4iPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJsZWdhY3lfdGl0bGUiIG1zZ2lkPSIxOTI5MzYyNTAwNjY1ODA5NjQiPiJWUE4gZXIgdGlsa29ibGV0Ijwvc3RyaW5nPgogICAgIDxzdHJpbmcgbmFtZT0iY29uZmlndXJlIiBtc2dpZD0iNDkwNTUxODM3NTU3NDc5MTM3NSI+IktvbmZpZ3VyZXIiPC9zdHJpbmc+CiAgICAgPHN0cmluZyBuYW1lPSJkaXNjb25uZWN0IiBtc2dpZD0iOTcxNDEyMzM4MzA0MjAwMDU2Ij4iS29ibGUgZnJhIjwvc3RyaW5nPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLW5lLXJOUC9zdHJpbmdzLnhtbCBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1uZS1yTlAvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDMyMTFjYgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1uZS1yTlAvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJwcm9tcHQiIG1zZ2lkPSI4MzU5MTc1OTk5MDA2ODMzNDYyIj4iPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IOCkj+CkieCkn+CkviBWUE4g4KSc4KSh4KS+4KSoIOCkuOCkv+CksOCljeCknOCkqOCkviDgpJfgpLDgpY3gpKjgpYcg4KSq4KWN4KSw4KSv4KS+4KS44KS54KSw4KWC4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FybmluZyIgbXNnaWQ9IjU0NzA3NDM1NzY2NjAxNjAwNzkiPiLgpIXgpJfgpL7gpKHgpYAg4KSs4KSi4KWH4KSwLCDgpKTgpKrgpL7gpIjgpIHgpLLgpYcg4KSv4KS4IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLjgpKzgpYgg4KSo4KWH4KSf4KS14KSw4KWN4KSV4KSV4KWLIOCkn+CljeCksOCkvuCkq+Ckv+CklSDgpIXgpLXgpLDgpYvgpKcg4KSX4KSw4KWN4KSoIOCkheCkqOClgeCkruCkpOCkvyDgpKbgpL/gpKjgpYEg4KS54KWB4KSB4KSm4KWI4KSb4KWkICI8Yj4i4KSk4KSq4KS+4KSI4KSB4KSy4KS+4KSIIOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CkleCliyDgpLXgpL/gpLbgpY3gpLXgpL7gpLgg4KSo4KSy4KS+4KSX4KWH4KS44KSu4KWN4KSuIOCkr+CkuOCksuCkvuCkiCDgpLjgpY3gpLXgpYDgpJXgpL7gpLAg4KSo4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWN4KWkIjwvYj4iIOCkheCkqOCljeCkr+CkpeCkviwg4KSk4KSq4KS+4KSI4KSBIOCkhuCkq+CljeCkqOCliyDgpKHgpYfgpJ/gpL4g4KSW4KSw4KS+4KSsIOCkuOCkq+CljeCkn+CkteClh+CksOCkpuCljeCkteCkvuCksOCkviDgpJzgpYvgpJbgpL/gpK7gpK7gpL4g4KSq4KSw4KWN4KSo4KWBIOCkueClgeCkqOClh+Ckm+ClpCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2VwdCIgbXNnaWQ9IjI4ODkyMjY0MDg3NjU4MTAxNzMiPiLgpK4g4KSv4KS4IOCkheCkqOClgeCkquCljeCksOCkr+Cli+Ckl+CksuCkvuCkiCDgpLXgpL/gpLbgpY3gpLXgpL7gpLgg4KSX4KSw4KWN4KSb4KWB4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGVnYWN5X3RpdGxlIiBtc2dpZD0iMTkyOTM2MjUwMDY2NTgwOTY0Ij4iVlBOIOCknOCli+CkoeCkv+Ckj+CkleCliyDgpJsiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmUiIG1zZ2lkPSI0OTA1NTE4Mzc1NTc0NzkxMzc1Ij4i4KSV4KSo4KWN4KSr4KS/4KSX4KSwIOCkl+CksOCljeCkqOClgeCkueCli+CkuOCljSI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc2Nvbm5lY3QiIG1zZ2lkPSI5NzE0MTIzMzgzMDQyMDAwNTYiPiLgpLXgpL/gpJrgpY3gpJvgpYfgpKbgpKgg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vzc2lvbiIgbXNnaWQ9IjY0NzA2Mjg1NDk0NzM2NDEwMzAiPiLgpLjgpKTgpY3gpLA6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHVyYXRpb24iIG1zZ2lkPSIzNTg0NzgyNDU5OTI4NzE5NDM1Ij4i4KSF4KS14KSn4KS/OiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdHJhbnNtaXR0ZWQiIG1zZ2lkPSI3OTg4MTY3NjcyOTgyMTk5MDYxIj4i4KSq4KSg4KS+4KSH4KSv4KWLOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfcmVjZWl2ZWQiIG1zZ2lkPSI0MDYyNzc2OTI5Mzc2MDY3ODIwIj4i4KSq4KWN4KSw4KS+4KSq4KWN4KSkIOCkreCkr+ClizoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3ZhbHVlX2Zvcm1hdCIgbXNnaWQ9IjIxOTI0NjY1NTc4MjY4OTc1ODAiPiI8eGxpZmY6ZyBpZD0iTlVNQkVSXzAiPiUxJHM8L3hsaWZmOmc+IOCkrOCkvuCkh+Ckn+CkueCksOClgiAvIDx4bGlmZjpnIGlkPSJOVU1CRVJfMSI+JTIkczwveGxpZmY6Zz4g4KSq4KWN4KSv4KS+4KSV4KWH4KSf4KS54KSw4KWCIjwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtbmUvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtbmUvc3RyaW5ncy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDMyMTFjYgotLS0gL2Rldi9udWxsCisrKyBiL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1uZS9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InByb21wdCIgbXNnaWQ9IjgzNTkxNzU5OTkwMDY4MzM0NjIiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g4KSP4KSJ4KSf4KS+IFZQTiDgpJzgpKHgpL7gpKgg4KS44KS/4KSw4KWN4KSc4KSo4KS+IOCkl+CksOCljeCkqOClhyDgpKrgpY3gpLDgpK/gpL7gpLjgpLngpLDgpYLgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YXJuaW5nIiBtc2dpZD0iNTQ3MDc0MzU3NjY2MDE2MDA3OSI+IuCkheCkl+CkvuCkoeClgCDgpKzgpKLgpYfgpLAsIOCkpOCkquCkvuCkiOCkgeCksuClhyDgpK/gpLgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkuOCkrOCliCDgpKjgpYfgpJ/gpLXgpLDgpY3gpJXgpJXgpYsg4KSf4KWN4KSw4KS+4KSr4KS/4KSVIOCkheCkteCksOCli+CkpyDgpJfgpLDgpY3gpKgg4KSF4KSo4KWB4KSu4KSk4KS/IOCkpuCkv+CkqOClgSDgpLngpYHgpIHgpKbgpYjgpJvgpaQgIjxiPiLgpKTgpKrgpL7gpIjgpIHgpLLgpL7gpIgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSV4KWLIOCkteCkv+CktuCljeCkteCkvuCkuCDgpKjgpLLgpL7gpJfgpYfgpLjgpK7gpY3gpK4g4KSv4KS44KSy4KS+4KSIIOCkuOCljeCkteClgOCkleCkvuCksCDgpKjgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY3gpaQiPC9iPiIg4KSF4KSo4KWN4KSv4KSl4KS+LCDgpKTgpKrgpL7gpIjgpIEg4KSG4KSr4KWN4KSo4KWLIOCkoeClh+Ckn+CkviDgpJbgpLDgpL7gpKwg4KS44KSr4KWN4KSf4KS14KWH4KSw4KSm4KWN4KS14KS+4KSw4KS+IOCknOCli+CkluCkv+CkruCkruCkviDgpKrgpLDgpY3gpKjgpYEg4KS54KWB4KSo4KWH4KSb4KWkIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMjg4OTIyNjQwODc2NTgxMDE3MyI+IuCkriDgpK/gpLgg4KSF4KSo4KWB4KSq4KWN4KSw4KSv4KWL4KSX4KSy4KS+4KSIIOCkteCkv+CktuCljeCkteCkvuCkuCDgpJfgpLDgpY3gpJvgpYHgpaQiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJsZWdhY3lfdGl0bGUiIG1zZ2lkPSIxOTI5MzYyNTAwNjY1ODA5NjQiPiJWUE4g4KSc4KWL4KSh4KS/4KSP4KSV4KWLIOCkmyI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbmZpZ3VyZSIgbXNnaWQ9IjQ5MDU1MTgzNzU1NzQ3OTEzNzUiPiLgpJXgpKjgpY3gpKvgpL/gpJfgpLAg4KSX4KSw4KWN4KSo4KWB4KS54KWL4KS44KWNIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzY29ubmVjdCIgbXNnaWQ9Ijk3MTQxMjMzODMwNDIwMDA1NiI+IuCkteCkv+CkmuCljeCkm+Clh+CkpuCkqCDgpJfgpLDgpY3gpKjgpYHgpLngpYvgpLjgpY0iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXNzaW9uIiBtc2dpZD0iNjQ3MDYyODU0OTQ3MzY0MTAzMCI+IuCkuOCkpOCljeCksDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkdXJhdGlvbiIgbXNnaWQ9IjM1ODQ3ODI0NTk5Mjg3MTk0MzUiPiLgpIXgpLXgpKfgpL86Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV90cmFuc21pdHRlZCIgbXNnaWQ9Ijc5ODgxNjc2NzI5ODIxOTkwNjEiPiLgpKrgpKDgpL7gpIfgpK/gpYs6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV9yZWNlaXZlZCIgbXNnaWQ9IjQwNjI3NzY5MjkzNzYwNjc4MjAiPiLgpKrgpY3gpLDgpL7gpKrgpY3gpKQg4KSt4KSv4KWLOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdmFsdWVfZm9ybWF0IiBtc2dpZD0iMjE5MjQ2NjU1NzgyNjg5NzU4MCI+Ijx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JTEkczwveGxpZmY6Zz4g4KSs4KS+4KSH4KSf4KS54KSw4KWCIC8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRzPC94bGlmZjpnPiDgpKrgpY3gpK/gpL7gpJXgpYfgpJ/gpLngpLDgpYIiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL1ZwbkRpYWxvZ3MvcmVzL3ZhbHVlcy1zaS1yTEsvc3RyaW5ncy54bWwgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtc2ktckxLL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3ZTBlZDYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtc2ktckxLL3N0cmluZ3MueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCisgICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAtLT4KKworPHJlc291cmNlcyB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCisgICAgeG1sbnM6eGxpZmY9InVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiPgorICAgIDxzdHJpbmcgbmFtZT0icHJvbXB0IiBtc2dpZD0iODM1OTE3NTk5OTAwNjgzMzQ2MiI+IlZQTiDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgtq3gt4/gt4Dgtrrgtprgt4og4LeD4LeQ4Lav4LeT4La44LanIDx4bGlmZjpnIGlkPSJBUFAiPiVzPC94bGlmZjpnPiDgtovgtq3gt4rgt4Pgt4/gt4Qg4Laa4La74La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9Indhcm5pbmciIG1zZ2lkPSI1NDcwNzQzNTc2NjYwMTYwMDc5Ij4i4LaJ4Lav4LeS4La74LeS4La64LanIOC2uuC3j+C2uOC3meC2seC3iiwg4LeD4LeS4La64La94LeUIOC2ouC3j+C2vSDgtq3gtq/gtrbgtq/gtrog4La44Lac4Lav4LeTIOC2heC2veC3iuC2veC3jyDgtpzgt5DgtrHgt5Pgtrjgtqcg4LaU4La2IOC2uuC3meC2r+C3lOC2uOC2pyDgtoXgt4Dgt4Pgtrsg4Lav4LeZ4La64LeSLiAiPGI+IuC2lOC2tiDgtrrgt5ngtq/gt5Tgtrgg4LeA4LeS4LeB4LeK4LeA4LeP4LeDIOC2seC3nOC2muC2u+C2uuC3kiDgtrHgtrjgt4og4La04LeS4LeF4LeS4Lac4Lax4LeK4LaxIOC2keC2tOC3jyI8L2I+IiDgtrHgt5Dgtq3gt4Tgt5zgtq3gt4osIOC2heC2seC3kuC3guC3iuC2pyDgtrjgt5jgtq/gt5Tgtprgt4/gtoLgtpzgtrrgtprgt4og4La44Laf4LeS4Lax4LeKIOC2lOC2tuC2nOC3miDgtq/gtq3gt4rgtq0g4Lax4LeS4La74LeP4LeA4La74Lar4La6IOC3gOC3k+C2uOC3miDgtoXgt4Dgtq/gt4/gtrHgtrjgtprgt4og4LaU4La24LanIOC2h+C2rS4iPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJhY2NlcHQiIG1zZ2lkPSIyODg5MjI2NDA4NzY1ODEwMTczIj4i4La44LeZ4La4IOC2uuC3meC2r+C3lOC2uCDgtrjgtqcg4LeA4LeS4LeB4LeK4LeA4LeP4LeD4La64LeSLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxlZ2FjeV90aXRsZSIgbXNnaWQ9IjE5MjkzNjI1MDA2NjU4MDk2NCI+IlZQTiDgt4Pgtrjgt4rgtrbgtrHgt4rgtrDgt5Lgtq3gtrrgt5IiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmUiIG1zZ2lkPSI0OTA1NTE4Mzc1NTc0NzkxMzc1Ij4i4LeA4LeS4Lax4LeK4oCN4La64LeP4LeDIOC2muC3kuC2u+C3k+C2uCI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRpc2Nvbm5lY3QiIG1zZ2lkPSI5NzE0MTIzMzgzMDQyMDAwNTYiPiLgt4Dgt5Lgt4PgtrHgt4rgtrDgt5Ig4Laa4La74Lax4LeK4LaxIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ic2Vzc2lvbiIgbXNnaWQ9IjY0NzA2Mjg1NDk0NzM2NDEwMzAiPiLgt4Pgt5Dgt4Pgt5Lgtro6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHVyYXRpb24iIG1zZ2lkPSIzNTg0NzgyNDU5OTI4NzE5NDM1Ij4i4Laa4LeP4La9IOC3g+C3k+C2uOC3j+C3gDoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3RyYW5zbWl0dGVkIiBtc2dpZD0iNzk4ODE2NzY3Mjk4MjE5OTA2MSI+IuC2uuC3gOC2sSDgtr3gtq86Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV9yZWNlaXZlZCIgbXNnaWQ9IjQwNjI3NzY5MjkzNzYwNjc4MjAiPiLgtr3gt5Dgtrbgt5Lgtqvgt5I6Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV92YWx1ZV9mb3JtYXQiIG1zZ2lkPSIyMTkyNDY2NTU3ODI2ODk3NTgwIj4i4La24La64LeS4LanIDx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JTEkczwveGxpZmY6Zz4gLyDgtrTgt5Dgtprgt5Dgtqfgt4rgtqfgt5QgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRzPC94bGlmZjpnPiI8L3N0cmluZz4KKzwvcmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLXNpL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLXNpL3N0cmluZ3MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3ZTBlZDYKLS0tIC9kZXYvbnVsbAorKysgYi9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtc2kvc3RyaW5ncy54bWwKQEAgLTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKKyAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIC0tPgorCis8cmVzb3VyY2VzIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIKKyAgICB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+CisgICAgPHN0cmluZyBuYW1lPSJwcm9tcHQiIG1zZ2lkPSI4MzU5MTc1OTk5MDA2ODMzNDYyIj4iVlBOIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC2reC3j+C3gOC2uuC2muC3iiDgt4Pgt5Dgtq/gt5PgtrjgtqcgPHhsaWZmOmcgaWQ9IkFQUCI+JXM8L3hsaWZmOmc+IOC2i+C2reC3iuC3g+C3j+C3hCDgtprgtrvgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0id2FybmluZyIgbXNnaWQ9IjU0NzA3NDM1NzY2NjAxNjAwNzkiPiLgtongtq/gt5Lgtrvgt5Lgtrrgtqcg4La64LeP4La44LeZ4Lax4LeKLCDgt4Pgt5Lgtrrgtr3gt5Qg4Lai4LeP4La9IOC2reC2r+C2tuC2r+C2uiDgtrjgtpzgtq/gt5Mg4LaF4La94LeK4La94LePIOC2nOC3kOC2seC3k+C2uOC2pyDgtpTgtrYg4La64LeZ4Lav4LeU4La44LanIOC2heC3gOC3g+C2uyDgtq/gt5ngtrrgt5IuICI8Yj4i4LaU4La2IOC2uuC3meC2r+C3lOC2uCDgt4Dgt5Lgt4Hgt4rgt4Dgt4/gt4Mg4Lax4Lec4Laa4La74La64LeSIOC2seC2uOC3iiDgtrTgt5Lgt4Xgt5LgtpzgtrHgt4rgtrEg4LaR4La04LePIjwvYj4iIOC2seC3kOC2reC3hOC3nOC2reC3iiwg4LaF4Lax4LeS4LeC4LeK4LanIOC2uOC3mOC2r+C3lOC2muC3j+C2guC2nOC2uuC2muC3iiDgtrjgtp/gt5LgtrHgt4og4LaU4La24Lac4LeaIOC2r+C2reC3iuC2rSDgtrHgt5Lgtrvgt4/gt4Dgtrvgtqvgtrog4LeA4LeT4La44LeaIOC2heC3gOC2r+C3j+C2seC2uOC2muC3iiDgtpTgtrbgtqcg4LaH4LatLiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImFjY2VwdCIgbXNnaWQ9IjI4ODkyMjY0MDg3NjU4MTAxNzMiPiLgtrjgt5ngtrgg4La64LeZ4Lav4LeU4La4IOC2uOC2pyDgt4Dgt5Lgt4Hgt4rgt4Dgt4/gt4Pgtrrgt5IuIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0ibGVnYWN5X3RpdGxlIiBtc2dpZD0iMTkyOTM2MjUwMDY2NTgwOTY0Ij4iVlBOIOC3g+C2uOC3iuC2tuC2seC3iuC2sOC3kuC2reC2uuC3kiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImNvbmZpZ3VyZSIgbXNnaWQ9IjQ5MDU1MTgzNzU1NzQ3OTEzNzUiPiLgt4Dgt5LgtrHgt4rigI3gtrrgt4/gt4Mg4Laa4LeS4La74LeT4La4Ijwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzY29ubmVjdCIgbXNnaWQ9Ijk3MTQxMjMzODMwNDIwMDA1NiI+IuC3gOC3kuC3g+C2seC3iuC2sOC3kiDgtprgtrvgtrHgt4rgtrEiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJzZXNzaW9uIiBtc2dpZD0iNjQ3MDYyODU0OTQ3MzY0MTAzMCI+IuC3g+C3kOC3g+C3kuC2ujoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkdXJhdGlvbiIgbXNnaWQ9IjM1ODQ3ODI0NTk5Mjg3MTk0MzUiPiLgtprgt4/gtr0g4LeD4LeT4La44LeP4LeAOiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdHJhbnNtaXR0ZWQiIG1zZ2lkPSI3OTg4MTY3NjcyOTgyMTk5MDYxIj4i4La64LeA4LaxIOC2veC2rzoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3JlY2VpdmVkIiBtc2dpZD0iNDA2Mjc3NjkyOTM3NjA2NzgyMCI+IuC2veC3kOC2tuC3kuC2q+C3kjoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3ZhbHVlX2Zvcm1hdCIgbXNnaWQ9IjIxOTI0NjY1NTc4MjY4OTc1ODAiPiLgtrbgtrrgt5LgtqcgPHhsaWZmOmcgaWQ9Ik5VTUJFUl8wIj4lMSRzPC94bGlmZjpnPiAvIOC2tOC3kOC2muC3kOC2p+C3iuC2p+C3lCA8eGxpZmY6ZyBpZD0iTlVNQkVSXzEiPiUyJHM8L3hsaWZmOmc+Ijwvc3RyaW5nPgorPC9yZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9wYWNrYWdlcy9WcG5EaWFsb2dzL3Jlcy92YWx1ZXMtemgtckhLL3N0cmluZ3MueG1sIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjI1ZDQxCi0tLSAvZGV2L251bGwKKysrIGIvcGFja2FnZXMvVnBuRGlhbG9ncy9yZXMvdmFsdWVzLXpoLXJISy9zdHJpbmdzLnhtbApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgLS0+CisKKzxyZXNvdXJjZXMgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIgorICAgIHhtbG5zOnhsaWZmPSJ1cm46b2FzaXM6bmFtZXM6dGM6eGxpZmY6ZG9jdW1lbnQ6MS4yIj4KKyAgICA8c3RyaW5nIG5hbWU9InByb21wdCIgbXNnaWQ9IjgzNTkxNzU5OTkwMDY4MzM0NjIiPiI8eGxpZmY6ZyBpZD0iQVBQIj4lczwveGxpZmY6Zz4g5ZiX6Kmm5bu656uLIFZQTiDpgKPnt5rjgIIiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJ3YXJuaW5nIiBtc2dpZD0iNTQ3MDc0MzU3NjY2MDE2MDA3OSI+IuWmguaenOe5vOe6jOmAsuihjO+8jOWNs+ihqOekuuaCqOWFgeioseipsuaHieeUqOeoi+W8j+aUlOaIquaJgOaciee2sue1oea1gemHj+OAgiI8Yj4i6Zmk6Z2e5oKo5L+h5Lu76Kmy5oeJ55So56iL5byP77yM5ZCm5YmH5LiN5oeJ5o6l5Y+X44CCIjwvYj4i5LiN54S25bCx5pyD6K6T5oKo55qE6LOH5paZ6Zm35pa86YGt5oOh5oSP56iL5byP5YWl5L6155qE6aKo6Zqq44CCIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iYWNjZXB0IiBtc2dpZD0iMjg4OTIyNjQwODc2NTgxMDE3MyI+IuaIkeS/oeS7u+mAmeWAi+aHieeUqOeoi+W8j+OAgiI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImxlZ2FjeV90aXRsZSIgbXNnaWQ9IjE5MjkzNjI1MDA2NjU4MDk2NCI+IlZQTiDlt7LpgKPnt5oiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJjb25maWd1cmUiIG1zZ2lkPSI0OTA1NTE4Mzc1NTc0NzkxMzc1Ij4i6Kit5a6aIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGlzY29ubmVjdCIgbXNnaWQ9Ijk3MTQxMjMzODMwNDIwMDA1NiI+IuS4reaWt+mAo+e3miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9InNlc3Npb24iIG1zZ2lkPSI2NDcwNjI4NTQ5NDczNjQxMDMwIj4i5pmC5q6177yaIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZHVyYXRpb24iIG1zZ2lkPSIzNTg0NzgyNDU5OTI4NzE5NDM1Ij4i5oyB57qM5pmC6ZaT77iwIjwvc3RyaW5nPgorICAgIDxzdHJpbmcgbmFtZT0iZGF0YV90cmFuc21pdHRlZCIgbXNnaWQ9Ijc5ODgxNjc2NzI5ODIxOTkwNjEiPiLlt7LlgrPpgIHvvJoiPC9zdHJpbmc+CisgICAgPHN0cmluZyBuYW1lPSJkYXRhX3JlY2VpdmVkIiBtc2dpZD0iNDA2Mjc3NjkyOTM3NjA2NzgyMCI+IuW3suaOpeaUtu+8miI8L3N0cmluZz4KKyAgICA8c3RyaW5nIG5hbWU9ImRhdGFfdmFsdWVfZm9ybWF0IiBtc2dpZD0iMjE5MjQ2NjU1NzgyNjg5NzU4MCI+Ijx4bGlmZjpnIGlkPSJOVU1CRVJfMCI+JTEkczwveGxpZmY6Zz4g5L2N5YWD57WEIC8gPHhsaWZmOmcgaWQ9Ik5VTUJFUl8xIj4lMiRzPC94bGlmZjpnPiDlsIHljIUiPC9zdHJpbmc+Cis8L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3BvbGljeS9zcmMvY29tL2FuZHJvaWQvaW50ZXJuYWwvcG9saWN5L2ltcGwvUGhvbmVXaW5kb3cuamF2YSBiL3BvbGljeS9zcmMvY29tL2FuZHJvaWQvaW50ZXJuYWwvcG9saWN5L2ltcGwvUGhvbmVXaW5kb3cuamF2YQppbmRleCA0NGZjMWY4Li41ZTYyZmJmIDEwMDY0NAotLS0gYS9wb2xpY3kvc3JjL2NvbS9hbmRyb2lkL2ludGVybmFsL3BvbGljeS9pbXBsL1Bob25lV2luZG93LmphdmEKKysrIGIvcG9saWN5L3NyYy9jb20vYW5kcm9pZC9pbnRlcm5hbC9wb2xpY3kvaW1wbC9QaG9uZVdpbmRvdy5qYXZhCkBAIC0yMiw2ICsyMiwxMCBAQAogaW1wb3J0IHN0YXRpYyBhbmRyb2lkLnZpZXcuVmlld0dyb3VwLkxheW91dFBhcmFtcy5XUkFQX0NPTlRFTlQ7CiBpbXBvcnQgc3RhdGljIGFuZHJvaWQudmlldy5XaW5kb3dNYW5hZ2VyLkxheW91dFBhcmFtcy4qOwogCitpbXBvcnQgYW5kcm9pZC50cmFuc2l0aW9uLlNjZW5lOworaW1wb3J0IGFuZHJvaWQudHJhbnNpdGlvbi5UcmFuc2l0aW9uOworaW1wb3J0IGFuZHJvaWQudHJhbnNpdGlvbi5UcmFuc2l0aW9uSW5mbGF0ZXI7CitpbXBvcnQgYW5kcm9pZC50cmFuc2l0aW9uLlRyYW5zaXRpb25NYW5hZ2VyOwogaW1wb3J0IGFuZHJvaWQudmlldy5WaWV3Q29uZmlndXJhdGlvbjsKIAogaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLlI7CkBAIC0xNDYsNiArMTUwLDggQEAKICAgICBwcml2YXRlIEFjdGlvbk1lbnVQcmVzZW50ZXJDYWxsYmFjayBtQWN0aW9uTWVudVByZXNlbnRlckNhbGxiYWNrOwogICAgIHByaXZhdGUgUGFuZWxNZW51UHJlc2VudGVyQ2FsbGJhY2sgbVBhbmVsTWVudVByZXNlbnRlckNhbGxiYWNrOwogCisgICAgcHJpdmF0ZSBUcmFuc2l0aW9uTWFuYWdlciBtVHJhbnNpdGlvbk1hbmFnZXI7CisKICAgICAvLyBUaGUgaWNvbiByZXNvdXJjZSBoYXMgYmVlbiBleHBsaWNpdGx5IHNldCBlbHNld2hlcmUKICAgICAvLyBhbmQgc2hvdWxkIG5vdCBiZSBvdmVyd3JpdHRlbiB3aXRoIGEgZGVmYXVsdC4KICAgICBzdGF0aWMgZmluYWwgaW50IEZMQUdfUkVTT1VSQ0VfU0VUX0lDT04gPSAxIDw8IDA7CkBAIC0yODIsMTIgKzI4OCwyMiBAQAogCiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIHZvaWQgc2V0Q29udGVudFZpZXcoaW50IGxheW91dFJlc0lEKSB7CisgICAgICAgIC8vIE5vdGU6IEZFQVRVUkVfQ09OVEVOVF9UUkFOU0lUSU9OUyBtYXkgYmUgc2V0IGluIHRoZSBwcm9jZXNzIG9mIGluc3RhbGxpbmcgdGhlIHdpbmRvdworICAgICAgICAvLyBkZWNvciwgd2hlbiB0aGVtZSBhdHRyaWJ1dGVzIGFuZCB0aGUgbGlrZSBhcmUgY3J5c3RhbGl6ZWQuIERvIG5vdCBjaGVjayB0aGUgZmVhdHVyZQorICAgICAgICAvLyBiZWZvcmUgdGhpcyBoYXBwZW5zLgogICAgICAgICBpZiAobUNvbnRlbnRQYXJlbnQgPT0gbnVsbCkgewogICAgICAgICAgICAgaW5zdGFsbERlY29yKCk7Ci0gICAgICAgIH0gZWxzZSB7CisgICAgICAgIH0gZWxzZSBpZiAoIWhhc0ZlYXR1cmUoRkVBVFVSRV9DT05URU5UX1RSQU5TSVRJT05TKSkgewogICAgICAgICAgICAgbUNvbnRlbnRQYXJlbnQucmVtb3ZlQWxsVmlld3MoKTsKICAgICAgICAgfQotICAgICAgICBtTGF5b3V0SW5mbGF0ZXIuaW5mbGF0ZShsYXlvdXRSZXNJRCwgbUNvbnRlbnRQYXJlbnQpOworCisgICAgICAgIGlmIChoYXNGZWF0dXJlKEZFQVRVUkVfQ09OVEVOVF9UUkFOU0lUSU9OUykpIHsKKyAgICAgICAgICAgIGZpbmFsIFNjZW5lIG5ld1NjZW5lID0gU2NlbmUuZ2V0U2NlbmVGb3JMYXlvdXQobUNvbnRlbnRQYXJlbnQsIGxheW91dFJlc0lELAorICAgICAgICAgICAgICAgICAgICBnZXRDb250ZXh0KCkpOworICAgICAgICAgICAgbVRyYW5zaXRpb25NYW5hZ2VyLnRyYW5zaXRpb25UbyhuZXdTY2VuZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtTGF5b3V0SW5mbGF0ZXIuaW5mbGF0ZShsYXlvdXRSZXNJRCwgbUNvbnRlbnRQYXJlbnQpOworICAgICAgICB9CiAgICAgICAgIGZpbmFsIENhbGxiYWNrIGNiID0gZ2V0Q2FsbGJhY2soKTsKICAgICAgICAgaWYgKGNiICE9IG51bGwgJiYgIWlzRGVzdHJveWVkKCkpIHsKICAgICAgICAgICAgIGNiLm9uQ29udGVudENoYW5nZWQoKTsKQEAgLTMwMSwxMiArMzE3LDIyIEBACiAKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCBzZXRDb250ZW50VmlldyhWaWV3IHZpZXcsIFZpZXdHcm91cC5MYXlvdXRQYXJhbXMgcGFyYW1zKSB7CisgICAgICAgIC8vIE5vdGU6IEZFQVRVUkVfQ09OVEVOVF9UUkFOU0lUSU9OUyBtYXkgYmUgc2V0IGluIHRoZSBwcm9jZXNzIG9mIGluc3RhbGxpbmcgdGhlIHdpbmRvdworICAgICAgICAvLyBkZWNvciwgd2hlbiB0aGVtZSBhdHRyaWJ1dGVzIGFuZCB0aGUgbGlrZSBhcmUgY3J5c3RhbGl6ZWQuIERvIG5vdCBjaGVjayB0aGUgZmVhdHVyZQorICAgICAgICAvLyBiZWZvcmUgdGhpcyBoYXBwZW5zLgogICAgICAgICBpZiAobUNvbnRlbnRQYXJlbnQgPT0gbnVsbCkgewogICAgICAgICAgICAgaW5zdGFsbERlY29yKCk7Ci0gICAgICAgIH0gZWxzZSB7CisgICAgICAgIH0gZWxzZSBpZiAoIWhhc0ZlYXR1cmUoRkVBVFVSRV9DT05URU5UX1RSQU5TSVRJT05TKSkgewogICAgICAgICAgICAgbUNvbnRlbnRQYXJlbnQucmVtb3ZlQWxsVmlld3MoKTsKICAgICAgICAgfQotICAgICAgICBtQ29udGVudFBhcmVudC5hZGRWaWV3KHZpZXcsIHBhcmFtcyk7CisKKyAgICAgICAgaWYgKGhhc0ZlYXR1cmUoRkVBVFVSRV9DT05URU5UX1RSQU5TSVRJT05TKSkgeworICAgICAgICAgICAgdmlldy5zZXRMYXlvdXRQYXJhbXMocGFyYW1zKTsKKyAgICAgICAgICAgIGZpbmFsIFNjZW5lIG5ld1NjZW5lID0gbmV3IFNjZW5lKG1Db250ZW50UGFyZW50LCB2aWV3KTsKKyAgICAgICAgICAgIG1UcmFuc2l0aW9uTWFuYWdlci50cmFuc2l0aW9uVG8obmV3U2NlbmUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUNvbnRlbnRQYXJlbnQuYWRkVmlldyh2aWV3LCBwYXJhbXMpOworICAgICAgICB9CiAgICAgICAgIGZpbmFsIENhbGxiYWNrIGNiID0gZ2V0Q2FsbGJhY2soKTsKICAgICAgICAgaWYgKGNiICE9IG51bGwgJiYgIWlzRGVzdHJveWVkKCkpIHsKICAgICAgICAgICAgIGNiLm9uQ29udGVudENoYW5nZWQoKTsKQEAgLTMxOCw2ICszNDQsMTEgQEAKICAgICAgICAgaWYgKG1Db250ZW50UGFyZW50ID09IG51bGwpIHsKICAgICAgICAgICAgIGluc3RhbGxEZWNvcigpOwogICAgICAgICB9CisgICAgICAgIGlmIChoYXNGZWF0dXJlKEZFQVRVUkVfQ09OVEVOVF9UUkFOU0lUSU9OUykpIHsKKyAgICAgICAgICAgIC8vIFRPRE8gQXVnbWVudCB0aGUgc2NlbmVzL3RyYW5zaXRpb25zIEFQSSB0byBzdXBwb3J0IHRoaXMuCisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJhZGRDb250ZW50VmlldyBkb2VzIG5vdCBzdXBwb3J0IGNvbnRlbnQgdHJhbnNpdGlvbnMiKTsKKyAgICAgICAgfQogICAgICAgICBtQ29udGVudFBhcmVudC5hZGRWaWV3KHZpZXcsIHBhcmFtcyk7CiAgICAgICAgIGZpbmFsIENhbGxiYWNrIGNiID0gZ2V0Q2FsbGJhY2soKTsKICAgICAgICAgaWYgKGNiICE9IG51bGwgJiYgIWlzRGVzdHJveWVkKCkpIHsKQEAgLTI4OTAsNiArMjkyMSw5IEBACiAgICAgICAgICAgICBhLmdldFZhbHVlKGNvbS5hbmRyb2lkLmludGVybmFsLlIuc3R5bGVhYmxlLldpbmRvd193aW5kb3dGaXhlZEhlaWdodE1pbm9yLAogICAgICAgICAgICAgICAgICAgICBtRml4ZWRIZWlnaHRNaW5vcik7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKGEuZ2V0Qm9vbGVhbihjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5XaW5kb3dfd2luZG93Q29udGVudFRyYW5zaXRpb25zLCBmYWxzZSkpIHsKKyAgICAgICAgICAgIHJlcXVlc3RGZWF0dXJlKEZFQVRVUkVfQ09OVEVOVF9UUkFOU0lUSU9OUyk7CisgICAgICAgIH0KIAogICAgICAgICBmaW5hbCBDb250ZXh0IGNvbnRleHQgPSBnZXRDb250ZXh0KCk7CiAgICAgICAgIGZpbmFsIGludCB0YXJnZXRTZGsgPSBjb250ZXh0LmdldEFwcGxpY2F0aW9uSW5mbygpLnRhcmdldFNka1ZlcnNpb247CkBAIC0zMTc5LDYgKzMyMTMsMjAgQEAKICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBPbmx5IGluZmxhdGUgb3IgY3JlYXRlIGEgbmV3IFRyYW5zaXRpb25NYW5hZ2VyIGlmIHRoZSBjYWxsZXIgaGFzbid0CisgICAgICAgICAgICAvLyBhbHJlYWR5IHNldCBhIGN1c3RvbSBvbmUuCisgICAgICAgICAgICBpZiAoaGFzRmVhdHVyZShGRUFUVVJFX0NPTlRFTlRfVFJBTlNJVElPTlMpICYmIG1UcmFuc2l0aW9uTWFuYWdlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZmluYWwgaW50IHRyYW5zaXRpb25SZXMgPSBnZXRXaW5kb3dTdHlsZSgpLmdldFJlc291cmNlSWQoCisgICAgICAgICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0eWxlYWJsZS5XaW5kb3dfd2luZG93Q29udGVudFRyYW5zaXRpb25NYW5hZ2VyLCAwKTsKKyAgICAgICAgICAgICAgICBpZiAodHJhbnNpdGlvblJlcyAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZpbmFsIFRyYW5zaXRpb25JbmZsYXRlciBpbmZsYXRlciA9IFRyYW5zaXRpb25JbmZsYXRlci5mcm9tKGdldENvbnRleHQoKSk7CisgICAgICAgICAgICAgICAgICAgIG1UcmFuc2l0aW9uTWFuYWdlciA9IGluZmxhdGVyLmluZmxhdGVUcmFuc2l0aW9uTWFuYWdlcih0cmFuc2l0aW9uUmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1Db250ZW50UGFyZW50KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtVHJhbnNpdGlvbk1hbmFnZXIgPSBuZXcgVHJhbnNpdGlvbk1hbmFnZXIoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL3BvbGljeS9zcmMvY29tL2FuZHJvaWQvaW50ZXJuYWwvcG9saWN5L2ltcGwvUGhvbmVXaW5kb3dNYW5hZ2VyLmphdmEgYi9wb2xpY3kvc3JjL2NvbS9hbmRyb2lkL2ludGVybmFsL3BvbGljeS9pbXBsL1Bob25lV2luZG93TWFuYWdlci5qYXZhCmluZGV4IDhiYjRhNmMuLmMxOGUwZDEgMTAwNjQ0Ci0tLSBhL3BvbGljeS9zcmMvY29tL2FuZHJvaWQvaW50ZXJuYWwvcG9saWN5L2ltcGwvUGhvbmVXaW5kb3dNYW5hZ2VyLmphdmEKKysrIGIvcG9saWN5L3NyYy9jb20vYW5kcm9pZC9pbnRlcm5hbC9wb2xpY3kvaW1wbC9QaG9uZVdpbmRvd01hbmFnZXIuamF2YQpAQCAtMjIyLDYgKzIyMiw5IEBACiAgICAgLy8gVmlicmF0b3IgcGF0dGVybiBmb3IgYSBzaG9ydCB2aWJyYXRpb24uCiAgICAgbG9uZ1tdIG1LZXlib2FyZFRhcFZpYmVQYXR0ZXJuOwogCisgICAgLy8gVmlicmF0b3IgcGF0dGVybiBmb3IgYSBzaG9ydCB2aWJyYXRpb24gd2hlbiB0YXBwaW5nIG9uIGFuIGhvdXIvbWludXRlIHRpY2sgb2YgYSBDbG9jay4KKyAgICBsb25nW10gbUNsb2NrVGlja1ZpYmVQYXR0ZXJuOworCiAgICAgLy8gVmlicmF0b3IgcGF0dGVybiBmb3IgaGFwdGljIGZlZWRiYWNrIGR1cmluZyBib290IHdoZW4gc2FmZSBtb2RlIGlzIGRpc2FibGVkLgogICAgIGxvbmdbXSBtU2FmZU1vZGVEaXNhYmxlZFZpYmVQYXR0ZXJuOwogCkBAIC05NjYsNiArOTY5LDggQEAKICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmFycmF5LmNvbmZpZ192aXJ0dWFsS2V5VmliZVBhdHRlcm4pOwogICAgICAgICBtS2V5Ym9hcmRUYXBWaWJlUGF0dGVybiA9IGdldExvbmdJbnRBcnJheShtQ29udGV4dC5nZXRSZXNvdXJjZXMoKSwKICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmFycmF5LmNvbmZpZ19rZXlib2FyZFRhcFZpYmVQYXR0ZXJuKTsKKyAgICAgICAgbUNsb2NrVGlja1ZpYmVQYXR0ZXJuID0gZ2V0TG9uZ0ludEFycmF5KG1Db250ZXh0LmdldFJlc291cmNlcygpLAorICAgICAgICAgICAgICAgIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXJyYXkuY29uZmlnX2Nsb2NrVGlja1ZpYmVQYXR0ZXJuKTsKICAgICAgICAgbVNhZmVNb2RlRGlzYWJsZWRWaWJlUGF0dGVybiA9IGdldExvbmdJbnRBcnJheShtQ29udGV4dC5nZXRSZXNvdXJjZXMoKSwKICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLmFycmF5LmNvbmZpZ19zYWZlTW9kZURpc2FibGVkVmliZVBhdHRlcm4pOwogICAgICAgICBtU2FmZU1vZGVFbmFibGVkVmliZVBhdHRlcm4gPSBnZXRMb25nSW50QXJyYXkobUNvbnRleHQuZ2V0UmVzb3VyY2VzKCksCkBAIC01MDIxLDYgKzUwMjYsOSBAQAogICAgICAgICAgICAgY2FzZSBIYXB0aWNGZWVkYmFja0NvbnN0YW50cy5LRVlCT0FSRF9UQVA6CiAgICAgICAgICAgICAgICAgcGF0dGVybiA9IG1LZXlib2FyZFRhcFZpYmVQYXR0ZXJuOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBIYXB0aWNGZWVkYmFja0NvbnN0YW50cy5DTE9DS19USUNLOgorICAgICAgICAgICAgICAgIHBhdHRlcm4gPSBtQ2xvY2tUaWNrVmliZVBhdHRlcm47CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEhhcHRpY0ZlZWRiYWNrQ29uc3RhbnRzLlNBRkVfTU9ERV9ESVNBQkxFRDoKICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gbVNhZmVNb2RlRGlzYWJsZWRWaWJlUGF0dGVybjsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTUyMjIsNiArNTIzMCwxMSBAQAogICAgIH0KIAogICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBpbnQgZ2V0SW5wdXRNZXRob2RXaW5kb3dWaXNpYmxlSGVpZ2h0THcoKSB7CisgICAgICAgIHJldHVybiBtRG9ja0JvdHRvbSAtIG1DdXJCb3R0b207CisgICAgfQorCisgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIHZvaWQgc2V0Q3VycmVudFVzZXJMdyhpbnQgbmV3VXNlcklkKSB7CiAgICAgICAgIG1DdXJyZW50VXNlcklkID0gbmV3VXNlcklkOwogICAgICAgICBpZiAobUtleWd1YXJkRGVsZWdhdGUgIT0gbnVsbCkgewpkaWZmIC0tZ2l0IGEvc2VydmljZXMvaW5wdXQvQW5kcm9pZC5tayBiL3NlcnZpY2VzL2lucHV0L0FuZHJvaWQubWsKaW5kZXggNmU5NDRlZi4uZWIyYmViZSAxMDA2NDQKLS0tIGEvc2VydmljZXMvaW5wdXQvQW5kcm9pZC5taworKysgYi9zZXJ2aWNlcy9pbnB1dC9BbmRyb2lkLm1rCkBAIC00Miw2ICs0Miw4IEBACiBMT0NBTF9DX0lOQ0xVREVTIDo9IFwKICAgICBleHRlcm5hbC9za2lhL2luY2x1ZGUvY29yZQogCitMT0NBTF9DRkxBR1MgKz0gLVduby11bnVzZWQtcGFyYW1ldGVyCisKIExPQ0FMX01PRFVMRTo9IGxpYmlucHV0c2VydmljZQogCiBMT0NBTF9NT0RVTEVfVEFHUyA6PSBvcHRpb25hbApkaWZmIC0tZ2l0IGEvc2VydmljZXMvaW5wdXQvRXZlbnRIdWIuY3BwIGIvc2VydmljZXMvaW5wdXQvRXZlbnRIdWIuY3BwCmluZGV4IDRkNzBkNWYuLmU2N2M2NGMgMTAwNjQ0Ci0tLSBhL3NlcnZpY2VzL2lucHV0L0V2ZW50SHViLmNwcAorKysgYi9zZXJ2aWNlcy9pbnB1dC9FdmVudEh1Yi5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KICNpbmNsdWRlIDxzeXMvbGltaXRzLmg+CiAjaW5jbHVkZSA8c3lzL3NoYTEuaD4KKyNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgogCiAvKiB0aGlzIG1hY3JvIGlzIHVzZWQgdG8gdGVsbCBpZiAiYml0IiBpcyBzZXQgaW4gImFycmF5IgogICogaXQgc2VsZWN0cyBhIGJ5dGUgZnJvbSB0aGUgYXJyYXksIGFuZCBkb2VzIGEgYm9vbGVhbiBBTkQKQEAgLTkzLDYgKzk0LDE0IEBACiAgICAgcmV0dXJuIG91dDsKIH0KIAorc3RhdGljIHZvaWQgZ2V0TGludXhSZWxlYXNlKGludCogbWFqb3IsIGludCogbWlub3IpIHsKKyAgICBzdHJ1Y3QgdXRzbmFtZSBpbmZvOworICAgIGlmICh1bmFtZSgmaW5mbykgfHwgc3NjYW5mKGluZm8ucmVsZWFzZSwgIiVkLiVkIiwgbWFqb3IsIG1pbm9yKSA8PSAwKSB7CisgICAgICAgICptYWpvciA9IDAsICptaW5vciA9IDA7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3QgZ2V0IGxpbnV4IHZlcnNpb246ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIHNldERlc2NyaXB0b3IoSW5wdXREZXZpY2VJZGVudGlmaWVyJiBpZGVudGlmaWVyKSB7CiAgICAgLy8gQ29tcHV0ZSBhIGRldmljZSBkZXNjcmlwdG9yIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgZGV2aWNlLgogICAgIC8vIFRoZSBkZXNjcmlwdG9yIGlzIGFzc3VtZWQgdG8gYmUgYSBzdGFibGUgaWRlbnRpZmllci4gIEl0cyB2YWx1ZSBzaG91bGQgbm90CkBAIC0yMzYsNiArMjQ1LDExIEBACiAgICAgcmVzdWx0ID0gZXBvbGxfY3RsKG1FcG9sbEZkLCBFUE9MTF9DVExfQURELCBtV2FrZVJlYWRQaXBlRmQsICZldmVudEl0ZW0pOwogICAgIExPR19BTFdBWVNfRkFUQUxfSUYocmVzdWx0ICE9IDAsICJDb3VsZCBub3QgYWRkIHdha2UgcmVhZCBwaXBlIHRvIGVwb2xsIGluc3RhbmNlLiAgZXJybm89JWQiLAogICAgICAgICAgICAgZXJybm8pOworCisgICAgaW50IG1ham9yLCBtaW5vcjsKKyAgICBnZXRMaW51eFJlbGVhc2UoJm1ham9yLCAmbWlub3IpOworICAgIC8vIEVQT0xMV0FLRVVQIHdhcyBpbnRyb2R1Y2VkIGluIGtlcm5lbCAzLjUKKyAgICBtVXNpbmdFcG9sbFdha2V1cCA9IG1ham9yID4gMyB8fCAobWFqb3IgPT0gMyAmJiBtaW5vciA+PSA1KTsKIH0KIAogRXZlbnRIdWI6On5FdmVudEh1Yih2b2lkKSB7CkBAIC01MDksOCArNTIzLDkgQEAKIGJvb2wgRXZlbnRIdWI6Omhhc0xlZChpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IGxlZCkgY29uc3QgewogICAgIEF1dG9NdXRleCBfbChtTG9jayk7CiAgICAgRGV2aWNlKiBkZXZpY2UgPSBnZXREZXZpY2VMb2NrZWQoZGV2aWNlSWQpOwotICAgIGlmIChkZXZpY2UgJiYgbGVkID49IDAgJiYgbGVkIDw9IExFRF9NQVgpIHsKLSAgICAgICAgaWYgKHRlc3RfYml0KGxlZCwgZGV2aWNlLT5sZWRCaXRtYXNrKSkgeworICAgIGludDMyX3Qgc2M7CisgICAgaWYgKGRldmljZSAmJiBtYXBMZWQoZGV2aWNlLCBsZWQsICZzYykgPT0gTk9fRVJST1IpIHsKKyAgICAgICAgaWYgKHRlc3RfYml0KHNjLCBkZXZpY2UtPmxlZEJpdG1hc2spKSB7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTUyMCwxMiArNTM1LDE3IEBACiB2b2lkIEV2ZW50SHViOjpzZXRMZWRTdGF0ZShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IGxlZCwgYm9vbCBvbikgewogICAgIEF1dG9NdXRleCBfbChtTG9jayk7CiAgICAgRGV2aWNlKiBkZXZpY2UgPSBnZXREZXZpY2VMb2NrZWQoZGV2aWNlSWQpOwotICAgIGlmIChkZXZpY2UgJiYgIWRldmljZS0+aXNWaXJ0dWFsKCkgJiYgbGVkID49IDAgJiYgbGVkIDw9IExFRF9NQVgpIHsKKyAgICBzZXRMZWRTdGF0ZUxvY2tlZChkZXZpY2UsIGxlZCwgb24pOworfQorCit2b2lkIEV2ZW50SHViOjpzZXRMZWRTdGF0ZUxvY2tlZChEZXZpY2UqIGRldmljZSwgaW50MzJfdCBsZWQsIGJvb2wgb24pIHsKKyAgICBpbnQzMl90IHNjOworICAgIGlmIChkZXZpY2UgJiYgIWRldmljZS0+aXNWaXJ0dWFsKCkgJiYgbWFwTGVkKGRldmljZSwgbGVkLCAmc2MpICE9IE5BTUVfTk9UX0ZPVU5EKSB7CiAgICAgICAgIHN0cnVjdCBpbnB1dF9ldmVudCBldjsKICAgICAgICAgZXYudGltZS50dl9zZWMgPSAwOwogICAgICAgICBldi50aW1lLnR2X3VzZWMgPSAwOwogICAgICAgICBldi50eXBlID0gRVZfTEVEOwotICAgICAgICBldi5jb2RlID0gbGVkOworICAgICAgICBldi5jb2RlID0gc2M7CiAgICAgICAgIGV2LnZhbHVlID0gb24gPyAxIDogMDsKIAogICAgICAgICBzc2l6ZV90IG5Xcml0ZTsKQEAgLTEyMzksMTIgKzEyNTksMTMgQEAKIAogICAgIGlmIChkZXZpY2UtPmNsYXNzZXMgJiAoSU5QVVRfREVWSUNFX0NMQVNTX0pPWVNUSUNLIHwgSU5QVVRfREVWSUNFX0NMQVNTX0dBTUVQQUQpKSB7CiAgICAgICAgIGRldmljZS0+Y29udHJvbGxlck51bWJlciA9IGdldE5leHRDb250cm9sbGVyTnVtYmVyTG9ja2VkKGRldmljZSk7CisgICAgICAgIHNldExlZEZvckNvbnRyb2xsZXIoZGV2aWNlKTsKICAgICB9CiAKICAgICAvLyBSZWdpc3RlciB3aXRoIGVwb2xsLgogICAgIHN0cnVjdCBlcG9sbF9ldmVudCBldmVudEl0ZW07CiAgICAgbWVtc2V0KCZldmVudEl0ZW0sIDAsIHNpemVvZihldmVudEl0ZW0pKTsKLSAgICBldmVudEl0ZW0uZXZlbnRzID0gRVBPTExJTjsKKyAgICBldmVudEl0ZW0uZXZlbnRzID0gbVVzaW5nRXBvbGxXYWtldXAgPyBFUE9MTElOIDogRVBPTExJTiB8IEVQT0xMV0FLRVVQOwogICAgIGV2ZW50SXRlbS5kYXRhLnUzMiA9IGRldmljZUlkOwogICAgIGlmIChlcG9sbF9jdGwobUVwb2xsRmQsIEVQT0xMX0NUTF9BREQsIGZkLCAmZXZlbnRJdGVtKSkgewogICAgICAgICBBTE9HRSgiQ291bGQgbm90IGFkZCBkZXZpY2UgZmQgdG8gZXBvbGwgaW5zdGFuY2UuICBlcnJubz0lZCIsIGVycm5vKTsKQEAgLTEyNTIsOSArMTI3MywxNCBAQAogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCi0gICAgLy8gRW5hYmxlIHdha2UtbG9jayBiZWhhdmlvciBvbiBrZXJuZWxzIHRoYXQgc3VwcG9ydCBpdC4KLSAgICAvLyBUT0RPOiBPbmx5IG5lZWQgdGhpcyBmb3IgZGV2aWNlcyB0aGF0IGNhbiByZWFsbHkgd2FrZSB0aGUgc3lzdGVtLgotICAgIGJvb2wgdXNpbmdTdXNwZW5kQmxvY2tJb2N0bCA9ICFpb2N0bChmZCwgRVZJT0NTU1VTUEVOREJMT0NLLCAxKTsKKyAgICBTdHJpbmc4IHdha2VNZWNoYW5pc20oIkVQT0xMV0FLRVVQIik7CisgICAgaWYgKCFtVXNpbmdFcG9sbFdha2V1cCkgeworICAgICAgICBpZiAoaW9jdGwoZmQsIEVWSU9DU1NVU1BFTkRCTE9DSywgMSkpIHsKKyAgICAgICAgICAgIHdha2VNZWNoYW5pc20gPSAiPG5vbmU+IjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHdha2VNZWNoYW5pc20gPSAiRVZJT0NTU1VTUEVOREJMT0NLIjsKKyAgICAgICAgfQorICAgIH0KIAogICAgIC8vIFRlbGwgdGhlIGtlcm5lbCB0aGF0IHdlIHdhbnQgdG8gdXNlIHRoZSBtb25vdG9uaWMgY2xvY2sgZm9yIHJlcG9ydGluZyB0aW1lc3RhbXBzCiAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIGlucHV0IGV2ZW50cy4gIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgdGhlIGlucHV0IHN5c3RlbQpAQCAtMTI3NiwxNCArMTMwMiwxNCBAQAogCiAgICAgQUxPR0koIk5ldyBkZXZpY2U6IGlkPSVkLCBmZD0lZCwgcGF0aD0nJXMnLCBuYW1lPSclcycsIGNsYXNzZXM9MHgleCwgIgogICAgICAgICAgICAgImNvbmZpZ3VyYXRpb249JyVzJywga2V5TGF5b3V0PSclcycsIGtleUNoYXJhY3Rlck1hcD0nJXMnLCBidWlsdGluS2V5Ym9hcmQ9JXMsICIKLSAgICAgICAgICAgICJ1c2luZ1N1c3BlbmRCbG9ja0lvY3RsPSVzLCB1c2luZ0Nsb2NrSW9jdGw9JXMiLAorICAgICAgICAgICAgIndha2VNZWNoYW5pc209JXMsIHVzaW5nQ2xvY2tJb2N0bD0lcyIsCiAgICAgICAgICBkZXZpY2VJZCwgZmQsIGRldmljZVBhdGgsIGRldmljZS0+aWRlbnRpZmllci5uYW1lLnN0cmluZygpLAogICAgICAgICAgZGV2aWNlLT5jbGFzc2VzLAogICAgICAgICAgZGV2aWNlLT5jb25maWd1cmF0aW9uRmlsZS5zdHJpbmcoKSwKICAgICAgICAgIGRldmljZS0+a2V5TWFwLmtleUxheW91dEZpbGUuc3RyaW5nKCksCiAgICAgICAgICBkZXZpY2UtPmtleU1hcC5rZXlDaGFyYWN0ZXJNYXBGaWxlLnN0cmluZygpLAogICAgICAgICAgdG9TdHJpbmcobUJ1aWx0SW5LZXlib2FyZElkID09IGRldmljZUlkKSwKLSAgICAgICAgIHRvU3RyaW5nKHVzaW5nU3VzcGVuZEJsb2NrSW9jdGwpLCB0b1N0cmluZyh1c2luZ0Nsb2NrSW9jdGwpKTsKKyAgICAgICAgIHdha2VNZWNoYW5pc20uc3RyaW5nKCksIHRvU3RyaW5nKHVzaW5nQ2xvY2tJb2N0bCkpOwogCiAgICAgYWRkRGV2aWNlTG9ja2VkKGRldmljZSk7CiAgICAgcmV0dXJuIDA7CkBAIC0xMzcyLDYgKzEzOTgsMTEgQEAKICAgICBtQ29udHJvbGxlck51bWJlcnMuY2xlYXJCaXQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG51bSAtIDEpKTsKIH0KIAordm9pZCBFdmVudEh1Yjo6c2V0TGVkRm9yQ29udHJvbGxlcihEZXZpY2UqIGRldmljZSkgeworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTUFYX0NPTlRST0xMRVJfTEVEUzsgaSsrKSB7CisgICAgICAgIHNldExlZFN0YXRlTG9ja2VkKGRldmljZSwgQUxFRF9DT05UUk9MTEVSXzEgKyBpLCBkZXZpY2UtPmNvbnRyb2xsZXJOdW1iZXIgPT0gaSArIDEpOworICAgIH0KK30KIAogYm9vbCBFdmVudEh1Yjo6aGFzS2V5Y29kZUxvY2tlZChEZXZpY2UqIGRldmljZSwgaW50IGtleWNvZGUpIGNvbnN0IHsKICAgICBpZiAoIWRldmljZS0+a2V5TWFwLmhhdmVLZXlMYXlvdXQoKSB8fCAhZGV2aWNlLT5rZXlCaXRtYXNrKSB7CkBAIC0xMzkxLDYgKzE0MjIsMjEgQEAKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXR1c190IEV2ZW50SHViOjptYXBMZWQoRGV2aWNlKiBkZXZpY2UsIGludDMyX3QgbGVkLCBpbnQzMl90KiBvdXRTY2FuQ29kZSkgY29uc3QgeworICAgIGlmICghZGV2aWNlLT5rZXlNYXAuaGF2ZUtleUxheW91dCgpIHx8ICFkZXZpY2UtPmxlZEJpdG1hc2spIHsKKyAgICAgICAgcmV0dXJuIE5BTUVfTk9UX0ZPVU5EOworICAgIH0KKworICAgIGludDMyX3Qgc2NhbkNvZGU7CisgICAgaWYoZGV2aWNlLT5rZXlNYXAua2V5TGF5b3V0TWFwLT5maW5kU2NhbkNvZGVGb3JMZWQobGVkLCAmc2NhbkNvZGUpICE9IE5BTUVfTk9UX0ZPVU5EKSB7CisgICAgICAgIGlmKHNjYW5Db2RlID49IDAgJiYgc2NhbkNvZGUgPD0gTEVEX01BWCAmJiB0ZXN0X2JpdChzY2FuQ29kZSwgZGV2aWNlLT5sZWRCaXRtYXNrKSkgeworICAgICAgICAgICAgKm91dFNjYW5Db2RlID0gc2NhbkNvZGU7CisgICAgICAgICAgICByZXR1cm4gTk9fRVJST1I7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIE5BTUVfTk9UX0ZPVU5EOworfQorCiBzdGF0dXNfdCBFdmVudEh1Yjo6Y2xvc2VEZXZpY2VCeVBhdGhMb2NrZWQoY29uc3QgY2hhciAqZGV2aWNlUGF0aCkgewogICAgIERldmljZSogZGV2aWNlID0gZ2V0RGV2aWNlQnlQYXRoTG9ja2VkKGRldmljZVBhdGgpOwogICAgIGlmIChkZXZpY2UpIHsKZGlmZiAtLWdpdCBhL3NlcnZpY2VzL2lucHV0L0V2ZW50SHViLmggYi9zZXJ2aWNlcy9pbnB1dC9FdmVudEh1Yi5oCmluZGV4IGFlMjhmMDEuLmE5YTI4ZDIgMTAwNjQ0Ci0tLSBhL3NlcnZpY2VzL2lucHV0L0V2ZW50SHViLmgKKysrIGIvc2VydmljZXMvaW5wdXQvRXZlbnRIdWIuaApAQCAtMjMxLDYgKzIzMSw4IEBACiAgICAgICAgICAgICB1aW50OF90KiBvdXRGbGFncykgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGhhc1NjYW5Db2RlKGludDMyX3QgZGV2aWNlSWQsIGludDMyX3Qgc2NhbkNvZGUpIGNvbnN0ID0gMDsKKworICAgIC8qIExFRCByZWxhdGVkIGZ1bmN0aW9ucyBleHBlY3QgQW5kcm9pZCBMRUQgY29uc3RhbnRzLCBub3Qgc2NhbiBjb2RlcyBvciBISUQgdXNhZ2VzICovCiAgICAgdmlydHVhbCBib29sIGhhc0xlZChpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IGxlZCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMZWRTdGF0ZShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IGxlZCwgYm9vbCBvbikgPSAwOwogCkBAIC0zOTMsNiArMzk1LDEwIEBACiAKICAgICBpbnQzMl90IGdldE5leHRDb250cm9sbGVyTnVtYmVyTG9ja2VkKERldmljZSogZGV2aWNlKTsKICAgICB2b2lkIHJlbGVhc2VDb250cm9sbGVyTnVtYmVyTG9ja2VkKERldmljZSogZGV2aWNlKTsKKyAgICB2b2lkIHNldExlZEZvckNvbnRyb2xsZXIoRGV2aWNlKiBkZXZpY2UpOworCisgICAgc3RhdHVzX3QgbWFwTGVkKERldmljZSogZGV2aWNlLCBpbnQzMl90IGxlZCwgaW50MzJfdCogb3V0U2NhbkNvZGUpIGNvbnN0OworICAgIHZvaWQgc2V0TGVkU3RhdGVMb2NrZWQoRGV2aWNlKiBkZXZpY2UsIGludDMyX3QgbGVkLCBib29sIG9uKTsKIAogICAgIC8vIFByb3RlY3QgYWxsIGludGVybmFsIHN0YXRlLgogICAgIG11dGFibGUgTXV0ZXggbUxvY2s7CkBAIC00NDAsNiArNDQ2LDggQEAKICAgICBzaXplX3QgbVBlbmRpbmdFdmVudENvdW50OwogICAgIHNpemVfdCBtUGVuZGluZ0V2ZW50SW5kZXg7CiAgICAgYm9vbCBtUGVuZGluZ0lOb3RpZnk7CisKKyAgICBib29sIG1Vc2luZ0Vwb2xsV2FrZXVwOwogfTsKIAogfTsgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3NlcnZpY2VzL2lucHV0L0lucHV0UmVhZGVyLmNwcCBiL3NlcnZpY2VzL2lucHV0L0lucHV0UmVhZGVyLmNwcAppbmRleCAwMzg1MmE1Li5hNjgzYzRiIDEwMDY0NAotLS0gYS9zZXJ2aWNlcy9pbnB1dC9JbnB1dFJlYWRlci5jcHAKKysrIGIvc2VydmljZXMvaW5wdXQvSW5wdXRSZWFkZXIuY3BwCkBAIC0yMTk3LDkgKzIxOTcsOSBAQAogfQogCiB2b2lkIEtleWJvYXJkSW5wdXRNYXBwZXI6OnJlc2V0TGVkU3RhdGUoKSB7Ci0gICAgaW5pdGlhbGl6ZUxlZFN0YXRlKG1DYXBzTG9ja0xlZFN0YXRlLCBMRURfQ0FQU0wpOwotICAgIGluaXRpYWxpemVMZWRTdGF0ZShtTnVtTG9ja0xlZFN0YXRlLCBMRURfTlVNTCk7Ci0gICAgaW5pdGlhbGl6ZUxlZFN0YXRlKG1TY3JvbGxMb2NrTGVkU3RhdGUsIExFRF9TQ1JPTExMKTsKKyAgICBpbml0aWFsaXplTGVkU3RhdGUobUNhcHNMb2NrTGVkU3RhdGUsIEFMRURfQ0FQU19MT0NLKTsKKyAgICBpbml0aWFsaXplTGVkU3RhdGUobU51bUxvY2tMZWRTdGF0ZSwgQUxFRF9OVU1fTE9DSyk7CisgICAgaW5pdGlhbGl6ZUxlZFN0YXRlKG1TY3JvbGxMb2NrTGVkU3RhdGUsIEFMRURfU0NST0xMX0xPQ0spOwogCiAgICAgdXBkYXRlTGVkU3RhdGUodHJ1ZSk7CiB9CkBAIC0yMjEwLDExICsyMjEwLDExIEBACiB9CiAKIHZvaWQgS2V5Ym9hcmRJbnB1dE1hcHBlcjo6dXBkYXRlTGVkU3RhdGUoYm9vbCByZXNldCkgewotICAgIHVwZGF0ZUxlZFN0YXRlRm9yTW9kaWZpZXIobUNhcHNMb2NrTGVkU3RhdGUsIExFRF9DQVBTTCwKKyAgICB1cGRhdGVMZWRTdGF0ZUZvck1vZGlmaWVyKG1DYXBzTG9ja0xlZFN0YXRlLCBBTEVEX0NBUFNfTE9DSywKICAgICAgICAgICAgIEFNRVRBX0NBUFNfTE9DS19PTiwgcmVzZXQpOwotICAgIHVwZGF0ZUxlZFN0YXRlRm9yTW9kaWZpZXIobU51bUxvY2tMZWRTdGF0ZSwgTEVEX05VTUwsCisgICAgdXBkYXRlTGVkU3RhdGVGb3JNb2RpZmllcihtTnVtTG9ja0xlZFN0YXRlLCBBTEVEX05VTV9MT0NLLAogICAgICAgICAgICAgQU1FVEFfTlVNX0xPQ0tfT04sIHJlc2V0KTsKLSAgICB1cGRhdGVMZWRTdGF0ZUZvck1vZGlmaWVyKG1TY3JvbGxMb2NrTGVkU3RhdGUsIExFRF9TQ1JPTExMLAorICAgIHVwZGF0ZUxlZFN0YXRlRm9yTW9kaWZpZXIobVNjcm9sbExvY2tMZWRTdGF0ZSwgQUxFRF9TQ1JPTExfTE9DSywKICAgICAgICAgICAgIEFNRVRBX1NDUk9MTF9MT0NLX09OLCByZXNldCk7CiB9CiAKQEAgLTYyODMsNyArNjI4Myw3IEBACiAKICAgICAgICAgICAgICAgICAvLyBUbyBlbGltaW5hdGUgbm9pc2Ugd2hpbGUgdGhlIGpveXN0aWNrIGlzIGF0IHJlc3QsIGZpbHRlciBvdXQgc21hbGwgdmFyaWF0aW9ucwogICAgICAgICAgICAgICAgIC8vIGluIGF4aXMgdmFsdWVzIHVwIGZyb250LgotICAgICAgICAgICAgICAgIGF4aXMuZmlsdGVyID0gYXhpcy5mbGF0ICogMC4yNWY7CisgICAgICAgICAgICAgICAgYXhpcy5maWx0ZXIgPSBheGlzLmZ1enogPyBheGlzLmZ1enogOiBheGlzLmZsYXQgKiAwLjI1ZjsKIAogICAgICAgICAgICAgICAgIG1BeGVzLmFkZChhYnMsIGF4aXMpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvc2VydmljZXMvaW5wdXQvSW5wdXRSZWFkZXIuaCBiL3NlcnZpY2VzL2lucHV0L0lucHV0UmVhZGVyLmgKaW5kZXggYThiYjYzNi4uZTZmNDViNiAxMDA2NDQKLS0tIGEvc2VydmljZXMvaW5wdXQvSW5wdXRSZWFkZXIuaAorKysgYi9zZXJ2aWNlcy9pbnB1dC9JbnB1dFJlYWRlci5oCkBAIC01NzQsOCArNTc0LDggQEAKIHByaXZhdGU6CiAgICAgSW5wdXRSZWFkZXJDb250ZXh0KiBtQ29udGV4dDsKICAgICBpbnQzMl90IG1JZDsKLSAgICBpbnQzMl90IG1Db250cm9sbGVyTnVtYmVyOwogICAgIGludDMyX3QgbUdlbmVyYXRpb247CisgICAgaW50MzJfdCBtQ29udHJvbGxlck51bWJlcjsKICAgICBJbnB1dERldmljZUlkZW50aWZpZXIgbUlkZW50aWZpZXI7CiAgICAgU3RyaW5nOCBtQWxpYXM7CiAgICAgdWludDMyX3QgbUNsYXNzZXM7CmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9pbnB1dC9TcHJpdGVDb250cm9sbGVyLmNwcCBiL3NlcnZpY2VzL2lucHV0L1Nwcml0ZUNvbnRyb2xsZXIuY3BwCmluZGV4IGZkOWM2NmIuLjI2NjdhNzIgMTAwNjQ0Ci0tLSBhL3NlcnZpY2VzL2lucHV0L1Nwcml0ZUNvbnRyb2xsZXIuY3BwCisrKyBiL3NlcnZpY2VzL2lucHV0L1Nwcml0ZUNvbnRyb2xsZXIuY3BwCkBAIC0yMTYsMTIgKzIxNiwxMiBAQAogICAgICAgICAgICAgICAgIHBhaW50LnNldFhmZXJtb2RlTW9kZShTa1hmZXJtb2RlOjprU3JjX01vZGUpOwogICAgICAgICAgICAgICAgIHN1cmZhY2VDYW52YXMuZHJhd0JpdG1hcCh1cGRhdGUuc3RhdGUuaWNvbi5iaXRtYXAsIDAsIDAsICZwYWludCk7CiAKLSAgICAgICAgICAgICAgICBpZiAob3V0QnVmZmVyLndpZHRoID4gdWludDMyX3QodXBkYXRlLnN0YXRlLmljb24uYml0bWFwLndpZHRoKCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKG91dEJ1ZmZlci53aWR0aCA+IHVwZGF0ZS5zdGF0ZS5pY29uLmJpdG1hcC53aWR0aCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHBhaW50LnNldENvbG9yKDApOyAvLyB0cmFuc3BhcmVudCBmaWxsIGNvbG9yCiAgICAgICAgICAgICAgICAgICAgIHN1cmZhY2VDYW52YXMuZHJhd1JlY3RDb29yZHModXBkYXRlLnN0YXRlLmljb24uYml0bWFwLndpZHRoKCksIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0QnVmZmVyLndpZHRoLCB1cGRhdGUuc3RhdGUuaWNvbi5iaXRtYXAuaGVpZ2h0KCksIHBhaW50KTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKG91dEJ1ZmZlci5oZWlnaHQgPiB1aW50MzJfdCh1cGRhdGUuc3RhdGUuaWNvbi5iaXRtYXAuaGVpZ2h0KCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKG91dEJ1ZmZlci5oZWlnaHQgPiB1cGRhdGUuc3RhdGUuaWNvbi5iaXRtYXAuaGVpZ2h0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgcGFpbnQuc2V0Q29sb3IoMCk7IC8vIHRyYW5zcGFyZW50IGZpbGwgY29sb3IKICAgICAgICAgICAgICAgICAgICAgc3VyZmFjZUNhbnZhcy5kcmF3UmVjdENvb3JkcygwLCB1cGRhdGUuc3RhdGUuaWNvbi5iaXRtYXAuaGVpZ2h0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0QnVmZmVyLndpZHRoLCBvdXRCdWZmZXIuaGVpZ2h0LCBwYWludCk7CmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9CYWNrdXBNYW5hZ2VyU2VydmljZS5qYXZhIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvQmFja3VwTWFuYWdlclNlcnZpY2UuamF2YQppbmRleCBhMDRlZTE0Li40NTVkNWU5IDEwMDY0NAotLS0gYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9CYWNrdXBNYW5hZ2VyU2VydmljZS5qYXZhCisrKyBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL0JhY2t1cE1hbmFnZXJTZXJ2aWNlLmphdmEKQEAgLTIxMTcsNiArMjExNyw3IEBACiAgICAgICAgICAgICBtU2F2ZWRTdGF0ZU5hbWUgPSBuZXcgRmlsZShtU3RhdGVEaXIsIHBhY2thZ2VOYW1lKTsKICAgICAgICAgICAgIG1CYWNrdXBEYXRhTmFtZSA9IG5ldyBGaWxlKG1EYXRhRGlyLCBwYWNrYWdlTmFtZSArICIuZGF0YSIpOwogICAgICAgICAgICAgbU5ld1N0YXRlTmFtZSA9IG5ldyBGaWxlKG1TdGF0ZURpciwgcGFja2FnZU5hbWUgKyAiLm5ldyIpOworICAgICAgICAgICAgaWYgKE1PUkVfREVCVUcpIFNsb2cuZChUQUcsICJkYXRhIGZpbGU6ICIgKyBtQmFja3VwRGF0YU5hbWUpOwogCiAgICAgICAgICAgICBtU2F2ZWRTdGF0ZSA9IG51bGw7CiAgICAgICAgICAgICBtQmFja3VwRGF0YSA9IG51bGw7CmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9CYXR0ZXJ5U2VydmljZS5qYXZhIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvQmF0dGVyeVNlcnZpY2UuamF2YQppbmRleCA1ZjNmODk0Y2EuLmIyMzRhNGUgMTAwNjQ0Ci0tLSBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL0JhdHRlcnlTZXJ2aWNlLmphdmEKKysrIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvQmF0dGVyeVNlcnZpY2UuamF2YQpAQCAtMTYwLDcgKzE2MCw3IEBACiAKICAgICAgICAgbUJhdHRlcnlQcm9wZXJ0aWVzTGlzdGVuZXIgPSBuZXcgQmF0dGVyeUxpc3RlbmVyKCk7CiAKLSAgICAgICAgSUJpbmRlciBiID0gU2VydmljZU1hbmFnZXIuZ2V0U2VydmljZSgiYmF0dGVyeXByb3ByZWciKTsKKyAgICAgICAgSUJpbmRlciBiID0gU2VydmljZU1hbmFnZXIuZ2V0U2VydmljZSgiYmF0dGVyeXByb3BlcnRpZXMiKTsKICAgICAgICAgbUJhdHRlcnlQcm9wZXJ0aWVzUmVnaXN0cmFyID0gSUJhdHRlcnlQcm9wZXJ0aWVzUmVnaXN0cmFyLlN0dWIuYXNJbnRlcmZhY2UoYik7CiAKICAgICAgICAgdHJ5IHsKQEAgLTMxNCw4ICszMTQsNiBAQAogICAgICAgICAgICAgICAgICAgICArICIsIGJhdHRlcnlMZXZlbD0iICsgbUJhdHRlcnlQcm9wcy5iYXR0ZXJ5TGV2ZWwKICAgICAgICAgICAgICAgICAgICAgKyAiLCBiYXR0ZXJ5VGVjaG5vbG9neT0iICsgbUJhdHRlcnlQcm9wcy5iYXR0ZXJ5VGVjaG5vbG9neQogICAgICAgICAgICAgICAgICAgICArICIsIGJhdHRlcnlWb2x0YWdlPSIgKyBtQmF0dGVyeVByb3BzLmJhdHRlcnlWb2x0YWdlCi0gICAgICAgICAgICAgICAgICAgICsgIiwgYmF0dGVyeUN1cnJlbnROb3c9IiArIG1CYXR0ZXJ5UHJvcHMuYmF0dGVyeUN1cnJlbnROb3cKLSAgICAgICAgICAgICAgICAgICAgKyAiLCBiYXR0ZXJ5Q2hhcmdlQ291bnRlcj0iICsgbUJhdHRlcnlQcm9wcy5iYXR0ZXJ5Q2hhcmdlQ291bnRlcgogICAgICAgICAgICAgICAgICAgICArICIsIGJhdHRlcnlUZW1wZXJhdHVyZT0iICsgbUJhdHRlcnlQcm9wcy5iYXR0ZXJ5VGVtcGVyYXR1cmUKICAgICAgICAgICAgICAgICAgICAgKyAiLCBtQmF0dGVyeUxldmVsQ3JpdGljYWw9IiArIG1CYXR0ZXJ5TGV2ZWxDcml0aWNhbAogICAgICAgICAgICAgICAgICAgICArICIsIG1QbHVnVHlwZT0iICsgbVBsdWdUeXBlKTsKQEAgLTYxNiwxNSArNjE0LDYgQEAKICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCIgIGxldmVsOiAiICsgbUJhdHRlcnlQcm9wcy5iYXR0ZXJ5TGV2ZWwpOwogICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIiAgc2NhbGU6ICIgKyBCQVRURVJZX1NDQUxFKTsKICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCIgIHZvbHRhZ2U6ICIgKyBtQmF0dGVyeVByb3BzLmJhdHRlcnlWb2x0YWdlKTsKLQotICAgICAgICAgICAgICAgIGlmIChtQmF0dGVyeVByb3BzLmJhdHRlcnlDdXJyZW50Tm93ICE9IEludGVnZXIuTUlOX1ZBTFVFKSB7Ci0gICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIiAgY3VycmVudCBub3c6ICIgKyBtQmF0dGVyeVByb3BzLmJhdHRlcnlDdXJyZW50Tm93KTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAobUJhdHRlcnlQcm9wcy5iYXR0ZXJ5Q2hhcmdlQ291bnRlciAhPSBJbnRlZ2VyLk1JTl9WQUxVRSkgewotICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCIgIGNoYXJnZSBjb3VudGVyOiAiICsgbUJhdHRlcnlQcm9wcy5iYXR0ZXJ5Q2hhcmdlQ291bnRlcik7Ci0gICAgICAgICAgICAgICAgfQotCiAgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiICB0ZW1wZXJhdHVyZTogIiArIG1CYXR0ZXJ5UHJvcHMuYmF0dGVyeVRlbXBlcmF0dXJlKTsKICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCIgIHRlY2hub2xvZ3k6ICIgKyBtQmF0dGVyeVByb3BzLmJhdHRlcnlUZWNobm9sb2d5KTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJncy5sZW5ndGggPT0gMyAmJiAic2V0Ii5lcXVhbHMoYXJnc1swXSkpIHsKZGlmZiAtLWdpdCBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL0NpcmN1bGFyTG9nLmphdmEgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9DaXJjdWxhckxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1M2FmMWEKLS0tIC9kZXYvbnVsbAorKysgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9DaXJjdWxhckxvZy5qYXZhCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGNvbS5hbmRyb2lkLnNlcnZlcjsKKworaW1wb3J0IGFuZHJvaWQudGV4dC5mb3JtYXQuRGF0ZUZvcm1hdDsKKworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CisKK3B1YmxpYyBjbGFzcyBDaXJjdWxhckxvZyB7CisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdbXSBtTG9nOworICAgIGludCBtSGVhZDsKKworICAgIHB1YmxpYyBDaXJjdWxhckxvZyhpbnQgc2l6ZSkgeworICAgICAgICBtTG9nID0gbmV3IFN0cmluZ1tzaXplXTsKKyAgICAgICAgbUxvZ1ttSGVhZCsrXSA9ICJMb2cgc3RhcnQsIGxlc3MgdGhhbiAiICsgc2l6ZSArICIgbG9nIGVudHJpZXMgZW50ZXJlZC4iOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZChTdHJpbmcgbXNnKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgbG9uZyBub3cgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgc2IuYXBwZW5kKERhdGVGb3JtYXQuZm9ybWF0KCJ5eXl5LU1NLWRkIEhIOm1tOnNzIiwgbm93KSk7CisgICAgICAgIHNiLmFwcGVuZCgiLiIpOworICAgICAgICBzYi5hcHBlbmQoU3RyaW5nLmZvcm1hdCgiJTAzZDogIiwgbm93ICUgMTAwMCkpOworICAgICAgICBzYi5hcHBlbmQobXNnKTsKKworICAgICAgICBtTG9nWyhpbnQpKG1IZWFkICUgbUxvZy5sZW5ndGgpXSA9IHNiLnRvU3RyaW5nKCk7CisgICAgICAgICsrbUhlYWQ7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZ1tdIGdldExvZygpIHsKKyAgICAgICAgZmluYWwgaW50IGxlbmd0aCA9IE1hdGgubWluKG1IZWFkLCBtTG9nLmxlbmd0aCk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGxvZ0NvcHkgPSBuZXcgU3RyaW5nW2xlbmd0aF07CisgICAgICAgIGlmIChtSGVhZCA+IGxlbmd0aCkgeworICAgICAgICAgICAgZmluYWwgaW50IHN0YXJ0ID0gbUhlYWQgJSBsZW5ndGg7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1Mb2csIHN0YXJ0LCBsb2dDb3B5LCAwLCBsZW5ndGggLSBzdGFydCk7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1Mb2csIDAsIGxvZ0NvcHksIGxlbmd0aCAtIHN0YXJ0LCBzdGFydCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1Mb2csIDAsIGxvZ0NvcHksIDAsIGxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxvZ0NvcHk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZHVtcChQcmludFdyaXRlciBwdywgU3RyaW5nIHByZWZpeCkgeworICAgICAgICBmaW5hbCBpbnQgbGVuZ3RoID0gTWF0aC5taW4obUhlYWQsIG1Mb2cubGVuZ3RoKTsKKyAgICAgICAgaWYgKG1IZWFkID4gbGVuZ3RoKSB7CisgICAgICAgICAgICBmaW5hbCBpbnQgc3RhcnQgPSBtSGVhZCAlIGxlbmd0aDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBzdGFydDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnQocHJlZml4KTsgcHcucHJpbnRsbihtTG9nW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhcnQ7ICsraSkgeworICAgICAgICAgICAgICAgIHB3LnByaW50KHByZWZpeCk7IHB3LnByaW50bG4obUxvZ1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnQocHJlZml4KTsgcHcucHJpbnRsbihtTG9nW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL0Nvbm5lY3Rpdml0eVNlcnZpY2UuamF2YSBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL0Nvbm5lY3Rpdml0eVNlcnZpY2UuamF2YQppbmRleCA1OTRmNjgzLi41NzE3MjRkIDEwMDY0NAotLS0gYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9Db25uZWN0aXZpdHlTZXJ2aWNlLmphdmEKKysrIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvQ29ubmVjdGl2aXR5U2VydmljZS5qYXZhCkBAIC0xMTIsNiArMTEyLDcgQEAKIGltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC50ZWxlcGhvbnkuRGN0Q29uc3RhbnRzOwogaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLnRlbGVwaG9ueS5QaG9uZTsKIGltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC50ZWxlcGhvbnkuUGhvbmVDb25zdGFudHM7CitpbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwudGVsZXBob255LlRlbGVwaG9ueUludGVudHM7CiBpbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwudXRpbC5JbmRlbnRpbmdQcmludFdyaXRlcjsKIGltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC51dGlsLlhtbFV0aWxzOwogaW1wb3J0IGNvbS5hbmRyb2lkLnNlcnZlci5hbS5CYXR0ZXJ5U3RhdHNTZXJ2aWNlOwpAQCAtMjMyMiwzNiArMjMyMyw2IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwcml2YXRlIHZvaWQgaGFuZGxlQ2FwdGl2ZVBvcnRhbFRyYWNrZXJDaGVjayhOZXR3b3JrSW5mbyBpbmZvKSB7Ci0gICAgICAgIGlmIChEQkcpIGxvZygiQ2FwdGl2ZSBwb3J0YWwgY2hlY2sgIiArIGluZm8pOwotICAgICAgICBpbnQgdHlwZSA9IGluZm8uZ2V0VHlwZSgpOwotICAgICAgICBmaW5hbCBOZXR3b3JrU3RhdGVUcmFja2VyIHRoaXNOZXQgPSBtTmV0VHJhY2tlcnNbdHlwZV07Ci0gICAgICAgIGlmIChtTmV0Q29uZmlnc1t0eXBlXS5pc0RlZmF1bHQoKSkgewotICAgICAgICAgICAgaWYgKG1BY3RpdmVEZWZhdWx0TmV0d29yayAhPSAtMSAmJiBtQWN0aXZlRGVmYXVsdE5ldHdvcmsgIT0gdHlwZSkgewotICAgICAgICAgICAgICAgIGlmIChpc05ld05ldFR5cGVQcmVmZXJyZWRPdmVyQ3VycmVudE5ldFR5cGUodHlwZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKERCRykgbG9nKCJDYXB0aXZlIGNoZWNrIG9uICIgKyBpbmZvLmdldFR5cGVOYW1lKCkpOwotICAgICAgICAgICAgICAgICAgICBtQ2FwdGl2ZVBvcnRhbFRyYWNrZXIuZGV0ZWN0Q2FwdGl2ZVBvcnRhbChuZXcgTmV0d29ya0luZm8oaW5mbykpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKERCRykgbG9nKCJUZWFyIGRvd24gbG93IHByaW9yaXR5IG5ldCAiICsgaW5mby5nZXRUeXBlTmFtZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgdGVhcmRvd24odGhpc05ldCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoREJHKSBsb2coImhhbmRsZUNhcHRpdmVQb3J0YWxUcmFja2VyQ2hlY2s6IGNhbGwgY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGUgbmk9IiArIGluZm8pOwotICAgICAgICB0aGlzTmV0LmNhcHRpdmVQb3J0YWxDaGVja0NvbXBsZXRlKCk7Ci0gICAgfQotCi0gICAgLyoqIEBoaWRlICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGUoTmV0d29ya0luZm8gaW5mbykgewotICAgICAgICBlbmZvcmNlQ29ubmVjdGl2aXR5SW50ZXJuYWxQZXJtaXNzaW9uKCk7Ci0gICAgICAgIGlmIChEQkcpIGxvZygiY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGU6IG5pPSIgKyBpbmZvKTsKLSAgICAgICAgbU5ldFRyYWNrZXJzW2luZm8uZ2V0VHlwZSgpXS5jYXB0aXZlUG9ydGFsQ2hlY2tDb21wbGV0ZSgpOwotICAgIH0KLQogICAgIC8qKiBAaGlkZSAqLwogICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyB2b2lkIGNhcHRpdmVQb3J0YWxDaGVja0NvbXBsZXRlZChOZXR3b3JrSW5mbyBpbmZvLCBib29sZWFuIGlzQ2FwdGl2ZVBvcnRhbCkgewpAQCAtMjk3OCw5ICsyOTQ5LDYgQEAKICAgICAgICAgICAgICAgICAgICAgaWYgKGluZm8uZ2V0RGV0YWlsZWRTdGF0ZSgpID09CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0d29ya0luZm8uRGV0YWlsZWRTdGF0ZS5GQUlMRUQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUNvbm5lY3Rpb25GYWlsdXJlKGluZm8pOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGluZm8uZ2V0RGV0YWlsZWRTdGF0ZSgpID09Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV0YWlsZWRTdGF0ZS5DQVBUSVZFX1BPUlRBTF9DSEVDSykgewotICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2FwdGl2ZVBvcnRhbFRyYWNrZXJDaGVjayhpbmZvKTsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbmZvLmlzQ29ubmVjdGVkVG9Qcm92aXNpb25pbmdOZXR3b3JrKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgICAgICAgICAgICAgICogVE9ETzogQ3JlYXRlIENvbm5lY3Rpdml0eU1hbmFnZXIuVFlQRV9NT0JJTEVfUFJPVklTSU9OSU5HCkBAIC00NTQ2LDE1ICs0NTE0LDI3IEBACiAgICAgICAgICAgICBtZHN0LmVuYWJsZU1vYmlsZVByb3Zpc2lvbmluZyh1cmwpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKERCRykgbG9nKCJoYW5kbGVNb2JpbGVQcm92aXNpb25pbmdBY3Rpb246IG9uIGRlZmF1bHQgbmV0d29yayIpOwotICAgICAgICAgICAgSW50ZW50IG5ld0ludGVudCA9IEludGVudC5tYWtlTWFpblNlbGVjdG9yQWN0aXZpdHkoSW50ZW50LkFDVElPTl9NQUlOLAotICAgICAgICAgICAgICAgICAgICBJbnRlbnQuQ0FURUdPUllfQVBQX0JST1dTRVIpOwotICAgICAgICAgICAgbmV3SW50ZW50LnNldERhdGEoVXJpLnBhcnNlKHVybCkpOwotICAgICAgICAgICAgbmV3SW50ZW50LnNldEZsYWdzKEludGVudC5GTEFHX0FDVElWSVRZX0JST1VHSFRfVE9fRlJPTlQgfAotICAgICAgICAgICAgICAgICAgICBJbnRlbnQuRkxBR19BQ1RJVklUWV9ORVdfVEFTSyk7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIG1Db250ZXh0LnN0YXJ0QWN0aXZpdHkobmV3SW50ZW50KTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKEFjdGl2aXR5Tm90Rm91bmRFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIGxvZ2UoImhhbmRsZU1vYmlsZVByb3Zpc2lvbmluZ0FjdGlvbjogc3RhcnRBY3Rpdml0eSBmYWlsZWQiICsgZSk7CisgICAgICAgICAgICAvLyBDaGVjayBmb3IgIGFwcHMgdGhhdCBjYW4gaGFuZGxlIHByb3Zpc2lvbmluZyBmaXJzdAorICAgICAgICAgICAgSW50ZW50IHByb3Zpc2lvbmluZ0ludGVudCA9IG5ldyBJbnRlbnQoVGVsZXBob255SW50ZW50cy5BQ1RJT05fQ0FSUklFUl9TRVRVUCk7CisgICAgICAgICAgICBwcm92aXNpb25pbmdJbnRlbnQuYWRkQ2F0ZWdvcnkoVGVsZXBob255SW50ZW50cy5DQVRFR09SWV9NQ0NNTkNfUFJFRklYCisgICAgICAgICAgICAgICAgICAgICsgbVRlbGVwaG9ueU1hbmFnZXIuZ2V0U2ltT3BlcmF0b3IoKSk7CisgICAgICAgICAgICBpZiAobUNvbnRleHQuZ2V0UGFja2FnZU1hbmFnZXIoKS5yZXNvbHZlQWN0aXZpdHkocHJvdmlzaW9uaW5nSW50ZW50LCAwIC8qIGZsYWdzICovKQorICAgICAgICAgICAgICAgICAgICAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcHJvdmlzaW9uaW5nSW50ZW50LnNldEZsYWdzKEludGVudC5GTEFHX0FDVElWSVRZX0JST1VHSFRfVE9fRlJPTlQgfAorICAgICAgICAgICAgICAgICAgICAgICAgSW50ZW50LkZMQUdfQUNUSVZJVFlfTkVXX1RBU0spOworICAgICAgICAgICAgICAgIG1Db250ZXh0LnN0YXJ0QWN0aXZpdHkocHJvdmlzaW9uaW5nSW50ZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gSWYgbm8gYXBwcyBleGlzdCwgdXNlIHN0YW5kYXJkIFVSTCBBQ1RJT05fVklFVyBtZXRob2QKKyAgICAgICAgICAgICAgICBJbnRlbnQgbmV3SW50ZW50ID0gSW50ZW50Lm1ha2VNYWluU2VsZWN0b3JBY3Rpdml0eShJbnRlbnQuQUNUSU9OX01BSU4sCisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlbnQuQ0FURUdPUllfQVBQX0JST1dTRVIpOworICAgICAgICAgICAgICAgIG5ld0ludGVudC5zZXREYXRhKFVyaS5wYXJzZSh1cmwpKTsKKyAgICAgICAgICAgICAgICBuZXdJbnRlbnQuc2V0RmxhZ3MoSW50ZW50LkZMQUdfQUNUSVZJVFlfQlJPVUdIVF9UT19GUk9OVCB8CisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlbnQuRkxBR19BQ1RJVklUWV9ORVdfVEFTSyk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbUNvbnRleHQuc3RhcnRBY3Rpdml0eShuZXdJbnRlbnQpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEFjdGl2aXR5Tm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBsb2dlKCJoYW5kbGVNb2JpbGVQcm92aXNpb25pbmdBY3Rpb246IHN0YXJ0QWN0aXZpdHkgZmFpbGVkIiArIGUpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL0lucHV0TWV0aG9kTWFuYWdlclNlcnZpY2UuamF2YSBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL0lucHV0TWV0aG9kTWFuYWdlclNlcnZpY2UuamF2YQppbmRleCBhOTk2ZGJkLi5mMDYxMTQ5IDEwMDY0NAotLS0gYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9JbnB1dE1ldGhvZE1hbmFnZXJTZXJ2aWNlLmphdmEKKysrIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvSW5wdXRNZXRob2RNYW5hZ2VyU2VydmljZS5qYXZhCkBAIC0xNiw2ICsxNiw4IEBACiBwYWNrYWdlIGNvbS5hbmRyb2lkLnNlcnZlcjsKIAogaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLmNvbnRlbnQuUGFja2FnZU1vbml0b3I7CitpbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwuaW5wdXRtZXRob2QuSW5wdXRNZXRob2RTdWJ0eXBlU3dpdGNoaW5nQ29udHJvbGxlcjsKK2ltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC5pbnB1dG1ldGhvZC5JbnB1dE1ldGhvZFN1YnR5cGVTd2l0Y2hpbmdDb250cm9sbGVyLkltZVN1YnR5cGVMaXN0SXRlbTsKIGltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC5pbnB1dG1ldGhvZC5JbnB1dE1ldGhvZFV0aWxzOwogaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLmlucHV0bWV0aG9kLklucHV0TWV0aG9kVXRpbHMuSW5wdXRNZXRob2RTZXR0aW5nczsKIGltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC5vcy5IYW5kbGVyQ2FsbGVyOwpAQCAtMTE0LDEyICsxMTYsOSBAQAogaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CiBpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKIGltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7Ci1pbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CiBpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7Ci1pbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CiBpbXBvcnQgamF2YS51dGlsLkxpc3Q7CiBpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKLWltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKIAogLyoqCiAgKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgc3lzdGVtIHNlcnZpY2UgdGhhdCBtYW5hZ2VzIGlucHV0IG1ldGhvZHMuCkBAIC0xNTAsNyArMTQ5LDcgQEAKIAogICAgIHN0YXRpYyBmaW5hbCBpbnQgTVNHX0hBUkRfS0VZQk9BUkRfU1dJVENIX0NIQU5HRUQgPSA0MDAwOwogCi0gICAgc3RhdGljIGZpbmFsIGxvbmcgVElNRV9UT19SRUNPTk5FQ1QgPSAxMCoxMDAwOworICAgIHN0YXRpYyBmaW5hbCBsb25nIFRJTUVfVE9fUkVDT05ORUNUID0gMyAqIDEwMDA7CiAKICAgICBzdGF0aWMgZmluYWwgaW50IFNFQ1VSRV9TVUdHRVNUSU9OX1NQQU5TX01BWF9TSVpFID0gMjA7CiAKQEAgLTE2Nyw3ICsxNjYsNiBAQAogICAgIGZpbmFsIEhhbmRsZXJDYWxsZXIgbUNhbGxlcjsKICAgICBmaW5hbCBib29sZWFuIG1IYXNGZWF0dXJlOwogICAgIHByaXZhdGUgSW5wdXRNZXRob2RGaWxlTWFuYWdlciBtRmlsZU1hbmFnZXI7Ci0gICAgcHJpdmF0ZSBJbnB1dE1ldGhvZEFuZFN1YnR5cGVMaXN0TWFuYWdlciBtSW1MaXN0TWFuYWdlcjsKICAgICBwcml2YXRlIGZpbmFsIEhhcmRLZXlib2FyZExpc3RlbmVyIG1IYXJkS2V5Ym9hcmRMaXN0ZW5lcjsKICAgICBwcml2YXRlIGZpbmFsIFdpbmRvd01hbmFnZXJTZXJ2aWNlIG1XaW5kb3dNYW5hZ2VyU2VydmljZTsKIApAQCAtMTc5LDYgKzE3Nyw3IEBACiAgICAgZmluYWwgSGFzaE1hcDxTdHJpbmcsIElucHV0TWV0aG9kSW5mbz4gbU1ldGhvZE1hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgSW5wdXRNZXRob2RJbmZvPigpOwogICAgIHByaXZhdGUgZmluYWwgTHJ1Q2FjaGU8U3VnZ2VzdGlvblNwYW4sIElucHV0TWV0aG9kSW5mbz4gbVNlY3VyZVN1Z2dlc3Rpb25TcGFucyA9CiAgICAgICAgICAgICBuZXcgTHJ1Q2FjaGU8U3VnZ2VzdGlvblNwYW4sIElucHV0TWV0aG9kSW5mbz4oU0VDVVJFX1NVR0dFU1RJT05fU1BBTlNfTUFYX1NJWkUpOworICAgIHByaXZhdGUgZmluYWwgSW5wdXRNZXRob2RTdWJ0eXBlU3dpdGNoaW5nQ29udHJvbGxlciBtU3dpdGNoaW5nQ29udHJvbGxlcjsKIAogICAgIC8vIFVzZWQgdG8gYnJpbmcgSU1FIHNlcnZpY2UgdXAgdG8gdmlzaWJsZSBhZGp1c3RtZW50IHdoaWxlIGl0IGlzIGJlaW5nIHNob3duLgogICAgIGZpbmFsIFNlcnZpY2VDb25uZWN0aW9uIG1WaXNpYmxlQ29ubmVjdGlvbiA9IG5ldyBTZXJ2aWNlQ29ubmVjdGlvbigpIHsKQEAgLTY3Nyw3ICs2NzYsOCBAQAogICAgICAgICBtU2V0dGluZ3MgPSBuZXcgSW5wdXRNZXRob2RTZXR0aW5ncygKICAgICAgICAgICAgICAgICBtUmVzLCBjb250ZXh0LmdldENvbnRlbnRSZXNvbHZlcigpLCBtTWV0aG9kTWFwLCBtTWV0aG9kTGlzdCwgdXNlcklkKTsKICAgICAgICAgbUZpbGVNYW5hZ2VyID0gbmV3IElucHV0TWV0aG9kRmlsZU1hbmFnZXIobU1ldGhvZE1hcCwgdXNlcklkKTsKLSAgICAgICAgbUltTGlzdE1hbmFnZXIgPSBuZXcgSW5wdXRNZXRob2RBbmRTdWJ0eXBlTGlzdE1hbmFnZXIoY29udGV4dCwgdGhpcyk7CisgICAgICAgIG1Td2l0Y2hpbmdDb250cm9sbGVyID0gbmV3IElucHV0TWV0aG9kU3VidHlwZVN3aXRjaGluZ0NvbnRyb2xsZXIobVNldHRpbmdzKTsKKyAgICAgICAgbVN3aXRjaGluZ0NvbnRyb2xsZXIucmVzZXRDaXJjdWxhckxpc3RMb2NrZWQoY29udGV4dCk7CiAKICAgICAgICAgLy8gSnVzdCBjaGVja2luZyBpZiBkZWZhdWx0SW1pSWQgaXMgZW1wdHkgb3Igbm90CiAgICAgICAgIGZpbmFsIFN0cmluZyBkZWZhdWx0SW1pSWQgPSBtU2V0dGluZ3MuZ2V0U2VsZWN0ZWRJbnB1dE1ldGhvZCgpOwpAQCAtNzU3LDggKzc1Nyw4IEBACiAgICAgICAgICAgICBpZiAoREVCVUcpIHsKICAgICAgICAgICAgICAgICBTbG9nLmkoVEFHLCAiTG9jYWxlIGhhcyBiZWVuIGNoYW5nZWQgdG8gIiArIG5ld0xvY2FsZSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAvLyBJbnB1dE1ldGhvZEFuZFN1YnR5cGVMaXN0TWFuYWdlciBzaG91bGQgYmUgcmVzZXQgd2hlbiB0aGUgbG9jYWxlIGlzIGNoYW5nZWQuCi0gICAgICAgICAgICBtSW1MaXN0TWFuYWdlciA9IG5ldyBJbnB1dE1ldGhvZEFuZFN1YnR5cGVMaXN0TWFuYWdlcihtQ29udGV4dCwgdGhpcyk7CisgICAgICAgICAgICAvLyBDaXJjdWxhckxpc3Qgc2hvdWxkIGJlIHJlc2V0IHdoZW4gdGhlIGxvY2FsZSBpcyBjaGFuZ2VkLgorICAgICAgICAgICAgbVN3aXRjaGluZ0NvbnRyb2xsZXIucmVzZXRDaXJjdWxhckxpc3RMb2NrZWQobUNvbnRleHQpOwogICAgICAgICAgICAgYnVpbGRJbnB1dE1ldGhvZExpc3RMb2NrZWQobU1ldGhvZExpc3QsIG1NZXRob2RNYXAsIHJlc2V0RGVmYXVsdEVuYWJsZWRJbWUpOwogICAgICAgICAgICAgaWYgKCF1cGRhdGVPbmx5V2hlbkxvY2FsZUNoYW5nZWQpIHsKICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgc2VsZWN0ZWRJbWlJZCA9IG1TZXR0aW5ncy5nZXRTZWxlY3RlZElucHV0TWV0aG9kKCk7CkBAIC05NjAsMTcgKzk2MCw2IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwcml2YXRlIEhhc2hNYXA8SW5wdXRNZXRob2RJbmZvLCBMaXN0PElucHV0TWV0aG9kU3VidHlwZT4+Ci0gICAgICAgICAgICBnZXRFeHBsaWNpdGx5T3JJbXBsaWNpdGx5RW5hYmxlZElucHV0TWV0aG9kc0FuZFN1YnR5cGVMaXN0TG9ja2VkKCkgewotICAgICAgICBIYXNoTWFwPElucHV0TWV0aG9kSW5mbywgTGlzdDxJbnB1dE1ldGhvZFN1YnR5cGU+PiBlbmFibGVkSW5wdXRNZXRob2RBbmRTdWJ0eXBlcyA9Ci0gICAgICAgICAgICAgICAgbmV3IEhhc2hNYXA8SW5wdXRNZXRob2RJbmZvLCBMaXN0PElucHV0TWV0aG9kU3VidHlwZT4+KCk7Ci0gICAgICAgIGZvciAoSW5wdXRNZXRob2RJbmZvIGltaTogbVNldHRpbmdzLmdldEVuYWJsZWRJbnB1dE1ldGhvZExpc3RMb2NrZWQoKSkgewotICAgICAgICAgICAgZW5hYmxlZElucHV0TWV0aG9kQW5kU3VidHlwZXMucHV0KAotICAgICAgICAgICAgICAgICAgICBpbWksIG1TZXR0aW5ncy5nZXRFbmFibGVkSW5wdXRNZXRob2RTdWJ0eXBlTGlzdExvY2tlZChtQ29udGV4dCwgaW1pLCB0cnVlKSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGVuYWJsZWRJbnB1dE1ldGhvZEFuZFN1YnR5cGVzOwotICAgIH0KLQogICAgIC8qKgogICAgICAqIEBwYXJhbSBpbWlJZCBpZiBudWxsLCByZXR1cm5zIGVuYWJsZWQgc3VidHlwZXMgZm9yIHRoZSBjdXJyZW50IGltaQogICAgICAqIEByZXR1cm4gZW5hYmxlZCBzdWJ0eXBlcyBvZiB0aGUgc3BlY2lmaWVkIGltaQpAQCAtMjE1Myw3ICsyMTQyLDcgQEAKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBzeW5jaHJvbml6ZWQgKG1NZXRob2RNYXApIHsKLSAgICAgICAgICAgIGZpbmFsIEltZVN1YnR5cGVMaXN0SXRlbSBuZXh0U3VidHlwZSA9IG1JbUxpc3RNYW5hZ2VyLmdldE5leHRJbnB1dE1ldGhvZCgKKyAgICAgICAgICAgIGZpbmFsIEltZVN1YnR5cGVMaXN0SXRlbSBuZXh0U3VidHlwZSA9IG1Td2l0Y2hpbmdDb250cm9sbGVyLmdldE5leHRJbnB1dE1ldGhvZCgKICAgICAgICAgICAgICAgICAgICAgb25seUN1cnJlbnRJbWUsIG1NZXRob2RNYXAuZ2V0KG1DdXJNZXRob2RJZCksIG1DdXJyZW50U3VidHlwZSk7CiAgICAgICAgICAgICBpZiAobmV4dFN1YnR5cGUgPT0gbnVsbCkgewogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIxNjksNyArMjE1OCw3IEBACiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgc3luY2hyb25pemVkIChtTWV0aG9kTWFwKSB7Ci0gICAgICAgICAgICBmaW5hbCBJbWVTdWJ0eXBlTGlzdEl0ZW0gbmV4dFN1YnR5cGUgPSBtSW1MaXN0TWFuYWdlci5nZXROZXh0SW5wdXRNZXRob2QoCisgICAgICAgICAgICBmaW5hbCBJbWVTdWJ0eXBlTGlzdEl0ZW0gbmV4dFN1YnR5cGUgPSBtU3dpdGNoaW5nQ29udHJvbGxlci5nZXROZXh0SW5wdXRNZXRob2QoCiAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIG9ubHlDdXJyZW50SW1lICovLCBtTWV0aG9kTWFwLmdldChtQ3VyTWV0aG9kSWQpLCBtQ3VycmVudFN1YnR5cGUpOwogICAgICAgICAgICAgaWYgKG5leHRTdWJ0eXBlID09IG51bGwpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMjQyLDYgKzIyMzEsMjIgQEAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBpbnQgZ2V0SW5wdXRNZXRob2RXaW5kb3dWaXNpYmxlSGVpZ2h0KCkgeworICAgICAgICByZXR1cm4gbVdpbmRvd01hbmFnZXJTZXJ2aWNlLmdldElucHV0TWV0aG9kV2luZG93VmlzaWJsZUhlaWdodCgpOworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIG5vdGlmeVRleHRDb21taXR0ZWQoKSB7CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU2xvZy5kKFRBRywgIkdvdCB0aGUgbm90aWZpY2F0aW9uIG9mIGNvbW1pdFRleHQiKTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbCBJbnB1dE1ldGhvZEluZm8gaW1pID0gbU1ldGhvZE1hcC5nZXQobUN1ck1ldGhvZElkKTsKKyAgICAgICAgaWYgKGltaSAhPSBudWxsKSB7CisgICAgICAgICAgICBtU3dpdGNoaW5nQ29udHJvbGxlci5vbkNvbW1pdFRleHQoaW1pLCBtQ3VycmVudFN1YnR5cGUpOworICAgICAgICB9CisgICAgfQorCiAgICAgcHJpdmF0ZSB2b2lkIHNldElucHV0TWV0aG9kV2l0aFN1YnR5cGVJZChJQmluZGVyIHRva2VuLCBTdHJpbmcgaWQsIGludCBzdWJ0eXBlSWQpIHsKICAgICAgICAgc3luY2hyb25pemVkIChtTWV0aG9kTWFwKSB7CiAgICAgICAgICAgICBpZiAodG9rZW4gPT0gbnVsbCkgewpAQCAtMjYyMCw3ICsyNjI1LDggQEAKIAogICAgICAgICBzeW5jaHJvbml6ZWQgKG1NZXRob2RNYXApIHsKICAgICAgICAgICAgIGZpbmFsIEhhc2hNYXA8SW5wdXRNZXRob2RJbmZvLCBMaXN0PElucHV0TWV0aG9kU3VidHlwZT4+IGltbWlzID0KLSAgICAgICAgICAgICAgICAgICAgZ2V0RXhwbGljaXRseU9ySW1wbGljaXRseUVuYWJsZWRJbnB1dE1ldGhvZHNBbmRTdWJ0eXBlTGlzdExvY2tlZCgpOworICAgICAgICAgICAgICAgICAgICBtU2V0dGluZ3MuZ2V0RXhwbGljaXRseU9ySW1wbGljaXRseUVuYWJsZWRJbnB1dE1ldGhvZHNBbmRTdWJ0eXBlTGlzdExvY2tlZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtQ29udGV4dCk7CiAgICAgICAgICAgICBpZiAoaW1taXMgPT0gbnVsbCB8fCBpbW1pcy5zaXplKCkgPT0gMCkgewogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTI2MjgsNyArMjYzNCw3IEBACiAgICAgICAgICAgICBoaWRlSW5wdXRNZXRob2RNZW51TG9ja2VkKCk7CiAKICAgICAgICAgICAgIGZpbmFsIExpc3Q8SW1lU3VidHlwZUxpc3RJdGVtPiBpbUxpc3QgPQotICAgICAgICAgICAgICAgICAgICBtSW1MaXN0TWFuYWdlci5nZXRTb3J0ZWRJbnB1dE1ldGhvZEFuZFN1YnR5cGVMaXN0KAorICAgICAgICAgICAgICAgICAgICBtU3dpdGNoaW5nQ29udHJvbGxlci5nZXRTb3J0ZWRJbnB1dE1ldGhvZEFuZFN1YnR5cGVMaXN0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dTdWJ0eXBlcywgbUlucHV0U2hvd24sIGlzU2NyZWVuTG9ja2VkKTsKIAogICAgICAgICAgICAgaWYgKGxhc3RJbnB1dE1ldGhvZFN1YnR5cGVJZCA9PSBOT1RfQV9TVUJUWVBFX0lEKSB7CkBAIC0yNzQ3LDY2ICsyNzUzLDYgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEltZVN1YnR5cGVMaXN0SXRlbSBpbXBsZW1lbnRzIENvbXBhcmFibGU8SW1lU3VidHlwZUxpc3RJdGVtPiB7Ci0gICAgICAgIHB1YmxpYyBmaW5hbCBDaGFyU2VxdWVuY2UgbUltZU5hbWU7Ci0gICAgICAgIHB1YmxpYyBmaW5hbCBDaGFyU2VxdWVuY2UgbVN1YnR5cGVOYW1lOwotICAgICAgICBwdWJsaWMgZmluYWwgSW5wdXRNZXRob2RJbmZvIG1JbWk7Ci0gICAgICAgIHB1YmxpYyBmaW5hbCBpbnQgbVN1YnR5cGVJZDsKLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIG1Jc1N5c3RlbUxvY2FsZTsKLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIG1Jc1N5c3RlbUxhbmd1YWdlOwotCi0gICAgICAgIHB1YmxpYyBJbWVTdWJ0eXBlTGlzdEl0ZW0oQ2hhclNlcXVlbmNlIGltZU5hbWUsIENoYXJTZXF1ZW5jZSBzdWJ0eXBlTmFtZSwKLSAgICAgICAgICAgICAgICBJbnB1dE1ldGhvZEluZm8gaW1pLCBpbnQgc3VidHlwZUlkLCBTdHJpbmcgc3VidHlwZUxvY2FsZSwgU3RyaW5nIHN5c3RlbUxvY2FsZSkgewotICAgICAgICAgICAgbUltZU5hbWUgPSBpbWVOYW1lOwotICAgICAgICAgICAgbVN1YnR5cGVOYW1lID0gc3VidHlwZU5hbWU7Ci0gICAgICAgICAgICBtSW1pID0gaW1pOwotICAgICAgICAgICAgbVN1YnR5cGVJZCA9IHN1YnR5cGVJZDsKLSAgICAgICAgICAgIGlmIChUZXh0VXRpbHMuaXNFbXB0eShzdWJ0eXBlTG9jYWxlKSkgewotICAgICAgICAgICAgICAgIG1Jc1N5c3RlbUxvY2FsZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIG1Jc1N5c3RlbUxhbmd1YWdlID0gZmFsc2U7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1Jc1N5c3RlbUxvY2FsZSA9IHN1YnR5cGVMb2NhbGUuZXF1YWxzKHN5c3RlbUxvY2FsZSk7Ci0gICAgICAgICAgICAgICAgbUlzU3lzdGVtTGFuZ3VhZ2UgPSBtSXNTeXN0ZW1Mb2NhbGUKLSAgICAgICAgICAgICAgICAgICAgICAgIHx8IHN1YnR5cGVMb2NhbGUuc3RhcnRzV2l0aChzeXN0ZW1Mb2NhbGUuc3Vic3RyaW5nKDAsIDIpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhJbWVTdWJ0eXBlTGlzdEl0ZW0gb3RoZXIpIHsKLSAgICAgICAgICAgIGlmIChUZXh0VXRpbHMuaXNFbXB0eShtSW1lTmFtZSkpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChUZXh0VXRpbHMuaXNFbXB0eShvdGhlci5tSW1lTmFtZSkpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIVRleHRVdGlscy5lcXVhbHMobUltZU5hbWUsIG90aGVyLm1JbWVOYW1lKSkgewotICAgICAgICAgICAgICAgIHJldHVybiBtSW1lTmFtZS50b1N0cmluZygpLmNvbXBhcmVUbyhvdGhlci5tSW1lTmFtZS50b1N0cmluZygpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChUZXh0VXRpbHMuZXF1YWxzKG1TdWJ0eXBlTmFtZSwgb3RoZXIubVN1YnR5cGVOYW1lKSkgewotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG1Jc1N5c3RlbUxvY2FsZSkgewotICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChvdGhlci5tSXNTeXN0ZW1Mb2NhbGUpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChtSXNTeXN0ZW1MYW5ndWFnZSkgewotICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChvdGhlci5tSXNTeXN0ZW1MYW5ndWFnZSkgewotICAgICAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKFRleHRVdGlscy5pc0VtcHR5KG1TdWJ0eXBlTmFtZSkpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChUZXh0VXRpbHMuaXNFbXB0eShvdGhlci5tU3VidHlwZU5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG1TdWJ0eXBlTmFtZS50b1N0cmluZygpLmNvbXBhcmVUbyhvdGhlci5tU3VidHlwZU5hbWUudG9TdHJpbmcoKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBJbWVTdWJ0eXBlTGlzdEFkYXB0ZXIgZXh0ZW5kcyBBcnJheUFkYXB0ZXI8SW1lU3VidHlwZUxpc3RJdGVtPiB7CiAgICAgICAgIHByaXZhdGUgZmluYWwgTGF5b3V0SW5mbGF0ZXIgbUluZmxhdGVyOwogICAgICAgICBwcml2YXRlIGZpbmFsIGludCBtVGV4dFZpZXdSZXNvdXJjZUlkOwpAQCAtMzE3OCwxMjMgKzMxMjQsNiBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgSW5wdXRNZXRob2RBbmRTdWJ0eXBlTGlzdE1hbmFnZXIgewotICAgICAgICBwcml2YXRlIGZpbmFsIENvbnRleHQgbUNvbnRleHQ7Ci0gICAgICAgIC8vIFVzZWQgdG8gbG9hZCBsYWJlbAotICAgICAgICBwcml2YXRlIGZpbmFsIFBhY2thZ2VNYW5hZ2VyIG1QbTsKLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBJbnB1dE1ldGhvZE1hbmFnZXJTZXJ2aWNlIG1JbW1zOwotICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtU3lzdGVtTG9jYWxlU3RyOwotICAgICAgICBwdWJsaWMgSW5wdXRNZXRob2RBbmRTdWJ0eXBlTGlzdE1hbmFnZXIoQ29udGV4dCBjb250ZXh0LCBJbnB1dE1ldGhvZE1hbmFnZXJTZXJ2aWNlIGltbXMpIHsKLSAgICAgICAgICAgIG1Db250ZXh0ID0gY29udGV4dDsKLSAgICAgICAgICAgIG1QbSA9IGNvbnRleHQuZ2V0UGFja2FnZU1hbmFnZXIoKTsKLSAgICAgICAgICAgIG1JbW1zID0gaW1tczsKLSAgICAgICAgICAgIGZpbmFsIExvY2FsZSBsb2NhbGUgPSBjb250ZXh0LmdldFJlc291cmNlcygpLmdldENvbmZpZ3VyYXRpb24oKS5sb2NhbGU7Ci0gICAgICAgICAgICBtU3lzdGVtTG9jYWxlU3RyID0gbG9jYWxlICE9IG51bGwgPyBsb2NhbGUudG9TdHJpbmcoKSA6ICIiOwotICAgICAgICB9Ci0KLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBUcmVlTWFwPElucHV0TWV0aG9kSW5mbywgTGlzdDxJbnB1dE1ldGhvZFN1YnR5cGU+PiBtU29ydGVkSW1taXMgPQotICAgICAgICAgICAgICAgIG5ldyBUcmVlTWFwPElucHV0TWV0aG9kSW5mbywgTGlzdDxJbnB1dE1ldGhvZFN1YnR5cGU+PigKLSAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDb21wYXJhdG9yPElucHV0TWV0aG9kSW5mbz4oKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKElucHV0TWV0aG9kSW5mbyBpbWkxLCBJbnB1dE1ldGhvZEluZm8gaW1pMikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW1pMiA9PSBudWxsKSByZXR1cm4gMDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGltaTEgPT0gbnVsbCkgcmV0dXJuIDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtUG0gPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGltaTEuZ2V0SWQoKS5jb21wYXJlVG8oaW1pMi5nZXRJZCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyU2VxdWVuY2UgaW1pSWQxID0gaW1pMS5sb2FkTGFiZWwobVBtKSArICIvIiArIGltaTEuZ2V0SWQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhclNlcXVlbmNlIGltaUlkMiA9IGltaTIubG9hZExhYmVsKG1QbSkgKyAiLyIgKyBpbWkyLmdldElkKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbWlJZDEudG9TdHJpbmcoKS5jb21wYXJlVG8oaW1pSWQyLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotCi0gICAgICAgIHB1YmxpYyBJbWVTdWJ0eXBlTGlzdEl0ZW0gZ2V0TmV4dElucHV0TWV0aG9kKAotICAgICAgICAgICAgICAgIGJvb2xlYW4gb25seUN1cnJlbnRJbWUsIElucHV0TWV0aG9kSW5mbyBpbWksIElucHV0TWV0aG9kU3VidHlwZSBzdWJ0eXBlKSB7Ci0gICAgICAgICAgICBpZiAoaW1pID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZpbmFsIExpc3Q8SW1lU3VidHlwZUxpc3RJdGVtPiBpbUxpc3QgPSBnZXRTb3J0ZWRJbnB1dE1ldGhvZEFuZFN1YnR5cGVMaXN0KCk7Ci0gICAgICAgICAgICBpZiAoaW1MaXN0LnNpemUoKSA8PSAxKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmaW5hbCBpbnQgTiA9IGltTGlzdC5zaXplKCk7Ci0gICAgICAgICAgICBmaW5hbCBpbnQgY3VycmVudFN1YnR5cGVJZCA9IHN1YnR5cGUgIT0gbnVsbAotICAgICAgICAgICAgICAgICAgICA/IElucHV0TWV0aG9kVXRpbHMuZ2V0U3VidHlwZUlkRnJvbUhhc2hDb2RlKGltaSwgc3VidHlwZS5oYXNoQ29kZSgpKQotICAgICAgICAgICAgICAgICAgICA6IE5PVF9BX1NVQlRZUEVfSUQ7Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkgewotICAgICAgICAgICAgICAgIGZpbmFsIEltZVN1YnR5cGVMaXN0SXRlbSBpc2xpID0gaW1MaXN0LmdldChpKTsKLSAgICAgICAgICAgICAgICBpZiAoaXNsaS5tSW1pLmVxdWFscyhpbWkpICYmIGlzbGkubVN1YnR5cGVJZCA9PSBjdXJyZW50U3VidHlwZUlkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghb25seUN1cnJlbnRJbWUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbUxpc3QuZ2V0KChpICsgMSkgJSBOKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE4gLSAxOyArK2opIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIEltZVN1YnR5cGVMaXN0SXRlbSBjYW5kaWRhdGUgPSBpbUxpc3QuZ2V0KChpICsgaiArIDEpICUgTik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FuZGlkYXRlLm1JbWkuZXF1YWxzKGltaSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FuZGlkYXRlOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgcHVibGljIExpc3Q8SW1lU3VidHlwZUxpc3RJdGVtPiBnZXRTb3J0ZWRJbnB1dE1ldGhvZEFuZFN1YnR5cGVMaXN0KCkgewotICAgICAgICAgICAgcmV0dXJuIGdldFNvcnRlZElucHV0TWV0aG9kQW5kU3VidHlwZUxpc3QodHJ1ZSwgZmFsc2UsIGZhbHNlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHB1YmxpYyBMaXN0PEltZVN1YnR5cGVMaXN0SXRlbT4gZ2V0U29ydGVkSW5wdXRNZXRob2RBbmRTdWJ0eXBlTGlzdChib29sZWFuIHNob3dTdWJ0eXBlcywKLSAgICAgICAgICAgICAgICBib29sZWFuIGlucHV0U2hvd24sIGJvb2xlYW4gaXNTY3JlZW5Mb2NrZWQpIHsKLSAgICAgICAgICAgIGZpbmFsIEFycmF5TGlzdDxJbWVTdWJ0eXBlTGlzdEl0ZW0+IGltTGlzdCA9IG5ldyBBcnJheUxpc3Q8SW1lU3VidHlwZUxpc3RJdGVtPigpOwotICAgICAgICAgICAgZmluYWwgSGFzaE1hcDxJbnB1dE1ldGhvZEluZm8sIExpc3Q8SW5wdXRNZXRob2RTdWJ0eXBlPj4gaW1taXMgPQotICAgICAgICAgICAgICAgICAgICBtSW1tcy5nZXRFeHBsaWNpdGx5T3JJbXBsaWNpdGx5RW5hYmxlZElucHV0TWV0aG9kc0FuZFN1YnR5cGVMaXN0TG9ja2VkKCk7Ci0gICAgICAgICAgICBpZiAoaW1taXMgPT0gbnVsbCB8fCBpbW1pcy5zaXplKCkgPT0gMCkgewotICAgICAgICAgICAgICAgIHJldHVybiBDb2xsZWN0aW9ucy5lbXB0eUxpc3QoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1Tb3J0ZWRJbW1pcy5jbGVhcigpOwotICAgICAgICAgICAgbVNvcnRlZEltbWlzLnB1dEFsbChpbW1pcyk7Ci0gICAgICAgICAgICBmb3IgKElucHV0TWV0aG9kSW5mbyBpbWkgOiBtU29ydGVkSW1taXMua2V5U2V0KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoaW1pID09IG51bGwpIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIExpc3Q8SW5wdXRNZXRob2RTdWJ0eXBlPiBleHBsaWNpdGx5T3JJbXBsaWNpdGx5RW5hYmxlZFN1YnR5cGVMaXN0ID0gaW1taXMuZ2V0KGltaSk7Ci0gICAgICAgICAgICAgICAgSGFzaFNldDxTdHJpbmc+IGVuYWJsZWRTdWJ0eXBlU2V0ID0gbmV3IEhhc2hTZXQ8U3RyaW5nPigpOwotICAgICAgICAgICAgICAgIGZvciAoSW5wdXRNZXRob2RTdWJ0eXBlIHN1YnR5cGU6IGV4cGxpY2l0bHlPckltcGxpY2l0bHlFbmFibGVkU3VidHlwZUxpc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgZW5hYmxlZFN1YnR5cGVTZXQuYWRkKFN0cmluZy52YWx1ZU9mKHN1YnR5cGUuaGFzaENvZGUoKSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBmaW5hbCBDaGFyU2VxdWVuY2UgaW1lTGFiZWwgPSBpbWkubG9hZExhYmVsKG1QbSk7Ci0gICAgICAgICAgICAgICAgaWYgKHNob3dTdWJ0eXBlcyAmJiBlbmFibGVkU3VidHlwZVNldC5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBzdWJ0eXBlQ291bnQgPSBpbWkuZ2V0U3VidHlwZUNvdW50KCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgewotICAgICAgICAgICAgICAgICAgICAgICAgU2xvZy52KFRBRywgIkFkZCBzdWJ0eXBlczogIiArIHN1YnR5cGVDb3VudCArICIsICIgKyBpbWkuZ2V0SWQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBzdWJ0eXBlQ291bnQ7ICsraikgewotICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgSW5wdXRNZXRob2RTdWJ0eXBlIHN1YnR5cGUgPSBpbWkuZ2V0U3VidHlwZUF0KGopOwotICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIHN1YnR5cGVIYXNoQ29kZSA9IFN0cmluZy52YWx1ZU9mKHN1YnR5cGUuaGFzaENvZGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBzaG93IGFsbCBlbmFibGVkIElNRXMgYW5kIHN1YnR5cGVzIHdoZW4gYW4gSU1FIGlzIHNob3duLgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuYWJsZWRTdWJ0eXBlU2V0LmNvbnRhaW5zKHN1YnR5cGVIYXNoQ29kZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKChpbnB1dFNob3duICYmICFpc1NjcmVlbkxvY2tlZCkgfHwgIXN1YnR5cGUuaXNBdXhpbGlhcnkoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBDaGFyU2VxdWVuY2Ugc3VidHlwZUxhYmVsID0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnR5cGUub3ZlcnJpZGVzSW1wbGljaXRseUVuYWJsZWRTdWJ0eXBlKCkgPyBudWxsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc3VidHlwZS5nZXREaXNwbGF5TmFtZShtQ29udGV4dCwgaW1pLmdldFBhY2thZ2VOYW1lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1pLmdldFNlcnZpY2VJbmZvKCkuYXBwbGljYXRpb25JbmZvKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbUxpc3QuYWRkKG5ldyBJbWVTdWJ0eXBlTGlzdEl0ZW0oaW1lTGFiZWwsIHN1YnR5cGVMYWJlbCwgaW1pLCBqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VidHlwZS5nZXRMb2NhbGUoKSwgbVN5c3RlbUxvY2FsZVN0cikpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZpbmcgdGhpcyBzdWJ0eXBlIGZyb20gZW5hYmxlZFN1YnR5cGVTZXQgYmVjYXVzZSB3ZSBubyBsb25nZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGFkZCBhbiBlbnRyeSBvZiB0aGlzIHN1YnR5cGUgdG8gaW1MaXN0IHRvIGF2b2lkIGR1cGxpY2F0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbnRyaWVzLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWRTdWJ0eXBlU2V0LnJlbW92ZShzdWJ0eXBlSGFzaENvZGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaW1MaXN0LmFkZChuZXcgSW1lU3VidHlwZUxpc3RJdGVtKGltZUxhYmVsLCBudWxsLCBpbWksIE5PVF9BX1NVQlRZUEVfSUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbVN5c3RlbUxvY2FsZVN0cikpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIENvbGxlY3Rpb25zLnNvcnQoaW1MaXN0KTsKLSAgICAgICAgICAgIHJldHVybiBpbUxpc3Q7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICAvLyBUT0RPOiBDYWNoZSB0aGUgc3RhdGUgZm9yIGVhY2ggdXNlciBhbmQgcmVzZXQgd2hlbiB0aGUgY2FjaGVkIHVzZXIgaXMgcmVtb3ZlZC4KICAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBJbnB1dE1ldGhvZEZpbGVNYW5hZ2VyIHsKICAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNZU1RFTV9QQVRIID0gInN5c3RlbSI7CmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9OZXR3b3JrTWFuYWdlbWVudFNlcnZpY2UuamF2YSBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL05ldHdvcmtNYW5hZ2VtZW50U2VydmljZS5qYXZhCmluZGV4IDkyZjk5YzIuLjlhMGQ2NDggMTAwNjQ0Ci0tLSBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL05ldHdvcmtNYW5hZ2VtZW50U2VydmljZS5qYXZhCisrKyBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL05ldHdvcmtNYW5hZ2VtZW50U2VydmljZS5qYXZhCkBAIC00NTUsNiArNDU1LDcgQEAKIAogICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgcHVibGljIGJvb2xlYW4gb25FdmVudChpbnQgY29kZSwgU3RyaW5nIHJhdywgU3RyaW5nW10gY29va2VkKSB7CisgICAgICAgICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlID0gU3RyaW5nLmZvcm1hdCgiSW52YWxpZCBldmVudCBmcm9tIGRhZW1vbiAoJXMpIiwgcmF3KTsKICAgICAgICAgICAgIHN3aXRjaCAoY29kZSkgewogICAgICAgICAgICAgY2FzZSBOZXRkUmVzcG9uc2VDb2RlLkludGVyZmFjZUNoYW5nZToKICAgICAgICAgICAgICAgICAgICAgLyoKQEAgLTQ2NSw4ICs0NjYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICJOTk4gSWZhY2UgbGlua3N0YXR1cyA8bmFtZT4gPHVwL2Rvd24+IgogICAgICAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICAgICAgaWYgKGNvb2tlZC5sZW5ndGggPCA0IHx8ICFjb29rZWRbMV0uZXF1YWxzKCJJZmFjZSIpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcuZm9ybWF0KCJJbnZhbGlkIGV2ZW50IGZyb20gZGFlbW9uICglcykiLCByYXcpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZXJyb3JNZXNzYWdlKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBpZiAoY29va2VkWzJdLmVxdWFscygiYWRkZWQiKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5SW50ZXJmYWNlQWRkZWQoY29va2VkWzNdKTsKQEAgLTQ4MSw4ICs0ODEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5SW50ZXJmYWNlTGlua1N0YXRlQ2hhbmdlZChjb29rZWRbM10sIGNvb2tlZFs0XS5lcXVhbHMoInVwIikpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcuZm9ybWF0KCJJbnZhbGlkIGV2ZW50IGZyb20gZGFlbW9uICglcykiLCByYXcpKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbihlcnJvck1lc3NhZ2UpOwogICAgICAgICAgICAgICAgICAgICAvLyBicmVhazsKICAgICAgICAgICAgIGNhc2UgTmV0ZFJlc3BvbnNlQ29kZS5CYW5kd2lkdGhDb250cm9sOgogICAgICAgICAgICAgICAgICAgICAvKgpAQCAtNDkwLDE1ICs0ODksMTMgQEAKICAgICAgICAgICAgICAgICAgICAgICogRm9ybWF0OiAiTk5OIGxpbWl0IGFsZXJ0IDxhbGVydE5hbWU+IDxpZmFjZU5hbWU+IgogICAgICAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICAgICAgaWYgKGNvb2tlZC5sZW5ndGggPCA1IHx8ICFjb29rZWRbMV0uZXF1YWxzKCJsaW1pdCIpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcuZm9ybWF0KCJJbnZhbGlkIGV2ZW50IGZyb20gZGFlbW9uICglcykiLCByYXcpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZXJyb3JNZXNzYWdlKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBpZiAoY29va2VkWzJdLmVxdWFscygiYWxlcnQiKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5TGltaXRSZWFjaGVkKGNvb2tlZFszXSwgY29va2VkWzRdKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLmZvcm1hdCgiSW52YWxpZCBldmVudCBmcm9tIGRhZW1vbiAoJXMpIiwgcmF3KSk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZXJyb3JNZXNzYWdlKTsKICAgICAgICAgICAgICAgICAgICAgLy8gYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5ldGRSZXNwb25zZUNvZGUuSW50ZXJmYWNlQ2xhc3NBY3Rpdml0eToKICAgICAgICAgICAgICAgICAgICAgLyoKQEAgLTUwNiw4ICs1MDMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgKiBGb3JtYXQ6ICJOTk4gSWZhY2VDbGFzcyA8YWN0aXZlL2lkbGU+IDxsYWJlbD4iCiAgICAgICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgICAgICBpZiAoY29va2VkLmxlbmd0aCA8IDQgfHwgIWNvb2tlZFsxXS5lcXVhbHMoIklmYWNlQ2xhc3MiKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLmZvcm1hdCgiSW52YWxpZCBldmVudCBmcm9tIGRhZW1vbiAoJXMpIiwgcmF3KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKGVycm9yTWVzc2FnZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc0FjdGl2ZSA9IGNvb2tlZFsyXS5lcXVhbHMoImFjdGl2ZSIpOwogICAgICAgICAgICAgICAgICAgICBub3RpZnlJbnRlcmZhY2VDbGFzc0FjdGl2aXR5KGNvb2tlZFszXSwgaXNBY3RpdmUpOwpAQCAtNTE5LDkgKzUxNSw4IEBACiAgICAgICAgICAgICAgICAgICAgICAqIEZvcm1hdDogIk5OTiBBZGRyZXNzIHVwZGF0ZWQgPGFkZHI+IDxpZmFjZT4gPGZsYWdzPiA8c2NvcGU+IgogICAgICAgICAgICAgICAgICAgICAgKiAgICAgICAgICJOTk4gQWRkcmVzcyByZW1vdmVkIDxhZGRyPiA8aWZhY2U+IDxmbGFncz4gPHNjb3BlPiIKICAgICAgICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZyBtc2cgPSBTdHJpbmcuZm9ybWF0KCJJbnZhbGlkIGV2ZW50IGZyb20gZGFlbW9uICglcykiLCByYXcpOwotICAgICAgICAgICAgICAgICAgICBpZiAoY29va2VkLmxlbmd0aCA8IDYgfHwgIWNvb2tlZFsxXS5lcXVhbHMoIkFkZHJlc3MiKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbihtc2cpOworICAgICAgICAgICAgICAgICAgICBpZiAoY29va2VkLmxlbmd0aCA8IDcgfHwgIWNvb2tlZFsxXS5lcXVhbHMoIkFkZHJlc3MiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbihlcnJvck1lc3NhZ2UpOwogICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAgaW50IGZsYWdzOwpAQCAtNTMwLDcgKzUyNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IEludGVnZXIucGFyc2VJbnQoY29va2VkWzVdKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlID0gSW50ZWdlci5wYXJzZUludChjb29rZWRbNl0pOwogICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKG1zZyk7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKGVycm9yTWVzc2FnZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgICAgICBpZiAoY29va2VkWzJdLmVxdWFscygidXBkYXRlZCIpKSB7CmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9XYWxscGFwZXJNYW5hZ2VyU2VydmljZS5qYXZhIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvV2FsbHBhcGVyTWFuYWdlclNlcnZpY2UuamF2YQppbmRleCBjMWE2MGVlLi40OTBmYTBjIDEwMDY0NAotLS0gYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9XYWxscGFwZXJNYW5hZ2VyU2VydmljZS5qYXZhCisrKyBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL1dhbGxwYXBlck1hbmFnZXJTZXJ2aWNlLmphdmEKQEAgLTg1LDcgKzg1LDcgQEAKIGltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC51dGlsLkpvdXJuYWxlZEZpbGU7CiAKIGNsYXNzIFdhbGxwYXBlck1hbmFnZXJTZXJ2aWNlIGV4dGVuZHMgSVdhbGxwYXBlck1hbmFnZXIuU3R1YiB7Ci0gICAgc3RhdGljIGZpbmFsIFN0cmluZyBUQUcgPSAiV2FsbHBhcGVyU2VydmljZSI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBUQUcgPSAiV2FsbHBhcGVyTWFuYWdlclNlcnZpY2UiOwogICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CiAKICAgICBmaW5hbCBPYmplY3QgbUxvY2sgPSBuZXcgT2JqZWN0WzBdOwpkaWZmIC0tZ2l0IGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWFuYWdlclNlcnZpY2UuamF2YSBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hbmFnZXJTZXJ2aWNlLmphdmEKaW5kZXggY2NhYzBkMy4uNWUxMGQyNiAxMDA2NDQKLS0tIGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWFuYWdlclNlcnZpY2UuamF2YQorKysgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNYW5hZ2VyU2VydmljZS5qYXZhCkBAIC00NCw2ICs0NCw3IEBACiBpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5kaXNwbGF5LkRpc3BsYXlNYW5hZ2VyOwogaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuaW5wdXQuSW5wdXRNYW5hZ2VyOwogaW1wb3J0IGFuZHJvaWQubmV0LlVyaTsKK2ltcG9ydCBhbmRyb2lkLm9wZW5nbC5NYXRyaXg7CiBpbXBvcnQgYW5kcm9pZC5vcy5CaW5kZXI7CiBpbXBvcnQgYW5kcm9pZC5vcy5CdWlsZDsKIGltcG9ydCBhbmRyb2lkLm9zLkJ1bmRsZTsKQEAgLTUxLDYgKzUyLDcgQEAKIGltcG9ydCBhbmRyb2lkLm9zLklCaW5kZXI7CiBpbXBvcnQgYW5kcm9pZC5vcy5Mb29wZXI7CiBpbXBvcnQgYW5kcm9pZC5vcy5NZXNzYWdlOworaW1wb3J0IGFuZHJvaWQub3MuUGFyY2VsOwogaW1wb3J0IGFuZHJvaWQub3MuUHJvY2VzczsKIGltcG9ydCBhbmRyb2lkLm9zLlJlbW90ZUNhbGxiYWNrTGlzdDsKIGltcG9ydCBhbmRyb2lkLm9zLlJlbW90ZUV4Y2VwdGlvbjsKQEAgLTEzOSw2ICsxNDEsNTEgQEAKIAogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfUE9PTF9TSVpFID0gMTA7CiAKKyAgICAvKiogTWF0cml4IGFuZCBvZmZzZXQgdXNlZCBmb3IgY29udmVydGluZyBjb2xvciB0byBncmF5c2NhbGUuICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZmxvYXRbXSBHUkFZU0NBTEVfTUFUUklYID0gbmV3IGZsb2F0W10geworICAgICAgICAuMjEyNmYsIC4yMTI2ZiwgLjIxMjZmLCAwLAorICAgICAgICAuNzE1MmYsIC43MTUyZiwgLjcxNTJmLCAwLAorICAgICAgICAuMDcyMmYsIC4wNzIyZiwgLjA3MjJmLCAwLAorICAgICAgICAgICAgIDAsICAgICAgMCwgICAgICAwLCAxCisgICAgfTsKKworICAgIC8qKiBNYXRyaXggYW5kIG9mZnNldCB1c2VkIGZvciBzdGFuZGFyZCBkaXNwbGF5IGludmVyc2lvbi4gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBmbG9hdFtdIElOVkVSU0lPTl9NQVRSSVhfU1RBTkRBUkQgPSBuZXcgZmxvYXRbXSB7CisgICAgICAgIC0xLCAgMCwgIDAsIDAsCisgICAgICAgICAwLCAtMSwgIDAsIDAsCisgICAgICAgICAwLCAgMCwgLTEsIDAsCisgICAgICAgICAxLCAgMSwgIDEsIDEKKyAgICB9OworCisgICAgLyoqIE1hdHJpeCBhbmQgb2Zmc2V0IHVzZWQgZm9yIGh1ZS1vbmx5IGRpc3BsYXkgaW52ZXJzaW9uLiAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGZsb2F0W10gSU5WRVJTSU9OX01BVFJJWF9IVUVfT05MWSA9IG5ldyBmbG9hdFtdIHsKKyAgICAgICAgICAwLCAuNWYsIC41ZiwgMCwKKyAgICAgICAgLjVmLCAgIDAsIC41ZiwgMCwKKyAgICAgICAgLjVmLCAuNWYsICAgMCwgMCwKKyAgICAgICAgICAwLCAgIDAsICAgMCwgMQorICAgIH07CisKKyAgICAvKiogTWF0cml4IGFuZCBvZmZzZXQgdXNlZCBmb3IgdmFsdWUtb25seSBkaXNwbGF5IGludmVyc2lvbi4gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBmbG9hdFtdIElOVkVSU0lPTl9NQVRSSVhfVkFMVUVfT05MWSA9IG5ldyBmbG9hdFtdIHsKKyAgICAgICAgICAgMCwgLS41ZiwgLS41ZiwgMCwKKyAgICAgICAgLS41ZiwgICAgMCwgLS41ZiwgMCwKKyAgICAgICAgLS41ZiwgLS41ZiwgICAgMCwgMCwKKyAgICAgICAgICAgMSwgICAgMSwgICAgMSwgMQorICAgIH07CisKKyAgICAvKiogRGVmYXVsdCBjb250cmFzdCBmb3IgZGlzcGxheSBjb250cmFzdCBlbmhhbmNlbWVudC4gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBmbG9hdCBERUZBVUxUX0RJU1BMQVlfQ09OVFJBU1QgPSAyOworCisgICAgLyoqIERlZmF1bHQgYnJpZ2h0bmVzcyBmb3IgZGlzcGxheSBjb250cmFzdCBlbmhhbmNlbWVudC4gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBmbG9hdCBERUZBVUxUX0RJU1BMQVlfQlJJR0hUTkVTUyA9IDA7CisKKyAgICAvKiogRGVmYXVsdCBpbnZlcnNpb24gbW9kZSBmb3IgZGlzcGxheSBjb2xvciBpbnZlcnNpb24uICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfRElTUExBWV9JTlZFUlNJT04gPSBBY2Nlc3NpYmlsaXR5TWFuYWdlci5JTlZFUlNJT05fU1RBTkRBUkQ7CisKKyAgICAvKiogRGVmYXVsdCBpbnZlcnNpb24gbW9kZSBmb3IgZGlzcGxheSBjb2xvciBjb3JyZWN0aW9uLiAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX0RJU1BMQVlfREFMVE9OSVpFUiA9CisgICAgICAgICAgICBBY2Nlc3NpYmlsaXR5TWFuYWdlci5EQUxUT05JWkVSX0NPUlJFQ1RfREVVVEVSQU5PTUFMWTsKKwogICAgIHByaXZhdGUgc3RhdGljIGludCBzSWRDb3VudGVyID0gMDsKIAogICAgIHByaXZhdGUgc3RhdGljIGludCBzTmV4dFdpbmRvd0lkOwpAQCAtMTI5Nyw2ICsxMzQ0LDcgQEAKICAgICAgICAgdXBkYXRlRmlsdGVyS2V5RXZlbnRzTG9ja2VkKHVzZXJTdGF0ZSk7CiAgICAgICAgIHVwZGF0ZVRvdWNoRXhwbG9yYXRpb25Mb2NrZWQodXNlclN0YXRlKTsKICAgICAgICAgdXBkYXRlRW5oYW5jZWRXZWJBY2Nlc3NpYmlsaXR5TG9ja2VkKHVzZXJTdGF0ZSk7CisgICAgICAgIHVwZGF0ZURpc3BsYXlDb2xvckFkanVzdG1lbnRTZXR0aW5nc0xvY2tlZCh1c2VyU3RhdGUpOwogICAgICAgICBzY2hlZHVsZVVwZGF0ZUlucHV0RmlsdGVyKHVzZXJTdGF0ZSk7CiAgICAgICAgIHNjaGVkdWxlVXBkYXRlQ2xpZW50c0lmTmVlZGVkTG9ja2VkKHVzZXJTdGF0ZSk7CiAgICAgfQpAQCAtMTM1NSw2ICsxNDAzLDcgQEAKICAgICAgICAgc29tdGhpbmdDaGFuZ2VkIHw9IHJlYWRUb3VjaEV4cGxvcmF0aW9uRW5hYmxlZFNldHRpbmdMb2NrZWQodXNlclN0YXRlKTsKICAgICAgICAgc29tdGhpbmdDaGFuZ2VkIHw9IHJlYWRFbmhhbmNlZFdlYkFjY2Vzc2liaWxpdHlFbmFibGVkQ2hhbmdlZExvY2tlZCh1c2VyU3RhdGUpOwogICAgICAgICBzb210aGluZ0NoYW5nZWQgfD0gcmVhZERpc3BsYXlNYWduaWZpY2F0aW9uRW5hYmxlZFNldHRpbmdMb2NrZWQodXNlclN0YXRlKTsKKyAgICAgICAgc29tdGhpbmdDaGFuZ2VkIHw9IHJlYWREaXNwbGF5Q29sb3JBZGp1c3RtZW50U2V0dGluZ3NMb2NrZWQodXNlclN0YXRlKTsKICAgICAgICAgcmV0dXJuIHNvbXRoaW5nQ2hhbmdlZDsKICAgICB9CiAKQEAgLTE0MDMsNiArMTQ1MiwxMjQgQEAKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBwcml2YXRlIGJvb2xlYW4gcmVhZERpc3BsYXlDb2xvckFkanVzdG1lbnRTZXR0aW5nc0xvY2tlZChVc2VyU3RhdGUgdXNlclN0YXRlKSB7CisgICAgICAgIGZpbmFsIENvbnRlbnRSZXNvbHZlciBjciA9IG1Db250ZXh0LmdldENvbnRlbnRSZXNvbHZlcigpOworICAgICAgICBmaW5hbCBpbnQgdXNlcklkID0gdXNlclN0YXRlLm1Vc2VySWQ7CisKKyAgICAgICAgYm9vbGVhbiBoYXNDb2xvclRyYW5zZm9ybSA9IFNldHRpbmdzLlNlY3VyZS5nZXRJbnRGb3JVc2VyKAorICAgICAgICAgICAgICAgIGNyLCBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0lOVkVSU0lPTl9FTkFCTEVELCAwLCB1c2VySWQpID09IDE7CisKKyAgICAgICAgaWYgKCFoYXNDb2xvclRyYW5zZm9ybSkgeworICAgICAgICAgICAgaGFzQ29sb3JUcmFuc2Zvcm0gfD0gU2V0dGluZ3MuU2VjdXJlLmdldEludEZvclVzZXIoCisgICAgICAgICAgICAgICAgY3IsIFNldHRpbmdzLlNlY3VyZS5BQ0NFU1NJQklMSVRZX0RJU1BMQVlfQ09OVFJBU1RfRU5BQkxFRCwgMCwgdXNlcklkKSA9PSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFoYXNDb2xvclRyYW5zZm9ybSkgeworICAgICAgICAgICAgaGFzQ29sb3JUcmFuc2Zvcm0gfD0gU2V0dGluZ3MuU2VjdXJlLmdldEludEZvclVzZXIoCisgICAgICAgICAgICAgICAgY3IsIFNldHRpbmdzLlNlY3VyZS5BQ0NFU1NJQklMSVRZX0RJU1BMQVlfREFMVE9OSVpFUl9FTkFCTEVELCAwLCB1c2VySWQpID09IDE7CisgICAgICAgIH0KKworICAgICAgICBpZiAodXNlclN0YXRlLm1IYXNEaXNwbGF5Q29sb3JBZGp1c3RtZW50ICE9IGhhc0NvbG9yVHJhbnNmb3JtKSB7CisgICAgICAgICAgICB1c2VyU3RhdGUubUhhc0Rpc3BsYXlDb2xvckFkanVzdG1lbnQgPSBoYXNDb2xvclRyYW5zZm9ybTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgYWRqdXN0bWVudCBpcyBlbmFibGVkLCBhbHdheXMgYXNzdW1lIHRoZXJlIHdhcyBhIHRyYW5zZm9ybSBjaGFuZ2UuCisgICAgICAgIHJldHVybiBoYXNDb2xvclRyYW5zZm9ybTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlRGlzcGxheUNvbG9yQWRqdXN0bWVudFNldHRpbmdzTG9ja2VkKFVzZXJTdGF0ZSB1c2VyU3RhdGUpIHsKKyAgICAgICAgZmluYWwgQ29udGVudFJlc29sdmVyIGNyID0gbUNvbnRleHQuZ2V0Q29udGVudFJlc29sdmVyKCk7CisgICAgICAgIGZpbmFsIGludCB1c2VySWQgPSB1c2VyU3RhdGUubVVzZXJJZDsKKyAgICAgICAgZmxvYXRbXSBjb2xvck1hdHJpeCA9IG5ldyBmbG9hdFsxNl07CisgICAgICAgIGZsb2F0W10gb3V0cHV0TWF0cml4ID0gbmV3IGZsb2F0WzE2XTsKKyAgICAgICAgYm9vbGVhbiBoYXNDb2xvclRyYW5zZm9ybSA9IGZhbHNlOworCisgICAgICAgIE1hdHJpeC5zZXRJZGVudGl0eU0oY29sb3JNYXRyaXgsIDApOworCisgICAgICAgIGZpbmFsIGJvb2xlYW4gaW52ZXJzaW9uRW5hYmxlZCA9IFNldHRpbmdzLlNlY3VyZS5nZXRJbnRGb3JVc2VyKAorICAgICAgICAgICAgICAgIGNyLCBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0lOVkVSU0lPTl9FTkFCTEVELCAwLCB1c2VySWQpID09IDE7CisgICAgICAgIGlmIChpbnZlcnNpb25FbmFibGVkKSB7CisgICAgICAgICAgICBmaW5hbCBpbnQgaW52ZXJzaW9uTW9kZSA9IFNldHRpbmdzLlNlY3VyZS5nZXRJbnRGb3JVc2VyKGNyLAorICAgICAgICAgICAgICAgICAgICBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0lOVkVSU0lPTiwgREVGQVVMVF9ESVNQTEFZX0lOVkVSU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgdXNlcklkKTsKKyAgICAgICAgICAgIGZpbmFsIGZsb2F0W10gaW52ZXJzaW9uTWF0cml4OworICAgICAgICAgICAgc3dpdGNoIChpbnZlcnNpb25Nb2RlKSB7CisgICAgICAgICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5TWFuYWdlci5JTlZFUlNJT05fSFVFX09OTFk6CisgICAgICAgICAgICAgICAgICAgIGludmVyc2lvbk1hdHJpeCA9IElOVkVSU0lPTl9NQVRSSVhfSFVFX09OTFk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eU1hbmFnZXIuSU5WRVJTSU9OX1ZBTFVFX09OTFk6CisgICAgICAgICAgICAgICAgICAgIGludmVyc2lvbk1hdHJpeCA9IElOVkVSU0lPTl9NQVRSSVhfVkFMVUVfT05MWTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgaW52ZXJzaW9uTWF0cml4ID0gSU5WRVJTSU9OX01BVFJJWF9TVEFOREFSRDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgTWF0cml4Lm11bHRpcGx5TU0ob3V0cHV0TWF0cml4LCAwLCBjb2xvck1hdHJpeCwgMCwgaW52ZXJzaW9uTWF0cml4LCAwKTsKKworICAgICAgICAgICAgZmluYWwgZmxvYXRbXSB0ZW1wID0gY29sb3JNYXRyaXg7CisgICAgICAgICAgICBjb2xvck1hdHJpeCA9IG91dHB1dE1hdHJpeDsKKyAgICAgICAgICAgIG91dHB1dE1hdHJpeCA9IGNvbG9yTWF0cml4OworCisgICAgICAgICAgICBoYXNDb2xvclRyYW5zZm9ybSA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBib29sZWFuIGNvbnRyYXN0RW5hYmxlZCA9IFNldHRpbmdzLlNlY3VyZS5nZXRJbnRGb3JVc2VyKAorICAgICAgICAgICAgICAgIGNyLCBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0NPTlRSQVNUX0VOQUJMRUQsIDAsIHVzZXJJZCkgPT0gMTsKKyAgICAgICAgaWYgKGNvbnRyYXN0RW5hYmxlZCkgeworICAgICAgICAgICAgZmluYWwgZmxvYXQgY29udHJhc3QgPSBTZXR0aW5ncy5TZWN1cmUuZ2V0RmxvYXRGb3JVc2VyKGNyLAorICAgICAgICAgICAgICAgICAgICBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0NPTlRSQVNULCBERUZBVUxUX0RJU1BMQVlfQ09OVFJBU1QsCisgICAgICAgICAgICAgICAgICAgIHVzZXJJZCk7CisgICAgICAgICAgICBmaW5hbCBmbG9hdCBicmlnaHRuZXNzID0gU2V0dGluZ3MuU2VjdXJlLmdldEZsb2F0Rm9yVXNlcihjciwKKyAgICAgICAgICAgICAgICAgICAgU2V0dGluZ3MuU2VjdXJlLkFDQ0VTU0lCSUxJVFlfRElTUExBWV9CUklHSFRORVNTLCBERUZBVUxUX0RJU1BMQVlfQlJJR0hUTkVTUywKKyAgICAgICAgICAgICAgICAgICAgdXNlcklkKTsKKyAgICAgICAgICAgIGZpbmFsIGZsb2F0IG9mZiA9IGJyaWdodG5lc3MgKiBjb250cmFzdCAtIDAuNWYgKiBjb250cmFzdCArIDAuNWY7CisgICAgICAgICAgICBmaW5hbCBmbG9hdFtdIGNvbnRyYXN0TWF0cml4ID0geworICAgICAgICAgICAgICAgICAgICBjb250cmFzdCwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgMCwgY29udHJhc3QsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIDAsIDAsIGNvbnRyYXN0LCAwLAorICAgICAgICAgICAgICAgICAgICBvZmYsIG9mZiwgb2ZmLCAxCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBNYXRyaXgubXVsdGlwbHlNTShvdXRwdXRNYXRyaXgsIDAsIGNvbG9yTWF0cml4LCAwLCBjb250cmFzdE1hdHJpeCwgMCk7CisKKyAgICAgICAgICAgIGZpbmFsIGZsb2F0W10gdGVtcCA9IGNvbG9yTWF0cml4OworICAgICAgICAgICAgY29sb3JNYXRyaXggPSBvdXRwdXRNYXRyaXg7CisgICAgICAgICAgICBvdXRwdXRNYXRyaXggPSBjb2xvck1hdHJpeDsKKworICAgICAgICAgICAgaGFzQ29sb3JUcmFuc2Zvcm0gPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgYm9vbGVhbiBkYWx0b25pemVyRW5hYmxlZCA9IFNldHRpbmdzLlNlY3VyZS5nZXRJbnRGb3JVc2VyKAorICAgICAgICAgICAgICAgIGNyLCBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0RBTFRPTklaRVJfRU5BQkxFRCwgMCwgdXNlcklkKSAhPSAwOworICAgICAgICBpZiAoZGFsdG9uaXplckVuYWJsZWQpIHsKKyAgICAgICAgICAgIGZpbmFsIGludCBkYWx0b25pemVyTW9kZSA9IFNldHRpbmdzLlNlY3VyZS5nZXRJbnRGb3JVc2VyKGNyLAorICAgICAgICAgICAgICAgICAgICBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0RBTFRPTklaRVIsIERFRkFVTFRfRElTUExBWV9EQUxUT05JWkVSLAorICAgICAgICAgICAgICAgICAgICB1c2VySWQpOworICAgICAgICAgICAgLy8gTW9ub2Nocm9tYWN5IGlzbid0IHN1cHBvcnRlZCBieSB0aGUgbmF0aXZlIERhbHRvbml6ZXIuCisgICAgICAgICAgICBpZiAoZGFsdG9uaXplck1vZGUgPT0gQWNjZXNzaWJpbGl0eU1hbmFnZXIuREFMVE9OSVpFUl9TSU1VTEFURV9NT05PQ0hST01BQ1kpIHsKKyAgICAgICAgICAgICAgICBNYXRyaXgubXVsdGlwbHlNTShvdXRwdXRNYXRyaXgsIDAsIGNvbG9yTWF0cml4LCAwLCBHUkFZU0NBTEVfTUFUUklYLCAwKTsKKworICAgICAgICAgICAgICAgIGZpbmFsIGZsb2F0W10gdGVtcCA9IGNvbG9yTWF0cml4OworICAgICAgICAgICAgICAgIGNvbG9yTWF0cml4ID0gb3V0cHV0TWF0cml4OworICAgICAgICAgICAgICAgIG91dHB1dE1hdHJpeCA9IHRlbXA7CisKKyAgICAgICAgICAgICAgICBoYXNDb2xvclRyYW5zZm9ybSA9IHRydWU7CisgICAgICAgICAgICAgICAgbmF0aXZlU2V0RGFsdG9uaXplck1vZGUoQWNjZXNzaWJpbGl0eU1hbmFnZXIuREFMVE9OSVpFUl9ESVNBQkxFRCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG5hdGl2ZVNldERhbHRvbml6ZXJNb2RlKGRhbHRvbml6ZXJNb2RlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5hdGl2ZVNldERhbHRvbml6ZXJNb2RlKEFjY2Vzc2liaWxpdHlNYW5hZ2VyLkRBTFRPTklaRVJfRElTQUJMRUQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGhhc0NvbG9yVHJhbnNmb3JtKSB7CisgICAgICAgICAgICBuYXRpdmVTZXRDb2xvclRyYW5zZm9ybShjb2xvck1hdHJpeCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBuYXRpdmVTZXRDb2xvclRyYW5zZm9ybShudWxsKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIHByaXZhdGUgdm9pZCB1cGRhdGVUb3VjaEV4cGxvcmF0aW9uTG9ja2VkKFVzZXJTdGF0ZSB1c2VyU3RhdGUpIHsKICAgICAgICAgYm9vbGVhbiBlbmFibGVkID0gZmFsc2U7CiAgICAgICAgIGZpbmFsIGludCBzZXJ2aWNlQ291bnQgPSB1c2VyU3RhdGUubUJvdW5kU2VydmljZXMuc2l6ZSgpOwpAQCAtMTUyOSw2ICsxNjk2LDU2IEBACiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBzdXJmYWNlIGZsaW5nZXIncyBEYWx0b25pemF0aW9uIG1vZGUuIFRoaXMgYWRqdXN0cyB0aGUgY29sb3IKKyAgICAgKiBzcGFjZSB0byBjb3JyZWN0IGZvciBvciBzaW11bGF0ZSB2YXJpb3VzIHR5cGVzIG9mIGNvbG9yIGJsaW5kbmVzcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb2RlIG5ldyBEYWx0b25pemF0aW9uIG1vZGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIG5hdGl2ZVNldERhbHRvbml6ZXJNb2RlKGludCBtb2RlKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaW5hbCBJQmluZGVyIGZsaW5nZXIgPSBTZXJ2aWNlTWFuYWdlci5nZXRTZXJ2aWNlKCJTdXJmYWNlRmxpbmdlciIpOworICAgICAgICAgICAgaWYgKGZsaW5nZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZpbmFsIFBhcmNlbCBkYXRhID0gUGFyY2VsLm9idGFpbigpOworICAgICAgICAgICAgICAgIGRhdGEud3JpdGVJbnRlcmZhY2VUb2tlbigiYW5kcm9pZC51aS5JU3VyZmFjZUNvbXBvc2VyIik7CisgICAgICAgICAgICAgICAgZGF0YS53cml0ZUludChtb2RlKTsKKyAgICAgICAgICAgICAgICBmbGluZ2VyLnRyYW5zYWN0KDEwMTQsIGRhdGEsIG51bGwsIDApOworICAgICAgICAgICAgICAgIGRhdGEucmVjeWNsZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChSZW1vdGVFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIFNsb2cuZShMT0dfVEFHLCAiRmFpbGVkIHRvIHNldCBEYWx0b25pemVyIG1vZGUiLCBleCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBzdXJmYWNlIGZsaW5nZXIncyBjb2xvciB0cmFuc2Zvcm1hdGlvbiBhcyBhIDR4NCBtYXRyaXguIElmIHRoZQorICAgICAqIG1hdHJpeCBpcyBudWxsLCBjb2xvciB0cmFuc2Zvcm1hdGlvbnMgYXJlIGRpc2FibGVkLgorICAgICAqCisgICAgICogQHBhcmFtIG0gdGhlIGZsb2F0IGFycmF5IHRoYXQgaG9sZHMgdGhlIHRyYW5zZm9ybWF0aW9uIG1hdHJpeCwgb3IgbnVsbCB0bworICAgICAqICAgICAgICAgICAgZGlzYWJsZSB0cmFuc2Zvcm1hdGlvbgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgbmF0aXZlU2V0Q29sb3JUcmFuc2Zvcm0oZmxvYXRbXSBtKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaW5hbCBJQmluZGVyIGZsaW5nZXIgPSBTZXJ2aWNlTWFuYWdlci5nZXRTZXJ2aWNlKCJTdXJmYWNlRmxpbmdlciIpOworICAgICAgICAgICAgaWYgKGZsaW5nZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZpbmFsIFBhcmNlbCBkYXRhID0gUGFyY2VsLm9idGFpbigpOworICAgICAgICAgICAgICAgIGRhdGEud3JpdGVJbnRlcmZhY2VUb2tlbigiYW5kcm9pZC51aS5JU3VyZmFjZUNvbXBvc2VyIik7CisgICAgICAgICAgICAgICAgaWYgKG0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBkYXRhLndyaXRlSW50KDEpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDE2OyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEud3JpdGVGbG9hdChtW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGEud3JpdGVJbnQoMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZsaW5nZXIudHJhbnNhY3QoMTAxNSwgZGF0YSwgbnVsbCwgMCk7CisgICAgICAgICAgICAgICAgZGF0YS5yZWN5Y2xlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKFJlbW90ZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgU2xvZy5lKExPR19UQUcsICJGYWlsZWQgdG8gc2V0IGNvbG9yIHRyYW5zZm9ybSIsIGV4KTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIHByaXZhdGUgY2xhc3MgQWNjZXNzaWJpbGl0eUNvbm5lY3Rpb25XcmFwcGVyIGltcGxlbWVudHMgRGVhdGhSZWNpcGllbnQgewogICAgICAgICBwcml2YXRlIGZpbmFsIGludCBtV2luZG93SWQ7CiAgICAgICAgIHByaXZhdGUgZmluYWwgaW50IG1Vc2VySWQ7CkBAIC0yOTUyLDYgKzMxNjksNyBAQAogICAgICAgICBwdWJsaWMgYm9vbGVhbiBtSXNFbmhhbmNlZFdlYkFjY2Vzc2liaWxpdHlFbmFibGVkOwogICAgICAgICBwdWJsaWMgYm9vbGVhbiBtSXNEaXNwbGF5TWFnbmlmaWNhdGlvbkVuYWJsZWQ7CiAgICAgICAgIHB1YmxpYyBib29sZWFuIG1Jc0ZpbHRlcktleUV2ZW50c0VuYWJsZWQ7CisgICAgICAgIHB1YmxpYyBib29sZWFuIG1IYXNEaXNwbGF5Q29sb3JBZGp1c3RtZW50OwogCiAgICAgICAgIHByaXZhdGUgU2VydmljZSBtVWlBdXRvbWF0aW9uU2VydmljZTsKICAgICAgICAgcHJpdmF0ZSBJQWNjZXNzaWJpbGl0eVNlcnZpY2VDbGllbnQgbVVpQXV0b21hdGlvblNlcnZpY2VDbGllbnQ7CkBAIC0zMDQzLDYgKzMyNjEsMjMgQEAKICAgICAgICAgcHJpdmF0ZSBmaW5hbCBVcmkgbUVuaGFuY2VkV2ViQWNjZXNzaWJpbGl0eVVyaSA9IFNldHRpbmdzLlNlY3VyZQogICAgICAgICAgICAgICAgIC5nZXRVcmlGb3IoU2V0dGluZ3MuU2VjdXJlLkFDQ0VTU0lCSUxJVFlfU0NSSVBUX0lOSkVDVElPTik7CiAKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBVcmkgbURpc3BsYXlDb250cmFzdEVuYWJsZWRVcmkgPSBTZXR0aW5ncy5TZWN1cmUuZ2V0VXJpRm9yKAorICAgICAgICAgICAgICAgIFNldHRpbmdzLlNlY3VyZS5BQ0NFU1NJQklMSVRZX0RJU1BMQVlfQ09OVFJBU1RfRU5BQkxFRCk7CisgICAgICAgIHByaXZhdGUgZmluYWwgVXJpIG1EaXNwbGF5Q29udHJhc3RVcmkgPSBTZXR0aW5ncy5TZWN1cmUuZ2V0VXJpRm9yKAorICAgICAgICAgICAgICAgIFNldHRpbmdzLlNlY3VyZS5BQ0NFU1NJQklMSVRZX0RJU1BMQVlfQ09OVFJBU1QpOworICAgICAgICBwcml2YXRlIGZpbmFsIFVyaSBtRGlzcGxheUJyaWdodG5lc3NVcmkgPSBTZXR0aW5ncy5TZWN1cmUuZ2V0VXJpRm9yKAorICAgICAgICAgICAgICAgIFNldHRpbmdzLlNlY3VyZS5BQ0NFU1NJQklMSVRZX0RJU1BMQVlfQlJJR0hUTkVTUyk7CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBVcmkgbURpc3BsYXlJbnZlcnNpb25FbmFibGVkVXJpID0gU2V0dGluZ3MuU2VjdXJlLmdldFVyaUZvcigKKyAgICAgICAgICAgICAgICBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0lOVkVSU0lPTl9FTkFCTEVEKTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBVcmkgbURpc3BsYXlJbnZlcnNpb25VcmkgPSBTZXR0aW5ncy5TZWN1cmUuZ2V0VXJpRm9yKAorICAgICAgICAgICAgICAgIFNldHRpbmdzLlNlY3VyZS5BQ0NFU1NJQklMSVRZX0RJU1BMQVlfSU5WRVJTSU9OKTsKKworICAgICAgICBwcml2YXRlIGZpbmFsIFVyaSBtRGlzcGxheURhbHRvbml6ZXJFbmFibGVkVXJpID0gU2V0dGluZ3MuU2VjdXJlLmdldFVyaUZvcigKKyAgICAgICAgICAgICAgICBTZXR0aW5ncy5TZWN1cmUuQUNDRVNTSUJJTElUWV9ESVNQTEFZX0RBTFRPTklaRVJfRU5BQkxFRCk7CisgICAgICAgIHByaXZhdGUgZmluYWwgVXJpIG1EaXNwbGF5RGFsdG9uaXplclVyaSA9IFNldHRpbmdzLlNlY3VyZS5nZXRVcmlGb3IoCisgICAgICAgICAgICAgICAgU2V0dGluZ3MuU2VjdXJlLkFDQ0VTU0lCSUxJVFlfRElTUExBWV9EQUxUT05JWkVSKTsKKwogICAgICAgICBwdWJsaWMgQWNjZXNzaWJpbGl0eUNvbnRlbnRPYnNlcnZlcihIYW5kbGVyIGhhbmRsZXIpIHsKICAgICAgICAgICAgIHN1cGVyKGhhbmRsZXIpOwogICAgICAgICB9CkBAIC0zMDYxLDYgKzMyOTYsMjAgQEAKICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIHRoaXMsIFVzZXJIYW5kbGUuVVNFUl9BTEwpOwogICAgICAgICAgICAgY29udGVudFJlc29sdmVyLnJlZ2lzdGVyQ29udGVudE9ic2VydmVyKG1FbmhhbmNlZFdlYkFjY2Vzc2liaWxpdHlVcmksCiAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCB0aGlzLCBVc2VySGFuZGxlLlVTRVJfQUxMKTsKKyAgICAgICAgICAgIGNvbnRlbnRSZXNvbHZlci5yZWdpc3RlckNvbnRlbnRPYnNlcnZlcigKKyAgICAgICAgICAgICAgICAgICAgbURpc3BsYXlDb250cmFzdEVuYWJsZWRVcmksIGZhbHNlLCB0aGlzLCBVc2VySGFuZGxlLlVTRVJfQUxMKTsKKyAgICAgICAgICAgIGNvbnRlbnRSZXNvbHZlci5yZWdpc3RlckNvbnRlbnRPYnNlcnZlcigKKyAgICAgICAgICAgICAgICAgICAgbURpc3BsYXlDb250cmFzdFVyaSwgZmFsc2UsIHRoaXMsIFVzZXJIYW5kbGUuVVNFUl9BTEwpOworICAgICAgICAgICAgY29udGVudFJlc29sdmVyLnJlZ2lzdGVyQ29udGVudE9ic2VydmVyKAorICAgICAgICAgICAgICAgICAgICBtRGlzcGxheUJyaWdodG5lc3NVcmksIGZhbHNlLCB0aGlzLCBVc2VySGFuZGxlLlVTRVJfQUxMKTsKKyAgICAgICAgICAgIGNvbnRlbnRSZXNvbHZlci5yZWdpc3RlckNvbnRlbnRPYnNlcnZlcigKKyAgICAgICAgICAgICAgICAgICAgbURpc3BsYXlJbnZlcnNpb25FbmFibGVkVXJpLCBmYWxzZSwgdGhpcywgVXNlckhhbmRsZS5VU0VSX0FMTCk7CisgICAgICAgICAgICBjb250ZW50UmVzb2x2ZXIucmVnaXN0ZXJDb250ZW50T2JzZXJ2ZXIoCisgICAgICAgICAgICAgICAgICAgIG1EaXNwbGF5SW52ZXJzaW9uVXJpLCBmYWxzZSwgdGhpcywgVXNlckhhbmRsZS5VU0VSX0FMTCk7CisgICAgICAgICAgICBjb250ZW50UmVzb2x2ZXIucmVnaXN0ZXJDb250ZW50T2JzZXJ2ZXIoCisgICAgICAgICAgICAgICAgICAgIG1EaXNwbGF5RGFsdG9uaXplckVuYWJsZWRVcmksIGZhbHNlLCB0aGlzLCBVc2VySGFuZGxlLlVTRVJfQUxMKTsKKyAgICAgICAgICAgIGNvbnRlbnRSZXNvbHZlci5yZWdpc3RlckNvbnRlbnRPYnNlcnZlcigKKyAgICAgICAgICAgICAgICAgICAgbURpc3BsYXlEYWx0b25pemVyVXJpLCBmYWxzZSwgdGhpcywgVXNlckhhbmRsZS5VU0VSX0FMTCk7CiAgICAgICAgIH0KIAogICAgICAgICBAT3ZlcnJpZGUKQEAgLTMxMjUsNiArMzM3NCwyMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChtRGlzcGxheUNvbnRyYXN0RW5hYmxlZFVyaS5lcXVhbHModXJpKQorICAgICAgICAgICAgICAgICAgICB8fCBtRGlzcGxheUludmVyc2lvbkVuYWJsZWRVcmkuZXF1YWxzKHVyaSkKKyAgICAgICAgICAgICAgICAgICAgfHwgbURpc3BsYXlEYWx0b25pemVyRW5hYmxlZFVyaS5lcXVhbHModXJpKQorICAgICAgICAgICAgICAgICAgICB8fCBtRGlzcGxheUNvbnRyYXN0VXJpLmVxdWFscyh1cmkpCisgICAgICAgICAgICAgICAgICAgIHx8IG1EaXNwbGF5QnJpZ2h0bmVzc1VyaS5lcXVhbHModXJpKQorICAgICAgICAgICAgICAgICAgICB8fCBtRGlzcGxheUludmVyc2lvblVyaS5lcXVhbHModXJpKQorICAgICAgICAgICAgICAgICAgICB8fCBtRGlzcGxheURhbHRvbml6ZXJVcmkuZXF1YWxzKHVyaSkpIHsKKyAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1Mb2NrKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlIHdpbGwgdXBkYXRlIHdoZW4gdGhlIGF1dG9tYXRpb24gc2VydmljZSBkaWVzLgorICAgICAgICAgICAgICAgICAgICBVc2VyU3RhdGUgdXNlclN0YXRlID0gZ2V0Q3VycmVudFVzZXJTdGF0ZUxvY2tlZCgpOworICAgICAgICAgICAgICAgICAgICBpZiAodXNlclN0YXRlLm1VaUF1dG9tYXRpb25TZXJ2aWNlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWFkRGlzcGxheUNvbG9yQWRqdXN0bWVudFNldHRpbmdzTG9ja2VkKHVzZXJTdGF0ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVEaXNwbGF5Q29sb3JBZGp1c3RtZW50U2V0dGluZ3NMb2NrZWQodXNlclN0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2FtL0FjdGl2aXR5TWFuYWdlclNlcnZpY2UuamF2YSBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2FtL0FjdGl2aXR5TWFuYWdlclNlcnZpY2UuamF2YQppbmRleCBjNDJhMTVlLi4yNTNiNmIzIDEwMDY0NAotLS0gYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9hbS9BY3Rpdml0eU1hbmFnZXJTZXJ2aWNlLmphdmEKKysrIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvYW0vQWN0aXZpdHlNYW5hZ2VyU2VydmljZS5qYXZhCkBAIC0zNjAyLDkgKzM2MDIsMTMgQEAKICAgICAgKi8KICAgICBwcml2YXRlIGZpbmFsIHZvaWQgaGFuZGxlQXBwRGllZExvY2tlZChQcm9jZXNzUmVjb3JkIGFwcCwKICAgICAgICAgICAgIGJvb2xlYW4gcmVzdGFydGluZywgYm9vbGVhbiBhbGxvd1Jlc3RhcnQpIHsKKyAgICAgICAgaW50IHBpZCA9IGFwcC5waWQ7CiAgICAgICAgIGNsZWFuVXBBcHBsaWNhdGlvblJlY29yZExvY2tlZChhcHAsIHJlc3RhcnRpbmcsIGFsbG93UmVzdGFydCwgLTEpOwogICAgICAgICBpZiAoIXJlc3RhcnRpbmcpIHsKICAgICAgICAgICAgIHJlbW92ZUxydVByb2Nlc3NMb2NrZWQoYXBwKTsKKyAgICAgICAgICAgIGlmIChwaWQgPiAwKSB7CisgICAgICAgICAgICAgICAgUHJvY2Vzc0xpc3QucmVtb3ZlKHBpZCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAobVByb2ZpbGVQcm9jID09IGFwcCkgewpAQCAtMTIzOTAsNiArMTIzOTQsNyBAQAogICAgICAgICAgICAgYm9vbGVhbiByZXN0YXJ0aW5nLCBib29sZWFuIGFsbG93UmVzdGFydCwgaW50IGluZGV4KSB7CiAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7CiAgICAgICAgICAgICByZW1vdmVMcnVQcm9jZXNzTG9ja2VkKGFwcCk7CisgICAgICAgICAgICBQcm9jZXNzTGlzdC5yZW1vdmUoYXBwLnBpZCk7CiAgICAgICAgIH0KIAogICAgICAgICBtUHJvY2Vzc2VzVG9HYy5yZW1vdmUoYXBwKTsKQEAgLTE1MjUyLDE2ICsxNTI1NywxMyBAQAogICAgICAgICB9CiAKICAgICAgICAgaWYgKGFwcC5jdXJBZGogIT0gYXBwLnNldEFkaikgewotICAgICAgICAgICAgaWYgKFByb2Nlc3Muc2V0T29tQWRqKGFwcC5waWQsIGFwcC5jdXJBZGopKSB7Ci0gICAgICAgICAgICAgICAgaWYgKERFQlVHX1NXSVRDSCB8fCBERUJVR19PT01fQURKKSBTbG9nLnYoCi0gICAgICAgICAgICAgICAgICAgIFRBRywgIlNldCAiICsgYXBwLnBpZCArICIgIiArIGFwcC5wcm9jZXNzTmFtZSArCi0gICAgICAgICAgICAgICAgICAgICIgYWRqICIgKyBhcHAuY3VyQWRqICsgIjogIiArIGFwcC5hZGpUeXBlKTsKLSAgICAgICAgICAgICAgICBhcHAuc2V0QWRqID0gYXBwLmN1ckFkajsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgICAgIFNsb2cudyhUQUcsICJGYWlsZWQgc2V0dGluZyBvb20gYWRqIG9mICIgKyBhcHAgKyAiIHRvICIgKyBhcHAuY3VyQWRqKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFByb2Nlc3NMaXN0LnNldE9vbUFkaihhcHAucGlkLCBhcHAuY3VyQWRqKTsKKyAgICAgICAgICAgIGlmIChERUJVR19TV0lUQ0ggfHwgREVCVUdfT09NX0FESikgU2xvZy52KAorICAgICAgICAgICAgICAgIFRBRywgIlNldCAiICsgYXBwLnBpZCArICIgIiArIGFwcC5wcm9jZXNzTmFtZSArCisgICAgICAgICAgICAgICAgIiBhZGogIiArIGFwcC5jdXJBZGogKyAiOiAiICsgYXBwLmFkalR5cGUpOworICAgICAgICAgICAgYXBwLnNldEFkaiA9IGFwcC5jdXJBZGo7CiAgICAgICAgIH0KKwogICAgICAgICBpZiAoYXBwLnNldFNjaGVkR3JvdXAgIT0gYXBwLmN1clNjaGVkR3JvdXApIHsKICAgICAgICAgICAgIGFwcC5zZXRTY2hlZEdyb3VwID0gYXBwLmN1clNjaGVkR3JvdXA7CiAgICAgICAgICAgICBpZiAoREVCVUdfU1dJVENIIHx8IERFQlVHX09PTV9BREopIFNsb2cudihUQUcsCmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9hbS9BY3Rpdml0eVJlY29yZC5qYXZhIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvYW0vQWN0aXZpdHlSZWNvcmQuamF2YQppbmRleCA0OWYyOWZlLi41Nzc2MTgxIDEwMDY0NAotLS0gYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9hbS9BY3Rpdml0eVJlY29yZC5qYXZhCisrKyBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2FtL0FjdGl2aXR5UmVjb3JkLmphdmEKQEAgLTE0Myw2ICsxNDMsNyBAQAogCiAgICAgcHJpdmF0ZSBib29sZWFuIGluSGlzdG9yeTsgIC8vIGFyZSB3ZSBpbiB0aGUgaGlzdG9yeSBzdGFjaz8KICAgICBmaW5hbCBBY3Rpdml0eVN0YWNrU3VwZXJ2aXNvciBtU3RhY2tTdXBlcnZpc29yOworICAgIGJvb2xlYW4gbVN0YXJ0aW5nV2luZG93U2hvd24gPSBmYWxzZTsKIAogICAgIHZvaWQgZHVtcChQcmludFdyaXRlciBwdywgU3RyaW5nIHByZWZpeCkgewogICAgICAgICBmaW5hbCBsb25nIG5vdyA9IFN5c3RlbUNsb2NrLnVwdGltZU1pbGxpcygpOwpkaWZmIC0tZ2l0IGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvYW0vQWN0aXZpdHlTdGFjay5qYXZhIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvYW0vQWN0aXZpdHlTdGFjay5qYXZhCmluZGV4IDU2OTQ0MGQuLmE0NTk2MjIgMTAwNjQ0Ci0tLSBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2FtL0FjdGl2aXR5U3RhY2suamF2YQorKysgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9hbS9BY3Rpdml0eVN0YWNrLmphdmEKQEAgLTEyMSw4ICsxMjEsNyBAQAogICAgIC8vIGNvbnZlcnRUb1RyYW5zbHVjZW50KCkuCiAgICAgc3RhdGljIGZpbmFsIGxvbmcgVFJBTlNMVUNFTlRfQ09OVkVSU0lPTl9USU1FT1VUID0gMjAwMDsKIAotICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIFNDUkVFTlNIT1RfRk9SQ0VfNTY1ID0gQWN0aXZpdHlNYW5hZ2VyCi0gICAgICAgICAgICAuaXNMb3dSYW1EZXZpY2VTdGF0aWMoKSA/IHRydWUgOiBmYWxzZTsKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBTQ1JFRU5TSE9UX0ZPUkNFXzU2NSA9IEFjdGl2aXR5TWFuYWdlci5pc0xvd1JhbURldmljZVN0YXRpYygpOwogCiAgICAgZW51bSBBY3Rpdml0eVN0YXRlIHsKICAgICAgICAgSU5JVElBTElaSU5HLApAQCAtMzk4LDggKzM5Nyw5IEBACiAgICAgICAgIC8vIGJlIHNpbXBsaWZpZWQgb25jZSB3ZSBzdG9wIHN0b3JpbmcgdGFza3Mgd2l0aCBlbXB0eSBtQWN0aXZpdGllcyBsaXN0cy4KICAgICAgICAgZm9yIChpbnQgdGFza05keCA9IG1UYXNrSGlzdG9yeS5zaXplKCkgLSAxOyB0YXNrTmR4ID49IDA7IC0tdGFza05keCkgewogICAgICAgICAgICAgQXJyYXlMaXN0PEFjdGl2aXR5UmVjb3JkPiBhY3Rpdml0aWVzID0gbVRhc2tIaXN0b3J5LmdldCh0YXNrTmR4KS5tQWN0aXZpdGllczsKLSAgICAgICAgICAgIGZvciAoaW50IGFjdGl2aXR5TmR4ID0gYWN0aXZpdGllcy5zaXplKCkgLSAxOyBhY3Rpdml0eU5keCA+PSAwOyAtLWFjdGl2aXR5TmR4KSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGFjdGl2aXRpZXMuZ2V0KGFjdGl2aXR5TmR4KTsKKyAgICAgICAgICAgIGZpbmFsIGludCB0b3BBY3Rpdml0eU5keCA9IGFjdGl2aXRpZXMuc2l6ZSgpIC0gMTsKKyAgICAgICAgICAgIGlmICh0b3BBY3Rpdml0eU5keCA+PSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFjdGl2aXRpZXMuZ2V0KHRvcEFjdGl2aXR5TmR4KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4gbnVsbDsKQEAgLTQzNiwyNSArNDM2LDYgQEAKICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfQogCi0gICAgYm9vbGVhbiBjb250YWluc0FwcChQcm9jZXNzUmVjb3JkIGFwcCkgewotICAgICAgICBpZiAoYXBwID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBmb3IgKGludCB0YXNrTmR4ID0gbVRhc2tIaXN0b3J5LnNpemUoKSAtIDE7IHRhc2tOZHggPj0gMDsgLS10YXNrTmR4KSB7Ci0gICAgICAgICAgICBmaW5hbCBBcnJheUxpc3Q8QWN0aXZpdHlSZWNvcmQ+IGFjdGl2aXRpZXMgPSBtVGFza0hpc3RvcnkuZ2V0KHRhc2tOZHgpLm1BY3Rpdml0aWVzOwotICAgICAgICAgICAgZm9yIChpbnQgYWN0aXZpdHlOZHggPSBhY3Rpdml0aWVzLnNpemUoKSAtIDE7IGFjdGl2aXR5TmR4ID49IDA7IC0tYWN0aXZpdHlOZHgpIHsKLSAgICAgICAgICAgICAgICBmaW5hbCBBY3Rpdml0eVJlY29yZCByID0gYWN0aXZpdGllcy5nZXQoYWN0aXZpdHlOZHgpOwotICAgICAgICAgICAgICAgIGlmIChyLmZpbmlzaGluZykgewotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHIuYXBwID09IGFwcCkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQogICAgIGZpbmFsIGJvb2xlYW4gdXBkYXRlTFJVTGlzdExvY2tlZChBY3Rpdml0eVJlY29yZCByKSB7CiAgICAgICAgIGZpbmFsIGJvb2xlYW4gaGFkaXQgPSBtTFJVQWN0aXZpdGllcy5yZW1vdmUocik7CiAgICAgICAgIG1MUlVBY3Rpdml0aWVzLmFkZChyKTsKQEAgLTExMTYsNiArMTA5Nyw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gbm93IHNob3cgaXRzIHdpbmRvdy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUdfVklTQklMSVRZKSBTbG9nLnYoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQUcsICJNYWtpbmcgdmlzaWJsZSBhbmQgc2NoZWR1bGluZyB2aXNpYmlsaXR5OiAiICsgcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVN0YWNrU3VwZXJ2aXNvci5tU3RhY2tMb2cuYWRkKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVuc3VyZVZpc2liaWxpdHk6IFNjaGVkdWxpbmcgdmlzaWJpbGl0eTogIiArIHIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtVHJhbnNsdWNlbnRBY3Rpdml0eVdhaXRpbmcgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVVuZHJhd25BY3Rpdml0aWVzQmVsb3dUb3BUcmFuc2x1Y2VudC5hZGQocik7CkBAIC0xMTY0LDYgKzExNDcsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIuYXBwICE9IG51bGwgJiYgci5hcHAudGhyZWFkICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUdfVklTQklMSVRZKSBTbG9nLnYoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQUcsICJTY2hlZHVsaW5nIGludmlzaWJpbGl0eTogIiArIHIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TdGFja1N1cGVydmlzb3IubVN0YWNrTG9nLmFkZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbnN1cmVWaXNpYmlsaXR5OiBTY2hlZHVsaW5nIGludmlzaWJpbGl0eTogIiArIHIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIuYXBwLnRocmVhZC5zY2hlZHVsZVdpbmRvd1Zpc2liaWxpdHkoci5hcHBUb2tlbiwgZmFsc2UpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjM0LDYgKzEyMTksMzIgQEAKICAgICAgICAgfQogICAgIH0KIAorICAgIC8qKiBJZiBhbnkgYWN0aXZpdGllcyBiZWxvdyB0aGUgdG9wIHJ1bm5pbmcgb25lIGFyZSBpbiB0aGUgSU5JVElBTElaSU5HIHN0YXRlIGFuZCB0aGV5IGhhdmUgYQorICAgICAqIHN0YXJ0aW5nIHdpbmRvdyBkaXNwbGF5ZWQgdGhlbiByZW1vdmUgdGhhdCBzdGFydGluZyB3aW5kb3cuIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGFjdGl2aXR5CisgICAgICogaW4gdGhpcyBzdGF0ZSB3aWxsIG5ldmVyIHJlc3VtZWQgaW4gd2hpY2ggY2FzZSB0aGF0IHN0YXJ0aW5nIHdpbmRvdyB3aWxsIGJlIG9ycGhhbmVkLiAqLworICAgIHZvaWQgY2FuY2VsSW5pdGlhbGl6aW5nQWN0aXZpdGllcygpIHsKKyAgICAgICAgZmluYWwgQWN0aXZpdHlSZWNvcmQgdG9wQWN0aXZpdHkgPSB0b3BSdW5uaW5nQWN0aXZpdHlMb2NrZWQobnVsbCk7CisgICAgICAgIGJvb2xlYW4gYWJvdmVUb3AgPSB0cnVlOworICAgICAgICBmb3IgKGludCB0YXNrTmR4ID0gbVRhc2tIaXN0b3J5LnNpemUoKSAtIDE7IHRhc2tOZHggPj0gMDsgLS10YXNrTmR4KSB7CisgICAgICAgICAgICBmaW5hbCBBcnJheUxpc3Q8QWN0aXZpdHlSZWNvcmQ+IGFjdGl2aXRpZXMgPSBtVGFza0hpc3RvcnkuZ2V0KHRhc2tOZHgpLm1BY3Rpdml0aWVzOworICAgICAgICAgICAgZm9yIChpbnQgYWN0aXZpdHlOZHggPSBhY3Rpdml0aWVzLnNpemUoKSAtIDE7IGFjdGl2aXR5TmR4ID49IDA7IC0tYWN0aXZpdHlOZHgpIHsKKyAgICAgICAgICAgICAgICBmaW5hbCBBY3Rpdml0eVJlY29yZCByID0gYWN0aXZpdGllcy5nZXQoYWN0aXZpdHlOZHgpOworICAgICAgICAgICAgICAgIGlmIChhYm92ZVRvcCkgeworICAgICAgICAgICAgICAgICAgICBpZiAociA9PSB0b3BBY3Rpdml0eSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYWJvdmVUb3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoci5zdGF0ZSA9PSBBY3Rpdml0eVN0YXRlLklOSVRJQUxJWklORyAmJiByLm1TdGFydGluZ1dpbmRvd1Nob3duKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVR19WSVNCSUxJVFkpIFNsb2cudyhUQUcsICJGb3VuZCBvcnBoYW5lZCBzdGFydGluZyB3aW5kb3cgIiArIHIpOworICAgICAgICAgICAgICAgICAgICByLm1TdGFydGluZ1dpbmRvd1Nob3duID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIG1XaW5kb3dNYW5hZ2VyLnJlbW92ZUFwcFN0YXJ0aW5nV2luZG93KHIuYXBwVG9rZW4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAgIC8qKgogICAgICAqIEVuc3VyZSB0aGF0IHRoZSB0b3AgYWN0aXZpdHkgaW4gdGhlIHN0YWNrIGlzIHJlc3VtZWQuCiAgICAgICoKQEAgLTEyNTAsNiArMTI2MSw4IEBACiAgICAgZmluYWwgYm9vbGVhbiByZXN1bWVUb3BBY3Rpdml0eUxvY2tlZChBY3Rpdml0eVJlY29yZCBwcmV2LCBCdW5kbGUgb3B0aW9ucykgewogICAgICAgICBpZiAoQWN0aXZpdHlNYW5hZ2VyU2VydmljZS5ERUJVR19MT0NLU0NSRUVOKSBtU2VydmljZS5sb2dMb2NrU2NyZWVuKCIiKTsKIAorICAgICAgICBjYW5jZWxJbml0aWFsaXppbmdBY3Rpdml0aWVzKCk7CisKICAgICAgICAgLy8gRmluZCB0aGUgZmlyc3QgYWN0aXZpdHkgdGhhdCBpcyBub3QgZmluaXNoaW5nLgogICAgICAgICBBY3Rpdml0eVJlY29yZCBuZXh0ID0gdG9wUnVubmluZ0FjdGl2aXR5TG9ja2VkKG51bGwpOwogCkBAIC0xODE1LDYgKzE4MjgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByLmluZm8uYXBwbGljYXRpb25JbmZvKSwgci5ub25Mb2NhbGl6ZWRMYWJlbCwKICAgICAgICAgICAgICAgICAgICAgICAgIHIubGFiZWxSZXMsIHIuaWNvbiwgci5sb2dvLCByLndpbmRvd0ZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgcHJldiAhPSBudWxsID8gcHJldi5hcHBUb2tlbiA6IG51bGwsIHNob3dTdGFydGluZ0ljb24pOworICAgICAgICAgICAgICAgIHIubVN0YXJ0aW5nV2luZG93U2hvd24gPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgZmlyc3QgYWN0aXZpdHksIGRvbid0IGRvIGFueSBmYW5jeSBhbmltYXRpb25zLApAQCAtMzAwNyw2ICszMDIxLDcgQEAKICAgICAgICAgICAgIGZpbmFsIFRhc2tSZWNvcmQgdGFzayA9IG1UYXNrSGlzdG9yeS5nZXQodGFza05keCk7CiAgICAgICAgICAgICBpZiAodGFzay5pc0hvbWVUYXNrKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoREVCVUdfVEFTS1MgfHwgREVCVUdfU1RBQ0spIFNsb2cuZChUQUcsICJtb3ZlSG9tZVRhc2tUb1RvcDogbW92aW5nICIgKyB0YXNrKTsKKyAgICAgICAgICAgICAgICBtU3RhY2tTdXBlcnZpc29yLm1TdGFja0xvZy5hZGQoIm1vdmVIb21lVGFza1RvVG9wOiBtb3ZpbmcgIiArIHRhc2spOwogICAgICAgICAgICAgICAgIG1UYXNrSGlzdG9yeS5yZW1vdmUodGFza05keCk7CiAgICAgICAgICAgICAgICAgbVRhc2tIaXN0b3J5LmFkZCh0b3AsIHRhc2spOwogICAgICAgICAgICAgICAgIG1XaW5kb3dNYW5hZ2VyLm1vdmVUYXNrVG9Ub3AodGFzay50YXNrSWQpOwpAQCAtMzAzNCw2ICszMDQ5LDcgQEAKIAogICAgIGZpbmFsIHZvaWQgbW92ZVRhc2tUb0Zyb250TG9ja2VkKFRhc2tSZWNvcmQgdHIsIEFjdGl2aXR5UmVjb3JkIHJlYXNvbiwgQnVuZGxlIG9wdGlvbnMpIHsKICAgICAgICAgaWYgKERFQlVHX1NXSVRDSCkgU2xvZy52KFRBRywgIm1vdmVUYXNrVG9Gcm9udDogIiArIHRyKTsKKyAgICAgICAgbVN0YWNrU3VwZXJ2aXNvci5tU3RhY2tMb2cuYWRkKCJtb3ZlVGFza1RvRnJvbnRMb2NrZWQ6ICIgKyB0cik7CiAKICAgICAgICAgZmluYWwgaW50IG51bVRhc2tzID0gbVRhc2tIaXN0b3J5LnNpemUoKTsKICAgICAgICAgZmluYWwgaW50IGluZGV4ID0gbVRhc2tIaXN0b3J5LmluZGV4T2YodHIpOwpAQCAtMzEyMSw2ICszMTM3LDcgQEAKICAgICAgICAgaWYgKHRyID09IG51bGwpIHsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQorICAgICAgICBtU3RhY2tTdXBlcnZpc29yLm1TdGFja0xvZy5hZGQoIm1vdmVUYXNrVG9CYWNrTG9ja2VkOiAiICsgdHIpOwogCiAgICAgICAgIG1UYXNrSGlzdG9yeS5yZW1vdmUodHIpOwogICAgICAgICBtVGFza0hpc3RvcnkuYWRkKDAsIHRyKTsKZGlmZiAtLWdpdCBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2FtL0FjdGl2aXR5U3RhY2tTdXBlcnZpc29yLmphdmEgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9hbS9BY3Rpdml0eVN0YWNrU3VwZXJ2aXNvci5qYXZhCmluZGV4IDgyNTEzNjQuLjZhZWY2NDMgMTAwNjQ0Ci0tLSBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2FtL0FjdGl2aXR5U3RhY2tTdXBlcnZpc29yLmphdmEKKysrIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvYW0vQWN0aXZpdHlTdGFja1N1cGVydmlzb3IuamF2YQpAQCAtNzIsNiArNzIsNyBAQAogCiBpbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwuYXBwLkhlYXZ5V2VpZ2h0U3dpdGNoZXJBY3Rpdml0eTsKIGltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC5vcy5UcmFuc2ZlclBpcGU7CitpbXBvcnQgY29tLmFuZHJvaWQuc2VydmVyLkNpcmN1bGFyTG9nOwogaW1wb3J0IGNvbS5hbmRyb2lkLnNlcnZlci5hbS5BY3Rpdml0eU1hbmFnZXJTZXJ2aWNlLlBlbmRpbmdBY3Rpdml0eUxhdW5jaDsKIGltcG9ydCBjb20uYW5kcm9pZC5zZXJ2ZXIuYW0uQWN0aXZpdHlTdGFjay5BY3Rpdml0eVN0YXRlOwogaW1wb3J0IGNvbS5hbmRyb2lkLnNlcnZlci53bS5TdGFja0JveDsKQEAgLTIwNiw2ICsyMDcsOCBAQAogICAgIC8qKiBTdGFjayBpZCBvZiB0aGUgZnJvbnQgc3RhY2sgd2hlbiB1c2VyIHN3aXRjaGVkLCBpbmRleGVkIGJ5IHVzZXJJZC4gKi8KICAgICBTcGFyc2VJbnRBcnJheSBtVXNlclN0YWNrSW5Gcm9udCA9IG5ldyBTcGFyc2VJbnRBcnJheSgyKTsKIAorICAgIENpcmN1bGFyTG9nIG1TdGFja0xvZyA9IG5ldyBDaXJjdWxhckxvZygzMCk7CisKICAgICBwdWJsaWMgQWN0aXZpdHlTdGFja1N1cGVydmlzb3IoQWN0aXZpdHlNYW5hZ2VyU2VydmljZSBzZXJ2aWNlLCBDb250ZXh0IGNvbnRleHQsCiAgICAgICAgICAgICBMb29wZXIgbG9vcGVyKSB7CiAgICAgICAgIG1TZXJ2aWNlID0gc2VydmljZTsKQEAgLTI3Myw2ICsyNzYsOSBAQAogICAgICAgICAgICAgaWYgKERFQlVHX1NUQUNLKSBTbG9nLmQoVEFHLCAibW92ZUhvbWVUYXNrOiBtU3RhY2tTdGF0ZSBvbGQ9IiArCiAgICAgICAgICAgICAgICAgICAgIHN0YWNrU3RhdGVUb1N0cmluZyhtU3RhY2tTdGF0ZSkgKyAiIG5ldz0iICsgc3RhY2tTdGF0ZVRvU3RyaW5nKGhvbWVJbkZyb250ID8KICAgICAgICAgICAgICAgICAgICAgU1RBQ0tfU1RBVEVfSE9NRV9UT19CQUNLIDogU1RBQ0tfU1RBVEVfSE9NRV9UT19GUk9OVCkpOworICAgICAgICAgICAgbVN0YWNrTG9nLmFkZCgibW92ZUhvbWVUYXNrOiBtU3RhY2tTdGF0ZSBvbGQ9IiArIHN0YWNrU3RhdGVUb1N0cmluZyhtU3RhY2tTdGF0ZSkKKyAgICAgICAgICAgICAgICAgICAgKyAiIG5ldz0iICsgc3RhY2tTdGF0ZVRvU3RyaW5nKGhvbWVJbkZyb250ID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFDS19TVEFURV9IT01FX1RPX0JBQ0sgOiBTVEFDS19TVEFURV9IT01FX1RPX0ZST05UKSk7CiAgICAgICAgICAgICBtU3RhY2tTdGF0ZSA9IGhvbWVJbkZyb250ID8gU1RBQ0tfU1RBVEVfSE9NRV9UT19CQUNLIDogU1RBQ0tfU1RBVEVfSE9NRV9UT19GUk9OVDsKICAgICAgICAgfQogICAgIH0KQEAgLTIzODQsNiArMjM5MCw4IEBACiAgICAgICAgIHB3LnByaW50KHByZWZpeCk7IHB3LnByaW50bG4oIm1TbGVlcFRpbWVvdXQ9IiArIG1TbGVlcFRpbWVvdXQpOwogICAgICAgICBwdy5wcmludChwcmVmaXgpOyBwdy5wcmludGxuKCJtQ3VyVGFza0lkPSIgKyBtQ3VyVGFza0lkKTsKICAgICAgICAgcHcucHJpbnQocHJlZml4KTsgcHcucHJpbnRsbigibVVzZXJTdGFja0luRnJvbnQ9IiArIG1Vc2VyU3RhY2tJbkZyb250KTsKKyAgICAgICAgcHcucHJpbnQocHJlZml4KTsgcHcucHJpbnRsbigibVN0YWNrTG9nPSIpOworICAgICAgICAgICAgICAgIG1TdGFja0xvZy5kdW1wKHB3LCBwcmVmaXggKyAiICAiKTsKICAgICB9CiAKICAgICBBcnJheUxpc3Q8QWN0aXZpdHlSZWNvcmQ+IGdldER1bXBBY3Rpdml0aWVzTG9ja2VkKFN0cmluZyBuYW1lKSB7CmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9hbS9Qcm9jZXNzTGlzdC5qYXZhIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvYW0vUHJvY2Vzc0xpc3QuamF2YQppbmRleCBkMzc3N2M3Li5mNTkyMGM4IDEwMDY0NAotLS0gYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9hbS9Qcm9jZXNzTGlzdC5qYXZhCisrKyBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2FtL1Byb2Nlc3NMaXN0LmphdmEKQEAgLTE4LDYgKzE4LDggQEAKIAogaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKIGltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CiAKIGltcG9ydCBhbmRyb2lkLmFwcC5BY3Rpdml0eU1hbmFnZXI7CiBpbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwudXRpbC5NZW1JbmZvUmVhZGVyOwpAQCAtMjYsNiArMjgsOCBAQAogaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuUmVzb3VyY2VzOwogaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuUG9pbnQ7CiBpbXBvcnQgYW5kcm9pZC5vcy5TeXN0ZW1Qcm9wZXJ0aWVzOworaW1wb3J0IGFuZHJvaWQubmV0LkxvY2FsU29ja2V0QWRkcmVzczsKK2ltcG9ydCBhbmRyb2lkLm5ldC5Mb2NhbFNvY2tldDsKIGltcG9ydCBhbmRyb2lkLnV0aWwuU2xvZzsKIGltcG9ydCBhbmRyb2lkLnZpZXcuRGlzcGxheTsKIApAQCAtMTQxLDYgKzE0NSwxNiBAQAogICAgIC8vIFRocmVzaG9sZCBvZiBudW1iZXIgb2YgY2FjaGVkK2VtcHR5IHdoZXJlIHdlIGNvbnNpZGVyIG1lbW9yeSBjcml0aWNhbC4KICAgICBzdGF0aWMgZmluYWwgaW50IFRSSU1fTE9XX1RIUkVTSE9MRCA9IDU7CiAKKyAgICAvLyBMb3cgTWVtb3J5IEtpbGxlciBEYWVtb24gY29tbWFuZCBjb2Rlcy4KKyAgICAvLyBUaGVzZSBtdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSBkZWZpbml0aW9ucyBpbiBsbWtkLmMKKyAgICAvLworICAgIC8vIExNS19UQVJHRVQgPG1pbmZyZWU+IDxtaW5raWxscHJpbz4gLi4uICh1cCB0byA2IHBhaXJzKQorICAgIC8vIExNS19QUk9DUFJJTyA8cGlkPiA8cHJpbz4KKyAgICAvLyBMTUtfUFJPQ1JFTU9WRSA8cGlkPgorICAgIHN0YXRpYyBmaW5hbCBieXRlIExNS19UQVJHRVQgPSAwOworICAgIHN0YXRpYyBmaW5hbCBieXRlIExNS19QUk9DUFJJTyA9IDE7CisgICAgc3RhdGljIGZpbmFsIGJ5dGUgTE1LX1BST0NSRU1PVkUgPSAyOworCiAgICAgLy8gVGhlc2UgYXJlIHRoZSB2YXJpb3VzIGludGVyZXN0aW5nIG1lbW9yeSBsZXZlbHMgdGhhdCB3ZSB3aWxsIGdpdmUgdG8KICAgICAvLyB0aGUgT09NIGtpbGxlci4gIE5vdGUgdGhhdCB0aGUgT09NIGtpbGxlciBvbmx5IHN1cHBvcnRzIDYgc2xvdHMsIHNvIHdlCiAgICAgLy8gY2FuJ3QgZ2l2ZSBpdCBhIGRpZmZlcmVudCB2YWx1ZSBmb3IgZXZlcnkgcG9zc2libGUga2luZCBvZiBwcm9jZXNzLgpAQCAtMTUwLDE4ICsxNjQsMTggQEAKICAgICB9OwogICAgIC8vIFRoZXNlIGFyZSB0aGUgbG93LWVuZCBPT00gbGV2ZWwgbGltaXRzLiAgVGhpcyBpcyBhcHByb3ByaWF0ZSBmb3IgYW4KICAgICAvLyBIVkdBIG9yIHNtYWxsZXIgcGhvbmUgd2l0aCBsZXNzIHRoYW4gNTEyTUIuICBWYWx1ZXMgYXJlIGluIEtCLgotICAgIHByaXZhdGUgZmluYWwgbG9uZ1tdIG1Pb21NaW5GcmVlTG93ID0gbmV3IGxvbmdbXSB7CisgICAgcHJpdmF0ZSBmaW5hbCBpbnRbXSBtT29tTWluRnJlZUxvdyA9IG5ldyBpbnRbXSB7CiAgICAgICAgICAgICA4MTkyLCAxMjI4OCwgMTYzODQsCiAgICAgICAgICAgICAyNDU3NiwgMjg2NzIsIDMyNzY4CiAgICAgfTsKICAgICAvLyBUaGVzZSBhcmUgdGhlIGhpZ2gtZW5kIE9PTSBsZXZlbCBsaW1pdHMuICBUaGlzIGlzIGFwcHJvcHJpYXRlIGZvciBhCiAgICAgLy8gMTI4MHg4MDAgb3IgbGFyZ2VyIHNjcmVlbiB3aXRoIGFyb3VuZCAxR0IgUkFNLiAgVmFsdWVzIGFyZSBpbiBLQi4KLSAgICBwcml2YXRlIGZpbmFsIGxvbmdbXSBtT29tTWluRnJlZUhpZ2ggPSBuZXcgbG9uZ1tdIHsKKyAgICBwcml2YXRlIGZpbmFsIGludFtdIG1Pb21NaW5GcmVlSGlnaCA9IG5ldyBpbnRbXSB7CiAgICAgICAgICAgICA0OTE1MiwgNjE0NDAsIDczNzI4LAogICAgICAgICAgICAgODYwMTYsIDk4MzA0LCAxMjI4ODAKICAgICB9OwogICAgIC8vIFRoZSBhY3R1YWwgT09NIGtpbGxlciBtZW1vcnkgbGV2ZWxzIHdlIGFyZSB1c2luZy4KLSAgICBwcml2YXRlIGZpbmFsIGxvbmdbXSBtT29tTWluRnJlZSA9IG5ldyBsb25nW21Pb21BZGoubGVuZ3RoXTsKKyAgICBwcml2YXRlIGZpbmFsIGludFtdIG1Pb21NaW5GcmVlID0gbmV3IGludFttT29tQWRqLmxlbmd0aF07CiAKICAgICBwcml2YXRlIGZpbmFsIGxvbmcgbVRvdGFsTWVtTWI7CiAKQEAgLTE2OSw2ICsxODMsOSBAQAogCiAgICAgcHJpdmF0ZSBib29sZWFuIG1IYXZlRGlzcGxheVNpemU7CiAKKyAgICBwcml2YXRlIHN0YXRpYyBMb2NhbFNvY2tldCBzTG1rZFNvY2tldDsKKyAgICBwcml2YXRlIHN0YXRpYyBPdXRwdXRTdHJlYW0gc0xta2RPdXRwdXRTdHJlYW07CisKICAgICBQcm9jZXNzTGlzdCgpIHsKICAgICAgICAgTWVtSW5mb1JlYWRlciBtaW5mbyA9IG5ldyBNZW1JbmZvUmVhZGVyKCk7CiAgICAgICAgIG1pbmZvLnJlYWRNZW1JbmZvKCk7CkBAIC0yMDIsOSArMjE5LDYgQEAKICAgICAgICAgICAgICAgICAgICAgKyAiIGRoPSIgKyBkaXNwbGF5SGVpZ2h0KTsKICAgICAgICAgfQogCi0gICAgICAgIFN0cmluZ0J1aWxkZXIgYWRqU3RyaW5nID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBtZW1TdHJpbmcgPSBuZXcgU3RyaW5nQnVpbGRlcigpOwotCiAgICAgICAgIGZsb2F0IHNjYWxlID0gc2NhbGVNZW0gPiBzY2FsZURpc3AgPyBzY2FsZU1lbSA6IHNjYWxlRGlzcDsKICAgICAgICAgaWYgKHNjYWxlIDwgMCkgc2NhbGUgPSAwOwogICAgICAgICBlbHNlIGlmIChzY2FsZSA+IDEpIHNjYWxlID0gMTsKQEAgLTIxNywyMCArMjMxLDIwIEBACiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKGludCBpPTA7IGk8bU9vbUFkai5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgbG9uZyBsb3cgPSBtT29tTWluRnJlZUxvd1tpXTsKLSAgICAgICAgICAgIGxvbmcgaGlnaCA9IG1Pb21NaW5GcmVlSGlnaFtpXTsKLSAgICAgICAgICAgIG1Pb21NaW5GcmVlW2ldID0gKGxvbmcpKGxvdyArICgoaGlnaC1sb3cpKnNjYWxlKSk7CisgICAgICAgICAgICBpbnQgbG93ID0gbU9vbU1pbkZyZWVMb3dbaV07CisgICAgICAgICAgICBpbnQgaGlnaCA9IG1Pb21NaW5GcmVlSGlnaFtpXTsKKyAgICAgICAgICAgIG1Pb21NaW5GcmVlW2ldID0gKGludCkobG93ICsgKChoaWdoLWxvdykqc2NhbGUpKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtaW5mcmVlX2FicyA+PSAwKSB7CiAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bU9vbUFkai5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgIG1Pb21NaW5GcmVlW2ldID0gKGxvbmcpKChmbG9hdCltaW5mcmVlX2FicyAqIG1Pb21NaW5GcmVlW2ldIC8gbU9vbU1pbkZyZWVbbU9vbUFkai5sZW5ndGggLSAxXSk7CisgICAgICAgICAgICAgICAgbU9vbU1pbkZyZWVbaV0gPSAoaW50KSgoZmxvYXQpbWluZnJlZV9hYnMgKiBtT29tTWluRnJlZVtpXSAvIG1Pb21NaW5GcmVlW21Pb21BZGoubGVuZ3RoIC0gMV0pOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1pbmZyZWVfYWRqICE9IDApIHsKICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxtT29tQWRqLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgbU9vbU1pbkZyZWVbaV0gKz0gKGxvbmcpKChmbG9hdCltaW5mcmVlX2FkaiAqIG1Pb21NaW5GcmVlW2ldIC8gbU9vbU1pbkZyZWVbbU9vbUFkai5sZW5ndGggLSAxXSk7CisgICAgICAgICAgICAgICAgbU9vbU1pbkZyZWVbaV0gKz0gKGludCkoKGZsb2F0KW1pbmZyZWVfYWRqICogbU9vbU1pbkZyZWVbaV0gLyBtT29tTWluRnJlZVttT29tQWRqLmxlbmd0aCAtIDFdKTsKICAgICAgICAgICAgICAgICBpZiAobU9vbU1pbkZyZWVbaV0gPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgIG1Pb21NaW5GcmVlW2ldID0gMDsKICAgICAgICAgICAgICAgICB9CkBAIC0yNDIsMTUgKzI1Niw2IEBACiAgICAgICAgIC8vIGJlZm9yZSBraWxsaW5nIGJhY2tncm91bmQgcHJvY2Vzc2VzLgogICAgICAgICBtQ2FjaGVkUmVzdG9yZUxldmVsID0gKGdldE1lbUxldmVsKFByb2Nlc3NMaXN0LkNBQ0hFRF9BUFBfTUFYX0FESikvMTAyNCkgLyAzOwogCi0gICAgICAgIGZvciAoaW50IGk9MDsgaTxtT29tQWRqLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAoaSA+IDApIHsKLSAgICAgICAgICAgICAgICBhZGpTdHJpbmcuYXBwZW5kKCcsJyk7Ci0gICAgICAgICAgICAgICAgbWVtU3RyaW5nLmFwcGVuZCgnLCcpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYWRqU3RyaW5nLmFwcGVuZChtT29tQWRqW2ldKTsKLSAgICAgICAgICAgIG1lbVN0cmluZy5hcHBlbmQoKG1Pb21NaW5GcmVlW2ldKjEwMjQpL1BBR0VfU0laRSk7Ci0gICAgICAgIH0KLQogICAgICAgICAvLyBBc2sgdGhlIGtlcm5lbCB0byB0cnkgdG8ga2VlcCBlbm91Z2ggbWVtb3J5IGZyZWUgdG8gYWxsb2NhdGUgMyBmdWxsCiAgICAgICAgIC8vIHNjcmVlbiAzMmJwcCBidWZmZXJzIHdpdGhvdXQgZW50ZXJpbmcgZGlyZWN0IHJlY2xhaW0uCiAgICAgICAgIGludCByZXNlcnZlID0gZGlzcGxheVdpZHRoICogZGlzcGxheUhlaWdodCAqIDQgKiAzIC8gMTAyNDsKQEAgLTI2OCwxMCArMjczLDE1IEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICAvL1Nsb2cuaSgiWFhYWFhYWCIsICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIE1JTkZSRUU6ICIgKyBtZW1TdHJpbmcpOwogICAgICAgICBpZiAod3JpdGUpIHsKLSAgICAgICAgICAgIHdyaXRlRmlsZSgiL3N5cy9tb2R1bGUvbG93bWVtb3J5a2lsbGVyL3BhcmFtZXRlcnMvYWRqIiwgYWRqU3RyaW5nLnRvU3RyaW5nKCkpOwotICAgICAgICAgICAgd3JpdGVGaWxlKCIvc3lzL21vZHVsZS9sb3dtZW1vcnlraWxsZXIvcGFyYW1ldGVycy9taW5mcmVlIiwgbWVtU3RyaW5nLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgQnl0ZUJ1ZmZlciBidWYgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKDQgKiAoMiptT29tQWRqLmxlbmd0aCArIDEpKTsKKyAgICAgICAgICAgIGJ1Zi5wdXRJbnQoTE1LX1RBUkdFVCk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bU9vbUFkai5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGJ1Zi5wdXRJbnQoKG1Pb21NaW5GcmVlW2ldKjEwMjQpL1BBR0VfU0laRSk7CisgICAgICAgICAgICAgICAgYnVmLnB1dEludChtT29tQWRqW2ldKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgd3JpdGVMbWtkKGJ1Zik7CiAgICAgICAgICAgICBTeXN0ZW1Qcm9wZXJ0aWVzLnNldCgic3lzLnN5c2N0bC5leHRyYV9mcmVlX2tieXRlcyIsIEludGVnZXIudG9TdHJpbmcocmVzZXJ2ZSkpOwogICAgICAgICB9CiAgICAgICAgIC8vIEdCOiAyMDQ4LDMwNzIsNDA5Niw2MTQ0LDcxNjgsODE5MgpAQCAtNTA2LDE5ICs1MTYsNzggQEAKICAgICAgICAgcmV0dXJuIG1DYWNoZWRSZXN0b3JlTGV2ZWw7CiAgICAgfQogCi0gICAgcHJpdmF0ZSB2b2lkIHdyaXRlRmlsZShTdHJpbmcgcGF0aCwgU3RyaW5nIGRhdGEpIHsKLSAgICAgICAgRmlsZU91dHB1dFN0cmVhbSBmb3MgPSBudWxsOworICAgIC8qKgorICAgICAqIFNldCB0aGUgb3V0LW9mLW1lbW9yeSBiYWRuZXNzIGFkanVzdG1lbnQgZm9yIGEgcHJvY2Vzcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwaWQgVGhlIHByb2Nlc3MgaWRlbnRpZmllciB0byBzZXQuCisgICAgICogQHBhcmFtIGFtdCBBZGp1c3RtZW50IHZhbHVlIC0tIGxta2QgYWxsb3dzIC0xNiB0byArMTUuCisgICAgICoKKyAgICAgKiB7QGhpZGV9CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCB2b2lkIHNldE9vbUFkaihpbnQgcGlkLCBpbnQgYW10KSB7CisgICAgICAgIGlmIChhbXQgPT0gVU5LTk9XTl9BREopCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgQnl0ZUJ1ZmZlciBidWYgPSBCeXRlQnVmZmVyLmFsbG9jYXRlKDQgKiAzKTsKKyAgICAgICAgYnVmLnB1dEludChMTUtfUFJPQ1BSSU8pOworICAgICAgICBidWYucHV0SW50KHBpZCk7CisgICAgICAgIGJ1Zi5wdXRJbnQoYW10KTsKKyAgICAgICAgd3JpdGVMbWtkKGJ1Zik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiB7QGhpZGV9CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCB2b2lkIHJlbW92ZShpbnQgcGlkKSB7CisgICAgICAgIEJ5dGVCdWZmZXIgYnVmID0gQnl0ZUJ1ZmZlci5hbGxvY2F0ZSg0ICogMik7CisgICAgICAgIGJ1Zi5wdXRJbnQoTE1LX1BST0NSRU1PVkUpOworICAgICAgICBidWYucHV0SW50KHBpZCk7CisgICAgICAgIHdyaXRlTG1rZChidWYpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gb3Blbkxta2RTb2NrZXQoKSB7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBmb3MgPSBuZXcgRmlsZU91dHB1dFN0cmVhbShwYXRoKTsKLSAgICAgICAgICAgIGZvcy53cml0ZShkYXRhLmdldEJ5dGVzKCkpOwotICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICBTbG9nLncoQWN0aXZpdHlNYW5hZ2VyU2VydmljZS5UQUcsICJVbmFibGUgdG8gd3JpdGUgIiArIHBhdGgpOwotICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAgICAgaWYgKGZvcyAhPSBudWxsKSB7CisgICAgICAgICAgICBzTG1rZFNvY2tldCA9IG5ldyBMb2NhbFNvY2tldChMb2NhbFNvY2tldC5TT0NLRVRfU0VRUEFDS0VUKTsKKyAgICAgICAgICAgIHNMbWtkU29ja2V0LmNvbm5lY3QoCisgICAgICAgICAgICAgICAgbmV3IExvY2FsU29ja2V0QWRkcmVzcygibG1rZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbFNvY2tldEFkZHJlc3MuTmFtZXNwYWNlLlJFU0VSVkVEKSk7CisgICAgICAgICAgICBzTG1rZE91dHB1dFN0cmVhbSA9IHNMbWtkU29ja2V0LmdldE91dHB1dFN0cmVhbSgpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgU2xvZy53KEFjdGl2aXR5TWFuYWdlclNlcnZpY2UuVEFHLAorICAgICAgICAgICAgICAgICAgICJsb3dtZW1vcnlraWxsZXIgZGFlbW9uIHNvY2tldCBvcGVuIGZhaWxlZCIpOworICAgICAgICAgICAgc0xta2RTb2NrZXQgPSBudWxsOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB3cml0ZUxta2QoQnl0ZUJ1ZmZlciBidWYpIHsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkrKykgeworICAgICAgICAgICAgaWYgKHNMbWtkU29ja2V0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9wZW5MbWtkU29ja2V0KCkgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDEwMDApOworICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gaWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc0xta2RPdXRwdXRTdHJlYW0ud3JpdGUoYnVmLmFycmF5KCksIDAsIGJ1Zi5wb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgIFNsb2cudyhBY3Rpdml0eU1hbmFnZXJTZXJ2aWNlLlRBRywKKyAgICAgICAgICAgICAgICAgICAgICAgIkVycm9yIHdyaXRpbmcgdG8gbG93bWVtb3J5a2lsbGVyIHNvY2tldCIpOworCiAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgZm9zLmNsb3NlKCk7Ci0gICAgICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBzTG1rZFNvY2tldC5jbG9zZSgpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGV4MikgewogICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHNMbWtkU29ja2V0ID0gbnVsbDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2Nvbm5lY3Rpdml0eS9UZXRoZXJpbmcuamF2YSBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2Nvbm5lY3Rpdml0eS9UZXRoZXJpbmcuamF2YQppbmRleCAyMzFhNDBhLi5hZGYxZGZjIDEwMDY0NAotLS0gYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9jb25uZWN0aXZpdHkvVGV0aGVyaW5nLmphdmEKKysrIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvY29ubmVjdGl2aXR5L1RldGhlcmluZy5qYXZhCkBAIC01MSw2ICs1MSw3IEBACiBpbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwudXRpbC5TdGF0ZTsKIGltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC51dGlsLlN0YXRlTWFjaGluZTsKIGltcG9ydCBjb20uYW5kcm9pZC5zZXJ2ZXIuSW9UaHJlYWQ7CitpbXBvcnQgY29tLmFuZHJvaWQuc2VydmVyLm5ldC5CYXNlTmV0d29ya09ic2VydmVyOwogaW1wb3J0IGNvbS5nb29nbGUuYW5kcm9pZC5jb2xsZWN0Lkxpc3RzOwogCiBpbXBvcnQgamF2YS5pby5GaWxlRGVzY3JpcHRvcjsKQEAgLTcwLDcgKzcxLDcgQEAKICAqCiAgKiBUT0RPIC0gbG9vayBmb3IgcGFyZW50IGNsYXNzZXMgYW5kIGNvZGUgc2hhcmluZwogICovCi1wdWJsaWMgY2xhc3MgVGV0aGVyaW5nIGV4dGVuZHMgSU5ldHdvcmtNYW5hZ2VtZW50RXZlbnRPYnNlcnZlci5TdHViIHsKK3B1YmxpYyBjbGFzcyBUZXRoZXJpbmcgZXh0ZW5kcyBCYXNlTmV0d29ya09ic2VydmVyIHsKIAogICAgIHByaXZhdGUgQ29udGV4dCBtQ29udGV4dDsKICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBTdHJpbmcgVEFHID0gIlRldGhlcmluZyI7CkBAIC0zMTUsMTQgKzMxNiw2IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBhZGRyZXNzVXBkYXRlZChTdHJpbmcgYWRkcmVzcywgU3RyaW5nIGlmYWNlLCBpbnQgZmxhZ3MsIGludCBzY29wZSkge30KLQotICAgIHB1YmxpYyB2b2lkIGFkZHJlc3NSZW1vdmVkKFN0cmluZyBhZGRyZXNzLCBTdHJpbmcgaWZhY2UsIGludCBmbGFncywgaW50IHNjb3BlKSB7fQotCi0gICAgcHVibGljIHZvaWQgbGltaXRSZWFjaGVkKFN0cmluZyBsaW1pdE5hbWUsIFN0cmluZyBpZmFjZSkge30KLQotICAgIHB1YmxpYyB2b2lkIGludGVyZmFjZUNsYXNzRGF0YUFjdGl2aXR5Q2hhbmdlZChTdHJpbmcgbGFiZWwsIGJvb2xlYW4gYWN0aXZlKSB7fQotCiAgICAgcHVibGljIGludCB0ZXRoZXIoU3RyaW5nIGlmYWNlKSB7CiAgICAgICAgIGlmIChEQkcpIExvZy5kKFRBRywgIlRldGhlcmluZyAiICsgaWZhY2UpOwogICAgICAgICBUZXRoZXJJbnRlcmZhY2VTTSBzbSA9IG51bGw7CmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9jb250ZW50L0NvbnRlbnRTZXJ2aWNlLmphdmEgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9jb250ZW50L0NvbnRlbnRTZXJ2aWNlLmphdmEKaW5kZXggY2IzNWVmMS4uMTFjM2ZhMCAxMDA2NDQKLS0tIGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvY29udGVudC9Db250ZW50U2VydmljZS5qYXZhCisrKyBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2NvbnRlbnQvQ29udGVudFNlcnZpY2UuamF2YQpAQCAtMTksMTEgKzE5LDE0IEBACiBpbXBvcnQgYW5kcm9pZC5NYW5pZmVzdDsKIGltcG9ydCBhbmRyb2lkLmFjY291bnRzLkFjY291bnQ7CiBpbXBvcnQgYW5kcm9pZC5hcHAuQWN0aXZpdHlNYW5hZ2VyOworaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db21wb25lbnROYW1lOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZW50UmVzb2x2ZXI7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LklDb250ZW50U2VydmljZTsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuSVN5bmNTdGF0dXNPYnNlcnZlcjsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuUGVyaW9kaWNTeW5jOworaW1wb3J0IGFuZHJvaWQuY29udGVudC5wbS5QYWNrYWdlTWFuYWdlcjsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQucG0uU2VydmljZUluZm87CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LlN5bmNBZGFwdGVyVHlwZTsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuU3luY0luZm87CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LlN5bmNSZXF1ZXN0OwpAQCAtMzE1LDcgKzMxOCw2IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCByZXF1ZXN0U3luYyhBY2NvdW50IGFjY291bnQsIFN0cmluZyBhdXRob3JpdHksIEJ1bmRsZSBleHRyYXMpIHsKICAgICAgICAgQ29udGVudFJlc29sdmVyLnZhbGlkYXRlU3luY0V4dHJhc0J1bmRsZShleHRyYXMpOwogICAgICAgICBpbnQgdXNlcklkID0gVXNlckhhbmRsZS5nZXRDYWxsaW5nVXNlcklkKCk7CkBAIC0zNDUsNDYgKzM0Nyw1NiBAQAogICAgICAqIERlcGVuZGluZyBvbiB0aGUgcmVxdWVzdCwgd2UgZW5xdWV1ZSB0byBzdWl0IGluIHRoZSBTeW5jTWFuYWdlci4KICAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgcmVxdWVzdCBvYmplY3QuIFZhbGlkYXRpb24gb2YgdGhpcyBvYmplY3QgaXMgZG9uZSBieSBpdHMgYnVpbGRlci4KICAgICAgKi8KLSAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCBzeW5jKFN5bmNSZXF1ZXN0IHJlcXVlc3QpIHsKLSAgICAgICAgQnVuZGxlIGV4dHJhcyA9IHJlcXVlc3QuZ2V0QnVuZGxlKCk7Ci0gICAgICAgIGxvbmcgZmxleHRpbWUgPSByZXF1ZXN0LmdldFN5bmNGbGV4VGltZSgpOwotICAgICAgICBsb25nIHJ1bkF0VGltZSA9IHJlcXVlc3QuZ2V0U3luY1J1blRpbWUoKTsKICAgICAgICAgaW50IHVzZXJJZCA9IFVzZXJIYW5kbGUuZ2V0Q2FsbGluZ1VzZXJJZCgpOwotICAgICAgICBpbnQgdUlkID0gQmluZGVyLmdldENhbGxpbmdVaWQoKTsKLQorICAgICAgICBpbnQgY2FsbGVyVWlkID0gQmluZGVyLmdldENhbGxpbmdVaWQoKTsKICAgICAgICAgLy8gVGhpcyBtYWtlcyBpdCBzbyB0aGF0IGZ1dHVyZSBwZXJtaXNzaW9uIGNoZWNrcyB3aWxsIGJlIGluIHRoZSBjb250ZXh0IG9mIHRoaXMKICAgICAgICAgLy8gcHJvY2VzcyByYXRoZXIgdGhhbiB0aGUgY2FsbGVyJ3MgcHJvY2Vzcy4gV2Ugd2lsbCByZXN0b3JlIHRoaXMgYmVmb3JlIHJldHVybmluZy4KICAgICAgICAgbG9uZyBpZGVudGl0eVRva2VuID0gY2xlYXJDYWxsaW5nSWRlbnRpdHkoKTsKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIFN5bmNNYW5hZ2VyIHN5bmNNYW5hZ2VyID0gZ2V0U3luY01hbmFnZXIoKTsKLSAgICAgICAgICAgIGlmIChzeW5jTWFuYWdlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJlcXVlc3QuaGFzQXV0aG9yaXR5KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gU3luYyBBZGFwdGVyIHJlZ2lzdGVyZWQgd2l0aCB0aGUgc3lzdGVtIC0gb2xkIEFQSS4KLSAgICAgICAgICAgICAgICAgICAgZmluYWwgIEFjY291bnQgYWNjb3VudCA9IHJlcXVlc3QuZ2V0QWNjb3VudCgpOwotICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgcHJvdmlkZXIgPSByZXF1ZXN0LmdldFByb3ZpZGVyKCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0LmlzUGVyaW9kaWMoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbUNvbnRleHQuZW5mb3JjZUNhbGxpbmdPclNlbGZQZXJtaXNzaW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYW5pZmVzdC5wZXJtaXNzaW9uLldSSVRFX1NZTkNfU0VUVElOR1MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJubyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZSBzeW5jIHNldHRpbmdzIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocnVuQXRUaW1lIDwgNjApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbG9nLncoVEFHLCAiUmVxdWVzdGVkIHBvbGwgZnJlcXVlbmN5IG9mICIgKyBydW5BdFRpbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBzZWNvbmRzIGJlaW5nIHJvdW5kZWQgdXAgdG8gNjAgc2Vjb25kcy4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5BdFRpbWUgPSA2MDsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIFBlcmlvZGljU3luYyBzeW5jVG9BZGQgPQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgUGVyaW9kaWNTeW5jKGFjY291bnQsIHByb3ZpZGVyLCBleHRyYXMsIHJ1bkF0VGltZSwgZmxleHRpbWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U3luY01hbmFnZXIoKS5nZXRTeW5jU3RvcmFnZUVuZ2luZSgpLmFkZFBlcmlvZGljU3luYyhzeW5jVG9BZGQsIHVzZXJJZCk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsb25nIGJlZm9yZVJ1bnRpbWVNaWxsaXMgPSAoZmxleHRpbWUpICogMTAwMDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcnVudGltZU1pbGxpcyA9IHJ1bkF0VGltZSAqIDEwMDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzeW5jTWFuYWdlci5zY2hlZHVsZVN5bmMoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQsIHVzZXJJZCwgdUlkLCBwcm92aWRlciwgZXh0cmFzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVSdW50aW1lTWlsbGlzLCBydW50aW1lTWlsbGlzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKiBvbmx5VGhvc2VXaXRoVW5rbm93blN5bmNhYmxlU3RhdGUgKi8pOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3luY01hbmFnZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQnVuZGxlIGV4dHJhcyA9IHJlcXVlc3QuZ2V0QnVuZGxlKCk7CisgICAgICAgICAgICBsb25nIGZsZXh0aW1lID0gcmVxdWVzdC5nZXRTeW5jRmxleFRpbWUoKTsKKyAgICAgICAgICAgIGxvbmcgcnVuQXRUaW1lID0gcmVxdWVzdC5nZXRTeW5jUnVuVGltZSgpOworICAgICAgICAgICAgaWYgKHJlcXVlc3QuaXNQZXJpb2RpYygpKSB7CisgICAgICAgICAgICAgICAgbUNvbnRleHQuZW5mb3JjZUNhbGxpbmdPclNlbGZQZXJtaXNzaW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgTWFuaWZlc3QucGVybWlzc2lvbi5XUklURV9TWU5DX1NFVFRJTkdTLAorICAgICAgICAgICAgICAgICAgICAgICAgIm5vIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlIHN5bmMgc2V0dGluZ3MiKTsKKyAgICAgICAgICAgICAgICBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludCBpbmZvOworICAgICAgICAgICAgICAgIGlmICghcmVxdWVzdC5oYXNBdXRob3JpdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBFeHRyYSBwZXJtaXNzaW9ucyBjaGVja2luZyBmb3Igc3luYyBzZXJ2aWNlLgorICAgICAgICAgICAgICAgICAgICB2ZXJpZnlTaWduYXR1cmVGb3JQYWNrYWdlKGNhbGxlclVpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmdldFNlcnZpY2UoKS5nZXRQYWNrYWdlTmFtZSgpLCAic3luYyIpOworICAgICAgICAgICAgICAgICAgICBpbmZvID0gbmV3IFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50KHJlcXVlc3QuZ2V0U2VydmljZSgpLCB1c2VySWQpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIExvZy53KFRBRywgIlVucmVjb2duaXNlZCBzeW5jIHBhcmFtZXRlcnMsIGRvaW5nIG5vdGhpbmcuIik7CisgICAgICAgICAgICAgICAgICAgIGluZm8gPSBuZXcgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5nZXRBY2NvdW50KCksIHJlcXVlc3QuZ2V0UHJvdmlkZXIoKSwgdXNlcklkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJ1bkF0VGltZSA8IDYwKSB7CisgICAgICAgICAgICAgICAgICAgIFNsb2cudyhUQUcsICJSZXF1ZXN0ZWQgcG9sbCBmcmVxdWVuY3kgb2YgIiArIHJ1bkF0VGltZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBzZWNvbmRzIGJlaW5nIHJvdW5kZWQgdXAgdG8gNjAgc2Vjb25kcy4iKTsKKyAgICAgICAgICAgICAgICAgICAgcnVuQXRUaW1lID0gNjA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIHBlcmlvZGljIHN5bmMuCisgICAgICAgICAgICAgICAgZ2V0U3luY01hbmFnZXIoKS5nZXRTeW5jU3RvcmFnZUVuZ2luZSgpCisgICAgICAgICAgICAgICAgICAgIC51cGRhdGVPckFkZFBlcmlvZGljU3luYyhpbmZvLCBydW5BdFRpbWUsIGZsZXh0aW1lLCBleHRyYXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb25nIGJlZm9yZVJ1bnRpbWVNaWxsaXMgPSAoZmxleHRpbWUpICogMTAwMDsKKyAgICAgICAgICAgICAgICBsb25nIHJ1bnRpbWVNaWxsaXMgPSBydW5BdFRpbWUgKiAxMDAwOworICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0Lmhhc0F1dGhvcml0eSgpKSB7CisgICAgICAgICAgICAgICAgc3luY01hbmFnZXIuc2NoZWR1bGVTeW5jKAorICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5nZXRBY2NvdW50KCksIHVzZXJJZCwgY2FsbGVyVWlkLCByZXF1ZXN0LmdldFByb3ZpZGVyKCksIGV4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZVJ1bnRpbWVNaWxsaXMsIHJ1bnRpbWVNaWxsaXMsCisgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKiBvbmx5VGhvc2VXaXRoVW5rbm93blN5bmNhYmxlU3RhdGUgKi8pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHN5bmNNYW5hZ2VyLnNjaGVkdWxlU3luYygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmdldFNlcnZpY2UoKSwgdXNlcklkLCBjYWxsZXJVaWQsIGV4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVSdW50aW1lTWlsbGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bnRpbWVNaWxsaXMpOyAvLyBFbXB0eSBmdW5jdGlvbi4KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZmluYWxseSB7CkBAIC0zOTUsMTEgKzQwNywxNCBAQAogICAgIC8qKgogICAgICAqIENsZWFyIGFsbCBzY2hlZHVsZWQgc3luYyBvcGVyYXRpb25zIHRoYXQgbWF0Y2ggdGhlIHVyaSBhbmQgY2FuY2VsIHRoZSBhY3RpdmUgc3luYwogICAgICAqIGlmIHRoZXkgbWF0Y2ggdGhlIGF1dGhvcml0eSBhbmQgYWNjb3VudCwgaWYgdGhleSBhcmUgcHJlc2VudC4KLSAgICAgKiBAcGFyYW0gYWNjb3VudCBmaWx0ZXIgdGhlIHBlbmRpbmcgYW5kIGFjdGl2ZSBzeW5jcyB0byBjYW5jZWwgdXNpbmcgdGhpcyBhY2NvdW50Ci0gICAgICogQHBhcmFtIGF1dGhvcml0eSBmaWx0ZXIgdGhlIHBlbmRpbmcgYW5kIGFjdGl2ZSBzeW5jcyB0byBjYW5jZWwgdXNpbmcgdGhpcyBhdXRob3JpdHkKKyAgICAgKgorICAgICAqIEBwYXJhbSBhY2NvdW50IGZpbHRlciB0aGUgcGVuZGluZyBhbmQgYWN0aXZlIHN5bmNzIHRvIGNhbmNlbCB1c2luZyB0aGlzIGFjY291bnQsIG9yIG51bGwuCisgICAgICogQHBhcmFtIGF1dGhvcml0eSBmaWx0ZXIgdGhlIHBlbmRpbmcgYW5kIGFjdGl2ZSBzeW5jcyB0byBjYW5jZWwgdXNpbmcgdGhpcyBhdXRob3JpdHksIG9yCisgICAgICogbnVsbC4KKyAgICAgKiBAcGFyYW0gY25hbWUgY2FuY2VsIHN5bmNzIHJ1bm5pbmcgb24gdGhpcyBzZXJ2aWNlLCBvciBudWxsIGZvciBwcm92aWRlci9hY2NvdW50LgogICAgICAqLwogICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGNhbmNlbFN5bmMoQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgYXV0aG9yaXR5KSB7CisgICAgcHVibGljIHZvaWQgY2FuY2VsU3luYyhBY2NvdW50IGFjY291bnQsIFN0cmluZyBhdXRob3JpdHksIENvbXBvbmVudE5hbWUgY25hbWUpIHsKICAgICAgICAgaWYgKGF1dGhvcml0eSAhPSBudWxsICYmIGF1dGhvcml0eS5sZW5ndGgoKSA9PSAwKSB7CiAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJBdXRob3JpdHkgbXVzdCBiZSBub24tZW1wdHkiKTsKICAgICAgICAgfQpAQCAtNDExLDE0ICs0MjYsNTQgQEAKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIFN5bmNNYW5hZ2VyIHN5bmNNYW5hZ2VyID0gZ2V0U3luY01hbmFnZXIoKTsKICAgICAgICAgICAgIGlmIChzeW5jTWFuYWdlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgc3luY01hbmFnZXIuY2xlYXJTY2hlZHVsZWRTeW5jT3BlcmF0aW9ucyhhY2NvdW50LCB1c2VySWQsIGF1dGhvcml0eSk7Ci0gICAgICAgICAgICAgICAgc3luY01hbmFnZXIuY2FuY2VsQWN0aXZlU3luYyhhY2NvdW50LCB1c2VySWQsIGF1dGhvcml0eSk7CisgICAgICAgICAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQgaW5mbzsKKyAgICAgICAgICAgICAgICBpZiAoY25hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpbmZvID0gbmV3IFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50KGFjY291bnQsIGF1dGhvcml0eSwgdXNlcklkKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbmZvID0gbmV3IFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50KGNuYW1lLCB1c2VySWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzeW5jTWFuYWdlci5jbGVhclNjaGVkdWxlZFN5bmNPcGVyYXRpb25zKGluZm8pOworICAgICAgICAgICAgICAgIHN5bmNNYW5hZ2VyLmNhbmNlbEFjdGl2ZVN5bmMoaW5mbywgbnVsbCAvKiBhbGwgc3luY3MgZm9yIHRoaXMgYWRhcHRlciAqLyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICByZXN0b3JlQ2FsbGluZ0lkZW50aXR5KGlkZW50aXR5VG9rZW4pOwogICAgICAgICB9CiAgICAgfQogCisgICAgcHVibGljIHZvaWQgY2FuY2VsUmVxdWVzdChTeW5jUmVxdWVzdCByZXF1ZXN0KSB7CisgICAgICAgIFN5bmNNYW5hZ2VyIHN5bmNNYW5hZ2VyID0gZ2V0U3luY01hbmFnZXIoKTsKKyAgICAgICAgaWYgKHN5bmNNYW5hZ2VyID09IG51bGwpIHJldHVybjsKKyAgICAgICAgaW50IHVzZXJJZCA9IFVzZXJIYW5kbGUuZ2V0Q2FsbGluZ1VzZXJJZCgpOworICAgICAgICBpbnQgY2FsbGVyVWlkID0gQmluZGVyLmdldENhbGxpbmdVaWQoKTsKKworICAgICAgICBsb25nIGlkZW50aXR5VG9rZW4gPSBjbGVhckNhbGxpbmdJZGVudGl0eSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQgaW5mbzsKKyAgICAgICAgICAgIEJ1bmRsZSBleHRyYXMgPSBuZXcgQnVuZGxlKHJlcXVlc3QuZ2V0QnVuZGxlKCkpOworICAgICAgICAgICAgaWYgKHJlcXVlc3QuaGFzQXV0aG9yaXR5KCkpIHsKKyAgICAgICAgICAgICAgICBBY2NvdW50IGFjY291bnQgPSByZXF1ZXN0LmdldEFjY291bnQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcHJvdmlkZXIgPSByZXF1ZXN0LmdldFByb3ZpZGVyKCk7CisgICAgICAgICAgICAgICAgaW5mbyA9IG5ldyBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludChhY2NvdW50LCBwcm92aWRlciwgdXNlcklkKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gT25seSBhbGxvd2VkIHRvIG1hbmlwdWxhdGUgc3luY3MgZm9yIGEgc2VydmljZSB3aGljaCB5b3Ugb3duLgorICAgICAgICAgICAgICAgIENvbXBvbmVudE5hbWUgc2VydmljZSA9IHJlcXVlc3QuZ2V0U2VydmljZSgpOworICAgICAgICAgICAgICAgIHZlcmlmeVNpZ25hdHVyZUZvclBhY2thZ2UoY2FsbGVyVWlkLCBzZXJ2aWNlLmdldFBhY2thZ2VOYW1lKCksICJjYW5jZWwiKTsKKyAgICAgICAgICAgICAgICBpbmZvID0gbmV3IFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50KHNlcnZpY2UsIHVzZXJJZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocmVxdWVzdC5pc1BlcmlvZGljKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBSZW1vdmUgcGVyaW9kaWMgc3luYy4KKyAgICAgICAgICAgICAgICBtQ29udGV4dC5lbmZvcmNlQ2FsbGluZ09yU2VsZlBlcm1pc3Npb24oTWFuaWZlc3QucGVybWlzc2lvbi5XUklURV9TWU5DX1NFVFRJTkdTLAorICAgICAgICAgICAgICAgICAgICAgICAgIm5vIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlIHN5bmMgc2V0dGluZ3MiKTsKKyAgICAgICAgICAgICAgICBnZXRTeW5jTWFuYWdlcigpLmdldFN5bmNTdG9yYWdlRW5naW5lKCkucmVtb3ZlUGVyaW9kaWNTeW5jKGluZm8sIGV4dHJhcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBDYW5jZWwgYWN0aXZlIHN5bmNzIGFuZCBjbGVhciBwZW5kaW5nIHN5bmNzIGZyb20gdGhlIHF1ZXVlLgorICAgICAgICAgICAgc3luY01hbmFnZXIuY2FuY2VsU2NoZWR1bGVkU3luY09wZXJhdGlvbihpbmZvLCBleHRyYXMpOworICAgICAgICAgICAgc3luY01hbmFnZXIuY2FuY2VsQWN0aXZlU3luYyhpbmZvLCBleHRyYXMpOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgcmVzdG9yZUNhbGxpbmdJZGVudGl0eShpZGVudGl0eVRva2VuKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIC8qKgogICAgICAqIEdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgU3luY0FkYXB0ZXJzIHRoYXQgYXJlIGtub3duIHRvIHRoZSBzeXN0ZW0uCiAgICAgICogQHJldHVybiBhbiBhcnJheSBvZiBTeW5jQWRhcHRlcnMgdGhhdCBoYXZlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgc3lzdGVtCkBAIC00NDcsOCArNTAyLDggQEAKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIFN5bmNNYW5hZ2VyIHN5bmNNYW5hZ2VyID0gZ2V0U3luY01hbmFnZXIoKTsKICAgICAgICAgICAgIGlmIChzeW5jTWFuYWdlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNNYW5hZ2VyLmdldFN5bmNTdG9yYWdlRW5naW5lKCkuZ2V0U3luY0F1dG9tYXRpY2FsbHkoCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50LCB1c2VySWQsIHByb3ZpZGVyTmFtZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNNYW5hZ2VyLmdldFN5bmNTdG9yYWdlRW5naW5lKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRTeW5jQXV0b21hdGljYWxseShhY2NvdW50LCB1c2VySWQsIHByb3ZpZGVyTmFtZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICByZXN0b3JlQ2FsbGluZ0lkZW50aXR5KGlkZW50aXR5VG9rZW4pOwpAQCAtNDY5LDggKzUyNCw4IEBACiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBTeW5jTWFuYWdlciBzeW5jTWFuYWdlciA9IGdldFN5bmNNYW5hZ2VyKCk7CiAgICAgICAgICAgICBpZiAoc3luY01hbmFnZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHN5bmNNYW5hZ2VyLmdldFN5bmNTdG9yYWdlRW5naW5lKCkuc2V0U3luY0F1dG9tYXRpY2FsbHkoCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50LCB1c2VySWQsIHByb3ZpZGVyTmFtZSwgc3luYyk7CisgICAgICAgICAgICAgICAgc3luY01hbmFnZXIuZ2V0U3luY1N0b3JhZ2VFbmdpbmUoKQorICAgICAgICAgICAgICAgIC5zZXRTeW5jQXV0b21hdGljYWxseShhY2NvdW50LCB1c2VySWQsIHByb3ZpZGVyTmFtZSwgc3luYyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICByZXN0b3JlQ2FsbGluZ0lkZW50aXR5KGlkZW50aXR5VG9rZW4pOwpAQCAtNDk2LDIxICs1NTEsMjIgQEAKICAgICAgICAgICAgICAgICAgICAgKyAiIHNlY29uZHMgYmVpbmcgcm91bmRlZCB1cCB0byA2MCBzZWNvbmRzLiIpOwogICAgICAgICAgICAgcG9sbEZyZXF1ZW5jeSA9IDYwOwogICAgICAgICB9CisgICAgICAgIGxvbmcgZGVmYXVsdEZsZXggPSBTeW5jU3RvcmFnZUVuZ2luZS5jYWxjdWxhdGVEZWZhdWx0RmxleFRpbWUocG9sbEZyZXF1ZW5jeSk7CiAKICAgICAgICAgbG9uZyBpZGVudGl0eVRva2VuID0gY2xlYXJDYWxsaW5nSWRlbnRpdHkoKTsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIC8vIEFkZCBkZWZhdWx0IGZsZXggdGltZSB0byB0aGlzIHN5bmMuCi0gICAgICAgICAgICBQZXJpb2RpY1N5bmMgc3luY1RvQWRkID0KLSAgICAgICAgICAgICAgICAgICAgbmV3IFBlcmlvZGljU3luYyhhY2NvdW50LCBhdXRob3JpdHksIGV4dHJhcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xsRnJlcXVlbmN5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLmNhbGN1bGF0ZURlZmF1bHRGbGV4VGltZShwb2xsRnJlcXVlbmN5KSk7Ci0gICAgICAgICAgICBnZXRTeW5jTWFuYWdlcigpLmdldFN5bmNTdG9yYWdlRW5naW5lKCkuYWRkUGVyaW9kaWNTeW5jKHN5bmNUb0FkZCwgdXNlcklkKTsKKyAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50IGluZm8gPQorICAgICAgICAgICAgICAgICAgICBuZXcgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQoYWNjb3VudCwgYXV0aG9yaXR5LCB1c2VySWQpOworICAgICAgICAgICAgZ2V0U3luY01hbmFnZXIoKS5nZXRTeW5jU3RvcmFnZUVuZ2luZSgpCisgICAgICAgICAgICAgICAgLnVwZGF0ZU9yQWRkUGVyaW9kaWNTeW5jKGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICBwb2xsRnJlcXVlbmN5LAorICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEZsZXgsCisgICAgICAgICAgICAgICAgICAgICAgICBleHRyYXMpOwogICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgcmVzdG9yZUNhbGxpbmdJZGVudGl0eShpZGVudGl0eVRva2VuKTsKICAgICAgICAgfQogICAgIH0KIAotICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyB2b2lkIHJlbW92ZVBlcmlvZGljU3luYyhBY2NvdW50IGFjY291bnQsIFN0cmluZyBhdXRob3JpdHksIEJ1bmRsZSBleHRyYXMpIHsKICAgICAgICAgaWYgKGFjY291bnQgPT0gbnVsbCkgewogICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQWNjb3VudCBtdXN0IG5vdCBiZSBudWxsIik7CkBAIC01MjQsMjQgKzU4MCwxOCBAQAogICAgICAgICBpbnQgdXNlcklkID0gVXNlckhhbmRsZS5nZXRDYWxsaW5nVXNlcklkKCk7CiAgICAgICAgIGxvbmcgaWRlbnRpdHlUb2tlbiA9IGNsZWFyQ2FsbGluZ0lkZW50aXR5KCk7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBQZXJpb2RpY1N5bmMgc3luY1RvUmVtb3ZlID0gbmV3IFBlcmlvZGljU3luYyhhY2NvdW50LCBhdXRob3JpdHksIGV4dHJhcywKLSAgICAgICAgICAgICAgICAgICAgMCAvKiBOb3QgcmVhZCBmb3IgcmVtb3ZhbCAqLywgMCAvKiBOb3QgcmVhZCBmb3IgcmVtb3ZhbCAqLyk7Ci0gICAgICAgICAgICBnZXRTeW5jTWFuYWdlcigpLmdldFN5bmNTdG9yYWdlRW5naW5lKCkucmVtb3ZlUGVyaW9kaWNTeW5jKHN5bmNUb1JlbW92ZSwgdXNlcklkKTsKKyAgICAgICAgICAgIGdldFN5bmNNYW5hZ2VyKCkuZ2V0U3luY1N0b3JhZ2VFbmdpbmUoKQorICAgICAgICAgICAgICAgIC5yZW1vdmVQZXJpb2RpY1N5bmMoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQoYWNjb3VudCwgYXV0aG9yaXR5LCB1c2VySWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFzKTsKICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgIHJlc3RvcmVDYWxsaW5nSWRlbnRpdHkoaWRlbnRpdHlUb2tlbik7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvKioKLSAgICAgKiBUT0RPOiBJbXBsZW1lbnQuCi0gICAgICogQHBhcmFtIHJlcXVlc3QgU3luYyB0byByZW1vdmUuCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgcmVtb3ZlU3luYyhTeW5jUmVxdWVzdCByZXF1ZXN0KSB7CiAKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgTGlzdDxQZXJpb2RpY1N5bmM+IGdldFBlcmlvZGljU3luY3MoQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgcHJvdmlkZXJOYW1lKSB7CisgICAgcHVibGljIExpc3Q8UGVyaW9kaWNTeW5jPiBnZXRQZXJpb2RpY1N5bmNzKEFjY291bnQgYWNjb3VudCwgU3RyaW5nIHByb3ZpZGVyTmFtZSwKKyAgICAgICAgICAgIENvbXBvbmVudE5hbWUgY25hbWUpIHsKICAgICAgICAgaWYgKGFjY291bnQgPT0gbnVsbCkgewogICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQWNjb3VudCBtdXN0IG5vdCBiZSBudWxsIik7CiAgICAgICAgIH0KQEAgLTU1MSwxMSArNjAxLDIwIEBACiAgICAgICAgIG1Db250ZXh0LmVuZm9yY2VDYWxsaW5nT3JTZWxmUGVybWlzc2lvbihNYW5pZmVzdC5wZXJtaXNzaW9uLlJFQURfU1lOQ19TRVRUSU5HUywKICAgICAgICAgICAgICAgICAibm8gcGVybWlzc2lvbiB0byByZWFkIHRoZSBzeW5jIHNldHRpbmdzIik7CiAKKyAgICAgICAgaW50IGNhbGxlclVpZCA9IEJpbmRlci5nZXRDYWxsaW5nVWlkKCk7CiAgICAgICAgIGludCB1c2VySWQgPSBVc2VySGFuZGxlLmdldENhbGxpbmdVc2VySWQoKTsKICAgICAgICAgbG9uZyBpZGVudGl0eVRva2VuID0gY2xlYXJDYWxsaW5nSWRlbnRpdHkoKTsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHJldHVybiBnZXRTeW5jTWFuYWdlcigpLmdldFN5bmNTdG9yYWdlRW5naW5lKCkuZ2V0UGVyaW9kaWNTeW5jcygKLSAgICAgICAgICAgICAgICAgICAgYWNjb3VudCwgdXNlcklkLCBwcm92aWRlck5hbWUpOworICAgICAgICAgICAgaWYgKGNuYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U3luY01hbmFnZXIoKS5nZXRTeW5jU3RvcmFnZUVuZ2luZSgpLmdldFBlcmlvZGljU3luY3MoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQoYWNjb3VudCwgcHJvdmlkZXJOYW1lLCB1c2VySWQpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYWNjb3VudCA9PSBudWxsICYmIHByb3ZpZGVyTmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdmVyaWZ5U2lnbmF0dXJlRm9yUGFja2FnZShjYWxsZXJVaWQsIGNuYW1lLmdldFBhY2thZ2VOYW1lKCksICJnZXRQZXJpb2RpY1N5bmNzIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldFN5bmNNYW5hZ2VyKCkuZ2V0U3luY1N0b3JhZ2VFbmdpbmUoKS5nZXRQZXJpb2RpY1N5bmNzKAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50KGNuYW1lLCB1c2VySWQpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBhdXRob3JpdHkgc3BlY2lmaWVkIik7CisgICAgICAgICAgICB9CiAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICByZXN0b3JlQ2FsbGluZ0lkZW50aXR5KGlkZW50aXR5VG9rZW4pOwogICAgICAgICB9CkBAIC01NzksNyArNjM4LDYgQEAKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAotICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyB2b2lkIHNldElzU3luY2FibGUoQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgcHJvdmlkZXJOYW1lLCBpbnQgc3luY2FibGUpIHsKICAgICAgICAgaWYgKFRleHRVdGlscy5pc0VtcHR5KHByb3ZpZGVyTmFtZSkpIHsKICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkF1dGhvcml0eSBtdXN0IG5vdCBiZSBlbXB0eSIpOwpAQCAtNjAwLDYgKzY1OCw0NSBAQAogICAgICAgICB9CiAgICAgfQogCisgICAgcHVibGljIHZvaWQgc2V0U2VydmljZUFjdGl2ZShDb21wb25lbnROYW1lIGNuYW1lLCBib29sZWFuIGFjdGl2ZSkgeworICAgICAgICBtQ29udGV4dC5lbmZvcmNlQ2FsbGluZ09yU2VsZlBlcm1pc3Npb24oTWFuaWZlc3QucGVybWlzc2lvbi5XUklURV9TWU5DX1NFVFRJTkdTLAorICAgICAgICAgICAgICAgICJubyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZSBzeW5jIHNldHRpbmdzIik7CisgICAgICAgIHZlcmlmeVNpZ25hdHVyZUZvclBhY2thZ2UoQmluZGVyLmdldENhbGxpbmdVaWQoKSwgY25hbWUuZ2V0UGFja2FnZU5hbWUoKSwKKyAgICAgICAgICAgICAgICAic2V0U2VydmljZUFjdGl2ZSIpOworCisgICAgICAgIGludCB1c2VySWQgPSBVc2VySGFuZGxlLmdldENhbGxpbmdVc2VySWQoKTsKKyAgICAgICAgbG9uZyBpZGVudGl0eVRva2VuID0gY2xlYXJDYWxsaW5nSWRlbnRpdHkoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN5bmNNYW5hZ2VyIHN5bmNNYW5hZ2VyID0gZ2V0U3luY01hbmFnZXIoKTsKKyAgICAgICAgICAgIGlmIChzeW5jTWFuYWdlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3luY01hbmFnZXIuZ2V0U3luY1N0b3JhZ2VFbmdpbmUoKS5zZXRJc1RhcmdldFNlcnZpY2VBY3RpdmUoCisgICAgICAgICAgICAgICAgICAgICAgICBjbmFtZSwgdXNlcklkLCBhY3RpdmUpOworICAgICAgICAgICAgfQorICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgcmVzdG9yZUNhbGxpbmdJZGVudGl0eShpZGVudGl0eVRva2VuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzU2VydmljZUFjdGl2ZShDb21wb25lbnROYW1lIGNuYW1lKSB7CisgICAgICAgIG1Db250ZXh0LmVuZm9yY2VDYWxsaW5nT3JTZWxmUGVybWlzc2lvbihNYW5pZmVzdC5wZXJtaXNzaW9uLlJFQURfU1lOQ19TRVRUSU5HUywKKyAgICAgICAgICAgICAgICAibm8gcGVybWlzc2lvbiB0byByZWFkIHRoZSBzeW5jIHNldHRpbmdzIik7CisgICAgICAgIHZlcmlmeVNpZ25hdHVyZUZvclBhY2thZ2UoQmluZGVyLmdldENhbGxpbmdVaWQoKSwgY25hbWUuZ2V0UGFja2FnZU5hbWUoKSwKKyAgICAgICAgICAgICAgICAiaXNTZXJ2aWNlQWN0aXZlIik7CisKKyAgICAgICAgaW50IHVzZXJJZCA9IFVzZXJIYW5kbGUuZ2V0Q2FsbGluZ1VzZXJJZCgpOworICAgICAgICBsb25nIGlkZW50aXR5VG9rZW4gPSBjbGVhckNhbGxpbmdJZGVudGl0eSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3luY01hbmFnZXIgc3luY01hbmFnZXIgPSBnZXRTeW5jTWFuYWdlcigpOworICAgICAgICAgICAgaWYgKHN5bmNNYW5hZ2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3luY01hbmFnZXIuZ2V0U3luY1N0b3JhZ2VFbmdpbmUoKQorICAgICAgICAgICAgICAgICAgICAgICAgLmdldElzVGFyZ2V0U2VydmljZUFjdGl2ZShjbmFtZSwgdXNlcklkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIHJlc3RvcmVDYWxsaW5nSWRlbnRpdHkoaWRlbnRpdHlUb2tlbik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyBib29sZWFuIGdldE1hc3RlclN5bmNBdXRvbWF0aWNhbGx5KCkgewogICAgICAgICBtQ29udGV4dC5lbmZvcmNlQ2FsbGluZ09yU2VsZlBlcm1pc3Npb24oTWFuaWZlc3QucGVybWlzc2lvbi5SRUFEX1NZTkNfU0VUVElOR1MsCkBAIC02MzUsMTcgKzczMiwyNCBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgcHVibGljIGJvb2xlYW4gaXNTeW5jQWN0aXZlKEFjY291bnQgYWNjb3VudCwgU3RyaW5nIGF1dGhvcml0eSkgeworICAgIHB1YmxpYyBib29sZWFuIGlzU3luY0FjdGl2ZShBY2NvdW50IGFjY291bnQsIFN0cmluZyBhdXRob3JpdHksIENvbXBvbmVudE5hbWUgY25hbWUpIHsKICAgICAgICAgbUNvbnRleHQuZW5mb3JjZUNhbGxpbmdPclNlbGZQZXJtaXNzaW9uKE1hbmlmZXN0LnBlcm1pc3Npb24uUkVBRF9TWU5DX1NUQVRTLAogICAgICAgICAgICAgICAgICJubyBwZXJtaXNzaW9uIHRvIHJlYWQgdGhlIHN5bmMgc3RhdHMiKTsKICAgICAgICAgaW50IHVzZXJJZCA9IFVzZXJIYW5kbGUuZ2V0Q2FsbGluZ1VzZXJJZCgpOwotCisgICAgICAgIGludCBjYWxsaW5nVWlkID0gQmluZGVyLmdldENhbGxpbmdVaWQoKTsKICAgICAgICAgbG9uZyBpZGVudGl0eVRva2VuID0gY2xlYXJDYWxsaW5nSWRlbnRpdHkoKTsKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIFN5bmNNYW5hZ2VyIHN5bmNNYW5hZ2VyID0gZ2V0U3luY01hbmFnZXIoKTsKLSAgICAgICAgICAgIGlmIChzeW5jTWFuYWdlciAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoc3luY01hbmFnZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjbmFtZSA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNNYW5hZ2VyLmdldFN5bmNTdG9yYWdlRW5naW5lKCkuaXNTeW5jQWN0aXZlKAotICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudCwgdXNlcklkLCBhdXRob3JpdHkpOworICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50KGFjY291bnQsIGF1dGhvcml0eSwgdXNlcklkKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFjY291bnQgPT0gbnVsbCAmJiBhdXRob3JpdHkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHZlcmlmeVNpZ25hdHVyZUZvclBhY2thZ2UoY2FsbGluZ1VpZCwgY25hbWUuZ2V0UGFja2FnZU5hbWUoKSwgImlzU3luY0FjdGl2ZSIpOworICAgICAgICAgICAgICAgIHJldHVybiBzeW5jTWFuYWdlci5nZXRTeW5jU3RvcmFnZUVuZ2luZSgpLmlzU3luY0FjdGl2ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludChjbmFtZSwgdXNlcklkKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICByZXN0b3JlQ2FsbGluZ0lkZW50aXR5KGlkZW50aXR5VG9rZW4pOwpAQCAtNjY2LDcgKzc3MCw3IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwdWJsaWMgU3luY1N0YXR1c0luZm8gZ2V0U3luY1N0YXR1cyhBY2NvdW50IGFjY291bnQsIFN0cmluZyBhdXRob3JpdHkpIHsKKyAgICBwdWJsaWMgU3luY1N0YXR1c0luZm8gZ2V0U3luY1N0YXR1cyhBY2NvdW50IGFjY291bnQsIFN0cmluZyBhdXRob3JpdHksIENvbXBvbmVudE5hbWUgY25hbWUpIHsKICAgICAgICAgaWYgKFRleHRVdGlscy5pc0VtcHR5KGF1dGhvcml0eSkpIHsKICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkF1dGhvcml0eSBtdXN0IG5vdCBiZSBlbXB0eSIpOwogICAgICAgICB9CkBAIC02NzQsMzQgKzc3OCw1MiBAQAogICAgICAgICAgICAgICAgICJubyBwZXJtaXNzaW9uIHRvIHJlYWQgdGhlIHN5bmMgc3RhdHMiKTsKIAogICAgICAgICBpbnQgdXNlcklkID0gVXNlckhhbmRsZS5nZXRDYWxsaW5nVXNlcklkKCk7CisgICAgICAgIGludCBjYWxsZXJVaWQgPSBCaW5kZXIuZ2V0Q2FsbGluZ1VpZCgpOwogICAgICAgICBsb25nIGlkZW50aXR5VG9rZW4gPSBjbGVhckNhbGxpbmdJZGVudGl0eSgpOwogICAgICAgICB0cnkgewogICAgICAgICAgICAgU3luY01hbmFnZXIgc3luY01hbmFnZXIgPSBnZXRTeW5jTWFuYWdlcigpOwotICAgICAgICAgICAgaWYgKHN5bmNNYW5hZ2VyICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gc3luY01hbmFnZXIuZ2V0U3luY1N0b3JhZ2VFbmdpbmUoKS5nZXRTdGF0dXNCeUFjY291bnRBbmRBdXRob3JpdHkoCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50LCB1c2VySWQsIGF1dGhvcml0eSk7CisgICAgICAgICAgICBpZiAoc3luY01hbmFnZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQgaW5mbzsKKyAgICAgICAgICAgIGlmIChjbmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaW5mbyA9IG5ldyBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludChhY2NvdW50LCBhdXRob3JpdHksIHVzZXJJZCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFjY291bnQgPT0gbnVsbCAmJiBhdXRob3JpdHkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHZlcmlmeVNpZ25hdHVyZUZvclBhY2thZ2UoY2FsbGVyVWlkLCBjbmFtZS5nZXRQYWNrYWdlTmFtZSgpLCAiZ2V0U3luY1N0YXR1cyIpOworICAgICAgICAgICAgICAgIGluZm8gPSBuZXcgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQoY25hbWUsIHVzZXJJZCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk11c3QgY2FsbCBzeW5jIHN0YXR1cyB3aXRoIHZhbGlkIGF1dGhvcml0eSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHN5bmNNYW5hZ2VyLmdldFN5bmNTdG9yYWdlRW5naW5lKCkuZ2V0U3RhdHVzQnlBdXRob3JpdHkoaW5mbyk7CiAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICByZXN0b3JlQ2FsbGluZ0lkZW50aXR5KGlkZW50aXR5VG9rZW4pOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBudWxsOwogICAgIH0KIAotICAgIHB1YmxpYyBib29sZWFuIGlzU3luY1BlbmRpbmcoQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgYXV0aG9yaXR5KSB7CisgICAgcHVibGljIGJvb2xlYW4gaXNTeW5jUGVuZGluZyhBY2NvdW50IGFjY291bnQsIFN0cmluZyBhdXRob3JpdHksIENvbXBvbmVudE5hbWUgY25hbWUpIHsKICAgICAgICAgbUNvbnRleHQuZW5mb3JjZUNhbGxpbmdPclNlbGZQZXJtaXNzaW9uKE1hbmlmZXN0LnBlcm1pc3Npb24uUkVBRF9TWU5DX1NUQVRTLAogICAgICAgICAgICAgICAgICJubyBwZXJtaXNzaW9uIHRvIHJlYWQgdGhlIHN5bmMgc3RhdHMiKTsKIAorICAgICAgICBpbnQgY2FsbGVyVWlkID0gQmluZGVyLmdldENhbGxpbmdVaWQoKTsKICAgICAgICAgaW50IHVzZXJJZCA9IFVzZXJIYW5kbGUuZ2V0Q2FsbGluZ1VzZXJJZCgpOwogICAgICAgICBsb25nIGlkZW50aXR5VG9rZW4gPSBjbGVhckNhbGxpbmdJZGVudGl0eSgpOworICAgICAgICBTeW5jTWFuYWdlciBzeW5jTWFuYWdlciA9IGdldFN5bmNNYW5hZ2VyKCk7CisgICAgICAgIGlmIChzeW5jTWFuYWdlciA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIFN5bmNNYW5hZ2VyIHN5bmNNYW5hZ2VyID0gZ2V0U3luY01hbmFnZXIoKTsKLSAgICAgICAgICAgIGlmIChzeW5jTWFuYWdlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHN5bmNNYW5hZ2VyLmdldFN5bmNTdG9yYWdlRW5naW5lKCkuaXNTeW5jUGVuZGluZyhhY2NvdW50LCB1c2VySWQsIGF1dGhvcml0eSk7CisgICAgICAgICAgICBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludCBpbmZvOworICAgICAgICAgICAgaWYgKGNuYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpbmZvID0gbmV3IFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50KGFjY291bnQsIGF1dGhvcml0eSwgdXNlcklkKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYWNjb3VudCA9PSBudWxsICYmIGF1dGhvcml0eSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdmVyaWZ5U2lnbmF0dXJlRm9yUGFja2FnZShjYWxsZXJVaWQsIGNuYW1lLmdldFBhY2thZ2VOYW1lKCksICJpc1N5bmNQZW5kaW5nIik7CisgICAgICAgICAgICAgICAgaW5mbyA9IG5ldyBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludChjbmFtZSwgdXNlcklkKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBhdXRob3JpdHkgc3BlY2lmaWVkIik7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gc3luY01hbmFnZXIuZ2V0U3luY1N0b3JhZ2VFbmdpbmUoKS5pc1N5bmNQZW5kaW5nKGluZm8pOwogICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgcmVzdG9yZUNhbGxpbmdJZGVudGl0eShpZGVudGl0eVRva2VuKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgcHVibGljIHZvaWQgYWRkU3RhdHVzQ2hhbmdlTGlzdGVuZXIoaW50IG1hc2ssIElTeW5jU3RhdHVzT2JzZXJ2ZXIgY2FsbGJhY2spIHsKQEAgLTczNSw2ICs4NTcsMzAgQEAKICAgICB9CiAKICAgICAvKioKKyAgICAgKiBIZWxwZXIgdG8gdmVyaWZ5IHRoYXQgdGhlIHByb3ZpZGVkIHBhY2thZ2UgbmFtZSBzaGFyZXMgdGhlIHNhbWUgY2VydCBhcyB0aGUgY2FsbGVyLgorICAgICAqIEBwYXJhbSBjYWxsZXJVaWQgdWlkIG9mIHRoZSBjYWxsaW5nIHByb2Nlc3MuCisgICAgICogQHBhcmFtIHBhY2thZ2VOYW1lIHBhY2thZ2UgdG8gdmVyaWZ5IGFnYWluc3QgcGFja2FnZSBvZiBjYWxsaW5nIGFwcGxpY2F0aW9uLgorICAgICAqIEBwYXJhbSB0YWcgYSB0YWcgdG8gdXNlIHdoZW4gdGhyb3dpbmcgYW4gZXhjZXB0aW9uIGlmIHRoZSBzaWduYXR1cmVzIGRvbid0CisgICAgICogbWF0Y2guIENhbm5vdCBiZSBudWxsLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY2FsbGluZyBhcHBsaWNhdGlvbiBhbmQgdGhlIHByb3ZpZGVkIHBhY2thZ2UgYXJlIHNpZ25lZCB3aXRoIHRoZSBzYW1lCisgICAgICogY2VydGlmaWNhdGUuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIHZlcmlmeVNpZ25hdHVyZUZvclBhY2thZ2UoaW50IGNhbGxlclVpZCwgU3RyaW5nIHBhY2thZ2VOYW1lLCBTdHJpbmcgdGFnKSB7CisgICAgICAgIFBhY2thZ2VNYW5hZ2VyIHBtID0gbUNvbnRleHQuZ2V0UGFja2FnZU1hbmFnZXIoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGludCBzZXJ2aWNlVWlkID0gcG0uZ2V0QXBwbGljYXRpb25JbmZvKHBhY2thZ2VOYW1lLCAwKS51aWQ7CisgICAgICAgICAgICBpZiAocG0uY2hlY2tTaWduYXR1cmVzKGNhbGxlclVpZCwgc2VydmljZVVpZCkgPT0gUGFja2FnZU1hbmFnZXIuU0lHTkFUVVJFX01BVENIKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTZWN1cml0eUV4Y2VwdGlvbih0YWcgKyAiOiBDYWxsZXIgY2VydGlmaWNhdGUgZG9lcyBub3QgbWF0Y2ggdGhhdCBmb3IgLSAiCisgICAgICAgICAgICAgICAgICAgICAgICArIHBhY2thZ2VOYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoUGFja2FnZU1hbmFnZXIuTmFtZU5vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24odGFnICsgIjogIiArIHBhY2thZ2VOYW1lICsgIiBwYWNrYWdlIG5vdCBmb3VuZC4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgogICAgICAqIEhpZGUgdGhpcyBjbGFzcyBzaW5jZSBpdCBpcyBub3QgcGFydCBvZiBhcGksCiAgICAgICogYnV0IGN1cnJlbnQgdW5pdHRlc3QgZnJhbWV3b3JrIHJlcXVpcmVzIGl0IHRvIGJlIHB1YmxpYwogICAgICAqIEBoaWRlCmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9jb250ZW50L1N5bmNNYW5hZ2VyLmphdmEgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9jb250ZW50L1N5bmNNYW5hZ2VyLmphdmEKaW5kZXggNzFkOGQ5OS4uMThiZjExNSAxMDA2NDQKLS0tIGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvY29udGVudC9TeW5jTWFuYWdlci5qYXZhCisrKyBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2NvbnRlbnQvU3luY01hbmFnZXIuamF2YQpAQCAtMzEsNiArMzEsNyBAQAogaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5JU3luY0FkYXB0ZXI7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LklTeW5jQ29udGV4dDsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQuSVN5bmNTZXJ2aWNlQWRhcHRlcjsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuSVN5bmNTdGF0dXNPYnNlcnZlcjsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuSW50ZW50OwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5JbnRlbnRGaWx0ZXI7CkBAIC04OCw3ICs4OSw2IEBACiBpbXBvcnQgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CiBpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKIGltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOwotaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CiBpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CiBpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOwogaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOwpAQCAtOTksNyArOTksNiBAQAogaW1wb3J0IGphdmEudXRpbC5NYXA7CiBpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKIGltcG9ydCBqYXZhLnV0aWwuU2V0OwotaW1wb3J0IGphdmEudXRpbC5jb25jdXJyZW50LkNvdW50RG93bkxhdGNoOwogCiAvKioKICAqIEBoaWRlCkBAIC0yMDIsOCArMjAxLDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsICJJbnRlcm5hbCBzdG9yYWdlIGlzIGxvdy4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIG1TdG9yYWdlSXNMb3cgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsQWN0aXZlU3luYyhudWxsIC8qIGFueSBhY2NvdW50ICovLCBVc2VySGFuZGxlLlVTRVJfQUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsIC8qIGFueSBhdXRob3JpdHkgKi8pOworICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsQWN0aXZlU3luYygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQuVVNFUl9BTExfUFJPVklERVJfQUxMX0FDQ09VTlRTX0FMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAvKiBhbnkgc3luYyAqLyk7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoSW50ZW50LkFDVElPTl9ERVZJQ0VfU1RPUkFHRV9PSy5lcXVhbHMoYWN0aW9uKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAiSW50ZXJuYWwgc3RvcmFnZSBpcyBvay4iKTsKQEAgLTIyMSwxOSArMjIxLDYgQEAKICAgICAgICAgfQogICAgIH07CiAKLSAgICBwcml2YXRlIEJyb2FkY2FzdFJlY2VpdmVyIG1CYWNrZ3JvdW5kRGF0YVNldHRpbmdDaGFuZ2VkID0gbmV3IEJyb2FkY2FzdFJlY2VpdmVyKCkgewotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgb25SZWNlaXZlKENvbnRleHQgY29udGV4dCwgSW50ZW50IGludGVudCkgewotICAgICAgICAgICAgaWYgKGdldENvbm5lY3Rpdml0eU1hbmFnZXIoKS5nZXRCYWNrZ3JvdW5kRGF0YVNldHRpbmcoKSkgewotICAgICAgICAgICAgICAgIHNjaGVkdWxlU3luYyhudWxsIC8qIGFjY291bnQgKi8sIFVzZXJIYW5kbGUuVVNFUl9BTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICBTeW5jT3BlcmF0aW9uLlJFQVNPTl9CQUNLR1JPVU5EX0RBVEFfU0VUVElOR1NfQ0hBTkdFRCwKLSAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgLyogYXV0aG9yaXR5ICovLAotICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJ1bmRsZSgpLCAwIC8qIGRlbGF5ICovLCAwIC8qIGRlbGF5ICovLAotICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogb25seVRob3NlV2l0aFVua25vd25TeW5jYWJsZVN0YXRlICovKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH07Ci0KICAgICBwcml2YXRlIEJyb2FkY2FzdFJlY2VpdmVyIG1BY2NvdW50c1VwZGF0ZWRSZWNlaXZlciA9IG5ldyBCcm9hZGNhc3RSZWNlaXZlcigpIHsKICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgIHB1YmxpYyB2b2lkIG9uUmVjZWl2ZShDb250ZXh0IGNvbnRleHQsIEludGVudCBpbnRlbnQpIHsKQEAgLTI3OCwxNiArMjY1LDE2IEBACiAgICAgICAgICAgICBkb0RhdGFiYXNlQ2xlYW51cCgpOwogICAgICAgICB9CiAKKyAgICAgICAgQWNjb3VudEFuZFVzZXJbXSBhY2NvdW50cyA9IG1SdW5uaW5nQWNjb3VudHM7CiAgICAgICAgIGZvciAoQWN0aXZlU3luY0NvbnRleHQgY3VycmVudFN5bmNDb250ZXh0IDogbUFjdGl2ZVN5bmNDb250ZXh0cykgewotICAgICAgICAgICAgaWYgKCFjb250YWluc0FjY291bnRBbmRVc2VyKG1SdW5uaW5nQWNjb3VudHMsCi0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTeW5jQ29udGV4dC5tU3luY09wZXJhdGlvbi5hY2NvdW50LAotICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3luY0NvbnRleHQubVN5bmNPcGVyYXRpb24udXNlcklkKSkgeworICAgICAgICAgICAgaWYgKCFjb250YWluc0FjY291bnRBbmRVc2VyKGFjY291bnRzLAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3luY0NvbnRleHQubVN5bmNPcGVyYXRpb24udGFyZ2V0LmFjY291bnQsCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTeW5jQ29udGV4dC5tU3luY09wZXJhdGlvbi50YXJnZXQudXNlcklkKSkgewogICAgICAgICAgICAgICAgIExvZy5kKFRBRywgImNhbmNlbGluZyBzeW5jIHNpbmNlIHRoZSBhY2NvdW50IGlzIG5vIGxvbmdlciBydW5uaW5nIik7CiAgICAgICAgICAgICAgICAgc2VuZFN5bmNGaW5pc2hlZE9yQ2FuY2VsZWRNZXNzYWdlKGN1cnJlbnRTeW5jQ29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgLyogbm8gcmVzdWx0IHNpbmNlIHRoaXMgaXMgYSBjYW5jZWwgKi8pOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0KICAgICAgICAgLy8gd2UgbXVzdCBkbyB0aGlzIHNpbmNlIHdlIGRvbid0IGJvdGhlciBzY2hlZHVsaW5nIGFsYXJtcyB3aGVuCiAgICAgICAgIC8vIHRoZSBhY2NvdW50cyBhcmUgbm90IHNldCB5ZXQKICAgICAgICAgc2VuZENoZWNrQWxhcm1zTWVzc2FnZSgpOwpAQCAtMzE2LDkgKzMwMyw3IEBACiAgICAgICAgICAgICAgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUcsIExvZy5WRVJCT1NFKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAiUmVjb25uZWN0aW9uIGRldGVjdGVkOiBjbGVhcmluZyBhbGwgYmFja29mZnMiKTsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQobVN5bmNRdWV1ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbVN5bmNTdG9yYWdlRW5naW5lLmNsZWFyQWxsQmFja29mZnNMb2NrZWQobVN5bmNRdWV1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbVN5bmNTdG9yYWdlRW5naW5lLmNsZWFyQWxsQmFja29mZnMobVN5bmNRdWV1ZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHNlbmRDaGVja0FsYXJtc01lc3NhZ2UoKTsKICAgICAgICAgICAgIH0KQEAgLTM4NCwxMiArMzY5LDE3IEBACiAgICAgICAgIG1TeW5jU3RvcmFnZUVuZ2luZSA9IFN5bmNTdG9yYWdlRW5naW5lLmdldFNpbmdsZXRvbigpOwogICAgICAgICBtU3luY1N0b3JhZ2VFbmdpbmUuc2V0T25TeW5jUmVxdWVzdExpc3RlbmVyKG5ldyBPblN5bmNSZXF1ZXN0TGlzdGVuZXIoKSB7CiAgICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uU3luY1JlcXVlc3QoQWNjb3VudCBhY2NvdW50LCBpbnQgdXNlcklkLCBpbnQgcmVhc29uLCBTdHJpbmcgYXV0aG9yaXR5LAotICAgICAgICAgICAgICAgICAgICBCdW5kbGUgZXh0cmFzKSB7Ci0gICAgICAgICAgICAgICAgc2NoZWR1bGVTeW5jKGFjY291bnQsIHVzZXJJZCwgcmVhc29uLCBhdXRob3JpdHksIGV4dHJhcywKLSAgICAgICAgICAgICAgICAgICAgMCAvKiBubyBkZWxheSAqLywKLSAgICAgICAgICAgICAgICAgICAgMCAvKiBubyBkZWxheSAqLywKLSAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworICAgICAgICAgICAgcHVibGljIHZvaWQgb25TeW5jUmVxdWVzdChTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludCBpbmZvLCBpbnQgcmVhc29uLCBCdW5kbGUgZXh0cmFzKSB7CisgICAgICAgICAgICAgICAgaWYgKGluZm8udGFyZ2V0X3Byb3ZpZGVyKSB7CisgICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlU3luYyhpbmZvLmFjY291bnQsIGluZm8udXNlcklkLCByZWFzb24sIGluZm8ucHJvdmlkZXIsIGV4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogbm8gZmxleCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogcnVuIGltbWVkaWF0ZWx5ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5mby50YXJnZXRfc2VydmljZSkgeworICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZVN5bmMoaW5mby5zZXJ2aWNlLCBpbmZvLnVzZXJJZCwgcmVhc29uLCBleHRyYXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAvKiBubyBmbGV4ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogcnVuIGltbWVkaWF0ZWx5ICovKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwogCkBAIC00MjEsOSArNDExLDYgQEAKICAgICAgICAgICAgIGNvbnRleHQucmVnaXN0ZXJSZWNlaXZlcihtQm9vdENvbXBsZXRlZFJlY2VpdmVyLCBpbnRlbnRGaWx0ZXIpOwogICAgICAgICB9CiAKLSAgICAgICAgaW50ZW50RmlsdGVyID0gbmV3IEludGVudEZpbHRlcihDb25uZWN0aXZpdHlNYW5hZ2VyLkFDVElPTl9CQUNLR1JPVU5EX0RBVEFfU0VUVElOR19DSEFOR0VEKTsKLSAgICAgICAgY29udGV4dC5yZWdpc3RlclJlY2VpdmVyKG1CYWNrZ3JvdW5kRGF0YVNldHRpbmdDaGFuZ2VkLCBpbnRlbnRGaWx0ZXIpOwotCiAgICAgICAgIGludGVudEZpbHRlciA9IG5ldyBJbnRlbnRGaWx0ZXIoSW50ZW50LkFDVElPTl9ERVZJQ0VfU1RPUkFHRV9MT1cpOwogICAgICAgICBpbnRlbnRGaWx0ZXIuYWRkQWN0aW9uKEludGVudC5BQ1RJT05fREVWSUNFX1NUT1JBR0VfT0spOwogICAgICAgICBjb250ZXh0LnJlZ2lzdGVyUmVjZWl2ZXIobVN0b3JhZ2VJbnRlbnRSZWNlaXZlciwgaW50ZW50RmlsdGVyKTsKQEAgLTUzOCwxMSArNTI1LDc4IEBACiAKICAgICBwcml2YXRlIHZvaWQgZW5zdXJlQWxhcm1TZXJ2aWNlKCkgewogICAgICAgICBpZiAobUFsYXJtU2VydmljZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICBtQWxhcm1TZXJ2aWNlID0gKEFsYXJtTWFuYWdlciltQ29udGV4dC5nZXRTeXN0ZW1TZXJ2aWNlKENvbnRleHQuQUxBUk1fU0VSVklDRSk7CisgICAgICAgICAgICBtQWxhcm1TZXJ2aWNlID0gKEFsYXJtTWFuYWdlcikgbUNvbnRleHQuZ2V0U3lzdGVtU2VydmljZShDb250ZXh0LkFMQVJNX1NFUlZJQ0UpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgLyoqCisgICAgICogSW5pdGlhdGUgYSBzeW5jIHVzaW5nIHRoZSBuZXcgYW5vbnltb3VzIHNlcnZpY2UgQVBJLgorICAgICAqIEBwYXJhbSBjbmFtZSBTeW5jU2VydmljZSBjb21wb25lbnQgYm91bmQgdG8gaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgc3luYy4gCisgICAgICogQHBhcmFtIHVzZXJJZCB0aGUgaWQgb2YgdGhlIHVzZXIgd2hvc2UgYWNjb3VudHMgYXJlIHRvIGJlIHN5bmNlZC4gSWYgdXNlcklkIGlzIFVTRVJfQUxMLAorICAgICAqICAgICAgICAgIHRoZW4gYWxsIHVzZXJzJyBhY2NvdW50cyBhcmUgY29uc2lkZXJlZC4KKyAgICAgKiBAcGFyYW0gdWlkIExpbnV4IHVpZCBvZiB0aGUgYXBwbGljYXRpb24gdGhhdCBpcyBwZXJmb3JtaW5nIHRoZSBzeW5jLiAKKyAgICAgKiBAcGFyYW0gZXh0cmFzIGEgTWFwIG9mIFN5bmNBZGFwdGVyLXNwZWNpZmljIGluZm9ybWF0aW9uIHRvIGNvbnRyb2wKKyAgICAgKiAgICAgICAgICBzeW5jcyBvZiBhIHNwZWNpZmljIHByb3ZpZGVyLiBDYW5ub3QgYmUgbnVsbC4KKyAgICAgKiBAcGFyYW0gYmVmb3JlUnVuVGltZU1pbGxpcyBtaWxsaXNlY29uZHMgYmVmb3JlIDxjb2RlPnJ1bnRpbWVNaWxsaXM8L2NvZGU+IHRoYXQgdGhpcyBzeW5jIG1heQorICAgICAqIGJlIHJ1bi4KKyAgICAgKiBAcGFyYW0gcnVudGltZU1pbGxpcyBtaWxsaXNlY29uZHMgZnJvbSBub3cgYnkgd2hpY2ggdGhpcyBzeW5jIG11c3QgYmUgcnVuLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNjaGVkdWxlU3luYyhDb21wb25lbnROYW1lIGNuYW1lLCBpbnQgdXNlcklkLCBpbnQgdWlkLCBCdW5kbGUgZXh0cmFzLAorICAgICAgICAgICAgbG9uZyBiZWZvcmVSdW5UaW1lTWlsbGlzLCBsb25nIHJ1bnRpbWVNaWxsaXMpIHsKKyAgICAgICAgYm9vbGVhbiBpc0xvZ2dhYmxlID0gTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSk7CisgICAgICAgIGlmIChpc0xvZ2dhYmxlKSB7CisgICAgICAgICAgICBMb2cuZChUQUcsICJvbmUgb2ZmIHN5bmMgZm9yOiAiICsgY25hbWUgKyAiICIgKyBleHRyYXMudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICBCb29sZWFuIGV4cGVkaXRlZCA9IGV4dHJhcy5nZXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19FWFBFRElURUQsIGZhbHNlKTsKKyAgICAgICAgaWYgKGV4cGVkaXRlZCkgeworICAgICAgICAgICAgcnVudGltZU1pbGxpcyA9IC0xOyAvLyB0aGlzIG1lYW5zIHNjaGVkdWxlIGF0IHRoZSBmcm9udCBvZiB0aGUgcXVldWUKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGJvb2xlYW4gaWdub3JlU2V0dGluZ3MgPQorICAgICAgICAgICAgICAgIGV4dHJhcy5nZXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19JR05PUkVfU0VUVElOR1MsIGZhbHNlKTsKKyAgICAgICAgaW50IHNvdXJjZSA9IFN5bmNTdG9yYWdlRW5naW5lLlNPVVJDRV9TRVJWSUNFOworICAgICAgICBib29sZWFuIGlzRW5hYmxlZCA9IG1TeW5jU3RvcmFnZUVuZ2luZS5nZXRJc1RhcmdldFNlcnZpY2VBY3RpdmUoY25hbWUsIHVzZXJJZCk7CisgICAgICAgIC8vIE9ubHkgc2NoZWR1bGUgdGhpcyBzeW5jIGlmCisgICAgICAgIC8vICAgLSB3ZSd2ZSBleHBsaWNpdGx5IGJlZW4gdG9sZCB0byBpZ25vcmUgc2V0dGluZ3MuCisgICAgICAgIC8vICAgLSBnbG9iYWwgc3luYyBpcyBlbmFibGVkIGZvciB0aGlzIHVzZXIuCisgICAgICAgIGJvb2xlYW4gc3luY0FsbG93ZWQgPQorICAgICAgICAgICAgICAgIGlnbm9yZVNldHRpbmdzCisgICAgICAgICAgICAgICAgfHwgbVN5bmNTdG9yYWdlRW5naW5lLmdldE1hc3RlclN5bmNBdXRvbWF0aWNhbGx5KHVzZXJJZCk7CisgICAgICAgIGlmICghc3luY0FsbG93ZWQpIHsKKyAgICAgICAgICAgIGlmIChpc0xvZ2dhYmxlKSB7CisgICAgICAgICAgICAgICAgTG9nLmQoVEFHLCAic2NoZWR1bGVTeW5jOiBzeW5jIG9mICIgKyBjbmFtZSArICIgbm90IGFsbG93ZWQsIGRyb3BwaW5nIHJlcXVlc3QuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpc0VuYWJsZWQpIHsKKyAgICAgICAgICAgIGlmIChpc0xvZ2dhYmxlKSB7CisgICAgICAgICAgICAgICAgTG9nLmQoVEFHLCAic2NoZWR1bGVTeW5jOiAiICsgY25hbWUgKyAiIGlzIG5vdCBlbmFibGVkLCBkcm9wcGluZyByZXF1ZXN0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQgaW5mbyA9IG5ldyBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludChjbmFtZSwgdXNlcklkKTsKKyAgICAgICAgUGFpcjxMb25nLCBMb25nPiBiYWNrb2ZmID0gbVN5bmNTdG9yYWdlRW5naW5lLmdldEJhY2tvZmYoaW5mbyk7CisgICAgICAgIGxvbmcgZGVsYXlVbnRpbCA9IG1TeW5jU3RvcmFnZUVuZ2luZS5nZXREZWxheVVudGlsVGltZShpbmZvKTsKKyAgICAgICAgZmluYWwgbG9uZyBiYWNrb2ZmVGltZSA9IGJhY2tvZmYgIT0gbnVsbCA/IGJhY2tvZmYuZmlyc3QgOiAwOworICAgICAgICBpZiAoaXNMb2dnYWJsZSkgeworICAgICAgICAgICAgICAgIExvZy52KFRBRywgInNjaGVkdWxlIFN5bmM6IgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBkZWxheSB1bnRpbCAiICsgZGVsYXlVbnRpbAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBydW4gYnkgIiArIHJ1bnRpbWVNaWxsaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgZmxleCAiICsgYmVmb3JlUnVuVGltZU1pbGxpcworICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBzb3VyY2UgIiArIHNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBzeW5jIHNlcnZpY2UgIiArIGNuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICArICIsIGV4dHJhcyAiICsgZXh0cmFzKTsKKyAgICAgICAgfQorICAgICAgICBzY2hlZHVsZVN5bmNPcGVyYXRpb24oCisgICAgICAgICAgICAgICAgbmV3IFN5bmNPcGVyYXRpb24oY25hbWUsIHVzZXJJZCwgdWlkLCBzb3VyY2UsIGV4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bnRpbWVNaWxsaXMgLyogcnVudGltZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZVJ1blRpbWVNaWxsaXMgLyogZmxleHRpbWUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICBiYWNrb2ZmVGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5VW50aWwpKTsKKyAgICB9CisKKyAgICAvKioKICAgICAgKiBJbml0aWF0ZSBhIHN5bmMuIFRoaXMgY2FuIHN0YXJ0IGEgc3luYyBmb3IgYWxsIHByb3ZpZGVycwogICAgICAqIChwYXNzIG51bGwgdG8gdXJsLCBzZXQgb25seVRpY2tsYWJsZSB0byBmYWxzZSksIG9ubHkgdGhvc2UKICAgICAgKiBwcm92aWRlcnMgdGhhdCBhcmUgbWFya2VkIGFzIHRpY2tsYWJsZSAocGFzcyBudWxsIHRvIHVybCwKQEAgLTU4OCw5ICs2NDIsNiBAQAogICAgICAgICAgICAgbG9uZyBydW50aW1lTWlsbGlzLCBib29sZWFuIG9ubHlUaG9zZVdpdGhVbmtvd25TeW5jYWJsZVN0YXRlKSB7CiAgICAgICAgIGJvb2xlYW4gaXNMb2dnYWJsZSA9IExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpOwogCi0gICAgICAgIGZpbmFsIGJvb2xlYW4gYmFja2dyb3VuZERhdGFVc2FnZUFsbG93ZWQgPSAhbUJvb3RDb21wbGV0ZWQgfHwKLSAgICAgICAgICAgICAgICBnZXRDb25uZWN0aXZpdHlNYW5hZ2VyKCkuZ2V0QmFja2dyb3VuZERhdGFTZXR0aW5nKCk7Ci0KICAgICAgICAgaWYgKGV4dHJhcyA9PSBudWxsKSB7CiAgICAgICAgICAgICBleHRyYXMgPSBuZXcgQnVuZGxlKCk7CiAgICAgICAgIH0KQEAgLTYwNyw4ICs2NTgsNiBAQAogICAgICAgICBpZiAocmVxdWVzdGVkQWNjb3VudCAhPSBudWxsICYmIHVzZXJJZCAhPSBVc2VySGFuZGxlLlVTRVJfQUxMKSB7CiAgICAgICAgICAgICBhY2NvdW50cyA9IG5ldyBBY2NvdW50QW5kVXNlcltdIHsgbmV3IEFjY291bnRBbmRVc2VyKHJlcXVlc3RlZEFjY291bnQsIHVzZXJJZCkgfTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIGlmIHRoZSBhY2NvdW50cyBhcmVuJ3QgY29uZmlndXJlZCB5ZXQgdGhlbiB3ZSBjYW4ndCBzdXBwb3J0IGFuIGFjY291bnQtbGVzcwotICAgICAgICAgICAgLy8gc3luYyByZXF1ZXN0CiAgICAgICAgICAgICBhY2NvdW50cyA9IG1SdW5uaW5nQWNjb3VudHM7CiAgICAgICAgICAgICBpZiAoYWNjb3VudHMubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgICAgICBpZiAoaXNMb2dnYWJsZSkgewpAQCAtNjgzLDEyICs3MzIsMTAgQEAKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgLy8gYWx3YXlzIGFsbG93IGlmIHRoZSBpc1N5bmNhYmxlIHN0YXRlIGlzIHVua25vd24KICAgICAgICAgICAgICAgICBib29sZWFuIHN5bmNBbGxvd2VkID0KLSAgICAgICAgICAgICAgICAgICAgICAgIChpc1N5bmNhYmxlIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIChpc1N5bmNhYmxlIDwgMCkgLy8gYWx3YXlzIGFsbG93IGlmIHRoZSBpc1N5bmNhYmxlIHN0YXRlIGlzIHVua25vd24KICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGlnbm9yZVNldHRpbmdzCi0gICAgICAgICAgICAgICAgICAgICAgICB8fCAoYmFja2dyb3VuZERhdGFVc2FnZUFsbG93ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbVN5bmNTdG9yYWdlRW5naW5lLmdldE1hc3RlclN5bmNBdXRvbWF0aWNhbGx5KGFjY291bnQudXNlcklkKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgKG1TeW5jU3RvcmFnZUVuZ2luZS5nZXRNYXN0ZXJTeW5jQXV0b21hdGljYWxseShhY2NvdW50LnVzZXJJZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbVN5bmNTdG9yYWdlRW5naW5lLmdldFN5bmNBdXRvbWF0aWNhbGx5KGFjY291bnQuYWNjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50LnVzZXJJZCwgYXV0aG9yaXR5KSk7CiAgICAgICAgICAgICAgICAgaWYgKCFzeW5jQWxsb3dlZCkgewpAQCAtNjk4LDExICs3NDUsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBQYWlyPExvbmcsIExvbmc+IGJhY2tvZmYgPSBtU3luY1N0b3JhZ2VFbmdpbmUKLSAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRCYWNrb2ZmKGFjY291bnQuYWNjb3VudCwgYWNjb3VudC51c2VySWQsIGF1dGhvcml0eSk7Ci0gICAgICAgICAgICAgICAgbG9uZyBkZWxheVVudGlsID0gbVN5bmNTdG9yYWdlRW5naW5lLmdldERlbGF5VW50aWxUaW1lKGFjY291bnQuYWNjb3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQudXNlcklkLCBhdXRob3JpdHkpOworICAgICAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50IGluZm8gPQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50LmFjY291bnQsIGF1dGhvcml0eSwgYWNjb3VudC51c2VySWQpOworICAgICAgICAgICAgICAgIFBhaXI8TG9uZywgTG9uZz4gYmFja29mZiA9IG1TeW5jU3RvcmFnZUVuZ2luZS5nZXRCYWNrb2ZmKGluZm8pOworICAgICAgICAgICAgICAgIGxvbmcgZGVsYXlVbnRpbCA9CisgICAgICAgICAgICAgICAgICAgICAgICBtU3luY1N0b3JhZ2VFbmdpbmUuZ2V0RGVsYXlVbnRpbFRpbWUoaW5mbyk7CiAgICAgICAgICAgICAgICAgZmluYWwgbG9uZyBiYWNrb2ZmVGltZSA9IGJhY2tvZmYgIT0gbnVsbCA/IGJhY2tvZmYuZmlyc3QgOiAwOwogICAgICAgICAgICAgICAgIGlmIChpc1N5bmNhYmxlIDwgMCkgewogICAgICAgICAgICAgICAgICAgICAvLyBJbml0aWFsaXNhdGlvbiBzeW5jLgpAQCAtNzEyLDYgKzc2MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsICJzY2hlZHVsZSBpbml0aWFsaXNhdGlvbiBTeW5jOiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBkZWxheSB1bnRpbCAiICsgZGVsYXlVbnRpbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIHJ1biBieSAiICsgMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGZsZXggIiArIDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBzb3VyY2UgIiArIHNvdXJjZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGFjY291bnQgIiArIGFjY291bnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBhdXRob3JpdHkgIiArIGF1dGhvcml0eQpAQCAtNzg3LDEzICs4MzYsMTIgQEAKICAgICAgICAgbVN5bmNIYW5kbGVyLnNlbmRNZXNzYWdlKG1zZyk7CiAgICAgfQogCi0gICAgcHJpdmF0ZSB2b2lkIHNlbmRDYW5jZWxTeW5jc01lc3NhZ2UoZmluYWwgQWNjb3VudCBhY2NvdW50LCBmaW5hbCBpbnQgdXNlcklkLAotICAgICAgICAgICAgZmluYWwgU3RyaW5nIGF1dGhvcml0eSkgeworICAgIHByaXZhdGUgdm9pZCBzZW5kQ2FuY2VsU3luY3NNZXNzYWdlKGZpbmFsIFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50IGluZm8sIEJ1bmRsZSBleHRyYXMpIHsKICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSBMb2cudihUQUcsICJzZW5kaW5nIE1FU1NBR0VfQ0FOQ0VMIik7CiAgICAgICAgIE1lc3NhZ2UgbXNnID0gbVN5bmNIYW5kbGVyLm9idGFpbk1lc3NhZ2UoKTsKICAgICAgICAgbXNnLndoYXQgPSBTeW5jSGFuZGxlci5NRVNTQUdFX0NBTkNFTDsKLSAgICAgICAgbXNnLm9iaiA9IFBhaXIuY3JlYXRlKGFjY291bnQsIGF1dGhvcml0eSk7Ci0gICAgICAgIG1zZy5hcmcxID0gdXNlcklkOworICAgICAgICBtc2cuc2V0RGF0YShleHRyYXMpOworICAgICAgICBtc2cub2JqID0gaW5mbzsKICAgICAgICAgbVN5bmNIYW5kbGVyLnNlbmRNZXNzYWdlKG1zZyk7CiAgICAgfQogCkBAIC04MTYsMTAgKzg2NCwxMSBAQAogICAgIH0KIAogICAgIHByaXZhdGUgdm9pZCBjbGVhckJhY2tvZmZTZXR0aW5nKFN5bmNPcGVyYXRpb24gb3ApIHsKLSAgICAgICAgbVN5bmNTdG9yYWdlRW5naW5lLnNldEJhY2tvZmYob3AuYWNjb3VudCwgb3AudXNlcklkLCBvcC5hdXRob3JpdHksCi0gICAgICAgICAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUuTk9UX0lOX0JBQ0tPRkZfTU9ERSwgU3luY1N0b3JhZ2VFbmdpbmUuTk9UX0lOX0JBQ0tPRkZfTU9ERSk7CisgICAgICAgIG1TeW5jU3RvcmFnZUVuZ2luZS5zZXRCYWNrb2ZmKG9wLnRhcmdldCwKKyAgICAgICAgICAgICAgICBTeW5jU3RvcmFnZUVuZ2luZS5OT1RfSU5fQkFDS09GRl9NT0RFLAorICAgICAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLk5PVF9JTl9CQUNLT0ZGX01PREUpOwogICAgICAgICBzeW5jaHJvbml6ZWQgKG1TeW5jUXVldWUpIHsKLSAgICAgICAgICAgIG1TeW5jUXVldWUub25CYWNrb2ZmQ2hhbmdlZChvcC5hY2NvdW50LCBvcC51c2VySWQsIG9wLmF1dGhvcml0eSwgMCk7CisgICAgICAgICAgICBtU3luY1F1ZXVlLm9uQmFja29mZkNoYW5nZWQob3AudGFyZ2V0LCAwKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtODI5LDcgKzg3OCw3IEBACiAgICAgICAgIGZpbmFsIGxvbmcgbm93ID0gU3lzdGVtQ2xvY2suZWxhcHNlZFJlYWx0aW1lKCk7CiAKICAgICAgICAgZmluYWwgUGFpcjxMb25nLCBMb25nPiBwcmV2aW91c1NldHRpbmdzID0KLSAgICAgICAgICAgICAgICBtU3luY1N0b3JhZ2VFbmdpbmUuZ2V0QmFja29mZihvcC5hY2NvdW50LCBvcC51c2VySWQsIG9wLmF1dGhvcml0eSk7CisgICAgICAgICAgICAgICAgbVN5bmNTdG9yYWdlRW5naW5lLmdldEJhY2tvZmYob3AudGFyZ2V0KTsKICAgICAgICAgbG9uZyBuZXdEZWxheUluTXMgPSAtMTsKICAgICAgICAgaWYgKHByZXZpb3VzU2V0dGluZ3MgIT0gbnVsbCkgewogICAgICAgICAgICAgLy8gZG9uJ3QgaW5jcmVhc2UgYmFja29mZiBiZWZvcmUgY3VycmVudCBiYWNrb2ZmIGlzIGV4cGlyZWQuIFRoaXMgd2lsbCBoYXBwZW4gZm9yIG9wJ3MKQEAgLTg2MCwxNCArOTA5LDEyIEBACiAKICAgICAgICAgZmluYWwgbG9uZyBiYWNrb2ZmID0gbm93ICsgbmV3RGVsYXlJbk1zOwogCi0gICAgICAgIG1TeW5jU3RvcmFnZUVuZ2luZS5zZXRCYWNrb2ZmKG9wLmFjY291bnQsIG9wLnVzZXJJZCwgb3AuYXV0aG9yaXR5LAotICAgICAgICAgICAgICAgIGJhY2tvZmYsIG5ld0RlbGF5SW5Ncyk7Ci0KKyAgICAgICAgbVN5bmNTdG9yYWdlRW5naW5lLnNldEJhY2tvZmYob3AudGFyZ2V0LCBiYWNrb2ZmLCBuZXdEZWxheUluTXMpOwogICAgICAgICBvcC5iYWNrb2ZmID0gYmFja29mZjsKICAgICAgICAgb3AudXBkYXRlRWZmZWN0aXZlUnVuVGltZSgpOwogCiAgICAgICAgIHN5bmNocm9uaXplZCAobVN5bmNRdWV1ZSkgewotICAgICAgICAgICAgbVN5bmNRdWV1ZS5vbkJhY2tvZmZDaGFuZ2VkKG9wLmFjY291bnQsIG9wLnVzZXJJZCwgb3AuYXV0aG9yaXR5LCBiYWNrb2ZmKTsKKyAgICAgICAgICAgIG1TeW5jUXVldWUub25CYWNrb2ZmQ2hhbmdlZChvcC50YXJnZXQsIGJhY2tvZmYpOwogICAgICAgICB9CiAgICAgfQogCkBAIC04ODAsMjAgKzkyNywyMCBAQAogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbmV3RGVsYXlVbnRpbFRpbWUgPSAwOwogICAgICAgICB9Ci0gICAgICAgIG1TeW5jU3RvcmFnZUVuZ2luZQotICAgICAgICAgICAgICAgIC5zZXREZWxheVVudGlsVGltZShvcC5hY2NvdW50LCBvcC51c2VySWQsIG9wLmF1dGhvcml0eSwgbmV3RGVsYXlVbnRpbFRpbWUpOworICAgICAgICBtU3luY1N0b3JhZ2VFbmdpbmUuc2V0RGVsYXlVbnRpbFRpbWUob3AudGFyZ2V0LCBuZXdEZWxheVVudGlsVGltZSk7CiAgICAgICAgIHN5bmNocm9uaXplZCAobVN5bmNRdWV1ZSkgewotICAgICAgICAgICAgbVN5bmNRdWV1ZS5vbkRlbGF5VW50aWxUaW1lQ2hhbmdlZChvcC5hY2NvdW50LCBvcC5hdXRob3JpdHksIG5ld0RlbGF5VW50aWxUaW1lKTsKKyAgICAgICAgICAgIG1TeW5jUXVldWUub25EZWxheVVudGlsVGltZUNoYW5nZWQob3AudGFyZ2V0LCBuZXdEZWxheVVudGlsVGltZSk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICAvKioKLSAgICAgKiBDYW5jZWwgdGhlIGFjdGl2ZSBzeW5jIGlmIGl0IG1hdGNoZXMgdGhlIGF1dGhvcml0eSBhbmQgYWNjb3VudC4KLSAgICAgKiBAcGFyYW0gYWNjb3VudCBsaW1pdCB0aGUgY2FuY2VsYXRpb25zIHRvIHN5bmNzIHdpdGggdGhpcyBhY2NvdW50LCBpZiBub24tbnVsbAotICAgICAqIEBwYXJhbSBhdXRob3JpdHkgbGltaXQgdGhlIGNhbmNlbGF0aW9ucyB0byBzeW5jcyB3aXRoIHRoaXMgYXV0aG9yaXR5LCBpZiBub24tbnVsbAorICAgICAqIENhbmNlbCB0aGUgYWN0aXZlIHN5bmMgaWYgaXQgbWF0Y2hlcyB0aGUgdGFyZ2V0LgorICAgICAqIEBwYXJhbSBpbmZvIG9iamVjdCBjb250YWluaW5nIGluZm8gYWJvdXQgd2hpY2ggc3luY3MgdG8gY2FuY2VsLiBUaGUgdGFyZ2V0IGNhbgorICAgICAqIGhhdmUgbnVsbCBhY2NvdW50L3Byb3ZpZGVyIGluZm8gdG8gc3BlY2lmeSBhbGwgYWNjb3VudHMvcHJvdmlkZXJzLgorICAgICAqIEBwYXJhbSBleHRyYXMgaWYgbm9uLW51bGwsIHNwZWNpZmllcyB0aGUgZXhhY3Qgc3luYyB0byByZW1vdmUuCiAgICAgICovCi0gICAgcHVibGljIHZvaWQgY2FuY2VsQWN0aXZlU3luYyhBY2NvdW50IGFjY291bnQsIGludCB1c2VySWQsIFN0cmluZyBhdXRob3JpdHkpIHsKLSAgICAgICAgc2VuZENhbmNlbFN5bmNzTWVzc2FnZShhY2NvdW50LCB1c2VySWQsIGF1dGhvcml0eSk7CisgICAgcHVibGljIHZvaWQgY2FuY2VsQWN0aXZlU3luYyhTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludCBpbmZvLCBCdW5kbGUgZXh0cmFzKSB7CisgICAgICAgIHNlbmRDYW5jZWxTeW5jc01lc3NhZ2UoaW5mbywgZXh0cmFzKTsKICAgICB9CiAKICAgICAvKioKQEAgLTkyMiwyNCArOTY5LDQwIEBACiAKICAgICAvKioKICAgICAgKiBSZW1vdmUgc2NoZWR1bGVkIHN5bmMgb3BlcmF0aW9ucy4KLSAgICAgKiBAcGFyYW0gYWNjb3VudCBsaW1pdCB0aGUgcmVtb3ZhbHMgdG8gb3BlcmF0aW9ucyB3aXRoIHRoaXMgYWNjb3VudCwgaWYgbm9uLW51bGwKLSAgICAgKiBAcGFyYW0gYXV0aG9yaXR5IGxpbWl0IHRoZSByZW1vdmFscyB0byBvcGVyYXRpb25zIHdpdGggdGhpcyBhdXRob3JpdHksIGlmIG5vbi1udWxsCisgICAgICogQHBhcmFtIGluZm8gbGltaXQgdGhlIHJlbW92YWxzIHRvIG9wZXJhdGlvbnMgdGhhdCBtYXRjaCB0aGlzIHRhcmdldC4gVGhlIHRhcmdldCBjYW4KKyAgICAgKiBoYXZlIG51bGwgYWNjb3VudC9wcm92aWRlciBpbmZvIHRvIHNwZWNpZnkgYWxsIGFjY291bnRzL3Byb3ZpZGVycy4KICAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBjbGVhclNjaGVkdWxlZFN5bmNPcGVyYXRpb25zKEFjY291bnQgYWNjb3VudCwgaW50IHVzZXJJZCwgU3RyaW5nIGF1dGhvcml0eSkgeworICAgIHB1YmxpYyB2b2lkIGNsZWFyU2NoZWR1bGVkU3luY09wZXJhdGlvbnMoU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQgaW5mbykgewogICAgICAgICBzeW5jaHJvbml6ZWQgKG1TeW5jUXVldWUpIHsKLSAgICAgICAgICAgIG1TeW5jUXVldWUucmVtb3ZlKGFjY291bnQsIHVzZXJJZCwgYXV0aG9yaXR5KTsKKyAgICAgICAgICAgIG1TeW5jUXVldWUucmVtb3ZlKGluZm8sIG51bGwgLyogYWxsIG9wZXJhdGlvbnMgKi8pOwogICAgICAgICB9Ci0gICAgICAgIG1TeW5jU3RvcmFnZUVuZ2luZS5zZXRCYWNrb2ZmKGFjY291bnQsIHVzZXJJZCwgYXV0aG9yaXR5LAorICAgICAgICBtU3luY1N0b3JhZ2VFbmdpbmUuc2V0QmFja29mZihpbmZvLAogICAgICAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLk5PVF9JTl9CQUNLT0ZGX01PREUsIFN5bmNTdG9yYWdlRW5naW5lLk5PVF9JTl9CQUNLT0ZGX01PREUpOwogICAgIH0KIAorICAgIC8qKgorICAgICAqIFJlbW92ZSBhIHNwZWNpZmllZCBzeW5jLCBpZiBpdCBleGlzdHMuCisgICAgICogQHBhcmFtIGluZm8gQXV0aG9yaXR5IGZvciB3aGljaCB0aGUgc3luYyBpcyB0byBiZSByZW1vdmVkLgorICAgICAqIEBwYXJhbSBleHRyYXMgZXh0cmFzIGJ1bmRsZSB0byB1bmlxdWVseSBpZGVudGlmeSBzeW5jLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNhbmNlbFNjaGVkdWxlZFN5bmNPcGVyYXRpb24oU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQgaW5mbywgQnVuZGxlIGV4dHJhcykgeworICAgICAgICBzeW5jaHJvbml6ZWQgKG1TeW5jUXVldWUpIHsKKyAgICAgICAgICAgIG1TeW5jUXVldWUucmVtb3ZlKGluZm8sIGV4dHJhcyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gUmVzZXQgdGhlIGJhY2stb2ZmIGlmIHRoZXJlIGFyZSBubyBtb3JlIHN5bmNzIHBlbmRpbmcuCisgICAgICAgIGlmICghbVN5bmNTdG9yYWdlRW5naW5lLmlzU3luY1BlbmRpbmcoaW5mbykpIHsKKyAgICAgICAgICAgIG1TeW5jU3RvcmFnZUVuZ2luZS5zZXRCYWNrb2ZmKGluZm8sCisgICAgICAgICAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLk5PVF9JTl9CQUNLT0ZGX01PREUsIFN5bmNTdG9yYWdlRW5naW5lLk5PVF9JTl9CQUNLT0ZGX01PREUpOworICAgICAgICB9CisgICAgfQorCiAgICAgdm9pZCBtYXliZVJlc2NoZWR1bGVTeW5jKFN5bmNSZXN1bHQgc3luY1Jlc3VsdCwgU3luY09wZXJhdGlvbiBvcGVyYXRpb24pIHsKICAgICAgICAgYm9vbGVhbiBpc0xvZ2dhYmxlID0gTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuREVCVUcpOwogICAgICAgICBpZiAoaXNMb2dnYWJsZSkgewogICAgICAgICAgICAgTG9nLmQoVEFHLCAiZW5jb3VudGVyZWQgZXJyb3IocykgZHVyaW5nIHRoZSBzeW5jOiAiICsgc3luY1Jlc3VsdCArICIsICIgKyBvcGVyYXRpb24pOwogICAgICAgICB9CiAKLSAgICAgICAgb3BlcmF0aW9uID0gbmV3IFN5bmNPcGVyYXRpb24ob3BlcmF0aW9uKTsKKyAgICAgICAgb3BlcmF0aW9uID0gbmV3IFN5bmNPcGVyYXRpb24ob3BlcmF0aW9uLCAwTCAvKiBuZXdSdW5UaW1lRnJvbU5vdyAqLyk7CiAKICAgICAgICAgLy8gVGhlIFNZTkNfRVhUUkFTX0lHTk9SRV9CQUNLT0ZGIG9ubHkgYXBwbGllcyB0byB0aGUgZmlyc3QgYXR0ZW1wdCB0byBzeW5jIGEgZ2l2ZW4KICAgICAgICAgLy8gcmVxdWVzdC4gUmV0cmllcyBvZiB0aGUgcmVxdWVzdCB3aWxsIGFsd2F5cyBob25vciB0aGUgYmFja29mZiwgc28gY2xlYXIgdGhlCkBAIC05NDgsMjUgKzEwMTEsMjkgQEAKICAgICAgICAgICAgIG9wZXJhdGlvbi5leHRyYXMucmVtb3ZlKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19JR05PUkVfQkFDS09GRik7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBJZiB0aGlzIHN5bmMgYWJvcnRlZCBiZWNhdXNlIHRoZSBpbnRlcm5hbCBzeW5jIGxvb3AgcmV0cmllZCB0b28gbWFueSB0aW1lcyB0aGVuCi0gICAgICAgIC8vICAgZG9uJ3QgcmVzY2hlZHVsZS4gT3RoZXJ3aXNlIHdlIHJpc2sgZ2V0dGluZyBpbnRvIGEgcmV0cnkgbG9vcC4KLSAgICAgICAgLy8gSWYgdGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQgdG8gc29tZSBleHRlbnQgdGhlbiByZXRyeSBpbW1lZGlhdGVseS4KLSAgICAgICAgLy8gSWYgdGhpcyB3YXMgYSB0d28td2F5IHN5bmMgdGhlbiByZXRyeSBzb2Z0IGVycm9ycyB3aXRoIGFuIGV4cG9uZW50aWFsIGJhY2tvZmYuCi0gICAgICAgIC8vIElmIHRoaXMgd2FzIGFuIHVwd2FyZCBzeW5jIHRoZW4gc2NoZWR1bGUgYSB0d28td2F5IHN5bmMgaW1tZWRpYXRlbHkuCi0gICAgICAgIC8vIE90aGVyd2lzZSBkbyBub3QgcmVzY2hlZHVsZS4KICAgICAgICAgaWYgKG9wZXJhdGlvbi5leHRyYXMuZ2V0Qm9vbGVhbihDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfRE9fTk9UX1JFVFJZLCBmYWxzZSkpIHsKLSAgICAgICAgICAgIExvZy5kKFRBRywgIm5vdCByZXRyeWluZyBzeW5jIG9wZXJhdGlvbiBiZWNhdXNlIFNZTkNfRVhUUkFTX0RPX05PVF9SRVRSWSB3YXMgc3BlY2lmaWVkICIKLSAgICAgICAgICAgICAgICAgICAgKyBvcGVyYXRpb24pOworICAgICAgICAgICAgaWYgKGlzTG9nZ2FibGUpIHsKKyAgICAgICAgICAgICAgICBMb2cuZChUQUcsICJub3QgcmV0cnlpbmcgc3luYyBvcGVyYXRpb24gYmVjYXVzZSBTWU5DX0VYVFJBU19ET19OT1RfUkVUUlkgd2FzIHNwZWNpZmllZCAiCisgICAgICAgICAgICAgICAgICAgICAgICArIG9wZXJhdGlvbik7CisgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uLmV4dHJhcy5nZXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19VUExPQUQsIGZhbHNlKQogICAgICAgICAgICAgICAgICYmICFzeW5jUmVzdWx0LnN5bmNBbHJlYWR5SW5Qcm9ncmVzcykgeworICAgICAgICAgICAgLy8gSWYgdGhpcyB3YXMgYW4gdXB3YXJkIHN5bmMgdGhlbiBzY2hlZHVsZSBhIHR3by13YXkgc3luYyBpbW1lZGlhdGVseS4KICAgICAgICAgICAgIG9wZXJhdGlvbi5leHRyYXMucmVtb3ZlKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19VUExPQUQpOwotICAgICAgICAgICAgTG9nLmQoVEFHLCAicmV0cnlpbmcgc3luYyBvcGVyYXRpb24gYXMgYSB0d28td2F5IHN5bmMgYmVjYXVzZSBhbiB1cGxvYWQtb25seSBzeW5jICIKLSAgICAgICAgICAgICAgICAgICAgKyAiZW5jb3VudGVyZWQgYW4gZXJyb3I6ICIgKyBvcGVyYXRpb24pOworICAgICAgICAgICAgaWYgKGlzTG9nZ2FibGUpIHsKKyAgICAgICAgICAgICAgICBMb2cuZChUQUcsICJyZXRyeWluZyBzeW5jIG9wZXJhdGlvbiBhcyBhIHR3by13YXkgc3luYyBiZWNhdXNlIGFuIHVwbG9hZC1vbmx5IHN5bmMgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiZW5jb3VudGVyZWQgYW4gZXJyb3I6ICIgKyBvcGVyYXRpb24pOworICAgICAgICAgICAgfQogICAgICAgICAgICAgc2NoZWR1bGVTeW5jT3BlcmF0aW9uKG9wZXJhdGlvbik7CiAgICAgICAgIH0gZWxzZSBpZiAoc3luY1Jlc3VsdC50b29NYW55UmV0cmllcykgewotICAgICAgICAgICAgTG9nLmQoVEFHLCAibm90IHJldHJ5aW5nIHN5bmMgb3BlcmF0aW9uIGJlY2F1c2UgaXQgcmV0cmllZCB0b28gbWFueSB0aW1lczogIgotICAgICAgICAgICAgICAgICAgICArIG9wZXJhdGlvbik7CisgICAgICAgICAgICAvLyBJZiB0aGlzIHN5bmMgYWJvcnRlZCBiZWNhdXNlIHRoZSBpbnRlcm5hbCBzeW5jIGxvb3AgcmV0cmllZCB0b28gbWFueSB0aW1lcyB0aGVuCisgICAgICAgICAgICAvLyAgIGRvbid0IHJlc2NoZWR1bGUuIE90aGVyd2lzZSB3ZSByaXNrIGdldHRpbmcgaW50byBhIHJldHJ5IGxvb3AuCisgICAgICAgICAgICBpZiAoaXNMb2dnYWJsZSkgeworICAgICAgICAgICAgICAgIExvZy5kKFRBRywgIm5vdCByZXRyeWluZyBzeW5jIG9wZXJhdGlvbiBiZWNhdXNlIGl0IHJldHJpZWQgdG9vIG1hbnkgdGltZXM6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgb3BlcmF0aW9uKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChzeW5jUmVzdWx0Lm1hZGVTb21lUHJvZ3Jlc3MoKSkgeworICAgICAgICAgICAgLy8gSWYgdGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQgdG8gc29tZSBleHRlbnQgdGhlbiByZXRyeSBpbW1lZGlhdGVseS4KICAgICAgICAgICAgIGlmIChpc0xvZ2dhYmxlKSB7CiAgICAgICAgICAgICAgICAgTG9nLmQoVEFHLCAicmV0cnlpbmcgc3luYyBvcGVyYXRpb24gYmVjYXVzZSBldmVuIHRob3VnaCBpdCBoYWQgYW4gZXJyb3IgIgogICAgICAgICAgICAgICAgICAgICAgICAgKyAiaXQgYWNoaWV2ZWQgc29tZSBzdWNjZXNzIik7CkBAIC05NzksMTkgKzEwNDYsMTggQEAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHNjaGVkdWxlU3luY09wZXJhdGlvbigKICAgICAgICAgICAgICAgICBuZXcgU3luY09wZXJhdGlvbigKLSAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLmFjY291bnQsIG9wZXJhdGlvbi51c2VySWQsCi0gICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5yZWFzb24sCi0gICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5zeW5jU291cmNlLAotICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24uYXV0aG9yaXR5LCBvcGVyYXRpb24uZXh0cmFzLAotICAgICAgICAgICAgICAgICAgICBERUxBWV9SRVRSWV9TWU5DX0lOX1BST0dSRVNTX0lOX1NFQ09ORFMgKiAxMDAwLCBvcGVyYXRpb24uZmxleFRpbWUsCi0gICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5iYWNrb2ZmLCBvcGVyYXRpb24uZGVsYXlVbnRpbCwgb3BlcmF0aW9uLmFsbG93UGFyYWxsZWxTeW5jcykpOworICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgREVMQVlfUkVUUllfU1lOQ19JTl9QUk9HUkVTU19JTl9TRUNPTkRTICogMTAwMCAvKiBuZXdSdW5UaW1lRnJvbU5vdyAqLykKKyAgICAgICAgICAgICAgICApOwogICAgICAgICB9IGVsc2UgaWYgKHN5bmNSZXN1bHQuaGFzU29mdEVycm9yKCkpIHsKKyAgICAgICAgICAgIC8vIElmIHRoaXMgd2FzIGEgdHdvLXdheSBzeW5jIHRoZW4gcmV0cnkgc29mdCBlcnJvcnMgd2l0aCBhbiBleHBvbmVudGlhbCBiYWNrb2ZmLgogICAgICAgICAgICAgaWYgKGlzTG9nZ2FibGUpIHsKICAgICAgICAgICAgICAgICBMb2cuZChUQUcsICJyZXRyeWluZyBzeW5jIG9wZXJhdGlvbiBiZWNhdXNlIGl0IGVuY291bnRlcmVkIGEgc29mdCBlcnJvcjogIgogICAgICAgICAgICAgICAgICAgICAgICAgKyBvcGVyYXRpb24pOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2NoZWR1bGVTeW5jT3BlcmF0aW9uKG9wZXJhdGlvbik7CiAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBPdGhlcndpc2UgZG8gbm90IHJlc2NoZWR1bGUuCiAgICAgICAgICAgICBMb2cuZChUQUcsICJub3QgcmV0cnlpbmcgc3luYyBvcGVyYXRpb24gYmVjYXVzZSB0aGUgZXJyb3IgaXMgYSBoYXJkIGVycm9yOiAiCiAgICAgICAgICAgICAgICAgICAgICsgb3BlcmF0aW9uKTsKICAgICAgICAgfQpAQCAtMTAyNCw5ICsxMDkwLDEyIEBACiAgICAgICAgIHVwZGF0ZVJ1bm5pbmdBY2NvdW50cygpOwogCiAgICAgICAgIGNhbmNlbEFjdGl2ZVN5bmMoCi0gICAgICAgICAgICAgICAgbnVsbCAvKiBhbnkgYWNjb3VudCAqLywKLSAgICAgICAgICAgICAgICB1c2VySWQsCi0gICAgICAgICAgICAgICAgbnVsbCAvKiBhbnkgYXV0aG9yaXR5ICovKTsKKyAgICAgICAgICAgICAgICBuZXcgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQoCisgICAgICAgICAgICAgICAgICAgICAgICBudWxsIC8qIGFueSBhY2NvdW50ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAvKiBhbnkgYXV0aG9yaXR5ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgdXNlcklkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgLyogYW55IHN5bmMuICovCisgICAgICAgICAgICAgICAgKTsKICAgICB9CiAKICAgICBwcml2YXRlIHZvaWQgb25Vc2VyUmVtb3ZlZChpbnQgdXNlcklkKSB7CkBAIC0xMDM1LDcgKzExMDQsNyBAQAogICAgICAgICAvLyBDbGVhbiB1cCB0aGUgc3RvcmFnZSBlbmdpbmUgZGF0YWJhc2UKICAgICAgICAgbVN5bmNTdG9yYWdlRW5naW5lLmRvRGF0YWJhc2VDbGVhbnVwKG5ldyBBY2NvdW50WzBdLCB1c2VySWQpOwogICAgICAgICBzeW5jaHJvbml6ZWQgKG1TeW5jUXVldWUpIHsKLSAgICAgICAgICAgIG1TeW5jUXVldWUucmVtb3ZlVXNlcih1c2VySWQpOworICAgICAgICAgICAgbVN5bmNRdWV1ZS5yZW1vdmVVc2VyTG9ja2VkKHVzZXJJZCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEwNDcsNiArMTExNiw3IEBACiAgICAgICAgIGZpbmFsIFN5bmNPcGVyYXRpb24gbVN5bmNPcGVyYXRpb247CiAgICAgICAgIGZpbmFsIGxvbmcgbUhpc3RvcnlSb3dJZDsKICAgICAgICAgSVN5bmNBZGFwdGVyIG1TeW5jQWRhcHRlcjsKKyAgICAgICAgSVN5bmNTZXJ2aWNlQWRhcHRlciBtU3luY1NlcnZpY2VBZGFwdGVyOwogICAgICAgICBmaW5hbCBsb25nIG1TdGFydFRpbWU7CiAgICAgICAgIGxvbmcgbVRpbWVvdXRTdGFydFRpbWU7CiAgICAgICAgIGJvb2xlYW4gbUJvdW5kOwpAQCAtMTA3MiwxMCArMTE0MiwxMCBAQAogICAgICAgICAgICAgbVN5bmNPcGVyYXRpb24gPSBzeW5jT3BlcmF0aW9uOwogICAgICAgICAgICAgbUhpc3RvcnlSb3dJZCA9IGhpc3RvcnlSb3dJZDsKICAgICAgICAgICAgIG1TeW5jQWRhcHRlciA9IG51bGw7CisgICAgICAgICAgICBtU3luY1NlcnZpY2VBZGFwdGVyID0gbnVsbDsKICAgICAgICAgICAgIG1TdGFydFRpbWUgPSBTeXN0ZW1DbG9jay5lbGFwc2VkUmVhbHRpbWUoKTsKICAgICAgICAgICAgIG1UaW1lb3V0U3RhcnRUaW1lID0gbVN0YXJ0VGltZTsKLSAgICAgICAgICAgIG1TeW5jV2FrZUxvY2sgPSBtU3luY0hhbmRsZXIuZ2V0U3luY1dha2VMb2NrKAotICAgICAgICAgICAgICAgICAgICBtU3luY09wZXJhdGlvbi5hY2NvdW50LCBtU3luY09wZXJhdGlvbi5hdXRob3JpdHkpOworICAgICAgICAgICAgbVN5bmNXYWtlTG9jayA9IG1TeW5jSGFuZGxlci5nZXRTeW5jV2FrZUxvY2sobVN5bmNPcGVyYXRpb24pOwogICAgICAgICAgICAgbVN5bmNXYWtlTG9jay5zZXRXb3JrU291cmNlKG5ldyBXb3JrU291cmNlKHN5bmNBZGFwdGVyVWlkKSk7CiAgICAgICAgICAgICBtU3luY1dha2VMb2NrLmFjcXVpcmUoKTsKICAgICAgICAgfQpAQCAtMTEwMiw3ICsxMTcyLDcgQEAKICAgICAgICAgcHVibGljIHZvaWQgb25TZXJ2aWNlQ29ubmVjdGVkKENvbXBvbmVudE5hbWUgbmFtZSwgSUJpbmRlciBzZXJ2aWNlKSB7CiAgICAgICAgICAgICBNZXNzYWdlIG1zZyA9IG1TeW5jSGFuZGxlci5vYnRhaW5NZXNzYWdlKCk7CiAgICAgICAgICAgICBtc2cud2hhdCA9IFN5bmNIYW5kbGVyLk1FU1NBR0VfU0VSVklDRV9DT05ORUNURUQ7Ci0gICAgICAgICAgICBtc2cub2JqID0gbmV3IFNlcnZpY2VDb25uZWN0aW9uRGF0YSh0aGlzLCBJU3luY0FkYXB0ZXIuU3R1Yi5hc0ludGVyZmFjZShzZXJ2aWNlKSk7CisgICAgICAgICAgICBtc2cub2JqID0gbmV3IFNlcnZpY2VDb25uZWN0aW9uRGF0YSh0aGlzLCBzZXJ2aWNlKTsKICAgICAgICAgICAgIG1TeW5jSGFuZGxlci5zZW5kTWVzc2FnZShtc2cpOwogICAgICAgICB9CiAKQEAgLTExMTMsMTMgKzExODMsMTMgQEAKICAgICAgICAgICAgIG1TeW5jSGFuZGxlci5zZW5kTWVzc2FnZShtc2cpOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbGVhbiBiaW5kVG9TeW5jQWRhcHRlcihSZWdpc3RlcmVkU2VydmljZXNDYWNoZS5TZXJ2aWNlSW5mbyBpbmZvLCBpbnQgdXNlcklkKSB7CisgICAgICAgIGJvb2xlYW4gYmluZFRvU3luY0FkYXB0ZXIoQ29tcG9uZW50TmFtZSBzZXJ2aWNlQ29tcG9uZW50LCBpbnQgdXNlcklkKSB7CiAgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKLSAgICAgICAgICAgICAgICBMb2cuZChUQUcsICJiaW5kVG9TeW5jQWRhcHRlcjogIiArIGluZm8uY29tcG9uZW50TmFtZSArICIsIGNvbm5lY3Rpb24gIiArIHRoaXMpOworICAgICAgICAgICAgICAgIExvZy5kKFRBRywgImJpbmRUb1N5bmNBZGFwdGVyOiAiICsgc2VydmljZUNvbXBvbmVudCArICIsIGNvbm5lY3Rpb24gIiArIHRoaXMpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgSW50ZW50IGludGVudCA9IG5ldyBJbnRlbnQoKTsKICAgICAgICAgICAgIGludGVudC5zZXRBY3Rpb24oImFuZHJvaWQuY29udGVudC5TeW5jQWRhcHRlciIpOwotICAgICAgICAgICAgaW50ZW50LnNldENvbXBvbmVudChpbmZvLmNvbXBvbmVudE5hbWUpOworICAgICAgICAgICAgaW50ZW50LnNldENvbXBvbmVudChzZXJ2aWNlQ29tcG9uZW50KTsKICAgICAgICAgICAgIGludGVudC5wdXRFeHRyYShJbnRlbnQuRVhUUkFfQ0xJRU5UX0xBQkVMLAogICAgICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5pbnRlcm5hbC5SLnN0cmluZy5zeW5jX2JpbmRpbmdfbGFiZWwpOwogICAgICAgICAgICAgaW50ZW50LnB1dEV4dHJhKEludGVudC5FWFRSQV9DTElFTlRfSU5URU5ULCBQZW5kaW5nSW50ZW50LmdldEFjdGl2aXR5QXNVc2VyKApAQCAtMTEyOSw3ICsxMTk5LDcgQEAKICAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gYmluZFJlc3VsdCA9IG1Db250ZXh0LmJpbmRTZXJ2aWNlQXNVc2VyKGludGVudCwgdGhpcywKICAgICAgICAgICAgICAgICAgICAgQ29udGV4dC5CSU5EX0FVVE9fQ1JFQVRFIHwgQ29udGV4dC5CSU5EX05PVF9GT1JFR1JPVU5ECiAgICAgICAgICAgICAgICAgICAgIHwgQ29udGV4dC5CSU5EX0FMTE9XX09PTV9NQU5BR0VNRU5ULAotICAgICAgICAgICAgICAgICAgICBuZXcgVXNlckhhbmRsZShtU3luY09wZXJhdGlvbi51c2VySWQpKTsKKyAgICAgICAgICAgICAgICAgICAgbmV3IFVzZXJIYW5kbGUobVN5bmNPcGVyYXRpb24udGFyZ2V0LnVzZXJJZCkpOwogICAgICAgICAgICAgaWYgKCFiaW5kUmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgbUJvdW5kID0gZmFsc2U7CiAgICAgICAgICAgICB9CkBAIC0xMTUyLDcgKzEyMjIsNiBAQAogICAgICAgICAgICAgbVN5bmNXYWtlTG9jay5zZXRXb3JrU291cmNlKG51bGwpOwogICAgICAgICB9CiAKLSAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CiAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKICAgICAgICAgICAgIHRvU3RyaW5nKHNiKTsKQEAgLTEyOTEsMTEgKzEzNjAsMTMgQEAKICAgICAgICAgICAgICAgICBpbnQgcm93ID0gdGFibGUuZ2V0TnVtUm93cygpOwogICAgICAgICAgICAgICAgIFBhaXI8QXV0aG9yaXR5SW5mbywgU3luY1N0YXR1c0luZm8+IHN5bmNBdXRob3JpdHlTeW5jU3RhdHVzID0gCiAgICAgICAgICAgICAgICAgICAgICAgICBtU3luY1N0b3JhZ2VFbmdpbmUuZ2V0Q29weU9mQXV0aG9yaXR5V2l0aFN5bmNTdGF0dXMoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQuYWNjb3VudCwgYWNjb3VudC51c2VySWQsIHN5bmNBZGFwdGVyVHlwZS50eXBlLmF1dGhvcml0eSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50LmFjY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luY0FkYXB0ZXJUeXBlLnR5cGUuYXV0aG9yaXR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQudXNlcklkKSk7CiAgICAgICAgICAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUuQXV0aG9yaXR5SW5mbyBzZXR0aW5ncyA9IHN5bmNBdXRob3JpdHlTeW5jU3RhdHVzLmZpcnN0OwogICAgICAgICAgICAgICAgIFN5bmNTdGF0dXNJbmZvIHN0YXR1cyA9IHN5bmNBdXRob3JpdHlTeW5jU3RhdHVzLnNlY29uZDsKLQotICAgICAgICAgICAgICAgIFN0cmluZyBhdXRob3JpdHkgPSBzZXR0aW5ncy5hdXRob3JpdHk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGF1dGhvcml0eSA9IHNldHRpbmdzLnRhcmdldC5wcm92aWRlcjsKICAgICAgICAgICAgICAgICBpZiAoYXV0aG9yaXR5Lmxlbmd0aCgpID4gNTApIHsKICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5ID0gYXV0aG9yaXR5LnN1YnN0cmluZyhhdXRob3JpdHkubGVuZ3RoKCkgLSA1MCk7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTQxNiwxNCArMTQ4NywyNSBAQAogICAgICAgICAgICAgaW50IG1heEF1dGhvcml0eSA9IDA7CiAgICAgICAgICAgICBpbnQgbWF4QWNjb3VudCA9IDA7CiAgICAgICAgICAgICBmb3IgKFN5bmNTdG9yYWdlRW5naW5lLlN5bmNIaXN0b3J5SXRlbSBpdGVtIDogaXRlbXMpIHsKLSAgICAgICAgICAgICAgICBTeW5jU3RvcmFnZUVuZ2luZS5BdXRob3JpdHlJbmZvIGF1dGhvcml0eQorICAgICAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLkF1dGhvcml0eUluZm8gYXV0aG9yaXR5SW5mbwogICAgICAgICAgICAgICAgICAgICAgICAgPSBtU3luY1N0b3JhZ2VFbmdpbmUuZ2V0QXV0aG9yaXR5KGl0ZW0uYXV0aG9yaXR5SWQpOwogICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBhdXRob3JpdHlOYW1lOwogICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBhY2NvdW50S2V5OwotICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHkgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlOYW1lID0gYXV0aG9yaXR5LmF1dGhvcml0eTsKLSAgICAgICAgICAgICAgICAgICAgYWNjb3VudEtleSA9IGF1dGhvcml0eS5hY2NvdW50Lm5hbWUgKyAiLyIgKyBhdXRob3JpdHkuYWNjb3VudC50eXBlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHUiICsgYXV0aG9yaXR5LnVzZXJJZDsKKyAgICAgICAgICAgICAgICBpZiAoYXV0aG9yaXR5SW5mbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHlJbmZvLnRhcmdldC50YXJnZXRfcHJvdmlkZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eU5hbWUgPSBhdXRob3JpdHlJbmZvLnRhcmdldC5wcm92aWRlcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRLZXkgPSBhdXRob3JpdHlJbmZvLnRhcmdldC5hY2NvdW50Lm5hbWUgKyAiLyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBhdXRob3JpdHlJbmZvLnRhcmdldC5hY2NvdW50LnR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHUiICsgYXV0aG9yaXR5SW5mby50YXJnZXQudXNlcklkOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGF1dGhvcml0eUluZm8udGFyZ2V0LnRhcmdldF9zZXJ2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlOYW1lID0gYXV0aG9yaXR5SW5mby50YXJnZXQuc2VydmljZS5nZXRQYWNrYWdlTmFtZSgpICsgIi8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgYXV0aG9yaXR5SW5mby50YXJnZXQuc2VydmljZS5nZXRDbGFzc05hbWUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgdSIgKyBhdXRob3JpdHlJbmZvLnRhcmdldC51c2VySWQ7CisgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50S2V5ID0gIm5vIGFjY291bnQiOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5TmFtZSA9ICJVbmtub3duIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRLZXkgPSAiVW5rbm93biI7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlOYW1lID0gIlVua25vd24iOwogICAgICAgICAgICAgICAgICAgICBhY2NvdW50S2V5ID0gIlVua25vd24iOwpAQCAtMTU0NCwxNCArMTYyNiwyNSBAQAogICAgICAgICAgICAgZmluYWwgUGFja2FnZU1hbmFnZXIgcG0gPSBtQ29udGV4dC5nZXRQYWNrYWdlTWFuYWdlcigpOwogICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICAgICAgICAgICBTeW5jU3RvcmFnZUVuZ2luZS5TeW5jSGlzdG9yeUl0ZW0gaXRlbSA9IGl0ZW1zLmdldChpKTsKLSAgICAgICAgICAgICAgICBTeW5jU3RvcmFnZUVuZ2luZS5BdXRob3JpdHlJbmZvIGF1dGhvcml0eQorICAgICAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLkF1dGhvcml0eUluZm8gYXV0aG9yaXR5SW5mbwogICAgICAgICAgICAgICAgICAgICAgICAgPSBtU3luY1N0b3JhZ2VFbmdpbmUuZ2V0QXV0aG9yaXR5KGl0ZW0uYXV0aG9yaXR5SWQpOwogICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBhdXRob3JpdHlOYW1lOwogICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBhY2NvdW50S2V5OwotICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHkgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlOYW1lID0gYXV0aG9yaXR5LmF1dGhvcml0eTsKLSAgICAgICAgICAgICAgICAgICAgYWNjb3VudEtleSA9IGF1dGhvcml0eS5hY2NvdW50Lm5hbWUgKyAiLyIgKyBhdXRob3JpdHkuYWNjb3VudC50eXBlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHUiICsgYXV0aG9yaXR5LnVzZXJJZDsKKyAgICAgICAgICAgICAgICBpZiAoYXV0aG9yaXR5SW5mbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHlJbmZvLnRhcmdldC50YXJnZXRfcHJvdmlkZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eU5hbWUgPSBhdXRob3JpdHlJbmZvLnRhcmdldC5wcm92aWRlcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRLZXkgPSBhdXRob3JpdHlJbmZvLnRhcmdldC5hY2NvdW50Lm5hbWUgKyAiLyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBhdXRob3JpdHlJbmZvLnRhcmdldC5hY2NvdW50LnR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHUiICsgYXV0aG9yaXR5SW5mby50YXJnZXQudXNlcklkOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGF1dGhvcml0eUluZm8udGFyZ2V0LnRhcmdldF9zZXJ2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlOYW1lID0gYXV0aG9yaXR5SW5mby50YXJnZXQuc2VydmljZS5nZXRQYWNrYWdlTmFtZSgpICsgIi8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgYXV0aG9yaXR5SW5mby50YXJnZXQuc2VydmljZS5nZXRDbGFzc05hbWUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgdSIgKyBhdXRob3JpdHlJbmZvLnRhcmdldC51c2VySWQ7CisgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50S2V5ID0gIm5vbmUiOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5TmFtZSA9ICJVbmtub3duIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRLZXkgPSAiVW5rbm93biI7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlOYW1lID0gIlVua25vd24iOwogICAgICAgICAgICAgICAgICAgICBhY2NvdW50S2V5ID0gIlVua25vd24iOwpAQCAtMTYxMCwxNCArMTcwMywyNSBAQAogICAgICAgICAgICAgICAgIGlmIChleHRyYXMgPT0gbnVsbCB8fCBleHRyYXMuc2l6ZSgpID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGZpbmFsIFN5bmNTdG9yYWdlRW5naW5lLkF1dGhvcml0eUluZm8gYXV0aG9yaXR5CisgICAgICAgICAgICAgICAgZmluYWwgU3luY1N0b3JhZ2VFbmdpbmUuQXV0aG9yaXR5SW5mbyBhdXRob3JpdHlJbmZvCiAgICAgICAgICAgICAgICAgICAgICAgICA9IG1TeW5jU3RvcmFnZUVuZ2luZS5nZXRBdXRob3JpdHkoaXRlbS5hdXRob3JpdHlJZCk7CiAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGF1dGhvcml0eU5hbWU7CiAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGFjY291bnRLZXk7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dGhvcml0eSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eU5hbWUgPSBhdXRob3JpdHkuYXV0aG9yaXR5OwotICAgICAgICAgICAgICAgICAgICBhY2NvdW50S2V5ID0gYXV0aG9yaXR5LmFjY291bnQubmFtZSArICIvIiArIGF1dGhvcml0eS5hY2NvdW50LnR5cGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgdSIgKyBhdXRob3JpdHkudXNlcklkOworICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHlJbmZvICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dGhvcml0eUluZm8udGFyZ2V0LnRhcmdldF9wcm92aWRlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5TmFtZSA9IGF1dGhvcml0eUluZm8udGFyZ2V0LnByb3ZpZGVyOworICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudEtleSA9IGF1dGhvcml0eUluZm8udGFyZ2V0LmFjY291bnQubmFtZSArICIvIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGF1dGhvcml0eUluZm8udGFyZ2V0LmFjY291bnQudHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgdSIgKyBhdXRob3JpdHlJbmZvLnRhcmdldC51c2VySWQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXV0aG9yaXR5SW5mby50YXJnZXQudGFyZ2V0X3NlcnZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eU5hbWUgPSBhdXRob3JpdHlJbmZvLnRhcmdldC5zZXJ2aWNlLmdldFBhY2thZ2VOYW1lKCkgKyAiLyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBhdXRob3JpdHlJbmZvLnRhcmdldC5zZXJ2aWNlLmdldENsYXNzTmFtZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiB1IiArIGF1dGhvcml0eUluZm8udGFyZ2V0LnVzZXJJZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRLZXkgPSAibm9uZSI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlOYW1lID0gIlVua25vd24iOworICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudEtleSA9ICJVbmtub3duIjsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eU5hbWUgPSAiVW5rbm93biI7CiAgICAgICAgICAgICAgICAgICAgIGFjY291bnRLZXkgPSAiVW5rbm93biI7CkBAIC0xNzYxLDEwICsxODY1LDExIEBACiAKICAgICBjbGFzcyBTZXJ2aWNlQ29ubmVjdGlvbkRhdGEgewogICAgICAgICBwdWJsaWMgZmluYWwgQWN0aXZlU3luY0NvbnRleHQgYWN0aXZlU3luY0NvbnRleHQ7Ci0gICAgICAgIHB1YmxpYyBmaW5hbCBJU3luY0FkYXB0ZXIgc3luY0FkYXB0ZXI7Ci0gICAgICAgIFNlcnZpY2VDb25uZWN0aW9uRGF0YShBY3RpdmVTeW5jQ29udGV4dCBhY3RpdmVTeW5jQ29udGV4dCwgSVN5bmNBZGFwdGVyIHN5bmNBZGFwdGVyKSB7CisgICAgICAgIHB1YmxpYyBmaW5hbCBJQmluZGVyIGFkYXB0ZXI7CisKKyAgICAgICAgU2VydmljZUNvbm5lY3Rpb25EYXRhKEFjdGl2ZVN5bmNDb250ZXh0IGFjdGl2ZVN5bmNDb250ZXh0LCBJQmluZGVyIGFkYXB0ZXIpIHsKICAgICAgICAgICAgIHRoaXMuYWN0aXZlU3luY0NvbnRleHQgPSBhY3RpdmVTeW5jQ29udGV4dDsKLSAgICAgICAgICAgIHRoaXMuc3luY0FkYXB0ZXIgPSBzeW5jQWRhcHRlcjsKKyAgICAgICAgICAgIHRoaXMuYWRhcHRlciA9IGFkYXB0ZXI7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE3ODQsMTEgKzE4ODksMTEgQEAKICAgICAgICAgcHVibGljIGZpbmFsIFN5bmNOb3RpZmljYXRpb25JbmZvIG1TeW5jTm90aWZpY2F0aW9uSW5mbyA9IG5ldyBTeW5jTm90aWZpY2F0aW9uSW5mbygpOwogICAgICAgICBwcml2YXRlIExvbmcgbUFsYXJtU2NoZWR1bGVUaW1lID0gbnVsbDsKICAgICAgICAgcHVibGljIGZpbmFsIFN5bmNUaW1lVHJhY2tlciBtU3luY1RpbWVUcmFja2VyID0gbmV3IFN5bmNUaW1lVHJhY2tlcigpOwotICAgICAgICBwcml2YXRlIGZpbmFsIEhhc2hNYXA8UGFpcjxBY2NvdW50LCBTdHJpbmc+LCBQb3dlck1hbmFnZXIuV2FrZUxvY2s+IG1XYWtlTG9ja3MgPQotICAgICAgICAgICAgICAgIE1hcHMubmV3SGFzaE1hcCgpOworICAgICAgICBwcml2YXRlIGZpbmFsIEhhc2hNYXA8U3RyaW5nLCBQb3dlck1hbmFnZXIuV2FrZUxvY2s+IG1XYWtlTG9ja3MgPSBNYXBzLm5ld0hhc2hNYXAoKTsKKwogICAgICAgICBwcml2YXRlIExpc3Q8TWVzc2FnZT4gbUJvb3RRdWV1ZSA9IG5ldyBBcnJheUxpc3Q8TWVzc2FnZT4oKTsKIAotICAgICAgICBwdWJsaWMgdm9pZCBvbkJvb3RDb21wbGV0ZWQoKSB7CisgICAgICBwdWJsaWMgdm9pZCBvbkJvb3RDb21wbGV0ZWQoKSB7CiAgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKICAgICAgICAgICAgICAgICBMb2cudihUQUcsICJCb290IGNvbXBsZXRlZCwgY2xlYXJpbmcgYm9vdCBxdWV1ZS4iKTsKICAgICAgICAgICAgIH0KQEAgLTE4MDMsMTIgKzE5MDgsMTEgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHByaXZhdGUgUG93ZXJNYW5hZ2VyLldha2VMb2NrIGdldFN5bmNXYWtlTG9jayhBY2NvdW50IGFjY291bnQsIFN0cmluZyBhdXRob3JpdHkpIHsKLSAgICAgICAgICAgIGZpbmFsIFBhaXI8QWNjb3VudCwgU3RyaW5nPiB3YWtlTG9ja0tleSA9IFBhaXIuY3JlYXRlKGFjY291bnQsIGF1dGhvcml0eSk7CisgICAgICAgIHByaXZhdGUgUG93ZXJNYW5hZ2VyLldha2VMb2NrIGdldFN5bmNXYWtlTG9jayhTeW5jT3BlcmF0aW9uIG9wZXJhdGlvbikgeworICAgICAgICAgICAgZmluYWwgU3RyaW5nIHdha2VMb2NrS2V5ID0gb3BlcmF0aW9uLndha2VMb2NrS2V5KCk7CiAgICAgICAgICAgICBQb3dlck1hbmFnZXIuV2FrZUxvY2sgd2FrZUxvY2sgPSBtV2FrZUxvY2tzLmdldCh3YWtlTG9ja0tleSk7CiAgICAgICAgICAgICBpZiAod2FrZUxvY2sgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBuYW1lID0gU1lOQ19XQUtFX0xPQ0tfUFJFRklYICsgIi8iICsgYXV0aG9yaXR5ICsgIi8iICsgYWNjb3VudC50eXBlCi0gICAgICAgICAgICAgICAgICAgICAgICArICIvIiArIGFjY291bnQubmFtZTsKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgbmFtZSA9IFNZTkNfV0FLRV9MT0NLX1BSRUZJWCArIG9wZXJhdGlvbi53YWtlTG9ja05hbWUoKTsKICAgICAgICAgICAgICAgICB3YWtlTG9jayA9IG1Qb3dlck1hbmFnZXIubmV3V2FrZUxvY2soUG93ZXJNYW5hZ2VyLlBBUlRJQUxfV0FLRV9MT0NLLCBuYW1lKTsKICAgICAgICAgICAgICAgICB3YWtlTG9jay5zZXRSZWZlcmVuY2VDb3VudGVkKGZhbHNlKTsKICAgICAgICAgICAgICAgICBtV2FrZUxvY2tzLnB1dCh3YWtlTG9ja0tleSwgd2FrZUxvY2spOwpAQCAtMTg2MSw3ICsxOTY1LDYgQEAKICAgICAgICAgICAgIHN1cGVyKGxvb3Blcik7CiAgICAgICAgIH0KIAotICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgcHVibGljIHZvaWQgaGFuZGxlTWVzc2FnZShNZXNzYWdlIG1zZykgewogICAgICAgICAgICAgaWYgKHRyeUVucXVldWVNZXNzYWdlVW50aWxSZWFkeVRvUnVuKG1zZykpIHsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0xODgxLDEyICsxOTg0LDEzIEBACiAgICAgICAgICAgICAgICAgZWFybGllc3RGdXR1cmVQb2xsVGltZSA9IHNjaGVkdWxlUmVhZHlQZXJpb2RpY1N5bmNzKCk7CiAgICAgICAgICAgICAgICAgc3dpdGNoIChtc2cud2hhdCkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIFN5bmNIYW5kbGVyLk1FU1NBR0VfQ0FOQ0VMOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBQYWlyPEFjY291bnQsIFN0cmluZz4gcGF5bG9hZCA9IChQYWlyPEFjY291bnQsIFN0cmluZz4pIG1zZy5vYmo7CisgICAgICAgICAgICAgICAgICAgICAgICBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludCBwYXlsb2FkID0gKFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50KSBtc2cub2JqOworICAgICAgICAgICAgICAgICAgICAgICAgQnVuZGxlIGV4dHJhcyA9IG1zZy5wZWVrRGF0YSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9nLmQoVEFHLCAiaGFuZGxlU3luY0hhbmRsZXJNZXNzYWdlOiBNRVNTQUdFX1NFUlZJQ0VfQ0FOQ0VMOiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHBheWxvYWQuZmlyc3QgKyAiLCAiICsgcGF5bG9hZC5zZWNvbmQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBwYXlsb2FkICsgIiBidW5kbGU6ICIgKyBleHRyYXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsQWN0aXZlU3luY0xvY2tlZChwYXlsb2FkLmZpcnN0LCBtc2cuYXJnMSwgcGF5bG9hZC5zZWNvbmQpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsQWN0aXZlU3luY0xvY2tlZChwYXlsb2FkLCBleHRyYXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFBlbmRpbmdTeW5jVGltZSA9IG1heWJlU3RhcnROZXh0U3luY0xvY2tlZCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTE4OTUsMzUgKzE5OTksMzggQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUcsIExvZy5WRVJCT1NFKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgImhhbmRsZVN5bmNIYW5kbGVyTWVzc2FnZTogTUVTU0FHRV9TWU5DX0ZJTklTSEVEIik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBTeW5jSGFuZGxlck1lc3NhZ2VQYXlsb2FkIHBheWxvYWQgPSAoU3luY0hhbmRsZXJNZXNzYWdlUGF5bG9hZCltc2cub2JqOworICAgICAgICAgICAgICAgICAgICAgICAgU3luY0hhbmRsZXJNZXNzYWdlUGF5bG9hZCBwYXlsb2FkID0gKFN5bmNIYW5kbGVyTWVzc2FnZVBheWxvYWQpIG1zZy5vYmo7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzU3luY1N0aWxsQWN0aXZlKHBheWxvYWQuYWN0aXZlU3luY0NvbnRleHQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9nLmQoVEFHLCAiaGFuZGxlU3luY0hhbmRsZXJNZXNzYWdlOiBkcm9wcGluZyBzaW5jZSB0aGUgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAic3luYyBpcyBubyBsb25nZXIgYWN0aXZlOiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHBheWxvYWQuYWN0aXZlU3luY0NvbnRleHQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgcnVuU3luY0ZpbmlzaGVkT3JDYW5jZWxlZExvY2tlZChwYXlsb2FkLnN5bmNSZXN1bHQsIHBheWxvYWQuYWN0aXZlU3luY0NvbnRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgcnVuU3luY0ZpbmlzaGVkT3JDYW5jZWxlZExvY2tlZChwYXlsb2FkLnN5bmNSZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQuYWN0aXZlU3luY0NvbnRleHQpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaW5jZSBhIHN5bmMganVzdCBmaW5pc2hlZCBjaGVjayBpZiBpdCBpcyB0aW1lIHRvIHN0YXJ0IGEgbmV3IHN5bmMKICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRQZW5kaW5nU3luY1RpbWUgPSBtYXliZVN0YXJ0TmV4dFN5bmNMb2NrZWQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgICAgIGNhc2UgU3luY0hhbmRsZXIuTUVTU0FHRV9TRVJWSUNFX0NPTk5FQ1RFRDogewotICAgICAgICAgICAgICAgICAgICAgICAgU2VydmljZUNvbm5lY3Rpb25EYXRhIG1zZ0RhdGEgPSAoU2VydmljZUNvbm5lY3Rpb25EYXRhKW1zZy5vYmo7CisgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlQ29ubmVjdGlvbkRhdGEgbXNnRGF0YSA9IChTZXJ2aWNlQ29ubmVjdGlvbkRhdGEpIG1zZy5vYmo7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2cuZChUQUcsICJoYW5kbGVTeW5jSGFuZGxlck1lc3NhZ2U6IE1FU1NBR0VfU0VSVklDRV9DT05ORUNURUQ6ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbXNnRGF0YS5hY3RpdmVTeW5jQ29udGV4dCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayB0aGF0IHRoaXMgaXNuJ3QgYW4gb2xkIG1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1N5bmNTdGlsbEFjdGl2ZShtc2dEYXRhLmFjdGl2ZVN5bmNDb250ZXh0KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkJvdW5kVG9TeW5jQWRhcHRlcihtc2dEYXRhLmFjdGl2ZVN5bmNDb250ZXh0LCBtc2dEYXRhLnN5bmNBZGFwdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5Cb3VuZFRvQWRhcHRlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ0RhdGEuYWN0aXZlU3luY0NvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dEYXRhLmFkYXB0ZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgICAgICBjYXNlIFN5bmNIYW5kbGVyLk1FU1NBR0VfU0VSVklDRV9ESVNDT05ORUNURUQ6IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIEFjdGl2ZVN5bmNDb250ZXh0IGN1cnJlbnRTeW5jQ29udGV4dCA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoU2VydmljZUNvbm5lY3Rpb25EYXRhKW1zZy5vYmopLmFjdGl2ZVN5bmNDb250ZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKFNlcnZpY2VDb25uZWN0aW9uRGF0YSkgbXNnLm9iaikuYWN0aXZlU3luY0NvbnRleHQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2cuZChUQUcsICJoYW5kbGVTeW5jSGFuZGxlck1lc3NhZ2U6IE1FU1NBR0VfU0VSVklDRV9ESVNDT05ORUNURUQ6ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgY3VycmVudFN5bmNDb250ZXh0KTsKQEAgLTE5MzIsMTIgKzIwMzksMTUgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1N5bmNTdGlsbEFjdGl2ZShjdXJyZW50U3luY0NvbnRleHQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FuY2VsIHRoZSBzeW5jIGlmIHdlIGhhdmUgYSBzeW5jYWRhcHRlciwgd2hpY2ggbWVhbnMgb25lIGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3V0c3RhbmRpbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFN5bmNDb250ZXh0Lm1TeW5jQWRhcHRlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTeW5jQ29udGV4dC5tU3luY0FkYXB0ZXIgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFN5bmNDb250ZXh0Lm1TeW5jQWRhcHRlci5jYW5jZWxTeW5jKGN1cnJlbnRTeW5jQ29udGV4dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFJlbW90ZUV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCBuZWVkIHRvIHJldHJ5IHRoaXMgaW4gdGhpcyBjYXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudFN5bmNDb250ZXh0Lm1TeW5jU2VydmljZUFkYXB0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFN5bmNDb250ZXh0Lm1TeW5jU2VydmljZUFkYXB0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2FuY2VsU3luYyhjdXJyZW50U3luY0NvbnRleHQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoUmVtb3RlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3QgbmVlZCB0byByZXRyeSB0aGlzIGluIHRoaXMgY2FzZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmV0ZW5kIHRoYXQgdGhlIHN5bmMgZmFpbGVkIHdpdGggYW4gSU9FeGNlcHRpb24sCkBAIC0xOTgyLDkgKzIwOTIsNDYgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc0Rpc3BhdGNoYWJsZShTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludCB0YXJnZXQpIHsKKyAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gaXNMb2dnYWJsZSA9IExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpOworICAgICAgICAgICAgaWYgKHRhcmdldC50YXJnZXRfcHJvdmlkZXIpIHsKKyAgICAgICAgICAgICAgICAvLyBza2lwIHRoZSBzeW5jIGlmIHRoZSBhY2NvdW50IG9mIHRoaXMgb3BlcmF0aW9uIG5vIGxvbmdlciBleGlzdHMKKyAgICAgICAgICAgICAgICBBY2NvdW50QW5kVXNlcltdIGFjY291bnRzID0gbVJ1bm5pbmdBY2NvdW50czsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5zQWNjb3VudEFuZFVzZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50cywgdGFyZ2V0LmFjY291bnQsIHRhcmdldC51c2VySWQpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFtU3luY1N0b3JhZ2VFbmdpbmUuZ2V0TWFzdGVyU3luY0F1dG9tYXRpY2FsbHkodGFyZ2V0LnVzZXJJZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8ICFtU3luY1N0b3JhZ2VFbmdpbmUuZ2V0U3luY0F1dG9tYXRpY2FsbHkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5hY2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQudXNlcklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHJvdmlkZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc0xvZ2dhYmxlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsICIgICAgTm90IHNjaGVkdWxpbmcgcGVyaW9kaWMgb3BlcmF0aW9uOiBzeW5jIHR1cm5lZCBvZmYuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZ2V0SXNTeW5jYWJsZSh0YXJnZXQuYWNjb3VudCwgdGFyZ2V0LnVzZXJJZCwgdGFyZ2V0LnByb3ZpZGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNMb2dnYWJsZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAiICAgIE5vdCBzY2hlZHVsaW5nIHBlcmlvZGljIG9wZXJhdGlvbjogaXNTeW5jYWJsZSA9PSAwLiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRhcmdldC50YXJnZXRfc2VydmljZSkgeworICAgICAgICAgICAgICAgIGlmIChtU3luY1N0b3JhZ2VFbmdpbmUuZ2V0SXNUYXJnZXRTZXJ2aWNlQWN0aXZlKHRhcmdldC5zZXJ2aWNlLCB0YXJnZXQudXNlcklkKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNMb2dnYWJsZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAiICAgTm90IHNjaGVkdWxpbmcgcGVyaW9kaWMgb3BlcmF0aW9uOiBpc0VuYWJsZWQgPT0gMC4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAgICAvKioKICAgICAgICAgICogVHVybiBhbnkgcGVyaW9kaWMgc3luYyBvcGVyYXRpb25zIHRoYXQgYXJlIHJlYWR5IHRvIHJ1biBpbnRvIHBlbmRpbmcgc3luYyBvcGVyYXRpb25zLgotICAgICAgICAgKiBAcmV0dXJuIHRoZSBkZXNpcmVkIHN0YXJ0IHRpbWUgb2YgdGhlIGVhcmxpZXN0IGZ1dHVyZSAgcGVyaW9kaWMgc3luYyBvcGVyYXRpb24sCisgICAgICAgICAqIEByZXR1cm4gdGhlIGRlc2lyZWQgc3RhcnQgdGltZSBvZiB0aGUgZWFybGllc3QgZnV0dXJlIHBlcmlvZGljIHN5bmMgb3BlcmF0aW9uLAogICAgICAgICAgKiBpbiBtaWxsaXNlY29uZHMgc2luY2UgYm9vdAogICAgICAgICAgKi8KICAgICAgICAgcHJpdmF0ZSBsb25nIHNjaGVkdWxlUmVhZHlQZXJpb2RpY1N5bmNzKCkgewpAQCAtMTk5MiwxNCArMjEzOSw3IEBACiAgICAgICAgICAgICBpZiAoaXNMb2dnYWJsZSkgewogICAgICAgICAgICAgICAgIExvZy52KFRBRywgInNjaGVkdWxlUmVhZHlQZXJpb2RpY1N5bmNzIik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBmaW5hbCBib29sZWFuIGJhY2tncm91bmREYXRhVXNhZ2VBbGxvd2VkID0KLSAgICAgICAgICAgICAgICAgICAgZ2V0Q29ubmVjdGl2aXR5TWFuYWdlcigpLmdldEJhY2tncm91bmREYXRhU2V0dGluZygpOwogICAgICAgICAgICAgbG9uZyBlYXJsaWVzdEZ1dHVyZVBvbGxUaW1lID0gTG9uZy5NQVhfVkFMVUU7Ci0gICAgICAgICAgICBpZiAoIWJhY2tncm91bmREYXRhVXNhZ2VBbGxvd2VkKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVhcmxpZXN0RnV0dXJlUG9sbFRpbWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEFjY291bnRBbmRVc2VyW10gYWNjb3VudHMgPSBtUnVubmluZ0FjY291bnRzOwogCiAgICAgICAgICAgICBmaW5hbCBsb25nIG5vd0Fic29sdXRlID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CiAgICAgICAgICAgICBmaW5hbCBsb25nIHNoaWZ0ZWROb3dBYnNvbHV0ZSA9ICgwIDwgbm93QWJzb2x1dGUgLSBtU3luY1JhbmRvbU9mZnNldE1pbGxpcykKQEAgLTIwMTAsNDAgKzIxNTAsMzEgQEAKICAgICAgICAgICAgIGZvciAoUGFpcjxBdXRob3JpdHlJbmZvLCBTeW5jU3RhdHVzSW5mbz4gaW5mbyA6IGluZm9zKSB7CiAgICAgICAgICAgICAgICAgZmluYWwgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHlJbmZvID0gaW5mby5maXJzdDsKICAgICAgICAgICAgICAgICBmaW5hbCBTeW5jU3RhdHVzSW5mbyBzdGF0dXMgPSBpbmZvLnNlY29uZDsKLSAgICAgICAgICAgICAgICBpZiAoVGV4dFV0aWxzLmlzRW1wdHkoYXV0aG9yaXR5SW5mby5hdXRob3JpdHkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIExvZy5lKFRBRywgIkdvdCBhbiBlbXB0eSBwcm92aWRlciBzdHJpbmcuIFNraXBwaW5nOiAiICsgYXV0aG9yaXR5SW5mbyk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAvLyBza2lwIHRoZSBzeW5jIGlmIHRoZSBhY2NvdW50IG9mIHRoaXMgb3BlcmF0aW9uIG5vIGxvbmdlciBleGlzdHMKLSAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5zQWNjb3VudEFuZFVzZXIoCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50cywgYXV0aG9yaXR5SW5mby5hY2NvdW50LCBhdXRob3JpdHlJbmZvLnVzZXJJZCkpIHsKKworICAgICAgICAgICAgICAgIGlmIChUZXh0VXRpbHMuaXNFbXB0eShhdXRob3JpdHlJbmZvLnRhcmdldC5wcm92aWRlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiR290IGFuIGVtcHR5IHByb3ZpZGVyIHN0cmluZy4gU2tpcHBpbmc6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgYXV0aG9yaXR5SW5mby50YXJnZXQucHJvdmlkZXIpOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAoIW1TeW5jU3RvcmFnZUVuZ2luZS5nZXRNYXN0ZXJTeW5jQXV0b21hdGljYWxseShhdXRob3JpdHlJbmZvLnVzZXJJZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHx8ICFtU3luY1N0b3JhZ2VFbmdpbmUuZ2V0U3luY0F1dG9tYXRpY2FsbHkoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eUluZm8uYWNjb3VudCwgYXV0aG9yaXR5SW5mby51c2VySWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eUluZm8uYXV0aG9yaXR5KSkgewotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAoZ2V0SXNTeW5jYWJsZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eUluZm8uYWNjb3VudCwgYXV0aG9yaXR5SW5mby51c2VySWQsIGF1dGhvcml0eUluZm8uYXV0aG9yaXR5KQotICAgICAgICAgICAgICAgICAgICAgICAgPT0gMCkgeworICAgICAgICAgICAgICAgIGlmICghaXNEaXNwYXRjaGFibGUoYXV0aG9yaXR5SW5mby50YXJnZXQpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwLCBOID0gYXV0aG9yaXR5SW5mby5wZXJpb2RpY1N5bmNzLnNpemUoKTsgaSA8IE47IGkrKykgewogICAgICAgICAgICAgICAgICAgICBmaW5hbCBQZXJpb2RpY1N5bmMgc3luYyA9IGF1dGhvcml0eUluZm8ucGVyaW9kaWNTeW5jcy5nZXQoaSk7CiAgICAgICAgICAgICAgICAgICAgIGZpbmFsIEJ1bmRsZSBleHRyYXMgPSBzeW5jLmV4dHJhczsKLSAgICAgICAgICAgICAgICAgICAgZmluYWwgbG9uZyBwZXJpb2RJbk1pbGxpcyA9IHN5bmMucGVyaW9kICogMTAwMDsKLSAgICAgICAgICAgICAgICAgICAgZmluYWwgbG9uZyBmbGV4SW5NaWxsaXMgPSBzeW5jLmZsZXhUaW1lICogMTAwMDsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgTG9uZyBwZXJpb2RJbk1pbGxpcyA9IHN5bmMucGVyaW9kICogMTAwMDsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgTG9uZyBmbGV4SW5NaWxsaXMgPSBzeW5jLmZsZXhUaW1lICogMTAwMDsKICAgICAgICAgICAgICAgICAgICAgLy8gU2tpcCBpZiB0aGUgcGVyaW9kIGlzIGludmFsaWQuCiAgICAgICAgICAgICAgICAgICAgIGlmIChwZXJpb2RJbk1pbGxpcyA8PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAvLyBGaW5kIHdoZW4gdGhpcyBwZXJpb2RpYyBzeW5jIHdhcyBsYXN0IHNjaGVkdWxlZCB0byBydW4uCiAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGxvbmcgbGFzdFBvbGxUaW1lQWJzb2x1dGUgPSBzdGF0dXMuZ2V0UGVyaW9kaWNTeW5jVGltZShpKTsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgbG9uZyBzaGlmdGVkTGFzdFBvbGxUaW1lQWJzb2x1dGUgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwIDwgbGFzdFBvbGxUaW1lQWJzb2x1dGUgLSBtU3luY1JhbmRvbU9mZnNldE1pbGxpcykgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhc3RQb2xsVGltZUFic29sdXRlIC0gbVN5bmNSYW5kb21PZmZzZXRNaWxsaXMpIDogMDsKICAgICAgICAgICAgICAgICAgICAgbG9uZyByZW1haW5pbmdNaWxsaXMKICAgICAgICAgICAgICAgICAgICAgICAgID0gcGVyaW9kSW5NaWxsaXMgLSAoc2hpZnRlZE5vd0Fic29sdXRlICUgcGVyaW9kSW5NaWxsaXMpOwogICAgICAgICAgICAgICAgICAgICBsb25nIHRpbWVTaW5jZUxhc3RSdW5NaWxsaXMKQEAgLTIwNTQsMTIgKzIxODUsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBydW5FYXJseSA9IHJlbWFpbmluZ01pbGxpcyA8PSBmbGV4SW5NaWxsaXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB0aW1lU2luY2VMYXN0UnVuTWlsbGlzID4gcGVyaW9kSW5NaWxsaXMgLSBmbGV4SW5NaWxsaXM7CiAgICAgICAgICAgICAgICAgICAgIGlmIChpc0xvZ2dhYmxlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsICJzeW5jOiAiICsgaSArICIgZm9yICIgKyBhdXRob3JpdHlJbmZvLmF1dGhvcml0eSArICIuIgorICAgICAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAic3luYzogIiArIGkgKyAiIGZvciAiICsgYXV0aG9yaXR5SW5mby50YXJnZXQgKyAiLiIKICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBwZXJpb2Q6ICIgKyAocGVyaW9kSW5NaWxsaXMpCiAgICAgICAgICAgICAgICAgICAgICAgICArICIgZmxleDogIiArIChmbGV4SW5NaWxsaXMpCiAgICAgICAgICAgICAgICAgICAgICAgICArICIgcmVtYWluaW5nOiAiICsgKHJlbWFpbmluZ01pbGxpcykKICAgICAgICAgICAgICAgICAgICAgICAgICsgIiB0aW1lX3NpbmNlX2xhc3Q6ICIgKyB0aW1lU2luY2VMYXN0UnVuTWlsbGlzCiAgICAgICAgICAgICAgICAgICAgICAgICArICIgbGFzdCBwb2xsIGFic29sOiAiICsgbGFzdFBvbGxUaW1lQWJzb2x1dGUKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBsYXN0IHBvbGwgc2hpZmVkOiAiICsgc2hpZnRlZExhc3RQb2xsVGltZUFic29sdXRlCiAgICAgICAgICAgICAgICAgICAgICAgICArICIgc2hpZnRlZCBub3c6ICIgKyBzaGlmdGVkTm93QWJzb2x1dGUKICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBydW5fZWFybHk6ICIgKyBydW5FYXJseSk7CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTIwNzMsNDEgKzIyMDUsNDkgQEAKICAgICAgICAgICAgICAgICAgICAgICogZnV0dXJlLCBzeW5jIG5vdyBhbmQgcmVpbml0aWFsaXplLiBUaGlzIGNhbiBoYXBwZW4gZm9yCiAgICAgICAgICAgICAgICAgICAgICAqIGV4YW1wbGUgaWYgdGhlIHVzZXIgY2hhbmdlZCB0aGUgdGltZSwgc3luY2VkIGFuZCBjaGFuZ2VkCiAgICAgICAgICAgICAgICAgICAgICAqIGJhY2suCi0gICAgICAgICAgICAgICAgICAgICAqIENhc2UgMzogSWYgd2UgZmFpbGVkIHRvIHN5bmMgYXQgdGhlIGxhc3Qgc2NoZWR1bGVkCi0gICAgICAgICAgICAgICAgICAgICAqIHRpbWUuCisgICAgICAgICAgICAgICAgICAgICAqIENhc2UgMzogSWYgd2UgZmFpbGVkIHRvIHN5bmMgYXQgdGhlIGxhc3Qgc2NoZWR1bGVkIHRpbWUuCiAgICAgICAgICAgICAgICAgICAgICAqIENhc2UgNDogVGhpcyBzeW5jIGlzIGNsb3NlIGVub3VnaCB0byB0aGUgdGltZSB0aGF0IHdlIGNhbiBzY2hlZHVsZSBpdC4KICAgICAgICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgICAgIGlmIChydW5FYXJseSAvLyBDYXNlIDQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCByZW1haW5pbmdNaWxsaXMgPT0gcGVyaW9kSW5NaWxsaXMgLy8gQ2FzZSAxCisgICAgICAgICAgICAgICAgICAgIGlmIChyZW1haW5pbmdNaWxsaXMgPT0gcGVyaW9kSW5NaWxsaXMgLy8gQ2FzZSAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgbGFzdFBvbGxUaW1lQWJzb2x1dGUgPiBub3dBYnNvbHV0ZSAvLyBDYXNlIDIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB0aW1lU2luY2VMYXN0UnVuTWlsbGlzID49IHBlcmlvZEluTWlsbGlzKSB7IC8vIENhc2UgMworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRpbWVTaW5jZUxhc3RSdW5NaWxsaXMgPj0gcGVyaW9kSW5NaWxsaXMgLy8gQ2FzZSAzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgcnVuRWFybHkpIHsgLy8gQ2FzZSA0CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTeW5jIG5vdwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBQYWlyPExvbmcsIExvbmc+IGJhY2tvZmYgPSBtU3luY1N0b3JhZ2VFbmdpbmUuZ2V0QmFja29mZigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby5hY2NvdW50LCBhdXRob3JpdHlJbmZvLnVzZXJJZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby5hdXRob3JpdHkpOwotICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgUmVnaXN0ZXJlZFNlcnZpY2VzQ2FjaGUuU2VydmljZUluZm88U3luY0FkYXB0ZXJUeXBlPiBzeW5jQWRhcHRlckluZm87Ci0gICAgICAgICAgICAgICAgICAgICAgICBzeW5jQWRhcHRlckluZm8gPSBtU3luY0FkYXB0ZXJzLmdldFNlcnZpY2VJbmZvKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeW5jQWRhcHRlclR5cGUubmV3S2V5KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eUluZm8uYXV0aG9yaXR5LCBhdXRob3JpdHlJbmZvLmFjY291bnQudHlwZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eUluZm8udXNlcklkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzeW5jQWRhcHRlckluZm8gPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQgdGFyZ2V0ID0gYXV0aG9yaXR5SW5mby50YXJnZXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBQYWlyPExvbmcsIExvbmc+IGJhY2tvZmYgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtU3luY1N0b3JhZ2VFbmdpbmUuZ2V0QmFja29mZih0YXJnZXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgbVN5bmNTdG9yYWdlRW5naW5lLnNldFBlcmlvZGljU3luY1RpbWUoYXV0aG9yaXR5SW5mby5pZGVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby5wZXJpb2RpY1N5bmNzLmdldChpKSwgbm93QWJzb2x1dGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVTeW5jT3BlcmF0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3luY09wZXJhdGlvbihhdXRob3JpdHlJbmZvLmFjY291bnQsIGF1dGhvcml0eUluZm8udXNlcklkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5bmNPcGVyYXRpb24uUkVBU09OX1BFUklPRElDLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLlNPVVJDRV9QRVJJT0RJQywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlJbmZvLmF1dGhvcml0eSwgZXh0cmFzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogcnVudGltZSAqLywgMCAvKiBmbGV4ICovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja29mZiAhPSBudWxsID8gYmFja29mZi5maXJzdCA6IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVN5bmNTdG9yYWdlRW5naW5lLmdldERlbGF5VW50aWxUaW1lKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby5hY2NvdW50LCBhdXRob3JpdHlJbmZvLnVzZXJJZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eUluZm8uYXV0aG9yaXR5KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jQWRhcHRlckluZm8udHlwZS5hbGxvd1BhcmFsbGVsU3luY3MoKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQudGFyZ2V0X3Byb3ZpZGVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgUmVnaXN0ZXJlZFNlcnZpY2VzQ2FjaGUuU2VydmljZUluZm88U3luY0FkYXB0ZXJUeXBlPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jQWRhcHRlckluZm8gPSBtU3luY0FkYXB0ZXJzLmdldFNlcnZpY2VJbmZvKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3luY0FkYXB0ZXJUeXBlLm5ld0tleSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnByb3ZpZGVyLCB0YXJnZXQuYWNjb3VudC50eXBlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC51c2VySWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzeW5jQWRhcHRlckluZm8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVTeW5jT3BlcmF0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN5bmNPcGVyYXRpb24odGFyZ2V0LmFjY291bnQsIHRhcmdldC51c2VySWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5bmNPcGVyYXRpb24uUkVBU09OX1BFUklPRElDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeW5jU3RvcmFnZUVuZ2luZS5TT1VSQ0VfUEVSSU9ESUMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wcm92aWRlciwgZXh0cmFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIC8qIHJ1bnRpbWUgKi8sIDAgLyogZmxleCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja29mZiAhPSBudWxsID8gYmFja29mZi5maXJzdCA6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TeW5jU3RvcmFnZUVuZ2luZS5nZXREZWxheVVudGlsVGltZSh0YXJnZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jQWRhcHRlckluZm8udHlwZS5hbGxvd1BhcmFsbGVsU3luY3MoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0YXJnZXQudGFyZ2V0X3NlcnZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZVN5bmNPcGVyYXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3luY09wZXJhdGlvbih0YXJnZXQuc2VydmljZSwgdGFyZ2V0LnVzZXJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3luY09wZXJhdGlvbi5SRUFTT05fUEVSSU9ESUMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLlNPVVJDRV9QRVJJT0RJQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIC8qIHJ1bnRpbWUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogZmxleCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja29mZiAhPSBudWxsID8gYmFja29mZi5maXJzdCA6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TeW5jU3RvcmFnZUVuZ2luZS5nZXREZWxheVVudGlsVGltZSh0YXJnZXQpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSB3aGVuIHRoaXMgcGVyaW9kaWMgc3luYyBzaG91bGQgbmV4dCBydW4uCiAgICAgICAgICAgICAgICAgICAgIGxvbmcgbmV4dFBvbGxUaW1lQWJzb2x1dGU7CkBAIC0yMTU0LDggKzIyOTQsNyBAQAogCiAgICAgICAgICAgICAvLyBJZiB0aGUgYWNjb3VudHMgYXJlbid0IGtub3duIHlldCB0aGVuIHdlIGFyZW4ndCByZWFkeSB0byBydW4uIFdlIHdpbGwgYmUga2lja2VkCiAgICAgICAgICAgICAvLyB3aGVuIHRoZSBhY2NvdW50IGxvb2t1cCByZXF1ZXN0IGRvZXMgY29tcGxldGUuCi0gICAgICAgICAgICBBY2NvdW50QW5kVXNlcltdIGFjY291bnRzID0gbVJ1bm5pbmdBY2NvdW50czsKLSAgICAgICAgICAgIGlmIChhY2NvdW50cyA9PSBJTklUSUFMX0FDQ09VTlRTX0FSUkFZKSB7CisgICAgICAgICAgICBpZiAobVJ1bm5pbmdBY2NvdW50cyA9PSBJTklUSUFMX0FDQ09VTlRTX0FSUkFZKSB7CiAgICAgICAgICAgICAgICAgaWYgKGlzTG9nZ2FibGUpIHsKICAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAibWF5YmVTdGFydE5leHRTeW5jOiBhY2NvdW50cyBub3Qga25vd24sIHNraXBwaW5nIik7CiAgICAgICAgICAgICAgICAgfQpAQCAtMjE2NSw5ICsyMzA0LDYgQEAKICAgICAgICAgICAgIC8vIE90aGVyd2lzZSBjb25zdW1lIFN5bmNPcGVyYXRpb25zIGZyb20gdGhlIGhlYWQgb2YgdGhlIFN5bmNRdWV1ZSB1bnRpbCBvbmUgaXMKICAgICAgICAgICAgIC8vIGZvdW5kIHRoYXQgaXMgcnVubmFibGUgKG5vdCBkaXNhYmxlZCwgZXRjKS4gSWYgdGhhdCBvbmUgaXMgcmVhZHkgdG8gcnVuIHRoZW4KICAgICAgICAgICAgIC8vIHN0YXJ0IGl0LCBvdGhlcndpc2UganVzdCBnZXQgb3V0LgotICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBiYWNrZ3JvdW5kRGF0YVVzYWdlQWxsb3dlZCA9Ci0gICAgICAgICAgICAgICAgICAgIGdldENvbm5lY3Rpdml0eU1hbmFnZXIoKS5nZXRCYWNrZ3JvdW5kRGF0YVNldHRpbmcoKTsKLQogICAgICAgICAgICAgZmluYWwgbG9uZyBub3cgPSBTeXN0ZW1DbG9jay5lbGFwc2VkUmVhbHRpbWUoKTsKIAogICAgICAgICAgICAgLy8gd2lsbCBiZSBzZXQgdG8gdGhlIG5leHQgdGltZSB0aGF0IGEgc3luYyBzaG91bGQgYmUgY29uc2lkZXJlZCBmb3IgcnVubmluZwpAQCAtMjE4OSw0MCArMjMyNSwyMyBAQAogICAgICAgICAgICAgICAgIHdoaWxlIChvcGVyYXRpb25JdGVyYXRvci5oYXNOZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3luY09wZXJhdGlvbiBvcCA9IG9wZXJhdGlvbkl0ZXJhdG9yLm5leHQoKTsKIAotICAgICAgICAgICAgICAgICAgICAvLyBEcm9wIHRoZSBzeW5jIGlmIHRoZSBhY2NvdW50IG9mIHRoaXMgb3BlcmF0aW9uIG5vIGxvbmdlciBleGlzdHMuCi0gICAgICAgICAgICAgICAgICAgIGlmICghY29udGFpbnNBY2NvdW50QW5kVXNlcihhY2NvdW50cywgb3AuYWNjb3VudCwgb3AudXNlcklkKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uSXRlcmF0b3IucmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtU3luY1N0b3JhZ2VFbmdpbmUuZGVsZXRlRnJvbVBlbmRpbmcob3AucGVuZGluZ09wZXJhdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNMb2dnYWJsZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgIiAgICBEcm9wcGluZyBzeW5jIG9wZXJhdGlvbjogYWNjb3VudCBkb2Vzbid0IGV4aXN0LiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAvLyBEcm9wIHRoaXMgc3luYyByZXF1ZXN0IGlmIGl0IGlzbid0IHN5bmNhYmxlLgotICAgICAgICAgICAgICAgICAgICBpbnQgc3luY2FibGVTdGF0ZSA9IGdldElzU3luY2FibGUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3AuYWNjb3VudCwgb3AudXNlcklkLCBvcC5hdXRob3JpdHkpOwotICAgICAgICAgICAgICAgICAgICBpZiAoc3luY2FibGVTdGF0ZSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25JdGVyYXRvci5yZW1vdmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1TeW5jU3RvcmFnZUVuZ2luZS5kZWxldGVGcm9tUGVuZGluZyhvcC5wZW5kaW5nT3BlcmF0aW9uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0xvZ2dhYmxlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAiICAgIERyb3BwaW5nIHN5bmMgb3BlcmF0aW9uOiBpc1N5bmNhYmxlID09IDAuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIG5vdCBydW5uaW5nLCBkcm9wIHRoZSByZXF1ZXN0LgotICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGl2aXR5TWFuYWdlci5pc1VzZXJSdW5uaW5nKG9wLnVzZXJJZCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIFVzZXJJbmZvIHVzZXJJbmZvID0gbVVzZXJNYW5hZ2VyLmdldFVzZXJJbmZvKG9wLnVzZXJJZCk7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIG5vdCBydW5uaW5nLCBza2lwIHRoZSByZXF1ZXN0LgorICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGl2aXR5TWFuYWdlci5pc1VzZXJSdW5uaW5nKG9wLnRhcmdldC51c2VySWQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBVc2VySW5mbyB1c2VySW5mbyA9IG1Vc2VyTWFuYWdlci5nZXRVc2VySW5mbyhvcC50YXJnZXQudXNlcklkKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1c2VySW5mbyA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlZFVzZXJzLmFkZChvcC51c2VySWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZWRVc2Vycy5hZGQob3AudGFyZ2V0LnVzZXJJZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNMb2dnYWJsZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgIiAgICBEcm9wcGluZyBzeW5jIG9wZXJhdGlvbjogdXNlciBub3QgcnVubmluZy4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsICIgICAgRHJvcHBpbmcgYWxsIHN5bmMgb3BlcmF0aW9ucyBmb3IgKyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIG9wLnRhcmdldC51c2VySWQgKyAiOiB1c2VyIG5vdCBydW5uaW5nLiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgIH0KLQorICAgICAgICAgICAgICAgICAgICBpZiAoIWlzT3BlcmF0aW9uVmFsaWRMb2NrZWQob3ApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25JdGVyYXRvci5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1TeW5jU3RvcmFnZUVuZ2luZS5kZWxldGVGcm9tUGVuZGluZyhvcC5wZW5kaW5nT3BlcmF0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBuZXh0IHJ1biB0aW1lIGlzIGluIHRoZSBmdXR1cmUsIGV2ZW4gZ2l2ZW4gdGhlIGZsZXhpYmxlIHNjaGVkdWxpbmcsCiAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB0aGUgdGltZS4KICAgICAgICAgICAgICAgICAgICAgaWYgKG9wLmVmZmVjdGl2ZVJ1blRpbWUgLSBvcC5mbGV4VGltZSA+IG5vdykgewpAQCAtMjIzMCw1MSArMjM0OSwxNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRSZWFkeVRvUnVuVGltZSA9IG9wLmVmZmVjdGl2ZVJ1blRpbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNMb2dnYWJsZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgIiAgICBEcm9wcGluZyBzeW5jIG9wZXJhdGlvbjogU3luYyB0b28gZmFyIGluIGZ1dHVyZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsICIgICAgTm90IHJ1bm5pbmcgc3luYyBvcGVyYXRpb246IFN5bmMgdG9vIGZhciBpbiBmdXR1cmUuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiZWZmZWN0aXZlOiAiICsgb3AuZWZmZWN0aXZlUnVuVGltZSArICIgZmxleDogIiArIG9wLmZsZXhUaW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgbm93OiAiICsgbm93KTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIG9wIGlzbid0IGFsbG93ZWQgb24gbWV0ZXJlZCBuZXR3b3JrcyBhbmQgd2UncmUgb24gb25lLCBkcm9wIGl0LgotICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0Q29ubmVjdGl2aXR5TWFuYWdlcigpLmlzQWN0aXZlTmV0d29ya01ldGVyZWQoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIG9wLmlzTWV0ZXJlZERpc2FsbG93ZWQoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uSXRlcmF0b3IucmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtU3luY1N0b3JhZ2VFbmdpbmUuZGVsZXRlRnJvbVBlbmRpbmcob3AucGVuZGluZ09wZXJhdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGNoYW5nZSB0aGlzIGJlaGF2aW91ciBmb3Igbm9uLXJlZ2lzdGVyZWQgc3luY3MuCi0gICAgICAgICAgICAgICAgICAgIGZpbmFsIFJlZ2lzdGVyZWRTZXJ2aWNlc0NhY2hlLlNlcnZpY2VJbmZvPFN5bmNBZGFwdGVyVHlwZT4gc3luY0FkYXB0ZXJJbmZvOwotICAgICAgICAgICAgICAgICAgICBzeW5jQWRhcHRlckluZm8gPSBtU3luY0FkYXB0ZXJzLmdldFNlcnZpY2VJbmZvKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5bmNBZGFwdGVyVHlwZS5uZXdLZXkob3AuYXV0aG9yaXR5LCBvcC5hY2NvdW50LnR5cGUpLCBvcC51c2VySWQpOwotCi0gICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgcHJvY2VlZCBpZiBuZXR3b3JrIGlzIGNvbm5lY3RlZCBmb3IgcmVxdWVzdGluZyBVSUQKLSAgICAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiB1aWROZXR3b3JrQ29ubmVjdGVkOwotICAgICAgICAgICAgICAgICAgICBpZiAoc3luY0FkYXB0ZXJJbmZvICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIE5ldHdvcmtJbmZvIG5ldHdvcmtJbmZvID0gZ2V0Q29ubmVjdGl2aXR5TWFuYWdlcigpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRBY3RpdmVOZXR3b3JrSW5mb0ZvclVpZChzeW5jQWRhcHRlckluZm8udWlkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpZE5ldHdvcmtDb25uZWN0ZWQgPSBuZXR3b3JrSW5mbyAhPSBudWxsICYmIG5ldHdvcmtJbmZvLmlzQ29ubmVjdGVkKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1aWROZXR3b3JrQ29ubmVjdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAvLyBza2lwIHRoZSBzeW5jIGlmIGl0IGlzbid0IG1hbnVhbCwgYW5kIGF1dG8gc3luYyBvcgotICAgICAgICAgICAgICAgICAgICAvLyBiYWNrZ3JvdW5kIGRhdGEgdXNhZ2UgaXMgZGlzYWJsZWQgb3IgbmV0d29yayBpcwotICAgICAgICAgICAgICAgICAgICAvLyBkaXNjb25uZWN0ZWQgZm9yIHRoZSB0YXJnZXQgVUlELgotICAgICAgICAgICAgICAgICAgICBpZiAoIW9wLmV4dHJhcy5nZXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19JR05PUkVfU0VUVElOR1MsIGZhbHNlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIChzeW5jYWJsZVN0YXRlID4gMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoIW1TeW5jU3RvcmFnZUVuZ2luZS5nZXRNYXN0ZXJTeW5jQXV0b21hdGljYWxseShvcC51c2VySWQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICFiYWNrZ3JvdW5kRGF0YVVzYWdlQWxsb3dlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAhdWlkTmV0d29ya0Nvbm5lY3RlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAhbVN5bmNTdG9yYWdlRW5naW5lLmdldFN5bmNBdXRvbWF0aWNhbGx5KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3AuYWNjb3VudCwgb3AudXNlcklkLCBvcC5hdXRob3JpdHkpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uSXRlcmF0b3IucmVtb3ZlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtU3luY1N0b3JhZ2VFbmdpbmUuZGVsZXRlRnJvbVBlbmRpbmcob3AucGVuZGluZ09wZXJhdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotCisgICAgICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIHN5bmMgdG8gYmUgcnVuLgogICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25zLmFkZChvcCk7CiAgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgZm9yIChJbnRlZ2VyIHVzZXIgOiByZW1vdmVkVXNlcnMpIHsKICAgICAgICAgICAgICAgICAgICAgLy8gaWYgaXQncyBzdGlsbCByZW1vdmVkCiAgICAgICAgICAgICAgICAgICAgIGlmIChtVXNlck1hbmFnZXIuZ2V0VXNlckluZm8odXNlcikgPT0gbnVsbCkgewpAQCAtMjMxNiwxMyArMjQwMCw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVPcC5hY2NvdW50LnR5cGUuZXF1YWxzKGNhbmRpZGF0ZS5hY2NvdW50LnR5cGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgYWN0aXZlT3AuYXV0aG9yaXR5LmVxdWFscyhjYW5kaWRhdGUuYXV0aG9yaXR5KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGFjdGl2ZU9wLnVzZXJJZCA9PSBjYW5kaWRhdGUudXNlcklkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKCFhY3RpdmVPcC5hbGxvd1BhcmFsbGVsU3luY3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgYWN0aXZlT3AuYWNjb3VudC5uYW1lLmVxdWFscyhjYW5kaWRhdGUuYWNjb3VudC5uYW1lKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZU9wLmlzQ29uZmxpY3QoY2FuZGlkYXRlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgY29uZmxpY3QgPSBhY3RpdmVTeW5jQ29udGV4dDsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvbid0IGJyZWFrIG91dCBzaW5jZSB3ZSB3YW50IHRvIGRvIGEgZnVsbCBjb3VudCBvZiB0aGUgdmFyaWV0aWVzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkb24ndCBicmVhayBvdXQgc2luY2Ugd2Ugd2FudCB0byBkbyBhIGZ1bGwgY291bnQgb2YgdGhlIHZhcmlldGllcy4KICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYW5kaWRhdGVJc0luaXRpYWxpemF0aW9uID09IGFjdGl2ZU9wLmlzSW5pdGlhbGl6YXRpb24oKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBhY3RpdmVTeW5jQ29udGV4dC5tU3RhcnRUaW1lICsgTUFYX1RJTUVfUEVSX1NZTkMgPCBub3cpIHsKQEAgLTIzNzIsOCArMjQ1Miw4IEBACiAgICAgICAgICAgICAgICAgICAgIC8vIGlzIG51bGwuIFJlc2NoZWR1bGUgdGhlIGFjdGl2ZSBzeW5jIGFuZCBzdGFydCB0aGUgY2FuZGlkYXRlLgogICAgICAgICAgICAgICAgICAgICB0b1Jlc2NoZWR1bGUgPSBvbGRlc3ROb25FeHBlZGl0ZWRSZWd1bGFyOwogICAgICAgICAgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgImNhbmNlbGluZyBhbmQgcmVzY2hlZHVsaW5nIHN5bmMgc2luY2UgYW4gZXhwZWRpdGVkIGlzIHJlYWR5IHRvIHJ1biwgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIG9sZGVzdE5vbkV4cGVkaXRlZFJlZ3VsYXIpOworICAgICAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAiY2FuY2VsaW5nIGFuZCByZXNjaGVkdWxpbmcgc3luYyBzaW5jZSBhbiBleHBlZGl0ZWQgaXMgcmVhZHkgdG8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBydW4sICIgKyBvbGRlc3ROb25FeHBlZGl0ZWRSZWd1bGFyKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9uZ1J1bm5pbmcgIT0gbnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGNhbmRpZGF0ZUlzSW5pdGlhbGl6YXRpb24KQEAgLTI0MDIsNyArMjQ4MiwxMTQgQEAKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmV0dXJuIG5leHRSZWFkeVRvUnVuVGltZTsKLSAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERldGVybWluZSBpZiBhIHN5bmMgaXMgbm8gbG9uZ2VyIHZhbGlkIGFuZCBzaG91bGQgYmUgZHJvcHBlZCBmcm9tIHRoZSBzeW5jIHF1ZXVlIGFuZCBpdHMKKyAgICAgICAgICogcGVuZGluZyBvcCBkZWxldGVkLgorICAgICAgICAgKiBAcGFyYW0gb3Agb3BlcmF0aW9uIGZvciB3aGljaCB0aGUgc3luYyBpcyB0byBiZSBzY2hlZHVsZWQuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNPcGVyYXRpb25WYWxpZExvY2tlZChTeW5jT3BlcmF0aW9uIG9wKSB7CisgICAgICAgICAgICBmaW5hbCBib29sZWFuIGlzTG9nZ2FibGUgPSBMb2cuaXNMb2dnYWJsZShUQUcsIExvZy5WRVJCT1NFKTsKKyAgICAgICAgICAgIGludCB0YXJnZXRVaWQ7CisgICAgICAgICAgICBpbnQgc3RhdGU7CisgICAgICAgICAgICBmaW5hbCBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludCB0YXJnZXQgPSBvcC50YXJnZXQ7CisgICAgICAgICAgICBib29sZWFuIHN5bmNFbmFibGVkID0gbVN5bmNTdG9yYWdlRW5naW5lLmdldE1hc3RlclN5bmNBdXRvbWF0aWNhbGx5KHRhcmdldC51c2VySWQpOworICAgICAgICAgICAgaWYgKHRhcmdldC50YXJnZXRfcHJvdmlkZXIpIHsKKyAgICAgICAgICAgICAgICAvLyBEcm9wIHRoZSBzeW5jIGlmIHRoZSBhY2NvdW50IG9mIHRoaXMgb3BlcmF0aW9uIG5vIGxvbmdlciBleGlzdHMuCisgICAgICAgICAgICAgICAgQWNjb3VudEFuZFVzZXJbXSBhY2NvdW50cyA9IG1SdW5uaW5nQWNjb3VudHM7CisgICAgICAgICAgICAgICAgaWYgKCFjb250YWluc0FjY291bnRBbmRVc2VyKGFjY291bnRzLCB0YXJnZXQuYWNjb3VudCwgdGFyZ2V0LnVzZXJJZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTG9nZ2FibGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgIiAgICBEcm9wcGluZyBzeW5jIG9wZXJhdGlvbjogYWNjb3VudCBkb2Vzbid0IGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gRHJvcCB0aGlzIHN5bmMgcmVxdWVzdCBpZiBpdCBpc24ndCBzeW5jYWJsZS4KKyAgICAgICAgICAgICAgICBzdGF0ZSA9IGdldElzU3luY2FibGUodGFyZ2V0LmFjY291bnQsIHRhcmdldC51c2VySWQsIHRhcmdldC5wcm92aWRlcik7CisgICAgICAgICAgICAgICAgaWYgKHN0YXRlID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTG9nZ2FibGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgIiAgICBEcm9wcGluZyBzeW5jIG9wZXJhdGlvbjogaXNTeW5jYWJsZSA9PSAwLiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3luY0VuYWJsZWQgPSBzeW5jRW5hYmxlZCAmJiBtU3luY1N0b3JhZ2VFbmdpbmUuZ2V0U3luY0F1dG9tYXRpY2FsbHkoCisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYWNjb3VudCwgdGFyZ2V0LnVzZXJJZCwgdGFyZ2V0LnByb3ZpZGVyKTsKKworICAgICAgICAgICAgICAgIGZpbmFsIFJlZ2lzdGVyZWRTZXJ2aWNlc0NhY2hlLlNlcnZpY2VJbmZvPFN5bmNBZGFwdGVyVHlwZT4gc3luY0FkYXB0ZXJJbmZvOworICAgICAgICAgICAgICAgIHN5bmNBZGFwdGVySW5mbyA9IG1TeW5jQWRhcHRlcnMuZ2V0U2VydmljZUluZm8oCisgICAgICAgICAgICAgICAgICAgICAgICBTeW5jQWRhcHRlclR5cGUubmV3S2V5KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHJvdmlkZXIsIHRhcmdldC5hY2NvdW50LnR5cGUpLCB0YXJnZXQudXNlcklkKTsKKyAgICAgICAgICAgICAgICBpZiAoc3luY0FkYXB0ZXJJbmZvICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VWlkID0gc3luY0FkYXB0ZXJJbmZvLnVpZDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNMb2dnYWJsZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAiICAgIERyb3BwaW5nIHN5bmMgb3BlcmF0aW9uOiBObyBzeW5jIGFkYXB0ZXIgcmVnaXN0ZXJlZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiZm9yOiAiICsgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICh0YXJnZXQudGFyZ2V0X3NlcnZpY2UpIHsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IG1TeW5jU3RvcmFnZUVuZ2luZS5nZXRJc1RhcmdldFNlcnZpY2VBY3RpdmUodGFyZ2V0LnNlcnZpY2UsIHRhcmdldC51c2VySWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAxIDogMDsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGUgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBDaGFuZ2UgdGhpcyB0byBub3QgZHJvcCBkaXNhYmxlZCBzeW5jcyAtIGtlZXAgdGhlbSBpbiB0aGUgcGVuZGluZyBxdWV1ZS4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTG9nZ2FibGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgIiAgICBEcm9wcGluZyBzeW5jIG9wZXJhdGlvbjogaXNBY3RpdmUgPT0gMC4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFVpZCA9IG1Db250ZXh0LmdldFBhY2thZ2VNYW5hZ2VyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmljZUluZm8odGFyZ2V0LnNlcnZpY2UsIDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGxpY2F0aW9uSW5mbworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC51aWQ7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUGFja2FnZU1hbmFnZXIuTmFtZU5vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTG9nZ2FibGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgIiAgICBEcm9wcGluZyBzeW5jIG9wZXJhdGlvbjogTm8gc2VydmljZSByZWdpc3RlcmVkIGZvcjogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHRhcmdldC5zZXJ2aWNlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJVbmtub3duIHRhcmdldCBmb3IgU3luYyBPcDogIiArIHRhcmdldCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBXZSBpZ25vcmUgc3lzdGVtIHNldHRpbmdzIHRoYXQgc3BlY2lmeSB0aGUgc3luYyBpcyBpbnZhbGlkIGlmOgorICAgICAgICAgICAgLy8gMSkgSXQncyBtYW51YWwgLSB3ZSB0cnkgaXQgYW55d2F5LiBXaGVuL2lmIGl0IGZhaWxzIGl0IHdpbGwgYmUgcmVzY2hlZHVsZWQuCisgICAgICAgICAgICAvLyAgICAgIG9yCisgICAgICAgICAgICAvLyAyKSBpdCdzIGFuIGluaXRpYWxpc2F0aW9uIHN5bmMgLSB3ZSBqdXN0IG5lZWQgdG8gY29ubmVjdCB0byBpdC4KKyAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gaWdub3JlU3lzdGVtQ29uZmlndXJhdGlvbiA9CisgICAgICAgICAgICAgICAgICAgIG9wLmV4dHJhcy5nZXRCb29sZWFuKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19JR05PUkVfU0VUVElOR1MsIGZhbHNlKQorICAgICAgICAgICAgICAgICAgICB8fCAoc3RhdGUgPCAwKTsKKworICAgICAgICAgICAgLy8gU3luYyBub3QgZW5hYmxlZC4KKyAgICAgICAgICAgIGlmICghc3luY0VuYWJsZWQgJiYgIWlnbm9yZVN5c3RlbUNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNMb2dnYWJsZSkgeworICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsICIgICAgRHJvcHBpbmcgc3luYyBvcGVyYXRpb246IGRpc2FsbG93ZWQgYnkgc2V0dGluZ3MvbmV0d29yay4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gTmV0d29yayBkb3duLgorICAgICAgICAgICAgZmluYWwgTmV0d29ya0luZm8gbmV0d29ya0luZm8gPSBnZXRDb25uZWN0aXZpdHlNYW5hZ2VyKCkKKyAgICAgICAgICAgICAgICAgICAgLmdldEFjdGl2ZU5ldHdvcmtJbmZvRm9yVWlkKHRhcmdldFVpZCk7CisgICAgICAgICAgICBmaW5hbCBib29sZWFuIHVpZE5ldHdvcmtDb25uZWN0ZWQgPSBuZXR3b3JrSW5mbyAhPSBudWxsICYmIG5ldHdvcmtJbmZvLmlzQ29ubmVjdGVkKCk7CisgICAgICAgICAgICBpZiAoIXVpZE5ldHdvcmtDb25uZWN0ZWQgJiYgIWlnbm9yZVN5c3RlbUNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNMb2dnYWJsZSkgeworICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsICIgICAgRHJvcHBpbmcgc3luYyBvcGVyYXRpb246IGRpc2FsbG93ZWQgYnkgc2V0dGluZ3MvbmV0d29yay4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gTWV0ZXJlZCBuZXR3b3JrLgorICAgICAgICAgICAgaWYgKG9wLmlzTm90QWxsb3dlZE9uTWV0ZXJlZCgpICYmIGdldENvbm5lY3Rpdml0eU1hbmFnZXIoKS5pc0FjdGl2ZU5ldHdvcmtNZXRlcmVkKCkKKyAgICAgICAgICAgICAgICAgICAgJiYgIWlnbm9yZVN5c3RlbUNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNMb2dnYWJsZSkgeworICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsICIgICAgRHJvcHBpbmcgc3luYyBvcGVyYXRpb246IG5vdCBhbGxvd2VkIG9uIG1ldGVyZWQgbmV0d29yay4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KIAogICAgICAgICBwcml2YXRlIGJvb2xlYW4gZGlzcGF0Y2hTeW5jT3BlcmF0aW9uKFN5bmNPcGVyYXRpb24gb3ApIHsKICAgICAgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUcsIExvZy5WRVJCT1NFKSkgewpAQCAtMjQxMiwyNyArMjU5OSw0OCBAQAogICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsIHN5bmNDb250ZXh0LnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gY29ubmVjdCB0byB0aGUgc3luYyBhZGFwdGVyCi0gICAgICAgICAgICBTeW5jQWRhcHRlclR5cGUgc3luY0FkYXB0ZXJUeXBlID0gU3luY0FkYXB0ZXJUeXBlLm5ld0tleShvcC5hdXRob3JpdHksIG9wLmFjY291bnQudHlwZSk7Ci0gICAgICAgICAgICBmaW5hbCBSZWdpc3RlcmVkU2VydmljZXNDYWNoZS5TZXJ2aWNlSW5mbzxTeW5jQWRhcHRlclR5cGU+IHN5bmNBZGFwdGVySW5mbzsKLSAgICAgICAgICAgIHN5bmNBZGFwdGVySW5mbyA9IG1TeW5jQWRhcHRlcnMuZ2V0U2VydmljZUluZm8oc3luY0FkYXB0ZXJUeXBlLCBvcC51c2VySWQpOwotICAgICAgICAgICAgaWYgKHN5bmNBZGFwdGVySW5mbyA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgTG9nLmQoVEFHLCAiY2FuJ3QgZmluZCBhIHN5bmMgYWRhcHRlciBmb3IgIiArIHN5bmNBZGFwdGVyVHlwZQotICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCByZW1vdmluZyBzZXR0aW5ncyBmb3IgaXQiKTsKLSAgICAgICAgICAgICAgICBtU3luY1N0b3JhZ2VFbmdpbmUucmVtb3ZlQXV0aG9yaXR5KG9wLmFjY291bnQsIG9wLnVzZXJJZCwgb3AuYXV0aG9yaXR5KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAvLyBDb25uZWN0IHRvIHRoZSBzeW5jIGFkYXB0ZXIuCisgICAgICAgICAgICBpbnQgdGFyZ2V0VWlkOworICAgICAgICAgICAgQ29tcG9uZW50TmFtZSB0YXJnZXRDb21wb25lbnQ7CisgICAgICAgICAgICBmaW5hbCBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludCBpbmZvID0gb3AudGFyZ2V0OworICAgICAgICAgICAgaWYgKGluZm8udGFyZ2V0X3Byb3ZpZGVyKSB7CisgICAgICAgICAgICAgICAgU3luY0FkYXB0ZXJUeXBlIHN5bmNBZGFwdGVyVHlwZSA9CisgICAgICAgICAgICAgICAgICAgICAgICBTeW5jQWRhcHRlclR5cGUubmV3S2V5KGluZm8ucHJvdmlkZXIsIGluZm8uYWNjb3VudC50eXBlKTsKKyAgICAgICAgICAgICAgICBmaW5hbCBSZWdpc3RlcmVkU2VydmljZXNDYWNoZS5TZXJ2aWNlSW5mbzxTeW5jQWRhcHRlclR5cGU+IHN5bmNBZGFwdGVySW5mbzsKKyAgICAgICAgICAgICAgICBzeW5jQWRhcHRlckluZm8gPSBtU3luY0FkYXB0ZXJzLmdldFNlcnZpY2VJbmZvKHN5bmNBZGFwdGVyVHlwZSwgaW5mby51c2VySWQpOworICAgICAgICAgICAgICAgIGlmIChzeW5jQWRhcHRlckluZm8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBMb2cuZChUQUcsICJjYW4ndCBmaW5kIGEgc3luYyBhZGFwdGVyIGZvciAiICsgc3luY0FkYXB0ZXJUeXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCByZW1vdmluZyBzZXR0aW5ncyBmb3IgaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgbVN5bmNTdG9yYWdlRW5naW5lLnJlbW92ZUF1dGhvcml0eShpbmZvKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0YXJnZXRVaWQgPSBzeW5jQWRhcHRlckluZm8udWlkOworICAgICAgICAgICAgICAgIHRhcmdldENvbXBvbmVudCA9IHN5bmNBZGFwdGVySW5mby5jb21wb25lbnROYW1lOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBUT0RPOiBTdG9yZSB0aGUgdWlkIG9mIHRoZSBzZXJ2aWNlIGFzIHBhcnQgb2YgdGhlIGF1dGhvcml0eSBpbmZvIGluIG9yZGVyIHRvCisgICAgICAgICAgICAgICAgLy8gYXZvaWQgdGhpcyBjYWxsPworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFVpZCA9IG1Db250ZXh0LmdldFBhY2thZ2VNYW5hZ2VyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmljZUluZm8oaW5mby5zZXJ2aWNlLCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBsaWNhdGlvbkluZm8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAudWlkOworICAgICAgICAgICAgICAgICAgICB0YXJnZXRDb21wb25lbnQgPSBpbmZvLnNlcnZpY2U7CisgICAgICAgICAgICAgICAgfSBjYXRjaChQYWNrYWdlTWFuYWdlci5OYW1lTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBMb2cuZChUQUcsICJDYW4ndCBmaW5kIGEgc2VydmljZSBmb3IgIiArIGluZm8uc2VydmljZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgcmVtb3Zpbmcgc2V0dGluZ3MgZm9yIGl0Iik7CisgICAgICAgICAgICAgICAgICAgIG1TeW5jU3RvcmFnZUVuZ2luZS5yZW1vdmVBdXRob3JpdHkoaW5mbyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIEFjdGl2ZVN5bmNDb250ZXh0IGFjdGl2ZVN5bmNDb250ZXh0ID0KLSAgICAgICAgICAgICAgICAgICAgbmV3IEFjdGl2ZVN5bmNDb250ZXh0KG9wLCBpbnNlcnRTdGFydFN5bmNFdmVudChvcCksIHN5bmNBZGFwdGVySW5mby51aWQpOworICAgICAgICAgICAgICAgICAgICBuZXcgQWN0aXZlU3luY0NvbnRleHQob3AsIGluc2VydFN0YXJ0U3luY0V2ZW50KG9wKSwgdGFyZ2V0VWlkKTsKICAgICAgICAgICAgIGFjdGl2ZVN5bmNDb250ZXh0Lm1TeW5jSW5mbyA9IG1TeW5jU3RvcmFnZUVuZ2luZS5hZGRBY3RpdmVTeW5jKGFjdGl2ZVN5bmNDb250ZXh0KTsKICAgICAgICAgICAgIG1BY3RpdmVTeW5jQ29udGV4dHMuYWRkKGFjdGl2ZVN5bmNDb250ZXh0KTsKICAgICAgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUcsIExvZy5WRVJCT1NFKSkgewogICAgICAgICAgICAgICAgIExvZy52KFRBRywgImRpc3BhdGNoU3luY09wZXJhdGlvbjogc3RhcnRpbmcgIiArIGFjdGl2ZVN5bmNDb250ZXh0KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghYWN0aXZlU3luY0NvbnRleHQuYmluZFRvU3luY0FkYXB0ZXIoc3luY0FkYXB0ZXJJbmZvLCBvcC51c2VySWQpKSB7Ci0gICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiQmluZCBhdHRlbXB0IGZhaWxlZCB0byAiICsgc3luY0FkYXB0ZXJJbmZvKTsKKyAgICAgICAgICAgIGlmICghYWN0aXZlU3luY0NvbnRleHQuYmluZFRvU3luY0FkYXB0ZXIodGFyZ2V0Q29tcG9uZW50LCBpbmZvLnVzZXJJZCkpIHsKKyAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJCaW5kIGF0dGVtcHQgZmFpbGVkIC0gdGFyZ2V0OiAiICsgdGFyZ2V0Q29tcG9uZW50KTsKICAgICAgICAgICAgICAgICBjbG9zZUFjdGl2ZVN5bmNDb250ZXh0KGFjdGl2ZVN5bmNDb250ZXh0KTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CkBAIC0yNDQwLDQ3ICsyNjQ4LDU0IEBACiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIHByaXZhdGUgdm9pZCBydW5Cb3VuZFRvU3luY0FkYXB0ZXIoZmluYWwgQWN0aXZlU3luY0NvbnRleHQgYWN0aXZlU3luY0NvbnRleHQsCi0gICAgICAgICAgICAgIElTeW5jQWRhcHRlciBzeW5jQWRhcHRlcikgewotICAgICAgICAgICAgYWN0aXZlU3luY0NvbnRleHQubVN5bmNBZGFwdGVyID0gc3luY0FkYXB0ZXI7CisgICAgICAgIHByaXZhdGUgdm9pZCBydW5Cb3VuZFRvQWRhcHRlcihmaW5hbCBBY3RpdmVTeW5jQ29udGV4dCBhY3RpdmVTeW5jQ29udGV4dCwKKyAgICAgICAgICAgICAgICBJQmluZGVyIHN5bmNBZGFwdGVyKSB7CiAgICAgICAgICAgICBmaW5hbCBTeW5jT3BlcmF0aW9uIHN5bmNPcGVyYXRpb24gPSBhY3RpdmVTeW5jQ29udGV4dC5tU3luY09wZXJhdGlvbjsKICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgYWN0aXZlU3luY0NvbnRleHQubUlzTGlua2VkVG9EZWF0aCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgc3luY0FkYXB0ZXIuYXNCaW5kZXIoKS5saW5rVG9EZWF0aChhY3RpdmVTeW5jQ29udGV4dCwgMCk7CisgICAgICAgICAgICAgICAgc3luY0FkYXB0ZXIubGlua1RvRGVhdGgoYWN0aXZlU3luY0NvbnRleHQsIDApOwogCi0gICAgICAgICAgICAgICAgc3luY0FkYXB0ZXIuc3RhcnRTeW5jKGFjdGl2ZVN5bmNDb250ZXh0LCBzeW5jT3BlcmF0aW9uLmF1dGhvcml0eSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNPcGVyYXRpb24uYWNjb3VudCwgc3luY09wZXJhdGlvbi5leHRyYXMpOworICAgICAgICAgICAgICAgIGlmIChzeW5jT3BlcmF0aW9uLnRhcmdldC50YXJnZXRfcHJvdmlkZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgYWN0aXZlU3luY0NvbnRleHQubVN5bmNBZGFwdGVyID0gSVN5bmNBZGFwdGVyLlN0dWIuYXNJbnRlcmZhY2Uoc3luY0FkYXB0ZXIpOworICAgICAgICAgICAgICAgICAgICBhY3RpdmVTeW5jQ29udGV4dC5tU3luY0FkYXB0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIC5zdGFydFN5bmMoYWN0aXZlU3luY0NvbnRleHQsIHN5bmNPcGVyYXRpb24udGFyZ2V0LnByb3ZpZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jT3BlcmF0aW9uLnRhcmdldC5hY2NvdW50LCBzeW5jT3BlcmF0aW9uLmV4dHJhcyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzeW5jT3BlcmF0aW9uLnRhcmdldC50YXJnZXRfc2VydmljZSkgeworICAgICAgICAgICAgICAgICAgICBhY3RpdmVTeW5jQ29udGV4dC5tU3luY1NlcnZpY2VBZGFwdGVyID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU3luY1NlcnZpY2VBZGFwdGVyLlN0dWIuYXNJbnRlcmZhY2Uoc3luY0FkYXB0ZXIpOworICAgICAgICAgICAgICAgICAgICBhY3RpdmVTeW5jQ29udGV4dC5tU3luY1NlcnZpY2VBZGFwdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAuc3RhcnRTeW5jKGFjdGl2ZVN5bmNDb250ZXh0LCBzeW5jT3BlcmF0aW9uLmV4dHJhcyk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBjYXRjaCAoUmVtb3RlRXhjZXB0aW9uIHJlbW90ZUV4YykgewogICAgICAgICAgICAgICAgIExvZy5kKFRBRywgIm1heWJlU3RhcnROZXh0U3luYzogY2F1Z2h0IGEgUmVtb3RlRXhjZXB0aW9uLCByZXNjaGVkdWxpbmciLCByZW1vdGVFeGMpOwogICAgICAgICAgICAgICAgIGNsb3NlQWN0aXZlU3luY0NvbnRleHQoYWN0aXZlU3luY0NvbnRleHQpOwogICAgICAgICAgICAgICAgIGluY3JlYXNlQmFja29mZlNldHRpbmcoc3luY09wZXJhdGlvbik7Ci0gICAgICAgICAgICAgICAgc2NoZWR1bGVTeW5jT3BlcmF0aW9uKG5ldyBTeW5jT3BlcmF0aW9uKHN5bmNPcGVyYXRpb24pKTsKKyAgICAgICAgICAgICAgICBzY2hlZHVsZVN5bmNPcGVyYXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3luY09wZXJhdGlvbihzeW5jT3BlcmF0aW9uLCAwTCAvKiBuZXdSdW5UaW1lRnJvbU5vdyAqLykpOwogICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBleGMpIHsKICAgICAgICAgICAgICAgICBjbG9zZUFjdGl2ZVN5bmNDb250ZXh0KGFjdGl2ZVN5bmNDb250ZXh0KTsKICAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJDYXVnaHQgUnVudGltZUV4Y2VwdGlvbiB3aGlsZSBzdGFydGluZyB0aGUgc3luYyAiICsgc3luY09wZXJhdGlvbiwgZXhjKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHByaXZhdGUgdm9pZCBjYW5jZWxBY3RpdmVTeW5jTG9ja2VkKEFjY291bnQgYWNjb3VudCwgaW50IHVzZXJJZCwgU3RyaW5nIGF1dGhvcml0eSkgeworICAgICAgICAvKioKKyAgICAgICAgICogQ2FuY2VsIHRoZSBzeW5jIGZvciB0aGUgcHJvdmlkZWQgdGFyZ2V0IHRoYXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gYnVuZGxlLgorICAgICAgICAgKiBAcGFyYW0gaW5mbyBjYW4gaGF2ZSBudWxsIGZpZWxkcyB0byBpbmRpY2F0ZSBhbGwgdGhlIGFjdGl2ZSBzeW5jcyBmb3IgdGhhdCBmaWVsZC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBjYW5jZWxBY3RpdmVTeW5jTG9ja2VkKFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50IGluZm8sIEJ1bmRsZSBleHRyYXMpIHsKICAgICAgICAgICAgIEFycmF5TGlzdDxBY3RpdmVTeW5jQ29udGV4dD4gYWN0aXZlU3luY3MgPQogICAgICAgICAgICAgICAgICAgICBuZXcgQXJyYXlMaXN0PEFjdGl2ZVN5bmNDb250ZXh0PihtQWN0aXZlU3luY0NvbnRleHRzKTsKICAgICAgICAgICAgIGZvciAoQWN0aXZlU3luY0NvbnRleHQgYWN0aXZlU3luY0NvbnRleHQgOiBhY3RpdmVTeW5jcykgewogICAgICAgICAgICAgICAgIGlmIChhY3RpdmVTeW5jQ29udGV4dCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIGlmIGFuIGFjY291bnQgd2FzIHNwZWNpZmllZCB0aGVuIG9ubHkgY2FuY2VsIHRoZSBzeW5jIGlmIGl0IG1hdGNoZXMKLSAgICAgICAgICAgICAgICAgICAgaWYgKGFjY291bnQgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhY2NvdW50LmVxdWFscyhhY3RpdmVTeW5jQ29udGV4dC5tU3luY09wZXJhdGlvbi5hY2NvdW50KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBmaW5hbCBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludCBvcEluZm8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVN5bmNDb250ZXh0Lm1TeW5jT3BlcmF0aW9uLnRhcmdldDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFvcEluZm8ubWF0Y2hlc1NwZWMoaW5mbykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIC8vIGlmIGFuIGF1dGhvcml0eSB3YXMgc3BlY2lmaWVkIHRoZW4gb25seSBjYW5jZWwgdGhlIHN5bmMgaWYgaXQgbWF0Y2hlcwotICAgICAgICAgICAgICAgICAgICBpZiAoYXV0aG9yaXR5ICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYXV0aG9yaXR5LmVxdWFscyhhY3RpdmVTeW5jQ29udGV4dC5tU3luY09wZXJhdGlvbi5hdXRob3JpdHkpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIHVzZXJpZCBtYXRjaGVzCi0gICAgICAgICAgICAgICAgICAgIGlmICh1c2VySWQgIT0gVXNlckhhbmRsZS5VU0VSX0FMTAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHVzZXJJZCAhPSBhY3RpdmVTeW5jQ29udGV4dC5tU3luY09wZXJhdGlvbi51c2VySWQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4dHJhcyAhPSBudWxsICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXN5bmNFeHRyYXNFcXVhbHMoYWN0aXZlU3luY0NvbnRleHQubVN5bmNPcGVyYXRpb24uZXh0cmFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogbm8gY29uZmlnIHNldHRpbmdzICovKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgcnVuU3luY0ZpbmlzaGVkT3JDYW5jZWxlZExvY2tlZChudWxsIC8qIG5vIHJlc3VsdCBzaW5jZSB0aGlzIGlzIGEgY2FuY2VsICovLApAQCAtMjQ5MywxNiArMjcwOCwyMCBAQAogICAgICAgICAgICAgICAgIEFjdGl2ZVN5bmNDb250ZXh0IGFjdGl2ZVN5bmNDb250ZXh0KSB7CiAgICAgICAgICAgICBib29sZWFuIGlzTG9nZ2FibGUgPSBMb2cuaXNMb2dnYWJsZShUQUcsIExvZy5WRVJCT1NFKTsKIAorICAgICAgICAgICAgZmluYWwgU3luY09wZXJhdGlvbiBzeW5jT3BlcmF0aW9uID0gYWN0aXZlU3luY0NvbnRleHQubVN5bmNPcGVyYXRpb247CisgICAgICAgICAgICBmaW5hbCBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludCBpbmZvID0gc3luY09wZXJhdGlvbi50YXJnZXQ7CisKICAgICAgICAgICAgIGlmIChhY3RpdmVTeW5jQ29udGV4dC5tSXNMaW5rZWRUb0RlYXRoKSB7Ci0gICAgICAgICAgICAgICAgYWN0aXZlU3luY0NvbnRleHQubVN5bmNBZGFwdGVyLmFzQmluZGVyKCkudW5saW5rVG9EZWF0aChhY3RpdmVTeW5jQ29udGV4dCwgMCk7CisgICAgICAgICAgICAgICAgaWYgKGluZm8udGFyZ2V0X3Byb3ZpZGVyKSB7CisgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVN5bmNDb250ZXh0Lm1TeW5jQWRhcHRlci5hc0JpbmRlcigpLnVubGlua1RvRGVhdGgoYWN0aXZlU3luY0NvbnRleHQsIDApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVN5bmNDb250ZXh0Lm1TeW5jU2VydmljZUFkYXB0ZXIuYXNCaW5kZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgLnVubGlua1RvRGVhdGgoYWN0aXZlU3luY0NvbnRleHQsIDApOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBhY3RpdmVTeW5jQ29udGV4dC5tSXNMaW5rZWRUb0RlYXRoID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjbG9zZUFjdGl2ZVN5bmNDb250ZXh0KGFjdGl2ZVN5bmNDb250ZXh0KTsKLQotICAgICAgICAgICAgZmluYWwgU3luY09wZXJhdGlvbiBzeW5jT3BlcmF0aW9uID0gYWN0aXZlU3luY0NvbnRleHQubVN5bmNPcGVyYXRpb247Ci0KICAgICAgICAgICAgIGZpbmFsIGxvbmcgZWxhcHNlZFRpbWUgPSBTeXN0ZW1DbG9jay5lbGFwc2VkUmVhbHRpbWUoKSAtIGFjdGl2ZVN5bmNDb250ZXh0Lm1TdGFydFRpbWU7Ci0KICAgICAgICAgICAgIFN0cmluZyBoaXN0b3J5TWVzc2FnZTsKICAgICAgICAgICAgIGludCBkb3duc3RyZWFtQWN0aXZpdHk7CiAgICAgICAgICAgICBpbnQgdXBzdHJlYW1BY3Rpdml0eTsKQEAgLTI1NDQsNiArMjc2MywxMiBAQAogICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChSZW1vdGVFeGNlcHRpb24gZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byByZXRyeSB0aGlzIGluIHRoaXMgY2FzZQogICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhY3RpdmVTeW5jQ29udGV4dC5tU3luY1NlcnZpY2VBZGFwdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVN5bmNDb250ZXh0Lm1TeW5jU2VydmljZUFkYXB0ZXIuY2FuY2VsU3luYyhhY3RpdmVTeW5jQ29udGV4dCk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFJlbW90ZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCBuZWVkIHRvIHJldHJ5IHRoaXMgaW4gdGhpcyBjYXNlCisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaGlzdG9yeU1lc3NhZ2UgPSBTeW5jU3RvcmFnZUVuZ2luZS5NRVNHX0NBTkNFTEVEOwogICAgICAgICAgICAgICAgIGRvd25zdHJlYW1BY3Rpdml0eSA9IDA7CkBAIC0yNTUzLDI0ICsyNzc4LDM1IEBACiAgICAgICAgICAgICBzdG9wU3luY0V2ZW50KGFjdGl2ZVN5bmNDb250ZXh0Lm1IaXN0b3J5Um93SWQsIHN5bmNPcGVyYXRpb24sIGhpc3RvcnlNZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICB1cHN0cmVhbUFjdGl2aXR5LCBkb3duc3RyZWFtQWN0aXZpdHksIGVsYXBzZWRUaW1lKTsKIAotICAgICAgICAgICAgaWYgKHN5bmNSZXN1bHQgIT0gbnVsbCAmJiBzeW5jUmVzdWx0LnRvb01hbnlEZWxldGlvbnMpIHsKLSAgICAgICAgICAgICAgICBpbnN0YWxsSGFuZGxlVG9vTWFueURlbGV0ZXNOb3RpZmljYXRpb24oc3luY09wZXJhdGlvbi5hY2NvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgc3luY09wZXJhdGlvbi5hdXRob3JpdHksIHN5bmNSZXN1bHQuc3RhdHMubnVtRGVsZXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNPcGVyYXRpb24udXNlcklkKTsKKyAgICAgICAgICAgIC8vIENoZWNrIGZvciBmdWxsLXJlc3luYyBhbmQgc2NoZWR1bGUgaXQgYWZ0ZXIgY2xvc2luZyBvZmYgdGhlIGxhc3Qgc3luYy4KKyAgICAgICAgICAgIGlmIChpbmZvLnRhcmdldF9wcm92aWRlcikgeworICAgICAgICAgICAgICAgIGlmIChzeW5jUmVzdWx0ICE9IG51bGwgJiYgc3luY1Jlc3VsdC50b29NYW55RGVsZXRpb25zKSB7CisgICAgICAgICAgICAgICAgICAgIGluc3RhbGxIYW5kbGVUb29NYW55RGVsZXRlc05vdGlmaWNhdGlvbihpbmZvLmFjY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5wcm92aWRlciwgc3luY1Jlc3VsdC5zdGF0cy5udW1EZWxldGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8udXNlcklkKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtTm90aWZpY2F0aW9uTWdyLmNhbmNlbEFzVXNlcihudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8uYWNjb3VudC5oYXNoQ29kZSgpIF4gaW5mby5wcm92aWRlci5oYXNoQ29kZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVc2VySGFuZGxlKGluZm8udXNlcklkKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzeW5jUmVzdWx0ICE9IG51bGwgJiYgc3luY1Jlc3VsdC5mdWxsU3luY1JlcXVlc3RlZCkgeworICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZVN5bmNPcGVyYXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN5bmNPcGVyYXRpb24oaW5mby5hY2NvdW50LCBpbmZvLnVzZXJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luY09wZXJhdGlvbi5yZWFzb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNPcGVyYXRpb24uc3luY1NvdXJjZSwgaW5mby5wcm92aWRlciwgbmV3IEJ1bmRsZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIC8qIGRlbGF5ICovLCAwIC8qIGZsZXggKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNPcGVyYXRpb24uYmFja29mZiwgc3luY09wZXJhdGlvbi5kZWxheVVudGlsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jT3BlcmF0aW9uLmFsbG93UGFyYWxsZWxTeW5jcykpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbU5vdGlmaWNhdGlvbk1nci5jYW5jZWxBc1VzZXIobnVsbCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNPcGVyYXRpb24uYWNjb3VudC5oYXNoQ29kZSgpIF4gc3luY09wZXJhdGlvbi5hdXRob3JpdHkuaGFzaENvZGUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVc2VySGFuZGxlKHN5bmNPcGVyYXRpb24udXNlcklkKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChzeW5jUmVzdWx0ICE9IG51bGwgJiYgc3luY1Jlc3VsdC5mdWxsU3luY1JlcXVlc3RlZCkgewotICAgICAgICAgICAgICAgIHNjaGVkdWxlU3luY09wZXJhdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTeW5jT3BlcmF0aW9uKHN5bmNPcGVyYXRpb24uYWNjb3VudCwgc3luY09wZXJhdGlvbi51c2VySWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luY09wZXJhdGlvbi5yZWFzb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luY09wZXJhdGlvbi5zeW5jU291cmNlLCBzeW5jT3BlcmF0aW9uLmF1dGhvcml0eSwgbmV3IEJ1bmRsZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogZGVsYXkgKi8sIDAgLyogZmxleCAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jT3BlcmF0aW9uLmJhY2tvZmYsIHN5bmNPcGVyYXRpb24uZGVsYXlVbnRpbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jT3BlcmF0aW9uLmFsbG93UGFyYWxsZWxTeW5jcykpOworICAgICAgICAgICAgICAgIGlmIChzeW5jUmVzdWx0ICE9IG51bGwgJiYgc3luY1Jlc3VsdC5mdWxsU3luY1JlcXVlc3RlZCkgeworICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZVN5bmNPcGVyYXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN5bmNPcGVyYXRpb24oaW5mby5zZXJ2aWNlLCBpbmZvLnVzZXJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luY09wZXJhdGlvbi5yZWFzb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNPcGVyYXRpb24uc3luY1NvdXJjZSwgbmV3IEJ1bmRsZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIC8qIGRlbGF5ICovLCAwIC8qIGZsZXggKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNPcGVyYXRpb24uYmFja29mZiwgc3luY09wZXJhdGlvbi5kZWxheVVudGlsKSk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgLy8gbm8gbmVlZCB0byBzY2hlZHVsZSBhbiBhbGFybSwgYXMgdGhhdCB3aWxsIGJlIGRvbmUgYnkgb3VyIGNhbGxlci4KICAgICAgICAgfQpAQCAtMjU3OSw3ICsyODE1LDcgQEAKICAgICAgICAgICAgIGFjdGl2ZVN5bmNDb250ZXh0LmNsb3NlKCk7CiAgICAgICAgICAgICBtQWN0aXZlU3luY0NvbnRleHRzLnJlbW92ZShhY3RpdmVTeW5jQ29udGV4dCk7CiAgICAgICAgICAgICBtU3luY1N0b3JhZ2VFbmdpbmUucmVtb3ZlQWN0aXZlU3luYyhhY3RpdmVTeW5jQ29udGV4dC5tU3luY0luZm8sCi0gICAgICAgICAgICAgICAgICAgIGFjdGl2ZVN5bmNDb250ZXh0Lm1TeW5jT3BlcmF0aW9uLnVzZXJJZCk7CisgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVN5bmNDb250ZXh0Lm1TeW5jT3BlcmF0aW9uLnRhcmdldC51c2VySWQpOwogICAgICAgICB9CiAKICAgICAgICAgLyoqCkBAIC0yODQyLDI2ICszMDc4LDE2IEBACiAgICAgICAgIH0KIAogICAgICAgICBwdWJsaWMgbG9uZyBpbnNlcnRTdGFydFN5bmNFdmVudChTeW5jT3BlcmF0aW9uIHN5bmNPcGVyYXRpb24pIHsKLSAgICAgICAgICAgIGZpbmFsIGludCBzb3VyY2UgPSBzeW5jT3BlcmF0aW9uLnN5bmNTb3VyY2U7CiAgICAgICAgICAgICBmaW5hbCBsb25nIG5vdyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwotCi0gICAgICAgICAgICBFdmVudExvZy53cml0ZUV2ZW50KDI3MjAsIHN5bmNPcGVyYXRpb24uYXV0aG9yaXR5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeW5jU3RvcmFnZUVuZ2luZS5FVkVOVF9TVEFSVCwgc291cmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jT3BlcmF0aW9uLmFjY291bnQubmFtZS5oYXNoQ29kZSgpKTsKLQotICAgICAgICAgICAgcmV0dXJuIG1TeW5jU3RvcmFnZUVuZ2luZS5pbnNlcnRTdGFydFN5bmNFdmVudCgKLSAgICAgICAgICAgICAgICAgICAgc3luY09wZXJhdGlvbi5hY2NvdW50LCBzeW5jT3BlcmF0aW9uLnVzZXJJZCwgc3luY09wZXJhdGlvbi5yZWFzb24sCi0gICAgICAgICAgICAgICAgICAgIHN5bmNPcGVyYXRpb24uYXV0aG9yaXR5LAotICAgICAgICAgICAgICAgICAgICBub3csIHNvdXJjZSwgc3luY09wZXJhdGlvbi5pc0luaXRpYWxpemF0aW9uKCksIHN5bmNPcGVyYXRpb24uZXh0cmFzCi0gICAgICAgICAgICApOworICAgICAgICAgICAgRXZlbnRMb2cud3JpdGVFdmVudCgyNzIwLAorICAgICAgICAgICAgICAgICAgICBzeW5jT3BlcmF0aW9uLnRvRXZlbnRMb2coU3luY1N0b3JhZ2VFbmdpbmUuRVZFTlRfU1RBUlQpKTsKKyAgICAgICAgICAgIHJldHVybiBtU3luY1N0b3JhZ2VFbmdpbmUuaW5zZXJ0U3RhcnRTeW5jRXZlbnQoc3luY09wZXJhdGlvbiwgbm93KTsKICAgICAgICAgfQogCiAgICAgICAgIHB1YmxpYyB2b2lkIHN0b3BTeW5jRXZlbnQobG9uZyByb3dJZCwgU3luY09wZXJhdGlvbiBzeW5jT3BlcmF0aW9uLCBTdHJpbmcgcmVzdWx0TWVzc2FnZSwKICAgICAgICAgICAgICAgICBpbnQgdXBzdHJlYW1BY3Rpdml0eSwgaW50IGRvd25zdHJlYW1BY3Rpdml0eSwgbG9uZyBlbGFwc2VkVGltZSkgewotICAgICAgICAgICAgRXZlbnRMb2cud3JpdGVFdmVudCgyNzIwLCBzeW5jT3BlcmF0aW9uLmF1dGhvcml0eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUuRVZFTlRfU1RPUCwgc3luY09wZXJhdGlvbi5zeW5jU291cmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jT3BlcmF0aW9uLmFjY291bnQubmFtZS5oYXNoQ29kZSgpKTsKLQorICAgICAgICAgICAgRXZlbnRMb2cud3JpdGVFdmVudCgyNzIwLAorICAgICAgICAgICAgICAgICAgICBzeW5jT3BlcmF0aW9uLnRvRXZlbnRMb2coU3luY1N0b3JhZ2VFbmdpbmUuRVZFTlRfU1RPUCkpOwogICAgICAgICAgICAgbVN5bmNTdG9yYWdlRW5naW5lLnN0b3BTeW5jRXZlbnQocm93SWQsIGVsYXBzZWRUaW1lLAogICAgICAgICAgICAgICAgICAgICByZXN1bHRNZXNzYWdlLCBkb3duc3RyZWFtQWN0aXZpdHksIHVwc3RyZWFtQWN0aXZpdHkpOwogICAgICAgICB9CkBAIC0yODc2LDYgKzMxMDIsODMgQEAKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIC8qKgorICAgICAqIFN5bmMgZXh0cmEgY29tcGFyaXNvbiBmdW5jdGlvbi4KKyAgICAgKiBAcGFyYW0gYjEgYnVuZGxlIHRvIGNvbXBhcmUKKyAgICAgKiBAcGFyYW0gYjIgb3RoZXIgYnVuZGxlIHRvIGNvbXBhcmUKKyAgICAgKiBAcGFyYW0gaW5jbHVkZVN5bmNTZXR0aW5ncyBpZiBmYWxzZSwgaWdub3JlIHN5c3RlbSBzZXR0aW5ncyBpbiBidW5kbGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIHN5bmNFeHRyYXNFcXVhbHMoQnVuZGxlIGIxLCBCdW5kbGUgYjIsIGJvb2xlYW4gaW5jbHVkZVN5bmNTZXR0aW5ncykgeworICAgICAgICBpZiAoYjEgPT0gYjIpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vIEV4aXQgZWFybHkgaWYgd2UgY2FuLgorICAgICAgICBpZiAoaW5jbHVkZVN5bmNTZXR0aW5ncyAmJiBiMS5zaXplKCkgIT0gYjIuc2l6ZSgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgQnVuZGxlIGJpZ2dlciA9IGIxLnNpemUoKSA+IGIyLnNpemUoKSA/IGIxIDogYjI7CisgICAgICAgIEJ1bmRsZSBzbWFsbGVyID0gYjEuc2l6ZSgpID4gYjIuc2l6ZSgpID8gYjIgOiBiMTsKKyAgICAgICAgZm9yIChTdHJpbmcga2V5IDogYmlnZ2VyLmtleVNldCgpKSB7CisgICAgICAgICAgICBpZiAoIWluY2x1ZGVTeW5jU2V0dGluZ3MgJiYgaXNTeW5jU2V0dGluZyhrZXkpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXNtYWxsZXIuY29udGFpbnNLZXkoa2V5KSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghYmlnZ2VyLmdldChrZXkpLmVxdWFscyhzbWFsbGVyLmdldChrZXkpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUT0RPOiBHZXQgcmlkIG9mIHRoaXMgd2hlbiB3ZSBzZXBhcmF0ZSBzeW5jIHNldHRpbmdzIGV4dHJhcyBmcm9tIGRldiBzcGVjaWZpZWQgZXh0cmFzLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcHJvdmlkZWQga2V5IGlzIHVzZWQgYnkgdGhlIFN5bmNNYW5hZ2VyIGluIHNjaGVkdWxpbmcgdGhlIHN5bmMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc1N5bmNTZXR0aW5nKFN0cmluZyBrZXkpIHsKKyAgICAgICAgaWYgKGtleS5lcXVhbHMoQ29udGVudFJlc29sdmVyLlNZTkNfRVhUUkFTX0VYUEVESVRFRCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChrZXkuZXF1YWxzKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19JR05PUkVfU0VUVElOR1MpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoa2V5LmVxdWFscyhDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfSUdOT1JFX0JBQ0tPRkYpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoa2V5LmVxdWFscyhDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfRE9fTk9UX1JFVFJZKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGtleS5lcXVhbHMoQ29udGVudFJlc29sdmVyLlNZTkNfRVhUUkFTX01BTlVBTCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChrZXkuZXF1YWxzKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19VUExPQUQpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoa2V5LmVxdWFscyhDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfT1ZFUlJJREVfVE9PX01BTllfREVMRVRJT05TKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGtleS5lcXVhbHMoQ29udGVudFJlc29sdmVyLlNZTkNfRVhUUkFTX0RJU0NBUkRfTE9DQUxfREVMRVRJT05TKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGtleS5lcXVhbHMoQ29udGVudFJlc29sdmVyLlNZTkNfRVhUUkFTX0VYUEVDVEVEX1VQTE9BRCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChrZXkuZXF1YWxzKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19FWFBFQ1RFRF9ET1dOTE9BRCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChrZXkuZXF1YWxzKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19QUklPUklUWSkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChrZXkuZXF1YWxzKENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19ESVNBTExPV19NRVRFUkVEKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGtleS5lcXVhbHMoQ29udGVudFJlc29sdmVyLlNZTkNfRVhUUkFTX0lOSVRJQUxJWkUpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgc3RhdGljIGNsYXNzIFByaW50VGFibGUgewogICAgICAgICBwcml2YXRlIEFycmF5TGlzdDxPYmplY3RbXT4gbVRhYmxlID0gTGlzdHMubmV3QXJyYXlMaXN0KCk7CiAgICAgICAgIHByaXZhdGUgZmluYWwgaW50IG1Db2xzOwpkaWZmIC0tZ2l0IGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvY29udGVudC9TeW5jT3BlcmF0aW9uLmphdmEgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9jb250ZW50L1N5bmNPcGVyYXRpb24uamF2YQppbmRleCA0ODU2NzQ3OC4uMDM2YjIxZiAxMDA2NDQKLS0tIGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvY29udGVudC9TeW5jT3BlcmF0aW9uLmphdmEKKysrIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvY29udGVudC9TeW5jT3BlcmF0aW9uLmphdmEKQEAgLTIwLDEwICsyMCw5IEBACiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LnBtLlBhY2thZ2VNYW5hZ2VyOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db21wb25lbnROYW1lOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZW50UmVzb2x2ZXI7Ci1pbXBvcnQgYW5kcm9pZC5jb250ZW50LlN5bmNSZXF1ZXN0OwogaW1wb3J0IGFuZHJvaWQub3MuQnVuZGxlOwogaW1wb3J0IGFuZHJvaWQub3MuU3lzdGVtQ2xvY2s7Ci1pbXBvcnQgYW5kcm9pZC51dGlsLlBhaXI7CitpbXBvcnQgYW5kcm9pZC51dGlsLkxvZzsKIAogLyoqCiAgKiBWYWx1ZSB0eXBlIHRoYXQgcmVwcmVzZW50cyBhIHN5bmMgb3BlcmF0aW9uLgpAQCAtMzIsMTAgKzMxLDEzIEBACiAgKiB7QGhpZGV9CiAgKi8KIHB1YmxpYyBjbGFzcyBTeW5jT3BlcmF0aW9uIGltcGxlbWVudHMgQ29tcGFyYWJsZSB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEFHID0gIlN5bmNNYW5hZ2VyIjsKKwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJFQVNPTl9CQUNLR1JPVU5EX0RBVEFfU0VUVElOR1NfQ0hBTkdFRCA9IC0xOwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJFQVNPTl9BQ0NPVU5UU19VUERBVEVEID0gLTI7CiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkVBU09OX1NFUlZJQ0VfQ0hBTkdFRCA9IC0zOwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJFQVNPTl9QRVJJT0RJQyA9IC00OworICAgIC8qKiBTeW5jIHN0YXJ0ZWQgYmVjYXVzZSBpdCBoYXMganVzdCBiZWVuIHNldCB0byBpc1N5bmNhYmxlLiAqLwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJFQVNPTl9JU19TWU5DQUJMRSA9IC01OwogICAgIC8qKiBTeW5jIHN0YXJ0ZWQgYmVjYXVzZSBpdCBoYXMganVzdCBiZWVuIHNldCB0byBzeW5jIGF1dG9tYXRpY2FsbHkuICovCiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkVBU09OX1NZTkNfQVVUTyA9IC02OwpAQCAtNTQsMTkgKzU2LDIxIEBACiAgICAgICAgICAgICAiVXNlclN0YXJ0IiwKICAgICB9OwogCi0gICAgLyoqIEFjY291bnQgaW5mbyB0byBpZGVudGlmeSBhIFN5bmNBZGFwdGVyIHJlZ2lzdGVyZWQgd2l0aCB0aGUgc3lzdGVtLiAqLwotICAgIHB1YmxpYyBmaW5hbCBBY2NvdW50IGFjY291bnQ7Ci0gICAgLyoqIEF1dGhvcml0eSBpbmZvIHRvIGlkZW50aWZ5IGEgU3luY0FkYXB0ZXIgcmVnaXN0ZXJlZCB3aXRoIHRoZSBzeXN0ZW0uICovCi0gICAgcHVibGljIGZpbmFsIFN0cmluZyBhdXRob3JpdHk7Ci0gICAgLyoqIFNlcnZpY2UgdG8gd2hpY2ggdGhpcyBvcGVyYXRpb24gd2lsbCBiaW5kIHRvIHBlcmZvcm0gdGhlIHN5bmMuICovCi0gICAgcHVibGljIGZpbmFsIENvbXBvbmVudE5hbWUgc2VydmljZTsKLSAgICBwdWJsaWMgZmluYWwgaW50IHVzZXJJZDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTWU5DX1RBUkdFVF9VTktOT1dOID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTWU5DX1RBUkdFVF9BREFQVEVSID0gMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTWU5DX1RBUkdFVF9TRVJWSUNFID0gMjsKKworICAgIC8qKiBJZGVudGlmeWluZyBpbmZvIGZvciB0aGUgdGFyZ2V0IGZvciB0aGlzIG9wZXJhdGlvbi4gKi8KKyAgICBwdWJsaWMgZmluYWwgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQgdGFyZ2V0OworICAgIC8qKiBXaHkgdGhpcyBzeW5jIHdhcyBraWNrZWQgb2ZmLiB7QGxpbmsgI1JFQVNPTl9OQU1FU30gKi8KICAgICBwdWJsaWMgZmluYWwgaW50IHJlYXNvbjsKKyAgICAvKiogV2hlcmUgdGhpcyBzeW5jIHdhcyBpbml0aWF0ZWQuICovCiAgICAgcHVibGljIGludCBzeW5jU291cmNlOwogICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGFsbG93UGFyYWxsZWxTeW5jczsKICAgICBwdWJsaWMgQnVuZGxlIGV4dHJhczsKICAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGtleTsKICAgICBwdWJsaWMgYm9vbGVhbiBleHBlZGl0ZWQ7CisgICAgLyoqIEJhcmUtYm9uZXMgdmVyc2lvbiBvZiB0aGlzIG9wZXJhdGlvbiB0aGF0IGlzIHBlcnNpc3RlZCBhY3Jvc3MgcmVib290cy4gKi8KICAgICBwdWJsaWMgU3luY1N0b3JhZ2VFbmdpbmUuUGVuZGluZ09wZXJhdGlvbiBwZW5kaW5nT3BlcmF0aW9uOwogICAgIC8qKiBFbGFwc2VkIHJlYWwgdGltZSBpbiBtaWxsaXMgYXQgd2hpY2ggdG8gcnVuIHRoaXMgc3luYy4gKi8KICAgICBwdWJsaWMgbG9uZyBsYXRlc3RSdW5UaW1lOwpAQCAtNzksMjUgKzgzLDU2IEBACiAgICAgICogRGVwZW5kcyBvbiBtYXgoYmFja29mZiwgbGF0ZXN0UnVuVGltZSwgYW5kIGRlbGF5VW50aWwpLgogICAgICAqLwogICAgIHB1YmxpYyBsb25nIGVmZmVjdGl2ZVJ1blRpbWU7Ci0gICAgLyoqIEFtb3VudCBvZiB0aW1lIGJlZm9yZSB7QGxpbmsgZWZmZWN0aXZlUnVuVGltZX0gZnJvbSB3aGljaCB0aGlzIHN5bmMgY2FuIHJ1bi4gKi8KKyAgICAvKiogQW1vdW50IG9mIHRpbWUgYmVmb3JlIHtAbGluayAjZWZmZWN0aXZlUnVuVGltZX0gZnJvbSB3aGljaCB0aGlzIHN5bmMgY2FuIHJ1bi4gKi8KICAgICBwdWJsaWMgbG9uZyBmbGV4VGltZTsKIAotICAgIHB1YmxpYyBTeW5jT3BlcmF0aW9uKEFjY291bnQgYWNjb3VudCwgaW50IHVzZXJJZCwgaW50IHJlYXNvbiwgaW50IHNvdXJjZSwgU3RyaW5nIGF1dGhvcml0eSwKKyAgICBwdWJsaWMgU3luY09wZXJhdGlvbihBY2NvdW50IGFjY291bnQsIGludCB1c2VySWQsIGludCByZWFzb24sIGludCBzb3VyY2UsIFN0cmluZyBwcm92aWRlciwKICAgICAgICAgICAgIEJ1bmRsZSBleHRyYXMsIGxvbmcgcnVuVGltZUZyb21Ob3csIGxvbmcgZmxleFRpbWUsIGxvbmcgYmFja29mZiwKICAgICAgICAgICAgIGxvbmcgZGVsYXlVbnRpbCwgYm9vbGVhbiBhbGxvd1BhcmFsbGVsU3luY3MpIHsKLSAgICAgICAgdGhpcy5zZXJ2aWNlID0gbnVsbDsKLSAgICAgICAgdGhpcy5hY2NvdW50ID0gYWNjb3VudDsKLSAgICAgICAgdGhpcy5hdXRob3JpdHkgPSBhdXRob3JpdHk7Ci0gICAgICAgIHRoaXMudXNlcklkID0gdXNlcklkOworICAgICAgICB0aGlzLnRhcmdldCA9IG5ldyBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludChhY2NvdW50LCBwcm92aWRlciwgdXNlcklkKTsKICAgICAgICAgdGhpcy5yZWFzb24gPSByZWFzb247Ci0gICAgICAgIHRoaXMuc3luY1NvdXJjZSA9IHNvdXJjZTsKICAgICAgICAgdGhpcy5hbGxvd1BhcmFsbGVsU3luY3MgPSBhbGxvd1BhcmFsbGVsU3luY3M7CisgICAgICAgIHRoaXMua2V5ID0gaW5pdGlhbGlzZU9wZXJhdGlvbih0aGlzLnRhcmdldCwgc291cmNlLCBleHRyYXMsIHJ1blRpbWVGcm9tTm93LCBmbGV4VGltZSwKKyAgICAgICAgICAgICAgICBiYWNrb2ZmLCBkZWxheVVudGlsKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3luY09wZXJhdGlvbihDb21wb25lbnROYW1lIHNlcnZpY2UsIGludCB1c2VySWQsIGludCByZWFzb24sIGludCBzb3VyY2UsCisgICAgICAgICAgICBCdW5kbGUgZXh0cmFzLCBsb25nIHJ1blRpbWVGcm9tTm93LCBsb25nIGZsZXhUaW1lLCBsb25nIGJhY2tvZmYsCisgICAgICAgICAgICBsb25nIGRlbGF5VW50aWwpIHsKKyAgICAgICAgdGhpcy50YXJnZXQgPSBuZXcgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQoc2VydmljZSwgdXNlcklkKTsKKyAgICAgICAgLy8gRGVmYXVsdCB0byB0cnVlIGZvciBzeW5jIHNlcnZpY2UuIFRoZSBzZXJ2aWNlIGl0c2VsZiBkZWNpZGVzIGhvdyB0byBoYW5kbGUgdGhpcy4KKyAgICAgICAgdGhpcy5hbGxvd1BhcmFsbGVsU3luY3MgPSB0cnVlOworICAgICAgICB0aGlzLnJlYXNvbiA9IHJlYXNvbjsKKyAgICAgICAgdGhpcy5rZXkgPQorICAgICAgICAgICAgICAgIGluaXRpYWxpc2VPcGVyYXRpb24odGhpcy50YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UsIGV4dHJhcywgcnVuVGltZUZyb21Ob3csIGZsZXhUaW1lLCBiYWNrb2ZmLCBkZWxheVVudGlsKTsKKyAgICB9CisKKyAgICAvKiogVXNlZCB0byByZXNjaGVkdWxlIGEgc3luYyBhdCBhIG5ldyBwb2ludCBpbiB0aW1lLiAqLworICAgIFN5bmNPcGVyYXRpb24oU3luY09wZXJhdGlvbiBvdGhlciwgbG9uZyBuZXdSdW5UaW1lRnJvbU5vdykgeworICAgICAgICB0aGlzLnRhcmdldCA9IG90aGVyLnRhcmdldDsKKyAgICAgICAgdGhpcy5yZWFzb24gPSBvdGhlci5yZWFzb247CisgICAgICAgIHRoaXMuZXhwZWRpdGVkID0gb3RoZXIuZXhwZWRpdGVkOworICAgICAgICB0aGlzLmFsbG93UGFyYWxsZWxTeW5jcyA9IG90aGVyLmFsbG93UGFyYWxsZWxTeW5jczsKKyAgICAgICAgLy8gcmUtdXNlIG9sZCBmbGV4LCBidXQgb25seSAKKyAgICAgICAgbG9uZyBuZXdGbGV4VGltZSA9IE1hdGgubWluKG90aGVyLmZsZXhUaW1lLCBuZXdSdW5UaW1lRnJvbU5vdyk7CisgICAgICAgIHRoaXMua2V5ID0KKyAgICAgICAgICAgICAgICBpbml0aWFsaXNlT3BlcmF0aW9uKHRoaXMudGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICBvdGhlci5zeW5jU291cmNlLCBvdGhlci5leHRyYXMsCisgICAgICAgICAgICAgICAgICAgIG5ld1J1blRpbWVGcm9tTm93IC8qIHJ1blRpbWVGcm9tTm93Ki8sCisgICAgICAgICAgICAgICAgICAgIG5ld0ZsZXhUaW1lIC8qIGZsZXhUaW1lICovLAorICAgICAgICAgICAgICAgICAgICBvdGhlci5iYWNrb2ZmLAorICAgICAgICAgICAgICAgICAgICAwTCAvKiBkZWxheVVudGlsICovKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBpbml0aWFsaXNlT3BlcmF0aW9uKFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50IGluZm8sIGludCBzb3VyY2UsIEJ1bmRsZSBleHRyYXMsCisgICAgICAgICAgICBsb25nIHJ1blRpbWVGcm9tTm93LCBsb25nIGZsZXhUaW1lLCBsb25nIGJhY2tvZmYsIGxvbmcgZGVsYXlVbnRpbCkgeworICAgICAgICB0aGlzLnN5bmNTb3VyY2UgPSBzb3VyY2U7CiAgICAgICAgIHRoaXMuZXh0cmFzID0gbmV3IEJ1bmRsZShleHRyYXMpOwogICAgICAgICBjbGVhbkJ1bmRsZSh0aGlzLmV4dHJhcyk7CiAgICAgICAgIHRoaXMuZGVsYXlVbnRpbCA9IGRlbGF5VW50aWw7CiAgICAgICAgIHRoaXMuYmFja29mZiA9IGJhY2tvZmY7CiAgICAgICAgIGZpbmFsIGxvbmcgbm93ID0gU3lzdGVtQ2xvY2suZWxhcHNlZFJlYWx0aW1lKCk7Ci0gICAgICAgIC8vIENoZWNrcyB0aGUgZXh0cmFzIGJ1bmRsZS4gTXVzdCBvY2N1ciBhZnRlciB3ZSBzZXQgdGhlIGludGVybmFsIGJ1bmRsZS4KICAgICAgICAgaWYgKHJ1blRpbWVGcm9tTm93IDwgMCB8fCBpc0V4cGVkaXRlZCgpKSB7CiAgICAgICAgICAgICB0aGlzLmV4cGVkaXRlZCA9IHRydWU7CiAgICAgICAgICAgICB0aGlzLmxhdGVzdFJ1blRpbWUgPSBub3c7CkBAIC0xMDgsNyArMTQzLDExIEBACiAgICAgICAgICAgICB0aGlzLmZsZXhUaW1lID0gZmxleFRpbWU7CiAgICAgICAgIH0KICAgICAgICAgdXBkYXRlRWZmZWN0aXZlUnVuVGltZSgpOwotICAgICAgICB0aGlzLmtleSA9IHRvS2V5KCk7CisgICAgICAgIHJldHVybiB0b0tleShpbmZvLCB0aGlzLmV4dHJhcyk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbWF0Y2hlc0F1dGhvcml0eShTeW5jT3BlcmF0aW9uIG90aGVyKSB7CisgICAgICAgIHJldHVybiB0aGlzLnRhcmdldC5tYXRjaGVzU3BlYyhvdGhlci50YXJnZXQpOwogICAgIH0KIAogICAgIC8qKgpAQCAtMTI2LDEwICsxNjUsNiBAQAogICAgICAgICByZW1vdmVGYWxzZUV4dHJhKGJ1bmRsZSwgQ29udGVudFJlc29sdmVyLlNZTkNfRVhUUkFTX0VYUEVESVRFRCk7CiAgICAgICAgIHJlbW92ZUZhbHNlRXh0cmEoYnVuZGxlLCBDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfT1ZFUlJJREVfVE9PX01BTllfREVMRVRJT05TKTsKICAgICAgICAgcmVtb3ZlRmFsc2VFeHRyYShidW5kbGUsIENvbnRlbnRSZXNvbHZlci5TWU5DX0VYVFJBU19ESVNBTExPV19NRVRFUkVEKTsKLQotICAgICAgICAvLyBSZW1vdmUgQ29uZmlnIGRhdGEuCi0gICAgICAgIGJ1bmRsZS5yZW1vdmUoQ29udGVudFJlc29sdmVyLlNZTkNfRVhUUkFTX0VYUEVDVEVEX1VQTE9BRCk7Ci0gICAgICAgIGJ1bmRsZS5yZW1vdmUoQ29udGVudFJlc29sdmVyLlNZTkNfRVhUUkFTX0VYUEVDVEVEX0RPV05MT0FEKTsKICAgICB9CiAKICAgICBwcml2YXRlIHZvaWQgcmVtb3ZlRmFsc2VFeHRyYShCdW5kbGUgYnVuZGxlLCBTdHJpbmcgZXh0cmFOYW1lKSB7CkBAIC0xMzgsMjIgKzE3MywyNCBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgLyoqIE9ubHkgdXNlZCB0byBpbW1lZGlhdGVseSByZXNjaGVkdWxlIGEgc3luYy4gKi8KLSAgICBTeW5jT3BlcmF0aW9uKFN5bmNPcGVyYXRpb24gb3RoZXIpIHsKLSAgICAgICAgdGhpcy5zZXJ2aWNlID0gb3RoZXIuc2VydmljZTsKLSAgICAgICAgdGhpcy5hY2NvdW50ID0gb3RoZXIuYWNjb3VudDsKLSAgICAgICAgdGhpcy5hdXRob3JpdHkgPSBvdGhlci5hdXRob3JpdHk7Ci0gICAgICAgIHRoaXMudXNlcklkID0gb3RoZXIudXNlcklkOwotICAgICAgICB0aGlzLnJlYXNvbiA9IG90aGVyLnJlYXNvbjsKLSAgICAgICAgdGhpcy5zeW5jU291cmNlID0gb3RoZXIuc3luY1NvdXJjZTsKLSAgICAgICAgdGhpcy5leHRyYXMgPSBuZXcgQnVuZGxlKG90aGVyLmV4dHJhcyk7Ci0gICAgICAgIHRoaXMuZXhwZWRpdGVkID0gb3RoZXIuZXhwZWRpdGVkOwotICAgICAgICB0aGlzLmxhdGVzdFJ1blRpbWUgPSBTeXN0ZW1DbG9jay5lbGFwc2VkUmVhbHRpbWUoKTsKLSAgICAgICAgdGhpcy5mbGV4VGltZSA9IDBMOwotICAgICAgICB0aGlzLmJhY2tvZmYgPSBvdGhlci5iYWNrb2ZmOwotICAgICAgICB0aGlzLmFsbG93UGFyYWxsZWxTeW5jcyA9IG90aGVyLmFsbG93UGFyYWxsZWxTeW5jczsKLSAgICAgICAgdGhpcy51cGRhdGVFZmZlY3RpdmVSdW5UaW1lKCk7Ci0gICAgICAgIHRoaXMua2V5ID0gdG9LZXkoKTsKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgd2hldGhlciBpZiB0aGlzIHN5bmMgb3BlcmF0aW9uIGlzIHJ1bm5pbmcsIHRoZSBwcm92aWRlZCBvcGVyYXRpb24gd291bGQgY29uZmxpY3QKKyAgICAgKiB3aXRoIGl0LgorICAgICAqIFBhcmFsbGVsIHN5bmNzIGFsbG93IG11bHRpcGxlIGFjY291bnRzIHRvIGJlIHN5bmNlZCBhdCB0aGUgc2FtZSB0aW1lLiAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0NvbmZsaWN0KFN5bmNPcGVyYXRpb24gdG9SdW4pIHsKKyAgICAgICAgZmluYWwgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQgb3RoZXIgPSB0b1J1bi50YXJnZXQ7CisgICAgICAgIGlmICh0YXJnZXQudGFyZ2V0X3Byb3ZpZGVyKSB7CisgICAgICAgICAgICByZXR1cm4gdGFyZ2V0LmFjY291bnQudHlwZS5lcXVhbHMob3RoZXIuYWNjb3VudC50eXBlKQorICAgICAgICAgICAgICAgICAgICAmJiB0YXJnZXQucHJvdmlkZXIuZXF1YWxzKG90aGVyLnByb3ZpZGVyKQorICAgICAgICAgICAgICAgICAgICAmJiB0YXJnZXQudXNlcklkID09IG90aGVyLnVzZXJJZAorICAgICAgICAgICAgICAgICAgICAmJiAoIWFsbG93UGFyYWxsZWxTeW5jcworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRhcmdldC5hY2NvdW50Lm5hbWUuZXF1YWxzKG90aGVyLmFjY291bnQubmFtZSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gT3BzIHRoYXQgdGFyZ2V0IGEgc2VydmljZSBkZWZhdWx0IHRvIGFsbG93IHBhcmFsbGVsIHN5bmNzLCB3aGljaCBpcyBoYW5kbGVkIGJ5IHRoZQorICAgICAgICAgICAgLy8gc2VydmljZSByZXR1cm5pbmcgU1lOQ19JTl9QUk9HUkVTUyBpZiB0aGV5IGRvbid0LgorICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5zZXJ2aWNlLmVxdWFscyhvdGhlci5zZXJ2aWNlKSAmJiAhYWxsb3dQYXJhbGxlbFN5bmNzOworICAgICAgICB9CiAgICAgfQogCiAgICAgQE92ZXJyaWRlCkBAIC0xNjIsMTggKzE5OSwyNiBAQAogICAgIH0KIAogICAgIHB1YmxpYyBTdHJpbmcgZHVtcChQYWNrYWdlTWFuYWdlciBwbSwgYm9vbGVhbiB1c2VPbmVMaW5lKSB7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpCi0gICAgICAgICAgICAgICAgLmFwcGVuZChhY2NvdW50Lm5hbWUpCisgICAgICAgIFN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworICAgICAgICBpZiAodGFyZ2V0LnRhcmdldF9wcm92aWRlcikgeworICAgICAgICAgICAgc2IuYXBwZW5kKHRhcmdldC5hY2NvdW50Lm5hbWUpCiAgICAgICAgICAgICAgICAgLmFwcGVuZCgiIHUiKQotICAgICAgICAgICAgICAgIC5hcHBlbmQodXNlcklkKS5hcHBlbmQoIiAoIikKLSAgICAgICAgICAgICAgICAuYXBwZW5kKGFjY291bnQudHlwZSkKKyAgICAgICAgICAgICAgICAuYXBwZW5kKHRhcmdldC51c2VySWQpLmFwcGVuZCgiICgiKQorICAgICAgICAgICAgICAgIC5hcHBlbmQodGFyZ2V0LmFjY291bnQudHlwZSkKICAgICAgICAgICAgICAgICAuYXBwZW5kKCIpIikKICAgICAgICAgICAgICAgICAuYXBwZW5kKCIsICIpCi0gICAgICAgICAgICAgICAgLmFwcGVuZChhdXRob3JpdHkpCi0gICAgICAgICAgICAgICAgLmFwcGVuZCgiLCAiKQotICAgICAgICAgICAgICAgIC5hcHBlbmQoU3luY1N0b3JhZ2VFbmdpbmUuU09VUkNFU1tzeW5jU291cmNlXSkKLSAgICAgICAgICAgICAgICAuYXBwZW5kKCIsIGxhdGVzdFJ1blRpbWUgIikKLSAgICAgICAgICAgICAgICAuYXBwZW5kKGxhdGVzdFJ1blRpbWUpOworICAgICAgICAgICAgICAgIC5hcHBlbmQodGFyZ2V0LnByb3ZpZGVyKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIiwgIik7CisgICAgICAgIH0gZWxzZSBpZiAodGFyZ2V0LnRhcmdldF9zZXJ2aWNlKSB7CisgICAgICAgICAgICBzYi5hcHBlbmQodGFyZ2V0LnNlcnZpY2UuZ2V0UGFja2FnZU5hbWUoKSkKKyAgICAgICAgICAgICAgICAuYXBwZW5kKCIgdSIpCisgICAgICAgICAgICAgICAgLmFwcGVuZCh0YXJnZXQudXNlcklkKS5hcHBlbmQoIiAoIikKKyAgICAgICAgICAgICAgICAuYXBwZW5kKHRhcmdldC5zZXJ2aWNlLmdldENsYXNzTmFtZSgpKS5hcHBlbmQoIikiKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIiwgIik7CisgICAgICAgIH0KKyAgICAgICAgc2IuYXBwZW5kKFN5bmNTdG9yYWdlRW5naW5lLlNPVVJDRVNbc3luY1NvdXJjZV0pCisgICAgICAgICAgICAuYXBwZW5kKCIsIGN1cnJlbnRSdW5UaW1lICIpCisgICAgICAgICAgICAuYXBwZW5kKGVmZmVjdGl2ZVJ1blRpbWUpOwogICAgICAgICBpZiAoZXhwZWRpdGVkKSB7CiAgICAgICAgICAgICBzYi5hcHBlbmQoIiwgRVhQRURJVEVEIik7CiAgICAgICAgIH0KQEAgLTIxMSwxMCArMjU2LDYgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIHB1YmxpYyBib29sZWFuIGlzTWV0ZXJlZERpc2FsbG93ZWQoKSB7Ci0gICAgICAgIHJldHVybiBleHRyYXMuZ2V0Qm9vbGVhbihDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfRElTQUxMT1dfTUVURVJFRCwgZmFsc2UpOwotICAgIH0KLQogICAgIHB1YmxpYyBib29sZWFuIGlzSW5pdGlhbGl6YXRpb24oKSB7CiAgICAgICAgIHJldHVybiBleHRyYXMuZ2V0Qm9vbGVhbihDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfSU5JVElBTElaRSwgZmFsc2UpOwogICAgIH0KQEAgLTIyNywyOCArMjY4LDM5IEBACiAgICAgICAgIHJldHVybiBleHRyYXMuZ2V0Qm9vbGVhbihDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfSUdOT1JFX0JBQ0tPRkYsIGZhbHNlKTsKICAgICB9CiAKKyAgICBwdWJsaWMgYm9vbGVhbiBpc05vdEFsbG93ZWRPbk1ldGVyZWQoKSB7CisgICAgICAgIHJldHVybiBleHRyYXMuZ2V0Qm9vbGVhbihDb250ZW50UmVzb2x2ZXIuU1lOQ19FWFRSQVNfRElTQUxMT1dfTUVURVJFRCwgZmFsc2UpOworICAgIH0KKwogICAgIC8qKiBDaGFuZ2VkIGluIFYzLiAqLwotICAgIHByaXZhdGUgU3RyaW5nIHRvS2V5KCkgeworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvS2V5KFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50IGluZm8sIEJ1bmRsZSBleHRyYXMpIHsKICAgICAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7Ci0gICAgICAgIGlmIChzZXJ2aWNlID09IG51bGwpIHsKLSAgICAgICAgICAgIHNiLmFwcGVuZCgiYXV0aG9yaXR5OiAiKS5hcHBlbmQoYXV0aG9yaXR5KTsKLSAgICAgICAgICAgIHNiLmFwcGVuZCgiIGFjY291bnQge25hbWU9IiArIGFjY291bnQubmFtZSArICIsIHVzZXI9IiArIHVzZXJJZCArICIsIHR5cGU9IiArIGFjY291bnQudHlwZQorICAgICAgICBpZiAoaW5mby50YXJnZXRfcHJvdmlkZXIpIHsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgicHJvdmlkZXI6ICIpLmFwcGVuZChpbmZvLnByb3ZpZGVyKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgiIGFjY291bnQge25hbWU9IiArIGluZm8uYWNjb3VudC5uYW1lCisgICAgICAgICAgICAgICAgICAgICsgIiwgdXNlcj0iCisgICAgICAgICAgICAgICAgICAgICsgaW5mby51c2VySWQKKyAgICAgICAgICAgICAgICAgICAgKyAiLCB0eXBlPSIKKyAgICAgICAgICAgICAgICAgICAgKyBpbmZvLmFjY291bnQudHlwZQogICAgICAgICAgICAgICAgICAgICArICJ9Iik7Ci0gICAgICAgIH0gZWxzZSB7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby50YXJnZXRfc2VydmljZSkgewogICAgICAgICAgICAgc2IuYXBwZW5kKCJzZXJ2aWNlIHtwYWNrYWdlPSIgKQotICAgICAgICAgICAgICAgIC5hcHBlbmQoc2VydmljZS5nZXRQYWNrYWdlTmFtZSgpKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoaW5mby5zZXJ2aWNlLmdldFBhY2thZ2VOYW1lKCkpCiAgICAgICAgICAgICAgICAgLmFwcGVuZCgiIHVzZXI9IikKLSAgICAgICAgICAgICAgICAuYXBwZW5kKHVzZXJJZCkKKyAgICAgICAgICAgICAgICAuYXBwZW5kKGluZm8udXNlcklkKQogICAgICAgICAgICAgICAgIC5hcHBlbmQoIiwgY2xhc3M9IikKLSAgICAgICAgICAgICAgICAuYXBwZW5kKHNlcnZpY2UuZ2V0Q2xhc3NOYW1lKCkpCisgICAgICAgICAgICAgICAgLmFwcGVuZChpbmZvLnNlcnZpY2UuZ2V0Q2xhc3NOYW1lKCkpCiAgICAgICAgICAgICAgICAgLmFwcGVuZCgifSIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgTG9nLnYoVEFHLCAiQ29udmVydGluZyBTeW5jT3BlcmF0b24gdG8ga2V5LCBpbnZhbGlkIHRhcmdldDogIiArIGluZm8udG9TdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm4gIiI7CiAgICAgICAgIH0KICAgICAgICAgc2IuYXBwZW5kKCIgZXh0cmFzOiAiKTsKICAgICAgICAgZXh0cmFzVG9TdHJpbmdCdWlsZGVyKGV4dHJhcywgc2IpOwogICAgICAgICByZXR1cm4gc2IudG9TdHJpbmcoKTsKICAgICB9CiAKLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgZXh0cmFzVG9TdHJpbmdCdWlsZGVyKEJ1bmRsZSBidW5kbGUsIFN0cmluZ0J1aWxkZXIgc2IpIHsKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGV4dHJhc1RvU3RyaW5nQnVpbGRlcihCdW5kbGUgYnVuZGxlLCBTdHJpbmdCdWlsZGVyIHNiKSB7CiAgICAgICAgIHNiLmFwcGVuZCgiWyIpOwogICAgICAgICBmb3IgKFN0cmluZyBrZXkgOiBidW5kbGUua2V5U2V0KCkpIHsKICAgICAgICAgICAgIHNiLmFwcGVuZChrZXkpLmFwcGVuZCgiPSIpLmFwcGVuZChidW5kbGUuZ2V0KGtleSkpLmFwcGVuZCgiICIpOwpAQCAtMjU2LDYgKzMwOCwzMSBAQAogICAgICAgICBzYi5hcHBlbmQoIl0iKTsKICAgICB9CiAKKyAgICBwdWJsaWMgU3RyaW5nIHdha2VMb2NrS2V5KCkgeworICAgICAgICBpZiAodGFyZ2V0LnRhcmdldF9wcm92aWRlcikgeworICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5hY2NvdW50Lm5hbWUgKyAiLyIgKyB0YXJnZXQuYWNjb3VudC50eXBlICsgIjoiICsgdGFyZ2V0LnByb3ZpZGVyOworICAgICAgICB9IGVsc2UgaWYgKHRhcmdldC50YXJnZXRfc2VydmljZSkgeworICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5zZXJ2aWNlLmdldFBhY2thZ2VOYW1lKCkgKyAiLyIgKyB0YXJnZXQuc2VydmljZS5nZXRDbGFzc05hbWUoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIExvZy53dGYoVEFHLCAiSW52YWxpZCB0YXJnZXQgZ2V0dGluZyB3YWtlbG9jayBmb3Igb3BlcmF0aW9uIC0gIiArIGtleSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgd2FrZUxvY2tOYW1lKCkgeworICAgICAgICBpZiAodGFyZ2V0LnRhcmdldF9wcm92aWRlcikgeworICAgICAgICAgICAgcmV0dXJuICIvIiArIHRhcmdldC5wcm92aWRlcgorICAgICAgICAgICAgICAgICAgICArICIvIiArIHRhcmdldC5hY2NvdW50LnR5cGUKKyAgICAgICAgICAgICAgICAgICAgKyAiLyIgKyB0YXJnZXQuYWNjb3VudC5uYW1lOworICAgICAgICB9IGVsc2UgaWYgKHRhcmdldC50YXJnZXRfc2VydmljZSkgeworICAgICAgICAgICAgcmV0dXJuICIvIiArIHRhcmdldC5zZXJ2aWNlLmdldFBhY2thZ2VOYW1lKCkKKyAgICAgICAgICAgICAgICAgICAgKyAiLyIgKyB0YXJnZXQuc2VydmljZS5nZXRDbGFzc05hbWUoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIExvZy53dGYoVEFHLCAiSW52YWxpZCB0YXJnZXQgZ2V0dGluZyB3YWtlbG9jayBuYW1lIGZvciBvcGVyYXRpb24gLSAiICsga2V5KTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorCiAgICAgLyoqCiAgICAgICogVXBkYXRlIHRoZSBlZmZlY3RpdmUgcnVuIHRpbWUgb2YgdGhpcyBPcGVyYXRpb24gYmFzZWQgb24gbGF0ZXN0UnVuVGltZSAoc3BlY2lmaWVkIGF0CiAgICAgICogY3JlYXRpb24gdGltZSBvZiBzeW5jKSwgZGVsYXlVbnRpbCAoc3BlY2lmaWVkIGJ5IFN5bmNBZGFwdGVyKSwgb3IgYmFja29mZiAoc3BlY2lmaWVkIGJ5CkBAIC0yOTEsNCArMzY4LDIxIEBACiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgIH0KKworICAgIC8vIFRPRE86IFRlc3QgdGhpcyB0byBtYWtlIHN1cmUgdGhhdCBjYXN0aW5nIHRvIG9iamVjdCBkb2Vzbid0IGxvc2UgdGhlIHR5cGUgaW5mbyBmb3IgRXZlbnRMb2cuCisgICAgcHVibGljIE9iamVjdFtdIHRvRXZlbnRMb2coaW50IGV2ZW50KSB7CisgICAgICAgIE9iamVjdFtdIGxvZ0FycmF5ID0gbmV3IE9iamVjdFs0XTsKKyAgICAgICAgbG9nQXJyYXlbMV0gPSBldmVudDsKKyAgICAgICAgbG9nQXJyYXlbMl0gPSBzeW5jU291cmNlOworICAgICAgICBpZiAodGFyZ2V0LnRhcmdldF9wcm92aWRlcikgeworICAgICAgICAgICAgbG9nQXJyYXlbMF0gPSB0YXJnZXQucHJvdmlkZXI7CisgICAgICAgICAgICBsb2dBcnJheVszXSA9IHRhcmdldC5hY2NvdW50Lm5hbWUuaGFzaENvZGUoKTsKKyAgICAgICAgfSBlbHNlIGlmICh0YXJnZXQudGFyZ2V0X3NlcnZpY2UpIHsKKyAgICAgICAgICAgIGxvZ0FycmF5WzBdID0gdGFyZ2V0LnNlcnZpY2UuZ2V0UGFja2FnZU5hbWUoKTsKKyAgICAgICAgICAgIGxvZ0FycmF5WzNdID0gdGFyZ2V0LnNlcnZpY2UuaGFzaENvZGUoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIExvZy53dGYoVEFHLCAic3luYyBvcCB3aXRoIGludmFsaWQgdGFyZ2V0OiAiICsga2V5KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbG9nQXJyYXk7CisgICAgfQogfQpkaWZmIC0tZ2l0IGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvY29udGVudC9TeW5jUXVldWUuamF2YSBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2NvbnRlbnQvU3luY1F1ZXVlLmphdmEKaW5kZXggNmYzZmU2ZS4uNWQ5Mzg4MiAxMDA2NDQKLS0tIGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvY29udGVudC9TeW5jUXVldWUuamF2YQorKysgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9jb250ZW50L1N5bmNRdWV1ZS5qYXZhCkBAIC0xNiwxMiArMTYsMTEgQEAKIAogcGFja2FnZSBjb20uYW5kcm9pZC5zZXJ2ZXIuY29udGVudDsKIAotaW1wb3J0IGFuZHJvaWQuYWNjb3VudHMuQWNjb3VudDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQucG0uUGFja2FnZU1hbmFnZXI7Ci1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnBtLlJlZ2lzdGVyZWRTZXJ2aWNlc0NhY2hlOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5TeW5jQWRhcHRlclR5cGU7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LlN5bmNBZGFwdGVyc0NhY2hlOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5wbS5SZWdpc3RlcmVkU2VydmljZXNDYWNoZS5TZXJ2aWNlSW5mbzsKK2ltcG9ydCBhbmRyb2lkLm9zLkJ1bmRsZTsKIGltcG9ydCBhbmRyb2lkLm9zLlN5c3RlbUNsb2NrOwogaW1wb3J0IGFuZHJvaWQudGV4dC5mb3JtYXQuRGF0ZVV0aWxzOwogaW1wb3J0IGFuZHJvaWQudXRpbC5Mb2c7CkBAIC02MCwyNSArNTksNTEgQEAKIAogICAgIHB1YmxpYyB2b2lkIGFkZFBlbmRpbmdPcGVyYXRpb25zKGludCB1c2VySWQpIHsKICAgICAgICAgZm9yIChTeW5jU3RvcmFnZUVuZ2luZS5QZW5kaW5nT3BlcmF0aW9uIG9wIDogbVN5bmNTdG9yYWdlRW5naW5lLmdldFBlbmRpbmdPcGVyYXRpb25zKCkpIHsKLSAgICAgICAgICAgIGlmIChvcC51c2VySWQgIT0gdXNlcklkKSBjb250aW51ZTsKKyAgICAgICAgICAgIGZpbmFsIFN5bmNTdG9yYWdlRW5naW5lLkVuZFBvaW50IGluZm8gPSBvcC50YXJnZXQ7CisgICAgICAgICAgICBpZiAoaW5mby51c2VySWQgIT0gdXNlcklkKSBjb250aW51ZTsKIAotICAgICAgICAgICAgZmluYWwgUGFpcjxMb25nLCBMb25nPiBiYWNrb2ZmID0gbVN5bmNTdG9yYWdlRW5naW5lLmdldEJhY2tvZmYoCi0gICAgICAgICAgICAgICAgICAgIG9wLmFjY291bnQsIG9wLnVzZXJJZCwgb3AuYXV0aG9yaXR5KTsKLSAgICAgICAgICAgIGZpbmFsIFNlcnZpY2VJbmZvPFN5bmNBZGFwdGVyVHlwZT4gc3luY0FkYXB0ZXJJbmZvID0gbVN5bmNBZGFwdGVycy5nZXRTZXJ2aWNlSW5mbygKLSAgICAgICAgICAgICAgICAgICAgU3luY0FkYXB0ZXJUeXBlLm5ld0tleShvcC5hdXRob3JpdHksIG9wLmFjY291bnQudHlwZSksIG9wLnVzZXJJZCk7Ci0gICAgICAgICAgICBpZiAoc3luY0FkYXB0ZXJJbmZvID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICBMb2cudyhUQUcsICJNaXNzaW5nIHN5bmMgYWRhcHRlciBpbmZvIGZvciBhdXRob3JpdHkgIiArIG9wLmF1dGhvcml0eSArICIsIHVzZXJJZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICArIG9wLnVzZXJJZCk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBmaW5hbCBQYWlyPExvbmcsIExvbmc+IGJhY2tvZmYgPSBtU3luY1N0b3JhZ2VFbmdpbmUuZ2V0QmFja29mZihpbmZvKTsKKyAgICAgICAgICAgIFN5bmNPcGVyYXRpb24gb3BlcmF0aW9uVG9BZGQ7CisgICAgICAgICAgICBpZiAoaW5mby50YXJnZXRfcHJvdmlkZXIpIHsKKyAgICAgICAgICAgICAgICBmaW5hbCBTZXJ2aWNlSW5mbzxTeW5jQWRhcHRlclR5cGU+IHN5bmNBZGFwdGVySW5mbyA9IG1TeW5jQWRhcHRlcnMuZ2V0U2VydmljZUluZm8oCisgICAgICAgICAgICAgICAgICAgICAgICBTeW5jQWRhcHRlclR5cGUubmV3S2V5KGluZm8ucHJvdmlkZXIsIGluZm8uYWNjb3VudC50eXBlKSwgaW5mby51c2VySWQpOworICAgICAgICAgICAgICAgIGlmIChzeW5jQWRhcHRlckluZm8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgIk1pc3Npbmcgc3luYyBhZGFwdGVyIGluZm8gZm9yIGF1dGhvcml0eSAiICsgb3AudGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uVG9BZGQgPSBuZXcgU3luY09wZXJhdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8uYWNjb3VudCwgaW5mby51c2VySWQsIG9wLnJlYXNvbiwgb3Auc3luY1NvdXJjZSwgaW5mby5wcm92aWRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wLmV4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogZGVsYXkgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAwIC8qIGZsZXggKi8sCisgICAgICAgICAgICAgICAgICAgICAgICBiYWNrb2ZmICE9IG51bGwgPyBiYWNrb2ZmLmZpcnN0IDogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1TeW5jU3RvcmFnZUVuZ2luZS5nZXREZWxheVVudGlsVGltZShpbmZvKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNBZGFwdGVySW5mby50eXBlLmFsbG93UGFyYWxsZWxTeW5jcygpKTsKKyAgICAgICAgICAgICAgICBvcGVyYXRpb25Ub0FkZC5leHBlZGl0ZWQgPSBvcC5leHBlZGl0ZWQ7CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uVG9BZGQucGVuZGluZ09wZXJhdGlvbiA9IG9wOworICAgICAgICAgICAgICAgIGFkZChvcGVyYXRpb25Ub0FkZCwgb3ApOworICAgICAgICAgICAgfSBlbHNlIGlmIChpbmZvLnRhcmdldF9zZXJ2aWNlKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbVBhY2thZ2VNYW5hZ2VyLmdldFNlcnZpY2VJbmZvKGluZm8uc2VydmljZSwgMCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUGFja2FnZU1hbmFnZXIuTmFtZU5vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBMb2cudyhUQUcsICJNaXNzaW5nIHN5bmMgc2VydmljZSBmb3IgYXV0aG9yaXR5ICIgKyBvcC50YXJnZXQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvcGVyYXRpb25Ub0FkZCA9IG5ldyBTeW5jT3BlcmF0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5zZXJ2aWNlLCBpbmZvLnVzZXJJZCwgb3AucmVhc29uLCBvcC5zeW5jU291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgb3AuZXh0cmFzLAorICAgICAgICAgICAgICAgICAgICAgICAgMCAvKiBkZWxheSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogZmxleCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tvZmYgIT0gbnVsbCA/IGJhY2tvZmYuZmlyc3QgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgbVN5bmNTdG9yYWdlRW5naW5lLmdldERlbGF5VW50aWxUaW1lKGluZm8pKTsKKyAgICAgICAgICAgICAgICBvcGVyYXRpb25Ub0FkZC5leHBlZGl0ZWQgPSBvcC5leHBlZGl0ZWQ7CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uVG9BZGQucGVuZGluZ09wZXJhdGlvbiA9IG9wOworICAgICAgICAgICAgICAgIGFkZChvcGVyYXRpb25Ub0FkZCwgb3ApOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgU3luY09wZXJhdGlvbiBzeW5jT3BlcmF0aW9uID0gbmV3IFN5bmNPcGVyYXRpb24oCi0gICAgICAgICAgICAgICAgICAgIG9wLmFjY291bnQsIG9wLnVzZXJJZCwgb3AucmVhc29uLCBvcC5zeW5jU291cmNlLCBvcC5hdXRob3JpdHksIG9wLmV4dHJhcywKLSAgICAgICAgICAgICAgICAgICAgMCAvKiBkZWxheSAqLywgMCAvKiBmbGV4ICovLCBiYWNrb2ZmICE9IG51bGwgPyBiYWNrb2ZmLmZpcnN0IDogMCwKLSAgICAgICAgICAgICAgICAgICAgbVN5bmNTdG9yYWdlRW5naW5lLmdldERlbGF5VW50aWxUaW1lKG9wLmFjY291bnQsIG9wLnVzZXJJZCwgb3AuYXV0aG9yaXR5KSwKLSAgICAgICAgICAgICAgICAgICAgc3luY0FkYXB0ZXJJbmZvLnR5cGUuYWxsb3dQYXJhbGxlbFN5bmNzKCkpOwotICAgICAgICAgICAgc3luY09wZXJhdGlvbi5leHBlZGl0ZWQgPSBvcC5leHBlZGl0ZWQ7Ci0gICAgICAgICAgICBzeW5jT3BlcmF0aW9uLnBlbmRpbmdPcGVyYXRpb24gPSBvcDsKLSAgICAgICAgICAgIGFkZChzeW5jT3BlcmF0aW9uLCBvcCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTExOSwxMiArMTQ0LDggQEAKICAgICAgICAgb3BlcmF0aW9uLnBlbmRpbmdPcGVyYXRpb24gPSBwb3A7CiAgICAgICAgIC8vIERvbid0IHVwZGF0ZSB0aGUgUGVuZGluZ09wIGlmIG9uZSBhbHJlYWR5IGV4aXN0cy4gVGhpcyByZWFsbHkgaXMganVzdCBhIHBsYWNlaG9sZGVyLAogICAgICAgICAvLyBubyBhY3R1YWwgc2NoZWR1bGluZyBpbmZvIGlzIHBsYWNlZCBoZXJlLgotICAgICAgICAvLyBUT0RPOiBDaGFuZ2UgdGhpcyB0byBzdXBwb3J0IHNlcnZpY2UgY29tcG9uZW50cy4KICAgICAgICAgaWYgKG9wZXJhdGlvbi5wZW5kaW5nT3BlcmF0aW9uID09IG51bGwpIHsKLSAgICAgICAgICAgIHBvcCA9IG5ldyBTeW5jU3RvcmFnZUVuZ2luZS5QZW5kaW5nT3BlcmF0aW9uKAotICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24uYWNjb3VudCwgb3BlcmF0aW9uLnVzZXJJZCwgb3BlcmF0aW9uLnJlYXNvbiwgb3BlcmF0aW9uLnN5bmNTb3VyY2UsCi0gICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5hdXRob3JpdHksIG9wZXJhdGlvbi5leHRyYXMsIG9wZXJhdGlvbi5leHBlZGl0ZWQpOwotICAgICAgICAgICAgcG9wID0gbVN5bmNTdG9yYWdlRW5naW5lLmluc2VydEludG9QZW5kaW5nKHBvcCk7CisgICAgICAgICAgICBwb3AgPSBtU3luY1N0b3JhZ2VFbmdpbmUuaW5zZXJ0SW50b1BlbmRpbmcob3BlcmF0aW9uKTsKICAgICAgICAgICAgIGlmIChwb3AgPT0gbnVsbCkgewogICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oImVycm9yIGFkZGluZyBwZW5kaW5nIHN5bmMgb3BlcmF0aW9uICIKICAgICAgICAgICAgICAgICAgICAgICAgICsgb3BlcmF0aW9uKTsKQEAgLTEzNiwxNyArMTU3LDE2IEBACiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIHJlbW92ZVVzZXIoaW50IHVzZXJJZCkgeworICAgIHB1YmxpYyB2b2lkIHJlbW92ZVVzZXJMb2NrZWQoaW50IHVzZXJJZCkgewogICAgICAgICBBcnJheUxpc3Q8U3luY09wZXJhdGlvbj4gb3BzVG9SZW1vdmUgPSBuZXcgQXJyYXlMaXN0PFN5bmNPcGVyYXRpb24+KCk7CiAgICAgICAgIGZvciAoU3luY09wZXJhdGlvbiBvcCA6IG1PcGVyYXRpb25zTWFwLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICBpZiAob3AudXNlcklkID09IHVzZXJJZCkgeworICAgICAgICAgICAgaWYgKG9wLnRhcmdldC51c2VySWQgPT0gdXNlcklkKSB7CiAgICAgICAgICAgICAgICAgb3BzVG9SZW1vdmUuYWRkKG9wKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotCi0gICAgICAgIGZvciAoU3luY09wZXJhdGlvbiBvcCA6IG9wc1RvUmVtb3ZlKSB7Ci0gICAgICAgICAgICByZW1vdmUob3ApOwotICAgICAgICB9CisgICAgICAgICAgICBmb3IgKFN5bmNPcGVyYXRpb24gb3AgOiBvcHNUb1JlbW92ZSkgeworICAgICAgICAgICAgICAgIHJlbW92ZShvcCk7CisgICAgICAgICAgICB9CiAgICAgfQogCiAgICAgLyoqCkBAIC0xNTQsOCArMTc0LDE1IEBACiAgICAgICogQHBhcmFtIG9wZXJhdGlvbiB0aGUgb3BlcmF0aW9uIHRvIHJlbW92ZQogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIHJlbW92ZShTeW5jT3BlcmF0aW9uIG9wZXJhdGlvbikgeworICAgICAgICBib29sZWFuIGlzTG9nZ2FibGUgPSBMb2cuaXNMb2dnYWJsZShUQUcsIExvZy5WRVJCT1NFKTsKICAgICAgICAgU3luY09wZXJhdGlvbiBvcGVyYXRpb25Ub1JlbW92ZSA9IG1PcGVyYXRpb25zTWFwLnJlbW92ZShvcGVyYXRpb24ua2V5KTsKKyAgICAgICAgaWYgKGlzTG9nZ2FibGUpIHsKKyAgICAgICAgICAgIExvZy52KFRBRywgIkF0dGVtcHRpbmcgdG8gcmVtb3ZlOiAiICsgb3BlcmF0aW9uLmtleSk7CisgICAgICAgIH0KICAgICAgICAgaWYgKG9wZXJhdGlvblRvUmVtb3ZlID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChpc0xvZ2dhYmxlKSB7CisgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAiQ291bGQgbm90IGZpbmQ6ICIgKyBvcGVyYXRpb24ua2V5KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAoIW1TeW5jU3RvcmFnZUVuZ2luZS5kZWxldGVGcm9tUGVuZGluZyhvcGVyYXRpb25Ub1JlbW92ZS5wZW5kaW5nT3BlcmF0aW9uKSkgewpAQCAtMTY0LDQxICsxOTEsNTggQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIG9uQmFja29mZkNoYW5nZWQoQWNjb3VudCBhY2NvdW50LCBpbnQgdXNlcklkLCBTdHJpbmcgcHJvdmlkZXJOYW1lLCBsb25nIGJhY2tvZmYpIHsKLSAgICAgICAgLy8gZm9yIGVhY2ggb3AgdGhhdCBtYXRjaGVzIHRoZSBhY2NvdW50IGFuZCBwcm92aWRlciB1cGRhdGUgaXRzCisgICAgLyoqIFJlc2V0IGJhY2tvZmZzIGZvciBhbGwgb3BlcmF0aW9ucyBpbiB0aGUgcXVldWUuICovCisgICAgcHVibGljIHZvaWQgY2xlYXJCYWNrb2ZmcygpIHsKKyAgICAgICAgZm9yIChTeW5jT3BlcmF0aW9uIG9wIDogbU9wZXJhdGlvbnNNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgICAgIG9wLmJhY2tvZmYgPSAwTDsKKyAgICAgICAgICAgIG9wLnVwZGF0ZUVmZmVjdGl2ZVJ1blRpbWUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG9uQmFja29mZkNoYW5nZWQoU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQgdGFyZ2V0LCBsb25nIGJhY2tvZmYpIHsKKyAgICAgICAgLy8gRm9yIGVhY2ggb3AgdGhhdCBtYXRjaGVzIHRoZSB0YXJnZXQgb2YgdGhlIGNoYW5nZWQgb3AsIHVwZGF0ZSBpdHMKICAgICAgICAgLy8gYmFja29mZiBhbmQgZWZmZWN0aXZlU3RhcnRUaW1lCiAgICAgICAgIGZvciAoU3luY09wZXJhdGlvbiBvcCA6IG1PcGVyYXRpb25zTWFwLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICBpZiAob3AuYWNjb3VudC5lcXVhbHMoYWNjb3VudCkgJiYgb3AuYXV0aG9yaXR5LmVxdWFscyhwcm92aWRlck5hbWUpCi0gICAgICAgICAgICAgICAgICAgICYmIG9wLnVzZXJJZCA9PSB1c2VySWQpIHsKKyAgICAgICAgICAgIGlmIChvcC50YXJnZXQubWF0Y2hlc1NwZWModGFyZ2V0KSkgewogICAgICAgICAgICAgICAgIG9wLmJhY2tvZmYgPSBiYWNrb2ZmOwogICAgICAgICAgICAgICAgIG9wLnVwZGF0ZUVmZmVjdGl2ZVJ1blRpbWUoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIG9uRGVsYXlVbnRpbFRpbWVDaGFuZ2VkKEFjY291bnQgYWNjb3VudCwgU3RyaW5nIHByb3ZpZGVyTmFtZSwgbG9uZyBkZWxheVVudGlsKSB7Ci0gICAgICAgIC8vIGZvciBlYWNoIG9wIHRoYXQgbWF0Y2hlcyB0aGUgYWNjb3VudCBhbmQgcHJvdmlkZXIgdXBkYXRlIGl0cwotICAgICAgICAvLyBkZWxheVVudGlsVGltZSBhbmQgZWZmZWN0aXZlU3RhcnRUaW1lCisgICAgcHVibGljIHZvaWQgb25EZWxheVVudGlsVGltZUNoYW5nZWQoU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQgdGFyZ2V0LCBsb25nIGRlbGF5VW50aWwpIHsKKyAgICAgICAgLy8gZm9yIGVhY2ggb3AgdGhhdCBtYXRjaGVzIHRoZSB0YXJnZXQgaW5mbyBvZiB0aGUgcHJvdmlkZWQgb3AsIGNoYW5nZSB0aGUgZGVsYXkgdGltZS4KICAgICAgICAgZm9yIChTeW5jT3BlcmF0aW9uIG9wIDogbU9wZXJhdGlvbnNNYXAudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGlmIChvcC5hY2NvdW50LmVxdWFscyhhY2NvdW50KSAmJiBvcC5hdXRob3JpdHkuZXF1YWxzKHByb3ZpZGVyTmFtZSkpIHsKKyAgICAgICAgICAgIGlmIChvcC50YXJnZXQubWF0Y2hlc1NwZWModGFyZ2V0KSkgewogICAgICAgICAgICAgICAgIG9wLmRlbGF5VW50aWwgPSBkZWxheVVudGlsOwogICAgICAgICAgICAgICAgIG9wLnVwZGF0ZUVmZmVjdGl2ZVJ1blRpbWUoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIHJlbW92ZShBY2NvdW50IGFjY291bnQsIGludCB1c2VySWQsIFN0cmluZyBhdXRob3JpdHkpIHsKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYWxsIG9mIHRoZSBTeW5jT3BlcmF0aW9ucyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiB0YXJnZXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5mbyB0YXJnZXQgb2JqZWN0IHByb3ZpZGVkIGhlcmUgY2FuIGhhdmUgbnVsbCBBY2NvdW50L3Byb3ZpZGVyLiBUaGlzIGlzIHRoZSBjYXNlCisgICAgICogd2hlcmUgeW91IHdhbnQgdG8gcmVtb3ZlIGFsbCBvcHMgYXNzb2NpYXRlZCB3aXRoIGEgcHJvdmlkZXIgKG51bGwgQWNjb3VudCkgb3IgYWxsIG9wcworICAgICAqIGFzc29jaWF0ZWQgd2l0aCBhbiBhY2NvdW50IChudWxsIHByb3ZpZGVyKS4KKyAgICAgKiBAcGFyYW0gZXh0cmFzIG9wdGlvbiBidW5kbGUgdG8gaW5jbHVkZSB0byBmdXJ0aGVyIHNwZWNpZnkgd2hpY2ggb3BlcmF0aW9uIHRvIHJlbW92ZS4gSWYgdGhpcworICAgICAqIGJ1bmRsZSBjb250YWlucyBzeW5jIHNldHRpbmdzIGZsYWdzLCB0aGV5IGFyZSBpZ25vcmVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbW92ZShmaW5hbCBTeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludCBpbmZvLCBCdW5kbGUgZXh0cmFzKSB7CiAgICAgICAgIEl0ZXJhdG9yPE1hcC5FbnRyeTxTdHJpbmcsIFN5bmNPcGVyYXRpb24+PiBlbnRyaWVzID0gbU9wZXJhdGlvbnNNYXAuZW50cnlTZXQoKS5pdGVyYXRvcigpOwogICAgICAgICB3aGlsZSAoZW50cmllcy5oYXNOZXh0KCkpIHsKICAgICAgICAgICAgIE1hcC5FbnRyeTxTdHJpbmcsIFN5bmNPcGVyYXRpb24+IGVudHJ5ID0gZW50cmllcy5uZXh0KCk7CiAgICAgICAgICAgICBTeW5jT3BlcmF0aW9uIHN5bmNPcGVyYXRpb24gPSBlbnRyeS5nZXRWYWx1ZSgpOwotICAgICAgICAgICAgaWYgKGFjY291bnQgIT0gbnVsbCAmJiAhc3luY09wZXJhdGlvbi5hY2NvdW50LmVxdWFscyhhY2NvdW50KSkgeworICAgICAgICAgICAgZmluYWwgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQgb3BJbmZvID0gc3luY09wZXJhdGlvbi50YXJnZXQ7CisgICAgICAgICAgICBpZiAoIW9wSW5mby5tYXRjaGVzU3BlYyhpbmZvKSkgewogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGF1dGhvcml0eSAhPSBudWxsICYmICFzeW5jT3BlcmF0aW9uLmF1dGhvcml0eS5lcXVhbHMoYXV0aG9yaXR5KSkgewotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHVzZXJJZCAhPSBzeW5jT3BlcmF0aW9uLnVzZXJJZCkgeworICAgICAgICAgICAgaWYgKGV4dHJhcyAhPSBudWxsCisgICAgICAgICAgICAgICAgICAgICYmICFTeW5jTWFuYWdlci5zeW5jRXh0cmFzRXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgICAgc3luY09wZXJhdGlvbi5leHRyYXMsCisgICAgICAgICAgICAgICAgICAgICAgICBleHRyYXMsCisgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKiBubyBjb25maWcgZmxhZ3MqLykpIHsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVudHJpZXMucmVtb3ZlKCk7CmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9jb250ZW50L1N5bmNTdG9yYWdlRW5naW5lLmphdmEgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9jb250ZW50L1N5bmNTdG9yYWdlRW5naW5lLmphdmEKaW5kZXggNDFlZjIyOS4uZTk5YWRjNSAxMDA2NDQKLS0tIGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvY29udGVudC9TeW5jU3RvcmFnZUVuZ2luZS5qYXZhCisrKyBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2NvbnRlbnQvU3luY1N0b3JhZ2VFbmdpbmUuamF2YQpAQCAtMjQsNiArMjQsNyBAQAogaW1wb3J0IGFuZHJvaWQuY29udGVudC5JU3luY1N0YXR1c09ic2VydmVyOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5QZXJpb2RpY1N5bmM7CiBpbXBvcnQgYW5kcm9pZC5jb250ZW50LlN5bmNJbmZvOworaW1wb3J0IGFuZHJvaWQuY29udGVudC5TeW5jUmVxdWVzdDsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuU3luY1N0YXR1c0luZm87CiBpbXBvcnQgYW5kcm9pZC5kYXRhYmFzZS5DdXJzb3I7CiBpbXBvcnQgYW5kcm9pZC5kYXRhYmFzZS5zcWxpdGUuU1FMaXRlRGF0YWJhc2U7CkBAIC0zNiwxMCArMzcsMTIgQEAKIGltcG9ydCBhbmRyb2lkLm9zLlBhcmNlbDsKIGltcG9ydCBhbmRyb2lkLm9zLlJlbW90ZUNhbGxiYWNrTGlzdDsKIGltcG9ydCBhbmRyb2lkLm9zLlJlbW90ZUV4Y2VwdGlvbjsKK2ltcG9ydCBhbmRyb2lkLm9zLlVzZXJIYW5kbGU7CiBpbXBvcnQgYW5kcm9pZC51dGlsLkF0b21pY0ZpbGU7CiBpbXBvcnQgYW5kcm9pZC51dGlsLkxvZzsKIGltcG9ydCBhbmRyb2lkLnV0aWwuUGFpcjsKIGltcG9ydCBhbmRyb2lkLnV0aWwuU3BhcnNlQXJyYXk7CitpbXBvcnQgYW5kcm9pZC51dGlsLkFycmF5TWFwOwogaW1wb3J0IGFuZHJvaWQudXRpbC5YbWw7CiAKIGltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC5hbm5vdGF0aW9ucy5WaXNpYmxlRm9yVGVzdGluZzsKQEAgLTcxLDcgKzc0LDYgQEAKIHB1YmxpYyBjbGFzcyBTeW5jU3RvcmFnZUVuZ2luZSBleHRlbmRzIEhhbmRsZXIgewogCiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRBRyA9ICJTeW5jTWFuYWdlciI7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUQUdfRklMRSA9ICJTeW5jTWFuYWdlckZpbGUiOwogCiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFhNTF9BVFRSX05FWFRfQVVUSE9SSVRZX0lEID0gIm5leHRBdXRob3JpdHlJZCI7CkBAIC0xMDgsMTAgKzExMCw3IEBACiAKICAgICAvKiogRW51bSB2YWx1ZSBmb3IgYSBsb2NhbC1pbml0aWF0ZWQgc3luYy4gKi8KICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTT1VSQ0VfTE9DQUwgPSAxOwotICAgIC8qKgotICAgICAqIEVudW0gdmFsdWUgZm9yIGEgcG9sbC1iYXNlZCBzeW5jIChlLmcuLCB1cG9uIGNvbm5lY3Rpb24gdG8KLSAgICAgKiBuZXR3b3JrKQotICAgICAqLworICAgIC8qKiBFbnVtIHZhbHVlIGZvciBhIHBvbGwtYmFzZWQgc3luYyAoZS5nLiwgdXBvbiBjb25uZWN0aW9uIHRvIG5ldHdvcmspICovCiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU09VUkNFX1BPTEwgPSAyOwogCiAgICAgLyoqIEVudW0gdmFsdWUgZm9yIGEgdXNlci1pbml0aWF0ZWQgc3luYy4gKi8KQEAgLTExOSw2ICsxMTgsOSBAQAogCiAgICAgLyoqIEVudW0gdmFsdWUgZm9yIGEgcGVyaW9kaWMgc3luYy4gKi8KICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTT1VSQ0VfUEVSSU9ESUMgPSA0OworICAgIAorICAgIC8qKiBFbnVtIHZhbHVlIGZvciBhIHN5bmMgc3RhcnRlZCBmb3IgYSBzZXJ2aWNlLiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNPVVJDRV9TRVJWSUNFID0gNTsKIAogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgbG9uZyBOT1RfSU5fQkFDS09GRl9NT0RFID0gLTE7CiAKQEAgLTEyOCw3ICsxMzAsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxPQ0FMIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQT0xMIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVU0VSIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQRVJJT0RJQyIgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQRVJJT0RJQyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0VSVklDRSJ9OwogCiAgICAgLy8gVGhlIE1FU0cgY29sdW1uIHdpbGwgY29udGFpbiBvbmUgb2YgdGhlc2Ugb3Igb25lIG9mIHRoZSBFcnJvciB0eXBlcy4KICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBNRVNHX1NVQ0NFU1MgPSAic3VjY2VzcyI7CkBAIC0xNTYsNDEgKzE1OSw1NCBAQAogICAgIH0KIAogICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgUGVuZGluZ09wZXJhdGlvbiB7Ci0gICAgICAgIGZpbmFsIEFjY291bnQgYWNjb3VudDsKLSAgICAgICAgZmluYWwgaW50IHVzZXJJZDsKKyAgICAgICAgZmluYWwgRW5kUG9pbnQgdGFyZ2V0OwogICAgICAgICBmaW5hbCBpbnQgcmVhc29uOwogICAgICAgICBmaW5hbCBpbnQgc3luY1NvdXJjZTsKLSAgICAgICAgZmluYWwgU3RyaW5nIGF1dGhvcml0eTsKICAgICAgICAgZmluYWwgQnVuZGxlIGV4dHJhczsgICAgICAgIC8vIG5vdGU6IHJlYWQtb25seS4KLSAgICAgICAgZmluYWwgQ29tcG9uZW50TmFtZSBzZXJ2aWNlTmFtZTsKICAgICAgICAgZmluYWwgYm9vbGVhbiBleHBlZGl0ZWQ7CiAKLSAgICAgICAgaW50IGF1dGhvcml0eUlkOworICAgICAgICBmaW5hbCBpbnQgYXV0aG9yaXR5SWQ7CisgICAgICAgIC8vIE5vIGxvbmdlciB1c2VkLgorICAgICAgICAvLyBLZWVwIGFyb3VuZCBmb3Igc2FrZSB1cCB1cGRhdGluZyBmcm9tIHBlbmRpbmcuYmluIHRvIHBlbmRpbmcueG1sCiAgICAgICAgIGJ5dGVbXSBmbGF0RXh0cmFzOwogCi0gICAgICAgIFBlbmRpbmdPcGVyYXRpb24oQWNjb3VudCBhY2NvdW50LCBpbnQgdXNlcklkLCBpbnQgcmVhc29uLCBpbnQgc291cmNlLAotICAgICAgICAgICAgICAgIFN0cmluZyBhdXRob3JpdHksIEJ1bmRsZSBleHRyYXMsIGJvb2xlYW4gZXhwZWRpdGVkKSB7Ci0gICAgICAgICAgICB0aGlzLmFjY291bnQgPSBhY2NvdW50OwotICAgICAgICAgICAgdGhpcy51c2VySWQgPSB1c2VySWQ7CisgICAgICAgIFBlbmRpbmdPcGVyYXRpb24oQXV0aG9yaXR5SW5mbyBhdXRob3JpdHksIGludCByZWFzb24sIGludCBzb3VyY2UsCisgICAgICAgICAgICAgICAgIEJ1bmRsZSBleHRyYXMsIGJvb2xlYW4gZXhwZWRpdGVkKSB7CisgICAgICAgICAgICB0aGlzLnRhcmdldCA9IGF1dGhvcml0eS50YXJnZXQ7CiAgICAgICAgICAgICB0aGlzLnN5bmNTb3VyY2UgPSBzb3VyY2U7CiAgICAgICAgICAgICB0aGlzLnJlYXNvbiA9IHJlYXNvbjsKLSAgICAgICAgICAgIHRoaXMuYXV0aG9yaXR5ID0gYXV0aG9yaXR5OwogICAgICAgICAgICAgdGhpcy5leHRyYXMgPSBleHRyYXMgIT0gbnVsbCA/IG5ldyBCdW5kbGUoZXh0cmFzKSA6IGV4dHJhczsKICAgICAgICAgICAgIHRoaXMuZXhwZWRpdGVkID0gZXhwZWRpdGVkOwotICAgICAgICAgICAgdGhpcy5hdXRob3JpdHlJZCA9IC0xOwotICAgICAgICAgICAgdGhpcy5zZXJ2aWNlTmFtZSA9IG51bGw7CisgICAgICAgICAgICB0aGlzLmF1dGhvcml0eUlkID0gYXV0aG9yaXR5LmlkZW50OwogICAgICAgICB9CiAKICAgICAgICAgUGVuZGluZ09wZXJhdGlvbihQZW5kaW5nT3BlcmF0aW9uIG90aGVyKSB7Ci0gICAgICAgICAgICB0aGlzLmFjY291bnQgPSBvdGhlci5hY2NvdW50OwotICAgICAgICAgICAgdGhpcy51c2VySWQgPSBvdGhlci51c2VySWQ7CiAgICAgICAgICAgICB0aGlzLnJlYXNvbiA9IG90aGVyLnJlYXNvbjsKICAgICAgICAgICAgIHRoaXMuc3luY1NvdXJjZSA9IG90aGVyLnN5bmNTb3VyY2U7Ci0gICAgICAgICAgICB0aGlzLmF1dGhvcml0eSA9IG90aGVyLmF1dGhvcml0eTsKKyAgICAgICAgICAgIHRoaXMudGFyZ2V0ID0gb3RoZXIudGFyZ2V0OwogICAgICAgICAgICAgdGhpcy5leHRyYXMgPSBvdGhlci5leHRyYXM7CiAgICAgICAgICAgICB0aGlzLmF1dGhvcml0eUlkID0gb3RoZXIuYXV0aG9yaXR5SWQ7CiAgICAgICAgICAgICB0aGlzLmV4cGVkaXRlZCA9IG90aGVyLmV4cGVkaXRlZDsKLSAgICAgICAgICAgIHRoaXMuc2VydmljZU5hbWUgPSBvdGhlci5zZXJ2aWNlTmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zaWRlcmVkIGVxdWFsIGlmIHRoZXkgdGFyZ2V0IHRoZSBzYW1lIHN5bmMgYWRhcHRlciAoQQorICAgICAgICAgKiB7QGxpbmsgYW5kcm9pZC5jb250ZW50LlN5bmNTZXJ2aWNlfQorICAgICAgICAgKiBpcyBjb25zaWRlcmVkIGFuIGFkYXB0ZXIpLCBmb3IgdGhlIHNhbWUgdXNlcklkLgorICAgICAgICAgKiBAcGFyYW0gb3RoZXIgUGVuZGluZ09wZXJhdGlvbiB0byBjb21wYXJlLgorICAgICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBwZW5kaW5nIG9wcyBhcmUgdGhlIHNhbWUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoUGVuZGluZ09wZXJhdGlvbiBvdGhlcikgeworICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5tYXRjaGVzU3BlYyhvdGhlci50YXJnZXQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiAic2VydmljZT0iICsgdGFyZ2V0LnNlcnZpY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiB1c2VyPSIgKyB0YXJnZXQudXNlcklkCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYXV0aD0iICsgdGFyZ2V0CisgICAgICAgICAgICAgICAgICAgICAgICArICIgYWNjb3VudD0iICsgdGFyZ2V0LmFjY291bnQKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBzcmM9IiArIHN5bmNTb3VyY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBleHRyYXM9IiArIGV4dHJhczsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjA0LDE3ICsyMjAsOTYgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgQXV0aG9yaXR5SW5mbyB7CisgICAgLyoqICBCYXJlIGJvbmVzIHJlcHJlc2VudGF0aW9uIG9mIGEgc3luYyB0YXJnZXQuICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBFbmRQb2ludCB7CisgICAgICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRW5kUG9pbnQgVVNFUl9BTExfUFJPVklERVJfQUxMX0FDQ09VTlRTX0FMTCA9CisgICAgICAgICAgICAgICAgbmV3IEVuZFBvaW50KG51bGwsIG51bGwsIFVzZXJIYW5kbGUuVVNFUl9BTEwpOwogICAgICAgICBmaW5hbCBDb21wb25lbnROYW1lIHNlcnZpY2U7CiAgICAgICAgIGZpbmFsIEFjY291bnQgYWNjb3VudDsKICAgICAgICAgZmluYWwgaW50IHVzZXJJZDsKLSAgICAgICAgZmluYWwgU3RyaW5nIGF1dGhvcml0eTsKKyAgICAgICAgZmluYWwgU3RyaW5nIHByb3ZpZGVyOworICAgICAgICBmaW5hbCBib29sZWFuIHRhcmdldF9zZXJ2aWNlOworICAgICAgICBmaW5hbCBib29sZWFuIHRhcmdldF9wcm92aWRlcjsKKworICAgICAgICBwdWJsaWMgRW5kUG9pbnQoQ29tcG9uZW50TmFtZSBzZXJ2aWNlLCBpbnQgdXNlcklkKSB7CisgICAgICAgICAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlOworICAgICAgICAgICAgdGhpcy51c2VySWQgPSB1c2VySWQ7CisgICAgICAgICAgICB0aGlzLmFjY291bnQgPSBudWxsOworICAgICAgICAgICAgdGhpcy5wcm92aWRlciA9IG51bGw7CisgICAgICAgICAgICB0aGlzLnRhcmdldF9zZXJ2aWNlID0gdHJ1ZTsKKyAgICAgICAgICAgIHRoaXMudGFyZ2V0X3Byb3ZpZGVyID0gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgRW5kUG9pbnQoQWNjb3VudCBhY2NvdW50LCBTdHJpbmcgcHJvdmlkZXIsIGludCB1c2VySWQpIHsKKyAgICAgICAgICAgIHRoaXMuYWNjb3VudCA9IGFjY291bnQ7CisgICAgICAgICAgICB0aGlzLnByb3ZpZGVyID0gcHJvdmlkZXI7CisgICAgICAgICAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZDsKKyAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IG51bGw7CisgICAgICAgICAgICB0aGlzLnRhcmdldF9zZXJ2aWNlID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLnRhcmdldF9wcm92aWRlciA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQW4gRW5kcG9pbnQgZm9yIGEgc3luYyBtYXRjaGVzIGlmIGl0IHRhcmdldHMgdGhlIHNhbWUgc3luYyBhZGFwdGVyIGZvciB0aGUgc2FtZSB1c2VyLgorICAgICAgICAgKgorICAgICAgICAgKiBAcGFyYW0gc3BlYyB0aGUgRW5kcG9pbnQgdG8gbWF0Y2guIElmIHRoZSBzcGVjIGhhcyBudWxsIGZpZWxkcywgdGhleSBpbmRpY2F0ZSBhIHdpbGRjYXJkCisgICAgICAgICAqIGFuZCBtYXRjaCBhbnkuIAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gbWF0Y2hlc1NwZWMoRW5kUG9pbnQgc3BlYykgeworICAgICAgICAgICAgaWYgKHVzZXJJZCAhPSBzcGVjLnVzZXJJZAorICAgICAgICAgICAgICAgICAgICAmJiB1c2VySWQgIT0gVXNlckhhbmRsZS5VU0VSX0FMTAorICAgICAgICAgICAgICAgICAgICAmJiBzcGVjLnVzZXJJZCAhPSBVc2VySGFuZGxlLlVTRVJfQUxMKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRhcmdldF9zZXJ2aWNlICYmIHNwZWMudGFyZ2V0X3NlcnZpY2UpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VydmljZS5lcXVhbHMoc3BlYy5zZXJ2aWNlKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodGFyZ2V0X3Byb3ZpZGVyICYmIHNwZWMudGFyZ2V0X3Byb3ZpZGVyKSB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBhY2NvdW50c01hdGNoOworICAgICAgICAgICAgICAgIGlmIChzcGVjLmFjY291bnQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBhY2NvdW50c01hdGNoID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhY2NvdW50c01hdGNoID0gYWNjb3VudC5lcXVhbHMoc3BlYy5hY2NvdW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYm9vbGVhbiBwcm92aWRlcnNNYXRjaDsKKyAgICAgICAgICAgICAgICBpZiAoc3BlYy5wcm92aWRlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVyc01hdGNoID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwcm92aWRlcnNNYXRjaCA9IHByb3ZpZGVyLmVxdWFscyhzcGVjLnByb3ZpZGVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGFjY291bnRzTWF0Y2ggJiYgcHJvdmlkZXJzTWF0Y2g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CisgICAgICAgICAgICBpZiAodGFyZ2V0X3Byb3ZpZGVyKSB7CisgICAgICAgICAgICAgICAgc2IuYXBwZW5kKGFjY291bnQgPT0gbnVsbCA/ICJBTEwgQUNDUyIgOiBhY2NvdW50Lm5hbWUpCisgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoIi8iKQorICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKHByb3ZpZGVyID09IG51bGwgPyAiQUxMIFBEUlMiIDogcHJvdmlkZXIpOworICAgICAgICAgICAgfSBlbHNlIGlmICh0YXJnZXRfc2VydmljZSkgeworICAgICAgICAgICAgICAgIHNiLmFwcGVuZChzZXJ2aWNlLmdldFBhY2thZ2VOYW1lKCkgKyAiLyIpCisgICAgICAgICAgICAgICAgICAuYXBwZW5kKHNlcnZpY2UuZ2V0Q2xhc3NOYW1lKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQoImludmFsaWQgdGFyZ2V0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzYi5hcHBlbmQoIjp1IiArIHVzZXJJZCk7CisgICAgICAgICAgICByZXR1cm4gc2IudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgQXV0aG9yaXR5SW5mbyB7CisgICAgICAgIGZpbmFsIEVuZFBvaW50IHRhcmdldDsKICAgICAgICAgZmluYWwgaW50IGlkZW50OwogICAgICAgICBib29sZWFuIGVuYWJsZWQ7CiAgICAgICAgIGludCBzeW5jYWJsZTsKKyAgICAgICAgLyoqIFRpbWUgYXQgd2hpY2ggdGhpcyBzeW5jIHdpbGwgcnVuLCB0YWtpbmcgaW50byBhY2NvdW50IGJhY2tvZmYuICovCiAgICAgICAgIGxvbmcgYmFja29mZlRpbWU7CisgICAgICAgIC8qKiBBbW91bnQgb2YgZGVsYXkgZHVlIHRvIGJhY2tvZmYuICovCiAgICAgICAgIGxvbmcgYmFja29mZkRlbGF5OworICAgICAgICAvKiogVGltZSBvZmZzZXQgdG8gYWRkIHRvIGFueSByZXF1ZXN0cyBjb21pbmcgdG8gdGhpcyB0YXJnZXQuICovCiAgICAgICAgIGxvbmcgZGVsYXlVbnRpbDsKKwogICAgICAgICBmaW5hbCBBcnJheUxpc3Q8UGVyaW9kaWNTeW5jPiBwZXJpb2RpY1N5bmNzOwogCiAgICAgICAgIC8qKgpAQCAtMjI0LDEwICszMTksNyBAQAogICAgICAgICAgKiBAcGFyYW0gdG9Db3B5IEF1dGhvcml0eUluZm8gdG8gYmUgY29waWVkLgogICAgICAgICAgKi8KICAgICAgICAgQXV0aG9yaXR5SW5mbyhBdXRob3JpdHlJbmZvIHRvQ29weSkgewotICAgICAgICAgICAgYWNjb3VudCA9IHRvQ29weS5hY2NvdW50OwotICAgICAgICAgICAgdXNlcklkID0gdG9Db3B5LnVzZXJJZDsKLSAgICAgICAgICAgIGF1dGhvcml0eSA9IHRvQ29weS5hdXRob3JpdHk7Ci0gICAgICAgICAgICBzZXJ2aWNlID0gdG9Db3B5LnNlcnZpY2U7CisgICAgICAgICAgICB0YXJnZXQgPSB0b0NvcHkudGFyZ2V0OwogICAgICAgICAgICAgaWRlbnQgPSB0b0NvcHkuaWRlbnQ7CiAgICAgICAgICAgICBlbmFibGVkID0gdG9Db3B5LmVuYWJsZWQ7CiAgICAgICAgICAgICBzeW5jYWJsZSA9IHRvQ29weS5zeW5jYWJsZTsKQEAgLTI0MSw1NiArMzMzLDQwIEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICAvKioKLSAgICAgICAgICogQ3JlYXRlIGFuIGF1dGhvcml0eSB3aXRoIG9uZSBwZXJpb2RpYyBzeW5jIHNjaGVkdWxlZCB3aXRoIGFuIGVtcHR5IGJ1bmRsZSBhbmQgc3luY2luZwotICAgICAgICAgKiBldmVyeSBkYXkuIEFuIGVtcHR5IGJ1bmRsZSBpcyBjb25zaWRlcmVkIGVxdWFsIHRvIGFueSBvdGhlciBidW5kbGUgc2VlCi0gICAgICAgICAqIHtAbGluayBQZXJpb2RpY1N5bmMuc3luY0V4dHJhc0VxdWFsc30uCi0gICAgICAgICAqIEBwYXJhbSBhY2NvdW50IEFjY291bnQgdGhhdCB0aGlzIGF1dGhvcml0eSBzeW5jcy4KLSAgICAgICAgICogQHBhcmFtIHVzZXJJZCB3aGljaCB1c2VyIHRoaXMgc3luYyBpcyByZWdpc3RlcmVkIGZvci4KLSAgICAgICAgICogQHBhcmFtIHVzZXJJZCB1c2VyIGZvciB3aGljaCB0aGlzIGF1dGhvcml0eSBpcyByZWdpc3RlcmVkLgotICAgICAgICAgKiBAcGFyYW0gaWRlbnQgaWQgb2YgdGhpcyBhdXRob3JpdHkuCi0gICAgICAgICAqLwotICAgICAgICBBdXRob3JpdHlJbmZvKEFjY291bnQgYWNjb3VudCwgaW50IHVzZXJJZCwgU3RyaW5nIGF1dGhvcml0eSwgaW50IGlkZW50KSB7Ci0gICAgICAgICAgICB0aGlzLmFjY291bnQgPSBhY2NvdW50OwotICAgICAgICAgICAgdGhpcy51c2VySWQgPSB1c2VySWQ7Ci0gICAgICAgICAgICB0aGlzLmF1dGhvcml0eSA9IGF1dGhvcml0eTsKLSAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IG51bGw7Ci0gICAgICAgICAgICB0aGlzLmlkZW50ID0gaWRlbnQ7Ci0gICAgICAgICAgICBlbmFibGVkID0gU1lOQ19FTkFCTEVEX0RFRkFVTFQ7Ci0gICAgICAgICAgICBzeW5jYWJsZSA9IC0xOyAvLyBkZWZhdWx0IHRvICJ1bmtub3duIgotICAgICAgICAgICAgYmFja29mZlRpbWUgPSAtMTsgLy8gaWYgPCAwIHRoZW4gd2UgYXJlbid0IGluIGJhY2tvZmYgbW9kZQotICAgICAgICAgICAgYmFja29mZkRlbGF5ID0gLTE7IC8vIGlmIDwgMCB0aGVuIHdlIGFyZW4ndCBpbiBiYWNrb2ZmIG1vZGUKKyAgICAgICAgQXV0aG9yaXR5SW5mbyhFbmRQb2ludCBpbmZvLCBpbnQgaWQpIHsKKyAgICAgICAgICAgIHRhcmdldCA9IGluZm87CisgICAgICAgICAgICBpZGVudCA9IGlkOworICAgICAgICAgICAgZW5hYmxlZCA9IGluZm8udGFyZ2V0X3Byb3ZpZGVyID8KKyAgICAgICAgICAgICAgICAgICAgU1lOQ19FTkFCTEVEX0RFRkFVTFQgOiB0cnVlOworICAgICAgICAgICAgLy8gU2VydmljZSBpcyBhY3RpdmUgYnkgZGVmYXVsdCwKKyAgICAgICAgICAgIGlmIChpbmZvLnRhcmdldF9zZXJ2aWNlKSB7CisgICAgICAgICAgICAgICAgdGhpcy5zeW5jYWJsZSA9IDE7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBwZXJpb2RpY1N5bmNzID0gbmV3IEFycmF5TGlzdDxQZXJpb2RpY1N5bmM+KCk7Ci0gICAgICAgICAgICAvLyBPbGQgdmVyc2lvbiBhZGRzIG9uZSBwZXJpb2RpYyBzeW5jIGEgZGF5LgotICAgICAgICAgICAgcGVyaW9kaWNTeW5jcy5hZGQobmV3IFBlcmlvZGljU3luYyhhY2NvdW50LCBhdXRob3JpdHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCdW5kbGUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9QT0xMX0ZSRVFVRU5DWV9TRUNPTkRTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVEZWZhdWx0RmxleFRpbWUoREVGQVVMVF9QT0xMX0ZSRVFVRU5DWV9TRUNPTkRTKSkpOworICAgICAgICAgICAgZGVmYXVsdEluaXRpYWxpc2F0aW9uKCk7CiAgICAgICAgIH0KIAotICAgICAgICAvKioKLSAgICAgICAgICogQ3JlYXRlIGFuIGF1dGhvcml0eSB3aXRoIG9uZSBwZXJpb2RpYyBzeW5jIHNjaGVkdWxlZCB3aXRoIGFuIGVtcHR5IGJ1bmRsZSBhbmQgc3luY2luZwotICAgICAgICAgKiBldmVyeSBkYXkgdXNpbmcgYSBzeW5jIHNlcnZpY2UuCi0gICAgICAgICAqIEBwYXJhbSBjbmFtZSBzeW5jIHNlcnZpY2UgaWRlbnRpZmllci4KLSAgICAgICAgICogQHBhcmFtIHVzZXJJZCB1c2VyIGZvciB3aGljaCB0aGlzIGF1dGhvcml0eSBpcyByZWdpc3RlcmVkLgotICAgICAgICAgKiBAcGFyYW0gaWRlbnQgaWQgb2YgdGhpcyBhdXRob3JpdHkuCi0gICAgICAgICAqLwotICAgICAgICBBdXRob3JpdHlJbmZvKENvbXBvbmVudE5hbWUgY25hbWUsIGludCB1c2VySWQsIGludCBpZGVudCkgewotICAgICAgICAgICAgdGhpcy5hY2NvdW50ID0gbnVsbDsKLSAgICAgICAgICAgIHRoaXMudXNlcklkID0gdXNlcklkOwotICAgICAgICAgICAgdGhpcy5hdXRob3JpdHkgPSBudWxsOwotICAgICAgICAgICAgdGhpcy5zZXJ2aWNlID0gY25hbWU7Ci0gICAgICAgICAgICB0aGlzLmlkZW50ID0gaWRlbnQ7Ci0gICAgICAgICAgICAvLyBTeW5jIHNlcnZpY2UgaXMgYWx3YXlzIGVuYWJsZWQuCi0gICAgICAgICAgICBlbmFibGVkID0gdHJ1ZTsKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGRlZmF1bHRJbml0aWFsaXNhdGlvbigpIHsKICAgICAgICAgICAgIHN5bmNhYmxlID0gLTE7IC8vIGRlZmF1bHQgdG8gInVua25vd24iCiAgICAgICAgICAgICBiYWNrb2ZmVGltZSA9IC0xOyAvLyBpZiA8IDAgdGhlbiB3ZSBhcmVuJ3QgaW4gYmFja29mZiBtb2RlCiAgICAgICAgICAgICBiYWNrb2ZmRGVsYXkgPSAtMTsgLy8gaWYgPCAwIHRoZW4gd2UgYXJlbid0IGluIGJhY2tvZmYgbW9kZQotICAgICAgICAgICAgcGVyaW9kaWNTeW5jcyA9IG5ldyBBcnJheUxpc3Q8UGVyaW9kaWNTeW5jPigpOwotICAgICAgICAgICAgcGVyaW9kaWNTeW5jcy5hZGQobmV3IFBlcmlvZGljU3luYyhhY2NvdW50LCBhdXRob3JpdHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCdW5kbGUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9QT0xMX0ZSRVFVRU5DWV9TRUNPTkRTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdGVEZWZhdWx0RmxleFRpbWUoREVGQVVMVF9QT0xMX0ZSRVFVRU5DWV9TRUNPTkRTKSkpOworICAgICAgICAgICAgUGVyaW9kaWNTeW5jIGRlZmF1bHRTeW5jOworICAgICAgICAgICAgLy8gT2xkIHZlcnNpb24gaXMgb25lIHN5bmMgYSBkYXkuIEVtcHR5IGJ1bmRsZSBnZXRzIHJlcGxhY2VkIGJ5IGFueSBhZGRQZXJpb2RpY1N5bmMoKQorICAgICAgICAgICAgLy8gY2FsbC4KKyAgICAgICAgICAgIGlmICh0YXJnZXQudGFyZ2V0X3Byb3ZpZGVyKSB7CisgICAgICAgICAgICAgICAgZGVmYXVsdFN5bmMgPQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFBlcmlvZGljU3luYyh0YXJnZXQuYWNjb3VudCwgdGFyZ2V0LnByb3ZpZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCdW5kbGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBERUZBVUxUX1BPTExfRlJFUVVFTkNZX1NFQ09ORFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlRGVmYXVsdEZsZXhUaW1lKERFRkFVTFRfUE9MTF9GUkVRVUVOQ1lfU0VDT05EUykpOworICAgICAgICAgICAgICAgIHBlcmlvZGljU3luY3MuYWRkKGRlZmF1bHRTeW5jKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIHRhcmdldCArICIsIGVuYWJsZWQ9IiArIGVuYWJsZWQgKyAiLCBzeW5jYWJsZT0iICsgc3luY2FibGUgKyAiLCBiYWNrb2ZmPSIKKyAgICAgICAgICAgICAgICAgICAgKyBiYWNrb2ZmVGltZSArICIsIGRlbGF5PSIgKyBkZWxheVVudGlsOwogICAgICAgICB9CiAgICAgfQogCkBAIC0zMjIsMTYgKzM5OCw5IEBACiAgICAgfQogCiAgICAgaW50ZXJmYWNlIE9uU3luY1JlcXVlc3RMaXN0ZW5lciB7Ci0gICAgICAgIC8qKgotICAgICAgICAgKiBDYWxsZWQgd2hlbiBhIHN5bmMgaXMgbmVlZGVkIG9uIGFuIGFjY291bnQocykgZHVlIHRvIHNvbWUgY2hhbmdlIGluIHN0YXRlLgotICAgICAgICAgKiBAcGFyYW0gYWNjb3VudAotICAgICAgICAgKiBAcGFyYW0gdXNlcklkCi0gICAgICAgICAqIEBwYXJhbSByZWFzb24KLSAgICAgICAgICogQHBhcmFtIGF1dGhvcml0eQotICAgICAgICAgKiBAcGFyYW0gZXh0cmFzCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgdm9pZCBvblN5bmNSZXF1ZXN0KEFjY291bnQgYWNjb3VudCwgaW50IHVzZXJJZCwgaW50IHJlYXNvbiwgU3RyaW5nIGF1dGhvcml0eSwKLSAgICAgICAgICAgICAgICBCdW5kbGUgZXh0cmFzKTsKKworICAgICAgICAvKiogQ2FsbGVkIHdoZW4gYSBzeW5jIGlzIG5lZWRlZCBvbiBhbiBhY2NvdW50KHMpIGR1ZSB0byBzb21lIGNoYW5nZSBpbiBzdGF0ZS4gKi8KKyAgICAgICAgcHVibGljIHZvaWQgb25TeW5jUmVxdWVzdChFbmRQb2ludCBpbmZvLCBpbnQgcmVhc29uLCBCdW5kbGUgZXh0cmFzKTsKICAgICB9CiAKICAgICAvLyBQcmltYXJ5IGxpc3Qgb2YgYWxsIHN5bmNhYmxlIGF1dGhvcml0aWVzLiAgQWxzbyBvdXIgZ2xvYmFsIGxvY2suCkBAIC0zNTYsOSArNDI1LDkgQEAKICAgICBwcml2YXRlIGZpbmFsIFJlbW90ZUNhbGxiYWNrTGlzdDxJU3luY1N0YXR1c09ic2VydmVyPiBtQ2hhbmdlTGlzdGVuZXJzCiAgICAgICAgICAgICA9IG5ldyBSZW1vdGVDYWxsYmFja0xpc3Q8SVN5bmNTdGF0dXNPYnNlcnZlcj4oKTsKIAotICAgIC8qKiBSZXZlcnNlIG1hcHBpbmcgZm9yIGNvbXBvbmVudCBuYW1lIC0+IDx1c2VyaWQgLT4gYXV0aG9yaXR5IGlkPi4gKi8KLSAgICBwcml2YXRlIGZpbmFsIEhhc2hNYXA8Q29tcG9uZW50TmFtZSwgU3BhcnNlQXJyYXk8QXV0aG9yaXR5SW5mbz4+IG1TZXJ2aWNlcyA9Ci0gICAgICAgICAgICBuZXcgSGFzaE1hcDxDb21wb25lbnROYW1lLCBTcGFyc2VBcnJheTxBdXRob3JpdHlJbmZvPj4oKTsKKyAgICAvKiogUmV2ZXJzZSBtYXBwaW5nIGZvciBjb21wb25lbnQgbmFtZSAtPiA8dXNlcmlkIC0+IHRhcmdldCBpZD4uICovCisgICAgcHJpdmF0ZSBmaW5hbCBBcnJheU1hcDxDb21wb25lbnROYW1lLCBTcGFyc2VBcnJheTxBdXRob3JpdHlJbmZvPj4gbVNlcnZpY2VzID0KKyAgICAgICAgICAgIG5ldyBBcnJheU1hcDxDb21wb25lbnROYW1lLCBTcGFyc2VBcnJheTxBdXRob3JpdHlJbmZvPj4oKTsKIAogICAgIHByaXZhdGUgaW50IG1OZXh0QXV0aG9yaXR5SWQgPSAwOwogCkBAIC01MDEsNyArNTcwLDcgQEAKICAgICAgKiBAcmV0dXJuIGFtb3VudCBvZiBzZWNvbmRzIGJlZm9yZSBzeW5jVGltZVNlY29uZHMgdGhhdCB0aGUgc3luYyBjYW4gb2NjdXIuCiAgICAgICogICAgICBJLmUuCiAgICAgICogICAgICBlYXJsaWVzdF9zeW5jX3RpbWUgPSBzeW5jVGltZVNlY29uZHMgLSBjYWxjdWxhdGVEZWZhdWx0RmxleFRpbWUoc3luY1RpbWVTZWNvbmRzKQotICAgICAqIFRoZSBmbGV4IHRpbWUgaXMgY2FwcGVkIGF0IGEgcGVyY2VudGFnZSBvZiB0aGUge0BsaW5rIERFRkFVTFRfUE9MTF9GUkVRVUVOQ1lfU0VDT05EU30uCisgICAgICogVGhlIGZsZXggdGltZSBpcyBjYXBwZWQgYXQgYSBwZXJjZW50YWdlIG9mIHRoZSB7QGxpbmsgI0RFRkFVTFRfUE9MTF9GUkVRVUVOQ1lfU0VDT05EU30uCiAgICAgICovCiAgICAgcHVibGljIHN0YXRpYyBsb25nIGNhbGN1bGF0ZURlZmF1bHRGbGV4VGltZShsb25nIHN5bmNUaW1lU2Vjb25kcykgewogICAgICAgICBpZiAoc3luY1RpbWVTZWNvbmRzIDwgREVGQVVMVF9NSU5fRkxFWF9BTExPV0VEX1NFQ1MpIHsKQEAgLTUzNSw3ICs2MDQsNyBAQAogICAgICAgICAgICAgbUNoYW5nZUxpc3RlbmVycy5maW5pc2hCcm9hZGNhc3QoKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChERUJVRykgeworICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKICAgICAgICAgICAgIExvZy52KFRBRywgInJlcG9ydENoYW5nZSAiICsgd2hpY2ggKyAiIHRvOiAiICsgcmVwb3J0cyk7CiAgICAgICAgIH0KIApAQCAtNTU1LDcgKzYyNCw4IEBACiAgICAgcHVibGljIGJvb2xlYW4gZ2V0U3luY0F1dG9tYXRpY2FsbHkoQWNjb3VudCBhY2NvdW50LCBpbnQgdXNlcklkLCBTdHJpbmcgcHJvdmlkZXJOYW1lKSB7CiAgICAgICAgIHN5bmNocm9uaXplZCAobUF1dGhvcml0aWVzKSB7CiAgICAgICAgICAgICBpZiAoYWNjb3VudCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHkgPSBnZXRBdXRob3JpdHlMb2NrZWQoYWNjb3VudCwgdXNlcklkLCBwcm92aWRlck5hbWUsCisgICAgICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHkgPSBnZXRBdXRob3JpdHlMb2NrZWQoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRW5kUG9pbnQoYWNjb3VudCwgcHJvdmlkZXJOYW1lLCB1c2VySWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgImdldFN5bmNBdXRvbWF0aWNhbGx5Iik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGF1dGhvcml0eSAhPSBudWxsICYmIGF1dGhvcml0eS5lbmFibGVkOwogICAgICAgICAgICAgfQpAQCAtNTYzLDEwICs2MzMsOSBAQAogICAgICAgICAgICAgaW50IGkgPSBtQXV0aG9yaXRpZXMuc2l6ZSgpOwogICAgICAgICAgICAgd2hpbGUgKGkgPiAwKSB7CiAgICAgICAgICAgICAgICAgaS0tOwotICAgICAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5ID0gbUF1dGhvcml0aWVzLnZhbHVlQXQoaSk7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dGhvcml0eS5hdXRob3JpdHkuZXF1YWxzKHByb3ZpZGVyTmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICYmIGF1dGhvcml0eS51c2VySWQgPT0gdXNlcklkCi0gICAgICAgICAgICAgICAgICAgICAgICAmJiBhdXRob3JpdHkuZW5hYmxlZCkgeworICAgICAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5SW5mbyA9IG1BdXRob3JpdGllcy52YWx1ZUF0KGkpOworICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHlJbmZvLnRhcmdldC5tYXRjaGVzU3BlYyhuZXcgRW5kUG9pbnQoYWNjb3VudCwgcHJvdmlkZXJOYW1lLCB1c2VySWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgJiYgYXV0aG9yaXR5SW5mby5lbmFibGVkKSB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTU3NiwxNSArNjQ1LDE4IEBACiAKICAgICBwdWJsaWMgdm9pZCBzZXRTeW5jQXV0b21hdGljYWxseShBY2NvdW50IGFjY291bnQsIGludCB1c2VySWQsIFN0cmluZyBwcm92aWRlck5hbWUsCiAgICAgICAgICAgICBib29sZWFuIHN5bmMpIHsKLSAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUcsIExvZy5WRVJCT1NFKSkgewogICAgICAgICAgICAgTG9nLmQoVEFHLCAic2V0U3luY0F1dG9tYXRpY2FsbHk6ICIgKyAvKiBhY2NvdW50ICsgKi8iIHByb3ZpZGVyICIgKyBwcm92aWRlck5hbWUKICAgICAgICAgICAgICAgICAgICAgKyAiLCB1c2VyICIgKyB1c2VySWQgKyAiIC0+ICIgKyBzeW5jKTsKICAgICAgICAgfQogICAgICAgICBzeW5jaHJvbml6ZWQgKG1BdXRob3JpdGllcykgewotICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHkgPSBnZXRPckNyZWF0ZUF1dGhvcml0eUxvY2tlZChhY2NvdW50LCB1c2VySWQsIHByb3ZpZGVyTmFtZSwgLTEsCi0gICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5ID0KKyAgICAgICAgICAgICAgICAgICAgZ2V0T3JDcmVhdGVBdXRob3JpdHlMb2NrZWQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEVuZFBvaW50KGFjY291bnQsIHByb3ZpZGVyTmFtZSwgdXNlcklkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSAvKiBpZGVudCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CiAgICAgICAgICAgICBpZiAoYXV0aG9yaXR5LmVuYWJsZWQgPT0gc3luYykgewotICAgICAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUcsIExvZy5WRVJCT1NFKSkgewogICAgICAgICAgICAgICAgICAgICBMb2cuZChUQUcsICJzZXRTeW5jQXV0b21hdGljYWxseTogYWxyZWFkeSBzZXQgdG8gIiArIHN5bmMgKyAiLCBkb2luZyBub3RoaW5nIik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTYwMyw4ICs2NzUsOSBAQAogICAgIHB1YmxpYyBpbnQgZ2V0SXNTeW5jYWJsZShBY2NvdW50IGFjY291bnQsIGludCB1c2VySWQsIFN0cmluZyBwcm92aWRlck5hbWUpIHsKICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKICAgICAgICAgICAgIGlmIChhY2NvdW50ICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IGdldEF1dGhvcml0eUxvY2tlZChhY2NvdW50LCB1c2VySWQsIHByb3ZpZGVyTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJnZXRJc1N5bmNhYmxlIik7CisgICAgICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHkgPSBnZXRBdXRob3JpdHlMb2NrZWQoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRW5kUG9pbnQoYWNjb3VudCwgcHJvdmlkZXJOYW1lLCB1c2VySWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgImdldCBhdXRob3JpdHkgc3luY2FibGUiKTsKICAgICAgICAgICAgICAgICBpZiAoYXV0aG9yaXR5ID09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgICAgIH0KQEAgLTYxNCw5ICs2ODcsMTAgQEAKICAgICAgICAgICAgIGludCBpID0gbUF1dGhvcml0aWVzLnNpemUoKTsKICAgICAgICAgICAgIHdoaWxlIChpID4gMCkgewogICAgICAgICAgICAgICAgIGktLTsKLSAgICAgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IG1BdXRob3JpdGllcy52YWx1ZUF0KGkpOwotICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHkuYXV0aG9yaXR5LmVxdWFscyhwcm92aWRlck5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBhdXRob3JpdHkuc3luY2FibGU7CisgICAgICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHlJbmZvID0gbUF1dGhvcml0aWVzLnZhbHVlQXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKGF1dGhvcml0eUluZm8udGFyZ2V0ICE9IG51bGwKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIGF1dGhvcml0eUluZm8udGFyZ2V0LnByb3ZpZGVyLmVxdWFscyhwcm92aWRlck5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhdXRob3JpdHlJbmZvLnN5bmNhYmxlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiAtMTsKQEAgLTYyNCwxMTkgKzY5OCwxNzggQEAKICAgICB9CiAKICAgICBwdWJsaWMgdm9pZCBzZXRJc1N5bmNhYmxlKEFjY291bnQgYWNjb3VudCwgaW50IHVzZXJJZCwgU3RyaW5nIHByb3ZpZGVyTmFtZSwgaW50IHN5bmNhYmxlKSB7Ci0gICAgICAgIGlmIChzeW5jYWJsZSA+IDEpIHsKLSAgICAgICAgICAgIHN5bmNhYmxlID0gMTsKLSAgICAgICAgfSBlbHNlIGlmIChzeW5jYWJsZSA8IC0xKSB7Ci0gICAgICAgICAgICBzeW5jYWJsZSA9IC0xOwotICAgICAgICB9Ci0gICAgICAgIGlmIChERUJVRykgewotICAgICAgICAgICAgTG9nLmQoVEFHLCAic2V0SXNTeW5jYWJsZTogIiArIGFjY291bnQgKyAiLCBwcm92aWRlciAiICsgcHJvdmlkZXJOYW1lCi0gICAgICAgICAgICAgICAgICAgICsgIiwgdXNlciAiICsgdXNlcklkICsgIiAtPiAiICsgc3luY2FibGUpOwotICAgICAgICB9CisgICAgICAgIHNldFN5bmNhYmxlU3RhdGVGb3JFbmRQb2ludChuZXcgRW5kUG9pbnQoYWNjb3VudCwgcHJvdmlkZXJOYW1lLCB1c2VySWQpLCBzeW5jYWJsZSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZ2V0SXNUYXJnZXRTZXJ2aWNlQWN0aXZlKENvbXBvbmVudE5hbWUgY25hbWUsIGludCB1c2VySWQpIHsKICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5ID0KLSAgICAgICAgICAgICAgICAgICAgZ2V0T3JDcmVhdGVBdXRob3JpdHlMb2NrZWQoYWNjb3VudCwgdXNlcklkLCBwcm92aWRlck5hbWUsIC0xLCBmYWxzZSk7Ci0gICAgICAgICAgICBpZiAoYXV0aG9yaXR5LnN5bmNhYmxlID09IHN5bmNhYmxlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBpZiAoY25hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5ID0gZ2V0QXV0aG9yaXR5TG9ja2VkKAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEVuZFBvaW50KGNuYW1lLCB1c2VySWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgImdldCBzZXJ2aWNlIGFjdGl2ZSIpOworICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiAoYXV0aG9yaXR5LnN5bmNhYmxlID09IDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0SXNUYXJnZXRTZXJ2aWNlQWN0aXZlKENvbXBvbmVudE5hbWUgY25hbWUsIGludCB1c2VySWQsIGJvb2xlYW4gYWN0aXZlKSB7CisgICAgICAgIHNldFN5bmNhYmxlU3RhdGVGb3JFbmRQb2ludChuZXcgRW5kUG9pbnQoY25hbWUsIHVzZXJJZCksIGFjdGl2ZSA/IDEgOiAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbiBlbmFibGVkIHN5bmMgc2VydmljZSBhbmQgYSBzeW5jYWJsZSBwcm92aWRlcidzIGFkYXB0ZXIgYm90aCBnZXQgcmVzb2x2ZWQgdG8gdGhlIHNhbWUKKyAgICAgKiBwZXJzaXN0ZWQgdmFyaWFibGUgLSBuYW1lbHkgdGhlICJzeW5jYWJsZSIgYXR0cmlidXRlIGZvciBhbiBBdXRob3JpdHlJbmZvIGluIGFjY291bnRzLnhtbC4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRhcmdldCB0byBzZXQgdmFsdWUgZm9yLgorICAgICAqIEBwYXJhbSBzeW5jYWJsZSAwIGluZGljYXRlcyB1bnN5bmNhYmxlLCA8MCB1bmtub3duLCA+MCBpcyBhY3RpdmUvc3luY2FibGUuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldFN5bmNhYmxlU3RhdGVGb3JFbmRQb2ludChFbmRQb2ludCB0YXJnZXQsIGludCBzeW5jYWJsZSkgeworICAgICAgICBBdXRob3JpdHlJbmZvIGFJbmZvOworICAgICAgICBzeW5jaHJvbml6ZWQgKG1BdXRob3JpdGllcykgeworICAgICAgICAgICAgYUluZm8gPSBnZXRPckNyZWF0ZUF1dGhvcml0eUxvY2tlZCh0YXJnZXQsIC0xLCBmYWxzZSk7CisgICAgICAgICAgICBpZiAoc3luY2FibGUgPiAxKSB7CisgICAgICAgICAgICAgICAgc3luY2FibGUgPSAxOworICAgICAgICAgICAgfSBlbHNlIGlmIChzeW5jYWJsZSA8IC0xKSB7CisgICAgICAgICAgICAgICAgc3luY2FibGUgPSAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUcsIExvZy5WRVJCT1NFKSkgeworICAgICAgICAgICAgICAgIExvZy5kKFRBRywgInNldElzU3luY2FibGU6ICIgKyBhSW5mby50b1N0cmluZygpICsgIiAtPiAiICsgc3luY2FibGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFJbmZvLnN5bmNhYmxlID09IHN5bmNhYmxlKSB7CisgICAgICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSB7CiAgICAgICAgICAgICAgICAgICAgIExvZy5kKFRBRywgInNldElzU3luY2FibGU6IGFscmVhZHkgc2V0IHRvICIgKyBzeW5jYWJsZSArICIsIGRvaW5nIG5vdGhpbmciKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXV0aG9yaXR5LnN5bmNhYmxlID0gc3luY2FibGU7CisgICAgICAgICAgICBhSW5mby5zeW5jYWJsZSA9IHN5bmNhYmxlOwogICAgICAgICAgICAgd3JpdGVBY2NvdW50SW5mb0xvY2tlZCgpOwogICAgICAgICB9Ci0KICAgICAgICAgaWYgKHN5bmNhYmxlID4gMCkgewotICAgICAgICAgICAgcmVxdWVzdFN5bmMoYWNjb3VudCwgdXNlcklkLCBTeW5jT3BlcmF0aW9uLlJFQVNPTl9JU19TWU5DQUJMRSwgIHByb3ZpZGVyTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgbmV3IEJ1bmRsZSgpKTsKKyAgICAgICAgICAgIHJlcXVlc3RTeW5jKGFJbmZvLCBTeW5jT3BlcmF0aW9uLlJFQVNPTl9JU19TWU5DQUJMRSwgbmV3IEJ1bmRsZSgpKTsKICAgICAgICAgfQogICAgICAgICByZXBvcnRDaGFuZ2UoQ29udGVudFJlc29sdmVyLlNZTkNfT0JTRVJWRVJfVFlQRV9TRVRUSU5HUyk7CiAgICAgfQogCi0gICAgcHVibGljIFBhaXI8TG9uZywgTG9uZz4gZ2V0QmFja29mZihBY2NvdW50IGFjY291bnQsIGludCB1c2VySWQsIFN0cmluZyBwcm92aWRlck5hbWUpIHsKKyAgICBwdWJsaWMgUGFpcjxMb25nLCBMb25nPiBnZXRCYWNrb2ZmKEVuZFBvaW50IGluZm8pIHsKICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5ID0gZ2V0QXV0aG9yaXR5TG9ja2VkKGFjY291bnQsIHVzZXJJZCwgcHJvdmlkZXJOYW1lLAotICAgICAgICAgICAgICAgICAgICAiZ2V0QmFja29mZiIpOwotICAgICAgICAgICAgaWYgKGF1dGhvcml0eSA9PSBudWxsIHx8IGF1dGhvcml0eS5iYWNrb2ZmVGltZSA8IDApIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5ID0gZ2V0QXV0aG9yaXR5TG9ja2VkKGluZm8sICJnZXRCYWNrb2ZmIik7CisgICAgICAgICAgICBpZiAoYXV0aG9yaXR5ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gUGFpci5jcmVhdGUoYXV0aG9yaXR5LmJhY2tvZmZUaW1lLCBhdXRob3JpdHkuYmFja29mZkRlbGF5KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBQYWlyLmNyZWF0ZShhdXRob3JpdHkuYmFja29mZlRpbWUsIGF1dGhvcml0eS5iYWNrb2ZmRGVsYXkpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBzZXRCYWNrb2ZmKEFjY291bnQgYWNjb3VudCwgaW50IHVzZXJJZCwgU3RyaW5nIHByb3ZpZGVyTmFtZSwKLSAgICAgICAgICAgIGxvbmcgbmV4dFN5bmNUaW1lLCBsb25nIG5leHREZWxheSkgewotICAgICAgICBpZiAoREVCVUcpIHsKLSAgICAgICAgICAgIExvZy52KFRBRywgInNldEJhY2tvZmY6ICIgKyBhY2NvdW50ICsgIiwgcHJvdmlkZXIgIiArIHByb3ZpZGVyTmFtZQotICAgICAgICAgICAgICAgICAgICArICIsIHVzZXIgIiArIHVzZXJJZAorICAgIC8qKgorICAgICAqIFVwZGF0ZSB0aGUgYmFja29mZiBmb3IgdGhlIGdpdmVuIGVuZHBvaW50LiBUaGUgZW5kcG9pbnQgbWF5IGJlIGZvciBhIHByb3ZpZGVyL2FjY291bnQgYW5kCisgICAgICogdGhlIGFjY291bnQgb3IgcHJvdmlkZXIgaW5mbyBiZSBudWxsLCB3aGljaCBzaWduaWZpZXMgYWxsIGFjY291bnRzIG9yIHByb3ZpZGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRCYWNrb2ZmKEVuZFBvaW50IGluZm8sIGxvbmcgbmV4dFN5bmNUaW1lLCBsb25nIG5leHREZWxheSkgeworICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKKyAgICAgICAgICAgIExvZy52KFRBRywgInNldEJhY2tvZmY6ICIgKyBpbmZvCiAgICAgICAgICAgICAgICAgICAgICsgIiAtPiBuZXh0U3luY1RpbWUgIiArIG5leHRTeW5jVGltZSArICIsIG5leHREZWxheSAiICsgbmV4dERlbGF5KTsKICAgICAgICAgfQotICAgICAgICBib29sZWFuIGNoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiBjaGFuZ2VkOwogICAgICAgICBzeW5jaHJvbml6ZWQgKG1BdXRob3JpdGllcykgewotICAgICAgICAgICAgaWYgKGFjY291bnQgPT0gbnVsbCB8fCBwcm92aWRlck5hbWUgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGZvciAoQWNjb3VudEluZm8gYWNjb3VudEluZm8gOiBtQWNjb3VudHMudmFsdWVzKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGFjY291bnQgIT0gbnVsbCAmJiAhYWNjb3VudC5lcXVhbHMoYWNjb3VudEluZm8uYWNjb3VudEFuZFVzZXIuYWNjb3VudCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB1c2VySWQgIT0gYWNjb3VudEluZm8uYWNjb3VudEFuZFVzZXIudXNlcklkKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBmb3IgKEF1dGhvcml0eUluZm8gYXV0aG9yaXR5SW5mbyA6IGFjY291bnRJbmZvLmF1dGhvcml0aWVzLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvdmlkZXJOYW1lICE9IG51bGwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIXByb3ZpZGVyTmFtZS5lcXVhbHMoYXV0aG9yaXR5SW5mby5hdXRob3JpdHkpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0aG9yaXR5SW5mby5iYWNrb2ZmVGltZSAhPSBuZXh0U3luY1RpbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgYXV0aG9yaXR5SW5mby5iYWNrb2ZmRGVsYXkgIT0gbmV4dERlbGF5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby5iYWNrb2ZmVGltZSA9IG5leHRTeW5jVGltZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlJbmZvLmJhY2tvZmZEZWxheSA9IG5leHREZWxheTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpbmZvLnRhcmdldF9wcm92aWRlcgorICAgICAgICAgICAgICAgICAgICAmJiAoaW5mby5hY2NvdW50ID09IG51bGwgfHwgaW5mby5wcm92aWRlciA9PSBudWxsKSkgeworICAgICAgICAgICAgICAgIC8vIERvIG1vcmUgd29yayBmb3IgYSBwcm92aWRlciBzeW5jIGlmIHRoZSBwcm92aWRlZCBpbmZvIGhhcyBzcGVjaWZpZWQgYWxsCisgICAgICAgICAgICAgICAgLy8gYWNjb3VudHMvcHJvdmlkZXJzLiAKKyAgICAgICAgICAgICAgICBjaGFuZ2VkID0gc2V0QmFja29mZkxvY2tlZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8uYWNjb3VudCAvKiBtYXkgYmUgbnVsbCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8udXNlcklkLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5wcm92aWRlciAvKiBtYXkgYmUgbnVsbCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTeW5jVGltZSwgbmV4dERlbGF5KTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHkgPQotICAgICAgICAgICAgICAgICAgICAgICAgZ2V0T3JDcmVhdGVBdXRob3JpdHlMb2NrZWQoYWNjb3VudCwgdXNlcklkLCBwcm92aWRlck5hbWUsIC0xIC8qIGlkZW50ICovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsKLSAgICAgICAgICAgICAgICBpZiAoYXV0aG9yaXR5LmJhY2tvZmZUaW1lID09IG5leHRTeW5jVGltZSAmJiBhdXRob3JpdHkuYmFja29mZkRlbGF5ID09IG5leHREZWxheSkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHlJbmZvID0KKyAgICAgICAgICAgICAgICAgICAgICAgIGdldE9yQ3JlYXRlQXV0aG9yaXR5TG9ja2VkKGluZm8sIC0xIC8qIGlkZW50ICovLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0aG9yaXR5SW5mby5iYWNrb2ZmVGltZSA9PSBuZXh0U3luY1RpbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIGF1dGhvcml0eUluZm8uYmFja29mZkRlbGF5ID09IG5leHREZWxheSkgeworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby5iYWNrb2ZmVGltZSA9IG5leHRTeW5jVGltZTsKKyAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby5iYWNrb2ZmRGVsYXkgPSBuZXh0RGVsYXk7CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBhdXRob3JpdHkuYmFja29mZlRpbWUgPSBuZXh0U3luY1RpbWU7Ci0gICAgICAgICAgICAgICAgYXV0aG9yaXR5LmJhY2tvZmZEZWxheSA9IG5leHREZWxheTsKLSAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotCiAgICAgICAgIGlmIChjaGFuZ2VkKSB7CiAgICAgICAgICAgICByZXBvcnRDaGFuZ2UoQ29udGVudFJlc29sdmVyLlNZTkNfT0JTRVJWRVJfVFlQRV9TRVRUSU5HUyk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICAvKioKLSAgICAgKiBDYWxsZXJzIG9mIHRoaXMgZnVuY3Rpb24gbmVlZCB0byBob2xkIGEgbG9jayBmb3Igc3luY1F1ZXVlIG9iamVjdCBwYXNzZWQgaW4uIEJlYXIgaW4gbWluZAotICAgICAqIHRoaXMgZnVuY3Rpb24gZ3JhYnMgdGhlIGxvY2sgZm9yIHtAbGluayAjbUF1dGhvcml0aWVzfQotICAgICAqIEBwYXJhbSBzeW5jUXVldWUgcXVldWUgY29udGFpbmluZyBwZW5kaW5nIHN5bmMgb3BlcmF0aW9ucy4KKyAgICAgKiBFaXRoZXIgc2V0IGJhY2tvZmYgZm9yIGEgc3BlY2lmaWMgYXV0aG9yaXR5LCBvciBzZXQgYmFja29mZiBmb3IgYWxsIHRoZQorICAgICAqIGFjY291bnRzIG9uIGEgc3BlY2lmaWMgYWRhcHRlci9hbGwgYWRhcHRlcnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYWNjb3VudCBhY2NvdW50IGZvciB3aGljaCB0byBzZXQgYmFja29mZi4gTnVsbCB0byBzcGVjaWZ5IGFsbCBhY2NvdW50cy4KKyAgICAgKiBAcGFyYW0gdXNlcklkIGlkIG9mIHRoZSB1c2VyIG1ha2luZyB0aGlzIHJlcXVlc3QuCisgICAgICogQHBhcmFtIHByb3ZpZGVyTmFtZSBwcm92aWRlciBmb3Igd2hpY2ggdG8gc2V0IGJhY2tvZmYuIE51bGwgdG8gc3BlY2lmeSBhbGwgcHJvdmlkZXJzLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhIGNoYW5nZSBvY2N1cmVkLgogICAgICAqLwotICAgIHB1YmxpYyB2b2lkIGNsZWFyQWxsQmFja29mZnNMb2NrZWQoU3luY1F1ZXVlIHN5bmNRdWV1ZSkgeworICAgIHByaXZhdGUgYm9vbGVhbiBzZXRCYWNrb2ZmTG9ja2VkKEFjY291bnQgYWNjb3VudCwgaW50IHVzZXJJZCwgU3RyaW5nIHByb3ZpZGVyTmFtZSwKKyAgICAgICAgICAgIGxvbmcgbmV4dFN5bmNUaW1lLCBsb25nIG5leHREZWxheSkgeworICAgICAgICBib29sZWFuIGNoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChBY2NvdW50SW5mbyBhY2NvdW50SW5mbyA6IG1BY2NvdW50cy52YWx1ZXMoKSkgeworICAgICAgICAgICAgaWYgKGFjY291bnQgIT0gbnVsbCAmJiAhYWNjb3VudC5lcXVhbHMoYWNjb3VudEluZm8uYWNjb3VudEFuZFVzZXIuYWNjb3VudCkKKyAgICAgICAgICAgICAgICAgICAgJiYgdXNlcklkICE9IGFjY291bnRJbmZvLmFjY291bnRBbmRVc2VyLnVzZXJJZCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChBdXRob3JpdHlJbmZvIGF1dGhvcml0eUluZm8gOiBhY2NvdW50SW5mby5hdXRob3JpdGllcy52YWx1ZXMoKSkgeworICAgICAgICAgICAgICAgIGlmIChwcm92aWRlck5hbWUgIT0gbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgIXByb3ZpZGVyTmFtZS5lcXVhbHMoYXV0aG9yaXR5SW5mby50YXJnZXQucHJvdmlkZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYXV0aG9yaXR5SW5mby5iYWNrb2ZmVGltZSAhPSBuZXh0U3luY1RpbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGF1dGhvcml0eUluZm8uYmFja29mZkRlbGF5ICE9IG5leHREZWxheSkgeworICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlJbmZvLmJhY2tvZmZUaW1lID0gbmV4dFN5bmNUaW1lOworICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlJbmZvLmJhY2tvZmZEZWxheSA9IG5leHREZWxheTsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaGFuZ2VkOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNsZWFyQWxsQmFja29mZnMoU3luY1F1ZXVlIHN5bmNRdWV1ZSkgewogICAgICAgICBib29sZWFuIGNoYW5nZWQgPSBmYWxzZTsKICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIGZvciAoQWNjb3VudEluZm8gYWNjb3VudEluZm8gOiBtQWNjb3VudHMudmFsdWVzKCkpIHsKLSAgICAgICAgICAgICAgICBmb3IgKEF1dGhvcml0eUluZm8gYXV0aG9yaXR5SW5mbyA6IGFjY291bnRJbmZvLmF1dGhvcml0aWVzLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHlJbmZvLmJhY2tvZmZUaW1lICE9IE5PVF9JTl9CQUNLT0ZGX01PREUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBhdXRob3JpdHlJbmZvLmJhY2tvZmZEZWxheSAhPSBOT1RfSU5fQkFDS09GRl9NT0RFKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsICJjbGVhckFsbEJhY2tvZmZzOiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhdXRob3JpdHk6IiArIGF1dGhvcml0eUluZm8uYXV0aG9yaXR5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYWNjb3VudDoiICsgYWNjb3VudEluZm8uYWNjb3VudEFuZFVzZXIuYWNjb3VudC5uYW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgdXNlcjoiICsgYWNjb3VudEluZm8uYWNjb3VudEFuZFVzZXIudXNlcklkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYmFja29mZlRpbWUgd2FzOiAiICsgYXV0aG9yaXR5SW5mby5iYWNrb2ZmVGltZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGJhY2tvZmZEZWxheSB3YXM6ICIgKyBhdXRob3JpdHlJbmZvLmJhY2tvZmZEZWxheSk7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHN5bmNRdWV1ZSkgeworICAgICAgICAgICAgICAgIC8vIENsZWFyIGJhY2tvZmYgZm9yIGFsbCBzeW5jIGFkYXB0ZXJzLgorICAgICAgICAgICAgICAgIGZvciAoQWNjb3VudEluZm8gYWNjb3VudEluZm8gOiBtQWNjb3VudHMudmFsdWVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChBdXRob3JpdHlJbmZvIGF1dGhvcml0eUluZm8gOiBhY2NvdW50SW5mby5hdXRob3JpdGllcy52YWx1ZXMoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dGhvcml0eUluZm8uYmFja29mZlRpbWUgIT0gTk9UX0lOX0JBQ0tPRkZfTU9ERQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBhdXRob3JpdHlJbmZvLmJhY2tvZmZEZWxheSAhPSBOT1RfSU5fQkFDS09GRl9NT0RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgImNsZWFyQWxsQmFja29mZnM6IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhdXRob3JpdHk6IiArIGF1dGhvcml0eUluZm8udGFyZ2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGFjY291bnQ6IiArIGFjY291bnRJbmZvLmFjY291bnRBbmRVc2VyLmFjY291bnQubmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiB1c2VyOiIgKyBhY2NvdW50SW5mby5hY2NvdW50QW5kVXNlci51c2VySWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYmFja29mZlRpbWUgd2FzOiAiICsgYXV0aG9yaXR5SW5mby5iYWNrb2ZmVGltZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBiYWNrb2ZmRGVsYXkgd2FzOiAiICsgYXV0aG9yaXR5SW5mby5iYWNrb2ZmRGVsYXkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlJbmZvLmJhY2tvZmZUaW1lID0gTk9UX0lOX0JBQ0tPRkZfTU9ERTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlJbmZvLmJhY2tvZmZEZWxheSA9IE5PVF9JTl9CQUNLT0ZGX01PREU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlJbmZvLmJhY2tvZmZUaW1lID0gTk9UX0lOX0JBQ0tPRkZfTU9ERTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eUluZm8uYmFja29mZkRlbGF5ID0gTk9UX0lOX0JBQ0tPRkZfTU9ERTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNRdWV1ZS5vbkJhY2tvZmZDaGFuZ2VkKGFjY291bnRJbmZvLmFjY291bnRBbmRVc2VyLmFjY291bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnRJbmZvLmFjY291bnRBbmRVc2VyLnVzZXJJZCwgYXV0aG9yaXR5SW5mby5hdXRob3JpdHksIDApOwotICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gQ2xlYXIgYmFja29mZiBmb3IgYWxsIHN5bmMgc2VydmljZXMuCisgICAgICAgICAgICAgICAgZm9yIChDb21wb25lbnROYW1lIHNlcnZpY2UgOiBtU2VydmljZXMua2V5U2V0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3BhcnNlQXJyYXk8QXV0aG9yaXR5SW5mbz4gYUluZm9zID0gbVNlcnZpY2VzLmdldChzZXJ2aWNlKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhSW5mb3Muc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5SW5mbyA9IGFJbmZvcy52YWx1ZUF0KGkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dGhvcml0eUluZm8uYmFja29mZlRpbWUgIT0gTk9UX0lOX0JBQ0tPRkZfTU9ERQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBhdXRob3JpdHlJbmZvLmJhY2tvZmZEZWxheSAhPSBOT1RfSU5fQkFDS09GRl9NT0RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby5iYWNrb2ZmVGltZSA9IE5PVF9JTl9CQUNLT0ZGX01PREU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby5iYWNrb2ZmRGVsYXkgPSBOT1RfSU5fQkFDS09GRl9NT0RFOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN5bmNRdWV1ZS5jbGVhckJhY2tvZmZzKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtNzQ1LDI4ICs4NzgsOSBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgcHVibGljIHZvaWQgc2V0RGVsYXlVbnRpbFRpbWUoQWNjb3VudCBhY2NvdW50LCBpbnQgdXNlcklkLCBTdHJpbmcgcHJvdmlkZXJOYW1lLAotICAgICAgICAgICAgbG9uZyBkZWxheVVudGlsKSB7Ci0gICAgICAgIGlmIChERUJVRykgewotICAgICAgICAgICAgTG9nLnYoVEFHLCAic2V0RGVsYXlVbnRpbDogIiArIGFjY291bnQgKyAiLCBwcm92aWRlciAiICsgcHJvdmlkZXJOYW1lCi0gICAgICAgICAgICAgICAgICAgICsgIiwgdXNlciAiICsgdXNlcklkICsgIiAtPiBkZWxheVVudGlsICIgKyBkZWxheVVudGlsKTsKLSAgICAgICAgfQorICAgIHB1YmxpYyBsb25nIGdldERlbGF5VW50aWxUaW1lKEVuZFBvaW50IGluZm8pIHsKICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5ID0gZ2V0T3JDcmVhdGVBdXRob3JpdHlMb2NrZWQoCi0gICAgICAgICAgICAgICAgICAgIGFjY291bnQsIHVzZXJJZCwgcHJvdmlkZXJOYW1lLCAtMSAvKiBpZGVudCAqLywgdHJ1ZSk7Ci0gICAgICAgICAgICBpZiAoYXV0aG9yaXR5LmRlbGF5VW50aWwgPT0gZGVsYXlVbnRpbCkgewotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGF1dGhvcml0eS5kZWxheVVudGlsID0gZGVsYXlVbnRpbDsKLSAgICAgICAgfQotCi0gICAgICAgIHJlcG9ydENoYW5nZShDb250ZW50UmVzb2x2ZXIuU1lOQ19PQlNFUlZFUl9UWVBFX1NFVFRJTkdTKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgbG9uZyBnZXREZWxheVVudGlsVGltZShBY2NvdW50IGFjY291bnQsIGludCB1c2VySWQsIFN0cmluZyBwcm92aWRlck5hbWUpIHsKLSAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5ID0gZ2V0QXV0aG9yaXR5TG9ja2VkKGFjY291bnQsIHVzZXJJZCwgcHJvdmlkZXJOYW1lLAotICAgICAgICAgICAgICAgICAgICAiZ2V0RGVsYXlVbnRpbCIpOworICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHkgPSBnZXRBdXRob3JpdHlMb2NrZWQoaW5mbywgImdldERlbGF5VW50aWwiKTsKICAgICAgICAgICAgIGlmIChhdXRob3JpdHkgPT0gbnVsbCkgewogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgfQpAQCAtNzc0LDExMyArODg4LDE0NyBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZU9yUmVtb3ZlUGVyaW9kaWNTeW5jKFBlcmlvZGljU3luYyB0b1VwZGF0ZSwgaW50IHVzZXJJZCwgYm9vbGVhbiBhZGQpIHsKLSAgICAgICAgaWYgKERFQlVHKSB7Ci0gICAgICAgICAgICBMb2cudihUQUcsICJhZGRPclJlbW92ZVBlcmlvZGljU3luYzogIiArIHRvVXBkYXRlLmFjY291bnQgKyAiLCB1c2VyICIgKyB1c2VySWQKLSAgICAgICAgICAgICAgICAgICAgKyAiLCBwcm92aWRlciAiICsgdG9VcGRhdGUuYXV0aG9yaXR5Ci0gICAgICAgICAgICAgICAgICAgICsgIiAtPiBwZXJpb2QgIiArIHRvVXBkYXRlLnBlcmlvZCArICIsIGV4dHJhcyAiICsgdG9VcGRhdGUuZXh0cmFzKTsKKyAgICBwdWJsaWMgdm9pZCBzZXREZWxheVVudGlsVGltZShFbmRQb2ludCBpbmZvLCBsb25nIGRlbGF5VW50aWwpIHsKKyAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSB7CisgICAgICAgICAgICBMb2cudihUQUcsICJzZXREZWxheVVudGlsOiAiICsgaW5mbworICAgICAgICAgICAgICAgICAgICArICIgLT4gZGVsYXlVbnRpbCAiICsgZGVsYXlVbnRpbCk7CiAgICAgICAgIH0KICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIGlmICh0b1VwZGF0ZS5wZXJpb2QgPD0gMCAmJiBhZGQpIHsKLSAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJwZXJpb2QgPCAwLCBzaG91bGQgbmV2ZXIgaGFwcGVuIGluIHVwZGF0ZU9yUmVtb3ZlUGVyaW9kaWNTeW5jOiBhZGQtIgotICAgICAgICAgICAgICAgICAgICAgICAgKyBhZGQpOworICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHkgPSBnZXRPckNyZWF0ZUF1dGhvcml0eUxvY2tlZChpbmZvLCAtMSwgdHJ1ZSk7CisgICAgICAgICAgICBpZiAoYXV0aG9yaXR5LmRlbGF5VW50aWwgPT0gZGVsYXlVbnRpbCkgeworICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh0b1VwZGF0ZS5leHRyYXMgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIExvZy5lKFRBRywgIm51bGwgZXh0cmFzLCBzaG91bGQgbmV2ZXIgaGFwcGVuIGluIHVwZGF0ZU9yUmVtb3ZlUGVyaW9kaWNTeW5jOiBhZGQtIgotICAgICAgICAgICAgICAgICAgICAgICAgKyBhZGQpOworICAgICAgICAgICAgYXV0aG9yaXR5LmRlbGF5VW50aWwgPSBkZWxheVVudGlsOworICAgICAgICB9CisgICAgICAgIHJlcG9ydENoYW5nZShDb250ZW50UmVzb2x2ZXIuU1lOQ19PQlNFUlZFUl9UWVBFX1NFVFRJTkdTKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB1cGRhdGVPckFkZFBlcmlvZGljU3luYyhFbmRQb2ludCBpbmZvLCBsb25nIHBlcmlvZCwgbG9uZyBmbGV4dGltZSwgQnVuZGxlIGV4dHJhcykgeworICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKKyAgICAgICAgICAgIExvZy52KFRBRywgImFkZFBlcmlvZGljU3luYzogIiArIGluZm8KKyAgICAgICAgICAgICAgICAgICAgKyAiIC0+IHBlcmlvZCAiICsgcGVyaW9kICsgIiwgZmxleCAiICsgZmxleHRpbWUgKyAiLCBleHRyYXMgIgorICAgICAgICAgICAgICAgICAgICArIGV4dHJhcy50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBzeW5jaHJvbml6ZWQgKG1BdXRob3JpdGllcykgeworICAgICAgICAgICAgaWYgKHBlcmlvZCA8PSAwKSB7CisgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAicGVyaW9kIDwgMCwgc2hvdWxkIG5ldmVyIGhhcHBlbiBpbiB1cGRhdGVPckFkZFBlcmlvZGljU3luYyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGV4dHJhcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAibnVsbCBleHRyYXMsIHNob3VsZCBuZXZlciBoYXBwZW4gaW4gdXBkYXRlT3JBZGRQZXJpb2RpY1N5bmM6Iik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5ID0KLSAgICAgICAgICAgICAgICAgICAgICAgIGdldE9yQ3JlYXRlQXV0aG9yaXR5TG9ja2VkKHRvVXBkYXRlLmFjY291bnQsIHVzZXJJZCwgdG9VcGRhdGUuYXV0aG9yaXR5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgZmFsc2UpOwotICAgICAgICAgICAgICAgIGlmIChhZGQpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gYWRkIHRoaXMgcGVyaW9kaWMgc3luYyBpZiBhbiBlcXVpdmFsZW50IHBlcmlvZGljIGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4KLSAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBhbHJlYWR5UHJlc2VudCA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMCwgTiA9IGF1dGhvcml0eS5wZXJpb2RpY1N5bmNzLnNpemUoKTsgaSA8IE47IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgUGVyaW9kaWNTeW5jIHN5bmNJbmZvID0gYXV0aG9yaXR5LnBlcmlvZGljU3luY3MuZ2V0KGkpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFBlcmlvZGljU3luYy5zeW5jRXh0cmFzRXF1YWxzKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1VwZGF0ZS5leHRyYXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNJbmZvLmV4dHJhcykpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG9VcGRhdGUucGVyaW9kID09IHN5bmNJbmZvLnBlcmlvZCAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9VcGRhdGUuZmxleFRpbWUgPT0gc3luY0luZm8uZmxleFRpbWUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWJzb2x1dGVseSB0aGUgc2FtZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHkucGVyaW9kaWNTeW5jcy5zZXQoaSwgbmV3IFBlcmlvZGljU3luYyh0b1VwZGF0ZSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFscmVhZHlQcmVzZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBhZGRlZCBhbiBlbnRyeSB0byB0aGUgcGVyaW9kaWNTeW5jcyBhcnJheSBhbHNvIGFkZCBhbiBlbnRyeSB0bwotICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcGVyaW9kaWMgc3luY3Mgc3RhdHVzIHRvIGNvcnJlc3BvbmQgdG8gaXQuCi0gICAgICAgICAgICAgICAgICAgIGlmICghYWxyZWFkeVByZXNlbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eS5wZXJpb2RpY1N5bmNzLmFkZChuZXcgUGVyaW9kaWNTeW5jKHRvVXBkYXRlKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBTeW5jU3RhdHVzSW5mbyBzdGF0dXMgPSBnZXRPckNyZWF0ZVN5bmNTdGF0dXNMb2NrZWQoYXV0aG9yaXR5LmlkZW50KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cy5zZXRQZXJpb2RpY1N5bmNUaW1lKGF1dGhvcml0eS5wZXJpb2RpY1N5bmNzLnNpemUoKSAtIDEsIDBMKTsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFBlcmlvZGljU3luYyB0b1VwZGF0ZTsKKyAgICAgICAgICAgICAgICBpZiAoaW5mby50YXJnZXRfcHJvdmlkZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgdG9VcGRhdGUgPSBuZXcgUGVyaW9kaWNTeW5jKGluZm8uYWNjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnByb3ZpZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJpb2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleHRpbWUpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBhbnkgcGVyaW9kaWMgc3luY3MgdGhhdCBtYXRjaCB0aGUgYXV0aG9yaXR5IGFuZCBleHRyYXMuCi0gICAgICAgICAgICAgICAgICAgIFN5bmNTdGF0dXNJbmZvIHN0YXR1cyA9IG1TeW5jU3RhdHVzLmdldChhdXRob3JpdHkuaWRlbnQpOwotICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYW5nZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3I8UGVyaW9kaWNTeW5jPiBpdGVyYXRvciA9IGF1dGhvcml0eS5wZXJpb2RpY1N5bmNzLml0ZXJhdG9yKCk7Ci0gICAgICAgICAgICAgICAgICAgIGludCBpID0gMDsKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGl0ZXJhdG9yLmhhc05leHQoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgUGVyaW9kaWNTeW5jIHN5bmNJbmZvID0gaXRlcmF0b3IubmV4dCgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFBlcmlvZGljU3luYy5zeW5jRXh0cmFzRXF1YWxzKHN5bmNJbmZvLmV4dHJhcywgdG9VcGRhdGUuZXh0cmFzKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdG9yLnJlbW92ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIHJlbW92ZWQgYW4gZW50cnkgZnJvbSB0aGUgcGVyaW9kaWNTeW5jcyBhcnJheSBhbHNvCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGVudHJ5IGZyb20gdGhlIHN0YXR1cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMucmVtb3ZlUGVyaW9kaWNTeW5jVGltZShpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJUcmllZCByZW1vdmluZyBzeW5jIHN0YXR1cyBvbiByZW1vdmUgcGVyaW9kaWMgc3luYyBidXQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiZGlkIG5vdCBmaW5kIGl0LiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgICB0b1VwZGF0ZSA9IG5ldyBQZXJpb2RpY1N5bmMoaW5mby5zZXJ2aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJpb2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleHRpbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9CisgICAgICAgICAgICAgICAgICAgICAgICBnZXRPckNyZWF0ZUF1dGhvcml0eUxvY2tlZChpbmZvLCAtMSwgZmFsc2UpOworICAgICAgICAgICAgICAgIC8vIGFkZCB0aGlzIHBlcmlvZGljIHN5bmMgaWYgYW4gZXF1aXZhbGVudCBwZXJpb2RpYyBkb2Vzbid0IGFscmVhZHkgZXhpc3QuCisgICAgICAgICAgICAgICAgYm9vbGVhbiBhbHJlYWR5UHJlc2VudCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwLCBOID0gYXV0aG9yaXR5LnBlcmlvZGljU3luY3Muc2l6ZSgpOyBpIDwgTjsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFBlcmlvZGljU3luYyBzeW5jSW5mbyA9IGF1dGhvcml0eS5wZXJpb2RpY1N5bmNzLmdldChpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFN5bmNNYW5hZ2VyLnN5bmNFeHRyYXNFcXVhbHMoc3luY0luZm8uZXh0cmFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlIC8qIGluY2x1ZGVTeW5jU2V0dGluZ3MqLykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwZXJpb2QgPT0gc3luY0luZm8ucGVyaW9kICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXh0aW1lID09IHN5bmNJbmZvLmZsZXhUaW1lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWJzb2x1dGVseSB0aGUgc2FtZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHkucGVyaW9kaWNTeW5jcy5zZXQoaSwgdG9VcGRhdGUpOworICAgICAgICAgICAgICAgICAgICAgICAgYWxyZWFkeVByZXNlbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGFuZ2VkKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gSWYgd2UgYWRkZWQgYW4gZW50cnkgdG8gdGhlIHBlcmlvZGljU3luY3MgYXJyYXkgYWxzbyBhZGQgYW4gZW50cnkgdG8KKyAgICAgICAgICAgICAgICAvLyB0aGUgcGVyaW9kaWMgc3luY3Mgc3RhdHVzIHRvIGNvcnJlc3BvbmQgdG8gaXQuCisgICAgICAgICAgICAgICAgaWYgKCFhbHJlYWR5UHJlc2VudCkgeworICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHkucGVyaW9kaWNTeW5jcy5hZGQodG9VcGRhdGUpOworICAgICAgICAgICAgICAgICAgICBTeW5jU3RhdHVzSW5mbyBzdGF0dXMgPSBnZXRPckNyZWF0ZVN5bmNTdGF0dXNMb2NrZWQoYXV0aG9yaXR5LmlkZW50KTsKKyAgICAgICAgICAgICAgICAgICAgLy8gQSBuZXcgcGVyaW9kaWMgc3luYyBpcyBpbml0aWFsaXNlZCBhcyBhbHJlYWR5IGhhdmluZyBiZWVuIHJ1bi4KKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzLnNldFBlcmlvZGljU3luY1RpbWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5LnBlcmlvZGljU3luY3Muc2l6ZSgpIC0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICAgICB3cml0ZUFjY291bnRJbmZvTG9ja2VkKCk7CiAgICAgICAgICAgICAgICAgd3JpdGVTdGF0dXNMb2NrZWQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotCiAgICAgICAgIHJlcG9ydENoYW5nZShDb250ZW50UmVzb2x2ZXIuU1lOQ19PQlNFUlZFUl9UWVBFX1NFVFRJTkdTKTsKICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBhZGRQZXJpb2RpY1N5bmMoUGVyaW9kaWNTeW5jIHRvQWRkLCBpbnQgdXNlcklkKSB7Ci0gICAgICAgIHVwZGF0ZU9yUmVtb3ZlUGVyaW9kaWNTeW5jKHRvQWRkLCB1c2VySWQsIHRydWUgLyogYWRkICovKTsKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVQZXJpb2RpY1N5bmMoRW5kUG9pbnQgaW5mbywgQnVuZGxlIGV4dHJhcykgeworICAgICAgICBzeW5jaHJvbml6ZWQobUF1dGhvcml0aWVzKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5ID0KKyAgICAgICAgICAgICAgICAgICAgICAgIGdldE9yQ3JlYXRlQXV0aG9yaXR5TG9ja2VkKGluZm8sIC0xLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGFueSBwZXJpb2RpYyBzeW5jcyB0aGF0IG1hdGNoIHRoZSB0YXJnZXQgYW5kIGV4dHJhcy4KKyAgICAgICAgICAgICAgICBTeW5jU3RhdHVzSW5mbyBzdGF0dXMgPSBtU3luY1N0YXR1cy5nZXQoYXV0aG9yaXR5LmlkZW50KTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGNoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvcjxQZXJpb2RpY1N5bmM+IGl0ZXJhdG9yID0gYXV0aG9yaXR5LnBlcmlvZGljU3luY3MuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0ZXJhdG9yLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBQZXJpb2RpY1N5bmMgc3luY0luZm8gPSBpdGVyYXRvci5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChTeW5jTWFuYWdlci5zeW5jRXh0cmFzRXF1YWxzKHN5bmNJbmZvLmV4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAvKiBpbmNsdWRlU3luY1NldHRpbmdzICovKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0b3IucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIHJlbW92ZWQgYW4gZW50cnkgZnJvbSB0aGUgcGVyaW9kaWNTeW5jcyBhcnJheSBhbHNvCisgICAgICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgZW50cnkgZnJvbSB0aGUgc3RhdHVzCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMucmVtb3ZlUGVyaW9kaWNTeW5jVGltZShpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9nLmUoVEFHLCAiVHJpZWQgcmVtb3Zpbmcgc3luYyBzdGF0dXMgb24gcmVtb3ZlIHBlcmlvZGljIHN5bmMgYnV0IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGRpZCBub3QgZmluZCBpdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIWNoYW5nZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgd3JpdGVBY2NvdW50SW5mb0xvY2tlZCgpOworICAgICAgICAgICAgICAgIHdyaXRlU3RhdHVzTG9ja2VkKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVwb3J0Q2hhbmdlKENvbnRlbnRSZXNvbHZlci5TWU5DX09CU0VSVkVSX1RZUEVfU0VUVElOR1MpOwogICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIHJlbW92ZVBlcmlvZGljU3luYyhQZXJpb2RpY1N5bmMgdG9SZW1vdmUsIGludCB1c2VySWQpIHsKLSAgICAgICAgdXBkYXRlT3JSZW1vdmVQZXJpb2RpY1N5bmModG9SZW1vdmUsIHVzZXJJZCwgZmFsc2UgLyogcmVtb3ZlICovKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgTGlzdDxQZXJpb2RpY1N5bmM+IGdldFBlcmlvZGljU3luY3MoQWNjb3VudCBhY2NvdW50LCBpbnQgdXNlcklkLCBTdHJpbmcgcHJvdmlkZXJOYW1lKSB7Ci0gICAgICAgIEFycmF5TGlzdDxQZXJpb2RpY1N5bmM+IHN5bmNzID0gbmV3IEFycmF5TGlzdDxQZXJpb2RpY1N5bmM+KCk7CisgICAgLyoqCisgICAgICogQHJldHVybiBsaXN0IG9mIHBlcmlvZGljIHN5bmNzIGZvciBhIHRhcmdldC4gTmV2ZXIgbnVsbC4gSWYgbm8gc3VjaCBzeW5jcyBleGlzdCwgcmV0dXJucyBhbgorICAgICAqIGVtcHR5IGxpc3QuCisgICAgICovCisgICAgcHVibGljIExpc3Q8UGVyaW9kaWNTeW5jPiBnZXRQZXJpb2RpY1N5bmNzKEVuZFBvaW50IGluZm8pIHsKICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5ID0gZ2V0QXV0aG9yaXR5TG9ja2VkKGFjY291bnQsIHVzZXJJZCwgcHJvdmlkZXJOYW1lLAotICAgICAgICAgICAgICAgICAgICAiZ2V0UGVyaW9kaWNTeW5jcyIpOwotICAgICAgICAgICAgaWYgKGF1dGhvcml0eSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChQZXJpb2RpY1N5bmMgaXRlbSA6IGF1dGhvcml0eS5wZXJpb2RpY1N5bmNzKSB7CisgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eUluZm8gPSBnZXRBdXRob3JpdHlMb2NrZWQoaW5mbywgImdldFBlcmlvZGljU3luY3MiKTsKKyAgICAgICAgICAgIEFycmF5TGlzdDxQZXJpb2RpY1N5bmM+IHN5bmNzID0gbmV3IEFycmF5TGlzdDxQZXJpb2RpY1N5bmM+KCk7CisgICAgICAgICAgICBpZiAoYXV0aG9yaXR5SW5mbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZm9yIChQZXJpb2RpY1N5bmMgaXRlbSA6IGF1dGhvcml0eUluZm8ucGVyaW9kaWNTeW5jcykgewogICAgICAgICAgICAgICAgICAgICAvLyBDb3B5IGFuZCBzZW5kIG91dC4gTmVjZXNzYXJ5IGZvciB0aHJlYWQtc2FmZXR5IGFsdGhvdWdoIGl0J3MgcGFyY2VsZWQuCiAgICAgICAgICAgICAgICAgICAgIHN5bmNzLmFkZChuZXcgUGVyaW9kaWNTeW5jKGl0ZW0pKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gc3luY3M7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN5bmNzOwogICAgIH0KIAogICAgIHB1YmxpYyB2b2lkIHNldE1hc3RlclN5bmNBdXRvbWF0aWNhbGx5KGJvb2xlYW4gZmxhZywgaW50IHVzZXJJZCkgewogICAgICAgICBzeW5jaHJvbml6ZWQgKG1BdXRob3JpdGllcykgewogICAgICAgICAgICAgQm9vbGVhbiBhdXRvID0gbU1hc3RlclN5bmNBdXRvbWF0aWNhbGx5LmdldCh1c2VySWQpOwotICAgICAgICAgICAgaWYgKGF1dG8gIT0gbnVsbCAmJiAoYm9vbGVhbikgYXV0byA9PSBmbGFnKSB7CisgICAgICAgICAgICBpZiAoYXV0byAhPSBudWxsICYmIGF1dG8uZXF1YWxzKGZsYWcpKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbU1hc3RlclN5bmNBdXRvbWF0aWNhbGx5LnB1dCh1c2VySWQsIGZsYWcpOwpAQCAtOTAxLDEyICsxMDQ5LDYgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIHJlbW92ZUF1dGhvcml0eShBY2NvdW50IGFjY291bnQsIGludCB1c2VySWQsIFN0cmluZyBhdXRob3JpdHkpIHsKLSAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIHJlbW92ZUF1dGhvcml0eUxvY2tlZChhY2NvdW50LCB1c2VySWQsIGF1dGhvcml0eSwgdHJ1ZSAvKiBkb1dyaXRlICovKTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIHB1YmxpYyBBdXRob3JpdHlJbmZvIGdldEF1dGhvcml0eShpbnQgYXV0aG9yaXR5SWQpIHsKICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKICAgICAgICAgICAgIHJldHVybiBtQXV0aG9yaXRpZXMuZ2V0KGF1dGhvcml0eUlkKTsKQEAgLTkxNCw3MiArMTA1Niw2MCBAQAogICAgIH0KIAogICAgIC8qKgotICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBjdXJyZW50bHkgYSBzeW5jIG9wZXJhdGlvbiBmb3IgdGhlIGdpdmVuCi0gICAgICogYWNjb3VudCBvciBhdXRob3JpdHkgYWN0aXZlbHkgYmVpbmcgcHJvY2Vzc2VkLgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBjdXJyZW50bHkgYSBzeW5jIG9wZXJhdGlvbiBiZWluZyBhY3RpdmVseSBwcm9jZXNzZWQgZm9yIHRoZSBnaXZlbgorICAgICAqIHRhcmdldC4KICAgICAgKi8KLSAgICBwdWJsaWMgYm9vbGVhbiBpc1N5bmNBY3RpdmUoQWNjb3VudCBhY2NvdW50LCBpbnQgdXNlcklkLCBTdHJpbmcgYXV0aG9yaXR5KSB7CisgICAgcHVibGljIGJvb2xlYW4gaXNTeW5jQWN0aXZlKEVuZFBvaW50IGluZm8pIHsKICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIGZvciAoU3luY0luZm8gc3luY0luZm8gOiBnZXRDdXJyZW50U3luY3ModXNlcklkKSkgeworICAgICAgICAgICAgZm9yIChTeW5jSW5mbyBzeW5jSW5mbyA6IGdldEN1cnJlbnRTeW5jcyhpbmZvLnVzZXJJZCkpIHsKICAgICAgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGFpbmZvID0gZ2V0QXV0aG9yaXR5KHN5bmNJbmZvLmF1dGhvcml0eUlkKTsKLSAgICAgICAgICAgICAgICBpZiAoYWluZm8gIT0gbnVsbCAmJiBhaW5mby5hY2NvdW50LmVxdWFscyhhY2NvdW50KQotICAgICAgICAgICAgICAgICAgICAgICAgJiYgYWluZm8uYXV0aG9yaXR5LmVxdWFscyhhdXRob3JpdHkpCi0gICAgICAgICAgICAgICAgICAgICAgICAmJiBhaW5mby51c2VySWQgPT0gdXNlcklkKSB7CisgICAgICAgICAgICAgICAgaWYgKGFpbmZvICE9IG51bGwgJiYgYWluZm8udGFyZ2V0Lm1hdGNoZXNTcGVjKGluZm8pKSB7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQotCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBwdWJsaWMgUGVuZGluZ09wZXJhdGlvbiBpbnNlcnRJbnRvUGVuZGluZyhQZW5kaW5nT3BlcmF0aW9uIG9wKSB7CisgICAgcHVibGljIFBlbmRpbmdPcGVyYXRpb24gaW5zZXJ0SW50b1BlbmRpbmcoU3luY09wZXJhdGlvbiBvcCkgeworICAgICAgICBQZW5kaW5nT3BlcmF0aW9uIHBvcDsKICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIGlmIChERUJVRykgewotICAgICAgICAgICAgICAgIExvZy52KFRBRywgImluc2VydEludG9QZW5kaW5nOiBhY2NvdW50PSIgKyBvcC5hY2NvdW50Ci0gICAgICAgICAgICAgICAgICAgICAgICArICIgdXNlcj0iICsgb3AudXNlcklkCi0gICAgICAgICAgICAgICAgICAgICAgICArICIgYXV0aD0iICsgb3AuYXV0aG9yaXR5Ci0gICAgICAgICAgICAgICAgICAgICAgICArICIgc3JjPSIgKyBvcC5zeW5jU291cmNlCisgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKKyAgICAgICAgICAgICAgICBMb2cudihUQUcsICJpbnNlcnRJbnRvUGVuZGluZzogYXV0aG9yaXR5PSIgKyBvcC50YXJnZXQKICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBleHRyYXM9IiArIG9wLmV4dHJhcyk7CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5ID0gZ2V0T3JDcmVhdGVBdXRob3JpdHlMb2NrZWQob3AuYWNjb3VudCwgb3AudXNlcklkLAotICAgICAgICAgICAgICAgICAgICBvcC5hdXRob3JpdHksCi0gICAgICAgICAgICAgICAgICAgIC0xIC8qIGRlc2lyZWQgaWRlbnRpZmllciAqLywKLSAgICAgICAgICAgICAgICAgICAgdHJ1ZSAvKiB3cml0ZSBhY2NvdW50cyB0byBzdG9yYWdlICovKTsKKyAgICAgICAgICAgIGZpbmFsIEVuZFBvaW50IGluZm8gPSBvcC50YXJnZXQ7CisgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9CisgICAgICAgICAgICAgICAgICAgIGdldE9yQ3JlYXRlQXV0aG9yaXR5TG9ja2VkKGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEgLyogZGVzaXJlZCBpZGVudGlmaWVyICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgLyogd3JpdGUgYWNjb3VudHMgdG8gc3RvcmFnZSAqLyk7CiAgICAgICAgICAgICBpZiAoYXV0aG9yaXR5ID09IG51bGwpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgb3AgPSBuZXcgUGVuZGluZ09wZXJhdGlvbihvcCk7Ci0gICAgICAgICAgICBvcC5hdXRob3JpdHlJZCA9IGF1dGhvcml0eS5pZGVudDsKLSAgICAgICAgICAgIG1QZW5kaW5nT3BlcmF0aW9ucy5hZGQob3ApOwotICAgICAgICAgICAgYXBwZW5kUGVuZGluZ09wZXJhdGlvbkxvY2tlZChvcCk7CisgICAgICAgICAgICBwb3AgPSBuZXcgUGVuZGluZ09wZXJhdGlvbihhdXRob3JpdHksIG9wLnJlYXNvbiwgb3Auc3luY1NvdXJjZSwgb3AuZXh0cmFzLAorICAgICAgICAgICAgICAgICAgICBvcC5leHBlZGl0ZWQpOworICAgICAgICAgICAgbVBlbmRpbmdPcGVyYXRpb25zLmFkZChwb3ApOworICAgICAgICAgICAgYXBwZW5kUGVuZGluZ09wZXJhdGlvbkxvY2tlZChwb3ApOwogCiAgICAgICAgICAgICBTeW5jU3RhdHVzSW5mbyBzdGF0dXMgPSBnZXRPckNyZWF0ZVN5bmNTdGF0dXNMb2NrZWQoYXV0aG9yaXR5LmlkZW50KTsKICAgICAgICAgICAgIHN0YXR1cy5wZW5kaW5nID0gdHJ1ZTsKICAgICAgICAgfQotCiAgICAgICAgIHJlcG9ydENoYW5nZShDb250ZW50UmVzb2x2ZXIuU1lOQ19PQlNFUlZFUl9UWVBFX1BFTkRJTkcpOwotICAgICAgICByZXR1cm4gb3A7CisgICAgICAgIHJldHVybiBwb3A7CiAgICAgfQogCiAgICAgLyoqCiAgICAgICogUmVtb3ZlIGZyb20gbGlzdCBvZiBwZW5kaW5nIG9wZXJhdGlvbnMuIElmIHN1Y2Nlc3NmdWwsIHNlYXJjaCB0aHJvdWdoIGxpc3QgZm9yIG1hdGNoaW5nCi0gICAgICogYXV0aG9yaXRpZXMuIElmIHRoZXJlIGFyZSBubyBtb3JlIHBlbmRpbmcgc3luY3MgZm9yIHRoZSBzYW1lIGF1dGhvcml0eS9hY2NvdW50L3VzZXJpZCwKLSAgICAgKiB1cGRhdGUgdGhlIFN5bmNTdGF0dXNJbmZvIGZvciB0aGF0IGF1dGhvcml0eShhdXRob3JpdHkgaGVyZSBpcyB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24KLSAgICAgKiBvZiBhICdzeW5jIG9wZXJhdGlvbicuCi0gICAgICogQHBhcmFtIG9wCi0gICAgICogQHJldHVybgorICAgICAqIGF1dGhvcml0aWVzLiBJZiB0aGVyZSBhcmUgbm8gbW9yZSBwZW5kaW5nIHN5bmNzIGZvciB0aGUgc2FtZSB0YXJnZXQsCisgICAgICogdXBkYXRlIHRoZSBTeW5jU3RhdHVzSW5mbyBmb3IgdGhhdCB0YXJnZXQuCisgICAgICogQHBhcmFtIG9wIFBlbmRpbmcgb3AgdG8gZGVsZXRlLgogICAgICAqLwogICAgIHB1YmxpYyBib29sZWFuIGRlbGV0ZUZyb21QZW5kaW5nKFBlbmRpbmdPcGVyYXRpb24gb3ApIHsKICAgICAgICAgYm9vbGVhbiByZXMgPSBmYWxzZTsKICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIGlmIChERUJVRykgewotICAgICAgICAgICAgICAgIExvZy52KFRBRywgImRlbGV0ZUZyb21QZW5kaW5nOiBhY2NvdW50PSIgKyBvcC5hY2NvdW50Ci0gICAgICAgICAgICAgICAgICAgICsgIiB1c2VyPSIgKyBvcC51c2VySWQKLSAgICAgICAgICAgICAgICAgICAgKyAiIGF1dGg9IiArIG9wLmF1dGhvcml0eQotICAgICAgICAgICAgICAgICAgICArICIgc3JjPSIgKyBvcC5zeW5jU291cmNlCi0gICAgICAgICAgICAgICAgICAgICsgIiBleHRyYXM9IiArIG9wLmV4dHJhcyk7CisgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKKyAgICAgICAgICAgICAgICBMb2cudihUQUcsICJkZWxldGVGcm9tUGVuZGluZzogYWNjb3VudD0iICsgb3AudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAobVBlbmRpbmdPcGVyYXRpb25zLnJlbW92ZShvcCkpIHsKICAgICAgICAgICAgICAgICBpZiAobVBlbmRpbmdPcGVyYXRpb25zLnNpemUoKSA9PSAwCkBAIC05ODksMzAgKzExMTksMjcgQEAKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBtTnVtUGVuZGluZ0ZpbmlzaGVkKys7CiAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHkgPSBnZXRBdXRob3JpdHlMb2NrZWQob3AuYWNjb3VudCwgb3AudXNlcklkLCBvcC5hdXRob3JpdHksCi0gICAgICAgICAgICAgICAgICAgICAgICAiZGVsZXRlRnJvbVBlbmRpbmciKTsKKyAgICAgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IGdldEF1dGhvcml0eUxvY2tlZChvcC50YXJnZXQsICJkZWxldGVGcm9tUGVuZGluZyIpOwogICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHkgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIExvZy52KFRBRywgInJlbW92aW5nIC0gIiArIGF1dGhvcml0eS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsICJyZW1vdmluZyAtICIgKyBhdXRob3JpdHkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IE4gPSBtUGVuZGluZ09wZXJhdGlvbnMuc2l6ZSgpOwogICAgICAgICAgICAgICAgICAgICBib29sZWFuIG1vcmVQZW5kaW5nID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxOOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFBlbmRpbmdPcGVyYXRpb24gY3VyID0gbVBlbmRpbmdPcGVyYXRpb25zLmdldChpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXIuYWNjb3VudC5lcXVhbHMob3AuYWNjb3VudCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgY3VyLmF1dGhvcml0eS5lcXVhbHMob3AuYXV0aG9yaXR5KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBjdXIudXNlcklkID09IG9wLnVzZXJJZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ci5lcXVhbHMob3ApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9yZVBlbmRpbmcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAgaWYgKCFtb3JlUGVuZGluZykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBMb2cudihUQUcsICJubyBtb3JlIHBlbmRpbmchIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIExvZy52KFRBRywgIm5vIG1vcmUgcGVuZGluZyEiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIFN5bmNTdGF0dXNJbmZvIHN0YXR1cyA9IGdldE9yQ3JlYXRlU3luY1N0YXR1c0xvY2tlZChhdXRob3JpdHkuaWRlbnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzLnBlbmRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KLQogICAgICAgICAgICAgICAgIHJlcyA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTEwNDcsNyArMTE3NCw5IEBACiAgICAgICovCiAgICAgcHVibGljIHZvaWQgZG9EYXRhYmFzZUNsZWFudXAoQWNjb3VudFtdIGFjY291bnRzLCBpbnQgdXNlcklkKSB7CiAgICAgICAgIHN5bmNocm9uaXplZCAobUF1dGhvcml0aWVzKSB7Ci0gICAgICAgICAgICBpZiAoREVCVUcpIExvZy52KFRBRywgIlVwZGF0aW5nIGZvciBuZXcgYWNjb3VudHMuLi4iKTsKKyAgICAgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUcsIExvZy5WRVJCT1NFKSkgeworICAgICAgICAgICAgICAgIExvZy52KFRBRywgIlVwZGF0aW5nIGZvciBuZXcgYWNjb3VudHMuLi4iKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIFNwYXJzZUFycmF5PEF1dGhvcml0eUluZm8+IHJlbW92aW5nID0gbmV3IFNwYXJzZUFycmF5PEF1dGhvcml0eUluZm8+KCk7CiAgICAgICAgICAgICBJdGVyYXRvcjxBY2NvdW50SW5mbz4gYWNjSXQgPSBtQWNjb3VudHMudmFsdWVzKCkuaXRlcmF0b3IoKTsKICAgICAgICAgICAgIHdoaWxlIChhY2NJdC5oYXNOZXh0KCkpIHsKQEAgLTEwNTUsNyArMTE4NCw3IEBACiAgICAgICAgICAgICAgICAgaWYgKCFBcnJheVV0aWxzLmNvbnRhaW5zKGFjY291bnRzLCBhY2MuYWNjb3VudEFuZFVzZXIuYWNjb3VudCkKICAgICAgICAgICAgICAgICAgICAgICAgICYmIGFjYy5hY2NvdW50QW5kVXNlci51c2VySWQgPT0gdXNlcklkKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgYWNjb3VudCBubyBsb25nZXIgZXhpc3RzLi4uCi0gICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgIkFjY291bnQgcmVtb3ZlZDogIiArIGFjYy5hY2NvdW50QW5kVXNlcik7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgZm9yIChBdXRob3JpdHlJbmZvIGF1dGggOiBhY2MuYXV0aG9yaXRpZXMudmFsdWVzKCkpIHsKQEAgLTExMDIsMjUgKzEyMzEsMjUgQEAKICAgICBwdWJsaWMgU3luY0luZm8gYWRkQWN0aXZlU3luYyhTeW5jTWFuYWdlci5BY3RpdmVTeW5jQ29udGV4dCBhY3RpdmVTeW5jQ29udGV4dCkgewogICAgICAgICBmaW5hbCBTeW5jSW5mbyBzeW5jSW5mbzsKICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSB7CiAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAic2V0QWN0aXZlU3luYzogYWNjb3VudD0iCi0gICAgICAgICAgICAgICAgICAgICsgYWN0aXZlU3luY0NvbnRleHQubVN5bmNPcGVyYXRpb24uYWNjb3VudAotICAgICAgICAgICAgICAgICAgICArICIgYXV0aD0iICsgYWN0aXZlU3luY0NvbnRleHQubVN5bmNPcGVyYXRpb24uYXV0aG9yaXR5CisgICAgICAgICAgICAgICAgICAgICsgIiBhdXRoPSIgKyBhY3RpdmVTeW5jQ29udGV4dC5tU3luY09wZXJhdGlvbi50YXJnZXQKICAgICAgICAgICAgICAgICAgICAgKyAiIHNyYz0iICsgYWN0aXZlU3luY0NvbnRleHQubVN5bmNPcGVyYXRpb24uc3luY1NvdXJjZQogICAgICAgICAgICAgICAgICAgICArICIgZXh0cmFzPSIgKyBhY3RpdmVTeW5jQ29udGV4dC5tU3luY09wZXJhdGlvbi5leHRyYXMpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHkgPSBnZXRPckNyZWF0ZUF1dGhvcml0eUxvY2tlZCgKLSAgICAgICAgICAgICAgICAgICAgYWN0aXZlU3luY0NvbnRleHQubVN5bmNPcGVyYXRpb24uYWNjb3VudCwKLSAgICAgICAgICAgICAgICAgICAgYWN0aXZlU3luY0NvbnRleHQubVN5bmNPcGVyYXRpb24udXNlcklkLAotICAgICAgICAgICAgICAgICAgICBhY3RpdmVTeW5jQ29udGV4dC5tU3luY09wZXJhdGlvbi5hdXRob3JpdHksCi0gICAgICAgICAgICAgICAgICAgIC0xIC8qIGFzc2lnbiBhIG5ldyBpZGVudGlmaWVyIGlmIGNyZWF0aW5nIGEgbmV3IGF1dGhvcml0eSAqLywKKyAgICAgICAgICAgIGZpbmFsIEVuZFBvaW50IGluZm8gPSBhY3RpdmVTeW5jQ29udGV4dC5tU3luY09wZXJhdGlvbi50YXJnZXQ7CisgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eUluZm8gPSBnZXRPckNyZWF0ZUF1dGhvcml0eUxvY2tlZCgKKyAgICAgICAgICAgICAgICAgICAgaW5mbywKKyAgICAgICAgICAgICAgICAgICAgLTEgLyogYXNzaWduIGEgbmV3IGlkZW50aWZpZXIgaWYgY3JlYXRpbmcgYSBuZXcgdGFyZ2V0ICovLAogICAgICAgICAgICAgICAgICAgICB0cnVlIC8qIHdyaXRlIHRvIHN0b3JhZ2UgaWYgdGhpcyByZXN1bHRzIGluIGEgY2hhbmdlICovKTsKLSAgICAgICAgICAgIHN5bmNJbmZvID0gbmV3IFN5bmNJbmZvKGF1dGhvcml0eS5pZGVudCwKLSAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5LmFjY291bnQsIGF1dGhvcml0eS5hdXRob3JpdHksCisgICAgICAgICAgICBzeW5jSW5mbyA9IG5ldyBTeW5jSW5mbygKKyAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby5pZGVudCwKKyAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby50YXJnZXQuYWNjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby50YXJnZXQucHJvdmlkZXIsCisgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eUluZm8udGFyZ2V0LnNlcnZpY2UsCiAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVN5bmNDb250ZXh0Lm1TdGFydFRpbWUpOwotICAgICAgICAgICAgZ2V0Q3VycmVudFN5bmNzKGF1dGhvcml0eS51c2VySWQpLmFkZChzeW5jSW5mbyk7CisgICAgICAgICAgICBnZXRDdXJyZW50U3luY3MoYXV0aG9yaXR5SW5mby50YXJnZXQudXNlcklkKS5hZGQoc3luY0luZm8pOwogICAgICAgICB9Ci0KICAgICAgICAgcmVwb3J0QWN0aXZlQ2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBzeW5jSW5mbzsKICAgICB9CkBAIC0xMTMwLDEwICsxMjU5LDExIEBACiAgICAgICovCiAgICAgcHVibGljIHZvaWQgcmVtb3ZlQWN0aXZlU3luYyhTeW5jSW5mbyBzeW5jSW5mbywgaW50IHVzZXJJZCkgewogICAgICAgICBzeW5jaHJvbml6ZWQgKG1BdXRob3JpdGllcykgewotICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHLCBMb2cuVkVSQk9TRSkpIHsKICAgICAgICAgICAgICAgICBMb2cudihUQUcsICJyZW1vdmVBY3RpdmVTeW5jOiBhY2NvdW50PSIgKyBzeW5jSW5mby5hY2NvdW50CiAgICAgICAgICAgICAgICAgICAgICAgICArICIgdXNlcj0iICsgdXNlcklkCi0gICAgICAgICAgICAgICAgICAgICAgICArICIgYXV0aD0iICsgc3luY0luZm8uYXV0aG9yaXR5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhdXRoPSIgKyBzeW5jSW5mby5hdXRob3JpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBzZXJ2aWNlPSIgKyBzeW5jSW5mby5zZXJ2aWNlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGdldEN1cnJlbnRTeW5jcyh1c2VySWQpLnJlbW92ZShzeW5jSW5mbyk7CiAgICAgICAgIH0KQEAgLTExNDksMzcgKzEyNzksMzQgQEAKICAgICB9CiAKICAgICAvKioKLSAgICAgKiBOb3RlIHRoYXQgc3luYyBoYXMgc3RhcnRlZCBmb3IgdGhlIGdpdmVuIGFjY291bnQgYW5kIGF1dGhvcml0eS4KKyAgICAgKiBOb3RlIHRoYXQgc3luYyBoYXMgc3RhcnRlZCBmb3IgdGhlIGdpdmVuIG9wZXJhdGlvbi4KICAgICAgKi8KLSAgICBwdWJsaWMgbG9uZyBpbnNlcnRTdGFydFN5bmNFdmVudChBY2NvdW50IGFjY291bnROYW1lLCBpbnQgdXNlcklkLCBpbnQgcmVhc29uLAotICAgICAgICAgICAgU3RyaW5nIGF1dGhvcml0eU5hbWUsIGxvbmcgbm93LCBpbnQgc291cmNlLCBib29sZWFuIGluaXRpYWxpemF0aW9uLCBCdW5kbGUgZXh0cmFzKSB7CisgICAgcHVibGljIGxvbmcgaW5zZXJ0U3RhcnRTeW5jRXZlbnQoU3luY09wZXJhdGlvbiBvcCwgbG9uZyBub3cpIHsKICAgICAgICAgbG9uZyBpZDsKICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIGlmIChERUJVRykgewotICAgICAgICAgICAgICAgIExvZy52KFRBRywgImluc2VydFN0YXJ0U3luY0V2ZW50OiBhY2NvdW50PSIgKyBhY2NvdW50TmFtZSArICJ1c2VyPSIgKyB1c2VySWQKLSAgICAgICAgICAgICAgICAgICAgKyAiIGF1dGg9IiArIGF1dGhvcml0eU5hbWUgKyAiIHNvdXJjZT0iICsgc291cmNlKTsKKyAgICAgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUcsIExvZy5WRVJCT1NFKSkgeworICAgICAgICAgICAgICAgIExvZy52KFRBRywgImluc2VydFN0YXJ0U3luY0V2ZW50OiAiICsgb3ApOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHkgPSBnZXRBdXRob3JpdHlMb2NrZWQoYWNjb3VudE5hbWUsIHVzZXJJZCwgYXV0aG9yaXR5TmFtZSwKLSAgICAgICAgICAgICAgICAgICAgImluc2VydFN0YXJ0U3luY0V2ZW50Iik7CisgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IGdldEF1dGhvcml0eUxvY2tlZChvcC50YXJnZXQsICJpbnNlcnRTdGFydFN5bmNFdmVudCIpOwogICAgICAgICAgICAgaWYgKGF1dGhvcml0eSA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgU3luY0hpc3RvcnlJdGVtIGl0ZW0gPSBuZXcgU3luY0hpc3RvcnlJdGVtKCk7Ci0gICAgICAgICAgICBpdGVtLmluaXRpYWxpemF0aW9uID0gaW5pdGlhbGl6YXRpb247CisgICAgICAgICAgICBpdGVtLmluaXRpYWxpemF0aW9uID0gb3AuaXNJbml0aWFsaXphdGlvbigpOwogICAgICAgICAgICAgaXRlbS5hdXRob3JpdHlJZCA9IGF1dGhvcml0eS5pZGVudDsKICAgICAgICAgICAgIGl0ZW0uaGlzdG9yeUlkID0gbU5leHRIaXN0b3J5SWQrKzsKICAgICAgICAgICAgIGlmIChtTmV4dEhpc3RvcnlJZCA8IDApIG1OZXh0SGlzdG9yeUlkID0gMDsKICAgICAgICAgICAgIGl0ZW0uZXZlbnRUaW1lID0gbm93OwotICAgICAgICAgICAgaXRlbS5zb3VyY2UgPSBzb3VyY2U7Ci0gICAgICAgICAgICBpdGVtLnJlYXNvbiA9IHJlYXNvbjsKLSAgICAgICAgICAgIGl0ZW0uZXh0cmFzID0gZXh0cmFzOworICAgICAgICAgICAgaXRlbS5zb3VyY2UgPSBvcC5zeW5jU291cmNlOworICAgICAgICAgICAgaXRlbS5yZWFzb24gPSBvcC5yZWFzb247CisgICAgICAgICAgICBpdGVtLmV4dHJhcyA9IG9wLmV4dHJhczsKICAgICAgICAgICAgIGl0ZW0uZXZlbnQgPSBFVkVOVF9TVEFSVDsKICAgICAgICAgICAgIG1TeW5jSGlzdG9yeS5hZGQoMCwgaXRlbSk7CiAgICAgICAgICAgICB3aGlsZSAobVN5bmNIaXN0b3J5LnNpemUoKSA+IE1BWF9ISVNUT1JZKSB7CiAgICAgICAgICAgICAgICAgbVN5bmNIaXN0b3J5LnJlbW92ZShtU3luY0hpc3Rvcnkuc2l6ZSgpLTEpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWQgPSBpdGVtLmhpc3RvcnlJZDsKLSAgICAgICAgICAgIGlmIChERUJVRykgTG9nLnYoVEFHLCAicmV0dXJuaW5nIGhpc3RvcnlJZCAiICsgaWQpOworICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSBMb2cudihUQUcsICJyZXR1cm5pbmcgaGlzdG9yeUlkICIgKyBpZCk7CiAgICAgICAgIH0KIAogICAgICAgICByZXBvcnRDaGFuZ2UoQ29udGVudFJlc29sdmVyLlNZTkNfT0JTRVJWRVJfVFlQRV9TVEFUVVMpOwpAQCAtMTE4OSw3ICsxMzE2LDcgQEAKICAgICBwdWJsaWMgdm9pZCBzdG9wU3luY0V2ZW50KGxvbmcgaGlzdG9yeUlkLCBsb25nIGVsYXBzZWRUaW1lLCBTdHJpbmcgcmVzdWx0TWVzc2FnZSwKICAgICAgICAgICAgIGxvbmcgZG93bnN0cmVhbUFjdGl2aXR5LCBsb25nIHVwc3RyZWFtQWN0aXZpdHkpIHsKICAgICAgICAgc3luY2hyb25pemVkIChtQXV0aG9yaXRpZXMpIHsKLSAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSB7CiAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAic3RvcFN5bmNFdmVudDogaGlzdG9yeUlkPSIgKyBoaXN0b3J5SWQpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgU3luY0hpc3RvcnlJdGVtIGl0ZW0gPSBudWxsOwpAQCAtMTMyNiwxMyArMTQ1MywxMiBAQAogICAgIH0KIAogICAgIC8qKgotICAgICAqIFJldHVybiBhIGNvcHkgb2YgdGhlIHNwZWNpZmllZCBhdXRob3JpdHkgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBzeW5jIHN0YXR1cworICAgICAqIFJldHVybiBhIGNvcHkgb2YgdGhlIHNwZWNpZmllZCB0YXJnZXQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBzeW5jIHN0YXR1cwogICAgICAqLwotICAgIHB1YmxpYyBQYWlyPEF1dGhvcml0eUluZm8sIFN5bmNTdGF0dXNJbmZvPiBnZXRDb3B5T2ZBdXRob3JpdHlXaXRoU3luY1N0YXR1cygKLSAgICAgICAgICAgIEFjY291bnQgYWNjb3VudCwgaW50IHVzZXJJZCwgU3RyaW5nIGF1dGhvcml0eSkgeworICAgIHB1YmxpYyBQYWlyPEF1dGhvcml0eUluZm8sIFN5bmNTdGF0dXNJbmZvPiBnZXRDb3B5T2ZBdXRob3JpdHlXaXRoU3luY1N0YXR1cyhFbmRQb2ludCBpbmZvKSB7CiAgICAgICAgIHN5bmNocm9uaXplZCAobUF1dGhvcml0aWVzKSB7Ci0gICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eUluZm8gPSBnZXRPckNyZWF0ZUF1dGhvcml0eUxvY2tlZChhY2NvdW50LCB1c2VySWQsIGF1dGhvcml0eSwKLSAgICAgICAgICAgICAgICAgICAgLTEgLyogYXNzaWduIGEgbmV3IGlkZW50aWZpZXIgaWYgY3JlYXRpbmcgYSBuZXcgYXV0aG9yaXR5ICovLAorICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHlJbmZvID0gZ2V0T3JDcmVhdGVBdXRob3JpdHlMb2NrZWQoaW5mbywKKyAgICAgICAgICAgICAgICAgICAgLTEgLyogYXNzaWduIGEgbmV3IGlkZW50aWZpZXIgaWYgY3JlYXRpbmcgYSBuZXcgdGFyZ2V0ICovLAogICAgICAgICAgICAgICAgICAgICB0cnVlIC8qIHdyaXRlIHRvIHN0b3JhZ2UgaWYgdGhpcyByZXN1bHRzIGluIGEgY2hhbmdlICovKTsKICAgICAgICAgICAgIHJldHVybiBjcmVhdGVDb3B5UGFpck9mQXV0aG9yaXR5V2l0aFN5bmNTdGF0dXNMb2NrZWQoYXV0aG9yaXR5SW5mbyk7CiAgICAgICAgIH0KQEAgLTEzNTMsMjYgKzE0NzksMjQgQEAKICAgICB9CiAKICAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBzdGF0dXMgdGhhdCBtYXRjaGVzIHRoZSBhdXRob3JpdHkgYW5kIGFjY291bnQuCisgICAgICogUmV0dXJucyB0aGUgc3RhdHVzIHRoYXQgbWF0Y2hlcyB0aGUgdGFyZ2V0LgogICAgICAqCi0gICAgICogQHBhcmFtIGFjY291bnQgdGhlIGFjY291bnQgd2Ugd2FudCB0byBjaGVjawotICAgICAqIEBwYXJhbSBhdXRob3JpdHkgdGhlIGF1dGhvcml0eSB3aG9zZSByb3cgc2hvdWxkIGJlIHNlbGVjdGVkCi0gICAgICogQHJldHVybiB0aGUgU3luY1N0YXR1c0luZm8gZm9yIHRoZSBhdXRob3JpdHkgb3IgbnVsbCBpZiBub25lIGZvdW5kLgorICAgICAqIEBwYXJhbSBpbmZvIHRoZSBlbmRwb2ludCB0YXJnZXQgd2UgYXJlIHF1ZXJ5aW5nIHN0YXR1cyBpbmZvIGZvci4KKyAgICAgKiBAcmV0dXJuIHRoZSBTeW5jU3RhdHVzSW5mbyBmb3IgdGhlIGVuZHBvaW50LgogICAgICAqLwotICAgIHB1YmxpYyBTeW5jU3RhdHVzSW5mbyBnZXRTdGF0dXNCeUFjY291bnRBbmRBdXRob3JpdHkoQWNjb3VudCBhY2NvdW50LCBpbnQgdXNlcklkLAotICAgICAgICAgICAgU3RyaW5nIGF1dGhvcml0eSkgewotICAgICAgICBpZiAoYWNjb3VudCA9PSBudWxsIHx8IGF1dGhvcml0eSA9PSBudWxsKSB7Ci0gICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgcHVibGljIFN5bmNTdGF0dXNJbmZvIGdldFN0YXR1c0J5QXV0aG9yaXR5KEVuZFBvaW50IGluZm8pIHsKKyAgICAgICAgaWYgKGluZm8udGFyZ2V0X3Byb3ZpZGVyICYmIChpbmZvLmFjY291bnQgPT0gbnVsbCB8fCBpbmZvLnByb3ZpZGVyID09IG51bGwpKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnRhcmdldF9zZXJ2aWNlICYmIGluZm8uc2VydmljZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgfQogICAgICAgICBzeW5jaHJvbml6ZWQgKG1BdXRob3JpdGllcykgewogICAgICAgICAgICAgZmluYWwgaW50IE4gPSBtU3luY1N0YXR1cy5zaXplKCk7Ci0gICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8TjsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykgewogICAgICAgICAgICAgICAgIFN5bmNTdGF0dXNJbmZvIGN1ciA9IG1TeW5jU3RhdHVzLnZhbHVlQXQoaSk7CiAgICAgICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhaW5mbyA9IG1BdXRob3JpdGllcy5nZXQoY3VyLmF1dGhvcml0eUlkKTsKLQotICAgICAgICAgICAgICAgIGlmIChhaW5mbyAhPSBudWxsICYmIGFpbmZvLmF1dGhvcml0eS5lcXVhbHMoYXV0aG9yaXR5KQotICAgICAgICAgICAgICAgICAgICAgICAgJiYgYWluZm8udXNlcklkID09IHVzZXJJZAotICAgICAgICAgICAgICAgICAgICAgICAgJiYgYWNjb3VudC5lcXVhbHMoYWluZm8uYWNjb3VudCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYWluZm8gIT0gbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgYWluZm8udGFyZ2V0Lm1hdGNoZXNTcGVjKGluZm8pKSB7CiAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VyOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTEzODAsMjUgKzE1MDQsMjAgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIC8qKgotICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBwZW5kaW5nIHN0YXR1cyBpcyB0cnVlIG9mIGFueSBtYXRjaGluZyBhdXRob3JpdGllcy4KLSAgICAgKi8KLSAgICBwdWJsaWMgYm9vbGVhbiBpc1N5bmNQZW5kaW5nKEFjY291bnQgYWNjb3VudCwgaW50IHVzZXJJZCwgU3RyaW5nIGF1dGhvcml0eSkgeworICAgIC8qKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcGVuZGluZyBzdGF0dXMgaXMgdHJ1ZSBvZiBhbnkgbWF0Y2hpbmcgYXV0aG9yaXRpZXMuICovCisgICAgcHVibGljIGJvb2xlYW4gaXNTeW5jUGVuZGluZyhFbmRQb2ludCBpbmZvKSB7CiAgICAgICAgIHN5bmNocm9uaXplZCAobUF1dGhvcml0aWVzKSB7CiAgICAgICAgICAgICBmaW5hbCBpbnQgTiA9IG1TeW5jU3RhdHVzLnNpemUoKTsKLSAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxOOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKSB7CiAgICAgICAgICAgICAgICAgU3luY1N0YXR1c0luZm8gY3VyID0gbVN5bmNTdGF0dXMudmFsdWVBdChpKTsKICAgICAgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGFpbmZvID0gbUF1dGhvcml0aWVzLmdldChjdXIuYXV0aG9yaXR5SWQpOwogICAgICAgICAgICAgICAgIGlmIChhaW5mbyA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAodXNlcklkICE9IGFpbmZvLnVzZXJJZCkgeworICAgICAgICAgICAgICAgIGlmICghYWluZm8udGFyZ2V0Lm1hdGNoZXNTcGVjKGluZm8pKSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoYWNjb3VudCAhPSBudWxsICYmICFhaW5mby5hY2NvdW50LmVxdWFscyhhY2NvdW50KSkgewotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGFpbmZvLmF1dGhvcml0eS5lcXVhbHMoYXV0aG9yaXR5KSAmJiBjdXIucGVuZGluZykgeworICAgICAgICAgICAgICAgIGlmIChjdXIucGVuZGluZykgewogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0xNDU0LDEyOCArMTU3MywxMzMgQEAKICAgICB9CiAKICAgICAvKioKLSAgICAgKiBSZXRyaWV2ZSBhbiBhdXRob3JpdHksIHJldHVybmluZyBudWxsIGlmIG9uZSBkb2VzIG5vdCBleGlzdC4KKyAgICAgKiBSZXRyaWV2ZSBhIHRhcmdldCdzIGZ1bGwgaW5mbywgcmV0dXJuaW5nIG51bGwgaWYgb25lIGRvZXMgbm90IGV4aXN0LgogICAgICAqCi0gICAgICogQHBhcmFtIGFjY291bnROYW1lIFRoZSBuYW1lIG9mIHRoZSBhY2NvdW50IGZvciB0aGUgYXV0aG9yaXR5LgotICAgICAqIEBwYXJhbSBhdXRob3JpdHlOYW1lIFRoZSBuYW1lIG9mIHRoZSBhdXRob3JpdHkgaXRzZWxmLgorICAgICAqIEBwYXJhbSBpbmZvIGluZm8gb2YgdGhlIHRhcmdldCB0byBsb29rIHVwLgogICAgICAqIEBwYXJhbSB0YWcgSWYgbm9uLW51bGwsIHRoaXMgd2lsbCBiZSB1c2VkIGluIGEgbG9nIG1lc3NhZ2UgaWYgdGhlCi0gICAgICogcmVxdWVzdGVkIGF1dGhvcml0eSBkb2VzIG5vdCBleGlzdC4KKyAgICAgKiByZXF1ZXN0ZWQgdGFyZ2V0IGRvZXMgbm90IGV4aXN0LgogICAgICAqLwotICAgIHByaXZhdGUgQXV0aG9yaXR5SW5mbyBnZXRBdXRob3JpdHlMb2NrZWQoQWNjb3VudCBhY2NvdW50TmFtZSwgaW50IHVzZXJJZCwgU3RyaW5nIGF1dGhvcml0eU5hbWUsCi0gICAgICAgICAgICBTdHJpbmcgdGFnKSB7Ci0gICAgICAgIEFjY291bnRBbmRVc2VyIGF1ID0gbmV3IEFjY291bnRBbmRVc2VyKGFjY291bnROYW1lLCB1c2VySWQpOwotICAgICAgICBBY2NvdW50SW5mbyBhY2NvdW50SW5mbyA9IG1BY2NvdW50cy5nZXQoYXUpOwotICAgICAgICBpZiAoYWNjb3VudEluZm8gPT0gbnVsbCkgewotICAgICAgICAgICAgaWYgKHRhZyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7Ci0gICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgdGFnICsgIjogdW5rbm93biBhY2NvdW50ICIgKyBhdSk7Ci0gICAgICAgICAgICAgICAgfQorICAgIHByaXZhdGUgQXV0aG9yaXR5SW5mbyBnZXRBdXRob3JpdHlMb2NrZWQoRW5kUG9pbnQgaW5mbywgU3RyaW5nIHRhZykgeworICAgICAgICBpZiAoaW5mby50YXJnZXRfc2VydmljZSkgeworICAgICAgICAgICAgU3BhcnNlQXJyYXk8QXV0aG9yaXR5SW5mbz4gYUluZm8gPSBtU2VydmljZXMuZ2V0KGluZm8uc2VydmljZSk7CisgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IG51bGw7CisgICAgICAgICAgICBpZiAoYUluZm8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGF1dGhvcml0eSA9IGFJbmZvLmdldChpbmZvLnVzZXJJZCk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYXV0aG9yaXR5ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAodGFnICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsIHRhZyArICIgTm8gYXV0aG9yaXR5IGluZm8gZm91bmQgZm9yICIgKyBpbmZvLnNlcnZpY2UgKyAiIGZvciIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHVzZXIgIiArIGluZm8udXNlcklkKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBhdXRob3JpdHk7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby50YXJnZXRfcHJvdmlkZXIpeworICAgICAgICAgICAgQWNjb3VudEFuZFVzZXIgYXUgPSBuZXcgQWNjb3VudEFuZFVzZXIoaW5mby5hY2NvdW50LCBpbmZvLnVzZXJJZCk7CisgICAgICAgICAgICBBY2NvdW50SW5mbyBhY2NvdW50SW5mbyA9IG1BY2NvdW50cy5nZXQoYXUpOworICAgICAgICAgICAgaWYgKGFjY291bnRJbmZvID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAodGFnICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsIHRhZyArICI6IHVua25vd24gYWNjb3VudCAiICsgYXUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHkgPSBhY2NvdW50SW5mby5hdXRob3JpdGllcy5nZXQoaW5mby5wcm92aWRlcik7CisgICAgICAgICAgICBpZiAoYXV0aG9yaXR5ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAodGFnICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBRywgTG9nLlZFUkJPU0UpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsIHRhZyArICI6IHVua25vd24gcHJvdmlkZXIgIiArIGluZm8ucHJvdmlkZXIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGF1dGhvcml0eTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIExvZy5lKFRBRywgdGFnICsgIiBBdXRob3JpdHkgOiAiICsgaW5mbyArICIsIGludmFsaWQgdGFyZ2V0Iik7CiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgfQotICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IGFjY291bnRJbmZvLmF1dGhvcml0aWVzLmdldChhdXRob3JpdHlOYW1lKTsKLSAgICAgICAgaWYgKGF1dGhvcml0eSA9PSBudWxsKSB7Ci0gICAgICAgICAgICBpZiAodGFnICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKLSAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCB0YWcgKyAiOiB1bmtub3duIGF1dGhvcml0eSAiICsgYXV0aG9yaXR5TmFtZSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gYXV0aG9yaXR5OwogICAgIH0KIAogICAgIC8qKgotICAgICAqIFJldHJpZXZlIGFuIGF1dGhvcml0eSwgcmV0dXJuaW5nIG51bGwgaWYgb25lIGRvZXMgbm90IGV4aXN0LgotICAgICAqCi0gICAgICogQHBhcmFtIHNlcnZpY2UgVGhlIHNlcnZpY2UgbmFtZSB1c2VkIGZvciB0aGlzIHN5bmMuCi0gICAgICogQHBhcmFtIHVzZXJJZCBUaGUgdXNlciBmb3Igd2hvbSB0aGlzIHN5bmMgaXMgc2NoZWR1bGVkLgotICAgICAqIEBwYXJhbSB0YWcgSWYgbm9uLW51bGwsIHRoaXMgd2lsbCBiZSB1c2VkIGluIGEgbG9nIG1lc3NhZ2UgaWYgdGhlCi0gICAgICogcmVxdWVzdGVkIGF1dGhvcml0eSBkb2VzIG5vdCBleGlzdC4KLSAgICAgKi8KLSAgICBwcml2YXRlIEF1dGhvcml0eUluZm8gZ2V0QXV0aG9yaXR5TG9ja2VkKENvbXBvbmVudE5hbWUgc2VydmljZSwgaW50IHVzZXJJZCwgU3RyaW5nIHRhZykgewotICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IG1TZXJ2aWNlcy5nZXQoc2VydmljZSkuZ2V0KHVzZXJJZCk7Ci0gICAgICAgIGlmIChhdXRob3JpdHkgPT0gbnVsbCkgewotICAgICAgICAgICAgaWYgKHRhZyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7Ci0gICAgICAgICAgICAgICAgICAgIExvZy52KFRBRywgdGFnICsgIiBObyBhdXRob3JpdHkgaW5mbyBmb3VuZCBmb3IgIiArIHNlcnZpY2UgKyAiIGZvciB1c2VyICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHVzZXJJZCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGF1dGhvcml0eTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0gY25hbWUgaWRlbnRpZmllciBmb3IgdGhlIHNlcnZpY2UuCi0gICAgICogQHBhcmFtIHVzZXJJZCBmb3IgdGhlIHN5bmNzIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBhdXRob3JpdHkuCi0gICAgICogQHBhcmFtIGlkZW50IHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhdXRob3JpdHkuIC0xIGZvciBub25lLgorICAgICAqIEBwYXJhbSBpbmZvIGluZm8gaWRlbnRpZnlpbmcgdGFyZ2V0LgorICAgICAqIEBwYXJhbSBpZGVudCB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGFyZ2V0LiAtMSBmb3Igbm9uZS4KICAgICAgKiBAcGFyYW0gZG9Xcml0ZSBpZiB0cnVlLCB1cGRhdGUgdGhlIGFjY291bnRzLnhtbCBmaWxlIG9uIHRoZSBkaXNrLgotICAgICAqIEByZXR1cm4gdGhlIGF1dGhvcml0eSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBwcm92aWRlZCBzeW5jIHNlcnZpY2UsIGNyZWF0aW5nIGl0IGlmIG5vbmUKKyAgICAgKiBAcmV0dXJuIHRoZSBhdXRob3JpdHkgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcHJvdmlkZWQgc3luYyB0YXJnZXQsIGNyZWF0aW5nIGl0IGlmIG5vbmUKICAgICAgKiBleGlzdHMuCiAgICAgICovCi0gICAgcHJpdmF0ZSBBdXRob3JpdHlJbmZvIGdldE9yQ3JlYXRlQXV0aG9yaXR5TG9ja2VkKENvbXBvbmVudE5hbWUgY25hbWUsIGludCB1c2VySWQsIGludCBpZGVudCwKLSAgICAgICAgICAgIGJvb2xlYW4gZG9Xcml0ZSkgewotICAgICAgICBTcGFyc2VBcnJheTxBdXRob3JpdHlJbmZvPiBhSW5mbyA9IG1TZXJ2aWNlcy5nZXQoY25hbWUpOwotICAgICAgICBpZiAoYUluZm8gPT0gbnVsbCkgewotICAgICAgICAgICAgYUluZm8gPSBuZXcgU3BhcnNlQXJyYXk8QXV0aG9yaXR5SW5mbz4oKTsKLSAgICAgICAgICAgIG1TZXJ2aWNlcy5wdXQoY25hbWUsIGFJbmZvKTsKLSAgICAgICAgfQotICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IGFJbmZvLmdldCh1c2VySWQpOwotICAgICAgICBpZiAoYXV0aG9yaXR5ID09IG51bGwpIHsKLSAgICAgICAgICAgIGlmIChpZGVudCA8IDApIHsKLSAgICAgICAgICAgICAgICBpZGVudCA9IG1OZXh0QXV0aG9yaXR5SWQ7Ci0gICAgICAgICAgICAgICAgbU5leHRBdXRob3JpdHlJZCsrOwotICAgICAgICAgICAgICAgIGRvV3JpdGUgPSB0cnVlOworICAgIHByaXZhdGUgQXV0aG9yaXR5SW5mbyBnZXRPckNyZWF0ZUF1dGhvcml0eUxvY2tlZChFbmRQb2ludCBpbmZvLCBpbnQgaWRlbnQsIGJvb2xlYW4gZG9Xcml0ZSkgeworICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IG51bGw7CisgICAgICAgIGlmIChpbmZvLnRhcmdldF9zZXJ2aWNlKSB7CisgICAgICAgICAgICBTcGFyc2VBcnJheTxBdXRob3JpdHlJbmZvPiBhSW5mbyA9IG1TZXJ2aWNlcy5nZXQoaW5mby5zZXJ2aWNlKTsKKyAgICAgICAgICAgIGlmIChhSW5mbyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYUluZm8gPSBuZXcgU3BhcnNlQXJyYXk8QXV0aG9yaXR5SW5mbz4oKTsKKyAgICAgICAgICAgICAgICBtU2VydmljZXMucHV0KGluZm8uc2VydmljZSwgYUluZm8pOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKERFQlVHKSB7Ci0gICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAiY3JlYXRlZCBhIG5ldyBBdXRob3JpdHlJbmZvIGZvciAiICsgY25hbWUuZ2V0UGFja2FnZU5hbWUoKQotICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgY25hbWUuZ2V0Q2xhc3NOYW1lKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgdXNlcjogIiArIHVzZXJJZCk7CisgICAgICAgICAgICBhdXRob3JpdHkgPSBhSW5mby5nZXQoaW5mby51c2VySWQpOworICAgICAgICAgICAgaWYgKGF1dGhvcml0eSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYXV0aG9yaXR5ID0gY3JlYXRlQXV0aG9yaXR5TG9ja2VkKGluZm8sIGlkZW50LCBkb1dyaXRlKTsKKyAgICAgICAgICAgICAgICBhSW5mby5wdXQoaW5mby51c2VySWQsIGF1dGhvcml0eSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhdXRob3JpdHkgPSBuZXcgQXV0aG9yaXR5SW5mbyhjbmFtZSwgdXNlcklkLCBpZGVudCk7Ci0gICAgICAgICAgICBhSW5mby5wdXQodXNlcklkLCBhdXRob3JpdHkpOwotICAgICAgICAgICAgbUF1dGhvcml0aWVzLnB1dChpZGVudCwgYXV0aG9yaXR5KTsKLSAgICAgICAgICAgIGlmIChkb1dyaXRlKSB7Ci0gICAgICAgICAgICAgICAgd3JpdGVBY2NvdW50SW5mb0xvY2tlZCgpOworICAgICAgICB9IGVsc2UgaWYgKGluZm8udGFyZ2V0X3Byb3ZpZGVyKSB7CisgICAgICAgICAgICBBY2NvdW50QW5kVXNlciBhdSA9IG5ldyBBY2NvdW50QW5kVXNlcihpbmZvLmFjY291bnQsIGluZm8udXNlcklkKTsKKyAgICAgICAgICAgIEFjY291bnRJbmZvIGFjY291bnQgPSBtQWNjb3VudHMuZ2V0KGF1KTsKKyAgICAgICAgICAgIGlmIChhY2NvdW50ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhY2NvdW50ID0gbmV3IEFjY291bnRJbmZvKGF1KTsKKyAgICAgICAgICAgICAgICBtQWNjb3VudHMucHV0KGF1LCBhY2NvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGF1dGhvcml0eSA9IGFjY291bnQuYXV0aG9yaXRpZXMuZ2V0KGluZm8ucHJvdmlkZXIpOworICAgICAgICAgICAgaWYgKGF1dGhvcml0eSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYXV0aG9yaXR5ID0gY3JlYXRlQXV0aG9yaXR5TG9ja2VkKGluZm8sIGlkZW50LCBkb1dyaXRlKTsKKyAgICAgICAgICAgICAgICBhY2NvdW50LmF1dGhvcml0aWVzLnB1dChpbmZvLnByb3ZpZGVyLCBhdXRob3JpdHkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBhdXRob3JpdHk7CiAgICAgfQogCi0gICAgcHJpdmF0ZSBBdXRob3JpdHlJbmZvIGdldE9yQ3JlYXRlQXV0aG9yaXR5TG9ja2VkKEFjY291bnQgYWNjb3VudE5hbWUsIGludCB1c2VySWQsCi0gICAgICAgICAgICBTdHJpbmcgYXV0aG9yaXR5TmFtZSwgaW50IGlkZW50LCBib29sZWFuIGRvV3JpdGUpIHsKLSAgICAgICAgQWNjb3VudEFuZFVzZXIgYXUgPSBuZXcgQWNjb3VudEFuZFVzZXIoYWNjb3VudE5hbWUsIHVzZXJJZCk7Ci0gICAgICAgIEFjY291bnRJbmZvIGFjY291bnQgPSBtQWNjb3VudHMuZ2V0KGF1KTsKLSAgICAgICAgaWYgKGFjY291bnQgPT0gbnVsbCkgewotICAgICAgICAgICAgYWNjb3VudCA9IG5ldyBBY2NvdW50SW5mbyhhdSk7Ci0gICAgICAgICAgICBtQWNjb3VudHMucHV0KGF1LCBhY2NvdW50KTsKKyAgICBwcml2YXRlIEF1dGhvcml0eUluZm8gY3JlYXRlQXV0aG9yaXR5TG9ja2VkKEVuZFBvaW50IGluZm8sIGludCBpZGVudCwgYm9vbGVhbiBkb1dyaXRlKSB7CisgICAgICAgIEF1dGhvcml0eUluZm8gYXV0aG9yaXR5OworICAgICAgICBpZiAoaWRlbnQgPCAwKSB7CisgICAgICAgICAgICBpZGVudCA9IG1OZXh0QXV0aG9yaXR5SWQ7CisgICAgICAgICAgICBtTmV4dEF1dGhvcml0eUlkKys7CisgICAgICAgICAgICBkb1dyaXRlID0gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IGFjY291bnQuYXV0aG9yaXRpZXMuZ2V0KGF1dGhvcml0eU5hbWUpOwotICAgICAgICBpZiAoYXV0aG9yaXR5ID09IG51bGwpIHsKLSAgICAgICAgICAgIGlmIChpZGVudCA8IDApIHsKLSAgICAgICAgICAgICAgICBpZGVudCA9IG1OZXh0QXV0aG9yaXR5SWQ7Ci0gICAgICAgICAgICAgICAgbU5leHRBdXRob3JpdHlJZCsrOwotICAgICAgICAgICAgICAgIGRvV3JpdGUgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKERFQlVHKSB7Ci0gICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAiY3JlYXRlZCBhIG5ldyBBdXRob3JpdHlJbmZvIGZvciAiICsgYWNjb3VudE5hbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgdXNlciAiICsgdXNlcklkCi0gICAgICAgICAgICAgICAgICAgICAgICArICIsIHByb3ZpZGVyICIgKyBhdXRob3JpdHlOYW1lKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGF1dGhvcml0eSA9IG5ldyBBdXRob3JpdHlJbmZvKGFjY291bnROYW1lLCB1c2VySWQsIGF1dGhvcml0eU5hbWUsIGlkZW50KTsKLSAgICAgICAgICAgIGFjY291bnQuYXV0aG9yaXRpZXMucHV0KGF1dGhvcml0eU5hbWUsIGF1dGhvcml0eSk7Ci0gICAgICAgICAgICBtQXV0aG9yaXRpZXMucHV0KGlkZW50LCBhdXRob3JpdHkpOwotICAgICAgICAgICAgaWYgKGRvV3JpdGUpIHsKLSAgICAgICAgICAgICAgICB3cml0ZUFjY291bnRJbmZvTG9ja2VkKCk7Ci0gICAgICAgICAgICB9CisgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUcsIExvZy5WRVJCT1NFKSkgeworICAgICAgICAgICAgTG9nLnYoVEFHLCAiY3JlYXRlZCBhIG5ldyBBdXRob3JpdHlJbmZvIGZvciAiICsgaW5mbyk7CiAgICAgICAgIH0KLQorICAgICAgICBhdXRob3JpdHkgPSBuZXcgQXV0aG9yaXR5SW5mbyhpbmZvLCBpZGVudCk7CisgICAgICAgIG1BdXRob3JpdGllcy5wdXQoaWRlbnQsIGF1dGhvcml0eSk7CisgICAgICAgIGlmIChkb1dyaXRlKSB7CisgICAgICAgICAgICB3cml0ZUFjY291bnRJbmZvTG9ja2VkKCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGF1dGhvcml0eTsKICAgICB9CiAKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVBdXRob3JpdHkoRW5kUG9pbnQgaW5mbykgeworICAgICAgICBzeW5jaHJvbml6ZWQgKG1BdXRob3JpdGllcykgeworICAgICAgICAgICAgaWYgKGluZm8udGFyZ2V0X3Byb3ZpZGVyKSB7CisgICAgICAgICAgICAgICAgcmVtb3ZlQXV0aG9yaXR5TG9ja2VkKGluZm8uYWNjb3VudCwgaW5mby51c2VySWQsIGluZm8ucHJvdmlkZXIsIHRydWUgLyogZG9Xcml0ZSAqLyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFNwYXJzZUFycmF5PEF1dGhvcml0eUluZm8+IGFJbmZvcyA9IG1TZXJ2aWNlcy5nZXQoaW5mby5zZXJ2aWNlKTsKKyAgICAgICAgICAgICAgICBpZiAoYUluZm9zICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHlJbmZvID0gYUluZm9zLmdldChpbmZvLnVzZXJJZCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHlJbmZvICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1BdXRob3JpdGllcy5yZW1vdmUoYXV0aG9yaXR5SW5mby5pZGVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhSW5mb3MuZGVsZXRlKGluZm8udXNlcklkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlQWNjb3VudEluZm9Mb2NrZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIGFuIGF1dGhvcml0eSBhc3NvY2lhdGVkIHdpdGggYSBwcm92aWRlci4gTmVlZHMgdG8gYmUgYSBzdGFuZGFsb25lIGZ1bmN0aW9uIGZvcgorICAgICAqIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisgICAgICovCiAgICAgcHJpdmF0ZSB2b2lkIHJlbW92ZUF1dGhvcml0eUxvY2tlZChBY2NvdW50IGFjY291bnQsIGludCB1c2VySWQsIFN0cmluZyBhdXRob3JpdHlOYW1lLAogICAgICAgICAgICAgYm9vbGVhbiBkb1dyaXRlKSB7CiAgICAgICAgIEFjY291bnRJbmZvIGFjY291bnRJbmZvID0gbUFjY291bnRzLmdldChuZXcgQWNjb3VudEFuZFVzZXIoYWNjb3VudCwgdXNlcklkKSk7CkBAIC0xNTkyLDEwICsxNzE2LDkgQEAKIAogICAgIC8qKgogICAgICAqIFVwZGF0ZXMgKGluIGEgc3luY2hyb25pemVkIHdheSkgdGhlIHBlcmlvZGljIHN5bmMgdGltZSBvZiB0aGUgc3BlY2lmaWVkCi0gICAgICogYXV0aG9yaXR5IGlkIGFuZCB0YXJnZXQgcGVyaW9kaWMgc3luYworICAgICAqIHRhcmdldCBpZCBhbmQgdGFyZ2V0IHBlcmlvZGljIHN5bmMKICAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzZXRQZXJpb2RpY1N5bmNUaW1lKAotICAgICAgICAgICAgaW50IGF1dGhvcml0eUlkLCBQZXJpb2RpY1N5bmMgdGFyZ2V0UGVyaW9kaWNTeW5jLCBsb25nIHdoZW4pIHsKKyAgICBwdWJsaWMgdm9pZCBzZXRQZXJpb2RpY1N5bmNUaW1lKGludCBhdXRob3JpdHlJZCwgUGVyaW9kaWNTeW5jIHRhcmdldFBlcmlvZGljU3luYywgbG9uZyB3aGVuKSB7CiAgICAgICAgIGJvb2xlYW4gZm91bmQgPSBmYWxzZTsKICAgICAgICAgZmluYWwgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHlJbmZvOwogICAgICAgICBzeW5jaHJvbml6ZWQgKG1BdXRob3JpdGllcykgewpAQCAtMTYxMSw3ICsxNzM0LDcgQEAKICAgICAgICAgfQogICAgICAgICBpZiAoIWZvdW5kKSB7CiAgICAgICAgICAgICBMb2cudyhUQUcsICJJZ25vcmluZyBzZXRQZXJpb2RpY1N5bmNUaW1lIHJlcXVlc3QgZm9yIGEgc3luYyB0aGF0IGRvZXMgbm90IGV4aXN0LiAiICsKLSAgICAgICAgICAgICAgICAgICAgIkF1dGhvcml0eTogIiArIGF1dGhvcml0eUluZm8uYXV0aG9yaXR5KTsKKyAgICAgICAgICAgICAgICAgICAgIkF1dGhvcml0eTogIiArIGF1dGhvcml0eUluZm8udGFyZ2V0KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTY3Miw3ICsxNzk1LDcgQEAKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIGZpcyA9IG1BY2NvdW50SW5mb0ZpbGUub3BlblJlYWQoKTsKICAgICAgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUdfRklMRSwgTG9nLlZFUkJPU0UpKSB7Ci0gICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAiUmVhZGluZyAiICsgbUFjY291bnRJbmZvRmlsZS5nZXRCYXNlRmlsZSgpKTsKKyAgICAgICAgICAgICAgICBMb2cudihUQUdfRklMRSwgIlJlYWRpbmcgIiArIG1BY2NvdW50SW5mb0ZpbGUuZ2V0QmFzZUZpbGUoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBYbWxQdWxsUGFyc2VyIHBhcnNlciA9IFhtbC5uZXdQdWxsUGFyc2VyKCk7CiAgICAgICAgICAgICBwYXJzZXIuc2V0SW5wdXQoZmlzLCBudWxsKTsKQEAgLTE3ODAsMTAgKzE5MDMsMTQgQEAKIAogICAgICAgICBBcnJheUxpc3Q8QXV0aG9yaXR5SW5mbz4gYXV0aG9yaXRpZXNUb1JlbW92ZSA9IG5ldyBBcnJheUxpc3Q8QXV0aG9yaXR5SW5mbz4oKTsKICAgICAgICAgZmluYWwgaW50IE4gPSBtQXV0aG9yaXRpZXMuc2l6ZSgpOwotICAgICAgICBmb3IgKGludCBpPTA7IGk8TjsgaSsrKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKSB7CiAgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IG1BdXRob3JpdGllcy52YWx1ZUF0KGkpOworICAgICAgICAgICAgLy8gc2tpcCB0aGlzIGF1dGhvcml0eSBpZiBpdCBkb2Vzbid0IHRhcmdldCBhIHByb3ZpZGVyCisgICAgICAgICAgICBpZiAoYXV0aG9yaXR5LnRhcmdldC50YXJnZXRfc2VydmljZSkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQogICAgICAgICAgICAgLy8gc2tpcCB0aGlzIGF1dGhvcml0eSBpZiBpdCBpc24ndCBvbmUgb2YgdGhlIHJlbmFtZWQgb25lcwotICAgICAgICAgICAgZmluYWwgU3RyaW5nIG5ld0F1dGhvcml0eU5hbWUgPSBzQXV0aG9yaXR5UmVuYW1lcy5nZXQoYXV0aG9yaXR5LmF1dGhvcml0eSk7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgbmV3QXV0aG9yaXR5TmFtZSA9IHNBdXRob3JpdHlSZW5hbWVzLmdldChhdXRob3JpdHkudGFyZ2V0LnByb3ZpZGVyKTsKICAgICAgICAgICAgIGlmIChuZXdBdXRob3JpdHlOYW1lID09IG51bGwpIHsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KQEAgLTE3OTksMjAgKzE5MjYsMjYgQEAKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gaWYgd2UgYWxyZWFkeSBoYXZlIGEgcmVjb3JkIG9mIHRoaXMgbmV3IGF1dGhvcml0eSB0aGVuIGRvbid0IGNvcHkgb3ZlciB0aGUgc2V0dGluZ3MKLSAgICAgICAgICAgIGlmIChnZXRBdXRob3JpdHlMb2NrZWQoYXV0aG9yaXR5LmFjY291bnQsIGF1dGhvcml0eS51c2VySWQsIG5ld0F1dGhvcml0eU5hbWUsICJjbGVhbnVwIikKLSAgICAgICAgICAgICAgICAgICAgIT0gbnVsbCkgeworICAgICAgICAgICAgRW5kUG9pbnQgbmV3SW5mbyA9CisgICAgICAgICAgICAgICAgICAgIG5ldyBFbmRQb2ludChhdXRob3JpdHkudGFyZ2V0LmFjY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3QXV0aG9yaXR5TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHkudGFyZ2V0LnVzZXJJZCk7CisgICAgICAgICAgICBpZiAoZ2V0QXV0aG9yaXR5TG9ja2VkKG5ld0luZm8sICJjbGVhbnVwIikgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBBdXRob3JpdHlJbmZvIG5ld0F1dGhvcml0eSA9IGdldE9yQ3JlYXRlQXV0aG9yaXR5TG9ja2VkKGF1dGhvcml0eS5hY2NvdW50LAotICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHkudXNlcklkLCBuZXdBdXRob3JpdHlOYW1lLCAtMSAvKiBpZGVudCAqLywgZmFsc2UgLyogZG9Xcml0ZSAqLyk7CisgICAgICAgICAgICBBdXRob3JpdHlJbmZvIG5ld0F1dGhvcml0eSA9CisgICAgICAgICAgICAgICAgICAgIGdldE9yQ3JlYXRlQXV0aG9yaXR5TG9ja2VkKG5ld0luZm8sIC0xIC8qIGlkZW50ICovLCBmYWxzZSAvKiBkb1dyaXRlICovKTsKICAgICAgICAgICAgIG5ld0F1dGhvcml0eS5lbmFibGVkID0gdHJ1ZTsKICAgICAgICAgICAgIHdyaXRlTmVlZGVkID0gdHJ1ZTsKICAgICAgICAgfQogCiAgICAgICAgIGZvciAoQXV0aG9yaXR5SW5mbyBhdXRob3JpdHlJbmZvIDogYXV0aG9yaXRpZXNUb1JlbW92ZSkgewotICAgICAgICAgICAgcmVtb3ZlQXV0aG9yaXR5TG9ja2VkKGF1dGhvcml0eUluZm8uYWNjb3VudCwgYXV0aG9yaXR5SW5mby51c2VySWQsCi0gICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eUluZm8uYXV0aG9yaXR5LCBmYWxzZSAvKiBkb1dyaXRlICovKTsKKyAgICAgICAgICAgIHJlbW92ZUF1dGhvcml0eUxvY2tlZCgKKyAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby50YXJnZXQuYWNjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby50YXJnZXQudXNlcklkLAorICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlJbmZvLnRhcmdldC5wcm92aWRlciwKKyAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogZG9Xcml0ZSAqLyk7CiAgICAgICAgICAgICB3cml0ZU5lZWRlZCA9IHRydWU7CiAgICAgICAgIH0KIApAQCAtMTg1NCwzMCArMTk4NywzNyBAQAogICAgICAgICAgICAgU3RyaW5nIHBhY2thZ2VOYW1lID0gcGFyc2VyLmdldEF0dHJpYnV0ZVZhbHVlKG51bGwsICJwYWNrYWdlIik7CiAgICAgICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gcGFyc2VyLmdldEF0dHJpYnV0ZVZhbHVlKG51bGwsICJjbGFzcyIpOwogICAgICAgICAgICAgaW50IHVzZXJJZCA9IHVzZXIgPT0gbnVsbCA/IDAgOiBJbnRlZ2VyLnBhcnNlSW50KHVzZXIpOwotICAgICAgICAgICAgaWYgKGFjY291bnRUeXBlID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChhY2NvdW50VHlwZSA9PSBudWxsICYmIHBhY2thZ2VOYW1lID09IG51bGwpIHsKICAgICAgICAgICAgICAgICBhY2NvdW50VHlwZSA9ICJjb20uZ29vZ2xlIjsKICAgICAgICAgICAgICAgICBzeW5jYWJsZSA9ICJ1bmtub3duIjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGF1dGhvcml0eSA9IG1BdXRob3JpdGllcy5nZXQoaWQpOwogICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBR19GSUxFLCBMb2cuVkVSQk9TRSkpIHsKLSAgICAgICAgICAgICAgICBMb2cudihUQUcsICJBZGRpbmcgYXV0aG9yaXR5OiBhY2NvdW50PSIKLSAgICAgICAgICAgICAgICAgICAgICAgICsgYWNjb3VudE5hbWUgKyAiIGF1dGg9IiArIGF1dGhvcml0eU5hbWUKKyAgICAgICAgICAgICAgICBMb2cudihUQUdfRklMRSwgIkFkZGluZyBhdXRob3JpdHk6IgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGFjY291bnQ9IiArIGFjY291bnROYW1lCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYWNjb3VudFR5cGU9IiArIGFjY291bnRUeXBlCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYXV0aD0iICsgYXV0aG9yaXR5TmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHBhY2thZ2U9IiArIHBhY2thZ2VOYW1lCisgICAgICAgICAgICAgICAgICAgICAgICArICIgY2xhc3M9IiArIGNsYXNzTmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHVzZXI9IiArIHVzZXJJZAogICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGVuYWJsZWQ9IiArIGVuYWJsZWQKICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBzeW5jYWJsZT0iICsgc3luY2FibGUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGF1dGhvcml0eSA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBR19GSUxFLCBMb2cuVkVSQk9TRSkpIHsKLSAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAiQ3JlYXRpbmcgZW50cnkiKTsKKyAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHX0ZJTEUsICJDcmVhdGluZyBhdXRob3JpdHkgZW50cnkiKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGFjY291bnROYW1lICE9IG51bGwgJiYgYWNjb3VudFR5cGUgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHkgPSBnZXRPckNyZWF0ZUF1dGhvcml0eUxvY2tlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQWNjb3VudChhY2NvdW50TmFtZSwgYWNjb3VudFR5cGUpLCB1c2VySWQsIGF1dGhvcml0eU5hbWUsIGlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CisgICAgICAgICAgICAgICAgRW5kUG9pbnQgaW5mbzsKKyAgICAgICAgICAgICAgICBpZiAoYWNjb3VudE5hbWUgIT0gbnVsbCAmJiBhdXRob3JpdHlOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5mbyA9IG5ldyBFbmRQb2ludCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQWNjb3VudChhY2NvdW50TmFtZSwgYWNjb3VudFR5cGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eU5hbWUsIHVzZXJJZCk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5ID0gZ2V0T3JDcmVhdGVBdXRob3JpdHlMb2NrZWQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENvbXBvbmVudE5hbWUocGFja2FnZU5hbWUsIGNsYXNzTmFtZSksIHVzZXJJZCwgaWQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgaW5mbyA9IG5ldyBFbmRQb2ludCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ29tcG9uZW50TmFtZShwYWNrYWdlTmFtZSwgY2xhc3NOYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VySWQpOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhdXRob3JpdHkgPSBnZXRPckNyZWF0ZUF1dGhvcml0eUxvY2tlZChpbmZvLCBpZCwgZmFsc2UpOwogICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2ZXJzaW9uIGlzIDAgdGhlbiB3ZSBhcmUgdXBncmFkaW5nIGZyb20gYSBmaWxlIGZvcm1hdCB0aGF0IGRpZCBub3QKICAgICAgICAgICAgICAgICAvLyBrbm93IGFib3V0IHBlcmlvZGljIHN5bmNzLiBJbiB0aGF0IGNhc2UgZG9uJ3QgY2xlYXIgdGhlIGxpc3Qgc2luY2Ugd2UKICAgICAgICAgICAgICAgICAvLyB3YW50IHRoZSBkZWZhdWx0LCB3aGljaCBpcyBhIGRhaWx5IHBlcmlvZGljIHN5bmMuCkBAIC0xOTA4LDcgKzIwNDgsNyBAQAogICAgIC8qKgogICAgICAqIFBhcnNlIGEgcGVyaW9kaWMgc3luYyBmcm9tIGFjY291bnRzLnhtbC4gU2V0cyB0aGUgYnVuZGxlIHRvIGJlIGVtcHR5LgogICAgICAqLwotICAgIHByaXZhdGUgUGVyaW9kaWNTeW5jIHBhcnNlUGVyaW9kaWNTeW5jKFhtbFB1bGxQYXJzZXIgcGFyc2VyLCBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSkgeworICAgIHByaXZhdGUgUGVyaW9kaWNTeW5jIHBhcnNlUGVyaW9kaWNTeW5jKFhtbFB1bGxQYXJzZXIgcGFyc2VyLCBBdXRob3JpdHlJbmZvIGF1dGhvcml0eUluZm8pIHsKICAgICAgICAgQnVuZGxlIGV4dHJhcyA9IG5ldyBCdW5kbGUoKTsgLy8gR2V0cyBmaWxsZWQgaW4gbGF0ZXIuCiAgICAgICAgIFN0cmluZyBwZXJpb2RWYWx1ZSA9IHBhcnNlci5nZXRBdHRyaWJ1dGVWYWx1ZShudWxsLCAicGVyaW9kIik7CiAgICAgICAgIFN0cmluZyBmbGV4VmFsdWUgPSBwYXJzZXIuZ2V0QXR0cmlidXRlVmFsdWUobnVsbCwgImZsZXgiKTsKQEAgLTE5MjYsMTcgKzIwNjYsMzEgQEAKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIGZsZXh0aW1lID0gTG9uZy5wYXJzZUxvbmcoZmxleFZhbHVlKTsKICAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIExvZy5lKFRBRywgIkVycm9yIGZvcm1hdHRpbmcgdmFsdWUgcGFyc2VkIGZvciBwZXJpb2RpYyBzeW5jIGZsZXg6ICIgKyBmbGV4VmFsdWUpOwogICAgICAgICAgICAgZmxleHRpbWUgPSBjYWxjdWxhdGVEZWZhdWx0RmxleFRpbWUocGVyaW9kKTsKKyAgICAgICAgICAgIExvZy5lKFRBRywgIkVycm9yIGZvcm1hdHRpbmcgdmFsdWUgcGFyc2VkIGZvciBwZXJpb2RpYyBzeW5jIGZsZXg6ICIgKyBmbGV4VmFsdWUKKyAgICAgICAgICAgICAgICAgICAgKyAiLCB1c2luZyBkZWZhdWx0OiAiCisgICAgICAgICAgICAgICAgICAgICsgZmxleHRpbWUpOwogICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBleHBlY3RlZCkgewogICAgICAgICAgICAgZmxleHRpbWUgPSBjYWxjdWxhdGVEZWZhdWx0RmxleFRpbWUocGVyaW9kKTsKICAgICAgICAgICAgIExvZy5kKFRBRywgIk5vIGZsZXggdGltZSBzcGVjaWZpZWQgZm9yIHRoaXMgc3luYywgdXNpbmcgYSBkZWZhdWx0LiBwZXJpb2Q6ICIKICAgICAgICAgICAgICsgcGVyaW9kICsgIiBmbGV4OiAiICsgZmxleHRpbWUpOwogICAgICAgICB9Ci0gICAgICAgIGZpbmFsIFBlcmlvZGljU3luYyBwZXJpb2RpY1N5bmMgPQotICAgICAgICAgICAgICAgIG5ldyBQZXJpb2RpY1N5bmMoYXV0aG9yaXR5LmFjY291bnQsIGF1dGhvcml0eS5hdXRob3JpdHksIGV4dHJhcywKKyAgICAgICAgUGVyaW9kaWNTeW5jIHBlcmlvZGljU3luYzsKKyAgICAgICAgaWYgKGF1dGhvcml0eUluZm8udGFyZ2V0LnRhcmdldF9wcm92aWRlcikgeworICAgICAgICAgICAgcGVyaW9kaWNTeW5jID0KKyAgICAgICAgICAgICAgICBuZXcgUGVyaW9kaWNTeW5jKGF1dGhvcml0eUluZm8udGFyZ2V0LmFjY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICBhdXRob3JpdHlJbmZvLnRhcmdldC5wcm92aWRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhcywKICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmlvZCwgZmxleHRpbWUpOwotICAgICAgICBhdXRob3JpdHkucGVyaW9kaWNTeW5jcy5hZGQocGVyaW9kaWNTeW5jKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBlcmlvZGljU3luYyA9CisgICAgICAgICAgICAgICAgICAgIG5ldyBQZXJpb2RpY1N5bmMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5SW5mby50YXJnZXQuc2VydmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyaW9kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXh0aW1lKTsKKyAgICAgICAgfQorICAgICAgICBhdXRob3JpdHlJbmZvLnBlcmlvZGljU3luY3MuYWRkKHBlcmlvZGljU3luYyk7CiAgICAgICAgIHJldHVybiBwZXJpb2RpY1N5bmM7CiAgICAgfQogCkBAIC0xOTc0LDcgKzIxMjgsNyBAQAogICAgICAqLwogICAgIHByaXZhdGUgdm9pZCB3cml0ZUFjY291bnRJbmZvTG9ja2VkKCkgewogICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHX0ZJTEUsIExvZy5WRVJCT1NFKSkgewotICAgICAgICAgICAgTG9nLnYoVEFHLCAiV3JpdGluZyBuZXcgIiArIG1BY2NvdW50SW5mb0ZpbGUuZ2V0QmFzZUZpbGUoKSk7CisgICAgICAgICAgICBMb2cudihUQUdfRklMRSwgIldyaXRpbmcgbmV3ICIgKyBtQWNjb3VudEluZm9GaWxlLmdldEJhc2VGaWxlKCkpOwogICAgICAgICB9CiAgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gZm9zID0gbnVsbDsKIApAQCAtMjAwNCwxNyArMjE1OCwxOCBAQAogICAgICAgICAgICAgZmluYWwgaW50IE4gPSBtQXV0aG9yaXRpZXMuc2l6ZSgpOwogICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IG1BdXRob3JpdGllcy52YWx1ZUF0KGkpOworICAgICAgICAgICAgICAgIEVuZFBvaW50IGluZm8gPSBhdXRob3JpdHkudGFyZ2V0OwogICAgICAgICAgICAgICAgIG91dC5zdGFydFRhZyhudWxsLCAiYXV0aG9yaXR5Iik7CiAgICAgICAgICAgICAgICAgb3V0LmF0dHJpYnV0ZShudWxsLCAiaWQiLCBJbnRlZ2VyLnRvU3RyaW5nKGF1dGhvcml0eS5pZGVudCkpOwotICAgICAgICAgICAgICAgIG91dC5hdHRyaWJ1dGUobnVsbCwgWE1MX0FUVFJfVVNFUiwgSW50ZWdlci50b1N0cmluZyhhdXRob3JpdHkudXNlcklkKSk7CisgICAgICAgICAgICAgICAgb3V0LmF0dHJpYnV0ZShudWxsLCBYTUxfQVRUUl9VU0VSLCBJbnRlZ2VyLnRvU3RyaW5nKGluZm8udXNlcklkKSk7CiAgICAgICAgICAgICAgICAgb3V0LmF0dHJpYnV0ZShudWxsLCBYTUxfQVRUUl9FTkFCTEVELCBCb29sZWFuLnRvU3RyaW5nKGF1dGhvcml0eS5lbmFibGVkKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dGhvcml0eS5zZXJ2aWNlID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgb3V0LmF0dHJpYnV0ZShudWxsLCAiYWNjb3VudCIsIGF1dGhvcml0eS5hY2NvdW50Lm5hbWUpOwotICAgICAgICAgICAgICAgICAgICBvdXQuYXR0cmlidXRlKG51bGwsICJ0eXBlIiwgYXV0aG9yaXR5LmFjY291bnQudHlwZSk7Ci0gICAgICAgICAgICAgICAgICAgIG91dC5hdHRyaWJ1dGUobnVsbCwgImF1dGhvcml0eSIsIGF1dGhvcml0eS5hdXRob3JpdHkpOworICAgICAgICAgICAgICAgIGlmIChpbmZvLnNlcnZpY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBvdXQuYXR0cmlidXRlKG51bGwsICJhY2NvdW50IiwgaW5mby5hY2NvdW50Lm5hbWUpOworICAgICAgICAgICAgICAgICAgICBvdXQuYXR0cmlidXRlKG51bGwsICJ0eXBlIiwgaW5mby5hY2NvdW50LnR5cGUpOworICAgICAgICAgICAgICAgICAgICBvdXQuYXR0cmlidXRlKG51bGwsICJhdXRob3JpdHkiLCBpbmZvLnByb3ZpZGVyKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBvdXQuYXR0cmlidXRlKG51bGwsICJwYWNrYWdlIiwgYXV0aG9yaXR5LnNlcnZpY2UuZ2V0UGFja2FnZU5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIG91dC5hdHRyaWJ1dGUobnVsbCwgImNsYXNzIiwgYXV0aG9yaXR5LnNlcnZpY2UuZ2V0Q2xhc3NOYW1lKCkpOworICAgICAgICAgICAgICAgICAgICBvdXQuYXR0cmlidXRlKG51bGwsICJwYWNrYWdlIiwgaW5mby5zZXJ2aWNlLmdldFBhY2thZ2VOYW1lKCkpOworICAgICAgICAgICAgICAgICAgICBvdXQuYXR0cmlidXRlKG51bGwsICJjbGFzcyIsIGluZm8uc2VydmljZS5nZXRDbGFzc05hbWUoKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHkuc3luY2FibGUgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgIG91dC5hdHRyaWJ1dGUobnVsbCwgInN5bmNhYmxlIiwgInVua25vd24iKTsKQEAgLTIwNzQsNyArMjIyOSw3IEBACiAKICAgICAgICAgICAgIC8vIENvcHkgaW4gYWxsIG9mIHRoZSBzdGF0dXMgaW5mb3JtYXRpb24sIGFzIHdlbGwgYXMgYWNjb3VudHMuCiAgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHX0ZJTEUsIExvZy5WRVJCT1NFKSkgewotICAgICAgICAgICAgICAgIExvZy52KFRBRywgIlJlYWRpbmcgbGVnYWN5IHN5bmMgYWNjb3VudHMgZGIiKTsKKyAgICAgICAgICAgICAgICBMb2cudihUQUdfRklMRSwgIlJlYWRpbmcgbGVnYWN5IHN5bmMgYWNjb3VudHMgZGIiKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFNRTGl0ZVF1ZXJ5QnVpbGRlciBxYiA9IG5ldyBTUUxpdGVRdWVyeUJ1aWxkZXIoKTsKICAgICAgICAgICAgIHFiLnNldFRhYmxlcygic3RhdHMsIHN0YXR1cyIpOwpAQCAtMjEwOCw5ICsyMjYzLDEzIEBACiAgICAgICAgICAgICAgICAgICAgIGFjY291bnRUeXBlID0gImNvbS5nb29nbGUiOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBTdHJpbmcgYXV0aG9yaXR5TmFtZSA9IGMuZ2V0U3RyaW5nKGMuZ2V0Q29sdW1uSW5kZXgoImF1dGhvcml0eSIpKTsKLSAgICAgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IHRoaXMuZ2V0T3JDcmVhdGVBdXRob3JpdHlMb2NrZWQoCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXcgQWNjb3VudChhY2NvdW50TmFtZSwgYWNjb3VudFR5cGUpLCAwIC8qIGxlZ2FjeSBpcyBzaW5nbGUtdXNlciAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eU5hbWUsIC0xLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgQXV0aG9yaXR5SW5mbyBhdXRob3JpdHkgPQorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRPckNyZWF0ZUF1dGhvcml0eUxvY2tlZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEVuZFBvaW50KG5ldyBBY2NvdW50KGFjY291bnROYW1lLCBhY2NvdW50VHlwZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIC8qIGxlZ2FjeSBpcyBzaW5nbGUtdXNlciAqLykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAtMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOwogICAgICAgICAgICAgICAgIGlmIChhdXRob3JpdHkgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICBpbnQgaSA9IG1TeW5jU3RhdHVzLnNpemUoKTsKICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmb3VuZCA9IGZhbHNlOwpAQCAtMjE2Miw3ICsyMzIxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGkgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpLS07CiAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpdHlJbmZvIGF1dGhvcml0eSA9IG1BdXRob3JpdGllcy52YWx1ZUF0KGkpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dGhvcml0eS5hdXRob3JpdHkuZXF1YWxzKHByb3ZpZGVyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dGhvcml0eS50YXJnZXQucHJvdmlkZXIuZXF1YWxzKHByb3ZpZGVyKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eS5lbmFibGVkID0gdmFsdWUgPT0gbnVsbCB8fCBCb29sZWFuLnBhcnNlQm9vbGVhbih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5LnN5bmNhYmxlID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTIxODYsNyArMjM0NSw3IEBACiAgICAgICovCiAgICAgcHJpdmF0ZSB2b2lkIHJlYWRTdGF0dXNMb2NrZWQoKSB7CiAgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUdfRklMRSwgTG9nLlZFUkJPU0UpKSB7Ci0gICAgICAgICAgICBMb2cudihUQUcsICJSZWFkaW5nICIgKyBtU3RhdHVzRmlsZS5nZXRCYXNlRmlsZSgpKTsKKyAgICAgICAgICAgIExvZy52KFRBR19GSUxFLCAiUmVhZGluZyAiICsgbVN0YXR1c0ZpbGUuZ2V0QmFzZUZpbGUoKSk7CiAgICAgICAgIH0KICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIGJ5dGVbXSBkYXRhID0gbVN0YXR1c0ZpbGUucmVhZEZ1bGx5KCk7CkBAIC0yMjAwLDggKzIzNTksNyBAQAogICAgICAgICAgICAgICAgICAgICBpZiAobUF1dGhvcml0aWVzLmluZGV4T2ZLZXkoc3RhdHVzLmF1dGhvcml0eUlkKSA+PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMucGVuZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBR19GSUxFLCBMb2cuVkVSQk9TRSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2cudihUQUcsICJBZGRpbmcgc3RhdHVzIGZvciBpZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0YXR1cy5hdXRob3JpdHlJZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHX0ZJTEUsICJBZGRpbmcgc3RhdHVzIGZvciBpZCAiICsgc3RhdHVzLmF1dGhvcml0eUlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIG1TeW5jU3RhdHVzLnB1dChzdGF0dXMuYXV0aG9yaXR5SWQsIHN0YXR1cyk7CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTIyMjEsNyArMjM3OSw3IEBACiAgICAgICovCiAgICAgcHJpdmF0ZSB2b2lkIHdyaXRlU3RhdHVzTG9ja2VkKCkgewogICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHX0ZJTEUsIExvZy5WRVJCT1NFKSkgewotICAgICAgICAgICAgTG9nLnYoVEFHLCAiV3JpdGluZyBuZXcgIiArIG1TdGF0dXNGaWxlLmdldEJhc2VGaWxlKCkpOworICAgICAgICAgICAgTG9nLnYoVEFHX0ZJTEUsICJXcml0aW5nIG5ldyAiICsgbVN0YXR1c0ZpbGUuZ2V0QmFzZUZpbGUoKSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBUaGUgZmlsZSBpcyBiZWluZyB3cml0dGVuLCBzbyB3ZSBkb24ndCBuZWVkIHRvIGhhdmUgYSBzY2hlZHVsZWQKQEAgLTIyNjQsNiArMjQyMiw5IEBACiAgICAgICAgIH0KICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIGZpcyA9IG1QZW5kaW5nRmlsZS5vcGVuUmVhZCgpOworICAgICAgICAgICAgaWYgKExvZy5pc0xvZ2dhYmxlKFRBR19GSUxFLCBMb2cuVkVSQk9TRSkpIHsKKyAgICAgICAgICAgICAgICBMb2cudihUQUdfRklMRSwgIlJlYWRpbmcgIiArIG1QZW5kaW5nRmlsZS5nZXRCYXNlRmlsZSgpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIFhtbFB1bGxQYXJzZXIgcGFyc2VyOwogICAgICAgICAgICAgcGFyc2VyID0gWG1sLm5ld1B1bGxQYXJzZXIoKTsKICAgICAgICAgICAgIHBhcnNlci5zZXRJbnB1dChmaXMsIG51bGwpOwpAQCAtMjI3NSwxMiArMjQzNiwxMSBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBYbWxQdWxsUGFyc2VyLkVORF9ET0NVTUVOVCkgcmV0dXJuOyAvLyBOb3RoaW5nIHRvIHJlYWQuCiAKLSAgICAgICAgICAgIFN0cmluZyB0YWdOYW1lID0gcGFyc2VyLmdldE5hbWUoKTsKICAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICBQZW5kaW5nT3BlcmF0aW9uIHBvcCA9IG51bGw7CiAgICAgICAgICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBYbWxQdWxsUGFyc2VyLlNUQVJUX1RBRykgewogICAgICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGFnTmFtZSA9IHBhcnNlci5nZXROYW1lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFnTmFtZSA9IHBhcnNlci5nZXROYW1lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VyLmdldERlcHRoKCkgPT0gMSAmJiAib3AiLmVxdWFscyh0YWdOYW1lKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZlcmlmeSB2ZXJzaW9uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2ZXJzaW9uU3RyaW5nID0KQEAgLTIzMDUsMTggKzI0NjUsMTYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dGhvcml0eSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcCA9IG5ldyBQZW5kaW5nT3BlcmF0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eS5hY2NvdW50LCBhdXRob3JpdHkudXNlcklkLCByZWFzb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luY1NvdXJjZSwgYXV0aG9yaXR5LmF1dGhvcml0eSwgbmV3IEJ1bmRsZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVkaXRlZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5LCByZWFzb24sIHN5bmNTb3VyY2UsIG5ldyBCdW5kbGUoKSwgZXhwZWRpdGVkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9wLmZsYXRFeHRyYXMgPSBudWxsOyAvLyBObyBsb25nZXIgdXNlZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVBlbmRpbmdPcGVyYXRpb25zLmFkZChwb3ApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHX0ZJTEUsIExvZy5WRVJCT1NFKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHX0ZJTEUsICJBZGRpbmcgcGVuZGluZyBvcDogIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHBvcC5hdXRob3JpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBwb3AudGFyZ2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBzcmM9IiArIHBvcC5zeW5jU291cmNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiByZWFzb249IiArIHBvcC5yZWFzb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVkaXRlZD0iICsgcG9wLmV4cGVkaXRlZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTa2lwIG5vbi1leGlzdGVudCBhdXRob3JpdHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcCA9IG51bGw7CkBAIC0yMzUxLDExICsyNTA5LDQwIEBACiAgICAgICAgIH0KICAgICB9CiAKKyAgICBzdGF0aWMgcHJpdmF0ZSBieXRlW10gZmxhdHRlbkJ1bmRsZShCdW5kbGUgYnVuZGxlKSB7CisgICAgICAgIGJ5dGVbXSBmbGF0RGF0YSA9IG51bGw7CisgICAgICAgIFBhcmNlbCBwYXJjZWwgPSBQYXJjZWwub2J0YWluKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBidW5kbGUud3JpdGVUb1BhcmNlbChwYXJjZWwsIDApOworICAgICAgICAgICAgZmxhdERhdGEgPSBwYXJjZWwubWFyc2hhbGwoKTsKKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIHBhcmNlbC5yZWN5Y2xlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZsYXREYXRhOworICAgIH0KKworICAgIHN0YXRpYyBwcml2YXRlIEJ1bmRsZSB1bmZsYXR0ZW5CdW5kbGUoYnl0ZVtdIGZsYXREYXRhKSB7CisgICAgICAgIEJ1bmRsZSBidW5kbGU7CisgICAgICAgIFBhcmNlbCBwYXJjZWwgPSBQYXJjZWwub2J0YWluKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBwYXJjZWwudW5tYXJzaGFsbChmbGF0RGF0YSwgMCwgZmxhdERhdGEubGVuZ3RoKTsKKyAgICAgICAgICAgIHBhcmNlbC5zZXREYXRhUG9zaXRpb24oMCk7CisgICAgICAgICAgICBidW5kbGUgPSBwYXJjZWwucmVhZEJ1bmRsZSgpOworICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIEEgUnVudGltZUV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgd2Ugd2VyZSB1bmFibGUgdG8gcGFyc2UgdGhlIHBhcmNlbC4KKyAgICAgICAgICAgIC8vIENyZWF0ZSBhbiBlbXB0eSBwYXJjZWwgaW4gdGhpcyBjYXNlLgorICAgICAgICAgICAgYnVuZGxlID0gbmV3IEJ1bmRsZSgpOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgcGFyY2VsLnJlY3ljbGUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVuZGxlOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBYTUxfQVRUUl9WRVJTSU9OID0gInZlcnNpb24iOwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBYTUxfQVRUUl9BVVRIT1JJVFlJRCA9ICJhdXRob3JpdHlfaWQiOwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBYTUxfQVRUUl9TT1VSQ0UgPSAic291cmNlIjsKICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgWE1MX0FUVFJfRVhQRURJVEVEID0gImV4cGVkaXRlZCI7CiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFhNTF9BVFRSX1JFQVNPTiA9ICJyZWFzb24iOwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBYTUxfQVRUUl9WRVJTSU9OID0gInZlcnNpb24iOwogCiAgICAgLyoqCiAgICAgICogV3JpdGUgYWxsIGN1cnJlbnRseSBwZW5kaW5nIG9wcyB0byB0aGUgcGVuZGluZyBvcHMgZmlsZS4KQEAgLTIzNjUsMTQgKzI1NTIsMTQgQEAKICAgICAgICAgRmlsZU91dHB1dFN0cmVhbSBmb3MgPSBudWxsOwogICAgICAgICB0cnkgewogICAgICAgICAgICAgaWYgKE4gPT0gMCkgewotICAgICAgICAgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUdfRklMRSwgTG9nLlZFUkJPU0UpKSB7Ci0gICAgICAgICAgICAgICAgICAgIExvZy52KFRBR19GSUxFLCAiVHJ1bmNhdGluZyAiICsgbVBlbmRpbmdGaWxlLmdldEJhc2VGaWxlKCkpOworICAgICAgICAgICAgICAgIGlmIChMb2cuaXNMb2dnYWJsZShUQUdfRklMRSwgTG9nLlZFUkJPU0UpKXsKKyAgICAgICAgICAgICAgICAgICAgTG9nLnYoVEFHLCAiVHJ1bmNhdGluZyAiICsgbVBlbmRpbmdGaWxlLmdldEJhc2VGaWxlKCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBtUGVuZGluZ0ZpbGUudHJ1bmNhdGUoKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoTG9nLmlzTG9nZ2FibGUoVEFHX0ZJTEUsIExvZy5WRVJCT1NFKSkgewotICAgICAgICAgICAgICAgIExvZy52KFRBR19GSUxFLCAiV3JpdGluZyBuZXcgIiArIG1QZW5kaW5nRmlsZS5nZXRCYXNlRmlsZSgpKTsKKyAgICAgICAgICAgICAgICBMb2cudihUQUcsICJXcml0aW5nIG5ldyAiICsgbVBlbmRpbmdGaWxlLmdldEJhc2VGaWxlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZm9zID0gbVBlbmRpbmdGaWxlLnN0YXJ0V3JpdGUoKTsKICAgICAgICAgICAgIFhtbFNlcmlhbGl6ZXIgb3V0ID0gbmV3IEZhc3RYbWxTZXJpYWxpemVyKCk7CkBAIC0yMzgxLDkgKzI1NjgsOSBAQAogICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICAgICAgICAgICBQZW5kaW5nT3BlcmF0aW9uIHBvcCA9IG1QZW5kaW5nT3BlcmF0aW9ucy5nZXQoaSk7CiAgICAgICAgICAgICAgICAgd3JpdGVQZW5kaW5nT3BlcmF0aW9uTG9ja2VkKHBvcCwgb3V0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG91dC5lbmREb2N1bWVudCgpOwotICAgICAgICAgICAgbVBlbmRpbmdGaWxlLmZpbmlzaFdyaXRlKGZvcyk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIG91dC5lbmREb2N1bWVudCgpOworICAgICAgICAgICAgIG1QZW5kaW5nRmlsZS5maW5pc2hXcml0ZShmb3MpOwogICAgICAgICB9IGNhdGNoIChqYXZhLmlvLklPRXhjZXB0aW9uIGUxKSB7CiAgICAgICAgICAgICBMb2cudyhUQUcsICJFcnJvciB3cml0aW5nIHBlbmRpbmcgb3BlcmF0aW9ucyIsIGUxKTsKICAgICAgICAgICAgIGlmIChmb3MgIT0gbnVsbCkgewpAQCAtMjQ0MywzNSArMjYzMCw2IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBzdGF0aWMgcHJpdmF0ZSBieXRlW10gZmxhdHRlbkJ1bmRsZShCdW5kbGUgYnVuZGxlKSB7Ci0gICAgICAgIGJ5dGVbXSBmbGF0RGF0YSA9IG51bGw7Ci0gICAgICAgIFBhcmNlbCBwYXJjZWwgPSBQYXJjZWwub2J0YWluKCk7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBidW5kbGUud3JpdGVUb1BhcmNlbChwYXJjZWwsIDApOwotICAgICAgICAgICAgZmxhdERhdGEgPSBwYXJjZWwubWFyc2hhbGwoKTsKLSAgICAgICAgfSBmaW5hbGx5IHsKLSAgICAgICAgICAgIHBhcmNlbC5yZWN5Y2xlKCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZsYXREYXRhOwotICAgIH0KLQotICAgIHN0YXRpYyBwcml2YXRlIEJ1bmRsZSB1bmZsYXR0ZW5CdW5kbGUoYnl0ZVtdIGZsYXREYXRhKSB7Ci0gICAgICAgIEJ1bmRsZSBidW5kbGU7Ci0gICAgICAgIFBhcmNlbCBwYXJjZWwgPSBQYXJjZWwub2J0YWluKCk7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBwYXJjZWwudW5tYXJzaGFsbChmbGF0RGF0YSwgMCwgZmxhdERhdGEubGVuZ3RoKTsKLSAgICAgICAgICAgIHBhcmNlbC5zZXREYXRhUG9zaXRpb24oMCk7Ci0gICAgICAgICAgICBidW5kbGUgPSBwYXJjZWwucmVhZEJ1bmRsZSgpOwotICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIC8vIEEgUnVudGltZUV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgd2Ugd2VyZSB1bmFibGUgdG8gcGFyc2UgdGhlIHBhcmNlbC4KLSAgICAgICAgICAgIC8vIENyZWF0ZSBhbiBlbXB0eSBwYXJjZWwgaW4gdGhpcyBjYXNlLgotICAgICAgICAgICAgYnVuZGxlID0gbmV3IEJ1bmRsZSgpOwotICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAgICAgcGFyY2VsLnJlY3ljbGUoKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gYnVuZGxlOwotICAgIH0KLQogICAgIHByaXZhdGUgdm9pZCBleHRyYXNUb1htbChYbWxTZXJpYWxpemVyIG91dCwgQnVuZGxlIGV4dHJhcykgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24gewogICAgICAgICBmb3IgKFN0cmluZyBrZXkgOiBleHRyYXMua2V5U2V0KCkpIHsKICAgICAgICAgICAgIG91dC5zdGFydFRhZyhudWxsLCAiZXh0cmEiKTsKQEAgLTI1MDQsNiArMjY2MiwyNCBAQAogICAgICAgICB9CiAgICAgfQogCisgICAgcHJpdmF0ZSB2b2lkIHJlcXVlc3RTeW5jKEF1dGhvcml0eUluZm8gYXV0aG9yaXR5SW5mbywgaW50IHJlYXNvbiwgQnVuZGxlIGV4dHJhcykgeworICAgICAgICBpZiAoYW5kcm9pZC5vcy5Qcm9jZXNzLm15VWlkKCkgPT0gYW5kcm9pZC5vcy5Qcm9jZXNzLlNZU1RFTV9VSUQKKyAgICAgICAgICAgICAgICAmJiBtU3luY1JlcXVlc3RMaXN0ZW5lciAhPSBudWxsKSB7CisgICAgICAgICAgICBtU3luY1JlcXVlc3RMaXN0ZW5lci5vblN5bmNSZXF1ZXN0KGF1dGhvcml0eUluZm8udGFyZ2V0LCByZWFzb24sIGV4dHJhcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTeW5jUmVxdWVzdC5CdWlsZGVyIHJlcSA9CisgICAgICAgICAgICAgICAgICAgIG5ldyBTeW5jUmVxdWVzdC5CdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3luY09uY2UoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRFeHRyYXMoZXh0cmFzKTsKKyAgICAgICAgICAgIGlmIChhdXRob3JpdHlJbmZvLnRhcmdldC50YXJnZXRfcHJvdmlkZXIpIHsKKyAgICAgICAgICAgICAgICByZXEuc2V0U3luY0FkYXB0ZXIoYXV0aG9yaXR5SW5mby50YXJnZXQuYWNjb3VudCwgYXV0aG9yaXR5SW5mby50YXJnZXQucHJvdmlkZXIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXEuc2V0U3luY0FkYXB0ZXIoYXV0aG9yaXR5SW5mby50YXJnZXQuc2VydmljZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDb250ZW50UmVzb2x2ZXIucmVxdWVzdFN5bmMocmVxLmJ1aWxkKCkpOworICAgICAgICB9CisgICAgfQorCiAgICAgcHJpdmF0ZSB2b2lkIHJlcXVlc3RTeW5jKEFjY291bnQgYWNjb3VudCwgaW50IHVzZXJJZCwgaW50IHJlYXNvbiwgU3RyaW5nIGF1dGhvcml0eSwKICAgICAgICAgICAgIEJ1bmRsZSBleHRyYXMpIHsKICAgICAgICAgLy8gSWYgdGhpcyBpcyBoYXBwZW5pbmcgaW4gdGhlIHN5c3RlbSBwcm9jZXNzLCB0aGVuIGNhbGwgdGhlIHN5bmNyZXF1ZXN0IGxpc3RlbmVyCkBAIC0yNTEyLDcgKzI2ODgsMTAgQEAKICAgICAgICAgLy8gd2hpY2ggd2lsbCBrbm93IHdoaWNoIHVzZXJJZCB0byBhcHBseSBiYXNlZCBvbiB0aGUgQmluZGVyIGlkLgogICAgICAgICBpZiAoYW5kcm9pZC5vcy5Qcm9jZXNzLm15VWlkKCkgPT0gYW5kcm9pZC5vcy5Qcm9jZXNzLlNZU1RFTV9VSUQKICAgICAgICAgICAgICAgICAmJiBtU3luY1JlcXVlc3RMaXN0ZW5lciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBtU3luY1JlcXVlc3RMaXN0ZW5lci5vblN5bmNSZXF1ZXN0KGFjY291bnQsIHVzZXJJZCwgcmVhc29uLCBhdXRob3JpdHksIGV4dHJhcyk7CisgICAgICAgICAgICBtU3luY1JlcXVlc3RMaXN0ZW5lci5vblN5bmNSZXF1ZXN0KAorICAgICAgICAgICAgICAgIG5ldyBFbmRQb2ludChhY2NvdW50LCBhdXRob3JpdHksIHVzZXJJZCksCisgICAgICAgICAgICAgICAgcmVhc29uLAorICAgICAgICAgICAgICAgIGV4dHJhcyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBDb250ZW50UmVzb2x2ZXIucmVxdWVzdFN5bmMoYWNjb3VudCwgYXV0aG9yaXR5LCBleHRyYXMpOwogICAgICAgICB9CkBAIC0yNjA4LDEwICsyNzg3LDggQEAKICAgICBwdWJsaWMgdm9pZCBkdW1wUGVuZGluZ09wZXJhdGlvbnMoU3RyaW5nQnVpbGRlciBzYikgewogICAgICAgICBzYi5hcHBlbmQoIlBlbmRpbmcgT3BzOiAiKS5hcHBlbmQobVBlbmRpbmdPcGVyYXRpb25zLnNpemUoKSkuYXBwZW5kKCIgb3BlcmF0aW9uKHMpXG4iKTsKICAgICAgICAgZm9yIChQZW5kaW5nT3BlcmF0aW9uIHBvcCA6IG1QZW5kaW5nT3BlcmF0aW9ucykgewotICAgICAgICAgICAgc2IuYXBwZW5kKCIoIiArIHBvcC5hY2NvdW50KQotICAgICAgICAgICAgICAgIC5hcHBlbmQoIiwgdSIgKyBwb3AudXNlcklkKQotICAgICAgICAgICAgICAgIC5hcHBlbmQoIiwgIiArIHBvcC5hdXRob3JpdHkpCi0gICAgICAgICAgICAgICAgLmFwcGVuZCgiLCAiICsgcG9wLmV4dHJhcykKKyAgICAgICAgICAgIHNiLmFwcGVuZCgiKGluZm86ICIgKyBwb3AudGFyZ2V0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgLmFwcGVuZCgiLCBleHRyYXM6ICIgKyBwb3AuZXh0cmFzKQogICAgICAgICAgICAgICAgIC5hcHBlbmQoIilcbiIpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvZGlzcGxheS9Mb2NhbERpc3BsYXlBZGFwdGVyLmphdmEgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9kaXNwbGF5L0xvY2FsRGlzcGxheUFkYXB0ZXIuamF2YQppbmRleCBjYjhmM2UyLi5kOTJjNWQ2IDEwMDY0NAotLS0gYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9kaXNwbGF5L0xvY2FsRGlzcGxheUFkYXB0ZXIuamF2YQorKysgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9kaXNwbGF5L0xvY2FsRGlzcGxheUFkYXB0ZXIuamF2YQpAQCAtMTY2LDYgKzE2NiwxMiBAQAogICAgICAgICAgICAgICAgICAgICBpZiAoInBvcnRyYWl0Ii5lcXVhbHMoU3lzdGVtUHJvcGVydGllcy5nZXQoInBlcnNpc3QuZGVtby5oZG1pcm90YXRpb24iKSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG1JbmZvLnJvdGF0aW9uID0gU3VyZmFjZS5ST1RBVElPTl8yNzA7CiAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBGb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlcywgYWxsb3cgcm90YXRpb24gb2YgdGhlIGV4dGVybmFsIGRpc3BsYXkKKyAgICAgICAgICAgICAgICAgICAgLy8gdG8gZm9sbG93IHRoZSBidWlsdC1pbiBkaXNwbGF5LgorICAgICAgICAgICAgICAgICAgICBpZiAoU3lzdGVtUHJvcGVydGllcy5nZXRCb29sZWFuKCJwZXJzaXN0LmRlbW8uaGRtaXJvdGF0ZXMiLCBmYWxzZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1JbmZvLmZsYWdzIHw9IERpc3BsYXlEZXZpY2VJbmZvLkZMQUdfUk9UQVRFU19XSVRIX0NPTlRFTlQ7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gbUluZm87CmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9kaXNwbGF5L0xvZ2ljYWxEaXNwbGF5LmphdmEgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9kaXNwbGF5L0xvZ2ljYWxEaXNwbGF5LmphdmEKaW5kZXggN2UzNTdjMC4uYzI2YzQzOCAxMDA2NDQKLS0tIGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvZGlzcGxheS9Mb2dpY2FsRGlzcGxheS5qYXZhCisrKyBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2Rpc3BsYXkvTG9naWNhbERpc3BsYXkuamF2YQpAQCAtMjU4LDggKzI1OCw3IEBACiAgICAgICAgIC8vIFRoZSBvcmllbnRhdGlvbiBzcGVjaWZpZXMgaG93IHRoZSBwaHlzaWNhbCBjb29yZGluYXRlIHN5c3RlbSBvZiB0aGUgZGlzcGxheQogICAgICAgICAvLyBpcyByb3RhdGVkIHdoZW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBsb2dpY2FsIGRpc3BsYXkgYXJlIHJlbmRlcmVkLgogICAgICAgICBpbnQgb3JpZW50YXRpb24gPSBTdXJmYWNlLlJPVEFUSU9OXzA7Ci0gICAgICAgIGlmIChkZXZpY2UgPT0gbVByaW1hcnlEaXNwbGF5RGV2aWNlCi0gICAgICAgICAgICAgICAgJiYgKGRpc3BsYXlEZXZpY2VJbmZvLmZsYWdzICYgRGlzcGxheURldmljZUluZm8uRkxBR19ST1RBVEVTX1dJVEhfQ09OVEVOVCkgIT0gMCkgeworICAgICAgICBpZiAoKGRpc3BsYXlEZXZpY2VJbmZvLmZsYWdzICYgRGlzcGxheURldmljZUluZm8uRkxBR19ST1RBVEVTX1dJVEhfQ09OVEVOVCkgIT0gMCkgewogICAgICAgICAgICAgb3JpZW50YXRpb24gPSBkaXNwbGF5SW5mby5yb3RhdGlvbjsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9maXJld2FsbC9JbnRlbnRGaXJld2FsbC5qYXZhIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvZmlyZXdhbGwvSW50ZW50RmlyZXdhbGwuamF2YQppbmRleCBhYWEwYjU4Li42ZGYxZGJkIDEwMDY0NAotLS0gYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9maXJld2FsbC9JbnRlbnRGaXJld2FsbC5qYXZhCisrKyBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL2ZpcmV3YWxsL0ludGVudEZpcmV3YWxsLmphdmEKQEAgLTI2OCwxMSArMjY4LDEzIEBACiAgICAgICAgIH0KIAogICAgICAgICBGaWxlW10gZmlsZXMgPSBydWxlc0Rpci5saXN0RmlsZXMoKTsKLSAgICAgICAgZm9yIChpbnQgaT0wOyBpPGZpbGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBGaWxlIGZpbGUgPSBmaWxlc1tpXTsKKyAgICAgICAgaWYgKGZpbGVzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxmaWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIEZpbGUgZmlsZSA9IGZpbGVzW2ldOwogCi0gICAgICAgICAgICBpZiAoZmlsZS5nZXROYW1lKCkuZW5kc1dpdGgoIi54bWwiKSkgewotICAgICAgICAgICAgICAgIHJlYWRSdWxlcyhmaWxlLCByZXNvbHZlcnMpOworICAgICAgICAgICAgICAgIGlmIChmaWxlLmdldE5hbWUoKS5lbmRzV2l0aCgiLnhtbCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlYWRSdWxlcyhmaWxlLCByZXNvbHZlcnMpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9uZXQvTmV0d29ya1N0YXRzU2VydmljZS5qYXZhIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvbmV0L05ldHdvcmtTdGF0c1NlcnZpY2UuamF2YQppbmRleCA1ZDZhZGMyLi4yNzFlOWU5IDEwMDY0NAotLS0gYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci9uZXQvTmV0d29ya1N0YXRzU2VydmljZS5qYXZhCisrKyBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL25ldC9OZXR3b3JrU3RhdHNTZXJ2aWNlLmphdmEKQEAgLTQ2NCwyMSArNDY0LDIxIEBACiAgICAgICAgICAgICBwcml2YXRlIE5ldHdvcmtTdGF0c0NvbGxlY3Rpb24gbVVpZFRhZ0NvbXBsZXRlOwogCiAgICAgICAgICAgICBwcml2YXRlIE5ldHdvcmtTdGF0c0NvbGxlY3Rpb24gZ2V0VWlkQ29tcGxldGUoKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1VaWRDb21wbGV0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAobVN0YXRzTG9jaykgeworICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAobVN0YXRzTG9jaykgeworICAgICAgICAgICAgICAgICAgICBpZiAobVVpZENvbXBsZXRlID09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG1VaWRDb21wbGV0ZSA9IG1VaWRSZWNvcmRlci5nZXRPckxvYWRDb21wbGV0ZUxvY2tlZCgpOwogICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtVWlkQ29tcGxldGU7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiBtVWlkQ29tcGxldGU7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHByaXZhdGUgTmV0d29ya1N0YXRzQ29sbGVjdGlvbiBnZXRVaWRUYWdDb21wbGV0ZSgpIHsKLSAgICAgICAgICAgICAgICBpZiAobVVpZFRhZ0NvbXBsZXRlID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemVkIChtU3RhdHNMb2NrKSB7CisgICAgICAgICAgICAgICAgc3luY2hyb25pemVkIChtU3RhdHNMb2NrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtVWlkVGFnQ29tcGxldGUgPT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgbVVpZFRhZ0NvbXBsZXRlID0gbVVpZFRhZ1JlY29yZGVyLmdldE9yTG9hZENvbXBsZXRlTG9ja2VkKCk7CiAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1VaWRUYWdDb21wbGV0ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1VaWRUYWdDb21wbGV0ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgQE92ZXJyaWRlCmRpZmYgLS1naXQgYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci93aWZpL1dpZmlTZXJ2aWNlLmphdmEgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci93aWZpL1dpZmlTZXJ2aWNlLmphdmEKaW5kZXggZjJlZmRlMS4uNzhlOTE1NyAxMDA2NDQKLS0tIGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvd2lmaS9XaWZpU2VydmljZS5qYXZhCisrKyBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL3dpZmkvV2lmaVNlcnZpY2UuamF2YQpAQCAtOTg0LDExICs5ODQsNiBAQAogICAgICAgICBtV2lmaVN0YXRlTWFjaGluZS5yZWNvbm5lY3RDb21tYW5kKCk7CiAgICAgfQogCi0gICAgcHVibGljIHZvaWQgY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGUoKSB7Ci0gICAgICAgIGVuZm9yY2VDb25uZWN0aXZpdHlJbnRlcm5hbFBlcm1pc3Npb24oKTsKLSAgICAgICAgbVdpZmlTdGF0ZU1hY2hpbmUuY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGUoKTsKLSAgICB9Ci0KICAgICAvKioKICAgICAgKiBzZWUge0BsaW5rIGFuZHJvaWQubmV0LndpZmkuV2lmaU1hbmFnZXIjc3RvcFdpZml9CiAgICAgICoKZGlmZiAtLWdpdCBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL3dtL0Rpc3BsYXlDb250ZW50LmphdmEgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci93bS9EaXNwbGF5Q29udGVudC5qYXZhCmluZGV4IDUyZjIzMjUuLjJmZTcwYTcgMTAwNjQ0Ci0tLSBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL3dtL0Rpc3BsYXlDb250ZW50LmphdmEKKysrIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvd20vRGlzcGxheUNvbnRlbnQuamF2YQpAQCAtMjgsNiArMjgsNyBAQAogaW1wb3J0IGFuZHJvaWQudXRpbC5TbG9nOwogaW1wb3J0IGFuZHJvaWQudmlldy5EaXNwbGF5OwogaW1wb3J0IGFuZHJvaWQudmlldy5EaXNwbGF5SW5mbzsKK2ltcG9ydCBjb20uYW5kcm9pZC5zZXJ2ZXIuQ2lyY3VsYXJMb2c7CiAKIGltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOwogaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CkBAIC0xMTQsNiArMTE1LDggQEAKIAogICAgIGZpbmFsIFdpbmRvd01hbmFnZXJTZXJ2aWNlIG1TZXJ2aWNlOwogCisgICAgQ2lyY3VsYXJMb2cgbVZpc2liaWxpdHlMb2cgPSBuZXcgQ2lyY3VsYXJMb2coMzApOworCiAgICAgLyoqCiAgICAgICogQHBhcmFtIGRpc3BsYXkgTWF5IG5vdCBiZSBudWxsLgogICAgICAqIEBwYXJhbSBzZXJ2aWNlIFRPRE8oY21hdXRuZXIpOgpAQCAtNDU2LDcgKzQ1OSw3IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBkdW1wKFN0cmluZyBwcmVmaXgsIFByaW50V3JpdGVyIHB3KSB7CisgICAgcHVibGljIHZvaWQgZHVtcChQcmludFdyaXRlciBwdywgU3RyaW5nIHByZWZpeCkgewogICAgICAgICBwdy5wcmludChwcmVmaXgpOyBwdy5wcmludCgiRGlzcGxheTogbURpc3BsYXlJZD0iKTsgcHcucHJpbnRsbihtRGlzcGxheUlkKTsKICAgICAgICAgZmluYWwgU3RyaW5nIHN1YlByZWZpeCA9ICIgICIgKyBwcmVmaXg7CiAgICAgICAgIHB3LnByaW50KHN1YlByZWZpeCk7IHB3LnByaW50KCJpbml0PSIpOyBwdy5wcmludChtSW5pdGlhbERpc3BsYXlXaWR0aCk7IHB3LnByaW50KCJ4Iik7CkBAIC01MjEsNiArNTI0LDcgQEAKICAgICAgICAgICAgICAgICAgIHRva2VuLmR1bXAocHcsICIgICAgIik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICAgICAgcHcucHJpbnQocHJlZml4KTsgcHcucHJpbnRsbigibVZpc2liaWxpdHlMb2c6Iik7IG1WaXNpYmlsaXR5TG9nLmR1bXAocHcsIHByZWZpeCArICIgICIpOwogICAgICAgICBwdy5wcmludGxuKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvd20vVGFza1N0YWNrLmphdmEgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci93bS9UYXNrU3RhY2suamF2YQppbmRleCAzNGJlZjY4Li4yODI3OTIxIDEwMDY0NAotLS0gYS9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci93bS9UYXNrU3RhY2suamF2YQorKysgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci93bS9UYXNrU3RhY2suamF2YQpAQCAtMTI3LDEyICsxMjcsMTQgQEAKICAgICBib29sZWFuIG1vdmVUYXNrVG9Ub3AoVGFzayB0YXNrKSB7CiAgICAgICAgIGlmIChERUJVR19UQVNLX01PVkVNRU5UKSBTbG9nLmQoVEFHLCAibW92ZVRhc2tUb1RvcDogdGFzaz0iICsgdGFzayArICIgQ2FsbGVycz0iCiAgICAgICAgICAgICAgICAgKyBEZWJ1Zy5nZXRDYWxsZXJzKDYpKTsKKyAgICAgICAgbURpc3BsYXlDb250ZW50Lm1WaXNpYmlsaXR5TG9nLmFkZCgibW92ZVRhc2tUb1RvcDogIiArIHRhc2spOwogICAgICAgICBtVGFza3MucmVtb3ZlKHRhc2spOwogICAgICAgICByZXR1cm4gYWRkVGFzayh0YXNrLCB0cnVlKTsKICAgICB9CiAKICAgICBib29sZWFuIG1vdmVUYXNrVG9Cb3R0b20oVGFzayB0YXNrKSB7CiAgICAgICAgIGlmIChERUJVR19UQVNLX01PVkVNRU5UKSBTbG9nLmQoVEFHLCAibW92ZVRhc2tUb0JvdHRvbTogdGFzaz0iICsgdGFzayk7CisgICAgICAgIG1EaXNwbGF5Q29udGVudC5tVmlzaWJpbGl0eUxvZy5hZGQoIm1vdmVUYXNrVG9Cb3R0b206ICIgKyB0YXNrKTsKICAgICAgICAgbVRhc2tzLnJlbW92ZSh0YXNrKTsKICAgICAgICAgcmV0dXJuIGFkZFRhc2sodGFzaywgZmFsc2UpOwogICAgIH0KZGlmZiAtLWdpdCBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL3dtL1dpbmRvd01hbmFnZXJTZXJ2aWNlLmphdmEgYi9zZXJ2aWNlcy9qYXZhL2NvbS9hbmRyb2lkL3NlcnZlci93bS9XaW5kb3dNYW5hZ2VyU2VydmljZS5qYXZhCmluZGV4IGUxZTlmNWMuLjdmMGQ1NWYgMTAwNjQ0Ci0tLSBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL3dtL1dpbmRvd01hbmFnZXJTZXJ2aWNlLmphdmEKKysrIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvd20vV2luZG93TWFuYWdlclNlcnZpY2UuamF2YQpAQCAtMjU2LDkgKzI1Niw2IEBACiAgICAgLyoqIEFtb3VudCBvZiB0aW1lIChpbiBtaWxsaXNlY29uZHMpIHRvIGRlbGF5IGJlZm9yZSBkZWNsYXJpbmcgYSB3aW5kb3cgZnJlZXplIHRpbWVvdXQuICovCiAgICAgc3RhdGljIGZpbmFsIGludCBXSU5ET1dfRlJFRVpFX1RJTUVPVVRfRFVSQVRJT04gPSAyMDAwOwogCi0gICAgLyoqIEFtb3VudCBvZiB0aW1lIChpbiBtaWxsaXNlY29uZHMpIHRvIGRlbGF5IGJlZm9yZSBkZWNsYXJpbmcgYSBzdGFydGluZyB3aW5kb3cgbGVha2VkLiAqLwotICAgIHN0YXRpYyBmaW5hbCBpbnQgU1RBUlRJTkdfV0lORE9XX1RJTUVPVVRfRFVSQVRJT04gPSAxMDAwMDsKLQogICAgIC8qKgogICAgICAqIElmIHRydWUsIHRoZSB3aW5kb3cgbWFuYWdlciB3aWxsIGRvIGl0cyBvd24gY3VzdG9tIGZyZWV6aW5nIGFuZCBnZW5lcmFsCiAgICAgICogbWFuYWdlbWVudCBvZiB0aGUgc2NyZWVuIGR1cmluZyByb3RhdGlvbi4KQEAgLTIyNjgsOCArMjI2NSw2IEBACiAgICAgICAgICAgICAgICAgdG9rZW4uYXBwV2luZG93VG9rZW4uc3RhcnRpbmdXaW5kb3cgPSB3aW47CiAgICAgICAgICAgICAgICAgaWYgKERFQlVHX1NUQVJUSU5HX1dJTkRPVykgU2xvZy52IChUQUcsICJhZGRXaW5kb3c6ICIgKyB0b2tlbi5hcHBXaW5kb3dUb2tlbgogICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHN0YXJ0aW5nV2luZG93PSIgKyB3aW4pOwotICAgICAgICAgICAgICAgIE1lc3NhZ2UgbSA9IG1ILm9idGFpbk1lc3NhZ2UoSC5SRU1PVkVfU1RBUlRJTkdfVElNRU9VVCwgdG9rZW4uYXBwV2luZG93VG9rZW4pOwotICAgICAgICAgICAgICAgIG1ILnNlbmRNZXNzYWdlRGVsYXllZChtLCBTVEFSVElOR19XSU5ET1dfVElNRU9VVF9EVVJBVElPTik7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGJvb2xlYW4gaW1NYXlNb3ZlID0gdHJ1ZTsKQEAgLTIzNzIsNyArMjM2Nyw2IEBACiAgICAgcHVibGljIHZvaWQgcmVtb3ZlV2luZG93TG9ja2VkKFNlc3Npb24gc2Vzc2lvbiwgV2luZG93U3RhdGUgd2luKSB7CiAgICAgICAgIGlmICh3aW4ubUF0dHJzLnR5cGUgPT0gVFlQRV9BUFBMSUNBVElPTl9TVEFSVElORykgewogICAgICAgICAgICAgaWYgKERFQlVHX1NUQVJUSU5HX1dJTkRPVykgU2xvZy5kKFRBRywgIlN0YXJ0aW5nIHdpbmRvdyByZW1vdmVkICIgKyB3aW4pOwotICAgICAgICAgICAgcmVtb3ZlU3RhcnRpbmdXaW5kb3dUaW1lb3V0KHdpbi5tQXBwVG9rZW4pOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGxvY2FsTE9HViB8fCBERUJVR19GT0NVUyB8fCBERUJVR19GT0NVU19MSUdIVCAmJiB3aW49PW1DdXJyZW50Rm9jdXMpIFNsb2cudigKQEAgLTI1MTYsNyArMjUxMCw2IEBACiAgICAgICAgIGlmIChhdG9rZW4gIT0gbnVsbCkgewogICAgICAgICAgICAgaWYgKGF0b2tlbi5zdGFydGluZ1dpbmRvdyA9PSB3aW4pIHsKICAgICAgICAgICAgICAgICBpZiAoREVCVUdfU1RBUlRJTkdfV0lORE9XKSBTbG9nLnYoVEFHLCAiTnVsbGluZyBzdGFydGluZ1dpbmRvdyAiICsgd2luKTsKLSAgICAgICAgICAgICAgICByZW1vdmVTdGFydGluZ1dpbmRvd1RpbWVvdXQoYXRva2VuKTsKICAgICAgICAgICAgICAgICBhdG9rZW4uc3RhcnRpbmdXaW5kb3cgPSBudWxsOwogICAgICAgICAgICAgfSBlbHNlIGlmIChhdG9rZW4uYWxsQXBwV2luZG93cy5zaXplKCkgPT0gMCAmJiBhdG9rZW4uc3RhcnRpbmdEYXRhICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBsYXN0IHdpbmRvdyBhbmQgd2UgaGFkIHJlcXVlc3RlZCBhIHN0YXJ0aW5nCkBAIC0zOTgzLDcgKzM5NzYsNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHX1dJTkRPV19NT1ZFTUVOVCB8fCBERUJVR19BRERfUkVNT1ZFIHx8IERFQlVHX1NUQVJUSU5HX1dJTkRPVykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsb2cudihUQUcsICJSZW1vdmluZyBzdGFydGluZyB3aW5kb3c6ICIgKyBzdGFydGluZ1dpbmRvdyk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVTdGFydGluZ1dpbmRvd1RpbWVvdXQodHRva2VuKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0aW5nV2luZG93LmdldFdpbmRvd0xpc3QoKS5yZW1vdmUoc3RhcnRpbmdXaW5kb3cpOwogICAgICAgICAgICAgICAgICAgICAgICAgbVdpbmRvd3NDaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVR19BRERfUkVNT1ZFKSBTbG9nLnYoVEFHLApAQCAtNDEzMCw2ICs0MTIyLDE1IEBACiAgICAgICAgIH0KICAgICB9CiAKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVBcHBTdGFydGluZ1dpbmRvdyhJQmluZGVyIHRva2VuKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAobVdpbmRvd01hcCkgeworICAgICAgICAgICAgQXBwV2luZG93VG9rZW4gd3Rva2VuID0gbVRva2VuTWFwLmdldCh0b2tlbikuYXBwV2luZG93VG9rZW47CisgICAgICAgICAgICBpZiAod3Rva2VuLnN0YXJ0aW5nV2luZG93ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzY2hlZHVsZVJlbW92ZVN0YXJ0aW5nV2luZG93KHd0b2tlbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCBzZXRBcHBXaWxsQmVIaWRkZW4oSUJpbmRlciB0b2tlbikgewogICAgICAgICBpZiAoIWNoZWNrQ2FsbGluZ1Blcm1pc3Npb24oYW5kcm9pZC5NYW5pZmVzdC5wZXJtaXNzaW9uLk1BTkFHRV9BUFBfVE9LRU5TLApAQCAtNDU1MSwyMSArNDU1MiwxMSBAQAogICAgICAgICBzY2hlZHVsZVJlbW92ZVN0YXJ0aW5nV2luZG93KHN0YXJ0aW5nVG9rZW4pOwogICAgIH0KIAotICAgIHZvaWQgcmVtb3ZlU3RhcnRpbmdXaW5kb3dUaW1lb3V0KEFwcFdpbmRvd1Rva2VuIHd0b2tlbikgewotICAgICAgICBpZiAod3Rva2VuICE9IG51bGwpIHsKLSAgICAgICAgICAgIGlmIChERUJVR19TVEFSVElOR19XSU5ET1cpIFNsb2cudihUQUcsIERlYnVnLmdldENhbGxlcnMoMSkgKwotICAgICAgICAgICAgICAgICAgICAiOiBSZW1vdmUgc3RhcnRpbmcgd2luZG93IHRpbWVvdXQgIiArIHd0b2tlbiArICh3dG9rZW4gIT0gbnVsbCA/Ci0gICAgICAgICAgICAgICAgICAgICIgc3RhcnRpbmdXaW5kb3c9IiArIHd0b2tlbi5zdGFydGluZ1dpbmRvdyA6ICIiKSk7Ci0gICAgICAgICAgICBtSC5yZW1vdmVNZXNzYWdlcyhILlJFTU9WRV9TVEFSVElOR19USU1FT1VULCB3dG9rZW4pOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgdm9pZCBzY2hlZHVsZVJlbW92ZVN0YXJ0aW5nV2luZG93KEFwcFdpbmRvd1Rva2VuIHd0b2tlbikgewogICAgICAgICBpZiAod3Rva2VuICE9IG51bGwgJiYgd3Rva2VuLnN0YXJ0aW5nV2luZG93ICE9IG51bGwpIHsKICAgICAgICAgICAgIGlmIChERUJVR19TVEFSVElOR19XSU5ET1cpIFNsb2cudihUQUcsIERlYnVnLmdldENhbGxlcnMoMSkgKwogICAgICAgICAgICAgICAgICAgICAiOiBTY2hlZHVsZSByZW1vdmUgc3RhcnRpbmcgIiArIHd0b2tlbiArICh3dG9rZW4gIT0gbnVsbCA/CiAgICAgICAgICAgICAgICAgICAgICIgc3RhcnRpbmdXaW5kb3c9IiArIHd0b2tlbi5zdGFydGluZ1dpbmRvdyA6ICIiKSk7Ci0gICAgICAgICAgICByZW1vdmVTdGFydGluZ1dpbmRvd1RpbWVvdXQod3Rva2VuKTsKICAgICAgICAgICAgIE1lc3NhZ2UgbSA9IG1ILm9idGFpbk1lc3NhZ2UoSC5SRU1PVkVfU1RBUlRJTkcsIHd0b2tlbik7CiAgICAgICAgICAgICBtSC5zZW5kTWVzc2FnZShtKTsKICAgICAgICAgfQpAQCAtNzA3Miw4ICs3MDYzLDYgQEAKICAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFQX09VVFNJREVfU1RBQ0sgPSAzMTsKICAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9USUZZX0FDVElWSVRZX0RSQVdOID0gMzI7CiAKLSAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkVNT1ZFX1NUQVJUSU5HX1RJTUVPVVQgPSAzMzsKLQogICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgcHVibGljIHZvaWQgaGFuZGxlTWVzc2FnZShNZXNzYWdlIG1zZykgewogICAgICAgICAgICAgaWYgKERFQlVHX1dJTkRPV19UUkFDRSkgewpAQCAtNzE3Miw3ICs3MTYxLDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFib3J0ZWQgc3RhcnRpbmcgIiArIHd0b2tlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICI6IHJlbW92ZWQ9IiArIHd0b2tlbi5yZW1vdmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBzdGFydGluZ0RhdGE9IiArIHd0b2tlbi5zdGFydGluZ0RhdGEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlU3RhcnRpbmdXaW5kb3dUaW1lb3V0KHd0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3dG9rZW4uc3RhcnRpbmdXaW5kb3cgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3Rva2VuLnN0YXJ0aW5nRGF0YSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYm9ydCA9IHRydWU7CkBAIC03MTk3LDExICs3MTg1LDYgQEAKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0gYnJlYWs7CiAKLSAgICAgICAgICAgICAgICBjYXNlIFJFTU9WRV9TVEFSVElOR19USU1FT1VUOiB7Ci0gICAgICAgICAgICAgICAgICAgIGZpbmFsIEFwcFdpbmRvd1Rva2VuIHd0b2tlbiA9IChBcHBXaW5kb3dUb2tlbiltc2cub2JqOwotICAgICAgICAgICAgICAgICAgICBTbG9nLmUoVEFHLCAiU3RhcnRpbmcgd2luZG93ICIgKyB3dG9rZW4gKyAiIHRpbWVkIG91dCIpOwotICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2guCi0gICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNhc2UgUkVNT1ZFX1NUQVJUSU5HOiB7CiAgICAgICAgICAgICAgICAgICAgIGZpbmFsIEFwcFdpbmRvd1Rva2VuIHd0b2tlbiA9IChBcHBXaW5kb3dUb2tlbiltc2cub2JqOwogICAgICAgICAgICAgICAgICAgICBJQmluZGVyIHRva2VuID0gbnVsbDsKQEAgLTEwMTgzLDYgKzEwMTY2LDEyIEBACiAgICAgICAgIH0KICAgICB9CiAKKyAgICBwdWJsaWMgaW50IGdldElucHV0TWV0aG9kV2luZG93VmlzaWJsZUhlaWdodCgpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChtV2luZG93TWFwKSB7CisgICAgICAgICAgICByZXR1cm4gbVBvbGljeS5nZXRJbnB1dE1ldGhvZFdpbmRvd1Zpc2libGVIZWlnaHRMdygpOworICAgICAgICB9CisgICAgfQorCiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIGJvb2xlYW4gaGFzTmF2aWdhdGlvbkJhcigpIHsKICAgICAgICAgcmV0dXJuIG1Qb2xpY3kuaGFzTmF2aWdhdGlvbkJhcigpOwpAQCAtMTAyODMsNyArMTAyNzIsNyBAQAogICAgICAgICAgICAgZmluYWwgaW50IG51bURpc3BsYXlzID0gbURpc3BsYXlDb250ZW50cy5zaXplKCk7CiAgICAgICAgICAgICBmb3IgKGludCBkaXNwbGF5TmR4ID0gMDsgZGlzcGxheU5keCA8IG51bURpc3BsYXlzOyArK2Rpc3BsYXlOZHgpIHsKICAgICAgICAgICAgICAgICBmaW5hbCBEaXNwbGF5Q29udGVudCBkaXNwbGF5Q29udGVudCA9IG1EaXNwbGF5Q29udGVudHMudmFsdWVBdChkaXNwbGF5TmR4KTsKLSAgICAgICAgICAgICAgICBkaXNwbGF5Q29udGVudC5kdW1wKCIgICIsIHB3KTsKKyAgICAgICAgICAgICAgICBkaXNwbGF5Q29udGVudC5kdW1wKHB3LCAiICAiKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHB3LnByaW50bG4oIiAgTk8gRElTUExBWSIpOwpkaWZmIC0tZ2l0IGEvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvd20vV2luZG93U3RhdGUuamF2YSBiL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL3dtL1dpbmRvd1N0YXRlLmphdmEKaW5kZXggMmQwODc5Mi4uMGJlMDc3MjkgMTAwNjQ0Ci0tLSBhL3NlcnZpY2VzL2phdmEvY29tL2FuZHJvaWQvc2VydmVyL3dtL1dpbmRvd1N0YXRlLmphdmEKKysrIGIvc2VydmljZXMvamF2YS9jb20vYW5kcm9pZC9zZXJ2ZXIvd20vV2luZG93U3RhdGUuamF2YQpAQCAtMTA4Nyw2ICsxMDg3LDcgQEAKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBpZiAoREVCVUdfVklTSUJJTElUWSkgU2xvZy52KFRBRywgIlBvbGljeSB2aXNpYmlsaXR5IHRydWU6ICIgKyB0aGlzKTsKKyAgICAgICAgbURpc3BsYXlDb250ZW50Lm1WaXNpYmlsaXR5TG9nLmFkZCgic2hvd0x3OiBQb2xpY3kgdmlzaWJpbGl0eSB0cnVlOiAiICsgdGhpcyk7CiAgICAgICAgIGlmIChkb0FuaW1hdGlvbikgewogICAgICAgICAgICAgaWYgKERFQlVHX1ZJU0lCSUxJVFkpIFNsb2cudihUQUcsICJkb0FuaW1hdGlvbjogbVBvbGljeVZpc2liaWxpdHk9IgogICAgICAgICAgICAgICAgICAgICArIG1Qb2xpY3lWaXNpYmlsaXR5ICsgIiBtQW5pbWF0aW9uPSIgKyBtV2luQW5pbWF0b3IubUFuaW1hdGlvbik7CkBAIC0xMTMzLDYgKzExMzQsNyBAQAogICAgICAgICAgICAgICAgIGRvQW5pbWF0aW9uID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICAgICAgbURpc3BsYXlDb250ZW50Lm1WaXNpYmlsaXR5TG9nLmFkZCgiaGlkZUx3OiBQb2xpY3kgdmlzaWJpbGl0eSBmYWxzZTogIiArIHRoaXMpOwogICAgICAgICBpZiAoZG9BbmltYXRpb24pIHsKICAgICAgICAgICAgIG1Qb2xpY3lWaXNpYmlsaXR5QWZ0ZXJBbmltID0gZmFsc2U7CiAgICAgICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9zZXJ2aWNlcy90ZXN0cy9zZXJ2aWNlc3Rlc3RzL3NyYy9jb20vYW5kcm9pZC9zZXJ2ZXIvTmV0d29ya01hbmFnZW1lbnRTZXJ2aWNlVGVzdC5qYXZhIGIvc2VydmljZXMvdGVzdHMvc2VydmljZXN0ZXN0cy9zcmMvY29tL2FuZHJvaWQvc2VydmVyL05ldHdvcmtNYW5hZ2VtZW50U2VydmljZVRlc3QuamF2YQppbmRleCA1NmRkN2M0Li4zMGQ0ZWZmIDEwMDY0NAotLS0gYS9zZXJ2aWNlcy90ZXN0cy9zZXJ2aWNlc3Rlc3RzL3NyYy9jb20vYW5kcm9pZC9zZXJ2ZXIvTmV0d29ya01hbmFnZW1lbnRTZXJ2aWNlVGVzdC5qYXZhCisrKyBiL3NlcnZpY2VzL3Rlc3RzL3NlcnZpY2VzdGVzdHMvc3JjL2NvbS9hbmRyb2lkL3NlcnZlci9OZXR3b3JrTWFuYWdlbWVudFNlcnZpY2VUZXN0LmphdmEKQEAgLTE2Niw2ICsxNjYsOSBAQAogICAgICAgICBzZW5kTWVzc2FnZSgiNjE0IEFkZHJlc3MgcmVtb3ZlZCAyMDAxOmRiODo6MS82NCB3bGFuMCAxIDAiKTsKICAgICAgICAgZXhwZWN0U29vbihvYnNlcnZlcikuYWRkcmVzc1JlbW92ZWQoIjIwMDE6ZGI4OjoxLzY0IiwgIndsYW4wIiwgMSwgMCk7CiAKKyAgICAgICAgc2VuZE1lc3NhZ2UoIjYxNCBBZGRyZXNzIHJlbW92ZWQgMjAwMTpkYjg6OjEvNjQgd2xhbjAgMSIpOworICAgICAgICAvLyBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KKwogICAgICAgICBzZW5kTWVzc2FnZSgiNjY2IEFkZHJlc3MgYWRkZWQgMjAwMTpkYjg6OjEvNjQgd2xhbjAgMSAwIik7CiAgICAgICAgIC8vIEludmFsaWQgY29kZS4KIApkaWZmIC0tZ2l0IGEvc2VydmljZXMvdGVzdHMvc2VydmljZXN0ZXN0cy9zcmMvY29tL2FuZHJvaWQvc2VydmVyL2NvbnRlbnQvU3luY1N0b3JhZ2VFbmdpbmVUZXN0LmphdmEgYi9zZXJ2aWNlcy90ZXN0cy9zZXJ2aWNlc3Rlc3RzL3NyYy9jb20vYW5kcm9pZC9zZXJ2ZXIvY29udGVudC9TeW5jU3RvcmFnZUVuZ2luZVRlc3QuamF2YQppbmRleCBmODcwZTRjLi43MGZkODEwIDEwMDY0NAotLS0gYS9zZXJ2aWNlcy90ZXN0cy9zZXJ2aWNlc3Rlc3RzL3NyYy9jb20vYW5kcm9pZC9zZXJ2ZXIvY29udGVudC9TeW5jU3RvcmFnZUVuZ2luZVRlc3QuamF2YQorKysgYi9zZXJ2aWNlcy90ZXN0cy9zZXJ2aWNlc3Rlc3RzL3NyYy9jb20vYW5kcm9pZC9zZXJ2ZXIvY29udGVudC9TeW5jU3RvcmFnZUVuZ2luZVRlc3QuamF2YQpAQCAtMTcsNiArMTcsNyBAQAogcGFja2FnZSBjb20uYW5kcm9pZC5zZXJ2ZXIuY29udGVudDsKIAogaW1wb3J0IGFuZHJvaWQuYWNjb3VudHMuQWNjb3VudDsKK2ltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29tcG9uZW50TmFtZTsKIGltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGVudFJlc29sdmVyOwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OwogaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0V3JhcHBlcjsKQEAgLTMyLDIyICszMywzNCBAQAogaW1wb3J0IGFuZHJvaWQudGVzdC5zdWl0ZWJ1aWxkZXIuYW5ub3RhdGlvbi5NZWRpdW1UZXN0OwogaW1wb3J0IGFuZHJvaWQudGVzdC5zdWl0ZWJ1aWxkZXIuYW5ub3RhdGlvbi5TbWFsbFRlc3Q7CiAKK2ltcG9ydCBjb20uYW5kcm9pZC5zZXJ2ZXIuY29udGVudC5TeW5jU3RvcmFnZUVuZ2luZS5FbmRQb2ludDsKKwogaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLm9zLkF0b21pY0ZpbGU7CiAKIGltcG9ydCBqYXZhLmlvLkZpbGU7CiBpbXBvcnQgamF2YS5pby5GaWxlT3V0cHV0U3RyZWFtOwogaW1wb3J0IGphdmEudXRpbC5MaXN0OwogCitpbXBvcnQgY29tLmFuZHJvaWQuc2VydmVyLmNvbnRlbnQuU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQ7CisKIHB1YmxpYyBjbGFzcyBTeW5jU3RvcmFnZUVuZ2luZVRlc3QgZXh0ZW5kcyBBbmRyb2lkVGVzdENhc2UgewogCiAgICAgcHJvdGVjdGVkIEFjY291bnQgYWNjb3VudDE7CisgICAgcHJvdGVjdGVkIEFjY291bnQgYWNjb3VudDI7CisgICAgcHJvdGVjdGVkIENvbXBvbmVudE5hbWUgc3luY1NlcnZpY2UxOwogICAgIHByb3RlY3RlZCBTdHJpbmcgYXV0aG9yaXR5MSA9ICJ0ZXN0cHJvdmlkZXIiOwogICAgIHByb3RlY3RlZCBCdW5kbGUgZGVmYXVsdEJ1bmRsZTsKICAgICBwcm90ZWN0ZWQgZmluYWwgaW50IERFRkFVTFRfVVNFUiA9IDA7Ci0gICAgCisKKyAgICAvKiBTb21lIGRlZmF1bHQgcG9sbCBmcmVxdWVuY2llcy4gKi8KKyAgICBmaW5hbCBsb25nIGRheVBvbGwgPSAoNjAgKiA2MCAqIDI0KTsKKyAgICBmaW5hbCBsb25nIGRheUZ1enogPSA2MDsKKyAgICBmaW5hbCBsb25nIHRob3VzYW5kU2VjcyA9IDEwMDA7CisgICAgZmluYWwgbG9uZyB0aG91c2FuZFNlY3NGdXp6ID0gMTAwOworCiAgICAgTW9ja0NvbnRlbnRSZXNvbHZlciBtb2NrUmVzb2x2ZXI7CiAgICAgU3luY1N0b3JhZ2VFbmdpbmUgZW5naW5lOwotICAgIAorCiAgICAgcHJpdmF0ZSBGaWxlIGdldFN5bmNEaXIoKSB7CiAgICAgICAgIHJldHVybiBuZXcgRmlsZShuZXcgRmlsZShnZXRDb250ZXh0KCkuZ2V0RmlsZXNEaXIoKSwgInN5c3RlbSIpLCAic3luYyIpOwogICAgIH0KQEAgLTU1LDYgKzY4LDggQEAKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCBzZXRVcCgpIHsKICAgICAgICAgYWNjb3VudDEgPSBuZXcgQWNjb3VudCgiYUBleGFtcGxlLmNvbSIsICJleGFtcGxlLnR5cGUiKTsKKyAgICAgICAgYWNjb3VudDIgPSBuZXcgQWNjb3VudCgiYkBleGFtcGxlLmNvbSIsICJleGFtcGxlLnR5cGUiKTsKKyAgICAgICAgc3luY1NlcnZpY2UxID0gbmV3IENvbXBvbmVudE5hbWUoImNvbS5leGFtcGxlIiwgIlN5bmNTZXJ2aWNlIik7CiAgICAgICAgIC8vIERlZmF1bHQgYnVuZGxlLgogICAgICAgICBkZWZhdWx0QnVuZGxlID0gbmV3IEJ1bmRsZSgpOwogICAgICAgICBkZWZhdWx0QnVuZGxlLnB1dEludCgiaW50X2tleSIsIDApOwpAQCAtODAsMTEgKzk1LDEzIEBACiAKICAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUgZW5naW5lID0gU3luY1N0b3JhZ2VFbmdpbmUubmV3VGVzdEluc3RhbmNlKAogICAgICAgICAgICAgICAgIG5ldyBUZXN0Q29udGV4dChtb2NrUmVzb2x2ZXIsIGdldENvbnRleHQoKSkpOwotCiAgICAgICAgIGxvbmcgdGltZTAgPSAxMDAwOwotICAgICAgICBsb25nIGhpc3RvcnlJZCA9IGVuZ2luZS5pbnNlcnRTdGFydFN5bmNFdmVudCgKLSAgICAgICAgICAgICAgICBhY2NvdW50LCAwLCBTeW5jT3BlcmF0aW9uLlJFQVNPTl9QRVJJT0RJQywgYXV0aG9yaXR5LCB0aW1lMCwKLSAgICAgICAgICAgICAgICBTeW5jU3RvcmFnZUVuZ2luZS5TT1VSQ0VfTE9DQUwsIGZhbHNlIC8qIGluaXRpYWxpemF0aW9uICovLCBudWxsIC8qIGV4dHJhcyAqLyk7CisgICAgICAgIFN5bmNPcGVyYXRpb24gb3AgPSBuZXcgU3luY09wZXJhdGlvbihhY2NvdW50LCAwLAorICAgICAgICAgICAgICAgIFN5bmNPcGVyYXRpb24uUkVBU09OX1BFUklPRElDLAorICAgICAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLlNPVVJDRV9MT0NBTCwKKyAgICAgICAgICAgICAgICBhdXRob3JpdHksCisgICAgICAgICAgICAgICAgQnVuZGxlLkVNUFRZLCB0aW1lMCwgMCAvKiBmbGV4Ki8sIDAsIDAsIHRydWUpOworICAgICAgICBsb25nIGhpc3RvcnlJZCA9IGVuZ2luZS5pbnNlcnRTdGFydFN5bmNFdmVudChvcCwgdGltZTApOwogICAgICAgICBsb25nIHRpbWUxID0gdGltZTAgKyBTeW5jU3RvcmFnZUVuZ2luZS5NSUxMSVNfSU5fNFdFRUtTICogMjsKICAgICAgICAgZW5naW5lLnN0b3BTeW5jRXZlbnQoaGlzdG9yeUlkLCB0aW1lMSAtIHRpbWUwLCAieWF5IiwgMCwgMCk7CiAgICAgfQpAQCAtOTMsMjggKzExMCwxMDAgQEAKICAgICAgKiBUZXN0IHBlcnNpc3RlbmNlIG9mIHBlbmRpbmcgb3BlcmF0aW9ucy4KICAgICAgKi8KICAgICBATWVkaXVtVGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RQZW5kaW5nKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLlBlbmRpbmdPcGVyYXRpb24gcG9wID0KLSAgICAgICAgICAgICAgICBuZXcgU3luY1N0b3JhZ2VFbmdpbmUuUGVuZGluZ09wZXJhdGlvbihhY2NvdW50MSwgREVGQVVMVF9VU0VSLAotICAgICAgICAgICAgICAgICAgICAgICAgU3luY09wZXJhdGlvbi5SRUFTT05fUEVSSU9ESUMsIFN5bmNTdG9yYWdlRW5naW5lLlNPVVJDRV9MT0NBTCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0eTEsIGRlZmF1bHRCdW5kbGUsIGZhbHNlKTsKLSAgICAgICAgCi0gICAgICAgIGVuZ2luZS5pbnNlcnRJbnRvUGVuZGluZyhwb3ApOworICAgIHB1YmxpYyB2b2lkIHRlc3RBcHBlbmRQZW5kaW5nKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN5bmNPcGVyYXRpb24gc29wID0gbmV3IFN5bmNPcGVyYXRpb24oYWNjb3VudDEsCisgICAgICAgICAgICAgICAgREVGQVVMVF9VU0VSLAorICAgICAgICAgICAgICAgIFN5bmNPcGVyYXRpb24uUkVBU09OX1BFUklPRElDLAorICAgICAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLlNPVVJDRV9MT0NBTCwgYXV0aG9yaXR5MSwgQnVuZGxlLkVNUFRZLAorICAgICAgICAgICAgICAgIDAgLyogcnVudGltZSAqLywgMCAvKiBmbGV4ICovLCAwIC8qIGJhY2tvZmYgKi8sIDAgLyogZGVsYXl1bnRpbCAqLywKKyAgICAgICAgICAgICAgICB0cnVlIC8qIGV4cGVkaXRlZCAqLyk7CisgICAgICAgIGVuZ2luZS5pbnNlcnRJbnRvUGVuZGluZyhzb3ApOworCiAgICAgICAgIC8vIEZvcmNlIGVuZ2luZSB0byByZWFkIGZyb20gZGlzay4KICAgICAgICAgZW5naW5lLmNsZWFyQW5kUmVhZFN0YXRlKCk7CiAKLSAgICAgICAgYXNzZXJ0KGVuZ2luZS5nZXRQZW5kaW5nT3BlcmF0aW9uQ291bnQoKSA9PSAxKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZShlbmdpbmUuZ2V0UGVuZGluZ09wZXJhdGlvbkNvdW50KCkgPT0gMSk7CiAgICAgICAgIExpc3Q8U3luY1N0b3JhZ2VFbmdpbmUuUGVuZGluZ09wZXJhdGlvbj4gcG9wcyA9IGVuZ2luZS5nZXRQZW5kaW5nT3BlcmF0aW9ucygpOwogICAgICAgICBTeW5jU3RvcmFnZUVuZ2luZS5QZW5kaW5nT3BlcmF0aW9uIHBvcFJldHJpZXZlZCA9IHBvcHMuZ2V0KDApOwotICAgICAgICBhc3NlcnRFcXVhbHMocG9wLmFjY291bnQsIHBvcFJldHJpZXZlZC5hY2NvdW50KTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKHBvcC5yZWFzb24sIHBvcFJldHJpZXZlZC5yZWFzb24pOwotICAgICAgICBhc3NlcnRFcXVhbHMocG9wLnVzZXJJZCwgcG9wUmV0cmlldmVkLnVzZXJJZCk7Ci0gICAgICAgIGFzc2VydEVxdWFscyhwb3Auc3luY1NvdXJjZSwgcG9wUmV0cmlldmVkLnN5bmNTb3VyY2UpOwotICAgICAgICBhc3NlcnRFcXVhbHMocG9wLmF1dGhvcml0eSwgcG9wUmV0cmlldmVkLmF1dGhvcml0eSk7Ci0gICAgICAgIGFzc2VydEVxdWFscyhwb3AuZXhwZWRpdGVkLCBwb3BSZXRyaWV2ZWQuZXhwZWRpdGVkKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKHBvcC5zZXJ2aWNlTmFtZSwgcG9wUmV0cmlldmVkLnNlcnZpY2VOYW1lKTsKLSAgICAgICAgYXNzZXJ0KGFuZHJvaWQuY29udGVudC5QZXJpb2RpY1N5bmMuc3luY0V4dHJhc0VxdWFscyhwb3AuZXh0cmFzLCBwb3BSZXRyaWV2ZWQuZXh0cmFzKSk7CisgICAgICAgIGFzc2VydEVxdWFscyhzb3AudGFyZ2V0LmFjY291bnQsIHBvcFJldHJpZXZlZC50YXJnZXQuYWNjb3VudCk7CisgICAgICAgIGFzc2VydEVxdWFscyhzb3AudGFyZ2V0LnByb3ZpZGVyLCBwb3BSZXRyaWV2ZWQudGFyZ2V0LnByb3ZpZGVyKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHNvcC50YXJnZXQuc2VydmljZSwgcG9wUmV0cmlldmVkLnRhcmdldC5zZXJ2aWNlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHNvcC50YXJnZXQudXNlcklkLCBwb3BSZXRyaWV2ZWQudGFyZ2V0LnVzZXJJZCk7CisgICAgICAgIGFzc2VydEVxdWFscyhzb3AucmVhc29uLCBwb3BSZXRyaWV2ZWQucmVhc29uKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHNvcC5zeW5jU291cmNlLCBwb3BSZXRyaWV2ZWQuc3luY1NvdXJjZSk7CisgICAgICAgIGFzc2VydEVxdWFscyhzb3AuZXhwZWRpdGVkLCBwb3BSZXRyaWV2ZWQuZXhwZWRpdGVkKTsKKyAgICAgICAgYXNzZXJ0KGFuZHJvaWQuY29udGVudC5QZXJpb2RpY1N5bmMuc3luY0V4dHJhc0VxdWFscyhzb3AuZXh0cmFzLCBwb3BSZXRyaWV2ZWQuZXh0cmFzKSk7CisgICAgfQogCisgICAgLyoqCisgICAgICogVmVyaWZ5IHtAbGluayBjb20uYW5kcm9pZC5zZXJ2ZXIuY29udGVudC5TeW5jU3RvcmFnZUVuZ2luZSN3cml0ZVBlbmRpbmdPcGVyYXRpb25zTG9ja2VkKCl9CisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFdyaXRlUGVuZGluZ09wZXJhdGlvbnNMb2NrZWQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgU3luY09wZXJhdGlvbiBzb3AgPSBuZXcgU3luY09wZXJhdGlvbihhY2NvdW50MSwKKyAgICAgICAgICAgICAgICBERUZBVUxUX1VTRVIsCisgICAgICAgICAgICAgICAgU3luY09wZXJhdGlvbi5SRUFTT05fSVNfU1lOQ0FCTEUsCisgICAgICAgICAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUuU09VUkNFX0xPQ0FMLCBhdXRob3JpdHkxLCBCdW5kbGUuRU1QVFksCisgICAgICAgICAgICAgICAgMTAwMEwgLyogcnVudGltZSAqLywgNTdMIC8qIGZsZXggKi8sIDAgLyogYmFja29mZiAqLywgMCAvKiBkZWxheXVudGlsICovLAorICAgICAgICAgICAgICAgIHRydWUgLyogZXhwZWRpdGVkICovKTsKKyAgICAgICAgU3luY09wZXJhdGlvbiBzb3AxID0gbmV3IFN5bmNPcGVyYXRpb24oYWNjb3VudDIsCisgICAgICAgICAgICAgICAgREVGQVVMVF9VU0VSLAorICAgICAgICAgICAgICAgIFN5bmNPcGVyYXRpb24uUkVBU09OX1BFUklPRElDLAorICAgICAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLlNPVVJDRV9MT0NBTCwgYXV0aG9yaXR5MSwgZGVmYXVsdEJ1bmRsZSwKKyAgICAgICAgICAgICAgICAwIC8qIHJ1bnRpbWUgKi8sIDAgLyogZmxleCAqLywgMjBMIC8qIGJhY2tvZmYgKi8sIDEwMEwgLyogZGVsYXl1bnRpbCAqLywKKyAgICAgICAgICAgICAgICBmYWxzZSAvKiBleHBlZGl0ZWQgKi8pOworICAgICAgICBTeW5jT3BlcmF0aW9uIGRlbGV0ZWQgPSBuZXcgU3luY09wZXJhdGlvbihhY2NvdW50MiwKKyAgICAgICAgICAgICAgICBERUZBVUxUX1VTRVIsCisgICAgICAgICAgICAgICAgU3luY09wZXJhdGlvbi5SRUFTT05fU1lOQ19BVVRPLAorICAgICAgICAgICAgICAgIFN5bmNTdG9yYWdlRW5naW5lLlNPVVJDRV9MT0NBTCwgYXV0aG9yaXR5MSwgQnVuZGxlLkVNUFRZLAorICAgICAgICAgICAgICAgIDAgLyogcnVudGltZSAqLywgMCAvKiBmbGV4ICovLCAyMEwgLyogYmFja29mZiAqLywgMTAwTCAvKiBkZWxheXVudGlsICovLAorICAgICAgICAgICAgICAgIGZhbHNlIC8qIGV4cGVkaXRlZCAqLyk7CisgICAgICAgIGVuZ2luZS5pbnNlcnRJbnRvUGVuZGluZyhzb3ApOworICAgICAgICBlbmdpbmUuaW5zZXJ0SW50b1BlbmRpbmcoc29wMSk7CisgICAgICAgIGVuZ2luZS5pbnNlcnRJbnRvUGVuZGluZyhkZWxldGVkKTsKKworICAgICAgICBTeW5jU3RvcmFnZUVuZ2luZS5QZW5kaW5nT3BlcmF0aW9uIHBvcERlbGV0ZWQgPSBlbmdpbmUuZ2V0UGVuZGluZ09wZXJhdGlvbnMoKS5nZXQoMik7CisgICAgICAgIC8vIEZyZWUgdmVyaWZ5aW5nLCBnb2luZyB0byBkZWxldGUgaXQgYW55d2F5LgorICAgICAgICBhc3NlcnRFcXVhbHMoZGVsZXRlZC50YXJnZXQuYWNjb3VudCwgcG9wRGVsZXRlZC50YXJnZXQuYWNjb3VudCk7CisgICAgICAgIGFzc2VydEVxdWFscyhkZWxldGVkLnRhcmdldC5wcm92aWRlciwgcG9wRGVsZXRlZC50YXJnZXQucHJvdmlkZXIpOworICAgICAgICBhc3NlcnRFcXVhbHMoZGVsZXRlZC50YXJnZXQuc2VydmljZSwgcG9wRGVsZXRlZC50YXJnZXQuc2VydmljZSk7CisgICAgICAgIGFzc2VydEVxdWFscyhkZWxldGVkLnRhcmdldC51c2VySWQsIHBvcERlbGV0ZWQudGFyZ2V0LnVzZXJJZCk7CisgICAgICAgIGFzc2VydEVxdWFscyhkZWxldGVkLnJlYXNvbiwgcG9wRGVsZXRlZC5yZWFzb24pOworICAgICAgICBhc3NlcnRFcXVhbHMoZGVsZXRlZC5zeW5jU291cmNlLCBwb3BEZWxldGVkLnN5bmNTb3VyY2UpOworICAgICAgICBhc3NlcnRFcXVhbHMoZGVsZXRlZC5leHBlZGl0ZWQsIHBvcERlbGV0ZWQuZXhwZWRpdGVkKTsKKyAgICAgICAgYXNzZXJ0KGFuZHJvaWQuY29udGVudC5QZXJpb2RpY1N5bmMuc3luY0V4dHJhc0VxdWFscyhkZWxldGVkLmV4dHJhcywgcG9wRGVsZXRlZC5leHRyYXMpKTsKKyAgICAgICAgLy8gRGVsZXRlIG9uZSB0byBmb3JjZSB3cml0ZS1hbGwKKyAgICAgICAgZW5naW5lLmRlbGV0ZUZyb21QZW5kaW5nKHBvcERlbGV0ZWQpOworICAgICAgICBhc3NlcnRFcXVhbHMoIkRlbGV0ZSBvZiBwZW5kaW5nIG9wIGZhaWxlZC4iLCAyLCBlbmdpbmUuZ2V0UGVuZGluZ09wZXJhdGlvbkNvdW50KCkpOworICAgICAgICAvLyBJZiB0aGVyZSdzIGRpcnR5IHBlbmRpbmcgZGF0YSAod2hpY2ggdGhlcmUgaXMgYmVjYXVzZSB3ZSBkZWxldGVkIGEgcGVuZGluZyBvcCkgdGhpcworICAgICAgICAvLyByZS13cml0ZXMgdGhlIGVudGlyZSBmaWxlLgorICAgICAgICBlbmdpbmUud3JpdGVBbGxTdGF0ZSgpOworCisgICAgICAgIGVuZ2luZS5jbGVhckFuZFJlYWRTdGF0ZSgpOworCisgICAgICAgIC8vIFZhbGlkYXRlIHN0YXRlIHJlYWQgYmFjayBvdXQuCisgICAgICAgIGFzc2VydEVxdWFscygiRGVsZXRlIG9mIHBlbmRpbmcgb3AgZmFpbGVkLiIsIDIsIGVuZ2luZS5nZXRQZW5kaW5nT3BlcmF0aW9uQ291bnQoKSk7CisKKyAgICAgICAgTGlzdDxTeW5jU3RvcmFnZUVuZ2luZS5QZW5kaW5nT3BlcmF0aW9uPiBwb3BzID0gZW5naW5lLmdldFBlbmRpbmdPcGVyYXRpb25zKCk7CisKKyAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUuUGVuZGluZ09wZXJhdGlvbiBwb3BSZXRyaWV2ZWQgPSBwb3BzLmdldCgwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHNvcC50YXJnZXQuYWNjb3VudCwgcG9wUmV0cmlldmVkLnRhcmdldC5hY2NvdW50KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHNvcC50YXJnZXQucHJvdmlkZXIsIHBvcFJldHJpZXZlZC50YXJnZXQucHJvdmlkZXIpOworICAgICAgICBhc3NlcnRFcXVhbHMoc29wLnRhcmdldC5zZXJ2aWNlLCBwb3BSZXRyaWV2ZWQudGFyZ2V0LnNlcnZpY2UpOworICAgICAgICBhc3NlcnRFcXVhbHMoc29wLnRhcmdldC51c2VySWQsIHBvcFJldHJpZXZlZC50YXJnZXQudXNlcklkKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHNvcC5yZWFzb24sIHBvcFJldHJpZXZlZC5yZWFzb24pOworICAgICAgICBhc3NlcnRFcXVhbHMoc29wLnN5bmNTb3VyY2UsIHBvcFJldHJpZXZlZC5zeW5jU291cmNlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHNvcC5leHBlZGl0ZWQsIHBvcFJldHJpZXZlZC5leHBlZGl0ZWQpOworICAgICAgICBhc3NlcnQoYW5kcm9pZC5jb250ZW50LlBlcmlvZGljU3luYy5zeW5jRXh0cmFzRXF1YWxzKHNvcC5leHRyYXMsIHBvcFJldHJpZXZlZC5leHRyYXMpKTsKKworICAgICAgICBwb3BSZXRyaWV2ZWQgPSBwb3BzLmdldCgxKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHNvcDEudGFyZ2V0LmFjY291bnQsIHBvcFJldHJpZXZlZC50YXJnZXQuYWNjb3VudCk7CisgICAgICAgIGFzc2VydEVxdWFscyhzb3AxLnRhcmdldC5wcm92aWRlciwgcG9wUmV0cmlldmVkLnRhcmdldC5wcm92aWRlcik7CisgICAgICAgIGFzc2VydEVxdWFscyhzb3AxLnRhcmdldC5zZXJ2aWNlLCBwb3BSZXRyaWV2ZWQudGFyZ2V0LnNlcnZpY2UpOworICAgICAgICBhc3NlcnRFcXVhbHMoc29wMS50YXJnZXQudXNlcklkLCBwb3BSZXRyaWV2ZWQudGFyZ2V0LnVzZXJJZCk7CisgICAgICAgIGFzc2VydEVxdWFscyhzb3AxLnJlYXNvbiwgcG9wUmV0cmlldmVkLnJlYXNvbik7CisgICAgICAgIGFzc2VydEVxdWFscyhzb3AxLnN5bmNTb3VyY2UsIHBvcFJldHJpZXZlZC5zeW5jU291cmNlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHNvcDEuZXhwZWRpdGVkLCBwb3BSZXRyaWV2ZWQuZXhwZWRpdGVkKTsKKyAgICAgICAgYXNzZXJ0KGFuZHJvaWQuY29udGVudC5QZXJpb2RpY1N5bmMuc3luY0V4dHJhc0VxdWFscyhzb3AxLmV4dHJhcywgcG9wUmV0cmlldmVkLmV4dHJhcykpOwogICAgIH0KIAogICAgIC8qKgpAQCAtMTM0LDQyICsyMjMsNDQgQEAKICAgICAgICAgZmluYWwgaW50IHBlcmlvZDIgPSAxMDAwOwogCiAgICAgICAgIFBlcmlvZGljU3luYyBzeW5jMSA9IG5ldyBQZXJpb2RpY1N5bmMoYWNjb3VudDEsIGF1dGhvcml0eSwgZXh0cmFzMSwgcGVyaW9kMSk7CisgICAgICAgIEVuZFBvaW50IGVuZDEgPSBuZXcgRW5kUG9pbnQoYWNjb3VudDEsIGF1dGhvcml0eSwgMCk7CisKICAgICAgICAgUGVyaW9kaWNTeW5jIHN5bmMyID0gbmV3IFBlcmlvZGljU3luYyhhY2NvdW50MSwgYXV0aG9yaXR5LCBleHRyYXMyLCBwZXJpb2QxKTsKICAgICAgICAgUGVyaW9kaWNTeW5jIHN5bmMzID0gbmV3IFBlcmlvZGljU3luYyhhY2NvdW50MSwgYXV0aG9yaXR5LCBleHRyYXMyLCBwZXJpb2QyKTsKICAgICAgICAgUGVyaW9kaWNTeW5jIHN5bmM0ID0gbmV3IFBlcmlvZGljU3luYyhhY2NvdW50MiwgYXV0aG9yaXR5LCBleHRyYXMyLCBwZXJpb2QyKTsKIAotICAgICAgICAKKwogCiAgICAgICAgIHJlbW92ZVBlcmlvZGljU3luY3MoZW5naW5lLCBhY2NvdW50MSwgMCwgYXV0aG9yaXR5KTsKICAgICAgICAgcmVtb3ZlUGVyaW9kaWNTeW5jcyhlbmdpbmUsIGFjY291bnQyLCAwLCBhdXRob3JpdHkpOwogICAgICAgICByZW1vdmVQZXJpb2RpY1N5bmNzKGVuZ2luZSwgYWNjb3VudDEsIDEsIGF1dGhvcml0eSk7CiAKICAgICAgICAgLy8gdGhpcyBzaG91bGQgYWRkIHR3byBkaXN0aW5jdCBwZXJpb2RpYyBzeW5jcyBmb3IgYWNjb3VudDEgYW5kIG9uZSBmb3IgYWNjb3VudDIKLSAgICAgICAgZW5naW5lLmFkZFBlcmlvZGljU3luYyhzeW5jMSwgMCk7Ci0gICAgICAgIGVuZ2luZS5hZGRQZXJpb2RpY1N5bmMoc3luYzIsIDApOwotICAgICAgICBlbmdpbmUuYWRkUGVyaW9kaWNTeW5jKHN5bmMzLCAwKTsKLSAgICAgICAgZW5naW5lLmFkZFBlcmlvZGljU3luYyhzeW5jNCwgMCk7CisgICAgICAgIGVuZ2luZS51cGRhdGVPckFkZFBlcmlvZGljU3luYyhuZXcgRW5kUG9pbnQoYWNjb3VudDEsIGF1dGhvcml0eSwgMCksIHBlcmlvZDEsIDAsIGV4dHJhczEpOworICAgICAgICBlbmdpbmUudXBkYXRlT3JBZGRQZXJpb2RpY1N5bmMobmV3IEVuZFBvaW50KGFjY291bnQxLCBhdXRob3JpdHksIDApLCBwZXJpb2QxLCAwLCBleHRyYXMyKTsKKyAgICAgICAgZW5naW5lLnVwZGF0ZU9yQWRkUGVyaW9kaWNTeW5jKG5ldyBFbmRQb2ludChhY2NvdW50MSwgYXV0aG9yaXR5LCAwKSwgcGVyaW9kMiwgMCwgZXh0cmFzMik7CisgICAgICAgIGVuZ2luZS51cGRhdGVPckFkZFBlcmlvZGljU3luYyhuZXcgRW5kUG9pbnQoYWNjb3VudDIsIGF1dGhvcml0eSwgMCksIHBlcmlvZDIsIDAsIGV4dHJhczIpOwogICAgICAgICAvLyBhZGQgYSBzZWNvbmQgdXNlcgotICAgICAgICBlbmdpbmUuYWRkUGVyaW9kaWNTeW5jKHN5bmMyLCAxKTsKKyAgICAgICAgZW5naW5lLnVwZGF0ZU9yQWRkUGVyaW9kaWNTeW5jKG5ldyBFbmRQb2ludChhY2NvdW50MSwgYXV0aG9yaXR5LCAxKSwgcGVyaW9kMSwgMCwgZXh0cmFzMik7CiAKLSAgICAgICAgTGlzdDxQZXJpb2RpY1N5bmM+IHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3MoYWNjb3VudDEsIDAsIGF1dGhvcml0eSk7CisgICAgICAgIExpc3Q8UGVyaW9kaWNTeW5jPiBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKG5ldyBFbmRQb2ludChhY2NvdW50MSwgYXV0aG9yaXR5LCAwKSk7CiAKICAgICAgICAgYXNzZXJ0RXF1YWxzKDIsIHN5bmNzLnNpemUoKSk7CiAKICAgICAgICAgYXNzZXJ0RXF1YWxzKHN5bmMxLCBzeW5jcy5nZXQoMCkpOwogICAgICAgICBhc3NlcnRFcXVhbHMoc3luYzMsIHN5bmNzLmdldCgxKSk7CiAKLSAgICAgICAgZW5naW5lLnJlbW92ZVBlcmlvZGljU3luYyhzeW5jMSwgMCk7CisgICAgICAgIGVuZ2luZS5yZW1vdmVQZXJpb2RpY1N5bmMobmV3IEVuZFBvaW50KGFjY291bnQxLCBhdXRob3JpdHksIDApLCBleHRyYXMxKTsKIAotICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQxLCAwLCBhdXRob3JpdHkpOworICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKG5ldyBFbmRQb2ludChhY2NvdW50MSwgYXV0aG9yaXR5LCAwKSk7CiAgICAgICAgIGFzc2VydEVxdWFscygxLCBzeW5jcy5zaXplKCkpOwogICAgICAgICBhc3NlcnRFcXVhbHMoc3luYzMsIHN5bmNzLmdldCgwKSk7CiAKLSAgICAgICAgc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcyhhY2NvdW50MiwgMCwgYXV0aG9yaXR5KTsKKyAgICAgICAgc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcyhuZXcgRW5kUG9pbnQoYWNjb3VudDIsIGF1dGhvcml0eSwgMCkpOwogICAgICAgICBhc3NlcnRFcXVhbHMoMSwgc3luY3Muc2l6ZSgpKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKHN5bmM0LCBzeW5jcy5nZXQoMCkpOwogCi0gICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3Moc3luYzIuYWNjb3VudCwgMSwgc3luYzIuYXV0aG9yaXR5KTsKKyAgICAgICAgc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcyhuZXcgRW5kUG9pbnQoc3luYzIuYWNjb3VudCwgc3luYzIuYXV0aG9yaXR5LCAxKSk7CiAgICAgICAgIGFzc2VydEVxdWFscygxLCBzeW5jcy5zaXplKCkpOwogICAgICAgICBhc3NlcnRFcXVhbHMoc3luYzIsIHN5bmNzLmdldCgwKSk7CiAgICAgfQpAQCAtMTkwLDEyICsyODEsMTkgQEAKICAgICAgICAgZmluYWwgaW50IHBlcmlvZDIgPSAxMDAwOwogICAgICAgICBmaW5hbCBpbnQgZmxleDEgPSAxMDsKICAgICAgICAgZmluYWwgaW50IGZsZXgyID0gMTAwOworICAgICAgICBFbmRQb2ludCBwb2ludDEgPSBuZXcgRW5kUG9pbnQoYWNjb3VudDEsIGF1dGhvcml0eSwgMCk7CisgICAgICAgIEVuZFBvaW50IHBvaW50MiA9IG5ldyBFbmRQb2ludChhY2NvdW50MiwgYXV0aG9yaXR5LCAwKTsKKyAgICAgICAgRW5kUG9pbnQgcG9pbnQxVXNlcjIgPSBuZXcgRW5kUG9pbnQoYWNjb3VudDEsIGF1dGhvcml0eSwgMSk7CiAKICAgICAgICAgUGVyaW9kaWNTeW5jIHN5bmMxID0gbmV3IFBlcmlvZGljU3luYyhhY2NvdW50MSwgYXV0aG9yaXR5LCBleHRyYXMxLCBwZXJpb2QxLCBmbGV4MSk7CiAgICAgICAgIFBlcmlvZGljU3luYyBzeW5jMiA9IG5ldyBQZXJpb2RpY1N5bmMoYWNjb3VudDEsIGF1dGhvcml0eSwgZXh0cmFzMiwgcGVyaW9kMSwgZmxleDEpOwogICAgICAgICBQZXJpb2RpY1N5bmMgc3luYzMgPSBuZXcgUGVyaW9kaWNTeW5jKGFjY291bnQxLCBhdXRob3JpdHksIGV4dHJhczIsIHBlcmlvZDIsIGZsZXgyKTsKICAgICAgICAgUGVyaW9kaWNTeW5jIHN5bmM0ID0gbmV3IFBlcmlvZGljU3luYyhhY2NvdW50MiwgYXV0aG9yaXR5LCBleHRyYXMyLCBwZXJpb2QyLCBmbGV4Mik7CiAKKyAgICAgICAgRW5kUG9pbnQgdGFyZ2V0MSA9IG5ldyBFbmRQb2ludChhY2NvdW50MSwgYXV0aG9yaXR5LCAwKTsKKyAgICAgICAgRW5kUG9pbnQgdGFyZ2V0MiA9IG5ldyBFbmRQb2ludChhY2NvdW50MiwgYXV0aG9yaXR5LCAwKTsKKyAgICAgICAgRW5kUG9pbnQgdGFyZ2V0MVVzZXJCID0gbmV3IEVuZFBvaW50KGFjY291bnQxLCBhdXRob3JpdHksIDEpOworCiAgICAgICAgIE1vY2tDb250ZW50UmVzb2x2ZXIgbW9ja1Jlc29sdmVyID0gbmV3IE1vY2tDb250ZW50UmVzb2x2ZXIoKTsKIAogICAgICAgICBTeW5jU3RvcmFnZUVuZ2luZSBlbmdpbmUgPSBTeW5jU3RvcmFnZUVuZ2luZS5uZXdUZXN0SW5zdGFuY2UoCkBAIC0yMDYsNDAgKzMwNCw0MiBAQAogICAgICAgICByZW1vdmVQZXJpb2RpY1N5bmNzKGVuZ2luZSwgYWNjb3VudDEsIDEsIGF1dGhvcml0eSk7CiAKICAgICAgICAgLy8gVGhpcyBzaG91bGQgYWRkIHR3byBkaXN0aW5jdCBwZXJpb2RpYyBzeW5jcyBmb3IgYWNjb3VudDEgYW5kIG9uZSBmb3IgYWNjb3VudDIKLSAgICAgICAgZW5naW5lLmFkZFBlcmlvZGljU3luYyhzeW5jMSwgMCk7Ci0gICAgICAgIGVuZ2luZS5hZGRQZXJpb2RpY1N5bmMoc3luYzIsIDApOwotICAgICAgICBlbmdpbmUuYWRkUGVyaW9kaWNTeW5jKHN5bmMzLCAwKTsgLy8gU2hvdWxkIGVkaXQgc3luYzIgYW5kIHVwZGF0ZSB0aGUgcGVyaW9kLgotICAgICAgICBlbmdpbmUuYWRkUGVyaW9kaWNTeW5jKHN5bmM0LCAwKTsKLSAgICAgICAgLy8gYWRkIGEgc2Vjb25kIHVzZXIKLSAgICAgICAgZW5naW5lLmFkZFBlcmlvZGljU3luYyhzeW5jMiwgMSk7CisgICAgICAgIGVuZ2luZS51cGRhdGVPckFkZFBlcmlvZGljU3luYyh0YXJnZXQxLCBwZXJpb2QxLCBmbGV4MSwgZXh0cmFzMSk7CisgICAgICAgIGVuZ2luZS51cGRhdGVPckFkZFBlcmlvZGljU3luYyh0YXJnZXQxLCBwZXJpb2QxLCBmbGV4MSwgZXh0cmFzMik7CisgICAgICAgIC8vIEVkaXQgZXhpc3Rpbmcgc3luYyBhbmQgdXBkYXRlIHRoZSBwZXJpb2QgYW5kIGZsZXguCisgICAgICAgIGVuZ2luZS51cGRhdGVPckFkZFBlcmlvZGljU3luYyh0YXJnZXQxLCBwZXJpb2QyLCBmbGV4MiwgZXh0cmFzMik7CisgICAgICAgIGVuZ2luZS51cGRhdGVPckFkZFBlcmlvZGljU3luYyh0YXJnZXQyLCBwZXJpb2QyLCBmbGV4MiwgZXh0cmFzMik7CisgICAgICAgIC8vIGFkZCBhIHRhcmdldCBmb3IgYSBzZWNvbmQgdXNlci4KKyAgICAgICAgZW5naW5lLnVwZGF0ZU9yQWRkUGVyaW9kaWNTeW5jKHRhcmdldDFVc2VyQiwgcGVyaW9kMSwgZmxleDEsIGV4dHJhczIpOwogCi0gICAgICAgIExpc3Q8UGVyaW9kaWNTeW5jPiBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQxLCAwLCBhdXRob3JpdHkpOworICAgICAgICBMaXN0PFBlcmlvZGljU3luYz4gc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcyh0YXJnZXQxKTsKIAogICAgICAgICBhc3NlcnRFcXVhbHMoMiwgc3luY3Muc2l6ZSgpKTsKIAogICAgICAgICBhc3NlcnRFcXVhbHMoc3luYzEsIHN5bmNzLmdldCgwKSk7CiAgICAgICAgIGFzc2VydEVxdWFscyhzeW5jMywgc3luY3MuZ2V0KDEpKTsKIAotICAgICAgICBlbmdpbmUucmVtb3ZlUGVyaW9kaWNTeW5jKHN5bmMxLCAwKTsKKyAgICAgICAgZW5naW5lLnJlbW92ZVBlcmlvZGljU3luYyh0YXJnZXQxLCBleHRyYXMxKTsKIAotICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQxLCAwLCBhdXRob3JpdHkpOworICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKHRhcmdldDEpOwogICAgICAgICBhc3NlcnRFcXVhbHMoMSwgc3luY3Muc2l6ZSgpKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKHN5bmMzLCBzeW5jcy5nZXQoMCkpOwogCi0gICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3MoYWNjb3VudDIsIDAsIGF1dGhvcml0eSk7CisgICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3ModGFyZ2V0Mik7CiAgICAgICAgIGFzc2VydEVxdWFscygxLCBzeW5jcy5zaXplKCkpOwogICAgICAgICBhc3NlcnRFcXVhbHMoc3luYzQsIHN5bmNzLmdldCgwKSk7CiAKLSAgICAgICAgc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcyhzeW5jMi5hY2NvdW50LCAxLCBzeW5jMi5hdXRob3JpdHkpOworICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKHRhcmdldDFVc2VyQik7CiAgICAgICAgIGFzc2VydEVxdWFscygxLCBzeW5jcy5zaXplKCkpOwogICAgICAgICBhc3NlcnRFcXVhbHMoc3luYzIsIHN5bmNzLmdldCgwKSk7CiAgICAgfQogCiAgICAgcHJpdmF0ZSB2b2lkIHJlbW92ZVBlcmlvZGljU3luY3MoU3luY1N0b3JhZ2VFbmdpbmUgZW5naW5lLCBBY2NvdW50IGFjY291bnQsIGludCB1c2VySWQsIFN0cmluZyBhdXRob3JpdHkpIHsKLSAgICAgICAgZW5naW5lLnNldElzU3luY2FibGUoYWNjb3VudCwgdXNlcklkLCBhdXRob3JpdHksIGVuZ2luZS5nZXRJc1N5bmNhYmxlKGFjY291bnQsIDAsIGF1dGhvcml0eSkpOwotICAgICAgICBMaXN0PFBlcmlvZGljU3luYz4gc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcyhhY2NvdW50LCB1c2VySWQsIGF1dGhvcml0eSk7CisgICAgICAgIEVuZFBvaW50IHRhcmdldCA9IG5ldyBFbmRQb2ludChhY2NvdW50LCBhdXRob3JpdHksIHVzZXJJZCk7CisgICAgICAgIGVuZ2luZS5zZXRJc1N5bmNhYmxlKGFjY291bnQsIHVzZXJJZCwgYXV0aG9yaXR5LCBlbmdpbmUuZ2V0SXNTeW5jYWJsZShhY2NvdW50LCB1c2VySWQsIGF1dGhvcml0eSkpOworICAgICAgICBMaXN0PFBlcmlvZGljU3luYz4gc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcyh0YXJnZXQpOwogICAgICAgICBmb3IgKFBlcmlvZGljU3luYyBzeW5jIDogc3luY3MpIHsKLSAgICAgICAgICAgIGVuZ2luZS5yZW1vdmVQZXJpb2RpY1N5bmMoc3luYywgdXNlcklkKTsKKyAgICAgICAgICAgIGVuZ2luZS5yZW1vdmVQZXJpb2RpY1N5bmModGFyZ2V0LCBzeW5jLmV4dHJhcyk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI2NCwxNiArMzY0LDE5IEBACiAgICAgICAgIGZpbmFsIGludCBmbGV4MSA9IDEwOwogICAgICAgICBmaW5hbCBpbnQgZmxleDIgPSAxMDA7CiAKKyAgICAgICAgRW5kUG9pbnQgcG9pbnQxID0gbmV3IEVuZFBvaW50KGFjY291bnQxLCBhdXRob3JpdHkxLCAwKTsKKyAgICAgICAgRW5kUG9pbnQgcG9pbnQyID0gbmV3IEVuZFBvaW50KGFjY291bnQxLCBhdXRob3JpdHkyLCAwKTsKKyAgICAgICAgRW5kUG9pbnQgcG9pbnQzID0gbmV3IEVuZFBvaW50KGFjY291bnQyLCBhdXRob3JpdHkxLCAwKTsKKwogICAgICAgICBQZXJpb2RpY1N5bmMgc3luYzEgPSBuZXcgUGVyaW9kaWNTeW5jKGFjY291bnQxLCBhdXRob3JpdHkxLCBleHRyYXMxLCBwZXJpb2QxLCBmbGV4MSk7CiAgICAgICAgIFBlcmlvZGljU3luYyBzeW5jMiA9IG5ldyBQZXJpb2RpY1N5bmMoYWNjb3VudDEsIGF1dGhvcml0eTEsIGV4dHJhczIsIHBlcmlvZDEsIGZsZXgxKTsKICAgICAgICAgUGVyaW9kaWNTeW5jIHN5bmMzID0gbmV3IFBlcmlvZGljU3luYyhhY2NvdW50MSwgYXV0aG9yaXR5MiwgZXh0cmFzMSwgcGVyaW9kMSwgZmxleDEpOwogICAgICAgICBQZXJpb2RpY1N5bmMgc3luYzQgPSBuZXcgUGVyaW9kaWNTeW5jKGFjY291bnQxLCBhdXRob3JpdHkyLCBleHRyYXMyLCBwZXJpb2QyLCBmbGV4Mik7CiAgICAgICAgIFBlcmlvZGljU3luYyBzeW5jNSA9IG5ldyBQZXJpb2RpY1N5bmMoYWNjb3VudDIsIGF1dGhvcml0eTEsIGV4dHJhczEsIHBlcmlvZDEsIGZsZXgxKTsKIAotICAgICAgICBNb2NrQ29udGVudFJlc29sdmVyIG1vY2tSZXNvbHZlciA9IG5ldyBNb2NrQ29udGVudFJlc29sdmVyKCk7Ci0KLSAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUgZW5naW5lID0gU3luY1N0b3JhZ2VFbmdpbmUubmV3VGVzdEluc3RhbmNlKAotICAgICAgICAgICAgICAgIG5ldyBUZXN0Q29udGV4dChtb2NrUmVzb2x2ZXIsIGdldENvbnRleHQoKSkpOworICAgICAgICBFbmRQb2ludCB0YXJnZXQxID0gbmV3IEVuZFBvaW50KGFjY291bnQxLCBhdXRob3JpdHkxLCAwKTsKKyAgICAgICAgRW5kUG9pbnQgdGFyZ2V0MiA9IG5ldyBFbmRQb2ludChhY2NvdW50MSwgYXV0aG9yaXR5MiwgMCk7CisgICAgICAgIEVuZFBvaW50IHRhcmdldDMgPSBuZXcgRW5kUG9pbnQoYWNjb3VudDIsIGF1dGhvcml0eTEsIDApOwogCiAgICAgICAgIHJlbW92ZVBlcmlvZGljU3luY3MoZW5naW5lLCBhY2NvdW50MSwgMCwgYXV0aG9yaXR5MSk7CiAgICAgICAgIHJlbW92ZVBlcmlvZGljU3luY3MoZW5naW5lLCBhY2NvdW50MiwgMCwgYXV0aG9yaXR5MSk7CkBAIC0yOTQsMjYgKzM5NywyNiBAQAogICAgICAgICBlbmdpbmUuc2V0SXNTeW5jYWJsZShhY2NvdW50MiwgMCwgYXV0aG9yaXR5MiwgMCk7CiAgICAgICAgIGVuZ2luZS5zZXRTeW5jQXV0b21hdGljYWxseShhY2NvdW50MiwgMCwgYXV0aG9yaXR5MiwgdHJ1ZSk7CiAKLSAgICAgICAgZW5naW5lLmFkZFBlcmlvZGljU3luYyhzeW5jMSwgMCk7Ci0gICAgICAgIGVuZ2luZS5hZGRQZXJpb2RpY1N5bmMoc3luYzIsIDApOwotICAgICAgICBlbmdpbmUuYWRkUGVyaW9kaWNTeW5jKHN5bmMzLCAwKTsKLSAgICAgICAgZW5naW5lLmFkZFBlcmlvZGljU3luYyhzeW5jNCwgMCk7Ci0gICAgICAgIGVuZ2luZS5hZGRQZXJpb2RpY1N5bmMoc3luYzUsIDApOworICAgICAgICBlbmdpbmUudXBkYXRlT3JBZGRQZXJpb2RpY1N5bmModGFyZ2V0MSwgcGVyaW9kMSwgZmxleDEsIGV4dHJhczEpOworICAgICAgICBlbmdpbmUudXBkYXRlT3JBZGRQZXJpb2RpY1N5bmModGFyZ2V0MSwgcGVyaW9kMSwgZmxleDEsIGV4dHJhczIpOworICAgICAgICBlbmdpbmUudXBkYXRlT3JBZGRQZXJpb2RpY1N5bmModGFyZ2V0MiwgcGVyaW9kMSwgZmxleDEsIGV4dHJhczEpOworICAgICAgICBlbmdpbmUudXBkYXRlT3JBZGRQZXJpb2RpY1N5bmModGFyZ2V0MiwgcGVyaW9kMiwgZmxleDIsIGV4dHJhczIpOworICAgICAgICBlbmdpbmUudXBkYXRlT3JBZGRQZXJpb2RpY1N5bmModGFyZ2V0MywgcGVyaW9kMSwgZmxleDEsIGV4dHJhczEpOwogCiAgICAgICAgIGVuZ2luZS53cml0ZUFsbFN0YXRlKCk7CiAgICAgICAgIGVuZ2luZS5jbGVhckFuZFJlYWRTdGF0ZSgpOwogCi0gICAgICAgIExpc3Q8UGVyaW9kaWNTeW5jPiBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQxLCAwLCBhdXRob3JpdHkxKTsKKyAgICAgICAgTGlzdDxQZXJpb2RpY1N5bmM+IHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3ModGFyZ2V0MSk7CiAgICAgICAgIGFzc2VydEVxdWFscygyLCBzeW5jcy5zaXplKCkpOwogICAgICAgICBhc3NlcnRFcXVhbHMoc3luYzEsIHN5bmNzLmdldCgwKSk7CiAgICAgICAgIGFzc2VydEVxdWFscyhzeW5jMiwgc3luY3MuZ2V0KDEpKTsKIAotICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQxLCAwLCBhdXRob3JpdHkyKTsKKyAgICAgICAgc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcyh0YXJnZXQyKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKDIsIHN5bmNzLnNpemUoKSk7CiAgICAgICAgIGFzc2VydEVxdWFscyhzeW5jMywgc3luY3MuZ2V0KDApKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKHN5bmM0LCBzeW5jcy5nZXQoMSkpOwogCi0gICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3MoYWNjb3VudDIsIDAsIGF1dGhvcml0eTEpOworICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKHRhcmdldDMpOwogICAgICAgICBhc3NlcnRFcXVhbHMoMSwgc3luY3Muc2l6ZSgpKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKHN5bmM1LCBzeW5jcy5nZXQoMCkpOwogCkBAIC0zMjgsNiArNDMxLDUwIEBACiAgICAgICAgIGFzc2VydEVxdWFscygwLCBlbmdpbmUuZ2V0SXNTeW5jYWJsZShhY2NvdW50MiwgMCwgYXV0aG9yaXR5MikpOwogICAgIH0KIAorICAgIEBTbWFsbFRlc3QKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q29tcG9uZW50UGFyc2luZygpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIGJ5dGVbXSBhY2NvdW50c0ZpbGVEYXRhID0gKCI8P3htbCB2ZXJzaW9uPScxLjAnIGVuY29kaW5nPSd1dGYtOCcgc3RhbmRhbG9uZT0neWVzJyA/PlxuIgorICAgICAgICAgICAgICAgICsgIjxhY2NvdW50cyB2ZXJzaW9uPVwiMlwiID5cbiIKKyAgICAgICAgICAgICAgICArICI8YXV0aG9yaXR5IGlkPVwiMFwiIHVzZXI9XCIwXCIgcGFja2FnZT1cIiIgKyBzeW5jU2VydmljZTEuZ2V0UGFja2FnZU5hbWUoKSArICJcIiIKKyAgICAgICAgICAgICAgICArICIgY2xhc3M9XCIiICsgc3luY1NlcnZpY2UxLmdldENsYXNzTmFtZSgpICsgIlwiIHN5bmNhYmxlPVwidHJ1ZVwiPiIKKyAgICAgICAgICAgICAgICArICJcbjxwZXJpb2RpY1N5bmMgcGVyaW9kPVwiIiArIGRheVBvbGwgKyAiXCIgZmxleD1cIiIgKyBkYXlGdXp6ICsgIlwiLz4iCisgICAgICAgICAgICAgICAgKyAiXG48L2F1dGhvcml0eT4iCisgICAgICAgICAgICAgICAgKyAiPC9hY2NvdW50cz4iKS5nZXRCeXRlcygpOworCisgICAgICAgIEZpbGUgc3luY0RpciA9IGdldFN5bmNEaXIoKTsKKyAgICAgICAgc3luY0Rpci5ta2RpcnMoKTsKKyAgICAgICAgQXRvbWljRmlsZSBhY2NvdW50SW5mb0ZpbGUgPSBuZXcgQXRvbWljRmlsZShuZXcgRmlsZShzeW5jRGlyLCAiYWNjb3VudHMueG1sIikpOworICAgICAgICBGaWxlT3V0cHV0U3RyZWFtIGZvcyA9IGFjY291bnRJbmZvRmlsZS5zdGFydFdyaXRlKCk7CisgICAgICAgIGZvcy53cml0ZShhY2NvdW50c0ZpbGVEYXRhKTsKKyAgICAgICAgYWNjb3VudEluZm9GaWxlLmZpbmlzaFdyaXRlKGZvcyk7CisKKyAgICAgICAgZW5naW5lLmNsZWFyQW5kUmVhZFN0YXRlKCk7CisKKyAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUuQXV0aG9yaXR5SW5mbyBhSW5mbyA9IGVuZ2luZS5nZXRBdXRob3JpdHkoMCk7CisgICAgICAgIGFzc2VydE5vdE51bGwoYUluZm8pOworCisgICAgICAgIC8vIFRlc3Qgc2VydmljZSBjb21wb25lbnQgcmVhZAorICAgICAgICBMaXN0PFBlcmlvZGljU3luYz4gc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcygKKyAgICAgICAgICAgICAgICBuZXcgU3luY1N0b3JhZ2VFbmdpbmUuRW5kUG9pbnQoc3luY1NlcnZpY2UxLCAwKSk7CisgICAgICAgIGFzc2VydEVxdWFscygxLCBzeW5jcy5zaXplKCkpOworICAgICAgICBhc3NlcnRFcXVhbHModHJ1ZSwgZW5naW5lLmdldElzVGFyZ2V0U2VydmljZUFjdGl2ZShzeW5jU2VydmljZTEsIDApKTsKKyAgICB9CisKKyAgICBAU21hbGxUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdENvbXBvbmVudFNldHRpbmdzKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIEVuZFBvaW50IHRhcmdldDEgPSBuZXcgRW5kUG9pbnQoc3luY1NlcnZpY2UxLCAwKTsKKyAgICAgICAgZW5naW5lLnVwZGF0ZU9yQWRkUGVyaW9kaWNTeW5jKHRhcmdldDEsIGRheVBvbGwsIGRheUZ1enosIEJ1bmRsZS5FTVBUWSk7CisgICAgICAgIAorICAgICAgICBlbmdpbmUuc2V0SXNUYXJnZXRTZXJ2aWNlQWN0aXZlKHRhcmdldDEuc2VydmljZSwgMCwgdHJ1ZSk7CisgICAgICAgIGJvb2xlYW4gYWN0aXZlID0gZW5naW5lLmdldElzVGFyZ2V0U2VydmljZUFjdGl2ZSh0YXJnZXQxLnNlcnZpY2UsIDApOworICAgICAgICBhc3NlcnQoYWN0aXZlKTsKKworICAgICAgICBlbmdpbmUuc2V0SXNUYXJnZXRTZXJ2aWNlQWN0aXZlKHRhcmdldDEuc2VydmljZSwgMSwgZmFsc2UpOworICAgICAgICBhY3RpdmUgPSBlbmdpbmUuZ2V0SXNUYXJnZXRTZXJ2aWNlQWN0aXZlKHRhcmdldDEuc2VydmljZSwgMSk7CisgICAgICAgIGFzc2VydCghYWN0aXZlKTsKKyAgICB9CisKICAgICBATWVkaXVtVGVzdAogICAgIC8qKgogICAgICAqIFYyIGludHJvZHVjZXMgZmxleCB0aW1lIGFzIHdlbGwgYXMgc2VydmljZSBjb21wb25lbnRzLgpAQCAtMzM5LDIwICs0ODYsMjAgQEAKICAgICAgICAgZmluYWwgU3RyaW5nIGF1dGhvcml0eTIgPSAiYXV0aDIiOwogICAgICAgICBmaW5hbCBTdHJpbmcgYXV0aG9yaXR5MyA9ICJhdXRoMyI7CiAKLSAgICAgICAgZmluYWwgbG9uZyBkYXlQb2xsID0gKDYwICogNjAgKiAyNCk7Ci0gICAgICAgIGZpbmFsIGxvbmcgZGF5RnV6eiA9IDYwOwotICAgICAgICBmaW5hbCBsb25nIHRob3VzYW5kU2VjcyA9IDEwMDA7Ci0gICAgICAgIGZpbmFsIGxvbmcgdGhvdXNhbmRTZWNzRnV6eiA9IDEwMDsKLSAgICAgICAgZmluYWwgQnVuZGxlIGV4dHJhcyA9IG5ldyBCdW5kbGUoKTsKLSAgICAgICAgUGVyaW9kaWNTeW5jIHN5bmMxID0gbmV3IFBlcmlvZGljU3luYyhhY2NvdW50LCBhdXRob3JpdHkxLCBleHRyYXMsIGRheVBvbGwsIGRheUZ1enopOwotICAgICAgICBQZXJpb2RpY1N5bmMgc3luYzIgPSBuZXcgUGVyaW9kaWNTeW5jKGFjY291bnQsIGF1dGhvcml0eTIsIGV4dHJhcywgZGF5UG9sbCwgZGF5RnV6eik7Ci0gICAgICAgIFBlcmlvZGljU3luYyBzeW5jMyA9IG5ldyBQZXJpb2RpY1N5bmMoYWNjb3VudCwgYXV0aG9yaXR5MywgZXh0cmFzLCBkYXlQb2xsLCBkYXlGdXp6KTsKLSAgICAgICAgUGVyaW9kaWNTeW5jIHN5bmMxcyA9IG5ldyBQZXJpb2RpY1N5bmMoYWNjb3VudCwgYXV0aG9yaXR5MSwgZXh0cmFzLCB0aG91c2FuZFNlY3MsIHRob3VzYW5kU2Vjc0Z1enopOwotICAgICAgICBQZXJpb2RpY1N5bmMgc3luYzJzID0gbmV3IFBlcmlvZGljU3luYyhhY2NvdW50LCBhdXRob3JpdHkyLCBleHRyYXMsIHRob3VzYW5kU2VjcywgdGhvdXNhbmRTZWNzRnV6eik7Ci0gICAgICAgIFBlcmlvZGljU3luYyBzeW5jM3MgPSBuZXcgUGVyaW9kaWNTeW5jKGFjY291bnQsIGF1dGhvcml0eTMsIGV4dHJhcywgdGhvdXNhbmRTZWNzLCB0aG91c2FuZFNlY3NGdXp6KTsKLSAgICAgICAgTW9ja0NvbnRlbnRSZXNvbHZlciBtb2NrUmVzb2x2ZXIgPSBuZXcgTW9ja0NvbnRlbnRSZXNvbHZlcigpOworICAgICAgICBFbmRQb2ludCB0YXJnZXQxID0gbmV3IEVuZFBvaW50KGFjY291bnQsIGF1dGhvcml0eTEsIDApOworICAgICAgICBFbmRQb2ludCB0YXJnZXQyID0gbmV3IEVuZFBvaW50KGFjY291bnQsIGF1dGhvcml0eTIsIDApOworICAgICAgICBFbmRQb2ludCB0YXJnZXQzID0gbmV3IEVuZFBvaW50KGFjY291bnQsIGF1dGhvcml0eTMsIDApOworICAgICAgICBFbmRQb2ludCB0YXJnZXQ0ID0gbmV3IEVuZFBvaW50KGFjY291bnQsIGF1dGhvcml0eTMsIDEpOwogCi0gICAgICAgIGZpbmFsIFRlc3RDb250ZXh0IHRlc3RDb250ZXh0ID0gbmV3IFRlc3RDb250ZXh0KG1vY2tSZXNvbHZlciwgZ2V0Q29udGV4dCgpKTsKKyAgICAgICAgUGVyaW9kaWNTeW5jIHN5bmMxID0gbmV3IFBlcmlvZGljU3luYyhhY2NvdW50LCBhdXRob3JpdHkxLCBCdW5kbGUuRU1QVFksIGRheVBvbGwsIGRheUZ1enopOworICAgICAgICBQZXJpb2RpY1N5bmMgc3luYzIgPSBuZXcgUGVyaW9kaWNTeW5jKGFjY291bnQsIGF1dGhvcml0eTIsIEJ1bmRsZS5FTVBUWSwgZGF5UG9sbCwgZGF5RnV6eik7CisgICAgICAgIFBlcmlvZGljU3luYyBzeW5jMyA9IG5ldyBQZXJpb2RpY1N5bmMoYWNjb3VudCwgYXV0aG9yaXR5MywgQnVuZGxlLkVNUFRZLCBkYXlQb2xsLCBkYXlGdXp6KTsKKyAgICAgICAgUGVyaW9kaWNTeW5jIHN5bmMxcyA9IG5ldyBQZXJpb2RpY1N5bmMoYWNjb3VudCwgYXV0aG9yaXR5MSwgQnVuZGxlLkVNUFRZLCB0aG91c2FuZFNlY3MsCisgICAgICAgICAgICAgICAgdGhvdXNhbmRTZWNzRnV6eik7CisgICAgICAgIFBlcmlvZGljU3luYyBzeW5jMnMgPSBuZXcgUGVyaW9kaWNTeW5jKGFjY291bnQsIGF1dGhvcml0eTIsIEJ1bmRsZS5FTVBUWSwgdGhvdXNhbmRTZWNzLAorICAgICAgICAgICAgICAgIHRob3VzYW5kU2Vjc0Z1enopOworICAgICAgICBQZXJpb2RpY1N5bmMgc3luYzNzID0gbmV3IFBlcmlvZGljU3luYyhhY2NvdW50LCBhdXRob3JpdHkzLCBCdW5kbGUuRU1QVFksIHRob3VzYW5kU2VjcywKKyAgICAgICAgICAgICAgICB0aG91c2FuZFNlY3NGdXp6KTsKIAogICAgICAgICBieXRlW10gYWNjb3VudHNGaWxlRGF0YSA9ICgiPD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnIHN0YW5kYWxvbmU9J3llcycgPz5cbiIKICAgICAgICAgICAgICAgICArICI8YWNjb3VudHMgdmVyc2lvbj1cIjJcIiA+XG4iCkBAIC0zNzgsMjEgKzUyNSwyMiBAQAogICAgICAgICBmb3Mud3JpdGUoYWNjb3VudHNGaWxlRGF0YSk7CiAgICAgICAgIGFjY291bnRJbmZvRmlsZS5maW5pc2hXcml0ZShmb3MpOwogCi0gICAgICAgIFN5bmNTdG9yYWdlRW5naW5lIGVuZ2luZSA9IFN5bmNTdG9yYWdlRW5naW5lLm5ld1Rlc3RJbnN0YW5jZSh0ZXN0Q29udGV4dCk7CisgICAgICAgIGVuZ2luZS5jbGVhckFuZFJlYWRTdGF0ZSgpOwogCi0gICAgICAgIExpc3Q8UGVyaW9kaWNTeW5jPiBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQsIDAsIGF1dGhvcml0eTEpOworICAgICAgICBMaXN0PFBlcmlvZGljU3luYz4gc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcyh0YXJnZXQxKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKCJHb3QgaW5jb3JyZWN0ICMgb2Ygc3luY3MiLCAxLCBzeW5jcy5zaXplKCkpOwogICAgICAgICBhc3NlcnRFcXVhbHMoc3luYzEsIHN5bmNzLmdldCgwKSk7CiAKLSAgICAgICAgc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcyhhY2NvdW50LCAwLCBhdXRob3JpdHkyKTsKKyAgICAgICAgc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcyh0YXJnZXQyKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKDEsIHN5bmNzLnNpemUoKSk7CiAgICAgICAgIGFzc2VydEVxdWFscyhzeW5jMiwgc3luY3MuZ2V0KDApKTsKIAotICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQsIDAsIGF1dGhvcml0eTMpOworICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKHRhcmdldDMpOwogICAgICAgICBhc3NlcnRFcXVhbHMoMSwgc3luY3Muc2l6ZSgpKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKHN5bmMzLCBzeW5jcy5nZXQoMCkpOwogCi0gICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3MoYWNjb3VudCwgMSwgYXV0aG9yaXR5Myk7CisgICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3ModGFyZ2V0NCk7CisKICAgICAgICAgYXNzZXJ0RXF1YWxzKDEsIHN5bmNzLnNpemUoKSk7CiAgICAgICAgIGFzc2VydEVxdWFscyhzeW5jMywgc3luY3MuZ2V0KDApKTsKIApAQCAtNDExLDEzICs1NTksMTMgQEAKIAogICAgICAgICBlbmdpbmUuY2xlYXJBbmRSZWFkU3RhdGUoKTsKIAotICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQsIDAsIGF1dGhvcml0eTEpOworICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKHRhcmdldDEpOwogICAgICAgICBhc3NlcnRFcXVhbHMoMCwgc3luY3Muc2l6ZSgpKTsKIAotICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQsIDAsIGF1dGhvcml0eTIpOworICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKHRhcmdldDIpOwogICAgICAgICBhc3NlcnRFcXVhbHMoMCwgc3luY3Muc2l6ZSgpKTsKIAotICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQsIDAsIGF1dGhvcml0eTMpOworICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKHRhcmdldDMpOwogICAgICAgICBhc3NlcnRFcXVhbHMoMCwgc3luY3Muc2l6ZSgpKTsKIAogICAgICAgICBhY2NvdW50c0ZpbGVEYXRhID0gKCI8P3htbCB2ZXJzaW9uPScxLjAnIGVuY29kaW5nPSd1dGYtOCcgc3RhbmRhbG9uZT0neWVzJyA/PlxuIgpAQCAtNDQwLDE1ICs1ODgsMTUgQEAKIAogICAgICAgICBlbmdpbmUuY2xlYXJBbmRSZWFkU3RhdGUoKTsKIAotICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQsIDAsIGF1dGhvcml0eTEpOworICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKHRhcmdldDEpOwogICAgICAgICBhc3NlcnRFcXVhbHMoMSwgc3luY3Muc2l6ZSgpKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKHN5bmMxcywgc3luY3MuZ2V0KDApKTsKIAotICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQsIDAsIGF1dGhvcml0eTIpOworICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKHRhcmdldDIpOwogICAgICAgICBhc3NlcnRFcXVhbHMoMSwgc3luY3Muc2l6ZSgpKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKHN5bmMycywgc3luY3MuZ2V0KDApKTsKIAotICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQsIDAsIGF1dGhvcml0eTMpOworICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKHRhcmdldDMpOwogICAgICAgICBhc3NlcnRFcXVhbHMoMSwgc3luY3Muc2l6ZSgpKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKHN5bmMzcywgc3luY3MuZ2V0KDApKTsKICAgICB9CkBAIC00NjAsNiArNjA4LDEyIEBACiAgICAgICAgIGZpbmFsIFN0cmluZyBhdXRob3JpdHkyID0gImF1dGgyIjsKICAgICAgICAgZmluYWwgU3RyaW5nIGF1dGhvcml0eTMgPSAiYXV0aDMiOwogICAgICAgICBmaW5hbCBCdW5kbGUgZXh0cmFzID0gbmV3IEJ1bmRsZSgpOworCisgICAgICAgIEVuZFBvaW50IHRhcmdldDEgPSBuZXcgRW5kUG9pbnQoYWNjb3VudCwgYXV0aG9yaXR5MSwgMCk7CisgICAgICAgIEVuZFBvaW50IHRhcmdldDIgPSBuZXcgRW5kUG9pbnQoYWNjb3VudCwgYXV0aG9yaXR5MiwgMCk7CisgICAgICAgIEVuZFBvaW50IHRhcmdldDMgPSBuZXcgRW5kUG9pbnQoYWNjb3VudCwgYXV0aG9yaXR5MywgMCk7CisgICAgICAgIEVuZFBvaW50IHRhcmdldDQgPSBuZXcgRW5kUG9pbnQoYWNjb3VudCwgYXV0aG9yaXR5MywgMSk7CisKICAgICAgICAgUGVyaW9kaWNTeW5jIHN5bmMxID0gbmV3IFBlcmlvZGljU3luYyhhY2NvdW50LCBhdXRob3JpdHkxLCBleHRyYXMsIChsb25nKSAoNjAgKiA2MCAqIDI0KSk7CiAgICAgICAgIFBlcmlvZGljU3luYyBzeW5jMiA9IG5ldyBQZXJpb2RpY1N5bmMoYWNjb3VudCwgYXV0aG9yaXR5MiwgZXh0cmFzLCAobG9uZykgKDYwICogNjAgKiAyNCkpOwogICAgICAgICBQZXJpb2RpY1N5bmMgc3luYzMgPSBuZXcgUGVyaW9kaWNTeW5jKGFjY291bnQsIGF1dGhvcml0eTMsIGV4dHJhcywgKGxvbmcpICg2MCAqIDYwICogMjQpKTsKQEAgLTQ4OCwxOSArNjQyLDIwIEBACiAKICAgICAgICAgU3luY1N0b3JhZ2VFbmdpbmUgZW5naW5lID0gU3luY1N0b3JhZ2VFbmdpbmUubmV3VGVzdEluc3RhbmNlKHRlc3RDb250ZXh0KTsKIAotICAgICAgICBMaXN0PFBlcmlvZGljU3luYz4gc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcyhhY2NvdW50LCAwLCBhdXRob3JpdHkxKTsKKyAgICAgICAgTGlzdDxQZXJpb2RpY1N5bmM+IHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3ModGFyZ2V0MSk7CiAgICAgICAgIGFzc2VydEVxdWFscygxLCBzeW5jcy5zaXplKCkpOwogICAgICAgICBhc3NlcnRFcXVhbHMoImV4cGVjdGVkIHN5bmMxOiAiICsgc3luYzEudG9TdHJpbmcoKSArICIgPT0gc3luYyAyIiArIHN5bmNzLmdldCgwKS50b1N0cmluZygpLCBzeW5jMSwgc3luY3MuZ2V0KDApKTsKIAotICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKGFjY291bnQsIDAsIGF1dGhvcml0eTIpOworICAgICAgICBzeW5jcyA9IGVuZ2luZS5nZXRQZXJpb2RpY1N5bmNzKHRhcmdldDIpOwogICAgICAgICBhc3NlcnRFcXVhbHMoMSwgc3luY3Muc2l6ZSgpKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKHN5bmMyLCBzeW5jcy5nZXQoMCkpOwogCi0gICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3MoYWNjb3VudCwgMCwgYXV0aG9yaXR5Myk7CisgICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3ModGFyZ2V0Myk7CiAgICAgICAgIGFzc2VydEVxdWFscygxLCBzeW5jcy5zaXplKCkpOwogICAgICAgICBhc3NlcnRFcXVhbHMoc3luYzMsIHN5bmNzLmdldCgwKSk7CisgICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3ModGFyZ2V0NCk7CiAKLSAgICAgICAgc3luY3MgPSBlbmdpbmUuZ2V0UGVyaW9kaWNTeW5jcyhhY2NvdW50LCAxLCBhdXRob3JpdHkzKTsKKwogICAgICAgICBhc3NlcnRFcXVhbHMoMSwgc3luY3Muc2l6ZSgpKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKHN5bmMzLCBzeW5jcy5nZXQoMCkpOwogCkBAIC01MTgsMTMgKzY3MywxMyBAQAogCiAgICAgICAgIGVuZ2luZS5jbGVhckFuZFJlYWRTdGF0ZSgpOwogCi0gICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3MoYWNjb3VudCwgMCwgYXV0aG9yaXR5MSk7CisgICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3ModGFyZ2V0MSk7CiAgICAgICAgIGFzc2VydEVxdWFscygwLCBzeW5jcy5zaXplKCkpOwogCi0gICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3MoYWNjb3VudCwgMCwgYXV0aG9yaXR5Mik7CisgICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3ModGFyZ2V0Mik7CiAgICAgICAgIGFzc2VydEVxdWFscygwLCBzeW5jcy5zaXplKCkpOwogCi0gICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3MoYWNjb3VudCwgMCwgYXV0aG9yaXR5Myk7CisgICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3ModGFyZ2V0Myk7CiAgICAgICAgIGFzc2VydEVxdWFscygwLCBzeW5jcy5zaXplKCkpOwogCiAgICAgICAgIGFjY291bnRzRmlsZURhdGEgPSAoIjw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J3V0Zi04JyBzdGFuZGFsb25lPSd5ZXMnID8+XG4iCkBAIC01NDcsMTUgKzcwMiwxNSBAQAogCiAgICAgICAgIGVuZ2luZS5jbGVhckFuZFJlYWRTdGF0ZSgpOwogCi0gICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3MoYWNjb3VudCwgMCwgYXV0aG9yaXR5MSk7CisgICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3ModGFyZ2V0MSk7CiAgICAgICAgIGFzc2VydEVxdWFscygxLCBzeW5jcy5zaXplKCkpOwogICAgICAgICBhc3NlcnRFcXVhbHMoc3luYzFzLCBzeW5jcy5nZXQoMCkpOwogCi0gICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3MoYWNjb3VudCwgMCwgYXV0aG9yaXR5Mik7CisgICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3ModGFyZ2V0Mik7CiAgICAgICAgIGFzc2VydEVxdWFscygxLCBzeW5jcy5zaXplKCkpOwogICAgICAgICBhc3NlcnRFcXVhbHMoc3luYzJzLCBzeW5jcy5nZXQoMCkpOwogCi0gICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3MoYWNjb3VudCwgMCwgYXV0aG9yaXR5Myk7CisgICAgICAgIHN5bmNzID0gZW5naW5lLmdldFBlcmlvZGljU3luY3ModGFyZ2V0Myk7CiAgICAgICAgIGFzc2VydEVxdWFscygxLCBzeW5jcy5zaXplKCkpOwogICAgICAgICBhc3NlcnRFcXVhbHMoc3luYzNzLCBzeW5jcy5nZXQoMCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL3Rlc3QtcnVubmVyL3NyYy9hbmRyb2lkL3Rlc3QvU2VydmljZVRlc3RDYXNlLmphdmEgYi90ZXN0LXJ1bm5lci9zcmMvYW5kcm9pZC90ZXN0L1NlcnZpY2VUZXN0Q2FzZS5qYXZhCmluZGV4IGQ4Y2VkMzguLmFkOTBmYzYgMTAwNjQ0Ci0tLSBhL3Rlc3QtcnVubmVyL3NyYy9hbmRyb2lkL3Rlc3QvU2VydmljZVRlc3RDYXNlLmphdmEKKysrIGIvdGVzdC1ydW5uZXIvc3JjL2FuZHJvaWQvdGVzdC9TZXJ2aWNlVGVzdENhc2UuamF2YQpAQCAtMjYzLDYgKzI2Myw3IEBACiAgICAgICAgIH0KICAgICAgICAgaWYgKG1TZXJ2aWNlQ3JlYXRlZCkgewogICAgICAgICAgICAgbVNlcnZpY2Uub25EZXN0cm95KCk7CisgICAgICAgICAgICBtU2VydmljZUNyZWF0ZWQgPSBmYWxzZTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvdGVzdHMvQmlEaVRlc3RzL3NyYy9jb20vYW5kcm9pZC9iaWRpL0JpRGlUZXN0R3JpZExheW91dENvZGVMdHIuamF2YSBiL3Rlc3RzL0JpRGlUZXN0cy9zcmMvY29tL2FuZHJvaWQvYmlkaS9CaURpVGVzdEdyaWRMYXlvdXRDb2RlTHRyLmphdmEKaW5kZXggMmI1ZTY3NC4uZWEwOGE2YSAxMDA2NDQKLS0tIGEvdGVzdHMvQmlEaVRlc3RzL3NyYy9jb20vYW5kcm9pZC9iaWRpL0JpRGlUZXN0R3JpZExheW91dENvZGVMdHIuamF2YQorKysgYi90ZXN0cy9CaURpVGVzdHMvc3JjL2NvbS9hbmRyb2lkL2JpZGkvQmlEaVRlc3RHcmlkTGF5b3V0Q29kZUx0ci5qYXZhCkBAIC0yMiwxMSArMjIsMjUgQEAKIGltcG9ydCBhbmRyb2lkLnZpZXcuTGF5b3V0SW5mbGF0ZXI7CiBpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXc7CiBpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cDsKK2ltcG9ydCBhbmRyb2lkLndpZGdldC5CdXR0b247CitpbXBvcnQgYW5kcm9pZC53aWRnZXQuRWRpdFRleHQ7CitpbXBvcnQgYW5kcm9pZC53aWRnZXQuRnJhbWVMYXlvdXQ7CiBpbXBvcnQgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dDsKLWltcG9ydCBhbmRyb2lkLndpZGdldC4qOworaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlNwYWNlOworaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlRleHRWaWV3OwogCi1pbXBvcnQgc3RhdGljIGFuZHJvaWQudGV4dC5JbnB1dFR5cGUuKjsKLWltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC4qOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLnRleHQuSW5wdXRUeXBlLlRZUEVfQ0xBU1NfVEVYVDsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC50ZXh0LklucHV0VHlwZS5UWVBFX1RFWFRfVkFSSUFUSU9OX0VNQUlMX0FERFJFU1M7CitpbXBvcnQgc3RhdGljIGFuZHJvaWQudGV4dC5JbnB1dFR5cGUuVFlQRV9URVhUX1ZBUklBVElPTl9QQVNTV09SRDsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5BTElHTl9CT1VORFM7CitpbXBvcnQgc3RhdGljIGFuZHJvaWQud2lkZ2V0LkdyaWRMYXlvdXQuQkFTRUxJTkU7CitpbXBvcnQgc3RhdGljIGFuZHJvaWQud2lkZ2V0LkdyaWRMYXlvdXQuQ0VOVEVSOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLndpZGdldC5HcmlkTGF5b3V0LkZJTEw7CitpbXBvcnQgc3RhdGljIGFuZHJvaWQud2lkZ2V0LkdyaWRMYXlvdXQuTEVGVDsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5SSUdIVDsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5TVEFSVDsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5TcGVjOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLndpZGdldC5HcmlkTGF5b3V0LnNwZWM7CiAKIHB1YmxpYyBjbGFzcyBCaURpVGVzdEdyaWRMYXlvdXRDb2RlTHRyIGV4dGVuZHMgRnJhZ21lbnQgewogCmRpZmYgLS1naXQgYS90ZXN0cy9CaURpVGVzdHMvc3JjL2NvbS9hbmRyb2lkL2JpZGkvQmlEaVRlc3RHcmlkTGF5b3V0Q29kZVJ0bC5qYXZhIGIvdGVzdHMvQmlEaVRlc3RzL3NyYy9jb20vYW5kcm9pZC9iaWRpL0JpRGlUZXN0R3JpZExheW91dENvZGVSdGwuamF2YQppbmRleCAzYTAzYzZjLi5mYzNhOTJjIDEwMDY0NAotLS0gYS90ZXN0cy9CaURpVGVzdHMvc3JjL2NvbS9hbmRyb2lkL2JpZGkvQmlEaVRlc3RHcmlkTGF5b3V0Q29kZVJ0bC5qYXZhCisrKyBiL3Rlc3RzL0JpRGlUZXN0cy9zcmMvY29tL2FuZHJvaWQvYmlkaS9CaURpVGVzdEdyaWRMYXlvdXRDb2RlUnRsLmphdmEKQEAgLTIyLDExICsyMiwyNSBAQAogaW1wb3J0IGFuZHJvaWQudmlldy5MYXlvdXRJbmZsYXRlcjsKIGltcG9ydCBhbmRyb2lkLnZpZXcuVmlldzsKIGltcG9ydCBhbmRyb2lkLnZpZXcuVmlld0dyb3VwOworaW1wb3J0IGFuZHJvaWQud2lkZ2V0LkJ1dHRvbjsKK2ltcG9ydCBhbmRyb2lkLndpZGdldC5FZGl0VGV4dDsKK2ltcG9ydCBhbmRyb2lkLndpZGdldC5GcmFtZUxheW91dDsKIGltcG9ydCBhbmRyb2lkLndpZGdldC5HcmlkTGF5b3V0OwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0Lio7CitpbXBvcnQgYW5kcm9pZC53aWRnZXQuU3BhY2U7CitpbXBvcnQgYW5kcm9pZC53aWRnZXQuVGV4dFZpZXc7CiAKLWltcG9ydCBzdGF0aWMgYW5kcm9pZC50ZXh0LklucHV0VHlwZS4qOwotaW1wb3J0IHN0YXRpYyBhbmRyb2lkLndpZGdldC5HcmlkTGF5b3V0Lio7CitpbXBvcnQgc3RhdGljIGFuZHJvaWQudGV4dC5JbnB1dFR5cGUuVFlQRV9DTEFTU19URVhUOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLnRleHQuSW5wdXRUeXBlLlRZUEVfVEVYVF9WQVJJQVRJT05fRU1BSUxfQUREUkVTUzsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC50ZXh0LklucHV0VHlwZS5UWVBFX1RFWFRfVkFSSUFUSU9OX1BBU1NXT1JEOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLndpZGdldC5HcmlkTGF5b3V0LkFMSUdOX0JPVU5EUzsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5CQVNFTElORTsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5DRU5URVI7CitpbXBvcnQgc3RhdGljIGFuZHJvaWQud2lkZ2V0LkdyaWRMYXlvdXQuRklMTDsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5MRUZUOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLndpZGdldC5HcmlkTGF5b3V0LlJJR0hUOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLndpZGdldC5HcmlkTGF5b3V0LlNUQVJUOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLndpZGdldC5HcmlkTGF5b3V0LlNwZWM7CitpbXBvcnQgc3RhdGljIGFuZHJvaWQud2lkZ2V0LkdyaWRMYXlvdXQuc3BlYzsKIAogcHVibGljIGNsYXNzIEJpRGlUZXN0R3JpZExheW91dENvZGVSdGwgZXh0ZW5kcyBGcmFnbWVudCB7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL0dyaWRMYXlvdXRUZXN0L3NyYy9jb20vYW5kcm9pZC90ZXN0L2xheW91dC9BYnN0cmFjdExheW91dFRlc3QuamF2YSBiL3Rlc3RzL0dyaWRMYXlvdXRUZXN0L3NyYy9jb20vYW5kcm9pZC90ZXN0L2xheW91dC9BYnN0cmFjdExheW91dFRlc3QuamF2YQppbmRleCA0ZDNhODQzLi4xOTZhNWMxIDEwMDY0NAotLS0gYS90ZXN0cy9HcmlkTGF5b3V0VGVzdC9zcmMvY29tL2FuZHJvaWQvdGVzdC9sYXlvdXQvQWJzdHJhY3RMYXlvdXRUZXN0LmphdmEKKysrIGIvdGVzdHMvR3JpZExheW91dFRlc3Qvc3JjL2NvbS9hbmRyb2lkL3Rlc3QvbGF5b3V0L0Fic3RyYWN0TGF5b3V0VGVzdC5qYXZhCkBAIC0yNCw3ICsyNCwxMyBAQAogaW1wb3J0IGFuZHJvaWQudmlldy5WaWV3R3JvdXA7CiBpbXBvcnQgYW5kcm9pZC53aWRnZXQuQnV0dG9uOwogCi1pbXBvcnQgc3RhdGljIGFuZHJvaWQudmlldy5HcmF2aXR5Lio7CitpbXBvcnQgc3RhdGljIGFuZHJvaWQudmlldy5HcmF2aXR5LkJPVFRPTTsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC52aWV3LkdyYXZpdHkuQ0VOVEVSOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLnZpZXcuR3Jhdml0eS5GSUxMOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLnZpZXcuR3Jhdml0eS5MRUZUOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLnZpZXcuR3Jhdml0eS5OT19HUkFWSVRZOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLnZpZXcuR3Jhdml0eS5SSUdIVDsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC52aWV3LkdyYXZpdHkuVE9QOwogCiBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RMYXlvdXRUZXN0IGV4dGVuZHMgQWN0aXZpdHkgewogCmRpZmYgLS1naXQgYS90ZXN0cy9HcmlkTGF5b3V0VGVzdC9zcmMvY29tL2FuZHJvaWQvdGVzdC9sYXlvdXQvQWxpZ25tZW50VGVzdC5qYXZhIGIvdGVzdHMvR3JpZExheW91dFRlc3Qvc3JjL2NvbS9hbmRyb2lkL3Rlc3QvbGF5b3V0L0FsaWdubWVudFRlc3QuamF2YQppbmRleCBiMWM0NDg2Li41NTU5NzA3IDEwMDY0NAotLS0gYS90ZXN0cy9HcmlkTGF5b3V0VGVzdC9zcmMvY29tL2FuZHJvaWQvdGVzdC9sYXlvdXQvQWxpZ25tZW50VGVzdC5qYXZhCisrKyBiL3Rlc3RzL0dyaWRMYXlvdXRUZXN0L3NyYy9jb20vYW5kcm9pZC90ZXN0L2xheW91dC9BbGlnbm1lbnRUZXN0LmphdmEKQEAgLTIwLDE1ICsyMCwyNSBAQAogaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OwogaW1wb3J0IGFuZHJvaWQub3MuQnVuZGxlOwogaW1wb3J0IGFuZHJvaWQudmlldy5WaWV3OworaW1wb3J0IGFuZHJvaWQudmlldy5WaWV3Lk9uQ2xpY2tMaXN0ZW5lcjsKIGltcG9ydCBhbmRyb2lkLnZpZXcuVmlld0dyb3VwOwogaW1wb3J0IGFuZHJvaWQud2lkZ2V0LkJ1dHRvbjsKIGltcG9ydCBhbmRyb2lkLndpZGdldC5FZGl0VGV4dDsKIGltcG9ydCBhbmRyb2lkLndpZGdldC5HcmlkTGF5b3V0OworaW1wb3J0IGFuZHJvaWQud2lkZ2V0LkdyaWRMYXlvdXQuQWxpZ25tZW50OworaW1wb3J0IGFuZHJvaWQud2lkZ2V0LkdyaWRMYXlvdXQuTGF5b3V0UGFyYW1zOwogaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlRleHRWaWV3OwogCi1pbXBvcnQgc3RhdGljIGFuZHJvaWQud2lkZ2V0LkdyaWRMYXlvdXQuKjsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5CQVNFTElORTsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5CT1RUT007CitpbXBvcnQgc3RhdGljIGFuZHJvaWQud2lkZ2V0LkdyaWRMYXlvdXQuQ0VOVEVSOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLndpZGdldC5HcmlkTGF5b3V0LkZJTEw7CitpbXBvcnQgc3RhdGljIGFuZHJvaWQud2lkZ2V0LkdyaWRMYXlvdXQuTEVGVDsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5SSUdIVDsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5UT1A7CitpbXBvcnQgc3RhdGljIGFuZHJvaWQud2lkZ2V0LkdyaWRMYXlvdXQuc3BlYzsKIAotcHVibGljIGNsYXNzIEFsaWdubWVudFRlc3QgIGV4dGVuZHMgQWN0aXZpdHkgeworcHVibGljIGNsYXNzIEFsaWdubWVudFRlc3QgZXh0ZW5kcyBBY3Rpdml0eSB7CiAKICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEhPUklaT05UQUxfTkFNRVMgPSB7IkxFRlQiLCAiY2VudGVyIiwgImVhc3QiLCAiZmlsbCJ9OwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQWxpZ25tZW50W10gSE9SSVpPTlRBTF9BTElHTk1FTlRTID0ge0xFRlQsIENFTlRFUiwgUklHSFQsIEZJTEx9OwpkaWZmIC0tZ2l0IGEvdGVzdHMvR3JpZExheW91dFRlc3Qvc3JjL2NvbS9hbmRyb2lkL3Rlc3QvbGF5b3V0L0dyaWRMYXlvdXRUZXN0LmphdmEgYi90ZXN0cy9HcmlkTGF5b3V0VGVzdC9zcmMvY29tL2FuZHJvaWQvdGVzdC9sYXlvdXQvR3JpZExheW91dFRlc3QuamF2YQppbmRleCA0Y2U0NDlhLi44MDQ3YzVmMSAxMDA2NDQKLS0tIGEvdGVzdHMvR3JpZExheW91dFRlc3Qvc3JjL2NvbS9hbmRyb2lkL3Rlc3QvbGF5b3V0L0dyaWRMYXlvdXRUZXN0LmphdmEKKysrIGIvdGVzdHMvR3JpZExheW91dFRlc3Qvc3JjL2NvbS9hbmRyb2lkL3Rlc3QvbGF5b3V0L0dyaWRMYXlvdXRUZXN0LmphdmEKQEAgLTIxLDcgKzIxLDEwIEBACiBpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cDsKIGltcG9ydCBhbmRyb2lkLndpZGdldC5HcmlkTGF5b3V0OwogCi1pbXBvcnQgc3RhdGljIGFuZHJvaWQud2lkZ2V0LkdyaWRMYXlvdXQuKjsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5TcGVjOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLndpZGdldC5HcmlkTGF5b3V0LlVOREVGSU5FRDsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5WRVJUSUNBTDsKK2ltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuR3JpZExheW91dC5zcGVjOwogCiBwdWJsaWMgY2xhc3MgR3JpZExheW91dFRlc3QgZXh0ZW5kcyBBYnN0cmFjdExheW91dFRlc3QgewogICAgIHB1YmxpYyBWaWV3R3JvdXAgY3JlYXRlKENvbnRleHQgY29udGV4dCkgewpkaWZmIC0tZ2l0IGEvdGVzdHMvR3JpZExheW91dFRlc3Qvc3JjL2NvbS9hbmRyb2lkL3Rlc3QvbGF5b3V0L0xpbmVhckxheW91dFRlc3QuamF2YSBiL3Rlc3RzL0dyaWRMYXlvdXRUZXN0L3NyYy9jb20vYW5kcm9pZC90ZXN0L2xheW91dC9MaW5lYXJMYXlvdXRUZXN0LmphdmEKaW5kZXggYzdmNDY2NS4uZGM1YjEyYyAxMDA2NDQKLS0tIGEvdGVzdHMvR3JpZExheW91dFRlc3Qvc3JjL2NvbS9hbmRyb2lkL3Rlc3QvbGF5b3V0L0xpbmVhckxheW91dFRlc3QuamF2YQorKysgYi90ZXN0cy9HcmlkTGF5b3V0VGVzdC9zcmMvY29tL2FuZHJvaWQvdGVzdC9sYXlvdXQvTGluZWFyTGF5b3V0VGVzdC5qYXZhCkBAIC0yMCw5ICsyMCw5IEBACiBpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXc7CiBpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cDsKIGltcG9ydCBhbmRyb2lkLndpZGdldC5MaW5lYXJMYXlvdXQ7CitpbXBvcnQgYW5kcm9pZC53aWRnZXQuTGluZWFyTGF5b3V0LkxheW91dFBhcmFtczsKIAotaW1wb3J0IHN0YXRpYyBhbmRyb2lkLndpZGdldC5MaW5lYXJMYXlvdXQuKjsKLWltcG9ydCBzdGF0aWMgYW5kcm9pZC53aWRnZXQuTGluZWFyTGF5b3V0LkxheW91dFBhcmFtcy4qOworaW1wb3J0IHN0YXRpYyBhbmRyb2lkLndpZGdldC5MaW5lYXJMYXlvdXQuTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVDsKIAogcHVibGljIGNsYXNzIExpbmVhckxheW91dFRlc3QgZXh0ZW5kcyBBYnN0cmFjdExheW91dFRlc3QgewogICAgIHB1YmxpYyBWaWV3R3JvdXAgY3JlYXRlKENvbnRleHQgY29udGV4dCkgewpkaWZmIC0tZ2l0IGEvdGVzdHMvSHdBY2NlbGVyYXRpb25UZXN0L0FuZHJvaWRNYW5pZmVzdC54bWwgYi90ZXN0cy9Id0FjY2VsZXJhdGlvblRlc3QvQW5kcm9pZE1hbmlmZXN0LnhtbAppbmRleCAxYmIwZGIwLi42Zjc3NGY4IDEwMDY0NAotLS0gYS90ZXN0cy9Id0FjY2VsZXJhdGlvblRlc3QvQW5kcm9pZE1hbmlmZXN0LnhtbAorKysgYi90ZXN0cy9Id0FjY2VsZXJhdGlvblRlc3QvQW5kcm9pZE1hbmlmZXN0LnhtbApAQCAtNzA2LDYgKzcwNiwxNSBAQAogICAgICAgICA8L2FjdGl2aXR5PgogCiAgICAgICAgIDxhY3Rpdml0eQorICAgICAgICAgICAgICAgIGFuZHJvaWQ6bmFtZT0iQ29sb3JGaWx0ZXJzTXV0YXRlQWN0aXZpdHkiCisgICAgICAgICAgICAgICAgYW5kcm9pZDpsYWJlbD0iQ29sb3JGaWx0ZXJzL011dGF0ZSBGaWx0ZXJzIj4KKyAgICAgICAgICAgIDxpbnRlbnQtZmlsdGVyPgorICAgICAgICAgICAgICAgIDxhY3Rpb24gYW5kcm9pZDpuYW1lPSJhbmRyb2lkLmludGVudC5hY3Rpb24uTUFJTiIgLz4KKyAgICAgICAgICAgICAgICA8Y2F0ZWdvcnkgYW5kcm9pZDpuYW1lPSJjb20uYW5kcm9pZC50ZXN0Lmh3dWkuVEVTVCIgLz4KKyAgICAgICAgICAgIDwvaW50ZW50LWZpbHRlcj4KKyAgICAgICAgPC9hY3Rpdml0eT4KKworICAgICAgICA8YWN0aXZpdHkKICAgICAgICAgICAgICAgICBhbmRyb2lkOm5hbWU9IkxpbmVzQWN0aXZpdHkiCiAgICAgICAgICAgICAgICAgYW5kcm9pZDpsYWJlbD0iRHJhdy9MaW5lcyI+CiAgICAgICAgICAgICA8aW50ZW50LWZpbHRlcj4KZGlmZiAtLWdpdCBhL3Rlc3RzL0h3QWNjZWxlcmF0aW9uVGVzdC9zcmMvY29tL2FuZHJvaWQvdGVzdC9od3VpL0NvbG9yRmlsdGVyc011dGF0ZUFjdGl2aXR5LmphdmEgYi90ZXN0cy9Id0FjY2VsZXJhdGlvblRlc3Qvc3JjL2NvbS9hbmRyb2lkL3Rlc3QvaHd1aS9Db2xvckZpbHRlcnNNdXRhdGVBY3Rpdml0eS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwOGI1ZDMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9Id0FjY2VsZXJhdGlvblRlc3Qvc3JjL2NvbS9hbmRyb2lkL3Rlc3QvaHd1aS9Db2xvckZpbHRlcnNNdXRhdGVBY3Rpdml0eS5qYXZhCkBAIC0wLDAgKzEsMTgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBjb20uYW5kcm9pZC50ZXN0Lmh3dWk7CisKK2ltcG9ydCBhbmRyb2lkLmFuaW1hdGlvbi5BcmdiRXZhbHVhdG9yOworaW1wb3J0IGFuZHJvaWQuYW5pbWF0aW9uLk9iamVjdEFuaW1hdG9yOworaW1wb3J0IGFuZHJvaWQuYXBwLkFjdGl2aXR5OworaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OworaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwOworaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwRmFjdG9yeTsKK2ltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLkNhbnZhczsKK2ltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLkNvbG9yTWF0cml4OworaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQ29sb3JNYXRyaXhDb2xvckZpbHRlcjsKK2ltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLkxpZ2h0aW5nQ29sb3JGaWx0ZXI7CitpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5QYWludDsKK2ltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlBvcnRlckR1ZmY7CitpbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5Qb3J0ZXJEdWZmQ29sb3JGaWx0ZXI7CitpbXBvcnQgYW5kcm9pZC5vcy5CdW5kbGU7CitpbXBvcnQgYW5kcm9pZC52aWV3LlZpZXc7CisKK0BTdXBwcmVzc1dhcm5pbmdzKHsiVW51c2VkRGVjbGFyYXRpb24ifSkKK3B1YmxpYyBjbGFzcyBDb2xvckZpbHRlcnNNdXRhdGVBY3Rpdml0eSBleHRlbmRzIEFjdGl2aXR5IHsKKyAgICBAT3ZlcnJpZGUKKyAgICBwcm90ZWN0ZWQgdm9pZCBvbkNyZWF0ZShCdW5kbGUgc2F2ZWRJbnN0YW5jZVN0YXRlKSB7CisgICAgICAgIHN1cGVyLm9uQ3JlYXRlKHNhdmVkSW5zdGFuY2VTdGF0ZSk7CisgICAgICAgIGZpbmFsIEJpdG1hcHNWaWV3IHZpZXcgPSBuZXcgQml0bWFwc1ZpZXcodGhpcyk7CisgICAgICAgIHNldENvbnRlbnRWaWV3KHZpZXcpOworICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBCaXRtYXBzVmlldyBleHRlbmRzIFZpZXcgeworICAgICAgICBwcml2YXRlIGZpbmFsIEJpdG1hcCBtQml0bWFwMTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBCaXRtYXAgbUJpdG1hcDI7CisgICAgICAgIHByaXZhdGUgZmluYWwgUGFpbnQgbUNvbG9yTWF0cml4UGFpbnQ7CisgICAgICAgIHByaXZhdGUgZmluYWwgUGFpbnQgbUxpZ2h0aW5nUGFpbnQ7CisgICAgICAgIHByaXZhdGUgZmluYWwgUGFpbnQgbUJsZW5kUGFpbnQ7CisKKyAgICAgICAgcHJpdmF0ZSBmbG9hdCBtU2F0dXJhdGlvbiA9IDAuMGY7CisgICAgICAgIHByaXZhdGUgaW50IG1MaWdodEFkZCA9IDA7CisgICAgICAgIHByaXZhdGUgaW50IG1MaWdodE11bCA9IDA7CisgICAgICAgIHByaXZhdGUgaW50IG1Qb3J0ZXJEdWZmQ29sb3IgPSAwOworCisgICAgICAgIEJpdG1hcHNWaWV3KENvbnRleHQgYykgeworICAgICAgICAgICAgc3VwZXIoYyk7CisKKyAgICAgICAgICAgIG1CaXRtYXAxID0gQml0bWFwRmFjdG9yeS5kZWNvZGVSZXNvdXJjZShjLmdldFJlc291cmNlcygpLCBSLmRyYXdhYmxlLnN1bnNldDEpOworICAgICAgICAgICAgbUJpdG1hcDIgPSBCaXRtYXBGYWN0b3J5LmRlY29kZVJlc291cmNlKGMuZ2V0UmVzb3VyY2VzKCksIFIuZHJhd2FibGUuc3Vuc2V0Mik7CisKKyAgICAgICAgICAgIG1Db2xvck1hdHJpeFBhaW50ID0gbmV3IFBhaW50KCk7CisgICAgICAgICAgICBmaW5hbCBDb2xvck1hdHJpeCBjb2xvck1hdHJpeCA9IG5ldyBDb2xvck1hdHJpeCgpOworICAgICAgICAgICAgY29sb3JNYXRyaXguc2V0U2F0dXJhdGlvbigwKTsKKyAgICAgICAgICAgIG1Db2xvck1hdHJpeFBhaW50LnNldENvbG9yRmlsdGVyKG5ldyBDb2xvck1hdHJpeENvbG9yRmlsdGVyKGNvbG9yTWF0cml4KSk7CisKKyAgICAgICAgICAgIG1MaWdodGluZ1BhaW50ID0gbmV3IFBhaW50KCk7CisgICAgICAgICAgICBtTGlnaHRpbmdQYWludC5zZXRDb2xvckZpbHRlcihuZXcgTGlnaHRpbmdDb2xvckZpbHRlcigwLCAwKSk7CisKKyAgICAgICAgICAgIG1CbGVuZFBhaW50ID0gbmV3IFBhaW50KCk7CisgICAgICAgICAgICBtQmxlbmRQYWludC5zZXRDb2xvckZpbHRlcihuZXcgUG9ydGVyRHVmZkNvbG9yRmlsdGVyKDAsIFBvcnRlckR1ZmYuTW9kZS5TUkNfT1ZFUikpOworCisgICAgICAgICAgICBPYmplY3RBbmltYXRvciBzYXQgPSBPYmplY3RBbmltYXRvci5vZkZsb2F0KHRoaXMsICJzYXR1cmF0aW9uIiwgMS4wZik7CisgICAgICAgICAgICBzYXQuc2V0RHVyYXRpb24oMTAwMCk7CisgICAgICAgICAgICBzYXQuc2V0UmVwZWF0Q291bnQoT2JqZWN0QW5pbWF0b3IuSU5GSU5JVEUpOworICAgICAgICAgICAgc2F0LnNldFJlcGVhdE1vZGUoT2JqZWN0QW5pbWF0b3IuUkVWRVJTRSk7CisgICAgICAgICAgICBzYXQuc3RhcnQoKTsKKworICAgICAgICAgICAgT2JqZWN0QW5pbWF0b3IgbGlnaHQgPSBPYmplY3RBbmltYXRvci5vZkludCh0aGlzLCAibGlnaHRBZGQiLCAweDAwMTAxMDMwKTsKKyAgICAgICAgICAgIGxpZ2h0LnNldEV2YWx1YXRvcihuZXcgQXJnYkV2YWx1YXRvcigpKTsKKyAgICAgICAgICAgIGxpZ2h0LnNldER1cmF0aW9uKDEwMDApOworICAgICAgICAgICAgbGlnaHQuc2V0UmVwZWF0Q291bnQoT2JqZWN0QW5pbWF0b3IuSU5GSU5JVEUpOworICAgICAgICAgICAgbGlnaHQuc2V0UmVwZWF0TW9kZShPYmplY3RBbmltYXRvci5SRVZFUlNFKTsKKyAgICAgICAgICAgIGxpZ2h0LnN0YXJ0KCk7CisKKyAgICAgICAgICAgIE9iamVjdEFuaW1hdG9yIG11bHQgPSBPYmplY3RBbmltYXRvci5vZkludCh0aGlzLCAibGlnaHRNdWwiLCAweDAwNjBmZmZmKTsKKyAgICAgICAgICAgIG11bHQuc2V0RXZhbHVhdG9yKG5ldyBBcmdiRXZhbHVhdG9yKCkpOworICAgICAgICAgICAgbXVsdC5zZXREdXJhdGlvbigxMDAwKTsKKyAgICAgICAgICAgIG11bHQuc2V0UmVwZWF0Q291bnQoT2JqZWN0QW5pbWF0b3IuSU5GSU5JVEUpOworICAgICAgICAgICAgbXVsdC5zZXRSZXBlYXRNb2RlKE9iamVjdEFuaW1hdG9yLlJFVkVSU0UpOworICAgICAgICAgICAgbXVsdC5zdGFydCgpOworCisgICAgICAgICAgICBPYmplY3RBbmltYXRvciBjb2xvciA9IE9iamVjdEFuaW1hdG9yLm9mSW50KHRoaXMsICJwb3J0ZXJEdWZmQ29sb3IiLCAweDdmOTkwMDQwKTsKKyAgICAgICAgICAgIGNvbG9yLnNldEV2YWx1YXRvcihuZXcgQXJnYkV2YWx1YXRvcigpKTsKKyAgICAgICAgICAgIGNvbG9yLnNldER1cmF0aW9uKDEwMDApOworICAgICAgICAgICAgY29sb3Iuc2V0UmVwZWF0Q291bnQoT2JqZWN0QW5pbWF0b3IuSU5GSU5JVEUpOworICAgICAgICAgICAgY29sb3Iuc2V0UmVwZWF0TW9kZShPYmplY3RBbmltYXRvci5SRVZFUlNFKTsKKyAgICAgICAgICAgIGNvbG9yLnN0YXJ0KCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldFBvcnRlckR1ZmZDb2xvcigpIHsKKyAgICAgICAgICAgIHJldHVybiBtUG9ydGVyRHVmZkNvbG9yOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0UG9ydGVyRHVmZkNvbG9yKGludCBwb3J0ZXJEdWZmQ29sb3IpIHsKKyAgICAgICAgICAgIG1Qb3J0ZXJEdWZmQ29sb3IgPSBwb3J0ZXJEdWZmQ29sb3I7CisgICAgICAgICAgICBmaW5hbCBQb3J0ZXJEdWZmQ29sb3JGaWx0ZXIgZmlsdGVyID0KKyAgICAgICAgICAgICAgICAgICAgKFBvcnRlckR1ZmZDb2xvckZpbHRlcikgbUJsZW5kUGFpbnQuZ2V0Q29sb3JGaWx0ZXIoKTsKKyAgICAgICAgICAgIGZpbHRlci5zZXRDb2xvcihtUG9ydGVyRHVmZkNvbG9yKTsKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0TGlnaHRBZGQoKSB7CisgICAgICAgICAgICByZXR1cm4gbUxpZ2h0QWRkOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0TGlnaHRBZGQoaW50IGxpZ2h0QWRkKSB7CisgICAgICAgICAgICBtTGlnaHRBZGQgPSBsaWdodEFkZDsKKyAgICAgICAgICAgIGZpbmFsIExpZ2h0aW5nQ29sb3JGaWx0ZXIgZmlsdGVyID0KKyAgICAgICAgICAgICAgICAgICAgKExpZ2h0aW5nQ29sb3JGaWx0ZXIpIG1MaWdodGluZ1BhaW50LmdldENvbG9yRmlsdGVyKCk7CisgICAgICAgICAgICBmaWx0ZXIuc2V0Q29sb3JBZGQobGlnaHRBZGQpOworICAgICAgICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRMaWdodE11bCgpIHsKKyAgICAgICAgICAgIHJldHVybiBtTGlnaHRBZGQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXRMaWdodE11bChpbnQgbGlnaHRNdWwpIHsKKyAgICAgICAgICAgIG1MaWdodE11bCA9IGxpZ2h0TXVsOworICAgICAgICAgICAgZmluYWwgTGlnaHRpbmdDb2xvckZpbHRlciBmaWx0ZXIgPQorICAgICAgICAgICAgICAgICAgICAoTGlnaHRpbmdDb2xvckZpbHRlcikgbUxpZ2h0aW5nUGFpbnQuZ2V0Q29sb3JGaWx0ZXIoKTsKKyAgICAgICAgICAgIGZpbHRlci5zZXRDb2xvck11bHRpcGx5KGxpZ2h0TXVsKTsKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldFNhdHVyYXRpb24oZmxvYXQgc2F0dXJhdGlvbikgeworICAgICAgICAgICAgbVNhdHVyYXRpb24gPSBzYXR1cmF0aW9uOworICAgICAgICAgICAgZmluYWwgQ29sb3JNYXRyaXhDb2xvckZpbHRlciBmaWx0ZXIgPQorICAgICAgICAgICAgICAgICAgICAoQ29sb3JNYXRyaXhDb2xvckZpbHRlcikgbUNvbG9yTWF0cml4UGFpbnQuZ2V0Q29sb3JGaWx0ZXIoKTsKKyAgICAgICAgICAgIGZpbmFsIENvbG9yTWF0cml4IG0gPSBmaWx0ZXIuZ2V0Q29sb3JNYXRyaXgoKTsKKyAgICAgICAgICAgIG0uc2V0U2F0dXJhdGlvbihzYXR1cmF0aW9uKTsKKyAgICAgICAgICAgIGZpbHRlci5zZXRDb2xvck1hdHJpeChtKTsKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBmbG9hdCBnZXRTYXR1cmF0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIG1TYXR1cmF0aW9uOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHByb3RlY3RlZCB2b2lkIG9uRHJhdyhDYW52YXMgY2FudmFzKSB7CisgICAgICAgICAgICBzdXBlci5vbkRyYXcoY2FudmFzKTsKKworICAgICAgICAgICAgY2FudmFzLmRyYXdBUkdCKDI1NSwgMjU1LCAyNTUsIDI1NSk7CisKKyAgICAgICAgICAgIGNhbnZhcy5zYXZlKCk7CisgICAgICAgICAgICBjYW52YXMudHJhbnNsYXRlKDEyMC4wZiwgNTAuMGYpOworICAgICAgICAgICAgY2FudmFzLmRyYXdCaXRtYXAobUJpdG1hcDEsIDAuMGYsIDAuMGYsIG1Db2xvck1hdHJpeFBhaW50KTsKKworICAgICAgICAgICAgY2FudmFzLnRyYW5zbGF0ZSgwLjBmLCA1MC4wZiArIG1CaXRtYXAxLmdldEhlaWdodCgpKTsKKyAgICAgICAgICAgIGNhbnZhcy5kcmF3Qml0bWFwKG1CaXRtYXAxLCAwLjBmLCAwLjBmLCBtTGlnaHRpbmdQYWludCk7CisKKyAgICAgICAgICAgIGNhbnZhcy50cmFuc2xhdGUoMC4wZiwgNTAuMGYgKyBtQml0bWFwMS5nZXRIZWlnaHQoKSk7CisgICAgICAgICAgICBjYW52YXMuZHJhd0JpdG1hcChtQml0bWFwMSwgMC4wZiwgMC4wZiwgbUJsZW5kUGFpbnQpOworICAgICAgICAgICAgY2FudmFzLnJlc3RvcmUoKTsKKworICAgICAgICAgICAgY2FudmFzLnNhdmUoKTsKKyAgICAgICAgICAgIGNhbnZhcy50cmFuc2xhdGUoMTIwLjBmICsgbUJpdG1hcDEuZ2V0V2lkdGgoKSArIDEyMC4wZiwgNTAuMGYpOworICAgICAgICAgICAgY2FudmFzLmRyYXdCaXRtYXAobUJpdG1hcDIsIDAuMGYsIDAuMGYsIG1Db2xvck1hdHJpeFBhaW50KTsKKworICAgICAgICAgICAgY2FudmFzLnRyYW5zbGF0ZSgwLjBmLCA1MC4wZiArIG1CaXRtYXAyLmdldEhlaWdodCgpKTsKKyAgICAgICAgICAgIGNhbnZhcy5kcmF3Qml0bWFwKG1CaXRtYXAyLCAwLjBmLCAwLjBmLCBtTGlnaHRpbmdQYWludCk7CisKKyAgICAgICAgICAgIGNhbnZhcy50cmFuc2xhdGUoMC4wZiwgNTAuMGYgKyBtQml0bWFwMi5nZXRIZWlnaHQoKSk7CisgICAgICAgICAgICBjYW52YXMuZHJhd0JpdG1hcChtQml0bWFwMiwgMC4wZiwgMC4wZiwgbUJsZW5kUGFpbnQpOworICAgICAgICAgICAgY2FudmFzLnJlc3RvcmUoKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvQWFwdEFzc2V0cy5jcHAgYi90b29scy9hYXB0L0FhcHRBc3NldHMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOGUxMTNhLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvQWFwdEFzc2V0cy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNzI2ICswLDAgQEAKLS8vCi0vLyBDb3B5cmlnaHQgMjAwNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0vLwotCi0jaW5jbHVkZSAiQWFwdEFzc2V0cy5oIgotI2luY2x1ZGUgIlJlc291cmNlRmlsdGVyLmgiCi0jaW5jbHVkZSAiTWFpbi5oIgotCi0jaW5jbHVkZSA8dXRpbHMvbWlzYy5oPgotI2luY2x1ZGUgPHV0aWxzL1NvcnRlZFZlY3Rvci5oPgotCi0jaW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNsdWRlIDxkaXJlbnQuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotCi1zdGF0aWMgY29uc3QgY2hhcioga0RlZmF1bHRMb2NhbGUgPSAiZGVmYXVsdCI7Ci1zdGF0aWMgY29uc3QgY2hhcioga1dpbGRjYXJkTmFtZSA9ICJhbnkiOwotc3RhdGljIGNvbnN0IGNoYXIqIGtBc3NldERpciA9ICJhc3NldHMiOwotc3RhdGljIGNvbnN0IGNoYXIqIGtSZXNvdXJjZURpciA9ICJyZXMiOwotc3RhdGljIGNvbnN0IGNoYXIqIGtWYWx1ZXNEaXIgPSAidmFsdWVzIjsKLXN0YXRpYyBjb25zdCBjaGFyKiBrTWlwbWFwRGlyID0gIm1pcG1hcCI7Ci1zdGF0aWMgY29uc3QgY2hhcioga0ludmFsaWRDaGFycyA9ICIvXFw6IjsKLXN0YXRpYyBjb25zdCBzaXplX3Qga01heEFzc2V0RmlsZU5hbWUgPSAxMDA7Ci0KLXN0YXRpYyBjb25zdCBTdHJpbmc4IGtSZXNTdHJpbmcoa1Jlc291cmNlRGlyKTsKLQotLyoKLSAqIE5hbWVzIG9mIGFzc2V0IGZpbGVzIG11c3QgbWVldCB0aGUgZm9sbG93aW5nIGNyaXRlcmlhOgotICoKLSAqICAtIHRoZSBmaWxlbmFtZSBsZW5ndGggbXVzdCBiZSBsZXNzIHRoYW4ga01heEFzc2V0RmlsZU5hbWUgYnl0ZXMgbG9uZwotICogICAgKGFuZCBjYW4ndCBiZSBlbXB0eSkKLSAqICAtIGFsbCBjaGFyYWN0ZXJzIG11c3QgYmUgNy1iaXQgcHJpbnRhYmxlIEFTQ0lJCi0gKiAgLSBub25lIG9mIHsgJy8nICdcXCcgJzonIH0KLSAqCi0gKiBQYXNzIGluIGp1c3QgdGhlIGZpbGVuYW1lLCBub3QgdGhlIGZ1bGwgcGF0aC4KLSAqLwotc3RhdGljIGJvb2wgdmFsaWRhdGVGaWxlTmFtZShjb25zdCBjaGFyKiBmaWxlTmFtZSkKLXsKLSAgICBjb25zdCBjaGFyKiBjcCA9IGZpbGVOYW1lOwotICAgIHNpemVfdCBsZW4gPSAwOwotCi0gICAgd2hpbGUgKCpjcCAhPSAnXDAnKSB7Ci0gICAgICAgIGlmICgoKmNwICYgMHg4MCkgIT0gMCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAgICAgICAgIC8vIHJlamVjdCBoaWdoIEFTQ0lJCi0gICAgICAgIGlmICgqY3AgPCAweDIwIHx8ICpjcCA+PSAweDdmKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgLy8gcmVqZWN0IGNvbnRyb2wgY2hhcnMgYW5kIDB4N2YKLSAgICAgICAgaWYgKHN0cmNocihrSW52YWxpZENoYXJzLCAqY3ApICE9IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgICAvLyByZWplY3QgcGF0aCBzZXAgY2hhcnMKLSAgICAgICAgY3ArKzsKLSAgICAgICAgbGVuKys7Ci0gICAgfQotCi0gICAgaWYgKGxlbiA8IDEgfHwgbGVuID4ga01heEFzc2V0RmlsZU5hbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsgICAgICAgICAgICAgICAvLyByZWplY3QgZW1wdHkgb3IgdG9vIGxvbmcKLQotICAgIHJldHVybiB0cnVlOwotfQotCi0vLyBUaGUgZGVmYXVsdCB0byB1c2UgaWYgbm8gb3RoZXIgaWdub3JlIHBhdHRlcm4gaXMgZGVmaW5lZC4KLWNvbnN0IGNoYXIgKiBjb25zdCBnRGVmYXVsdElnbm9yZUFzc2V0cyA9Ci0gICAgIiEuc3ZuOiEuZ2l0OiEuZHNfc3RvcmU6ISouc2NjOi4qOjxkaXI+Xyo6IUNWUzohdGh1bWJzLmRiOiFwaWNhc2EuaW5pOiEqfiI7Ci0vLyBUaGUgaWdub3JlIHBhdHRlcm4gdGhhdCBjYW4gYmUgcGFzc2VkIHZpYSAtLWlnbm9yZS1hc3NldHMgaW4gTWFpbi5jcHAKLWNvbnN0IGNoYXIgKiBnVXNlcklnbm9yZUFzc2V0cyA9IE5VTEw7Ci0KLXN0YXRpYyBib29sIGlzSGlkZGVuKGNvbnN0IGNoYXIgKnJvb3QsIGNvbnN0IGNoYXIgKnBhdGgpCi17Ci0gICAgLy8gUGF0dGVybnMgc3ludGF4OgotICAgIC8vIC0gRGVsaW1pdGVyIGlzIDoKLSAgICAvLyAtIEVudHJ5IGNhbiBzdGFydCB3aXRoIHRoZSBmbGFnICEgdG8gYXZvaWQgcHJpbnRpbmcgYSB3YXJuaW5nCi0gICAgLy8gICBhYm91dCB0aGUgZmlsZSBiZWluZyBpZ25vcmVkLgotICAgIC8vIC0gRW50cnkgY2FuIGhhdmUgdGhlIGZsYWcgIjxkaXI+IiB0byBtYXRjaCBvbmx5IGRpcmVjdG9yaWVzCi0gICAgLy8gICBvciA8ZmlsZT4gdG8gbWF0Y2ggb25seSBmaWxlcy4gRGVmYXVsdCBpcyB0byBtYXRjaCBib3RoLgotICAgIC8vIC0gRW50cnkgY2FuIGJlIGEgc2ltcGxpZmllZCBnbG9iICI8cHJlZml4PioiIG9yICIqPHN1ZmZpeD4iCi0gICAgLy8gICB3aGVyZSBwcmVmaXgvc3VmZml4IG11c3QgaGF2ZSBhdCBsZWFzdCAxIGNoYXJhY3RlciAoc28gdGhhdAotICAgIC8vICAgd2UgZG9uJ3QgbWF0Y2ggYSAnKicgY2F0Y2gtYWxsIHBhdHRlcm4uKQotICAgIC8vIC0gVGhlIHNwZWNpYWwgZmlsZW5hbWVzICIuIiBhbmQgIi4uIiBhcmUgYWx3YXlzIGlnbm9yZWQuCi0gICAgLy8gLSBPdGhlcndpc2UgdGhlIGZ1bGwgc3RyaW5nIGlzIG1hdGNoZWQuCi0gICAgLy8gLSBtYXRjaCBpcyBub3QgY2FzZS1zZW5zaXRpdmUuCi0KLSAgICBpZiAoc3RyY21wKHBhdGgsICIuIikgPT0gMCB8fCBzdHJjbXAocGF0aCwgIi4uIikgPT0gMCkgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBjb25zdCBjaGFyICpkZWxpbSA9ICI6IjsKLSAgICBjb25zdCBjaGFyICpwID0gZ1VzZXJJZ25vcmVBc3NldHM7Ci0gICAgaWYgKCFwIHx8ICFwWzBdKSB7Ci0gICAgICAgIHAgPSBnZXRlbnYoIkFORFJPSURfQUFQVF9JR05PUkUiKTsKLSAgICB9Ci0gICAgaWYgKCFwIHx8ICFwWzBdKSB7Ci0gICAgICAgIHAgPSBnRGVmYXVsdElnbm9yZUFzc2V0czsKLSAgICB9Ci0gICAgY2hhciAqcGF0dGVybnMgPSBzdHJkdXAocCk7Ci0KLSAgICBib29sIGlnbm9yZSA9IGZhbHNlOwotICAgIGJvb2wgY2hhdHR5ID0gdHJ1ZTsKLSAgICBjaGFyICptYXRjaGVkUGF0dGVybiA9IE5VTEw7Ci0KLSAgICBTdHJpbmc4IGZ1bGxQYXRoKHJvb3QpOwotICAgIGZ1bGxQYXRoLmFwcGVuZFBhdGgocGF0aCk7Ci0gICAgRmlsZVR5cGUgdHlwZSA9IGdldEZpbGVUeXBlKGZ1bGxQYXRoKTsKLQotICAgIGludCBwbGVuID0gc3RybGVuKHBhdGgpOwotCi0gICAgLy8gTm90ZTogd2UgZG9uJ3QgaGF2ZSBzdHJ0b2tfciB1bmRlciBtaW5ndy4KLSAgICBmb3IoY2hhciAqdG9rZW4gPSBzdHJ0b2socGF0dGVybnMsIGRlbGltKTsKLSAgICAgICAgICAgICFpZ25vcmUgJiYgdG9rZW4gIT0gTlVMTDsKLSAgICAgICAgICAgIHRva2VuID0gc3RydG9rKE5VTEwsIGRlbGltKSkgewotICAgICAgICBjaGF0dHkgPSB0b2tlblswXSAhPSAnISc7Ci0gICAgICAgIGlmICghY2hhdHR5KSB0b2tlbisrOyAvLyBza2lwICEKLSAgICAgICAgaWYgKHN0cm5jYXNlY21wKHRva2VuLCAiPGRpcj4iICwgNSkgPT0gMCkgewotICAgICAgICAgICAgaWYgKHR5cGUgIT0ga0ZpbGVUeXBlRGlyZWN0b3J5KSBjb250aW51ZTsKLSAgICAgICAgICAgIHRva2VuICs9IDU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN0cm5jYXNlY21wKHRva2VuLCAiPGZpbGU+IiwgNikgPT0gMCkgewotICAgICAgICAgICAgaWYgKHR5cGUgIT0ga0ZpbGVUeXBlUmVndWxhcikgY29udGludWU7Ci0gICAgICAgICAgICB0b2tlbiArPSA2OwotICAgICAgICB9Ci0KLSAgICAgICAgbWF0Y2hlZFBhdHRlcm4gPSB0b2tlbjsKLSAgICAgICAgaW50IG4gPSBzdHJsZW4odG9rZW4pOwotCi0gICAgICAgIGlmICh0b2tlblswXSA9PSAnKicpIHsKLSAgICAgICAgICAgIC8vIE1hdGNoICpzdWZmaXgKLSAgICAgICAgICAgIHRva2VuKys7Ci0gICAgICAgICAgICBuLS07Ci0gICAgICAgICAgICBpZiAobiA8PSBwbGVuKSB7Ci0gICAgICAgICAgICAgICAgaWdub3JlID0gc3RybmNhc2VjbXAodG9rZW4sIHBhdGggKyBwbGVuIC0gbiwgbikgPT0gMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChuID4gMSAmJiB0b2tlbltuIC0gMV0gPT0gJyonKSB7Ci0gICAgICAgICAgICAvLyBNYXRjaCBwcmVmaXgqCi0gICAgICAgICAgICBpZ25vcmUgPSBzdHJuY2FzZWNtcCh0b2tlbiwgcGF0aCwgbiAtIDEpID09IDA7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZ25vcmUgPSBzdHJjYXNlY21wKHRva2VuLCBwYXRoKSA9PSAwOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGlnbm9yZSAmJiBjaGF0dHkpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIgICAgKHNraXBwaW5nICVzICclcycgZHVlIHRvIEFORFJPSURfQUFQVF9JR05PUkUgcGF0dGVybiAnJXMnKVxuIiwKLSAgICAgICAgICAgICAgICB0eXBlID09IGtGaWxlVHlwZURpcmVjdG9yeSA/ICJkaXIiIDogImZpbGUiLAotICAgICAgICAgICAgICAgIHBhdGgsCi0gICAgICAgICAgICAgICAgbWF0Y2hlZFBhdHRlcm4gPyBtYXRjaGVkUGF0dGVybiA6ICIiKTsKLSAgICB9Ci0KLSAgICBmcmVlKHBhdHRlcm5zKTsKLSAgICByZXR1cm4gaWdub3JlOwotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLXN0YXR1c190Ci1BYXB0R3JvdXBFbnRyeTo6cGFyc2VOYW1lUGFydChjb25zdCBTdHJpbmc4JiBwYXJ0LCBpbnQqIGF4aXMsIHVpbnQzMl90KiB2YWx1ZSkKLXsKLSAgICBSZXNUYWJsZV9jb25maWcgY29uZmlnOwotCi0gICAgLy8gSU1TSSAtIE1DQwotICAgIGlmIChnZXRNY2NOYW1lKHBhcnQuc3RyaW5nKCksICZjb25maWcpKSB7Ci0gICAgICAgICpheGlzID0gQVhJU19NQ0M7Ci0gICAgICAgICp2YWx1ZSA9IGNvbmZpZy5tY2M7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8vIElNU0kgLSBNTkMKLSAgICBpZiAoZ2V0TW5jTmFtZShwYXJ0LnN0cmluZygpLCAmY29uZmlnKSkgewotICAgICAgICAqYXhpcyA9IEFYSVNfTU5DOwotICAgICAgICAqdmFsdWUgPSBjb25maWcubW5jOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvLyBsb2NhbGUgLSBsYW5ndWFnZQotICAgIGlmIChwYXJ0Lmxlbmd0aCgpID09IDIgJiYgaXNhbHBoYShwYXJ0WzBdKSAmJiBpc2FscGhhKHBhcnRbMV0pKSB7Ci0gICAgICAgICpheGlzID0gQVhJU19MQU5HVUFHRTsKLSAgICAgICAgKnZhbHVlID0gcGFydFsxXSA8PCA4IHwgcGFydFswXTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLy8gbG9jYWxlIC0gbGFuZ3VhZ2VfUkVHSU9OCi0gICAgaWYgKHBhcnQubGVuZ3RoKCkgPT0gNSAmJiBpc2FscGhhKHBhcnRbMF0pICYmIGlzYWxwaGEocGFydFsxXSkKLSAgICAgICAgICAgICYmIHBhcnRbMl0gPT0gJ18nICYmIGlzYWxwaGEocGFydFszXSkgJiYgaXNhbHBoYShwYXJ0WzRdKSkgewotICAgICAgICAqYXhpcyA9IEFYSVNfTEFOR1VBR0U7Ci0gICAgICAgICp2YWx1ZSA9IChwYXJ0WzRdIDw8IDI0KSB8IChwYXJ0WzNdIDw8IDE2KSB8IChwYXJ0WzFdIDw8IDgpIHwgKHBhcnRbMF0pOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvLyBsYXlvdXQgZGlyZWN0aW9uCi0gICAgaWYgKGdldExheW91dERpcmVjdGlvbk5hbWUocGFydC5zdHJpbmcoKSwgJmNvbmZpZykpIHsKLSAgICAgICAgKmF4aXMgPSBBWElTX0xBWU9VVERJUjsKLSAgICAgICAgKnZhbHVlID0gKGNvbmZpZy5zY3JlZW5MYXlvdXQmUmVzVGFibGVfY29uZmlnOjpNQVNLX0xBWU9VVERJUik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8vIHNtYWxsZXN0IHNjcmVlbiBkcCB3aWR0aAotICAgIGlmIChnZXRTbWFsbGVzdFNjcmVlbldpZHRoRHBOYW1lKHBhcnQuc3RyaW5nKCksICZjb25maWcpKSB7Ci0gICAgICAgICpheGlzID0gQVhJU19TTUFMTEVTVFNDUkVFTldJRFRIRFA7Ci0gICAgICAgICp2YWx1ZSA9IGNvbmZpZy5zbWFsbGVzdFNjcmVlbldpZHRoRHA7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8vIHNjcmVlbiBkcCB3aWR0aAotICAgIGlmIChnZXRTY3JlZW5XaWR0aERwTmFtZShwYXJ0LnN0cmluZygpLCAmY29uZmlnKSkgewotICAgICAgICAqYXhpcyA9IEFYSVNfU0NSRUVOV0lEVEhEUDsKLSAgICAgICAgKnZhbHVlID0gY29uZmlnLnNjcmVlbldpZHRoRHA7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8vIHNjcmVlbiBkcCBoZWlnaHQKLSAgICBpZiAoZ2V0U2NyZWVuSGVpZ2h0RHBOYW1lKHBhcnQuc3RyaW5nKCksICZjb25maWcpKSB7Ci0gICAgICAgICpheGlzID0gQVhJU19TQ1JFRU5IRUlHSFREUDsKLSAgICAgICAgKnZhbHVlID0gY29uZmlnLnNjcmVlbkhlaWdodERwOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvLyBzY3JlZW4gbGF5b3V0IHNpemUKLSAgICBpZiAoZ2V0U2NyZWVuTGF5b3V0U2l6ZU5hbWUocGFydC5zdHJpbmcoKSwgJmNvbmZpZykpIHsKLSAgICAgICAgKmF4aXMgPSBBWElTX1NDUkVFTkxBWU9VVFNJWkU7Ci0gICAgICAgICp2YWx1ZSA9IChjb25maWcuc2NyZWVuTGF5b3V0JlJlc1RhYmxlX2NvbmZpZzo6TUFTS19TQ1JFRU5TSVpFKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLy8gc2NyZWVuIGxheW91dCBsb25nCi0gICAgaWYgKGdldFNjcmVlbkxheW91dExvbmdOYW1lKHBhcnQuc3RyaW5nKCksICZjb25maWcpKSB7Ci0gICAgICAgICpheGlzID0gQVhJU19TQ1JFRU5MQVlPVVRMT05HOwotICAgICAgICAqdmFsdWUgPSAoY29uZmlnLnNjcmVlbkxheW91dCZSZXNUYWJsZV9jb25maWc6Ok1BU0tfU0NSRUVOTE9ORyk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8vIG9yaWVudGF0aW9uCi0gICAgaWYgKGdldE9yaWVudGF0aW9uTmFtZShwYXJ0LnN0cmluZygpLCAmY29uZmlnKSkgewotICAgICAgICAqYXhpcyA9IEFYSVNfT1JJRU5UQVRJT047Ci0gICAgICAgICp2YWx1ZSA9IGNvbmZpZy5vcmllbnRhdGlvbjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLy8gdWkgbW9kZSB0eXBlCi0gICAgaWYgKGdldFVpTW9kZVR5cGVOYW1lKHBhcnQuc3RyaW5nKCksICZjb25maWcpKSB7Ci0gICAgICAgICpheGlzID0gQVhJU19VSU1PREVUWVBFOwotICAgICAgICAqdmFsdWUgPSAoY29uZmlnLnVpTW9kZSZSZXNUYWJsZV9jb25maWc6Ok1BU0tfVUlfTU9ERV9UWVBFKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLy8gdWkgbW9kZSBuaWdodAotICAgIGlmIChnZXRVaU1vZGVOaWdodE5hbWUocGFydC5zdHJpbmcoKSwgJmNvbmZpZykpIHsKLSAgICAgICAgKmF4aXMgPSBBWElTX1VJTU9ERU5JR0hUOwotICAgICAgICAqdmFsdWUgPSAoY29uZmlnLnVpTW9kZSZSZXNUYWJsZV9jb25maWc6Ok1BU0tfVUlfTU9ERV9OSUdIVCk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8vIGRlbnNpdHkKLSAgICBpZiAoZ2V0RGVuc2l0eU5hbWUocGFydC5zdHJpbmcoKSwgJmNvbmZpZykpIHsKLSAgICAgICAgKmF4aXMgPSBBWElTX0RFTlNJVFk7Ci0gICAgICAgICp2YWx1ZSA9IGNvbmZpZy5kZW5zaXR5OwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvLyB0b3VjaHNjcmVlbgotICAgIGlmIChnZXRUb3VjaHNjcmVlbk5hbWUocGFydC5zdHJpbmcoKSwgJmNvbmZpZykpIHsKLSAgICAgICAgKmF4aXMgPSBBWElTX1RPVUNIU0NSRUVOOwotICAgICAgICAqdmFsdWUgPSBjb25maWcudG91Y2hzY3JlZW47Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8vIGtleWJvYXJkIGhpZGRlbgotICAgIGlmIChnZXRLZXlzSGlkZGVuTmFtZShwYXJ0LnN0cmluZygpLCAmY29uZmlnKSkgewotICAgICAgICAqYXhpcyA9IEFYSVNfS0VZU0hJRERFTjsKLSAgICAgICAgKnZhbHVlID0gY29uZmlnLmlucHV0RmxhZ3M7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8vIGtleWJvYXJkCi0gICAgaWYgKGdldEtleWJvYXJkTmFtZShwYXJ0LnN0cmluZygpLCAmY29uZmlnKSkgewotICAgICAgICAqYXhpcyA9IEFYSVNfS0VZQk9BUkQ7Ci0gICAgICAgICp2YWx1ZSA9IGNvbmZpZy5rZXlib2FyZDsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLy8gbmF2aWdhdGlvbiBoaWRkZW4KLSAgICBpZiAoZ2V0TmF2SGlkZGVuTmFtZShwYXJ0LnN0cmluZygpLCAmY29uZmlnKSkgewotICAgICAgICAqYXhpcyA9IEFYSVNfTkFWSElEREVOOwotICAgICAgICAqdmFsdWUgPSBjb25maWcuaW5wdXRGbGFnczsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLy8gbmF2aWdhdGlvbgotICAgIGlmIChnZXROYXZpZ2F0aW9uTmFtZShwYXJ0LnN0cmluZygpLCAmY29uZmlnKSkgewotICAgICAgICAqYXhpcyA9IEFYSVNfTkFWSUdBVElPTjsKLSAgICAgICAgKnZhbHVlID0gY29uZmlnLm5hdmlnYXRpb247Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8vIHNjcmVlbiBzaXplCi0gICAgaWYgKGdldFNjcmVlblNpemVOYW1lKHBhcnQuc3RyaW5nKCksICZjb25maWcpKSB7Ci0gICAgICAgICpheGlzID0gQVhJU19TQ1JFRU5TSVpFOwotICAgICAgICAqdmFsdWUgPSBjb25maWcuc2NyZWVuU2l6ZTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLy8gdmVyc2lvbgotICAgIGlmIChnZXRWZXJzaW9uTmFtZShwYXJ0LnN0cmluZygpLCAmY29uZmlnKSkgewotICAgICAgICAqYXhpcyA9IEFYSVNfVkVSU0lPTjsKLSAgICAgICAgKnZhbHVlID0gY29uZmlnLnZlcnNpb247Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJldHVybiAxOwotfQotCi11aW50MzJfdAotQWFwdEdyb3VwRW50cnk6OmdldENvbmZpZ1ZhbHVlRm9yQXhpcyhjb25zdCBSZXNUYWJsZV9jb25maWcmIGNvbmZpZywgaW50IGF4aXMpCi17Ci0gICAgc3dpdGNoIChheGlzKSB7Ci0gICAgICAgIGNhc2UgQVhJU19NQ0M6Ci0gICAgICAgICAgICByZXR1cm4gY29uZmlnLm1jYzsKLSAgICAgICAgY2FzZSBBWElTX01OQzoKLSAgICAgICAgICAgIHJldHVybiBjb25maWcubW5jOwotICAgICAgICBjYXNlIEFYSVNfTEFOR1VBR0U6Ci0gICAgICAgICAgICByZXR1cm4gKCgodWludDMyX3QpY29uZmlnLmNvdW50cnlbMV0pIDw8IDI0KSB8ICgoKHVpbnQzMl90KWNvbmZpZy5jb3VudHJ5WzBdKSA8PCAxNikKLSAgICAgICAgICAgICAgICB8ICgoKHVpbnQzMl90KWNvbmZpZy5sYW5ndWFnZVsxXSkgPDwgOCkgfCAoY29uZmlnLmxhbmd1YWdlWzBdKTsKLSAgICAgICAgY2FzZSBBWElTX0xBWU9VVERJUjoKLSAgICAgICAgICAgIHJldHVybiBjb25maWcuc2NyZWVuTGF5b3V0JlJlc1RhYmxlX2NvbmZpZzo6TUFTS19MQVlPVVRESVI7Ci0gICAgICAgIGNhc2UgQVhJU19TQ1JFRU5MQVlPVVRTSVpFOgotICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5zY3JlZW5MYXlvdXQmUmVzVGFibGVfY29uZmlnOjpNQVNLX1NDUkVFTlNJWkU7Ci0gICAgICAgIGNhc2UgQVhJU19PUklFTlRBVElPTjoKLSAgICAgICAgICAgIHJldHVybiBjb25maWcub3JpZW50YXRpb247Ci0gICAgICAgIGNhc2UgQVhJU19VSU1PREVUWVBFOgotICAgICAgICAgICAgcmV0dXJuIChjb25maWcudWlNb2RlJlJlc1RhYmxlX2NvbmZpZzo6TUFTS19VSV9NT0RFX1RZUEUpOwotICAgICAgICBjYXNlIEFYSVNfVUlNT0RFTklHSFQ6Ci0gICAgICAgICAgICByZXR1cm4gKGNvbmZpZy51aU1vZGUmUmVzVGFibGVfY29uZmlnOjpNQVNLX1VJX01PREVfTklHSFQpOwotICAgICAgICBjYXNlIEFYSVNfREVOU0lUWToKLSAgICAgICAgICAgIHJldHVybiBjb25maWcuZGVuc2l0eTsKLSAgICAgICAgY2FzZSBBWElTX1RPVUNIU0NSRUVOOgotICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy50b3VjaHNjcmVlbjsKLSAgICAgICAgY2FzZSBBWElTX0tFWVNISURERU46Ci0gICAgICAgICAgICByZXR1cm4gY29uZmlnLmlucHV0RmxhZ3M7Ci0gICAgICAgIGNhc2UgQVhJU19LRVlCT0FSRDoKLSAgICAgICAgICAgIHJldHVybiBjb25maWcua2V5Ym9hcmQ7Ci0gICAgICAgIGNhc2UgQVhJU19OQVZJR0FUSU9OOgotICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5uYXZpZ2F0aW9uOwotICAgICAgICBjYXNlIEFYSVNfU0NSRUVOU0laRToKLSAgICAgICAgICAgIHJldHVybiBjb25maWcuc2NyZWVuU2l6ZTsKLSAgICAgICAgY2FzZSBBWElTX1NNQUxMRVNUU0NSRUVOV0lEVEhEUDoKLSAgICAgICAgICAgIHJldHVybiBjb25maWcuc21hbGxlc3RTY3JlZW5XaWR0aERwOwotICAgICAgICBjYXNlIEFYSVNfU0NSRUVOV0lEVEhEUDoKLSAgICAgICAgICAgIHJldHVybiBjb25maWcuc2NyZWVuV2lkdGhEcDsKLSAgICAgICAgY2FzZSBBWElTX1NDUkVFTkhFSUdIVERQOgotICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5zY3JlZW5IZWlnaHREcDsKLSAgICAgICAgY2FzZSBBWElTX1ZFUlNJT046Ci0gICAgICAgICAgICByZXR1cm4gY29uZmlnLnZlcnNpb247Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotCi1ib29sCi1BYXB0R3JvdXBFbnRyeTo6Y29uZmlnU2FtZUV4Y2VwdChjb25zdCBSZXNUYWJsZV9jb25maWcmIGNvbmZpZywKLSAgICAgICAgY29uc3QgUmVzVGFibGVfY29uZmlnJiBvdGhlckNvbmZpZywgaW50IGF4aXMpCi17Ci0gICAgZm9yIChpbnQgaT1BWElTX1NUQVJUOyBpPD1BWElTX0VORDsgaSsrKSB7Ci0gICAgICAgIGlmIChpID09IGF4aXMpIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChnZXRDb25maWdWYWx1ZUZvckF4aXMoY29uZmlnLCBpKSAhPSBnZXRDb25maWdWYWx1ZUZvckF4aXMob3RoZXJDb25maWcsIGkpKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wKLUFhcHRHcm91cEVudHJ5Ojppbml0RnJvbURpck5hbWUoY29uc3QgY2hhciogZGlyLCBTdHJpbmc4KiByZXNUeXBlKQotewotICAgIG1QYXJhbXNDaGFuZ2VkID0gdHJ1ZTsKLQotICAgIFZlY3RvcjxTdHJpbmc4PiBwYXJ0czsKLQotICAgIFN0cmluZzggbWNjLCBtbmMsIGxvYywgbGF5b3V0c2l6ZSwgbGF5b3V0bG9uZywgb3JpZW50LCBkZW47Ci0gICAgU3RyaW5nOCB0b3VjaCwga2V5LCBrZXlzSGlkZGVuLCBuYXYsIG5hdkhpZGRlbiwgc2l6ZSwgbGF5b3V0RGlyLCB2ZXJzOwotICAgIFN0cmluZzggdWlNb2RlVHlwZSwgdWlNb2RlTmlnaHQsIHNtYWxsZXN0d2lkdGhkcCwgd2lkdGhkcCwgaGVpZ2h0ZHA7Ci0KLSAgICBjb25zdCBjaGFyICpwID0gZGlyOwotICAgIGNvbnN0IGNoYXIgKnE7Ci0gICAgd2hpbGUgKE5VTEwgIT0gKHEgPSBzdHJjaHIocCwgJy0nKSkpIHsKLSAgICAgICAgU3RyaW5nOCB2YWwocCwgcS1wKTsKLSAgICAgICAgdmFsLnRvTG93ZXIoKTsKLSAgICAgICAgcGFydHMuYWRkKHZhbCk7Ci0gICAgICAgIC8vcHJpbnRmKCJwYXJ0OiAlc1xuIiwgcGFydHNbcGFydHMuc2l6ZSgpLTFdLnN0cmluZygpKTsKLSAgICAgICAgcCA9IHErMTsKLSAgICB9Ci0gICAgU3RyaW5nOCB2YWwocCk7Ci0gICAgdmFsLnRvTG93ZXIoKTsKLSAgICBwYXJ0cy5hZGQodmFsKTsKLSAgICAvL3ByaW50ZigicGFydDogJXNcbiIsIHBhcnRzW3BhcnRzLnNpemUoKS0xXS5zdHJpbmcoKSk7Ci0KLSAgICBjb25zdCBpbnQgTiA9IHBhcnRzLnNpemUoKTsKLSAgICBpbnQgaW5kZXggPSAwOwotICAgIFN0cmluZzggcGFydCA9IHBhcnRzW2luZGV4XTsKLQotICAgIC8vIHJlc291cmNlIHR5cGUKLSAgICBpZiAoIWlzVmFsaWRSZXNvdXJjZVR5cGUocGFydCkpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAqcmVzVHlwZSA9IHBhcnQ7Ci0KLSAgICBpbmRleCsrOwotICAgIGlmIChpbmRleCA9PSBOKSB7Ci0gICAgICAgIGdvdG8gc3VjY2VzczsKLSAgICB9Ci0gICAgcGFydCA9IHBhcnRzW2luZGV4XTsKLQotICAgIC8vIGltc2kgLSBtY2MKLSAgICBpZiAoZ2V0TWNjTmFtZShwYXJ0LnN0cmluZygpKSkgewotICAgICAgICBtY2MgPSBwYXJ0OwotCi0gICAgICAgIGluZGV4Kys7Ci0gICAgICAgIGlmIChpbmRleCA9PSBOKSB7Ci0gICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7Ci0gICAgICAgIH0KLSAgICAgICAgcGFydCA9IHBhcnRzW2luZGV4XTsKLSAgICB9IGVsc2UgewotICAgICAgICAvL3ByaW50Zigibm90IG1jYzogJXNcbiIsIHBhcnQuc3RyaW5nKCkpOwotICAgIH0KLQotICAgIC8vIGltc2kgLSBtbmMKLSAgICBpZiAoZ2V0TW5jTmFtZShwYXJ0LnN0cmluZygpKSkgewotICAgICAgICBtbmMgPSBwYXJ0OwotCi0gICAgICAgIGluZGV4Kys7Ci0gICAgICAgIGlmIChpbmRleCA9PSBOKSB7Ci0gICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7Ci0gICAgICAgIH0KLSAgICAgICAgcGFydCA9IHBhcnRzW2luZGV4XTsKLSAgICB9IGVsc2UgewotICAgICAgICAvL3ByaW50Zigibm90IG1jYzogJXNcbiIsIHBhcnQuc3RyaW5nKCkpOwotICAgIH0KLQotICAgIC8vIGxvY2FsZSAtIGxhbmd1YWdlCi0gICAgaWYgKHBhcnQubGVuZ3RoKCkgPT0gMiAmJiBpc2FscGhhKHBhcnRbMF0pICYmIGlzYWxwaGEocGFydFsxXSkpIHsKLSAgICAgICAgbG9jID0gcGFydDsKLQotICAgICAgICBpbmRleCsrOwotICAgICAgICBpZiAoaW5kZXggPT0gTikgewotICAgICAgICAgICAgZ290byBzdWNjZXNzOwotICAgICAgICB9Ci0gICAgICAgIHBhcnQgPSBwYXJ0c1tpbmRleF07Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy9wcmludGYoIm5vdCBsYW5ndWFnZTogJXNcbiIsIHBhcnQuc3RyaW5nKCkpOwotICAgIH0KLQotICAgIC8vIGxvY2FsZSAtIHJlZ2lvbgotICAgIGlmIChsb2MubGVuZ3RoKCkgPiAwCi0gICAgICAgICAgICAmJiBwYXJ0Lmxlbmd0aCgpID09IDMgJiYgcGFydFswXSA9PSAncicgJiYgcGFydFswXSAmJiBwYXJ0WzFdKSB7Ci0gICAgICAgIGxvYyArPSAiLSI7Ci0gICAgICAgIHBhcnQudG9VcHBlcigpOwotICAgICAgICBsb2MgKz0gcGFydC5zdHJpbmcoKSArIDE7Ci0KLSAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgaWYgKGluZGV4ID09IE4pIHsKLSAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKLSAgICAgICAgfQotICAgICAgICBwYXJ0ID0gcGFydHNbaW5kZXhdOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vcHJpbnRmKCJub3QgcmVnaW9uOiAlc1xuIiwgcGFydC5zdHJpbmcoKSk7Ci0gICAgfQotCi0gICAgaWYgKGdldExheW91dERpcmVjdGlvbk5hbWUocGFydC5zdHJpbmcoKSkpIHsKLSAgICAgICAgbGF5b3V0RGlyID0gcGFydDsKLQotICAgICAgICBpbmRleCsrOwotICAgICAgICBpZiAoaW5kZXggPT0gTikgewotICAgICAgICAgICAgZ290byBzdWNjZXNzOwotICAgICAgICB9Ci0gICAgICAgIHBhcnQgPSBwYXJ0c1tpbmRleF07Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy9wcmludGYoIm5vdCBsYXlvdXQgZGlyZWN0aW9uOiAlc1xuIiwgcGFydC5zdHJpbmcoKSk7Ci0gICAgfQotCi0gICAgaWYgKGdldFNtYWxsZXN0U2NyZWVuV2lkdGhEcE5hbWUocGFydC5zdHJpbmcoKSkpIHsKLSAgICAgICAgc21hbGxlc3R3aWR0aGRwID0gcGFydDsKLQotICAgICAgICBpbmRleCsrOwotICAgICAgICBpZiAoaW5kZXggPT0gTikgewotICAgICAgICAgICAgZ290byBzdWNjZXNzOwotICAgICAgICB9Ci0gICAgICAgIHBhcnQgPSBwYXJ0c1tpbmRleF07Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy9wcmludGYoIm5vdCBzbWFsbGVzdCBzY3JlZW4gd2lkdGggZHA6ICVzXG4iLCBwYXJ0LnN0cmluZygpKTsKLSAgICB9Ci0KLSAgICBpZiAoZ2V0U2NyZWVuV2lkdGhEcE5hbWUocGFydC5zdHJpbmcoKSkpIHsKLSAgICAgICAgd2lkdGhkcCA9IHBhcnQ7Ci0KLSAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgaWYgKGluZGV4ID09IE4pIHsKLSAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKLSAgICAgICAgfQotICAgICAgICBwYXJ0ID0gcGFydHNbaW5kZXhdOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vcHJpbnRmKCJub3Qgc2NyZWVuIHdpZHRoIGRwOiAlc1xuIiwgcGFydC5zdHJpbmcoKSk7Ci0gICAgfQotCi0gICAgaWYgKGdldFNjcmVlbkhlaWdodERwTmFtZShwYXJ0LnN0cmluZygpKSkgewotICAgICAgICBoZWlnaHRkcCA9IHBhcnQ7Ci0KLSAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgaWYgKGluZGV4ID09IE4pIHsKLSAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKLSAgICAgICAgfQotICAgICAgICBwYXJ0ID0gcGFydHNbaW5kZXhdOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vcHJpbnRmKCJub3Qgc2NyZWVuIGhlaWdodCBkcDogJXNcbiIsIHBhcnQuc3RyaW5nKCkpOwotICAgIH0KLQotICAgIGlmIChnZXRTY3JlZW5MYXlvdXRTaXplTmFtZShwYXJ0LnN0cmluZygpKSkgewotICAgICAgICBsYXlvdXRzaXplID0gcGFydDsKLQotICAgICAgICBpbmRleCsrOwotICAgICAgICBpZiAoaW5kZXggPT0gTikgewotICAgICAgICAgICAgZ290byBzdWNjZXNzOwotICAgICAgICB9Ci0gICAgICAgIHBhcnQgPSBwYXJ0c1tpbmRleF07Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy9wcmludGYoIm5vdCBzY3JlZW4gbGF5b3V0IHNpemU6ICVzXG4iLCBwYXJ0LnN0cmluZygpKTsKLSAgICB9Ci0KLSAgICBpZiAoZ2V0U2NyZWVuTGF5b3V0TG9uZ05hbWUocGFydC5zdHJpbmcoKSkpIHsKLSAgICAgICAgbGF5b3V0bG9uZyA9IHBhcnQ7Ci0KLSAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgaWYgKGluZGV4ID09IE4pIHsKLSAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKLSAgICAgICAgfQotICAgICAgICBwYXJ0ID0gcGFydHNbaW5kZXhdOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vcHJpbnRmKCJub3Qgc2NyZWVuIGxheW91dCBsb25nOiAlc1xuIiwgcGFydC5zdHJpbmcoKSk7Ci0gICAgfQotCi0gICAgLy8gb3JpZW50YXRpb24KLSAgICBpZiAoZ2V0T3JpZW50YXRpb25OYW1lKHBhcnQuc3RyaW5nKCkpKSB7Ci0gICAgICAgIG9yaWVudCA9IHBhcnQ7Ci0KLSAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgaWYgKGluZGV4ID09IE4pIHsKLSAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKLSAgICAgICAgfQotICAgICAgICBwYXJ0ID0gcGFydHNbaW5kZXhdOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vcHJpbnRmKCJub3Qgb3JpZW50YXRpb246ICVzXG4iLCBwYXJ0LnN0cmluZygpKTsKLSAgICB9Ci0KLSAgICAvLyB1aSBtb2RlIHR5cGUKLSAgICBpZiAoZ2V0VWlNb2RlVHlwZU5hbWUocGFydC5zdHJpbmcoKSkpIHsKLSAgICAgICAgdWlNb2RlVHlwZSA9IHBhcnQ7Ci0KLSAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgaWYgKGluZGV4ID09IE4pIHsKLSAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKLSAgICAgICAgfQotICAgICAgICBwYXJ0ID0gcGFydHNbaW5kZXhdOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vcHJpbnRmKCJub3QgdWkgbW9kZSB0eXBlOiAlc1xuIiwgcGFydC5zdHJpbmcoKSk7Ci0gICAgfQotCi0gICAgLy8gdWkgbW9kZSBuaWdodAotICAgIGlmIChnZXRVaU1vZGVOaWdodE5hbWUocGFydC5zdHJpbmcoKSkpIHsKLSAgICAgICAgdWlNb2RlTmlnaHQgPSBwYXJ0OwotCi0gICAgICAgIGluZGV4Kys7Ci0gICAgICAgIGlmIChpbmRleCA9PSBOKSB7Ci0gICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7Ci0gICAgICAgIH0KLSAgICAgICAgcGFydCA9IHBhcnRzW2luZGV4XTsKLSAgICB9IGVsc2UgewotICAgICAgICAvL3ByaW50Zigibm90IHVpIG1vZGUgbmlnaHQ6ICVzXG4iLCBwYXJ0LnN0cmluZygpKTsKLSAgICB9Ci0KLSAgICAvLyBkZW5zaXR5Ci0gICAgaWYgKGdldERlbnNpdHlOYW1lKHBhcnQuc3RyaW5nKCkpKSB7Ci0gICAgICAgIGRlbiA9IHBhcnQ7Ci0KLSAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgaWYgKGluZGV4ID09IE4pIHsKLSAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKLSAgICAgICAgfQotICAgICAgICBwYXJ0ID0gcGFydHNbaW5kZXhdOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vcHJpbnRmKCJub3QgZGVuc2l0eTogJXNcbiIsIHBhcnQuc3RyaW5nKCkpOwotICAgIH0KLQotICAgIC8vIHRvdWNoc2NyZWVuCi0gICAgaWYgKGdldFRvdWNoc2NyZWVuTmFtZShwYXJ0LnN0cmluZygpKSkgewotICAgICAgICB0b3VjaCA9IHBhcnQ7Ci0KLSAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgaWYgKGluZGV4ID09IE4pIHsKLSAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKLSAgICAgICAgfQotICAgICAgICBwYXJ0ID0gcGFydHNbaW5kZXhdOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vcHJpbnRmKCJub3QgdG91Y2hzY3JlZW46ICVzXG4iLCBwYXJ0LnN0cmluZygpKTsKLSAgICB9Ci0KLSAgICAvLyBrZXlib2FyZCBoaWRkZW4KLSAgICBpZiAoZ2V0S2V5c0hpZGRlbk5hbWUocGFydC5zdHJpbmcoKSkpIHsKLSAgICAgICAga2V5c0hpZGRlbiA9IHBhcnQ7Ci0KLSAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgaWYgKGluZGV4ID09IE4pIHsKLSAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKLSAgICAgICAgfQotICAgICAgICBwYXJ0ID0gcGFydHNbaW5kZXhdOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vcHJpbnRmKCJub3Qga2V5c0hpZGRlbjogJXNcbiIsIHBhcnQuc3RyaW5nKCkpOwotICAgIH0KLQotICAgIC8vIGtleWJvYXJkCi0gICAgaWYgKGdldEtleWJvYXJkTmFtZShwYXJ0LnN0cmluZygpKSkgewotICAgICAgICBrZXkgPSBwYXJ0OwotCi0gICAgICAgIGluZGV4Kys7Ci0gICAgICAgIGlmIChpbmRleCA9PSBOKSB7Ci0gICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7Ci0gICAgICAgIH0KLSAgICAgICAgcGFydCA9IHBhcnRzW2luZGV4XTsKLSAgICB9IGVsc2UgewotICAgICAgICAvL3ByaW50Zigibm90IGtleWJvYXJkOiAlc1xuIiwgcGFydC5zdHJpbmcoKSk7Ci0gICAgfQotCi0gICAgLy8gbmF2aWdhdGlvbiBoaWRkZW4KLSAgICBpZiAoZ2V0TmF2SGlkZGVuTmFtZShwYXJ0LnN0cmluZygpKSkgewotICAgICAgICBuYXZIaWRkZW4gPSBwYXJ0OwotCi0gICAgICAgIGluZGV4Kys7Ci0gICAgICAgIGlmIChpbmRleCA9PSBOKSB7Ci0gICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7Ci0gICAgICAgIH0KLSAgICAgICAgcGFydCA9IHBhcnRzW2luZGV4XTsKLSAgICB9IGVsc2UgewotICAgICAgICAvL3ByaW50Zigibm90IG5hdkhpZGRlbjogJXNcbiIsIHBhcnQuc3RyaW5nKCkpOwotICAgIH0KLQotICAgIGlmIChnZXROYXZpZ2F0aW9uTmFtZShwYXJ0LnN0cmluZygpKSkgewotICAgICAgICBuYXYgPSBwYXJ0OwotCi0gICAgICAgIGluZGV4Kys7Ci0gICAgICAgIGlmIChpbmRleCA9PSBOKSB7Ci0gICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7Ci0gICAgICAgIH0KLSAgICAgICAgcGFydCA9IHBhcnRzW2luZGV4XTsKLSAgICB9IGVsc2UgewotICAgICAgICAvL3ByaW50Zigibm90IG5hdmlnYXRpb246ICVzXG4iLCBwYXJ0LnN0cmluZygpKTsKLSAgICB9Ci0KLSAgICBpZiAoZ2V0U2NyZWVuU2l6ZU5hbWUocGFydC5zdHJpbmcoKSkpIHsKLSAgICAgICAgc2l6ZSA9IHBhcnQ7Ci0KLSAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgaWYgKGluZGV4ID09IE4pIHsKLSAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKLSAgICAgICAgfQotICAgICAgICBwYXJ0ID0gcGFydHNbaW5kZXhdOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vcHJpbnRmKCJub3Qgc2NyZWVuIHNpemU6ICVzXG4iLCBwYXJ0LnN0cmluZygpKTsKLSAgICB9Ci0KLSAgICBpZiAoZ2V0VmVyc2lvbk5hbWUocGFydC5zdHJpbmcoKSkpIHsKLSAgICAgICAgdmVycyA9IHBhcnQ7Ci0KLSAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgaWYgKGluZGV4ID09IE4pIHsKLSAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKLSAgICAgICAgfQotICAgICAgICBwYXJ0ID0gcGFydHNbaW5kZXhdOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vcHJpbnRmKCJub3QgdmVyc2lvbjogJXNcbiIsIHBhcnQuc3RyaW5nKCkpOwotICAgIH0KLQotICAgIC8vIGlmIHRoZXJlIGFyZSBleHRyYSBwYXJ0cywgaXQgZG9lc24ndCBtYXRjaAotICAgIHJldHVybiBmYWxzZTsKLQotc3VjY2VzczoKLSAgICB0aGlzLT5tY2MgPSBtY2M7Ci0gICAgdGhpcy0+bW5jID0gbW5jOwotICAgIHRoaXMtPmxvY2FsZSA9IGxvYzsKLSAgICB0aGlzLT5zY3JlZW5MYXlvdXRTaXplID0gbGF5b3V0c2l6ZTsKLSAgICB0aGlzLT5zY3JlZW5MYXlvdXRMb25nID0gbGF5b3V0bG9uZzsKLSAgICB0aGlzLT5zbWFsbGVzdFNjcmVlbldpZHRoRHAgPSBzbWFsbGVzdHdpZHRoZHA7Ci0gICAgdGhpcy0+c2NyZWVuV2lkdGhEcCA9IHdpZHRoZHA7Ci0gICAgdGhpcy0+c2NyZWVuSGVpZ2h0RHAgPSBoZWlnaHRkcDsKLSAgICB0aGlzLT5vcmllbnRhdGlvbiA9IG9yaWVudDsKLSAgICB0aGlzLT51aU1vZGVUeXBlID0gdWlNb2RlVHlwZTsKLSAgICB0aGlzLT51aU1vZGVOaWdodCA9IHVpTW9kZU5pZ2h0OwotICAgIHRoaXMtPmRlbnNpdHkgPSBkZW47Ci0gICAgdGhpcy0+dG91Y2hzY3JlZW4gPSB0b3VjaDsKLSAgICB0aGlzLT5rZXlzSGlkZGVuID0ga2V5c0hpZGRlbjsKLSAgICB0aGlzLT5rZXlib2FyZCA9IGtleTsKLSAgICB0aGlzLT5uYXZIaWRkZW4gPSBuYXZIaWRkZW47Ci0gICAgdGhpcy0+bmF2aWdhdGlvbiA9IG5hdjsKLSAgICB0aGlzLT5zY3JlZW5TaXplID0gc2l6ZTsKLSAgICB0aGlzLT5sYXlvdXREaXJlY3Rpb24gPSBsYXlvdXREaXI7Ci0gICAgdGhpcy0+dmVyc2lvbiA9IHZlcnM7Ci0KLSAgICAvLyB3aGF0IGlzIHRoaXMgYW55d2F5PwotICAgIHRoaXMtPnZlbmRvciA9ICIiOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLVN0cmluZzgKLUFhcHRHcm91cEVudHJ5Ojp0b1N0cmluZygpIGNvbnN0Ci17Ci0gICAgU3RyaW5nOCBzID0gdGhpcy0+bWNjOwotICAgIHMgKz0gIiwiOwotICAgIHMgKz0gdGhpcy0+bW5jOwotICAgIHMgKz0gIiwiOwotICAgIHMgKz0gdGhpcy0+bG9jYWxlOwotICAgIHMgKz0gIiwiOwotICAgIHMgKz0gbGF5b3V0RGlyZWN0aW9uOwotICAgIHMgKz0gIiwiOwotICAgIHMgKz0gc21hbGxlc3RTY3JlZW5XaWR0aERwOwotICAgIHMgKz0gIiwiOwotICAgIHMgKz0gc2NyZWVuV2lkdGhEcDsKLSAgICBzICs9ICIsIjsKLSAgICBzICs9IHNjcmVlbkhlaWdodERwOwotICAgIHMgKz0gIiwiOwotICAgIHMgKz0gc2NyZWVuTGF5b3V0U2l6ZTsKLSAgICBzICs9ICIsIjsKLSAgICBzICs9IHNjcmVlbkxheW91dExvbmc7Ci0gICAgcyArPSAiLCI7Ci0gICAgcyArPSB0aGlzLT5vcmllbnRhdGlvbjsKLSAgICBzICs9ICIsIjsKLSAgICBzICs9IHVpTW9kZVR5cGU7Ci0gICAgcyArPSAiLCI7Ci0gICAgcyArPSB1aU1vZGVOaWdodDsKLSAgICBzICs9ICIsIjsKLSAgICBzICs9IGRlbnNpdHk7Ci0gICAgcyArPSAiLCI7Ci0gICAgcyArPSB0b3VjaHNjcmVlbjsKLSAgICBzICs9ICIsIjsKLSAgICBzICs9IGtleXNIaWRkZW47Ci0gICAgcyArPSAiLCI7Ci0gICAgcyArPSBrZXlib2FyZDsKLSAgICBzICs9ICIsIjsKLSAgICBzICs9IG5hdkhpZGRlbjsKLSAgICBzICs9ICIsIjsKLSAgICBzICs9IG5hdmlnYXRpb247Ci0gICAgcyArPSAiLCI7Ci0gICAgcyArPSBzY3JlZW5TaXplOwotICAgIHMgKz0gIiwiOwotICAgIHMgKz0gdmVyc2lvbjsKLSAgICByZXR1cm4gczsKLX0KLQotU3RyaW5nOAotQWFwdEdyb3VwRW50cnk6OnRvRGlyTmFtZShjb25zdCBTdHJpbmc4JiByZXNUeXBlKSBjb25zdAotewotICAgIFN0cmluZzggcyA9IHJlc1R5cGU7Ci0gICAgaWYgKHRoaXMtPm1jYyAhPSAiIikgewotICAgICAgICBpZiAocy5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgICAgIHMgKz0gIi0iOwotICAgICAgICB9Ci0gICAgICAgIHMgKz0gbWNjOwotICAgIH0KLSAgICBpZiAodGhpcy0+bW5jICE9ICIiKSB7Ci0gICAgICAgIGlmIChzLmxlbmd0aCgpID4gMCkgewotICAgICAgICAgICAgcyArPSAiLSI7Ci0gICAgICAgIH0KLSAgICAgICAgcyArPSBtbmM7Ci0gICAgfQotICAgIGlmICh0aGlzLT5sb2NhbGUgIT0gIiIpIHsKLSAgICAgICAgaWYgKHMubGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgICAgICBzICs9ICItIjsKLSAgICAgICAgfQotICAgICAgICBzICs9IGxvY2FsZTsKLSAgICB9Ci0gICAgaWYgKHRoaXMtPmxheW91dERpcmVjdGlvbiAhPSAiIikgewotICAgICAgICBpZiAocy5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgICAgIHMgKz0gIi0iOwotICAgICAgICB9Ci0gICAgICAgIHMgKz0gbGF5b3V0RGlyZWN0aW9uOwotICAgIH0KLSAgICBpZiAodGhpcy0+c21hbGxlc3RTY3JlZW5XaWR0aERwICE9ICIiKSB7Ci0gICAgICAgIGlmIChzLmxlbmd0aCgpID4gMCkgewotICAgICAgICAgICAgcyArPSAiLSI7Ci0gICAgICAgIH0KLSAgICAgICAgcyArPSBzbWFsbGVzdFNjcmVlbldpZHRoRHA7Ci0gICAgfQotICAgIGlmICh0aGlzLT5zY3JlZW5XaWR0aERwICE9ICIiKSB7Ci0gICAgICAgIGlmIChzLmxlbmd0aCgpID4gMCkgewotICAgICAgICAgICAgcyArPSAiLSI7Ci0gICAgICAgIH0KLSAgICAgICAgcyArPSBzY3JlZW5XaWR0aERwOwotICAgIH0KLSAgICBpZiAodGhpcy0+c2NyZWVuSGVpZ2h0RHAgIT0gIiIpIHsKLSAgICAgICAgaWYgKHMubGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgICAgICBzICs9ICItIjsKLSAgICAgICAgfQotICAgICAgICBzICs9IHNjcmVlbkhlaWdodERwOwotICAgIH0KLSAgICBpZiAodGhpcy0+c2NyZWVuTGF5b3V0U2l6ZSAhPSAiIikgewotICAgICAgICBpZiAocy5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgICAgIHMgKz0gIi0iOwotICAgICAgICB9Ci0gICAgICAgIHMgKz0gc2NyZWVuTGF5b3V0U2l6ZTsKLSAgICB9Ci0gICAgaWYgKHRoaXMtPnNjcmVlbkxheW91dExvbmcgIT0gIiIpIHsKLSAgICAgICAgaWYgKHMubGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgICAgICBzICs9ICItIjsKLSAgICAgICAgfQotICAgICAgICBzICs9IHNjcmVlbkxheW91dExvbmc7Ci0gICAgfQotICAgIGlmICh0aGlzLT5vcmllbnRhdGlvbiAhPSAiIikgewotICAgICAgICBpZiAocy5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgICAgIHMgKz0gIi0iOwotICAgICAgICB9Ci0gICAgICAgIHMgKz0gb3JpZW50YXRpb247Ci0gICAgfQotICAgIGlmICh0aGlzLT51aU1vZGVUeXBlICE9ICIiKSB7Ci0gICAgICAgIGlmIChzLmxlbmd0aCgpID4gMCkgewotICAgICAgICAgICAgcyArPSAiLSI7Ci0gICAgICAgIH0KLSAgICAgICAgcyArPSB1aU1vZGVUeXBlOwotICAgIH0KLSAgICBpZiAodGhpcy0+dWlNb2RlTmlnaHQgIT0gIiIpIHsKLSAgICAgICAgaWYgKHMubGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgICAgICBzICs9ICItIjsKLSAgICAgICAgfQotICAgICAgICBzICs9IHVpTW9kZU5pZ2h0OwotICAgIH0KLSAgICBpZiAodGhpcy0+ZGVuc2l0eSAhPSAiIikgewotICAgICAgICBpZiAocy5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgICAgIHMgKz0gIi0iOwotICAgICAgICB9Ci0gICAgICAgIHMgKz0gZGVuc2l0eTsKLSAgICB9Ci0gICAgaWYgKHRoaXMtPnRvdWNoc2NyZWVuICE9ICIiKSB7Ci0gICAgICAgIGlmIChzLmxlbmd0aCgpID4gMCkgewotICAgICAgICAgICAgcyArPSAiLSI7Ci0gICAgICAgIH0KLSAgICAgICAgcyArPSB0b3VjaHNjcmVlbjsKLSAgICB9Ci0gICAgaWYgKHRoaXMtPmtleXNIaWRkZW4gIT0gIiIpIHsKLSAgICAgICAgaWYgKHMubGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgICAgICBzICs9ICItIjsKLSAgICAgICAgfQotICAgICAgICBzICs9IGtleXNIaWRkZW47Ci0gICAgfQotICAgIGlmICh0aGlzLT5rZXlib2FyZCAhPSAiIikgewotICAgICAgICBpZiAocy5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgICAgIHMgKz0gIi0iOwotICAgICAgICB9Ci0gICAgICAgIHMgKz0ga2V5Ym9hcmQ7Ci0gICAgfQotICAgIGlmICh0aGlzLT5uYXZIaWRkZW4gIT0gIiIpIHsKLSAgICAgICAgaWYgKHMubGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgICAgICBzICs9ICItIjsKLSAgICAgICAgfQotICAgICAgICBzICs9IG5hdkhpZGRlbjsKLSAgICB9Ci0gICAgaWYgKHRoaXMtPm5hdmlnYXRpb24gIT0gIiIpIHsKLSAgICAgICAgaWYgKHMubGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgICAgICBzICs9ICItIjsKLSAgICAgICAgfQotICAgICAgICBzICs9IG5hdmlnYXRpb247Ci0gICAgfQotICAgIGlmICh0aGlzLT5zY3JlZW5TaXplICE9ICIiKSB7Ci0gICAgICAgIGlmIChzLmxlbmd0aCgpID4gMCkgewotICAgICAgICAgICAgcyArPSAiLSI7Ci0gICAgICAgIH0KLSAgICAgICAgcyArPSBzY3JlZW5TaXplOwotICAgIH0KLSAgICBpZiAodGhpcy0+dmVyc2lvbiAhPSAiIikgewotICAgICAgICBpZiAocy5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgICAgIHMgKz0gIi0iOwotICAgICAgICB9Ci0gICAgICAgIHMgKz0gdmVyc2lvbjsKLSAgICB9Ci0KLSAgICByZXR1cm4gczsKLX0KLQotYm9vbCBBYXB0R3JvdXBFbnRyeTo6Z2V0TWNjTmFtZShjb25zdCBjaGFyKiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzVGFibGVfY29uZmlnKiBvdXQpCi17Ci0gICAgaWYgKHN0cmNtcChuYW1lLCBrV2lsZGNhcmROYW1lKSA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXQpIG91dC0+bWNjID0gMDsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGNvbnN0IGNoYXIqIGMgPSBuYW1lOwotICAgIGlmICh0b2xvd2VyKCpjKSAhPSAnbScpIHJldHVybiBmYWxzZTsKLSAgICBjKys7Ci0gICAgaWYgKHRvbG93ZXIoKmMpICE9ICdjJykgcmV0dXJuIGZhbHNlOwotICAgIGMrKzsKLSAgICBpZiAodG9sb3dlcigqYykgIT0gJ2MnKSByZXR1cm4gZmFsc2U7Ci0gICAgYysrOwotCi0gICAgY29uc3QgY2hhciogdmFsID0gYzsKLQotICAgIHdoaWxlICgqYyA+PSAnMCcgJiYgKmMgPD0gJzknKSB7Ci0gICAgICAgIGMrKzsKLSAgICB9Ci0gICAgaWYgKCpjICE9IDApIHJldHVybiBmYWxzZTsKLSAgICBpZiAoYy12YWwgIT0gMykgcmV0dXJuIGZhbHNlOwotCi0gICAgaW50IGQgPSBhdG9pKHZhbCk7Ci0gICAgaWYgKGQgIT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPm1jYyA9IGQ7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBBYXB0R3JvdXBFbnRyeTo6Z2V0TW5jTmFtZShjb25zdCBjaGFyKiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzVGFibGVfY29uZmlnKiBvdXQpCi17Ci0gICAgaWYgKHN0cmNtcChuYW1lLCBrV2lsZGNhcmROYW1lKSA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXQpIG91dC0+bWNjID0gMDsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGNvbnN0IGNoYXIqIGMgPSBuYW1lOwotICAgIGlmICh0b2xvd2VyKCpjKSAhPSAnbScpIHJldHVybiBmYWxzZTsKLSAgICBjKys7Ci0gICAgaWYgKHRvbG93ZXIoKmMpICE9ICduJykgcmV0dXJuIGZhbHNlOwotICAgIGMrKzsKLSAgICBpZiAodG9sb3dlcigqYykgIT0gJ2MnKSByZXR1cm4gZmFsc2U7Ci0gICAgYysrOwotCi0gICAgY29uc3QgY2hhciogdmFsID0gYzsKLQotICAgIHdoaWxlICgqYyA+PSAnMCcgJiYgKmMgPD0gJzknKSB7Ci0gICAgICAgIGMrKzsKLSAgICB9Ci0gICAgaWYgKCpjICE9IDApIHJldHVybiBmYWxzZTsKLSAgICBpZiAoYy12YWwgPT0gMCB8fCBjLXZhbCA+IDMpIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChvdXQpIHsKLSAgICAgICAgb3V0LT5tbmMgPSBhdG9pKHZhbCk7Ci0gICAgICAgIGlmIChvdXQtPm1uYyA9PSAwKSB7Ci0gICAgICAgICAgICBvdXQtPm1uYyA9IEFDT05GSUdVUkFUSU9OX01OQ19aRVJPOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLS8qCi0gKiBEb2VzIHRoaXMgZGlyZWN0b3J5IG5hbWUgZml0IHRoZSBwYXR0ZXJuIG9mIGEgbG9jYWxlIGRpciAoImVuLXJVUyIgb3IKLSAqICJkZWZhdWx0Iik/Ci0gKgotICogVE9ETzogU2hvdWxkIGluc2lzdCB0aGF0IHRoZSBmaXJzdCB0d28gbGV0dGVycyBhcmUgbG93ZXIgY2FzZSwgYW5kIHRoZQotICogc2Vjb25kIHR3byBhcmUgdXBwZXIuCi0gKi8KLWJvb2wgQWFwdEdyb3VwRW50cnk6OmdldExvY2FsZU5hbWUoY29uc3QgY2hhciogZmlsZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc1RhYmxlX2NvbmZpZyogb3V0KQotewotICAgIGlmIChzdHJjbXAoZmlsZU5hbWUsIGtXaWxkY2FyZE5hbWUpID09IDAKLSAgICAgICAgICAgIHx8IHN0cmNtcChmaWxlTmFtZSwga0RlZmF1bHRMb2NhbGUpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgewotICAgICAgICAgICAgb3V0LT5sYW5ndWFnZVswXSA9IDA7Ci0gICAgICAgICAgICBvdXQtPmxhbmd1YWdlWzFdID0gMDsKLSAgICAgICAgICAgIG91dC0+Y291bnRyeVswXSA9IDA7Ci0gICAgICAgICAgICBvdXQtPmNvdW50cnlbMV0gPSAwOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGlmIChzdHJsZW4oZmlsZU5hbWUpID09IDIgJiYgaXNhbHBoYShmaWxlTmFtZVswXSkgJiYgaXNhbHBoYShmaWxlTmFtZVsxXSkpIHsKLSAgICAgICAgaWYgKG91dCkgewotICAgICAgICAgICAgb3V0LT5sYW5ndWFnZVswXSA9IGZpbGVOYW1lWzBdOwotICAgICAgICAgICAgb3V0LT5sYW5ndWFnZVsxXSA9IGZpbGVOYW1lWzFdOwotICAgICAgICAgICAgb3V0LT5jb3VudHJ5WzBdID0gMDsKLSAgICAgICAgICAgIG91dC0+Y291bnRyeVsxXSA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgaWYgKHN0cmxlbihmaWxlTmFtZSkgPT0gNSAmJgotICAgICAgICBpc2FscGhhKGZpbGVOYW1lWzBdKSAmJgotICAgICAgICBpc2FscGhhKGZpbGVOYW1lWzFdKSAmJgotICAgICAgICBmaWxlTmFtZVsyXSA9PSAnLScgJiYKLSAgICAgICAgaXNhbHBoYShmaWxlTmFtZVszXSkgJiYKLSAgICAgICAgaXNhbHBoYShmaWxlTmFtZVs0XSkpIHsKLSAgICAgICAgaWYgKG91dCkgewotICAgICAgICAgICAgb3V0LT5sYW5ndWFnZVswXSA9IGZpbGVOYW1lWzBdOwotICAgICAgICAgICAgb3V0LT5sYW5ndWFnZVsxXSA9IGZpbGVOYW1lWzFdOwotICAgICAgICAgICAgb3V0LT5jb3VudHJ5WzBdID0gZmlsZU5hbWVbM107Ci0gICAgICAgICAgICBvdXQtPmNvdW50cnlbMV0gPSBmaWxlTmFtZVs0XTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgQWFwdEdyb3VwRW50cnk6OmdldExheW91dERpcmVjdGlvbk5hbWUoY29uc3QgY2hhciogbmFtZSwgUmVzVGFibGVfY29uZmlnKiBvdXQpCi17Ci0gICAgaWYgKHN0cmNtcChuYW1lLCBrV2lsZGNhcmROYW1lKSA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXQpIG91dC0+c2NyZWVuTGF5b3V0ID0KLSAgICAgICAgICAgICAgICAob3V0LT5zY3JlZW5MYXlvdXQmflJlc1RhYmxlX2NvbmZpZzo6TUFTS19MQVlPVVRESVIpCi0gICAgICAgICAgICAgICAgfCBSZXNUYWJsZV9jb25maWc6OkxBWU9VVERJUl9BTlk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0gZWxzZSBpZiAoc3RyY21wKG5hbWUsICJsZGx0ciIpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT5zY3JlZW5MYXlvdXQgPQotICAgICAgICAgICAgICAgIChvdXQtPnNjcmVlbkxheW91dCZ+UmVzVGFibGVfY29uZmlnOjpNQVNLX0xBWU9VVERJUikKLSAgICAgICAgICAgICAgICB8IFJlc1RhYmxlX2NvbmZpZzo6TEFZT1VURElSX0xUUjsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAobmFtZSwgImxkcnRsIikgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPnNjcmVlbkxheW91dCA9Ci0gICAgICAgICAgICAgICAgKG91dC0+c2NyZWVuTGF5b3V0Jn5SZXNUYWJsZV9jb25maWc6Ok1BU0tfTEFZT1VURElSKQotICAgICAgICAgICAgICAgIHwgUmVzVGFibGVfY29uZmlnOjpMQVlPVVRESVJfUlRMOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgQWFwdEdyb3VwRW50cnk6OmdldFNjcmVlbkxheW91dFNpemVOYW1lKGNvbnN0IGNoYXIqIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzVGFibGVfY29uZmlnKiBvdXQpCi17Ci0gICAgaWYgKHN0cmNtcChuYW1lLCBrV2lsZGNhcmROYW1lKSA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXQpIG91dC0+c2NyZWVuTGF5b3V0ID0KLSAgICAgICAgICAgICAgICAob3V0LT5zY3JlZW5MYXlvdXQmflJlc1RhYmxlX2NvbmZpZzo6TUFTS19TQ1JFRU5TSVpFKQotICAgICAgICAgICAgICAgIHwgUmVzVGFibGVfY29uZmlnOjpTQ1JFRU5TSVpFX0FOWTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAobmFtZSwgInNtYWxsIikgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPnNjcmVlbkxheW91dCA9Ci0gICAgICAgICAgICAgICAgKG91dC0+c2NyZWVuTGF5b3V0Jn5SZXNUYWJsZV9jb25maWc6Ok1BU0tfU0NSRUVOU0laRSkKLSAgICAgICAgICAgICAgICB8IFJlc1RhYmxlX2NvbmZpZzo6U0NSRUVOU0laRV9TTUFMTDsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAobmFtZSwgIm5vcm1hbCIpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT5zY3JlZW5MYXlvdXQgPQotICAgICAgICAgICAgICAgIChvdXQtPnNjcmVlbkxheW91dCZ+UmVzVGFibGVfY29uZmlnOjpNQVNLX1NDUkVFTlNJWkUpCi0gICAgICAgICAgICAgICAgfCBSZXNUYWJsZV9jb25maWc6OlNDUkVFTlNJWkVfTk9STUFMOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAibGFyZ2UiKSA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXQpIG91dC0+c2NyZWVuTGF5b3V0ID0KLSAgICAgICAgICAgICAgICAob3V0LT5zY3JlZW5MYXlvdXQmflJlc1RhYmxlX2NvbmZpZzo6TUFTS19TQ1JFRU5TSVpFKQotICAgICAgICAgICAgICAgIHwgUmVzVGFibGVfY29uZmlnOjpTQ1JFRU5TSVpFX0xBUkdFOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAieGxhcmdlIikgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPnNjcmVlbkxheW91dCA9Ci0gICAgICAgICAgICAgICAgKG91dC0+c2NyZWVuTGF5b3V0Jn5SZXNUYWJsZV9jb25maWc6Ok1BU0tfU0NSRUVOU0laRSkKLSAgICAgICAgICAgICAgICB8IFJlc1RhYmxlX2NvbmZpZzo6U0NSRUVOU0laRV9YTEFSR0U7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBBYXB0R3JvdXBFbnRyeTo6Z2V0U2NyZWVuTGF5b3V0TG9uZ05hbWUoY29uc3QgY2hhciogbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNUYWJsZV9jb25maWcqIG91dCkKLXsKLSAgICBpZiAoc3RyY21wKG5hbWUsIGtXaWxkY2FyZE5hbWUpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT5zY3JlZW5MYXlvdXQgPQotICAgICAgICAgICAgICAgIChvdXQtPnNjcmVlbkxheW91dCZ+UmVzVGFibGVfY29uZmlnOjpNQVNLX1NDUkVFTkxPTkcpCi0gICAgICAgICAgICAgICAgfCBSZXNUYWJsZV9jb25maWc6OlNDUkVFTkxPTkdfQU5ZOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAibG9uZyIpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT5zY3JlZW5MYXlvdXQgPQotICAgICAgICAgICAgICAgIChvdXQtPnNjcmVlbkxheW91dCZ+UmVzVGFibGVfY29uZmlnOjpNQVNLX1NDUkVFTkxPTkcpCi0gICAgICAgICAgICAgICAgfCBSZXNUYWJsZV9jb25maWc6OlNDUkVFTkxPTkdfWUVTOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAibm90bG9uZyIpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT5zY3JlZW5MYXlvdXQgPQotICAgICAgICAgICAgICAgIChvdXQtPnNjcmVlbkxheW91dCZ+UmVzVGFibGVfY29uZmlnOjpNQVNLX1NDUkVFTkxPTkcpCi0gICAgICAgICAgICAgICAgfCBSZXNUYWJsZV9jb25maWc6OlNDUkVFTkxPTkdfTk87Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBBYXB0R3JvdXBFbnRyeTo6Z2V0T3JpZW50YXRpb25OYW1lKGNvbnN0IGNoYXIqIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzVGFibGVfY29uZmlnKiBvdXQpCi17Ci0gICAgaWYgKHN0cmNtcChuYW1lLCBrV2lsZGNhcmROYW1lKSA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXQpIG91dC0+b3JpZW50YXRpb24gPSBvdXQtPk9SSUVOVEFUSU9OX0FOWTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAobmFtZSwgInBvcnQiKSA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXQpIG91dC0+b3JpZW50YXRpb24gPSBvdXQtPk9SSUVOVEFUSU9OX1BPUlQ7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0gZWxzZSBpZiAoc3RyY21wKG5hbWUsICJsYW5kIikgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPm9yaWVudGF0aW9uID0gb3V0LT5PUklFTlRBVElPTl9MQU5EOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAic3F1YXJlIikgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPm9yaWVudGF0aW9uID0gb3V0LT5PUklFTlRBVElPTl9TUVVBUkU7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBBYXB0R3JvdXBFbnRyeTo6Z2V0VWlNb2RlVHlwZU5hbWUoY29uc3QgY2hhciogbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc1RhYmxlX2NvbmZpZyogb3V0KQotewotICAgIGlmIChzdHJjbXAobmFtZSwga1dpbGRjYXJkTmFtZSkgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPnVpTW9kZSA9Ci0gICAgICAgICAgICAgICAgKG91dC0+dWlNb2RlJn5SZXNUYWJsZV9jb25maWc6Ok1BU0tfVUlfTU9ERV9UWVBFKQotICAgICAgICAgICAgICAgIHwgUmVzVGFibGVfY29uZmlnOjpVSV9NT0RFX1RZUEVfQU5ZOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAiZGVzayIpID09IDApIHsKLSAgICAgIGlmIChvdXQpIG91dC0+dWlNb2RlID0KLSAgICAgICAgICAgICAgKG91dC0+dWlNb2RlJn5SZXNUYWJsZV9jb25maWc6Ok1BU0tfVUlfTU9ERV9UWVBFKQotICAgICAgICAgICAgICB8IFJlc1RhYmxlX2NvbmZpZzo6VUlfTU9ERV9UWVBFX0RFU0s7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0gZWxzZSBpZiAoc3RyY21wKG5hbWUsICJjYXIiKSA9PSAwKSB7Ci0gICAgICBpZiAob3V0KSBvdXQtPnVpTW9kZSA9Ci0gICAgICAgICAgICAgIChvdXQtPnVpTW9kZSZ+UmVzVGFibGVfY29uZmlnOjpNQVNLX1VJX01PREVfVFlQRSkKLSAgICAgICAgICAgICAgfCBSZXNUYWJsZV9jb25maWc6OlVJX01PREVfVFlQRV9DQVI7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0gZWxzZSBpZiAoc3RyY21wKG5hbWUsICJ0ZWxldmlzaW9uIikgPT0gMCkgewotICAgICAgaWYgKG91dCkgb3V0LT51aU1vZGUgPQotICAgICAgICAgICAgICAob3V0LT51aU1vZGUmflJlc1RhYmxlX2NvbmZpZzo6TUFTS19VSV9NT0RFX1RZUEUpCi0gICAgICAgICAgICAgIHwgUmVzVGFibGVfY29uZmlnOjpVSV9NT0RFX1RZUEVfVEVMRVZJU0lPTjsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAobmFtZSwgImFwcGxpYW5jZSIpID09IDApIHsKLSAgICAgIGlmIChvdXQpIG91dC0+dWlNb2RlID0KLSAgICAgICAgICAgICAgKG91dC0+dWlNb2RlJn5SZXNUYWJsZV9jb25maWc6Ok1BU0tfVUlfTU9ERV9UWVBFKQotICAgICAgICAgICAgICB8IFJlc1RhYmxlX2NvbmZpZzo6VUlfTU9ERV9UWVBFX0FQUExJQU5DRTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIEFhcHRHcm91cEVudHJ5OjpnZXRVaU1vZGVOaWdodE5hbWUoY29uc3QgY2hhciogbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc1RhYmxlX2NvbmZpZyogb3V0KQotewotICAgIGlmIChzdHJjbXAobmFtZSwga1dpbGRjYXJkTmFtZSkgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPnVpTW9kZSA9Ci0gICAgICAgICAgICAgICAgKG91dC0+dWlNb2RlJn5SZXNUYWJsZV9jb25maWc6Ok1BU0tfVUlfTU9ERV9OSUdIVCkKLSAgICAgICAgICAgICAgICB8IFJlc1RhYmxlX2NvbmZpZzo6VUlfTU9ERV9OSUdIVF9BTlk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0gZWxzZSBpZiAoc3RyY21wKG5hbWUsICJuaWdodCIpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT51aU1vZGUgPQotICAgICAgICAgICAgICAgIChvdXQtPnVpTW9kZSZ+UmVzVGFibGVfY29uZmlnOjpNQVNLX1VJX01PREVfTklHSFQpCi0gICAgICAgICAgICAgICAgfCBSZXNUYWJsZV9jb25maWc6OlVJX01PREVfTklHSFRfWUVTOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAibm90bmlnaHQiKSA9PSAwKSB7Ci0gICAgICBpZiAob3V0KSBvdXQtPnVpTW9kZSA9Ci0gICAgICAgICAgICAgIChvdXQtPnVpTW9kZSZ+UmVzVGFibGVfY29uZmlnOjpNQVNLX1VJX01PREVfTklHSFQpCi0gICAgICAgICAgICAgIHwgUmVzVGFibGVfY29uZmlnOjpVSV9NT0RFX05JR0hUX05POwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgQWFwdEdyb3VwRW50cnk6OmdldERlbnNpdHlOYW1lKGNvbnN0IGNoYXIqIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNUYWJsZV9jb25maWcqIG91dCkKLXsKLSAgICBpZiAoc3RyY21wKG5hbWUsIGtXaWxkY2FyZE5hbWUpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT5kZW5zaXR5ID0gUmVzVGFibGVfY29uZmlnOjpERU5TSVRZX0RFRkFVTFQ7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICBpZiAoc3RyY21wKG5hbWUsICJub2RwaSIpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT5kZW5zaXR5ID0gUmVzVGFibGVfY29uZmlnOjpERU5TSVRZX05PTkU7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICBpZiAoc3RyY21wKG5hbWUsICJsZHBpIikgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPmRlbnNpdHkgPSBSZXNUYWJsZV9jb25maWc6OkRFTlNJVFlfTE9XOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHN0cmNtcChuYW1lLCAibWRwaSIpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT5kZW5zaXR5ID0gUmVzVGFibGVfY29uZmlnOjpERU5TSVRZX01FRElVTTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIAotICAgIGlmIChzdHJjbXAobmFtZSwgInR2ZHBpIikgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPmRlbnNpdHkgPSBSZXNUYWJsZV9jb25maWc6OkRFTlNJVFlfVFY7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICBpZiAoc3RyY21wKG5hbWUsICJoZHBpIikgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPmRlbnNpdHkgPSBSZXNUYWJsZV9jb25maWc6OkRFTlNJVFlfSElHSDsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgaWYgKHN0cmNtcChuYW1lLCAieGhkcGkiKSA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXQpIG91dC0+ZGVuc2l0eSA9IFJlc1RhYmxlX2NvbmZpZzo6REVOU0lUWV9YSElHSDsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgaWYgKHN0cmNtcChuYW1lLCAieHhoZHBpIikgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPmRlbnNpdHkgPSBSZXNUYWJsZV9jb25maWc6OkRFTlNJVFlfWFhISUdIOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBpZiAoc3RyY21wKG5hbWUsICJ4eHhoZHBpIikgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPmRlbnNpdHkgPSBSZXNUYWJsZV9jb25maWc6OkRFTlNJVFlfWFhYSElHSDsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgY2hhciogYyA9IChjaGFyKiluYW1lOwotICAgIHdoaWxlICgqYyA+PSAnMCcgJiYgKmMgPD0gJzknKSB7Ci0gICAgICAgIGMrKzsKLSAgICB9Ci0KLSAgICAvLyBjaGVjayB0aGF0IHdlIGhhdmUgJ2RwaScgYWZ0ZXIgdGhlIGxhc3QgZGlnaXQuCi0gICAgaWYgKHRvdXBwZXIoY1swXSkgIT0gJ0QnIHx8Ci0gICAgICAgICAgICB0b3VwcGVyKGNbMV0pICE9ICdQJyB8fAotICAgICAgICAgICAgdG91cHBlcihjWzJdKSAhPSAnSScgfHwKLSAgICAgICAgICAgIGNbM10gIT0gMCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgLy8gdGVtcG9yYXJpbHkgcmVwbGFjZSB0aGUgZmlyc3QgbGV0dGVyIHdpdGggXDAgdG8KLSAgICAvLyB1c2UgYXRvaS4KLSAgICBjaGFyIHRtcCA9IGNbMF07Ci0gICAgY1swXSA9ICdcMCc7Ci0KLSAgICBpbnQgZCA9IGF0b2kobmFtZSk7Ci0gICAgY1swXSA9IHRtcDsKLQotICAgIGlmIChkICE9IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT5kZW5zaXR5ID0gZDsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIEFhcHRHcm91cEVudHJ5OjpnZXRUb3VjaHNjcmVlbk5hbWUoY29uc3QgY2hhciogbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNUYWJsZV9jb25maWcqIG91dCkKLXsKLSAgICBpZiAoc3RyY21wKG5hbWUsIGtXaWxkY2FyZE5hbWUpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT50b3VjaHNjcmVlbiA9IG91dC0+VE9VQ0hTQ1JFRU5fQU5ZOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAibm90b3VjaCIpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT50b3VjaHNjcmVlbiA9IG91dC0+VE9VQ0hTQ1JFRU5fTk9UT1VDSDsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAobmFtZSwgInN0eWx1cyIpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT50b3VjaHNjcmVlbiA9IG91dC0+VE9VQ0hTQ1JFRU5fU1RZTFVTOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAiZmluZ2VyIikgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPnRvdWNoc2NyZWVuID0gb3V0LT5UT1VDSFNDUkVFTl9GSU5HRVI7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBBYXB0R3JvdXBFbnRyeTo6Z2V0S2V5c0hpZGRlbk5hbWUoY29uc3QgY2hhciogbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc1RhYmxlX2NvbmZpZyogb3V0KQotewotICAgIHVpbnQ4X3QgbWFzayA9IDA7Ci0gICAgdWludDhfdCB2YWx1ZSA9IDA7Ci0gICAgaWYgKHN0cmNtcChuYW1lLCBrV2lsZGNhcmROYW1lKSA9PSAwKSB7Ci0gICAgICAgIG1hc2sgPSBSZXNUYWJsZV9jb25maWc6Ok1BU0tfS0VZU0hJRERFTjsKLSAgICAgICAgdmFsdWUgPSBSZXNUYWJsZV9jb25maWc6OktFWVNISURERU5fQU5ZOwotICAgIH0gZWxzZSBpZiAoc3RyY21wKG5hbWUsICJrZXlzZXhwb3NlZCIpID09IDApIHsKLSAgICAgICAgbWFzayA9IFJlc1RhYmxlX2NvbmZpZzo6TUFTS19LRVlTSElEREVOOwotICAgICAgICB2YWx1ZSA9IFJlc1RhYmxlX2NvbmZpZzo6S0VZU0hJRERFTl9OTzsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAia2V5c2hpZGRlbiIpID09IDApIHsKLSAgICAgICAgbWFzayA9IFJlc1RhYmxlX2NvbmZpZzo6TUFTS19LRVlTSElEREVOOwotICAgICAgICB2YWx1ZSA9IFJlc1RhYmxlX2NvbmZpZzo6S0VZU0hJRERFTl9ZRVM7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAobmFtZSwgImtleXNzb2Z0IikgPT0gMCkgewotICAgICAgICBtYXNrID0gUmVzVGFibGVfY29uZmlnOjpNQVNLX0tFWVNISURERU47Ci0gICAgICAgIHZhbHVlID0gUmVzVGFibGVfY29uZmlnOjpLRVlTSElEREVOX1NPRlQ7Ci0gICAgfQotCi0gICAgaWYgKG1hc2sgIT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPmlucHV0RmxhZ3MgPSAob3V0LT5pbnB1dEZsYWdzJn5tYXNrKSB8IHZhbHVlOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgQWFwdEdyb3VwRW50cnk6OmdldEtleWJvYXJkTmFtZShjb25zdCBjaGFyKiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc1RhYmxlX2NvbmZpZyogb3V0KQotewotICAgIGlmIChzdHJjbXAobmFtZSwga1dpbGRjYXJkTmFtZSkgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPmtleWJvYXJkID0gb3V0LT5LRVlCT0FSRF9BTlk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0gZWxzZSBpZiAoc3RyY21wKG5hbWUsICJub2tleXMiKSA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXQpIG91dC0+a2V5Ym9hcmQgPSBvdXQtPktFWUJPQVJEX05PS0VZUzsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAobmFtZSwgInF3ZXJ0eSIpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT5rZXlib2FyZCA9IG91dC0+S0VZQk9BUkRfUVdFUlRZOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAiMTJrZXkiKSA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXQpIG91dC0+a2V5Ym9hcmQgPSBvdXQtPktFWUJPQVJEXzEyS0VZOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgQWFwdEdyb3VwRW50cnk6OmdldE5hdkhpZGRlbk5hbWUoY29uc3QgY2hhciogbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc1RhYmxlX2NvbmZpZyogb3V0KQotewotICAgIHVpbnQ4X3QgbWFzayA9IDA7Ci0gICAgdWludDhfdCB2YWx1ZSA9IDA7Ci0gICAgaWYgKHN0cmNtcChuYW1lLCBrV2lsZGNhcmROYW1lKSA9PSAwKSB7Ci0gICAgICAgIG1hc2sgPSBSZXNUYWJsZV9jb25maWc6Ok1BU0tfTkFWSElEREVOOwotICAgICAgICB2YWx1ZSA9IFJlc1RhYmxlX2NvbmZpZzo6TkFWSElEREVOX0FOWTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAibmF2ZXhwb3NlZCIpID09IDApIHsKLSAgICAgICAgbWFzayA9IFJlc1RhYmxlX2NvbmZpZzo6TUFTS19OQVZISURERU47Ci0gICAgICAgIHZhbHVlID0gUmVzVGFibGVfY29uZmlnOjpOQVZISURERU5fTk87Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAobmFtZSwgIm5hdmhpZGRlbiIpID09IDApIHsKLSAgICAgICAgbWFzayA9IFJlc1RhYmxlX2NvbmZpZzo6TUFTS19OQVZISURERU47Ci0gICAgICAgIHZhbHVlID0gUmVzVGFibGVfY29uZmlnOjpOQVZISURERU5fWUVTOwotICAgIH0KLQotICAgIGlmIChtYXNrICE9IDApIHsKLSAgICAgICAgaWYgKG91dCkgb3V0LT5pbnB1dEZsYWdzID0gKG91dC0+aW5wdXRGbGFncyZ+bWFzaykgfCB2YWx1ZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIEFhcHRHcm91cEVudHJ5OjpnZXROYXZpZ2F0aW9uTmFtZShjb25zdCBjaGFyKiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc1RhYmxlX2NvbmZpZyogb3V0KQotewotICAgIGlmIChzdHJjbXAobmFtZSwga1dpbGRjYXJkTmFtZSkgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPm5hdmlnYXRpb24gPSBvdXQtPk5BVklHQVRJT05fQU5ZOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAibm9uYXYiKSA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXQpIG91dC0+bmF2aWdhdGlvbiA9IG91dC0+TkFWSUdBVElPTl9OT05BVjsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSBlbHNlIGlmIChzdHJjbXAobmFtZSwgImRwYWQiKSA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXQpIG91dC0+bmF2aWdhdGlvbiA9IG91dC0+TkFWSUdBVElPTl9EUEFEOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAidHJhY2tiYWxsIikgPT0gMCkgewotICAgICAgICBpZiAob3V0KSBvdXQtPm5hdmlnYXRpb24gPSBvdXQtPk5BVklHQVRJT05fVFJBQ0tCQUxMOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAid2hlZWwiKSA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXQpIG91dC0+bmF2aWdhdGlvbiA9IG91dC0+TkFWSUdBVElPTl9XSEVFTDsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIEFhcHRHcm91cEVudHJ5OjpnZXRTY3JlZW5TaXplTmFtZShjb25zdCBjaGFyKiBuYW1lLCBSZXNUYWJsZV9jb25maWcqIG91dCkKLXsKLSAgICBpZiAoc3RyY21wKG5hbWUsIGtXaWxkY2FyZE5hbWUpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgewotICAgICAgICAgICAgb3V0LT5zY3JlZW5XaWR0aCA9IG91dC0+U0NSRUVOV0lEVEhfQU5ZOwotICAgICAgICAgICAgb3V0LT5zY3JlZW5IZWlnaHQgPSBvdXQtPlNDUkVFTkhFSUdIVF9BTlk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgY29uc3QgY2hhciogeCA9IG5hbWU7Ci0gICAgd2hpbGUgKCp4ID49ICcwJyAmJiAqeCA8PSAnOScpIHgrKzsKLSAgICBpZiAoeCA9PSBuYW1lIHx8ICp4ICE9ICd4JykgcmV0dXJuIGZhbHNlOwotICAgIFN0cmluZzggeE5hbWUobmFtZSwgeC1uYW1lKTsKLSAgICB4Kys7Ci0KLSAgICBjb25zdCBjaGFyKiB5ID0geDsKLSAgICB3aGlsZSAoKnkgPj0gJzAnICYmICp5IDw9ICc5JykgeSsrOwotICAgIGlmICh5ID09IG5hbWUgfHwgKnkgIT0gMCkgcmV0dXJuIGZhbHNlOwotICAgIFN0cmluZzggeU5hbWUoeCwgeS14KTsKLQotICAgIHVpbnQxNl90IHcgPSAodWludDE2X3QpYXRvaSh4TmFtZS5zdHJpbmcoKSk7Ci0gICAgdWludDE2X3QgaCA9ICh1aW50MTZfdClhdG9pKHlOYW1lLnN0cmluZygpKTsKLSAgICBpZiAodyA8IGgpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGlmIChvdXQpIHsKLSAgICAgICAgb3V0LT5zY3JlZW5XaWR0aCA9IHc7Ci0gICAgICAgIG91dC0+c2NyZWVuSGVpZ2h0ID0gaDsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBBYXB0R3JvdXBFbnRyeTo6Z2V0U21hbGxlc3RTY3JlZW5XaWR0aERwTmFtZShjb25zdCBjaGFyKiBuYW1lLCBSZXNUYWJsZV9jb25maWcqIG91dCkKLXsKLSAgICBpZiAoc3RyY21wKG5hbWUsIGtXaWxkY2FyZE5hbWUpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgewotICAgICAgICAgICAgb3V0LT5zbWFsbGVzdFNjcmVlbldpZHRoRHAgPSBvdXQtPlNDUkVFTldJRFRIX0FOWTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBpZiAoKm5hbWUgIT0gJ3MnKSByZXR1cm4gZmFsc2U7Ci0gICAgbmFtZSsrOwotICAgIGlmICgqbmFtZSAhPSAndycpIHJldHVybiBmYWxzZTsKLSAgICBuYW1lKys7Ci0gICAgY29uc3QgY2hhciogeCA9IG5hbWU7Ci0gICAgd2hpbGUgKCp4ID49ICcwJyAmJiAqeCA8PSAnOScpIHgrKzsKLSAgICBpZiAoeCA9PSBuYW1lIHx8IHhbMF0gIT0gJ2QnIHx8IHhbMV0gIT0gJ3AnIHx8IHhbMl0gIT0gMCkgcmV0dXJuIGZhbHNlOwotICAgIFN0cmluZzggeE5hbWUobmFtZSwgeC1uYW1lKTsKLQotICAgIGlmIChvdXQpIHsKLSAgICAgICAgb3V0LT5zbWFsbGVzdFNjcmVlbldpZHRoRHAgPSAodWludDE2X3QpYXRvaSh4TmFtZS5zdHJpbmcoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgQWFwdEdyb3VwRW50cnk6OmdldFNjcmVlbldpZHRoRHBOYW1lKGNvbnN0IGNoYXIqIG5hbWUsIFJlc1RhYmxlX2NvbmZpZyogb3V0KQotewotICAgIGlmIChzdHJjbXAobmFtZSwga1dpbGRjYXJkTmFtZSkgPT0gMCkgewotICAgICAgICBpZiAob3V0KSB7Ci0gICAgICAgICAgICBvdXQtPnNjcmVlbldpZHRoRHAgPSBvdXQtPlNDUkVFTldJRFRIX0FOWTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBpZiAoKm5hbWUgIT0gJ3cnKSByZXR1cm4gZmFsc2U7Ci0gICAgbmFtZSsrOwotICAgIGNvbnN0IGNoYXIqIHggPSBuYW1lOwotICAgIHdoaWxlICgqeCA+PSAnMCcgJiYgKnggPD0gJzknKSB4Kys7Ci0gICAgaWYgKHggPT0gbmFtZSB8fCB4WzBdICE9ICdkJyB8fCB4WzFdICE9ICdwJyB8fCB4WzJdICE9IDApIHJldHVybiBmYWxzZTsKLSAgICBTdHJpbmc4IHhOYW1lKG5hbWUsIHgtbmFtZSk7Ci0KLSAgICBpZiAob3V0KSB7Ci0gICAgICAgIG91dC0+c2NyZWVuV2lkdGhEcCA9ICh1aW50MTZfdClhdG9pKHhOYW1lLnN0cmluZygpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBBYXB0R3JvdXBFbnRyeTo6Z2V0U2NyZWVuSGVpZ2h0RHBOYW1lKGNvbnN0IGNoYXIqIG5hbWUsIFJlc1RhYmxlX2NvbmZpZyogb3V0KQotewotICAgIGlmIChzdHJjbXAobmFtZSwga1dpbGRjYXJkTmFtZSkgPT0gMCkgewotICAgICAgICBpZiAob3V0KSB7Ci0gICAgICAgICAgICBvdXQtPnNjcmVlbkhlaWdodERwID0gb3V0LT5TQ1JFRU5XSURUSF9BTlk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgaWYgKCpuYW1lICE9ICdoJykgcmV0dXJuIGZhbHNlOwotICAgIG5hbWUrKzsKLSAgICBjb25zdCBjaGFyKiB4ID0gbmFtZTsKLSAgICB3aGlsZSAoKnggPj0gJzAnICYmICp4IDw9ICc5JykgeCsrOwotICAgIGlmICh4ID09IG5hbWUgfHwgeFswXSAhPSAnZCcgfHwgeFsxXSAhPSAncCcgfHwgeFsyXSAhPSAwKSByZXR1cm4gZmFsc2U7Ci0gICAgU3RyaW5nOCB4TmFtZShuYW1lLCB4LW5hbWUpOwotCi0gICAgaWYgKG91dCkgewotICAgICAgICBvdXQtPnNjcmVlbkhlaWdodERwID0gKHVpbnQxNl90KWF0b2koeE5hbWUuc3RyaW5nKCkpOwotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIEFhcHRHcm91cEVudHJ5OjpnZXRWZXJzaW9uTmFtZShjb25zdCBjaGFyKiBuYW1lLCBSZXNUYWJsZV9jb25maWcqIG91dCkKLXsKLSAgICBpZiAoc3RyY21wKG5hbWUsIGtXaWxkY2FyZE5hbWUpID09IDApIHsKLSAgICAgICAgaWYgKG91dCkgewotICAgICAgICAgICAgb3V0LT5zZGtWZXJzaW9uID0gb3V0LT5TREtWRVJTSU9OX0FOWTsKLSAgICAgICAgICAgIG91dC0+bWlub3JWZXJzaW9uID0gb3V0LT5NSU5PUlZFUlNJT05fQU5ZOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGlmICgqbmFtZSAhPSAndicpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIG5hbWUrKzsKLSAgICBjb25zdCBjaGFyKiBzID0gbmFtZTsKLSAgICB3aGlsZSAoKnMgPj0gJzAnICYmICpzIDw9ICc5JykgcysrOwotICAgIGlmIChzID09IG5hbWUgfHwgKnMgIT0gMCkgcmV0dXJuIGZhbHNlOwotICAgIFN0cmluZzggc2RrTmFtZShuYW1lLCBzLW5hbWUpOwotCi0gICAgaWYgKG91dCkgewotICAgICAgICBvdXQtPnNka1ZlcnNpb24gPSAodWludDE2X3QpYXRvaShzZGtOYW1lLnN0cmluZygpKTsKLSAgICAgICAgb3V0LT5taW5vclZlcnNpb24gPSAwOwotICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCi1pbnQgQWFwdEdyb3VwRW50cnk6OmNvbXBhcmUoY29uc3QgQWFwdEdyb3VwRW50cnkmIG8pIGNvbnN0Ci17Ci0gICAgaW50IHYgPSBtY2MuY29tcGFyZShvLm1jYyk7Ci0gICAgaWYgKHYgPT0gMCkgdiA9IG1uYy5jb21wYXJlKG8ubW5jKTsKLSAgICBpZiAodiA9PSAwKSB2ID0gbG9jYWxlLmNvbXBhcmUoby5sb2NhbGUpOwotICAgIGlmICh2ID09IDApIHYgPSBsYXlvdXREaXJlY3Rpb24uY29tcGFyZShvLmxheW91dERpcmVjdGlvbik7Ci0gICAgaWYgKHYgPT0gMCkgdiA9IHZlbmRvci5jb21wYXJlKG8udmVuZG9yKTsKLSAgICBpZiAodiA9PSAwKSB2ID0gc21hbGxlc3RTY3JlZW5XaWR0aERwLmNvbXBhcmUoby5zbWFsbGVzdFNjcmVlbldpZHRoRHApOwotICAgIGlmICh2ID09IDApIHYgPSBzY3JlZW5XaWR0aERwLmNvbXBhcmUoby5zY3JlZW5XaWR0aERwKTsKLSAgICBpZiAodiA9PSAwKSB2ID0gc2NyZWVuSGVpZ2h0RHAuY29tcGFyZShvLnNjcmVlbkhlaWdodERwKTsKLSAgICBpZiAodiA9PSAwKSB2ID0gc2NyZWVuTGF5b3V0U2l6ZS5jb21wYXJlKG8uc2NyZWVuTGF5b3V0U2l6ZSk7Ci0gICAgaWYgKHYgPT0gMCkgdiA9IHNjcmVlbkxheW91dExvbmcuY29tcGFyZShvLnNjcmVlbkxheW91dExvbmcpOwotICAgIGlmICh2ID09IDApIHYgPSBvcmllbnRhdGlvbi5jb21wYXJlKG8ub3JpZW50YXRpb24pOwotICAgIGlmICh2ID09IDApIHYgPSB1aU1vZGVUeXBlLmNvbXBhcmUoby51aU1vZGVUeXBlKTsKLSAgICBpZiAodiA9PSAwKSB2ID0gdWlNb2RlTmlnaHQuY29tcGFyZShvLnVpTW9kZU5pZ2h0KTsKLSAgICBpZiAodiA9PSAwKSB2ID0gZGVuc2l0eS5jb21wYXJlKG8uZGVuc2l0eSk7Ci0gICAgaWYgKHYgPT0gMCkgdiA9IHRvdWNoc2NyZWVuLmNvbXBhcmUoby50b3VjaHNjcmVlbik7Ci0gICAgaWYgKHYgPT0gMCkgdiA9IGtleXNIaWRkZW4uY29tcGFyZShvLmtleXNIaWRkZW4pOwotICAgIGlmICh2ID09IDApIHYgPSBrZXlib2FyZC5jb21wYXJlKG8ua2V5Ym9hcmQpOwotICAgIGlmICh2ID09IDApIHYgPSBuYXZIaWRkZW4uY29tcGFyZShvLm5hdkhpZGRlbik7Ci0gICAgaWYgKHYgPT0gMCkgdiA9IG5hdmlnYXRpb24uY29tcGFyZShvLm5hdmlnYXRpb24pOwotICAgIGlmICh2ID09IDApIHYgPSBzY3JlZW5TaXplLmNvbXBhcmUoby5zY3JlZW5TaXplKTsKLSAgICBpZiAodiA9PSAwKSB2ID0gdmVyc2lvbi5jb21wYXJlKG8udmVyc2lvbik7Ci0gICAgcmV0dXJuIHY7Ci19Ci0KLWNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgQWFwdEdyb3VwRW50cnk6OnRvUGFyYW1zKCkgY29uc3QKLXsKLSAgICBpZiAoIW1QYXJhbXNDaGFuZ2VkKSB7Ci0gICAgICAgIHJldHVybiBtUGFyYW1zOwotICAgIH0KLQotICAgIG1QYXJhbXNDaGFuZ2VkID0gZmFsc2U7Ci0gICAgUmVzVGFibGVfY29uZmlnJiBwYXJhbXMobVBhcmFtcyk7Ci0gICAgbWVtc2V0KCZwYXJhbXMsIDAsIHNpemVvZihwYXJhbXMpKTsKLSAgICBnZXRNY2NOYW1lKG1jYy5zdHJpbmcoKSwgJnBhcmFtcyk7Ci0gICAgZ2V0TW5jTmFtZShtbmMuc3RyaW5nKCksICZwYXJhbXMpOwotICAgIGdldExvY2FsZU5hbWUobG9jYWxlLnN0cmluZygpLCAmcGFyYW1zKTsKLSAgICBnZXRMYXlvdXREaXJlY3Rpb25OYW1lKGxheW91dERpcmVjdGlvbi5zdHJpbmcoKSwgJnBhcmFtcyk7Ci0gICAgZ2V0U21hbGxlc3RTY3JlZW5XaWR0aERwTmFtZShzbWFsbGVzdFNjcmVlbldpZHRoRHAuc3RyaW5nKCksICZwYXJhbXMpOwotICAgIGdldFNjcmVlbldpZHRoRHBOYW1lKHNjcmVlbldpZHRoRHAuc3RyaW5nKCksICZwYXJhbXMpOwotICAgIGdldFNjcmVlbkhlaWdodERwTmFtZShzY3JlZW5IZWlnaHREcC5zdHJpbmcoKSwgJnBhcmFtcyk7Ci0gICAgZ2V0U2NyZWVuTGF5b3V0U2l6ZU5hbWUoc2NyZWVuTGF5b3V0U2l6ZS5zdHJpbmcoKSwgJnBhcmFtcyk7Ci0gICAgZ2V0U2NyZWVuTGF5b3V0TG9uZ05hbWUoc2NyZWVuTGF5b3V0TG9uZy5zdHJpbmcoKSwgJnBhcmFtcyk7Ci0gICAgZ2V0T3JpZW50YXRpb25OYW1lKG9yaWVudGF0aW9uLnN0cmluZygpLCAmcGFyYW1zKTsKLSAgICBnZXRVaU1vZGVUeXBlTmFtZSh1aU1vZGVUeXBlLnN0cmluZygpLCAmcGFyYW1zKTsKLSAgICBnZXRVaU1vZGVOaWdodE5hbWUodWlNb2RlTmlnaHQuc3RyaW5nKCksICZwYXJhbXMpOwotICAgIGdldERlbnNpdHlOYW1lKGRlbnNpdHkuc3RyaW5nKCksICZwYXJhbXMpOwotICAgIGdldFRvdWNoc2NyZWVuTmFtZSh0b3VjaHNjcmVlbi5zdHJpbmcoKSwgJnBhcmFtcyk7Ci0gICAgZ2V0S2V5c0hpZGRlbk5hbWUoa2V5c0hpZGRlbi5zdHJpbmcoKSwgJnBhcmFtcyk7Ci0gICAgZ2V0S2V5Ym9hcmROYW1lKGtleWJvYXJkLnN0cmluZygpLCAmcGFyYW1zKTsKLSAgICBnZXROYXZIaWRkZW5OYW1lKG5hdkhpZGRlbi5zdHJpbmcoKSwgJnBhcmFtcyk7Ci0gICAgZ2V0TmF2aWdhdGlvbk5hbWUobmF2aWdhdGlvbi5zdHJpbmcoKSwgJnBhcmFtcyk7Ci0gICAgZ2V0U2NyZWVuU2l6ZU5hbWUoc2NyZWVuU2l6ZS5zdHJpbmcoKSwgJnBhcmFtcyk7Ci0gICAgZ2V0VmVyc2lvbk5hbWUodmVyc2lvbi5zdHJpbmcoKSwgJnBhcmFtcyk7Ci0gICAgCi0gICAgLy8gRml4IHVwIHZlcnNpb24gbnVtYmVyIGJhc2VkIG9uIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgotICAgIGludCBtaW5TZGsgPSAwOwotICAgIGlmIChwYXJhbXMuc21hbGxlc3RTY3JlZW5XaWR0aERwICE9IFJlc1RhYmxlX2NvbmZpZzo6U0NSRUVOV0lEVEhfQU5ZCi0gICAgICAgICAgICB8fCBwYXJhbXMuc2NyZWVuV2lkdGhEcCAhPSBSZXNUYWJsZV9jb25maWc6OlNDUkVFTldJRFRIX0FOWQotICAgICAgICAgICAgfHwgcGFyYW1zLnNjcmVlbkhlaWdodERwICE9IFJlc1RhYmxlX2NvbmZpZzo6U0NSRUVOSEVJR0hUX0FOWSkgewotICAgICAgICBtaW5TZGsgPSBTREtfSE9ORVlDT01CX01SMjsKLSAgICB9IGVsc2UgaWYgKChwYXJhbXMudWlNb2RlJlJlc1RhYmxlX2NvbmZpZzo6TUFTS19VSV9NT0RFX1RZUEUpCi0gICAgICAgICAgICAgICAgIT0gUmVzVGFibGVfY29uZmlnOjpVSV9NT0RFX1RZUEVfQU5ZCi0gICAgICAgICAgICB8fCAgKHBhcmFtcy51aU1vZGUmUmVzVGFibGVfY29uZmlnOjpNQVNLX1VJX01PREVfTklHSFQpCi0gICAgICAgICAgICAgICAgIT0gUmVzVGFibGVfY29uZmlnOjpVSV9NT0RFX05JR0hUX0FOWSkgewotICAgICAgICBtaW5TZGsgPSBTREtfRlJPWU87Ci0gICAgfSBlbHNlIGlmICgocGFyYW1zLnNjcmVlbkxheW91dCZSZXNUYWJsZV9jb25maWc6Ok1BU0tfU0NSRUVOU0laRSkKLSAgICAgICAgICAgICAgICAhPSBSZXNUYWJsZV9jb25maWc6OlNDUkVFTlNJWkVfQU5ZCi0gICAgICAgICAgICB8fCAgKHBhcmFtcy5zY3JlZW5MYXlvdXQmUmVzVGFibGVfY29uZmlnOjpNQVNLX1NDUkVFTkxPTkcpCi0gICAgICAgICAgICAgICAgIT0gUmVzVGFibGVfY29uZmlnOjpTQ1JFRU5MT05HX0FOWQotICAgICAgICAgICAgfHwgcGFyYW1zLmRlbnNpdHkgIT0gUmVzVGFibGVfY29uZmlnOjpERU5TSVRZX0RFRkFVTFQpIHsKLSAgICAgICAgbWluU2RrID0gU0RLX0RPTlVUOwotICAgIH0KLSAgICAKLSAgICBpZiAobWluU2RrID4gcGFyYW1zLnNka1ZlcnNpb24pIHsKLSAgICAgICAgcGFyYW1zLnNka1ZlcnNpb24gPSBtaW5TZGs7Ci0gICAgfQotICAgIAotICAgIHJldHVybiBwYXJhbXM7Ci19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotdm9pZCogQWFwdEZpbGU6OmVkaXREYXRhKHNpemVfdCBzaXplKQotewotICAgIGlmIChzaXplIDw9IG1CdWZmZXJTaXplKSB7Ci0gICAgICAgIG1EYXRhU2l6ZSA9IHNpemU7Ci0gICAgICAgIHJldHVybiBtRGF0YTsKLSAgICB9Ci0gICAgc2l6ZV90IGFsbG9jU2l6ZSA9IChzaXplKjMpLzI7Ci0gICAgdm9pZCogYnVmID0gcmVhbGxvYyhtRGF0YSwgYWxsb2NTaXplKTsKLSAgICBpZiAoYnVmID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIG1EYXRhID0gYnVmOwotICAgIG1EYXRhU2l6ZSA9IHNpemU7Ci0gICAgbUJ1ZmZlclNpemUgPSBhbGxvY1NpemU7Ci0gICAgcmV0dXJuIGJ1ZjsKLX0KLQotdm9pZCogQWFwdEZpbGU6OmVkaXREYXRhKHNpemVfdCogb3V0U2l6ZSkKLXsKLSAgICBpZiAob3V0U2l6ZSkgewotICAgICAgICAqb3V0U2l6ZSA9IG1EYXRhU2l6ZTsKLSAgICB9Ci0gICAgcmV0dXJuIG1EYXRhOwotfQotCi12b2lkKiBBYXB0RmlsZTo6cGFkRGF0YShzaXplX3Qgd29yZFNpemUpCi17Ci0gICAgY29uc3Qgc2l6ZV90IGV4dHJhID0gbURhdGFTaXplJXdvcmRTaXplOwotICAgIGlmIChleHRyYSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBtRGF0YTsKLSAgICB9Ci0KLSAgICBzaXplX3QgaW5pdGlhbCA9IG1EYXRhU2l6ZTsKLSAgICB2b2lkKiBkYXRhID0gZWRpdERhdGEoaW5pdGlhbCsod29yZFNpemUtZXh0cmEpKTsKLSAgICBpZiAoZGF0YSAhPSBOVUxMKSB7Ci0gICAgICAgIG1lbXNldCgoKHVpbnQ4X3QqKWRhdGEpICsgaW5pdGlhbCwgMCwgd29yZFNpemUtZXh0cmEpOwotICAgIH0KLSAgICByZXR1cm4gZGF0YTsKLX0KLQotc3RhdHVzX3QgQWFwdEZpbGU6OndyaXRlRGF0YShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSkKLXsKLSAgICBzaXplX3QgZW5kID0gbURhdGFTaXplOwotICAgIHNpemVfdCB0b3RhbCA9IHNpemUgKyBlbmQ7Ci0gICAgdm9pZCogYnVmID0gZWRpdERhdGEodG90YWwpOwotICAgIGlmIChidWYgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0gICAgbWVtY3B5KCgoY2hhciopYnVmKStlbmQsIGRhdGEsIHNpemUpOwotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotdm9pZCBBYXB0RmlsZTo6Y2xlYXJEYXRhKCkKLXsKLSAgICBpZiAobURhdGEgIT0gTlVMTCkgZnJlZShtRGF0YSk7Ci0gICAgbURhdGEgPSBOVUxMOwotICAgIG1EYXRhU2l6ZSA9IDA7Ci0gICAgbUJ1ZmZlclNpemUgPSAwOwotfQotCi1TdHJpbmc4IEFhcHRGaWxlOjpnZXRQcmludGFibGVTb3VyY2UoKSBjb25zdAotewotICAgIGlmIChoYXNEYXRhKCkpIHsKLSAgICAgICAgU3RyaW5nOCBuYW1lKG1Hcm91cEVudHJ5LnRvRGlyTmFtZShTdHJpbmc4KCkpKTsKLSAgICAgICAgbmFtZS5hcHBlbmRQYXRoKG1QYXRoKTsKLSAgICAgICAgbmFtZS5hcHBlbmQoIiAjZ2VuZXJhdGVkIik7Ci0gICAgICAgIHJldHVybiBuYW1lOwotICAgIH0KLSAgICByZXR1cm4gbVNvdXJjZUZpbGU7Ci19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotc3RhdHVzX3QgQWFwdEdyb3VwOjphZGRGaWxlKGNvbnN0IHNwPEFhcHRGaWxlPiYgZmlsZSkKLXsKLSAgICBpZiAobUZpbGVzLmluZGV4T2ZLZXkoZmlsZS0+Z2V0R3JvdXBFbnRyeSgpKSA8IDApIHsKLSAgICAgICAgZmlsZS0+bVBhdGggPSBtUGF0aDsKLSAgICAgICAgbUZpbGVzLmFkZChmaWxlLT5nZXRHcm91cEVudHJ5KCksIGZpbGUpOwotICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgfQotCi0jaWYgMAotICAgIHByaW50ZigiRXJyb3IgYWRkaW5nIGZpbGUgJXM6IGdyb3VwICVzIGFscmVhZHkgZXhpc3RzIGluIGxlYWY9JXMgcGF0aD0lc1xuIiwKLSAgICAgICAgICAgIGZpbGUtPmdldFNvdXJjZUZpbGUoKS5zdHJpbmcoKSwKLSAgICAgICAgICAgIGZpbGUtPmdldEdyb3VwRW50cnkoKS50b0Rpck5hbWUoU3RyaW5nOCgpKS5zdHJpbmcoKSwKLSAgICAgICAgICAgIG1MZWFmLnN0cmluZygpLCBtUGF0aC5zdHJpbmcoKSk7Ci0jZW5kaWYKLQotICAgIFNvdXJjZVBvcyhmaWxlLT5nZXRTb3VyY2VGaWxlKCksIC0xKS5lcnJvcigiRHVwbGljYXRlIGZpbGUuXG4lczogT3JpZ2luYWwgaXMgaGVyZS4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcmludGFibGVTb3VyY2UoKS5zdHJpbmcoKSk7Ci0gICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci19Ci0KLXZvaWQgQWFwdEdyb3VwOjpyZW1vdmVGaWxlKHNpemVfdCBpbmRleCkKLXsKLQltRmlsZXMucmVtb3ZlSXRlbXNBdChpbmRleCk7Ci19Ci0KLXZvaWQgQWFwdEdyb3VwOjpwcmludChjb25zdCBTdHJpbmc4JiBwcmVmaXgpIGNvbnN0Ci17Ci0gICAgcHJpbnRmKCIlcyVzXG4iLCBwcmVmaXguc3RyaW5nKCksIGdldFBhdGgoKS5zdHJpbmcoKSk7Ci0gICAgY29uc3Qgc2l6ZV90IE49bUZpbGVzLnNpemUoKTsKLSAgICBzaXplX3QgaTsKLSAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgc3A8QWFwdEZpbGU+IGZpbGUgPSBtRmlsZXMudmFsdWVBdChpKTsKLSAgICAgICAgY29uc3QgQWFwdEdyb3VwRW50cnkmIGUgPSBmaWxlLT5nZXRHcm91cEVudHJ5KCk7Ci0gICAgICAgIGlmIChmaWxlLT5oYXNEYXRhKCkpIHsKLSAgICAgICAgICAgIHByaW50ZigiJXMgIEdlbjogKCVzKSAlZCBieXRlc1xuIiwgcHJlZml4LnN0cmluZygpLCBlLnRvRGlyTmFtZShTdHJpbmc4KCkpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAoaW50KWZpbGUtPmdldFNpemUoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwcmludGYoIiVzICBTcmM6ICglcykgJXNcbiIsIHByZWZpeC5zdHJpbmcoKSwgZS50b0Rpck5hbWUoU3RyaW5nOCgpKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgZmlsZS0+Z2V0UHJpbnRhYmxlU291cmNlKCkuc3RyaW5nKCkpOwotICAgICAgICB9Ci0gICAgICAgIC8vcHJpbnRmKCIlcyAgRmlsZSBHcm91cCBFbnRyeTogJXNcbiIsIHByZWZpeC5zdHJpbmcoKSwKLSAgICAgICAgLy8gICAgICAgIGZpbGUtPmdldEdyb3VwRW50cnkoKS50b0Rpck5hbWUoU3RyaW5nOCgpKS5zdHJpbmcoKSk7Ci0gICAgfQotfQotCi1TdHJpbmc4IEFhcHRHcm91cDo6Z2V0UHJpbnRhYmxlU291cmNlKCkgY29uc3QKLXsKLSAgICBpZiAobUZpbGVzLnNpemUoKSA+IDApIHsKLSAgICAgICAgLy8gQXJiaXRyYXJpbHkgcHVsbCB0aGUgZmlyc3Qgc291cmNlIGZpbGUgb3V0IG9mIHRoZSBsaXN0LgotICAgICAgICByZXR1cm4gbUZpbGVzLnZhbHVlQXQoMCktPmdldFByaW50YWJsZVNvdXJjZSgpOwotICAgIH0KLQotICAgIC8vIFNob3VsZCBuZXZlciBoaXQgdGhpcyBjYXNlLCBidXQgdG8gYmUgc2FmZS4uLgotICAgIHJldHVybiBnZXRQYXRoKCk7Ci0KLX0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1zdGF0dXNfdCBBYXB0RGlyOjphZGRGaWxlKGNvbnN0IFN0cmluZzgmIG5hbWUsIGNvbnN0IHNwPEFhcHRHcm91cD4mIGZpbGUpCi17Ci0gICAgaWYgKG1GaWxlcy5pbmRleE9mS2V5KG5hbWUpID49IDApIHsKLSAgICAgICAgcmV0dXJuIEFMUkVBRFlfRVhJU1RTOwotICAgIH0KLSAgICBtRmlsZXMuYWRkKG5hbWUsIGZpbGUpOwotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3RhdHVzX3QgQWFwdERpcjo6YWRkRGlyKGNvbnN0IFN0cmluZzgmIG5hbWUsIGNvbnN0IHNwPEFhcHREaXI+JiBkaXIpCi17Ci0gICAgaWYgKG1EaXJzLmluZGV4T2ZLZXkobmFtZSkgPj0gMCkgewotICAgICAgICByZXR1cm4gQUxSRUFEWV9FWElTVFM7Ci0gICAgfQotICAgIG1EaXJzLmFkZChuYW1lLCBkaXIpOwotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3A8QWFwdERpcj4gQWFwdERpcjo6bWFrZURpcihjb25zdCBTdHJpbmc4JiBwYXRoKQotewotICAgIFN0cmluZzggbmFtZTsKLSAgICBTdHJpbmc4IHJlbWFpbiA9IHBhdGg7Ci0KLSAgICBzcDxBYXB0RGlyPiBzdWJkaXIgPSB0aGlzOwotICAgIHdoaWxlIChuYW1lID0gcmVtYWluLndhbGtQYXRoKCZyZW1haW4pLCByZW1haW4gIT0gIiIpIHsKLSAgICAgICAgc3ViZGlyID0gc3ViZGlyLT5tYWtlRGlyKG5hbWUpOwotICAgIH0KLQotICAgIHNzaXplX3QgaSA9IHN1YmRpci0+bURpcnMuaW5kZXhPZktleShuYW1lKTsKLSAgICBpZiAoaSA+PSAwKSB7Ci0gICAgICAgIHJldHVybiBzdWJkaXItPm1EaXJzLnZhbHVlQXQoaSk7Ci0gICAgfQotICAgIHNwPEFhcHREaXI+IGRpciA9IG5ldyBBYXB0RGlyKG5hbWUsIHN1YmRpci0+bVBhdGguYXBwZW5kUGF0aENvcHkobmFtZSkpOwotICAgIHN1YmRpci0+bURpcnMuYWRkKG5hbWUsIGRpcik7Ci0gICAgcmV0dXJuIGRpcjsKLX0KLQotdm9pZCBBYXB0RGlyOjpyZW1vdmVGaWxlKGNvbnN0IFN0cmluZzgmIG5hbWUpCi17Ci0gICAgbUZpbGVzLnJlbW92ZUl0ZW0obmFtZSk7Ci19Ci0KLXZvaWQgQWFwdERpcjo6cmVtb3ZlRGlyKGNvbnN0IFN0cmluZzgmIG5hbWUpCi17Ci0gICAgbURpcnMucmVtb3ZlSXRlbShuYW1lKTsKLX0KLQotc3RhdHVzX3QgQWFwdERpcjo6YWRkTGVhZkZpbGUoY29uc3QgU3RyaW5nOCYgbGVhZk5hbWUsIGNvbnN0IHNwPEFhcHRGaWxlPiYgZmlsZSkKLXsKLSAgICBzcDxBYXB0R3JvdXA+IGdyb3VwOwotICAgIGlmIChtRmlsZXMuaW5kZXhPZktleShsZWFmTmFtZSkgPj0gMCkgewotICAgICAgICBncm91cCA9IG1GaWxlcy52YWx1ZUZvcihsZWFmTmFtZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZ3JvdXAgPSBuZXcgQWFwdEdyb3VwKGxlYWZOYW1lLCBtUGF0aC5hcHBlbmRQYXRoQ29weShsZWFmTmFtZSkpOwotICAgICAgICBtRmlsZXMuYWRkKGxlYWZOYW1lLCBncm91cCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGdyb3VwLT5hZGRGaWxlKGZpbGUpOwotfQotCi1zc2l6ZV90IEFhcHREaXI6OnNsdXJwRnVsbFRyZWUoQnVuZGxlKiBidW5kbGUsIGNvbnN0IFN0cmluZzgmIHNyY0RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBYXB0R3JvdXBFbnRyeSYga2luZCwgY29uc3QgU3RyaW5nOCYgcmVzVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxGaWxlUGF0aFN0b3JlPiYgZnVsbFJlc1BhdGhzKQotewotICAgIFZlY3RvcjxTdHJpbmc4PiBmaWxlTmFtZXM7Ci0gICAgewotICAgICAgICBESVIqIGRpciA9IE5VTEw7Ci0KLSAgICAgICAgZGlyID0gb3BlbmRpcihzcmNEaXIuc3RyaW5nKCkpOwotICAgICAgICBpZiAoZGlyID09IE5VTEwpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IG9wZW5kaXIoJXMpOiAlc1xuIiwgc3JjRGlyLnN0cmluZygpLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgIH0KLQotICAgICAgICAvKgotICAgICAgICAgKiBTbHVycCB0aGUgZmlsZW5hbWVzIG91dCBvZiB0aGUgZGlyZWN0b3J5LgotICAgICAgICAgKi8KLSAgICAgICAgd2hpbGUgKDEpIHsKLSAgICAgICAgICAgIHN0cnVjdCBkaXJlbnQqIGVudHJ5OwotCi0gICAgICAgICAgICBlbnRyeSA9IHJlYWRkaXIoZGlyKTsKLSAgICAgICAgICAgIGlmIChlbnRyeSA9PSBOVUxMKQotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBpZiAoaXNIaWRkZW4oc3JjRGlyLnN0cmluZygpLCBlbnRyeS0+ZF9uYW1lKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgU3RyaW5nOCBuYW1lKGVudHJ5LT5kX25hbWUpOwotICAgICAgICAgICAgZmlsZU5hbWVzLmFkZChuYW1lKTsKLSAgICAgICAgICAgIC8vIEFkZCBmdWxseSBxdWFsaWZpZWQgcGF0aCBmb3IgZGVwZW5kZW5jeSBwdXJwb3NlcwotICAgICAgICAgICAgLy8gaWYgd2UncmUgY29sbGVjdGluZyB0aGVtCi0gICAgICAgICAgICBpZiAoZnVsbFJlc1BhdGhzICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBmdWxsUmVzUGF0aHMtPmFkZChzcmNEaXIuYXBwZW5kUGF0aENvcHkobmFtZSkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGNsb3NlZGlyKGRpcik7Ci0gICAgfQotCi0gICAgc3NpemVfdCBjb3VudCA9IDA7Ci0KLSAgICAvKgotICAgICAqIFN0YXNoIGF3YXkgdGhlIGZpbGVzIGFuZCByZWN1cnNpdmVseSBkZXNjZW5kIGludG8gc3ViZGlyZWN0b3JpZXMuCi0gICAgICovCi0gICAgY29uc3Qgc2l6ZV90IE4gPSBmaWxlTmFtZXMuc2l6ZSgpOwotICAgIHNpemVfdCBpOwotICAgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspIHsKLSAgICAgICAgU3RyaW5nOCBwYXRoTmFtZShzcmNEaXIpOwotICAgICAgICBGaWxlVHlwZSB0eXBlOwotCi0gICAgICAgIHBhdGhOYW1lLmFwcGVuZFBhdGgoZmlsZU5hbWVzW2ldLnN0cmluZygpKTsKLSAgICAgICAgdHlwZSA9IGdldEZpbGVUeXBlKHBhdGhOYW1lLnN0cmluZygpKTsKLSAgICAgICAgaWYgKHR5cGUgPT0ga0ZpbGVUeXBlRGlyZWN0b3J5KSB7Ci0gICAgICAgICAgICBzcDxBYXB0RGlyPiBzdWJkaXI7Ci0gICAgICAgICAgICBib29sIG5vdEFkZGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBpZiAobURpcnMuaW5kZXhPZktleShmaWxlTmFtZXNbaV0pID49IDApIHsKLSAgICAgICAgICAgICAgICBzdWJkaXIgPSBtRGlycy52YWx1ZUZvcihmaWxlTmFtZXNbaV0pOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBzdWJkaXIgPSBuZXcgQWFwdERpcihmaWxlTmFtZXNbaV0sIG1QYXRoLmFwcGVuZFBhdGhDb3B5KGZpbGVOYW1lc1tpXSkpOwotICAgICAgICAgICAgICAgIG5vdEFkZGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNzaXplX3QgcmVzID0gc3ViZGlyLT5zbHVycEZ1bGxUcmVlKGJ1bmRsZSwgcGF0aE5hbWUsIGtpbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNUeXBlLCBmdWxsUmVzUGF0aHMpOwotICAgICAgICAgICAgaWYgKHJlcyA8IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlczsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXMgPiAwICYmIG5vdEFkZGVkKSB7Ci0gICAgICAgICAgICAgICAgbURpcnMuYWRkKGZpbGVOYW1lc1tpXSwgc3ViZGlyKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvdW50ICs9IHJlczsKLSAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IGtGaWxlVHlwZVJlZ3VsYXIpIHsKLSAgICAgICAgICAgIHNwPEFhcHRGaWxlPiBmaWxlID0gbmV3IEFhcHRGaWxlKHBhdGhOYW1lLCBraW5kLCByZXNUeXBlKTsKLSAgICAgICAgICAgIHN0YXR1c190IGVyciA9IGFkZExlYWZGaWxlKGZpbGVOYW1lc1tpXSwgZmlsZSk7Ci0gICAgICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY291bnQrKzsKLQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKQotICAgICAgICAgICAgICAgIHByaW50ZigiICAgKGlnbm9yaW5nIG5vbi1maWxlL2RpciAnJXMnKVxuIiwgcGF0aE5hbWUuc3RyaW5nKCkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIGNvdW50OwotfQotCi1zdGF0dXNfdCBBYXB0RGlyOjp2YWxpZGF0ZSgpIGNvbnN0Ci17Ci0gICAgY29uc3Qgc2l6ZV90IE5GID0gbUZpbGVzLnNpemUoKTsKLSAgICBjb25zdCBzaXplX3QgTkQgPSBtRGlycy5zaXplKCk7Ci0gICAgc2l6ZV90IGk7Ci0gICAgZm9yIChpID0gMDsgaSA8IE5GOyBpKyspIHsKLSAgICAgICAgaWYgKCF2YWxpZGF0ZUZpbGVOYW1lKG1GaWxlcy52YWx1ZUF0KGkpLT5nZXRMZWFmKCkuc3RyaW5nKCkpKSB7Ci0gICAgICAgICAgICBTb3VyY2VQb3MobUZpbGVzLnZhbHVlQXQoaSktPmdldFByaW50YWJsZVNvdXJjZSgpLCAtMSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIGZpbGVuYW1lLiAgVW5hYmxlIHRvIGFkZC4iKTsKLSAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICB9Ci0KLSAgICAgICAgc2l6ZV90IGo7Ci0gICAgICAgIGZvciAoaiA9IGkrMTsgaiA8IE5GOyBqKyspIHsKLSAgICAgICAgICAgIGlmIChzdHJjYXNlY21wKG1GaWxlcy52YWx1ZUF0KGkpLT5nZXRMZWFmKCkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBtRmlsZXMudmFsdWVBdChqKS0+Z2V0TGVhZigpLnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgU291cmNlUG9zKG1GaWxlcy52YWx1ZUF0KGkpLT5nZXRQcmludGFibGVTb3VyY2UoKSwgLTEpLmVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgIkZpbGUgaXMgY2FzZS1pbnNlbnNpdGl2ZSBlcXVpdmFsZW50IHRvOiAlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICBtRmlsZXMudmFsdWVBdChqKS0+Z2V0UHJpbnRhYmxlU291cmNlKCkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBUT0RPOiBpZiAiLmd6IiwgY2hlY2sgZm9yIG5vbi0uZ3o7IGlmIG5vbi0sIGNoZWNrIGZvciAiLmd6IgotICAgICAgICAgICAgLy8gKHRoaXMgaXMgbW9zdGx5IGNhdWdodCBieSB0aGUgIm1hcmtlZCIgc3R1ZmYsIGJlbG93KQotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChqID0gMDsgaiA8IE5EOyBqKyspIHsKLSAgICAgICAgICAgIGlmIChzdHJjYXNlY21wKG1GaWxlcy52YWx1ZUF0KGkpLT5nZXRMZWFmKCkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBtRGlycy52YWx1ZUF0KGopLT5nZXRMZWFmKCkuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICBTb3VyY2VQb3MobUZpbGVzLnZhbHVlQXQoaSktPmdldFByaW50YWJsZVNvdXJjZSgpLCAtMSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAiRmlsZSBjb25mbGljdHMgd2l0aCBkaXIgZnJvbTogJXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgbURpcnMudmFsdWVBdChqKS0+Z2V0UHJpbnRhYmxlU291cmNlKCkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgZm9yIChpID0gMDsgaSA8IE5EOyBpKyspIHsKLSAgICAgICAgaWYgKCF2YWxpZGF0ZUZpbGVOYW1lKG1EaXJzLnZhbHVlQXQoaSktPmdldExlYWYoKS5zdHJpbmcoKSkpIHsKLSAgICAgICAgICAgIFNvdXJjZVBvcyhtRGlycy52YWx1ZUF0KGkpLT5nZXRQcmludGFibGVTb3VyY2UoKSwgLTEpLmVycm9yKAotICAgICAgICAgICAgICAgICAgICAiSW52YWxpZCBkaXJlY3RvcnkgbmFtZSwgdW5hYmxlIHRvIGFkZC4iKTsKLSAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICB9Ci0KLSAgICAgICAgc2l6ZV90IGo7Ci0gICAgICAgIGZvciAoaiA9IGkrMTsgaiA8IE5EOyBqKyspIHsKLSAgICAgICAgICAgIGlmIChzdHJjYXNlY21wKG1EaXJzLnZhbHVlQXQoaSktPmdldExlYWYoKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EaXJzLnZhbHVlQXQoaiktPmdldExlYWYoKS5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhtRGlycy52YWx1ZUF0KGkpLT5nZXRQcmludGFibGVTb3VyY2UoKSwgLTEpLmVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgIkRpcmVjdG9yeSBpcyBjYXNlLWluc2Vuc2l0aXZlIGVxdWl2YWxlbnQgdG86ICVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIG1EaXJzLnZhbHVlQXQoaiktPmdldFByaW50YWJsZVNvdXJjZSgpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHN0YXR1c190IGVyciA9IG1EaXJzLnZhbHVlQXQoaSktPnZhbGlkYXRlKCk7Ci0gICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIHJldHVybiBlcnI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXZvaWQgQWFwdERpcjo6cHJpbnQoY29uc3QgU3RyaW5nOCYgcHJlZml4KSBjb25zdAotewotICAgIGNvbnN0IHNpemVfdCBORD1nZXREaXJzKCkuc2l6ZSgpOwotICAgIHNpemVfdCBpOwotICAgIGZvciAoaT0wOyBpPE5EOyBpKyspIHsKLSAgICAgICAgZ2V0RGlycygpLnZhbHVlQXQoaSktPnByaW50KHByZWZpeCk7Ci0gICAgfQotCi0gICAgY29uc3Qgc2l6ZV90IE5GPWdldEZpbGVzKCkuc2l6ZSgpOwotICAgIGZvciAoaT0wOyBpPE5GOyBpKyspIHsKLSAgICAgICAgZ2V0RmlsZXMoKS52YWx1ZUF0KGkpLT5wcmludChwcmVmaXgpOwotICAgIH0KLX0KLQotU3RyaW5nOCBBYXB0RGlyOjpnZXRQcmludGFibGVTb3VyY2UoKSBjb25zdAotewotICAgIGlmIChtRmlsZXMuc2l6ZSgpID4gMCkgewotICAgICAgICAvLyBBcmJpdHJhcmlseSBwdWxsIHRoZSBmaXJzdCBmaWxlIG91dCBvZiB0aGUgbGlzdCBhcyB0aGUgc291cmNlIGRpci4KLSAgICAgICAgcmV0dXJuIG1GaWxlcy52YWx1ZUF0KDApLT5nZXRQcmludGFibGVTb3VyY2UoKS5nZXRQYXRoRGlyKCk7Ci0gICAgfQotICAgIGlmIChtRGlycy5zaXplKCkgPiAwKSB7Ci0gICAgICAgIC8vIE9yIGFyYml0cmFyaWx5IHB1bGwgdGhlIGZpcnN0IGRpciBvdXQgb2YgdGhlIGxpc3QgYXMgdGhlIHNvdXJjZSBkaXIuCi0gICAgICAgIHJldHVybiBtRGlycy52YWx1ZUF0KDApLT5nZXRQcmludGFibGVTb3VyY2UoKS5nZXRQYXRoRGlyKCk7Ci0gICAgfQotCi0gICAgLy8gU2hvdWxkIG5ldmVyIGhpdCB0aGlzIGNhc2UsIGJ1dCB0byBiZSBzYWZlLi4uCi0gICAgcmV0dXJuIG1QYXRoOwotCi19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotc3RhdHVzX3QgQWFwdFN5bWJvbHM6OmFwcGx5SmF2YVN5bWJvbHMoY29uc3Qgc3A8QWFwdFN5bWJvbHM+JiBqYXZhU3ltYm9scykKLXsKLSAgICBzdGF0dXNfdCBlcnIgPSBOT19FUlJPUjsKLSAgICBzaXplX3QgTiA9IGphdmFTeW1ib2xzLT5tU3ltYm9scy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICBjb25zdCBTdHJpbmc4JiBuYW1lID0gamF2YVN5bWJvbHMtPm1TeW1ib2xzLmtleUF0KGkpOwotICAgICAgICBjb25zdCBBYXB0U3ltYm9sRW50cnkmIGVudHJ5ID0gamF2YVN5bWJvbHMtPm1TeW1ib2xzLnZhbHVlQXQoaSk7Ci0gICAgICAgIHNzaXplX3QgcG9zID0gbVN5bWJvbHMuaW5kZXhPZktleShuYW1lKTsKLSAgICAgICAgaWYgKHBvcyA8IDApIHsKLSAgICAgICAgICAgIGVudHJ5LnNvdXJjZVBvcy5lcnJvcigiU3ltYm9sICclcycgZGVjbGFyZWQgd2l0aCA8amF2YS1zeW1ib2w+IG5vdCBkZWZpbmVkXG4iLCBuYW1lLnN0cmluZygpKTsKLSAgICAgICAgICAgIGVyciA9IFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICAvL3ByaW50ZigiKioqKiBzZXR0aW5nIHN5bWJvbCAjJWQvJWQgJXMgdG8gaXNKYXZhU3ltYm9sPSVkXG4iLAotICAgICAgICAvLyAgICAgICAgaSwgTiwgbmFtZS5zdHJpbmcoKSwgZW50cnkuaXNKYXZhU3ltYm9sID8gMSA6IDApOwotICAgICAgICBtU3ltYm9scy5lZGl0VmFsdWVBdChwb3MpLmlzSmF2YVN5bWJvbCA9IGVudHJ5LmlzSmF2YVN5bWJvbDsKLSAgICB9Ci0KLSAgICBOID0gamF2YVN5bWJvbHMtPm1OZXN0ZWRTeW1ib2xzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IFN0cmluZzgmIG5hbWUgPSBqYXZhU3ltYm9scy0+bU5lc3RlZFN5bWJvbHMua2V5QXQoaSk7Ci0gICAgICAgIGNvbnN0IHNwPEFhcHRTeW1ib2xzPiYgc3ltYm9scyA9IGphdmFTeW1ib2xzLT5tTmVzdGVkU3ltYm9scy52YWx1ZUF0KGkpOwotICAgICAgICBzc2l6ZV90IHBvcyA9IG1OZXN0ZWRTeW1ib2xzLmluZGV4T2ZLZXkobmFtZSk7Ci0gICAgICAgIGlmIChwb3MgPCAwKSB7Ci0gICAgICAgICAgICBTb3VyY2VQb3MgcG9zOwotICAgICAgICAgICAgcG9zLmVycm9yKCJKYXZhIHN5bWJvbCBkaXIgJXMgbm90IGRlZmluZWRcbiIsIG5hbWUuc3RyaW5nKCkpOwotICAgICAgICAgICAgZXJyID0gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIC8vcHJpbnRmKCIqKioqIGFwcGx5aW5nIGphdmEgc3ltYm9scyBpbiBkaXIgJXNcbiIsIG5hbWUuc3RyaW5nKCkpOwotICAgICAgICBzdGF0dXNfdCBteWVyciA9IG1OZXN0ZWRTeW1ib2xzLnZhbHVlQXQocG9zKS0+YXBwbHlKYXZhU3ltYm9scyhzeW1ib2xzKTsKLSAgICAgICAgaWYgKG15ZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBlcnIgPSBteWVycjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBlcnI7Ci19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotQWFwdEFzc2V0czo6QWFwdEFzc2V0cygpCi0gICAgOiBBYXB0RGlyKFN0cmluZzgoKSwgU3RyaW5nOCgpKSwKLSAgICAgIG1DaGFuZ2VkKGZhbHNlKSwgbUhhdmVJbmNsdWRlZEFzc2V0cyhmYWxzZSksIG1SZXMoTlVMTCkKLXsKLX0KLQotY29uc3QgU29ydGVkVmVjdG9yPEFhcHRHcm91cEVudHJ5PiYgQWFwdEFzc2V0czo6Z2V0R3JvdXBFbnRyaWVzKCkgY29uc3QgewotICAgIGlmIChtQ2hhbmdlZCkgewotICAgIH0KLSAgICByZXR1cm4gbUdyb3VwRW50cmllczsKLX0KLQotc3RhdHVzX3QgQWFwdEFzc2V0czo6YWRkRmlsZShjb25zdCBTdHJpbmc4JiBuYW1lLCBjb25zdCBzcDxBYXB0R3JvdXA+JiBmaWxlKQotewotICAgIG1DaGFuZ2VkID0gdHJ1ZTsKLSAgICByZXR1cm4gQWFwdERpcjo6YWRkRmlsZShuYW1lLCBmaWxlKTsKLX0KLQotc3A8QWFwdEZpbGU+IEFhcHRBc3NldHM6OmFkZEZpbGUoCi0gICAgICAgIGNvbnN0IFN0cmluZzgmIGZpbGVQYXRoLCBjb25zdCBBYXB0R3JvdXBFbnRyeSYgZW50cnksCi0gICAgICAgIGNvbnN0IFN0cmluZzgmIHNyY0Rpciwgc3A8QWFwdEdyb3VwPiogb3V0R3JvdXAsCi0gICAgICAgIGNvbnN0IFN0cmluZzgmIHJlc1R5cGUpCi17Ci0gICAgc3A8QWFwdERpcj4gZGlyID0gdGhpczsKLSAgICBzcDxBYXB0R3JvdXA+IGdyb3VwOwotICAgIHNwPEFhcHRGaWxlPiBmaWxlOwotICAgIFN0cmluZzggcm9vdCwgcmVtYWluKGZpbGVQYXRoKSwgcGFydGlhbFBhdGg7Ci0gICAgd2hpbGUgKHJlbWFpbi5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgcm9vdCA9IHJlbWFpbi53YWxrUGF0aCgmcmVtYWluKTsKLSAgICAgICAgcGFydGlhbFBhdGguYXBwZW5kUGF0aChyb290KTsKLQotICAgICAgICBjb25zdCBTdHJpbmc4IHJvb3RTdHIocm9vdCk7Ci0KLSAgICAgICAgaWYgKHJlbWFpbi5sZW5ndGgoKSA9PSAwKSB7Ci0gICAgICAgICAgICBzc2l6ZV90IGkgPSBkaXItPmdldEZpbGVzKCkuaW5kZXhPZktleShyb290U3RyKTsKLSAgICAgICAgICAgIGlmIChpID49IDApIHsKLSAgICAgICAgICAgICAgICBncm91cCA9IGRpci0+Z2V0RmlsZXMoKS52YWx1ZUF0KGkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBncm91cCA9IG5ldyBBYXB0R3JvdXAocm9vdFN0ciwgZmlsZVBhdGgpOwotICAgICAgICAgICAgICAgIHN0YXR1c190IHJlcyA9IGRpci0+YWRkRmlsZShyb290U3RyLCBncm91cCk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlcyAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmaWxlID0gbmV3IEFhcHRGaWxlKHNyY0Rpci5hcHBlbmRQYXRoQ29weShmaWxlUGF0aCksIGVudHJ5LCByZXNUeXBlKTsKLSAgICAgICAgICAgIHN0YXR1c190IHJlcyA9IGdyb3VwLT5hZGRGaWxlKGZpbGUpOwotICAgICAgICAgICAgaWYgKHJlcyAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNzaXplX3QgaSA9IGRpci0+Z2V0RGlycygpLmluZGV4T2ZLZXkocm9vdFN0cik7Ci0gICAgICAgICAgICBpZiAoaSA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgZGlyID0gZGlyLT5nZXREaXJzKCkudmFsdWVBdChpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc3A8QWFwdERpcj4gc3ViZGlyID0gbmV3IEFhcHREaXIocm9vdFN0ciwgcGFydGlhbFBhdGgpOwotICAgICAgICAgICAgICAgIHN0YXR1c190IHJlcyA9IGRpci0+YWRkRGlyKHJvb3RTdHIsIHN1YmRpcik7Ci0gICAgICAgICAgICAgICAgaWYgKHJlcyAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZGlyID0gc3ViZGlyOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgbUdyb3VwRW50cmllcy5hZGQoZW50cnkpOwotICAgIGlmIChvdXRHcm91cCkgKm91dEdyb3VwID0gZ3JvdXA7Ci0gICAgcmV0dXJuIGZpbGU7Ci19Ci0KLXZvaWQgQWFwdEFzc2V0czo6YWRkUmVzb3VyY2UoY29uc3QgU3RyaW5nOCYgbGVhZk5hbWUsIGNvbnN0IFN0cmluZzgmIHBhdGgsCi0gICAgICAgICAgICAgICAgY29uc3Qgc3A8QWFwdEZpbGU+JiBmaWxlLCBjb25zdCBTdHJpbmc4JiByZXNUeXBlKQotewotICAgIHNwPEFhcHREaXI+IHJlcyA9IEFhcHREaXI6Om1ha2VEaXIoa1Jlc1N0cmluZyk7Ci0gICAgU3RyaW5nOCBkaXJuYW1lID0gZmlsZS0+Z2V0R3JvdXBFbnRyeSgpLnRvRGlyTmFtZShyZXNUeXBlKTsKLSAgICBzcDxBYXB0RGlyPiBzdWJkaXIgPSByZXMtPm1ha2VEaXIoZGlybmFtZSk7Ci0gICAgc3A8QWFwdEdyb3VwPiBncnIgPSBuZXcgQWFwdEdyb3VwKGxlYWZOYW1lLCBwYXRoKTsKLSAgICBncnItPmFkZEZpbGUoZmlsZSk7Ci0KLSAgICBzdWJkaXItPmFkZEZpbGUobGVhZk5hbWUsIGdycik7Ci19Ci0KLQotc3NpemVfdCBBYXB0QXNzZXRzOjpzbHVycEZyb21BcmdzKEJ1bmRsZSogYnVuZGxlKQotewotICAgIGludCBjb3VudDsKLSAgICBpbnQgdG90YWxDb3VudCA9IDA7Ci0gICAgRmlsZVR5cGUgdHlwZTsKLSAgICBjb25zdCBWZWN0b3I8Y29uc3QgY2hhciAqPiYgcmVzRGlycyA9IGJ1bmRsZS0+Z2V0UmVzb3VyY2VTb3VyY2VEaXJzKCk7Ci0gICAgY29uc3Qgc2l6ZV90IGRpckNvdW50ID1yZXNEaXJzLnNpemUoKTsKLSAgICBzcDxBYXB0QXNzZXRzPiBjdXJyZW50ID0gdGhpczsKLQotICAgIGNvbnN0IGludCBOID0gYnVuZGxlLT5nZXRGaWxlU3BlY0NvdW50KCk7Ci0KLSAgICAvKgotICAgICAqIElmIGEgcGFja2FnZSBtYW5pZmVzdCB3YXMgc3BlY2lmaWVkLCBpbmNsdWRlIHRoYXQgZmlyc3QuCi0gICAgICovCi0gICAgaWYgKGJ1bmRsZS0+Z2V0QW5kcm9pZE1hbmlmZXN0RmlsZSgpICE9IE5VTEwpIHsKLSAgICAgICAgLy8gcGxhY2UgYXQgcm9vdCBvZiB6aXAuCi0gICAgICAgIFN0cmluZzggc3JjRmlsZShidW5kbGUtPmdldEFuZHJvaWRNYW5pZmVzdEZpbGUoKSk7Ci0gICAgICAgIGFkZEZpbGUoc3JjRmlsZS5nZXRQYXRoTGVhZigpLCBBYXB0R3JvdXBFbnRyeSgpLCBzcmNGaWxlLmdldFBhdGhEaXIoKSwKLSAgICAgICAgICAgICAgICBOVUxMLCBTdHJpbmc4KCkpOwotICAgICAgICB0b3RhbENvdW50Kys7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBJZiBhIGRpcmVjdG9yeSBvZiBjdXN0b20gYXNzZXRzIHdhcyBzdXBwbGllZCwgc2x1cnAgJ2VtIHVwLgotICAgICAqLwotICAgIGlmIChidW5kbGUtPmdldEFzc2V0U291cmNlRGlyKCkpIHsKLSAgICAgICAgY29uc3QgY2hhciogYXNzZXREaXIgPSBidW5kbGUtPmdldEFzc2V0U291cmNlRGlyKCk7Ci0KLSAgICAgICAgRmlsZVR5cGUgdHlwZSA9IGdldEZpbGVUeXBlKGFzc2V0RGlyKTsKLSAgICAgICAgaWYgKHR5cGUgPT0ga0ZpbGVUeXBlTm9uZXhpc3RlbnQpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IGFzc2V0IGRpcmVjdG9yeSAnJXMnIGRvZXMgbm90IGV4aXN0XG4iLCBhc3NldERpcik7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotICAgICAgICBpZiAodHlwZSAhPSBrRmlsZVR5cGVEaXJlY3RvcnkpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6ICclcycgaXMgbm90IGEgZGlyZWN0b3J5XG4iLCBhc3NldERpcik7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotCi0gICAgICAgIFN0cmluZzggYXNzZXRSb290KGFzc2V0RGlyKTsKLSAgICAgICAgc3A8QWFwdERpcj4gYXNzZXRBYXB0RGlyID0gbWFrZURpcihTdHJpbmc4KGtBc3NldERpcikpOwotICAgICAgICBBYXB0R3JvdXBFbnRyeSBncm91cDsKLSAgICAgICAgY291bnQgPSBhc3NldEFhcHREaXItPnNsdXJwRnVsbFRyZWUoYnVuZGxlLCBhc3NldFJvb3QsIGdyb3VwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KCksIG1GdWxsQXNzZXRQYXRocyk7Ci0gICAgICAgIGlmIChjb3VudCA8IDApIHsKLSAgICAgICAgICAgIHRvdGFsQ291bnQgPSBjb3VudDsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotICAgICAgICBpZiAoY291bnQgPiAwKSB7Ci0gICAgICAgICAgICBtR3JvdXBFbnRyaWVzLmFkZChncm91cCk7Ci0gICAgICAgIH0KLSAgICAgICAgdG90YWxDb3VudCArPSBjb3VudDsKLQotICAgICAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpCi0gICAgICAgICAgICBwcmludGYoIkZvdW5kICVkIGN1c3RvbSBhc3NldCBmaWxlJXMgaW4gJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgY291bnQsIChjb3VudD09MSkgPyAiIiA6ICJzIiwgYXNzZXREaXIpOwotICAgIH0KLQotICAgIC8qCi0gICAgICogSWYgYSBkaXJlY3Rvcnkgb2YgcmVzb3VyY2Utc3BlY2lmaWMgYXNzZXRzIHdhcyBzdXBwbGllZCwgc2x1cnAgJ2VtIHVwLgotICAgICAqLwotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxkaXJDb3VudDsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IGNoYXIgKnJlcyA9IHJlc0RpcnNbaV07Ci0gICAgICAgIGlmIChyZXMpIHsKLSAgICAgICAgICAgIHR5cGUgPSBnZXRGaWxlVHlwZShyZXMpOwotICAgICAgICAgICAgaWYgKHR5cGUgPT0ga0ZpbGVUeXBlTm9uZXhpc3RlbnQpIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiByZXNvdXJjZSBkaXJlY3RvcnkgJyVzJyBkb2VzIG5vdCBleGlzdFxuIiwgcmVzKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh0eXBlID09IGtGaWxlVHlwZURpcmVjdG9yeSkgewotICAgICAgICAgICAgICAgIGlmIChpPjApIHsKLSAgICAgICAgICAgICAgICAgICAgc3A8QWFwdEFzc2V0cz4gbmV4dE92ZXJsYXkgPSBuZXcgQWFwdEFzc2V0cygpOwotICAgICAgICAgICAgICAgICAgICBjdXJyZW50LT5zZXRPdmVybGF5KG5leHRPdmVybGF5KTsKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IG5leHRPdmVybGF5OwotICAgICAgICAgICAgICAgICAgICBjdXJyZW50LT5zZXRGdWxsUmVzUGF0aHMobUZ1bGxSZXNQYXRocyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvdW50ID0gY3VycmVudC0+c2x1cnBSZXNvdXJjZVRyZWUoYnVuZGxlLCBTdHJpbmc4KHJlcykpOwotCi0gICAgICAgICAgICAgICAgaWYgKGNvdW50IDwgMCkgewotICAgICAgICAgICAgICAgICAgICB0b3RhbENvdW50ID0gY291bnQ7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdG90YWxDb3VudCArPSBjb3VudDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6ICclcycgaXMgbm90IGEgZGlyZWN0b3J5XG4iLCByZXMpOwotICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIAotICAgIH0KLSAgICAvKgotICAgICAqIE5vdyBkbyBhbnkgYWRkaXRpb25hbCByYXcgZmlsZXMuCi0gICAgICovCi0gICAgZm9yIChpbnQgYXJnPTA7IGFyZzxOOyBhcmcrKykgewotICAgICAgICBjb25zdCBjaGFyKiBhc3NldERpciA9IGJ1bmRsZS0+Z2V0RmlsZVNwZWNFbnRyeShhcmcpOwotCi0gICAgICAgIEZpbGVUeXBlIHR5cGUgPSBnZXRGaWxlVHlwZShhc3NldERpcik7Ci0gICAgICAgIGlmICh0eXBlID09IGtGaWxlVHlwZU5vbmV4aXN0ZW50KSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBpbnB1dCBkaXJlY3RvcnkgJyVzJyBkb2VzIG5vdCBleGlzdFxuIiwgYXNzZXREaXIpOwotICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHR5cGUgIT0ga0ZpbGVUeXBlRGlyZWN0b3J5KSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiAnJXMnIGlzIG5vdCBhIGRpcmVjdG9yeVxuIiwgYXNzZXREaXIpOwotICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmc4IGFzc2V0Um9vdChhc3NldERpcik7Ci0KLSAgICAgICAgaWYgKGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKQotICAgICAgICAgICAgcHJpbnRmKCJQcm9jZXNzaW5nIHJhdyBkaXIgJyVzJ1xuIiwgKGNvbnN0IGNoYXIqKSBhc3NldERpcik7Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogRG8gYSByZWN1cnNpdmUgdHJhdmVyc2FsIG9mIHN1YmRpciB0cmVlLiAgV2UgZG9uJ3QgbWFrZSBhbnkKLSAgICAgICAgICogZ3VhcmFudGVlcyBhYm91dCBvcmRlcmluZywgc28gd2UncmUgb2theSB3aXRoIGFuIGlub3JkZXIgc2VhcmNoCi0gICAgICAgICAqIHVzaW5nIHdoYXRldmVyIG9yZGVyIHRoZSBPUyBoYXBwZW5zIHRvIGhhbmQgYmFjayB0byB1cy4KLSAgICAgICAgICovCi0gICAgICAgIGNvdW50ID0gc2x1cnBGdWxsVHJlZShidW5kbGUsIGFzc2V0Um9vdCwgQWFwdEdyb3VwRW50cnkoKSwgU3RyaW5nOCgpLCBtRnVsbEFzc2V0UGF0aHMpOwotICAgICAgICBpZiAoY291bnQgPCAwKSB7Ci0gICAgICAgICAgICAvKiBmYWlsdXJlOyByZXBvcnQgZXJyb3IgYW5kIHJlbW92ZSBhcmNoaXZlICovCi0gICAgICAgICAgICB0b3RhbENvdW50ID0gY291bnQ7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLSAgICAgICAgdG90YWxDb3VudCArPSBjb3VudDsKLQotICAgICAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpCi0gICAgICAgICAgICBwcmludGYoIkZvdW5kICVkIGFzc2V0IGZpbGUlcyBpbiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICBjb3VudCwgKGNvdW50PT0xKSA/ICIiIDogInMiLCBhc3NldERpcik7Ci0gICAgfQotCi0gICAgY291bnQgPSB2YWxpZGF0ZSgpOwotICAgIGlmIChjb3VudCAhPSBOT19FUlJPUikgewotICAgICAgICB0b3RhbENvdW50ID0gY291bnQ7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICBjb3VudCA9IGZpbHRlcihidW5kbGUpOwotICAgIGlmIChjb3VudCAhPSBOT19FUlJPUikgewotICAgICAgICB0b3RhbENvdW50ID0gY291bnQ7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLWJhaWw6Ci0gICAgcmV0dXJuIHRvdGFsQ291bnQ7Ci19Ci0KLXNzaXplX3QgQWFwdEFzc2V0czo6c2x1cnBGdWxsVHJlZShCdW5kbGUqIGJ1bmRsZSwgY29uc3QgU3RyaW5nOCYgc3JjRGlyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQWFwdEdyb3VwRW50cnkmIGtpbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmc4JiByZXNUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8RmlsZVBhdGhTdG9yZT4mIGZ1bGxSZXNQYXRocykKLXsKLSAgICBzc2l6ZV90IHJlcyA9IEFhcHREaXI6OnNsdXJwRnVsbFRyZWUoYnVuZGxlLCBzcmNEaXIsIGtpbmQsIHJlc1R5cGUsIGZ1bGxSZXNQYXRocyk7Ci0gICAgaWYgKHJlcyA+IDApIHsKLSAgICAgICAgbUdyb3VwRW50cmllcy5hZGQoa2luZCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJlczsKLX0KLQotc3NpemVfdCBBYXB0QXNzZXRzOjpzbHVycFJlc291cmNlVHJlZShCdW5kbGUqIGJ1bmRsZSwgY29uc3QgU3RyaW5nOCYgc3JjRGlyKQotewotICAgIHNzaXplX3QgZXJyID0gMDsKLQotICAgIERJUiogZGlyID0gb3BlbmRpcihzcmNEaXIuc3RyaW5nKCkpOwotICAgIGlmIChkaXIgPT0gTlVMTCkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBvcGVuZGlyKCVzKTogJXNcbiIsIHNyY0Rpci5zdHJpbmcoKSwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotCi0gICAgc3RhdHVzX3QgY291bnQgPSAwOwotCi0gICAgLyoKLSAgICAgKiBSdW4gdGhyb3VnaCB0aGUgZGlyZWN0b3J5LCBsb29raW5nIGZvciBkaXJzIHRoYXQgbWF0Y2ggdGhlCi0gICAgICogZXhwZWN0ZWQgcGF0dGVybi4KLSAgICAgKi8KLSAgICB3aGlsZSAoMSkgewotICAgICAgICBzdHJ1Y3QgZGlyZW50KiBlbnRyeSA9IHJlYWRkaXIoZGlyKTsKLSAgICAgICAgaWYgKGVudHJ5ID09IE5VTEwpIHsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGlzSGlkZGVuKHNyY0Rpci5zdHJpbmcoKSwgZW50cnktPmRfbmFtZSkpIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgU3RyaW5nOCBzdWJkaXJOYW1lKHNyY0Rpcik7Ci0gICAgICAgIHN1YmRpck5hbWUuYXBwZW5kUGF0aChlbnRyeS0+ZF9uYW1lKTsKLQotICAgICAgICBBYXB0R3JvdXBFbnRyeSBncm91cDsKLSAgICAgICAgU3RyaW5nOCByZXNUeXBlOwotICAgICAgICBib29sIGIgPSBncm91cC5pbml0RnJvbURpck5hbWUoZW50cnktPmRfbmFtZSwgJnJlc1R5cGUpOwotICAgICAgICBpZiAoIWIpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiaW52YWxpZCByZXNvdXJjZSBkaXJlY3RvcnkgbmFtZTogJXMvJXNcbiIsIHNyY0Rpci5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgZW50cnktPmRfbmFtZSk7Ci0gICAgICAgICAgICBlcnIgPSAtMTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGJ1bmRsZS0+Z2V0TWF4UmVzVmVyc2lvbigpICE9IE5VTEwgJiYgZ3JvdXAuZ2V0VmVyc2lvblN0cmluZygpLmxlbmd0aCgpICE9IDApIHsKLSAgICAgICAgICAgIGludCBtYXhSZXNJbnQgPSBhdG9pKGJ1bmRsZS0+Z2V0TWF4UmVzVmVyc2lvbigpKTsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIgKnZlclN0cmluZyA9IGdyb3VwLmdldFZlcnNpb25TdHJpbmcoKS5zdHJpbmcoKTsKLSAgICAgICAgICAgIGludCBkaXJWZXJzaW9uSW50ID0gYXRvaSh2ZXJTdHJpbmcgKyAxKTsgLy8gc2tpcCAndicgaW4gdmVyc2lvbiBuYW1lCi0gICAgICAgICAgICBpZiAoZGlyVmVyc2lvbkludCA+IG1heFJlc0ludCkgewotICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIm1heCByZXMgJWQsIHNraXBwaW5nICVzXG4iLCBtYXhSZXNJbnQsIGVudHJ5LT5kX25hbWUpOwotICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIEZpbGVUeXBlIHR5cGUgPSBnZXRGaWxlVHlwZShzdWJkaXJOYW1lLnN0cmluZygpKTsKLQotICAgICAgICBpZiAodHlwZSA9PSBrRmlsZVR5cGVEaXJlY3RvcnkpIHsKLSAgICAgICAgICAgIHNwPEFhcHREaXI+IGRpciA9IG1ha2VEaXIocmVzVHlwZSk7Ci0gICAgICAgICAgICBzc2l6ZV90IHJlcyA9IGRpci0+c2x1cnBGdWxsVHJlZShidW5kbGUsIHN1YmRpck5hbWUsIGdyb3VwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzVHlwZSwgbUZ1bGxSZXNQYXRocyk7Ci0gICAgICAgICAgICBpZiAocmVzIDwgMCkgewotICAgICAgICAgICAgICAgIGNvdW50ID0gcmVzOwotICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChyZXMgPiAwKSB7Ci0gICAgICAgICAgICAgICAgbUdyb3VwRW50cmllcy5hZGQoZ3JvdXApOwotICAgICAgICAgICAgICAgIGNvdW50ICs9IHJlczsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gT25seSBhZGQgdGhpcyBkaXJlY3RvcnkgaWYgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIGEgcmVzb3VyY2UgZGlyCi0gICAgICAgICAgICAvLyBmb3IgdGhlIGN1cnJlbnQgdHlwZS4gIFRoaXMgZW5zdXJlcyB0aGF0IHdlIG9ubHkgYWRkIHRoZSBkaXIgb25jZQotICAgICAgICAgICAgLy8gZm9yIGFsbCBjb25maWdzLgotICAgICAgICAgICAgc3A8QWFwdERpcj4gcmRpciA9IHJlc0RpcihyZXNUeXBlKTsKLSAgICAgICAgICAgIGlmIChyZGlyID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBtUmVzRGlycy5hZGQoZGlyKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChidW5kbGUtPmdldFZlcmJvc2UoKSkgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiICAgKGlnbm9yaW5nIGZpbGUgJyVzJylcbiIsIHN1YmRpck5hbWUuc3RyaW5nKCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi1iYWlsOgotICAgIGNsb3NlZGlyKGRpcik7Ci0gICAgZGlyID0gTlVMTDsKLQotICAgIGlmIChlcnIgIT0gMCkgewotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLSAgICByZXR1cm4gY291bnQ7Ci19Ci0KLXNzaXplX3QKLUFhcHRBc3NldHM6OnNsdXJwUmVzb3VyY2VaaXAoQnVuZGxlKiBidW5kbGUsIGNvbnN0IGNoYXIqIGZpbGVuYW1lKQotewotICAgIGludCBjb3VudCA9IDA7Ci0gICAgU29ydGVkVmVjdG9yPEFhcHRHcm91cEVudHJ5PiBlbnRyaWVzOwotCi0gICAgWmlwRmlsZSogemlwID0gbmV3IFppcEZpbGU7Ci0gICAgc3RhdHVzX3QgZXJyID0gemlwLT5vcGVuKGZpbGVuYW1lLCBaaXBGaWxlOjprT3BlblJlYWRPbmx5KTsKLSAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3Igb3BlbmluZyB6aXAgZmlsZSAlc1xuIiwgZmlsZW5hbWUpOwotICAgICAgICBjb3VudCA9IGVycjsKLSAgICAgICAgZGVsZXRlIHppcDsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIGNvbnN0IGludCBOID0gemlwLT5nZXROdW1FbnRyaWVzKCk7Ci0gICAgZm9yIChpbnQgaT0wOyBpPE47IGkrKykgewotICAgICAgICBaaXBFbnRyeSogZW50cnkgPSB6aXAtPmdldEVudHJ5QnlJbmRleChpKTsKLSAgICAgICAgaWYgKGVudHJ5LT5nZXREZWxldGVkKCkpIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgU3RyaW5nOCBlbnRyeU5hbWUoZW50cnktPmdldEZpbGVOYW1lKCkpOwotCi0gICAgICAgIFN0cmluZzggZGlyTmFtZSA9IGVudHJ5TmFtZS5nZXRQYXRoRGlyKCk7Ci0gICAgICAgIHNwPEFhcHREaXI+IGRpciA9IGRpck5hbWUgPT0gIiIgPyB0aGlzIDogbWFrZURpcihkaXJOYW1lKTsKLQotICAgICAgICBTdHJpbmc4IHJlc1R5cGU7Ci0gICAgICAgIEFhcHRHcm91cEVudHJ5IGtpbmQ7Ci0KLSAgICAgICAgU3RyaW5nOCByZW1haW47Ci0gICAgICAgIGlmIChlbnRyeU5hbWUud2Fsa1BhdGgoJnJlbWFpbikgPT0ga1Jlc291cmNlRGlyKSB7Ci0gICAgICAgICAgICAvLyB0aGVzZSBhcmUgdGhlIHJlc291cmNlcywgcHVsbCB0aGVpciB0eXBlIG91dCBvZiB0aGUgZGlyZWN0b3J5IG5hbWUKLSAgICAgICAgICAgIGtpbmQuaW5pdEZyb21EaXJOYW1lKHJlbWFpbi53YWxrUGF0aCgpLnN0cmluZygpLCAmcmVzVHlwZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyB0aGVzZSBhcmUgdW50eXBlZCBhbmQgZG9uJ3QgaGF2ZSBhbiBBYXB0R3JvdXBFbnRyeQotICAgICAgICB9Ci0gICAgICAgIGlmIChlbnRyaWVzLmluZGV4T2Yoa2luZCkgPCAwKSB7Ci0gICAgICAgICAgICBlbnRyaWVzLmFkZChraW5kKTsKLSAgICAgICAgICAgIG1Hcm91cEVudHJpZXMuYWRkKGtpbmQpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gdXNlIHRoZSBvbmUgZnJvbSB0aGUgemlwIGZpbGUgaWYgdGhleSBib3RoIGV4aXN0LgotICAgICAgICBkaXItPnJlbW92ZUZpbGUoZW50cnlOYW1lLmdldFBhdGhMZWFmKCkpOwotCi0gICAgICAgIHNwPEFhcHRGaWxlPiBmaWxlID0gbmV3IEFhcHRGaWxlKGVudHJ5TmFtZSwga2luZCwgcmVzVHlwZSk7Ci0gICAgICAgIHN0YXR1c190IGVyciA9IGRpci0+YWRkTGVhZkZpbGUoZW50cnlOYW1lLmdldFBhdGhMZWFmKCksIGZpbGUpOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImVycj0lcyBlbnRyeU5hbWU9JXNcbiIsIHN0cmVycm9yKGVyciksIGVudHJ5TmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICBjb3VudCA9IGVycjsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotICAgICAgICBmaWxlLT5zZXRDb21wcmVzc2lvbk1ldGhvZChlbnRyeS0+Z2V0Q29tcHJlc3Npb25NZXRob2QoKSk7Ci0KLSNpZiAwCi0gICAgICAgIGlmIChlbnRyeU5hbWUgPT0gIkFuZHJvaWRNYW5pZmVzdC54bWwiKSB7Ci0gICAgICAgICAgICBwcmludGYoIkFuZHJvaWRNYW5pZmVzdC54bWxcbiIpOwotICAgICAgICB9Ci0gICAgICAgIHByaW50ZigiXG5cbmZpbGU6ICVzXG4iLCBlbnRyeU5hbWUuc3RyaW5nKCkpOwotI2VuZGlmCi0KLSAgICAgICAgc2l6ZV90IGxlbiA9IGVudHJ5LT5nZXRVbmNvbXByZXNzZWRMZW4oKTsKLSAgICAgICAgdm9pZCogZGF0YSA9IHppcC0+dW5jb21wcmVzcyhlbnRyeSk7Ci0gICAgICAgIHZvaWQqIGJ1ZiA9IGZpbGUtPmVkaXREYXRhKGxlbik7Ci0gICAgICAgIG1lbWNweShidWYsIGRhdGEsIGxlbik7Ci0KLSNpZiAwCi0gICAgICAgIGNvbnN0IGludCBPRkYgPSAwOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBwID0gKHVuc2lnbmVkIGNoYXIqKWRhdGE7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGVuZCA9IHArbGVuOwotICAgICAgICBwICs9IE9GRjsKLSAgICAgICAgZm9yIChpbnQgaT0wOyBpPDMyICYmIHAgPCBlbmQ7IGkrKykgewotICAgICAgICAgICAgcHJpbnRmKCIweCUwM3ggIiwgaSoweDEwICsgT0ZGKTsKLSAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajwweDEwICYmIHAgPCBlbmQ7IGorKykgewotICAgICAgICAgICAgICAgIHByaW50ZigiICUwMngiLCAqcCk7Ci0gICAgICAgICAgICAgICAgcCsrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJpbnRmKCJcbiIpOwotICAgICAgICB9Ci0jZW5kaWYKLQotICAgICAgICBmcmVlKGRhdGEpOwotCi0gICAgICAgIGNvdW50Kys7Ci0gICAgfQotCi1iYWlsOgotICAgIGRlbGV0ZSB6aXA7Ci0gICAgcmV0dXJuIGNvdW50OwotfQotCi1zdGF0dXNfdCBBYXB0QXNzZXRzOjpmaWx0ZXIoQnVuZGxlKiBidW5kbGUpCi17Ci0gICAgUmVzb3VyY2VGaWx0ZXIgcmVxRmlsdGVyOwotICAgIHN0YXR1c190IGVyciA9IHJlcUZpbHRlci5wYXJzZShidW5kbGUtPmdldENvbmZpZ3VyYXRpb25zKCkpOwotICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0KLSAgICBSZXNvdXJjZUZpbHRlciBwcmVmRmlsdGVyOwotICAgIGVyciA9IHByZWZGaWx0ZXIucGFyc2UoYnVuZGxlLT5nZXRQcmVmZXJyZWRDb25maWd1cmF0aW9ucygpKTsKLSAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiBlcnI7Ci0gICAgfQotCi0gICAgaWYgKHJlcUZpbHRlci5pc0VtcHR5KCkgJiYgcHJlZkZpbHRlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgcmV0dXJuIE5PX0VSUk9SOwotICAgIH0KLQotICAgIGlmIChidW5kbGUtPmdldFZlcmJvc2UoKSkgewotICAgICAgICBpZiAoIXJlcUZpbHRlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHByaW50ZigiQXBwbHlpbmcgcmVxdWlyZWQgZmlsdGVyOiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLT5nZXRDb25maWd1cmF0aW9ucygpKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXByZWZGaWx0ZXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBwcmludGYoIkFwcGx5aW5nIHByZWZlcnJlZCBmaWx0ZXI6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICBidW5kbGUtPmdldFByZWZlcnJlZENvbmZpZ3VyYXRpb25zKCkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgY29uc3QgVmVjdG9yPHNwPEFhcHREaXI+ID4mIHJlc2RpcnMgPSBtUmVzRGlyczsKLSAgICBjb25zdCBzaXplX3QgTkQgPSByZXNkaXJzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8TkQ7IGkrKykgewotICAgICAgICBjb25zdCBzcDxBYXB0RGlyPiYgZGlyID0gcmVzZGlycy5pdGVtQXQoaSk7Ci0gICAgICAgIGlmIChkaXItPmdldExlYWYoKSA9PSBrVmFsdWVzRGlyKSB7Ci0gICAgICAgICAgICAvLyBUaGUgInZhbHVlIiBkaXIgaXMgc3BlY2lhbCBzaW5jZSBhIHNpbmdsZSBmaWxlIGRlZmluZXMKLSAgICAgICAgICAgIC8vIG11bHRpcGxlIHJlc291cmNlcywgc28gd2UgY2FuIG5vdCBkbyBmaWx0ZXJpbmcgb24gdGhlCi0gICAgICAgICAgICAvLyBmaWxlcyB0aGVtc2VsdmVzLgotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGRpci0+Z2V0TGVhZigpID09IGtNaXBtYXBEaXIpIHsKLSAgICAgICAgICAgIC8vIFdlIGFsc28gc2tpcCB0aGUgIm1pcG1hcCIgZGlyZWN0b3J5LCBzaW5jZSB0aGUgcG9pbnQgb2YgdGhpcwotICAgICAgICAgICAgLy8gaXMgdG8gaW5jbHVkZSBhbGwgZGVuc2l0aWVzIHdpdGhvdXQgc3RyaXBwaW5nLiAgSWYgeW91IHB1dAotICAgICAgICAgICAgLy8gb3RoZXIgY29uZmlndXJhdGlvbnMgaW4gaGVyZSBhcyB3ZWxsIHRoZXkgd29uJ3QgYmUgc3RyaXBwZWQKLSAgICAgICAgICAgIC8vIGVpdGhlci4uLiAgU28gZG9uJ3QgZG8gdGhhdC4gIFNlcmlvdXNseS4gIFdoYXQgaXMgd3Jvbmcgd2l0aCB5b3U/Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IHNpemVfdCBORyA9IGRpci0+Z2V0RmlsZXMoKS5zaXplKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGo9MDsgajxORzsgaisrKSB7Ci0gICAgICAgICAgICBzcDxBYXB0R3JvdXA+IGdycCA9IGRpci0+Z2V0RmlsZXMoKS52YWx1ZUF0KGopOwotCi0gICAgICAgICAgICAvLyBGaXJzdCByZW1vdmUgYW55IGNvbmZpZ3VyYXRpb25zIHdlIGtub3cgd2UgZG9uJ3QgbmVlZC4KLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGs9MDsgazxncnAtPmdldEZpbGVzKCkuc2l6ZSgpOyBrKyspIHsKLSAgICAgICAgICAgICAgICBzcDxBYXB0RmlsZT4gZmlsZSA9IGdycC0+Z2V0RmlsZXMoKS52YWx1ZUF0KGspOwotICAgICAgICAgICAgICAgIGlmIChrID09IDAgJiYgZ3JwLT5nZXRGaWxlcygpLnNpemUoKSA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhlIG9ubHkgZmlsZSBsZWZ0LCB3ZSBuZWVkIHRvIGtlZXAgaXQuCi0gICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSB0aGUgcmVzb3VyY2UgSURzIHdlIGFyZSB1c2luZyB3aWxsIGJlIGluY29uc2lzdGVudAotICAgICAgICAgICAgICAgICAgICAvLyB3aXRoIHdoYXQgd2UgZ2V0IHdoZW4gbm90IHN0cmlwcGluZy4gIFN1Y2t5LCBidXQgYXQgbGVhc3QKLSAgICAgICAgICAgICAgICAgICAgLy8gZm9yIG5vdyB3ZSBjYW4gcmVseSBvbiB0aGUgYmFjay1lbmQgZG9pbmcgYW5vdGhlciBmaWx0ZXJpbmcKLSAgICAgICAgICAgICAgICAgICAgLy8gcGFzcyB0byB0YWtlIHRoaXMgb3V0IGFuZCBsZWF2ZSB1cyB3aXRoIHRoaXMgcmVzb3VyY2UgbmFtZQotICAgICAgICAgICAgICAgICAgICAvLyBjb250YWluaW5nIG5vIGVudHJpZXMuCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoZmlsZS0+Z2V0UGF0aCgpLmdldFBhdGhFeHRlbnNpb24oKSA9PSAiLnhtbCIpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgcmVtb3ZlIC54bWwgZmlsZXMgYXQgdGhpcyBwb2ludCwgYmVjYXVzZSB3aGVuCi0gICAgICAgICAgICAgICAgICAgIC8vIHdlIHBhcnNlIHRoZW0gdGhleSBtYXkgYWRkIGlkZW50aWZpZXIgcmVzb3VyY2VzLCBzbwotICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmluZyB0aGVtIGNhbiBjYXVzZSBvdXIgcmVzb3VyY2UgaWRlbnRpZmllcnMgdG8KLSAgICAgICAgICAgICAgICAgICAgLy8gYmVjb21lIGluY29uc2lzdGVudC4KLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgY29uZmlnKGZpbGUtPmdldEdyb3VwRW50cnkoKS50b1BhcmFtcygpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXJlcUZpbHRlci5tYXRjaChjb25maWcpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChidW5kbGUtPmdldFZlcmJvc2UoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJQcnVuaW5nIHVubmVlZGVkIHJlc291cmNlOiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS0+Z2V0UHJpbnRhYmxlU291cmNlKCkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGdycC0+cmVtb3ZlRmlsZShrKTsKLSAgICAgICAgICAgICAgICAgICAgay0tOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gUXVpY2sgY2hlY2s6IG5vIHByZWZlcnJlZCBmaWx0ZXJzLCBub3RoaW5nIG1vcmUgdG8gZG8uCi0gICAgICAgICAgICBpZiAocHJlZkZpbHRlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gR2V0IHRoZSBwcmVmZXJyZWQgZGVuc2l0eSBpZiB0aGVyZSBpcyBvbmUuIFdlIGRvIG5vdCBtYXRjaCBleGFjdGx5IGZvciBkZW5zaXR5LgotICAgICAgICAgICAgLy8gSWYgb3VyIHByZWZlcnJlZCBkZW5zaXR5IGlzIGhkcGkgYnV0IHdlIG9ubHkgaGF2ZSBtZHBpIGFuZCB4aGRwaSByZXNvdXJjZXMsIHdlCi0gICAgICAgICAgICAvLyBwaWNrIHhoZHBpLgotICAgICAgICAgICAgdWludDMyX3QgcHJlZmVycmVkRGVuc2l0eSA9IDA7Ci0gICAgICAgICAgICBjb25zdCBTb3J0ZWRWZWN0b3I8dWludDMyX3Q+KiBwcmVmZXJyZWRDb25maWdzID0gcHJlZkZpbHRlci5jb25maWdzRm9yQXhpcyhBWElTX0RFTlNJVFkpOwotICAgICAgICAgICAgaWYgKHByZWZlcnJlZENvbmZpZ3MgIT0gTlVMTCAmJiBwcmVmZXJyZWRDb25maWdzLT5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgcHJlZmVycmVkRGVuc2l0eSA9ICgqcHJlZmVycmVkQ29uZmlncylbMF07Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIE5vdyBkZWFsIHdpdGggcHJlZmVycmVkIGNvbmZpZ3VyYXRpb25zLgotICAgICAgICAgICAgZm9yIChpbnQgYXhpcz1BWElTX1NUQVJUOyBheGlzPD1BWElTX0VORDsgYXhpcysrKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChzaXplX3Qgaz0wOyBrPGdycC0+Z2V0RmlsZXMoKS5zaXplKCk7IGsrKykgewotICAgICAgICAgICAgICAgICAgICBzcDxBYXB0RmlsZT4gZmlsZSA9IGdycC0+Z2V0RmlsZXMoKS52YWx1ZUF0KGspOwotICAgICAgICAgICAgICAgICAgICBpZiAoayA9PSAwICYmIGdycC0+Z2V0RmlsZXMoKS5zaXplKCkgPT0gMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgb25seSBmaWxlIGxlZnQsIHdlIG5lZWQgdG8ga2VlcCBpdC4KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSB0aGUgcmVzb3VyY2UgSURzIHdlIGFyZSB1c2luZyB3aWxsIGJlIGluY29uc2lzdGVudAotICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2l0aCB3aGF0IHdlIGdldCB3aGVuIG5vdCBzdHJpcHBpbmcuICBTdWNreSwgYnV0IGF0IGxlYXN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3Igbm93IHdlIGNhbiByZWx5IG9uIHRoZSBiYWNrLWVuZCBkb2luZyBhbm90aGVyIGZpbHRlcmluZwotICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGFzcyB0byB0YWtlIHRoaXMgb3V0IGFuZCBsZWF2ZSB1cyB3aXRoIHRoaXMgcmVzb3VyY2UgbmFtZQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGFpbmluZyBubyBlbnRyaWVzLgotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGUtPmdldFBhdGgoKS5nZXRQYXRoRXh0ZW5zaW9uKCkgPT0gIi54bWwiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBjYW4ndCByZW1vdmUgLnhtbCBmaWxlcyBhdCB0aGlzIHBvaW50LCBiZWNhdXNlIHdoZW4KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIHBhcnNlIHRoZW0gdGhleSBtYXkgYWRkIGlkZW50aWZpZXIgcmVzb3VyY2VzLCBzbwotICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZpbmcgdGhlbSBjYW4gY2F1c2Ugb3VyIHJlc291cmNlIGlkZW50aWZpZXJzIHRvCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBiZWNvbWUgaW5jb25zaXN0ZW50LgotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzVGFibGVfY29uZmlnJiBjb25maWcoZmlsZS0+Z2V0R3JvdXBFbnRyeSgpLnRvUGFyYW1zKCkpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIXByZWZGaWx0ZXIubWF0Y2goYXhpcywgY29uZmlnKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHJlc291cmNlIHdlIHdvdWxkIHByZWZlciBub3QgdG8gaGF2ZS4gIENoZWNrCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBzZWUgaWYgaGF2ZSBhIHNpbWlsYXIgdmFyaWF0aW9uIHRoYXQgd2Ugd291bGQgbGlrZQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gaGF2ZSBhbmQsIGlmIHNvLCB3ZSBjYW4gZHJvcCBpdC4KLQotICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgYmVzdERlbnNpdHkgPSBjb25maWcuZGVuc2l0eTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgbT0wOyBtPGdycC0+Z2V0RmlsZXMoKS5zaXplKCk7IG0rKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtID09IGspIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPEFhcHRGaWxlPiBtZmlsZSA9IGdycC0+Z2V0RmlsZXMoKS52YWx1ZUF0KG0pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgbWNvbmZpZyhtZmlsZS0+Z2V0R3JvdXBFbnRyeSgpLnRvUGFyYW1zKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBYXB0R3JvdXBFbnRyeTo6Y29uZmlnU2FtZUV4Y2VwdChjb25maWcsIG1jb25maWcsIGF4aXMpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChheGlzID09IEFYSVNfREVOU0lUWSAmJiBwcmVmZXJyZWREZW5zaXR5ID4gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2VlIGlmIHRoZXJlIGlzIGEgYmV0dGVyIGRlbnNpdHkgcmVzb3VyY2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtY29uZmlnLmRlbnNpdHkgPCBiZXN0RGVuc2l0eSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtY29uZmlnLmRlbnNpdHkgPiBwcmVmZXJyZWREZW5zaXR5ICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlc3REZW5zaXR5ID4gcHJlZmVycmVkRGVuc2l0eSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZGVuc2l0eSBpcyBiZXR3ZWVuIG91ciBiZXN0IGRlbnNpdHkgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHByZWZlcnJlZCBkZW5zaXR5LCB0aGVyZWZvcmUgaXQgaXMgYmV0dGVyLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlc3REZW5zaXR5ID0gbWNvbmZpZy5kZW5zaXR5OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtY29uZmlnLmRlbnNpdHkgPiBiZXN0RGVuc2l0eSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXN0RGVuc2l0eSA8IHByZWZlcnJlZERlbnNpdHkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGRlbnNpdHkgaXMgYmV0dGVyIHRoYW4gb3VyIGJlc3QgZGVuc2l0eSBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdXIgYmVzdCBkZW5zaXR5IHdhcyBzbWFsbGVyIHRoYW4gb3VyIHByZWZlcnJlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlbnNpdHksIHNvIGl0IGlzIGJldHRlci4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXN0RGVuc2l0eSA9IG1jb25maWcuZGVuc2l0eTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVmRmlsdGVyLm1hdGNoKGF4aXMsIG1jb25maWcpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIlBydW5pbmcgdW5uZWVkZWQgcmVzb3VyY2U6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS0+Z2V0UHJpbnRhYmxlU291cmNlKCkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JwLT5yZW1vdmVGaWxlKGspOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgay0tOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChheGlzID09IEFYSVNfREVOU0lUWSAmJiBwcmVmZXJyZWREZW5zaXR5ID4gMCAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXN0RGVuc2l0eSAhPSBjb25maWcuZGVuc2l0eSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidW5kbGUtPmdldFZlcmJvc2UoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIlBydW5pbmcgdW5uZWVkZWQgcmVzb3VyY2U6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUtPmdldFByaW50YWJsZVNvdXJjZSgpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JwLT5yZW1vdmVGaWxlKGspOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGstLTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3A8QWFwdFN5bWJvbHM+IEFhcHRBc3NldHM6OmdldFN5bWJvbHNGb3IoY29uc3QgU3RyaW5nOCYgbmFtZSkKLXsKLSAgICBzcDxBYXB0U3ltYm9scz4gc3ltID0gbVN5bWJvbHMudmFsdWVGb3IobmFtZSk7Ci0gICAgaWYgKHN5bSA9PSBOVUxMKSB7Ci0gICAgICAgIHN5bSA9IG5ldyBBYXB0U3ltYm9scygpOwotICAgICAgICBtU3ltYm9scy5hZGQobmFtZSwgc3ltKTsKLSAgICB9Ci0gICAgcmV0dXJuIHN5bTsKLX0KLQotc3A8QWFwdFN5bWJvbHM+IEFhcHRBc3NldHM6OmdldEphdmFTeW1ib2xzRm9yKGNvbnN0IFN0cmluZzgmIG5hbWUpCi17Ci0gICAgc3A8QWFwdFN5bWJvbHM+IHN5bSA9IG1KYXZhU3ltYm9scy52YWx1ZUZvcihuYW1lKTsKLSAgICBpZiAoc3ltID09IE5VTEwpIHsKLSAgICAgICAgc3ltID0gbmV3IEFhcHRTeW1ib2xzKCk7Ci0gICAgICAgIG1KYXZhU3ltYm9scy5hZGQobmFtZSwgc3ltKTsKLSAgICB9Ci0gICAgcmV0dXJuIHN5bTsKLX0KLQotc3RhdHVzX3QgQWFwdEFzc2V0czo6YXBwbHlKYXZhU3ltYm9scygpCi17Ci0gICAgc2l6ZV90IE4gPSBtSmF2YVN5bWJvbHMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgY29uc3QgU3RyaW5nOCYgbmFtZSA9IG1KYXZhU3ltYm9scy5rZXlBdChpKTsKLSAgICAgICAgY29uc3Qgc3A8QWFwdFN5bWJvbHM+JiBzeW1ib2xzID0gbUphdmFTeW1ib2xzLnZhbHVlQXQoaSk7Ci0gICAgICAgIHNzaXplX3QgcG9zID0gbVN5bWJvbHMuaW5kZXhPZktleShuYW1lKTsKLSAgICAgICAgaWYgKHBvcyA8IDApIHsKLSAgICAgICAgICAgIFNvdXJjZVBvcyBwb3M7Ci0gICAgICAgICAgICBwb3MuZXJyb3IoIkphdmEgc3ltYm9sIGRpciAlcyBub3QgZGVmaW5lZFxuIiwgbmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotICAgICAgICAvL3ByaW50ZigiKioqKiBhcHBseWluZyBqYXZhIHN5bWJvbHMgaW4gZGlyICVzXG4iLCBuYW1lLnN0cmluZygpKTsKLSAgICAgICAgc3RhdHVzX3QgZXJyID0gbVN5bWJvbHMudmFsdWVBdChwb3MpLT5hcHBseUphdmFTeW1ib2xzKHN5bWJvbHMpOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi1ib29sIEFhcHRBc3NldHM6OmlzSmF2YVN5bWJvbChjb25zdCBBYXB0U3ltYm9sRW50cnkmIHN5bSwgYm9vbCBpbmNsdWRlUHJpdmF0ZSkgY29uc3QgewotICAgIC8vcHJpbnRmKCJpc0phdmFTeW1ib2wgJXM6IHB1YmxpYz0lZCwgaW5jbHVkZVByaXZhdGU9JWQsIGlzSmF2YVN5bWJvbD0lZFxuIiwKLSAgICAvLyAgICAgICAgc3ltLm5hbWUuc3RyaW5nKCksIHN5bS5pc1B1YmxpYyA/IDEgOiAwLCBpbmNsdWRlUHJpdmF0ZSA/IDEgOiAwLAotICAgIC8vICAgICAgICBzeW0uaXNKYXZhU3ltYm9sID8gMSA6IDApOwotICAgIGlmICghbUhhdmVQcml2YXRlU3ltYm9scykgcmV0dXJuIHRydWU7Ci0gICAgaWYgKHN5bS5pc1B1YmxpYykgcmV0dXJuIHRydWU7Ci0gICAgaWYgKGluY2x1ZGVQcml2YXRlICYmIHN5bS5pc0phdmFTeW1ib2wpIHJldHVybiB0cnVlOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdHVzX3QgQWFwdEFzc2V0czo6YnVpbGRJbmNsdWRlZFJlc291cmNlcyhCdW5kbGUqIGJ1bmRsZSkKLXsKLSAgICBpZiAoIW1IYXZlSW5jbHVkZWRBc3NldHMpIHsKLSAgICAgICAgLy8gQWRkIGluIGFsbCBpbmNsdWRlcy4KLSAgICAgICAgY29uc3QgVmVjdG9yPGNvbnN0IGNoYXIqPiYgaW5jbCA9IGJ1bmRsZS0+Z2V0UGFja2FnZUluY2x1ZGVzKCk7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBOPWluY2wuc2l6ZSgpOwotICAgICAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJJbmNsdWRpbmcgcmVzb3VyY2VzIGZyb20gcGFja2FnZTogJXNcbiIsIGluY2xbaV0pOwotICAgICAgICAgICAgaWYgKCFtSW5jbHVkZWRBc3NldHMuYWRkQXNzZXRQYXRoKFN0cmluZzgoaW5jbFtpXSksIE5VTEwpKSB7Ci0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogQXNzZXQgcGFja2FnZSBpbmNsdWRlICclcycgbm90IGZvdW5kLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGluY2xbaV0pOwotICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIG1IYXZlSW5jbHVkZWRBc3NldHMgPSB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3RhdHVzX3QgQWFwdEFzc2V0czo6YWRkSW5jbHVkZWRSZXNvdXJjZXMoY29uc3Qgc3A8QWFwdEZpbGU+JiBmaWxlKQotewotICAgIGNvbnN0IFJlc1RhYmxlJiByZXMgPSBnZXRJbmNsdWRlZFJlc291cmNlcygpOwotICAgIC8vIFhYWCBkaXJ0eSEKLSAgICByZXR1cm4gY29uc3RfY2FzdDxSZXNUYWJsZSY+KHJlcykuYWRkKGZpbGUtPmdldERhdGEoKSwgZmlsZS0+Z2V0U2l6ZSgpLCBOVUxMKTsKLX0KLQotY29uc3QgUmVzVGFibGUmIEFhcHRBc3NldHM6OmdldEluY2x1ZGVkUmVzb3VyY2VzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbUluY2x1ZGVkQXNzZXRzLmdldFJlc291cmNlcyhmYWxzZSk7Ci19Ci0KLXZvaWQgQWFwdEFzc2V0czo6cHJpbnQoY29uc3QgU3RyaW5nOCYgcHJlZml4KSBjb25zdAotewotICAgIFN0cmluZzggaW5uZXJQcmVmaXgocHJlZml4KTsKLSAgICBpbm5lclByZWZpeC5hcHBlbmQoIiAgIik7Ci0gICAgU3RyaW5nOCBpbm5lcklubmVyUHJlZml4KGlubmVyUHJlZml4KTsKLSAgICBpbm5lcklubmVyUHJlZml4LmFwcGVuZCgiICAiKTsKLSAgICBwcmludGYoIiVzQ29uZmlndXJhdGlvbnM6XG4iLCBwcmVmaXguc3RyaW5nKCkpOwotICAgIGNvbnN0IHNpemVfdCBOPW1Hcm91cEVudHJpZXMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgU3RyaW5nOCBjbmFtZSA9IG1Hcm91cEVudHJpZXMuaXRlbUF0KGkpLnRvRGlyTmFtZShTdHJpbmc4KCkpOwotICAgICAgICBwcmludGYoIiVzICVzXG4iLCBwcmVmaXguc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgY25hbWUgIT0gIiIgPyBjbmFtZS5zdHJpbmcoKSA6ICIoZGVmYXVsdCkiKTsKLSAgICB9Ci0KLSAgICBwcmludGYoIlxuJXNGaWxlczpcbiIsIHByZWZpeC5zdHJpbmcoKSk7Ci0gICAgQWFwdERpcjo6cHJpbnQoaW5uZXJQcmVmaXgpOwotCi0gICAgcHJpbnRmKCJcbiVzUmVzb3VyY2UgRGlyczpcbiIsIHByZWZpeC5zdHJpbmcoKSk7Ci0gICAgY29uc3QgVmVjdG9yPHNwPEFhcHREaXI+ID4mIHJlc2RpcnMgPSBtUmVzRGlyczsKLSAgICBjb25zdCBzaXplX3QgTlIgPSByZXNkaXJzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8TlI7IGkrKykgewotICAgICAgICBjb25zdCBzcDxBYXB0RGlyPiYgZCA9IHJlc2RpcnMuaXRlbUF0KGkpOwotICAgICAgICBwcmludGYoIiVzICBUeXBlICVzXG4iLCBwcmVmaXguc3RyaW5nKCksIGQtPmdldExlYWYoKS5zdHJpbmcoKSk7Ci0gICAgICAgIGQtPnByaW50KGlubmVySW5uZXJQcmVmaXgpOwotICAgIH0KLX0KLQotc3A8QWFwdERpcj4gQWFwdEFzc2V0czo6cmVzRGlyKGNvbnN0IFN0cmluZzgmIG5hbWUpIGNvbnN0Ci17Ci0gICAgY29uc3QgVmVjdG9yPHNwPEFhcHREaXI+ID4mIHJlc2RpcnMgPSBtUmVzRGlyczsKLSAgICBjb25zdCBzaXplX3QgTiA9IHJlc2RpcnMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgY29uc3Qgc3A8QWFwdERpcj4mIGQgPSByZXNkaXJzLml0ZW1BdChpKTsKLSAgICAgICAgaWYgKGQtPmdldExlYWYoKSA9PSBuYW1lKSB7Ci0gICAgICAgICAgICByZXR1cm4gZDsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gTlVMTDsKLX0KLQotYm9vbAotdmFsaWRfc3ltYm9sX25hbWUoY29uc3QgU3RyaW5nOCYgc3ltYm9sKQotewotICAgIHN0YXRpYyBjaGFyIGNvbnN0ICogY29uc3QgS0VZV09SRFNbXSA9IHsKLSAgICAgICAgImFic3RyYWN0IiwgImFzc2VydCIsICJib29sZWFuIiwgImJyZWFrIiwKLSAgICAgICAgImJ5dGUiLCAiY2FzZSIsICJjYXRjaCIsICJjaGFyIiwgImNsYXNzIiwgImNvbnN0IiwgImNvbnRpbnVlIiwKLSAgICAgICAgImRlZmF1bHQiLCAiZG8iLCAiZG91YmxlIiwgImVsc2UiLCAiZW51bSIsICJleHRlbmRzIiwgImZpbmFsIiwKLSAgICAgICAgImZpbmFsbHkiLCAiZmxvYXQiLCAiZm9yIiwgImdvdG8iLCAiaWYiLCAiaW1wbGVtZW50cyIsICJpbXBvcnQiLAotICAgICAgICAiaW5zdGFuY2VvZiIsICJpbnQiLCAiaW50ZXJmYWNlIiwgImxvbmciLCAibmF0aXZlIiwgIm5ldyIsICJwYWNrYWdlIiwKLSAgICAgICAgInByaXZhdGUiLCAicHJvdGVjdGVkIiwgInB1YmxpYyIsICJyZXR1cm4iLCAic2hvcnQiLCAic3RhdGljIiwKLSAgICAgICAgInN0cmljdGZwIiwgInN1cGVyIiwgInN3aXRjaCIsICJzeW5jaHJvbml6ZWQiLCAidGhpcyIsICJ0aHJvdyIsCi0gICAgICAgICJ0aHJvd3MiLCAidHJhbnNpZW50IiwgInRyeSIsICJ2b2lkIiwgInZvbGF0aWxlIiwgIndoaWxlIiwKLSAgICAgICAgInRydWUiLCAiZmFsc2UiLCAibnVsbCIsCi0gICAgICAgIE5VTEwKLSAgICB9OwotICAgIGNvbnN0IGNoYXIqY29uc3QqIGsgPSBLRVlXT1JEUzsKLSAgICBjb25zdCBjaGFyKmNvbnN0IHMgPSBzeW1ib2wuc3RyaW5nKCk7Ci0gICAgd2hpbGUgKCprKSB7Ci0gICAgICAgIGlmICgwID09IHN0cmNtcChzLCAqaykpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBrKys7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC9BYXB0QXNzZXRzLmggYi90b29scy9hYXB0L0FhcHRBc3NldHMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWNmYTkxMy4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L0FhcHRBc3NldHMuaAorKysgL2Rldi9udWxsCkBAIC0xLDYzMyArMCwwIEBACi0vLwotLy8gQ29weXJpZ2h0IDIwMDYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotLy8KLS8vIEluZm9ybWF0aW9uIGFib3V0IGFzc2V0cyBiZWluZyBvcGVyYXRlZCBvbi4KLS8vCi0jaWZuZGVmIF9fQUFQVF9BU1NFVFNfSAotI2RlZmluZSBfX0FBUFRfQVNTRVRTX0gKLQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPGFuZHJvaWRmdy9Bc3NldE1hbmFnZXIuaD4KLSNpbmNsdWRlIDxhbmRyb2lkZncvUmVzb3VyY2VUeXBlcy5oPgotI2luY2x1ZGUgPHV0aWxzL0tleWVkVmVjdG9yLmg+Ci0jaW5jbHVkZSA8dXRpbHMvUmVmQmFzZS5oPgotI2luY2x1ZGUgPHV0aWxzL1NvcnRlZFZlY3Rvci5oPgotI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KLSNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+Ci0jaW5jbHVkZSA8dXRpbHMvVmVjdG9yLmg+Ci0jaW5jbHVkZSAiWmlwRmlsZS5oIgotCi0jaW5jbHVkZSAiQnVuZGxlLmgiCi0jaW5jbHVkZSAiU291cmNlUG9zLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwotCi0KLWV4dGVybiBjb25zdCBjaGFyICogY29uc3QgZ0RlZmF1bHRJZ25vcmVBc3NldHM7Ci1leHRlcm4gY29uc3QgY2hhciAqIGdVc2VySWdub3JlQXNzZXRzOwotCi1ib29sIHZhbGlkX3N5bWJvbF9uYW1lKGNvbnN0IFN0cmluZzgmIHN0cik7Ci0KLWNsYXNzIEFhcHRBc3NldHM7Ci0KLWVudW0gewotICAgIEFYSVNfTk9ORSA9IDAsCi0gICAgQVhJU19NQ0MgPSAxLAotICAgIEFYSVNfTU5DLAotICAgIEFYSVNfTEFOR1VBR0UsCi0gICAgQVhJU19SRUdJT04sCi0gICAgQVhJU19TQ1JFRU5MQVlPVVRTSVpFLAotICAgIEFYSVNfU0NSRUVOTEFZT1VUTE9ORywKLSAgICBBWElTX09SSUVOVEFUSU9OLAotICAgIEFYSVNfVUlNT0RFVFlQRSwKLSAgICBBWElTX1VJTU9ERU5JR0hULAotICAgIEFYSVNfREVOU0lUWSwKLSAgICBBWElTX1RPVUNIU0NSRUVOLAotICAgIEFYSVNfS0VZU0hJRERFTiwKLSAgICBBWElTX0tFWUJPQVJELAotICAgIEFYSVNfTkFWSElEREVOLAotICAgIEFYSVNfTkFWSUdBVElPTiwKLSAgICBBWElTX1NDUkVFTlNJWkUsCi0gICAgQVhJU19TTUFMTEVTVFNDUkVFTldJRFRIRFAsCi0gICAgQVhJU19TQ1JFRU5XSURUSERQLAotICAgIEFYSVNfU0NSRUVOSEVJR0hURFAsCi0gICAgQVhJU19MQVlPVVRESVIsCi0gICAgQVhJU19WRVJTSU9OLAotCi0gICAgQVhJU19TVEFSVCA9IEFYSVNfTUNDLAotICAgIEFYSVNfRU5EID0gQVhJU19WRVJTSU9OLAotfTsKLQotLyoqCi0gKiBUaGlzIHN0cnVjdHVyZSBjb250YWlucyBhIHNwZWNpZmljIHZhcmlhdGlvbiBvZiBhIHNpbmdsZSBmaWxlIG91dAotICogb2YgYWxsIHRoZSB2YXJpYXRpb25zIGl0IGNhbiBoYXZlIHRoYXQgd2UgY2FuIGhhdmUuCi0gKi8KLXN0cnVjdCBBYXB0R3JvdXBFbnRyeQotewotcHVibGljOgotICAgIEFhcHRHcm91cEVudHJ5KCkgOiBtUGFyYW1zQ2hhbmdlZCh0cnVlKSB7IH0KLSAgICBBYXB0R3JvdXBFbnRyeShjb25zdCBTdHJpbmc4JiBfbG9jYWxlLCBjb25zdCBTdHJpbmc4JiBfdmVuZG9yKQotICAgICAgICA6IGxvY2FsZShfbG9jYWxlKSwgdmVuZG9yKF92ZW5kb3IpLCBtUGFyYW1zQ2hhbmdlZCh0cnVlKSB7IH0KLQotICAgIGJvb2wgaW5pdEZyb21EaXJOYW1lKGNvbnN0IGNoYXIqIGRpciwgU3RyaW5nOCogcmVzVHlwZSk7Ci0KLSAgICBzdGF0aWMgc3RhdHVzX3QgcGFyc2VOYW1lUGFydChjb25zdCBTdHJpbmc4JiBwYXJ0LCBpbnQqIGF4aXMsIHVpbnQzMl90KiB2YWx1ZSk7Ci0KLSAgICBzdGF0aWMgdWludDMyX3QgZ2V0Q29uZmlnVmFsdWVGb3JBeGlzKGNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgY29uZmlnLCBpbnQgYXhpcyk7Ci0KLSAgICBzdGF0aWMgYm9vbCBjb25maWdTYW1lRXhjZXB0KGNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgY29uZmlnLAotICAgICAgICAgICAgY29uc3QgUmVzVGFibGVfY29uZmlnJiBvdGhlckNvbmZpZywgaW50IGF4aXMpOwotCi0gICAgc3RhdGljIGJvb2wgZ2V0TWNjTmFtZShjb25zdCBjaGFyKiBuYW1lLCBSZXNUYWJsZV9jb25maWcqIG91dCA9IE5VTEwpOwotICAgIHN0YXRpYyBib29sIGdldE1uY05hbWUoY29uc3QgY2hhciogbmFtZSwgUmVzVGFibGVfY29uZmlnKiBvdXQgPSBOVUxMKTsKLSAgICBzdGF0aWMgYm9vbCBnZXRMb2NhbGVOYW1lKGNvbnN0IGNoYXIqIG5hbWUsIFJlc1RhYmxlX2NvbmZpZyogb3V0ID0gTlVMTCk7Ci0gICAgc3RhdGljIGJvb2wgZ2V0U2NyZWVuTGF5b3V0U2l6ZU5hbWUoY29uc3QgY2hhciogbmFtZSwgUmVzVGFibGVfY29uZmlnKiBvdXQgPSBOVUxMKTsKLSAgICBzdGF0aWMgYm9vbCBnZXRTY3JlZW5MYXlvdXRMb25nTmFtZShjb25zdCBjaGFyKiBuYW1lLCBSZXNUYWJsZV9jb25maWcqIG91dCA9IE5VTEwpOwotICAgIHN0YXRpYyBib29sIGdldE9yaWVudGF0aW9uTmFtZShjb25zdCBjaGFyKiBuYW1lLCBSZXNUYWJsZV9jb25maWcqIG91dCA9IE5VTEwpOwotICAgIHN0YXRpYyBib29sIGdldFVpTW9kZVR5cGVOYW1lKGNvbnN0IGNoYXIqIG5hbWUsIFJlc1RhYmxlX2NvbmZpZyogb3V0ID0gTlVMTCk7Ci0gICAgc3RhdGljIGJvb2wgZ2V0VWlNb2RlTmlnaHROYW1lKGNvbnN0IGNoYXIqIG5hbWUsIFJlc1RhYmxlX2NvbmZpZyogb3V0ID0gTlVMTCk7Ci0gICAgc3RhdGljIGJvb2wgZ2V0RGVuc2l0eU5hbWUoY29uc3QgY2hhciogbmFtZSwgUmVzVGFibGVfY29uZmlnKiBvdXQgPSBOVUxMKTsKLSAgICBzdGF0aWMgYm9vbCBnZXRUb3VjaHNjcmVlbk5hbWUoY29uc3QgY2hhciogbmFtZSwgUmVzVGFibGVfY29uZmlnKiBvdXQgPSBOVUxMKTsKLSAgICBzdGF0aWMgYm9vbCBnZXRLZXlzSGlkZGVuTmFtZShjb25zdCBjaGFyKiBuYW1lLCBSZXNUYWJsZV9jb25maWcqIG91dCA9IE5VTEwpOwotICAgIHN0YXRpYyBib29sIGdldEtleWJvYXJkTmFtZShjb25zdCBjaGFyKiBuYW1lLCBSZXNUYWJsZV9jb25maWcqIG91dCA9IE5VTEwpOwotICAgIHN0YXRpYyBib29sIGdldE5hdmlnYXRpb25OYW1lKGNvbnN0IGNoYXIqIG5hbWUsIFJlc1RhYmxlX2NvbmZpZyogb3V0ID0gTlVMTCk7Ci0gICAgc3RhdGljIGJvb2wgZ2V0TmF2SGlkZGVuTmFtZShjb25zdCBjaGFyKiBuYW1lLCBSZXNUYWJsZV9jb25maWcqIG91dCA9IE5VTEwpOwotICAgIHN0YXRpYyBib29sIGdldFNjcmVlblNpemVOYW1lKGNvbnN0IGNoYXIqIG5hbWUsIFJlc1RhYmxlX2NvbmZpZyogb3V0ID0gTlVMTCk7Ci0gICAgc3RhdGljIGJvb2wgZ2V0U21hbGxlc3RTY3JlZW5XaWR0aERwTmFtZShjb25zdCBjaGFyKiBuYW1lLCBSZXNUYWJsZV9jb25maWcqIG91dCA9IE5VTEwpOwotICAgIHN0YXRpYyBib29sIGdldFNjcmVlbldpZHRoRHBOYW1lKGNvbnN0IGNoYXIqIG5hbWUsIFJlc1RhYmxlX2NvbmZpZyogb3V0ID0gTlVMTCk7Ci0gICAgc3RhdGljIGJvb2wgZ2V0U2NyZWVuSGVpZ2h0RHBOYW1lKGNvbnN0IGNoYXIqIG5hbWUsIFJlc1RhYmxlX2NvbmZpZyogb3V0ID0gTlVMTCk7Ci0gICAgc3RhdGljIGJvb2wgZ2V0TGF5b3V0RGlyZWN0aW9uTmFtZShjb25zdCBjaGFyKiBuYW1lLCBSZXNUYWJsZV9jb25maWcqIG91dCA9IE5VTEwpOwotICAgIHN0YXRpYyBib29sIGdldFZlcnNpb25OYW1lKGNvbnN0IGNoYXIqIG5hbWUsIFJlc1RhYmxlX2NvbmZpZyogb3V0ID0gTlVMTCk7Ci0KLSAgICBpbnQgY29tcGFyZShjb25zdCBBYXB0R3JvdXBFbnRyeSYgbykgY29uc3Q7Ci0KLSAgICBjb25zdCBSZXNUYWJsZV9jb25maWcmIHRvUGFyYW1zKCkgY29uc3Q7Ci0KLSAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcjwoY29uc3QgQWFwdEdyb3VwRW50cnkmIG8pIGNvbnN0IHsgcmV0dXJuIGNvbXBhcmUobykgPCAwOyB9Ci0gICAgaW5saW5lIGJvb2wgb3BlcmF0b3I8PShjb25zdCBBYXB0R3JvdXBFbnRyeSYgbykgY29uc3QgeyByZXR1cm4gY29tcGFyZShvKSA8PSAwOyB9Ci0gICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBYXB0R3JvdXBFbnRyeSYgbykgY29uc3QgeyByZXR1cm4gY29tcGFyZShvKSA9PSAwOyB9Ci0gICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBBYXB0R3JvdXBFbnRyeSYgbykgY29uc3QgeyByZXR1cm4gY29tcGFyZShvKSAhPSAwOyB9Ci0gICAgaW5saW5lIGJvb2wgb3BlcmF0b3I+PShjb25zdCBBYXB0R3JvdXBFbnRyeSYgbykgY29uc3QgeyByZXR1cm4gY29tcGFyZShvKSA+PSAwOyB9Ci0gICAgaW5saW5lIGJvb2wgb3BlcmF0b3I+KGNvbnN0IEFhcHRHcm91cEVudHJ5JiBvKSBjb25zdCB7IHJldHVybiBjb21wYXJlKG8pID4gMDsgfQotCi0gICAgU3RyaW5nOCB0b1N0cmluZygpIGNvbnN0OwotICAgIFN0cmluZzggdG9EaXJOYW1lKGNvbnN0IFN0cmluZzgmIHJlc1R5cGUpIGNvbnN0OwotCi0gICAgY29uc3QgU3RyaW5nOCYgZ2V0VmVyc2lvblN0cmluZygpIGNvbnN0IHsgcmV0dXJuIHZlcnNpb247IH0KLQotcHJpdmF0ZToKLSAgICBTdHJpbmc4IG1jYzsKLSAgICBTdHJpbmc4IG1uYzsKLSAgICBTdHJpbmc4IGxvY2FsZTsKLSAgICBTdHJpbmc4IHZlbmRvcjsKLSAgICBTdHJpbmc4IHNtYWxsZXN0U2NyZWVuV2lkdGhEcDsKLSAgICBTdHJpbmc4IHNjcmVlbldpZHRoRHA7Ci0gICAgU3RyaW5nOCBzY3JlZW5IZWlnaHREcDsKLSAgICBTdHJpbmc4IHNjcmVlbkxheW91dFNpemU7Ci0gICAgU3RyaW5nOCBzY3JlZW5MYXlvdXRMb25nOwotICAgIFN0cmluZzggb3JpZW50YXRpb247Ci0gICAgU3RyaW5nOCB1aU1vZGVUeXBlOwotICAgIFN0cmluZzggdWlNb2RlTmlnaHQ7Ci0gICAgU3RyaW5nOCBkZW5zaXR5OwotICAgIFN0cmluZzggdG91Y2hzY3JlZW47Ci0gICAgU3RyaW5nOCBrZXlzSGlkZGVuOwotICAgIFN0cmluZzgga2V5Ym9hcmQ7Ci0gICAgU3RyaW5nOCBuYXZIaWRkZW47Ci0gICAgU3RyaW5nOCBuYXZpZ2F0aW9uOwotICAgIFN0cmluZzggc2NyZWVuU2l6ZTsKLSAgICBTdHJpbmc4IGxheW91dERpcmVjdGlvbjsKLSAgICBTdHJpbmc4IHZlcnNpb247Ci0KLSAgICBtdXRhYmxlIGJvb2wgbVBhcmFtc0NoYW5nZWQ7Ci0gICAgbXV0YWJsZSBSZXNUYWJsZV9jb25maWcgbVBhcmFtczsKLX07Ci0KLWlubGluZSBpbnQgY29tcGFyZV90eXBlKGNvbnN0IEFhcHRHcm91cEVudHJ5JiBsaHMsIGNvbnN0IEFhcHRHcm91cEVudHJ5JiByaHMpCi17Ci0gICAgcmV0dXJuIGxocy5jb21wYXJlKHJocyk7Ci19Ci0KLWlubGluZSBpbnQgc3RyaWN0bHlfb3JkZXJfdHlwZShjb25zdCBBYXB0R3JvdXBFbnRyeSYgbGhzLCBjb25zdCBBYXB0R3JvdXBFbnRyeSYgcmhzKQotewotICAgIHJldHVybiBjb21wYXJlX3R5cGUobGhzLCByaHMpIDwgMDsKLX0KLQotY2xhc3MgQWFwdEdyb3VwOwotY2xhc3MgRmlsZVBhdGhTdG9yZTsKLQotLyoqCi0gKiBBIHNpbmdsZSBhc3NldCBmaWxlIHdlIGtub3cgYWJvdXQuCi0gKi8KLWNsYXNzIEFhcHRGaWxlIDogcHVibGljIFJlZkJhc2UKLXsKLXB1YmxpYzoKLSAgICBBYXB0RmlsZShjb25zdCBTdHJpbmc4JiBzb3VyY2VGaWxlLCBjb25zdCBBYXB0R3JvdXBFbnRyeSYgZ3JvdXBFbnRyeSwKLSAgICAgICAgICAgICBjb25zdCBTdHJpbmc4JiByZXNUeXBlKQotICAgICAgICA6IG1Hcm91cEVudHJ5KGdyb3VwRW50cnkpCi0gICAgICAgICwgbVJlc291cmNlVHlwZShyZXNUeXBlKQotICAgICAgICAsIG1Tb3VyY2VGaWxlKHNvdXJjZUZpbGUpCi0gICAgICAgICwgbURhdGEoTlVMTCkKLSAgICAgICAgLCBtRGF0YVNpemUoMCkKLSAgICAgICAgLCBtQnVmZmVyU2l6ZSgwKQotICAgICAgICAsIG1Db21wcmVzc2lvbihaaXBFbnRyeTo6a0NvbXByZXNzU3RvcmVkKQotICAgICAgICB7Ci0gICAgICAgICAgICAvL3ByaW50ZigibmV3IEFhcHRGaWxlIGNyZWF0ZWQgJXNcbiIsIChjb25zdCBjaGFyKilzb3VyY2VGaWxlKTsKLSAgICAgICAgfQotICAgIHZpcnR1YWwgfkFhcHRGaWxlKCkgewotICAgICAgICBmcmVlKG1EYXRhKTsKLSAgICB9Ci0KLSAgICBjb25zdCBTdHJpbmc4JiBnZXRQYXRoKCkgY29uc3QgeyByZXR1cm4gbVBhdGg7IH0KLSAgICBjb25zdCBBYXB0R3JvdXBFbnRyeSYgZ2V0R3JvdXBFbnRyeSgpIGNvbnN0IHsgcmV0dXJuIG1Hcm91cEVudHJ5OyB9Ci0KLSAgICAvLyBEYXRhIEFQSS4gIElmIHRoZXJlIGlzIGRhdGEgYXR0YWNoZWQgdG8gdGhlIGZpbGUsCi0gICAgLy8gZ2V0U291cmNlRmlsZSgpIGlzIG5vdCB1c2VkLgotICAgIGJvb2wgaGFzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1EYXRhICE9IE5VTEw7IH0KLSAgICBjb25zdCB2b2lkKiBnZXREYXRhKCkgY29uc3QgeyByZXR1cm4gbURhdGE7IH0KLSAgICBzaXplX3QgZ2V0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1EYXRhU2l6ZTsgfQotICAgIHZvaWQqIGVkaXREYXRhKHNpemVfdCBzaXplKTsKLSAgICB2b2lkKiBlZGl0RGF0YShzaXplX3QqIG91dFNpemUgPSBOVUxMKTsKLSAgICB2b2lkKiBwYWREYXRhKHNpemVfdCB3b3JkU2l6ZSk7Ci0gICAgc3RhdHVzX3Qgd3JpdGVEYXRhKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBzaXplKTsKLSAgICB2b2lkIGNsZWFyRGF0YSgpOwotCi0gICAgY29uc3QgU3RyaW5nOCYgZ2V0UmVzb3VyY2VUeXBlKCkgY29uc3QgeyByZXR1cm4gbVJlc291cmNlVHlwZTsgfQotCi0gICAgLy8gRmlsZSBBUEkuICBJZiB0aGUgZmlsZSBkb2VzIG5vdCBob2xkIHJhdyBkYXRhLCB0aGlzIGlzCi0gICAgLy8gYSBmdWxsIHBhdGggdG8gYSBmaWxlIG9uIHRoZSBmaWxlc3lzdGVtIHRoYXQgaG9sZHMgaXRzIGRhdGEuCi0gICAgY29uc3QgU3RyaW5nOCYgZ2V0U291cmNlRmlsZSgpIGNvbnN0IHsgcmV0dXJuIG1Tb3VyY2VGaWxlOyB9Ci0KLSAgICBTdHJpbmc4IGdldFByaW50YWJsZVNvdXJjZSgpIGNvbnN0OwotCi0gICAgLy8gRGVzaXJlZCBjb21wcmVzc2lvbiBtZXRob2QsIGFzIHBlciB1dGlscy9aaXBFbnRyeS5oLiAgRm9yIGV4YW1wbGUsCi0gICAgLy8gbm8gY29tcHJlc3Npb24gaXMgWmlwRW50cnk6OmtDb21wcmVzc1N0b3JlZC4KLSAgICBpbnQgZ2V0Q29tcHJlc3Npb25NZXRob2QoKSBjb25zdCB7IHJldHVybiBtQ29tcHJlc3Npb247IH0KLSAgICB2b2lkIHNldENvbXByZXNzaW9uTWV0aG9kKGludCBjKSB7IG1Db21wcmVzc2lvbiA9IGM7IH0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIEFhcHRHcm91cDsKLQotICAgIFN0cmluZzggbVBhdGg7Ci0gICAgQWFwdEdyb3VwRW50cnkgbUdyb3VwRW50cnk7Ci0gICAgU3RyaW5nOCBtUmVzb3VyY2VUeXBlOwotICAgIFN0cmluZzggbVNvdXJjZUZpbGU7Ci0gICAgdm9pZCogbURhdGE7Ci0gICAgc2l6ZV90IG1EYXRhU2l6ZTsKLSAgICBzaXplX3QgbUJ1ZmZlclNpemU7Ci0gICAgaW50IG1Db21wcmVzc2lvbjsKLX07Ci0KLS8qKgotICogQSBncm91cCBvZiByZWxhdGVkIGZpbGVzICh0aGUgc2FtZSBmaWxlLCB3aXRoIGRpZmZlcmVudAotICogdmVuZG9yL2xvY2FsZSB2YXJpYXRpb25zKS4KLSAqLwotY2xhc3MgQWFwdEdyb3VwIDogcHVibGljIFJlZkJhc2UKLXsKLXB1YmxpYzoKLSAgICBBYXB0R3JvdXAoY29uc3QgU3RyaW5nOCYgbGVhZiwgY29uc3QgU3RyaW5nOCYgcGF0aCkKLSAgICAgICAgOiBtTGVhZihsZWFmKSwgbVBhdGgocGF0aCkgeyB9Ci0gICAgdmlydHVhbCB+QWFwdEdyb3VwKCkgeyB9Ci0KLSAgICBjb25zdCBTdHJpbmc4JiBnZXRMZWFmKCkgY29uc3QgeyByZXR1cm4gbUxlYWY7IH0KLQotICAgIC8vIFJldHVybnMgdGhlIHJlbGF0aXZlIHBhdGggYWZ0ZXIgdGhlIEFhcHRHcm91cEVudHJ5IGRpcnMuCi0gICAgY29uc3QgU3RyaW5nOCYgZ2V0UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1QYXRoOyB9Ci0KLSAgICBjb25zdCBEZWZhdWx0S2V5ZWRWZWN0b3I8QWFwdEdyb3VwRW50cnksIHNwPEFhcHRGaWxlPiA+JiBnZXRGaWxlcygpIGNvbnN0Ci0gICAgICAgIHsgcmV0dXJuIG1GaWxlczsgfQotCi0gICAgc3RhdHVzX3QgYWRkRmlsZShjb25zdCBzcDxBYXB0RmlsZT4mIGZpbGUpOwotICAgIHZvaWQgcmVtb3ZlRmlsZShzaXplX3QgaW5kZXgpOwotCi0gICAgdm9pZCBwcmludChjb25zdCBTdHJpbmc4JiBwcmVmaXgpIGNvbnN0OwotCi0gICAgU3RyaW5nOCBnZXRQcmludGFibGVTb3VyY2UoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBTdHJpbmc4IG1MZWFmOwotICAgIFN0cmluZzggbVBhdGg7Ci0KLSAgICBEZWZhdWx0S2V5ZWRWZWN0b3I8QWFwdEdyb3VwRW50cnksIHNwPEFhcHRGaWxlPiA+IG1GaWxlczsKLX07Ci0KLS8qKgotICogQSBzaW5nbGUgZGlyZWN0b3J5IG9mIGFzc2V0cywgd2hpY2ggY2FuIGNvbnRhaW4gZmlsZXMgYW5kIG90aGVyCi0gKiBzdWItZGlyZWN0b3JpZXMuCi0gKi8KLWNsYXNzIEFhcHREaXIgOiBwdWJsaWMgUmVmQmFzZQotewotcHVibGljOgotICAgIEFhcHREaXIoY29uc3QgU3RyaW5nOCYgbGVhZiwgY29uc3QgU3RyaW5nOCYgcGF0aCkKLSAgICAgICAgOiBtTGVhZihsZWFmKSwgbVBhdGgocGF0aCkgeyB9Ci0gICAgdmlydHVhbCB+QWFwdERpcigpIHsgfQotCi0gICAgY29uc3QgU3RyaW5nOCYgZ2V0TGVhZigpIGNvbnN0IHsgcmV0dXJuIG1MZWFmOyB9Ci0KLSAgICBjb25zdCBTdHJpbmc4JiBnZXRQYXRoKCkgY29uc3QgeyByZXR1cm4gbVBhdGg7IH0KLQotICAgIGNvbnN0IERlZmF1bHRLZXllZFZlY3RvcjxTdHJpbmc4LCBzcDxBYXB0R3JvdXA+ID4mIGdldEZpbGVzKCkgY29uc3QgeyByZXR1cm4gbUZpbGVzOyB9Ci0gICAgY29uc3QgRGVmYXVsdEtleWVkVmVjdG9yPFN0cmluZzgsIHNwPEFhcHREaXI+ID4mIGdldERpcnMoKSBjb25zdCB7IHJldHVybiBtRGlyczsgfQotCi0gICAgdmlydHVhbCBzdGF0dXNfdCBhZGRGaWxlKGNvbnN0IFN0cmluZzgmIG5hbWUsIGNvbnN0IHNwPEFhcHRHcm91cD4mIGZpbGUpOwotCi0gICAgdm9pZCByZW1vdmVGaWxlKGNvbnN0IFN0cmluZzgmIG5hbWUpOwotICAgIHZvaWQgcmVtb3ZlRGlyKGNvbnN0IFN0cmluZzgmIG5hbWUpOwotCi0gICAgLyoKLSAgICAgKiBQZXJmb3JtIHNvbWUgc2FuaXR5IGNoZWNrcyBvbiB0aGUgbmFtZXMgb2YgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIGhlcmUuCi0gICAgICogSW4gcGFydGljdWxhcjoKLSAgICAgKiAgLSBDaGVjayBmb3IgaWxsZWdhbCBjaGFycyBpbiBmaWxlbmFtZXMuCi0gICAgICogIC0gQ2hlY2sgZmlsZW5hbWUgbGVuZ3RoLgotICAgICAqICAtIENoZWNrIGZvciBwcmVzZW5jZSBvZiAiLmd6IiBhbmQgbm9uLSIuZ3oiIGNvcGllcyBvZiBzYW1lIGZpbGUuCi0gICAgICogIC0gQ2hlY2sgZm9yIG11bHRpcGxlIGZpbGVzIHdob3NlIG5hbWVzIG1hdGNoIGluIGEgY2FzZS1pbnNlbnNpdGl2ZQotICAgICAqICAgIGZhc2hpb24gKHByb2JsZW1hdGljIGZvciBzb21lIHN5c3RlbXMpLgotICAgICAqCi0gICAgICogQ29tcGFyaW5nIG5hbWVzIGFnYWluc3QgYWxsIG90aGVyIG5hbWVzIGlzIE8obl4yKS4gIFdlIGNvdWxkIHNwZWVkCi0gICAgICogaXQgdXAgc29tZSBieSBzb3J0aW5nIHRoZSBlbnRyaWVzIGFuZCBiZWluZyBzbWFydGVyIGFib3V0IHdoYXQgd2UKLSAgICAgKiBjb21wYXJlIGFnYWluc3QsIGJ1dCBJJ20gbm90IGV4cGVjdGluZyB0byBoYXZlIGVub3VnaCBmaWxlcyBpbiBhCi0gICAgICogc2luZ2xlIGRpcmVjdG9yeSB0byBtYWtlIGEgbm90aWNlYWJsZSBkaWZmZXJlbmNlIGluIHNwZWVkLgotICAgICAqCi0gICAgICogTm90ZSB0aGF0IHNvcnRpbmcgaGVyZSBpcyBub3QgZW5vdWdoIHRvIGd1YXJhbnRlZSB0aGF0IHRoZSBwYWNrYWdlCi0gICAgICogY29udGVudHMgYXJlIHNvcnRlZCAtLSBzdWJzZXF1ZW50IHVwZGF0ZXMgY2FuIHJlYXJyYW5nZSB0aGluZ3MuCi0gICAgICovCi0gICAgc3RhdHVzX3QgdmFsaWRhdGUoKSBjb25zdDsKLQotICAgIHZvaWQgcHJpbnQoY29uc3QgU3RyaW5nOCYgcHJlZml4KSBjb25zdDsKLQotICAgIFN0cmluZzggZ2V0UHJpbnRhYmxlU291cmNlKCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIEFhcHRBc3NldHM7Ci0KLSAgICBzdGF0dXNfdCBhZGREaXIoY29uc3QgU3RyaW5nOCYgbmFtZSwgY29uc3Qgc3A8QWFwdERpcj4mIGRpcik7Ci0gICAgc3A8QWFwdERpcj4gbWFrZURpcihjb25zdCBTdHJpbmc4JiBuYW1lKTsKLSAgICBzdGF0dXNfdCBhZGRMZWFmRmlsZShjb25zdCBTdHJpbmc4JiBsZWFmTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxBYXB0RmlsZT4mIGZpbGUpOwotICAgIHZpcnR1YWwgc3NpemVfdCBzbHVycEZ1bGxUcmVlKEJ1bmRsZSogYnVuZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzgmIHNyY0RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBYXB0R3JvdXBFbnRyeSYga2luZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmc4JiByZXNUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPEZpbGVQYXRoU3RvcmU+JiBmdWxsUmVzUGF0aHMpOwotCi0gICAgU3RyaW5nOCBtTGVhZjsKLSAgICBTdHJpbmc4IG1QYXRoOwotCi0gICAgRGVmYXVsdEtleWVkVmVjdG9yPFN0cmluZzgsIHNwPEFhcHRHcm91cD4gPiBtRmlsZXM7Ci0gICAgRGVmYXVsdEtleWVkVmVjdG9yPFN0cmluZzgsIHNwPEFhcHREaXI+ID4gbURpcnM7Ci19OwotCi0vKioKLSAqIEFsbCBpbmZvcm1hdGlvbiB3ZSBrbm93IGFib3V0IGEgcGFydGljdWxhciBzeW1ib2wuCi0gKi8KLWNsYXNzIEFhcHRTeW1ib2xFbnRyeQotewotcHVibGljOgotICAgIEFhcHRTeW1ib2xFbnRyeSgpCi0gICAgICAgIDogaXNQdWJsaWMoZmFsc2UpLCBpc0phdmFTeW1ib2woZmFsc2UpLCB0eXBlQ29kZShUWVBFX1VOS05PV04pCi0gICAgewotICAgIH0KLSAgICBBYXB0U3ltYm9sRW50cnkoY29uc3QgU3RyaW5nOCYgX25hbWUpCi0gICAgICAgIDogbmFtZShfbmFtZSksIGlzUHVibGljKGZhbHNlKSwgaXNKYXZhU3ltYm9sKGZhbHNlKSwgdHlwZUNvZGUoVFlQRV9VTktOT1dOKQotICAgIHsKLSAgICB9Ci0gICAgQWFwdFN5bWJvbEVudHJ5KGNvbnN0IEFhcHRTeW1ib2xFbnRyeSYgbykKLSAgICAgICAgOiBuYW1lKG8ubmFtZSksIHNvdXJjZVBvcyhvLnNvdXJjZVBvcyksIGlzUHVibGljKG8uaXNQdWJsaWMpCi0gICAgICAgICwgaXNKYXZhU3ltYm9sKG8uaXNKYXZhU3ltYm9sKSwgY29tbWVudChvLmNvbW1lbnQpLCB0eXBlQ29tbWVudChvLnR5cGVDb21tZW50KQotICAgICAgICAsIHR5cGVDb2RlKG8udHlwZUNvZGUpLCBpbnQzMlZhbChvLmludDMyVmFsKSwgc3RyaW5nVmFsKG8uc3RyaW5nVmFsKQotICAgIHsKLSAgICB9Ci0gICAgQWFwdFN5bWJvbEVudHJ5IG9wZXJhdG9yPShjb25zdCBBYXB0U3ltYm9sRW50cnkmIG8pCi0gICAgewotICAgICAgICBzb3VyY2VQb3MgPSBvLnNvdXJjZVBvczsKLSAgICAgICAgaXNQdWJsaWMgPSBvLmlzUHVibGljOwotICAgICAgICBpc0phdmFTeW1ib2wgPSBvLmlzSmF2YVN5bWJvbDsKLSAgICAgICAgY29tbWVudCA9IG8uY29tbWVudDsKLSAgICAgICAgdHlwZUNvbW1lbnQgPSBvLnR5cGVDb21tZW50OwotICAgICAgICB0eXBlQ29kZSA9IG8udHlwZUNvZGU7Ci0gICAgICAgIGludDMyVmFsID0gby5pbnQzMlZhbDsKLSAgICAgICAgc3RyaW5nVmFsID0gby5zdHJpbmdWYWw7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0gICAgCi0gICAgY29uc3QgU3RyaW5nOCBuYW1lOwotICAgIAotICAgIFNvdXJjZVBvcyBzb3VyY2VQb3M7Ci0gICAgYm9vbCBpc1B1YmxpYzsKLSAgICBib29sIGlzSmF2YVN5bWJvbDsKLSAgICAKLSAgICBTdHJpbmcxNiBjb21tZW50OwotICAgIFN0cmluZzE2IHR5cGVDb21tZW50OwotICAgIAotICAgIGVudW0gewotICAgICAgICBUWVBFX1VOS05PV04gPSAwLAotICAgICAgICBUWVBFX0lOVDMyLAotICAgICAgICBUWVBFX1NUUklORwotICAgIH07Ci0gICAgCi0gICAgaW50IHR5cGVDb2RlOwotICAgIAotICAgIC8vIFZhbHVlLiAgTWF5IGJlIG9uZSBvZiB0aGVzZS4KLSAgICBpbnQzMl90IGludDMyVmFsOwotICAgIFN0cmluZzggc3RyaW5nVmFsOwotfTsKLQotLyoqCi0gKiBBIGdyb3VwIG9mIHJlbGF0ZWQgc3ltYm9scyAoc3VjaCBhcyBpbmRpY2VzIGludG8gYSBzdHJpbmcgYmxvY2spCi0gKiB0aGF0IGhhdmUgYmVlbiBnZW5lcmF0ZWQgZnJvbSB0aGUgYXNzZXRzLgotICovCi1jbGFzcyBBYXB0U3ltYm9scyA6IHB1YmxpYyBSZWZCYXNlCi17Ci1wdWJsaWM6Ci0gICAgQWFwdFN5bWJvbHMoKSB7IH0KLSAgICB2aXJ0dWFsIH5BYXB0U3ltYm9scygpIHsgfQotCi0gICAgc3RhdHVzX3QgYWRkU3ltYm9sKGNvbnN0IFN0cmluZzgmIG5hbWUsIGludDMyX3QgdmFsdWUsIGNvbnN0IFNvdXJjZVBvcyYgcG9zKSB7Ci0gICAgICAgIGlmICghY2hlY2tfdmFsaWRfc3ltYm9sX25hbWUobmFtZSwgcG9zLCAic3ltYm9sIikpIHsKLSAgICAgICAgICAgIHJldHVybiBCQURfVkFMVUU7Ci0gICAgICAgIH0KLSAgICAgICAgQWFwdFN5bWJvbEVudHJ5JiBzeW0gPSBlZGl0X3N5bWJvbChuYW1lLCAmcG9zKTsKLSAgICAgICAgc3ltLnR5cGVDb2RlID0gQWFwdFN5bWJvbEVudHJ5OjpUWVBFX0lOVDMyOwotICAgICAgICBzeW0uaW50MzJWYWwgPSB2YWx1ZTsKLSAgICAgICAgcmV0dXJuIE5PX0VSUk9SOwotICAgIH0KLQotICAgIHN0YXR1c190IGFkZFN0cmluZ1N5bWJvbChjb25zdCBTdHJpbmc4JiBuYW1lLCBjb25zdCBTdHJpbmc4JiB2YWx1ZSwKLSAgICAgICAgICAgIGNvbnN0IFNvdXJjZVBvcyYgcG9zKSB7Ci0gICAgICAgIGlmICghY2hlY2tfdmFsaWRfc3ltYm9sX25hbWUobmFtZSwgcG9zLCAic3ltYm9sIikpIHsKLSAgICAgICAgICAgIHJldHVybiBCQURfVkFMVUU7Ci0gICAgICAgIH0KLSAgICAgICAgQWFwdFN5bWJvbEVudHJ5JiBzeW0gPSBlZGl0X3N5bWJvbChuYW1lLCAmcG9zKTsKLSAgICAgICAgc3ltLnR5cGVDb2RlID0gQWFwdFN5bWJvbEVudHJ5OjpUWVBFX1NUUklORzsKLSAgICAgICAgc3ltLnN0cmluZ1ZhbCA9IHZhbHVlOwotICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgfQotCi0gICAgc3RhdHVzX3QgbWFrZVN5bWJvbFB1YmxpYyhjb25zdCBTdHJpbmc4JiBuYW1lLCBjb25zdCBTb3VyY2VQb3MmIHBvcykgewotICAgICAgICBpZiAoIWNoZWNrX3ZhbGlkX3N5bWJvbF9uYW1lKG5hbWUsIHBvcywgInN5bWJvbCIpKSB7Ci0gICAgICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOwotICAgICAgICB9Ci0gICAgICAgIEFhcHRTeW1ib2xFbnRyeSYgc3ltID0gZWRpdF9zeW1ib2wobmFtZSwgJnBvcyk7Ci0gICAgICAgIHN5bS5pc1B1YmxpYyA9IHRydWU7Ci0gICAgICAgIHJldHVybiBOT19FUlJPUjsKLSAgICB9Ci0KLSAgICBzdGF0dXNfdCBtYWtlU3ltYm9sSmF2YVN5bWJvbChjb25zdCBTdHJpbmc4JiBuYW1lLCBjb25zdCBTb3VyY2VQb3MmIHBvcykgewotICAgICAgICBpZiAoIWNoZWNrX3ZhbGlkX3N5bWJvbF9uYW1lKG5hbWUsIHBvcywgInN5bWJvbCIpKSB7Ci0gICAgICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOwotICAgICAgICB9Ci0gICAgICAgIEFhcHRTeW1ib2xFbnRyeSYgc3ltID0gZWRpdF9zeW1ib2wobmFtZSwgJnBvcyk7Ci0gICAgICAgIHN5bS5pc0phdmFTeW1ib2wgPSB0cnVlOwotICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgfQotCi0gICAgdm9pZCBhcHBlbmRDb21tZW50KGNvbnN0IFN0cmluZzgmIG5hbWUsIGNvbnN0IFN0cmluZzE2JiBjb21tZW50LCBjb25zdCBTb3VyY2VQb3MmIHBvcykgewotICAgICAgICBpZiAoY29tbWVudC5zaXplKCkgPD0gMCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIEFhcHRTeW1ib2xFbnRyeSYgc3ltID0gZWRpdF9zeW1ib2wobmFtZSwgJnBvcyk7Ci0gICAgICAgIGlmIChzeW0uY29tbWVudC5zaXplKCkgPT0gMCkgewotICAgICAgICAgICAgc3ltLmNvbW1lbnQgPSBjb21tZW50OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc3ltLmNvbW1lbnQuYXBwZW5kKFN0cmluZzE2KCJcbiIpKTsKLSAgICAgICAgICAgIHN5bS5jb21tZW50LmFwcGVuZChjb21tZW50KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHZvaWQgYXBwZW5kVHlwZUNvbW1lbnQoY29uc3QgU3RyaW5nOCYgbmFtZSwgY29uc3QgU3RyaW5nMTYmIGNvbW1lbnQpIHsKLSAgICAgICAgaWYgKGNvbW1lbnQuc2l6ZSgpIDw9IDApIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBBYXB0U3ltYm9sRW50cnkmIHN5bSA9IGVkaXRfc3ltYm9sKG5hbWUsIE5VTEwpOwotICAgICAgICBpZiAoc3ltLnR5cGVDb21tZW50LnNpemUoKSA9PSAwKSB7Ci0gICAgICAgICAgICBzeW0udHlwZUNvbW1lbnQgPSBjb21tZW50OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc3ltLnR5cGVDb21tZW50LmFwcGVuZChTdHJpbmcxNigiXG4iKSk7Ci0gICAgICAgICAgICBzeW0udHlwZUNvbW1lbnQuYXBwZW5kKGNvbW1lbnQpOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIHNwPEFhcHRTeW1ib2xzPiBhZGROZXN0ZWRTeW1ib2woY29uc3QgU3RyaW5nOCYgbmFtZSwgY29uc3QgU291cmNlUG9zJiBwb3MpIHsKLSAgICAgICAgaWYgKCFjaGVja192YWxpZF9zeW1ib2xfbmFtZShuYW1lLCBwb3MsICJuZXN0ZWQgc3ltYm9sIikpIHsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBzcDxBYXB0U3ltYm9scz4gc3ltID0gbU5lc3RlZFN5bWJvbHMudmFsdWVGb3IobmFtZSk7Ci0gICAgICAgIGlmIChzeW0gPT0gTlVMTCkgewotICAgICAgICAgICAgc3ltID0gbmV3IEFhcHRTeW1ib2xzKCk7Ci0gICAgICAgICAgICBtTmVzdGVkU3ltYm9scy5hZGQobmFtZSwgc3ltKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBzeW07Ci0gICAgfQotCi0gICAgc3RhdHVzX3QgYXBwbHlKYXZhU3ltYm9scyhjb25zdCBzcDxBYXB0U3ltYm9scz4mIGphdmFTeW1ib2xzKTsKLQotICAgIGNvbnN0IEtleWVkVmVjdG9yPFN0cmluZzgsIEFhcHRTeW1ib2xFbnRyeT4mIGdldFN5bWJvbHMoKSBjb25zdAotICAgICAgICB7IHJldHVybiBtU3ltYm9sczsgfQotICAgIGNvbnN0IERlZmF1bHRLZXllZFZlY3RvcjxTdHJpbmc4LCBzcDxBYXB0U3ltYm9scz4gPiYgZ2V0TmVzdGVkU3ltYm9scygpIGNvbnN0Ci0gICAgICAgIHsgcmV0dXJuIG1OZXN0ZWRTeW1ib2xzOyB9Ci0KLSAgICBjb25zdCBTdHJpbmcxNiYgZ2V0Q29tbWVudChjb25zdCBTdHJpbmc4JiBuYW1lKSBjb25zdAotICAgICAgICB7IHJldHVybiBnZXRfc3ltYm9sKG5hbWUpLmNvbW1lbnQ7IH0KLSAgICBjb25zdCBTdHJpbmcxNiYgZ2V0VHlwZUNvbW1lbnQoY29uc3QgU3RyaW5nOCYgbmFtZSkgY29uc3QKLSAgICAgICAgeyByZXR1cm4gZ2V0X3N5bWJvbChuYW1lKS50eXBlQ29tbWVudDsgfQotCi1wcml2YXRlOgotICAgIGJvb2wgY2hlY2tfdmFsaWRfc3ltYm9sX25hbWUoY29uc3QgU3RyaW5nOCYgc3ltYm9sLCBjb25zdCBTb3VyY2VQb3MmIHBvcywgY29uc3QgY2hhciogbGFiZWwpIHsKLSAgICAgICAgaWYgKHZhbGlkX3N5bWJvbF9uYW1lKHN5bWJvbCkpIHsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIHBvcy5lcnJvcigiaW52YWxpZCAlczogJyVzJ1xuIiwgbGFiZWwsIHN5bWJvbC5zdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgQWFwdFN5bWJvbEVudHJ5JiBlZGl0X3N5bWJvbChjb25zdCBTdHJpbmc4JiBzeW1ib2wsIGNvbnN0IFNvdXJjZVBvcyogcG9zKSB7Ci0gICAgICAgIHNzaXplX3QgaSA9IG1TeW1ib2xzLmluZGV4T2ZLZXkoc3ltYm9sKTsKLSAgICAgICAgaWYgKGkgPCAwKSB7Ci0gICAgICAgICAgICBpID0gbVN5bWJvbHMuYWRkKHN5bWJvbCwgQWFwdFN5bWJvbEVudHJ5KHN5bWJvbCkpOwotICAgICAgICB9Ci0gICAgICAgIEFhcHRTeW1ib2xFbnRyeSYgc3ltID0gbVN5bWJvbHMuZWRpdFZhbHVlQXQoaSk7Ci0gICAgICAgIGlmIChwb3MgIT0gTlVMTCAmJiBzeW0uc291cmNlUG9zLmxpbmUgPCAwKSB7Ci0gICAgICAgICAgICBzeW0uc291cmNlUG9zID0gKnBvczsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gc3ltOwotICAgIH0KLSAgICBjb25zdCBBYXB0U3ltYm9sRW50cnkmIGdldF9zeW1ib2woY29uc3QgU3RyaW5nOCYgc3ltYm9sKSBjb25zdCB7Ci0gICAgICAgIHNzaXplX3QgaSA9IG1TeW1ib2xzLmluZGV4T2ZLZXkoc3ltYm9sKTsKLSAgICAgICAgaWYgKGkgPj0gMCkgewotICAgICAgICAgICAgcmV0dXJuIG1TeW1ib2xzLnZhbHVlQXQoaSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG1EZWZTeW1ib2w7Ci0gICAgfQotCi0gICAgS2V5ZWRWZWN0b3I8U3RyaW5nOCwgQWFwdFN5bWJvbEVudHJ5PiAgICAgICAgICAgbVN5bWJvbHM7Ci0gICAgRGVmYXVsdEtleWVkVmVjdG9yPFN0cmluZzgsIHNwPEFhcHRTeW1ib2xzPiA+ICAgbU5lc3RlZFN5bWJvbHM7Ci0gICAgQWFwdFN5bWJvbEVudHJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbURlZlN5bWJvbDsKLX07Ci0KLWNsYXNzIFJlc291cmNlVHlwZVNldCA6IHB1YmxpYyBSZWZCYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIEtleWVkVmVjdG9yPFN0cmluZzgsc3A8QWFwdEdyb3VwPiA+Ci17Ci1wdWJsaWM6Ci0gICAgUmVzb3VyY2VUeXBlU2V0KCk7Ci19OwotCi0vLyBTdG9yYWdlIGZvciBsaXN0cyBvZiBmdWxseSBxdWFsaWZpZWQgcGF0aHMgZm9yCi0vLyByZXNvdXJjZXMgZW5jb3VudGVyZWQgZHVyaW5nIHNsdXJwaW5nLgotY2xhc3MgRmlsZVBhdGhTdG9yZSA6IHB1YmxpYyBSZWZCYXNlLAotICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBWZWN0b3I8U3RyaW5nOD4KLXsKLXB1YmxpYzoKLSAgICBGaWxlUGF0aFN0b3JlKCk7Ci19OwotCi0vKioKLSAqIEFzc2V0IGhpZXJhcmNoeSBiZWluZyBvcGVyYXRlZCBvbi4KLSAqLwotY2xhc3MgQWFwdEFzc2V0cyA6IHB1YmxpYyBBYXB0RGlyCi17Ci1wdWJsaWM6Ci0gICAgQWFwdEFzc2V0cygpOwotICAgIHZpcnR1YWwgfkFhcHRBc3NldHMoKSB7IGRlbGV0ZSBtUmVzOyB9Ci0KLSAgICBjb25zdCBTdHJpbmc4JiBnZXRQYWNrYWdlKCkgY29uc3QgeyByZXR1cm4gbVBhY2thZ2U7IH0KLSAgICB2b2lkIHNldFBhY2thZ2UoY29uc3QgU3RyaW5nOCYgcGFja2FnZSkgewotICAgICAgICBtUGFja2FnZSA9IHBhY2thZ2U7Ci0gICAgICAgIG1TeW1ib2xzUHJpdmF0ZVBhY2thZ2UgPSBwYWNrYWdlOwotICAgICAgICBtSGF2ZVByaXZhdGVTeW1ib2xzID0gZmFsc2U7Ci0gICAgfQotCi0gICAgY29uc3QgU29ydGVkVmVjdG9yPEFhcHRHcm91cEVudHJ5PiYgZ2V0R3JvdXBFbnRyaWVzKCkgY29uc3Q7Ci0KLSAgICB2aXJ0dWFsIHN0YXR1c190IGFkZEZpbGUoY29uc3QgU3RyaW5nOCYgbmFtZSwgY29uc3Qgc3A8QWFwdEdyb3VwPiYgZmlsZSk7Ci0KLSAgICBzcDxBYXB0RmlsZT4gYWRkRmlsZShjb25zdCBTdHJpbmc4JiBmaWxlUGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBYXB0R3JvdXBFbnRyeSYgZW50cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nOCYgc3JjRGlyLAotICAgICAgICAgICAgICAgICAgICAgICAgIHNwPEFhcHRHcm91cD4qIG91dEdyb3VwLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzgmIHJlc1R5cGUpOwotCi0gICAgdm9pZCBhZGRSZXNvdXJjZShjb25zdCBTdHJpbmc4JiBsZWFmTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzgmIHBhdGgsCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxBYXB0RmlsZT4mIGZpbGUsCi0gICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmc4JiByZXNUeXBlKTsKLQotICAgIHZvaWQgYWRkR3JvdXBFbnRyeShjb25zdCBBYXB0R3JvdXBFbnRyeSYgZW50cnkpIHsgbUdyb3VwRW50cmllcy5hZGQoZW50cnkpOyB9Ci0gICAgCi0gICAgc3NpemVfdCBzbHVycEZyb21BcmdzKEJ1bmRsZSogYnVuZGxlKTsKLQotICAgIHNwPEFhcHRTeW1ib2xzPiBnZXRTeW1ib2xzRm9yKGNvbnN0IFN0cmluZzgmIG5hbWUpOwotCi0gICAgc3A8QWFwdFN5bWJvbHM+IGdldEphdmFTeW1ib2xzRm9yKGNvbnN0IFN0cmluZzgmIG5hbWUpOwotCi0gICAgc3RhdHVzX3QgYXBwbHlKYXZhU3ltYm9scygpOwotCi0gICAgY29uc3QgRGVmYXVsdEtleWVkVmVjdG9yPFN0cmluZzgsIHNwPEFhcHRTeW1ib2xzPiA+JiBnZXRTeW1ib2xzKCkgY29uc3QgeyByZXR1cm4gbVN5bWJvbHM7IH0KLQotICAgIFN0cmluZzggZ2V0U3ltYm9sc1ByaXZhdGVQYWNrYWdlKCkgY29uc3QgeyByZXR1cm4gbVN5bWJvbHNQcml2YXRlUGFja2FnZTsgfQotICAgIHZvaWQgc2V0U3ltYm9sc1ByaXZhdGVQYWNrYWdlKGNvbnN0IFN0cmluZzgmIHBrZykgewotICAgICAgICBtU3ltYm9sc1ByaXZhdGVQYWNrYWdlID0gcGtnOwotICAgICAgICBtSGF2ZVByaXZhdGVTeW1ib2xzID0gbVN5bWJvbHNQcml2YXRlUGFja2FnZSAhPSBtUGFja2FnZTsKLSAgICB9Ci0KLSAgICBib29sIGhhdmVQcml2YXRlU3ltYm9scygpIGNvbnN0IHsgcmV0dXJuIG1IYXZlUHJpdmF0ZVN5bWJvbHM7IH0KLQotICAgIGJvb2wgaXNKYXZhU3ltYm9sKGNvbnN0IEFhcHRTeW1ib2xFbnRyeSYgc3ltLCBib29sIGluY2x1ZGVQcml2YXRlKSBjb25zdDsKLQotICAgIHN0YXR1c190IGJ1aWxkSW5jbHVkZWRSZXNvdXJjZXMoQnVuZGxlKiBidW5kbGUpOwotICAgIHN0YXR1c190IGFkZEluY2x1ZGVkUmVzb3VyY2VzKGNvbnN0IHNwPEFhcHRGaWxlPiYgZmlsZSk7Ci0gICAgY29uc3QgUmVzVGFibGUmIGdldEluY2x1ZGVkUmVzb3VyY2VzKCkgY29uc3Q7Ci0KLSAgICB2b2lkIHByaW50KGNvbnN0IFN0cmluZzgmIHByZWZpeCkgY29uc3Q7Ci0KLSAgICBpbmxpbmUgY29uc3QgVmVjdG9yPHNwPEFhcHREaXI+ID4mIHJlc0RpcnMoKSBjb25zdCB7IHJldHVybiBtUmVzRGlyczsgfQotICAgIHNwPEFhcHREaXI+IHJlc0Rpcihjb25zdCBTdHJpbmc4JiBuYW1lKSBjb25zdDsKLQotICAgIGlubGluZSBzcDxBYXB0QXNzZXRzPiBnZXRPdmVybGF5KCkgeyByZXR1cm4gbU92ZXJsYXk7IH0KLSAgICBpbmxpbmUgdm9pZCBzZXRPdmVybGF5KHNwPEFhcHRBc3NldHM+JiBvdmVybGF5KSB7IG1PdmVybGF5ID0gb3ZlcmxheTsgfQotICAgIAotICAgIGlubGluZSBLZXllZFZlY3RvcjxTdHJpbmc4LCBzcDxSZXNvdXJjZVR5cGVTZXQ+ID4qIGdldFJlc291cmNlcygpIHsgcmV0dXJuIG1SZXM7IH0KLSAgICBpbmxpbmUgdm9pZCAKLSAgICAgICAgc2V0UmVzb3VyY2VzKEtleWVkVmVjdG9yPFN0cmluZzgsIHNwPFJlc291cmNlVHlwZVNldD4gPiogcmVzKSB7IGRlbGV0ZSBtUmVzOyBtUmVzID0gcmVzOyB9Ci0KLSAgICBpbmxpbmUgc3A8RmlsZVBhdGhTdG9yZT4mIGdldEZ1bGxSZXNQYXRocygpIHsgcmV0dXJuIG1GdWxsUmVzUGF0aHM7IH0KLSAgICBpbmxpbmUgdm9pZAotICAgICAgICBzZXRGdWxsUmVzUGF0aHMoc3A8RmlsZVBhdGhTdG9yZT4mIHJlcykgeyBtRnVsbFJlc1BhdGhzID0gcmVzOyB9Ci0KLSAgICBpbmxpbmUgc3A8RmlsZVBhdGhTdG9yZT4mIGdldEZ1bGxBc3NldFBhdGhzKCkgeyByZXR1cm4gbUZ1bGxBc3NldFBhdGhzOyB9Ci0gICAgaW5saW5lIHZvaWQKLSAgICAgICAgc2V0RnVsbEFzc2V0UGF0aHMoc3A8RmlsZVBhdGhTdG9yZT4mIHJlcykgeyBtRnVsbEFzc2V0UGF0aHMgPSByZXM7IH0KLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHNzaXplX3Qgc2x1cnBGdWxsVHJlZShCdW5kbGUqIGJ1bmRsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmc4JiBzcmNEaXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQWFwdEdyb3VwRW50cnkmIGtpbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nOCYgcmVzVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxGaWxlUGF0aFN0b3JlPiYgZnVsbFJlc1BhdGhzKTsKLQotICAgIHNzaXplX3Qgc2x1cnBSZXNvdXJjZVRyZWUoQnVuZGxlKiBidW5kbGUsIGNvbnN0IFN0cmluZzgmIHNyY0Rpcik7Ci0gICAgc3NpemVfdCBzbHVycFJlc291cmNlWmlwKEJ1bmRsZSogYnVuZGxlLCBjb25zdCBjaGFyKiBmaWxlbmFtZSk7Ci0KLSAgICBzdGF0dXNfdCBmaWx0ZXIoQnVuZGxlKiBidW5kbGUpOwotCi0gICAgU3RyaW5nOCBtUGFja2FnZTsKLSAgICBTb3J0ZWRWZWN0b3I8QWFwdEdyb3VwRW50cnk+IG1Hcm91cEVudHJpZXM7Ci0gICAgRGVmYXVsdEtleWVkVmVjdG9yPFN0cmluZzgsIHNwPEFhcHRTeW1ib2xzPiA+IG1TeW1ib2xzOwotICAgIERlZmF1bHRLZXllZFZlY3RvcjxTdHJpbmc4LCBzcDxBYXB0U3ltYm9scz4gPiBtSmF2YVN5bWJvbHM7Ci0gICAgU3RyaW5nOCBtU3ltYm9sc1ByaXZhdGVQYWNrYWdlOwotICAgIGJvb2wgbUhhdmVQcml2YXRlU3ltYm9sczsKLQotICAgIFZlY3RvcjxzcDxBYXB0RGlyPiA+IG1SZXNEaXJzOwotCi0gICAgYm9vbCBtQ2hhbmdlZDsKLQotICAgIGJvb2wgbUhhdmVJbmNsdWRlZEFzc2V0czsKLSAgICBBc3NldE1hbmFnZXIgbUluY2x1ZGVkQXNzZXRzOwotCi0gICAgc3A8QWFwdEFzc2V0cz4gbU92ZXJsYXk7Ci0gICAgS2V5ZWRWZWN0b3I8U3RyaW5nOCwgc3A8UmVzb3VyY2VUeXBlU2V0PiA+KiBtUmVzOwotCi0gICAgc3A8RmlsZVBhdGhTdG9yZT4gbUZ1bGxSZXNQYXRoczsKLSAgICBzcDxGaWxlUGF0aFN0b3JlPiBtRnVsbEFzc2V0UGF0aHM7Ci19OwotCi0jZW5kaWYgLy8gX19BQVBUX0FTU0VUU19ICi0KZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvQW5kcm9pZC5tayBiL3Rvb2xzL2FhcHQvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDUyYzYwYS4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwxMDMgKzAsMCBAQAotIyAKLSMgQ29weXJpZ2h0IDIwMDYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBBbmRyb2lkIEFzc2V0IFBhY2thZ2luZyBUb29sCi0jCi0KLSMgVGhpcyB0b29sIGlzIHByZWJ1aWx0IGlmIHdlJ3JlIGRvaW5nIGFuIGFwcC1vbmx5IGJ1aWxkLgotaWZlcSAoJChUQVJHRVRfQlVJTERfQVBQUyksKQotCi0KLWFhcHRfc3JjX2ZpbGVzIDo9IFwKLQlBYXB0QXNzZXRzLmNwcCBcCi0JQ29tbWFuZC5jcHAgXAotCUNydW5jaENhY2hlLmNwcCBcCi0JRmlsZUZpbmRlci5jcHAgXAotCU1haW4uY3BwIFwKLQlQYWNrYWdlLmNwcCBcCi0JU3RyaW5nUG9vbC5jcHAgXAotCVhNTE5vZGUuY3BwIFwKLQlSZXNvdXJjZUZpbHRlci5jcHAgXAotCVJlc291cmNlSWRDYWNoZS5jcHAgXAotCVJlc291cmNlVGFibGUuY3BwIFwKLQlJbWFnZXMuY3BwIFwKLQlSZXNvdXJjZS5jcHAgXAotICAgIHBzZXVkb2xvY2FsaXplLmNwcCBcCi0gICAgU291cmNlUG9zLmNwcCBcCi0JV29ya1F1ZXVlLmNwcCBcCi0gICAgWmlwRW50cnkuY3BwIFwKLSAgICBaaXBGaWxlLmNwcCBcCi0JcXNvcnRfcl9jb21wYXQuYwotCi1MT0NBTF9QQVRIOj0gJChjYWxsIG15LWRpcikKLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotCi1MT0NBTF9TUkNfRklMRVMgOj0gJChhYXB0X3NyY19maWxlcykKLQotTE9DQUxfQ0ZMQUdTICs9IC1Xbm8tZm9ybWF0LXkyawotaWZlcSAoZGFyd2luLCQoSE9TVF9PUykpCi1MT0NBTF9DRkxBR1MgKz0gLURfREFSV0lOX1VOTElNSVRFRF9TVFJFQU1TCi1lbmRpZgotCi1MT0NBTF9DRkxBR1MgKz0gLURTVEFUSUNfQU5EUk9JREZXX0ZPUl9UT09MUwotCi1MT0NBTF9DX0lOQ0xVREVTICs9IGV4dGVybmFsL2xpYnBuZwotTE9DQUxfQ19JTkNMVURFUyArPSBleHRlcm5hbC96bGliCi0KLUxPQ0FMX1NUQVRJQ19MSUJSQVJJRVMgOj0gXAotCWxpYmFuZHJvaWRmdyBcCi0JbGlidXRpbHMgXAotCWxpYmN1dGlscyBcCi0JbGliZXhwYXQgXAotCWxpYnBuZyBcCi0JbGlibG9nCi0KLWlmZXEgKCQoSE9TVF9PUyksbGludXgpCi1MT0NBTF9MRExJQlMgKz0gLWxydCAtbGRsIC1scHRocmVhZAotZW5kaWYKLQotIyBTdGF0aWNhbGx5IGxpbmsgbGlieiBmb3IgTWluR1cgKFdpbiBTREsgdW5kZXIgTGludXgpLAotIyBhbmQgZHluYW1pY2FsbHkgbGluayBmb3IgYWxsIG90aGVycy4KLWlmbmVxICgkKHN0cmlwICQoVVNFX01JTkdXKSksKQotICBMT0NBTF9TVEFUSUNfTElCUkFSSUVTICs9IGxpYnoKLWVsc2UKLSAgTE9DQUxfTERMSUJTICs9IC1segotZW5kaWYKLQotTE9DQUxfTU9EVUxFIDo9IGFhcHQKLQotaW5jbHVkZSAkKEJVSUxEX0hPU1RfRVhFQ1VUQUJMRSkKLQotIyBhYXB0IGZvciBydW5uaW5nIG9uIHRoZSBkZXZpY2UKLSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1pZm5lcSAoJChTREtfT05MWSksdHJ1ZSkKLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotCi1MT0NBTF9TUkNfRklMRVMgOj0gJChhYXB0X3NyY19maWxlcykKLQotTE9DQUxfTU9EVUxFIDo9IGFhcHQKLQotTE9DQUxfQ19JTkNMVURFUyArPSBiaW9uaWMKLUxPQ0FMX0NfSU5DTFVERVMgKz0gYmlvbmljL2xpYnN0ZGMrKy9pbmNsdWRlCi1MT0NBTF9DX0lOQ0xVREVTICs9IGV4dGVybmFsL3N0bHBvcnQvc3RscG9ydAotTE9DQUxfQ19JTkNMVURFUyArPSBleHRlcm5hbC9saWJwbmcKLUxPQ0FMX0NfSU5DTFVERVMgKz0gZXh0ZXJuYWwvemxpYgotCi1MT0NBTF9DRkxBR1MgKz0gLVduby1ub24tdmlydHVhbC1kdG9yCi0KLUxPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAotICAgICAgICBsaWJhbmRyb2lkZncgXAotICAgICAgICBsaWJ1dGlscyBcCi0gICAgICAgIGxpYmN1dGlscyBcCi0gICAgICAgIGxpYnBuZyBcCi0gICAgICAgIGxpYmxvZyBcCi0gICAgICAgIGxpYnoKLQotTE9DQUxfU1RBVElDX0xJQlJBUklFUyA6PSBcCi0gICAgICAgIGxpYnN0bHBvcnRfc3RhdGljIFwKLSAgICAgICAgbGliZXhwYXRfc3RhdGljCi0KLWluY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQotZW5kaWYKLQotZW5kaWYgIyBUQVJHRVRfQlVJTERfQVBQUwpkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC9CdW5kbGUuaCBiL3Rvb2xzL2FhcHQvQnVuZGxlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwODliOWQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9CdW5kbGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDMwNiArMCwwIEBACi0vLwotLy8gQ29weXJpZ2h0IDIwMDYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotLy8KLS8vIFN0YXRlIGJ1bmRsZS4gIFVzZWQgdG8gcGFzcyBhcm91bmQgc3R1ZmYgbGlrZSBjb21tYW5kLWxpbmUgYXJncy4KLS8vCi0jaWZuZGVmIF9fQlVORExFX0gKLSNkZWZpbmUgX19CVU5ETEVfSAotCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8dXRpbHMvTG9nLmg+Ci0jaW5jbHVkZSA8dXRpbHMvdGhyZWFkcy5oPgotI2luY2x1ZGUgPHV0aWxzL0xpc3QuaD4KLSNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KLSNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+Ci0jaW5jbHVkZSA8dXRpbHMvVmVjdG9yLmg+Ci0KLWVudW0gewotICAgIFNES19DVVBDQUtFID0gMywKLSAgICBTREtfRE9OVVQgPSA0LAotICAgIFNES19FQ0xBSVIgPSA1LAotICAgIFNES19FQ0xBSVJfMF8xID0gNiwKLSAgICBTREtfTVIxID0gNywKLSAgICBTREtfRlJPWU8gPSA4LAotICAgIFNES19IT05FWUNPTUJfTVIyID0gMTMsCi0gICAgU0RLX0lDRV9DUkVBTV9TQU5EV0lDSCA9IDE0LAotICAgIFNES19JQ0VfQ1JFQU1fU0FORFdJQ0hfTVIxID0gMTUsCi19OwotCi0vKgotICogVGhpbmdzIHdlIGNhbiBkby4KLSAqLwotdHlwZWRlZiBlbnVtIENvbW1hbmQgewotICAgIGtDb21tYW5kVW5rbm93biA9IDAsCi0gICAga0NvbW1hbmRWZXJzaW9uLAotICAgIGtDb21tYW5kTGlzdCwKLSAgICBrQ29tbWFuZER1bXAsCi0gICAga0NvbW1hbmRBZGQsCi0gICAga0NvbW1hbmRSZW1vdmUsCi0gICAga0NvbW1hbmRQYWNrYWdlLAotICAgIGtDb21tYW5kQ3J1bmNoLAotICAgIGtDb21tYW5kU2luZ2xlQ3J1bmNoLAotfSBDb21tYW5kOwotCi0vKgotICogQnVuZGxlIG9mIGdvb2RpZXMsIGluY2x1ZGluZyBldmVyeXRoaW5nIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgotICovCi1jbGFzcyBCdW5kbGUgewotcHVibGljOgotICAgIEJ1bmRsZSh2b2lkKQotICAgICAgICA6IG1DbWQoa0NvbW1hbmRVbmtub3duKSwgbVZlcmJvc2UoZmFsc2UpLCBtQW5kcm9pZExpc3QoZmFsc2UpLAotICAgICAgICAgIG1Gb3JjZShmYWxzZSksIG1HcmF5c2NhbGVUb2xlcmFuY2UoMCksIG1NYWtlUGFja2FnZURpcnMoZmFsc2UpLAotICAgICAgICAgIG1VcGRhdGUoZmFsc2UpLCBtRXh0ZW5kaW5nKGZhbHNlKSwKLSAgICAgICAgICBtUmVxdWlyZUxvY2FsaXphdGlvbihmYWxzZSksIG1Qc2V1ZG9sb2NhbGl6ZShmYWxzZSksCi0gICAgICAgICAgbVdhbnRVVEYxNihmYWxzZSksIG1WYWx1ZXMoZmFsc2UpLAotICAgICAgICAgIG1Db21wcmVzc2lvbk1ldGhvZCgwKSwgbUp1bmtQYXRoKGZhbHNlKSwgbU91dHB1dEFQS0ZpbGUoTlVMTCksCi0gICAgICAgICAgbU1hbmlmZXN0UGFja2FnZU5hbWVPdmVycmlkZShOVUxMKSwgbUluc3RydW1lbnRhdGlvblBhY2thZ2VOYW1lT3ZlcnJpZGUoTlVMTCksCi0gICAgICAgICAgbUF1dG9BZGRPdmVybGF5KGZhbHNlKSwgbUdlbkRlcGVuZGVuY2llcyhmYWxzZSksCi0gICAgICAgICAgbUFzc2V0U291cmNlRGlyKE5VTEwpLCAKLSAgICAgICAgICBtQ3J1bmNoZWRPdXRwdXREaXIoTlVMTCksIG1Qcm9ndWFyZEZpbGUoTlVMTCksCi0gICAgICAgICAgbUFuZHJvaWRNYW5pZmVzdEZpbGUoTlVMTCksIG1QdWJsaWNPdXRwdXRGaWxlKE5VTEwpLAotICAgICAgICAgIG1SQ2xhc3NEaXIoTlVMTCksIG1SZXNvdXJjZUludGVybWVkaWF0ZXNEaXIoTlVMTCksIG1NYW5pZmVzdE1pblNka1ZlcnNpb24oTlVMTCksCi0gICAgICAgICAgbU1pblNka1ZlcnNpb24oTlVMTCksIG1UYXJnZXRTZGtWZXJzaW9uKE5VTEwpLCBtTWF4U2RrVmVyc2lvbihOVUxMKSwKLSAgICAgICAgICBtVmVyc2lvbkNvZGUoTlVMTCksIG1WZXJzaW9uTmFtZShOVUxMKSwgbUN1c3RvbVBhY2thZ2UoTlVMTCksIG1FeHRyYVBhY2thZ2VzKE5VTEwpLAotICAgICAgICAgIG1NYXhSZXNWZXJzaW9uKE5VTEwpLCBtRGVidWdNb2RlKGZhbHNlKSwgbU5vbkNvbnN0YW50SWQoZmFsc2UpLCBtUHJvZHVjdChOVUxMKSwKLSAgICAgICAgICBtVXNlQ3J1bmNoQ2FjaGUoZmFsc2UpLCBtRXJyb3JPbkZhaWxlZEluc2VydChmYWxzZSksIG1PdXRwdXRUZXh0U3ltYm9scyhOVUxMKSwKLSAgICAgICAgICBtU2luZ2xlQ3J1bmNoSW5wdXRGaWxlKE5VTEwpLCBtU2luZ2xlQ3J1bmNoT3V0cHV0RmlsZShOVUxMKSwKLSAgICAgICAgICBtQXJnYygwKSwgbUFyZ3YoTlVMTCkKLSAgICAgICAge30KLSAgICB+QnVuZGxlKHZvaWQpIHt9Ci0KLSAgICAvKgotICAgICAqIFNldCB0aGUgY29tbWFuZCB2YWx1ZS4gIFJldHVybnMgImZhbHNlIiBpZiBpdCB3YXMgcHJldmlvdXNseSBzZXQuCi0gICAgICovCi0gICAgQ29tbWFuZCBnZXRDb21tYW5kKHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1DbWQ7IH0KLSAgICB2b2lkIHNldENvbW1hbmQoQ29tbWFuZCBjbWQpIHsgbUNtZCA9IGNtZDsgfQotCi0gICAgLyoKLSAgICAgKiBDb21tYW5kIG1vZGlmaWVycy4gIE5vdCBhbGwgbW9kaWZpZXJzIGFyZSBhcHByb3ByaWF0ZSBmb3IgYWxsCi0gICAgICogY29tbWFuZHMuCi0gICAgICovCi0gICAgYm9vbCBnZXRWZXJib3NlKHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1WZXJib3NlOyB9Ci0gICAgdm9pZCBzZXRWZXJib3NlKGJvb2wgdmFsKSB7IG1WZXJib3NlID0gdmFsOyB9Ci0gICAgYm9vbCBnZXRBbmRyb2lkTGlzdCh2b2lkKSBjb25zdCB7IHJldHVybiBtQW5kcm9pZExpc3Q7IH0KLSAgICB2b2lkIHNldEFuZHJvaWRMaXN0KGJvb2wgdmFsKSB7IG1BbmRyb2lkTGlzdCA9IHZhbDsgfQotICAgIGJvb2wgZ2V0Rm9yY2Uodm9pZCkgY29uc3QgeyByZXR1cm4gbUZvcmNlOyB9Ci0gICAgdm9pZCBzZXRGb3JjZShib29sIHZhbCkgeyBtRm9yY2UgPSB2YWw7IH0KLSAgICB2b2lkIHNldEdyYXlzY2FsZVRvbGVyYW5jZShpbnQgdmFsKSB7IG1HcmF5c2NhbGVUb2xlcmFuY2UgPSB2YWw7IH0KLSAgICBpbnQgIGdldEdyYXlzY2FsZVRvbGVyYW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1HcmF5c2NhbGVUb2xlcmFuY2U7IH0KLSAgICBib29sIGdldE1ha2VQYWNrYWdlRGlycyh2b2lkKSBjb25zdCB7IHJldHVybiBtTWFrZVBhY2thZ2VEaXJzOyB9Ci0gICAgdm9pZCBzZXRNYWtlUGFja2FnZURpcnMoYm9vbCB2YWwpIHsgbU1ha2VQYWNrYWdlRGlycyA9IHZhbDsgfQotICAgIGJvb2wgZ2V0VXBkYXRlKHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1VcGRhdGU7IH0KLSAgICB2b2lkIHNldFVwZGF0ZShib29sIHZhbCkgeyBtVXBkYXRlID0gdmFsOyB9Ci0gICAgYm9vbCBnZXRFeHRlbmRpbmcodm9pZCkgY29uc3QgeyByZXR1cm4gbUV4dGVuZGluZzsgfQotICAgIHZvaWQgc2V0RXh0ZW5kaW5nKGJvb2wgdmFsKSB7IG1FeHRlbmRpbmcgPSB2YWw7IH0KLSAgICBib29sIGdldFJlcXVpcmVMb2NhbGl6YXRpb24odm9pZCkgY29uc3QgeyByZXR1cm4gbVJlcXVpcmVMb2NhbGl6YXRpb247IH0KLSAgICB2b2lkIHNldFJlcXVpcmVMb2NhbGl6YXRpb24oYm9vbCB2YWwpIHsgbVJlcXVpcmVMb2NhbGl6YXRpb24gPSB2YWw7IH0KLSAgICBib29sIGdldFBzZXVkb2xvY2FsaXplKHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1Qc2V1ZG9sb2NhbGl6ZTsgfQotICAgIHZvaWQgc2V0UHNldWRvbG9jYWxpemUoYm9vbCB2YWwpIHsgbVBzZXVkb2xvY2FsaXplID0gdmFsOyB9Ci0gICAgdm9pZCBzZXRXYW50VVRGMTYoYm9vbCB2YWwpIHsgbVdhbnRVVEYxNiA9IHZhbDsgfQotICAgIGJvb2wgZ2V0VmFsdWVzKHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1WYWx1ZXM7IH0KLSAgICB2b2lkIHNldFZhbHVlcyhib29sIHZhbCkgeyBtVmFsdWVzID0gdmFsOyB9Ci0gICAgaW50IGdldENvbXByZXNzaW9uTWV0aG9kKHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1Db21wcmVzc2lvbk1ldGhvZDsgfQotICAgIHZvaWQgc2V0Q29tcHJlc3Npb25NZXRob2QoaW50IHZhbCkgeyBtQ29tcHJlc3Npb25NZXRob2QgPSB2YWw7IH0KLSAgICBib29sIGdldEp1bmtQYXRoKHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1KdW5rUGF0aDsgfQotICAgIHZvaWQgc2V0SnVua1BhdGgoYm9vbCB2YWwpIHsgbUp1bmtQYXRoID0gdmFsOyB9Ci0gICAgY29uc3QgY2hhciogZ2V0T3V0cHV0QVBLRmlsZSgpIGNvbnN0IHsgcmV0dXJuIG1PdXRwdXRBUEtGaWxlOyB9Ci0gICAgdm9pZCBzZXRPdXRwdXRBUEtGaWxlKGNvbnN0IGNoYXIqIHZhbCkgeyBtT3V0cHV0QVBLRmlsZSA9IHZhbDsgfQotICAgIGNvbnN0IGNoYXIqIGdldE1hbmlmZXN0UGFja2FnZU5hbWVPdmVycmlkZSgpIGNvbnN0IHsgcmV0dXJuIG1NYW5pZmVzdFBhY2thZ2VOYW1lT3ZlcnJpZGU7IH0KLSAgICB2b2lkIHNldE1hbmlmZXN0UGFja2FnZU5hbWVPdmVycmlkZShjb25zdCBjaGFyICogdmFsKSB7IG1NYW5pZmVzdFBhY2thZ2VOYW1lT3ZlcnJpZGUgPSB2YWw7IH0KLSAgICBjb25zdCBjaGFyKiBnZXRJbnN0cnVtZW50YXRpb25QYWNrYWdlTmFtZU92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4gbUluc3RydW1lbnRhdGlvblBhY2thZ2VOYW1lT3ZlcnJpZGU7IH0KLSAgICB2b2lkIHNldEluc3RydW1lbnRhdGlvblBhY2thZ2VOYW1lT3ZlcnJpZGUoY29uc3QgY2hhciAqIHZhbCkgeyBtSW5zdHJ1bWVudGF0aW9uUGFja2FnZU5hbWVPdmVycmlkZSA9IHZhbDsgfQotICAgIGJvb2wgZ2V0QXV0b0FkZE92ZXJsYXkoKSB7IHJldHVybiBtQXV0b0FkZE92ZXJsYXk7IH0KLSAgICB2b2lkIHNldEF1dG9BZGRPdmVybGF5KGJvb2wgdmFsKSB7IG1BdXRvQWRkT3ZlcmxheSA9IHZhbDsgfQotICAgIGJvb2wgZ2V0R2VuRGVwZW5kZW5jaWVzKCkgeyByZXR1cm4gbUdlbkRlcGVuZGVuY2llczsgfQotICAgIHZvaWQgc2V0R2VuRGVwZW5kZW5jaWVzKGJvb2wgdmFsKSB7IG1HZW5EZXBlbmRlbmNpZXMgPSB2YWw7IH0KLSAgICBib29sIGdldEVycm9yT25GYWlsZWRJbnNlcnQoKSB7IHJldHVybiBtRXJyb3JPbkZhaWxlZEluc2VydDsgfQotICAgIHZvaWQgc2V0RXJyb3JPbkZhaWxlZEluc2VydChib29sIHZhbCkgeyBtRXJyb3JPbkZhaWxlZEluc2VydCA9IHZhbDsgfQotCi0gICAgYm9vbCBnZXRVVEYxNlN0cmluZ3NPcHRpb24oKSB7Ci0gICAgICAgIHJldHVybiBtV2FudFVURjE2IHx8ICFpc01pblNka0F0TGVhc3QoU0RLX0ZST1lPKTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIElucHV0IG9wdGlvbnMuCi0gICAgICovCi0gICAgY29uc3QgY2hhciogZ2V0QXNzZXRTb3VyY2VEaXIoKSBjb25zdCB7IHJldHVybiBtQXNzZXRTb3VyY2VEaXI7IH0KLSAgICB2b2lkIHNldEFzc2V0U291cmNlRGlyKGNvbnN0IGNoYXIqIGRpcikgeyBtQXNzZXRTb3VyY2VEaXIgPSBkaXI7IH0KLSAgICBjb25zdCBjaGFyKiBnZXRDcnVuY2hlZE91dHB1dERpcigpIGNvbnN0IHsgcmV0dXJuIG1DcnVuY2hlZE91dHB1dERpcjsgfQotICAgIHZvaWQgc2V0Q3J1bmNoZWRPdXRwdXREaXIoY29uc3QgY2hhciogZGlyKSB7IG1DcnVuY2hlZE91dHB1dERpciA9IGRpcjsgfQotICAgIGNvbnN0IGNoYXIqIGdldFByb2d1YXJkRmlsZSgpIGNvbnN0IHsgcmV0dXJuIG1Qcm9ndWFyZEZpbGU7IH0KLSAgICB2b2lkIHNldFByb2d1YXJkRmlsZShjb25zdCBjaGFyKiBmaWxlKSB7IG1Qcm9ndWFyZEZpbGUgPSBmaWxlOyB9Ci0gICAgY29uc3QgYW5kcm9pZDo6VmVjdG9yPGNvbnN0IGNoYXIqPiYgZ2V0UmVzb3VyY2VTb3VyY2VEaXJzKCkgY29uc3QgeyByZXR1cm4gbVJlc291cmNlU291cmNlRGlyczsgfQotICAgIHZvaWQgYWRkUmVzb3VyY2VTb3VyY2VEaXIoY29uc3QgY2hhciogZGlyKSB7IG1SZXNvdXJjZVNvdXJjZURpcnMuaW5zZXJ0QXQoZGlyLDApOyB9Ci0gICAgY29uc3QgY2hhciogZ2V0QW5kcm9pZE1hbmlmZXN0RmlsZSgpIGNvbnN0IHsgcmV0dXJuIG1BbmRyb2lkTWFuaWZlc3RGaWxlOyB9Ci0gICAgdm9pZCBzZXRBbmRyb2lkTWFuaWZlc3RGaWxlKGNvbnN0IGNoYXIqIGZpbGUpIHsgbUFuZHJvaWRNYW5pZmVzdEZpbGUgPSBmaWxlOyB9Ci0gICAgY29uc3QgY2hhciogZ2V0UHVibGljT3V0cHV0RmlsZSgpIGNvbnN0IHsgcmV0dXJuIG1QdWJsaWNPdXRwdXRGaWxlOyB9Ci0gICAgdm9pZCBzZXRQdWJsaWNPdXRwdXRGaWxlKGNvbnN0IGNoYXIqIGZpbGUpIHsgbVB1YmxpY091dHB1dEZpbGUgPSBmaWxlOyB9Ci0gICAgY29uc3QgY2hhciogZ2V0UkNsYXNzRGlyKCkgY29uc3QgeyByZXR1cm4gbVJDbGFzc0RpcjsgfQotICAgIHZvaWQgc2V0UkNsYXNzRGlyKGNvbnN0IGNoYXIqIGRpcikgeyBtUkNsYXNzRGlyID0gZGlyOyB9Ci0gICAgY29uc3QgY2hhciogZ2V0Q29uZmlndXJhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtQ29uZmlndXJhdGlvbnMuc2l6ZSgpID4gMCA/IG1Db25maWd1cmF0aW9ucy5zdHJpbmcoKSA6IE5VTEw7IH0KLSAgICB2b2lkIGFkZENvbmZpZ3VyYXRpb25zKGNvbnN0IGNoYXIqIHZhbCkgeyBpZiAobUNvbmZpZ3VyYXRpb25zLnNpemUoKSA+IDApIHsgbUNvbmZpZ3VyYXRpb25zLmFwcGVuZCgiLCIpOyBtQ29uZmlndXJhdGlvbnMuYXBwZW5kKHZhbCk7IH0gZWxzZSB7IG1Db25maWd1cmF0aW9ucyA9IHZhbDsgfSB9Ci0gICAgY29uc3QgY2hhciogZ2V0UHJlZmVycmVkQ29uZmlndXJhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtUHJlZmVycmVkQ29uZmlndXJhdGlvbnMuc2l6ZSgpID4gMCA/IG1QcmVmZXJyZWRDb25maWd1cmF0aW9ucy5zdHJpbmcoKSA6IE5VTEw7IH0KLSAgICB2b2lkIGFkZFByZWZlcnJlZENvbmZpZ3VyYXRpb25zKGNvbnN0IGNoYXIqIHZhbCkgeyBpZiAobVByZWZlcnJlZENvbmZpZ3VyYXRpb25zLnNpemUoKSA+IDApIHsgbVByZWZlcnJlZENvbmZpZ3VyYXRpb25zLmFwcGVuZCgiLCIpOyBtUHJlZmVycmVkQ29uZmlndXJhdGlvbnMuYXBwZW5kKHZhbCk7IH0gZWxzZSB7IG1QcmVmZXJyZWRDb25maWd1cmF0aW9ucyA9IHZhbDsgfSB9Ci0gICAgY29uc3QgY2hhciogZ2V0UmVzb3VyY2VJbnRlcm1lZGlhdGVzRGlyKCkgY29uc3QgeyByZXR1cm4gbVJlc291cmNlSW50ZXJtZWRpYXRlc0RpcjsgfQotICAgIHZvaWQgc2V0UmVzb3VyY2VJbnRlcm1lZGlhdGVzRGlyKGNvbnN0IGNoYXIqIGRpcikgeyBtUmVzb3VyY2VJbnRlcm1lZGlhdGVzRGlyID0gZGlyOyB9Ci0gICAgY29uc3QgYW5kcm9pZDo6VmVjdG9yPGNvbnN0IGNoYXIqPiYgZ2V0UGFja2FnZUluY2x1ZGVzKCkgY29uc3QgeyByZXR1cm4gbVBhY2thZ2VJbmNsdWRlczsgfQotICAgIHZvaWQgYWRkUGFja2FnZUluY2x1ZGUoY29uc3QgY2hhciogZmlsZSkgeyBtUGFja2FnZUluY2x1ZGVzLmFkZChmaWxlKTsgfQotICAgIGNvbnN0IGFuZHJvaWQ6OlZlY3Rvcjxjb25zdCBjaGFyKj4mIGdldEphckZpbGVzKCkgY29uc3QgeyByZXR1cm4gbUphckZpbGVzOyB9Ci0gICAgdm9pZCBhZGRKYXJGaWxlKGNvbnN0IGNoYXIqIGZpbGUpIHsgbUphckZpbGVzLmFkZChmaWxlKTsgfQotICAgIGNvbnN0IGFuZHJvaWQ6OlZlY3Rvcjxjb25zdCBjaGFyKj4mIGdldE5vQ29tcHJlc3NFeHRlbnNpb25zKCkgY29uc3QgeyByZXR1cm4gbU5vQ29tcHJlc3NFeHRlbnNpb25zOyB9Ci0gICAgdm9pZCBhZGROb0NvbXByZXNzRXh0ZW5zaW9uKGNvbnN0IGNoYXIqIGV4dCkgeyBtTm9Db21wcmVzc0V4dGVuc2lvbnMuYWRkKGV4dCk7IH0KLQotICAgIGNvbnN0IGNoYXIqICBnZXRNYW5pZmVzdE1pblNka1ZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtTWFuaWZlc3RNaW5TZGtWZXJzaW9uOyB9Ci0gICAgdm9pZCBzZXRNYW5pZmVzdE1pblNka1ZlcnNpb24oY29uc3QgY2hhciogIHZhbCkgeyBtTWFuaWZlc3RNaW5TZGtWZXJzaW9uID0gdmFsOyB9Ci0gICAgY29uc3QgY2hhciogIGdldE1pblNka1ZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtTWluU2RrVmVyc2lvbjsgfQotICAgIHZvaWQgc2V0TWluU2RrVmVyc2lvbihjb25zdCBjaGFyKiAgdmFsKSB7IG1NaW5TZGtWZXJzaW9uID0gdmFsOyB9Ci0gICAgY29uc3QgY2hhciogIGdldFRhcmdldFNka1ZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtVGFyZ2V0U2RrVmVyc2lvbjsgfQotICAgIHZvaWQgc2V0VGFyZ2V0U2RrVmVyc2lvbihjb25zdCBjaGFyKiAgdmFsKSB7IG1UYXJnZXRTZGtWZXJzaW9uID0gdmFsOyB9Ci0gICAgY29uc3QgY2hhciogIGdldE1heFNka1ZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtTWF4U2RrVmVyc2lvbjsgfQotICAgIHZvaWQgc2V0TWF4U2RrVmVyc2lvbihjb25zdCBjaGFyKiAgdmFsKSB7IG1NYXhTZGtWZXJzaW9uID0gdmFsOyB9Ci0gICAgY29uc3QgY2hhciogIGdldFZlcnNpb25Db2RlKCkgY29uc3QgeyByZXR1cm4gbVZlcnNpb25Db2RlOyB9Ci0gICAgdm9pZCBzZXRWZXJzaW9uQ29kZShjb25zdCBjaGFyKiAgdmFsKSB7IG1WZXJzaW9uQ29kZSA9IHZhbDsgfQotICAgIGNvbnN0IGNoYXIqIGdldFZlcnNpb25OYW1lKCkgY29uc3QgeyByZXR1cm4gbVZlcnNpb25OYW1lOyB9Ci0gICAgdm9pZCBzZXRWZXJzaW9uTmFtZShjb25zdCBjaGFyKiB2YWwpIHsgbVZlcnNpb25OYW1lID0gdmFsOyB9Ci0gICAgY29uc3QgY2hhciogZ2V0Q3VzdG9tUGFja2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1DdXN0b21QYWNrYWdlOyB9Ci0gICAgdm9pZCBzZXRDdXN0b21QYWNrYWdlKGNvbnN0IGNoYXIqIHZhbCkgeyBtQ3VzdG9tUGFja2FnZSA9IHZhbDsgfQotICAgIGNvbnN0IGNoYXIqIGdldEV4dHJhUGFja2FnZXMoKSBjb25zdCB7IHJldHVybiBtRXh0cmFQYWNrYWdlczsgfQotICAgIHZvaWQgc2V0RXh0cmFQYWNrYWdlcyhjb25zdCBjaGFyKiB2YWwpIHsgbUV4dHJhUGFja2FnZXMgPSB2YWw7IH0KLSAgICBjb25zdCBjaGFyKiBnZXRNYXhSZXNWZXJzaW9uKCkgY29uc3QgeyByZXR1cm4gbU1heFJlc1ZlcnNpb247IH0KLSAgICB2b2lkIHNldE1heFJlc1ZlcnNpb24oY29uc3QgY2hhciAqIHZhbCkgeyBtTWF4UmVzVmVyc2lvbiA9IHZhbDsgfQotICAgIGJvb2wgZ2V0RGVidWdNb2RlKCkgY29uc3QgeyByZXR1cm4gbURlYnVnTW9kZTsgfQotICAgIHZvaWQgc2V0RGVidWdNb2RlKGJvb2wgdmFsKSB7IG1EZWJ1Z01vZGUgPSB2YWw7IH0KLSAgICBib29sIGdldE5vbkNvbnN0YW50SWQoKSBjb25zdCB7IHJldHVybiBtTm9uQ29uc3RhbnRJZDsgfQotICAgIHZvaWQgc2V0Tm9uQ29uc3RhbnRJZChib29sIHZhbCkgeyBtTm9uQ29uc3RhbnRJZCA9IHZhbDsgfQotICAgIGNvbnN0IGNoYXIqIGdldFByb2R1Y3QoKSBjb25zdCB7IHJldHVybiBtUHJvZHVjdDsgfQotICAgIHZvaWQgc2V0UHJvZHVjdChjb25zdCBjaGFyICogdmFsKSB7IG1Qcm9kdWN0ID0gdmFsOyB9Ci0gICAgdm9pZCBzZXRVc2VDcnVuY2hDYWNoZShib29sIHZhbCkgeyBtVXNlQ3J1bmNoQ2FjaGUgPSB2YWw7IH0KLSAgICBib29sIGdldFVzZUNydW5jaENhY2hlKCkgY29uc3QgeyByZXR1cm4gbVVzZUNydW5jaENhY2hlOyB9Ci0gICAgY29uc3QgY2hhciogZ2V0T3V0cHV0VGV4dFN5bWJvbHMoKSBjb25zdCB7IHJldHVybiBtT3V0cHV0VGV4dFN5bWJvbHM7IH0KLSAgICB2b2lkIHNldE91dHB1dFRleHRTeW1ib2xzKGNvbnN0IGNoYXIqIHZhbCkgeyBtT3V0cHV0VGV4dFN5bWJvbHMgPSB2YWw7IH0KLSAgICBjb25zdCBjaGFyKiBnZXRTaW5nbGVDcnVuY2hJbnB1dEZpbGUoKSBjb25zdCB7IHJldHVybiBtU2luZ2xlQ3J1bmNoSW5wdXRGaWxlOyB9Ci0gICAgdm9pZCBzZXRTaW5nbGVDcnVuY2hJbnB1dEZpbGUoY29uc3QgY2hhciogdmFsKSB7IG1TaW5nbGVDcnVuY2hJbnB1dEZpbGUgPSB2YWw7IH0KLSAgICBjb25zdCBjaGFyKiBnZXRTaW5nbGVDcnVuY2hPdXRwdXRGaWxlKCkgY29uc3QgeyByZXR1cm4gbVNpbmdsZUNydW5jaE91dHB1dEZpbGU7IH0KLSAgICB2b2lkIHNldFNpbmdsZUNydW5jaE91dHB1dEZpbGUoY29uc3QgY2hhciogdmFsKSB7IG1TaW5nbGVDcnVuY2hPdXRwdXRGaWxlID0gdmFsOyB9Ci0KLSAgICAvKgotICAgICAqIFNldCBhbmQgZ2V0IHRoZSBmaWxlIHNwZWNpZmljYXRpb24uCi0gICAgICoKLSAgICAgKiBOb3RlIHRoaXMgZG9lcyBOT1QgbWFrZSBhIGNvcHkgb2YgYXJndi4KLSAgICAgKi8KLSAgICB2b2lkIHNldEZpbGVTcGVjKGNoYXIqIGNvbnN0IGFyZ3ZbXSwgaW50IGFyZ2MpIHsKLSAgICAgICAgbUFyZ2MgPSBhcmdjOwotICAgICAgICBtQXJndiA9IGFyZ3Y7Ci0gICAgfQotICAgIGludCBnZXRGaWxlU3BlY0NvdW50KHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1BcmdjOyB9Ci0gICAgY29uc3QgY2hhciogZ2V0RmlsZVNwZWNFbnRyeShpbnQgaWR4KSBjb25zdCB7IHJldHVybiBtQXJndltpZHhdOyB9Ci0gICAgdm9pZCBlYXRBcmdzKGludCBuKSB7Ci0gICAgICAgIGlmIChuID4gbUFyZ2MpIG4gPSBtQXJnYzsKLSAgICAgICAgbUFyZ3YgKz0gbjsKLSAgICAgICAgbUFyZ2MgLT0gbjsKLSAgICB9Ci0KLSNpZiAwCi0gICAgLyoKLSAgICAgKiBQYWNrYWdlIGNvdW50LiAgTm90aGluZyB0byBkbyB3aXRoIGFueXRoaW5nIGVsc2UgaGVyZTsgdGhpcyBpcwotICAgICAqIGp1c3QgYSBjb252ZW5pZW50IHBsYWNlIHRvIHN0dWZmIGl0IHNvIHdlIGRvbid0IGhhdmUgdG8gcGFzcyBpdAotICAgICAqIGFyb3VuZCBldmVyeXdoZXJlLgotICAgICAqLwotICAgIGludCBnZXRQYWNrYWdlQ291bnQodm9pZCkgY29uc3QgeyByZXR1cm4gbVBhY2thZ2VDb3VudDsgfQotICAgIHZvaWQgc2V0UGFja2FnZUNvdW50KGludCB2YWwpIHsgbVBhY2thZ2VDb3VudCA9IHZhbDsgfQotI2VuZGlmCi0KLSAgICAvKiBDZXJ0YWluIGZlYXR1cmVzIG1heSBvbmx5IGJlIGF2YWlsYWJsZSBvbiBhIHNwZWNpZmljIFNESyBsZXZlbCBvcgotICAgICAqIGFib3ZlLiBTREsgbGV2ZWxzIHRoYXQgaGF2ZSBhIG5vbi1udW1lcmljIGlkZW50aWZpZXIgYXJlIGFzc3VtZWQKLSAgICAgKiB0byBiZSBuZXdlciB0aGFuIGFueSBTREsgbGV2ZWwgdGhhdCBoYXMgYSBudW1iZXIgZGVzaWduYXRlZC4KLSAgICAgKi8KLSAgICBib29sIGlzTWluU2RrQXRMZWFzdChpbnQgZGVzaXJlZCkgewotICAgICAgICAvKiBJZiB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWVzIGEgbWluU2RrVmVyc2lvbiBpbiB0aGUgbWFuaWZlc3QKLSAgICAgICAgICogdGhlbiB1c2UgdGhhdC4gT3RoZXJ3aXNlLCBjaGVjayB3aGF0IHRoZSB1c2VyIHNwZWNpZmllZCBvbgotICAgICAgICAgKiB0aGUgY29tbWFuZCBsaW5lLiBJZiBuZWl0aGVyLCBpdCdzIG5vdCBhdmFpbGFibGUgc2luY2UKLSAgICAgICAgICogdGhlIG1pbmltdW0gU0RLIHZlcnNpb24gaXMgYXNzdW1lZCB0byBiZSAxLgotICAgICAgICAgKi8KLSAgICAgICAgY29uc3QgY2hhciAqbWluVmVyOwotICAgICAgICBpZiAobU1hbmlmZXN0TWluU2RrVmVyc2lvbiAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBtaW5WZXIgPSBtTWFuaWZlc3RNaW5TZGtWZXJzaW9uOwotICAgICAgICB9IGVsc2UgaWYgKG1NaW5TZGtWZXJzaW9uICE9IE5VTEwpIHsKLSAgICAgICAgICAgIG1pblZlciA9IG1NaW5TZGtWZXJzaW9uOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgY2hhciAqZW5kOwotICAgICAgICBpbnQgbWluU2RrTnVtID0gKGludClzdHJ0b2wobWluVmVyLCAmZW5kLCAwKTsKLSAgICAgICAgaWYgKCplbmQgPT0gJ1wwJykgewotICAgICAgICAgICAgaWYgKG1pblNka051bSA8IGRlc2lyZWQpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIC8qIGNvbW1hbmRzICYgbW9kaWZpZXJzICovCi0gICAgQ29tbWFuZCAgICAgbUNtZDsKLSAgICBib29sICAgICAgICBtVmVyYm9zZTsKLSAgICBib29sICAgICAgICBtQW5kcm9pZExpc3Q7Ci0gICAgYm9vbCAgICAgICAgbUZvcmNlOwotICAgIGludCAgICAgICAgIG1HcmF5c2NhbGVUb2xlcmFuY2U7Ci0gICAgYm9vbCAgICAgICAgbU1ha2VQYWNrYWdlRGlyczsKLSAgICBib29sICAgICAgICBtVXBkYXRlOwotICAgIGJvb2wgICAgICAgIG1FeHRlbmRpbmc7Ci0gICAgYm9vbCAgICAgICAgbVJlcXVpcmVMb2NhbGl6YXRpb247Ci0gICAgYm9vbCAgICAgICAgbVBzZXVkb2xvY2FsaXplOwotICAgIGJvb2wgICAgICAgIG1XYW50VVRGMTY7Ci0gICAgYm9vbCAgICAgICAgbVZhbHVlczsKLSAgICBpbnQgICAgICAgICBtQ29tcHJlc3Npb25NZXRob2Q7Ci0gICAgYm9vbCAgICAgICAgbUp1bmtQYXRoOwotICAgIGNvbnN0IGNoYXIqIG1PdXRwdXRBUEtGaWxlOwotICAgIGNvbnN0IGNoYXIqIG1NYW5pZmVzdFBhY2thZ2VOYW1lT3ZlcnJpZGU7Ci0gICAgY29uc3QgY2hhciogbUluc3RydW1lbnRhdGlvblBhY2thZ2VOYW1lT3ZlcnJpZGU7Ci0gICAgYm9vbCAgICAgICAgbUF1dG9BZGRPdmVybGF5OwotICAgIGJvb2wgICAgICAgIG1HZW5EZXBlbmRlbmNpZXM7Ci0gICAgY29uc3QgY2hhciogbUFzc2V0U291cmNlRGlyOwotICAgIGNvbnN0IGNoYXIqIG1DcnVuY2hlZE91dHB1dERpcjsKLSAgICBjb25zdCBjaGFyKiBtUHJvZ3VhcmRGaWxlOwotICAgIGNvbnN0IGNoYXIqIG1BbmRyb2lkTWFuaWZlc3RGaWxlOwotICAgIGNvbnN0IGNoYXIqIG1QdWJsaWNPdXRwdXRGaWxlOwotICAgIGNvbnN0IGNoYXIqIG1SQ2xhc3NEaXI7Ci0gICAgY29uc3QgY2hhciogbVJlc291cmNlSW50ZXJtZWRpYXRlc0RpcjsKLSAgICBhbmRyb2lkOjpTdHJpbmc4IG1Db25maWd1cmF0aW9uczsKLSAgICBhbmRyb2lkOjpTdHJpbmc4IG1QcmVmZXJyZWRDb25maWd1cmF0aW9uczsKLSAgICBhbmRyb2lkOjpWZWN0b3I8Y29uc3QgY2hhcio+IG1QYWNrYWdlSW5jbHVkZXM7Ci0gICAgYW5kcm9pZDo6VmVjdG9yPGNvbnN0IGNoYXIqPiBtSmFyRmlsZXM7Ci0gICAgYW5kcm9pZDo6VmVjdG9yPGNvbnN0IGNoYXIqPiBtTm9Db21wcmVzc0V4dGVuc2lvbnM7Ci0gICAgYW5kcm9pZDo6VmVjdG9yPGNvbnN0IGNoYXIqPiBtUmVzb3VyY2VTb3VyY2VEaXJzOwotCi0gICAgY29uc3QgY2hhciogbU1hbmlmZXN0TWluU2RrVmVyc2lvbjsKLSAgICBjb25zdCBjaGFyKiBtTWluU2RrVmVyc2lvbjsKLSAgICBjb25zdCBjaGFyKiBtVGFyZ2V0U2RrVmVyc2lvbjsKLSAgICBjb25zdCBjaGFyKiBtTWF4U2RrVmVyc2lvbjsKLSAgICBjb25zdCBjaGFyKiBtVmVyc2lvbkNvZGU7Ci0gICAgY29uc3QgY2hhciogbVZlcnNpb25OYW1lOwotICAgIGNvbnN0IGNoYXIqIG1DdXN0b21QYWNrYWdlOwotICAgIGNvbnN0IGNoYXIqIG1FeHRyYVBhY2thZ2VzOwotICAgIGNvbnN0IGNoYXIqIG1NYXhSZXNWZXJzaW9uOwotICAgIGJvb2wgICAgICAgIG1EZWJ1Z01vZGU7Ci0gICAgYm9vbCAgICAgICAgbU5vbkNvbnN0YW50SWQ7Ci0gICAgY29uc3QgY2hhciogbVByb2R1Y3Q7Ci0gICAgYm9vbCAgICAgICAgbVVzZUNydW5jaENhY2hlOwotICAgIGJvb2wgICAgICAgIG1FcnJvck9uRmFpbGVkSW5zZXJ0OwotICAgIGNvbnN0IGNoYXIqIG1PdXRwdXRUZXh0U3ltYm9sczsKLSAgICBjb25zdCBjaGFyKiBtU2luZ2xlQ3J1bmNoSW5wdXRGaWxlOwotICAgIGNvbnN0IGNoYXIqIG1TaW5nbGVDcnVuY2hPdXRwdXRGaWxlOwotCi0gICAgLyogZmlsZSBzcGVjaWZpY2F0aW9uICovCi0gICAgaW50ICAgICAgICAgbUFyZ2M7Ci0gICAgY2hhciogY29uc3QqIG1Bcmd2OwotCi0jaWYgMAotICAgIC8qIG1pc2Mgc3R1ZmYgKi8KLSAgICBpbnQgICAgICAgICBtUGFja2FnZUNvdW50OwotI2VuZGlmCi0KLX07Ci0KLSNlbmRpZiAvLyBfX0JVTkRMRV9ICmRpZmYgLS1naXQgYS90b29scy9hYXB0L0NhY2hlVXBkYXRlci5oIGIvdG9vbHMvYWFwdC9DYWNoZVVwZGF0ZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGU2NTU4OS4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L0NhY2hlVXBkYXRlci5oCisrKyAvZGV2L251bGwKQEAgLTEsMTA3ICswLDAgQEAKLS8vCi0vLyBDb3B5cmlnaHQgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0vLwotLy8gQWJzdHJhY3Rpb24gb2YgY2FsbHMgdG8gc3lzdGVtIHRvIG1ha2UgZGlyZWN0b3JpZXMgYW5kIGRlbGV0ZSBmaWxlcyBhbmQKLS8vIHdyYXBwZXIgdG8gaW1hZ2UgcHJvY2Vzc2luZy4KLQotI2lmbmRlZiBDQUNIRV9VUERBVEVSX0gKLSNkZWZpbmUgQ0FDSEVfVVBEQVRFUl9ICi0KLSNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgIkltYWdlcy5oIgotCi11c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKLQotLyoqIENhY2hlVXBkYXRlcgotICogIFRoaXMgaXMgYSBwdXJlIHZpcnR1YWwgY2xhc3MgdGhhdCBkZWNsYXJlcyBhYnN0cmFjdGlvbnMgb2YgZnVuY3Rpb25zIHVzZWZ1bAotICogIGZvciBtYW5hZ2luZyBhIGNhY2hlIGZpbGVzLiBUaGlzIG1hbmFnZXIgaXMgc2V0IHVwIHRvIGJlIHVzZWQgaW4gYQotICogIG1pcnJvciBjYWNoZSB3aGVyZSB0aGUgc291cmNlIHRyZWUgaXMgZHVwbGljYXRlZCBhbmQgZmlsbGVkIHdpdGggcHJvY2Vzc2VkCi0gKiAgaW1hZ2VzLiBUaGlzIGNsYXNzIGlzIGFic3RyYWN0ZWQgdG8gYWxsb3cgZm9yIGRlcGVuZGVuY3kgaW5qZWN0aW9uIGR1cmluZwotICogIHVuaXQgdGVzdGluZy4KLSAqICBVc2FnZToKLSAqICAgICAgVG8gdXBkYXRlL2FkZCBhIGZpbGUgdG8gdGhlIGNhY2hlLCBjYWxsIHByb2Nlc3NJbWFnZQotICogICAgICBUbyByZW1vdmUgYSBmaWxlIGZyb20gdGhlIGNhY2hlLCBjYWxsIGRlbGV0ZUZpbGUKLSAqLwotY2xhc3MgQ2FjaGVVcGRhdGVyIHsKLXB1YmxpYzoKLSAgICAvLyBNYWtlIHN1cmUgYWxsIHRoZSBkaXJlY3RvcmllcyBhbG9uZyB0aGlzIHBhdGggZXhpc3QKLSAgICB2aXJ0dWFsIHZvaWQgZW5zdXJlRGlyZWN0b3JpZXNFeGlzdChTdHJpbmc4IHBhdGgpID0gMDsKLQotICAgIC8vIERlbGV0ZSBhIGZpbGUKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRmlsZShTdHJpbmc4IHBhdGgpID0gMDsKLQotICAgIC8vIFByb2Nlc3MgYW4gaW1hZ2UgZnJvbSBzb3VyY2Ugb3V0IHRvIGRlc3QKLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0ltYWdlKFN0cmluZzggc291cmNlLCBTdHJpbmc4IGRlc3QpID0gMDsKLXByaXZhdGU6Ci19OwotCi0vKiogU3lzdGVtQ2FjaGVVcGRhdGVyCi0gKiBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBhYm92ZSB2aXJ0dWFsIGNhY2hlIHVwZGF0ZXIgc3BlY2lmaWNhdGlvbi4KLSAqIFRoaXMgaW1wbGVtZW50YXRpb25zIGhpdHMgdGhlIGZpbGVzeXN0ZW0gdG8gbWFuYWdlIGEgY2FjaGUgYW5kIGNhbGxzIG91dCB0bwotICogdGhlIFBORyBjcnVuY2hpbmcgaW4gaW1hZ2VzLmggdG8gcHJvY2VzcyBpbWFnZXMgb3V0IHRvIGl0cyBjYWNoZSBjb21wb25lbnRzLgotICovCi1jbGFzcyBTeXN0ZW1DYWNoZVVwZGF0ZXIgOiBwdWJsaWMgQ2FjaGVVcGRhdGVyIHsKLXB1YmxpYzoKLSAgICAvLyBDb25zdHJ1Y3RvciB0byBzZXQgYnVuZGxlIHRvIHBhc3MgdG8gcHJlUHJvY2Vzc0ltYWdlCi0gICAgU3lzdGVtQ2FjaGVVcGRhdGVyIChCdW5kbGUqIGIpCi0gICAgICAgIDogYnVuZGxlKGIpIHsgfTsKLQotICAgIC8vIE1ha2Ugc3VyZSBhbGwgdGhlIGRpcmVjdG9yaWVzIGFsb25nIHRoaXMgcGF0aCBleGlzdAotICAgIHZpcnR1YWwgdm9pZCBlbnN1cmVEaXJlY3Rvcmllc0V4aXN0KFN0cmluZzggcGF0aCkKLSAgICB7Ci0gICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBmdWxseSBxdWFsaWZpZWQgcGF0aAotICAgICAgICBTdHJpbmc4IGV4aXN0c1BhdGg7Ci0gICAgICAgIFN0cmluZzggdG9DcmVhdGU7Ci0gICAgICAgIFN0cmluZzggcmVtYWluczsKLSAgICAgICAgc3RydWN0IHN0YXQgczsKLQotICAgICAgICAvLyBDaGVjayBvcHRvbWlzdGljYWxseSB0byBzZWUgaWYgYWxsIGRpcmVjdG9yaWVzIGV4aXN0LgotICAgICAgICAvLyBJZiBzb21ldGhpbmcgaW4gdGhlIHBhdGggZG9lc24ndCBleGlzdCwgdGhlbiB3YWxrIHRoZSBwYXRoIGJhY2t3YXJkcwotICAgICAgICAvLyBhbmQgZmluZCB0aGUgcGxhY2UgdG8gc3RhcnQgY3JlYXRpbmcgZGlyZWN0b3JpZXMgZm9yd2FyZC4KLSAgICAgICAgaWYgKHN0YXQocGF0aC5zdHJpbmcoKSwmcykgPT0gLTEpIHsKLSAgICAgICAgICAgIC8vIFdhbGsgYmFja3dhcmRzIHRvIGZpbmQgcGxhY2UgdG8gc3RhcnQgY3JlYXRpbmcgZGlyZWN0b3JpZXMKLSAgICAgICAgICAgIGV4aXN0c1BhdGggPSBwYXRoOwotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIC8vIEFzIHdlIHJlbW92ZSB0aGUgZW5kIG9mIGV4aXN0c1BhdGggYWRkIGl0IHRvCi0gICAgICAgICAgICAgICAgLy8gdGhlIHN0cmluZyBvZiBwYXRocyB0byBjcmVhdGUuCi0gICAgICAgICAgICAgICAgdG9DcmVhdGUgPSBleGlzdHNQYXRoLmdldFBhdGhMZWFmKCkuYXBwZW5kUGF0aCh0b0NyZWF0ZSk7Ci0gICAgICAgICAgICAgICAgZXhpc3RzUGF0aCA9IGV4aXN0c1BhdGguZ2V0UGF0aERpcigpOwotICAgICAgICAgICAgfSB3aGlsZSAoc3RhdChleGlzdHNQYXRoLnN0cmluZygpLCZzKSA9PSAtMSk7Ci0KLSAgICAgICAgICAgIC8vIFdhbGsgZm9yd2FyZHMgYW5kIGJ1aWxkIGRpcmVjdG9yaWVzIGFzIHdlIGdvCi0gICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbmV4dCBzZWdtZW50IG9mIHRoZSBwYXRoCi0gICAgICAgICAgICAgICAgZXhpc3RzUGF0aC5hcHBlbmRQYXRoKHRvQ3JlYXRlLndhbGtQYXRoKCZyZW1haW5zKSk7Ci0gICAgICAgICAgICAgICAgdG9DcmVhdGUgPSByZW1haW5zOwotI2lmZGVmIEhBVkVfTVNfQ19SVU5USU1FCi0gICAgICAgICAgICAgICAgX21rZGlyKGV4aXN0c1BhdGguc3RyaW5nKCkpOwotI2Vsc2UKLSAgICAgICAgICAgICAgICBta2RpcihleGlzdHNQYXRoLnN0cmluZygpLCBTX0lSVVNSfFNfSVdVU1J8U19JWFVTUnxTX0lSR1JQfFNfSVhHUlApOwotI2VuZGlmCi0gICAgICAgICAgICB9IHdoaWxlIChyZW1haW5zLmxlbmd0aCgpID4gMCk7Ci0gICAgICAgIH0gLy9pZgotICAgIH07Ci0KLSAgICAvLyBEZWxldGUgYSBmaWxlCi0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUZpbGUoU3RyaW5nOCBwYXRoKQotICAgIHsKLSAgICAgICAgaWYgKHJlbW92ZShwYXRoLnN0cmluZygpKSAhPSAwKQotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsIkVSUk9SIERFTEVUSU5HICVzXG4iLHBhdGguc3RyaW5nKCkpOwotICAgIH07Ci0KLSAgICAvLyBQcm9jZXNzIGFuIGltYWdlIGZyb20gc291cmNlIG91dCB0byBkZXN0Ci0gICAgdmlydHVhbCB2b2lkIHByb2Nlc3NJbWFnZShTdHJpbmc4IHNvdXJjZSwgU3RyaW5nOCBkZXN0KQotICAgIHsKLSAgICAgICAgLy8gTWFrZSBzdXJlIHdlJ3JlIHRyeWluZyB0byB3cml0ZSB0byBhIGRpcmVjdG9yeSB0aGF0IGlzIGV4dGFudAotICAgICAgICBlbnN1cmVEaXJlY3Rvcmllc0V4aXN0KGRlc3QuZ2V0UGF0aERpcigpKTsKLQotICAgICAgICBwcmVQcm9jZXNzSW1hZ2VUb0NhY2hlKGJ1bmRsZSwgc291cmNlLCBkZXN0KTsKLSAgICB9OwotcHJpdmF0ZToKLSAgICBCdW5kbGUqIGJ1bmRsZTsKLX07Ci0KLSNlbmRpZiAvLyBDQUNIRV9VUERBVEVSX0gKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90b29scy9hYXB0L0NvbW1hbmQuY3BwIGIvdG9vbHMvYWFwdC9Db21tYW5kLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjMyZWZlMC4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L0NvbW1hbmQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjI2OSArMCwwIEBACi0vLwotLy8gQ29weXJpZ2h0IDIwMDYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotLy8KLS8vIEFuZHJvaWQgQXNzZXQgUGFja2FnaW5nIFRvb2wgbWFpbiBlbnRyeSBwb2ludC4KLS8vCi0jaW5jbHVkZSAiTWFpbi5oIgotI2luY2x1ZGUgIkJ1bmRsZS5oIgotI2luY2x1ZGUgIlJlc291cmNlRmlsdGVyLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VUYWJsZS5oIgotI2luY2x1ZGUgIkltYWdlcy5oIgotI2luY2x1ZGUgIlhNTE5vZGUuaCIKLQotI2luY2x1ZGUgPHV0aWxzL0xvZy5oPgotI2luY2x1ZGUgPHV0aWxzL3RocmVhZHMuaD4KLSNpbmNsdWRlIDx1dGlscy9MaXN0Lmg+Ci0jaW5jbHVkZSA8dXRpbHMvRXJyb3JzLmg+Ci0KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwotCi0vKgotICogU2hvdyB2ZXJzaW9uIGluZm8uICBBbGwgdGhlIGNvb2wga2lkcyBkbyBpdC4KLSAqLwotaW50IGRvVmVyc2lvbihCdW5kbGUqIGJ1bmRsZSkKLXsKLSAgICBpZiAoYnVuZGxlLT5nZXRGaWxlU3BlY0NvdW50KCkgIT0gMCkKLSAgICAgICAgcHJpbnRmKCIoaWdub3JpbmcgZXh0cmEgYXJndW1lbnRzKVxuIik7Ci0gICAgcHJpbnRmKCJBbmRyb2lkIEFzc2V0IFBhY2thZ2luZyBUb29sLCB2MC4yXG4iKTsKLQotICAgIHJldHVybiAwOwotfQotCi0KLS8qCi0gKiBPcGVuIHRoZSBmaWxlIHJlYWQgb25seS4gIFRoZSBjYWxsIGZhaWxzIGlmIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QuCi0gKgotICogUmV0dXJucyBOVUxMIG9uIGZhaWx1cmUuCi0gKi8KLVppcEZpbGUqIG9wZW5SZWFkT25seShjb25zdCBjaGFyKiBmaWxlTmFtZSkKLXsKLSAgICBaaXBGaWxlKiB6aXA7Ci0gICAgc3RhdHVzX3QgcmVzdWx0OwotCi0gICAgemlwID0gbmV3IFppcEZpbGU7Ci0gICAgcmVzdWx0ID0gemlwLT5vcGVuKGZpbGVOYW1lLCBaaXBGaWxlOjprT3BlblJlYWRPbmx5KTsKLSAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gTkFNRV9OT1RfRk9VTkQpCi0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiAnJXMnIG5vdCBmb3VuZFxuIiwgZmlsZU5hbWUpOwotICAgICAgICBlbHNlIGlmIChyZXN1bHQgPT0gUEVSTUlTU0lPTl9ERU5JRUQpCi0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiAnJXMnIGFjY2VzcyBkZW5pZWRcbiIsIGZpbGVOYW1lKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogZmFpbGVkIG9wZW5pbmcgJyVzJyBhcyBaaXAgZmlsZVxuIiwKLSAgICAgICAgICAgICAgICBmaWxlTmFtZSk7Ci0gICAgICAgIGRlbGV0ZSB6aXA7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIHJldHVybiB6aXA7Ci19Ci0KLS8qCi0gKiBPcGVuIHRoZSBmaWxlIHJlYWQtd3JpdGUuICBUaGUgZmlsZSB3aWxsIGJlIGNyZWF0ZWQgaWYgaXQgZG9lc24ndAotICogYWxyZWFkeSBleGlzdCBhbmQgIm9rYXlUb0NyZWF0ZSIgaXMgc2V0LgotICoKLSAqIFJldHVybnMgTlVMTCBvbiBmYWlsdXJlLgotICovCi1aaXBGaWxlKiBvcGVuUmVhZFdyaXRlKGNvbnN0IGNoYXIqIGZpbGVOYW1lLCBib29sIG9rYXlUb0NyZWF0ZSkKLXsKLSAgICBaaXBGaWxlKiB6aXAgPSBOVUxMOwotICAgIHN0YXR1c190IHJlc3VsdDsKLSAgICBpbnQgZmxhZ3M7Ci0KLSAgICBmbGFncyA9IFppcEZpbGU6OmtPcGVuUmVhZFdyaXRlOwotICAgIGlmIChva2F5VG9DcmVhdGUpCi0gICAgICAgIGZsYWdzIHw9IFppcEZpbGU6OmtPcGVuQ3JlYXRlOwotCi0gICAgemlwID0gbmV3IFppcEZpbGU7Ci0gICAgcmVzdWx0ID0gemlwLT5vcGVuKGZpbGVOYW1lLCBmbGFncyk7Ci0gICAgaWYgKHJlc3VsdCAhPSBOT19FUlJPUikgewotICAgICAgICBkZWxldGUgemlwOwotICAgICAgICB6aXAgPSBOVUxMOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi1iYWlsOgotICAgIHJldHVybiB6aXA7Ci19Ci0KLQotLyoKLSAqIFJldHVybiBhIHNob3J0IHN0cmluZyBkZXNjcmliaW5nIHRoZSBjb21wcmVzc2lvbiBtZXRob2QuCi0gKi8KLWNvbnN0IGNoYXIqIGNvbXByZXNzaW9uTmFtZShpbnQgbWV0aG9kKQotewotICAgIGlmIChtZXRob2QgPT0gWmlwRW50cnk6OmtDb21wcmVzc1N0b3JlZCkKLSAgICAgICAgcmV0dXJuICJTdG9yZWQiOwotICAgIGVsc2UgaWYgKG1ldGhvZCA9PSBaaXBFbnRyeTo6a0NvbXByZXNzRGVmbGF0ZWQpCi0gICAgICAgIHJldHVybiAiRGVmbGF0ZWQiOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuICJVbmtub3duIjsKLX0KLQotLyoKLSAqIFJldHVybiB0aGUgcGVyY2VudCByZWR1Y3Rpb24gaW4gc2l6ZSAoMCUgPT0gbm8gY29tcHJlc3Npb24pLgotICovCi1pbnQgY2FsY1BlcmNlbnQobG9uZyB1bmNvbXByZXNzZWRMZW4sIGxvbmcgY29tcHJlc3NlZExlbikKLXsKLSAgICBpZiAoIXVuY29tcHJlc3NlZExlbikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gKGludCkgKDEwMC4wIC0gKGNvbXByZXNzZWRMZW4gKiAxMDAuMCkgLyB1bmNvbXByZXNzZWRMZW4gKyAwLjUpOwotfQotCi0vKgotICogSGFuZGxlIHRoZSAibGlzdCIgY29tbWFuZCwgd2hpY2ggY2FuIGJlIGEgc2ltcGxlIGZpbGUgZHVtcCBvcgotICogYSB2ZXJib3NlIGxpc3RpbmcuCi0gKgotICogVGhlIHZlcmJvc2UgbGlzdGluZyBjbG9zZWx5IG1hdGNoZXMgdGhlIG91dHB1dCBvZiB0aGUgSW5mby1aSVAgInVuemlwIgotICogY29tbWFuZC4KLSAqLwotaW50IGRvTGlzdChCdW5kbGUqIGJ1bmRsZSkKLXsKLSAgICBpbnQgcmVzdWx0ID0gMTsKLSAgICBaaXBGaWxlKiB6aXAgPSBOVUxMOwotICAgIGNvbnN0IFppcEVudHJ5KiBlbnRyeTsKLSAgICBsb25nIHRvdGFsVW5jTGVuLCB0b3RhbENvbXBMZW47Ci0gICAgY29uc3QgY2hhciogemlwRmlsZU5hbWU7Ci0KLSAgICBpZiAoYnVuZGxlLT5nZXRGaWxlU3BlY0NvdW50KCkgIT0gMSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBzcGVjaWZ5IHppcCBmaWxlIG5hbWUgKG9ubHkpXG4iKTsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLSAgICB6aXBGaWxlTmFtZSA9IGJ1bmRsZS0+Z2V0RmlsZVNwZWNFbnRyeSgwKTsKLQotICAgIHppcCA9IG9wZW5SZWFkT25seSh6aXBGaWxlTmFtZSk7Ci0gICAgaWYgKHppcCA9PSBOVUxMKQotICAgICAgICBnb3RvIGJhaWw7Ci0KLSAgICBpbnQgY291bnQsIGk7Ci0KLSAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpIHsKLSAgICAgICAgcHJpbnRmKCJBcmNoaXZlOiAgJXNcbiIsIHppcEZpbGVOYW1lKTsKLSAgICAgICAgcHJpbnRmKAotICAgICAgICAgICAgIiBMZW5ndGggICBNZXRob2QgICAgU2l6ZSAgUmF0aW8gICBPZmZzZXQgICAgICBEYXRlICBUaW1lICBDUkMtMzIgICAgTmFtZVxuIik7Ci0gICAgICAgIHByaW50ZigKLSAgICAgICAgICAgICItLS0tLS0tLSAgLS0tLS0tICAtLS0tLS0tIC0tLS0tICAtLS0tLS0tICAgICAgLS0tLSAgLS0tLSAgLS0tLS0tICAgIC0tLS1cbiIpOwotICAgIH0KLQotICAgIHRvdGFsVW5jTGVuID0gdG90YWxDb21wTGVuID0gMDsKLQotICAgIGNvdW50ID0gemlwLT5nZXROdW1FbnRyaWVzKCk7Ci0gICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLSAgICAgICAgZW50cnkgPSB6aXAtPmdldEVudHJ5QnlJbmRleChpKTsKLSAgICAgICAgaWYgKGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKSB7Ci0gICAgICAgICAgICBjaGFyIGRhdGVCdWZbMzJdOwotICAgICAgICAgICAgdGltZV90IHdoZW47Ci0KLSAgICAgICAgICAgIHdoZW4gPSBlbnRyeS0+Z2V0TW9kV2hlbigpOwotICAgICAgICAgICAgc3RyZnRpbWUoZGF0ZUJ1Ziwgc2l6ZW9mKGRhdGVCdWYpLCAiJW0tJWQtJXkgJUg6JU0iLAotICAgICAgICAgICAgICAgIGxvY2FsdGltZSgmd2hlbikpOwotCi0gICAgICAgICAgICBwcmludGYoIiU4bGQgICUtNy43cyAlN2xkICUzZCUlICAlOHpkICAlcyAgJTA4bHggICVzXG4iLAotICAgICAgICAgICAgICAgIChsb25nKSBlbnRyeS0+Z2V0VW5jb21wcmVzc2VkTGVuKCksCi0gICAgICAgICAgICAgICAgY29tcHJlc3Npb25OYW1lKGVudHJ5LT5nZXRDb21wcmVzc2lvbk1ldGhvZCgpKSwKLSAgICAgICAgICAgICAgICAobG9uZykgZW50cnktPmdldENvbXByZXNzZWRMZW4oKSwKLSAgICAgICAgICAgICAgICBjYWxjUGVyY2VudChlbnRyeS0+Z2V0VW5jb21wcmVzc2VkTGVuKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnktPmdldENvbXByZXNzZWRMZW4oKSksCi0gICAgICAgICAgICAgICAgKHNpemVfdCkgZW50cnktPmdldExGSE9mZnNldCgpLAotICAgICAgICAgICAgICAgIGRhdGVCdWYsCi0gICAgICAgICAgICAgICAgZW50cnktPmdldENSQzMyKCksCi0gICAgICAgICAgICAgICAgZW50cnktPmdldEZpbGVOYW1lKCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHJpbnRmKCIlc1xuIiwgZW50cnktPmdldEZpbGVOYW1lKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgdG90YWxVbmNMZW4gKz0gZW50cnktPmdldFVuY29tcHJlc3NlZExlbigpOwotICAgICAgICB0b3RhbENvbXBMZW4gKz0gZW50cnktPmdldENvbXByZXNzZWRMZW4oKTsKLSAgICB9Ci0KLSAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpIHsKLSAgICAgICAgcHJpbnRmKAotICAgICAgICAiLS0tLS0tLS0gICAgICAgICAgLS0tLS0tLSAgLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS1cbiIpOwotICAgICAgICBwcmludGYoIiU4bGQgICAgICAgICAgJTdsZCAgJTJkJSUgICAgICAgICAgICAgICAgICAgICAgICAgICAgJWQgZmlsZXNcbiIsCi0gICAgICAgICAgICB0b3RhbFVuY0xlbiwKLSAgICAgICAgICAgIHRvdGFsQ29tcExlbiwKLSAgICAgICAgICAgIGNhbGNQZXJjZW50KHRvdGFsVW5jTGVuLCB0b3RhbENvbXBMZW4pLAotICAgICAgICAgICAgemlwLT5nZXROdW1FbnRyaWVzKCkpOwotICAgIH0KLQotICAgIGlmIChidW5kbGUtPmdldEFuZHJvaWRMaXN0KCkpIHsKLSAgICAgICAgQXNzZXRNYW5hZ2VyIGFzc2V0czsKLSAgICAgICAgaWYgKCFhc3NldHMuYWRkQXNzZXRQYXRoKFN0cmluZzgoemlwRmlsZU5hbWUpLCBOVUxMKSkgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogbGlzdCAtYSBmYWlsZWQgYmVjYXVzZSBhc3NldHMgY291bGQgbm90IGJlIGxvYWRlZFxuIik7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBSZXNUYWJsZSYgcmVzID0gYXNzZXRzLmdldFJlc291cmNlcyhmYWxzZSk7Ci0gICAgICAgIGlmICgmcmVzID09IE5VTEwpIHsKLSAgICAgICAgICAgIHByaW50ZigiXG5ObyByZXNvdXJjZSB0YWJsZSBmb3VuZC5cbiIpOwotICAgICAgICB9IGVsc2UgewotI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKLSAgICAgICAgICAgIHByaW50ZigiXG5SZXNvdXJjZSB0YWJsZTpcbiIpOwotICAgICAgICAgICAgcmVzLnByaW50KGZhbHNlKTsKLSNlbmRpZgotICAgICAgICB9Ci0KLSAgICAgICAgQXNzZXQqIG1hbmlmZXN0QXNzZXQgPSBhc3NldHMub3Blbk5vbkFzc2V0KCJBbmRyb2lkTWFuaWZlc3QueG1sIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFzc2V0OjpBQ0NFU1NfQlVGRkVSKTsKLSAgICAgICAgaWYgKG1hbmlmZXN0QXNzZXQgPT0gTlVMTCkgewotICAgICAgICAgICAgcHJpbnRmKCJcbk5vIEFuZHJvaWRNYW5pZmVzdC54bWwgZm91bmQuXG4iKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHByaW50ZigiXG5BbmRyb2lkIG1hbmlmZXN0OlxuIik7Ci0gICAgICAgICAgICBSZXNYTUxUcmVlIHRyZWU7Ci0gICAgICAgICAgICB0cmVlLnNldFRvKG1hbmlmZXN0QXNzZXQtPmdldEJ1ZmZlcih0cnVlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RBc3NldC0+Z2V0TGVuZ3RoKCkpOwotICAgICAgICAgICAgcHJpbnRYTUxCbG9jaygmdHJlZSk7Ci0gICAgICAgIH0KLSAgICAgICAgZGVsZXRlIG1hbmlmZXN0QXNzZXQ7Ci0gICAgfQotCi0gICAgcmVzdWx0ID0gMDsKLQotYmFpbDoKLSAgICBkZWxldGUgemlwOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBzc2l6ZV90IGluZGV4T2ZBdHRyaWJ1dGUoY29uc3QgUmVzWE1MVHJlZSYgdHJlZSwgdWludDMyX3QgYXR0clJlcykKLXsKLSAgICBzaXplX3QgTiA9IHRyZWUuZ2V0QXR0cmlidXRlQ291bnQoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIGlmICh0cmVlLmdldEF0dHJpYnV0ZU5hbWVSZXNJRChpKSA9PSBhdHRyUmVzKSB7Ci0gICAgICAgICAgICByZXR1cm4gKHNzaXplX3QpaTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gLTE7Ci19Ci0KLVN0cmluZzggZ2V0QXR0cmlidXRlKGNvbnN0IFJlc1hNTFRyZWUmIHRyZWUsIGNvbnN0IGNoYXIqIG5zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGF0dHIsIFN0cmluZzgqIG91dEVycm9yKQotewotICAgIHNzaXplX3QgaWR4ID0gdHJlZS5pbmRleE9mQXR0cmlidXRlKG5zLCBhdHRyKTsKLSAgICBpZiAoaWR4IDwgMCkgewotICAgICAgICByZXR1cm4gU3RyaW5nOCgpOwotICAgIH0KLSAgICBSZXNfdmFsdWUgdmFsdWU7Ci0gICAgaWYgKHRyZWUuZ2V0QXR0cmlidXRlVmFsdWUoaWR4LCAmdmFsdWUpICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIGlmICh2YWx1ZS5kYXRhVHlwZSAhPSBSZXNfdmFsdWU6OlRZUEVfU1RSSU5HKSB7Ci0gICAgICAgICAgICBpZiAob3V0RXJyb3IgIT0gTlVMTCkgKm91dEVycm9yID0gImF0dHJpYnV0ZSBpcyBub3QgYSBzdHJpbmcgdmFsdWUiOwotICAgICAgICAgICAgcmV0dXJuIFN0cmluZzgoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBzaXplX3QgbGVuOwotICAgIGNvbnN0IHVpbnQxNl90KiBzdHIgPSB0cmVlLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKGlkeCwgJmxlbik7Ci0gICAgcmV0dXJuIHN0ciA/IFN0cmluZzgoc3RyLCBsZW4pIDogU3RyaW5nOCgpOwotfQotCi1zdGF0aWMgU3RyaW5nOCBnZXRBdHRyaWJ1dGUoY29uc3QgUmVzWE1MVHJlZSYgdHJlZSwgdWludDMyX3QgYXR0clJlcywgU3RyaW5nOCogb3V0RXJyb3IpCi17Ci0gICAgc3NpemVfdCBpZHggPSBpbmRleE9mQXR0cmlidXRlKHRyZWUsIGF0dHJSZXMpOwotICAgIGlmIChpZHggPCAwKSB7Ci0gICAgICAgIHJldHVybiBTdHJpbmc4KCk7Ci0gICAgfQotICAgIFJlc192YWx1ZSB2YWx1ZTsKLSAgICBpZiAodHJlZS5nZXRBdHRyaWJ1dGVWYWx1ZShpZHgsICZ2YWx1ZSkgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgaWYgKHZhbHVlLmRhdGFUeXBlICE9IFJlc192YWx1ZTo6VFlQRV9TVFJJTkcpIHsKLSAgICAgICAgICAgIGlmIChvdXRFcnJvciAhPSBOVUxMKSAqb3V0RXJyb3IgPSAiYXR0cmlidXRlIGlzIG5vdCBhIHN0cmluZyB2YWx1ZSI7Ci0gICAgICAgICAgICByZXR1cm4gU3RyaW5nOCgpOwotICAgICAgICB9Ci0gICAgfQotICAgIHNpemVfdCBsZW47Ci0gICAgY29uc3QgdWludDE2X3QqIHN0ciA9IHRyZWUuZ2V0QXR0cmlidXRlU3RyaW5nVmFsdWUoaWR4LCAmbGVuKTsKLSAgICByZXR1cm4gc3RyID8gU3RyaW5nOChzdHIsIGxlbikgOiBTdHJpbmc4KCk7Ci19Ci0KLXN0YXRpYyBpbnQzMl90IGdldEludGVnZXJBdHRyaWJ1dGUoY29uc3QgUmVzWE1MVHJlZSYgdHJlZSwgdWludDMyX3QgYXR0clJlcywKLSAgICAgICAgU3RyaW5nOCogb3V0RXJyb3IsIGludDMyX3QgZGVmVmFsdWUgPSAtMSkKLXsKLSAgICBzc2l6ZV90IGlkeCA9IGluZGV4T2ZBdHRyaWJ1dGUodHJlZSwgYXR0clJlcyk7Ci0gICAgaWYgKGlkeCA8IDApIHsKLSAgICAgICAgcmV0dXJuIGRlZlZhbHVlOwotICAgIH0KLSAgICBSZXNfdmFsdWUgdmFsdWU7Ci0gICAgaWYgKHRyZWUuZ2V0QXR0cmlidXRlVmFsdWUoaWR4LCAmdmFsdWUpICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIGlmICh2YWx1ZS5kYXRhVHlwZSA8IFJlc192YWx1ZTo6VFlQRV9GSVJTVF9JTlQKLSAgICAgICAgICAgICAgICB8fCB2YWx1ZS5kYXRhVHlwZSA+IFJlc192YWx1ZTo6VFlQRV9MQVNUX0lOVCkgewotICAgICAgICAgICAgaWYgKG91dEVycm9yICE9IE5VTEwpICpvdXRFcnJvciA9ICJhdHRyaWJ1dGUgaXMgbm90IGFuIGludGVnZXIgdmFsdWUiOwotICAgICAgICAgICAgcmV0dXJuIGRlZlZhbHVlOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiB2YWx1ZS5kYXRhOwotfQotCi1zdGF0aWMgaW50MzJfdCBnZXRSZXNvbHZlZEludGVnZXJBdHRyaWJ1dGUoY29uc3QgUmVzVGFibGUqIHJlc1RhYmxlLCBjb25zdCBSZXNYTUxUcmVlJiB0cmVlLAotICAgICAgICB1aW50MzJfdCBhdHRyUmVzLCBTdHJpbmc4KiBvdXRFcnJvciwgaW50MzJfdCBkZWZWYWx1ZSA9IC0xKQotewotICAgIHNzaXplX3QgaWR4ID0gaW5kZXhPZkF0dHJpYnV0ZSh0cmVlLCBhdHRyUmVzKTsKLSAgICBpZiAoaWR4IDwgMCkgewotICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgfQotICAgIFJlc192YWx1ZSB2YWx1ZTsKLSAgICBpZiAodHJlZS5nZXRBdHRyaWJ1dGVWYWx1ZShpZHgsICZ2YWx1ZSkgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgaWYgKHZhbHVlLmRhdGFUeXBlID09IFJlc192YWx1ZTo6VFlQRV9SRUZFUkVOQ0UpIHsKLSAgICAgICAgICAgIHJlc1RhYmxlLT5yZXNvbHZlUmVmZXJlbmNlKCZ2YWx1ZSwgMCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHZhbHVlLmRhdGFUeXBlIDwgUmVzX3ZhbHVlOjpUWVBFX0ZJUlNUX0lOVAotICAgICAgICAgICAgICAgIHx8IHZhbHVlLmRhdGFUeXBlID4gUmVzX3ZhbHVlOjpUWVBFX0xBU1RfSU5UKSB7Ci0gICAgICAgICAgICBpZiAob3V0RXJyb3IgIT0gTlVMTCkgKm91dEVycm9yID0gImF0dHJpYnV0ZSBpcyBub3QgYW4gaW50ZWdlciB2YWx1ZSI7Ci0gICAgICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHZhbHVlLmRhdGE7Ci19Ci0KLXN0YXRpYyBTdHJpbmc4IGdldFJlc29sdmVkQXR0cmlidXRlKGNvbnN0IFJlc1RhYmxlKiByZXNUYWJsZSwgY29uc3QgUmVzWE1MVHJlZSYgdHJlZSwKLSAgICAgICAgdWludDMyX3QgYXR0clJlcywgU3RyaW5nOCogb3V0RXJyb3IpCi17Ci0gICAgc3NpemVfdCBpZHggPSBpbmRleE9mQXR0cmlidXRlKHRyZWUsIGF0dHJSZXMpOwotICAgIGlmIChpZHggPCAwKSB7Ci0gICAgICAgIHJldHVybiBTdHJpbmc4KCk7Ci0gICAgfQotICAgIFJlc192YWx1ZSB2YWx1ZTsKLSAgICBpZiAodHJlZS5nZXRBdHRyaWJ1dGVWYWx1ZShpZHgsICZ2YWx1ZSkgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgaWYgKHZhbHVlLmRhdGFUeXBlID09IFJlc192YWx1ZTo6VFlQRV9TVFJJTkcpIHsKLSAgICAgICAgICAgIHNpemVfdCBsZW47Ci0gICAgICAgICAgICBjb25zdCB1aW50MTZfdCogc3RyID0gdHJlZS5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShpZHgsICZsZW4pOwotICAgICAgICAgICAgcmV0dXJuIHN0ciA/IFN0cmluZzgoc3RyLCBsZW4pIDogU3RyaW5nOCgpOwotICAgICAgICB9Ci0gICAgICAgIHJlc1RhYmxlLT5yZXNvbHZlUmVmZXJlbmNlKCZ2YWx1ZSwgMCk7Ci0gICAgICAgIGlmICh2YWx1ZS5kYXRhVHlwZSAhPSBSZXNfdmFsdWU6OlRZUEVfU1RSSU5HKSB7Ci0gICAgICAgICAgICBpZiAob3V0RXJyb3IgIT0gTlVMTCkgKm91dEVycm9yID0gImF0dHJpYnV0ZSBpcyBub3QgYSBzdHJpbmcgdmFsdWUiOwotICAgICAgICAgICAgcmV0dXJuIFN0cmluZzgoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBzaXplX3QgbGVuOwotICAgIGNvbnN0IFJlc192YWx1ZSogdmFsdWUyID0gJnZhbHVlOwotICAgIGNvbnN0IGNoYXIxNl90KiBzdHIgPSBjb25zdF9jYXN0PFJlc1RhYmxlKj4ocmVzVGFibGUpLT52YWx1ZVRvU3RyaW5nKHZhbHVlMiwgMCwgTlVMTCwgJmxlbik7Ci0gICAgcmV0dXJuIHN0ciA/IFN0cmluZzgoc3RyLCBsZW4pIDogU3RyaW5nOCgpOwotfQotCi0vLyBUaGVzZSBhcmUgYXR0cmlidXRlIHJlc291cmNlIGNvbnN0YW50cyBmb3IgdGhlIHBsYXRmb3JtLCBhcyBmb3VuZAotLy8gaW4gYW5kcm9pZC5SLmF0dHIKLWVudW0gewotICAgIExBQkVMX0FUVFIgPSAweDAxMDEwMDAxLAotICAgIElDT05fQVRUUiA9IDB4MDEwMTAwMDIsCi0gICAgTkFNRV9BVFRSID0gMHgwMTAxMDAwMywKLSAgICBQRVJNSVNTSU9OX0FUVFIgPSAweDAxMDEwMDA2LAotICAgIFJFU09VUkNFX0FUVFIgPSAweDAxMDEwMDI1LAotICAgIERFQlVHR0FCTEVfQVRUUiA9IDB4MDEwMTAwMGYsCi0gICAgVkVSU0lPTl9DT0RFX0FUVFIgPSAweDAxMDEwMjFiLAotICAgIFZFUlNJT05fTkFNRV9BVFRSID0gMHgwMTAxMDIxYywKLSAgICBTQ1JFRU5fT1JJRU5UQVRJT05fQVRUUiA9IDB4MDEwMTAwMWUsCi0gICAgTUlOX1NES19WRVJTSU9OX0FUVFIgPSAweDAxMDEwMjBjLAotICAgIE1BWF9TREtfVkVSU0lPTl9BVFRSID0gMHgwMTAxMDI3MSwKLSAgICBSRVFfVE9VQ0hfU0NSRUVOX0FUVFIgPSAweDAxMDEwMjI3LAotICAgIFJFUV9LRVlCT0FSRF9UWVBFX0FUVFIgPSAweDAxMDEwMjI4LAotICAgIFJFUV9IQVJEX0tFWUJPQVJEX0FUVFIgPSAweDAxMDEwMjI5LAotICAgIFJFUV9OQVZJR0FUSU9OX0FUVFIgPSAweDAxMDEwMjJhLAotICAgIFJFUV9GSVZFX1dBWV9OQVZfQVRUUiA9IDB4MDEwMTAyMzIsCi0gICAgVEFSR0VUX1NES19WRVJTSU9OX0FUVFIgPSAweDAxMDEwMjcwLAotICAgIFRFU1RfT05MWV9BVFRSID0gMHgwMTAxMDI3MiwKLSAgICBBTllfREVOU0lUWV9BVFRSID0gMHgwMTAxMDI2YywKLSAgICBHTF9FU19WRVJTSU9OX0FUVFIgPSAweDAxMDEwMjgxLAotICAgIFNNQUxMX1NDUkVFTl9BVFRSID0gMHgwMTAxMDI4NCwKLSAgICBOT1JNQUxfU0NSRUVOX0FUVFIgPSAweDAxMDEwMjg1LAotICAgIExBUkdFX1NDUkVFTl9BVFRSID0gMHgwMTAxMDI4NiwKLSAgICBYTEFSR0VfU0NSRUVOX0FUVFIgPSAweDAxMDEwMmJmLAotICAgIFJFUVVJUkVEX0FUVFIgPSAweDAxMDEwMjhlLAotICAgIFNDUkVFTl9TSVpFX0FUVFIgPSAweDAxMDEwMmNhLAotICAgIFNDUkVFTl9ERU5TSVRZX0FUVFIgPSAweDAxMDEwMmNiLAotICAgIFJFUVVJUkVTX1NNQUxMRVNUX1dJRFRIX0RQX0FUVFIgPSAweDAxMDEwMzY0LAotICAgIENPTVBBVElCTEVfV0lEVEhfTElNSVRfRFBfQVRUUiA9IDB4MDEwMTAzNjUsCi0gICAgTEFSR0VTVF9XSURUSF9MSU1JVF9EUF9BVFRSID0gMHgwMTAxMDM2NiwKLSAgICBQVUJMSUNfS0VZX0FUVFIgPSAweDAxMDEwM2E2LAotICAgIENBVEVHT1JZX0FUVFIgPSAweDAxMDEwM2U4LAotfTsKLQotY29uc3QgY2hhciAqZ2V0Q29tcG9uZW50TmFtZShTdHJpbmc4ICZwa2dOYW1lLCBTdHJpbmc4ICZjb21wb25lbnROYW1lKSB7Ci0gICAgc3NpemVfdCBpZHggPSBjb21wb25lbnROYW1lLmZpbmQoIi4iKTsKLSAgICBTdHJpbmc4IHJldFN0cihwa2dOYW1lKTsKLSAgICBpZiAoaWR4ID09IDApIHsKLSAgICAgICAgcmV0U3RyICs9IGNvbXBvbmVudE5hbWU7Ci0gICAgfSBlbHNlIGlmIChpZHggPCAwKSB7Ci0gICAgICAgIHJldFN0ciArPSAiLiI7Ci0gICAgICAgIHJldFN0ciArPSBjb21wb25lbnROYW1lOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBjb21wb25lbnROYW1lLnN0cmluZygpOwotICAgIH0KLSAgICByZXR1cm4gcmV0U3RyLnN0cmluZygpOwotfQotCi1zdGF0aWMgdm9pZCBwcmludENvbXBhdGlibGVTY3JlZW5zKFJlc1hNTFRyZWUmIHRyZWUpIHsKLSAgICBzaXplX3QgbGVuOwotICAgIFJlc1hNTFRyZWU6OmV2ZW50X2NvZGVfdCBjb2RlOwotICAgIGludCBkZXB0aCA9IDA7Ci0gICAgYm9vbCBmaXJzdCA9IHRydWU7Ci0gICAgcHJpbnRmKCJjb21wYXRpYmxlLXNjcmVlbnM6Iik7Ci0gICAgd2hpbGUgKChjb2RlPXRyZWUubmV4dCgpKSAhPSBSZXNYTUxUcmVlOjpFTkRfRE9DVU1FTlQgJiYgY29kZSAhPSBSZXNYTUxUcmVlOjpCQURfRE9DVU1FTlQpIHsKLSAgICAgICAgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6RU5EX1RBRykgewotICAgICAgICAgICAgZGVwdGgtLTsKLSAgICAgICAgICAgIGlmIChkZXB0aCA8IDApIHsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChjb2RlICE9IFJlc1hNTFRyZWU6OlNUQVJUX1RBRykgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgZGVwdGgrKzsKLSAgICAgICAgU3RyaW5nOCB0YWcodHJlZS5nZXRFbGVtZW50TmFtZSgmbGVuKSk7Ci0gICAgICAgIGlmICh0YWcgPT0gInNjcmVlbiIpIHsKLSAgICAgICAgICAgIGludDMyX3Qgc2NyZWVuU2l6ZSA9IGdldEludGVnZXJBdHRyaWJ1dGUodHJlZSwKLSAgICAgICAgICAgICAgICAgICAgU0NSRUVOX1NJWkVfQVRUUiwgTlVMTCwgLTEpOwotICAgICAgICAgICAgaW50MzJfdCBzY3JlZW5EZW5zaXR5ID0gZ2V0SW50ZWdlckF0dHJpYnV0ZSh0cmVlLAotICAgICAgICAgICAgICAgICAgICBTQ1JFRU5fREVOU0lUWV9BVFRSLCBOVUxMLCAtMSk7Ci0gICAgICAgICAgICBpZiAoc2NyZWVuU2l6ZSA+IDAgJiYgc2NyZWVuRGVuc2l0eSA+IDApIHsKLSAgICAgICAgICAgICAgICBpZiAoIWZpcnN0KSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiLCIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBmaXJzdCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHByaW50ZigiJyVkLyVkJyIsIHNjcmVlblNpemUsIHNjcmVlbkRlbnNpdHkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIHByaW50ZigiXG4iKTsKLX0KLQotVmVjdG9yPFN0cmluZzg+IGdldE5mY0FpZENhdGVnb3JpZXMoQXNzZXRNYW5hZ2VyJiBhc3NldHMsIFN0cmluZzggeG1sUGF0aCwgYm9vbCBvZmZIb3N0LAotICAgICAgICBTdHJpbmc4ICpvdXRFcnJvciA9IE5VTEwpCi17Ci0gICAgQXNzZXQqIGFpZEFzc2V0ID0gYXNzZXRzLm9wZW5Ob25Bc3NldCh4bWxQYXRoLCBBc3NldDo6QUNDRVNTX0JVRkZFUik7Ci0gICAgaWYgKGFpZEFzc2V0ID09IE5VTEwpIHsKLSAgICAgICAgaWYgKG91dEVycm9yICE9IE5VTEwpICpvdXRFcnJvciA9ICJ4bWwgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QiOwotICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZzg+KCk7Ci0gICAgfQotCi0gICAgY29uc3QgU3RyaW5nOCBzZXJ2aWNlVGFnTmFtZShvZmZIb3N0ID8gIm9mZmhvc3QtYXBkdS1zZXJ2aWNlIiA6ICJob3N0LWFwZHUtc2VydmljZSIpOwotCi0gICAgYm9vbCB3aXRoaW5BcGR1U2VydmljZSA9IGZhbHNlOwotICAgIFZlY3RvcjxTdHJpbmc4PiBjYXRlZ29yaWVzOwotCi0gICAgU3RyaW5nOCBlcnJvcjsKLSAgICBSZXNYTUxUcmVlIHRyZWU7Ci0gICAgdHJlZS5zZXRUbyhhaWRBc3NldC0+Z2V0QnVmZmVyKHRydWUpLCBhaWRBc3NldC0+Z2V0TGVuZ3RoKCkpOwotCi0gICAgc2l6ZV90IGxlbjsKLSAgICBpbnQgZGVwdGggPSAwOwotICAgIFJlc1hNTFRyZWU6OmV2ZW50X2NvZGVfdCBjb2RlOwotICAgIHdoaWxlICgoY29kZT10cmVlLm5leHQoKSkgIT0gUmVzWE1MVHJlZTo6RU5EX0RPQ1VNRU5UICYmIGNvZGUgIT0gUmVzWE1MVHJlZTo6QkFEX0RPQ1VNRU5UKSB7Ci0gICAgICAgIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OkVORF9UQUcpIHsKLSAgICAgICAgICAgIGRlcHRoLS07Ci0gICAgICAgICAgICBTdHJpbmc4IHRhZyh0cmVlLmdldEVsZW1lbnROYW1lKCZsZW4pKTsKLQotICAgICAgICAgICAgaWYgKGRlcHRoID09IDAgJiYgdGFnID09IHNlcnZpY2VUYWdOYW1lKSB7Ci0gICAgICAgICAgICAgICAgd2l0aGluQXBkdVNlcnZpY2UgPSBmYWxzZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICB9IGVsc2UgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6U1RBUlRfVEFHKSB7Ci0gICAgICAgICAgICBkZXB0aCsrOwotICAgICAgICAgICAgU3RyaW5nOCB0YWcodHJlZS5nZXRFbGVtZW50TmFtZSgmbGVuKSk7Ci0KLSAgICAgICAgICAgIGlmIChkZXB0aCA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHRhZyA9PSBzZXJ2aWNlVGFnTmFtZSkgewotICAgICAgICAgICAgICAgICAgICB3aXRoaW5BcGR1U2VydmljZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChkZXB0aCA9PSAyICYmIHdpdGhpbkFwZHVTZXJ2aWNlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHRhZyA9PSAiYWlkLWdyb3VwIikgewotICAgICAgICAgICAgICAgICAgICBTdHJpbmc4IGNhdGVnb3J5ID0gZ2V0QXR0cmlidXRlKHRyZWUsIENBVEVHT1JZX0FUVFIsICZlcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG91dEVycm9yICE9IE5VTEwpICpvdXRFcnJvciA9IGVycm9yOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc4PigpOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcmllcy5hZGQoY2F0ZWdvcnkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICBhaWRBc3NldC0+Y2xvc2UoKTsKLSAgICByZXR1cm4gY2F0ZWdvcmllczsKLX0KLQotLyoKLSAqIEhhbmRsZSB0aGUgImR1bXAiIGNvbW1hbmQsIHRvIGV4dHJhY3Qgc2VsZWN0IGRhdGEgZnJvbSBhbiBhcmNoaXZlLgotICovCi1leHRlcm4gY2hhciBDT05TT0xFX0RBVEFbMjkyNV07IC8vIHNlZSBFT0YKLWludCBkb0R1bXAoQnVuZGxlKiBidW5kbGUpCi17Ci0gICAgc3RhdHVzX3QgcmVzdWx0ID0gVU5LTk9XTl9FUlJPUjsKLSAgICBBc3NldCogYXNzZXQgPSBOVUxMOwotCi0gICAgaWYgKGJ1bmRsZS0+Z2V0RmlsZVNwZWNDb3VudCgpIDwgMSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBubyBkdW1wIG9wdGlvbiBzcGVjaWZpZWRcbiIpOwotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBpZiAoYnVuZGxlLT5nZXRGaWxlU3BlY0NvdW50KCkgPCAyKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IG5vIGR1bXAgZmlsZSBzcGVjaWZpZWRcbiIpOwotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBjb25zdCBjaGFyKiBvcHRpb24gPSBidW5kbGUtPmdldEZpbGVTcGVjRW50cnkoMCk7Ci0gICAgY29uc3QgY2hhciogZmlsZW5hbWUgPSBidW5kbGUtPmdldEZpbGVTcGVjRW50cnkoMSk7Ci0KLSAgICBBc3NldE1hbmFnZXIgYXNzZXRzOwotICAgIHZvaWQqIGFzc2V0c0Nvb2tpZTsKLSAgICBpZiAoIWFzc2V0cy5hZGRBc3NldFBhdGgoU3RyaW5nOChmaWxlbmFtZSksICZhc3NldHNDb29raWUpKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IGR1bXAgZmFpbGVkIGJlY2F1c2UgYXNzZXRzIGNvdWxkIG5vdCBiZSBsb2FkZWRcbiIpOwotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICAvLyBNYWtlIGEgZHVtbXkgY29uZmlnIGZvciByZXRyaWV2aW5nIHJlc291cmNlcy4uLiAgd2UgbmVlZCB0byBzdXBwbHkKLSAgICAvLyBub24tZGVmYXVsdCB2YWx1ZXMgZm9yIHNvbWUgY29uZmlncyBzbyB0aGF0IHdlIGNhbiByZXRyaWV2ZSByZXNvdXJjZXMKLSAgICAvLyBpbiB0aGUgYXBwIHRoYXQgZG9uJ3QgaGF2ZSBhIGRlZmF1bHQuICBUaGUgbW9zdCBpbXBvcnRhbnQgb2YgdGhlc2UgaXMKLSAgICAvLyB0aGUgQVBJIHZlcnNpb24gYmVjYXVzZSBrZXkgcmVzb3VyY2VzIGxpa2UgaWNvbnMgd2lsbCBoYXZlIGFuIGltcGxpY2l0Ci0gICAgLy8gdmVyc2lvbiBpZiB0aGV5IGFyZSB1c2luZyBuZXdlciBjb25maWcgdHlwZXMgbGlrZSBkZW5zaXR5LgotICAgIFJlc1RhYmxlX2NvbmZpZyBjb25maWc7Ci0gICAgY29uZmlnLmxhbmd1YWdlWzBdID0gJ2UnOwotICAgIGNvbmZpZy5sYW5ndWFnZVsxXSA9ICduJzsKLSAgICBjb25maWcuY291bnRyeVswXSA9ICdVJzsKLSAgICBjb25maWcuY291bnRyeVsxXSA9ICdTJzsKLSAgICBjb25maWcub3JpZW50YXRpb24gPSBSZXNUYWJsZV9jb25maWc6Ok9SSUVOVEFUSU9OX1BPUlQ7Ci0gICAgY29uZmlnLmRlbnNpdHkgPSBSZXNUYWJsZV9jb25maWc6OkRFTlNJVFlfTUVESVVNOwotICAgIGNvbmZpZy5zZGtWZXJzaW9uID0gMTAwMDA7IC8vIFZlcnkgaGlnaC4KLSAgICBjb25maWcuc2NyZWVuV2lkdGhEcCA9IDMyMDsKLSAgICBjb25maWcuc2NyZWVuSGVpZ2h0RHAgPSA0ODA7Ci0gICAgY29uZmlnLnNtYWxsZXN0U2NyZWVuV2lkdGhEcCA9IDMyMDsKLSAgICBhc3NldHMuc2V0Q29uZmlndXJhdGlvbihjb25maWcpOwotCi0gICAgY29uc3QgUmVzVGFibGUmIHJlcyA9IGFzc2V0cy5nZXRSZXNvdXJjZXMoZmFsc2UpOwotICAgIGlmICgmcmVzID09IE5VTEwpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogZHVtcCBmYWlsZWQgYmVjYXVzZSBubyByZXNvdXJjZSB0YWJsZSB3YXMgZm91bmRcbiIpOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgaWYgKHN0cmNtcCgicmVzb3VyY2VzIiwgb3B0aW9uKSA9PSAwKSB7Ci0jaWZuZGVmIEhBVkVfQU5EUk9JRF9PUwotICAgICAgICByZXMucHJpbnQoYnVuZGxlLT5nZXRWYWx1ZXMoKSk7Ci0jZW5kaWYKLQotICAgIH0gZWxzZSBpZiAoc3RyY21wKCJzdHJpbmdzIiwgb3B0aW9uKSA9PSAwKSB7Ci0gICAgICAgIGNvbnN0IFJlc1N0cmluZ1Bvb2wqIHBvb2wgPSByZXMuZ2V0VGFibGVTdHJpbmdCbG9jaygwKTsKLSAgICAgICAgcHJpbnRTdHJpbmdQb29sKHBvb2wpOwotCi0gICAgfSBlbHNlIGlmIChzdHJjbXAoInhtbHRyZWUiLCBvcHRpb24pID09IDApIHsKLSAgICAgICAgaWYgKGJ1bmRsZS0+Z2V0RmlsZVNwZWNDb3VudCgpIDwgMykgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogbm8gZHVtcCB4bWx0cmVlIHJlc291cmNlIGZpbGUgc3BlY2lmaWVkXG4iKTsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAoaW50IGk9MjsgaTxidW5kbGUtPmdldEZpbGVTcGVjQ291bnQoKTsgaSsrKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiByZXNuYW1lID0gYnVuZGxlLT5nZXRGaWxlU3BlY0VudHJ5KGkpOwotICAgICAgICAgICAgUmVzWE1MVHJlZSB0cmVlOwotICAgICAgICAgICAgYXNzZXQgPSBhc3NldHMub3Blbk5vbkFzc2V0KHJlc25hbWUsIEFzc2V0OjpBQ0NFU1NfQlVGRkVSKTsKLSAgICAgICAgICAgIGlmIChhc3NldCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogZHVtcCBmYWlsZWQgYmVjYXVzZSByZXNvdXJjZSAlcyBmb3VuZFxuIiwgcmVzbmFtZSk7Ci0gICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAodHJlZS5zZXRUbyhhc3NldC0+Z2V0QnVmZmVyKHRydWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXQtPmdldExlbmd0aCgpKSAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IFJlc291cmNlICVzIGlzIGNvcnJ1cHRcbiIsIHJlc25hbWUpOwotICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRyZWUucmVzdGFydCgpOwotICAgICAgICAgICAgcHJpbnRYTUxCbG9jaygmdHJlZSk7Ci0gICAgICAgICAgICB0cmVlLnVuaW5pdCgpOwotICAgICAgICAgICAgZGVsZXRlIGFzc2V0OwotICAgICAgICAgICAgYXNzZXQgPSBOVUxMOwotICAgICAgICB9Ci0KLSAgICB9IGVsc2UgaWYgKHN0cmNtcCgieG1sc3RyaW5ncyIsIG9wdGlvbikgPT0gMCkgewotICAgICAgICBpZiAoYnVuZGxlLT5nZXRGaWxlU3BlY0NvdW50KCkgPCAzKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBubyBkdW1wIHhtbHRyZWUgcmVzb3VyY2UgZmlsZSBzcGVjaWZpZWRcbiIpOwotICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChpbnQgaT0yOyBpPGJ1bmRsZS0+Z2V0RmlsZVNwZWNDb3VudCgpOyBpKyspIHsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIqIHJlc25hbWUgPSBidW5kbGUtPmdldEZpbGVTcGVjRW50cnkoaSk7Ci0gICAgICAgICAgICBSZXNYTUxUcmVlIHRyZWU7Ci0gICAgICAgICAgICBhc3NldCA9IGFzc2V0cy5vcGVuTm9uQXNzZXQocmVzbmFtZSwgQXNzZXQ6OkFDQ0VTU19CVUZGRVIpOwotICAgICAgICAgICAgaWYgKGFzc2V0ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBkdW1wIGZhaWxlZCBiZWNhdXNlIHJlc291cmNlICVzIGZvdW5kXG4iLCByZXNuYW1lKTsKLSAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICh0cmVlLnNldFRvKGFzc2V0LT5nZXRCdWZmZXIodHJ1ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NldC0+Z2V0TGVuZ3RoKCkpICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogUmVzb3VyY2UgJXMgaXMgY29ycnVwdFxuIiwgcmVzbmFtZSk7Ci0gICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJpbnRTdHJpbmdQb29sKCZ0cmVlLmdldFN0cmluZ3MoKSk7Ci0gICAgICAgICAgICBkZWxldGUgYXNzZXQ7Ci0gICAgICAgICAgICBhc3NldCA9IE5VTEw7Ci0gICAgICAgIH0KLQotICAgIH0gZWxzZSB7Ci0gICAgICAgIFJlc1hNTFRyZWUgdHJlZTsKLSAgICAgICAgYXNzZXQgPSBhc3NldHMub3Blbk5vbkFzc2V0KCJBbmRyb2lkTWFuaWZlc3QueG1sIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXNzZXQ6OkFDQ0VTU19CVUZGRVIpOwotICAgICAgICBpZiAoYXNzZXQgPT0gTlVMTCkgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogZHVtcCBmYWlsZWQgYmVjYXVzZSBubyBBbmRyb2lkTWFuaWZlc3QueG1sIGZvdW5kXG4iKTsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0cmVlLnNldFRvKGFzc2V0LT5nZXRCdWZmZXIodHJ1ZSksCi0gICAgICAgICAgICAgICAgICAgICAgIGFzc2V0LT5nZXRMZW5ndGgoKSkgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IEFuZHJvaWRNYW5pZmVzdC54bWwgaXMgY29ycnVwdFxuIik7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLSAgICAgICAgdHJlZS5yZXN0YXJ0KCk7Ci0KLSAgICAgICAgaWYgKHN0cmNtcCgicGVybWlzc2lvbnMiLCBvcHRpb24pID09IDApIHsKLSAgICAgICAgICAgIHNpemVfdCBsZW47Ci0gICAgICAgICAgICBSZXNYTUxUcmVlOjpldmVudF9jb2RlX3QgY29kZTsKLSAgICAgICAgICAgIGludCBkZXB0aCA9IDA7Ci0gICAgICAgICAgICB3aGlsZSAoKGNvZGU9dHJlZS5uZXh0KCkpICE9IFJlc1hNTFRyZWU6OkVORF9ET0NVTUVOVCAmJiBjb2RlICE9IFJlc1hNTFRyZWU6OkJBRF9ET0NVTUVOVCkgewotICAgICAgICAgICAgICAgIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OkVORF9UQUcpIHsKLSAgICAgICAgICAgICAgICAgICAgZGVwdGgtLTsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChjb2RlICE9IFJlc1hNTFRyZWU6OlNUQVJUX1RBRykgewotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZGVwdGgrKzsKLSAgICAgICAgICAgICAgICBTdHJpbmc4IHRhZyh0cmVlLmdldEVsZW1lbnROYW1lKCZsZW4pKTsKLSAgICAgICAgICAgICAgICAvL3ByaW50ZigiRGVwdGggJWQgdGFnICVzXG4iLCBkZXB0aCwgdGFnLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICBpZiAoZGVwdGggPT0gMSkgewotICAgICAgICAgICAgICAgICAgICBpZiAodGFnICE9ICJtYW5pZmVzdCIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IG1hbmlmZXN0IGRvZXMgbm90IHN0YXJ0IHdpdGggPG1hbmlmZXN0PiB0YWdcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZzggcGtnID0gZ2V0QXR0cmlidXRlKHRyZWUsIE5VTEwsICJwYWNrYWdlIiwgTlVMTCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigicGFja2FnZTogJXNcbiIsIHBrZy5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkZXB0aCA9PSAyICYmIHRhZyA9PSAicGVybWlzc2lvbiIpIHsKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCBlcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCBuYW1lID0gZ2V0QXR0cmlidXRlKHRyZWUsIE5BTUVfQVRUUiwgJmVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiAlc1xuIiwgZXJyb3Iuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigicGVybWlzc2lvbjogJXNcbiIsIG5hbWUuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVwdGggPT0gMiAmJiB0YWcgPT0gInVzZXMtcGVybWlzc2lvbiIpIHsKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCBlcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCBuYW1lID0gZ2V0QXR0cmlidXRlKHRyZWUsIE5BTUVfQVRUUiwgJmVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiAlc1xuIiwgZXJyb3Iuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1wZXJtaXNzaW9uOiAlc1xuIiwgbmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGludCByZXEgPSBnZXRJbnRlZ2VyQXR0cmlidXRlKHRyZWUsIFJFUVVJUkVEX0FUVFIsIE5VTEwsIDEpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIXJlcSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJvcHRpb25hbC1wZXJtaXNzaW9uOiAlc1xuIiwgbmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoc3RyY21wKCJiYWRnaW5nIiwgb3B0aW9uKSA9PSAwKSB7Ci0gICAgICAgICAgICBWZWN0b3I8U3RyaW5nOD4gbG9jYWxlczsKLSAgICAgICAgICAgIHJlcy5nZXRMb2NhbGVzKCZsb2NhbGVzKTsKLQotICAgICAgICAgICAgVmVjdG9yPFJlc1RhYmxlX2NvbmZpZz4gY29uZmlnczsKLSAgICAgICAgICAgIHJlcy5nZXRDb25maWd1cmF0aW9ucygmY29uZmlncyk7Ci0gICAgICAgICAgICBTb3J0ZWRWZWN0b3I8aW50PiBkZW5zaXRpZXM7Ci0gICAgICAgICAgICBjb25zdCBzaXplX3QgTkMgPSBjb25maWdzLnNpemUoKTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOQzsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgaW50IGRlbnMgPSBjb25maWdzW2ldLmRlbnNpdHk7Ci0gICAgICAgICAgICAgICAgaWYgKGRlbnMgPT0gMCkgZGVucyA9IDE2MDsKLSAgICAgICAgICAgICAgICBkZW5zaXRpZXMuYWRkKGRlbnMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzaXplX3QgbGVuOwotICAgICAgICAgICAgUmVzWE1MVHJlZTo6ZXZlbnRfY29kZV90IGNvZGU7Ci0gICAgICAgICAgICBpbnQgZGVwdGggPSAwOwotICAgICAgICAgICAgU3RyaW5nOCBlcnJvcjsKLSAgICAgICAgICAgIGJvb2wgd2l0aGluQWN0aXZpdHkgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgaXNNYWluQWN0aXZpdHkgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgaXNMYXVuY2hlckFjdGl2aXR5ID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGlzU2VhcmNoYWJsZSA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCB3aXRoaW5BcHBsaWNhdGlvbiA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCB3aXRoaW5TdXBwb3J0c0lucHV0ID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIHdpdGhpblJlY2VpdmVyID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIHdpdGhpblNlcnZpY2UgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgd2l0aGluSW50ZW50RmlsdGVyID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGhhc01haW5BY3Rpdml0eSA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBoYXNPdGhlckFjdGl2aXRpZXMgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgaGFzT3RoZXJSZWNlaXZlcnMgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgaGFzT3RoZXJTZXJ2aWNlcyA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBoYXNXYWxscGFwZXJTZXJ2aWNlID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGhhc0ltZVNlcnZpY2UgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgaGFzQWNjZXNzaWJpbGl0eVNlcnZpY2UgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgaGFzUHJpbnRTZXJ2aWNlID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGhhc1dpZGdldFJlY2VpdmVycyA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBoYXNEZXZpY2VBZG1pblJlY2VpdmVyID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGhhc0ludGVudEZpbHRlciA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBoYXNQYXltZW50U2VydmljZSA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBhY3RNYWluQWN0aXZpdHkgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgYWN0V2lkZ2V0UmVjZWl2ZXJzID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGFjdERldmljZUFkbWluRW5hYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBhY3RJbWVTZXJ2aWNlID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGFjdFdhbGxwYXBlclNlcnZpY2UgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgYWN0QWNjZXNzaWJpbGl0eVNlcnZpY2UgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgYWN0UHJpbnRTZXJ2aWNlID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGFjdEhvc3RBcGR1U2VydmljZSA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBhY3RPZmZIb3N0QXBkdVNlcnZpY2UgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgaGFzTWV0YUhvc3RQYXltZW50Q2F0ZWdvcnkgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgaGFzTWV0YU9mZkhvc3RQYXltZW50Q2F0ZWdvcnkgPSBmYWxzZTsKLQotICAgICAgICAgICAgLy8gVGhlc2UgcGVybWlzc2lvbnMgYXJlIHJlcXVpcmVkIGJ5IHNlcnZpY2VzIGltcGxlbWVudGluZyBzZXJ2aWNlcwotICAgICAgICAgICAgLy8gdGhlIHN5c3RlbSBiaW5kcyB0byAoSU1FLCBBY2Nlc3NpYmlsaXR5LCBQcmludFNlcnZpY2VzLCBldGMuKQotICAgICAgICAgICAgYm9vbCBoYXNCaW5kRGV2aWNlQWRtaW5QZXJtaXNzaW9uID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGhhc0JpbmRJbnB1dE1ldGhvZFBlcm1pc3Npb24gPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgaGFzQmluZEFjY2Vzc2liaWxpdHlTZXJ2aWNlUGVybWlzc2lvbiA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBoYXNCaW5kUHJpbnRTZXJ2aWNlUGVybWlzc2lvbiA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBoYXNCaW5kTmZjU2VydmljZVBlcm1pc3Npb24gPSBmYWxzZTsKLQotICAgICAgICAgICAgLy8gVGhlc2UgdHdvIGltcGxlbWVudCB0aGUgaW1wbGljaXQgcGVybWlzc2lvbnMgdGhhdCBhcmUgZ3JhbnRlZAotICAgICAgICAgICAgLy8gdG8gcHJlLTEuNiBhcHBsaWNhdGlvbnMuCi0gICAgICAgICAgICBib29sIGhhc1dyaXRlRXh0ZXJuYWxTdG9yYWdlUGVybWlzc2lvbiA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBoYXNSZWFkUGhvbmVTdGF0ZVBlcm1pc3Npb24gPSBmYWxzZTsKLQotICAgICAgICAgICAgLy8gSWYgYW4gYXBwIHJlcXVlc3RzIHdyaXRlIHN0b3JhZ2UsIHRoZXkgd2lsbCBhbHNvIGdldCByZWFkIHN0b3JhZ2UuCi0gICAgICAgICAgICBib29sIGhhc1JlYWRFeHRlcm5hbFN0b3JhZ2VQZXJtaXNzaW9uID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIC8vIEltcGxlbWVudCB0cmFuc2l0aW9uIHRvIHJlYWQgYW5kIHdyaXRlIGNhbGwgbG9nLgotICAgICAgICAgICAgYm9vbCBoYXNSZWFkQ29udGFjdHNQZXJtaXNzaW9uID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGhhc1dyaXRlQ29udGFjdHNQZXJtaXNzaW9uID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGhhc1JlYWRDYWxsTG9nUGVybWlzc2lvbiA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBoYXNXcml0ZUNhbGxMb2dQZXJtaXNzaW9uID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIC8vIFRoaXMgbmV4dCBncm91cCBvZiB2YXJpYWJsZXMgaXMgdXNlZCB0byBpbXBsZW1lbnQgYSBncm91cCBvZgotICAgICAgICAgICAgLy8gYmFja3dhcmQtY29tcGF0aWJpbGl0eSBoZXVyaXN0aWNzIG5lY2Vzc2l0YXRlZCBieSB0aGUgYWRkaXRpb24gb2YKLSAgICAgICAgICAgIC8vIHNvbWUgbmV3IHVzZXMtZmVhdHVyZSBjb25zdGFudHMgaW4gMi4xIGFuZCAyLjIuIEluIG1vc3QgY2FzZXMsIHRoZQotICAgICAgICAgICAgLy8gaGV1cmlzdGljIGlzICJpZiBhbiBhcHAgcmVxdWVzdHMgYSBwZXJtaXNzaW9uIGJ1dCBkb2Vzbid0IGV4cGxpY2l0bHkKLSAgICAgICAgICAgIC8vIHJlcXVlc3QgdGhlIGNvcnJlc3BvbmRpbmcgPHVzZXMtZmVhdHVyZT4sIHByZXN1bWUgaXQncyB0aGVyZSBhbnl3YXkiLgotICAgICAgICAgICAgYm9vbCBzcGVjQ2FtZXJhRmVhdHVyZSA9IGZhbHNlOyAvLyBjYW1lcmEtcmVsYXRlZAotICAgICAgICAgICAgYm9vbCBzcGVjQ2FtZXJhQXV0b2ZvY3VzRmVhdHVyZSA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCByZXFDYW1lcmFBdXRvZm9jdXNGZWF0dXJlID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIHJlcUNhbWVyYUZsYXNoRmVhdHVyZSA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBoYXNDYW1lcmFQZXJtaXNzaW9uID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIHNwZWNMb2NhdGlvbkZlYXR1cmUgPSBmYWxzZTsgLy8gbG9jYXRpb24tcmVsYXRlZAotICAgICAgICAgICAgYm9vbCBzcGVjTmV0d29ya0xvY0ZlYXR1cmUgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgcmVxTmV0d29ya0xvY0ZlYXR1cmUgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgc3BlY0dwc0ZlYXR1cmUgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgcmVxR3BzRmVhdHVyZSA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBoYXNNb2NrTG9jUGVybWlzc2lvbiA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBoYXNDb2Fyc2VMb2NQZXJtaXNzaW9uID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGhhc0dwc1Blcm1pc3Npb24gPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgaGFzR2VuZXJhbExvY1Blcm1pc3Npb24gPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgc3BlY0JsdWV0b290aEZlYXR1cmUgPSBmYWxzZTsgLy8gQmx1ZXRvb3RoIEFQSS1yZWxhdGVkCi0gICAgICAgICAgICBib29sIGhhc0JsdWV0b290aFBlcm1pc3Npb24gPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgc3BlY01pY3JvcGhvbmVGZWF0dXJlID0gZmFsc2U7IC8vIG1pY3JvcGhvbmUtcmVsYXRlZAotICAgICAgICAgICAgYm9vbCBoYXNSZWNvcmRBdWRpb1Blcm1pc3Npb24gPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgc3BlY1dpRmlGZWF0dXJlID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGhhc1dpRmlQZXJtaXNzaW9uID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIHNwZWNUZWxlcGhvbnlGZWF0dXJlID0gZmFsc2U7IC8vIHRlbGVwaG9ueS1yZWxhdGVkCi0gICAgICAgICAgICBib29sIHJlcVRlbGVwaG9ueVN1YkZlYXR1cmUgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgaGFzVGVsZXBob255UGVybWlzc2lvbiA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBzcGVjVG91Y2hzY3JlZW5GZWF0dXJlID0gZmFsc2U7IC8vIHRvdWNoc2NyZWVuLXJlbGF0ZWQKLSAgICAgICAgICAgIGJvb2wgc3BlY011bHRpdG91Y2hGZWF0dXJlID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIHJlcURpc3RpbmN0TXVsdGl0b3VjaEZlYXR1cmUgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgc3BlY1NjcmVlblBvcnRyYWl0RmVhdHVyZSA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBzcGVjU2NyZWVuTGFuZHNjYXBlRmVhdHVyZSA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCByZXFTY3JlZW5Qb3J0cmFpdEZlYXR1cmUgPSBmYWxzZTsKLSAgICAgICAgICAgIGJvb2wgcmVxU2NyZWVuTGFuZHNjYXBlRmVhdHVyZSA9IGZhbHNlOwotICAgICAgICAgICAgLy8gMi4yIGFsc28gYWRkZWQgc29tZSBvdGhlciBmZWF0dXJlcyB0aGF0IGFwcHMgY2FuIHJlcXVlc3QsIGJ1dCB0aGF0Ci0gICAgICAgICAgICAvLyBoYXZlIG5vIGNvcnJlc3BvbmRpbmcgcGVybWlzc2lvbiwgc28gd2UgY2Fubm90IGltcGxlbWVudCBhbnkKLSAgICAgICAgICAgIC8vIGJhY2stY29tcGF0aWJpbGl0eSBoZXVyaXN0aWMgZm9yIHRoZW0uIFRoZSBiZWxvdyBhcmUgdGh1cyB1bm5lY2Vzc2FyeQotICAgICAgICAgICAgLy8gKGJ1dCBhcmUgcmV0YWluZWQgaGVyZSBmb3IgZG9jdW1lbnRhcnkgcHVycG9zZXMuKQotICAgICAgICAgICAgLy9ib29sIHNwZWNDb21wYXNzRmVhdHVyZSA9IGZhbHNlOwotICAgICAgICAgICAgLy9ib29sIHNwZWNBY2NlbGVyb21ldGVyRmVhdHVyZSA9IGZhbHNlOwotICAgICAgICAgICAgLy9ib29sIHNwZWNQcm94aW1pdHlGZWF0dXJlID0gZmFsc2U7Ci0gICAgICAgICAgICAvL2Jvb2wgc3BlY0FtYmllbnRMaWdodEZlYXR1cmUgPSBmYWxzZTsKLSAgICAgICAgICAgIC8vYm9vbCBzcGVjTGl2ZVdhbGxwYXBlckZlYXR1cmUgPSBmYWxzZTsKLQotICAgICAgICAgICAgaW50IHRhcmdldFNkayA9IDA7Ci0gICAgICAgICAgICBpbnQgc21hbGxTY3JlZW4gPSAxOwotICAgICAgICAgICAgaW50IG5vcm1hbFNjcmVlbiA9IDE7Ci0gICAgICAgICAgICBpbnQgbGFyZ2VTY3JlZW4gPSAxOwotICAgICAgICAgICAgaW50IHhsYXJnZVNjcmVlbiA9IDE7Ci0gICAgICAgICAgICBpbnQgYW55RGVuc2l0eSA9IDE7Ci0gICAgICAgICAgICBpbnQgcmVxdWlyZXNTbWFsbGVzdFdpZHRoRHAgPSAwOwotICAgICAgICAgICAgaW50IGNvbXBhdGlibGVXaWR0aExpbWl0RHAgPSAwOwotICAgICAgICAgICAgaW50IGxhcmdlc3RXaWR0aExpbWl0RHAgPSAwOwotICAgICAgICAgICAgU3RyaW5nOCBwa2c7Ci0gICAgICAgICAgICBTdHJpbmc4IGFjdGl2aXR5TmFtZTsKLSAgICAgICAgICAgIFN0cmluZzggYWN0aXZpdHlMYWJlbDsKLSAgICAgICAgICAgIFN0cmluZzggYWN0aXZpdHlJY29uOwotICAgICAgICAgICAgU3RyaW5nOCByZWNlaXZlck5hbWU7Ci0gICAgICAgICAgICBTdHJpbmc4IHNlcnZpY2VOYW1lOwotICAgICAgICAgICAgVmVjdG9yPFN0cmluZzg+IHN1cHBvcnRlZElucHV0OwotICAgICAgICAgICAgd2hpbGUgKChjb2RlPXRyZWUubmV4dCgpKSAhPSBSZXNYTUxUcmVlOjpFTkRfRE9DVU1FTlQgJiYgY29kZSAhPSBSZXNYTUxUcmVlOjpCQURfRE9DVU1FTlQpIHsKLSAgICAgICAgICAgICAgICBpZiAoY29kZSA9PSBSZXNYTUxUcmVlOjpFTkRfVEFHKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRlcHRoLS07Ci0gICAgICAgICAgICAgICAgICAgIGlmIChkZXB0aCA8IDIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aXRoaW5TdXBwb3J0c0lucHV0ICYmICFzdXBwb3J0ZWRJbnB1dC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoInN1cHBvcnRzLWlucHV0OiAnIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2l6ZV90IE4gPSBzdXBwb3J0ZWRJbnB1dC5zaXplKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiVzIiwgc3VwcG9ydGVkSW5wdXRbaV0uc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPSBOIC0gMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCInICciKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiJ1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkSW5wdXQuY2xlYXIoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhpbkFwcGxpY2F0aW9uID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aXRoaW5TdXBwb3J0c0lucHV0ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVwdGggPCAzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAod2l0aGluQWN0aXZpdHkgJiYgaXNNYWluQWN0aXZpdHkgJiYgaXNMYXVuY2hlckFjdGl2aXR5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYU5hbWUgPSBnZXRDb21wb25lbnROYW1lKHBrZywgYWN0aXZpdHlOYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoImxhdW5jaGFibGUtYWN0aXZpdHk6Iik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFOYW1lICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgbmFtZT0nJXMnICIsIGFOYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgbGFiZWw9JyVzJyBpY29uPSclcydcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eUxhYmVsLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHlJY29uLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFzSW50ZW50RmlsdGVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzT3RoZXJBY3Rpdml0aWVzIHw9IHdpdGhpbkFjdGl2aXR5OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc090aGVyUmVjZWl2ZXJzIHw9IHdpdGhpblJlY2VpdmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc090aGVyU2VydmljZXMgfD0gd2l0aGluU2VydmljZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpdGhpblNlcnZpY2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzUGF5bWVudFNlcnZpY2UgfD0gKGFjdEhvc3RBcGR1U2VydmljZSAmJiBoYXNNZXRhSG9zdFBheW1lbnRDYXRlZ29yeSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0JpbmROZmNTZXJ2aWNlUGVybWlzc2lvbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc1BheW1lbnRTZXJ2aWNlIHw9IChhY3RPZmZIb3N0QXBkdVNlcnZpY2UgJiYgaGFzTWV0YU9mZkhvc3RQYXltZW50Q2F0ZWdvcnkgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNCaW5kTmZjU2VydmljZVBlcm1pc3Npb24pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhpbkFjdGl2aXR5ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aXRoaW5TZXJ2aWNlID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aXRoaW5SZWNlaXZlciA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgaGFzSW50ZW50RmlsdGVyID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpc01haW5BY3Rpdml0eSA9IGlzTGF1bmNoZXJBY3Rpdml0eSA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRlcHRoIDwgNCkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpdGhpbkludGVudEZpbHRlcikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aXRoaW5BY3Rpdml0eSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNNYWluQWN0aXZpdHkgfD0gYWN0TWFpbkFjdGl2aXR5OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNPdGhlckFjdGl2aXRpZXMgfD0gIWFjdE1haW5BY3Rpdml0eTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdpdGhpblJlY2VpdmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc1dpZGdldFJlY2VpdmVycyB8PSBhY3RXaWRnZXRSZWNlaXZlcnM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0RldmljZUFkbWluUmVjZWl2ZXIgfD0gKGFjdERldmljZUFkbWluRW5hYmxlZCAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0JpbmREZXZpY2VBZG1pblBlcm1pc3Npb24pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNPdGhlclJlY2VpdmVycyB8PSAoIWFjdFdpZGdldFJlY2VpdmVycyAmJiAhYWN0RGV2aWNlQWRtaW5FbmFibGVkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdpdGhpblNlcnZpY2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzSW1lU2VydmljZSB8PSBhY3RJbWVTZXJ2aWNlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNXYWxscGFwZXJTZXJ2aWNlIHw9IGFjdFdhbGxwYXBlclNlcnZpY2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0FjY2Vzc2liaWxpdHlTZXJ2aWNlIHw9IChhY3RBY2Nlc3NpYmlsaXR5U2VydmljZSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0JpbmRBY2Nlc3NpYmlsaXR5U2VydmljZVBlcm1pc3Npb24pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNQcmludFNlcnZpY2UgfD0gKGFjdFByaW50U2VydmljZSAmJiBoYXNCaW5kUHJpbnRTZXJ2aWNlUGVybWlzc2lvbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc090aGVyU2VydmljZXMgfD0gKCFhY3RJbWVTZXJ2aWNlICYmICFhY3RXYWxscGFwZXJTZXJ2aWNlICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWFjdEFjY2Vzc2liaWxpdHlTZXJ2aWNlICYmICFhY3RQcmludFNlcnZpY2UgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhYWN0SG9zdEFwZHVTZXJ2aWNlICYmICFhY3RPZmZIb3N0QXBkdVNlcnZpY2UpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhpbkludGVudEZpbHRlciA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoY29kZSAhPSBSZXNYTUxUcmVlOjpTVEFSVF9UQUcpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGRlcHRoKys7Ci0gICAgICAgICAgICAgICAgU3RyaW5nOCB0YWcodHJlZS5nZXRFbGVtZW50TmFtZSgmbGVuKSk7Ci0gICAgICAgICAgICAgICAgLy9wcmludGYoIkRlcHRoICVkLCAgJXNcbiIsIGRlcHRoLCB0YWcuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIGlmIChkZXB0aCA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0YWcgIT0gIm1hbmlmZXN0IikgewotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogbWFuaWZlc3QgZG9lcyBub3Qgc3RhcnQgd2l0aCA8bWFuaWZlc3Q+IHRhZ1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcGtnID0gZ2V0QXR0cmlidXRlKHRyZWUsIE5VTEwsICJwYWNrYWdlIiwgTlVMTCk7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigicGFja2FnZTogbmFtZT0nJXMnICIsIHBrZy5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGludDMyX3QgdmVyc2lvbkNvZGUgPSBnZXRJbnRlZ2VyQXR0cmlidXRlKHRyZWUsIFZFUlNJT05fQ09ERV9BVFRSLCAmZXJyb3IpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IgIT0gIiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1IgZ2V0dGluZyAnYW5kcm9pZDp2ZXJzaW9uQ29kZScgYXR0cmlidXRlOiAlc1xuIiwgZXJyb3Iuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmICh2ZXJzaW9uQ29kZSA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigidmVyc2lvbkNvZGU9JyVkJyAiLCB2ZXJzaW9uQ29kZSk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoInZlcnNpb25Db2RlPScnICIpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZzggdmVyc2lvbk5hbWUgPSBnZXRSZXNvbHZlZEF0dHJpYnV0ZSgmcmVzLCB0cmVlLCBWRVJTSU9OX05BTUVfQVRUUiwgJmVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SIGdldHRpbmcgJ2FuZHJvaWQ6dmVyc2lvbk5hbWUnIGF0dHJpYnV0ZTogJXNcbiIsIGVycm9yLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBwcmludGYoInZlcnNpb25OYW1lPSclcydcbiIsIHZlcnNpb25OYW1lLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRlcHRoID09IDIpIHsKLSAgICAgICAgICAgICAgICAgICAgd2l0aGluQXBwbGljYXRpb24gPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRhZyA9PSAiYXBwbGljYXRpb24iKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aXRoaW5BcHBsaWNhdGlvbiA9IHRydWU7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzggbGFiZWw7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplX3QgTkwgPSBsb2NhbGVzLnNpemUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOTDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbG9jYWxlU3RyID0gIGxvY2FsZXNbaV0uc3RyaW5nKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRzLnNldExvY2FsZShsb2NhbGVTdHIgIT0gTlVMTCA/IGxvY2FsZVN0ciA6ICIiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4IGxsYWJlbCA9IGdldFJlc29sdmVkQXR0cmlidXRlKCZyZXMsIHRyZWUsIExBQkVMX0FUVFIsICZlcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxsYWJlbCAhPSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxlU3RyID09IE5VTEwgfHwgc3RybGVuKGxvY2FsZVN0cikgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSBsbGFiZWw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoImFwcGxpY2F0aW9uLWxhYmVsOiclcydcbiIsIGxsYWJlbC5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFiZWwgPT0gIiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IGxsYWJlbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiYXBwbGljYXRpb24tbGFiZWwtJXM6JyVzJ1xuIiwgbG9jYWxlU3RyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbGFiZWwuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICBSZXNUYWJsZV9jb25maWcgdG1wQ29uZmlnID0gY29uZmlnOwotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2l6ZV90IE5EID0gZGVuc2l0aWVzLnNpemUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxORDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wQ29uZmlnLmRlbnNpdHkgPSBkZW5zaXRpZXNbaV07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRzLnNldENvbmZpZ3VyYXRpb24odG1wQ29uZmlnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4IGljb24gPSBnZXRSZXNvbHZlZEF0dHJpYnV0ZSgmcmVzLCB0cmVlLCBJQ09OX0FUVFIsICZlcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGljb24gIT0gIiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJhcHBsaWNhdGlvbi1pY29uLSVkOiclcydcbiIsIGRlbnNpdGllc1tpXSwgaWNvbi5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRzLnNldENvbmZpZ3VyYXRpb24oY29uZmlnKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCBpY29uID0gZ2V0UmVzb2x2ZWRBdHRyaWJ1dGUoJnJlcywgdHJlZSwgSUNPTl9BVFRSLCAmZXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUiBnZXR0aW5nICdhbmRyb2lkOmljb24nIGF0dHJpYnV0ZTogJXNcbiIsIGVycm9yLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRlc3RPbmx5ID0gZ2V0SW50ZWdlckF0dHJpYnV0ZSh0cmVlLCBURVNUX09OTFlfQVRUUiwgJmVycm9yLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1IgZ2V0dGluZyAnYW5kcm9pZDp0ZXN0T25seScgYXR0cmlidXRlOiAlc1xuIiwgZXJyb3Iuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiYXBwbGljYXRpb246IGxhYmVsPSclcycgIiwgbGFiZWwuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJpY29uPSclcydcbiIsIGljb24uc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RPbmx5ICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoInRlc3RPbmx5PSclZCdcbiIsIHRlc3RPbmx5KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBkZWJ1Z2dhYmxlID0gZ2V0UmVzb2x2ZWRJbnRlZ2VyQXR0cmlidXRlKCZyZXMsIHRyZWUsIERFQlVHR0FCTEVfQVRUUiwgJmVycm9yLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1IgZ2V0dGluZyAnYW5kcm9pZDpkZWJ1Z2dhYmxlJyBhdHRyaWJ1dGU6ICVzXG4iLCBlcnJvci5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlYnVnZ2FibGUgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiYXBwbGljYXRpb24tZGVidWdnYWJsZVxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGFnID09ICJ1c2VzLXNkayIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgY29kZSA9IGdldEludGVnZXJBdHRyaWJ1dGUodHJlZSwgTUlOX1NES19WRVJTSU9OX0FUVFIsICZlcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IgIT0gIiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9ICIiOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzggbmFtZSA9IGdldFJlc29sdmVkQXR0cmlidXRlKCZyZXMsIHRyZWUsIE1JTl9TREtfVkVSU0lPTl9BVFRSLCAmZXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SIGdldHRpbmcgJ2FuZHJvaWQ6bWluU2RrVmVyc2lvbicgYXR0cmlidXRlOiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvci5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gIkRvbnV0IikgdGFyZ2V0U2RrID0gNDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoInNka1ZlcnNpb246JyVzJ1xuIiwgbmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvZGUgIT0gLTEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRTZGsgPSBjb2RlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50Zigic2RrVmVyc2lvbjonJWQnXG4iLCBjb2RlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgPSBnZXRJbnRlZ2VyQXR0cmlidXRlKHRyZWUsIE1BWF9TREtfVkVSU0lPTl9BVFRSLCBOVUxMLCAtMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29kZSAhPSAtMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigibWF4U2RrVmVyc2lvbjonJWQnXG4iLCBjb2RlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgPSBnZXRJbnRlZ2VyQXR0cmlidXRlKHRyZWUsIFRBUkdFVF9TREtfVkVSU0lPTl9BVFRSLCAmZXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSAiIjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4IG5hbWUgPSBnZXRSZXNvbHZlZEF0dHJpYnV0ZSgmcmVzLCB0cmVlLCBUQVJHRVRfU0RLX1ZFUlNJT05fQVRUUiwgJmVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IgIT0gIiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUiBnZXR0aW5nICdhbmRyb2lkOnRhcmdldFNka1ZlcnNpb24nIGF0dHJpYnV0ZTogJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Iuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lID09ICJEb251dCIgJiYgdGFyZ2V0U2RrIDwgNCkgdGFyZ2V0U2RrID0gNDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoInRhcmdldFNka1ZlcnNpb246JyVzJ1xuIiwgbmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvZGUgIT0gLTEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0U2RrIDwgY29kZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRTZGsgPSBjb2RlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoInRhcmdldFNka1ZlcnNpb246JyVkJ1xuIiwgY29kZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGFnID09ICJ1c2VzLWNvbmZpZ3VyYXRpb24iKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHJlcVRvdWNoU2NyZWVuID0gZ2V0SW50ZWdlckF0dHJpYnV0ZSh0cmVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVFfVE9VQ0hfU0NSRUVOX0FUVFIsIE5VTEwsIDApOwotICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCByZXFLZXlib2FyZFR5cGUgPSBnZXRJbnRlZ2VyQXR0cmlidXRlKHRyZWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFUV9LRVlCT0FSRF9UWVBFX0FUVFIsIE5VTEwsIDApOwotICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCByZXFIYXJkS2V5Ym9hcmQgPSBnZXRJbnRlZ2VyQXR0cmlidXRlKHRyZWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFUV9IQVJEX0tFWUJPQVJEX0FUVFIsIE5VTEwsIDApOwotICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCByZXFOYXZpZ2F0aW9uID0gZ2V0SW50ZWdlckF0dHJpYnV0ZSh0cmVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVFfTkFWSUdBVElPTl9BVFRSLCBOVUxMLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcmVxRml2ZVdheU5hdiA9IGdldEludGVnZXJBdHRyaWJ1dGUodHJlZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVRX0ZJVkVfV0FZX05BVl9BVFRSLCBOVUxMLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1jb25maWd1cmF0aW9uOiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcVRvdWNoU2NyZWVuICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiByZXFUb3VjaFNjcmVlbj0nJWQnIiwgcmVxVG91Y2hTY3JlZW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcUtleWJvYXJkVHlwZSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgcmVxS2V5Ym9hcmRUeXBlPSclZCciLCByZXFLZXlib2FyZFR5cGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcUhhcmRLZXlib2FyZCAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgcmVxSGFyZEtleWJvYXJkPSclZCciLCByZXFIYXJkS2V5Ym9hcmQpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcU5hdmlnYXRpb24gIT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiIHJlcU5hdmlnYXRpb249JyVkJyIsIHJlcU5hdmlnYXRpb24pOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcUZpdmVXYXlOYXYgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiIHJlcUZpdmVXYXlOYXY9JyVkJyIsIHJlcUZpdmVXYXlOYXYpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJcbiIpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZyA9PSAic3VwcG9ydHMtaW5wdXQiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aXRoaW5TdXBwb3J0c0lucHV0ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0YWcgPT0gInN1cHBvcnRzLXNjcmVlbnMiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzbWFsbFNjcmVlbiA9IGdldEludGVnZXJBdHRyaWJ1dGUodHJlZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU01BTExfU0NSRUVOX0FUVFIsIE5VTEwsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsU2NyZWVuID0gZ2V0SW50ZWdlckF0dHJpYnV0ZSh0cmVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOT1JNQUxfU0NSRUVOX0FUVFIsIE5VTEwsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgbGFyZ2VTY3JlZW4gPSBnZXRJbnRlZ2VyQXR0cmlidXRlKHRyZWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExBUkdFX1NDUkVFTl9BVFRSLCBOVUxMLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHhsYXJnZVNjcmVlbiA9IGdldEludGVnZXJBdHRyaWJ1dGUodHJlZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWExBUkdFX1NDUkVFTl9BVFRSLCBOVUxMLCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFueURlbnNpdHkgPSBnZXRJbnRlZ2VyQXR0cmlidXRlKHRyZWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFOWV9ERU5TSVRZX0FUVFIsIE5VTEwsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZXNTbWFsbGVzdFdpZHRoRHAgPSBnZXRJbnRlZ2VyQXR0cmlidXRlKHRyZWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFUVVJUkVTX1NNQUxMRVNUX1dJRFRIX0RQX0FUVFIsIE5VTEwsIDApOwotICAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0aWJsZVdpZHRoTGltaXREcCA9IGdldEludGVnZXJBdHRyaWJ1dGUodHJlZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09NUEFUSUJMRV9XSURUSF9MSU1JVF9EUF9BVFRSLCBOVUxMLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhcmdlc3RXaWR0aExpbWl0RHAgPSBnZXRJbnRlZ2VyQXR0cmlidXRlKHRyZWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExBUkdFU1RfV0lEVEhfTElNSVRfRFBfQVRUUiwgTlVMTCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGFnID09ICJ1c2VzLWZlYXR1cmUiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4IG5hbWUgPSBnZXRBdHRyaWJ1dGUodHJlZSwgTkFNRV9BVFRSLCAmZXJyb3IpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSAhPSAiIiAmJiBlcnJvciA9PSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXEgPSBnZXRJbnRlZ2VyQXR0cmlidXRlKHRyZWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVFVSVJFRF9BVFRSLCBOVUxMLCAxKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lID09ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYSIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY0NhbWVyYUZlYXR1cmUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuYXV0b2ZvY3VzIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVzZSBoYXZlIG5vIGNvcnJlc3BvbmRpbmcgcGVybWlzc2lvbiB0byBjaGVjayBmb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCBzaG91bGQgaW1wbHkgdGhlIGZvdW5kYXRpb25hbCBjYW1lcmEgcGVybWlzc2lvbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXFDYW1lcmFBdXRvZm9jdXNGZWF0dXJlID0gcmVxQ2FtZXJhQXV0b2ZvY3VzRmVhdHVyZSB8fCByZXE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNDYW1lcmFBdXRvZm9jdXNGZWF0dXJlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlcSAmJiAobmFtZSA9PSAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZmxhc2giKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVzZSBoYXZlIG5vIGNvcnJlc3BvbmRpbmcgcGVybWlzc2lvbiB0byBjaGVjayBmb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCBzaG91bGQgaW1wbHkgdGhlIGZvdW5kYXRpb25hbCBjYW1lcmEgcGVybWlzc2lvbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXFDYW1lcmFGbGFzaEZlYXR1cmUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiYW5kcm9pZC5oYXJkd2FyZS5sb2NhdGlvbiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY0xvY2F0aW9uRmVhdHVyZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09ICJhbmRyb2lkLmhhcmR3YXJlLmxvY2F0aW9uLm5ldHdvcmsiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNOZXR3b3JrTG9jRmVhdHVyZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcU5ldHdvcmtMb2NGZWF0dXJlID0gcmVxTmV0d29ya0xvY0ZlYXR1cmUgfHwgcmVxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiYW5kcm9pZC5oYXJkd2FyZS5sb2NhdGlvbi5ncHMiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNHcHNGZWF0dXJlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxR3BzRmVhdHVyZSA9IHJlcUdwc0ZlYXR1cmUgfHwgcmVxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiYW5kcm9pZC5oYXJkd2FyZS5ibHVldG9vdGgiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNCbHVldG9vdGhGZWF0dXJlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gImFuZHJvaWQuaGFyZHdhcmUudG91Y2hzY3JlZW4iKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNUb3VjaHNjcmVlbkZlYXR1cmUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiYW5kcm9pZC5oYXJkd2FyZS50b3VjaHNjcmVlbi5tdWx0aXRvdWNoIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjTXVsdGl0b3VjaEZlYXR1cmUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiYW5kcm9pZC5oYXJkd2FyZS50b3VjaHNjcmVlbi5tdWx0aXRvdWNoLmRpc3RpbmN0IikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXFEaXN0aW5jdE11bHRpdG91Y2hGZWF0dXJlID0gcmVxRGlzdGluY3RNdWx0aXRvdWNoRmVhdHVyZSB8fCByZXE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09ICJhbmRyb2lkLmhhcmR3YXJlLm1pY3JvcGhvbmUiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNNaWNyb3Bob25lRmVhdHVyZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09ICJhbmRyb2lkLmhhcmR3YXJlLndpZmkiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNXaUZpRmVhdHVyZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09ICJhbmRyb2lkLmhhcmR3YXJlLnRlbGVwaG9ueSIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY1RlbGVwaG9ueUZlYXR1cmUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVxICYmIChuYW1lID09ICJhbmRyb2lkLmhhcmR3YXJlLnRlbGVwaG9ueS5nc20iIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPT0gImFuZHJvaWQuaGFyZHdhcmUudGVsZXBob255LmNkbWEiKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVzZSBoYXZlIG5vIGNvcnJlc3BvbmRpbmcgcGVybWlzc2lvbiB0byBjaGVjayBmb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCBzaG91bGQgaW1wbHkgdGhlIGZvdW5kYXRpb25hbCB0ZWxlcGhvbnkgcGVybWlzc2lvbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXFUZWxlcGhvbnlTdWJGZWF0dXJlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gImFuZHJvaWQuaGFyZHdhcmUuc2NyZWVuLnBvcnRyYWl0IikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjU2NyZWVuUG9ydHJhaXRGZWF0dXJlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gImFuZHJvaWQuaGFyZHdhcmUuc2NyZWVuLmxhbmRzY2FwZSIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY1NjcmVlbkxhbmRzY2FwZUZlYXR1cmUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtZmVhdHVyZSVzOiclcydcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEgPyAiIiA6ICItbm90LXJlcXVpcmVkIiwgbmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB2ZXJzID0gZ2V0SW50ZWdlckF0dHJpYnV0ZSh0cmVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xfRVNfVkVSU0lPTl9BVFRSLCAmZXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciA9PSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtZ2wtZXM6JzB4JXgnXG4iLCB2ZXJzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGFnID09ICJ1c2VzLXBlcm1pc3Npb24iKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4IG5hbWUgPSBnZXRBdHRyaWJ1dGUodHJlZSwgTkFNRV9BVFRSLCAmZXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgIT0gIiIgJiYgZXJyb3IgPT0gIiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PSAiYW5kcm9pZC5wZXJtaXNzaW9uLkNBTUVSQSIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzQ2FtZXJhUGVybWlzc2lvbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uQUNDRVNTX0ZJTkVfTE9DQVRJT04iKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0dwc1Blcm1pc3Npb24gPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiYW5kcm9pZC5wZXJtaXNzaW9uLkFDQ0VTU19NT0NLX0xPQ0FUSU9OIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNNb2NrTG9jUGVybWlzc2lvbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uQUNDRVNTX0NPQVJTRV9MT0NBVElPTiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzQ29hcnNlTG9jUGVybWlzc2lvbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uQUNDRVNTX0xPQ0FUSU9OX0VYVFJBX0NPTU1BTkRTIiB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9PSAiYW5kcm9pZC5wZXJtaXNzaW9uLklOU1RBTExfTE9DQVRJT05fUFJPVklERVIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0dlbmVyYWxMb2NQZXJtaXNzaW9uID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gImFuZHJvaWQucGVybWlzc2lvbi5CTFVFVE9PVEgiIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uQkxVRVRPT1RIX0FETUlOIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNCbHVldG9vdGhQZXJtaXNzaW9uID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gImFuZHJvaWQucGVybWlzc2lvbi5SRUNPUkRfQVVESU8iKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc1JlY29yZEF1ZGlvUGVybWlzc2lvbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uQUNDRVNTX1dJRklfU1RBVEUiIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uQ0hBTkdFX1dJRklfU1RBVEUiIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uQ0hBTkdFX1dJRklfTVVMVElDQVNUX1NUQVRFIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNXaUZpUGVybWlzc2lvbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uQ0FMTF9QSE9ORSIgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPT0gImFuZHJvaWQucGVybWlzc2lvbi5DQUxMX1BSSVZJTEVHRUQiIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uTU9ESUZZX1BIT05FX1NUQVRFIiB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9PSAiYW5kcm9pZC5wZXJtaXNzaW9uLlBST0NFU1NfT1VUR09JTkdfQ0FMTFMiIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uUkVBRF9TTVMiIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uUkVDRUlWRV9TTVMiIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uUkVDRUlWRV9NTVMiIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uUkVDRUlWRV9XQVBfUFVTSCIgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPT0gImFuZHJvaWQucGVybWlzc2lvbi5TRU5EX1NNUyIgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPT0gImFuZHJvaWQucGVybWlzc2lvbi5XUklURV9BUE5fU0VUVElOR1MiIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uV1JJVEVfU01TIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNUZWxlcGhvbnlQZXJtaXNzaW9uID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gImFuZHJvaWQucGVybWlzc2lvbi5XUklURV9FWFRFUk5BTF9TVE9SQUdFIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNXcml0ZUV4dGVybmFsU3RvcmFnZVBlcm1pc3Npb24gPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiYW5kcm9pZC5wZXJtaXNzaW9uLlJFQURfRVhURVJOQUxfU1RPUkFHRSIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzUmVhZEV4dGVybmFsU3RvcmFnZVBlcm1pc3Npb24gPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiYW5kcm9pZC5wZXJtaXNzaW9uLlJFQURfUEhPTkVfU1RBVEUiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc1JlYWRQaG9uZVN0YXRlUGVybWlzc2lvbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uUkVBRF9DT05UQUNUUyIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzUmVhZENvbnRhY3RzUGVybWlzc2lvbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lID09ICJhbmRyb2lkLnBlcm1pc3Npb24uV1JJVEVfQ09OVEFDVFMiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc1dyaXRlQ29udGFjdHNQZXJtaXNzaW9uID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gImFuZHJvaWQucGVybWlzc2lvbi5SRUFEX0NBTExfTE9HIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNSZWFkQ2FsbExvZ1Blcm1pc3Npb24gPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PSAiYW5kcm9pZC5wZXJtaXNzaW9uLldSSVRFX0NBTExfTE9HIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNXcml0ZUNhbGxMb2dQZXJtaXNzaW9uID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLXBlcm1pc3Npb246JyVzJ1xuIiwgbmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlcSA9IGdldEludGVnZXJBdHRyaWJ1dGUodHJlZSwgUkVRVUlSRURfQVRUUiwgTlVMTCwgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJvcHRpb25hbC1wZXJtaXNzaW9uOiclcydcbiIsIG5hbWUuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUiBnZXR0aW5nICdhbmRyb2lkOm5hbWUnIGF0dHJpYnV0ZTogJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvci5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZyA9PSAidXNlcy1wYWNrYWdlIikgewotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCBuYW1lID0gZ2V0QXR0cmlidXRlKHRyZWUsIE5BTUVfQVRUUiwgJmVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lICE9ICIiICYmIGVycm9yID09ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLXBhY2thZ2U6JyVzJ1xuIiwgbmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1IgZ2V0dGluZyAnYW5kcm9pZDpuYW1lJyBhdHRyaWJ1dGU6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Iuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGFnID09ICJvcmlnaW5hbC1wYWNrYWdlIikgewotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCBuYW1lID0gZ2V0QXR0cmlidXRlKHRyZWUsIE5BTUVfQVRUUiwgJmVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lICE9ICIiICYmIGVycm9yID09ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJvcmlnaW5hbC1wYWNrYWdlOiclcydcbiIsIG5hbWUuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SIGdldHRpbmcgJ2FuZHJvaWQ6bmFtZScgYXR0cmlidXRlOiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZyA9PSAic3VwcG9ydHMtZ2wtdGV4dHVyZSIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzggbmFtZSA9IGdldEF0dHJpYnV0ZSh0cmVlLCBOQU1FX0FUVFIsICZlcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSAhPSAiIiAmJiBlcnJvciA9PSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50Zigic3VwcG9ydHMtZ2wtdGV4dHVyZTonJXMnXG4iLCBuYW1lLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUiBnZXR0aW5nICdhbmRyb2lkOm5hbWUnIGF0dHJpYnV0ZTogJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvci5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0YWcgPT0gImNvbXBhdGlibGUtc2NyZWVucyIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50Q29tcGF0aWJsZVNjcmVlbnModHJlZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC0tOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZyA9PSAicGFja2FnZS12ZXJpZmllciIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzggbmFtZSA9IGdldEF0dHJpYnV0ZSh0cmVlLCBOQU1FX0FUVFIsICZlcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSAhPSAiIiAmJiBlcnJvciA9PSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzggcHVibGljS2V5ID0gZ2V0QXR0cmlidXRlKHRyZWUsIFBVQkxJQ19LRVlfQVRUUiwgJmVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHVibGljS2V5ICE9ICIiICYmIGVycm9yID09ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigicGFja2FnZS12ZXJpZmllcjogbmFtZT0nJXMnIHB1YmxpY0tleT0nJXMnXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuc3RyaW5nKCksIHB1YmxpY0tleS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkZXB0aCA9PSAzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHdpdGhpbkFjdGl2aXR5ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIHdpdGhpblJlY2VpdmVyID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIHdpdGhpblNlcnZpY2UgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgaGFzSW50ZW50RmlsdGVyID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIGhhc01ldGFIb3N0UGF5bWVudENhdGVnb3J5ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIGhhc01ldGFPZmZIb3N0UGF5bWVudENhdGVnb3J5ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0JpbmREZXZpY2VBZG1pblBlcm1pc3Npb24gPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgaGFzQmluZElucHV0TWV0aG9kUGVybWlzc2lvbiA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICBoYXNCaW5kQWNjZXNzaWJpbGl0eVNlcnZpY2VQZXJtaXNzaW9uID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0JpbmRQcmludFNlcnZpY2VQZXJtaXNzaW9uID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0JpbmROZmNTZXJ2aWNlUGVybWlzc2lvbiA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICBpZiAod2l0aGluQXBwbGljYXRpb24pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRhZyA9PSAiYWN0aXZpdHkiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aGluQWN0aXZpdHkgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2aXR5TmFtZSA9IGdldEF0dHJpYnV0ZSh0cmVlLCBOQU1FX0FUVFIsICZlcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1IgZ2V0dGluZyAnYW5kcm9pZDpuYW1lJyBhdHRyaWJ1dGU6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2aXR5TGFiZWwgPSBnZXRSZXNvbHZlZEF0dHJpYnV0ZSgmcmVzLCB0cmVlLCBMQUJFTF9BVFRSLCAmZXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SIGdldHRpbmcgJ2FuZHJvaWQ6bGFiZWwnIGF0dHJpYnV0ZTogJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Iuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZpdHlJY29uID0gZ2V0UmVzb2x2ZWRBdHRyaWJ1dGUoJnJlcywgdHJlZSwgSUNPTl9BVFRSLCAmZXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SIGdldHRpbmcgJ2FuZHJvaWQ6aWNvbicgYXR0cmlidXRlOiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvci5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IG9yaWVuID0gZ2V0UmVzb2x2ZWRJbnRlZ2VyQXR0cmlidXRlKCZyZXMsIHRyZWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQ1JFRU5fT1JJRU5UQVRJT05fQVRUUiwgJmVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IgPT0gIiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9yaWVuID09IDAgfHwgb3JpZW4gPT0gNiB8fCBvcmllbiA9PSA4KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXF1ZXN0cyBsYW5kc2NhcGUsIHNlbnNvckxhbmRzY2FwZSwgb3IgcmV2ZXJzZUxhbmRzY2FwZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcVNjcmVlbkxhbmRzY2FwZUZlYXR1cmUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9yaWVuID09IDEgfHwgb3JpZW4gPT0gNyB8fCBvcmllbiA9PSA5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXF1ZXN0cyBwb3J0cmFpdCwgc2Vuc29yUG9ydHJhaXQsIG9yIHJldmVyc2VQb3J0cmFpdC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcVNjcmVlblBvcnRyYWl0RmVhdHVyZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZyA9PSAidXNlcy1saWJyYXJ5IikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzggbGlicmFyeU5hbWUgPSBnZXRBdHRyaWJ1dGUodHJlZSwgTkFNRV9BVFRSLCAmZXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRVJST1IgZ2V0dGluZyAnYW5kcm9pZDpuYW1lJyBhdHRyaWJ1dGUgZm9yIHVzZXMtbGlicmFyeSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICVzXG4iLCBlcnJvci5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlcSA9IGdldEludGVnZXJBdHRyaWJ1dGUodHJlZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFUVVJUkVEX0FUVFIsIE5VTEwsIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1saWJyYXJ5JXM6JyVzJ1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcSA/ICIiIDogIi1ub3QtcmVxdWlyZWQiLCBsaWJyYXJ5TmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZyA9PSAicmVjZWl2ZXIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aGluUmVjZWl2ZXIgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVyTmFtZSA9IGdldEF0dHJpYnV0ZSh0cmVlLCBOQU1FX0FUVFIsICZlcnJvcik7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IgIT0gIiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVSUk9SIGdldHRpbmcgJ2FuZHJvaWQ6bmFtZScgYXR0cmlidXRlIGZvciByZWNlaXZlcjoiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAlc1xuIiwgZXJyb3Iuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCBwZXJtaXNzaW9uID0gZ2V0QXR0cmlidXRlKHRyZWUsIFBFUk1JU1NJT05fQVRUUiwgJmVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IgPT0gIiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0gImFuZHJvaWQucGVybWlzc2lvbi5CSU5EX0RFVklDRV9BRE1JTiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0JpbmREZXZpY2VBZG1pblBlcm1pc3Npb24gPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUiBnZXR0aW5nICdhbmRyb2lkOnBlcm1pc3Npb24nIGF0dHJpYnV0ZSBmb3IiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiByZWNlaXZlciAnJXMnOiAlc1xuIiwgcmVjZWl2ZXJOYW1lLnN0cmluZygpLCBlcnJvci5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0YWcgPT0gInNlcnZpY2UiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aGluU2VydmljZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZU5hbWUgPSBnZXRBdHRyaWJ1dGUodHJlZSwgTkFNRV9BVFRSLCAmZXJyb3IpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1IgZ2V0dGluZyAnYW5kcm9pZDpuYW1lJyBhdHRyaWJ1dGUgZm9yIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgc2VydmljZTogJXNcbiIsIGVycm9yLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzggcGVybWlzc2lvbiA9IGdldEF0dHJpYnV0ZSh0cmVlLCBQRVJNSVNTSU9OX0FUVFIsICZlcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yID09ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uID09ICJhbmRyb2lkLnBlcm1pc3Npb24uQklORF9JTlBVVF9NRVRIT0QiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNCaW5kSW5wdXRNZXRob2RQZXJtaXNzaW9uID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwZXJtaXNzaW9uID09ICJhbmRyb2lkLnBlcm1pc3Npb24uQklORF9BQ0NFU1NJQklMSVRZX1NFUlZJQ0UiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNCaW5kQWNjZXNzaWJpbGl0eVNlcnZpY2VQZXJtaXNzaW9uID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwZXJtaXNzaW9uID09ICJhbmRyb2lkLnBlcm1pc3Npb24uQklORF9QUklOVF9TRVJWSUNFIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzQmluZFByaW50U2VydmljZVBlcm1pc3Npb24gPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBlcm1pc3Npb24gPT0gImFuZHJvaWQucGVybWlzc2lvbi5CSU5EX05GQ19TRVJWSUNFIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzQmluZE5mY1NlcnZpY2VQZXJtaXNzaW9uID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1IgZ2V0dGluZyAnYW5kcm9pZDpwZXJtaXNzaW9uJyBhdHRyaWJ1dGUgZm9yIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgc2VydmljZSAnJXMnOiAlc1xuIiwgc2VydmljZU5hbWUuc3RyaW5nKCksIGVycm9yLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAod2l0aGluU3VwcG9ydHNJbnB1dCAmJiB0YWcgPT0gImlucHV0LXR5cGUiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4IG5hbWUgPSBnZXRBdHRyaWJ1dGUodHJlZSwgTkFNRV9BVFRSLCAmZXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgIT0gIiIgJiYgZXJyb3IgPT0gIiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRJbnB1dC5hZGQobmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1IgZ2V0dGluZyAnYW5kcm9pZDpuYW1lJyBhdHRyaWJ1dGU6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Iuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVwdGggPT0gNCkgewotICAgICAgICAgICAgICAgICAgICBpZiAodGFnID09ICJpbnRlbnQtZmlsdGVyIikgewotICAgICAgICAgICAgICAgICAgICAgICAgaGFzSW50ZW50RmlsdGVyID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhpbkludGVudEZpbHRlciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhY3RNYWluQWN0aXZpdHkgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjdFdpZGdldFJlY2VpdmVycyA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgYWN0SW1lU2VydmljZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgYWN0V2FsbHBhcGVyU2VydmljZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgYWN0QWNjZXNzaWJpbGl0eVNlcnZpY2UgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjdFByaW50U2VydmljZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgYWN0RGV2aWNlQWRtaW5FbmFibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhY3RIb3N0QXBkdVNlcnZpY2UgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjdE9mZkhvc3RBcGR1U2VydmljZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdpdGhpblNlcnZpY2UgJiYgdGFnID09ICJtZXRhLWRhdGEiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4IG5hbWUgPSBnZXRBdHRyaWJ1dGUodHJlZSwgTkFNRV9BVFRSLCAmZXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUiBnZXR0aW5nICdhbmRyb2lkOm5hbWUnIGF0dHJpYnV0ZSBmb3IiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIG1ldGEtZGF0YSB0YWcgaW4gc2VydmljZSAnJXMnOiAlc1xuIiwgc2VydmljZU5hbWUuc3RyaW5nKCksIGVycm9yLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lID09ICJhbmRyb2lkLm5mYy5jYXJkZW11bGF0aW9uLmhvc3RfYXBkdV9zZXJ2aWNlIiB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID09ICJhbmRyb2lkLm5mYy5jYXJkZW11bGF0aW9uLm9mZl9ob3N0X2FwZHVfc2VydmljZSIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIG9mZkhvc3QgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lID09ICJhbmRyb2lkLm5mYy5jYXJkZW11bGF0aW9uLmhvc3RfYXBkdV9zZXJ2aWNlIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZIb3N0ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCB4bWxQYXRoID0gZ2V0UmVzb2x2ZWRBdHRyaWJ1dGUoJnJlcywgdHJlZSwgUkVTT1VSQ0VfQVRUUiwgJmVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IgIT0gIiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUiBnZXR0aW5nICdhbmRyb2lkOnJlc291cmNlJyBhdHRyaWJ1dGUgZm9yIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgbWV0YS1kYXRhIHRhZyBpbiBzZXJ2aWNlICclcyc6ICVzXG4iLCBzZXJ2aWNlTmFtZS5zdHJpbmcoKSwgZXJyb3Iuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPFN0cmluZzg+IGNhdGVnb3JpZXMgPSBnZXROZmNBaWRDYXRlZ29yaWVzKGFzc2V0cywgeG1sUGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZkhvc3QsICZlcnJvcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1IgZ2V0dGluZyBBSUQgY2F0ZWdvcnkgZm9yIHNlcnZpY2UgJyVzJ1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlTmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplX3QgY2F0TGVuID0gY2F0ZWdvcmllcy5zaXplKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjYXRMZW47IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHBheW1lbnRDYXRlZ29yeSA9IChjYXRlZ29yaWVzW2ldID09ICJwYXltZW50Iik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvZmZIb3N0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNNZXRhT2ZmSG9zdFBheW1lbnRDYXRlZ29yeSB8PSBwYXltZW50Q2F0ZWdvcnk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNNZXRhSG9zdFBheW1lbnRDYXRlZ29yeSB8PSBwYXltZW50Q2F0ZWdvcnk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKChkZXB0aCA9PSA1KSAmJiB3aXRoaW5JbnRlbnRGaWx0ZXIpewotICAgICAgICAgICAgICAgICAgICBTdHJpbmc4IGFjdGlvbjsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRhZyA9PSAiYWN0aW9uIikgewotICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gZ2V0QXR0cmlidXRlKHRyZWUsIE5BTUVfQVRUUiwgJmVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvciAhPSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1IgZ2V0dGluZyAnYW5kcm9pZDpuYW1lJyBhdHRyaWJ1dGU6ICVzXG4iLCBlcnJvci5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpdGhpbkFjdGl2aXR5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGlvbiA9PSAiYW5kcm9pZC5pbnRlbnQuYWN0aW9uLk1BSU4iKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTWFpbkFjdGl2aXR5ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0TWFpbkFjdGl2aXR5ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdpdGhpblJlY2VpdmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGlvbiA9PSAiYW5kcm9pZC5hcHB3aWRnZXQuYWN0aW9uLkFQUFdJREdFVF9VUERBVEUiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdFdpZGdldFJlY2VpdmVycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24gPT0gImFuZHJvaWQuYXBwLmFjdGlvbi5ERVZJQ0VfQURNSU5fRU5BQkxFRCIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0RGV2aWNlQWRtaW5FbmFibGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdpdGhpblNlcnZpY2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aW9uID09ICJhbmRyb2lkLnZpZXcuSW5wdXRNZXRob2QiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdEltZVNlcnZpY2UgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uID09ICJhbmRyb2lkLnNlcnZpY2Uud2FsbHBhcGVyLldhbGxwYXBlclNlcnZpY2UiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdFdhbGxwYXBlclNlcnZpY2UgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uID09ICJhbmRyb2lkLmFjY2Vzc2liaWxpdHlzZXJ2aWNlLkFjY2Vzc2liaWxpdHlTZXJ2aWNlIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RBY2Nlc3NpYmlsaXR5U2VydmljZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24gPT0gImFuZHJvaWQucHJpbnRzZXJ2aWNlLlByaW50U2VydmljZSIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0UHJpbnRTZXJ2aWNlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PSAiYW5kcm9pZC5uZmMuY2FyZGVtdWxhdGlvbi5hY3Rpb24uSE9TVF9BUERVX1NFUlZJQ0UiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdEhvc3RBcGR1U2VydmljZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24gPT0gImFuZHJvaWQubmZjLmNhcmRlbXVsYXRpb24uYWN0aW9uLk9GRl9IT1NUX0FQRFVfU0VSVklDRSIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0T2ZmSG9zdEFwZHVTZXJ2aWNlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aW9uID09ICJhbmRyb2lkLmludGVudC5hY3Rpb24uU0VBUkNIIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU2VhcmNoYWJsZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBpZiAodGFnID09ICJjYXRlZ29yeSIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzggY2F0ZWdvcnkgPSBnZXRBdHRyaWJ1dGUodHJlZSwgTkFNRV9BVFRSLCAmZXJyb3IpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9ICIiKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUiBnZXR0aW5nICduYW1lJyBhdHRyaWJ1dGU6ICVzXG4iLCBlcnJvci5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpdGhpbkFjdGl2aXR5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhdGVnb3J5ID09ICJhbmRyb2lkLmludGVudC5jYXRlZ29yeS5MQVVOQ0hFUiIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMYXVuY2hlckFjdGl2aXR5ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIFByZS0xLjYgaW1wbGljaXRseSBncmFudGVkIHBlcm1pc3Npb24gY29tcGF0aWJpbGl0eSBsb2dpYwotICAgICAgICAgICAgaWYgKHRhcmdldFNkayA8IDQpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWhhc1dyaXRlRXh0ZXJuYWxTdG9yYWdlUGVybWlzc2lvbikgewotICAgICAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtcGVybWlzc2lvbjonYW5kcm9pZC5wZXJtaXNzaW9uLldSSVRFX0VYVEVSTkFMX1NUT1JBR0UnXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLWltcGxpZWQtcGVybWlzc2lvbjonYW5kcm9pZC5wZXJtaXNzaW9uLldSSVRFX0VYVEVSTkFMX1NUT1JBR0UnLCIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIndGFyZ2V0U2RrVmVyc2lvbiA8IDQnXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgaGFzV3JpdGVFeHRlcm5hbFN0b3JhZ2VQZXJtaXNzaW9uID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKCFoYXNSZWFkUGhvbmVTdGF0ZVBlcm1pc3Npb24pIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLXBlcm1pc3Npb246J2FuZHJvaWQucGVybWlzc2lvbi5SRUFEX1BIT05FX1NUQVRFJ1xuIik7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1pbXBsaWVkLXBlcm1pc3Npb246J2FuZHJvaWQucGVybWlzc2lvbi5SRUFEX1BIT05FX1NUQVRFJywiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ3RhcmdldFNka1ZlcnNpb24gPCA0J1xuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBJZiB0aGUgYXBwbGljYXRpb24gaGFzIHJlcXVlc3RlZCBXUklURV9FWFRFUk5BTF9TVE9SQUdFLCB3ZSB3aWxsCi0gICAgICAgICAgICAvLyBmb3JjZSB0aGVtIHRvIGFsd2F5cyB0YWtlIFJFQURfRVhURVJOQUxfU1RPUkFHRSBhcyB3ZWxsLiAgV2UgYWx3YXlzCi0gICAgICAgICAgICAvLyBkbyB0aGlzIChyZWdhcmRsZXNzIG9mIHRhcmdldCBBUEkgdmVyc2lvbikgYmVjYXVzZSB3ZSBjYW4ndCBoYXZlCi0gICAgICAgICAgICAvLyBhbiBhcHAgd2l0aCB3cml0ZSBwZXJtaXNzaW9uIGJ1dCBub3QgcmVhZCBwZXJtaXNzaW9uLgotICAgICAgICAgICAgaWYgKCFoYXNSZWFkRXh0ZXJuYWxTdG9yYWdlUGVybWlzc2lvbiAmJiBoYXNXcml0ZUV4dGVybmFsU3RvcmFnZVBlcm1pc3Npb24pIHsKLSAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtcGVybWlzc2lvbjonYW5kcm9pZC5wZXJtaXNzaW9uLlJFQURfRVhURVJOQUxfU1RPUkFHRSdcbiIpOwotICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1pbXBsaWVkLXBlcm1pc3Npb246J2FuZHJvaWQucGVybWlzc2lvbi5SRUFEX0VYVEVSTkFMX1NUT1JBR0UnLCIgXAotICAgICAgICAgICAgICAgICAgICAgICAgIidyZXF1ZXN0ZWQgV1JJVEVfRVhURVJOQUxfU1RPUkFHRSdcbiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBQcmUtSmVsbHlCZWFuIGNhbGwgbG9nIHBlcm1pc3Npb24gY29tcGF0aWJpbGl0eS4KLSAgICAgICAgICAgIGlmICh0YXJnZXRTZGsgPCAxNikgewotICAgICAgICAgICAgICAgIGlmICghaGFzUmVhZENhbGxMb2dQZXJtaXNzaW9uICYmIGhhc1JlYWRDb250YWN0c1Blcm1pc3Npb24pIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLXBlcm1pc3Npb246J2FuZHJvaWQucGVybWlzc2lvbi5SRUFEX0NBTExfTE9HJ1xuIik7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1pbXBsaWVkLXBlcm1pc3Npb246J2FuZHJvaWQucGVybWlzc2lvbi5SRUFEX0NBTExfTE9HJywiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ3RhcmdldFNka1ZlcnNpb24gPCAxNiBhbmQgcmVxdWVzdGVkIFJFQURfQ09OVEFDVFMnXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKCFoYXNXcml0ZUNhbGxMb2dQZXJtaXNzaW9uICYmIGhhc1dyaXRlQ29udGFjdHNQZXJtaXNzaW9uKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1wZXJtaXNzaW9uOidhbmRyb2lkLnBlcm1pc3Npb24uV1JJVEVfQ0FMTF9MT0cnXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLWltcGxpZWQtcGVybWlzc2lvbjonYW5kcm9pZC5wZXJtaXNzaW9uLldSSVRFX0NBTExfTE9HJywiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ3RhcmdldFNka1ZlcnNpb24gPCAxNiBhbmQgcmVxdWVzdGVkIFdSSVRFX0NPTlRBQ1RTJ1xuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvKiBUaGUgZm9sbG93aW5nIGJsb2NrcyBoYW5kbGUgcHJpbnRpbmcgImluZmVycmVkIiB1c2VzLWZlYXR1cmVzLCBiYXNlZAotICAgICAgICAgICAgICogb24gd2hldGhlciByZWxhdGVkIGZlYXR1cmVzIG9yIHBlcm1pc3Npb25zIGFyZSB1c2VkIGJ5IHRoZSBhcHAuCi0gICAgICAgICAgICAgKiBOb3RlIHRoYXQgdGhlIHZhcmlvdXMgc3BlYypGZWF0dXJlIHZhcmlhYmxlcyBkZW5vdGUgd2hldGhlciB0aGUKLSAgICAgICAgICAgICAqIHJlbGV2YW50IHRhZyB3YXMgKnByZXNlbnQqIGluIHRoZSBBbmRyb2lkTWFuZmVzdCwgbm90IHRoYXQgaXQgd2FzCi0gICAgICAgICAgICAgKiBwcmVzZW50IGFuZCBzZXQgdG8gdHJ1ZS4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgLy8gQ2FtZXJhLXJlbGF0ZWQgYmFjay1jb21wYXRpYmlsaXR5IGxvZ2ljCi0gICAgICAgICAgICBpZiAoIXNwZWNDYW1lcmFGZWF0dXJlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJlcUNhbWVyYUZsYXNoRmVhdHVyZSkgewotICAgICAgICAgICAgICAgICAgICAvLyBpZiBhcHAgcmVxdWVzdGVkIGEgc3ViLWZlYXR1cmUgKGF1dG9mb2N1cyBvciBmbGFzaCkgYW5kIGRpZG4ndAotICAgICAgICAgICAgICAgICAgICAvLyByZXF1ZXN0IHRoZSBiYXNlIGNhbWVyYSBmZWF0dXJlLCB3ZSBpbmZlciB0aGF0IGl0IG1lYW50IHRvCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYSdcbiIpOwotICAgICAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtaW1wbGllZC1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYScsIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIidyZXF1ZXN0ZWQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZmxhc2ggZmVhdHVyZSdcbiIpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVxQ2FtZXJhQXV0b2ZvY3VzRmVhdHVyZSkgewotICAgICAgICAgICAgICAgICAgICAvLyBpZiBhcHAgcmVxdWVzdGVkIGEgc3ViLWZlYXR1cmUgKGF1dG9mb2N1cyBvciBmbGFzaCkgYW5kIGRpZG4ndAotICAgICAgICAgICAgICAgICAgICAvLyByZXF1ZXN0IHRoZSBiYXNlIGNhbWVyYSBmZWF0dXJlLCB3ZSBpbmZlciB0aGF0IGl0IG1lYW50IHRvCi0gICAgICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYSdcbiIpOwotICAgICAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtaW1wbGllZC1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYScsIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIidyZXF1ZXN0ZWQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuYXV0b2ZvY3VzIGZlYXR1cmUnXG4iKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhhc0NhbWVyYVBlcm1pc3Npb24pIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gaWYgYXBwIHdhbnRzIHRvIHVzZSBjYW1lcmEgYnV0IGRpZG4ndCByZXF1ZXN0IHRoZSBmZWF0dXJlLCB3ZSBpbmZlciAKLSAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBpdCBtZWFudCB0bywgYW5kIGZ1cnRoZXIgdGhhdCBpdCB3YW50cyBhdXRvZm9jdXMKLSAgICAgICAgICAgICAgICAgICAgLy8gKHdoaWNoIHdhcyB0aGUgMS4wIC0gMS41IGJlaGF2aW9yKQotICAgICAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtZmVhdHVyZTonYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEnXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFzcGVjQ2FtZXJhQXV0b2ZvY3VzRmVhdHVyZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLWZlYXR1cmU6J2FuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmF1dG9mb2N1cydcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLWltcGxpZWQtZmVhdHVyZTonYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuYXV0b2ZvY3VzJywiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIidyZXF1ZXN0ZWQgYW5kcm9pZC5wZXJtaXNzaW9uLkNBTUVSQSBwZXJtaXNzaW9uJ1xuIik7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIExvY2F0aW9uLXJlbGF0ZWQgYmFjay1jb21wYXRpYmlsaXR5IGxvZ2ljCi0gICAgICAgICAgICBpZiAoIXNwZWNMb2NhdGlvbkZlYXR1cmUgJiYKLSAgICAgICAgICAgICAgICAoaGFzTW9ja0xvY1Blcm1pc3Npb24gfHwgaGFzQ29hcnNlTG9jUGVybWlzc2lvbiB8fCBoYXNHcHNQZXJtaXNzaW9uIHx8Ci0gICAgICAgICAgICAgICAgIGhhc0dlbmVyYWxMb2NQZXJtaXNzaW9uIHx8IHJlcU5ldHdvcmtMb2NGZWF0dXJlIHx8IHJlcUdwc0ZlYXR1cmUpKSB7Ci0gICAgICAgICAgICAgICAgLy8gaWYgYXBwIGVpdGhlciB0YWtlcyBhIGxvY2F0aW9uLXJlbGF0ZWQgcGVybWlzc2lvbiBvciByZXF1ZXN0cyBvbmUgb2YgdGhlCi0gICAgICAgICAgICAgICAgLy8gc3ViLWZlYXR1cmVzLCB3ZSBpbmZlciB0aGF0IGl0IGFsc28gbWVhbnQgdG8gcmVxdWVzdCB0aGUgYmFzZSBsb2NhdGlvbiBmZWF0dXJlCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLWZlYXR1cmU6J2FuZHJvaWQuaGFyZHdhcmUubG9jYXRpb24nXG4iKTsKLSAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtaW1wbGllZC1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLmxvY2F0aW9uJywiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICIncmVxdWVzdGVkIGEgbG9jYXRpb24gYWNjZXNzIHBlcm1pc3Npb24nXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghc3BlY0dwc0ZlYXR1cmUgJiYgaGFzR3BzUGVybWlzc2lvbikgewotICAgICAgICAgICAgICAgIC8vIGlmIGFwcCB0YWtlcyBHUFMgKEZJTkUgbG9jYXRpb24pIHBlcm0gYnV0IGRvZXMgbm90IHJlcXVlc3QgdGhlIEdQUwotICAgICAgICAgICAgICAgIC8vIGZlYXR1cmUsIHdlIGluZmVyIHRoYXQgaXQgbWVhbnQgdG8KLSAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtZmVhdHVyZTonYW5kcm9pZC5oYXJkd2FyZS5sb2NhdGlvbi5ncHMnXG4iKTsKLSAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtaW1wbGllZC1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLmxvY2F0aW9uLmdwcycsIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAiJ3JlcXVlc3RlZCBhbmRyb2lkLnBlcm1pc3Npb24uQUNDRVNTX0ZJTkVfTE9DQVRJT04gcGVybWlzc2lvbidcbiIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCFzcGVjTmV0d29ya0xvY0ZlYXR1cmUgJiYgaGFzQ29hcnNlTG9jUGVybWlzc2lvbikgewotICAgICAgICAgICAgICAgIC8vIGlmIGFwcCB0YWtlcyBOZXR3b3JrIGxvY2F0aW9uIChDT0FSU0UgbG9jYXRpb24pIHBlcm0gYnV0IGRvZXMgbm90IHJlcXVlc3QgdGhlCi0gICAgICAgICAgICAgICAgLy8gbmV0d29yayBsb2NhdGlvbiBmZWF0dXJlLCB3ZSBpbmZlciB0aGF0IGl0IG1lYW50IHRvCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLWZlYXR1cmU6J2FuZHJvaWQuaGFyZHdhcmUubG9jYXRpb24ubmV0d29yaydcbiIpOwotICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1pbXBsaWVkLWZlYXR1cmU6J2FuZHJvaWQuaGFyZHdhcmUubG9jYXRpb24ubmV0d29yaycsIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAiJ3JlcXVlc3RlZCBhbmRyb2lkLnBlcm1pc3Npb24uQUNDRVNTX0NPQVJTRV9MT0NBVElPTiBwZXJtaXNzaW9uJ1xuIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIEJsdWV0b290aC1yZWxhdGVkIGNvbXBhdGliaWxpdHkgbG9naWMKLSAgICAgICAgICAgIGlmICghc3BlY0JsdWV0b290aEZlYXR1cmUgJiYgaGFzQmx1ZXRvb3RoUGVybWlzc2lvbiAmJiAodGFyZ2V0U2RrID4gNCkpIHsKLSAgICAgICAgICAgICAgICAvLyBpZiBhcHAgdGFrZXMgYSBCbHVldG9vdGggcGVybWlzc2lvbiBidXQgZG9lcyBub3QgcmVxdWVzdCB0aGUgQmx1ZXRvb3RoCi0gICAgICAgICAgICAgICAgLy8gZmVhdHVyZSwgd2UgaW5mZXIgdGhhdCBpdCBtZWFudCB0bwotICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLmJsdWV0b290aCdcbiIpOwotICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1pbXBsaWVkLWZlYXR1cmU6J2FuZHJvaWQuaGFyZHdhcmUuYmx1ZXRvb3RoJywiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICIncmVxdWVzdGVkIGFuZHJvaWQucGVybWlzc2lvbi5CTFVFVE9PVEggb3IgYW5kcm9pZC5wZXJtaXNzaW9uLkJMVUVUT09USF9BRE1JTiAiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICJwZXJtaXNzaW9uIGFuZCB0YXJnZXRTZGtWZXJzaW9uID4gNCdcbiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBNaWNyb3Bob25lLXJlbGF0ZWQgY29tcGF0aWJpbGl0eSBsb2dpYwotICAgICAgICAgICAgaWYgKCFzcGVjTWljcm9waG9uZUZlYXR1cmUgJiYgaGFzUmVjb3JkQXVkaW9QZXJtaXNzaW9uKSB7Ci0gICAgICAgICAgICAgICAgLy8gaWYgYXBwIHRha2VzIHRoZSByZWNvcmQtYXVkaW8gcGVybWlzc2lvbiBidXQgZG9lcyBub3QgcmVxdWVzdCB0aGUgbWljcm9waG9uZQotICAgICAgICAgICAgICAgIC8vIGZlYXR1cmUsIHdlIGluZmVyIHRoYXQgaXQgbWVhbnQgdG8KLSAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtZmVhdHVyZTonYW5kcm9pZC5oYXJkd2FyZS5taWNyb3Bob25lJ1xuIik7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLWltcGxpZWQtZmVhdHVyZTonYW5kcm9pZC5oYXJkd2FyZS5taWNyb3Bob25lJywiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICIncmVxdWVzdGVkIGFuZHJvaWQucGVybWlzc2lvbi5SRUNPUkRfQVVESU8gcGVybWlzc2lvbidcbiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBXaUZpLXJlbGF0ZWQgY29tcGF0aWJpbGl0eSBsb2dpYwotICAgICAgICAgICAgaWYgKCFzcGVjV2lGaUZlYXR1cmUgJiYgaGFzV2lGaVBlcm1pc3Npb24pIHsKLSAgICAgICAgICAgICAgICAvLyBpZiBhcHAgdGFrZXMgb25lIG9mIHRoZSBXaUZpIHBlcm1pc3Npb25zIGJ1dCBkb2VzIG5vdCByZXF1ZXN0IHRoZSBXaUZpCi0gICAgICAgICAgICAgICAgLy8gZmVhdHVyZSwgd2UgaW5mZXIgdGhhdCBpdCBtZWFudCB0bwotICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLndpZmknXG4iKTsKLSAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtaW1wbGllZC1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLndpZmknLCIgXAotICAgICAgICAgICAgICAgICAgICAgICAgIidyZXF1ZXN0ZWQgYW5kcm9pZC5wZXJtaXNzaW9uLkFDQ0VTU19XSUZJX1NUQVRFLCAiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICJhbmRyb2lkLnBlcm1pc3Npb24uQ0hBTkdFX1dJRklfU1RBVEUsIG9yICIgXAotICAgICAgICAgICAgICAgICAgICAgICAgImFuZHJvaWQucGVybWlzc2lvbi5DSEFOR0VfV0lGSV9NVUxUSUNBU1RfU1RBVEUgcGVybWlzc2lvbidcbiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBUZWxlcGhvbnktcmVsYXRlZCBjb21wYXRpYmlsaXR5IGxvZ2ljCi0gICAgICAgICAgICBpZiAoIXNwZWNUZWxlcGhvbnlGZWF0dXJlICYmIChoYXNUZWxlcGhvbnlQZXJtaXNzaW9uIHx8IHJlcVRlbGVwaG9ueVN1YkZlYXR1cmUpKSB7Ci0gICAgICAgICAgICAgICAgLy8gaWYgYXBwIHRha2VzIG9uZSBvZiB0aGUgdGVsZXBob255IHBlcm1pc3Npb25zIG9yIHJlcXVlc3RzIGEgc3ViLWZlYXR1cmUgYnV0Ci0gICAgICAgICAgICAgICAgLy8gZG9lcyBub3QgcmVxdWVzdCB0aGUgYmFzZSB0ZWxlcGhvbnkgZmVhdHVyZSwgd2UgaW5mZXIgdGhhdCBpdCBtZWFudCB0bwotICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLnRlbGVwaG9ueSdcbiIpOwotICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1pbXBsaWVkLWZlYXR1cmU6J2FuZHJvaWQuaGFyZHdhcmUudGVsZXBob255JywiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICIncmVxdWVzdGVkIGEgdGVsZXBob255LXJlbGF0ZWQgcGVybWlzc2lvbiBvciBmZWF0dXJlJ1xuIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIFRvdWNoc2NyZWVuLXJlbGF0ZWQgYmFjay1jb21wYXRpYmlsaXR5IGxvZ2ljCi0gICAgICAgICAgICBpZiAoIXNwZWNUb3VjaHNjcmVlbkZlYXR1cmUpIHsgLy8gbm90IGEgdHlwbyEKLSAgICAgICAgICAgICAgICAvLyBhbGwgYXBwcyBhcmUgcHJlc3VtZWQgdG8gcmVxdWlyZSBhIHRvdWNoc2NyZWVuLCB1bmxlc3MgdGhleSBleHBsaWNpdGx5IHNheQotICAgICAgICAgICAgICAgIC8vIDx1c2VzLWZlYXR1cmUgYW5kcm9pZDpuYW1lPSJhbmRyb2lkLmhhcmR3YXJlLnRvdWNoc2NyZWVuIiBhbmRyb2lkOnJlcXVpcmVkPSJmYWxzZSIvPgotICAgICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCBzcGVjVG91Y2hzY3JlZW5GZWF0dXJlIGlzIHRydWUgaWYgdGhlIHRhZyBpcyBwcmVzZW50LCByZWdhcmRsZXNzCi0gICAgICAgICAgICAgICAgLy8gb2Ygd2hldGhlciBpdHMgdmFsdWUgaXMgdHJ1ZSBvciBmYWxzZSwgc28gdGhpcyBpcyBzYWZlCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLWZlYXR1cmU6J2FuZHJvaWQuaGFyZHdhcmUudG91Y2hzY3JlZW4nXG4iKTsKLSAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtaW1wbGllZC1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLnRvdWNoc2NyZWVuJywiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICInYXNzdW1lZCB5b3UgcmVxdWlyZSBhIHRvdWNoIHNjcmVlbiB1bmxlc3MgZXhwbGljaXRseSBtYWRlIG9wdGlvbmFsJ1xuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIXNwZWNNdWx0aXRvdWNoRmVhdHVyZSAmJiByZXFEaXN0aW5jdE11bHRpdG91Y2hGZWF0dXJlKSB7Ci0gICAgICAgICAgICAgICAgLy8gaWYgYXBwIHRha2VzIG9uZSBvZiB0aGUgdGVsZXBob255IHBlcm1pc3Npb25zIG9yIHJlcXVlc3RzIGEgc3ViLWZlYXR1cmUgYnV0Ci0gICAgICAgICAgICAgICAgLy8gZG9lcyBub3QgcmVxdWVzdCB0aGUgYmFzZSB0ZWxlcGhvbnkgZmVhdHVyZSwgd2UgaW5mZXIgdGhhdCBpdCBtZWFudCB0bwotICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLnRvdWNoc2NyZWVuLm11bHRpdG91Y2gnXG4iKTsKLSAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtaW1wbGllZC1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLnRvdWNoc2NyZWVuLm11bHRpdG91Y2gnLCIgXAotICAgICAgICAgICAgICAgICAgICAgICAgIidyZXF1ZXN0ZWQgYW5kcm9pZC5oYXJkd2FyZS50b3VjaHNjcmVlbi5tdWx0aXRvdWNoLmRpc3RpbmN0IGZlYXR1cmUnXG4iKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gTGFuZHNjYXBlL3BvcnRyYWl0LXJlbGF0ZWQgY29tcGF0aWJpbGl0eSBsb2dpYwotICAgICAgICAgICAgaWYgKCFzcGVjU2NyZWVuTGFuZHNjYXBlRmVhdHVyZSAmJiAhc3BlY1NjcmVlblBvcnRyYWl0RmVhdHVyZSkgewotICAgICAgICAgICAgICAgIC8vIElmIHRoZSBhcHAgaGFzIHNwZWNpZmllZCBhbnkgYWN0aXZpdGllcyBpbiBpdHMgbWFuaWZlc3QKLSAgICAgICAgICAgICAgICAvLyB0aGF0IHJlcXVlc3QgYSBzcGVjaWZpYyBvcmllbnRhdGlvbiwgdGhlbiBhc3N1bWUgdGhhdAotICAgICAgICAgICAgICAgIC8vIG9yaWVudGF0aW9uIGlzIHJlcXVpcmVkLgotICAgICAgICAgICAgICAgIGlmIChyZXFTY3JlZW5MYW5kc2NhcGVGZWF0dXJlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigidXNlcy1mZWF0dXJlOidhbmRyb2lkLmhhcmR3YXJlLnNjcmVlbi5sYW5kc2NhcGUnXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLWltcGxpZWQtZmVhdHVyZTonYW5kcm9pZC5oYXJkd2FyZS5zY3JlZW4ubGFuZHNjYXBlJywiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ29uZSBvciBtb3JlIGFjdGl2aXRpZXMgaGF2ZSBzcGVjaWZpZWQgYSBsYW5kc2NhcGUgb3JpZW50YXRpb24nXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHJlcVNjcmVlblBvcnRyYWl0RmVhdHVyZSkgewotICAgICAgICAgICAgICAgICAgICBwcmludGYoInVzZXMtZmVhdHVyZTonYW5kcm9pZC5oYXJkd2FyZS5zY3JlZW4ucG9ydHJhaXQnXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJ1c2VzLWltcGxpZWQtZmVhdHVyZTonYW5kcm9pZC5oYXJkd2FyZS5zY3JlZW4ucG9ydHJhaXQnLCIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICInb25lIG9yIG1vcmUgYWN0aXZpdGllcyBoYXZlIHNwZWNpZmllZCBhIHBvcnRyYWl0IG9yaWVudGF0aW9uJ1xuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoaGFzTWFpbkFjdGl2aXR5KSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJtYWluXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChoYXNXaWRnZXRSZWNlaXZlcnMpIHsKLSAgICAgICAgICAgICAgICBwcmludGYoImFwcC13aWRnZXRcbiIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGhhc0RldmljZUFkbWluUmVjZWl2ZXIpIHsKLSAgICAgICAgICAgICAgICBwcmludGYoImRldmljZS1hZG1pblxuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaGFzSW1lU2VydmljZSkgewotICAgICAgICAgICAgICAgIHByaW50ZigiaW1lXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChoYXNXYWxscGFwZXJTZXJ2aWNlKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJ3YWxscGFwZXJcbiIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGhhc0FjY2Vzc2liaWxpdHlTZXJ2aWNlKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJhY2Nlc3NpYmlsaXR5XG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChoYXNQcmludFNlcnZpY2UpIHsKLSAgICAgICAgICAgICAgICBwcmludGYoInByaW50XG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChoYXNQYXltZW50U2VydmljZSkgewotICAgICAgICAgICAgICAgIHByaW50ZigicGF5bWVudFxuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaGFzT3RoZXJBY3Rpdml0aWVzKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJvdGhlci1hY3Rpdml0aWVzXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChpc1NlYXJjaGFibGUpIHsKLSAgICAgICAgICAgICAgICBwcmludGYoInNlYXJjaFxuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaGFzT3RoZXJSZWNlaXZlcnMpIHsKLSAgICAgICAgICAgICAgICBwcmludGYoIm90aGVyLXJlY2VpdmVyc1xuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaGFzT3RoZXJTZXJ2aWNlcykgewotICAgICAgICAgICAgICAgIHByaW50Zigib3RoZXItc2VydmljZXNcbiIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBGb3IgbW9kZXJuIGFwcHMsIGlmIHNjcmVlbiBzaXplIGJ1Y2tldHMgaGF2ZW4ndCBiZWVuIHNwZWNpZmllZAotICAgICAgICAgICAgLy8gYnV0IHRoZSBuZXcgd2lkdGggcmFuZ2VzIGhhdmUsIHRoZW4gaW5mZXIgdGhlIGJ1Y2tldHMgZnJvbSB0aGVtLgotICAgICAgICAgICAgaWYgKHNtYWxsU2NyZWVuID4gMCAmJiBub3JtYWxTY3JlZW4gPiAwICYmIGxhcmdlU2NyZWVuID4gMCAmJiB4bGFyZ2VTY3JlZW4gPiAwCi0gICAgICAgICAgICAgICAgICAgICYmIHJlcXVpcmVzU21hbGxlc3RXaWR0aERwID4gMCkgewotICAgICAgICAgICAgICAgIGludCBjb21wYXRXaWR0aCA9IGNvbXBhdGlibGVXaWR0aExpbWl0RHA7Ci0gICAgICAgICAgICAgICAgaWYgKGNvbXBhdFdpZHRoIDw9IDApIGNvbXBhdFdpZHRoID0gcmVxdWlyZXNTbWFsbGVzdFdpZHRoRHA7Ci0gICAgICAgICAgICAgICAgaWYgKHJlcXVpcmVzU21hbGxlc3RXaWR0aERwIDw9IDI0MCAmJiBjb21wYXRXaWR0aCA+PSAyNDApIHsKLSAgICAgICAgICAgICAgICAgICAgc21hbGxTY3JlZW4gPSAtMTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBzbWFsbFNjcmVlbiA9IDA7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChyZXF1aXJlc1NtYWxsZXN0V2lkdGhEcCA8PSAzMjAgJiYgY29tcGF0V2lkdGggPj0gMzIwKSB7Ci0gICAgICAgICAgICAgICAgICAgIG5vcm1hbFNjcmVlbiA9IC0xOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIG5vcm1hbFNjcmVlbiA9IDA7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChyZXF1aXJlc1NtYWxsZXN0V2lkdGhEcCA8PSA0ODAgJiYgY29tcGF0V2lkdGggPj0gNDgwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxhcmdlU2NyZWVuID0gLTE7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbGFyZ2VTY3JlZW4gPSAwOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAocmVxdWlyZXNTbWFsbGVzdFdpZHRoRHAgPD0gNzIwICYmIGNvbXBhdFdpZHRoID49IDcyMCkgewotICAgICAgICAgICAgICAgICAgICB4bGFyZ2VTY3JlZW4gPSAtMTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICB4bGFyZ2VTY3JlZW4gPSAwOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gRGV0ZXJtaW5lIGRlZmF1bHQgdmFsdWVzIGZvciBhbnkgdW5zcGVjaWZpZWQgc2NyZWVuIHNpemVzLAotICAgICAgICAgICAgLy8gYmFzZWQgb24gdGhlIHRhcmdldCBTREsgb2YgdGhlIHBhY2thZ2UuICBBcyBvZiA0IChkb251dCkKLSAgICAgICAgICAgIC8vIHRoZSBzY3JlZW4gc2l6ZSBzdXBwb3J0IHdhcyBpbnRyb2R1Y2VkLCBzbyBhbGwgZGVmYXVsdCB0bwotICAgICAgICAgICAgLy8gZW5hYmxlZC4KLSAgICAgICAgICAgIGlmIChzbWFsbFNjcmVlbiA+IDApIHsKLSAgICAgICAgICAgICAgICBzbWFsbFNjcmVlbiA9IHRhcmdldFNkayA+PSA0ID8gLTEgOiAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG5vcm1hbFNjcmVlbiA+IDApIHsKLSAgICAgICAgICAgICAgICBub3JtYWxTY3JlZW4gPSAtMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChsYXJnZVNjcmVlbiA+IDApIHsKLSAgICAgICAgICAgICAgICBsYXJnZVNjcmVlbiA9IHRhcmdldFNkayA+PSA0ID8gLTEgOiAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHhsYXJnZVNjcmVlbiA+IDApIHsKLSAgICAgICAgICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIEdpbmdlcmJyZWFkLgotICAgICAgICAgICAgICAgIHhsYXJnZVNjcmVlbiA9IHRhcmdldFNkayA+PSA5ID8gLTEgOiAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGFueURlbnNpdHkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgYW55RGVuc2l0eSA9ICh0YXJnZXRTZGsgPj0gNCB8fCByZXF1aXJlc1NtYWxsZXN0V2lkdGhEcCA+IDAKLSAgICAgICAgICAgICAgICAgICAgICAgIHx8IGNvbXBhdGlibGVXaWR0aExpbWl0RHAgPiAwKSA/IC0xIDogMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByaW50Zigic3VwcG9ydHMtc2NyZWVuczoiKTsKLSAgICAgICAgICAgIGlmIChzbWFsbFNjcmVlbiAhPSAwKSBwcmludGYoIiAnc21hbGwnIik7Ci0gICAgICAgICAgICBpZiAobm9ybWFsU2NyZWVuICE9IDApIHByaW50ZigiICdub3JtYWwnIik7Ci0gICAgICAgICAgICBpZiAobGFyZ2VTY3JlZW4gIT0gMCkgcHJpbnRmKCIgJ2xhcmdlJyIpOwotICAgICAgICAgICAgaWYgKHhsYXJnZVNjcmVlbiAhPSAwKSBwcmludGYoIiAneGxhcmdlJyIpOwotICAgICAgICAgICAgcHJpbnRmKCJcbiIpOwotICAgICAgICAgICAgcHJpbnRmKCJzdXBwb3J0cy1hbnktZGVuc2l0eTogJyVzJ1xuIiwgYW55RGVuc2l0eSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwotICAgICAgICAgICAgaWYgKHJlcXVpcmVzU21hbGxlc3RXaWR0aERwID4gMCkgewotICAgICAgICAgICAgICAgIHByaW50ZigicmVxdWlyZXMtc21hbGxlc3Qtd2lkdGg6JyVkJ1xuIiwgcmVxdWlyZXNTbWFsbGVzdFdpZHRoRHApOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGNvbXBhdGlibGVXaWR0aExpbWl0RHAgPiAwKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJjb21wYXRpYmxlLXdpZHRoLWxpbWl0OiclZCdcbiIsIGNvbXBhdGlibGVXaWR0aExpbWl0RHApOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGxhcmdlc3RXaWR0aExpbWl0RHAgPiAwKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJsYXJnZXN0LXdpZHRoLWxpbWl0OiclZCdcbiIsIGxhcmdlc3RXaWR0aExpbWl0RHApOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBwcmludGYoImxvY2FsZXM6Iik7Ci0gICAgICAgICAgICBjb25zdCBzaXplX3QgTkwgPSBsb2NhbGVzLnNpemUoKTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOTDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgY2hhciogbG9jYWxlU3RyID0gIGxvY2FsZXNbaV0uc3RyaW5nKCk7Ci0gICAgICAgICAgICAgICAgaWYgKGxvY2FsZVN0ciA9PSBOVUxMIHx8IHN0cmxlbihsb2NhbGVTdHIpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgbG9jYWxlU3RyID0gIi0tXy0tIjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCIgJyVzJyIsIGxvY2FsZVN0cik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmludGYoIlxuIik7Ci0KLSAgICAgICAgICAgIHByaW50ZigiZGVuc2l0aWVzOiIpOwotICAgICAgICAgICAgY29uc3Qgc2l6ZV90IE5EID0gZGVuc2l0aWVzLnNpemUoKTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxORDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCIgJyVkJyIsIGRlbnNpdGllc1tpXSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmludGYoIlxuIik7Ci0KLSAgICAgICAgICAgIEFzc2V0RGlyKiBkaXIgPSBhc3NldHMub3Blbk5vbkFzc2V0RGlyKGFzc2V0c0Nvb2tpZSwgImxpYiIpOwotICAgICAgICAgICAgaWYgKGRpciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRpci0+Z2V0RmlsZUNvdW50KCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigibmF0aXZlLWNvZGU6Iik7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxkaXItPmdldEZpbGVDb3VudCgpOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiICclcyciLCBkaXItPmdldEZpbGVOYW1lKGkpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIlxuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGRlbGV0ZSBkaXI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoc3RyY21wKCJiYWRnZXIiLCBvcHRpb24pID09IDApIHsKLSAgICAgICAgICAgIHByaW50ZigiJXMiLCBDT05TT0xFX0RBVEEpOwotICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcCgiY29uZmlndXJhdGlvbnMiLCBvcHRpb24pID09IDApIHsKLSAgICAgICAgICAgIFZlY3RvcjxSZXNUYWJsZV9jb25maWc+IGNvbmZpZ3M7Ci0gICAgICAgICAgICByZXMuZ2V0Q29uZmlndXJhdGlvbnMoJmNvbmZpZ3MpOwotICAgICAgICAgICAgY29uc3Qgc2l6ZV90IE4gPSBjb25maWdzLnNpemUoKTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgICAgICAgICBwcmludGYoIiVzXG4iLCBjb25maWdzW2ldLnRvU3RyaW5nKCkuc3RyaW5nKCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogdW5rbm93biBkdW1wIG9wdGlvbiAnJXMnXG4iLCBvcHRpb24pOwotICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmVzdWx0ID0gTk9fRVJST1I7Ci0KLWJhaWw6Ci0gICAgaWYgKGFzc2V0KSB7Ci0gICAgICAgIGRlbGV0ZSBhc3NldDsKLSAgICB9Ci0gICAgcmV0dXJuIChyZXN1bHQgIT0gTk9fRVJST1IpOwotfQotCi0KLS8qCi0gKiBIYW5kbGUgdGhlICJhZGQiIGNvbW1hbmQsIHdoaWNoIHdhbnRzIHRvIGFkZCBmaWxlcyB0byBhIG5ldyBvcgotICogcHJlLWV4aXN0aW5nIGFyY2hpdmUuCi0gKi8KLWludCBkb0FkZChCdW5kbGUqIGJ1bmRsZSkKLXsKLSAgICBaaXBGaWxlKiB6aXAgPSBOVUxMOwotICAgIHN0YXR1c190IHJlc3VsdCA9IFVOS05PV05fRVJST1I7Ci0gICAgY29uc3QgY2hhciogemlwRmlsZU5hbWU7Ci0KLSAgICBpZiAoYnVuZGxlLT5nZXRVcGRhdGUoKSkgewotICAgICAgICAvKiBhdm9pZCBjb25mdXNpb24gKi8KLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogY2FuJ3QgdXNlICctdScgd2l0aCBhZGRcbiIpOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgaWYgKGJ1bmRsZS0+Z2V0RmlsZVNwZWNDb3VudCgpIDwgMSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBtdXN0IHNwZWNpZnkgemlwIGZpbGUgbmFtZVxuIik7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0gICAgemlwRmlsZU5hbWUgPSBidW5kbGUtPmdldEZpbGVTcGVjRW50cnkoMCk7Ci0KLSAgICBpZiAoYnVuZGxlLT5nZXRGaWxlU3BlY0NvdW50KCkgPCAyKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiTk9URTogbm90aGluZyB0byBkb1xuIik7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICB6aXAgPSBvcGVuUmVhZFdyaXRlKHppcEZpbGVOYW1lLCB0cnVlKTsKLSAgICBpZiAoemlwID09IE5VTEwpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogZmFpbGVkIG9wZW5pbmcvY3JlYXRpbmcgJyVzJyBhcyBaaXAgZmlsZVxuIiwgemlwRmlsZU5hbWUpOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgZm9yIChpbnQgaSA9IDE7IGkgPCBidW5kbGUtPmdldEZpbGVTcGVjQ291bnQoKTsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGZpbGVOYW1lID0gYnVuZGxlLT5nZXRGaWxlU3BlY0VudHJ5KGkpOwotCi0gICAgICAgIGlmIChzdHJjYXNlY21wKFN0cmluZzgoZmlsZU5hbWUpLmdldFBhdGhFeHRlbnNpb24oKS5zdHJpbmcoKSwgIi5neiIpID09IDApIHsKLSAgICAgICAgICAgIHByaW50ZigiICclcycuLi4gKGZyb20gZ3ppcClcbiIsIGZpbGVOYW1lKTsKLSAgICAgICAgICAgIHJlc3VsdCA9IHppcC0+YWRkR3ppcChmaWxlTmFtZSwgU3RyaW5nOChmaWxlTmFtZSkuZ2V0QmFzZVBhdGgoKS5zdHJpbmcoKSwgTlVMTCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoYnVuZGxlLT5nZXRKdW5rUGF0aCgpKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nOCBzdG9yYWdlTmFtZSA9IFN0cmluZzgoZmlsZU5hbWUpLmdldFBhdGhMZWFmKCk7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCIgJyVzJyBhcyAnJXMnLi4uXG4iLCBmaWxlTmFtZSwgc3RvcmFnZU5hbWUuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHppcC0+YWRkKGZpbGVOYW1lLCBzdG9yYWdlTmFtZS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidW5kbGUtPmdldENvbXByZXNzaW9uTWV0aG9kKCksIE5VTEwpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwcmludGYoIiAnJXMnLi4uXG4iLCBmaWxlTmFtZSk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gemlwLT5hZGQoZmlsZU5hbWUsIGJ1bmRsZS0+Z2V0Q29tcHJlc3Npb25NZXRob2QoKSwgTlVMTCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdCAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gYWRkICclcycgdG8gJyVzJyIsIGJ1bmRsZS0+Z2V0RmlsZVNwZWNFbnRyeShpKSwgemlwRmlsZU5hbWUpOwotICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBOQU1FX05PVF9GT1VORCkKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIjogZmlsZSBub3QgZm91bmRcbiIpOwotICAgICAgICAgICAgZWxzZSBpZiAocmVzdWx0ID09IEFMUkVBRFlfRVhJU1RTKQotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiOiBhbHJlYWR5IGV4aXN0cyBpbiBhcmNoaXZlXG4iKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXN1bHQgPSBOT19FUlJPUjsKLQotYmFpbDoKLSAgICBkZWxldGUgemlwOwotICAgIHJldHVybiAocmVzdWx0ICE9IE5PX0VSUk9SKTsKLX0KLQotCi0vKgotICogRGVsZXRlIGZpbGVzIGZyb20gYW4gZXhpc3RpbmcgYXJjaGl2ZS4KLSAqLwotaW50IGRvUmVtb3ZlKEJ1bmRsZSogYnVuZGxlKQotewotICAgIFppcEZpbGUqIHppcCA9IE5VTEw7Ci0gICAgc3RhdHVzX3QgcmVzdWx0ID0gVU5LTk9XTl9FUlJPUjsKLSAgICBjb25zdCBjaGFyKiB6aXBGaWxlTmFtZTsKLQotICAgIGlmIChidW5kbGUtPmdldEZpbGVTcGVjQ291bnQoKSA8IDEpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogbXVzdCBzcGVjaWZ5IHppcCBmaWxlIG5hbWVcbiIpOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotICAgIHppcEZpbGVOYW1lID0gYnVuZGxlLT5nZXRGaWxlU3BlY0VudHJ5KDApOwotCi0gICAgaWYgKGJ1bmRsZS0+Z2V0RmlsZVNwZWNDb3VudCgpIDwgMikgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk5PVEU6IG5vdGhpbmcgdG8gZG9cbiIpOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgemlwID0gb3BlblJlYWRXcml0ZSh6aXBGaWxlTmFtZSwgZmFsc2UpOwotICAgIGlmICh6aXAgPT0gTlVMTCkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBmYWlsZWQgb3BlbmluZyBaaXAgYXJjaGl2ZSAnJXMnXG4iLAotICAgICAgICAgICAgemlwRmlsZU5hbWUpOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgZm9yIChpbnQgaSA9IDE7IGkgPCBidW5kbGUtPmdldEZpbGVTcGVjQ291bnQoKTsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGZpbGVOYW1lID0gYnVuZGxlLT5nZXRGaWxlU3BlY0VudHJ5KGkpOwotICAgICAgICBaaXBFbnRyeSogZW50cnk7Ci0KLSAgICAgICAgZW50cnkgPSB6aXAtPmdldEVudHJ5QnlOYW1lKGZpbGVOYW1lKTsKLSAgICAgICAgaWYgKGVudHJ5ID09IE5VTEwpIHsKLSAgICAgICAgICAgIHByaW50ZigiICclcycgTk9UIEZPVU5EXG4iLCBmaWxlTmFtZSk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJlc3VsdCA9IHppcC0+cmVtb3ZlKGVudHJ5KTsKLQotICAgICAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBkZWxldGUgJyVzJyBmcm9tICclcydcbiIsCi0gICAgICAgICAgICAgICAgYnVuZGxlLT5nZXRGaWxlU3BlY0VudHJ5KGkpLCB6aXBGaWxlTmFtZSk7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiB1cGRhdGUgdGhlIGFyY2hpdmUgKi8KLSAgICB6aXAtPmZsdXNoKCk7Ci0KLWJhaWw6Ci0gICAgZGVsZXRlIHppcDsKLSAgICByZXR1cm4gKHJlc3VsdCAhPSBOT19FUlJPUik7Ci19Ci0KLQotLyoKLSAqIFBhY2thZ2UgdXAgYW4gYXNzZXQgZGlyZWN0b3J5IGFuZCBhc3NvY2lhdGVkIGFwcGxpY2F0aW9uIGZpbGVzLgotICovCi1pbnQgZG9QYWNrYWdlKEJ1bmRsZSogYnVuZGxlKQotewotICAgIGNvbnN0IGNoYXIqIG91dHB1dEFQS0ZpbGU7Ci0gICAgaW50IHJldFZhbCA9IDE7Ci0gICAgc3RhdHVzX3QgZXJyOwotICAgIHNwPEFhcHRBc3NldHM+IGFzc2V0czsKLSAgICBpbnQgTjsKLSAgICBGSUxFKiBmcDsKLSAgICBTdHJpbmc4IGRlcGVuZGVuY3lGaWxlOwotCi0gICAgLy8gLWMgenpfWlogbWVhbnMgZG8gcHNldWRvbG9jYWxpemF0aW9uCi0gICAgUmVzb3VyY2VGaWx0ZXIgZmlsdGVyOwotICAgIGVyciA9IGZpbHRlci5wYXJzZShidW5kbGUtPmdldENvbmZpZ3VyYXRpb25zKCkpOwotICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLSAgICBpZiAoZmlsdGVyLmNvbnRhaW5zUHNldWRvKCkpIHsKLSAgICAgICAgYnVuZGxlLT5zZXRQc2V1ZG9sb2NhbGl6ZSh0cnVlKTsKLSAgICB9Ci0KLSAgICBOID0gYnVuZGxlLT5nZXRGaWxlU3BlY0NvdW50KCk7Ci0gICAgaWYgKE4gPCAxICYmIGJ1bmRsZS0+Z2V0UmVzb3VyY2VTb3VyY2VEaXJzKCkuc2l6ZSgpID09IDAgJiYgYnVuZGxlLT5nZXRKYXJGaWxlcygpLnNpemUoKSA9PSAwCi0gICAgICAgICAgICAmJiBidW5kbGUtPmdldEFuZHJvaWRNYW5pZmVzdEZpbGUoKSA9PSBOVUxMICYmIGJ1bmRsZS0+Z2V0QXNzZXRTb3VyY2VEaXIoKSA9PSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IG5vIGlucHV0IGZpbGVzXG4iKTsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIG91dHB1dEFQS0ZpbGUgPSBidW5kbGUtPmdldE91dHB1dEFQS0ZpbGUoKTsKLQotICAgIC8vIE1ha2Ugc3VyZSB0aGUgZmlsZW5hbWVzIHByb3ZpZGVkIGV4aXN0IGFuZCBhcmUgb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUuCi0gICAgaWYgKG91dHB1dEFQS0ZpbGUpIHsKLSAgICAgICAgRmlsZVR5cGUgdHlwZTsKLSAgICAgICAgdHlwZSA9IGdldEZpbGVUeXBlKG91dHB1dEFQS0ZpbGUpOwotICAgICAgICBpZiAodHlwZSAhPSBrRmlsZVR5cGVOb25leGlzdGVudCAmJiB0eXBlICE9IGtGaWxlVHlwZVJlZ3VsYXIpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAgICAgICAgICJFUlJPUjogb3V0cHV0IGZpbGUgJyVzJyBleGlzdHMgYnV0IGlzIG5vdCByZWd1bGFyIGZpbGVcbiIsCi0gICAgICAgICAgICAgICAgb3V0cHV0QVBLRmlsZSk7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBMb2FkIHRoZSBhc3NldHMuCi0gICAgYXNzZXRzID0gbmV3IEFhcHRBc3NldHMoKTsKLQotICAgIC8vIFNldCB1cCB0aGUgcmVzb3VyY2UgZ2F0aGVyaW5nIGluIGFzc2V0cyBpZiB3ZSdyZSBnb2luZyB0byBnZW5lcmF0ZQotICAgIC8vIGRlcGVuZGVuY3kgZmlsZXMuIEV2ZXJ5IHRpbWUgd2UgZW5jb3VudGVyIGEgcmVzb3VyY2Ugd2hpbGUgc2x1cnBpbmcKLSAgICAvLyB0aGUgdHJlZSwgd2UnbGwgYWRkIGl0IHRvIHRoZXNlIHN0b3JlcyBzbyB3ZSBoYXZlIGZ1bGwgcmVzb3VyY2UgcGF0aHMKLSAgICAvLyB0byB3cml0ZSB0byBhIGRlcGVuZGVuY3kgZmlsZS4KLSAgICBpZiAoYnVuZGxlLT5nZXRHZW5EZXBlbmRlbmNpZXMoKSkgewotICAgICAgICBzcDxGaWxlUGF0aFN0b3JlPiByZXNQYXRoU3RvcmUgPSBuZXcgRmlsZVBhdGhTdG9yZTsKLSAgICAgICAgYXNzZXRzLT5zZXRGdWxsUmVzUGF0aHMocmVzUGF0aFN0b3JlKTsKLSAgICAgICAgc3A8RmlsZVBhdGhTdG9yZT4gYXNzZXRQYXRoU3RvcmUgPSBuZXcgRmlsZVBhdGhTdG9yZTsKLSAgICAgICAgYXNzZXRzLT5zZXRGdWxsQXNzZXRQYXRocyhhc3NldFBhdGhTdG9yZSk7Ci0gICAgfQotCi0gICAgZXJyID0gYXNzZXRzLT5zbHVycEZyb21BcmdzKGJ1bmRsZSk7Ci0gICAgaWYgKGVyciA8IDApIHsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIGlmIChidW5kbGUtPmdldFZlcmJvc2UoKSkgewotICAgICAgICBhc3NldHMtPnByaW50KFN0cmluZzgoKSk7Ci0gICAgfQotCi0gICAgLy8gSWYgdGhleSBhc2tlZCBmb3IgYW55IGZpbGVBcyB0aGF0IG5lZWQgdG8gYmUgY29tcGlsZWQsIGRvIHNvLgotICAgIGlmIChidW5kbGUtPmdldFJlc291cmNlU291cmNlRGlycygpLnNpemUoKSB8fCBidW5kbGUtPmdldEFuZHJvaWRNYW5pZmVzdEZpbGUoKSkgewotICAgICAgICBlcnIgPSBidWlsZFJlc291cmNlcyhidW5kbGUsIGFzc2V0cyk7Ci0gICAgICAgIGlmIChlcnIgIT0gMCkgewotICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gQXQgdGhpcyBwb2ludCB3ZSd2ZSByZWFkIGV2ZXJ5dGhpbmcgYW5kIHByb2Nlc3NlZCBldmVyeXRoaW5nLiAgRnJvbSBoZXJlCi0gICAgLy8gb24gb3V0IGl0J3MganVzdCB3cml0aW5nIG91dHB1dCBmaWxlcy4KLSAgICBpZiAoU291cmNlUG9zOjpoYXNFcnJvcnMoKSkgewotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgLy8gVXBkYXRlIHN5bWJvbHMgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCB3aGljaCBvbmVzIGFyZSBuZWVkZWQgYXMgSmF2YSBzeW1ib2xzLgotICAgIGFzc2V0cy0+YXBwbHlKYXZhU3ltYm9scygpOwotICAgIGlmIChTb3VyY2VQb3M6Omhhc0Vycm9ycygpKSB7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICAvLyBJZiB3ZSd2ZSBiZWVuIGFza2VkIHRvIGdlbmVyYXRlIGEgZGVwZW5kZW5jeSBmaWxlLCBkbyB0aGF0IGhlcmUKLSAgICBpZiAoYnVuZGxlLT5nZXRHZW5EZXBlbmRlbmNpZXMoKSkgewotICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBwYWNrYWdpbmcgc3RlcCwgZ2VuZXJhdGUgdGhlIGRlcGVuZGVuY3kgZmlsZSBuZXh0IHRvCi0gICAgICAgIC8vIHRoZSBvdXRwdXQgYXBrIChlLmcuIGJpbi9yZXNvdXJjZXMuYXBfLmQpCi0gICAgICAgIGlmIChvdXRwdXRBUEtGaWxlKSB7Ci0gICAgICAgICAgICBkZXBlbmRlbmN5RmlsZSA9IFN0cmluZzgob3V0cHV0QVBLRmlsZSk7Ci0gICAgICAgICAgICAvLyBBZGQgdGhlIC5kIGV4dGVuc2lvbiB0byB0aGUgZGVwZW5kZW5jeSBmaWxlLgotICAgICAgICAgICAgZGVwZW5kZW5jeUZpbGUuYXBwZW5kKCIuZCIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gRWxzZSBpZiB0aGlzIGlzIHRoZSBSLmphdmEgZGVwZW5kZW5jeSBnZW5lcmF0aW9uIHN0ZXAsCi0gICAgICAgICAgICAvLyBnZW5lcmF0ZSB0aGUgZGVwZW5kZW5jeSBmaWxlIGluIHRoZSBSLmphdmEgcGFja2FnZSBzdWJkaXJlY3RvcnkKLSAgICAgICAgICAgIC8vIGUuZy4gZ2VuL2NvbS9mb28vYXBwL1IuamF2YS5kCi0gICAgICAgICAgICBkZXBlbmRlbmN5RmlsZSA9IFN0cmluZzgoYnVuZGxlLT5nZXRSQ2xhc3NEaXIoKSk7Ci0gICAgICAgICAgICBkZXBlbmRlbmN5RmlsZS5hcHBlbmRQYXRoKCJSLmphdmEuZCIpOwotICAgICAgICB9Ci0gICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGEgY2xlYW4gZGVwZW5kZW5jeSBmaWxlIHRvIHN0YXJ0IHdpdGgKLSAgICAgICAgZnAgPSBmb3BlbihkZXBlbmRlbmN5RmlsZSwgInciKTsKLSAgICAgICAgZmNsb3NlKGZwKTsKLSAgICB9Ci0KLSAgICAvLyBXcml0ZSBvdXQgUi5qYXZhIGNvbnN0YW50cwotICAgIGlmICghYXNzZXRzLT5oYXZlUHJpdmF0ZVN5bWJvbHMoKSkgewotICAgICAgICBpZiAoYnVuZGxlLT5nZXRDdXN0b21QYWNrYWdlKCkgPT0gTlVMTCkgewotICAgICAgICAgICAgLy8gV3JpdGUgdGhlIFIuamF2YSBmaWxlIGludG8gdGhlIGFwcHJvcHJpYXRlIGNsYXNzIGRpcmVjdG9yeQotICAgICAgICAgICAgLy8gZS5nLiBnZW4vY29tL2Zvby9hcHAvUi5qYXZhCi0gICAgICAgICAgICBlcnIgPSB3cml0ZVJlc291cmNlU3ltYm9scyhidW5kbGUsIGFzc2V0cywgYXNzZXRzLT5nZXRQYWNrYWdlKCksIHRydWUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29uc3QgU3RyaW5nOCBjdXN0b21Qa2coYnVuZGxlLT5nZXRDdXN0b21QYWNrYWdlKCkpOwotICAgICAgICAgICAgZXJyID0gd3JpdGVSZXNvdXJjZVN5bWJvbHMoYnVuZGxlLCBhc3NldHMsIGN1c3RvbVBrZywgdHJ1ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGVyciA8IDApIHsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotICAgICAgICAvLyBJZiB3ZSBoYXZlIGxpYnJhcnkgZmlsZXMsIHdlJ3JlIGdvaW5nIHRvIHdyaXRlIG91ciBSLmphdmEgZmlsZSBpbnRvCi0gICAgICAgIC8vIHRoZSBhcHByb3ByaWF0ZSBjbGFzcyBkaXJlY3RvcnkgZm9yIHRob3NlIGxpYnJhcmllcyBhcyB3ZWxsLgotICAgICAgICAvLyBlLmcuIGdlbi9jb20vZm9vL2FwcC9saWIvUi5qYXZhCi0gICAgICAgIGlmIChidW5kbGUtPmdldEV4dHJhUGFja2FnZXMoKSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAvLyBTcGxpdCBvbiBjb2xvbgotICAgICAgICAgICAgU3RyaW5nOCBsaWJzKGJ1bmRsZS0+Z2V0RXh0cmFQYWNrYWdlcygpKTsKLSAgICAgICAgICAgIGNoYXIqIHBhY2thZ2VTdHJpbmcgPSBzdHJ0b2sobGlicy5sb2NrQnVmZmVyKGxpYnMubGVuZ3RoKCkpLCAiOiIpOwotICAgICAgICAgICAgd2hpbGUgKHBhY2thZ2VTdHJpbmcgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIC8vIFdyaXRlIHRoZSBSLmphdmEgZmlsZSBvdXQgd2l0aCB0aGUgY29ycmVjdCBwYWNrYWdlIG5hbWUKLSAgICAgICAgICAgICAgICBlcnIgPSB3cml0ZVJlc291cmNlU3ltYm9scyhidW5kbGUsIGFzc2V0cywgU3RyaW5nOChwYWNrYWdlU3RyaW5nKSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGVyciA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwYWNrYWdlU3RyaW5nID0gc3RydG9rKE5VTEwsICI6Iik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBsaWJzLnVubG9ja0J1ZmZlcigpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZXJyID0gd3JpdGVSZXNvdXJjZVN5bWJvbHMoYnVuZGxlLCBhc3NldHMsIGFzc2V0cy0+Z2V0UGFja2FnZSgpLCBmYWxzZSk7Ci0gICAgICAgIGlmIChlcnIgPCAwKSB7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLSAgICAgICAgZXJyID0gd3JpdGVSZXNvdXJjZVN5bWJvbHMoYnVuZGxlLCBhc3NldHMsIGFzc2V0cy0+Z2V0U3ltYm9sc1ByaXZhdGVQYWNrYWdlKCksIHRydWUpOwotICAgICAgICBpZiAoZXJyIDwgMCkgewotICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gV3JpdGUgb3V0IHRoZSBQcm9HdWFyZCBmaWxlCi0gICAgZXJyID0gd3JpdGVQcm9ndWFyZEZpbGUoYnVuZGxlLCBhc3NldHMpOwotICAgIGlmIChlcnIgPCAwKSB7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICAvLyBXcml0ZSB0aGUgYXBrCi0gICAgaWYgKG91dHB1dEFQS0ZpbGUpIHsKLSAgICAgICAgZXJyID0gd3JpdGVBUEsoYnVuZGxlLCBhc3NldHMsIFN0cmluZzgob3V0cHV0QVBLRmlsZSkpOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBwYWNrYWdpbmcgb2YgJyVzJyBmYWlsZWRcbiIsIG91dHB1dEFQS0ZpbGUpOwotICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gSWYgd2UndmUgYmVlbiBhc2tlZCB0byBnZW5lcmF0ZSBhIGRlcGVuZGVuY3kgZmlsZSwgd2UgbmVlZCB0byBmaW5pc2ggdXAgaGVyZS4KLSAgICAvLyB0aGUgd3JpdGVSZXNvdXJjZVN5bWJvbHMgYW5kIHdyaXRlQVBLIGZ1bmN0aW9ucyBoYXZlIGFscmVhZHkgd3JpdHRlbiB0aGUgdGFyZ2V0Ci0gICAgLy8gaGFsZiBvZiB0aGUgZGVwZW5kZW5jeSBmaWxlLCBub3cgd2UgbmVlZCB0byB3cml0ZSB0aGUgcHJlcmVxdWlzaXRlcy4gKGZpbGVzIHRoYXQKLSAgICAvLyB0aGUgUi5qYXZhIGZpbGUgb3IgLmFwXyBmaWxlIGRlcGVuZCBvbikKLSAgICBpZiAoYnVuZGxlLT5nZXRHZW5EZXBlbmRlbmNpZXMoKSkgewotICAgICAgICAvLyBOb3cgdGhhdCB3cml0ZVJlc291cmNlU3ltYm9scyBvciB3cml0ZUFQSyBoYXMgdGFrZW4gY2FyZSBvZiB3cml0aW5nCi0gICAgICAgIC8vIHRoZSB0YXJnZXRzIHRvIG91ciBkZXBlbmRlbmN5IGZpbGUsIHdlJ2xsIHdyaXRlIHRoZSBwcmVyZXFzCi0gICAgICAgIGZwID0gZm9wZW4oZGVwZW5kZW5jeUZpbGUsICJhKyIpOwotICAgICAgICBmcHJpbnRmKGZwLCAiIDogIik7Ci0gICAgICAgIGJvb2wgaW5jbHVkZVJhdyA9IChvdXRwdXRBUEtGaWxlICE9IE5VTEwpOwotICAgICAgICBlcnIgPSB3cml0ZURlcGVuZGVuY3lQcmVSZXFzKGJ1bmRsZSwgYXNzZXRzLCBmcCwgaW5jbHVkZVJhdyk7Ci0gICAgICAgIC8vIEFsc28gbWFudWFsbHkgYWRkIHRoZSBBbmRyb2lkTWFuaWZlc2V0IHNpbmNlIGl0J3Mgbm90IHVuZGVyIHJlcy8gb3IgYXNzZXRzLwotICAgICAgICAvLyBhbmQgdGhlcmVmb3JlIHdhcyBub3QgYWRkZWQgdG8gb3VyIHBhdGhzdG9yZXMgZHVyaW5nIHNsdXJwaW5nCi0gICAgICAgIGZwcmludGYoZnAsICIlcyBcXFxuIiwgYnVuZGxlLT5nZXRBbmRyb2lkTWFuaWZlc3RGaWxlKCkpOwotICAgICAgICBmY2xvc2UoZnApOwotICAgIH0KLQotICAgIHJldFZhbCA9IDA7Ci1iYWlsOgotICAgIGlmIChTb3VyY2VQb3M6Omhhc0Vycm9ycygpKSB7Ci0gICAgICAgIFNvdXJjZVBvczo6cHJpbnRFcnJvcnMoc3RkZXJyKTsKLSAgICB9Ci0gICAgcmV0dXJuIHJldFZhbDsKLX0KLQotLyoKLSAqIERvIFBORyBDcnVuY2hpbmcKLSAqIFBSRUNPTkRJVElPTlMKLSAqICAtUyBmbGFnIHBvaW50cyB0byBhIHNvdXJjZSBkaXJlY3RvcnkgY29udGFpbmluZyBkcmF3YWJsZSogZm9sZGVycwotICogIC1DIGZsYWcgcG9pbnRzIHRvIGRlc3RpbmF0aW9uIGRpcmVjdG9yeS4gVGhlIGZvbGRlciBzdHJ1Y3R1cmUgaW4gdGhlCi0gKiAgICAgc291cmNlIGRpcmVjdG9yeSB3aWxsIGJlIG1pcnJvcmVkIHRvIHRoZSBkZXN0aW5hdGlvbiAoY2FjaGUpIGRpcmVjdG9yeQotICoKLSAqIFBPU1RDT05ESVRJT05TCi0gKiAgRGVzdGluYXRpb24gZGlyZWN0b3J5IHdpbGwgYmUgdXBkYXRlZCB0byBtYXRjaCB0aGUgUE5HIGZpbGVzIGluCi0gKiAgdGhlIHNvdXJjZSBkaXJlY3RvcnkuIAotICovCi1pbnQgZG9DcnVuY2goQnVuZGxlKiBidW5kbGUpCi17Ci0gICAgZnByaW50ZihzdGRvdXQsICJDcnVuY2hpbmcgUE5HIEZpbGVzIGluICIpOwotICAgIGZwcmludGYoc3Rkb3V0LCAic291cmNlIGRpcjogJXNcbiIsIGJ1bmRsZS0+Z2V0UmVzb3VyY2VTb3VyY2VEaXJzKClbMF0pOwotICAgIGZwcmludGYoc3Rkb3V0LCAiVG8gZGVzdGluYXRpb24gZGlyOiAlc1xuIiwgYnVuZGxlLT5nZXRDcnVuY2hlZE91dHB1dERpcigpKTsKLQotICAgIHVwZGF0ZVByZVByb2Nlc3NlZENhY2hlKGJ1bmRsZSk7Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLS8qCi0gKiBEbyBQTkcgQ3J1bmNoaW5nIG9uIGEgc2luZ2xlIGZsYWcKLSAqICAtaSBwb2ludHMgdG8gYSBzaW5nbGUgcG5nIGZpbGUKLSAqICAtbyBwb2ludHMgdG8gYSBzaW5nbGUgcG5nIG91dHB1dCBmaWxlCi0gKi8KLWludCBkb1NpbmdsZUNydW5jaChCdW5kbGUqIGJ1bmRsZSkKLXsKLSAgICBmcHJpbnRmKHN0ZG91dCwgIkNydW5jaGluZyBzaW5nbGUgUE5HIGZpbGU6ICVzXG4iLCBidW5kbGUtPmdldFNpbmdsZUNydW5jaElucHV0RmlsZSgpKTsKLSAgICBmcHJpbnRmKHN0ZG91dCwgIlx0T3V0cHV0IGZpbGU6ICVzXG4iLCBidW5kbGUtPmdldFNpbmdsZUNydW5jaE91dHB1dEZpbGUoKSk7Ci0KLSAgICBTdHJpbmc4IGlucHV0KGJ1bmRsZS0+Z2V0U2luZ2xlQ3J1bmNoSW5wdXRGaWxlKCkpOwotICAgIFN0cmluZzggb3V0cHV0KGJ1bmRsZS0+Z2V0U2luZ2xlQ3J1bmNoT3V0cHV0RmlsZSgpKTsKLQotICAgIGlmIChwcmVQcm9jZXNzSW1hZ2VUb0NhY2hlKGJ1bmRsZSwgaW5wdXQsIG91dHB1dCkgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgLy8gd2UgY2FuJ3QgcmV0dXJuIHRoZSBzdGF0dXNfdCBhcyBpdCBnZXRzIHRydW5jYXRlIHRvIHRoZSBsb3dlciA4IGJpdHMuCi0gICAgICAgIHJldHVybiA0MjsKLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLWNoYXIgQ09OU09MRV9EQVRBWzI5MjVdID0gewotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDk1LCA0NiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAxMCwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDYxLCA2MywKLSAgICA4NiwgMzUsIDQwLCA0NiwgNDYsIDk1LCA5NSwgOTUsIDk1LCA5NywgOTcsIDQ0LCAzMiwgNDYsIDEyNCwgNDIsIDMzLCA4MywKLSAgICA2MiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDEwLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDU4LCA0NiwgNTgsIDU5LCA2MSwgNTksIDYxLCA4MSwKLSAgICA4MSwgODEsIDgxLCA2NiwgOTYsIDYxLCA2MSwgNTgsIDQ2LCA0NiwgNDYsIDU4LCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMTAsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCA0NiwgNjEsIDU5LCA1OSwgNTksIDU4LCAxMDYsIDgxLCA4MSwgODEsIDgxLCAxMDIsIDU5LCA2MSwgNTksCi0gICAgNTksIDYxLCA2MSwgNjEsIDU4LCA0NiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMTAsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDYxLCA1OSwgNTksCi0gICAgNTksIDU4LCAxMDksIDgxLCA4MSwgODEsIDgxLCA2MSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OCwgNTksIDU5LCA0NiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAxMCwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCA0NiwgNjEsIDU5LCA1OSwgNTksIDYwLCA4MSwgODEsIDgxLCA4MSwgODcsCi0gICAgNTgsIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDYxLCAxMTksIDQ0LCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAxMCwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDQ2LAotICAgIDQ3LCA2MSwgNTksIDU5LCA1OCwgMTAwLCA4MSwgODEsIDgxLCA4MSwgMzUsIDU4LCA1OSwgNTksIDU5LCA1OSwgNTksIDU4LAotICAgIDEyMSwgODEsIDkxLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAxMCwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDQ2LCAxMDksIDU4LCA1OSwgNTksIDYxLCA4MSwgODEsCi0gICAgODEsIDgxLCA4MSwgMTA5LCA1OCwgNTksIDU5LCA1OSwgNTksIDYxLCAxMDksIDgxLCA4MSwgNzYsIDQ2LCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDEwLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCA0MSwgODcsIDU5LCA2MSwgNTksIDQxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA1OSwgNjEsIDU5LAotICAgIDU5LCA1OCwgMTA5LCA4MSwgODEsIDg3LCAzOSwgNDYsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMTAsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCA2MCwgODEsIDkxLCA1OSwKLSAgICA1OSwgNjEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODcsIDQzLCA1OSwgNTgsIDU5LCA2MCwgODEsIDgxLCA4MSwgNzYsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDEwLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDUyLCA5MSwgNTgsIDQ1LCA1OSwgODcsIDgxLCA4MSwgODEsIDgxLAotICAgIDcwLCA1OCwgNTgsIDU4LCA1OSwgMTA2LCA4MSwgODEsIDgxLCA5MSwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDEwLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgOTMsIDQwLCAzMiwgNDYsIDU5LCAxMDAsIDgxLCA4MSwgODEsIDgxLCA0MCwgNTgsIDQ2LCA0NiwgNTgsIDEwMCwgODEsCi0gICAgODEsIDY4LCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDEwLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCA0NiwgNDYsIDQ2LCAzMiwgNDYsIDQ2LCA0NiwgMzIsIDQ2LCAzMiwgNDYsIDQ1LCA5MSwgNTksIDYxLCA1OCwgMTA5LAotICAgIDgxLCA4MSwgODEsIDg3LCA0NiwgNTgsIDYxLCA1OSwgNjAsIDgxLCA4MSwgODAsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDEwLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgNDYsIDQ2LCA2MSwgNTksIDYxLCA2MSwgNjEsIDU5LCA2MSwgNjEsIDU5LAotICAgIDU5LCA1OSwgNTgsIDU4LCA0NiwgNDYsIDQxLCA1OCwgNTksIDU4LCA4MSwgODEsIDgxLCA4MSwgNjksIDU4LCA1OSwgNTksCi0gICAgNjAsIDgxLCA4MSwgNjgsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAxMCwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgNTgsIDU5LAotICAgIDYxLCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDYxLCA2MSwgNDYsCi0gICAgNjEsIDU5LCA5MywgODEsIDgxLCA4MSwgODEsIDEwNywgNTgsIDU5LCA1OCwgMTA5LCA4NywgNjgsIDk2LCAzMiwgMzIsIDMyLAotICAgIDQ2LCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAxMCwgMzIsIDMyLCAzMiwgNDYsIDYwLCA2MSwgNjEsIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwKLSAgICA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OCwgNTgsIDU4LCAxMTUsIDEwOSwgNjgsIDQxLCAzNiwgODEsCi0gICAgMTA5LCA0NiwgNjEsIDYxLCA4MSwgNjksIDk2LCA0NiwgNTgsIDU4LCA0NiwgNTgsIDQ2LCA0NiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDEwLCA0NiwgMzIsIDk1LCA4MSwKLSAgICA2NywgNjEsIDYxLCA1OCwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LAotICAgIDU5LCA1OSwgNTksIDU5LCA1OCwgNjgsIDM5LCA2MSwgMTA1LCA2MSwgNjMsIDgxLCAxMTksIDU4LCAxMDYsIDgwLCAzMiwgNTgsCi0gICAgNjEsIDU5LCA1OSwgNjEsIDU5LCA2MSwgNTksIDYxLCA0NiwgOTUsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAxMCwgMzIsIDMyLCAzNiwgODEsIDEwOSwgMTA1LCA1OSwgNjEsIDU5LCA1OSwgNTksCi0gICAgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNDYsIDU4LCAzNywKLSAgICA3MywgMTA4LCAxMDgsIDYyLCA1MiwgODEsIDEwOSwgMzQsIDMyLCA2MSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LAotICAgIDU5LCA2MSwgNTksIDYxLCA2MSwgNDYsIDQ2LCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMTAsCi0gICAgMzIsIDQ2LCA0NSwgNTcsIDEwMSwgNDMsIDQzLCA2MSwgNjEsIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDYxLCA1OSwgNTksCi0gICAgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU4LCA5NywgNDYsIDYxLCAxMDgsIDYyLCAxMjYsIDU4LCAxMDYsIDgwLCA5NiwKLSAgICA0NiwgNjEsIDYxLCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNjEsIDYxLAotICAgIDk3LCAxMDMsIDk3LCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMTAsIDMyLCAzMiwgMzIsIDMyLCA0NSwgNDYsIDMyLAotICAgIDQ2LCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDQ1LCA0NSwgNDUsIDU4LCA1OSwgNTksIDU5LCA1OSwgNjEsCi0gICAgMTE5LCA4MSwgOTcsIDEyNCwgMTA1LCAxMjQsIDEyNCwgMzksIDEyNiwgOTUsIDExOSwgNTgsIDYxLCA1OCwgNTksIDU5LCA1OSwKLSAgICA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDYxLCAxMTksIDgxLCA4MSwgOTksIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMTAsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCA1OCwgNTksIDU5LCA1OCwgMTA2LCA4MSwgODEsIDgxLCAxMDksIDExOSwKLSAgICAxMTksIDExOSwgMTA5LCAxMDksIDgxLCA4MSwgMTIyLCA1OCwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwKLSAgICA1OSwgNTksIDU5LCA1OSwgNTksIDU4LCAxMTUsIDgxLCA4NywgODEsIDEwMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMTAsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDYxLCA1OCwgNTksIDYxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4NywgODcsIDgxLCA4MSwgODEsIDgxLAotICAgIDgxLCA1OCwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OCwgNDUsIDQ1LCA0NSwgNTksIDU5LCA1OSwgNDEsCi0gICAgODcsIDY2LCAzMywgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDEwLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgNTgsIDU5LCA1OSwgOTMsIDgxLAotICAgIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDQwLCA1OCwgNTksIDU5LCA1OSwgNTgsCi0gICAgNDUsIDMyLCA0NiwgMzIsIDMyLCAzMiwgMzIsIDMyLCA0NiwgMzIsIDEyNiwgOTYsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMTAsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCA1OCwgNjEsIDU5LCA1OCwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLAotICAgIDgxLCA4MSwgODEsIDgxLCA4MSwgNDAsIDU4LCA1OSwgNTksIDU5LCA1OCwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAxMCwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDU4LAotICAgIDU5LCA1OSwgNTgsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA0MCwgNTgsCi0gICAgNTksIDU5LCA1OSwgNDYsIDQ2LCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMTAsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCA1OCwgNjEsIDU5LCA2MCwgODEsIDgxLCA4MSwgODEsCi0gICAgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgNTksIDYxLCA1OSwgNTksIDYxLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDEwLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgNTgsIDU5LCA1OSwgOTMsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwKLSAgICA4MSwgODEsIDQwLCA1OSwgNTksIDU5LCA1OSwgMzIsIDQ2LCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMTAsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCA1OCwgNjEsIDU4LCAxMDYsCi0gICAgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDc2LCA1OCwgNTksIDU5LCA1OSwKLSAgICAzMiwgNDYsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAxMCwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDYxLCA1OCwgNTgsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwKLSAgICA4MSwgODEsIDgxLCA4MSwgODEsIDg3LCA1OCwgNTksIDU5LCA1OSwgNTksIDMyLCA0NiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDEwLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICA1OCwgNTksIDYxLCA0MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODcsIDU5LAotICAgIDYxLCA1OCwgNTksIDU5LCA0NiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAxMCwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDU4LCA2MSwgNTgsIDYxLCA4MSwgODEsIDgxLAotICAgIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDEwNywgNTgsIDU5LCA1OSwgNTksIDU5LCA1OCwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDEwLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgNTgsIDU5LCA1OSwgNTgsIDUxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLAotICAgIDgxLCAxMDIsIDk0LCA1OSwgNTksIDU5LCA1OSwgNTksIDYxLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDEwLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgNTgsIDYxLCA1OSwKLSAgICA1OSwgNTksIDQzLCA2MywgMzYsIDgxLCA4MSwgODEsIDg3LCA2NCwgODYsIDEwMiwgNTgsIDU5LCA1OSwgNTksIDU5LCA1OSwKLSAgICA1OSwgNTksIDQ2LCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMTAsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDQ2LCA2MSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDQzLCAzMywKLSAgICA1OCwgMTI2LCAxMjYsIDU4LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgMzIsIDQ2LCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDEwLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDQ2LAotICAgIDYxLCA1OSwgNTksIDU5LCA1OCwgNDUsIDU4LCA2MSwgNTksIDU4LCA1OCwgNTgsIDYxLCA1OSwgNTksIDU5LCA1OSwgNTksCi0gICAgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU4LCAzMiwgNDYsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAxMCwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDQ2LCA2MSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OCwgOTUsCi0gICAgMzIsIDQ1LCA2MSwgNTksIDYxLCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNDUsIDU4LCA1OSwgNTksIDU5LCA1OSwKLSAgICA2MSwgNTgsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMTAsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCA1OCwgNjEsIDU5LCA1OSwgNTksIDU5LCA1OSwgNjEsIDU5LCA2MSwgNDYsIDQ2LCAzMiwgNDUsIDQ1LCA0NSwKLSAgICA1OSwgNTgsIDQ1LCA0NSwgNDYsIDU4LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA2MSwgNDYsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAxMCwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgNDYsIDU4LCA1OSwgNTksIDU5LCA1OSwKLSAgICA1OSwgNTksIDU5LCA1OSwgNTksIDYxLCA1OSwgNDYsIDMyLCAzMiwgNDYsIDMyLCA0NiwgMzIsIDU4LCA2MSwgNTksIDU5LAotICAgIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMTAsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgNDUsIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTgsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgNjEsIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OCwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAxMCwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDQ2LCA2MSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDMyLCA0NiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgNjEsCi0gICAgNDYsIDYxLCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OCwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMTAsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgNjEsIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksCi0gICAgNTksIDU5LCAzMiwgNDYsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCA0NiwgNjEsIDU4LCA1OSwgNTksIDU5LCA1OSwKLSAgICA1OSwgNTgsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDEwLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDU4LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDQ2LCA0NiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgNjEsIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA0NSwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMTAsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCA0NiwgMzIsIDQ1LCA2MSwKLSAgICA1OSwgNTksIDU5LCA1OSwgNTksIDU4LCAzMiwgNDYsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCA1OCwgNTksIDU5LAotICAgIDU5LCA1OSwgNTksIDU4LCA0NSwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDEwLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDQ1LCA0NSwgNDUsIDQ1LCAzMiwgNDYsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDQ1LCA2MSwgNTksIDU4LCA0NSwgNDUsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAxMCwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAotICAgIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsCi0gICAgMzIsIDMyLCA0NiwgMzIsIDMyLCA0NiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwKLSAgICAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDEwCi0gIH07CmRpZmYgLS1naXQgYS90b29scy9hYXB0L0NydW5jaENhY2hlLmNwcCBiL3Rvb2xzL2FhcHQvQ3J1bmNoQ2FjaGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNGNmNmJjLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvQ3J1bmNoQ2FjaGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTA0ICswLDAgQEAKLS8vCi0vLyBDb3B5cmlnaHQgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0vLwotLy8gSW1wbGVtZW50YXRpb24gZmlsZSBmb3IgQ3J1bmNoQ2FjaGUKLS8vIFRoaXMgZmlsZSBkZWZpbmVzIGZ1bmN0aW9ucyBsYWlkIG91dCBhbmQgZG9jdW1lbnRlZCBpbgotLy8gQ3J1bmNoQ2FjaGUuaAotCi0jaW5jbHVkZSA8dXRpbHMvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8dXRpbHMvU3RyaW5nOC5oPgotCi0jaW5jbHVkZSAiRGlyZWN0b3J5V2Fsa2VyLmgiCi0jaW5jbHVkZSAiRmlsZUZpbmRlci5oIgotI2luY2x1ZGUgIkNhY2hlVXBkYXRlci5oIgotI2luY2x1ZGUgIkNydW5jaENhY2hlLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwotCi1DcnVuY2hDYWNoZTo6Q3J1bmNoQ2FjaGUoU3RyaW5nOCBzb3VyY2VQYXRoLCBTdHJpbmc4IGRlc3RQYXRoLCBGaWxlRmluZGVyKiBmZikKLSAgICA6IG1Tb3VyY2VQYXRoKHNvdXJjZVBhdGgpLCBtRGVzdFBhdGgoZGVzdFBhdGgpLCBtU291cmNlRmlsZXMoMCksIG1EZXN0RmlsZXMoMCksIG1GaWxlRmluZGVyKGZmKQotewotICAgIC8vIFdlIGluaXRpYWxpemUgdGhlIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIHRvIDAgc28gaWYgYSBmaWxlIGRvZXNuJ3QgZXhpc3QKLSAgICAvLyB0aGVuIGFsbCBmaWxlcyBhcmUgYXV0b21hdGljYWxseSAibmV3ZXIiIHRoYW4gaXQuCi0KLSAgICAvLyBTZXQgZmlsZSBleHRlbnNpb25zIHRvIGxvb2sgZm9yLiBSaWdodCBub3cganVzdCBwbmdzLgotICAgIG1FeHRlbnNpb25zLnB1c2goU3RyaW5nOCgiLnBuZyIpKTsKLQotICAgIC8vIExvYWQgZmlsZXMgaW50byBvdXIgZGF0YSBtZW1iZXJzCi0gICAgbG9hZEZpbGVzKCk7Ci19Ci0KLXNpemVfdCBDcnVuY2hDYWNoZTo6Y3J1bmNoKENhY2hlVXBkYXRlciogY3UsIGJvb2wgZm9yY2VPdmVyd3JpdGUpCi17Ci0gICAgc2l6ZV90IG51bUZpbGVzVXBkYXRlZCA9IDA7Ci0KLSAgICAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIHNvdXJjZSBmaWxlcyBhbmQgY29tcGFyZSB0byBjYWNoZS4KLSAgICAvLyBBZnRlciBwcm9jZXNzaW5nIGEgZmlsZSwgcmVtb3ZlIGl0IGZyb20gdGhlIHNvdXJjZSBmaWxlcyBhbmQKLSAgICAvLyBmcm9tIHRoZSBkZXN0IGZpbGVzLgotICAgIC8vIFdlJ3JlIGRvbmUgd2hlbiB3ZSdyZSBvdXQgb2YgZmlsZXMgaW4gc291cmNlLgotICAgIFN0cmluZzggcmVsYXRpdmVQYXRoOwotICAgIHdoaWxlIChtU291cmNlRmlsZXMuc2l6ZSgpID4gMCkgewotICAgICAgICAvLyBHZXQgdGhlIGZ1bGwgcGF0aCB0byB0aGUgc291cmNlIGZpbGUsIHRoZW4gY29udmVydCB0byBhIGMtc3RyaW5nCi0gICAgICAgIC8vIGFuZCBvZmZzZXQgb3VyIGJlZ2lubmluZyBwb2ludGVyIHRvIHRoZSBsZW5ndGggb2YgdGhlIHNvdXJjZVBhdGgKLSAgICAgICAgLy8gVGhpcyBlZmZpY2llbnRseSBzdHJpcHMgdGhlIHNvdXJjZSBkaXJlY3RvcnkgcHJlZml4IGZyb20gb3VyIHBhdGguCi0gICAgICAgIC8vIEFsc28sIFN0cmluZzggZG9lc24ndCBoYXZlIGEgc3Vic3RyaW5nIG1ldGhvZCBzbyB0aGlzIGlzIHdoYXQgd2UndmUKLSAgICAgICAgLy8gZ290IHRvIHdvcmsgd2l0aC4KLSAgICAgICAgY29uc3QgY2hhciogclBhdGhQdHIgPSBtU291cmNlRmlsZXMua2V5QXQoMCkuc3RyaW5nKCkrbVNvdXJjZVBhdGgubGVuZ3RoKCk7Ci0gICAgICAgIC8vIFN0cmlwIGxlYWRpbmcgc2xhc2ggaWYgcHJlc2VudAotICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKLSAgICAgICAgaWYgKHJQYXRoUHRyWzBdID09IE9TX1BBVEhfU0VQQVJBVE9SKQotICAgICAgICAgICAgb2Zmc2V0ID0gMTsKLSAgICAgICAgcmVsYXRpdmVQYXRoID0gU3RyaW5nOChyUGF0aFB0ciArIG9mZnNldCk7Ci0KLSAgICAgICAgaWYgKGZvcmNlT3ZlcndyaXRlIHx8IG5lZWRzVXBkYXRpbmcocmVsYXRpdmVQYXRoKSkgewotICAgICAgICAgICAgY3UtPnByb2Nlc3NJbWFnZShtU291cmNlUGF0aC5hcHBlbmRQYXRoQ29weShyZWxhdGl2ZVBhdGgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRGVzdFBhdGguYXBwZW5kUGF0aENvcHkocmVsYXRpdmVQYXRoKSk7Ci0gICAgICAgICAgICBudW1GaWxlc1VwZGF0ZWQrKzsKLSAgICAgICAgICAgIC8vIGNydW5jaEZpbGUocmVsYXRpdmVQYXRoKTsKLSAgICAgICAgfQotICAgICAgICAvLyBEZWxldGUgdGhpcyBmaWxlIGZyb20gdGhlIHNvdXJjZSBmaWxlcyBhbmQgKGlmIGl0IGV4aXN0cykgZnJvbSB0aGUKLSAgICAgICAgLy8gZGVzdCBmaWxlcy4KLSAgICAgICAgbVNvdXJjZUZpbGVzLnJlbW92ZUl0ZW1zQXQoMCk7Ci0gICAgICAgIG1EZXN0RmlsZXMucmVtb3ZlSXRlbShtRGVzdFBhdGguYXBwZW5kUGF0aENvcHkocmVsYXRpdmVQYXRoKSk7Ci0gICAgfQotCi0gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIHdoYXQncyBsZWZ0IG9mIGRlc3RGaWxlcyBhbmQgZGVsZXRlIGxlZnRvdmVycwotICAgIHdoaWxlIChtRGVzdEZpbGVzLnNpemUoKSA+IDApIHsKLSAgICAgICAgY3UtPmRlbGV0ZUZpbGUobURlc3RGaWxlcy5rZXlBdCgwKSk7Ci0gICAgICAgIG1EZXN0RmlsZXMucmVtb3ZlSXRlbXNBdCgwKTsKLSAgICB9Ci0KLSAgICAvLyBVcGRhdGUgb3VyIGtub3dsZWRnZSBvZiB0aGUgZmlsZXMgY2FjaGUKLSAgICAvLyBib3RoIHNvdXJjZSBhbmQgZGVzdCBzaG91bGQgYmUgZW1wdHkgYnkgbm93LgotICAgIGxvYWRGaWxlcygpOwotCi0gICAgcmV0dXJuIG51bUZpbGVzVXBkYXRlZDsKLX0KLQotdm9pZCBDcnVuY2hDYWNoZTo6bG9hZEZpbGVzKCkKLXsKLSAgICAvLyBDbGVhciBvdXQgb3VyIGRhdGEgc3RydWN0dXJlcyB0byBhdm9pZCBwdXR0aW5nIGluIGR1cGxpY2F0ZXMKLSAgICBtU291cmNlRmlsZXMuY2xlYXIoKTsKLSAgICBtRGVzdEZpbGVzLmNsZWFyKCk7Ci0KLSAgICAvLyBNYWtlIGEgZGlyZWN0b3J5IHdhbGtlciB0aGF0IHBvaW50cyB0byB0aGUgc3lzdGVtLgotICAgIERpcmVjdG9yeVdhbGtlciogZHcgPSBuZXcgU3lzdGVtRGlyZWN0b3J5V2Fsa2VyKCk7Ci0KLSAgICAvLyBMb2FkIGZpbGVzIGluIHRoZSBzb3VyY2UgZGlyZWN0b3J5Ci0gICAgbUZpbGVGaW5kZXItPmZpbmRGaWxlcyhtU291cmNlUGF0aCwgbUV4dGVuc2lvbnMsIG1Tb3VyY2VGaWxlcyxkdyk7Ci0KLSAgICAvLyBMb2FkIGZpbGVzIGluIHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkKLSAgICBtRmlsZUZpbmRlci0+ZmluZEZpbGVzKG1EZXN0UGF0aCxtRXh0ZW5zaW9ucyxtRGVzdEZpbGVzLGR3KTsKLQotICAgIGRlbGV0ZSBkdzsKLX0KLQotYm9vbCBDcnVuY2hDYWNoZTo6bmVlZHNVcGRhdGluZyhTdHJpbmc4IHJlbGF0aXZlUGF0aCkgY29uc3QKLXsKLSAgICAvLyBSZXRyaWV2ZSBtb2RpZmljYXRpb24gZGF0ZXMgZm9yIHRoaXMgZmlsZSBlbnRyeSB1bmRlciB0aGUgc291cmNlIGFuZAotICAgIC8vIGNhY2hlIGRpcmVjdG9yeSB0cmVlcy4gVGhlIHZlY3RvcnMgd2lsbCByZXR1cm4gYSBtb2RpZmljYXRpb24gZGF0ZSBvZiAwCi0gICAgLy8gaWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdC4KLSAgICB0aW1lX3Qgc291cmNlRGF0ZSA9IG1Tb3VyY2VGaWxlcy52YWx1ZUZvcihtU291cmNlUGF0aC5hcHBlbmRQYXRoQ29weShyZWxhdGl2ZVBhdGgpKTsKLSAgICB0aW1lX3QgZGVzdERhdGUgPSBtRGVzdEZpbGVzLnZhbHVlRm9yKG1EZXN0UGF0aC5hcHBlbmRQYXRoQ29weShyZWxhdGl2ZVBhdGgpKTsKLSAgICByZXR1cm4gc291cmNlRGF0ZSA+IGRlc3REYXRlOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvQ3J1bmNoQ2FjaGUuaCBiL3Rvb2xzL2FhcHQvQ3J1bmNoQ2FjaGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmUzZGE1Yy4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L0NydW5jaENhY2hlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0vLyBDYWNoZSBtYW5hZ2VyIGZvciBwcmUtcHJvY2Vzc2VkIFBORyBmaWxlcy4KLS8vIENvbnRhaW5zIGNvZGUgZm9yIG1hbmFnaW5nIHdoaWNoIFBORyBmaWxlcyBnZXQgcHJvY2Vzc2VkCi0vLyBhdCBidWlsZCB0aW1lLgotLy8KLQotI2lmbmRlZiBDUlVOQ0hDQUNIRV9ICi0jZGVmaW5lIENSVU5DSENBQ0hFX0gKLQotI2luY2x1ZGUgPHV0aWxzL0tleWVkVmVjdG9yLmg+Ci0jaW5jbHVkZSA8dXRpbHMvU3RyaW5nOC5oPgotI2luY2x1ZGUgIkZpbGVGaW5kZXIuaCIKLSNpbmNsdWRlICJDYWNoZVVwZGF0ZXIuaCIKLQotdXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ7Ci0KLS8qKiBDcnVuY2hDYWNoZQotICogIFRoaXMgY2xhc3MgaXMgYSBjYWNoZSBtYW5hZ2VyIHdoaWNoIGNhbiBwcmUtcHJvY2VzcyBQTkcgZmlsZXMgYW5kIHN0b3JlCi0gKiAgdGhlbSBpbiBhIG1pcnJvci1jYWNoZS4gSXQncyBjYXBhYmxlIG9mIGRvaW5nIGluY3JlbWVudGFsIHVwZGF0ZXMgdG8gaXRzCi0gKiAgY2FjaGUuCi0gKgotICogIFVzYWdlOgotICogICAgICBDcmVhdGUgYW4gaW5zdGFuY2UgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUsIHRoZQotICogICAgICByb290IGxvY2F0aW9uIHRvIHN0b3JlIHRoZSBjYWNoZSBmaWxlcywgYW5kIGFuIGluc3RhbmNlIG9mIGEgZmlsZSBmaW5kZXIuCi0gKiAgICAgIFRoZW4gdXBkYXRlIHRoZSBjYWNoZSBieSBjYWxsaW5nIGNydW5jaC4KLSAqLwotY2xhc3MgQ3J1bmNoQ2FjaGUgewotcHVibGljOgotICAgIC8vIENvbnN0cnVjdG9yCi0gICAgQ3J1bmNoQ2FjaGUoU3RyaW5nOCBzb3VyY2VQYXRoLCBTdHJpbmc4IGRlc3RQYXRoLCBGaWxlRmluZGVyKiBmZik7Ci0KLSAgICAvLyBOb2JvZHkgc2hvdWxkIGJlIGNhbGxpbmcgdGhlIGRlZmF1bHQgY29uc3RydWN0b3IKLSAgICAvLyBTbyB0aGlzIHNwYWNlIGlzIGludGVudGlvbmFsbHkgbGVmdCBibGFuawotCi0gICAgLy8gRGVmYXVsdCBDb3B5IENvbnN0cnVjdG9yIGFuZCBEZXN0cnVjdG9yIGFyZSBmaW5lCi0KLSAgICAvKiogY3J1bmNoIGlzIHRoZSB3b3JraG9yc2Ugb2YgdGhpcyBjbGFzcy4KLSAgICAgKiBJdCBnb2VzIHRocm91Z2ggYWxsIHRoZSBmaWxlcyBmb3VuZCBpbiB0aGUgc291cmNlUGF0aCBhbmQgY29tcGFyZXMKLSAgICAgKiB0aGVtIHRvIHRoZSBjYWNoZWQgdmVyc2lvbnMgaW4gdGhlIGRlc3RQYXRoLiBJZiB0aGUgb3B0aW9uYWwKLSAgICAgKiBhcmd1bWVudCBmb3JjZU92ZXJ3cml0ZSBpcyBzZXQgdG8gdHJ1ZSwgdGhlbiBhbGwgc291cmNlIGZpbGVzIGFyZQotICAgICAqIHJlLWNydW5jaGVkIGV2ZW4gaWYgdGhleSBoYXZlIG5vdCBiZWVuIG1vZGlmaWVkIHJlY2VudGx5LiBPdGhlcndpc2UsCi0gICAgICogc291cmNlIGZpbGVzIGFyZSBvbmx5IGNydW5jaGVkIHdoZW4gdGhleSBuZWVkVXBkYXRpbmcuIEFmdGVyd2FyZHMsCi0gICAgICogd2UgZGVsZXRlIGFueSBsZWZ0b3ZlciBmaWxlcyBpbiB0aGUgY2FjaGUgdGhhdCBhcmUgbm8gbG9uZ2VyIHByZXNlbnQKLSAgICAgKiBpbiBzb3VyY2UuCi0gICAgICoKLSAgICAgKiBQUkVDT05ESVRJT05TOgotICAgICAqICAgICAgTm8gc2V0dXAgYmVzaWRlcyBjb25zdHJ1Y3Rpb24gaXMgbmVlZGVkCi0gICAgICogUE9TVENPTkRJVElPTlM6Ci0gICAgICogICAgICBUaGUgY2FjaGUgaXMgdXBkYXRlZCB0byBmdWxseSByZWZsZWN0IGFsbCBjaGFuZ2VzIGluIHNvdXJjZS4KLSAgICAgKiAgICAgIFRoZSBmdW5jdGlvbiB0aGVuIHJldHVybnMgdGhlIG51bWJlciBvZiBmaWxlcyBjaGFuZ2VkIGluIGNhY2hlCi0gICAgICogICAgICAoY291bnRpbmcgZGVsZXRpb25zKS4KLSAgICAgKi8KLSAgICBzaXplX3QgY3J1bmNoKENhY2hlVXBkYXRlciogY3UsIGJvb2wgZm9yY2VPdmVyd3JpdGU9ZmFsc2UpOwotCi1wcml2YXRlOgotICAgIC8qKiBsb2FkRmlsZXMgaXMgYSB3cmFwcGVyIHRvIHRoZSBGaWxlRmluZGVyIHRoYXQgcGxhY2VzIG1hdGNoaW5nCi0gICAgICogZmlsZXMgaW50byBtU291cmNlRmlsZXMgYW5kIG1EZXN0RmlsZXMuCi0gICAgICoKLSAgICAgKiAgUE9TVENPTkRJVElPTlMKLSAgICAgKiAgICAgIG1EZXN0RmlsZXMgYW5kIG1Tb3VyY2VGaWxlcyBhcmUgcmVmcmVzaGVkIHRvIHJlZmxlY3QgdGhlIGN1cnJlbnQKLSAgICAgKiAgICAgIHN0YXRlIG9mIHRoZSBmaWxlcyBpbiB0aGUgc291cmNlIGFuZCBkZXN0IGRpcmVjdG9yaWVzLgotICAgICAqICAgICAgQW55IHByZXZpb3VzIGNvbnRlbnRzIG9mIG1Tb3VyY2VGaWxlcyBhbmQgbURlc3RGaWxlcyBhcmUgY2xlYXJlZC4KLSAgICAgKi8KLSAgICB2b2lkIGxvYWRGaWxlcygpOwotCi0gICAgLyoqIG5lZWRzVXBkYXRpbmcgdGFrZXMgYSBmaWxlIHBhdGgKLSAgICAgKiBhbmQgcmV0dXJucyB0cnVlIGlmIHRoZSBmaWxlIHJlcHJlc2VudGVkIGJ5IHRoaXMgcGF0aCBpcyBuZXdlciBpbiB0aGUKLSAgICAgKiBzb3VyY2VGaWxlcyB0aGFuIGluIHRoZSBjYWNoZSAobURlc3RGaWxlcykuCi0gICAgICoKLSAgICAgKiBQUkVDT05ESVRJT05TOgotICAgICAqICAgICAgbVNvdXJjZUZpbGVzIGFuZCBtRGVzdEZpbGVzIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGZpbGxlZC4KLSAgICAgKiBQT1NUQ09ORElUSU9OUzoKLSAgICAgKiAgICAgIHJldHVybnMgdHJ1ZSBpZiBhbmQgb25seSBpZiBzb3VyY2UgZmlsZSdzIG1vZGlmaWNhdGlvbiB0aW1lCi0gICAgICogICAgICBpcyBncmVhdGVyIHRoYW4gdGhlIGNhY2hlZCBmaWxlJ3MgbW9kLXRpbWUuIE90aGVyd2lzZSByZXR1cm5zIGZhbHNlLgotICAgICAqCi0gICAgICogVVNBR0U6Ci0gICAgICogICAgICBTaG91bGQgYmUgdXNlZCBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nOgotICAgICAqICAgICAgaWYgKG5lZWRzVXBkYXRpbmcoZmlsZVBhdGgpKQotICAgICAqICAgICAgICAgIC8vIFJlY3J1bmNoIHNvdXJjZUZpbGUgb3V0IHRvIGRlc3RGaWxlLgotICAgICAqCi0gICAgICovCi0gICAgYm9vbCBuZWVkc1VwZGF0aW5nKFN0cmluZzggcmVsYXRpdmVQYXRoKSBjb25zdDsKLQotICAgIC8vIERBVEEgTUVNQkVSUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLSAgICBTdHJpbmc4IG1Tb3VyY2VQYXRoOwotICAgIFN0cmluZzggbURlc3RQYXRoOwotCi0gICAgVmVjdG9yPFN0cmluZzg+IG1FeHRlbnNpb25zOwotCi0gICAgLy8gRWFjaCB2ZWN0b3Igb2YgcGF0aHMgY29udGFpbnMgb25lIGVudHJ5IHBlciBQTkcgZmlsZSBlbmNvdW50ZXJlZC4KLSAgICAvLyBFYWNoIGVudHJ5IGNvbnNpc3RzIG9mIGEgcGF0aCBwb2ludGluZyB0byB0aGF0IFBORy4KLSAgICBEZWZhdWx0S2V5ZWRWZWN0b3I8U3RyaW5nOCx0aW1lX3Q+IG1Tb3VyY2VGaWxlczsKLSAgICBEZWZhdWx0S2V5ZWRWZWN0b3I8U3RyaW5nOCx0aW1lX3Q+IG1EZXN0RmlsZXM7Ci0KLSAgICAvLyBQb2ludGVyIHRvIGEgRmlsZUZpbmRlciB0byB1c2UKLSAgICBGaWxlRmluZGVyKiBtRmlsZUZpbmRlcjsKLX07Ci0KLSNlbmRpZiAvLyBDUlVOQ0hDQUNIRV9ICmRpZmYgLS1naXQgYS90b29scy9hYXB0L0RpcmVjdG9yeVdhbGtlci5oIGIvdG9vbHMvYWFwdC9EaXJlY3RvcnlXYWxrZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODgwMzFkMC4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L0RpcmVjdG9yeVdhbGtlci5oCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0vLyBEZWZpbmVzIGFuIGFic3RyYWN0aW9uIGZvciBvcGVuaW5nIGEgZGlyZWN0b3J5IG9uIHRoZSBmaWxlc3lzdGVtIGFuZAotLy8gaXRlcmF0aW5nIHRocm91Z2ggaXQuCi0KLSNpZm5kZWYgRElSRUNUT1JZV0FMS0VSX0gKLSNkZWZpbmUgRElSRUNUT1JZV0FMS0VSX0gKLQotI2luY2x1ZGUgPGRpcmVudC5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8dXRpbHMvU3RyaW5nOC5oPgotCi0jaW5jbHVkZSA8c3RkaW8uaD4KLQotdXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ7Ci0KLS8vIERpcmVjdG9yeSBXYWxrZXIKLS8vIFRoaXMgaXMgYW4gYWJzdHJhY3Rpb24gZm9yIHdhbGtpbmcgdGhyb3VnaCBhIGRpcmVjdG9yeSBhbmQgZ2V0dGluZyBmaWxlcwotLy8gYW5kIGRlc2NyaXB0aW9ucy4KLQotY2xhc3MgRGlyZWN0b3J5V2Fsa2VyIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5EaXJlY3RvcnlXYWxrZXIoKSB7fTsKLSAgICB2aXJ0dWFsIGJvb2wgb3BlbkRpcihTdHJpbmc4IHBhdGgpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgb3BlbkRpcihjb25zdCBjaGFyKiBwYXRoKSA9IDA7Ci0gICAgLy8gQWR2YW5jZSB0byBuZXh0IGRpcmVjdG9yeSBlbnRyeQotICAgIHZpcnR1YWwgc3RydWN0IGRpcmVudCogbmV4dEVudHJ5KCkgPSAwOwotICAgIC8vIEdldCB0aGUgc3RhdHMgZm9yIHRoZSBjdXJyZW50IGVudHJ5Ci0gICAgdmlydHVhbCBzdHJ1Y3Qgc3RhdCogICBlbnRyeVN0YXRzKCkgPSAwOwotICAgIC8vIENsZWFuIFVwCi0gICAgdmlydHVhbCB2b2lkIGNsb3NlRGlyKCkgPSAwOwotICAgIC8vIFRoaXMgY2xhc3MgaXMgYWJsZSB0byByZXBsaWNhdGUgaXRzZWxmIG9uIHRoZSBoZWFwCi0gICAgdmlydHVhbCBEaXJlY3RvcnlXYWxrZXIqIGNsb25lKCkgPSAwOwotCi0gICAgLy8gREFUQSBNRU1CRVJTCi0gICAgLy8gQ3VycmVudCBkaXJlY3RvcnkgZW50cnkKLSAgICBzdHJ1Y3QgZGlyZW50IG1FbnRyeTsKLSAgICAvLyBTdGF0cyBmb3IgdGhhdCBkaXJlY3RvcnkgZW50cnkKLSAgICBzdHJ1Y3Qgc3RhdCBtU3RhdHM7Ci0gICAgLy8gQmFzZSBwYXRoCi0gICAgU3RyaW5nOCBtQmFzZVBhdGg7Ci19OwotCi0vLyBTeXN0ZW0gRGlyZWN0b3J5IFdhbGtlcgotLy8gVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYWJvdmUgYWJzdHJhY3Rpb24gdGhhdCBjYWxscwotLy8gcmVhbCBzeXN0ZW0gY2FsbHMgYW5kIGlzIGZ1bGx5IGZ1bmN0aW9uYWwuCi0vLyBmdW5jdGlvbnMgYXJlIGlubGluZWQgc2luY2UgdGhleSdyZSB2ZXJ5IHNob3J0IGFuZCBzaW1wbGUKLQotY2xhc3MgU3lzdGVtRGlyZWN0b3J5V2Fsa2VyIDogcHVibGljIERpcmVjdG9yeVdhbGtlciB7Ci0KLSAgICAvLyBEZWZhdWx0IGNvbnN0cnVjdG9yLCBjb3B5IGNvbnN0cnVjdG9yLCBhbmQgZGVzdHJ1Y3RvciBhcmUgZmluZQotcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBvcGVuRGlyKFN0cmluZzggcGF0aCkgewotICAgICAgICBtQmFzZVBhdGggPSBwYXRoOwotICAgICAgICBkaXIgPSBOVUxMOwotICAgICAgICBkaXIgPSBvcGVuZGlyKG1CYXNlUGF0aC5zdHJpbmcoKSApOwotCi0gICAgICAgIGlmIChkaXIgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9OwotICAgIHZpcnR1YWwgYm9vbCBvcGVuRGlyKGNvbnN0IGNoYXIqIHBhdGgpIHsKLSAgICAgICAgU3RyaW5nOCBwKHBhdGgpOwotICAgICAgICBvcGVuRGlyKHApOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9OwotICAgIC8vIEFkdmFuY2UgdG8gbmV4dCBkaXJlY3RvcnkgZW50cnkKLSAgICB2aXJ0dWFsIHN0cnVjdCBkaXJlbnQqIG5leHRFbnRyeSgpIHsKLSAgICAgICAgc3RydWN0IGRpcmVudCogZW50cnlQdHIgPSByZWFkZGlyKGRpcik7Ci0gICAgICAgIGlmIChlbnRyeVB0ciA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICAgICAgbUVudHJ5ID0gKmVudHJ5UHRyOwotICAgICAgICAvLyBHZXQgc3RhdHMKLSAgICAgICAgU3RyaW5nOCBmdWxsUGF0aCA9IG1CYXNlUGF0aC5hcHBlbmRQYXRoQ29weShtRW50cnkuZF9uYW1lKTsKLSAgICAgICAgc3RhdChmdWxsUGF0aC5zdHJpbmcoKSwmbVN0YXRzKTsKLSAgICAgICAgcmV0dXJuICZtRW50cnk7Ci0gICAgfTsKLSAgICAvLyBHZXQgdGhlIHN0YXRzIGZvciB0aGUgY3VycmVudCBlbnRyeQotICAgIHZpcnR1YWwgc3RydWN0IHN0YXQqICAgZW50cnlTdGF0cygpIHsKLSAgICAgICAgcmV0dXJuICZtU3RhdHM7Ci0gICAgfTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xvc2VEaXIoKSB7Ci0gICAgICAgIGNsb3NlZGlyKGRpcik7Ci0gICAgfTsKLSAgICB2aXJ0dWFsIERpcmVjdG9yeVdhbGtlciogY2xvbmUoKSB7Ci0gICAgICAgIHJldHVybiBuZXcgU3lzdGVtRGlyZWN0b3J5V2Fsa2VyKCp0aGlzKTsKLSAgICB9OwotcHJpdmF0ZToKLSAgICBESVIqIGRpcjsKLX07Ci0KLSNlbmRpZiAvLyBESVJFQ1RPUllXQUxLRVJfSApkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC9GaWxlRmluZGVyLmNwcCBiL3Rvb2xzL2FhcHQvRmlsZUZpbmRlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4Nzc1YzAuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9GaWxlRmluZGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLS8vCi0vLyBDb3B5cmlnaHQgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0vLwotCi0vLyBGaWxlIEZpbmRlciBpbXBsZW1lbnRhdGlvbi4KLS8vIEltcGxlbWVudGF0aW9uIGZvciB0aGUgZnVuY3Rpb25zIGRlY2xhcmVkIGFuZCBkb2N1bWVudGVkIGluIEZpbGVGaW5kZXIuaAotCi0jaW5jbHVkZSA8dXRpbHMvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8dXRpbHMvU3RyaW5nOC5oPgotI2luY2x1ZGUgPHV0aWxzL0tleWVkVmVjdG9yLmg+Ci0KLSNpbmNsdWRlIDxkaXJlbnQuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotCi0jaW5jbHVkZSAiRGlyZWN0b3J5V2Fsa2VyLmgiCi0jaW5jbHVkZSAiRmlsZUZpbmRlci5oIgotCi0vLyNkZWZpbmUgREVCVUcKLQotdXNpbmcgYW5kcm9pZDo6U3RyaW5nODsKLQotLy8gUHJpdmF0ZSBmdW5jdGlvbiB0byBjaGVjayB3aGV0aGVyIGEgZmlsZSBpcyBhIGRpcmVjdG9yeSBvciBub3QKLWJvb2wgaXNEaXJlY3RvcnkoY29uc3QgY2hhciogZmlsZW5hbWUpIHsKLSAgICBzdHJ1Y3Qgc3RhdCBmaWxlU3RhdDsKLSAgICBpZiAoc3RhdChmaWxlbmFtZSwgJmZpbGVTdGF0KSA9PSAtMSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybihTX0lTRElSKGZpbGVTdGF0LnN0X21vZGUpKTsKLX0KLQotCi0vLyBQcml2YXRlIGZ1bmN0aW9uIHRvIGNoZWNrIHdoZXRoZXIgYSBmaWxlIGlzIGEgcmVndWxhciBmaWxlIG9yIG5vdAotYm9vbCBpc0ZpbGUoY29uc3QgY2hhciogZmlsZW5hbWUpIHsKLSAgICBzdHJ1Y3Qgc3RhdCBmaWxlU3RhdDsKLSAgICBpZiAoc3RhdChmaWxlbmFtZSwgJmZpbGVTdGF0KSA9PSAtMSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybihTX0lTUkVHKGZpbGVTdGF0LnN0X21vZGUpKTsKLX0KLQotYm9vbCBTeXN0ZW1GaWxlRmluZGVyOjpmaW5kRmlsZXMoU3RyaW5nOCBiYXNlUGF0aCwgVmVjdG9yPFN0cmluZzg+JiBleHRlbnNpb25zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5ZWRWZWN0b3I8U3RyaW5nOCx0aW1lX3Q+JiBmaWxlU3RvcmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJlY3RvcnlXYWxrZXIqIGR3KQotewotICAgIC8vIFNjYW4gdGhlIGRpcmVjdG9yeSBwb2ludGVkIHRvIGJ5IGJhc2VQYXRoCi0gICAgLy8gY2hlY2sgZmlsZXMgYW5kIHJlY3Vyc2UgaW50byBzdWJkaXJlY3Rvcmllcy4KLSAgICBpZiAoIWR3LT5vcGVuRGlyKGJhc2VQYXRoKSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIC8qCi0gICAgICogIEdvIHRocm91Z2ggYWxsIGRpcmVjdG9yeSBlbnRyaWVzLiBDaGVjayBlYWNoIGZpbGUgdXNpbmcgY2hlY2tBbmRBZGRGaWxlCi0gICAgICogIGFuZCByZWN1cnNlIGludG8gc3ViLWRpcmVjdG9yaWVzLgotICAgICAqLwotICAgIHN0cnVjdCBkaXJlbnQqIGVudHJ5OwotICAgIHdoaWxlICgoZW50cnkgPSBkdy0+bmV4dEVudHJ5KCkpICE9IE5VTEwpIHsKLSAgICAgICAgU3RyaW5nOCBlbnRyeU5hbWUoZW50cnktPmRfbmFtZSk7Ci0gICAgICAgIGlmIChlbnRyeS0+ZF9uYW1lWzBdID09ICcuJykgLy8gU2tpcCBoaWRkZW4gZmlsZXMgYW5kIGRpcmVjdG9yaWVzCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBTdHJpbmc4IGZ1bGxQYXRoID0gYmFzZVBhdGguYXBwZW5kUGF0aENvcHkoZW50cnlOYW1lKTsKLSAgICAgICAgLy8gSWYgdGhpcyBlbnRyeSBpcyBhIGRpcmVjdG9yeSB3ZSdsbCByZWN1cnNlIGludG8gaXQKLSAgICAgICAgaWYgKGlzRGlyZWN0b3J5KGZ1bGxQYXRoLnN0cmluZygpKSApIHsKLSAgICAgICAgICAgIERpcmVjdG9yeVdhbGtlciogY29weSA9IGR3LT5jbG9uZSgpOwotICAgICAgICAgICAgZmluZEZpbGVzKGZ1bGxQYXRoLCBleHRlbnNpb25zLCBmaWxlU3RvcmUsY29weSk7Ci0gICAgICAgICAgICBkZWxldGUgY29weTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIElmIHRoaXMgZW50cnkgaXMgYSBmaWxlLCB3ZSdsbCBwYXNzIGl0IG92ZXIgdG8gY2hlY2tBbmRBZGRGaWxlCi0gICAgICAgIGlmIChpc0ZpbGUoZnVsbFBhdGguc3RyaW5nKCkpICkgewotICAgICAgICAgICAgY2hlY2tBbmRBZGRGaWxlKGZ1bGxQYXRoLGR3LT5lbnRyeVN0YXRzKCksZXh0ZW5zaW9ucyxmaWxlU3RvcmUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gQ2xlYW4gdXAKLSAgICBkdy0+Y2xvc2VEaXIoKTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFN5c3RlbUZpbGVGaW5kZXI6OmNoZWNrQW5kQWRkRmlsZShTdHJpbmc4IHBhdGgsIGNvbnN0IHN0cnVjdCBzdGF0KiBzdGF0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc4PiYgZXh0ZW5zaW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleWVkVmVjdG9yPFN0cmluZzgsdGltZV90PiYgZmlsZVN0b3JlKQotewotICAgIC8vIExvb3Agb3ZlciB0aGUgZXh0ZW5zaW9ucywgY2hlY2tpbmcgZm9yIGEgbWF0Y2gKLSAgICBib29sIGRvbmUgPSBmYWxzZTsKLSAgICBTdHJpbmc4IGV4dChwYXRoLmdldFBhdGhFeHRlbnNpb24oKSk7Ci0gICAgZXh0LnRvTG93ZXIoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV4dGVuc2lvbnMuc2l6ZSgpICYmICFkb25lOyArK2kpIHsKLSAgICAgICAgU3RyaW5nOCBleHQyID0gZXh0ZW5zaW9uc1tpXS5nZXRQYXRoRXh0ZW5zaW9uKCk7Ci0gICAgICAgIGV4dDIudG9Mb3dlcigpOwotICAgICAgICAvLyBDb21wYXJlIHRoZSBleHRlbnNpb25zLiBJZiBhIG1hdGNoIGlzIGZvdW5kLCBhZGQgdG8gc3RvcmFnZS4KLSAgICAgICAgaWYgKGV4dCA9PSBleHQyKSB7Ci0gICAgICAgICAgICBkb25lID0gdHJ1ZTsKLSAgICAgICAgICAgIGZpbGVTdG9yZS5hZGQocGF0aCxzdGF0cy0+c3RfbXRpbWUpOwotICAgICAgICB9Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS90b29scy9hYXB0L0ZpbGVGaW5kZXIuaCBiL3Rvb2xzL2FhcHQvRmlsZUZpbmRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTc0YWVlLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvRmlsZUZpbmRlci5oCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0KLS8vIEZpbGUgRmluZGVyLgotLy8gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgdXNlZnVsIGZ1bmN0aW9ucyBmb3IgZmluZGluZyBwYXRocyBhbmQgbW9kaWZpY2F0aW9uCi0vLyB0aW1lcyBvZiBmaWxlcyB0aGF0IG1hdGNoIGFuIGV4dGVuc2lvbiBwYXR0ZXJuIGluIGEgZGlyZWN0b3J5IHRyZWUuCi0vLyBhbmQgZmluZGluZyBmaWxlcyBpbiBpdC4KLQotI2lmbmRlZiBGSUxFRklOREVSX0gKLSNkZWZpbmUgRklMRUZJTkRFUl9ICi0KLSNpbmNsdWRlIDx1dGlscy9WZWN0b3IuaD4KLSNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgotI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KLQotI2luY2x1ZGUgIkRpcmVjdG9yeVdhbGtlci5oIgotCi11c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKLQotLy8gQWJzdHJhY3Rpb24gdG8gYWxsb3cgZm9yIGRlcGVuZGVuY3kgaW5qZWN0aW9uLiBTZWUgTW9ja0ZpbGVGaW5kZXIuaAotLy8gZm9yIHRoZSB0ZXN0aW5nIGltcGxlbWVudGF0aW9uLgotY2xhc3MgRmlsZUZpbmRlciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGZpbmRGaWxlcyhTdHJpbmc4IGJhc2VQYXRoLCBWZWN0b3I8U3RyaW5nOD4mIGV4dGVuc2lvbnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBLZXllZFZlY3RvcjxTdHJpbmc4LHRpbWVfdD4mIGZpbGVTdG9yZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIERpcmVjdG9yeVdhbGtlciogZHcpID0gMDsKLQotICAgIHZpcnR1YWwgfkZpbGVGaW5kZXIoKSB7fTsKLX07Ci0KLWNsYXNzIFN5c3RlbUZpbGVGaW5kZXIgOiBwdWJsaWMgRmlsZUZpbmRlciB7Ci1wdWJsaWM6Ci0KLSAgICAvKiBmaW5kRmlsZXMgdGFrZXMgYSBwYXRoLCBhIFZlY3RvciBvZiBleHRlbnNpb25zLCBhbmQgYSBkZXN0aW5hdGlvbiBLZXllZFZlY3RvcgotICAgICAqICAgICAgICAgICBhbmQgcGxhY2VzIHBhdGgvbW9kaWZpY2F0aW9uIGRhdGUga2V5L3ZhbHVlcyBwb2ludGluZyB0bwotICAgICAqICAgICAgICAgIGFsbCBmaWxlcyB3aXRoIG1hdGNoaW5nIGV4dGVuc2lvbnMgZm91bmQgaW50byB0aGUgS2V5ZWRWZWN0b3IKLSAgICAgKiBQUkVDT05ESVRJT05TCi0gICAgICogICAgIHBhdGggaXMgYSB2YWxpZCBzeXN0ZW0gcGF0aAotICAgICAqICAgICBleHRlbnNpb25zIHNob3VsZCBpbmNsdWRlIGxlYWRpbmcgIi4iCi0gICAgICogICAgICAgICAgICAgICAgVGhpcyBpcyBub3QgbmVjZXNzYXJ5LCBidXQgdGhlIGNvbXBhcmlzb24gZGlyZWN0bHkKLSAgICAgKiAgICAgICAgICAgICAgICBjb21wYXJlcyB0aGUgZW5kIG9mIHRoZSBwYXRoIHN0cmluZyBzbyBpZiB0aGUgIi4iCi0gICAgICogICAgICAgICAgICAgICAgaXMgZXhjbHVkZWQgdGhlcmUgaXMgYSBzbWFsbCBjaGFuY2UgeW91IGNvdWxkIGhhdmUKLSAgICAgKiAgICAgICAgICAgICAgICBhIGZhbHNlIHBvc2l0aXZlIG1hdGNoLiAoRm9yIGV4YW1wbGU6IGV4dGVuc2lvbiAicG5nIgotICAgICAqICAgICAgICAgICAgICAgIHdvdWxkIG1hdGNoIGEgZmlsZSBjYWxsZWQgImJsYWhibGFocG5nIikKLSAgICAgKgotICAgICAqIFBPU1RDT05ESVRJT05TCi0gICAgICogICAgIGZpbGVTdG9yZSBjb250YWlucyAoaW4gbm8gZ3VhcmFudGVlZCBvcmRlcikgcGF0aHMgdG8gYWxsCi0gICAgICogICAgICAgICAgICAgICAgbWF0Y2hpbmcgZmlsZXMgZW5jb3VudGVyZWQgaW4gc3ViZGlyZWN0b3JpZXMgb2YgcGF0aAotICAgICAqICAgICAgICAgICAgICAgIGFzIGtleXMgaW4gdGhlIEtleWVkVmVjdG9yLiBFYWNoIGtleSBoYXMgdGhlIG1vZGlmaWNhdGlvbiB0aW1lCi0gICAgICogICAgICAgICAgICAgICAgb2YgdGhlIGZpbGUgYXMgaXRzIHZhbHVlLgotICAgICAqCi0gICAgICogQ2FsbHMgY2hlY2tBbmRBZGRGaWxlIG9uIGVhY2ggZmlsZSBlbmNvdW50ZXJlZCBpbiB0aGUgZGlyZWN0b3J5IHRyZWUKLSAgICAgKiBSZWN1cnNpdmVseSBkZXNjZW5kcyBpbnRvIHN1YmRpcmVjdG9yaWVzLgotICAgICAqLwotICAgIHZpcnR1YWwgYm9vbCBmaW5kRmlsZXMoU3RyaW5nOCBiYXNlUGF0aCwgVmVjdG9yPFN0cmluZzg+JiBleHRlbnNpb25zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5ZWRWZWN0b3I8U3RyaW5nOCx0aW1lX3Q+JiBmaWxlU3RvcmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJlY3RvcnlXYWxrZXIqIGR3KTsKLQotcHJpdmF0ZToKLSAgICAvKioKLSAgICAgKiBjaGVja0FuZEFkZEZpbGUgbG9va3MgYXQgYSBzaW5nbGUgZmlsZSBwYXRoIGFuZCBzdGF0IGNvbWJvCi0gICAgICogdG8gZGV0ZXJtaW5lIHdoZXRoZXIgaXQgaXMgYSBtYXRjaGluZyBmaWxlIChieSBsb29raW5nIGF0Ci0gICAgICogdGhlIGV4dGVuc2lvbikKLSAgICAgKgotICAgICAqIFBSRUNPTkRJVElPTlMKLSAgICAgKiAgICBubyBzZXR1cCBpcyBuZWVkZWQKLSAgICAgKgotICAgICAqIFBPU1RDT05ESVRJT05TCi0gICAgICogICAgSWYgdGhlIGdpdmVuIGZpbGUgaGFzIGEgbWF0Y2hpbmcgZXh0ZW5zaW9uIHRoZW4gYSBuZXcgZW50cnkKLSAgICAgKiAgICBpcyBhZGRlZCB0byB0aGUgS2V5ZWRWZWN0b3Igd2l0aCB0aGUgcGF0aCBhcyB0aGUga2V5IGFuZCB0aGUgbW9kaWZpY2F0aW9uCi0gICAgICogICAgdGltZSBhcyB0aGUgdmFsdWUuCi0gICAgICoKLSAgICAgKi8KLSAgICBzdGF0aWMgdm9pZCBjaGVja0FuZEFkZEZpbGUoU3RyaW5nOCBwYXRoLCBjb25zdCBzdHJ1Y3Qgc3RhdCogc3RhdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc4PiYgZXh0ZW5zaW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5ZWRWZWN0b3I8U3RyaW5nOCx0aW1lX3Q+JiBmaWxlU3RvcmUpOwotCi19OwotI2VuZGlmIC8vIEZJTEVGSU5ERVJfSApkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC9JbWFnZXMuY3BwIGIvdG9vbHMvYWFwdC9JbWFnZXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNWE5NDhkLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvSW1hZ2VzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzODYgKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDA2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0vLyBCdWlsZCByZXNvdXJjZSBmaWxlcyBmcm9tIHJhdyBhc3NldHMuCi0vLwotCi0jZGVmaW5lIFBOR19JTlRFUk5BTAotCi0jaW5jbHVkZSAiSW1hZ2VzLmgiCi0KLSNpbmNsdWRlIDxhbmRyb2lkZncvUmVzb3VyY2VUeXBlcy5oPgotI2luY2x1ZGUgPHV0aWxzL0J5dGVPcmRlci5oPgotCi0jaW5jbHVkZSA8cG5nLmg+Ci0jaW5jbHVkZSA8emxpYi5oPgotCi0jZGVmaW5lIE5PSVNZKHgpIC8veAotCi1zdGF0aWMgdm9pZAotcG5nX3dyaXRlX2FhcHRfZmlsZShwbmdfc3RydWN0cCBwbmdfcHRyLCBwbmdfYnl0ZXAgZGF0YSwgcG5nX3NpemVfdCBsZW5ndGgpCi17Ci0gICAgQWFwdEZpbGUqIGFhcHRmaWxlID0gKEFhcHRGaWxlKikgcG5nX2dldF9pb19wdHIocG5nX3B0cik7Ci0gICAgc3RhdHVzX3QgZXJyID0gYWFwdGZpbGUtPndyaXRlRGF0YShkYXRhLCBsZW5ndGgpOwotICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgcG5nX2Vycm9yKHBuZ19wdHIsICJXcml0ZSBFcnJvciIpOwotICAgIH0KLX0KLQotCi1zdGF0aWMgdm9pZAotcG5nX2ZsdXNoX2FhcHRfZmlsZShwbmdfc3RydWN0cCBwbmdfcHRyKQotewotfQotCi0vLyBUaGlzIGhvbGRzIGFuIGltYWdlIGFzIDhicHAgUkdCQS4KLXN0cnVjdCBpbWFnZV9pbmZvCi17Ci0gICAgaW1hZ2VfaW5mbygpIDogcm93cyhOVUxMKSwgaXM5UGF0Y2goZmFsc2UpLCBhbGxvY1Jvd3MoTlVMTCkgeyB9Ci0gICAgfmltYWdlX2luZm8oKSB7Ci0gICAgICAgIGlmIChyb3dzICYmIHJvd3MgIT0gYWxsb2NSb3dzKSB7Ci0gICAgICAgICAgICBmcmVlKHJvd3MpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChhbGxvY1Jvd3MpIHsKLSAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTwoaW50KWFsbG9jSGVpZ2h0OyBpKyspIHsKLSAgICAgICAgICAgICAgICBmcmVlKGFsbG9jUm93c1tpXSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmcmVlKGFsbG9jUm93cyk7Ci0gICAgICAgIH0KLSAgICAgICAgZnJlZShpbmZvOVBhdGNoLnhEaXZzKTsKLSAgICAgICAgZnJlZShpbmZvOVBhdGNoLnlEaXZzKTsKLSAgICAgICAgZnJlZShpbmZvOVBhdGNoLmNvbG9ycyk7Ci0gICAgfQotCi0gICAgcG5nX3VpbnRfMzIgd2lkdGg7Ci0gICAgcG5nX3VpbnRfMzIgaGVpZ2h0OwotICAgIHBuZ19ieXRlcHAgcm93czsKLQotICAgIC8vIDktcGF0Y2ggaW5mby4KLSAgICBib29sIGlzOVBhdGNoOwotICAgIFJlc19wbmdfOXBhdGNoIGluZm85UGF0Y2g7Ci0KLSAgICAvLyBMYXlvdXQgcGFkZGluZywgaWYgcmVsZXZhbnQKLSAgICBib29sIGhhdmVMYXlvdXRCb3VuZHM7Ci0gICAgaW50MzJfdCBsYXlvdXRCb3VuZHNMZWZ0OwotICAgIGludDMyX3QgbGF5b3V0Qm91bmRzVG9wOwotICAgIGludDMyX3QgbGF5b3V0Qm91bmRzUmlnaHQ7Ci0gICAgaW50MzJfdCBsYXlvdXRCb3VuZHNCb3R0b207Ci0KLSAgICBwbmdfdWludF8zMiBhbGxvY0hlaWdodDsKLSAgICBwbmdfYnl0ZXBwIGFsbG9jUm93czsKLX07Ci0KLXN0YXRpYyB2b2lkIHJlYWRfcG5nKGNvbnN0IGNoYXIqIGltYWdlTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgIHBuZ19zdHJ1Y3RwIHJlYWRfcHRyLCBwbmdfaW5mb3AgcmVhZF9pbmZvLAotICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfaW5mbyogb3V0SW1hZ2VJbmZvKQotewotICAgIGludCBjb2xvcl90eXBlOwotICAgIGludCBiaXRfZGVwdGgsIGludGVybGFjZV90eXBlLCBjb21wcmVzc2lvbl90eXBlOwotICAgIGludCBpOwotCi0gICAgcG5nX3JlYWRfaW5mbyhyZWFkX3B0ciwgcmVhZF9pbmZvKTsKLQotICAgIHBuZ19nZXRfSUhEUihyZWFkX3B0ciwgcmVhZF9pbmZvLCAmb3V0SW1hZ2VJbmZvLT53aWR0aCwKLSAgICAgICAmb3V0SW1hZ2VJbmZvLT5oZWlnaHQsICZiaXRfZGVwdGgsICZjb2xvcl90eXBlLAotICAgICAgICZpbnRlcmxhY2VfdHlwZSwgJmNvbXByZXNzaW9uX3R5cGUsIE5VTEwpOwotCi0gICAgLy9wcmludGYoIkltYWdlICVzOlxuIiwgaW1hZ2VOYW1lKTsKLSAgICAvL3ByaW50ZigiY29sb3JfdHlwZT0lZCwgYml0X2RlcHRoPSVkLCBpbnRlcmxhY2VfdHlwZT0lZCwgY29tcHJlc3Npb25fdHlwZT0lZFxuIiwKLSAgICAvLyAgICAgICBjb2xvcl90eXBlLCBiaXRfZGVwdGgsIGludGVybGFjZV90eXBlLCBjb21wcmVzc2lvbl90eXBlKTsKLQotICAgIGlmIChjb2xvcl90eXBlID09IFBOR19DT0xPUl9UWVBFX1BBTEVUVEUpCi0gICAgICAgIHBuZ19zZXRfcGFsZXR0ZV90b19yZ2IocmVhZF9wdHIpOwotCi0gICAgaWYgKGNvbG9yX3R5cGUgPT0gUE5HX0NPTE9SX1RZUEVfR1JBWSAmJiBiaXRfZGVwdGggPCA4KQotICAgICAgICBwbmdfc2V0X2V4cGFuZF9ncmF5XzFfMl80X3RvXzgocmVhZF9wdHIpOwotCi0gICAgaWYgKHBuZ19nZXRfdmFsaWQocmVhZF9wdHIsIHJlYWRfaW5mbywgUE5HX0lORk9fdFJOUykpIHsKLSAgICAgICAgLy9wcmludGYoIkhhcyBQTkdfSU5GT190Uk5TIVxuIik7Ci0gICAgICAgIHBuZ19zZXRfdFJOU190b19hbHBoYShyZWFkX3B0cik7Ci0gICAgfQotCi0gICAgaWYgKGJpdF9kZXB0aCA9PSAxNikKLSAgICAgICAgcG5nX3NldF9zdHJpcF8xNihyZWFkX3B0cik7Ci0KLSAgICBpZiAoKGNvbG9yX3R5cGUmUE5HX0NPTE9SX01BU0tfQUxQSEEpID09IDApCi0gICAgICAgIHBuZ19zZXRfYWRkX2FscGhhKHJlYWRfcHRyLCAweEZGLCBQTkdfRklMTEVSX0FGVEVSKTsKLQotICAgIGlmIChjb2xvcl90eXBlID09IFBOR19DT0xPUl9UWVBFX0dSQVkgfHwgY29sb3JfdHlwZSA9PSBQTkdfQ09MT1JfVFlQRV9HUkFZX0FMUEhBKQotICAgICAgICBwbmdfc2V0X2dyYXlfdG9fcmdiKHJlYWRfcHRyKTsKLQotICAgIHBuZ19yZWFkX3VwZGF0ZV9pbmZvKHJlYWRfcHRyLCByZWFkX2luZm8pOwotCi0gICAgb3V0SW1hZ2VJbmZvLT5yb3dzID0gKHBuZ19ieXRlcHApbWFsbG9jKAotICAgICAgICBvdXRJbWFnZUluZm8tPmhlaWdodCAqIHNpemVvZihwbmdfYnl0ZXApKTsKLSAgICBvdXRJbWFnZUluZm8tPmFsbG9jSGVpZ2h0ID0gb3V0SW1hZ2VJbmZvLT5oZWlnaHQ7Ci0gICAgb3V0SW1hZ2VJbmZvLT5hbGxvY1Jvd3MgPSBvdXRJbWFnZUluZm8tPnJvd3M7Ci0KLSAgICBwbmdfc2V0X3Jvd3MocmVhZF9wdHIsIHJlYWRfaW5mbywgb3V0SW1hZ2VJbmZvLT5yb3dzKTsKLQotICAgIGZvciAoaSA9IDA7IGkgPCAoaW50KW91dEltYWdlSW5mby0+aGVpZ2h0OyBpKyspCi0gICAgewotICAgICAgICBvdXRJbWFnZUluZm8tPnJvd3NbaV0gPSAocG5nX2J5dGVwKQotICAgICAgICAgICAgbWFsbG9jKHBuZ19nZXRfcm93Ynl0ZXMocmVhZF9wdHIsIHJlYWRfaW5mbykpOwotICAgIH0KLQotICAgIHBuZ19yZWFkX2ltYWdlKHJlYWRfcHRyLCBvdXRJbWFnZUluZm8tPnJvd3MpOwotCi0gICAgcG5nX3JlYWRfZW5kKHJlYWRfcHRyLCByZWFkX2luZm8pOwotCi0gICAgTk9JU1kocHJpbnRmKCJJbWFnZSAlczogdz0lZCwgaD0lZCwgZD0lZCwgY29sb3JzPSVkLCBpbnRlcj0lZCwgY29tcD0lZFxuIiwKLSAgICAgICAgICAgICAgICAgaW1hZ2VOYW1lLAotICAgICAgICAgICAgICAgICAoaW50KW91dEltYWdlSW5mby0+d2lkdGgsIChpbnQpb3V0SW1hZ2VJbmZvLT5oZWlnaHQsCi0gICAgICAgICAgICAgICAgIGJpdF9kZXB0aCwgY29sb3JfdHlwZSwKLSAgICAgICAgICAgICAgICAgaW50ZXJsYWNlX3R5cGUsIGNvbXByZXNzaW9uX3R5cGUpKTsKLQotICAgIHBuZ19nZXRfSUhEUihyZWFkX3B0ciwgcmVhZF9pbmZvLCAmb3V0SW1hZ2VJbmZvLT53aWR0aCwKLSAgICAgICAmb3V0SW1hZ2VJbmZvLT5oZWlnaHQsICZiaXRfZGVwdGgsICZjb2xvcl90eXBlLAotICAgICAgICZpbnRlcmxhY2VfdHlwZSwgJmNvbXByZXNzaW9uX3R5cGUsIE5VTEwpOwotfQotCi0jZGVmaW5lIENPTE9SX1RSQU5TUEFSRU5UIDAKLSNkZWZpbmUgQ09MT1JfV0hJVEUgMHhGRkZGRkZGRgotI2RlZmluZSBDT0xPUl9USUNLICAweEZGMDAwMDAwCi0jZGVmaW5lIENPTE9SX0xBWU9VVF9CT1VORFNfVElDSyAweEZGMDAwMEZGCi0KLWVudW0gewotICAgIFRJQ0tfVFlQRV9OT05FLAotICAgIFRJQ0tfVFlQRV9USUNLLAotICAgIFRJQ0tfVFlQRV9MQVlPVVRfQk9VTkRTLAotICAgIFRJQ0tfVFlQRV9CT1RICi19OwotCi1zdGF0aWMgaW50IHRpY2tfdHlwZShwbmdfYnl0ZXAgcCwgYm9vbCB0cmFuc3BhcmVudCwgY29uc3QgY2hhcioqIG91dEVycm9yKQotewotICAgIHBuZ191aW50XzMyIGNvbG9yID0gcFswXSB8IChwWzFdIDw8IDgpIHwgKHBbMl0gPDwgMTYpIHwgKHBbM10gPDwgMjQpOwotCi0gICAgaWYgKHRyYW5zcGFyZW50KSB7Ci0gICAgICAgIGlmIChwWzNdID09IDApIHsKLSAgICAgICAgICAgIHJldHVybiBUSUNLX1RZUEVfTk9ORTsKLSAgICAgICAgfQotICAgICAgICBpZiAoY29sb3IgPT0gQ09MT1JfTEFZT1VUX0JPVU5EU19USUNLKSB7Ci0gICAgICAgICAgICByZXR1cm4gVElDS19UWVBFX0xBWU9VVF9CT1VORFM7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGNvbG9yID09IENPTE9SX1RJQ0spIHsKLSAgICAgICAgICAgIHJldHVybiBUSUNLX1RZUEVfVElDSzsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEVycm9yIGNhc2VzCi0gICAgICAgIGlmIChwWzNdICE9IDB4ZmYpIHsKLSAgICAgICAgICAgICpvdXRFcnJvciA9ICJGcmFtZSBwaXhlbHMgbXVzdCBiZSBlaXRoZXIgc29saWQgb3IgdHJhbnNwYXJlbnQgKG5vdCBpbnRlcm1lZGlhdGUgYWxwaGFzKSI7Ci0gICAgICAgICAgICByZXR1cm4gVElDS19UWVBFX05PTkU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHBbMF0gIT0gMCB8fCBwWzFdICE9IDAgfHwgcFsyXSAhPSAwKSB7Ci0gICAgICAgICAgICAqb3V0RXJyb3IgPSAiVGlja3MgaW4gdHJhbnNwYXJlbnQgZnJhbWUgbXVzdCBiZSBibGFjayBvciByZWQiOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBUSUNLX1RZUEVfVElDSzsKLSAgICB9Ci0KLSAgICBpZiAocFszXSAhPSAweEZGKSB7Ci0gICAgICAgICpvdXRFcnJvciA9ICJXaGl0ZSBmcmFtZSBtdXN0IGJlIGEgc29saWQgY29sb3IgKG5vIGFscGhhKSI7Ci0gICAgfQotICAgIGlmIChjb2xvciA9PSBDT0xPUl9XSElURSkgewotICAgICAgICByZXR1cm4gVElDS19UWVBFX05PTkU7Ci0gICAgfQotICAgIGlmIChjb2xvciA9PSBDT0xPUl9USUNLKSB7Ci0gICAgICAgIHJldHVybiBUSUNLX1RZUEVfVElDSzsKLSAgICB9Ci0gICAgaWYgKGNvbG9yID09IENPTE9SX0xBWU9VVF9CT1VORFNfVElDSykgewotICAgICAgICByZXR1cm4gVElDS19UWVBFX0xBWU9VVF9CT1VORFM7Ci0gICAgfQotCi0gICAgaWYgKHBbMF0gIT0gMCB8fCBwWzFdICE9IDAgfHwgcFsyXSAhPSAwKSB7Ci0gICAgICAgICpvdXRFcnJvciA9ICJUaWNrcyBpbiB3aGl0ZSBmcmFtZSBtdXN0IGJlIGJsYWNrIG9yIHJlZCI7Ci0gICAgICAgIHJldHVybiBUSUNLX1RZUEVfTk9ORTsKLSAgICB9Ci0gICAgcmV0dXJuIFRJQ0tfVFlQRV9USUNLOwotfQotCi1lbnVtIHsKLSAgICBUSUNLX1NUQVJULAotICAgIFRJQ0tfSU5TSURFXzEsCi0gICAgVElDS19PVVRTSURFXzEKLX07Ci0KLXN0YXRpYyBzdGF0dXNfdCBnZXRfaG9yaXpvbnRhbF90aWNrcygKLSAgICAgICAgcG5nX2J5dGVwIHJvdywgaW50IHdpZHRoLCBib29sIHRyYW5zcGFyZW50LCBib29sIHJlcXVpcmVkLAotICAgICAgICBpbnQzMl90KiBvdXRMZWZ0LCBpbnQzMl90KiBvdXRSaWdodCwgY29uc3QgY2hhcioqIG91dEVycm9yLAotICAgICAgICB1aW50OF90KiBvdXREaXZzLCBib29sIG11bHRpcGxlQWxsb3dlZCkKLXsKLSAgICBpbnQgaTsKLSAgICAqb3V0TGVmdCA9ICpvdXRSaWdodCA9IC0xOwotICAgIGludCBzdGF0ZSA9IFRJQ0tfU1RBUlQ7Ci0gICAgYm9vbCBmb3VuZCA9IGZhbHNlOwotCi0gICAgZm9yIChpPTE7IGk8d2lkdGgtMTsgaSsrKSB7Ci0gICAgICAgIGlmIChUSUNLX1RZUEVfVElDSyA9PSB0aWNrX3R5cGUocm93K2kqNCwgdHJhbnNwYXJlbnQsIG91dEVycm9yKSkgewotICAgICAgICAgICAgaWYgKHN0YXRlID09IFRJQ0tfU1RBUlQgfHwKLSAgICAgICAgICAgICAgICAoc3RhdGUgPT0gVElDS19PVVRTSURFXzEgJiYgbXVsdGlwbGVBbGxvd2VkKSkgewotICAgICAgICAgICAgICAgICpvdXRMZWZ0ID0gaS0xOwotICAgICAgICAgICAgICAgICpvdXRSaWdodCA9IHdpZHRoLTI7Ci0gICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwotICAgICAgICAgICAgICAgIGlmIChvdXREaXZzICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgKm91dERpdnMgKz0gMjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc3RhdGUgPSBUSUNLX0lOU0lERV8xOwotICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZSA9PSBUSUNLX09VVFNJREVfMSkgewotICAgICAgICAgICAgICAgICpvdXRFcnJvciA9ICJDYW4ndCBoYXZlIG1vcmUgdGhhbiBvbmUgbWFya2VkIHJlZ2lvbiBhbG9uZyBlZGdlIjsKLSAgICAgICAgICAgICAgICAqb3V0TGVmdCA9IGk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoKm91dEVycm9yID09IE5VTEwpIHsKLSAgICAgICAgICAgIGlmIChzdGF0ZSA9PSBUSUNLX0lOU0lERV8xKSB7Ci0gICAgICAgICAgICAgICAgLy8gV2UncmUgZG9uZSB3aXRoIHRoaXMgZGl2LiAgTW92ZSBvbiB0byB0aGUgbmV4dC4KLSAgICAgICAgICAgICAgICAqb3V0UmlnaHQgPSBpLTE7Ci0gICAgICAgICAgICAgICAgb3V0UmlnaHQgKz0gMjsKLSAgICAgICAgICAgICAgICBvdXRMZWZ0ICs9IDI7Ci0gICAgICAgICAgICAgICAgc3RhdGUgPSBUSUNLX09VVFNJREVfMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICpvdXRMZWZ0ID0gaTsKLSAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHJlcXVpcmVkICYmICFmb3VuZCkgewotICAgICAgICAqb3V0RXJyb3IgPSAiTm8gbWFya2VkIHJlZ2lvbiBmb3VuZCBhbG9uZyBlZGdlIjsKLSAgICAgICAgKm91dExlZnQgPSAtMTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotCi0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi1zdGF0aWMgc3RhdHVzX3QgZ2V0X3ZlcnRpY2FsX3RpY2tzKAotICAgICAgICBwbmdfYnl0ZXBwIHJvd3MsIGludCBvZmZzZXQsIGludCBoZWlnaHQsIGJvb2wgdHJhbnNwYXJlbnQsIGJvb2wgcmVxdWlyZWQsCi0gICAgICAgIGludDMyX3QqIG91dFRvcCwgaW50MzJfdCogb3V0Qm90dG9tLCBjb25zdCBjaGFyKiogb3V0RXJyb3IsCi0gICAgICAgIHVpbnQ4X3QqIG91dERpdnMsIGJvb2wgbXVsdGlwbGVBbGxvd2VkKQotewotICAgIGludCBpOwotICAgICpvdXRUb3AgPSAqb3V0Qm90dG9tID0gLTE7Ci0gICAgaW50IHN0YXRlID0gVElDS19TVEFSVDsKLSAgICBib29sIGZvdW5kID0gZmFsc2U7Ci0KLSAgICBmb3IgKGk9MTsgaTxoZWlnaHQtMTsgaSsrKSB7Ci0gICAgICAgIGlmIChUSUNLX1RZUEVfVElDSyA9PSB0aWNrX3R5cGUocm93c1tpXStvZmZzZXQsIHRyYW5zcGFyZW50LCBvdXRFcnJvcikpIHsKLSAgICAgICAgICAgIGlmIChzdGF0ZSA9PSBUSUNLX1NUQVJUIHx8Ci0gICAgICAgICAgICAgICAgKHN0YXRlID09IFRJQ0tfT1VUU0lERV8xICYmIG11bHRpcGxlQWxsb3dlZCkpIHsKLSAgICAgICAgICAgICAgICAqb3V0VG9wID0gaS0xOwotICAgICAgICAgICAgICAgICpvdXRCb3R0b20gPSBoZWlnaHQtMjsKLSAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaWYgKG91dERpdnMgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAqb3V0RGl2cyArPSAyOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzdGF0ZSA9IFRJQ0tfSU5TSURFXzE7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlID09IFRJQ0tfT1VUU0lERV8xKSB7Ci0gICAgICAgICAgICAgICAgKm91dEVycm9yID0gIkNhbid0IGhhdmUgbW9yZSB0aGFuIG9uZSBtYXJrZWQgcmVnaW9uIGFsb25nIGVkZ2UiOwotICAgICAgICAgICAgICAgICpvdXRUb3AgPSBpOwotICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKCpvdXRFcnJvciA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBpZiAoc3RhdGUgPT0gVElDS19JTlNJREVfMSkgewotICAgICAgICAgICAgICAgIC8vIFdlJ3JlIGRvbmUgd2l0aCB0aGlzIGRpdi4gIE1vdmUgb24gdG8gdGhlIG5leHQuCi0gICAgICAgICAgICAgICAgKm91dEJvdHRvbSA9IGktMTsKLSAgICAgICAgICAgICAgICBvdXRUb3AgKz0gMjsKLSAgICAgICAgICAgICAgICBvdXRCb3R0b20gKz0gMjsKLSAgICAgICAgICAgICAgICBzdGF0ZSA9IFRJQ0tfT1VUU0lERV8xOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgKm91dFRvcCA9IGk7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChyZXF1aXJlZCAmJiAhZm91bmQpIHsKLSAgICAgICAgKm91dEVycm9yID0gIk5vIG1hcmtlZCByZWdpb24gZm91bmQgYWxvbmcgZWRnZSI7Ci0gICAgICAgICpvdXRUb3AgPSAtMTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotCi0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi1zdGF0aWMgc3RhdHVzX3QgZ2V0X2hvcml6b250YWxfbGF5b3V0X2JvdW5kc190aWNrcygKLSAgICAgICAgcG5nX2J5dGVwIHJvdywgaW50IHdpZHRoLCBib29sIHRyYW5zcGFyZW50LCBib29sIHJlcXVpcmVkLAotICAgICAgICBpbnQzMl90KiBvdXRMZWZ0LCBpbnQzMl90KiBvdXRSaWdodCwgY29uc3QgY2hhcioqIG91dEVycm9yKQotewotICAgIGludCBpOwotICAgICpvdXRMZWZ0ID0gKm91dFJpZ2h0ID0gMDsKLQotICAgIC8vIExvb2sgZm9yIGxlZnQgdGljawotICAgIGlmIChUSUNLX1RZUEVfTEFZT1VUX0JPVU5EUyA9PSB0aWNrX3R5cGUocm93ICsgNCwgdHJhbnNwYXJlbnQsIG91dEVycm9yKSkgewotICAgICAgICAvLyBTdGFydGluZyB3aXRoIGEgbGF5b3V0IHBhZGRpbmcgdGljawotICAgICAgICBpID0gMTsKLSAgICAgICAgd2hpbGUgKGkgPCB3aWR0aCAtIDEpIHsKLSAgICAgICAgICAgICgqb3V0TGVmdCkrKzsKLSAgICAgICAgICAgIGkrKzsKLSAgICAgICAgICAgIGludCB0aWNrID0gdGlja190eXBlKHJvdyArIGkgKiA0LCB0cmFuc3BhcmVudCwgb3V0RXJyb3IpOwotICAgICAgICAgICAgaWYgKHRpY2sgIT0gVElDS19UWVBFX0xBWU9VVF9CT1VORFMpIHsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIExvb2sgZm9yIHJpZ2h0IHRpY2sKLSAgICBpZiAoVElDS19UWVBFX0xBWU9VVF9CT1VORFMgPT0gdGlja190eXBlKHJvdyArICh3aWR0aCAtIDIpICogNCwgdHJhbnNwYXJlbnQsIG91dEVycm9yKSkgewotICAgICAgICAvLyBFbmRpbmcgd2l0aCBhIGxheW91dCBwYWRkaW5nIHRpY2sKLSAgICAgICAgaSA9IHdpZHRoIC0gMjsKLSAgICAgICAgd2hpbGUgKGkgPiAxKSB7Ci0gICAgICAgICAgICAoKm91dFJpZ2h0KSsrOwotICAgICAgICAgICAgaS0tOwotICAgICAgICAgICAgaW50IHRpY2sgPSB0aWNrX3R5cGUocm93K2kqNCwgdHJhbnNwYXJlbnQsIG91dEVycm9yKTsKLSAgICAgICAgICAgIGlmICh0aWNrICE9IFRJQ0tfVFlQRV9MQVlPVVRfQk9VTkRTKSB7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXRpYyBzdGF0dXNfdCBnZXRfdmVydGljYWxfbGF5b3V0X2JvdW5kc190aWNrcygKLSAgICAgICAgcG5nX2J5dGVwcCByb3dzLCBpbnQgb2Zmc2V0LCBpbnQgaGVpZ2h0LCBib29sIHRyYW5zcGFyZW50LCBib29sIHJlcXVpcmVkLAotICAgICAgICBpbnQzMl90KiBvdXRUb3AsIGludDMyX3QqIG91dEJvdHRvbSwgY29uc3QgY2hhcioqIG91dEVycm9yKQotewotICAgIGludCBpOwotICAgICpvdXRUb3AgPSAqb3V0Qm90dG9tID0gMDsKLQotICAgIC8vIExvb2sgZm9yIHRvcCB0aWNrCi0gICAgaWYgKFRJQ0tfVFlQRV9MQVlPVVRfQk9VTkRTID09IHRpY2tfdHlwZShyb3dzWzFdICsgb2Zmc2V0LCB0cmFuc3BhcmVudCwgb3V0RXJyb3IpKSB7Ci0gICAgICAgIC8vIFN0YXJ0aW5nIHdpdGggYSBsYXlvdXQgcGFkZGluZyB0aWNrCi0gICAgICAgIGkgPSAxOwotICAgICAgICB3aGlsZSAoaSA8IGhlaWdodCAtIDEpIHsKLSAgICAgICAgICAgICgqb3V0VG9wKSsrOwotICAgICAgICAgICAgaSsrOwotICAgICAgICAgICAgaW50IHRpY2sgPSB0aWNrX3R5cGUocm93c1tpXSArIG9mZnNldCwgdHJhbnNwYXJlbnQsIG91dEVycm9yKTsKLSAgICAgICAgICAgIGlmICh0aWNrICE9IFRJQ0tfVFlQRV9MQVlPVVRfQk9VTkRTKSB7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBMb29rIGZvciBib3R0b20gdGljawotICAgIGlmIChUSUNLX1RZUEVfTEFZT1VUX0JPVU5EUyA9PSB0aWNrX3R5cGUocm93c1toZWlnaHQgLSAyXSArIG9mZnNldCwgdHJhbnNwYXJlbnQsIG91dEVycm9yKSkgewotICAgICAgICAvLyBFbmRpbmcgd2l0aCBhIGxheW91dCBwYWRkaW5nIHRpY2sKLSAgICAgICAgaSA9IGhlaWdodCAtIDI7Ci0gICAgICAgIHdoaWxlIChpID4gMSkgewotICAgICAgICAgICAgKCpvdXRCb3R0b20pKys7Ci0gICAgICAgICAgICBpLS07Ci0gICAgICAgICAgICBpbnQgdGljayA9IHRpY2tfdHlwZShyb3dzW2ldICsgb2Zmc2V0LCB0cmFuc3BhcmVudCwgb3V0RXJyb3IpOwotICAgICAgICAgICAgaWYgKHRpY2sgIT0gVElDS19UWVBFX0xBWU9VVF9CT1VORFMpIHsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotCi1zdGF0aWMgdWludDMyX3QgZ2V0X2NvbG9yKAotICAgIHBuZ19ieXRlcHAgcm93cywgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSkKLXsKLSAgICBwbmdfYnl0ZXAgY29sb3IgPSByb3dzW3RvcF0gKyBsZWZ0KjQ7Ci0KLSAgICBpZiAobGVmdCA+IHJpZ2h0IHx8IHRvcCA+IGJvdHRvbSkgewotICAgICAgICByZXR1cm4gUmVzX3BuZ185cGF0Y2g6OlRSQU5TUEFSRU5UX0NPTE9SOwotICAgIH0KLQotICAgIHdoaWxlICh0b3AgPD0gYm90dG9tKSB7Ci0gICAgICAgIGZvciAoaW50IGkgPSBsZWZ0OyBpIDw9IHJpZ2h0OyBpKyspIHsKLSAgICAgICAgICAgIHBuZ19ieXRlcCBwID0gcm93c1t0b3BdK2kqNDsKLSAgICAgICAgICAgIGlmIChjb2xvclszXSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHBbM10gIT0gMCkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzX3BuZ185cGF0Y2g6Ok5PX0NPTE9SOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAocFswXSAhPSBjb2xvclswXSB8fCBwWzFdICE9IGNvbG9yWzFdCi0gICAgICAgICAgICAgICAgICAgICAgIHx8IHBbMl0gIT0gY29sb3JbMl0gfHwgcFszXSAhPSBjb2xvclszXSkgewotICAgICAgICAgICAgICAgIHJldHVybiBSZXNfcG5nXzlwYXRjaDo6Tk9fQ09MT1I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgdG9wKys7Ci0gICAgfQotCi0gICAgaWYgKGNvbG9yWzNdID09IDApIHsKLSAgICAgICAgcmV0dXJuIFJlc19wbmdfOXBhdGNoOjpUUkFOU1BBUkVOVF9DT0xPUjsKLSAgICB9Ci0gICAgcmV0dXJuIChjb2xvclszXTw8MjQpIHwgKGNvbG9yWzBdPDwxNikgfCAoY29sb3JbMV08PDgpIHwgY29sb3JbMl07Ci19Ci0KLXN0YXRpYyB2b2lkIHNlbGVjdF9wYXRjaCgKLSAgICBpbnQgd2hpY2gsIGludCBmcm9udCwgaW50IGJhY2ssIGludCBzaXplLCBpbnQqIHN0YXJ0LCBpbnQqIGVuZCkKLXsKLSAgICBzd2l0Y2ggKHdoaWNoKSB7Ci0gICAgY2FzZSAwOgotICAgICAgICAqc3RhcnQgPSAwOwotICAgICAgICAqZW5kID0gZnJvbnQtMTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAxOgotICAgICAgICAqc3RhcnQgPSBmcm9udDsKLSAgICAgICAgKmVuZCA9IGJhY2stMTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAyOgotICAgICAgICAqc3RhcnQgPSBiYWNrOwotICAgICAgICAqZW5kID0gc2l6ZS0xOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXN0YXRpYyB1aW50MzJfdCBnZXRfY29sb3IoaW1hZ2VfaW5mbyogaW1hZ2UsIGludCBocGF0Y2gsIGludCB2cGF0Y2gpCi17Ci0gICAgaW50IGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbTsKLSAgICBzZWxlY3RfcGF0Y2goCi0gICAgICAgIGhwYXRjaCwgaW1hZ2UtPmluZm85UGF0Y2gueERpdnNbMF0sIGltYWdlLT5pbmZvOVBhdGNoLnhEaXZzWzFdLAotICAgICAgICBpbWFnZS0+d2lkdGgsICZsZWZ0LCAmcmlnaHQpOwotICAgIHNlbGVjdF9wYXRjaCgKLSAgICAgICAgdnBhdGNoLCBpbWFnZS0+aW5mbzlQYXRjaC55RGl2c1swXSwgaW1hZ2UtPmluZm85UGF0Y2gueURpdnNbMV0sCi0gICAgICAgIGltYWdlLT5oZWlnaHQsICZ0b3AsICZib3R0b20pOwotICAgIC8vcHJpbnRmKCJTZWxlY3RpbmcgaD0lZCB2PSVkOiAoJWQsJWQpLSglZCwlZClcbiIsCi0gICAgLy8gICAgICAgaHBhdGNoLCB2cGF0Y2gsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSk7Ci0gICAgY29uc3QgdWludDMyX3QgYyA9IGdldF9jb2xvcihpbWFnZS0+cm93cywgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tKTsKLSAgICBOT0lTWShwcmludGYoIkNvbG9yIGluICglZCwlZCktKCVkLCVkKTogIyUwOHhcbiIsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSwgYykpOwotICAgIHJldHVybiBjOwotfQotCi1zdGF0aWMgc3RhdHVzX3QgZG9fOXBhdGNoKGNvbnN0IGNoYXIqIGltYWdlTmFtZSwgaW1hZ2VfaW5mbyogaW1hZ2UpCi17Ci0gICAgaW1hZ2UtPmlzOVBhdGNoID0gdHJ1ZTsKLQotICAgIGludCBXID0gaW1hZ2UtPndpZHRoOwotICAgIGludCBIID0gaW1hZ2UtPmhlaWdodDsKLSAgICBpbnQgaSwgajsKLQotICAgIGludCBtYXhTaXplWERpdnMgPSBXICogc2l6ZW9mKGludDMyX3QpOwotICAgIGludCBtYXhTaXplWURpdnMgPSBIICogc2l6ZW9mKGludDMyX3QpOwotICAgIGludDMyX3QqIHhEaXZzID0gaW1hZ2UtPmluZm85UGF0Y2gueERpdnMgPSAoaW50MzJfdCopIG1hbGxvYyhtYXhTaXplWERpdnMpOwotICAgIGludDMyX3QqIHlEaXZzID0gaW1hZ2UtPmluZm85UGF0Y2gueURpdnMgPSAoaW50MzJfdCopIG1hbGxvYyhtYXhTaXplWURpdnMpOwotICAgIHVpbnQ4X3QgbnVtWERpdnMgPSAwOwotICAgIHVpbnQ4X3QgbnVtWURpdnMgPSAwOwotCi0gICAgaW50OF90IG51bUNvbG9yczsKLSAgICBpbnQgbnVtUm93czsKLSAgICBpbnQgbnVtQ29sczsKLSAgICBpbnQgdG9wOwotICAgIGludCBsZWZ0OwotICAgIGludCByaWdodDsKLSAgICBpbnQgYm90dG9tOwotICAgIG1lbXNldCh4RGl2cywgLTEsIG1heFNpemVYRGl2cyk7Ci0gICAgbWVtc2V0KHlEaXZzLCAtMSwgbWF4U2l6ZVlEaXZzKTsKLSAgICBpbWFnZS0+aW5mbzlQYXRjaC5wYWRkaW5nTGVmdCA9IGltYWdlLT5pbmZvOVBhdGNoLnBhZGRpbmdSaWdodCA9Ci0gICAgICAgIGltYWdlLT5pbmZvOVBhdGNoLnBhZGRpbmdUb3AgPSBpbWFnZS0+aW5mbzlQYXRjaC5wYWRkaW5nQm90dG9tID0gLTE7Ci0KLSAgICBpbWFnZS0+bGF5b3V0Qm91bmRzTGVmdCA9IGltYWdlLT5sYXlvdXRCb3VuZHNSaWdodCA9Ci0gICAgICAgIGltYWdlLT5sYXlvdXRCb3VuZHNUb3AgPSBpbWFnZS0+bGF5b3V0Qm91bmRzQm90dG9tID0gMDsKLQotICAgIHBuZ19ieXRlcCBwID0gaW1hZ2UtPnJvd3NbMF07Ci0gICAgYm9vbCB0cmFuc3BhcmVudCA9IHBbM10gPT0gMDsKLSAgICBib29sIGhhc0NvbG9yID0gZmFsc2U7Ci0KLSAgICBjb25zdCBjaGFyKiBlcnJvck1zZyA9IE5VTEw7Ci0gICAgaW50IGVycm9yUGl4ZWwgPSAtMTsKLSAgICBjb25zdCBjaGFyKiBlcnJvckVkZ2UgPSBOVUxMOwotCi0gICAgaW50IGNvbG9ySW5kZXggPSAwOwotCi0gICAgLy8gVmFsaWRhdGUgc2l6ZS4uLgotICAgIGlmIChXIDwgMyB8fCBIIDwgMykgewotICAgICAgICBlcnJvck1zZyA9ICJJbWFnZSBtdXN0IGJlIGF0IGxlYXN0IDN4MyAoMXgxIHdpdGhvdXQgZnJhbWUpIHBpeGVscyI7Ci0gICAgICAgIGdvdG8gZ2V0b3V0OwotICAgIH0KLQotICAgIC8vIFZhbGlkYXRlIGZyYW1lLi4uCi0gICAgaWYgKCF0cmFuc3BhcmVudCAmJgotICAgICAgICAocFswXSAhPSAweEZGIHx8IHBbMV0gIT0gMHhGRiB8fCBwWzJdICE9IDB4RkYgfHwgcFszXSAhPSAweEZGKSkgewotICAgICAgICBlcnJvck1zZyA9ICJNdXN0IGhhdmUgb25lLXBpeGVsIGZyYW1lIHRoYXQgaXMgZWl0aGVyIHRyYW5zcGFyZW50IG9yIHdoaXRlIjsKLSAgICAgICAgZ290byBnZXRvdXQ7Ci0gICAgfQotCi0gICAgLy8gRmluZCBsZWZ0IGFuZCByaWdodCBvZiBzaXppbmcgYXJlYXMuLi4KLSAgICBpZiAoZ2V0X2hvcml6b250YWxfdGlja3MocCwgVywgdHJhbnNwYXJlbnQsIHRydWUsICZ4RGl2c1swXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnhEaXZzWzFdLCAmZXJyb3JNc2csICZudW1YRGl2cywgdHJ1ZSkgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgZXJyb3JQaXhlbCA9IHhEaXZzWzBdOwotICAgICAgICBlcnJvckVkZ2UgPSAidG9wIjsKLSAgICAgICAgZ290byBnZXRvdXQ7Ci0gICAgfQotCi0gICAgLy8gRmluZCB0b3AgYW5kIGJvdHRvbSBvZiBzaXppbmcgYXJlYXMuLi4KLSAgICBpZiAoZ2V0X3ZlcnRpY2FsX3RpY2tzKGltYWdlLT5yb3dzLCAwLCBILCB0cmFuc3BhcmVudCwgdHJ1ZSwgJnlEaXZzWzBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJnlEaXZzWzFdLCAmZXJyb3JNc2csICZudW1ZRGl2cywgdHJ1ZSkgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgZXJyb3JQaXhlbCA9IHlEaXZzWzBdOwotICAgICAgICBlcnJvckVkZ2UgPSAibGVmdCI7Ci0gICAgICAgIGdvdG8gZ2V0b3V0OwotICAgIH0KLQotICAgIC8vIENvcHkgcGF0Y2ggc2l6ZSBkYXRhIGludG8gaW1hZ2UuLi4KLSAgICBpbWFnZS0+aW5mbzlQYXRjaC5udW1YRGl2cyA9IG51bVhEaXZzOwotICAgIGltYWdlLT5pbmZvOVBhdGNoLm51bVlEaXZzID0gbnVtWURpdnM7Ci0KLSAgICAvLyBGaW5kIGxlZnQgYW5kIHJpZ2h0IG9mIHBhZGRpbmcgYXJlYS4uLgotICAgIGlmIChnZXRfaG9yaXpvbnRhbF90aWNrcyhpbWFnZS0+cm93c1tILTFdLCBXLCB0cmFuc3BhcmVudCwgZmFsc2UsICZpbWFnZS0+aW5mbzlQYXRjaC5wYWRkaW5nTGVmdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmltYWdlLT5pbmZvOVBhdGNoLnBhZGRpbmdSaWdodCwgJmVycm9yTXNnLCBOVUxMLCBmYWxzZSkgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgZXJyb3JQaXhlbCA9IGltYWdlLT5pbmZvOVBhdGNoLnBhZGRpbmdMZWZ0OwotICAgICAgICBlcnJvckVkZ2UgPSAiYm90dG9tIjsKLSAgICAgICAgZ290byBnZXRvdXQ7Ci0gICAgfQotCi0gICAgLy8gRmluZCB0b3AgYW5kIGJvdHRvbSBvZiBwYWRkaW5nIGFyZWEuLi4KLSAgICBpZiAoZ2V0X3ZlcnRpY2FsX3RpY2tzKGltYWdlLT5yb3dzLCAoVy0xKSo0LCBILCB0cmFuc3BhcmVudCwgZmFsc2UsICZpbWFnZS0+aW5mbzlQYXRjaC5wYWRkaW5nVG9wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJmltYWdlLT5pbmZvOVBhdGNoLnBhZGRpbmdCb3R0b20sICZlcnJvck1zZywgTlVMTCwgZmFsc2UpICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIGVycm9yUGl4ZWwgPSBpbWFnZS0+aW5mbzlQYXRjaC5wYWRkaW5nVG9wOwotICAgICAgICBlcnJvckVkZ2UgPSAicmlnaHQiOwotICAgICAgICBnb3RvIGdldG91dDsKLSAgICB9Ci0KLSAgICAvLyBGaW5kIGxlZnQgYW5kIHJpZ2h0IG9mIGxheW91dCBwYWRkaW5nLi4uCi0gICAgZ2V0X2hvcml6b250YWxfbGF5b3V0X2JvdW5kc190aWNrcyhpbWFnZS0+cm93c1tILTFdLCBXLCB0cmFuc3BhcmVudCwgZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmltYWdlLT5sYXlvdXRCb3VuZHNMZWZ0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbWFnZS0+bGF5b3V0Qm91bmRzUmlnaHQsICZlcnJvck1zZyk7Ci0KLSAgICBnZXRfdmVydGljYWxfbGF5b3V0X2JvdW5kc190aWNrcyhpbWFnZS0+cm93cywgKFctMSkqNCwgSCwgdHJhbnNwYXJlbnQsIGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbWFnZS0+bGF5b3V0Qm91bmRzVG9wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbWFnZS0+bGF5b3V0Qm91bmRzQm90dG9tLCAmZXJyb3JNc2cpOwotCi0gICAgaW1hZ2UtPmhhdmVMYXlvdXRCb3VuZHMgPSBpbWFnZS0+bGF5b3V0Qm91bmRzTGVmdCAhPSAwCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgaW1hZ2UtPmxheW91dEJvdW5kc1JpZ2h0ICE9IDAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBpbWFnZS0+bGF5b3V0Qm91bmRzVG9wICE9IDAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBpbWFnZS0+bGF5b3V0Qm91bmRzQm90dG9tICE9IDA7Ci0KLSAgICBpZiAoaW1hZ2UtPmhhdmVMYXlvdXRCb3VuZHMpIHsKLSAgICAgICAgTk9JU1kocHJpbnRmKCJsYXlvdXRCb3VuZHM9JWQgJWQgJWQgJWRcbiIsIGltYWdlLT5sYXlvdXRCb3VuZHNMZWZ0LCBpbWFnZS0+bGF5b3V0Qm91bmRzVG9wLAotICAgICAgICAgICAgICAgIGltYWdlLT5sYXlvdXRCb3VuZHNSaWdodCwgaW1hZ2UtPmxheW91dEJvdW5kc0JvdHRvbSkpOwotICAgIH0KLQotICAgIC8vIElmIHBhZGRpbmcgaXMgbm90IHlldCBzcGVjaWZpZWQsIHRha2UgdmFsdWVzIGZyb20gc2l6ZS4KLSAgICBpZiAoaW1hZ2UtPmluZm85UGF0Y2gucGFkZGluZ0xlZnQgPCAwKSB7Ci0gICAgICAgIGltYWdlLT5pbmZvOVBhdGNoLnBhZGRpbmdMZWZ0ID0geERpdnNbMF07Ci0gICAgICAgIGltYWdlLT5pbmZvOVBhdGNoLnBhZGRpbmdSaWdodCA9IFcgLSAyIC0geERpdnNbMV07Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gQWRqdXN0IHZhbHVlIHRvIGJlIGNvcnJlY3QhCi0gICAgICAgIGltYWdlLT5pbmZvOVBhdGNoLnBhZGRpbmdSaWdodCA9IFcgLSAyIC0gaW1hZ2UtPmluZm85UGF0Y2gucGFkZGluZ1JpZ2h0OwotICAgIH0KLSAgICBpZiAoaW1hZ2UtPmluZm85UGF0Y2gucGFkZGluZ1RvcCA8IDApIHsKLSAgICAgICAgaW1hZ2UtPmluZm85UGF0Y2gucGFkZGluZ1RvcCA9IHlEaXZzWzBdOwotICAgICAgICBpbWFnZS0+aW5mbzlQYXRjaC5wYWRkaW5nQm90dG9tID0gSCAtIDIgLSB5RGl2c1sxXTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBBZGp1c3QgdmFsdWUgdG8gYmUgY29ycmVjdCEKLSAgICAgICAgaW1hZ2UtPmluZm85UGF0Y2gucGFkZGluZ0JvdHRvbSA9IEggLSAyIC0gaW1hZ2UtPmluZm85UGF0Y2gucGFkZGluZ0JvdHRvbTsKLSAgICB9Ci0KLSAgICBOT0lTWShwcmludGYoIlNpemUgdGlja3MgZm9yICVzOiB4MD0lZCwgeDE9JWQsIHkwPSVkLCB5MT0lZFxuIiwgaW1hZ2VOYW1lLAotICAgICAgICAgICAgICAgICBpbWFnZS0+aW5mbzlQYXRjaC54RGl2c1swXSwgaW1hZ2UtPmluZm85UGF0Y2gueERpdnNbMV0sCi0gICAgICAgICAgICAgICAgIGltYWdlLT5pbmZvOVBhdGNoLnlEaXZzWzBdLCBpbWFnZS0+aW5mbzlQYXRjaC55RGl2c1sxXSkpOwotICAgIE5PSVNZKHByaW50ZigicGFkZGluZyB0aWNrcyBmb3IgJXM6IGw9JWQsIHI9JWQsIHQ9JWQsIGI9JWRcbiIsIGltYWdlTmFtZSwKLSAgICAgICAgICAgICAgICAgaW1hZ2UtPmluZm85UGF0Y2gucGFkZGluZ0xlZnQsIGltYWdlLT5pbmZvOVBhdGNoLnBhZGRpbmdSaWdodCwKLSAgICAgICAgICAgICAgICAgaW1hZ2UtPmluZm85UGF0Y2gucGFkZGluZ1RvcCwgaW1hZ2UtPmluZm85UGF0Y2gucGFkZGluZ0JvdHRvbSkpOwotCi0gICAgLy8gUmVtb3ZlIGZyYW1lIGZyb20gaW1hZ2UuCi0gICAgaW1hZ2UtPnJvd3MgPSAocG5nX2J5dGVwcCltYWxsb2MoKEgtMikgKiBzaXplb2YocG5nX2J5dGVwKSk7Ci0gICAgZm9yIChpPTA7IGk8KEgtMik7IGkrKykgewotICAgICAgICBpbWFnZS0+cm93c1tpXSA9IGltYWdlLT5hbGxvY1Jvd3NbaSsxXTsKLSAgICAgICAgbWVtbW92ZShpbWFnZS0+cm93c1tpXSwgaW1hZ2UtPnJvd3NbaV0rNCwgKFctMikqNCk7Ci0gICAgfQotICAgIGltYWdlLT53aWR0aCAtPSAyOwotICAgIFcgPSBpbWFnZS0+d2lkdGg7Ci0gICAgaW1hZ2UtPmhlaWdodCAtPSAyOwotICAgIEggPSBpbWFnZS0+aGVpZ2h0OwotCi0gICAgLy8gRmlndXJlIG91dCB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMgaW4gdGhlIE4tcGF0Y2gKLSAgICBudW1Db2xzID0gbnVtWERpdnMgKyAxOwotICAgIGlmICh4RGl2c1swXSA9PSAwKSB7ICAvLyBDb2x1bW4gMSBpcyBzdHJlY2hhYmxlCi0gICAgICAgIG51bUNvbHMtLTsKLSAgICB9Ci0gICAgaWYgKHhEaXZzW251bVhEaXZzIC0gMV0gPT0gVykgewotICAgICAgICBudW1Db2xzLS07Ci0gICAgfQotICAgIG51bVJvd3MgPSBudW1ZRGl2cyArIDE7Ci0gICAgaWYgKHlEaXZzWzBdID09IDApIHsgIC8vIFJvdyAxIGlzIHN0cmVjaGFibGUKLSAgICAgICAgbnVtUm93cy0tOwotICAgIH0KLSAgICBpZiAoeURpdnNbbnVtWURpdnMgLSAxXSA9PSBIKSB7Ci0gICAgICAgIG51bVJvd3MtLTsKLSAgICB9Ci0KLSAgICAvLyBNYWtlIHN1cmUgdGhlIGFtb3VudCBvZiByb3dzIGFuZCBjb2x1bW5zIHdpbGwgZml0IGluIHRoZSBudW1iZXIgb2YKLSAgICAvLyBjb2xvcnMgd2UgY2FuIHVzZSBpbiB0aGUgOS1wYXRjaCBmb3JtYXQuCi0gICAgaWYgKG51bVJvd3MgKiBudW1Db2xzID4gMHg3RikgewotICAgICAgICBlcnJvck1zZyA9ICJUb28gbWFueSByb3dzIGFuZCBjb2x1bW5zIGluIDktcGF0Y2ggcGVyaW1ldGVyIjsKLSAgICAgICAgZ290byBnZXRvdXQ7Ci0gICAgfQotCi0gICAgbnVtQ29sb3JzID0gbnVtUm93cyAqIG51bUNvbHM7Ci0gICAgaW1hZ2UtPmluZm85UGF0Y2gubnVtQ29sb3JzID0gbnVtQ29sb3JzOwotICAgIGltYWdlLT5pbmZvOVBhdGNoLmNvbG9ycyA9ICh1aW50MzJfdCopbWFsbG9jKG51bUNvbG9ycyAqIHNpemVvZih1aW50MzJfdCkpOwotCi0gICAgLy8gRmlsbCBpbiBjb2xvciBpbmZvcm1hdGlvbiBmb3IgZWFjaCBwYXRjaC4KLQotICAgIHVpbnQzMl90IGM7Ci0gICAgdG9wID0gMDsKLQotICAgIC8vIFRoZSBmaXJzdCByb3cgYWx3YXlzIHN0YXJ0cyB3aXRoIHRoZSB0b3AgYmVpbmcgYXQgeT0wIGFuZCB0aGUgYm90dG9tCi0gICAgLy8gYmVpbmcgZWl0aGVyIHlEaXZzWzFdIChpZiB5RGl2c1swXT0wKSBvZiB5RGl2c1swXS4gIEluIHRoZSBmb3JtZXIgY2FzZQotICAgIC8vIHRoZSBmaXJzdCByb3cgaXMgc3RyZXRjaGFibGUgYWxvbmcgdGhlIFkgYXhpcywgb3RoZXJ3aXNlIGl0IGlzIGZpeGVkLgotICAgIC8vIFRoZSBsYXN0IHJvdyBhbHdheXMgZW5kcyB3aXRoIHRoZSBib3R0b20gYmVpbmcgYml0bWFwLmhlaWdodCBhbmQgdGhlIHRvcAotICAgIC8vIGJlaW5nIGVpdGhlciB5RGl2c1tudW1ZRGl2cy0yXSAoaWYgeURpdnNbbnVtWURpdnMtMV09Yml0bWFwLmhlaWdodCkgb3IKLSAgICAvLyB5RGl2c1tudW1ZRGl2cy0xXS4gSW4gdGhlIGZvcm1lciBjYXNlIHRoZSBsYXN0IHJvdyBpcyBzdHJldGNoYWJsZSBhbG9uZwotICAgIC8vIHRoZSBZIGF4aXMsIG90aGVyd2lzZSBpdCBpcyBmaXhlZC4KLSAgICAvLwotICAgIC8vIFRoZSBmaXJzdCBhbmQgbGFzdCBjb2x1bW5zIGFyZSBzaW1pbGFybHkgdHJlYXRlZCB3aXRoIHJlc3BlY3QgdG8gdGhlIFgKLSAgICAvLyBheGlzLgotICAgIC8vCi0gICAgLy8gVGhlIGFib3ZlIGlzIHRvIGhlbHAgZXhwbGFpbiBzb21lIG9mIHRoZSBzcGVjaWFsIGNhc2luZyB0aGF0IGdvZXMgb24gdGhlCi0gICAgLy8gY29kZSBiZWxvdy4KLQotICAgIC8vIFRoZSBpbml0aWFsIHlEaXYgYW5kIHdoZXRoZXIgdGhlIGZpcnN0IHJvdyBpcyBjb25zaWRlcmVkIHN0cmV0Y2hhYmxlIG9yCi0gICAgLy8gbm90IGRlcGVuZHMgb24gd2hldGhlciB5RGl2WzBdIHdhcyB6ZXJvIG9yIG5vdC4KLSAgICBmb3IgKGogPSAoeURpdnNbMF0gPT0gMCA/IDEgOiAwKTsKLSAgICAgICAgICBqIDw9IG51bVlEaXZzICYmIHRvcCA8IEg7Ci0gICAgICAgICAgaisrKSB7Ci0gICAgICAgIGlmIChqID09IG51bVlEaXZzKSB7Ci0gICAgICAgICAgICBib3R0b20gPSBIOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYm90dG9tID0geURpdnNbal07Ci0gICAgICAgIH0KLSAgICAgICAgbGVmdCA9IDA7Ci0gICAgICAgIC8vIFRoZSBpbml0aWFsIHhEaXYgYW5kIHdoZXRoZXIgdGhlIGZpcnN0IGNvbHVtbiBpcyBjb25zaWRlcmVkCi0gICAgICAgIC8vIHN0cmV0Y2hhYmxlIG9yIG5vdCBkZXBlbmRzIG9uIHdoZXRoZXIgeERpdlswXSB3YXMgemVybyBvciBub3QuCi0gICAgICAgIGZvciAoaSA9IHhEaXZzWzBdID09IDAgPyAxIDogMDsKLSAgICAgICAgICAgICAgaSA8PSBudW1YRGl2cyAmJiBsZWZ0IDwgVzsKLSAgICAgICAgICAgICAgaSsrKSB7Ci0gICAgICAgICAgICBpZiAoaSA9PSBudW1YRGl2cykgewotICAgICAgICAgICAgICAgIHJpZ2h0ID0gVzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmlnaHQgPSB4RGl2c1tpXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGMgPSBnZXRfY29sb3IoaW1hZ2UtPnJvd3MsIGxlZnQsIHRvcCwgcmlnaHQgLSAxLCBib3R0b20gLSAxKTsKLSAgICAgICAgICAgIGltYWdlLT5pbmZvOVBhdGNoLmNvbG9yc1tjb2xvckluZGV4KytdID0gYzsKLSAgICAgICAgICAgIE5PSVNZKGlmIChjICE9IFJlc19wbmdfOXBhdGNoOjpOT19DT0xPUikgaGFzQ29sb3IgPSB0cnVlKTsKLSAgICAgICAgICAgIGxlZnQgPSByaWdodDsKLSAgICAgICAgfQotICAgICAgICB0b3AgPSBib3R0b207Ci0gICAgfQotCi0gICAgYXNzZXJ0KGNvbG9ySW5kZXggPT0gbnVtQ29sb3JzKTsKLQotICAgIGZvciAoaT0wOyBpPG51bUNvbG9yczsgaSsrKSB7Ci0gICAgICAgIGlmIChoYXNDb2xvcikgewotICAgICAgICAgICAgaWYgKGkgPT0gMCkgcHJpbnRmKCJDb2xvcnMgaW4gJXM6XG4gIiwgaW1hZ2VOYW1lKTsKLSAgICAgICAgICAgIHByaW50ZigiICMlMDh4IiwgaW1hZ2UtPmluZm85UGF0Y2guY29sb3JzW2ldKTsKLSAgICAgICAgICAgIGlmIChpID09IG51bUNvbG9ycyAtIDEpIHByaW50ZigiXG4iKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGltYWdlLT5pczlQYXRjaCA9IHRydWU7Ci0gICAgaW1hZ2UtPmluZm85UGF0Y2guZGV2aWNlVG9GaWxlKCk7Ci0KLWdldG91dDoKLSAgICBpZiAoZXJyb3JNc2cpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICAgICAiRVJST1I6IDktcGF0Y2ggaW1hZ2UgJXMgbWFsZm9ybWVkLlxuIgotICAgICAgICAgICAgIiAgICAgICAlcy5cbiIsIGltYWdlTmFtZSwgZXJyb3JNc2cpOwotICAgICAgICBpZiAoZXJyb3JFZGdlICE9IE5VTEwpIHsKLSAgICAgICAgICAgIGlmIChlcnJvclBpeGVsID49IDApIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAgICAgICAgICAgICAgIiAgICAgICBGb3VuZCBhdCBwaXhlbCAjJWQgYWxvbmcgJXMgZWRnZS5cbiIsIGVycm9yUGl4ZWwsIGVycm9yRWRnZSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAgICAgICAgICAgICAiICAgICAgIEZvdW5kIGFsb25nICVzIGVkZ2UuXG4iLCBlcnJvckVkZ2UpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXRpYyB2b2lkIGNoZWNrTmluZVBhdGNoU2VyaWFsaXphdGlvbihSZXNfcG5nXzlwYXRjaCogaW5QYXRjaCwgIHZvaWQgKiBkYXRhKQotewotICAgIGlmIChzaXplb2Yodm9pZCopICE9IHNpemVvZihpbnQzMl90KSkgewotICAgICAgICAvLyBjYW4ndCBkZXNlcmlhbGl6ZSBvbiBhIG5vbi0zMiBiaXQgc3lzdGVtCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgc2l6ZV90IHBhdGNoU2l6ZSA9IGluUGF0Y2gtPnNlcmlhbGl6ZWRTaXplKCk7Ci0gICAgdm9pZCAqIG5ld0RhdGEgPSBtYWxsb2MocGF0Y2hTaXplKTsKLSAgICBtZW1jcHkobmV3RGF0YSwgZGF0YSwgcGF0Y2hTaXplKTsKLSAgICBSZXNfcG5nXzlwYXRjaCogb3V0UGF0Y2ggPSBpblBhdGNoLT5kZXNlcmlhbGl6ZShuZXdEYXRhKTsKLSAgICAvLyBkZXNlcmlhbGl6YXRpb24gaXMgZG9uZSBpbiBwbGFjZSwgc28gb3V0UGF0Y2ggPT0gbmV3RGF0YQotICAgIGFzc2VydChvdXRQYXRjaCA9PSBuZXdEYXRhKTsKLSAgICBhc3NlcnQob3V0UGF0Y2gtPm51bVhEaXZzID09IGluUGF0Y2gtPm51bVhEaXZzKTsKLSAgICBhc3NlcnQob3V0UGF0Y2gtPm51bVlEaXZzID09IGluUGF0Y2gtPm51bVlEaXZzKTsKLSAgICBhc3NlcnQob3V0UGF0Y2gtPnBhZGRpbmdMZWZ0ID09IGluUGF0Y2gtPnBhZGRpbmdMZWZ0KTsKLSAgICBhc3NlcnQob3V0UGF0Y2gtPnBhZGRpbmdSaWdodCA9PSBpblBhdGNoLT5wYWRkaW5nUmlnaHQpOwotICAgIGFzc2VydChvdXRQYXRjaC0+cGFkZGluZ1RvcCA9PSBpblBhdGNoLT5wYWRkaW5nVG9wKTsKLSAgICBhc3NlcnQob3V0UGF0Y2gtPnBhZGRpbmdCb3R0b20gPT0gaW5QYXRjaC0+cGFkZGluZ0JvdHRvbSk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvdXRQYXRjaC0+bnVtWERpdnM7IGkrKykgewotICAgICAgICBhc3NlcnQob3V0UGF0Y2gtPnhEaXZzW2ldID09IGluUGF0Y2gtPnhEaXZzW2ldKTsKLSAgICB9Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvdXRQYXRjaC0+bnVtWURpdnM7IGkrKykgewotICAgICAgICBhc3NlcnQob3V0UGF0Y2gtPnlEaXZzW2ldID09IGluUGF0Y2gtPnlEaXZzW2ldKTsKLSAgICB9Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvdXRQYXRjaC0+bnVtQ29sb3JzOyBpKyspIHsKLSAgICAgICAgYXNzZXJ0KG91dFBhdGNoLT5jb2xvcnNbaV0gPT0gaW5QYXRjaC0+Y29sb3JzW2ldKTsKLSAgICB9Ci0gICAgZnJlZShuZXdEYXRhKTsKLX0KLQotc3RhdGljIGJvb2wgcGF0Y2hfZXF1YWxzKFJlc19wbmdfOXBhdGNoJiBwYXRjaDEsIFJlc19wbmdfOXBhdGNoJiBwYXRjaDIpIHsKLSAgICBpZiAoIShwYXRjaDEubnVtWERpdnMgPT0gcGF0Y2gyLm51bVhEaXZzICYmCi0gICAgICAgICAgcGF0Y2gxLm51bVlEaXZzID09IHBhdGNoMi5udW1ZRGl2cyAmJgotICAgICAgICAgIHBhdGNoMS5udW1Db2xvcnMgPT0gcGF0Y2gyLm51bUNvbG9ycyAmJgotICAgICAgICAgIHBhdGNoMS5wYWRkaW5nTGVmdCA9PSBwYXRjaDIucGFkZGluZ0xlZnQgJiYKLSAgICAgICAgICBwYXRjaDEucGFkZGluZ1JpZ2h0ID09IHBhdGNoMi5wYWRkaW5nUmlnaHQgJiYKLSAgICAgICAgICBwYXRjaDEucGFkZGluZ1RvcCA9PSBwYXRjaDIucGFkZGluZ1RvcCAmJgotICAgICAgICAgIHBhdGNoMS5wYWRkaW5nQm90dG9tID09IHBhdGNoMi5wYWRkaW5nQm90dG9tKSkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhdGNoMS5udW1Db2xvcnM7IGkrKykgewotICAgICAgICBpZiAocGF0Y2gxLmNvbG9yc1tpXSAhPSBwYXRjaDIuY29sb3JzW2ldKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYXRjaDEubnVtWERpdnM7IGkrKykgewotICAgICAgICBpZiAocGF0Y2gxLnhEaXZzW2ldICE9IHBhdGNoMi54RGl2c1tpXSkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGF0Y2gxLm51bVlEaXZzOyBpKyspIHsKLSAgICAgICAgaWYgKHBhdGNoMS55RGl2c1tpXSAhPSBwYXRjaDIueURpdnNbaV0pIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIHZvaWQgZHVtcF9pbWFnZShpbnQgdywgaW50IGgsIHBuZ19ieXRlcHAgcm93cywgaW50IGNvbG9yX3R5cGUpCi17Ci0gICAgaW50IGksIGosIHJyLCBnZywgYmIsIGFhOwotCi0gICAgaW50IGJwcDsKLSAgICBpZiAoY29sb3JfdHlwZSA9PSBQTkdfQ09MT1JfVFlQRV9QQUxFVFRFIHx8IGNvbG9yX3R5cGUgPT0gUE5HX0NPTE9SX1RZUEVfR1JBWSkgewotICAgICAgICBicHAgPSAxOwotICAgIH0gZWxzZSBpZiAoY29sb3JfdHlwZSA9PSBQTkdfQ09MT1JfVFlQRV9HUkFZX0FMUEhBKSB7Ci0gICAgICAgIGJwcCA9IDI7Ci0gICAgfSBlbHNlIGlmIChjb2xvcl90eXBlID09IFBOR19DT0xPUl9UWVBFX1JHQiB8fCBjb2xvcl90eXBlID09IFBOR19DT0xPUl9UWVBFX1JHQl9BTFBIQSkgewotICAgICAgICAvLyBXZSB1c2UgYSBwYWRkaW5nIGJ5dGUgZXZlbiB3aGVuIHRoZXJlIGlzIG5vIGFscGhhCi0gICAgICAgIGJwcCA9IDQ7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcHJpbnRmKCJVbmtub3duIGNvbG9yIHR5cGUgJWQuXG4iLCBjb2xvcl90eXBlKTsKLSAgICB9Ci0KLSAgICBmb3IgKGogPSAwOyBqIDwgaDsgaisrKSB7Ci0gICAgICAgIHBuZ19ieXRlcCByb3cgPSByb3dzW2pdOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdzsgaSsrKSB7Ci0gICAgICAgICAgICByciA9IHJvd1swXTsKLSAgICAgICAgICAgIGdnID0gcm93WzFdOwotICAgICAgICAgICAgYmIgPSByb3dbMl07Ci0gICAgICAgICAgICBhYSA9IHJvd1szXTsKLSAgICAgICAgICAgIHJvdyArPSBicHA7Ci0KLSAgICAgICAgICAgIGlmIChpID09IDApIHsKLSAgICAgICAgICAgICAgICBwcmludGYoIlJvdyAlZDoiLCBqKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN3aXRjaCAoYnBwKSB7Ci0gICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCIgKCVkKSIsIHJyKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgICAgICBwcmludGYoIiAoJWQgJWQiLCByciwgZ2cpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAzOgotICAgICAgICAgICAgICAgIHByaW50ZigiICglZCAlZCAlZCkiLCByciwgZ2csIGJiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgNDoKLSAgICAgICAgICAgICAgICBwcmludGYoIiAoJWQgJWQgJWQgJWQpIiwgcnIsIGdnLCBiYiwgYWEpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGkgPT0gKHcgLSAxKSkgewotICAgICAgICAgICAgICAgIE5PSVNZKHByaW50ZigiXG4iKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLSNkZWZpbmUgTUFYKGEsYikgKChhKT4oYik/KGEpOihiKSkKLSNkZWZpbmUgQUJTKGEpICAgKChhKTwwPy0oYSk6KGEpKQotCi1zdGF0aWMgdm9pZCBhbmFseXplX2ltYWdlKGNvbnN0IGNoYXIgKmltYWdlTmFtZSwgaW1hZ2VfaW5mbyAmaW1hZ2VJbmZvLCBpbnQgZ3JheXNjYWxlVG9sZXJhbmNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBwbmdfY29sb3JwIHJnYlBhbGV0dGUsIHBuZ19ieXRlcCBhbHBoYVBhbGV0dGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqcGFsZXR0ZUVudHJpZXMsIGJvb2wgKmhhc1RyYW5zcGFyZW5jeSwgaW50ICpjb2xvclR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHBuZ19ieXRlcHAgb3V0Um93cykKLXsKLSAgICBpbnQgdyA9IGltYWdlSW5mby53aWR0aDsKLSAgICBpbnQgaCA9IGltYWdlSW5mby5oZWlnaHQ7Ci0gICAgaW50IGksIGosIHJyLCBnZywgYmIsIGFhLCBpZHg7Ci0gICAgdWludDMyX3QgY29sb3JzWzI1Nl0sIGNvbDsKLSAgICBpbnQgbnVtX2NvbG9ycyA9IDA7Ci0gICAgaW50IG1heEdyYXlEZXZpYXRpb24gPSAwOwotCi0gICAgYm9vbCBpc09wYXF1ZSA9IHRydWU7Ci0gICAgYm9vbCBpc1BhbGV0dGUgPSB0cnVlOwotICAgIGJvb2wgaXNHcmF5c2NhbGUgPSB0cnVlOwotCi0gICAgLy8gU2NhbiB0aGUgZW50aXJlIGltYWdlIGFuZCBkZXRlcm1pbmUgaWY6Ci0gICAgLy8gMS4gRXZlcnkgcGl4ZWwgaGFzIFIgPT0gRyA9PSBCIChncmF5c2NhbGUpCi0gICAgLy8gMi4gRXZlcnkgcGl4ZWwgaGFzIEEgPT0gMjU1IChvcGFxdWUpCi0gICAgLy8gMy4gVGhlcmUgYXJlIG5vIG1vcmUgdGhhbiAyNTYgZGlzdGluY3QgUkdCQSBjb2xvcnMKLQotICAgIC8vIE5PSVNZKHByaW50ZigiSW5pdGlhbCBpbWFnZSBkYXRhOlxuIikpOwotICAgIC8vIGR1bXBfaW1hZ2UodywgaCwgaW1hZ2VJbmZvLnJvd3MsIFBOR19DT0xPUl9UWVBFX1JHQl9BTFBIQSk7Ci0KLSAgICBmb3IgKGogPSAwOyBqIDwgaDsgaisrKSB7Ci0gICAgICAgIHBuZ19ieXRlcCByb3cgPSBpbWFnZUluZm8ucm93c1tqXTsKLSAgICAgICAgcG5nX2J5dGVwIG91dCA9IG91dFJvd3Nbal07Ci0gICAgICAgIGZvciAoaSA9IDA7IGkgPCB3OyBpKyspIHsKLSAgICAgICAgICAgIHJyID0gKnJvdysrOwotICAgICAgICAgICAgZ2cgPSAqcm93Kys7Ci0gICAgICAgICAgICBiYiA9ICpyb3crKzsKLSAgICAgICAgICAgIGFhID0gKnJvdysrOwotCi0gICAgICAgICAgICBpbnQgb2RldiA9IG1heEdyYXlEZXZpYXRpb247Ci0gICAgICAgICAgICBtYXhHcmF5RGV2aWF0aW9uID0gTUFYKEFCUyhyciAtIGdnKSwgbWF4R3JheURldmlhdGlvbik7Ci0gICAgICAgICAgICBtYXhHcmF5RGV2aWF0aW9uID0gTUFYKEFCUyhnZyAtIGJiKSwgbWF4R3JheURldmlhdGlvbik7Ci0gICAgICAgICAgICBtYXhHcmF5RGV2aWF0aW9uID0gTUFYKEFCUyhiYiAtIHJyKSwgbWF4R3JheURldmlhdGlvbik7Ci0gICAgICAgICAgICBpZiAobWF4R3JheURldmlhdGlvbiA+IG9kZXYpIHsKLSAgICAgICAgICAgICAgICBOT0lTWShwcmludGYoIk5ldyBtYXggZGV2LiA9ICVkIGF0IHBpeGVsICglZCwgJWQpID0gKCVkICVkICVkICVkKVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4R3JheURldmlhdGlvbiwgaSwgaiwgcnIsIGdnLCBiYiwgYWEpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gQ2hlY2sgaWYgaW1hZ2UgaXMgcmVhbGx5IGdyYXlzY2FsZQotICAgICAgICAgICAgaWYgKGlzR3JheXNjYWxlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJyICE9IGdnIHx8IHJyICE9IGJiKSB7Ci0gICAgICAgICAgICAgICAgICAgICBOT0lTWShwcmludGYoIkZvdW5kIGEgbm9uLWdyYXkgcGl4ZWwgYXQgJWQsICVkID0gKCVkICVkICVkICVkKVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCBqLCByciwgZ2csIGJiLCBhYSkpOwotICAgICAgICAgICAgICAgICAgICBpc0dyYXlzY2FsZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gQ2hlY2sgaWYgaW1hZ2UgaXMgcmVhbGx5IG9wYXF1ZQotICAgICAgICAgICAgaWYgKGlzT3BhcXVlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGFhICE9IDB4ZmYpIHsKLSAgICAgICAgICAgICAgICAgICAgTk9JU1kocHJpbnRmKCJGb3VuZCBhIG5vbi1vcGFxdWUgcGl4ZWwgYXQgJWQsICVkID0gKCVkICVkICVkICVkKVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIGosIHJyLCBnZywgYmIsIGFhKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlzT3BhcXVlID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBDaGVjayBpZiBpbWFnZSBpcyByZWFsbHkgPD0gMjU2IGNvbG9ycwotICAgICAgICAgICAgaWYgKGlzUGFsZXR0ZSkgewotICAgICAgICAgICAgICAgIGNvbCA9ICh1aW50MzJfdCkgKChyciA8PCAyNCkgfCAoZ2cgPDwgMTYpIHwgKGJiIDw8IDgpIHwgYWEpOwotICAgICAgICAgICAgICAgIGJvb2wgbWF0Y2ggPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBmb3IgKGlkeCA9IDA7IGlkeCA8IG51bV9jb2xvcnM7IGlkeCsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjb2xvcnNbaWR4XSA9PSBjb2wpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gV3JpdGUgdGhlIHBhbGV0dGUgaW5kZXggZm9yIHRoZSBwaXhlbCB0byBvdXRSb3dzIG9wdGltaXN0aWNhbGx5Ci0gICAgICAgICAgICAgICAgLy8gV2UgbWlnaHQgb3ZlcndyaXRlIGl0IGxhdGVyIGlmIHdlIGRlY2lkZSB0byBlbmNvZGUgYXMgZ3JheSBvcgotICAgICAgICAgICAgICAgIC8vIGdyYXkgKyBhbHBoYQotICAgICAgICAgICAgICAgICpvdXQrKyA9IGlkeDsKLSAgICAgICAgICAgICAgICBpZiAoIW1hdGNoKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChudW1fY29sb3JzID09IDI1NikgewotICAgICAgICAgICAgICAgICAgICAgICAgTk9JU1kocHJpbnRmKCJGb3VuZCAyNTd0aCBjb2xvciBhdCAlZCwgJWRcbiIsIGksIGopKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlzUGFsZXR0ZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JzW251bV9jb2xvcnMrK10gPSBjb2w7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAqcGFsZXR0ZUVudHJpZXMgPSAwOwotICAgICpoYXNUcmFuc3BhcmVuY3kgPSAhaXNPcGFxdWU7Ci0gICAgaW50IGJwcCA9IGlzT3BhcXVlID8gMyA6IDQ7Ci0gICAgaW50IHBhbGV0dGVTaXplID0gdyAqIGggKyBicHAgKiBudW1fY29sb3JzOwotCi0gICAgTk9JU1kocHJpbnRmKCJpc0dyYXlzY2FsZSA9ICVzXG4iLCBpc0dyYXlzY2FsZSA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKLSAgICBOT0lTWShwcmludGYoImlzT3BhcXVlID0gJXNcbiIsIGlzT3BhcXVlID8gInRydWUiIDogImZhbHNlIikpOwotICAgIE5PSVNZKHByaW50ZigiaXNQYWxldHRlID0gJXNcbiIsIGlzUGFsZXR0ZSA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKLSAgICBOT0lTWShwcmludGYoIlNpemUgdy8gcGFsZXR0ZSA9ICVkLCBncmF5K2FscGhhID0gJWQsIHJnYihhKSA9ICVkXG4iLAotICAgICAgICAgICAgICAgICBwYWxldHRlU2l6ZSwgMiAqIHcgKiBoLCBicHAgKiB3ICogaCkpOwotICAgIE5PSVNZKHByaW50ZigiTWF4IGdyYXkgZGV2aWF0aW9uID0gJWQsIHRvbGVyYW5jZSA9ICVkXG4iLCBtYXhHcmF5RGV2aWF0aW9uLCBncmF5c2NhbGVUb2xlcmFuY2UpKTsKLQotICAgIC8vIENob29zZSB0aGUgYmVzdCBjb2xvciB0eXBlIGZvciB0aGUgaW1hZ2UuCi0gICAgLy8gMS4gT3BhcXVlIGdyYXkgLSB1c2UgQ09MT1JfVFlQRV9HUkFZIGF0IDEgYnl0ZS9waXhlbAotICAgIC8vIDIuIEdyYXkgKyBhbHBoYSAtIHVzZSBDT0xPUl9UWVBFX1BBTEVUVEUgaWYgdGhlIG51bWJlciBvZiBkaXN0aW5jdCBjb21iaW5hdGlvbnMKLSAgICAvLyAgICAgaXMgc3VmZmljaWVudGx5IHNtYWxsLCBvdGhlcndpc2UgdXNlIENPTE9SX1RZUEVfR1JBWV9BTFBIQQotICAgIC8vIDMuIFJHQihBKSAtIHVzZSBDT0xPUl9UWVBFX1BBTEVUVEUgaWYgdGhlIG51bWJlciBvZiBkaXN0aW5jdCBjb2xvcnMgaXMgc3VmZmljaWVudGx5Ci0gICAgLy8gICAgIHNtYWxsLCBvdGhlcndpc2UgdXNlIENPTE9SX1RZUEVfUkdCe19BTFBIQX0KLSAgICBpZiAoaXNHcmF5c2NhbGUpIHsKLSAgICAgICAgaWYgKGlzT3BhcXVlKSB7Ci0gICAgICAgICAgICAqY29sb3JUeXBlID0gUE5HX0NPTE9SX1RZUEVfR1JBWTsgLy8gMSBieXRlL3BpeGVsCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBVc2UgYSBzaW1wbGUgaGV1cmlzdGljIHRvIGRldGVybWluZSB3aGV0aGVyIHVzaW5nIGEgcGFsZXR0ZSB3aWxsCi0gICAgICAgICAgICAvLyBzYXZlIHNwYWNlIHZlcnN1cyB1c2luZyBncmF5ICsgYWxwaGEgZm9yIGVhY2ggcGl4ZWwuCi0gICAgICAgICAgICAvLyBUaGlzIGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgY2h1bmsgb3ZlcmhlYWQsIGZpbHRlcmluZywgTFoKLSAgICAgICAgICAgIC8vIGNvbXByZXNzaW9uLCBldGMuCi0gICAgICAgICAgICBpZiAoaXNQYWxldHRlICYmIChwYWxldHRlU2l6ZSA8IDIgKiB3ICogaCkpIHsKLSAgICAgICAgICAgICAgICAqY29sb3JUeXBlID0gUE5HX0NPTE9SX1RZUEVfUEFMRVRURTsgLy8gMSBieXRlL3BpeGVsICsgNCBieXRlcy9jb2xvcgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAqY29sb3JUeXBlID0gUE5HX0NPTE9SX1RZUEVfR1JBWV9BTFBIQTsgLy8gMiBieXRlcyBwZXIgcGl4ZWwKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoaXNQYWxldHRlICYmIChwYWxldHRlU2l6ZSA8IGJwcCAqIHcgKiBoKSkgewotICAgICAgICAqY29sb3JUeXBlID0gUE5HX0NPTE9SX1RZUEVfUEFMRVRURTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAobWF4R3JheURldmlhdGlvbiA8PSBncmF5c2NhbGVUb2xlcmFuY2UpIHsKLSAgICAgICAgICAgIHByaW50ZigiJXM6IGZvcmNpbmcgaW1hZ2UgdG8gZ3JheSAobWF4IGRldmlhdGlvbiA9ICVkKVxuIiwgaW1hZ2VOYW1lLCBtYXhHcmF5RGV2aWF0aW9uKTsKLSAgICAgICAgICAgICpjb2xvclR5cGUgPSBpc09wYXF1ZSA/IFBOR19DT0xPUl9UWVBFX0dSQVkgOiBQTkdfQ09MT1JfVFlQRV9HUkFZX0FMUEhBOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgKmNvbG9yVHlwZSA9IGlzT3BhcXVlID8gUE5HX0NPTE9SX1RZUEVfUkdCIDogUE5HX0NPTE9SX1RZUEVfUkdCX0FMUEhBOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gUGVyZm9ybSBwb3N0cHJvY2Vzc2luZyBvZiB0aGUgaW1hZ2Ugb3IgcGFsZXR0ZSBkYXRhIGJhc2VkIG9uIHRoZSBmaW5hbAotICAgIC8vIGNvbG9yIHR5cGUgY2hvc2VuCi0KLSAgICBpZiAoKmNvbG9yVHlwZSA9PSBQTkdfQ09MT1JfVFlQRV9QQUxFVFRFKSB7Ci0gICAgICAgIC8vIENyZWF0ZSBzZXBhcmF0ZSBSR0IgYW5kIEFscGhhIHBhbGV0dGVzIGFuZCBzZXQgdGhlIG51bWJlciBvZiBjb2xvcnMKLSAgICAgICAgKnBhbGV0dGVFbnRyaWVzID0gbnVtX2NvbG9yczsKLQotICAgICAgICAvLyBDcmVhdGUgdGhlIFJHQiBhbmQgYWxwaGEgcGFsZXR0ZXMKLSAgICAgICAgZm9yIChpbnQgaWR4ID0gMDsgaWR4IDwgbnVtX2NvbG9yczsgaWR4KyspIHsKLSAgICAgICAgICAgIGNvbCA9IGNvbG9yc1tpZHhdOwotICAgICAgICAgICAgcmdiUGFsZXR0ZVtpZHhdLnJlZCAgID0gKHBuZ19ieXRlKSAoKGNvbCA+PiAyNCkgJiAweGZmKTsKLSAgICAgICAgICAgIHJnYlBhbGV0dGVbaWR4XS5ncmVlbiA9IChwbmdfYnl0ZSkgKChjb2wgPj4gMTYpICYgMHhmZik7Ci0gICAgICAgICAgICByZ2JQYWxldHRlW2lkeF0uYmx1ZSAgPSAocG5nX2J5dGUpICgoY29sID4+ICA4KSAmIDB4ZmYpOwotICAgICAgICAgICAgYWxwaGFQYWxldHRlW2lkeF0gICAgID0gKHBuZ19ieXRlKSAgKGNvbCAgICAgICAgJiAweGZmKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoKmNvbG9yVHlwZSA9PSBQTkdfQ09MT1JfVFlQRV9HUkFZIHx8ICpjb2xvclR5cGUgPT0gUE5HX0NPTE9SX1RZUEVfR1JBWV9BTFBIQSkgewotICAgICAgICAvLyBJZiB0aGUgaW1hZ2UgaXMgZ3JheSBvciBncmF5ICsgYWxwaGEsIGNvbXBhY3QgdGhlIHBpeGVscyBpbnRvIG91dFJvd3MKLSAgICAgICAgZm9yIChqID0gMDsgaiA8IGg7IGorKykgewotICAgICAgICAgICAgcG5nX2J5dGVwIHJvdyA9IGltYWdlSW5mby5yb3dzW2pdOwotICAgICAgICAgICAgcG5nX2J5dGVwIG91dCA9IG91dFJvd3Nbal07Ci0gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdzsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgcnIgPSAqcm93Kys7Ci0gICAgICAgICAgICAgICAgZ2cgPSAqcm93Kys7Ci0gICAgICAgICAgICAgICAgYmIgPSAqcm93Kys7Ci0gICAgICAgICAgICAgICAgYWEgPSAqcm93Kys7Ci0KLSAgICAgICAgICAgICAgICBpZiAoaXNHcmF5c2NhbGUpIHsKLSAgICAgICAgICAgICAgICAgICAgKm91dCsrID0gcnI7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgKm91dCsrID0gKHBuZ19ieXRlKSAocnIgKiAwLjIxMjZmICsgZ2cgKiAwLjcxNTJmICsgYmIgKiAwLjA3MjJmKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKCFpc09wYXF1ZSkgewotICAgICAgICAgICAgICAgICAgICAqb3V0KysgPSBhYTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLX0KLQotCi1zdGF0aWMgdm9pZCB3cml0ZV9wbmcoY29uc3QgY2hhciogaW1hZ2VOYW1lLAotICAgICAgICAgICAgICAgICAgICAgIHBuZ19zdHJ1Y3RwIHdyaXRlX3B0ciwgcG5nX2luZm9wIHdyaXRlX2luZm8sCi0gICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfaW5mbyYgaW1hZ2VJbmZvLCBpbnQgZ3JheXNjYWxlVG9sZXJhbmNlKQotewotICAgIGJvb2wgb3B0aW1pemUgPSB0cnVlOwotICAgIHBuZ191aW50XzMyIHdpZHRoLCBoZWlnaHQ7Ci0gICAgaW50IGNvbG9yX3R5cGU7Ci0gICAgaW50IGJpdF9kZXB0aCwgaW50ZXJsYWNlX3R5cGUsIGNvbXByZXNzaW9uX3R5cGU7Ci0gICAgaW50IGk7Ci0KLSAgICBwbmdfdW5rbm93bl9jaHVuayB1bmtub3duc1syXTsKLSAgICB1bmtub3duc1swXS5kYXRhID0gTlVMTDsKLSAgICB1bmtub3duc1sxXS5kYXRhID0gTlVMTDsKLQotICAgIHBuZ19ieXRlcHAgb3V0Um93cyA9IChwbmdfYnl0ZXBwKSBtYWxsb2MoKGludCkgaW1hZ2VJbmZvLmhlaWdodCAqIHNpemVvZihwbmdfYnl0ZXApKTsKLSAgICBpZiAob3V0Um93cyA9PSAocG5nX2J5dGVwcCkgMCkgewotICAgICAgICBwcmludGYoIkNhbid0IGFsbG9jYXRlIG91dHB1dCBidWZmZXIhXG4iKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0gICAgZm9yIChpID0gMDsgaSA8IChpbnQpIGltYWdlSW5mby5oZWlnaHQ7IGkrKykgewotICAgICAgICBvdXRSb3dzW2ldID0gKHBuZ19ieXRlcCkgbWFsbG9jKDIgKiAoaW50KSBpbWFnZUluZm8ud2lkdGgpOwotICAgICAgICBpZiAob3V0Um93c1tpXSA9PSAocG5nX2J5dGVwKSAwKSB7Ci0gICAgICAgICAgICBwcmludGYoIkNhbid0IGFsbG9jYXRlIG91dHB1dCBidWZmZXIhXG4iKTsKLSAgICAgICAgICAgIGV4aXQoMSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwbmdfc2V0X2NvbXByZXNzaW9uX2xldmVsKHdyaXRlX3B0ciwgWl9CRVNUX0NPTVBSRVNTSU9OKTsKLQotICAgIE5PSVNZKHByaW50ZigiV3JpdGluZyBpbWFnZSAlczogdyA9ICVkLCBoID0gJWRcbiIsIGltYWdlTmFtZSwKLSAgICAgICAgICAoaW50KSBpbWFnZUluZm8ud2lkdGgsIChpbnQpIGltYWdlSW5mby5oZWlnaHQpKTsKLQotICAgIHBuZ19jb2xvciByZ2JQYWxldHRlWzI1Nl07Ci0gICAgcG5nX2J5dGUgYWxwaGFQYWxldHRlWzI1Nl07Ci0gICAgYm9vbCBoYXNUcmFuc3BhcmVuY3k7Ci0gICAgaW50IHBhbGV0dGVFbnRyaWVzOwotCi0gICAgYW5hbHl6ZV9pbWFnZShpbWFnZU5hbWUsIGltYWdlSW5mbywgZ3JheXNjYWxlVG9sZXJhbmNlLCByZ2JQYWxldHRlLCBhbHBoYVBhbGV0dGUsCi0gICAgICAgICAgICAgICAgICAmcGFsZXR0ZUVudHJpZXMsICZoYXNUcmFuc3BhcmVuY3ksICZjb2xvcl90eXBlLCBvdXRSb3dzKTsKLQotICAgIC8vIElmIHRoZSBpbWFnZSBpcyBhIDktcGF0Y2gsIHdlIG5lZWQgdG8gcHJlc2VydmUgaXQgYXMgYSBBUkdCIGZpbGUgdG8gbWFrZQotICAgIC8vIHN1cmUgdGhlIHBpeGVscyB3aWxsIG5vdCBiZSBwcmUtZGl0aGVyZWQvY2xhbXBlZCB1bnRpbCB3ZSBkZWNpZGUgdGhleSBhcmUKLSAgICBpZiAoaW1hZ2VJbmZvLmlzOVBhdGNoICYmIChjb2xvcl90eXBlID09IFBOR19DT0xPUl9UWVBFX1JHQiB8fAotICAgICAgICAgICAgY29sb3JfdHlwZSA9PSBQTkdfQ09MT1JfVFlQRV9HUkFZIHx8IGNvbG9yX3R5cGUgPT0gUE5HX0NPTE9SX1RZUEVfUEFMRVRURSkpIHsKLSAgICAgICAgY29sb3JfdHlwZSA9IFBOR19DT0xPUl9UWVBFX1JHQl9BTFBIQTsKLSAgICB9Ci0KLSAgICBzd2l0Y2ggKGNvbG9yX3R5cGUpIHsKLSAgICBjYXNlIFBOR19DT0xPUl9UWVBFX1BBTEVUVEU6Ci0gICAgICAgIE5PSVNZKHByaW50ZigiSW1hZ2UgJXMgaGFzICVkIGNvbG9ycyVzLCB1c2luZyBQTkdfQ09MT1JfVFlQRV9QQUxFVFRFXG4iLAotICAgICAgICAgICAgICAgICAgICAgaW1hZ2VOYW1lLCBwYWxldHRlRW50cmllcywKLSAgICAgICAgICAgICAgICAgICAgIGhhc1RyYW5zcGFyZW5jeSA/ICIgKHdpdGggYWxwaGEpIiA6ICIiKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUE5HX0NPTE9SX1RZUEVfR1JBWToKLSAgICAgICAgTk9JU1kocHJpbnRmKCJJbWFnZSAlcyBpcyBvcGFxdWUgZ3JheSwgdXNpbmcgUE5HX0NPTE9SX1RZUEVfR1JBWVxuIiwgaW1hZ2VOYW1lKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUE5HX0NPTE9SX1RZUEVfR1JBWV9BTFBIQToKLSAgICAgICAgTk9JU1kocHJpbnRmKCJJbWFnZSAlcyBpcyBncmF5ICsgYWxwaGEsIHVzaW5nIFBOR19DT0xPUl9UWVBFX0dSQVlfQUxQSEFcbiIsIGltYWdlTmFtZSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBOR19DT0xPUl9UWVBFX1JHQjoKLSAgICAgICAgTk9JU1kocHJpbnRmKCJJbWFnZSAlcyBpcyBvcGFxdWUgUkdCLCB1c2luZyBQTkdfQ09MT1JfVFlQRV9SR0JcbiIsIGltYWdlTmFtZSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBOR19DT0xPUl9UWVBFX1JHQl9BTFBIQToKLSAgICAgICAgTk9JU1kocHJpbnRmKCJJbWFnZSAlcyBpcyBSR0IgKyBhbHBoYSwgdXNpbmcgUE5HX0NPTE9SX1RZUEVfUkdCX0FMUEhBXG4iLCBpbWFnZU5hbWUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcG5nX3NldF9JSERSKHdyaXRlX3B0ciwgd3JpdGVfaW5mbywgaW1hZ2VJbmZvLndpZHRoLCBpbWFnZUluZm8uaGVpZ2h0LAotICAgICAgICAgICAgICAgICA4LCBjb2xvcl90eXBlLCBQTkdfSU5URVJMQUNFX05PTkUsCi0gICAgICAgICAgICAgICAgIFBOR19DT01QUkVTU0lPTl9UWVBFX0RFRkFVTFQsIFBOR19GSUxURVJfVFlQRV9ERUZBVUxUKTsKLQotICAgIGlmIChjb2xvcl90eXBlID09IFBOR19DT0xPUl9UWVBFX1BBTEVUVEUpIHsKLSAgICAgICAgcG5nX3NldF9QTFRFKHdyaXRlX3B0ciwgd3JpdGVfaW5mbywgcmdiUGFsZXR0ZSwgcGFsZXR0ZUVudHJpZXMpOwotICAgICAgICBpZiAoaGFzVHJhbnNwYXJlbmN5KSB7Ci0gICAgICAgICAgICBwbmdfc2V0X3RSTlMod3JpdGVfcHRyLCB3cml0ZV9pbmZvLCBhbHBoYVBhbGV0dGUsIHBhbGV0dGVFbnRyaWVzLCAocG5nX2NvbG9yXzE2cCkgMCk7Ci0gICAgICAgIH0KLSAgICAgICBwbmdfc2V0X2ZpbHRlcih3cml0ZV9wdHIsIDAsIFBOR19OT19GSUxURVJTKTsKLSAgICB9IGVsc2UgewotICAgICAgIHBuZ19zZXRfZmlsdGVyKHdyaXRlX3B0ciwgMCwgUE5HX0FMTF9GSUxURVJTKTsKLSAgICB9Ci0KLSAgICBpZiAoaW1hZ2VJbmZvLmlzOVBhdGNoKSB7Ci0gICAgICAgIGludCBjaHVua19jb3VudCA9IDEgKyAoaW1hZ2VJbmZvLmhhdmVMYXlvdXRCb3VuZHMgPyAxIDogMCk7Ci0gICAgICAgIGludCBwX2luZGV4ID0gaW1hZ2VJbmZvLmhhdmVMYXlvdXRCb3VuZHMgPyAxIDogMDsKLSAgICAgICAgaW50IGJfaW5kZXggPSAwOwotICAgICAgICBwbmdfYnl0ZSAqY2h1bmtfbmFtZXMgPSBpbWFnZUluZm8uaGF2ZUxheW91dEJvdW5kcwotICAgICAgICAgICAgICAgID8gKHBuZ19ieXRlKikibnBMYlwwbnBUY1wwIgotICAgICAgICAgICAgICAgIDogKHBuZ19ieXRlKikibnBUYyI7Ci0gICAgICAgIE5PSVNZKHByaW50ZigiQWRkaW5nIDktcGF0Y2ggaW5mby4uLlxuIikpOwotICAgICAgICBzdHJjcHkoKGNoYXIqKXVua25vd25zW3BfaW5kZXhdLm5hbWUsICJucFRjIik7Ci0gICAgICAgIHVua25vd25zW3BfaW5kZXhdLmRhdGEgPSAocG5nX2J5dGUqKWltYWdlSW5mby5pbmZvOVBhdGNoLnNlcmlhbGl6ZSgpOwotICAgICAgICB1bmtub3duc1twX2luZGV4XS5zaXplID0gaW1hZ2VJbmZvLmluZm85UGF0Y2guc2VyaWFsaXplZFNpemUoKTsKLSAgICAgICAgLy8gVE9ETzogcmVtb3ZlIHRoZSBjaGVjayBiZWxvdyB3aGVuIGV2ZXJ5dGhpbmcgd29ya3MKLSAgICAgICAgY2hlY2tOaW5lUGF0Y2hTZXJpYWxpemF0aW9uKCZpbWFnZUluZm8uaW5mbzlQYXRjaCwgdW5rbm93bnNbcF9pbmRleF0uZGF0YSk7Ci0KLSAgICAgICAgaWYgKGltYWdlSW5mby5oYXZlTGF5b3V0Qm91bmRzKSB7Ci0gICAgICAgICAgICBpbnQgY2h1bmtfc2l6ZSA9IHNpemVvZihwbmdfdWludF8zMikgKiA0OwotICAgICAgICAgICAgc3RyY3B5KChjaGFyKil1bmtub3duc1tiX2luZGV4XS5uYW1lLCAibnBMYiIpOwotICAgICAgICAgICAgdW5rbm93bnNbYl9pbmRleF0uZGF0YSA9IChwbmdfYnl0ZSopIGNhbGxvYyhjaHVua19zaXplLCAxKTsKLSAgICAgICAgICAgIG1lbWNweSh1bmtub3duc1tiX2luZGV4XS5kYXRhLCAmaW1hZ2VJbmZvLmxheW91dEJvdW5kc0xlZnQsIGNodW5rX3NpemUpOwotICAgICAgICAgICAgdW5rbm93bnNbYl9pbmRleF0uc2l6ZSA9IGNodW5rX3NpemU7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNodW5rX2NvdW50OyBpKyspIHsKLSAgICAgICAgICAgIHVua25vd25zW2ldLmxvY2F0aW9uID0gUE5HX0hBVkVfUExURTsKLSAgICAgICAgfQotICAgICAgICBwbmdfc2V0X2tlZXBfdW5rbm93bl9jaHVua3Mod3JpdGVfcHRyLCBQTkdfSEFORExFX0NIVU5LX0FMV0FZUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rX25hbWVzLCBjaHVua19jb3VudCk7Ci0gICAgICAgIHBuZ19zZXRfdW5rbm93bl9jaHVua3Mod3JpdGVfcHRyLCB3cml0ZV9pbmZvLCB1bmtub3ducywgY2h1bmtfY291bnQpOwotI2lmIFBOR19MSUJQTkdfVkVSIDwgMTA2MDAKLSAgICAgICAgLyogRGVhbCB3aXRoIHVua25vd24gY2h1bmsgbG9jYXRpb24gYnVnIGluIDEuNS54IGFuZCBlYXJsaWVyICovCi0gICAgICAgIHBuZ19zZXRfdW5rbm93bl9jaHVua19sb2NhdGlvbih3cml0ZV9wdHIsIHdyaXRlX2luZm8sIDAsIFBOR19IQVZFX1BMVEUpOwotICAgICAgICBpZiAoaW1hZ2VJbmZvLmhhdmVMYXlvdXRCb3VuZHMpIHsKLSAgICAgICAgICAgIHBuZ19zZXRfdW5rbm93bl9jaHVua19sb2NhdGlvbih3cml0ZV9wdHIsIHdyaXRlX2luZm8sIDEsIFBOR19IQVZFX1BMVEUpOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICB9Ci0KLQotICAgIHBuZ193cml0ZV9pbmZvKHdyaXRlX3B0ciwgd3JpdGVfaW5mbyk7Ci0KLSAgICBwbmdfYnl0ZXBwIHJvd3M7Ci0gICAgaWYgKGNvbG9yX3R5cGUgPT0gUE5HX0NPTE9SX1RZUEVfUkdCIHx8IGNvbG9yX3R5cGUgPT0gUE5HX0NPTE9SX1RZUEVfUkdCX0FMUEhBKSB7Ci0gICAgICAgIGlmIChjb2xvcl90eXBlID09IFBOR19DT0xPUl9UWVBFX1JHQikgewotICAgICAgICAgICAgcG5nX3NldF9maWxsZXIod3JpdGVfcHRyLCAwLCBQTkdfRklMTEVSX0FGVEVSKTsKLSAgICAgICAgfQotICAgICAgICByb3dzID0gaW1hZ2VJbmZvLnJvd3M7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcm93cyA9IG91dFJvd3M7Ci0gICAgfQotICAgIHBuZ193cml0ZV9pbWFnZSh3cml0ZV9wdHIsIHJvd3MpOwotCi0vLyAgICAgTk9JU1kocHJpbnRmKCJGaW5hbCBpbWFnZSBkYXRhOlxuIikpOwotLy8gICAgIGR1bXBfaW1hZ2UoaW1hZ2VJbmZvLndpZHRoLCBpbWFnZUluZm8uaGVpZ2h0LCByb3dzLCBjb2xvcl90eXBlKTsKLQotICAgIHBuZ193cml0ZV9lbmQod3JpdGVfcHRyLCB3cml0ZV9pbmZvKTsKLQotICAgIGZvciAoaSA9IDA7IGkgPCAoaW50KSBpbWFnZUluZm8uaGVpZ2h0OyBpKyspIHsKLSAgICAgICAgZnJlZShvdXRSb3dzW2ldKTsKLSAgICB9Ci0gICAgZnJlZShvdXRSb3dzKTsKLSAgICBmcmVlKHVua25vd25zWzBdLmRhdGEpOwotICAgIGZyZWUodW5rbm93bnNbMV0uZGF0YSk7Ci0KLSAgICBwbmdfZ2V0X0lIRFIod3JpdGVfcHRyLCB3cml0ZV9pbmZvLCAmd2lkdGgsICZoZWlnaHQsCi0gICAgICAgJmJpdF9kZXB0aCwgJmNvbG9yX3R5cGUsICZpbnRlcmxhY2VfdHlwZSwKLSAgICAgICAmY29tcHJlc3Npb25fdHlwZSwgTlVMTCk7Ci0KLSAgICBOT0lTWShwcmludGYoIkltYWdlIHdyaXR0ZW46IHc9JWQsIGg9JWQsIGQ9JWQsIGNvbG9ycz0lZCwgaW50ZXI9JWQsIGNvbXA9JWRcbiIsCi0gICAgICAgICAgICAgICAgIChpbnQpd2lkdGgsIChpbnQpaGVpZ2h0LCBiaXRfZGVwdGgsIGNvbG9yX3R5cGUsIGludGVybGFjZV90eXBlLAotICAgICAgICAgICAgICAgICBjb21wcmVzc2lvbl90eXBlKSk7Ci19Ci0KLXN0YXR1c190IHByZVByb2Nlc3NJbWFnZShjb25zdCBCdW5kbGUqIGJ1bmRsZSwgY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzc2V0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxBYXB0RmlsZT4mIGZpbGUsIFN0cmluZzgqIG91dE5ld0xlYWZOYW1lKQotewotICAgIFN0cmluZzggZXh0KGZpbGUtPmdldFBhdGgoKS5nZXRQYXRoRXh0ZW5zaW9uKCkpOwotCi0gICAgLy8gV2UgY3VycmVudGx5IG9ubHkgcHJvY2VzcyBQTkcgaW1hZ2VzLgotICAgIGlmIChzdHJjbXAoZXh0LnN0cmluZygpLCAiLnBuZyIpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIE5PX0VSUk9SOwotICAgIH0KLQotICAgIC8vIEV4YW1wbGUgb2YgcmVuYW1pbmcgYSBmaWxlOgotICAgIC8vKm91dE5ld0xlYWZOYW1lID0gZmlsZS0+Z2V0UGF0aCgpLmdldEJhc2VQYXRoKCkuZ2V0RmlsZU5hbWUoKTsKLSAgICAvL291dE5ld0xlYWZOYW1lLT5hcHBlbmQoIi5udXBuZyIpOwotCi0gICAgU3RyaW5nOCBwcmludGFibGVOYW1lKGZpbGUtPmdldFByaW50YWJsZVNvdXJjZSgpKTsKLQotICAgIGlmIChidW5kbGUtPmdldFZlcmJvc2UoKSkgewotICAgICAgICBwcmludGYoIlByb2Nlc3NpbmcgaW1hZ2U6ICVzXG4iLCBwcmludGFibGVOYW1lLnN0cmluZygpKTsKLSAgICB9Ci0KLSAgICBwbmdfc3RydWN0cCByZWFkX3B0ciA9IE5VTEw7Ci0gICAgcG5nX2luZm9wIHJlYWRfaW5mbyA9IE5VTEw7Ci0gICAgRklMRSogZnA7Ci0KLSAgICBpbWFnZV9pbmZvIGltYWdlSW5mbzsKLQotICAgIHBuZ19zdHJ1Y3RwIHdyaXRlX3B0ciA9IE5VTEw7Ci0gICAgcG5nX2luZm9wIHdyaXRlX2luZm8gPSBOVUxMOwotCi0gICAgc3RhdHVzX3QgZXJyb3IgPSBVTktOT1dOX0VSUk9SOwotCi0gICAgY29uc3Qgc2l6ZV90IG5hbWVMZW4gPSBmaWxlLT5nZXRQYXRoKCkubGVuZ3RoKCk7Ci0KLSAgICBmcCA9IGZvcGVuKGZpbGUtPmdldFNvdXJjZUZpbGUoKS5zdHJpbmcoKSwgInJiIik7Ci0gICAgaWYgKGZwID09IE5VTEwpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogRVJST1I6IFVuYWJsZSB0byBvcGVuIFBORyBmaWxlXG4iLCBwcmludGFibGVOYW1lLnN0cmluZygpKTsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIHJlYWRfcHRyID0gcG5nX2NyZWF0ZV9yZWFkX3N0cnVjdChQTkdfTElCUE5HX1ZFUl9TVFJJTkcsIDAsIChwbmdfZXJyb3JfcHRyKU5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBuZ19lcnJvcl9wdHIpTlVMTCk7Ci0gICAgaWYgKCFyZWFkX3B0cikgewotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgcmVhZF9pbmZvID0gcG5nX2NyZWF0ZV9pbmZvX3N0cnVjdChyZWFkX3B0cik7Ci0gICAgaWYgKCFyZWFkX2luZm8pIHsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIGlmIChzZXRqbXAocG5nX2ptcGJ1ZihyZWFkX3B0cikpKSB7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICBwbmdfaW5pdF9pbyhyZWFkX3B0ciwgZnApOwotCi0gICAgcmVhZF9wbmcocHJpbnRhYmxlTmFtZS5zdHJpbmcoKSwgcmVhZF9wdHIsIHJlYWRfaW5mbywgJmltYWdlSW5mbyk7Ci0KLSAgICBpZiAobmFtZUxlbiA+IDYpIHsKLSAgICAgICAgY29uc3QgY2hhciogbmFtZSA9IGZpbGUtPmdldFBhdGgoKS5zdHJpbmcoKTsKLSAgICAgICAgaWYgKG5hbWVbbmFtZUxlbi01XSA9PSAnOScgJiYgbmFtZVtuYW1lTGVuLTZdID09ICcuJykgewotICAgICAgICAgICAgaWYgKGRvXzlwYXRjaChwcmludGFibGVOYW1lLnN0cmluZygpLCAmaW1hZ2VJbmZvKSAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHdyaXRlX3B0ciA9IHBuZ19jcmVhdGVfd3JpdGVfc3RydWN0KFBOR19MSUJQTkdfVkVSX1NUUklORywgMCwgKHBuZ19lcnJvcl9wdHIpTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG5nX2Vycm9yX3B0cilOVUxMKTsKLSAgICBpZiAoIXdyaXRlX3B0cikKLSAgICB7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICB3cml0ZV9pbmZvID0gcG5nX2NyZWF0ZV9pbmZvX3N0cnVjdCh3cml0ZV9wdHIpOwotICAgIGlmICghd3JpdGVfaW5mbykKLSAgICB7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICBwbmdfc2V0X3dyaXRlX2ZuKHdyaXRlX3B0ciwgKHZvaWQqKWZpbGUuZ2V0KCksCi0gICAgICAgICAgICAgICAgICAgICBwbmdfd3JpdGVfYWFwdF9maWxlLCBwbmdfZmx1c2hfYWFwdF9maWxlKTsKLQotICAgIGlmIChzZXRqbXAocG5nX2ptcGJ1Zih3cml0ZV9wdHIpKSkKLSAgICB7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICB3cml0ZV9wbmcocHJpbnRhYmxlTmFtZS5zdHJpbmcoKSwgd3JpdGVfcHRyLCB3cml0ZV9pbmZvLCBpbWFnZUluZm8sCi0gICAgICAgICAgICAgIGJ1bmRsZS0+Z2V0R3JheXNjYWxlVG9sZXJhbmNlKCkpOwotCi0gICAgZXJyb3IgPSBOT19FUlJPUjsKLQotICAgIGlmIChidW5kbGUtPmdldFZlcmJvc2UoKSkgewotICAgICAgICBmc2VlayhmcCwgMCwgU0VFS19FTkQpOwotICAgICAgICBzaXplX3Qgb2xkU2l6ZSA9IChzaXplX3QpZnRlbGwoZnApOwotICAgICAgICBzaXplX3QgbmV3U2l6ZSA9IGZpbGUtPmdldFNpemUoKTsKLSAgICAgICAgZmxvYXQgZmFjdG9yID0gKChmbG9hdCluZXdTaXplKS9vbGRTaXplOwotICAgICAgICBpbnQgcGVyY2VudCA9IChpbnQpKGZhY3RvcioxMDApOwotICAgICAgICBwcmludGYoIiAgICAocHJvY2Vzc2VkIGltYWdlICVzOiAlZCUlIHNpemUgb2Ygc291cmNlKVxuIiwgcHJpbnRhYmxlTmFtZS5zdHJpbmcoKSwgcGVyY2VudCk7Ci0gICAgfQotCi1iYWlsOgotICAgIGlmIChyZWFkX3B0cikgewotICAgICAgICBwbmdfZGVzdHJveV9yZWFkX3N0cnVjdCgmcmVhZF9wdHIsICZyZWFkX2luZm8sIChwbmdfaW5mb3BwKU5VTEwpOwotICAgIH0KLSAgICBpZiAoZnApIHsKLSAgICAgICAgZmNsb3NlKGZwKTsKLSAgICB9Ci0gICAgaWYgKHdyaXRlX3B0cikgewotICAgICAgICBwbmdfZGVzdHJveV93cml0ZV9zdHJ1Y3QoJndyaXRlX3B0ciwgJndyaXRlX2luZm8pOwotICAgIH0KLQotICAgIGlmIChlcnJvciAhPSBOT19FUlJPUikgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBGYWlsdXJlIHByb2Nlc3NpbmcgUE5HIGltYWdlICVzXG4iLAotICAgICAgICAgICAgICAgIGZpbGUtPmdldFByaW50YWJsZVNvdXJjZSgpLnN0cmluZygpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGVycm9yOwotfQotCi1zdGF0dXNfdCBwcmVQcm9jZXNzSW1hZ2VUb0NhY2hlKGNvbnN0IEJ1bmRsZSogYnVuZGxlLCBjb25zdCBTdHJpbmc4JiBzb3VyY2UsIGNvbnN0IFN0cmluZzgmIGRlc3QpCi17Ci0gICAgcG5nX3N0cnVjdHAgcmVhZF9wdHIgPSBOVUxMOwotICAgIHBuZ19pbmZvcCByZWFkX2luZm8gPSBOVUxMOwotCi0gICAgRklMRSogZnA7Ci0KLSAgICBpbWFnZV9pbmZvIGltYWdlSW5mbzsKLQotICAgIHBuZ19zdHJ1Y3RwIHdyaXRlX3B0ciA9IE5VTEw7Ci0gICAgcG5nX2luZm9wIHdyaXRlX2luZm8gPSBOVUxMOwotCi0gICAgc3RhdHVzX3QgZXJyb3IgPSBVTktOT1dOX0VSUk9SOwotCi0gICAgaWYgKGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKSB7Ci0gICAgICAgIHByaW50ZigiUHJvY2Vzc2luZyBpbWFnZSB0byBjYWNoZTogJXMgPT4gJXNcbiIsIHNvdXJjZS5zdHJpbmcoKSwgZGVzdC5zdHJpbmcoKSk7Ci0gICAgfQotCi0gICAgLy8gR2V0IGEgZmlsZSBoYW5kbGVyIHRvIHJlYWQgZnJvbQotICAgIGZwID0gZm9wZW4oc291cmNlLnN0cmluZygpLCJyYiIpOwotICAgIGlmIChmcCA9PSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgRVJST1I6IFVuYWJsZSB0byBvcGVuIFBORyBmaWxlXG4iLCBzb3VyY2Uuc3RyaW5nKCkpOwotICAgICAgICByZXR1cm4gZXJyb3I7Ci0gICAgfQotCi0gICAgLy8gQ2FsbCBsaWJwbmcgdG8gZ2V0IGEgc3RydWN0IHRvIHJlYWQgaW1hZ2UgZGF0YSBpbnRvCi0gICAgcmVhZF9wdHIgPSBwbmdfY3JlYXRlX3JlYWRfc3RydWN0KFBOR19MSUJQTkdfVkVSX1NUUklORywgTlVMTCwgTlVMTCwgTlVMTCk7Ci0gICAgaWYgKCFyZWFkX3B0cikgewotICAgICAgICBmY2xvc2UoZnApOwotICAgICAgICBwbmdfZGVzdHJveV9yZWFkX3N0cnVjdCgmcmVhZF9wdHIsICZyZWFkX2luZm8sTlVMTCk7Ci0gICAgICAgIHJldHVybiBlcnJvcjsKLSAgICB9Ci0KLSAgICAvLyBDYWxsIGxpYnBuZyB0byBnZXQgYSBzdHJ1Y3QgdG8gcmVhZCBpbWFnZSBpbmZvIGludG8KLSAgICByZWFkX2luZm8gPSBwbmdfY3JlYXRlX2luZm9fc3RydWN0KHJlYWRfcHRyKTsKLSAgICBpZiAoIXJlYWRfaW5mbykgewotICAgICAgICBmY2xvc2UoZnApOwotICAgICAgICBwbmdfZGVzdHJveV9yZWFkX3N0cnVjdCgmcmVhZF9wdHIsICZyZWFkX2luZm8sTlVMTCk7Ci0gICAgICAgIHJldHVybiBlcnJvcjsKLSAgICB9Ci0KLSAgICAvLyBTZXQgYSBqdW1wIHBvaW50IGZvciBsaWJwbmcgdG8gbG9uZyBqdW1wIGJhY2sgdG8gb24gZXJyb3IKLSAgICBpZiAoc2V0am1wKHBuZ19qbXBidWYocmVhZF9wdHIpKSkgewotICAgICAgICBmY2xvc2UoZnApOwotICAgICAgICBwbmdfZGVzdHJveV9yZWFkX3N0cnVjdCgmcmVhZF9wdHIsICZyZWFkX2luZm8sTlVMTCk7Ci0gICAgICAgIHJldHVybiBlcnJvcjsKLSAgICB9Ci0KLSAgICAvLyBTZXQgdXAgbGlicG5nIHRvIHJlYWQgZnJvbSBvdXIgZmlsZS4KLSAgICBwbmdfaW5pdF9pbyhyZWFkX3B0cixmcCk7Ci0KLSAgICAvLyBBY3R1YWxseSByZWFkIGRhdGEgZnJvbSB0aGUgZmlsZQotICAgIHJlYWRfcG5nKHNvdXJjZS5zdHJpbmcoKSwgcmVhZF9wdHIsIHJlYWRfaW5mbywgJmltYWdlSW5mbyk7Ci0KLSAgICAvLyBXZSdyZSBkb25lIHJlYWRpbmcgc28gd2UgY2FuIGNsZWFuIHVwCi0gICAgLy8gRmluZCBvbGQgZmlsZSBzaXplIGJlZm9yZSByZWxlYXNpbmcgaGFuZGxlCi0gICAgZnNlZWsoZnAsIDAsIFNFRUtfRU5EKTsKLSAgICBzaXplX3Qgb2xkU2l6ZSA9IChzaXplX3QpZnRlbGwoZnApOwotICAgIGZjbG9zZShmcCk7Ci0gICAgcG5nX2Rlc3Ryb3lfcmVhZF9zdHJ1Y3QoJnJlYWRfcHRyLCAmcmVhZF9pbmZvLE5VTEwpOwotCi0gICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIDktcGF0Y2gKLSAgICAvLyBJZiB3ZSBhcmUsIHByb2Nlc3MgYXBwcm9wcmlhdGVseQotICAgIGlmIChzb3VyY2UuZ2V0QmFzZVBhdGgoKS5nZXRQYXRoRXh0ZW5zaW9uKCkgPT0gIi45IikgIHsKLSAgICAgICAgaWYgKGRvXzlwYXRjaChzb3VyY2Uuc3RyaW5nKCksICZpbWFnZUluZm8pICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICByZXR1cm4gZXJyb3I7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBDYWxsIGxpYnBuZyB0byBjcmVhdGUgYSBzdHJ1Y3R1cmUgdG8gaG9sZCB0aGUgcHJvY2Vzc2VkIGltYWdlIGRhdGEKLSAgICAvLyB0aGF0IGNhbiBiZSB3cml0dGVuIHRvIGRpc2sKLSAgICB3cml0ZV9wdHIgPSBwbmdfY3JlYXRlX3dyaXRlX3N0cnVjdChQTkdfTElCUE5HX1ZFUl9TVFJJTkcsIE5VTEwsIE5VTEwsIE5VTEwpOwotICAgIGlmICghd3JpdGVfcHRyKSB7Ci0gICAgICAgIHBuZ19kZXN0cm95X3dyaXRlX3N0cnVjdCgmd3JpdGVfcHRyLCAmd3JpdGVfaW5mbyk7Ci0gICAgICAgIHJldHVybiBlcnJvcjsKLSAgICB9Ci0KLSAgICAvLyBDYWxsIGxpYnBuZyB0byBjcmVhdGUgYSBzdHJ1Y3R1cmUgdG8gaG9sZCBwcm9jZXNzZWQgaW1hZ2UgaW5mbyB0aGF0IGNhbgotICAgIC8vIGJlIHdyaXR0ZW4gdG8gZGlzawotICAgIHdyaXRlX2luZm8gPSBwbmdfY3JlYXRlX2luZm9fc3RydWN0KHdyaXRlX3B0cik7Ci0gICAgaWYgKCF3cml0ZV9pbmZvKSB7Ci0gICAgICAgIHBuZ19kZXN0cm95X3dyaXRlX3N0cnVjdCgmd3JpdGVfcHRyLCAmd3JpdGVfaW5mbyk7Ci0gICAgICAgIHJldHVybiBlcnJvcjsKLSAgICB9Ci0KLSAgICAvLyBPcGVuIHVwIG91ciBkZXN0aW5hdGlvbiBmaWxlIGZvciB3cml0aW5nCi0gICAgZnAgPSBmb3BlbihkZXN0LnN0cmluZygpLCAid2IiKTsKLSAgICBpZiAoIWZwKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgRVJST1I6IFVuYWJsZSB0byBvcGVuIFBORyBmaWxlXG4iLCBkZXN0LnN0cmluZygpKTsKLSAgICAgICAgcG5nX2Rlc3Ryb3lfd3JpdGVfc3RydWN0KCZ3cml0ZV9wdHIsICZ3cml0ZV9pbmZvKTsKLSAgICAgICAgcmV0dXJuIGVycm9yOwotICAgIH0KLQotICAgIC8vIFNldCB1cCBsaWJwbmcgdG8gd3JpdGUgdG8gb3VyIGZpbGUKLSAgICBwbmdfaW5pdF9pbyh3cml0ZV9wdHIsIGZwKTsKLQotICAgIC8vIFNldCB1cCBhIGp1bXAgZm9yIGxpYnBuZyB0byBsb25nIGp1bXAgYmFjayBvbiBvbiBlcnJvcnMKLSAgICBpZiAoc2V0am1wKHBuZ19qbXBidWYod3JpdGVfcHRyKSkpIHsKLSAgICAgICAgZmNsb3NlKGZwKTsKLSAgICAgICAgcG5nX2Rlc3Ryb3lfd3JpdGVfc3RydWN0KCZ3cml0ZV9wdHIsICZ3cml0ZV9pbmZvKTsKLSAgICAgICAgcmV0dXJuIGVycm9yOwotICAgIH0KLQotICAgIC8vIEFjdHVhbGx5IHdyaXRlIG91dCB0byB0aGUgbmV3IHBuZwotICAgIHdyaXRlX3BuZyhkZXN0LnN0cmluZygpLCB3cml0ZV9wdHIsIHdyaXRlX2luZm8sIGltYWdlSW5mbywKLSAgICAgICAgICAgICAgYnVuZGxlLT5nZXRHcmF5c2NhbGVUb2xlcmFuY2UoKSk7Ci0KLSAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpIHsKLSAgICAgICAgLy8gRmluZCB0aGUgc2l6ZSBvZiBvdXIgbmV3IGZpbGUKLSAgICAgICAgRklMRSogcmVhZGVyID0gZm9wZW4oZGVzdC5zdHJpbmcoKSwgInJiIik7Ci0gICAgICAgIGZzZWVrKHJlYWRlciwgMCwgU0VFS19FTkQpOwotICAgICAgICBzaXplX3QgbmV3U2l6ZSA9IChzaXplX3QpZnRlbGwocmVhZGVyKTsKLSAgICAgICAgZmNsb3NlKHJlYWRlcik7Ci0KLSAgICAgICAgZmxvYXQgZmFjdG9yID0gKChmbG9hdCluZXdTaXplKS9vbGRTaXplOwotICAgICAgICBpbnQgcGVyY2VudCA9IChpbnQpKGZhY3RvcioxMDApOwotICAgICAgICBwcmludGYoIiAgKHByb2Nlc3NlZCBpbWFnZSB0byBjYWNoZSBlbnRyeSAlczogJWQlJSBzaXplIG9mIHNvdXJjZSlcbiIsCi0gICAgICAgICAgICAgICBkZXN0LnN0cmluZygpLCBwZXJjZW50KTsKLSAgICB9Ci0KLSAgICAvL0NsZWFuIHVwCi0gICAgZmNsb3NlKGZwKTsKLSAgICBwbmdfZGVzdHJveV93cml0ZV9zdHJ1Y3QoJndyaXRlX3B0ciwgJndyaXRlX2luZm8pOwotCi0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi1zdGF0dXNfdCBwb3N0UHJvY2Vzc0ltYWdlKGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVGFibGUqIHRhYmxlLCBjb25zdCBzcDxBYXB0RmlsZT4mIGZpbGUpCi17Ci0gICAgU3RyaW5nOCBleHQoZmlsZS0+Z2V0UGF0aCgpLmdldFBhdGhFeHRlbnNpb24oKSk7Ci0KLSAgICAvLyBBdCB0aGlzIHBvaW50LCBub3cgdGhhdCB3ZSBoYXZlIGFsbCB0aGUgcmVzb3VyY2UgZGF0YSwgYWxsIHdlIG5lZWQgdG8KLSAgICAvLyBkbyBpcyBjb21waWxlIFhNTCBmaWxlcy4KLSAgICBpZiAoc3RyY21wKGV4dC5zdHJpbmcoKSwgIi54bWwiKSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBjb21waWxlWG1sRmlsZShhc3NldHMsIGZpbGUsIHRhYmxlKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19CmRpZmYgLS1naXQgYS90b29scy9hYXB0L0ltYWdlcy5oIGIvdG9vbHMvYWFwdC9JbWFnZXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTFiNjU1NC4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L0ltYWdlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDA2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0vLyBCdWlsZCByZXNvdXJjZSBmaWxlcyBmcm9tIHJhdyBhc3NldHMuCi0vLwotCi0jaWZuZGVmIElNQUdFU19ICi0jZGVmaW5lIElNQUdFU19ICi0KLSNpbmNsdWRlICJSZXNvdXJjZVRhYmxlLmgiCi0jaW5jbHVkZSAiQnVuZGxlLmgiCi0KLSNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+Ci0jaW5jbHVkZSA8dXRpbHMvUmVmQmFzZS5oPgotCi11c2luZyBhbmRyb2lkOjpTdHJpbmc4OwotCi1zdGF0dXNfdCBwcmVQcm9jZXNzSW1hZ2UoY29uc3QgQnVuZGxlKiBidW5kbGUsIGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8QWFwdEZpbGU+JiBmaWxlLCBTdHJpbmc4KiBvdXROZXdMZWFmTmFtZSk7Ci0KLXN0YXR1c190IHByZVByb2Nlc3NJbWFnZVRvQ2FjaGUoY29uc3QgQnVuZGxlKiBidW5kbGUsIGNvbnN0IFN0cmluZzgmIHNvdXJjZSwgY29uc3QgU3RyaW5nOCYgZGVzdCk7Ci0KLXN0YXR1c190IHBvc3RQcm9jZXNzSW1hZ2UoY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzc2V0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VUYWJsZSogdGFibGUsIGNvbnN0IHNwPEFhcHRGaWxlPiYgZmlsZSk7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC9NYWluLmNwcCBiL3Rvb2xzL2FhcHQvTWFpbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3NzIyNmIuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9NYWluLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY1MSArMCwwIEBACi0vLwotLy8gQ29weXJpZ2h0IDIwMDYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotLy8KLS8vIEFuZHJvaWQgQXNzZXQgUGFja2FnaW5nIFRvb2wgbWFpbiBlbnRyeSBwb2ludC4KLS8vCi0jaW5jbHVkZSAiTWFpbi5oIgotI2luY2x1ZGUgIkJ1bmRsZS5oIgotCi0jaW5jbHVkZSA8dXRpbHMvTG9nLmg+Ci0jaW5jbHVkZSA8dXRpbHMvdGhyZWFkcy5oPgotI2luY2x1ZGUgPHV0aWxzL0xpc3QuaD4KLSNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KLQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPGdldG9wdC5oPgotI2luY2x1ZGUgPGFzc2VydC5oPgotCi11c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKLQotc3RhdGljIGNvbnN0IGNoYXIqIGdQcm9nTmFtZSA9ICJhYXB0IjsKLQotLyoKLSAqIFdoZW4gcnVubmluZyB1bmRlciBDeWd3aW4gb24gV2luZG93cywgdGhpcyB3aWxsIGNvbnZlcnQgc2xhc2gtYmFzZWQKLSAqIHBhdGhzIGludG8gYmFjay1zbGFzaC1iYXNlZCBvbmVzLiBPdGhlcndpc2UgdGhlIEFwcHRBc3NldHMgZmlsZSBjb21wYXJpc29ucwotICogZmFpbCBsYXRlciBhcyB0aGV5IHVzZSBiYWNrLXNsYXNoIHNlcGFyYXRvcnMgdW5kZXIgV2luZG93cy4KLSAqCi0gKiBUaGlzIG9wZXJhdGVzIGluLXBsYWNlIG9uIHRoZSBwYXRoIHN0cmluZy4KLSAqLwotdm9pZCBjb252ZXJ0UGF0aChjaGFyICpwYXRoKSB7Ci0gIGlmIChwYXRoICE9IE5VTEwgJiYgT1NfUEFUSF9TRVBBUkFUT1IgIT0gJy8nKSB7Ci0gICAgZm9yICg7ICpwYXRoOyBwYXRoKyspIHsKLSAgICAgIGlmICgqcGF0aCA9PSAnLycpIHsKLSAgICAgICAgKnBhdGggPSBPU19QQVRIX1NFUEFSQVRPUjsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotLyoKLSAqIFByaW50IHVzYWdlIGluZm8uCi0gKi8KLXZvaWQgdXNhZ2Uodm9pZCkKLXsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIkFuZHJvaWQgQXNzZXQgUGFja2FnaW5nIFRvb2xcblxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICJVc2FnZTpcbiIpOwotICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAiICVzIGxbaXN0XSBbLXZdIFstYV0gZmlsZS57emlwLGphcixhcGt9XG4iCi0gICAgICAgICIgICBMaXN0IGNvbnRlbnRzIG9mIFppcC1jb21wYXRpYmxlIGFyY2hpdmUuXG5cbiIsIGdQcm9nTmFtZSk7Ci0gICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICIgJXMgZFt1bXBdIFstLXZhbHVlc10gV0hBVCBmaWxlLnthcGt9IFthc3NldCBbYXNzZXQgLi4uXV1cbiIKLSAgICAgICAgIiAgIHN0cmluZ3MgICAgICAgICAgUHJpbnQgdGhlIGNvbnRlbnRzIG9mIHRoZSByZXNvdXJjZSB0YWJsZSBzdHJpbmcgcG9vbCBpbiB0aGUgQVBLLlxuIgotICAgICAgICAiICAgYmFkZ2luZyAgICAgICAgICBQcmludCB0aGUgbGFiZWwgYW5kIGljb24gZm9yIHRoZSBhcHAgZGVjbGFyZWQgaW4gQVBLLlxuIgotICAgICAgICAiICAgcGVybWlzc2lvbnMgICAgICBQcmludCB0aGUgcGVybWlzc2lvbnMgZnJvbSB0aGUgQVBLLlxuIgotICAgICAgICAiICAgcmVzb3VyY2VzICAgICAgICBQcmludCB0aGUgcmVzb3VyY2UgdGFibGUgZnJvbSB0aGUgQVBLLlxuIgotICAgICAgICAiICAgY29uZmlndXJhdGlvbnMgICBQcmludCB0aGUgY29uZmlndXJhdGlvbnMgaW4gdGhlIEFQSy5cbiIKLSAgICAgICAgIiAgIHhtbHRyZWUgICAgICAgICAgUHJpbnQgdGhlIGNvbXBpbGVkIHhtbHMgaW4gdGhlIGdpdmVuIGFzc2V0cy5cbiIKLSAgICAgICAgIiAgIHhtbHN0cmluZ3MgICAgICAgUHJpbnQgdGhlIHN0cmluZ3Mgb2YgdGhlIGdpdmVuIGNvbXBpbGVkIHhtbCBhc3NldHMuXG5cbiIsIGdQcm9nTmFtZSk7Ci0gICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICIgJXMgcFthY2thZ2VdIFstZF1bLWZdWy1tXVstdV1bLXZdWy14XVstel1bLU0gQW5kcm9pZE1hbmlmZXN0LnhtbF0gXFxcbiIKLSAgICAgICAgIiAgICAgICAgWy0wIGV4dGVuc2lvbiBbLTAgZXh0ZW5zaW9uIC4uLl1dIFstZyB0b2xlcmFuY2VdIFstaiBqYXJmaWxlXSBcXFxuIgotICAgICAgICAiICAgICAgICBbLS1kZWJ1Zy1tb2RlXSBbLS1taW4tc2RrLXZlcnNpb24gVkFMXSBbLS10YXJnZXQtc2RrLXZlcnNpb24gVkFMXSBcXFxuIgotICAgICAgICAiICAgICAgICBbLS1hcHAtdmVyc2lvbiBWQUxdIFstLWFwcC12ZXJzaW9uLW5hbWUgVEVYVF0gWy0tY3VzdG9tLXBhY2thZ2UgVkFMXSBcXFxuIgotICAgICAgICAiICAgICAgICBbLS1yZW5hbWUtbWFuaWZlc3QtcGFja2FnZSBQQUNLQUdFXSBcXFxuIgotICAgICAgICAiICAgICAgICBbLS1yZW5hbWUtaW5zdHJ1bWVudGF0aW9uLXRhcmdldC1wYWNrYWdlIFBBQ0tBR0VdIFxcXG4iCi0gICAgICAgICIgICAgICAgIFstLXV0ZjE2XSBbLS1hdXRvLWFkZC1vdmVybGF5XSBcXFxuIgotICAgICAgICAiICAgICAgICBbLS1tYXgtcmVzLXZlcnNpb24gVkFMXSBcXFxuIgotICAgICAgICAiICAgICAgICBbLUkgYmFzZS1wYWNrYWdlIFstSSBiYXNlLXBhY2thZ2UgLi4uXV0gXFxcbiIKLSAgICAgICAgIiAgICAgICAgWy1BIGFzc2V0LXNvdXJjZS1kaXJdICBbLUcgY2xhc3MtbGlzdC1maWxlXSBbLVAgcHVibGljLWRlZmluaXRpb25zLWZpbGVdIFxcXG4iCi0gICAgICAgICIgICAgICAgIFstUyByZXNvdXJjZS1zb3VyY2VzIFstUyByZXNvdXJjZS1zb3VyY2VzIC4uLl1dIFxcXG4iCi0gICAgICAgICIgICAgICAgIFstRiBhcGstZmlsZV0gWy1KIFItZmlsZS1kaXJdIFxcXG4iCi0gICAgICAgICIgICAgICAgIFstLXByb2R1Y3QgcHJvZHVjdDEscHJvZHVjdDIsLi4uXSBcXFxuIgotICAgICAgICAiICAgICAgICBbLWMgQ09ORklHU10gWy0tcHJlZmVycmVkLWNvbmZpZ3VyYXRpb25zIENPTkZJR1NdIFxcXG4iCi0gICAgICAgICIgICAgICAgIFtyYXctZmlsZXMtZGlyIFtyYXctZmlsZXMtZGlyXSAuLi5dIFxcXG4iCi0gICAgICAgICIgICAgICAgIFstLW91dHB1dC10ZXh0LXN5bWJvbHMgRElSXVxuIgotICAgICAgICAiXG4iCi0gICAgICAgICIgICBQYWNrYWdlIHRoZSBhbmRyb2lkIHJlc291cmNlcy4gIEl0IHdpbGwgcmVhZCBhc3NldHMgYW5kIHJlc291cmNlcyB0aGF0IGFyZVxuIgotICAgICAgICAiICAgc3VwcGxpZWQgd2l0aCB0aGUgLU0gLUEgLVMgb3IgcmF3LWZpbGVzLWRpciBhcmd1bWVudHMuICBUaGUgLUogLVAgLUYgYW5kIC1SXG4iCi0gICAgICAgICIgICBvcHRpb25zIGNvbnRyb2wgd2hpY2ggZmlsZXMgYXJlIG91dHB1dC5cblxuIgotICAgICAgICAsIGdQcm9nTmFtZSk7Ci0gICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICIgJXMgcltlbW92ZV0gWy12XSBmaWxlLnt6aXAsamFyLGFwa30gZmlsZTEgW2ZpbGUyIC4uLl1cbiIKLSAgICAgICAgIiAgIERlbGV0ZSBzcGVjaWZpZWQgZmlsZXMgZnJvbSBaaXAtY29tcGF0aWJsZSBhcmNoaXZlLlxuXG4iLAotICAgICAgICBnUHJvZ05hbWUpOwotICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAiICVzIGFbZGRdIFstdl0gZmlsZS57emlwLGphcixhcGt9IGZpbGUxIFtmaWxlMiAuLi5dXG4iCi0gICAgICAgICIgICBBZGQgc3BlY2lmaWVkIGZpbGVzIHRvIFppcC1jb21wYXRpYmxlIGFyY2hpdmUuXG5cbiIsIGdQcm9nTmFtZSk7Ci0gICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICIgJXMgY1tydW5jaF0gWy12XSAtUyByZXNvdXJjZS1zb3VyY2VzIC4uLiAtQyBvdXRwdXQtZm9sZGVyIC4uLlxuIgotICAgICAgICAiICAgRG8gUE5HIHByZXByb2Nlc3Npbmcgb24gb25lIG9yIHNldmVyYWwgcmVzb3VyY2UgZm9sZGVyc1xuIgotICAgICAgICAiICAgYW5kIHN0b3JlIHRoZSByZXN1bHRzIGluIHRoZSBvdXRwdXQgZm9sZGVyLlxuXG4iLCBnUHJvZ05hbWUpOwotICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAiICVzIHNbaW5nbGVDcnVuY2hdIFstdl0gLWkgaW5wdXQtZmlsZSAtbyBvdXRwdXRmaWxlXG4iCi0gICAgICAgICIgICBEbyBQTkcgcHJlcHJvY2Vzc2luZyBvbiBhIHNpbmdsZSBmaWxlLlxuXG4iLCBnUHJvZ05hbWUpOwotICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAiICVzIHZbZXJzaW9uXVxuIgotICAgICAgICAiICAgUHJpbnQgcHJvZ3JhbSB2ZXJzaW9uLlxuXG4iLCBnUHJvZ05hbWUpOwotICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAiIE1vZGlmaWVyczpcbiIKLSAgICAgICAgIiAgIC1hICBwcmludCBBbmRyb2lkLXNwZWNpZmljIGRhdGEgKHJlc291cmNlcywgbWFuaWZlc3QpIHdoZW4gbGlzdGluZ1xuIgotICAgICAgICAiICAgLWMgIHNwZWNpZnkgd2hpY2ggY29uZmlndXJhdGlvbnMgdG8gaW5jbHVkZS4gIFRoZSBkZWZhdWx0IGlzIGFsbFxuIgotICAgICAgICAiICAgICAgIGNvbmZpZ3VyYXRpb25zLiAgVGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIgc2hvdWxkIGJlIGEgY29tbWFcbiIKLSAgICAgICAgIiAgICAgICBzZXBhcmF0ZWQgbGlzdCBvZiBjb25maWd1cmF0aW9uIHZhbHVlcy4gIExvY2FsZXMgc2hvdWxkIGJlIHNwZWNpZmllZFxuIgotICAgICAgICAiICAgICAgIGFzIGVpdGhlciBhIGxhbmd1YWdlIG9yIGxhbmd1YWdlLXJlZ2lvbiBwYWlyLiAgU29tZSBleGFtcGxlczpcbiIKLSAgICAgICAgIiAgICAgICAgICAgIGVuXG4iCi0gICAgICAgICIgICAgICAgICAgICBwb3J0LGVuXG4iCi0gICAgICAgICIgICAgICAgICAgICBwb3J0LGxhbmQsZW5fVVNcbiIKLSAgICAgICAgIiAgICAgICBJZiB5b3UgcHV0IHRoZSBzcGVjaWFsIGxvY2FsZSwgenpfWlogb24gdGhlIGxpc3QsIGl0IHdpbGwgcGVyZm9ybVxuIgotICAgICAgICAiICAgICAgIHBzZXVkb2xvY2FsaXphdGlvbiBvbiB0aGUgZGVmYXVsdCBsb2NhbGUsIG1vZGlmeWluZyBhbGwgb2YgdGhlXG4iCi0gICAgICAgICIgICAgICAgc3RyaW5ncyBzbyB5b3UgY2FuIGxvb2sgZm9yIHN0cmluZ3MgdGhhdCBtaXNzZWQgdGhlXG4iCi0gICAgICAgICIgICAgICAgaW50ZXJuYXRpb25hbGl6YXRpb24gcHJvY2Vzcy4gIEZvciBleGFtcGxlOlxuIgotICAgICAgICAiICAgICAgICAgICAgcG9ydCxsYW5kLHp6X1paXG4iCi0gICAgICAgICIgICAtZCAgb25lIG9yIG1vcmUgZGV2aWNlIGFzc2V0cyB0byBpbmNsdWRlLCBzZXBhcmF0ZWQgYnkgY29tbWFzXG4iCi0gICAgICAgICIgICAtZiAgZm9yY2Ugb3ZlcndyaXRlIG9mIGV4aXN0aW5nIGZpbGVzXG4iCi0gICAgICAgICIgICAtZyAgc3BlY2lmeSBhIHBpeGVsIHRvbGVyYW5jZSB0byBmb3JjZSBpbWFnZXMgdG8gZ3JheXNjYWxlLCBkZWZhdWx0IDBcbiIKLSAgICAgICAgIiAgIC1qICBzcGVjaWZ5IGEgamFyIG9yIHppcCBmaWxlIGNvbnRhaW5pbmcgY2xhc3NlcyB0byBpbmNsdWRlXG4iCi0gICAgICAgICIgICAtayAganVuayBwYXRoIG9mIGZpbGUocykgYWRkZWRcbiIKLSAgICAgICAgIiAgIC1tICBtYWtlIHBhY2thZ2UgZGlyZWN0b3JpZXMgdW5kZXIgbG9jYXRpb24gc3BlY2lmaWVkIGJ5IC1KXG4iCi0jaWYgMAotICAgICAgICAiICAgLXAgIHBzZXVkb2xvY2FsaXplIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiIKLSNlbmRpZgotICAgICAgICAiICAgLXUgIHVwZGF0ZSBleGlzdGluZyBwYWNrYWdlcyAoYWRkIG5ldywgcmVwbGFjZSBvbGRlciwgcmVtb3ZlIGRlbGV0ZWQgZmlsZXMpXG4iCi0gICAgICAgICIgICAtdiAgdmVyYm9zZSBvdXRwdXRcbiIKLSAgICAgICAgIiAgIC14ICBjcmVhdGUgZXh0ZW5kaW5nIChub24tYXBwbGljYXRpb24pIHJlc291cmNlIElEc1xuIgotICAgICAgICAiICAgLXogIHJlcXVpcmUgbG9jYWxpemF0aW9uIG9mIHJlc291cmNlIGF0dHJpYnV0ZXMgbWFya2VkIHdpdGhcbiIKLSAgICAgICAgIiAgICAgICBsb2NhbGl6YXRpb249XCJzdWdnZXN0ZWRcIlxuIgotICAgICAgICAiICAgLUEgIGFkZGl0aW9uYWwgZGlyZWN0b3J5IGluIHdoaWNoIHRvIGZpbmQgcmF3IGFzc2V0IGZpbGVzXG4iCi0gICAgICAgICIgICAtRyAgQSBmaWxlIHRvIG91dHB1dCBwcm9ndWFyZCBvcHRpb25zIGludG8uXG4iCi0gICAgICAgICIgICAtRiAgc3BlY2lmeSB0aGUgYXBrIGZpbGUgdG8gb3V0cHV0XG4iCi0gICAgICAgICIgICAtSSAgYWRkIGFuIGV4aXN0aW5nIHBhY2thZ2UgdG8gYmFzZSBpbmNsdWRlIHNldFxuIgotICAgICAgICAiICAgLUogIHNwZWNpZnkgd2hlcmUgdG8gb3V0cHV0IFIuamF2YSByZXNvdXJjZSBjb25zdGFudCBkZWZpbml0aW9uc1xuIgotICAgICAgICAiICAgLU0gIHNwZWNpZnkgZnVsbCBwYXRoIHRvIEFuZHJvaWRNYW5pZmVzdC54bWwgdG8gaW5jbHVkZSBpbiB6aXBcbiIKLSAgICAgICAgIiAgIC1QICBzcGVjaWZ5IHdoZXJlIHRvIG91dHB1dCBwdWJsaWMgcmVzb3VyY2UgZGVmaW5pdGlvbnNcbiIKLSAgICAgICAgIiAgIC1TICBkaXJlY3RvcnkgaW4gd2hpY2ggdG8gZmluZCByZXNvdXJjZXMuICBNdWx0aXBsZSBkaXJlY3RvcmllcyB3aWxsIGJlIHNjYW5uZWRcbiIKLSAgICAgICAgIiAgICAgICBhbmQgdGhlIGZpcnN0IG1hdGNoIGZvdW5kIChsZWZ0IHRvIHJpZ2h0KSB3aWxsIHRha2UgcHJlY2VkZW5jZS5cbiIKLSAgICAgICAgIiAgIC0wICBzcGVjaWZpZXMgYW4gYWRkaXRpb25hbCBleHRlbnNpb24gZm9yIHdoaWNoIHN1Y2ggZmlsZXMgd2lsbCBub3RcbiIKLSAgICAgICAgIiAgICAgICBiZSBzdG9yZWQgY29tcHJlc3NlZCBpbiB0aGUgLmFway4gIEFuIGVtcHR5IHN0cmluZyBtZWFucyB0byBub3RcbiIKLSAgICAgICAgIiAgICAgICBjb21wcmVzcyBhbnkgZmlsZXMgYXQgYWxsLlxuIgotICAgICAgICAiICAgLS1kZWJ1Zy1tb2RlXG4iCi0gICAgICAgICIgICAgICAgaW5zZXJ0cyBhbmRyb2lkOmRlYnVnZ2FibGU9XCJ0cnVlXCIgaW4gdG8gdGhlIGFwcGxpY2F0aW9uIG5vZGUgb2YgdGhlXG4iCi0gICAgICAgICIgICAgICAgbWFuaWZlc3QsIG1ha2luZyB0aGUgYXBwbGljYXRpb24gZGVidWdnYWJsZSBldmVuIG9uIHByb2R1Y3Rpb24gZGV2aWNlcy5cbiIKLSAgICAgICAgIiAgIC0tbWluLXNkay12ZXJzaW9uXG4iCi0gICAgICAgICIgICAgICAgaW5zZXJ0cyBhbmRyb2lkOm1pblNka1ZlcnNpb24gaW4gdG8gbWFuaWZlc3QuICBJZiB0aGUgdmVyc2lvbiBpcyA3IG9yXG4iCi0gICAgICAgICIgICAgICAgaGlnaGVyLCB0aGUgZGVmYXVsdCBlbmNvZGluZyBmb3IgcmVzb3VyY2VzIHdpbGwgYmUgaW4gVVRGLTguXG4iCi0gICAgICAgICIgICAtLXRhcmdldC1zZGstdmVyc2lvblxuIgotICAgICAgICAiICAgICAgIGluc2VydHMgYW5kcm9pZDp0YXJnZXRTZGtWZXJzaW9uIGluIHRvIG1hbmlmZXN0LlxuIgotICAgICAgICAiICAgLS1tYXgtcmVzLXZlcnNpb25cbiIKLSAgICAgICAgIiAgICAgICBpZ25vcmVzIHZlcnNpb25lZCByZXNvdXJjZSBkaXJlY3RvcmllcyBhYm92ZSB0aGUgZ2l2ZW4gdmFsdWUuXG4iCi0gICAgICAgICIgICAtLXZhbHVlc1xuIgotICAgICAgICAiICAgICAgIHdoZW4gdXNlZCB3aXRoIFwiZHVtcCByZXNvdXJjZXNcIiBhbHNvIGluY2x1ZGVzIHJlc291cmNlIHZhbHVlcy5cbiIKLSAgICAgICAgIiAgIC0tdmVyc2lvbi1jb2RlXG4iCi0gICAgICAgICIgICAgICAgaW5zZXJ0cyBhbmRyb2lkOnZlcnNpb25Db2RlIGluIHRvIG1hbmlmZXN0LlxuIgotICAgICAgICAiICAgLS12ZXJzaW9uLW5hbWVcbiIKLSAgICAgICAgIiAgICAgICBpbnNlcnRzIGFuZHJvaWQ6dmVyc2lvbk5hbWUgaW4gdG8gbWFuaWZlc3QuXG4iCi0gICAgICAgICIgICAtLWN1c3RvbS1wYWNrYWdlXG4iCi0gICAgICAgICIgICAgICAgZ2VuZXJhdGVzIFIuamF2YSBpbnRvIGEgZGlmZmVyZW50IHBhY2thZ2UuXG4iCi0gICAgICAgICIgICAtLWV4dHJhLXBhY2thZ2VzXG4iCi0gICAgICAgICIgICAgICAgZ2VuZXJhdGUgUi5qYXZhIGZvciBsaWJyYXJpZXMuIFNlcGFyYXRlIGxpYnJhcmllcyB3aXRoICc6Jy5cbiIKLSAgICAgICAgIiAgIC0tZ2VuZXJhdGUtZGVwZW5kZW5jaWVzXG4iCi0gICAgICAgICIgICAgICAgZ2VuZXJhdGUgZGVwZW5kZW5jeSBmaWxlcyBpbiB0aGUgc2FtZSBkaXJlY3RvcmllcyBmb3IgUi5qYXZhIGFuZCByZXNvdXJjZSBwYWNrYWdlXG4iCi0gICAgICAgICIgICAtLWF1dG8tYWRkLW92ZXJsYXlcbiIKLSAgICAgICAgIiAgICAgICBBdXRvbWF0aWNhbGx5IGFkZCByZXNvdXJjZXMgdGhhdCBhcmUgb25seSBpbiBvdmVybGF5cy5cbiIKLSAgICAgICAgIiAgIC0tcHJlZmVycmVkLWNvbmZpZ3VyYXRpb25zXG4iCi0gICAgICAgICIgICAgICAgTGlrZSB0aGUgLWMgb3B0aW9uIGZvciBmaWx0ZXJpbmcgb3V0IHVubmVlZGVkIGNvbmZpZ3VyYXRpb25zLCBidXRcbiIKLSAgICAgICAgIiAgICAgICBvbmx5IGV4cHJlc3NlcyBhIHByZWZlcmVuY2UuICBJZiB0aGVyZSBpcyBubyByZXNvdXJjZSBhdmFpbGFibGUgd2l0aFxuIgotICAgICAgICAiICAgICAgIHRoZSBwcmVmZXJyZWQgY29uZmlndXJhdGlvbiB0aGVuIGl0IHdpbGwgbm90IGJlIHN0cmlwcGVkLlxuIgotICAgICAgICAiICAgLS1yZW5hbWUtbWFuaWZlc3QtcGFja2FnZVxuIgotICAgICAgICAiICAgICAgIFJld3JpdGUgdGhlIG1hbmlmZXN0IHNvIHRoYXQgaXRzIHBhY2thZ2UgbmFtZSBpcyB0aGUgcGFja2FnZSBuYW1lXG4iCi0gICAgICAgICIgICAgICAgZ2l2ZW4gaGVyZS4gIFJlbGF0aXZlIGNsYXNzIG5hbWVzIChmb3IgZXhhbXBsZSAuRm9vKSB3aWxsIGJlXG4iCi0gICAgICAgICIgICAgICAgY2hhbmdlZCB0byBhYnNvbHV0ZSBuYW1lcyB3aXRoIHRoZSBvbGQgcGFja2FnZSBzbyB0aGF0IHRoZSBjb2RlXG4iCi0gICAgICAgICIgICAgICAgZG9lcyBub3QgbmVlZCB0byBjaGFuZ2UuXG4iCi0gICAgICAgICIgICAtLXJlbmFtZS1pbnN0cnVtZW50YXRpb24tdGFyZ2V0LXBhY2thZ2VcbiIKLSAgICAgICAgIiAgICAgICBSZXdyaXRlIHRoZSBtYW5pZmVzdCBzbyB0aGF0IGFsbCBvZiBpdHMgaW5zdHJ1bWVudGF0aW9uXG4iCi0gICAgICAgICIgICAgICAgY29tcG9uZW50cyB0YXJnZXQgdGhlIGdpdmVuIHBhY2thZ2UuICBVc2VmdWwgd2hlbiB1c2VkIGluXG4iCi0gICAgICAgICIgICAgICAgY29uanVuY3Rpb24gd2l0aCAtLXJlbmFtZS1tYW5pZmVzdC1wYWNrYWdlIHRvIGZpeCB0ZXN0cyBhZ2FpbnN0XG4iCi0gICAgICAgICIgICAgICAgYSBwYWNrYWdlIHRoYXQgaGFzIGJlZW4gcmVuYW1lZC5cbiIKLSAgICAgICAgIiAgIC0tcHJvZHVjdFxuIgotICAgICAgICAiICAgICAgIFNwZWNpZmllcyB3aGljaCB2YXJpYW50IHRvIGNob29zZSBmb3Igc3RyaW5ncyB0aGF0IGhhdmVcbiIKLSAgICAgICAgIiAgICAgICBwcm9kdWN0IHZhcmlhbnRzXG4iCi0gICAgICAgICIgICAtLXV0ZjE2XG4iCi0gICAgICAgICIgICAgICAgY2hhbmdlcyBkZWZhdWx0IGVuY29kaW5nIGZvciByZXNvdXJjZXMgdG8gVVRGLTE2LiAgT25seSB1c2VmdWwgd2hlbiBBUElcbiIKLSAgICAgICAgIiAgICAgICBsZXZlbCBpcyBzZXQgdG8gNyBvciBoaWdoZXIgd2hlcmUgdGhlIGRlZmF1bHQgZW5jb2RpbmcgaXMgVVRGLTguXG4iCi0gICAgICAgICIgICAtLW5vbi1jb25zdGFudC1pZFxuIgotICAgICAgICAiICAgICAgIE1ha2UgdGhlIHJlc291cmNlcyBJRCBub24gY29uc3RhbnQuIFRoaXMgaXMgcmVxdWlyZWQgdG8gbWFrZSBhbiBSIGphdmEgY2xhc3NcbiIKLSAgICAgICAgIiAgICAgICB0aGF0IGRvZXMgbm90IGNvbnRhaW4gdGhlIGZpbmFsIHZhbHVlIGJ1dCBpcyB1c2VkIHRvIG1ha2UgcmV1c2FibGUgY29tcGlsZWRcbiIKLSAgICAgICAgIiAgICAgICBsaWJyYXJpZXMgdGhhdCBuZWVkIHRvIGFjY2VzcyByZXNvdXJjZXMuXG4iCi0gICAgICAgICIgICAtLWVycm9yLW9uLWZhaWxlZC1pbnNlcnRcbiIKLSAgICAgICAgIiAgICAgICBGb3JjZXMgYWFwdCB0byByZXR1cm4gYW4gZXJyb3IgaWYgaXQgZmFpbHMgdG8gaW5zZXJ0IHZhbHVlcyBpbnRvIHRoZSBtYW5pZmVzdFxuIgotICAgICAgICAiICAgICAgIHdpdGggLS1kZWJ1Zy1tb2RlLCAtLW1pbi1zZGstdmVyc2lvbiwgLS10YXJnZXQtc2RrLXZlcnNpb24gLS12ZXJzaW9uLWNvZGVcbiIKLSAgICAgICAgIiAgICAgICBhbmQgLS12ZXJzaW9uLW5hbWUuXG4iCi0gICAgICAgICIgICAgICAgSW5zZXJ0aW9uIHR5cGljYWxseSBmYWlscyBpZiB0aGUgbWFuaWZlc3QgYWxyZWFkeSBkZWZpbmVzIHRoZSBhdHRyaWJ1dGUuXG4iCi0gICAgICAgICIgICAtLW91dHB1dC10ZXh0LXN5bWJvbHNcbiIKLSAgICAgICAgIiAgICAgICBHZW5lcmF0ZXMgYSB0ZXh0IGZpbGUgY29udGFpbmluZyB0aGUgcmVzb3VyY2Ugc3ltYm9scyBvZiB0aGUgUiBjbGFzcyBpbiB0aGVcbiIKLSAgICAgICAgIiAgICAgICBzcGVjaWZpZWQgZm9sZGVyLlxuIgotICAgICAgICAiICAgLS1pZ25vcmUtYXNzZXRzXG4iCi0gICAgICAgICIgICAgICAgQXNzZXRzIHRvIGJlIGlnbm9yZWQuIERlZmF1bHQgcGF0dGVybiBpczpcbiIKLSAgICAgICAgIiAgICAgICAlc1xuIiwKLSAgICAgICAgZ0RlZmF1bHRJZ25vcmVBc3NldHMpOwotfQotCi0vKgotICogRGlzcGF0Y2ggdGhlIGNvbW1hbmQuCi0gKi8KLWludCBoYW5kbGVDb21tYW5kKEJ1bmRsZSogYnVuZGxlKQotewotICAgIC8vcHJpbnRmKCItLS0gY29tbWFuZCAlZCAodmVyYm9zZT0lZCBmb3JjZT0lZCk6XG4iLAotICAgIC8vICAgIGJ1bmRsZS0+Z2V0Q29tbWFuZCgpLCBidW5kbGUtPmdldFZlcmJvc2UoKSwgYnVuZGxlLT5nZXRGb3JjZSgpKTsKLSAgICAvL2ZvciAoaW50IGkgPSAwOyBpIDwgYnVuZGxlLT5nZXRGaWxlU3BlY0NvdW50KCk7IGkrKykKLSAgICAvLyAgICBwcmludGYoIiAgJWQ6ICclcydcbiIsIGksIGJ1bmRsZS0+Z2V0RmlsZVNwZWNFbnRyeShpKSk7Ci0KLSAgICBzd2l0Y2ggKGJ1bmRsZS0+Z2V0Q29tbWFuZCgpKSB7Ci0gICAgY2FzZSBrQ29tbWFuZFZlcnNpb246ICAgICAgcmV0dXJuIGRvVmVyc2lvbihidW5kbGUpOwotICAgIGNhc2Uga0NvbW1hbmRMaXN0OiAgICAgICAgIHJldHVybiBkb0xpc3QoYnVuZGxlKTsKLSAgICBjYXNlIGtDb21tYW5kRHVtcDogICAgICAgICByZXR1cm4gZG9EdW1wKGJ1bmRsZSk7Ci0gICAgY2FzZSBrQ29tbWFuZEFkZDogICAgICAgICAgcmV0dXJuIGRvQWRkKGJ1bmRsZSk7Ci0gICAgY2FzZSBrQ29tbWFuZFJlbW92ZTogICAgICAgcmV0dXJuIGRvUmVtb3ZlKGJ1bmRsZSk7Ci0gICAgY2FzZSBrQ29tbWFuZFBhY2thZ2U6ICAgICAgcmV0dXJuIGRvUGFja2FnZShidW5kbGUpOwotICAgIGNhc2Uga0NvbW1hbmRDcnVuY2g6ICAgICAgIHJldHVybiBkb0NydW5jaChidW5kbGUpOwotICAgIGNhc2Uga0NvbW1hbmRTaW5nbGVDcnVuY2g6IHJldHVybiBkb1NpbmdsZUNydW5jaChidW5kbGUpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IHJlcXVlc3RlZCBjb21tYW5kIG5vdCB5ZXQgc3VwcG9ydGVkXG4iLCBnUHJvZ05hbWUpOwotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci19Ci0KLS8qCi0gKiBQYXJzZSBhcmdzLgotICovCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciogY29uc3QgYXJndltdKQotewotICAgIGNoYXIgKnByb2cgPSBhcmd2WzBdOwotICAgIEJ1bmRsZSBidW5kbGU7Ci0gICAgYm9vbCB3YW50VXNhZ2UgPSBmYWxzZTsKLSAgICBpbnQgcmVzdWx0ID0gMTsgICAgLy8gcGVzc2ltaXN0aWNhbGx5IGFzc3VtZSBhbiBlcnJvci4KLSAgICBpbnQgdG9sZXJhbmNlID0gMDsKLQotICAgIC8qIGRlZmF1bHQgdG8gY29tcHJlc3Npb24gKi8KLSAgICBidW5kbGUuc2V0Q29tcHJlc3Npb25NZXRob2QoWmlwRW50cnk6OmtDb21wcmVzc0RlZmxhdGVkKTsKLQotICAgIGlmIChhcmdjIDwgMikgewotICAgICAgICB3YW50VXNhZ2UgPSB0cnVlOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgaWYgKGFyZ3ZbMV1bMF0gPT0gJ3YnKQotICAgICAgICBidW5kbGUuc2V0Q29tbWFuZChrQ29tbWFuZFZlcnNpb24pOwotICAgIGVsc2UgaWYgKGFyZ3ZbMV1bMF0gPT0gJ2QnKQotICAgICAgICBidW5kbGUuc2V0Q29tbWFuZChrQ29tbWFuZER1bXApOwotICAgIGVsc2UgaWYgKGFyZ3ZbMV1bMF0gPT0gJ2wnKQotICAgICAgICBidW5kbGUuc2V0Q29tbWFuZChrQ29tbWFuZExpc3QpOwotICAgIGVsc2UgaWYgKGFyZ3ZbMV1bMF0gPT0gJ2EnKQotICAgICAgICBidW5kbGUuc2V0Q29tbWFuZChrQ29tbWFuZEFkZCk7Ci0gICAgZWxzZSBpZiAoYXJndlsxXVswXSA9PSAncicpCi0gICAgICAgIGJ1bmRsZS5zZXRDb21tYW5kKGtDb21tYW5kUmVtb3ZlKTsKLSAgICBlbHNlIGlmIChhcmd2WzFdWzBdID09ICdwJykKLSAgICAgICAgYnVuZGxlLnNldENvbW1hbmQoa0NvbW1hbmRQYWNrYWdlKTsKLSAgICBlbHNlIGlmIChhcmd2WzFdWzBdID09ICdjJykKLSAgICAgICAgYnVuZGxlLnNldENvbW1hbmQoa0NvbW1hbmRDcnVuY2gpOwotICAgIGVsc2UgaWYgKGFyZ3ZbMV1bMF0gPT0gJ3MnKQotICAgICAgICBidW5kbGUuc2V0Q29tbWFuZChrQ29tbWFuZFNpbmdsZUNydW5jaCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IFVua25vd24gY29tbWFuZCAnJXMnXG4iLCBhcmd2WzFdKTsKLSAgICAgICAgd2FudFVzYWdlID0gdHJ1ZTsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLSAgICBhcmdjIC09IDI7Ci0gICAgYXJndiArPSAyOwotCi0gICAgLyoKLSAgICAgKiBQdWxsIG91dCBmbGFncy4gIFdlIHN1cHBvcnQgIi1mdiIgYW5kICItZiAtdiIuCi0gICAgICovCi0gICAgd2hpbGUgKGFyZ2MgJiYgYXJndlswXVswXSA9PSAnLScpIHsKLSAgICAgICAgLyogZmxhZyhzKSBmb3VuZCAqLwotICAgICAgICBjb25zdCBjaGFyKiBjcCA9IGFyZ3ZbMF0gKzE7Ci0KLSAgICAgICAgd2hpbGUgKCpjcCAhPSAnXDAnKSB7Ci0gICAgICAgICAgICBzd2l0Y2ggKCpjcCkgewotICAgICAgICAgICAgY2FzZSAndic6Ci0gICAgICAgICAgICAgICAgYnVuZGxlLnNldFZlcmJvc2UodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdhJzoKLSAgICAgICAgICAgICAgICBidW5kbGUuc2V0QW5kcm9pZExpc3QodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdjJzoKLSAgICAgICAgICAgICAgICBhcmdjLS07Ci0gICAgICAgICAgICAgICAgYXJndisrOwotICAgICAgICAgICAgICAgIGlmICghYXJnYykgewotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBObyBhcmd1bWVudCBzdXBwbGllZCBmb3IgJy1jJyBvcHRpb25cbiIpOwotICAgICAgICAgICAgICAgICAgICB3YW50VXNhZ2UgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGJ1bmRsZS5hZGRDb25maWd1cmF0aW9ucyhhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ2YnOgotICAgICAgICAgICAgICAgIGJ1bmRsZS5zZXRGb3JjZSh0cnVlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ2cnOgotICAgICAgICAgICAgICAgIGFyZ2MtLTsKLSAgICAgICAgICAgICAgICBhcmd2Kys7Ci0gICAgICAgICAgICAgICAgaWYgKCFhcmdjKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIGFyZ3VtZW50IHN1cHBsaWVkIGZvciAnLWcnIG9wdGlvblxuIik7Ci0gICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdG9sZXJhbmNlID0gYXRvaShhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICBidW5kbGUuc2V0R3JheXNjYWxlVG9sZXJhbmNlKHRvbGVyYW5jZSk7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCIlczogSW1hZ2VzIHdpdGggZGV2aWF0aW9uIDw9ICVkIHdpbGwgYmUgZm9yY2VkIHRvIGdyYXlzY2FsZS5cbiIsIHByb2csIHRvbGVyYW5jZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdrJzoKLSAgICAgICAgICAgICAgICBidW5kbGUuc2V0SnVua1BhdGgodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdtJzoKLSAgICAgICAgICAgICAgICBidW5kbGUuc2V0TWFrZVBhY2thZ2VEaXJzKHRydWUpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotI2lmIDAKLSAgICAgICAgICAgIGNhc2UgJ3AnOgotICAgICAgICAgICAgICAgIGJ1bmRsZS5zZXRQc2V1ZG9sb2NhbGl6ZSh0cnVlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICAgICAgY2FzZSAndSc6Ci0gICAgICAgICAgICAgICAgYnVuZGxlLnNldFVwZGF0ZSh0cnVlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ3gnOgotICAgICAgICAgICAgICAgIGJ1bmRsZS5zZXRFeHRlbmRpbmcodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICd6JzoKLSAgICAgICAgICAgICAgICBidW5kbGUuc2V0UmVxdWlyZUxvY2FsaXphdGlvbih0cnVlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ2onOgotICAgICAgICAgICAgICAgIGFyZ2MtLTsKLSAgICAgICAgICAgICAgICBhcmd2Kys7Ci0gICAgICAgICAgICAgICAgaWYgKCFhcmdjKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIGFyZ3VtZW50IHN1cHBsaWVkIGZvciAnLWonIG9wdGlvblxuIik7Ci0gICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29udmVydFBhdGgoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgYnVuZGxlLmFkZEphckZpbGUoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdBJzoKLSAgICAgICAgICAgICAgICBhcmdjLS07Ci0gICAgICAgICAgICAgICAgYXJndisrOwotICAgICAgICAgICAgICAgIGlmICghYXJnYykgewotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBObyBhcmd1bWVudCBzdXBwbGllZCBmb3IgJy1BJyBvcHRpb25cbiIpOwotICAgICAgICAgICAgICAgICAgICB3YW50VXNhZ2UgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvbnZlcnRQYXRoKGFyZ3ZbMF0pOwotICAgICAgICAgICAgICAgIGJ1bmRsZS5zZXRBc3NldFNvdXJjZURpcihhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ0cnOgotICAgICAgICAgICAgICAgIGFyZ2MtLTsKLSAgICAgICAgICAgICAgICBhcmd2Kys7Ci0gICAgICAgICAgICAgICAgaWYgKCFhcmdjKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIGFyZ3VtZW50IHN1cHBsaWVkIGZvciAnLUcnIG9wdGlvblxuIik7Ci0gICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29udmVydFBhdGgoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgYnVuZGxlLnNldFByb2d1YXJkRmlsZShhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ0knOgotICAgICAgICAgICAgICAgIGFyZ2MtLTsKLSAgICAgICAgICAgICAgICBhcmd2Kys7Ci0gICAgICAgICAgICAgICAgaWYgKCFhcmdjKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIGFyZ3VtZW50IHN1cHBsaWVkIGZvciAnLUknIG9wdGlvblxuIik7Ci0gICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29udmVydFBhdGgoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgYnVuZGxlLmFkZFBhY2thZ2VJbmNsdWRlKGFyZ3ZbMF0pOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAnRic6Ci0gICAgICAgICAgICAgICAgYXJnYy0tOwotICAgICAgICAgICAgICAgIGFyZ3YrKzsKLSAgICAgICAgICAgICAgICBpZiAoIWFyZ2MpIHsKLSAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogTm8gYXJndW1lbnQgc3VwcGxpZWQgZm9yICctRicgb3B0aW9uXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgd2FudFVzYWdlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjb252ZXJ0UGF0aChhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICBidW5kbGUuc2V0T3V0cHV0QVBLRmlsZShhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ0onOgotICAgICAgICAgICAgICAgIGFyZ2MtLTsKLSAgICAgICAgICAgICAgICBhcmd2Kys7Ci0gICAgICAgICAgICAgICAgaWYgKCFhcmdjKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIGFyZ3VtZW50IHN1cHBsaWVkIGZvciAnLUonIG9wdGlvblxuIik7Ci0gICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29udmVydFBhdGgoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgYnVuZGxlLnNldFJDbGFzc0Rpcihhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ00nOgotICAgICAgICAgICAgICAgIGFyZ2MtLTsKLSAgICAgICAgICAgICAgICBhcmd2Kys7Ci0gICAgICAgICAgICAgICAgaWYgKCFhcmdjKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIGFyZ3VtZW50IHN1cHBsaWVkIGZvciAnLU0nIG9wdGlvblxuIik7Ci0gICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29udmVydFBhdGgoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgYnVuZGxlLnNldEFuZHJvaWRNYW5pZmVzdEZpbGUoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdQJzoKLSAgICAgICAgICAgICAgICBhcmdjLS07Ci0gICAgICAgICAgICAgICAgYXJndisrOwotICAgICAgICAgICAgICAgIGlmICghYXJnYykgewotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBObyBhcmd1bWVudCBzdXBwbGllZCBmb3IgJy1QJyBvcHRpb25cbiIpOwotICAgICAgICAgICAgICAgICAgICB3YW50VXNhZ2UgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvbnZlcnRQYXRoKGFyZ3ZbMF0pOwotICAgICAgICAgICAgICAgIGJ1bmRsZS5zZXRQdWJsaWNPdXRwdXRGaWxlKGFyZ3ZbMF0pOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSAnUyc6Ci0gICAgICAgICAgICAgICAgYXJnYy0tOwotICAgICAgICAgICAgICAgIGFyZ3YrKzsKLSAgICAgICAgICAgICAgICBpZiAoIWFyZ2MpIHsKLSAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogTm8gYXJndW1lbnQgc3VwcGxpZWQgZm9yICctUycgb3B0aW9uXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgd2FudFVzYWdlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjb252ZXJ0UGF0aChhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICBidW5kbGUuYWRkUmVzb3VyY2VTb3VyY2VEaXIoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdDJzoKLSAgICAgICAgICAgICAgICBhcmdjLS07Ci0gICAgICAgICAgICAgICAgYXJndisrOwotICAgICAgICAgICAgICAgIGlmICghYXJnYykgewotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBObyBhcmd1bWVudCBzdXBwbGllZCBmb3IgJy1DJyBvcHRpb25cbiIpOwotICAgICAgICAgICAgICAgICAgICB3YW50VXNhZ2UgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvbnZlcnRQYXRoKGFyZ3ZbMF0pOwotICAgICAgICAgICAgICAgIGJ1bmRsZS5zZXRDcnVuY2hlZE91dHB1dERpcihhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ2knOgotICAgICAgICAgICAgICAgIGFyZ2MtLTsKLSAgICAgICAgICAgICAgICBhcmd2Kys7Ci0gICAgICAgICAgICAgICAgaWYgKCFhcmdjKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIGFyZ3VtZW50IHN1cHBsaWVkIGZvciAnLWknIG9wdGlvblxuIik7Ci0gICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29udmVydFBhdGgoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgYnVuZGxlLnNldFNpbmdsZUNydW5jaElucHV0RmlsZShhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ28nOgotICAgICAgICAgICAgICAgIGFyZ2MtLTsKLSAgICAgICAgICAgICAgICBhcmd2Kys7Ci0gICAgICAgICAgICAgICAgaWYgKCFhcmdjKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIGFyZ3VtZW50IHN1cHBsaWVkIGZvciAnLW8nIG9wdGlvblxuIik7Ci0gICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29udmVydFBhdGgoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgYnVuZGxlLnNldFNpbmdsZUNydW5jaE91dHB1dEZpbGUoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICcwJzoKLSAgICAgICAgICAgICAgICBhcmdjLS07Ci0gICAgICAgICAgICAgICAgYXJndisrOwotICAgICAgICAgICAgICAgIGlmICghYXJnYykgewotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBObyBhcmd1bWVudCBzdXBwbGllZCBmb3IgJy1lJyBvcHRpb25cbiIpOwotICAgICAgICAgICAgICAgICAgICB3YW50VXNhZ2UgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChhcmd2WzBdWzBdICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLmFkZE5vQ29tcHJlc3NFeHRlbnNpb24oYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLnNldENvbXByZXNzaW9uTWV0aG9kKFppcEVudHJ5OjprQ29tcHJlc3NTdG9yZWQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJy0nOgotICAgICAgICAgICAgICAgIGlmIChzdHJjbXAoY3AsICItZGVidWctbW9kZSIpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLnNldERlYnVnTW9kZSh0cnVlKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChjcCwgIi1taW4tc2RrLXZlcnNpb24iKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ2MtLTsKLSAgICAgICAgICAgICAgICAgICAgYXJndisrOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWFyZ2MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIGFyZ3VtZW50IHN1cHBsaWVkIGZvciAnLS1taW4tc2RrLXZlcnNpb24nIG9wdGlvblxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3YW50VXNhZ2UgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGJ1bmRsZS5zZXRNaW5TZGtWZXJzaW9uKGFyZ3ZbMF0pOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wKGNwLCAiLXRhcmdldC1zZGstdmVyc2lvbiIpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnYy0tOwotICAgICAgICAgICAgICAgICAgICBhcmd2Kys7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghYXJnYykgewotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogTm8gYXJndW1lbnQgc3VwcGxpZWQgZm9yICctLXRhcmdldC1zZGstdmVyc2lvbicgb3B0aW9uXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLnNldFRhcmdldFNka1ZlcnNpb24oYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAoY3AsICItbWF4LXNkay12ZXJzaW9uIikgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICBhcmdjLS07Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3YrKzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFhcmdjKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBObyBhcmd1bWVudCBzdXBwbGllZCBmb3IgJy0tbWF4LXNkay12ZXJzaW9uJyBvcHRpb25cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgd2FudFVzYWdlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBidW5kbGUuc2V0TWF4U2RrVmVyc2lvbihhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChjcCwgIi1tYXgtcmVzLXZlcnNpb24iKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ2MtLTsKLSAgICAgICAgICAgICAgICAgICAgYXJndisrOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWFyZ2MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIGFyZ3VtZW50IHN1cHBsaWVkIGZvciAnLS1tYXgtcmVzLXZlcnNpb24nIG9wdGlvblxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3YW50VXNhZ2UgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGJ1bmRsZS5zZXRNYXhSZXNWZXJzaW9uKGFyZ3ZbMF0pOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wKGNwLCAiLXZlcnNpb24tY29kZSIpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnYy0tOwotICAgICAgICAgICAgICAgICAgICBhcmd2Kys7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghYXJnYykgewotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogTm8gYXJndW1lbnQgc3VwcGxpZWQgZm9yICctLXZlcnNpb24tY29kZScgb3B0aW9uXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLnNldFZlcnNpb25Db2RlKGFyZ3ZbMF0pOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wKGNwLCAiLXZlcnNpb24tbmFtZSIpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnYy0tOwotICAgICAgICAgICAgICAgICAgICBhcmd2Kys7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghYXJnYykgewotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogTm8gYXJndW1lbnQgc3VwcGxpZWQgZm9yICctLXZlcnNpb24tbmFtZScgb3B0aW9uXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLnNldFZlcnNpb25OYW1lKGFyZ3ZbMF0pOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wKGNwLCAiLXZhbHVlcyIpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLnNldFZhbHVlcyh0cnVlKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChjcCwgIi1jdXN0b20tcGFja2FnZSIpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnYy0tOwotICAgICAgICAgICAgICAgICAgICBhcmd2Kys7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghYXJnYykgewotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogTm8gYXJndW1lbnQgc3VwcGxpZWQgZm9yICctLWN1c3RvbS1wYWNrYWdlJyBvcHRpb25cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgd2FudFVzYWdlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBidW5kbGUuc2V0Q3VzdG9tUGFja2FnZShhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChjcCwgIi1leHRyYS1wYWNrYWdlcyIpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYXJnYy0tOwotICAgICAgICAgICAgICAgICAgICBhcmd2Kys7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghYXJnYykgewotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogTm8gYXJndW1lbnQgc3VwcGxpZWQgZm9yICctLWV4dHJhLXBhY2thZ2VzJyBvcHRpb25cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgd2FudFVzYWdlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBidW5kbGUuc2V0RXh0cmFQYWNrYWdlcyhhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChjcCwgIi1nZW5lcmF0ZS1kZXBlbmRlbmNpZXMiKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1bmRsZS5zZXRHZW5EZXBlbmRlbmNpZXModHJ1ZSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAoY3AsICItdXRmMTYiKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1bmRsZS5zZXRXYW50VVRGMTYodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAoY3AsICItcHJlZmVycmVkLWNvbmZpZ3VyYXRpb25zIikgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICBhcmdjLS07Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3YrKzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFhcmdjKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBObyBhcmd1bWVudCBzdXBwbGllZCBmb3IgJy0tcHJlZmVycmVkLWNvbmZpZ3VyYXRpb25zJyBvcHRpb25cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgd2FudFVzYWdlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBidW5kbGUuYWRkUHJlZmVycmVkQ29uZmlndXJhdGlvbnMoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAoY3AsICItcmVuYW1lLW1hbmlmZXN0LXBhY2thZ2UiKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ2MtLTsKLSAgICAgICAgICAgICAgICAgICAgYXJndisrOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWFyZ2MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIGFyZ3VtZW50IHN1cHBsaWVkIGZvciAnLS1yZW5hbWUtbWFuaWZlc3QtcGFja2FnZScgb3B0aW9uXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLnNldE1hbmlmZXN0UGFja2FnZU5hbWVPdmVycmlkZShhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChjcCwgIi1yZW5hbWUtaW5zdHJ1bWVudGF0aW9uLXRhcmdldC1wYWNrYWdlIikgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICBhcmdjLS07Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3YrKzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFhcmdjKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBObyBhcmd1bWVudCBzdXBwbGllZCBmb3IgJy0tcmVuYW1lLWluc3RydW1lbnRhdGlvbi10YXJnZXQtcGFja2FnZScgb3B0aW9uXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLnNldEluc3RydW1lbnRhdGlvblBhY2thZ2VOYW1lT3ZlcnJpZGUoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAoY3AsICItYXV0by1hZGQtb3ZlcmxheSIpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLnNldEF1dG9BZGRPdmVybGF5KHRydWUpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wKGNwLCAiLWVycm9yLW9uLWZhaWxlZC1pbnNlcnQiKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1bmRsZS5zZXRFcnJvck9uRmFpbGVkSW5zZXJ0KHRydWUpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wKGNwLCAiLW91dHB1dC10ZXh0LXN5bWJvbHMiKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ2MtLTsKLSAgICAgICAgICAgICAgICAgICAgYXJndisrOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWFyZ2MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIGFyZ3VtZW50IHN1cHBsaWVkIGZvciAnLW91dHB1dC10ZXh0LXN5bWJvbHMnIG9wdGlvblxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3YW50VXNhZ2UgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGJ1bmRsZS5zZXRPdXRwdXRUZXh0U3ltYm9scyhhcmd2WzBdKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChjcCwgIi1wcm9kdWN0IikgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICBhcmdjLS07Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3YrKzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFhcmdjKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBObyBhcmd1bWVudCBzdXBwbGllZCBmb3IgJy0tcHJvZHVjdCcgb3B0aW9uXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLnNldFByb2R1Y3QoYXJndlswXSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAoY3AsICItbm9uLWNvbnN0YW50LWlkIikgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICBidW5kbGUuc2V0Tm9uQ29uc3RhbnRJZCh0cnVlKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChjcCwgIi1uby1jcnVuY2giKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJ1bmRsZS5zZXRVc2VDcnVuY2hDYWNoZSh0cnVlKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChjcCwgIi1pZ25vcmUtYXNzZXRzIikgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICBhcmdjLS07Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3YrKzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFhcmdjKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBObyBhcmd1bWVudCBzdXBwbGllZCBmb3IgJy0taWdub3JlLWFzc2V0cycgb3B0aW9uXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZ1VzZXJJZ25vcmVBc3NldHMgPSBhcmd2WzBdOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IFVua25vd24gb3B0aW9uICctJXMnXG4iLCBjcCk7Ci0gICAgICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY3AgKz0gc3RybGVuKGNwKSAtIDE7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IFVua25vd24gZmxhZyAnLSVjJ1xuIiwgKmNwKTsKLSAgICAgICAgICAgICAgICB3YW50VXNhZ2UgPSB0cnVlOwotICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY3ArKzsKLSAgICAgICAgfQotICAgICAgICBhcmdjLS07Ci0gICAgICAgIGFyZ3YrKzsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIFdlJ3JlIHBhc3QgdGhlIGZsYWdzLiAgVGhlIHJlc3QgYWxsIGdvZXMgc3RyYWlnaHQgaW4uCi0gICAgICovCi0gICAgYnVuZGxlLnNldEZpbGVTcGVjKGFyZ3YsIGFyZ2MpOwotCi0gICAgcmVzdWx0ID0gaGFuZGxlQ29tbWFuZCgmYnVuZGxlKTsKLQotYmFpbDoKLSAgICBpZiAod2FudFVzYWdlKSB7Ci0gICAgICAgIHVzYWdlKCk7Ci0gICAgICAgIHJlc3VsdCA9IDI7Ci0gICAgfQotCi0gICAgLy9wcmludGYoIi0tPiByZXR1cm5pbmcgJWRcbiIsIHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvTWFpbi5oIGIvdG9vbHMvYWFwdC9NYWluLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2YjM5YWMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9NYWluLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vLwotLy8gQ29weXJpZ2h0IDIwMDYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotLy8KLS8vIFNvbWUgZ2xvYmFsIGRlZmluZXMgdGhhdCBkb24ndCByZWFsbHkgbWVyaXQgdGhlaXIgb3duIGhlYWRlci4KLS8vCi0jaWZuZGVmIF9fTUFJTl9ICi0jZGVmaW5lIF9fTUFJTl9ICi0KLSNpbmNsdWRlIDx1dGlscy9Mb2cuaD4KLSNpbmNsdWRlIDx1dGlscy90aHJlYWRzLmg+Ci0jaW5jbHVkZSA8dXRpbHMvTGlzdC5oPgotI2luY2x1ZGUgPHV0aWxzL0Vycm9ycy5oPgotI2luY2x1ZGUgIkJ1bmRsZS5oIgotI2luY2x1ZGUgIkFhcHRBc3NldHMuaCIKLSNpbmNsdWRlICJaaXBGaWxlLmgiCi0KLQotLyogQmVuY2htYXJraW5nIEZsYWcgKi8KLS8vI2RlZmluZSBCRU5DSE1BUksgMQotCi0jaWYgQkVOQ0hNQVJLCi0gICAgI2luY2x1ZGUgPHRpbWUuaD4KLSNlbmRpZiAvKiBCRU5DSE1BUksgKi8KLQotZXh0ZXJuIGludCBkb1ZlcnNpb24oQnVuZGxlKiBidW5kbGUpOwotZXh0ZXJuIGludCBkb0xpc3QoQnVuZGxlKiBidW5kbGUpOwotZXh0ZXJuIGludCBkb0R1bXAoQnVuZGxlKiBidW5kbGUpOwotZXh0ZXJuIGludCBkb0FkZChCdW5kbGUqIGJ1bmRsZSk7Ci1leHRlcm4gaW50IGRvUmVtb3ZlKEJ1bmRsZSogYnVuZGxlKTsKLWV4dGVybiBpbnQgZG9QYWNrYWdlKEJ1bmRsZSogYnVuZGxlKTsKLWV4dGVybiBpbnQgZG9DcnVuY2goQnVuZGxlKiBidW5kbGUpOwotZXh0ZXJuIGludCBkb1NpbmdsZUNydW5jaChCdW5kbGUqIGJ1bmRsZSk7Ci0KLWV4dGVybiBpbnQgY2FsY1BlcmNlbnQobG9uZyB1bmNvbXByZXNzZWRMZW4sIGxvbmcgY29tcHJlc3NlZExlbik7Ci0KLWV4dGVybiBhbmRyb2lkOjpzdGF0dXNfdCB3cml0ZUFQSyhCdW5kbGUqIGJ1bmRsZSwKLSAgICBjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzLAotICAgIGNvbnN0IGFuZHJvaWQ6OlN0cmluZzgmIG91dHB1dEZpbGUpOwotCi1leHRlcm4gYW5kcm9pZDo6c3RhdHVzX3QgdXBkYXRlUHJlUHJvY2Vzc2VkQ2FjaGUoQnVuZGxlKiBidW5kbGUpOwotCi1leHRlcm4gYW5kcm9pZDo6c3RhdHVzX3QgYnVpbGRSZXNvdXJjZXMoQnVuZGxlKiBidW5kbGUsCi0gICAgY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzc2V0cyk7Ci0KLWV4dGVybiBhbmRyb2lkOjpzdGF0dXNfdCB3cml0ZVJlc291cmNlU3ltYm9scyhCdW5kbGUqIGJ1bmRsZSwKLSAgICBjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzLCBjb25zdCBTdHJpbmc4JiBwa2dOYW1lLCBib29sIGluY2x1ZGVQcml2YXRlKTsKLQotZXh0ZXJuIGFuZHJvaWQ6OnN0YXR1c190IHdyaXRlUHJvZ3VhcmRGaWxlKEJ1bmRsZSogYnVuZGxlLCBjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzKTsKLQotZXh0ZXJuIGJvb2wgaXNWYWxpZFJlc291cmNlVHlwZShjb25zdCBTdHJpbmc4JiB0eXBlKTsKLQotc3NpemVfdCBwcm9jZXNzQXNzZXRzKEJ1bmRsZSogYnVuZGxlLCBaaXBGaWxlKiB6aXAsIGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMpOwotCi1leHRlcm4gc3RhdHVzX3QgZmlsdGVyUmVzb3VyY2VzKEJ1bmRsZSogYnVuZGxlLCBjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzKTsKLQotaW50IGR1bXBSZXNvdXJjZXMoQnVuZGxlKiBidW5kbGUpOwotCi1TdHJpbmc4IGdldEF0dHJpYnV0ZShjb25zdCBSZXNYTUxUcmVlJiB0cmVlLCBjb25zdCBjaGFyKiBucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBhdHRyLCBTdHJpbmc4KiBvdXRFcnJvcik7Ci0KLXN0YXR1c190IHdyaXRlRGVwZW5kZW5jeVByZVJlcXMoQnVuZGxlKiBidW5kbGUsIGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTEUqIGZwLCBib29sIGluY2x1ZGVSYXcpOwotI2VuZGlmIC8vIF9fTUFJTl9ICmRpZmYgLS1naXQgYS90b29scy9hYXB0L05PVElDRSBiL3Rvb2xzL2FhcHQvTk9USUNFCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNWIxZWZhLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvTk9USUNFCisrKyAvZGV2L251bGwKQEAgLTEsMTkwICswLDAgQEAKLQotICAgQ29weXJpZ2h0IChjKSAyMDA1LTIwMDgsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLQotICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0KLSAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0Ci0gICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCi0KLSAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgotCi0gICAxLiBEZWZpbml0aW9ucy4KLQotICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKLSAgICAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgotCi0gICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQotICAgICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgotCi0gICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCi0gICAgICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCi0gICAgICBjb250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAotICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCi0gICAgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgotICAgICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCi0gICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgotCi0gICAgICAiWW91IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5Ci0gICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgotCi0gICAgICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKLSAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KLSAgICAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCi0KLSAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCi0gICAgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0Ci0gICAgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCi0gICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCi0KLSAgICAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCi0gICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCi0gICAgICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsKLSAgICAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCi0KLSAgICAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKLSAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKLSAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKLSAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCi0gICAgICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KLSAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKLSAgICAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCi0KLSAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCi0gICAgICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCi0gICAgICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkKLSAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKLSAgICAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBvZgotICAgICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0ZWQiCi0gICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50Ci0gICAgICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bwotICAgICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywKLSAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCi0gICAgICBMaWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKLSAgICAgIGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNlCi0gICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKLQotICAgICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKLSAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAotICAgICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCi0KLSAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAotICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKLSAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAotICAgICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCi0gICAgICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgotCi0gICAzLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKLSAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKLSAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCi0gICAgICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKLSAgICAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAotICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKLSAgICAgIGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCi0gICAgICBDb250cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCi0gICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQotICAgICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKLSAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKLSAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0Ci0gICAgICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2VzCi0gICAgICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUKLSAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KLQotICAgNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUKLSAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAotICAgICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKLSAgICAgIG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotCi0gICAgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgotICAgICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9mIHRoaXMgTGljZW5zZTsgYW5kCi0KLSAgICAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKLSAgICAgICAgICBzdGF0aW5nIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKLQotICAgICAgKGMpIFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCi0gICAgICAgICAgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAotICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCi0gICAgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgotICAgICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKLQotICAgICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRzCi0gICAgICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVzdAotICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAotICAgICAgICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAotICAgICAgICAgIHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9uZQotICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCi0gICAgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgotICAgICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAotICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKLSAgICAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMKLSAgICAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCi0gICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KLSAgICAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQotICAgICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBwcm92aWRlZAotICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAotICAgICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4KLQotICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCi0gICAgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCi0gICAgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCi0gICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKLSAgICAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAotICAgICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KLQotICAgNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAotICAgICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCi0gICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotICAgICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCi0gICAgICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5Ci0gICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAotICAgICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgotCi0gICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCi0gICAgICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCi0gICAgICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUKLSAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgotCi0gICA3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKLSAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKLSAgICAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCi0gICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucwotICAgICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQotICAgICAgUEFSVElDVUxBUiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCi0gICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKLSAgICAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KLQotICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCi0gICAgICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwKLSAgICAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRlIGFuZCBncm9zc2x5Ci0gICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQotICAgICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAotICAgICAgaW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhCi0gICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCi0gICAgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCi0gICAgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAotICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgotICAgICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgotCi0gICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCi0gICAgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAotICAgICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKLSAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCi0gICAgICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qgb25seQotICAgICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhhbGYKLSAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKLSAgICAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQotICAgICAgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgotICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCi0KLSAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUwotCmRpZmYgLS1naXQgYS90b29scy9hYXB0L1BhY2thZ2UuY3BwIGIvdG9vbHMvYWFwdC9QYWNrYWdlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODcyZDk1Yy4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L1BhY2thZ2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTA1ICswLDAgQEAKLS8vCi0vLyBDb3B5cmlnaHQgMjAwNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0vLwotLy8gUGFja2FnZSBhc3NldHMgaW50byBaaXAgZmlsZXMuCi0vLwotI2luY2x1ZGUgIk1haW4uaCIKLSNpbmNsdWRlICJBYXB0QXNzZXRzLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VUYWJsZS5oIgotI2luY2x1ZGUgIlJlc291cmNlRmlsdGVyLmgiCi0KLSNpbmNsdWRlIDxhbmRyb2lkZncvbWlzYy5oPgotCi0jaW5jbHVkZSA8dXRpbHMvTG9nLmg+Ci0jaW5jbHVkZSA8dXRpbHMvdGhyZWFkcy5oPgotI2luY2x1ZGUgPHV0aWxzL0xpc3QuaD4KLSNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KLSNpbmNsdWRlIDx1dGlscy9taXNjLmg+Ci0KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxkaXJlbnQuaD4KLSNpbmNsdWRlIDxjdHlwZS5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwotCi1zdGF0aWMgY29uc3QgY2hhcioga0V4Y2x1ZGVFeHRlbnNpb24gPSAiLkVYQ0xVREUiOwotCi0vKiB0aGVzZSBmb3JtYXRzIGFyZSBhbHJlYWR5IGNvbXByZXNzZWQsIG9yIGRvbid0IGNvbXByZXNzIHdlbGwgKi8KLXN0YXRpYyBjb25zdCBjaGFyKiBrTm9Db21wcmVzc0V4dFtdID0gewotICAgICIuanBnIiwgIi5qcGVnIiwgIi5wbmciLCAiLmdpZiIsCi0gICAgIi53YXYiLCAiLm1wMiIsICIubXAzIiwgIi5vZ2ciLCAiLmFhYyIsCi0gICAgIi5tcGciLCAiLm1wZWciLCAiLm1pZCIsICIubWlkaSIsICIuc21mIiwgIi5qZXQiLAotICAgICIucnR0dGwiLCAiLmlteSIsICIueG1mIiwgIi5tcDQiLCAiLm00YSIsCi0gICAgIi5tNHYiLCAiLjNncCIsICIuM2dwcCIsICIuM2cyIiwgIi4zZ3BwMiIsCi0gICAgIi5hbXIiLCAiLmF3YiIsICIud21hIiwgIi53bXYiCi19OwotCi0vKiBmd2QgZGVjbHMsIHNvIEkgY2FuIHdyaXRlIHRoaXMgZG93bndhcmQgKi8KLXNzaXplX3QgcHJvY2Vzc0Fzc2V0cyhCdW5kbGUqIGJ1bmRsZSwgWmlwRmlsZSogemlwLCBjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzKTsKLXNzaXplX3QgcHJvY2Vzc0Fzc2V0cyhCdW5kbGUqIGJ1bmRsZSwgWmlwRmlsZSogemlwLCBjb25zdCBzcDxBYXB0RGlyPiYgZGlyLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQWFwdEdyb3VwRW50cnkmIGdlLCBjb25zdCBSZXNvdXJjZUZpbHRlciogZmlsdGVyKTsKLWJvb2wgcHJvY2Vzc0ZpbGUoQnVuZGxlKiBidW5kbGUsIFppcEZpbGUqIHppcCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPEFhcHRHcm91cD4mIGdyb3VwLCBjb25zdCBzcDxBYXB0RmlsZT4mIGZpbGUpOwotYm9vbCBva2F5VG9Db21wcmVzcyhCdW5kbGUqIGJ1bmRsZSwgY29uc3QgU3RyaW5nOCYgcGF0aE5hbWUpOwotc3NpemVfdCBwcm9jZXNzSmFyRmlsZXMoQnVuZGxlKiBidW5kbGUsIFppcEZpbGUqIHppcCk7Ci0KLS8qCi0gKiBUaGUgZGlyZWN0b3J5IGhpZXJhcmNoeSBsb29rcyBsaWtlIHRoaXM6Ci0gKiAib3V0cHV0RGlyIiBhbmQgImFzc2V0Um9vdCIgYXJlIGV4aXN0aW5nIGRpcmVjdG9yaWVzLgotICoKLSAqIE9uIHN1Y2Nlc3MsICJidW5kbGUtPm51bVBhY2thZ2VzIiB3aWxsIGJlIHRoZSBudW1iZXIgb2YgWmlwIHBhY2thZ2VzCi0gKiB3ZSBjcmVhdGVkLgotICovCi1zdGF0dXNfdCB3cml0ZUFQSyhCdW5kbGUqIGJ1bmRsZSwgY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzc2V0cywKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nOCYgb3V0cHV0RmlsZSkKLXsKLSAgICAjaWYgQkVOQ0hNQVJLCi0gICAgZnByaW50ZihzdGRvdXQsICJCRU5DSE1BUks6IFN0YXJ0aW5nIEFQSyBCdW5kbGluZyBcbiIpOwotICAgIGxvbmcgc3RhcnRBUEtUaW1lID0gY2xvY2soKTsKLSAgICAjZW5kaWYgLyogQkVOQ0hNQVJLICovCi0KLSAgICBzdGF0dXNfdCByZXN1bHQgPSBOT19FUlJPUjsKLSAgICBaaXBGaWxlKiB6aXAgPSBOVUxMOwotICAgIGludCBjb3VudDsKLQotICAgIC8vYnVuZGxlLT5zZXRQYWNrYWdlQ291bnQoMCk7Ci0KLSAgICAvKgotICAgICAqIFByZXAgdGhlIFppcCBhcmNoaXZlLgotICAgICAqCi0gICAgICogSWYgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHMsIGZhaWwgdW5sZXNzICJ1cGRhdGUiIG9yICJmb3JjZSIgaXMgc2V0LgotICAgICAqIElmICJ1cGRhdGUiIGlzIHNldCwgdXBkYXRlIHRoZSBjb250ZW50cyBvZiB0aGUgZXhpc3RpbmcgYXJjaGl2ZS4KLSAgICAgKiBFbHNlLCBpZiAiZm9yY2UiIGlzIHNldCwgcmVtb3ZlIHRoZSBleGlzdGluZyBhcmNoaXZlLgotICAgICAqLwotICAgIEZpbGVUeXBlIGZpbGVUeXBlID0gZ2V0RmlsZVR5cGUob3V0cHV0RmlsZS5zdHJpbmcoKSk7Ci0gICAgaWYgKGZpbGVUeXBlID09IGtGaWxlVHlwZU5vbmV4aXN0ZW50KSB7Ci0gICAgICAgIC8vIG9rYXksIGNyZWF0ZSBpdCBiZWxvdwotICAgIH0gZWxzZSBpZiAoZmlsZVR5cGUgPT0ga0ZpbGVUeXBlUmVndWxhcikgewotICAgICAgICBpZiAoYnVuZGxlLT5nZXRVcGRhdGUoKSkgewotICAgICAgICAgICAgLy8gb2theSwgb3BlbiBpdCBiZWxvdwotICAgICAgICB9IGVsc2UgaWYgKGJ1bmRsZS0+Z2V0Rm9yY2UoKSkgewotICAgICAgICAgICAgaWYgKHVubGluayhvdXRwdXRGaWxlLnN0cmluZygpKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogdW5hYmxlIHRvIHJlbW92ZSAnJXMnOiAlc1xuIiwgb3V0cHV0RmlsZS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogJyVzJyBleGlzdHMgKHVzZSAnLWYnIHRvIGZvcmNlIG92ZXJ3cml0ZSlcbiIsCi0gICAgICAgICAgICAgICAgICAgIG91dHB1dEZpbGUuc3RyaW5nKCkpOwotICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogJyVzJyBleGlzdHMgYW5kIGlzIG5vdCBhIHJlZ3VsYXIgZmlsZVxuIiwgb3V0cHV0RmlsZS5zdHJpbmcoKSk7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpIHsKLSAgICAgICAgcHJpbnRmKCIlcyAnJXMnXG4iLCAoZmlsZVR5cGUgPT0ga0ZpbGVUeXBlTm9uZXhpc3RlbnQpID8gIkNyZWF0aW5nIiA6ICJPcGVuaW5nIiwKLSAgICAgICAgICAgICAgICBvdXRwdXRGaWxlLnN0cmluZygpKTsKLSAgICB9Ci0KLSAgICBzdGF0dXNfdCBzdGF0dXM7Ci0gICAgemlwID0gbmV3IFppcEZpbGU7Ci0gICAgc3RhdHVzID0gemlwLT5vcGVuKG91dHB1dEZpbGUuc3RyaW5nKCksIFppcEZpbGU6OmtPcGVuUmVhZFdyaXRlIHwgWmlwRmlsZTo6a09wZW5DcmVhdGUpOwotICAgIGlmIChzdGF0dXMgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogdW5hYmxlIHRvIG9wZW4gJyVzJyBhcyBaaXAgZmlsZSBmb3Igd3JpdGluZ1xuIiwKLSAgICAgICAgICAgICAgICBvdXRwdXRGaWxlLnN0cmluZygpKTsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIGlmIChidW5kbGUtPmdldFZlcmJvc2UoKSkgewotICAgICAgICBwcmludGYoIldyaXRpbmcgYWxsIGZpbGVzLi4uXG4iKTsKLSAgICB9Ci0KLSAgICBjb3VudCA9IHByb2Nlc3NBc3NldHMoYnVuZGxlLCB6aXAsIGFzc2V0cyk7Ci0gICAgaWYgKGNvdW50IDwgMCkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiB1bmFibGUgdG8gcHJvY2VzcyBhc3NldHMgd2hpbGUgcGFja2FnaW5nICclcydcbiIsCi0gICAgICAgICAgICAgICAgb3V0cHV0RmlsZS5zdHJpbmcoKSk7Ci0gICAgICAgIHJlc3VsdCA9IGNvdW50OwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgaWYgKGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKSB7Ci0gICAgICAgIHByaW50ZigiR2VuZXJhdGVkICVkIGZpbGUlc1xuIiwgY291bnQsIChjb3VudD09MSkgPyAiIiA6ICJzIik7Ci0gICAgfQotICAgIAotICAgIGNvdW50ID0gcHJvY2Vzc0phckZpbGVzKGJ1bmRsZSwgemlwKTsKLSAgICBpZiAoY291bnQgPCAwKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IHVuYWJsZSB0byBwcm9jZXNzIGphciBmaWxlcyB3aGlsZSBwYWNrYWdpbmcgJyVzJ1xuIiwKLSAgICAgICAgICAgICAgICBvdXRwdXRGaWxlLnN0cmluZygpKTsKLSAgICAgICAgcmVzdWx0ID0gY291bnQ7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0gICAgCi0gICAgaWYgKGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKQotICAgICAgICBwcmludGYoIkluY2x1ZGVkICVkIGZpbGUlcyBmcm9tIGphci96aXAgZmlsZXMuXG4iLCBjb3VudCwgKGNvdW50PT0xKSA/ICIiIDogInMiKTsKLSAgICAKLSAgICByZXN1bHQgPSBOT19FUlJPUjsKLQotICAgIC8qCi0gICAgICogQ2hlY2sgZm9yIGNydWZ0LiAgV2Ugc2V0IHRoZSAibWFya2VkIiBmbGFnIG9uIGFsbCBlbnRyaWVzIHdlIGNyZWF0ZWQKLSAgICAgKiBvciBkZWNpZGVkIG5vdCB0byB1cGRhdGUuICBJZiB0aGUgZW50cnkgaXNuJ3QgYWxyZWFkeSBzbGF0ZWQgZm9yCi0gICAgICogZGVsZXRpb24sIHJlbW92ZSBpdCBub3cuCi0gICAgICovCi0gICAgewotICAgICAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpCi0gICAgICAgICAgICBwcmludGYoIkNoZWNraW5nIGZvciBkZWxldGVkIGZpbGVzXG4iKTsKLSAgICAgICAgaW50IGksIHJlbW92ZWQgPSAwOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgemlwLT5nZXROdW1FbnRyaWVzKCk7IGkrKykgewotICAgICAgICAgICAgWmlwRW50cnkqIGVudHJ5ID0gemlwLT5nZXRFbnRyeUJ5SW5kZXgoaSk7Ci0KLSAgICAgICAgICAgIGlmICghZW50cnktPmdldE1hcmtlZCgpICYmIGVudHJ5LT5nZXREZWxldGVkKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgICAgICAocmVtb3ZpbmcgY3J1ZnR5ICclcycpXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgZW50cnktPmdldEZpbGVOYW1lKCkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB6aXAtPnJlbW92ZShlbnRyeSk7Ci0gICAgICAgICAgICAgICAgcmVtb3ZlZCsrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChidW5kbGUtPmdldFZlcmJvc2UoKSAmJiByZW1vdmVkID4gMCkKLSAgICAgICAgICAgIHByaW50ZigiUmVtb3ZlZCAlZCBmaWxlJXNcbiIsIHJlbW92ZWQsIChyZW1vdmVkPT0xKSA/ICIiIDogInMiKTsKLSAgICB9Ci0KLSAgICAvKiB0ZWxsIFppcCBsaWIgdG8gcHJvY2VzcyBkZWxldGlvbnMgYW5kIG90aGVyIHBlbmRpbmcgY2hhbmdlcyAqLwotICAgIHJlc3VsdCA9IHppcC0+Zmx1c2goKTsKLSAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IFppcCBmbHVzaCBmYWlsZWQsIGFyY2hpdmUgbWF5IGJlIGhvc2VkXG4iKTsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIC8qIGFueXRoaW5nIGhlcmU/ICovCi0gICAgaWYgKHppcC0+Z2V0TnVtRW50cmllcygpID09IDApIHsKLSAgICAgICAgaWYgKGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKSB7Ci0gICAgICAgICAgICBwcmludGYoIkFyY2hpdmUgaXMgZW1wdHkgLS0gcmVtb3ZpbmcgJXNcbiIsIG91dHB1dEZpbGUuZ2V0UGF0aExlYWYoKS5zdHJpbmcoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgZGVsZXRlIHppcDsgICAgICAgIC8vIGNsb3NlIHRoZSBmaWxlIHNvIHdlIGNhbiByZW1vdmUgaXQgaW4gV2luMzIKLSAgICAgICAgemlwID0gTlVMTDsKLSAgICAgICAgaWYgKHVubGluayhvdXRwdXRGaWxlLnN0cmluZygpKSAhPSAwKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIndhcm5pbmc6IGNvdWxkIG5vdCB1bmxpbmsgJyVzJ1xuIiwgb3V0cHV0RmlsZS5zdHJpbmcoKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBJZiB3ZSd2ZSBiZWVuIGFza2VkIHRvIGdlbmVyYXRlIGEgZGVwZW5kZW5jeSBmaWxlIGZvciB0aGUgLmFwXyBwYWNrYWdlLAotICAgIC8vIGRvIHNvIGhlcmUKLSAgICBpZiAoYnVuZGxlLT5nZXRHZW5EZXBlbmRlbmNpZXMoKSkgewotICAgICAgICAvLyBUaGUgZGVwZW5kZW5jeSBmaWxlIGdldHMgb3V0cHV0IHRvIHRoZSBzYW1lIGRpcmVjdG9yeQotICAgICAgICAvLyBhcyB0aGUgc3BlY2lmaWVkIG91dHB1dCBmaWxlIHdpdGggYW4gYWRkaXRpb25hbCAuZCBleHRlbnNpb24uCi0gICAgICAgIC8vIGUuZy4gYmluL3Jlc291cmNlcy5hcF8uZAotICAgICAgICBTdHJpbmc4IGRlcGVuZGVuY3lGaWxlID0gb3V0cHV0RmlsZTsKLSAgICAgICAgZGVwZW5kZW5jeUZpbGUuYXBwZW5kKCIuZCIpOwotCi0gICAgICAgIEZJTEUqIGZwID0gZm9wZW4oZGVwZW5kZW5jeUZpbGUuc3RyaW5nKCksICJhIik7Ci0gICAgICAgIC8vIEFkZCB0aGlzIGZpbGUgdG8gdGhlIGRlcGVuZGVuY3kgZmlsZQotICAgICAgICBmcHJpbnRmKGZwLCAiJXMgXFxcbiIsIG91dHB1dEZpbGUuc3RyaW5nKCkpOwotICAgICAgICBmY2xvc2UoZnApOwotICAgIH0KLQotICAgIGFzc2VydChyZXN1bHQgPT0gTk9fRVJST1IpOwotCi1iYWlsOgotICAgIGRlbGV0ZSB6aXA7ICAgICAgICAvLyBtdXN0IGNsb3NlIGJlZm9yZSByZW1vdmUgaW4gV2luMzIKLSAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIGlmIChidW5kbGUtPmdldFZlcmJvc2UoKSkgewotICAgICAgICAgICAgcHJpbnRmKCJSZW1vdmluZyAlcyBkdWUgdG8gZWFybGllciBmYWlsdXJlc1xuIiwgb3V0cHV0RmlsZS5zdHJpbmcoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHVubGluayhvdXRwdXRGaWxlLnN0cmluZygpKSAhPSAwKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIndhcm5pbmc6IGNvdWxkIG5vdCB1bmxpbmsgJyVzJ1xuIiwgb3V0cHV0RmlsZS5zdHJpbmcoKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAocmVzdWx0ID09IE5PX0VSUk9SICYmIGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKQotICAgICAgICBwcmludGYoIkRvbmUhXG4iKTsKLQotICAgICNpZiBCRU5DSE1BUksKLSAgICBmcHJpbnRmKHN0ZG91dCwgIkJFTkNITUFSSzogRW5kIEFQSyBCdW5kbGluZy4gVGltZSBFbGFwc2VkOiAlZiBtcyBcbiIsKGNsb2NrKCkgLSBzdGFydEFQS1RpbWUpLzEwMDAuMCk7Ci0gICAgI2VuZGlmIC8qIEJFTkNITUFSSyAqLwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXNzaXplX3QgcHJvY2Vzc0Fzc2V0cyhCdW5kbGUqIGJ1bmRsZSwgWmlwRmlsZSogemlwLAotICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMpCi17Ci0gICAgUmVzb3VyY2VGaWx0ZXIgZmlsdGVyOwotICAgIHN0YXR1c190IHN0YXR1cyA9IGZpbHRlci5wYXJzZShidW5kbGUtPmdldENvbmZpZ3VyYXRpb25zKCkpOwotICAgIGlmIChzdGF0dXMgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIHNzaXplX3QgY291bnQgPSAwOwotCi0gICAgY29uc3Qgc2l6ZV90IE4gPSBhc3NldHMtPmdldEdyb3VwRW50cmllcygpLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IEFhcHRHcm91cEVudHJ5JiBnZSA9IGFzc2V0cy0+Z2V0R3JvdXBFbnRyaWVzKClbaV07Ci0KLSAgICAgICAgc3NpemVfdCByZXMgPSBwcm9jZXNzQXNzZXRzKGJ1bmRsZSwgemlwLCBhc3NldHMsIGdlLCAmZmlsdGVyKTsKLSAgICAgICAgaWYgKHJlcyA8IDApIHsKLSAgICAgICAgICAgIHJldHVybiByZXM7Ci0gICAgICAgIH0KLQotICAgICAgICBjb3VudCArPSByZXM7Ci0gICAgfQotCi0gICAgcmV0dXJuIGNvdW50OwotfQotCi1zc2l6ZV90IHByb2Nlc3NBc3NldHMoQnVuZGxlKiBidW5kbGUsIFppcEZpbGUqIHppcCwgY29uc3Qgc3A8QWFwdERpcj4mIGRpciwKLSAgICAgICAgY29uc3QgQWFwdEdyb3VwRW50cnkmIGdlLCBjb25zdCBSZXNvdXJjZUZpbHRlciogZmlsdGVyKQotewotICAgIHNzaXplX3QgY291bnQgPSAwOwotCi0gICAgY29uc3Qgc2l6ZV90IE5EID0gZGlyLT5nZXREaXJzKCkuc2l6ZSgpOwotICAgIHNpemVfdCBpOwotICAgIGZvciAoaT0wOyBpPE5EOyBpKyspIHsKLSAgICAgICAgY29uc3Qgc3A8QWFwdERpcj4mIHN1YkRpciA9IGRpci0+Z2V0RGlycygpLnZhbHVlQXQoaSk7Ci0KLSAgICAgICAgY29uc3QgYm9vbCBmaWx0ZXJhYmxlID0gZmlsdGVyICE9IE5VTEwgJiYgc3ViRGlyLT5nZXRMZWFmKCkuZmluZCgibWlwbWFwLSIpICE9IDA7Ci0KLSAgICAgICAgaWYgKGZpbHRlcmFibGUgJiYgc3ViRGlyLT5nZXRMZWFmKCkgIT0gc3ViRGlyLT5nZXRQYXRoKCkgJiYgIWZpbHRlci0+bWF0Y2goZ2UudG9QYXJhbXMoKSkpIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgc3NpemVfdCByZXMgPSBwcm9jZXNzQXNzZXRzKGJ1bmRsZSwgemlwLCBzdWJEaXIsIGdlLCBmaWx0ZXJhYmxlID8gZmlsdGVyIDogTlVMTCk7Ci0gICAgICAgIGlmIChyZXMgPCAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVzOwotICAgICAgICB9Ci0gICAgICAgIGNvdW50ICs9IHJlczsKLSAgICB9Ci0KLSAgICBpZiAoZmlsdGVyICE9IE5VTEwgJiYgIWZpbHRlci0+bWF0Y2goZ2UudG9QYXJhbXMoKSkpIHsKLSAgICAgICAgcmV0dXJuIGNvdW50OwotICAgIH0KLQotICAgIGNvbnN0IHNpemVfdCBORiA9IGRpci0+Z2V0RmlsZXMoKS5zaXplKCk7Ci0gICAgZm9yIChpPTA7IGk8TkY7IGkrKykgewotICAgICAgICBzcDxBYXB0R3JvdXA+IGdwID0gZGlyLT5nZXRGaWxlcygpLnZhbHVlQXQoaSk7Ci0gICAgICAgIHNzaXplX3QgZmkgPSBncC0+Z2V0RmlsZXMoKS5pbmRleE9mS2V5KGdlKTsKLSAgICAgICAgaWYgKGZpID49IDApIHsKLSAgICAgICAgICAgIHNwPEFhcHRGaWxlPiBmbCA9IGdwLT5nZXRGaWxlcygpLnZhbHVlQXQoZmkpOwotICAgICAgICAgICAgaWYgKCFwcm9jZXNzRmlsZShidW5kbGUsIHppcCwgZ3AsIGZsKSkgewotICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBjb3VudDsKLX0KLQotLyoKLSAqIFByb2Nlc3MgYSByZWd1bGFyIGZpbGUsIGFkZGluZyBpdCB0byB0aGUgYXJjaGl2ZSBpZiBhcHByb3ByaWF0ZS4KLSAqCi0gKiBJZiB3ZSdyZSBpbiAidXBkYXRlIiBtb2RlLCBhbmQgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHMgaW4gdGhlIGFyY2hpdmUsCi0gKiBkZWxldGUgdGhlIGV4aXN0aW5nIGVudHJ5IGJlZm9yZSBhZGRpbmcgdGhlIG5ldyBvbmUuCi0gKi8KLWJvb2wgcHJvY2Vzc0ZpbGUoQnVuZGxlKiBidW5kbGUsIFppcEZpbGUqIHppcCwKLSAgICAgICAgICAgICAgICAgY29uc3Qgc3A8QWFwdEdyb3VwPiYgZ3JvdXAsIGNvbnN0IHNwPEFhcHRGaWxlPiYgZmlsZSkKLXsKLSAgICBjb25zdCBib29sIGhhc0RhdGEgPSBmaWxlLT5oYXNEYXRhKCk7Ci0KLSAgICBTdHJpbmc4IHN0b3JhZ2VOYW1lKGdyb3VwLT5nZXRQYXRoKCkpOwotICAgIHN0b3JhZ2VOYW1lLmNvbnZlcnRUb1Jlc1BhdGgoKTsKLSAgICBaaXBFbnRyeSogZW50cnk7Ci0gICAgYm9vbCBmcm9tR3ppcCA9IGZhbHNlOwotICAgIHN0YXR1c190IHJlc3VsdDsKLQotICAgIC8qCi0gICAgICogU2VlIGlmIHRoZSBmaWxlbmFtZSBlbmRzIGluICIuRVhDTFVERSIuICBXZSBjYW4ndCB1c2UKLSAgICAgKiBTdHJpbmc4OjpnZXRQYXRoRXh0ZW5zaW9uKCkgYmVjYXVzZSB0aGUgbGVuZ3RoIG9mIHdoYXQgaXQgY29uc2lkZXJzCi0gICAgICogdG8gYmUgYW4gZXh0ZW5zaW9uIGlzIGNhcHBlZC4KLSAgICAgKgotICAgICAqIFRoZSBBc3NldCBNYW5hZ2VyIGRvZXNuJ3QgY2hlY2sgZm9yICIuRVhDTFVERSIgaW4gWmlwIGFyY2hpdmVzLAotICAgICAqIHNvIHRoZXJlJ3Mgbm8gdmFsdWUgaW4gYWRkaW5nIHRoZW0gKGFuZCBpdCBtYWtlcyBsaWZlIGVhc2llciBvbgotICAgICAqIHRoZSBBc3NldE1hbmFnZXIgbGliIGlmIHdlIGRvbid0KS4KLSAgICAgKgotICAgICAqIE5PVEU6IHRoaXMgcmVzdHJpY3Rpb24gaGFzIGJlZW4gcmVtb3ZlZC4gIElmIHlvdSdyZSBpbiB0aGlzIGNvZGUsIHlvdQotICAgICAqIHNob3VsZCBjbGVhbiB0aGlzIHVwLCBidXQgSSdtIGluIGhlcmUgZ2V0dGluZyByaWQgb2YgUGF0aCBOYW1lLCBhbmQgSQotICAgICAqIGRvbid0IHdhbnQgdG8gbWFrZSBvdGhlciBwb3RlbnRpYWxseSBicmVha2luZyBjaGFuZ2VzIC0tam9lbwotICAgICAqLwotICAgIGludCBmaWxlTmFtZUxlbiA9IHN0b3JhZ2VOYW1lLmxlbmd0aCgpOwotICAgIGludCBleGNsdWRlRXh0ZW5zaW9uTGVuID0gc3RybGVuKGtFeGNsdWRlRXh0ZW5zaW9uKTsKLSAgICBpZiAoZmlsZU5hbWVMZW4gPiBleGNsdWRlRXh0ZW5zaW9uTGVuCi0gICAgICAgICAgICAmJiAoMCA9PSBzdHJjbXAoc3RvcmFnZU5hbWUuc3RyaW5nKCkgKyAoZmlsZU5hbWVMZW4gLSBleGNsdWRlRXh0ZW5zaW9uTGVuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBrRXhjbHVkZUV4dGVuc2lvbikpKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAid2FybmluZzogJyVzJyBub3QgYWRkZWQgdG8gWmlwXG4iLCBzdG9yYWdlTmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGlmIChzdHJjYXNlY21wKHN0b3JhZ2VOYW1lLmdldFBhdGhFeHRlbnNpb24oKS5zdHJpbmcoKSwgIi5neiIpID09IDApIHsKLSAgICAgICAgZnJvbUd6aXAgPSB0cnVlOwotICAgICAgICBzdG9yYWdlTmFtZSA9IHN0b3JhZ2VOYW1lLmdldEJhc2VQYXRoKCk7Ci0gICAgfQotCi0gICAgaWYgKGJ1bmRsZS0+Z2V0VXBkYXRlKCkpIHsKLSAgICAgICAgZW50cnkgPSB6aXAtPmdldEVudHJ5QnlOYW1lKHN0b3JhZ2VOYW1lLnN0cmluZygpKTsKLSAgICAgICAgaWYgKGVudHJ5ICE9IE5VTEwpIHsKLSAgICAgICAgICAgIC8qIGZpbGUgYWxyZWFkeSBleGlzdHMgaW4gYXJjaGl2ZTsgdGhlcmUgY2FuIGJlIG9ubHkgb25lICovCi0gICAgICAgICAgICBpZiAoZW50cnktPmdldE1hcmtlZCgpKSB7Ci0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiRVJST1I6ICclcycgZXhpc3RzIHR3aWNlIChjaGVjayBmb3Igd2l0aCAmIHcvbyAnLmd6Jz8pXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS0+Z2V0UHJpbnRhYmxlU291cmNlKCkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghaGFzRGF0YSkgewotICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzgmIHNyY05hbWUgPSBmaWxlLT5nZXRTb3VyY2VGaWxlKCk7Ci0gICAgICAgICAgICAgICAgdGltZV90IGZpbGVNb2RXaGVuOwotICAgICAgICAgICAgICAgIGZpbGVNb2RXaGVuID0gZ2V0RmlsZU1vZERhdGUoc3JjTmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGZpbGVNb2RXaGVuID09ICh0aW1lX3QpIC0xKSB7IC8vIGZpbGUgZXhpc3RlbmNlIHRlc3RlZCBlYXJsaWVyLAotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgICAgICAvLyAgbm90IGV4cGVjdGluZyBhbiBlcnJvciBoZXJlCi0gICAgICAgICAgICAgICAgfQotICAgIAotICAgICAgICAgICAgICAgIGlmIChmaWxlTW9kV2hlbiA+IGVudHJ5LT5nZXRNb2RXaGVuKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gbWFyayBhcyBkZWxldGVkIHNvIGFkZCgpIHdpbGwgc3VjY2VlZAotICAgICAgICAgICAgICAgICAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiICAgICAgKHJlbW92aW5nIG9sZCAnJXMnKVxuIiwgc3RvcmFnZU5hbWUuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgCi0gICAgICAgICAgICAgICAgICAgIHppcC0+cmVtb3ZlKGVudHJ5KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAvLyB2ZXJzaW9uIGluIGFyY2hpdmUgaXMgbmV3ZXIKLSAgICAgICAgICAgICAgICAgICAgaWYgKGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiAgICAgIChub3QgdXBkYXRpbmcgJyVzJylcbiIsIHN0b3JhZ2VOYW1lLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBlbnRyeS0+c2V0TWFya2VkKHRydWUpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIEdlbmVyYXRlZCBmaWxlcyBhcmUgYWx3YXlzIHJlcGxhY2VkLgotICAgICAgICAgICAgICAgIHppcC0+cmVtb3ZlKGVudHJ5KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vYW5kcm9pZF9zZXRNaW5Qcmlvcml0eShOVUxMLCBBTkRST0lEX0xPR19WRVJCT1NFKTsKLQotICAgIGlmIChmcm9tR3ppcCkgewotICAgICAgICByZXN1bHQgPSB6aXAtPmFkZEd6aXAoZmlsZS0+Z2V0U291cmNlRmlsZSgpLnN0cmluZygpLCBzdG9yYWdlTmFtZS5zdHJpbmcoKSwgJmVudHJ5KTsKLSAgICB9IGVsc2UgaWYgKCFoYXNEYXRhKSB7Ci0gICAgICAgIC8qIGRvbid0IGNvbXByZXNzIGNlcnRhaW4gZmlsZXMsIGUuZy4gUE5HcyAqLwotICAgICAgICBpbnQgY29tcHJlc3Npb25NZXRob2QgPSBidW5kbGUtPmdldENvbXByZXNzaW9uTWV0aG9kKCk7Ci0gICAgICAgIGlmICghb2theVRvQ29tcHJlc3MoYnVuZGxlLCBzdG9yYWdlTmFtZSkpIHsKLSAgICAgICAgICAgIGNvbXByZXNzaW9uTWV0aG9kID0gWmlwRW50cnk6OmtDb21wcmVzc1N0b3JlZDsKLSAgICAgICAgfQotICAgICAgICByZXN1bHQgPSB6aXAtPmFkZChmaWxlLT5nZXRTb3VyY2VGaWxlKCkuc3RyaW5nKCksIHN0b3JhZ2VOYW1lLnN0cmluZygpLCBjb21wcmVzc2lvbk1ldGhvZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZW50cnkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJlc3VsdCA9IHppcC0+YWRkKGZpbGUtPmdldERhdGEoKSwgZmlsZS0+Z2V0U2l6ZSgpLCBzdG9yYWdlTmFtZS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUtPmdldENvbXByZXNzaW9uTWV0aG9kKCksICZlbnRyeSk7Ci0gICAgfQotICAgIGlmIChyZXN1bHQgPT0gTk9fRVJST1IpIHsKLSAgICAgICAgaWYgKGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKSB7Ci0gICAgICAgICAgICBwcmludGYoIiAgICAgICclcyclcyIsIHN0b3JhZ2VOYW1lLnN0cmluZygpLCBmcm9tR3ppcCA/ICIgKGZyb20gLmd6KSIgOiAiIik7Ci0gICAgICAgICAgICBpZiAoZW50cnktPmdldENvbXByZXNzaW9uTWV0aG9kKCkgPT0gWmlwRW50cnk6OmtDb21wcmVzc1N0b3JlZCkgewotICAgICAgICAgICAgICAgIHByaW50ZigiIChub3QgY29tcHJlc3NlZClcbiIpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwcmludGYoIiAoY29tcHJlc3NlZCAlZCUlKVxuIiwgY2FsY1BlcmNlbnQoZW50cnktPmdldFVuY29tcHJlc3NlZExlbigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5nZXRDb21wcmVzc2VkTGVuKCkpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBlbnRyeS0+c2V0TWFya2VkKHRydWUpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gQUxSRUFEWV9FWElTVFMpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiICAgICAgVW5hYmxlIHRvIGFkZCAnJXMnOiBmaWxlIGFscmVhZHkgaW4gYXJjaGl2ZSAodHJ5ICctdSc/KVxuIiwKLSAgICAgICAgICAgICAgICAgICAgZmlsZS0+Z2V0UHJpbnRhYmxlU291cmNlKCkuc3RyaW5nKCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIgICAgICBVbmFibGUgdG8gYWRkICclcyc6IFppcCBhZGQgZmFpbGVkXG4iLCAKLSAgICAgICAgICAgICAgICAgICAgZmlsZS0+Z2V0UHJpbnRhYmxlU291cmNlKCkuc3RyaW5nKCkpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotLyoKLSAqIERldGVybWluZSB3aGV0aGVyIG9yIG5vdCB3ZSB3YW50IHRvIHRyeSB0byBjb21wcmVzcyB0aGlzIGZpbGUgYmFzZWQKLSAqIG9uIHRoZSBmaWxlIGV4dGVuc2lvbi4KLSAqLwotYm9vbCBva2F5VG9Db21wcmVzcyhCdW5kbGUqIGJ1bmRsZSwgY29uc3QgU3RyaW5nOCYgcGF0aE5hbWUpCi17Ci0gICAgU3RyaW5nOCBleHQgPSBwYXRoTmFtZS5nZXRQYXRoRXh0ZW5zaW9uKCk7Ci0gICAgaW50IGk7Ci0KLSAgICBpZiAoZXh0Lmxlbmd0aCgpID09IDApCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgZm9yIChpID0gMDsgaSA8IE5FTEVNKGtOb0NvbXByZXNzRXh0KTsgaSsrKSB7Ci0gICAgICAgIGlmIChzdHJjYXNlY21wKGV4dC5zdHJpbmcoKSwga05vQ29tcHJlc3NFeHRbaV0pID09IDApCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgY29uc3QgYW5kcm9pZDo6VmVjdG9yPGNvbnN0IGNoYXIqPiYgb3RoZXJzKGJ1bmRsZS0+Z2V0Tm9Db21wcmVzc0V4dGVuc2lvbnMoKSk7Ci0gICAgZm9yIChpID0gMDsgaSA8IChpbnQpb3RoZXJzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IGNoYXIqIHN0ciA9IG90aGVyc1tpXTsKLSAgICAgICAgaW50IHBvcyA9IHBhdGhOYW1lLmxlbmd0aCgpIC0gc3RybGVuKHN0cik7Ci0gICAgICAgIGlmIChwb3MgPCAwKSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBjb25zdCBjaGFyKiBwYXRoID0gcGF0aE5hbWUuc3RyaW5nKCk7Ci0gICAgICAgIGlmIChzdHJjYXNlY21wKHBhdGggKyBwb3MsIHN0cikgPT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgZW5kc1dpdGgoY29uc3QgY2hhciogaGF5c3RhY2ssIGNvbnN0IGNoYXIqIG5lZWRsZSkKLXsKLSAgICBzaXplX3QgYSA9IHN0cmxlbihoYXlzdGFjayk7Ci0gICAgc2l6ZV90IGIgPSBzdHJsZW4obmVlZGxlKTsKLSAgICBpZiAoYSA8IGIpIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gc3RyY2FzZWNtcChoYXlzdGFjaysoYS1iKSwgbmVlZGxlKSA9PSAwOwotfQotCi1zc2l6ZV90IHByb2Nlc3NKYXJGaWxlKFppcEZpbGUqIGphciwgWmlwRmlsZSogb3V0KQotewotICAgIHN0YXR1c190IGVycjsKLSAgICBzaXplX3QgTiA9IGphci0+Z2V0TnVtRW50cmllcygpOwotICAgIHNpemVfdCBjb3VudCA9IDA7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICBaaXBFbnRyeSogZW50cnkgPSBqYXItPmdldEVudHJ5QnlJbmRleChpKTsKLSAgICAgICAgY29uc3QgY2hhciogc3RvcmFnZU5hbWUgPSBlbnRyeS0+Z2V0RmlsZU5hbWUoKTsKLSAgICAgICAgaWYgKGVuZHNXaXRoKHN0b3JhZ2VOYW1lLCAiLmNsYXNzIikpIHsKLSAgICAgICAgICAgIGludCBjb21wcmVzc2lvbk1ldGhvZCA9IGVudHJ5LT5nZXRDb21wcmVzc2lvbk1ldGhvZCgpOwotICAgICAgICAgICAgc2l6ZV90IHNpemUgPSBlbnRyeS0+Z2V0VW5jb21wcmVzc2VkTGVuKCk7Ci0gICAgICAgICAgICBjb25zdCB2b2lkKiBkYXRhID0gamFyLT51bmNvbXByZXNzKGVudHJ5KTsKLSAgICAgICAgICAgIGlmIChkYXRhID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiB1bmFibGUgdG8gdW5jb21wcmVzcyBlbnRyeSAnJXMnXG4iLAotICAgICAgICAgICAgICAgICAgICBzdG9yYWdlTmFtZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgb3V0LT5hZGQoZGF0YSwgc2l6ZSwgc3RvcmFnZU5hbWUsIGNvbXByZXNzaW9uTWV0aG9kLCBOVUxMKTsKLSAgICAgICAgICAgIGZyZWUoKHZvaWQqKWRhdGEpOwotICAgICAgICB9Ci0gICAgICAgIGNvdW50Kys7Ci0gICAgfQotICAgIHJldHVybiBjb3VudDsKLX0KLQotc3NpemVfdCBwcm9jZXNzSmFyRmlsZXMoQnVuZGxlKiBidW5kbGUsIFppcEZpbGUqIHppcCkKLXsKLSAgICBzdGF0dXNfdCBlcnI7Ci0gICAgc3NpemVfdCBjb3VudCA9IDA7Ci0gICAgY29uc3QgYW5kcm9pZDo6VmVjdG9yPGNvbnN0IGNoYXIqPiYgamFycyA9IGJ1bmRsZS0+Z2V0SmFyRmlsZXMoKTsKLQotICAgIHNpemVfdCBOID0gamFycy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICBaaXBGaWxlIGphcjsKLSAgICAgICAgZXJyID0gamFyLm9wZW4oamFyc1tpXSwgWmlwRmlsZTo6a09wZW5SZWFkT25seSk7Ci0gICAgICAgIGlmIChlcnIgIT0gMCkgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogdW5hYmxlIHRvIG9wZW4gJyVzJyBhcyBhIHppcCBmaWxlOiAlZFxuIiwKLSAgICAgICAgICAgICAgICBqYXJzW2ldLCBlcnIpOwotICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgfQotICAgICAgICBlcnIgKz0gcHJvY2Vzc0phckZpbGUoJmphciwgemlwKTsKLSAgICAgICAgaWYgKGVyciA8IDApIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IHVuYWJsZSB0byBwcm9jZXNzICclcydcbiIsIGphcnNbaV0pOwotICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgfQotICAgICAgICBjb3VudCArPSBlcnI7Ci0gICAgfQotCi0gICAgcmV0dXJuIGNvdW50OwotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC9SZXNvdXJjZS5jcHAgYi90b29scy9hYXB0L1Jlc291cmNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzg2ODg4Yi4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L1Jlc291cmNlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI2NTEgKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDA2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0vLyBCdWlsZCByZXNvdXJjZSBmaWxlcyBmcm9tIHJhdyBhc3NldHMuCi0vLwotI2luY2x1ZGUgIk1haW4uaCIKLSNpbmNsdWRlICJBYXB0QXNzZXRzLmgiCi0jaW5jbHVkZSAiU3RyaW5nUG9vbC5oIgotI2luY2x1ZGUgIlhNTE5vZGUuaCIKLSNpbmNsdWRlICJSZXNvdXJjZVRhYmxlLmgiCi0jaW5jbHVkZSAiSW1hZ2VzLmgiCi0KLSNpbmNsdWRlICJDcnVuY2hDYWNoZS5oIgotI2luY2x1ZGUgIkZpbGVGaW5kZXIuaCIKLSNpbmNsdWRlICJDYWNoZVVwZGF0ZXIuaCIKLQotI2luY2x1ZGUgIldvcmtRdWV1ZS5oIgotCi0jaWYgSEFWRV9QUklOVEZfWkQKLSMgIGRlZmluZSBaRCAiJXpkIgotIyAgZGVmaW5lIFpEX1RZUEUgc3NpemVfdAotI2Vsc2UKLSMgIGRlZmluZSBaRCAiJWxkIgotIyAgZGVmaW5lIFpEX1RZUEUgbG9uZwotI2VuZGlmCi0KLSNkZWZpbmUgTk9JU1koeCkgLy8geAotCi0vLyBOdW1iZXIgb2YgdGhyZWFkcyB0byB1c2UgZm9yIHByZXByb2Nlc3NpbmcgaW1hZ2VzLgotc3RhdGljIGNvbnN0IHNpemVfdCBNQVhfVEhSRUFEUyA9IDQ7Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotY2xhc3MgUGFja2FnZUluZm8KLXsKLXB1YmxpYzoKLSAgICBQYWNrYWdlSW5mbygpCi0gICAgewotICAgIH0KLSAgICB+UGFja2FnZUluZm8oKQotICAgIHsKLSAgICB9Ci0KLSAgICBzdGF0dXNfdCBwYXJzZVBhY2thZ2UoY29uc3Qgc3A8QWFwdEdyb3VwPiYgZ3JwKTsKLX07Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotc3RhdGljIFN0cmluZzggcGFyc2VSZXNvdXJjZU5hbWUoY29uc3QgU3RyaW5nOCYgbGVhZikKLXsKLSAgICBjb25zdCBjaGFyKiBmaXJzdERvdCA9IHN0cmNocihsZWFmLnN0cmluZygpLCAnLicpOwotICAgIGNvbnN0IGNoYXIqIHN0ciA9IGxlYWYuc3RyaW5nKCk7Ci0KLSAgICBpZiAoZmlyc3REb3QpIHsKLSAgICAgICAgcmV0dXJuIFN0cmluZzgoc3RyLCBmaXJzdERvdC1zdHIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJldHVybiBTdHJpbmc4KHN0cik7Ci0gICAgfQotfQotCi1SZXNvdXJjZVR5cGVTZXQ6OlJlc291cmNlVHlwZVNldCgpCi0gICAgOlJlZkJhc2UoKSwKLSAgICAgS2V5ZWRWZWN0b3I8U3RyaW5nOCxzcDxBYXB0R3JvdXA+ID4oKQotewotfQotCi1GaWxlUGF0aFN0b3JlOjpGaWxlUGF0aFN0b3JlKCkKLSAgICA6UmVmQmFzZSgpLAotICAgICBWZWN0b3I8U3RyaW5nOD4oKQotewotfQotCi1jbGFzcyBSZXNvdXJjZURpckl0ZXJhdG9yCi17Ci1wdWJsaWM6Ci0gICAgUmVzb3VyY2VEaXJJdGVyYXRvcihjb25zdCBzcDxSZXNvdXJjZVR5cGVTZXQ+JiBzZXQsIGNvbnN0IFN0cmluZzgmIHJlc1R5cGUpCi0gICAgICAgIDogbVJlc1R5cGUocmVzVHlwZSksIG1TZXQoc2V0KSwgbVNldFBvcygwKSwgbUdyb3VwUG9zKDApCi0gICAgewotICAgIH0KLQotICAgIGlubGluZSBjb25zdCBzcDxBYXB0R3JvdXA+JiBnZXRHcm91cCgpIGNvbnN0IHsgcmV0dXJuIG1Hcm91cDsgfQotICAgIGlubGluZSBjb25zdCBzcDxBYXB0RmlsZT4mIGdldEZpbGUoKSBjb25zdCB7IHJldHVybiBtRmlsZTsgfQotCi0gICAgaW5saW5lIGNvbnN0IFN0cmluZzgmIGdldEJhc2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbUJhc2VOYW1lOyB9Ci0gICAgaW5saW5lIGNvbnN0IFN0cmluZzgmIGdldExlYWZOYW1lKCkgY29uc3QgeyByZXR1cm4gbUxlYWZOYW1lOyB9Ci0gICAgaW5saW5lIFN0cmluZzggZ2V0UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1QYXRoOyB9Ci0gICAgaW5saW5lIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgZ2V0UGFyYW1zKCkgY29uc3QgeyByZXR1cm4gbVBhcmFtczsgfQotCi0gICAgZW51bSB7Ci0gICAgICAgIEVPRCA9IDEKLSAgICB9OwotCi0gICAgc3NpemVfdCBuZXh0KCkKLSAgICB7Ci0gICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgICBzcDxBYXB0R3JvdXA+IGdyb3VwOwotICAgICAgICAgICAgc3A8QWFwdEZpbGU+IGZpbGU7Ci0KLSAgICAgICAgICAgIC8vIFRyeSB0byBnZXQgbmV4dCBmaWxlIGluIHRoaXMgY3VycmVudCBncm91cC4KLSAgICAgICAgICAgIGlmIChtR3JvdXAgIT0gTlVMTCAmJiBtR3JvdXBQb3MgPCBtR3JvdXAtPmdldEZpbGVzKCkuc2l6ZSgpKSB7Ci0gICAgICAgICAgICAgICAgZ3JvdXAgPSBtR3JvdXA7Ci0gICAgICAgICAgICAgICAgZmlsZSA9IGdyb3VwLT5nZXRGaWxlcygpLnZhbHVlQXQobUdyb3VwUG9zKyspOwotCi0gICAgICAgICAgICAvLyBUcnkgdG8gZ2V0IHRoZSBuZXh0IGdyb3VwL2ZpbGUgaW4gdGhpcyBkaXJlY3RvcnkKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobVNldFBvcyA8IG1TZXQtPnNpemUoKSkgewotICAgICAgICAgICAgICAgIG1Hcm91cCA9IGdyb3VwID0gbVNldC0+dmFsdWVBdChtU2V0UG9zKyspOwotICAgICAgICAgICAgICAgIGlmIChncm91cC0+Z2V0RmlsZXMoKS5zaXplKCkgPCAxKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBmaWxlID0gZ3JvdXAtPmdldEZpbGVzKCkudmFsdWVBdCgwKTsKLSAgICAgICAgICAgICAgICBtR3JvdXBQb3MgPSAxOwotCi0gICAgICAgICAgICAvLyBBbGwgZG9uZSEKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEVPRDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbUZpbGUgPSBmaWxlOwotCi0gICAgICAgICAgICBTdHJpbmc4IGxlYWYoZ3JvdXAtPmdldExlYWYoKSk7Ci0gICAgICAgICAgICBtTGVhZk5hbWUgPSBTdHJpbmc4KGxlYWYpOwotICAgICAgICAgICAgbVBhcmFtcyA9IGZpbGUtPmdldEdyb3VwRW50cnkoKS50b1BhcmFtcygpOwotICAgICAgICAgICAgTk9JU1kocHJpbnRmKCJEaXIgJXM6IG1jYz0lZCBtbmM9JWQgbGFuZz0lYyVjIGNudD0lYyVjIG9yaWVudD0lZCB1aT0lZCBkZW5zaXR5PSVkIHRvdWNoPSVkIGtleT0lZCBpbnA9JWQgbmF2PSVkXG4iLAotICAgICAgICAgICAgICAgICAgIGdyb3VwLT5nZXRQYXRoKCkuc3RyaW5nKCksIG1QYXJhbXMubWNjLCBtUGFyYW1zLm1uYywKLSAgICAgICAgICAgICAgICAgICBtUGFyYW1zLmxhbmd1YWdlWzBdID8gbVBhcmFtcy5sYW5ndWFnZVswXSA6ICctJywKLSAgICAgICAgICAgICAgICAgICBtUGFyYW1zLmxhbmd1YWdlWzFdID8gbVBhcmFtcy5sYW5ndWFnZVsxXSA6ICctJywKLSAgICAgICAgICAgICAgICAgICBtUGFyYW1zLmNvdW50cnlbMF0gPyBtUGFyYW1zLmNvdW50cnlbMF0gOiAnLScsCi0gICAgICAgICAgICAgICAgICAgbVBhcmFtcy5jb3VudHJ5WzFdID8gbVBhcmFtcy5jb3VudHJ5WzFdIDogJy0nLAotICAgICAgICAgICAgICAgICAgIG1QYXJhbXMub3JpZW50YXRpb24sIG1QYXJhbXMudWlNb2RlLAotICAgICAgICAgICAgICAgICAgIG1QYXJhbXMuZGVuc2l0eSwgbVBhcmFtcy50b3VjaHNjcmVlbiwgbVBhcmFtcy5rZXlib2FyZCwKLSAgICAgICAgICAgICAgICAgICBtUGFyYW1zLmlucHV0RmxhZ3MsIG1QYXJhbXMubmF2aWdhdGlvbikpOwotICAgICAgICAgICAgbVBhdGggPSAicmVzIjsKLSAgICAgICAgICAgIG1QYXRoLmFwcGVuZFBhdGgoZmlsZS0+Z2V0R3JvdXBFbnRyeSgpLnRvRGlyTmFtZShtUmVzVHlwZSkpOwotICAgICAgICAgICAgbVBhdGguYXBwZW5kUGF0aChsZWFmKTsKLSAgICAgICAgICAgIG1CYXNlTmFtZSA9IHBhcnNlUmVzb3VyY2VOYW1lKGxlYWYpOwotICAgICAgICAgICAgaWYgKG1CYXNlTmFtZSA9PSAiIikgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3I6IG1hbGZvcm1lZCByZXNvdXJjZSBmaWxlbmFtZSAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUtPmdldFByaW50YWJsZVNvdXJjZSgpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgTk9JU1kocHJpbnRmKCJmaWxlIG5hbWU9JXNcbiIsIG1CYXNlTmFtZS5zdHJpbmcoKSkpOwotCi0gICAgICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgICAgIH0KLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgU3RyaW5nOCBtUmVzVHlwZTsKLQotICAgIGNvbnN0IHNwPFJlc291cmNlVHlwZVNldD4gbVNldDsKLSAgICBzaXplX3QgbVNldFBvczsKLQotICAgIHNwPEFhcHRHcm91cD4gbUdyb3VwOwotICAgIHNpemVfdCBtR3JvdXBQb3M7Ci0KLSAgICBzcDxBYXB0RmlsZT4gbUZpbGU7Ci0gICAgU3RyaW5nOCBtQmFzZU5hbWU7Ci0gICAgU3RyaW5nOCBtTGVhZk5hbWU7Ci0gICAgU3RyaW5nOCBtUGF0aDsKLSAgICBSZXNUYWJsZV9jb25maWcgbVBhcmFtczsKLX07Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotYm9vbCBpc1ZhbGlkUmVzb3VyY2VUeXBlKGNvbnN0IFN0cmluZzgmIHR5cGUpCi17Ci0gICAgcmV0dXJuIHR5cGUgPT0gImFuaW0iIHx8IHR5cGUgPT0gImFuaW1hdG9yIiB8fCB0eXBlID09ICJpbnRlcnBvbGF0b3IiCi0gICAgICAgIHx8IHR5cGUgPT0gInRyYW5zaXRpb24iCi0gICAgICAgIHx8IHR5cGUgPT0gImRyYXdhYmxlIiB8fCB0eXBlID09ICJsYXlvdXQiCi0gICAgICAgIHx8IHR5cGUgPT0gInZhbHVlcyIgfHwgdHlwZSA9PSAieG1sIiB8fCB0eXBlID09ICJyYXciCi0gICAgICAgIHx8IHR5cGUgPT0gImNvbG9yIiB8fCB0eXBlID09ICJtZW51IiB8fCB0eXBlID09ICJtaXBtYXAiOwotfQotCi1zdGF0aWMgc3A8QWFwdEZpbGU+IGdldFJlc291cmNlRmlsZShjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzLCBib29sIG1ha2VJZk5lY2Vzc2FyeT10cnVlKQotewotICAgIHNwPEFhcHRHcm91cD4gZ3JvdXAgPSBhc3NldHMtPmdldEZpbGVzKCkudmFsdWVGb3IoU3RyaW5nOCgicmVzb3VyY2VzLmFyc2MiKSk7Ci0gICAgc3A8QWFwdEZpbGU+IGZpbGU7Ci0gICAgaWYgKGdyb3VwICE9IE5VTEwpIHsKLSAgICAgICAgZmlsZSA9IGdyb3VwLT5nZXRGaWxlcygpLnZhbHVlRm9yKEFhcHRHcm91cEVudHJ5KCkpOwotICAgICAgICBpZiAoZmlsZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmlsZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICghbWFrZUlmTmVjZXNzYXJ5KSB7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICByZXR1cm4gYXNzZXRzLT5hZGRGaWxlKFN0cmluZzgoInJlc291cmNlcy5hcnNjIiksIEFhcHRHcm91cEVudHJ5KCksIFN0cmluZzgoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBTdHJpbmc4KCkpOwotfQotCi1zdGF0aWMgc3RhdHVzX3QgcGFyc2VQYWNrYWdlKEJ1bmRsZSogYnVuZGxlLCBjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzLAotICAgIGNvbnN0IHNwPEFhcHRHcm91cD4mIGdycCkKLXsKLSAgICBpZiAoZ3JwLT5nZXRGaWxlcygpLnNpemUoKSAhPSAxKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAid2FybmluZzogTXVsdGlwbGUgQW5kcm9pZE1hbmlmZXN0LnhtbCBmaWxlcyBmb3VuZCwgdXNpbmcgJXNcbiIsCi0gICAgICAgICAgICAgICAgZ3JwLT5nZXRGaWxlcygpLnZhbHVlQXQoMCktPmdldFByaW50YWJsZVNvdXJjZSgpLnN0cmluZygpKTsKLSAgICB9Ci0KLSAgICBzcDxBYXB0RmlsZT4gZmlsZSA9IGdycC0+Z2V0RmlsZXMoKS52YWx1ZUF0KDApOwotCi0gICAgUmVzWE1MVHJlZSBibG9jazsKLSAgICBzdGF0dXNfdCBlcnIgPSBwYXJzZVhNTFJlc291cmNlKGZpbGUsICZibG9jayk7Ci0gICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLSAgICAvL3ByaW50WE1MQmxvY2soJmJsb2NrKTsKLQotICAgIFJlc1hNTFRyZWU6OmV2ZW50X2NvZGVfdCBjb2RlOwotICAgIHdoaWxlICgoY29kZT1ibG9jay5uZXh0KCkpICE9IFJlc1hNTFRyZWU6OlNUQVJUX1RBRwotICAgICAgICAgICAmJiBjb2RlICE9IFJlc1hNTFRyZWU6OkVORF9ET0NVTUVOVAotICAgICAgICAgICAmJiBjb2RlICE9IFJlc1hNTFRyZWU6OkJBRF9ET0NVTUVOVCkgewotICAgIH0KLQotICAgIHNpemVfdCBsZW47Ci0gICAgaWYgKGNvZGUgIT0gUmVzWE1MVHJlZTo6U1RBUlRfVEFHKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQ6IE5vIHN0YXJ0IHRhZyBmb3VuZFxuIiwKLSAgICAgICAgICAgICAgICBmaWxlLT5nZXRQcmludGFibGVTb3VyY2UoKS5zdHJpbmcoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotICAgIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgU3RyaW5nMTYoIm1hbmlmZXN0Iikuc3RyaW5nKCkpICE9IDApIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogSW52YWxpZCBzdGFydCB0YWcgJXMsIGV4cGVjdGVkIDxtYW5pZmVzdD5cbiIsCi0gICAgICAgICAgICAgICAgZmlsZS0+Z2V0UHJpbnRhYmxlU291cmNlKCkuc3RyaW5nKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSwKLSAgICAgICAgICAgICAgICBTdHJpbmc4KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pKS5zdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLQotICAgIHNzaXplX3QgbmFtZUluZGV4ID0gYmxvY2suaW5kZXhPZkF0dHJpYnV0ZShOVUxMLCAicGFja2FnZSIpOwotICAgIGlmIChuYW1lSW5kZXggPCAwKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQ6IDxtYW5pZmVzdD4gZG9lcyBub3QgaGF2ZSBwYWNrYWdlIGF0dHJpYnV0ZS5cbiIsCi0gICAgICAgICAgICAgICAgZmlsZS0+Z2V0UHJpbnRhYmxlU291cmNlKCkuc3RyaW5nKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSk7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLQotICAgIGFzc2V0cy0+c2V0UGFja2FnZShTdHJpbmc4KGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKG5hbWVJbmRleCwgJmxlbikpKTsKLQotICAgIFN0cmluZzE2IHVzZXNfc2RrMTYoInVzZXMtc2RrIik7Ci0gICAgd2hpbGUgKChjb2RlPWJsb2NrLm5leHQoKSkgIT0gUmVzWE1MVHJlZTo6RU5EX0RPQ1VNRU5UCi0gICAgICAgICAgICYmIGNvZGUgIT0gUmVzWE1MVHJlZTo6QkFEX0RPQ1VNRU5UKSB7Ci0gICAgICAgIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OlNUQVJUX1RBRykgewotICAgICAgICAgICAgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCB1c2VzX3NkazE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgc3NpemVfdCBtaW5TZGtJbmRleCA9IGJsb2NrLmluZGV4T2ZBdHRyaWJ1dGUoUkVTT1VSQ0VTX0FORFJPSURfTkFNRVNQQUNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaW5TZGtWZXJzaW9uIik7Ci0gICAgICAgICAgICAgICAgaWYgKG1pblNka0luZGV4ID49IDApIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDE2X3QqIG1pblNkazE2ID0gYmxvY2suZ2V0QXR0cmlidXRlU3RyaW5nVmFsdWUobWluU2RrSW5kZXgsICZsZW4pOwotICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBtaW5TZGs4ID0gc3RyZHVwKFN0cmluZzgobWluU2RrMTYpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLT5zZXRNYW5pZmVzdE1pblNka1ZlcnNpb24obWluU2RrOCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLXN0YXRpYyBzdGF0dXNfdCBtYWtlRmlsZVJlc291cmNlcyhCdW5kbGUqIGJ1bmRsZSwgY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzc2V0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVRhYmxlKiB0YWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxSZXNvdXJjZVR5cGVTZXQ+JiBzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogcmVzVHlwZSkKLXsKLSAgICBTdHJpbmc4IHR5cGU4KHJlc1R5cGUpOwotICAgIFN0cmluZzE2IHR5cGUxNihyZXNUeXBlKTsKLQotICAgIGJvb2wgaGFzRXJyb3JzID0gZmFsc2U7Ci0KLSAgICBSZXNvdXJjZURpckl0ZXJhdG9yIGl0KHNldCwgU3RyaW5nOChyZXNUeXBlKSk7Ci0gICAgc3NpemVfdCByZXM7Ci0gICAgd2hpbGUgKChyZXM9aXQubmV4dCgpKSA9PSBOT19FUlJPUikgewotICAgICAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpIHsKLSAgICAgICAgICAgIHByaW50ZigiICAgIChuZXcgcmVzb3VyY2UgaWQgJXMgZnJvbSAlcylcbiIsCi0gICAgICAgICAgICAgICAgICAgaXQuZ2V0QmFzZU5hbWUoKS5zdHJpbmcoKSwgaXQuZ2V0RmlsZSgpLT5nZXRQcmludGFibGVTb3VyY2UoKS5zdHJpbmcoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgU3RyaW5nMTYgYmFzZU5hbWUoaXQuZ2V0QmFzZU5hbWUoKSk7Ci0gICAgICAgIGNvbnN0IGNoYXIxNl90KiBzdHIgPSBiYXNlTmFtZS5zdHJpbmcoKTsKLSAgICAgICAgY29uc3QgY2hhcjE2X3QqIGNvbnN0IGVuZCA9IHN0ciArIGJhc2VOYW1lLnNpemUoKTsKLSAgICAgICAgd2hpbGUgKHN0ciA8IGVuZCkgewotICAgICAgICAgICAgaWYgKCEoKCpzdHIgPj0gJ2EnICYmICpzdHIgPD0gJ3onKQotICAgICAgICAgICAgICAgICAgICB8fCAoKnN0ciA+PSAnMCcgJiYgKnN0ciA8PSAnOScpCi0gICAgICAgICAgICAgICAgICAgIHx8ICpzdHIgPT0gJ18nIHx8ICpzdHIgPT0gJy4nKSkgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IEludmFsaWQgZmlsZSBuYW1lOiBtdXN0IGNvbnRhaW4gb25seSBbYS16MC05Xy5dXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgaXQuZ2V0UGF0aCgpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RyKys7Ci0gICAgICAgIH0KLSAgICAgICAgU3RyaW5nOCByZXNQYXRoID0gaXQuZ2V0UGF0aCgpOwotICAgICAgICByZXNQYXRoLmNvbnZlcnRUb1Jlc1BhdGgoKTsKLSAgICAgICAgdGFibGUtPmFkZEVudHJ5KFNvdXJjZVBvcyhpdC5nZXRQYXRoKCksIDApLCBTdHJpbmcxNihhc3NldHMtPmdldFBhY2thZ2UoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlMTYsCi0gICAgICAgICAgICAgICAgICAgICAgICBiYXNlTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzE2KHJlc1BhdGgpLAotICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICZpdC5nZXRQYXJhbXMoKSk7Ci0gICAgICAgIGFzc2V0cy0+YWRkUmVzb3VyY2UoaXQuZ2V0TGVhZk5hbWUoKSwgcmVzUGF0aCwgaXQuZ2V0RmlsZSgpLCB0eXBlOCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGhhc0Vycm9ycyA/IFVOS05PV05fRVJST1IgOiBOT19FUlJPUjsKLX0KLQotY2xhc3MgUHJlUHJvY2Vzc0ltYWdlV29ya1VuaXQgOiBwdWJsaWMgV29ya1F1ZXVlOjpXb3JrVW5pdCB7Ci1wdWJsaWM6Ci0gICAgUHJlUHJvY2Vzc0ltYWdlV29ya1VuaXQoY29uc3QgQnVuZGxlKiBidW5kbGUsIGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMsCi0gICAgICAgICAgICBjb25zdCBzcDxBYXB0RmlsZT4mIGZpbGUsIHZvbGF0aWxlIGJvb2wqIGhhc0Vycm9ycykgOgotICAgICAgICAgICAgbUJ1bmRsZShidW5kbGUpLCBtQXNzZXRzKGFzc2V0cyksIG1GaWxlKGZpbGUpLCBtSGFzRXJyb3JzKGhhc0Vycm9ycykgewotICAgIH0KLQotICAgIHZpcnR1YWwgYm9vbCBydW4oKSB7Ci0gICAgICAgIHN0YXR1c190IHN0YXR1cyA9IHByZVByb2Nlc3NJbWFnZShtQnVuZGxlLCBtQXNzZXRzLCBtRmlsZSwgTlVMTCk7Ci0gICAgICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgICAgICptSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gY29udGludWUgZXZlbiBpZiB0aGVyZSBhcmUgZXJyb3JzCi0gICAgfQotCi1wcml2YXRlOgotICAgIGNvbnN0IEJ1bmRsZSogbUJ1bmRsZTsKLSAgICBzcDxBYXB0QXNzZXRzPiBtQXNzZXRzOwotICAgIHNwPEFhcHRGaWxlPiBtRmlsZTsKLSAgICB2b2xhdGlsZSBib29sKiBtSGFzRXJyb3JzOwotfTsKLQotc3RhdGljIHN0YXR1c190IHByZVByb2Nlc3NJbWFnZXMoY29uc3QgQnVuZGxlKiBidW5kbGUsIGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPFJlc291cmNlVHlwZVNldD4mIHNldCwgY29uc3QgY2hhciogdHlwZSkKLXsKLSAgICB2b2xhdGlsZSBib29sIGhhc0Vycm9ycyA9IGZhbHNlOwotICAgIHNzaXplX3QgcmVzID0gTk9fRVJST1I7Ci0gICAgaWYgKGJ1bmRsZS0+Z2V0VXNlQ3J1bmNoQ2FjaGUoKSA9PSBmYWxzZSkgewotICAgICAgICBXb3JrUXVldWUgd3EoTUFYX1RIUkVBRFMsIGZhbHNlKTsKLSAgICAgICAgUmVzb3VyY2VEaXJJdGVyYXRvciBpdChzZXQsIFN0cmluZzgodHlwZSkpOwotICAgICAgICB3aGlsZSAoKHJlcz1pdC5uZXh0KCkpID09IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBQcmVQcm9jZXNzSW1hZ2VXb3JrVW5pdCogdyA9IG5ldyBQcmVQcm9jZXNzSW1hZ2VXb3JrVW5pdCgKLSAgICAgICAgICAgICAgICAgICAgYnVuZGxlLCBhc3NldHMsIGl0LmdldEZpbGUoKSwgJmhhc0Vycm9ycyk7Ci0gICAgICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSB3cS5zY2hlZHVsZSh3KTsKLSAgICAgICAgICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInByZVByb2Nlc3NJbWFnZXMgZmFpbGVkOiBzY2hlZHVsZSgpIHJldHVybmVkICVkXG4iLCBzdGF0dXMpOwotICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIHc7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gd3EuZmluaXNoKCk7Ci0gICAgICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAicHJlUHJvY2Vzc0ltYWdlcyBmYWlsZWQ6IGZpbmlzaCgpIHJldHVybmVkICVkXG4iLCBzdGF0dXMpOwotICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gKGhhc0Vycm9ycyB8fCAocmVzIDwgTk9fRVJST1IpKSA/IFVOS05PV05fRVJST1IgOiBOT19FUlJPUjsKLX0KLQotc3RhdHVzX3QgcG9zdFByb2Nlc3NJbWFnZXMoY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzc2V0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVGFibGUqIHRhYmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8UmVzb3VyY2VUeXBlU2V0PiYgc2V0KQotewotICAgIFJlc291cmNlRGlySXRlcmF0b3IgaXQoc2V0LCBTdHJpbmc4KCJkcmF3YWJsZSIpKTsKLSAgICBib29sIGhhc0Vycm9ycyA9IGZhbHNlOwotICAgIHNzaXplX3QgcmVzOwotICAgIHdoaWxlICgocmVzPWl0Lm5leHQoKSkgPT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmVzID0gcG9zdFByb2Nlc3NJbWFnZShhc3NldHMsIHRhYmxlLCBpdC5nZXRGaWxlKCkpOwotICAgICAgICBpZiAocmVzIDwgTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gKGhhc0Vycm9ycyB8fCAocmVzIDwgTk9fRVJST1IpKSA/IFVOS05PV05fRVJST1IgOiBOT19FUlJPUjsKLX0KLQotc3RhdGljIHZvaWQgY29sbGVjdF9maWxlcyhjb25zdCBzcDxBYXB0RGlyPiYgZGlyLAotICAgICAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCBzcDxSZXNvdXJjZVR5cGVTZXQ+ID4qIHJlc291cmNlcykKLXsKLSAgICBjb25zdCBEZWZhdWx0S2V5ZWRWZWN0b3I8U3RyaW5nOCwgc3A8QWFwdEdyb3VwPiA+JiBncm91cHMgPSBkaXItPmdldEZpbGVzKCk7Ci0gICAgaW50IE4gPSBncm91cHMuc2l6ZSgpOwotICAgIGZvciAoaW50IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgU3RyaW5nOCBsZWFmTmFtZSA9IGdyb3Vwcy5rZXlBdChpKTsKLSAgICAgICAgY29uc3Qgc3A8QWFwdEdyb3VwPiYgZ3JvdXAgPSBncm91cHMudmFsdWVBdChpKTsKLQotICAgICAgICBjb25zdCBEZWZhdWx0S2V5ZWRWZWN0b3I8QWFwdEdyb3VwRW50cnksIHNwPEFhcHRGaWxlPiA+JiBmaWxlcwotICAgICAgICAgICAgICAgID0gZ3JvdXAtPmdldEZpbGVzKCk7Ci0KLSAgICAgICAgaWYgKGZpbGVzLnNpemUoKSA9PSAwKSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIFN0cmluZzggcmVzVHlwZSA9IGZpbGVzLnZhbHVlQXQoMCktPmdldFJlc291cmNlVHlwZSgpOwotCi0gICAgICAgIHNzaXplX3QgaW5kZXggPSByZXNvdXJjZXMtPmluZGV4T2ZLZXkocmVzVHlwZSk7Ci0KLSAgICAgICAgaWYgKGluZGV4IDwgMCkgewotICAgICAgICAgICAgc3A8UmVzb3VyY2VUeXBlU2V0PiBzZXQgPSBuZXcgUmVzb3VyY2VUeXBlU2V0KCk7Ci0gICAgICAgICAgICBOT0lTWShwcmludGYoIkNyZWF0aW5nIG5ldyByZXNvdXJjZSB0eXBlIHNldCBmb3IgbGVhZiAlcyB3aXRoIGdyb3VwICVzICglcClcbiIsCi0gICAgICAgICAgICAgICAgICAgIGxlYWZOYW1lLnN0cmluZygpLCBncm91cC0+Z2V0UGF0aCgpLnN0cmluZygpLCBncm91cC5nZXQoKSkpOwotICAgICAgICAgICAgc2V0LT5hZGQobGVhZk5hbWUsIGdyb3VwKTsKLSAgICAgICAgICAgIHJlc291cmNlcy0+YWRkKHJlc1R5cGUsIHNldCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzcDxSZXNvdXJjZVR5cGVTZXQ+IHNldCA9IHJlc291cmNlcy0+dmFsdWVBdChpbmRleCk7Ci0gICAgICAgICAgICBpbmRleCA9IHNldC0+aW5kZXhPZktleShsZWFmTmFtZSk7Ci0gICAgICAgICAgICBpZiAoaW5kZXggPCAwKSB7Ci0gICAgICAgICAgICAgICAgTk9JU1kocHJpbnRmKCJBZGRpbmcgdG8gcmVzb3VyY2UgdHlwZSBzZXQgZm9yIGxlYWYgJXMgZ3JvdXAgJXMgKCVwKVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGxlYWZOYW1lLnN0cmluZygpLCBncm91cC0+Z2V0UGF0aCgpLnN0cmluZygpLCBncm91cC5nZXQoKSkpOwotICAgICAgICAgICAgICAgIHNldC0+YWRkKGxlYWZOYW1lLCBncm91cCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHNwPEFhcHRHcm91cD4gZXhpc3RpbmdHcm91cCA9IHNldC0+dmFsdWVBdChpbmRleCk7Ci0gICAgICAgICAgICAgICAgTk9JU1kocHJpbnRmKCJFeHRlbmRpbmcgdG8gcmVzb3VyY2UgdHlwZSBzZXQgZm9yIGxlYWYgJXMgZ3JvdXAgJXMgKCVwKVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGxlYWZOYW1lLnN0cmluZygpLCBncm91cC0+Z2V0UGF0aCgpLnN0cmluZygpLCBncm91cC5nZXQoKSkpOwotICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGo9MDsgajxmaWxlcy5zaXplKCk7IGorKykgewotICAgICAgICAgICAgICAgICAgICBOT0lTWShwcmludGYoIkFkZGluZyBmaWxlICVzIGluIGdyb3VwICVzIHJlc1R5cGUgJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBmaWxlcy52YWx1ZUF0KGopLT5nZXRTb3VyY2VGaWxlKCkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBmaWxlcy5rZXlBdChqKS50b0Rpck5hbWUoU3RyaW5nOCgpKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc1R5cGUuc3RyaW5nKCkpKTsKLSAgICAgICAgICAgICAgICAgICAgc3RhdHVzX3QgZXJyID0gZXhpc3RpbmdHcm91cC0+YWRkRmlsZShmaWxlcy52YWx1ZUF0KGopKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIGNvbGxlY3RfZmlsZXMoY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzcywKLSAgICAgICAgS2V5ZWRWZWN0b3I8U3RyaW5nOCwgc3A8UmVzb3VyY2VUeXBlU2V0PiA+KiByZXNvdXJjZXMpCi17Ci0gICAgY29uc3QgVmVjdG9yPHNwPEFhcHREaXI+ID4mIGRpcnMgPSBhc3MtPnJlc0RpcnMoKTsKLSAgICBpbnQgTiA9IGRpcnMuc2l6ZSgpOwotCi0gICAgZm9yIChpbnQgaT0wOyBpPE47IGkrKykgewotICAgICAgICBzcDxBYXB0RGlyPiBkID0gZGlycy5pdGVtQXQoaSk7Ci0gICAgICAgIE5PSVNZKHByaW50ZigiQ29sbGVjdGluZyBkaXIgIyVkICVwOiAlcywgbGVhZiAlc1xuIiwgaSwgZC5nZXQoKSwgZC0+Z2V0UGF0aCgpLnN0cmluZygpLAotICAgICAgICAgICAgICAgIGQtPmdldExlYWYoKS5zdHJpbmcoKSkpOwotICAgICAgICBjb2xsZWN0X2ZpbGVzKGQsIHJlc291cmNlcyk7Ci0KLSAgICAgICAgLy8gZG9uJ3QgdHJ5IHRvIGluY2x1ZGUgdGhlIHJlcyBkaXIKLSAgICAgICAgTk9JU1kocHJpbnRmKCJSZW1vdmluZyBkaXIgbGVhZiAlc1xuIiwgZC0+Z2V0TGVhZigpLnN0cmluZygpKSk7Ci0gICAgICAgIGFzcy0+cmVtb3ZlRGlyKGQtPmdldExlYWYoKSk7Ci0gICAgfQotfQotCi1lbnVtIHsKLSAgICBBVFRSX09LQVkgPSAtMSwKLSAgICBBVFRSX05PVF9GT1VORCA9IC0yLAotICAgIEFUVFJfTEVBRElOR19TUEFDRVMgPSAtMywKLSAgICBBVFRSX1RSQUlMSU5HX1NQQUNFUyA9IC00Ci19Owotc3RhdGljIGludCB2YWxpZGF0ZUF0dHIoY29uc3QgU3RyaW5nOCYgcGF0aCwgY29uc3QgUmVzVGFibGUmIHRhYmxlLAotICAgICAgICBjb25zdCBSZXNYTUxQYXJzZXImIHBhcnNlciwKLSAgICAgICAgY29uc3QgY2hhciogbnMsIGNvbnN0IGNoYXIqIGF0dHIsIGNvbnN0IGNoYXIqIHZhbGlkQ2hhcnMsIGJvb2wgcmVxdWlyZWQpCi17Ci0gICAgc2l6ZV90IGxlbjsKLQotICAgIHNzaXplX3QgaW5kZXggPSBwYXJzZXIuaW5kZXhPZkF0dHJpYnV0ZShucywgYXR0cik7Ci0gICAgY29uc3QgdWludDE2X3QqIHN0cjsKLSAgICBSZXNfdmFsdWUgdmFsdWU7Ci0gICAgaWYgKGluZGV4ID49IDAgJiYgcGFyc2VyLmdldEF0dHJpYnV0ZVZhbHVlKGluZGV4LCAmdmFsdWUpID49IDApIHsKLSAgICAgICAgY29uc3QgUmVzU3RyaW5nUG9vbCogcG9vbCA9ICZwYXJzZXIuZ2V0U3RyaW5ncygpOwotICAgICAgICBpZiAodmFsdWUuZGF0YVR5cGUgPT0gUmVzX3ZhbHVlOjpUWVBFX1JFRkVSRU5DRSkgewotICAgICAgICAgICAgdWludDMyX3Qgc3BlY0ZsYWdzID0gMDsKLSAgICAgICAgICAgIGludCBzdHJJZHg7Ci0gICAgICAgICAgICBpZiAoKHN0cklkeD10YWJsZS5yZXNvbHZlUmVmZXJlbmNlKCZ2YWx1ZSwgMHgxMDAwMDAwMCwgTlVMTCwgJnNwZWNGbGFncykpIDwgMCkgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQ6IFRhZyA8JXM+IGF0dHJpYnV0ZSAlcyByZWZlcmVuY2VzIHVua25vd24gcmVzaWQgMHglMDh4LlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguc3RyaW5nKCksIHBhcnNlci5nZXRMaW5lTnVtYmVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHBhcnNlci5nZXRFbGVtZW50TmFtZSgmbGVuKSkuc3RyaW5nKCksIGF0dHIsCi0gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5kYXRhKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gQVRUUl9OT1RfRk9VTkQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHBvb2wgPSB0YWJsZS5nZXRUYWJsZVN0cmluZ0Jsb2NrKHN0cklkeCk7Ci0gICAgICAgICAgICAjaWYgMAotICAgICAgICAgICAgaWYgKHBvb2wgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIHN0ciA9IHBvb2wtPnN0cmluZ0F0KHZhbHVlLmRhdGEsICZsZW4pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJpbnRmKCIqKioqKiBSRVMgQVRUUjogJXMgc3BlY0ZsYWdzPTB4JXggc3RySWR4PSVkOiAlc1xuIiwgYXR0ciwKLSAgICAgICAgICAgICAgICAgICAgc3BlY0ZsYWdzLCBzdHJJZHgsIHN0ciAhPSBOVUxMID8gU3RyaW5nOChzdHIpLnN0cmluZygpIDogIj8/PyIpOwotICAgICAgICAgICAgI2VuZGlmCi0gICAgICAgICAgICBpZiAoKHNwZWNGbGFncyZ+UmVzVGFibGVfdHlwZVNwZWM6OlNQRUNfUFVCTElDKSAhPSAwICYmIGZhbHNlKSB7Ci0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogVGFnIDwlcz4gYXR0cmlidXRlICVzIHZhcmllcyBieSBjb25maWd1cmF0aW9ucyAweCV4LlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguc3RyaW5nKCksIHBhcnNlci5nZXRMaW5lTnVtYmVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHBhcnNlci5nZXRFbGVtZW50TmFtZSgmbGVuKSkuc3RyaW5nKCksIGF0dHIsCi0gICAgICAgICAgICAgICAgICAgICAgICBzcGVjRmxhZ3MpOwotICAgICAgICAgICAgICAgIHJldHVybiBBVFRSX05PVF9GT1VORDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAodmFsdWUuZGF0YVR5cGUgPT0gUmVzX3ZhbHVlOjpUWVBFX1NUUklORykgewotICAgICAgICAgICAgaWYgKHBvb2wgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQ6IFRhZyA8JXM+IGF0dHJpYnV0ZSAlcyBoYXMgbm8gc3RyaW5nIGJsb2NrLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguc3RyaW5nKCksIHBhcnNlci5nZXRMaW5lTnVtYmVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHBhcnNlci5nZXRFbGVtZW50TmFtZSgmbGVuKSkuc3RyaW5nKCksIGF0dHIpOwotICAgICAgICAgICAgICAgIHJldHVybiBBVFRSX05PVF9GT1VORDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICgoc3RyPXBvb2wtPnN0cmluZ0F0KHZhbHVlLmRhdGEsICZsZW4pKSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogVGFnIDwlcz4gYXR0cmlidXRlICVzIGhhcyBjb3JydXB0IHN0cmluZyB2YWx1ZS5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXRoLnN0cmluZygpLCBwYXJzZXIuZ2V0TGluZU51bWJlcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChwYXJzZXIuZ2V0RWxlbWVudE5hbWUoJmxlbikpLnN0cmluZygpLCBhdHRyKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gQVRUUl9OT1RfRk9VTkQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkOiBUYWcgPCVzPiBhdHRyaWJ1dGUgJXMgaGFzIGludmFsaWQgdHlwZSAlZC5cbiIsCi0gICAgICAgICAgICAgICAgICAgIHBhdGguc3RyaW5nKCksIHBhcnNlci5nZXRMaW5lTnVtYmVyKCksCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzgocGFyc2VyLmdldEVsZW1lbnROYW1lKCZsZW4pKS5zdHJpbmcoKSwgYXR0ciwKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUuZGF0YVR5cGUpOwotICAgICAgICAgICAgcmV0dXJuIEFUVFJfTk9UX0ZPVU5EOwotICAgICAgICB9Ci0gICAgICAgIGlmICh2YWxpZENoYXJzKSB7Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCBpPTA7IGk8bGVuOyBpKyspIHsKLSAgICAgICAgICAgICAgICB1aW50MTZfdCBjID0gc3RyW2ldOwotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHAgPSB2YWxpZENoYXJzOwotICAgICAgICAgICAgICAgIGJvb2wgb2theSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHdoaWxlICgqcCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAqcCkgewotICAgICAgICAgICAgICAgICAgICAgICAgb2theSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBwKys7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICghb2theSkgewotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkOiBUYWcgPCVzPiBhdHRyaWJ1dGUgJXMgaGFzIGludmFsaWQgY2hhcmFjdGVyICclYycuXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguc3RyaW5nKCksIHBhcnNlci5nZXRMaW5lTnVtYmVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChwYXJzZXIuZ2V0RWxlbWVudE5hbWUoJmxlbikpLnN0cmluZygpLCBhdHRyLCAoY2hhcilzdHJbaV0pOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGludClpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoKnN0ciA9PSAnICcpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQ6IFRhZyA8JXM+IGF0dHJpYnV0ZSAlcyBjYW4gbm90IHN0YXJ0IHdpdGggYSBzcGFjZS5cbiIsCi0gICAgICAgICAgICAgICAgICAgIHBhdGguc3RyaW5nKCksIHBhcnNlci5nZXRMaW5lTnVtYmVyKCksCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzgocGFyc2VyLmdldEVsZW1lbnROYW1lKCZsZW4pKS5zdHJpbmcoKSwgYXR0cik7Ci0gICAgICAgICAgICByZXR1cm4gQVRUUl9MRUFESU5HX1NQQUNFUzsKLSAgICAgICAgfQotICAgICAgICBpZiAoc3RyW2xlbi0xXSA9PSAnICcpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQ6IFRhZyA8JXM+IGF0dHJpYnV0ZSAlcyBjYW4gbm90IGVuZCB3aXRoIGEgc3BhY2UuXG4iLAotICAgICAgICAgICAgICAgICAgICBwYXRoLnN0cmluZygpLCBwYXJzZXIuZ2V0TGluZU51bWJlcigpLAotICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHBhcnNlci5nZXRFbGVtZW50TmFtZSgmbGVuKSkuc3RyaW5nKCksIGF0dHIpOwotICAgICAgICAgICAgcmV0dXJuIEFUVFJfVFJBSUxJTkdfU1BBQ0VTOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBBVFRSX09LQVk7Ci0gICAgfQotICAgIGlmIChyZXF1aXJlZCkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkOiBUYWcgPCVzPiBtaXNzaW5nIHJlcXVpcmVkIGF0dHJpYnV0ZSAlcy5cbiIsCi0gICAgICAgICAgICAgICAgcGF0aC5zdHJpbmcoKSwgcGFyc2VyLmdldExpbmVOdW1iZXIoKSwKLSAgICAgICAgICAgICAgICBTdHJpbmc4KHBhcnNlci5nZXRFbGVtZW50TmFtZSgmbGVuKSkuc3RyaW5nKCksIGF0dHIpOwotICAgICAgICByZXR1cm4gQVRUUl9OT1RfRk9VTkQ7Ci0gICAgfQotICAgIHJldHVybiBBVFRSX09LQVk7Ci19Ci0KLXN0YXRpYyB2b2lkIGNoZWNrRm9ySWRzKGNvbnN0IFN0cmluZzgmIHBhdGgsIFJlc1hNTFBhcnNlciYgcGFyc2VyKQotewotICAgIFJlc1hNTFRyZWU6OmV2ZW50X2NvZGVfdCBjb2RlOwotICAgIHdoaWxlICgoY29kZT1wYXJzZXIubmV4dCgpKSAhPSBSZXNYTUxUcmVlOjpFTkRfRE9DVU1FTlQKLSAgICAgICAgICAgJiYgY29kZSA+IFJlc1hNTFRyZWU6OkJBRF9ET0NVTUVOVCkgewotICAgICAgICBpZiAoY29kZSA9PSBSZXNYTUxUcmVlOjpTVEFSVF9UQUcpIHsKLSAgICAgICAgICAgIHNzaXplX3QgaW5kZXggPSBwYXJzZXIuaW5kZXhPZkF0dHJpYnV0ZShOVUxMLCAiaWQiKTsKLSAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogd2FybmluZzogZm91bmQgcGxhaW4gJ2lkJyBhdHRyaWJ1dGU7IGRpZCB5b3UgbWVhbiB0aGUgbmV3ICdhbmRyb2lkOmlkJyBuYW1lP1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguc3RyaW5nKCksIHBhcnNlci5nZXRMaW5lTnVtYmVyKCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotfQotCi1zdGF0aWMgYm9vbCBhcHBseUZpbGVPdmVybGF5KEJ1bmRsZSAqYnVuZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxSZXNvdXJjZVR5cGVTZXQ+ICpiYXNlU2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpyZXNUeXBlKQotewotICAgIGlmIChidW5kbGUtPmdldFZlcmJvc2UoKSkgewotICAgICAgICBwcmludGYoImFwcGx5RmlsZU92ZXJsYXkgZm9yICVzXG4iLCByZXNUeXBlKTsKLSAgICB9Ci0KLSAgICAvLyBSZXBsYWNlIGFueSBiYXNlIGxldmVsIGZpbGVzIGluIHRoaXMgY2F0ZWdvcnkgd2l0aCBhbnkgZm91bmQgZnJvbSB0aGUgb3ZlcmxheQotICAgIC8vIEFsc28gYWRkIGFueSBmb3VuZCBvbmx5IGluIHRoZSBvdmVybGF5LgotICAgIHNwPEFhcHRBc3NldHM+IG92ZXJsYXkgPSBhc3NldHMtPmdldE92ZXJsYXkoKTsKLSAgICBTdHJpbmc4IHJlc1R5cGVTdHJpbmcocmVzVHlwZSk7Ci0KLSAgICAvLyB3b3JrIHRocm91Z2ggdGhlIGxpbmtlZCBsaXN0IG9mIG92ZXJsYXlzCi0gICAgd2hpbGUgKG92ZXJsYXkuZ2V0KCkpIHsKLSAgICAgICAgS2V5ZWRWZWN0b3I8U3RyaW5nOCwgc3A8UmVzb3VyY2VUeXBlU2V0PiA+KiBvdmVybGF5UmVzID0gb3ZlcmxheS0+Z2V0UmVzb3VyY2VzKCk7Ci0KLSAgICAgICAgLy8gZ2V0IHRoZSBvdmVybGF5IHJlc291cmNlcyBvZiB0aGUgcmVxdWVzdGVkIHR5cGUKLSAgICAgICAgc3NpemVfdCBpbmRleCA9IG92ZXJsYXlSZXMtPmluZGV4T2ZLZXkocmVzVHlwZVN0cmluZyk7Ci0gICAgICAgIGlmIChpbmRleCA+PSAwKSB7Ci0gICAgICAgICAgICBzcDxSZXNvdXJjZVR5cGVTZXQ+IG92ZXJsYXlTZXQgPSBvdmVybGF5UmVzLT52YWx1ZUF0KGluZGV4KTsKLQotICAgICAgICAgICAgLy8gZm9yIGVhY2ggb2YgdGhlIHJlc291cmNlcywgY2hlY2sgZm9yIGEgbWF0Y2ggaW4gdGhlIHByZXZpb3VzbHkgYnVpbHQKLSAgICAgICAgICAgIC8vIG5vbi1vdmVybGF5ICJiYXNlc2V0Ii4KLSAgICAgICAgICAgIHNpemVfdCBvdmVybGF5Q291bnQgPSBvdmVybGF5U2V0LT5zaXplKCk7Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCBvdmVybGF5SW5kZXg9MDsgb3ZlcmxheUluZGV4PG92ZXJsYXlDb3VudDsgb3ZlcmxheUluZGV4KyspIHsKLSAgICAgICAgICAgICAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJ0cnlpbmcgb3ZlcmxheVNldCBLZXk9JXNcbiIsb3ZlcmxheVNldC0+a2V5QXQob3ZlcmxheUluZGV4KS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHNpemVfdCBiYXNlSW5kZXggPSBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgICAgIGlmIChiYXNlU2V0LT5nZXQoKSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJhc2VJbmRleCA9ICgqYmFzZVNldCktPmluZGV4T2ZLZXkob3ZlcmxheVNldC0+a2V5QXQob3ZlcmxheUluZGV4KSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChiYXNlSW5kZXggPCBVTktOT1dOX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIGxvb2sgZm9yIHNhbWUgZmxhdm9yLiAgRm9yIGEgZ2l2ZW4gZmlsZSAoc3RyaW5ncy54bWwsIGZvciBleGFtcGxlKQotICAgICAgICAgICAgICAgICAgICAvLyB0aGVyZSBtYXkgYmUgYSBsb2NhbGUgc3BlY2lmaWMgb3Igb3RoZXIgZmxhdm9ycyAtIHdlIHdhbnQgdG8gbWF0Y2gKLSAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHNhbWUgZmxhdm9yLgotICAgICAgICAgICAgICAgICAgICBzcDxBYXB0R3JvdXA+IG92ZXJsYXlHcm91cCA9IG92ZXJsYXlTZXQtPnZhbHVlQXQob3ZlcmxheUluZGV4KTsKLSAgICAgICAgICAgICAgICAgICAgc3A8QWFwdEdyb3VwPiBiYXNlR3JvdXAgPSAoKmJhc2VTZXQpLT52YWx1ZUF0KGJhc2VJbmRleCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgRGVmYXVsdEtleWVkVmVjdG9yPEFhcHRHcm91cEVudHJ5LCBzcDxBYXB0RmlsZT4gPiBvdmVybGF5RmlsZXMgPQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlHcm91cC0+Z2V0RmlsZXMoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0S2V5ZWRWZWN0b3I8QWFwdEdyb3VwRW50cnksIHNwPEFhcHRGaWxlPiA+IGJhc2VGaWxlcyA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VHcm91cC0+Z2V0RmlsZXMoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaSA8IGJhc2VGaWxlcy5zaXplKCk7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiYmFzZUZpbGUgIiBaRCAiIGhhcyBmbGF2b3IgJXNcbiIsIChaRF9UWVBFKSBpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZUZpbGVzLmtleUF0KGkpLnRvU3RyaW5nKCkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaT0wOyBpIDwgb3ZlcmxheUZpbGVzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJvdmVybGF5RmlsZSAiIFpEICIgaGFzIGZsYXZvciAlc1xuIiwgKFpEX1RZUEUpIGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5RmlsZXMua2V5QXQoaSkudG9TdHJpbmcoKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb3ZlcmxheUdyb3VwU2l6ZSA9IG92ZXJsYXlGaWxlcy5zaXplKCk7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IG92ZXJsYXlHcm91cEluZGV4ID0gMDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5R3JvdXBJbmRleDxvdmVybGF5R3JvdXBTaXplOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlHcm91cEluZGV4KyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBiYXNlRmlsZUluZGV4ID0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZUdyb3VwLT5nZXRGaWxlcygpLmluZGV4T2ZLZXkob3ZlcmxheUZpbGVzLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlBdChvdmVybGF5R3JvdXBJbmRleCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJhc2VGaWxlSW5kZXggPCBVTktOT1dOX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiZm91bmQgYSBtYXRjaCAoIiBaRCAiKSBmb3Igb3ZlcmxheSBmaWxlICVzLCBmb3IgZmxhdm9yICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChaRF9UWVBFKSBiYXNlRmlsZUluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlHcm91cC0+Z2V0TGVhZigpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlGaWxlcy5rZXlBdChvdmVybGF5R3JvdXBJbmRleCkudG9TdHJpbmcoKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VHcm91cC0+cmVtb3ZlRmlsZShiYXNlRmlsZUluZGV4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGlkbid0IGZpbmQgYSBtYXRjaCBmYWxsIHRocm91Z2ggYW5kIGFkZCBpdC4uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRydWUgfHwgYnVuZGxlLT5nZXRWZXJib3NlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJub3RoaW5nIG1hdGNoZXMgb3ZlcmxheSBmaWxlICVzLCBmb3IgZmxhdm9yICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlHcm91cC0+Z2V0TGVhZigpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlGaWxlcy5rZXlBdChvdmVybGF5R3JvdXBJbmRleCkudG9TdHJpbmcoKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYmFzZUdyb3VwLT5hZGRGaWxlKG92ZXJsYXlGaWxlcy52YWx1ZUF0KG92ZXJsYXlHcm91cEluZGV4KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NldHMtPmFkZEdyb3VwRW50cnkob3ZlcmxheUZpbGVzLmtleUF0KG92ZXJsYXlHcm91cEluZGV4KSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiAoYmFzZVNldC0+Z2V0KCkgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgKmJhc2VTZXQgPSBuZXcgUmVzb3VyY2VUeXBlU2V0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc3NldHMtPmdldFJlc291cmNlcygpLT5hZGQoU3RyaW5nOChyZXNUeXBlKSwgKmJhc2VTZXQpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgZ3JvdXAgZG9lc24ndCBleGlzdCAoYSBmaWxlIHRoYXQncyBvbmx5IGluIHRoZSBvdmVybGF5KQotICAgICAgICAgICAgICAgICAgICAoKmJhc2VTZXQpLT5hZGQob3ZlcmxheVNldC0+a2V5QXQob3ZlcmxheUluZGV4KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5U2V0LT52YWx1ZUF0KG92ZXJsYXlJbmRleCkpOwotICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgYWxsIGZsYXZvcnMgYXJlIGRlZmluZWQgaW4gdGhlIHJlc291cmNlcy4KLSAgICAgICAgICAgICAgICAgICAgc3A8QWFwdEdyb3VwPiBvdmVybGF5R3JvdXAgPSBvdmVybGF5U2V0LT52YWx1ZUF0KG92ZXJsYXlJbmRleCk7Ci0gICAgICAgICAgICAgICAgICAgIERlZmF1bHRLZXllZFZlY3RvcjxBYXB0R3JvdXBFbnRyeSwgc3A8QWFwdEZpbGU+ID4gb3ZlcmxheUZpbGVzID0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVybGF5R3JvdXAtPmdldEZpbGVzKCk7Ci0gICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdmVybGF5R3JvdXBTaXplID0gb3ZlcmxheUZpbGVzLnNpemUoKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3Qgb3ZlcmxheUdyb3VwSW5kZXggPSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXlHcm91cEluZGV4PG92ZXJsYXlHcm91cFNpemU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxheUdyb3VwSW5kZXgrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRzLT5hZGRHcm91cEVudHJ5KG92ZXJsYXlGaWxlcy5rZXlBdChvdmVybGF5R3JvdXBJbmRleCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gdGhpcyBvdmVybGF5IGRpZG4ndCBoYXZlIHJlc291cmNlcyBmb3IgdGhpcyB0eXBlCi0gICAgICAgIH0KLSAgICAgICAgLy8gdHJ5IG5leHQgb3ZlcmxheQotICAgICAgICBvdmVybGF5ID0gb3ZlcmxheS0+Z2V0T3ZlcmxheSgpOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotLyoKLSAqIEluc2VydHMgYW4gYXR0cmlidXRlIGluIGEgZ2l2ZW4gbm9kZSwgb25seSBpZiB0aGUgYXR0cmlidXRlIGRvZXMgbm90Ci0gKiBleGlzdC4KLSAqIElmIGVycm9yT25GYWlsZWRJbnNlcnQgaXMgdHJ1ZSwgYW5kIHRoZSBhdHRyaWJ1dGUgYWxyZWFkeSBleGlzdHMsIHJldHVybnMgZmFsc2UuCi0gKiBSZXR1cm5zIHRydWUgb3RoZXJ3aXNlLCBldmVuIGlmIHRoZSBhdHRyaWJ1dGUgYWxyZWFkeSBleGlzdHMuCi0gKi8KLWJvb2wgYWRkVGFnQXR0cmlidXRlKGNvbnN0IHNwPFhNTE5vZGU+JiBub2RlLCBjb25zdCBjaGFyKiBuczgsCi0gICAgICAgIGNvbnN0IGNoYXIqIGF0dHI4LCBjb25zdCBjaGFyKiB2YWx1ZSwgYm9vbCBlcnJvck9uRmFpbGVkSW5zZXJ0KQotewotICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGNvbnN0IFN0cmluZzE2IG5zKG5zOCk7Ci0gICAgY29uc3QgU3RyaW5nMTYgYXR0cihhdHRyOCk7Ci0KLSAgICBpZiAobm9kZS0+Z2V0QXR0cmlidXRlKG5zLCBhdHRyKSAhPSBOVUxMKSB7Ci0gICAgICAgIGlmIChlcnJvck9uRmFpbGVkSW5zZXJ0KSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yOiBBbmRyb2lkTWFuaWZlc3QueG1sIGFscmVhZHkgZGVmaW5lcyAlcyAoaW4gJXMpOyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGNhbm5vdCBpbnNlcnQgbmV3IHZhbHVlICVzLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChhdHRyKS5zdHJpbmcoKSwgU3RyaW5nOChucykuc3RyaW5nKCksIHZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiV2FybmluZzogQW5kcm9pZE1hbmlmZXN0LnhtbCBhbHJlYWR5IGRlZmluZXMgJXMgKGluICVzKTsiCi0gICAgICAgICAgICAgICAgICAgICAgICAiIHVzaW5nIGV4aXN0aW5nIHZhbHVlIGluIG1hbmlmZXN0LlxuIiwKLSAgICAgICAgICAgICAgICBTdHJpbmc4KGF0dHIpLnN0cmluZygpLCBTdHJpbmc4KG5zKS5zdHJpbmcoKSk7Ci0KLSAgICAgICAgLy8gZG9uJ3Qgc3RvcCB0aGUgYnVpbGQuCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIG5vZGUtPmFkZEF0dHJpYnV0ZShucywgYXR0ciwgU3RyaW5nMTYodmFsdWUpKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIHZvaWQgZnVsbHlRdWFsaWZ5Q2xhc3NOYW1lKGNvbnN0IFN0cmluZzgmIHBhY2thZ2UsIHNwPFhNTE5vZGU+IG5vZGUsCi0gICAgICAgIGNvbnN0IFN0cmluZzE2JiBhdHRyTmFtZSkgewotICAgIFhNTE5vZGU6OmF0dHJpYnV0ZV9lbnRyeSogYXR0ciA9IG5vZGUtPmVkaXRBdHRyaWJ1dGUoCi0gICAgICAgICAgICBTdHJpbmcxNigiaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIiksIGF0dHJOYW1lKTsKLSAgICBpZiAoYXR0ciAhPSBOVUxMKSB7Ci0gICAgICAgIFN0cmluZzggbmFtZShhdHRyLT5zdHJpbmcpOwotCi0gICAgICAgIC8vIGFzZGYgICAgIC0tPiBwYWNrYWdlLmFzZGYKLSAgICAgICAgLy8gLmFzZGYgIC5hLmIgIC0tPiBwYWNrYWdlLmFzZGYgcGFja2FnZS5hLmIKLSAgICAgICAgLy8gYXNkZi5hZHNmIC0tPiBhc2RmLmFzZGYKLSAgICAgICAgU3RyaW5nOCBjbGFzc05hbWU7Ci0gICAgICAgIGNvbnN0IGNoYXIqIHAgPSBuYW1lLnN0cmluZygpOwotICAgICAgICBjb25zdCBjaGFyKiBxID0gc3RyY2hyKHAsICcuJyk7Ci0gICAgICAgIGlmIChwID09IHEpIHsKLSAgICAgICAgICAgIGNsYXNzTmFtZSArPSBwYWNrYWdlOwotICAgICAgICAgICAgY2xhc3NOYW1lICs9IG5hbWU7Ci0gICAgICAgIH0gZWxzZSBpZiAocSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBjbGFzc05hbWUgKz0gcGFja2FnZTsKLSAgICAgICAgICAgIGNsYXNzTmFtZSArPSAiLiI7Ci0gICAgICAgICAgICBjbGFzc05hbWUgKz0gbmFtZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGNsYXNzTmFtZSArPSBuYW1lOwotICAgICAgICB9Ci0gICAgICAgIE5PSVNZKHByaW50ZigiUXVhbGlmeWluZyBjbGFzcyAnJXMnIHRvICclcyciLCBuYW1lLnN0cmluZygpLCBjbGFzc05hbWUuc3RyaW5nKCkpKTsKLSAgICAgICAgYXR0ci0+c3RyaW5nLnNldFRvKFN0cmluZzE2KGNsYXNzTmFtZSkpOwotICAgIH0KLX0KLQotc3RhdHVzX3QgbWFzc2FnZU1hbmlmZXN0KEJ1bmRsZSogYnVuZGxlLCBzcDxYTUxOb2RlPiByb290KQotewotICAgIHJvb3QgPSByb290LT5zZWFyY2hFbGVtZW50KFN0cmluZzE2KCksIFN0cmluZzE2KCJtYW5pZmVzdCIpKTsKLSAgICBpZiAocm9vdCA9PSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiTm8gPG1hbmlmZXN0PiB0YWcuXG4iKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotCi0gICAgYm9vbCBlcnJvck9uRmFpbGVkSW5zZXJ0ID0gYnVuZGxlLT5nZXRFcnJvck9uRmFpbGVkSW5zZXJ0KCk7Ci0KLSAgICBpZiAoIWFkZFRhZ0F0dHJpYnV0ZShyb290LCBSRVNPVVJDRVNfQU5EUk9JRF9OQU1FU1BBQ0UsICJ2ZXJzaW9uQ29kZSIsCi0gICAgICAgICAgICBidW5kbGUtPmdldFZlcnNpb25Db2RlKCksIGVycm9yT25GYWlsZWRJbnNlcnQpKSB7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLSAgICBpZiAoIWFkZFRhZ0F0dHJpYnV0ZShyb290LCBSRVNPVVJDRVNfQU5EUk9JRF9OQU1FU1BBQ0UsICJ2ZXJzaW9uTmFtZSIsCi0gICAgICAgICAgICBidW5kbGUtPmdldFZlcnNpb25OYW1lKCksIGVycm9yT25GYWlsZWRJbnNlcnQpKSB7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLQotICAgIGlmIChidW5kbGUtPmdldE1pblNka1ZlcnNpb24oKSAhPSBOVUxMCi0gICAgICAgICAgICB8fCBidW5kbGUtPmdldFRhcmdldFNka1ZlcnNpb24oKSAhPSBOVUxMCi0gICAgICAgICAgICB8fCBidW5kbGUtPmdldE1heFNka1ZlcnNpb24oKSAhPSBOVUxMKSB7Ci0gICAgICAgIHNwPFhNTE5vZGU+IHZlcnMgPSByb290LT5nZXRDaGlsZEVsZW1lbnQoU3RyaW5nMTYoKSwgU3RyaW5nMTYoInVzZXMtc2RrIikpOwotICAgICAgICBpZiAodmVycyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICB2ZXJzID0gWE1MTm9kZTo6bmV3RWxlbWVudChyb290LT5nZXRGaWxlbmFtZSgpLCBTdHJpbmcxNigpLCBTdHJpbmcxNigidXNlcy1zZGsiKSk7Ci0gICAgICAgICAgICByb290LT5pbnNlcnRDaGlsZEF0KHZlcnMsIDApOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFhZGRUYWdBdHRyaWJ1dGUodmVycywgUkVTT1VSQ0VTX0FORFJPSURfTkFNRVNQQUNFLCAibWluU2RrVmVyc2lvbiIsCi0gICAgICAgICAgICAgICAgYnVuZGxlLT5nZXRNaW5TZGtWZXJzaW9uKCksIGVycm9yT25GYWlsZWRJbnNlcnQpKSB7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotICAgICAgICBpZiAoIWFkZFRhZ0F0dHJpYnV0ZSh2ZXJzLCBSRVNPVVJDRVNfQU5EUk9JRF9OQU1FU1BBQ0UsICJ0YXJnZXRTZGtWZXJzaW9uIiwKLSAgICAgICAgICAgICAgICBidW5kbGUtPmdldFRhcmdldFNka1ZlcnNpb24oKSwgZXJyb3JPbkZhaWxlZEluc2VydCkpIHsKLSAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICB9Ci0gICAgICAgIGlmICghYWRkVGFnQXR0cmlidXRlKHZlcnMsIFJFU09VUkNFU19BTkRST0lEX05BTUVTUEFDRSwgIm1heFNka1ZlcnNpb24iLAotICAgICAgICAgICAgICAgIGJ1bmRsZS0+Z2V0TWF4U2RrVmVyc2lvbigpLCBlcnJvck9uRmFpbGVkSW5zZXJ0KSkgewotICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoYnVuZGxlLT5nZXREZWJ1Z01vZGUoKSkgewotICAgICAgICBzcDxYTUxOb2RlPiBhcHBsaWNhdGlvbiA9IHJvb3QtPmdldENoaWxkRWxlbWVudChTdHJpbmcxNigpLCBTdHJpbmcxNigiYXBwbGljYXRpb24iKSk7Ci0gICAgICAgIGlmIChhcHBsaWNhdGlvbiAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBpZiAoIWFkZFRhZ0F0dHJpYnV0ZShhcHBsaWNhdGlvbiwgUkVTT1VSQ0VTX0FORFJPSURfTkFNRVNQQUNFLCAiZGVidWdnYWJsZSIsICJ0cnVlIiwKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JPbkZhaWxlZEluc2VydCkpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIERlYWwgd2l0aCBtYW5pZmVzdCBwYWNrYWdlIG5hbWUgb3ZlcnJpZGVzCi0gICAgY29uc3QgY2hhciogbWFuaWZlc3RQYWNrYWdlTmFtZU92ZXJyaWRlID0gYnVuZGxlLT5nZXRNYW5pZmVzdFBhY2thZ2VOYW1lT3ZlcnJpZGUoKTsKLSAgICBpZiAobWFuaWZlc3RQYWNrYWdlTmFtZU92ZXJyaWRlICE9IE5VTEwpIHsKLSAgICAgICAgLy8gVXBkYXRlIHRoZSBhY3R1YWwgcGFja2FnZSBuYW1lCi0gICAgICAgIFhNTE5vZGU6OmF0dHJpYnV0ZV9lbnRyeSogYXR0ciA9IHJvb3QtPmVkaXRBdHRyaWJ1dGUoU3RyaW5nMTYoKSwgU3RyaW5nMTYoInBhY2thZ2UiKSk7Ci0gICAgICAgIGlmIChhdHRyID09IE5VTEwpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAicGFja2FnZSBuYW1lIGlzIHJlcXVpcmVkIHdpdGggLS1yZW5hbWUtbWFuaWZlc3QtcGFja2FnZS5cbiIpOwotICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgIH0KLSAgICAgICAgU3RyaW5nOCBvcmlnUGFja2FnZShhdHRyLT5zdHJpbmcpOwotICAgICAgICBhdHRyLT5zdHJpbmcuc2V0VG8oU3RyaW5nMTYobWFuaWZlc3RQYWNrYWdlTmFtZU92ZXJyaWRlKSk7Ci0gICAgICAgIE5PSVNZKHByaW50ZigiT3ZlcnJpZGluZyBwYWNrYWdlICclcycgdG8gYmUgJyVzJ1xuIiwgb3JpZ1BhY2thZ2Uuc3RyaW5nKCksIG1hbmlmZXN0UGFja2FnZU5hbWVPdmVycmlkZSkpOwotCi0gICAgICAgIC8vIE1ha2UgY2xhc3MgbmFtZXMgZnVsbHkgcXVhbGlmaWVkCi0gICAgICAgIHNwPFhNTE5vZGU+IGFwcGxpY2F0aW9uID0gcm9vdC0+Z2V0Q2hpbGRFbGVtZW50KFN0cmluZzE2KCksIFN0cmluZzE2KCJhcHBsaWNhdGlvbiIpKTsKLSAgICAgICAgaWYgKGFwcGxpY2F0aW9uICE9IE5VTEwpIHsKLSAgICAgICAgICAgIGZ1bGx5UXVhbGlmeUNsYXNzTmFtZShvcmlnUGFja2FnZSwgYXBwbGljYXRpb24sIFN0cmluZzE2KCJuYW1lIikpOwotICAgICAgICAgICAgZnVsbHlRdWFsaWZ5Q2xhc3NOYW1lKG9yaWdQYWNrYWdlLCBhcHBsaWNhdGlvbiwgU3RyaW5nMTYoImJhY2t1cEFnZW50IikpOwotCi0gICAgICAgICAgICBWZWN0b3I8c3A8WE1MTm9kZT4gPiYgY2hpbGRyZW4gPSBjb25zdF9jYXN0PFZlY3RvcjxzcDxYTUxOb2RlPiA+Jj4oYXBwbGljYXRpb24tPmdldENoaWxkcmVuKCkpOwotICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbi5zaXplKCk7IGkrKykgewotICAgICAgICAgICAgICAgIHNwPFhNTE5vZGU+IGNoaWxkID0gY2hpbGRyZW4uZWRpdEl0ZW1BdChpKTsKLSAgICAgICAgICAgICAgICBTdHJpbmc4IHRhZyhjaGlsZC0+Z2V0RWxlbWVudE5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKHRhZyA9PSAiYWN0aXZpdHkiIHx8IHRhZyA9PSAic2VydmljZSIgfHwgdGFnID09ICJyZWNlaXZlciIgfHwgdGFnID09ICJwcm92aWRlciIpIHsKLSAgICAgICAgICAgICAgICAgICAgZnVsbHlRdWFsaWZ5Q2xhc3NOYW1lKG9yaWdQYWNrYWdlLCBjaGlsZCwgU3RyaW5nMTYoIm5hbWUiKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0YWcgPT0gImFjdGl2aXR5LWFsaWFzIikgewotICAgICAgICAgICAgICAgICAgICBmdWxseVF1YWxpZnlDbGFzc05hbWUob3JpZ1BhY2thZ2UsIGNoaWxkLCBTdHJpbmcxNigibmFtZSIpKTsKLSAgICAgICAgICAgICAgICAgICAgZnVsbHlRdWFsaWZ5Q2xhc3NOYW1lKG9yaWdQYWNrYWdlLCBjaGlsZCwgU3RyaW5nMTYoInRhcmdldEFjdGl2aXR5IikpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIERlYWwgd2l0aCBtYW5pZmVzdCBwYWNrYWdlIG5hbWUgb3ZlcnJpZGVzCi0gICAgY29uc3QgY2hhciogaW5zdHJ1bWVudGF0aW9uUGFja2FnZU5hbWVPdmVycmlkZSA9IGJ1bmRsZS0+Z2V0SW5zdHJ1bWVudGF0aW9uUGFja2FnZU5hbWVPdmVycmlkZSgpOwotICAgIGlmIChpbnN0cnVtZW50YXRpb25QYWNrYWdlTmFtZU92ZXJyaWRlICE9IE5VTEwpIHsKLSAgICAgICAgLy8gRml4IHVwIGluc3RydW1lbnRhdGlvbiB0YXJnZXRzLgotICAgICAgICBWZWN0b3I8c3A8WE1MTm9kZT4gPiYgY2hpbGRyZW4gPSBjb25zdF9jYXN0PFZlY3RvcjxzcDxYTUxOb2RlPiA+Jj4ocm9vdC0+Z2V0Q2hpbGRyZW4oKSk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4uc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgICAgIHNwPFhNTE5vZGU+IGNoaWxkID0gY2hpbGRyZW4uZWRpdEl0ZW1BdChpKTsKLSAgICAgICAgICAgIFN0cmluZzggdGFnKGNoaWxkLT5nZXRFbGVtZW50TmFtZSgpKTsKLSAgICAgICAgICAgIGlmICh0YWcgPT0gImluc3RydW1lbnRhdGlvbiIpIHsKLSAgICAgICAgICAgICAgICBYTUxOb2RlOjphdHRyaWJ1dGVfZW50cnkqIGF0dHIgPSBjaGlsZC0+ZWRpdEF0dHJpYnV0ZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzE2KCJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiKSwgU3RyaW5nMTYoInRhcmdldFBhY2thZ2UiKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGF0dHIgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBhdHRyLT5zdHJpbmcuc2V0VG8oU3RyaW5nMTYoaW5zdHJ1bWVudGF0aW9uUGFja2FnZU5hbWVPdmVycmlkZSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotI2RlZmluZSBBU1NJR05fSVQobikgXAotICAgICAgICBkbyB7IFwKLSAgICAgICAgICAgIHNzaXplX3QgaW5kZXggPSByZXNvdXJjZXMtPmluZGV4T2ZLZXkoU3RyaW5nOCgjbikpOyBcCi0gICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkgeyBcCi0gICAgICAgICAgICAgICAgbiAjIyBzID0gcmVzb3VyY2VzLT52YWx1ZUF0KGluZGV4KTsgXAotICAgICAgICAgICAgfSBcCi0gICAgICAgIH0gd2hpbGUgKDApCi0KLXN0YXR1c190IHVwZGF0ZVByZVByb2Nlc3NlZENhY2hlKEJ1bmRsZSogYnVuZGxlKQotewotICAgICNpZiBCRU5DSE1BUksKLSAgICBmcHJpbnRmKHN0ZG91dCwgIkJFTkNITUFSSzogU3RhcnRpbmcgUE5HIFByZVByb2Nlc3NpbmcgXG4iKTsKLSAgICBsb25nIHN0YXJ0UE5HVGltZSA9IGNsb2NrKCk7Ci0gICAgI2VuZGlmIC8qIEJFTkNITUFSSyAqLwotCi0gICAgU3RyaW5nOCBzb3VyY2UoYnVuZGxlLT5nZXRSZXNvdXJjZVNvdXJjZURpcnMoKVswXSk7Ci0gICAgU3RyaW5nOCBkZXN0KGJ1bmRsZS0+Z2V0Q3J1bmNoZWRPdXRwdXREaXIoKSk7Ci0KLSAgICBGaWxlRmluZGVyKiBmZiA9IG5ldyBTeXN0ZW1GaWxlRmluZGVyKCk7Ci0gICAgQ3J1bmNoQ2FjaGUgY2Moc291cmNlLGRlc3QsZmYpOwotCi0gICAgQ2FjaGVVcGRhdGVyKiBjdSA9IG5ldyBTeXN0ZW1DYWNoZVVwZGF0ZXIoYnVuZGxlKTsKLSAgICBzaXplX3QgbnVtRmlsZXMgPSBjYy5jcnVuY2goY3UpOwotCi0gICAgaWYgKGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKQotICAgICAgICBmcHJpbnRmKHN0ZG91dCwgIkNydW5jaGVkICVkIFBORyBmaWxlcyB0byB1cGRhdGUgY2FjaGVcbiIsIChpbnQpbnVtRmlsZXMpOwotCi0gICAgZGVsZXRlIGZmOwotICAgIGRlbGV0ZSBjdTsKLQotICAgICNpZiBCRU5DSE1BUksKLSAgICBmcHJpbnRmKHN0ZG91dCwgIkJFTkNITUFSSzogRW5kIFBORyBQcmVQcm9jZXNzaW5nLiBUaW1lIEVsYXBzZWQ6ICVmIG1zIFxuIgotICAgICAgICAgICAgLChjbG9jaygpIC0gc3RhcnRQTkdUaW1lKS8xMDAwLjApOwotICAgICNlbmRpZiAvKiBCRU5DSE1BUksgKi8KLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdHVzX3QgYnVpbGRSZXNvdXJjZXMoQnVuZGxlKiBidW5kbGUsIGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMpCi17Ci0gICAgLy8gRmlyc3QsIGxvb2sgZm9yIGEgcGFja2FnZSBmaWxlIHRvIHBhcnNlLiAgVGhpcyBpcyByZXF1aXJlZCB0bwotICAgIC8vIGJlIGFibGUgdG8gZ2VuZXJhdGUgdGhlIHJlc291cmNlIGluZm9ybWF0aW9uLgotICAgIHNwPEFhcHRHcm91cD4gYW5kcm9pZE1hbmlmZXN0RmlsZSA9Ci0gICAgICAgICAgICBhc3NldHMtPmdldEZpbGVzKCkudmFsdWVGb3IoU3RyaW5nOCgiQW5kcm9pZE1hbmlmZXN0LnhtbCIpKTsKLSAgICBpZiAoYW5kcm9pZE1hbmlmZXN0RmlsZSA9PSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIEFuZHJvaWRNYW5pZmVzdC54bWwgZmlsZSBmb3VuZC5cbiIpOwotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0KLSAgICBzdGF0dXNfdCBlcnIgPSBwYXJzZVBhY2thZ2UoYnVuZGxlLCBhc3NldHMsIGFuZHJvaWRNYW5pZmVzdEZpbGUpOwotICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0KLSAgICBOT0lTWShwcmludGYoIkNyZWF0aW5nIHJlc291cmNlcyBmb3IgcGFja2FnZSAlc1xuIiwKLSAgICAgICAgICAgICAgICAgYXNzZXRzLT5nZXRQYWNrYWdlKCkuc3RyaW5nKCkpKTsKLQotICAgIFJlc291cmNlVGFibGUgdGFibGUoYnVuZGxlLCBTdHJpbmcxNihhc3NldHMtPmdldFBhY2thZ2UoKSkpOwotICAgIGVyciA9IHRhYmxlLmFkZEluY2x1ZGVkUmVzb3VyY2VzKGJ1bmRsZSwgYXNzZXRzKTsKLSAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiBlcnI7Ci0gICAgfQotCi0gICAgTk9JU1kocHJpbnRmKCJGb3VuZCAlZCBpbmNsdWRlZCByZXNvdXJjZSBwYWNrYWdlc1xuIiwgKGludCl0YWJsZS5zaXplKCkpKTsKLQotICAgIC8vIFN0YW5kYXJkIGZsYWdzIGZvciBjb21waWxlZCBYTUwgYW5kIG9wdGlvbmFsIFVURi04IGVuY29kaW5nCi0gICAgaW50IHhtbEZsYWdzID0gWE1MX0NPTVBJTEVfU1RBTkRBUkRfUkVTT1VSQ0U7Ci0KLSAgICAvKiBPbmx5IGVuYWJsZSBVVEYtOCBpZiB0aGUgY2FsbGVyIG9mIGFhcHQgZGlkbid0IHNwZWNpZmljYWxseQotICAgICAqIHJlcXVlc3QgVVRGLTE2IGVuY29kaW5nIGFuZCB0aGUgcGFyYW1ldGVycyBvZiB0aGlzIHBhY2thZ2UKLSAgICAgKiBhbGxvdyBVVEYtOCB0byBiZSB1c2VkLgotICAgICAqLwotICAgIGlmICghYnVuZGxlLT5nZXRVVEYxNlN0cmluZ3NPcHRpb24oKSkgewotICAgICAgICB4bWxGbGFncyB8PSBYTUxfQ09NUElMRV9VVEY4OwotICAgIH0KLQotICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgLy8gRmlyc3QsIGdhdGhlciBhbGwgcmVzb3VyY2UgaW5mb3JtYXRpb24uCi0gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgIC8vIHJlc1R5cGUgLT4gbGVhZk5hbWUgLT4gZ3JvdXAKLSAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCBzcDxSZXNvdXJjZVR5cGVTZXQ+ID4gKnJlc291cmNlcyA9Ci0gICAgICAgICAgICBuZXcgS2V5ZWRWZWN0b3I8U3RyaW5nOCwgc3A8UmVzb3VyY2VUeXBlU2V0PiA+OwotICAgIGNvbGxlY3RfZmlsZXMoYXNzZXRzLCByZXNvdXJjZXMpOwotCi0gICAgc3A8UmVzb3VyY2VUeXBlU2V0PiBkcmF3YWJsZXM7Ci0gICAgc3A8UmVzb3VyY2VUeXBlU2V0PiBsYXlvdXRzOwotICAgIHNwPFJlc291cmNlVHlwZVNldD4gYW5pbXM7Ci0gICAgc3A8UmVzb3VyY2VUeXBlU2V0PiBhbmltYXRvcnM7Ci0gICAgc3A8UmVzb3VyY2VUeXBlU2V0PiBpbnRlcnBvbGF0b3JzOwotICAgIHNwPFJlc291cmNlVHlwZVNldD4gdHJhbnNpdGlvbnM7Ci0gICAgc3A8UmVzb3VyY2VUeXBlU2V0PiB4bWxzOwotICAgIHNwPFJlc291cmNlVHlwZVNldD4gcmF3czsKLSAgICBzcDxSZXNvdXJjZVR5cGVTZXQ+IGNvbG9yczsKLSAgICBzcDxSZXNvdXJjZVR5cGVTZXQ+IG1lbnVzOwotICAgIHNwPFJlc291cmNlVHlwZVNldD4gbWlwbWFwczsKLQotICAgIEFTU0lHTl9JVChkcmF3YWJsZSk7Ci0gICAgQVNTSUdOX0lUKGxheW91dCk7Ci0gICAgQVNTSUdOX0lUKGFuaW0pOwotICAgIEFTU0lHTl9JVChhbmltYXRvcik7Ci0gICAgQVNTSUdOX0lUKGludGVycG9sYXRvcik7Ci0gICAgQVNTSUdOX0lUKHRyYW5zaXRpb24pOwotICAgIEFTU0lHTl9JVCh4bWwpOwotICAgIEFTU0lHTl9JVChyYXcpOwotICAgIEFTU0lHTl9JVChjb2xvcik7Ci0gICAgQVNTSUdOX0lUKG1lbnUpOwotICAgIEFTU0lHTl9JVChtaXBtYXApOwotCi0gICAgYXNzZXRzLT5zZXRSZXNvdXJjZXMocmVzb3VyY2VzKTsKLSAgICAvLyBub3cgZ28gdGhyb3VnaCBhbnkgcmVzb3VyY2Ugb3ZlcmxheXMgYW5kIGNvbGxlY3QgdGhlaXIgZmlsZXMKLSAgICBzcDxBYXB0QXNzZXRzPiBjdXJyZW50ID0gYXNzZXRzLT5nZXRPdmVybGF5KCk7Ci0gICAgd2hpbGUoY3VycmVudC5nZXQoKSkgewotICAgICAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCBzcDxSZXNvdXJjZVR5cGVTZXQ+ID4gKnJlc291cmNlcyA9Ci0gICAgICAgICAgICAgICAgbmV3IEtleWVkVmVjdG9yPFN0cmluZzgsIHNwPFJlc291cmNlVHlwZVNldD4gPjsKLSAgICAgICAgY3VycmVudC0+c2V0UmVzb3VyY2VzKHJlc291cmNlcyk7Ci0gICAgICAgIGNvbGxlY3RfZmlsZXMoY3VycmVudCwgcmVzb3VyY2VzKTsKLSAgICAgICAgY3VycmVudCA9IGN1cnJlbnQtPmdldE92ZXJsYXkoKTsKLSAgICB9Ci0gICAgLy8gYXBwbHkgdGhlIG92ZXJsYXkgZmlsZXMgdG8gdGhlIGJhc2Ugc2V0Ci0gICAgaWYgKCFhcHBseUZpbGVPdmVybGF5KGJ1bmRsZSwgYXNzZXRzLCAmZHJhd2FibGVzLCAiZHJhd2FibGUiKSB8fAotICAgICAgICAgICAgIWFwcGx5RmlsZU92ZXJsYXkoYnVuZGxlLCBhc3NldHMsICZsYXlvdXRzLCAibGF5b3V0IikgfHwKLSAgICAgICAgICAgICFhcHBseUZpbGVPdmVybGF5KGJ1bmRsZSwgYXNzZXRzLCAmYW5pbXMsICJhbmltIikgfHwKLSAgICAgICAgICAgICFhcHBseUZpbGVPdmVybGF5KGJ1bmRsZSwgYXNzZXRzLCAmYW5pbWF0b3JzLCAiYW5pbWF0b3IiKSB8fAotICAgICAgICAgICAgIWFwcGx5RmlsZU92ZXJsYXkoYnVuZGxlLCBhc3NldHMsICZpbnRlcnBvbGF0b3JzLCAiaW50ZXJwb2xhdG9yIikgfHwKLSAgICAgICAgICAgICFhcHBseUZpbGVPdmVybGF5KGJ1bmRsZSwgYXNzZXRzLCAmdHJhbnNpdGlvbnMsICJ0cmFuc2l0aW9uIikgfHwKLSAgICAgICAgICAgICFhcHBseUZpbGVPdmVybGF5KGJ1bmRsZSwgYXNzZXRzLCAmeG1scywgInhtbCIpIHx8Ci0gICAgICAgICAgICAhYXBwbHlGaWxlT3ZlcmxheShidW5kbGUsIGFzc2V0cywgJnJhd3MsICJyYXciKSB8fAotICAgICAgICAgICAgIWFwcGx5RmlsZU92ZXJsYXkoYnVuZGxlLCBhc3NldHMsICZjb2xvcnMsICJjb2xvciIpIHx8Ci0gICAgICAgICAgICAhYXBwbHlGaWxlT3ZlcmxheShidW5kbGUsIGFzc2V0cywgJm1lbnVzLCAibWVudSIpIHx8Ci0gICAgICAgICAgICAhYXBwbHlGaWxlT3ZlcmxheShidW5kbGUsIGFzc2V0cywgJm1pcG1hcHMsICJtaXBtYXAiKSkgewotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0KLSAgICBib29sIGhhc0Vycm9ycyA9IGZhbHNlOwotCi0gICAgaWYgKGRyYXdhYmxlcyAhPSBOVUxMKSB7Ci0gICAgICAgIGlmIChidW5kbGUtPmdldE91dHB1dEFQS0ZpbGUoKSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBlcnIgPSBwcmVQcm9jZXNzSW1hZ2VzKGJ1bmRsZSwgYXNzZXRzLCBkcmF3YWJsZXMsICJkcmF3YWJsZSIpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChlcnIgPT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGVyciA9IG1ha2VGaWxlUmVzb3VyY2VzKGJ1bmRsZSwgYXNzZXRzLCAmdGFibGUsIGRyYXdhYmxlcywgImRyYXdhYmxlIik7Ci0gICAgICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAobWlwbWFwcyAhPSBOVUxMKSB7Ci0gICAgICAgIGlmIChidW5kbGUtPmdldE91dHB1dEFQS0ZpbGUoKSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBlcnIgPSBwcmVQcm9jZXNzSW1hZ2VzKGJ1bmRsZSwgYXNzZXRzLCBtaXBtYXBzLCAibWlwbWFwIik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGVyciA9PSBOT19FUlJPUikgewotICAgICAgICAgICAgZXJyID0gbWFrZUZpbGVSZXNvdXJjZXMoYnVuZGxlLCBhc3NldHMsICZ0YWJsZSwgbWlwbWFwcywgIm1pcG1hcCIpOwotICAgICAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGxheW91dHMgIT0gTlVMTCkgewotICAgICAgICBlcnIgPSBtYWtlRmlsZVJlc291cmNlcyhidW5kbGUsIGFzc2V0cywgJnRhYmxlLCBsYXlvdXRzLCAibGF5b3V0Iik7Ci0gICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoYW5pbXMgIT0gTlVMTCkgewotICAgICAgICBlcnIgPSBtYWtlRmlsZVJlc291cmNlcyhidW5kbGUsIGFzc2V0cywgJnRhYmxlLCBhbmltcywgImFuaW0iKTsKLSAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChhbmltYXRvcnMgIT0gTlVMTCkgewotICAgICAgICBlcnIgPSBtYWtlRmlsZVJlc291cmNlcyhidW5kbGUsIGFzc2V0cywgJnRhYmxlLCBhbmltYXRvcnMsICJhbmltYXRvciIpOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHRyYW5zaXRpb25zICE9IE5VTEwpIHsKLSAgICAgICAgZXJyID0gbWFrZUZpbGVSZXNvdXJjZXMoYnVuZGxlLCBhc3NldHMsICZ0YWJsZSwgdHJhbnNpdGlvbnMsICJ0cmFuc2l0aW9uIik7Ci0gICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoaW50ZXJwb2xhdG9ycyAhPSBOVUxMKSB7Ci0gICAgICAgIGVyciA9IG1ha2VGaWxlUmVzb3VyY2VzKGJ1bmRsZSwgYXNzZXRzLCAmdGFibGUsIGludGVycG9sYXRvcnMsICJpbnRlcnBvbGF0b3IiKTsKLSAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICh4bWxzICE9IE5VTEwpIHsKLSAgICAgICAgZXJyID0gbWFrZUZpbGVSZXNvdXJjZXMoYnVuZGxlLCBhc3NldHMsICZ0YWJsZSwgeG1scywgInhtbCIpOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHJhd3MgIT0gTlVMTCkgewotICAgICAgICBlcnIgPSBtYWtlRmlsZVJlc291cmNlcyhidW5kbGUsIGFzc2V0cywgJnRhYmxlLCByYXdzLCAicmF3Iik7Ci0gICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBjb21waWxlIHJlc291cmNlcwotICAgIGN1cnJlbnQgPSBhc3NldHM7Ci0gICAgd2hpbGUoY3VycmVudC5nZXQoKSkgewotICAgICAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCBzcDxSZXNvdXJjZVR5cGVTZXQ+ID4gKnJlc291cmNlcyA9Ci0gICAgICAgICAgICAgICAgY3VycmVudC0+Z2V0UmVzb3VyY2VzKCk7Ci0KLSAgICAgICAgc3NpemVfdCBpbmRleCA9IHJlc291cmNlcy0+aW5kZXhPZktleShTdHJpbmc4KCJ2YWx1ZXMiKSk7Ci0gICAgICAgIGlmIChpbmRleCA+PSAwKSB7Ci0gICAgICAgICAgICBSZXNvdXJjZURpckl0ZXJhdG9yIGl0KHJlc291cmNlcy0+dmFsdWVBdChpbmRleCksIFN0cmluZzgoInZhbHVlcyIpKTsKLSAgICAgICAgICAgIHNzaXplX3QgcmVzOwotICAgICAgICAgICAgd2hpbGUgKChyZXM9aXQubmV4dCgpKSA9PSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIHNwPEFhcHRGaWxlPiBmaWxlID0gaXQuZ2V0RmlsZSgpOwotICAgICAgICAgICAgICAgIHJlcyA9IGNvbXBpbGVSZXNvdXJjZUZpbGUoYnVuZGxlLCBhc3NldHMsIGZpbGUsIGl0LmdldFBhcmFtcygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQhPWFzc2V0cyksICZ0YWJsZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlcyAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBjdXJyZW50ID0gY3VycmVudC0+Z2V0T3ZlcmxheSgpOwotICAgIH0KLQotICAgIGlmIChjb2xvcnMgIT0gTlVMTCkgewotICAgICAgICBlcnIgPSBtYWtlRmlsZVJlc291cmNlcyhidW5kbGUsIGFzc2V0cywgJnRhYmxlLCBjb2xvcnMsICJjb2xvciIpOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKG1lbnVzICE9IE5VTEwpIHsKLSAgICAgICAgZXJyID0gbWFrZUZpbGVSZXNvdXJjZXMoYnVuZGxlLCBhc3NldHMsICZ0YWJsZSwgbWVudXMsICJtZW51Iik7Ci0gICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIC8vIEFzc2lnbm1lbnQgb2YgcmVzb3VyY2UgSURzIGFuZCBpbml0aWFsIGdlbmVyYXRpb24gb2YgcmVzb3VyY2UgdGFibGUuCi0gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgIGlmICh0YWJsZS5oYXNSZXNvdXJjZXMoKSkgewotICAgICAgICBzcDxBYXB0RmlsZT4gcmVzRmlsZShnZXRSZXNvdXJjZUZpbGUoYXNzZXRzKSk7Ci0gICAgICAgIGlmIChyZXNGaWxlID09IE5VTEwpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3I6IHVuYWJsZSB0byBnZW5lcmF0ZSBlbnRyeSBmb3IgcmVzb3VyY2UgZGF0YVxuIik7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotCi0gICAgICAgIGVyciA9IHRhYmxlLmFzc2lnblJlc291cmNlSWRzKCk7Ci0gICAgICAgIGlmIChlcnIgPCBOT19FUlJPUikgewotICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgLy8gRmluYWxseSwgd2UgY2FuIG5vdyB3ZSBjYW4gY29tcGlsZSBYTUwgZmlsZXMsIHdoaWNoIG1heSByZWZlcmVuY2UKLSAgICAvLyByZXNvdXJjZXMuCi0gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgIGlmIChsYXlvdXRzICE9IE5VTEwpIHsKLSAgICAgICAgUmVzb3VyY2VEaXJJdGVyYXRvciBpdChsYXlvdXRzLCBTdHJpbmc4KCJsYXlvdXQiKSk7Ci0gICAgICAgIHdoaWxlICgoZXJyPWl0Lm5leHQoKSkgPT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIFN0cmluZzggc3JjID0gaXQuZ2V0RmlsZSgpLT5nZXRQcmludGFibGVTb3VyY2UoKTsKLSAgICAgICAgICAgIGVyciA9IGNvbXBpbGVYbWxGaWxlKGFzc2V0cywgaXQuZ2V0RmlsZSgpLCAmdGFibGUsIHhtbEZsYWdzKTsKLSAgICAgICAgICAgIGlmIChlcnIgPT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICBSZXNYTUxUcmVlIGJsb2NrOwotICAgICAgICAgICAgICAgIGJsb2NrLnNldFRvKGl0LmdldEZpbGUoKS0+Z2V0RGF0YSgpLCBpdC5nZXRGaWxlKCktPmdldFNpemUoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgY2hlY2tGb3JJZHMoc3JjLCBibG9jayk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZXJyIDwgTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgZXJyID0gTk9fRVJST1I7Ci0gICAgfQotCi0gICAgaWYgKGFuaW1zICE9IE5VTEwpIHsKLSAgICAgICAgUmVzb3VyY2VEaXJJdGVyYXRvciBpdChhbmltcywgU3RyaW5nOCgiYW5pbSIpKTsKLSAgICAgICAgd2hpbGUgKChlcnI9aXQubmV4dCgpKSA9PSBOT19FUlJPUikgewotICAgICAgICAgICAgZXJyID0gY29tcGlsZVhtbEZpbGUoYXNzZXRzLCBpdC5nZXRGaWxlKCksICZ0YWJsZSwgeG1sRmxhZ3MpOwotICAgICAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZXJyIDwgTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgZXJyID0gTk9fRVJST1I7Ci0gICAgfQotCi0gICAgaWYgKGFuaW1hdG9ycyAhPSBOVUxMKSB7Ci0gICAgICAgIFJlc291cmNlRGlySXRlcmF0b3IgaXQoYW5pbWF0b3JzLCBTdHJpbmc4KCJhbmltYXRvciIpKTsKLSAgICAgICAgd2hpbGUgKChlcnI9aXQubmV4dCgpKSA9PSBOT19FUlJPUikgewotICAgICAgICAgICAgZXJyID0gY29tcGlsZVhtbEZpbGUoYXNzZXRzLCBpdC5nZXRGaWxlKCksICZ0YWJsZSwgeG1sRmxhZ3MpOwotICAgICAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZXJyIDwgTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgZXJyID0gTk9fRVJST1I7Ci0gICAgfQotCi0gICAgaWYgKGludGVycG9sYXRvcnMgIT0gTlVMTCkgewotICAgICAgICBSZXNvdXJjZURpckl0ZXJhdG9yIGl0KGludGVycG9sYXRvcnMsIFN0cmluZzgoImludGVycG9sYXRvciIpKTsKLSAgICAgICAgd2hpbGUgKChlcnI9aXQubmV4dCgpKSA9PSBOT19FUlJPUikgewotICAgICAgICAgICAgZXJyID0gY29tcGlsZVhtbEZpbGUoYXNzZXRzLCBpdC5nZXRGaWxlKCksICZ0YWJsZSwgeG1sRmxhZ3MpOwotICAgICAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZXJyIDwgTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgZXJyID0gTk9fRVJST1I7Ci0gICAgfQotCi0gICAgaWYgKHRyYW5zaXRpb25zICE9IE5VTEwpIHsKLSAgICAgICAgUmVzb3VyY2VEaXJJdGVyYXRvciBpdCh0cmFuc2l0aW9ucywgU3RyaW5nOCgidHJhbnNpdGlvbiIpKTsKLSAgICAgICAgd2hpbGUgKChlcnI9aXQubmV4dCgpKSA9PSBOT19FUlJPUikgewotICAgICAgICAgICAgZXJyID0gY29tcGlsZVhtbEZpbGUoYXNzZXRzLCBpdC5nZXRGaWxlKCksICZ0YWJsZSwgeG1sRmxhZ3MpOwotICAgICAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZXJyIDwgTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgZXJyID0gTk9fRVJST1I7Ci0gICAgfQotCi0gICAgaWYgKHhtbHMgIT0gTlVMTCkgewotICAgICAgICBSZXNvdXJjZURpckl0ZXJhdG9yIGl0KHhtbHMsIFN0cmluZzgoInhtbCIpKTsKLSAgICAgICAgd2hpbGUgKChlcnI9aXQubmV4dCgpKSA9PSBOT19FUlJPUikgewotICAgICAgICAgICAgZXJyID0gY29tcGlsZVhtbEZpbGUoYXNzZXRzLCBpdC5nZXRGaWxlKCksICZ0YWJsZSwgeG1sRmxhZ3MpOwotICAgICAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZXJyIDwgTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgZXJyID0gTk9fRVJST1I7Ci0gICAgfQotCi0gICAgaWYgKGRyYXdhYmxlcyAhPSBOVUxMKSB7Ci0gICAgICAgIGVyciA9IHBvc3RQcm9jZXNzSW1hZ2VzKGFzc2V0cywgJnRhYmxlLCBkcmF3YWJsZXMpOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGNvbG9ycyAhPSBOVUxMKSB7Ci0gICAgICAgIFJlc291cmNlRGlySXRlcmF0b3IgaXQoY29sb3JzLCBTdHJpbmc4KCJjb2xvciIpKTsKLSAgICAgICAgd2hpbGUgKChlcnI9aXQubmV4dCgpKSA9PSBOT19FUlJPUikgewotICAgICAgICAgIGVyciA9IGNvbXBpbGVYbWxGaWxlKGFzc2V0cywgaXQuZ2V0RmlsZSgpLCAmdGFibGUsIHhtbEZsYWdzKTsKLSAgICAgICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGVyciA8IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGVyciA9IE5PX0VSUk9SOwotICAgIH0KLQotICAgIGlmIChtZW51cyAhPSBOVUxMKSB7Ci0gICAgICAgIFJlc291cmNlRGlySXRlcmF0b3IgaXQobWVudXMsIFN0cmluZzgoIm1lbnUiKSk7Ci0gICAgICAgIHdoaWxlICgoZXJyPWl0Lm5leHQoKSkgPT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIFN0cmluZzggc3JjID0gaXQuZ2V0RmlsZSgpLT5nZXRQcmludGFibGVTb3VyY2UoKTsKLSAgICAgICAgICAgIGVyciA9IGNvbXBpbGVYbWxGaWxlKGFzc2V0cywgaXQuZ2V0RmlsZSgpLCAmdGFibGUsIHhtbEZsYWdzKTsKLSAgICAgICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgUmVzWE1MVHJlZSBibG9jazsKLSAgICAgICAgICAgIGJsb2NrLnNldFRvKGl0LmdldEZpbGUoKS0+Z2V0RGF0YSgpLCBpdC5nZXRGaWxlKCktPmdldFNpemUoKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBjaGVja0ZvcklkcyhzcmMsIGJsb2NrKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChlcnIgPCBOT19FUlJPUikgewotICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBlcnIgPSBOT19FUlJPUjsKLSAgICB9Ci0KLSAgICBpZiAodGFibGUudmFsaWRhdGVMb2NhbGl6YXRpb25zKCkpIHsKLSAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBpZiAoaGFzRXJyb3JzKSB7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLQotICAgIGNvbnN0IHNwPEFhcHRGaWxlPiBtYW5pZmVzdEZpbGUoYW5kcm9pZE1hbmlmZXN0RmlsZS0+Z2V0RmlsZXMoKS52YWx1ZUF0KDApKTsKLSAgICBTdHJpbmc4IG1hbmlmZXN0UGF0aChtYW5pZmVzdEZpbGUtPmdldFByaW50YWJsZVNvdXJjZSgpKTsKLQotICAgIC8vIEdlbmVyYXRlIGZpbmFsIGNvbXBpbGVkIG1hbmlmZXN0IGZpbGUuCi0gICAgbWFuaWZlc3RGaWxlLT5jbGVhckRhdGEoKTsKLSAgICBzcDxYTUxOb2RlPiBtYW5pZmVzdFRyZWUgPSBYTUxOb2RlOjpwYXJzZShtYW5pZmVzdEZpbGUpOwotICAgIGlmIChtYW5pZmVzdFRyZWUgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0gICAgZXJyID0gbWFzc2FnZU1hbmlmZXN0KGJ1bmRsZSwgbWFuaWZlc3RUcmVlKTsKLSAgICBpZiAoZXJyIDwgTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0gICAgZXJyID0gY29tcGlsZVhtbEZpbGUoYXNzZXRzLCBtYW5pZmVzdFRyZWUsIG1hbmlmZXN0RmlsZSwgJnRhYmxlKTsKLSAgICBpZiAoZXJyIDwgTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0KLSAgICAvL2Jsb2NrLnJlc3RhcnQoKTsKLSAgICAvL3ByaW50WE1MQmxvY2soJmJsb2NrKTsKLQotICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgLy8gR2VuZXJhdGUgdGhlIGZpbmFsIHJlc291cmNlIHRhYmxlLgotICAgIC8vIFJlLWZsYXR0ZW4gYmVjYXVzZSB3ZSBtYXkgaGF2ZSBhZGRlZCBuZXcgcmVzb3VyY2UgSURzCi0gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgIFJlc1RhYmxlIGZpbmFsUmVzVGFibGU7Ci0gICAgc3A8QWFwdEZpbGU+IHJlc0ZpbGU7Ci0KLSAgICBpZiAodGFibGUuaGFzUmVzb3VyY2VzKCkpIHsKLSAgICAgICAgc3A8QWFwdFN5bWJvbHM+IHN5bWJvbHMgPSBhc3NldHMtPmdldFN5bWJvbHNGb3IoU3RyaW5nOCgiUiIpKTsKLSAgICAgICAgZXJyID0gdGFibGUuYWRkU3ltYm9scyhzeW1ib2xzKTsKLSAgICAgICAgaWYgKGVyciA8IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAgICB9Ci0KLSAgICAgICAgcmVzRmlsZSA9IGdldFJlc291cmNlRmlsZShhc3NldHMpOwotICAgICAgICBpZiAocmVzRmlsZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yOiB1bmFibGUgdG8gZ2VuZXJhdGUgZW50cnkgZm9yIHJlc291cmNlIGRhdGFcbiIpOwotICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgIH0KLQotICAgICAgICBlcnIgPSB0YWJsZS5mbGF0dGVuKGJ1bmRsZSwgcmVzRmlsZSk7Ci0gICAgICAgIGlmIChlcnIgPCBOT19FUlJPUikgewotICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChidW5kbGUtPmdldFB1YmxpY091dHB1dEZpbGUoKSkgewotICAgICAgICAgICAgRklMRSogZnAgPSBmb3BlbihidW5kbGUtPmdldFB1YmxpY091dHB1dEZpbGUoKSwgIncrIik7Ci0gICAgICAgICAgICBpZiAoZnAgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IFVuYWJsZSB0byBvcGVuIHB1YmxpYyBkZWZpbml0aW9ucyBvdXRwdXQgZmlsZSAlczogJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciopYnVuZGxlLT5nZXRQdWJsaWNPdXRwdXRGaWxlKCksIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpIHsKLSAgICAgICAgICAgICAgICBwcmludGYoIiAgV3JpdGluZyBwdWJsaWMgZGVmaW5pdGlvbnMgdG8gJXMuXG4iLCBidW5kbGUtPmdldFB1YmxpY091dHB1dEZpbGUoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB0YWJsZS53cml0ZVB1YmxpY0RlZmluaXRpb25zKFN0cmluZzE2KGFzc2V0cy0+Z2V0UGFja2FnZSgpKSwgZnApOwotICAgICAgICAgICAgZmNsb3NlKGZwKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFJlYWQgcmVzb3VyY2VzIGJhY2sgaW4sCi0gICAgICAgIGZpbmFsUmVzVGFibGUuYWRkKHJlc0ZpbGUtPmdldERhdGEoKSwgcmVzRmlsZS0+Z2V0U2l6ZSgpLCBOVUxMKTsKLQotI2lmIDAKLSAgICAgICAgTk9JU1koCi0gICAgICAgICAgICAgIHByaW50ZigiR2VuZXJhdGVkIHJlc291cmNlczpcbiIpOwotICAgICAgICAgICAgICBmaW5hbFJlc1RhYmxlLnByaW50KCk7Ci0gICAgICAgICkKLSNlbmRpZgotICAgIH0KLQotICAgIC8vIFBlcmZvcm0gYSBiYXNpYyB2YWxpZGF0aW9uIG9mIHRoZSBtYW5pZmVzdCBmaWxlLiAgVGhpcyB0aW1lIHdlCi0gICAgLy8gcGFyc2UgaXQgd2l0aCB0aGUgY29tbWVudHMgaW50YWN0LCBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSB0bwotICAgIC8vIGdlbmVyYXRlIGphdmEgZG9jcy4uLiAgc28gd2UgYXJlIG5vdCBnb2luZyB0byB3cml0ZSB0aGlzIG9uZQotICAgIC8vIGJhY2sgb3V0IHRvIHRoZSBmaW5hbCBtYW5pZmVzdCBkYXRhLgotICAgIHNwPEFhcHRGaWxlPiBvdXRNYW5pZmVzdEZpbGUgPSBuZXcgQWFwdEZpbGUobWFuaWZlc3RGaWxlLT5nZXRTb3VyY2VGaWxlKCksCi0gICAgICAgICAgICBtYW5pZmVzdEZpbGUtPmdldEdyb3VwRW50cnkoKSwKLSAgICAgICAgICAgIG1hbmlmZXN0RmlsZS0+Z2V0UmVzb3VyY2VUeXBlKCkpOwotICAgIGVyciA9IGNvbXBpbGVYbWxGaWxlKGFzc2V0cywgbWFuaWZlc3RGaWxlLAotICAgICAgICAgICAgb3V0TWFuaWZlc3RGaWxlLCAmdGFibGUsCi0gICAgICAgICAgICBYTUxfQ09NUElMRV9BU1NJR05fQVRUUklCVVRFX0lEUwotICAgICAgICAgICAgfCBYTUxfQ09NUElMRV9TVFJJUF9XSElURVNQQUNFIHwgWE1MX0NPTVBJTEVfU1RSSVBfUkFXX1ZBTFVFUyk7Ci0gICAgaWYgKGVyciA8IE5PX0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiBlcnI7Ci0gICAgfQotICAgIFJlc1hNTFRyZWUgYmxvY2s7Ci0gICAgYmxvY2suc2V0VG8ob3V0TWFuaWZlc3RGaWxlLT5nZXREYXRhKCksIG91dE1hbmlmZXN0RmlsZS0+Z2V0U2l6ZSgpLCB0cnVlKTsKLSAgICBTdHJpbmcxNiBtYW5pZmVzdDE2KCJtYW5pZmVzdCIpOwotICAgIFN0cmluZzE2IHBlcm1pc3Npb24xNigicGVybWlzc2lvbiIpOwotICAgIFN0cmluZzE2IHBlcm1pc3Npb25fZ3JvdXAxNigicGVybWlzc2lvbi1ncm91cCIpOwotICAgIFN0cmluZzE2IHVzZXNfcGVybWlzc2lvbjE2KCJ1c2VzLXBlcm1pc3Npb24iKTsKLSAgICBTdHJpbmcxNiBpbnN0cnVtZW50YXRpb24xNigiaW5zdHJ1bWVudGF0aW9uIik7Ci0gICAgU3RyaW5nMTYgYXBwbGljYXRpb24xNigiYXBwbGljYXRpb24iKTsKLSAgICBTdHJpbmcxNiBwcm92aWRlcjE2KCJwcm92aWRlciIpOwotICAgIFN0cmluZzE2IHNlcnZpY2UxNigic2VydmljZSIpOwotICAgIFN0cmluZzE2IHJlY2VpdmVyMTYoInJlY2VpdmVyIik7Ci0gICAgU3RyaW5nMTYgYWN0aXZpdHkxNigiYWN0aXZpdHkiKTsKLSAgICBTdHJpbmcxNiBhY3Rpb24xNigiYWN0aW9uIik7Ci0gICAgU3RyaW5nMTYgY2F0ZWdvcnkxNigiY2F0ZWdvcnkiKTsKLSAgICBTdHJpbmcxNiBkYXRhMTYoInNjaGVtZSIpOwotICAgIGNvbnN0IGNoYXIqIHBhY2thZ2VJZGVudENoYXJzID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IgotICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVouXzAxMjM0NTY3ODkiOwotICAgIGNvbnN0IGNoYXIqIHBhY2thZ2VJZGVudENoYXJzV2l0aFRoZVN0dXBpZCA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIKLSAgICAgICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLl8wMTIzNDU2Nzg5LSI7Ci0gICAgY29uc3QgY2hhciogY2xhc3NJZGVudENoYXJzID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IgotICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVouXzAxMjM0NTY3ODkkIjsKLSAgICBjb25zdCBjaGFyKiBwcm9jZXNzSWRlbnRDaGFycyA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIKLSAgICAgICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLl8wMTIzNDU2Nzg5OiI7Ci0gICAgY29uc3QgY2hhciogYXV0aG9yaXRpZXNJZGVudENoYXJzID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IgotICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVouXzAxMjM0NTY3ODktOjsiOwotICAgIGNvbnN0IGNoYXIqIHR5cGVJZGVudENoYXJzID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IgotICAgICAgICAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVouXzAxMjM0NTY3ODk6LS8qKyI7Ci0gICAgY29uc3QgY2hhciogc2NoZW1lSWRlbnRDaGFycyA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIKLSAgICAgICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLl8wMTIzNDU2Nzg5LSI7Ci0gICAgUmVzWE1MVHJlZTo6ZXZlbnRfY29kZV90IGNvZGU7Ci0gICAgc3A8QWFwdFN5bWJvbHM+IHBlcm1pc3Npb25TeW1ib2xzOwotICAgIHNwPEFhcHRTeW1ib2xzPiBwZXJtaXNzaW9uR3JvdXBTeW1ib2xzOwotICAgIHdoaWxlICgoY29kZT1ibG9jay5uZXh0KCkpICE9IFJlc1hNTFRyZWU6OkVORF9ET0NVTUVOVAotICAgICAgICAgICAmJiBjb2RlID4gUmVzWE1MVHJlZTo6QkFEX0RPQ1VNRU5UKSB7Ci0gICAgICAgIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OlNUQVJUX1RBRykgewotICAgICAgICAgICAgc2l6ZV90IGxlbjsKLSAgICAgICAgICAgIGlmIChibG9jay5nZXRFbGVtZW50TmFtZXNwYWNlKCZsZW4pICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgbWFuaWZlc3QxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZUF0dHIobWFuaWZlc3RQYXRoLCBmaW5hbFJlc1RhYmxlLCBibG9jaywgTlVMTCwgInBhY2thZ2UiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZUlkZW50Q2hhcnMsIHRydWUpICE9IEFUVFJfT0tBWSkgewotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGVBdHRyKG1hbmlmZXN0UGF0aCwgZmluYWxSZXNUYWJsZSwgYmxvY2ssIFJFU09VUkNFU19BTkRST0lEX05BTUVTUEFDRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGFyZWRVc2VySWQiLCBwYWNrYWdlSWRlbnRDaGFycywgZmFsc2UpICE9IEFUVFJfT0tBWSkgewotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIHBlcm1pc3Npb24xNi5zdHJpbmcoKSkgPT0gMAotICAgICAgICAgICAgICAgICAgICB8fCBzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgcGVybWlzc2lvbl9ncm91cDE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgYm9vbCBpc0dyb3VwID0gc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksCi0gICAgICAgICAgICAgICAgICAgICAgICBwZXJtaXNzaW9uX2dyb3VwMTYuc3RyaW5nKCkpID09IDA7Ci0gICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlQXR0cihtYW5pZmVzdFBhdGgsIGZpbmFsUmVzVGFibGUsIGJsb2NrLCBSRVNPVVJDRVNfQU5EUk9JRF9OQU1FU1BBQ0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIsIGlzR3JvdXAgPyBwYWNrYWdlSWRlbnRDaGFyc1dpdGhUaGVTdHVwaWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcGFja2FnZUlkZW50Q2hhcnMsIHRydWUpICE9IEFUVFJfT0tBWSkgewotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBTb3VyY2VQb3Mgc3JjUG9zKG1hbmlmZXN0UGF0aCwgYmxvY2suZ2V0TGluZU51bWJlcigpKTsKLSAgICAgICAgICAgICAgICBzcDxBYXB0U3ltYm9scz4gc3ltczsKLSAgICAgICAgICAgICAgICBpZiAoIWlzR3JvdXApIHsKLSAgICAgICAgICAgICAgICAgICAgc3ltcyA9IHBlcm1pc3Npb25TeW1ib2xzOwotICAgICAgICAgICAgICAgICAgICBpZiAoc3ltcyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzcDxBYXB0U3ltYm9scz4gc3ltYm9scyA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0cy0+Z2V0U3ltYm9sc0ZvcihTdHJpbmc4KCJNYW5pZmVzdCIpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN5bXMgPSBwZXJtaXNzaW9uU3ltYm9scyA9IHN5bWJvbHMtPmFkZE5lc3RlZFN5bWJvbCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCgicGVybWlzc2lvbiIpLCBzcmNQb3MpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgc3ltcyA9IHBlcm1pc3Npb25Hcm91cFN5bWJvbHM7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzeW1zID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNwPEFhcHRTeW1ib2xzPiBzeW1ib2xzID0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXRzLT5nZXRTeW1ib2xzRm9yKFN0cmluZzgoIk1hbmlmZXN0IikpOwotICAgICAgICAgICAgICAgICAgICAgICAgc3ltcyA9IHBlcm1pc3Npb25Hcm91cFN5bWJvbHMgPSBzeW1ib2xzLT5hZGROZXN0ZWRTeW1ib2woCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoInBlcm1pc3Npb25fZ3JvdXAiKSwgc3JjUG9zKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzaXplX3QgbGVuOwotICAgICAgICAgICAgICAgIHNzaXplX3QgaW5kZXggPSBibG9jay5pbmRleE9mQXR0cmlidXRlKFJFU09VUkNFU19BTkRST0lEX05BTUVTUEFDRSwgIm5hbWUiKTsKLSAgICAgICAgICAgICAgICBjb25zdCB1aW50MTZfdCogaWQgPSBibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShpbmRleCwgJmxlbik7Ci0gICAgICAgICAgICAgICAgaWYgKGlkID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogbWlzc2luZyBuYW1lIGF0dHJpYnV0ZSBpbiBlbGVtZW50IDwlcz4uXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0UGF0aC5zdHJpbmcoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbikpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFN0cmluZzggaWRTdHIoaWQpOwotICAgICAgICAgICAgICAgIGNoYXIqIHAgPSBpZFN0ci5sb2NrQnVmZmVyKGlkU3RyLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgY2hhciogZSA9IHAgKyBpZFN0ci5zaXplKCk7Ci0gICAgICAgICAgICAgICAgYm9vbCBiZWdpbnNfd2l0aF9kaWdpdCA9IHRydWU7ICAvLyBpbml0IHRvIHRydWUgc28gYW4gZW1wdHkgc3RyaW5nIGZhaWxzCi0gICAgICAgICAgICAgICAgd2hpbGUgKGUgPiBwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGUtLTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCplID49ICcwJyAmJiAqZSA8PSAnOScpIHsKLSAgICAgICAgICAgICAgICAgICAgICBiZWdpbnNfd2l0aF9kaWdpdCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKCgqZSA+PSAnYScgJiYgKmUgPD0gJ3onKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgKCplID49ICdBJyAmJiAqZSA8PSAnWicpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAoKmUgPT0gJ18nKSkgewotICAgICAgICAgICAgICAgICAgICAgIGJlZ2luc193aXRoX2RpZ2l0ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGlzR3JvdXAgJiYgKCplID09ICctJykpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICplID0gJ18nOwotICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW5zX3dpdGhfZGlnaXQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGUrKzsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlkU3RyLnVubG9ja0J1ZmZlcigpOwotICAgICAgICAgICAgICAgIC8vIHZlcmlmeSB0aGF0IHdlIHN0b3BwZWQgYmVjYXVzZSB3ZSBoaXQgYSBwZXJpb2Qgb3IKLSAgICAgICAgICAgICAgICAvLyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcsIGFuZCB0aGF0IHRoZQotICAgICAgICAgICAgICAgIC8vIGlkZW50aWZpZXIgZGlkbid0IGJlZ2luIHdpdGggYSBkaWdpdC4KLSAgICAgICAgICAgICAgICBpZiAoYmVnaW5zX3dpdGhfZGlnaXQgfHwgKGUgIT0gcCAmJiAqKGUtMSkgIT0gJy4nKSkgewotICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIlczolZDogUGVybWlzc2lvbiBuYW1lIDwlcz4gaXMgbm90IGEgdmFsaWQgSmF2YSBzeW1ib2xcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0UGF0aC5zdHJpbmcoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpLCBpZFN0ci5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzeW1zLT5hZGRTdHJpbmdTeW1ib2woU3RyaW5nOChlKSwgaWRTdHIsIHNyY1Bvcyk7Ci0gICAgICAgICAgICAgICAgY29uc3QgdWludDE2X3QqIGNtdCA9IGJsb2NrLmdldENvbW1lbnQoJmxlbik7Ci0gICAgICAgICAgICAgICAgaWYgKGNtdCAhPSBOVUxMICYmICpjbXQgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICAvL3ByaW50ZigiQ29tbWVudCBvZiAlczogJXNcbiIsIFN0cmluZzgoZSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgIC8vICAgICAgICBTdHJpbmc4KGNtdCkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICBzeW1zLT5hcHBlbmRDb21tZW50KFN0cmluZzgoZSksIFN0cmluZzE2KGNtdCksIHNyY1Bvcyk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgLy9wcmludGYoIk5vIGNvbW1lbnQgZm9yICVzXG4iLCBTdHJpbmc4KGUpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc3ltcy0+bWFrZVN5bWJvbFB1YmxpYyhTdHJpbmc4KGUpLCBzcmNQb3MpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgdXNlc19wZXJtaXNzaW9uMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGVBdHRyKG1hbmlmZXN0UGF0aCwgZmluYWxSZXNUYWJsZSwgYmxvY2ssIFJFU09VUkNFU19BTkRST0lEX05BTUVTUEFDRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiwgcGFja2FnZUlkZW50Q2hhcnMsIHRydWUpICE9IEFUVFJfT0tBWSkgewotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIGluc3RydW1lbnRhdGlvbjE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlQXR0cihtYW5pZmVzdFBhdGgsIGZpbmFsUmVzVGFibGUsIGJsb2NrLCBSRVNPVVJDRVNfQU5EUk9JRF9OQU1FU1BBQ0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIsIGNsYXNzSWRlbnRDaGFycywgdHJ1ZSkgIT0gQVRUUl9PS0FZKSB7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZUF0dHIobWFuaWZlc3RQYXRoLCBmaW5hbFJlc1RhYmxlLCBibG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFU09VUkNFU19BTkRST0lEX05BTUVTUEFDRSwgInRhcmdldFBhY2thZ2UiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZUlkZW50Q2hhcnMsIHRydWUpICE9IEFUVFJfT0tBWSkgewotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIGFwcGxpY2F0aW9uMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGVBdHRyKG1hbmlmZXN0UGF0aCwgZmluYWxSZXNUYWJsZSwgYmxvY2ssIFJFU09VUkNFU19BTkRST0lEX05BTUVTUEFDRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiwgY2xhc3NJZGVudENoYXJzLCBmYWxzZSkgIT0gQVRUUl9PS0FZKSB7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZUF0dHIobWFuaWZlc3RQYXRoLCBmaW5hbFJlc1RhYmxlLCBibG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFU09VUkNFU19BTkRST0lEX05BTUVTUEFDRSwgInBlcm1pc3Npb24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZUlkZW50Q2hhcnMsIGZhbHNlKSAhPSBBVFRSX09LQVkpIHsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlQXR0cihtYW5pZmVzdFBhdGgsIGZpbmFsUmVzVGFibGUsIGJsb2NrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVTT1VSQ0VTX0FORFJPSURfTkFNRVNQQUNFLCAicHJvY2VzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzSWRlbnRDaGFycywgZmFsc2UpICE9IEFUVFJfT0tBWSkgewotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGVBdHRyKG1hbmlmZXN0UGF0aCwgZmluYWxSZXNUYWJsZSwgYmxvY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVNPVVJDRVNfQU5EUk9JRF9OQU1FU1BBQ0UsICJ0YXNrQWZmaW5pdHkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0lkZW50Q2hhcnMsIGZhbHNlKSAhPSBBVFRSX09LQVkpIHsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBwcm92aWRlcjE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlQXR0cihtYW5pZmVzdFBhdGgsIGZpbmFsUmVzVGFibGUsIGJsb2NrLCBSRVNPVVJDRVNfQU5EUk9JRF9OQU1FU1BBQ0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIsIGNsYXNzSWRlbnRDaGFycywgdHJ1ZSkgIT0gQVRUUl9PS0FZKSB7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZUF0dHIobWFuaWZlc3RQYXRoLCBmaW5hbFJlc1RhYmxlLCBibG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFU09VUkNFU19BTkRST0lEX05BTUVTUEFDRSwgImF1dGhvcml0aWVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvcml0aWVzSWRlbnRDaGFycywgdHJ1ZSkgIT0gQVRUUl9PS0FZKSB7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZUF0dHIobWFuaWZlc3RQYXRoLCBmaW5hbFJlc1RhYmxlLCBibG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFU09VUkNFU19BTkRST0lEX05BTUVTUEFDRSwgInBlcm1pc3Npb24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZUlkZW50Q2hhcnMsIGZhbHNlKSAhPSBBVFRSX09LQVkpIHsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlQXR0cihtYW5pZmVzdFBhdGgsIGZpbmFsUmVzVGFibGUsIGJsb2NrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVTT1VSQ0VTX0FORFJPSURfTkFNRVNQQUNFLCAicHJvY2VzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzSWRlbnRDaGFycywgZmFsc2UpICE9IEFUVFJfT0tBWSkgewotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIHNlcnZpY2UxNi5zdHJpbmcoKSkgPT0gMAotICAgICAgICAgICAgICAgICAgICAgICB8fCBzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgcmVjZWl2ZXIxNi5zdHJpbmcoKSkgPT0gMAotICAgICAgICAgICAgICAgICAgICAgICB8fCBzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgYWN0aXZpdHkxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZUF0dHIobWFuaWZlc3RQYXRoLCBmaW5hbFJlc1RhYmxlLCBibG9jaywgUkVTT1VSQ0VTX0FORFJPSURfTkFNRVNQQUNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiLCBjbGFzc0lkZW50Q2hhcnMsIHRydWUpICE9IEFUVFJfT0tBWSkgewotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGVBdHRyKG1hbmlmZXN0UGF0aCwgZmluYWxSZXNUYWJsZSwgYmxvY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVNPVVJDRVNfQU5EUk9JRF9OQU1FU1BBQ0UsICJwZXJtaXNzaW9uIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhY2thZ2VJZGVudENoYXJzLCBmYWxzZSkgIT0gQVRUUl9PS0FZKSB7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZUF0dHIobWFuaWZlc3RQYXRoLCBmaW5hbFJlc1RhYmxlLCBibG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFU09VUkNFU19BTkRST0lEX05BTUVTUEFDRSwgInByb2Nlc3MiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0lkZW50Q2hhcnMsIGZhbHNlKSAhPSBBVFRSX09LQVkpIHsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlQXR0cihtYW5pZmVzdFBhdGgsIGZpbmFsUmVzVGFibGUsIGJsb2NrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVTT1VSQ0VTX0FORFJPSURfTkFNRVNQQUNFLCAidGFza0FmZmluaXR5IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NJZGVudENoYXJzLCBmYWxzZSkgIT0gQVRUUl9PS0FZKSB7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgYWN0aW9uMTYuc3RyaW5nKCkpID09IDAKLSAgICAgICAgICAgICAgICAgICAgICAgfHwgc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIGNhdGVnb3J5MTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGVBdHRyKG1hbmlmZXN0UGF0aCwgZmluYWxSZXNUYWJsZSwgYmxvY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVNPVVJDRVNfQU5EUk9JRF9OQU1FU1BBQ0UsICJuYW1lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhY2thZ2VJZGVudENoYXJzLCB0cnVlKSAhPSBBVFRSX09LQVkpIHsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBkYXRhMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGVBdHRyKG1hbmlmZXN0UGF0aCwgZmluYWxSZXNUYWJsZSwgYmxvY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVNPVVJDRVNfQU5EUk9JRF9OQU1FU1BBQ0UsICJtaW1lVHlwZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlSWRlbnRDaGFycywgdHJ1ZSkgIT0gQVRUUl9PS0FZKSB7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZUF0dHIobWFuaWZlc3RQYXRoLCBmaW5hbFJlc1RhYmxlLCBibG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFU09VUkNFU19BTkRST0lEX05BTUVTUEFDRSwgInNjaGVtZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWVJZGVudENoYXJzLCB0cnVlKSAhPSBBVFRSX09LQVkpIHsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAocmVzRmlsZSAhPSBOVUxMKSB7Ci0gICAgICAgIC8vIFRoZXNlIHJlc291cmNlcyBhcmUgbm93IGNvbnNpZGVyZWQgdG8gYmUgYSBwYXJ0IG9mIHRoZSBpbmNsdWRlZAotICAgICAgICAvLyByZXNvdXJjZXMsIGZvciBvdGhlcnMgdG8gcmVmZXJlbmNlLgotICAgICAgICBlcnIgPSBhc3NldHMtPmFkZEluY2x1ZGVkUmVzb3VyY2VzKHJlc0ZpbGUpOwotICAgICAgICBpZiAoZXJyIDwgTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IFVuYWJsZSB0byBwYXJzZSBnZW5lcmF0ZWQgcmVzb3VyY2VzLCBhYm9ydGluZy5cbiIpOwotICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBlcnI7Ci19Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiBnZXRJbmRlbnRTcGFjZShpbnQgaW5kZW50KQotewotc3RhdGljIGNvbnN0IGNoYXIgd2hpdGVzcGFjZVtdID0KLSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOwotCi0gICAgcmV0dXJuIHdoaXRlc3BhY2UgKyBzaXplb2Yod2hpdGVzcGFjZSkgLSAxIC0gaW5kZW50KjQ7Ci19Ci0KLXN0YXRpYyBTdHJpbmc4IGZsYXR0ZW5TeW1ib2woY29uc3QgU3RyaW5nOCYgc3ltYm9sKSB7Ci0gICAgU3RyaW5nOCByZXN1bHQoc3ltYm9sKTsKLSAgICBzc2l6ZV90IGZpcnN0OwotICAgIGlmICgoZmlyc3QgPSBzeW1ib2wuZmluZCgiOiIsIDApKSA+PSAwCi0gICAgICAgICAgICB8fCAoZmlyc3QgPSBzeW1ib2wuZmluZCgiLiIsIDApKSA+PSAwKSB7Ci0gICAgICAgIHNpemVfdCBzaXplID0gc3ltYm9sLnNpemUoKTsKLSAgICAgICAgY2hhciogYnVmID0gcmVzdWx0LmxvY2tCdWZmZXIoc2l6ZSk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSBmaXJzdDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICAgICAgaWYgKGJ1ZltpXSA9PSAnOicgfHwgYnVmW2ldID09ICcuJykgewotICAgICAgICAgICAgICAgIGJ1ZltpXSA9ICdfJzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXN1bHQudW5sb2NrQnVmZmVyKHNpemUpOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgU3RyaW5nOCBnZXRTeW1ib2xQYWNrYWdlKGNvbnN0IFN0cmluZzgmIHN5bWJvbCwgY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzc2V0cywgYm9vbCBwdWIpIHsKLSAgICBzc2l6ZV90IGNvbG9uID0gc3ltYm9sLmZpbmQoIjoiLCAwKTsKLSAgICBpZiAoY29sb24gPj0gMCkgewotICAgICAgICByZXR1cm4gU3RyaW5nOChzeW1ib2wuc3RyaW5nKCksIGNvbG9uKTsKLSAgICB9Ci0gICAgcmV0dXJuIHB1YiA/IGFzc2V0cy0+Z2V0UGFja2FnZSgpIDogYXNzZXRzLT5nZXRTeW1ib2xzUHJpdmF0ZVBhY2thZ2UoKTsKLX0KLQotc3RhdGljIFN0cmluZzggZ2V0U3ltYm9sTmFtZShjb25zdCBTdHJpbmc4JiBzeW1ib2wpIHsKLSAgICBzc2l6ZV90IGNvbG9uID0gc3ltYm9sLmZpbmQoIjoiLCAwKTsKLSAgICBpZiAoY29sb24gPj0gMCkgewotICAgICAgICByZXR1cm4gU3RyaW5nOChzeW1ib2wuc3RyaW5nKCkgKyBjb2xvbiArIDEpOwotICAgIH0KLSAgICByZXR1cm4gc3ltYm9sOwotfQotCi1zdGF0aWMgU3RyaW5nMTYgZ2V0QXR0cmlidXRlQ29tbWVudChjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nOCYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzE2KiBvdXRUeXBlQ29tbWVudCA9IE5VTEwpCi17Ci0gICAgc3A8QWFwdFN5bWJvbHM+IGFzeW0gPSBhc3NldHMtPmdldFN5bWJvbHNGb3IoU3RyaW5nOCgiUiIpKTsKLSAgICBpZiAoYXN5bSAhPSBOVUxMKSB7Ci0gICAgICAgIC8vcHJpbnRmKCJHb3QgUiBzeW1ib2xzIVxuIik7Ci0gICAgICAgIGFzeW0gPSBhc3ltLT5nZXROZXN0ZWRTeW1ib2xzKCkudmFsdWVGb3IoU3RyaW5nOCgiYXR0ciIpKTsKLSAgICAgICAgaWYgKGFzeW0gIT0gTlVMTCkgewotICAgICAgICAgICAgLy9wcmludGYoIkdvdCBhdHRycyBzeW1ib2xzISBjb21tZW50ICVzPSVzXG4iLAotICAgICAgICAgICAgLy8gICAgIG5hbWUuc3RyaW5nKCksIFN0cmluZzgoYXN5bS0+Z2V0Q29tbWVudChuYW1lKSkuc3RyaW5nKCkpOwotICAgICAgICAgICAgaWYgKG91dFR5cGVDb21tZW50ICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAqb3V0VHlwZUNvbW1lbnQgPSBhc3ltLT5nZXRUeXBlQ29tbWVudChuYW1lKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBhc3ltLT5nZXRDb21tZW50KG5hbWUpOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBTdHJpbmcxNigpOwotfQotCi1zdGF0aWMgc3RhdHVzX3Qgd3JpdGVMYXlvdXRDbGFzc2VzKAotICAgIEZJTEUqIGZwLCBjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzLAotICAgIGNvbnN0IHNwPEFhcHRTeW1ib2xzPiYgc3ltYm9scywgaW50IGluZGVudCwgYm9vbCBpbmNsdWRlUHJpdmF0ZSkKLXsKLSAgICBjb25zdCBjaGFyKiBpbmRlbnRTdHIgPSBnZXRJbmRlbnRTcGFjZShpbmRlbnQpOwotICAgIGlmICghaW5jbHVkZVByaXZhdGUpIHsKLSAgICAgICAgZnByaW50ZihmcCwgIiVzLyoqIEBkb2Nvbmx5ICovXG4iLCBpbmRlbnRTdHIpOwotICAgIH0KLSAgICBmcHJpbnRmKGZwLCAiJXNwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIHN0eWxlYWJsZSB7XG4iLCBpbmRlbnRTdHIpOwotICAgIGluZGVudCsrOwotCi0gICAgU3RyaW5nMTYgYXR0cjE2KCJhdHRyIik7Ci0gICAgU3RyaW5nMTYgcGFja2FnZTE2KGFzc2V0cy0+Z2V0UGFja2FnZSgpKTsKLQotICAgIGluZGVudFN0ciA9IGdldEluZGVudFNwYWNlKGluZGVudCk7Ci0gICAgYm9vbCBoYXNFcnJvcnMgPSBmYWxzZTsKLQotICAgIHNpemVfdCBpOwotICAgIHNpemVfdCBOID0gc3ltYm9scy0+Z2V0TmVzdGVkU3ltYm9scygpLnNpemUoKTsKLSAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgc3A8QWFwdFN5bWJvbHM+IG5zeW1ib2xzID0gc3ltYm9scy0+Z2V0TmVzdGVkU3ltYm9scygpLnZhbHVlQXQoaSk7Ci0gICAgICAgIFN0cmluZzggcmVhbENsYXNzTmFtZShzeW1ib2xzLT5nZXROZXN0ZWRTeW1ib2xzKCkua2V5QXQoaSkpOwotICAgICAgICBTdHJpbmc4IG5jbGFzc05hbWUoZmxhdHRlblN5bWJvbChyZWFsQ2xhc3NOYW1lKSk7Ci0KLSAgICAgICAgU29ydGVkVmVjdG9yPHVpbnQzMl90PiBpZGVudHM7Ci0gICAgICAgIFZlY3Rvcjx1aW50MzJfdD4gb3JpZ09yZGVyOwotICAgICAgICBWZWN0b3I8Ym9vbD4gcHVibGljRmxhZ3M7Ci0KLSAgICAgICAgc2l6ZV90IGE7Ci0gICAgICAgIHNpemVfdCBOQSA9IG5zeW1ib2xzLT5nZXRTeW1ib2xzKCkuc2l6ZSgpOwotICAgICAgICBmb3IgKGE9MDsgYTxOQTsgYSsrKSB7Ci0gICAgICAgICAgICBjb25zdCBBYXB0U3ltYm9sRW50cnkmIHN5bShuc3ltYm9scy0+Z2V0U3ltYm9scygpLnZhbHVlQXQoYSkpOwotICAgICAgICAgICAgaW50MzJfdCBjb2RlID0gc3ltLnR5cGVDb2RlID09IEFhcHRTeW1ib2xFbnRyeTo6VFlQRV9JTlQzMgotICAgICAgICAgICAgICAgICAgICA/IHN5bS5pbnQzMlZhbCA6IDA7Ci0gICAgICAgICAgICBib29sIGlzUHVibGljID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChjb2RlID09IDApIHsKLSAgICAgICAgICAgICAgICBTdHJpbmcxNiBuYW1lMTYoc3ltLm5hbWUpOwotICAgICAgICAgICAgICAgIHVpbnQzMl90IHR5cGVTcGVjRmxhZ3M7Ci0gICAgICAgICAgICAgICAgY29kZSA9IGFzc2V0cy0+Z2V0SW5jbHVkZWRSZXNvdXJjZXMoKS5pZGVudGlmaWVyRm9yTmFtZSgKLSAgICAgICAgICAgICAgICAgICAgbmFtZTE2LnN0cmluZygpLCBuYW1lMTYuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICBhdHRyMTYuc3RyaW5nKCksIGF0dHIxNi5zaXplKCksCi0gICAgICAgICAgICAgICAgICAgIHBhY2thZ2UxNi5zdHJpbmcoKSwgcGFja2FnZTE2LnNpemUoKSwgJnR5cGVTcGVjRmxhZ3MpOwotICAgICAgICAgICAgICAgIGlmIChjb2RlID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogSW4gPGRlY2xhcmUtc3R5bGVhYmxlPiAlcywgdW5hYmxlIHRvIGZpbmQgYXR0cmlidXRlICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5jbGFzc05hbWUuc3RyaW5nKCksIHN5bS5uYW1lLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaXNQdWJsaWMgPSAodHlwZVNwZWNGbGFncyZSZXNUYWJsZV90eXBlU3BlYzo6U1BFQ19QVUJMSUMpICE9IDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZGVudHMuYWRkKGNvZGUpOwotICAgICAgICAgICAgb3JpZ09yZGVyLmFkZChjb2RlKTsKLSAgICAgICAgICAgIHB1YmxpY0ZsYWdzLmFkZChpc1B1YmxpYyk7Ci0gICAgICAgIH0KLQotICAgICAgICBOQSA9IGlkZW50cy5zaXplKCk7Ci0KLSAgICAgICAgYm9vbCBkZXByZWNhdGVkID0gZmFsc2U7Ci0KLSAgICAgICAgU3RyaW5nMTYgY29tbWVudCA9IHN5bWJvbHMtPmdldENvbW1lbnQocmVhbENsYXNzTmFtZSk7Ci0gICAgICAgIGZwcmludGYoZnAsICIlcy8qKiAiLCBpbmRlbnRTdHIpOwotICAgICAgICBpZiAoY29tbWVudC5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICBTdHJpbmc4IGNtdChjb21tZW50KTsKLSAgICAgICAgICAgIGZwcmludGYoZnAsICIlc1xuIiwgY210LnN0cmluZygpKTsKLSAgICAgICAgICAgIGlmIChzdHJzdHIoY210LnN0cmluZygpLCAiQGRlcHJlY2F0ZWQiKSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgZGVwcmVjYXRlZCA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmcHJpbnRmKGZwLCAiQXR0cmlidXRlcyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggYSAlcy5cbiIsIG5jbGFzc05hbWUuc3RyaW5nKCkpOwotICAgICAgICB9Ci0gICAgICAgIGJvb2wgaGFzVGFibGUgPSBmYWxzZTsKLSAgICAgICAgZm9yIChhPTA7IGE8TkE7IGErKykgewotICAgICAgICAgICAgc3NpemVfdCBwb3MgPSBpZGVudHMuaW5kZXhPZihvcmlnT3JkZXIuaXRlbUF0KGEpKTsKLSAgICAgICAgICAgIGlmIChwb3MgPj0gMCkgewotICAgICAgICAgICAgICAgIGlmICghaGFzVGFibGUpIHsKLSAgICAgICAgICAgICAgICAgICAgaGFzVGFibGUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKGZwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyAgIDxwPkluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzICAgPHRhYmxlPlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyAgIDxjb2xncm91cCBhbGlnbj1cImxlZnRcIiAvPlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyAgIDxjb2xncm91cCBhbGlnbj1cImxlZnRcIiAvPlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyAgIDx0cj48dGg+QXR0cmlidXRlPC90aD48dGg+RGVzY3JpcHRpb248L3RoPjwvdHI+XG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudFN0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRlbnRTdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZW50U3RyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudFN0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRlbnRTdHIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjb25zdCBBYXB0U3ltYm9sRW50cnkmIHN5bSA9IG5zeW1ib2xzLT5nZXRTeW1ib2xzKCkudmFsdWVBdChhKTsKLSAgICAgICAgICAgICAgICBpZiAoIXB1YmxpY0ZsYWdzLml0ZW1BdChhKSAmJiAhaW5jbHVkZVByaXZhdGUpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFN0cmluZzggbmFtZTgoc3ltLm5hbWUpOwotICAgICAgICAgICAgICAgIFN0cmluZzE2IGNvbW1lbnQoc3ltLmNvbW1lbnQpOwotICAgICAgICAgICAgICAgIGlmIChjb21tZW50LnNpemUoKSA8PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBnZXRBdHRyaWJ1dGVDb21tZW50KGFzc2V0cywgbmFtZTgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoY29tbWVudC5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIxNl90KiBwID0gY29tbWVudC5zdHJpbmcoKTsKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCpwICE9IDAgJiYgKnAgIT0gJy4nKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKnAgPT0gJ3snKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCpwICE9IDAgJiYgKnAgIT0gJ30nKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBpZiAoKnAgPT0gJy4nKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwKys7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgY29tbWVudCA9IFN0cmluZzE2KGNvbW1lbnQuc3RyaW5nKCksIHAtY29tbWVudC5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGZwcmludGYoZnAsICIlcyAgIDx0cj48dGQ+PGNvZGU+e0BsaW5rICMlc18lcyAlczolc308L2NvZGU+PC90ZD48dGQ+JXM8L3RkPjwvdHI+XG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgaW5kZW50U3RyLCBuY2xhc3NOYW1lLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgZmxhdHRlblN5bWJvbChuYW1lOCkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBnZXRTeW1ib2xQYWNrYWdlKG5hbWU4LCBhc3NldHMsIHRydWUpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U3ltYm9sTmFtZShuYW1lOCkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGNvbW1lbnQpLnN0cmluZygpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoaGFzVGFibGUpIHsKLSAgICAgICAgICAgIGZwcmludGYoZnAsICIlcyAgIDwvdGFibGU+XG4iLCBpbmRlbnRTdHIpOwotICAgICAgICB9Ci0gICAgICAgIGZvciAoYT0wOyBhPE5BOyBhKyspIHsKLSAgICAgICAgICAgIHNzaXplX3QgcG9zID0gaWRlbnRzLmluZGV4T2Yob3JpZ09yZGVyLml0ZW1BdChhKSk7Ci0gICAgICAgICAgICBpZiAocG9zID49IDApIHsKLSAgICAgICAgICAgICAgICBjb25zdCBBYXB0U3ltYm9sRW50cnkmIHN5bSA9IG5zeW1ib2xzLT5nZXRTeW1ib2xzKCkudmFsdWVBdChhKTsKLSAgICAgICAgICAgICAgICBpZiAoIXB1YmxpY0ZsYWdzLml0ZW1BdChhKSAmJiAhaW5jbHVkZVByaXZhdGUpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGZwcmludGYoZnAsICIlcyAgIEBzZWUgIyVzXyVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgaW5kZW50U3RyLCBuY2xhc3NOYW1lLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgZmxhdHRlblN5bWJvbChzeW0ubmFtZSkuc3RyaW5nKCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGZwcmludGYoZnAsICIlcyAqL1xuIiwgZ2V0SW5kZW50U3BhY2UoaW5kZW50KSk7Ci0KLSAgICAgICAgaWYgKGRlcHJlY2F0ZWQpIHsKLSAgICAgICAgICAgIGZwcmludGYoZnAsICIlc0BEZXByZWNhdGVkXG4iLCBpbmRlbnRTdHIpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnByaW50ZihmcCwKLSAgICAgICAgICAgICAgICAiJXNwdWJsaWMgc3RhdGljIGZpbmFsIGludFtdICVzID0ge1xuIgotICAgICAgICAgICAgICAgICIlcyIsCi0gICAgICAgICAgICAgICAgaW5kZW50U3RyLCBuY2xhc3NOYW1lLnN0cmluZygpLAotICAgICAgICAgICAgICAgIGdldEluZGVudFNwYWNlKGluZGVudCsxKSk7Ci0KLSAgICAgICAgZm9yIChhPTA7IGE8TkE7IGErKykgewotICAgICAgICAgICAgaWYgKGEgIT0gMCkgewotICAgICAgICAgICAgICAgIGlmICgoYSYzKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoZnAsICIsXG4lcyIsIGdldEluZGVudFNwYWNlKGluZGVudCsxKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZnByaW50ZihmcCwgIiwgIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZnByaW50ZihmcCwgIjB4JTA4eCIsIGlkZW50c1thXSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmcHJpbnRmKGZwLCAiXG4lc307XG4iLCBpbmRlbnRTdHIpOwotCi0gICAgICAgIGZvciAoYT0wOyBhPE5BOyBhKyspIHsKLSAgICAgICAgICAgIHNzaXplX3QgcG9zID0gaWRlbnRzLmluZGV4T2Yob3JpZ09yZGVyLml0ZW1BdChhKSk7Ci0gICAgICAgICAgICBpZiAocG9zID49IDApIHsKLSAgICAgICAgICAgICAgICBjb25zdCBBYXB0U3ltYm9sRW50cnkmIHN5bSA9IG5zeW1ib2xzLT5nZXRTeW1ib2xzKCkudmFsdWVBdChhKTsKLSAgICAgICAgICAgICAgICBpZiAoIXB1YmxpY0ZsYWdzLml0ZW1BdChhKSAmJiAhaW5jbHVkZVByaXZhdGUpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFN0cmluZzggbmFtZTgoc3ltLm5hbWUpOwotICAgICAgICAgICAgICAgIFN0cmluZzE2IGNvbW1lbnQoc3ltLmNvbW1lbnQpOwotICAgICAgICAgICAgICAgIFN0cmluZzE2IHR5cGVDb21tZW50OwotICAgICAgICAgICAgICAgIGlmIChjb21tZW50LnNpemUoKSA8PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBnZXRBdHRyaWJ1dGVDb21tZW50KGFzc2V0cywgbmFtZTgsICZ0eXBlQ29tbWVudCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZ2V0QXR0cmlidXRlQ29tbWVudChhc3NldHMsIG5hbWU4LCAmdHlwZUNvbW1lbnQpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHVpbnQzMl90IHR5cGVTcGVjRmxhZ3MgPSAwOwotICAgICAgICAgICAgICAgIFN0cmluZzE2IG5hbWUxNihzeW0ubmFtZSk7Ci0gICAgICAgICAgICAgICAgYXNzZXRzLT5nZXRJbmNsdWRlZFJlc291cmNlcygpLmlkZW50aWZpZXJGb3JOYW1lKAotICAgICAgICAgICAgICAgICAgICBuYW1lMTYuc3RyaW5nKCksIG5hbWUxNi5zaXplKCksCi0gICAgICAgICAgICAgICAgICAgIGF0dHIxNi5zdHJpbmcoKSwgYXR0cjE2LnNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgcGFja2FnZTE2LnN0cmluZygpLCBwYWNrYWdlMTYuc2l6ZSgpLCAmdHlwZVNwZWNGbGFncyk7Ci0gICAgICAgICAgICAgICAgLy9wcmludGYoIiVzOiVzLyVzOiAweCUwOHhcbiIsIFN0cmluZzgocGFja2FnZTE2KS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAvLyAgICBTdHJpbmc4KGF0dHIxNikuc3RyaW5nKCksIFN0cmluZzgobmFtZTE2KS5zdHJpbmcoKSwgdHlwZVNwZWNGbGFncyk7Ci0gICAgICAgICAgICAgICAgY29uc3QgYm9vbCBwdWIgPSAodHlwZVNwZWNGbGFncyZSZXNUYWJsZV90eXBlU3BlYzo6U1BFQ19QVUJMSUMpICE9IDA7Ci0KLSAgICAgICAgICAgICAgICBib29sIGRlcHJlY2F0ZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgICAgIGZwcmludGYoZnAsICIlcy8qKlxuIiwgaW5kZW50U3RyKTsKLSAgICAgICAgICAgICAgICBpZiAoY29tbWVudC5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZzggY210KGNvbW1lbnQpOwotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKGZwLCAiJXMgIDxwPlxuJXMgIEBhdHRyIGRlc2NyaXB0aW9uXG4iLCBpbmRlbnRTdHIsIGluZGVudFN0cik7Ci0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoZnAsICIlcyAgJXNcbiIsIGluZGVudFN0ciwgY210LnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHN0cnN0cihjbXQuc3RyaW5nKCksICJAZGVwcmVjYXRlZCIpICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZnByaW50ZihmcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgIDxwPlRoaXMgc3ltYm9sIGlzIHRoZSBvZmZzZXQgd2hlcmUgdGhlIHtAbGluayAlcy5SLmF0dHIjJXN9XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzICBhdHRyaWJ1dGUncyB2YWx1ZSBjYW4gYmUgZm91bmQgaW4gdGhlIHtAbGluayAjJXN9IGFycmF5LlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRlbnRTdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0U3ltYm9sUGFja2FnZShuYW1lOCwgYXNzZXRzLCBwdWIpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFN5bWJvbE5hbWUobmFtZTgpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudFN0ciwgbmNsYXNzTmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh0eXBlQ29tbWVudC5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZzggY210KHR5cGVDb21tZW50KTsKLSAgICAgICAgICAgICAgICAgICAgZnByaW50ZihmcCwgIlxuXG4lcyAgJXNcbiIsIGluZGVudFN0ciwgY210LnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHN0cnN0cihjbXQuc3RyaW5nKCksICJAZGVwcmVjYXRlZCIpICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChjb21tZW50LnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHB1YikgewotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihmcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzICA8cD5UaGlzIGNvcnJlc3BvbmRzIHRvIHRoZSBnbG9iYWwgYXR0cmlidXRlXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyAgcmVzb3VyY2Ugc3ltYm9sIHtAbGluayAlcy5SLmF0dHIjJXN9LlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZW50U3RyLCBpbmRlbnRTdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFN5bWJvbFBhY2thZ2UobmFtZTgsIGFzc2V0cywgdHJ1ZSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFN5bWJvbE5hbWUobmFtZTgpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoZnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyAgPHA+VGhpcyBpcyBhIHByaXZhdGUgc3ltYm9sLlxuIiwgaW5kZW50U3RyKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBmcHJpbnRmKGZwLCAiJXMgIEBhdHRyIG5hbWUgJXM6JXNcbiIsIGluZGVudFN0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgIGdldFN5bWJvbFBhY2thZ2UobmFtZTgsIGFzc2V0cywgcHViKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGdldFN5bWJvbE5hbWUobmFtZTgpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKGZwLCAiJXMqL1xuIiwgaW5kZW50U3RyKTsKLSAgICAgICAgICAgICAgICBpZiAoZGVwcmVjYXRlZCkgewotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKGZwLCAiJXNARGVwcmVjYXRlZFxuIiwgaW5kZW50U3RyKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZnByaW50ZihmcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICIlc3B1YmxpYyBzdGF0aWMgZmluYWwgaW50ICVzXyVzID0gJWQ7XG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgaW5kZW50U3RyLCBuY2xhc3NOYW1lLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgZmxhdHRlblN5bWJvbChuYW1lOCkuc3RyaW5nKCksIChpbnQpcG9zKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIGluZGVudC0tOwotICAgIGZwcmludGYoZnAsICIlc307XG4iLCBnZXRJbmRlbnRTcGFjZShpbmRlbnQpKTsKLSAgICByZXR1cm4gaGFzRXJyb3JzID8gVU5LTk9XTl9FUlJPUiA6IE5PX0VSUk9SOwotfQotCi1zdGF0aWMgc3RhdHVzX3Qgd3JpdGVUZXh0TGF5b3V0Q2xhc3NlcygKLSAgICBGSUxFKiBmcCwgY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzc2V0cywKLSAgICBjb25zdCBzcDxBYXB0U3ltYm9scz4mIHN5bWJvbHMsIGJvb2wgaW5jbHVkZVByaXZhdGUpCi17Ci0gICAgU3RyaW5nMTYgYXR0cjE2KCJhdHRyIik7Ci0gICAgU3RyaW5nMTYgcGFja2FnZTE2KGFzc2V0cy0+Z2V0UGFja2FnZSgpKTsKLQotICAgIGJvb2wgaGFzRXJyb3JzID0gZmFsc2U7Ci0KLSAgICBzaXplX3QgaTsKLSAgICBzaXplX3QgTiA9IHN5bWJvbHMtPmdldE5lc3RlZFN5bWJvbHMoKS5zaXplKCk7Ci0gICAgZm9yIChpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIHNwPEFhcHRTeW1ib2xzPiBuc3ltYm9scyA9IHN5bWJvbHMtPmdldE5lc3RlZFN5bWJvbHMoKS52YWx1ZUF0KGkpOwotICAgICAgICBTdHJpbmc4IHJlYWxDbGFzc05hbWUoc3ltYm9scy0+Z2V0TmVzdGVkU3ltYm9scygpLmtleUF0KGkpKTsKLSAgICAgICAgU3RyaW5nOCBuY2xhc3NOYW1lKGZsYXR0ZW5TeW1ib2wocmVhbENsYXNzTmFtZSkpOwotCi0gICAgICAgIFNvcnRlZFZlY3Rvcjx1aW50MzJfdD4gaWRlbnRzOwotICAgICAgICBWZWN0b3I8dWludDMyX3Q+IG9yaWdPcmRlcjsKLSAgICAgICAgVmVjdG9yPGJvb2w+IHB1YmxpY0ZsYWdzOwotCi0gICAgICAgIHNpemVfdCBhOwotICAgICAgICBzaXplX3QgTkEgPSBuc3ltYm9scy0+Z2V0U3ltYm9scygpLnNpemUoKTsKLSAgICAgICAgZm9yIChhPTA7IGE8TkE7IGErKykgewotICAgICAgICAgICAgY29uc3QgQWFwdFN5bWJvbEVudHJ5JiBzeW0obnN5bWJvbHMtPmdldFN5bWJvbHMoKS52YWx1ZUF0KGEpKTsKLSAgICAgICAgICAgIGludDMyX3QgY29kZSA9IHN5bS50eXBlQ29kZSA9PSBBYXB0U3ltYm9sRW50cnk6OlRZUEVfSU5UMzIKLSAgICAgICAgICAgICAgICAgICAgPyBzeW0uaW50MzJWYWwgOiAwOwotICAgICAgICAgICAgYm9vbCBpc1B1YmxpYyA9IHRydWU7Ci0gICAgICAgICAgICBpZiAoY29kZSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nMTYgbmFtZTE2KHN5bS5uYW1lKTsKLSAgICAgICAgICAgICAgICB1aW50MzJfdCB0eXBlU3BlY0ZsYWdzOwotICAgICAgICAgICAgICAgIGNvZGUgPSBhc3NldHMtPmdldEluY2x1ZGVkUmVzb3VyY2VzKCkuaWRlbnRpZmllckZvck5hbWUoCi0gICAgICAgICAgICAgICAgICAgIG5hbWUxNi5zdHJpbmcoKSwgbmFtZTE2LnNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgYXR0cjE2LnN0cmluZygpLCBhdHRyMTYuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICBwYWNrYWdlMTYuc3RyaW5nKCksIHBhY2thZ2UxNi5zaXplKCksICZ0eXBlU3BlY0ZsYWdzKTsKLSAgICAgICAgICAgICAgICBpZiAoY29kZSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IEluIDxkZWNsYXJlLXN0eWxlYWJsZT4gJXMsIHVuYWJsZSB0byBmaW5kIGF0dHJpYnV0ZSAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuY2xhc3NOYW1lLnN0cmluZygpLCBzeW0ubmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlzUHVibGljID0gKHR5cGVTcGVjRmxhZ3MmUmVzVGFibGVfdHlwZVNwZWM6OlNQRUNfUFVCTElDKSAhPSAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWRlbnRzLmFkZChjb2RlKTsKLSAgICAgICAgICAgIG9yaWdPcmRlci5hZGQoY29kZSk7Ci0gICAgICAgICAgICBwdWJsaWNGbGFncy5hZGQoaXNQdWJsaWMpOwotICAgICAgICB9Ci0KLSAgICAgICAgTkEgPSBpZGVudHMuc2l6ZSgpOwotCi0gICAgICAgIGZwcmludGYoZnAsICJpbnRbXSBzdHlsZWFibGUgJXMgeyIsIG5jbGFzc05hbWUuc3RyaW5nKCkpOwotCi0gICAgICAgIGZvciAoYT0wOyBhPE5BOyBhKyspIHsKLSAgICAgICAgICAgIGlmIChhICE9IDApIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKGZwLCAiLCIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZnByaW50ZihmcCwgIiAweCUwOHgiLCBpZGVudHNbYV0pOwotICAgICAgICB9Ci0KLSAgICAgICAgZnByaW50ZihmcCwgIiB9XG4iKTsKLQotICAgICAgICBmb3IgKGE9MDsgYTxOQTsgYSsrKSB7Ci0gICAgICAgICAgICBzc2l6ZV90IHBvcyA9IGlkZW50cy5pbmRleE9mKG9yaWdPcmRlci5pdGVtQXQoYSkpOwotICAgICAgICAgICAgaWYgKHBvcyA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgQWFwdFN5bWJvbEVudHJ5JiBzeW0gPSBuc3ltYm9scy0+Z2V0U3ltYm9scygpLnZhbHVlQXQoYSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFwdWJsaWNGbGFncy5pdGVtQXQoYSkgJiYgIWluY2x1ZGVQcml2YXRlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBTdHJpbmc4IG5hbWU4KHN5bS5uYW1lKTsKLSAgICAgICAgICAgICAgICBTdHJpbmcxNiBjb21tZW50KHN5bS5jb21tZW50KTsKLSAgICAgICAgICAgICAgICBTdHJpbmcxNiB0eXBlQ29tbWVudDsKLSAgICAgICAgICAgICAgICBpZiAoY29tbWVudC5zaXplKCkgPD0gMCkgewotICAgICAgICAgICAgICAgICAgICBjb21tZW50ID0gZ2V0QXR0cmlidXRlQ29tbWVudChhc3NldHMsIG5hbWU4LCAmdHlwZUNvbW1lbnQpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGdldEF0dHJpYnV0ZUNvbW1lbnQoYXNzZXRzLCBuYW1lOCwgJnR5cGVDb21tZW50KTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB1aW50MzJfdCB0eXBlU3BlY0ZsYWdzID0gMDsKLSAgICAgICAgICAgICAgICBTdHJpbmcxNiBuYW1lMTYoc3ltLm5hbWUpOwotICAgICAgICAgICAgICAgIGFzc2V0cy0+Z2V0SW5jbHVkZWRSZXNvdXJjZXMoKS5pZGVudGlmaWVyRm9yTmFtZSgKLSAgICAgICAgICAgICAgICAgICAgbmFtZTE2LnN0cmluZygpLCBuYW1lMTYuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICBhdHRyMTYuc3RyaW5nKCksIGF0dHIxNi5zaXplKCksCi0gICAgICAgICAgICAgICAgICAgIHBhY2thZ2UxNi5zdHJpbmcoKSwgcGFja2FnZTE2LnNpemUoKSwgJnR5cGVTcGVjRmxhZ3MpOwotICAgICAgICAgICAgICAgIC8vcHJpbnRmKCIlczolcy8lczogMHglMDh4XG4iLCBTdHJpbmc4KHBhY2thZ2UxNikuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgLy8gICAgU3RyaW5nOChhdHRyMTYpLnN0cmluZygpLCBTdHJpbmc4KG5hbWUxNikuc3RyaW5nKCksIHR5cGVTcGVjRmxhZ3MpOwotICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgcHViID0gKHR5cGVTcGVjRmxhZ3MmUmVzVGFibGVfdHlwZVNwZWM6OlNQRUNfUFVCTElDKSAhPSAwOwotCi0gICAgICAgICAgICAgICAgZnByaW50ZihmcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJpbnQgc3R5bGVhYmxlICVzXyVzICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgbmNsYXNzTmFtZS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGZsYXR0ZW5TeW1ib2wobmFtZTgpLnN0cmluZygpLCAoaW50KXBvcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gaGFzRXJyb3JzID8gVU5LTk9XTl9FUlJPUiA6IE5PX0VSUk9SOwotfQotCi1zdGF0aWMgc3RhdHVzX3Qgd3JpdGVTeW1ib2xDbGFzcygKLSAgICBGSUxFKiBmcCwgY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzc2V0cywgYm9vbCBpbmNsdWRlUHJpdmF0ZSwKLSAgICBjb25zdCBzcDxBYXB0U3ltYm9scz4mIHN5bWJvbHMsIGNvbnN0IFN0cmluZzgmIGNsYXNzTmFtZSwgaW50IGluZGVudCwKLSAgICBib29sIG5vbkNvbnN0YW50SWQpCi17Ci0gICAgZnByaW50ZihmcCwgIiVzcHVibGljICVzZmluYWwgY2xhc3MgJXMge1xuIiwKLSAgICAgICAgICAgIGdldEluZGVudFNwYWNlKGluZGVudCksCi0gICAgICAgICAgICBpbmRlbnQgIT0gMCA/ICJzdGF0aWMgIiA6ICIiLCBjbGFzc05hbWUuc3RyaW5nKCkpOwotICAgIGluZGVudCsrOwotCi0gICAgc2l6ZV90IGk7Ci0gICAgc3RhdHVzX3QgZXJyID0gTk9fRVJST1I7Ci0KLSAgICBjb25zdCBjaGFyICogaWRfZm9ybWF0ID0gbm9uQ29uc3RhbnRJZCA/Ci0gICAgICAgICAgICAiJXNwdWJsaWMgc3RhdGljIGludCAlcz0weCUwOHg7XG4iIDoKLSAgICAgICAgICAgICIlc3B1YmxpYyBzdGF0aWMgZmluYWwgaW50ICVzPTB4JTA4eDtcbiI7Ci0KLSAgICBzaXplX3QgTiA9IHN5bWJvbHMtPmdldFN5bWJvbHMoKS5zaXplKCk7Ci0gICAgZm9yIChpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IEFhcHRTeW1ib2xFbnRyeSYgc3ltID0gc3ltYm9scy0+Z2V0U3ltYm9scygpLnZhbHVlQXQoaSk7Ci0gICAgICAgIGlmIChzeW0udHlwZUNvZGUgIT0gQWFwdFN5bWJvbEVudHJ5OjpUWVBFX0lOVDMyKSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIWFzc2V0cy0+aXNKYXZhU3ltYm9sKHN5bSwgaW5jbHVkZVByaXZhdGUpKSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBTdHJpbmc4IG5hbWU4KHN5bS5uYW1lKTsKLSAgICAgICAgU3RyaW5nMTYgY29tbWVudChzeW0uY29tbWVudCk7Ci0gICAgICAgIGJvb2wgaGF2ZUNvbW1lbnQgPSBmYWxzZTsKLSAgICAgICAgYm9vbCBkZXByZWNhdGVkID0gZmFsc2U7Ci0gICAgICAgIGlmIChjb21tZW50LnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgIGhhdmVDb21tZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgIFN0cmluZzggY210KGNvbW1lbnQpOwotICAgICAgICAgICAgZnByaW50ZihmcCwKLSAgICAgICAgICAgICAgICAgICAgIiVzLyoqICVzXG4iLAotICAgICAgICAgICAgICAgICAgICBnZXRJbmRlbnRTcGFjZShpbmRlbnQpLCBjbXQuc3RyaW5nKCkpOwotICAgICAgICAgICAgaWYgKHN0cnN0cihjbXQuc3RyaW5nKCksICJAZGVwcmVjYXRlZCIpICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBkZXByZWNhdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChzeW0uaXNQdWJsaWMgJiYgIWluY2x1ZGVQcml2YXRlKSB7Ci0gICAgICAgICAgICBzeW0uc291cmNlUG9zLndhcm5pbmcoIk5vIGNvbW1lbnQgZm9yIHB1YmxpYyBzeW1ib2wgJXM6JXMvJXMiLAotICAgICAgICAgICAgICAgIGFzc2V0cy0+Z2V0UGFja2FnZSgpLnN0cmluZygpLCBjbGFzc05hbWUuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgU3RyaW5nOChzeW0ubmFtZSkuc3RyaW5nKCkpOwotICAgICAgICB9Ci0gICAgICAgIFN0cmluZzE2IHR5cGVDb21tZW50KHN5bS50eXBlQ29tbWVudCk7Ci0gICAgICAgIGlmICh0eXBlQ29tbWVudC5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICBTdHJpbmc4IGNtdCh0eXBlQ29tbWVudCk7Ci0gICAgICAgICAgICBpZiAoIWhhdmVDb21tZW50KSB7Ci0gICAgICAgICAgICAgICAgaGF2ZUNvbW1lbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIGZwcmludGYoZnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAiJXMvKiogJXNcbiIsIGdldEluZGVudFNwYWNlKGluZGVudCksIGNtdC5zdHJpbmcoKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGZwcmludGYoZnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAiJXMgJXNcbiIsIGdldEluZGVudFNwYWNlKGluZGVudCksIGNtdC5zdHJpbmcoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoc3Ryc3RyKGNtdC5zdHJpbmcoKSwgIkBkZXByZWNhdGVkIikgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChoYXZlQ29tbWVudCkgewotICAgICAgICAgICAgZnByaW50ZihmcCwiJXMgKi9cbiIsIGdldEluZGVudFNwYWNlKGluZGVudCkpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChkZXByZWNhdGVkKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKGZwLCAiJXNARGVwcmVjYXRlZFxuIiwgZ2V0SW5kZW50U3BhY2UoaW5kZW50KSk7Ci0gICAgICAgIH0KLSAgICAgICAgZnByaW50ZihmcCwgaWRfZm9ybWF0LAotICAgICAgICAgICAgICAgIGdldEluZGVudFNwYWNlKGluZGVudCksCi0gICAgICAgICAgICAgICAgZmxhdHRlblN5bWJvbChuYW1lOCkuc3RyaW5nKCksIChpbnQpc3ltLmludDMyVmFsKTsKLSAgICB9Ci0KLSAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgY29uc3QgQWFwdFN5bWJvbEVudHJ5JiBzeW0gPSBzeW1ib2xzLT5nZXRTeW1ib2xzKCkudmFsdWVBdChpKTsKLSAgICAgICAgaWYgKHN5bS50eXBlQ29kZSAhPSBBYXB0U3ltYm9sRW50cnk6OlRZUEVfU1RSSU5HKSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIWFzc2V0cy0+aXNKYXZhU3ltYm9sKHN5bSwgaW5jbHVkZVByaXZhdGUpKSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBTdHJpbmc4IG5hbWU4KHN5bS5uYW1lKTsKLSAgICAgICAgU3RyaW5nMTYgY29tbWVudChzeW0uY29tbWVudCk7Ci0gICAgICAgIGJvb2wgZGVwcmVjYXRlZCA9IGZhbHNlOwotICAgICAgICBpZiAoY29tbWVudC5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICBTdHJpbmc4IGNtdChjb21tZW50KTsKLSAgICAgICAgICAgIGZwcmludGYoZnAsCi0gICAgICAgICAgICAgICAgICAgICIlcy8qKiAlc1xuIgotICAgICAgICAgICAgICAgICAgICAgIiVzICovXG4iLAotICAgICAgICAgICAgICAgICAgICBnZXRJbmRlbnRTcGFjZShpbmRlbnQpLCBjbXQuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgIGdldEluZGVudFNwYWNlKGluZGVudCkpOwotICAgICAgICAgICAgaWYgKHN0cnN0cihjbXQuc3RyaW5nKCksICJAZGVwcmVjYXRlZCIpICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBkZXByZWNhdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChzeW0uaXNQdWJsaWMgJiYgIWluY2x1ZGVQcml2YXRlKSB7Ci0gICAgICAgICAgICBzeW0uc291cmNlUG9zLndhcm5pbmcoIk5vIGNvbW1lbnQgZm9yIHB1YmxpYyBzeW1ib2wgJXM6JXMvJXMiLAotICAgICAgICAgICAgICAgIGFzc2V0cy0+Z2V0UGFja2FnZSgpLnN0cmluZygpLCBjbGFzc05hbWUuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgU3RyaW5nOChzeW0ubmFtZSkuc3RyaW5nKCkpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChkZXByZWNhdGVkKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKGZwLCAiJXNARGVwcmVjYXRlZFxuIiwgZ2V0SW5kZW50U3BhY2UoaW5kZW50KSk7Ci0gICAgICAgIH0KLSAgICAgICAgZnByaW50ZihmcCwgIiVzcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgJXM9XCIlc1wiO1xuIiwKLSAgICAgICAgICAgICAgICBnZXRJbmRlbnRTcGFjZShpbmRlbnQpLAotICAgICAgICAgICAgICAgIGZsYXR0ZW5TeW1ib2wobmFtZTgpLnN0cmluZygpLCBzeW0uc3RyaW5nVmFsLnN0cmluZygpKTsKLSAgICB9Ci0KLSAgICBzcDxBYXB0U3ltYm9scz4gc3R5bGVhYmxlU3ltYm9sczsKLQotICAgIE4gPSBzeW1ib2xzLT5nZXROZXN0ZWRTeW1ib2xzKCkuc2l6ZSgpOwotICAgIGZvciAoaT0wOyBpPE47IGkrKykgewotICAgICAgICBzcDxBYXB0U3ltYm9scz4gbnN5bWJvbHMgPSBzeW1ib2xzLT5nZXROZXN0ZWRTeW1ib2xzKCkudmFsdWVBdChpKTsKLSAgICAgICAgU3RyaW5nOCBuY2xhc3NOYW1lKHN5bWJvbHMtPmdldE5lc3RlZFN5bWJvbHMoKS5rZXlBdChpKSk7Ci0gICAgICAgIGlmIChuY2xhc3NOYW1lID09ICJzdHlsZWFibGUiKSB7Ci0gICAgICAgICAgICBzdHlsZWFibGVTeW1ib2xzID0gbnN5bWJvbHM7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlcnIgPSB3cml0ZVN5bWJvbENsYXNzKGZwLCBhc3NldHMsIGluY2x1ZGVQcml2YXRlLCBuc3ltYm9scywgbmNsYXNzTmFtZSwgaW5kZW50LCBub25Db25zdGFudElkKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHN0eWxlYWJsZVN5bWJvbHMgIT0gTlVMTCkgewotICAgICAgICBlcnIgPSB3cml0ZUxheW91dENsYXNzZXMoZnAsIGFzc2V0cywgc3R5bGVhYmxlU3ltYm9scywgaW5kZW50LCBpbmNsdWRlUHJpdmF0ZSk7Ci0gICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIHJldHVybiBlcnI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpbmRlbnQtLTsKLSAgICBmcHJpbnRmKGZwLCAiJXN9XG4iLCBnZXRJbmRlbnRTcGFjZShpbmRlbnQpKTsKLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXRpYyBzdGF0dXNfdCB3cml0ZVRleHRTeW1ib2xDbGFzcygKLSAgICBGSUxFKiBmcCwgY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzc2V0cywgYm9vbCBpbmNsdWRlUHJpdmF0ZSwKLSAgICBjb25zdCBzcDxBYXB0U3ltYm9scz4mIHN5bWJvbHMsIGNvbnN0IFN0cmluZzgmIGNsYXNzTmFtZSkKLXsKLSAgICBzaXplX3QgaTsKLSAgICBzdGF0dXNfdCBlcnIgPSBOT19FUlJPUjsKLQotICAgIHNpemVfdCBOID0gc3ltYm9scy0+Z2V0U3ltYm9scygpLnNpemUoKTsKLSAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgY29uc3QgQWFwdFN5bWJvbEVudHJ5JiBzeW0gPSBzeW1ib2xzLT5nZXRTeW1ib2xzKCkudmFsdWVBdChpKTsKLSAgICAgICAgaWYgKHN5bS50eXBlQ29kZSAhPSBBYXB0U3ltYm9sRW50cnk6OlRZUEVfSU5UMzIpIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFhc3NldHMtPmlzSmF2YVN5bWJvbChzeW0sIGluY2x1ZGVQcml2YXRlKSkgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmc4IG5hbWU4KHN5bS5uYW1lKTsKLSAgICAgICAgZnByaW50ZihmcCwgImludCAlcyAlcyAweCUwOHhcbiIsCi0gICAgICAgICAgICAgICAgY2xhc3NOYW1lLnN0cmluZygpLAotICAgICAgICAgICAgICAgIGZsYXR0ZW5TeW1ib2wobmFtZTgpLnN0cmluZygpLCAoaW50KXN5bS5pbnQzMlZhbCk7Ci0gICAgfQotCi0gICAgTiA9IHN5bWJvbHMtPmdldE5lc3RlZFN5bWJvbHMoKS5zaXplKCk7Ci0gICAgZm9yIChpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIHNwPEFhcHRTeW1ib2xzPiBuc3ltYm9scyA9IHN5bWJvbHMtPmdldE5lc3RlZFN5bWJvbHMoKS52YWx1ZUF0KGkpOwotICAgICAgICBTdHJpbmc4IG5jbGFzc05hbWUoc3ltYm9scy0+Z2V0TmVzdGVkU3ltYm9scygpLmtleUF0KGkpKTsKLSAgICAgICAgaWYgKG5jbGFzc05hbWUgPT0gInN0eWxlYWJsZSIpIHsKLSAgICAgICAgICAgIGVyciA9IHdyaXRlVGV4dExheW91dENsYXNzZXMoZnAsIGFzc2V0cywgbnN5bWJvbHMsIGluY2x1ZGVQcml2YXRlKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVyciA9IHdyaXRlVGV4dFN5bWJvbENsYXNzKGZwLCBhc3NldHMsIGluY2x1ZGVQcml2YXRlLCBuc3ltYm9scywgbmNsYXNzTmFtZSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3RhdHVzX3Qgd3JpdGVSZXNvdXJjZVN5bWJvbHMoQnVuZGxlKiBidW5kbGUsIGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMsCi0gICAgY29uc3QgU3RyaW5nOCYgcGFja2FnZSwgYm9vbCBpbmNsdWRlUHJpdmF0ZSkKLXsKLSAgICBpZiAoIWJ1bmRsZS0+Z2V0UkNsYXNzRGlyKCkpIHsKLSAgICAgICAgcmV0dXJuIE5PX0VSUk9SOwotICAgIH0KLQotICAgIGNvbnN0IGNoYXIqIHRleHRTeW1ib2xzRGVzdCA9IGJ1bmRsZS0+Z2V0T3V0cHV0VGV4dFN5bWJvbHMoKTsKLQotICAgIFN0cmluZzggUigiUiIpOwotICAgIGNvbnN0IHNpemVfdCBOID0gYXNzZXRzLT5nZXRTeW1ib2xzKCkuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgc3A8QWFwdFN5bWJvbHM+IHN5bWJvbHMgPSBhc3NldHMtPmdldFN5bWJvbHMoKS52YWx1ZUF0KGkpOwotICAgICAgICBTdHJpbmc4IGNsYXNzTmFtZShhc3NldHMtPmdldFN5bWJvbHMoKS5rZXlBdChpKSk7Ci0gICAgICAgIFN0cmluZzggZGVzdChidW5kbGUtPmdldFJDbGFzc0RpcigpKTsKLQotICAgICAgICBpZiAoYnVuZGxlLT5nZXRNYWtlUGFja2FnZURpcnMoKSkgewotICAgICAgICAgICAgU3RyaW5nOCBwa2cocGFja2FnZSk7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBsYXN0ID0gcGtnLnN0cmluZygpOwotICAgICAgICAgICAgY29uc3QgY2hhciogcyA9IGxhc3QtMTsKLSAgICAgICAgICAgIGRvIHsKLSAgICAgICAgICAgICAgICBzKys7Ci0gICAgICAgICAgICAgICAgaWYgKHMgPiBsYXN0ICYmICgqcyA9PSAnLicgfHwgKnMgPT0gMCkpIHsKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCBwYXJ0KGxhc3QsIHMtbGFzdCk7Ci0gICAgICAgICAgICAgICAgICAgIGRlc3QuYXBwZW5kUGF0aChwYXJ0KTsKLSNpZmRlZiBIQVZFX01TX0NfUlVOVElNRQotICAgICAgICAgICAgICAgICAgICBfbWtkaXIoZGVzdC5zdHJpbmcoKSk7Ci0jZWxzZQotICAgICAgICAgICAgICAgICAgICBta2RpcihkZXN0LnN0cmluZygpLCBTX0lSVVNSfFNfSVdVU1J8U19JWFVTUnxTX0lSR1JQfFNfSVhHUlApOwotI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgIGxhc3QgPSBzKzE7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSB3aGlsZSAoKnMpOwotICAgICAgICB9Ci0gICAgICAgIGRlc3QuYXBwZW5kUGF0aChjbGFzc05hbWUpOwotICAgICAgICBkZXN0LmFwcGVuZCgiLmphdmEiKTsKLSAgICAgICAgRklMRSogZnAgPSBmb3BlbihkZXN0LnN0cmluZygpLCAidysiKTsKLSAgICAgICAgaWYgKGZwID09IE5VTEwpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IFVuYWJsZSB0byBvcGVuIGNsYXNzIGZpbGUgJXM6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICBkZXN0LnN0cmluZygpLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGJ1bmRsZS0+Z2V0VmVyYm9zZSgpKSB7Ci0gICAgICAgICAgICBwcmludGYoIiAgV3JpdGluZyBzeW1ib2xzIGZvciBjbGFzcyAlcy5cbiIsIGNsYXNzTmFtZS5zdHJpbmcoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBmcHJpbnRmKGZwLAotICAgICAgICAgICAgIi8qIEFVVE8tR0VORVJBVEVEIEZJTEUuICBETyBOT1QgTU9ESUZZLlxuIgotICAgICAgICAgICAgIiAqXG4iCi0gICAgICAgICAgICAiICogVGhpcyBjbGFzcyB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlXG4iCi0gICAgICAgICAgICAiICogYWFwdCB0b29sIGZyb20gdGhlIHJlc291cmNlIGRhdGEgaXQgZm91bmQuICBJdFxuIgotICAgICAgICAgICAgIiAqIHNob3VsZCBub3QgYmUgbW9kaWZpZWQgYnkgaGFuZC5cbiIKLSAgICAgICAgICAgICIgKi9cbiIKLSAgICAgICAgICAgICJcbiIKLSAgICAgICAgICAgICJwYWNrYWdlICVzO1xuXG4iLCBwYWNrYWdlLnN0cmluZygpKTsKLQotICAgICAgICBzdGF0dXNfdCBlcnIgPSB3cml0ZVN5bWJvbENsYXNzKGZwLCBhc3NldHMsIGluY2x1ZGVQcml2YXRlLCBzeW1ib2xzLAotICAgICAgICAgICAgICAgIGNsYXNzTmFtZSwgMCwgYnVuZGxlLT5nZXROb25Db25zdGFudElkKCkpOwotICAgICAgICBmY2xvc2UoZnApOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHRleHRTeW1ib2xzRGVzdCAhPSBOVUxMICYmIFIgPT0gY2xhc3NOYW1lKSB7Ci0gICAgICAgICAgICBTdHJpbmc4IHRleHREZXN0KHRleHRTeW1ib2xzRGVzdCk7Ci0gICAgICAgICAgICB0ZXh0RGVzdC5hcHBlbmRQYXRoKGNsYXNzTmFtZSk7Ci0gICAgICAgICAgICB0ZXh0RGVzdC5hcHBlbmQoIi50eHQiKTsKLQotICAgICAgICAgICAgRklMRSogZnAgPSBmb3Blbih0ZXh0RGVzdC5zdHJpbmcoKSwgIncrIik7Ci0gICAgICAgICAgICBpZiAoZnAgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IFVuYWJsZSB0byBvcGVuIHRleHQgc3ltYm9sIGZpbGUgJXM6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgdGV4dERlc3Quc3RyaW5nKCksIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYnVuZGxlLT5nZXRWZXJib3NlKCkpIHsKLSAgICAgICAgICAgICAgICBwcmludGYoIiAgV3JpdGluZyB0ZXh0IHN5bWJvbHMgZm9yIGNsYXNzICVzLlxuIiwgY2xhc3NOYW1lLnN0cmluZygpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc3RhdHVzX3QgZXJyID0gd3JpdGVUZXh0U3ltYm9sQ2xhc3MoZnAsIGFzc2V0cywgaW5jbHVkZVByaXZhdGUsIHN5bWJvbHMsCi0gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZSk7Ci0gICAgICAgICAgICBmY2xvc2UoZnApOwotICAgICAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIHJldHVybiBlcnI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBJZiB3ZSB3ZXJlIGFza2VkIHRvIGdlbmVyYXRlIGEgZGVwZW5kZW5jeSBmaWxlLCB3ZSdsbCBnbyBhaGVhZCBhbmQgYWRkIHRoaXMgUi5qYXZhCi0gICAgICAgIC8vIGFzIGEgdGFyZ2V0IGluIHRoZSBkZXBlbmRlbmN5IGZpbGUgcmlnaHQgbmV4dCB0byBpdC4KLSAgICAgICAgaWYgKGJ1bmRsZS0+Z2V0R2VuRGVwZW5kZW5jaWVzKCkgJiYgUiA9PSBjbGFzc05hbWUpIHsKLSAgICAgICAgICAgIC8vIEFkZCB0aGlzIFIuamF2YSB0byB0aGUgZGVwZW5kZW5jeSBmaWxlCi0gICAgICAgICAgICBTdHJpbmc4IGRlcGVuZGVuY3lGaWxlKGJ1bmRsZS0+Z2V0UkNsYXNzRGlyKCkpOwotICAgICAgICAgICAgZGVwZW5kZW5jeUZpbGUuYXBwZW5kUGF0aCgiUi5qYXZhLmQiKTsKLQotICAgICAgICAgICAgRklMRSAqZnAgPSBmb3BlbihkZXBlbmRlbmN5RmlsZS5zdHJpbmcoKSwgImEiKTsKLSAgICAgICAgICAgIGZwcmludGYoZnAsIiVzIFxcXG4iLCBkZXN0LnN0cmluZygpKTsKLSAgICAgICAgICAgIGZjbG9zZShmcCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLQotY2xhc3MgUHJvZ3VhcmRLZWVwU2V0Ci17Ci1wdWJsaWM6Ci0gICAgLy8geyBydWxlIC0tPiB7IGZpbGUgbG9jYXRpb25zIH0gfQotICAgIEtleWVkVmVjdG9yPFN0cmluZzgsIFNvcnRlZFZlY3RvcjxTdHJpbmc4PiA+IHJ1bGVzOwotCi0gICAgdm9pZCBhZGQoY29uc3QgU3RyaW5nOCYgcnVsZSwgY29uc3QgU3RyaW5nOCYgd2hlcmUpOwotfTsKLQotdm9pZCBQcm9ndWFyZEtlZXBTZXQ6OmFkZChjb25zdCBTdHJpbmc4JiBydWxlLCBjb25zdCBTdHJpbmc4JiB3aGVyZSkKLXsKLSAgICBzc2l6ZV90IGluZGV4ID0gcnVsZXMuaW5kZXhPZktleShydWxlKTsKLSAgICBpZiAoaW5kZXggPCAwKSB7Ci0gICAgICAgIGluZGV4ID0gcnVsZXMuYWRkKHJ1bGUsIFNvcnRlZFZlY3RvcjxTdHJpbmc4PigpKTsKLSAgICB9Ci0gICAgcnVsZXMuZWRpdFZhbHVlQXQoaW5kZXgpLmFkZCh3aGVyZSk7Ci19Ci0KLXZvaWQKLWFkZFByb2d1YXJkS2VlcFJ1bGUoUHJvZ3VhcmRLZWVwU2V0KiBrZWVwLCBjb25zdCBTdHJpbmc4JiBpbkNsYXNzTmFtZSwKLSAgICAgICAgY29uc3QgY2hhciogcGtnLCBjb25zdCBTdHJpbmc4JiBzcmNOYW1lLCBpbnQgbGluZSkKLXsKLSAgICBTdHJpbmc4IGNsYXNzTmFtZShpbkNsYXNzTmFtZSk7Ci0gICAgaWYgKHBrZyAhPSBOVUxMKSB7Ci0gICAgICAgIC8vIGFzZGYgICAgIC0tPiBwYWNrYWdlLmFzZGYKLSAgICAgICAgLy8gLmFzZGYgIC5hLmIgIC0tPiBwYWNrYWdlLmFzZGYgcGFja2FnZS5hLmIKLSAgICAgICAgLy8gYXNkZi5hZHNmIC0tPiBhc2RmLmFzZGYKLSAgICAgICAgY29uc3QgY2hhciogcCA9IGNsYXNzTmFtZS5zdHJpbmcoKTsKLSAgICAgICAgY29uc3QgY2hhciogcSA9IHN0cmNocihwLCAnLicpOwotICAgICAgICBpZiAocCA9PSBxKSB7Ci0gICAgICAgICAgICBjbGFzc05hbWUgPSBwa2c7Ci0gICAgICAgICAgICBjbGFzc05hbWUuYXBwZW5kKGluQ2xhc3NOYW1lKTsKLSAgICAgICAgfSBlbHNlIGlmIChxID09IE5VTEwpIHsKLSAgICAgICAgICAgIGNsYXNzTmFtZSA9IHBrZzsKLSAgICAgICAgICAgIGNsYXNzTmFtZS5hcHBlbmQoIi4iKTsKLSAgICAgICAgICAgIGNsYXNzTmFtZS5hcHBlbmQoaW5DbGFzc05hbWUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgU3RyaW5nOCBydWxlKCIta2VlcCBjbGFzcyAiKTsKLSAgICBydWxlICs9IGNsYXNzTmFtZTsKLSAgICBydWxlICs9ICIgeyA8aW5pdD4oLi4uKTsgfSI7Ci0KLSAgICBTdHJpbmc4IGxvY2F0aW9uKCJ2aWV3ICIpOwotICAgIGxvY2F0aW9uICs9IHNyY05hbWU7Ci0gICAgY2hhciBsaW5lbm9bMjBdOwotICAgIHNwcmludGYobGluZW5vLCAiOiVkIiwgbGluZSk7Ci0gICAgbG9jYXRpb24gKz0gbGluZW5vOwotCi0gICAga2VlcC0+YWRkKHJ1bGUsIGxvY2F0aW9uKTsKLX0KLQotdm9pZAotYWRkUHJvZ3VhcmRLZWVwTWV0aG9kUnVsZShQcm9ndWFyZEtlZXBTZXQqIGtlZXAsIGNvbnN0IFN0cmluZzgmIG1lbWJlck5hbWUsCi0gICAgICAgIGNvbnN0IGNoYXIqIHBrZywgY29uc3QgU3RyaW5nOCYgc3JjTmFtZSwgaW50IGxpbmUpCi17Ci0gICAgU3RyaW5nOCBydWxlKCIta2VlcGNsYXNzbWVtYmVycyBjbGFzcyAqIHsgKioqICIpOwotICAgIHJ1bGUgKz0gbWVtYmVyTmFtZTsKLSAgICBydWxlICs9ICIoLi4uKTsgfSI7Ci0KLSAgICBTdHJpbmc4IGxvY2F0aW9uKCJvbkNsaWNrICIpOwotICAgIGxvY2F0aW9uICs9IHNyY05hbWU7Ci0gICAgY2hhciBsaW5lbm9bMjBdOwotICAgIHNwcmludGYobGluZW5vLCAiOiVkIiwgbGluZSk7Ci0gICAgbG9jYXRpb24gKz0gbGluZW5vOwotCi0gICAga2VlcC0+YWRkKHJ1bGUsIGxvY2F0aW9uKTsKLX0KLQotc3RhdHVzX3QKLXdyaXRlUHJvZ3VhcmRGb3JBbmRyb2lkTWFuaWZlc3QoUHJvZ3VhcmRLZWVwU2V0KiBrZWVwLCBjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzKQotewotICAgIHN0YXR1c190IGVycjsKLSAgICBSZXNYTUxUcmVlIHRyZWU7Ci0gICAgc2l6ZV90IGxlbjsKLSAgICBSZXNYTUxUcmVlOjpldmVudF9jb2RlX3QgY29kZTsKLSAgICBpbnQgZGVwdGggPSAwOwotICAgIGJvb2wgaW5BcHBsaWNhdGlvbiA9IGZhbHNlOwotICAgIFN0cmluZzggZXJyb3I7Ci0gICAgc3A8QWFwdEdyb3VwPiBhc3NHcm91cDsKLSAgICBzcDxBYXB0RmlsZT4gYXNzRmlsZTsKLSAgICBTdHJpbmc4IHBrZzsKLQotICAgIC8vIEZpcnN0LCBsb29rIGZvciBhIHBhY2thZ2UgZmlsZSB0byBwYXJzZS4gIFRoaXMgaXMgcmVxdWlyZWQgdG8KLSAgICAvLyBiZSBhYmxlIHRvIGdlbmVyYXRlIHRoZSByZXNvdXJjZSBpbmZvcm1hdGlvbi4KLSAgICBhc3NHcm91cCA9IGFzc2V0cy0+Z2V0RmlsZXMoKS52YWx1ZUZvcihTdHJpbmc4KCJBbmRyb2lkTWFuaWZlc3QueG1sIikpOwotICAgIGlmIChhc3NHcm91cCA9PSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE5vIEFuZHJvaWRNYW5pZmVzdC54bWwgZmlsZSBmb3VuZC5cbiIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgaWYgKGFzc0dyb3VwLT5nZXRGaWxlcygpLnNpemUoKSAhPSAxKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAid2FybmluZzogTXVsdGlwbGUgQW5kcm9pZE1hbmlmZXN0LnhtbCBmaWxlcyBmb3VuZCwgdXNpbmcgJXNcbiIsCi0gICAgICAgICAgICAgICAgYXNzR3JvdXAtPmdldEZpbGVzKCkudmFsdWVBdCgwKS0+Z2V0UHJpbnRhYmxlU291cmNlKCkuc3RyaW5nKCkpOwotICAgIH0KLQotICAgIGFzc0ZpbGUgPSBhc3NHcm91cC0+Z2V0RmlsZXMoKS52YWx1ZUF0KDApOwotCi0gICAgZXJyID0gcGFyc2VYTUxSZXNvdXJjZShhc3NGaWxlLCAmdHJlZSk7Ci0gICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLQotICAgIHRyZWUucmVzdGFydCgpOwotCi0gICAgd2hpbGUgKChjb2RlPXRyZWUubmV4dCgpKSAhPSBSZXNYTUxUcmVlOjpFTkRfRE9DVU1FTlQgJiYgY29kZSAhPSBSZXNYTUxUcmVlOjpCQURfRE9DVU1FTlQpIHsKLSAgICAgICAgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6RU5EX1RBRykgewotICAgICAgICAgICAgaWYgKC8qIG5hbWUgPT0gIkFwcGxpY2F0aW9uIiAmJiAqLyBkZXB0aCA9PSAyKSB7Ci0gICAgICAgICAgICAgICAgaW5BcHBsaWNhdGlvbiA9IGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZGVwdGgtLTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChjb2RlICE9IFJlc1hNTFRyZWU6OlNUQVJUX1RBRykgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgZGVwdGgrKzsKLSAgICAgICAgU3RyaW5nOCB0YWcodHJlZS5nZXRFbGVtZW50TmFtZSgmbGVuKSk7Ci0gICAgICAgIC8vIHByaW50ZigiRGVwdGggJWQgdGFnICVzXG4iLCBkZXB0aCwgdGFnLnN0cmluZygpKTsKLSAgICAgICAgYm9vbCBrZWVwVGFnID0gZmFsc2U7Ci0gICAgICAgIGlmIChkZXB0aCA9PSAxKSB7Ci0gICAgICAgICAgICBpZiAodGFnICE9ICJtYW5pZmVzdCIpIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBtYW5pZmVzdCBkb2VzIG5vdCBzdGFydCB3aXRoIDxtYW5pZmVzdD4gdGFnXG4iKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwa2cgPSBnZXRBdHRyaWJ1dGUodHJlZSwgTlVMTCwgInBhY2thZ2UiLCBOVUxMKTsKLSAgICAgICAgfSBlbHNlIGlmIChkZXB0aCA9PSAyKSB7Ci0gICAgICAgICAgICBpZiAodGFnID09ICJhcHBsaWNhdGlvbiIpIHsKLSAgICAgICAgICAgICAgICBpbkFwcGxpY2F0aW9uID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBrZWVwVGFnID0gdHJ1ZTsKLQotICAgICAgICAgICAgICAgIFN0cmluZzggYWdlbnQgPSBnZXRBdHRyaWJ1dGUodHJlZSwgImh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiYmFja3VwQWdlbnQiLCAmZXJyb3IpOwotICAgICAgICAgICAgICAgIGlmIChhZ2VudC5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYWRkUHJvZ3VhcmRLZWVwUnVsZShrZWVwLCBhZ2VudCwgcGtnLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc0ZpbGUtPmdldFByaW50YWJsZVNvdXJjZSgpLCB0cmVlLmdldExpbmVOdW1iZXIoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmICh0YWcgPT0gImluc3RydW1lbnRhdGlvbiIpIHsKLSAgICAgICAgICAgICAgICBrZWVwVGFnID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoIWtlZXBUYWcgJiYgaW5BcHBsaWNhdGlvbiAmJiBkZXB0aCA9PSAzKSB7Ci0gICAgICAgICAgICBpZiAodGFnID09ICJhY3Rpdml0eSIgfHwgdGFnID09ICJzZXJ2aWNlIiB8fCB0YWcgPT0gInJlY2VpdmVyIiB8fCB0YWcgPT0gInByb3ZpZGVyIikgewotICAgICAgICAgICAgICAgIGtlZXBUYWcgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlmIChrZWVwVGFnKSB7Ci0gICAgICAgICAgICBTdHJpbmc4IG5hbWUgPSBnZXRBdHRyaWJ1dGUodHJlZSwgImh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCIsCi0gICAgICAgICAgICAgICAgICAgICJuYW1lIiwgJmVycm9yKTsKLSAgICAgICAgICAgIGlmIChlcnJvciAhPSAiIikgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6ICVzXG4iLCBlcnJvci5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG5hbWUubGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgYWRkUHJvZ3VhcmRLZWVwUnVsZShrZWVwLCBuYW1lLCBwa2cuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBhc3NGaWxlLT5nZXRQcmludGFibGVTb3VyY2UoKSwgdHJlZS5nZXRMaW5lTnVtYmVyKCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi1zdHJ1Y3QgTmFtZXNwYWNlQXR0cmlidXRlUGFpciB7Ci0gICAgY29uc3QgY2hhciogbnM7Ci0gICAgY29uc3QgY2hhciogYXR0cjsKLQotICAgIE5hbWVzcGFjZUF0dHJpYnV0ZVBhaXIoY29uc3QgY2hhciogbiwgY29uc3QgY2hhciogYSkgOiBucyhuKSwgYXR0cihhKSB7fQotICAgIE5hbWVzcGFjZUF0dHJpYnV0ZVBhaXIoKSA6IG5zKE5VTEwpLCBhdHRyKE5VTEwpIHt9Ci19OwotCi1zdGF0dXNfdAotd3JpdGVQcm9ndWFyZEZvclhtbChQcm9ndWFyZEtlZXBTZXQqIGtlZXAsIGNvbnN0IHNwPEFhcHRGaWxlPiYgbGF5b3V0RmlsZSwKLSAgICAgICAgY29uc3QgY2hhciogc3RhcnRUYWcsIGNvbnN0IEtleWVkVmVjdG9yPFN0cmluZzgsIFZlY3RvcjxOYW1lc3BhY2VBdHRyaWJ1dGVQYWlyPiA+KiB0YWdBdHRyUGFpcnMpCi17Ci0gICAgc3RhdHVzX3QgZXJyOwotICAgIFJlc1hNTFRyZWUgdHJlZTsKLSAgICBzaXplX3QgbGVuOwotICAgIFJlc1hNTFRyZWU6OmV2ZW50X2NvZGVfdCBjb2RlOwotCi0gICAgZXJyID0gcGFyc2VYTUxSZXNvdXJjZShsYXlvdXRGaWxlLCAmdHJlZSk7Ci0gICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLQotICAgIHRyZWUucmVzdGFydCgpOwotCi0gICAgaWYgKHN0YXJ0VGFnICE9IE5VTEwpIHsKLSAgICAgICAgYm9vbCBoYXZlU3RhcnQgPSBmYWxzZTsKLSAgICAgICAgd2hpbGUgKChjb2RlPXRyZWUubmV4dCgpKSAhPSBSZXNYTUxUcmVlOjpFTkRfRE9DVU1FTlQgJiYgY29kZSAhPSBSZXNYTUxUcmVlOjpCQURfRE9DVU1FTlQpIHsKLSAgICAgICAgICAgIGlmIChjb2RlICE9IFJlc1hNTFRyZWU6OlNUQVJUX1RBRykgewotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgU3RyaW5nOCB0YWcodHJlZS5nZXRFbGVtZW50TmFtZSgmbGVuKSk7Ci0gICAgICAgICAgICBpZiAodGFnID09IHN0YXJ0VGFnKSB7Ci0gICAgICAgICAgICAgICAgaGF2ZVN0YXJ0ID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGlmICghaGF2ZVN0YXJ0KSB7Ci0gICAgICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB3aGlsZSAoKGNvZGU9dHJlZS5uZXh0KCkpICE9IFJlc1hNTFRyZWU6OkVORF9ET0NVTUVOVCAmJiBjb2RlICE9IFJlc1hNTFRyZWU6OkJBRF9ET0NVTUVOVCkgewotICAgICAgICBpZiAoY29kZSAhPSBSZXNYTUxUcmVlOjpTVEFSVF9UQUcpIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIFN0cmluZzggdGFnKHRyZWUuZ2V0RWxlbWVudE5hbWUoJmxlbikpOwotCi0gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vICcuJywgd2UnbGwgYXNzdW1lIHRoYXQgaXQncyBvbmUgb2YgdGhlIGJ1aWx0IGluIG5hbWVzLgotICAgICAgICBpZiAoc3RyY2hyKHRhZy5zdHJpbmcoKSwgJy4nKSkgewotICAgICAgICAgICAgYWRkUHJvZ3VhcmRLZWVwUnVsZShrZWVwLCB0YWcsIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgIGxheW91dEZpbGUtPmdldFByaW50YWJsZVNvdXJjZSgpLCB0cmVlLmdldExpbmVOdW1iZXIoKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAodGFnQXR0clBhaXJzICE9IE5VTEwpIHsKLSAgICAgICAgICAgIHNzaXplX3QgdGFnSW5kZXggPSB0YWdBdHRyUGFpcnMtPmluZGV4T2ZLZXkodGFnKTsKLSAgICAgICAgICAgIGlmICh0YWdJbmRleCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgVmVjdG9yPE5hbWVzcGFjZUF0dHJpYnV0ZVBhaXI+JiBuc0F0dHJWZWN0b3IgPSB0YWdBdHRyUGFpcnMtPnZhbHVlQXQodGFnSW5kZXgpOwotICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnNBdHRyVmVjdG9yLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0IE5hbWVzcGFjZUF0dHJpYnV0ZVBhaXImIG5zQXR0ciA9IG5zQXR0clZlY3RvcltpXTsKLQotICAgICAgICAgICAgICAgICAgICBzc2l6ZV90IGF0dHJJbmRleCA9IHRyZWUuaW5kZXhPZkF0dHJpYnV0ZShuc0F0dHIubnMsIG5zQXR0ci5hdHRyKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJJbmRleCA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZwcmludGYoc3RkZXJyLCAiJXM6JWQ6IDwlcz4gZG9lcyBub3QgaGF2ZSBhdHRyaWJ1dGUgJXM6JXMuXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgIGxheW91dEZpbGUtPmdldFByaW50YWJsZVNvdXJjZSgpLnN0cmluZygpLCB0cmVlLmdldExpbmVOdW1iZXIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICB0YWcuc3RyaW5nKCksIG5zQXR0ci5ucywgbnNBdHRyLmF0dHIpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFkZFByb2d1YXJkS2VlcFJ1bGUoa2VlcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCh0cmVlLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKGF0dHJJbmRleCwgJmxlbikpLCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRGaWxlLT5nZXRQcmludGFibGVTb3VyY2UoKSwgdHJlZS5nZXRMaW5lTnVtYmVyKCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHNzaXplX3QgYXR0ckluZGV4ID0gdHJlZS5pbmRleE9mQXR0cmlidXRlKFJFU09VUkNFU19BTkRST0lEX05BTUVTUEFDRSwgIm9uQ2xpY2siKTsKLSAgICAgICAgaWYgKGF0dHJJbmRleCA+PSAwKSB7Ci0gICAgICAgICAgICBzaXplX3QgbGVuOwotICAgICAgICAgICAgYWRkUHJvZ3VhcmRLZWVwTWV0aG9kUnVsZShrZWVwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHRyZWUuZ2V0QXR0cmlidXRlU3RyaW5nVmFsdWUoYXR0ckluZGV4LCAmbGVuKSksIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dEZpbGUtPmdldFByaW50YWJsZVNvdXJjZSgpLCB0cmVlLmdldExpbmVOdW1iZXIoKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXRpYyB2b2lkIGFkZFRhZ0F0dHJQYWlyKEtleWVkVmVjdG9yPFN0cmluZzgsIFZlY3RvcjxOYW1lc3BhY2VBdHRyaWJ1dGVQYWlyPiA+KiBkZXN0LAotICAgICAgICBjb25zdCBjaGFyKiB0YWcsIGNvbnN0IGNoYXIqIG5zLCBjb25zdCBjaGFyKiBhdHRyKSB7Ci0gICAgU3RyaW5nOCB0YWdTdHIodGFnKTsKLSAgICBzc2l6ZV90IGluZGV4ID0gZGVzdC0+aW5kZXhPZktleSh0YWdTdHIpOwotCi0gICAgaWYgKGluZGV4IDwgMCkgewotICAgICAgICBWZWN0b3I8TmFtZXNwYWNlQXR0cmlidXRlUGFpcj4gdmVjdG9yOwotICAgICAgICB2ZWN0b3IuYWRkKE5hbWVzcGFjZUF0dHJpYnV0ZVBhaXIobnMsIGF0dHIpKTsKLSAgICAgICAgZGVzdC0+YWRkKHRhZ1N0ciwgdmVjdG9yKTsKLSAgICB9IGVsc2UgewotICAgICAgICBkZXN0LT5lZGl0VmFsdWVBdChpbmRleCkuYWRkKE5hbWVzcGFjZUF0dHJpYnV0ZVBhaXIobnMsIGF0dHIpKTsKLSAgICB9Ci19Ci0KLXN0YXR1c190Ci13cml0ZVByb2d1YXJkRm9yTGF5b3V0cyhQcm9ndWFyZEtlZXBTZXQqIGtlZXAsIGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMpCi17Ci0gICAgc3RhdHVzX3QgZXJyOwotCi0gICAgLy8gdGFnOmF0dHJpYnV0ZSBwYWlycyB0aGF0IHNob3VsZCBiZSBjaGVja2VkIGluIGxheW91dCBmaWxlcy4KLSAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCBWZWN0b3I8TmFtZXNwYWNlQXR0cmlidXRlUGFpcj4gPiBrTGF5b3V0VGFnQXR0clBhaXJzOwotICAgIGFkZFRhZ0F0dHJQYWlyKCZrTGF5b3V0VGFnQXR0clBhaXJzLCAidmlldyIsIE5VTEwsICJjbGFzcyIpOwotICAgIGFkZFRhZ0F0dHJQYWlyKCZrTGF5b3V0VGFnQXR0clBhaXJzLCAiZnJhZ21lbnQiLCBOVUxMLCAiY2xhc3MiKTsKLSAgICBhZGRUYWdBdHRyUGFpcigma0xheW91dFRhZ0F0dHJQYWlycywgImZyYWdtZW50IiwgUkVTT1VSQ0VTX0FORFJPSURfTkFNRVNQQUNFLCAibmFtZSIpOwotCi0gICAgLy8gdGFnOmF0dHJpYnV0ZSBwYWlycyB0aGF0IHNob3VsZCBiZSBjaGVja2VkIGluIHhtbCBmaWxlcy4KLSAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCBWZWN0b3I8TmFtZXNwYWNlQXR0cmlidXRlUGFpcj4gPiBrWG1sVGFnQXR0clBhaXJzOwotICAgIGFkZFRhZ0F0dHJQYWlyKCZrWG1sVGFnQXR0clBhaXJzLCAiUHJlZmVyZW5jZVNjcmVlbiIsIFJFU09VUkNFU19BTkRST0lEX05BTUVTUEFDRSwgImZyYWdtZW50Iik7Ci0gICAgYWRkVGFnQXR0clBhaXIoJmtYbWxUYWdBdHRyUGFpcnMsICJoZWFkZXIiLCBSRVNPVVJDRVNfQU5EUk9JRF9OQU1FU1BBQ0UsICJmcmFnbWVudCIpOwotCi0gICAgY29uc3QgVmVjdG9yPHNwPEFhcHREaXI+ID4mIGRpcnMgPSBhc3NldHMtPnJlc0RpcnMoKTsKLSAgICBjb25zdCBzaXplX3QgSyA9IGRpcnMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGs9MDsgazxLOyBrKyspIHsKLSAgICAgICAgY29uc3Qgc3A8QWFwdERpcj4mIGQgPSBkaXJzLml0ZW1BdChrKTsKLSAgICAgICAgY29uc3QgU3RyaW5nOCYgZGlyTmFtZSA9IGQtPmdldExlYWYoKTsKLSAgICAgICAgY29uc3QgY2hhciogc3RhcnRUYWcgPSBOVUxMOwotICAgICAgICBjb25zdCBLZXllZFZlY3RvcjxTdHJpbmc4LCBWZWN0b3I8TmFtZXNwYWNlQXR0cmlidXRlUGFpcj4gPiogdGFnQXR0clBhaXJzID0gTlVMTDsKLSAgICAgICAgaWYgKChkaXJOYW1lID09IFN0cmluZzgoImxheW91dCIpKSB8fCAoc3RybmNtcChkaXJOYW1lLnN0cmluZygpLCAibGF5b3V0LSIsIDcpID09IDApKSB7Ci0gICAgICAgICAgICB0YWdBdHRyUGFpcnMgPSAma0xheW91dFRhZ0F0dHJQYWlyczsKLSAgICAgICAgfSBlbHNlIGlmICgoZGlyTmFtZSA9PSBTdHJpbmc4KCJ4bWwiKSkgfHwgKHN0cm5jbXAoZGlyTmFtZS5zdHJpbmcoKSwgInhtbC0iLCA0KSA9PSAwKSkgewotICAgICAgICAgICAgc3RhcnRUYWcgPSAiUHJlZmVyZW5jZVNjcmVlbiI7Ci0gICAgICAgICAgICB0YWdBdHRyUGFpcnMgPSAma1htbFRhZ0F0dHJQYWlyczsKLSAgICAgICAgfSBlbHNlIGlmICgoZGlyTmFtZSA9PSBTdHJpbmc4KCJtZW51IikpIHx8IChzdHJuY21wKGRpck5hbWUuc3RyaW5nKCksICJtZW51LSIsIDUpID09IDApKSB7Ci0gICAgICAgICAgICBzdGFydFRhZyA9ICJtZW51IjsKLSAgICAgICAgICAgIHRhZ0F0dHJQYWlycyA9IE5VTEw7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IEtleWVkVmVjdG9yPFN0cmluZzgsc3A8QWFwdEdyb3VwPiA+IGdyb3VwcyA9IGQtPmdldEZpbGVzKCk7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBOID0gZ3JvdXBzLnNpemUoKTsKLSAgICAgICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICAgICAgY29uc3Qgc3A8QWFwdEdyb3VwPiYgZ3JvdXAgPSBncm91cHMudmFsdWVBdChpKTsKLSAgICAgICAgICAgIGNvbnN0IERlZmF1bHRLZXllZFZlY3RvcjxBYXB0R3JvdXBFbnRyeSwgc3A8QWFwdEZpbGU+ID4mIGZpbGVzID0gZ3JvdXAtPmdldEZpbGVzKCk7Ci0gICAgICAgICAgICBjb25zdCBzaXplX3QgTSA9IGZpbGVzLnNpemUoKTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGo9MDsgajxNOyBqKyspIHsKLSAgICAgICAgICAgICAgICBlcnIgPSB3cml0ZVByb2d1YXJkRm9yWG1sKGtlZXAsIGZpbGVzLnZhbHVlQXQoaiksIHN0YXJ0VGFnLCB0YWdBdHRyUGFpcnMpOwotICAgICAgICAgICAgICAgIGlmIChlcnIgPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBlcnI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIC8vIEhhbmRsZSB0aGUgb3ZlcmxheXMKLSAgICBzcDxBYXB0QXNzZXRzPiBvdmVybGF5ID0gYXNzZXRzLT5nZXRPdmVybGF5KCk7Ci0gICAgaWYgKG92ZXJsYXkuZ2V0KCkpIHsKLSAgICAgICAgcmV0dXJuIHdyaXRlUHJvZ3VhcmRGb3JMYXlvdXRzKGtlZXAsIG92ZXJsYXkpOwotICAgIH0KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3RhdHVzX3QKLXdyaXRlUHJvZ3VhcmRGaWxlKEJ1bmRsZSogYnVuZGxlLCBjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzKQotewotICAgIHN0YXR1c190IGVyciA9IC0xOwotCi0gICAgaWYgKCFidW5kbGUtPmdldFByb2d1YXJkRmlsZSgpKSB7Ci0gICAgICAgIHJldHVybiBOT19FUlJPUjsKLSAgICB9Ci0KLSAgICBQcm9ndWFyZEtlZXBTZXQga2VlcDsKLQotICAgIGVyciA9IHdyaXRlUHJvZ3VhcmRGb3JBbmRyb2lkTWFuaWZlc3QoJmtlZXAsIGFzc2V0cyk7Ci0gICAgaWYgKGVyciA8IDApIHsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0KLSAgICBlcnIgPSB3cml0ZVByb2d1YXJkRm9yTGF5b3V0cygma2VlcCwgYXNzZXRzKTsKLSAgICBpZiAoZXJyIDwgMCkgewotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLQotICAgIEZJTEUqIGZwID0gZm9wZW4oYnVuZGxlLT5nZXRQcm9ndWFyZEZpbGUoKSwgIncrIik7Ci0gICAgaWYgKGZwID09IE5VTEwpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogVW5hYmxlIHRvIG9wZW4gY2xhc3MgZmlsZSAlczogJXNcbiIsCi0gICAgICAgICAgICAgICAgYnVuZGxlLT5nZXRQcm9ndWFyZEZpbGUoKSwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotCi0gICAgY29uc3QgS2V5ZWRWZWN0b3I8U3RyaW5nOCwgU29ydGVkVmVjdG9yPFN0cmluZzg+ID4mIHJ1bGVzID0ga2VlcC5ydWxlczsKLSAgICBjb25zdCBzaXplX3QgTiA9IHJ1bGVzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IFNvcnRlZFZlY3RvcjxTdHJpbmc4PiYgbG9jYXRpb25zID0gcnVsZXMudmFsdWVBdChpKTsKLSAgICAgICAgY29uc3Qgc2l6ZV90IE0gPSBsb2NhdGlvbnMuc2l6ZSgpOwotICAgICAgICBmb3IgKHNpemVfdCBqPTA7IGo8TTsgaisrKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKGZwLCAiIyAlc1xuIiwgbG9jYXRpb25zLml0ZW1BdChqKS5zdHJpbmcoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgZnByaW50ZihmcCwgIiVzXG5cbiIsIHJ1bGVzLmtleUF0KGkpLnN0cmluZygpKTsKLSAgICB9Ci0gICAgZmNsb3NlKGZwKTsKLQotICAgIHJldHVybiBlcnI7Ci19Ci0KLS8vIExvb3BzIHRocm91Z2ggdGhlIHN0cmluZyBwYXRocyBhbmQgd3JpdGVzIHRoZW0gdG8gdGhlIGZpbGUgcG9pbnRlcgotLy8gRWFjaCBmaWxlIHBhdGggaXMgd3JpdHRlbiBvbiBpdHMgb3duIGxpbmUgd2l0aCBhIHRlcm1pbmF0aW5nIGJhY2tzbGFzaC4KLXN0YXR1c190IHdyaXRlUGF0aHNUb0ZpbGUoY29uc3Qgc3A8RmlsZVBhdGhTdG9yZT4mIGZpbGVzLCBGSUxFKiBmcCkKLXsKLSAgICBzdGF0dXNfdCBkZXBzID0gLTE7Ci0gICAgZm9yIChzaXplX3QgZmlsZV9pID0gMDsgZmlsZV9pIDwgZmlsZXMtPnNpemUoKTsgKytmaWxlX2kpIHsKLSAgICAgICAgLy8gQWRkIHRoZSBmdWxsIGZpbGUgcGF0aCB0byB0aGUgZGVwZW5kZW5jeSBmaWxlCi0gICAgICAgIGZwcmludGYoZnAsICIlcyBcXFxuIiwgZmlsZXMtPml0ZW1BdChmaWxlX2kpLnN0cmluZygpKTsKLSAgICAgICAgZGVwcysrOwotICAgIH0KLSAgICByZXR1cm4gZGVwczsKLX0KLQotc3RhdHVzX3QKLXdyaXRlRGVwZW5kZW5jeVByZVJlcXMoQnVuZGxlKiBidW5kbGUsIGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMsIEZJTEUqIGZwLCBib29sIGluY2x1ZGVSYXcpCi17Ci0gICAgc3RhdHVzX3QgZGVwcyA9IC0xOwotICAgIGRlcHMgKz0gd3JpdGVQYXRoc1RvRmlsZShhc3NldHMtPmdldEZ1bGxSZXNQYXRocygpLCBmcCk7Ci0gICAgaWYgKGluY2x1ZGVSYXcpIHsKLSAgICAgICAgZGVwcyArPSB3cml0ZVBhdGhzVG9GaWxlKGFzc2V0cy0+Z2V0RnVsbEFzc2V0UGF0aHMoKSwgZnApOwotICAgIH0KLSAgICByZXR1cm4gZGVwczsKLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvUmVzb3VyY2VGaWx0ZXIuY3BwIGIvdG9vbHMvYWFwdC9SZXNvdXJjZUZpbHRlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjZmQyYTUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9SZXNvdXJjZUZpbHRlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMTIgKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0vLyBCdWlsZCByZXNvdXJjZSBmaWxlcyBmcm9tIHJhdyBhc3NldHMuCi0vLwotCi0jaW5jbHVkZSAiUmVzb3VyY2VGaWx0ZXIuaCIKLQotc3RhdHVzX3QKLVJlc291cmNlRmlsdGVyOjpwYXJzZShjb25zdCBjaGFyKiBhcmcpCi17Ci0gICAgaWYgKGFyZyA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGNvbnN0IGNoYXIqIHAgPSBhcmc7Ci0gICAgY29uc3QgY2hhciogcTsKLQotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIHEgPSBzdHJjaHIocCwgJywnKTsKLSAgICAgICAgaWYgKHEgPT0gTlVMTCkgewotICAgICAgICAgICAgcSA9IHAgKyBzdHJsZW4ocCk7Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmc4IHBhcnQocCwgcS1wKTsKLQotICAgICAgICBpZiAocGFydCA9PSAienpfWloiKSB7Ci0gICAgICAgICAgICBtQ29udGFpbnNQc2V1ZG8gPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGludCBheGlzOwotICAgICAgICB1aW50MzJfdCB2YWx1ZTsKLSAgICAgICAgaWYgKEFhcHRHcm91cEVudHJ5OjpwYXJzZU5hbWVQYXJ0KHBhcnQsICZheGlzLCAmdmFsdWUpKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkludmFsaWQgY29uZmlndXJhdGlvbjogJXNcbiIsIGFyZyk7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgICAgICAgICAgICAgICAgICAgICAgIik7Ci0gICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8cC1hcmc7IGkrKykgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiICIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPHEtcDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJeIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotCi0gICAgICAgIHNzaXplX3QgaW5kZXggPSBtRGF0YS5pbmRleE9mS2V5KGF4aXMpOwotICAgICAgICBpZiAoaW5kZXggPCAwKSB7Ci0gICAgICAgICAgICBtRGF0YS5hZGQoYXhpcywgU29ydGVkVmVjdG9yPHVpbnQzMl90PigpKTsKLSAgICAgICAgfQotICAgICAgICBTb3J0ZWRWZWN0b3I8dWludDMyX3Q+JiBzdiA9IG1EYXRhLmVkaXRWYWx1ZUZvcihheGlzKTsKLSAgICAgICAgc3YuYWRkKHZhbHVlKTsKLSAgICAgICAgLy8gaWYgaXQncyBhIGxvY2FsZSB3aXRoIGEgcmVnaW9uLCBhbHNvIG1hdGNoIGFuIHVubW9kaWZpZWQgbG9jYWxlIG9mIHRoZQotICAgICAgICAvLyBzYW1lIGxhbmd1YWdlCi0gICAgICAgIGlmIChheGlzID09IEFYSVNfTEFOR1VBR0UpIHsKLSAgICAgICAgICAgIGlmICh2YWx1ZSAmIDB4ZmZmZjAwMDApIHsKLSAgICAgICAgICAgICAgICBzdi5hZGQodmFsdWUgJiAweDAwMDBmZmZmKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBwID0gcTsKLSAgICAgICAgaWYgKCEqcCkgYnJlYWs7Ci0gICAgICAgIHArKzsKLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLWJvb2wKLVJlc291cmNlRmlsdGVyOjppc0VtcHR5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbURhdGEuc2l6ZSgpID09IDA7Ci19Ci0KLWJvb2wKLVJlc291cmNlRmlsdGVyOjptYXRjaChpbnQgYXhpcywgdWludDMyX3QgdmFsdWUpIGNvbnN0Ci17Ci0gICAgaWYgKHZhbHVlID09IDApIHsKLSAgICAgICAgLy8gdGhleSBkaWRuJ3Qgc3BlY2lmeSBhbnl0aGluZyBzbyB0YWtlIGV2ZXJ5dGhpbmcKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHNzaXplX3QgaW5kZXggPSBtRGF0YS5pbmRleE9mS2V5KGF4aXMpOwotICAgIGlmIChpbmRleCA8IDApIHsKLSAgICAgICAgLy8gd2UgZGlkbid0IHJlcXVlc3QgYW55dGhpbmcgb24gdGhpcyBheGlzIHNvIHRha2UgZXZlcnl0aGluZwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgY29uc3QgU29ydGVkVmVjdG9yPHVpbnQzMl90PiYgc3YgPSBtRGF0YS52YWx1ZUF0KGluZGV4KTsKLSAgICByZXR1cm4gc3YuaW5kZXhPZih2YWx1ZSkgPj0gMDsKLX0KLQotYm9vbAotUmVzb3VyY2VGaWx0ZXI6Om1hdGNoKGludCBheGlzLCBjb25zdCBSZXNUYWJsZV9jb25maWcmIGNvbmZpZykgY29uc3QKLXsKLSAgICByZXR1cm4gbWF0Y2goYXhpcywgQWFwdEdyb3VwRW50cnk6OmdldENvbmZpZ1ZhbHVlRm9yQXhpcyhjb25maWcsIGF4aXMpKTsKLX0KLQotYm9vbAotUmVzb3VyY2VGaWx0ZXI6Om1hdGNoKGNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgY29uZmlnKSBjb25zdAotewotICAgIGZvciAoaW50IGk9QVhJU19TVEFSVDsgaTw9QVhJU19FTkQ7IGkrKykgewotICAgICAgICBpZiAoIW1hdGNoKGksIEFhcHRHcm91cEVudHJ5OjpnZXRDb25maWdWYWx1ZUZvckF4aXMoY29uZmlnLCBpKSkpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotY29uc3QgU29ydGVkVmVjdG9yPHVpbnQzMl90PiogUmVzb3VyY2VGaWx0ZXI6OmNvbmZpZ3NGb3JBeGlzKGludCBheGlzKSBjb25zdAotewotICAgIHNzaXplX3QgaW5kZXggPSBtRGF0YS5pbmRleE9mS2V5KGF4aXMpOwotICAgIGlmIChpbmRleCA8IDApIHsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIHJldHVybiAmbURhdGEudmFsdWVBdChpbmRleCk7Ci19CmRpZmYgLS1naXQgYS90b29scy9hYXB0L1Jlc291cmNlRmlsdGVyLmggYi90b29scy9hYXB0L1Jlc291cmNlRmlsdGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0N2I3YmIuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9SZXNvdXJjZUZpbHRlci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0vLyBCdWlsZCByZXNvdXJjZSBmaWxlcyBmcm9tIHJhdyBhc3NldHMuCi0vLwotCi0jaWZuZGVmIFJFU09VUkNFX0ZJTFRFUl9ICi0jZGVmaW5lIFJFU09VUkNFX0ZJTFRFUl9ICi0KLSNpbmNsdWRlICJBYXB0QXNzZXRzLmgiCi0KLS8qKgotICogSW1wbGVtZW50cyBsb2dpYyBmb3IgcGFyc2luZyBhbmQgaGFuZGxpbmcgIi1jIiBhbmQgIi0tcHJlZmVycmVkLWNvbmZpZ3VyYXRpb25zIgotICogb3B0aW9ucy4KLSAqLwotY2xhc3MgUmVzb3VyY2VGaWx0ZXIKLXsKLXB1YmxpYzoKLSAgICBSZXNvdXJjZUZpbHRlcigpIDogbURhdGEoKSwgbUNvbnRhaW5zUHNldWRvKGZhbHNlKSB7fQotICAgIHN0YXR1c190IHBhcnNlKGNvbnN0IGNoYXIqIGFyZyk7Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7Ci0gICAgYm9vbCBtYXRjaChpbnQgYXhpcywgdWludDMyX3QgdmFsdWUpIGNvbnN0OwotICAgIGJvb2wgbWF0Y2goaW50IGF4aXMsIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgY29uZmlnKSBjb25zdDsKLSAgICBib29sIG1hdGNoKGNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgY29uZmlnKSBjb25zdDsKLSAgICBjb25zdCBTb3J0ZWRWZWN0b3I8dWludDMyX3Q+KiBjb25maWdzRm9yQXhpcyhpbnQgYXhpcykgY29uc3Q7Ci0gICAgaW5saW5lIGJvb2wgY29udGFpbnNQc2V1ZG8oKSBjb25zdCB7IHJldHVybiBtQ29udGFpbnNQc2V1ZG87IH0KLQotcHJpdmF0ZToKLSAgICBLZXllZFZlY3RvcjxpbnQsU29ydGVkVmVjdG9yPHVpbnQzMl90PiA+IG1EYXRhOwotICAgIGJvb2wgbUNvbnRhaW5zUHNldWRvOwotfTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS90b29scy9hYXB0L1Jlc291cmNlSWRDYWNoZS5jcHAgYi90b29scy9hYXB0L1Jlc291cmNlSWRDYWNoZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwM2Y0ZjYuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9SZXNvdXJjZUlkQ2FjaGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTA3ICswLDAgQEAKLS8vCi0vLyBDb3B5cmlnaHQgMjAxMiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0vLwotLy8gTWFuYWdlIGEgcmVzb3VyY2UgSUQgY2FjaGUuCi0KLSNkZWZpbmUgTE9HX1RBRyAiUmVzb3VyY2VJZENhY2hlIgotCi0jaW5jbHVkZSA8dXRpbHMvU3RyaW5nMTYuaD4KLSNpbmNsdWRlIDx1dGlscy9Mb2cuaD4KLSNpbmNsdWRlICJSZXNvdXJjZUlkQ2FjaGUuaCIKLSNpbmNsdWRlIDxtYXA+Ci11c2luZyBuYW1lc3BhY2Ugc3RkOwotCi0KLXN0YXRpYyBzaXplX3QgbUhpdHMgPSAwOwotc3RhdGljIHNpemVfdCBtTWlzc2VzID0gMDsKLXN0YXRpYyBzaXplX3QgbUNvbGxpc2lvbnMgPSAwOwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IE1BWF9DQUNIRV9FTlRSSUVTID0gMjA0ODsKLXN0YXRpYyBjb25zdCBhbmRyb2lkOjpTdHJpbmcxNiBUUlVFMTYoIjEiKTsKLXN0YXRpYyBjb25zdCBhbmRyb2lkOjpTdHJpbmcxNiBGQUxTRTE2KCIwIik7Ci0KLXN0cnVjdCBDYWNoZUVudHJ5IHsKLSAgICAvLyBjb25jYXRlbmF0aW9uIG9mIHRoZSByZWxldmFudCBzdHJpbmdzIGludG8gYSBzaW5nbGUgaW5zdGFuY2UKLSAgICBhbmRyb2lkOjpTdHJpbmcxNiBoYXNoZWROYW1lOwotICAgIHVpbnQzMl90IGlkOwotCi0gICAgQ2FjaGVFbnRyeSgpIHt9Ci0gICAgQ2FjaGVFbnRyeShjb25zdCBhbmRyb2lkOjpTdHJpbmcxNiYgbmFtZSwgdWludDMyX3QgcmVzSWQpIDogaGFzaGVkTmFtZShuYW1lKSwgaWQocmVzSWQpIHsgfQotfTsKLQotc3RhdGljIG1hcDwgdWludDMyX3QsIENhY2hlRW50cnkgPiBtSWRNYXA7Ci0KLQotLy8gZGpiMjsgcmVhc29uYWJsZSBjaG9pY2UgZm9yIHN0cmluZ3Mgd2hlbiBjb2xsaXNpb25zIGFyZW4ndCBwYXJ0aWN1bGFybHkgaW1wb3J0YW50Ci1zdGF0aWMgaW5saW5lIHVpbnQzMl90IGhhc2hyb3VuZCh1aW50MzJfdCBoYXNoLCBpbnQgYykgewotICAgIHJldHVybiAoKGhhc2ggPDwgNSkgKyBoYXNoKSArIGM7ICAgIC8qIGhhc2ggKiAzMyArIGMgKi8KLX0KLQotc3RhdGljIHVpbnQzMl90IGhhc2goY29uc3QgYW5kcm9pZDo6U3RyaW5nMTYmIGhhc2hhYmxlU3RyaW5nKSB7Ci0gICAgdWludDMyX3QgaGFzaCA9IDUzODE7Ci0gICAgY29uc3QgY2hhcjE2X3QqIHN0ciA9IGhhc2hhYmxlU3RyaW5nLnN0cmluZygpOwotICAgIHdoaWxlIChpbnQgYyA9ICpzdHIrKykgaGFzaCA9IGhhc2hyb3VuZChoYXNoLCBjKTsKLSAgICByZXR1cm4gaGFzaDsKLX0KLQotbmFtZXNwYWNlIGFuZHJvaWQgewotCi1zdGF0aWMgaW5saW5lIFN0cmluZzE2IG1ha2VIYXNoYWJsZU5hbWUoY29uc3QgYW5kcm9pZDo6U3RyaW5nMTYmIHBhY2thZ2UsCi0gICAgICAgIGNvbnN0IGFuZHJvaWQ6OlN0cmluZzE2JiB0eXBlLAotICAgICAgICBjb25zdCBhbmRyb2lkOjpTdHJpbmcxNiYgbmFtZSwKLSAgICAgICAgYm9vbCBvbmx5UHVibGljKSB7Ci0gICAgU3RyaW5nMTYgaGFzaGFibGUgPSBTdHJpbmcxNihuYW1lKTsKLSAgICBoYXNoYWJsZSArPSB0eXBlOwotICAgIGhhc2hhYmxlICs9IHBhY2thZ2U7Ci0gICAgaGFzaGFibGUgKz0gKG9ubHlQdWJsaWMgPyBUUlVFMTYgOiBGQUxTRTE2KTsKLSAgICByZXR1cm4gaGFzaGFibGU7Ci19Ci0KLXVpbnQzMl90IFJlc291cmNlSWRDYWNoZTo6bG9va3VwKGNvbnN0IGFuZHJvaWQ6OlN0cmluZzE2JiBwYWNrYWdlLAotICAgICAgICBjb25zdCBhbmRyb2lkOjpTdHJpbmcxNiYgdHlwZSwKLSAgICAgICAgY29uc3QgYW5kcm9pZDo6U3RyaW5nMTYmIG5hbWUsCi0gICAgICAgIGJvb2wgb25seVB1YmxpYykgewotICAgIGNvbnN0IFN0cmluZzE2IGhhc2hlZE5hbWUgPSBtYWtlSGFzaGFibGVOYW1lKHBhY2thZ2UsIHR5cGUsIG5hbWUsIG9ubHlQdWJsaWMpOwotICAgIGNvbnN0IHVpbnQzMl90IGhhc2hjb2RlID0gaGFzaChoYXNoZWROYW1lKTsKLSAgICBtYXA8dWludDMyX3QsIENhY2hlRW50cnk+OjppdGVyYXRvciBpdGVtID0gbUlkTWFwLmZpbmQoaGFzaGNvZGUpOwotICAgIGlmIChpdGVtID09IG1JZE1hcC5lbmQoKSkgewotICAgICAgICAvLyBjYWNoZSBtaXNzCi0gICAgICAgIG1NaXNzZXMrKzsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLy8gbGVnaXQgbWF0Y2g/Ci0gICAgaWYgKGhhc2hlZE5hbWUgPT0gKCppdGVtKS5zZWNvbmQuaGFzaGVkTmFtZSkgewotICAgICAgICBtSGl0cysrOwotICAgICAgICByZXR1cm4gKCppdGVtKS5zZWNvbmQuaWQ7Ci0gICAgfQotCi0gICAgLy8gY29sbGlzaW9uCi0gICAgbUNvbGxpc2lvbnMrKzsKLSAgICBtSWRNYXAuZXJhc2UoaGFzaGNvZGUpOwotICAgIHJldHVybiAwOwotfQotCi0vLyByZXR1cm5zIHRoZSByZXNvdXJjZSBJRCBiZWluZyBzdG9yZWQsIGZvciBjYWxsc2l0ZSBjb252ZW5pZW5jZQotdWludDMyX3QgUmVzb3VyY2VJZENhY2hlOjpzdG9yZShjb25zdCBhbmRyb2lkOjpTdHJpbmcxNiYgcGFja2FnZSwKLSAgICAgICAgY29uc3QgYW5kcm9pZDo6U3RyaW5nMTYmIHR5cGUsCi0gICAgICAgIGNvbnN0IGFuZHJvaWQ6OlN0cmluZzE2JiBuYW1lLAotICAgICAgICBib29sIG9ubHlQdWJsaWMsCi0gICAgICAgIHVpbnQzMl90IHJlc0lkKSB7Ci0gICAgaWYgKG1JZE1hcC5zaXplKCkgPCBNQVhfQ0FDSEVfRU5UUklFUykgewotICAgICAgICBjb25zdCBTdHJpbmcxNiBoYXNoZWROYW1lID0gbWFrZUhhc2hhYmxlTmFtZShwYWNrYWdlLCB0eXBlLCBuYW1lLCBvbmx5UHVibGljKTsKLSAgICAgICAgY29uc3QgdWludDMyX3QgaGFzaGNvZGUgPSBoYXNoKGhhc2hlZE5hbWUpOwotICAgICAgICBtSWRNYXBbaGFzaGNvZGVdID0gQ2FjaGVFbnRyeShoYXNoZWROYW1lLCByZXNJZCk7Ci0gICAgfQotICAgIHJldHVybiByZXNJZDsKLX0KLQotdm9pZCBSZXNvdXJjZUlkQ2FjaGU6OmR1bXAoKSB7Ci0gICAgcHJpbnRmKCJSZXNvdXJjZUlkQ2FjaGUgZHVtcDpcbiIpOwotICAgIHByaW50ZigiU2l6ZTogJWxkXG4iLCBtSWRNYXAuc2l6ZSgpKTsKLSAgICBwcmludGYoIkhpdHM6ICAgJWxkXG4iLCBtSGl0cyk7Ci0gICAgcHJpbnRmKCJNaXNzZXM6ICVsZFxuIiwgbU1pc3Nlcyk7Ci0gICAgcHJpbnRmKCIoQ29sbGlzaW9uczogJWxkKVxuIiwgbUNvbGxpc2lvbnMpOwotfQotCi19CmRpZmYgLS1naXQgYS90b29scy9hYXB0L1Jlc291cmNlSWRDYWNoZS5oIGIvdG9vbHMvYWFwdC9SZXNvdXJjZUlkQ2FjaGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjVmNzc4MS4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L1Jlc291cmNlSWRDYWNoZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDEyIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0vLyBNYW5hZ2UgYSByZXNvdXJjZSBJRCBjYWNoZS4KLQotI2lmbmRlZiBSRVNPVVJDRV9JRF9DQUNIRV9ICi0jZGVmaW5lIFJFU09VUkNFX0lEX0NBQ0hFX0gKLQotbmFtZXNwYWNlIGFuZHJvaWQgewotY2xhc3MgYW5kcm9pZDo6U3RyaW5nMTY7Ci0KLWNsYXNzIFJlc291cmNlSWRDYWNoZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIHVpbnQzMl90IGxvb2t1cChjb25zdCBhbmRyb2lkOjpTdHJpbmcxNiYgcGFja2FnZSwKLSAgICAgICAgICAgIGNvbnN0IGFuZHJvaWQ6OlN0cmluZzE2JiB0eXBlLAotICAgICAgICAgICAgY29uc3QgYW5kcm9pZDo6U3RyaW5nMTYmIG5hbWUsCi0gICAgICAgICAgICBib29sIG9ubHlQdWJsaWMpOwotCi0gICAgc3RhdGljIHVpbnQzMl90IHN0b3JlKGNvbnN0IGFuZHJvaWQ6OlN0cmluZzE2JiBwYWNrYWdlLAotICAgICAgICAgICAgY29uc3QgYW5kcm9pZDo6U3RyaW5nMTYmIHR5cGUsCi0gICAgICAgICAgICBjb25zdCBhbmRyb2lkOjpTdHJpbmcxNiYgbmFtZSwKLSAgICAgICAgICAgIGJvb2wgb25seVB1YmxpYywKLSAgICAgICAgICAgIHVpbnQzMl90IHJlc0lkKTsKLQotICAgIHN0YXRpYyB2b2lkIGR1bXAodm9pZCk7Ci19OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC9SZXNvdXJjZVRhYmxlLmNwcCBiL3Rvb2xzL2FhcHQvUmVzb3VyY2VUYWJsZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyZTUyNTQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9SZXNvdXJjZVRhYmxlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM5NjYgKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDA2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0vLyBCdWlsZCByZXNvdXJjZSBmaWxlcyBmcm9tIHJhdyBhc3NldHMuCi0vLwotCi0jaW5jbHVkZSAiUmVzb3VyY2VUYWJsZS5oIgotCi0jaW5jbHVkZSAiWE1MTm9kZS5oIgotI2luY2x1ZGUgIlJlc291cmNlRmlsdGVyLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VJZENhY2hlLmgiCi0KLSNpbmNsdWRlIDxhbmRyb2lkZncvUmVzb3VyY2VUeXBlcy5oPgotI2luY2x1ZGUgPHV0aWxzL0J5dGVPcmRlci5oPgotI2luY2x1ZGUgPHN0ZGFyZy5oPgotCi0jZGVmaW5lIE5PSVNZKHgpIC8veAotCi1zdGF0dXNfdCBjb21waWxlWG1sRmlsZShjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8QWFwdEZpbGU+JiB0YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVRhYmxlKiB0YWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zKQotewotICAgIHNwPFhNTE5vZGU+IHJvb3QgPSBYTUxOb2RlOjpwYXJzZSh0YXJnZXQpOwotICAgIGlmIChyb290ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotICAgIAotICAgIHJldHVybiBjb21waWxlWG1sRmlsZShhc3NldHMsIHJvb3QsIHRhcmdldCwgdGFibGUsIG9wdGlvbnMpOwotfQotCi1zdGF0dXNfdCBjb21waWxlWG1sRmlsZShjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8QWFwdEZpbGU+JiB0YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxBYXB0RmlsZT4mIG91dFRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVGFibGUqIHRhYmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpCi17Ci0gICAgc3A8WE1MTm9kZT4gcm9vdCA9IFhNTE5vZGU6OnBhcnNlKHRhcmdldCk7Ci0gICAgaWYgKHJvb3QgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIGNvbXBpbGVYbWxGaWxlKGFzc2V0cywgcm9vdCwgb3V0VGFyZ2V0LCB0YWJsZSwgb3B0aW9ucyk7Ci19Ci0KLXN0YXR1c190IGNvbXBpbGVYbWxGaWxlKGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxYTUxOb2RlPiYgcm9vdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPEFhcHRGaWxlPiYgdGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VUYWJsZSogdGFibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucykKLXsKLSAgICBpZiAoKG9wdGlvbnMmWE1MX0NPTVBJTEVfU1RSSVBfV0hJVEVTUEFDRSkgIT0gMCkgewotICAgICAgICByb290LT5yZW1vdmVXaGl0ZXNwYWNlKHRydWUsIE5VTEwpOwotICAgIH0gZWxzZSAgaWYgKChvcHRpb25zJlhNTF9DT01QSUxFX0NPTVBBQ1RfV0hJVEVTUEFDRSkgIT0gMCkgewotICAgICAgICByb290LT5yZW1vdmVXaGl0ZXNwYWNlKGZhbHNlLCBOVUxMKTsKLSAgICB9Ci0KLSAgICBpZiAoKG9wdGlvbnMmWE1MX0NPTVBJTEVfVVRGOCkgIT0gMCkgewotICAgICAgICByb290LT5zZXRVVEY4KHRydWUpOwotICAgIH0KLQotICAgIGJvb2wgaGFzRXJyb3JzID0gZmFsc2U7Ci0gICAgCi0gICAgaWYgKChvcHRpb25zJlhNTF9DT01QSUxFX0FTU0lHTl9BVFRSSUJVVEVfSURTKSAhPSAwKSB7Ci0gICAgICAgIHN0YXR1c190IGVyciA9IHJvb3QtPmFzc2lnblJlc291cmNlSWRzKGFzc2V0cywgdGFibGUpOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc3RhdHVzX3QgZXJyID0gcm9vdC0+cGFyc2VWYWx1ZXMoYXNzZXRzLCB0YWJsZSk7Ci0gICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgIH0KLQotICAgIGlmIChoYXNFcnJvcnMpIHsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotICAgIAotICAgIE5PSVNZKHByaW50ZigiSW5wdXQgWE1MIFJlc291cmNlOlxuIikpOwotICAgIE5PSVNZKHJvb3QtPnByaW50KCkpOwotICAgIGVyciA9IHJvb3QtPmZsYXR0ZW4odGFyZ2V0LAotICAgICAgICAgICAgKG9wdGlvbnMmWE1MX0NPTVBJTEVfU1RSSVBfQ09NTUVOVFMpICE9IDAsCi0gICAgICAgICAgICAob3B0aW9ucyZYTUxfQ09NUElMRV9TVFJJUF9SQVdfVkFMVUVTKSAhPSAwKTsKLSAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiBlcnI7Ci0gICAgfQotCi0gICAgTk9JU1kocHJpbnRmKCJPdXRwdXQgWE1MIFJlc291cmNlOlxuIikpOwotICAgIE5PSVNZKFJlc1hNTFRyZWUgdHJlZTsKLSAgICAgICAgdHJlZS5zZXRUbyh0YXJnZXQtPmdldERhdGEoKSwgdGFyZ2V0LT5nZXRTaXplKCkpOwotICAgICAgICBwcmludFhNTEJsb2NrKCZ0cmVlKSk7Ci0KLSAgICB0YXJnZXQtPnNldENvbXByZXNzaW9uTWV0aG9kKFppcEVudHJ5OjprQ29tcHJlc3NEZWZsYXRlZCk7Ci0gICAgCi0gICAgcmV0dXJuIGVycjsKLX0KLQotI3VuZGVmIE5PSVNZCi0jZGVmaW5lIE5PSVNZKHgpIC8veAotCi1zdHJ1Y3QgZmxhZ19lbnRyeQotewotICAgIGNvbnN0IGNoYXIxNl90KiBuYW1lOwotICAgIHNpemVfdCBuYW1lTGVuOwotICAgIHVpbnQzMl90IHZhbHVlOwotICAgIGNvbnN0IGNoYXIqIGRlc2NyaXB0aW9uOwotfTsKLQotc3RhdGljIGNvbnN0IGNoYXIxNl90IHJlZmVyZW5jZUFycmF5W10gPQotICAgIHsgJ3InLCAnZScsICdmJywgJ2UnLCAncicsICdlJywgJ24nLCAnYycsICdlJyB9Owotc3RhdGljIGNvbnN0IGNoYXIxNl90IHN0cmluZ0FycmF5W10gPQotICAgIHsgJ3MnLCAndCcsICdyJywgJ2knLCAnbicsICdnJyB9Owotc3RhdGljIGNvbnN0IGNoYXIxNl90IGludGVnZXJBcnJheVtdID0KLSAgICB7ICdpJywgJ24nLCAndCcsICdlJywgJ2cnLCAnZScsICdyJyB9Owotc3RhdGljIGNvbnN0IGNoYXIxNl90IGJvb2xlYW5BcnJheVtdID0KLSAgICB7ICdiJywgJ28nLCAnbycsICdsJywgJ2UnLCAnYScsICduJyB9Owotc3RhdGljIGNvbnN0IGNoYXIxNl90IGNvbG9yQXJyYXlbXSA9Ci0gICAgeyAnYycsICdvJywgJ2wnLCAnbycsICdyJyB9Owotc3RhdGljIGNvbnN0IGNoYXIxNl90IGZsb2F0QXJyYXlbXSA9Ci0gICAgeyAnZicsICdsJywgJ28nLCAnYScsICd0JyB9Owotc3RhdGljIGNvbnN0IGNoYXIxNl90IGRpbWVuc2lvbkFycmF5W10gPQotICAgIHsgJ2QnLCAnaScsICdtJywgJ2UnLCAnbicsICdzJywgJ2knLCAnbycsICduJyB9Owotc3RhdGljIGNvbnN0IGNoYXIxNl90IGZyYWN0aW9uQXJyYXlbXSA9Ci0gICAgeyAnZicsICdyJywgJ2EnLCAnYycsICd0JywgJ2knLCAnbycsICduJyB9Owotc3RhdGljIGNvbnN0IGNoYXIxNl90IGVudW1BcnJheVtdID0KLSAgICB7ICdlJywgJ24nLCAndScsICdtJyB9Owotc3RhdGljIGNvbnN0IGNoYXIxNl90IGZsYWdzQXJyYXlbXSA9Ci0gICAgeyAnZicsICdsJywgJ2EnLCAnZycsICdzJyB9OwotCi1zdGF0aWMgY29uc3QgZmxhZ19lbnRyeSBnRm9ybWF0RmxhZ3NbXSA9IHsKLSAgICB7IHJlZmVyZW5jZUFycmF5LCBzaXplb2YocmVmZXJlbmNlQXJyYXkpLzIsIFJlc1RhYmxlX21hcDo6VFlQRV9SRUZFUkVOQ0UsCi0gICAgICAiYSByZWZlcmVuY2UgdG8gYW5vdGhlciByZXNvdXJjZSwgaW4gdGhlIGZvcm0gXCI8Y29kZT5AWytdWzxpPnBhY2thZ2U8L2k+Ol08aT50eXBlPC9pPjo8aT5uYW1lPC9pPjwvY29kZT5cIlxuIgotICAgICAgIm9yIHRvIGEgdGhlbWUgYXR0cmlidXRlIGluIHRoZSBmb3JtIFwiPGNvZGU+P1s8aT5wYWNrYWdlPC9pPjpdWzxpPnR5cGU8L2k+Ol08aT5uYW1lPC9pPjwvY29kZT5cIi4ifSwKLSAgICB7IHN0cmluZ0FycmF5LCBzaXplb2Yoc3RyaW5nQXJyYXkpLzIsIFJlc1RhYmxlX21hcDo6VFlQRV9TVFJJTkcsCi0gICAgICAiYSBzdHJpbmcgdmFsdWUsIHVzaW5nICdcXFxcOycgdG8gZXNjYXBlIGNoYXJhY3RlcnMgc3VjaCBhcyAnXFxcXG4nIG9yICdcXFxcdXh4eHgnIGZvciBhIHVuaWNvZGUgY2hhcmFjdGVyLiIgfSwKLSAgICB7IGludGVnZXJBcnJheSwgc2l6ZW9mKGludGVnZXJBcnJheSkvMiwgUmVzVGFibGVfbWFwOjpUWVBFX0lOVEVHRVIsCi0gICAgICAiYW4gaW50ZWdlciB2YWx1ZSwgc3VjaCBhcyBcIjxjb2RlPjEwMDwvY29kZT5cIi4iIH0sCi0gICAgeyBib29sZWFuQXJyYXksIHNpemVvZihib29sZWFuQXJyYXkpLzIsIFJlc1RhYmxlX21hcDo6VFlQRV9CT09MRUFOLAotICAgICAgImEgYm9vbGVhbiB2YWx1ZSwgZWl0aGVyIFwiPGNvZGU+dHJ1ZTwvY29kZT5cIiBvciBcIjxjb2RlPmZhbHNlPC9jb2RlPlwiLiIgfSwKLSAgICB7IGNvbG9yQXJyYXksIHNpemVvZihjb2xvckFycmF5KS8yLCBSZXNUYWJsZV9tYXA6OlRZUEVfQ09MT1IsCi0gICAgICAiYSBjb2xvciB2YWx1ZSwgaW4gdGhlIGZvcm0gb2YgXCI8Y29kZT4jPGk+cmdiPC9pPjwvY29kZT5cIiwgXCI8Y29kZT4jPGk+YXJnYjwvaT48L2NvZGU+XCIsXG4iCi0gICAgICAiXCI8Y29kZT4jPGk+cnJnZ2JiPC9pPjwvY29kZT5cIiwgb3IgXCI8Y29kZT4jPGk+YWFycmdnYmI8L2k+PC9jb2RlPlwiLiIgfSwKLSAgICB7IGZsb2F0QXJyYXksIHNpemVvZihmbG9hdEFycmF5KS8yLCBSZXNUYWJsZV9tYXA6OlRZUEVfRkxPQVQsCi0gICAgICAiYSBmbG9hdGluZyBwb2ludCB2YWx1ZSwgc3VjaCBhcyBcIjxjb2RlPjEuMjwvY29kZT5cIi4ifSwKLSAgICB7IGRpbWVuc2lvbkFycmF5LCBzaXplb2YoZGltZW5zaW9uQXJyYXkpLzIsIFJlc1RhYmxlX21hcDo6VFlQRV9ESU1FTlNJT04sCi0gICAgICAiYSBkaW1lbnNpb24gdmFsdWUsIHdoaWNoIGlzIGEgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGFwcGVuZGVkIHdpdGggYSB1bml0IHN1Y2ggYXMgXCI8Y29kZT4xNC41c3A8L2NvZGU+XCIuXG4iCi0gICAgICAiQXZhaWxhYmxlIHVuaXRzIGFyZTogcHggKHBpeGVscyksIGRwIChkZW5zaXR5LWluZGVwZW5kZW50IHBpeGVscyksIHNwIChzY2FsZWQgcGl4ZWxzIGJhc2VkIG9uIHByZWZlcnJlZCBmb250IHNpemUpLFxuIgotICAgICAgImluIChpbmNoZXMpLCBtbSAobWlsbGltZXRlcnMpLiIgfSwKLSAgICB7IGZyYWN0aW9uQXJyYXksIHNpemVvZihmcmFjdGlvbkFycmF5KS8yLCBSZXNUYWJsZV9tYXA6OlRZUEVfRlJBQ1RJT04sCi0gICAgICAiYSBmcmFjdGlvbmFsIHZhbHVlLCB3aGljaCBpcyBhIGZsb2F0aW5nIHBvaW50IG51bWJlciBhcHBlbmRlZCB3aXRoIGVpdGhlciAlIG9yICVwLCBzdWNoIGFzIFwiPGNvZGU+MTQuNSU8L2NvZGU+XCIuXG4iCi0gICAgICAiVGhlICUgc3VmZml4IGFsd2F5cyBtZWFucyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhc2Ugc2l6ZTsgdGhlIG9wdGlvbmFsICVwIHN1ZmZpeCBwcm92aWRlcyBhIHNpemUgcmVsYXRpdmUgdG9cbiIKLSAgICAgICJzb21lIHBhcmVudCBjb250YWluZXIuIiB9LAotICAgIHsgZW51bUFycmF5LCBzaXplb2YoZW51bUFycmF5KS8yLCBSZXNUYWJsZV9tYXA6OlRZUEVfRU5VTSwgTlVMTCB9LAotICAgIHsgZmxhZ3NBcnJheSwgc2l6ZW9mKGZsYWdzQXJyYXkpLzIsIFJlc1RhYmxlX21hcDo6VFlQRV9GTEFHUywgTlVMTCB9LAotICAgIHsgTlVMTCwgMCwgMCwgTlVMTCB9Ci19OwotCi1zdGF0aWMgY29uc3QgY2hhcjE2X3Qgc3VnZ2VzdGVkQXJyYXlbXSA9IHsgJ3MnLCAndScsICdnJywgJ2cnLCAnZScsICdzJywgJ3QnLCAnZScsICdkJyB9OwotCi1zdGF0aWMgY29uc3QgZmxhZ19lbnRyeSBsMTBuUmVxdWlyZWRGbGFnc1tdID0gewotICAgIHsgc3VnZ2VzdGVkQXJyYXksIHNpemVvZihzdWdnZXN0ZWRBcnJheSkvMiwgUmVzVGFibGVfbWFwOjpMMTBOX1NVR0dFU1RFRCwgTlVMTCB9LAotICAgIHsgTlVMTCwgMCwgMCwgTlVMTCB9Ci19OwotCi1zdGF0aWMgY29uc3QgY2hhcjE2X3QgbnVsU3RyW10gPSB7IDAgfTsKLQotc3RhdGljIHVpbnQzMl90IHBhcnNlX2ZsYWdzKGNvbnN0IGNoYXIxNl90KiBzdHIsIHNpemVfdCBsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsYWdfZW50cnkqIGZsYWdzLCBib29sKiBvdXRFcnJvciA9IE5VTEwpCi17Ci0gICAgd2hpbGUgKGxlbiA+IDAgJiYgaXNzcGFjZSgqc3RyKSkgewotICAgICAgICBzdHIrKzsKLSAgICAgICAgbGVuLS07Ci0gICAgfQotICAgIHdoaWxlIChsZW4gPiAwICYmIGlzc3BhY2Uoc3RyW2xlbi0xXSkpIHsKLSAgICAgICAgbGVuLS07Ci0gICAgfQotCi0gICAgY29uc3QgY2hhcjE2X3QqIGNvbnN0IGVuZCA9IHN0ciArIGxlbjsKLSAgICB1aW50MzJfdCB2YWx1ZSA9IDA7Ci0KLSAgICB3aGlsZSAoc3RyIDwgZW5kKSB7Ci0gICAgICAgIGNvbnN0IGNoYXIxNl90KiBkaXYgPSBzdHI7Ci0gICAgICAgIHdoaWxlIChkaXYgPCBlbmQgJiYgKmRpdiAhPSAnfCcpIHsKLSAgICAgICAgICAgIGRpdisrOwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3QgZmxhZ19lbnRyeSogY3VyID0gZmxhZ3M7Ci0gICAgICAgIHdoaWxlIChjdXItPm5hbWUpIHsKLSAgICAgICAgICAgIGlmIChzdHJ6Y21wMTYoY3VyLT5uYW1lLCBjdXItPm5hbWVMZW4sIHN0ciwgZGl2LXN0cikgPT0gMCkgewotICAgICAgICAgICAgICAgIHZhbHVlIHw9IGN1ci0+dmFsdWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjdXIrKzsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghY3VyLT5uYW1lKSB7Ci0gICAgICAgICAgICBpZiAob3V0RXJyb3IpICpvdXRFcnJvciA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotCi0gICAgICAgIHN0ciA9IGRpdiA8IGVuZCA/IGRpdisxIDogZGl2OwotICAgIH0KLQotICAgIGlmIChvdXRFcnJvcikgKm91dEVycm9yID0gZmFsc2U7Ci0gICAgcmV0dXJuIHZhbHVlOwotfQotCi1zdGF0aWMgU3RyaW5nMTYgbWF5T3JNdXN0KGludCB0eXBlLCBpbnQgZmxhZ3MpCi17Ci0gICAgaWYgKCh0eXBlJih+ZmxhZ3MpKSA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBTdHJpbmcxNigiPHA+TXVzdCIpOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gU3RyaW5nMTYoIjxwPk1heSIpOwotfQotCi1zdGF0aWMgdm9pZCBhcHBlbmRUeXBlSW5mbyhSZXNvdXJjZVRhYmxlKiBvdXRUYWJsZSwgY29uc3QgU3RyaW5nMTYmIHBrZywKLSAgICAgICAgY29uc3QgU3RyaW5nMTYmIHR5cGVOYW1lLCBjb25zdCBTdHJpbmcxNiYgaWRlbnQsIGludCB0eXBlLAotICAgICAgICBjb25zdCBmbGFnX2VudHJ5KiBmbGFncykKLXsKLSAgICBib29sIGhhZFR5cGUgPSBmYWxzZTsKLSAgICB3aGlsZSAoZmxhZ3MtPm5hbWUpIHsKLSAgICAgICAgaWYgKCh0eXBlJmZsYWdzLT52YWx1ZSkgIT0gMCAmJiBmbGFncy0+ZGVzY3JpcHRpb24gIT0gTlVMTCkgewotICAgICAgICAgICAgU3RyaW5nMTYgZnVsbE1zZyhtYXlPck11c3QodHlwZSwgZmxhZ3MtPnZhbHVlKSk7Ci0gICAgICAgICAgICBmdWxsTXNnLmFwcGVuZChTdHJpbmcxNigiIGJlICIpKTsKLSAgICAgICAgICAgIGZ1bGxNc2cuYXBwZW5kKFN0cmluZzE2KGZsYWdzLT5kZXNjcmlwdGlvbikpOwotICAgICAgICAgICAgb3V0VGFibGUtPmFwcGVuZFR5cGVDb21tZW50KHBrZywgdHlwZU5hbWUsIGlkZW50LCBmdWxsTXNnKTsKLSAgICAgICAgICAgIGhhZFR5cGUgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGZsYWdzKys7Ci0gICAgfQotICAgIGlmIChoYWRUeXBlICYmICh0eXBlJlJlc1RhYmxlX21hcDo6VFlQRV9SRUZFUkVOQ0UpID09IDApIHsKLSAgICAgICAgb3V0VGFibGUtPmFwcGVuZFR5cGVDb21tZW50KHBrZywgdHlwZU5hbWUsIGlkZW50LAotICAgICAgICAgICAgICAgIFN0cmluZzE2KCI8cD5UaGlzIG1heSBhbHNvIGJlIGEgcmVmZXJlbmNlIHRvIGEgcmVzb3VyY2UgKGluIHRoZSBmb3JtXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgIlwiPGNvZGU+QFs8aT5wYWNrYWdlPC9pPjpdPGk+dHlwZTwvaT46PGk+bmFtZTwvaT48L2NvZGU+XCIpIG9yXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgInRoZW1lIGF0dHJpYnV0ZSAoaW4gdGhlIGZvcm1cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAiXCI8Y29kZT4/WzxpPnBhY2thZ2U8L2k+Ol1bPGk+dHlwZTwvaT46XTxpPm5hbWU8L2k+PC9jb2RlPlwiKVxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICJjb250YWluaW5nIGEgdmFsdWUgb2YgdGhpcyB0eXBlLiIpKTsKLSAgICB9Ci19Ci0KLXN0cnVjdCBQZW5kaW5nQXR0cmlidXRlCi17Ci0gICAgY29uc3QgU3RyaW5nMTYgbXlQYWNrYWdlOwotICAgIGNvbnN0IFNvdXJjZVBvcyBzb3VyY2VQb3M7Ci0gICAgY29uc3QgYm9vbCBhcHBlbmRDb21tZW50OwotICAgIGludDMyX3QgdHlwZTsKLSAgICBTdHJpbmcxNiBpZGVudDsKLSAgICBTdHJpbmcxNiBjb21tZW50OwotICAgIGJvb2wgaGFzRXJyb3JzOwotICAgIGJvb2wgYWRkZWQ7Ci0gICAgCi0gICAgUGVuZGluZ0F0dHJpYnV0ZShTdHJpbmcxNiBfcGFja2FnZSwgY29uc3Qgc3A8QWFwdEZpbGU+JiBpbiwKLSAgICAgICAgICAgIFJlc1hNTFRyZWUmIGJsb2NrLCBib29sIF9hcHBlbmRDb21tZW50KQotICAgICAgICA6IG15UGFja2FnZShfcGFja2FnZSkKLSAgICAgICAgLCBzb3VyY2VQb3MoaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLCBibG9jay5nZXRMaW5lTnVtYmVyKCkpCi0gICAgICAgICwgYXBwZW5kQ29tbWVudChfYXBwZW5kQ29tbWVudCkKLSAgICAgICAgLCB0eXBlKFJlc1RhYmxlX21hcDo6VFlQRV9BTlkpCi0gICAgICAgICwgaGFzRXJyb3JzKGZhbHNlKQotICAgICAgICAsIGFkZGVkKGZhbHNlKQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgc3RhdHVzX3QgY3JlYXRlSWZOZWVkZWQoUmVzb3VyY2VUYWJsZSogb3V0VGFibGUpCi0gICAgewotICAgICAgICBpZiAoYWRkZWQgfHwgaGFzRXJyb3JzKSB7Ci0gICAgICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgICAgIH0KLSAgICAgICAgYWRkZWQgPSB0cnVlOwotCi0gICAgICAgIFN0cmluZzE2IGF0dHIxNigiYXR0ciIpOwotICAgICAgICAKLSAgICAgICAgaWYgKG91dFRhYmxlLT5oYXNCYWdPckVudHJ5KG15UGFja2FnZSwgYXR0cjE2LCBpZGVudCkpIHsKLSAgICAgICAgICAgIHNvdXJjZVBvcy5lcnJvcigiQXR0cmlidXRlIFwiJXNcIiBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWRcbiIsCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzgoaWRlbnQpLnN0cmluZygpKTsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgY2hhciBudW1iZXJTdHJbMTZdOwotICAgICAgICBzcHJpbnRmKG51bWJlclN0ciwgIiVkIiwgdHlwZSk7Ci0gICAgICAgIHN0YXR1c190IGVyciA9IG91dFRhYmxlLT5hZGRCYWcoc291cmNlUG9zLCBteVBhY2thZ2UsCi0gICAgICAgICAgICAgICAgYXR0cjE2LCBpZGVudCwgU3RyaW5nMTYoIiIpLAotICAgICAgICAgICAgICAgIFN0cmluZzE2KCJedHlwZSIpLAotICAgICAgICAgICAgICAgIFN0cmluZzE2KG51bWJlclN0ciksIE5VTEwsIE5VTEwpOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgfQotICAgICAgICBvdXRUYWJsZS0+YXBwZW5kQ29tbWVudChteVBhY2thZ2UsIGF0dHIxNiwgaWRlbnQsIGNvbW1lbnQsIGFwcGVuZENvbW1lbnQpOwotICAgICAgICAvL3ByaW50ZigiQXR0cmlidXRlICVzIGNvbW1lbnQ6ICVzXG4iLCBTdHJpbmc4KGlkZW50KS5zdHJpbmcoKSwKLSAgICAgICAgLy8gICAgIFN0cmluZzgoY29tbWVudCkuc3RyaW5nKCkpOwotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLX07Ci0KLXN0YXRpYyBzdGF0dXNfdCBjb21waWxlQXR0cmlidXRlKGNvbnN0IHNwPEFhcHRGaWxlPiYgaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNYTUxUcmVlJiBibG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBteVBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVRhYmxlKiBvdXRUYWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzE2KiBvdXRJZGVudCA9IE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGluU3R5bGVhYmxlID0gZmFsc2UpCi17Ci0gICAgUGVuZGluZ0F0dHJpYnV0ZSBhdHRyKG15UGFja2FnZSwgaW4sIGJsb2NrLCBpblN0eWxlYWJsZSk7Ci0gICAgCi0gICAgY29uc3QgU3RyaW5nMTYgYXR0cjE2KCJhdHRyIik7Ci0gICAgY29uc3QgU3RyaW5nMTYgaWQxNigiaWQiKTsKLQotICAgIC8vIEF0dHJpYnV0ZSB0eXBlIGNvbnN0YW50cy4KLSAgICBjb25zdCBTdHJpbmcxNiBlbnVtMTYoImVudW0iKTsKLSAgICBjb25zdCBTdHJpbmcxNiBmbGFnMTYoImZsYWciKTsKLQotICAgIFJlc1hNTFRyZWU6OmV2ZW50X2NvZGVfdCBjb2RlOwotICAgIHNpemVfdCBsZW47Ci0gICAgc3RhdHVzX3QgZXJyOwotICAgIAotICAgIHNzaXplX3QgaWRlbnRJZHggPSBibG9jay5pbmRleE9mQXR0cmlidXRlKE5VTEwsICJuYW1lIik7Ci0gICAgaWYgKGlkZW50SWR4ID49IDApIHsKLSAgICAgICAgYXR0ci5pZGVudCA9IFN0cmluZzE2KGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKGlkZW50SWR4LCAmbGVuKSk7Ci0gICAgICAgIGlmIChvdXRJZGVudCkgewotICAgICAgICAgICAgKm91dElkZW50ID0gYXR0ci5pZGVudDsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGF0dHIuc291cmNlUG9zLmVycm9yKCJBICduYW1lJyBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgZm9yIDxhdHRyPlxuIik7Ci0gICAgICAgIGF0dHIuaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBhdHRyLmNvbW1lbnQgPSBTdHJpbmcxNigKLSAgICAgICAgICAgIGJsb2NrLmdldENvbW1lbnQoJmxlbikgPyBibG9jay5nZXRDb21tZW50KCZsZW4pIDogbnVsU3RyKTsKLQotICAgIHNzaXplX3QgdHlwZUlkeCA9IGJsb2NrLmluZGV4T2ZBdHRyaWJ1dGUoTlVMTCwgImZvcm1hdCIpOwotICAgIGlmICh0eXBlSWR4ID49IDApIHsKLSAgICAgICAgU3RyaW5nMTYgdHlwZVN0ciA9IFN0cmluZzE2KGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKHR5cGVJZHgsICZsZW4pKTsKLSAgICAgICAgYXR0ci50eXBlID0gcGFyc2VfZmxhZ3ModHlwZVN0ci5zdHJpbmcoKSwgdHlwZVN0ci5zaXplKCksIGdGb3JtYXRGbGFncyk7Ci0gICAgICAgIGlmIChhdHRyLnR5cGUgPT0gMCkgewotICAgICAgICAgICAgYXR0ci5zb3VyY2VQb3MuZXJyb3IoIlRhZyA8YXR0cj4gJ2Zvcm1hdCcgYXR0cmlidXRlIHZhbHVlIFwiJXNcIiBub3QgdmFsaWRcbiIsCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzgodHlwZVN0cikuc3RyaW5nKCkpOwotICAgICAgICAgICAgYXR0ci5oYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGF0dHIuY3JlYXRlSWZOZWVkZWQob3V0VGFibGUpOwotICAgIH0gZWxzZSBpZiAoIWluU3R5bGVhYmxlKSB7Ci0gICAgICAgIC8vIEF0dHJpYnV0ZSBkZWZpbml0aW9ucyBvdXRzaWRlIG9mIHN0eWxlYWJsZXMgYWx3YXlzIGRlZmluZSB0aGUKLSAgICAgICAgLy8gYXR0cmlidXRlIGFzIGEgZ2VuZXJpYyB2YWx1ZS4KLSAgICAgICAgYXR0ci5jcmVhdGVJZk5lZWRlZChvdXRUYWJsZSk7Ci0gICAgfQotCi0gICAgLy9wcmludGYoIkF0dHJpYnV0ZSAlczogdHlwZT0weCUwOHhcbiIsIFN0cmluZzgoYXR0ci5pZGVudCkuc3RyaW5nKCksIGF0dHIudHlwZSk7Ci0KLSAgICBzc2l6ZV90IG1pbklkeCA9IGJsb2NrLmluZGV4T2ZBdHRyaWJ1dGUoTlVMTCwgIm1pbiIpOwotICAgIGlmIChtaW5JZHggPj0gMCkgewotICAgICAgICBTdHJpbmcxNiB2YWwgPSBTdHJpbmcxNihibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShtaW5JZHgsICZsZW4pKTsKLSAgICAgICAgaWYgKCFSZXNUYWJsZTo6c3RyaW5nVG9JbnQodmFsLnN0cmluZygpLCB2YWwuc2l6ZSgpLCBOVUxMKSkgewotICAgICAgICAgICAgYXR0ci5zb3VyY2VQb3MuZXJyb3IoIlRhZyA8YXR0cj4gJ21pbicgYXR0cmlidXRlIG11c3QgYmUgYSBudW1iZXIsIG5vdCBcIiVzXCJcbiIsCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzgodmFsKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICBhdHRyLmhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgYXR0ci5jcmVhdGVJZk5lZWRlZChvdXRUYWJsZSk7Ci0gICAgICAgIGlmICghYXR0ci5oYXNFcnJvcnMpIHsKLSAgICAgICAgICAgIGVyciA9IG91dFRhYmxlLT5hZGRCYWcoYXR0ci5zb3VyY2VQb3MsIG15UGFja2FnZSwgYXR0cjE2LCBhdHRyLmlkZW50LAotICAgICAgICAgICAgICAgICAgICBTdHJpbmcxNigiIiksIFN0cmluZzE2KCJebWluIiksIFN0cmluZzE2KHZhbCksIE5VTEwsIE5VTEwpOwotICAgICAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIGF0dHIuaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHNzaXplX3QgbWF4SWR4ID0gYmxvY2suaW5kZXhPZkF0dHJpYnV0ZShOVUxMLCAibWF4Iik7Ci0gICAgaWYgKG1heElkeCA+PSAwKSB7Ci0gICAgICAgIFN0cmluZzE2IHZhbCA9IFN0cmluZzE2KGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKG1heElkeCwgJmxlbikpOwotICAgICAgICBpZiAoIVJlc1RhYmxlOjpzdHJpbmdUb0ludCh2YWwuc3RyaW5nKCksIHZhbC5zaXplKCksIE5VTEwpKSB7Ci0gICAgICAgICAgICBhdHRyLnNvdXJjZVBvcy5lcnJvcigiVGFnIDxhdHRyPiAnbWF4JyBhdHRyaWJ1dGUgbXVzdCBiZSBhIG51bWJlciwgbm90IFwiJXNcIlxuIiwKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCh2YWwpLnN0cmluZygpKTsKLSAgICAgICAgICAgIGF0dHIuaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBhdHRyLmNyZWF0ZUlmTmVlZGVkKG91dFRhYmxlKTsKLSAgICAgICAgaWYgKCFhdHRyLmhhc0Vycm9ycykgewotICAgICAgICAgICAgZXJyID0gb3V0VGFibGUtPmFkZEJhZyhhdHRyLnNvdXJjZVBvcywgbXlQYWNrYWdlLCBhdHRyMTYsIGF0dHIuaWRlbnQsCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzE2KCIiKSwgU3RyaW5nMTYoIl5tYXgiKSwgU3RyaW5nMTYodmFsKSwgTlVMTCwgTlVMTCk7Ci0gICAgICAgICAgICBhdHRyLmhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoKG1pbklkeCA+PSAwIHx8IG1heElkeCA+PSAwKSAmJiAoYXR0ci50eXBlJlJlc1RhYmxlX21hcDo6VFlQRV9JTlRFR0VSKSA9PSAwKSB7Ci0gICAgICAgIGF0dHIuc291cmNlUG9zLmVycm9yKCJUYWcgPGF0dHI+IG11c3QgaGF2ZSBmb3JtYXQ9aW50ZWdlciBhdHRyaWJ1dGUgaWYgdXNpbmcgbWF4IG9yIG1pblxuIik7Ci0gICAgICAgIGF0dHIuaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBzc2l6ZV90IGwxMG5JZHggPSBibG9jay5pbmRleE9mQXR0cmlidXRlKE5VTEwsICJsb2NhbGl6YXRpb24iKTsKLSAgICBpZiAobDEwbklkeCA+PSAwKSB7Ci0gICAgICAgIGNvbnN0IHVpbnQxNl90KiBzdHIgPSBibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShsMTBuSWR4LCAmbGVuKTsKLSAgICAgICAgYm9vbCBlcnJvcjsKLSAgICAgICAgdWludDMyX3QgbDEwbl9yZXF1aXJlZCA9IHBhcnNlX2ZsYWdzKHN0ciwgbGVuLCBsMTBuUmVxdWlyZWRGbGFncywgJmVycm9yKTsKLSAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICBhdHRyLnNvdXJjZVBvcy5lcnJvcigiVGFnIDxhdHRyPiAnbG9jYWxpemF0aW9uJyBhdHRyaWJ1dGUgdmFsdWUgXCIlc1wiIG5vdCB2YWxpZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChzdHIpLnN0cmluZygpKTsKLSAgICAgICAgICAgIGF0dHIuaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBhdHRyLmNyZWF0ZUlmTmVlZGVkKG91dFRhYmxlKTsKLSAgICAgICAgaWYgKCFhdHRyLmhhc0Vycm9ycykgewotICAgICAgICAgICAgY2hhciBidWZbMTFdOwotICAgICAgICAgICAgc3ByaW50ZihidWYsICIlZCIsIGwxMG5fcmVxdWlyZWQpOwotICAgICAgICAgICAgZXJyID0gb3V0VGFibGUtPmFkZEJhZyhhdHRyLnNvdXJjZVBvcywgbXlQYWNrYWdlLCBhdHRyMTYsIGF0dHIuaWRlbnQsCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzE2KCIiKSwgU3RyaW5nMTYoIl5sMTBuIiksIFN0cmluZzE2KGJ1ZiksIE5VTEwsIE5VTEwpOwotICAgICAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIGF0dHIuaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIFN0cmluZzE2IGVudW1PckZsYWdzQ29tbWVudDsKLSAgICAKLSAgICB3aGlsZSAoKGNvZGU9YmxvY2submV4dCgpKSAhPSBSZXNYTUxUcmVlOjpFTkRfRE9DVU1FTlQgJiYgY29kZSAhPSBSZXNYTUxUcmVlOjpCQURfRE9DVU1FTlQpIHsKLSAgICAgICAgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6U1RBUlRfVEFHKSB7Ci0gICAgICAgICAgICB1aW50MzJfdCBsb2NhbFR5cGUgPSAwOwotICAgICAgICAgICAgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBlbnVtMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICBsb2NhbFR5cGUgPSBSZXNUYWJsZV9tYXA6OlRZUEVfRU5VTTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIGZsYWcxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIGxvY2FsVHlwZSA9IFJlc1RhYmxlX21hcDo6VFlQRV9GTEFHUzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgU291cmNlUG9zKGluLT5nZXRQcmludGFibGVTb3VyY2UoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpKQotICAgICAgICAgICAgICAgICAgICAgICAgLmVycm9yKCJUYWcgPCVzPiBjYW4gbm90IGFwcGVhciBpbnNpZGUgPGF0dHI+LCBvbmx5IDxlbnVtPiBvciA8ZmxhZz5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGF0dHIuY3JlYXRlSWZOZWVkZWQob3V0VGFibGUpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoYXR0ci50eXBlID09IFJlc1RhYmxlX21hcDo6VFlQRV9BTlkpIHsKLSAgICAgICAgICAgICAgICAvLyBObyB0eXBlIHdhcyBleHBsaWNpdGx5IHN0YXRlZCwgc28gc3VwcGx5aW5nIGVudW0gdGFncwotICAgICAgICAgICAgICAgIC8vIGltcGxpY2l0bHkgY3JlYXRlcyBhbiBlbnVtIG9yIGZsYWcuCi0gICAgICAgICAgICAgICAgYXR0ci50eXBlID0gMDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKChhdHRyLnR5cGUmKFJlc1RhYmxlX21hcDo6VFlQRV9FTlVNfFJlc1RhYmxlX21hcDo6VFlQRV9GTEFHUykpID09IDApIHsKLSAgICAgICAgICAgICAgICAvLyBXYXNuJ3Qgb3JpZ2luYWxseSBzcGVjaWZpZWQgYXMgYW4gZW51bSwgc28gdXBkYXRlIGl0cyB0eXBlLgotICAgICAgICAgICAgICAgIGF0dHIudHlwZSB8PSBsb2NhbFR5cGU7Ci0gICAgICAgICAgICAgICAgaWYgKCFhdHRyLmhhc0Vycm9ycykgewotICAgICAgICAgICAgICAgICAgICBjaGFyIG51bWJlclN0clsxNl07Ci0gICAgICAgICAgICAgICAgICAgIHNwcmludGYobnVtYmVyU3RyLCAiJWQiLCBhdHRyLnR5cGUpOwotICAgICAgICAgICAgICAgICAgICBlcnIgPSBvdXRUYWJsZS0+YWRkQmFnKFNvdXJjZVBvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlQYWNrYWdlLCBhdHRyMTYsIGF0dHIuaWRlbnQsIFN0cmluZzE2KCIiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcxNigiXnR5cGUiKSwgU3RyaW5nMTYobnVtYmVyU3RyKSwgTlVMTCwgTlVMTCwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIuaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoKHVpbnQzMl90KShhdHRyLnR5cGUmKFJlc1RhYmxlX21hcDo6VFlQRV9FTlVNfFJlc1RhYmxlX21hcDo6VFlQRV9GTEFHUykpICE9IGxvY2FsVHlwZSkgewotICAgICAgICAgICAgICAgIGlmIChsb2NhbFR5cGUgPT0gUmVzVGFibGVfbWFwOjpUWVBFX0VOVU0pIHsKLSAgICAgICAgICAgICAgICAgICAgU291cmNlUG9zKGluLT5nZXRQcmludGFibGVTb3VyY2UoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5lcnJvcigiPGVudW0+IGF0dHJpYnV0ZSBjYW4gbm90IGJlIHVzZWQgaW5zaWRlIGEgZmxhZ3MgZm9ybWF0XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgYXR0ci5oYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZXJyb3IoIjxmbGFnPiBhdHRyaWJ1dGUgY2FuIG5vdCBiZSB1c2VkIGluc2lkZSBhIGVudW0gZm9ybWF0XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgYXR0ci5oYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgU3RyaW5nMTYgaXRlbUlkZW50OwotICAgICAgICAgICAgc3NpemVfdCBpdGVtSWRlbnRJZHggPSBibG9jay5pbmRleE9mQXR0cmlidXRlKE5VTEwsICJuYW1lIik7Ci0gICAgICAgICAgICBpZiAoaXRlbUlkZW50SWR4ID49IDApIHsKLSAgICAgICAgICAgICAgICBpdGVtSWRlbnQgPSBTdHJpbmcxNihibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShpdGVtSWRlbnRJZHgsICZsZW4pKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgU291cmNlUG9zKGluLT5nZXRQcmludGFibGVTb3VyY2UoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpKQotICAgICAgICAgICAgICAgICAgICAgICAgLmVycm9yKCJBICduYW1lJyBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgZm9yIDxlbnVtPiBvciA8ZmxhZz5cbiIpOwotICAgICAgICAgICAgICAgIGF0dHIuaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgU3RyaW5nMTYgdmFsdWU7Ci0gICAgICAgICAgICBzc2l6ZV90IHZhbHVlSWR4ID0gYmxvY2suaW5kZXhPZkF0dHJpYnV0ZShOVUxMLCAidmFsdWUiKTsKLSAgICAgICAgICAgIGlmICh2YWx1ZUlkeCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgdmFsdWUgPSBTdHJpbmcxNihibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZSh2YWx1ZUlkeCwgJmxlbikpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBTb3VyY2VQb3MoaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLCBibG9jay5nZXRMaW5lTnVtYmVyKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAuZXJyb3IoIkEgJ3ZhbHVlJyBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgZm9yIDxlbnVtPiBvciA8ZmxhZz5cbiIpOwotICAgICAgICAgICAgICAgIGF0dHIuaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghYXR0ci5oYXNFcnJvcnMgJiYgIVJlc1RhYmxlOjpzdHJpbmdUb0ludCh2YWx1ZS5zdHJpbmcoKSwgdmFsdWUuc2l6ZSgpLCBOVUxMKSkgewotICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIC5lcnJvcigiVGFnIDxlbnVtPiBvciA8ZmxhZz4gJ3ZhbHVlJyBhdHRyaWJ1dGUgbXVzdCBiZSBhIG51bWJlciwiCi0gICAgICAgICAgICAgICAgICAgICAgICAiIG5vdCBcIiVzXCJcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHZhbHVlKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgYXR0ci5oYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBNYWtlIHN1cmUgYW4gaWQgaXMgZGVmaW5lZCBmb3IgdGhpcyBlbnVtL2ZsYWcgaWRlbnRpZmllci4uLgotICAgICAgICAgICAgaWYgKCFhdHRyLmhhc0Vycm9ycyAmJiAhb3V0VGFibGUtPmhhc0JhZ09yRW50cnkoaXRlbUlkZW50LCAmaWQxNiwgJm15UGFja2FnZSkpIHsKLSAgICAgICAgICAgICAgICBlcnIgPSBvdXRUYWJsZS0+c3RhcnRCYWcoU291cmNlUG9zKGluLT5nZXRQcmludGFibGVTb3VyY2UoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlQYWNrYWdlLCBpZDE2LCBpdGVtSWRlbnQsIFN0cmluZzE2KCksIE5VTEwpOwotICAgICAgICAgICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICAgICAgYXR0ci5oYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFhdHRyLmhhc0Vycm9ycykgewotICAgICAgICAgICAgICAgIGlmIChlbnVtT3JGbGFnc0NvbW1lbnQuc2l6ZSgpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgZW51bU9yRmxhZ3NDb21tZW50LmFwcGVuZChtYXlPck11c3QoYXR0ci50eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc1RhYmxlX21hcDo6VFlQRV9FTlVNfFJlc1RhYmxlX21hcDo6VFlQRV9GTEFHUykpOwotICAgICAgICAgICAgICAgICAgICBlbnVtT3JGbGFnc0NvbW1lbnQuYXBwZW5kKChhdHRyLnR5cGUmUmVzVGFibGVfbWFwOjpUWVBFX0VOVU0pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFN0cmluZzE2KCIgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmcgY29uc3RhbnQgdmFsdWVzLiIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN0cmluZzE2KCIgYmUgb25lIG9yIG1vcmUgKHNlcGFyYXRlZCBieSAnfCcpIG9mIHRoZSBmb2xsb3dpbmcgY29uc3RhbnQgdmFsdWVzLiIpKTsKLSAgICAgICAgICAgICAgICAgICAgZW51bU9yRmxhZ3NDb21tZW50LmFwcGVuZChTdHJpbmcxNigiPC9wPlxuPHRhYmxlPlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxjb2xncm91cCBhbGlnbj1cImxlZnRcIiAvPlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxjb2xncm91cCBhbGlnbj1cImxlZnRcIiAvPlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxjb2xncm91cCBhbGlnbj1cImxlZnRcIiAvPlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjx0cj48dGg+Q29uc3RhbnQ8L3RoPjx0aD5WYWx1ZTwvdGg+PHRoPkRlc2NyaXB0aW9uPC90aD48L3RyPiIpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZW51bU9yRmxhZ3NDb21tZW50LmFwcGVuZChTdHJpbmcxNigiXG48dHI+PHRkPjxjb2RlPiIpKTsKLSAgICAgICAgICAgICAgICBlbnVtT3JGbGFnc0NvbW1lbnQuYXBwZW5kKGl0ZW1JZGVudCk7Ci0gICAgICAgICAgICAgICAgZW51bU9yRmxhZ3NDb21tZW50LmFwcGVuZChTdHJpbmcxNigiPC9jb2RlPjwvdGQ+PHRkPiIpKTsKLSAgICAgICAgICAgICAgICBlbnVtT3JGbGFnc0NvbW1lbnQuYXBwZW5kKHZhbHVlKTsKLSAgICAgICAgICAgICAgICBlbnVtT3JGbGFnc0NvbW1lbnQuYXBwZW5kKFN0cmluZzE2KCI8L3RkPjx0ZD4iKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGJsb2NrLmdldENvbW1lbnQoJmxlbikpIHsKLSAgICAgICAgICAgICAgICAgICAgZW51bU9yRmxhZ3NDb21tZW50LmFwcGVuZChTdHJpbmcxNihibG9jay5nZXRDb21tZW50KCZsZW4pKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVudW1PckZsYWdzQ29tbWVudC5hcHBlbmQoU3RyaW5nMTYoIjwvdGQ+PC90cj4iKSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZXJyID0gb3V0VGFibGUtPmFkZEJhZyhTb3VyY2VQb3MoaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLCBibG9jay5nZXRMaW5lTnVtYmVyKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlQYWNrYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cjE2LCBhdHRyLmlkZW50LCBTdHJpbmcxNigiIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtSWRlbnQsIHZhbHVlLCBOVUxMLCBOVUxMLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgICAgICBhdHRyLmhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6RU5EX1RBRykgewotICAgICAgICAgICAgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBhdHRyMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICgoYXR0ci50eXBlJlJlc1RhYmxlX21hcDo6VFlQRV9FTlVNKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBlbnVtMTYuc3RyaW5nKCkpICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgU291cmNlUG9zKGluLT5nZXRQcmludGFibGVTb3VyY2UoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5lcnJvcigiRm91bmQgdGFnIDwvJXM+IHdoZXJlIDwvZW51bT4gaXMgZXhwZWN0ZWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgZmxhZzE2LnN0cmluZygpKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZXJyb3IoIkZvdW5kIHRhZyA8LyVzPiB3aGVyZSA8L2ZsYWc+IGlzIGV4cGVjdGVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbikpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIGlmICghYXR0ci5oYXNFcnJvcnMgJiYgYXR0ci5hZGRlZCkgewotICAgICAgICBhcHBlbmRUeXBlSW5mbyhvdXRUYWJsZSwgbXlQYWNrYWdlLCBhdHRyMTYsIGF0dHIuaWRlbnQsIGF0dHIudHlwZSwgZ0Zvcm1hdEZsYWdzKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKCFhdHRyLmhhc0Vycm9ycyAmJiBlbnVtT3JGbGFnc0NvbW1lbnQuc2l6ZSgpID4gMCkgewotICAgICAgICBlbnVtT3JGbGFnc0NvbW1lbnQuYXBwZW5kKFN0cmluZzE2KCJcbjwvdGFibGU+IikpOwotICAgICAgICBvdXRUYWJsZS0+YXBwZW5kVHlwZUNvbW1lbnQobXlQYWNrYWdlLCBhdHRyMTYsIGF0dHIuaWRlbnQsIGVudW1PckZsYWdzQ29tbWVudCk7Ci0gICAgfQotCi0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLWJvb2wgbG9jYWxlSXNEZWZpbmVkKGNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgY29uZmlnKQotewotICAgIHJldHVybiBjb25maWcubG9jYWxlID09IDA7Ci19Ci0KLXN0YXR1c190IHBhcnNlQW5kQWRkQmFnKEJ1bmRsZSogYnVuZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8QWFwdEZpbGU+JiBpbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIFJlc1hNTFRyZWUqIGJsb2NrLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzVGFibGVfY29uZmlnJiBjb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgbXlQYWNrYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIGN1clR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgaWRlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgcGFyZW50SWRlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgaXRlbUlkZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBjdXJGb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzRm9ybWF0dGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHByb2R1Y3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBib29sIHBzZXVkb2xvY2FsaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCBvdmVyd3JpdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVRhYmxlKiBvdXRUYWJsZSkKLXsKLSAgICBzdGF0dXNfdCBlcnI7Ci0gICAgY29uc3QgU3RyaW5nMTYgaXRlbTE2KCJpdGVtIik7Ci0gICAgCi0gICAgU3RyaW5nMTYgc3RyOwotICAgIFZlY3RvcjxTdHJpbmdQb29sOjplbnRyeV9zdHlsZV9zcGFuPiBzcGFuczsKLSAgICBlcnIgPSBwYXJzZVN0eWxlZFN0cmluZyhidW5kbGUsIGluLT5nZXRQcmludGFibGVTb3VyY2UoKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jaywgaXRlbTE2LCAmc3RyLCAmc3BhbnMsIGlzRm9ybWF0dGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzZXVkb2xvY2FsaXplKTsKLSAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiBlcnI7Ci0gICAgfQotICAgIAotICAgIE5PSVNZKHByaW50ZigiQWRkaW5nIHJlc291cmNlIGJhZyBlbnRyeSBsPSVjJWMgYz0lYyVjIG9yaWVuPSVkIGQ9JWQgIgotICAgICAgICAgICAgICAgICAiIHBpZD0lcywgYmFnPSVzLCBpZD0lczogJXNcbiIsCi0gICAgICAgICAgICAgICAgIGNvbmZpZy5sYW5ndWFnZVswXSwgY29uZmlnLmxhbmd1YWdlWzFdLAotICAgICAgICAgICAgICAgICBjb25maWcuY291bnRyeVswXSwgY29uZmlnLmNvdW50cnlbMV0sCi0gICAgICAgICAgICAgICAgIGNvbmZpZy5vcmllbnRhdGlvbiwgY29uZmlnLmRlbnNpdHksCi0gICAgICAgICAgICAgICAgIFN0cmluZzgocGFyZW50SWRlbnQpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICBTdHJpbmc4KGlkZW50KS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgU3RyaW5nOChpdGVtSWRlbnQpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICBTdHJpbmc4KHN0cikuc3RyaW5nKCkpKTsKLQotICAgIGVyciA9IG91dFRhYmxlLT5hZGRCYWcoU291cmNlUG9zKGluLT5nZXRQcmludGFibGVTb3VyY2UoKSwgYmxvY2stPmdldExpbmVOdW1iZXIoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBteVBhY2thZ2UsIGN1clR5cGUsIGlkZW50LCBwYXJlbnRJZGVudCwgaXRlbUlkZW50LCBzdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAmc3BhbnMsICZjb25maWcsIG92ZXJ3cml0ZSwgZmFsc2UsIGN1ckZvcm1hdCk7Ci0gICAgcmV0dXJuIGVycjsKLX0KLQotLyoKLSAqIFJldHVybnMgdHJ1ZSBpZiBuZWVkbGUgaXMgb25lIG9mIHRoZSBlbGVtZW50cyBpbiB0aGUgY29tbWEtc2VwYXJhdGVkIGxpc3QKLSAqIGhheXN0YWNrLCBmYWxzZSBvdGhlcndpc2UuCi0gKi8KLWJvb2wgaXNJblByb2R1Y3RMaXN0KGNvbnN0IFN0cmluZzE2JiBuZWVkbGUsIGNvbnN0IFN0cmluZzE2JiBoYXlzdGFjaykgewotICAgIGNvbnN0IGNoYXIxNl90ICpuZWVkbGUyID0gbmVlZGxlLnN0cmluZygpOwotICAgIGNvbnN0IGNoYXIxNl90ICpoYXlzdGFjazIgPSBoYXlzdGFjay5zdHJpbmcoKTsKLSAgICBzaXplX3QgbmVlZGxlc2l6ZSA9IG5lZWRsZS5zaXplKCk7Ci0KLSAgICB3aGlsZSAoKmhheXN0YWNrMiAhPSAnXDAnKSB7Ci0gICAgICAgIGlmIChzdHJuY21wMTYoaGF5c3RhY2syLCBuZWVkbGUyLCBuZWVkbGVzaXplKSA9PSAwKSB7Ci0gICAgICAgICAgICBpZiAoaGF5c3RhY2syW25lZWRsZXNpemVdID09ICdcMCcgfHwgaGF5c3RhY2syW25lZWRsZXNpemVdID09ICcsJykgewotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgd2hpbGUgKCpoYXlzdGFjazIgIT0gJ1wwJyAmJiAqaGF5c3RhY2syICE9ICcsJykgewotICAgICAgICAgICAgaGF5c3RhY2syKys7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCpoYXlzdGFjazIgPT0gJywnKSB7Ci0gICAgICAgICAgICBoYXlzdGFjazIrKzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotLyoKLSAqIEEgc2ltcGxlIGNvbnRhaW5lciB0aGF0IGhvbGRzIGEgcmVzb3VyY2UgdHlwZSBhbmQgbmFtZS4gSXQgaXMgb3JkZXJlZCBmaXJzdCBieSB0eXBlIHRoZW4KLSAqIGJ5IG5hbWUuCi0gKi8KLXN0cnVjdCB0eXBlX2lkZW50X3BhaXJfdCB7Ci0gICAgU3RyaW5nMTYgdHlwZTsKLSAgICBTdHJpbmcxNiBpZGVudDsKLQotICAgIHR5cGVfaWRlbnRfcGFpcl90KCkgeyB9OwotICAgIHR5cGVfaWRlbnRfcGFpcl90KGNvbnN0IFN0cmluZzE2JiB0LCBjb25zdCBTdHJpbmcxNiYgaSkgOiB0eXBlKHQpLCBpZGVudChpKSB7IH0KLSAgICB0eXBlX2lkZW50X3BhaXJfdChjb25zdCB0eXBlX2lkZW50X3BhaXJfdCYgbykgOiB0eXBlKG8udHlwZSksIGlkZW50KG8uaWRlbnQpIHsgfQotICAgIGlubGluZSBib29sIG9wZXJhdG9yIDwgKGNvbnN0IHR5cGVfaWRlbnRfcGFpcl90JiBvKSBjb25zdCB7Ci0gICAgICAgIGludCBjbXAgPSBjb21wYXJlX3R5cGUodHlwZSwgby50eXBlKTsKLSAgICAgICAgaWYgKGNtcCA8IDApIHsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9IGVsc2UgaWYgKGNtcCA+IDApIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiBzdHJpY3RseV9vcmRlcl90eXBlKGlkZW50LCBvLmlkZW50KTsKLSAgICAgICAgfQotICAgIH0KLX07Ci0KLQotc3RhdHVzX3QgcGFyc2VBbmRBZGRFbnRyeShCdW5kbGUqIGJ1bmRsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPEFhcHRGaWxlPiYgaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICBSZXNYTUxUcmVlKiBibG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIG15UGFja2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBjdXJUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIGlkZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIGN1clRhZywKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY3VySXNTdHlsZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGN1ckZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNGb3JtYXR0ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgcHJvZHVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcHNldWRvbG9jYWxpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib29sIG92ZXJ3cml0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIEtleWVkVmVjdG9yPHR5cGVfaWRlbnRfcGFpcl90LCBib29sPiogc2tpcHBlZFJlc291cmNlTmFtZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVRhYmxlKiBvdXRUYWJsZSkKLXsKLSAgICBzdGF0dXNfdCBlcnI7Ci0KLSAgICBTdHJpbmcxNiBzdHI7Ci0gICAgVmVjdG9yPFN0cmluZ1Bvb2w6OmVudHJ5X3N0eWxlX3NwYW4+IHNwYW5zOwotICAgIGVyciA9IHBhcnNlU3R5bGVkU3RyaW5nKGJ1bmRsZSwgaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLnN0cmluZygpLCBibG9jaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJUYWcsICZzdHIsIGN1cklzU3R5bGVkID8gJnNwYW5zIDogTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Zvcm1hdHRlZCwgcHNldWRvbG9jYWxpemUpOwotCi0gICAgaWYgKGVyciA8IE5PX0VSUk9SKSB7IAotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLQotICAgIC8qCi0gICAgICogSWYgYSBwcm9kdWN0IHR5cGUgd2FzIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lCi0gICAgICogYW5kIGFsc28gaW4gdGhlIHN0cmluZywgYW5kIHRoZSB0d28gYXJlIG5vdCB0aGUgc2FtZSwKLSAgICAgKiByZXR1cm4gd2l0aG91dCBhZGRpbmcgdGhlIHN0cmluZy4KLSAgICAgKi8KLQotICAgIGNvbnN0IGNoYXIgKmJ1bmRsZVByb2R1Y3QgPSBidW5kbGUtPmdldFByb2R1Y3QoKTsKLSAgICBpZiAoYnVuZGxlUHJvZHVjdCA9PSBOVUxMKSB7Ci0gICAgICAgIGJ1bmRsZVByb2R1Y3QgPSAiIjsKLSAgICB9Ci0KLSAgICBpZiAocHJvZHVjdC5zaXplKCkgIT0gMCkgewotICAgICAgICAvKgotICAgICAgICAgKiBJZiB0aGUgY29tbWFuZC1saW5lLXNwZWNpZmllZCBwcm9kdWN0IGlzIGVtcHR5LCBvbmx5ICJkZWZhdWx0IgotICAgICAgICAgKiBtYXRjaGVzLiAgT3RoZXIgdmFyaWFudHMgYXJlIHNraXBwZWQuICBUaGlzIGlzIHNvIGdlbmVyYXRpb24KLSAgICAgICAgICogb2YgdGhlIFIuamF2YSBmaWxlIHdoZW4gdGhlIHByb2R1Y3QgaXMgbm90IGtub3duIGlzIHByZWRpY3RhYmxlLgotICAgICAgICAgKi8KLQotICAgICAgICBpZiAoYnVuZGxlUHJvZHVjdFswXSA9PSAnXDAnKSB7Ci0gICAgICAgICAgICBpZiAoc3RyY21wMTYoU3RyaW5nMTYoImRlZmF1bHQiKS5zdHJpbmcoKSwgcHJvZHVjdC5zdHJpbmcoKSkgIT0gMCkgewotICAgICAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgICAgICogVGhpcyBzdHJpbmcgaGFzIGEgcHJvZHVjdCBvdGhlciB0aGFuICdkZWZhdWx0Jy4gRG8gbm90IGFkZCBpdCwKLSAgICAgICAgICAgICAgICAgKiBidXQgcmVjb3JkIGl0IHNvIHRoYXQgaWYgd2UgZG8gbm90IHNlZSB0aGUgc2FtZSBzdHJpbmcgd2l0aAotICAgICAgICAgICAgICAgICAqIHByb2R1Y3QgJ2RlZmF1bHQnIG9yIG5vIHByb2R1Y3QsIHRoZW4gcmVwb3J0IGFuIGVycm9yLgotICAgICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgIHNraXBwZWRSZXNvdXJjZU5hbWVzLT5yZXBsYWNlVmFsdWVGb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlX2lkZW50X3BhaXJfdChjdXJUeXBlLCBpZGVudCksIHRydWUpOwotICAgICAgICAgICAgICAgIHJldHVybiBOT19FUlJPUjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBUaGUgY29tbWFuZC1saW5lIHByb2R1Y3QgaXMgbm90IGVtcHR5LgotICAgICAgICAgICAgICogSWYgdGhlIHByb2R1Y3QgZm9yIHRoaXMgc3RyaW5nIGlzIG9uIHRoZSBjb21tYW5kLWxpbmUgbGlzdCwKLSAgICAgICAgICAgICAqIGl0IG1hdGNoZXMuICAiZGVmYXVsdCIgYWxzbyBtYXRjaGVzLCBidXQgb25seSBpZiBub3RoaW5nCi0gICAgICAgICAgICAgKiBlbHNlIGhhcyBtYXRjaGVkIGFscmVhZHkuCi0gICAgICAgICAgICAgKi8KLQotICAgICAgICAgICAgaWYgKGlzSW5Qcm9kdWN0TGlzdChwcm9kdWN0LCBTdHJpbmcxNihidW5kbGVQcm9kdWN0KSkpIHsKLSAgICAgICAgICAgICAgICA7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcDE2KFN0cmluZzE2KCJkZWZhdWx0Iikuc3RyaW5nKCksIHByb2R1Y3Quc3RyaW5nKCkpID09IDAgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgIW91dFRhYmxlLT5oYXNCYWdPckVudHJ5KG15UGFja2FnZSwgY3VyVHlwZSwgaWRlbnQsIGNvbmZpZykpIHsKLSAgICAgICAgICAgICAgICA7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJldHVybiBOT19FUlJPUjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIE5PSVNZKHByaW50ZigiQWRkaW5nIHJlc291cmNlIGVudHJ5IGw9JWMlYyBjPSVjJWMgb3JpZW49JWQgZD0lZCBpZD0lczogJXNcbiIsCi0gICAgICAgICAgICAgICAgIGNvbmZpZy5sYW5ndWFnZVswXSwgY29uZmlnLmxhbmd1YWdlWzFdLAotICAgICAgICAgICAgICAgICBjb25maWcuY291bnRyeVswXSwgY29uZmlnLmNvdW50cnlbMV0sCi0gICAgICAgICAgICAgICAgIGNvbmZpZy5vcmllbnRhdGlvbiwgY29uZmlnLmRlbnNpdHksCi0gICAgICAgICAgICAgICAgIFN0cmluZzgoaWRlbnQpLnN0cmluZygpLCBTdHJpbmc4KHN0cikuc3RyaW5nKCkpKTsKLQotICAgIGVyciA9IG91dFRhYmxlLT5hZGRFbnRyeShTb3VyY2VQb3MoaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLCBibG9jay0+Z2V0TGluZU51bWJlcigpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXlQYWNrYWdlLCBjdXJUeXBlLCBpZGVudCwgc3RyLCAmc3BhbnMsICZjb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCBjdXJGb3JtYXQsIG92ZXJ3cml0ZSk7Ci0KLSAgICByZXR1cm4gZXJyOwotfQotCi1zdGF0dXNfdCBjb21waWxlUmVzb3VyY2VGaWxlKEJ1bmRsZSogYnVuZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxBYXB0RmlsZT4mIGluLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNUYWJsZV9jb25maWcmIGRlZlBhcmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCBvdmVyd3JpdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVGFibGUqIG91dFRhYmxlKQotewotICAgIFJlc1hNTFRyZWUgYmxvY2s7Ci0gICAgc3RhdHVzX3QgZXJyID0gcGFyc2VYTUxSZXNvdXJjZShpbiwgJmJsb2NrLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLQotICAgIC8vIFRvcC1sZXZlbCB0YWcuCi0gICAgY29uc3QgU3RyaW5nMTYgcmVzb3VyY2VzMTYoInJlc291cmNlcyIpOwotCi0gICAgLy8gSWRlbnRpZmllciBkZWNsYXJhdGlvbiB0YWdzLgotICAgIGNvbnN0IFN0cmluZzE2IGRlY2xhcmVfc3R5bGVhYmxlMTYoImRlY2xhcmUtc3R5bGVhYmxlIik7Ci0gICAgY29uc3QgU3RyaW5nMTYgYXR0cjE2KCJhdHRyIik7Ci0KLSAgICAvLyBEYXRhIGNyZWF0aW9uIG9yZ2FuaXphdGlvbmFsIHRhZ3MuCi0gICAgY29uc3QgU3RyaW5nMTYgc3RyaW5nMTYoInN0cmluZyIpOwotICAgIGNvbnN0IFN0cmluZzE2IGRyYXdhYmxlMTYoImRyYXdhYmxlIik7Ci0gICAgY29uc3QgU3RyaW5nMTYgY29sb3IxNigiY29sb3IiKTsKLSAgICBjb25zdCBTdHJpbmcxNiBib29sMTYoImJvb2wiKTsKLSAgICBjb25zdCBTdHJpbmcxNiBpbnRlZ2VyMTYoImludGVnZXIiKTsKLSAgICBjb25zdCBTdHJpbmcxNiBkaW1lbjE2KCJkaW1lbiIpOwotICAgIGNvbnN0IFN0cmluZzE2IGZyYWN0aW9uMTYoImZyYWN0aW9uIik7Ci0gICAgY29uc3QgU3RyaW5nMTYgc3R5bGUxNigic3R5bGUiKTsKLSAgICBjb25zdCBTdHJpbmcxNiBwbHVyYWxzMTYoInBsdXJhbHMiKTsKLSAgICBjb25zdCBTdHJpbmcxNiBhcnJheTE2KCJhcnJheSIpOwotICAgIGNvbnN0IFN0cmluZzE2IHN0cmluZ19hcnJheTE2KCJzdHJpbmctYXJyYXkiKTsKLSAgICBjb25zdCBTdHJpbmcxNiBpbnRlZ2VyX2FycmF5MTYoImludGVnZXItYXJyYXkiKTsKLSAgICBjb25zdCBTdHJpbmcxNiBwdWJsaWMxNigicHVibGljIik7Ci0gICAgY29uc3QgU3RyaW5nMTYgcHVibGljX3BhZGRpbmcxNigicHVibGljLXBhZGRpbmciKTsKLSAgICBjb25zdCBTdHJpbmcxNiBwcml2YXRlX3N5bWJvbHMxNigicHJpdmF0ZS1zeW1ib2xzIik7Ci0gICAgY29uc3QgU3RyaW5nMTYgamF2YV9zeW1ib2wxNigiamF2YS1zeW1ib2wiKTsKLSAgICBjb25zdCBTdHJpbmcxNiBhZGRfcmVzb3VyY2UxNigiYWRkLXJlc291cmNlIik7Ci0gICAgY29uc3QgU3RyaW5nMTYgc2tpcDE2KCJza2lwIik7Ci0gICAgY29uc3QgU3RyaW5nMTYgZWF0X2NvbW1lbnQxNigiZWF0LWNvbW1lbnQiKTsKLQotICAgIC8vIERhdGEgY3JlYXRpb24gdGFncy4KLSAgICBjb25zdCBTdHJpbmcxNiBiYWcxNigiYmFnIik7Ci0gICAgY29uc3QgU3RyaW5nMTYgaXRlbTE2KCJpdGVtIik7Ci0KLSAgICAvLyBBdHRyaWJ1dGUgdHlwZSBjb25zdGFudHMuCi0gICAgY29uc3QgU3RyaW5nMTYgZW51bTE2KCJlbnVtIik7Ci0KLSAgICAvLyBwbHVyYWwgdmFsdWVzCi0gICAgY29uc3QgU3RyaW5nMTYgb3RoZXIxNigib3RoZXIiKTsKLSAgICBjb25zdCBTdHJpbmcxNiBxdWFudGl0eU90aGVyMTYoIl5vdGhlciIpOwotICAgIGNvbnN0IFN0cmluZzE2IHplcm8xNigiemVybyIpOwotICAgIGNvbnN0IFN0cmluZzE2IHF1YW50aXR5WmVybzE2KCJeemVybyIpOwotICAgIGNvbnN0IFN0cmluZzE2IG9uZTE2KCJvbmUiKTsKLSAgICBjb25zdCBTdHJpbmcxNiBxdWFudGl0eU9uZTE2KCJeb25lIik7Ci0gICAgY29uc3QgU3RyaW5nMTYgdHdvMTYoInR3byIpOwotICAgIGNvbnN0IFN0cmluZzE2IHF1YW50aXR5VHdvMTYoIl50d28iKTsKLSAgICBjb25zdCBTdHJpbmcxNiBmZXcxNigiZmV3Iik7Ci0gICAgY29uc3QgU3RyaW5nMTYgcXVhbnRpdHlGZXcxNigiXmZldyIpOwotICAgIGNvbnN0IFN0cmluZzE2IG1hbnkxNigibWFueSIpOwotICAgIGNvbnN0IFN0cmluZzE2IHF1YW50aXR5TWFueTE2KCJebWFueSIpOwotCi0gICAgLy8gdXNlZnVsIGF0dHJpYnV0ZSBuYW1lcyBhbmQgc3BlY2lhbCB2YWx1ZXMKLSAgICBjb25zdCBTdHJpbmcxNiBuYW1lMTYoIm5hbWUiKTsKLSAgICBjb25zdCBTdHJpbmcxNiB0cmFuc2xhdGFibGUxNigidHJhbnNsYXRhYmxlIik7Ci0gICAgY29uc3QgU3RyaW5nMTYgZm9ybWF0dGVkMTYoImZvcm1hdHRlZCIpOwotICAgIGNvbnN0IFN0cmluZzE2IGZhbHNlMTYoImZhbHNlIik7Ci0KLSAgICBjb25zdCBTdHJpbmcxNiBteVBhY2thZ2UoYXNzZXRzLT5nZXRQYWNrYWdlKCkpOwotCi0gICAgYm9vbCBoYXNFcnJvcnMgPSBmYWxzZTsKLQotICAgIGJvb2wgZmlsZUlzVHJhbnNsYXRhYmxlID0gdHJ1ZTsKLSAgICBpZiAoc3Ryc3RyKGluLT5nZXRQcmludGFibGVTb3VyY2UoKS5zdHJpbmcoKSwgImRvbm90dHJhbnNsYXRlIikgIT0gTlVMTCkgewotICAgICAgICBmaWxlSXNUcmFuc2xhdGFibGUgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICBEZWZhdWx0S2V5ZWRWZWN0b3I8U3RyaW5nMTYsIHVpbnQzMl90PiBuZXh0UHVibGljSWQoMCk7Ci0KLSAgICAvLyBTdG9yZXMgdGhlIHJlc291cmNlIG5hbWVzIHRoYXQgd2VyZSBza2lwcGVkLiBUeXBpY2FsbHkgdGhpcyBoYXBwZW5zIHdoZW4KLSAgICAvLyBBQVBUIGlzIGludm9rZWQgd2l0aG91dCBhIHByb2R1Y3Qgc3BlY2lmaWVkIGFuZCBhIHJlc291cmNlIGhhcyBubwotICAgIC8vICdkZWZhdWx0JyBwcm9kdWN0IGF0dHJpYnV0ZS4KLSAgICBLZXllZFZlY3Rvcjx0eXBlX2lkZW50X3BhaXJfdCwgYm9vbD4gc2tpcHBlZFJlc291cmNlTmFtZXM7Ci0KLSAgICBSZXNYTUxUcmVlOjpldmVudF9jb2RlX3QgY29kZTsKLSAgICBkbyB7Ci0gICAgICAgIGNvZGUgPSBibG9jay5uZXh0KCk7Ci0gICAgfSB3aGlsZSAoY29kZSA9PSBSZXNYTUxUcmVlOjpTVEFSVF9OQU1FU1BBQ0UpOwotCi0gICAgc2l6ZV90IGxlbjsKLSAgICBpZiAoY29kZSAhPSBSZXNYTUxUcmVlOjpTVEFSVF9UQUcpIHsKLSAgICAgICAgU291cmNlUG9zKGluLT5nZXRQcmludGFibGVTb3VyY2UoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpKS5lcnJvcigKLSAgICAgICAgICAgICAgICAiTm8gc3RhcnQgdGFnIGZvdW5kXG4iKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotICAgIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgcmVzb3VyY2VzMTYuc3RyaW5nKCkpICE9IDApIHsKLSAgICAgICAgU291cmNlUG9zKGluLT5nZXRQcmludGFibGVTb3VyY2UoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpKS5lcnJvcigKLSAgICAgICAgICAgICAgICAiSW52YWxpZCBzdGFydCB0YWcgJXNcbiIsIFN0cmluZzgoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbikpLnN0cmluZygpKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotCi0gICAgUmVzVGFibGVfY29uZmlnIGN1clBhcmFtcyhkZWZQYXJhbXMpOwotCi0gICAgUmVzVGFibGVfY29uZmlnIHBzZXVkb1BhcmFtcyhjdXJQYXJhbXMpOwotICAgICAgICBwc2V1ZG9QYXJhbXMubGFuZ3VhZ2VbMF0gPSAneic7Ci0gICAgICAgIHBzZXVkb1BhcmFtcy5sYW5ndWFnZVsxXSA9ICd6JzsKLSAgICAgICAgcHNldWRvUGFyYW1zLmNvdW50cnlbMF0gPSAnWic7Ci0gICAgICAgIHBzZXVkb1BhcmFtcy5jb3VudHJ5WzFdID0gJ1onOwotCi0gICAgd2hpbGUgKChjb2RlPWJsb2NrLm5leHQoKSkgIT0gUmVzWE1MVHJlZTo6RU5EX0RPQ1VNRU5UICYmIGNvZGUgIT0gUmVzWE1MVHJlZTo6QkFEX0RPQ1VNRU5UKSB7Ci0gICAgICAgIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OlNUQVJUX1RBRykgewotICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYqIGN1clRhZyA9IE5VTEw7Ci0gICAgICAgICAgICBTdHJpbmcxNiBjdXJUeXBlOwotICAgICAgICAgICAgaW50MzJfdCBjdXJGb3JtYXQgPSBSZXNUYWJsZV9tYXA6OlRZUEVfQU5ZOwotICAgICAgICAgICAgYm9vbCBjdXJJc0JhZyA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBjdXJJc0JhZ1JlcGxhY2VPbk92ZXJ3cml0ZSA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBjdXJJc1N0eWxlZCA9IGZhbHNlOwotICAgICAgICAgICAgYm9vbCBjdXJJc1BzZXVkb2xvY2FsaXphYmxlID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGN1cklzRm9ybWF0dGVkID0gZmlsZUlzVHJhbnNsYXRhYmxlOwotICAgICAgICAgICAgYm9vbCBsb2NhbEhhc0Vycm9ycyA9IGZhbHNlOwotCi0gICAgICAgICAgICBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIHNraXAxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIHdoaWxlICgoY29kZT1ibG9jay5uZXh0KCkpICE9IFJlc1hNTFRyZWU6OkVORF9ET0NVTUVOVAotICAgICAgICAgICAgICAgICAgICAgICAgJiYgY29kZSAhPSBSZXNYTUxUcmVlOjpCQURfRE9DVU1FTlQpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6RU5EX1RBRykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBza2lwMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgZWF0X2NvbW1lbnQxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIHdoaWxlICgoY29kZT1ibG9jay5uZXh0KCkpICE9IFJlc1hNTFRyZWU6OkVORF9ET0NVTUVOVAotICAgICAgICAgICAgICAgICAgICAgICAgJiYgY29kZSAhPSBSZXNYTUxUcmVlOjpCQURfRE9DVU1FTlQpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6RU5EX1RBRykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBlYXRfY29tbWVudDE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIHB1YmxpYzE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgU291cmNlUG9zIHNyY1Bvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBTdHJpbmcxNiB0eXBlOwotICAgICAgICAgICAgICAgIHNzaXplX3QgdHlwZUlkeCA9IGJsb2NrLmluZGV4T2ZBdHRyaWJ1dGUoTlVMTCwgInR5cGUiKTsKLSAgICAgICAgICAgICAgICBpZiAodHlwZUlkeCA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgc3JjUG9zLmVycm9yKCJBICd0eXBlJyBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgZm9yIDxwdWJsaWM+XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gbG9jYWxIYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB0eXBlID0gU3RyaW5nMTYoYmxvY2suZ2V0QXR0cmlidXRlU3RyaW5nVmFsdWUodHlwZUlkeCwgJmxlbikpOwotCi0gICAgICAgICAgICAgICAgU3RyaW5nMTYgbmFtZTsKLSAgICAgICAgICAgICAgICBzc2l6ZV90IG5hbWVJZHggPSBibG9jay5pbmRleE9mQXR0cmlidXRlKE5VTEwsICJuYW1lIik7Ci0gICAgICAgICAgICAgICAgaWYgKG5hbWVJZHggPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNyY1Bvcy5lcnJvcigiQSAnbmFtZScgYXR0cmlidXRlIGlzIHJlcXVpcmVkIGZvciA8cHVibGljPlxuIik7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbmFtZSA9IFN0cmluZzE2KGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKG5hbWVJZHgsICZsZW4pKTsKLQotICAgICAgICAgICAgICAgIHVpbnQzMl90IGlkZW50ID0gMDsKLSAgICAgICAgICAgICAgICBzc2l6ZV90IGlkZW50SWR4ID0gYmxvY2suaW5kZXhPZkF0dHJpYnV0ZShOVUxMLCAiaWQiKTsKLSAgICAgICAgICAgICAgICBpZiAoaWRlbnRJZHggPj0gMCkgewotICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogaWRlbnRTdHIgPSBibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShpZGVudElkeCwgJmxlbik7Ci0gICAgICAgICAgICAgICAgICAgIFJlc192YWx1ZSBpZGVudFZhbHVlOwotICAgICAgICAgICAgICAgICAgICBpZiAoIVJlc1RhYmxlOjpzdHJpbmdUb0ludChpZGVudFN0ciwgbGVuLCAmaWRlbnRWYWx1ZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNyY1Bvcy5lcnJvcigiR2l2ZW4gJ2lkJyBhdHRyaWJ1dGUgaXMgbm90IGFuIGludGVnZXI6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKGlkZW50SWR4LCAmbGVuKSkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gbG9jYWxIYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnQgPSBpZGVudFZhbHVlLmRhdGE7Ci0gICAgICAgICAgICAgICAgICAgICAgICBuZXh0UHVibGljSWQucmVwbGFjZVZhbHVlRm9yKHR5cGUsIGlkZW50KzEpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0UHVibGljSWQuaW5kZXhPZktleSh0eXBlKSA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgc3JjUG9zLmVycm9yKCJObyAnaWQnIGF0dHJpYnV0ZSBzdXBwbGllZCA8cHVibGljPiwiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBhbmQgbm8gcHJldmlvdXMgaWQgZGVmaW5lZCBpbiB0aGlzIGZpbGUuXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gbG9jYWxIYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWxvY2FsSGFzRXJyb3JzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlkZW50ID0gbmV4dFB1YmxpY0lkLnZhbHVlRm9yKHR5cGUpOwotICAgICAgICAgICAgICAgICAgICBuZXh0UHVibGljSWQucmVwbGFjZVZhbHVlRm9yKHR5cGUsIGlkZW50KzEpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmICghbG9jYWxIYXNFcnJvcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgZXJyID0gb3V0VGFibGUtPmFkZFB1YmxpYyhzcmNQb3MsIG15UGFja2FnZSwgdHlwZSwgbmFtZSwgaWRlbnQpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZXJyIDwgTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoIWxvY2FsSGFzRXJyb3JzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNwPEFhcHRTeW1ib2xzPiBzeW1ib2xzID0gYXNzZXRzLT5nZXRTeW1ib2xzRm9yKFN0cmluZzgoIlIiKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzeW1ib2xzICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbHMgPSBzeW1ib2xzLT5hZGROZXN0ZWRTeW1ib2woU3RyaW5nOCh0eXBlKSwgc3JjUG9zKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBpZiAoc3ltYm9scyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLT5tYWtlU3ltYm9sUHVibGljKFN0cmluZzgobmFtZSksIHNyY1Bvcyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcxNiBjb21tZW50KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbW1lbnQoJmxlbikgPyBibG9jay5nZXRDb21tZW50KCZsZW4pIDogbnVsU3RyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbHMtPmFwcGVuZENvbW1lbnQoU3RyaW5nOChuYW1lKSwgY29tbWVudCwgc3JjUG9zKTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNyY1Bvcy5lcnJvcigiVW5hYmxlIHRvIGNyZWF0ZSBzeW1ib2xzIVxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSBsb2NhbEhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB3aGlsZSAoKGNvZGU9YmxvY2submV4dCgpKSAhPSBSZXNYTUxUcmVlOjpFTkRfRE9DVU1FTlQgJiYgY29kZSAhPSBSZXNYTUxUcmVlOjpCQURfRE9DVU1FTlQpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6RU5EX1RBRykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBwdWJsaWMxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBwdWJsaWNfcGFkZGluZzE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgU291cmNlUG9zIHNyY1Bvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBTdHJpbmcxNiB0eXBlOwotICAgICAgICAgICAgICAgIHNzaXplX3QgdHlwZUlkeCA9IGJsb2NrLmluZGV4T2ZBdHRyaWJ1dGUoTlVMTCwgInR5cGUiKTsKLSAgICAgICAgICAgICAgICBpZiAodHlwZUlkeCA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgc3JjUG9zLmVycm9yKCJBICd0eXBlJyBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgZm9yIDxwdWJsaWMtcGFkZGluZz5cbiIpOwotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSBsb2NhbEhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHR5cGUgPSBTdHJpbmcxNihibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZSh0eXBlSWR4LCAmbGVuKSk7Ci0KLSAgICAgICAgICAgICAgICBTdHJpbmcxNiBuYW1lOwotICAgICAgICAgICAgICAgIHNzaXplX3QgbmFtZUlkeCA9IGJsb2NrLmluZGV4T2ZBdHRyaWJ1dGUoTlVMTCwgIm5hbWUiKTsKLSAgICAgICAgICAgICAgICBpZiAobmFtZUlkeCA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgc3JjUG9zLmVycm9yKCJBICduYW1lJyBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgZm9yIDxwdWJsaWMtcGFkZGluZz5cbiIpOwotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSBsb2NhbEhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG5hbWUgPSBTdHJpbmcxNihibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShuYW1lSWR4LCAmbGVuKSk7Ci0KLSAgICAgICAgICAgICAgICB1aW50MzJfdCBzdGFydCA9IDA7Ci0gICAgICAgICAgICAgICAgc3NpemVfdCBzdGFydElkeCA9IGJsb2NrLmluZGV4T2ZBdHRyaWJ1dGUoTlVMTCwgInN0YXJ0Iik7Ci0gICAgICAgICAgICAgICAgaWYgKHN0YXJ0SWR4ID49IDApIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhcjE2X3QqIHN0YXJ0U3RyID0gYmxvY2suZ2V0QXR0cmlidXRlU3RyaW5nVmFsdWUoc3RhcnRJZHgsICZsZW4pOwotICAgICAgICAgICAgICAgICAgICBSZXNfdmFsdWUgc3RhcnRWYWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFSZXNUYWJsZTo6c3RyaW5nVG9JbnQoc3RhcnRTdHIsIGxlbiwgJnN0YXJ0VmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzcmNQb3MuZXJyb3IoIkdpdmVuICdzdGFydCcgYXR0cmlidXRlIGlzIG5vdCBhbiBpbnRlZ2VyOiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShzdGFydElkeCwgJmxlbikpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gc3RhcnRWYWx1ZS5kYXRhOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuZXh0UHVibGljSWQuaW5kZXhPZktleSh0eXBlKSA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgc3JjUG9zLmVycm9yKCJObyAnc3RhcnQnIGF0dHJpYnV0ZSBzdXBwbGllZCA8cHVibGljLXBhZGRpbmc+LCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGFuZCBubyBwcmV2aW91cyBpZCBkZWZpbmVkIGluIHRoaXMgZmlsZS5cbiIpOwotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSBsb2NhbEhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghbG9jYWxIYXNFcnJvcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBuZXh0UHVibGljSWQudmFsdWVGb3IodHlwZSk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgdWludDMyX3QgZW5kID0gMDsKLSAgICAgICAgICAgICAgICBzc2l6ZV90IGVuZElkeCA9IGJsb2NrLmluZGV4T2ZBdHRyaWJ1dGUoTlVMTCwgImVuZCIpOwotICAgICAgICAgICAgICAgIGlmIChlbmRJZHggPj0gMCkgewotICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogZW5kU3RyID0gYmxvY2suZ2V0QXR0cmlidXRlU3RyaW5nVmFsdWUoZW5kSWR4LCAmbGVuKTsKLSAgICAgICAgICAgICAgICAgICAgUmVzX3ZhbHVlIGVuZFZhbHVlOwotICAgICAgICAgICAgICAgICAgICBpZiAoIVJlc1RhYmxlOjpzdHJpbmdUb0ludChlbmRTdHIsIGxlbiwgJmVuZFZhbHVlKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgc3JjUG9zLmVycm9yKCJHaXZlbiAnZW5kJyBhdHRyaWJ1dGUgaXMgbm90IGFuIGludGVnZXI6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKGVuZElkeCwgJmxlbikpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IGVuZFZhbHVlLmRhdGE7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBzcmNQb3MuZXJyb3IoIk5vICdlbmQnIGF0dHJpYnV0ZSBzdXBwbGllZCA8cHVibGljLXBhZGRpbmc+XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gbG9jYWxIYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChlbmQgPj0gc3RhcnQpIHsKLSAgICAgICAgICAgICAgICAgICAgbmV4dFB1YmxpY0lkLnJlcGxhY2VWYWx1ZUZvcih0eXBlLCBlbmQrMSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgc3JjUG9zLmVycm9yKCJQYWRkaW5nIHN0YXJ0ICcldWwnIGlzIGFmdGVyIGVuZCAnJXVsJ1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCwgZW5kKTsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gbG9jYWxIYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBTdHJpbmcxNiBjb21tZW50KAotICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21tZW50KCZsZW4pID8gYmxvY2suZ2V0Q29tbWVudCgmbGVuKSA6IG51bFN0cik7Ci0gICAgICAgICAgICAgICAgZm9yICh1aW50MzJfdCBjdXJJZGVudD1zdGFydDsgY3VySWRlbnQ8PWVuZDsgY3VySWRlbnQrKykgewotICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxIYXNFcnJvcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZzE2IGN1ck5hbWUobmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIGNoYXIgYnVmWzY0XTsKLSAgICAgICAgICAgICAgICAgICAgc3ByaW50ZihidWYsICIlZCIsIChpbnQpKGVuZC1jdXJJZGVudCsxKSk7Ci0gICAgICAgICAgICAgICAgICAgIGN1ck5hbWUuYXBwZW5kKFN0cmluZzE2KGJ1ZikpOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgZXJyID0gb3V0VGFibGUtPmFkZEVudHJ5KHNyY1BvcywgbXlQYWNrYWdlLCB0eXBlLCBjdXJOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nMTYoInBhZGRpbmciKSwgTlVMTCwgJmN1clBhcmFtcywgZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNUYWJsZV9tYXA6OlRZUEVfU1RSSU5HLCBvdmVyd3JpdGUpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZXJyIDwgTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGVyciA9IG91dFRhYmxlLT5hZGRQdWJsaWMoc3JjUG9zLCBteVBhY2thZ2UsIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyTmFtZSwgY3VySWRlbnQpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZXJyIDwgTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHNwPEFhcHRTeW1ib2xzPiBzeW1ib2xzID0gYXNzZXRzLT5nZXRTeW1ib2xzRm9yKFN0cmluZzgoIlIiKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzeW1ib2xzICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbHMgPSBzeW1ib2xzLT5hZGROZXN0ZWRTeW1ib2woU3RyaW5nOCh0eXBlKSwgc3JjUG9zKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBpZiAoc3ltYm9scyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLT5tYWtlU3ltYm9sUHVibGljKFN0cmluZzgoY3VyTmFtZSksIHNyY1Bvcyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLT5hcHBlbmRDb21tZW50KFN0cmluZzgoY3VyTmFtZSksIGNvbW1lbnQsIHNyY1Bvcyk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzcmNQb3MuZXJyb3IoIlVuYWJsZSB0byBjcmVhdGUgc3ltYm9scyFcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gbG9jYWxIYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgd2hpbGUgKChjb2RlPWJsb2NrLm5leHQoKSkgIT0gUmVzWE1MVHJlZTo6RU5EX0RPQ1VNRU5UICYmIGNvZGUgIT0gUmVzWE1MVHJlZTo6QkFEX0RPQ1VNRU5UKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OkVORF9UQUcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgcHVibGljX3BhZGRpbmcxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBwcml2YXRlX3N5bWJvbHMxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIFN0cmluZzE2IHBrZzsKLSAgICAgICAgICAgICAgICBzc2l6ZV90IHBrZ0lkeCA9IGJsb2NrLmluZGV4T2ZBdHRyaWJ1dGUoTlVMTCwgInBhY2thZ2UiKTsKLSAgICAgICAgICAgICAgICBpZiAocGtnSWR4IDwgMCkgewotICAgICAgICAgICAgICAgICAgICBTb3VyY2VQb3MoaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLCBibG9jay5nZXRMaW5lTnVtYmVyKCkpLmVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBICdwYWNrYWdlJyBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgZm9yIDxwcml2YXRlLXN5bWJvbHM+XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gbG9jYWxIYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwa2cgPSBTdHJpbmcxNihibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShwa2dJZHgsICZsZW4pKTsKLSAgICAgICAgICAgICAgICBpZiAoIWxvY2FsSGFzRXJyb3JzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2V0cy0+c2V0U3ltYm9sc1ByaXZhdGVQYWNrYWdlKFN0cmluZzgocGtnKSk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgd2hpbGUgKChjb2RlPWJsb2NrLm5leHQoKSkgIT0gUmVzWE1MVHJlZTo6RU5EX0RPQ1VNRU5UICYmIGNvZGUgIT0gUmVzWE1MVHJlZTo6QkFEX0RPQ1VNRU5UKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OkVORF9UQUcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgcHJpdmF0ZV9zeW1ib2xzMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgamF2YV9zeW1ib2wxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIFNvdXJjZVBvcyBzcmNQb3MoaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLCBibG9jay5nZXRMaW5lTnVtYmVyKCkpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgU3RyaW5nMTYgdHlwZTsKLSAgICAgICAgICAgICAgICBzc2l6ZV90IHR5cGVJZHggPSBibG9jay5pbmRleE9mQXR0cmlidXRlKE5VTEwsICJ0eXBlIik7Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGVJZHggPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNyY1Bvcy5lcnJvcigiQSAndHlwZScgYXR0cmlidXRlIGlzIHJlcXVpcmVkIGZvciA8cHVibGljPlxuIik7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdHlwZSA9IFN0cmluZzE2KGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKHR5cGVJZHgsICZsZW4pKTsKLQotICAgICAgICAgICAgICAgIFN0cmluZzE2IG5hbWU7Ci0gICAgICAgICAgICAgICAgc3NpemVfdCBuYW1lSWR4ID0gYmxvY2suaW5kZXhPZkF0dHJpYnV0ZShOVUxMLCAibmFtZSIpOwotICAgICAgICAgICAgICAgIGlmIChuYW1lSWR4IDwgMCkgewotICAgICAgICAgICAgICAgICAgICBzcmNQb3MuZXJyb3IoIkEgJ25hbWUnIGF0dHJpYnV0ZSBpcyByZXF1aXJlZCBmb3IgPHB1YmxpYz5cbiIpOwotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSBsb2NhbEhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG5hbWUgPSBTdHJpbmcxNihibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShuYW1lSWR4LCAmbGVuKSk7Ci0KLSAgICAgICAgICAgICAgICBzcDxBYXB0U3ltYm9scz4gc3ltYm9scyA9IGFzc2V0cy0+Z2V0SmF2YVN5bWJvbHNGb3IoU3RyaW5nOCgiUiIpKTsKLSAgICAgICAgICAgICAgICBpZiAoc3ltYm9scyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIHN5bWJvbHMgPSBzeW1ib2xzLT5hZGROZXN0ZWRTeW1ib2woU3RyaW5nOCh0eXBlKSwgc3JjUG9zKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHN5bWJvbHMgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLT5tYWtlU3ltYm9sSmF2YVN5bWJvbChTdHJpbmc4KG5hbWUpLCBzcmNQb3MpOwotICAgICAgICAgICAgICAgICAgICBTdHJpbmcxNiBjb21tZW50KAotICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2suZ2V0Q29tbWVudCgmbGVuKSA/IGJsb2NrLmdldENvbW1lbnQoJmxlbikgOiBudWxTdHIpOwotICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLT5hcHBlbmRDb21tZW50KFN0cmluZzgobmFtZSksIGNvbW1lbnQsIHNyY1Bvcyk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgc3JjUG9zLmVycm9yKCJVbmFibGUgdG8gY3JlYXRlIHN5bWJvbHMhXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gbG9jYWxIYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHdoaWxlICgoY29kZT1ibG9jay5uZXh0KCkpICE9IFJlc1hNTFRyZWU6OkVORF9ET0NVTUVOVCAmJiBjb2RlICE9IFJlc1hNTFRyZWU6OkJBRF9ET0NVTUVOVCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoY29kZSA9PSBSZXNYTUxUcmVlOjpFTkRfVEFHKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIGphdmFfc3ltYm9sMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotCi0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBhZGRfcmVzb3VyY2UxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIFNvdXJjZVBvcyBzcmNQb3MoaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLCBibG9jay5nZXRMaW5lTnVtYmVyKCkpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgU3RyaW5nMTYgdHlwZU5hbWU7Ci0gICAgICAgICAgICAgICAgc3NpemVfdCB0eXBlSWR4ID0gYmxvY2suaW5kZXhPZkF0dHJpYnV0ZShOVUxMLCAidHlwZSIpOwotICAgICAgICAgICAgICAgIGlmICh0eXBlSWR4IDwgMCkgewotICAgICAgICAgICAgICAgICAgICBzcmNQb3MuZXJyb3IoIkEgJ3R5cGUnIGF0dHJpYnV0ZSBpcyByZXF1aXJlZCBmb3IgPGFkZC1yZXNvdXJjZT5cbiIpOwotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSBsb2NhbEhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHR5cGVOYW1lID0gU3RyaW5nMTYoYmxvY2suZ2V0QXR0cmlidXRlU3RyaW5nVmFsdWUodHlwZUlkeCwgJmxlbikpOwotCi0gICAgICAgICAgICAgICAgU3RyaW5nMTYgbmFtZTsKLSAgICAgICAgICAgICAgICBzc2l6ZV90IG5hbWVJZHggPSBibG9jay5pbmRleE9mQXR0cmlidXRlKE5VTEwsICJuYW1lIik7Ci0gICAgICAgICAgICAgICAgaWYgKG5hbWVJZHggPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNyY1Bvcy5lcnJvcigiQSAnbmFtZScgYXR0cmlidXRlIGlzIHJlcXVpcmVkIGZvciA8YWRkLXJlc291cmNlPlxuIik7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbmFtZSA9IFN0cmluZzE2KGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKG5hbWVJZHgsICZsZW4pKTsKLQotICAgICAgICAgICAgICAgIG91dFRhYmxlLT5jYW5BZGRFbnRyeShzcmNQb3MsIG15UGFja2FnZSwgdHlwZU5hbWUsIG5hbWUpOwotCi0gICAgICAgICAgICAgICAgd2hpbGUgKChjb2RlPWJsb2NrLm5leHQoKSkgIT0gUmVzWE1MVHJlZTo6RU5EX0RPQ1VNRU5UICYmIGNvZGUgIT0gUmVzWE1MVHJlZTo6QkFEX0RPQ1VNRU5UKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OkVORF9UQUcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgYWRkX3Jlc291cmNlMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIGRlY2xhcmVfc3R5bGVhYmxlMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICBTb3VyY2VQb3Mgc3JjUG9zKGluLT5nZXRQcmludGFibGVTb3VyY2UoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgU3RyaW5nMTYgaWRlbnQ7Ci0gICAgICAgICAgICAgICAgc3NpemVfdCBpZGVudElkeCA9IGJsb2NrLmluZGV4T2ZBdHRyaWJ1dGUoTlVMTCwgIm5hbWUiKTsKLSAgICAgICAgICAgICAgICBpZiAoaWRlbnRJZHggPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNyY1Bvcy5lcnJvcigiQSAnbmFtZScgYXR0cmlidXRlIGlzIHJlcXVpcmVkIGZvciA8ZGVjbGFyZS1zdHlsZWFibGU+XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gbG9jYWxIYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZGVudCA9IFN0cmluZzE2KGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKGlkZW50SWR4LCAmbGVuKSk7Ci0KLSAgICAgICAgICAgICAgICBzcDxBYXB0U3ltYm9scz4gc3ltYm9scyA9IGFzc2V0cy0+Z2V0U3ltYm9sc0ZvcihTdHJpbmc4KCJSIikpOwotICAgICAgICAgICAgICAgIGlmICghbG9jYWxIYXNFcnJvcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHN5bWJvbHMgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9scyA9IHN5bWJvbHMtPmFkZE5lc3RlZFN5bWJvbChTdHJpbmc4KCJzdHlsZWFibGUiKSwgc3JjUG9zKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBzcDxBYXB0U3ltYm9scz4gc3R5bGVTeW1ib2xzID0gc3ltYm9sczsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHN5bWJvbHMgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9scyA9IHN5bWJvbHMtPmFkZE5lc3RlZFN5bWJvbChTdHJpbmc4KGlkZW50KSwgc3JjUG9zKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBpZiAoc3ltYm9scyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzcmNQb3MuZXJyb3IoIlVuYWJsZSB0byBjcmVhdGUgc3ltYm9scyFcbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzE2IGNvbW1lbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRDb21tZW50KCZsZW4pID8gYmxvY2suZ2V0Q29tbWVudCgmbGVuKSA6IG51bFN0cik7Ci0gICAgICAgICAgICAgICAgICAgIHN0eWxlU3ltYm9scy0+YXBwZW5kQ29tbWVudChTdHJpbmc4KGlkZW50KSwgY29tbWVudCwgc3JjUG9zKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBzeW1ib2xzID0gTlVMTDsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB3aGlsZSAoKGNvZGU9YmxvY2submV4dCgpKSAhPSBSZXNYTUxUcmVlOjpFTkRfRE9DVU1FTlQgJiYgY29kZSAhPSBSZXNYTUxUcmVlOjpCQURfRE9DVU1FTlQpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6U1RBUlRfVEFHKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIHNraXAxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgoY29kZT1ibG9jay5uZXh0KCkpICE9IFJlc1hNTFRyZWU6OkVORF9ET0NVTUVOVAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBjb2RlICE9IFJlc1hNTFRyZWU6OkJBRF9ET0NVTUVOVCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29kZSA9PSBSZXNYTUxUcmVlOjpFTkRfVEFHKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIHNraXAxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgZWF0X2NvbW1lbnQxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgoY29kZT1ibG9jay5uZXh0KCkpICE9IFJlc1hNTFRyZWU6OkVORF9ET0NVTUVOVAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBjb2RlICE9IFJlc1hNTFRyZWU6OkJBRF9ET0NVTUVOVCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29kZSA9PSBSZXNYTUxUcmVlOjpFTkRfVEFHKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIGVhdF9jb21tZW50MTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIGF0dHIxNi5zdHJpbmcoKSkgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGFnIDwlcz4gY2FuIG5vdCBhcHBlYXIgaW5zaWRlIDxkZWNsYXJlLXN0eWxlYWJsZT4sIG9ubHkgPGF0dHI+XG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcxNiBjb21tZW50KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldENvbW1lbnQoJmxlbikgPyBibG9jay5nZXRDb21tZW50KCZsZW4pIDogbnVsU3RyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzE2IGl0ZW1JZGVudDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVyciA9IGNvbXBpbGVBdHRyaWJ1dGUoaW4sIGJsb2NrLCBteVBhY2thZ2UsIG91dFRhYmxlLCAmaXRlbUlkZW50LCB0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSBsb2NhbEhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzeW1ib2xzICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2VQb3Mgc3JjUG9zKFN0cmluZzgoaW4tPmdldFByaW50YWJsZVNvdXJjZSgpKSwgYmxvY2suZ2V0TGluZU51bWJlcigpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLT5hZGRTeW1ib2woU3RyaW5nOChpdGVtSWRlbnQpLCAwLCBzcmNQb3MpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbHMtPmFwcGVuZENvbW1lbnQoU3RyaW5nOChpdGVtSWRlbnQpLCBjb21tZW50LCBzcmNQb3MpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vcHJpbnRmKCJBdHRyaWJ1dGUgJXMgY29tbWVudDogJXNcbiIsIFN0cmluZzgoaXRlbUlkZW50KS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgU3RyaW5nOChjb21tZW50KS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29kZSA9PSBSZXNYTUxUcmVlOjpFTkRfVEFHKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIGRlY2xhcmVfc3R5bGVhYmxlMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgU291cmNlUG9zKGluLT5nZXRQcmludGFibGVTb3VyY2UoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpKS5lcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIHRhZyA8LyVzPiB3aGVyZSA8L2F0dHI+IGlzIGV4cGVjdGVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgYXR0cjE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgZXJyID0gY29tcGlsZUF0dHJpYnV0ZShpbiwgYmxvY2ssIG15UGFja2FnZSwgb3V0VGFibGUsIE5VTEwpOwotICAgICAgICAgICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIGl0ZW0xNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIGN1clRhZyA9ICZpdGVtMTY7Ci0gICAgICAgICAgICAgICAgc3NpemVfdCBhdHRyaSA9IGJsb2NrLmluZGV4T2ZBdHRyaWJ1dGUoTlVMTCwgInR5cGUiKTsKLSAgICAgICAgICAgICAgICBpZiAoYXR0cmkgPj0gMCkgewotICAgICAgICAgICAgICAgICAgICBjdXJUeXBlID0gU3RyaW5nMTYoYmxvY2suZ2V0QXR0cmlidXRlU3RyaW5nVmFsdWUoYXR0cmksICZsZW4pKTsKLSAgICAgICAgICAgICAgICAgICAgc3NpemVfdCBmb3JtYXRJZHggPSBibG9jay5pbmRleE9mQXR0cmlidXRlKE5VTEwsICJmb3JtYXQiKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1hdElkeCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcxNiBmb3JtYXRTdHIgPSBTdHJpbmcxNihibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0SWR4LCAmbGVuKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjdXJGb3JtYXQgPSBwYXJzZV9mbGFncyhmb3JtYXRTdHIuc3RyaW5nKCksIGZvcm1hdFN0ci5zaXplKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnRm9ybWF0RmxhZ3MpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckZvcm1hdCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU291cmNlUG9zKGluLT5nZXRQcmludGFibGVTb3VyY2UoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpKS5lcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUYWcgPGl0ZW0+ICdmb3JtYXQnIGF0dHJpYnV0ZSB2YWx1ZSBcIiVzXCIgbm90IHZhbGlkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChmb3JtYXRTdHIpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSBsb2NhbEhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBTb3VyY2VQb3MoaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLCBibG9jay5nZXRMaW5lTnVtYmVyKCkpLmVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBICd0eXBlJyBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgZm9yIDxpdGVtPlxuIik7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY3VySXNTdHlsZWQgPSB0cnVlOwotICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgc3RyaW5nMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICAvLyBOb3RlIHRoZSBleGlzdGVuY2UgYW5kIGxvY2FsZSBvZiBldmVyeSBzdHJpbmcgd2UgcHJvY2VzcwotICAgICAgICAgICAgICAgIGNoYXIgcmF3TG9jYWxlWzE2XTsKLSAgICAgICAgICAgICAgICBjdXJQYXJhbXMuZ2V0TG9jYWxlKHJhd0xvY2FsZSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nOCBsb2NhbGUocmF3TG9jYWxlKTsKLSAgICAgICAgICAgICAgICBTdHJpbmcxNiBuYW1lOwotICAgICAgICAgICAgICAgIFN0cmluZzE2IHRyYW5zbGF0YWJsZTsKLSAgICAgICAgICAgICAgICBTdHJpbmcxNiBmb3JtYXR0ZWQ7Ci0KLSAgICAgICAgICAgICAgICBzaXplX3QgbiA9IGJsb2NrLmdldEF0dHJpYnV0ZUNvdW50KCk7Ci0gICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aDsKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDE2X3QqIGF0dHIgPSBibG9jay5nZXRBdHRyaWJ1dGVOYW1lKGksICZsZW5ndGgpOwotICAgICAgICAgICAgICAgICAgICBpZiAoc3RyY21wMTYoYXR0ciwgbmFtZTE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBuYW1lLnNldFRvKGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKGksICZsZW5ndGgpKTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAxNihhdHRyLCB0cmFuc2xhdGFibGUxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRhYmxlLnNldFRvKGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKGksICZsZW5ndGgpKTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAxNihhdHRyLCBmb3JtYXR0ZWQxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkLnNldFRvKGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKGksICZsZW5ndGgpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAobmFtZS5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0cmFuc2xhdGFibGUgPT0gZmFsc2UxNikgewotICAgICAgICAgICAgICAgICAgICAgICAgY3VySXNGb3JtYXR0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVudHJhbnNsYXRhYmxlIHN0cmluZ3MgbXVzdCBvbmx5IGV4aXN0IGluIHRoZSBkZWZhdWx0IFtlbXB0eV0gbG9jYWxlCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxlLnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImFhcHQ6IHdhcm5pbmc6IHN0cmluZyAnJXMnIGluICVzIG1hcmtlZCB1bnRyYW5zbGF0YWJsZSBidXQgZXhpc3RzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpbiBsb2NhbGUgJyVzJ1xuIiwgU3RyaW5nOChuYW1lKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1bmRsZS0+Z2V0UmVzb3VyY2VTb3VyY2VEaXJzKClbMF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGUuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW50ZW50aW9uYWxseSBlbXB0eSBibG9jazoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGFkZCB1bnRyYW5zbGF0YWJsZSBzdHJpbmdzIHRvIHRoZSBsb2NhbGl6YXRpb24gdGFibGU7IHRoYXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3YXkgaWYgd2UgbGF0ZXIgc2VlIGxvY2FsaXphdGlvbnMgb2YgdGhlbSwgdGhleSdsbCBiZSBmbGFnZ2VkIGFzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGF2aW5nIG5vIGRlZmF1bHQgdHJhbnNsYXRpb24uCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBvdXRUYWJsZS0+YWRkTG9jYWxpemF0aW9uKG5hbWUsIGxvY2FsZSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybWF0dGVkID09IGZhbHNlMTYpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGN1cklzRm9ybWF0dGVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBjdXJUYWcgPSAmc3RyaW5nMTY7Ci0gICAgICAgICAgICAgICAgY3VyVHlwZSA9IHN0cmluZzE2OwotICAgICAgICAgICAgICAgIGN1ckZvcm1hdCA9IFJlc1RhYmxlX21hcDo6VFlQRV9SRUZFUkVOQ0V8UmVzVGFibGVfbWFwOjpUWVBFX1NUUklORzsKLSAgICAgICAgICAgICAgICBjdXJJc1N0eWxlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgY3VySXNQc2V1ZG9sb2NhbGl6YWJsZSA9IHRydWU7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBkcmF3YWJsZTE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgY3VyVGFnID0gJmRyYXdhYmxlMTY7Ci0gICAgICAgICAgICAgICAgY3VyVHlwZSA9IGRyYXdhYmxlMTY7Ci0gICAgICAgICAgICAgICAgY3VyRm9ybWF0ID0gUmVzVGFibGVfbWFwOjpUWVBFX1JFRkVSRU5DRXxSZXNUYWJsZV9tYXA6OlRZUEVfQ09MT1I7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBjb2xvcjE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgY3VyVGFnID0gJmNvbG9yMTY7Ci0gICAgICAgICAgICAgICAgY3VyVHlwZSA9IGNvbG9yMTY7Ci0gICAgICAgICAgICAgICAgY3VyRm9ybWF0ID0gUmVzVGFibGVfbWFwOjpUWVBFX1JFRkVSRU5DRXxSZXNUYWJsZV9tYXA6OlRZUEVfQ09MT1I7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBib29sMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICBjdXJUYWcgPSAmYm9vbDE2OwotICAgICAgICAgICAgICAgIGN1clR5cGUgPSBib29sMTY7Ci0gICAgICAgICAgICAgICAgY3VyRm9ybWF0ID0gUmVzVGFibGVfbWFwOjpUWVBFX1JFRkVSRU5DRXxSZXNUYWJsZV9tYXA6OlRZUEVfQk9PTEVBTjsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIGludGVnZXIxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIGN1clRhZyA9ICZpbnRlZ2VyMTY7Ci0gICAgICAgICAgICAgICAgY3VyVHlwZSA9IGludGVnZXIxNjsKLSAgICAgICAgICAgICAgICBjdXJGb3JtYXQgPSBSZXNUYWJsZV9tYXA6OlRZUEVfUkVGRVJFTkNFfFJlc1RhYmxlX21hcDo6VFlQRV9JTlRFR0VSOwotICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgZGltZW4xNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIGN1clRhZyA9ICZkaW1lbjE2OwotICAgICAgICAgICAgICAgIGN1clR5cGUgPSBkaW1lbjE2OwotICAgICAgICAgICAgICAgIGN1ckZvcm1hdCA9IFJlc1RhYmxlX21hcDo6VFlQRV9SRUZFUkVOQ0V8UmVzVGFibGVfbWFwOjpUWVBFX0RJTUVOU0lPTjsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIGZyYWN0aW9uMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICBjdXJUYWcgPSAmZnJhY3Rpb24xNjsKLSAgICAgICAgICAgICAgICBjdXJUeXBlID0gZnJhY3Rpb24xNjsKLSAgICAgICAgICAgICAgICBjdXJGb3JtYXQgPSBSZXNUYWJsZV9tYXA6OlRZUEVfUkVGRVJFTkNFfFJlc1RhYmxlX21hcDo6VFlQRV9GUkFDVElPTjsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIGJhZzE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgY3VyVGFnID0gJmJhZzE2OwotICAgICAgICAgICAgICAgIGN1cklzQmFnID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBzc2l6ZV90IGF0dHJpID0gYmxvY2suaW5kZXhPZkF0dHJpYnV0ZShOVUxMLCAidHlwZSIpOwotICAgICAgICAgICAgICAgIGlmIChhdHRyaSA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGN1clR5cGUgPSBTdHJpbmcxNihibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShhdHRyaSwgJmxlbikpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkEgJ3R5cGUnIGF0dHJpYnV0ZSBpcyByZXF1aXJlZCBmb3IgPGJhZz5cbiIpOwotICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSBsb2NhbEhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgc3R5bGUxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIGN1clRhZyA9ICZzdHlsZTE2OwotICAgICAgICAgICAgICAgIGN1clR5cGUgPSBzdHlsZTE2OwotICAgICAgICAgICAgICAgIGN1cklzQmFnID0gdHJ1ZTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIHBsdXJhbHMxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgIGN1clRhZyA9ICZwbHVyYWxzMTY7Ci0gICAgICAgICAgICAgICAgY3VyVHlwZSA9IHBsdXJhbHMxNjsKLSAgICAgICAgICAgICAgICBjdXJJc0JhZyA9IHRydWU7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBhcnJheTE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgY3VyVGFnID0gJmFycmF5MTY7Ci0gICAgICAgICAgICAgICAgY3VyVHlwZSA9IGFycmF5MTY7Ci0gICAgICAgICAgICAgICAgY3VySXNCYWcgPSB0cnVlOwotICAgICAgICAgICAgICAgIGN1cklzQmFnUmVwbGFjZU9uT3ZlcndyaXRlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBzc2l6ZV90IGZvcm1hdElkeCA9IGJsb2NrLmluZGV4T2ZBdHRyaWJ1dGUoTlVMTCwgImZvcm1hdCIpOwotICAgICAgICAgICAgICAgIGlmIChmb3JtYXRJZHggPj0gMCkgewotICAgICAgICAgICAgICAgICAgICBTdHJpbmcxNiBmb3JtYXRTdHIgPSBTdHJpbmcxNihibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRJZHgsICZsZW4pKTsKLSAgICAgICAgICAgICAgICAgICAgY3VyRm9ybWF0ID0gcGFyc2VfZmxhZ3MoZm9ybWF0U3RyLnN0cmluZygpLCBmb3JtYXRTdHIuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnRm9ybWF0RmxhZ3MpOwotICAgICAgICAgICAgICAgICAgICBpZiAoY3VyRm9ybWF0ID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUYWcgPGFycmF5PiAnZm9ybWF0JyBhdHRyaWJ1dGUgdmFsdWUgXCIlc1wiIG5vdCB2YWxpZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChmb3JtYXRTdHIpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wMTYoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbiksIHN0cmluZ19hcnJheTE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgLy8gQ2hlY2sgd2hldGhlciB0aGVzZSBzdHJpbmdzIG5lZWQgdmFsaWQgZm9ybWF0cy4KLSAgICAgICAgICAgICAgICAvLyAoc2ltcGxpZmllZCBmb3JtIG9mIHdoYXQgc3RyaW5nMTYgZG9lcyBhYm92ZSkKLSAgICAgICAgICAgICAgICBzaXplX3QgbiA9IGJsb2NrLmdldEF0dHJpYnV0ZUNvdW50KCk7Ci0gICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aDsKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDE2X3QqIGF0dHIgPSBibG9jay5nZXRBdHRyaWJ1dGVOYW1lKGksICZsZW5ndGgpOwotICAgICAgICAgICAgICAgICAgICBpZiAoc3RyY21wMTYoYXR0ciwgdHJhbnNsYXRhYmxlMTYuc3RyaW5nKCkpID09IDAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBzdHJjbXAxNihhdHRyLCBmb3JtYXR0ZWQxNi5zdHJpbmcoKSkgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDE2X3QqIHZhbHVlID0gYmxvY2suZ2V0QXR0cmlidXRlU3RyaW5nVmFsdWUoaSwgJmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyY21wMTYodmFsdWUsIGZhbHNlMTYuc3RyaW5nKCkpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJJc0Zvcm1hdHRlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgY3VyVGFnID0gJnN0cmluZ19hcnJheTE2OwotICAgICAgICAgICAgICAgIGN1clR5cGUgPSBhcnJheTE2OwotICAgICAgICAgICAgICAgIGN1ckZvcm1hdCA9IFJlc1RhYmxlX21hcDo6VFlQRV9SRUZFUkVOQ0V8UmVzVGFibGVfbWFwOjpUWVBFX1NUUklORzsKLSAgICAgICAgICAgICAgICBjdXJJc0JhZyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgY3VySXNCYWdSZXBsYWNlT25PdmVyd3JpdGUgPSB0cnVlOwotICAgICAgICAgICAgICAgIGN1cklzUHNldWRvbG9jYWxpemFibGUgPSB0cnVlOwotICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgaW50ZWdlcl9hcnJheTE2LnN0cmluZygpKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgY3VyVGFnID0gJmludGVnZXJfYXJyYXkxNjsKLSAgICAgICAgICAgICAgICBjdXJUeXBlID0gYXJyYXkxNjsKLSAgICAgICAgICAgICAgICBjdXJGb3JtYXQgPSBSZXNUYWJsZV9tYXA6OlRZUEVfUkVGRVJFTkNFfFJlc1RhYmxlX21hcDo6VFlQRV9JTlRFR0VSOwotICAgICAgICAgICAgICAgIGN1cklzQmFnID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBjdXJJc0JhZ1JlcGxhY2VPbk92ZXJ3cml0ZSA9IHRydWU7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgdGFnICVzIHdoZXJlIGl0ZW0gaXMgZXhwZWN0ZWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFN0cmluZzE2IGlkZW50OwotICAgICAgICAgICAgc3NpemVfdCBpZGVudElkeCA9IGJsb2NrLmluZGV4T2ZBdHRyaWJ1dGUoTlVMTCwgIm5hbWUiKTsKLSAgICAgICAgICAgIGlmIChpZGVudElkeCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgaWRlbnQgPSBTdHJpbmcxNihibG9jay5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShpZGVudElkeCwgJmxlbikpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBTb3VyY2VQb3MoaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLCBibG9jay5nZXRMaW5lTnVtYmVyKCkpLmVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgIkEgJ25hbWUnIGF0dHJpYnV0ZSBpcyByZXF1aXJlZCBmb3IgPCVzPlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoKmN1clRhZykuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgU3RyaW5nMTYgcHJvZHVjdDsKLSAgICAgICAgICAgIGlkZW50SWR4ID0gYmxvY2suaW5kZXhPZkF0dHJpYnV0ZShOVUxMLCAicHJvZHVjdCIpOwotICAgICAgICAgICAgaWYgKGlkZW50SWR4ID49IDApIHsKLSAgICAgICAgICAgICAgICBwcm9kdWN0ID0gU3RyaW5nMTYoYmxvY2suZ2V0QXR0cmlidXRlU3RyaW5nVmFsdWUoaWRlbnRJZHgsICZsZW4pKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgU3RyaW5nMTYgY29tbWVudChibG9jay5nZXRDb21tZW50KCZsZW4pID8gYmxvY2suZ2V0Q29tbWVudCgmbGVuKSA6IG51bFN0cik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChjdXJJc0JhZykgewotICAgICAgICAgICAgICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHBhcmVudCBvZiB0aGlzIGJhZy4uLgotICAgICAgICAgICAgICAgIFN0cmluZzE2IHBhcmVudElkZW50OwotICAgICAgICAgICAgICAgIHNzaXplX3QgcGFyZW50SWRlbnRJZHggPSBibG9jay5pbmRleE9mQXR0cmlidXRlKE5VTEwsICJwYXJlbnQiKTsKLSAgICAgICAgICAgICAgICBpZiAocGFyZW50SWRlbnRJZHggPj0gMCkgewotICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZGVudCA9IFN0cmluZzE2KGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKHBhcmVudElkZW50SWR4LCAmbGVuKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgc3NpemVfdCBzZXAgPSBpZGVudC5maW5kTGFzdCgnLicpOwotICAgICAgICAgICAgICAgICAgICBpZiAoc2VwID49IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkZW50LnNldFRvKGlkZW50LCBzZXApOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKCFsb2NhbEhhc0Vycm9ycykgewotICAgICAgICAgICAgICAgICAgICBlcnIgPSBvdXRUYWJsZS0+c3RhcnRCYWcoU291cmNlUG9zKGluLT5nZXRQcmludGFibGVTb3VyY2UoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jay5nZXRMaW5lTnVtYmVyKCkpLCBteVBhY2thZ2UsIGN1clR5cGUsIGlkZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkZW50LCAmY3VyUGFyYW1zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJ3cml0ZSwgY3VySXNCYWdSZXBsYWNlT25PdmVyd3JpdGUpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSBsb2NhbEhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgc3NpemVfdCBlbG1JbmRleCA9IDA7Ci0gICAgICAgICAgICAgICAgY2hhciBlbG1JbmRleFN0clsxNF07Ci0gICAgICAgICAgICAgICAgd2hpbGUgKChjb2RlPWJsb2NrLm5leHQoKSkgIT0gUmVzWE1MVHJlZTo6RU5EX0RPQ1VNRU5UCi0gICAgICAgICAgICAgICAgICAgICAgICAmJiBjb2RlICE9IFJlc1hNTFRyZWU6OkJBRF9ET0NVTUVOVCkgewotCi0gICAgICAgICAgICAgICAgICAgIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OlNUQVJUX1RBRykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmNtcDE2KGJsb2NrLmdldEVsZW1lbnROYW1lKCZsZW4pLCBpdGVtMTYuc3RyaW5nKCkpICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2VQb3MoaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLCBibG9jay5nZXRMaW5lTnVtYmVyKCkpLmVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRhZyA8JXM+IGNhbiBub3QgYXBwZWFyIGluc2lkZSA8JXM+LCBvbmx5IDxpdGVtPlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoYmxvY2suZ2V0RWxlbWVudE5hbWUoJmxlbikpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCgqY3VyVGFnKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzE2IGl0ZW1JZGVudDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJUeXBlID09IGFycmF5MTYpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKGVsbUluZGV4U3RyLCAiXmluZGV4XyVkIiwgKGludCllbG1JbmRleCsrKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtSWRlbnQgPSBTdHJpbmcxNihlbG1JbmRleFN0cik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1clR5cGUgPT0gcGx1cmFsczE2KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NpemVfdCBpdGVtSWRlbnRJZHggPSBibG9jay5pbmRleE9mQXR0cmlidXRlKE5VTEwsICJxdWFudGl0eSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtSWRlbnRJZHggPj0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcxNiBxdWFudGl0eTE2KGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKGl0ZW1JZGVudElkeCwgJmxlbikpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocXVhbnRpdHkxNiA9PSBvdGhlcjE2KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtSWRlbnQgPSBxdWFudGl0eU90aGVyMTY7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocXVhbnRpdHkxNiA9PSB6ZXJvMTYpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1JZGVudCA9IHF1YW50aXR5WmVybzE2OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHF1YW50aXR5MTYgPT0gb25lMTYpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1JZGVudCA9IHF1YW50aXR5T25lMTY7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocXVhbnRpdHkxNiA9PSB0d28xNikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUlkZW50ID0gcXVhbnRpdHlUd28xNjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChxdWFudGl0eTE2ID09IGZldzE2KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtSWRlbnQgPSBxdWFudGl0eUZldzE2OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHF1YW50aXR5MTYgPT0gbWFueTE2KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtSWRlbnQgPSBxdWFudGl0eU1hbnkxNjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbGxlZ2FsICdxdWFudGl0eScgYXR0cmlidXRlIGlzIDxpdGVtPiBpbnNpZGUgPHBsdXJhbHM+XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkEgJ3F1YW50aXR5JyBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgZm9yIDxpdGVtPiBpbnNpZGUgPHBsdXJhbHM+XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gbG9jYWxIYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NpemVfdCBpdGVtSWRlbnRJZHggPSBibG9jay5pbmRleE9mQXR0cmlidXRlKE5VTEwsICJuYW1lIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1JZGVudElkeCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1JZGVudCA9IFN0cmluZzE2KGJsb2NrLmdldEF0dHJpYnV0ZVN0cmluZ1ZhbHVlKGl0ZW1JZGVudElkeCwgJmxlbikpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkEgJ25hbWUnIGF0dHJpYnV0ZSBpcyByZXF1aXJlZCBmb3IgPGl0ZW0+XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gbG9jYWxIYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgUmVzWE1MUGFyc2VyOjpSZXNYTUxQb3NpdGlvbiBwYXJzZXJQb3NpdGlvbjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLmdldFBvc2l0aW9uKCZwYXJzZXJQb3NpdGlvbik7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGVyciA9IHBhcnNlQW5kQWRkQmFnKGJ1bmRsZSwgaW4sICZibG9jaywgY3VyUGFyYW1zLCBteVBhY2thZ2UsIGN1clR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50LCBwYXJlbnRJZGVudCwgaXRlbUlkZW50LCBjdXJGb3JtYXQsIGN1cklzRm9ybWF0dGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0LCBmYWxzZSwgb3ZlcndyaXRlLCBvdXRUYWJsZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyID09IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cklzUHNldWRvbG9jYWxpemFibGUgJiYgbG9jYWxlSXNEZWZpbmVkKGN1clBhcmFtcykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGJ1bmRsZS0+Z2V0UHNldWRvbG9jYWxpemUoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwc2V1ZG9sb2NhbGl6ZSBoZXJlCi0jaWYgMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jay5zZXRQb3NpdGlvbihwYXJzZXJQb3NpdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyciA9IHBhcnNlQW5kQWRkQmFnKGJ1bmRsZSwgaW4sICZibG9jaywgcHNldWRvUGFyYW1zLCBteVBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyVHlwZSwgaWRlbnQsIHBhcmVudElkZW50LCBpdGVtSWRlbnQsIGN1ckZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJJc0Zvcm1hdHRlZCwgcHJvZHVjdCwgdHJ1ZSwgb3ZlcndyaXRlLCBvdXRUYWJsZSk7Ci0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OkVORF9UQUcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgY3VyVGFnLT5zdHJpbmcoKSkgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhpbi0+Z2V0UHJpbnRhYmxlU291cmNlKCksIGJsb2NrLmdldExpbmVOdW1iZXIoKSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgdGFnIDwvJXM+IHdoZXJlIDwvJXM+IGlzIGV4cGVjdGVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KCpjdXJUYWcpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBSZXNYTUxQYXJzZXI6OlJlc1hNTFBvc2l0aW9uIHBhcnNlclBvc2l0aW9uOwotICAgICAgICAgICAgICAgIGJsb2NrLmdldFBvc2l0aW9uKCZwYXJzZXJQb3NpdGlvbik7Ci0KLSAgICAgICAgICAgICAgICBlcnIgPSBwYXJzZUFuZEFkZEVudHJ5KGJ1bmRsZSwgaW4sICZibG9jaywgY3VyUGFyYW1zLCBteVBhY2thZ2UsIGN1clR5cGUsIGlkZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgKmN1clRhZywgY3VySXNTdHlsZWQsIGN1ckZvcm1hdCwgY3VySXNGb3JtYXR0ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0LCBmYWxzZSwgb3ZlcndyaXRlLCAmc2tpcHBlZFJlc291cmNlTmFtZXMsIG91dFRhYmxlKTsKLQotICAgICAgICAgICAgICAgIGlmIChlcnIgPCBOT19FUlJPUikgeyAvLyBXaHkgZXJyIDwgTk9fRVJST1IgaW5zdGVhZCBvZiBlcnIgIT0gTk9fRVJST1I/Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IGxvY2FsSGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoZXJyID09IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjdXJJc1BzZXVkb2xvY2FsaXphYmxlICYmIGxvY2FsZUlzRGVmaW5lZChjdXJQYXJhbXMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgYnVuZGxlLT5nZXRQc2V1ZG9sb2NhbGl6ZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBwc2V1ZG9sb2NhbGl6ZSBoZXJlCi0gICAgICAgICAgICAgICAgICAgICAgICBibG9jay5zZXRQb3NpdGlvbihwYXJzZXJQb3NpdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBlcnIgPSBwYXJzZUFuZEFkZEVudHJ5KGJ1bmRsZSwgaW4sICZibG9jaywgcHNldWRvUGFyYW1zLCBteVBhY2thZ2UsIGN1clR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50LCAqY3VyVGFnLCBjdXJJc1N0eWxlZCwgY3VyRm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJJc0Zvcm1hdHRlZCwgcHJvZHVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgb3ZlcndyaXRlLCAmc2tpcHBlZFJlc291cmNlTmFtZXMsIG91dFRhYmxlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSBsb2NhbEhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSNpZiAwCi0gICAgICAgICAgICBpZiAoY29tbWVudC5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJDb21tZW50IGZvciBAJXM6JXMvJXM6ICVzXG4iLCBTdHJpbmc4KG15UGFja2FnZSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoY3VyVHlwZSkuc3RyaW5nKCksIFN0cmluZzgoaWRlbnQpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGNvbW1lbnQpLnN0cmluZygpKTsKLSAgICAgICAgICAgIH0KLSNlbmRpZgotICAgICAgICAgICAgaWYgKCFsb2NhbEhhc0Vycm9ycykgewotICAgICAgICAgICAgICAgIG91dFRhYmxlLT5hcHBlbmRDb21tZW50KG15UGFja2FnZSwgY3VyVHlwZSwgaWRlbnQsIGNvbW1lbnQsIGZhbHNlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OkVORF9UQUcpIHsKLSAgICAgICAgICAgIGlmIChzdHJjbXAxNihibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSwgcmVzb3VyY2VzMTYuc3RyaW5nKCkpICE9IDApIHsKLSAgICAgICAgICAgICAgICBTb3VyY2VQb3MoaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLCBibG9jay5nZXRMaW5lTnVtYmVyKCkpLmVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgIlVuZXhwZWN0ZWQgZW5kIHRhZyAlc1xuIiwgU3RyaW5nOChibG9jay5nZXRFbGVtZW50TmFtZSgmbGVuKSkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6U1RBUlRfTkFNRVNQQUNFIHx8IGNvZGUgPT0gUmVzWE1MVHJlZTo6RU5EX05BTUVTUEFDRSkgewotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6VEVYVCkgewotICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZShibG9jay5nZXRUZXh0KCZsZW4pKSkgewotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgU291cmNlUG9zKGluLT5nZXRQcmludGFibGVTb3VyY2UoKSwgYmxvY2suZ2V0TGluZU51bWJlcigpKS5lcnJvcigKLSAgICAgICAgICAgICAgICAgICAgIkZvdW5kIHRleHQgXCIlc1wiIHdoZXJlIGl0ZW0gdGFnIGlzIGV4cGVjdGVkXG4iLAotICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGJsb2NrLmdldFRleHQoJmxlbikpLnN0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gRm9yIGV2ZXJ5IHJlc291cmNlIGRlZmluZWQsIHRoZXJlIG11c3QgYmUgZXhpc3Qgb25lIHZhcmlhbnQgd2l0aCBhIHByb2R1Y3QgYXR0cmlidXRlCi0gICAgLy8gc2V0IHRvICdkZWZhdWx0JyAob3Igbm8gcHJvZHVjdCBhdHRyaWJ1dGUgYXQgYWxsKS4KLSAgICAvLyBXZSBjaGVjayB0byBzZWUgdGhhdCBmb3IgZXZlcnkgcmVzb3VyY2UgdGhhdCB3YXMgaWdub3JlZCBiZWNhdXNlIG9mIGEgbWlzbWF0Y2hlZAotICAgIC8vIHByb2R1Y3QgYXR0cmlidXRlLCBzb21lIHByb2R1Y3QgdmFyaWFudCBvZiB0aGF0IHJlc291cmNlIHdhcyBwcm9jZXNzZWQuCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBza2lwcGVkUmVzb3VyY2VOYW1lcy5zaXplKCk7IGkrKykgewotICAgICAgICBpZiAoc2tpcHBlZFJlc291cmNlTmFtZXNbaV0pIHsKLSAgICAgICAgICAgIGNvbnN0IHR5cGVfaWRlbnRfcGFpcl90JiBwID0gc2tpcHBlZFJlc291cmNlTmFtZXMua2V5QXQoaSk7Ci0gICAgICAgICAgICBpZiAoIW91dFRhYmxlLT5oYXNCYWdPckVudHJ5KG15UGFja2FnZSwgcC50eXBlLCBwLmlkZW50KSkgewotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGJ1bmRsZVByb2R1Y3QgPQotICAgICAgICAgICAgICAgICAgICAgICAgKGJ1bmRsZS0+Z2V0UHJvZHVjdCgpID09IE5VTEwpID8gIiIgOiBidW5kbGUtPmdldFByb2R1Y3QoKTsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkluIHJlc291cmNlIGZpbGUgJXM6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgaW4tPmdldFByaW50YWJsZVNvdXJjZSgpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgY3VyUGFyYW1zLnRvU3RyaW5nKCkuc3RyaW5nKCkpOwotCi0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJcdCVzICclcycgZG9lcyBub3QgbWF0Y2ggcHJvZHVjdCAlcy5cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICJcdFlvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gaW5jbHVkZSBhICdkZWZhdWx0JyBwcm9kdWN0IHZhcmlhbnQiCi0gICAgICAgICAgICAgICAgICAgICAgICAiIG9mIHRoZSByZXNvdXJjZS5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHAudHlwZSkuc3RyaW5nKCksIFN0cmluZzgocC5pZGVudCkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBidW5kbGVQcm9kdWN0WzBdID09IDAgPyAiZGVmYXVsdCIgOiBidW5kbGVQcm9kdWN0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBoYXNFcnJvcnMgPyBVTktOT1dOX0VSUk9SIDogTk9fRVJST1I7Ci19Ci0KLVJlc291cmNlVGFibGU6OlJlc291cmNlVGFibGUoQnVuZGxlKiBidW5kbGUsIGNvbnN0IFN0cmluZzE2JiBhc3NldHNQYWNrYWdlKQotICAgIDogbUFzc2V0c1BhY2thZ2UoYXNzZXRzUGFja2FnZSksIG1OZXh0UGFja2FnZUlkKDEpLCBtSGF2ZUFwcFBhY2thZ2UoZmFsc2UpLAotICAgICAgbUlzQXBwUGFja2FnZSghYnVuZGxlLT5nZXRFeHRlbmRpbmcoKSksCi0gICAgICBtTnVtTG9jYWwoMCksCi0gICAgICBtQnVuZGxlKGJ1bmRsZSkKLXsKLX0KLQotc3RhdHVzX3QgUmVzb3VyY2VUYWJsZTo6YWRkSW5jbHVkZWRSZXNvdXJjZXMoQnVuZGxlKiBidW5kbGUsIGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMpCi17Ci0gICAgc3RhdHVzX3QgZXJyID0gYXNzZXRzLT5idWlsZEluY2x1ZGVkUmVzb3VyY2VzKGJ1bmRsZSk7Ci0gICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLQotICAgIC8vIEZvciBmdXR1cmUgcmVmZXJlbmNlIHRvIGluY2x1ZGVkIHJlc291cmNlcy4KLSAgICBtQXNzZXRzID0gYXNzZXRzOwotCi0gICAgY29uc3QgUmVzVGFibGUmIGluY2wgPSBhc3NldHMtPmdldEluY2x1ZGVkUmVzb3VyY2VzKCk7Ci0KLSAgICAvLyBSZXRyaWV2ZSBhbGwgdGhlIHBhY2thZ2VzLgotICAgIGNvbnN0IHNpemVfdCBOID0gaW5jbC5nZXRCYXNlUGFja2FnZUNvdW50KCk7Ci0gICAgZm9yIChzaXplX3QgcGhhc2U9MDsgcGhhc2U8MjsgcGhhc2UrKykgewotICAgICAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgICAgICBTdHJpbmcxNiBuYW1lKGluY2wuZ2V0QmFzZVBhY2thZ2VOYW1lKGkpKTsKLSAgICAgICAgICAgIHVpbnQzMl90IGlkID0gaW5jbC5nZXRCYXNlUGFja2FnZUlkKGkpOwotICAgICAgICAgICAgLy8gRmlyc3QgdGltZSB0aHJvdWdoOiBvbmx5IGFkZCBiYXNlIHBhY2thZ2VzIChpZAotICAgICAgICAgICAgLy8gaXMgbm90IDApOyBzZWNvbmQgdGltZSB0aHJvdWdoIGFkZCB0aGUgb3RoZXIKLSAgICAgICAgICAgIC8vIHBhY2thZ2VzLgotICAgICAgICAgICAgaWYgKHBoYXNlICE9IDApIHsKLSAgICAgICAgICAgICAgICBpZiAoaWQgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICAvLyBTa2lwIGJhc2UgcGFja2FnZXMgLS0gYWxyZWFkeSBvbmUuCi0gICAgICAgICAgICAgICAgICAgIGlkID0gMDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAvLyBBc3NpZ24gYSBkeW5hbWljIGlkLgotICAgICAgICAgICAgICAgICAgICBpZCA9IG1OZXh0UGFja2FnZUlkOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoaWQgIT0gMCkgewotICAgICAgICAgICAgICAgIGlmIChpZCA9PSAxMjcpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1IYXZlQXBwUGFja2FnZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJJbmNsdWRlZCByZXNvdXJjZXMgaGF2ZSB0d28gYXBwbGljYXRpb24gcGFja2FnZXMhXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIG1IYXZlQXBwUGFja2FnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChtTmV4dFBhY2thZ2VJZCA+IGlkKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiSW5jbHVkZWQgYmFzZSBwYWNrYWdlIElEICVkIGFscmVhZHkgaW4gdXNlIVxuIiwgaWQpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaWQgIT0gMCkgewotICAgICAgICAgICAgICAgIE5PSVNZKHByaW50ZigiSW5jbHVkaW5nIHBhY2thZ2UgJXMgd2l0aCBJRD0lZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChuYW1lKS5zdHJpbmcoKSwgaWQpKTsKLSAgICAgICAgICAgICAgICBzcDxQYWNrYWdlPiBwID0gbmV3IFBhY2thZ2UobmFtZSwgaWQpOwotICAgICAgICAgICAgICAgIG1QYWNrYWdlcy5hZGQobmFtZSwgcCk7Ci0gICAgICAgICAgICAgICAgbU9yZGVyZWRQYWNrYWdlcy5hZGQocCk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoaWQgPj0gbU5leHRQYWNrYWdlSWQpIHsKLSAgICAgICAgICAgICAgICAgICAgbU5leHRQYWNrYWdlSWQgPSBpZCsxOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIEV2ZXJ5IHJlc291cmNlIHRhYmxlIGFsd2F5cyBoYXMgb25lIGZpcnN0IGVudHJ5LCB0aGUgYmFnIGF0dHJpYnV0ZXMuCi0gICAgY29uc3QgU291cmNlUG9zIHVua25vd24oU3RyaW5nOCgiPz8/PyIpLCAwKTsKLSAgICBzcDxUeXBlPiBhdHRyID0gZ2V0VHlwZShtQXNzZXRzUGFja2FnZSwgU3RyaW5nMTYoImF0dHIiKSwgdW5rbm93bik7Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXR1c190IFJlc291cmNlVGFibGU6OmFkZFB1YmxpYyhjb25zdCBTb3VyY2VQb3MmIHNvdXJjZVBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgcGFja2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCBpZGVudCkKLXsKLSAgICB1aW50MzJfdCByaWQgPSBtQXNzZXRzLT5nZXRJbmNsdWRlZFJlc291cmNlcygpCi0gICAgICAgIC5pZGVudGlmaWVyRm9yTmFtZShuYW1lLnN0cmluZygpLCBuYW1lLnNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc3RyaW5nKCksIHR5cGUuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZS5zdHJpbmcoKSwgcGFja2FnZS5zaXplKCkpOwotICAgIGlmIChyaWQgIT0gMCkgewotICAgICAgICBzb3VyY2VQb3MuZXJyb3IoIkVycm9yIGRlY2xhcmluZyBwdWJsaWMgcmVzb3VyY2UgJXMvJXMgZm9yIGluY2x1ZGVkIHBhY2thZ2UgJXNcbiIsCi0gICAgICAgICAgICAgICAgU3RyaW5nOCh0eXBlKS5zdHJpbmcoKSwgU3RyaW5nOChuYW1lKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICBTdHJpbmc4KHBhY2thZ2UpLnN0cmluZygpKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotCi0gICAgc3A8VHlwZT4gdCA9IGdldFR5cGUocGFja2FnZSwgdHlwZSwgc291cmNlUG9zKTsKLSAgICBpZiAodCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLSAgICByZXR1cm4gdC0+YWRkUHVibGljKHNvdXJjZVBvcywgbmFtZSwgaWRlbnQpOwotfQotCi1zdGF0dXNfdCBSZXNvdXJjZVRhYmxlOjphZGRFbnRyeShjb25zdCBTb3VyY2VQb3MmIHNvdXJjZVBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiB2YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmdQb29sOjplbnRyeV9zdHlsZV9zcGFuPiogc3R5bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNUYWJsZV9jb25maWcqIHBhcmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgZG9TZXRJbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDMyX3QgZm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCBvdmVyd3JpdGUpCi17Ci0gICAgLy8gQ2hlY2sgZm9yIGFkZGluZyBlbnRyaWVzIGluIG90aGVyIHBhY2thZ2VzLi4uICBmb3Igbm93IHdlIGRvCi0gICAgLy8gbm90aGluZy4gIFdlIG5lZWQgdG8gZG8gdGhlIHJpZ2h0IHRoaW5nIGhlcmUgdG8gc3VwcG9ydCBza2lubmluZy4KLSAgICB1aW50MzJfdCByaWQgPSBtQXNzZXRzLT5nZXRJbmNsdWRlZFJlc291cmNlcygpCi0gICAgICAgIC5pZGVudGlmaWVyRm9yTmFtZShuYW1lLnN0cmluZygpLCBuYW1lLnNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc3RyaW5nKCksIHR5cGUuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZS5zdHJpbmcoKSwgcGFja2FnZS5zaXplKCkpOwotICAgIGlmIChyaWQgIT0gMCkgewotICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgfQotICAgIAotI2lmIDAKLSAgICBpZiAobmFtZSA9PSBTdHJpbmcxNigibGVmdCIpKSB7Ci0gICAgICAgIHByaW50ZigiQWRkaW5nIGVudHJ5IGxlZnQ6IGZpbGU9JXMsIGxpbmU9JWQsIHR5cGU9JXMsIHZhbHVlPSVzXG4iLAotICAgICAgICAgICAgICAgc291cmNlUG9zLmZpbGUuc3RyaW5nKCksIHNvdXJjZVBvcy5saW5lLCBTdHJpbmc4KHR5cGUpLnN0cmluZygpLAotICAgICAgICAgICAgICAgU3RyaW5nOCh2YWx1ZSkuc3RyaW5nKCkpOwotICAgIH0KLSNlbmRpZgotCi0gICAgc3A8RW50cnk+IGUgPSBnZXRFbnRyeShwYWNrYWdlLCB0eXBlLCBuYW1lLCBzb3VyY2VQb3MsIG92ZXJ3cml0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgZG9TZXRJbmRleCk7Ci0gICAgaWYgKGUgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0gICAgc3RhdHVzX3QgZXJyID0gZS0+c2V0SXRlbShzb3VyY2VQb3MsIHZhbHVlLCBzdHlsZSwgZm9ybWF0LCBvdmVyd3JpdGUpOwotICAgIGlmIChlcnIgPT0gTk9fRVJST1IpIHsKLSAgICAgICAgbU51bUxvY2FsKys7Ci0gICAgfQotICAgIHJldHVybiBlcnI7Ci19Ci0KLXN0YXR1c190IFJlc291cmNlVGFibGU6OnN0YXJ0QmFnKGNvbnN0IFNvdXJjZVBvcyYgc291cmNlUG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIGJhZ1BhcmVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyogcGFyYW1zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBvdmVybGF5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCByZXBsYWNlLCBib29sIGlzSWQpCi17Ci0gICAgc3RhdHVzX3QgcmVzdWx0ID0gTk9fRVJST1I7Ci0KLSAgICAvLyBDaGVjayBmb3IgYWRkaW5nIGVudHJpZXMgaW4gb3RoZXIgcGFja2FnZXMuLi4gIGZvciBub3cgd2UgZG8KLSAgICAvLyBub3RoaW5nLiAgV2UgbmVlZCB0byBkbyB0aGUgcmlnaHQgdGhpbmcgaGVyZSB0byBzdXBwb3J0IHNraW5uaW5nLgotICAgIHVpbnQzMl90IHJpZCA9IG1Bc3NldHMtPmdldEluY2x1ZGVkUmVzb3VyY2VzKCkKLSAgICAuaWRlbnRpZmllckZvck5hbWUobmFtZS5zdHJpbmcoKSwgbmFtZS5zaXplKCksCi0gICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc3RyaW5nKCksIHR5cGUuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICBwYWNrYWdlLnN0cmluZygpLCBwYWNrYWdlLnNpemUoKSk7Ci0gICAgaWYgKHJpZCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBOT19FUlJPUjsKLSAgICB9Ci0gICAgCi0jaWYgMAotICAgIGlmIChuYW1lID09IFN0cmluZzE2KCJsZWZ0IikpIHsKLSAgICAgICAgcHJpbnRmKCJBZGRpbmcgYmFnIGxlZnQ6IGZpbGU9JXMsIGxpbmU9JWQsIHR5cGU9JXNcbiIsCi0gICAgICAgICAgICAgICBzb3VyY2VQb3MuZmlsZS5zdHJpaW5nKCksIHNvdXJjZVBvcy5saW5lLCBTdHJpbmc4KHR5cGUpLnN0cmluZygpKTsKLSAgICB9Ci0jZW5kaWYKLSAgICBpZiAob3ZlcmxheSAmJiAhbUJ1bmRsZS0+Z2V0QXV0b0FkZE92ZXJsYXkoKSAmJiAhaGFzQmFnT3JFbnRyeShwYWNrYWdlLCB0eXBlLCBuYW1lKSkgewotICAgICAgICBib29sIGNhbkFkZCA9IGZhbHNlOwotICAgICAgICBzcDxQYWNrYWdlPiBwID0gbVBhY2thZ2VzLnZhbHVlRm9yKHBhY2thZ2UpOwotICAgICAgICBpZiAocCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBzcDxUeXBlPiB0ID0gcC0+Z2V0VHlwZXMoKS52YWx1ZUZvcih0eXBlKTsKLSAgICAgICAgICAgIGlmICh0ICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBpZiAodC0+Z2V0Q2FuQWRkRW50cmllcygpLmluZGV4T2YobmFtZSkgPj0gMCkgewotICAgICAgICAgICAgICAgICAgICBjYW5BZGQgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoIWNhbkFkZCkgewotICAgICAgICAgICAgc291cmNlUG9zLmVycm9yKCJSZXNvdXJjZSBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0IGluIG92ZXJsYXkgYXQgJyVzJzsgdXNlIDxhZGQtcmVzb3VyY2U+IHRvIGFkZC5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChuYW1lKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotICAgIH0KLSAgICBzcDxFbnRyeT4gZSA9IGdldEVudHJ5KHBhY2thZ2UsIHR5cGUsIG5hbWUsIHNvdXJjZVBvcywgb3ZlcmxheSwgcGFyYW1zKTsKLSAgICBpZiAoZSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLSAgICAKLSAgICAvLyBJZiBhIHBhcmVudCBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgc2V0IGl0LgotICAgIGlmIChiYWdQYXJlbnQuc2l6ZSgpID4gMCkgewotICAgICAgICBlLT5zZXRQYXJlbnQoYmFnUGFyZW50KTsKLSAgICB9Ci0KLSAgICBpZiAoKHJlc3VsdCA9IGUtPm1ha2VJdEFCYWcoc291cmNlUG9zKSkgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICBpZiAob3ZlcmxheSAmJiByZXBsYWNlKSB7IAotICAgICAgICByZXR1cm4gZS0+ZW1wdHlCYWcoc291cmNlUG9zKTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdHVzX3QgUmVzb3VyY2VUYWJsZTo6YWRkQmFnKGNvbnN0IFNvdXJjZVBvcyYgc291cmNlUG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBiYWdQYXJlbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIGJhZ0tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVjdG9yPFN0cmluZ1Bvb2w6OmVudHJ5X3N0eWxlX3NwYW4+KiBzdHlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNUYWJsZV9jb25maWcqIHBhcmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHJlcGxhY2UsIGJvb2wgaXNJZCwgY29uc3QgaW50MzJfdCBmb3JtYXQpCi17Ci0gICAgLy8gQ2hlY2sgZm9yIGFkZGluZyBlbnRyaWVzIGluIG90aGVyIHBhY2thZ2VzLi4uICBmb3Igbm93IHdlIGRvCi0gICAgLy8gbm90aGluZy4gIFdlIG5lZWQgdG8gZG8gdGhlIHJpZ2h0IHRoaW5nIGhlcmUgdG8gc3VwcG9ydCBza2lubmluZy4KLSAgICB1aW50MzJfdCByaWQgPSBtQXNzZXRzLT5nZXRJbmNsdWRlZFJlc291cmNlcygpCi0gICAgICAgIC5pZGVudGlmaWVyRm9yTmFtZShuYW1lLnN0cmluZygpLCBuYW1lLnNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUuc3RyaW5nKCksIHR5cGUuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZS5zdHJpbmcoKSwgcGFja2FnZS5zaXplKCkpOwotICAgIGlmIChyaWQgIT0gMCkgewotICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgfQotCi0jaWYgMAotICAgIGlmIChuYW1lID09IFN0cmluZzE2KCJsZWZ0IikpIHsKLSAgICAgICAgcHJpbnRmKCJBZGRpbmcgYmFnIGxlZnQ6IGZpbGU9JXMsIGxpbmU9JWQsIHR5cGU9JXNcbiIsCi0gICAgICAgICAgICAgICBzb3VyY2VQb3MuZmlsZS5zdHJpaW5nKCksIHNvdXJjZVBvcy5saW5lLCBTdHJpbmc4KHR5cGUpLnN0cmluZygpKTsKLSAgICB9Ci0jZW5kaWYKLSAgICBzcDxFbnRyeT4gZSA9IGdldEVudHJ5KHBhY2thZ2UsIHR5cGUsIG5hbWUsIHNvdXJjZVBvcywgcmVwbGFjZSwgcGFyYW1zKTsKLSAgICBpZiAoZSA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLQotICAgIC8vIElmIGEgcGFyZW50IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBzZXQgaXQuCi0gICAgaWYgKGJhZ1BhcmVudC5zaXplKCkgPiAwKSB7Ci0gICAgICAgIGUtPnNldFBhcmVudChiYWdQYXJlbnQpOwotICAgIH0KLQotICAgIGNvbnN0IGJvb2wgZmlyc3QgPSBlLT5nZXRCYWcoKS5pbmRleE9mS2V5KGJhZ0tleSkgPCAwOwotICAgIHN0YXR1c190IGVyciA9IGUtPmFkZFRvQmFnKHNvdXJjZVBvcywgYmFnS2V5LCB2YWx1ZSwgc3R5bGUsIHJlcGxhY2UsIGlzSWQsIGZvcm1hdCk7Ci0gICAgaWYgKGVyciA9PSBOT19FUlJPUiAmJiBmaXJzdCkgewotICAgICAgICBtTnVtTG9jYWwrKzsKLSAgICB9Ci0gICAgcmV0dXJuIGVycjsKLX0KLQotYm9vbCBSZXNvdXJjZVRhYmxlOjpoYXNCYWdPckVudHJ5KGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBuYW1lKSBjb25zdAotewotICAgIC8vIEZpcnN0IGxvb2sgZm9yIHRoaXMgaW4gdGhlIGluY2x1ZGVkIHJlc291cmNlcy4uLgotICAgIHVpbnQzMl90IHJpZCA9IG1Bc3NldHMtPmdldEluY2x1ZGVkUmVzb3VyY2VzKCkKLSAgICAgICAgLmlkZW50aWZpZXJGb3JOYW1lKG5hbWUuc3RyaW5nKCksIG5hbWUuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zdHJpbmcoKSwgdHlwZS5zaXplKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrYWdlLnN0cmluZygpLCBwYWNrYWdlLnNpemUoKSk7Ci0gICAgaWYgKHJpZCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHNwPFBhY2thZ2U+IHAgPSBtUGFja2FnZXMudmFsdWVGb3IocGFja2FnZSk7Ci0gICAgaWYgKHAgIT0gTlVMTCkgewotICAgICAgICBzcDxUeXBlPiB0ID0gcC0+Z2V0VHlwZXMoKS52YWx1ZUZvcih0eXBlKTsKLSAgICAgICAgaWYgKHQgIT0gTlVMTCkgewotICAgICAgICAgICAgc3A8Q29uZmlnTGlzdD4gYyA9ICB0LT5nZXRDb25maWdzKCkudmFsdWVGb3IobmFtZSk7Ci0gICAgICAgICAgICBpZiAoYyAhPSBOVUxMKSByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBSZXNvdXJjZVRhYmxlOjpoYXNCYWdPckVudHJ5KGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyYgY29uZmlnKSBjb25zdAotewotICAgIC8vIEZpcnN0IGxvb2sgZm9yIHRoaXMgaW4gdGhlIGluY2x1ZGVkIHJlc291cmNlcy4uLgotICAgIHVpbnQzMl90IHJpZCA9IG1Bc3NldHMtPmdldEluY2x1ZGVkUmVzb3VyY2VzKCkKLSAgICAgICAgLmlkZW50aWZpZXJGb3JOYW1lKG5hbWUuc3RyaW5nKCksIG5hbWUuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zdHJpbmcoKSwgdHlwZS5zaXplKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrYWdlLnN0cmluZygpLCBwYWNrYWdlLnNpemUoKSk7Ci0gICAgaWYgKHJpZCAhPSAwKSB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHNwPFBhY2thZ2U+IHAgPSBtUGFja2FnZXMudmFsdWVGb3IocGFja2FnZSk7Ci0gICAgaWYgKHAgIT0gTlVMTCkgewotICAgICAgICBzcDxUeXBlPiB0ID0gcC0+Z2V0VHlwZXMoKS52YWx1ZUZvcih0eXBlKTsKLSAgICAgICAgaWYgKHQgIT0gTlVMTCkgewotICAgICAgICAgICAgc3A8Q29uZmlnTGlzdD4gYyA9ICB0LT5nZXRDb25maWdzKCkudmFsdWVGb3IobmFtZSk7Ci0gICAgICAgICAgICBpZiAoYyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgc3A8RW50cnk+IGUgPSBjLT5nZXRFbnRyaWVzKCkudmFsdWVGb3IoY29uZmlnKTsKLSAgICAgICAgICAgICAgICBpZiAoZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBSZXNvdXJjZVRhYmxlOjpoYXNCYWdPckVudHJ5KGNvbnN0IFN0cmluZzE2JiByZWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYqIGRlZlR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYqIGRlZlBhY2thZ2UpCi17Ci0gICAgU3RyaW5nMTYgcGFja2FnZSwgdHlwZSwgbmFtZTsKLSAgICBpZiAoIVJlc1RhYmxlOjpleHBhbmRSZXNvdXJjZVJlZihyZWYuc3RyaW5nKCksIHJlZi5zaXplKCksICZwYWNrYWdlLCAmdHlwZSwgJm5hbWUsCi0gICAgICAgICAgICAgICAgZGVmVHlwZSwgZGVmUGFja2FnZSA/IGRlZlBhY2thZ2U6Jm1Bc3NldHNQYWNrYWdlLCBOVUxMKSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiBoYXNCYWdPckVudHJ5KHBhY2thZ2UsIHR5cGUsIG5hbWUpOwotfQotCi1ib29sIFJlc291cmNlVGFibGU6OmFwcGVuZENvbW1lbnQoY29uc3QgU3RyaW5nMTYmIHBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIGNvbW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBvbmx5SWZFbXB0eSkKLXsKLSAgICBpZiAoY29tbWVudC5zaXplKCkgPD0gMCkgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBzcDxQYWNrYWdlPiBwID0gbVBhY2thZ2VzLnZhbHVlRm9yKHBhY2thZ2UpOwotICAgIGlmIChwICE9IE5VTEwpIHsKLSAgICAgICAgc3A8VHlwZT4gdCA9IHAtPmdldFR5cGVzKCkudmFsdWVGb3IodHlwZSk7Ci0gICAgICAgIGlmICh0ICE9IE5VTEwpIHsKLSAgICAgICAgICAgIHNwPENvbmZpZ0xpc3Q+IGMgPSAgdC0+Z2V0Q29uZmlncygpLnZhbHVlRm9yKG5hbWUpOwotICAgICAgICAgICAgaWYgKGMgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIGMtPmFwcGVuZENvbW1lbnQoY29tbWVudCwgb25seUlmRW1wdHkpOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBSZXNvdXJjZVRhYmxlOjphcHBlbmRUeXBlQ29tbWVudChjb25zdCBTdHJpbmcxNiYgcGFja2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgY29tbWVudCkKLXsKLSAgICBpZiAoY29tbWVudC5zaXplKCkgPD0gMCkgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgCi0gICAgc3A8UGFja2FnZT4gcCA9IG1QYWNrYWdlcy52YWx1ZUZvcihwYWNrYWdlKTsKLSAgICBpZiAocCAhPSBOVUxMKSB7Ci0gICAgICAgIHNwPFR5cGU+IHQgPSBwLT5nZXRUeXBlcygpLnZhbHVlRm9yKHR5cGUpOwotICAgICAgICBpZiAodCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBzcDxDb25maWdMaXN0PiBjID0gIHQtPmdldENvbmZpZ3MoKS52YWx1ZUZvcihuYW1lKTsKLSAgICAgICAgICAgIGlmIChjICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBjLT5hcHBlbmRUeXBlQ29tbWVudChjb21tZW50KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgUmVzb3VyY2VUYWJsZTo6Y2FuQWRkRW50cnkoY29uc3QgU291cmNlUG9zJiBwb3MsCi0gICAgICAgIGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLCBjb25zdCBTdHJpbmcxNiYgdHlwZSwgY29uc3QgU3RyaW5nMTYmIG5hbWUpCi17Ci0gICAgc3A8VHlwZT4gdCA9IGdldFR5cGUocGFja2FnZSwgdHlwZSwgcG9zKTsKLSAgICBpZiAodCAhPSBOVUxMKSB7Ci0gICAgICAgIHQtPmNhbkFkZEVudHJ5KG5hbWUpOwotICAgIH0KLX0KLQotc2l6ZV90IFJlc291cmNlVGFibGU6OnNpemUoKSBjb25zdCB7Ci0gICAgcmV0dXJuIG1QYWNrYWdlcy5zaXplKCk7Ci19Ci0KLXNpemVfdCBSZXNvdXJjZVRhYmxlOjpudW1Mb2NhbFJlc291cmNlcygpIGNvbnN0IHsKLSAgICByZXR1cm4gbU51bUxvY2FsOwotfQotCi1ib29sIFJlc291cmNlVGFibGU6Omhhc1Jlc291cmNlcygpIGNvbnN0IHsKLSAgICByZXR1cm4gbU51bUxvY2FsID4gMDsKLX0KLQotc3A8QWFwdEZpbGU+IFJlc291cmNlVGFibGU6OmZsYXR0ZW4oQnVuZGxlKiBidW5kbGUpCi17Ci0gICAgc3A8QWFwdEZpbGU+IGRhdGEgPSBuZXcgQWFwdEZpbGUoU3RyaW5nOCgpLCBBYXB0R3JvdXBFbnRyeSgpLCBTdHJpbmc4KCkpOwotICAgIHN0YXR1c190IGVyciA9IGZsYXR0ZW4oYnVuZGxlLCBkYXRhKTsKLSAgICByZXR1cm4gZXJyID09IE5PX0VSUk9SID8gZGF0YSA6IE5VTEw7Ci19Ci0KLWlubGluZSB1aW50MzJfdCBSZXNvdXJjZVRhYmxlOjpnZXRSZXNJZChjb25zdCBzcDxQYWNrYWdlPiYgcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxUeXBlPiYgdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBuYW1lSWQpCi17Ci0gICAgcmV0dXJuIG1ha2VSZXNJZChwLT5nZXRBc3NpZ25lZElkKCksIHQtPmdldEluZGV4KCksIG5hbWVJZCk7Ci19Ci0KLXVpbnQzMl90IFJlc291cmNlVGFibGU6OmdldFJlc0lkKGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgb25seVB1YmxpYykgY29uc3QKLXsKLSAgICB1aW50MzJfdCBpZCA9IFJlc291cmNlSWRDYWNoZTo6bG9va3VwKHBhY2thZ2UsIHR5cGUsIG5hbWUsIG9ubHlQdWJsaWMpOwotICAgIGlmIChpZCAhPSAwKSByZXR1cm4gaWQ7ICAgICAvLyBjYWNoZSBoaXQKLQotICAgIHNwPFBhY2thZ2U+IHAgPSBtUGFja2FnZXMudmFsdWVGb3IocGFja2FnZSk7Ci0gICAgaWYgKHAgPT0gTlVMTCkgcmV0dXJuIDA7Ci0KLSAgICAvLyBGaXJzdCBsb29rIGZvciB0aGlzIGluIHRoZSBpbmNsdWRlZCByZXNvdXJjZXMuLi4KLSAgICB1aW50MzJfdCBzcGVjRmxhZ3MgPSAwOwotICAgIHVpbnQzMl90IHJpZCA9IG1Bc3NldHMtPmdldEluY2x1ZGVkUmVzb3VyY2VzKCkKLSAgICAgICAgLmlkZW50aWZpZXJGb3JOYW1lKG5hbWUuc3RyaW5nKCksIG5hbWUuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZS5zdHJpbmcoKSwgdHlwZS5zaXplKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrYWdlLnN0cmluZygpLCBwYWNrYWdlLnNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICZzcGVjRmxhZ3MpOwotICAgIGlmIChyaWQgIT0gMCkgewotICAgICAgICBpZiAob25seVB1YmxpYykgewotICAgICAgICAgICAgaWYgKChzcGVjRmxhZ3MgJiBSZXNUYWJsZV90eXBlU3BlYzo6U1BFQ19QVUJMSUMpID09IDApIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKFJlc19JTlRFUk5BTElEKHJpZCkpIHsKLSAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUlkQ2FjaGU6OnN0b3JlKHBhY2thZ2UsIHR5cGUsIG5hbWUsIG9ubHlQdWJsaWMsIHJpZCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIFJlc291cmNlSWRDYWNoZTo6c3RvcmUocGFja2FnZSwgdHlwZSwgbmFtZSwgb25seVB1YmxpYywKLSAgICAgICAgICAgICAgICBSZXNfTUFLRUlEKHAtPmdldEFzc2lnbmVkSWQoKS0xLCBSZXNfR0VUVFlQRShyaWQpLCBSZXNfR0VURU5UUlkocmlkKSkpOwotICAgIH0KLQotICAgIHNwPFR5cGU+IHQgPSBwLT5nZXRUeXBlcygpLnZhbHVlRm9yKHR5cGUpOwotICAgIGlmICh0ID09IE5VTEwpIHJldHVybiAwOwotICAgIHNwPENvbmZpZ0xpc3Q+IGMgPSAgdC0+Z2V0Q29uZmlncygpLnZhbHVlRm9yKG5hbWUpOwotICAgIGlmIChjID09IE5VTEwpIHJldHVybiAwOwotICAgIGludDMyX3QgZWkgPSBjLT5nZXRFbnRyeUluZGV4KCk7Ci0gICAgaWYgKGVpIDwgMCkgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gUmVzb3VyY2VJZENhY2hlOjpzdG9yZShwYWNrYWdlLCB0eXBlLCBuYW1lLCBvbmx5UHVibGljLAotICAgICAgICAgICAgZ2V0UmVzSWQocCwgdCwgZWkpKTsKLX0KLQotdWludDMyX3QgUmVzb3VyY2VUYWJsZTo6Z2V0UmVzSWQoY29uc3QgU3RyaW5nMTYmIHJlZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2KiBkZWZUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYqIGRlZlBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiogb3V0RXJyb3JNc2csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIG9ubHlQdWJsaWMpIGNvbnN0Ci17Ci0gICAgU3RyaW5nMTYgcGFja2FnZSwgdHlwZSwgbmFtZTsKLSAgICBib29sIHJlZk9ubHlQdWJsaWMgPSB0cnVlOwotICAgIGlmICghUmVzVGFibGU6OmV4cGFuZFJlc291cmNlUmVmKAotICAgICAgICByZWYuc3RyaW5nKCksIHJlZi5zaXplKCksICZwYWNrYWdlLCAmdHlwZSwgJm5hbWUsCi0gICAgICAgIGRlZlR5cGUsIGRlZlBhY2thZ2UgPyBkZWZQYWNrYWdlOiZtQXNzZXRzUGFja2FnZSwKLSAgICAgICAgb3V0RXJyb3JNc2csICZyZWZPbmx5UHVibGljKSkgewotICAgICAgICBOT0lTWShwcmludGYoIkV4cGFuZGluZyByZXNvdXJjZTogcmVmPSVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChyZWYpLnN0cmluZygpKSk7Ci0gICAgICAgIE5PSVNZKHByaW50ZigiRXhwYW5kaW5nIHJlc291cmNlOiBkZWZUeXBlPSVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgZGVmVHlwZSA/IFN0cmluZzgoKmRlZlR5cGUpLnN0cmluZygpIDogIk5VTEwiKSk7Ci0gICAgICAgIE5PSVNZKHByaW50ZigiRXhwYW5kaW5nIHJlc291cmNlOiBkZWZQYWNrYWdlPSVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgZGVmUGFja2FnZSA/IFN0cmluZzgoKmRlZlBhY2thZ2UpLnN0cmluZygpIDogIk5VTEwiKSk7Ci0gICAgICAgIE5PSVNZKHByaW50ZigiRXhwYW5kaW5nIHJlc291cmNlOiByZWY9JXNcbiIsIFN0cmluZzgocmVmKS5zdHJpbmcoKSkpOwotICAgICAgICBOT0lTWShwcmludGYoIkV4cGFuZGVkIHJlc291cmNlOiBwPSVzLCB0PSVzLCBuPSVzLCByZXM9MFxuIiwKLSAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgocGFja2FnZSkuc3RyaW5nKCksIFN0cmluZzgodHlwZSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KG5hbWUpLnN0cmluZygpKSk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICB1aW50MzJfdCByZXMgPSBnZXRSZXNJZChwYWNrYWdlLCB0eXBlLCBuYW1lLCBvbmx5UHVibGljICYmIHJlZk9ubHlQdWJsaWMpOwotICAgIE5PSVNZKHByaW50ZigiRXhwYW5kZWQgcmVzb3VyY2U6IHA9JXMsIHQ9JXMsIG49JXMsIHJlcz0lZFxuIiwKLSAgICAgICAgICAgICAgICAgU3RyaW5nOChwYWNrYWdlKS5zdHJpbmcoKSwgU3RyaW5nOCh0eXBlKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgU3RyaW5nOChuYW1lKS5zdHJpbmcoKSwgcmVzKSk7Ci0gICAgaWYgKHJlcyA9PSAwKSB7Ci0gICAgICAgIGlmIChvdXRFcnJvck1zZykKLSAgICAgICAgICAgICpvdXRFcnJvck1zZyA9ICJObyByZXNvdXJjZSBmb3VuZCB0aGF0IG1hdGNoZXMgdGhlIGdpdmVuIG5hbWUiOwotICAgIH0KLSAgICByZXR1cm4gcmVzOwotfQotCi1ib29sIFJlc291cmNlVGFibGU6OmlzVmFsaWRSZXNvdXJjZU5hbWUoY29uc3QgU3RyaW5nMTYmIHMpCi17Ci0gICAgY29uc3QgY2hhcjE2X3QqIHAgPSBzLnN0cmluZygpOwotICAgIGJvb2wgZmlyc3QgPSB0cnVlOwotICAgIHdoaWxlICgqcCkgewotICAgICAgICBpZiAoKCpwID49ICdhJyAmJiAqcCA8PSAneicpCi0gICAgICAgICAgICB8fCAoKnAgPj0gJ0EnICYmICpwIDw9ICdaJykKLSAgICAgICAgICAgIHx8ICpwID09ICdfJwotICAgICAgICAgICAgfHwgKCFmaXJzdCAmJiAqcCA+PSAnMCcgJiYgKnAgPD0gJzknKSkgewotICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKLSAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgUmVzb3VyY2VUYWJsZTo6c3RyaW5nVG9WYWx1ZShSZXNfdmFsdWUqIG91dFZhbHVlLCBTdHJpbmdQb29sKiBwb29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBzdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBwcmVzZXJ2ZVNwYWNlcywgYm9vbCBjb2VyY2VUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGF0dHJJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWN0b3I8U3RyaW5nUG9vbDo6ZW50cnlfc3R5bGVfc3Bhbj4qIHN0eWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzE2KiBvdXRTdHIsIHZvaWQqIGFjY2Vzc29yQ29va2llLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGF0dHJUeXBlLCBjb25zdCBTdHJpbmc4KiBjb25maWdUeXBlTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb25maWdEZXNjcmlwdGlvbiogY29uZmlnKQotewotICAgIFN0cmluZzE2IGZpbmFsU3RyOwotCi0gICAgYm9vbCByZXMgPSB0cnVlOwotICAgIGlmIChzdHlsZSA9PSBOVUxMIHx8IHN0eWxlLT5zaXplKCkgPT0gMCkgewotICAgICAgICAvLyBUZXh0IGlzIG5vdCBzdHlsZWQgc28gaXQgY2FuIGJlIGFueSB0eXBlLi4uICBsZXQncyBmaWd1cmUgaXQgb3V0LgotICAgICAgICByZXMgPSBtQXNzZXRzLT5nZXRJbmNsdWRlZFJlc291cmNlcygpCi0gICAgICAgICAgICAuc3RyaW5nVG9WYWx1ZShvdXRWYWx1ZSwgJmZpbmFsU3RyLCBzdHIuc3RyaW5nKCksIHN0ci5zaXplKCksIHByZXNlcnZlU3BhY2VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZXJjZVR5cGUsIGF0dHJJRCwgTlVMTCwgJm1Bc3NldHNQYWNrYWdlLCB0aGlzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzb3JDb29raWUsIGF0dHJUeXBlKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBTdHlsZWQgdGV4dCBjYW4gb25seSBiZSBhIHN0cmluZywgYW5kIHdoaWxlIGNvbGxlY3RpbmcgdGhlIHN0eWxlCi0gICAgICAgIC8vIGluZm9ybWF0aW9uIHdlIGhhdmUgYWxyZWFkeSBwcm9jZXNzZWQgdGhhdCBzdHJpbmchCi0gICAgICAgIG91dFZhbHVlLT5zaXplID0gc2l6ZW9mKFJlc192YWx1ZSk7Ci0gICAgICAgIG91dFZhbHVlLT5yZXMwID0gMDsKLSAgICAgICAgb3V0VmFsdWUtPmRhdGFUeXBlID0gb3V0VmFsdWUtPlRZUEVfU1RSSU5HOwotICAgICAgICBvdXRWYWx1ZS0+ZGF0YSA9IDA7Ci0gICAgICAgIGZpbmFsU3RyID0gc3RyOwotICAgIH0KLQotICAgIGlmICghcmVzKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAob3V0VmFsdWUtPmRhdGFUeXBlID09IG91dFZhbHVlLT5UWVBFX1NUUklORykgewotICAgICAgICAvLyBTaG91bGQgZG8gYmV0dGVyIG1lcmdpbmcgc3R5bGVzLgotICAgICAgICBpZiAocG9vbCkgewotICAgICAgICAgICAgU3RyaW5nOCBjb25maWdTdHI7Ci0gICAgICAgICAgICBpZiAoY29uZmlnICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBjb25maWdTdHIgPSBjb25maWctPnRvU3RyaW5nKCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGNvbmZpZ1N0ciA9ICIobnVsbCkiOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgTk9JU1kocHJpbnRmKCJBZGRpbmcgdG8gcG9vbCBzdHJpbmcgc3R5bGUgIyVkIGNvbmZpZyAlczogJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgIHN0eWxlICE9IE5VTEwgPyBzdHlsZS0+c2l6ZSgpIDogMCwKLSAgICAgICAgICAgICAgICAgICAgY29uZmlnU3RyLnN0cmluZygpLCBTdHJpbmc4KGZpbmFsU3RyKS5zdHJpbmcoKSkpOwotICAgICAgICAgICAgaWYgKHN0eWxlICE9IE5VTEwgJiYgc3R5bGUtPnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgICAgICBvdXRWYWx1ZS0+ZGF0YSA9IHBvb2wtPmFkZChmaW5hbFN0ciwgKnN0eWxlLCBjb25maWdUeXBlTmFtZSwgY29uZmlnKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGEgPSBwb29sLT5hZGQoZmluYWxTdHIsIHRydWUsIGNvbmZpZ1R5cGVOYW1lLCBjb25maWcpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gQ2FsbGVyIHdpbGwgZmlsbCB0aGlzIGluIGxhdGVyLgotICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGEgPSAwOwotICAgICAgICB9Ci0gICAgCi0gICAgICAgIGlmIChvdXRTdHIpIHsKLSAgICAgICAgICAgICpvdXRTdHIgPSBmaW5hbFN0cjsKLSAgICAgICAgfQotCi0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXVpbnQzMl90IFJlc291cmNlVGFibGU6OmdldEN1c3RvbVJlc291cmNlKAotICAgIGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLCBjb25zdCBTdHJpbmcxNiYgdHlwZSwgY29uc3QgU3RyaW5nMTYmIG5hbWUpIGNvbnN0Ci17Ci0gICAgLy9wcmludGYoImdldEN1c3RvbVJlc291cmNlOiAlcyAlcyAlc1xuIiwgU3RyaW5nOChwYWNrYWdlKS5zdHJpbmcoKSwKLSAgICAvLyAgICAgICBTdHJpbmc4KHR5cGUpLnN0cmluZygpLCBTdHJpbmc4KG5hbWUpLnN0cmluZygpKTsKLSAgICBzcDxQYWNrYWdlPiBwID0gbVBhY2thZ2VzLnZhbHVlRm9yKHBhY2thZ2UpOwotICAgIGlmIChwID09IE5VTEwpIHJldHVybiAwOwotICAgIHNwPFR5cGU+IHQgPSBwLT5nZXRUeXBlcygpLnZhbHVlRm9yKHR5cGUpOwotICAgIGlmICh0ID09IE5VTEwpIHJldHVybiAwOwotICAgIHNwPENvbmZpZ0xpc3Q+IGMgPSAgdC0+Z2V0Q29uZmlncygpLnZhbHVlRm9yKG5hbWUpOwotICAgIGlmIChjID09IE5VTEwpIHJldHVybiAwOwotICAgIGludDMyX3QgZWkgPSBjLT5nZXRFbnRyeUluZGV4KCk7Ci0gICAgaWYgKGVpIDwgMCkgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGdldFJlc0lkKHAsIHQsIGVpKTsKLX0KLQotdWludDMyX3QgUmVzb3VyY2VUYWJsZTo6Z2V0Q3VzdG9tUmVzb3VyY2VXaXRoQ3JlYXRpb24oCi0gICAgICAgIGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLCBjb25zdCBTdHJpbmcxNiYgdHlwZSwgY29uc3QgU3RyaW5nMTYmIG5hbWUsCi0gICAgICAgIGNvbnN0IGJvb2wgY3JlYXRlSWZOb3RGb3VuZCkKLXsKLSAgICB1aW50MzJfdCByZXNJZCA9IGdldEN1c3RvbVJlc291cmNlKHBhY2thZ2UsIHR5cGUsIG5hbWUpOwotICAgIGlmIChyZXNJZCAhPSAwIHx8ICFjcmVhdGVJZk5vdEZvdW5kKSB7Ci0gICAgICAgIHJldHVybiByZXNJZDsKLSAgICB9Ci0gICAgU3RyaW5nMTYgdmFsdWUoImZhbHNlIik7Ci0KLSAgICBzdGF0dXNfdCBzdGF0dXMgPSBhZGRFbnRyeShtQ3VycmVudFhtbFBvcywgcGFja2FnZSwgdHlwZSwgbmFtZSwgdmFsdWUsIE5VTEwsIE5VTEwsIHRydWUpOwotICAgIGlmIChzdGF0dXMgPT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmVzSWQgPSBnZXRSZXNJZChwYWNrYWdlLCB0eXBlLCBuYW1lKTsKLSAgICAgICAgcmV0dXJuIHJlc0lkOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotdWludDMyX3QgUmVzb3VyY2VUYWJsZTo6Z2V0UmVtYXBwZWRQYWNrYWdlKHVpbnQzMl90IG9yaWdQYWNrYWdlKSBjb25zdAotewotICAgIHJldHVybiBvcmlnUGFja2FnZTsKLX0KLQotYm9vbCBSZXNvdXJjZVRhYmxlOjpnZXRBdHRyaWJ1dGVUeXBlKHVpbnQzMl90IGF0dHJJRCwgdWludDMyX3QqIG91dFR5cGUpCi17Ci0gICAgLy9wcmludGYoImdldEF0dHJpYnV0ZVR5cGUgIyUwOHhcbiIsIGF0dHJJRCk7Ci0gICAgUmVzX3ZhbHVlIHZhbHVlOwotICAgIGlmIChnZXRJdGVtVmFsdWUoYXR0cklELCBSZXNUYWJsZV9tYXA6OkFUVFJfVFlQRSwgJnZhbHVlKSkgewotICAgICAgICAvL3ByaW50ZigiZ2V0QXR0cmlidXRlVHlwZSAjJTA4eCAoJXMpOiAjJTA4eFxuIiwgYXR0cklELAotICAgICAgICAvLyAgICAgICBTdHJpbmc4KGdldEVudHJ5KGF0dHJJRCktPmdldE5hbWUoKSkuc3RyaW5nKCksIHZhbHVlLmRhdGEpOwotICAgICAgICAqb3V0VHlwZSA9IHZhbHVlLmRhdGE7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgUmVzb3VyY2VUYWJsZTo6Z2V0QXR0cmlidXRlTWluKHVpbnQzMl90IGF0dHJJRCwgdWludDMyX3QqIG91dE1pbikKLXsKLSAgICAvL3ByaW50ZigiZ2V0QXR0cmlidXRlTWluICMlMDh4XG4iLCBhdHRySUQpOwotICAgIFJlc192YWx1ZSB2YWx1ZTsKLSAgICBpZiAoZ2V0SXRlbVZhbHVlKGF0dHJJRCwgUmVzVGFibGVfbWFwOjpBVFRSX01JTiwgJnZhbHVlKSkgewotICAgICAgICAqb3V0TWluID0gdmFsdWUuZGF0YTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBSZXNvdXJjZVRhYmxlOjpnZXRBdHRyaWJ1dGVNYXgodWludDMyX3QgYXR0cklELCB1aW50MzJfdCogb3V0TWF4KQotewotICAgIC8vcHJpbnRmKCJnZXRBdHRyaWJ1dGVNYXggIyUwOHhcbiIsIGF0dHJJRCk7Ci0gICAgUmVzX3ZhbHVlIHZhbHVlOwotICAgIGlmIChnZXRJdGVtVmFsdWUoYXR0cklELCBSZXNUYWJsZV9tYXA6OkFUVFJfTUFYLCAmdmFsdWUpKSB7Ci0gICAgICAgICpvdXRNYXggPSB2YWx1ZS5kYXRhOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi11aW50MzJfdCBSZXNvdXJjZVRhYmxlOjpnZXRBdHRyaWJ1dGVMMTBOKHVpbnQzMl90IGF0dHJJRCkKLXsKLSAgICAvL3ByaW50ZigiZ2V0QXR0cmlidXRlTDEwTiAjJTA4eFxuIiwgYXR0cklEKTsKLSAgICBSZXNfdmFsdWUgdmFsdWU7Ci0gICAgaWYgKGdldEl0ZW1WYWx1ZShhdHRySUQsIFJlc1RhYmxlX21hcDo6QVRUUl9MMTBOLCAmdmFsdWUpKSB7Ci0gICAgICAgIHJldHVybiB2YWx1ZS5kYXRhOwotICAgIH0KLSAgICByZXR1cm4gUmVzVGFibGVfbWFwOjpMMTBOX05PVF9SRVFVSVJFRDsKLX0KLQotYm9vbCBSZXNvdXJjZVRhYmxlOjpnZXRMb2NhbGl6YXRpb25TZXR0aW5nKCkKLXsKLSAgICByZXR1cm4gbUJ1bmRsZS0+Z2V0UmVxdWlyZUxvY2FsaXphdGlvbigpOwotfQotCi12b2lkIFJlc291cmNlVGFibGU6OnJlcG9ydEVycm9yKHZvaWQqIGFjY2Vzc29yQ29va2llLCBjb25zdCBjaGFyKiBmbXQsIC4uLikKLXsKLSAgICBpZiAoYWNjZXNzb3JDb29raWUgIT0gTlVMTCAmJiBmbXQgIT0gTlVMTCkgewotICAgICAgICBBY2Nlc3NvckNvb2tpZSogYWMgPSAoQWNjZXNzb3JDb29raWUqKWFjY2Vzc29yQ29va2llOwotICAgICAgICBpbnQgcmV0dmFsPTA7Ci0gICAgICAgIGNoYXIgYnVmWzEwMjRdOwotICAgICAgICB2YV9saXN0IGFwOwotICAgICAgICB2YV9zdGFydChhcCwgZm10KTsKLSAgICAgICAgcmV0dmFsID0gdnNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZtdCwgYXApOwotICAgICAgICB2YV9lbmQoYXApOwotICAgICAgICBhYy0+c291cmNlUG9zLmVycm9yKCJFcnJvcjogJXMgKGF0ICclcycgd2l0aCB2YWx1ZSAnJXMnKS5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLCBhYy0+YXR0ci5zdHJpbmcoKSwgYWMtPnZhbHVlLnN0cmluZygpKTsKLSAgICB9Ci19Ci0KLWJvb2wgUmVzb3VyY2VUYWJsZTo6Z2V0QXR0cmlidXRlS2V5cygKLSAgICB1aW50MzJfdCBhdHRySUQsIFZlY3RvcjxTdHJpbmcxNj4qIG91dEtleXMpCi17Ci0gICAgc3A8Y29uc3QgRW50cnk+IGUgPSBnZXRFbnRyeShhdHRySUQpOwotICAgIGlmIChlICE9IE5VTEwpIHsKLSAgICAgICAgY29uc3Qgc2l6ZV90IE4gPSBlLT5nZXRCYWcoKS5zaXplKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBrZXkgPSBlLT5nZXRCYWcoKS5rZXlBdChpKTsKLSAgICAgICAgICAgIGlmIChrZXkuc2l6ZSgpID4gMCAmJiBrZXkuc3RyaW5nKClbMF0gIT0gJ14nKSB7Ci0gICAgICAgICAgICAgICAgb3V0S2V5cy0+YWRkKGtleSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBSZXNvdXJjZVRhYmxlOjpnZXRBdHRyaWJ1dGVFbnVtKAotICAgIHVpbnQzMl90IGF0dHJJRCwgY29uc3QgY2hhcjE2X3QqIG5hbWUsIHNpemVfdCBuYW1lTGVuLAotICAgIFJlc192YWx1ZSogb3V0VmFsdWUpCi17Ci0gICAgLy9wcmludGYoImdldEF0dHJpYnV0ZUVudW0gIyUwOHggJXNcbiIsIGF0dHJJRCwgU3RyaW5nOChuYW1lLCBuYW1lTGVuKS5zdHJpbmcoKSk7Ci0gICAgU3RyaW5nMTYgbmFtZVN0cihuYW1lLCBuYW1lTGVuKTsKLSAgICBzcDxjb25zdCBFbnRyeT4gZSA9IGdldEVudHJ5KGF0dHJJRCk7Ci0gICAgaWYgKGUgIT0gTlVMTCkgewotICAgICAgICBjb25zdCBzaXplX3QgTiA9IGUtPmdldEJhZygpLnNpemUoKTsKLSAgICAgICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICAgICAgLy9wcmludGYoIkNvbXBhcmluZyAlcyB0byAlc1xuIiwgU3RyaW5nOChuYW1lLCBuYW1lTGVuKS5zdHJpbmcoKSwKLSAgICAgICAgICAgIC8vICAgICAgIFN0cmluZzgoZS0+Z2V0QmFnKCkua2V5QXQoaSkpLnN0cmluZygpKTsKLSAgICAgICAgICAgIGlmIChlLT5nZXRCYWcoKS5rZXlBdChpKSA9PSBuYW1lU3RyKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGdldEl0ZW1WYWx1ZShhdHRySUQsIGUtPmdldEJhZygpLnZhbHVlQXQoaSkuYmFnS2V5SWQsIG91dFZhbHVlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgUmVzb3VyY2VUYWJsZTo6Z2V0QXR0cmlidXRlRmxhZ3MoCi0gICAgdWludDMyX3QgYXR0cklELCBjb25zdCBjaGFyMTZfdCogbmFtZSwgc2l6ZV90IG5hbWVMZW4sCi0gICAgUmVzX3ZhbHVlKiBvdXRWYWx1ZSkKLXsKLSAgICBvdXRWYWx1ZS0+ZGF0YVR5cGUgPSBSZXNfdmFsdWU6OlRZUEVfSU5UX0hFWDsKLSAgICBvdXRWYWx1ZS0+ZGF0YSA9IDA7Ci0KLSAgICAvL3ByaW50ZigiZ2V0QXR0cmlidXRlRmxhZ3MgIyUwOHggJXNcbiIsIGF0dHJJRCwgU3RyaW5nOChuYW1lLCBuYW1lTGVuKS5zdHJpbmcoKSk7Ci0gICAgU3RyaW5nMTYgbmFtZVN0cihuYW1lLCBuYW1lTGVuKTsKLSAgICBzcDxjb25zdCBFbnRyeT4gZSA9IGdldEVudHJ5KGF0dHJJRCk7Ci0gICAgaWYgKGUgIT0gTlVMTCkgewotICAgICAgICBjb25zdCBzaXplX3QgTiA9IGUtPmdldEJhZygpLnNpemUoKTsKLQotICAgICAgICBjb25zdCBjaGFyMTZfdCogZW5kID0gbmFtZSArIG5hbWVMZW47Ci0gICAgICAgIGNvbnN0IGNoYXIxNl90KiBwb3MgPSBuYW1lOwotICAgICAgICB3aGlsZSAocG9zIDwgZW5kKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogc3RhcnQgPSBwb3M7Ci0gICAgICAgICAgICB3aGlsZSAocG9zIDwgZW5kICYmICpwb3MgIT0gJ3wnKSB7Ci0gICAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFN0cmluZzE2IG5hbWVTdHIoc3RhcnQsIHBvcy1zdGFydCk7Ci0gICAgICAgICAgICBzaXplX3QgaTsKLSAgICAgICAgICAgIGZvciAoaT0wOyBpPE47IGkrKykgewotICAgICAgICAgICAgICAgIC8vcHJpbnRmKCJDb21wYXJpbmcgXCIlc1wiIHRvIFwiJXNcIlxuIiwgU3RyaW5nOChuYW1lU3RyKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAvLyAgICAgICBTdHJpbmc4KGUtPmdldEJhZygpLmtleUF0KGkpKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGUtPmdldEJhZygpLmtleUF0KGkpID09IG5hbWVTdHIpIHsKLSAgICAgICAgICAgICAgICAgICAgUmVzX3ZhbHVlIHZhbDsKLSAgICAgICAgICAgICAgICAgICAgYm9vbCBnb3QgPSBnZXRJdGVtVmFsdWUoYXR0cklELCBlLT5nZXRCYWcoKS52YWx1ZUF0KGkpLmJhZ0tleUlkLCAmdmFsKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFnb3QpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAvL3ByaW50ZigiR290IHZhbHVlOiAweCUwOHhcbiIsIHZhbC5kYXRhKTsKLSAgICAgICAgICAgICAgICAgICAgb3V0VmFsdWUtPmRhdGEgfD0gdmFsLmRhdGE7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKGkgPj0gTikgewotICAgICAgICAgICAgICAgIC8vIERpZG4ndCBmaW5kIHRoaXMgZmxhZyBpZGVudGlmaWVyLgotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvcysrOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdHVzX3QgUmVzb3VyY2VUYWJsZTo6YXNzaWduUmVzb3VyY2VJZHMoKQotewotICAgIGNvbnN0IHNpemVfdCBOID0gbU9yZGVyZWRQYWNrYWdlcy5zaXplKCk7Ci0gICAgc2l6ZV90IHBpOwotICAgIHN0YXR1c190IGZpcnN0RXJyb3IgPSBOT19FUlJPUjsKLQotICAgIC8vIEZpcnN0IGdlbmVyYXRlIGFsbCBiYWcgYXR0cmlidXRlcyBhbmQgYXNzaWduIGluZGljZXMuCi0gICAgZm9yIChwaT0wOyBwaTxOOyBwaSsrKSB7Ci0gICAgICAgIHNwPFBhY2thZ2U+IHAgPSBtT3JkZXJlZFBhY2thZ2VzLml0ZW1BdChwaSk7Ci0gICAgICAgIGlmIChwID09IE5VTEwgfHwgcC0+Z2V0VHlwZXMoKS5zaXplKCkgPT0gMCkgewotICAgICAgICAgICAgLy8gRW1wdHksIHNraXAhCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXR1c190IGVyciA9IHAtPmFwcGx5UHVibGljVHlwZU9yZGVyKCk7Ci0gICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IgJiYgZmlyc3RFcnJvciA9PSBOT19FUlJPUikgewotICAgICAgICAgICAgZmlyc3RFcnJvciA9IGVycjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEdlbmVyYXRlIGF0dHJpYnV0ZXMuLi4KLSAgICAgICAgY29uc3Qgc2l6ZV90IE4gPSBwLT5nZXRPcmRlcmVkVHlwZXMoKS5zaXplKCk7Ci0gICAgICAgIHNpemVfdCB0aTsKLSAgICAgICAgZm9yICh0aT0wOyB0aTxOOyB0aSsrKSB7Ci0gICAgICAgICAgICBzcDxUeXBlPiB0ID0gcC0+Z2V0T3JkZXJlZFR5cGVzKCkuaXRlbUF0KHRpKTsKLSAgICAgICAgICAgIGlmICh0ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnN0IHNpemVfdCBOID0gdC0+Z2V0T3JkZXJlZENvbmZpZ3MoKS5zaXplKCk7Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCBjaT0wOyBjaTxOOyBjaSsrKSB7Ci0gICAgICAgICAgICAgICAgc3A8Q29uZmlnTGlzdD4gYyA9IHQtPmdldE9yZGVyZWRDb25maWdzKCkuaXRlbUF0KGNpKTsKLSAgICAgICAgICAgICAgICBpZiAoYyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjb25zdCBzaXplX3QgTiA9IGMtPmdldEVudHJpZXMoKS5zaXplKCk7Ci0gICAgICAgICAgICAgICAgZm9yIChzaXplX3QgZWk9MDsgZWk8TjsgZWkrKykgewotICAgICAgICAgICAgICAgICAgICBzcDxFbnRyeT4gZSA9IGMtPmdldEVudHJpZXMoKS52YWx1ZUF0KGVpKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGUgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgc3RhdHVzX3QgZXJyID0gZS0+Z2VuZXJhdGVBdHRyaWJ1dGVzKHRoaXMsIHAtPmdldE5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IgJiYgZmlyc3RFcnJvciA9PSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RFcnJvciA9IGVycjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IFNvdXJjZVBvcyB1bmtub3duKFN0cmluZzgoIj8/Pz8iKSwgMCk7Ci0gICAgICAgIHNwPFR5cGU+IGF0dHIgPSBwLT5nZXRUeXBlKFN0cmluZzE2KCJhdHRyIiksIHVua25vd24pOwotCi0gICAgICAgIC8vIEFzc2lnbiBpbmRpY2VzLi4uCi0gICAgICAgIGZvciAodGk9MDsgdGk8TjsgdGkrKykgewotICAgICAgICAgICAgc3A8VHlwZT4gdCA9IHAtPmdldE9yZGVyZWRUeXBlcygpLml0ZW1BdCh0aSk7Ci0gICAgICAgICAgICBpZiAodCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlcnIgPSB0LT5hcHBseVB1YmxpY0VudHJ5T3JkZXIoKTsKLSAgICAgICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IgJiYgZmlyc3RFcnJvciA9PSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIGZpcnN0RXJyb3IgPSBlcnI7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGNvbnN0IHNpemVfdCBOID0gdC0+Z2V0T3JkZXJlZENvbmZpZ3MoKS5zaXplKCk7Ci0gICAgICAgICAgICB0LT5zZXRJbmRleCh0aSsxKTsKLQotICAgICAgICAgICAgTE9HX0FMV0FZU19GQVRBTF9JRih0aSA9PSAwICYmIGF0dHIgIT0gdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZpcnN0IHR5cGUgaXMgbm90IGF0dHIhIik7Ci0KLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGVpPTA7IGVpPE47IGVpKyspIHsKLSAgICAgICAgICAgICAgICBzcDxDb25maWdMaXN0PiBjID0gdC0+Z2V0T3JkZXJlZENvbmZpZ3MoKS5pdGVtQXQoZWkpOwotICAgICAgICAgICAgICAgIGlmIChjID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGMtPnNldEVudHJ5SW5kZXgoZWkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gQXNzaWduIHJlc291cmNlIElEcyB0byBrZXlzIGluIGJhZ3MuLi4KLSAgICAgICAgZm9yICh0aT0wOyB0aTxOOyB0aSsrKSB7Ci0gICAgICAgICAgICBzcDxUeXBlPiB0ID0gcC0+Z2V0T3JkZXJlZFR5cGVzKCkuaXRlbUF0KHRpKTsKLSAgICAgICAgICAgIGlmICh0ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnN0IHNpemVfdCBOID0gdC0+Z2V0T3JkZXJlZENvbmZpZ3MoKS5zaXplKCk7Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCBjaT0wOyBjaTxOOyBjaSsrKSB7Ci0gICAgICAgICAgICAgICAgc3A8Q29uZmlnTGlzdD4gYyA9IHQtPmdldE9yZGVyZWRDb25maWdzKCkuaXRlbUF0KGNpKTsKLSAgICAgICAgICAgICAgICAvL3ByaW50ZigiT3JkZXJlZCBjb25maWcgIyVkOiAlcFxuIiwgY2ksIGMuZ2V0KCkpOwotICAgICAgICAgICAgICAgIGNvbnN0IHNpemVfdCBOID0gYy0+Z2V0RW50cmllcygpLnNpemUoKTsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBlaT0wOyBlaTxOOyBlaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNwPEVudHJ5PiBlID0gYy0+Z2V0RW50cmllcygpLnZhbHVlQXQoZWkpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBzdGF0dXNfdCBlcnIgPSBlLT5hc3NpZ25SZXNvdXJjZUlkcyh0aGlzLCBwLT5nZXROYW1lKCkpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SICYmIGZpcnN0RXJyb3IgPT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0RXJyb3IgPSBlcnI7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIGZpcnN0RXJyb3I7Ci19Ci0KLXN0YXR1c190IFJlc291cmNlVGFibGU6OmFkZFN5bWJvbHMoY29uc3Qgc3A8QWFwdFN5bWJvbHM+JiBvdXRTeW1ib2xzKSB7Ci0gICAgY29uc3Qgc2l6ZV90IE4gPSBtT3JkZXJlZFBhY2thZ2VzLnNpemUoKTsKLSAgICBzaXplX3QgcGk7Ci0KLSAgICBmb3IgKHBpPTA7IHBpPE47IHBpKyspIHsKLSAgICAgICAgc3A8UGFja2FnZT4gcCA9IG1PcmRlcmVkUGFja2FnZXMuaXRlbUF0KHBpKTsKLSAgICAgICAgaWYgKHAtPmdldFR5cGVzKCkuc2l6ZSgpID09IDApIHsKLSAgICAgICAgICAgIC8vIEVtcHR5LCBza2lwIQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBzaXplX3QgTiA9IHAtPmdldE9yZGVyZWRUeXBlcygpLnNpemUoKTsKLSAgICAgICAgc2l6ZV90IHRpOwotCi0gICAgICAgIGZvciAodGk9MDsgdGk8TjsgdGkrKykgewotICAgICAgICAgICAgc3A8VHlwZT4gdCA9IHAtPmdldE9yZGVyZWRUeXBlcygpLml0ZW1BdCh0aSk7Ci0gICAgICAgICAgICBpZiAodCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjb25zdCBzaXplX3QgTiA9IHQtPmdldE9yZGVyZWRDb25maWdzKCkuc2l6ZSgpOwotICAgICAgICAgICAgc3A8QWFwdFN5bWJvbHM+IHR5cGVTeW1ib2xzOwotICAgICAgICAgICAgdHlwZVN5bWJvbHMgPSBvdXRTeW1ib2xzLT5hZGROZXN0ZWRTeW1ib2woU3RyaW5nOCh0LT5nZXROYW1lKCkpLCB0LT5nZXRQb3MoKSk7Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCBjaT0wOyBjaTxOOyBjaSsrKSB7Ci0gICAgICAgICAgICAgICAgc3A8Q29uZmlnTGlzdD4gYyA9IHQtPmdldE9yZGVyZWRDb25maWdzKCkuaXRlbUF0KGNpKTsKLSAgICAgICAgICAgICAgICBpZiAoYyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB1aW50MzJfdCByaWQgPSBnZXRSZXNJZChwLCB0LCBjaSk7Ci0gICAgICAgICAgICAgICAgaWYgKHJpZCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUmVzX0dFVFBBQ0tBR0UocmlkKSA9PSAoc2l6ZV90KShwLT5nZXRBc3NpZ25lZElkKCktMSkpIHsKLSAgICAgICAgICAgICAgICAgICAgdHlwZVN5bWJvbHMtPmFkZFN5bWJvbChTdHJpbmc4KGMtPmdldE5hbWUoKSksIHJpZCwgYy0+Z2V0UG9zKCkpOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nMTYgY29tbWVudChjLT5nZXRDb21tZW50KCkpOwotICAgICAgICAgICAgICAgICAgICB0eXBlU3ltYm9scy0+YXBwZW5kQ29tbWVudChTdHJpbmc4KGMtPmdldE5hbWUoKSksIGNvbW1lbnQsIGMtPmdldFBvcygpKTsKLSAgICAgICAgICAgICAgICAgICAgLy9wcmludGYoIlR5cGUgc3ltYm9sIFslMDh4XSAlcyBjb21tZW50OiAlc1xuIiwgcmlkLAotICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgU3RyaW5nOChjLT5nZXROYW1lKCkpLnN0cmluZygpLCBTdHJpbmc4KGNvbW1lbnQpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgY29tbWVudCA9IGMtPmdldFR5cGVDb21tZW50KCk7Ci0gICAgICAgICAgICAgICAgICAgIHR5cGVTeW1ib2xzLT5hcHBlbmRUeXBlQ29tbWVudChTdHJpbmc4KGMtPmdldE5hbWUoKSksIGNvbW1lbnQpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0jaWYgMAotICAgICAgICAgICAgICAgICAgICBwcmludGYoIioqKiogTk8gTUFUQ0g6IDB4JTA4eCB2cyAweCUwOHhcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNfR0VUUEFDS0FHRShyaWQpLCBwLT5nZXRBc3NpZ25lZElkKCkpOwotI2VuZGlmCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotCi12b2lkCi1SZXNvdXJjZVRhYmxlOjphZGRMb2NhbGl6YXRpb24oY29uc3QgU3RyaW5nMTYmIG5hbWUsIGNvbnN0IFN0cmluZzgmIGxvY2FsZSkKLXsKLSAgICBtTG9jYWxpemF0aW9uc1tuYW1lXS5pbnNlcnQobG9jYWxlKTsKLX0KLQotCi0vKiEKLSAqIEZsYWcgdmFyaW91cyBzb3J0cyBvZiBsb2NhbGl6YXRpb24gcHJvYmxlbXMuICAnKycgaW5kaWNhdGVzIGNoZWNrcyBhbHJlYWR5IGltcGxlbWVudGVkOwotICogJy0nIGluZGljYXRlcyBjaGVja3MgdGhhdCB3aWxsIGJlIGltcGxlbWVudGVkIGluIHRoZSBmdXR1cmUuCi0gKgotICogKyBBIGxvY2FsaXplZCBzdHJpbmcgZm9yIHdoaWNoIG5vIGRlZmF1bHQtbG9jYWxlIHZlcnNpb24gZXhpc3RzID0+IHdhcm5pbmcKLSAqICsgQSBzdHJpbmcgZm9yIHdoaWNoIG5vIHZlcnNpb24gaW4gYW4gZXhwbGljaXRseS1yZXF1ZXN0ZWQgbG9jYWxlIGV4aXN0cyA9PiB3YXJuaW5nCi0gKiArIEEgbG9jYWxpemVkIHRyYW5zbGF0aW9uIG9mIGFuIHRyYW5zbGF0ZWFibGU9ImZhbHNlIiBzdHJpbmcgPT4gd2FybmluZwotICogLSBBIGxvY2FsaXplZCBzdHJpbmcgbm90IHByb3ZpZGVkIGluIGV2ZXJ5IGxvY2FsZSB1c2VkIGJ5IHRoZSB0YWJsZQotICovCi1zdGF0dXNfdAotUmVzb3VyY2VUYWJsZTo6dmFsaWRhdGVMb2NhbGl6YXRpb25zKHZvaWQpCi17Ci0gICAgc3RhdHVzX3QgZXJyID0gTk9fRVJST1I7Ci0gICAgY29uc3QgU3RyaW5nOCBkZWZhdWx0TG9jYWxlOwotCi0gICAgLy8gRm9yIGFsbCBzdHJpbmdzLi4uCi0gICAgZm9yIChtYXA8U3RyaW5nMTYsIHNldDxTdHJpbmc4PiA+OjppdGVyYXRvciBuYW1lSXRlciA9IG1Mb2NhbGl6YXRpb25zLmJlZ2luKCk7Ci0gICAgICAgICBuYW1lSXRlciAhPSBtTG9jYWxpemF0aW9ucy5lbmQoKTsKLSAgICAgICAgIG5hbWVJdGVyKyspIHsKLSAgICAgICAgY29uc3Qgc2V0PFN0cmluZzg+JiBjb25maWdTZXQgPSBuYW1lSXRlci0+c2Vjb25kOyAgIC8vIG5hbWluZyBjb252ZW5pZW5jZQotCi0gICAgICAgIC8vIExvb2sgZm9yIHN0cmluZ3Mgd2l0aCBubyBkZWZhdWx0IGxvY2FsaXphdGlvbgotICAgICAgICBpZiAoY29uZmlnU2V0LmNvdW50KGRlZmF1bHRMb2NhbGUpID09IDApIHsKLSAgICAgICAgICAgIGZwcmludGYoc3Rkb3V0LCAiYWFwdDogd2FybmluZzogc3RyaW5nICclcycgaGFzIG5vIGRlZmF1bHQgdHJhbnNsYXRpb24gaW4gJXM7IGZvdW5kOiIsCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzgobmFtZUl0ZXItPmZpcnN0KS5zdHJpbmcoKSwgbUJ1bmRsZS0+Z2V0UmVzb3VyY2VTb3VyY2VEaXJzKClbMF0pOwotICAgICAgICAgICAgZm9yIChzZXQ8U3RyaW5nOD46OmNvbnN0X2l0ZXJhdG9yIGxvY2FsZXMgPSBjb25maWdTZXQuYmVnaW4oKTsKLSAgICAgICAgICAgICAgICAgbG9jYWxlcyAhPSBjb25maWdTZXQuZW5kKCk7Ci0gICAgICAgICAgICAgICAgIGxvY2FsZXMrKykgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3Rkb3V0LCAiICVzIiwgKCpsb2NhbGVzKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZG91dCwgIlxuIik7Ci0gICAgICAgICAgICAvLyAhISEgVE9ETzogdGhyb3cgYW4gZXJyb3IgaGVyZSBpbiBzb21lIGNpcmN1bXN0YW5jZXMKLSAgICAgICAgfQotCi0gICAgICAgIC8vIENoZWNrIHRoYXQgYWxsIHJlcXVlc3RlZCBsb2NhbGl6YXRpb25zIGFyZSBwcmVzZW50IGZvciB0aGlzIHN0cmluZwotICAgICAgICBpZiAobUJ1bmRsZS0+Z2V0Q29uZmlndXJhdGlvbnMoKSAhPSBOVUxMICYmIG1CdW5kbGUtPmdldFJlcXVpcmVMb2NhbGl6YXRpb24oKSkgewotICAgICAgICAgICAgY29uc3QgY2hhciogYWxsQ29uZmlncyA9IG1CdW5kbGUtPmdldENvbmZpZ3VyYXRpb25zKCk7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBzdGFydCA9IGFsbENvbmZpZ3M7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBjb21tYTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIFN0cmluZzggY29uZmlnOwotICAgICAgICAgICAgICAgIGNvbW1hID0gc3RyY2hyKHN0YXJ0LCAnLCcpOwotICAgICAgICAgICAgICAgIGlmIChjb21tYSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5zZXRUbyhzdGFydCwgY29tbWEgLSBzdGFydCk7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gY29tbWEgKyAxOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5zZXRUbyhzdGFydCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gZG9uJ3QgYm90aGVyIHdpdGggdGhlIHBzZXVkb2xvY2FsZSAienpfWloiCi0gICAgICAgICAgICAgICAgaWYgKGNvbmZpZyAhPSAienpfWloiKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjb25maWdTZXQuZmluZChjb25maWcpID09IGNvbmZpZ1NldC5lbmQoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2theSwgbm8gc3BlY2lmaWMgbG9jYWxpemF0aW9uIGZvdW5kLiAgaXQncyBwb3NzaWJsZSB0aGF0IHdlIGFyZQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWlyaW5nIGEgc3BlY2lmaWMgcmVnaW9uYWwgbG9jYWxpemF0aW9uIFtlLmcuIGRlX0RFXSBidXQgdGhlcmUgaXMgYW4KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGF2YWlsYWJsZSBzdHJpbmcgaW4gdGhlIGdlbmVyaWMgbGFuZ3VhZ2UgbG9jYWxpemF0aW9uIFtlLmcuIGRlXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNpZGVyIHRoYXQgc3RyaW5nIHRvIGhhdmUgZnVsZmlsbGVkIHRoZSBsb2NhbGl6YXRpb24gcmVxdWlyZW1lbnQuCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4IHJlZ2lvbihjb25maWcuc3RyaW5nKCksIDIpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZ1NldC5maW5kKHJlZ2lvbikgPT0gY29uZmlnU2V0LmVuZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZ1NldC5jb3VudChkZWZhdWx0TG9jYWxlKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3Rkb3V0LCAiYWFwdDogd2FybmluZzogIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIqKioqIHN0cmluZyAnJXMnIGhhcyBubyBkZWZhdWx0IG9yIHJlcXVpcmVkIGxvY2FsaXphdGlvbiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvciAnJXMnIGluICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgobmFtZUl0ZXItPmZpcnN0KS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUJ1bmRsZS0+Z2V0UmVzb3VyY2VTb3VyY2VEaXJzKClbMF0pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgfSB3aGlsZSAoY29tbWEgIT0gTlVMTCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gZXJyOwotfQotCi1zdGF0dXNfdCBSZXNvdXJjZVRhYmxlOjpmbGF0dGVuKEJ1bmRsZSogYnVuZGxlLCBjb25zdCBzcDxBYXB0RmlsZT4mIGRlc3QpCi17Ci0gICAgUmVzb3VyY2VGaWx0ZXIgZmlsdGVyOwotICAgIHN0YXR1c190IGVyciA9IGZpbHRlci5wYXJzZShidW5kbGUtPmdldENvbmZpZ3VyYXRpb25zKCkpOwotICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0KLSAgICBjb25zdCBDb25maWdEZXNjcmlwdGlvbiBudWxsQ29uZmlnOwotCi0gICAgY29uc3Qgc2l6ZV90IE4gPSBtT3JkZXJlZFBhY2thZ2VzLnNpemUoKTsKLSAgICBzaXplX3QgcGk7Ci0KLSAgICBjb25zdCBzdGF0aWMgU3RyaW5nMTYgbWlwbWFwMTYoIm1pcG1hcCIpOwotCi0gICAgYm9vbCB1c2VVVEY4ID0gIWJ1bmRsZS0+Z2V0VVRGMTZTdHJpbmdzT3B0aW9uKCk7Ci0KLSAgICAvLyBJdGVyYXRlIHRocm91Z2ggYWxsIGRhdGEsIGNvbGxlY3RpbmcgYWxsIHZhbHVlcyAoc3RyaW5ncywKLSAgICAvLyByZWZlcmVuY2VzLCBldGMpLgotICAgIFN0cmluZ1Bvb2wgdmFsdWVTdHJpbmdzKHVzZVVURjgpOwotICAgIFZlY3RvcjxzcDxFbnRyeT4gPiBhbGxFbnRyaWVzOwotICAgIGZvciAocGk9MDsgcGk8TjsgcGkrKykgewotICAgICAgICBzcDxQYWNrYWdlPiBwID0gbU9yZGVyZWRQYWNrYWdlcy5pdGVtQXQocGkpOwotICAgICAgICBpZiAocC0+Z2V0VHlwZXMoKS5zaXplKCkgPT0gMCkgewotICAgICAgICAgICAgLy8gRW1wdHksIHNraXAhCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIFN0cmluZ1Bvb2wgdHlwZVN0cmluZ3ModXNlVVRGOCk7Ci0gICAgICAgIFN0cmluZ1Bvb2wga2V5U3RyaW5ncyh1c2VVVEY4KTsKLQotICAgICAgICBjb25zdCBzaXplX3QgTiA9IHAtPmdldE9yZGVyZWRUeXBlcygpLnNpemUoKTsKLSAgICAgICAgZm9yIChzaXplX3QgdGk9MDsgdGk8TjsgdGkrKykgewotICAgICAgICAgICAgc3A8VHlwZT4gdCA9IHAtPmdldE9yZGVyZWRUeXBlcygpLml0ZW1BdCh0aSk7Ci0gICAgICAgICAgICBpZiAodCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgdHlwZVN0cmluZ3MuYWRkKFN0cmluZzE2KCI8ZW1wdHk+IiksIGZhbHNlKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2IHR5cGVOYW1lKHQtPmdldE5hbWUoKSk7Ci0gICAgICAgICAgICB0eXBlU3RyaW5ncy5hZGQodHlwZU5hbWUsIGZhbHNlKTsKLQotICAgICAgICAgICAgLy8gVGhpcyBpcyBhIGhhY2sgdG8gdHdlYWsgdGhlIHNvcnRpbmcgb3JkZXIgb2YgdGhlIGZpbmFsIHN0cmluZ3MsCi0gICAgICAgICAgICAvLyB0byBwdXQgc3R1ZmYgdGhhdCBpcyBnZW5lcmFsbHkgbm90IGxhbmd1YWdlLXNwZWNpZmljIGZpcnN0LgotICAgICAgICAgICAgU3RyaW5nOCBjb25maWdUeXBlTmFtZSh0eXBlTmFtZSk7Ci0gICAgICAgICAgICBpZiAoY29uZmlnVHlwZU5hbWUgPT0gImRyYXdhYmxlIiB8fCBjb25maWdUeXBlTmFtZSA9PSAibGF5b3V0IgotICAgICAgICAgICAgICAgICAgICB8fCBjb25maWdUeXBlTmFtZSA9PSAiY29sb3IiIHx8IGNvbmZpZ1R5cGVOYW1lID09ICJhbmltIgotICAgICAgICAgICAgICAgICAgICB8fCBjb25maWdUeXBlTmFtZSA9PSAiaW50ZXJwb2xhdG9yIiB8fCBjb25maWdUeXBlTmFtZSA9PSAiYW5pbWF0b3IiCi0gICAgICAgICAgICAgICAgICAgIHx8IGNvbmZpZ1R5cGVOYW1lID09ICJ4bWwiIHx8IGNvbmZpZ1R5cGVOYW1lID09ICJtZW51IgotICAgICAgICAgICAgICAgICAgICB8fCBjb25maWdUeXBlTmFtZSA9PSAibWlwbWFwIiB8fCBjb25maWdUeXBlTmFtZSA9PSAicmF3IikgewotICAgICAgICAgICAgICAgIGNvbmZpZ1R5cGVOYW1lID0gIjFjb21wbGV4IjsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgY29uZmlnVHlwZU5hbWUgPSAiMnZhbHVlIjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY29uc3QgYm9vbCBmaWx0ZXJhYmxlID0gKHR5cGVOYW1lICE9IG1pcG1hcDE2KTsKLQotICAgICAgICAgICAgY29uc3Qgc2l6ZV90IE4gPSB0LT5nZXRPcmRlcmVkQ29uZmlncygpLnNpemUoKTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGNpPTA7IGNpPE47IGNpKyspIHsKLSAgICAgICAgICAgICAgICBzcDxDb25maWdMaXN0PiBjID0gdC0+Z2V0T3JkZXJlZENvbmZpZ3MoKS5pdGVtQXQoY2kpOwotICAgICAgICAgICAgICAgIGlmIChjID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvbnN0IHNpemVfdCBOID0gYy0+Z2V0RW50cmllcygpLnNpemUoKTsKLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBlaT0wOyBlaTxOOyBlaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIENvbmZpZ0Rlc2NyaXB0aW9uIGNvbmZpZyA9IGMtPmdldEVudHJpZXMoKS5rZXlBdChlaSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJhYmxlICYmICFmaWx0ZXIubWF0Y2goY29uZmlnKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgc3A8RW50cnk+IGUgPSBjLT5nZXRFbnRyaWVzKCkudmFsdWVBdChlaSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChlID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGUtPnNldE5hbWVJbmRleChrZXlTdHJpbmdzLmFkZChlLT5nZXROYW1lKCksIHRydWUpKTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGVudHJ5IGhhcyBubyB2YWx1ZXMgZm9yIG90aGVyIGNvbmZpZ3MsCi0gICAgICAgICAgICAgICAgICAgIC8vIGFuZCBpcyB0aGUgZGVmYXVsdCBjb25maWcsIHRoZW4gaXQgaXMgc3BlY2lhbC4gIE90aGVyd2lzZQotICAgICAgICAgICAgICAgICAgICAvLyB3ZSB3YW50IHRvIGFkZCBpdCB3aXRoIHRoZSBjb25maWcgaW5mby4KLSAgICAgICAgICAgICAgICAgICAgQ29uZmlnRGVzY3JpcHRpb24qIHZhbHVlQ29uZmlnID0gTlVMTDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKE4gIT0gMSB8fCBjb25maWcgPT0gbnVsbENvbmZpZykgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDb25maWcgPSAmY29uZmlnOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgc3RhdHVzX3QgZXJyID0gZS0+cHJlcGFyZUZsYXR0ZW4oJnZhbHVlU3RyaW5ncywgdGhpcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29uZmlnVHlwZU5hbWUsICZjb25maWcpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGFsbEVudHJpZXMuYWRkKGUpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHAtPnNldFR5cGVTdHJpbmdzKHR5cGVTdHJpbmdzLmNyZWF0ZVN0cmluZ0Jsb2NrKCkpOwotICAgICAgICBwLT5zZXRLZXlTdHJpbmdzKGtleVN0cmluZ3MuY3JlYXRlU3RyaW5nQmxvY2soKSk7Ci0gICAgfQotCi0gICAgaWYgKGJ1bmRsZS0+Z2V0T3V0cHV0QVBLRmlsZSgpICE9IE5VTEwpIHsKLSAgICAgICAgLy8gTm93IHdlIHdhbnQgdG8gc29ydCB0aGUgdmFsdWUgc3RyaW5ncyBmb3IgYmV0dGVyIGxvY2FsaXR5LiAgVGhpcyB3aWxsCi0gICAgICAgIC8vIGNhdXNlIHRoZSBwb3NpdGlvbnMgb2YgdGhlIHN0cmluZ3MgdG8gY2hhbmdlLCBzbyB3ZSBuZWVkIHRvIGdvIGJhY2sKLSAgICAgICAgLy8gdGhyb3VnaCBvdXQgcmVzb3VyY2UgZW50cmllcyBhbmQgdXBkYXRlIHRoZW0gYWNjb3JkaW5nbHkuICBPbmx5IG5lZWQKLSAgICAgICAgLy8gdG8gZG8gdGhpcyBpZiBhY3R1YWxseSB3cml0aW5nIHRoZSBvdXRwdXQgZmlsZS4KLSAgICAgICAgdmFsdWVTdHJpbmdzLnNvcnRCeUNvbmZpZygpOwotICAgICAgICBmb3IgKHBpPTA7IHBpPGFsbEVudHJpZXMuc2l6ZSgpOyBwaSsrKSB7Ci0gICAgICAgICAgICBhbGxFbnRyaWVzW3BpXS0+cmVtYXBTdHJpbmdWYWx1ZSgmdmFsdWVTdHJpbmdzKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHNzaXplX3Qgc3RyQW10ID0gMDsKLSAgICAKLSAgICAvLyBOb3cgYnVpbGQgdGhlIGFycmF5IG9mIHBhY2thZ2UgY2h1bmtzLgotICAgIFZlY3RvcjxzcDxBYXB0RmlsZT4gPiBmbGF0UGFja2FnZXM7Ci0gICAgZm9yIChwaT0wOyBwaTxOOyBwaSsrKSB7Ci0gICAgICAgIHNwPFBhY2thZ2U+IHAgPSBtT3JkZXJlZFBhY2thZ2VzLml0ZW1BdChwaSk7Ci0gICAgICAgIGlmIChwLT5nZXRUeXBlcygpLnNpemUoKSA9PSAwKSB7Ci0gICAgICAgICAgICAvLyBFbXB0eSwgc2tpcCEKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3Qgc2l6ZV90IE4gPSBwLT5nZXRUeXBlU3RyaW5ncygpLnNpemUoKTsKLQotICAgICAgICBjb25zdCBzaXplX3QgYmFzZVNpemUgPSBzaXplb2YoUmVzVGFibGVfcGFja2FnZSk7Ci0KLSAgICAgICAgLy8gU3RhcnQgdGhlIHBhY2thZ2UgZGF0YS4KLSAgICAgICAgc3A8QWFwdEZpbGU+IGRhdGEgPSBuZXcgQWFwdEZpbGUoU3RyaW5nOCgpLCBBYXB0R3JvdXBFbnRyeSgpLCBTdHJpbmc4KCkpOwotICAgICAgICBSZXNUYWJsZV9wYWNrYWdlKiBoZWFkZXIgPSAoUmVzVGFibGVfcGFja2FnZSopZGF0YS0+ZWRpdERhdGEoYmFzZVNpemUpOwotICAgICAgICBpZiAoaGVhZGVyID09IE5VTEwpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IG91dCBvZiBtZW1vcnkgY3JlYXRpbmcgUmVzVGFibGVfcGFja2FnZVxuIik7Ci0gICAgICAgICAgICByZXR1cm4gTk9fTUVNT1JZOwotICAgICAgICB9Ci0gICAgICAgIG1lbXNldChoZWFkZXIsIDAsIHNpemVvZigqaGVhZGVyKSk7Ci0gICAgICAgIGhlYWRlci0+aGVhZGVyLnR5cGUgPSBodG9kcyhSRVNfVEFCTEVfUEFDS0FHRV9UWVBFKTsKLSAgICAgICAgaGVhZGVyLT5oZWFkZXIuaGVhZGVyU2l6ZSA9IGh0b2RzKHNpemVvZigqaGVhZGVyKSk7Ci0gICAgICAgIGhlYWRlci0+aWQgPSBodG9kbChwLT5nZXRBc3NpZ25lZElkKCkpOwotICAgICAgICBzdHJjcHkxNl9odG9kKGhlYWRlci0+bmFtZSwgcC0+Z2V0TmFtZSgpLnN0cmluZygpKTsKLQotICAgICAgICAvLyBXcml0ZSB0aGUgc3RyaW5nIGJsb2Nrcy4KLSAgICAgICAgY29uc3Qgc2l6ZV90IHR5cGVTdHJpbmdzU3RhcnQgPSBkYXRhLT5nZXRTaXplKCk7Ci0gICAgICAgIHNwPEFhcHRGaWxlPiBzdHJGaWxlID0gcC0+Z2V0VHlwZVN0cmluZ3NEYXRhKCk7Ci0gICAgICAgIHNzaXplX3QgYW10ID0gZGF0YS0+d3JpdGVEYXRhKHN0ckZpbGUtPmdldERhdGEoKSwgc3RyRmlsZS0+Z2V0U2l6ZSgpKTsKLSAgICAgICAgI2lmIFBSSU5UX1NUUklOR19NRVRSSUNTCi0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiKioqKiB0eXBlIHN0cmluZ3M6ICVkXG4iLCBhbXQpOwotICAgICAgICAjZW5kaWYKLSAgICAgICAgc3RyQW10ICs9IGFtdDsKLSAgICAgICAgaWYgKGFtdCA8IDApIHsKLSAgICAgICAgICAgIHJldHVybiBhbXQ7Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3Qgc2l6ZV90IGtleVN0cmluZ3NTdGFydCA9IGRhdGEtPmdldFNpemUoKTsKLSAgICAgICAgc3RyRmlsZSA9IHAtPmdldEtleVN0cmluZ3NEYXRhKCk7Ci0gICAgICAgIGFtdCA9IGRhdGEtPndyaXRlRGF0YShzdHJGaWxlLT5nZXREYXRhKCksIHN0ckZpbGUtPmdldFNpemUoKSk7Ci0gICAgICAgICNpZiBQUklOVF9TVFJJTkdfTUVUUklDUwotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIioqKioga2V5IHN0cmluZ3M6ICVkXG4iLCBhbXQpOwotICAgICAgICAjZW5kaWYKLSAgICAgICAgc3RyQW10ICs9IGFtdDsKLSAgICAgICAgaWYgKGFtdCA8IDApIHsKLSAgICAgICAgICAgIHJldHVybiBhbXQ7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBCdWlsZCB0aGUgdHlwZSBjaHVua3MgaW5zaWRlIG9mIHRoaXMgcGFja2FnZS4KLSAgICAgICAgZm9yIChzaXplX3QgdGk9MDsgdGk8TjsgdGkrKykgewotICAgICAgICAgICAgLy8gUmV0cmlldmUgdGhlbSBpbiB0aGUgc2FtZSBvcmRlciBhcyB0aGUgdHlwZSBzdHJpbmcgYmxvY2suCi0gICAgICAgICAgICBzaXplX3QgbGVuOwotICAgICAgICAgICAgU3RyaW5nMTYgdHlwZU5hbWUocC0+Z2V0VHlwZVN0cmluZ3MoKS5zdHJpbmdBdCh0aSwgJmxlbikpOwotICAgICAgICAgICAgc3A8VHlwZT4gdCA9IHAtPmdldFR5cGVzKCkudmFsdWVGb3IodHlwZU5hbWUpOwotICAgICAgICAgICAgTE9HX0FMV0FZU19GQVRBTF9JRih0ID09IE5VTEwgJiYgdHlwZU5hbWUgIT0gU3RyaW5nMTYoIjxlbXB0eT4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlR5cGUgbmFtZSAlcyBub3QgZm91bmQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHR5cGVOYW1lKS5zdHJpbmcoKSk7Ci0KLSAgICAgICAgICAgIGNvbnN0IGJvb2wgZmlsdGVyYWJsZSA9ICh0eXBlTmFtZSAhPSBtaXBtYXAxNik7Ci0KLSAgICAgICAgICAgIGNvbnN0IHNpemVfdCBOID0gdCAhPSBOVUxMID8gdC0+Z2V0T3JkZXJlZENvbmZpZ3MoKS5zaXplKCkgOiAwOwotCi0gICAgICAgICAgICAvLyBVbnRpbCBhIG5vbi1OT19FTlRSWSB2YWx1ZSBoYXMgYmVlbiB3cml0dGVuIGZvciBhIHJlc291cmNlLAotICAgICAgICAgICAgLy8gdGhhdCByZXNvdXJjZSBpcyBpbnZhbGlkOyB2YWxpZFJlc291cmNlc1tpXSByZXByZXNlbnRzCi0gICAgICAgICAgICAvLyB0aGUgaXRlbSBhdCB0LT5nZXRPcmRlcmVkQ29uZmlncygpLml0ZW1BdChpKS4KLSAgICAgICAgICAgIFZlY3Rvcjxib29sPiB2YWxpZFJlc291cmNlczsKLSAgICAgICAgICAgIHZhbGlkUmVzb3VyY2VzLmluc2VydEF0KGZhbHNlLCAwLCBOKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgLy8gRmlyc3Qgd3JpdGUgdGhlIHR5cGVTcGVjIGNodW5rLCBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0Ci0gICAgICAgICAgICAvLyBlYWNoIHJlc291cmNlIGVudHJ5IGluIHRoaXMgdHlwZS4KLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb25zdCBzaXplX3QgdHlwZVNwZWNTaXplID0gc2l6ZW9mKFJlc1RhYmxlX3R5cGVTcGVjKSArIHNpemVvZih1aW50MzJfdCkqTjsKLSAgICAgICAgICAgICAgICBjb25zdCBzaXplX3QgdHlwZVNwZWNTdGFydCA9IGRhdGEtPmdldFNpemUoKTsKLSAgICAgICAgICAgICAgICBSZXNUYWJsZV90eXBlU3BlYyogdHNIZWFkZXIgPSAoUmVzVGFibGVfdHlwZVNwZWMqKQotICAgICAgICAgICAgICAgICAgICAoKCh1aW50OF90KilkYXRhLT5lZGl0RGF0YSh0eXBlU3BlY1N0YXJ0K3R5cGVTcGVjU2l6ZSkpICsgdHlwZVNwZWNTdGFydCk7Ci0gICAgICAgICAgICAgICAgaWYgKHRzSGVhZGVyID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogb3V0IG9mIG1lbW9yeSBjcmVhdGluZyBSZXNUYWJsZV90eXBlU3BlY1xuIik7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOT19NRU1PUlk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG1lbXNldCh0c0hlYWRlciwgMCwgc2l6ZW9mKCp0c0hlYWRlcikpOwotICAgICAgICAgICAgICAgIHRzSGVhZGVyLT5oZWFkZXIudHlwZSA9IGh0b2RzKFJFU19UQUJMRV9UWVBFX1NQRUNfVFlQRSk7Ci0gICAgICAgICAgICAgICAgdHNIZWFkZXItPmhlYWRlci5oZWFkZXJTaXplID0gaHRvZHMoc2l6ZW9mKCp0c0hlYWRlcikpOwotICAgICAgICAgICAgICAgIHRzSGVhZGVyLT5oZWFkZXIuc2l6ZSA9IGh0b2RsKHR5cGVTcGVjU2l6ZSk7Ci0gICAgICAgICAgICAgICAgdHNIZWFkZXItPmlkID0gdGkrMTsKLSAgICAgICAgICAgICAgICB0c0hlYWRlci0+ZW50cnlDb3VudCA9IGh0b2RsKE4pOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHVpbnQzMl90KiB0eXBlU3BlY0ZsYWdzID0gKHVpbnQzMl90KikKLSAgICAgICAgICAgICAgICAgICAgKCgodWludDhfdCopZGF0YS0+ZWRpdERhdGEoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICsgdHlwZVNwZWNTdGFydCArIHNpemVvZihSZXNUYWJsZV90eXBlU3BlYykpOwotICAgICAgICAgICAgICAgIG1lbXNldCh0eXBlU3BlY0ZsYWdzLCAwLCBzaXplb2YodWludDMyX3QpKk4pOwotCi0gICAgICAgICAgICAgICAgZm9yIChzaXplX3QgZWk9MDsgZWk8TjsgZWkrKykgewotICAgICAgICAgICAgICAgICAgICBzcDxDb25maWdMaXN0PiBjbCA9IHQtPmdldE9yZGVyZWRDb25maWdzKCkuaXRlbUF0KGVpKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNsLT5nZXRQdWJsaWMoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdHlwZVNwZWNGbGFnc1tlaV0gfD0gaHRvZGwoUmVzVGFibGVfdHlwZVNwZWM6OlNQRUNfUFVCTElDKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplX3QgQ04gPSBjbC0+Z2V0RW50cmllcygpLnNpemUoKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgY2k9MDsgY2k8Q047IGNpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJhYmxlICYmICFmaWx0ZXIubWF0Y2goY2wtPmdldEVudHJpZXMoKS5rZXlBdChjaSkpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBjaj1jaSsxOyBjajxDTjsgY2orKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJhYmxlICYmICFmaWx0ZXIubWF0Y2goY2wtPmdldEVudHJpZXMoKS5rZXlBdChjaikpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlU3BlY0ZsYWdzW2VpXSB8PSBodG9kbCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2wtPmdldEVudHJpZXMoKS5rZXlBdChjaSkuZGlmZihjbC0+Z2V0RW50cmllcygpLmtleUF0KGNqKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHdyaXRlIG9uZSB0eXBlIGNodW5rIGZvciBlYWNoIGNvbmZpZ3VyYXRpb24gZm9yCi0gICAgICAgICAgICAvLyB3aGljaCB3ZSBoYXZlIGVudHJpZXMgaW4gdGhpcyB0eXBlLgotICAgICAgICAgICAgY29uc3Qgc2l6ZV90IE5DID0gdC0+Z2V0VW5pcXVlQ29uZmlncygpLnNpemUoKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgY29uc3Qgc2l6ZV90IHR5cGVTaXplID0gc2l6ZW9mKFJlc1RhYmxlX3R5cGUpICsgc2l6ZW9mKHVpbnQzMl90KSpOOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBmb3IgKHNpemVfdCBjaT0wOyBjaTxOQzsgY2krKykgewotICAgICAgICAgICAgICAgIENvbmZpZ0Rlc2NyaXB0aW9uIGNvbmZpZyA9IHQtPmdldFVuaXF1ZUNvbmZpZ3MoKS5pdGVtQXQoY2kpOwotCi0gICAgICAgICAgICAgICAgTk9JU1kocHJpbnRmKCJXcml0aW5nIGNvbmZpZyAlZCBjb25maWc6IGltc2k6JWQvJWQgbGFuZzolYyVjIGNudDolYyVjICIKLSAgICAgICAgICAgICAgICAgICAgICJvcmllbjolZCB1aTolZCB0b3VjaDolZCBkZW5zaXR5OiVkIGtleTolZCBpbnA6JWQgbmF2OiVkIHN6OiVkeCVkICIKLSAgICAgICAgICAgICAgICAgICAgICJzdyVkZHAgdyVkZHAgaCVkZHAgZGlyOiVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgIHRpKzEsCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLm1jYywgY29uZmlnLm1uYywKLSAgICAgICAgICAgICAgICAgICAgICBjb25maWcubGFuZ3VhZ2VbMF0gPyBjb25maWcubGFuZ3VhZ2VbMF0gOiAnLScsCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmxhbmd1YWdlWzFdID8gY29uZmlnLmxhbmd1YWdlWzFdIDogJy0nLAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5jb3VudHJ5WzBdID8gY29uZmlnLmNvdW50cnlbMF0gOiAnLScsCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmNvdW50cnlbMV0gPyBjb25maWcuY291bnRyeVsxXSA6ICctJywKLSAgICAgICAgICAgICAgICAgICAgICBjb25maWcub3JpZW50YXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLnVpTW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICBjb25maWcudG91Y2hzY3JlZW4sCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmRlbnNpdHksCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmtleWJvYXJkLAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5pbnB1dEZsYWdzLAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5uYXZpZ2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5zY3JlZW5XaWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICBjb25maWcuc2NyZWVuSGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5zbWFsbGVzdFNjcmVlbldpZHRoRHAsCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLnNjcmVlbldpZHRoRHAsCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLnNjcmVlbkhlaWdodERwLAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5sYXlvdXREaXJlY3Rpb24pKTsKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoZmlsdGVyYWJsZSAmJiAhZmlsdGVyLm1hdGNoKGNvbmZpZykpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGNvbnN0IHNpemVfdCB0eXBlU3RhcnQgPSBkYXRhLT5nZXRTaXplKCk7Ci0KLSAgICAgICAgICAgICAgICBSZXNUYWJsZV90eXBlKiB0SGVhZGVyID0gKFJlc1RhYmxlX3R5cGUqKQotICAgICAgICAgICAgICAgICAgICAoKCh1aW50OF90KilkYXRhLT5lZGl0RGF0YSh0eXBlU3RhcnQrdHlwZVNpemUpKSArIHR5cGVTdGFydCk7Ci0gICAgICAgICAgICAgICAgaWYgKHRIZWFkZXIgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBvdXQgb2YgbWVtb3J5IGNyZWF0aW5nIFJlc1RhYmxlX3R5cGVcbiIpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTk9fTUVNT1JZOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIG1lbXNldCh0SGVhZGVyLCAwLCBzaXplb2YoKnRIZWFkZXIpKTsKLSAgICAgICAgICAgICAgICB0SGVhZGVyLT5oZWFkZXIudHlwZSA9IGh0b2RzKFJFU19UQUJMRV9UWVBFX1RZUEUpOwotICAgICAgICAgICAgICAgIHRIZWFkZXItPmhlYWRlci5oZWFkZXJTaXplID0gaHRvZHMoc2l6ZW9mKCp0SGVhZGVyKSk7Ci0gICAgICAgICAgICAgICAgdEhlYWRlci0+aWQgPSB0aSsxOwotICAgICAgICAgICAgICAgIHRIZWFkZXItPmVudHJ5Q291bnQgPSBodG9kbChOKTsKLSAgICAgICAgICAgICAgICB0SGVhZGVyLT5lbnRyaWVzU3RhcnQgPSBodG9kbCh0eXBlU2l6ZSk7Ci0gICAgICAgICAgICAgICAgdEhlYWRlci0+Y29uZmlnID0gY29uZmlnOwotICAgICAgICAgICAgICAgIE5PSVNZKHByaW50ZigiV3JpdGluZyB0eXBlICVkIGNvbmZpZzogaW1zaTolZC8lZCBsYW5nOiVjJWMgY250OiVjJWMgIgotICAgICAgICAgICAgICAgICAgICAgIm9yaWVuOiVkIHVpOiVkIHRvdWNoOiVkIGRlbnNpdHk6JWQga2V5OiVkIGlucDolZCBuYXY6JWQgc3o6JWR4JWQgIgotICAgICAgICAgICAgICAgICAgICAgInN3JWRkcCB3JWRkcCBoJWRkcCBkaXI6JWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgdGkrMSwKLSAgICAgICAgICAgICAgICAgICAgICB0SGVhZGVyLT5jb25maWcubWNjLCB0SGVhZGVyLT5jb25maWcubW5jLAotICAgICAgICAgICAgICAgICAgICAgIHRIZWFkZXItPmNvbmZpZy5sYW5ndWFnZVswXSA/IHRIZWFkZXItPmNvbmZpZy5sYW5ndWFnZVswXSA6ICctJywKLSAgICAgICAgICAgICAgICAgICAgICB0SGVhZGVyLT5jb25maWcubGFuZ3VhZ2VbMV0gPyB0SGVhZGVyLT5jb25maWcubGFuZ3VhZ2VbMV0gOiAnLScsCi0gICAgICAgICAgICAgICAgICAgICAgdEhlYWRlci0+Y29uZmlnLmNvdW50cnlbMF0gPyB0SGVhZGVyLT5jb25maWcuY291bnRyeVswXSA6ICctJywKLSAgICAgICAgICAgICAgICAgICAgICB0SGVhZGVyLT5jb25maWcuY291bnRyeVsxXSA/IHRIZWFkZXItPmNvbmZpZy5jb3VudHJ5WzFdIDogJy0nLAotICAgICAgICAgICAgICAgICAgICAgIHRIZWFkZXItPmNvbmZpZy5vcmllbnRhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICB0SGVhZGVyLT5jb25maWcudWlNb2RlLAotICAgICAgICAgICAgICAgICAgICAgIHRIZWFkZXItPmNvbmZpZy50b3VjaHNjcmVlbiwKLSAgICAgICAgICAgICAgICAgICAgICB0SGVhZGVyLT5jb25maWcuZGVuc2l0eSwKLSAgICAgICAgICAgICAgICAgICAgICB0SGVhZGVyLT5jb25maWcua2V5Ym9hcmQsCi0gICAgICAgICAgICAgICAgICAgICAgdEhlYWRlci0+Y29uZmlnLmlucHV0RmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgdEhlYWRlci0+Y29uZmlnLm5hdmlnYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgdEhlYWRlci0+Y29uZmlnLnNjcmVlbldpZHRoLAotICAgICAgICAgICAgICAgICAgICAgIHRIZWFkZXItPmNvbmZpZy5zY3JlZW5IZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgdEhlYWRlci0+Y29uZmlnLnNtYWxsZXN0U2NyZWVuV2lkdGhEcCwKLSAgICAgICAgICAgICAgICAgICAgICB0SGVhZGVyLT5jb25maWcuc2NyZWVuV2lkdGhEcCwKLSAgICAgICAgICAgICAgICAgICAgICB0SGVhZGVyLT5jb25maWcuc2NyZWVuSGVpZ2h0RHAsCi0gICAgICAgICAgICAgICAgICAgICAgdEhlYWRlci0+Y29uZmlnLmxheW91dERpcmVjdGlvbikpOwotICAgICAgICAgICAgICAgIHRIZWFkZXItPmNvbmZpZy5zd2FwSHRvRCgpOwotCi0gICAgICAgICAgICAgICAgLy8gQnVpbGQgdGhlIGVudHJpZXMgaW5zaWRlIG9mIHRoaXMgdHlwZS4KLSAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBlaT0wOyBlaTxOOyBlaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNwPENvbmZpZ0xpc3Q+IGNsID0gdC0+Z2V0T3JkZXJlZENvbmZpZ3MoKS5pdGVtQXQoZWkpOwotICAgICAgICAgICAgICAgICAgICBzcDxFbnRyeT4gZSA9IGNsLT5nZXRFbnRyaWVzKCkudmFsdWVGb3IoY29uZmlnKTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIG9mZnNldCBmb3IgdGhpcyBlbnRyeSBpbiBpdHMgdHlwZS4KLSAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGluZGV4ID0gKHVpbnQzMl90KikKLSAgICAgICAgICAgICAgICAgICAgICAgICgoKHVpbnQ4X3QqKWRhdGEtPmVkaXREYXRhKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB0eXBlU3RhcnQgKyBzaXplb2YoUmVzVGFibGVfdHlwZSkpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbmRleFtlaV0gPSBodG9kbChkYXRhLT5nZXRTaXplKCktdHlwZVN0YXJ0LXR5cGVTaXplKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBlbnRyeS4KLSAgICAgICAgICAgICAgICAgICAgICAgIHNzaXplX3QgYW10ID0gZS0+ZmxhdHRlbihidW5kbGUsIGRhdGEsIGNsLT5nZXRQdWJsaWMoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYW10IDwgMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhbXQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZFJlc291cmNlcy5lZGl0SXRlbUF0KGVpKSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbmRleFtlaV0gPSBodG9kbChSZXNUYWJsZV90eXBlOjpOT19FTlRSWSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAvLyBGaWxsIGluIHRoZSByZXN0IG9mIHRoZSB0eXBlIGluZm9ybWF0aW9uLgotICAgICAgICAgICAgICAgIHRIZWFkZXIgPSAoUmVzVGFibGVfdHlwZSopCi0gICAgICAgICAgICAgICAgICAgICgoKHVpbnQ4X3QqKWRhdGEtPmVkaXREYXRhKCkpICsgdHlwZVN0YXJ0KTsKLSAgICAgICAgICAgICAgICB0SGVhZGVyLT5oZWFkZXIuc2l6ZSA9IGh0b2RsKGRhdGEtPmdldFNpemUoKS10eXBlU3RhcnQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE47ICsraSkgewotICAgICAgICAgICAgICAgIGlmICghdmFsaWRSZXNvdXJjZXNbaV0pIHsKLSAgICAgICAgICAgICAgICAgICAgc3A8Q29uZmlnTGlzdD4gYyA9IHQtPmdldE9yZGVyZWRDb25maWdzKCkuaXRlbUF0KGkpOwotICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIndhcm5pbmc6IG5vIGVudHJpZXMgd3JpdHRlbiBmb3IgJXMvJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCh0eXBlTmFtZSkuc3RyaW5nKCksIFN0cmluZzgoYy0+Z2V0TmFtZSgpKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRmlsbCBpbiB0aGUgcmVzdCBvZiB0aGUgcGFja2FnZSBpbmZvcm1hdGlvbi4KLSAgICAgICAgaGVhZGVyID0gKFJlc1RhYmxlX3BhY2thZ2UqKWRhdGEtPmVkaXREYXRhKCk7Ci0gICAgICAgIGhlYWRlci0+aGVhZGVyLnNpemUgPSBodG9kbChkYXRhLT5nZXRTaXplKCkpOwotICAgICAgICBoZWFkZXItPnR5cGVTdHJpbmdzID0gaHRvZGwodHlwZVN0cmluZ3NTdGFydCk7Ci0gICAgICAgIGhlYWRlci0+bGFzdFB1YmxpY1R5cGUgPSBodG9kbChwLT5nZXRUeXBlU3RyaW5ncygpLnNpemUoKSk7Ci0gICAgICAgIGhlYWRlci0+a2V5U3RyaW5ncyA9IGh0b2RsKGtleVN0cmluZ3NTdGFydCk7Ci0gICAgICAgIGhlYWRlci0+bGFzdFB1YmxpY0tleSA9IGh0b2RsKHAtPmdldEtleVN0cmluZ3MoKS5zaXplKCkpOwotCi0gICAgICAgIGZsYXRQYWNrYWdlcy5hZGQoZGF0YSk7Ci0gICAgfQotCi0gICAgLy8gQW5kIG5vdyB3cml0ZSBvdXQgdGhlIGZpbmFsIGNodW5rcy4KLSAgICBjb25zdCBzaXplX3QgZGF0YVN0YXJ0ID0gZGVzdC0+Z2V0U2l6ZSgpOwotCi0gICAgewotICAgICAgICAvLyBibGFoCi0gICAgICAgIFJlc1RhYmxlX2hlYWRlciBoZWFkZXI7Ci0gICAgICAgIG1lbXNldCgmaGVhZGVyLCAwLCBzaXplb2YoaGVhZGVyKSk7Ci0gICAgICAgIGhlYWRlci5oZWFkZXIudHlwZSA9IGh0b2RzKFJFU19UQUJMRV9UWVBFKTsKLSAgICAgICAgaGVhZGVyLmhlYWRlci5oZWFkZXJTaXplID0gaHRvZHMoc2l6ZW9mKGhlYWRlcikpOwotICAgICAgICBoZWFkZXIucGFja2FnZUNvdW50ID0gaHRvZGwoZmxhdFBhY2thZ2VzLnNpemUoKSk7Ci0gICAgICAgIHN0YXR1c190IGVyciA9IGRlc3QtPndyaXRlRGF0YSgmaGVhZGVyLCBzaXplb2YoaGVhZGVyKSk7Ci0gICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IG91dCBvZiBtZW1vcnkgY3JlYXRpbmcgUmVzVGFibGVfaGVhZGVyXG4iKTsKLSAgICAgICAgICAgIHJldHVybiBlcnI7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgc3NpemVfdCBzdHJTdGFydCA9IGRlc3QtPmdldFNpemUoKTsKLSAgICBlcnIgPSB2YWx1ZVN0cmluZ3Mud3JpdGVTdHJpbmdCbG9jayhkZXN0KTsKLSAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiBlcnI7Ci0gICAgfQotCi0gICAgc3NpemVfdCBhbXQgPSAoZGVzdC0+Z2V0U2l6ZSgpLXN0clN0YXJ0KTsKLSAgICBzdHJBbXQgKz0gYW10OwotICAgICNpZiBQUklOVF9TVFJJTkdfTUVUUklDUwotICAgIGZwcmludGYoc3RkZXJyLCAiKioqKiB2YWx1ZSBzdHJpbmdzOiAlZFxuIiwgYW10KTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIioqKiogdG90YWwgc3RyaW5nczogJWRcbiIsIHN0ckFtdCk7Ci0gICAgI2VuZGlmCi0gICAgCi0gICAgZm9yIChwaT0wOyBwaTxmbGF0UGFja2FnZXMuc2l6ZSgpOyBwaSsrKSB7Ci0gICAgICAgIGVyciA9IGRlc3QtPndyaXRlRGF0YShmbGF0UGFja2FnZXNbcGldLT5nZXREYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGF0UGFja2FnZXNbcGldLT5nZXRTaXplKCkpOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBvdXQgb2YgbWVtb3J5IGNyZWF0aW5nIHBhY2thZ2UgY2h1bmsgZm9yIFJlc1RhYmxlX2hlYWRlclxuIik7Ci0gICAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgUmVzVGFibGVfaGVhZGVyKiBoZWFkZXIgPSAoUmVzVGFibGVfaGVhZGVyKikKLSAgICAgICAgKCgodWludDhfdCopZGVzdC0+Z2V0RGF0YSgpKSArIGRhdGFTdGFydCk7Ci0gICAgaGVhZGVyLT5oZWFkZXIuc2l6ZSA9IGh0b2RsKGRlc3QtPmdldFNpemUoKSAtIGRhdGFTdGFydCk7Ci0KLSAgICBOT0lTWShhb3V0IDw8ICJSZXNvdXJjZSB0YWJsZToiCi0gICAgICAgICAgPDwgSGV4RHVtcChkZXN0LT5nZXREYXRhKCksIGRlc3QtPmdldFNpemUoKSkgPDwgZW5kbCk7Ci0KLSAgICAjaWYgUFJJTlRfU1RSSU5HX01FVFJJQ1MKLSAgICBmcHJpbnRmKHN0ZGVyciwgIioqKiogdG90YWwgcmVzb3VyY2UgdGFibGUgc2l6ZTogJWQgLyAlZCUlIHN0cmluZ3NcbiIsCi0gICAgICAgIGRlc3QtPmdldFNpemUoKSwgKHN0ckFtdCoxMDApL2Rlc3QtPmdldFNpemUoKSk7Ci0gICAgI2VuZGlmCi0gICAgCi0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi12b2lkIFJlc291cmNlVGFibGU6OndyaXRlUHVibGljRGVmaW5pdGlvbnMoY29uc3QgU3RyaW5nMTYmIHBhY2thZ2UsIEZJTEUqIGZwKQotewotICAgIGZwcmludGYoZnAsCi0gICAgIjwhLS0gVGhpcyBmaWxlIGNvbnRhaW5zIDxwdWJsaWM+IHJlc291cmNlIGRlZmluaXRpb25zIGZvciBhbGxcbiIKLSAgICAiICAgICByZXNvdXJjZXMgdGhhdCB3ZXJlIGdlbmVyYXRlZCBmcm9tIHRoZSBzb3VyY2UgZGF0YS4gLS0+XG4iCi0gICAgIlxuIgotICAgICI8cmVzb3VyY2VzPlxuIik7Ci0KLSAgICB3cml0ZVB1YmxpY0RlZmluaXRpb25zKHBhY2thZ2UsIGZwLCB0cnVlKTsKLSAgICB3cml0ZVB1YmxpY0RlZmluaXRpb25zKHBhY2thZ2UsIGZwLCBmYWxzZSk7Ci0KLSAgICBmcHJpbnRmKGZwLAotICAgICJcbiIKLSAgICAiPC9yZXNvdXJjZXM+XG4iKTsKLX0KLQotdm9pZCBSZXNvdXJjZVRhYmxlOjp3cml0ZVB1YmxpY0RlZmluaXRpb25zKGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLCBGSUxFKiBmcCwgYm9vbCBwdWIpCi17Ci0gICAgYm9vbCBkaWRIZWFkZXIgPSBmYWxzZTsKLQotICAgIHNwPFBhY2thZ2U+IHBrZyA9IG1QYWNrYWdlcy52YWx1ZUZvcihwYWNrYWdlKTsKLSAgICBpZiAocGtnICE9IE5VTEwpIHsKLSAgICAgICAgY29uc3Qgc2l6ZV90IE5UID0gcGtnLT5nZXRPcmRlcmVkVHlwZXMoKS5zaXplKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOVDsgaSsrKSB7Ci0gICAgICAgICAgICBzcDxUeXBlPiB0ID0gcGtnLT5nZXRPcmRlcmVkVHlwZXMoKS5pdGVtQXQoaSk7Ci0gICAgICAgICAgICBpZiAodCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGJvb2wgZGlkVHlwZSA9IGZhbHNlOwotCi0gICAgICAgICAgICBjb25zdCBzaXplX3QgTkMgPSB0LT5nZXRPcmRlcmVkQ29uZmlncygpLnNpemUoKTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGo9MDsgajxOQzsgaisrKSB7Ci0gICAgICAgICAgICAgICAgc3A8Q29uZmlnTGlzdD4gYyA9IHQtPmdldE9yZGVyZWRDb25maWdzKCkuaXRlbUF0KGopOwotICAgICAgICAgICAgICAgIGlmIChjID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKGMtPmdldFB1YmxpYygpICE9IHB1YikgewotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAoIWRpZFR5cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgZnByaW50ZihmcCwgIlxuIik7Ci0gICAgICAgICAgICAgICAgICAgIGRpZFR5cGUgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoIWRpZEhlYWRlcikgewotICAgICAgICAgICAgICAgICAgICBpZiAocHViKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKGZwLCIgIDwhLS0gUFVCTElDIFNFQ1RJT04uICBUaGVzZSByZXNvdXJjZXMgaGF2ZSBiZWVuIGRlY2xhcmVkIHB1YmxpYy5cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihmcCwiICAgICAgIENoYW5nZXMgdG8gdGhlc2UgZGVmaW5pdGlvbnMgd2lsbCBicmVhayBiaW5hcnkgY29tcGF0aWJpbGl0eS4gLS0+XG5cbiIpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihmcCwiICA8IS0tIFBSSVZBVEUgU0VDVElPTi4gIFRoZXNlIHJlc291cmNlcyBoYXZlIG5vdCBiZWVuIGRlY2xhcmVkIHB1YmxpYy5cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihmcCwiICAgICAgIFlvdSBjYW4gbWFrZSB0aGVtIHB1YmxpYyBteSBtb3ZpbmcgdGhlc2UgbGluZXMgaW50byBhIGZpbGUgaW4gcmVzL3ZhbHVlcy4gLS0+XG5cbiIpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGRpZEhlYWRlciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICghcHViKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpemVfdCBORSA9IGMtPmdldEVudHJpZXMoKS5zaXplKCk7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGs9MDsgazxORTsgaysrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTb3VyY2VQb3MmIHBvcyA9IGMtPmdldEVudHJpZXMoKS52YWx1ZUF0KGspLT5nZXRQb3MoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MuZmlsZSAhPSAiIikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoZnAsIiAgPCEtLSBEZWNsYXJlZCBhdCAlczolZCAtLT5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MuZmlsZS5zdHJpbmcoKSwgcG9zLmxpbmUpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGZwcmludGYoZnAsICIgIDxwdWJsaWMgdHlwZT1cIiVzXCIgbmFtZT1cIiVzXCIgaWQ9XCIweCUwOHhcIiAvPlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgodC0+Z2V0TmFtZSgpKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoYy0+Z2V0TmFtZSgpKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGdldFJlc0lkKHBrZywgdCwgYy0+Z2V0RW50cnlJbmRleCgpKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLVJlc291cmNlVGFibGU6Okl0ZW06Okl0ZW0oY29uc3QgU291cmNlUG9zJiBfc291cmNlUG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIF9pc0lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgX3ZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWN0b3I8U3RyaW5nUG9vbDo6ZW50cnlfc3R5bGVfc3Bhbj4qIF9zdHlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBfZm9ybWF0KQotICAgIDogc291cmNlUG9zKF9zb3VyY2VQb3MpCi0gICAgLCBpc0lkKF9pc0lkKQotICAgICwgdmFsdWUoX3ZhbHVlKQotICAgICwgZm9ybWF0KF9mb3JtYXQpCi0gICAgLCBiYWdLZXlJZCgwKQotICAgICwgZXZhbHVhdGluZyhmYWxzZSkKLXsKLSAgICBpZiAoX3N0eWxlKSB7Ci0gICAgICAgIHN0eWxlID0gKl9zdHlsZTsKLSAgICB9Ci19Ci0KLXN0YXR1c190IFJlc291cmNlVGFibGU6OkVudHJ5OjptYWtlSXRBQmFnKGNvbnN0IFNvdXJjZVBvcyYgc291cmNlUG9zKQotewotICAgIGlmIChtVHlwZSA9PSBUWVBFX0JBRykgewotICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0gICAgfQotICAgIGlmIChtVHlwZSA9PSBUWVBFX1VOS05PV04pIHsKLSAgICAgICAgbVR5cGUgPSBUWVBFX0JBRzsKLSAgICAgICAgcmV0dXJuIE5PX0VSUk9SOwotICAgIH0KLSAgICBzb3VyY2VQb3MuZXJyb3IoIlJlc291cmNlIGVudHJ5ICVzIGlzIGFscmVhZHkgZGVmaW5lZCBhcyBhIHNpbmdsZSBpdGVtLlxuIgotICAgICAgICAgICAgICAgICAgICAiJXM6JWQ6IE9yaWdpbmFsbHkgZGVmaW5lZCBoZXJlLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChtTmFtZSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgIG1JdGVtLnNvdXJjZVBvcy5maWxlLnN0cmluZygpLCBtSXRlbS5zb3VyY2VQb3MubGluZSk7Ci0gICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci19Ci0KLXN0YXR1c190IFJlc291cmNlVGFibGU6OkVudHJ5OjpzZXRJdGVtKGNvbnN0IFNvdXJjZVBvcyYgc291cmNlUG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVjdG9yPFN0cmluZ1Bvb2w6OmVudHJ5X3N0eWxlX3NwYW4+KiBzdHlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgZm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9vbCBvdmVyd3JpdGUpCi17Ci0gICAgSXRlbSBpdGVtKHNvdXJjZVBvcywgZmFsc2UsIHZhbHVlLCBzdHlsZSk7Ci0KLSAgICBpZiAobVR5cGUgPT0gVFlQRV9CQUcpIHsKLSAgICAgICAgY29uc3QgSXRlbSYgaXRlbShtQmFnLnZhbHVlQXQoMCkpOwotICAgICAgICBzb3VyY2VQb3MuZXJyb3IoIlJlc291cmNlIGVudHJ5ICVzIGlzIGFscmVhZHkgZGVmaW5lZCBhcyBhIGJhZy5cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICIlczolZDogT3JpZ2luYWxseSBkZWZpbmVkIGhlcmUuXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChtTmFtZSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnNvdXJjZVBvcy5maWxlLnN0cmluZygpLCBpdGVtLnNvdXJjZVBvcy5saW5lKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotICAgIGlmICggKG1UeXBlICE9IFRZUEVfVU5LTk9XTikgJiYgKG92ZXJ3cml0ZSA9PSBmYWxzZSkgKSB7Ci0gICAgICAgIHNvdXJjZVBvcy5lcnJvcigiUmVzb3VyY2UgZW50cnkgJXMgaXMgYWxyZWFkeSBkZWZpbmVkLlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgIiVzOiVkOiBPcmlnaW5hbGx5IGRlZmluZWQgaGVyZS5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KG1OYW1lKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIG1JdGVtLnNvdXJjZVBvcy5maWxlLnN0cmluZygpLCBtSXRlbS5zb3VyY2VQb3MubGluZSk7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLQotICAgIG1UeXBlID0gVFlQRV9JVEVNOwotICAgIG1JdGVtID0gaXRlbTsKLSAgICBtSXRlbUZvcm1hdCA9IGZvcm1hdDsKLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXR1c190IFJlc291cmNlVGFibGU6OkVudHJ5OjphZGRUb0JhZyhjb25zdCBTb3VyY2VQb3MmIHNvdXJjZVBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYga2V5LCBjb25zdCBTdHJpbmcxNiYgdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVjdG9yPFN0cmluZ1Bvb2w6OmVudHJ5X3N0eWxlX3NwYW4+KiBzdHlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHJlcGxhY2UsIGJvb2wgaXNJZCwgaW50MzJfdCBmb3JtYXQpCi17Ci0gICAgc3RhdHVzX3QgZXJyID0gbWFrZUl0QUJhZyhzb3VyY2VQb3MpOwotICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0KLSAgICBJdGVtIGl0ZW0oc291cmNlUG9zLCBpc0lkLCB2YWx1ZSwgc3R5bGUsIGZvcm1hdCk7Ci0gICAgCi0gICAgLy8gWFhYIE5PVEU6IHRoZXJlIGlzIGFuIGVycm9yIGlmIHlvdSB0cnkgdG8gaGF2ZSBhIGJhZyB3aXRoIHR3byBrZXlzLAotICAgIC8vIG9uZSBhbiBhdHRyIGFuZCBvbmUgYW4gaWQsIHdpdGggdGhlIHNhbWUgbmFtZS4gIE5vdCBzb21ldGhpbmcgd2UKLSAgICAvLyBjdXJyZW50bHkgZXZlciBoYXZlIHRvIHdvcnJ5IGFib3V0LgotICAgIHNzaXplX3Qgb3JpZ0tleSA9IG1CYWcuaW5kZXhPZktleShrZXkpOwotICAgIGlmIChvcmlnS2V5ID49IDApIHsKLSAgICAgICAgaWYgKCFyZXBsYWNlKSB7Ci0gICAgICAgICAgICBjb25zdCBJdGVtJiBpdGVtKG1CYWcudmFsdWVBdChvcmlnS2V5KSk7Ci0gICAgICAgICAgICBzb3VyY2VQb3MuZXJyb3IoIlJlc291cmNlIGVudHJ5ICVzIGFscmVhZHkgaGFzIGJhZyBpdGVtICVzLlxuIgotICAgICAgICAgICAgICAgICAgICAiJXM6JWQ6IE9yaWdpbmFsbHkgZGVmaW5lZCBoZXJlLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChtTmFtZSkuc3RyaW5nKCksIFN0cmluZzgoa2V5KS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgaXRlbS5zb3VyY2VQb3MuZmlsZS5zdHJpbmcoKSwgaXRlbS5zb3VyY2VQb3MubGluZSk7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotICAgICAgICAvL3ByaW50ZigiUmVwbGFjaW5nICVzIHdpdGggJXNcbiIsCi0gICAgICAgIC8vICAgICAgIFN0cmluZzgobUJhZy52YWx1ZUZvcihrZXkpLnZhbHVlKS5zdHJpbmcoKSwgU3RyaW5nOCh2YWx1ZSkuc3RyaW5nKCkpOwotICAgICAgICBtQmFnLnJlcGxhY2VWYWx1ZUZvcihrZXksIGl0ZW0pOwotICAgIH0KLQotICAgIG1CYWcuYWRkKGtleSwgaXRlbSk7Ci0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi1zdGF0dXNfdCBSZXNvdXJjZVRhYmxlOjpFbnRyeTo6ZW1wdHlCYWcoY29uc3QgU291cmNlUG9zJiBzb3VyY2VQb3MpCi17Ci0gICAgc3RhdHVzX3QgZXJyID0gbWFrZUl0QUJhZyhzb3VyY2VQb3MpOwotICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgcmV0dXJuIGVycjsKLSAgICB9Ci0KLSAgICBtQmFnLmNsZWFyKCk7Ci0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi1zdGF0dXNfdCBSZXNvdXJjZVRhYmxlOjpFbnRyeTo6Z2VuZXJhdGVBdHRyaWJ1dGVzKFJlc291cmNlVGFibGUqIHRhYmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgcGFja2FnZSkKLXsKLSAgICBjb25zdCBTdHJpbmcxNiBhdHRyMTYoImF0dHIiKTsKLSAgICBjb25zdCBTdHJpbmcxNiBpZDE2KCJpZCIpOwotICAgIGNvbnN0IHNpemVfdCBOID0gbUJhZy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICBjb25zdCBTdHJpbmcxNiYga2V5ID0gbUJhZy5rZXlBdChpKTsKLSAgICAgICAgY29uc3QgSXRlbSYgaXQgPSBtQmFnLnZhbHVlQXQoaSk7Ci0gICAgICAgIGlmIChpdC5pc0lkKSB7Ci0gICAgICAgICAgICBpZiAoIXRhYmxlLT5oYXNCYWdPckVudHJ5KGtleSwgJmlkMTYsICZwYWNrYWdlKSkgewotICAgICAgICAgICAgICAgIFN0cmluZzE2IHZhbHVlKCJmYWxzZSIpOwotICAgICAgICAgICAgICAgIHN0YXR1c190IGVyciA9IHRhYmxlLT5hZGRFbnRyeShTb3VyY2VQb3MoU3RyaW5nOCgiPGdlbmVyYXRlZD4iKSwgMCksIHBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkMTYsIGtleSwgdmFsdWUpOwotICAgICAgICAgICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoIXRhYmxlLT5oYXNCYWdPckVudHJ5KGtleSwgJmF0dHIxNiwgJnBhY2thZ2UpKSB7Ci0KLSNpZiAxCi0vLyAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBCYWcgYXR0cmlidXRlICclcycgaGFzIG5vdCBiZWVuIGRlZmluZWQuXG4iLAotLy8gICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGtleSkuc3RyaW5nKCkpOwotLy8gICAgICAgICAgICAgY29uc3QgSXRlbSYgaXRlbShtQmFnLnZhbHVlQXQoaSkpOwotLy8gICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJSZWZlcmVuY2VkIGZyb20gZmlsZSAlcyBsaW5lICVkXG4iLAotLy8gICAgICAgICAgICAgICAgICAgICBpdGVtLnNvdXJjZVBvcy5maWxlLnN0cmluZygpLCBpdGVtLnNvdXJjZVBvcy5saW5lKTsKLS8vICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotI2Vsc2UKLSAgICAgICAgICAgIGNoYXIgbnVtYmVyU3RyWzE2XTsKLSAgICAgICAgICAgIHNwcmludGYobnVtYmVyU3RyLCAiJWQiLCBSZXNUYWJsZV9tYXA6OlRZUEVfQU5ZKTsKLSAgICAgICAgICAgIHN0YXR1c190IGVyciA9IHRhYmxlLT5hZGRCYWcoU291cmNlUG9zKCI8Z2VuZXJhdGVkPiIsIDApLCBwYWNrYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyMTYsIGtleSwgU3RyaW5nMTYoIiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcxNigiXnR5cGUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nMTYobnVtYmVyU3RyKSwgTlVMTCwgTlVMTCk7Ci0gICAgICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgICAgIH0KLSNlbmRpZgotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3RhdHVzX3QgUmVzb3VyY2VUYWJsZTo6RW50cnk6OmFzc2lnblJlc291cmNlSWRzKFJlc291cmNlVGFibGUqIHRhYmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlKQotewotICAgIGJvb2wgaGFzRXJyb3JzID0gZmFsc2U7Ci0gICAgCi0gICAgaWYgKG1UeXBlID09IFRZUEVfQkFHKSB7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGVycm9yTXNnOwotICAgICAgICBjb25zdCBTdHJpbmcxNiBzdHlsZTE2KCJzdHlsZSIpOwotICAgICAgICBjb25zdCBTdHJpbmcxNiBhdHRyMTYoImF0dHIiKTsKLSAgICAgICAgY29uc3QgU3RyaW5nMTYgaWQxNigiaWQiKTsKLSAgICAgICAgbVBhcmVudElkID0gMDsKLSAgICAgICAgaWYgKG1QYXJlbnQuc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgbVBhcmVudElkID0gdGFibGUtPmdldFJlc0lkKG1QYXJlbnQsICZzdHlsZTE2LCBOVUxMLCAmZXJyb3JNc2cpOwotICAgICAgICAgICAgaWYgKG1QYXJlbnRJZCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgbVBvcy5lcnJvcigiRXJyb3IgcmV0cmlldmluZyBwYXJlbnQgZm9yIGl0ZW06ICVzICclcycuXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNc2csIFN0cmluZzgobVBhcmVudCkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3Qgc2l6ZV90IE4gPSBtQmFnLnNpemUoKTsKLSAgICAgICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIGtleSA9IG1CYWcua2V5QXQoaSk7Ci0gICAgICAgICAgICBJdGVtJiBpdCA9IG1CYWcuZWRpdFZhbHVlQXQoaSk7Ci0gICAgICAgICAgICBpdC5iYWdLZXlJZCA9IHRhYmxlLT5nZXRSZXNJZChrZXksCi0gICAgICAgICAgICAgICAgICAgIGl0LmlzSWQgPyAmaWQxNiA6ICZhdHRyMTYsIE5VTEwsICZlcnJvck1zZyk7Ci0gICAgICAgICAgICAvL3ByaW50ZigiQmFnIGtleSBvZiAlczogIyUwOHhcbiIsIFN0cmluZzgoa2V5KS5zdHJpbmcoKSwgaXQuYmFnS2V5SWQpOwotICAgICAgICAgICAgaWYgKGl0LmJhZ0tleUlkID09IDApIHsKLSAgICAgICAgICAgICAgICBpdC5zb3VyY2VQb3MuZXJyb3IoIkVycm9yOiAlczogJXMgJyVzJy5cbiIsIGVycm9yTXNnLAotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChpdC5pc0lkID8gaWQxNiA6IGF0dHIxNikuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGtleSkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIGhhc0Vycm9ycyA/IFVOS05PV05fRVJST1IgOiBOT19FUlJPUjsKLX0KLQotc3RhdHVzX3QgUmVzb3VyY2VUYWJsZTo6RW50cnk6OnByZXBhcmVGbGF0dGVuKFN0cmluZ1Bvb2wqIHN0cmluZ3MsIFJlc291cmNlVGFibGUqIHRhYmxlLAotICAgICAgICBjb25zdCBTdHJpbmc4KiBjb25maWdUeXBlTmFtZSwgY29uc3QgQ29uZmlnRGVzY3JpcHRpb24qIGNvbmZpZykKLXsKLSAgICBpZiAobVR5cGUgPT0gVFlQRV9JVEVNKSB7Ci0gICAgICAgIEl0ZW0mIGl0ID0gbUl0ZW07Ci0gICAgICAgIEFjY2Vzc29yQ29va2llIGFjKGl0LnNvdXJjZVBvcywgU3RyaW5nOChtTmFtZSksIFN0cmluZzgoaXQudmFsdWUpKTsKLSAgICAgICAgaWYgKCF0YWJsZS0+c3RyaW5nVG9WYWx1ZSgmaXQucGFyc2VkVmFsdWUsIHN0cmluZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXQudmFsdWUsIGZhbHNlLCB0cnVlLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpdC5zdHlsZSwgTlVMTCwgJmFjLCBtSXRlbUZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdUeXBlTmFtZSwgY29uZmlnKSkgewotICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG1UeXBlID09IFRZUEVfQkFHKSB7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBOID0gbUJhZy5zaXplKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBrZXkgPSBtQmFnLmtleUF0KGkpOwotICAgICAgICAgICAgSXRlbSYgaXQgPSBtQmFnLmVkaXRWYWx1ZUF0KGkpOwotICAgICAgICAgICAgQWNjZXNzb3JDb29raWUgYWMoaXQuc291cmNlUG9zLCBTdHJpbmc4KGtleSksIFN0cmluZzgoaXQudmFsdWUpKTsKLSAgICAgICAgICAgIGlmICghdGFibGUtPnN0cmluZ1RvVmFsdWUoJml0LnBhcnNlZFZhbHVlLCBzdHJpbmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC52YWx1ZSwgZmFsc2UsIHRydWUsIGl0LmJhZ0tleUlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaXQuc3R5bGUsIE5VTEwsICZhYywgaXQuZm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdUeXBlTmFtZSwgY29uZmlnKSkgewotICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbVBvcy5lcnJvcigiRXJyb3I6IGVudHJ5ICVzIGlzIG5vdCBhIHNpbmdsZSBpdGVtIG9yIGEgYmFnLlxuIiwKLSAgICAgICAgICAgICAgICAgICBTdHJpbmc4KG1OYW1lKS5zdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXR1c190IFJlc291cmNlVGFibGU6OkVudHJ5OjpyZW1hcFN0cmluZ1ZhbHVlKFN0cmluZ1Bvb2wqIHN0cmluZ3MpCi17Ci0gICAgaWYgKG1UeXBlID09IFRZUEVfSVRFTSkgewotICAgICAgICBJdGVtJiBpdCA9IG1JdGVtOwotICAgICAgICBpZiAoaXQucGFyc2VkVmFsdWUuZGF0YVR5cGUgPT0gUmVzX3ZhbHVlOjpUWVBFX1NUUklORykgewotICAgICAgICAgICAgaXQucGFyc2VkVmFsdWUuZGF0YSA9IHN0cmluZ3MtPm1hcE9yaWdpbmFsUG9zVG9OZXdQb3MoaXQucGFyc2VkVmFsdWUuZGF0YSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG1UeXBlID09IFRZUEVfQkFHKSB7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBOID0gbUJhZy5zaXplKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgICAgIEl0ZW0mIGl0ID0gbUJhZy5lZGl0VmFsdWVBdChpKTsKLSAgICAgICAgICAgIGlmIChpdC5wYXJzZWRWYWx1ZS5kYXRhVHlwZSA9PSBSZXNfdmFsdWU6OlRZUEVfU1RSSU5HKSB7Ci0gICAgICAgICAgICAgICAgaXQucGFyc2VkVmFsdWUuZGF0YSA9IHN0cmluZ3MtPm1hcE9yaWdpbmFsUG9zVG9OZXdQb3MoaXQucGFyc2VkVmFsdWUuZGF0YSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBtUG9zLmVycm9yKCJFcnJvcjogZW50cnkgJXMgaXMgbm90IGEgc2luZ2xlIGl0ZW0gb3IgYSBiYWcuXG4iLAotICAgICAgICAgICAgICAgICAgIFN0cmluZzgobU5hbWUpLnN0cmluZygpKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3NpemVfdCBSZXNvdXJjZVRhYmxlOjpFbnRyeTo6ZmxhdHRlbihCdW5kbGUqIGJ1bmRsZSwgY29uc3Qgc3A8QWFwdEZpbGU+JiBkYXRhLCBib29sIGlzUHVibGljKQotewotICAgIHNpemVfdCBhbXQgPSAwOwotICAgIFJlc1RhYmxlX2VudHJ5IGhlYWRlcjsKLSAgICBtZW1zZXQoJmhlYWRlciwgMCwgc2l6ZW9mKGhlYWRlcikpOwotICAgIGhlYWRlci5zaXplID0gaHRvZHMoc2l6ZW9mKGhlYWRlcikpOwotICAgIGNvbnN0IHR5cGUgdHkgPSB0aGlzICE9IE5VTEwgPyBtVHlwZSA6IFRZUEVfSVRFTTsKLSAgICBpZiAodGhpcyAhPSBOVUxMKSB7Ci0gICAgICAgIGlmICh0eSA9PSBUWVBFX0JBRykgewotICAgICAgICAgICAgaGVhZGVyLmZsYWdzIHw9IGh0b2RzKGhlYWRlci5GTEFHX0NPTVBMRVgpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChpc1B1YmxpYykgewotICAgICAgICAgICAgaGVhZGVyLmZsYWdzIHw9IGh0b2RzKGhlYWRlci5GTEFHX1BVQkxJQyk7Ci0gICAgICAgIH0KLSAgICAgICAgaGVhZGVyLmtleS5pbmRleCA9IGh0b2RsKG1OYW1lSW5kZXgpOwotICAgIH0KLSAgICBpZiAodHkgIT0gVFlQRV9CQUcpIHsKLSAgICAgICAgc3RhdHVzX3QgZXJyID0gZGF0YS0+d3JpdGVEYXRhKCZoZWFkZXIsIHNpemVvZihoZWFkZXIpKTsKLSAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogb3V0IG9mIG1lbW9yeSBjcmVhdGluZyBSZXNUYWJsZV9lbnRyeVxuIik7Ci0gICAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3QgSXRlbSYgaXQgPSBtSXRlbTsKLSAgICAgICAgUmVzX3ZhbHVlIHBhcjsKLSAgICAgICAgbWVtc2V0KCZwYXIsIDAsIHNpemVvZihwYXIpKTsKLSAgICAgICAgcGFyLnNpemUgPSBodG9kcyhpdC5wYXJzZWRWYWx1ZS5zaXplKTsKLSAgICAgICAgcGFyLmRhdGFUeXBlID0gaXQucGFyc2VkVmFsdWUuZGF0YVR5cGU7Ci0gICAgICAgIHBhci5yZXMwID0gaXQucGFyc2VkVmFsdWUucmVzMDsKLSAgICAgICAgcGFyLmRhdGEgPSBodG9kbChpdC5wYXJzZWRWYWx1ZS5kYXRhKTsKLSAgICAgICAgI2lmIDAKLSAgICAgICAgcHJpbnRmKCJXcml0aW5nIGl0ZW0gKCVzKTogdHlwZT0lZCwgZGF0YT0weCV4LCByZXMwPTB4JXhcbiIsCi0gICAgICAgICAgICAgICBTdHJpbmc4KG1OYW1lKS5zdHJpbmcoKSwgaXQucGFyc2VkVmFsdWUuZGF0YVR5cGUsCi0gICAgICAgICAgICAgICBpdC5wYXJzZWRWYWx1ZS5kYXRhLCBwYXIucmVzMCk7Ci0gICAgICAgICNlbmRpZgotICAgICAgICBlcnIgPSBkYXRhLT53cml0ZURhdGEoJnBhciwgaXQucGFyc2VkVmFsdWUuc2l6ZSk7Ci0gICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IG91dCBvZiBtZW1vcnkgY3JlYXRpbmcgUmVzX3ZhbHVlXG4iKTsKLSAgICAgICAgICAgIHJldHVybiBlcnI7Ci0gICAgICAgIH0KLSAgICAgICAgYW10ICs9IGl0LnBhcnNlZFZhbHVlLnNpemU7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc2l6ZV90IE4gPSBtQmFnLnNpemUoKTsKLSAgICAgICAgc2l6ZV90IGk7Ci0gICAgICAgIC8vIENyZWF0ZSBjb3JyZWN0IG9yZGVyaW5nIG9mIGl0ZW1zLgotICAgICAgICBLZXllZFZlY3Rvcjx1aW50MzJfdCwgY29uc3QgSXRlbSo+IGl0ZW1zOwotICAgICAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgICAgIGNvbnN0IEl0ZW0mIGl0ID0gbUJhZy52YWx1ZUF0KGkpOwotICAgICAgICAgICAgaXRlbXMuYWRkKGl0LmJhZ0tleUlkLCAmaXQpOwotICAgICAgICB9Ci0gICAgICAgIE4gPSBpdGVtcy5zaXplKCk7Ci0gICAgICAgIAotICAgICAgICBSZXNUYWJsZV9tYXBfZW50cnkgbWFwSGVhZGVyOwotICAgICAgICBtZW1jcHkoJm1hcEhlYWRlciwgJmhlYWRlciwgc2l6ZW9mKGhlYWRlcikpOwotICAgICAgICBtYXBIZWFkZXIuc2l6ZSA9IGh0b2RzKHNpemVvZihtYXBIZWFkZXIpKTsKLSAgICAgICAgbWFwSGVhZGVyLnBhcmVudC5pZGVudCA9IGh0b2RsKG1QYXJlbnRJZCk7Ci0gICAgICAgIG1hcEhlYWRlci5jb3VudCA9IGh0b2RsKE4pOwotICAgICAgICBzdGF0dXNfdCBlcnIgPSBkYXRhLT53cml0ZURhdGEoJm1hcEhlYWRlciwgc2l6ZW9mKG1hcEhlYWRlcikpOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBvdXQgb2YgbWVtb3J5IGNyZWF0aW5nIFJlc1RhYmxlX2VudHJ5XG4iKTsKLSAgICAgICAgICAgIHJldHVybiBlcnI7Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgICAgIGNvbnN0IEl0ZW0mIGl0ID0gKml0ZW1zLnZhbHVlQXQoaSk7Ci0gICAgICAgICAgICBSZXNUYWJsZV9tYXAgbWFwOwotICAgICAgICAgICAgbWFwLm5hbWUuaWRlbnQgPSBodG9kbChpdC5iYWdLZXlJZCk7Ci0gICAgICAgICAgICBtYXAudmFsdWUuc2l6ZSA9IGh0b2RzKGl0LnBhcnNlZFZhbHVlLnNpemUpOwotICAgICAgICAgICAgbWFwLnZhbHVlLmRhdGFUeXBlID0gaXQucGFyc2VkVmFsdWUuZGF0YVR5cGU7Ci0gICAgICAgICAgICBtYXAudmFsdWUucmVzMCA9IGl0LnBhcnNlZFZhbHVlLnJlczA7Ci0gICAgICAgICAgICBtYXAudmFsdWUuZGF0YSA9IGh0b2RsKGl0LnBhcnNlZFZhbHVlLmRhdGEpOwotICAgICAgICAgICAgZXJyID0gZGF0YS0+d3JpdGVEYXRhKCZtYXAsIHNpemVvZihtYXApKTsKLSAgICAgICAgICAgIGlmIChlcnIgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBvdXQgb2YgbWVtb3J5IGNyZWF0aW5nIFJlc192YWx1ZVxuIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFtdCArPSBzaXplb2YobWFwKTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gYW10OwotfQotCi12b2lkIFJlc291cmNlVGFibGU6OkNvbmZpZ0xpc3Q6OmFwcGVuZENvbW1lbnQoY29uc3QgU3RyaW5nMTYmIGNvbW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBvbmx5SWZFbXB0eSkKLXsKLSAgICBpZiAoY29tbWVudC5zaXplKCkgPD0gMCkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChvbmx5SWZFbXB0eSAmJiBtQ29tbWVudC5zaXplKCkgPiAwKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKG1Db21tZW50LnNpemUoKSA+IDApIHsKLSAgICAgICAgbUNvbW1lbnQuYXBwZW5kKFN0cmluZzE2KCJcbiIpKTsKLSAgICB9Ci0gICAgbUNvbW1lbnQuYXBwZW5kKGNvbW1lbnQpOwotfQotCi12b2lkIFJlc291cmNlVGFibGU6OkNvbmZpZ0xpc3Q6OmFwcGVuZFR5cGVDb21tZW50KGNvbnN0IFN0cmluZzE2JiBjb21tZW50KQotewotICAgIGlmIChjb21tZW50LnNpemUoKSA8PSAwKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKG1UeXBlQ29tbWVudC5zaXplKCkgPiAwKSB7Ci0gICAgICAgIG1UeXBlQ29tbWVudC5hcHBlbmQoU3RyaW5nMTYoIlxuIikpOwotICAgIH0KLSAgICBtVHlwZUNvbW1lbnQuYXBwZW5kKGNvbW1lbnQpOwotfQotCi1zdGF0dXNfdCBSZXNvdXJjZVRhYmxlOjpUeXBlOjphZGRQdWJsaWMoY29uc3QgU291cmNlUG9zJiBzb3VyY2VQb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgaWRlbnQpCi17Ci0gICAgI2lmIDAKLSAgICBpbnQzMl90IGVudHJ5SWR4ID0gUmVzX0dFVEVOVFJZKGlkZW50KTsKLSAgICBpZiAoZW50cnlJZHggPCAwKSB7Ci0gICAgICAgIHNvdXJjZVBvcy5lcnJvcigiUHVibGljIHJlc291cmNlICVzLyVzIGhhcyBhbiBpbnZhbGlkIDAgaWRlbnRpZmllciAoMHglMDh4KS5cbiIsCi0gICAgICAgICAgICAgICAgU3RyaW5nOChtTmFtZSkuc3RyaW5nKCksIFN0cmluZzgobmFtZSkuc3RyaW5nKCksIGlkZW50KTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotICAgICNlbmRpZgotCi0gICAgaW50MzJfdCB0eXBlSWR4ID0gUmVzX0dFVFRZUEUoaWRlbnQpOwotICAgIGlmICh0eXBlSWR4ID49IDApIHsKLSAgICAgICAgdHlwZUlkeCsrOwotICAgICAgICBpZiAobVB1YmxpY0luZGV4ID4gMCAmJiBtUHVibGljSW5kZXggIT0gdHlwZUlkeCkgewotICAgICAgICAgICAgc291cmNlUG9zLmVycm9yKCJQdWJsaWMgcmVzb3VyY2UgJXMvJXMgaGFzIGNvbmZsaWN0aW5nIHR5cGUgY29kZXMgZm9yIGl0cyIKLSAgICAgICAgICAgICAgICAgICAgIiBwdWJsaWMgaWRlbnRpZmllcnMgKDB4JXggdnMgMHgleCkuXG4iLAotICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KG1OYW1lKS5zdHJpbmcoKSwgU3RyaW5nOChuYW1lKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgbVB1YmxpY0luZGV4LCB0eXBlSWR4KTsKLSAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICB9Ci0gICAgICAgIG1QdWJsaWNJbmRleCA9IHR5cGVJZHg7Ci0gICAgfQotCi0gICAgaWYgKG1GaXJzdFB1YmxpY1NvdXJjZVBvcyA9PSBOVUxMKSB7Ci0gICAgICAgIG1GaXJzdFB1YmxpY1NvdXJjZVBvcyA9IG5ldyBTb3VyY2VQb3Moc291cmNlUG9zKTsKLSAgICB9Ci0KLSAgICBpZiAobVB1YmxpYy5pbmRleE9mS2V5KG5hbWUpIDwgMCkgewotICAgICAgICBtUHVibGljLmFkZChuYW1lLCBQdWJsaWMoc291cmNlUG9zLCBTdHJpbmcxNigpLCBpZGVudCkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIFB1YmxpYyYgcCA9IG1QdWJsaWMuZWRpdFZhbHVlRm9yKG5hbWUpOwotICAgICAgICBpZiAocC5pZGVudCAhPSBpZGVudCkgewotICAgICAgICAgICAgc291cmNlUG9zLmVycm9yKCJQdWJsaWMgcmVzb3VyY2UgJXMvJXMgaGFzIGNvbmZsaWN0aW5nIHB1YmxpYyBpZGVudGlmaWVycyIKLSAgICAgICAgICAgICAgICAgICAgIiAoMHglMDh4IHZzIDB4JTA4eCkuXG4iCi0gICAgICAgICAgICAgICAgICAgICIlczolZDogT3JpZ2luYWxseSBkZWZpbmVkIGhlcmUuXG4iLAotICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KG1OYW1lKS5zdHJpbmcoKSwgU3RyaW5nOChuYW1lKS5zdHJpbmcoKSwgcC5pZGVudCwgaWRlbnQsCi0gICAgICAgICAgICAgICAgICAgIHAuc291cmNlUG9zLmZpbGUuc3RyaW5nKCksIHAuc291cmNlUG9zLmxpbmUpOwotICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXZvaWQgUmVzb3VyY2VUYWJsZTo6VHlwZTo6Y2FuQWRkRW50cnkoY29uc3QgU3RyaW5nMTYmIG5hbWUpCi17Ci0gICAgbUNhbkFkZEVudHJpZXMuYWRkKG5hbWUpOwotfQotCi1zcDxSZXNvdXJjZVRhYmxlOjpFbnRyeT4gUmVzb3VyY2VUYWJsZTo6VHlwZTo6Z2V0RW50cnkoY29uc3QgU3RyaW5nMTYmIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNvdXJjZVBvcyYgc291cmNlUG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyogY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZG9TZXRJbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIG92ZXJsYXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhdXRvQWRkT3ZlcmxheSkKLXsKLSAgICBpbnQgcG9zID0gLTE7Ci0gICAgc3A8Q29uZmlnTGlzdD4gYyA9IG1Db25maWdzLnZhbHVlRm9yKGVudHJ5KTsKLSAgICBpZiAoYyA9PSBOVUxMKSB7Ci0gICAgICAgIGlmIChvdmVybGF5ICYmICFhdXRvQWRkT3ZlcmxheSAmJiBtQ2FuQWRkRW50cmllcy5pbmRleE9mKGVudHJ5KSA8IDApIHsKLSAgICAgICAgICAgIHNvdXJjZVBvcy5lcnJvcigiUmVzb3VyY2UgYXQgJXMgYXBwZWFycyBpbiBvdmVybGF5IGJ1dCBub3QiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpbiB0aGUgYmFzZSBwYWNrYWdlOyB1c2UgPGFkZC1yZXNvdXJjZT4gdG8gYWRkLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGVudHJ5KS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBjID0gbmV3IENvbmZpZ0xpc3QoZW50cnksIHNvdXJjZVBvcyk7Ci0gICAgICAgIG1Db25maWdzLmFkZChlbnRyeSwgYyk7Ci0gICAgICAgIHBvcyA9IChpbnQpbU9yZGVyZWRDb25maWdzLnNpemUoKTsKLSAgICAgICAgbU9yZGVyZWRDb25maWdzLmFkZChjKTsKLSAgICAgICAgaWYgKGRvU2V0SW5kZXgpIHsKLSAgICAgICAgICAgIGMtPnNldEVudHJ5SW5kZXgocG9zKTsKLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICBDb25maWdEZXNjcmlwdGlvbiBjZGVzYzsKLSAgICBpZiAoY29uZmlnKSBjZGVzYyA9ICpjb25maWc7Ci0gICAgCi0gICAgc3A8RW50cnk+IGUgPSBjLT5nZXRFbnRyaWVzKCkudmFsdWVGb3IoY2Rlc2MpOwotICAgIGlmIChlID09IE5VTEwpIHsKLSAgICAgICAgaWYgKGNvbmZpZyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBOT0lTWShwcmludGYoIk5ldyBlbnRyeSBhdCAlczolZDogaW1zaTolZC8lZCBsYW5nOiVjJWMgY250OiVjJWMgIgotICAgICAgICAgICAgICAgICAgICAib3JpZW46JWQgdG91Y2g6JWQgZGVuc2l0eTolZCBrZXk6JWQgaW5wOiVkIG5hdjolZCBzejolZHglZCAiCi0gICAgICAgICAgICAgICAgICAgICJzdyVkZHAgdyVkZHAgaCVkZHAgZGlyOiVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVBvcy5maWxlLnN0cmluZygpLCBzb3VyY2VQb3MubGluZSwKLSAgICAgICAgICAgICAgICAgICAgICBjb25maWctPm1jYywgY29uZmlnLT5tbmMsCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLT5sYW5ndWFnZVswXSA/IGNvbmZpZy0+bGFuZ3VhZ2VbMF0gOiAnLScsCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLT5sYW5ndWFnZVsxXSA/IGNvbmZpZy0+bGFuZ3VhZ2VbMV0gOiAnLScsCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLT5jb3VudHJ5WzBdID8gY29uZmlnLT5jb3VudHJ5WzBdIDogJy0nLAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+Y291bnRyeVsxXSA/IGNvbmZpZy0+Y291bnRyeVsxXSA6ICctJywKLSAgICAgICAgICAgICAgICAgICAgICBjb25maWctPm9yaWVudGF0aW9uLAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+dG91Y2hzY3JlZW4sCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLT5kZW5zaXR5LAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+a2V5Ym9hcmQsCi0gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLT5pbnB1dEZsYWdzLAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+bmF2aWdhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICBjb25maWctPnNjcmVlbldpZHRoLAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+c2NyZWVuSGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+c21hbGxlc3RTY3JlZW5XaWR0aERwLAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+c2NyZWVuV2lkdGhEcCwKLSAgICAgICAgICAgICAgICAgICAgICBjb25maWctPnNjcmVlbkhlaWdodERwLAotICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+bGF5b3V0RGlyZWN0aW9uKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBOT0lTWShwcmludGYoIk5ldyBlbnRyeSBhdCAlczolZDogTlVMTCBjb25maWdcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgc291cmNlUG9zLmZpbGUuc3RyaW5nKCksIHNvdXJjZVBvcy5saW5lKSk7Ci0gICAgICAgIH0KLSAgICAgICAgZSA9IG5ldyBFbnRyeShlbnRyeSwgc291cmNlUG9zKTsKLSAgICAgICAgYy0+YWRkRW50cnkoY2Rlc2MsIGUpOwotICAgICAgICAvKgotICAgICAgICBpZiAoZG9TZXRJbmRleCkgewotICAgICAgICAgICAgaWYgKHBvcyA8IDApIHsKLSAgICAgICAgICAgICAgICBmb3IgKHBvcz0wOyBwb3M8KGludCltT3JkZXJlZENvbmZpZ3Muc2l6ZSgpOyBwb3MrKykgewotICAgICAgICAgICAgICAgICAgICBpZiAobU9yZGVyZWRDb25maWdzW3Bvc10gPT0gYykgewotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHBvcyA+PSAoaW50KW1PcmRlcmVkQ29uZmlncy5zaXplKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgc291cmNlUG9zLmVycm9yKCJJbnRlcm5hbCBlcnJvcjogY29uZmlnIG5vdCBmb3VuZCBpbiBtT3JkZXJlZENvbmZpZ3Mgd2hlbiBhZGRpbmcgZW50cnkiKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgZS0+c2V0RW50cnlJbmRleChwb3MpOwotICAgICAgICB9Ci0gICAgICAgICovCi0gICAgfQotICAgIAotICAgIG1VbmlxdWVDb25maWdzLmFkZChjZGVzYyk7Ci0gICAgCi0gICAgcmV0dXJuIGU7Ci19Ci0KLXN0YXR1c190IFJlc291cmNlVGFibGU6OlR5cGU6OmFwcGx5UHVibGljRW50cnlPcmRlcigpCi17Ci0gICAgc2l6ZV90IE4gPSBtT3JkZXJlZENvbmZpZ3Muc2l6ZSgpOwotICAgIFZlY3RvcjxzcDxDb25maWdMaXN0PiA+IG9yaWdPcmRlcihtT3JkZXJlZENvbmZpZ3MpOwotICAgIGJvb2wgaGFzRXJyb3IgPSBmYWxzZTsKLQotICAgIHNpemVfdCBpOwotICAgIGZvciAoaT0wOyBpPE47IGkrKykgewotICAgICAgICBtT3JkZXJlZENvbmZpZ3MucmVwbGFjZUF0KE5VTEwsIGkpOwotICAgIH0KLQotICAgIGNvbnN0IHNpemVfdCBOUCA9IG1QdWJsaWMuc2l6ZSgpOwotICAgIC8vcHJpbnRmKCJPcmRlcmluZyAlZCBjb25maWdzIGZyb20gJWQgcHVibGljIGRlZnNcbiIsIE4sIE5QKTsKLSAgICBzaXplX3QgajsKLSAgICBmb3IgKGo9MDsgajxOUDsgaisrKSB7Ci0gICAgICAgIGNvbnN0IFN0cmluZzE2JiBuYW1lID0gbVB1YmxpYy5rZXlBdChqKTsKLSAgICAgICAgY29uc3QgUHVibGljJiBwID0gbVB1YmxpYy52YWx1ZUF0KGopOwotICAgICAgICBpbnQzMl90IGlkeCA9IFJlc19HRVRFTlRSWShwLmlkZW50KTsKLSAgICAgICAgLy9wcmludGYoIkxvb2tpbmcgZm9yIGVudHJ5IFwiJXNcIi9cIiVzXCIgKDB4JTA4eCkgaW4gJWQuLi5cbiIsCi0gICAgICAgIC8vICAgICAgIFN0cmluZzgobU5hbWUpLnN0cmluZygpLCBTdHJpbmc4KG5hbWUpLnN0cmluZygpLCBwLmlkZW50LCBOKTsKLSAgICAgICAgYm9vbCBmb3VuZCA9IGZhbHNlOwotICAgICAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgICAgIHNwPENvbmZpZ0xpc3Q+IGUgPSBvcmlnT3JkZXIuaXRlbUF0KGkpOwotICAgICAgICAgICAgLy9wcmludGYoIiMlZDogXCIlc1wiXG4iLCBpLCBTdHJpbmc4KGUtPmdldE5hbWUoKSkuc3RyaW5nKCkpOwotICAgICAgICAgICAgaWYgKGUtPmdldE5hbWUoKSA9PSBuYW1lKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlkeCA+PSAoaW50MzJfdCltT3JkZXJlZENvbmZpZ3Muc2l6ZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHAuc291cmNlUG9zLmVycm9yKCJQdWJsaWMgZW50cnkgaWRlbnRpZmllciAweCV4IGVudHJ5IGluZGV4ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXMgbGFyZ2VyIHRoYW4gYXZhaWxhYmxlIHN5bWJvbHMgKGluZGV4ICVkLCB0b3RhbCBzeW1ib2xzICVkKS5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5pZGVudCwgaWR4LCBtT3JkZXJlZENvbmZpZ3Muc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3IgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobU9yZGVyZWRDb25maWdzLml0ZW1BdChpZHgpID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgZS0+c2V0UHVibGljKHRydWUpOwotICAgICAgICAgICAgICAgICAgICBlLT5zZXRQdWJsaWNTb3VyY2VQb3MocC5zb3VyY2VQb3MpOwotICAgICAgICAgICAgICAgICAgICBtT3JkZXJlZENvbmZpZ3MucmVwbGFjZUF0KGUsIGlkeCk7Ci0gICAgICAgICAgICAgICAgICAgIG9yaWdPcmRlci5yZW1vdmVBdChpKTsKLSAgICAgICAgICAgICAgICAgICAgTi0tOwotICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHNwPENvbmZpZ0xpc3Q+IG9lID0gbU9yZGVyZWRDb25maWdzLml0ZW1BdChpZHgpOwotCi0gICAgICAgICAgICAgICAgICAgIHAuc291cmNlUG9zLmVycm9yKCJNdWx0aXBsZSBlbnRyeSBuYW1lcyBkZWNsYXJlZCBmb3IgcHVibGljIGVudHJ5IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgaWRlbnRpZmllciAweCV4IGluIHR5cGUgJXMgKCVzIHZzICVzKS5cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXM6JWQ6IE9yaWdpbmFsbHkgZGVmaW5lZCBoZXJlLiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWR4KzEsIFN0cmluZzgobU5hbWUpLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgob2UtPmdldE5hbWUoKSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChuYW1lKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZS0+Z2V0UHVibGljU291cmNlUG9zKCkuZmlsZS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZS0+Z2V0UHVibGljU291cmNlUG9zKCkubGluZSk7Ci0gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIWZvdW5kKSB7Ci0gICAgICAgICAgICBwLnNvdXJjZVBvcy5lcnJvcigiUHVibGljIHN5bWJvbCAlcy8lcyBkZWNsYXJlZCBoZXJlIGlzIG5vdCBkZWZpbmVkLiIsCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzgobU5hbWUpLnN0cmluZygpLCBTdHJpbmc4KG5hbWUpLnN0cmluZygpKTsKLSAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vcHJpbnRmKCJDb3B5aW5nIGJhY2sgaW4gJWQgbm9uLXB1YmxpYyBjb25maWdzLCBoYXZlICVkXG4iLCBOLCBvcmlnT3JkZXIuc2l6ZSgpKTsKLSAgICAKLSAgICBpZiAoTiAhPSBvcmlnT3JkZXIuc2l6ZSgpKSB7Ci0gICAgICAgIHByaW50ZigiSW50ZXJuYWwgZXJyb3I6IHJlbWFpbmluZyBwcml2YXRlIHN5bWJvbCBjb3VudCBtaXNtYXRjaFxuIik7Ci0gICAgICAgIE4gPSBvcmlnT3JkZXIuc2l6ZSgpOwotICAgIH0KLSAgICAKLSAgICBqID0gMDsKLSAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgc3A8Q29uZmlnTGlzdD4gZSA9IG9yaWdPcmRlci5pdGVtQXQoaSk7Ci0gICAgICAgIC8vIFRoZXJlIHdpbGwgYWx3YXlzIGJlIGVub3VnaCByb29tIGZvciB0aGUgcmVtYWluaW5nIGVudHJpZXMuCi0gICAgICAgIHdoaWxlIChtT3JkZXJlZENvbmZpZ3MuaXRlbUF0KGopICE9IE5VTEwpIHsKLSAgICAgICAgICAgIGorKzsKLSAgICAgICAgfQotICAgICAgICBtT3JkZXJlZENvbmZpZ3MucmVwbGFjZUF0KGUsIGopOwotICAgICAgICBqKys7Ci0gICAgfQotCi0gICAgcmV0dXJuIGhhc0Vycm9yID8gVU5LTk9XTl9FUlJPUiA6IE5PX0VSUk9SOwotfQotCi1SZXNvdXJjZVRhYmxlOjpQYWNrYWdlOjpQYWNrYWdlKGNvbnN0IFN0cmluZzE2JiBuYW1lLCBzc2l6ZV90IGluY2x1ZGVkSWQpCi0gICAgOiBtTmFtZShuYW1lKSwgbUluY2x1ZGVkSWQoaW5jbHVkZWRJZCksCi0gICAgICBtVHlwZVN0cmluZ3NNYXBwaW5nKDB4ZmZmZmZmZmYpLAotICAgICAgbUtleVN0cmluZ3NNYXBwaW5nKDB4ZmZmZmZmZmYpCi17Ci19Ci0KLXNwPFJlc291cmNlVGFibGU6OlR5cGU+IFJlc291cmNlVGFibGU6OlBhY2thZ2U6OmdldFR5cGUoY29uc3QgU3RyaW5nMTYmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNvdXJjZVBvcyYgc291cmNlUG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGRvU2V0SW5kZXgpCi17Ci0gICAgc3A8VHlwZT4gdCA9IG1UeXBlcy52YWx1ZUZvcih0eXBlKTsKLSAgICBpZiAodCA9PSBOVUxMKSB7Ci0gICAgICAgIHQgPSBuZXcgVHlwZSh0eXBlLCBzb3VyY2VQb3MpOwotICAgICAgICBtVHlwZXMuYWRkKHR5cGUsIHQpOwotICAgICAgICBtT3JkZXJlZFR5cGVzLmFkZCh0KTsKLSAgICAgICAgaWYgKGRvU2V0SW5kZXgpIHsKLSAgICAgICAgICAgIC8vIEZvciBzb21lIHJlYXNvbiB0aGUgdHlwZSdzIGluZGV4IGlzIHNldCB0byBvbmUgcGx1cyB0aGUgaW5kZXgKLSAgICAgICAgICAgIC8vIGluIHRoZSBtT3JkZXJlZFR5cGVzIGxpc3QsIHJhdGhlciB0aGFuIGp1c3QgdGhlIGluZGV4LgotICAgICAgICAgICAgdC0+c2V0SW5kZXgobU9yZGVyZWRUeXBlcy5zaXplKCkpOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiB0OwotfQotCi1zdGF0dXNfdCBSZXNvdXJjZVRhYmxlOjpQYWNrYWdlOjpzZXRUeXBlU3RyaW5ncyhjb25zdCBzcDxBYXB0RmlsZT4mIGRhdGEpCi17Ci0gICAgbVR5cGVTdHJpbmdzRGF0YSA9IGRhdGE7Ci0gICAgc3RhdHVzX3QgZXJyID0gc2V0U3RyaW5ncyhkYXRhLCAmbVR5cGVTdHJpbmdzLCAmbVR5cGVTdHJpbmdzTWFwcGluZyk7Ci0gICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBUeXBlIHN0cmluZyBkYXRhIGlzIGNvcnJ1cHQhXG4iKTsKLSAgICB9Ci0gICAgcmV0dXJuIGVycjsKLX0KLQotc3RhdHVzX3QgUmVzb3VyY2VUYWJsZTo6UGFja2FnZTo6c2V0S2V5U3RyaW5ncyhjb25zdCBzcDxBYXB0RmlsZT4mIGRhdGEpCi17Ci0gICAgbUtleVN0cmluZ3NEYXRhID0gZGF0YTsKLSAgICBzdGF0dXNfdCBlcnIgPSBzZXRTdHJpbmdzKGRhdGEsICZtS2V5U3RyaW5ncywgJm1LZXlTdHJpbmdzTWFwcGluZyk7Ci0gICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBLZXkgc3RyaW5nIGRhdGEgaXMgY29ycnVwdCFcbiIpOwotICAgIH0KLSAgICByZXR1cm4gZXJyOwotfQotCi1zdGF0dXNfdCBSZXNvdXJjZVRhYmxlOjpQYWNrYWdlOjpzZXRTdHJpbmdzKGNvbnN0IHNwPEFhcHRGaWxlPiYgZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzU3RyaW5nUG9vbCogc3RyaW5ncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdEtleWVkVmVjdG9yPFN0cmluZzE2LCB1aW50MzJfdD4qIG1hcHBpbmdzKQotewotICAgIGlmIChkYXRhLT5nZXREYXRhKCkgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0KLSAgICBOT0lTWShhb3V0IDw8ICJTZXR0aW5nIHJlc3RhYmxlIHN0cmluZyBwb29sOiAiCi0gICAgICAgICAgPDwgSGV4RHVtcChkYXRhLT5nZXREYXRhKCksIGRhdGEtPmdldFNpemUoKSkgPDwgZW5kbCk7Ci0KLSAgICBzdGF0dXNfdCBlcnIgPSBzdHJpbmdzLT5zZXRUbyhkYXRhLT5nZXREYXRhKCksIGRhdGEtPmdldFNpemUoKSk7Ci0gICAgaWYgKGVyciA9PSBOT19FUlJPUikgewotICAgICAgICBjb25zdCBzaXplX3QgTiA9IHN0cmluZ3MtPnNpemUoKTsKLSAgICAgICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICAgICAgc2l6ZV90IGxlbjsKLSAgICAgICAgICAgIG1hcHBpbmdzLT5hZGQoU3RyaW5nMTYoc3RyaW5ncy0+c3RyaW5nQXQoaSwgJmxlbikpLCBpKTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gZXJyOwotfQotCi1zdGF0dXNfdCBSZXNvdXJjZVRhYmxlOjpQYWNrYWdlOjphcHBseVB1YmxpY1R5cGVPcmRlcigpCi17Ci0gICAgc2l6ZV90IE4gPSBtT3JkZXJlZFR5cGVzLnNpemUoKTsKLSAgICBWZWN0b3I8c3A8VHlwZT4gPiBvcmlnT3JkZXIobU9yZGVyZWRUeXBlcyk7Ci0KLSAgICBzaXplX3QgaTsKLSAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgbU9yZGVyZWRUeXBlcy5yZXBsYWNlQXQoTlVMTCwgaSk7Ci0gICAgfQotCi0gICAgZm9yIChpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIHNwPFR5cGU+IHQgPSBvcmlnT3JkZXIuaXRlbUF0KGkpOwotICAgICAgICBpbnQzMl90IGlkeCA9IHQtPmdldFB1YmxpY0luZGV4KCk7Ci0gICAgICAgIGlmIChpZHggPiAwKSB7Ci0gICAgICAgICAgICBpZHgtLTsKLSAgICAgICAgICAgIHdoaWxlIChpZHggPj0gKGludDMyX3QpbU9yZGVyZWRUeXBlcy5zaXplKCkpIHsKLSAgICAgICAgICAgICAgICBtT3JkZXJlZFR5cGVzLmFkZCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG1PcmRlcmVkVHlwZXMuaXRlbUF0KGlkeCkgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIHNwPFR5cGU+IG90ID0gbU9yZGVyZWRUeXBlcy5pdGVtQXQoaWR4KTsKLSAgICAgICAgICAgICAgICB0LT5nZXRGaXJzdFB1YmxpY1NvdXJjZVBvcygpLmVycm9yKCJNdWx0aXBsZSB0eXBlIG5hbWVzIGRlY2xhcmVkIGZvciBwdWJsaWMgdHlwZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICIgaWRlbnRpZmllciAweCV4ICglcyB2cyAlcykuXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAiJXM6JWQ6IE9yaWdpbmFsbHkgZGVmaW5lZCBoZXJlLiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBpZHgsIFN0cmluZzgob3QtPmdldE5hbWUoKSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHQtPmdldE5hbWUoKSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBvdC0+Z2V0Rmlyc3RQdWJsaWNTb3VyY2VQb3MoKS5maWxlLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgb3QtPmdldEZpcnN0UHVibGljU291cmNlUG9zKCkubGluZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtT3JkZXJlZFR5cGVzLnJlcGxhY2VBdCh0LCBpZHgpOwotICAgICAgICAgICAgb3JpZ09yZGVyLnJlbW92ZUF0KGkpOwotICAgICAgICAgICAgaS0tOwotICAgICAgICAgICAgTi0tOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc2l6ZV90IGo9MDsKLSAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgc3A8VHlwZT4gdCA9IG9yaWdPcmRlci5pdGVtQXQoaSk7Ci0gICAgICAgIC8vIFRoZXJlIHdpbGwgYWx3YXlzIGJlIGVub3VnaCByb29tIGZvciB0aGUgcmVtYWluaW5nIHR5cGVzLgotICAgICAgICB3aGlsZSAobU9yZGVyZWRUeXBlcy5pdGVtQXQoaikgIT0gTlVMTCkgewotICAgICAgICAgICAgaisrOwotICAgICAgICB9Ci0gICAgICAgIG1PcmRlcmVkVHlwZXMucmVwbGFjZUF0KHQsIGopOwotICAgIH0KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3A8UmVzb3VyY2VUYWJsZTo6UGFja2FnZT4gUmVzb3VyY2VUYWJsZTo6Z2V0UGFja2FnZShjb25zdCBTdHJpbmcxNiYgcGFja2FnZSkKLXsKLSAgICBzcDxQYWNrYWdlPiBwID0gbVBhY2thZ2VzLnZhbHVlRm9yKHBhY2thZ2UpOwotICAgIGlmIChwID09IE5VTEwpIHsKLSAgICAgICAgaWYgKG1Jc0FwcFBhY2thZ2UpIHsKLSAgICAgICAgICAgIGlmIChtSGF2ZUFwcFBhY2thZ2UpIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkFkZGluZyBtdWx0aXBsZSBhcHBsaWNhdGlvbiBwYWNrYWdlIHJlc291cmNlczsgb25seSBvbmUgaXMgYWxsb3dlZC5cbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVzZSAteCB0byBjcmVhdGUgZXh0ZW5kZWQgcmVzb3VyY2VzLlxuIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtSGF2ZUFwcFBhY2thZ2UgPSB0cnVlOwotICAgICAgICAgICAgcCA9IG5ldyBQYWNrYWdlKHBhY2thZ2UsIDEyNyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwID0gbmV3IFBhY2thZ2UocGFja2FnZSwgbU5leHRQYWNrYWdlSWQpOwotICAgICAgICB9Ci0gICAgICAgIC8vcHJpbnRmKCIqKiogTkVXIFBBQ0tBR0U6IFwiJXNcIiBpZD0lZFxuIiwKLSAgICAgICAgLy8gICAgICAgU3RyaW5nOChwYWNrYWdlKS5zdHJpbmcoKSwgcC0+Z2V0QXNzaWduZWRJZCgpKTsKLSAgICAgICAgbVBhY2thZ2VzLmFkZChwYWNrYWdlLCBwKTsKLSAgICAgICAgbU9yZGVyZWRQYWNrYWdlcy5hZGQocCk7Ci0gICAgICAgIG1OZXh0UGFja2FnZUlkKys7Ci0gICAgfQotICAgIHJldHVybiBwOwotfQotCi1zcDxSZXNvdXJjZVRhYmxlOjpUeXBlPiBSZXNvdXJjZVRhYmxlOjpnZXRUeXBlKGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU291cmNlUG9zJiBzb3VyY2VQb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZG9TZXRJbmRleCkKLXsKLSAgICBzcDxQYWNrYWdlPiBwID0gZ2V0UGFja2FnZShwYWNrYWdlKTsKLSAgICBpZiAocCA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICByZXR1cm4gcC0+Z2V0VHlwZSh0eXBlLCBzb3VyY2VQb3MsIGRvU2V0SW5kZXgpOwotfQotCi1zcDxSZXNvdXJjZVRhYmxlOjpFbnRyeT4gUmVzb3VyY2VUYWJsZTo6Z2V0RW50cnkoY29uc3QgU3RyaW5nMTYmIHBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU291cmNlUG9zJiBzb3VyY2VQb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBvdmVybGF5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyogY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZG9TZXRJbmRleCkKLXsKLSAgICBzcDxUeXBlPiB0ID0gZ2V0VHlwZShwYWNrYWdlLCB0eXBlLCBzb3VyY2VQb3MsIGRvU2V0SW5kZXgpOwotICAgIGlmICh0ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIHJldHVybiB0LT5nZXRFbnRyeShuYW1lLCBzb3VyY2VQb3MsIGNvbmZpZywgZG9TZXRJbmRleCwgb3ZlcmxheSwgbUJ1bmRsZS0+Z2V0QXV0b0FkZE92ZXJsYXkoKSk7Ci19Ci0KLXNwPGNvbnN0IFJlc291cmNlVGFibGU6OkVudHJ5PiBSZXNvdXJjZVRhYmxlOjpnZXRFbnRyeSh1aW50MzJfdCByZXNJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNUYWJsZV9jb25maWcqIGNvbmZpZykgY29uc3QKLXsKLSAgICBpbnQgcGlkID0gUmVzX0dFVFBBQ0tBR0UocmVzSUQpKzE7Ci0gICAgY29uc3Qgc2l6ZV90IE4gPSBtT3JkZXJlZFBhY2thZ2VzLnNpemUoKTsKLSAgICBzaXplX3QgaTsKLSAgICBzcDxQYWNrYWdlPiBwOwotICAgIGZvciAoaT0wOyBpPE47IGkrKykgewotICAgICAgICBzcDxQYWNrYWdlPiBjaGVjayA9IG1PcmRlcmVkUGFja2FnZXNbaV07Ci0gICAgICAgIGlmIChjaGVjay0+Z2V0QXNzaWduZWRJZCgpID09IHBpZCkgewotICAgICAgICAgICAgcCA9IGNoZWNrOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgIH0KLSAgICBpZiAocCA9PSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAid2FybmluZzogUGFja2FnZSBub3QgZm91bmQgZm9yIHJlc291cmNlICMlMDh4XG4iLCByZXNJRCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIGludCB0aWQgPSBSZXNfR0VUVFlQRShyZXNJRCk7Ci0gICAgaWYgKHRpZCA8IDAgfHwgdGlkID49IChpbnQpcC0+Z2V0T3JkZXJlZFR5cGVzKCkuc2l6ZSgpKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAid2FybmluZzogVHlwZSBub3QgZm91bmQgZm9yIHJlc291cmNlICMlMDh4XG4iLCByZXNJRCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBzcDxUeXBlPiB0ID0gcC0+Z2V0T3JkZXJlZFR5cGVzKClbdGlkXTsKLQotICAgIGludCBlaWQgPSBSZXNfR0VURU5UUlkocmVzSUQpOwotICAgIGlmIChlaWQgPCAwIHx8IGVpZCA+PSAoaW50KXQtPmdldE9yZGVyZWRDb25maWdzKCkuc2l6ZSgpKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAid2FybmluZzogRW50cnkgbm90IGZvdW5kIGZvciByZXNvdXJjZSAjJTA4eFxuIiwgcmVzSUQpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICBzcDxDb25maWdMaXN0PiBjID0gdC0+Z2V0T3JkZXJlZENvbmZpZ3MoKVtlaWRdOwotICAgIGlmIChjID09IE5VTEwpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJ3YXJuaW5nOiBFbnRyeSBub3QgZm91bmQgZm9yIHJlc291cmNlICMlMDh4XG4iLCByZXNJRCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICAKLSAgICBDb25maWdEZXNjcmlwdGlvbiBjZGVzYzsKLSAgICBpZiAoY29uZmlnKSBjZGVzYyA9ICpjb25maWc7Ci0gICAgc3A8RW50cnk+IGUgPSBjLT5nZXRFbnRyaWVzKCkudmFsdWVGb3IoY2Rlc2MpOwotICAgIGlmIChjID09IE5VTEwpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJ3YXJuaW5nOiBFbnRyeSBjb25maWd1cmF0aW9uIG5vdCBmb3VuZCBmb3IgcmVzb3VyY2UgIyUwOHhcbiIsIHJlc0lEKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIAotICAgIHJldHVybiBlOwotfQotCi1jb25zdCBSZXNvdXJjZVRhYmxlOjpJdGVtKiBSZXNvdXJjZVRhYmxlOjpnZXRJdGVtKHVpbnQzMl90IHJlc0lELCB1aW50MzJfdCBhdHRySUQpIGNvbnN0Ci17Ci0gICAgc3A8Y29uc3QgRW50cnk+IGUgPSBnZXRFbnRyeShyZXNJRCk7Ci0gICAgaWYgKGUgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICBjb25zdCBzaXplX3QgTiA9IGUtPmdldEJhZygpLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IEl0ZW0mIGl0ID0gZS0+Z2V0QmFnKCkudmFsdWVBdChpKTsKLSAgICAgICAgaWYgKGl0LmJhZ0tleUlkID09IDApIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAid2FybmluZzogSUQgbm90IHlldCBhc3NpZ25lZCB0byAnJXMnIGluIGJhZyAnJXMnXG4iLAotICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGUtPmdldE5hbWUoKSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzgoZS0+Z2V0QmFnKCkua2V5QXQoaSkpLnN0cmluZygpKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoaXQuYmFnS2V5SWQgPT0gYXR0cklEKSB7Ci0gICAgICAgICAgICByZXR1cm4gJml0OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLWJvb2wgUmVzb3VyY2VUYWJsZTo6Z2V0SXRlbVZhbHVlKAotICAgIHVpbnQzMl90IHJlc0lELCB1aW50MzJfdCBhdHRySUQsIFJlc192YWx1ZSogb3V0VmFsdWUpCi17Ci0gICAgY29uc3QgSXRlbSogaXRlbSA9IGdldEl0ZW0ocmVzSUQsIGF0dHJJRCk7Ci0KLSAgICBib29sIHJlcyA9IGZhbHNlOwotICAgIGlmIChpdGVtICE9IE5VTEwpIHsKLSAgICAgICAgaWYgKGl0ZW0tPmV2YWx1YXRpbmcpIHsKLSAgICAgICAgICAgIHNwPGNvbnN0IEVudHJ5PiBlID0gZ2V0RW50cnkocmVzSUQpOwotICAgICAgICAgICAgY29uc3Qgc2l6ZV90IE4gPSBlLT5nZXRCYWcoKS5zaXplKCk7Ci0gICAgICAgICAgICBzaXplX3QgaTsKLSAgICAgICAgICAgIGZvciAoaT0wOyBpPE47IGkrKykgewotICAgICAgICAgICAgICAgIGlmICgmZS0+Z2V0QmFnKCkudmFsdWVBdChpKSA9PSBpdGVtKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAid2FybmluZzogQ2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkIGluIGtleSAnJXMnIG9mIGJhZyAnJXMnXG4iLAotICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGUtPmdldE5hbWUoKSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzgoZS0+Z2V0QmFnKCkua2V5QXQoaSkpLnN0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBpdGVtLT5ldmFsdWF0aW5nID0gdHJ1ZTsKLSAgICAgICAgcmVzID0gc3RyaW5nVG9WYWx1ZShvdXRWYWx1ZSwgTlVMTCwgaXRlbS0+dmFsdWUsIGZhbHNlLCBmYWxzZSwgaXRlbS0+YmFnS2V5SWQpOwotICAgICAgICBOT0lTWSgKLSAgICAgICAgICAgIGlmIChyZXMpIHsKLSAgICAgICAgICAgICAgICBwcmludGYoImdldEl0ZW1WYWx1ZSBvZiAjJTA4eFsjJTA4eF0gKCVzKTogdHlwZT0jJTA4eCwgZGF0YT0jJTA4eFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgcmVzSUQsIGF0dHJJRCwgU3RyaW5nOChnZXRFbnRyeShyZXNJRCktPmdldE5hbWUoKSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgIG91dFZhbHVlLT5kYXRhVHlwZSwgb3V0VmFsdWUtPmRhdGEpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwcmludGYoImdldEl0ZW1WYWx1ZSBvZiAjJTA4eFsjJTA4eF06IGZhaWxlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgcmVzSUQsIGF0dHJJRCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICk7Ci0gICAgICAgIGl0ZW0tPmV2YWx1YXRpbmcgPSBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlczsKLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvUmVzb3VyY2VUYWJsZS5oIGIvdG9vbHMvYWFwdC9SZXNvdXJjZVRhYmxlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzZTA2NjYuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9SZXNvdXJjZVRhYmxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NTcgKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDA2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0vLyBCdWlsZCByZXNvdXJjZSBmaWxlcyBmcm9tIHJhdyBhc3NldHMuCi0vLwotCi0jaWZuZGVmIFJFU09VUkNFX1RBQkxFX0gKLSNkZWZpbmUgUkVTT1VSQ0VfVEFCTEVfSAotCi0jaW5jbHVkZSAiU3RyaW5nUG9vbC5oIgotI2luY2x1ZGUgIlNvdXJjZVBvcy5oIgotCi0jaW5jbHVkZSA8c2V0PgotI2luY2x1ZGUgPG1hcD4KLQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotY2xhc3MgWE1MTm9kZTsKLWNsYXNzIFJlc291cmNlVGFibGU7Ci0KLWVudW0gewotICAgIFhNTF9DT01QSUxFX1NUUklQX0NPTU1FTlRTID0gMTw8MCwKLSAgICBYTUxfQ09NUElMRV9BU1NJR05fQVRUUklCVVRFX0lEUyA9IDE8PDEsCi0gICAgWE1MX0NPTVBJTEVfQ09NUEFDVF9XSElURVNQQUNFID0gMTw8MiwKLSAgICBYTUxfQ09NUElMRV9TVFJJUF9XSElURVNQQUNFID0gMTw8MywKLSAgICBYTUxfQ09NUElMRV9TVFJJUF9SQVdfVkFMVUVTID0gMTw8NCwKLSAgICBYTUxfQ09NUElMRV9VVEY4ID0gMTw8NSwKLSAgICAKLSAgICBYTUxfQ09NUElMRV9TVEFOREFSRF9SRVNPVVJDRSA9Ci0gICAgICAgICAgICBYTUxfQ09NUElMRV9TVFJJUF9DT01NRU5UUyB8IFhNTF9DT01QSUxFX0FTU0lHTl9BVFRSSUJVVEVfSURTCi0gICAgICAgICAgICB8IFhNTF9DT01QSUxFX1NUUklQX1dISVRFU1BBQ0UgfCBYTUxfQ09NUElMRV9TVFJJUF9SQVdfVkFMVUVTCi19OwotCi1zdGF0dXNfdCBjb21waWxlWG1sRmlsZShjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8QWFwdEZpbGU+JiB0YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVRhYmxlKiB0YWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zID0gWE1MX0NPTVBJTEVfU1RBTkRBUkRfUkVTT1VSQ0UpOwotCi1zdGF0dXNfdCBjb21waWxlWG1sRmlsZShjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8QWFwdEZpbGU+JiB0YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxBYXB0RmlsZT4mIG91dFRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVGFibGUqIHRhYmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMgPSBYTUxfQ09NUElMRV9TVEFOREFSRF9SRVNPVVJDRSk7Ci0KLXN0YXR1c190IGNvbXBpbGVYbWxGaWxlKGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxYTUxOb2RlPiYgeG1sVHJlZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPEFhcHRGaWxlPiYgdGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VUYWJsZSogdGFibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucyA9IFhNTF9DT01QSUxFX1NUQU5EQVJEX1JFU09VUkNFKTsKLQotc3RhdHVzX3QgY29tcGlsZVJlc291cmNlRmlsZShCdW5kbGUqIGJ1bmRsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzc2V0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8QWFwdEZpbGU+JiBpbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzVGFibGVfY29uZmlnJiBkZWZQYXJhbXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgb3ZlcndyaXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVRhYmxlKiBvdXRUYWJsZSk7Ci0KLXN0cnVjdCBBY2Nlc3NvckNvb2tpZQotewotICAgIFNvdXJjZVBvcyBzb3VyY2VQb3M7Ci0gICAgU3RyaW5nOCBhdHRyOwotICAgIFN0cmluZzggdmFsdWU7Ci0KLSAgICBBY2Nlc3NvckNvb2tpZShjb25zdCBTb3VyY2VQb3MmcCwgY29uc3QgU3RyaW5nOCYgYSwgY29uc3QgU3RyaW5nOCYgdikKLSAgICAgICAgOnNvdXJjZVBvcyhwKSwKLSAgICAgICAgIGF0dHIoYSksCi0gICAgICAgICB2YWx1ZSh2KQotICAgIHsKLSAgICB9Ci19OwotCi1jbGFzcyBSZXNvdXJjZVRhYmxlIDogcHVibGljIFJlc1RhYmxlOjpBY2Nlc3NvcgotewotcHVibGljOgotICAgIGNsYXNzIFBhY2thZ2U7Ci0gICAgY2xhc3MgVHlwZTsKLSAgICBjbGFzcyBFbnRyeTsKLQotICAgIHN0cnVjdCBDb25maWdEZXNjcmlwdGlvbiA6IHB1YmxpYyBSZXNUYWJsZV9jb25maWcgewotICAgICAgICBDb25maWdEZXNjcmlwdGlvbigpIHsKLSAgICAgICAgICAgIG1lbXNldCh0aGlzLCAwLCBzaXplb2YoKnRoaXMpKTsKLSAgICAgICAgICAgIHNpemUgPSBzaXplb2YoUmVzVGFibGVfY29uZmlnKTsKLSAgICAgICAgfQotICAgICAgICBDb25maWdEZXNjcmlwdGlvbihjb25zdCBSZXNUYWJsZV9jb25maWcmbykgewotICAgICAgICAgICAgKnN0YXRpY19jYXN0PFJlc1RhYmxlX2NvbmZpZyo+KHRoaXMpID0gbzsKLSAgICAgICAgICAgIHNpemUgPSBzaXplb2YoUmVzVGFibGVfY29uZmlnKTsKLSAgICAgICAgfQotICAgICAgICBDb25maWdEZXNjcmlwdGlvbihjb25zdCBDb25maWdEZXNjcmlwdGlvbiZvKSB7Ci0gICAgICAgICAgICAqc3RhdGljX2Nhc3Q8UmVzVGFibGVfY29uZmlnKj4odGhpcykgPSBvOwotICAgICAgICB9Ci0KLSAgICAgICAgQ29uZmlnRGVzY3JpcHRpb24mIG9wZXJhdG9yPShjb25zdCBSZXNUYWJsZV9jb25maWcmIG8pIHsKLSAgICAgICAgICAgICpzdGF0aWNfY2FzdDxSZXNUYWJsZV9jb25maWcqPih0aGlzKSA9IG87Ci0gICAgICAgICAgICBzaXplID0gc2l6ZW9mKFJlc1RhYmxlX2NvbmZpZyk7Ci0gICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIH0KLSAgICAgICAgQ29uZmlnRGVzY3JpcHRpb24mIG9wZXJhdG9yPShjb25zdCBDb25maWdEZXNjcmlwdGlvbiYgbykgewotICAgICAgICAgICAgKnN0YXRpY19jYXN0PFJlc1RhYmxlX2NvbmZpZyo+KHRoaXMpID0gbzsKLSAgICAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgICAgfQotCi0gICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yPChjb25zdCBDb25maWdEZXNjcmlwdGlvbiYgbykgY29uc3QgeyByZXR1cm4gY29tcGFyZShvKSA8IDA7IH0KLSAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I8PShjb25zdCBDb25maWdEZXNjcmlwdGlvbiYgbykgY29uc3QgeyByZXR1cm4gY29tcGFyZShvKSA8PSAwOyB9Ci0gICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29uZmlnRGVzY3JpcHRpb24mIG8pIGNvbnN0IHsgcmV0dXJuIGNvbXBhcmUobykgPT0gMDsgfQotICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IENvbmZpZ0Rlc2NyaXB0aW9uJiBvKSBjb25zdCB7IHJldHVybiBjb21wYXJlKG8pICE9IDA7IH0KLSAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I+PShjb25zdCBDb25maWdEZXNjcmlwdGlvbiYgbykgY29uc3QgeyByZXR1cm4gY29tcGFyZShvKSA+PSAwOyB9Ci0gICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yPihjb25zdCBDb25maWdEZXNjcmlwdGlvbiYgbykgY29uc3QgeyByZXR1cm4gY29tcGFyZShvKSA+IDA7IH0KLSAgICB9OwotCi0gICAgUmVzb3VyY2VUYWJsZShCdW5kbGUqIGJ1bmRsZSwgY29uc3QgU3RyaW5nMTYmIGFzc2V0c1BhY2thZ2UpOwotCi0gICAgc3RhdHVzX3QgYWRkSW5jbHVkZWRSZXNvdXJjZXMoQnVuZGxlKiBidW5kbGUsIGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMpOwotCi0gICAgc3RhdHVzX3QgYWRkUHVibGljKGNvbnN0IFNvdXJjZVBvcyYgcG9zLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgcGFja2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCBpZGVudCk7Ci0KLSAgICBzdGF0dXNfdCBhZGRFbnRyeShjb25zdCBTb3VyY2VQb3MmIHBvcywKLSAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgcGFja2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVjdG9yPFN0cmluZ1Bvb2w6OmVudHJ5X3N0eWxlX3NwYW4+KiBzdHlsZSA9IE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzVGFibGVfY29uZmlnKiBwYXJhbXMgPSBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgZG9TZXRJbmRleCA9IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDMyX3QgZm9ybWF0ID0gUmVzVGFibGVfbWFwOjpUWVBFX0FOWSwKLSAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib29sIG92ZXJ3cml0ZSA9IGZhbHNlKTsKLQotICAgIHN0YXR1c190IHN0YXJ0QmFnKGNvbnN0IFNvdXJjZVBvcyYgcG9zLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgcGFja2FnZSwKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBuYW1lLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgYmFnUGFyZW50LAotICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNUYWJsZV9jb25maWcqIHBhcmFtcyA9IE5VTEwsCi0gICAgICAgICAgICAgICAgICAgIGJvb2wgb3ZlcmxheSA9IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICBib29sIHJlcGxhY2UgPSBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgYm9vbCBpc0lkID0gZmFsc2UpOwotICAgIAotICAgIHN0YXR1c190IGFkZEJhZyhjb25zdCBTb3VyY2VQb3MmIHBvcywKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiB0eXBlLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIGJhZ1BhcmVudCwKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIGJhZ0tleSwKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHZhbHVlLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWN0b3I8U3RyaW5nUG9vbDo6ZW50cnlfc3R5bGVfc3Bhbj4qIHN0eWxlID0gTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzVGFibGVfY29uZmlnKiBwYXJhbXMgPSBOVUxMLAotICAgICAgICAgICAgICAgICAgICBib29sIHJlcGxhY2UgPSBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgYm9vbCBpc0lkID0gZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIGNvbnN0IGludDMyX3QgZm9ybWF0ID0gUmVzVGFibGVfbWFwOjpUWVBFX0FOWSk7Ci0KLSAgICBib29sIGhhc0JhZ09yRW50cnkoY29uc3QgU3RyaW5nMTYmIHBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgbmFtZSkgY29uc3Q7Ci0KLSAgICBib29sIGhhc0JhZ09yRW50cnkoY29uc3QgU3RyaW5nMTYmIHBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzVGFibGVfY29uZmlnJiBjb25maWcpIGNvbnN0OwotCi0gICAgYm9vbCBoYXNCYWdPckVudHJ5KGNvbnN0IFN0cmluZzE2JiByZWYsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2KiBkZWZUeXBlID0gTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYqIGRlZlBhY2thZ2UgPSBOVUxMKTsKLQotICAgIGJvb2wgYXBwZW5kQ29tbWVudChjb25zdCBTdHJpbmcxNiYgcGFja2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgY29tbWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBvbmx5SWZFbXB0eSA9IGZhbHNlKTsKLQotICAgIGJvb2wgYXBwZW5kVHlwZUNvbW1lbnQoY29uc3QgU3RyaW5nMTYmIHBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIGNvbW1lbnQpOwotICAgIAotICAgIHZvaWQgY2FuQWRkRW50cnkoY29uc3QgU291cmNlUG9zJiBwb3MsCi0gICAgICAgIGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLCBjb25zdCBTdHJpbmcxNiYgdHlwZSwgY29uc3QgU3RyaW5nMTYmIG5hbWUpOwotICAgICAgICAKLSAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0OwotICAgIHNpemVfdCBudW1Mb2NhbFJlc291cmNlcygpIGNvbnN0OwotICAgIGJvb2wgaGFzUmVzb3VyY2VzKCkgY29uc3Q7Ci0KLSAgICBzcDxBYXB0RmlsZT4gZmxhdHRlbihCdW5kbGUqKTsKLQotICAgIHN0YXRpYyBpbmxpbmUgdWludDMyX3QgbWFrZVJlc0lkKHVpbnQzMl90IHBhY2thZ2VJZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0eXBlSWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbmFtZUlkKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5hbWVJZCB8ICh0eXBlSWQ8PDE2KSB8IChwYWNrYWdlSWQ8PDI0KTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgaW5saW5lIHVpbnQzMl90IGdldFJlc0lkKGNvbnN0IHNwPFBhY2thZ2U+JiBwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8VHlwZT4mIHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBuYW1lSWQpOwotCi0gICAgdWludDMyX3QgZ2V0UmVzSWQoY29uc3QgU3RyaW5nMTYmIHBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgYm9vbCBvbmx5UHVibGljID0gdHJ1ZSkgY29uc3Q7Ci0KLSAgICB1aW50MzJfdCBnZXRSZXNJZChjb25zdCBTdHJpbmcxNiYgcmVmLAotICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2KiBkZWZUeXBlID0gTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiogZGVmUGFja2FnZSA9IE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhcioqIG91dEVycm9yTXNnID0gTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICBib29sIG9ubHlQdWJsaWMgPSB0cnVlKSBjb25zdDsKLQotICAgIHN0YXRpYyBib29sIGlzVmFsaWRSZXNvdXJjZU5hbWUoY29uc3QgU3RyaW5nMTYmIHMpOwotICAgIAotICAgIGJvb2wgc3RyaW5nVG9WYWx1ZShSZXNfdmFsdWUqIG91dFZhbHVlLCBTdHJpbmdQb29sKiBwb29sLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgc3RyLAotICAgICAgICAgICAgICAgICAgICAgICBib29sIHByZXNlcnZlU3BhY2VzLCBib29sIGNvZXJjZVR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGF0dHJJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVjdG9yPFN0cmluZ1Bvb2w6OmVudHJ5X3N0eWxlX3NwYW4+KiBzdHlsZSA9IE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzE2KiBvdXRTdHIgPSBOVUxMLCB2b2lkKiBhY2Nlc3NvckNvb2tpZSA9IE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGF0dHJUeXBlID0gUmVzVGFibGVfbWFwOjpUWVBFX0FOWSwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nOCogY29uZmlnVHlwZU5hbWUgPSBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb25maWdEZXNjcmlwdGlvbiogY29uZmlnID0gTlVMTCk7Ci0KLSAgICBzdGF0dXNfdCBhc3NpZ25SZXNvdXJjZUlkcygpOwotICAgIHN0YXR1c190IGFkZFN5bWJvbHMoY29uc3Qgc3A8QWFwdFN5bWJvbHM+JiBvdXRTeW1ib2xzID0gTlVMTCk7Ci0gICAgdm9pZCBhZGRMb2NhbGl6YXRpb24oY29uc3QgU3RyaW5nMTYmIG5hbWUsIGNvbnN0IFN0cmluZzgmIGxvY2FsZSk7Ci0gICAgc3RhdHVzX3QgdmFsaWRhdGVMb2NhbGl6YXRpb25zKHZvaWQpOwotCi0gICAgc3RhdHVzX3QgZmxhdHRlbihCdW5kbGUqLCBjb25zdCBzcDxBYXB0RmlsZT4mIGRlc3QpOwotCi0gICAgdm9pZCB3cml0ZVB1YmxpY0RlZmluaXRpb25zKGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLCBGSUxFKiBmcCk7Ci0KLSAgICB2aXJ0dWFsIHVpbnQzMl90IGdldEN1c3RvbVJlc291cmNlKGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgbmFtZSkgY29uc3Q7Ci0gICAgdmlydHVhbCB1aW50MzJfdCBnZXRDdXN0b21SZXNvdXJjZVdpdGhDcmVhdGlvbihjb25zdCBTdHJpbmcxNiYgcGFja2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib29sIGNyZWF0ZUlmTmVlZGVkKTsKLSAgICB2aXJ0dWFsIHVpbnQzMl90IGdldFJlbWFwcGVkUGFja2FnZSh1aW50MzJfdCBvcmlnUGFja2FnZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGdldEF0dHJpYnV0ZVR5cGUodWludDMyX3QgYXR0cklELCB1aW50MzJfdCogb3V0VHlwZSk7Ci0gICAgdmlydHVhbCBib29sIGdldEF0dHJpYnV0ZU1pbih1aW50MzJfdCBhdHRySUQsIHVpbnQzMl90KiBvdXRNaW4pOwotICAgIHZpcnR1YWwgYm9vbCBnZXRBdHRyaWJ1dGVNYXgodWludDMyX3QgYXR0cklELCB1aW50MzJfdCogb3V0TWF4KTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0QXR0cmlidXRlS2V5cyh1aW50MzJfdCBhdHRySUQsIFZlY3RvcjxTdHJpbmcxNj4qIG91dEtleXMpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRBdHRyaWJ1dGVFbnVtKHVpbnQzMl90IGF0dHJJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogbmFtZSwgc2l6ZV90IG5hbWVMZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzX3ZhbHVlKiBvdXRWYWx1ZSk7Ci0gICAgdmlydHVhbCBib29sIGdldEF0dHJpYnV0ZUZsYWdzKHVpbnQzMl90IGF0dHJJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhcjE2X3QqIG5hbWUsIHNpemVfdCBuYW1lTGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNfdmFsdWUqIG91dFZhbHVlKTsKLSAgICB2aXJ0dWFsIHVpbnQzMl90IGdldEF0dHJpYnV0ZUwxME4odWludDMyX3QgYXR0cklEKTsKLQotICAgIHZpcnR1YWwgYm9vbCBnZXRMb2NhbGl6YXRpb25TZXR0aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcG9ydEVycm9yKHZvaWQqIGFjY2Vzc29yQ29va2llLCBjb25zdCBjaGFyKiBmbXQsIC4uLik7Ci0KLSAgICB2b2lkIHNldEN1cnJlbnRYbWxQb3MoY29uc3QgU291cmNlUG9zJiBwb3MpIHsgbUN1cnJlbnRYbWxQb3MgPSBwb3M7IH0KLQotICAgIGNsYXNzIEl0ZW0gewotICAgIHB1YmxpYzoKLSAgICAgICAgSXRlbSgpIDogaXNJZChmYWxzZSksIGZvcm1hdChSZXNUYWJsZV9tYXA6OlRZUEVfQU5ZKSwgYmFnS2V5SWQoMCksIGV2YWx1YXRpbmcoZmFsc2UpCi0gICAgICAgICAgICB7IG1lbXNldCgmcGFyc2VkVmFsdWUsIDAsIHNpemVvZihwYXJzZWRWYWx1ZSkpOyB9Ci0gICAgICAgIEl0ZW0oY29uc3QgU291cmNlUG9zJiBwb3MsCi0gICAgICAgICAgICAgYm9vbCBfaXNJZCwKLSAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgX3ZhbHVlLAotICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmdQb29sOjplbnRyeV9zdHlsZV9zcGFuPiogX3N0eWxlID0gTlVMTCwKLSAgICAgICAgICAgICBpbnQzMl90IGZvcm1hdCA9IFJlc1RhYmxlX21hcDo6VFlQRV9BTlkpOwotICAgICAgICBJdGVtKGNvbnN0IEl0ZW0mIG8pIDogc291cmNlUG9zKG8uc291cmNlUG9zKSwKLSAgICAgICAgICAgIGlzSWQoby5pc0lkKSwgdmFsdWUoby52YWx1ZSksIHN0eWxlKG8uc3R5bGUpLAotICAgICAgICAgICAgZm9ybWF0KG8uZm9ybWF0KSwgYmFnS2V5SWQoby5iYWdLZXlJZCksIGV2YWx1YXRpbmcoZmFsc2UpIHsKLSAgICAgICAgICAgIG1lbXNldCgmcGFyc2VkVmFsdWUsIDAsIHNpemVvZihwYXJzZWRWYWx1ZSkpOwotICAgICAgICB9Ci0gICAgICAgIH5JdGVtKCkgeyB9Ci0KLSAgICAgICAgSXRlbSYgb3BlcmF0b3I9KGNvbnN0IEl0ZW0mIG8pIHsKLSAgICAgICAgICAgIHNvdXJjZVBvcyA9IG8uc291cmNlUG9zOwotICAgICAgICAgICAgaXNJZCA9IG8uaXNJZDsKLSAgICAgICAgICAgIHZhbHVlID0gby52YWx1ZTsKLSAgICAgICAgICAgIHN0eWxlID0gby5zdHlsZTsKLSAgICAgICAgICAgIGZvcm1hdCA9IG8uZm9ybWF0OwotICAgICAgICAgICAgYmFnS2V5SWQgPSBvLmJhZ0tleUlkOwotICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBvLnBhcnNlZFZhbHVlOwotICAgICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgICAgICB9Ci0KLSAgICAgICAgU291cmNlUG9zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVBvczsKLSAgICAgICAgbXV0YWJsZSBib29sICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSWQ7Ci0gICAgICAgIFN0cmluZzE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTsKLSAgICAgICAgVmVjdG9yPFN0cmluZ1Bvb2w6OmVudHJ5X3N0eWxlX3NwYW4+ICAgIHN0eWxlOwotICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0OwotICAgICAgICB1aW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFnS2V5SWQ7Ci0gICAgICAgIG11dGFibGUgYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsdWF0aW5nOwotICAgICAgICBSZXNfdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkVmFsdWU7Ci0gICAgfTsKLQotICAgIGNsYXNzIEVudHJ5IDogcHVibGljIFJlZkJhc2UgewotICAgIHB1YmxpYzoKLSAgICAgICAgRW50cnkoY29uc3QgU3RyaW5nMTYmIG5hbWUsIGNvbnN0IFNvdXJjZVBvcyYgcG9zKQotICAgICAgICAgICAgOiBtTmFtZShuYW1lKSwgbVR5cGUoVFlQRV9VTktOT1dOKSwKLSAgICAgICAgICAgICAgbUl0ZW1Gb3JtYXQoUmVzVGFibGVfbWFwOjpUWVBFX0FOWSksIG1OYW1lSW5kZXgoLTEpLCBtUG9zKHBvcykKLSAgICAgICAgeyB9Ci0gICAgICAgIHZpcnR1YWwgfkVudHJ5KCkgeyB9Ci0KLSAgICAgICAgZW51bSB0eXBlIHsKLSAgICAgICAgICAgIFRZUEVfVU5LTk9XTiA9IDAsCi0gICAgICAgICAgICBUWVBFX0lURU0sCi0gICAgICAgICAgICBUWVBFX0JBRwotICAgICAgICB9OwotICAgICAgICAKLSAgICAgICAgU3RyaW5nMTYgZ2V0TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1OYW1lOyB9Ci0gICAgICAgIHR5cGUgZ2V0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1UeXBlOyB9Ci0KLSAgICAgICAgdm9pZCBzZXRQYXJlbnQoY29uc3QgU3RyaW5nMTYmIHBhcmVudCkgeyBtUGFyZW50ID0gcGFyZW50OyB9Ci0gICAgICAgIFN0cmluZzE2IGdldFBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1QYXJlbnQ7IH0KLQotICAgICAgICBzdGF0dXNfdCBtYWtlSXRBQmFnKGNvbnN0IFNvdXJjZVBvcyYgc291cmNlUG9zKTsKLQotICAgICAgICBzdGF0dXNfdCBlbXB0eUJhZyhjb25zdCBTb3VyY2VQb3MmIHNvdXJjZVBvcyk7Ci0gCi0gICAgICAgIHN0YXR1c190IHNldEl0ZW0oY29uc3QgU291cmNlUG9zJiBwb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmdQb29sOjplbnRyeV9zdHlsZV9zcGFuPiogc3R5bGUgPSBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgZm9ybWF0ID0gUmVzVGFibGVfbWFwOjpUWVBFX0FOWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib29sIG92ZXJ3cml0ZSA9IGZhbHNlKTsKLQotICAgICAgICBzdGF0dXNfdCBhZGRUb0JhZyhjb25zdCBTb3VyY2VQb3MmIHBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIGtleSwgY29uc3QgU3RyaW5nMTYmIHZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWN0b3I8U3RyaW5nUG9vbDo6ZW50cnlfc3R5bGVfc3Bhbj4qIHN0eWxlID0gTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCByZXBsYWNlPWZhbHNlLCBib29sIGlzSWQgPSBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBmb3JtYXQgPSBSZXNUYWJsZV9tYXA6OlRZUEVfQU5ZKTsKLQotICAgICAgICAvLyBJbmRleCBvZiB0aGUgZW50cnkncyBuYW1lIHN0cmluZyBpbiB0aGUga2V5IHBvb2wuCi0gICAgICAgIGludDMyX3QgZ2V0TmFtZUluZGV4KCkgY29uc3QgeyByZXR1cm4gbU5hbWVJbmRleDsgfQotICAgICAgICB2b2lkIHNldE5hbWVJbmRleChpbnQzMl90IGluZGV4KSB7IG1OYW1lSW5kZXggPSBpbmRleDsgfQotCi0gICAgICAgIGNvbnN0IEl0ZW0qIGdldEl0ZW0oKSBjb25zdCB7IHJldHVybiBtVHlwZSA9PSBUWVBFX0lURU0gPyAmbUl0ZW0gOiBOVUxMOyB9Ci0gICAgICAgIGNvbnN0IEtleWVkVmVjdG9yPFN0cmluZzE2LCBJdGVtPiYgZ2V0QmFnKCkgY29uc3QgeyByZXR1cm4gbUJhZzsgfQotCi0gICAgICAgIHN0YXR1c190IGdlbmVyYXRlQXR0cmlidXRlcyhSZXNvdXJjZVRhYmxlKiB0YWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlKTsKLQotICAgICAgICBzdGF0dXNfdCBhc3NpZ25SZXNvdXJjZUlkcyhSZXNvdXJjZVRhYmxlKiB0YWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIHBhY2thZ2UpOwotCi0gICAgICAgIHN0YXR1c190IHByZXBhcmVGbGF0dGVuKFN0cmluZ1Bvb2wqIHN0cmluZ3MsIFJlc291cmNlVGFibGUqIHRhYmxlLAotICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nOCogY29uZmlnVHlwZU5hbWUsIGNvbnN0IENvbmZpZ0Rlc2NyaXB0aW9uKiBjb25maWcpOwotCi0gICAgICAgIHN0YXR1c190IHJlbWFwU3RyaW5nVmFsdWUoU3RyaW5nUG9vbCogc3RyaW5ncyk7Ci0KLSAgICAgICAgc3NpemVfdCBmbGF0dGVuKEJ1bmRsZSosIGNvbnN0IHNwPEFhcHRGaWxlPiYgZGF0YSwgYm9vbCBpc1B1YmxpYyk7Ci0KLSAgICAgICAgY29uc3QgU291cmNlUG9zJiBnZXRQb3MoKSBjb25zdCB7IHJldHVybiBtUG9zOyB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBTdHJpbmcxNiBtTmFtZTsKLSAgICAgICAgU3RyaW5nMTYgbVBhcmVudDsKLSAgICAgICAgdHlwZSBtVHlwZTsKLSAgICAgICAgSXRlbSBtSXRlbTsKLSAgICAgICAgaW50MzJfdCBtSXRlbUZvcm1hdDsKLSAgICAgICAgS2V5ZWRWZWN0b3I8U3RyaW5nMTYsIEl0ZW0+IG1CYWc7Ci0gICAgICAgIGludDMyX3QgbU5hbWVJbmRleDsKLSAgICAgICAgdWludDMyX3QgbVBhcmVudElkOwotICAgICAgICBTb3VyY2VQb3MgbVBvczsKLSAgICB9OwotICAgIAotICAgIGNsYXNzIENvbmZpZ0xpc3QgOiBwdWJsaWMgUmVmQmFzZSB7Ci0gICAgcHVibGljOgotICAgICAgICBDb25maWdMaXN0KGNvbnN0IFN0cmluZzE2JiBuYW1lLCBjb25zdCBTb3VyY2VQb3MmIHBvcykKLSAgICAgICAgICAgIDogbU5hbWUobmFtZSksIG1Qb3MocG9zKSwgbVB1YmxpYyhmYWxzZSksIG1FbnRyeUluZGV4KC0xKSB7IH0KLSAgICAgICAgdmlydHVhbCB+Q29uZmlnTGlzdCgpIHsgfQotICAgICAgICAKLSAgICAgICAgU3RyaW5nMTYgZ2V0TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1OYW1lOyB9Ci0gICAgICAgIGNvbnN0IFNvdXJjZVBvcyYgZ2V0UG9zKCkgY29uc3QgeyByZXR1cm4gbVBvczsgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBhcHBlbmRDb21tZW50KGNvbnN0IFN0cmluZzE2JiBjb21tZW50LCBib29sIG9ubHlJZkVtcHR5ID0gZmFsc2UpOwotICAgICAgICBjb25zdCBTdHJpbmcxNiYgZ2V0Q29tbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1Db21tZW50OyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIGFwcGVuZFR5cGVDb21tZW50KGNvbnN0IFN0cmluZzE2JiBjb21tZW50KTsKLSAgICAgICAgY29uc3QgU3RyaW5nMTYmIGdldFR5cGVDb21tZW50KCkgY29uc3QgeyByZXR1cm4gbVR5cGVDb21tZW50OyB9Ci0gICAgICAgIAotICAgICAgICAvLyBJbmRleCBvZiB0aGlzIGVudHJ5IGluIGl0cyBUeXBlLgotICAgICAgICBpbnQzMl90IGdldEVudHJ5SW5kZXgoKSBjb25zdCB7IHJldHVybiBtRW50cnlJbmRleDsgfQotICAgICAgICB2b2lkIHNldEVudHJ5SW5kZXgoaW50MzJfdCBpbmRleCkgeyBtRW50cnlJbmRleCA9IGluZGV4OyB9Ci0gICAgICAgIAotICAgICAgICB2b2lkIHNldFB1YmxpYyhib29sIHB1YikgeyBtUHVibGljID0gcHViOyB9Ci0gICAgICAgIGJvb2wgZ2V0UHVibGljKCkgY29uc3QgeyByZXR1cm4gbVB1YmxpYzsgfQotICAgICAgICB2b2lkIHNldFB1YmxpY1NvdXJjZVBvcyhjb25zdCBTb3VyY2VQb3MmIHBvcykgeyBtUHVibGljU291cmNlUG9zID0gcG9zOyB9Ci0gICAgICAgIGNvbnN0IFNvdXJjZVBvcyYgZ2V0UHVibGljU291cmNlUG9zKCkgeyByZXR1cm4gbVB1YmxpY1NvdXJjZVBvczsgfQotICAgICAgICAKLSAgICAgICAgdm9pZCBhZGRFbnRyeShjb25zdCBSZXNUYWJsZV9jb25maWcmIGNvbmZpZywgY29uc3Qgc3A8RW50cnk+JiBlbnRyeSkgewotICAgICAgICAgICAgbUVudHJpZXMuYWRkKGNvbmZpZywgZW50cnkpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBjb25zdCBEZWZhdWx0S2V5ZWRWZWN0b3I8Q29uZmlnRGVzY3JpcHRpb24sIHNwPEVudHJ5PiA+JiBnZXRFbnRyaWVzKCkgY29uc3QgeyByZXR1cm4gbUVudHJpZXM7IH0KLSAgICBwcml2YXRlOgotICAgICAgICBjb25zdCBTdHJpbmcxNiBtTmFtZTsKLSAgICAgICAgY29uc3QgU291cmNlUG9zIG1Qb3M7Ci0gICAgICAgIFN0cmluZzE2IG1Db21tZW50OwotICAgICAgICBTdHJpbmcxNiBtVHlwZUNvbW1lbnQ7Ci0gICAgICAgIGJvb2wgbVB1YmxpYzsKLSAgICAgICAgU291cmNlUG9zIG1QdWJsaWNTb3VyY2VQb3M7Ci0gICAgICAgIGludDMyX3QgbUVudHJ5SW5kZXg7Ci0gICAgICAgIERlZmF1bHRLZXllZFZlY3RvcjxDb25maWdEZXNjcmlwdGlvbiwgc3A8RW50cnk+ID4gbUVudHJpZXM7Ci0gICAgfTsKLSAgICAKLSAgICBjbGFzcyBQdWJsaWMgewotICAgIHB1YmxpYzoKLSAgICAgICAgUHVibGljKCkgOiBzb3VyY2VQb3MoKSwgaWRlbnQoMCkgeyB9Ci0gICAgICAgIFB1YmxpYyhjb25zdCBTb3VyY2VQb3MmIHBvcywKLSAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBfY29tbWVudCwKLSAgICAgICAgICAgICAgIHVpbnQzMl90IF9pZGVudCkKLSAgICAgICAgICAgIDogc291cmNlUG9zKHBvcyksCi0gICAgICAgICAgICBjb21tZW50KF9jb21tZW50KSwgaWRlbnQoX2lkZW50KSB7IH0KLSAgICAgICAgUHVibGljKGNvbnN0IFB1YmxpYyYgbykgOiBzb3VyY2VQb3Moby5zb3VyY2VQb3MpLAotICAgICAgICAgICAgY29tbWVudChvLmNvbW1lbnQpLCBpZGVudChvLmlkZW50KSB7IH0KLSAgICAgICAgflB1YmxpYygpIHsgfQotICAgICAgICAKLSAgICAgICAgUHVibGljJiBvcGVyYXRvcj0oY29uc3QgUHVibGljJiBvKSB7Ci0gICAgICAgICAgICBzb3VyY2VQb3MgPSBvLnNvdXJjZVBvczsKLSAgICAgICAgICAgIGNvbW1lbnQgPSBvLmNvbW1lbnQ7Ci0gICAgICAgICAgICBpZGVudCA9IG8uaWRlbnQ7Ci0gICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIFNvdXJjZVBvcyAgIHNvdXJjZVBvczsKLSAgICAgICAgU3RyaW5nMTYgICAgY29tbWVudDsKLSAgICAgICAgdWludDMyX3QgICAgaWRlbnQ7Ci0gICAgfTsKLSAgICAKLSAgICBjbGFzcyBUeXBlIDogcHVibGljIFJlZkJhc2UgewotICAgIHB1YmxpYzoKLSAgICAgICAgVHlwZShjb25zdCBTdHJpbmcxNiYgbmFtZSwgY29uc3QgU291cmNlUG9zJiBwb3MpCi0gICAgICAgICAgICAgICAgOiBtTmFtZShuYW1lKSwgbUZpcnN0UHVibGljU291cmNlUG9zKE5VTEwpLCBtUHVibGljSW5kZXgoLTEpLCBtSW5kZXgoLTEpLCBtUG9zKHBvcykKLSAgICAgICAgeyB9Ci0gICAgICAgIHZpcnR1YWwgflR5cGUoKSB7IGRlbGV0ZSBtRmlyc3RQdWJsaWNTb3VyY2VQb3M7IH0KLQotICAgICAgICBzdGF0dXNfdCBhZGRQdWJsaWMoY29uc3QgU291cmNlUG9zJiBwb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90IGlkZW50KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICB2b2lkIGNhbkFkZEVudHJ5KGNvbnN0IFN0cmluZzE2JiBuYW1lKTsKLSAgICAgICAgCi0gICAgICAgIFN0cmluZzE2IGdldE5hbWUoKSBjb25zdCB7IHJldHVybiBtTmFtZTsgfQotICAgICAgICBzcDxFbnRyeT4gZ2V0RW50cnkoY29uc3QgU3RyaW5nMTYmIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU291cmNlUG9zJiBwb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNUYWJsZV9jb25maWcqIGNvbmZpZyA9IE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGRvU2V0SW5kZXggPSBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgb3ZlcmxheSA9IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBhdXRvQWRkT3ZlcmxheSA9IGZhbHNlKTsKLQotICAgICAgICBjb25zdCBTb3VyY2VQb3MmIGdldEZpcnN0UHVibGljU291cmNlUG9zKCkgY29uc3QgeyByZXR1cm4gKm1GaXJzdFB1YmxpY1NvdXJjZVBvczsgfQotCi0gICAgICAgIGludDMyX3QgZ2V0UHVibGljSW5kZXgoKSBjb25zdCB7IHJldHVybiBtUHVibGljSW5kZXg7IH0KLQotICAgICAgICBpbnQzMl90IGdldEluZGV4KCkgY29uc3QgeyByZXR1cm4gbUluZGV4OyB9Ci0gICAgICAgIHZvaWQgc2V0SW5kZXgoaW50MzJfdCBpbmRleCkgeyBtSW5kZXggPSBpbmRleDsgfQotCi0gICAgICAgIHN0YXR1c190IGFwcGx5UHVibGljRW50cnlPcmRlcigpOwotCi0gICAgICAgIGNvbnN0IFNvcnRlZFZlY3RvcjxDb25maWdEZXNjcmlwdGlvbj4mIGdldFVuaXF1ZUNvbmZpZ3MoKSBjb25zdCB7IHJldHVybiBtVW5pcXVlQ29uZmlnczsgfQotICAgICAgICAKLSAgICAgICAgY29uc3QgRGVmYXVsdEtleWVkVmVjdG9yPFN0cmluZzE2LCBzcDxDb25maWdMaXN0PiA+JiBnZXRDb25maWdzKCkgY29uc3QgeyByZXR1cm4gbUNvbmZpZ3M7IH0KLSAgICAgICAgY29uc3QgVmVjdG9yPHNwPENvbmZpZ0xpc3Q+ID4mIGdldE9yZGVyZWRDb25maWdzKCkgY29uc3QgeyByZXR1cm4gbU9yZGVyZWRDb25maWdzOyB9Ci0KLSAgICAgICAgY29uc3QgU29ydGVkVmVjdG9yPFN0cmluZzE2PiYgZ2V0Q2FuQWRkRW50cmllcygpIGNvbnN0IHsgcmV0dXJuIG1DYW5BZGRFbnRyaWVzOyB9Ci0gICAgICAgIAotICAgICAgICBjb25zdCBTb3VyY2VQb3MmIGdldFBvcygpIGNvbnN0IHsgcmV0dXJuIG1Qb3M7IH0KLSAgICBwcml2YXRlOgotICAgICAgICBTdHJpbmcxNiBtTmFtZTsKLSAgICAgICAgU291cmNlUG9zKiBtRmlyc3RQdWJsaWNTb3VyY2VQb3M7Ci0gICAgICAgIERlZmF1bHRLZXllZFZlY3RvcjxTdHJpbmcxNiwgUHVibGljPiBtUHVibGljOwotICAgICAgICBTb3J0ZWRWZWN0b3I8Q29uZmlnRGVzY3JpcHRpb24+IG1VbmlxdWVDb25maWdzOwotICAgICAgICBEZWZhdWx0S2V5ZWRWZWN0b3I8U3RyaW5nMTYsIHNwPENvbmZpZ0xpc3Q+ID4gbUNvbmZpZ3M7Ci0gICAgICAgIFZlY3RvcjxzcDxDb25maWdMaXN0PiA+IG1PcmRlcmVkQ29uZmlnczsKLSAgICAgICAgU29ydGVkVmVjdG9yPFN0cmluZzE2PiBtQ2FuQWRkRW50cmllczsKLSAgICAgICAgaW50MzJfdCBtUHVibGljSW5kZXg7Ci0gICAgICAgIGludDMyX3QgbUluZGV4OwotICAgICAgICBTb3VyY2VQb3MgbVBvczsKLSAgICB9OwotCi0gICAgY2xhc3MgUGFja2FnZSA6IHB1YmxpYyBSZWZCYXNlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFBhY2thZ2UoY29uc3QgU3RyaW5nMTYmIG5hbWUsIHNzaXplX3QgaW5jbHVkZWRJZD0tMSk7Ci0gICAgICAgIHZpcnR1YWwgflBhY2thZ2UoKSB7IH0KLQotICAgICAgICBTdHJpbmcxNiBnZXROYW1lKCkgY29uc3QgeyByZXR1cm4gbU5hbWU7IH0KLSAgICAgICAgc3A8VHlwZT4gZ2V0VHlwZShjb25zdCBTdHJpbmcxNiYgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTb3VyY2VQb3MmIHBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGRvU2V0SW5kZXggPSBmYWxzZSk7Ci0KLSAgICAgICAgc3NpemVfdCBnZXRBc3NpZ25lZElkKCkgY29uc3QgeyByZXR1cm4gbUluY2x1ZGVkSWQ7IH0KLQotICAgICAgICBjb25zdCBSZXNTdHJpbmdQb29sJiBnZXRUeXBlU3RyaW5ncygpIGNvbnN0IHsgcmV0dXJuIG1UeXBlU3RyaW5nczsgfQotICAgICAgICB1aW50MzJfdCBpbmRleE9mVHlwZVN0cmluZyhjb25zdCBTdHJpbmcxNiYgcykgY29uc3QgeyByZXR1cm4gbVR5cGVTdHJpbmdzTWFwcGluZy52YWx1ZUZvcihzKTsgfQotICAgICAgICBjb25zdCBzcDxBYXB0RmlsZT4gZ2V0VHlwZVN0cmluZ3NEYXRhKCkgY29uc3QgeyByZXR1cm4gbVR5cGVTdHJpbmdzRGF0YTsgfQotICAgICAgICBzdGF0dXNfdCBzZXRUeXBlU3RyaW5ncyhjb25zdCBzcDxBYXB0RmlsZT4mIGRhdGEpOwotCi0gICAgICAgIGNvbnN0IFJlc1N0cmluZ1Bvb2wmIGdldEtleVN0cmluZ3MoKSBjb25zdCB7IHJldHVybiBtS2V5U3RyaW5nczsgfQotICAgICAgICB1aW50MzJfdCBpbmRleE9mS2V5U3RyaW5nKGNvbnN0IFN0cmluZzE2JiBzKSBjb25zdCB7IHJldHVybiBtS2V5U3RyaW5nc01hcHBpbmcudmFsdWVGb3Iocyk7IH0KLSAgICAgICAgY29uc3Qgc3A8QWFwdEZpbGU+IGdldEtleVN0cmluZ3NEYXRhKCkgY29uc3QgeyByZXR1cm4gbUtleVN0cmluZ3NEYXRhOyB9Ci0gICAgICAgIHN0YXR1c190IHNldEtleVN0cmluZ3MoY29uc3Qgc3A8QWFwdEZpbGU+JiBkYXRhKTsKLQotICAgICAgICBzdGF0dXNfdCBhcHBseVB1YmxpY1R5cGVPcmRlcigpOwotCi0gICAgICAgIGNvbnN0IERlZmF1bHRLZXllZFZlY3RvcjxTdHJpbmcxNiwgc3A8VHlwZT4gPiYgZ2V0VHlwZXMoKSBjb25zdCB7IHJldHVybiBtVHlwZXM7IH0KLSAgICAgICAgY29uc3QgVmVjdG9yPHNwPFR5cGU+ID4mIGdldE9yZGVyZWRUeXBlcygpIGNvbnN0IHsgcmV0dXJuIG1PcmRlcmVkVHlwZXM7IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXR1c190IHNldFN0cmluZ3MoY29uc3Qgc3A8QWFwdEZpbGU+JiBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc1N0cmluZ1Bvb2wqIHN0cmluZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdEtleWVkVmVjdG9yPFN0cmluZzE2LCB1aW50MzJfdD4qIG1hcHBpbmdzKTsKLQotICAgICAgICBjb25zdCBTdHJpbmcxNiBtTmFtZTsKLSAgICAgICAgY29uc3Qgc3NpemVfdCBtSW5jbHVkZWRJZDsKLSAgICAgICAgRGVmYXVsdEtleWVkVmVjdG9yPFN0cmluZzE2LCBzcDxUeXBlPiA+IG1UeXBlczsKLSAgICAgICAgVmVjdG9yPHNwPFR5cGU+ID4gbU9yZGVyZWRUeXBlczsKLSAgICAgICAgc3A8QWFwdEZpbGU+IG1UeXBlU3RyaW5nc0RhdGE7Ci0gICAgICAgIHNwPEFhcHRGaWxlPiBtS2V5U3RyaW5nc0RhdGE7Ci0gICAgICAgIFJlc1N0cmluZ1Bvb2wgbVR5cGVTdHJpbmdzOwotICAgICAgICBSZXNTdHJpbmdQb29sIG1LZXlTdHJpbmdzOwotICAgICAgICBEZWZhdWx0S2V5ZWRWZWN0b3I8U3RyaW5nMTYsIHVpbnQzMl90PiBtVHlwZVN0cmluZ3NNYXBwaW5nOwotICAgICAgICBEZWZhdWx0S2V5ZWRWZWN0b3I8U3RyaW5nMTYsIHVpbnQzMl90PiBtS2V5U3RyaW5nc01hcHBpbmc7Ci0gICAgfTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIHdyaXRlUHVibGljRGVmaW5pdGlvbnMoY29uc3QgU3RyaW5nMTYmIHBhY2thZ2UsIEZJTEUqIGZwLCBib29sIHB1Yik7Ci0gICAgc3A8UGFja2FnZT4gZ2V0UGFja2FnZShjb25zdCBTdHJpbmcxNiYgcGFja2FnZSk7Ci0gICAgc3A8VHlwZT4gZ2V0VHlwZShjb25zdCBTdHJpbmcxNiYgcGFja2FnZSwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgY29uc3QgU291cmNlUG9zJiBwb3MsCi0gICAgICAgICAgICAgICAgICAgICBib29sIGRvU2V0SW5kZXggPSBmYWxzZSk7Ci0gICAgc3A8RW50cnk+IGdldEVudHJ5KGNvbnN0IFN0cmluZzE2JiBwYWNrYWdlLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcxNiYgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNvdXJjZVBvcyYgcG9zLAotICAgICAgICAgICAgICAgICAgICAgICBib29sIG92ZXJsYXksCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyogY29uZmlnID0gTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkb1NldEluZGV4ID0gZmFsc2UpOwotICAgIHNwPGNvbnN0IEVudHJ5PiBnZXRFbnRyeSh1aW50MzJfdCByZXNJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzVGFibGVfY29uZmlnKiBjb25maWcgPSBOVUxMKSBjb25zdDsKLSAgICBjb25zdCBJdGVtKiBnZXRJdGVtKHVpbnQzMl90IHJlc0lELCB1aW50MzJfdCBhdHRySUQpIGNvbnN0OwotICAgIGJvb2wgZ2V0SXRlbVZhbHVlKHVpbnQzMl90IHJlc0lELCB1aW50MzJfdCBhdHRySUQsCi0gICAgICAgICAgICAgICAgICAgICAgUmVzX3ZhbHVlKiBvdXRWYWx1ZSk7Ci0KLQotICAgIFN0cmluZzE2IG1Bc3NldHNQYWNrYWdlOwotICAgIHNwPEFhcHRBc3NldHM+IG1Bc3NldHM7Ci0gICAgRGVmYXVsdEtleWVkVmVjdG9yPFN0cmluZzE2LCBzcDxQYWNrYWdlPiA+IG1QYWNrYWdlczsKLSAgICBWZWN0b3I8c3A8UGFja2FnZT4gPiBtT3JkZXJlZFBhY2thZ2VzOwotICAgIHVpbnQzMl90IG1OZXh0UGFja2FnZUlkOwotICAgIGJvb2wgbUhhdmVBcHBQYWNrYWdlOwotICAgIGJvb2wgbUlzQXBwUGFja2FnZTsKLSAgICBzaXplX3QgbU51bUxvY2FsOwotICAgIFNvdXJjZVBvcyBtQ3VycmVudFhtbFBvczsKLSAgICBCdW5kbGUqIG1CdW5kbGU7Ci0gICAgCi0gICAgLy8ga2V5ID0gc3RyaW5nIHJlc291cmNlIG5hbWUsIHZhbHVlID0gc2V0IG9mIGxvY2FsZXMgaW4gd2hpY2ggdGhhdCBuYW1lIGlzIGRlZmluZWQKLSAgICBtYXA8U3RyaW5nMTYsIHNldDxTdHJpbmc4PiA+IG1Mb2NhbGl6YXRpb25zOwotfTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS90b29scy9hYXB0L1NvdXJjZVBvcy5jcHAgYi90b29scy9hYXB0L1NvdXJjZVBvcy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyYTkyMWMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9Tb3VyY2VQb3MuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTcxICswLDAgQEAKLSNpbmNsdWRlICJTb3VyY2VQb3MuaCIKLQotI2luY2x1ZGUgPHN0ZGFyZy5oPgotI2luY2x1ZGUgPHZlY3Rvcj4KLQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotCi0vLyBFcnJvclBvcwotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLXN0cnVjdCBFcnJvclBvcwotewotICAgIFN0cmluZzggZmlsZTsKLSAgICBpbnQgbGluZTsKLSAgICBTdHJpbmc4IGVycm9yOwotICAgIGJvb2wgZmF0YWw7Ci0KLSAgICBFcnJvclBvcygpOwotICAgIEVycm9yUG9zKGNvbnN0IEVycm9yUG9zJiB0aGF0KTsKLSAgICBFcnJvclBvcyhjb25zdCBTdHJpbmc4JiBmaWxlLCBpbnQgbGluZSwgY29uc3QgU3RyaW5nOCYgZXJyb3IsIGJvb2wgZmF0YWwpOwotICAgIH5FcnJvclBvcygpOwotICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IEVycm9yUG9zJiByaHMpIGNvbnN0OwotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFcnJvclBvcyYgcmhzKSBjb25zdDsKLSAgICBFcnJvclBvcyYgb3BlcmF0b3I9KGNvbnN0IEVycm9yUG9zJiByaHMpOwotCi0gICAgdm9pZCBwcmludChGSUxFKiB0bykgY29uc3Q7Ci19OwotCi1zdGF0aWMgdmVjdG9yPEVycm9yUG9zPiBnX2Vycm9yczsKLQotRXJyb3JQb3M6OkVycm9yUG9zKCkKLSAgICA6bGluZSgtMSksIGZhdGFsKGZhbHNlKQotewotfQotCi1FcnJvclBvczo6RXJyb3JQb3MoY29uc3QgRXJyb3JQb3MmIHRoYXQpCi0gICAgOmZpbGUodGhhdC5maWxlKSwKLSAgICAgbGluZSh0aGF0LmxpbmUpLAotICAgICBlcnJvcih0aGF0LmVycm9yKSwKLSAgICAgZmF0YWwodGhhdC5mYXRhbCkKLXsKLX0KLQotRXJyb3JQb3M6OkVycm9yUG9zKGNvbnN0IFN0cmluZzgmIGYsIGludCBsLCBjb25zdCBTdHJpbmc4JiBlLCBib29sIGZhdCkKLSAgICA6ZmlsZShmKSwKLSAgICAgbGluZShsKSwKLSAgICAgZXJyb3IoZSksCi0gICAgIGZhdGFsKGZhdCkKLXsKLX0KLQotRXJyb3JQb3M6On5FcnJvclBvcygpCi17Ci19Ci0KLWJvb2wKLUVycm9yUG9zOjpvcGVyYXRvcjwoY29uc3QgRXJyb3JQb3MmIHJocykgY29uc3QKLXsKLSAgICBpZiAodGhpcy0+ZmlsZSA8IHJocy5maWxlKSByZXR1cm4gdHJ1ZTsKLSAgICBpZiAodGhpcy0+ZmlsZSA9PSByaHMuZmlsZSkgewotICAgICAgICBpZiAodGhpcy0+bGluZSA8IHJocy5saW5lKSByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKHRoaXMtPmxpbmUgPT0gcmhzLmxpbmUpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLT5lcnJvciA8IHJocy5lcnJvcikgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sCi1FcnJvclBvczo6b3BlcmF0b3I9PShjb25zdCBFcnJvclBvcyYgcmhzKSBjb25zdAotewotICAgIHJldHVybiB0aGlzLT5maWxlID09IHJocy5maWxlCi0gICAgICAgICAgICAmJiB0aGlzLT5saW5lID09IHJocy5saW5lCi0gICAgICAgICAgICAmJiB0aGlzLT5lcnJvciA9PSByaHMuZXJyb3I7Ci19Ci0KLUVycm9yUG9zJgotRXJyb3JQb3M6Om9wZXJhdG9yPShjb25zdCBFcnJvclBvcyYgcmhzKQotewotICAgIHRoaXMtPmZpbGUgPSByaHMuZmlsZTsKLSAgICB0aGlzLT5saW5lID0gcmhzLmxpbmU7Ci0gICAgdGhpcy0+ZXJyb3IgPSByaHMuZXJyb3I7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi12b2lkCi1FcnJvclBvczo6cHJpbnQoRklMRSogdG8pIGNvbnN0Ci17Ci0gICAgY29uc3QgY2hhciogdHlwZSA9IGZhdGFsID8gImVycm9yOiIgOiAid2FybmluZzoiOwotICAgIAotICAgIGlmICh0aGlzLT5saW5lID49IDApIHsKLSAgICAgICAgZnByaW50Zih0bywgIiVzOiVkOiAlcyAlc1xuIiwgdGhpcy0+ZmlsZS5zdHJpbmcoKSwgdGhpcy0+bGluZSwgdHlwZSwgdGhpcy0+ZXJyb3Iuc3RyaW5nKCkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGZwcmludGYodG8sICIlczogJXMgJXNcbiIsIHRoaXMtPmZpbGUuc3RyaW5nKCksIHR5cGUsIHRoaXMtPmVycm9yLnN0cmluZygpKTsKLSAgICB9Ci19Ci0KLS8vIFNvdXJjZVBvcwotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLVNvdXJjZVBvczo6U291cmNlUG9zKGNvbnN0IFN0cmluZzgmIGYsIGludCBsKQotICAgIDogZmlsZShmKSwgbGluZShsKQotewotfQotCi1Tb3VyY2VQb3M6OlNvdXJjZVBvcyhjb25zdCBTb3VyY2VQb3MmIHRoYXQpCi0gICAgOiBmaWxlKHRoYXQuZmlsZSksIGxpbmUodGhhdC5saW5lKQotewotfQotCi1Tb3VyY2VQb3M6OlNvdXJjZVBvcygpCi0gICAgOiBmaWxlKCI/Pz8iLCAwKSwgbGluZSgtMSkKLXsKLX0KLQotU291cmNlUG9zOjp+U291cmNlUG9zKCkKLXsKLX0KLQotaW50Ci1Tb3VyY2VQb3M6OmVycm9yKGNvbnN0IGNoYXIqIGZtdCwgLi4uKSBjb25zdAotewotICAgIGludCByZXR2YWw9MDsKLSAgICBjaGFyIGJ1ZlsxMDI0XTsKLSAgICB2YV9saXN0IGFwOwotICAgIHZhX3N0YXJ0KGFwLCBmbXQpOwotICAgIHJldHZhbCA9IHZzbnByaW50ZihidWYsIHNpemVvZihidWYpLCBmbXQsIGFwKTsKLSAgICB2YV9lbmQoYXApOwotICAgIGNoYXIqIHAgPSBidWYgKyByZXR2YWwgLSAxOwotICAgIHdoaWxlIChwID4gYnVmICYmICpwID09ICdcbicpIHsKLSAgICAgICAgKnAgPSAnXDAnOwotICAgICAgICBwLS07Ci0gICAgfQotICAgIGdfZXJyb3JzLnB1c2hfYmFjayhFcnJvclBvcyh0aGlzLT5maWxlLCB0aGlzLT5saW5lLCBTdHJpbmc4KGJ1ZiksIHRydWUpKTsKLSAgICByZXR1cm4gcmV0dmFsOwotfQotCi1pbnQKLVNvdXJjZVBvczo6d2FybmluZyhjb25zdCBjaGFyKiBmbXQsIC4uLikgY29uc3QKLXsKLSAgICBpbnQgcmV0dmFsPTA7Ci0gICAgY2hhciBidWZbMTAyNF07Ci0gICAgdmFfbGlzdCBhcDsKLSAgICB2YV9zdGFydChhcCwgZm10KTsKLSAgICByZXR2YWwgPSB2c25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgZm10LCBhcCk7Ci0gICAgdmFfZW5kKGFwKTsKLSAgICBjaGFyKiBwID0gYnVmICsgcmV0dmFsIC0gMTsKLSAgICB3aGlsZSAocCA+IGJ1ZiAmJiAqcCA9PSAnXG4nKSB7Ci0gICAgICAgICpwID0gJ1wwJzsKLSAgICAgICAgcC0tOwotICAgIH0KLSAgICBFcnJvclBvcyh0aGlzLT5maWxlLCB0aGlzLT5saW5lLCBTdHJpbmc4KGJ1ZiksIGZhbHNlKS5wcmludChzdGRlcnIpOwotICAgIHJldHVybiByZXR2YWw7Ci19Ci0KLWJvb2wKLVNvdXJjZVBvczo6aGFzRXJyb3JzKCkKLXsKLSAgICByZXR1cm4gZ19lcnJvcnMuc2l6ZSgpID4gMDsKLX0KLQotdm9pZAotU291cmNlUG9zOjpwcmludEVycm9ycyhGSUxFKiB0bykKLXsKLSAgICB2ZWN0b3I8RXJyb3JQb3M+Ojpjb25zdF9pdGVyYXRvciBpdDsKLSAgICBmb3IgKGl0PWdfZXJyb3JzLmJlZ2luKCk7IGl0IT1nX2Vycm9ycy5lbmQoKTsgaXQrKykgewotICAgICAgICBpdC0+cHJpbnQodG8pOwotICAgIH0KLX0KLQotCi0KZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvU291cmNlUG9zLmggYi90b29scy9hYXB0L1NvdXJjZVBvcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzM2Y3MmE5Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvU291cmNlUG9zLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0jaWZuZGVmIFNPVVJDRVBPU19ICi0jZGVmaW5lIFNPVVJDRVBPU19ICi0KLSNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLQotdXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ7Ci0KLWNsYXNzIFNvdXJjZVBvcwotewotcHVibGljOgotICAgIFN0cmluZzggZmlsZTsKLSAgICBpbnQgbGluZTsKLQotICAgIFNvdXJjZVBvcyhjb25zdCBTdHJpbmc4JiBmLCBpbnQgbCk7Ci0gICAgU291cmNlUG9zKGNvbnN0IFNvdXJjZVBvcyYgdGhhdCk7Ci0gICAgU291cmNlUG9zKCk7Ci0gICAgflNvdXJjZVBvcygpOwotCi0gICAgaW50IGVycm9yKGNvbnN0IGNoYXIqIGZtdCwgLi4uKSBjb25zdDsKLSAgICBpbnQgd2FybmluZyhjb25zdCBjaGFyKiBmbXQsIC4uLikgY29uc3Q7Ci0KLSAgICBzdGF0aWMgYm9vbCBoYXNFcnJvcnMoKTsKLSAgICBzdGF0aWMgdm9pZCBwcmludEVycm9ycyhGSUxFKiB0byk7Ci19OwotCi0KLSNlbmRpZiAvLyBTT1VSQ0VQT1NfSApkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC9TdHJpbmdQb29sLmNwcCBiL3Rvb2xzL2FhcHQvU3RyaW5nUG9vbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1OGIzOTEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9TdHJpbmdQb29sLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU3NCArMCwwIEBACi0vLwotLy8gQ29weXJpZ2h0IDIwMDYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotLy8KLS8vIEJ1aWxkIHJlc291cmNlIGZpbGVzIGZyb20gcmF3IGFzc2V0cy4KLS8vCi0KLSNpbmNsdWRlICJTdHJpbmdQb29sLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VUYWJsZS5oIgotCi0jaW5jbHVkZSA8dXRpbHMvQnl0ZU9yZGVyLmg+Ci0jaW5jbHVkZSA8dXRpbHMvU29ydGVkVmVjdG9yLmg+Ci0jaW5jbHVkZSAicXNvcnRfcl9jb21wYXQuaCIKLQotI2lmIEhBVkVfUFJJTlRGX1pECi0jICBkZWZpbmUgWkQgIiV6ZCIKLSMgIGRlZmluZSBaRF9UWVBFIHNzaXplX3QKLSNlbHNlCi0jICBkZWZpbmUgWkQgIiVsZCIKLSMgIGRlZmluZSBaRF9UWVBFIGxvbmcKLSNlbmRpZgotCi0jZGVmaW5lIE5PSVNZKHgpIC8veAotCi12b2lkIHN0cmNweTE2X2h0b2QodWludDE2X3QqIGRzdCwgY29uc3QgdWludDE2X3QqIHNyYykKLXsKLSAgICB3aGlsZSAoKnNyYykgewotICAgICAgICBjaGFyMTZfdCBzID0gaHRvZHMoKnNyYyk7Ci0gICAgICAgICpkc3QrKyA9IHM7Ci0gICAgICAgIHNyYysrOwotICAgIH0KLSAgICAqZHN0ID0gMDsKLX0KLQotdm9pZCBwcmludFN0cmluZ1Bvb2woY29uc3QgUmVzU3RyaW5nUG9vbCogcG9vbCkKLXsKLSAgICBTb3J0ZWRWZWN0b3I8Y29uc3Qgdm9pZCo+IHVuaXF1ZVN0cmluZ3M7Ci0gICAgY29uc3Qgc2l6ZV90IE4gPSBwb29sLT5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICBzaXplX3QgbGVuOwotICAgICAgICBpZiAocG9vbC0+aXNVVEY4KCkpIHsKLSAgICAgICAgICAgIHVuaXF1ZVN0cmluZ3MuYWRkKHBvb2wtPnN0cmluZzhBdChpLCAmbGVuKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB1bmlxdWVTdHJpbmdzLmFkZChwb29sLT5zdHJpbmdBdChpLCAmbGVuKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcmludGYoIlN0cmluZyBwb29sIG9mICIgWkQgIiB1bmlxdWUgJXMgJXMgc3RyaW5ncywgIiBaRCAiIGVudHJpZXMgYW5kICIKLSAgICAgICAgICAgIFpEICIgc3R5bGVzIHVzaW5nICIgWkQgIiBieXRlczpcbiIsCi0gICAgICAgICAgICAoWkRfVFlQRSl1bmlxdWVTdHJpbmdzLnNpemUoKSwgcG9vbC0+aXNVVEY4KCkgPyAiVVRGLTgiIDogIlVURi0xNiIsCi0gICAgICAgICAgICBwb29sLT5pc1NvcnRlZCgpID8gInNvcnRlZCIgOiAibm9uLXNvcnRlZCIsCi0gICAgICAgICAgICAoWkRfVFlQRSlOLCAoWkRfVFlQRSlwb29sLT5zdHlsZUNvdW50KCksIChaRF9UWVBFKXBvb2wtPmJ5dGVzKCkpOwotCi0gICAgY29uc3Qgc2l6ZV90IE5TID0gcG9vbC0+c2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IHM9MDsgczxOUzsgcysrKSB7Ci0gICAgICAgIFN0cmluZzggc3RyID0gcG9vbC0+c3RyaW5nOE9iamVjdEF0KHMpOwotICAgICAgICBwcmludGYoIlN0cmluZyAjIiBaRCAiOiAlc1xuIiwgKFpEX1RZUEUpIHMsIHN0ci5zdHJpbmcoKSk7Ci0gICAgfQotfQotCi1TdHJpbmc4IFN0cmluZ1Bvb2w6OmVudHJ5OjptYWtlQ29uZmlnc1N0cmluZygpIGNvbnN0IHsKLSAgICBTdHJpbmc4IGNvbmZpZ1N0cihjb25maWdUeXBlTmFtZSk7Ci0gICAgaWYgKGNvbmZpZ1N0ci5zaXplKCkgPiAwKSBjb25maWdTdHIuYXBwZW5kKCIgIik7Ci0gICAgaWYgKGNvbmZpZ3Muc2l6ZSgpID4gMCkgewotICAgICAgICBmb3IgKHNpemVfdCBqPTA7IGo8Y29uZmlncy5zaXplKCk7IGorKykgewotICAgICAgICAgICAgaWYgKGogPiAwKSBjb25maWdTdHIuYXBwZW5kKCIsICIpOwotICAgICAgICAgICAgY29uZmlnU3RyLmFwcGVuZChjb25maWdzW2pdLnRvU3RyaW5nKCkpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgY29uZmlnU3RyID0gIihub25lKSI7Ci0gICAgfQotICAgIHJldHVybiBjb25maWdTdHI7Ci19Ci0KLWludCBTdHJpbmdQb29sOjplbnRyeTo6Y29tcGFyZShjb25zdCBlbnRyeSYgbykgY29uc3QgewotICAgIC8vIFN0cmluZ3Mgd2l0aCBzdHlsZXMgZ28gZmlyc3QsIHRvIHJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgc3R5bGVzIGFycmF5LgotICAgIC8vIFdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIHJlbGF0aXZlIG9yZGVyIG9mIHRoZXNlIHN0cmluZ3MuCi0gICAgaWYgKGhhc1N0eWxlcykgewotICAgICAgICByZXR1cm4gby5oYXNTdHlsZXMgPyAwIDogLTE7Ci0gICAgfQotICAgIGlmIChvLmhhc1N0eWxlcykgewotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICAvLyBTb3J0IHVuc3R5bGVkIHN0cmluZ3MgYnkgdHlwZSwgdGhlbiBieSBsb2dpY2FsIGNvbmZpZ3VyYXRpb24uCi0gICAgaW50IGNvbXAgPSBjb25maWdUeXBlTmFtZS5jb21wYXJlKG8uY29uZmlnVHlwZU5hbWUpOwotICAgIGlmIChjb21wICE9IDApIHsKLSAgICAgICAgcmV0dXJuIGNvbXA7Ci0gICAgfQotICAgIGNvbnN0IHNpemVfdCBMSE4gPSBjb25maWdzLnNpemUoKTsKLSAgICBjb25zdCBzaXplX3QgUkhOID0gby5jb25maWdzLnNpemUoKTsKLSAgICBzaXplX3QgaT0wOwotICAgIHdoaWxlIChpIDwgTEhOICYmIGkgPCBSSE4pIHsKLSAgICAgICAgY29tcCA9IGNvbmZpZ3NbaV0uY29tcGFyZUxvZ2ljYWwoby5jb25maWdzW2ldKTsKLSAgICAgICAgaWYgKGNvbXAgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIGNvbXA7Ci0gICAgICAgIH0KLSAgICAgICAgaSsrOwotICAgIH0KLSAgICBpZiAoTEhOIDwgUkhOKSByZXR1cm4gLTE7Ci0gICAgZWxzZSBpZiAoTEhOID4gUkhOKSByZXR1cm4gMTsKLSAgICByZXR1cm4gMDsKLX0KLQotU3RyaW5nUG9vbDo6U3RyaW5nUG9vbChib29sIHV0ZjgpIDoKLSAgICAgICAgbVVURjgodXRmOCksIG1WYWx1ZXMoLTEpCi17Ci19Ci0KLXNzaXplX3QgU3RyaW5nUG9vbDo6YWRkKGNvbnN0IFN0cmluZzE2JiB2YWx1ZSwgY29uc3QgVmVjdG9yPGVudHJ5X3N0eWxlX3NwYW4+JiBzcGFucywKLSAgICAgICAgY29uc3QgU3RyaW5nOCogY29uZmlnVHlwZU5hbWUsIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyogY29uZmlnKQotewotICAgIHNzaXplX3QgcmVzID0gYWRkKHZhbHVlLCBmYWxzZSwgY29uZmlnVHlwZU5hbWUsIGNvbmZpZyk7Ci0gICAgaWYgKHJlcyA+PSAwKSB7Ci0gICAgICAgIGFkZFN0eWxlU3BhbnMocmVzLCBzcGFucyk7Ci0gICAgfQotICAgIHJldHVybiByZXM7Ci19Ci0KLXNzaXplX3QgU3RyaW5nUG9vbDo6YWRkKGNvbnN0IFN0cmluZzE2JiB2YWx1ZSwKLSAgICAgICAgYm9vbCBtZXJnZUR1cGxpY2F0ZXMsIGNvbnN0IFN0cmluZzgqIGNvbmZpZ1R5cGVOYW1lLCBjb25zdCBSZXNUYWJsZV9jb25maWcqIGNvbmZpZykKLXsKLSAgICBzc2l6ZV90IHZpZHggPSBtVmFsdWVzLmluZGV4T2ZLZXkodmFsdWUpOwotICAgIHNzaXplX3QgcG9zID0gdmlkeCA+PSAwID8gbVZhbHVlcy52YWx1ZUF0KHZpZHgpIDogLTE7Ci0gICAgc3NpemVfdCBlaWR4ID0gcG9zID49IDAgPyBtRW50cnlBcnJheS5pdGVtQXQocG9zKSA6IC0xOwotICAgIGlmIChlaWR4IDwgMCkgewotICAgICAgICBlaWR4ID0gbUVudHJpZXMuYWRkKGVudHJ5KHZhbHVlKSk7Ci0gICAgICAgIGlmIChlaWR4IDwgMCkgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsdXJlIGFkZGluZyBzdHJpbmcgJXNcbiIsIFN0cmluZzgodmFsdWUpLnN0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybiBlaWR4OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGNvbmZpZ1R5cGVOYW1lICE9IE5VTEwpIHsKLSAgICAgICAgZW50cnkmIGVudCA9IG1FbnRyaWVzLmVkaXRJdGVtQXQoZWlkeCk7Ci0gICAgICAgIE5PSVNZKHByaW50ZigiKioqIGFkZGluZyBjb25maWcgdHlwZSBuYW1lICVzLCB3YXMgJXNcbiIsCi0gICAgICAgICAgICAgICAgY29uZmlnVHlwZU5hbWUtPnN0cmluZygpLCBlbnQuY29uZmlnVHlwZU5hbWUuc3RyaW5nKCkpKTsKLSAgICAgICAgaWYgKGVudC5jb25maWdUeXBlTmFtZS5zaXplKCkgPD0gMCkgewotICAgICAgICAgICAgZW50LmNvbmZpZ1R5cGVOYW1lID0gKmNvbmZpZ1R5cGVOYW1lOwotICAgICAgICB9IGVsc2UgaWYgKGVudC5jb25maWdUeXBlTmFtZSAhPSAqY29uZmlnVHlwZU5hbWUpIHsKLSAgICAgICAgICAgIGVudC5jb25maWdUeXBlTmFtZSA9ICIgIjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChjb25maWcgIT0gTlVMTCkgewotICAgICAgICAvLyBBZGQgdGhpcyB0byB0aGUgc2V0IG9mIGNvbmZpZ3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdHJpbmcuCi0gICAgICAgIGVudHJ5JiBlbnQgPSBtRW50cmllcy5lZGl0SXRlbUF0KGVpZHgpOwotICAgICAgICBzaXplX3QgYWRkUG9zOwotICAgICAgICBmb3IgKGFkZFBvcz0wOyBhZGRQb3M8ZW50LmNvbmZpZ3Muc2l6ZSgpOyBhZGRQb3MrKykgewotICAgICAgICAgICAgaW50IGNtcCA9IGVudC5jb25maWdzLml0ZW1BdChhZGRQb3MpLmNvbXBhcmVMb2dpY2FsKCpjb25maWcpOwotICAgICAgICAgICAgaWYgKGNtcCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNtcCA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgTk9JU1kocHJpbnRmKCIqKiogaW5zZXJ0aW5nIGNvbmZpZzogJXNcbiIsIGNvbmZpZy0+dG9TdHJpbmcoKS5zdHJpbmcoKSkpOwotICAgICAgICAgICAgICAgICAgICBlbnQuY29uZmlncy5pbnNlcnRBdCgqY29uZmlnLCBhZGRQb3MpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoYWRkUG9zID49IGVudC5jb25maWdzLnNpemUoKSkgewotICAgICAgICAgICAgTk9JU1kocHJpbnRmKCIqKiogYWRkaW5nIGNvbmZpZzogJXNcbiIsIGNvbmZpZy0+dG9TdHJpbmcoKS5zdHJpbmcoKSkpOwotICAgICAgICAgICAgZW50LmNvbmZpZ3MuYWRkKCpjb25maWcpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgY29uc3QgYm9vbCBmaXJzdCA9IHZpZHggPCAwOwotICAgIGNvbnN0IGJvb2wgc3R5bGVkID0gKHBvcyA+PSAwICYmIChzaXplX3QpcG9zIDwgbUVudHJ5U3R5bGVBcnJheS5zaXplKCkpID8KLSAgICAgICAgbUVudHJ5U3R5bGVBcnJheVtwb3NdLnNwYW5zLnNpemUoKSA6IDA7Ci0gICAgaWYgKGZpcnN0IHx8IHN0eWxlZCB8fCAhbWVyZ2VEdXBsaWNhdGVzKSB7Ci0gICAgICAgIHBvcyA9IG1FbnRyeUFycmF5LmFkZChlaWR4KTsKLSAgICAgICAgaWYgKGZpcnN0KSB7Ci0gICAgICAgICAgICB2aWR4ID0gbVZhbHVlcy5hZGQodmFsdWUsIHBvcyk7Ci0gICAgICAgIH0KLSAgICAgICAgZW50cnkmIGVudCA9IG1FbnRyaWVzLmVkaXRJdGVtQXQoZWlkeCk7Ci0gICAgICAgIGVudC5pbmRpY2VzLmFkZChwb3MpOwotICAgIH0KLQotICAgIE5PSVNZKHByaW50ZigiQWRkaW5nIHN0cmluZyAlcyB0byBwb29sOiBwb3M9JWQgZWlkeD0lZCB2aWR4PSVkXG4iLAotICAgICAgICAgICAgU3RyaW5nOCh2YWx1ZSkuc3RyaW5nKCksIHBvcywgZWlkeCwgdmlkeCkpOwotICAgIAotICAgIHJldHVybiBwb3M7Ci19Ci0KLXN0YXR1c190IFN0cmluZ1Bvb2w6OmFkZFN0eWxlU3BhbihzaXplX3QgaWR4LCBjb25zdCBTdHJpbmcxNiYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzdGFydCwgdWludDMyX3QgZW5kKQotewotICAgIGVudHJ5X3N0eWxlX3NwYW4gc3BhbjsKLSAgICBzcGFuLm5hbWUgPSBuYW1lOwotICAgIHNwYW4uc3Bhbi5maXJzdENoYXIgPSBzdGFydDsKLSAgICBzcGFuLnNwYW4ubGFzdENoYXIgPSBlbmQ7Ci0gICAgcmV0dXJuIGFkZFN0eWxlU3BhbihpZHgsIHNwYW4pOwotfQotCi1zdGF0dXNfdCBTdHJpbmdQb29sOjphZGRTdHlsZVNwYW5zKHNpemVfdCBpZHgsIGNvbnN0IFZlY3RvcjxlbnRyeV9zdHlsZV9zcGFuPiYgc3BhbnMpCi17Ci0gICAgY29uc3Qgc2l6ZV90IE49c3BhbnMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgc3RhdHVzX3QgZXJyID0gYWRkU3R5bGVTcGFuKGlkeCwgc3BhbnNbaV0pOwotICAgICAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICByZXR1cm4gZXJyOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3RhdHVzX3QgU3RyaW5nUG9vbDo6YWRkU3R5bGVTcGFuKHNpemVfdCBpZHgsIGNvbnN0IGVudHJ5X3N0eWxlX3NwYW4mIHNwYW4pCi17Ci0gICAgLy8gUGxhY2UgYmxhbmsgZW50cmllcyBpbiB0aGUgc3BhbiBhcnJheSB1cCB0byB0aGlzIGluZGV4LgotICAgIHdoaWxlIChtRW50cnlTdHlsZUFycmF5LnNpemUoKSA8PSBpZHgpIHsKLSAgICAgICAgbUVudHJ5U3R5bGVBcnJheS5hZGQoKTsKLSAgICB9Ci0KLSAgICBlbnRyeV9zdHlsZSYgc3R5bGUgPSBtRW50cnlTdHlsZUFycmF5LmVkaXRJdGVtQXQoaWR4KTsKLSAgICBzdHlsZS5zcGFucy5hZGQoc3Bhbik7Ci0gICAgbUVudHJpZXMuZWRpdEl0ZW1BdChtRW50cnlBcnJheVtpZHhdKS5oYXNTdHlsZXMgPSB0cnVlOwotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotaW50IFN0cmluZ1Bvb2w6OmNvbmZpZ19zb3J0KHZvaWQqIHN0YXRlLCBjb25zdCB2b2lkKiBsaHMsIGNvbnN0IHZvaWQqIHJocykKLXsKLSAgICBTdHJpbmdQb29sKiBwb29sID0gKFN0cmluZ1Bvb2wqKXN0YXRlOwotICAgIGNvbnN0IGVudHJ5JiBsaGUgPSBwb29sLT5tRW50cmllc1twb29sLT5tRW50cnlBcnJheVsqc3RhdGljX2Nhc3Q8Y29uc3Qgc2l6ZV90Kj4obGhzKV1dOwotICAgIGNvbnN0IGVudHJ5JiByaGUgPSBwb29sLT5tRW50cmllc1twb29sLT5tRW50cnlBcnJheVsqc3RhdGljX2Nhc3Q8Y29uc3Qgc2l6ZV90Kj4ocmhzKV1dOwotICAgIHJldHVybiBsaGUuY29tcGFyZShyaGUpOwotfQotCi12b2lkIFN0cmluZ1Bvb2w6OnNvcnRCeUNvbmZpZygpCi17Ci0gICAgTE9HX0FMV0FZU19GQVRBTF9JRihtT3JpZ2luYWxQb3NUb05ld1Bvcy5zaXplKCkgPiAwLCAiQ2FuJ3Qgc29ydCBzdHJpbmcgcG9vbCBhZnRlciBhbHJlYWR5IHNvcnRlZC4iKTsKLQotICAgIGNvbnN0IHNpemVfdCBOID0gbUVudHJ5QXJyYXkuc2l6ZSgpOwotCi0gICAgLy8gVGhpcyBpcyBhIHZlY3RvciB0aGF0IHN0YXJ0cyBvdXQgd2l0aCBhIDE6MSBtYXBwaW5nIHRvIGVudHJpZXMKLSAgICAvLyBpbiB0aGUgYXJyYXksIHdoaWNoIHdlIHdpbGwgc29ydCB0byBjb21lIHVwIHdpdGggdGhlIGRlc2lyZWQgb3JkZXIuCi0gICAgLy8gQXQgdGhhdCBwb2ludCBpdCBtYXBzIGZyb20gdGhlIG5ldyBwb3NpdGlvbiBpbiB0aGUgYXJyYXkgdG8gdGhlCi0gICAgLy8gb3JpZ2luYWwgcG9zaXRpb24gdGhlIGVudHJ5IGFwcGVhcmVkLgotICAgIFZlY3RvcjxzaXplX3Q+IG5ld1Bvc1RvT3JpZ2luYWxQb3M7Ci0gICAgbmV3UG9zVG9PcmlnaW5hbFBvcy5zZXRDYXBhY2l0eShOKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGkgPCBOOyBpKyspIHsKLSAgICAgICAgbmV3UG9zVG9PcmlnaW5hbFBvcy5hZGQoaSk7Ci0gICAgfQotCi0gICAgLy8gU29ydCB0aGUgYXJyYXkuCi0gICAgTk9JU1kocHJpbnRmKCJTT1JUSU5HIFNUUklOR1MgQlkgQ09ORklHVVJBVElPTi4uLlxuIikpOwotICAgIC8vIFZlY3Rvcjo6c29ydCB1c2VzIGluc2VydGlvbiBzb3J0LCB3aGljaCBpcyB2ZXJ5IHNsb3cgZm9yIHRoaXMgZGF0YSBzZXQuCi0gICAgLy8gVXNlIHF1aWNrc29ydCBpbnN0ZWFkIGJlY2F1c2Ugd2UgZG9uJ3QgbmVlZCBhIHN0YWJsZSBzb3J0IGhlcmUuCi0gICAgcXNvcnRfcl9jb21wYXQobmV3UG9zVG9PcmlnaW5hbFBvcy5lZGl0QXJyYXkoKSwgTiwgc2l6ZW9mKHNpemVfdCksIHRoaXMsIGNvbmZpZ19zb3J0KTsKLSAgICAvL25ld1Bvc1RvT3JpZ2luYWxQb3Muc29ydChjb25maWdfc29ydCwgdGhpcyk7Ci0gICAgTk9JU1kocHJpbnRmKCJET05FIFNPUlRJTkcgU1RSSU5HUyBCWSBDT05GSUdVUkFUSU9OLlxuIikpOwotCi0gICAgLy8gQ3JlYXRlIHRoZSByZXZlcnNlIG1hcHBpbmcgZnJvbSB0aGUgb3JpZ2luYWwgcG9zaXRpb24gaW4gdGhlIGFycmF5Ci0gICAgLy8gdG8gdGhlIG5ldyBwb3NpdGlvbiB3aGVyZSBpdCBhcHBlYXJzIGluIHRoZSBzb3J0ZWQgYXJyYXkuICBUaGlzIGlzCi0gICAgLy8gc28gdGhhdCBjbGllbnRzIGNhbiByZS1tYXAgYW55IHBvc2l0aW9ucyB0aGV5IGhhZCBwcmV2aW91c2x5IHN0b3JlZC4KLSAgICBtT3JpZ2luYWxQb3NUb05ld1BvcyA9IG5ld1Bvc1RvT3JpZ2luYWxQb3M7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICBtT3JpZ2luYWxQb3NUb05ld1Bvcy5lZGl0SXRlbUF0KG5ld1Bvc1RvT3JpZ2luYWxQb3NbaV0pID0gaTsKLSAgICB9Ci0KLSNpZiAwCi0gICAgU29ydGVkVmVjdG9yPGVudHJ5PiBlbnRyaWVzOwotCi0gICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICBwcmludGYoIiMlZCB3YXMgJWQ6ICVzXG4iLCBpLCBuZXdQb3NUb09yaWdpbmFsUG9zW2ldLAotICAgICAgICAgICAgICAgIG1FbnRyaWVzW21FbnRyeUFycmF5W25ld1Bvc1RvT3JpZ2luYWxQb3NbaV1dXS5tYWtlQ29uZmlnc1N0cmluZygpLnN0cmluZygpKTsKLSAgICAgICAgZW50cmllcy5hZGQobUVudHJpZXNbbUVudHJ5QXJyYXlbaV1dKTsKLSAgICB9Ci0KLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8ZW50cmllcy5zaXplKCk7IGkrKykgewotICAgICAgICBwcmludGYoIlNvcnRlZCBjb25maWcgIyVkOiAlc1xuIiwgaSwKLSAgICAgICAgICAgICAgICBlbnRyaWVzW2ldLm1ha2VDb25maWdzU3RyaW5nKCkuc3RyaW5nKCkpOwotICAgIH0KLSNlbmRpZgotCi0gICAgLy8gTm93IHdlIHJlYnVpbGQgdGhlIGFycmF5cy4KLSAgICBWZWN0b3I8ZW50cnk+IG5ld0VudHJpZXM7Ci0gICAgVmVjdG9yPHNpemVfdD4gbmV3RW50cnlBcnJheTsKLSAgICBWZWN0b3I8ZW50cnlfc3R5bGU+IG5ld0VudHJ5U3R5bGVBcnJheTsKLSAgICBEZWZhdWx0S2V5ZWRWZWN0b3I8c2l6ZV90LCBzaXplX3Q+IG9yaWdPZmZzZXRUb05ld09mZnNldDsKLQotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgLy8gV2UgYXJlIGZpbGxpbmcgaW4gbmV3IG9mZnNldCAnaSc7IG9sZEkgaXMgd2hlcmUgd2UgY2FuIGZpbmQgaXQKLSAgICAgICAgLy8gaW4gdGhlIG9yaWdpbmFsIGRhdGEgc3RydWN0dXJlLgotICAgICAgICBzaXplX3Qgb2xkSSA9IG5ld1Bvc1RvT3JpZ2luYWxQb3NbaV07Ci0gICAgICAgIC8vIFRoaXMgaXMgdGhlIGFjdHVhbCBlbnRyeSBhc3NvY2lhdGVkIHdpdGggdGhlIG9sZCBvZmZzZXQuCi0gICAgICAgIGNvbnN0IGVudHJ5JiBvbGRFbnQgPSBtRW50cmllc1ttRW50cnlBcnJheVtvbGRJXV07Ci0gICAgICAgIC8vIFRoaXMgaXMgdGhlIHNhbWUgZW50cnkgdGhlIGxhc3QgdGltZSB3ZSBhZGRlZCBpdCB0byB0aGUKLSAgICAgICAgLy8gbmV3IGVudHJ5IGFycmF5LCBpZiBhbnkuCi0gICAgICAgIHNzaXplX3QgbmV3SW5kZXhPZk9mZnNldCA9IG9yaWdPZmZzZXRUb05ld09mZnNldC5pbmRleE9mS2V5KG9sZEkpOwotICAgICAgICBzaXplX3QgbmV3T2Zmc2V0OwotICAgICAgICBpZiAobmV3SW5kZXhPZk9mZnNldCA8IDApIHsKLSAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgd2UgaGF2ZSBzZWVuIHRoZSBlbnRyeSwgc28gYWRkCi0gICAgICAgICAgICAvLyBpdC4KLSAgICAgICAgICAgIG5ld09mZnNldCA9IG5ld0VudHJpZXMuYWRkKG9sZEVudCk7Ci0gICAgICAgICAgICBuZXdFbnRyaWVzLmVkaXRJdGVtQXQobmV3T2Zmc2V0KS5pbmRpY2VzLmNsZWFyKCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBXZSBoYXZlIHNlZW4gdGhpcyBlbnRyeSBiZWZvcmUsIHVzZSB0aGUgZXhpc3Rpbmcgb25lCi0gICAgICAgICAgICAvLyBpbnN0ZWFkIG9mIGFkZGluZyBpdCBhZ2Fpbi4KLSAgICAgICAgICAgIG5ld09mZnNldCA9IG9yaWdPZmZzZXRUb05ld09mZnNldC52YWx1ZUF0KG5ld0luZGV4T2ZPZmZzZXQpOwotICAgICAgICB9Ci0gICAgICAgIC8vIFVwZGF0ZSB0aGUgaW5kaWNlcyB0byBpbmNsdWRlIHRoaXMgbmV3IHBvc2l0aW9uLgotICAgICAgICBuZXdFbnRyaWVzLmVkaXRJdGVtQXQobmV3T2Zmc2V0KS5pbmRpY2VzLmFkZChpKTsKLSAgICAgICAgLy8gQW5kIGFkZCB0aGUgb2Zmc2V0IG9mIHRoZSBlbnRyeSB0byB0aGUgbmV3IGVudHJ5IGFycmF5LgotICAgICAgICBuZXdFbnRyeUFycmF5LmFkZChuZXdPZmZzZXQpOwotICAgICAgICAvLyBBZGQgYW55IG9sZCBzdHlsZSB0byB0aGUgbmV3IHN0eWxlIGFycmF5LgotICAgICAgICBpZiAobUVudHJ5U3R5bGVBcnJheS5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICBpZiAob2xkSSA8IG1FbnRyeVN0eWxlQXJyYXkuc2l6ZSgpKSB7Ci0gICAgICAgICAgICAgICAgbmV3RW50cnlTdHlsZUFycmF5LmFkZChtRW50cnlTdHlsZUFycmF5W29sZEldKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbmV3RW50cnlTdHlsZUFycmF5LmFkZChlbnRyeV9zdHlsZSgpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIE5vdyB0cmltIGFueSBlbnRyaWVzIGF0IHRoZSBlbmQgb2YgdGhlIG5ldyBzdHlsZSBhcnJheSB0aGF0IGFyZQotICAgIC8vIG5vdCBuZWVkZWQuCi0gICAgZm9yIChzc2l6ZV90IGk9bmV3RW50cnlTdHlsZUFycmF5LnNpemUoKS0xOyBpPj0wOyBpLS0pIHsKLSAgICAgICAgY29uc3QgZW50cnlfc3R5bGUmIHN0eWxlID0gbmV3RW50cnlTdHlsZUFycmF5W2ldOwotICAgICAgICBpZiAoc3R5bGUuc3BhbnMuc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgLy8gVGhhdCdzIGl0LgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gVGhpcyBvbmUgaXMgbm90IG5lZWRlZDsgcmVtb3ZlLgotICAgICAgICBuZXdFbnRyeVN0eWxlQXJyYXkucmVtb3ZlQXQoaSk7Ci0gICAgfQotCi0gICAgLy8gQWxsIGRvbmUsIGluc3RhbGwgdGhlIG5ldyBkYXRhIHN0cnVjdHVyZXMgYW5kIHVwYXRlIG1WYWx1ZXMgd2l0aAotICAgIC8vIHRoZSBuZXcgcG9zaXRpb25zLgotICAgIG1FbnRyaWVzID0gbmV3RW50cmllczsKLSAgICBtRW50cnlBcnJheSA9IG5ld0VudHJ5QXJyYXk7Ci0gICAgbUVudHJ5U3R5bGVBcnJheSA9IG5ld0VudHJ5U3R5bGVBcnJheTsKLSAgICBtVmFsdWVzLmNsZWFyKCk7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPG1FbnRyaWVzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IGVudHJ5JiBlbnQgPSBtRW50cmllc1tpXTsKLSAgICAgICAgbVZhbHVlcy5hZGQoZW50LnZhbHVlLCBlbnQuaW5kaWNlc1swXSk7Ci0gICAgfQotCi0jaWYgMAotICAgIHByaW50ZigiRklOQUwgU09SVEVEIFNUUklORyBDT05GSUdTOlxuIik7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPG1FbnRyaWVzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IGVudHJ5JiBlbnQgPSBtRW50cmllc1tpXTsKLSAgICAgICAgcHJpbnRmKCIjIiBaRCAiICVzOiAlc1xuIiwgKFpEX1RZUEUpaSwgZW50Lm1ha2VDb25maWdzU3RyaW5nKCkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgU3RyaW5nOChlbnQudmFsdWUpLnN0cmluZygpKTsKLSAgICB9Ci0jZW5kaWYKLX0KLQotc3A8QWFwdEZpbGU+IFN0cmluZ1Bvb2w6OmNyZWF0ZVN0cmluZ0Jsb2NrKCkKLXsKLSAgICBzcDxBYXB0RmlsZT4gcG9vbCA9IG5ldyBBYXB0RmlsZShTdHJpbmc4KCksIEFhcHRHcm91cEVudHJ5KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOCgpKTsKLSAgICBzdGF0dXNfdCBlcnIgPSB3cml0ZVN0cmluZ0Jsb2NrKHBvb2wpOwotICAgIHJldHVybiBlcnIgPT0gTk9fRVJST1IgPyBwb29sIDogTlVMTDsKLX0KLQotI2RlZmluZSBFTkNPREVfTEVOR1RIKHN0ciwgY2hyc3osIHN0clNpemUpIFwKLXsgXAotICAgIHNpemVfdCBtYXhNYXNrID0gMSA8PCAoKGNocnN6KjgpLTEpOyBcCi0gICAgc2l6ZV90IG1heFNpemUgPSBtYXhNYXNrLTE7IFwKLSAgICBpZiAoc3RyU2l6ZSA+IG1heFNpemUpIHsgXAotICAgICAgICAqc3RyKysgPSBtYXhNYXNrIHwgKChzdHJTaXplPj4oY2hyc3oqOCkpJm1heFNpemUpOyBcCi0gICAgfSBcCi0gICAgKnN0cisrID0gc3RyU2l6ZTsgXAotfQotCi1zdGF0dXNfdCBTdHJpbmdQb29sOjp3cml0ZVN0cmluZ0Jsb2NrKGNvbnN0IHNwPEFhcHRGaWxlPiYgcG9vbCkKLXsKLSAgICAvLyBBbGxvdyBhcHBlbmRpbmcuICBTb3JyeSB0aGlzIGlzIGEgbGl0dGxlIHdhY2t5LgotICAgIGlmIChwb29sLT5nZXRTaXplKCkgPiAwKSB7Ci0gICAgICAgIHNwPEFhcHRGaWxlPiBibG9jayA9IGNyZWF0ZVN0cmluZ0Jsb2NrKCk7Ci0gICAgICAgIGlmIChibG9jayA9PSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotICAgICAgICBzc2l6ZV90IHJlcyA9IHBvb2wtPndyaXRlRGF0YShibG9jay0+Z2V0RGF0YSgpLCBibG9jay0+Z2V0U2l6ZSgpKTsKLSAgICAgICAgcmV0dXJuIChyZXMgPj0gMCkgPyAoc3RhdHVzX3QpTk9fRVJST1IgOiByZXM7Ci0gICAgfQotCi0gICAgLy8gRmlyc3Qgd2UgbmVlZCB0byBhZGQgYWxsIHN0eWxlIHNwYW4gbmFtZXMgdG8gdGhlIHN0cmluZyBwb29sLgotICAgIC8vIFdlIGRvIHRoaXMgbm93IChpbnN0ZWFkIG9mIHdoZW4gdGhlIHNwYW4gaXMgYWRkZWQpIHNvIHRoYXQgdGhlc2UKLSAgICAvLyB3aWxsIGFwcGVhciBhdCB0aGUgZW5kIG9mIHRoZSBwb29sLCBub3QgZGlzcnVwdGluZyB0aGUgb3JkZXIKLSAgICAvLyBvdXIgY2xpZW50IHBsYWNlZCB0aGVpciBvd24gc3RyaW5ncyBpbiBpdC4KLSAgICAKLSAgICBjb25zdCBzaXplX3QgU1RZTEVTID0gbUVudHJ5U3R5bGVBcnJheS5zaXplKCk7Ci0gICAgc2l6ZV90IGk7Ci0KLSAgICBmb3IgKGk9MDsgaTxTVFlMRVM7IGkrKykgewotICAgICAgICBlbnRyeV9zdHlsZSYgc3R5bGUgPSBtRW50cnlTdHlsZUFycmF5LmVkaXRJdGVtQXQoaSk7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBOID0gc3R5bGUuc3BhbnMuc2l6ZSgpOwotICAgICAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgICAgICBlbnRyeV9zdHlsZV9zcGFuJiBzcGFuID0gc3R5bGUuc3BhbnMuZWRpdEl0ZW1BdChpKTsKLSAgICAgICAgICAgIHNzaXplX3QgaWR4ID0gYWRkKHNwYW4ubmFtZSwgdHJ1ZSk7Ci0gICAgICAgICAgICBpZiAoaWR4IDwgMCkgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3IgYWRkaW5nIHNwYW4gZm9yIHN0eWxlIHRhZyAnJXMnXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChzcGFuLm5hbWUpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gaWR4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3Bhbi5zcGFuLm5hbWUuaW5kZXggPSAodWludDMyX3QpaWR4OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgY29uc3Qgc2l6ZV90IEVOVFJJRVMgPSBtRW50cnlBcnJheS5zaXplKCk7Ci0KLSAgICAvLyBOb3cgYnVpbGQgdGhlIHBvb2wgb2YgdW5pcXVlIHN0cmluZ3MuCi0KLSAgICBjb25zdCBzaXplX3QgU1RSSU5HUyA9IG1FbnRyaWVzLnNpemUoKTsKLSAgICBjb25zdCBzaXplX3QgcHJlU2l6ZSA9IHNpemVvZihSZXNTdHJpbmdQb29sX2hlYWRlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICArIChzaXplb2YodWludDMyX3QpKkVOVFJJRVMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgKyAoc2l6ZW9mKHVpbnQzMl90KSpTVFlMRVMpOwotICAgIGlmIChwb29sLT5lZGl0RGF0YShwcmVTaXplKSA9PSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE91dCBvZiBtZW1vcnkgZm9yIHN0cmluZyBwb29sXG4iKTsKLSAgICAgICAgcmV0dXJuIE5PX01FTU9SWTsKLSAgICB9Ci0KLSAgICBjb25zdCBzaXplX3QgY2hhclNpemUgPSBtVVRGOCA/IHNpemVvZih1aW50OF90KSA6IHNpemVvZihjaGFyMTZfdCk7Ci0KLSAgICBzaXplX3Qgc3RyUG9zID0gMDsKLSAgICBmb3IgKGk9MDsgaTxTVFJJTkdTOyBpKyspIHsKLSAgICAgICAgZW50cnkmIGVudCA9IG1FbnRyaWVzLmVkaXRJdGVtQXQoaSk7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBzdHJTaXplID0gKGVudC52YWx1ZS5zaXplKCkpOwotICAgICAgICBjb25zdCBzaXplX3QgbGVuU2l6ZSA9IHN0clNpemUgPiAoc2l6ZV90KSgxPDwoKGNoYXJTaXplKjgpLTEpKS0xID8KLSAgICAgICAgICAgIGNoYXJTaXplKjIgOiBjaGFyU2l6ZTsKLQotICAgICAgICBTdHJpbmc4IGVuY1N0cjsKLSAgICAgICAgaWYgKG1VVEY4KSB7Ci0gICAgICAgICAgICBlbmNTdHIgPSBTdHJpbmc4KGVudC52YWx1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBzaXplX3QgZW5jU2l6ZSA9IG1VVEY4ID8gZW5jU3RyLnNpemUoKSA6IDA7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBlbmNMZW5TaXplID0gbVVURjggPwotICAgICAgICAgICAgKGVuY1NpemUgPiAoc2l6ZV90KSgxPDwoKGNoYXJTaXplKjgpLTEpKS0xID8KLSAgICAgICAgICAgICAgICBjaGFyU2l6ZSoyIDogY2hhclNpemUpIDogMDsKLQotICAgICAgICBlbnQub2Zmc2V0ID0gc3RyUG9zOwotCi0gICAgICAgIGNvbnN0IHNpemVfdCB0b3RhbFNpemUgPSBsZW5TaXplICsgZW5jTGVuU2l6ZSArCi0gICAgICAgICAgICAoKG1VVEY4ID8gZW5jU2l6ZSA6IHN0clNpemUpKzEpKmNoYXJTaXplOwotCi0gICAgICAgIHZvaWQqIGRhdCA9ICh2b2lkKilwb29sLT5lZGl0RGF0YShwcmVTaXplICsgc3RyUG9zICsgdG90YWxTaXplKTsKLSAgICAgICAgaWYgKGRhdCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBPdXQgb2YgbWVtb3J5IGZvciBzdHJpbmcgcG9vbFxuIik7Ci0gICAgICAgICAgICByZXR1cm4gTk9fTUVNT1JZOwotICAgICAgICB9Ci0gICAgICAgIGRhdCA9ICh1aW50OF90KilkYXQgKyBwcmVTaXplICsgc3RyUG9zOwotICAgICAgICBpZiAobVVURjgpIHsKLSAgICAgICAgICAgIHVpbnQ4X3QqIHN0cmluZ3MgPSAodWludDhfdCopZGF0OwotCi0gICAgICAgICAgICBFTkNPREVfTEVOR1RIKHN0cmluZ3MsIHNpemVvZih1aW50OF90KSwgc3RyU2l6ZSkKLQotICAgICAgICAgICAgRU5DT0RFX0xFTkdUSChzdHJpbmdzLCBzaXplb2YodWludDhfdCksIGVuY1NpemUpCi0KLSAgICAgICAgICAgIHN0cm5jcHkoKGNoYXIqKXN0cmluZ3MsIGVuY1N0ciwgZW5jU2l6ZSsxKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHVpbnQxNl90KiBzdHJpbmdzID0gKHVpbnQxNl90KilkYXQ7Ci0KLSAgICAgICAgICAgIEVOQ09ERV9MRU5HVEgoc3RyaW5ncywgc2l6ZW9mKHVpbnQxNl90KSwgc3RyU2l6ZSkKLQotICAgICAgICAgICAgc3RyY3B5MTZfaHRvZChzdHJpbmdzLCBlbnQudmFsdWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RyUG9zICs9IHRvdGFsU2l6ZTsKLSAgICB9Ci0KLSAgICAvLyBQYWQgZW5kaW5nIHN0cmluZyBwb3NpdGlvbiB1cCB0byBhIHVpbnQzMl90IGJvdW5kYXJ5LgotCi0gICAgaWYgKHN0clBvcyYweDMpIHsKLSAgICAgICAgc2l6ZV90IHBhZFBvcyA9ICgoc3RyUG9zKzMpJn4weDMpOwotICAgICAgICB1aW50OF90KiBkYXQgPSAodWludDhfdCopcG9vbC0+ZWRpdERhdGEocHJlU2l6ZSArIHBhZFBvcyk7Ci0gICAgICAgIGlmIChkYXQgPT0gTlVMTCkgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogT3V0IG9mIG1lbW9yeSBwYWRkaW5nIHN0cmluZyBwb29sXG4iKTsKLSAgICAgICAgICAgIHJldHVybiBOT19NRU1PUlk7Ci0gICAgICAgIH0KLSAgICAgICAgbWVtc2V0KGRhdCtwcmVTaXplK3N0clBvcywgMCwgcGFkUG9zLXN0clBvcyk7Ci0gICAgICAgIHN0clBvcyA9IHBhZFBvczsKLSAgICB9Ci0KLSAgICAvLyBCdWlsZCB0aGUgcG9vbCBvZiBzdHlsZSBzcGFucy4KLQotICAgIHNpemVfdCBzdHlQb3MgPSBzdHJQb3M7Ci0gICAgZm9yIChpPTA7IGk8U1RZTEVTOyBpKyspIHsKLSAgICAgICAgZW50cnlfc3R5bGUmIGVudCA9IG1FbnRyeVN0eWxlQXJyYXkuZWRpdEl0ZW1BdChpKTsKLSAgICAgICAgY29uc3Qgc2l6ZV90IE4gPSBlbnQuc3BhbnMuc2l6ZSgpOwotICAgICAgICBjb25zdCBzaXplX3QgdG90YWxTaXplID0gKE4qc2l6ZW9mKFJlc1N0cmluZ1Bvb2xfc3BhbikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzaXplb2YoUmVzU3RyaW5nUG9vbF9yZWYpOwotCi0gICAgICAgIGVudC5vZmZzZXQgPSBzdHlQb3Mtc3RyUG9zOwotICAgICAgICB1aW50OF90KiBkYXQgPSAodWludDhfdCopcG9vbC0+ZWRpdERhdGEocHJlU2l6ZSArIHN0eVBvcyArIHRvdGFsU2l6ZSk7Ci0gICAgICAgIGlmIChkYXQgPT0gTlVMTCkgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogT3V0IG9mIG1lbW9yeSBmb3Igc3RyaW5nIHN0eWxlc1xuIik7Ci0gICAgICAgICAgICByZXR1cm4gTk9fTUVNT1JZOwotICAgICAgICB9Ci0gICAgICAgIFJlc1N0cmluZ1Bvb2xfc3Bhbiogc3BhbiA9IChSZXNTdHJpbmdQb29sX3NwYW4qKShkYXQrcHJlU2l6ZStzdHlQb3MpOwotICAgICAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgICAgICBzcGFuLT5uYW1lLmluZGV4ID0gaHRvZGwoZW50LnNwYW5zW2ldLnNwYW4ubmFtZS5pbmRleCk7Ci0gICAgICAgICAgICBzcGFuLT5maXJzdENoYXIgPSBodG9kbChlbnQuc3BhbnNbaV0uc3Bhbi5maXJzdENoYXIpOwotICAgICAgICAgICAgc3Bhbi0+bGFzdENoYXIgPSBodG9kbChlbnQuc3BhbnNbaV0uc3Bhbi5sYXN0Q2hhcik7Ci0gICAgICAgICAgICBzcGFuKys7Ci0gICAgICAgIH0KLSAgICAgICAgc3Bhbi0+bmFtZS5pbmRleCA9IGh0b2RsKFJlc1N0cmluZ1Bvb2xfc3Bhbjo6RU5EKTsKLQotICAgICAgICBzdHlQb3MgKz0gdG90YWxTaXplOwotICAgIH0KLQotICAgIGlmIChTVFlMRVMgPiAwKSB7Ci0gICAgICAgIC8vIEFkZCBmdWxsIHRlcm1pbmF0b3IgYXQgdGhlIGVuZCAod2hlbiByZWFkaW5nIHdlIHZhbGlkYXRlIHRoYXQKLSAgICAgICAgLy8gdGhlIGVuZCBvZiB0aGUgcG9vbCBpcyBmdWxseSB0ZXJtaW5hdGVkIHRvIHNpbXBsaWZ5IGVycm9yCi0gICAgICAgIC8vIGNoZWNraW5nKS4KLSAgICAgICAgc2l6ZV90IGV4dHJhID0gc2l6ZW9mKFJlc1N0cmluZ1Bvb2xfc3Bhbiktc2l6ZW9mKFJlc1N0cmluZ1Bvb2xfcmVmKTsKLSAgICAgICAgdWludDhfdCogZGF0ID0gKHVpbnQ4X3QqKXBvb2wtPmVkaXREYXRhKHByZVNpemUgKyBzdHlQb3MgKyBleHRyYSk7Ci0gICAgICAgIGlmIChkYXQgPT0gTlVMTCkgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogT3V0IG9mIG1lbW9yeSBmb3Igc3RyaW5nIHN0eWxlc1xuIik7Ci0gICAgICAgICAgICByZXR1cm4gTk9fTUVNT1JZOwotICAgICAgICB9Ci0gICAgICAgIHVpbnQzMl90KiBwID0gKHVpbnQzMl90KikoZGF0K3ByZVNpemUrc3R5UG9zKTsKLSAgICAgICAgd2hpbGUgKGV4dHJhID4gMCkgewotICAgICAgICAgICAgKnArKyA9IGh0b2RsKFJlc1N0cmluZ1Bvb2xfc3Bhbjo6RU5EKTsKLSAgICAgICAgICAgIGV4dHJhIC09IHNpemVvZih1aW50MzJfdCk7Ci0gICAgICAgIH0KLSAgICAgICAgc3R5UG9zICs9IGV4dHJhOwotICAgIH0KLQotICAgIC8vIFdyaXRlIGhlYWRlci4KLQotICAgIFJlc1N0cmluZ1Bvb2xfaGVhZGVyKiBoZWFkZXIgPQotICAgICAgICAoUmVzU3RyaW5nUG9vbF9oZWFkZXIqKXBvb2wtPnBhZERhdGEoc2l6ZW9mKHVpbnQzMl90KSk7Ci0gICAgaWYgKGhlYWRlciA9PSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE91dCBvZiBtZW1vcnkgZm9yIHN0cmluZyBwb29sXG4iKTsKLSAgICAgICAgcmV0dXJuIE5PX01FTU9SWTsKLSAgICB9Ci0gICAgbWVtc2V0KGhlYWRlciwgMCwgc2l6ZW9mKCpoZWFkZXIpKTsKLSAgICBoZWFkZXItPmhlYWRlci50eXBlID0gaHRvZHMoUkVTX1NUUklOR19QT09MX1RZUEUpOwotICAgIGhlYWRlci0+aGVhZGVyLmhlYWRlclNpemUgPSBodG9kcyhzaXplb2YoKmhlYWRlcikpOwotICAgIGhlYWRlci0+aGVhZGVyLnNpemUgPSBodG9kbChwb29sLT5nZXRTaXplKCkpOwotICAgIGhlYWRlci0+c3RyaW5nQ291bnQgPSBodG9kbChFTlRSSUVTKTsKLSAgICBoZWFkZXItPnN0eWxlQ291bnQgPSBodG9kbChTVFlMRVMpOwotICAgIGlmIChtVVRGOCkgewotICAgICAgICBoZWFkZXItPmZsYWdzIHw9IGh0b2RsKFJlc1N0cmluZ1Bvb2xfaGVhZGVyOjpVVEY4X0ZMQUcpOwotICAgIH0KLSAgICBoZWFkZXItPnN0cmluZ3NTdGFydCA9IGh0b2RsKHByZVNpemUpOwotICAgIGhlYWRlci0+c3R5bGVzU3RhcnQgPSBodG9kbChTVFlMRVMgPiAwID8gKHByZVNpemUrc3RyUG9zKSA6IDApOwotCi0gICAgLy8gV3JpdGUgc3RyaW5nIGluZGV4IGFycmF5LgotCi0gICAgdWludDMyX3QqIGluZGV4ID0gKHVpbnQzMl90KikoaGVhZGVyKzEpOwotICAgIGZvciAoaT0wOyBpPEVOVFJJRVM7IGkrKykgewotICAgICAgICBlbnRyeSYgZW50ID0gbUVudHJpZXMuZWRpdEl0ZW1BdChtRW50cnlBcnJheVtpXSk7Ci0gICAgICAgICppbmRleCsrID0gaHRvZGwoZW50Lm9mZnNldCk7Ci0gICAgICAgIE5PSVNZKHByaW50ZigiV3JpdGluZyBlbnRyeSAjJWQ6IFwiJXNcIiBlbnQ9JWQgb2ZmPSVkXG4iLCBpLAotICAgICAgICAgICAgICAgIFN0cmluZzgoZW50LnZhbHVlKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICBtRW50cnlBcnJheVtpXSwgZW50Lm9mZnNldCkpOwotICAgIH0KLQotICAgIC8vIFdyaXRlIHN0eWxlIGluZGV4IGFycmF5LgotCi0gICAgZm9yIChpPTA7IGk8U1RZTEVTOyBpKyspIHsKLSAgICAgICAgKmluZGV4KysgPSBodG9kbChtRW50cnlTdHlsZUFycmF5W2ldLm9mZnNldCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi1zc2l6ZV90IFN0cmluZ1Bvb2w6Om9mZnNldEZvclN0cmluZyhjb25zdCBTdHJpbmcxNiYgdmFsKSBjb25zdAotewotICAgIGNvbnN0IFZlY3RvcjxzaXplX3Q+KiBpbmRpY2VzID0gb2Zmc2V0c0ZvclN0cmluZyh2YWwpOwotICAgIHNzaXplX3QgcmVzID0gaW5kaWNlcyAhPSBOVUxMICYmIGluZGljZXMtPnNpemUoKSA+IDAgPyBpbmRpY2VzLT5pdGVtQXQoMCkgOiAtMTsKLSAgICBOT0lTWShwcmludGYoIk9mZnNldCBmb3Igc3RyaW5nICVzOiAlZCAoJXMpXG4iLCBTdHJpbmc4KHZhbCkuc3RyaW5nKCksIHJlcywKLSAgICAgICAgICAgIHJlcyA+PSAwID8gU3RyaW5nOChtRW50cmllc1ttRW50cnlBcnJheVtyZXNdXS52YWx1ZSkuc3RyaW5nKCkgOiBTdHJpbmc4KCkpKTsKLSAgICByZXR1cm4gcmVzOwotfQotCi1jb25zdCBWZWN0b3I8c2l6ZV90PiogU3RyaW5nUG9vbDo6b2Zmc2V0c0ZvclN0cmluZyhjb25zdCBTdHJpbmcxNiYgdmFsKSBjb25zdAotewotICAgIHNzaXplX3QgcG9zID0gbVZhbHVlcy52YWx1ZUZvcih2YWwpOwotICAgIGlmIChwb3MgPCAwKSB7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICByZXR1cm4gJm1FbnRyaWVzW21FbnRyeUFycmF5W3Bvc11dLmluZGljZXM7Ci19CmRpZmYgLS1naXQgYS90b29scy9hYXB0L1N0cmluZ1Bvb2wuaCBiL3Rvb2xzL2FhcHQvU3RyaW5nUG9vbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjNhYmZkLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvU3RyaW5nUG9vbC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTgzICswLDAgQEAKLS8vCi0vLyBDb3B5cmlnaHQgMjAwNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0vLwotLy8gQnVpbGQgcmVzb3VyY2UgZmlsZXMgZnJvbSByYXcgYXNzZXRzLgotLy8KLQotI2lmbmRlZiBTVFJJTkdfUE9PTF9ICi0jZGVmaW5lIFNUUklOR19QT09MX0gKLQotI2luY2x1ZGUgIk1haW4uaCIKLSNpbmNsdWRlICJBYXB0QXNzZXRzLmgiCi0KLSNpbmNsdWRlIDxhbmRyb2lkZncvUmVzb3VyY2VUeXBlcy5oPgotI2luY2x1ZGUgPHV0aWxzL1N0cmluZzE2Lmg+Ci0jaW5jbHVkZSA8dXRpbHMvVHlwZUhlbHBlcnMuaD4KLQotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRlIDxjdHlwZS5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0KLSNpbmNsdWRlIDxsaWJleHBhdC9leHBhdC5oPgotCi11c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKLQotI2RlZmluZSBQUklOVF9TVFJJTkdfTUVUUklDUyAwCi0KLXZvaWQgc3RyY3B5MTZfaHRvZCh1aW50MTZfdCogZHN0LCBjb25zdCB1aW50MTZfdCogc3JjKTsKLQotdm9pZCBwcmludFN0cmluZ1Bvb2woY29uc3QgUmVzU3RyaW5nUG9vbCogcG9vbCk7Ci0KLS8qKgotICogVGhlIFN0cmluZ1Bvb2wgY2xhc3MgaXMgdXNlZCBhcyBhbiBpbnRlcm1lZGlhdGUgcmVwcmVzZW50YXRpb24gZm9yCi0gKiBnZW5lcmF0aW5nIHRoZSBzdHJpbmcgcG9vbCByZXNvdXJjZSBkYXRhIHN0cnVjdHVyZSB0aGF0IGNhbiBiZSBwYXJzZWQgd2l0aAotICogUmVzU3RyaW5nUG9vbCBpbiBpbmNsdWRlL3V0aWxzL1Jlc291cmNlVHlwZXMuaC4KLSAqLwotY2xhc3MgU3RyaW5nUG9vbAotewotcHVibGljOgotICAgIHN0cnVjdCBlbnRyeSB7Ci0gICAgICAgIGVudHJ5KCkgOiBvZmZzZXQoMCkgeyB9Ci0gICAgICAgIGVudHJ5KGNvbnN0IFN0cmluZzE2JiBfdmFsdWUpIDogdmFsdWUoX3ZhbHVlKSwgb2Zmc2V0KDApLCBoYXNTdHlsZXMoZmFsc2UpIHsgfQotICAgICAgICBlbnRyeShjb25zdCBlbnRyeSYgbykgOiB2YWx1ZShvLnZhbHVlKSwgb2Zmc2V0KG8ub2Zmc2V0KSwKLSAgICAgICAgICAgICAgICBoYXNTdHlsZXMoby5oYXNTdHlsZXMpLCBpbmRpY2VzKG8uaW5kaWNlcyksCi0gICAgICAgICAgICAgICAgY29uZmlnVHlwZU5hbWUoby5jb25maWdUeXBlTmFtZSksIGNvbmZpZ3Moby5jb25maWdzKSB7IH0KLQotICAgICAgICBTdHJpbmcxNiB2YWx1ZTsKLSAgICAgICAgc2l6ZV90IG9mZnNldDsKLSAgICAgICAgYm9vbCBoYXNTdHlsZXM7Ci0gICAgICAgIFZlY3RvcjxzaXplX3Q+IGluZGljZXM7Ci0gICAgICAgIFN0cmluZzggY29uZmlnVHlwZU5hbWU7Ci0gICAgICAgIFZlY3RvcjxSZXNUYWJsZV9jb25maWc+IGNvbmZpZ3M7Ci0KLSAgICAgICAgU3RyaW5nOCBtYWtlQ29uZmlnc1N0cmluZygpIGNvbnN0OwotCi0gICAgICAgIGludCBjb21wYXJlKGNvbnN0IGVudHJ5JiBvKSBjb25zdDsKLQotICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcjwoY29uc3QgZW50cnkmIG8pIGNvbnN0IHsgcmV0dXJuIGNvbXBhcmUobykgPCAwOyB9Ci0gICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yPD0oY29uc3QgZW50cnkmIG8pIGNvbnN0IHsgcmV0dXJuIGNvbXBhcmUobykgPD0gMDsgfQotICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IGVudHJ5JiBvKSBjb25zdCB7IHJldHVybiBjb21wYXJlKG8pID09IDA7IH0KLSAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBlbnRyeSYgbykgY29uc3QgeyByZXR1cm4gY29tcGFyZShvKSAhPSAwOyB9Ci0gICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yPj0oY29uc3QgZW50cnkmIG8pIGNvbnN0IHsgcmV0dXJuIGNvbXBhcmUobykgPj0gMDsgfQotICAgICAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj4oY29uc3QgZW50cnkmIG8pIGNvbnN0IHsgcmV0dXJuIGNvbXBhcmUobykgPiAwOyB9Ci0gICAgfTsKLQotICAgIHN0cnVjdCBlbnRyeV9zdHlsZV9zcGFuIHsKLSAgICAgICAgU3RyaW5nMTYgbmFtZTsKLSAgICAgICAgUmVzU3RyaW5nUG9vbF9zcGFuIHNwYW47Ci0gICAgfTsKLQotICAgIHN0cnVjdCBlbnRyeV9zdHlsZSB7Ci0gICAgICAgIGVudHJ5X3N0eWxlKCkgOiBvZmZzZXQoMCkgeyB9Ci0KLSAgICAgICAgZW50cnlfc3R5bGUoY29uc3QgZW50cnlfc3R5bGUmIG8pIDogb2Zmc2V0KG8ub2Zmc2V0KSwgc3BhbnMoby5zcGFucykgeyB9Ci0KLSAgICAgICAgc2l6ZV90IG9mZnNldDsKLSAgICAgICAgVmVjdG9yPGVudHJ5X3N0eWxlX3NwYW4+IHNwYW5zOwotICAgIH07Ci0KLSAgICAvKioKLSAgICAgKiBJZiAndXRmOCcgaXMgdHJ1ZSwgc3RyaW5ncyB3aWxsIGJlIGVuY29kZWQgd2l0aCBVVEYtOCBpbnN0ZWFkIG9mCi0gICAgICogbGVmdCBpbiBKYXZhJ3MgbmF0aXZlIFVURi0xNi4KLSAgICAgKi8KLSAgICBleHBsaWNpdCBTdHJpbmdQb29sKGJvb2wgdXRmOCA9IGZhbHNlKTsKLQotICAgIC8qKgotICAgICAqIEFkZCBhIG5ldyBzdHJpbmcgdG8gdGhlIHBvb2wuICBJZiBtZXJnZUR1cGxpY2F0ZXMgaXMgdHJ1ZSwgdGhlbmlmCi0gICAgICogdGhlIHN0cmluZyBhbHJlYWR5IGV4aXN0cyB0aGUgZXhpc3RpbmcgZW50cnkgZm9yIGl0IHdpbGwgYmUgdXNlZDsKLSAgICAgKiBvdGhlcndpc2UsIG9yIGlmIHRoZSB2YWx1ZSBkb2Vzbid0IGFscmVhZHkgZXhpc3QsIGEgbmV3IGVudHJ5IGlzCi0gICAgICogY3JlYXRlZC4KLSAgICAgKgotICAgICAqIFJldHVybnMgdGhlIGluZGV4IGluIHRoZSBlbnRyeSBhcnJheSBvZiB0aGUgbmV3IHN0cmluZyBlbnRyeS4KLSAgICAgKi8KLSAgICBzc2l6ZV90IGFkZChjb25zdCBTdHJpbmcxNiYgdmFsdWUsIGJvb2wgbWVyZ2VEdXBsaWNhdGVzID0gZmFsc2UsCi0gICAgICAgICAgICBjb25zdCBTdHJpbmc4KiBjb25maWdUeXBlTmFtZSA9IE5VTEwsIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyogY29uZmlnID0gTlVMTCk7Ci0KLSAgICBzc2l6ZV90IGFkZChjb25zdCBTdHJpbmcxNiYgdmFsdWUsIGNvbnN0IFZlY3RvcjxlbnRyeV9zdHlsZV9zcGFuPiYgc3BhbnMsCi0gICAgICAgICAgICBjb25zdCBTdHJpbmc4KiBjb25maWdUeXBlTmFtZSA9IE5VTEwsIGNvbnN0IFJlc1RhYmxlX2NvbmZpZyogY29uZmlnID0gTlVMTCk7Ci0KLSAgICBzdGF0dXNfdCBhZGRTdHlsZVNwYW4oc2l6ZV90IGlkeCwgY29uc3QgU3RyaW5nMTYmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHN0YXJ0LCB1aW50MzJfdCBlbmQpOwotICAgIHN0YXR1c190IGFkZFN0eWxlU3BhbnMoc2l6ZV90IGlkeCwgY29uc3QgVmVjdG9yPGVudHJ5X3N0eWxlX3NwYW4+JiBzcGFucyk7Ci0gICAgc3RhdHVzX3QgYWRkU3R5bGVTcGFuKHNpemVfdCBpZHgsIGNvbnN0IGVudHJ5X3N0eWxlX3NwYW4mIHNwYW4pOwotCi0gICAgLy8gU29ydCB0aGUgY29udGVudHMgb2YgdGhlIHN0cmluZyBibG9jayBieSB0aGUgY29uZmlndXJhdGlvbiBhc3NvY2lhdGVkCi0gICAgLy8gd2l0aCBlYWNoIGl0ZW0uICBBZnRlciBkb2luZyB0aGlzIHlvdSBjYW4gdXNlIG1hcE9yaWdpbmFsUG9zVG9OZXdQb3MoKQotICAgIC8vIHRvIGZpbmQgb3V0IHRoZSBuZXcgcG9zaXRpb24gZ2l2ZW4gdGhlIHBvc2l0aW9uIG9yaWdpbmFsbHkgcmV0dXJuZWQgYnkKLSAgICAvLyBhZGQoKS4KLSAgICB2b2lkIHNvcnRCeUNvbmZpZygpOwotCi0gICAgLy8gRm9yIHVzZSBhZnRlciBzb3J0QnlDb25maWcoKSB0byBtYXAgZnJvbSB0aGUgb3JpZ2luYWwgcG9zaXRpb24gb2YKLSAgICAvLyBhIHN0cmluZyB0byBpdHMgbmV3IHNvcnRlZCBwb3NpdGlvbi4KLSAgICBzaXplX3QgbWFwT3JpZ2luYWxQb3NUb05ld1BvcyhzaXplX3Qgb3JpZ2luYWxQb3MpIGNvbnN0IHsKLSAgICAgICAgcmV0dXJuIG1PcmlnaW5hbFBvc1RvTmV3UG9zLml0ZW1BdChvcmlnaW5hbFBvcyk7Ci0gICAgfQotCi0gICAgc3A8QWFwdEZpbGU+IGNyZWF0ZVN0cmluZ0Jsb2NrKCk7Ci0KLSAgICBzdGF0dXNfdCB3cml0ZVN0cmluZ0Jsb2NrKGNvbnN0IHNwPEFhcHRGaWxlPiYgcG9vbCk7Ci0KLSAgICAvKioKLSAgICAgKiBGaW5kIG91dCBhbiBvZmZzZXQgaW4gdGhlIHBvb2wgZm9yIGEgcGFydGljdWxhciBzdHJpbmcuICBJZiB0aGUgc3RyaW5nCi0gICAgICogcG9vbCBpcyBzb3J0ZWQsIHRoaXMgY2FuIG5vdCBiZSBjYWxsZWQgdW50aWwgYWZ0ZXIgY3JlYXRlU3RyaW5nQmxvY2soKQotICAgICAqIG9yIHdyaXRlU3RyaW5nQmxvY2soKSBoYXMgYmVlbiBjYWxsZWQKLSAgICAgKiAod2hpY2ggZGV0ZXJtaW5lcyB0aGUgb2Zmc2V0cykuICBJbiB0aGUgY2FzZSBvZiBhIHN0cmluZyB0aGF0IGFwcGVhcnMKLSAgICAgKiBtdWx0aXBsZSB0aW1lcyBpbiB0aGUgcG9vbCwgdGhlIGZpcnN0IG9mZnNldCB3aWxsIGJlIHJldHVybmVkLiAgUmV0dXJucwotICAgICAqIC0xIGlmIHRoZSBzdHJpbmcgZG9lcyBub3QgZXhpc3QuCi0gICAgICovCi0gICAgc3NpemVfdCBvZmZzZXRGb3JTdHJpbmcoY29uc3QgU3RyaW5nMTYmIHZhbCkgY29uc3Q7Ci0KLSAgICAvKioKLSAgICAgKiBGaW5kIGFsbCBvZiB0aGUgb2Zmc2V0cyBpbiB0aGUgcG9vbCBmb3IgYSBwYXJ0aWN1bGFyIHN0cmluZy4gIElmIHRoZQotICAgICAqIHN0cmluZyBwb29sIGlzIHNvcnRlZCwgdGhpcyBjYW4gbm90IGJlIGNhbGxlZCB1bnRpbCBhZnRlcgotICAgICAqIGNyZWF0ZVN0cmluZ0Jsb2NrKCkgb3Igd3JpdGVTdHJpbmdCbG9jaygpIGhhcyBiZWVuIGNhbGxlZAotICAgICAqICh3aGljaCBkZXRlcm1pbmVzIHRoZSBvZmZzZXRzKS4gIFJldHVybnMgTlVMTCBpZiB0aGUgc3RyaW5nIGRvZXMgbm90IGV4aXN0LgotICAgICAqLwotICAgIGNvbnN0IFZlY3RvcjxzaXplX3Q+KiBvZmZzZXRzRm9yU3RyaW5nKGNvbnN0IFN0cmluZzE2JiB2YWwpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIHN0YXRpYyBpbnQgY29uZmlnX3NvcnQodm9pZCogc3RhdGUsIGNvbnN0IHZvaWQqIGxocywgY29uc3Qgdm9pZCogcmhzKTsKLQotICAgIGNvbnN0IGJvb2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVVRGODsKLQotICAgIC8vIFRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmVzIHJlcHJlc2VudCB0aGUgYWN0dWFsIHN0cnVjdHVyZXMKLSAgICAvLyB0aGF0IHdpbGwgYmUgZ2VuZXJhdGVkIGZvciB0aGUgZmluYWwgc3RyaW5nIHBvb2wuCi0KLSAgICAvLyBSYXcgYXJyYXkgb2YgdW5pcXVlIHN0cmluZ3MsIGluIHNvbWUgYXJiaXRyYXJ5IG9yZGVyLiAgVGhpcyBpcyB0aGUKLSAgICAvLyBhY3R1YWwgc3RyaW5ncyB0aGF0IGFwcGVhciBpbiB0aGUgZmluYWwgc3RyaW5nIHBvb2wsIGluIHRoZSBvcmRlcgotICAgIC8vIHRoYXQgdGhleSB3aWxsIGJlIHdyaXR0ZW4uCi0gICAgVmVjdG9yPGVudHJ5PiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1FbnRyaWVzOwotICAgIC8vIEFycmF5IG9mIGluZGljZXMgaW50byBtRW50cmllcywgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZQotICAgIC8vIGFkZGVkIHRvIHRoZSBwb29sLiAgVGhpcyBjYW4gYmUgZGlmZmVyZW50IHRoYW4gbUVudHJpZXMKLSAgICAvLyBpZiB0aGUgc2FtZSBzdHJpbmcgd2FzIGFkZGVkIG11bHRpcGxlIHRpbWVzIChpdCB3aWxsIGFwcGVhcgotICAgIC8vIG9uY2UgaW4gbUVudHJpZXMsIHdpdGggbXVsdGlwbGUgb2NjdXJyZW5jZXMgaW4gdGhpcyBhcnJheSkuCi0gICAgLy8gVGhpcyBpcyB0aGUgbG9va3VwIGFycmF5IHRoYXQgd2lsbCBiZSB3cml0dGVuIGZvciBmaW5kaW5nCi0gICAgLy8gdGhlIHN0cmluZyBmb3IgZWFjaCBvZmZzZXQvcG9zaXRpb24gaW4gdGhlIHN0cmluZyBwb29sLgotICAgIFZlY3RvcjxzaXplX3Q+ICAgICAgICAgICAgICAgICAgICAgICAgICBtRW50cnlBcnJheTsKLSAgICAvLyBPcHRpb25hbCBzdHlsZSBzcGFuIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGluZGV4IG9mCi0gICAgLy8gbUVudHJ5QXJyYXkuCi0gICAgVmVjdG9yPGVudHJ5X3N0eWxlPiAgICAgICAgICAgICAgICAgICAgIG1FbnRyeVN0eWxlQXJyYXk7Ci0KLSAgICAvLyBUaGUgZm9sbG93aW5nIGRhdGEgc3RydWN0dXJlcyBhcmUgdXNlZCBmb3IgYm9vay1rZWVwaW5nIGFzIHRoZQotICAgIC8vIHN0cmluZyBwb29sIGlzIGNvbnN0cnVjdGVkLgotCi0gICAgLy8gVW5pcXVlIHNldCBvZiBhbGwgdGhlIHN0cmluZ3MgYWRkZWQgdG8gdGhlIHBvb2wsIG1hcHBlZCB0bwotICAgIC8vIHRoZSBmaXJzdCBpbmRleCBvZiBtRW50cnlBcnJheSB3aGVyZSB0aGUgdmFsdWUgd2FzIGFkZGVkLgotICAgIERlZmF1bHRLZXllZFZlY3RvcjxTdHJpbmcxNiwgc3NpemVfdD4gICBtVmFsdWVzOwotICAgIC8vIFRoaXMgYXJyYXkgbWFwcyBmcm9tIHRoZSBvcmlnaW5hbCBwb3NpdGlvbiBhIHN0cmluZyB3YXMgcGxhY2VkIGF0Ci0gICAgLy8gaW4gbUVudHJ5QXJyYXkgdG8gaXRzIG5ldyBwb3NpdGlvbiBhZnRlciBiZWluZyBzb3J0ZWQgd2l0aCBzb3J0QnlDb25maWcoKS4KLSAgICBWZWN0b3I8c2l6ZV90PiAgICAgICAgICAgICAgICAgICAgICAgICAgbU9yaWdpbmFsUG9zVG9OZXdQb3M7Ci19OwotCi0vLyBUaGUgZW50cnkgdHlwZXMgYXJlIHRyaXZpYWxseSBtb3ZhYmxlIGJlY2F1c2UgYWxsIGZpZWxkcyB0aGV5IGNvbnRhaW4sIGluY2x1ZGluZwotLy8gdGhlIHZlY3RvcnMgYW5kIHN0cmluZ3MsIGFyZSB0cml2aWFsbHkgbW92YWJsZS4KLW5hbWVzcGFjZSBhbmRyb2lkIHsKLSAgICBBTkRST0lEX1RSSVZJQUxfTU9WRV9UUkFJVChTdHJpbmdQb29sOjplbnRyeSk7Ci0gICAgQU5EUk9JRF9UUklWSUFMX01PVkVfVFJBSVQoU3RyaW5nUG9vbDo6ZW50cnlfc3R5bGVfc3Bhbik7Ci0gICAgQU5EUk9JRF9UUklWSUFMX01PVkVfVFJBSVQoU3RyaW5nUG9vbDo6ZW50cnlfc3R5bGUpOwotfTsKLQotI2VuZGlmCi0KZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvV29ya1F1ZXVlLmNwcCBiL3Rvb2xzL2FhcHQvV29ya1F1ZXVlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRhOTYyZi4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L1dvcmtRdWV1ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLS8vICNkZWZpbmUgTE9HX05ERUJVRyAwCi0jZGVmaW5lIExPR19UQUcgIldvcmtRdWV1ZSIKLQotI2luY2x1ZGUgPHV0aWxzL0xvZy5oPgotI2luY2x1ZGUgIldvcmtRdWV1ZS5oIgotCi1uYW1lc3BhY2UgYW5kcm9pZCB7Ci0KLS8vIC0tLSBXb3JrUXVldWUgLS0tCi0KLVdvcmtRdWV1ZTo6V29ya1F1ZXVlKHNpemVfdCBtYXhUaHJlYWRzLCBib29sIGNhbkNhbGxKYXZhKSA6Ci0gICAgICAgIG1NYXhUaHJlYWRzKG1heFRocmVhZHMpLCBtQ2FuQ2FsbEphdmEoY2FuQ2FsbEphdmEpLAotICAgICAgICBtQ2FuY2VsZWQoZmFsc2UpLCBtRmluaXNoZWQoZmFsc2UpLCBtSWRsZVRocmVhZHMoMCkgewotfQotCi1Xb3JrUXVldWU6On5Xb3JrUXVldWUoKSB7Ci0gICAgaWYgKCFjYW5jZWwoKSkgewotICAgICAgICBmaW5pc2goKTsKLSAgICB9Ci19Ci0KLXN0YXR1c190IFdvcmtRdWV1ZTo6c2NoZWR1bGUoV29ya1VuaXQqIHdvcmtVbml0LCBzaXplX3QgYmFja2xvZykgewotICAgIEF1dG9NdXRleCBfbChtTG9jayk7Ci0KLSAgICBpZiAobUZpbmlzaGVkIHx8IG1DYW5jZWxlZCkgewotICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgfQotCi0gICAgaWYgKG1Xb3JrVGhyZWFkcy5zaXplKCkgPCBtTWF4VGhyZWFkcwotICAgICAgICAgICAgJiYgbUlkbGVUaHJlYWRzIDwgbVdvcmtVbml0cy5zaXplKCkgKyAxKSB7Ci0gICAgICAgIHNwPFdvcmtUaHJlYWQ+IHdvcmtUaHJlYWQgPSBuZXcgV29ya1RocmVhZCh0aGlzLCBtQ2FuQ2FsbEphdmEpOwotICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSB3b3JrVGhyZWFkLT5ydW4oIldvcmtRdWV1ZTo6V29ya1RocmVhZCIpOwotICAgICAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICB9Ci0gICAgICAgIG1Xb3JrVGhyZWFkcy5hZGQod29ya1RocmVhZCk7Ci0gICAgICAgIG1JZGxlVGhyZWFkcyArPSAxOwotICAgIH0gZWxzZSBpZiAoYmFja2xvZykgewotICAgICAgICB3aGlsZSAobVdvcmtVbml0cy5zaXplKCkgPj0gbU1heFRocmVhZHMgKiBiYWNrbG9nKSB7Ci0gICAgICAgICAgICBtV29ya0RlcXVldWVkQ29uZGl0aW9uLndhaXQobUxvY2spOwotICAgICAgICAgICAgaWYgKG1GaW5pc2hlZCB8fCBtQ2FuY2VsZWQpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBtV29ya1VuaXRzLmFkZCh3b3JrVW5pdCk7Ci0gICAgbVdvcmtDaGFuZ2VkQ29uZGl0aW9uLmJyb2FkY2FzdCgpOwotICAgIHJldHVybiBPSzsKLX0KLQotc3RhdHVzX3QgV29ya1F1ZXVlOjpjYW5jZWwoKSB7Ci0gICAgQXV0b011dGV4IF9sKG1Mb2NrKTsKLQotICAgIHJldHVybiBjYW5jZWxMb2NrZWQoKTsKLX0KLQotc3RhdHVzX3QgV29ya1F1ZXVlOjpjYW5jZWxMb2NrZWQoKSB7Ci0gICAgaWYgKG1GaW5pc2hlZCkgewotICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgfQotCi0gICAgaWYgKCFtQ2FuY2VsZWQpIHsKLSAgICAgICAgbUNhbmNlbGVkID0gdHJ1ZTsKLQotICAgICAgICBzaXplX3QgY291bnQgPSBtV29ya1VuaXRzLnNpemUoKTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Ci0gICAgICAgICAgICBkZWxldGUgbVdvcmtVbml0cy5pdGVtQXQoaSk7Ci0gICAgICAgIH0KLSAgICAgICAgbVdvcmtVbml0cy5jbGVhcigpOwotICAgICAgICBtV29ya0NoYW5nZWRDb25kaXRpb24uYnJvYWRjYXN0KCk7Ci0gICAgICAgIG1Xb3JrRGVxdWV1ZWRDb25kaXRpb24uYnJvYWRjYXN0KCk7Ci0gICAgfQotICAgIHJldHVybiBPSzsKLX0KLQotc3RhdHVzX3QgV29ya1F1ZXVlOjpmaW5pc2goKSB7Ci0gICAgeyAvLyBhY3F1aXJlIGxvY2sKLSAgICAgICAgQXV0b011dGV4IF9sKG1Mb2NrKTsKLQotICAgICAgICBpZiAobUZpbmlzaGVkKSB7Ci0gICAgICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgICAgIH0KLQotICAgICAgICBtRmluaXNoZWQgPSB0cnVlOwotICAgICAgICBtV29ya0NoYW5nZWRDb25kaXRpb24uYnJvYWRjYXN0KCk7Ci0gICAgfSAvLyByZWxlYXNlIGxvY2sKLQotICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSBmb3IgdGhlIGxpc3Qgb2Ygd29yayB0aHJlYWRzIHRvIGNoYW5nZSBvbmNlIHRoZSBtRmluaXNoZWQKLSAgICAvLyBmbGFnIGhhcyBiZWVuIHNldCwgc28gd2UgY2FuIGFjY2VzcyBtV29ya1RocmVhZHMgb3V0c2lkZSBvZiB0aGUgbG9jayBoZXJlLgotICAgIHNpemVfdCBjb3VudCA9IG1Xb3JrVGhyZWFkcy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Ci0gICAgICAgIG1Xb3JrVGhyZWFkcy5pdGVtQXQoaSktPmpvaW4oKTsKLSAgICB9Ci0gICAgbVdvcmtUaHJlYWRzLmNsZWFyKCk7Ci0gICAgcmV0dXJuIE9LOwotfQotCi1ib29sIFdvcmtRdWV1ZTo6dGhyZWFkTG9vcCgpIHsKLSAgICBXb3JrVW5pdCogd29ya1VuaXQ7Ci0gICAgeyAvLyBhY3F1aXJlIGxvY2sKLSAgICAgICAgQXV0b011dGV4IF9sKG1Mb2NrKTsKLQotICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICBpZiAobUNhbmNlbGVkKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoIW1Xb3JrVW5pdHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgd29ya1VuaXQgPSBtV29ya1VuaXRzLml0ZW1BdCgwKTsKLSAgICAgICAgICAgICAgICBtV29ya1VuaXRzLnJlbW92ZUF0KDApOwotICAgICAgICAgICAgICAgIG1JZGxlVGhyZWFkcyAtPSAxOwotICAgICAgICAgICAgICAgIG1Xb3JrRGVxdWV1ZWRDb25kaXRpb24uYnJvYWRjYXN0KCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChtRmluaXNoZWQpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1Xb3JrQ2hhbmdlZENvbmRpdGlvbi53YWl0KG1Mb2NrKTsKLSAgICAgICAgfQotICAgIH0gLy8gcmVsZWFzZSBsb2NrCi0KLSAgICBib29sIHNob3VsZENvbnRpbnVlID0gd29ya1VuaXQtPnJ1bigpOwotICAgIGRlbGV0ZSB3b3JrVW5pdDsKLQotICAgIHsgLy8gYWNxdWlyZSBsb2NrCi0gICAgICAgIEF1dG9NdXRleCBfbChtTG9jayk7Ci0KLSAgICAgICAgbUlkbGVUaHJlYWRzICs9IDE7Ci0KLSAgICAgICAgaWYgKCFzaG91bGRDb250aW51ZSkgewotICAgICAgICAgICAgY2FuY2VsTG9ja2VkKCk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9IC8vIHJlbGVhc2UgbG9jawotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLS8vIC0tLSBXb3JrUXVldWU6OldvcmtUaHJlYWQgLS0tCi0KLVdvcmtRdWV1ZTo6V29ya1RocmVhZDo6V29ya1RocmVhZChXb3JrUXVldWUqIHdvcmtRdWV1ZSwgYm9vbCBjYW5DYWxsSmF2YSkgOgotICAgICAgICBUaHJlYWQoY2FuQ2FsbEphdmEpLCBtV29ya1F1ZXVlKHdvcmtRdWV1ZSkgewotfQotCi1Xb3JrUXVldWU6OldvcmtUaHJlYWQ6On5Xb3JrVGhyZWFkKCkgewotfQotCi1ib29sIFdvcmtRdWV1ZTo6V29ya1RocmVhZDo6dGhyZWFkTG9vcCgpIHsKLSAgICByZXR1cm4gbVdvcmtRdWV1ZS0+dGhyZWFkTG9vcCgpOwotfQotCi19OyAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvV29ya1F1ZXVlLmggYi90b29scy9hYXB0L1dvcmtRdWV1ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzhmMDVkLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvV29ya1F1ZXVlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotLypdCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jaWZuZGVmIEFBUFRfV09SS19RVUVVRV9ICi0jZGVmaW5lIEFBUFRfV09SS19RVUVVRV9ICi0KLSNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KLSNpbmNsdWRlIDx1dGlscy9WZWN0b3IuaD4KLSNpbmNsdWRlIDx1dGlscy90aHJlYWRzLmg+Ci0KLW5hbWVzcGFjZSBhbmRyb2lkIHsKLQotLyoKLSAqIEEgdGhyZWFkZWQgd29yayBxdWV1ZS4KLSAqCi0gKiBUaGlzIGNsYXNzIGlzIGRlc2lnbmVkIHRvIG1ha2UgaXQgZWFzeSB0byBydW4gYSBidW5jaCBvZiBpc29sYXRlZCB3b3JrCi0gKiB1bml0cyBpbiBwYXJhbGxlbCwgdXNpbmcgdXAgdG8gdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGhyZWFkcy4KLSAqIFRvIHVzZSBpdCwgd3JpdGUgYSBsb29wIHRvIHBvc3Qgd29yayB1bml0cyB0byB0aGUgd29yayBxdWV1ZSwgdGhlbiBzeW5jaHJvbml6ZQotICogb24gdGhlIHF1ZXVlIGF0IHRoZSBlbmQuCi0gKi8KLWNsYXNzIFdvcmtRdWV1ZSB7Ci1wdWJsaWM6Ci0gICAgY2xhc3MgV29ya1VuaXQgewotICAgIHB1YmxpYzoKLSAgICAgICAgV29ya1VuaXQoKSB7IH0KLSAgICAgICAgdmlydHVhbCB+V29ya1VuaXQoKSB7IH0KLQotICAgICAgICAvKgotICAgICAgICAgKiBSdW5zIHRoZSB3b3JrIHVuaXQuCi0gICAgICAgICAqIElmIHRoZSByZXN1bHQgaXMgJ3RydWUnIHRoZW4gdGhlIHdvcmsgcXVldWUgY29udGludWVzIHNjaGVkdWxpbmcgd29yayBhcyB1c3VhbC4KLSAgICAgICAgICogSWYgdGhlIHJlc3VsdCBpcyAnZmFsc2UnIHRoZW4gdGhlIHdvcmsgcXVldWUgaXMgY2FuY2VsZWQuCi0gICAgICAgICAqLwotICAgICAgICB2aXJ0dWFsIGJvb2wgcnVuKCkgPSAwOwotICAgIH07Ci0KLSAgICAvKiBDcmVhdGVzIGEgd29yayBxdWV1ZSB3aXRoIHRoZSBzcGVjaWZpZWQgbWF4aW11bSBudW1iZXIgb2Ygd29yayB0aHJlYWRzLiAqLwotICAgIFdvcmtRdWV1ZShzaXplX3QgbWF4VGhyZWFkcywgYm9vbCBjYW5DYWxsSmF2YSA9IHRydWUpOwotCi0gICAgLyogRGVzdHJveXMgdGhlIHdvcmsgcXVldWUuCi0gICAgICogQ2FuY2VscyBwZW5kaW5nIHdvcmsgYW5kIHdhaXRzIGZvciBhbGwgcmVtYWluaW5nIHRocmVhZHMgdG8gY29tcGxldGUuCi0gICAgICovCi0gICAgfldvcmtRdWV1ZSgpOwotCi0gICAgLyogUG9zdHMgYSB3b3JrIHVuaXQgdG8gcnVuIGxhdGVyLgotICAgICAqIElmIHRoZSB3b3JrIHF1ZXVlIGhhcyBiZWVuIGNhbmNlbGVkIG9yIGlzIGFscmVhZHkgZmluaXNoZWQsIHJldHVybnMgSU5WQUxJRF9PUEVSQVRJT04KLSAgICAgKiBhbmQgZG9lcyBub3QgdGFrZSBvd25lcnNoaXAgb2YgdGhlIHdvcmsgdW5pdCAoY2FsbGVyIG11c3QgZGVzdHJveSBpdCBpdHNlbGYpLgotICAgICAqIE90aGVyd2lzZSwgcmV0dXJucyBPSyBhbmQgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSB3b3JrIHVuaXQgKHRoZSB3b3JrIHF1ZXVlIHdpbGwKLSAgICAgKiBkZXN0cm95IGl0IGF1dG9tYXRpY2FsbHkpLgotICAgICAqCi0gICAgICogRm9yIGZsb3cgY29udHJvbCwgdGhpcyBtZXRob2QgYmxvY2tzIHdoZW4gdGhlIHNpemUgb2YgdGhlIHBlbmRpbmcgd29yayBxdWV1ZSBpcyBtb3JlCi0gICAgICogJ2JhY2tsb2cnIHRpbWVzIHRoZSBudW1iZXIgb2YgdGhyZWFkcy4gIFRoaXMgY29uZGl0aW9uIHJlZHVjZXMgdGhlIHJhdGUgb2YgZW50cnkgaW50bwotICAgICAqIHRoZSBwZW5kaW5nIHdvcmsgcXVldWUgYW5kIHByZXZlbnRzIGl0IGZyb20gZ3Jvd2luZyBtdWNoIG1vcmUgcmFwaWRseSB0aGFuIHRoZQotICAgICAqIHdvcmsgdGhyZWFkcyBjYW4gYWN0dWFsbHkgaGFuZGxlLgotICAgICAqCi0gICAgICogSWYgJ2JhY2tsb2cnIGlzIDAsIHRoZW4gbm8gdGhyb3R0bGUgaXMgYXBwbGllZC4KLSAgICAgKi8KLSAgICBzdGF0dXNfdCBzY2hlZHVsZShXb3JrVW5pdCogd29ya1VuaXQsIHNpemVfdCBiYWNrbG9nID0gMik7Ci0KLSAgICAvKiBDYW5jZWxzIGFsbCBwZW5kaW5nIHdvcmsuCi0gICAgICogSWYgdGhlIHdvcmsgcXVldWUgaXMgYWxyZWFkeSBmaW5pc2hlZCwgcmV0dXJucyBJTlZBTElEX09QRVJBVElPTi4KLSAgICAgKiBJZiB0aGUgd29yayBxdWV1ZSBpcyBhbHJlYWR5IGNhbmNlbGVkLCByZXR1cm5zIE9LIGFuZCBkb2VzIG5vdGhpbmcgZWxzZS4KLSAgICAgKiBPdGhlcndpc2UsIHJldHVybnMgT0ssIGRpc2NhcmRzIGFsbCBwZW5kaW5nIHdvcmsgdW5pdHMgYW5kIHByZXZlbnRzIGFkZGl0aW9uYWwKLSAgICAgKiB3b3JrIHVuaXRzIGZyb20gYmVpbmcgc2NoZWR1bGVkLgotICAgICAqCi0gICAgICogQ2FsbCBmaW5pc2goKSBhZnRlciBjYW5jZWwoKSB0byB3YWl0IGZvciBhbGwgcmVtYWluaW5nIHdvcmsgdG8gY29tcGxldGUuCi0gICAgICovCi0gICAgc3RhdHVzX3QgY2FuY2VsKCk7Ci0KLSAgICAvKiBXYWl0cyBmb3IgYWxsIHdvcmsgdG8gY29tcGxldGUuCi0gICAgICogSWYgdGhlIHdvcmsgcXVldWUgaXMgYWxyZWFkeSBmaW5pc2hlZCwgcmV0dXJucyBJTlZBTElEX09QRVJBVElPTi4KLSAgICAgKiBPdGhlcndpc2UsIHdhaXRzIGZvciBhbGwgd29yayB0byBjb21wbGV0ZSBhbmQgcmV0dXJucyBPSy4KLSAgICAgKi8KLSAgICBzdGF0dXNfdCBmaW5pc2goKTsKLQotcHJpdmF0ZToKLSAgICBjbGFzcyBXb3JrVGhyZWFkIDogcHVibGljIFRocmVhZCB7Ci0gICAgcHVibGljOgotICAgICAgICBXb3JrVGhyZWFkKFdvcmtRdWV1ZSogd29ya1F1ZXVlLCBib29sIGNhbkNhbGxKYXZhKTsKLSAgICAgICAgdmlydHVhbCB+V29ya1RocmVhZCgpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBib29sIHRocmVhZExvb3AoKTsKLQotICAgICAgICBXb3JrUXVldWUqIGNvbnN0IG1Xb3JrUXVldWU7Ci0gICAgfTsKLQotICAgIHN0YXR1c190IGNhbmNlbExvY2tlZCgpOwotICAgIGJvb2wgdGhyZWFkTG9vcCgpOyAvLyBjYWxsZWQgZnJvbSBlYWNoIHdvcmsgdGhyZWFkCi0KLSAgICBjb25zdCBzaXplX3QgbU1heFRocmVhZHM7Ci0gICAgY29uc3QgYm9vbCBtQ2FuQ2FsbEphdmE7Ci0KLSAgICBNdXRleCBtTG9jazsKLSAgICBDb25kaXRpb24gbVdvcmtDaGFuZ2VkQ29uZGl0aW9uOwotICAgIENvbmRpdGlvbiBtV29ya0RlcXVldWVkQ29uZGl0aW9uOwotCi0gICAgYm9vbCBtQ2FuY2VsZWQ7Ci0gICAgYm9vbCBtRmluaXNoZWQ7Ci0gICAgc2l6ZV90IG1JZGxlVGhyZWFkczsKLSAgICBWZWN0b3I8c3A8V29ya1RocmVhZD4gPiBtV29ya1RocmVhZHM7Ci0gICAgVmVjdG9yPFdvcmtVbml0Kj4gbVdvcmtVbml0czsKLX07Ci0KLX07IC8vIG5hbWVzcGFjZSBhbmRyb2lkCi0KLSNlbmRpZiAvLyBBQVBUX1dPUktfUVVFVUVfSApkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC9YTUxOb2RlLmNwcCBiL3Rvb2xzL2FhcHQvWE1MTm9kZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2NjNhZDUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9YTUxOb2RlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE1MTAgKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDA2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0vLyBCdWlsZCByZXNvdXJjZSBmaWxlcyBmcm9tIHJhdyBhc3NldHMuCi0vLwotCi0jaW5jbHVkZSAiWE1MTm9kZS5oIgotI2luY2x1ZGUgIlJlc291cmNlVGFibGUuaCIKLSNpbmNsdWRlICJwc2V1ZG9sb2NhbGl6ZS5oIgotCi0jaW5jbHVkZSA8dXRpbHMvQnl0ZU9yZGVyLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2lmbmRlZiBIQVZFX01TX0NfUlVOVElNRQotI2RlZmluZSBPX0JJTkFSWSAwCi0jZW5kaWYKLQotI2RlZmluZSBOT0lTWSh4KSAvL3gKLSNkZWZpbmUgTk9JU1lfUEFSU0UoeCkgLy94Ci0KLWNvbnN0IGNoYXIqIGNvbnN0IFJFU09VUkNFU19ST09UX05BTUVTUEFDRSA9ICJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzLyI7Ci1jb25zdCBjaGFyKiBjb25zdCBSRVNPVVJDRVNfQU5EUk9JRF9OQU1FU1BBQ0UgPSAiaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIjsKLWNvbnN0IGNoYXIqIGNvbnN0IFJFU09VUkNFU19BVVRPX1BBQ0tBR0VfTkFNRVNQQUNFID0gImh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMtYXV0byI7Ci1jb25zdCBjaGFyKiBjb25zdCBSRVNPVVJDRVNfUk9PVF9QUlZfTkFNRVNQQUNFID0gImh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9wcnYvcmVzLyI7Ci0KLWNvbnN0IGNoYXIqIGNvbnN0IFhMSUZGX1hNTE5TID0gInVybjpvYXNpczpuYW1lczp0Yzp4bGlmZjpkb2N1bWVudDoxLjIiOwotY29uc3QgY2hhciogY29uc3QgQUxMT1dFRF9YTElGRl9FTEVNRU5UU1tdID0gewotICAgICAgICAiYnB0IiwKLSAgICAgICAgImVwdCIsCi0gICAgICAgICJpdCIsCi0gICAgICAgICJwaCIsCi0gICAgICAgICJnIiwKLSAgICAgICAgImJ4IiwKLSAgICAgICAgImV4IiwKLSAgICAgICAgIngiCi0gICAgfTsKLQotYm9vbCBpc1doaXRlc3BhY2UoY29uc3QgY2hhcjE2X3QqIHN0cikKLXsKLSAgICB3aGlsZSAoKnN0ciAhPSAwICYmICpzdHIgPCAxMjggJiYgaXNzcGFjZSgqc3RyKSkgewotICAgICAgICBzdHIrKzsKLSAgICB9Ci0gICAgcmV0dXJuICpzdHIgPT0gMDsKLX0KLQotc3RhdGljIGNvbnN0IFN0cmluZzE2IFJFU09VUkNFU19QUkVGSVgoUkVTT1VSQ0VTX1JPT1RfTkFNRVNQQUNFKTsKLXN0YXRpYyBjb25zdCBTdHJpbmcxNiBSRVNPVVJDRVNfUFJFRklYX0FVVE9fUEFDS0FHRShSRVNPVVJDRVNfQVVUT19QQUNLQUdFX05BTUVTUEFDRSk7Ci1zdGF0aWMgY29uc3QgU3RyaW5nMTYgUkVTT1VSQ0VTX1BSVl9QUkVGSVgoUkVTT1VSQ0VTX1JPT1RfUFJWX05BTUVTUEFDRSk7Ci1zdGF0aWMgY29uc3QgU3RyaW5nMTYgUkVTT1VSQ0VTX1RPT0xTX05BTUVTUEFDRSgiaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vdG9vbHMiKTsKLQotU3RyaW5nMTYgZ2V0TmFtZXNwYWNlUmVzb3VyY2VQYWNrYWdlKFN0cmluZzE2IGFwcFBhY2thZ2UsIFN0cmluZzE2IG5hbWVzcGFjZVVyaSwgYm9vbCogb3V0SXNQdWJsaWMpCi17Ci0gICAgLy9wcmludGYoIiVzIHN0YXJ0cyB3aXRoICVzP1xuIiwgU3RyaW5nOChuYW1lc3BhY2VVcmkpLnN0cmluZygpLAotICAgIC8vICAgICAgIFN0cmluZzgoUkVTT1VSQ0VTX1BSRUZJWCkuc3RyaW5nKCkpOwotICAgIHNpemVfdCBwcmVmaXhTaXplOwotICAgIGJvb2wgaXNQdWJsaWMgPSB0cnVlOwotICAgIGlmKG5hbWVzcGFjZVVyaS5zdGFydHNXaXRoKFJFU09VUkNFU19QUkVGSVhfQVVUT19QQUNLQUdFKSkgewotICAgICAgICBOT0lTWShwcmludGYoIlVzaW5nIGRlZmF1bHQgYXBwbGljYXRpb24gcGFja2FnZTogJXMgLT4gJXNcbiIsIFN0cmluZzgobmFtZXNwYWNlVXJpKS5zdHJpbmcoKSwgU3RyaW5nOChhcHBQYWNrYWdlKS5zdHJpbmcoKSkpOwotICAgICAgICBpc1B1YmxpYyA9IHRydWU7Ci0gICAgICAgIHJldHVybiBhcHBQYWNrYWdlOwotICAgIH0gZWxzZSBpZiAobmFtZXNwYWNlVXJpLnN0YXJ0c1dpdGgoUkVTT1VSQ0VTX1BSRUZJWCkpIHsKLSAgICAgICAgcHJlZml4U2l6ZSA9IFJFU09VUkNFU19QUkVGSVguc2l6ZSgpOwotICAgIH0gZWxzZSBpZiAobmFtZXNwYWNlVXJpLnN0YXJ0c1dpdGgoUkVTT1VSQ0VTX1BSVl9QUkVGSVgpKSB7Ci0gICAgICAgIGlzUHVibGljID0gZmFsc2U7Ci0gICAgICAgIHByZWZpeFNpemUgPSBSRVNPVVJDRVNfUFJWX1BSRUZJWC5zaXplKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG91dElzUHVibGljKSAqb3V0SXNQdWJsaWMgPSBpc1B1YmxpYzsgLy8gPSB0cnVlCi0gICAgICAgIHJldHVybiBTdHJpbmcxNigpOwotICAgIH0KLQotICAgIC8vcHJpbnRmKCJZRVMhXG4iKTsKLSAgICAvL3ByaW50ZigibmFtZXNwYWNlOiAlc1xuIiwgU3RyaW5nOChTdHJpbmcxNihuYW1lc3BhY2VVcmksIG5hbWVzcGFjZVVyaS5zaXplKCktcHJlZml4U2l6ZSwgcHJlZml4U2l6ZSkpLnN0cmluZygpKTsKLSAgICBpZiAob3V0SXNQdWJsaWMpICpvdXRJc1B1YmxpYyA9IGlzUHVibGljOwotICAgIHJldHVybiBTdHJpbmcxNihuYW1lc3BhY2VVcmksIG5hbWVzcGFjZVVyaS5zaXplKCktcHJlZml4U2l6ZSwgcHJlZml4U2l6ZSk7Ci19Ci0KLXN0YXR1c190IGhhc1N1YnN0aXR1dGlvbkVycm9ycyhjb25zdCBjaGFyKiBmaWxlTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNYTUxUcmVlKiBpblhtbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcxNiBzdHIxNikKLXsKLSAgICBjb25zdCBjaGFyMTZfdCogc3RyID0gc3RyMTYuc3RyaW5nKCk7Ci0gICAgY29uc3QgY2hhcjE2X3QqIHAgPSBzdHI7Ci0gICAgY29uc3QgY2hhcjE2X3QqIGVuZCA9IHN0ciArIHN0cjE2LnNpemUoKTsKLQotICAgIGJvb2wgbm9ucG9zaXRpb25hbCA9IGZhbHNlOwotICAgIGludCBhcmdDb3VudCA9IDA7Ci0KLSAgICB3aGlsZSAocCA8IGVuZCkgewotICAgICAgICAvKgotICAgICAgICAgKiBMb29rIGZvciB0aGUgc3RhcnQgb2YgYSBKYXZhLXN0eWxlIHN1YnN0aXR1dGlvbiBzZXF1ZW5jZS4KLSAgICAgICAgICovCi0gICAgICAgIGlmICgqcCA9PSAnJScgJiYgcCArIDEgPCBlbmQpIHsKLSAgICAgICAgICAgIHArKzsKLQotICAgICAgICAgICAgLy8gQSBsaXRlcmFsIHBlcmNlbnQgc2lnbiByZXByZXNlbnRlZCBieSAlJQotICAgICAgICAgICAgaWYgKCpwID09ICclJykgewotICAgICAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYXJnQ291bnQrKzsKLQotICAgICAgICAgICAgaWYgKCpwID49ICcwJyAmJiAqcCA8PSAnOScpIHsKLSAgICAgICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgICAgICB9IHdoaWxlICgqcCA+PSAnMCcgJiYgKnAgPD0gJzknKTsKLSAgICAgICAgICAgICAgICBpZiAoKnAgIT0gJyQnKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgbXVzdCBiZSBhIHNpemUgc3BlY2lmaWNhdGlvbiBpbnN0ZWFkIG9mIHBvc2l0aW9uLgotICAgICAgICAgICAgICAgICAgICBub25wb3NpdGlvbmFsID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKCpwID09ICc8JykgewotICAgICAgICAgICAgICAgIC8vIFJldXNpbmcgbGFzdCBhcmd1bWVudDsgYmFkIGlkZWEgc2luY2UgaXQgY2FuIGJlIHJlLWFycmFuZ2VkLgotICAgICAgICAgICAgICAgIG5vbnBvc2l0aW9uYWwgPSB0cnVlOwotICAgICAgICAgICAgICAgIHArKzsKLQotICAgICAgICAgICAgICAgIC8vIE9wdGlvbmFsbHkgJyQnIGNhbiBiZSBzcGVjaWZpZWQgYXQgdGhlIGVuZC4KLSAgICAgICAgICAgICAgICBpZiAocCA8IGVuZCAmJiAqcCA9PSAnJCcpIHsKLSAgICAgICAgICAgICAgICAgICAgcCsrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbm9ucG9zaXRpb25hbCA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIElnbm9yZSBmbGFncyBhbmQgd2lkdGhzCi0gICAgICAgICAgICB3aGlsZSAocCA8IGVuZCAmJiAoKnAgPT0gJy0nIHx8Ci0gICAgICAgICAgICAgICAgICAgICpwID09ICcjJyB8fAotICAgICAgICAgICAgICAgICAgICAqcCA9PSAnKycgfHwKLSAgICAgICAgICAgICAgICAgICAgKnAgPT0gJyAnIHx8Ci0gICAgICAgICAgICAgICAgICAgICpwID09ICcsJyB8fAotICAgICAgICAgICAgICAgICAgICAqcCA9PSAnKCcgfHwKLSAgICAgICAgICAgICAgICAgICAgKCpwID49ICcwJyAmJiAqcCA8PSAnOScpKSkgewotICAgICAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIFRoaXMgaXMgYSBzaG9ydGN1dCB0byBkZXRlY3Qgc3RyaW5ncyB0aGF0IGFyZSBnb2luZyB0byBUaW1lLmZvcm1hdCgpCi0gICAgICAgICAgICAgKiBpbnN0ZWFkIG9mIFN0cmluZy5mb3JtYXQoKQotICAgICAgICAgICAgICoKLSAgICAgICAgICAgICAqIENvbXBhcmlzb24gb2YgU3RyaW5nLmZvcm1hdCgpIGFuZCBUaW1lLmZvcm1hdCgpIGFyZ3M6Ci0gICAgICAgICAgICAgKgotICAgICAgICAgICAgICogU3RyaW5nOiBBQkMgRSBHSCAgU1QgWCBhYmNkZWZnaCAgbm9zdCB4Ci0gICAgICAgICAgICAgKiAgIFRpbWU6ICAgIERFRkdIS01TIFcgWmEgIGQgICBoa20gIHMgdyB5egotICAgICAgICAgICAgICoKLSAgICAgICAgICAgICAqIFRoZXJlZm9yZSB3ZSBrbm93IGl0J3MgZGVmaW5pdGVseSBUaW1lIGlmIHdlIGhhdmU6Ci0gICAgICAgICAgICAgKiAgICAgREZLTVdaa213eXoKLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgaWYgKHAgPCBlbmQpIHsKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKCpwKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSAnRCc6Ci0gICAgICAgICAgICAgICAgY2FzZSAnRic6Ci0gICAgICAgICAgICAgICAgY2FzZSAnSyc6Ci0gICAgICAgICAgICAgICAgY2FzZSAnTSc6Ci0gICAgICAgICAgICAgICAgY2FzZSAnVyc6Ci0gICAgICAgICAgICAgICAgY2FzZSAnWic6Ci0gICAgICAgICAgICAgICAgY2FzZSAnayc6Ci0gICAgICAgICAgICAgICAgY2FzZSAnbSc6Ci0gICAgICAgICAgICAgICAgY2FzZSAndyc6Ci0gICAgICAgICAgICAgICAgY2FzZSAneSc6Ci0gICAgICAgICAgICAgICAgY2FzZSAneic6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOT19FUlJPUjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBwKys7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBJZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgc3Vic3RpdHV0aW9uIGluIHRoaXMgc3RyaW5nIGFuZCBhbnkgb2YgdGhlbQotICAgICAqIGFyZSBub3QgaW4gcG9zaXRpb25hbCBmb3JtLCBnaXZlIHRoZSB1c2VyIGFuIGVycm9yLgotICAgICAqLwotICAgIGlmIChhcmdDb3VudCA+IDEgJiYgbm9ucG9zaXRpb25hbCkgewotICAgICAgICBTb3VyY2VQb3MoU3RyaW5nOChmaWxlTmFtZSksIGluWG1sLT5nZXRMaW5lTnVtYmVyKCkpLmVycm9yKAotICAgICAgICAgICAgICAgICJNdWx0aXBsZSBzdWJzdGl0dXRpb25zIHNwZWNpZmllZCBpbiBub24tcG9zaXRpb25hbCBmb3JtYXQ7ICIKLSAgICAgICAgICAgICAgICAiZGlkIHlvdSBtZWFuIHRvIGFkZCB0aGUgZm9ybWF0dGVkPVwiZmFsc2VcIiBhdHRyaWJ1dGU/XG4iKTsKLSAgICAgICAgcmV0dXJuIE5PVF9FTk9VR0hfREFUQTsKLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXR1c190IHBhcnNlU3R5bGVkU3RyaW5nKEJ1bmRsZSogYnVuZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZmlsZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNYTUxUcmVlKiBpblhtbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiBlbmRUYWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcxNiogb3V0U3RyaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPFN0cmluZ1Bvb2w6OmVudHJ5X3N0eWxlX3NwYW4+KiBvdXRTcGFucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNGb3JtYXR0ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHBzZXVkb2xvY2FsaXplKQotewotICAgIFZlY3RvcjxTdHJpbmdQb29sOjplbnRyeV9zdHlsZV9zcGFuPiBzcGFuU3RhY2s7Ci0gICAgU3RyaW5nMTYgY3VyU3RyaW5nOwotICAgIFN0cmluZzE2IHJhd1N0cmluZzsKLSAgICBjb25zdCBjaGFyKiBlcnJvck1zZzsKLSAgICBpbnQgeGxpZmZEZXB0aCA9IDA7Ci0gICAgYm9vbCBmaXJzdFRpbWUgPSB0cnVlOwotCi0gICAgc2l6ZV90IGxlbjsKLSAgICBSZXNYTUxUcmVlOjpldmVudF9jb2RlX3QgY29kZTsKLSAgICB3aGlsZSAoKGNvZGU9aW5YbWwtPm5leHQoKSkgIT0gUmVzWE1MVHJlZTo6RU5EX0RPQ1VNRU5UICYmIGNvZGUgIT0gUmVzWE1MVHJlZTo6QkFEX0RPQ1VNRU5UKSB7Ci0KLSAgICAgICAgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6VEVYVCkgewotICAgICAgICAgICAgU3RyaW5nMTYgdGV4dChpblhtbC0+Z2V0VGV4dCgmbGVuKSk7Ci0gICAgICAgICAgICBpZiAoZmlyc3RUaW1lICYmIHRleHQuc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgICAgIGZpcnN0VGltZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGlmICh0ZXh0LnN0cmluZygpWzBdID09ICdAJykgewotICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgcmVzb3VyY2UgcmVmZXJlbmNlLCBkb24ndCBkbyB0aGUgcHNldWRvbG9jLgotICAgICAgICAgICAgICAgICAgICBwc2V1ZG9sb2NhbGl6ZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh4bGlmZkRlcHRoID09IDAgJiYgcHNldWRvbG9jYWxpemUpIHsKLSAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBvcmlnKFN0cmluZzgodGV4dCkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIHBzZXVkbyA9IHBzZXVkb2xvY2FsaXplX3N0cmluZyhvcmlnKTsKLSAgICAgICAgICAgICAgICBjdXJTdHJpbmcuYXBwZW5kKFN0cmluZzE2KFN0cmluZzgocHNldWRvLmNfc3RyKCkpKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChpc0Zvcm1hdHRlZCAmJiBoYXNTdWJzdGl0dXRpb25FcnJvcnMoZmlsZU5hbWUsIGluWG1sLCB0ZXh0KSAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBjdXJTdHJpbmcuYXBwZW5kKHRleHQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OlNUQVJUX1RBRykgewotICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYgZWxlbWVudDE2KGluWG1sLT5nZXRFbGVtZW50TmFtZSgmbGVuKSk7Ci0gICAgICAgICAgICBjb25zdCBTdHJpbmc4IGVsZW1lbnQ4KGVsZW1lbnQxNik7Ci0KLSAgICAgICAgICAgIHNpemVfdCBuc2xlbjsKLSAgICAgICAgICAgIGNvbnN0IHVpbnQxNl90KiBucyA9IGluWG1sLT5nZXRFbGVtZW50TmFtZXNwYWNlKCZuc2xlbik7Ci0gICAgICAgICAgICBpZiAobnMgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIG5zID0gKGNvbnN0IHVpbnQxNl90KikiXDBcMCI7Ci0gICAgICAgICAgICAgICAgbnNsZW4gPSAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY29uc3QgU3RyaW5nOCBuc3BhY2UoU3RyaW5nMTYobnMsIG5zbGVuKSk7Ci0gICAgICAgICAgICBpZiAobnNwYWNlID09IFhMSUZGX1hNTE5TKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgaW50IE4gPSBzaXplb2YoQUxMT1dFRF9YTElGRl9FTEVNRU5UUykvc2l6ZW9mKEFMTE9XRURfWExJRkZfRUxFTUVOVFNbMF0pOwotICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQ4ID09IEFMTE9XRURfWExJRkZfRUxFTUVOVFNbaV0pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHhsaWZmRGVwdGgrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoaXMgY2FzZSwgdHJlYXQgaXQgbGlrZSBpdCB3YXMganVzdCB0ZXh0LCBpbiBvdGhlciB3b3JkcywgZG8gbm90aGluZwotICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGVyZSBhbmQgc2lsZW50bHkgZHJvcCB0aGlzIGVsZW1lbnQKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gbW92ZW9uOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgU291cmNlUG9zKFN0cmluZzgoZmlsZU5hbWUpLCBpblhtbC0+Z2V0TGluZU51bWJlcigpKS5lcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgdW5zdXBwb3J0ZWQgWExJRkYgdGFnIDwlcz5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDguc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgICAgICB9Ci1tb3Zlb246Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChvdXRTcGFucyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgU291cmNlUG9zKFN0cmluZzgoZmlsZU5hbWUpLCBpblhtbC0+Z2V0TGluZU51bWJlcigpKS5lcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICJGb3VuZCBzdHlsZSB0YWcgPCVzPiB3aGVyZSBzdHlsZXMgYXJlIG5vdCBhbGxvd2VkXG4iLCBlbGVtZW50OC5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICghUmVzVGFibGU6OmNvbGxlY3RTdHJpbmcob3V0U3RyaW5nLCBjdXJTdHJpbmcuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1clN0cmluZy5zaXplKCksIGZhbHNlLCAmZXJyb3JNc2csIHRydWUpKSB7Ci0gICAgICAgICAgICAgICAgU291cmNlUG9zKFN0cmluZzgoZmlsZU5hbWUpLCBpblhtbC0+Z2V0TGluZU51bWJlcigpKS5lcnJvcigiJXMgKGluICVzKVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTXNnLCBTdHJpbmc4KGN1clN0cmluZykuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmF3U3RyaW5nLmFwcGVuZChjdXJTdHJpbmcpOwotICAgICAgICAgICAgY3VyU3RyaW5nID0gU3RyaW5nMTYoKTsKLQotICAgICAgICAgICAgU3RyaW5nUG9vbDo6ZW50cnlfc3R5bGVfc3BhbiBzcGFuOwotICAgICAgICAgICAgc3Bhbi5uYW1lID0gZWxlbWVudDE2OwotICAgICAgICAgICAgZm9yIChzaXplX3QgYWk9MDsgYWk8aW5YbWwtPmdldEF0dHJpYnV0ZUNvdW50KCk7IGFpKyspIHsKLSAgICAgICAgICAgICAgICBzcGFuLm5hbWUuYXBwZW5kKFN0cmluZzE2KCI7IikpOwotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIxNl90KiBzdHIgPSBpblhtbC0+Z2V0QXR0cmlidXRlTmFtZShhaSwgJmxlbik7Ci0gICAgICAgICAgICAgICAgc3Bhbi5uYW1lLmFwcGVuZChzdHIsIGxlbik7Ci0gICAgICAgICAgICAgICAgc3Bhbi5uYW1lLmFwcGVuZChTdHJpbmcxNigiPSIpKTsKLSAgICAgICAgICAgICAgICBzdHIgPSBpblhtbC0+Z2V0QXR0cmlidXRlU3RyaW5nVmFsdWUoYWksICZsZW4pOwotICAgICAgICAgICAgICAgIHNwYW4ubmFtZS5hcHBlbmQoc3RyLCBsZW4pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy9wcmludGYoIlNwYW46ICVzXG4iLCBTdHJpbmc4KHNwYW4ubmFtZSkuc3RyaW5nKCkpOwotICAgICAgICAgICAgc3Bhbi5zcGFuLmZpcnN0Q2hhciA9IHNwYW4uc3Bhbi5sYXN0Q2hhciA9IG91dFN0cmluZy0+c2l6ZSgpOwotICAgICAgICAgICAgc3BhblN0YWNrLnB1c2goc3Bhbik7Ci0KLSAgICAgICAgfSBlbHNlIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OkVORF9UQUcpIHsKLSAgICAgICAgICAgIHNpemVfdCBuc2xlbjsKLSAgICAgICAgICAgIGNvbnN0IHVpbnQxNl90KiBucyA9IGluWG1sLT5nZXRFbGVtZW50TmFtZXNwYWNlKCZuc2xlbik7Ci0gICAgICAgICAgICBpZiAobnMgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIG5zID0gKGNvbnN0IHVpbnQxNl90KikiXDBcMCI7Ci0gICAgICAgICAgICAgICAgbnNsZW4gPSAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY29uc3QgU3RyaW5nOCBuc3BhY2UoU3RyaW5nMTYobnMsIG5zbGVuKSk7Ci0gICAgICAgICAgICBpZiAobnNwYWNlID09IFhMSUZGX1hNTE5TKSB7Ci0gICAgICAgICAgICAgICAgeGxpZmZEZXB0aC0tOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCFSZXNUYWJsZTo6Y29sbGVjdFN0cmluZyhvdXRTdHJpbmcsIGN1clN0cmluZy5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyU3RyaW5nLnNpemUoKSwgZmFsc2UsICZlcnJvck1zZywgdHJ1ZSkpIHsKLSAgICAgICAgICAgICAgICBTb3VyY2VQb3MoU3RyaW5nOChmaWxlTmFtZSksIGluWG1sLT5nZXRMaW5lTnVtYmVyKCkpLmVycm9yKCIlcyAoaW4gJXMpXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNc2csIFN0cmluZzgoY3VyU3RyaW5nKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByYXdTdHJpbmcuYXBwZW5kKGN1clN0cmluZyk7Ci0gICAgICAgICAgICBjdXJTdHJpbmcgPSBTdHJpbmcxNigpOwotCi0gICAgICAgICAgICBpZiAoc3BhblN0YWNrLnNpemUoKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHN0cmNtcDE2KGluWG1sLT5nZXRFbGVtZW50TmFtZSgmbGVuKSwgZW5kVGFnLnN0cmluZygpKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhTdHJpbmc4KGZpbGVOYW1lKSwgaW5YbWwtPmdldExpbmVOdW1iZXIoKSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvdW5kIHRhZyAlcyB3aGVyZSA8JXM+IGNsb3NlIGlzIGV4cGVjdGVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoaW5YbWwtPmdldEVsZW1lbnROYW1lKCZsZW4pKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGVuZFRhZykuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBTdHJpbmdQb29sOjplbnRyeV9zdHlsZV9zcGFuIHNwYW4gPSBzcGFuU3RhY2sudG9wKCk7Ci0gICAgICAgICAgICBTdHJpbmcxNiBzcGFuVGFnOwotICAgICAgICAgICAgc3NpemVfdCBzZW1pID0gc3Bhbi5uYW1lLmZpbmRGaXJzdCgnOycpOwotICAgICAgICAgICAgaWYgKHNlbWkgPj0gMCkgewotICAgICAgICAgICAgICAgIHNwYW5UYWcuc2V0VG8oc3Bhbi5uYW1lLnN0cmluZygpLCBzZW1pKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc3BhblRhZy5zZXRUbyhzcGFuLm5hbWUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHN0cmNtcDE2KGluWG1sLT5nZXRFbGVtZW50TmFtZSgmbGVuKSwgc3BhblRhZy5zdHJpbmcoKSkgIT0gMCkgewotICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhTdHJpbmc4KGZpbGVOYW1lKSwgaW5YbWwtPmdldExpbmVOdW1iZXIoKSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAiRm91bmQgY2xvc2UgdGFnICVzIHdoZXJlIGNsb3NlIHRhZyAlcyBpcyBleHBlY3RlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoaW5YbWwtPmdldEVsZW1lbnROYW1lKCZsZW4pKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoc3BhblRhZykuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYm9vbCBlbXB0eSA9IHRydWU7Ci0gICAgICAgICAgICBpZiAob3V0U3RyaW5nLT5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgc3Bhbi5zcGFuLmxhc3RDaGFyID0gb3V0U3RyaW5nLT5zaXplKCktMTsKLSAgICAgICAgICAgICAgICBpZiAoc3Bhbi5zcGFuLmxhc3RDaGFyID49IHNwYW4uc3Bhbi5maXJzdENoYXIpIHsKLSAgICAgICAgICAgICAgICAgICAgZW1wdHkgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgb3V0U3BhbnMtPmFkZChzcGFuKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzcGFuU3RhY2sucG9wKCk7Ci0KLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBUaGlzIHdhcm5pbmcgc2VlbXMgdG8gYmUganVzdCBhbiBpcnJpdGF0aW9uIHRvIG1vc3QgcGVvcGxlLAotICAgICAgICAgICAgICogc2luY2UgaXQgaXMgdHlwaWNhbGx5IGludHJvZHVjZWQgYnkgdHJhbnNsYXRvcnMgd2hvIHRoZW4gbmV2ZXIKLSAgICAgICAgICAgICAqIHNlZSB0aGUgd2FybmluZy4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgaWYgKDAgJiYgZW1wdHkpIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkOiB3YXJuaW5nOiBlbXB0eSAnJXMnIHNwYW4gZm91bmQgaW4gdGV4dCAnJXMnXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWUsIGluWG1sLT5nZXRMaW5lTnVtYmVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHNwYW5UYWcpLnN0cmluZygpLCBTdHJpbmc4KCpvdXRTdHJpbmcpLnN0cmluZygpKTsKLQotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6U1RBUlRfTkFNRVNQQUNFKSB7Ci0gICAgICAgICAgICAvLyBub3RoaW5nCi0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoY29kZSA9PSBSZXNYTUxUcmVlOjpCQURfRE9DVU1FTlQpIHsKLSAgICAgICAgICAgIFNvdXJjZVBvcyhTdHJpbmc4KGZpbGVOYW1lKSwgaW5YbWwtPmdldExpbmVOdW1iZXIoKSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICJFcnJvciBwYXJzaW5nIFhNTFxuIik7Ci0gICAgfQotCi0gICAgaWYgKG91dFNwYW5zICE9IE5VTEwgJiYgb3V0U3BhbnMtPnNpemUoKSA+IDApIHsKLSAgICAgICAgaWYgKGN1clN0cmluZy5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICBpZiAoIVJlc1RhYmxlOjpjb2xsZWN0U3RyaW5nKG91dFN0cmluZywgY3VyU3RyaW5nLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJTdHJpbmcuc2l6ZSgpLCBmYWxzZSwgJmVycm9yTXNnLCB0cnVlKSkgewotICAgICAgICAgICAgICAgIFNvdXJjZVBvcyhTdHJpbmc4KGZpbGVOYW1lKSwgaW5YbWwtPmdldExpbmVOdW1iZXIoKSkuZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAiJXMgKGluICVzKVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTXNnLCBTdHJpbmc4KGN1clN0cmluZykuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gVGhlcmUgaXMgbm8gc3R5bGUgaW5mb3JtYXRpb24sIHNvIHN0cmluZyBwcm9jZXNzaW5nIHdpbGwgaGFwcGVuCi0gICAgICAgIC8vIGxhdGVyIGFzIHBhcnQgb2YgdGhlIG92ZXJhbGwgdHlwZSBjb252ZXJzaW9uLiAgUmV0dXJuIHRvIHRoZQotICAgICAgICAvLyBjbGllbnQgdGhlIHJhdyB1bnByb2Nlc3NlZCB0ZXh0LgotICAgICAgICByYXdTdHJpbmcuYXBwZW5kKGN1clN0cmluZyk7Ci0gICAgICAgIG91dFN0cmluZy0+c2V0VG8ocmF3U3RyaW5nKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0cnVjdCBuYW1lc3BhY2VfZW50cnkgewotICAgIFN0cmluZzggcHJlZml4OwotICAgIFN0cmluZzggdXJpOwotfTsKLQotc3RhdGljIFN0cmluZzggbWFrZV9wcmVmaXgoaW50IGRlcHRoKQotewotICAgIFN0cmluZzggcHJlZml4OwotICAgIGludCBpOwotICAgIGZvciAoaT0wOyBpPGRlcHRoOyBpKyspIHsKLSAgICAgICAgcHJlZml4LmFwcGVuZCgiICAiKTsKLSAgICB9Ci0gICAgcmV0dXJuIHByZWZpeDsKLX0KLQotc3RhdGljIFN0cmluZzggYnVpbGRfbmFtZXNwYWNlKGNvbnN0IFZlY3RvcjxuYW1lc3BhY2VfZW50cnk+JiBuYW1lc3BhY2VzLAotICAgICAgICBjb25zdCB1aW50MTZfdCogbnMpCi17Ci0gICAgU3RyaW5nOCBzdHI7Ci0gICAgaWYgKG5zICE9IE5VTEwpIHsKLSAgICAgICAgc3RyID0gU3RyaW5nOChucyk7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBOID0gbmFtZXNwYWNlcy5zaXplKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgICAgIGNvbnN0IG5hbWVzcGFjZV9lbnRyeSYgbmUgPSBuYW1lc3BhY2VzLml0ZW1BdChpKTsKLSAgICAgICAgICAgIGlmIChuZS51cmkgPT0gc3RyKSB7Ci0gICAgICAgICAgICAgICAgc3RyID0gbmUucHJlZml4OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHN0ci5hcHBlbmQoIjoiKTsKLSAgICB9Ci0gICAgcmV0dXJuIHN0cjsKLX0KLQotdm9pZCBwcmludFhNTEJsb2NrKFJlc1hNTFRyZWUqIGJsb2NrKQotewotICAgIGJsb2NrLT5yZXN0YXJ0KCk7Ci0KLSAgICBWZWN0b3I8bmFtZXNwYWNlX2VudHJ5PiBuYW1lc3BhY2VzOwotICAgIAotICAgIFJlc1hNTFRyZWU6OmV2ZW50X2NvZGVfdCBjb2RlOwotICAgIGludCBkZXB0aCA9IDA7Ci0gICAgd2hpbGUgKChjb2RlPWJsb2NrLT5uZXh0KCkpICE9IFJlc1hNTFRyZWU6OkVORF9ET0NVTUVOVCAmJiBjb2RlICE9IFJlc1hNTFRyZWU6OkJBRF9ET0NVTUVOVCkgewotICAgICAgICBTdHJpbmc4IHByZWZpeCA9IG1ha2VfcHJlZml4KGRlcHRoKTsKLSAgICAgICAgaW50IGk7Ci0gICAgICAgIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OlNUQVJUX1RBRykgewotICAgICAgICAgICAgc2l6ZV90IGxlbjsKLSAgICAgICAgICAgIGNvbnN0IHVpbnQxNl90KiBuczE2ID0gYmxvY2stPmdldEVsZW1lbnROYW1lc3BhY2UoJmxlbik7Ci0gICAgICAgICAgICBTdHJpbmc4IGVsZW1OcyA9IGJ1aWxkX25hbWVzcGFjZShuYW1lc3BhY2VzLCBuczE2KTsKLSAgICAgICAgICAgIGNvbnN0IHVpbnQxNl90KiBjb20xNiA9IGJsb2NrLT5nZXRDb21tZW50KCZsZW4pOwotICAgICAgICAgICAgaWYgKGNvbTE2KSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCIlcyA8IS0tICVzIC0tPlxuIiwgcHJlZml4LnN0cmluZygpLCBTdHJpbmc4KGNvbTE2KS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmludGYoIiVzRTogJXMlcyAobGluZT0lZClcbiIsIHByZWZpeC5zdHJpbmcoKSwgZWxlbU5zLnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgIFN0cmluZzgoYmxvY2stPmdldEVsZW1lbnROYW1lKCZsZW4pKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICBibG9jay0+Z2V0TGluZU51bWJlcigpKTsKLSAgICAgICAgICAgIGludCBOID0gYmxvY2stPmdldEF0dHJpYnV0ZUNvdW50KCk7Ci0gICAgICAgICAgICBkZXB0aCsrOwotICAgICAgICAgICAgcHJlZml4ID0gbWFrZV9wcmVmaXgoZGVwdGgpOwotICAgICAgICAgICAgZm9yIChpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgdWludDMyX3QgcmVzID0gYmxvY2stPmdldEF0dHJpYnV0ZU5hbWVSZXNJRChpKTsKLSAgICAgICAgICAgICAgICBuczE2ID0gYmxvY2stPmdldEF0dHJpYnV0ZU5hbWVzcGFjZShpLCAmbGVuKTsKLSAgICAgICAgICAgICAgICBTdHJpbmc4IG5zID0gYnVpbGRfbmFtZXNwYWNlKG5hbWVzcGFjZXMsIG5zMTYpOwotICAgICAgICAgICAgICAgIFN0cmluZzggbmFtZShibG9jay0+Z2V0QXR0cmlidXRlTmFtZShpLCAmbGVuKSk7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCIlc0E6ICIsIHByZWZpeC5zdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlcykgewotICAgICAgICAgICAgICAgICAgICBwcmludGYoIiVzJXMoMHglMDh4KSIsIG5zLnN0cmluZygpLCBuYW1lLnN0cmluZygpLCByZXMpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiJXMlcyIsIG5zLnN0cmluZygpLCBuYW1lLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgUmVzX3ZhbHVlIHZhbHVlOwotICAgICAgICAgICAgICAgIGJsb2NrLT5nZXRBdHRyaWJ1dGVWYWx1ZShpLCAmdmFsdWUpOwotICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5kYXRhVHlwZSA9PSBSZXNfdmFsdWU6OlRZUEVfTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBwcmludGYoIj0obnVsbCkiKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLmRhdGFUeXBlID09IFJlc192YWx1ZTo6VFlQRV9SRUZFUkVOQ0UpIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCI9QDB4JXgiLCAoaW50KXZhbHVlLmRhdGEpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUuZGF0YVR5cGUgPT0gUmVzX3ZhbHVlOjpUWVBFX0FUVFJJQlVURSkgewotICAgICAgICAgICAgICAgICAgICBwcmludGYoIj0/MHgleCIsIChpbnQpdmFsdWUuZGF0YSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5kYXRhVHlwZSA9PSBSZXNfdmFsdWU6OlRZUEVfU1RSSU5HKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiPVwiJXNcIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzVGFibGU6Om5vcm1hbGl6ZUZvck91dHB1dChTdHJpbmc4KGJsb2NrLT5nZXRBdHRyaWJ1dGVTdHJpbmdWYWx1ZShpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsZW4pKS5zdHJpbmcoKSkuc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiPSh0eXBlIDB4JXgpMHgleCIsIChpbnQpdmFsdWUuZGF0YVR5cGUsIChpbnQpdmFsdWUuZGF0YSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIxNl90KiB2YWwgPSBibG9jay0+Z2V0QXR0cmlidXRlU3RyaW5nVmFsdWUoaSwgJmxlbik7Ci0gICAgICAgICAgICAgICAgaWYgKHZhbCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiIChSYXc6IFwiJXNcIikiLCBSZXNUYWJsZTo6bm9ybWFsaXplRm9yT3V0cHV0KFN0cmluZzgodmFsKS5zdHJpbmcoKSkuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwcmludGYoIlxuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoY29kZSA9PSBSZXNYTUxUcmVlOjpFTkRfVEFHKSB7Ci0gICAgICAgICAgICBkZXB0aC0tOwotICAgICAgICB9IGVsc2UgaWYgKGNvZGUgPT0gUmVzWE1MVHJlZTo6U1RBUlRfTkFNRVNQQUNFKSB7Ci0gICAgICAgICAgICBuYW1lc3BhY2VfZW50cnkgbnM7Ci0gICAgICAgICAgICBzaXplX3QgbGVuOwotICAgICAgICAgICAgY29uc3QgdWludDE2X3QqIHByZWZpeDE2ID0gYmxvY2stPmdldE5hbWVzcGFjZVByZWZpeCgmbGVuKTsKLSAgICAgICAgICAgIGlmIChwcmVmaXgxNikgewotICAgICAgICAgICAgICAgIG5zLnByZWZpeCA9IFN0cmluZzgocHJlZml4MTYpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBucy5wcmVmaXggPSAiPERFRj4iOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbnMudXJpID0gU3RyaW5nOChibG9jay0+Z2V0TmFtZXNwYWNlVXJpKCZsZW4pKTsKLSAgICAgICAgICAgIG5hbWVzcGFjZXMucHVzaChucyk7Ci0gICAgICAgICAgICBwcmludGYoIiVzTjogJXM9JXNcbiIsIHByZWZpeC5zdHJpbmcoKSwgbnMucHJlZml4LnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICBucy51cmkuc3RyaW5nKCkpOwotICAgICAgICAgICAgZGVwdGgrKzsKLSAgICAgICAgfSBlbHNlIGlmIChjb2RlID09IFJlc1hNTFRyZWU6OkVORF9OQU1FU1BBQ0UpIHsKLSAgICAgICAgICAgIGRlcHRoLS07Ci0gICAgICAgICAgICBjb25zdCBuYW1lc3BhY2VfZW50cnkmIG5zID0gbmFtZXNwYWNlcy50b3AoKTsKLSAgICAgICAgICAgIHNpemVfdCBsZW47Ci0gICAgICAgICAgICBjb25zdCB1aW50MTZfdCogcHJlZml4MTYgPSBibG9jay0+Z2V0TmFtZXNwYWNlUHJlZml4KCZsZW4pOwotICAgICAgICAgICAgU3RyaW5nOCBwcjsKLSAgICAgICAgICAgIGlmIChwcmVmaXgxNikgewotICAgICAgICAgICAgICAgIHByID0gU3RyaW5nOChwcmVmaXgxNik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHByID0gIjxERUY+IjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChucy5wcmVmaXggIT0gcHIpIHsKLSAgICAgICAgICAgICAgICBwcmVmaXggPSBtYWtlX3ByZWZpeChkZXB0aCk7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCIlcyoqKiBCQUQgRU5EIE5TIFBSRUZJWDogZm91bmQ9JXMsIGV4cGVjdGVkPSVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4LnN0cmluZygpLCBwci5zdHJpbmcoKSwgbnMucHJlZml4LnN0cmluZygpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFN0cmluZzggdXJpID0gU3RyaW5nOChibG9jay0+Z2V0TmFtZXNwYWNlVXJpKCZsZW4pKTsKLSAgICAgICAgICAgIGlmIChucy51cmkgIT0gdXJpKSB7Ci0gICAgICAgICAgICAgICAgcHJlZml4ID0gbWFrZV9wcmVmaXgoZGVwdGgpOwotICAgICAgICAgICAgICAgIHByaW50ZigiJXMgKioqIEJBRCBFTkQgTlMgVVJJOiBmb3VuZD0lcywgZXhwZWN0ZWQ9JXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXguc3RyaW5nKCksIHVyaS5zdHJpbmcoKSwgbnMudXJpLnN0cmluZygpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG5hbWVzcGFjZXMucG9wKCk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY29kZSA9PSBSZXNYTUxUcmVlOjpURVhUKSB7Ci0gICAgICAgICAgICBzaXplX3QgbGVuOwotICAgICAgICAgICAgcHJpbnRmKCIlc0M6IFwiJXNcIlxuIiwgcHJlZml4LnN0cmluZygpLAotICAgICAgICAgICAgICAgICAgICBSZXNUYWJsZTo6bm9ybWFsaXplRm9yT3V0cHV0KFN0cmluZzgoYmxvY2stPmdldFRleHQoJmxlbikpLnN0cmluZygpKS5zdHJpbmcoKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBibG9jay0+cmVzdGFydCgpOwotfQotCi1zdGF0dXNfdCBwYXJzZVhNTFJlc291cmNlKGNvbnN0IHNwPEFhcHRGaWxlPiYgZmlsZSwgUmVzWE1MVHJlZSogb3V0VHJlZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBzdHJpcEFsbCwgYm9vbCBrZWVwQ29tbWVudHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqKiBjRGF0YVRhZ3MpCi17Ci0gICAgc3A8WE1MTm9kZT4gcm9vdCA9IFhNTE5vZGU6OnBhcnNlKGZpbGUpOwotICAgIGlmIChyb290ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotICAgIHJvb3QtPnJlbW92ZVdoaXRlc3BhY2Uoc3RyaXBBbGwsIGNEYXRhVGFncyk7Ci0KLSAgICBOT0lTWShwcmludGYoIklucHV0IFhNTCBmcm9tICVzOlxuIiwgKGNvbnN0IGNoYXIqKWZpbGUtPmdldFByaW50YWJsZVNvdXJjZSgpKSk7Ci0gICAgTk9JU1kocm9vdC0+cHJpbnQoKSk7Ci0gICAgc3A8QWFwdEZpbGU+IHJzYyA9IG5ldyBBYXB0RmlsZShTdHJpbmc4KCksIEFhcHRHcm91cEVudHJ5KCksIFN0cmluZzgoKSk7Ci0gICAgc3RhdHVzX3QgZXJyID0gcm9vdC0+ZmxhdHRlbihyc2MsICFrZWVwQ29tbWVudHMsIGZhbHNlKTsKLSAgICBpZiAoZXJyICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIHJldHVybiBlcnI7Ci0gICAgfQotICAgIGVyciA9IG91dFRyZWUtPnNldFRvKHJzYy0+Z2V0RGF0YSgpLCByc2MtPmdldFNpemUoKSwgdHJ1ZSk7Ci0gICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLQotICAgIE5PSVNZKHByaW50ZigiT3V0cHV0IFhNTDpcbiIpKTsKLSAgICBOT0lTWShwcmludFhNTEJsb2NrKG91dFRyZWUpKTsKLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3A8WE1MTm9kZT4gWE1MTm9kZTo6cGFyc2UoY29uc3Qgc3A8QWFwdEZpbGU+JiBmaWxlKQotewotICAgIGNoYXIgYnVmWzE2Mzg0XTsKLSAgICBpbnQgZmQgPSBvcGVuKGZpbGUtPmdldFNvdXJjZUZpbGUoKS5zdHJpbmcoKSwgT19SRE9OTFkgfCBPX0JJTkFSWSk7Ci0gICAgaWYgKGZkIDwgMCkgewotICAgICAgICBTb3VyY2VQb3MoZmlsZS0+Z2V0U291cmNlRmlsZSgpLCAtMSkuZXJyb3IoIlVuYWJsZSB0byBvcGVuIGZpbGUgZm9yIHJlYWQ6ICVzIiwKLSAgICAgICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICBYTUxfUGFyc2VyIHBhcnNlciA9IFhNTF9QYXJzZXJDcmVhdGVOUyhOVUxMLCAxKTsKLSAgICBQYXJzZVN0YXRlIHN0YXRlOwotICAgIHN0YXRlLmZpbGVuYW1lID0gZmlsZS0+Z2V0UHJpbnRhYmxlU291cmNlKCk7Ci0gICAgc3RhdGUucGFyc2VyID0gcGFyc2VyOwotICAgIFhNTF9TZXRVc2VyRGF0YShwYXJzZXIsICZzdGF0ZSk7Ci0gICAgWE1MX1NldEVsZW1lbnRIYW5kbGVyKHBhcnNlciwgc3RhcnRFbGVtZW50LCBlbmRFbGVtZW50KTsKLSAgICBYTUxfU2V0TmFtZXNwYWNlRGVjbEhhbmRsZXIocGFyc2VyLCBzdGFydE5hbWVzcGFjZSwgZW5kTmFtZXNwYWNlKTsKLSAgICBYTUxfU2V0Q2hhcmFjdGVyRGF0YUhhbmRsZXIocGFyc2VyLCBjaGFyYWN0ZXJEYXRhKTsKLSAgICBYTUxfU2V0Q29tbWVudEhhbmRsZXIocGFyc2VyLCBjb21tZW50RGF0YSk7Ci0KLSAgICBzc2l6ZV90IGxlbjsKLSAgICBib29sIGRvbmU7Ci0gICAgZG8gewotICAgICAgICBsZW4gPSByZWFkKGZkLCBidWYsIHNpemVvZihidWYpKTsKLSAgICAgICAgZG9uZSA9IGxlbiA8IChzc2l6ZV90KXNpemVvZihidWYpOwotICAgICAgICBpZiAobGVuIDwgMCkgewotICAgICAgICAgICAgU291cmNlUG9zKGZpbGUtPmdldFNvdXJjZUZpbGUoKSwgLTEpLmVycm9yKCJFcnJvciByZWFkaW5nIGZpbGU6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICAgICAgY2xvc2UoZmQpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKFhNTF9QYXJzZShwYXJzZXIsIGJ1ZiwgbGVuLCBkb25lKSA9PSBYTUxfU1RBVFVTX0VSUk9SKSB7Ci0gICAgICAgICAgICBTb3VyY2VQb3MoZmlsZS0+Z2V0U291cmNlRmlsZSgpLCAoaW50KVhNTF9HZXRDdXJyZW50TGluZU51bWJlcihwYXJzZXIpKS5lcnJvcigKLSAgICAgICAgICAgICAgICAgICAgIkVycm9yIHBhcnNpbmcgWE1MOiAlc1xuIiwgWE1MX0Vycm9yU3RyaW5nKFhNTF9HZXRFcnJvckNvZGUocGFyc2VyKSkpOwotICAgICAgICAgICAgY2xvc2UoZmQpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICB9IHdoaWxlICghZG9uZSk7Ci0KLSAgICBYTUxfUGFyc2VyRnJlZShwYXJzZXIpOwotICAgIGlmIChzdGF0ZS5yb290ID09IE5VTEwpIHsKLSAgICAgICAgU291cmNlUG9zKGZpbGUtPmdldFNvdXJjZUZpbGUoKSwgLTEpLmVycm9yKCJObyBYTUwgZGF0YSBnZW5lcmF0ZWQgd2hlbiBwYXJzaW5nIik7Ci0gICAgfQotICAgIGNsb3NlKGZkKTsKLSAgICByZXR1cm4gc3RhdGUucm9vdDsKLX0KLQotWE1MTm9kZTo6WE1MTm9kZShjb25zdCBTdHJpbmc4JiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nMTYmIHMxLCBjb25zdCBTdHJpbmcxNiYgczIsIGJvb2wgaXNOYW1lc3BhY2UpCi0gICAgOiBtTmV4dEF0dHJpYnV0ZUluZGV4KDB4ODAwMDAwMDApCi0gICAgLCBtRmlsZW5hbWUoZmlsZW5hbWUpCi0gICAgLCBtU3RhcnRMaW5lTnVtYmVyKDApCi0gICAgLCBtRW5kTGluZU51bWJlcigwKQotICAgICwgbVVURjgoZmFsc2UpCi17Ci0gICAgaWYgKGlzTmFtZXNwYWNlKSB7Ci0gICAgICAgIG1OYW1lc3BhY2VQcmVmaXggPSBzMTsKLSAgICAgICAgbU5hbWVzcGFjZVVyaSA9IHMyOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG1OYW1lc3BhY2VVcmkgPSBzMTsKLSAgICAgICAgbUVsZW1lbnROYW1lID0gczI7Ci0gICAgfQotfQotCi1YTUxOb2RlOjpYTUxOb2RlKGNvbnN0IFN0cmluZzgmIGZpbGVuYW1lKQotICAgIDogbUZpbGVuYW1lKGZpbGVuYW1lKQotewotICAgIG1lbXNldCgmbUNoYXJzVmFsdWUsIDAsIHNpemVvZihtQ2hhcnNWYWx1ZSkpOwotfQotCi1YTUxOb2RlOjp0eXBlIFhNTE5vZGU6OmdldFR5cGUoKSBjb25zdAotewotICAgIGlmIChtRWxlbWVudE5hbWUuc2l6ZSgpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIFRZUEVfRUxFTUVOVDsKLSAgICB9Ci0gICAgaWYgKG1OYW1lc3BhY2VVcmkuc2l6ZSgpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIFRZUEVfTkFNRVNQQUNFOwotICAgIH0KLSAgICByZXR1cm4gVFlQRV9DREFUQTsKLX0KLQotY29uc3QgU3RyaW5nMTYmIFhNTE5vZGU6OmdldE5hbWVzcGFjZVByZWZpeCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1OYW1lc3BhY2VQcmVmaXg7Ci19Ci0KLWNvbnN0IFN0cmluZzE2JiBYTUxOb2RlOjpnZXROYW1lc3BhY2VVcmkoKSBjb25zdAotewotICAgIHJldHVybiBtTmFtZXNwYWNlVXJpOwotfQotCi1jb25zdCBTdHJpbmcxNiYgWE1MTm9kZTo6Z2V0RWxlbWVudE5hbWVzcGFjZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1OYW1lc3BhY2VVcmk7Ci19Ci0KLWNvbnN0IFN0cmluZzE2JiBYTUxOb2RlOjpnZXRFbGVtZW50TmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1FbGVtZW50TmFtZTsKLX0KLQotY29uc3QgVmVjdG9yPHNwPFhNTE5vZGU+ID4mIFhNTE5vZGU6OmdldENoaWxkcmVuKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbUNoaWxkcmVuOwotfQotCi1jb25zdCBTdHJpbmc4JiBYTUxOb2RlOjpnZXRGaWxlbmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1GaWxlbmFtZTsKLX0KLSAgICAKLWNvbnN0IFZlY3RvcjxYTUxOb2RlOjphdHRyaWJ1dGVfZW50cnk+JgotICAgIFhNTE5vZGU6OmdldEF0dHJpYnV0ZXMoKSBjb25zdAotewotICAgIHJldHVybiBtQXR0cmlidXRlczsKLX0KLQotY29uc3QgWE1MTm9kZTo6YXR0cmlidXRlX2VudHJ5KiBYTUxOb2RlOjpnZXRBdHRyaWJ1dGUoY29uc3QgU3RyaW5nMTYmIG5zLAotICAgICAgICBjb25zdCBTdHJpbmcxNiYgbmFtZSkgY29uc3QKLXsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8bUF0dHJpYnV0ZXMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgY29uc3QgYXR0cmlidXRlX2VudHJ5JiBhZShtQXR0cmlidXRlcy5pdGVtQXQoaSkpOwotICAgICAgICBpZiAoYWUubnMgPT0gbnMgJiYgYWUubmFtZSA9PSBuYW1lKSB7Ci0gICAgICAgICAgICByZXR1cm4gJmFlOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIHJldHVybiBOVUxMOwotfQotCi1YTUxOb2RlOjphdHRyaWJ1dGVfZW50cnkqIFhNTE5vZGU6OmVkaXRBdHRyaWJ1dGUoY29uc3QgU3RyaW5nMTYmIG5zLAotICAgICAgICBjb25zdCBTdHJpbmcxNiYgbmFtZSkKLXsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8bUF0dHJpYnV0ZXMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgYXR0cmlidXRlX2VudHJ5ICogYWUgPSAmbUF0dHJpYnV0ZXMuZWRpdEl0ZW1BdChpKTsKLSAgICAgICAgaWYgKGFlLT5ucyA9PSBucyAmJiBhZS0+bmFtZSA9PSBuYW1lKSB7Ci0gICAgICAgICAgICByZXR1cm4gYWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gTlVMTDsKLX0KLQotY29uc3QgU3RyaW5nMTYmIFhNTE5vZGU6OmdldENEYXRhKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbUNoYXJzOwotfQotCi1jb25zdCBTdHJpbmcxNiYgWE1MTm9kZTo6Z2V0Q29tbWVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1Db21tZW50OwotfQotCi1pbnQzMl90IFhNTE5vZGU6OmdldFN0YXJ0TGluZU51bWJlcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1TdGFydExpbmVOdW1iZXI7Ci19Ci0KLWludDMyX3QgWE1MTm9kZTo6Z2V0RW5kTGluZU51bWJlcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1FbmRMaW5lTnVtYmVyOwotfQotCi1zcDxYTUxOb2RlPiBYTUxOb2RlOjpzZWFyY2hFbGVtZW50KGNvbnN0IFN0cmluZzE2JiB0YWdOYW1lc3BhY2UsIGNvbnN0IFN0cmluZzE2JiB0YWdOYW1lKQotewotICAgIGlmIChnZXRUeXBlKCkgPT0gWE1MTm9kZTo6VFlQRV9FTEVNRU5UCi0gICAgICAgICAgICAmJiBtTmFtZXNwYWNlVXJpID09IHRhZ05hbWVzcGFjZQotICAgICAgICAgICAgJiYgbUVsZW1lbnROYW1lID09IHRhZ05hbWUpIHsKLSAgICAgICAgcmV0dXJuIHRoaXM7Ci0gICAgfQotICAgIAotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxtQ2hpbGRyZW4uc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgc3A8WE1MTm9kZT4gZm91bmQgPSBtQ2hpbGRyZW4uaXRlbUF0KGkpLT5zZWFyY2hFbGVtZW50KHRhZ05hbWVzcGFjZSwgdGFnTmFtZSk7Ci0gICAgICAgIGlmIChmb3VuZCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gZm91bmQ7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLXNwPFhNTE5vZGU+IFhNTE5vZGU6OmdldENoaWxkRWxlbWVudChjb25zdCBTdHJpbmcxNiYgdGFnTmFtZXNwYWNlLCBjb25zdCBTdHJpbmcxNiYgdGFnTmFtZSkKLXsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8bUNoaWxkcmVuLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIHNwPFhNTE5vZGU+IGNoaWxkID0gbUNoaWxkcmVuLml0ZW1BdChpKTsKLSAgICAgICAgaWYgKGNoaWxkLT5nZXRUeXBlKCkgPT0gWE1MTm9kZTo6VFlQRV9FTEVNRU5UCi0gICAgICAgICAgICAgICAgJiYgY2hpbGQtPm1OYW1lc3BhY2VVcmkgPT0gdGFnTmFtZXNwYWNlCi0gICAgICAgICAgICAgICAgJiYgY2hpbGQtPm1FbGVtZW50TmFtZSA9PSB0YWdOYW1lKSB7Ci0gICAgICAgICAgICByZXR1cm4gY2hpbGQ7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLXN0YXR1c190IFhNTE5vZGU6OmFkZENoaWxkKGNvbnN0IHNwPFhNTE5vZGU+JiBjaGlsZCkKLXsKLSAgICBpZiAoZ2V0VHlwZSgpID09IFRZUEVfQ0RBVEEpIHsKLSAgICAgICAgU291cmNlUG9zKG1GaWxlbmFtZSwgY2hpbGQtPmdldFN0YXJ0TGluZU51bWJlcigpKS5lcnJvcigiQ2hpbGQgdG8gQ0RBVEEgbm9kZS4iKTsKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotICAgIC8vcHJpbnRmKCJBZGRpbmcgY2hpbGQgJXAgdG8gcGFyZW50ICVwXG4iLCBjaGlsZC5nZXQoKSwgdGhpcyk7Ci0gICAgbUNoaWxkcmVuLmFkZChjaGlsZCk7Ci0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi1zdGF0dXNfdCBYTUxOb2RlOjppbnNlcnRDaGlsZEF0KGNvbnN0IHNwPFhNTE5vZGU+JiBjaGlsZCwgc2l6ZV90IGluZGV4KQotewotICAgIGlmIChnZXRUeXBlKCkgPT0gVFlQRV9DREFUQSkgewotICAgICAgICBTb3VyY2VQb3MobUZpbGVuYW1lLCBjaGlsZC0+Z2V0U3RhcnRMaW5lTnVtYmVyKCkpLmVycm9yKCJDaGlsZCB0byBDREFUQSBub2RlLiIpOwotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0gICAgLy9wcmludGYoIkFkZGluZyBjaGlsZCAlcCB0byBwYXJlbnQgJXBcbiIsIGNoaWxkLmdldCgpLCB0aGlzKTsKLSAgICBtQ2hpbGRyZW4uaW5zZXJ0QXQoY2hpbGQsIGluZGV4KTsKLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXR1c190IFhNTE5vZGU6OmFkZEF0dHJpYnV0ZShjb25zdCBTdHJpbmcxNiYgbnMsIGNvbnN0IFN0cmluZzE2JiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiB2YWx1ZSkKLXsKLSAgICBpZiAoZ2V0VHlwZSgpID09IFRZUEVfQ0RBVEEpIHsKLSAgICAgICAgU291cmNlUG9zKG1GaWxlbmFtZSwgZ2V0U3RhcnRMaW5lTnVtYmVyKCkpLmVycm9yKCJDaGlsZCB0byBDREFUQSBub2RlLiIpOwotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0KLSAgICBpZiAobnMgIT0gUkVTT1VSQ0VTX1RPT0xTX05BTUVTUEFDRSkgewotICAgICAgICBhdHRyaWJ1dGVfZW50cnkgZTsKLSAgICAgICAgZS5pbmRleCA9IG1OZXh0QXR0cmlidXRlSW5kZXgrKzsKLSAgICAgICAgZS5ucyA9IG5zOwotICAgICAgICBlLm5hbWUgPSBuYW1lOwotICAgICAgICBlLnN0cmluZyA9IHZhbHVlOwotICAgICAgICBtQXR0cmlidXRlcy5hZGQoZSk7Ci0gICAgICAgIG1BdHRyaWJ1dGVPcmRlci5hZGQoZS5pbmRleCwgbUF0dHJpYnV0ZXMuc2l6ZSgpLTEpOwotICAgIH0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXZvaWQgWE1MTm9kZTo6c2V0QXR0cmlidXRlUmVzSUQoc2l6ZV90IGF0dHJJZHgsIHVpbnQzMl90IHJlc0lkKQotewotICAgIGF0dHJpYnV0ZV9lbnRyeSYgZSA9IG1BdHRyaWJ1dGVzLmVkaXRJdGVtQXQoYXR0cklkeCk7Ci0gICAgaWYgKGUubmFtZVJlc0lkKSB7Ci0gICAgICAgIG1BdHRyaWJ1dGVPcmRlci5yZW1vdmVJdGVtKGUubmFtZVJlc0lkKTsKLSAgICB9IGVsc2UgewotICAgICAgICBtQXR0cmlidXRlT3JkZXIucmVtb3ZlSXRlbShlLmluZGV4KTsKLSAgICB9Ci0gICAgTk9JU1kocHJpbnRmKCJFbGVtICVzICVzPVwiJXNcIjogc2V0IHJlcyBpZCA9IDB4JTA4eFxuIiwKLSAgICAgICAgICAgIFN0cmluZzgoZ2V0RWxlbWVudE5hbWUoKSkuc3RyaW5nKCksCi0gICAgICAgICAgICBTdHJpbmc4KG1BdHRyaWJ1dGVzLml0ZW1BdChhdHRySWR4KS5uYW1lKS5zdHJpbmcoKSwKLSAgICAgICAgICAgIFN0cmluZzgobUF0dHJpYnV0ZXMuaXRlbUF0KGF0dHJJZHgpLnN0cmluZykuc3RyaW5nKCksCi0gICAgICAgICAgICByZXNJZCkpOwotICAgIG1BdHRyaWJ1dGVzLmVkaXRJdGVtQXQoYXR0cklkeCkubmFtZVJlc0lkID0gcmVzSWQ7Ci0gICAgbUF0dHJpYnV0ZU9yZGVyLmFkZChyZXNJZCwgYXR0cklkeCk7Ci19Ci0KLXN0YXR1c190IFhNTE5vZGU6OmFwcGVuZENoYXJzKGNvbnN0IFN0cmluZzE2JiBjaGFycykKLXsKLSAgICBpZiAoZ2V0VHlwZSgpICE9IFRZUEVfQ0RBVEEpIHsKLSAgICAgICAgU291cmNlUG9zKG1GaWxlbmFtZSwgZ2V0U3RhcnRMaW5lTnVtYmVyKCkpLmVycm9yKCJBZGRpbmcgY2hhcmFjdGVycyB0byBlbGVtZW50IG5vZGUuIik7Ci0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLSAgICBtQ2hhcnMuYXBwZW5kKGNoYXJzKTsKLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXR1c190IFhNTE5vZGU6OmFwcGVuZENvbW1lbnQoY29uc3QgU3RyaW5nMTYmIGNvbW1lbnQpCi17Ci0gICAgaWYgKG1Db21tZW50LnNpemUoKSA+IDApIHsKLSAgICAgICAgbUNvbW1lbnQuYXBwZW5kKFN0cmluZzE2KCJcbiIpKTsKLSAgICB9Ci0gICAgbUNvbW1lbnQuYXBwZW5kKGNvbW1lbnQpOwotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotdm9pZCBYTUxOb2RlOjpzZXRTdGFydExpbmVOdW1iZXIoaW50MzJfdCBsaW5lKQotewotICAgIG1TdGFydExpbmVOdW1iZXIgPSBsaW5lOwotfQotCi12b2lkIFhNTE5vZGU6OnNldEVuZExpbmVOdW1iZXIoaW50MzJfdCBsaW5lKQotewotICAgIG1FbmRMaW5lTnVtYmVyID0gbGluZTsKLX0KLQotdm9pZCBYTUxOb2RlOjpyZW1vdmVXaGl0ZXNwYWNlKGJvb2wgc3RyaXBBbGwsIGNvbnN0IGNoYXIqKiBjRGF0YVRhZ3MpCi17Ci0gICAgLy9wcmludGYoIlJlbW92aW5nIHdoaXRlc3BhY2UgaW4gJXNcbiIsIFN0cmluZzgobUVsZW1lbnROYW1lKS5zdHJpbmcoKSk7Ci0gICAgc2l6ZV90IE4gPSBtQ2hpbGRyZW4uc2l6ZSgpOwotICAgIGlmIChjRGF0YVRhZ3MpIHsKLSAgICAgICAgU3RyaW5nOCB0YWcobUVsZW1lbnROYW1lKTsKLSAgICAgICAgY29uc3QgY2hhcioqIHAgPSBjRGF0YVRhZ3M7Ci0gICAgICAgIHdoaWxlICgqcCkgewotICAgICAgICAgICAgaWYgKHRhZyA9PSAqcCkgewotICAgICAgICAgICAgICAgIHN0cmlwQWxsID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICBzcDxYTUxOb2RlPiBub2RlID0gbUNoaWxkcmVuLml0ZW1BdChpKTsKLSAgICAgICAgaWYgKG5vZGUtPmdldFR5cGUoKSA9PSBUWVBFX0NEQVRBKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIGEgQ0RBVEEgbm9kZS4uLgotICAgICAgICAgICAgY29uc3QgY2hhcjE2X3QqIHAgPSBub2RlLT5tQ2hhcnMuc3RyaW5nKCk7Ci0gICAgICAgICAgICB3aGlsZSAoKnAgIT0gMCAmJiAqcCA8IDEyOCAmJiBpc3NwYWNlKCpwKSkgewotICAgICAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vcHJpbnRmKCJTcGFjZSBlbmRzIGF0ICVkIGluIFwiJXNcIlxuIiwKLSAgICAgICAgICAgIC8vICAgICAgIChpbnQpKHAtbm9kZS0+bUNoYXJzLnN0cmluZygpKSwKLSAgICAgICAgICAgIC8vICAgICAgIFN0cmluZzgobm9kZS0+bUNoYXJzKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICBpZiAoKnAgPT0gMCkgewotICAgICAgICAgICAgICAgIGlmIChzdHJpcEFsbCkgewotICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhpcyBub2RlIQotICAgICAgICAgICAgICAgICAgICBtQ2hpbGRyZW4ucmVtb3ZlQXQoaSk7Ci0gICAgICAgICAgICAgICAgICAgIE4tLTsKLSAgICAgICAgICAgICAgICAgICAgaS0tOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIG5vZGUtPm1DaGFycyA9IFN0cmluZzE2KCIgIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBDb21wYWN0IGxlYWRpbmcvdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAgICAgICAgICAgICAgICBjb25zdCBjaGFyMTZfdCogZSA9IG5vZGUtPm1DaGFycy5zdHJpbmcoKStub2RlLT5tQ2hhcnMuc2l6ZSgpLTE7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGUgPiBwICYmICplIDwgMTI4ICYmIGlzc3BhY2UoKmUpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGUtLTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHAgPiBub2RlLT5tQ2hhcnMuc3RyaW5nKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgcC0tOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoZSA8IChub2RlLT5tQ2hhcnMuc3RyaW5nKCkrbm9kZS0+bUNoYXJzLnNpemUoKS0xKSkgewotICAgICAgICAgICAgICAgICAgICBlKys7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChwID4gbm9kZS0+bUNoYXJzLnN0cmluZygpIHx8Ci0gICAgICAgICAgICAgICAgICAgIGUgPCAobm9kZS0+bUNoYXJzLnN0cmluZygpK25vZGUtPm1DaGFycy5zaXplKCktMSkpIHsKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nMTYgdG1wKHAsIGUtcCsxKTsKLSAgICAgICAgICAgICAgICAgICAgbm9kZS0+bUNoYXJzID0gdG1wOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG5vZGUtPnJlbW92ZVdoaXRlc3BhY2Uoc3RyaXBBbGwsIGNEYXRhVGFncyk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLXN0YXR1c190IFhNTE5vZGU6OnBhcnNlVmFsdWVzKGNvbnN0IHNwPEFhcHRBc3NldHM+JiBhc3NldHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVRhYmxlKiB0YWJsZSkKLXsKLSAgICBib29sIGhhc0Vycm9ycyA9IGZhbHNlOwotICAgIAotICAgIGlmIChnZXRUeXBlKCkgPT0gVFlQRV9FTEVNRU5UKSB7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBOID0gbUF0dHJpYnV0ZXMuc2l6ZSgpOwotICAgICAgICBTdHJpbmcxNiBkZWZQYWNrYWdlKGFzc2V0cy0+Z2V0UGFja2FnZSgpKTsKLSAgICAgICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICAgICAgYXR0cmlidXRlX2VudHJ5JiBlID0gbUF0dHJpYnV0ZXMuZWRpdEl0ZW1BdChpKTsKLSAgICAgICAgICAgIEFjY2Vzc29yQ29va2llIGFjKFNvdXJjZVBvcyhtRmlsZW5hbWUsIGdldFN0YXJ0TGluZU51bWJlcigpKSwgU3RyaW5nOChlLm5hbWUpLAotICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGUuc3RyaW5nKSk7Ci0gICAgICAgICAgICB0YWJsZS0+c2V0Q3VycmVudFhtbFBvcyhTb3VyY2VQb3MobUZpbGVuYW1lLCBnZXRTdGFydExpbmVOdW1iZXIoKSkpOwotICAgICAgICAgICAgaWYgKCFhc3NldHMtPmdldEluY2x1ZGVkUmVzb3VyY2VzKCkKLSAgICAgICAgICAgICAgICAgICAgLnN0cmluZ1RvVmFsdWUoJmUudmFsdWUsICZlLnN0cmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0cmluZy5zdHJpbmcoKSwgZS5zdHJpbmcuc2l6ZSgpLCB0cnVlLCB0cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUubmFtZVJlc0lkLCBOVUxMLCAmZGVmUGFja2FnZSwgdGFibGUsICZhYykpIHsKLSAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgTk9JU1kocHJpbnRmKCJBdHRyICVzOiB0eXBlPTB4JXgsIHN0cj0lc1xuIiwKLSAgICAgICAgICAgICAgICAgICBTdHJpbmc4KGUubmFtZSkuc3RyaW5nKCksIGUudmFsdWUuZGF0YVR5cGUsCi0gICAgICAgICAgICAgICAgICAgU3RyaW5nOChlLnN0cmluZykuc3RyaW5nKCkpKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBjb25zdCBzaXplX3QgTiA9IG1DaGlsZHJlbi5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICBzdGF0dXNfdCBlcnIgPSBtQ2hpbGRyZW4uaXRlbUF0KGkpLT5wYXJzZVZhbHVlcyhhc3NldHMsIHRhYmxlKTsKLSAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gaGFzRXJyb3JzID8gVU5LTk9XTl9FUlJPUiA6IE5PX0VSUk9SOwotfQotCi1zdGF0dXNfdCBYTUxOb2RlOjphc3NpZ25SZXNvdXJjZUlkcyhjb25zdCBzcDxBYXB0QXNzZXRzPiYgYXNzZXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzb3VyY2VUYWJsZSogdGFibGUpCi17Ci0gICAgYm9vbCBoYXNFcnJvcnMgPSBmYWxzZTsKLSAgICAKLSAgICBpZiAoZ2V0VHlwZSgpID09IFRZUEVfRUxFTUVOVCkgewotICAgICAgICBTdHJpbmcxNiBhdHRyKCJhdHRyIik7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGVycm9yTXNnOwotICAgICAgICBjb25zdCBzaXplX3QgTiA9IG1BdHRyaWJ1dGVzLnNpemUoKTsKLSAgICAgICAgZm9yIChzaXplX3QgaT0wOyBpPE47IGkrKykgewotICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlX2VudHJ5JiBlID0gbUF0dHJpYnV0ZXMuaXRlbUF0KGkpOwotICAgICAgICAgICAgaWYgKGUubnMuc2l6ZSgpIDw9IDApIGNvbnRpbnVlOwotICAgICAgICAgICAgYm9vbCBuc0lzUHVibGljOwotICAgICAgICAgICAgU3RyaW5nMTYgcGtnKGdldE5hbWVzcGFjZVJlc291cmNlUGFja2FnZShTdHJpbmcxNihhc3NldHMtPmdldFBhY2thZ2UoKSksIGUubnMsICZuc0lzUHVibGljKSk7Ci0gICAgICAgICAgICBOT0lTWShwcmludGYoIkVsZW0gJXMgJXM9XCIlc1wiOiBuYW1lc3BhY2UoJXMpICVzID09PT4gJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzgoZ2V0RWxlbWVudE5hbWUoKSkuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzgoZS5uYW1lKS5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChlLnN0cmluZykuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZzgoZS5ucykuc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgIChuc0lzUHVibGljKSA/ICJwdWJsaWMiIDogInByaXZhdGUiLAotICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHBrZykuc3RyaW5nKCkpKTsKLSAgICAgICAgICAgIGlmIChwa2cuc2l6ZSgpIDw9IDApIGNvbnRpbnVlOwotICAgICAgICAgICAgdWludDMyX3QgcmVzID0gdGFibGUgIT0gTlVMTAotICAgICAgICAgICAgICAgID8gdGFibGUtPmdldFJlc0lkKGUubmFtZSwgJmF0dHIsICZwa2csICZlcnJvck1zZywgbnNJc1B1YmxpYykKLSAgICAgICAgICAgICAgICA6IGFzc2V0cy0+Z2V0SW5jbHVkZWRSZXNvdXJjZXMoKS4KLSAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllckZvck5hbWUoZS5uYW1lLnN0cmluZygpLCBlLm5hbWUuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyLnN0cmluZygpLCBhdHRyLnNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGtnLnN0cmluZygpLCBwa2cuc2l6ZSgpKTsKLSAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgewotICAgICAgICAgICAgICAgIE5PSVNZKHByaW50ZigiWE1MIGF0dHJpYnV0ZSBuYW1lICVzOiByZXNpZD0weCUwOHhcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoZS5uYW1lKS5zdHJpbmcoKSwgcmVzKSk7Ci0gICAgICAgICAgICAgICAgc2V0QXR0cmlidXRlUmVzSUQoaSwgcmVzKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgU291cmNlUG9zKG1GaWxlbmFtZSwgZ2V0U3RhcnRMaW5lTnVtYmVyKCkpLmVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHJlc291cmNlIGlkZW50aWZpZXIgZm91bmQgZm9yIGF0dHJpYnV0ZSAnJXMnIGluIHBhY2thZ2UgJyVzJ1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgoZS5uYW1lKS5zdHJpbmcoKSwgU3RyaW5nOChwa2cpLnN0cmluZygpKTsKLSAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIGNvbnN0IHNpemVfdCBOID0gbUNoaWxkcmVuLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIHN0YXR1c190IGVyciA9IG1DaGlsZHJlbi5pdGVtQXQoaSktPmFzc2lnblJlc291cmNlSWRzKGFzc2V0cywgdGFibGUpOwotICAgICAgICBpZiAoZXJyIDwgTk9fRVJST1IpIHsKLSAgICAgICAgICAgIGhhc0Vycm9ycyA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gaGFzRXJyb3JzID8gVU5LTk9XTl9FUlJPUiA6IE5PX0VSUk9SOwotfQotCi1zdGF0dXNfdCBYTUxOb2RlOjpmbGF0dGVuKGNvbnN0IHNwPEFhcHRGaWxlPiYgZGVzdCwKLSAgICAgICAgYm9vbCBzdHJpcENvbW1lbnRzLCBib29sIHN0cmlwUmF3VmFsdWVzKSBjb25zdAotewotICAgIFN0cmluZ1Bvb2wgc3RyaW5ncyhtVVRGOCk7Ci0gICAgVmVjdG9yPHVpbnQzMl90PiByZXNpZHM7Ci0gICAgCi0gICAgLy8gRmlyc3QgY29sbGVjdCBqdXN0IHRoZSBzdHJpbmdzIGZvciBhdHRyaWJ1dGUgbmFtZXMgdGhhdCBoYXZlIGEKLSAgICAvLyByZXNvdXJjZSBJRCBhc3NpZ25lZCB0byB0aGVtLiAgVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJlc291cmNlIElECi0gICAgLy8gYXJyYXkgaXMgY29tcGFjdCwgYW5kIG1ha2VzIGl0IGVhc2llciB0byBkZWFsIHdpdGggYXR0cmlidXRlIG5hbWVzCi0gICAgLy8gaW4gZGlmZmVyZW50IG5hbWVzcGFjZXMgKGFuZCB0aHVzIHdpdGggZGlmZmVyZW50IHJlc291cmNlIElEcykuCi0gICAgY29sbGVjdF9yZXNpZF9zdHJpbmdzKCZzdHJpbmdzLCAmcmVzaWRzKTsKLQotICAgIC8vIE5leHQgY29sbGVjdCBhbGwgcmVtYWluaWJuZyBzdHJpbmdzLgotICAgIGNvbGxlY3Rfc3RyaW5ncygmc3RyaW5ncywgJnJlc2lkcywgc3RyaXBDb21tZW50cywgc3RyaXBSYXdWYWx1ZXMpOwotCi0jaWYgMCAgLy8gTm8gbG9uZ2VyIGNvbXBpbGVzCi0gICAgTk9JU1kocHJpbnRmKCJGb3VuZCBzdHJpbmdzOlxuIik7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBOID0gc3RyaW5ncy5zaXplKCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgICAgIHByaW50ZigiJXNcbiIsIFN0cmluZzgoc3RyaW5ncy5lbnRyeUF0KGkpLnN0cmluZykuc3RyaW5nKCkpOwotICAgICAgICB9Ci0gICAgKTsKLSNlbmRpZiAgICAKLQotICAgIHNwPEFhcHRGaWxlPiBzdHJpbmdQb29sID0gc3RyaW5ncy5jcmVhdGVTdHJpbmdCbG9jaygpOwotICAgIE5PSVNZKGFvdXQgPDwgIlN0cmluZyBwb29sOiIKLSAgICAgICAgICA8PCBIZXhEdW1wKHN0cmluZ1Bvb2wtPmdldERhdGEoKSwgc3RyaW5nUG9vbC0+Z2V0U2l6ZSgpKSA8PCBlbmRsKTsKLQotICAgIFJlc1hNTFRyZWVfaGVhZGVyIGhlYWRlcjsKLSAgICBtZW1zZXQoJmhlYWRlciwgMCwgc2l6ZW9mKGhlYWRlcikpOwotICAgIGhlYWRlci5oZWFkZXIudHlwZSA9IGh0b2RzKFJFU19YTUxfVFlQRSk7Ci0gICAgaGVhZGVyLmhlYWRlci5oZWFkZXJTaXplID0gaHRvZHMoc2l6ZW9mKGhlYWRlcikpOwotCi0gICAgY29uc3Qgc2l6ZV90IGJhc2VQb3MgPSBkZXN0LT5nZXRTaXplKCk7Ci0gICAgZGVzdC0+d3JpdGVEYXRhKCZoZWFkZXIsIHNpemVvZihoZWFkZXIpKTsKLSAgICBkZXN0LT53cml0ZURhdGEoc3RyaW5nUG9vbC0+Z2V0RGF0YSgpLCBzdHJpbmdQb29sLT5nZXRTaXplKCkpOwotCi0gICAgLy8gSWYgd2UgaGF2ZSByZXNvdXJjZSBJRHMsIHdyaXRlIHRoZW0uCi0gICAgaWYgKHJlc2lkcy5zaXplKCkgPiAwKSB7Ci0gICAgICAgIGNvbnN0IHNpemVfdCByZXNJZHNQb3MgPSBkZXN0LT5nZXRTaXplKCk7Ci0gICAgICAgIGNvbnN0IHNpemVfdCByZXNJZHNTaXplID0KLSAgICAgICAgICAgIHNpemVvZihSZXNDaHVua19oZWFkZXIpKyhzaXplb2YodWludDMyX3QpKnJlc2lkcy5zaXplKCkpOwotICAgICAgICBSZXNDaHVua19oZWFkZXIqIGlkc0hlYWRlciA9IChSZXNDaHVua19oZWFkZXIqKQotICAgICAgICAgICAgKCgoY29uc3QgdWludDhfdCopZGVzdC0+ZWRpdERhdGEocmVzSWRzUG9zK3Jlc0lkc1NpemUpKStyZXNJZHNQb3MpOwotICAgICAgICBpZHNIZWFkZXItPnR5cGUgPSBodG9kcyhSRVNfWE1MX1JFU09VUkNFX01BUF9UWVBFKTsKLSAgICAgICAgaWRzSGVhZGVyLT5oZWFkZXJTaXplID0gaHRvZHMoc2l6ZW9mKCppZHNIZWFkZXIpKTsKLSAgICAgICAgaWRzSGVhZGVyLT5zaXplID0gaHRvZGwocmVzSWRzU2l6ZSk7Ci0gICAgICAgIHVpbnQzMl90KiBpZHMgPSAodWludDMyX3QqKShpZHNIZWFkZXIrMSk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGk9MDsgaTxyZXNpZHMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgICAgICppZHMrKyA9IGh0b2RsKHJlc2lkc1tpXSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmbGF0dGVuX25vZGUoc3RyaW5ncywgZGVzdCwgc3RyaXBDb21tZW50cywgc3RyaXBSYXdWYWx1ZXMpOwotCi0gICAgdm9pZCogZGF0YSA9IGRlc3QtPmVkaXREYXRhKCk7Ci0gICAgUmVzWE1MVHJlZV9oZWFkZXIqIGhkID0gKFJlc1hNTFRyZWVfaGVhZGVyKikoKCh1aW50OF90KilkYXRhKStiYXNlUG9zKTsKLSAgICBzaXplX3Qgc2l6ZSA9IGRlc3QtPmdldFNpemUoKS1iYXNlUG9zOwotICAgIGhkLT5oZWFkZXIuc2l6ZSA9IGh0b2RsKGRlc3QtPmdldFNpemUoKS1iYXNlUG9zKTsKLQotICAgIE5PSVNZKGFvdXQgPDwgIlhNTCByZXNvdXJjZToiCi0gICAgICAgICAgPDwgSGV4RHVtcChkZXN0LT5nZXREYXRhKCksIGRlc3QtPmdldFNpemUoKSkgPDwgZW5kbCk7Ci0KLSAgICAjaWYgUFJJTlRfU1RSSU5HX01FVFJJQ1MKLSAgICBmcHJpbnRmKHN0ZGVyciwgIioqKiogdG90YWwgeG1sIHNpemU6ICVkIC8gJWQlJSBzdHJpbmdzIChpbiAlcylcbiIsCi0gICAgICAgIGRlc3QtPmdldFNpemUoKSwgKHN0cmluZ1Bvb2wtPmdldFNpemUoKSoxMDApL2Rlc3QtPmdldFNpemUoKSwKLSAgICAgICAgZGVzdC0+Z2V0UGF0aCgpLnN0cmluZygpKTsKLSAgICAjZW5kaWYKLSAgICAgICAgCi0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi12b2lkIFhNTE5vZGU6OnByaW50KGludCBpbmRlbnQpCi17Ci0gICAgU3RyaW5nOCBwcmVmaXg7Ci0gICAgaW50IGk7Ci0gICAgZm9yIChpPTA7IGk8aW5kZW50OyBpKyspIHsKLSAgICAgICAgcHJlZml4LmFwcGVuZCgiICAiKTsKLSAgICB9Ci0gICAgaWYgKGdldFR5cGUoKSA9PSBUWVBFX0VMRU1FTlQpIHsKLSAgICAgICAgU3RyaW5nOCBlbGVtTnMoZ2V0TmFtZXNwYWNlVXJpKCkpOwotICAgICAgICBpZiAoZWxlbU5zLnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgIGVsZW1Ocy5hcHBlbmQoIjoiKTsKLSAgICAgICAgfQotICAgICAgICBwcmludGYoIiVzIEU6ICVzJXMiLCBwcmVmaXguc3RyaW5nKCksCi0gICAgICAgICAgICAgICBlbGVtTnMuc3RyaW5nKCksIFN0cmluZzgoZ2V0RWxlbWVudE5hbWUoKSkuc3RyaW5nKCkpOwotICAgICAgICBpbnQgTiA9IG1BdHRyaWJ1dGVzLnNpemUoKTsKLSAgICAgICAgZm9yIChpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgICAgICBzc2l6ZV90IGlkeCA9IG1BdHRyaWJ1dGVPcmRlci52YWx1ZUF0KGkpOwotICAgICAgICAgICAgaWYgKGkgPT0gMCkgewotICAgICAgICAgICAgICAgIHByaW50ZigiIC8gIik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHByaW50ZigiLCAiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZV9lbnRyeSYgYXR0ciA9IG1BdHRyaWJ1dGVzLml0ZW1BdChpZHgpOwotICAgICAgICAgICAgU3RyaW5nOCBhdHRyTnMoYXR0ci5ucyk7Ci0gICAgICAgICAgICBpZiAoYXR0ck5zLnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgICAgICBhdHRyTnMuYXBwZW5kKCI6Iik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYXR0ci5uYW1lUmVzSWQpIHsKLSAgICAgICAgICAgICAgICBwcmludGYoIiVzJXMoMHglMDh4KSIsIGF0dHJOcy5zdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChhdHRyLm5hbWUpLnN0cmluZygpLCBhdHRyLm5hbWVSZXNJZCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHByaW50ZigiJXMlcyIsIGF0dHJOcy5zdHJpbmcoKSwgU3RyaW5nOChhdHRyLm5hbWUpLnN0cmluZygpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByaW50ZigiPSVzIiwgU3RyaW5nOChhdHRyLnN0cmluZykuc3RyaW5nKCkpOwotICAgICAgICB9Ci0gICAgICAgIHByaW50ZigiXG4iKTsKLSAgICB9IGVsc2UgaWYgKGdldFR5cGUoKSA9PSBUWVBFX05BTUVTUEFDRSkgewotICAgICAgICBwcmludGYoIiVzIE46ICVzPSVzXG4iLCBwcmVmaXguc3RyaW5nKCksCi0gICAgICAgICAgICAgICBnZXROYW1lc3BhY2VQcmVmaXgoKS5zaXplKCkgPiAwCi0gICAgICAgICAgICAgICAgICAgID8gU3RyaW5nOChnZXROYW1lc3BhY2VQcmVmaXgoKSkuc3RyaW5nKCkgOiAiPERFRj4iLAotICAgICAgICAgICAgICAgU3RyaW5nOChnZXROYW1lc3BhY2VVcmkoKSkuc3RyaW5nKCkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHByaW50ZigiJXMgQzogXCIlc1wiXG4iLCBwcmVmaXguc3RyaW5nKCksIFN0cmluZzgoZ2V0Q0RhdGEoKSkuc3RyaW5nKCkpOwotICAgIH0KLSAgICBpbnQgTiA9IG1DaGlsZHJlbi5zaXplKCk7Ci0gICAgZm9yIChpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIG1DaGlsZHJlbi5pdGVtQXQoaSktPnByaW50KGluZGVudCsxKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHNwbGl0TmFtZShjb25zdCBjaGFyKiBuYW1lLCBTdHJpbmcxNiogb3V0TnMsIFN0cmluZzE2KiBvdXROYW1lKQotewotICAgIGNvbnN0IGNoYXIqIHAgPSBuYW1lOwotICAgIHdoaWxlICgqcCAhPSAwICYmICpwICE9IDEpIHsKLSAgICAgICAgcCsrOwotICAgIH0KLSAgICBpZiAoKnAgPT0gMCkgewotICAgICAgICAqb3V0TnMgPSBTdHJpbmcxNigpOwotICAgICAgICAqb3V0TmFtZSA9IFN0cmluZzE2KG5hbWUpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgICpvdXROcyA9IFN0cmluZzE2KG5hbWUsIChwLW5hbWUpKTsKLSAgICAgICAgKm91dE5hbWUgPSBTdHJpbmcxNihwKzEpOwotICAgIH0KLX0KLQotdm9pZCBYTUxDQUxMCi1YTUxOb2RlOjpzdGFydE5hbWVzcGFjZSh2b2lkICp1c2VyRGF0YSwgY29uc3QgY2hhciAqcHJlZml4LCBjb25zdCBjaGFyICp1cmkpCi17Ci0gICAgTk9JU1lfUEFSU0UocHJpbnRmKCJTdGFydCBOYW1lc3BhY2U6ICVzICVzXG4iLCBwcmVmaXgsIHVyaSkpOwotICAgIFBhcnNlU3RhdGUqIHN0ID0gKFBhcnNlU3RhdGUqKXVzZXJEYXRhOwotICAgIHNwPFhNTE5vZGU+IG5vZGUgPSBYTUxOb2RlOjpuZXdOYW1lc3BhY2Uoc3QtPmZpbGVuYW1lLCAKLSAgICAgICAgICAgIFN0cmluZzE2KHByZWZpeCAhPSBOVUxMID8gcHJlZml4IDogIiIpLCBTdHJpbmcxNih1cmkpKTsKLSAgICBub2RlLT5zZXRTdGFydExpbmVOdW1iZXIoWE1MX0dldEN1cnJlbnRMaW5lTnVtYmVyKHN0LT5wYXJzZXIpKTsKLSAgICBpZiAoc3QtPnN0YWNrLnNpemUoKSA+IDApIHsKLSAgICAgICAgc3QtPnN0YWNrLml0ZW1BdChzdC0+c3RhY2suc2l6ZSgpLTEpLT5hZGRDaGlsZChub2RlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBzdC0+cm9vdCA9IG5vZGU7Ci0gICAgfQotICAgIHN0LT5zdGFjay5wdXNoKG5vZGUpOwotfQotCi12b2lkIFhNTENBTEwKLVhNTE5vZGU6OnN0YXJ0RWxlbWVudCh2b2lkICp1c2VyRGF0YSwgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqKmF0dHMpCi17Ci0gICAgTk9JU1lfUEFSU0UocHJpbnRmKCJTdGFydCBFbGVtZW50OiAlc1xuIiwgbmFtZSkpOwotICAgIFBhcnNlU3RhdGUqIHN0ID0gKFBhcnNlU3RhdGUqKXVzZXJEYXRhOwotICAgIFN0cmluZzE2IG5zMTYsIG5hbWUxNjsKLSAgICBzcGxpdE5hbWUobmFtZSwgJm5zMTYsICZuYW1lMTYpOwotICAgIHNwPFhNTE5vZGU+IG5vZGUgPSBYTUxOb2RlOjpuZXdFbGVtZW50KHN0LT5maWxlbmFtZSwgbnMxNiwgbmFtZTE2KTsKLSAgICBub2RlLT5zZXRTdGFydExpbmVOdW1iZXIoWE1MX0dldEN1cnJlbnRMaW5lTnVtYmVyKHN0LT5wYXJzZXIpKTsKLSAgICBpZiAoc3QtPnBlbmRpbmdDb21tZW50LnNpemUoKSA+IDApIHsKLSAgICAgICAgbm9kZS0+YXBwZW5kQ29tbWVudChzdC0+cGVuZGluZ0NvbW1lbnQpOwotICAgICAgICBzdC0+cGVuZGluZ0NvbW1lbnQgPSBTdHJpbmcxNigpOwotICAgIH0KLSAgICBpZiAoc3QtPnN0YWNrLnNpemUoKSA+IDApIHsKLSAgICAgICAgc3QtPnN0YWNrLml0ZW1BdChzdC0+c3RhY2suc2l6ZSgpLTEpLT5hZGRDaGlsZChub2RlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBzdC0+cm9vdCA9IG5vZGU7Ci0gICAgfQotICAgIHN0LT5zdGFjay5wdXNoKG5vZGUpOwotCi0gICAgZm9yIChpbnQgaSA9IDA7IGF0dHNbaV07IGkgKz0gMikgewotICAgICAgICBzcGxpdE5hbWUoYXR0c1tpXSwgJm5zMTYsICZuYW1lMTYpOwotICAgICAgICBub2RlLT5hZGRBdHRyaWJ1dGUobnMxNiwgbmFtZTE2LCBTdHJpbmcxNihhdHRzW2krMV0pKTsKLSAgICB9Ci19Ci0KLXZvaWQgWE1MQ0FMTAotWE1MTm9kZTo6Y2hhcmFjdGVyRGF0YSh2b2lkICp1c2VyRGF0YSwgY29uc3QgWE1MX0NoYXIgKnMsIGludCBsZW4pCi17Ci0gICAgTk9JU1lfUEFSU0UocHJpbnRmKCJDREFUQTogXCIlc1wiXG4iLCBTdHJpbmc4KHMsIGxlbikuc3RyaW5nKCkpKTsKLSAgICBQYXJzZVN0YXRlKiBzdCA9IChQYXJzZVN0YXRlKil1c2VyRGF0YTsKLSAgICBzcDxYTUxOb2RlPiBub2RlID0gTlVMTDsKLSAgICBpZiAoc3QtPnN0YWNrLnNpemUoKSA9PSAwKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgc3A8WE1MTm9kZT4gcGFyZW50ID0gc3QtPnN0YWNrLml0ZW1BdChzdC0+c3RhY2suc2l6ZSgpLTEpOwotICAgIGlmIChwYXJlbnQgIT0gTlVMTCAmJiBwYXJlbnQtPmdldENoaWxkcmVuKCkuc2l6ZSgpID4gMCkgewotICAgICAgICBub2RlID0gcGFyZW50LT5nZXRDaGlsZHJlbigpW3BhcmVudC0+Z2V0Q2hpbGRyZW4oKS5zaXplKCktMV07Ci0gICAgICAgIGlmIChub2RlLT5nZXRUeXBlKCkgIT0gVFlQRV9DREFUQSkgewotICAgICAgICAgICAgLy8gTGFzdCBub2RlIGlzIG5vdCBDREFUQSwgbmVlZCB0byBtYWtlIGEgbmV3IG5vZGUuCi0gICAgICAgICAgICBub2RlID0gTlVMTDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChub2RlID09IE5VTEwpIHsKLSAgICAgICAgbm9kZSA9IFhNTE5vZGU6Om5ld0NEYXRhKHN0LT5maWxlbmFtZSk7Ci0gICAgICAgIG5vZGUtPnNldFN0YXJ0TGluZU51bWJlcihYTUxfR2V0Q3VycmVudExpbmVOdW1iZXIoc3QtPnBhcnNlcikpOwotICAgICAgICBwYXJlbnQtPmFkZENoaWxkKG5vZGUpOwotICAgIH0KLQotICAgIG5vZGUtPmFwcGVuZENoYXJzKFN0cmluZzE2KHMsIGxlbikpOwotfQotCi12b2lkIFhNTENBTEwKLVhNTE5vZGU6OmVuZEVsZW1lbnQodm9pZCAqdXNlckRhdGEsIGNvbnN0IGNoYXIgKm5hbWUpCi17Ci0gICAgTk9JU1lfUEFSU0UocHJpbnRmKCJFbmQgRWxlbWVudDogJXNcbiIsIG5hbWUpKTsKLSAgICBQYXJzZVN0YXRlKiBzdCA9IChQYXJzZVN0YXRlKil1c2VyRGF0YTsKLSAgICBzcDxYTUxOb2RlPiBub2RlID0gc3QtPnN0YWNrLml0ZW1BdChzdC0+c3RhY2suc2l6ZSgpLTEpOwotICAgIG5vZGUtPnNldEVuZExpbmVOdW1iZXIoWE1MX0dldEN1cnJlbnRMaW5lTnVtYmVyKHN0LT5wYXJzZXIpKTsKLSAgICBpZiAoc3QtPnBlbmRpbmdDb21tZW50LnNpemUoKSA+IDApIHsKLSAgICAgICAgbm9kZS0+YXBwZW5kQ29tbWVudChzdC0+cGVuZGluZ0NvbW1lbnQpOwotICAgICAgICBzdC0+cGVuZGluZ0NvbW1lbnQgPSBTdHJpbmcxNigpOwotICAgIH0KLSAgICBTdHJpbmcxNiBuczE2LCBuYW1lMTY7Ci0gICAgc3BsaXROYW1lKG5hbWUsICZuczE2LCAmbmFtZTE2KTsKLSAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKG5vZGUtPmdldEVsZW1lbnROYW1lc3BhY2UoKSAhPSBuczE2Ci0gICAgICAgICAgICAgICAgICAgICAgICB8fCBub2RlLT5nZXRFbGVtZW50TmFtZSgpICE9IG5hbWUxNiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJCYWQgZW5kIGVsZW1lbnQgJXMiLCBuYW1lKTsKLSAgICBzdC0+c3RhY2sucG9wKCk7Ci19Ci0KLXZvaWQgWE1MQ0FMTAotWE1MTm9kZTo6ZW5kTmFtZXNwYWNlKHZvaWQgKnVzZXJEYXRhLCBjb25zdCBjaGFyICpwcmVmaXgpCi17Ci0gICAgY29uc3QgY2hhciogbm9uTnVsbFByZWZpeCA9IHByZWZpeCAhPSBOVUxMID8gcHJlZml4IDogIiI7Ci0gICAgTk9JU1lfUEFSU0UocHJpbnRmKCJFbmQgTmFtZXNwYWNlOiAlc1xuIiwgcHJlZml4KSk7Ci0gICAgUGFyc2VTdGF0ZSogc3QgPSAoUGFyc2VTdGF0ZSopdXNlckRhdGE7Ci0gICAgc3A8WE1MTm9kZT4gbm9kZSA9IHN0LT5zdGFjay5pdGVtQXQoc3QtPnN0YWNrLnNpemUoKS0xKTsKLSAgICBub2RlLT5zZXRFbmRMaW5lTnVtYmVyKFhNTF9HZXRDdXJyZW50TGluZU51bWJlcihzdC0+cGFyc2VyKSk7Ci0gICAgTE9HX0FMV0FZU19GQVRBTF9JRihub2RlLT5nZXROYW1lc3BhY2VQcmVmaXgoKSAhPSBTdHJpbmcxNihub25OdWxsUHJlZml4KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJCYWQgZW5kIG5hbWVzcGFjZSAlcyIsIHByZWZpeCk7Ci0gICAgc3QtPnN0YWNrLnBvcCgpOwotfQotCi12b2lkIFhNTENBTEwKLVhNTE5vZGU6OmNvbW1lbnREYXRhKHZvaWQgKnVzZXJEYXRhLCBjb25zdCBjaGFyICpjb21tZW50KQotewotICAgIE5PSVNZX1BBUlNFKHByaW50ZigiQ29tbWVudDogJXNcbiIsIGNvbW1lbnQpKTsKLSAgICBQYXJzZVN0YXRlKiBzdCA9IChQYXJzZVN0YXRlKil1c2VyRGF0YTsKLSAgICBpZiAoc3QtPnBlbmRpbmdDb21tZW50LnNpemUoKSA+IDApIHsKLSAgICAgICAgc3QtPnBlbmRpbmdDb21tZW50LmFwcGVuZChTdHJpbmcxNigiXG4iKSk7Ci0gICAgfQotICAgIHN0LT5wZW5kaW5nQ29tbWVudC5hcHBlbmQoU3RyaW5nMTYoY29tbWVudCkpOwotfQotCi1zdGF0dXNfdCBYTUxOb2RlOjpjb2xsZWN0X3N0cmluZ3MoU3RyaW5nUG9vbCogZGVzdCwgVmVjdG9yPHVpbnQzMl90Piogb3V0UmVzSWRzLAotICAgICAgICBib29sIHN0cmlwQ29tbWVudHMsIGJvb2wgc3RyaXBSYXdWYWx1ZXMpIGNvbnN0Ci17Ci0gICAgY29sbGVjdF9hdHRyX3N0cmluZ3MoZGVzdCwgb3V0UmVzSWRzLCB0cnVlKTsKLSAgICAKLSAgICBpbnQgaTsKLSAgICBpZiAoUkVTT1VSQ0VTX1RPT0xTX05BTUVTUEFDRSAhPSBtTmFtZXNwYWNlVXJpKSB7Ci0gICAgICAgIGlmIChtTmFtZXNwYWNlUHJlZml4LnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgIGRlc3QtPmFkZChtTmFtZXNwYWNlUHJlZml4LCB0cnVlKTsKLSAgICAgICAgfQotICAgICAgICBpZiAobU5hbWVzcGFjZVVyaS5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICBkZXN0LT5hZGQobU5hbWVzcGFjZVVyaSwgdHJ1ZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKG1FbGVtZW50TmFtZS5zaXplKCkgPiAwKSB7Ci0gICAgICAgIGRlc3QtPmFkZChtRWxlbWVudE5hbWUsIHRydWUpOwotICAgIH0KLQotICAgIGlmICghc3RyaXBDb21tZW50cyAmJiBtQ29tbWVudC5zaXplKCkgPiAwKSB7Ci0gICAgICAgIGRlc3QtPmFkZChtQ29tbWVudCwgdHJ1ZSk7Ci0gICAgfQotCi0gICAgY29uc3QgaW50IE5BID0gbUF0dHJpYnV0ZXMuc2l6ZSgpOwotCi0gICAgZm9yIChpPTA7IGk8TkE7IGkrKykgewotICAgICAgICBjb25zdCBhdHRyaWJ1dGVfZW50cnkmIGFlID0gbUF0dHJpYnV0ZXMuaXRlbUF0KGkpOwotICAgICAgICBpZiAoYWUubnMuc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgZGVzdC0+YWRkKGFlLm5zLCB0cnVlKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXN0cmlwUmF3VmFsdWVzIHx8IGFlLm5lZWRTdHJpbmdWYWx1ZSgpKSB7Ci0gICAgICAgICAgICBkZXN0LT5hZGQoYWUuc3RyaW5nLCB0cnVlKTsKLSAgICAgICAgfQotICAgICAgICAvKgotICAgICAgICBpZiAoYWUudmFsdWUuZGF0YVR5cGUgPT0gUmVzX3ZhbHVlOjpUWVBFX05VTEwKLSAgICAgICAgICAgICAgICB8fCBhZS52YWx1ZS5kYXRhVHlwZSA9PSBSZXNfdmFsdWU6OlRZUEVfU1RSSU5HKSB7Ci0gICAgICAgICAgICBkZXN0LT5hZGQoYWUuc3RyaW5nLCB0cnVlKTsKLSAgICAgICAgfQotICAgICAgICAqLwotICAgIH0KLQotICAgIGlmIChtRWxlbWVudE5hbWUuc2l6ZSgpID09IDApIHsKLSAgICAgICAgLy8gSWYgbm90IGFuIGVsZW1lbnQsIGluY2x1ZGUgdGhlIENEQVRBLCBldmVuIGlmIGl0IGlzIGVtcHR5LgotICAgICAgICBkZXN0LT5hZGQobUNoYXJzLCB0cnVlKTsKLSAgICB9Ci0KLSAgICBjb25zdCBpbnQgTkMgPSBtQ2hpbGRyZW4uc2l6ZSgpOwotCi0gICAgZm9yIChpPTA7IGk8TkM7IGkrKykgewotICAgICAgICBtQ2hpbGRyZW4uaXRlbUF0KGkpLT5jb2xsZWN0X3N0cmluZ3MoZGVzdCwgb3V0UmVzSWRzLAotICAgICAgICAgICAgICAgIHN0cmlwQ29tbWVudHMsIHN0cmlwUmF3VmFsdWVzKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXR1c190IFhNTE5vZGU6OmNvbGxlY3RfYXR0cl9zdHJpbmdzKFN0cmluZ1Bvb2wqIG91dFBvb2wsCi0gICAgICAgIFZlY3Rvcjx1aW50MzJfdD4qIG91dFJlc0lkcywgYm9vbCBhbGxBdHRycykgY29uc3QgewotICAgIGNvbnN0IGludCBOQSA9IG1BdHRyaWJ1dGVzLnNpemUoKTsKLQotICAgIGZvciAoaW50IGk9MDsgaTxOQTsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IGF0dHJpYnV0ZV9lbnRyeSYgYXR0ciA9IG1BdHRyaWJ1dGVzLml0ZW1BdChpKTsKLSAgICAgICAgdWludDMyX3QgaWQgPSBhdHRyLm5hbWVSZXNJZDsKLSAgICAgICAgaWYgKGlkIHx8IGFsbEF0dHJzKSB7Ci0gICAgICAgICAgICAvLyBTZWUgaWYgd2UgaGF2ZSBhbHJlYWR5IGFzc2lnbmVkIHRoaXMgcmVzb3VyY2UgSUQgdG8gYSBwb29sZWQKLSAgICAgICAgICAgIC8vIHN0cmluZy4uLgotICAgICAgICAgICAgY29uc3QgVmVjdG9yPHNpemVfdD4qIGluZGljZXMgPSBvdXRQb29sLT5vZmZzZXRzRm9yU3RyaW5nKGF0dHIubmFtZSk7Ci0gICAgICAgICAgICBzc2l6ZV90IGlkeCA9IC0xOwotICAgICAgICAgICAgaWYgKGluZGljZXMgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIGNvbnN0IGludCBOSiA9IGluZGljZXMtPnNpemUoKTsKLSAgICAgICAgICAgICAgICBjb25zdCBzaXplX3QgTlIgPSBvdXRSZXNJZHMtPnNpemUoKTsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8Tko7IGorKykgewotICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc3RySWR4ID0gaW5kaWNlcy0+aXRlbUF0KGopOwotICAgICAgICAgICAgICAgICAgICBpZiAoc3RySWR4ID49IE5SKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gYXNzaWduIGEgcmVzb3VyY2UgSUQgZm9yIHRoaXMgb25lLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeCA9IHN0cklkeDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEp1c3QgaWdub3JlIHN0cmluZ3MgdGhhdCBhcmUgb3V0IG9mIHJhbmdlIG9mCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudGx5IGFzc2lnbmVkIHJlc291cmNlIElEcy4uLiAgd2UgYWRkCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzdHJpbmdzIGFzIHdlIGFzc2lnbiB0aGUgZmlyc3QgSUQuCi0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3V0UmVzSWRzLT5pdGVtQXQoc3RySWR4KSA9PSBpZCkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWR4ID0gc3RySWR4OwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaWR4IDwgMCkgewotICAgICAgICAgICAgICAgIGlkeCA9IG91dFBvb2wtPmFkZChhdHRyLm5hbWUpOwotICAgICAgICAgICAgICAgIE5PSVNZKHByaW50ZigiQWRkaW5nIGF0dHIgJXMgKHJlc2lkIDB4JTA4eCkgdG8gcG9vbDogaWR4PSVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChhdHRyLm5hbWUpLnN0cmluZygpLCBpZCwgaWR4KSk7Ci0gICAgICAgICAgICAgICAgaWYgKGlkICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKChzc2l6ZV90KW91dFJlc0lkcy0+c2l6ZSgpIDw9IGlkeCkgewotICAgICAgICAgICAgICAgICAgICAgICAgb3V0UmVzSWRzLT5hZGQoMCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgb3V0UmVzSWRzLT5yZXBsYWNlQXQoaWQsIGlkeCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYXR0ci5uYW1lUG9vbElkeCA9IGlkeDsKLSAgICAgICAgICAgIE5PSVNZKHByaW50ZigiU3RyaW5nICVzIG9mZnNldD0weCUwOHhcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChhdHRyLm5hbWUpLnN0cmluZygpLCBpZHgpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotc3RhdHVzX3QgWE1MTm9kZTo6Y29sbGVjdF9yZXNpZF9zdHJpbmdzKFN0cmluZ1Bvb2wqIG91dFBvb2wsCi0gICAgICAgIFZlY3Rvcjx1aW50MzJfdD4qIG91dFJlc0lkcykgY29uc3QKLXsKLSAgICBjb2xsZWN0X2F0dHJfc3RyaW5ncyhvdXRQb29sLCBvdXRSZXNJZHMsIGZhbHNlKTsKLQotICAgIGNvbnN0IGludCBOQyA9IG1DaGlsZHJlbi5zaXplKCk7Ci0KLSAgICBmb3IgKGludCBpPTA7IGk8TkM7IGkrKykgewotICAgICAgICBtQ2hpbGRyZW4uaXRlbUF0KGkpLT5jb2xsZWN0X3Jlc2lkX3N0cmluZ3Mob3V0UG9vbCwgb3V0UmVzSWRzKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLXN0YXR1c190IFhNTE5vZGU6OmZsYXR0ZW5fbm9kZShjb25zdCBTdHJpbmdQb29sJiBzdHJpbmdzLCBjb25zdCBzcDxBYXB0RmlsZT4mIGRlc3QsCi0gICAgICAgIGJvb2wgc3RyaXBDb21tZW50cywgYm9vbCBzdHJpcFJhd1ZhbHVlcykgY29uc3QKLXsKLSAgICBSZXNYTUxUcmVlX25vZGUgbm9kZTsKLSAgICBSZXNYTUxUcmVlX2NkYXRhRXh0IGNkYXRhRXh0OwotICAgIFJlc1hNTFRyZWVfbmFtZXNwYWNlRXh0IG5hbWVzcGFjZUV4dDsKLSAgICBSZXNYTUxUcmVlX2F0dHJFeHQgYXR0ckV4dDsKLSAgICBjb25zdCB2b2lkKiBleHREYXRhID0gTlVMTDsKLSAgICBzaXplX3QgZXh0U2l6ZSA9IDA7Ci0gICAgUmVzWE1MVHJlZV9hdHRyaWJ1dGUgYXR0cjsKLSAgICBib29sIHdyaXRlQ3VycmVudE5vZGUgPSB0cnVlOwotCi0gICAgY29uc3Qgc2l6ZV90IE5BID0gbUF0dHJpYnV0ZXMuc2l6ZSgpOwotICAgIGNvbnN0IHNpemVfdCBOQyA9IG1DaGlsZHJlbi5zaXplKCk7Ci0gICAgc2l6ZV90IGk7Ci0KLSAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKE5BICE9IG1BdHRyaWJ1dGVPcmRlci5zaXplKCksICJBdHRyaWJ1dGVzIG1lc3NlZCB1cCEiKTsKLQotICAgIGNvbnN0IFN0cmluZzE2IGlkMTYoImlkIik7Ci0gICAgY29uc3QgU3RyaW5nMTYgY2xhc3MxNigiY2xhc3MiKTsKLSAgICBjb25zdCBTdHJpbmcxNiBzdHlsZTE2KCJzdHlsZSIpOwotCi0gICAgY29uc3QgdHlwZSB0eXBlID0gZ2V0VHlwZSgpOwotCi0gICAgbWVtc2V0KCZub2RlLCAwLCBzaXplb2Yobm9kZSkpOwotICAgIG1lbXNldCgmYXR0ciwgMCwgc2l6ZW9mKGF0dHIpKTsKLSAgICBub2RlLmhlYWRlci5oZWFkZXJTaXplID0gaHRvZHMoc2l6ZW9mKG5vZGUpKTsKLSAgICBub2RlLmxpbmVOdW1iZXIgPSBodG9kbChnZXRTdGFydExpbmVOdW1iZXIoKSk7Ci0gICAgaWYgKCFzdHJpcENvbW1lbnRzKSB7Ci0gICAgICAgIG5vZGUuY29tbWVudC5pbmRleCA9IGh0b2RsKAotICAgICAgICAgICAgbUNvbW1lbnQuc2l6ZSgpID4gMCA/IHN0cmluZ3Mub2Zmc2V0Rm9yU3RyaW5nKG1Db21tZW50KSA6IC0xKTsKLSAgICAgICAgLy9pZiAobUNvbW1lbnQuc2l6ZSgpID4gMCkgewotICAgICAgICAvLyAgcHJpbnRmKCJGbGF0dGVuaW5nIGNvbW1lbnQ6ICVzXG4iLCBTdHJpbmc4KG1Db21tZW50KS5zdHJpbmcoKSk7Ci0gICAgICAgIC8vfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIG5vZGUuY29tbWVudC5pbmRleCA9IGh0b2RsKCh1aW50MzJfdCktMSk7Ci0gICAgfQotICAgIGlmICh0eXBlID09IFRZUEVfRUxFTUVOVCkgewotICAgICAgICBub2RlLmhlYWRlci50eXBlID0gaHRvZHMoUkVTX1hNTF9TVEFSVF9FTEVNRU5UX1RZUEUpOwotICAgICAgICBleHREYXRhID0gJmF0dHJFeHQ7Ci0gICAgICAgIGV4dFNpemUgPSBzaXplb2YoYXR0ckV4dCk7Ci0gICAgICAgIG1lbXNldCgmYXR0ckV4dCwgMCwgc2l6ZW9mKGF0dHJFeHQpKTsKLSAgICAgICAgaWYgKG1OYW1lc3BhY2VVcmkuc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgYXR0ckV4dC5ucy5pbmRleCA9IGh0b2RsKHN0cmluZ3Mub2Zmc2V0Rm9yU3RyaW5nKG1OYW1lc3BhY2VVcmkpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGF0dHJFeHQubnMuaW5kZXggPSBodG9kbCgodWludDMyX3QpLTEpOwotICAgICAgICB9Ci0gICAgICAgIGF0dHJFeHQubmFtZS5pbmRleCA9IGh0b2RsKHN0cmluZ3Mub2Zmc2V0Rm9yU3RyaW5nKG1FbGVtZW50TmFtZSkpOwotICAgICAgICBhdHRyRXh0LmF0dHJpYnV0ZVN0YXJ0ID0gaHRvZHMoc2l6ZW9mKGF0dHJFeHQpKTsKLSAgICAgICAgYXR0ckV4dC5hdHRyaWJ1dGVTaXplID0gaHRvZHMoc2l6ZW9mKGF0dHIpKTsKLSAgICAgICAgYXR0ckV4dC5hdHRyaWJ1dGVDb3VudCA9IGh0b2RzKE5BKTsKLSAgICAgICAgYXR0ckV4dC5pZEluZGV4ID0gaHRvZHMoMCk7Ci0gICAgICAgIGF0dHJFeHQuY2xhc3NJbmRleCA9IGh0b2RzKDApOwotICAgICAgICBhdHRyRXh0LnN0eWxlSW5kZXggPSBodG9kcygwKTsKLSAgICAgICAgZm9yIChpPTA7IGk8TkE7IGkrKykgewotICAgICAgICAgICAgc3NpemVfdCBpZHggPSBtQXR0cmlidXRlT3JkZXIudmFsdWVBdChpKTsKLSAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZV9lbnRyeSYgYWUgPSBtQXR0cmlidXRlcy5pdGVtQXQoaWR4KTsKLSAgICAgICAgICAgIGlmIChhZS5ucy5zaXplKCkgPT0gMCkgewotICAgICAgICAgICAgICAgIGlmIChhZS5uYW1lID09IGlkMTYpIHsKLSAgICAgICAgICAgICAgICAgICAgYXR0ckV4dC5pZEluZGV4ID0gaHRvZHMoaSsxKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFlLm5hbWUgPT0gY2xhc3MxNikgewotICAgICAgICAgICAgICAgICAgICBhdHRyRXh0LmNsYXNzSW5kZXggPSBodG9kcyhpKzEpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWUubmFtZSA9PSBzdHlsZTE2KSB7Ci0gICAgICAgICAgICAgICAgICAgIGF0dHJFeHQuc3R5bGVJbmRleCA9IGh0b2RzKGkrMSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmICh0eXBlID09IFRZUEVfTkFNRVNQQUNFKSB7Ci0gICAgICAgIGlmIChtTmFtZXNwYWNlVXJpID09IFJFU09VUkNFU19UT09MU19OQU1FU1BBQ0UpIHsKLSAgICAgICAgICAgIHdyaXRlQ3VycmVudE5vZGUgPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG5vZGUuaGVhZGVyLnR5cGUgPSBodG9kcyhSRVNfWE1MX1NUQVJUX05BTUVTUEFDRV9UWVBFKTsKLSAgICAgICAgICAgIGV4dERhdGEgPSAmbmFtZXNwYWNlRXh0OwotICAgICAgICAgICAgZXh0U2l6ZSA9IHNpemVvZihuYW1lc3BhY2VFeHQpOwotICAgICAgICAgICAgbWVtc2V0KCZuYW1lc3BhY2VFeHQsIDAsIHNpemVvZihuYW1lc3BhY2VFeHQpKTsKLSAgICAgICAgICAgIGlmIChtTmFtZXNwYWNlUHJlZml4LnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgICAgICBuYW1lc3BhY2VFeHQucHJlZml4LmluZGV4ID0gaHRvZGwoc3RyaW5ncy5vZmZzZXRGb3JTdHJpbmcobU5hbWVzcGFjZVByZWZpeCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBuYW1lc3BhY2VFeHQucHJlZml4LmluZGV4ID0gaHRvZGwoKHVpbnQzMl90KS0xKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG5hbWVzcGFjZUV4dC5wcmVmaXguaW5kZXggPSBodG9kbChzdHJpbmdzLm9mZnNldEZvclN0cmluZyhtTmFtZXNwYWNlUHJlZml4KSk7Ci0gICAgICAgICAgICBuYW1lc3BhY2VFeHQudXJpLmluZGV4ID0gaHRvZGwoc3RyaW5ncy5vZmZzZXRGb3JTdHJpbmcobU5hbWVzcGFjZVVyaSkpOwotICAgICAgICB9Ci0gICAgICAgIExPR19BTFdBWVNfRkFUQUxfSUYoTkEgIT0gMCwgIk5hbWVzcGFjZSBub2RlcyBjYW4ndCBoYXZlIGF0dHJpYnV0ZXMhIik7Ci0gICAgfSBlbHNlIGlmICh0eXBlID09IFRZUEVfQ0RBVEEpIHsKLSAgICAgICAgbm9kZS5oZWFkZXIudHlwZSA9IGh0b2RzKFJFU19YTUxfQ0RBVEFfVFlQRSk7Ci0gICAgICAgIGV4dERhdGEgPSAmY2RhdGFFeHQ7Ci0gICAgICAgIGV4dFNpemUgPSBzaXplb2YoY2RhdGFFeHQpOwotICAgICAgICBtZW1zZXQoJmNkYXRhRXh0LCAwLCBzaXplb2YoY2RhdGFFeHQpKTsKLSAgICAgICAgY2RhdGFFeHQuZGF0YS5pbmRleCA9IGh0b2RsKHN0cmluZ3Mub2Zmc2V0Rm9yU3RyaW5nKG1DaGFycykpOwotICAgICAgICBjZGF0YUV4dC50eXBlZERhdGEuc2l6ZSA9IGh0b2RzKHNpemVvZihjZGF0YUV4dC50eXBlZERhdGEpKTsKLSAgICAgICAgY2RhdGFFeHQudHlwZWREYXRhLnJlczAgPSAwOwotICAgICAgICBjZGF0YUV4dC50eXBlZERhdGEuZGF0YVR5cGUgPSBtQ2hhcnNWYWx1ZS5kYXRhVHlwZTsKLSAgICAgICAgY2RhdGFFeHQudHlwZWREYXRhLmRhdGEgPSBodG9kbChtQ2hhcnNWYWx1ZS5kYXRhKTsKLSAgICAgICAgTE9HX0FMV0FZU19GQVRBTF9JRihOQSAhPSAwLCAiQ0RBVEEgbm9kZXMgY2FuJ3QgaGF2ZSBhdHRyaWJ1dGVzISIpOwotICAgIH0KLQotICAgIG5vZGUuaGVhZGVyLnNpemUgPSBodG9kbChzaXplb2Yobm9kZSkgKyBleHRTaXplICsgKHNpemVvZihhdHRyKSpOQSkpOwotCi0gICAgaWYgKHdyaXRlQ3VycmVudE5vZGUpIHsKLSAgICAgICAgZGVzdC0+d3JpdGVEYXRhKCZub2RlLCBzaXplb2Yobm9kZSkpOwotICAgICAgICBpZiAoZXh0U2l6ZSA+IDApIHsKLSAgICAgICAgICAgIGRlc3QtPndyaXRlRGF0YShleHREYXRhLCBleHRTaXplKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZvciAoaT0wOyBpPE5BOyBpKyspIHsKLSAgICAgICAgc3NpemVfdCBpZHggPSBtQXR0cmlidXRlT3JkZXIudmFsdWVBdChpKTsKLSAgICAgICAgY29uc3QgYXR0cmlidXRlX2VudHJ5JiBhZSA9IG1BdHRyaWJ1dGVzLml0ZW1BdChpZHgpOwotICAgICAgICBpZiAoYWUubnMuc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgYXR0ci5ucy5pbmRleCA9IGh0b2RsKHN0cmluZ3Mub2Zmc2V0Rm9yU3RyaW5nKGFlLm5zKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdHRyLm5zLmluZGV4ID0gaHRvZGwoKHVpbnQzMl90KS0xKTsKLSAgICAgICAgfQotICAgICAgICBhdHRyLm5hbWUuaW5kZXggPSBodG9kbChhZS5uYW1lUG9vbElkeCk7Ci0KLSAgICAgICAgaWYgKCFzdHJpcFJhd1ZhbHVlcyB8fCBhZS5uZWVkU3RyaW5nVmFsdWUoKSkgewotICAgICAgICAgICAgYXR0ci5yYXdWYWx1ZS5pbmRleCA9IGh0b2RsKHN0cmluZ3Mub2Zmc2V0Rm9yU3RyaW5nKGFlLnN0cmluZykpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXR0ci5yYXdWYWx1ZS5pbmRleCA9IGh0b2RsKCh1aW50MzJfdCktMSk7Ci0gICAgICAgIH0KLSAgICAgICAgYXR0ci50eXBlZFZhbHVlLnNpemUgPSBodG9kcyhzaXplb2YoYXR0ci50eXBlZFZhbHVlKSk7Ci0gICAgICAgIGlmIChhZS52YWx1ZS5kYXRhVHlwZSA9PSBSZXNfdmFsdWU6OlRZUEVfTlVMTAotICAgICAgICAgICAgICAgIHx8IGFlLnZhbHVlLmRhdGFUeXBlID09IFJlc192YWx1ZTo6VFlQRV9TVFJJTkcpIHsKLSAgICAgICAgICAgIGF0dHIudHlwZWRWYWx1ZS5yZXMwID0gMDsKLSAgICAgICAgICAgIGF0dHIudHlwZWRWYWx1ZS5kYXRhVHlwZSA9IFJlc192YWx1ZTo6VFlQRV9TVFJJTkc7Ci0gICAgICAgICAgICBhdHRyLnR5cGVkVmFsdWUuZGF0YSA9IGh0b2RsKHN0cmluZ3Mub2Zmc2V0Rm9yU3RyaW5nKGFlLnN0cmluZykpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXR0ci50eXBlZFZhbHVlLnJlczAgPSAwOwotICAgICAgICAgICAgYXR0ci50eXBlZFZhbHVlLmRhdGFUeXBlID0gYWUudmFsdWUuZGF0YVR5cGU7Ci0gICAgICAgICAgICBhdHRyLnR5cGVkVmFsdWUuZGF0YSA9IGh0b2RsKGFlLnZhbHVlLmRhdGEpOwotICAgICAgICB9Ci0gICAgICAgIGRlc3QtPndyaXRlRGF0YSgmYXR0ciwgc2l6ZW9mKGF0dHIpKTsKLSAgICB9Ci0KLSAgICBmb3IgKGk9MDsgaTxOQzsgaSsrKSB7Ci0gICAgICAgIHN0YXR1c190IGVyciA9IG1DaGlsZHJlbi5pdGVtQXQoaSktPmZsYXR0ZW5fbm9kZShzdHJpbmdzLCBkZXN0LAotICAgICAgICAgICAgICAgIHN0cmlwQ29tbWVudHMsIHN0cmlwUmF3VmFsdWVzKTsKLSAgICAgICAgaWYgKGVyciAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICh0eXBlID09IFRZUEVfRUxFTUVOVCkgewotICAgICAgICBSZXNYTUxUcmVlX2VuZEVsZW1lbnRFeHQgZW5kRWxlbWVudEV4dDsKLSAgICAgICAgbWVtc2V0KCZlbmRFbGVtZW50RXh0LCAwLCBzaXplb2YoZW5kRWxlbWVudEV4dCkpOwotICAgICAgICBub2RlLmhlYWRlci50eXBlID0gaHRvZHMoUkVTX1hNTF9FTkRfRUxFTUVOVF9UWVBFKTsKLSAgICAgICAgbm9kZS5oZWFkZXIuc2l6ZSA9IGh0b2RsKHNpemVvZihub2RlKStzaXplb2YoZW5kRWxlbWVudEV4dCkpOwotICAgICAgICBub2RlLmxpbmVOdW1iZXIgPSBodG9kbChnZXRFbmRMaW5lTnVtYmVyKCkpOwotICAgICAgICBub2RlLmNvbW1lbnQuaW5kZXggPSBodG9kbCgodWludDMyX3QpLTEpOwotICAgICAgICBlbmRFbGVtZW50RXh0Lm5zLmluZGV4ID0gYXR0ckV4dC5ucy5pbmRleDsKLSAgICAgICAgZW5kRWxlbWVudEV4dC5uYW1lLmluZGV4ID0gYXR0ckV4dC5uYW1lLmluZGV4OwotICAgICAgICBkZXN0LT53cml0ZURhdGEoJm5vZGUsIHNpemVvZihub2RlKSk7Ci0gICAgICAgIGRlc3QtPndyaXRlRGF0YSgmZW5kRWxlbWVudEV4dCwgc2l6ZW9mKGVuZEVsZW1lbnRFeHQpKTsKLSAgICB9IGVsc2UgaWYgKHR5cGUgPT0gVFlQRV9OQU1FU1BBQ0UpIHsKLSAgICAgICAgaWYgKHdyaXRlQ3VycmVudE5vZGUpIHsKLSAgICAgICAgICAgIG5vZGUuaGVhZGVyLnR5cGUgPSBodG9kcyhSRVNfWE1MX0VORF9OQU1FU1BBQ0VfVFlQRSk7Ci0gICAgICAgICAgICBub2RlLmxpbmVOdW1iZXIgPSBodG9kbChnZXRFbmRMaW5lTnVtYmVyKCkpOwotICAgICAgICAgICAgbm9kZS5jb21tZW50LmluZGV4ID0gaHRvZGwoKHVpbnQzMl90KS0xKTsKLSAgICAgICAgICAgIG5vZGUuaGVhZGVyLnNpemUgPSBodG9kbChzaXplb2Yobm9kZSkrZXh0U2l6ZSk7Ci0gICAgICAgICAgICBkZXN0LT53cml0ZURhdGEoJm5vZGUsIHNpemVvZihub2RlKSk7Ci0gICAgICAgICAgICBkZXN0LT53cml0ZURhdGEoZXh0RGF0YSwgZXh0U2l6ZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19CmRpZmYgLS1naXQgYS90b29scy9hYXB0L1hNTE5vZGUuaCBiL3Rvb2xzL2FhcHQvWE1MTm9kZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTYyNGI3Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvWE1MTm9kZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjAyICswLDAgQEAKLS8vCi0vLyBDb3B5cmlnaHQgMjAwNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0vLwotLy8gQnVpbGQgcmVzb3VyY2UgZmlsZXMgZnJvbSByYXcgYXNzZXRzLgotLy8KLQotI2lmbmRlZiBYTUxfTk9ERV9ICi0jZGVmaW5lIFhNTF9OT0RFX0gKLQotI2luY2x1ZGUgIlN0cmluZ1Bvb2wuaCIKLSNpbmNsdWRlICJSZXNvdXJjZVRhYmxlLmgiCi0KLWNsYXNzIFhNTE5vZGU7Ci0KLWV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBSRVNPVVJDRVNfUk9PVF9OQU1FU1BBQ0U7Ci1leHRlcm4gY29uc3QgY2hhciogY29uc3QgUkVTT1VSQ0VTX0FORFJPSURfTkFNRVNQQUNFOwotCi1ib29sIGlzV2hpdGVzcGFjZShjb25zdCBjaGFyMTZfdCogc3RyKTsKLQotU3RyaW5nMTYgZ2V0TmFtZXNwYWNlUmVzb3VyY2VQYWNrYWdlKFN0cmluZzE2IG5hbWVzcGFjZVVyaSwgYm9vbCogb3V0SXNQdWJsaWMgPSBOVUxMKTsKLQotc3RhdHVzX3QgcGFyc2VTdHlsZWRTdHJpbmcoQnVuZGxlKiBidW5kbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmaWxlTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc1hNTFRyZWUqIGluWG1sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nMTYmIGVuZFRhZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzE2KiBvdXRTdHJpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nUG9vbDo6ZW50cnlfc3R5bGVfc3Bhbj4qIG91dFNwYW5zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc0Zvcm1hdHRlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNQc2V1ZG9sb2NhbGl6YWJsZSk7Ci0KLXZvaWQgcHJpbnRYTUxCbG9jayhSZXNYTUxUcmVlKiBibG9jayk7Ci0KLXN0YXR1c190IHBhcnNlWE1MUmVzb3VyY2UoY29uc3Qgc3A8QWFwdEZpbGU+JiBmaWxlLCBSZXNYTUxUcmVlKiBvdXRUcmVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHN0cmlwQWxsPXRydWUsIGJvb2wga2VlcENvbW1lbnRzPWZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiogY0RhdGFUYWdzPU5VTEwpOwotCi1jbGFzcyBYTUxOb2RlIDogcHVibGljIFJlZkJhc2UKLXsKLXB1YmxpYzoKLSAgICBzdGF0aWMgc3A8WE1MTm9kZT4gcGFyc2UoY29uc3Qgc3A8QWFwdEZpbGU+JiBmaWxlKTsKLQotICAgIHN0YXRpYyBpbmxpbmUKLSAgICBzcDxYTUxOb2RlPiBuZXdOYW1lc3BhY2UoY29uc3QgU3RyaW5nOCYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZzE2JiBwcmVmaXgsIGNvbnN0IFN0cmluZzE2JiB1cmkpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBYTUxOb2RlKGZpbGVuYW1lLCBwcmVmaXgsIHVyaSwgdHJ1ZSk7Ci0gICAgfQotICAgIAotICAgIHN0YXRpYyBpbmxpbmUKLSAgICBzcDxYTUxOb2RlPiBuZXdFbGVtZW50KGNvbnN0IFN0cmluZzgmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcxNiYgbnMsIGNvbnN0IFN0cmluZzE2JiBuYW1lKSB7Ci0gICAgICAgIHJldHVybiBuZXcgWE1MTm9kZShmaWxlbmFtZSwgbnMsIG5hbWUsIGZhbHNlKTsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGljIGlubGluZQotICAgIHNwPFhNTE5vZGU+IG5ld0NEYXRhKGNvbnN0IFN0cmluZzgmIGZpbGVuYW1lKSB7Ci0gICAgICAgIHJldHVybiBuZXcgWE1MTm9kZShmaWxlbmFtZSk7Ci0gICAgfQotICAgIAotICAgIGVudW0gdHlwZSB7Ci0gICAgICAgIFRZUEVfTkFNRVNQQUNFLAotICAgICAgICBUWVBFX0VMRU1FTlQsCi0gICAgICAgIFRZUEVfQ0RBVEEKLSAgICB9OwotICAgIAotICAgIHR5cGUgZ2V0VHlwZSgpIGNvbnN0OwotICAgIAotICAgIGNvbnN0IFN0cmluZzE2JiBnZXROYW1lc3BhY2VQcmVmaXgoKSBjb25zdDsKLSAgICBjb25zdCBTdHJpbmcxNiYgZ2V0TmFtZXNwYWNlVXJpKCkgY29uc3Q7Ci0gICAgCi0gICAgY29uc3QgU3RyaW5nMTYmIGdldEVsZW1lbnROYW1lc3BhY2UoKSBjb25zdDsKLSAgICBjb25zdCBTdHJpbmcxNiYgZ2V0RWxlbWVudE5hbWUoKSBjb25zdDsKLSAgICBjb25zdCBWZWN0b3I8c3A8WE1MTm9kZT4gPiYgZ2V0Q2hpbGRyZW4oKSBjb25zdDsKLQotICAgIGNvbnN0IFN0cmluZzgmIGdldEZpbGVuYW1lKCkgY29uc3Q7Ci0gICAgCi0gICAgc3RydWN0IGF0dHJpYnV0ZV9lbnRyeSB7Ci0gICAgICAgIGF0dHJpYnV0ZV9lbnRyeSgpIDogaW5kZXgofih1aW50MzJfdCkwKSwgbmFtZVJlc0lkKDApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhbHVlLmRhdGFUeXBlID0gUmVzX3ZhbHVlOjpUWVBFX05VTEw7Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIG5lZWRTdHJpbmdWYWx1ZSgpIGNvbnN0IHsKLSAgICAgICAgICAgIHJldHVybiBuYW1lUmVzSWQgPT0gMAotICAgICAgICAgICAgICAgIHx8IHZhbHVlLmRhdGFUeXBlID09IFJlc192YWx1ZTo6VFlQRV9OVUxMCi0gICAgICAgICAgICAgICAgfHwgdmFsdWUuZGF0YVR5cGUgPT0gUmVzX3ZhbHVlOjpUWVBFX1NUUklORzsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgU3RyaW5nMTYgbnM7Ci0gICAgICAgIFN0cmluZzE2IG5hbWU7Ci0gICAgICAgIFN0cmluZzE2IHN0cmluZzsKLSAgICAgICAgUmVzX3ZhbHVlIHZhbHVlOwotICAgICAgICB1aW50MzJfdCBpbmRleDsKLSAgICAgICAgdWludDMyX3QgbmFtZVJlc0lkOwotICAgICAgICBtdXRhYmxlIHVpbnQzMl90IG5hbWVQb29sSWR4OwotICAgIH07Ci0KLSAgICBjb25zdCBWZWN0b3I8YXR0cmlidXRlX2VudHJ5PiYgZ2V0QXR0cmlidXRlcygpIGNvbnN0OwotCi0gICAgY29uc3QgYXR0cmlidXRlX2VudHJ5KiBnZXRBdHRyaWJ1dGUoY29uc3QgU3RyaW5nMTYmIG5zLCBjb25zdCBTdHJpbmcxNiYgbmFtZSkgY29uc3Q7Ci0gICAgCi0gICAgYXR0cmlidXRlX2VudHJ5KiBlZGl0QXR0cmlidXRlKGNvbnN0IFN0cmluZzE2JiBucywgY29uc3QgU3RyaW5nMTYmIG5hbWUpOwotCi0gICAgY29uc3QgU3RyaW5nMTYmIGdldENEYXRhKCkgY29uc3Q7Ci0KLSAgICBjb25zdCBTdHJpbmcxNiYgZ2V0Q29tbWVudCgpIGNvbnN0OwotCi0gICAgaW50MzJfdCBnZXRTdGFydExpbmVOdW1iZXIoKSBjb25zdDsKLSAgICBpbnQzMl90IGdldEVuZExpbmVOdW1iZXIoKSBjb25zdDsKLQotICAgIHNwPFhNTE5vZGU+IHNlYXJjaEVsZW1lbnQoY29uc3QgU3RyaW5nMTYmIHRhZ05hbWVzcGFjZSwgY29uc3QgU3RyaW5nMTYmIHRhZ05hbWUpOwotICAgIAotICAgIHNwPFhNTE5vZGU+IGdldENoaWxkRWxlbWVudChjb25zdCBTdHJpbmcxNiYgdGFnTmFtZXNwYWNlLCBjb25zdCBTdHJpbmcxNiYgdGFnTmFtZSk7Ci0gICAgCi0gICAgc3RhdHVzX3QgYWRkQ2hpbGQoY29uc3Qgc3A8WE1MTm9kZT4mIGNoaWxkKTsKLQotICAgIHN0YXR1c190IGluc2VydENoaWxkQXQoY29uc3Qgc3A8WE1MTm9kZT4mIGNoaWxkLCBzaXplX3QgaW5kZXgpOwotCi0gICAgc3RhdHVzX3QgYWRkQXR0cmlidXRlKGNvbnN0IFN0cmluZzE2JiBucywgY29uc3QgU3RyaW5nMTYmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZzE2JiB2YWx1ZSk7Ci0KLSAgICB2b2lkIHNldEF0dHJpYnV0ZVJlc0lEKHNpemVfdCBhdHRySWR4LCB1aW50MzJfdCByZXNJZCk7Ci0KLSAgICBzdGF0dXNfdCBhcHBlbmRDaGFycyhjb25zdCBTdHJpbmcxNiYgY2hhcnMpOwotCi0gICAgc3RhdHVzX3QgYXBwZW5kQ29tbWVudChjb25zdCBTdHJpbmcxNiYgY29tbWVudCk7Ci0KLSAgICB2b2lkIHNldFN0YXJ0TGluZU51bWJlcihpbnQzMl90IGxpbmUpOwotICAgIHZvaWQgc2V0RW5kTGluZU51bWJlcihpbnQzMl90IGxpbmUpOwotCi0gICAgdm9pZCByZW1vdmVXaGl0ZXNwYWNlKGJvb2wgc3RyaXBBbGw9dHJ1ZSwgY29uc3QgY2hhcioqIGNEYXRhVGFncz1OVUxMKTsKLQotICAgIHZvaWQgc2V0VVRGOChib29sIHZhbCkgeyBtVVRGOCA9IHZhbDsgfQotCi0gICAgc3RhdHVzX3QgcGFyc2VWYWx1ZXMoY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzc2V0cywgUmVzb3VyY2VUYWJsZSogdGFibGUpOwotCi0gICAgc3RhdHVzX3QgYXNzaWduUmVzb3VyY2VJZHMoY29uc3Qgc3A8QWFwdEFzc2V0cz4mIGFzc2V0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXNvdXJjZVRhYmxlKiB0YWJsZSA9IE5VTEwpOwotCi0gICAgc3RhdHVzX3QgZmxhdHRlbihjb25zdCBzcDxBYXB0RmlsZT4mIGRlc3QsIGJvb2wgc3RyaXBDb21tZW50cywKLSAgICAgICAgICAgIGJvb2wgc3RyaXBSYXdWYWx1ZXMpIGNvbnN0OwotCi0gICAgdm9pZCBwcmludChpbnQgaW5kZW50PTApOwotCi1wcml2YXRlOgotICAgIHN0cnVjdCBQYXJzZVN0YXRlCi0gICAgewotICAgICAgICBTdHJpbmc4IGZpbGVuYW1lOwotICAgICAgICBYTUxfUGFyc2VyIHBhcnNlcjsKLSAgICAgICAgc3A8WE1MTm9kZT4gcm9vdDsKLSAgICAgICAgVmVjdG9yPHNwPFhNTE5vZGU+ID4gc3RhY2s7Ci0gICAgICAgIFN0cmluZzE2IHBlbmRpbmdDb21tZW50OwotICAgIH07Ci0KLSAgICBzdGF0aWMgdm9pZCBYTUxDQUxMCi0gICAgc3RhcnROYW1lc3BhY2Uodm9pZCAqdXNlckRhdGEsIGNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3QgY2hhciAqdXJpKTsKLSAgICBzdGF0aWMgdm9pZCBYTUxDQUxMCi0gICAgc3RhcnRFbGVtZW50KHZvaWQgKnVzZXJEYXRhLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICoqYXR0cyk7Ci0gICAgc3RhdGljIHZvaWQgWE1MQ0FMTAotICAgIGNoYXJhY3RlckRhdGEodm9pZCAqdXNlckRhdGEsIGNvbnN0IFhNTF9DaGFyICpzLCBpbnQgbGVuKTsKLSAgICBzdGF0aWMgdm9pZCBYTUxDQUxMCi0gICAgZW5kRWxlbWVudCh2b2lkICp1c2VyRGF0YSwgY29uc3QgY2hhciAqbmFtZSk7Ci0gICAgc3RhdGljIHZvaWQgWE1MQ0FMTAotICAgIGVuZE5hbWVzcGFjZSh2b2lkICp1c2VyRGF0YSwgY29uc3QgY2hhciAqcHJlZml4KTsKLSAgICAKLSAgICBzdGF0aWMgdm9pZCBYTUxDQUxMCi0gICAgY29tbWVudERhdGEodm9pZCAqdXNlckRhdGEsIGNvbnN0IGNoYXIgKmNvbW1lbnQpOwotICAgIAotICAgIC8vIENyZWF0aW5nIGFuIGVsZW1lbnQgbm9kZS4KLSAgICBYTUxOb2RlKGNvbnN0IFN0cmluZzgmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcxNiYgczEsIGNvbnN0IFN0cmluZzE2JiBzMiwgYm9vbCBpc05hbWVzcGFjZSk7Ci0gICAgCi0gICAgLy8gQ3JlYXRpbmcgYSBDREFUQSBub2RlLgotICAgIFhNTE5vZGUoY29uc3QgU3RyaW5nOCYgZmlsZW5hbWUpOwotICAgIAotICAgIHN0YXR1c190IGNvbGxlY3Rfc3RyaW5ncyhTdHJpbmdQb29sKiBkZXN0LCBWZWN0b3I8dWludDMyX3Q+KiBvdXRSZXNJZHMsCi0gICAgICAgICAgICBib29sIHN0cmlwQ29tbWVudHMsIGJvb2wgc3RyaXBSYXdWYWx1ZXMpIGNvbnN0OwotCi0gICAgc3RhdHVzX3QgY29sbGVjdF9hdHRyX3N0cmluZ3MoU3RyaW5nUG9vbCogb3V0UG9vbCwKLSAgICAgICAgVmVjdG9yPHVpbnQzMl90Piogb3V0UmVzSWRzLCBib29sIGFsbEF0dHJzKSBjb25zdDsKLSAgICAgICAgCi0gICAgc3RhdHVzX3QgY29sbGVjdF9yZXNpZF9zdHJpbmdzKFN0cmluZ1Bvb2wqIG91dFBvb2wsCi0gICAgICAgICAgICBWZWN0b3I8dWludDMyX3Q+KiBvdXRSZXNJZHMpIGNvbnN0OwotCi0gICAgc3RhdHVzX3QgZmxhdHRlbl9ub2RlKGNvbnN0IFN0cmluZ1Bvb2wmIHN0cmluZ3MsIGNvbnN0IHNwPEFhcHRGaWxlPiYgZGVzdCwKLSAgICAgICAgICAgIGJvb2wgc3RyaXBDb21tZW50cywgYm9vbCBzdHJpcFJhd1ZhbHVlcykgY29uc3Q7Ci0KLSAgICBTdHJpbmcxNiBtTmFtZXNwYWNlUHJlZml4OwotICAgIFN0cmluZzE2IG1OYW1lc3BhY2VVcmk7Ci0gICAgU3RyaW5nMTYgbUVsZW1lbnROYW1lOwotICAgIFZlY3RvcjxzcDxYTUxOb2RlPiA+IG1DaGlsZHJlbjsKLSAgICBWZWN0b3I8YXR0cmlidXRlX2VudHJ5PiBtQXR0cmlidXRlczsKLSAgICBLZXllZFZlY3Rvcjx1aW50MzJfdCwgdWludDMyX3Q+IG1BdHRyaWJ1dGVPcmRlcjsKLSAgICB1aW50MzJfdCBtTmV4dEF0dHJpYnV0ZUluZGV4OwotICAgIFN0cmluZzE2IG1DaGFyczsKLSAgICBSZXNfdmFsdWUgbUNoYXJzVmFsdWU7Ci0gICAgU3RyaW5nMTYgbUNvbW1lbnQ7Ci0gICAgU3RyaW5nOCBtRmlsZW5hbWU7Ci0gICAgaW50MzJfdCBtU3RhcnRMaW5lTnVtYmVyOwotICAgIGludDMyX3QgbUVuZExpbmVOdW1iZXI7Ci0KLSAgICAvLyBFbmNvZGUgY29tcGlsZWQgWE1MIHdpdGggVVRGLTggU3RyaW5nUG9vbHM/Ci0gICAgYm9vbCBtVVRGODsKLX07Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC9aaXBFbnRyeS5jcHAgYi90b29scy9hYXB0L1ppcEVudHJ5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjU3NTk4OC4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L1ppcEVudHJ5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY5NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotLy8KLS8vIEFjY2VzcyB0byBlbnRyaWVzIGluIGEgWmlwIGFyY2hpdmUuCi0vLwotCi0jZGVmaW5lIExPR19UQUcgInppcCIKLQotI2luY2x1ZGUgIlppcEVudHJ5LmgiCi0jaW5jbHVkZSA8dXRpbHMvTG9nLmg+Ci0KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPGFzc2VydC5oPgotCi11c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKLQotLyoKLSAqIEluaXRpYWxpemUgYSBuZXcgWmlwRW50cnkgc3RydWN0dXJlIGZyb20gYSBGSUxFKiBwb3NpdGlvbmVkIGF0IGEKLSAqIENlbnRyYWxEaXJlY3RvcnlFbnRyeS4KLSAqCi0gKiBPbiBleGl0LCB0aGUgZmlsZSBwb2ludGVyIHdpbGwgYmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IENERSBvcgotICogYXQgdGhlIEVPQ0QuCi0gKi8KLXN0YXR1c190IFppcEVudHJ5Ojppbml0RnJvbUNERShGSUxFKiBmcCkKLXsKLSAgICBzdGF0dXNfdCByZXN1bHQ7Ci0gICAgbG9uZyBwb3NuOwotICAgIGJvb2wgaGFzREQ7Ci0KLSAgICAvL0FMT0dWKCJpbml0RnJvbUNERSAtLS1cbiIpOwotCi0gICAgLyogcmVhZCB0aGUgQ0RFICovCi0gICAgcmVzdWx0ID0gbUNERS5yZWFkKGZwKTsKLSAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIEFMT0dEKCJtQ0RFLnJlYWQgZmFpbGVkXG4iKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICAvL21DREUuZHVtcCgpOwotCi0gICAgLyogdXNpbmcgdGhlIGluZm8gaW4gdGhlIENERSwgZ28gbG9hZCB1cCB0aGUgTEZIICovCi0gICAgcG9zbiA9IGZ0ZWxsKGZwKTsKLSAgICBpZiAoZnNlZWsoZnAsIG1DREUubUxvY2FsSGVhZGVyUmVsT2Zmc2V0LCBTRUVLX1NFVCkgIT0gMCkgewotICAgICAgICBBTE9HRCgibG9jYWwgaGVhZGVyIHNlZWsgZmFpbGVkICglbGQpXG4iLAotICAgICAgICAgICAgbUNERS5tTG9jYWxIZWFkZXJSZWxPZmZzZXQpOwotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSBtTEZILnJlYWQoZnApOwotICAgIGlmIChyZXN1bHQgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgQUxPR0QoIm1MRkgucmVhZCBmYWlsZWRcbiIpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIGlmIChmc2VlayhmcCwgcG9zbiwgU0VFS19TRVQpICE9IDApCi0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotCi0gICAgLy9tTEZILmR1bXAoKTsKLQotICAgIC8qCi0gICAgICogV2UgKm1pZ2h0KiBuZWVkIHRvIHJlYWQgdGhlIERhdGEgRGVzY3JpcHRvciBhdCB0aGlzIHBvaW50IGFuZAotICAgICAqIGludGVncmF0ZSBpdCBpbnRvIHRoZSBMRkguICBJZiB0aGlzIGJpdCBpcyBzZXQsIHRoZSBDUkMtMzIsCi0gICAgICogY29tcHJlc3NlZCBzaXplLCBhbmQgdW5jb21wcmVzc2VkIHNpemUgd2lsbCBiZSB6ZXJvLiAgSW4gcHJhY3RpY2UKLSAgICAgKiB0aGVzZSBzZWVtIHRvIGJlIHJhcmUuCi0gICAgICovCi0gICAgaGFzREQgPSAobUxGSC5tR1BCaXRGbGFnICYga1VzZXNEYXRhRGVzY3IpICE9IDA7Ci0gICAgaWYgKGhhc0REKSB7Ci0gICAgICAgIC8vIGRvIHNvbWV0aGluZyBjbGV2ZXIKLSAgICAgICAgLy9BTE9HRCgiKysrIGhhcyBkYXRhIGRlc2NyaXB0b3JcbiIpOwotICAgIH0KLQotICAgIC8qCi0gICAgICogU2FuaXR5LWNoZWNrIHRoZSBMRkguICBOb3RlIHRoYXQgdGhpcyB3aWxsIGZhaWwgaWYgdGhlICJrVXNlc0RhdGFEZXNjciIKLSAgICAgKiBmbGFnIGlzIHNldCwgYmVjYXVzZSB0aGUgTEZIIGlzIGluY29tcGxldGUuICAoTm90IGEgcHJvYmxlbSwgc2luY2Ugd2UKLSAgICAgKiBwcmVmZXIgdGhlIENERSB2YWx1ZXMuKQotICAgICAqLwotICAgIGlmICghaGFzREQgJiYgIWNvbXBhcmVIZWFkZXJzKCkpIHsKLSAgICAgICAgQUxPR1coIndhcm5pbmc6IGhlYWRlciBtaXNtYXRjaFxuIik7Ci0gICAgICAgIC8vIGtlZXAgZ29pbmc/Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBJZiB0aGUgbVZlcnNpb25Ub0V4dHJhY3QgaXMgZ3JlYXRlciB0aGFuIDIwLCB3ZSBtYXkgaGF2ZSBhbgotICAgICAqIGlzc3VlIHVucGFja2luZyB0aGUgcmVjb3JkIC0tIGNvdWxkIGJlIGVuY3J5cHRlZCwgY29tcHJlc3NlZAotICAgICAqIHdpdGggc29tZXRoaW5nIHdlIGRvbid0IHN1cHBvcnQsIG9yIHVzZSBaaXA2NCBleHRlbnNpb25zLiAgV2UKLSAgICAgKiBjYW4gZGVmZXIgd29ycnlpbmcgYWJvdXQgdGhhdCB0byB3aGVuIHdlJ3JlIGV4dHJhY3RpbmcgZGF0YS4KLSAgICAgKi8KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotLyoKLSAqIEluaXRpYWxpemUgYSBuZXcgZW50cnkuICBQYXNzIGluIHRoZSBmaWxlIG5hbWUgYW5kIGFuIG9wdGlvbmFsIGNvbW1lbnQuCi0gKgotICogSW5pdGlhbGl6ZXMgdGhlIENERSBhbmQgdGhlIExGSC4KLSAqLwotdm9pZCBaaXBFbnRyeTo6aW5pdE5ldyhjb25zdCBjaGFyKiBmaWxlTmFtZSwgY29uc3QgY2hhciogY29tbWVudCkKLXsKLSAgICBhc3NlcnQoZmlsZU5hbWUgIT0gTlVMTCAmJiAqZmlsZU5hbWUgIT0gJ1wwJyk7ICAvLyBuYW1lIHJlcXVpcmVkCi0KLSAgICAvKiBtb3N0IGZpZWxkcyBhcmUgcHJvcGVybHkgaW5pdGlhbGl6ZWQgYnkgY29uc3RydWN0b3IgKi8KLSAgICBtQ0RFLm1WZXJzaW9uTWFkZUJ5ID0ga0RlZmF1bHRNYWRlQnk7Ci0gICAgbUNERS5tVmVyc2lvblRvRXh0cmFjdCA9IGtEZWZhdWx0VmVyc2lvbjsKLSAgICBtQ0RFLm1Db21wcmVzc2lvbk1ldGhvZCA9IGtDb21wcmVzc1N0b3JlZDsKLSAgICBtQ0RFLm1GaWxlTmFtZUxlbmd0aCA9IHN0cmxlbihmaWxlTmFtZSk7Ci0gICAgaWYgKGNvbW1lbnQgIT0gTlVMTCkKLSAgICAgICAgbUNERS5tRmlsZUNvbW1lbnRMZW5ndGggPSBzdHJsZW4oY29tbWVudCk7Ci0gICAgbUNERS5tRXh0ZXJuYWxBdHRycyA9IDB4ODFiNjAwMjA7ICAgLy8gbWF0Y2hlcyB3aGF0IFdpblppcCBkb2VzCi0KLSAgICBpZiAobUNERS5tRmlsZU5hbWVMZW5ndGggPiAwKSB7Ci0gICAgICAgIG1DREUubUZpbGVOYW1lID0gbmV3IHVuc2lnbmVkIGNoYXJbbUNERS5tRmlsZU5hbWVMZW5ndGgrMV07Ci0gICAgICAgIHN0cmNweSgoY2hhciopIG1DREUubUZpbGVOYW1lLCBmaWxlTmFtZSk7Ci0gICAgfQotICAgIGlmIChtQ0RFLm1GaWxlQ29tbWVudExlbmd0aCA+IDApIHsKLSAgICAgICAgLyogVE9ETzogc3RvcCBhc3N1bWluZyBudWxsLXRlcm1pbmF0ZWQgQVNDSUkgaGVyZT8gKi8KLSAgICAgICAgbUNERS5tRmlsZUNvbW1lbnQgPSBuZXcgdW5zaWduZWQgY2hhclttQ0RFLm1GaWxlQ29tbWVudExlbmd0aCsxXTsKLSAgICAgICAgc3RyY3B5KChjaGFyKikgbUNERS5tRmlsZUNvbW1lbnQsIGNvbW1lbnQpOwotICAgIH0KLQotICAgIGNvcHlDREV0b0xGSCgpOwotfQotCi0vKgotICogSW5pdGlhbGl6ZSBhIG5ldyBlbnRyeSwgc3RhcnRpbmcgd2l0aCB0aGUgWmlwRW50cnkgZnJvbSBhIGRpZmZlcmVudAotICogYXJjaGl2ZS4KLSAqCi0gKiBJbml0aWFsaXplcyB0aGUgQ0RFIGFuZCB0aGUgTEZILgotICovCi1zdGF0dXNfdCBaaXBFbnRyeTo6aW5pdEZyb21FeHRlcm5hbChjb25zdCBaaXBGaWxlKiBwWmlwRmlsZSwKLSAgICBjb25zdCBaaXBFbnRyeSogcEVudHJ5KQotewotICAgIC8qCi0gICAgICogQ29weSBldmVyeXRoaW5nIGluIHRoZSBDREUgb3ZlciwgdGhlbiBmaXggdXAgdGhlIGhhaXJ5IGJpdHMuCi0gICAgICovCi0gICAgbWVtY3B5KCZtQ0RFLCAmcEVudHJ5LT5tQ0RFLCBzaXplb2YobUNERSkpOwotCi0gICAgaWYgKG1DREUubUZpbGVOYW1lTGVuZ3RoID4gMCkgewotICAgICAgICBtQ0RFLm1GaWxlTmFtZSA9IG5ldyB1bnNpZ25lZCBjaGFyW21DREUubUZpbGVOYW1lTGVuZ3RoKzFdOwotICAgICAgICBpZiAobUNERS5tRmlsZU5hbWUgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOT19NRU1PUlk7Ci0gICAgICAgIHN0cmNweSgoY2hhciopIG1DREUubUZpbGVOYW1lLCAoY2hhciopcEVudHJ5LT5tQ0RFLm1GaWxlTmFtZSk7Ci0gICAgfQotICAgIGlmIChtQ0RFLm1GaWxlQ29tbWVudExlbmd0aCA+IDApIHsKLSAgICAgICAgbUNERS5tRmlsZUNvbW1lbnQgPSBuZXcgdW5zaWduZWQgY2hhclttQ0RFLm1GaWxlQ29tbWVudExlbmd0aCsxXTsKLSAgICAgICAgaWYgKG1DREUubUZpbGVDb21tZW50ID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gTk9fTUVNT1JZOwotICAgICAgICBzdHJjcHkoKGNoYXIqKSBtQ0RFLm1GaWxlQ29tbWVudCwgKGNoYXIqKXBFbnRyeS0+bUNERS5tRmlsZUNvbW1lbnQpOwotICAgIH0KLSAgICBpZiAobUNERS5tRXh0cmFGaWVsZExlbmd0aCA+IDApIHsKLSAgICAgICAgLyogd2UgbnVsbC10ZXJtaW5hdGUgdGhpcywgdGhvdWdoIGl0IG1heSBub3QgYmUgYSBzdHJpbmcgKi8KLSAgICAgICAgbUNERS5tRXh0cmFGaWVsZCA9IG5ldyB1bnNpZ25lZCBjaGFyW21DREUubUV4dHJhRmllbGRMZW5ndGgrMV07Ci0gICAgICAgIGlmIChtQ0RFLm1FeHRyYUZpZWxkID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gTk9fTUVNT1JZOwotICAgICAgICBtZW1jcHkobUNERS5tRXh0cmFGaWVsZCwgcEVudHJ5LT5tQ0RFLm1FeHRyYUZpZWxkLAotICAgICAgICAgICAgbUNERS5tRXh0cmFGaWVsZExlbmd0aCsxKTsKLSAgICB9Ci0KLSAgICAvKiBjb25zdHJ1Y3QgdGhlIExGSCBmcm9tIHRoZSBDREUgKi8KLSAgICBjb3B5Q0RFdG9MRkgoKTsKLQotICAgIC8qCi0gICAgICogVGhlIExGSCAiZXh0cmEiIGZpZWxkIGlzIGluZGVwZW5kZW50IG9mIHRoZSBDREUgImV4dHJhIiwgc28gd2UKLSAgICAgKiBoYW5kbGUgaXQgaGVyZS4KLSAgICAgKi8KLSAgICBhc3NlcnQobUxGSC5tRXh0cmFGaWVsZCA9PSBOVUxMKTsKLSAgICBtTEZILm1FeHRyYUZpZWxkTGVuZ3RoID0gcEVudHJ5LT5tTEZILm1FeHRyYUZpZWxkTGVuZ3RoOwotICAgIGlmIChtTEZILm1FeHRyYUZpZWxkTGVuZ3RoID4gMCkgewotICAgICAgICBtTEZILm1FeHRyYUZpZWxkID0gbmV3IHVuc2lnbmVkIGNoYXJbbUxGSC5tRXh0cmFGaWVsZExlbmd0aCsxXTsKLSAgICAgICAgaWYgKG1MRkgubUV4dHJhRmllbGQgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOT19NRU1PUlk7Ci0gICAgICAgIG1lbWNweShtTEZILm1FeHRyYUZpZWxkLCBwRW50cnktPm1MRkgubUV4dHJhRmllbGQsCi0gICAgICAgICAgICBtTEZILm1FeHRyYUZpZWxkTGVuZ3RoKzEpOwotICAgIH0KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotLyoKLSAqIEluc2VydCBwYWQgYnl0ZXMgaW4gdGhlIExGSCBieSB0d2Vha2luZyB0aGUgImV4dHJhIiBmaWVsZC4gIFRoaXMgd2lsbAotICogcG90ZW50aWFsbHkgY29uZnVzZSBzb21ldGhpbmcgdGhhdCBwdXQgImV4dHJhIiBkYXRhIGluIGhlcmUgZWFybGllciwKLSAqIGJ1dCBJIGNhbid0IGZpbmQgYW4gYWN0dWFsIHByb2JsZW0uCi0gKi8KLXN0YXR1c190IFppcEVudHJ5OjphZGRQYWRkaW5nKGludCBwYWRkaW5nKQotewotICAgIGlmIChwYWRkaW5nIDw9IDApCi0gICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKLQotICAgIC8vQUxPR0koIkhFWTogYWRkaW5nICVkIHBhZCBieXRlcyB0byBleGlzdGluZyAlZCBpbiAlc1xuIiwKLSAgICAvLyAgICBwYWRkaW5nLCBtTEZILm1FeHRyYUZpZWxkTGVuZ3RoLCBtQ0RFLm1GaWxlTmFtZSk7Ci0KLSAgICBpZiAobUxGSC5tRXh0cmFGaWVsZExlbmd0aCA+IDApIHsKLSAgICAgICAgLyogZXh0ZW5kIGV4aXN0aW5nIGZpZWxkICovCi0gICAgICAgIHVuc2lnbmVkIGNoYXIqIG5ld0V4dHJhOwotCi0gICAgICAgIG5ld0V4dHJhID0gbmV3IHVuc2lnbmVkIGNoYXJbbUxGSC5tRXh0cmFGaWVsZExlbmd0aCArIHBhZGRpbmddOwotICAgICAgICBpZiAobmV3RXh0cmEgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOT19NRU1PUlk7Ci0gICAgICAgIG1lbXNldChuZXdFeHRyYSArIG1MRkgubUV4dHJhRmllbGRMZW5ndGgsIDAsIHBhZGRpbmcpOwotICAgICAgICBtZW1jcHkobmV3RXh0cmEsIG1MRkgubUV4dHJhRmllbGQsIG1MRkgubUV4dHJhRmllbGRMZW5ndGgpOwotCi0gICAgICAgIGRlbGV0ZVtdIG1MRkgubUV4dHJhRmllbGQ7Ci0gICAgICAgIG1MRkgubUV4dHJhRmllbGQgPSBuZXdFeHRyYTsKLSAgICAgICAgbUxGSC5tRXh0cmFGaWVsZExlbmd0aCArPSBwYWRkaW5nOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8qIGNyZWF0ZSBuZXcgZmllbGQgKi8KLSAgICAgICAgbUxGSC5tRXh0cmFGaWVsZCA9IG5ldyB1bnNpZ25lZCBjaGFyW3BhZGRpbmddOwotICAgICAgICBtZW1zZXQobUxGSC5tRXh0cmFGaWVsZCwgMCwgcGFkZGluZyk7Ci0gICAgICAgIG1MRkgubUV4dHJhRmllbGRMZW5ndGggPSBwYWRkaW5nOwotICAgIH0KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotLyoKLSAqIFNldCB0aGUgZmllbGRzIGluIHRoZSBMRkggZXF1YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgZmllbGRzIGluIHRoZSBDREUuCi0gKgotICogVGhpcyBkb2VzIG5vdCB0b3VjaCB0aGUgTEZIICJleHRyYSIgZmllbGQuCi0gKi8KLXZvaWQgWmlwRW50cnk6OmNvcHlDREV0b0xGSCh2b2lkKQotewotICAgIG1MRkgubVZlcnNpb25Ub0V4dHJhY3QgID0gbUNERS5tVmVyc2lvblRvRXh0cmFjdDsKLSAgICBtTEZILm1HUEJpdEZsYWcgICAgICAgICA9IG1DREUubUdQQml0RmxhZzsKLSAgICBtTEZILm1Db21wcmVzc2lvbk1ldGhvZCA9IG1DREUubUNvbXByZXNzaW9uTWV0aG9kOwotICAgIG1MRkgubUxhc3RNb2RGaWxlVGltZSAgID0gbUNERS5tTGFzdE1vZEZpbGVUaW1lOwotICAgIG1MRkgubUxhc3RNb2RGaWxlRGF0ZSAgID0gbUNERS5tTGFzdE1vZEZpbGVEYXRlOwotICAgIG1MRkgubUNSQzMyICAgICAgICAgICAgID0gbUNERS5tQ1JDMzI7Ci0gICAgbUxGSC5tQ29tcHJlc3NlZFNpemUgICAgPSBtQ0RFLm1Db21wcmVzc2VkU2l6ZTsKLSAgICBtTEZILm1VbmNvbXByZXNzZWRTaXplICA9IG1DREUubVVuY29tcHJlc3NlZFNpemU7Ci0gICAgbUxGSC5tRmlsZU5hbWVMZW5ndGggICAgPSBtQ0RFLm1GaWxlTmFtZUxlbmd0aDsKLSAgICAvLyB0aGUgImV4dHJhIGZpZWxkIiBpcyBpbmRlcGVuZGVudAotCi0gICAgZGVsZXRlW10gbUxGSC5tRmlsZU5hbWU7Ci0gICAgaWYgKG1MRkgubUZpbGVOYW1lTGVuZ3RoID4gMCkgewotICAgICAgICBtTEZILm1GaWxlTmFtZSA9IG5ldyB1bnNpZ25lZCBjaGFyW21MRkgubUZpbGVOYW1lTGVuZ3RoKzFdOwotICAgICAgICBzdHJjcHkoKGNoYXIqKSBtTEZILm1GaWxlTmFtZSwgKGNvbnN0IGNoYXIqKSBtQ0RFLm1GaWxlTmFtZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbUxGSC5tRmlsZU5hbWUgPSBOVUxMOwotICAgIH0KLX0KLQotLyoKLSAqIFNldCBzb21lIGluZm9ybWF0aW9uIGFib3V0IGEgZmlsZSBhZnRlciB3ZSBhZGQgaXQuCi0gKi8KLXZvaWQgWmlwRW50cnk6OnNldERhdGFJbmZvKGxvbmcgdW5jb21wTGVuLCBsb25nIGNvbXBMZW4sIHVuc2lnbmVkIGxvbmcgY3JjMzIsCi0gICAgaW50IGNvbXByZXNzaW9uTWV0aG9kKQotewotICAgIG1DREUubUNvbXByZXNzaW9uTWV0aG9kID0gY29tcHJlc3Npb25NZXRob2Q7Ci0gICAgbUNERS5tQ1JDMzIgPSBjcmMzMjsKLSAgICBtQ0RFLm1Db21wcmVzc2VkU2l6ZSA9IGNvbXBMZW47Ci0gICAgbUNERS5tVW5jb21wcmVzc2VkU2l6ZSA9IHVuY29tcExlbjsKLSAgICBtQ0RFLm1Db21wcmVzc2lvbk1ldGhvZCA9IGNvbXByZXNzaW9uTWV0aG9kOwotICAgIGlmIChjb21wcmVzc2lvbk1ldGhvZCA9PSBrQ29tcHJlc3NEZWZsYXRlZCkgewotICAgICAgICBtQ0RFLm1HUEJpdEZsYWcgfD0gMHgwMDAyOyAgICAgIC8vIGluZGljYXRlcyBtYXhpbXVtIGNvbXByZXNzaW9uIHVzZWQKLSAgICB9Ci0gICAgY29weUNERXRvTEZIKCk7Ci19Ci0KLS8qCi0gKiBTZWUgaWYgdGhlIGRhdGEgaW4gbUNERSBhbmQgbUxGSCBtYXRjaCB1cC4gIFRoaXMgaXMgbW9zdGx5IHVzZWZ1bCBmb3IKLSAqIGRlYnVnZ2luZyB0aGVzZSBjbGFzc2VzLCBidXQgaXQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgZGFtYWdlZAotICogYXJjaGl2ZXMuCi0gKgotICogUmV0dXJucyAiZmFsc2UiIGlmIHRoZXkgZGlmZmVyLgotICovCi1ib29sIFppcEVudHJ5Ojpjb21wYXJlSGVhZGVycyh2b2lkKSBjb25zdAotewotICAgIGlmIChtQ0RFLm1WZXJzaW9uVG9FeHRyYWN0ICE9IG1MRkgubVZlcnNpb25Ub0V4dHJhY3QpIHsKLSAgICAgICAgQUxPR1YoImNtcDogVmVyc2lvblRvRXh0cmFjdFxuIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKG1DREUubUdQQml0RmxhZyAhPSBtTEZILm1HUEJpdEZsYWcpIHsKLSAgICAgICAgQUxPR1YoImNtcDogR1BCaXRGbGFnXG4iKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAobUNERS5tQ29tcHJlc3Npb25NZXRob2QgIT0gbUxGSC5tQ29tcHJlc3Npb25NZXRob2QpIHsKLSAgICAgICAgQUxPR1YoImNtcDogQ29tcHJlc3Npb25NZXRob2RcbiIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGlmIChtQ0RFLm1MYXN0TW9kRmlsZVRpbWUgIT0gbUxGSC5tTGFzdE1vZEZpbGVUaW1lKSB7Ci0gICAgICAgIEFMT0dWKCJjbXA6IExhc3RNb2RGaWxlVGltZVxuIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKG1DREUubUxhc3RNb2RGaWxlRGF0ZSAhPSBtTEZILm1MYXN0TW9kRmlsZURhdGUpIHsKLSAgICAgICAgQUxPR1YoImNtcDogTGFzdE1vZEZpbGVEYXRlXG4iKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAobUNERS5tQ1JDMzIgIT0gbUxGSC5tQ1JDMzIpIHsKLSAgICAgICAgQUxPR1YoImNtcDogQ1JDMzJcbiIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGlmIChtQ0RFLm1Db21wcmVzc2VkU2l6ZSAhPSBtTEZILm1Db21wcmVzc2VkU2l6ZSkgewotICAgICAgICBBTE9HVigiY21wOiBDb21wcmVzc2VkU2l6ZVxuIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKG1DREUubVVuY29tcHJlc3NlZFNpemUgIT0gbUxGSC5tVW5jb21wcmVzc2VkU2l6ZSkgewotICAgICAgICBBTE9HVigiY21wOiBVbmNvbXByZXNzZWRTaXplXG4iKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBpZiAobUNERS5tRmlsZU5hbWVMZW5ndGggIT0gbUxGSC5tRmlsZU5hbWVMZW5ndGgpIHsKLSAgICAgICAgQUxPR1YoImNtcDogRmlsZU5hbWVMZW5ndGhcbiIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotI2lmIDAgICAgICAgLy8gdGhpcyBzZWVtcyB0byBiZSB1c2VkIGZvciBwYWRkaW5nLCBub3QgcmVhbCBkYXRhCi0gICAgaWYgKG1DREUubUV4dHJhRmllbGRMZW5ndGggIT0gbUxGSC5tRXh0cmFGaWVsZExlbmd0aCkgewotICAgICAgICBBTE9HVigiY21wOiBFeHRyYUZpZWxkTGVuZ3RoXG4iKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSNlbmRpZgotICAgIGlmIChtQ0RFLm1GaWxlTmFtZSAhPSBOVUxMKSB7Ci0gICAgICAgIGlmIChzdHJjbXAoKGNoYXIqKSBtQ0RFLm1GaWxlTmFtZSwgKGNoYXIqKSBtTEZILm1GaWxlTmFtZSkgIT0gMCkgewotICAgICAgICAgICAgQUxPR1YoImNtcDogRmlsZU5hbWVcbiIpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotLyoKLSAqIENvbnZlcnQgdGhlIERPUyBkYXRlL3RpbWUgc3RhbXAgaW50byBhIFVOSVggdGltZSBzdGFtcC4KLSAqLwotdGltZV90IFppcEVudHJ5OjpnZXRNb2RXaGVuKHZvaWQpIGNvbnN0Ci17Ci0gICAgc3RydWN0IHRtIHBhcnRzOwotCi0gICAgcGFydHMudG1fc2VjID0gKG1DREUubUxhc3RNb2RGaWxlVGltZSAmIDB4MDAxZikgPDwgMTsKLSAgICBwYXJ0cy50bV9taW4gPSAobUNERS5tTGFzdE1vZEZpbGVUaW1lICYgMHgwN2UwKSA+PiA1OwotICAgIHBhcnRzLnRtX2hvdXIgPSAobUNERS5tTGFzdE1vZEZpbGVUaW1lICYgMHhmODAwKSA+PiAxMTsKLSAgICBwYXJ0cy50bV9tZGF5ID0gKG1DREUubUxhc3RNb2RGaWxlRGF0ZSAmIDB4MDAxZik7Ci0gICAgcGFydHMudG1fbW9uID0gKChtQ0RFLm1MYXN0TW9kRmlsZURhdGUgJiAweDAxZTApID4+IDUpIC0xOwotICAgIHBhcnRzLnRtX3llYXIgPSAoKG1DREUubUxhc3RNb2RGaWxlRGF0ZSAmIDB4ZmUwMCkgPj4gOSkgKyA4MDsKLSAgICBwYXJ0cy50bV93ZGF5ID0gcGFydHMudG1feWRheSA9IDA7Ci0gICAgcGFydHMudG1faXNkc3QgPSAtMTsgICAgICAgIC8vIERTVCBpbmZvICJub3QgYXZhaWxhYmxlIgotCi0gICAgcmV0dXJuIG1rdGltZSgmcGFydHMpOwotfQotCi0vKgotICogU2V0IHRoZSBDREUvTEZIIHRpbWVzdGFtcCBmcm9tIFVOSVggdGltZS4KLSAqLwotdm9pZCBaaXBFbnRyeTo6c2V0TW9kV2hlbih0aW1lX3Qgd2hlbikKLXsKLSNpZmRlZiBIQVZFX0xPQ0FMVElNRV9SCi0gICAgc3RydWN0IHRtIHRtUmVzdWx0OwotI2VuZGlmCi0gICAgdGltZV90IGV2ZW47Ci0gICAgdW5zaWduZWQgc2hvcnQgemRhdGUsIHp0aW1lOwotCi0gICAgc3RydWN0IHRtKiBwdG07Ci0KLSAgICAvKiByb3VuZCB1cCB0byBhbiBldmVuIG51bWJlciBvZiBzZWNvbmRzICovCi0gICAgZXZlbiA9ICh0aW1lX3QpKCgodW5zaWduZWQgbG9uZykod2hlbikgKyAxKSAmICh+MSkpOwotCi0gICAgLyogZXhwYW5kICovCi0jaWZkZWYgSEFWRV9MT0NBTFRJTUVfUgotICAgIHB0bSA9IGxvY2FsdGltZV9yKCZldmVuLCAmdG1SZXN1bHQpOwotI2Vsc2UKLSAgICBwdG0gPSBsb2NhbHRpbWUoJmV2ZW4pOwotI2VuZGlmCi0KLSAgICBpbnQgeWVhcjsKLSAgICB5ZWFyID0gcHRtLT50bV95ZWFyOwotICAgIGlmICh5ZWFyIDwgODApCi0gICAgICAgIHllYXIgPSA4MDsKLQotICAgIHpkYXRlID0gKHllYXIgLSA4MCkgPDwgOSB8IChwdG0tPnRtX21vbisxKSA8PCA1IHwgcHRtLT50bV9tZGF5OwotICAgIHp0aW1lID0gcHRtLT50bV9ob3VyIDw8IDExIHwgcHRtLT50bV9taW4gPDwgNSB8IHB0bS0+dG1fc2VjID4+IDE7Ci0KLSAgICBtQ0RFLm1MYXN0TW9kRmlsZVRpbWUgPSBtTEZILm1MYXN0TW9kRmlsZVRpbWUgPSB6dGltZTsKLSAgICBtQ0RFLm1MYXN0TW9kRmlsZURhdGUgPSBtTEZILm1MYXN0TW9kRmlsZURhdGUgPSB6ZGF0ZTsKLX0KLQotCi0vKgotICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiAgICAgIFppcEVudHJ5OjpMb2NhbEZpbGVIZWFkZXIKLSAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICovCi0KLS8qCi0gKiBSZWFkIGEgbG9jYWwgZmlsZSBoZWFkZXIuCi0gKgotICogT24gZW50cnksICJmcCIgcG9pbnRzIHRvIHRoZSBzaWduYXR1cmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBoZWFkZXIuCi0gKiBPbiBleGl0LCAiZnAiIHBvaW50cyB0byB0aGUgc3RhcnQgb2YgZGF0YS4KLSAqLwotc3RhdHVzX3QgWmlwRW50cnk6OkxvY2FsRmlsZUhlYWRlcjo6cmVhZChGSUxFKiBmcCkKLXsKLSAgICBzdGF0dXNfdCByZXN1bHQgPSBOT19FUlJPUjsKLSAgICB1bnNpZ25lZCBjaGFyIGJ1ZltrTEZITGVuXTsKLQotICAgIGFzc2VydChtRmlsZU5hbWUgPT0gTlVMTCk7Ci0gICAgYXNzZXJ0KG1FeHRyYUZpZWxkID09IE5VTEwpOwotCi0gICAgaWYgKGZyZWFkKGJ1ZiwgMSwga0xGSExlbiwgZnApICE9IGtMRkhMZW4pIHsKLSAgICAgICAgcmVzdWx0ID0gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIGlmIChaaXBFbnRyeTo6Z2V0TG9uZ0xFKCZidWZbMHgwMF0pICE9IGtTaWduYXR1cmUpIHsKLSAgICAgICAgQUxPR0QoIndob29wczogZGlkbid0IGZpbmQgZXhwZWN0ZWQgc2lnbmF0dXJlXG4iKTsKLSAgICAgICAgcmVzdWx0ID0gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIG1WZXJzaW9uVG9FeHRyYWN0ID0gWmlwRW50cnk6OmdldFNob3J0TEUoJmJ1ZlsweDA0XSk7Ci0gICAgbUdQQml0RmxhZyA9IFppcEVudHJ5OjpnZXRTaG9ydExFKCZidWZbMHgwNl0pOwotICAgIG1Db21wcmVzc2lvbk1ldGhvZCA9IFppcEVudHJ5OjpnZXRTaG9ydExFKCZidWZbMHgwOF0pOwotICAgIG1MYXN0TW9kRmlsZVRpbWUgPSBaaXBFbnRyeTo6Z2V0U2hvcnRMRSgmYnVmWzB4MGFdKTsKLSAgICBtTGFzdE1vZEZpbGVEYXRlID0gWmlwRW50cnk6OmdldFNob3J0TEUoJmJ1ZlsweDBjXSk7Ci0gICAgbUNSQzMyID0gWmlwRW50cnk6OmdldExvbmdMRSgmYnVmWzB4MGVdKTsKLSAgICBtQ29tcHJlc3NlZFNpemUgPSBaaXBFbnRyeTo6Z2V0TG9uZ0xFKCZidWZbMHgxMl0pOwotICAgIG1VbmNvbXByZXNzZWRTaXplID0gWmlwRW50cnk6OmdldExvbmdMRSgmYnVmWzB4MTZdKTsKLSAgICBtRmlsZU5hbWVMZW5ndGggPSBaaXBFbnRyeTo6Z2V0U2hvcnRMRSgmYnVmWzB4MWFdKTsKLSAgICBtRXh0cmFGaWVsZExlbmd0aCA9IFppcEVudHJ5OjpnZXRTaG9ydExFKCZidWZbMHgxY10pOwotCi0gICAgLy8gVE9ETzogdmFsaWRhdGUgc2l6ZXMKLQotICAgIC8qIGdyYWIgZmlsZW5hbWUgKi8KLSAgICBpZiAobUZpbGVOYW1lTGVuZ3RoICE9IDApIHsKLSAgICAgICAgbUZpbGVOYW1lID0gbmV3IHVuc2lnbmVkIGNoYXJbbUZpbGVOYW1lTGVuZ3RoKzFdOwotICAgICAgICBpZiAobUZpbGVOYW1lID09IE5VTEwpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IE5PX01FTU9SWTsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotICAgICAgICBpZiAoZnJlYWQobUZpbGVOYW1lLCAxLCBtRmlsZU5hbWVMZW5ndGgsIGZwKSAhPSBtRmlsZU5hbWVMZW5ndGgpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLSAgICAgICAgbUZpbGVOYW1lW21GaWxlTmFtZUxlbmd0aF0gPSAnXDAnOwotICAgIH0KLQotICAgIC8qIGdyYWIgZXh0cmEgZmllbGQgKi8KLSAgICBpZiAobUV4dHJhRmllbGRMZW5ndGggIT0gMCkgewotICAgICAgICBtRXh0cmFGaWVsZCA9IG5ldyB1bnNpZ25lZCBjaGFyW21FeHRyYUZpZWxkTGVuZ3RoKzFdOwotICAgICAgICBpZiAobUV4dHJhRmllbGQgPT0gTlVMTCkgewotICAgICAgICAgICAgcmVzdWx0ID0gTk9fTUVNT1JZOwotICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICB9Ci0gICAgICAgIGlmIChmcmVhZChtRXh0cmFGaWVsZCwgMSwgbUV4dHJhRmllbGRMZW5ndGgsIGZwKSAhPSBtRXh0cmFGaWVsZExlbmd0aCkgewotICAgICAgICAgICAgcmVzdWx0ID0gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotICAgICAgICBtRXh0cmFGaWVsZFttRXh0cmFGaWVsZExlbmd0aF0gPSAnXDAnOwotICAgIH0KLQotYmFpbDoKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0vKgotICogV3JpdGUgYSBsb2NhbCBmaWxlIGhlYWRlci4KLSAqLwotc3RhdHVzX3QgWmlwRW50cnk6OkxvY2FsRmlsZUhlYWRlcjo6d3JpdGUoRklMRSogZnApCi17Ci0gICAgdW5zaWduZWQgY2hhciBidWZba0xGSExlbl07Ci0KLSAgICBaaXBFbnRyeTo6cHV0TG9uZ0xFKCZidWZbMHgwMF0sIGtTaWduYXR1cmUpOwotICAgIFppcEVudHJ5OjpwdXRTaG9ydExFKCZidWZbMHgwNF0sIG1WZXJzaW9uVG9FeHRyYWN0KTsKLSAgICBaaXBFbnRyeTo6cHV0U2hvcnRMRSgmYnVmWzB4MDZdLCBtR1BCaXRGbGFnKTsKLSAgICBaaXBFbnRyeTo6cHV0U2hvcnRMRSgmYnVmWzB4MDhdLCBtQ29tcHJlc3Npb25NZXRob2QpOwotICAgIFppcEVudHJ5OjpwdXRTaG9ydExFKCZidWZbMHgwYV0sIG1MYXN0TW9kRmlsZVRpbWUpOwotICAgIFppcEVudHJ5OjpwdXRTaG9ydExFKCZidWZbMHgwY10sIG1MYXN0TW9kRmlsZURhdGUpOwotICAgIFppcEVudHJ5OjpwdXRMb25nTEUoJmJ1ZlsweDBlXSwgbUNSQzMyKTsKLSAgICBaaXBFbnRyeTo6cHV0TG9uZ0xFKCZidWZbMHgxMl0sIG1Db21wcmVzc2VkU2l6ZSk7Ci0gICAgWmlwRW50cnk6OnB1dExvbmdMRSgmYnVmWzB4MTZdLCBtVW5jb21wcmVzc2VkU2l6ZSk7Ci0gICAgWmlwRW50cnk6OnB1dFNob3J0TEUoJmJ1ZlsweDFhXSwgbUZpbGVOYW1lTGVuZ3RoKTsKLSAgICBaaXBFbnRyeTo6cHV0U2hvcnRMRSgmYnVmWzB4MWNdLCBtRXh0cmFGaWVsZExlbmd0aCk7Ci0KLSAgICBpZiAoZndyaXRlKGJ1ZiwgMSwga0xGSExlbiwgZnApICE9IGtMRkhMZW4pCi0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotCi0gICAgLyogd3JpdGUgZmlsZW5hbWUgKi8KLSAgICBpZiAobUZpbGVOYW1lTGVuZ3RoICE9IDApIHsKLSAgICAgICAgaWYgKGZ3cml0ZShtRmlsZU5hbWUsIDEsIG1GaWxlTmFtZUxlbmd0aCwgZnApICE9IG1GaWxlTmFtZUxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIH0KLQotICAgIC8qIHdyaXRlICJleHRyYSBmaWVsZCIgKi8KLSAgICBpZiAobUV4dHJhRmllbGRMZW5ndGggIT0gMCkgewotICAgICAgICBpZiAoZndyaXRlKG1FeHRyYUZpZWxkLCAxLCBtRXh0cmFGaWVsZExlbmd0aCwgZnApICE9IG1FeHRyYUZpZWxkTGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotCi0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi0KLS8qCi0gKiBEdW1wIHRoZSBjb250ZW50cyBvZiBhIExvY2FsRmlsZUhlYWRlciBvYmplY3QuCi0gKi8KLXZvaWQgWmlwRW50cnk6OkxvY2FsRmlsZUhlYWRlcjo6ZHVtcCh2b2lkKSBjb25zdAotewotICAgIEFMT0dEKCIgTG9jYWxGaWxlSGVhZGVyIGNvbnRlbnRzOlxuIik7Ci0gICAgQUxPR0QoIiAgdmVyc1RvRXh0PSV1IGdwQml0cz0weCUwNHggY29tcHJlc3Npb249JXVcbiIsCi0gICAgICAgIG1WZXJzaW9uVG9FeHRyYWN0LCBtR1BCaXRGbGFnLCBtQ29tcHJlc3Npb25NZXRob2QpOwotICAgIEFMT0dEKCIgIG1vZFRpbWU9MHglMDR4IG1vZERhdGU9MHglMDR4IGNyYzMyPTB4JTA4bHhcbiIsCi0gICAgICAgIG1MYXN0TW9kRmlsZVRpbWUsIG1MYXN0TW9kRmlsZURhdGUsIG1DUkMzMik7Ci0gICAgQUxPR0QoIiAgY29tcHJlc3NlZFNpemU9JWx1IHVuY29tcHJlc3NlZFNpemU9JWx1XG4iLAotICAgICAgICBtQ29tcHJlc3NlZFNpemUsIG1VbmNvbXByZXNzZWRTaXplKTsKLSAgICBBTE9HRCgiICBmaWxlbmFtZUxlbj0ldSBleHRyYUxlbj0ldVxuIiwKLSAgICAgICAgbUZpbGVOYW1lTGVuZ3RoLCBtRXh0cmFGaWVsZExlbmd0aCk7Ci0gICAgaWYgKG1GaWxlTmFtZSAhPSBOVUxMKQotICAgICAgICBBTE9HRCgiICBmaWxlbmFtZTogJyVzJ1xuIiwgbUZpbGVOYW1lKTsKLX0KLQotCi0vKgotICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiAgICAgIFppcEVudHJ5OjpDZW50cmFsRGlyRW50cnkKLSAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICovCi0KLS8qCi0gKiBSZWFkIHRoZSBjZW50cmFsIGRpciBlbnRyeSB0aGF0IGFwcGVhcnMgbmV4dCBpbiB0aGUgZmlsZS4KLSAqCi0gKiBPbiBlbnRyeSwgImZwIiBzaG91bGQgYmUgcG9zaXRpb25lZCBvbiB0aGUgc2lnbmF0dXJlIGJ5dGVzIGZvciB0aGUKLSAqIGVudHJ5LiAgT24gZXhpdCwgImZwIiB3aWxsIHBvaW50IGF0IHRoZSBzaWduYXR1cmUgd29yZCBmb3IgdGhlIG5leHQKLSAqIGVudHJ5IG9yIGZvciB0aGUgRU9DRC4KLSAqLwotc3RhdHVzX3QgWmlwRW50cnk6OkNlbnRyYWxEaXJFbnRyeTo6cmVhZChGSUxFKiBmcCkKLXsKLSAgICBzdGF0dXNfdCByZXN1bHQgPSBOT19FUlJPUjsKLSAgICB1bnNpZ25lZCBjaGFyIGJ1ZltrQ0RFTGVuXTsKLQotICAgIC8qIG5vIHJlLXVzZSAqLwotICAgIGFzc2VydChtRmlsZU5hbWUgPT0gTlVMTCk7Ci0gICAgYXNzZXJ0KG1FeHRyYUZpZWxkID09IE5VTEwpOwotICAgIGFzc2VydChtRmlsZUNvbW1lbnQgPT0gTlVMTCk7Ci0KLSAgICBpZiAoZnJlYWQoYnVmLCAxLCBrQ0RFTGVuLCBmcCkgIT0ga0NERUxlbikgewotICAgICAgICByZXN1bHQgPSBVTktOT1dOX0VSUk9SOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgaWYgKFppcEVudHJ5OjpnZXRMb25nTEUoJmJ1ZlsweDAwXSkgIT0ga1NpZ25hdHVyZSkgewotICAgICAgICBBTE9HRCgiV2hvb3BzOiBkaWRuJ3QgZmluZCBleHBlY3RlZCBzaWduYXR1cmVcbiIpOwotICAgICAgICByZXN1bHQgPSBVTktOT1dOX0VSUk9SOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgbVZlcnNpb25NYWRlQnkgPSBaaXBFbnRyeTo6Z2V0U2hvcnRMRSgmYnVmWzB4MDRdKTsKLSAgICBtVmVyc2lvblRvRXh0cmFjdCA9IFppcEVudHJ5OjpnZXRTaG9ydExFKCZidWZbMHgwNl0pOwotICAgIG1HUEJpdEZsYWcgPSBaaXBFbnRyeTo6Z2V0U2hvcnRMRSgmYnVmWzB4MDhdKTsKLSAgICBtQ29tcHJlc3Npb25NZXRob2QgPSBaaXBFbnRyeTo6Z2V0U2hvcnRMRSgmYnVmWzB4MGFdKTsKLSAgICBtTGFzdE1vZEZpbGVUaW1lID0gWmlwRW50cnk6OmdldFNob3J0TEUoJmJ1ZlsweDBjXSk7Ci0gICAgbUxhc3RNb2RGaWxlRGF0ZSA9IFppcEVudHJ5OjpnZXRTaG9ydExFKCZidWZbMHgwZV0pOwotICAgIG1DUkMzMiA9IFppcEVudHJ5OjpnZXRMb25nTEUoJmJ1ZlsweDEwXSk7Ci0gICAgbUNvbXByZXNzZWRTaXplID0gWmlwRW50cnk6OmdldExvbmdMRSgmYnVmWzB4MTRdKTsKLSAgICBtVW5jb21wcmVzc2VkU2l6ZSA9IFppcEVudHJ5OjpnZXRMb25nTEUoJmJ1ZlsweDE4XSk7Ci0gICAgbUZpbGVOYW1lTGVuZ3RoID0gWmlwRW50cnk6OmdldFNob3J0TEUoJmJ1ZlsweDFjXSk7Ci0gICAgbUV4dHJhRmllbGRMZW5ndGggPSBaaXBFbnRyeTo6Z2V0U2hvcnRMRSgmYnVmWzB4MWVdKTsKLSAgICBtRmlsZUNvbW1lbnRMZW5ndGggPSBaaXBFbnRyeTo6Z2V0U2hvcnRMRSgmYnVmWzB4MjBdKTsKLSAgICBtRGlza051bWJlclN0YXJ0ID0gWmlwRW50cnk6OmdldFNob3J0TEUoJmJ1ZlsweDIyXSk7Ci0gICAgbUludGVybmFsQXR0cnMgPSBaaXBFbnRyeTo6Z2V0U2hvcnRMRSgmYnVmWzB4MjRdKTsKLSAgICBtRXh0ZXJuYWxBdHRycyA9IFppcEVudHJ5OjpnZXRMb25nTEUoJmJ1ZlsweDI2XSk7Ci0gICAgbUxvY2FsSGVhZGVyUmVsT2Zmc2V0ID0gWmlwRW50cnk6OmdldExvbmdMRSgmYnVmWzB4MmFdKTsKLQotICAgIC8vIFRPRE86IHZhbGlkYXRlIHNpemVzIGFuZCBvZmZzZXRzCi0KLSAgICAvKiBncmFiIGZpbGVuYW1lICovCi0gICAgaWYgKG1GaWxlTmFtZUxlbmd0aCAhPSAwKSB7Ci0gICAgICAgIG1GaWxlTmFtZSA9IG5ldyB1bnNpZ25lZCBjaGFyW21GaWxlTmFtZUxlbmd0aCsxXTsKLSAgICAgICAgaWYgKG1GaWxlTmFtZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICByZXN1bHQgPSBOT19NRU1PUlk7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGZyZWFkKG1GaWxlTmFtZSwgMSwgbUZpbGVOYW1lTGVuZ3RoLCBmcCkgIT0gbUZpbGVOYW1lTGVuZ3RoKSB7Ci0gICAgICAgICAgICByZXN1bHQgPSBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICB9Ci0gICAgICAgIG1GaWxlTmFtZVttRmlsZU5hbWVMZW5ndGhdID0gJ1wwJzsKLSAgICB9Ci0KLSAgICAvKiByZWFkICJleHRyYSBmaWVsZCIgKi8KLSAgICBpZiAobUV4dHJhRmllbGRMZW5ndGggIT0gMCkgewotICAgICAgICBtRXh0cmFGaWVsZCA9IG5ldyB1bnNpZ25lZCBjaGFyW21FeHRyYUZpZWxkTGVuZ3RoKzFdOwotICAgICAgICBpZiAobUV4dHJhRmllbGQgPT0gTlVMTCkgewotICAgICAgICAgICAgcmVzdWx0ID0gTk9fTUVNT1JZOwotICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICB9Ci0gICAgICAgIGlmIChmcmVhZChtRXh0cmFGaWVsZCwgMSwgbUV4dHJhRmllbGRMZW5ndGgsIGZwKSAhPSBtRXh0cmFGaWVsZExlbmd0aCkgewotICAgICAgICAgICAgcmVzdWx0ID0gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotICAgICAgICBtRXh0cmFGaWVsZFttRXh0cmFGaWVsZExlbmd0aF0gPSAnXDAnOwotICAgIH0KLQotCi0gICAgLyogZ3JhYiBjb21tZW50LCBpZiBhbnkgKi8KLSAgICBpZiAobUZpbGVDb21tZW50TGVuZ3RoICE9IDApIHsKLSAgICAgICAgbUZpbGVDb21tZW50ID0gbmV3IHVuc2lnbmVkIGNoYXJbbUZpbGVDb21tZW50TGVuZ3RoKzFdOwotICAgICAgICBpZiAobUZpbGVDb21tZW50ID09IE5VTEwpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IE5PX01FTU9SWTsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotICAgICAgICBpZiAoZnJlYWQobUZpbGVDb21tZW50LCAxLCBtRmlsZUNvbW1lbnRMZW5ndGgsIGZwKSAhPSBtRmlsZUNvbW1lbnRMZW5ndGgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLSAgICAgICAgbUZpbGVDb21tZW50W21GaWxlQ29tbWVudExlbmd0aF0gPSAnXDAnOwotICAgIH0KLQotYmFpbDoKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0vKgotICogV3JpdGUgYSBjZW50cmFsIGRpciBlbnRyeS4KLSAqLwotc3RhdHVzX3QgWmlwRW50cnk6OkNlbnRyYWxEaXJFbnRyeTo6d3JpdGUoRklMRSogZnApCi17Ci0gICAgdW5zaWduZWQgY2hhciBidWZba0NERUxlbl07Ci0KLSAgICBaaXBFbnRyeTo6cHV0TG9uZ0xFKCZidWZbMHgwMF0sIGtTaWduYXR1cmUpOwotICAgIFppcEVudHJ5OjpwdXRTaG9ydExFKCZidWZbMHgwNF0sIG1WZXJzaW9uTWFkZUJ5KTsKLSAgICBaaXBFbnRyeTo6cHV0U2hvcnRMRSgmYnVmWzB4MDZdLCBtVmVyc2lvblRvRXh0cmFjdCk7Ci0gICAgWmlwRW50cnk6OnB1dFNob3J0TEUoJmJ1ZlsweDA4XSwgbUdQQml0RmxhZyk7Ci0gICAgWmlwRW50cnk6OnB1dFNob3J0TEUoJmJ1ZlsweDBhXSwgbUNvbXByZXNzaW9uTWV0aG9kKTsKLSAgICBaaXBFbnRyeTo6cHV0U2hvcnRMRSgmYnVmWzB4MGNdLCBtTGFzdE1vZEZpbGVUaW1lKTsKLSAgICBaaXBFbnRyeTo6cHV0U2hvcnRMRSgmYnVmWzB4MGVdLCBtTGFzdE1vZEZpbGVEYXRlKTsKLSAgICBaaXBFbnRyeTo6cHV0TG9uZ0xFKCZidWZbMHgxMF0sIG1DUkMzMik7Ci0gICAgWmlwRW50cnk6OnB1dExvbmdMRSgmYnVmWzB4MTRdLCBtQ29tcHJlc3NlZFNpemUpOwotICAgIFppcEVudHJ5OjpwdXRMb25nTEUoJmJ1ZlsweDE4XSwgbVVuY29tcHJlc3NlZFNpemUpOwotICAgIFppcEVudHJ5OjpwdXRTaG9ydExFKCZidWZbMHgxY10sIG1GaWxlTmFtZUxlbmd0aCk7Ci0gICAgWmlwRW50cnk6OnB1dFNob3J0TEUoJmJ1ZlsweDFlXSwgbUV4dHJhRmllbGRMZW5ndGgpOwotICAgIFppcEVudHJ5OjpwdXRTaG9ydExFKCZidWZbMHgyMF0sIG1GaWxlQ29tbWVudExlbmd0aCk7Ci0gICAgWmlwRW50cnk6OnB1dFNob3J0TEUoJmJ1ZlsweDIyXSwgbURpc2tOdW1iZXJTdGFydCk7Ci0gICAgWmlwRW50cnk6OnB1dFNob3J0TEUoJmJ1ZlsweDI0XSwgbUludGVybmFsQXR0cnMpOwotICAgIFppcEVudHJ5OjpwdXRMb25nTEUoJmJ1ZlsweDI2XSwgbUV4dGVybmFsQXR0cnMpOwotICAgIFppcEVudHJ5OjpwdXRMb25nTEUoJmJ1ZlsweDJhXSwgbUxvY2FsSGVhZGVyUmVsT2Zmc2V0KTsKLQotICAgIGlmIChmd3JpdGUoYnVmLCAxLCBrQ0RFTGVuLCBmcCkgIT0ga0NERUxlbikKLSAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0KLSAgICAvKiB3cml0ZSBmaWxlbmFtZSAqLwotICAgIGlmIChtRmlsZU5hbWVMZW5ndGggIT0gMCkgewotICAgICAgICBpZiAoZndyaXRlKG1GaWxlTmFtZSwgMSwgbUZpbGVOYW1lTGVuZ3RoLCBmcCkgIT0gbUZpbGVOYW1lTGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotCi0gICAgLyogd3JpdGUgImV4dHJhIGZpZWxkIiAqLwotICAgIGlmIChtRXh0cmFGaWVsZExlbmd0aCAhPSAwKSB7Ci0gICAgICAgIGlmIChmd3JpdGUobUV4dHJhRmllbGQsIDEsIG1FeHRyYUZpZWxkTGVuZ3RoLCBmcCkgIT0gbUV4dHJhRmllbGRMZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0KLSAgICAvKiB3cml0ZSBjb21tZW50ICovCi0gICAgaWYgKG1GaWxlQ29tbWVudExlbmd0aCAhPSAwKSB7Ci0gICAgICAgIGlmIChmd3JpdGUobUZpbGVDb21tZW50LCAxLCBtRmlsZUNvbW1lbnRMZW5ndGgsIGZwKSAhPSBtRmlsZUNvbW1lbnRMZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLS8qCi0gKiBEdW1wIHRoZSBjb250ZW50cyBvZiBhIENlbnRyYWxEaXJFbnRyeSBvYmplY3QuCi0gKi8KLXZvaWQgWmlwRW50cnk6OkNlbnRyYWxEaXJFbnRyeTo6ZHVtcCh2b2lkKSBjb25zdAotewotICAgIEFMT0dEKCIgQ2VudHJhbERpckVudHJ5IGNvbnRlbnRzOlxuIik7Ci0gICAgQUxPR0QoIiAgdmVyc01hZGVCeT0ldSB2ZXJzVG9FeHQ9JXUgZ3BCaXRzPTB4JTA0eCBjb21wcmVzc2lvbj0ldVxuIiwKLSAgICAgICAgbVZlcnNpb25NYWRlQnksIG1WZXJzaW9uVG9FeHRyYWN0LCBtR1BCaXRGbGFnLCBtQ29tcHJlc3Npb25NZXRob2QpOwotICAgIEFMT0dEKCIgIG1vZFRpbWU9MHglMDR4IG1vZERhdGU9MHglMDR4IGNyYzMyPTB4JTA4bHhcbiIsCi0gICAgICAgIG1MYXN0TW9kRmlsZVRpbWUsIG1MYXN0TW9kRmlsZURhdGUsIG1DUkMzMik7Ci0gICAgQUxPR0QoIiAgY29tcHJlc3NlZFNpemU9JWx1IHVuY29tcHJlc3NlZFNpemU9JWx1XG4iLAotICAgICAgICBtQ29tcHJlc3NlZFNpemUsIG1VbmNvbXByZXNzZWRTaXplKTsKLSAgICBBTE9HRCgiICBmaWxlbmFtZUxlbj0ldSBleHRyYUxlbj0ldSBjb21tZW50TGVuPSV1XG4iLAotICAgICAgICBtRmlsZU5hbWVMZW5ndGgsIG1FeHRyYUZpZWxkTGVuZ3RoLCBtRmlsZUNvbW1lbnRMZW5ndGgpOwotICAgIEFMT0dEKCIgIGRpc2tOdW1TdGFydD0ldSBpbnRBdHRyPTB4JTA0eCBleHRBdHRyPTB4JTA4bHggcmVsT2Zmc2V0PSVsdVxuIiwKLSAgICAgICAgbURpc2tOdW1iZXJTdGFydCwgbUludGVybmFsQXR0cnMsIG1FeHRlcm5hbEF0dHJzLAotICAgICAgICBtTG9jYWxIZWFkZXJSZWxPZmZzZXQpOwotCi0gICAgaWYgKG1GaWxlTmFtZSAhPSBOVUxMKQotICAgICAgICBBTE9HRCgiICBmaWxlbmFtZTogJyVzJ1xuIiwgbUZpbGVOYW1lKTsKLSAgICBpZiAobUZpbGVDb21tZW50ICE9IE5VTEwpCi0gICAgICAgIEFMT0dEKCIgIGNvbW1lbnQ6ICclcydcbiIsIG1GaWxlQ29tbWVudCk7Ci19Ci0KZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvWmlwRW50cnkuaCBiL3Rvb2xzL2FhcHQvWmlwRW50cnkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzJmMzIyNy4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L1ppcEVudHJ5LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLS8vCi0vLyBaaXAgYXJjaGl2ZSBlbnRyaWVzLgotLy8KLS8vIFRoZSBaaXBFbnRyeSBjbGFzcyBpcyB0aWdodGx5IG1lc2hlZCB3aXRoIHRoZSBaaXBGaWxlIGNsYXNzLgotLy8KLSNpZm5kZWYgX19MSUJTX1pJUEVOVFJZX0gKLSNkZWZpbmUgX19MSUJTX1pJUEVOVFJZX0gKLQotI2luY2x1ZGUgPHV0aWxzL0Vycm9ycy5oPgotCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLQotbmFtZXNwYWNlIGFuZHJvaWQgewotCi1jbGFzcyBaaXBGaWxlOwotCi0vKgotICogWmlwRW50cnkgb2JqZWN0cyByZXByZXNlbnQgYSBzaW5nbGUgZW50cnkgaW4gYSBaaXAgYXJjaGl2ZS4KLSAqCi0gKiBZb3UgY2FuIHVzZSBvbmUgb2YgdGhlc2UgdG8gZ2V0IG9yIHNldCBpbmZvcm1hdGlvbiBhYm91dCBhbiBlbnRyeSwgYnV0Ci0gKiB0aGVyZSBhcmUgbm8gZnVuY3Rpb25zIGhlcmUgZm9yIGFjY2Vzc2luZyB0aGUgZGF0YSBpdHNlbGYuICAoV2UgY291bGQKLSAqIHR1Y2sgYSBwb2ludGVyIHRvIHRoZSBaaXBGaWxlIGluIGhlcmUgZm9yIGNvbnZlbmllbmNlLCBidXQgdGhhdCByYWlzZXMKLSAqIHRoZSBsaWtlbGlob29kIG9mIHVzaW5nIFppcEVudHJ5IG9iamVjdHMgYWZ0ZXIgZGlzY2FyZGluZyB0aGUgWmlwRmlsZS4pCi0gKgotICogRmlsZSBpbmZvcm1hdGlvbiBpcyBzdG9yZWQgaW4gdHdvIHBsYWNlczogbmV4dCB0byB0aGUgZmlsZSBkYXRhICh0aGUgTG9jYWwKLSAqIEZpbGUgSGVhZGVyLCBhbmQgcG9zc2libHkgYSBEYXRhIERlc2NyaXB0b3IpLCBhbmQgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZQotICogKHRoZSBDZW50cmFsIERpcmVjdG9yeSBFbnRyeSkuICBUaGUgdHdvIG11c3QgYmUga2VwdCBpbiBzeW5jLgotICovCi1jbGFzcyBaaXBFbnRyeSB7Ci1wdWJsaWM6Ci0gICAgZnJpZW5kIGNsYXNzIFppcEZpbGU7Ci0KLSAgICBaaXBFbnRyeSh2b2lkKQotICAgICAgICA6IG1EZWxldGVkKGZhbHNlKSwgbU1hcmtlZChmYWxzZSkKLSAgICAgICAge30KLSAgICB+WmlwRW50cnkodm9pZCkge30KLQotICAgIC8qCi0gICAgICogUmV0dXJucyAidHJ1ZSIgaWYgdGhlIGRhdGEgaXMgY29tcHJlc3NlZC4KLSAgICAgKi8KLSAgICBib29sIGlzQ29tcHJlc3NlZCh2b2lkKSBjb25zdCB7Ci0gICAgICAgIHJldHVybiBtQ0RFLm1Db21wcmVzc2lvbk1ldGhvZCAhPSBrQ29tcHJlc3NTdG9yZWQ7Ci0gICAgfQotICAgIGludCBnZXRDb21wcmVzc2lvbk1ldGhvZCh2b2lkKSBjb25zdCB7IHJldHVybiBtQ0RFLm1Db21wcmVzc2lvbk1ldGhvZDsgfQotCi0gICAgLyoKLSAgICAgKiBSZXR1cm4gdGhlIHVuY29tcHJlc3NlZCBsZW5ndGguCi0gICAgICovCi0gICAgb2ZmX3QgZ2V0VW5jb21wcmVzc2VkTGVuKHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1DREUubVVuY29tcHJlc3NlZFNpemU7IH0KLQotICAgIC8qCi0gICAgICogUmV0dXJuIHRoZSBjb21wcmVzc2VkIGxlbmd0aC4gIEZvciB1bmNvbXByZXNzZWQgZGF0YSwgdGhpcyByZXR1cm5zCi0gICAgICogdGhlIHNhbWUgdGhpbmcgYXMgZ2V0VW5jb21wcmVzZXNkTGVuKCkuCi0gICAgICovCi0gICAgb2ZmX3QgZ2V0Q29tcHJlc3NlZExlbih2b2lkKSBjb25zdCB7IHJldHVybiBtQ0RFLm1Db21wcmVzc2VkU2l6ZTsgfQotCi0gICAgLyoKLSAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgbG9jYWwgZmlsZSBoZWFkZXIuCi0gICAgICovCi0gICAgb2ZmX3QgZ2V0TEZIT2Zmc2V0KHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1DREUubUxvY2FsSGVhZGVyUmVsT2Zmc2V0OyB9Ci0KLSAgICAvKgotICAgICAqIFJldHVybiB0aGUgYWJzb2x1dGUgZmlsZSBvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBjb21wcmVzc2VkIG9yCi0gICAgICogdW5jb21wcmVzc2VkIGRhdGEuCi0gICAgICovCi0gICAgb2ZmX3QgZ2V0RmlsZU9mZnNldCh2b2lkKSBjb25zdCB7Ci0gICAgICAgIHJldHVybiBtQ0RFLm1Mb2NhbEhlYWRlclJlbE9mZnNldCArCi0gICAgICAgICAgICAgICAgTG9jYWxGaWxlSGVhZGVyOjprTEZITGVuICsKLSAgICAgICAgICAgICAgICBtTEZILm1GaWxlTmFtZUxlbmd0aCArCi0gICAgICAgICAgICAgICAgbUxGSC5tRXh0cmFGaWVsZExlbmd0aDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIFJldHVybiB0aGUgZGF0YSBDUkMuCi0gICAgICovCi0gICAgdW5zaWduZWQgbG9uZyBnZXRDUkMzMih2b2lkKSBjb25zdCB7IHJldHVybiBtQ0RFLm1DUkMzMjsgfQotCi0gICAgLyoKLSAgICAgKiBSZXR1cm4gZmlsZSBtb2RpZmljYXRpb24gdGltZSBpbiBVTklYIHNlY29uZHMtc2luY2UtZXBvY2guCi0gICAgICovCi0gICAgdGltZV90IGdldE1vZFdoZW4odm9pZCkgY29uc3Q7Ci0KLSAgICAvKgotICAgICAqIFJldHVybiB0aGUgYXJjaGl2ZWQgZmlsZSBuYW1lLgotICAgICAqLwotICAgIGNvbnN0IGNoYXIqIGdldEZpbGVOYW1lKHZvaWQpIGNvbnN0IHsgcmV0dXJuIChjb25zdCBjaGFyKikgbUNERS5tRmlsZU5hbWU7IH0KLQotICAgIC8qCi0gICAgICogQXBwbGljYXRpb24tZGVmaW5lZCAibWFyayIuICBDYW4gYmUgdXNlZnVsIHdoZW4gc3luY2hyb25pemluZyB0aGUKLSAgICAgKiBjb250ZW50cyBvZiBhbiBhcmNoaXZlIHdpdGggY29udGVudHMgb24gZGlzay4KLSAgICAgKi8KLSAgICBib29sIGdldE1hcmtlZCh2b2lkKSBjb25zdCB7IHJldHVybiBtTWFya2VkOyB9Ci0gICAgdm9pZCBzZXRNYXJrZWQoYm9vbCB2YWwpIHsgbU1hcmtlZCA9IHZhbDsgfQotCi0gICAgLyoKLSAgICAgKiBTb21lIGJhc2ljIGZ1bmN0aW9ucyBmb3IgcmF3IGRhdGEgbWFuaXB1bGF0aW9uLiAgIkxFIiBtZWFucwotICAgICAqIExpdHRsZSBFbmRpYW4uCi0gICAgICovCi0gICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBzaG9ydCBnZXRTaG9ydExFKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ1ZikgewotICAgICAgICByZXR1cm4gYnVmWzBdIHwgKGJ1ZlsxXSA8PCA4KTsKLSAgICB9Ci0gICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGdldExvbmdMRShjb25zdCB1bnNpZ25lZCBjaGFyKiBidWYpIHsKLSAgICAgICAgcmV0dXJuIGJ1ZlswXSB8IChidWZbMV0gPDwgOCkgfCAoYnVmWzJdIDw8IDE2KSB8IChidWZbM10gPDwgMjQpOwotICAgIH0KLSAgICBzdGF0aWMgaW5saW5lIHZvaWQgcHV0U2hvcnRMRSh1bnNpZ25lZCBjaGFyKiBidWYsIHNob3J0IHZhbCkgewotICAgICAgICBidWZbMF0gPSAodW5zaWduZWQgY2hhcikgdmFsOwotICAgICAgICBidWZbMV0gPSAodW5zaWduZWQgY2hhcikgKHZhbCA+PiA4KTsKLSAgICB9Ci0gICAgc3RhdGljIGlubGluZSB2b2lkIHB1dExvbmdMRSh1bnNpZ25lZCBjaGFyKiBidWYsIGxvbmcgdmFsKSB7Ci0gICAgICAgIGJ1ZlswXSA9ICh1bnNpZ25lZCBjaGFyKSB2YWw7Ci0gICAgICAgIGJ1ZlsxXSA9ICh1bnNpZ25lZCBjaGFyKSAodmFsID4+IDgpOwotICAgICAgICBidWZbMl0gPSAodW5zaWduZWQgY2hhcikgKHZhbCA+PiAxNik7Ci0gICAgICAgIGJ1ZlszXSA9ICh1bnNpZ25lZCBjaGFyKSAodmFsID4+IDI0KTsKLSAgICB9Ci0KLSAgICAvKiBkZWZpbmVkIGZvciBaaXAgYXJjaGl2ZXMgKi8KLSAgICBlbnVtIHsKLSAgICAgICAga0NvbXByZXNzU3RvcmVkICAgICA9IDAsICAgICAgICAvLyBubyBjb21wcmVzc2lvbgotICAgICAgICAvLyBzaHJ1bmsgICAgICAgICAgID0gMSwKLSAgICAgICAgLy8gcmVkdWNlZCAxICAgICAgICA9IDIsCi0gICAgICAgIC8vIHJlZHVjZWQgMiAgICAgICAgPSAzLAotICAgICAgICAvLyByZWR1Y2VkIDMgICAgICAgID0gNCwKLSAgICAgICAgLy8gcmVkdWNlZCA0ICAgICAgICA9IDUsCi0gICAgICAgIC8vIGltcGxvZGVkICAgICAgICAgPSA2LAotICAgICAgICAvLyB0b2tlbml6ZWQgICAgICAgID0gNywKLSAgICAgICAga0NvbXByZXNzRGVmbGF0ZWQgICA9IDgsICAgICAgICAvLyBzdGFuZGFyZCBkZWZsYXRlCi0gICAgICAgIC8vIERlZmxhdGU2NCAgICAgICAgPSA5LAotICAgICAgICAvLyBsaWIgaW1wbG9kZWQgICAgID0gMTAsCi0gICAgICAgIC8vIHJlc2VydmVkICAgICAgICAgPSAxMSwKLSAgICAgICAgLy8gYnppcDIgICAgICAgICAgICA9IDEyLAotICAgIH07Ci0KLSAgICAvKgotICAgICAqIERlbGV0aW9uIGZsYWcuICBJZiBzZXQsIHRoZSBlbnRyeSB3aWxsIGJlIHJlbW92ZWQgb24gdGhlIG5leHQKLSAgICAgKiBjYWxsIHRvICJmbHVzaCIuCi0gICAgICovCi0gICAgYm9vbCBnZXREZWxldGVkKHZvaWQpIGNvbnN0IHsgcmV0dXJuIG1EZWxldGVkOyB9Ci0KLXByb3RlY3RlZDoKLSAgICAvKgotICAgICAqIEluaXRpYWxpemUgdGhlIHN0cnVjdHVyZSBmcm9tIHRoZSBmaWxlLCB3aGljaCBpcyBwb2ludGluZyBhdAotICAgICAqIG91ciBDZW50cmFsIERpcmVjdG9yeSBlbnRyeS4KLSAgICAgKi8KLSAgICBzdGF0dXNfdCBpbml0RnJvbUNERShGSUxFKiBmcCk7Ci0KLSAgICAvKgotICAgICAqIEluaXRpYWxpemUgdGhlIHN0cnVjdHVyZSBmb3IgYSBuZXcgZmlsZS4gIFdlIG5lZWQgdGhlIGZpbGVuYW1lCi0gICAgICogYW5kIGNvbW1lbnQgc28gdGhhdCB3ZSBjYW4gcHJvcGVybHkgc2l6ZSB0aGUgTEZIIGFyZWEuICBUaGUKLSAgICAgKiBmaWxlbmFtZSBpcyBtYW5kYXRvcnksIHRoZSBjb21tZW50IGlzIG9wdGlvbmFsLgotICAgICAqLwotICAgIHZvaWQgaW5pdE5ldyhjb25zdCBjaGFyKiBmaWxlTmFtZSwgY29uc3QgY2hhciogY29tbWVudCk7Ci0KLSAgICAvKgotICAgICAqIEluaXRpYWxpemUgdGhlIHN0cnVjdHVyZSB3aXRoIHRoZSBjb250ZW50cyBvZiBhIFppcEVudHJ5IGZyb20KLSAgICAgKiBhbm90aGVyIGZpbGUuCi0gICAgICovCi0gICAgc3RhdHVzX3QgaW5pdEZyb21FeHRlcm5hbChjb25zdCBaaXBGaWxlKiBwWmlwRmlsZSwgY29uc3QgWmlwRW50cnkqIHBFbnRyeSk7Ci0KLSAgICAvKgotICAgICAqIEFkZCBzb21lIHBhZCBieXRlcyB0byB0aGUgTEZILiAgV2UgZG8gdGhpcyBieSBhZGRpbmcgb3IgcmVzaXppbmcKLSAgICAgKiB0aGUgImV4dHJhIiBmaWVsZC4KLSAgICAgKi8KLSAgICBzdGF0dXNfdCBhZGRQYWRkaW5nKGludCBwYWRkaW5nKTsKLQotICAgIC8qCi0gICAgICogU2V0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBkYXRhIGZvciB0aGlzIGVudHJ5LgotICAgICAqLwotICAgIHZvaWQgc2V0RGF0YUluZm8obG9uZyB1bmNvbXBMZW4sIGxvbmcgY29tcExlbiwgdW5zaWduZWQgbG9uZyBjcmMzMiwKLSAgICAgICAgaW50IGNvbXByZXNzaW9uTWV0aG9kKTsKLQotICAgIC8qCi0gICAgICogU2V0IHRoZSBtb2RpZmljYXRpb24gZGF0ZS4KLSAgICAgKi8KLSAgICB2b2lkIHNldE1vZFdoZW4odGltZV90IHdoZW4pOwotCi0gICAgLyoKLSAgICAgKiBTZXQgdGhlIG9mZnNldCBvZiB0aGUgbG9jYWwgZmlsZSBoZWFkZXIsIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZgotICAgICAqIHRoZSBjdXJyZW50IGZpbGUuCi0gICAgICovCi0gICAgdm9pZCBzZXRMRkhPZmZzZXQob2ZmX3Qgb2Zmc2V0KSB7Ci0gICAgICAgIG1DREUubUxvY2FsSGVhZGVyUmVsT2Zmc2V0ID0gKGxvbmcpIG9mZnNldDsKLSAgICB9Ci0KLSAgICAvKiBtYXJrIGZvciBkZWxldGlvbjsgdXNlZCBieSBaaXBGaWxlOjpyZW1vdmUoKSAqLwotICAgIHZvaWQgc2V0RGVsZXRlZCh2b2lkKSB7IG1EZWxldGVkID0gdHJ1ZTsgfQotCi1wcml2YXRlOgotICAgIC8qIHRoZXNlIGFyZSBwcml2YXRlIGFuZCBub3QgZGVmaW5lZCAqLwotICAgIFppcEVudHJ5KGNvbnN0IFppcEVudHJ5JiBzcmMpOwotICAgIFppcEVudHJ5JiBvcGVyYXRvcj0oY29uc3QgWmlwRW50cnkmIHNyYyk7Ci0KLSAgICAvKiByZXR1cm5zICJ0cnVlIiBpZiB0aGUgQ0RFIGFuZCB0aGUgTEZIIGFncmVlICovCi0gICAgYm9vbCBjb21wYXJlSGVhZGVycyh2b2lkKSBjb25zdDsKLSAgICB2b2lkIGNvcHlDREV0b0xGSCh2b2lkKTsKLQotICAgIGJvb2wgICAgICAgIG1EZWxldGVkOyAgICAgICAvLyBzZXQgaWYgZW50cnkgaXMgcGVuZGluZyBkZWxldGlvbgotICAgIGJvb2wgICAgICAgIG1NYXJrZWQ7ICAgICAgICAvLyBhcHAtZGVmaW5lZCBtYXJrZXIKLQotICAgIC8qCi0gICAgICogRXZlcnkgZW50cnkgaW4gdGhlIFppcCBhcmNoaXZlIHN0YXJ0cyBvZmYgd2l0aCBvbmUgb2YgdGhlc2UuCi0gICAgICovCi0gICAgY2xhc3MgTG9jYWxGaWxlSGVhZGVyIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIExvY2FsRmlsZUhlYWRlcih2b2lkKSA6Ci0gICAgICAgICAgICBtVmVyc2lvblRvRXh0cmFjdCgwKSwKLSAgICAgICAgICAgIG1HUEJpdEZsYWcoMCksCi0gICAgICAgICAgICBtQ29tcHJlc3Npb25NZXRob2QoMCksCi0gICAgICAgICAgICBtTGFzdE1vZEZpbGVUaW1lKDApLAotICAgICAgICAgICAgbUxhc3RNb2RGaWxlRGF0ZSgwKSwKLSAgICAgICAgICAgIG1DUkMzMigwKSwKLSAgICAgICAgICAgIG1Db21wcmVzc2VkU2l6ZSgwKSwKLSAgICAgICAgICAgIG1VbmNvbXByZXNzZWRTaXplKDApLAotICAgICAgICAgICAgbUZpbGVOYW1lTGVuZ3RoKDApLAotICAgICAgICAgICAgbUV4dHJhRmllbGRMZW5ndGgoMCksCi0gICAgICAgICAgICBtRmlsZU5hbWUoTlVMTCksCi0gICAgICAgICAgICBtRXh0cmFGaWVsZChOVUxMKQotICAgICAgICB7fQotICAgICAgICB2aXJ0dWFsIH5Mb2NhbEZpbGVIZWFkZXIodm9pZCkgewotICAgICAgICAgICAgZGVsZXRlW10gbUZpbGVOYW1lOwotICAgICAgICAgICAgZGVsZXRlW10gbUV4dHJhRmllbGQ7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0dXNfdCByZWFkKEZJTEUqIGZwKTsKLSAgICAgICAgc3RhdHVzX3Qgd3JpdGUoRklMRSogZnApOwotCi0gICAgICAgIC8vIHVuc2lnbmVkIGxvbmcgbVNpZ25hdHVyZTsKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgIG1WZXJzaW9uVG9FeHRyYWN0OwotICAgICAgICB1bnNpZ25lZCBzaG9ydCAgbUdQQml0RmxhZzsKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgIG1Db21wcmVzc2lvbk1ldGhvZDsKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgIG1MYXN0TW9kRmlsZVRpbWU7Ci0gICAgICAgIHVuc2lnbmVkIHNob3J0ICBtTGFzdE1vZEZpbGVEYXRlOwotICAgICAgICB1bnNpZ25lZCBsb25nICAgbUNSQzMyOwotICAgICAgICB1bnNpZ25lZCBsb25nICAgbUNvbXByZXNzZWRTaXplOwotICAgICAgICB1bnNpZ25lZCBsb25nICAgbVVuY29tcHJlc3NlZFNpemU7Ci0gICAgICAgIHVuc2lnbmVkIHNob3J0ICBtRmlsZU5hbWVMZW5ndGg7Ci0gICAgICAgIHVuc2lnbmVkIHNob3J0ICBtRXh0cmFGaWVsZExlbmd0aDsKLSAgICAgICAgdW5zaWduZWQgY2hhciogIG1GaWxlTmFtZTsKLSAgICAgICAgdW5zaWduZWQgY2hhciogIG1FeHRyYUZpZWxkOwotCi0gICAgICAgIGVudW0gewotICAgICAgICAgICAga1NpZ25hdHVyZSAgICAgID0gMHgwNDAzNGI1MCwKLSAgICAgICAgICAgIGtMRkhMZW4gICAgICAgICA9IDMwLCAgICAgICAvLyBMb2NhbEZpbGVIZHIgbGVuLCBleGNsLiB2YXIgZmllbGRzCi0gICAgICAgIH07Ci0KLSAgICAgICAgdm9pZCBkdW1wKHZvaWQpIGNvbnN0OwotICAgIH07Ci0KLSAgICAvKgotICAgICAqIEV2ZXJ5IGVudHJ5IGluIHRoZSBaaXAgYXJjaGl2ZSBoYXMgb25lIG9mIHRoZXNlIGluIHRoZSAiY2VudHJhbAotICAgICAqIGRpcmVjdG9yeSIgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS4KLSAgICAgKi8KLSAgICBjbGFzcyBDZW50cmFsRGlyRW50cnkgewotICAgIHB1YmxpYzoKLSAgICAgICAgQ2VudHJhbERpckVudHJ5KHZvaWQpIDoKLSAgICAgICAgICAgIG1WZXJzaW9uTWFkZUJ5KDApLAotICAgICAgICAgICAgbVZlcnNpb25Ub0V4dHJhY3QoMCksCi0gICAgICAgICAgICBtR1BCaXRGbGFnKDApLAotICAgICAgICAgICAgbUNvbXByZXNzaW9uTWV0aG9kKDApLAotICAgICAgICAgICAgbUxhc3RNb2RGaWxlVGltZSgwKSwKLSAgICAgICAgICAgIG1MYXN0TW9kRmlsZURhdGUoMCksCi0gICAgICAgICAgICBtQ1JDMzIoMCksCi0gICAgICAgICAgICBtQ29tcHJlc3NlZFNpemUoMCksCi0gICAgICAgICAgICBtVW5jb21wcmVzc2VkU2l6ZSgwKSwKLSAgICAgICAgICAgIG1GaWxlTmFtZUxlbmd0aCgwKSwKLSAgICAgICAgICAgIG1FeHRyYUZpZWxkTGVuZ3RoKDApLAotICAgICAgICAgICAgbUZpbGVDb21tZW50TGVuZ3RoKDApLAotICAgICAgICAgICAgbURpc2tOdW1iZXJTdGFydCgwKSwKLSAgICAgICAgICAgIG1JbnRlcm5hbEF0dHJzKDApLAotICAgICAgICAgICAgbUV4dGVybmFsQXR0cnMoMCksCi0gICAgICAgICAgICBtTG9jYWxIZWFkZXJSZWxPZmZzZXQoMCksCi0gICAgICAgICAgICBtRmlsZU5hbWUoTlVMTCksCi0gICAgICAgICAgICBtRXh0cmFGaWVsZChOVUxMKSwKLSAgICAgICAgICAgIG1GaWxlQ29tbWVudChOVUxMKQotICAgICAgICB7fQotICAgICAgICB2aXJ0dWFsIH5DZW50cmFsRGlyRW50cnkodm9pZCkgewotICAgICAgICAgICAgZGVsZXRlW10gbUZpbGVOYW1lOwotICAgICAgICAgICAgZGVsZXRlW10gbUV4dHJhRmllbGQ7Ci0gICAgICAgICAgICBkZWxldGVbXSBtRmlsZUNvbW1lbnQ7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0dXNfdCByZWFkKEZJTEUqIGZwKTsKLSAgICAgICAgc3RhdHVzX3Qgd3JpdGUoRklMRSogZnApOwotCi0gICAgICAgIC8vIHVuc2lnbmVkIGxvbmcgbVNpZ25hdHVyZTsKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgIG1WZXJzaW9uTWFkZUJ5OwotICAgICAgICB1bnNpZ25lZCBzaG9ydCAgbVZlcnNpb25Ub0V4dHJhY3Q7Ci0gICAgICAgIHVuc2lnbmVkIHNob3J0ICBtR1BCaXRGbGFnOwotICAgICAgICB1bnNpZ25lZCBzaG9ydCAgbUNvbXByZXNzaW9uTWV0aG9kOwotICAgICAgICB1bnNpZ25lZCBzaG9ydCAgbUxhc3RNb2RGaWxlVGltZTsKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgIG1MYXN0TW9kRmlsZURhdGU7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgICBtQ1JDMzI7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgICBtQ29tcHJlc3NlZFNpemU7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgICBtVW5jb21wcmVzc2VkU2l6ZTsKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgIG1GaWxlTmFtZUxlbmd0aDsKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgIG1FeHRyYUZpZWxkTGVuZ3RoOwotICAgICAgICB1bnNpZ25lZCBzaG9ydCAgbUZpbGVDb21tZW50TGVuZ3RoOwotICAgICAgICB1bnNpZ25lZCBzaG9ydCAgbURpc2tOdW1iZXJTdGFydDsKLSAgICAgICAgdW5zaWduZWQgc2hvcnQgIG1JbnRlcm5hbEF0dHJzOwotICAgICAgICB1bnNpZ25lZCBsb25nICAgbUV4dGVybmFsQXR0cnM7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgICBtTG9jYWxIZWFkZXJSZWxPZmZzZXQ7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIqICBtRmlsZU5hbWU7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIqICBtRXh0cmFGaWVsZDsKLSAgICAgICAgdW5zaWduZWQgY2hhciogIG1GaWxlQ29tbWVudDsKLQotICAgICAgICB2b2lkIGR1bXAodm9pZCkgY29uc3Q7Ci0KLSAgICAgICAgZW51bSB7Ci0gICAgICAgICAgICBrU2lnbmF0dXJlICAgICAgPSAweDAyMDE0YjUwLAotICAgICAgICAgICAga0NERUxlbiAgICAgICAgID0gNDYsICAgICAgIC8vIENlbnRyYWxEaXJFbnQgbGVuLCBleGNsLiB2YXIgZmllbGRzCi0gICAgICAgIH07Ci0gICAgfTsKLQotICAgIGVudW0gewotICAgICAgICAvL2tEYXRhRGVzY3JpcHRvclNpZ25hdHVyZSAgPSAweDA4MDc0YjUwLCAgIC8vIGN1cnJlbnRseSB1bnVzZWQKLSAgICAgICAga0RhdGFEZXNjcmlwdG9yTGVuICA9IDE2LCAgICAgICAgICAgLy8gZm91ciAzMi1iaXQgZmllbGRzCi0KLSAgICAgICAga0RlZmF1bHRWZXJzaW9uICAgICA9IDIwLCAgICAgICAgICAgLy8gbmVlZCBkZWZsYXRlLCBub3RoaW5nIG11Y2ggZWxzZQotICAgICAgICBrRGVmYXVsdE1hZGVCeSAgICAgID0gMHgwMzE3LCAgICAgICAvLyAwMz1VTklYLCAxNz1zcGVjIHYyLjMKLSAgICAgICAga1VzZXNEYXRhRGVzY3IgICAgICA9IDB4MDAwOCwgICAgICAgLy8gR1BCaXRGbGFnIGJpdCAzCi0gICAgfTsKLQotICAgIExvY2FsRmlsZUhlYWRlciAgICAgbUxGSDsKLSAgICBDZW50cmFsRGlyRW50cnkgICAgIG1DREU7Ci19OwotCi19OyAvLyBuYW1lc3BhY2UgYW5kcm9pZAotCi0jZW5kaWYgLy8gX19MSUJTX1pJUEVOVFJZX0gKZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvWmlwRmlsZS5jcHAgYi90b29scy9hYXB0L1ppcEZpbGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDU3MDY4Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvWmlwRmlsZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMjk3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0vLwotLy8gQWNjZXNzIHRvIFppcCBhcmNoaXZlcy4KLS8vCi0KLSNkZWZpbmUgTE9HX1RBRyAiemlwIgotCi0jaW5jbHVkZSA8YW5kcm9pZGZ3L1ppcFV0aWxzLmg+Ci0jaW5jbHVkZSA8dXRpbHMvTG9nLmg+Ci0KLSNpbmNsdWRlICJaaXBGaWxlLmgiCi0KLSNpbmNsdWRlIDx6bGliLmg+Ci0jZGVmaW5lIERFRl9NRU1fTEVWRUwgOCAgICAgICAgICAgICAgICAvLyBub3JtYWxseSBpbiB6dXRpbC5oPwotCi0jaW5jbHVkZSA8bWVtb3J5Lmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGFzc2VydC5oPgotCi11c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKLQotLyoKLSAqIFNvbWUgZW52aXJvbm1lbnRzIHJlcXVpcmUgdGhlICJiIiwgc29tZSBjaG9rZSBvbiBpdC4KLSAqLwotI2RlZmluZSBGSUxFX09QRU5fUk8gICAgICAgICJyYiIKLSNkZWZpbmUgRklMRV9PUEVOX1JXICAgICAgICAicitiIgotI2RlZmluZSBGSUxFX09QRU5fUldfQ1JFQVRFICJ3K2IiCi0KLS8qIHNob3VsZCBsaXZlIHNvbWV3aGVyZSBlbHNlPyAqLwotc3RhdGljIHN0YXR1c190IGVycm5vVG9TdGF0dXMoaW50IGVycikKLXsKLSAgICBpZiAoZXJyID09IEVOT0VOVCkKLSAgICAgICAgcmV0dXJuIE5BTUVfTk9UX0ZPVU5EOwotICAgIGVsc2UgaWYgKGVyciA9PSBFQUNDRVMpCi0gICAgICAgIHJldHVybiBQRVJNSVNTSU9OX0RFTklFRDsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotfQotCi0vKgotICogT3BlbiBhIGZpbGUgYW5kIHBhcnNlIGl0cyBndXRzLgotICovCi1zdGF0dXNfdCBaaXBGaWxlOjpvcGVuKGNvbnN0IGNoYXIqIHppcEZpbGVOYW1lLCBpbnQgZmxhZ3MpCi17Ci0gICAgYm9vbCBuZXdBcmNoaXZlID0gZmFsc2U7Ci0KLSAgICBhc3NlcnQobVppcEZwID09IE5VTEwpOyAgICAgLy8gbm8gcmVvcGVuCi0KLSAgICBpZiAoKGZsYWdzICYga09wZW5UcnVuY2F0ZSkpCi0gICAgICAgIGZsYWdzIHw9IGtPcGVuQ3JlYXRlOyAgICAgICAgICAgLy8gdHJ1bmMgaW1wbGllcyBjcmVhdGUKLQotICAgIGlmICgoZmxhZ3MgJiBrT3BlblJlYWRPbmx5KSAmJiAoZmxhZ3MgJiBrT3BlblJlYWRXcml0ZSkpCi0gICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsgICAgICAgLy8gbm90IGJvdGgKLSAgICBpZiAoISgoZmxhZ3MgJiBrT3BlblJlYWRPbmx5KSB8fCAoZmxhZ3MgJiBrT3BlblJlYWRXcml0ZSkpKQotICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047ICAgICAgIC8vIG5vdCBuZWl0aGVyCi0gICAgaWYgKChmbGFncyAmIGtPcGVuQ3JlYXRlKSAmJiAhKGZsYWdzICYga09wZW5SZWFkV3JpdGUpKQotICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047ICAgICAgIC8vIGNyZWF0ZSByZXF1aXJlcyB3cml0ZQotCi0gICAgaWYgKGZsYWdzICYga09wZW5UcnVuY2F0ZSkgewotICAgICAgICBuZXdBcmNoaXZlID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBuZXdBcmNoaXZlID0gKGFjY2Vzcyh6aXBGaWxlTmFtZSwgRl9PSykgIT0gMCk7Ci0gICAgICAgIGlmICghKGZsYWdzICYga09wZW5DcmVhdGUpICYmIG5ld0FyY2hpdmUpIHsKLSAgICAgICAgICAgIC8qIG5vdCBjcmVhdGluZywgbXVzdCBhbHJlYWR5IGV4aXN0ICovCi0gICAgICAgICAgICBBTE9HRCgiRmlsZSAlcyBkb2VzIG5vdCBleGlzdCIsIHppcEZpbGVOYW1lKTsKLSAgICAgICAgICAgIHJldHVybiBOQU1FX05PVF9GT1VORDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qIG9wZW4gdGhlIGZpbGUgKi8KLSAgICBjb25zdCBjaGFyKiBvcGVuZmxhZ3M7Ci0gICAgaWYgKGZsYWdzICYga09wZW5SZWFkV3JpdGUpIHsKLSAgICAgICAgaWYgKG5ld0FyY2hpdmUpCi0gICAgICAgICAgICBvcGVuZmxhZ3MgPSBGSUxFX09QRU5fUldfQ1JFQVRFOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBvcGVuZmxhZ3MgPSBGSUxFX09QRU5fUlc7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgb3BlbmZsYWdzID0gRklMRV9PUEVOX1JPOwotICAgIH0KLSAgICBtWmlwRnAgPSBmb3Blbih6aXBGaWxlTmFtZSwgb3BlbmZsYWdzKTsKLSAgICBpZiAobVppcEZwID09IE5VTEwpIHsKLSAgICAgICAgaW50IGVyciA9IGVycm5vOwotICAgICAgICBBTE9HRCgiZm9wZW4gZmFpbGVkOiAlZFxuIiwgZXJyKTsKLSAgICAgICAgcmV0dXJuIGVycm5vVG9TdGF0dXMoZXJyKTsKLSAgICB9Ci0KLSAgICBzdGF0dXNfdCByZXN1bHQ7Ci0gICAgaWYgKCFuZXdBcmNoaXZlKSB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIExvYWQgdGhlIGNlbnRyYWwgZGlyZWN0b3J5LiAgSWYgdGhhdCBmYWlscywgdGhlbiB0aGlzIHByb2JhYmx5Ci0gICAgICAgICAqIGlzbid0IGEgWmlwIGFyY2hpdmUuCi0gICAgICAgICAqLwotICAgICAgICByZXN1bHQgPSByZWFkQ2VudHJhbERpcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8qCi0gICAgICAgICAqIE5ld2x5LWNyZWF0ZWQuICBUaGUgRW5kT2ZDZW50cmFsRGlyIGNvbnN0cnVjdG9yIGFjdHVhbGx5Ci0gICAgICAgICAqIHNldHMgZXZlcnl0aGluZyB0byBiZSB0aGUgd2F5IHdlIHdhbnQgaXQgKGFsbCB6ZXJvZXMpLiAgV2UKLSAgICAgICAgICogc2V0IG1OZWVkQ0RSZXdyaXRlIHNvIHRoYXQgd2UgY3JlYXRlICpzb21ldGhpbmcqIGlmIHRoZQotICAgICAgICAgKiBjYWxsZXIgZG9lc24ndCBhZGQgYW55IGZpbGVzLiAgKFdlIGNvdWxkIGFsc28ganVzdCB1bmxpbmsKLSAgICAgICAgICogdGhlIGZpbGUgaWYgaXQncyBicmFuZCBuZXcgYW5kIG5vdGhpbmcgd2FzIGFkZGVkLCBidXQgdGhhdCdzCi0gICAgICAgICAqIHByb2JhYmx5IGRvaW5nIG1vcmUgdGhhbiB3ZSByZWFsbHkgc2hvdWxkIC0tIHRoZSB1c2VyIG1pZ2h0Ci0gICAgICAgICAqIGhhdmUgYSBuZWVkIGZvciBlbXB0eSB6aXAgZmlsZXMuKQotICAgICAgICAgKi8KLSAgICAgICAgbU5lZWRDRFJld3JpdGUgPSB0cnVlOwotICAgICAgICByZXN1bHQgPSBOT19FUlJPUjsKLSAgICB9Ci0KLSAgICBpZiAoZmxhZ3MgJiBrT3BlblJlYWRPbmx5KQotICAgICAgICBtUmVhZE9ubHkgPSB0cnVlOwotICAgIGVsc2UKLSAgICAgICAgYXNzZXJ0KCFtUmVhZE9ubHkpOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLyoKLSAqIFJldHVybiB0aGUgTnRoIGVudHJ5IGluIHRoZSBhcmNoaXZlLgotICovCi1aaXBFbnRyeSogWmlwRmlsZTo6Z2V0RW50cnlCeUluZGV4KGludCBpZHgpIGNvbnN0Ci17Ci0gICAgaWYgKGlkeCA8IDAgfHwgaWR4ID49IChpbnQpIG1FbnRyaWVzLnNpemUoKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICByZXR1cm4gbUVudHJpZXNbaWR4XTsKLX0KLQotLyoKLSAqIEZpbmQgYW4gZW50cnkgYnkgbmFtZS4KLSAqLwotWmlwRW50cnkqIFppcEZpbGU6OmdldEVudHJ5QnlOYW1lKGNvbnN0IGNoYXIqIGZpbGVOYW1lKSBjb25zdAotewotICAgIC8qCi0gICAgICogRG8gYSBzdHVwaWQgbGluZWFyIHN0cmluZy1jb21wYXJlIHNlYXJjaC4KLSAgICAgKgotICAgICAqIFRoZXJlIGFyZSB2YXJpb3VzIHdheXMgdG8gc3BlZWQgdGhpcyB1cCwgZXNwZWNpYWxseSBzaW5jZSBpdCdzIHJhcmUKLSAgICAgKiB0byBpbnRlcm1pbmdsZSBjaGFuZ2VzIHRvIHRoZSBhcmNoaXZlIHdpdGggImdldCBieSBuYW1lIiBjYWxscy4gIFdlCi0gICAgICogZG9uJ3Qgd2FudCB0byBzb3J0IHRoZSBtRW50cmllcyB2ZWN0b3IgaXRzZWxmLCBob3dldmVyLCBiZWNhdXNlCi0gICAgICogaXQncyB1c2VkIHRvIHJlY3JlYXRlIHRoZSBDZW50cmFsIERpcmVjdG9yeS4KLSAgICAgKgotICAgICAqIChIYXNoIHRhYmxlIHdvcmtzLCBwYXJhbGxlbCBsaXN0IG9mIHBvaW50ZXJzIGluIHNvcnRlZCBvcmRlciBpcyBnb29kLikKLSAgICAgKi8KLSAgICBpbnQgaWR4OwotCi0gICAgZm9yIChpZHggPSBtRW50cmllcy5zaXplKCktMTsgaWR4ID49IDA7IGlkeC0tKSB7Ci0gICAgICAgIFppcEVudHJ5KiBwRW50cnkgPSBtRW50cmllc1tpZHhdOwotICAgICAgICBpZiAoIXBFbnRyeS0+Z2V0RGVsZXRlZCgpICYmCi0gICAgICAgICAgICBzdHJjbXAoZmlsZU5hbWUsIHBFbnRyeS0+Z2V0RmlsZU5hbWUoKSkgPT0gMCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHBFbnRyeTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBOVUxMOwotfQotCi0vKgotICogRW1wdHkgdGhlIG1FbnRyaWVzIHZlY3Rvci4KLSAqLwotdm9pZCBaaXBGaWxlOjpkaXNjYXJkRW50cmllcyh2b2lkKQotewotICAgIGludCBjb3VudCA9IG1FbnRyaWVzLnNpemUoKTsKLQotICAgIHdoaWxlICgtLWNvdW50ID49IDApCi0gICAgICAgIGRlbGV0ZSBtRW50cmllc1tjb3VudF07Ci0KLSAgICBtRW50cmllcy5jbGVhcigpOwotfQotCi0KLS8qCi0gKiBGaW5kIHRoZSBjZW50cmFsIGRpcmVjdG9yeSBhbmQgcmVhZCB0aGUgY29udGVudHMuCi0gKgotICogVGhlIGZ1biB0aGluZyBhYm91dCBaSVAgYXJjaGl2ZXMgaXMgdGhhdCB0aGV5IG1heSBvciBtYXkgbm90IGJlCi0gKiByZWFkYWJsZSBmcm9tIHN0YXJ0IHRvIGVuZC4gIEluIHNvbWUgY2FzZXMsIG5vdGFibHkgZm9yIGFyY2hpdmVzCi0gKiB0aGF0IHdlcmUgd3JpdHRlbiB0byBzdGRvdXQsIHRoZSBvbmx5IGxlbmd0aCBpbmZvcm1hdGlvbiBpcyBpbiB0aGUKLSAqIGNlbnRyYWwgZGlyZWN0b3J5IGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuCi0gKgotICogT2YgY291cnNlLCB0aGUgY2VudHJhbCBkaXJlY3RvcnkgY2FuIGJlIGZvbGxvd2VkIGJ5IGEgdmFyaWFibGUtbGVuZ3RoCi0gKiBjb21tZW50IGZpZWxkLCBzbyB3ZSBoYXZlIHRvIHNjYW4gdGhyb3VnaCBpdCBiYWNrd2FyZHMuICBUaGUgY29tbWVudAotICogaXMgYXQgbW9zdCA2NEssIHBsdXMgd2UgaGF2ZSAxOCBieXRlcyBmb3IgdGhlIGVuZC1vZi1jZW50cmFsLWRpciBzdHVmZgotICogaXRzZWxmLCBwbHVzIGFwcGFyZW50bHkgc29tZXRpbWVzIHBlb3BsZSB0aHJvdyByYW5kb20ganVuayBvbiB0aGUgZW5kCi0gKiBqdXN0IGZvciB0aGUgZnVuIG9mIGl0LgotICoKLSAqIFRoaXMgaXMgYWxsIGEgbGl0dGxlIHdvYmJseS4gIElmIHRoZSB3cm9uZyB2YWx1ZSBlbmRzIHVwIGluIHRoZSBFT0NECi0gKiBhcmVhLCB3ZSdyZSBob3NlZC4gIFRoaXMgYXBwZWFycyB0byBiZSB0aGUgd2F5IHRoYXQgZXZlcmJvZHkgaGFuZGxlcwotICogaXQgdGhvdWdoLCBzbyB3ZSdyZSBpbiBwcmV0dHkgZ29vZCBjb21wYW55IGlmIHRoaXMgZmFpbHMuCi0gKi8KLXN0YXR1c190IFppcEZpbGU6OnJlYWRDZW50cmFsRGlyKHZvaWQpCi17Ci0gICAgc3RhdHVzX3QgcmVzdWx0ID0gTk9fRVJST1I7Ci0gICAgdW5zaWduZWQgY2hhciogYnVmID0gTlVMTDsKLSAgICBvZmZfdCBmaWxlTGVuZ3RoLCBzZWVrU3RhcnQ7Ci0gICAgbG9uZyByZWFkQW1vdW50OwotICAgIGludCBpOwotCi0gICAgZnNlZWsobVppcEZwLCAwLCBTRUVLX0VORCk7Ci0gICAgZmlsZUxlbmd0aCA9IGZ0ZWxsKG1aaXBGcCk7Ci0gICAgcmV3aW5kKG1aaXBGcCk7Ci0KLSAgICAvKiB0b28gc21hbGwgdG8gYmUgYSBaSVAgYXJjaGl2ZT8gKi8KLSAgICBpZiAoZmlsZUxlbmd0aCA8IEVuZE9mQ2VudHJhbERpcjo6a0VPQ0RMZW4pIHsKLSAgICAgICAgQUxPR0QoIkxlbmd0aCBpcyAlbGQgLS0gdG9vIHNtYWxsXG4iLCAobG9uZylmaWxlTGVuZ3RoKTsKLSAgICAgICAgcmVzdWx0ID0gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICBidWYgPSBuZXcgdW5zaWduZWQgY2hhcltFbmRPZkNlbnRyYWxEaXI6OmtNYXhFT0NEU2VhcmNoXTsKLSAgICBpZiAoYnVmID09IE5VTEwpIHsKLSAgICAgICAgQUxPR0QoIkZhaWx1cmUgYWxsb2NhdGluZyAlZCBieXRlcyBmb3IgRU9DRCBzZWFyY2giLAotICAgICAgICAgICAgIEVuZE9mQ2VudHJhbERpcjo6a01heEVPQ0RTZWFyY2gpOwotICAgICAgICByZXN1bHQgPSBOT19NRU1PUlk7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICBpZiAoZmlsZUxlbmd0aCA+IEVuZE9mQ2VudHJhbERpcjo6a01heEVPQ0RTZWFyY2gpIHsKLSAgICAgICAgc2Vla1N0YXJ0ID0gZmlsZUxlbmd0aCAtIEVuZE9mQ2VudHJhbERpcjo6a01heEVPQ0RTZWFyY2g7Ci0gICAgICAgIHJlYWRBbW91bnQgPSBFbmRPZkNlbnRyYWxEaXI6OmtNYXhFT0NEU2VhcmNoOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHNlZWtTdGFydCA9IDA7Ci0gICAgICAgIHJlYWRBbW91bnQgPSAobG9uZykgZmlsZUxlbmd0aDsKLSAgICB9Ci0gICAgaWYgKGZzZWVrKG1aaXBGcCwgc2Vla1N0YXJ0LCBTRUVLX1NFVCkgIT0gMCkgewotICAgICAgICBBTE9HRCgiRmFpbHVyZSBzZWVraW5nIHRvIGVuZCBvZiB6aXAgYXQgJWxkIiwgKGxvbmcpIHNlZWtTdGFydCk7Ci0gICAgICAgIHJlc3VsdCA9IFVOS05PV05fRVJST1I7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICAvKiByZWFkIHRoZSBsYXN0IHBhcnQgb2YgdGhlIGZpbGUgaW50byB0aGUgYnVmZmVyICovCi0gICAgaWYgKGZyZWFkKGJ1ZiwgMSwgcmVhZEFtb3VudCwgbVppcEZwKSAhPSAoc2l6ZV90KSByZWFkQW1vdW50KSB7Ci0gICAgICAgIEFMT0dEKCJzaG9ydCBmaWxlPyB3YW50ZWQgJWxkXG4iLCByZWFkQW1vdW50KTsKLSAgICAgICAgcmVzdWx0ID0gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIC8qIGZpbmQgdGhlIGVuZC1vZi1jZW50cmFsLWRpciBtYWdpYyAqLwotICAgIGZvciAoaSA9IHJlYWRBbW91bnQgLSA0OyBpID49IDA7IGktLSkgewotICAgICAgICBpZiAoYnVmW2ldID09IDB4NTAgJiYKLSAgICAgICAgICAgIFppcEVudHJ5OjpnZXRMb25nTEUoJmJ1ZltpXSkgPT0gRW5kT2ZDZW50cmFsRGlyOjprU2lnbmF0dXJlKQotICAgICAgICB7Ci0gICAgICAgICAgICBBTE9HVigiKysrIEZvdW5kIEVPQ0QgYXQgYnVmKyVkXG4iLCBpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmIChpIDwgMCkgewotICAgICAgICBBTE9HRCgiRU9DRCBub3QgZm91bmQsIG5vdCBaaXBcbiIpOwotICAgICAgICByZXN1bHQgPSBJTlZBTElEX09QRVJBVElPTjsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIC8qIGV4dHJhY3QgZW9jZCB2YWx1ZXMgKi8KLSAgICByZXN1bHQgPSBtRU9DRC5yZWFkQnVmKGJ1ZiArIGksIHJlYWRBbW91bnQgLSBpKTsKLSAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIEFMT0dEKCJGYWlsdXJlIHJlYWRpbmcgJWxkIGJ5dGVzIG9mIEVPQ0QgdmFsdWVzIiwgcmVhZEFtb3VudCAtIGkpOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotICAgIC8vbUVPQ0QuZHVtcCgpOwotCi0gICAgaWYgKG1FT0NELm1EaXNrTnVtYmVyICE9IDAgfHwgbUVPQ0QubURpc2tXaXRoQ2VudHJhbERpciAhPSAwIHx8Ci0gICAgICAgIG1FT0NELm1OdW1FbnRyaWVzICE9IG1FT0NELm1Ub3RhbE51bUVudHJpZXMpCi0gICAgewotICAgICAgICBBTE9HRCgiQXJjaGl2ZSBzcGFubmluZyBub3Qgc3VwcG9ydGVkXG4iKTsKLSAgICAgICAgcmVzdWx0ID0gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIFNvIGZhciBzbyBnb29kLiAgIm1DZW50cmFsRGlyU2l6ZSIgaXMgdGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlCi0gICAgICogY2VudHJhbCBkaXJlY3RvcnksIHNvIHdlIGNhbiBqdXN0IHNlZWsgYmFjayB0aGF0IGZhciB0byBmaW5kIGl0LgotICAgICAqIFdlIGNhbiBhbHNvIHNlZWsgZm9yd2FyZCBtQ2VudHJhbERpck9mZnNldCBieXRlcyBmcm9tIHRoZQotICAgICAqIHN0YXJ0IG9mIHRoZSBmaWxlLgotICAgICAqCi0gICAgICogV2UncmUgbm90IGd1YXJhbnRlZWQgdG8gaGF2ZSB0aGUgcmVzdCBvZiB0aGUgY2VudHJhbCBkaXIgaW4gdGhlCi0gICAgICogYnVmZmVyLCBub3IgYXJlIHdlIGd1YXJhbnRlZWQgdGhhdCB0aGUgY2VudHJhbCBkaXIgd2lsbCBoYXZlIGFueQotICAgICAqIHNvcnQgb2YgY29udmVuaWVudCBzaXplLiAgV2UgbmVlZCB0byBza2lwIHRvIHRoZSBzdGFydCBvZiBpdCBhbmQKLSAgICAgKiByZWFkIHRoZSBoZWFkZXIsIHRoZW4gdGhlIG90aGVyIGdvb2RpZXMuCi0gICAgICoKLSAgICAgKiBUaGUgb25seSB0aGluZyB3ZSByZWFsbHkgbmVlZCByaWdodCBub3cgaXMgdGhlIGZpbGUgY29tbWVudCwgd2hpY2gKLSAgICAgKiB3ZSdyZSBob3BpbmcgdG8gcHJlc2VydmUuCi0gICAgICovCi0gICAgaWYgKGZzZWVrKG1aaXBGcCwgbUVPQ0QubUNlbnRyYWxEaXJPZmZzZXQsIFNFRUtfU0VUKSAhPSAwKSB7Ci0gICAgICAgIEFMT0dEKCJGYWlsdXJlIHNlZWtpbmcgdG8gY2VudHJhbCBkaXIgb2Zmc2V0ICVsZFxuIiwKLSAgICAgICAgICAgICBtRU9DRC5tQ2VudHJhbERpck9mZnNldCk7Ci0gICAgICAgIHJlc3VsdCA9IFVOS05PV05fRVJST1I7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIExvb3AgdGhyb3VnaCBhbmQgcmVhZCB0aGUgY2VudHJhbCBkaXIgZW50cmllcy4KLSAgICAgKi8KLSAgICBBTE9HVigiU2Nhbm5pbmcgJWQgZW50cmllcy4uLlxuIiwgbUVPQ0QubVRvdGFsTnVtRW50cmllcyk7Ci0gICAgaW50IGVudHJ5OwotICAgIGZvciAoZW50cnkgPSAwOyBlbnRyeSA8IG1FT0NELm1Ub3RhbE51bUVudHJpZXM7IGVudHJ5KyspIHsKLSAgICAgICAgWmlwRW50cnkqIHBFbnRyeSA9IG5ldyBaaXBFbnRyeTsKLQotICAgICAgICByZXN1bHQgPSBwRW50cnktPmluaXRGcm9tQ0RFKG1aaXBGcCk7Ci0gICAgICAgIGlmIChyZXN1bHQgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgICAgIEFMT0dEKCJpbml0RnJvbUNERSBmYWlsZWRcbiIpOwotICAgICAgICAgICAgZGVsZXRlIHBFbnRyeTsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotCi0gICAgICAgIG1FbnRyaWVzLmFkZChwRW50cnkpOwotICAgIH0KLQotCi0gICAgLyoKLSAgICAgKiBJZiBhbGwgd2VudCB3ZWxsLCB3ZSBzaG91bGQgbm93IGJlIGJhY2sgYXQgdGhlIEVPQ0QuCi0gICAgICovCi0gICAgewotICAgICAgICB1bnNpZ25lZCBjaGFyIGNoZWNrQnVmWzRdOwotICAgICAgICBpZiAoZnJlYWQoY2hlY2tCdWYsIDEsIDQsIG1aaXBGcCkgIT0gNCkgewotICAgICAgICAgICAgQUxPR0QoIkVPQ0QgY2hlY2sgcmVhZCBmYWlsZWRcbiIpOwotICAgICAgICAgICAgcmVzdWx0ID0gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKFppcEVudHJ5OjpnZXRMb25nTEUoY2hlY2tCdWYpICE9IEVuZE9mQ2VudHJhbERpcjo6a1NpZ25hdHVyZSkgewotICAgICAgICAgICAgQUxPR0QoIkVPQ0QgcmVhZCBjaGVjayBmYWlsZWRcbiIpOwotICAgICAgICAgICAgcmVzdWx0ID0gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotICAgICAgICBBTE9HVigiKysrIEVPQ0QgcmVhZCBjaGVjayBwYXNzZWRcbiIpOwotICAgIH0KLQotYmFpbDoKLSAgICBkZWxldGVbXSBidWY7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotCi0vKgotICogQWRkIGEgbmV3IGZpbGUgdG8gdGhlIGFyY2hpdmUuCi0gKgotICogVGhpcyByZXF1aXJlcyBjcmVhdGluZyBhbmQgcG9wdWxhdGluZyBhIFppcEVudHJ5IHN0cnVjdHVyZSwgYW5kIGNvcHlpbmcKLSAqIHRoZSBkYXRhIGludG8gdGhlIGZpbGUgYXQgdGhlIGFwcHJvcHJpYXRlIHBvc2l0aW9uLiAgVGhlICJhcHByb3ByaWF0ZQotICogcG9zaXRpb24iIGlzIHRoZSBjdXJyZW50IGxvY2F0aW9uIG9mIHRoZSBjZW50cmFsIGRpcmVjdG9yeSwgd2hpY2ggd2UKLSAqIGNhc3VhbGx5IG92ZXJ3cml0ZSAod2UgY2FuIHB1dCBpdCBiYWNrIGxhdGVyKS4KLSAqCi0gKiBJZiB3ZSB3ZXJlIGNvbmNlcm5lZCBhYm91dCBzYWZldHksIHdlIHdvdWxkIHdhbnQgdG8gbWFrZSBhbGwgY2hhbmdlcwotICogaW4gYSB0ZW1wIGZpbGUgYW5kIHRoZW4gb3ZlcndyaXRlIHRoZSBvcmlnaW5hbCBhZnRlciBldmVyeXRoaW5nIHdhcwotICogc2FmZWx5IHdyaXR0ZW4uICBOb3QgcmVhbGx5IGEgY29uY2VybiBmb3IgdXMuCi0gKi8KLXN0YXR1c190IFppcEZpbGU6OmFkZENvbW1vbihjb25zdCBjaGFyKiBmaWxlTmFtZSwgY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IHNpemUsCi0gICAgY29uc3QgY2hhciogc3RvcmFnZU5hbWUsIGludCBzb3VyY2VUeXBlLCBpbnQgY29tcHJlc3Npb25NZXRob2QsCi0gICAgWmlwRW50cnkqKiBwcEVudHJ5KQotewotICAgIFppcEVudHJ5KiBwRW50cnkgPSBOVUxMOwotICAgIHN0YXR1c190IHJlc3VsdCA9IE5PX0VSUk9SOwotICAgIGxvbmcgbGZoUG9zbiwgc3RhcnRQb3NuLCBlbmRQb3NuLCB1bmNvbXByZXNzZWRMZW47Ci0gICAgRklMRSogaW5wdXRGcCA9IE5VTEw7Ci0gICAgdW5zaWduZWQgbG9uZyBjcmM7Ci0gICAgdGltZV90IG1vZFdoZW47Ci0KLSAgICBpZiAobVJlYWRPbmx5KQotICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047Ci0KLSAgICBhc3NlcnQoY29tcHJlc3Npb25NZXRob2QgPT0gWmlwRW50cnk6OmtDb21wcmVzc0RlZmxhdGVkIHx8Ci0gICAgICAgICAgIGNvbXByZXNzaW9uTWV0aG9kID09IFppcEVudHJ5OjprQ29tcHJlc3NTdG9yZWQpOwotCi0gICAgLyogbWFrZSBzdXJlIHdlJ3JlIGluIGEgcmVhc29uYWJsZSBzdGF0ZSAqLwotICAgIGFzc2VydChtWmlwRnAgIT0gTlVMTCk7Ci0gICAgYXNzZXJ0KG1FbnRyaWVzLnNpemUoKSA9PSBtRU9DRC5tVG90YWxOdW1FbnRyaWVzKTsKLQotICAgIC8qIG1ha2Ugc3VyZSBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QgKi8KLSAgICBpZiAoZ2V0RW50cnlCeU5hbWUoc3RvcmFnZU5hbWUpICE9IE5VTEwpCi0gICAgICAgIHJldHVybiBBTFJFQURZX0VYSVNUUzsKLQotICAgIGlmICghZGF0YSkgewotICAgICAgICBpbnB1dEZwID0gZm9wZW4oZmlsZU5hbWUsIEZJTEVfT1BFTl9STyk7Ci0gICAgICAgIGlmIChpbnB1dEZwID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gZXJybm9Ub1N0YXR1cyhlcnJubyk7Ci0gICAgfQotCi0gICAgaWYgKGZzZWVrKG1aaXBGcCwgbUVPQ0QubUNlbnRyYWxEaXJPZmZzZXQsIFNFRUtfU0VUKSAhPSAwKSB7Ci0gICAgICAgIHJlc3VsdCA9IFVOS05PV05fRVJST1I7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICBwRW50cnkgPSBuZXcgWmlwRW50cnk7Ci0gICAgcEVudHJ5LT5pbml0TmV3KHN0b3JhZ2VOYW1lLCBOVUxMKTsKLQotICAgIC8qCi0gICAgICogRnJvbSBoZXJlIG9uIG91dCwgZmFpbHVyZXMgYXJlIG1vcmUgaW50ZXJlc3RpbmcuCi0gICAgICovCi0gICAgbU5lZWRDRFJld3JpdGUgPSB0cnVlOwotCi0gICAgLyoKLSAgICAgKiBXcml0ZSB0aGUgTEZILCBldmVuIHRob3VnaCBpdCdzIHN0aWxsIG1vc3RseSBibGFuay4gIFdlIG5lZWQgaXQKLSAgICAgKiBhcyBhIHBsYWNlLWhvbGRlci4gIEluIHRoZW9yeSB0aGUgTEZIIGlzbid0IG5lY2Vzc2FyeSwgYnV0IGluCi0gICAgICogcHJhY3RpY2Ugc29tZSB1dGlsaXRpZXMgZGVtYW5kIGl0LgotICAgICAqLwotICAgIGxmaFBvc24gPSBmdGVsbChtWmlwRnApOwotICAgIHBFbnRyeS0+bUxGSC53cml0ZShtWmlwRnApOwotICAgIHN0YXJ0UG9zbiA9IGZ0ZWxsKG1aaXBGcCk7Ci0KLSAgICAvKgotICAgICAqIENvcHkgdGhlIGRhdGEgaW4sIHBvc3NpYmx5IGNvbXByZXNzaW5nIGl0IGFzIHdlIGdvLgotICAgICAqLwotICAgIGlmIChzb3VyY2VUeXBlID09IFppcEVudHJ5OjprQ29tcHJlc3NTdG9yZWQpIHsKLSAgICAgICAgaWYgKGNvbXByZXNzaW9uTWV0aG9kID09IFppcEVudHJ5OjprQ29tcHJlc3NEZWZsYXRlZCkgewotICAgICAgICAgICAgYm9vbCBmYWlsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHJlc3VsdCA9IGNvbXByZXNzRnBUb0ZwKG1aaXBGcCwgaW5wdXRGcCwgZGF0YSwgc2l6ZSwgJmNyYyk7Ci0gICAgICAgICAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgQUxPR0QoImNvbXByZXNzaW9uIGZhaWxlZCwgc3RvcmluZ1xuIik7Ci0gICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAgICAgKiBNYWtlIHN1cmUgaXQgaGFzIGNvbXByZXNzZWQgImVub3VnaCIuICBUaGlzIHByb2JhYmx5IG91Z2h0Ci0gICAgICAgICAgICAgICAgICogdG8gYmUgc2V0IHRocm91Z2ggYW4gQVBJIGNhbGwsIGJ1dCBJIGRvbid0IGV4cGVjdCBvdXIKLSAgICAgICAgICAgICAgICAgKiBjcml0ZXJpYSB0byBjaGFuZ2Ugb3ZlciB0aW1lLgotICAgICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgIGxvbmcgc3JjID0gaW5wdXRGcCA/IGZ0ZWxsKGlucHV0RnApIDogc2l6ZTsKLSAgICAgICAgICAgICAgICBsb25nIGRzdCA9IGZ0ZWxsKG1aaXBGcCkgLSBzdGFydFBvc247Ci0gICAgICAgICAgICAgICAgaWYgKGRzdCArIChkc3QgLyAxMCkgPiBzcmMpIHsKLSAgICAgICAgICAgICAgICAgICAgQUxPR0QoImluc3VmZmljaWVudCBjb21wcmVzc2lvbiAoc3JjPSVsZCBkc3Q9JWxkKSwgc3RvcmluZ1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNyYywgZHN0KTsKLSAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChmYWlsZWQpIHsKLSAgICAgICAgICAgICAgICBjb21wcmVzc2lvbk1ldGhvZCA9IFppcEVudHJ5OjprQ29tcHJlc3NTdG9yZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKGlucHV0RnApIHJld2luZChpbnB1dEZwKTsKLSAgICAgICAgICAgICAgICBmc2VlayhtWmlwRnAsIHN0YXJ0UG9zbiwgU0VFS19TRVQpOwotICAgICAgICAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCB0byBrQ29tcHJlc3NTdG9yZWQgY2FzZSAqLwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIC8qIGhhbmRsZSAibm8gY29tcHJlc3Npb24iIHJlcXVlc3QsIG9yIGZhaWxlZCBjb21wcmVzc2lvbiBmcm9tIGFib3ZlICovCi0gICAgICAgIGlmIChjb21wcmVzc2lvbk1ldGhvZCA9PSBaaXBFbnRyeTo6a0NvbXByZXNzU3RvcmVkKSB7Ci0gICAgICAgICAgICBpZiAoaW5wdXRGcCkgewotICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvcHlGcFRvRnAobVppcEZwLCBpbnB1dEZwLCAmY3JjKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gY29weURhdGFUb0ZwKG1aaXBGcCwgZGF0YSwgc2l6ZSwgJmNyYyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICAgICAgLy8gZG9uJ3QgbmVlZCB0byB0cnVuY2F0ZTsgaGFwcGVucyBpbiBDREUgcmV3cml0ZQotICAgICAgICAgICAgICAgIEFMT0dEKCJmYWlsZWQgY29weWluZyBkYXRhIGluXG4iKTsKLSAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBjdXJyZW50bHkgc2Vla2VkIHRvIGVuZCBvZiBmaWxlCi0gICAgICAgIHVuY29tcHJlc3NlZExlbiA9IGlucHV0RnAgPyBmdGVsbChpbnB1dEZwKSA6IHNpemU7Ci0gICAgfSBlbHNlIGlmIChzb3VyY2VUeXBlID09IFppcEVudHJ5OjprQ29tcHJlc3NEZWZsYXRlZCkgewotICAgICAgICAvKiB3ZSBzaG91bGQgc3VwcG9ydCB1bmNvbXByZXNzZWQtZnJvbS1jb21wcmVzc2VkLCBidXQgaXQncyBub3QKLSAgICAgICAgICogaW1wb3J0YW50IHJpZ2h0IG5vdyAqLwotICAgICAgICBhc3NlcnQoY29tcHJlc3Npb25NZXRob2QgPT0gWmlwRW50cnk6OmtDb21wcmVzc0RlZmxhdGVkKTsKLQotICAgICAgICBib29sIHNjYW5SZXN1bHQ7Ci0gICAgICAgIGludCBtZXRob2Q7Ci0gICAgICAgIGxvbmcgY29tcHJlc3NlZExlbjsKLQotICAgICAgICBzY2FuUmVzdWx0ID0gWmlwVXRpbHM6OmV4YW1pbmVHemlwKGlucHV0RnAsICZtZXRob2QsICZ1bmNvbXByZXNzZWRMZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAmY29tcHJlc3NlZExlbiwgJmNyYyk7Ci0gICAgICAgIGlmICghc2NhblJlc3VsdCB8fCBtZXRob2QgIT0gWmlwRW50cnk6OmtDb21wcmVzc0RlZmxhdGVkKSB7Ci0gICAgICAgICAgICBBTE9HRCgidGhpcyBpc24ndCBhIGRlZmxhdGVkIGd6aXAgZmlsZT8iKTsKLSAgICAgICAgICAgIHJlc3VsdCA9IFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLQotICAgICAgICByZXN1bHQgPSBjb3B5UGFydGlhbEZwVG9GcChtWmlwRnAsIGlucHV0RnAsIGNvbXByZXNzZWRMZW4sIE5VTEwpOwotICAgICAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBBTE9HRCgiZmFpbGVkIGNvcHlpbmcgZ3ppcCBkYXRhIGluXG4iKTsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGFzc2VydChmYWxzZSk7Ci0gICAgICAgIHJlc3VsdCA9IFVOS05PV05fRVJST1I7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIFdlIGNvdWxkIHdyaXRlIHRoZSAiRGF0YSBEZXNjcmlwdG9yIiwgYnV0IHRoZXJlIGRvZXNuJ3Qgc2VlbSB0bwotICAgICAqIGJlIGFueSBwb2ludCBzaW5jZSB3ZSdyZSBnb2luZyB0byBnbyBiYWNrIGFuZCB3cml0ZSB0aGUgTEZILgotICAgICAqCi0gICAgICogVXBkYXRlIGZpbGUgb2Zmc2V0cy4KLSAgICAgKi8KLSAgICBlbmRQb3NuID0gZnRlbGwobVppcEZwKTsgICAgICAgICAgICAvLyBzZWVrZWQgdG8gZW5kIG9mIGNvbXByZXNzZWQgZGF0YQotCi0gICAgLyoKLSAgICAgKiBTdWNjZXNzISAgRmlsbCBvdXQgbmV3IHZhbHVlcy4KLSAgICAgKi8KLSAgICBwRW50cnktPnNldERhdGFJbmZvKHVuY29tcHJlc3NlZExlbiwgZW5kUG9zbiAtIHN0YXJ0UG9zbiwgY3JjLAotICAgICAgICBjb21wcmVzc2lvbk1ldGhvZCk7Ci0gICAgbW9kV2hlbiA9IGdldE1vZFRpbWUoaW5wdXRGcCA/IGZpbGVubyhpbnB1dEZwKSA6IGZpbGVubyhtWmlwRnApKTsKLSAgICBwRW50cnktPnNldE1vZFdoZW4obW9kV2hlbik7Ci0gICAgcEVudHJ5LT5zZXRMRkhPZmZzZXQobGZoUG9zbik7Ci0gICAgbUVPQ0QubU51bUVudHJpZXMrKzsKLSAgICBtRU9DRC5tVG90YWxOdW1FbnRyaWVzKys7Ci0gICAgbUVPQ0QubUNlbnRyYWxEaXJTaXplID0gMDsgICAgICAvLyBtYXJrIGludmFsaWQ7IHNldCBieSBmbHVzaCgpCi0gICAgbUVPQ0QubUNlbnRyYWxEaXJPZmZzZXQgPSBlbmRQb3NuOwotCi0gICAgLyoKLSAgICAgKiBHbyBiYWNrIGFuZCB3cml0ZSB0aGUgTEZILgotICAgICAqLwotICAgIGlmIChmc2VlayhtWmlwRnAsIGxmaFBvc24sIFNFRUtfU0VUKSAhPSAwKSB7Ci0gICAgICAgIHJlc3VsdCA9IFVOS05PV05fRVJST1I7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0gICAgcEVudHJ5LT5tTEZILndyaXRlKG1aaXBGcCk7Ci0KLSAgICAvKgotICAgICAqIEFkZCBwRW50cnkgdG8gdGhlIGxpc3QuCi0gICAgICovCi0gICAgbUVudHJpZXMuYWRkKHBFbnRyeSk7Ci0gICAgaWYgKHBwRW50cnkgIT0gTlVMTCkKLSAgICAgICAgKnBwRW50cnkgPSBwRW50cnk7Ci0gICAgcEVudHJ5ID0gTlVMTDsKLQotYmFpbDoKLSAgICBpZiAoaW5wdXRGcCAhPSBOVUxMKQotICAgICAgICBmY2xvc2UoaW5wdXRGcCk7Ci0gICAgZGVsZXRlIHBFbnRyeTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0vKgotICogQWRkIGFuIGVudHJ5IGJ5IGNvcHlpbmcgaXQgZnJvbSBhbm90aGVyIHppcCBmaWxlLiAgSWYgInBhZGRpbmciIGlzCi0gKiBub256ZXJvLCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBieXRlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSAiZXh0cmEiCi0gKiBmaWVsZCBpbiB0aGUgaGVhZGVyLgotICoKLSAqIElmICJwcEVudHJ5IiBpcyBub24tTlVMTCwgYSBwb2ludGVyIHRvIHRoZSBuZXcgZW50cnkgd2lsbCBiZSByZXR1cm5lZC4KLSAqLwotc3RhdHVzX3QgWmlwRmlsZTo6YWRkKGNvbnN0IFppcEZpbGUqIHBTb3VyY2VaaXAsIGNvbnN0IFppcEVudHJ5KiBwU291cmNlRW50cnksCi0gICAgaW50IHBhZGRpbmcsIFppcEVudHJ5KiogcHBFbnRyeSkKLXsKLSAgICBaaXBFbnRyeSogcEVudHJ5ID0gTlVMTDsKLSAgICBzdGF0dXNfdCByZXN1bHQ7Ci0gICAgbG9uZyBsZmhQb3NuLCBlbmRQb3NuOwotCi0gICAgaWYgKG1SZWFkT25seSkKLSAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOwotCi0gICAgLyogbWFrZSBzdXJlIHdlJ3JlIGluIGEgcmVhc29uYWJsZSBzdGF0ZSAqLwotICAgIGFzc2VydChtWmlwRnAgIT0gTlVMTCk7Ci0gICAgYXNzZXJ0KG1FbnRyaWVzLnNpemUoKSA9PSBtRU9DRC5tVG90YWxOdW1FbnRyaWVzKTsKLQotICAgIGlmIChmc2VlayhtWmlwRnAsIG1FT0NELm1DZW50cmFsRGlyT2Zmc2V0LCBTRUVLX1NFVCkgIT0gMCkgewotICAgICAgICByZXN1bHQgPSBVTktOT1dOX0VSUk9SOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgcEVudHJ5ID0gbmV3IFppcEVudHJ5OwotICAgIGlmIChwRW50cnkgPT0gTlVMTCkgewotICAgICAgICByZXN1bHQgPSBOT19NRU1PUlk7Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSBwRW50cnktPmluaXRGcm9tRXh0ZXJuYWwocFNvdXJjZVppcCwgcFNvdXJjZUVudHJ5KTsKLSAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKQotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgaWYgKHBhZGRpbmcgIT0gMCkgewotICAgICAgICByZXN1bHQgPSBwRW50cnktPmFkZFBhZGRpbmcocGFkZGluZyk7Ci0gICAgICAgIGlmIChyZXN1bHQgIT0gTk9fRVJST1IpCi0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBGcm9tIGhlcmUgb24gb3V0LCBmYWlsdXJlcyBhcmUgbW9yZSBpbnRlcmVzdGluZy4KLSAgICAgKi8KLSAgICBtTmVlZENEUmV3cml0ZSA9IHRydWU7Ci0KLSAgICAvKgotICAgICAqIFdyaXRlIHRoZSBMRkguICBTaW5jZSB3ZSdyZSBub3QgcmVjb21wcmVzc2luZyB0aGUgZGF0YSwgd2UgYWxyZWFkeQotICAgICAqIGhhdmUgYWxsIG9mIHRoZSBmaWVsZHMgZmlsbGVkIG91dC4KLSAgICAgKi8KLSAgICBsZmhQb3NuID0gZnRlbGwobVppcEZwKTsKLSAgICBwRW50cnktPm1MRkgud3JpdGUobVppcEZwKTsKLQotICAgIC8qCi0gICAgICogQ29weSB0aGUgZGF0YSBvdmVyLgotICAgICAqCi0gICAgICogSWYgdGhlICJoYXMgZGF0YSBkZXNjcmlwdG9yIiBmbGFnIGlzIHNldCwgd2Ugd2FudCB0byBjb3B5IHRoZSBERAotICAgICAqIGZpZWxkcyBhcyB3ZWxsLiAgVGhpcyBpcyBhIGZpeGVkLXNpemUgYXJlYSBpbW1lZGlhdGVseSBmb2xsb3dpbmcKLSAgICAgKiB0aGUgZGF0YS4KLSAgICAgKi8KLSAgICBpZiAoZnNlZWsocFNvdXJjZVppcC0+bVppcEZwLCBwU291cmNlRW50cnktPmdldEZpbGVPZmZzZXQoKSwgU0VFS19TRVQpICE9IDApCi0gICAgewotICAgICAgICByZXN1bHQgPSBVTktOT1dOX0VSUk9SOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgb2ZmX3QgY29weUxlbjsKLSAgICBjb3B5TGVuID0gcFNvdXJjZUVudHJ5LT5nZXRDb21wcmVzc2VkTGVuKCk7Ci0gICAgaWYgKChwU291cmNlRW50cnktPm1MRkgubUdQQml0RmxhZyAmIFppcEVudHJ5OjprVXNlc0RhdGFEZXNjcikgIT0gMCkKLSAgICAgICAgY29weUxlbiArPSBaaXBFbnRyeTo6a0RhdGFEZXNjcmlwdG9yTGVuOwotCi0gICAgaWYgKGNvcHlQYXJ0aWFsRnBUb0ZwKG1aaXBGcCwgcFNvdXJjZVppcC0+bVppcEZwLCBjb3B5TGVuLCBOVUxMKQotICAgICAgICAhPSBOT19FUlJPUikKLSAgICB7Ci0gICAgICAgIEFMT0dXKCJjb3B5IG9mICclcycgZmFpbGVkXG4iLCBwRW50cnktPm1DREUubUZpbGVOYW1lKTsKLSAgICAgICAgcmVzdWx0ID0gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIC8qCi0gICAgICogVXBkYXRlIGZpbGUgb2Zmc2V0cy4KLSAgICAgKi8KLSAgICBlbmRQb3NuID0gZnRlbGwobVppcEZwKTsKLQotICAgIC8qCi0gICAgICogU3VjY2VzcyEgIEZpbGwgb3V0IG5ldyB2YWx1ZXMuCi0gICAgICovCi0gICAgcEVudHJ5LT5zZXRMRkhPZmZzZXQobGZoUG9zbik7ICAgICAgLy8gc2V0cyBtQ0RFLm1Mb2NhbEhlYWRlclJlbE9mZnNldAotICAgIG1FT0NELm1OdW1FbnRyaWVzKys7Ci0gICAgbUVPQ0QubVRvdGFsTnVtRW50cmllcysrOwotICAgIG1FT0NELm1DZW50cmFsRGlyU2l6ZSA9IDA7ICAgICAgLy8gbWFyayBpbnZhbGlkOyBzZXQgYnkgZmx1c2goKQotICAgIG1FT0NELm1DZW50cmFsRGlyT2Zmc2V0ID0gZW5kUG9zbjsKLQotICAgIC8qCi0gICAgICogQWRkIHBFbnRyeSB0byB0aGUgbGlzdC4KLSAgICAgKi8KLSAgICBtRW50cmllcy5hZGQocEVudHJ5KTsKLSAgICBpZiAocHBFbnRyeSAhPSBOVUxMKQotICAgICAgICAqcHBFbnRyeSA9IHBFbnRyeTsKLSAgICBwRW50cnkgPSBOVUxMOwotCi0gICAgcmVzdWx0ID0gTk9fRVJST1I7Ci0KLWJhaWw6Ci0gICAgZGVsZXRlIHBFbnRyeTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0vKgotICogQ29weSBhbGwgb2YgdGhlIGJ5dGVzIGluICJzcmMiIHRvICJkc3QiLgotICoKLSAqIE9uIGV4aXQsICJzcmNGcCIgd2lsbCBiZSBzZWVrZWQgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZSwgYW5kICJkc3RGcCIKLSAqIHdpbGwgYmUgc2Vla2VkIGltbWVkaWF0ZWx5IHBhc3QgdGhlIGRhdGEuCi0gKi8KLXN0YXR1c190IFppcEZpbGU6OmNvcHlGcFRvRnAoRklMRSogZHN0RnAsIEZJTEUqIHNyY0ZwLCB1bnNpZ25lZCBsb25nKiBwQ1JDMzIpCi17Ci0gICAgdW5zaWduZWQgY2hhciB0bXBCdWZbMzI3NjhdOwotICAgIHNpemVfdCBjb3VudDsKLQotICAgICpwQ1JDMzIgPSBjcmMzMigwTCwgWl9OVUxMLCAwKTsKLQotICAgIHdoaWxlICgxKSB7Ci0gICAgICAgIGNvdW50ID0gZnJlYWQodG1wQnVmLCAxLCBzaXplb2YodG1wQnVmKSwgc3JjRnApOwotICAgICAgICBpZiAoZmVycm9yKHNyY0ZwKSB8fCBmZXJyb3IoZHN0RnApKQotICAgICAgICAgICAgcmV0dXJuIGVycm5vVG9TdGF0dXMoZXJybm8pOwotICAgICAgICBpZiAoY291bnQgPT0gMCkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICpwQ1JDMzIgPSBjcmMzMigqcENSQzMyLCB0bXBCdWYsIGNvdW50KTsKLQotICAgICAgICBpZiAoZndyaXRlKHRtcEJ1ZiwgMSwgY291bnQsIGRzdEZwKSAhPSBjb3VudCkgewotICAgICAgICAgICAgQUxPR0QoImZ3cml0ZSAlZCBieXRlcyBmYWlsZWRcbiIsIChpbnQpIGNvdW50KTsKLSAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi0vKgotICogQ29weSBhbGwgb2YgdGhlIGJ5dGVzIGluICJzcmMiIHRvICJkc3QiLgotICoKLSAqIE9uIGV4aXQsICJkc3RGcCIgd2lsbCBiZSBzZWVrZWQgaW1tZWRpYXRlbHkgcGFzdCB0aGUgZGF0YS4KLSAqLwotc3RhdHVzX3QgWmlwRmlsZTo6Y29weURhdGFUb0ZwKEZJTEUqIGRzdEZwLAotICAgIGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBzaXplLCB1bnNpZ25lZCBsb25nKiBwQ1JDMzIpCi17Ci0gICAgc2l6ZV90IGNvdW50OwotCi0gICAgKnBDUkMzMiA9IGNyYzMyKDBMLCBaX05VTEwsIDApOwotICAgIGlmIChzaXplID4gMCkgewotICAgICAgICAqcENSQzMyID0gY3JjMzIoKnBDUkMzMiwgKGNvbnN0IHVuc2lnbmVkIGNoYXIqKWRhdGEsIHNpemUpOwotICAgICAgICBpZiAoZndyaXRlKGRhdGEsIDEsIHNpemUsIGRzdEZwKSAhPSBzaXplKSB7Ci0gICAgICAgICAgICBBTE9HRCgiZndyaXRlICVkIGJ5dGVzIGZhaWxlZFxuIiwgKGludCkgc2l6ZSk7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotLyoKLSAqIENvcHkgc29tZSBvZiB0aGUgYnl0ZXMgaW4gInNyYyIgdG8gImRzdCIuCi0gKgotICogSWYgInBDUkMzMiIgaXMgTlVMTCwgdGhlIENSQyB3aWxsIG5vdCBiZSBjb21wdXRlZC4KLSAqCi0gKiBPbiBleGl0LCAic3JjRnAiIHdpbGwgYmUgc2Vla2VkIHRvIHRoZSBlbmQgb2YgdGhlIGZpbGUsIGFuZCAiZHN0RnAiCi0gKiB3aWxsIGJlIHNlZWtlZCBpbW1lZGlhdGVseSBwYXN0IHRoZSBkYXRhIGp1c3Qgd3JpdHRlbi4KLSAqLwotc3RhdHVzX3QgWmlwRmlsZTo6Y29weVBhcnRpYWxGcFRvRnAoRklMRSogZHN0RnAsIEZJTEUqIHNyY0ZwLCBsb25nIGxlbmd0aCwKLSAgICB1bnNpZ25lZCBsb25nKiBwQ1JDMzIpCi17Ci0gICAgdW5zaWduZWQgY2hhciB0bXBCdWZbMzI3NjhdOwotICAgIHNpemVfdCBjb3VudDsKLQotICAgIGlmIChwQ1JDMzIgIT0gTlVMTCkKLSAgICAgICAgKnBDUkMzMiA9IGNyYzMyKDBMLCBaX05VTEwsIDApOwotCi0gICAgd2hpbGUgKGxlbmd0aCkgewotICAgICAgICBsb25nIHJlYWRTaXplOwotICAgICAgICAKLSAgICAgICAgcmVhZFNpemUgPSBzaXplb2YodG1wQnVmKTsKLSAgICAgICAgaWYgKHJlYWRTaXplID4gbGVuZ3RoKQotICAgICAgICAgICAgcmVhZFNpemUgPSBsZW5ndGg7Ci0KLSAgICAgICAgY291bnQgPSBmcmVhZCh0bXBCdWYsIDEsIHJlYWRTaXplLCBzcmNGcCk7Ci0gICAgICAgIGlmICgobG9uZykgY291bnQgIT0gcmVhZFNpemUpIHsgICAgIC8vIGVycm9yIG9yIHVuZXhwZWN0ZWQgRU9GCi0gICAgICAgICAgICBBTE9HRCgiZnJlYWQgJWQgYnl0ZXMgZmFpbGVkXG4iLCAoaW50KSByZWFkU2l6ZSk7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChwQ1JDMzIgIT0gTlVMTCkKLSAgICAgICAgICAgICpwQ1JDMzIgPSBjcmMzMigqcENSQzMyLCB0bXBCdWYsIGNvdW50KTsKLQotICAgICAgICBpZiAoZndyaXRlKHRtcEJ1ZiwgMSwgY291bnQsIGRzdEZwKSAhPSBjb3VudCkgewotICAgICAgICAgICAgQUxPR0QoImZ3cml0ZSAlZCBieXRlcyBmYWlsZWRcbiIsIChpbnQpIGNvdW50KTsKLSAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICB9Ci0KLSAgICAgICAgbGVuZ3RoIC09IHJlYWRTaXplOwotICAgIH0KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotLyoKLSAqIENvbXByZXNzIGFsbCBvZiB0aGUgZGF0YSBpbiAic3JjRnAiIGFuZCB3cml0ZSBpdCB0byAiZHN0RnAiLgotICoKLSAqIE9uIGV4aXQsICJzcmNGcCIgd2lsbCBiZSBzZWVrZWQgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZSwgYW5kICJkc3RGcCIKLSAqIHdpbGwgYmUgc2Vla2VkIGltbWVkaWF0ZWx5IHBhc3QgdGhlIGNvbXByZXNzZWQgZGF0YS4KLSAqLwotc3RhdHVzX3QgWmlwRmlsZTo6Y29tcHJlc3NGcFRvRnAoRklMRSogZHN0RnAsIEZJTEUqIHNyY0ZwLAotICAgIGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBzaXplLCB1bnNpZ25lZCBsb25nKiBwQ1JDMzIpCi17Ci0gICAgc3RhdHVzX3QgcmVzdWx0ID0gTk9fRVJST1I7Ci0gICAgY29uc3Qgc2l6ZV90IGtCdWZTaXplID0gMzI3Njg7Ci0gICAgdW5zaWduZWQgY2hhciogaW5CdWYgPSBOVUxMOwotICAgIHVuc2lnbmVkIGNoYXIqIG91dEJ1ZiA9IE5VTEw7Ci0gICAgel9zdHJlYW0genN0cmVhbTsKLSAgICBib29sIGF0RW9mID0gZmFsc2U7ICAgICAvLyBubyBmZW9mKCkgYXZpYWlsYWJsZSB5ZXQKLSAgICB1bnNpZ25lZCBsb25nIGNyYzsKLSAgICBpbnQgemVycjsKLQotICAgIC8qCi0gICAgICogQ3JlYXRlIGFuIGlucHV0IGJ1ZmZlciBhbmQgYW4gb3V0cHV0IGJ1ZmZlci4KLSAgICAgKi8KLSAgICBpbkJ1ZiA9IG5ldyB1bnNpZ25lZCBjaGFyW2tCdWZTaXplXTsKLSAgICBvdXRCdWYgPSBuZXcgdW5zaWduZWQgY2hhcltrQnVmU2l6ZV07Ci0gICAgaWYgKGluQnVmID09IE5VTEwgfHwgb3V0QnVmID09IE5VTEwpIHsKLSAgICAgICAgcmVzdWx0ID0gTk9fTUVNT1JZOwotICAgICAgICBnb3RvIGJhaWw7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBJbml0aWFsaXplIHRoZSB6bGliIHN0cmVhbS4KLSAgICAgKi8KLSAgICBtZW1zZXQoJnpzdHJlYW0sIDAsIHNpemVvZih6c3RyZWFtKSk7Ci0gICAgenN0cmVhbS56YWxsb2MgPSBaX05VTEw7Ci0gICAgenN0cmVhbS56ZnJlZSA9IFpfTlVMTDsKLSAgICB6c3RyZWFtLm9wYXF1ZSA9IFpfTlVMTDsKLSAgICB6c3RyZWFtLm5leHRfaW4gPSBOVUxMOwotICAgIHpzdHJlYW0uYXZhaWxfaW4gPSAwOwotICAgIHpzdHJlYW0ubmV4dF9vdXQgPSBvdXRCdWY7Ci0gICAgenN0cmVhbS5hdmFpbF9vdXQgPSBrQnVmU2l6ZTsKLSAgICB6c3RyZWFtLmRhdGFfdHlwZSA9IFpfVU5LTk9XTjsKLQotICAgIHplcnIgPSBkZWZsYXRlSW5pdDIoJnpzdHJlYW0sIFpfQkVTVF9DT01QUkVTU0lPTiwKLSAgICAgICAgWl9ERUZMQVRFRCwgLU1BWF9XQklUUywgREVGX01FTV9MRVZFTCwgWl9ERUZBVUxUX1NUUkFURUdZKTsKLSAgICBpZiAoemVyciAhPSBaX09LKSB7Ci0gICAgICAgIHJlc3VsdCA9IFVOS05PV05fRVJST1I7Ci0gICAgICAgIGlmICh6ZXJyID09IFpfVkVSU0lPTl9FUlJPUikgewotICAgICAgICAgICAgQUxPR0UoIkluc3RhbGxlZCB6bGliIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggbGlua2VkIHZlcnNpb24gKCVzKVxuIiwKLSAgICAgICAgICAgICAgICBaTElCX1ZFUlNJT04pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQUxPR0QoIkNhbGwgdG8gZGVmbGF0ZUluaXQyIGZhaWxlZCAoemVycj0lZClcbiIsIHplcnIpOwotICAgICAgICB9Ci0gICAgICAgIGdvdG8gYmFpbDsKLSAgICB9Ci0KLSAgICBjcmMgPSBjcmMzMigwTCwgWl9OVUxMLCAwKTsKLQotICAgIC8qCi0gICAgICogTG9vcCB3aGlsZSB3ZSBoYXZlIGRhdGEuCi0gICAgICovCi0gICAgZG8gewotICAgICAgICBzaXplX3QgZ2V0U2l6ZTsKLSAgICAgICAgaW50IGZsdXNoOwotCi0gICAgICAgIC8qIG9ubHkgcmVhZCBpZiB0aGUgaW5wdXQgYnVmZmVyIGlzIGVtcHR5ICovCi0gICAgICAgIGlmICh6c3RyZWFtLmF2YWlsX2luID09IDAgJiYgIWF0RW9mKSB7Ci0gICAgICAgICAgICBBTE9HVigiKysrIHJlYWRpbmcgJWQgYnl0ZXNcbiIsIChpbnQpa0J1ZlNpemUpOwotICAgICAgICAgICAgaWYgKGRhdGEpIHsKLSAgICAgICAgICAgICAgICBnZXRTaXplID0gc2l6ZSA+IGtCdWZTaXplID8ga0J1ZlNpemUgOiBzaXplOwotICAgICAgICAgICAgICAgIG1lbWNweShpbkJ1ZiwgZGF0YSwgZ2V0U2l6ZSk7Ci0gICAgICAgICAgICAgICAgZGF0YSA9ICgoY29uc3QgY2hhciopZGF0YSkgKyBnZXRTaXplOwotICAgICAgICAgICAgICAgIHNpemUgLT0gZ2V0U2l6ZTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZ2V0U2l6ZSA9IGZyZWFkKGluQnVmLCAxLCBrQnVmU2l6ZSwgc3JjRnApOwotICAgICAgICAgICAgICAgIGlmIChmZXJyb3Ioc3JjRnApKSB7Ci0gICAgICAgICAgICAgICAgICAgIEFMT0dEKCJkZWZsYXRlIHJlYWQgZmFpbGVkIChlcnJubz0lZClcbiIsIGVycm5vKTsKLSAgICAgICAgICAgICAgICAgICAgZ290byB6X2JhaWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGdldFNpemUgPCBrQnVmU2l6ZSkgewotICAgICAgICAgICAgICAgIEFMT0dWKCIrKysgIGdvdCAlZCBieXRlcywgRU9GIHJlYWNoZWRcbiIsCi0gICAgICAgICAgICAgICAgICAgIChpbnQpZ2V0U2l6ZSk7Ci0gICAgICAgICAgICAgICAgYXRFb2YgPSB0cnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBjcmMgPSBjcmMzMihjcmMsIGluQnVmLCBnZXRTaXplKTsKLQotICAgICAgICAgICAgenN0cmVhbS5uZXh0X2luID0gaW5CdWY7Ci0gICAgICAgICAgICB6c3RyZWFtLmF2YWlsX2luID0gZ2V0U2l6ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChhdEVvZikKLSAgICAgICAgICAgIGZsdXNoID0gWl9GSU5JU0g7ICAgICAgIC8qIHRlbGwgemxpYiB0aGF0IHdlJ3JlIGRvbmUgKi8KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZmx1c2ggPSBaX05PX0ZMVVNIOyAgICAgLyogbW9yZSB0byBjb21lISAqLwotCi0gICAgICAgIHplcnIgPSBkZWZsYXRlKCZ6c3RyZWFtLCBmbHVzaCk7Ci0gICAgICAgIGlmICh6ZXJyICE9IFpfT0sgJiYgemVyciAhPSBaX1NUUkVBTV9FTkQpIHsKLSAgICAgICAgICAgIEFMT0dEKCJ6bGliIGRlZmxhdGUgY2FsbCBmYWlsZWQgKHplcnI9JWQpXG4iLCB6ZXJyKTsKLSAgICAgICAgICAgIHJlc3VsdCA9IFVOS05PV05fRVJST1I7Ci0gICAgICAgICAgICBnb3RvIHpfYmFpbDsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIHdyaXRlIHdoZW4gd2UncmUgZnVsbCBvciB3aGVuIHdlJ3JlIGRvbmUgKi8KLSAgICAgICAgaWYgKHpzdHJlYW0uYXZhaWxfb3V0ID09IDAgfHwKLSAgICAgICAgICAgICh6ZXJyID09IFpfU1RSRUFNX0VORCAmJiB6c3RyZWFtLmF2YWlsX291dCAhPSAodUludCkga0J1ZlNpemUpKQotICAgICAgICB7Ci0gICAgICAgICAgICBBTE9HVigiKysrIHdyaXRpbmcgJWQgYnl0ZXNcbiIsIChpbnQpICh6c3RyZWFtLm5leHRfb3V0IC0gb3V0QnVmKSk7Ci0gICAgICAgICAgICBpZiAoZndyaXRlKG91dEJ1ZiwgMSwgenN0cmVhbS5uZXh0X291dCAtIG91dEJ1ZiwgZHN0RnApICE9Ci0gICAgICAgICAgICAgICAgKHNpemVfdCkoenN0cmVhbS5uZXh0X291dCAtIG91dEJ1ZikpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgQUxPR0QoIndyaXRlICVkIGZhaWxlZCBpbiBkZWZsYXRlXG4iLAotICAgICAgICAgICAgICAgICAgICAoaW50KSAoenN0cmVhbS5uZXh0X291dCAtIG91dEJ1ZikpOwotICAgICAgICAgICAgICAgIGdvdG8gel9iYWlsOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB6c3RyZWFtLm5leHRfb3V0ID0gb3V0QnVmOwotICAgICAgICAgICAgenN0cmVhbS5hdmFpbF9vdXQgPSBrQnVmU2l6ZTsKLSAgICAgICAgfQotICAgIH0gd2hpbGUgKHplcnIgPT0gWl9PSyk7Ci0KLSAgICBhc3NlcnQoemVyciA9PSBaX1NUUkVBTV9FTkQpOyAgICAgICAvKiBvdGhlciBlcnJvcnMgc2hvdWxkJ3ZlIGJlZW4gY2F1Z2h0ICovCi0KLSAgICAqcENSQzMyID0gY3JjOwotCi16X2JhaWw6Ci0gICAgZGVmbGF0ZUVuZCgmenN0cmVhbSk7ICAgICAgICAvKiBmcmVlIHVwIGFueSBhbGxvY2F0ZWQgc3RydWN0dXJlcyAqLwotCi1iYWlsOgotICAgIGRlbGV0ZVtdIGluQnVmOwotICAgIGRlbGV0ZVtdIG91dEJ1ZjsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLS8qCi0gKiBNYXJrIGFuIGVudHJ5IGFzIGRlbGV0ZWQuCi0gKgotICogV2Ugd2lsbCBldmVudHVhbGx5IG5lZWQgdG8gY3J1bmNoIHRoZSBmaWxlIGRvd24sIGJ1dCBpZiBzZXZlcmFsIGZpbGVzCi0gKiBhcmUgYmVpbmcgcmVtb3ZlZCAocGVyaGFwcyBhcyBwYXJ0IG9mIGFuICJ1cGRhdGUiIHByb2Nlc3MpIHdlIGNhbiBtYWtlCi0gKiB0aGluZ3MgY29uc2lkZXJhYmx5IGZhc3RlciBieSBkZWZlcnJpbmcgdGhlIHJlbW92YWwgdG8gImZsdXNoIiB0aW1lLgotICovCi1zdGF0dXNfdCBaaXBGaWxlOjpyZW1vdmUoWmlwRW50cnkqIHBFbnRyeSkKLXsKLSAgICAvKgotICAgICAqIFNob3VsZCB2ZXJpZnkgdGhhdCBwRW50cnkgaXMgYWN0dWFsbHkgcGFydCBvZiB0aGlzIGFyY2hpdmUsIGFuZAotICAgICAqIG5vdCBzb21lIHN0cmF5IFppcEVudHJ5IGZyb20gYSBkaWZmZXJlbnQgZmlsZS4KLSAgICAgKi8KLQotICAgIC8qIG1hcmsgZW50cnkgYXMgZGVsZXRlZCwgYW5kIG1hcmsgYXJjaGl2ZSBhcyBkaXJ0eSAqLwotICAgIHBFbnRyeS0+c2V0RGVsZXRlZCgpOwotICAgIG1OZWVkQ0RSZXdyaXRlID0gdHJ1ZTsKLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLS8qCi0gKiBGbHVzaCBhbnkgcGVuZGluZyB3cml0ZXMuCi0gKgotICogSW4gcGFydGljdWxhciwgdGhpcyB3aWxsIGNydW5jaCBvdXQgZGVsZXRlZCBlbnRyaWVzLCBhbmQgd3JpdGUgdGhlCi0gKiBDZW50cmFsIERpcmVjdG9yeSBhbmQgRU9DRCBpZiB3ZSBoYXZlIHN0b21wZWQgb24gdGhlbS4KLSAqLwotc3RhdHVzX3QgWmlwRmlsZTo6Zmx1c2godm9pZCkKLXsKLSAgICBzdGF0dXNfdCByZXN1bHQgPSBOT19FUlJPUjsKLSAgICBsb25nIGVvY2RQb3NuOwotICAgIGludCBpLCBjb3VudDsKLQotICAgIGlmIChtUmVhZE9ubHkpCi0gICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKLSAgICBpZiAoIW1OZWVkQ0RSZXdyaXRlKQotICAgICAgICByZXR1cm4gTk9fRVJST1I7Ci0KLSAgICBhc3NlcnQobVppcEZwICE9IE5VTEwpOwotCi0gICAgcmVzdWx0ID0gY3J1bmNoQXJjaGl2ZSgpOwotICAgIGlmIChyZXN1bHQgIT0gTk9fRVJST1IpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0KLSAgICBpZiAoZnNlZWsobVppcEZwLCBtRU9DRC5tQ2VudHJhbERpck9mZnNldCwgU0VFS19TRVQpICE9IDApCi0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotCi0gICAgY291bnQgPSBtRW50cmllcy5zaXplKCk7Ci0gICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLSAgICAgICAgWmlwRW50cnkqIHBFbnRyeSA9IG1FbnRyaWVzW2ldOwotICAgICAgICBwRW50cnktPm1DREUud3JpdGUobVppcEZwKTsKLSAgICB9Ci0KLSAgICBlb2NkUG9zbiA9IGZ0ZWxsKG1aaXBGcCk7Ci0gICAgbUVPQ0QubUNlbnRyYWxEaXJTaXplID0gZW9jZFBvc24gLSBtRU9DRC5tQ2VudHJhbERpck9mZnNldDsKLQotICAgIG1FT0NELndyaXRlKG1aaXBGcCk7Ci0KLSAgICAvKgotICAgICAqIElmIHdlIGhhZCBzb21lIHN0dWZmIGJsb2F0IHVwIGR1cmluZyBjb21wcmVzc2lvbiBhbmQgZ2V0IHJlcGxhY2VkCi0gICAgICogd2l0aCBwbGFpbiBmaWxlcywgb3IgaWYgd2UgZGVsZXRlZCBzb21lIGVudHJpZXMsIHRoZXJlJ3MgYSBsb3QKLSAgICAgKiBvZiB3YXN0ZWQgc3BhY2UgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS4gIFJlbW92ZSBpdCBub3cuCi0gICAgICovCi0gICAgaWYgKGZ0cnVuY2F0ZShmaWxlbm8obVppcEZwKSwgZnRlbGwobVppcEZwKSkgIT0gMCkgewotICAgICAgICBBTE9HVygiZnRydW5jYXRlIGZhaWxlZCAlbGQ6ICVzXG4iLCBmdGVsbChtWmlwRnApLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICAvLyBub3QgZmF0YWwKLSAgICB9Ci0KLSAgICAvKiBzaG91bGQgd2UgY2xlYXIgdGhlICJuZXdseSBhZGRlZCIgZmxhZyBpbiBhbGwgZW50cmllcyBub3c/ICovCi0KLSAgICBtTmVlZENEUmV3cml0ZSA9IGZhbHNlOwotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotLyoKLSAqIENydW5jaCBkZWxldGVkIGZpbGVzIG91dCBvZiBhbiBhcmNoaXZlIGJ5IHNoaWZ0aW5nIHRoZSBsYXRlciBmaWxlcyBkb3duLgotICoKLSAqIEJlY2F1c2Ugd2UncmUgbm90IHVzaW5nIGEgdGVtcCBmaWxlLCB3ZSBkbyB0aGUgb3BlcmF0aW9uIGluc2lkZSB0aGUKLSAqIGN1cnJlbnQgZmlsZS4KLSAqLwotc3RhdHVzX3QgWmlwRmlsZTo6Y3J1bmNoQXJjaGl2ZSh2b2lkKQotewotICAgIHN0YXR1c190IHJlc3VsdCA9IE5PX0VSUk9SOwotICAgIGludCBpLCBjb3VudDsKLSAgICBsb25nIGRlbENvdW50LCBhZGp1c3Q7Ci0KLSNpZiAwCi0gICAgcHJpbnRmKCJDT05URU5UUzpcbiIpOwotICAgIGZvciAoaSA9IDA7IGkgPCAoaW50KSBtRW50cmllcy5zaXplKCk7IGkrKykgewotICAgICAgICBwcmludGYoIiAlZDogbGZoT2ZmPSVsZCBkZWw9JWRcbiIsCi0gICAgICAgICAgICBpLCBtRW50cmllc1tpXS0+Z2V0TEZIT2Zmc2V0KCksIG1FbnRyaWVzW2ldLT5nZXREZWxldGVkKCkpOwotICAgIH0KLSAgICBwcmludGYoIiAgRU5EIGlzICVsZFxuIiwgKGxvbmcpIG1FT0NELm1DZW50cmFsRGlyT2Zmc2V0KTsKLSNlbmRpZgotCi0gICAgLyoKLSAgICAgKiBSb2xsIHRocm91Z2ggdGhlIHNldCBvZiBmaWxlcywgc2hpZnRpbmcgdGhlbSBhcyBhcHByb3ByaWF0ZS4gIFdlCi0gICAgICogY291bGQgcHJvYmFibHkgZ2V0IGEgc2xpZ2h0IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IGJ5IHNsaWRpbmcKLSAgICAgKiBtdWx0aXBsZSBmaWxlcyBkb3duIGF0IG9uY2UgKGJlY2F1c2Ugd2UgY291bGQgdXNlIGxhcmdlciByZWFkcwotICAgICAqIHdoZW4gb3BlcmF0aW5nIG9uIGJhdGNoZXMgb2Ygc21hbGwgZmlsZXMpLCBidXQgaXQncyBub3QgdGhhdCB1c2VmdWwuCi0gICAgICovCi0gICAgY291bnQgPSBtRW50cmllcy5zaXplKCk7Ci0gICAgZGVsQ291bnQgPSBhZGp1c3QgPSAwOwotICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Ci0gICAgICAgIFppcEVudHJ5KiBwRW50cnkgPSBtRW50cmllc1tpXTsKLSAgICAgICAgbG9uZyBzcGFuOwotCi0gICAgICAgIGlmIChwRW50cnktPmdldExGSE9mZnNldCgpICE9IDApIHsKLSAgICAgICAgICAgIGxvbmcgbmV4dE9mZnNldDsKLQotICAgICAgICAgICAgLyogR2V0IHRoZSBsZW5ndGggb2YgdGhpcyBlbnRyeSBieSBmaW5kaW5nIHRoZSBvZmZzZXQKLSAgICAgICAgICAgICAqIG9mIHRoZSBuZXh0IGVudHJ5LiAgRGlyZWN0b3J5IGVudHJpZXMgZG9uJ3QgaGF2ZQotICAgICAgICAgICAgICogZmlsZSBvZmZzZXRzLCBzbyB3ZSBuZWVkIHRvIGZpbmQgdGhlIG5leHQgbm9uLWRpcmVjdG9yeQotICAgICAgICAgICAgICogZW50cnkuCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIG5leHRPZmZzZXQgPSAwOwotICAgICAgICAgICAgZm9yIChpbnQgaWkgPSBpKzE7IG5leHRPZmZzZXQgPT0gMCAmJiBpaSA8IGNvdW50OyBpaSsrKQotICAgICAgICAgICAgICAgIG5leHRPZmZzZXQgPSBtRW50cmllc1tpaV0tPmdldExGSE9mZnNldCgpOwotICAgICAgICAgICAgaWYgKG5leHRPZmZzZXQgPT0gMCkKLSAgICAgICAgICAgICAgICBuZXh0T2Zmc2V0ID0gbUVPQ0QubUNlbnRyYWxEaXJPZmZzZXQ7Ci0gICAgICAgICAgICBzcGFuID0gbmV4dE9mZnNldCAtIHBFbnRyeS0+Z2V0TEZIT2Zmc2V0KCk7Ci0KLSAgICAgICAgICAgIGFzc2VydChzcGFuID49IFppcEVudHJ5OjpMb2NhbEZpbGVIZWFkZXI6OmtMRkhMZW4pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLyogVGhpcyBpcyBhIGRpcmVjdG9yeSBlbnRyeS4gIEl0IGRvZXNuJ3QgaGF2ZQotICAgICAgICAgICAgICogYW55IGFjdHVhbCBmaWxlIGNvbnRlbnRzLCBzbyB0aGVyZSdzIG5vIG5lZWQgdG8KLSAgICAgICAgICAgICAqIG1vdmUgYW55dGhpbmcuCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIHNwYW4gPSAwOwotICAgICAgICB9Ci0KLSAgICAgICAgLy9wcmludGYoIisrKyAlZDogb2ZmPSVsZCBzcGFuPSVsZCBkZWw9JWQgW2NvdW50PSVkXVxuIiwKLSAgICAgICAgLy8gICAgaSwgcEVudHJ5LT5nZXRMRkhPZmZzZXQoKSwgc3BhbiwgcEVudHJ5LT5nZXREZWxldGVkKCksIGNvdW50KTsKLQotICAgICAgICBpZiAocEVudHJ5LT5nZXREZWxldGVkKCkpIHsKLSAgICAgICAgICAgIGFkanVzdCArPSBzcGFuOwotICAgICAgICAgICAgZGVsQ291bnQrKzsKLQotICAgICAgICAgICAgZGVsZXRlIHBFbnRyeTsKLSAgICAgICAgICAgIG1FbnRyaWVzLnJlbW92ZUF0KGkpOwotCi0gICAgICAgICAgICAvKiBhZGp1c3QgbG9vcCBjb250cm9sICovCi0gICAgICAgICAgICBjb3VudC0tOwotICAgICAgICAgICAgaS0tOwotICAgICAgICB9IGVsc2UgaWYgKHNwYW4gIT0gMCAmJiBhZGp1c3QgPiAwKSB7Ci0gICAgICAgICAgICAvKiBzaHVmZmxlIHRoaXMgZW50cnkgYmFjayAqLwotICAgICAgICAgICAgLy9wcmludGYoIisrKyBTaHVmZmxpbmcgJyVzJyBiYWNrICVsZFxuIiwKLSAgICAgICAgICAgIC8vICAgIHBFbnRyeS0+Z2V0RmlsZU5hbWUoKSwgYWRqdXN0KTsKLSAgICAgICAgICAgIHJlc3VsdCA9IGZpbGVtb3ZlKG1aaXBGcCwgcEVudHJ5LT5nZXRMRkhPZmZzZXQoKSAtIGFkanVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBFbnRyeS0+Z2V0TEZIT2Zmc2V0KCksIHNwYW4pOwotICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgICAgIC8qIHRoaXMgaXMgd2h5IHlvdSB1c2UgYSB0ZW1wIGZpbGUgKi8KLSAgICAgICAgICAgICAgICBBTE9HRSgiZXJyb3IgZHVyaW5nIGNydW5jaCAtIGFyY2hpdmUgaXMgdG9hc3RcbiIpOwotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHBFbnRyeS0+c2V0TEZIT2Zmc2V0KHBFbnRyeS0+Z2V0TEZIT2Zmc2V0KCkgLSBhZGp1c3QpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBGaXggRU9DRCBpbmZvLiAgV2UgaGF2ZSB0byB3YWl0IHVudGlsIHRoZSBlbmQgdG8gZG8gc29tZSBvZiB0aGlzCi0gICAgICogYmVjYXVzZSB3ZSB1c2UgbUNlbnRyYWxEaXJPZmZzZXQgdG8gZGV0ZXJtaW5lICJzcGFuIiBmb3IgdGhlCi0gICAgICogbGFzdCBlbnRyeS4KLSAgICAgKi8KLSAgICBtRU9DRC5tQ2VudHJhbERpck9mZnNldCAtPSBhZGp1c3Q7Ci0gICAgbUVPQ0QubU51bUVudHJpZXMgLT0gZGVsQ291bnQ7Ci0gICAgbUVPQ0QubVRvdGFsTnVtRW50cmllcyAtPSBkZWxDb3VudDsKLSAgICBtRU9DRC5tQ2VudHJhbERpclNpemUgPSAwOyAgLy8gbWFyayBpbnZhbGlkOyBzZXQgYnkgZmx1c2goKQotCi0gICAgYXNzZXJ0KG1FT0NELm1OdW1FbnRyaWVzID09IG1FT0NELm1Ub3RhbE51bUVudHJpZXMpOwotICAgIGFzc2VydChtRU9DRC5tTnVtRW50cmllcyA9PSBjb3VudCk7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0vKgotICogV29ya3MgbGlrZSBtZW1tb3ZlKCksIGJ1dCBvbiBwaWVjZXMgb2YgYSBmaWxlLgotICovCi1zdGF0dXNfdCBaaXBGaWxlOjpmaWxlbW92ZShGSUxFKiBmcCwgb2ZmX3QgZHN0LCBvZmZfdCBzcmMsIHNpemVfdCBuKQotewotICAgIGlmIChkc3QgPT0gc3JjIHx8IG4gPD0gMCkKLSAgICAgICAgcmV0dXJuIE5PX0VSUk9SOwotCi0gICAgdW5zaWduZWQgY2hhciByZWFkQnVmWzMyNzY4XTsKLQotICAgIGlmIChkc3QgPCBzcmMpIHsKLSAgICAgICAgLyogc2hpZnQgc3R1ZmYgdG93YXJkIHN0YXJ0IG9mIGZpbGU7IG11c3QgcmVhZCBmcm9tIHN0YXJ0ICovCi0gICAgICAgIHdoaWxlIChuICE9IDApIHsKLSAgICAgICAgICAgIHNpemVfdCBnZXRTaXplID0gc2l6ZW9mKHJlYWRCdWYpOwotICAgICAgICAgICAgaWYgKGdldFNpemUgPiBuKQotICAgICAgICAgICAgICAgIGdldFNpemUgPSBuOwotCi0gICAgICAgICAgICBpZiAoZnNlZWsoZnAsIChsb25nKSBzcmMsIFNFRUtfU0VUKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgQUxPR0QoImZpbGVtb3ZlIHNyYyBzZWVrICVsZCBmYWlsZWRcbiIsIChsb25nKSBzcmMpOwotICAgICAgICAgICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoZnJlYWQocmVhZEJ1ZiwgMSwgZ2V0U2l6ZSwgZnApICE9IGdldFNpemUpIHsKLSAgICAgICAgICAgICAgICBBTE9HRCgiZmlsZW1vdmUgcmVhZCAlbGQgb2ZmPSVsZCBmYWlsZWRcbiIsCi0gICAgICAgICAgICAgICAgICAgIChsb25nKSBnZXRTaXplLCAobG9uZykgc3JjKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKGZzZWVrKGZwLCAobG9uZykgZHN0LCBTRUVLX1NFVCkgIT0gMCkgewotICAgICAgICAgICAgICAgIEFMT0dEKCJmaWxlbW92ZSBkc3Qgc2VlayAlbGQgZmFpbGVkXG4iLCAobG9uZykgZHN0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKGZ3cml0ZShyZWFkQnVmLCAxLCBnZXRTaXplLCBmcCkgIT0gZ2V0U2l6ZSkgewotICAgICAgICAgICAgICAgIEFMT0dEKCJmaWxlbW92ZSB3cml0ZSAlbGQgb2ZmPSVsZCBmYWlsZWRcbiIsCi0gICAgICAgICAgICAgICAgICAgIChsb25nKSBnZXRTaXplLCAobG9uZykgZHN0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc3JjICs9IGdldFNpemU7Ci0gICAgICAgICAgICBkc3QgKz0gZ2V0U2l6ZTsKLSAgICAgICAgICAgIG4gLT0gZ2V0U2l6ZTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8qIHNoaWZ0IHN0dWZmIHRvd2FyZCBlbmQgb2YgZmlsZTsgbXVzdCByZWFkIGZyb20gZW5kICovCi0gICAgICAgIGFzc2VydChmYWxzZSk7ICAgICAgLy8gd3JpdGUgdGhpcyBzb21lZGF5LCBtYXliZQotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICB9Ci0KLSAgICByZXR1cm4gTk9fRVJST1I7Ci19Ci0KLQotLyoKLSAqIEdldCB0aGUgbW9kaWZpY2F0aW9uIHRpbWUgZnJvbSBhIGZpbGUgZGVzY3JpcHRvci4KLSAqLwotdGltZV90IFppcEZpbGU6OmdldE1vZFRpbWUoaW50IGZkKQotewotICAgIHN0cnVjdCBzdGF0IHNiOwotCi0gICAgaWYgKGZzdGF0KGZkLCAmc2IpIDwgMCkgewotICAgICAgICBBTE9HRCgiSEVZOiBmc3RhdCBvbiBmZCAlZCBmYWlsZWRcbiIsIGZkKTsKLSAgICAgICAgcmV0dXJuICh0aW1lX3QpIC0xOwotICAgIH0KLQotICAgIHJldHVybiBzYi5zdF9tdGltZTsKLX0KLQotCi0jaWYgMCAgICAgICAvKiB0aGlzIGlzIGEgYmFkIGlkZWEgKi8KLS8qCi0gKiBHZXQgYSBjb3B5IG9mIHRoZSBaaXAgZmlsZSBkZXNjcmlwdG9yLgotICoKLSAqIFdlIGRvbid0IGFsbG93IHRoaXMgaWYgdGhlIGZpbGUgd2FzIG9wZW5lZCByZWFkLXdyaXRlIGJlY2F1c2Ugd2UgdGVuZAotICogdG8gbGVhdmUgdGhlIGZpbGUgY29udGVudHMgaW4gYW4gdW5jZXJ0YWluIHN0YXRlIGJldHdlZW4gY2FsbHMgdG8KLSAqIGZsdXNoKCkuICBUaGUgZHVwbGljYXRlZCBmaWxlIGRlc2NyaXB0b3Igc2hvdWxkIG9ubHkgYmUgdmFsaWQgZm9yIHJlYWRzLgotICovCi1pbnQgWmlwRmlsZTo6Z2V0WmlwRmQodm9pZCkgY29uc3QKLXsKLSAgICBpZiAoIW1SZWFkT25seSkKLSAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOwotICAgIGFzc2VydChtWmlwRnAgIT0gTlVMTCk7Ci0KLSAgICBpbnQgZmQ7Ci0gICAgZmQgPSBkdXAoZmlsZW5vKG1aaXBGcCkpOwotICAgIGlmIChmZCA8IDApIHsKLSAgICAgICAgQUxPR0QoImRpZG4ndCB3b3JrLCBlcnJubz0lZFxuIiwgZXJybm8pOwotICAgIH0KLQotICAgIHJldHVybiBmZDsKLX0KLSNlbmRpZgotCi0KLSNpZiAwCi0vKgotICogRXhwYW5kIGRhdGEuCi0gKi8KLWJvb2wgWmlwRmlsZTo6dW5jb21wcmVzcyhjb25zdCBaaXBFbnRyeSogcEVudHJ5LCB2b2lkKiBidWYpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotI2VuZGlmCi0KLS8vIGZyZWUgdGhlIG1lbW9yeSB3aGVuIHlvdSdyZSBkb25lCi12b2lkKiBaaXBGaWxlOjp1bmNvbXByZXNzKGNvbnN0IFppcEVudHJ5KiBlbnRyeSkKLXsKLSAgICBzaXplX3QgdW5sZW4gPSBlbnRyeS0+Z2V0VW5jb21wcmVzc2VkTGVuKCk7Ci0gICAgc2l6ZV90IGNsZW4gPSBlbnRyeS0+Z2V0Q29tcHJlc3NlZExlbigpOwotCi0gICAgdm9pZCogYnVmID0gbWFsbG9jKHVubGVuKTsKLSAgICBpZiAoYnVmID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgZnNlZWsobVppcEZwLCAwLCBTRUVLX1NFVCk7Ci0KLSAgICBvZmZfdCBvZmZzZXQgPSBlbnRyeS0+Z2V0RmlsZU9mZnNldCgpOwotICAgIGlmIChmc2VlayhtWmlwRnAsIG9mZnNldCwgU0VFS19TRVQpICE9IDApIHsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIHN3aXRjaCAoZW50cnktPmdldENvbXByZXNzaW9uTWV0aG9kKCkpCi0gICAgewotICAgICAgICBjYXNlIFppcEVudHJ5OjprQ29tcHJlc3NTdG9yZWQ6IHsKLSAgICAgICAgICAgIHNzaXplX3QgYW10ID0gZnJlYWQoYnVmLCAxLCB1bmxlbiwgbVppcEZwKTsKLSAgICAgICAgICAgIGlmIChhbXQgIT0gKHNzaXplX3QpdW5sZW4pIHsKLSAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICB9Ci0jaWYgMAotICAgICAgICAgICAgcHJpbnRmKCJkYXRhLi4uXG4iKTsKLSAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHAgPSAodW5zaWduZWQgY2hhciopYnVmOwotICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogZW5kID0gcCt1bmxlbjsKLSAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTwzMiAmJiBwIDwgZW5kOyBpKyspIHsKLSAgICAgICAgICAgICAgICBwcmludGYoIjB4JTA4eCAiLCAoaW50KShvZmZzZXQrKGkqMHgxMCkpKTsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8MHgxMCAmJiBwIDwgZW5kOyBqKyspIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgJTAyeCIsICpwKTsKLSAgICAgICAgICAgICAgICAgICAgcCsrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwcmludGYoIlxuIik7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLQotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgWmlwRW50cnk6OmtDb21wcmVzc0RlZmxhdGVkOiB7Ci0gICAgICAgICAgICBpZiAoIVppcFV0aWxzOjppbmZsYXRlVG9CdWZmZXIobVppcEZwLCBidWYsIHVubGVuLCBjbGVuKSkgewotICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgZ290byBiYWlsOwotICAgIH0KLSAgICByZXR1cm4gYnVmOwotCi1iYWlsOgotICAgIGZyZWUoYnVmKTsKLSAgICByZXR1cm4gTlVMTDsKLX0KLQotCi0vKgotICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiAgICAgIFppcEZpbGU6OkVuZE9mQ2VudHJhbERpcgotICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKi8KLQotLyoKLSAqIFJlYWQgdGhlIGVuZC1vZi1jZW50cmFsLWRpciBmaWVsZHMuCi0gKgotICogImJ1ZiIgc2hvdWxkIGJlIHBvc2l0aW9uZWQgYXQgdGhlIEVPQ0Qgc2lnbmF0dXJlLCBhbmQgc2hvdWxkIGNvbnRhaW4KLSAqIHRoZSBlbnRpcmUgRU9DRCBhcmVhIGluY2x1ZGluZyB0aGUgY29tbWVudC4KLSAqLwotc3RhdHVzX3QgWmlwRmlsZTo6RW5kT2ZDZW50cmFsRGlyOjpyZWFkQnVmKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ1ZiwgaW50IGxlbikKLXsKLSAgICAvKiBkb24ndCBhbGxvdyByZS11c2UgKi8KLSAgICBhc3NlcnQobUNvbW1lbnQgPT0gTlVMTCk7Ci0KLSAgICBpZiAobGVuIDwga0VPQ0RMZW4pIHsKLSAgICAgICAgLyogbG9va3MgbGlrZSBaSVAgZmlsZSBnb3QgdHJ1bmNhdGVkICovCi0gICAgICAgIEFMT0dEKCIgWmlwIEVPQ0Q6IGV4cGVjdGVkID49ICVkIGJ5dGVzLCBmb3VuZCAlZFxuIiwKLSAgICAgICAgICAgIGtFT0NETGVuLCBsZW4pOwotICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047Ci0gICAgfQotCi0gICAgLyogdGhpcyBzaG91bGQgcHJvYmFibHkgYmUgYW4gYXNzZXJ0KCkgKi8KLSAgICBpZiAoWmlwRW50cnk6OmdldExvbmdMRSgmYnVmWzB4MDBdKSAhPSBrU2lnbmF0dXJlKQotICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLQotICAgIG1EaXNrTnVtYmVyID0gWmlwRW50cnk6OmdldFNob3J0TEUoJmJ1ZlsweDA0XSk7Ci0gICAgbURpc2tXaXRoQ2VudHJhbERpciA9IFppcEVudHJ5OjpnZXRTaG9ydExFKCZidWZbMHgwNl0pOwotICAgIG1OdW1FbnRyaWVzID0gWmlwRW50cnk6OmdldFNob3J0TEUoJmJ1ZlsweDA4XSk7Ci0gICAgbVRvdGFsTnVtRW50cmllcyA9IFppcEVudHJ5OjpnZXRTaG9ydExFKCZidWZbMHgwYV0pOwotICAgIG1DZW50cmFsRGlyU2l6ZSA9IFppcEVudHJ5OjpnZXRMb25nTEUoJmJ1ZlsweDBjXSk7Ci0gICAgbUNlbnRyYWxEaXJPZmZzZXQgPSBaaXBFbnRyeTo6Z2V0TG9uZ0xFKCZidWZbMHgxMF0pOwotICAgIG1Db21tZW50TGVuID0gWmlwRW50cnk6OmdldFNob3J0TEUoJmJ1ZlsweDE0XSk7Ci0KLSAgICAvLyBUT0RPOiB2YWxpZGF0ZSBtQ2VudHJhbERpck9mZnNldAotCi0gICAgaWYgKG1Db21tZW50TGVuID4gMCkgewotICAgICAgICBpZiAoa0VPQ0RMZW4gKyBtQ29tbWVudExlbiA+IGxlbikgewotICAgICAgICAgICAgQUxPR0QoIkVPQ0QoJWQpICsgY29tbWVudCglZCkgZXhjZWVkcyBsZW4gKCVkKVxuIiwKLSAgICAgICAgICAgICAgICBrRU9DRExlbiwgbUNvbW1lbnRMZW4sIGxlbik7Ci0gICAgICAgICAgICByZXR1cm4gVU5LTk9XTl9FUlJPUjsKLSAgICAgICAgfQotICAgICAgICBtQ29tbWVudCA9IG5ldyB1bnNpZ25lZCBjaGFyW21Db21tZW50TGVuXTsKLSAgICAgICAgbWVtY3B5KG1Db21tZW50LCBidWYgKyBrRU9DRExlbiwgbUNvbW1lbnRMZW4pOwotICAgIH0KLQotICAgIHJldHVybiBOT19FUlJPUjsKLX0KLQotLyoKLSAqIFdyaXRlIGFuIGVuZC1vZi1jZW50cmFsLWRpcmVjdG9yeSBzZWN0aW9uLgotICovCi1zdGF0dXNfdCBaaXBGaWxlOjpFbmRPZkNlbnRyYWxEaXI6OndyaXRlKEZJTEUqIGZwKQotewotICAgIHVuc2lnbmVkIGNoYXIgYnVmW2tFT0NETGVuXTsKLQotICAgIFppcEVudHJ5OjpwdXRMb25nTEUoJmJ1ZlsweDAwXSwga1NpZ25hdHVyZSk7Ci0gICAgWmlwRW50cnk6OnB1dFNob3J0TEUoJmJ1ZlsweDA0XSwgbURpc2tOdW1iZXIpOwotICAgIFppcEVudHJ5OjpwdXRTaG9ydExFKCZidWZbMHgwNl0sIG1EaXNrV2l0aENlbnRyYWxEaXIpOwotICAgIFppcEVudHJ5OjpwdXRTaG9ydExFKCZidWZbMHgwOF0sIG1OdW1FbnRyaWVzKTsKLSAgICBaaXBFbnRyeTo6cHV0U2hvcnRMRSgmYnVmWzB4MGFdLCBtVG90YWxOdW1FbnRyaWVzKTsKLSAgICBaaXBFbnRyeTo6cHV0TG9uZ0xFKCZidWZbMHgwY10sIG1DZW50cmFsRGlyU2l6ZSk7Ci0gICAgWmlwRW50cnk6OnB1dExvbmdMRSgmYnVmWzB4MTBdLCBtQ2VudHJhbERpck9mZnNldCk7Ci0gICAgWmlwRW50cnk6OnB1dFNob3J0TEUoJmJ1ZlsweDE0XSwgbUNvbW1lbnRMZW4pOwotCi0gICAgaWYgKGZ3cml0ZShidWYsIDEsIGtFT0NETGVuLCBmcCkgIT0ga0VPQ0RMZW4pCi0gICAgICAgIHJldHVybiBVTktOT1dOX0VSUk9SOwotICAgIGlmIChtQ29tbWVudExlbiA+IDApIHsKLSAgICAgICAgYXNzZXJ0KG1Db21tZW50ICE9IE5VTEwpOwotICAgICAgICBpZiAoZndyaXRlKG1Db21tZW50LCBtQ29tbWVudExlbiwgMSwgZnApICE9IG1Db21tZW50TGVuKQotICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fRVJST1I7Ci0gICAgfQotCi0gICAgcmV0dXJuIE5PX0VSUk9SOwotfQotCi0vKgotICogRHVtcCB0aGUgY29udGVudHMgb2YgYW4gRW5kT2ZDZW50cmFsRGlyIG9iamVjdC4KLSAqLwotdm9pZCBaaXBGaWxlOjpFbmRPZkNlbnRyYWxEaXI6OmR1bXAodm9pZCkgY29uc3QKLXsKLSAgICBBTE9HRCgiIEVuZE9mQ2VudHJhbERpciBjb250ZW50czpcbiIpOwotICAgIEFMT0dEKCIgIGRpc2tOdW09JXUgZGlza1dDRD0ldSBudW1FbnQ9JXUgdG90YWxOdW1FbnQ9JXVcbiIsCi0gICAgICAgIG1EaXNrTnVtYmVyLCBtRGlza1dpdGhDZW50cmFsRGlyLCBtTnVtRW50cmllcywgbVRvdGFsTnVtRW50cmllcyk7Ci0gICAgQUxPR0QoIiAgY2VudERpclNpemU9JWx1IGNlbnREaXJPZmY9JWx1IGNvbW1lbnRMZW49JXVcbiIsCi0gICAgICAgIG1DZW50cmFsRGlyU2l6ZSwgbUNlbnRyYWxEaXJPZmZzZXQsIG1Db21tZW50TGVuKTsKLX0KLQpkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC9aaXBGaWxlLmggYi90b29scy9hYXB0L1ppcEZpbGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzg3NzU1MC4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L1ppcEZpbGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDI3MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotLy8KLS8vIEdlbmVyYWwtcHVycG9zZSBaaXAgYXJjaGl2ZSBhY2Nlc3MuICBUaGlzIGNsYXNzIGFsbG93cyBib3RoIHJlYWRpbmcgYW5kCi0vLyB3cml0aW5nIHRvIFppcCBhcmNoaXZlcywgaW5jbHVkaW5nIGRlbGV0aW9uIG9mIGV4aXN0aW5nIGVudHJpZXMuCi0vLwotI2lmbmRlZiBfX0xJQlNfWklQRklMRV9ICi0jZGVmaW5lIF9fTElCU19aSVBGSUxFX0gKLQotI2luY2x1ZGUgPHV0aWxzL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHV0aWxzL0Vycm9ycy5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0KLSNpbmNsdWRlICJaaXBFbnRyeS5oIgotCi1uYW1lc3BhY2UgYW5kcm9pZCB7Ci0KLS8qCi0gKiBNYW5pcHVsYXRlIGEgWmlwIGFyY2hpdmUuCi0gKgotICogU29tZSBjaGFuZ2VzIHdpbGwgbm90IGJlIHZpc2libGUgaW4gdGhlIHVudGlsIHVudGlsICJmbHVzaCIgaXMgY2FsbGVkLgotICoKLSAqIFRoZSBjb3JyZWN0IHdheSB0byB1cGRhdGUgYSBmaWxlIGFyY2hpdmUgaXMgdG8gbWFrZSBhbGwgY2hhbmdlcyB0byBhCi0gKiBjb3B5IG9mIHRoZSBhcmNoaXZlIGluIGEgdGVtcG9yYXJ5IGZpbGUsIGFuZCB0aGVuIHVubGluay9yZW5hbWUgb3ZlcgotICogdGhlIG9yaWdpbmFsIGFmdGVyIGV2ZXJ5dGhpbmcgY29tcGxldGVzLiAgQmVjYXVzZSB3ZSdyZSBvbmx5IGludGVyZXN0ZWQKLSAqIGluIHVzaW5nIHRoaXMgZm9yIHBhY2thZ2luZywgd2UgZG9uJ3Qgd29ycnkgYWJvdXQgc3VjaCB0aGluZ3MuICBDcmFzaGluZwotICogYWZ0ZXIgbWFraW5nIGNoYW5nZXMgYW5kIGJlZm9yZSBmbHVzaCgpIGNvbXBsZXRlcyBjb3VsZCBsZWF2ZSB1cyB3aXRoCi0gKiBhbiB1bnVzYWJsZSBaaXAgYXJjaGl2ZS4KLSAqLwotY2xhc3MgWmlwRmlsZSB7Ci1wdWJsaWM6Ci0gICAgWmlwRmlsZSh2b2lkKQotICAgICAgOiBtWmlwRnAoTlVMTCksIG1SZWFkT25seShmYWxzZSksIG1OZWVkQ0RSZXdyaXRlKGZhbHNlKQotICAgICAge30KLSAgICB+WmlwRmlsZSh2b2lkKSB7Ci0gICAgICAgIGlmICghbVJlYWRPbmx5KQotICAgICAgICAgICAgZmx1c2goKTsKLSAgICAgICAgaWYgKG1aaXBGcCAhPSBOVUxMKQotICAgICAgICAgICAgZmNsb3NlKG1aaXBGcCk7Ci0gICAgICAgIGRpc2NhcmRFbnRyaWVzKCk7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBPcGVuIGEgbmV3IG9yIGV4aXN0aW5nIGFyY2hpdmUuCi0gICAgICovCi0gICAgZW51bSB7Ci0gICAgICAgIGtPcGVuUmVhZE9ubHkgICA9IDB4MDEsCi0gICAgICAgIGtPcGVuUmVhZFdyaXRlICA9IDB4MDIsCi0gICAgICAgIGtPcGVuQ3JlYXRlICAgICA9IDB4MDQsICAgICAvLyBjcmVhdGUgaWYgaXQgZG9lc24ndCBleGlzdAotICAgICAgICBrT3BlblRydW5jYXRlICAgPSAweDA4LCAgICAgLy8gaWYgaXQgZXhpc3RzLCBlbXB0eSBpdAotICAgIH07Ci0gICAgc3RhdHVzX3Qgb3Blbihjb25zdCBjaGFyKiB6aXBGaWxlTmFtZSwgaW50IGZsYWdzKTsKLQotICAgIC8qCi0gICAgICogQWRkIGEgZmlsZSB0byB0aGUgZW5kIG9mIHRoZSBhcmNoaXZlLiAgU3BlY2lmeSB3aGV0aGVyIHlvdSB3YW50IHRoZQotICAgICAqIGxpYnJhcnkgdG8gdHJ5IHRvIHN0b3JlIGl0IGNvbXByZXNzZWQuCi0gICAgICoKLSAgICAgKiBJZiAic3RvcmFnZU5hbWUiIGlzIHNwZWNpZmllZCwgdGhlIGFyY2hpdmUgd2lsbCB1c2UgdGhhdCBpbnN0ZWFkCi0gICAgICogb2YgImZpbGVOYW1lIi4KLSAgICAgKgotICAgICAqIElmIHRoZXJlIGlzIGFscmVhZHkgYW4gZW50cnkgd2l0aCB0aGUgc2FtZSBuYW1lLCB0aGUgY2FsbCBmYWlscy4KLSAgICAgKiBFeGlzdGluZyBlbnRyaWVzIHdpdGggdGhlIHNhbWUgbmFtZSBtdXN0IGJlIHJlbW92ZWQgZmlyc3QuCi0gICAgICoKLSAgICAgKiBJZiAicHBFbnRyeSIgaXMgbm9uLU5VTEwsIGEgcG9pbnRlciB0byB0aGUgbmV3IGVudHJ5IHdpbGwgYmUgcmV0dXJuZWQuCi0gICAgICovCi0gICAgc3RhdHVzX3QgYWRkKGNvbnN0IGNoYXIqIGZpbGVOYW1lLCBpbnQgY29tcHJlc3Npb25NZXRob2QsCi0gICAgICAgIFppcEVudHJ5KiogcHBFbnRyeSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZGQoZmlsZU5hbWUsIGZpbGVOYW1lLCBjb21wcmVzc2lvbk1ldGhvZCwgcHBFbnRyeSk7Ci0gICAgfQotICAgIHN0YXR1c190IGFkZChjb25zdCBjaGFyKiBmaWxlTmFtZSwgY29uc3QgY2hhciogc3RvcmFnZU5hbWUsCi0gICAgICAgIGludCBjb21wcmVzc2lvbk1ldGhvZCwgWmlwRW50cnkqKiBwcEVudHJ5KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkZENvbW1vbihmaWxlTmFtZSwgTlVMTCwgMCwgc3RvcmFnZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgWmlwRW50cnk6OmtDb21wcmVzc1N0b3JlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2lvbk1ldGhvZCwgcHBFbnRyeSk7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBBZGQgYSBmaWxlIHRoYXQgaXMgYWxyZWFkeSBjb21wcmVzc2VkIHdpdGggZ3ppcC4KLSAgICAgKgotICAgICAqIElmICJwcEVudHJ5IiBpcyBub24tTlVMTCwgYSBwb2ludGVyIHRvIHRoZSBuZXcgZW50cnkgd2lsbCBiZSByZXR1cm5lZC4KLSAgICAgKi8KLSAgICBzdGF0dXNfdCBhZGRHemlwKGNvbnN0IGNoYXIqIGZpbGVOYW1lLCBjb25zdCBjaGFyKiBzdG9yYWdlTmFtZSwKLSAgICAgICAgWmlwRW50cnkqKiBwcEVudHJ5KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkZENvbW1vbihmaWxlTmFtZSwgTlVMTCwgMCwgc3RvcmFnZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgWmlwRW50cnk6OmtDb21wcmVzc0RlZmxhdGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgIFppcEVudHJ5OjprQ29tcHJlc3NEZWZsYXRlZCwgcHBFbnRyeSk7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBBZGQgYSBmaWxlIGZyb20gYW4gaW4tbWVtb3J5IGRhdGEgYnVmZmVyLgotICAgICAqCi0gICAgICogSWYgInBwRW50cnkiIGlzIG5vbi1OVUxMLCBhIHBvaW50ZXIgdG8gdGhlIG5ldyBlbnRyeSB3aWxsIGJlIHJldHVybmVkLgotICAgICAqLwotICAgIHN0YXR1c190IGFkZChjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciogc3RvcmFnZU5hbWUsCi0gICAgICAgIGludCBjb21wcmVzc2lvbk1ldGhvZCwgWmlwRW50cnkqKiBwcEVudHJ5KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkZENvbW1vbihOVUxMLCBkYXRhLCBzaXplLCBzdG9yYWdlTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBaaXBFbnRyeTo6a0NvbXByZXNzU3RvcmVkLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXByZXNzaW9uTWV0aG9kLCBwcEVudHJ5KTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIEFkZCBhbiBlbnRyeSBieSBjb3B5aW5nIGl0IGZyb20gYW5vdGhlciB6aXAgZmlsZS4gIElmICJwYWRkaW5nIiBpcwotICAgICAqIG5vbnplcm8sIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGJ5dGVzIHdpbGwgYmUgYWRkZWQgdG8gdGhlICJleHRyYSIKLSAgICAgKiBmaWVsZCBpbiB0aGUgaGVhZGVyLgotICAgICAqCi0gICAgICogSWYgInBwRW50cnkiIGlzIG5vbi1OVUxMLCBhIHBvaW50ZXIgdG8gdGhlIG5ldyBlbnRyeSB3aWxsIGJlIHJldHVybmVkLgotICAgICAqLwotICAgIHN0YXR1c190IGFkZChjb25zdCBaaXBGaWxlKiBwU291cmNlWmlwLCBjb25zdCBaaXBFbnRyeSogcFNvdXJjZUVudHJ5LAotICAgICAgICBpbnQgcGFkZGluZywgWmlwRW50cnkqKiBwcEVudHJ5KTsKLQotICAgIC8qCi0gICAgICogTWFyayBhbiBlbnRyeSBhcyBoYXZpbmcgYmVlbiByZW1vdmVkLiAgSXQgaXMgbm90IGFjdHVhbGx5IGRlbGV0ZWQKLSAgICAgKiBmcm9tIHRoZSBhcmNoaXZlIG9yIG91ciBpbnRlcm5hbCBkYXRhIHN0cnVjdHVyZXMgdW50aWwgZmx1c2goKSBpcwotICAgICAqIGNhbGxlZC4KLSAgICAgKi8KLSAgICBzdGF0dXNfdCByZW1vdmUoWmlwRW50cnkqIHBFbnRyeSk7Ci0KLSAgICAvKgotICAgICAqIEZsdXNoIGNoYW5nZXMuICBJZiBtTmVlZENEUmV3cml0ZSBpcyBzZXQsIHRoaXMgd3JpdGVzIHRoZSBjZW50cmFsIGRpci4KLSAgICAgKi8KLSAgICBzdGF0dXNfdCBmbHVzaCh2b2lkKTsKLQotICAgIC8qCi0gICAgICogRXhwYW5kIHRoZSBkYXRhIGludG8gdGhlIGJ1ZmZlciBwcm92aWRlZC4gIFRoZSBidWZmZXIgbXVzdCBob2xkCi0gICAgICogYXQgbGVhc3QgPHVuY29tcHJlc3NlZCBsZW4+IGJ5dGVzLiAgVmFyaWF0aW9uIGV4cGFuZHMgZGlyZWN0bHkKLSAgICAgKiB0byBhIGZpbGUuCi0gICAgICoKLSAgICAgKiBSZXR1cm5zICJmYWxzZSIgaWYgYW4gZXJyb3Igd2FzIGVuY291bnRlcmVkIGluIHRoZSBjb21wcmVzc2VkIGRhdGEuCi0gICAgICovCi0gICAgLy9ib29sIHVuY29tcHJlc3MoY29uc3QgWmlwRW50cnkqIHBFbnRyeSwgdm9pZCogYnVmKSBjb25zdDsKLSAgICAvL2Jvb2wgdW5jb21wcmVzcyhjb25zdCBaaXBFbnRyeSogcEVudHJ5LCBGSUxFKiBmcCkgY29uc3Q7Ci0gICAgdm9pZCogdW5jb21wcmVzcyhjb25zdCBaaXBFbnRyeSogcEVudHJ5KTsKLQotICAgIC8qCi0gICAgICogR2V0IGFuIGVudHJ5LCBieSBuYW1lLiAgUmV0dXJucyBOVUxMIGlmIG5vdCBmb3VuZC4KLSAgICAgKgotICAgICAqIERvZXMgbm90IHJldHVybiBlbnRyaWVzIHBlbmRpbmcgZGVsZXRpb24uCi0gICAgICovCi0gICAgWmlwRW50cnkqIGdldEVudHJ5QnlOYW1lKGNvbnN0IGNoYXIqIGZpbGVOYW1lKSBjb25zdDsKLQotICAgIC8qCi0gICAgICogR2V0IHRoZSBOdGggZW50cnkgaW4gdGhlIGFyY2hpdmUuCi0gICAgICoKLSAgICAgKiBUaGlzIHdpbGwgcmV0dXJuIGFuIGVudHJ5IHRoYXQgaXMgcGVuZGluZyBkZWxldGlvbi4KLSAgICAgKi8KLSAgICBpbnQgZ2V0TnVtRW50cmllcyh2b2lkKSBjb25zdCB7IHJldHVybiBtRW50cmllcy5zaXplKCk7IH0KLSAgICBaaXBFbnRyeSogZ2V0RW50cnlCeUluZGV4KGludCBpZHgpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIC8qIHRoZXNlIGFyZSBwcml2YXRlIGFuZCBub3QgZGVmaW5lZCAqLwotICAgIFppcEZpbGUoY29uc3QgWmlwRmlsZSYgc3JjKTsKLSAgICBaaXBGaWxlJiBvcGVyYXRvcj0oY29uc3QgWmlwRmlsZSYgc3JjKTsKLQotICAgIGNsYXNzIEVuZE9mQ2VudHJhbERpciB7Ci0gICAgcHVibGljOgotICAgICAgICBFbmRPZkNlbnRyYWxEaXIodm9pZCkgOgotICAgICAgICAgICAgbURpc2tOdW1iZXIoMCksCi0gICAgICAgICAgICBtRGlza1dpdGhDZW50cmFsRGlyKDApLAotICAgICAgICAgICAgbU51bUVudHJpZXMoMCksCi0gICAgICAgICAgICBtVG90YWxOdW1FbnRyaWVzKDApLAotICAgICAgICAgICAgbUNlbnRyYWxEaXJTaXplKDApLAotICAgICAgICAgICAgbUNlbnRyYWxEaXJPZmZzZXQoMCksCi0gICAgICAgICAgICBtQ29tbWVudExlbigwKSwKLSAgICAgICAgICAgIG1Db21tZW50KE5VTEwpCi0gICAgICAgICAgICB7fQotICAgICAgICB2aXJ0dWFsIH5FbmRPZkNlbnRyYWxEaXIodm9pZCkgewotICAgICAgICAgICAgZGVsZXRlW10gbUNvbW1lbnQ7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0dXNfdCByZWFkQnVmKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ1ZiwgaW50IGxlbik7Ci0gICAgICAgIHN0YXR1c190IHdyaXRlKEZJTEUqIGZwKTsKLQotICAgICAgICAvL3Vuc2lnbmVkIGxvbmcgICBtU2lnbmF0dXJlOwotICAgICAgICB1bnNpZ25lZCBzaG9ydCAgbURpc2tOdW1iZXI7Ci0gICAgICAgIHVuc2lnbmVkIHNob3J0ICBtRGlza1dpdGhDZW50cmFsRGlyOwotICAgICAgICB1bnNpZ25lZCBzaG9ydCAgbU51bUVudHJpZXM7Ci0gICAgICAgIHVuc2lnbmVkIHNob3J0ICBtVG90YWxOdW1FbnRyaWVzOwotICAgICAgICB1bnNpZ25lZCBsb25nICAgbUNlbnRyYWxEaXJTaXplOwotICAgICAgICB1bnNpZ25lZCBsb25nICAgbUNlbnRyYWxEaXJPZmZzZXQ7ICAgICAgLy8gb2Zmc2V0IGZyb20gZmlyc3QgZGlzawotICAgICAgICB1bnNpZ25lZCBzaG9ydCAgbUNvbW1lbnRMZW47Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIqICBtQ29tbWVudDsKLQotICAgICAgICBlbnVtIHsKLSAgICAgICAgICAgIGtTaWduYXR1cmUgICAgICA9IDB4MDYwNTRiNTAsCi0gICAgICAgICAgICBrRU9DRExlbiAgICAgICAgPSAyMiwgICAgICAgLy8gRW5kT2ZDZW50cmFsRGlyIGxlbiwgZXhjbC4gY29tbWVudAotCi0gICAgICAgICAgICBrTWF4Q29tbWVudExlbiAgPSA2NTUzNSwgICAgLy8gbG9uZ2VzdCBwb3NzaWJsZSBpbiB1c2hvcnQKLSAgICAgICAgICAgIGtNYXhFT0NEU2VhcmNoICA9IGtNYXhDb21tZW50TGVuICsgRW5kT2ZDZW50cmFsRGlyOjprRU9DRExlbiwKLQotICAgICAgICB9OwotCi0gICAgICAgIHZvaWQgZHVtcCh2b2lkKSBjb25zdDsKLSAgICB9OwotCi0KLSAgICAvKiByZWFkIGFsbCBlbnRyaWVzIGluIHRoZSBjZW50cmFsIGRpciAqLwotICAgIHN0YXR1c190IHJlYWRDZW50cmFsRGlyKHZvaWQpOwotCi0gICAgLyogY3J1bmNoIGRlbGV0ZWQgZW50cmllcyBvdXQgKi8KLSAgICBzdGF0dXNfdCBjcnVuY2hBcmNoaXZlKHZvaWQpOwotCi0gICAgLyogY2xlYW4gdXAgbUVudHJpZXMgKi8KLSAgICB2b2lkIGRpc2NhcmRFbnRyaWVzKHZvaWQpOwotCi0gICAgLyogY29tbW9uIGhhbmRsZXIgZm9yIGFsbCAiYWRkIiBmdW5jdGlvbnMgKi8KLSAgICBzdGF0dXNfdCBhZGRDb21tb24oY29uc3QgY2hhciogZmlsZU5hbWUsIGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBzaXplLAotICAgICAgICBjb25zdCBjaGFyKiBzdG9yYWdlTmFtZSwgaW50IHNvdXJjZVR5cGUsIGludCBjb21wcmVzc2lvbk1ldGhvZCwKLSAgICAgICAgWmlwRW50cnkqKiBwcEVudHJ5KTsKLQotICAgIC8qIGNvcHkgYWxsIG9mICJzcmNGcCIgaW50byAiZHN0RnAiICovCi0gICAgc3RhdHVzX3QgY29weUZwVG9GcChGSUxFKiBkc3RGcCwgRklMRSogc3JjRnAsIHVuc2lnbmVkIGxvbmcqIHBDUkMzMik7Ci0gICAgLyogY29weSBhbGwgb2YgImRhdGEiIGludG8gImRzdEZwIiAqLwotICAgIHN0YXR1c190IGNvcHlEYXRhVG9GcChGSUxFKiBkc3RGcCwKLSAgICAgICAgY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IHNpemUsIHVuc2lnbmVkIGxvbmcqIHBDUkMzMik7Ci0gICAgLyogY29weSBzb21lIG9mICJzcmNGcCIgaW50byAiZHN0RnAiICovCi0gICAgc3RhdHVzX3QgY29weVBhcnRpYWxGcFRvRnAoRklMRSogZHN0RnAsIEZJTEUqIHNyY0ZwLCBsb25nIGxlbmd0aCwKLSAgICAgICAgdW5zaWduZWQgbG9uZyogcENSQzMyKTsKLSAgICAvKiBsaWtlIG1lbW1vdmUoKSwgYnV0IG9uIHBhcnRzIG9mIGEgc2luZ2xlIGZpbGUgKi8KLSAgICBzdGF0dXNfdCBmaWxlbW92ZShGSUxFKiBmcCwgb2ZmX3QgZGVzdCwgb2ZmX3Qgc3JjLCBzaXplX3Qgbik7Ci0gICAgLyogY29tcHJlc3MgYWxsIG9mICJzcmNGcCIgaW50byAiZHN0RnAiLCB1c2luZyBEZWZsYXRlICovCi0gICAgc3RhdHVzX3QgY29tcHJlc3NGcFRvRnAoRklMRSogZHN0RnAsIEZJTEUqIHNyY0ZwLAotICAgICAgICBjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSwgdW5zaWduZWQgbG9uZyogcENSQzMyKTsKLQotICAgIC8qIGdldCBtb2RpZmljYXRpb24gZGF0ZSBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yICovCi0gICAgdGltZV90IGdldE1vZFRpbWUoaW50IGZkKTsKLQotICAgIC8qCi0gICAgICogV2UgdXNlIHN0ZGlvIEZJTEUqLCB3aGljaCBnaXZlcyB1cyBidWZmZXJpbmcgYnV0IG1ha2VzIGRlYWxpbmcKLSAgICAgKiB3aXRoIGZpbGVzID4yR0IgYXdrd2FyZC4gIFVudGlsIHdlIHN1cHBvcnQgWmlwNjQsIHdlJ3JlIGZpbmUuCi0gICAgICovCi0gICAgRklMRSogICAgICAgICAgIG1aaXBGcDsgICAgICAgICAgICAgLy8gWmlwIGZpbGUgcG9pbnRlcgotCi0gICAgLyogb25lIG9mIHRoZXNlIHBlciBmaWxlICovCi0gICAgRW5kT2ZDZW50cmFsRGlyIG1FT0NEOwotCi0gICAgLyogZGlkIHdlIG9wZW4gdGhpcyByZWFkLW9ubHk/ICovCi0gICAgYm9vbCAgICAgICAgICAgIG1SZWFkT25seTsKLQotICAgIC8qIHNldCB0aGlzIHdoZW4gd2UgdHJhc2ggdGhlIGNlbnRyYWwgZGlyICovCi0gICAgYm9vbCAgICAgICAgICAgIG1OZWVkQ0RSZXdyaXRlOwotCi0gICAgLyoKLSAgICAgKiBPbmUgWmlwRW50cnkgcGVyIGVudHJ5IGluIHRoZSB6aXAgZmlsZS4gIEknbSB1c2luZyBwb2ludGVycyBpbnN0ZWFkCi0gICAgICogb2Ygb2JqZWN0cyBiZWNhdXNlIGl0J3MgZWFzaWVyIHRoYW4gbWFraW5nIG9wZXJhdG9yPSB3b3JrIGZvciB0aGUKLSAgICAgKiBjbGFzc2VzIGFuZCBzdWItY2xhc3Nlcy4KLSAgICAgKi8KLSAgICBWZWN0b3I8WmlwRW50cnkqPiAgIG1FbnRyaWVzOwotfTsKLQotfTsgLy8gbmFtZXNwYWNlIGFuZHJvaWQKLQotI2VuZGlmIC8vIF9fTElCU19aSVBGSUxFX0gKZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvcHJpbnRhcGsuY3BwIGIvdG9vbHMvYWFwdC9wcmludGFway5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjZjczZDguLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9wcmludGFway5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMjcgKzAsMCBAQAotI2luY2x1ZGUgPHV0aWxzL1Jlc291cmNlVHlwZXMuaD4KLSNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+Ci0jaW5jbHVkZSA8dXRpbHMvU3RyaW5nMTYuaD4KLSNpbmNsdWRlIDx6aXBmaWxlL3ppcGZpbGUuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwotCi1zdGF0aWMgaW50Ci11c2FnZSgpCi17Ci0gICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICAgICAidXNhZ2U6IGFwayBBUEtGSUxFXG4iCi0gICAgICAgICAgICAiXG4iCi0gICAgICAgICAgICAiQVBLRklMRSAgIGFuIGFuZHJvaWQgcGFja2dlIGZpbGUgcHJvZHVjZWQgYnkgYWFwdC5cbiIKLSAgICAgICAgICAgICk7Ci0gICAgcmV0dXJuIDE7Ci19Ci0KLQotaW50Ci1tYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKLXsKLSAgICBjb25zdCBjaGFyKiBmaWxlbmFtZTsKLSAgICBpbnQgZmQ7Ci0gICAgc3NpemVfdCBhbXQ7Ci0gICAgb2ZmX3Qgc2l6ZTsKLSAgICB2b2lkKiBidWY7Ci0gICAgemlwZmlsZV90IHppcDsKLSAgICB6aXBlbnRyeV90IGVudHJ5OwotICAgIHZvaWQqIGNvb2tpZTsKLSAgICB2b2lkKiByZXNmaWxlOwotICAgIGludCBidWZzaXplOwotICAgIGludCBlcnI7Ci0KLSAgICBpZiAoYXJnYyAhPSAyKSB7Ci0gICAgICAgIHJldHVybiB1c2FnZSgpOwotICAgIH0KLQotICAgIGZpbGVuYW1lID0gYXJndlsxXTsKLSAgICBmZCA9IG9wZW4oZmlsZW5hbWUsIE9fUkRPTkxZKTsKLSAgICBpZiAoZmQgPT0gLTEpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJhcGs6IGNvdWxkbid0IG9wZW4gZmlsZSBmb3IgcmVhZDogJXNcbiIsIGZpbGVuYW1lKTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgc2l6ZSA9IGxzZWVrKGZkLCAwLCBTRUVLX0VORCk7Ci0gICAgYW10ID0gbHNlZWsoZmQsIDAsIFNFRUtfU0VUKTsKLQotICAgIGlmIChzaXplIDwgMCB8fCBhbXQgPCAwKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiYXBrOiBlcnJvciBkZXRlcm1pbmluZyBmaWxlIHNpemU6ICVzXG4iLCBmaWxlbmFtZSk7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIGJ1ZiA9IG1hbGxvYyhzaXplKTsKLSAgICBpZiAoYnVmID09IE5VTEwpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJhcGs6IGZpbGUgdG9vIGJpZzogJXNcbiIsIGZpbGVuYW1lKTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgYW10ID0gcmVhZChmZCwgYnVmLCBzaXplKTsKLSAgICBpZiAoYW10ICE9IHNpemUpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJhcGs6IGVycm9yIHJlYWRpbmcgZmlsZTogJXNcbiIsIGZpbGVuYW1lKTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgY2xvc2UoZmQpOwotCi0gICAgemlwID0gaW5pdF96aXBmaWxlKGJ1Ziwgc2l6ZSk7Ci0gICAgaWYgKHppcCA9PSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiYXBrOiBmaWxlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHppcCBmaWxlOiAlc1xuIiwKLSAgICAgICAgICAgICAgICBmaWxlbmFtZSk7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIHByaW50ZigiZmlsZXM6XG4iKTsKLSAgICBjb29raWUgPSBOVUxMOwotICAgIHdoaWxlICgoZW50cnkgPSBpdGVyYXRlX3ppcGZpbGUoemlwLCAmY29va2llKSkpIHsKLSAgICAgICAgY2hhciogbmFtZSA9IGdldF96aXBlbnRyeV9uYW1lKGVudHJ5KTsKLSAgICAgICAgcHJpbnRmKCIgICVzXG4iLCBuYW1lKTsKLSAgICAgICAgZnJlZShuYW1lKTsKLSAgICB9Ci0KLSAgICBlbnRyeSA9IGxvb2t1cF96aXBlbnRyeSh6aXAsICJyZXNvdXJjZXMuYXJzYyIpOwotICAgIGlmIChlbnRyeSAhPSBOVUxMKSB7Ci0gICAgICAgIHNpemUgPSBnZXRfemlwZW50cnlfc2l6ZShlbnRyeSk7Ci0gICAgICAgIGJ1ZnNpemUgPSBzaXplICsgKHNpemUgLyAxMDAwKSArIDE7Ci0gICAgICAgIHJlc2ZpbGUgPSBtYWxsb2MoYnVmc2l6ZSk7Ci0KLSAgICAgICAgZXJyID0gZGVjb21wcmVzc196aXBlbnRyeShlbnRyeSwgcmVzZmlsZSwgYnVmc2l6ZSk7Ci0gICAgICAgIGlmIChlcnIgIT0gMCkgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJhcGs6IGVycm9yIGRlY29tcHJlc3NpbmcgcmVzb3VyY2VzLmFyc2MiKTsKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICB9Ci0KLSAgICAgICAgUmVzVGFibGUgcmVzKHJlc2ZpbGUsIHNpemUsIHJlc2ZpbGUpOwotICAgICAgICByZXMucHJpbnQoKTsKLSNpZiAwCi0gICAgICAgIHNpemVfdCB0YWJsZUNvdW50ID0gcmVzLmdldFRhYmxlQ291bnQoKTsKLSAgICAgICAgcHJpbnRmKCJUYWJsZXM6ICVkXG4iLCAoaW50KXRhYmxlQ291bnQpOwotICAgICAgICBmb3IgKHNpemVfdCB0YWJsZUluZGV4PTA7IHRhYmxlSW5kZXg8dGFibGVDb3VudDsgdGFibGVJbmRleCsrKSB7Ci0gICAgICAgICAgICBjb25zdCBSZXNTdHJpbmdQb29sKiBzdHJpbmdzID0gcmVzLmdldFRhYmxlU3RyaW5nQmxvY2sodGFibGVJbmRleCk7Ci0gICAgICAgICAgICBzaXplX3Qgc3RyaW5nQ291bnQgPSBzdHJpbmdzLT5zaXplKCk7Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCBzdHJpbmdJbmRleD0wOyBzdHJpbmdJbmRleDxzdHJpbmdDb3VudDsgc3RyaW5nSW5kZXgrKykgewotICAgICAgICAgICAgICAgIHNpemVfdCBsZW47Ci0gICAgICAgICAgICAgICAgY29uc3QgY2hhcjE2X3QqIGNoID0gc3RyaW5ncy0+c3RyaW5nQXQoc3RyaW5nSW5kZXgsICZsZW4pOwotICAgICAgICAgICAgICAgIFN0cmluZzggcyhTdHJpbmcxNihjaCwgbGVuKSk7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCIgIFslM2RdICVzXG4iLCAoaW50KXN0cmluZ0luZGV4LCBzLnN0cmluZygpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHNpemVfdCBiYXNlUGFja2FnZUNvdW50ID0gcmVzLmdldEJhc2VQYWNrYWdlQ291bnQoKTsKLSAgICAgICAgcHJpbnRmKCJCYXNlIFBhY2thZ2VzOiAlZFxuIiwgKGludCliYXNlUGFja2FnZUNvdW50KTsKLSAgICAgICAgZm9yIChzaXplX3QgYnBJbmRleD0wOyBicEluZGV4PGJhc2VQYWNrYWdlQ291bnQ7IGJwSW5kZXgrKykgewotICAgICAgICAgICAgY29uc3QgY2hhcjE2X3QqIGNoID0gcmVzLmdldEJhc2VQYWNrYWdlTmFtZShicEluZGV4KTsKLSAgICAgICAgICAgIFN0cmluZzggcyA9IFN0cmluZzgoU3RyaW5nMTYoY2gpKTsKLSAgICAgICAgICAgIHByaW50ZigiICBbJTNkXSAlc1xuIiwgKGludClicEluZGV4LCBzLnN0cmluZygpKTsKLSAgICAgICAgfQotI2VuZGlmCi0gICAgfQotCi0KLSAgICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvcHNldWRvbG9jYWxpemUuY3BwIGIvdG9vbHMvYWFwdC9wc2V1ZG9sb2NhbGl6ZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllNTBjNWEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC9wc2V1ZG9sb2NhbGl6ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotI2luY2x1ZGUgInBzZXVkb2xvY2FsaXplLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKgotcHNldWRvbG9jYWxpemVfY2hhcihjaGFyIGMpCi17Ci0gICAgc3dpdGNoIChjKSB7Ci0gICAgICAgIGNhc2UgJ2EnOiAgIHJldHVybiAiXHhjNFx4ODMiOwotICAgICAgICBjYXNlICdiJzogICByZXR1cm4gIlx4Y2ZceDg0IjsKLSAgICAgICAgY2FzZSAnYyc6ICAgcmV0dXJuICJceGM0XHg4YiI7Ci0gICAgICAgIGNhc2UgJ2QnOiAgIHJldHVybiAiXHhjNFx4OGYiOwotICAgICAgICBjYXNlICdlJzogICByZXR1cm4gIlx4YzRceDk5IjsKLSAgICAgICAgY2FzZSAnZic6ICAgcmV0dXJuICJceGM2XHg5MiI7Ci0gICAgICAgIGNhc2UgJ2cnOiAgIHJldHVybiAiXHhjNFx4OWQiOwotICAgICAgICBjYXNlICdoJzogICByZXR1cm4gIlx4ZDFceDliIjsKLSAgICAgICAgY2FzZSAnaSc6ICAgcmV0dXJuICJceGNmXHg4YSI7Ci0gICAgICAgIGNhc2UgJ2onOiAgIHJldHVybiAiXHhjNFx4YjUiOwotICAgICAgICBjYXNlICdrJzogICByZXR1cm4gIlx4YzRceGI4IjsKLSAgICAgICAgY2FzZSAnbCc6ICAgcmV0dXJuICJceGM0XHhiYSI7Ci0gICAgICAgIGNhc2UgJ20nOiAgIHJldHVybiAiXHhlMVx4YjhceGJmIjsKLSAgICAgICAgY2FzZSAnbic6ICAgcmV0dXJuICJceGQwXHhiOCI7Ci0gICAgICAgIGNhc2UgJ28nOiAgIHJldHVybiAiXHhjZlx4OGMiOwotICAgICAgICBjYXNlICdwJzogICByZXR1cm4gIlx4Y2ZceDgxIjsKLSAgICAgICAgY2FzZSAncSc6ICAgcmV0dXJuICJceDUxIjsKLSAgICAgICAgY2FzZSAncic6ICAgcmV0dXJuICJceGQyXHg5MSI7Ci0gICAgICAgIGNhc2UgJ3MnOiAgIHJldHVybiAiXHhjNVx4YTEiOwotICAgICAgICBjYXNlICd0JzogICByZXR1cm4gIlx4ZDFceDgyIjsKLSAgICAgICAgY2FzZSAndSc6ICAgcmV0dXJuICJceGNlXHhiMCI7Ci0gICAgICAgIGNhc2UgJ3YnOiAgIHJldHVybiAiXHg1NiI7Ci0gICAgICAgIGNhc2UgJ3cnOiAgIHJldHVybiAiXHhlMVx4YmFceDg1IjsKLSAgICAgICAgY2FzZSAneCc6ICAgcmV0dXJuICJceGQxXHg4NSI7Ci0gICAgICAgIGNhc2UgJ3knOiAgIHJldHVybiAiXHhlMVx4YmJceGIzIjsKLSAgICAgICAgY2FzZSAneic6ICAgcmV0dXJuICJceGM1XHhiYSI7Ci0gICAgICAgIGNhc2UgJ0EnOiAgIHJldHVybiAiXHhjM1x4ODUiOwotICAgICAgICBjYXNlICdCJzogICByZXR1cm4gIlx4Y2VceGIyIjsKLSAgICAgICAgY2FzZSAnQyc6ICAgcmV0dXJuICJceGM0XHg4OCI7Ci0gICAgICAgIGNhc2UgJ0QnOiAgIHJldHVybiAiXHhjNFx4OTAiOwotICAgICAgICBjYXNlICdFJzogICByZXR1cm4gIlx4ZDBceDg0IjsKLSAgICAgICAgY2FzZSAnRic6ICAgcmV0dXJuICJceGNlXHg5MyI7Ci0gICAgICAgIGNhc2UgJ0cnOiAgIHJldHVybiAiXHhjNFx4OWUiOwotICAgICAgICBjYXNlICdIJzogICByZXR1cm4gIlx4YzRceGE2IjsKLSAgICAgICAgY2FzZSAnSSc6ICAgcmV0dXJuICJceGQwXHg4NyI7Ci0gICAgICAgIGNhc2UgJ0onOiAgIHJldHVybiAiXHhjNFx4YjUiOwotICAgICAgICBjYXNlICdLJzogICByZXR1cm4gIlx4YzRceGI2IjsKLSAgICAgICAgY2FzZSAnTCc6ICAgcmV0dXJuICJceGM1XHg4MSI7Ci0gICAgICAgIGNhc2UgJ00nOiAgIHJldHVybiAiXHhlMVx4YjhceGJlIjsKLSAgICAgICAgY2FzZSAnTic6ICAgcmV0dXJuICJceGM1XHg4MyI7Ci0gICAgICAgIGNhc2UgJ08nOiAgIHJldHVybiAiXHhjZVx4OTgiOwotICAgICAgICBjYXNlICdQJzogICByZXR1cm4gIlx4Y2ZceDgxIjsKLSAgICAgICAgY2FzZSAnUSc6ICAgcmV0dXJuICJceDcxIjsKLSAgICAgICAgY2FzZSAnUic6ICAgcmV0dXJuICJceGQwXHhhZiI7Ci0gICAgICAgIGNhc2UgJ1MnOiAgIHJldHVybiAiXHhjOFx4OTgiOwotICAgICAgICBjYXNlICdUJzogICByZXR1cm4gIlx4YzVceGE2IjsKLSAgICAgICAgY2FzZSAnVSc6ICAgcmV0dXJuICJceGM1XHhhOCI7Ci0gICAgICAgIGNhc2UgJ1YnOiAgIHJldHVybiAiXHhjZVx4YmQiOwotICAgICAgICBjYXNlICdXJzogICByZXR1cm4gIlx4ZTFceGJhXHg4NCI7Ci0gICAgICAgIGNhc2UgJ1gnOiAgIHJldHVybiAiXHhjM1x4OTciOwotICAgICAgICBjYXNlICdZJzogICByZXR1cm4gIlx4YzJceGE1IjsKLSAgICAgICAgY2FzZSAnWic6ICAgcmV0dXJuICJceGM1XHhiZCI7Ci0gICAgICAgIGRlZmF1bHQ6ICAgIHJldHVybiBOVUxMOwotICAgIH0KLX0KLQotLyoqCi0gKiBDb252ZXJ0cyBjaGFyYWN0ZXJzIHNvIHRoZXkgbG9vayBsaWtlIHRoZXkndmUgYmVlbiBsb2NhbGl6ZWQuCi0gKgotICogTm90ZTogVGhpcyBsZWF2ZXMgZXNjYXBlIHNlcXVlbmNlcyB1bnRvdWNoZWQgc28gdGhleSBjYW4gbGF0ZXIgYmUKLSAqIHByb2Nlc3NlZCBieSBSZXNUYWJsZTo6Y29sbGVjdFN0cmluZyBpbiB0aGUgbm9ybWFsIHdheS4KLSAqLwotc3RyaW5nCi1wc2V1ZG9sb2NhbGl6ZV9zdHJpbmcoY29uc3Qgc3RyaW5nJiBzb3VyY2UpCi17Ci0gICAgY29uc3QgY2hhciogcyA9IHNvdXJjZS5jX3N0cigpOwotICAgIHN0cmluZyByZXN1bHQ7Ci0gICAgY29uc3Qgc2l6ZV90IEkgPSBzb3VyY2UubGVuZ3RoKCk7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPEk7IGkrKykgewotICAgICAgICBjaGFyIGMgPSBzW2ldOwotICAgICAgICBpZiAoYyA9PSAnXFwnKSB7Ci0gICAgICAgICAgICBpZiAoaTxJLTEpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ1xcJzsKLSAgICAgICAgICAgICAgICBpKys7Ci0gICAgICAgICAgICAgICAgYyA9IHNbaV07Ci0gICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3UnOgotICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBvbmUgdGFrZXMgdXAgNSBjaGFycwotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN0cmluZyhzK2ksIDUpOwotICAgICAgICAgICAgICAgICAgICAgICAgaSArPSA0OwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3QnOgotICAgICAgICAgICAgICAgICAgICBjYXNlICduJzoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAnIyc6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgJ0AnOgotICAgICAgICAgICAgICAgICAgICBjYXNlICc/JzoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAnIic6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1wnJzoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAnXFwnOgotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IGM7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc3VsdCArPSBjOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29uc3QgY2hhciogcCA9IHBzZXVkb2xvY2FsaXplX2NoYXIoYyk7Ci0gICAgICAgICAgICBpZiAocCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHA7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc3VsdCArPSBjOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy9wcmludGYoInJlc3VsdD1cJyVzXCdcbiIsIHJlc3VsdC5jX3N0cigpKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0KZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvcHNldWRvbG9jYWxpemUuaCBiL3Rvb2xzL2FhcHQvcHNldWRvbG9jYWxpemUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTRjYjAzNC4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L3BzZXVkb2xvY2FsaXplLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLSNpZm5kZWYgSE9TVF9QU0VVRE9MT0NBTElaRV9ICi0jZGVmaW5lIEhPU1RfUFNFVURPTE9DQUxJWkVfSAotCi0jaW5jbHVkZSA8c3RyaW5nPgotCi1zdGQ6OnN0cmluZyBwc2V1ZG9sb2NhbGl6ZV9zdHJpbmcoY29uc3Qgc3RkOjpzdHJpbmcmIHNvdXJjZSk7Ci0KLSNlbmRpZiAvLyBIT1NUX1BTRVVET0xPQ0FMSVpFX0gKLQpkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC9xc29ydF9yX2NvbXBhdC5jIGIvdG9vbHMvYWFwdC9xc29ydF9yX2NvbXBhdC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYThkYmU4Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvcXNvcnRfcl9jb21wYXQuYworKysgL2Rldi9udWxsCkBAIC0xLDkwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSAicXNvcnRfcl9jb21wYXQuaCIKLQotLyoKLSAqIE5vdGU6IFRoaXMgY29kZSBpcyBvbmx5IHVzZWQgb24gdGhlIGhvc3QsIGFuZCBpcyBwcmltYXJpbHkgaGVyZSBmb3IKLSAqIE1hYyBPUyBjb21wYXRpYmlsaXR5LiBBcHBhcmVudGx5LCBnbGliYyBhbmQgQXBwbGUncyBsaWJjIGRpc2FncmVlIG9uCi0gKiB0aGUgcGFyYW1ldGVyIG9yZGVyIGZvciBxc29ydF9yLgotICovCi0KLSNpZiBIQVZFX0JTRF9RU09SVF9SCi0KLS8qCi0gKiBCU0QgcXNvcnRfciBwYXJhbWV0ZXIgb3JkZXIgaXMgYXMgd2UgaGF2ZSBkZWZpbmVkIGhlcmUuCi0gKi8KLQotdm9pZCBxc29ydF9yX2NvbXBhdCh2b2lkKiBiYXNlLCBzaXplX3QgbmVsLCBzaXplX3Qgd2lkdGgsIHZvaWQqIHRodW5rLAotICAgICAgICBpbnQgKCpjb21wYXIpKHZvaWQqLCBjb25zdCB2b2lkKiAsIGNvbnN0IHZvaWQqKSkgewotICAgIHFzb3J0X3IoYmFzZSwgbmVsLCB3aWR0aCwgdGh1bmssIGNvbXBhcik7Ci19Ci0KLSNlbGlmIEhBVkVfR05VX1FTT1JUX1IKLQotLyoKLSAqIEdOVSBxc29ydF9yIHBhcmFtZXRlciBvcmRlciBwbGFjZXMgdGhlIHRodW5rIHBhcmFtZXRlciBsYXN0LgotICovCi0KLXN0cnVjdCBjb21wYXJfZGF0YSB7Ci0gICAgdm9pZCogdGh1bms7Ci0gICAgaW50ICgqY29tcGFyKSh2b2lkKiwgY29uc3Qgdm9pZCogLCBjb25zdCB2b2lkKik7Ci19OwotCi1zdGF0aWMgaW50IGNvbXBhcl93cmFwcGVyKGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZvaWQqIGIsIHZvaWQqIGRhdGEpIHsKLSAgICBzdHJ1Y3QgY29tcGFyX2RhdGEqIGNvbXBhcl9kYXRhID0gKHN0cnVjdCBjb21wYXJfZGF0YSopZGF0YTsKLSAgICByZXR1cm4gY29tcGFyX2RhdGEtPmNvbXBhcihjb21wYXJfZGF0YS0+dGh1bmssIGEsIGIpOwotfQotCi12b2lkIHFzb3J0X3JfY29tcGF0KHZvaWQqIGJhc2UsIHNpemVfdCBuZWwsIHNpemVfdCB3aWR0aCwgdm9pZCogdGh1bmssCi0gICAgICAgIGludCAoKmNvbXBhcikodm9pZCosIGNvbnN0IHZvaWQqICwgY29uc3Qgdm9pZCopKSB7Ci0gICAgc3RydWN0IGNvbXBhcl9kYXRhIGNvbXBhcl9kYXRhOwotICAgIGNvbXBhcl9kYXRhLnRodW5rID0gdGh1bms7Ci0gICAgY29tcGFyX2RhdGEuY29tcGFyID0gY29tcGFyOwotICAgIHFzb3J0X3IoYmFzZSwgbmVsLCB3aWR0aCwgY29tcGFyX3dyYXBwZXIsICZjb21wYXJfZGF0YSk7Ci19Ci0KLSNlbHNlCi0KLS8qCi0gKiBFbXVsYXRlIHFzb3J0X3IgdXNpbmcgdGhyZWFkIGxvY2FsIHN0b3JhZ2UgdG8gYWNjZXNzIHRoZSB0aHVuayBkYXRhLgotICovCi0KLSNpbmNsdWRlIDxjdXRpbHMvdGhyZWFkcy5oPgotCi1zdGF0aWMgdGhyZWFkX3N0b3JlX3QgY29tcGFyX2RhdGFfa2V5ID0gVEhSRUFEX1NUT1JFX0lOSVRJQUxJWkVSOwotCi1zdHJ1Y3QgY29tcGFyX2RhdGEgewotICAgIHZvaWQqIHRodW5rOwotICAgIGludCAoKmNvbXBhcikodm9pZCosIGNvbnN0IHZvaWQqICwgY29uc3Qgdm9pZCopOwotfTsKLQotc3RhdGljIGludCBjb21wYXJfd3JhcHBlcihjb25zdCB2b2lkKiBhLCBjb25zdCB2b2lkKiBiKSB7Ci0gICAgc3RydWN0IGNvbXBhcl9kYXRhKiBjb21wYXJfZGF0YSA9IChzdHJ1Y3QgY29tcGFyX2RhdGEqKXRocmVhZF9zdG9yZV9nZXQoJmNvbXBhcl9kYXRhX2tleSk7Ci0gICAgcmV0dXJuIGNvbXBhcl9kYXRhLT5jb21wYXIoY29tcGFyX2RhdGEtPnRodW5rLCBhLCBiKTsKLX0KLQotdm9pZCBxc29ydF9yX2NvbXBhdCh2b2lkKiBiYXNlLCBzaXplX3QgbmVsLCBzaXplX3Qgd2lkdGgsIHZvaWQqIHRodW5rLAotICAgICAgICBpbnQgKCpjb21wYXIpKHZvaWQqLCBjb25zdCB2b2lkKiAsIGNvbnN0IHZvaWQqKSkgewotICAgIHN0cnVjdCBjb21wYXJfZGF0YSBjb21wYXJfZGF0YTsKLSAgICBjb21wYXJfZGF0YS50aHVuayA9IHRodW5rOwotICAgIGNvbXBhcl9kYXRhLmNvbXBhciA9IGNvbXBhcjsKLSAgICB0aHJlYWRfc3RvcmVfc2V0KCZjb21wYXJfZGF0YV9rZXksICZjb21wYXJfZGF0YSwgTlVMTCk7Ci0gICAgcXNvcnQoYmFzZSwgbmVsLCB3aWR0aCwgY29tcGFyX3dyYXBwZXIpOwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvcXNvcnRfcl9jb21wYXQuaCBiL3Rvb2xzL2FhcHQvcXNvcnRfcl9jb21wYXQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTE0Zjk5OS4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L3Fzb3J0X3JfY29tcGF0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotLyoKLSAqIFByb3ZpZGVzIGEgcG9ydGFibGUgdmVyc2lvbiBvZiBxc29ydF9yLCBjYWxsZWQgcXNvcnRfcl9jb21wYXQsIHdoaWNoIGlzIGEKLSAqIHJlZW50cmFudCB2YXJpYW50IG9mIHFzb3J0IHRoYXQgcGFzc2VzIGEgdXNlciBkYXRhIHBvaW50ZXIgdG8gaXRzIGNvbXBhcmF0b3IuCi0gKiBUaGlzIGltcGxlbWVudGF0aW9uIGZvbGxvd3MgdGhlIEJTRCBwYXJhbWV0ZXIgY29udmVudGlvbi4KLSAqLwotCi0jaWZuZGVmIF9fX1FTT1JUX1JfQ09NUEFUX0gKLSNkZWZpbmUgX19fUVNPUlRfUl9DT01QQVRfSAotCi0jaW5jbHVkZSA8c3RkbGliLmg+Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotdm9pZCBxc29ydF9yX2NvbXBhdCh2b2lkKiBiYXNlLCBzaXplX3QgbmVsLCBzaXplX3Qgd2lkdGgsIHZvaWQqIHRodW5rLAotICAgICAgICBpbnQgKCpjb21wYXIpKHZvaWQqLCBjb25zdCB2b2lkKiAsIGNvbnN0IHZvaWQqICkpOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLy8gX19fUVNPUlRfUl9DT01QQVRfSApkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC90ZXN0cy9DcnVuY2hDYWNoZV90ZXN0LmNwcCBiL3Rvb2xzL2FhcHQvdGVzdHMvQ3J1bmNoQ2FjaGVfdGVzdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwYjUwMjIuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWFwdC90ZXN0cy9DcnVuY2hDYWNoZV90ZXN0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLS8vCi0vLyBDb3B5cmlnaHQgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0vLwotI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KLSNpbmNsdWRlIDxpb3N0cmVhbT4KLSNpbmNsdWRlIDxlcnJuby5oPgotCi0jaW5jbHVkZSAiQ3J1bmNoQ2FjaGUuaCIKLSNpbmNsdWRlICJGaWxlRmluZGVyLmgiCi0jaW5jbHVkZSAiTW9ja0ZpbGVGaW5kZXIuaCIKLSNpbmNsdWRlICJDYWNoZVVwZGF0ZXIuaCIKLSNpbmNsdWRlICJNb2NrQ2FjaGVVcGRhdGVyLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwotdXNpbmcgc3RkOjpjb3V0OwotdXNpbmcgc3RkOjplbmRsOwotCi12b2lkIGV4cGVjdEVxdWFsKGludCBnb3QsIGludCBleHBlY3RlZCwgY29uc3QgY2hhciogZGVzYykgewotICAgIGNvdXQgPDwgIkNoZWNraW5nICIgPDwgZGVzYyA8PCAiOiAiOwotICAgIGNvdXQgPDwgIkdvdCAiIDw8IGdvdCA8PCAiLCBleHBlY3RlZCAiIDw8IGV4cGVjdGVkIDw8ICIuLi4iOwotICAgIGNvdXQgPDwgKCAoZ290ID09IGV4cGVjdGVkKSA/ICJQQVNTRUQiIDogIkZBSUxFRCIpIDw8IGVuZGw7Ci0gICAgZXJybm8gKz0gKChnb3QgPT0gZXhwZWN0ZWQpID8gMCA6IDEpOwotfQotCi1pbnQgbWFpbigpIHsKLQotICAgIGVycm5vID0gMDsKLQotICAgIFN0cmluZzggc291cmNlKCJyZXMiKTsKLSAgICBTdHJpbmc4IGRlc3QoInJlczIiKTsKLQotICAgIC8vIENyZWF0ZSBkYXRhIGZvciBNb2NrRmlsZUZpbmRlciB0byBmZWVkIHRvIHRoZSBjYWNoZQotICAgIEtleWVkVmVjdG9yPFN0cmluZzgsIHRpbWVfdD4gc291cmNlRGF0YTsKLSAgICAvLyBUaGlzIHNob3VsZG4ndCBiZSB1cGRhdGVkCi0gICAgc291cmNlRGF0YS5hZGQoU3RyaW5nOCgicmVzL2RyYXdhYmxlL2hlbGxvLnBuZyIpLDMpOwotICAgIC8vIFRoaXMgc2hvdWxkIGJlIHVwZGF0ZWQKLSAgICBzb3VyY2VEYXRhLmFkZChTdHJpbmc4KCJyZXMvZHJhd2FibGUvd29ybGQucG5nIiksNSk7Ci0gICAgLy8gVGhpcyBzaG91bGQgY2F1c2UgbWFrZSBkaXJlY3RvcnkgdG8gYmUgY2FsbGVkCi0gICAgc291cmNlRGF0YS5hZGQoU3RyaW5nOCgicmVzL2RyYXdhYmxlLWNvb2wvaGVsbG8ucG5nIiksMyk7Ci0KLSAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCB0aW1lX3Q+IGRlc3REYXRhOwotICAgIGRlc3REYXRhLmFkZChTdHJpbmc4KCJyZXMyL2RyYXdhYmxlL2hlbGxvLnBuZyIpLDMpOwotICAgIGRlc3REYXRhLmFkZChTdHJpbmc4KCJyZXMyL2RyYXdhYmxlL3dvcmxkLnBuZyIpLDMpOwotICAgIC8vIHRoaXMgc2hvdWxkIGNhbGwgZGVsZXRlCi0gICAgZGVzdERhdGEuYWRkKFN0cmluZzgoInJlczIvZHJhd2FibGUvZGVhZC5wbmciKSwzKTsKLQotICAgIC8vIFBhY2thZ2UgdXAgZGF0YSBhbmQgY3JlYXRlIG1vY2sgZmlsZSBmaW5kZXIKLSAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCBLZXllZFZlY3RvcjxTdHJpbmc4LHRpbWVfdD4gPiBkYXRhOwotICAgIGRhdGEuYWRkKHNvdXJjZSxzb3VyY2VEYXRhKTsKLSAgICBkYXRhLmFkZChkZXN0LGRlc3REYXRhKTsKLSAgICBGaWxlRmluZGVyKiBmZiA9IG5ldyBNb2NrRmlsZUZpbmRlcihkYXRhKTsKLSAgICBDcnVuY2hDYWNoZSBjYyhzb3VyY2UsZGVzdCxmZik7Ci0KLSAgICBNb2NrQ2FjaGVVcGRhdGVyKiBtY3UgPSBuZXcgTW9ja0NhY2hlVXBkYXRlcigpOwotICAgIENhY2hlVXBkYXRlciogY3UobWN1KTsKLQotICAgIGNvdXQgPDwgIlJ1bm5pbmcgQ3J1bmNoLi4uIjsKLSAgICBpbnQgcmVzdWx0ID0gY2MuY3J1bmNoKGN1KTsKLSAgICBjb3V0IDw8ICgocmVzdWx0ID4gMCkgPyAiUEFTU0VEIiA6ICJGQUlMRUQiKSA8PCBlbmRsOwotICAgIGVycm5vICs9ICgocmVzdWx0ID4gMCkgPyAwIDogMSk7Ci0KLSAgICBjb25zdCBpbnQgRVhQRUNURURfUkVTVUxUID0gMjsKLSAgICBleHBlY3RFcXVhbChyZXN1bHQsIEVYUEVDVEVEX1JFU1VMVCwgIm51bWJlciBvZiBmaWxlcyB0b3VjaGVkIik7Ci0KLSAgICBjb3V0IDw8ICJDaGVja2luZyBjYWxscyB0byBkZWxldGVGaWxlIGFuZCBwcm9jZXNzSW1hZ2U6IiA8PCBlbmRsOwotICAgIGNvbnN0IGludCBFWFBFQ1RFRF9ERUxFVEVTID0gMTsKLSAgICBjb25zdCBpbnQgRVhQRUNURURfUFJPQ0VTU0VEID0gMjsKLSAgICAvLyBEZWxldGVzCi0gICAgZXhwZWN0RXF1YWwobWN1LT5kZWxldGVDb3VudCwgRVhQRUNURURfREVMRVRFUywgImRlbGV0ZUZpbGUiKTsKLSAgICAvLyBwcm9jZXNzSW1hZ2UKLSAgICBleHBlY3RFcXVhbChtY3UtPnByb2Nlc3NDb3VudCwgRVhQRUNURURfUFJPQ0VTU0VELCAicHJvY2Vzc0ltYWdlIik7Ci0KLSAgICBjb25zdCBpbnQgRVhQRUNURURfT1ZFUldSSVRFUyA9IDM7Ci0gICAgcmVzdWx0ID0gY2MuY3J1bmNoKGN1LCB0cnVlKTsKLSAgICBleHBlY3RFcXVhbChyZXN1bHQsIEVYUEVDVEVEX09WRVJXUklURVMsICJudW1iZXIgb2YgZmlsZXMgdG91Y2hlZCB3aXRoIG92ZXJ3cml0ZSIpOwotICAgIFwKLQotICAgIGlmIChlcnJubyA9PSAwKQotICAgICAgICBjb3V0IDw8ICJBTEwgVEVTVFMgUEFTU0VEISIgPDwgZW5kbDsKLSAgICBlbHNlCi0gICAgICAgIGNvdXQgPDwgZXJybm8gPDwgIiBURVNUUyBGQUlMRUQiIDw8IGVuZGw7Ci0KLSAgICBkZWxldGUgZmY7Ci0gICAgZGVsZXRlIGN1OwotCi0gICAgLy8gVEVTVFMgQkVMT1cgV0lMTCBHTyBBV0FZIFNPT04KLQotICAgIFN0cmluZzggc291cmNlMigiQXBpRGVtb3MvcmVzIik7Ci0gICAgU3RyaW5nOCBkZXN0MigiQXBpRGVtb3MvcmVzMiIpOwotCi0gICAgRmlsZUZpbmRlciogc2ZmID0gbmV3IFN5c3RlbUZpbGVGaW5kZXIoKTsKLSAgICBDYWNoZVVwZGF0ZXIqIHNjdSA9IG5ldyBTeXN0ZW1DYWNoZVVwZGF0ZXIoKTsKLQotICAgIENydW5jaENhY2hlIHNjYyhzb3VyY2UyLGRlc3QyLHNmZik7Ci0KLSAgICBzY2MuY3J1bmNoKHNjdSk7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC90ZXN0cy9GaWxlRmluZGVyX3Rlc3QuY3BwIGIvdG9vbHMvYWFwdC90ZXN0cy9GaWxlRmluZGVyX3Rlc3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwN2JkNjY1Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvdGVzdHMvRmlsZUZpbmRlcl90ZXN0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwMSArMCwwIEBACi0vLwotLy8gQ29weXJpZ2h0IDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotLy8KLSNpbmNsdWRlIDx1dGlscy9WZWN0b3IuaD4KLSNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgotI2luY2x1ZGUgPGlvc3RyZWFtPgotI2luY2x1ZGUgPGNhc3NlcnQ+Ci0jaW5jbHVkZSA8dXRpbHMvU3RyaW5nOC5oPgotI2luY2x1ZGUgPHV0aWxpdHk+Ci0KLSNpbmNsdWRlICJEaXJlY3RvcnlXYWxrZXIuaCIKLSNpbmNsdWRlICJNb2NrRGlyZWN0b3J5V2Fsa2VyLmgiCi0jaW5jbHVkZSAiRmlsZUZpbmRlci5oIgotCi11c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKLQotdXNpbmcgc3RkOjpwYWlyOwotdXNpbmcgc3RkOjpjb3V0OwotdXNpbmcgc3RkOjplbmRsOwotCi0KLQotaW50IG1haW4oKQotewotCi0gICAgY291dCA8PCAiXG5cbiBTVEFSVElORyBGSUxFIEZJTkRFUiBURVNUUyIgPDwgZW5kbDsKLSAgICBTdHJpbmc4IHBhdGgoIkFwaURlbW9zIik7Ci0KLSAgICAvLyBTdG9yYWdlIHRvIHBhc3MgdG8gZmluZEZpbGVzKCkKLSAgICBLZXllZFZlY3RvcjxTdHJpbmc4LHRpbWVfdD4gdGVzdFN0b3JhZ2U7Ci0KLSAgICAvLyBNb2NrIERpcmVjdG9yeSBXYWxrZXIgaW5pdGlhbGl6YXRpb24uIEZpcnN0IGRhdGEsIHRoZW4gc2R3Ci0gICAgVmVjdG9yPCBwYWlyPFN0cmluZzgsdGltZV90PiA+IGRhdGE7Ci0gICAgZGF0YS5wdXNoKCBwYWlyPFN0cmluZzgsdGltZV90PihTdHJpbmc4KCJoZWxsby5wbmciKSwzKSApOwotICAgIGRhdGEucHVzaCggcGFpcjxTdHJpbmc4LHRpbWVfdD4oU3RyaW5nOCgid29ybGQuUE5HIiksMykgKTsKLSAgICBkYXRhLnB1c2goIHBhaXI8U3RyaW5nOCx0aW1lX3Q+KFN0cmluZzgoImZvby5wTmciKSwzKSApOwotICAgIC8vIE5laXRoZXIgb2YgdGhlc2Ugc2hvdWxkIGJlIGZvdW5kCi0gICAgZGF0YS5wdXNoKCBwYWlyPFN0cmluZzgsdGltZV90PihTdHJpbmc4KCJoZWxsby5qcGciKSwzKSApOwotICAgIGRhdGEucHVzaCggcGFpcjxTdHJpbmc4LHRpbWVfdD4oU3RyaW5nOCgiLmhpZGRlbi5wbmciKSwzKSk7Ci0KLSAgICBEaXJlY3RvcnlXYWxrZXIqIHNkdyA9IG5ldyBTdHJpbmdEaXJlY3RvcnlXYWxrZXIocGF0aCxkYXRhKTsKLQotICAgIC8vIEV4dGVuc2lvbnMgdG8gbG9vayBmb3IKLSAgICBWZWN0b3I8U3RyaW5nOD4gZXh0czsKLSAgICBleHRzLnB1c2goU3RyaW5nOCgiLnBuZyIpKTsKLQotICAgIGVycm5vID0gMDsKLQotICAgIC8vIE1ha2Ugc3VyZSB3ZSBnZXQgYSB2YWxpZCBtb2NrIGRpcmVjdG9yeSB3YWxrZXIKLSAgICAvLyBNYWtlIHN1cmUgd2UgZmluaXNoIHdpdGhvdXQgZXJyb3JzCi0gICAgY291dCA8PCAiQ2hlY2tpbmcgRGlyZWN0b3J5V2Fsa2VyLi4uIjsKLSAgICBhc3NlcnQoc2R3ICE9IE5VTEwpOwotICAgIGNvdXQgPDwgIlBBU1NFRCIgPDwgZW5kbDsKLQotICAgIC8vIE1ha2Ugc3VyZSB3ZSBmaW5pc2ggd2l0aG91dCBlcnJvcnMKLSAgICBjb3V0IDw8ICJSdW5uaW5nIGZpbmRGaWxlcygpLi4uIjsKLSAgICBib29sIGZpbmRTdGF0dXMgPSBGaWxlRmluZGVyOjpmaW5kRmlsZXMocGF0aCxleHRzLCB0ZXN0U3RvcmFnZSwgc2R3KTsKLSAgICBhc3NlcnQoZmluZFN0YXR1cyk7Ci0gICAgY291dCA8PCAiUEFTU0VEIiA8PCBlbmRsOwotCi0gICAgY29uc3Qgc2l6ZV90IFNJWkVfRVhQRUNURUQgPSAzOwotICAgIC8vIENoZWNrIHRvIG1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSByaWdodCBudW1iZXIgb2YgdGhpbmdzIGluIG91ciBzdG9yYWdlCi0gICAgY291dCA8PCAiUnVubmluZyBzaXplIGNvbXBhcmlzb246IFNpemUgaXMgIiA8PCB0ZXN0U3RvcmFnZS5zaXplKCkgPDwgIiwgIjsKLSAgICBjb3V0IDw8ICJFeHBlY3RlZCAiIDw8IFNJWkVfRVhQRUNURUQgPDwgIi4uLiI7Ci0gICAgaWYodGVzdFN0b3JhZ2Uuc2l6ZSgpID09IFNJWkVfRVhQRUNURUQpCi0gICAgICAgIGNvdXQgPDwgIlBBU1NFRCIgPDwgZW5kbDsKLSAgICBlbHNlIHsKLSAgICAgICAgY291dCA8PCAiRkFJTEVEIiA8PCBlbmRsOwotICAgICAgICBlcnJubysrOwotICAgIH0KLQotICAgIC8vIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IGVhY2ggb2Ygb3VyIGZvdW5kIGl0ZW1zIGhhcyB0aGUgcmlnaHQgZXh0ZW5zaW9uCi0gICAgY291dCA8PCAiQ2hlY2tpbmcgUmV0dXJuZWQgRXh0ZW5zaW9ucy4uLiI7Ci0gICAgYm9vbCBleHRzT2theSA9IHRydWU7Ci0gICAgU3RyaW5nOCB3cm9uZ0V4dHM7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBTSVpFX0VYUEVDVEVEOyArK2kpIHsKLSAgICAgICAgU3RyaW5nOCB0ZXN0RXh0KHRlc3RTdG9yYWdlLmtleUF0KGkpLmdldFBhdGhFeHRlbnNpb24oKSk7Ci0gICAgICAgIHRlc3RFeHQudG9Mb3dlcigpOwotICAgICAgICBpZiAodGVzdEV4dCAhPSAiLnBuZyIpIHsKLSAgICAgICAgICAgIHdyb25nRXh0cyArPSB0ZXN0U3RvcmFnZS5rZXlBdChpKTsKLSAgICAgICAgICAgIHdyb25nRXh0cyArPSAiXG4iOwotICAgICAgICAgICAgZXh0c09rYXkgPSBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoZXh0c09rYXkpCi0gICAgICAgIGNvdXQgPDwgIlBBU1NFRCIgPDwgZW5kbDsKLSAgICBlbHNlIHsKLSAgICAgICAgY291dCA8PCAiRkFJTEVEIiA8PCBlbmRsOwotICAgICAgICBjb3V0IDw8ICJUaGUgZm9sbG93aW5nIGV4dGVuc2lvbnMgZGlkbid0IGNoZWNrIG91dCIgPDwgZW5kbCA8PCB3cm9uZ0V4dHM7Ci0gICAgfQotCi0gICAgLy8gQ2xlYW4gdXAKLSAgICBkZWxldGUgc2R3OwotCi0gICAgaWYoZXJybm8gPT0gMCkgewotICAgICAgICBjb3V0IDw8ICJBTEwgVEVTVFMgUEFTU0VEIiA8PCBlbmRsOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGNvdXQgPDwgZXJybm8gPDwgIiBURVNUUyBGQUlMRUQiIDw8IGVuZGw7Ci0gICAgfQotICAgIHJldHVybiBlcnJubzsKLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90b29scy9hYXB0L3Rlc3RzL01vY2tDYWNoZVVwZGF0ZXIuaCBiL3Rvb2xzL2FhcHQvdGVzdHMvTW9ja0NhY2hlVXBkYXRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2Y0YmQ3Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvdGVzdHMvTW9ja0NhY2hlVXBkYXRlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0jaWZuZGVmIE1PQ0tDQUNIRVVQREFURVJfSAotI2RlZmluZSBNT0NLQ0FDSEVVUERBVEVSX0gKLQotI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KLSNpbmNsdWRlICJDYWNoZVVwZGF0ZXIuaCIKLQotdXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ7Ci0KLWNsYXNzIE1vY2tDYWNoZVVwZGF0ZXIgOiBwdWJsaWMgQ2FjaGVVcGRhdGVyIHsKLXB1YmxpYzoKLQotICAgIE1vY2tDYWNoZVVwZGF0ZXIoKQotICAgICAgICA6IGRlbGV0ZUNvdW50KDApLCBwcm9jZXNzQ291bnQoMCkgeyB9OwotCi0gICAgLy8gTWFrZSBzdXJlIGFsbCB0aGUgZGlyZWN0b3JpZXMgYWxvbmcgdGhpcyBwYXRoIGV4aXN0Ci0gICAgdmlydHVhbCB2b2lkIGVuc3VyZURpcmVjdG9yaWVzRXhpc3QoU3RyaW5nOCBwYXRoKQotICAgIHsKLSAgICAgICAgLy8gTm90aGluZyB0byBkbwotICAgIH07Ci0KLSAgICAvLyBEZWxldGUgYSBmaWxlCi0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUZpbGUoU3RyaW5nOCBwYXRoKSB7Ci0gICAgICAgIGRlbGV0ZUNvdW50Kys7Ci0gICAgfTsKLQotICAgIC8vIFByb2Nlc3MgYW4gaW1hZ2UgZnJvbSBzb3VyY2Ugb3V0IHRvIGRlc3QKLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0ltYWdlKFN0cmluZzggc291cmNlLCBTdHJpbmc4IGRlc3QpIHsKLSAgICAgICAgcHJvY2Vzc0NvdW50Kys7Ci0gICAgfTsKLQotICAgIC8vIERBVEEgTUVNQkVSUwotICAgIGludCBkZWxldGVDb3VudDsKLSAgICBpbnQgcHJvY2Vzc0NvdW50OwotcHJpdmF0ZToKLX07Ci0KLSNlbmRpZiAvLyBNT0NLQ0FDSEVVUERBVEVSX0gKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90b29scy9hYXB0L3Rlc3RzL01vY2tEaXJlY3RvcnlXYWxrZXIuaCBiL3Rvb2xzL2FhcHQvdGVzdHMvTW9ja0RpcmVjdG9yeVdhbGtlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OTAwY2YzLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvdGVzdHMvTW9ja0RpcmVjdG9yeVdhbGtlci5oCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLS8vCi0jaWZuZGVmIE1PQ0tESVJFQ1RPUllXQUxLRVJfSAotI2RlZmluZSBNT0NLRElSRUNUT1JZV0FMS0VSX0gKLQotI2luY2x1ZGUgPHV0aWxzL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KLSNpbmNsdWRlIDx1dGlsaXR5PgotI2luY2x1ZGUgIkRpcmVjdG9yeVdhbGtlci5oIgotCi11c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKLXVzaW5nIHN0ZDo6cGFpcjsKLQotLy8gU3RyaW5nOCBEaXJlY3RvcnkgV2Fsa2VyCi0vLyBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEaXJlY3RvcnkgV2Fsa2VyIGFic3RyYWN0aW9uIHRoYXQgaXMgYnVpbHQKLS8vIGZvciB0ZXN0aW5nLgotLy8gSW5zdGVhZCBvZiBzeXN0ZW0gY2FsbHMgaXQgcXVlcmllcyBhIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUgZm9yIHRoZSBkaXJlY3RvcnkKLS8vIGVudHJpZXMuIEl0IHRha2VzIGEgcGF0aCBhbmQgYSBtYXAgb2YgZmlsZW5hbWVzIGFuZCB0aGVpciBtb2RpZmljYXRpb24gdGltZXMuCi0vLyBmdW5jdGlvbnMgYXJlIGlubGluZWQgc2luY2UgdGhleSBhcmUgc2hvcnQgYW5kIHNpbXBsZQotCi1jbGFzcyBTdHJpbmdEaXJlY3RvcnlXYWxrZXIgOiBwdWJsaWMgRGlyZWN0b3J5V2Fsa2VyIHsKLXB1YmxpYzoKLSAgICBTdHJpbmdEaXJlY3RvcnlXYWxrZXIoU3RyaW5nOCYgcGF0aCwgVmVjdG9yPCBwYWlyPFN0cmluZzgsdGltZV90PiA+JiBkYXRhKQotICAgICAgICA6ICBtUG9zKDApLCBtQmFzZVBhdGgocGF0aCksIG1EYXRhKGRhdGEpIHsKLSAgICAgICAgLy9mcHJpbnRmKHN0ZG91dCwiU3RyaW5nRFcgYnVpbHQgdG8gbWltaWMgJXMgd2l0aCAlZCBmaWxlc1xuIiwKLSAgICAgICAgLy8gICAgICAgbUJhc2VQYXRoLnN0cmluZygpKTsKLSAgICB9OwotICAgIC8vIERlZmF1bHQgY29weSBjb25zdHJ1Y3RvciwgYW5kIGRlc3RydWN0b3IgYXJlIGZpbmUKLQotICAgIHZpcnR1YWwgYm9vbCBvcGVuRGlyKFN0cmluZzggcGF0aCkgewotICAgICAgICAvLyBJZiB0aGUgdXNlciBpcyB0cnlpbmcgdG8gcXVlcnkgdGhlICJkaXJlY3RvcnkiIHRoYXQgdGhpcwotICAgICAgICAvLyB3YWxrZXIgd2FzIGluaXRpYWxpemVkIHdpdGgsIHRoZW4gcmV0dXJuIHN1Y2Nlc3MuIEVsc2UgZmFpbC4KLSAgICAgICAgcmV0dXJuIHBhdGggPT0gbUJhc2VQYXRoOwotICAgIH07Ci0gICAgdmlydHVhbCBib29sIG9wZW5EaXIoY29uc3QgY2hhciogcGF0aCkgewotICAgICAgICBTdHJpbmc4IHAocGF0aCk7Ci0gICAgICAgIG9wZW5EaXIocCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH07Ci0gICAgLy8gQWR2YW5jZSB0byBuZXh0IGVudHJ5IGluIHRoZSBWZWN0b3IKLSAgICB2aXJ0dWFsIHN0cnVjdCBkaXJlbnQqIG5leHRFbnRyeSgpIHsKLSAgICAgICAgLy8gQWR2YW5jZSBwb3NpdGlvbiBhbmQgY2hlY2sgdG8gc2VlIGlmIHdlJ3JlIGRvbmUKLSAgICAgICAgaWYgKG1Qb3MgPj0gbURhdGEuc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICAgICAgLy8gUGxhY2UgZGF0YSBpbiB0aGUgZW50cnkgZGVzY3JpcHRvci4gVGhpcyBjbGFzcyBvbmx5IHJldHVybnMgZmlsZXMuCi0gICAgICAgIG1FbnRyeS5kX3R5cGUgPSBEVF9SRUc7Ci0gICAgICAgIG1FbnRyeS5kX2lubyA9IG1Qb3M7Ci0gICAgICAgIC8vIENvcHkgY2hhcnMgZnJvbSB0aGUgc3RyaW5nIG5hbWUgdG8gdGhlIGVudHJ5IG5hbWUKLSAgICAgICAgc2l6ZV90IGkgPSAwOwotICAgICAgICBmb3IgKGk7IGkgPCBtRGF0YVttUG9zXS5maXJzdC5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIG1FbnRyeS5kX25hbWVbaV0gPSBtRGF0YVttUG9zXS5maXJzdFtpXTsKLSAgICAgICAgbUVudHJ5LmRfbmFtZVtpXSA9ICdcMCc7Ci0KLSAgICAgICAgLy8gUGxhY2UgZGF0YSBpbiBzdGF0cwotICAgICAgICBtU3RhdHMuc3RfaW5vID0gbVBvczsKLSAgICAgICAgbVN0YXRzLnN0X210aW1lID0gbURhdGFbbVBvc10uc2Vjb25kOwotCi0gICAgICAgIC8vIEdldCByZWFkeSB0byBtb3ZlIHRvIHRoZSBuZXh0IGVudHJ5Ci0gICAgICAgIG1Qb3MrKzsKLQotICAgICAgICByZXR1cm4gJm1FbnRyeTsKLSAgICB9OwotICAgIC8vIEdldCB0aGUgc3RhdHMgZm9yIHRoZSBjdXJyZW50IGVudHJ5Ci0gICAgdmlydHVhbCBzdHJ1Y3Qgc3RhdCogICBlbnRyeVN0YXRzKCkgewotICAgICAgICByZXR1cm4gJm1TdGF0czsKLSAgICB9OwotICAgIC8vIE5vdGhpbmcgdG8gZG8gaW4gY2xlYW4gdXAKLSAgICB2aXJ0dWFsIHZvaWQgY2xvc2VEaXIoKSB7Ci0gICAgICAgIC8vIE5vdGhpbmcgdG8gZG8KLSAgICB9OwotICAgIHZpcnR1YWwgRGlyZWN0b3J5V2Fsa2VyKiBjbG9uZSgpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdEaXJlY3RvcnlXYWxrZXIoKnRoaXMpOwotICAgIH07Ci1wcml2YXRlOgotICAgIC8vIEN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIFZlY3RvcgotICAgIHNpemVfdCBtUG9zOwotICAgIC8vIEJhc2UgcGF0aAotICAgIFN0cmluZzggbUJhc2VQYXRoOwotICAgIC8vIERhdGEgdG8gc2ltdWxhdGUgYSBkaXJlY3RvcnkgZnVsbCBvZiBmaWxlcy4KLSAgICBWZWN0b3I8IHBhaXI8U3RyaW5nOCx0aW1lX3Q+ID4gbURhdGE7Ci19OwotCi0jZW5kaWYgLy8gTU9DS0RJUkVDVE9SWVdBTEtFUl9IClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC90ZXN0cy9Nb2NrRmlsZUZpbmRlci5oIGIvdG9vbHMvYWFwdC90ZXN0cy9Nb2NrRmlsZUZpbmRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYTVlYTRmLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvdGVzdHMvTW9ja0ZpbGVGaW5kZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8vCi0vLyBDb3B5cmlnaHQgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0vLwotCi0jaWZuZGVmIE1PQ0tGSUxFRklOREVSX0gKLSNkZWZpbmUgTU9DS0ZJTEVGSU5ERVJfSAotCi0jaW5jbHVkZSA8dXRpbHMvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KLSNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+Ci0KLSNpbmNsdWRlICJEaXJlY3RvcnlXYWxrZXIuaCIKLQotdXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ7Ci0KLWNsYXNzIE1vY2tGaWxlRmluZGVyIDogcHVibGljIEZpbGVGaW5kZXIgewotcHVibGljOgotICAgIE1vY2tGaWxlRmluZGVyIChLZXllZFZlY3RvcjxTdHJpbmc4LCBLZXllZFZlY3RvcjxTdHJpbmc4LHRpbWVfdD4gPiYgZmlsZXMpCi0gICAgICAgIDogbUZpbGVzKGZpbGVzKQotICAgIHsKLSAgICAgICAgLy8gTm90aGluZyBsZWZ0IHRvIGRvCi0gICAgfTsKLQotICAgIC8qKgotICAgICAqIGZpbmRGaWxlcyBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIGFic3RyYWN0aW9uLgotICAgICAqIFBSRUNPTkRJVElPTlM6Ci0gICAgICogIE5vIGNoZWNraW5nIGlzIGRvbmUsIHNvIHRoZXJlIE1VU1QgYmUgYW4gZW50cnkgaW4gbUZpbGVzIHdpdGgKLSAgICAgKiAgcGF0aCBtYXRjaGluZyBiYXNlUGF0aC4KLSAgICAgKgotICAgICAqIFBPU1RDT05ESVRJT05TOgotICAgICAqICBmaWxlU3RvcmUgaXMgZmlsbGVkIHdpdGggYSBjb3B5IG9mIHRoZSBkYXRhIGluIG1GaWxlcyBjb3JyZXNwb25kaW5nCi0gICAgICogIHRvIHRoZSBiYXNlUGF0aC4KLSAgICAgKi8KLQotICAgIHZpcnR1YWwgYm9vbCBmaW5kRmlsZXMoU3RyaW5nOCBiYXNlUGF0aCwgVmVjdG9yPFN0cmluZzg+JiBleHRlbnNpb25zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5ZWRWZWN0b3I8U3RyaW5nOCx0aW1lX3Q+JiBmaWxlU3RvcmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJlY3RvcnlXYWxrZXIqIGR3KQotICAgIHsKLSAgICAgICAgY29uc3QgS2V5ZWRWZWN0b3I8U3RyaW5nOCx0aW1lX3Q+KiBwYXlsb2FkKCZtRmlsZXMudmFsdWVGb3IoYmFzZVBhdGgpKTsKLSAgICAgICAgLy8gU2luY2UgS2V5ZWRWZWN0b3IgZG9lc24ndCBpbXBsZW1lbnQgc3dhcAotICAgICAgICAvLyAod2hvIGRvZXNuJ3QgdXNlIHN3YXA/Pykgd2UgbG9vcCBhbmQgYWRkIG9uZSBhdCBhIHRpbWUuCi0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGF5bG9hZC0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIGZpbGVTdG9yZS5hZGQocGF5bG9hZC0+a2V5QXQoaSkscGF5bG9hZC0+dmFsdWVBdChpKSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIC8vIFZpcnR1YWwgbWFwcGluZyBiZXR3ZWVuICJkaXJlY3RvcmllcyIgYW5kIHRoZSAiZmlsZXMiIGNvbnRhaW5lZAotICAgIC8vIGluIHRoZW0KLSAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCBLZXllZFZlY3RvcjxTdHJpbmc4LHRpbWVfdD4gPiBtRmlsZXM7Ci19OwotCi0KLSNlbmRpZiAvLyBNT0NLRklMRUZJTkRFUl9IClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC90ZXN0cy9wbHVyYWxzL0FuZHJvaWRNYW5pZmVzdC54bWwgYi90b29scy9hYXB0L3Rlc3RzL3BsdXJhbHMvQW5kcm9pZE1hbmlmZXN0LnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzcyMWRlZS4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L3Rlc3RzL3BsdXJhbHMvQW5kcm9pZE1hbmlmZXN0LnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxtYW5pZmVzdCB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgcGFja2FnZT0iY29tLmFuZHJvaWQuYWFwdC50ZXN0LnBsdXJhbHMiPgotCi08L21hbmlmZXN0PgpkaWZmIC0tZ2l0IGEvdG9vbHMvYWFwdC90ZXN0cy9wbHVyYWxzL3Jlcy92YWx1ZXMvc3RyaW5ncy54bWwgYi90b29scy9hYXB0L3Rlc3RzL3BsdXJhbHMvcmVzL3ZhbHVlcy9zdHJpbmdzLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWMxZmMxOS4uMDAwMDAwMAotLS0gYS90b29scy9hYXB0L3Rlc3RzL3BsdXJhbHMvcmVzL3ZhbHVlcy9zdHJpbmdzLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotPHJlc291cmNlcyB4bWxuczp4bGlmZj0idXJuOm9hc2lzOm5hbWVzOnRjOnhsaWZmOmRvY3VtZW50OjEuMiI+Ci0gICAgPHN0cmluZyBuYW1lPSJvayI+T0s8L3N0cmluZz4KLSAgICA8cGx1cmFscyBuYW1lPSJhX3BsdXJhbCI+Ci0gICAgICAgIDxpdGVtIHF1YW50aXR5PSJvbmUiPkEgZG9nPC9pdGVtPgotICAgICAgICA8aXRlbSBxdWFudGl0eT0ib3RoZXIiPlNvbWUgZG9nczwvaXRlbT4KLSAgICA8L3BsdXJhbHM+Ci08L3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL3Rvb2xzL2FhcHQvdGVzdHMvcGx1cmFscy9ydW4uc2ggYi90b29scy9hYXB0L3Rlc3RzL3BsdXJhbHMvcnVuLnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA0ZDM5ZTEwLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FhcHQvdGVzdHMvcGx1cmFscy9ydW4uc2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1URVNUX0RJUj10b29scy9hYXB0L3Rlc3RzL3BsdXJhbHMKLVRFU1RfT1VUX0RJUj1vdXQvcGx1cmFsc190ZXN0Ci0KLXJtIC1yZiAkVEVTVF9PVVRfRElSCi1ta2RpciAtcCAkVEVTVF9PVVRfRElSCi1ta2RpciAtcCAkVEVTVF9PVVRfRElSL2phdmEKLQotI2dkYiAtLWFyZ3MgXAotYWFwdCBwYWNrYWdlIC12IC14IC1tIC16ICAtSiAkVEVTVF9PVVRfRElSL2phdmEgLU0gJFRFU1RfRElSL0FuZHJvaWRNYW5pZmVzdC54bWwgXAotICAgICAgICAgICAgIC1JIG91dC90YXJnZXQvY29tbW9uL29iai9BUFBTL2ZyYW1ld29yay1yZXNfaW50ZXJtZWRpYXRlcy9wYWNrYWdlLWV4cG9ydC5hcGsgXAotICAgICAgICAgICAgIC1QICRURVNUX09VVF9ESVIvcHVibGljX3Jlc291cmNlcy54bWwgXAotICAgICAgICAgICAgIC1TICRURVNUX0RJUi9yZXMKLQotZWNobwotZWNobyAiPT09PT09PT09PT09PT09PT09PT0gRklMRVMgQ1JFQVRFRCA9PT09PT09PT09PT09PT09PT09PSAiCi1maW5kICRURVNUX09VVF9ESVIgLXR5cGUgZgpkaWZmIC0tZ2l0IGEvdG9vbHMvYWlkbC9BU1QuY3BwIGIvdG9vbHMvYWlkbC9BU1QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZmE2NzY1Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FpZGwvQVNULmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDkxMiArMCwwIEBACi0jaW5jbHVkZSAiQVNULmgiCi0jaW5jbHVkZSAiVHlwZS5oIgotCi12b2lkCi1Xcml0ZU1vZGlmaWVycyhGSUxFKiB0bywgaW50IG1vZCwgaW50IG1hc2spCi17Ci0gICAgaW50IG0gPSBtb2QgJiBtYXNrOwotCi0gICAgaWYgKG0gJiBPVkVSUklERSkgewotICAgICAgICBmcHJpbnRmKHRvLCAiQE92ZXJyaWRlICIpOwotICAgIH0KLQotICAgIGlmICgobSAmIFNDT1BFX01BU0spID09IFBVQkxJQykgewotICAgICAgICBmcHJpbnRmKHRvLCAicHVibGljICIpOwotICAgIH0KLSAgICBlbHNlIGlmICgobSAmIFNDT1BFX01BU0spID09IFBSSVZBVEUpIHsKLSAgICAgICAgZnByaW50Zih0bywgInByaXZhdGUgIik7Ci0gICAgfQotICAgIGVsc2UgaWYgKChtICYgU0NPUEVfTUFTSykgPT0gUFJPVEVDVEVEKSB7Ci0gICAgICAgIGZwcmludGYodG8sICJwcm90ZWN0ZWQgIik7Ci0gICAgfQotCi0gICAgaWYgKG0gJiBTVEFUSUMpIHsKLSAgICAgICAgZnByaW50Zih0bywgInN0YXRpYyAiKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKG0gJiBGSU5BTCkgewotICAgICAgICBmcHJpbnRmKHRvLCAiZmluYWwgIik7Ci0gICAgfQotCi0gICAgaWYgKG0gJiBBQlNUUkFDVCkgewotICAgICAgICBmcHJpbnRmKHRvLCAiYWJzdHJhY3QgIik7Ci0gICAgfQotfQotCi12b2lkCi1Xcml0ZUFyZ3VtZW50TGlzdChGSUxFKiB0bywgY29uc3QgdmVjdG9yPEV4cHJlc3Npb24qPiYgYXJndW1lbnRzKQotewotICAgIHNpemVfdCBOID0gYXJndW1lbnRzLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIGFyZ3VtZW50c1tpXS0+V3JpdGUodG8pOwotICAgICAgICBpZiAoaSAhPSBOLTEpIHsKLSAgICAgICAgICAgIGZwcmludGYodG8sICIsICIpOwotICAgICAgICB9Ci0gICAgfQotfQotCi1DbGFzc0VsZW1lbnQ6OkNsYXNzRWxlbWVudCgpCi17Ci19Ci0KLUNsYXNzRWxlbWVudDo6fkNsYXNzRWxlbWVudCgpCi17Ci19Ci0KLUZpZWxkOjpGaWVsZCgpCi0gICAgOkNsYXNzRWxlbWVudCgpLAotICAgICBtb2RpZmllcnMoMCksCi0gICAgIHZhcmlhYmxlKE5VTEwpCi17Ci19Ci0KLUZpZWxkOjpGaWVsZChpbnQgbSwgVmFyaWFibGUqIHYpCi0gICAgOkNsYXNzRWxlbWVudCgpLAotICAgICBtb2RpZmllcnMobSksCi0gICAgIHZhcmlhYmxlKHYpCi17Ci19Ci0KLUZpZWxkOjp+RmllbGQoKQotewotfQotCi12b2lkCi1GaWVsZDo6R2F0aGVyVHlwZXMoc2V0PFR5cGUqPiogdHlwZXMpIGNvbnN0Ci17Ci0gICAgdHlwZXMtPmluc2VydCh0aGlzLT52YXJpYWJsZS0+dHlwZSk7Ci19Ci0KLXZvaWQKLUZpZWxkOjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICBpZiAodGhpcy0+Y29tbWVudC5sZW5ndGgoKSAhPSAwKSB7Ci0gICAgICAgIGZwcmludGYodG8sICIlc1xuIiwgdGhpcy0+Y29tbWVudC5jX3N0cigpKTsKLSAgICB9Ci0gICAgV3JpdGVNb2RpZmllcnModG8sIHRoaXMtPm1vZGlmaWVycywgU0NPUEVfTUFTSyB8IFNUQVRJQyB8IEZJTkFMIHwgT1ZFUlJJREUpOwotICAgIGZwcmludGYodG8sICIlcyAlcyIsIHRoaXMtPnZhcmlhYmxlLT50eXBlLT5RdWFsaWZpZWROYW1lKCkuY19zdHIoKSwKLSAgICAgICAgICAgIHRoaXMtPnZhcmlhYmxlLT5uYW1lLmNfc3RyKCkpOwotICAgIGlmICh0aGlzLT52YWx1ZS5sZW5ndGgoKSAhPSAwKSB7Ci0gICAgICAgIGZwcmludGYodG8sICIgPSAlcyIsIHRoaXMtPnZhbHVlLmNfc3RyKCkpOwotICAgIH0KLSAgICBmcHJpbnRmKHRvLCAiO1xuIik7Ci19Ci0KLUV4cHJlc3Npb246On5FeHByZXNzaW9uKCkKLXsKLX0KLQotTGl0ZXJhbEV4cHJlc3Npb246OkxpdGVyYWxFeHByZXNzaW9uKGNvbnN0IHN0cmluZyYgdikKLSAgICA6dmFsdWUodikKLXsKLX0KLQotTGl0ZXJhbEV4cHJlc3Npb246On5MaXRlcmFsRXhwcmVzc2lvbigpCi17Ci19Ci0KLXZvaWQKLUxpdGVyYWxFeHByZXNzaW9uOjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICBmcHJpbnRmKHRvLCAiJXMiLCB0aGlzLT52YWx1ZS5jX3N0cigpKTsKLX0KLQotU3RyaW5nTGl0ZXJhbEV4cHJlc3Npb246OlN0cmluZ0xpdGVyYWxFeHByZXNzaW9uKGNvbnN0IHN0cmluZyYgdikKLSAgICA6dmFsdWUodikKLXsKLX0KLQotU3RyaW5nTGl0ZXJhbEV4cHJlc3Npb246On5TdHJpbmdMaXRlcmFsRXhwcmVzc2lvbigpCi17Ci19Ci0KLXZvaWQKLVN0cmluZ0xpdGVyYWxFeHByZXNzaW9uOjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICBmcHJpbnRmKHRvLCAiXCIlc1wiIiwgdGhpcy0+dmFsdWUuY19zdHIoKSk7Ci19Ci0KLVZhcmlhYmxlOjpWYXJpYWJsZSgpCi0gICAgOnR5cGUoTlVMTCksCi0gICAgIG5hbWUoKSwKLSAgICAgZGltZW5zaW9uKDApCi17Ci19Ci0KLVZhcmlhYmxlOjpWYXJpYWJsZShUeXBlKiB0LCBjb25zdCBzdHJpbmcmIG4pCi0gICAgOnR5cGUodCksCi0gICAgIG5hbWUobiksCi0gICAgIGRpbWVuc2lvbigwKQotewotfQotCi1WYXJpYWJsZTo6VmFyaWFibGUoVHlwZSogdCwgY29uc3Qgc3RyaW5nJiBuLCBpbnQgZCkKLSAgICA6dHlwZSh0KSwKLSAgICAgbmFtZShuKSwKLSAgICAgZGltZW5zaW9uKGQpCi17Ci19Ci0KLVZhcmlhYmxlOjp+VmFyaWFibGUoKQotewotfQotCi12b2lkCi1WYXJpYWJsZTo6R2F0aGVyVHlwZXMoc2V0PFR5cGUqPiogdHlwZXMpIGNvbnN0Ci17Ci0gICAgdHlwZXMtPmluc2VydCh0aGlzLT50eXBlKTsKLX0KLQotdm9pZAotVmFyaWFibGU6OldyaXRlRGVjbGFyYXRpb24oRklMRSogdG8pCi17Ci0gICAgc3RyaW5nIGRpbTsKLSAgICBmb3IgKGludCBpPTA7IGk8dGhpcy0+ZGltZW5zaW9uOyBpKyspIHsKLSAgICAgICAgZGltICs9ICJbXSI7Ci0gICAgfQotICAgIGZwcmludGYodG8sICIlcyVzICVzIiwgdGhpcy0+dHlwZS0+UXVhbGlmaWVkTmFtZSgpLmNfc3RyKCksIGRpbS5jX3N0cigpLAotICAgICAgICAgICAgdGhpcy0+bmFtZS5jX3N0cigpKTsKLX0KLQotdm9pZAotVmFyaWFibGU6OldyaXRlKEZJTEUqIHRvKQotewotICAgIGZwcmludGYodG8sICIlcyIsIG5hbWUuY19zdHIoKSk7Ci19Ci0KLUZpZWxkVmFyaWFibGU6OkZpZWxkVmFyaWFibGUoRXhwcmVzc2lvbiogbywgY29uc3Qgc3RyaW5nJiBuKQotICAgIDpvYmplY3QobyksCi0gICAgIGNsYXp6KE5VTEwpLAotICAgICBuYW1lKG4pCi17Ci19Ci0KLUZpZWxkVmFyaWFibGU6OkZpZWxkVmFyaWFibGUoVHlwZSogYywgY29uc3Qgc3RyaW5nJiBuKQotICAgIDpvYmplY3QoTlVMTCksCi0gICAgIGNsYXp6KGMpLAotICAgICBuYW1lKG4pCi17Ci19Ci0KLUZpZWxkVmFyaWFibGU6On5GaWVsZFZhcmlhYmxlKCkKLXsKLX0KLQotdm9pZAotRmllbGRWYXJpYWJsZTo6V3JpdGUoRklMRSogdG8pCi17Ci0gICAgaWYgKHRoaXMtPm9iamVjdCAhPSBOVUxMKSB7Ci0gICAgICAgIHRoaXMtPm9iamVjdC0+V3JpdGUodG8pOwotICAgIH0KLSAgICBlbHNlIGlmICh0aGlzLT5jbGF6eiAhPSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYodG8sICIlcyIsIHRoaXMtPmNsYXp6LT5RdWFsaWZpZWROYW1lKCkuY19zdHIoKSk7Ci0gICAgfQotICAgIGZwcmludGYodG8sICIuJXMiLCBuYW1lLmNfc3RyKCkpOwotfQotCi0KLVN0YXRlbWVudDo6flN0YXRlbWVudCgpCi17Ci19Ci0KLVN0YXRlbWVudEJsb2NrOjpTdGF0ZW1lbnRCbG9jaygpCi17Ci19Ci0KLVN0YXRlbWVudEJsb2NrOjp+U3RhdGVtZW50QmxvY2soKQotewotfQotCi12b2lkCi1TdGF0ZW1lbnRCbG9jazo6V3JpdGUoRklMRSogdG8pCi17Ci0gICAgZnByaW50Zih0bywgIntcbiIpOwotICAgIGludCBOID0gdGhpcy0+c3RhdGVtZW50cy5zaXplKCk7Ci0gICAgZm9yIChpbnQgaT0wOyBpPE47IGkrKykgewotICAgICAgICB0aGlzLT5zdGF0ZW1lbnRzW2ldLT5Xcml0ZSh0byk7Ci0gICAgfQotICAgIGZwcmludGYodG8sICJ9XG4iKTsKLX0KLQotdm9pZAotU3RhdGVtZW50QmxvY2s6OkFkZChTdGF0ZW1lbnQqIHN0YXRlbWVudCkKLXsKLSAgICB0aGlzLT5zdGF0ZW1lbnRzLnB1c2hfYmFjayhzdGF0ZW1lbnQpOwotfQotCi12b2lkCi1TdGF0ZW1lbnRCbG9jazo6QWRkKEV4cHJlc3Npb24qIGV4cHJlc3Npb24pCi17Ci0gICAgdGhpcy0+c3RhdGVtZW50cy5wdXNoX2JhY2sobmV3IEV4cHJlc3Npb25TdGF0ZW1lbnQoZXhwcmVzc2lvbikpOwotfQotCi1FeHByZXNzaW9uU3RhdGVtZW50OjpFeHByZXNzaW9uU3RhdGVtZW50KEV4cHJlc3Npb24qIGUpCi0gICAgOmV4cHJlc3Npb24oZSkKLXsKLX0KLQotRXhwcmVzc2lvblN0YXRlbWVudDo6fkV4cHJlc3Npb25TdGF0ZW1lbnQoKQotewotfQotCi12b2lkCi1FeHByZXNzaW9uU3RhdGVtZW50OjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICB0aGlzLT5leHByZXNzaW9uLT5Xcml0ZSh0byk7Ci0gICAgZnByaW50Zih0bywgIjtcbiIpOwotfQotCi1Bc3NpZ25tZW50OjpBc3NpZ25tZW50KFZhcmlhYmxlKiBsLCBFeHByZXNzaW9uKiByKQotICAgIDpsdmFsdWUobCksCi0gICAgIHJ2YWx1ZShyKSwKLSAgICAgY2FzdChOVUxMKQotewotfQotCi1Bc3NpZ25tZW50OjpBc3NpZ25tZW50KFZhcmlhYmxlKiBsLCBFeHByZXNzaW9uKiByLCBUeXBlKiBjKQotICAgIDpsdmFsdWUobCksCi0gICAgIHJ2YWx1ZShyKSwKLSAgICAgY2FzdChjKQotewotfQotCi1Bc3NpZ25tZW50Ojp+QXNzaWdubWVudCgpCi17Ci19Ci0KLXZvaWQKLUFzc2lnbm1lbnQ6OldyaXRlKEZJTEUqIHRvKQotewotICAgIHRoaXMtPmx2YWx1ZS0+V3JpdGUodG8pOwotICAgIGZwcmludGYodG8sICIgPSAiKTsKLSAgICBpZiAodGhpcy0+Y2FzdCAhPSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYodG8sICIoJXMpIiwgdGhpcy0+Y2FzdC0+UXVhbGlmaWVkTmFtZSgpLmNfc3RyKCkpOwotICAgIH0KLSAgICB0aGlzLT5ydmFsdWUtPldyaXRlKHRvKTsKLX0KLQotTWV0aG9kQ2FsbDo6TWV0aG9kQ2FsbChjb25zdCBzdHJpbmcmIG4pCi0gICAgOm9iaihOVUxMKSwKLSAgICAgY2xhenooTlVMTCksCi0gICAgIG5hbWUobikKLXsKLX0KLQotTWV0aG9kQ2FsbDo6TWV0aG9kQ2FsbChjb25zdCBzdHJpbmcmIG4sIGludCBhcmdjID0gMCwgLi4uKQotICAgIDpvYmooTlVMTCksCi0gICAgIGNsYXp6KE5VTEwpLAotICAgICBuYW1lKG4pCi17Ci0gIHZhX2xpc3QgYXJnczsKLSAgdmFfc3RhcnQoYXJncywgYXJnYyk7Ci0gIGluaXQoYXJnYywgYXJncyk7Ci0gIHZhX2VuZChhcmdzKTsKLX0KLQotTWV0aG9kQ2FsbDo6TWV0aG9kQ2FsbChFeHByZXNzaW9uKiBvLCBjb25zdCBzdHJpbmcmIG4pCi0gICAgOm9iaihvKSwKLSAgICAgY2xhenooTlVMTCksCi0gICAgIG5hbWUobikKLXsKLX0KLQotTWV0aG9kQ2FsbDo6TWV0aG9kQ2FsbChUeXBlKiB0LCBjb25zdCBzdHJpbmcmIG4pCi0gICAgOm9iaihOVUxMKSwKLSAgICAgY2xhenoodCksCi0gICAgIG5hbWUobikKLXsKLX0KLQotTWV0aG9kQ2FsbDo6TWV0aG9kQ2FsbChFeHByZXNzaW9uKiBvLCBjb25zdCBzdHJpbmcmIG4sIGludCBhcmdjID0gMCwgLi4uKQotICAgIDpvYmoobyksCi0gICAgIGNsYXp6KE5VTEwpLAotICAgICBuYW1lKG4pCi17Ci0gIHZhX2xpc3QgYXJnczsKLSAgdmFfc3RhcnQoYXJncywgYXJnYyk7Ci0gIGluaXQoYXJnYywgYXJncyk7Ci0gIHZhX2VuZChhcmdzKTsKLX0KLQotTWV0aG9kQ2FsbDo6TWV0aG9kQ2FsbChUeXBlKiB0LCBjb25zdCBzdHJpbmcmIG4sIGludCBhcmdjID0gMCwgLi4uKQotICAgIDpvYmooTlVMTCksCi0gICAgIGNsYXp6KHQpLAotICAgICBuYW1lKG4pCi17Ci0gIHZhX2xpc3QgYXJnczsKLSAgdmFfc3RhcnQoYXJncywgYXJnYyk7Ci0gIGluaXQoYXJnYywgYXJncyk7Ci0gIHZhX2VuZChhcmdzKTsKLX0KLQotTWV0aG9kQ2FsbDo6fk1ldGhvZENhbGwoKQotewotfQotCi12b2lkCi1NZXRob2RDYWxsOjppbml0KGludCBuLCB2YV9saXN0IGFyZ3MpCi17Ci0gICAgZm9yIChpbnQgaT0wOyBpPG47IGkrKykgewotICAgICAgICBFeHByZXNzaW9uKiBleHByZXNzaW9uID0gKEV4cHJlc3Npb24qKXZhX2FyZyhhcmdzLCB2b2lkKik7Ci0gICAgICAgIHRoaXMtPmFyZ3VtZW50cy5wdXNoX2JhY2soZXhwcmVzc2lvbik7Ci0gICAgfQotfQotCi12b2lkCi1NZXRob2RDYWxsOjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICBpZiAodGhpcy0+b2JqICE9IE5VTEwpIHsKLSAgICAgICAgdGhpcy0+b2JqLT5Xcml0ZSh0byk7Ci0gICAgICAgIGZwcmludGYodG8sICIuIik7Ci0gICAgfQotICAgIGVsc2UgaWYgKHRoaXMtPmNsYXp6ICE9IE5VTEwpIHsKLSAgICAgICAgZnByaW50Zih0bywgIiVzLiIsIHRoaXMtPmNsYXp6LT5RdWFsaWZpZWROYW1lKCkuY19zdHIoKSk7Ci0gICAgfQotICAgIGZwcmludGYodG8sICIlcygiLCB0aGlzLT5uYW1lLmNfc3RyKCkpOwotICAgIFdyaXRlQXJndW1lbnRMaXN0KHRvLCB0aGlzLT5hcmd1bWVudHMpOwotICAgIGZwcmludGYodG8sICIpIik7Ci19Ci0KLUNvbXBhcmlzb246OkNvbXBhcmlzb24oRXhwcmVzc2lvbiogbCwgY29uc3Qgc3RyaW5nJiBvLCBFeHByZXNzaW9uKiByKQotICAgIDpsdmFsdWUobCksCi0gICAgIG9wKG8pLAotICAgICBydmFsdWUocikKLXsKLX0KLQotQ29tcGFyaXNvbjo6fkNvbXBhcmlzb24oKQotewotfQotCi12b2lkCi1Db21wYXJpc29uOjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICBmcHJpbnRmKHRvLCAiKCIpOwotICAgIHRoaXMtPmx2YWx1ZS0+V3JpdGUodG8pOwotICAgIGZwcmludGYodG8sICIlcyIsIHRoaXMtPm9wLmNfc3RyKCkpOwotICAgIHRoaXMtPnJ2YWx1ZS0+V3JpdGUodG8pOwotICAgIGZwcmludGYodG8sICIpIik7Ci19Ci0KLU5ld0V4cHJlc3Npb246Ok5ld0V4cHJlc3Npb24oVHlwZSogdCkKLSAgICA6dHlwZSh0KQotewotfQotCi1OZXdFeHByZXNzaW9uOjpOZXdFeHByZXNzaW9uKFR5cGUqIHQsIGludCBhcmdjID0gMCwgLi4uKQotICAgIDp0eXBlKHQpCi17Ci0gIHZhX2xpc3QgYXJnczsKLSAgdmFfc3RhcnQoYXJncywgYXJnYyk7Ci0gIGluaXQoYXJnYywgYXJncyk7Ci0gIHZhX2VuZChhcmdzKTsKLX0KLQotTmV3RXhwcmVzc2lvbjo6fk5ld0V4cHJlc3Npb24oKQotewotfQotCi12b2lkCi1OZXdFeHByZXNzaW9uOjppbml0KGludCBuLCB2YV9saXN0IGFyZ3MpCi17Ci0gICAgZm9yIChpbnQgaT0wOyBpPG47IGkrKykgewotICAgICAgICBFeHByZXNzaW9uKiBleHByZXNzaW9uID0gKEV4cHJlc3Npb24qKXZhX2FyZyhhcmdzLCB2b2lkKik7Ci0gICAgICAgIHRoaXMtPmFyZ3VtZW50cy5wdXNoX2JhY2soZXhwcmVzc2lvbik7Ci0gICAgfQotfQotCi12b2lkCi1OZXdFeHByZXNzaW9uOjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICBmcHJpbnRmKHRvLCAibmV3ICVzKCIsIHRoaXMtPnR5cGUtPkluc3RhbnRpYWJsZU5hbWUoKS5jX3N0cigpKTsKLSAgICBXcml0ZUFyZ3VtZW50TGlzdCh0bywgdGhpcy0+YXJndW1lbnRzKTsKLSAgICBmcHJpbnRmKHRvLCAiKSIpOwotfQotCi1OZXdBcnJheUV4cHJlc3Npb246Ok5ld0FycmF5RXhwcmVzc2lvbihUeXBlKiB0LCBFeHByZXNzaW9uKiBzKQotICAgIDp0eXBlKHQpLAotICAgICBzaXplKHMpCi17Ci19Ci0KLU5ld0FycmF5RXhwcmVzc2lvbjo6fk5ld0FycmF5RXhwcmVzc2lvbigpCi17Ci19Ci0KLXZvaWQKLU5ld0FycmF5RXhwcmVzc2lvbjo6V3JpdGUoRklMRSogdG8pCi17Ci0gICAgZnByaW50Zih0bywgIm5ldyAlc1siLCB0aGlzLT50eXBlLT5RdWFsaWZpZWROYW1lKCkuY19zdHIoKSk7Ci0gICAgc2l6ZS0+V3JpdGUodG8pOwotICAgIGZwcmludGYodG8sICJdIik7Ci19Ci0KLVRlcm5hcnk6OlRlcm5hcnkoKQotICAgIDpjb25kaXRpb24oTlVMTCksCi0gICAgIGlmcGFydChOVUxMKSwKLSAgICAgZWxzZXBhcnQoTlVMTCkKLXsKLX0KLQotVGVybmFyeTo6VGVybmFyeShFeHByZXNzaW9uKiBhLCBFeHByZXNzaW9uKiBiLCBFeHByZXNzaW9uKiBjKQotICAgIDpjb25kaXRpb24oYSksCi0gICAgIGlmcGFydChiKSwKLSAgICAgZWxzZXBhcnQoYykKLXsKLX0KLQotVGVybmFyeTo6flRlcm5hcnkoKQotewotfQotCi12b2lkCi1UZXJuYXJ5OjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICBmcHJpbnRmKHRvLCAiKCgiKTsKLSAgICB0aGlzLT5jb25kaXRpb24tPldyaXRlKHRvKTsKLSAgICBmcHJpbnRmKHRvLCAiKT8oIik7Ci0gICAgdGhpcy0+aWZwYXJ0LT5Xcml0ZSh0byk7Ci0gICAgZnByaW50Zih0bywgIik6KCIpOwotICAgIHRoaXMtPmVsc2VwYXJ0LT5Xcml0ZSh0byk7Ci0gICAgZnByaW50Zih0bywgIikpIik7Ci19Ci0KLUNhc3Q6OkNhc3QoKQotICAgIDp0eXBlKE5VTEwpLAotICAgICBleHByZXNzaW9uKE5VTEwpCi17Ci19Ci0KLUNhc3Q6OkNhc3QoVHlwZSogdCwgRXhwcmVzc2lvbiogZSkKLSAgICA6dHlwZSh0KSwKLSAgICAgZXhwcmVzc2lvbihlKQotewotfQotCi1DYXN0Ojp+Q2FzdCgpCi17Ci19Ci0KLXZvaWQKLUNhc3Q6OldyaXRlKEZJTEUqIHRvKQotewotICAgIGZwcmludGYodG8sICIoKCVzKSIsIHRoaXMtPnR5cGUtPlF1YWxpZmllZE5hbWUoKS5jX3N0cigpKTsKLSAgICBleHByZXNzaW9uLT5Xcml0ZSh0byk7Ci0gICAgZnByaW50Zih0bywgIikiKTsKLX0KLQotVmFyaWFibGVEZWNsYXJhdGlvbjo6VmFyaWFibGVEZWNsYXJhdGlvbihWYXJpYWJsZSogbCwgRXhwcmVzc2lvbiogciwgVHlwZSogYykKLSAgICA6bHZhbHVlKGwpLAotICAgICBjYXN0KGMpLAotICAgICBydmFsdWUocikKLXsKLX0KLQotVmFyaWFibGVEZWNsYXJhdGlvbjo6VmFyaWFibGVEZWNsYXJhdGlvbihWYXJpYWJsZSogbCkKLSAgICA6bHZhbHVlKGwpLAotICAgICBjYXN0KE5VTEwpLAotICAgICBydmFsdWUoTlVMTCkKLXsKLX0KLQotVmFyaWFibGVEZWNsYXJhdGlvbjo6flZhcmlhYmxlRGVjbGFyYXRpb24oKQotewotfQotCi12b2lkCi1WYXJpYWJsZURlY2xhcmF0aW9uOjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICB0aGlzLT5sdmFsdWUtPldyaXRlRGVjbGFyYXRpb24odG8pOwotICAgIGlmICh0aGlzLT5ydmFsdWUgIT0gTlVMTCkgewotICAgICAgICBmcHJpbnRmKHRvLCAiID0gIik7Ci0gICAgICAgIGlmICh0aGlzLT5jYXN0ICE9IE5VTEwpIHsKLSAgICAgICAgICAgIGZwcmludGYodG8sICIoJXMpIiwgdGhpcy0+Y2FzdC0+UXVhbGlmaWVkTmFtZSgpLmNfc3RyKCkpOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMtPnJ2YWx1ZS0+V3JpdGUodG8pOwotICAgIH0KLSAgICBmcHJpbnRmKHRvLCAiO1xuIik7Ci19Ci0KLUlmU3RhdGVtZW50OjpJZlN0YXRlbWVudCgpCi0gICAgOmV4cHJlc3Npb24oTlVMTCksCi0gICAgIHN0YXRlbWVudHMobmV3IFN0YXRlbWVudEJsb2NrKSwKLSAgICAgZWxzZWlmKE5VTEwpCi17Ci19Ci0KLUlmU3RhdGVtZW50Ojp+SWZTdGF0ZW1lbnQoKQotewotfQotCi12b2lkCi1JZlN0YXRlbWVudDo6V3JpdGUoRklMRSogdG8pCi17Ci0gICAgaWYgKHRoaXMtPmV4cHJlc3Npb24gIT0gTlVMTCkgewotICAgICAgICBmcHJpbnRmKHRvLCAiaWYgKCIpOwotICAgICAgICB0aGlzLT5leHByZXNzaW9uLT5Xcml0ZSh0byk7Ci0gICAgICAgIGZwcmludGYodG8sICIpICIpOwotICAgIH0KLSAgICB0aGlzLT5zdGF0ZW1lbnRzLT5Xcml0ZSh0byk7Ci0gICAgaWYgKHRoaXMtPmVsc2VpZiAhPSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYodG8sICJlbHNlICIpOwotICAgICAgICB0aGlzLT5lbHNlaWYtPldyaXRlKHRvKTsKLSAgICB9Ci19Ci0KLVJldHVyblN0YXRlbWVudDo6UmV0dXJuU3RhdGVtZW50KEV4cHJlc3Npb24qIGUpCi0gICAgOmV4cHJlc3Npb24oZSkKLXsKLX0KLQotUmV0dXJuU3RhdGVtZW50Ojp+UmV0dXJuU3RhdGVtZW50KCkKLXsKLX0KLQotdm9pZAotUmV0dXJuU3RhdGVtZW50OjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICBmcHJpbnRmKHRvLCAicmV0dXJuICIpOwotICAgIHRoaXMtPmV4cHJlc3Npb24tPldyaXRlKHRvKTsKLSAgICBmcHJpbnRmKHRvLCAiO1xuIik7Ci19Ci0KLVRyeVN0YXRlbWVudDo6VHJ5U3RhdGVtZW50KCkKLSAgICA6c3RhdGVtZW50cyhuZXcgU3RhdGVtZW50QmxvY2spCi17Ci19Ci0KLVRyeVN0YXRlbWVudDo6flRyeVN0YXRlbWVudCgpCi17Ci19Ci0KLXZvaWQKLVRyeVN0YXRlbWVudDo6V3JpdGUoRklMRSogdG8pCi17Ci0gICAgZnByaW50Zih0bywgInRyeSAiKTsKLSAgICB0aGlzLT5zdGF0ZW1lbnRzLT5Xcml0ZSh0byk7Ci19Ci0KLUNhdGNoU3RhdGVtZW50OjpDYXRjaFN0YXRlbWVudChWYXJpYWJsZSogZSkKLSAgICA6c3RhdGVtZW50cyhuZXcgU3RhdGVtZW50QmxvY2spLAotICAgICBleGNlcHRpb24oZSkKLXsKLX0KLQotQ2F0Y2hTdGF0ZW1lbnQ6On5DYXRjaFN0YXRlbWVudCgpCi17Ci19Ci0KLXZvaWQKLUNhdGNoU3RhdGVtZW50OjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICBmcHJpbnRmKHRvLCAiY2F0Y2ggIik7Ci0gICAgaWYgKHRoaXMtPmV4Y2VwdGlvbiAhPSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYodG8sICIoIik7Ci0gICAgICAgIHRoaXMtPmV4Y2VwdGlvbi0+V3JpdGVEZWNsYXJhdGlvbih0byk7Ci0gICAgICAgIGZwcmludGYodG8sICIpICIpOwotICAgIH0KLSAgICB0aGlzLT5zdGF0ZW1lbnRzLT5Xcml0ZSh0byk7Ci19Ci0KLUZpbmFsbHlTdGF0ZW1lbnQ6OkZpbmFsbHlTdGF0ZW1lbnQoKQotICAgIDpzdGF0ZW1lbnRzKG5ldyBTdGF0ZW1lbnRCbG9jaykKLXsKLX0KLQotRmluYWxseVN0YXRlbWVudDo6fkZpbmFsbHlTdGF0ZW1lbnQoKQotewotfQotCi12b2lkCi1GaW5hbGx5U3RhdGVtZW50OjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICBmcHJpbnRmKHRvLCAiZmluYWxseSAiKTsKLSAgICB0aGlzLT5zdGF0ZW1lbnRzLT5Xcml0ZSh0byk7Ci19Ci0KLUNhc2U6OkNhc2UoKQotICAgIDpzdGF0ZW1lbnRzKG5ldyBTdGF0ZW1lbnRCbG9jaykKLXsKLX0KLQotQ2FzZTo6Q2FzZShjb25zdCBzdHJpbmcmIGMpCi0gICAgOnN0YXRlbWVudHMobmV3IFN0YXRlbWVudEJsb2NrKQotewotICAgIGNhc2VzLnB1c2hfYmFjayhjKTsKLX0KLQotQ2FzZTo6fkNhc2UoKQotewotfQotCi12b2lkCi1DYXNlOjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICBpbnQgTiA9IHRoaXMtPmNhc2VzLnNpemUoKTsKLSAgICBpZiAoTiA+IDApIHsKLSAgICAgICAgZm9yIChpbnQgaT0wOyBpPE47IGkrKykgewotICAgICAgICAgICAgc3RyaW5nIHMgPSB0aGlzLT5jYXNlc1tpXTsKLSAgICAgICAgICAgIGlmIChzLmxlbmd0aCgpICE9IDApIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHRvLCAiY2FzZSAlczpcbiIsIHMuY19zdHIoKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGZwcmludGYodG8sICJkZWZhdWx0OlxuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBmcHJpbnRmKHRvLCAiZGVmYXVsdDpcbiIpOwotICAgIH0KLSAgICBzdGF0ZW1lbnRzLT5Xcml0ZSh0byk7Ci19Ci0KLVN3aXRjaFN0YXRlbWVudDo6U3dpdGNoU3RhdGVtZW50KEV4cHJlc3Npb24qIGUpCi0gICAgOmV4cHJlc3Npb24oZSkKLXsKLX0KLQotU3dpdGNoU3RhdGVtZW50Ojp+U3dpdGNoU3RhdGVtZW50KCkKLXsKLX0KLQotdm9pZAotU3dpdGNoU3RhdGVtZW50OjpXcml0ZShGSUxFKiB0bykKLXsKLSAgICBmcHJpbnRmKHRvLCAic3dpdGNoICgiKTsKLSAgICB0aGlzLT5leHByZXNzaW9uLT5Xcml0ZSh0byk7Ci0gICAgZnByaW50Zih0bywgIilcbntcbiIpOwotICAgIGludCBOID0gdGhpcy0+Y2FzZXMuc2l6ZSgpOwotICAgIGZvciAoaW50IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgdGhpcy0+Y2FzZXNbaV0tPldyaXRlKHRvKTsKLSAgICB9Ci0gICAgZnByaW50Zih0bywgIn1cbiIpOwotfQotCi1CcmVhazo6QnJlYWsoKQotewotfQotCi1CcmVhazo6fkJyZWFrKCkKLXsKLX0KLQotdm9pZAotQnJlYWs6OldyaXRlKEZJTEUqIHRvKQotewotICAgIGZwcmludGYodG8sICJicmVhaztcbiIpOwotfQotCi1NZXRob2Q6Ok1ldGhvZCgpCi0gICAgOkNsYXNzRWxlbWVudCgpLAotICAgICBtb2RpZmllcnMoMCksCi0gICAgIHJldHVyblR5cGUoTlVMTCksIC8vIChOVUxMIG1lYW5zIGNvbnN0cnVjdG9yKQotICAgICByZXR1cm5UeXBlRGltZW5zaW9uKDApLAotICAgICBzdGF0ZW1lbnRzKE5VTEwpCi17Ci19Ci0KLU1ldGhvZDo6fk1ldGhvZCgpCi17Ci19Ci0KLXZvaWQKLU1ldGhvZDo6R2F0aGVyVHlwZXMoc2V0PFR5cGUqPiogdHlwZXMpIGNvbnN0Ci17Ci0gICAgc2l6ZV90IE4sIGk7Ci0KLSAgICBpZiAodGhpcy0+cmV0dXJuVHlwZSkgewotICAgICAgICB0eXBlcy0+aW5zZXJ0KHRoaXMtPnJldHVyblR5cGUpOwotICAgIH0KLQotICAgIE4gPSB0aGlzLT5wYXJhbWV0ZXJzLnNpemUoKTsKLSAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgdGhpcy0+cGFyYW1ldGVyc1tpXS0+R2F0aGVyVHlwZXModHlwZXMpOwotICAgIH0KLQotICAgIE4gPSB0aGlzLT5leGNlcHRpb25zLnNpemUoKTsKLSAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgdHlwZXMtPmluc2VydCh0aGlzLT5leGNlcHRpb25zW2ldKTsKLSAgICB9Ci19Ci0KLXZvaWQKLU1ldGhvZDo6V3JpdGUoRklMRSogdG8pCi17Ci0gICAgc2l6ZV90IE4sIGk7Ci0KLSAgICBpZiAodGhpcy0+Y29tbWVudC5sZW5ndGgoKSAhPSAwKSB7Ci0gICAgICAgIGZwcmludGYodG8sICIlc1xuIiwgdGhpcy0+Y29tbWVudC5jX3N0cigpKTsKLSAgICB9Ci0KLSAgICBXcml0ZU1vZGlmaWVycyh0bywgdGhpcy0+bW9kaWZpZXJzLCBTQ09QRV9NQVNLIHwgU1RBVElDIHwgQUJTVFJBQ1QgfCBGSU5BTCB8IE9WRVJSSURFKTsKLQotICAgIGlmICh0aGlzLT5yZXR1cm5UeXBlICE9IE5VTEwpIHsKLSAgICAgICAgc3RyaW5nIGRpbTsKLSAgICAgICAgZm9yIChpPTA7IGk8dGhpcy0+cmV0dXJuVHlwZURpbWVuc2lvbjsgaSsrKSB7Ci0gICAgICAgICAgICBkaW0gKz0gIltdIjsKLSAgICAgICAgfQotICAgICAgICBmcHJpbnRmKHRvLCAiJXMlcyAiLCB0aGlzLT5yZXR1cm5UeXBlLT5RdWFsaWZpZWROYW1lKCkuY19zdHIoKSwKLSAgICAgICAgICAgICAgICBkaW0uY19zdHIoKSk7Ci0gICAgfQotICAgCi0gICAgZnByaW50Zih0bywgIiVzKCIsIHRoaXMtPm5hbWUuY19zdHIoKSk7Ci0KLSAgICBOID0gdGhpcy0+cGFyYW1ldGVycy5zaXplKCk7Ci0gICAgZm9yIChpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIHRoaXMtPnBhcmFtZXRlcnNbaV0tPldyaXRlRGVjbGFyYXRpb24odG8pOwotICAgICAgICBpZiAoaSAhPSBOLTEpIHsKLSAgICAgICAgICAgIGZwcmludGYodG8sICIsICIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnByaW50Zih0bywgIikiKTsKLQotICAgIE4gPSB0aGlzLT5leGNlcHRpb25zLnNpemUoKTsKLSAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgaWYgKGkgPT0gMCkgewotICAgICAgICAgICAgZnByaW50Zih0bywgIiB0aHJvd3MgIik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHRvLCAiLCAiKTsKLSAgICAgICAgfQotICAgICAgICBmcHJpbnRmKHRvLCAiJXMiLCB0aGlzLT5leGNlcHRpb25zW2ldLT5RdWFsaWZpZWROYW1lKCkuY19zdHIoKSk7Ci0gICAgfQotCi0gICAgaWYgKHRoaXMtPnN0YXRlbWVudHMgPT0gTlVMTCkgewotICAgICAgICBmcHJpbnRmKHRvLCAiO1xuIik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZnByaW50Zih0bywgIlxuIik7Ci0gICAgICAgIHRoaXMtPnN0YXRlbWVudHMtPldyaXRlKHRvKTsKLSAgICB9Ci19Ci0KLUNsYXNzOjpDbGFzcygpCi0gICAgOm1vZGlmaWVycygwKSwKLSAgICAgd2hhdChDTEFTUyksCi0gICAgIHR5cGUoTlVMTCksCi0gICAgIGV4dGVuZHMoTlVMTCkKLXsKLX0KLQotQ2xhc3M6On5DbGFzcygpCi17Ci19Ci0KLXZvaWQKLUNsYXNzOjpHYXRoZXJUeXBlcyhzZXQ8VHlwZSo+KiB0eXBlcykgY29uc3QKLXsKLSAgICBpbnQgTiwgaTsKLQotICAgIHR5cGVzLT5pbnNlcnQodGhpcy0+dHlwZSk7Ci0gICAgaWYgKHRoaXMtPmV4dGVuZHMgIT0gTlVMTCkgewotICAgICAgICB0eXBlcy0+aW5zZXJ0KHRoaXMtPmV4dGVuZHMpOwotICAgIH0KLQotICAgIE4gPSB0aGlzLT5pbnRlcmZhY2VzLnNpemUoKTsKLSAgICBmb3IgKGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgdHlwZXMtPmluc2VydCh0aGlzLT5pbnRlcmZhY2VzW2ldKTsKLSAgICB9Ci0KLSAgICBOID0gdGhpcy0+ZWxlbWVudHMuc2l6ZSgpOwotICAgIGZvciAoaT0wOyBpPE47IGkrKykgewotICAgICAgICB0aGlzLT5lbGVtZW50c1tpXS0+R2F0aGVyVHlwZXModHlwZXMpOwotICAgIH0KLX0KLQotdm9pZAotQ2xhc3M6OldyaXRlKEZJTEUqIHRvKQotewotICAgIHNpemVfdCBOLCBpOwotCi0gICAgaWYgKHRoaXMtPmNvbW1lbnQubGVuZ3RoKCkgIT0gMCkgewotICAgICAgICBmcHJpbnRmKHRvLCAiJXNcbiIsIHRoaXMtPmNvbW1lbnQuY19zdHIoKSk7Ci0gICAgfQotCi0gICAgV3JpdGVNb2RpZmllcnModG8sIHRoaXMtPm1vZGlmaWVycywgQUxMX01PRElGSUVSUyk7Ci0KLSAgICBpZiAodGhpcy0+d2hhdCA9PSBDbGFzczo6Q0xBU1MpIHsKLSAgICAgICAgZnByaW50Zih0bywgImNsYXNzICIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGZwcmludGYodG8sICJpbnRlcmZhY2UgIik7Ci0gICAgfQotCi0gICAgc3RyaW5nIG5hbWUgPSB0aGlzLT50eXBlLT5OYW1lKCk7Ci0gICAgc2l6ZV90IHBvcyA9IG5hbWUucmZpbmQoJy4nKTsKLSAgICBpZiAocG9zICE9IHN0cmluZzo6bnBvcykgewotICAgICAgICBuYW1lID0gbmFtZS5jX3N0cigpICsgcG9zICsgMTsKLSAgICB9Ci0KLSAgICBmcHJpbnRmKHRvLCAiJXMiLCBuYW1lLmNfc3RyKCkpOwotCi0gICAgaWYgKHRoaXMtPmV4dGVuZHMgIT0gTlVMTCkgewotICAgICAgICBmcHJpbnRmKHRvLCAiIGV4dGVuZHMgJXMiLCB0aGlzLT5leHRlbmRzLT5RdWFsaWZpZWROYW1lKCkuY19zdHIoKSk7Ci0gICAgfQotCi0gICAgTiA9IHRoaXMtPmludGVyZmFjZXMuc2l6ZSgpOwotICAgIGlmIChOICE9IDApIHsKLSAgICAgICAgaWYgKHRoaXMtPndoYXQgPT0gQ2xhc3M6OkNMQVNTKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHRvLCAiIGltcGxlbWVudHMiKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGZwcmludGYodG8sICIgZXh0ZW5kcyIpOwotICAgICAgICB9Ci0gICAgICAgIGZvciAoaT0wOyBpPE47IGkrKykgewotICAgICAgICAgICAgZnByaW50Zih0bywgIiAlcyIsIHRoaXMtPmludGVyZmFjZXNbaV0tPlF1YWxpZmllZE5hbWUoKS5jX3N0cigpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZwcmludGYodG8sICJcbiIpOwotICAgIGZwcmludGYodG8sICJ7XG4iKTsKLQotICAgIE4gPSB0aGlzLT5lbGVtZW50cy5zaXplKCk7Ci0gICAgZm9yIChpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIHRoaXMtPmVsZW1lbnRzW2ldLT5Xcml0ZSh0byk7Ci0gICAgfQotCi0gICAgZnByaW50Zih0bywgIn1cbiIpOwotCi19Ci0KLURvY3VtZW50OjpEb2N1bWVudCgpCi17Ci19Ci0KLURvY3VtZW50Ojp+RG9jdW1lbnQoKQotewotfQotCi1zdGF0aWMgc3RyaW5nCi1lc2NhcGVfYmFja3NsYXNoZXMoY29uc3Qgc3RyaW5nJiBzdHIpCi17Ci0gICAgc3RyaW5nIHJlc3VsdDsKLSAgICBjb25zdCBzaXplX3QgST1zdHIubGVuZ3RoKCk7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPEk7IGkrKykgewotICAgICAgICBjaGFyIGMgPSBzdHJbaV07Ci0gICAgICAgIGlmIChjID09ICdcXCcpIHsKLSAgICAgICAgICAgIHJlc3VsdCArPSAiXFxcXCI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQgKz0gYzsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lkCi1Eb2N1bWVudDo6V3JpdGUoRklMRSogdG8pCi17Ci0gICAgc2l6ZV90IE4sIGk7Ci0KLSAgICBpZiAodGhpcy0+Y29tbWVudC5sZW5ndGgoKSAhPSAwKSB7Ci0gICAgICAgIGZwcmludGYodG8sICIlc1xuIiwgdGhpcy0+Y29tbWVudC5jX3N0cigpKTsKLSAgICB9Ci0gICAgZnByaW50Zih0bywgIi8qXG4iCi0gICAgICAgICAgICAgICAgIiAqIFRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4gIERPIE5PVCBNT0RJRlkuXG4iCi0gICAgICAgICAgICAgICAgIiAqIE9yaWdpbmFsIGZpbGU6ICVzXG4iCi0gICAgICAgICAgICAgICAgIiAqL1xuIiwgZXNjYXBlX2JhY2tzbGFzaGVzKHRoaXMtPm9yaWdpbmFsU3JjKS5jX3N0cigpKTsKLSAgICBpZiAodGhpcy0+cGFja2FnZS5sZW5ndGgoKSAhPSAwKSB7Ci0gICAgICAgIGZwcmludGYodG8sICJwYWNrYWdlICVzO1xuIiwgdGhpcy0+cGFja2FnZS5jX3N0cigpKTsKLSAgICB9Ci0KLSAgICBOID0gdGhpcy0+Y2xhc3Nlcy5zaXplKCk7Ci0gICAgZm9yIChpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIENsYXNzKiBjID0gdGhpcy0+Y2xhc3Nlc1tpXTsKLSAgICAgICAgYy0+V3JpdGUodG8pOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvdG9vbHMvYWlkbC9BU1QuaCBiL3Rvb2xzL2FpZGwvQVNULmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhZDVlN2EuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWlkbC9BU1QuaAorKysgL2Rldi9udWxsCkBAIC0xLDM3MSArMCwwIEBACi0jaWZuZGVmIEFJRExfQVNUX0gKLSNkZWZpbmUgQUlETF9BU1RfSAotCi0jaW5jbHVkZSA8c3RyaW5nPgotI2luY2x1ZGUgPHZlY3Rvcj4KLSNpbmNsdWRlIDxzZXQ+Ci0jaW5jbHVkZSA8c3RkYXJnLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotY2xhc3MgVHlwZTsKLQotZW51bSB7Ci0gICAgUEFDS0FHRV9QUklWQVRFID0gMHgwMDAwMDAwMCwKLSAgICBQVUJMSUMgICAgICAgICAgPSAweDAwMDAwMDAxLAotICAgIFBSSVZBVEUgICAgICAgICA9IDB4MDAwMDAwMDIsCi0gICAgUFJPVEVDVEVEICAgICAgID0gMHgwMDAwMDAwMywKLSAgICBTQ09QRV9NQVNLICAgICAgPSAweDAwMDAwMDAzLAotCi0gICAgU1RBVElDICAgICAgICAgID0gMHgwMDAwMDAxMCwKLSAgICBGSU5BTCAgICAgICAgICAgPSAweDAwMDAwMDIwLAotICAgIEFCU1RSQUNUICAgICAgICA9IDB4MDAwMDAwNDAsCi0KLSAgICBPVkVSUklERSAgICAgICAgPSAweDAwMDAwMTAwLAotCi0gICAgQUxMX01PRElGSUVSUyAgID0gMHhmZmZmZmZmZgotfTsKLQotLy8gV3JpdGUgdGhlIG1vZGlmaWVycyB0aGF0IGFyZSBzZXQgaW4gYm90aCBtb2QgYW5kIG1hc2sKLXZvaWQgV3JpdGVNb2RpZmllcnMoRklMRSogdG8sIGludCBtb2QsIGludCBtYXNrKTsKLQotc3RydWN0IENsYXNzRWxlbWVudAotewotICAgIENsYXNzRWxlbWVudCgpOwotICAgIHZpcnR1YWwgfkNsYXNzRWxlbWVudCgpOwotCi0gICAgdmlydHVhbCB2b2lkIEdhdGhlclR5cGVzKHNldDxUeXBlKj4qIHR5cGVzKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIFdyaXRlKEZJTEUqIHRvKSA9IDA7Ci19OwotCi1zdHJ1Y3QgRXhwcmVzc2lvbgotewotICAgIHZpcnR1YWwgfkV4cHJlc3Npb24oKTsKLSAgICB2aXJ0dWFsIHZvaWQgV3JpdGUoRklMRSogdG8pID0gMDsKLX07Ci0KLXN0cnVjdCBMaXRlcmFsRXhwcmVzc2lvbiA6IHB1YmxpYyBFeHByZXNzaW9uCi17Ci0gICAgc3RyaW5nIHZhbHVlOwotCi0gICAgTGl0ZXJhbEV4cHJlc3Npb24oY29uc3Qgc3RyaW5nJiB2YWx1ZSk7Ci0gICAgdmlydHVhbCB+TGl0ZXJhbEV4cHJlc3Npb24oKTsKLSAgICB2aXJ0dWFsIHZvaWQgV3JpdGUoRklMRSogdG8pOwotfTsKLQotLy8gVE9ETzogYWxzbyBlc2NhcGUgdGhlIGNvbnRlbnRzLiAgbm90IG5lZWRlZCBmb3Igbm93Ci1zdHJ1Y3QgU3RyaW5nTGl0ZXJhbEV4cHJlc3Npb24gOiBwdWJsaWMgRXhwcmVzc2lvbgotewotICAgIHN0cmluZyB2YWx1ZTsKLQotICAgIFN0cmluZ0xpdGVyYWxFeHByZXNzaW9uKGNvbnN0IHN0cmluZyYgdmFsdWUpOwotICAgIHZpcnR1YWwgflN0cmluZ0xpdGVyYWxFeHByZXNzaW9uKCk7Ci0gICAgdmlydHVhbCB2b2lkIFdyaXRlKEZJTEUqIHRvKTsKLX07Ci0KLXN0cnVjdCBWYXJpYWJsZSA6IHB1YmxpYyBFeHByZXNzaW9uCi17Ci0gICAgVHlwZSogdHlwZTsKLSAgICBzdHJpbmcgbmFtZTsKLSAgICBpbnQgZGltZW5zaW9uOwotCi0gICAgVmFyaWFibGUoKTsKLSAgICBWYXJpYWJsZShUeXBlKiB0eXBlLCBjb25zdCBzdHJpbmcmIG5hbWUpOwotICAgIFZhcmlhYmxlKFR5cGUqIHR5cGUsIGNvbnN0IHN0cmluZyYgbmFtZSwgaW50IGRpbWVuc2lvbik7Ci0gICAgdmlydHVhbCB+VmFyaWFibGUoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBHYXRoZXJUeXBlcyhzZXQ8VHlwZSo+KiB0eXBlcykgY29uc3Q7Ci0gICAgdm9pZCBXcml0ZURlY2xhcmF0aW9uKEZJTEUqIHRvKTsKLSAgICB2b2lkIFdyaXRlKEZJTEUqIHRvKTsKLX07Ci0KLXN0cnVjdCBGaWVsZFZhcmlhYmxlIDogcHVibGljIEV4cHJlc3Npb24KLXsKLSAgICBFeHByZXNzaW9uKiBvYmplY3Q7Ci0gICAgVHlwZSogY2xheno7Ci0gICAgc3RyaW5nIG5hbWU7Ci0KLSAgICBGaWVsZFZhcmlhYmxlKEV4cHJlc3Npb24qIG9iamVjdCwgY29uc3Qgc3RyaW5nJiBuYW1lKTsKLSAgICBGaWVsZFZhcmlhYmxlKFR5cGUqIGNsYXp6LCBjb25zdCBzdHJpbmcmIG5hbWUpOwotICAgIHZpcnR1YWwgfkZpZWxkVmFyaWFibGUoKTsKLQotICAgIHZvaWQgV3JpdGUoRklMRSogdG8pOwotfTsKLQotc3RydWN0IEZpZWxkIDogcHVibGljIENsYXNzRWxlbWVudAotewotICAgIHN0cmluZyBjb21tZW50OwotICAgIGludCBtb2RpZmllcnM7Ci0gICAgVmFyaWFibGUgKnZhcmlhYmxlOwotICAgIHN0cmluZyB2YWx1ZTsKLQotICAgIEZpZWxkKCk7Ci0gICAgRmllbGQoaW50IG1vZGlmaWVycywgVmFyaWFibGUqIHZhcmlhYmxlKTsKLSAgICB2aXJ0dWFsIH5GaWVsZCgpOwotCi0gICAgdmlydHVhbCB2b2lkIEdhdGhlclR5cGVzKHNldDxUeXBlKj4qIHR5cGVzKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgV3JpdGUoRklMRSogdG8pOwotfTsKLQotc3RydWN0IFN0YXRlbWVudAotewotICAgIHZpcnR1YWwgflN0YXRlbWVudCgpOwotICAgIHZpcnR1YWwgdm9pZCBXcml0ZShGSUxFKiB0bykgPSAwOwotfTsKLQotc3RydWN0IFN0YXRlbWVudEJsb2NrIDogcHVibGljIFN0YXRlbWVudAotewotICAgIHZlY3RvcjxTdGF0ZW1lbnQqPiBzdGF0ZW1lbnRzOwotCi0gICAgU3RhdGVtZW50QmxvY2soKTsKLSAgICB2aXJ0dWFsIH5TdGF0ZW1lbnRCbG9jaygpOwotICAgIHZpcnR1YWwgdm9pZCBXcml0ZShGSUxFKiB0byk7Ci0KLSAgICB2b2lkIEFkZChTdGF0ZW1lbnQqIHN0YXRlbWVudCk7Ci0gICAgdm9pZCBBZGQoRXhwcmVzc2lvbiogZXhwcmVzc2lvbik7Ci19OwotCi1zdHJ1Y3QgRXhwcmVzc2lvblN0YXRlbWVudCA6IHB1YmxpYyBTdGF0ZW1lbnQKLXsKLSAgICBFeHByZXNzaW9uKiBleHByZXNzaW9uOwotCi0gICAgRXhwcmVzc2lvblN0YXRlbWVudChFeHByZXNzaW9uKiBleHByZXNzaW9uKTsKLSAgICB2aXJ0dWFsIH5FeHByZXNzaW9uU3RhdGVtZW50KCk7Ci0gICAgdmlydHVhbCB2b2lkIFdyaXRlKEZJTEUqIHRvKTsKLX07Ci0KLXN0cnVjdCBBc3NpZ25tZW50IDogcHVibGljIEV4cHJlc3Npb24KLXsKLSAgICBWYXJpYWJsZSogbHZhbHVlOwotICAgIEV4cHJlc3Npb24qIHJ2YWx1ZTsKLSAgICBUeXBlKiBjYXN0OwotCi0gICAgQXNzaWdubWVudChWYXJpYWJsZSogbHZhbHVlLCBFeHByZXNzaW9uKiBydmFsdWUpOwotICAgIEFzc2lnbm1lbnQoVmFyaWFibGUqIGx2YWx1ZSwgRXhwcmVzc2lvbiogcnZhbHVlLCBUeXBlKiBjYXN0KTsKLSAgICB2aXJ0dWFsIH5Bc3NpZ25tZW50KCk7Ci0gICAgdmlydHVhbCB2b2lkIFdyaXRlKEZJTEUqIHRvKTsKLX07Ci0KLXN0cnVjdCBNZXRob2RDYWxsIDogcHVibGljIEV4cHJlc3Npb24KLXsKLSAgICBFeHByZXNzaW9uKiBvYmo7Ci0gICAgVHlwZSogY2xheno7Ci0gICAgc3RyaW5nIG5hbWU7Ci0gICAgdmVjdG9yPEV4cHJlc3Npb24qPiBhcmd1bWVudHM7Ci0gICAgdmVjdG9yPHN0cmluZz4gZXhjZXB0aW9uczsKLQotICAgIE1ldGhvZENhbGwoY29uc3Qgc3RyaW5nJiBuYW1lKTsKLSAgICBNZXRob2RDYWxsKGNvbnN0IHN0cmluZyYgbmFtZSwgaW50IGFyZ2MsIC4uLik7Ci0gICAgTWV0aG9kQ2FsbChFeHByZXNzaW9uKiBvYmosIGNvbnN0IHN0cmluZyYgbmFtZSk7Ci0gICAgTWV0aG9kQ2FsbChUeXBlKiBjbGF6eiwgY29uc3Qgc3RyaW5nJiBuYW1lKTsKLSAgICBNZXRob2RDYWxsKEV4cHJlc3Npb24qIG9iaiwgY29uc3Qgc3RyaW5nJiBuYW1lLCBpbnQgYXJnYywgLi4uKTsKLSAgICBNZXRob2RDYWxsKFR5cGUqIGNsYXp6LCBjb25zdCBzdHJpbmcmIG5hbWUsIGludCBhcmdjLCAuLi4pOwotICAgIHZpcnR1YWwgfk1ldGhvZENhbGwoKTsKLSAgICB2aXJ0dWFsIHZvaWQgV3JpdGUoRklMRSogdG8pOwotCi1wcml2YXRlOgotICAgIHZvaWQgaW5pdChpbnQgbiwgdmFfbGlzdCBhcmdzKTsKLX07Ci0KLXN0cnVjdCBDb21wYXJpc29uIDogcHVibGljIEV4cHJlc3Npb24KLXsKLSAgICBFeHByZXNzaW9uKiBsdmFsdWU7Ci0gICAgc3RyaW5nIG9wOwotICAgIEV4cHJlc3Npb24qIHJ2YWx1ZTsKLQotICAgIENvbXBhcmlzb24oRXhwcmVzc2lvbiogbHZhbHVlLCBjb25zdCBzdHJpbmcmIG9wLCBFeHByZXNzaW9uKiBydmFsdWUpOwotICAgIHZpcnR1YWwgfkNvbXBhcmlzb24oKTsKLSAgICB2aXJ0dWFsIHZvaWQgV3JpdGUoRklMRSogdG8pOwotfTsKLQotc3RydWN0IE5ld0V4cHJlc3Npb24gOiBwdWJsaWMgRXhwcmVzc2lvbgotewotICAgIFR5cGUqIHR5cGU7Ci0gICAgdmVjdG9yPEV4cHJlc3Npb24qPiBhcmd1bWVudHM7Ci0KLSAgICBOZXdFeHByZXNzaW9uKFR5cGUqIHR5cGUpOwotICAgIE5ld0V4cHJlc3Npb24oVHlwZSogdHlwZSwgaW50IGFyZ2MsIC4uLik7Ci0gICAgdmlydHVhbCB+TmV3RXhwcmVzc2lvbigpOwotICAgIHZpcnR1YWwgdm9pZCBXcml0ZShGSUxFKiB0byk7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBpbml0KGludCBuLCB2YV9saXN0IGFyZ3MpOwotfTsKLQotc3RydWN0IE5ld0FycmF5RXhwcmVzc2lvbiA6IHB1YmxpYyBFeHByZXNzaW9uCi17Ci0gICAgVHlwZSogdHlwZTsKLSAgICBFeHByZXNzaW9uKiBzaXplOwotCi0gICAgTmV3QXJyYXlFeHByZXNzaW9uKFR5cGUqIHR5cGUsIEV4cHJlc3Npb24qIHNpemUpOwotICAgIHZpcnR1YWwgfk5ld0FycmF5RXhwcmVzc2lvbigpOwotICAgIHZpcnR1YWwgdm9pZCBXcml0ZShGSUxFKiB0byk7Ci19OwotCi1zdHJ1Y3QgVGVybmFyeSA6IHB1YmxpYyBFeHByZXNzaW9uCi17Ci0gICAgRXhwcmVzc2lvbiogY29uZGl0aW9uOwotICAgIEV4cHJlc3Npb24qIGlmcGFydDsKLSAgICBFeHByZXNzaW9uKiBlbHNlcGFydDsKLQotICAgIFRlcm5hcnkoKTsKLSAgICBUZXJuYXJ5KEV4cHJlc3Npb24qIGNvbmRpdGlvbiwgRXhwcmVzc2lvbiogaWZwYXJ0LCBFeHByZXNzaW9uKiBlbHNlcGFydCk7Ci0gICAgdmlydHVhbCB+VGVybmFyeSgpOwotICAgIHZpcnR1YWwgdm9pZCBXcml0ZShGSUxFKiB0byk7Ci19OwotCi1zdHJ1Y3QgQ2FzdCA6IHB1YmxpYyBFeHByZXNzaW9uCi17Ci0gICAgVHlwZSogdHlwZTsKLSAgICBFeHByZXNzaW9uKiBleHByZXNzaW9uOwotCi0gICAgQ2FzdCgpOwotICAgIENhc3QoVHlwZSogdHlwZSwgRXhwcmVzc2lvbiogZXhwcmVzc2lvbik7Ci0gICAgdmlydHVhbCB+Q2FzdCgpOwotICAgIHZpcnR1YWwgdm9pZCBXcml0ZShGSUxFKiB0byk7Ci19OwotCi1zdHJ1Y3QgVmFyaWFibGVEZWNsYXJhdGlvbiA6IHB1YmxpYyBTdGF0ZW1lbnQKLXsKLSAgICBWYXJpYWJsZSogbHZhbHVlOwotICAgIFR5cGUqIGNhc3Q7Ci0gICAgRXhwcmVzc2lvbiogcnZhbHVlOwotCi0gICAgVmFyaWFibGVEZWNsYXJhdGlvbihWYXJpYWJsZSogbHZhbHVlKTsKLSAgICBWYXJpYWJsZURlY2xhcmF0aW9uKFZhcmlhYmxlKiBsdmFsdWUsIEV4cHJlc3Npb24qIHJ2YWx1ZSwgVHlwZSogY2FzdCA9IE5VTEwpOwotICAgIHZpcnR1YWwgflZhcmlhYmxlRGVjbGFyYXRpb24oKTsKLSAgICB2aXJ0dWFsIHZvaWQgV3JpdGUoRklMRSogdG8pOwotfTsKLQotc3RydWN0IElmU3RhdGVtZW50IDogcHVibGljIFN0YXRlbWVudAotewotICAgIEV4cHJlc3Npb24qIGV4cHJlc3Npb247Ci0gICAgU3RhdGVtZW50QmxvY2sqIHN0YXRlbWVudHM7Ci0gICAgSWZTdGF0ZW1lbnQqIGVsc2VpZjsKLQotICAgIElmU3RhdGVtZW50KCk7Ci0gICAgdmlydHVhbCB+SWZTdGF0ZW1lbnQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgV3JpdGUoRklMRSogdG8pOwotfTsKLQotc3RydWN0IFJldHVyblN0YXRlbWVudCA6IHB1YmxpYyBTdGF0ZW1lbnQKLXsKLSAgICBFeHByZXNzaW9uKiBleHByZXNzaW9uOwotCi0gICAgUmV0dXJuU3RhdGVtZW50KEV4cHJlc3Npb24qIGV4cHJlc3Npb24pOwotICAgIHZpcnR1YWwgflJldHVyblN0YXRlbWVudCgpOwotICAgIHZpcnR1YWwgdm9pZCBXcml0ZShGSUxFKiB0byk7Ci19OwotCi1zdHJ1Y3QgVHJ5U3RhdGVtZW50IDogcHVibGljIFN0YXRlbWVudAotewotICAgIFN0YXRlbWVudEJsb2NrKiBzdGF0ZW1lbnRzOwotCi0gICAgVHJ5U3RhdGVtZW50KCk7Ci0gICAgdmlydHVhbCB+VHJ5U3RhdGVtZW50KCk7Ci0gICAgdmlydHVhbCB2b2lkIFdyaXRlKEZJTEUqIHRvKTsKLX07Ci0KLXN0cnVjdCBDYXRjaFN0YXRlbWVudCA6IHB1YmxpYyBTdGF0ZW1lbnQKLXsKLSAgICBTdGF0ZW1lbnRCbG9jayogc3RhdGVtZW50czsKLSAgICBWYXJpYWJsZSogZXhjZXB0aW9uOwotCi0gICAgQ2F0Y2hTdGF0ZW1lbnQoVmFyaWFibGUqIGV4Y2VwdGlvbik7Ci0gICAgdmlydHVhbCB+Q2F0Y2hTdGF0ZW1lbnQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgV3JpdGUoRklMRSogdG8pOwotfTsKLQotc3RydWN0IEZpbmFsbHlTdGF0ZW1lbnQgOiBwdWJsaWMgU3RhdGVtZW50Ci17Ci0gICAgU3RhdGVtZW50QmxvY2sqIHN0YXRlbWVudHM7Ci0KLSAgICBGaW5hbGx5U3RhdGVtZW50KCk7Ci0gICAgdmlydHVhbCB+RmluYWxseVN0YXRlbWVudCgpOwotICAgIHZpcnR1YWwgdm9pZCBXcml0ZShGSUxFKiB0byk7Ci19OwotCi1zdHJ1Y3QgQ2FzZQotewotICAgIHZlY3RvcjxzdHJpbmc+IGNhc2VzOwotICAgIFN0YXRlbWVudEJsb2NrKiBzdGF0ZW1lbnRzOwotCi0gICAgQ2FzZSgpOwotICAgIENhc2UoY29uc3Qgc3RyaW5nJiBjKTsKLSAgICB2aXJ0dWFsIH5DYXNlKCk7Ci0gICAgdmlydHVhbCB2b2lkIFdyaXRlKEZJTEUqIHRvKTsKLX07Ci0KLXN0cnVjdCBTd2l0Y2hTdGF0ZW1lbnQgOiBwdWJsaWMgU3RhdGVtZW50Ci17Ci0gICAgRXhwcmVzc2lvbiogZXhwcmVzc2lvbjsKLSAgICB2ZWN0b3I8Q2FzZSo+IGNhc2VzOwotCi0gICAgU3dpdGNoU3RhdGVtZW50KEV4cHJlc3Npb24qIGV4cHJlc3Npb24pOwotICAgIHZpcnR1YWwgflN3aXRjaFN0YXRlbWVudCgpOwotICAgIHZpcnR1YWwgdm9pZCBXcml0ZShGSUxFKiB0byk7Ci19OwotCi1zdHJ1Y3QgQnJlYWsgOiBwdWJsaWMgU3RhdGVtZW50Ci17Ci0gICAgQnJlYWsoKTsKLSAgICB2aXJ0dWFsIH5CcmVhaygpOwotICAgIHZpcnR1YWwgdm9pZCBXcml0ZShGSUxFKiB0byk7Ci19OwotCi1zdHJ1Y3QgTWV0aG9kIDogcHVibGljIENsYXNzRWxlbWVudAotewotICAgIHN0cmluZyBjb21tZW50OwotICAgIGludCBtb2RpZmllcnM7Ci0gICAgVHlwZSogcmV0dXJuVHlwZTsKLSAgICBzaXplX3QgcmV0dXJuVHlwZURpbWVuc2lvbjsKLSAgICBzdHJpbmcgbmFtZTsKLSAgICB2ZWN0b3I8VmFyaWFibGUqPiBwYXJhbWV0ZXJzOwotICAgIHZlY3RvcjxUeXBlKj4gZXhjZXB0aW9uczsKLSAgICBTdGF0ZW1lbnRCbG9jayogc3RhdGVtZW50czsKLQotICAgIE1ldGhvZCgpOwotICAgIHZpcnR1YWwgfk1ldGhvZCgpOwotCi0gICAgdmlydHVhbCB2b2lkIEdhdGhlclR5cGVzKHNldDxUeXBlKj4qIHR5cGVzKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgV3JpdGUoRklMRSogdG8pOwotfTsKLQotc3RydWN0IENsYXNzIDogcHVibGljIENsYXNzRWxlbWVudAotewotICAgIGVudW0gewotICAgICAgICBDTEFTUywKLSAgICAgICAgSU5URVJGQUNFCi0gICAgfTsKLQotICAgIHN0cmluZyBjb21tZW50OwotICAgIGludCBtb2RpZmllcnM7Ci0gICAgaW50IHdoYXQ7ICAgICAgICAgICAgICAgLy8gQ0xBU1Mgb3IgSU5URVJGQUNFCi0gICAgVHlwZSogdHlwZTsKLSAgICBUeXBlKiBleHRlbmRzOwotICAgIHZlY3RvcjxUeXBlKj4gaW50ZXJmYWNlczsKLSAgICB2ZWN0b3I8Q2xhc3NFbGVtZW50Kj4gZWxlbWVudHM7Ci0KLSAgICBDbGFzcygpOwotICAgIHZpcnR1YWwgfkNsYXNzKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgR2F0aGVyVHlwZXMoc2V0PFR5cGUqPiogdHlwZXMpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBXcml0ZShGSUxFKiB0byk7Ci19OwotCi1zdHJ1Y3QgRG9jdW1lbnQKLXsKLSAgICBzdHJpbmcgY29tbWVudDsKLSAgICBzdHJpbmcgcGFja2FnZTsKLSAgICBzdHJpbmcgb3JpZ2luYWxTcmM7Ci0gICAgc2V0PFR5cGUqPiBpbXBvcnRzOwotICAgIHZlY3RvcjxDbGFzcyo+IGNsYXNzZXM7Ci0KLSAgICBEb2N1bWVudCgpOwotICAgIHZpcnR1YWwgfkRvY3VtZW50KCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgV3JpdGUoRklMRSogdG8pOwotfTsKLQotI2VuZGlmIC8vIEFJRExfQVNUX0gKZGlmZiAtLWdpdCBhL3Rvb2xzL2FpZGwvQW5kcm9pZC5tayBiL3Rvb2xzL2FpZGwvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzdkNDZhYi4uMDAwMDAwMAotLS0gYS90b29scy9haWRsL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi0jIENvcHlyaWdodCAyMDA3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgQ29waWVzIGZpbGVzIGludG8gdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgZGVzY3JpYmVkIGJ5IGEgbWFuaWZlc3QKLQotIyBUaGlzIHRvb2wgaXMgcHJlYnVpbHQgaWYgd2UncmUgZG9pbmcgYW4gYXBwLW9ubHkgYnVpbGQuCi1pZmVxICgkKFRBUkdFVF9CVUlMRF9BUFBTKSwpCi0KLUxPQ0FMX1BBVEg6PSAkKGNhbGwgbXktZGlyKQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi0KLUxPQ0FMX1NSQ19GSUxFUyA6PSBcCi0JYWlkbF9sYW5ndWFnZV9sLmwgXAotCWFpZGxfbGFuZ3VhZ2VfeS55IFwKLQlhaWRsLmNwcCBcCi0JYWlkbF9sYW5ndWFnZS5jcHAgXAotCW9wdGlvbnMuY3BwIFwKLQlzZWFyY2hfcGF0aC5jcHAgXAotCUFTVC5jcHAgXAotCVR5cGUuY3BwIFwKLQlnZW5lcmF0ZV9qYXZhLmNwcCBcCi0JZ2VuZXJhdGVfamF2YV9iaW5kZXIuY3BwIFwKLQlnZW5lcmF0ZV9qYXZhX3JwYy5jcHAKLQotTE9DQUxfQ0ZMQUdTIDo9IC1nCi1MT0NBTF9NT0RVTEUgOj0gYWlkbAotCi1pbmNsdWRlICQoQlVJTERfSE9TVF9FWEVDVVRBQkxFKQotCi1lbmRpZiAjIFRBUkdFVF9CVUlMRF9BUFBTCmRpZmYgLS1naXQgYS90b29scy9haWRsL05PVElDRSBiL3Rvb2xzL2FpZGwvTk9USUNFCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNWIxZWZhLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FpZGwvTk9USUNFCisrKyAvZGV2L251bGwKQEAgLTEsMTkwICswLDAgQEAKLQotICAgQ29weXJpZ2h0IChjKSAyMDA1LTIwMDgsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLQotICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0KLSAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0Ci0gICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCi0KLSAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgotCi0gICAxLiBEZWZpbml0aW9ucy4KLQotICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKLSAgICAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgotCi0gICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQotICAgICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgotCi0gICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCi0gICAgICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCi0gICAgICBjb250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAotICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCi0gICAgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgotICAgICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCi0gICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgotCi0gICAgICAiWW91IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5Ci0gICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgotCi0gICAgICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKLSAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KLSAgICAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCi0KLSAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCi0gICAgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0Ci0gICAgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCi0gICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCi0KLSAgICAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCi0gICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCi0gICAgICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsKLSAgICAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCi0KLSAgICAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKLSAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKLSAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKLSAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCi0gICAgICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KLSAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKLSAgICAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCi0KLSAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCi0gICAgICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCi0gICAgICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkKLSAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKLSAgICAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBvZgotICAgICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0ZWQiCi0gICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50Ci0gICAgICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bwotICAgICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywKLSAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCi0gICAgICBMaWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKLSAgICAgIGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNlCi0gICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKLQotICAgICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKLSAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAotICAgICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCi0KLSAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAotICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKLSAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAotICAgICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCi0gICAgICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgotCi0gICAzLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKLSAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKLSAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCi0gICAgICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKLSAgICAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAotICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKLSAgICAgIGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCi0gICAgICBDb250cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCi0gICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQotICAgICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKLSAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKLSAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0Ci0gICAgICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2VzCi0gICAgICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUKLSAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KLQotICAgNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUKLSAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAotICAgICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKLSAgICAgIG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotCi0gICAgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgotICAgICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9mIHRoaXMgTGljZW5zZTsgYW5kCi0KLSAgICAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKLSAgICAgICAgICBzdGF0aW5nIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKLQotICAgICAgKGMpIFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCi0gICAgICAgICAgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAotICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCi0gICAgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgotICAgICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKLQotICAgICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRzCi0gICAgICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVzdAotICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAotICAgICAgICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAotICAgICAgICAgIHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9uZQotICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCi0gICAgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgotICAgICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAotICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKLSAgICAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMKLSAgICAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCi0gICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KLSAgICAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQotICAgICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBwcm92aWRlZAotICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAotICAgICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4KLQotICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCi0gICAgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCi0gICAgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCi0gICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKLSAgICAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAotICAgICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KLQotICAgNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAotICAgICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCi0gICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotICAgICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCi0gICAgICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5Ci0gICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAotICAgICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgotCi0gICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCi0gICAgICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCi0gICAgICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUKLSAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgotCi0gICA3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKLSAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKLSAgICAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCi0gICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucwotICAgICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQotICAgICAgUEFSVElDVUxBUiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCi0gICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKLSAgICAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KLQotICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCi0gICAgICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwKLSAgICAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRlIGFuZCBncm9zc2x5Ci0gICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQotICAgICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAotICAgICAgaW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhCi0gICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCi0gICAgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCi0gICAgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAotICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgotICAgICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgotCi0gICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCi0gICAgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAotICAgICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKLSAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCi0gICAgICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qgb25seQotICAgICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhhbGYKLSAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKLSAgICAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQotICAgICAgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgotICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCi0KLSAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUwotCmRpZmYgLS1naXQgYS90b29scy9haWRsL1R5cGUuY3BwIGIvdG9vbHMvYWlkbC9UeXBlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDU3MmFmNi4uMDAwMDAwMAotLS0gYS90b29scy9haWRsL1R5cGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTQ0MCArMCwwIEBACi0jaW5jbHVkZSAiVHlwZS5oIgotCi1OYW1lc3BhY2UgTkFNRVM7Ci0KLVR5cGUqIFZPSURfVFlQRTsKLVR5cGUqIEJPT0xFQU5fVFlQRTsKLVR5cGUqIEJZVEVfVFlQRTsKLVR5cGUqIENIQVJfVFlQRTsKLVR5cGUqIElOVF9UWVBFOwotVHlwZSogTE9OR19UWVBFOwotVHlwZSogRkxPQVRfVFlQRTsKLVR5cGUqIERPVUJMRV9UWVBFOwotVHlwZSogU1RSSU5HX1RZUEU7Ci1UeXBlKiBPQkpFQ1RfVFlQRTsKLVR5cGUqIENIQVJfU0VRVUVOQ0VfVFlQRTsKLVR5cGUqIFRFWFRfVVRJTFNfVFlQRTsKLVR5cGUqIFJFTU9URV9FWENFUFRJT05fVFlQRTsKLVR5cGUqIFJVTlRJTUVfRVhDRVBUSU9OX1RZUEU7Ci1UeXBlKiBJQklOREVSX1RZUEU7Ci1UeXBlKiBJSU5URVJGQUNFX1RZUEU7Ci1UeXBlKiBCSU5ERVJfTkFUSVZFX1RZUEU7Ci1UeXBlKiBCSU5ERVJfUFJPWFlfVFlQRTsKLVR5cGUqIFBBUkNFTF9UWVBFOwotVHlwZSogUEFSQ0VMQUJMRV9JTlRFUkZBQ0VfVFlQRTsKLVR5cGUqIENPTlRFWFRfVFlQRTsKLVR5cGUqIE1BUF9UWVBFOwotVHlwZSogTElTVF9UWVBFOwotVHlwZSogQ0xBU1NMT0FERVJfVFlQRTsKLVR5cGUqIFJQQ19EQVRBX1RZUEU7Ci1UeXBlKiBSUENfRVJST1JfVFlQRTsKLVR5cGUqIEVWRU5UX0ZBS0VfVFlQRTsKLQotRXhwcmVzc2lvbiogTlVMTF9WQUxVRTsKLUV4cHJlc3Npb24qIFRISVNfVkFMVUU7Ci1FeHByZXNzaW9uKiBTVVBFUl9WQUxVRTsKLUV4cHJlc3Npb24qIFRSVUVfVkFMVUU7Ci1FeHByZXNzaW9uKiBGQUxTRV9WQUxVRTsKLQotdm9pZAotcmVnaXN0ZXJfYmFzZV90eXBlcygpCi17Ci0gICAgVk9JRF9UWVBFID0gbmV3IEJhc2ljVHlwZSgidm9pZCIsCi0gICAgICAgICAgICAiWFhYIiwgIlhYWCIsICJYWFgiLCAiWFhYIiwgIlhYWCIsCi0gICAgICAgICAgICAiWFhYIiwgIlhYWCIsICJYWFgiLCAiWFhYIiwgIlhYWCIpOwotICAgIE5BTUVTLkFkZChWT0lEX1RZUEUpOwotCi0gICAgQk9PTEVBTl9UWVBFID0gbmV3IEJvb2xlYW5UeXBlKCk7Ci0gICAgTkFNRVMuQWRkKEJPT0xFQU5fVFlQRSk7Ci0KLSAgICBCWVRFX1RZUEUgPSBuZXcgQmFzaWNUeXBlKCJieXRlIiwKLSAgICAgICAgICAgICJ3cml0ZUJ5dGUiLCAicmVhZEJ5dGUiLCAid3JpdGVCeXRlQXJyYXkiLCAiY3JlYXRlQnl0ZUFycmF5IiwgInJlYWRCeXRlQXJyYXkiLAotICAgICAgICAgICAgInB1dEJ5dGUiLCAiZ2V0Qnl0ZSIsICJwdXRCeXRlQXJyYXkiLCAiY3JlYXRlQnl0ZUFycmF5IiwgImdldEJ5dGVBcnJheSIpOwotICAgIE5BTUVTLkFkZChCWVRFX1RZUEUpOwotCi0gICAgQ0hBUl9UWVBFID0gbmV3IENoYXJUeXBlKCk7Ci0gICAgTkFNRVMuQWRkKENIQVJfVFlQRSk7Ci0KLSAgICBJTlRfVFlQRSA9IG5ldyBCYXNpY1R5cGUoImludCIsCi0gICAgICAgICAgICAid3JpdGVJbnQiLCAicmVhZEludCIsICJ3cml0ZUludEFycmF5IiwgImNyZWF0ZUludEFycmF5IiwgInJlYWRJbnRBcnJheSIsCi0gICAgICAgICAgICAicHV0SW50ZWdlciIsICJnZXRJbnRlZ2VyIiwgInB1dEludGVnZXJBcnJheSIsICJjcmVhdGVJbnRlZ2VyQXJyYXkiLCAiZ2V0SW50ZWdlckFycmF5Iik7Ci0gICAgTkFNRVMuQWRkKElOVF9UWVBFKTsKLQotICAgIExPTkdfVFlQRSA9IG5ldyBCYXNpY1R5cGUoImxvbmciLAotICAgICAgICAgICAgIndyaXRlTG9uZyIsICJyZWFkTG9uZyIsICJ3cml0ZUxvbmdBcnJheSIsICJjcmVhdGVMb25nQXJyYXkiLCAicmVhZExvbmdBcnJheSIsCi0gICAgICAgICAgICAicHV0TG9uZyIsICJnZXRMb25nIiwgInB1dExvbmdBcnJheSIsICJjcmVhdGVMb25nQXJyYXkiLCAiZ2V0TG9uZ0FycmF5Iik7Ci0gICAgTkFNRVMuQWRkKExPTkdfVFlQRSk7Ci0KLSAgICBGTE9BVF9UWVBFID0gbmV3IEJhc2ljVHlwZSgiZmxvYXQiLAotICAgICAgICAgICAgIndyaXRlRmxvYXQiLCAicmVhZEZsb2F0IiwgIndyaXRlRmxvYXRBcnJheSIsICJjcmVhdGVGbG9hdEFycmF5IiwgInJlYWRGbG9hdEFycmF5IiwKLSAgICAgICAgICAgICJwdXRGbG9hdCIsICJnZXRGbG9hdCIsICJwdXRGbG9hdEFycmF5IiwgImNyZWF0ZUZsb2F0QXJyYXkiLCAiZ2V0RmxvYXRBcnJheSIpOwotICAgIE5BTUVTLkFkZChGTE9BVF9UWVBFKTsKLQotICAgIERPVUJMRV9UWVBFID0gbmV3IEJhc2ljVHlwZSgiZG91YmxlIiwKLSAgICAgICAgICAgICJ3cml0ZURvdWJsZSIsICJyZWFkRG91YmxlIiwgIndyaXRlRG91YmxlQXJyYXkiLCAiY3JlYXRlRG91YmxlQXJyYXkiLCAicmVhZERvdWJsZUFycmF5IiwKLSAgICAgICAgICAgICJwdXREb3VibGUiLCAiZ2V0RG91YmxlIiwgInB1dERvdWJsZUFycmF5IiwgImNyZWF0ZURvdWJsZUFycmF5IiwgImdldERvdWJsZUFycmF5Iik7Ci0gICAgTkFNRVMuQWRkKERPVUJMRV9UWVBFKTsKLQotICAgIFNUUklOR19UWVBFID0gbmV3IFN0cmluZ1R5cGUoKTsKLSAgICBOQU1FUy5BZGQoU1RSSU5HX1RZUEUpOwotCi0gICAgT0JKRUNUX1RZUEUgPSBuZXcgVHlwZSgiamF2YS5sYW5nIiwgIk9iamVjdCIsIFR5cGU6OkJVSUxUX0lOLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKLSAgICBOQU1FUy5BZGQoT0JKRUNUX1RZUEUpOwotCi0gICAgQ0hBUl9TRVFVRU5DRV9UWVBFID0gbmV3IENoYXJTZXF1ZW5jZVR5cGUoKTsKLSAgICBOQU1FUy5BZGQoQ0hBUl9TRVFVRU5DRV9UWVBFKTsKLQotICAgIE1BUF9UWVBFID0gbmV3IE1hcFR5cGUoKTsKLSAgICBOQU1FUy5BZGQoTUFQX1RZUEUpOwotCi0gICAgTElTVF9UWVBFID0gbmV3IExpc3RUeXBlKCk7Ci0gICAgTkFNRVMuQWRkKExJU1RfVFlQRSk7Ci0KLSAgICBURVhUX1VUSUxTX1RZUEUgPSBuZXcgVHlwZSgiYW5kcm9pZC50ZXh0IiwgIlRleHRVdGlscyIsIFR5cGU6OkJVSUxUX0lOLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKLSAgICBOQU1FUy5BZGQoVEVYVF9VVElMU19UWVBFKTsKLQotICAgIFJFTU9URV9FWENFUFRJT05fVFlQRSA9IG5ldyBSZW1vdGVFeGNlcHRpb25UeXBlKCk7Ci0gICAgTkFNRVMuQWRkKFJFTU9URV9FWENFUFRJT05fVFlQRSk7Ci0KLSAgICBSVU5USU1FX0VYQ0VQVElPTl9UWVBFID0gbmV3IFJ1bnRpbWVFeGNlcHRpb25UeXBlKCk7Ci0gICAgTkFNRVMuQWRkKFJVTlRJTUVfRVhDRVBUSU9OX1RZUEUpOwotCi0gICAgSUJJTkRFUl9UWVBFID0gbmV3IElCaW5kZXJUeXBlKCk7Ci0gICAgTkFNRVMuQWRkKElCSU5ERVJfVFlQRSk7Ci0KLSAgICBJSU5URVJGQUNFX1RZUEUgPSBuZXcgSUludGVyZmFjZVR5cGUoKTsKLSAgICBOQU1FUy5BZGQoSUlOVEVSRkFDRV9UWVBFKTsKLQotICAgIEJJTkRFUl9OQVRJVkVfVFlQRSA9IG5ldyBCaW5kZXJUeXBlKCk7Ci0gICAgTkFNRVMuQWRkKEJJTkRFUl9OQVRJVkVfVFlQRSk7Ci0KLSAgICBCSU5ERVJfUFJPWFlfVFlQRSA9IG5ldyBCaW5kZXJQcm94eVR5cGUoKTsKLSAgICBOQU1FUy5BZGQoQklOREVSX1BST1hZX1RZUEUpOwotCi0gICAgUEFSQ0VMX1RZUEUgPSBuZXcgUGFyY2VsVHlwZSgpOwotICAgIE5BTUVTLkFkZChQQVJDRUxfVFlQRSk7Ci0KLSAgICBQQVJDRUxBQkxFX0lOVEVSRkFDRV9UWVBFID0gbmV3IFBhcmNlbGFibGVJbnRlcmZhY2VUeXBlKCk7Ci0gICAgTkFNRVMuQWRkKFBBUkNFTEFCTEVfSU5URVJGQUNFX1RZUEUpOwotCi0gICAgQ09OVEVYVF9UWVBFID0gbmV3IFR5cGUoImFuZHJvaWQuY29udGVudCIsICJDb250ZXh0IiwgVHlwZTo6QlVJTFRfSU4sIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwotICAgIE5BTUVTLkFkZChDT05URVhUX1RZUEUpOwotCi0gICAgUlBDX0RBVEFfVFlQRSA9IG5ldyBScGNEYXRhVHlwZSgpOwotICAgIE5BTUVTLkFkZChSUENfREFUQV9UWVBFKTsKLQotICAgIFJQQ19FUlJPUl9UWVBFID0gbmV3IFVzZXJEYXRhVHlwZSgiYW5kcm9pZC5zdXBwb3J0LnBsYWNlLnJwYyIsICJScGNFcnJvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBfX0ZJTEVfXywgX19MSU5FX18pOwotICAgIE5BTUVTLkFkZChSUENfRVJST1JfVFlQRSk7Ci0KLSAgICBFVkVOVF9GQUtFX1RZUEUgPSBuZXcgVHlwZSgiZXZlbnQiLCBUeXBlOjpCVUlMVF9JTiwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7Ci0gICAgTkFNRVMuQWRkKEVWRU5UX0ZBS0VfVFlQRSk7Ci0KLSAgICBDTEFTU0xPQURFUl9UWVBFID0gbmV3IENsYXNzTG9hZGVyVHlwZSgpOwotICAgIE5BTUVTLkFkZChDTEFTU0xPQURFUl9UWVBFKTsKLQotICAgIE5VTExfVkFMVUUgPSBuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIm51bGwiKTsKLSAgICBUSElTX1ZBTFVFID0gbmV3IExpdGVyYWxFeHByZXNzaW9uKCJ0aGlzIik7Ci0gICAgU1VQRVJfVkFMVUUgPSBuZXcgTGl0ZXJhbEV4cHJlc3Npb24oInN1cGVyIik7Ci0gICAgVFJVRV9WQUxVRSA9IG5ldyBMaXRlcmFsRXhwcmVzc2lvbigidHJ1ZSIpOwotICAgIEZBTFNFX1ZBTFVFID0gbmV3IExpdGVyYWxFeHByZXNzaW9uKCJmYWxzZSIpOwotCi0gICAgTkFNRVMuQWRkR2VuZXJpY1R5cGUoImphdmEudXRpbCIsICJMaXN0IiwgMSk7Ci0gICAgTkFNRVMuQWRkR2VuZXJpY1R5cGUoImphdmEudXRpbCIsICJNYXAiLCAyKTsKLX0KLQotc3RhdGljIFR5cGUqCi1tYWtlX2dlbmVyaWNfdHlwZShjb25zdCBzdHJpbmcmIHBhY2thZ2UsIGNvbnN0IHN0cmluZyYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yPFR5cGUqPiYgYXJncykKLXsKLSAgICBpZiAocGFja2FnZSA9PSAiamF2YS51dGlsIiAmJiBuYW1lID09ICJMaXN0IikgewotICAgICAgICByZXR1cm4gbmV3IEdlbmVyaWNMaXN0VHlwZSgiamF2YS51dGlsIiwgIkxpc3QiLCBhcmdzKTsKLSAgICB9Ci0gICAgcmV0dXJuIE5VTEw7Ci0gICAgLy9yZXR1cm4gbmV3IEdlbmVyaWNUeXBlKHBhY2thZ2UsIG5hbWUsIGFyZ3MpOwotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVR5cGU6OlR5cGUoY29uc3Qgc3RyaW5nJiBuYW1lLCBpbnQga2luZCwgYm9vbCBjYW5Xcml0ZVRvUGFyY2VsLCBib29sIGNhbldyaXRlVG9ScGNEYXRhLAotICAgICAgICBib29sIGNhbkJlT3V0KQotICAgIDptX3BhY2thZ2UoKSwKLSAgICAgbV9uYW1lKG5hbWUpLAotICAgICBtX2RlY2xGaWxlKCIiKSwKLSAgICAgbV9kZWNsTGluZSgtMSksCi0gICAgIG1fa2luZChraW5kKSwKLSAgICAgbV9jYW5Xcml0ZVRvUGFyY2VsKGNhbldyaXRlVG9QYXJjZWwpLAotICAgICBtX2NhbldyaXRlVG9ScGNEYXRhKGNhbldyaXRlVG9ScGNEYXRhKSwKLSAgICAgbV9jYW5CZU91dChjYW5CZU91dCkKLXsKLSAgICBtX3F1YWxpZmllZE5hbWUgPSBuYW1lOwotfQotCi1UeXBlOjpUeXBlKGNvbnN0IHN0cmluZyYgcGFja2FnZSwgY29uc3Qgc3RyaW5nJiBuYW1lLAotICAgICAgICAgICAgaW50IGtpbmQsIGJvb2wgY2FuV3JpdGVUb1BhcmNlbCwgYm9vbCBjYW5Xcml0ZVRvUnBjRGF0YSwKLSAgICAgICAgICAgIGJvb2wgY2FuQmVPdXQsIGNvbnN0IHN0cmluZyYgZGVjbEZpbGUsIGludCBkZWNsTGluZSkKLSAgICA6bV9wYWNrYWdlKHBhY2thZ2UpLAotICAgICBtX25hbWUobmFtZSksCi0gICAgIG1fZGVjbEZpbGUoZGVjbEZpbGUpLAotICAgICBtX2RlY2xMaW5lKGRlY2xMaW5lKSwKLSAgICAgbV9raW5kKGtpbmQpLAotICAgICBtX2NhbldyaXRlVG9QYXJjZWwoY2FuV3JpdGVUb1BhcmNlbCksCi0gICAgIG1fY2FuV3JpdGVUb1JwY0RhdGEoY2FuV3JpdGVUb1JwY0RhdGEpLAotICAgICBtX2NhbkJlT3V0KGNhbkJlT3V0KQotewotICAgIGlmIChwYWNrYWdlLmxlbmd0aCgpID4gMCkgewotICAgICAgICBtX3F1YWxpZmllZE5hbWUgPSBwYWNrYWdlOwotICAgICAgICBtX3F1YWxpZmllZE5hbWUgKz0gJy4nOwotICAgIH0KLSAgICBtX3F1YWxpZmllZE5hbWUgKz0gbmFtZTsKLX0KLQotVHlwZTo6flR5cGUoKQotewotfQotCi1ib29sCi1UeXBlOjpDYW5CZUFycmF5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXN0cmluZwotVHlwZTo6SW1wb3J0VHlwZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcXVhbGlmaWVkTmFtZTsKLX0KLQotc3RyaW5nCi1UeXBlOjpDcmVhdG9yTmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICIiOwotfQotCi1zdHJpbmcKLVR5cGU6OlJwY0NyZWF0b3JOYW1lKCkgY29uc3QKLXsKLSAgICByZXR1cm4gIiI7Ci19Ci0KLXN0cmluZwotVHlwZTo6SW5zdGFudGlhYmxlTmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFF1YWxpZmllZE5hbWUoKTsKLX0KLQotCi12b2lkCi1UeXBlOjpXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncykKLXsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6aW50ZXJuYWwgZXJyb3IgJXM6JWQgcXVhbGlmaWVkTmFtZT0lc24iLAotICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fLCBtX3F1YWxpZmllZE5hbWUuY19zdHIoKSk7Ci0gICAgYWRkVG8tPkFkZChuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIi8qIFdyaXRlVG9QYXJjZWwgZXJyb3IgIgotICAgICAgICAgICAgICAgICsgbV9xdWFsaWZpZWROYW1lICsgIiAqLyIpKTsKLX0KLQotdm9pZAotVHlwZTo6Q3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIGZwcmludGYoc3RkZXJyLCAiYWlkbDppbnRlcm5hbCBlcnJvciAlczolZCBxdWFsaWZpZWROYW1lPSVzXG4iLAotICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fLCBtX3F1YWxpZmllZE5hbWUuY19zdHIoKSk7Ci0gICAgYWRkVG8tPkFkZChuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIi8qIENyZWF0ZUZyb21QYXJjZWwgZXJyb3IgIgotICAgICAgICAgICAgICAgICsgbV9xdWFsaWZpZWROYW1lICsgIiAqLyIpKTsKLX0KLQotdm9pZAotVHlwZTo6UmVhZEZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKikKLXsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6aW50ZXJuYWwgZXJyb3IgJXM6JWQgcXVhbGlmaWVkTmFtZT0lc1xuIiwKLSAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXywgbV9xdWFsaWZpZWROYW1lLmNfc3RyKCkpOwotICAgIGFkZFRvLT5BZGQobmV3IExpdGVyYWxFeHByZXNzaW9uKCIvKiBSZWFkRnJvbVBhcmNlbCBlcnJvciAiCi0gICAgICAgICAgICAgICAgKyBtX3F1YWxpZmllZE5hbWUgKyAiICovIikpOwotfQotCi12b2lkCi1UeXBlOjpXcml0ZUFycmF5VG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKQotewotICAgIGZwcmludGYoc3RkZXJyLCAiYWlkbDppbnRlcm5hbCBlcnJvciAlczolZCBxdWFsaWZpZWROYW1lPSVzXG4iLAotICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fLCBtX3F1YWxpZmllZE5hbWUuY19zdHIoKSk7Ci0gICAgYWRkVG8tPkFkZChuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIi8qIFdyaXRlQXJyYXlUb1BhcmNlbCBlcnJvciAiCi0gICAgICAgICAgICAgICAgKyBtX3F1YWxpZmllZE5hbWUgKyAiICovIikpOwotfQotCi12b2lkCi1UeXBlOjpDcmVhdGVBcnJheUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIGZwcmludGYoc3RkZXJyLCAiYWlkbDppbnRlcm5hbCBlcnJvciAlczolZCBxdWFsaWZpZWROYW1lPSVzXG4iLAotICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fLCBtX3F1YWxpZmllZE5hbWUuY19zdHIoKSk7Ci0gICAgYWRkVG8tPkFkZChuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIi8qIENyZWF0ZUFycmF5RnJvbVBhcmNlbCBlcnJvciAiCi0gICAgICAgICAgICAgICAgKyBtX3F1YWxpZmllZE5hbWUgKyAiICovIikpOwotfQotCi12b2lkCi1UeXBlOjpSZWFkQXJyYXlGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiopCi17Ci0gICAgZnByaW50ZihzdGRlcnIsICJhaWRsOmludGVybmFsIGVycm9yICVzOiVkIHF1YWxpZmllZE5hbWU9JXNcbiIsCi0gICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18sIG1fcXVhbGlmaWVkTmFtZS5jX3N0cigpKTsKLSAgICBhZGRUby0+QWRkKG5ldyBMaXRlcmFsRXhwcmVzc2lvbigiLyogUmVhZEFycmF5RnJvbVBhcmNlbCBlcnJvciAiCi0gICAgICAgICAgICAgICAgKyBtX3F1YWxpZmllZE5hbWUgKyAiICovIikpOwotfQotCi12b2lkCi1UeXBlOjpXcml0ZVRvUnBjRGF0YShTdGF0ZW1lbnRCbG9jayogYWRkVG8sIEV4cHJlc3Npb24qIGssIFZhcmlhYmxlKiB2LAotICAgICAgICBWYXJpYWJsZSogZGF0YSwgaW50IGZsYWdzKQotewotICAgIGZwcmludGYoc3RkZXJyLCAiYWlkbDppbnRlcm5hbCBlcnJvciAlczolZCBxdWFsaWZpZWROYW1lPSVzXG4iLAotICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fLCBtX3F1YWxpZmllZE5hbWUuY19zdHIoKSk7Ci0gICAgYWRkVG8tPkFkZChuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIi8qIFdyaXRlVG9ScGNEYXRhIGVycm9yICIKLSAgICAgICAgICAgICAgICArIG1fcXVhbGlmaWVkTmFtZSArICIgKi8iKSk7Ci19Ci0KLXZvaWQKLVR5cGU6OkNyZWF0ZUZyb21ScGNEYXRhKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgRXhwcmVzc2lvbiogaywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBkYXRhLAotICAgICAgICBWYXJpYWJsZSoqIGNsKQotewotICAgIGZwcmludGYoc3RkZXJyLCAiYWlkbDppbnRlcm5hbCBlcnJvciAlczolZCBxdWFsaWZpZWROYW1lPSVzXG4iLAotICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fLCBtX3F1YWxpZmllZE5hbWUuY19zdHIoKSk7Ci0gICAgYWRkVG8tPkFkZChuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIi8qIFJlYWRGcm9tUnBjRGF0YSBlcnJvciAiCi0gICAgICAgICAgICAgICAgKyBtX3F1YWxpZmllZE5hbWUgKyAiICovIikpOwotfQotCi12b2lkCi1UeXBlOjpTZXRRdWFsaWZpZWROYW1lKGNvbnN0IHN0cmluZyYgcXVhbGlmaWVkKQotewotICAgIG1fcXVhbGlmaWVkTmFtZSA9IHF1YWxpZmllZDsKLX0KLQotRXhwcmVzc2lvbioKLVR5cGU6OkJ1aWxkV3JpdGVUb1BhcmNlbEZsYWdzKGludCBmbGFncykKLXsKLSAgICBpZiAoZmxhZ3MgPT0gMCkgewotICAgICAgICByZXR1cm4gbmV3IExpdGVyYWxFeHByZXNzaW9uKCIwIik7Ci0gICAgfQotICAgIGlmICgoZmxhZ3MmUEFSQ0VMQUJMRV9XUklURV9SRVRVUk5fVkFMVUUpICE9IDApIHsKLSAgICAgICAgcmV0dXJuIG5ldyBGaWVsZFZhcmlhYmxlKFBBUkNFTEFCTEVfSU5URVJGQUNFX1RZUEUsCi0gICAgICAgICAgICAgICAgIlBBUkNFTEFCTEVfV1JJVEVfUkVUVVJOX1ZBTFVFIik7Ci0gICAgfQotICAgIHJldHVybiBuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIjAiKTsKLX0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1CYXNpY1R5cGU6OkJhc2ljVHlwZShjb25zdCBzdHJpbmcmIG5hbWUsIGNvbnN0IHN0cmluZyYgbWFyc2hhbGxQYXJjZWwsCi0gICAgICAgICAgY29uc3Qgc3RyaW5nJiB1bm1hcnNoYWxsUGFyY2VsLCBjb25zdCBzdHJpbmcmIHdyaXRlQXJyYXlQYXJjZWwsCi0gICAgICAgICAgY29uc3Qgc3RyaW5nJiBjcmVhdGVBcnJheVBhcmNlbCwgY29uc3Qgc3RyaW5nJiByZWFkQXJyYXlQYXJjZWwsCi0gICAgICAgICAgY29uc3Qgc3RyaW5nJiBtYXJzaGFsbFJwYywgY29uc3Qgc3RyaW5nJiB1bm1hcnNoYWxsUnBjLAotICAgICAgICAgIGNvbnN0IHN0cmluZyYgd3JpdGVBcnJheVJwYywgY29uc3Qgc3RyaW5nJiBjcmVhdGVBcnJheVJwYywgY29uc3Qgc3RyaW5nJiByZWFkQXJyYXlScGMpCi0gICAgOlR5cGUobmFtZSwgQlVJTFRfSU4sIHRydWUsIHRydWUsIGZhbHNlKSwKLSAgICAgbV9tYXJzaGFsbFBhcmNlbChtYXJzaGFsbFBhcmNlbCksCi0gICAgIG1fdW5tYXJzaGFsbFBhcmNlbCh1bm1hcnNoYWxsUGFyY2VsKSwKLSAgICAgbV93cml0ZUFycmF5UGFyY2VsKHdyaXRlQXJyYXlQYXJjZWwpLAotICAgICBtX2NyZWF0ZUFycmF5UGFyY2VsKGNyZWF0ZUFycmF5UGFyY2VsKSwKLSAgICAgbV9yZWFkQXJyYXlQYXJjZWwocmVhZEFycmF5UGFyY2VsKSwKLSAgICAgbV9tYXJzaGFsbFJwYyhtYXJzaGFsbFJwYyksCi0gICAgIG1fdW5tYXJzaGFsbFJwYyh1bm1hcnNoYWxsUnBjKSwKLSAgICAgbV93cml0ZUFycmF5UnBjKHdyaXRlQXJyYXlScGMpLAotICAgICBtX2NyZWF0ZUFycmF5UnBjKGNyZWF0ZUFycmF5UnBjKSwKLSAgICAgbV9yZWFkQXJyYXlScGMocmVhZEFycmF5UnBjKQotewotfQotCi12b2lkCi1CYXNpY1R5cGU6OldyaXRlVG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKQotewotICAgIGFkZFRvLT5BZGQobmV3IE1ldGhvZENhbGwocGFyY2VsLCBtX21hcnNoYWxsUGFyY2VsLCAxLCB2KSk7Ci19Ci0KLXZvaWQKLUJhc2ljVHlwZTo6Q3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIGFkZFRvLT5BZGQobmV3IEFzc2lnbm1lbnQodiwgbmV3IE1ldGhvZENhbGwocGFyY2VsLCBtX3VubWFyc2hhbGxQYXJjZWwpKSk7Ci19Ci0KLWJvb2wKLUJhc2ljVHlwZTo6Q2FuQmVBcnJheSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQKLUJhc2ljVHlwZTo6V3JpdGVBcnJheVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncykKLXsKLSAgICBhZGRUby0+QWRkKG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgbV93cml0ZUFycmF5UGFyY2VsLCAxLCB2KSk7Ci19Ci0KLXZvaWQKLUJhc2ljVHlwZTo6Q3JlYXRlQXJyYXlGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKikKLXsKLSAgICBhZGRUby0+QWRkKG5ldyBBc3NpZ25tZW50KHYsIG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgbV9jcmVhdGVBcnJheVBhcmNlbCkpKTsKLX0KLQotdm9pZAotQmFzaWNUeXBlOjpSZWFkQXJyYXlGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiopCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsIG1fcmVhZEFycmF5UGFyY2VsLCAxLCB2KSk7Ci19Ci0KLXZvaWQKLUJhc2ljVHlwZTo6V3JpdGVUb1JwY0RhdGEoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBFeHByZXNzaW9uKiBrLCBWYXJpYWJsZSogdiwKLSAgICAgICAgVmFyaWFibGUqIGRhdGEsIGludCBmbGFncykKLXsKLSAgICBhZGRUby0+QWRkKG5ldyBNZXRob2RDYWxsKGRhdGEsIG1fbWFyc2hhbGxScGMsIDIsIGssIHYpKTsKLX0KLQotdm9pZAotQmFzaWNUeXBlOjpDcmVhdGVGcm9tUnBjRGF0YShTdGF0ZW1lbnRCbG9jayogYWRkVG8sIEV4cHJlc3Npb24qIGssIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogZGF0YSwKLSAgICAgICAgVmFyaWFibGUqKiBjbCkKLXsKLSAgICBhZGRUby0+QWRkKG5ldyBBc3NpZ25tZW50KHYsIG5ldyBNZXRob2RDYWxsKGRhdGEsIG1fdW5tYXJzaGFsbFJwYywgMSwgaykpKTsKLX0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1Cb29sZWFuVHlwZTo6Qm9vbGVhblR5cGUoKQotICAgIDpUeXBlKCJib29sZWFuIiwgQlVJTFRfSU4sIHRydWUsIHRydWUsIGZhbHNlKQotewotfQotCi12b2lkCi1Cb29sZWFuVHlwZTo6V3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJ3cml0ZUludCIsIDEsIAotICAgICAgICAgICAgICAgIG5ldyBUZXJuYXJ5KHYsIG5ldyBMaXRlcmFsRXhwcmVzc2lvbigiMSIpLAotICAgICAgICAgICAgICAgICAgICBuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIjAiKSkpKTsKLX0KLQotdm9pZAotQm9vbGVhblR5cGU6OkNyZWF0ZUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKikKLXsKLSAgICBhZGRUby0+QWRkKG5ldyBBc3NpZ25tZW50KHYsIG5ldyBDb21wYXJpc29uKG5ldyBMaXRlcmFsRXhwcmVzc2lvbigiMCIpLAotICAgICAgICAgICAgICAgICAgICAiIT0iLCBuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJyZWFkSW50IikpKSk7Ci19Ci0KLWJvb2wKLUJvb2xlYW5UeXBlOjpDYW5CZUFycmF5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZAotQm9vbGVhblR5cGU6OldyaXRlQXJyYXlUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJ3cml0ZUJvb2xlYW5BcnJheSIsIDEsIHYpKTsKLX0KLQotdm9pZAotQm9vbGVhblR5cGU6OkNyZWF0ZUFycmF5RnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiopCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgQXNzaWdubWVudCh2LCBuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJjcmVhdGVCb29sZWFuQXJyYXkiKSkpOwotfQotCi12b2lkCi1Cb29sZWFuVHlwZTo6UmVhZEFycmF5RnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIGFkZFRvLT5BZGQobmV3IE1ldGhvZENhbGwocGFyY2VsLCAicmVhZEJvb2xlYW5BcnJheSIsIDEsIHYpKTsKLX0KLQotdm9pZAotQm9vbGVhblR5cGU6OldyaXRlVG9ScGNEYXRhKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgRXhwcmVzc2lvbiogaywgVmFyaWFibGUqIHYsCi0gICAgICAgIFZhcmlhYmxlKiBkYXRhLCBpbnQgZmxhZ3MpCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChkYXRhLCAicHV0Qm9vbGVhbiIsIDIsIGssIHYpKTsKLX0KLQotdm9pZAotQm9vbGVhblR5cGU6OkNyZWF0ZUZyb21ScGNEYXRhKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgRXhwcmVzc2lvbiogaywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBkYXRhLAotICAgICAgICBWYXJpYWJsZSoqIGNsKQotewotICAgIGFkZFRvLT5BZGQobmV3IEFzc2lnbm1lbnQodiwgbmV3IE1ldGhvZENhbGwoZGF0YSwgImdldEJvb2xlYW4iLCAxLCBrKSkpOwotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLUNoYXJUeXBlOjpDaGFyVHlwZSgpCi0gICAgOlR5cGUoImNoYXIiLCBCVUlMVF9JTiwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpCi17Ci19Ci0KLXZvaWQKLUNoYXJUeXBlOjpXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncykKLXsKLSAgICBhZGRUby0+QWRkKG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgIndyaXRlSW50IiwgMSwgCi0gICAgICAgICAgICAgICAgICAgIG5ldyBDYXN0KElOVF9UWVBFLCB2KSkpOwotfQotCi12b2lkCi1DaGFyVHlwZTo6Q3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIGFkZFRvLT5BZGQobmV3IEFzc2lnbm1lbnQodiwgbmV3IE1ldGhvZENhbGwocGFyY2VsLCAicmVhZEludCIpLCB0aGlzKSk7Ci19Ci0KLWJvb2wKLUNoYXJUeXBlOjpDYW5CZUFycmF5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZAotQ2hhclR5cGU6OldyaXRlQXJyYXlUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJ3cml0ZUNoYXJBcnJheSIsIDEsIHYpKTsKLX0KLQotdm9pZAotQ2hhclR5cGU6OkNyZWF0ZUFycmF5RnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiopCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgQXNzaWdubWVudCh2LCBuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJjcmVhdGVDaGFyQXJyYXkiKSkpOwotfQotCi12b2lkCi1DaGFyVHlwZTo6UmVhZEFycmF5RnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIGFkZFRvLT5BZGQobmV3IE1ldGhvZENhbGwocGFyY2VsLCAicmVhZENoYXJBcnJheSIsIDEsIHYpKTsKLX0KLQotdm9pZAotQ2hhclR5cGU6OldyaXRlVG9ScGNEYXRhKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgRXhwcmVzc2lvbiogaywgVmFyaWFibGUqIHYsCi0gICAgICAgIFZhcmlhYmxlKiBkYXRhLCBpbnQgZmxhZ3MpCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChkYXRhLCAicHV0Q2hhciIsIDIsIGssIHYpKTsKLX0KLQotdm9pZAotQ2hhclR5cGU6OkNyZWF0ZUZyb21ScGNEYXRhKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgRXhwcmVzc2lvbiogaywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBkYXRhLAotICAgICAgICBWYXJpYWJsZSoqIGNsKQotewotICAgIGFkZFRvLT5BZGQobmV3IEFzc2lnbm1lbnQodiwgbmV3IE1ldGhvZENhbGwoZGF0YSwgImdldENoYXIiLCAxLCBrKSkpOwotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVN0cmluZ1R5cGU6OlN0cmluZ1R5cGUoKQotICAgIDpUeXBlKCJqYXZhLmxhbmciLCAiU3RyaW5nIiwgQlVJTFRfSU4sIHRydWUsIHRydWUsIGZhbHNlKQotewotfQotCi1zdHJpbmcKLVN0cmluZ1R5cGU6OkNyZWF0b3JOYW1lKCkgY29uc3QKLXsKLSAgICByZXR1cm4gImFuZHJvaWQub3MuUGFyY2VsLlNUUklOR19DUkVBVE9SIjsKLX0KLQotdm9pZAotU3RyaW5nVHlwZTo6V3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJ3cml0ZVN0cmluZyIsIDEsIHYpKTsKLX0KLQotdm9pZAotU3RyaW5nVHlwZTo6Q3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIGFkZFRvLT5BZGQobmV3IEFzc2lnbm1lbnQodiwgbmV3IE1ldGhvZENhbGwocGFyY2VsLCAicmVhZFN0cmluZyIpKSk7Ci19Ci0KLWJvb2wKLVN0cmluZ1R5cGU6OkNhbkJlQXJyYXkoKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkCi1TdHJpbmdUeXBlOjpXcml0ZUFycmF5VG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKQotewotICAgIGFkZFRvLT5BZGQobmV3IE1ldGhvZENhbGwocGFyY2VsLCAid3JpdGVTdHJpbmdBcnJheSIsIDEsIHYpKTsKLX0KLQotdm9pZAotU3RyaW5nVHlwZTo6Q3JlYXRlQXJyYXlGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKikKLXsKLSAgICBhZGRUby0+QWRkKG5ldyBBc3NpZ25tZW50KHYsIG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgImNyZWF0ZVN0cmluZ0FycmF5IikpKTsKLX0KLQotdm9pZAotU3RyaW5nVHlwZTo6UmVhZEFycmF5RnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIGFkZFRvLT5BZGQobmV3IE1ldGhvZENhbGwocGFyY2VsLCAicmVhZFN0cmluZ0FycmF5IiwgMSwgdikpOwotfQotCi12b2lkCi1TdHJpbmdUeXBlOjpXcml0ZVRvUnBjRGF0YShTdGF0ZW1lbnRCbG9jayogYWRkVG8sIEV4cHJlc3Npb24qIGssIFZhcmlhYmxlKiB2LAotICAgICAgICBWYXJpYWJsZSogZGF0YSwgaW50IGZsYWdzKQotewotICAgIGFkZFRvLT5BZGQobmV3IE1ldGhvZENhbGwoZGF0YSwgInB1dFN0cmluZyIsIDIsIGssIHYpKTsKLX0KLQotdm9pZAotU3RyaW5nVHlwZTo6Q3JlYXRlRnJvbVJwY0RhdGEoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBFeHByZXNzaW9uKiBrLCBWYXJpYWJsZSogdiwKLSAgICAgICAgVmFyaWFibGUqIGRhdGEsIFZhcmlhYmxlKiopCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgQXNzaWdubWVudCh2LCBuZXcgTWV0aG9kQ2FsbChkYXRhLCAiZ2V0U3RyaW5nIiwgMSwgaykpKTsKLX0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1DaGFyU2VxdWVuY2VUeXBlOjpDaGFyU2VxdWVuY2VUeXBlKCkKLSAgICA6VHlwZSgiamF2YS5sYW5nIiwgIkNoYXJTZXF1ZW5jZSIsIEJVSUxUX0lOLCB0cnVlLCB0cnVlLCBmYWxzZSkKLXsKLX0KLQotc3RyaW5nCi1DaGFyU2VxdWVuY2VUeXBlOjpDcmVhdG9yTmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICJhbmRyb2lkLm9zLlBhcmNlbC5TVFJJTkdfQ1JFQVRPUiI7Ci19Ci0KLXZvaWQKLUNoYXJTZXF1ZW5jZVR5cGU6OldyaXRlVG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKQotewotICAgIC8vIGlmICh2ICE9IG51bGwpIHsKLSAgICAvLyAgICAgcGFyY2VsLndyaXRlSW50KDEpOwotICAgIC8vICAgICB2LndyaXRlVG9QYXJjZWwocGFyY2VsKTsKLSAgICAvLyB9IGVsc2UgewotICAgIC8vICAgICBwYXJjZWwud3JpdGVJbnQoMCk7Ci0gICAgLy8gfQotICAgIElmU3RhdGVtZW50KiBlbHNlcGFydCA9IG5ldyBJZlN0YXRlbWVudCgpOwotICAgIGVsc2VwYXJ0LT5zdGF0ZW1lbnRzLT5BZGQobmV3IE1ldGhvZENhbGwocGFyY2VsLCAid3JpdGVJbnQiLCAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIjAiKSkpOwotICAgIElmU3RhdGVtZW50KiBpZnBhcnQgPSBuZXcgSWZTdGF0ZW1lbnQ7Ci0gICAgaWZwYXJ0LT5leHByZXNzaW9uID0gbmV3IENvbXBhcmlzb24odiwgIiE9IiwgTlVMTF9WQUxVRSk7Ci0gICAgaWZwYXJ0LT5lbHNlaWYgPSBlbHNlcGFydDsKLSAgICBpZnBhcnQtPnN0YXRlbWVudHMtPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJ3cml0ZUludCIsIDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMaXRlcmFsRXhwcmVzc2lvbigiMSIpKSk7Ci0gICAgaWZwYXJ0LT5zdGF0ZW1lbnRzLT5BZGQobmV3IE1ldGhvZENhbGwoVEVYVF9VVElMU19UWVBFLCAid3JpdGVUb1BhcmNlbCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMsIHYsIHBhcmNlbCwgQnVpbGRXcml0ZVRvUGFyY2VsRmxhZ3MoZmxhZ3MpKSk7Ci0KLSAgICBhZGRUby0+QWRkKGlmcGFydCk7Ci19Ci0KLXZvaWQKLUNoYXJTZXF1ZW5jZVR5cGU6OkNyZWF0ZUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKikKLXsKLSAgICAvLyBpZiAoMCAhPSBwYXJjZWwucmVhZEludCgpKSB7Ci0gICAgLy8gICAgIHYgPSBUZXh0VXRpbHMuY3JlYXRlRnJvbVBhcmNlbChwYXJjZWwpCi0gICAgLy8gfSBlbHNlIHsKLSAgICAvLyAgICAgdiA9IG51bGw7Ci0gICAgLy8gfQotICAgIElmU3RhdGVtZW50KiBlbHNlcGFydCA9IG5ldyBJZlN0YXRlbWVudCgpOwotICAgIGVsc2VwYXJ0LT5zdGF0ZW1lbnRzLT5BZGQobmV3IEFzc2lnbm1lbnQodiwgTlVMTF9WQUxVRSkpOwotCi0gICAgSWZTdGF0ZW1lbnQqIGlmcGFydCA9IG5ldyBJZlN0YXRlbWVudCgpOwotICAgIGlmcGFydC0+ZXhwcmVzc2lvbiA9IG5ldyBDb21wYXJpc29uKG5ldyBMaXRlcmFsRXhwcmVzc2lvbigiMCIpLCAiIT0iLAotICAgICAgICAgICAgICAgIG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgInJlYWRJbnQiKSk7Ci0gICAgaWZwYXJ0LT5lbHNlaWYgPSBlbHNlcGFydDsKLSAgICBpZnBhcnQtPnN0YXRlbWVudHMtPkFkZChuZXcgQXNzaWdubWVudCh2LAotICAgICAgICAgICAgICAgIG5ldyBNZXRob2RDYWxsKFRFWFRfVVRJTFNfVFlQRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDSEFSX1NFUVVFTkNFX0NSRUFUT1IuY3JlYXRlRnJvbVBhcmNlbCIsIDEsIHBhcmNlbCkpKTsKLQotICAgIGFkZFRvLT5BZGQoaWZwYXJ0KTsKLX0KLQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVJlbW90ZUV4Y2VwdGlvblR5cGU6OlJlbW90ZUV4Y2VwdGlvblR5cGUoKQotICAgIDpUeXBlKCJhbmRyb2lkLm9zIiwgIlJlbW90ZUV4Y2VwdGlvbiIsIEJVSUxUX0lOLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQotewotfQotCi12b2lkCi1SZW1vdGVFeGNlcHRpb25UeXBlOjpXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncykKLXsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6aW50ZXJuYWwgZXJyb3IgJXM6JWRcbiIsIF9fRklMRV9fLCBfX0xJTkVfXyk7Ci19Ci0KLXZvaWQKLVJlbW90ZUV4Y2VwdGlvblR5cGU6OkNyZWF0ZUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKikKLXsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6aW50ZXJuYWwgZXJyb3IgJXM6JWRcbiIsIF9fRklMRV9fLCBfX0xJTkVfXyk7Ci19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotUnVudGltZUV4Y2VwdGlvblR5cGU6OlJ1bnRpbWVFeGNlcHRpb25UeXBlKCkKLSAgICA6VHlwZSgiamF2YS5sYW5nIiwgIlJ1bnRpbWVFeGNlcHRpb24iLCBCVUlMVF9JTiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKLXsKLX0KLQotdm9pZAotUnVudGltZUV4Y2VwdGlvblR5cGU6OldyaXRlVG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKQotewotICAgIGZwcmludGYoc3RkZXJyLCAiYWlkbDppbnRlcm5hbCBlcnJvciAlczolZFxuIiwgX19GSUxFX18sIF9fTElORV9fKTsKLX0KLQotdm9pZAotUnVudGltZUV4Y2VwdGlvblR5cGU6OkNyZWF0ZUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKikKLXsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6aW50ZXJuYWwgZXJyb3IgJXM6JWRcbiIsIF9fRklMRV9fLCBfX0xJTkVfXyk7Ci19Ci0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1JQmluZGVyVHlwZTo6SUJpbmRlclR5cGUoKQotICAgIDpUeXBlKCJhbmRyb2lkLm9zIiwgIklCaW5kZXIiLCBCVUlMVF9JTiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQotewotfQotCi12b2lkCi1JQmluZGVyVHlwZTo6V3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJ3cml0ZVN0cm9uZ0JpbmRlciIsIDEsIHYpKTsKLX0KLQotdm9pZAotSUJpbmRlclR5cGU6OkNyZWF0ZUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKikKLXsKLSAgICBhZGRUby0+QWRkKG5ldyBBc3NpZ25tZW50KHYsIG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgInJlYWRTdHJvbmdCaW5kZXIiKSkpOwotfQotCi12b2lkCi1JQmluZGVyVHlwZTo6V3JpdGVBcnJheVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncykKLXsKLSAgICBhZGRUby0+QWRkKG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgIndyaXRlQmluZGVyQXJyYXkiLCAxLCB2KSk7Ci19Ci0KLXZvaWQKLUlCaW5kZXJUeXBlOjpDcmVhdGVBcnJheUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIGFkZFRvLT5BZGQobmV3IEFzc2lnbm1lbnQodiwgbmV3IE1ldGhvZENhbGwocGFyY2VsLCAiY3JlYXRlQmluZGVyQXJyYXkiKSkpOwotfQotCi12b2lkCi1JQmluZGVyVHlwZTo6UmVhZEFycmF5RnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIGFkZFRvLT5BZGQobmV3IE1ldGhvZENhbGwocGFyY2VsLCAicmVhZEJpbmRlckFycmF5IiwgMSwgdikpOwotfQotCi0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotSUludGVyZmFjZVR5cGU6OklJbnRlcmZhY2VUeXBlKCkKLSAgICA6VHlwZSgiYW5kcm9pZC5vcyIsICJJSW50ZXJmYWNlIiwgQlVJTFRfSU4sIGZhbHNlLCBmYWxzZSwgZmFsc2UpCi17Ci19Ci0KLXZvaWQKLUlJbnRlcmZhY2VUeXBlOjpXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncykKLXsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6aW50ZXJuYWwgZXJyb3IgJXM6JWRcbiIsIF9fRklMRV9fLCBfX0xJTkVfXyk7Ci19Ci0KLXZvaWQKLUlJbnRlcmZhY2VUeXBlOjpDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiopCi17Ci0gICAgZnByaW50ZihzdGRlcnIsICJhaWRsOmludGVybmFsIGVycm9yICVzOiVkXG4iLCBfX0ZJTEVfXywgX19MSU5FX18pOwotfQotCi0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotQmluZGVyVHlwZTo6QmluZGVyVHlwZSgpCi0gICAgOlR5cGUoImFuZHJvaWQub3MiLCAiQmluZGVyIiwgQlVJTFRfSU4sIGZhbHNlLCBmYWxzZSwgZmFsc2UpCi17Ci19Ci0KLXZvaWQKLUJpbmRlclR5cGU6OldyaXRlVG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKQotewotICAgIGZwcmludGYoc3RkZXJyLCAiYWlkbDppbnRlcm5hbCBlcnJvciAlczolZFxuIiwgX19GSUxFX18sIF9fTElORV9fKTsKLX0KLQotdm9pZAotQmluZGVyVHlwZTo6Q3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKikKLXsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6aW50ZXJuYWwgZXJyb3IgJXM6JWRcbiIsIF9fRklMRV9fLCBfX0xJTkVfXyk7Ci19Ci0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1CaW5kZXJQcm94eVR5cGU6OkJpbmRlclByb3h5VHlwZSgpCi0gICAgOlR5cGUoImFuZHJvaWQub3MiLCAiQmluZGVyUHJveHkiLCBCVUlMVF9JTiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKLXsKLX0KLQotdm9pZAotQmluZGVyUHJveHlUeXBlOjpXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncykKLXsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6aW50ZXJuYWwgZXJyb3IgJXM6JWRcbiIsIF9fRklMRV9fLCBfX0xJTkVfXyk7Ci19Ci0KLXZvaWQKLUJpbmRlclByb3h5VHlwZTo6Q3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKikKLXsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6aW50ZXJuYWwgZXJyb3IgJXM6JWRcbiIsIF9fRklMRV9fLCBfX0xJTkVfXyk7Ci19Ci0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1QYXJjZWxUeXBlOjpQYXJjZWxUeXBlKCkKLSAgICA6VHlwZSgiYW5kcm9pZC5vcyIsICJQYXJjZWwiLCBCVUlMVF9JTiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKLXsKLX0KLQotdm9pZAotUGFyY2VsVHlwZTo6V3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpCi17Ci0gICAgZnByaW50ZihzdGRlcnIsICJhaWRsOmludGVybmFsIGVycm9yICVzOiVkXG4iLCBfX0ZJTEVfXywgX19MSU5FX18pOwotfQotCi12b2lkCi1QYXJjZWxUeXBlOjpDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiopCi17Ci0gICAgZnByaW50ZihzdGRlcnIsICJhaWRsOmludGVybmFsIGVycm9yICVzOiVkXG4iLCBfX0ZJTEVfXywgX19MSU5FX18pOwotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVBhcmNlbGFibGVJbnRlcmZhY2VUeXBlOjpQYXJjZWxhYmxlSW50ZXJmYWNlVHlwZSgpCi0gICAgOlR5cGUoImFuZHJvaWQub3MiLCAiUGFyY2VsYWJsZSIsIEJVSUxUX0lOLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQotewotfQotCi12b2lkCi1QYXJjZWxhYmxlSW50ZXJmYWNlVHlwZTo6V3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpCi17Ci0gICAgZnByaW50ZihzdGRlcnIsICJhaWRsOmludGVybmFsIGVycm9yICVzOiVkXG4iLCBfX0ZJTEVfXywgX19MSU5FX18pOwotfQotCi12b2lkCi1QYXJjZWxhYmxlSW50ZXJmYWNlVHlwZTo6Q3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIGZwcmludGYoc3RkZXJyLCAiYWlkbDppbnRlcm5hbCBlcnJvciAlczolZFxuIiwgX19GSUxFX18sIF9fTElORV9fKTsKLX0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1NYXBUeXBlOjpNYXBUeXBlKCkKLSAgICA6VHlwZSgiamF2YS51dGlsIiwgIk1hcCIsIEJVSUxUX0lOLCB0cnVlLCBmYWxzZSwgdHJ1ZSkKLXsKLX0KLQotdm9pZAotTWFwVHlwZTo6V3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJ3cml0ZU1hcCIsIDEsIHYpKTsKLX0KLQotc3RhdGljIHZvaWQgRW5zdXJlQ2xhc3NMb2FkZXIoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSoqIGNsKQotewotICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gbG9vayB1cCB0aGUgY2xhc3MgbG9hZGVyIG9uY2UgZm9yIGV2ZXJ5Ci0gICAgLy8gY29sbGVjdGlvbiBhcmd1bWVudCwgc28gZW5zdXJlIHdlIGRvIGl0IGF0IG1vc3Qgb25jZSBwZXIgbWV0aG9kLgotICAgIGlmICgqY2wgPT0gTlVMTCkgewotICAgICAgICAqY2wgPSBuZXcgVmFyaWFibGUoQ0xBU1NMT0FERVJfVFlQRSwgImNsIik7Ci0gICAgICAgIGFkZFRvLT5BZGQobmV3IFZhcmlhYmxlRGVjbGFyYXRpb24oKmNsLAotICAgICAgICAgICAgICAgIG5ldyBMaXRlcmFsRXhwcmVzc2lvbigidGhpcy5nZXRDbGFzcygpLmdldENsYXNzTG9hZGVyKCkiKSwKLSAgICAgICAgICAgICAgICBDTEFTU0xPQURFUl9UWVBFKSk7Ci0gICAgfQotfQotCi12b2lkCi1NYXBUeXBlOjpDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiogY2wpCi17Ci0gICAgRW5zdXJlQ2xhc3NMb2FkZXIoYWRkVG8sIGNsKTsKLSAgICBhZGRUby0+QWRkKG5ldyBBc3NpZ25tZW50KHYsIG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgInJlYWRIYXNoTWFwIiwgMSwgKmNsKSkpOwotfQotCi12b2lkCi1NYXBUeXBlOjpSZWFkRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKQotewotICAgIEVuc3VyZUNsYXNzTG9hZGVyKGFkZFRvLCBjbCk7Ci0gICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJyZWFkTWFwIiwgMiwgdiwgKmNsKSk7Ci19Ci0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1MaXN0VHlwZTo6TGlzdFR5cGUoKQotICAgIDpUeXBlKCJqYXZhLnV0aWwiLCAiTGlzdCIsIEJVSUxUX0lOLCB0cnVlLCB0cnVlLCB0cnVlKQotewotfQotCi1zdHJpbmcKLUxpc3RUeXBlOjpJbnN0YW50aWFibGVOYW1lKCkgY29uc3QKLXsKLSAgICByZXR1cm4gImphdmEudXRpbC5BcnJheUxpc3QiOwotfQotCi12b2lkCi1MaXN0VHlwZTo6V3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJ3cml0ZUxpc3QiLCAxLCB2KSk7Ci19Ci0KLXZvaWQKLUxpc3RUeXBlOjpDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiogY2wpCi17Ci0gICAgRW5zdXJlQ2xhc3NMb2FkZXIoYWRkVG8sIGNsKTsKLSAgICBhZGRUby0+QWRkKG5ldyBBc3NpZ25tZW50KHYsIG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgInJlYWRBcnJheUxpc3QiLCAxLCAqY2wpKSk7Ci19Ci0KLXZvaWQKLUxpc3RUeXBlOjpSZWFkRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKQotewotICAgIEVuc3VyZUNsYXNzTG9hZGVyKGFkZFRvLCBjbCk7Ci0gICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJyZWFkTGlzdCIsIDIsIHYsICpjbCkpOwotfQotCi12b2lkCi1MaXN0VHlwZTo6V3JpdGVUb1JwY0RhdGEoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBFeHByZXNzaW9uKiBrLCBWYXJpYWJsZSogdiwKLSAgICAgICAgVmFyaWFibGUqIGRhdGEsIGludCBmbGFncykKLXsKLSAgICBhZGRUby0+QWRkKG5ldyBNZXRob2RDYWxsKGRhdGEsICJwdXRMaXN0IiwgMiwgaywgdikpOwotfQotCi12b2lkCi1MaXN0VHlwZTo6Q3JlYXRlRnJvbVJwY0RhdGEoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBFeHByZXNzaW9uKiBrLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIGRhdGEsCi0gICAgICAgIFZhcmlhYmxlKiogY2wpCi17Ci0gICAgYWRkVG8tPkFkZChuZXcgQXNzaWdubWVudCh2LCBuZXcgTWV0aG9kQ2FsbChkYXRhLCAiZ2V0TGlzdCIsIDEsIGspKSk7Ci19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotVXNlckRhdGFUeXBlOjpVc2VyRGF0YVR5cGUoY29uc3Qgc3RyaW5nJiBwYWNrYWdlLCBjb25zdCBzdHJpbmcmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBib29sIGJ1aWx0SW4sIGJvb2wgY2FuV3JpdGVUb1BhcmNlbCwgYm9vbCBjYW5Xcml0ZVRvUnBjRGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZyYgZGVjbEZpbGUsIGludCBkZWNsTGluZSkKLSAgICA6VHlwZShwYWNrYWdlLCBuYW1lLCBidWlsdEluID8gQlVJTFRfSU4gOiBVU0VSREFUQSwgY2FuV3JpdGVUb1BhcmNlbCwgY2FuV3JpdGVUb1JwY0RhdGEsCi0gICAgICAgICAgICB0cnVlLCBkZWNsRmlsZSwgZGVjbExpbmUpCi17Ci19Ci0KLXN0cmluZwotVXNlckRhdGFUeXBlOjpDcmVhdG9yTmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFF1YWxpZmllZE5hbWUoKSArICIuQ1JFQVRPUiI7Ci19Ci0KLXN0cmluZwotVXNlckRhdGFUeXBlOjpScGNDcmVhdG9yTmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFF1YWxpZmllZE5hbWUoKSArICIuUlBDX0NSRUFUT1IiOwotfQotCi12b2lkCi1Vc2VyRGF0YVR5cGU6OldyaXRlVG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKQotewotICAgIC8vIGlmICh2ICE9IG51bGwpIHsKLSAgICAvLyAgICAgcGFyY2VsLndyaXRlSW50KDEpOwotICAgIC8vICAgICB2LndyaXRlVG9QYXJjZWwocGFyY2VsKTsKLSAgICAvLyB9IGVsc2UgewotICAgIC8vICAgICBwYXJjZWwud3JpdGVJbnQoMCk7Ci0gICAgLy8gfQotICAgIElmU3RhdGVtZW50KiBlbHNlcGFydCA9IG5ldyBJZlN0YXRlbWVudCgpOwotICAgIGVsc2VwYXJ0LT5zdGF0ZW1lbnRzLT5BZGQobmV3IE1ldGhvZENhbGwocGFyY2VsLCAid3JpdGVJbnQiLCAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIjAiKSkpOwotICAgIElmU3RhdGVtZW50KiBpZnBhcnQgPSBuZXcgSWZTdGF0ZW1lbnQ7Ci0gICAgaWZwYXJ0LT5leHByZXNzaW9uID0gbmV3IENvbXBhcmlzb24odiwgIiE9IiwgTlVMTF9WQUxVRSk7Ci0gICAgaWZwYXJ0LT5lbHNlaWYgPSBlbHNlcGFydDsKLSAgICBpZnBhcnQtPnN0YXRlbWVudHMtPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJ3cml0ZUludCIsIDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMaXRlcmFsRXhwcmVzc2lvbigiMSIpKSk7Ci0gICAgaWZwYXJ0LT5zdGF0ZW1lbnRzLT5BZGQobmV3IE1ldGhvZENhbGwodiwgIndyaXRlVG9QYXJjZWwiLCAyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJjZWwsIEJ1aWxkV3JpdGVUb1BhcmNlbEZsYWdzKGZsYWdzKSkpOwotCi0gICAgYWRkVG8tPkFkZChpZnBhcnQpOwotfQotCi12b2lkCi1Vc2VyRGF0YVR5cGU6OkNyZWF0ZUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKikKLXsKLSAgICAvLyBpZiAoMCAhPSBwYXJjZWwucmVhZEludCgpKSB7Ci0gICAgLy8gICAgIHYgPSBDTEFTUy5DUkVBVE9SLmNyZWF0ZUZyb21QYXJjZWwocGFyY2VsKQotICAgIC8vIH0gZWxzZSB7Ci0gICAgLy8gICAgIHYgPSBudWxsOwotICAgIC8vIH0KLSAgICBJZlN0YXRlbWVudCogZWxzZXBhcnQgPSBuZXcgSWZTdGF0ZW1lbnQoKTsKLSAgICBlbHNlcGFydC0+c3RhdGVtZW50cy0+QWRkKG5ldyBBc3NpZ25tZW50KHYsIE5VTExfVkFMVUUpKTsKLQotICAgIElmU3RhdGVtZW50KiBpZnBhcnQgPSBuZXcgSWZTdGF0ZW1lbnQoKTsKLSAgICBpZnBhcnQtPmV4cHJlc3Npb24gPSBuZXcgQ29tcGFyaXNvbihuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIjAiKSwgIiE9IiwKLSAgICAgICAgICAgICAgICBuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJyZWFkSW50IikpOwotICAgIGlmcGFydC0+ZWxzZWlmID0gZWxzZXBhcnQ7Ci0gICAgaWZwYXJ0LT5zdGF0ZW1lbnRzLT5BZGQobmV3IEFzc2lnbm1lbnQodiwKLSAgICAgICAgICAgICAgICBuZXcgTWV0aG9kQ2FsbCh2LT50eXBlLCAiQ1JFQVRPUi5jcmVhdGVGcm9tUGFyY2VsIiwgMSwgcGFyY2VsKSkpOwotCi0gICAgYWRkVG8tPkFkZChpZnBhcnQpOwotfQotCi12b2lkCi1Vc2VyRGF0YVR5cGU6OlJlYWRGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiopCi17Ci0gICAgLy8gVE9ETzogcmVhbGx5LCB3ZSBkb24ndCBuZWVkIHRvIGhhdmUgdGhpcyBleHRyYSBjaGVjaywgYnV0IHdlCi0gICAgLy8gZG9uJ3QgaGF2ZSB0d28gc2VwYXJhdGUgbWFyc2hhbGxpbmcgY29kZSBwYXRocwotICAgIC8vIGlmICgwICE9IHBhcmNlbC5yZWFkSW50KCkpIHsKLSAgICAvLyAgICAgdi5yZWFkRnJvbVBhcmNlbChwYXJjZWwpCi0gICAgLy8gfQotICAgIElmU3RhdGVtZW50KiBpZnBhcnQgPSBuZXcgSWZTdGF0ZW1lbnQoKTsKLSAgICBpZnBhcnQtPmV4cHJlc3Npb24gPSBuZXcgQ29tcGFyaXNvbihuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIjAiKSwgIiE9IiwKLSAgICAgICAgICAgICAgICBuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJyZWFkSW50IikpOwotICAgIGlmcGFydC0+c3RhdGVtZW50cy0+QWRkKG5ldyBNZXRob2RDYWxsKHYsICJyZWFkRnJvbVBhcmNlbCIsIDEsIHBhcmNlbCkpOwotICAgIGFkZFRvLT5BZGQoaWZwYXJ0KTsKLX0KLQotYm9vbAotVXNlckRhdGFUeXBlOjpDYW5CZUFycmF5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZAotVXNlckRhdGFUeXBlOjpXcml0ZUFycmF5VG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKQotewotICAgIGFkZFRvLT5BZGQobmV3IE1ldGhvZENhbGwocGFyY2VsLCAid3JpdGVUeXBlZEFycmF5IiwgMiwgdiwKLSAgICAgICAgICAgICAgICBCdWlsZFdyaXRlVG9QYXJjZWxGbGFncyhmbGFncykpKTsKLX0KLQotdm9pZAotVXNlckRhdGFUeXBlOjpDcmVhdGVBcnJheUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIHN0cmluZyBjcmVhdG9yID0gdi0+dHlwZS0+UXVhbGlmaWVkTmFtZSgpICsgIi5DUkVBVE9SIjsKLSAgICBhZGRUby0+QWRkKG5ldyBBc3NpZ25tZW50KHYsIG5ldyBNZXRob2RDYWxsKHBhcmNlbCwKLSAgICAgICAgICAgICAgICAiY3JlYXRlVHlwZWRBcnJheSIsIDEsIG5ldyBMaXRlcmFsRXhwcmVzc2lvbihjcmVhdG9yKSkpKTsKLX0KLQotdm9pZAotVXNlckRhdGFUeXBlOjpSZWFkQXJyYXlGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiopCi17Ci0gICAgc3RyaW5nIGNyZWF0b3IgPSB2LT50eXBlLT5RdWFsaWZpZWROYW1lKCkgKyAiLkNSRUFUT1IiOwotICAgIGFkZFRvLT5BZGQobmV3IE1ldGhvZENhbGwocGFyY2VsLCAicmVhZFR5cGVkQXJyYXkiLCAyLAotICAgICAgICAgICAgICAgICAgICB2LCBuZXcgTGl0ZXJhbEV4cHJlc3Npb24oY3JlYXRvcikpKTsKLX0KLQotdm9pZAotVXNlckRhdGFUeXBlOjpXcml0ZVRvUnBjRGF0YShTdGF0ZW1lbnRCbG9jayogYWRkVG8sIEV4cHJlc3Npb24qIGssIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIGRhdGEsIGludCBmbGFncykKLXsKLSAgICAvLyBkYXRhLnB1dEZsYXR0ZW5hYmxlKGssIHYpOwotICAgIGFkZFRvLT5BZGQobmV3IE1ldGhvZENhbGwoZGF0YSwgInB1dEZsYXR0ZW5hYmxlIiwgMiwgaywgdikpOwotfQotCi12b2lkCi1Vc2VyRGF0YVR5cGU6OkNyZWF0ZUZyb21ScGNEYXRhKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgRXhwcmVzc2lvbiogaywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogZGF0YSwgVmFyaWFibGUqKiBjbCkKLXsKLSAgICAvLyBkYXRhLmdldEZsYXR0ZW5hYmxlKGssIENMQVNTLlJQQ19DUkVBVE9SKTsKLSAgICBhZGRUby0+QWRkKG5ldyBBc3NpZ25tZW50KHYsIG5ldyBNZXRob2RDYWxsKGRhdGEsICJnZXRGbGF0dGVuYWJsZSIsIDIsIGssCi0gICAgICAgICAgICAgICAgbmV3IEZpZWxkVmFyaWFibGUodi0+dHlwZSwgIlJQQ19DUkVBVE9SIikpKSk7Ci19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotSW50ZXJmYWNlVHlwZTo6SW50ZXJmYWNlVHlwZShjb25zdCBzdHJpbmcmIHBhY2thZ2UsIGNvbnN0IHN0cmluZyYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYnVpbHRJbiwgYm9vbCBvbmV3YXksCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGRlY2xGaWxlLCBpbnQgZGVjbExpbmUpCi0gICAgOlR5cGUocGFja2FnZSwgbmFtZSwgYnVpbHRJbiA/IEJVSUxUX0lOIDogSU5URVJGQUNFLCB0cnVlLCBmYWxzZSwgZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICBkZWNsRmlsZSwgZGVjbExpbmUpCi0gICAgLG1fb25ld2F5KG9uZXdheSkKLXsKLX0KLQotYm9vbAotSW50ZXJmYWNlVHlwZTo6T25lV2F5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9vbmV3YXk7Ci19Ci0KLXZvaWQKLUludGVyZmFjZVR5cGU6OldyaXRlVG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKQotewotICAgIC8vIHBhcmNlbC53cml0ZVN0cm9uZ0JpbmRlcih2ICE9IG51bGwgPyB2LmFzQmluZGVyKCkgOiBudWxsKTsKLSAgICBhZGRUby0+QWRkKG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgIndyaXRlU3Ryb25nQmluZGVyIiwgMSwgCi0gICAgICAgICAgICAgICAgbmV3IFRlcm5hcnkoCi0gICAgICAgICAgICAgICAgICAgIG5ldyBDb21wYXJpc29uKHYsICIhPSIsIE5VTExfVkFMVUUpLAotICAgICAgICAgICAgICAgICAgICBuZXcgTWV0aG9kQ2FsbCh2LCAiYXNCaW5kZXIiKSwKLSAgICAgICAgICAgICAgICAgICAgTlVMTF9WQUxVRSkpKTsKLX0KLQotdm9pZAotSW50ZXJmYWNlVHlwZTo6Q3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIC8vIHYgPSBJbnRlcmZhY2UuYXNJbnRlcmZhY2UocGFyY2VsLnJlYWRTdHJvbmdCaW5kZXIoKSk7Ci0gICAgc3RyaW5nIHR5cGUgPSB2LT50eXBlLT5RdWFsaWZpZWROYW1lKCk7Ci0gICAgdHlwZSArPSAiLlN0dWIiOwotICAgIGFkZFRvLT5BZGQobmV3IEFzc2lnbm1lbnQodiwKLSAgICAgICAgICAgICAgICBuZXcgTWV0aG9kQ2FsbCggTkFNRVMuRmluZCh0eXBlKSwgImFzSW50ZXJmYWNlIiwgMSwKLSAgICAgICAgICAgICAgICAgICAgbmV3IE1ldGhvZENhbGwocGFyY2VsLCAicmVhZFN0cm9uZ0JpbmRlciIpKSkpOwotfQotCi0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotR2VuZXJpY1R5cGU6OkdlbmVyaWNUeXBlKGNvbnN0IHN0cmluZyYgcGFja2FnZSwgY29uc3Qgc3RyaW5nJiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvcjxUeXBlKj4mIGFyZ3MpCi0gICAgOlR5cGUocGFja2FnZSwgbmFtZSwgQlVJTFRfSU4sIHRydWUsIHRydWUsIHRydWUpCi17Ci0gICAgbV9hcmdzID0gYXJnczsKLQotICAgIG1faW1wb3J0TmFtZSA9IHBhY2thZ2UgKyAnLicgKyBuYW1lOwotCi0gICAgc3RyaW5nIGdlbiA9ICI8IjsKLSAgICBpbnQgTiA9IGFyZ3Muc2l6ZSgpOwotICAgIGZvciAoaW50IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgVHlwZSogdCA9IGFyZ3NbaV07Ci0gICAgICAgIGdlbiArPSB0LT5RdWFsaWZpZWROYW1lKCk7Ci0gICAgICAgIGlmIChpICE9IE4tMSkgewotICAgICAgICAgICAgZ2VuICs9ICcsJzsKLSAgICAgICAgfQotICAgIH0KLSAgICBnZW4gKz0gJz4nOwotICAgIG1fZ2VuZXJpY0FyZ3VtZW50cyA9IGdlbjsKLSAgICBTZXRRdWFsaWZpZWROYW1lKG1faW1wb3J0TmFtZSArIGdlbik7Ci19Ci0KLWNvbnN0IHZlY3RvcjxUeXBlKj4mCi1HZW5lcmljVHlwZTo6R2VuZXJpY0FyZ3VtZW50VHlwZXMoKSBjb25zdAotewotICAgIHJldHVybiBtX2FyZ3M7Ci19Ci0KLXN0cmluZwotR2VuZXJpY1R5cGU6OkdlbmVyaWNBcmd1bWVudHMoKSBjb25zdAotewotICAgIHJldHVybiBtX2dlbmVyaWNBcmd1bWVudHM7Ci19Ci0KLXN0cmluZwotR2VuZXJpY1R5cGU6OkltcG9ydFR5cGUoKSBjb25zdAotewotICAgIHJldHVybiBtX2ltcG9ydE5hbWU7Ci19Ci0KLXZvaWQKLUdlbmVyaWNUeXBlOjpXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncykKLXsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImltcGxlbWVudCBHZW5lcmljVHlwZTo6V3JpdGVUb1BhcmNlbFxuIik7Ci19Ci0KLXZvaWQKLUdlbmVyaWNUeXBlOjpDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiopCi17Ci0gICAgZnByaW50ZihzdGRlcnIsICJpbXBsZW1lbnQgR2VuZXJpY1R5cGU6OkNyZWF0ZUZyb21QYXJjZWxcbiIpOwotfQotCi12b2lkCi1HZW5lcmljVHlwZTo6UmVhZEZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIGZwcmludGYoc3RkZXJyLCAiaW1wbGVtZW50IEdlbmVyaWNUeXBlOjpSZWFkRnJvbVBhcmNlbFxuIik7Ci19Ci0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1HZW5lcmljTGlzdFR5cGU6OkdlbmVyaWNMaXN0VHlwZShjb25zdCBzdHJpbmcmIHBhY2thZ2UsIGNvbnN0IHN0cmluZyYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3I8VHlwZSo+JiBhcmdzKQotICAgIDpHZW5lcmljVHlwZShwYWNrYWdlLCBuYW1lLCBhcmdzKSwKLSAgICAgbV9jcmVhdG9yKGFyZ3NbMF0tPkNyZWF0b3JOYW1lKCkpCi17Ci19Ci0KLXN0cmluZwotR2VuZXJpY0xpc3RUeXBlOjpDcmVhdG9yTmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICJhbmRyb2lkLm9zLlBhcmNlbC5hcnJheUxpc3RDcmVhdG9yIjsKLX0KLQotc3RyaW5nCi1HZW5lcmljTGlzdFR5cGU6Okluc3RhbnRpYWJsZU5hbWUoKSBjb25zdAotewotICAgIHJldHVybiAiamF2YS51dGlsLkFycmF5TGlzdCIgKyBHZW5lcmljQXJndW1lbnRzKCk7Ci19Ci0KLXZvaWQKLUdlbmVyaWNMaXN0VHlwZTo6V3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpCi17Ci0gICAgaWYgKG1fY3JlYXRvciA9PSBTVFJJTkdfVFlQRS0+Q3JlYXRvck5hbWUoKSkgewotICAgICAgICBhZGRUby0+QWRkKG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgIndyaXRlU3RyaW5nTGlzdCIsIDEsIHYpKTsKLSAgICB9IGVsc2UgaWYgKG1fY3JlYXRvciA9PSBJQklOREVSX1RZUEUtPkNyZWF0b3JOYW1lKCkpIHsKLSAgICAgICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJ3cml0ZUJpbmRlckxpc3QiLCAxLCB2KSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gcGFyY2VsLndyaXRlVHlwZWRMaXN0WFgoYXJnKTsKLSAgICAgICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJ3cml0ZVR5cGVkTGlzdCIsIDEsIHYpKTsKLSAgICB9Ci19Ci0KLXZvaWQKLUdlbmVyaWNMaXN0VHlwZTo6Q3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqKQotewotICAgIGlmIChtX2NyZWF0b3IgPT0gU1RSSU5HX1RZUEUtPkNyZWF0b3JOYW1lKCkpIHsKLSAgICAgICAgYWRkVG8tPkFkZChuZXcgQXNzaWdubWVudCh2LAotICAgICAgICAgICAgICAgICAgIG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgImNyZWF0ZVN0cmluZ0FycmF5TGlzdCIsIDApKSk7Ci0gICAgfSBlbHNlIGlmIChtX2NyZWF0b3IgPT0gSUJJTkRFUl9UWVBFLT5DcmVhdG9yTmFtZSgpKSB7Ci0gICAgICAgIGFkZFRvLT5BZGQobmV3IEFzc2lnbm1lbnQodiwKLSAgICAgICAgICAgICAgICAgICBuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJjcmVhdGVCaW5kZXJBcnJheUxpc3QiLCAwKSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIHYgPSBfZGF0YS5yZWFkVHlwZWRBcnJheUxpc3QoWFhYLmNyZWF0b3IpOwotICAgICAgICBhZGRUby0+QWRkKG5ldyBBc3NpZ25tZW50KHYsCi0gICAgICAgICAgICAgICAgICAgbmV3IE1ldGhvZENhbGwocGFyY2VsLCAiY3JlYXRlVHlwZWRBcnJheUxpc3QiLCAxLAotICAgICAgICAgICAgICAgICAgIG5ldyBMaXRlcmFsRXhwcmVzc2lvbihtX2NyZWF0b3IpKSkpOwotICAgIH0KLX0KLQotdm9pZAotR2VuZXJpY0xpc3RUeXBlOjpSZWFkRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiopCi17Ci0gICAgaWYgKG1fY3JlYXRvciA9PSBTVFJJTkdfVFlQRS0+Q3JlYXRvck5hbWUoKSkgewotICAgICAgICBhZGRUby0+QWRkKG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgInJlYWRTdHJpbmdMaXN0IiwgMSwgdikpOwotICAgIH0gZWxzZSBpZiAobV9jcmVhdG9yID09IElCSU5ERVJfVFlQRS0+Q3JlYXRvck5hbWUoKSkgewotICAgICAgICBhZGRUby0+QWRkKG5ldyBNZXRob2RDYWxsKHBhcmNlbCwgInJlYWRCaW5kZXJMaXN0IiwgMSwgdikpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIHYgPSBfZGF0YS5yZWFkVHlwZWRMaXN0KHYsIFhYWC5jcmVhdG9yKTsKLSAgICAgICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJyZWFkVHlwZWRMaXN0IiwgMiwKLSAgICAgICAgICAgICAgICAgICAgICAgdiwKLSAgICAgICAgICAgICAgICAgICAgICAgbmV3IExpdGVyYWxFeHByZXNzaW9uKG1fY3JlYXRvcikpKTsKLSAgICB9Ci19Ci0KLXZvaWQKLUdlbmVyaWNMaXN0VHlwZTo6V3JpdGVUb1JwY0RhdGEoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBFeHByZXNzaW9uKiBrLCBWYXJpYWJsZSogdiwKLSAgICAgICAgVmFyaWFibGUqIGRhdGEsIGludCBmbGFncykKLXsKLSAgICBUeXBlKiBnZW5lcmljID0gR2VuZXJpY0FyZ3VtZW50VHlwZXMoKVswXTsKLSAgICBpZiAoZ2VuZXJpYyA9PSBSUENfREFUQV9UWVBFKSB7Ci0gICAgICAgIGFkZFRvLT5BZGQobmV3IE1ldGhvZENhbGwoZGF0YSwgInB1dFJwY0RhdGFMaXN0IiwgMiwgaywgdikpOwotICAgIH0gZWxzZSBpZiAoZ2VuZXJpYy0+UnBjQ3JlYXRvck5hbWUoKSAhPSAiIikgewotICAgICAgICBhZGRUby0+QWRkKG5ldyBNZXRob2RDYWxsKGRhdGEsICJwdXRGbGF0dGVuYWJsZUxpc3QiLCAyLCBrLCB2KSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgYWRkVG8tPkFkZChuZXcgTWV0aG9kQ2FsbChkYXRhLCAicHV0TGlzdCIsIDIsIGssIHYpKTsKLSAgICB9Ci19Ci0KLXZvaWQKLUdlbmVyaWNMaXN0VHlwZTo6Q3JlYXRlRnJvbVJwY0RhdGEoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBFeHByZXNzaW9uKiBrLCBWYXJpYWJsZSogdiwKLSAgICAgICAgVmFyaWFibGUqIGRhdGEsIFZhcmlhYmxlKiogY2wpCi17Ci0gICAgVHlwZSogZ2VuZXJpYyA9IEdlbmVyaWNBcmd1bWVudFR5cGVzKClbMF07Ci0gICAgaWYgKGdlbmVyaWMgPT0gUlBDX0RBVEFfVFlQRSkgewotICAgICAgICBhZGRUby0+QWRkKG5ldyBBc3NpZ25tZW50KHYsIG5ldyBNZXRob2RDYWxsKGRhdGEsICJnZXRScGNEYXRhTGlzdCIsIDIsIGspKSk7Ci0gICAgfSBlbHNlIGlmIChnZW5lcmljLT5ScGNDcmVhdG9yTmFtZSgpICE9ICIiKSB7Ci0gICAgICAgIGFkZFRvLT5BZGQobmV3IEFzc2lnbm1lbnQodiwgbmV3IE1ldGhvZENhbGwoZGF0YSwgImdldEZsYXR0ZW5hYmxlTGlzdCIsIDIsIGssIAotICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExpdGVyYWxFeHByZXNzaW9uKGdlbmVyaWMtPlJwY0NyZWF0b3JOYW1lKCkpKSkpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0cmluZyBjbGFzc0FyZyA9IEdlbmVyaWNBcmd1bWVudFR5cGVzKClbMF0tPlF1YWxpZmllZE5hbWUoKTsKLSAgICAgICAgY2xhc3NBcmcgKz0gIi5jbGFzcyI7Ci0gICAgICAgIGFkZFRvLT5BZGQobmV3IEFzc2lnbm1lbnQodiwgbmV3IE1ldGhvZENhbGwoZGF0YSwgImdldExpc3QiLCAyLCBrLAotICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExpdGVyYWxFeHByZXNzaW9uKGNsYXNzQXJnKSkpKTsKLSAgICB9Ci19Ci0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1ScGNEYXRhVHlwZTo6UnBjRGF0YVR5cGUoKQotICAgIDpVc2VyRGF0YVR5cGUoImFuZHJvaWQuc3VwcG9ydC5wbGFjZS5ycGMiLCAiUnBjRGF0YSIsIHRydWUsIHRydWUsIHRydWUpCi17Ci19Ci0KLXZvaWQKLVJwY0RhdGFUeXBlOjpXcml0ZVRvUnBjRGF0YShTdGF0ZW1lbnRCbG9jayogYWRkVG8sIEV4cHJlc3Npb24qIGssIFZhcmlhYmxlKiB2LAotICAgICAgICBWYXJpYWJsZSogZGF0YSwgaW50IGZsYWdzKQotewotICAgIGFkZFRvLT5BZGQobmV3IE1ldGhvZENhbGwoZGF0YSwgInB1dFJwY0RhdGEiLCAyLCBrLCB2KSk7Ci19Ci0KLXZvaWQKLVJwY0RhdGFUeXBlOjpDcmVhdGVGcm9tUnBjRGF0YShTdGF0ZW1lbnRCbG9jayogYWRkVG8sIEV4cHJlc3Npb24qIGssIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogZGF0YSwKLSAgICAgICAgVmFyaWFibGUqKiBjbCkKLXsKLSAgICBhZGRUby0+QWRkKG5ldyBBc3NpZ25tZW50KHYsIG5ldyBNZXRob2RDYWxsKGRhdGEsICJnZXRScGNEYXRhIiwgMSwgaykpKTsKLX0KLQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLUNsYXNzTG9hZGVyVHlwZTo6Q2xhc3NMb2FkZXJUeXBlKCkKLSAgICA6VHlwZSgiamF2YS5sYW5nIiwgIkNsYXNzTG9hZGVyIiwgQlVJTFRfSU4sIGZhbHNlLCBmYWxzZSwgZmFsc2UpCi17Ci19Ci0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1OYW1lc3BhY2U6Ok5hbWVzcGFjZSgpCi17Ci19Ci0KLU5hbWVzcGFjZTo6fk5hbWVzcGFjZSgpCi17Ci0gICAgaW50IE4gPSBtX3R5cGVzLnNpemUoKTsKLSAgICBmb3IgKGludCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIGRlbGV0ZSBtX3R5cGVzW2ldOwotICAgIH0KLX0KLQotdm9pZAotTmFtZXNwYWNlOjpBZGQoVHlwZSogdHlwZSkKLXsKLSAgICBUeXBlKiB0ID0gRmluZCh0eXBlLT5RdWFsaWZpZWROYW1lKCkpOwotICAgIGlmICh0ID09IE5VTEwpIHsKLSAgICAgICAgbV90eXBlcy5wdXNoX2JhY2sodHlwZSk7Ci0gICAgfQotfQotCi12b2lkCi1OYW1lc3BhY2U6OkFkZEdlbmVyaWNUeXBlKGNvbnN0IHN0cmluZyYgcGFja2FnZSwgY29uc3Qgc3RyaW5nJiBuYW1lLCBpbnQgYXJncykKLXsKLSAgICBHZW5lcmljIGc7Ci0gICAgICAgIGcucGFja2FnZSA9IHBhY2thZ2U7Ci0gICAgICAgIGcubmFtZSA9IG5hbWU7Ci0gICAgICAgIGcucXVhbGlmaWVkID0gcGFja2FnZSArICcuJyArIG5hbWU7Ci0gICAgICAgIGcuYXJncyA9IGFyZ3M7Ci0gICAgbV9nZW5lcmljcy5wdXNoX2JhY2soZyk7Ci19Ci0KLVR5cGUqCi1OYW1lc3BhY2U6OkZpbmQoY29uc3Qgc3RyaW5nJiBuYW1lKSBjb25zdAotewotICAgIGludCBOID0gbV90eXBlcy5zaXplKCk7Ci0gICAgZm9yIChpbnQgaT0wOyBpPE47IGkrKykgewotICAgICAgICBpZiAobV90eXBlc1tpXS0+UXVhbGlmaWVkTmFtZSgpID09IG5hbWUpIHsKLSAgICAgICAgICAgIHJldHVybiBtX3R5cGVzW2ldOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBOVUxMOwotfQotCi1UeXBlKgotTmFtZXNwYWNlOjpGaW5kKGNvbnN0IGNoYXIqIHBhY2thZ2UsIGNvbnN0IGNoYXIqIG5hbWUpIGNvbnN0Ci17Ci0gICAgc3RyaW5nIHM7Ci0gICAgaWYgKHBhY2thZ2UgIT0gTlVMTCkgewotICAgICAgICBzICs9IHBhY2thZ2U7Ci0gICAgICAgIHMgKz0gJy4nOwotICAgIH0KLSAgICBzICs9IG5hbWU7Ci0gICAgcmV0dXJuIEZpbmQocyk7Ci19Ci0KLXN0YXRpYyBzdHJpbmcKLW5vcm1hbGl6ZV9nZW5lcmljKGNvbnN0IHN0cmluZyYgcykKLXsKLSAgICBzdHJpbmcgcjsKLSAgICBpbnQgTiA9IHMuc2l6ZSgpOwotICAgIGZvciAoaW50IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgY2hhciBjID0gc1tpXTsKLSAgICAgICAgaWYgKCFpc3NwYWNlKGMpKSB7Ci0gICAgICAgICAgICByICs9IGM7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHI7Ci19Ci0KLVR5cGUqCi1OYW1lc3BhY2U6OlNlYXJjaChjb25zdCBzdHJpbmcmIG5hbWUpCi17Ci0gICAgLy8gYW4gZXhhY3QgbWF0Y2ggd2lucwotICAgIFR5cGUqIHJlc3VsdCA9IEZpbmQobmFtZSk7Ci0gICAgaWYgKHJlc3VsdCAhPSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgLy8gdHJ5IHRoZSBjbGFzcyBuYW1lcwotICAgIC8vIG91ciBsYW5ndWFnZSBkb2Vzbid0IGFsbG93IHlvdSB0byBub3Qgc3BlY2lmeSBvdXRlciBjbGFzc2VzCi0gICAgLy8gd2hlbiByZWZlcmVuY2luZyBhbiBpbm5lciBjbGFzcy4gIHRoYXQgY291bGQgYmUgY2hhbmdlZCwgYW5kIHRoaXMKLSAgICAvLyB3b3VsZCBiZSB0aGUgcGxhY2UgdG8gZG8gaXQsIGJ1dCBJIGRvbid0IHRoaW5rIHRoZSBjb21wbGV4aXR5IGluCi0gICAgLy8gc2NvcGluZyBydWxlcyBpcyB3b3J0aCBpdC4KLSAgICBpbnQgTiA9IG1fdHlwZXMuc2l6ZSgpOwotICAgIGZvciAoaW50IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgaWYgKG1fdHlwZXNbaV0tPk5hbWUoKSA9PSBuYW1lKSB7Ci0gICAgICAgICAgICByZXR1cm4gbV90eXBlc1tpXTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIHdlIGdvdCB0byBoZXJlIGFuZCBpdCdzIG5vdCBhIGdlbmVyaWMsIGdpdmUgdXAKLSAgICBpZiAobmFtZS5maW5kKCc8JykgPT0gbmFtZS5ucG9zKSB7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIC8vIHJlbW92ZSBhbnkgd2hpdGVzcGFjZQotICAgIHN0cmluZyBub3JtYWxpemVkID0gbm9ybWFsaXplX2dlbmVyaWMobmFtZSk7Ci0KLSAgICAvLyBmaW5kIHRoZSBwYXJ0IGJlZm9yZSB0aGUgJzwnLCBmaW5kIGEgZ2VuZXJpYyBmb3IgaXQKLSAgICBzc2l6ZV90IGJhc2VJbmRleCA9IG5vcm1hbGl6ZWQuZmluZCgnPCcpOwotICAgIHN0cmluZyBiYXNlKG5vcm1hbGl6ZWQuY19zdHIoKSwgYmFzZUluZGV4KTsKLSAgICBjb25zdCBHZW5lcmljKiBnID0gc2VhcmNoX2dlbmVyaWMoYmFzZSk7Ci0gICAgaWYgKGcgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICAvLyBGb3IgZWFjaCBvZiB0aGUgYXJncywgZG8gYSByZWN1cnNpdmUgc2VhcmNoIG9uIGl0LiAgV2UgZG9uJ3QgYWxsb3cKLSAgICAvLyBnZW5lcmljcyB3aXRoaW4gZ2VuZXJpY3MgbGlrZSBKYXZhIGRvZXMsIGJlY2F1c2Ugd2UncmUgcmVhbGx5IGxpbWl0aW5nCi0gICAgLy8gdGhlbSB0byBqdXN0IGJ1aWx0LWluIGNvbnRhaW5lciBjbGFzc2VzLCBhdCBsZWFzdCBmb3Igbm93LiAgT3VyIHN5bnRheAotICAgIC8vIGVuc3VyZXMgdGhpcyByaWdodCBub3cgYXMgd2VsbC4KLSAgICB2ZWN0b3I8VHlwZSo+IGFyZ3M7Ci0gICAgc2l6ZV90IHN0YXJ0ID0gYmFzZUluZGV4ICsgMTsKLSAgICBzaXplX3QgZW5kID0gc3RhcnQ7Ci0gICAgd2hpbGUgKG5vcm1hbGl6ZWRbc3RhcnRdICE9ICdcMCcpIHsKLSAgICAgICAgZW5kID0gbm9ybWFsaXplZC5maW5kKCcsJywgc3RhcnQpOwotICAgICAgICBpZiAoZW5kID09IG5vcm1hbGl6ZWQubnBvcykgewotICAgICAgICAgICAgZW5kID0gbm9ybWFsaXplZC5maW5kKCc+Jywgc3RhcnQpOwotICAgICAgICB9Ci0gICAgICAgIHN0cmluZyBzKG5vcm1hbGl6ZWQuY19zdHIoKStzdGFydCwgZW5kLXN0YXJ0KTsKLSAgICAgICAgVHlwZSogdCA9IHRoaXMtPlNlYXJjaChzKTsKLSAgICAgICAgaWYgKHQgPT0gTlVMTCkgewotICAgICAgICAgICAgLy8gbWF5YmUgd2Ugc2hvdWxkIHByaW50IGEgd2FybmluZyBoZXJlPwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgYXJncy5wdXNoX2JhY2sodCk7Ci0gICAgICAgIHN0YXJ0ID0gZW5kKzE7Ci0gICAgfQotCi0gICAgLy8gY29uc3RydWN0IGEgR2VuZXJpY1R5cGUsIGFkZCBpdCB0byBvdXIgbmFtZSBzZXQgc28gdGhleSBhbHdheXMgZ2V0Ci0gICAgLy8gdGhlIHNhbWUgb2JqZWN0LCBhbmQgcmV0dXJuIGl0LgotICAgIHJlc3VsdCA9IG1ha2VfZ2VuZXJpY190eXBlKGctPnBhY2thZ2UsIGctPm5hbWUsIGFyZ3MpOwotICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICB0aGlzLT5BZGQocmVzdWx0KTsKLSAgICByZXR1cm4gdGhpcy0+RmluZChyZXN1bHQtPlF1YWxpZmllZE5hbWUoKSk7Ci19Ci0KLWNvbnN0IE5hbWVzcGFjZTo6R2VuZXJpYyoKLU5hbWVzcGFjZTo6c2VhcmNoX2dlbmVyaWMoY29uc3Qgc3RyaW5nJiBuYW1lKSBjb25zdAotewotICAgIGludCBOID0gbV9nZW5lcmljcy5zaXplKCk7Ci0KLSAgICAvLyBmaXJzdCBleGFjdCBtYXRjaAotICAgIGZvciAoaW50IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgY29uc3QgR2VuZXJpYyYgZyA9IG1fZ2VuZXJpY3NbaV07Ci0gICAgICAgIGlmIChnLnF1YWxpZmllZCA9PSBuYW1lKSB7Ci0gICAgICAgICAgICByZXR1cm4gJmc7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyB0aGVuIG5hbWUgbWF0Y2gKLSAgICBmb3IgKGludCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IEdlbmVyaWMmIGcgPSBtX2dlbmVyaWNzW2ldOwotICAgICAgICBpZiAoZy5uYW1lID09IG5hbWUpIHsKLSAgICAgICAgICAgIHJldHVybiAmZzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBOVUxMOwotfQotCi12b2lkCi1OYW1lc3BhY2U6OkR1bXAoKSBjb25zdAotewotICAgIGludCBuID0gbV90eXBlcy5zaXplKCk7Ci0gICAgZm9yIChpbnQgaT0wOyBpPG47IGkrKykgewotICAgICAgICBUeXBlKiB0ID0gbV90eXBlc1tpXTsKLSAgICAgICAgcHJpbnRmKCJ0eXBlOiBwYWNrYWdlPSVzIG5hbWU9JXMgcXVhbGlmaWVkTmFtZT0lc1xuIiwKLSAgICAgICAgICAgICAgICB0LT5QYWNrYWdlKCkuY19zdHIoKSwgdC0+TmFtZSgpLmNfc3RyKCksCi0gICAgICAgICAgICAgICAgdC0+UXVhbGlmaWVkTmFtZSgpLmNfc3RyKCkpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2FpZGwvVHlwZS5oIGIvdG9vbHMvYWlkbC9UeXBlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlMTI3MjAuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWlkbC9UeXBlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NDIgKzAsMCBAQAotI2lmbmRlZiBBSURMX1RZUEVfSAotI2RlZmluZSBBSURMX1RZUEVfSAotCi0jaW5jbHVkZSAiQVNULmgiCi0jaW5jbHVkZSA8c3RyaW5nPgotI2luY2x1ZGUgPHZlY3Rvcj4KLQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotY2xhc3MgVHlwZQotewotcHVibGljOgotICAgIC8vIGtpbmRzCi0gICAgZW51bSB7Ci0gICAgICAgIEJVSUxUX0lOLAotICAgICAgICBVU0VSREFUQSwKLSAgICAgICAgSU5URVJGQUNFLAotICAgICAgICBHRU5FUkFURUQKLSAgICB9OwotICAgIAotICAgIC8vIFdyaXRlVG9QYXJjZWwgZmxhZ3MKLSAgICBlbnVtIHsKLSAgICAgICAgUEFSQ0VMQUJMRV9XUklURV9SRVRVUk5fVkFMVUUgPSAweDAwMDEKLSAgICB9OwotCi0gICAgICAgICAgICAgICAgICAgIFR5cGUoY29uc3Qgc3RyaW5nJiBuYW1lLCBpbnQga2luZCwgYm9vbCBjYW5Xcml0ZVRvUGFyY2VsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuV3JpdGVUb1JwY0RhdGEsIGJvb2wgY2FuQmVPdXQpOwotICAgICAgICAgICAgICAgICAgICBUeXBlKGNvbnN0IHN0cmluZyYgcGFja2FnZSwgY29uc3Qgc3RyaW5nJiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBraW5kLCBib29sIGNhbldyaXRlVG9QYXJjZWwsIGJvb2wgY2FuV3JpdGVUb1JwY0RhdGEsIGJvb2wgY2FuQmVPdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBkZWNsRmlsZSA9ICIiLCBpbnQgZGVjbExpbmUgPSAtMSk7Ci0gICAgdmlydHVhbCAgICAgICAgIH5UeXBlKCk7Ci0KLSAgICBpbmxpbmUgc3RyaW5nICAgUGFja2FnZSgpIGNvbnN0ICAgICAgICAgICAgIHsgcmV0dXJuIG1fcGFja2FnZTsgfQotICAgIGlubGluZSBzdHJpbmcgICBOYW1lKCkgY29uc3QgICAgICAgICAgICAgICAgeyByZXR1cm4gbV9uYW1lOyB9Ci0gICAgaW5saW5lIHN0cmluZyAgIFF1YWxpZmllZE5hbWUoKSBjb25zdCAgICAgICB7IHJldHVybiBtX3F1YWxpZmllZE5hbWU7IH0KLSAgICBpbmxpbmUgaW50ICAgICAgS2luZCgpIGNvbnN0ICAgICAgICAgICAgICAgIHsgcmV0dXJuIG1fa2luZDsgfQotICAgIGlubGluZSBzdHJpbmcgICBEZWNsRmlsZSgpIGNvbnN0ICAgICAgICAgICAgeyByZXR1cm4gbV9kZWNsRmlsZTsgfQotICAgIGlubGluZSBpbnQgICAgICBEZWNsTGluZSgpIGNvbnN0ICAgICAgICAgICAgeyByZXR1cm4gbV9kZWNsTGluZTsgfQotICAgIGlubGluZSBib29sICAgICBDYW5Xcml0ZVRvUGFyY2VsKCkgY29uc3QgICAgeyByZXR1cm4gbV9jYW5Xcml0ZVRvUGFyY2VsOyB9Ci0gICAgaW5saW5lIGJvb2wgICAgIENhbldyaXRlVG9ScGNEYXRhKCkgY29uc3QgICB7IHJldHVybiBtX2NhbldyaXRlVG9ScGNEYXRhOyB9Ci0gICAgaW5saW5lIGJvb2wgICAgIENhbkJlT3V0UGFyYW1ldGVyKCkgY29uc3QgICB7IHJldHVybiBtX2NhbkJlT3V0OyB9Ci0gICAgCi0gICAgdmlydHVhbCBzdHJpbmcgIEltcG9ydFR5cGUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHN0cmluZyAgQ3JlYXRvck5hbWUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHN0cmluZyAgUnBjQ3JlYXRvck5hbWUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHN0cmluZyAgSW5zdGFudGlhYmxlTmFtZSgpIGNvbnN0OwotCi0gICAgdmlydHVhbCB2b2lkICAgIFdyaXRlVG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncyk7Ci0gICAgdmlydHVhbCB2b2lkICAgIENyZWF0ZUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiogY2wpOwotICAgIHZpcnR1YWwgdm9pZCAgICBSZWFkRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCk7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgICAgQ2FuQmVBcnJheSgpIGNvbnN0OwotCi0gICAgdmlydHVhbCB2b2lkICAgIFdyaXRlQXJyYXlUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgQ3JlYXRlQXJyYXlGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgUmVhZEFycmF5RnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgICAgV3JpdGVUb1JwY0RhdGEoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBFeHByZXNzaW9uKiBrLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBkYXRhLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUnBjRGF0YShTdGF0ZW1lbnRCbG9jayogYWRkVG8sIEV4cHJlc3Npb24qIGssIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIGRhdGEsIFZhcmlhYmxlKiogY2wpOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBTZXRRdWFsaWZpZWROYW1lKGNvbnN0IHN0cmluZyYgcXVhbGlmaWVkKTsKLSAgICBFeHByZXNzaW9uKiBCdWlsZFdyaXRlVG9QYXJjZWxGbGFncyhpbnQgZmxhZ3MpOwotCi1wcml2YXRlOgotICAgIFR5cGUoKTsKLSAgICBUeXBlKGNvbnN0IFR5cGUmKTsKLQotICAgIHN0cmluZyBtX3BhY2thZ2U7Ci0gICAgc3RyaW5nIG1fbmFtZTsKLSAgICBzdHJpbmcgbV9xdWFsaWZpZWROYW1lOwotICAgIHN0cmluZyBtX2RlY2xGaWxlOwotICAgIGludCBtX2RlY2xMaW5lOwotICAgIGludCBtX2tpbmQ7Ci0gICAgYm9vbCBtX2NhbldyaXRlVG9QYXJjZWw7Ci0gICAgYm9vbCBtX2NhbldyaXRlVG9ScGNEYXRhOwotICAgIGJvb2wgbV9jYW5CZU91dDsKLX07Ci0KLWNsYXNzIEJhc2ljVHlwZSA6IHB1YmxpYyBUeXBlCi17Ci1wdWJsaWM6Ci0gICAgICAgICAgICAgICAgICAgIEJhc2ljVHlwZShjb25zdCBzdHJpbmcmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIG1hcnNoYWxsUGFyY2VsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiB1bm1hcnNoYWxsUGFyY2VsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiB3cml0ZUFycmF5UGFyY2VsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBjcmVhdGVBcnJheVBhcmNlbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZyYgcmVhZEFycmF5UGFyY2VsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBtYXJzaGFsbFJwYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZyYgdW5tYXJzaGFsbFJwYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZyYgd3JpdGVBcnJheVJwYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZyYgY3JlYXRlQXJyYXlScGMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIHJlYWRBcnJheVJwYyk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgICAgV3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgQ3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCk7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgICAgQ2FuQmVBcnJheSgpIGNvbnN0OwotCi0gICAgdmlydHVhbCB2b2lkICAgIFdyaXRlQXJyYXlUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgQ3JlYXRlQXJyYXlGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgUmVhZEFycmF5RnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgICAgV3JpdGVUb1JwY0RhdGEoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBFeHByZXNzaW9uKiBrLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBkYXRhLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUnBjRGF0YShTdGF0ZW1lbnRCbG9jayogYWRkVG8sIEV4cHJlc3Npb24qIGssIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIGRhdGEsIFZhcmlhYmxlKiogY2wpOwotCi1wcml2YXRlOgotICAgIHN0cmluZyBtX21hcnNoYWxsUGFyY2VsOwotICAgIHN0cmluZyBtX3VubWFyc2hhbGxQYXJjZWw7Ci0gICAgc3RyaW5nIG1fd3JpdGVBcnJheVBhcmNlbDsKLSAgICBzdHJpbmcgbV9jcmVhdGVBcnJheVBhcmNlbDsKLSAgICBzdHJpbmcgbV9yZWFkQXJyYXlQYXJjZWw7Ci0gICAgc3RyaW5nIG1fbWFyc2hhbGxScGM7Ci0gICAgc3RyaW5nIG1fdW5tYXJzaGFsbFJwYzsKLSAgICBzdHJpbmcgbV93cml0ZUFycmF5UnBjOwotICAgIHN0cmluZyBtX2NyZWF0ZUFycmF5UnBjOwotICAgIHN0cmluZyBtX3JlYWRBcnJheVJwYzsKLX07Ci0KLWNsYXNzIEJvb2xlYW5UeXBlIDogcHVibGljIFR5cGUKLXsKLXB1YmxpYzoKLSAgICAgICAgICAgICAgICAgICAgQm9vbGVhblR5cGUoKTsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLQotICAgIHZpcnR1YWwgYm9vbCAgICBDYW5CZUFycmF5KCkgY29uc3Q7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgICAgV3JpdGVBcnJheVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVBcnJheUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiogY2wpOwotICAgIHZpcnR1YWwgdm9pZCAgICBSZWFkQXJyYXlGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZVRvUnBjRGF0YShTdGF0ZW1lbnRCbG9jayogYWRkVG8sIEV4cHJlc3Npb24qIGssIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIGRhdGEsIGludCBmbGFncyk7Ci0gICAgdmlydHVhbCB2b2lkICAgIENyZWF0ZUZyb21ScGNEYXRhKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgRXhwcmVzc2lvbiogaywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogZGF0YSwgVmFyaWFibGUqKiBjbCk7Ci19OwotCi1jbGFzcyBDaGFyVHlwZSA6IHB1YmxpYyBUeXBlCi17Ci1wdWJsaWM6Ci0gICAgICAgICAgICAgICAgICAgIENoYXJUeXBlKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgICAgV3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgQ3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCk7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgICAgQ2FuQmVBcnJheSgpIGNvbnN0OwotCi0gICAgdmlydHVhbCB2b2lkICAgIFdyaXRlQXJyYXlUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgQ3JlYXRlQXJyYXlGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgUmVhZEFycmF5RnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgICAgV3JpdGVUb1JwY0RhdGEoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBFeHByZXNzaW9uKiBrLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBkYXRhLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUnBjRGF0YShTdGF0ZW1lbnRCbG9jayogYWRkVG8sIEV4cHJlc3Npb24qIGssIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIGRhdGEsIFZhcmlhYmxlKiogY2wpOwotfTsKLQotCi1jbGFzcyBTdHJpbmdUeXBlIDogcHVibGljIFR5cGUKLXsKLXB1YmxpYzoKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nVHlwZSgpOwotCi0gICAgdmlydHVhbCBzdHJpbmcgIENyZWF0b3JOYW1lKCkgY29uc3Q7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgICAgV3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgQ3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCk7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgICAgQ2FuQmVBcnJheSgpIGNvbnN0OwotCi0gICAgdmlydHVhbCB2b2lkICAgIFdyaXRlQXJyYXlUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgQ3JlYXRlQXJyYXlGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgUmVhZEFycmF5RnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgICAgV3JpdGVUb1JwY0RhdGEoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBFeHByZXNzaW9uKiBrLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBkYXRhLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUnBjRGF0YShTdGF0ZW1lbnRCbG9jayogYWRkVG8sIEV4cHJlc3Npb24qIGssIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIGRhdGEsIFZhcmlhYmxlKiogY2wpOwotfTsKLQotY2xhc3MgQ2hhclNlcXVlbmNlVHlwZSA6IHB1YmxpYyBUeXBlCi17Ci1wdWJsaWM6Ci0gICAgICAgICAgICAgICAgICAgIENoYXJTZXF1ZW5jZVR5cGUoKTsKLQotICAgIHZpcnR1YWwgc3RyaW5nICBDcmVhdG9yTmFtZSgpIGNvbnN0OwotCi0gICAgdmlydHVhbCB2b2lkICAgIFdyaXRlVG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncyk7Ci0gICAgdmlydHVhbCB2b2lkICAgIENyZWF0ZUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiogY2wpOwotfTsKLQotY2xhc3MgUmVtb3RlRXhjZXB0aW9uVHlwZSA6IHB1YmxpYyBUeXBlCi17Ci1wdWJsaWM6Ci0gICAgICAgICAgICAgICAgICAgIFJlbW90ZUV4Y2VwdGlvblR5cGUoKTsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLX07Ci0KLWNsYXNzIFJ1bnRpbWVFeGNlcHRpb25UeXBlIDogcHVibGljIFR5cGUKLXsKLXB1YmxpYzoKLSAgICAgICAgICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvblR5cGUoKTsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLX07Ci0KLWNsYXNzIElCaW5kZXJUeXBlIDogcHVibGljIFR5cGUKLXsKLXB1YmxpYzoKLSAgICAgICAgICAgICAgICAgICAgSUJpbmRlclR5cGUoKTsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZUFycmF5VG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncyk7Ci0gICAgdmlydHVhbCB2b2lkICAgIENyZWF0ZUFycmF5RnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCk7Ci0gICAgdmlydHVhbCB2b2lkICAgIFJlYWRBcnJheUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiogY2wpOwotfTsKLQotY2xhc3MgSUludGVyZmFjZVR5cGUgOiBwdWJsaWMgVHlwZQotewotcHVibGljOgotICAgICAgICAgICAgICAgICAgICBJSW50ZXJmYWNlVHlwZSgpOwotCi0gICAgdmlydHVhbCB2b2lkICAgIFdyaXRlVG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncyk7Ci0gICAgdmlydHVhbCB2b2lkICAgIENyZWF0ZUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiogY2wpOwotfTsKLQotY2xhc3MgQmluZGVyVHlwZSA6IHB1YmxpYyBUeXBlCi17Ci1wdWJsaWM6Ci0gICAgICAgICAgICAgICAgICAgIEJpbmRlclR5cGUoKTsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLX07Ci0KLWNsYXNzIEJpbmRlclByb3h5VHlwZSA6IHB1YmxpYyBUeXBlCi17Ci1wdWJsaWM6Ci0gICAgICAgICAgICAgICAgICAgIEJpbmRlclByb3h5VHlwZSgpOwotCi0gICAgdmlydHVhbCB2b2lkICAgIFdyaXRlVG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncyk7Ci0gICAgdmlydHVhbCB2b2lkICAgIENyZWF0ZUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiogY2wpOwotfTsKLQotY2xhc3MgUGFyY2VsVHlwZSA6IHB1YmxpYyBUeXBlCi17Ci1wdWJsaWM6Ci0gICAgICAgICAgICAgICAgICAgIFBhcmNlbFR5cGUoKTsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLX07Ci0KLWNsYXNzIFBhcmNlbGFibGVJbnRlcmZhY2VUeXBlIDogcHVibGljIFR5cGUKLXsKLXB1YmxpYzoKLSAgICAgICAgICAgICAgICAgICAgUGFyY2VsYWJsZUludGVyZmFjZVR5cGUoKTsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLX07Ci0KLWNsYXNzIE1hcFR5cGUgOiBwdWJsaWMgVHlwZQotewotcHVibGljOgotICAgICAgICAgICAgICAgICAgICBNYXBUeXBlKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgICAgV3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgQ3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCk7Ci0gICAgdmlydHVhbCB2b2lkICAgIFJlYWRGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLX07Ci0KLWNsYXNzIExpc3RUeXBlIDogcHVibGljIFR5cGUKLXsKLXB1YmxpYzoKLSAgICAgICAgICAgICAgICAgICAgTGlzdFR5cGUoKTsKLQotICAgIHZpcnR1YWwgc3RyaW5nICBJbnN0YW50aWFibGVOYW1lKCkgY29uc3Q7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgICAgV3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgQ3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCk7Ci0gICAgdmlydHVhbCB2b2lkICAgIFJlYWRGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZVRvUnBjRGF0YShTdGF0ZW1lbnRCbG9jayogYWRkVG8sIEV4cHJlc3Npb24qIGssIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIGRhdGEsIGludCBmbGFncyk7Ci0gICAgdmlydHVhbCB2b2lkICAgIENyZWF0ZUZyb21ScGNEYXRhKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgRXhwcmVzc2lvbiogaywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogZGF0YSwgVmFyaWFibGUqKiBjbCk7Ci19OwotCi1jbGFzcyBVc2VyRGF0YVR5cGUgOiBwdWJsaWMgVHlwZQotewotcHVibGljOgotICAgICAgICAgICAgICAgICAgICBVc2VyRGF0YVR5cGUoY29uc3Qgc3RyaW5nJiBwYWNrYWdlLCBjb25zdCBzdHJpbmcmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBidWlsdEluLCBib29sIGNhbldyaXRlVG9QYXJjZWwsIGJvb2wgY2FuV3JpdGVUb1JwY0RhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBkZWNsRmlsZSA9ICIiLCBpbnQgZGVjbExpbmUgPSAtMSk7Ci0KLSAgICB2aXJ0dWFsIHN0cmluZyAgQ3JlYXRvck5hbWUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHN0cmluZyAgUnBjQ3JlYXRvck5hbWUoKSBjb25zdDsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgUmVhZEZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiogY2wpOwotCi0gICAgdmlydHVhbCBib29sICAgIENhbkJlQXJyYXkoKSBjb25zdDsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZUFycmF5VG9QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIGludCBmbGFncyk7Ci0gICAgdmlydHVhbCB2b2lkICAgIENyZWF0ZUFycmF5RnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCk7Ci0gICAgdmlydHVhbCB2b2lkICAgIFJlYWRBcnJheUZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiogY2wpOwotCi0gICAgdmlydHVhbCB2b2lkICAgIFdyaXRlVG9ScGNEYXRhKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgRXhwcmVzc2lvbiogaywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogZGF0YSwgaW50IGZsYWdzKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgQ3JlYXRlRnJvbVJwY0RhdGEoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBFeHByZXNzaW9uKiBrLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBkYXRhLCBWYXJpYWJsZSoqIGNsKTsKLX07Ci0KLWNsYXNzIEludGVyZmFjZVR5cGUgOiBwdWJsaWMgVHlwZQotewotcHVibGljOgotICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2VUeXBlKGNvbnN0IHN0cmluZyYgcGFja2FnZSwgY29uc3Qgc3RyaW5nJiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYnVpbHRJbiwgYm9vbCBvbmV3YXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBkZWNsRmlsZSwgaW50IGRlY2xMaW5lKTsKLQotICAgIGJvb2wgICAgICAgICAgICBPbmVXYXkoKSBjb25zdDsKLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQgICAgV3JpdGVUb1BhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgQ3JlYXRlRnJvbVBhcmNlbChTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLXByaXZhdGU6Ci0gICAgYm9vbCBtX29uZXdheTsKLX07Ci0KLQotY2xhc3MgR2VuZXJpY1R5cGUgOiBwdWJsaWMgVHlwZQotewotcHVibGljOgotICAgICAgICAgICAgICAgICAgICBHZW5lcmljVHlwZShjb25zdCBzdHJpbmcmIHBhY2thZ2UsIGNvbnN0IHN0cmluZyYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvcjxUeXBlKj4mIGFyZ3MpOwotCi0gICAgY29uc3QgdmVjdG9yPFR5cGUqPiYgR2VuZXJpY0FyZ3VtZW50VHlwZXMoKSBjb25zdDsKLSAgICBzdHJpbmcgICAgICAgICAgR2VuZXJpY0FyZ3VtZW50cygpIGNvbnN0OwotCi0gICAgdmlydHVhbCBzdHJpbmcgIEltcG9ydFR5cGUoKSBjb25zdDsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgUmVhZEZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiogY2wpOwotCi1wcml2YXRlOgotICAgIHN0cmluZyBtX2dlbmVyaWNBcmd1bWVudHM7Ci0gICAgc3RyaW5nIG1faW1wb3J0TmFtZTsKLSAgICB2ZWN0b3I8VHlwZSo+IG1fYXJnczsKLX07Ci0KLWNsYXNzIFJwY0RhdGFUeXBlIDogcHVibGljIFVzZXJEYXRhVHlwZQotewotcHVibGljOgotICAgICAgICAgICAgICAgICAgICBScGNEYXRhVHlwZSgpOwotCi0gICAgdmlydHVhbCB2b2lkICAgIFdyaXRlVG9ScGNEYXRhKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgRXhwcmVzc2lvbiogaywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogZGF0YSwgaW50IGZsYWdzKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgQ3JlYXRlRnJvbVJwY0RhdGEoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBFeHByZXNzaW9uKiBrLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBkYXRhLCBWYXJpYWJsZSoqIGNsKTsKLX07Ci0KLWNsYXNzIENsYXNzTG9hZGVyVHlwZSA6IHB1YmxpYyBUeXBlCi17Ci1wdWJsaWM6Ci0gICAgICAgICAgICAgICAgICAgIENsYXNzTG9hZGVyVHlwZSgpOwotfTsKLQotY2xhc3MgR2VuZXJpY0xpc3RUeXBlIDogcHVibGljIEdlbmVyaWNUeXBlCi17Ci1wdWJsaWM6Ci0gICAgICAgICAgICAgICAgICAgIEdlbmVyaWNMaXN0VHlwZShjb25zdCBzdHJpbmcmIHBhY2thZ2UsIGNvbnN0IHN0cmluZyYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvcjxUeXBlKj4mIGFyZ3MpOwotCi0gICAgdmlydHVhbCBzdHJpbmcgIENyZWF0b3JOYW1lKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBzdHJpbmcgIEluc3RhbnRpYWJsZU5hbWUoKSBjb25zdDsKLQotICAgIHZpcnR1YWwgdm9pZCAgICBXcml0ZVRvUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBpbnQgZmxhZ3MpOwotICAgIHZpcnR1YWwgdm9pZCAgICBDcmVhdGVGcm9tUGFyY2VsKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgUmVhZEZyb21QYXJjZWwoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBwYXJjZWwsIFZhcmlhYmxlKiogY2wpOwotCi0gICAgdmlydHVhbCB2b2lkICAgIFdyaXRlVG9ScGNEYXRhKFN0YXRlbWVudEJsb2NrKiBhZGRUbywgRXhwcmVzc2lvbiogaywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogZGF0YSwgaW50IGZsYWdzKTsKLSAgICB2aXJ0dWFsIHZvaWQgICAgQ3JlYXRlRnJvbVJwY0RhdGEoU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBFeHByZXNzaW9uKiBrLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBkYXRhLCBWYXJpYWJsZSoqIGNsKTsKLSAgICAKLXByaXZhdGU6Ci0gICAgc3RyaW5nIG1fY3JlYXRvcjsKLX07Ci0KLWNsYXNzIE5hbWVzcGFjZQotewotcHVibGljOgotICAgICAgICAgICAgTmFtZXNwYWNlKCk7Ci0gICAgICAgICAgICB+TmFtZXNwYWNlKCk7Ci0gICAgdm9pZCAgICBBZGQoVHlwZSogdHlwZSk7Ci0KLSAgICAvLyBhcmdzIGlzIHRoZSBudW1iZXIgb2YgdGVtcGxhdGUgdHlwZXMgKHdoYXQgaXMgdGhpcyBjYWxsZWQ/KQotICAgIHZvaWQgICAgQWRkR2VuZXJpY1R5cGUoY29uc3Qgc3RyaW5nJiBwYWNrYWdlLCBjb25zdCBzdHJpbmcmIG5hbWUsIGludCBhcmdzKTsKLQotICAgIC8vIGxvb2t1cCBhIHNwZWNpZmljIGNsYXNzIG5hbWUKLSAgICBUeXBlKiAgIEZpbmQoY29uc3Qgc3RyaW5nJiBuYW1lKSBjb25zdDsKLSAgICBUeXBlKiAgIEZpbmQoY29uc3QgY2hhciogcGFja2FnZSwgY29uc3QgY2hhciogbmFtZSkgY29uc3Q7Ci0gICAgCi0gICAgLy8gdHJ5IHRvIHNlYXJjaCBieSBlaXRoZXIgYSBmdWxsIG5hbWUgb3IgYSBwYXJ0aWFsIG5hbWUKLSAgICBUeXBlKiAgIFNlYXJjaChjb25zdCBzdHJpbmcmIG5hbWUpOwotCi0gICAgdm9pZCAgICBEdW1wKCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgc3RydWN0IEdlbmVyaWMgewotICAgICAgICBzdHJpbmcgcGFja2FnZTsKLSAgICAgICAgc3RyaW5nIG5hbWU7Ci0gICAgICAgIHN0cmluZyBxdWFsaWZpZWQ7Ci0gICAgICAgIGludCBhcmdzOwotICAgIH07Ci0KLSAgICBjb25zdCBHZW5lcmljKiBzZWFyY2hfZ2VuZXJpYyhjb25zdCBzdHJpbmcmIG5hbWUpIGNvbnN0OwotCi0gICAgdmVjdG9yPFR5cGUqPiBtX3R5cGVzOwotICAgIHZlY3RvcjxHZW5lcmljPiBtX2dlbmVyaWNzOwotfTsKLQotZXh0ZXJuIE5hbWVzcGFjZSBOQU1FUzsKLQotZXh0ZXJuIFR5cGUqIFZPSURfVFlQRTsKLWV4dGVybiBUeXBlKiBCT09MRUFOX1RZUEU7Ci1leHRlcm4gVHlwZSogQllURV9UWVBFOwotZXh0ZXJuIFR5cGUqIENIQVJfVFlQRTsKLWV4dGVybiBUeXBlKiBJTlRfVFlQRTsKLWV4dGVybiBUeXBlKiBMT05HX1RZUEU7Ci1leHRlcm4gVHlwZSogRkxPQVRfVFlQRTsKLWV4dGVybiBUeXBlKiBET1VCTEVfVFlQRTsKLWV4dGVybiBUeXBlKiBPQkpFQ1RfVFlQRTsKLWV4dGVybiBUeXBlKiBTVFJJTkdfVFlQRTsKLWV4dGVybiBUeXBlKiBDSEFSX1NFUVVFTkNFX1RZUEU7Ci1leHRlcm4gVHlwZSogVEVYVF9VVElMU19UWVBFOwotZXh0ZXJuIFR5cGUqIFJFTU9URV9FWENFUFRJT05fVFlQRTsKLWV4dGVybiBUeXBlKiBSVU5USU1FX0VYQ0VQVElPTl9UWVBFOwotZXh0ZXJuIFR5cGUqIElCSU5ERVJfVFlQRTsKLWV4dGVybiBUeXBlKiBJSU5URVJGQUNFX1RZUEU7Ci1leHRlcm4gVHlwZSogQklOREVSX05BVElWRV9UWVBFOwotZXh0ZXJuIFR5cGUqIEJJTkRFUl9QUk9YWV9UWVBFOwotZXh0ZXJuIFR5cGUqIFBBUkNFTF9UWVBFOwotZXh0ZXJuIFR5cGUqIFBBUkNFTEFCTEVfSU5URVJGQUNFX1RZUEU7Ci0KLWV4dGVybiBUeXBlKiBDT05URVhUX1RZUEU7Ci0KLWV4dGVybiBUeXBlKiBSUENfREFUQV9UWVBFOwotZXh0ZXJuIFR5cGUqIFJQQ19FUlJPUl9UWVBFOwotZXh0ZXJuIFR5cGUqIFJQQ19DT05URVhUX1RZUEU7Ci1leHRlcm4gVHlwZSogRVZFTlRfRkFLRV9UWVBFOwotCi1leHRlcm4gRXhwcmVzc2lvbiogTlVMTF9WQUxVRTsKLWV4dGVybiBFeHByZXNzaW9uKiBUSElTX1ZBTFVFOwotZXh0ZXJuIEV4cHJlc3Npb24qIFNVUEVSX1ZBTFVFOwotZXh0ZXJuIEV4cHJlc3Npb24qIFRSVUVfVkFMVUU7Ci1leHRlcm4gRXhwcmVzc2lvbiogRkFMU0VfVkFMVUU7Ci0KLXZvaWQgcmVnaXN0ZXJfYmFzZV90eXBlcygpOwotCi0jZW5kaWYgLy8gQUlETF9UWVBFX0gKZGlmZiAtLWdpdCBhL3Rvb2xzL2FpZGwvYWlkbC5jcHAgYi90b29scy9haWRsL2FpZGwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhODRkNzQzLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FpZGwvYWlkbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMTU2ICswLDAgQEAKLQotI2luY2x1ZGUgImFpZGxfbGFuZ3VhZ2UuaCIKLSNpbmNsdWRlICJvcHRpb25zLmgiCi0jaW5jbHVkZSAic2VhcmNoX3BhdGguaCIKLSNpbmNsdWRlICJUeXBlLmgiCi0jaW5jbHVkZSAiZ2VuZXJhdGVfamF2YS5oIgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8bWFwPgotCi0jaWZkZWYgSEFWRV9NU19DX1JVTlRJTUUKLSNpbmNsdWRlIDxpby5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jZW5kaWYKLQotI2lmbmRlZiBPX0JJTkFSWQotIyAgZGVmaW5lIE9fQklOQVJZICAwCi0jZW5kaWYKLQotLy8gVGhlIGZvbGxvd2luZyBhcmUgZ290dGVuIGFzIHRoZSBvZmZzZXQgZnJvbSB0aGUgYWxsb3dhYmxlIGlkJ3MgYmV0d2VlbgotLy8gYW5kcm9pZC5vcy5JQmluZGVyLkZJUlNUX0NBTExfVFJBTlNBQ1RJT049MSBhbmQKLS8vIGFuZHJvaWQub3MuSUJpbmRlci5MQVNUX0NBTExfVFJBTlNBQ1RJT049MTY3NzcyMTUKLSNkZWZpbmUgTUlOX1VTRVJfU0VUX01FVEhPRF9JRCAgICAgICAgICAgICAgICAwCi0jZGVmaW5lIE1BWF9VU0VSX1NFVF9NRVRIT0RfSUQgICAgICAgICAgICAgICAgMTY3NzcyMTQKLQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotc3RhdGljIHZvaWQKLXRlc3RfZG9jdW1lbnQoZG9jdW1lbnRfaXRlbV90eXBlKiBkKQotewotICAgIHdoaWxlIChkKSB7Ci0gICAgICAgIGlmIChkLT5pdGVtX3R5cGUgPT0gSU5URVJGQUNFX1RZUEVfQklOREVSKSB7Ci0gICAgICAgICAgICBpbnRlcmZhY2VfdHlwZSogYyA9IChpbnRlcmZhY2VfdHlwZSopZDsKLSAgICAgICAgICAgIHByaW50ZigiaW50ZXJmYWNlICVzICVzIHtcbiIsIGMtPnBhY2thZ2UsIGMtPm5hbWUuZGF0YSk7Ci0gICAgICAgICAgICBpbnRlcmZhY2VfaXRlbV90eXBlICpxID0gKGludGVyZmFjZV9pdGVtX3R5cGUqKWMtPmludGVyZmFjZV9pdGVtczsKLSAgICAgICAgICAgIHdoaWxlIChxKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHEtPml0ZW1fdHlwZSA9PSBNRVRIT0RfVFlQRSkgewotICAgICAgICAgICAgICAgICAgICBtZXRob2RfdHlwZSAqbSA9IChtZXRob2RfdHlwZSopcTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIgICVzICVzKCIsIG0tPnR5cGUudHlwZS5kYXRhLCBtLT5uYW1lLmRhdGEpOwotICAgICAgICAgICAgICAgICAgICBhcmdfdHlwZSAqcCA9IG0tPmFyZ3M7Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxlIChwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiVzICVzIixwLT50eXBlLnR5cGUuZGF0YSxwLT5uYW1lLmRhdGEpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHAtPm5leHQpIHByaW50ZigiLCAiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHA9cC0+bmV4dDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBwcmludGYoIikiKTsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCI7XG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcT1xLT5uZXh0OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJpbnRmKCJ9XG4iKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChkLT5pdGVtX3R5cGUgPT0gVVNFUl9EQVRBX1RZUEUpIHsKLSAgICAgICAgICAgIHVzZXJfZGF0YV90eXBlKiBiID0gKHVzZXJfZGF0YV90eXBlKilkOwotICAgICAgICAgICAgaWYgKChiLT5mbGF0dGVuaW5nX21ldGhvZHMgJiBQQVJDRUxBQkxFX0RBVEEpICE9IDApIHsKLSAgICAgICAgICAgICAgICBwcmludGYoInBhcmNlbGFibGUgJXMgJXM7XG4iLCBiLT5wYWNrYWdlLCBiLT5uYW1lLmRhdGEpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKChiLT5mbGF0dGVuaW5nX21ldGhvZHMgJiBSUENfREFUQSkgIT0gMCkgewotICAgICAgICAgICAgICAgIHByaW50ZigiZmxhdHRlbmFibGUgJXMgJXM7XG4iLCBiLT5wYWNrYWdlLCBiLT5uYW1lLmRhdGEpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgcHJpbnRmKCJVTktOT1dOIGQ9MHglMDhseCBkLT5pdGVtX3R5cGU9JWRcbiIsIChsb25nKWQsIGQtPml0ZW1fdHlwZSk7Ci0gICAgICAgIH0KLSAgICAgICAgZCA9IGQtPm5leHQ7Ci0gICAgfQotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1pbnQKLWNvbnZlcnRfZGlyZWN0aW9uKGNvbnN0IGNoYXIqIGRpcmVjdGlvbikKLXsKLSAgICBpZiAoZGlyZWN0aW9uID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIElOX1BBUkFNRVRFUjsKLSAgICB9Ci0gICAgaWYgKDAgPT0gc3RyY21wKGRpcmVjdGlvbiwgImluIikpIHsKLSAgICAgICAgcmV0dXJuIElOX1BBUkFNRVRFUjsKLSAgICB9Ci0gICAgaWYgKDAgPT0gc3RyY21wKGRpcmVjdGlvbiwgIm91dCIpKSB7Ci0gICAgICAgIHJldHVybiBPVVRfUEFSQU1FVEVSOwotICAgIH0KLSAgICByZXR1cm4gSU5PVVRfUEFSQU1FVEVSOwotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1zdHJ1Y3QgaW1wb3J0X2luZm8gewotICAgIGNvbnN0IGNoYXIqIGZyb207Ci0gICAgY29uc3QgY2hhciogZmlsZW5hbWU7Ci0gICAgYnVmZmVyX3R5cGUgc3RhdGVtZW50OwotICAgIGNvbnN0IGNoYXIqIG5lZWRlZENsYXNzOwotICAgIGRvY3VtZW50X2l0ZW1fdHlwZSogZG9jOwotICAgIHN0cnVjdCBpbXBvcnRfaW5mbyogbmV4dDsKLX07Ci0KLWRvY3VtZW50X2l0ZW1fdHlwZSogZ19kb2N1bWVudCA9IE5VTEw7Ci1pbXBvcnRfaW5mbyogZ19pbXBvcnRzID0gTlVMTDsKLQotc3RhdGljIHZvaWQKLW1haW5fZG9jdW1lbnRfcGFyc2VkKGRvY3VtZW50X2l0ZW1fdHlwZSogZCkKLXsKLSAgICBnX2RvY3VtZW50ID0gZDsKLX0KLQotc3RhdGljIHZvaWQKLW1haW5faW1wb3J0X3BhcnNlZChidWZmZXJfdHlwZSogc3RhdGVtZW50KQotewotICAgIGltcG9ydF9pbmZvKiBpbXBvcnQgPSAoaW1wb3J0X2luZm8qKW1hbGxvYyhzaXplb2YoaW1wb3J0X2luZm8pKTsKLSAgICBtZW1zZXQoaW1wb3J0LCAwLCBzaXplb2YoaW1wb3J0X2luZm8pKTsKLSAgICBpbXBvcnQtPmZyb20gPSBzdHJkdXAoZ19jdXJyZW50RmlsZW5hbWUpOwotICAgIGltcG9ydC0+c3RhdGVtZW50LmxpbmVubyA9IHN0YXRlbWVudC0+bGluZW5vOwotICAgIGltcG9ydC0+c3RhdGVtZW50LmRhdGEgPSBzdHJkdXAoc3RhdGVtZW50LT5kYXRhKTsKLSAgICBpbXBvcnQtPnN0YXRlbWVudC5leHRyYSA9IE5VTEw7Ci0gICAgaW1wb3J0LT5uZXh0ID0gZ19pbXBvcnRzOwotICAgIGltcG9ydC0+bmVlZGVkQ2xhc3MgPSBwYXJzZV9pbXBvcnRfc3RhdGVtZW50KHN0YXRlbWVudC0+ZGF0YSk7Ci0gICAgZ19pbXBvcnRzID0gaW1wb3J0OwotfQotCi1zdGF0aWMgUGFyc2VyQ2FsbGJhY2tzIGdfbWFpbkNhbGxiYWNrcyA9IHsKLSAgICAmbWFpbl9kb2N1bWVudF9wYXJzZWQsCi0gICAgJm1haW5faW1wb3J0X3BhcnNlZAotfTsKLQotY2hhcioKLXBhcnNlX2ltcG9ydF9zdGF0ZW1lbnQoY29uc3QgY2hhciogdGV4dCkKLXsKLSAgICBjb25zdCBjaGFyKiBlbmQ7Ci0gICAgaW50IGxlbjsKLQotICAgIHdoaWxlIChpc3NwYWNlKCp0ZXh0KSkgewotICAgICAgICB0ZXh0Kys7Ci0gICAgfQotICAgIHdoaWxlICghaXNzcGFjZSgqdGV4dCkpIHsKLSAgICAgICAgdGV4dCsrOwotICAgIH0KLSAgICB3aGlsZSAoaXNzcGFjZSgqdGV4dCkpIHsKLSAgICAgICAgdGV4dCsrOwotICAgIH0KLSAgICBlbmQgPSB0ZXh0OwotICAgIHdoaWxlICghaXNzcGFjZSgqZW5kKSAmJiAqZW5kICE9ICc7JykgewotICAgICAgICBlbmQrKzsKLSAgICB9Ci0gICAgbGVuID0gZW5kLXRleHQ7Ci0KLSAgICBjaGFyKiBydiA9IChjaGFyKiltYWxsb2MobGVuKzEpOwotICAgIG1lbWNweShydiwgdGV4dCwgbGVuKTsKLSAgICBydltsZW5dID0gJ1wwJzsKLQotICAgIHJldHVybiBydjsKLX0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotc3RhdGljIHZvaWQKLWltcG9ydF9pbXBvcnRfcGFyc2VkKGJ1ZmZlcl90eXBlKiBzdGF0ZW1lbnQpCi17Ci19Ci0KLXN0YXRpYyBQYXJzZXJDYWxsYmFja3MgZ19pbXBvcnRDYWxsYmFja3MgPSB7Ci0gICAgJm1haW5fZG9jdW1lbnRfcGFyc2VkLAotICAgICZpbXBvcnRfaW1wb3J0X3BhcnNlZAotfTsKLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotc3RhdGljIGludAotY2hlY2tfZmlsZW5hbWUoY29uc3QgY2hhciogZmlsZW5hbWUsIGNvbnN0IGNoYXIqIHBhY2thZ2UsIGJ1ZmZlcl90eXBlKiBuYW1lKQotewotICAgIGNvbnN0IGNoYXIqIHA7Ci0gICAgc3RyaW5nIGV4cGVjdGVkOwotICAgIHN0cmluZyBmbjsKLSAgICBzaXplX3QgbGVuOwotICAgIGNoYXIgY3dkW01BWFBBVEhMRU5dOwotICAgIGJvb2wgdmFsaWQgPSBmYWxzZTsKLQotI2lmZGVmIEhBVkVfV0lORE9XU19QQVRIUwotICAgIGlmIChpc2FscGhhKGZpbGVuYW1lWzBdKSAmJiBmaWxlbmFtZVsxXSA9PSAnOicKLSAgICAgICAgJiYgZmlsZW5hbWVbMl0gPT0gT1NfUEFUSF9TRVBBUkFUT1IpIHsKLSNlbHNlCi0gICAgaWYgKGZpbGVuYW1lWzBdID09IE9TX1BBVEhfU0VQQVJBVE9SKSB7Ci0jZW5kaWYKLSAgICAgICAgZm4gPSBmaWxlbmFtZTsKLSAgICB9IGVsc2UgewotICAgICAgICBmbiA9IGdldGN3ZChjd2QsIHNpemVvZihjd2QpKTsKLSAgICAgICAgbGVuID0gZm4ubGVuZ3RoKCk7Ci0gICAgICAgIGlmIChmbltsZW4tMV0gIT0gT1NfUEFUSF9TRVBBUkFUT1IpIHsKLSAgICAgICAgICAgIGZuICs9IE9TX1BBVEhfU0VQQVJBVE9SOwotICAgICAgICB9Ci0gICAgICAgIGZuICs9IGZpbGVuYW1lOwotICAgIH0KLQotICAgIGlmIChwYWNrYWdlKSB7Ci0gICAgICAgIGV4cGVjdGVkID0gcGFja2FnZTsKLSAgICAgICAgZXhwZWN0ZWQgKz0gJy4nOwotICAgIH0KLQotICAgIGxlbiA9IGV4cGVjdGVkLmxlbmd0aCgpOwotICAgIGZvciAoc2l6ZV90IGk9MDsgaTxsZW47IGkrKykgewotICAgICAgICBpZiAoZXhwZWN0ZWRbaV0gPT0gJy4nKSB7Ci0gICAgICAgICAgICBleHBlY3RlZFtpXSA9IE9TX1BBVEhfU0VQQVJBVE9SOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcCA9IHN0cmNocihuYW1lLT5kYXRhLCAnLicpOwotICAgIGxlbiA9IHAgPyBwLW5hbWUtPmRhdGEgOiBzdHJsZW4obmFtZS0+ZGF0YSk7Ci0gICAgZXhwZWN0ZWQuYXBwZW5kKG5hbWUtPmRhdGEsIGxlbik7Ci0KLSAgICBleHBlY3RlZCArPSAiLmFpZGwiOwotCi0gICAgbGVuID0gZm4ubGVuZ3RoKCk7Ci0gICAgdmFsaWQgPSAobGVuID49IGV4cGVjdGVkLmxlbmd0aCgpKTsKLQotICAgIGlmICh2YWxpZCkgewotICAgICAgICBwID0gZm4uY19zdHIoKSArIChsZW4gLSBleHBlY3RlZC5sZW5ndGgoKSk7Ci0KLSNpZmRlZiBIQVZFX1dJTkRPV1NfUEFUSFMKLSAgICAgICAgaWYgKE9TX1BBVEhfU0VQQVJBVE9SICE9ICcvJykgewotICAgICAgICAgICAgLy8gSW5wdXQgZmlsZW5hbWUgdW5kZXIgY3lnd2luIG1vc3QgbGlrZWx5IGhhcyAvIHNlcGFyYXRvcnMKLSAgICAgICAgICAgIC8vIHdoZXJlYXMgdGhlIGV4cGVjdGVkIHN0cmluZyB1c2VzIFxcIHNlcGFyYXRvcnMuIEFkanVzdAotICAgICAgICAgICAgLy8gdGhlbSBhY2NvcmRpbmdseS4KLSAgICAgICAgICBmb3IgKGNoYXIgKmMgPSBjb25zdF9jYXN0PGNoYXIgKj4ocCk7ICpjOyArK2MpIHsKLSAgICAgICAgICAgICAgICBpZiAoKmMgPT0gJy8nKSAqYyA9IE9TX1BBVEhfU0VQQVJBVE9SOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0jZW5kaWYKLQotI2lmZGVmIE9TX0NBU0VfU0VOU0lUSVZFCi0gICAgICAgIHZhbGlkID0gKGV4cGVjdGVkID09IHApOwotI2Vsc2UKLSAgICAgICAgdmFsaWQgPSAhc3RyY2FzZWNtcChleHBlY3RlZC5jX3N0cigpLCBwKTsKLSNlbmRpZgotICAgIH0KLQotICAgIGlmICghdmFsaWQpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZCBpbnRlcmZhY2UgJXMgc2hvdWxkIGJlIGRlY2xhcmVkIGluIGEgZmlsZSIKLSAgICAgICAgICAgICAgICAiIGNhbGxlZCAlcy5cbiIsCi0gICAgICAgICAgICAgICAgZmlsZW5hbWUsIG5hbWUtPmxpbmVubywgbmFtZS0+ZGF0YSwgZXhwZWN0ZWQuY19zdHIoKSk7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgaW50Ci1jaGVja19maWxlbmFtZXMoY29uc3QgY2hhciogZmlsZW5hbWUsIGRvY3VtZW50X2l0ZW1fdHlwZSogaXRlbXMpCi17Ci0gICAgaW50IGVyciA9IDA7Ci0gICAgd2hpbGUgKGl0ZW1zKSB7Ci0gICAgICAgIGlmIChpdGVtcy0+aXRlbV90eXBlID09IFVTRVJfREFUQV9UWVBFKSB7Ci0gICAgICAgICAgICB1c2VyX2RhdGFfdHlwZSogcCA9ICh1c2VyX2RhdGFfdHlwZSopaXRlbXM7Ci0gICAgICAgICAgICBlcnIgfD0gY2hlY2tfZmlsZW5hbWUoZmlsZW5hbWUsIHAtPnBhY2thZ2UsICZwLT5uYW1lKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChpdGVtcy0+aXRlbV90eXBlID09IElOVEVSRkFDRV9UWVBFX0JJTkRFUgotICAgICAgICAgICAgICAgIHx8IGl0ZW1zLT5pdGVtX3R5cGUgPT0gSU5URVJGQUNFX1RZUEVfUlBDKSB7Ci0gICAgICAgICAgICBpbnRlcmZhY2VfdHlwZSogYyA9IChpbnRlcmZhY2VfdHlwZSopaXRlbXM7Ci0gICAgICAgICAgICBlcnIgfD0gY2hlY2tfZmlsZW5hbWUoZmlsZW5hbWUsIGMtPnBhY2thZ2UsICZjLT5uYW1lKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiYWlkbDogaW50ZXJuYWwgZXJyb3IgdW5rb3duIGRvY3VtZW50IHR5cGUgJWQuXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMtPml0ZW1fdHlwZSk7Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotICAgICAgICBpdGVtcyA9IGl0ZW1zLT5uZXh0OwotICAgIH0KLSAgICByZXR1cm4gZXJyOwotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1zdGF0aWMgY29uc3QgY2hhcioKLWtpbmRfdG9fc3RyaW5nKGludCBraW5kKQotewotICAgIHN3aXRjaCAoa2luZCkKLSAgICB7Ci0gICAgICAgIGNhc2UgVHlwZTo6SU5URVJGQUNFOgotICAgICAgICAgICAgcmV0dXJuICJhbiBpbnRlcmZhY2UiOwotICAgICAgICBjYXNlIFR5cGU6OlVTRVJEQVRBOgotICAgICAgICAgICAgcmV0dXJuICJhIHVzZXIgZGF0YSI7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gIkVSUk9SIjsKLSAgICB9Ci19Ci0KLXN0YXRpYyBjaGFyKgotcmZpbmQoY2hhciogc3RyLCBjaGFyIGMpCi17Ci0gICAgY2hhciogcCA9IHN0ciArIHN0cmxlbihzdHIpIC0gMTsKLSAgICB3aGlsZSAocCA+PSBzdHIpIHsKLSAgICAgICAgaWYgKCpwID09IGMpIHsKLSAgICAgICAgICAgIHJldHVybiBwOwotICAgICAgICB9Ci0gICAgICAgIHAtLTsKLSAgICB9Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLXN0YXRpYyBpbnQKLWdhdGhlcl90eXBlcyhjb25zdCBjaGFyKiBmaWxlbmFtZSwgZG9jdW1lbnRfaXRlbV90eXBlKiBpdGVtcykKLXsKLSAgICBpbnQgZXJyID0gMDsKLSAgICB3aGlsZSAoaXRlbXMpIHsKLSAgICAgICAgVHlwZSogdHlwZTsKLSAgICAgICAgaWYgKGl0ZW1zLT5pdGVtX3R5cGUgPT0gVVNFUl9EQVRBX1RZUEUpIHsKLSAgICAgICAgICAgIHVzZXJfZGF0YV90eXBlKiBwID0gKHVzZXJfZGF0YV90eXBlKilpdGVtczsKLSAgICAgICAgICAgIHR5cGUgPSBuZXcgVXNlckRhdGFUeXBlKHAtPnBhY2thZ2UgPyBwLT5wYWNrYWdlIDogIiIsIHAtPm5hbWUuZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgZmFsc2UsICgocC0+ZmxhdHRlbmluZ19tZXRob2RzICYgUEFSQ0VMQUJMRV9EQVRBKSAhPSAwKSwKLSAgICAgICAgICAgICAgICAgICAgKChwLT5mbGF0dGVuaW5nX21ldGhvZHMgJiBSUENfREFUQSkgIT0gMCksIGZpbGVuYW1lLCBwLT5uYW1lLmxpbmVubyk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoaXRlbXMtPml0ZW1fdHlwZSA9PSBJTlRFUkZBQ0VfVFlQRV9CSU5ERVIKLSAgICAgICAgICAgICAgICB8fCBpdGVtcy0+aXRlbV90eXBlID09IElOVEVSRkFDRV9UWVBFX1JQQykgewotICAgICAgICAgICAgaW50ZXJmYWNlX3R5cGUqIGMgPSAoaW50ZXJmYWNlX3R5cGUqKWl0ZW1zOwotICAgICAgICAgICAgdHlwZSA9IG5ldyBJbnRlcmZhY2VUeXBlKGMtPnBhY2thZ2UgPyBjLT5wYWNrYWdlIDogIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYy0+bmFtZS5kYXRhLCBmYWxzZSwgYy0+b25ld2F5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLCBjLT5uYW1lLmxpbmVubyk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6IGludGVybmFsIGVycm9yICVzOiVkXG4iLCBfX0ZJTEVfXywgX19MSU5FX18pOwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KLQotICAgICAgICBUeXBlKiBvbGQgPSBOQU1FUy5GaW5kKHR5cGUtPlF1YWxpZmllZE5hbWUoKSk7Ci0gICAgICAgIGlmIChvbGQgPT0gTlVMTCkgewotICAgICAgICAgICAgTkFNRVMuQWRkKHR5cGUpOwotCi0gICAgICAgICAgICBpZiAoaXRlbXMtPml0ZW1fdHlwZSA9PSBJTlRFUkZBQ0VfVFlQRV9CSU5ERVIpIHsKLSAgICAgICAgICAgICAgICAvLyBmb3IgaW50ZXJmYWNlcywgYWxzbyBhZGQgdGhlIHN0dWIgYW5kIHByb3h5IHR5cGVzLCB3ZSBkb24ndAotICAgICAgICAgICAgICAgIC8vIGJvdGhlciBjaGVja2luZyB0aGVzZSBmb3IgZHVwbGljYXRlcywgYmVjYXVzZSB0aGUgcGFyc2VyCi0gICAgICAgICAgICAgICAgLy8gd29uJ3QgbGV0IHVzIGRvIGl0LgotICAgICAgICAgICAgICAgIGludGVyZmFjZV90eXBlKiBjID0gKGludGVyZmFjZV90eXBlKilpdGVtczsKLQotICAgICAgICAgICAgICAgIHN0cmluZyBuYW1lID0gYy0+bmFtZS5kYXRhOwotICAgICAgICAgICAgICAgIG5hbWUgKz0gIi5TdHViIjsKLSAgICAgICAgICAgICAgICBUeXBlKiBzdHViID0gbmV3IFR5cGUoYy0+cGFja2FnZSA/IGMtPnBhY2thZ2UgOiAiIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLCBUeXBlOjpHRU5FUkFURUQsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIGMtPm5hbWUubGluZW5vKTsKLSAgICAgICAgICAgICAgICBOQU1FUy5BZGQoc3R1Yik7Ci0KLSAgICAgICAgICAgICAgICBuYW1lID0gYy0+bmFtZS5kYXRhOwotICAgICAgICAgICAgICAgIG5hbWUgKz0gIi5TdHViLlByb3h5IjsKLSAgICAgICAgICAgICAgICBUeXBlKiBwcm94eSA9IG5ldyBUeXBlKGMtPnBhY2thZ2UgPyBjLT5wYWNrYWdlIDogIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgVHlwZTo6R0VORVJBVEVELCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLCBjLT5uYW1lLmxpbmVubyk7Ci0gICAgICAgICAgICAgICAgTkFNRVMuQWRkKHByb3h5KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW1zLT5pdGVtX3R5cGUgPT0gSU5URVJGQUNFX1RZUEVfUlBDKSB7Ci0gICAgICAgICAgICAgICAgLy8gZm9yIGludGVyZmFjZXMsIGFsc28gYWRkIHRoZSBzZXJ2aWNlIGJhc2UgdHlwZSwgd2UgZG9uJ3QKLSAgICAgICAgICAgICAgICAvLyBib3RoZXIgY2hlY2tpbmcgdGhlc2UgZm9yIGR1cGxpY2F0ZXMsIGJlY2F1c2UgdGhlIHBhcnNlcgotICAgICAgICAgICAgICAgIC8vIHdvbid0IGxldCB1cyBkbyBpdC4KLSAgICAgICAgICAgICAgICBpbnRlcmZhY2VfdHlwZSogYyA9IChpbnRlcmZhY2VfdHlwZSopaXRlbXM7Ci0KLSAgICAgICAgICAgICAgICBzdHJpbmcgbmFtZSA9IGMtPm5hbWUuZGF0YTsKLSAgICAgICAgICAgICAgICBuYW1lICs9ICIuU2VydmljZUJhc2UiOwotICAgICAgICAgICAgICAgIFR5cGUqIGJhc2UgPSBuZXcgVHlwZShjLT5wYWNrYWdlID8gYy0+cGFja2FnZSA6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsIFR5cGU6OkdFTkVSQVRFRCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwgYy0+bmFtZS5saW5lbm8pOwotICAgICAgICAgICAgICAgIE5BTUVTLkFkZChiYXNlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChvbGQtPktpbmQoKSA9PSBUeXBlOjpCVUlMVF9JTikgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQgYXR0ZW1wdCB0byByZWRlZmluZSBidWlsdCBpbiBjbGFzcyAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwgdHlwZS0+RGVjbExpbmUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLT5RdWFsaWZpZWROYW1lKCkuY19zdHIoKSk7Ci0gICAgICAgICAgICAgICAgZXJyID0gMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUtPktpbmQoKSAhPSBvbGQtPktpbmQoKSkgewotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG9sZEtpbmQgPSBraW5kX3RvX3N0cmluZyhvbGQtPktpbmQoKSk7Ci0gICAgICAgICAgICAgICAgY29uc3QgY2hhciogbmV3S2luZCA9IGtpbmRfdG9fc3RyaW5nKHR5cGUtPktpbmQoKSk7Ci0KLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkIGF0dGVtcHQgdG8gcmVkZWZpbmUgJXMgYXMgJXMsXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLCB0eXBlLT5EZWNsTGluZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUtPlF1YWxpZmllZE5hbWUoKS5jX3N0cigpLCBuZXdLaW5kKTsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkICAgIHByZXZpb3VzbHkgZGVmaW5lZCBoZXJlIGFzICVzLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGQtPkRlY2xGaWxlKCkuY19zdHIoKSwgb2xkLT5EZWNsTGluZSgpLCBvbGRLaW5kKTsKLSAgICAgICAgICAgICAgICBlcnIgPSAxOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaXRlbXMgPSBpdGVtcy0+bmV4dDsKLSAgICB9Ci0gICAgcmV0dXJuIGVycjsKLX0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotc3RhdGljIGJvb2wKLW1hdGNoZXNfa2V5d29yZChjb25zdCBjaGFyKiBzdHIpCi17Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIEtFWVdPUkRTW10gPSB7ICJhYnN0cmFjdCIsICJhc3NlcnQiLCAiYm9vbGVhbiIsICJicmVhayIsCi0gICAgICAgICJieXRlIiwgImNhc2UiLCAiY2F0Y2giLCAiY2hhciIsICJjbGFzcyIsICJjb25zdCIsICJjb250aW51ZSIsCi0gICAgICAgICJkZWZhdWx0IiwgImRvIiwgImRvdWJsZSIsICJlbHNlIiwgImVudW0iLCAiZXh0ZW5kcyIsICJmaW5hbCIsCi0gICAgICAgICJmaW5hbGx5IiwgImZsb2F0IiwgImZvciIsICJnb3RvIiwgImlmIiwgImltcGxlbWVudHMiLCAiaW1wb3J0IiwKLSAgICAgICAgImluc3RhbmNlb2YiLCAiaW50IiwgImludGVyZmFjZSIsICJsb25nIiwgIm5hdGl2ZSIsICJuZXciLCAicGFja2FnZSIsCi0gICAgICAgICJwcml2YXRlIiwgInByb3RlY3RlZCIsICJwdWJsaWMiLCAicmV0dXJuIiwgInNob3J0IiwgInN0YXRpYyIsCi0gICAgICAgICJzdHJpY3RmcCIsICJzdXBlciIsICJzd2l0Y2giLCAic3luY2hyb25pemVkIiwgInRoaXMiLCAidGhyb3ciLAotICAgICAgICAidGhyb3dzIiwgInRyYW5zaWVudCIsICJ0cnkiLCAidm9pZCIsICJ2b2xhdGlsZSIsICJ3aGlsZSIsCi0gICAgICAgICJ0cnVlIiwgImZhbHNlIiwgIm51bGwiLAotICAgICAgICBOVUxMCi0gICAgfTsKLSAgICBjb25zdCBjaGFyKiogayA9IEtFWVdPUkRTOwotICAgIHdoaWxlICgqaykgewotICAgICAgICBpZiAoMCA9PSBzdHJjbXAoc3RyLCAqaykpIHsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGsrKzsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgaW50Ci1jaGVja19tZXRob2QoY29uc3QgY2hhciogZmlsZW5hbWUsIGludCBraW5kLCBtZXRob2RfdHlwZSogbSkKLXsKLSAgICBpbnQgZXJyID0gMDsKLQotICAgIC8vIHJldHVybiB0eXBlCi0gICAgVHlwZSogcmV0dXJuVHlwZSA9IE5BTUVTLlNlYXJjaChtLT50eXBlLnR5cGUuZGF0YSk7Ci0gICAgaWYgKHJldHVyblR5cGUgPT0gTlVMTCkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkIHVua25vd24gcmV0dXJuIHR5cGUgJXNcbiIsIGZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICBtLT50eXBlLnR5cGUubGluZW5vLCBtLT50eXBlLnR5cGUuZGF0YSk7Ci0gICAgICAgIGVyciA9IDE7Ci0gICAgICAgIHJldHVybiBlcnI7Ci0gICAgfQotCi0gICAgaWYgKHJldHVyblR5cGUgPT0gRVZFTlRfRkFLRV9UWVBFKSB7Ci0gICAgICAgIGlmIChraW5kICE9IElOVEVSRkFDRV9UWVBFX1JQQykgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZCBldmVudCBtZXRob2RzIG9ubHkgc3VwcG9ydGVkIGZvciBycGMgaW50ZXJmYWNlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIG0tPnR5cGUudHlwZS5saW5lbm8pOwotICAgICAgICAgICAgZXJyID0gMTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghKGtpbmQgPT0gSU5URVJGQUNFX1RZUEVfQklOREVSID8gcmV0dXJuVHlwZS0+Q2FuV3JpdGVUb1BhcmNlbCgpCi0gICAgICAgICAgICAgICAgICAgIDogcmV0dXJuVHlwZS0+Q2FuV3JpdGVUb1JwY0RhdGEoKSkpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQgcmV0dXJuIHR5cGUgJXMgY2FuJ3QgYmUgbWFyc2hhbGxlZC5cbiIsIGZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgbS0+dHlwZS50eXBlLmxpbmVubywgbS0+dHlwZS50eXBlLmRhdGEpOwotICAgICAgICAgICAgZXJyID0gMTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChtLT50eXBlLmRpbWVuc2lvbiA+IDAgJiYgIXJldHVyblR5cGUtPkNhbkJlQXJyYXkoKSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkIHJldHVybiB0eXBlICVzJXMgY2FuJ3QgYmUgYW4gYXJyYXkuXG4iLCBmaWxlbmFtZSwKLSAgICAgICAgICAgICAgICBtLT50eXBlLmFycmF5X3Rva2VuLmxpbmVubywgbS0+dHlwZS50eXBlLmRhdGEsCi0gICAgICAgICAgICAgICAgbS0+dHlwZS5hcnJheV90b2tlbi5kYXRhKTsKLSAgICAgICAgZXJyID0gMTsKLSAgICB9Ci0KLSAgICBpZiAobS0+dHlwZS5kaW1lbnNpb24gPiAxKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQgcmV0dXJuIHR5cGUgJXMlcyBvbmx5IG9uZSIKLSAgICAgICAgICAgICAgICAiIGRpbWVuc2lvbmFsIGFycmF5cyBhcmUgc3VwcG9ydGVkXG4iLCBmaWxlbmFtZSwKLSAgICAgICAgICAgICAgICBtLT50eXBlLmFycmF5X3Rva2VuLmxpbmVubywgbS0+dHlwZS50eXBlLmRhdGEsCi0gICAgICAgICAgICAgICAgbS0+dHlwZS5hcnJheV90b2tlbi5kYXRhKTsKLSAgICAgICAgZXJyID0gMTsKLSAgICB9Ci0KLSAgICBpbnQgaW5kZXggPSAxOwotCi0gICAgYXJnX3R5cGUqIGFyZyA9IG0tPmFyZ3M7Ci0gICAgd2hpbGUgKGFyZykgewotICAgICAgICBUeXBlKiB0ID0gTkFNRVMuU2VhcmNoKGFyZy0+dHlwZS50eXBlLmRhdGEpOwotCi0gICAgICAgIC8vIGNoZWNrIHRoZSBhcmcgdHlwZQotICAgICAgICBpZiAodCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkIHBhcmFtZXRlciAlcyAoJWQpIHVua25vd24gdHlwZSAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIG0tPnR5cGUudHlwZS5saW5lbm8sIGFyZy0+bmFtZS5kYXRhLCBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgYXJnLT50eXBlLnR5cGUuZGF0YSk7Ci0gICAgICAgICAgICBlcnIgPSAxOwotICAgICAgICAgICAgZ290byBuZXh0OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHQgPT0gRVZFTlRfRkFLRV9UWVBFKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkIHBhcmFtZXRlciAlcyAoJWQpIGV2ZW50IGNhbiBub3QgYmUgdXNlZCBhcyBhIHBhcmFtZXRlciAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIG0tPnR5cGUudHlwZS5saW5lbm8sIGFyZy0+bmFtZS5kYXRhLCBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgYXJnLT50eXBlLnR5cGUuZGF0YSk7Ci0gICAgICAgICAgICBlcnIgPSAxOwotICAgICAgICAgICAgZ290byBuZXh0OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCEoa2luZCA9PSBJTlRFUkZBQ0VfVFlQRV9CSU5ERVIgPyB0LT5DYW5Xcml0ZVRvUGFyY2VsKCkgOiB0LT5DYW5Xcml0ZVRvUnBjRGF0YSgpKSkgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZCBwYXJhbWV0ZXIgJWQ6ICclcyAlcycgY2FuJ3QgYmUgbWFyc2hhbGxlZC5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwgbS0+dHlwZS50eXBlLmxpbmVubywgaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICBhcmctPnR5cGUudHlwZS5kYXRhLCBhcmctPm5hbWUuZGF0YSk7Ci0gICAgICAgICAgICBlcnIgPSAxOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHJldHVyblR5cGUgPT0gRVZFTlRfRkFLRV9UWVBFCi0gICAgICAgICAgICAgICAgJiYgY29udmVydF9kaXJlY3Rpb24oYXJnLT5kaXJlY3Rpb24uZGF0YSkgIT0gSU5fUEFSQU1FVEVSKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkIHBhcmFtZXRlciAlZDogJyVzICVzJyBBbGwgcGFyZW1ldGVycyBvbiBldmVudHMgbXVzdCBiZSAnaW4nLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIG0tPnR5cGUudHlwZS5saW5lbm8sIGluZGV4LAotICAgICAgICAgICAgICAgICAgICBhcmctPnR5cGUudHlwZS5kYXRhLCBhcmctPm5hbWUuZGF0YSk7Ci0gICAgICAgICAgICBlcnIgPSAxOwotICAgICAgICAgICAgZ290byBuZXh0OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGFyZy0+ZGlyZWN0aW9uLmRhdGEgPT0gTlVMTAotICAgICAgICAgICAgICAgICYmIChhcmctPnR5cGUuZGltZW5zaW9uICE9IDAgfHwgdC0+Q2FuQmVPdXRQYXJhbWV0ZXIoKSkpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQgcGFyYW1ldGVyICVkOiAnJXMgJXMnIGNhbiBiZSBhbiBvdXQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgcGFyYW1ldGVyLCBzbyB5b3UgbXVzdCBkZWNsYXJlIGl0IGFzIGluLCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBvdXQgb3IgaW5vdXQuXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIG0tPnR5cGUudHlwZS5saW5lbm8sIGluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgYXJnLT50eXBlLnR5cGUuZGF0YSwgYXJnLT5uYW1lLmRhdGEpOwotICAgICAgICAgICAgZXJyID0gMTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChjb252ZXJ0X2RpcmVjdGlvbihhcmctPmRpcmVjdGlvbi5kYXRhKSAhPSBJTl9QQVJBTUVURVIKLSAgICAgICAgICAgICAgICAmJiAhdC0+Q2FuQmVPdXRQYXJhbWV0ZXIoKQotICAgICAgICAgICAgICAgICYmIGFyZy0+dHlwZS5kaW1lbnNpb24gPT0gMCkgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZCBwYXJhbWV0ZXIgJWQ6ICclcyAlcyAlcycgY2FuIG9ubHkgYmUgYW4gaW4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBwYXJhbWV0ZXIuXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIG0tPnR5cGUudHlwZS5saW5lbm8sIGluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgYXJnLT5kaXJlY3Rpb24uZGF0YSwgYXJnLT50eXBlLnR5cGUuZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGFyZy0+bmFtZS5kYXRhKTsKLSAgICAgICAgICAgIGVyciA9IDE7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoYXJnLT50eXBlLmRpbWVuc2lvbiA+IDAgJiYgIXQtPkNhbkJlQXJyYXkoKSkgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZCBwYXJhbWV0ZXIgJWQ6ICclcyAlcyVzICVzJyBjYW4ndCBiZSBhbiIKLSAgICAgICAgICAgICAgICAgICAgIiBhcnJheS5cbiIsIGZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICBtLT50eXBlLmFycmF5X3Rva2VuLmxpbmVubywgaW5kZXgsIGFyZy0+ZGlyZWN0aW9uLmRhdGEsCi0gICAgICAgICAgICAgICAgICAgIGFyZy0+dHlwZS50eXBlLmRhdGEsIGFyZy0+dHlwZS5hcnJheV90b2tlbi5kYXRhLAotICAgICAgICAgICAgICAgICAgICBhcmctPm5hbWUuZGF0YSk7Ci0gICAgICAgICAgICBlcnIgPSAxOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGFyZy0+dHlwZS5kaW1lbnNpb24gPiAxKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkIHBhcmFtZXRlciAlZDogJyVzICVzJXMgJXMnIG9ubHkgb25lIgotICAgICAgICAgICAgICAgICAgICAiIGRpbWVuc2lvbmFsIGFycmF5cyBhcmUgc3VwcG9ydGVkXG4iLCBmaWxlbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgbS0+dHlwZS5hcnJheV90b2tlbi5saW5lbm8sIGluZGV4LCBhcmctPmRpcmVjdGlvbi5kYXRhLAotICAgICAgICAgICAgICAgICAgICBhcmctPnR5cGUudHlwZS5kYXRhLCBhcmctPnR5cGUuYXJyYXlfdG9rZW4uZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgYXJnLT5uYW1lLmRhdGEpOwotICAgICAgICAgICAgZXJyID0gMTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGNoZWNrIHRoYXQgdGhlIG5hbWUgZG9lc24ndCBtYXRjaCBhIGtleXdvcmQKLSAgICAgICAgaWYgKG1hdGNoZXNfa2V5d29yZChhcmctPm5hbWUuZGF0YSkpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQgcGFyYW1ldGVyICVkICVzIGlzIG5hbWVkIHRoZSBzYW1lIGFzIGEiCi0gICAgICAgICAgICAgICAgICAgICIgSmF2YSBvciBhaWRsIGtleXdvcmRcbiIsCi0gICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLCBtLT5uYW1lLmxpbmVubywgaW5kZXgsIGFyZy0+bmFtZS5kYXRhKTsKLSAgICAgICAgICAgIGVyciA9IDE7Ci0gICAgICAgIH0KLQotbmV4dDoKLSAgICAgICAgaW5kZXgrKzsKLSAgICAgICAgYXJnID0gYXJnLT5uZXh0OwotICAgIH0KLQotICAgIHJldHVybiBlcnI7Ci19Ci0KLXN0YXRpYyBpbnQKLWNoZWNrX3R5cGVzKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBkb2N1bWVudF9pdGVtX3R5cGUqIGl0ZW1zKQotewotICAgIGludCBlcnIgPSAwOwotICAgIHdoaWxlIChpdGVtcykgewotICAgICAgICAvLyAobm90aGluZyB0byBjaGVjayBmb3IgVVNFUl9EQVRBX1RZUEUpCi0gICAgICAgIGlmIChpdGVtcy0+aXRlbV90eXBlID09IElOVEVSRkFDRV9UWVBFX0JJTkRFUgotICAgICAgICAgICAgICAgIHx8IGl0ZW1zLT5pdGVtX3R5cGUgPT0gSU5URVJGQUNFX1RZUEVfUlBDKSB7Ci0gICAgICAgICAgICBtYXA8c3RyaW5nLG1ldGhvZF90eXBlKj4gbWV0aG9kTmFtZXM7Ci0gICAgICAgICAgICBpbnRlcmZhY2VfdHlwZSogYyA9IChpbnRlcmZhY2VfdHlwZSopaXRlbXM7Ci0KLSAgICAgICAgICAgIGludGVyZmFjZV9pdGVtX3R5cGUqIG1lbWJlciA9IGMtPmludGVyZmFjZV9pdGVtczsKLSAgICAgICAgICAgIHdoaWxlIChtZW1iZXIpIHsKLSAgICAgICAgICAgICAgICBpZiAobWVtYmVyLT5pdGVtX3R5cGUgPT0gTUVUSE9EX1RZUEUpIHsKLSAgICAgICAgICAgICAgICAgICAgbWV0aG9kX3R5cGUqIG0gPSAobWV0aG9kX3R5cGUqKW1lbWJlcjsKLQotICAgICAgICAgICAgICAgICAgICBlcnIgfD0gY2hlY2tfbWV0aG9kKGZpbGVuYW1lLCBpdGVtcy0+aXRlbV90eXBlLCBtKTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IGR1cGxpY2F0ZSBtZXRob2RzCi0gICAgICAgICAgICAgICAgICAgIGlmIChtZXRob2ROYW1lcy5maW5kKG0tPm5hbWUuZGF0YSkgPT0gbWV0aG9kTmFtZXMuZW5kKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZE5hbWVzW20tPm5hbWUuZGF0YV0gPSBtOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsIiVzOiVkIGF0dGVtcHQgdG8gcmVkZWZpbmUgbWV0aG9kICVzLFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIG0tPm5hbWUubGluZW5vLCBtLT5uYW1lLmRhdGEpOwotICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kX3R5cGUqIG9sZCA9IG1ldGhvZE5hbWVzW20tPm5hbWUuZGF0YV07Ci0gICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkICAgIHByZXZpb3VzbHkgZGVmaW5lZCBoZXJlLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIG9sZC0+bmFtZS5saW5lbm8pOwotICAgICAgICAgICAgICAgICAgICAgICAgZXJyID0gMTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBtZW1iZXIgPSBtZW1iZXItPm5leHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpdGVtcyA9IGl0ZW1zLT5uZXh0OwotICAgIH0KLSAgICByZXR1cm4gZXJyOwotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1zdGF0aWMgaW50Ci1leGFjdGx5X29uZV9pbnRlcmZhY2UoY29uc3QgY2hhciogZmlsZW5hbWUsIGNvbnN0IGRvY3VtZW50X2l0ZW1fdHlwZSogaXRlbXMsIGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMsCi0gICAgICAgICAgICAgICAgICAgICAgYm9vbCogb25seVBhcmNlbGFibGUpCi17Ci0gICAgaWYgKGl0ZW1zID09IE5VTEwpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogZmlsZSBkb2VzIG5vdCBjb250YWluIGFueSBpbnRlcmZhY2VzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lKTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgY29uc3QgZG9jdW1lbnRfaXRlbV90eXBlKiBuZXh0ID0gaXRlbXMtPm5leHQ7Ci0gICAgLy8gQWxsb3cgcGFyY2VsYWJsZXMgdG8gc2tpcCB0aGUgIm9uZS1vbmx5IiBydWxlLgotICAgIGlmIChpdGVtcy0+bmV4dCAhPSBOVUxMICYmIG5leHQtPml0ZW1fdHlwZSAhPSBVU0VSX0RBVEFfVFlQRSkgewotICAgICAgICBpbnQgbGluZW5vID0gLTE7Ci0gICAgICAgIGlmIChuZXh0LT5pdGVtX3R5cGUgPT0gSU5URVJGQUNFX1RZUEVfQklOREVSKSB7Ci0gICAgICAgICAgICBsaW5lbm8gPSAoKGludGVyZmFjZV90eXBlKiluZXh0KS0+aW50ZXJmYWNlX3Rva2VuLmxpbmVubzsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChuZXh0LT5pdGVtX3R5cGUgPT0gSU5URVJGQUNFX1RZUEVfUlBDKSB7Ci0gICAgICAgICAgICBsaW5lbm8gPSAoKGludGVyZmFjZV90eXBlKiluZXh0KS0+aW50ZXJmYWNlX3Rva2VuLmxpbmVubzsKLSAgICAgICAgfQotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkIGFpZGwgY2FuIG9ubHkgaGFuZGxlIG9uZSBpbnRlcmZhY2UgcGVyIGZpbGVcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIGxpbmVubyk7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIGlmIChpdGVtcy0+aXRlbV90eXBlID09IFVTRVJfREFUQV9UWVBFKSB7Ci0gICAgICAgICpvbmx5UGFyY2VsYWJsZSA9IHRydWU7Ci0gICAgICAgIGlmIChvcHRpb25zLmZhaWxPblBhcmNlbGFibGUpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQgYWlkbCBjYW4gb25seSBnZW5lcmF0ZSBjb2RlIGZvciBpbnRlcmZhY2VzLCBub3QiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBwYXJjZWxhYmxlcyBvciBmbGF0dGVuYWJsZXMsXG4iLCBmaWxlbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHVzZXJfZGF0YV90eXBlKilpdGVtcyktPmtleXdvcmRfdG9rZW4ubGluZW5vKTsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQgLmFpZGwgZmlsZXMgdGhhdCBvbmx5IGRlY2xhcmUgcGFyY2VsYWJsZXMgb3IgZmxhdHRlbmFibGVzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYXkgbm90IGdvIGluIHRoZSBNYWtlZmlsZS5cbiIsIGZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICgodXNlcl9kYXRhX3R5cGUqKWl0ZW1zKS0+a2V5d29yZF90b2tlbi5saW5lbm8pOwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICAqb25seVBhcmNlbGFibGUgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotdm9pZAotZ2VuZXJhdGVfZGVwX2ZpbGUoY29uc3QgT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgZG9jdW1lbnRfaXRlbV90eXBlKiBpdGVtcykKLXsKLSAgICAvKiB3ZSBvcGVuIHRoZSBmaWxlIGluIGJpbmFyeSBtb2RlIHRvIGVuc3VyZSB0aGF0IHRoZSBzYW1lIG91dHB1dCBpcwotICAgICAqIGdlbmVyYXRlZCBvbiBhbGwgcGxhdGZvcm1zICEhCi0gICAgICovCi0gICAgRklMRSogdG8gPSBOVUxMOwotICAgIGlmIChvcHRpb25zLmF1dG9EZXBGaWxlKSB7Ci0gICAgICAgIHN0cmluZyBmaWxlTmFtZSA9IG9wdGlvbnMub3V0cHV0RmlsZU5hbWUgKyAiLmQiOwotICAgICAgICB0byA9IGZvcGVuKGZpbGVOYW1lLmNfc3RyKCksICJ3YiIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHRvID0gZm9wZW4ob3B0aW9ucy5kZXBGaWxlTmFtZS5jX3N0cigpLCAid2IiKTsKLSAgICB9Ci0KLSAgICBpZiAodG8gPT0gTlVMTCkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY29uc3QgY2hhciogc2xhc2ggPSAiXFwiOwotICAgIGltcG9ydF9pbmZvKiBpbXBvcnQgPSBnX2ltcG9ydHM7Ci0gICAgaWYgKGltcG9ydCA9PSBOVUxMKSB7Ci0gICAgICAgIHNsYXNoID0gIiI7Ci0gICAgfQotCi0gICAgaWYgKGl0ZW1zLT5pdGVtX3R5cGUgPT0gSU5URVJGQUNFX1RZUEVfQklOREVSIHx8IGl0ZW1zLT5pdGVtX3R5cGUgPT0gSU5URVJGQUNFX1RZUEVfUlBDKSB7Ci0gICAgICAgIGZwcmludGYodG8sICIlczogXFxcbiIsIG9wdGlvbnMub3V0cHV0RmlsZU5hbWUuY19zdHIoKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gcGFyY2VsYWJsZTogdGhlcmUncyBubyBvdXRwdXQgZmlsZS4KLSAgICAgICAgZnByaW50Zih0bywgIiA6IFxcXG4iKTsKLSAgICB9Ci0gICAgZnByaW50Zih0bywgIiAgJXMgJXNcbiIsIG9wdGlvbnMuaW5wdXRGaWxlTmFtZS5jX3N0cigpLCBzbGFzaCk7Ci0KLSAgICB3aGlsZSAoaW1wb3J0KSB7Ci0gICAgICAgIGlmIChpbXBvcnQtPm5leHQgPT0gTlVMTCkgewotICAgICAgICAgICAgc2xhc2ggPSAiIjsKLSAgICAgICAgfQotICAgICAgICBpZiAoaW1wb3J0LT5maWxlbmFtZSkgewotICAgICAgICAgICAgZnByaW50Zih0bywgIiAgJXMgJXNcbiIsIGltcG9ydC0+ZmlsZW5hbWUsIHNsYXNoKTsKLSAgICAgICAgfQotICAgICAgICBpbXBvcnQgPSBpbXBvcnQtPm5leHQ7Ci0gICAgfQotCi0gICAgZnByaW50Zih0bywgIlxuIik7Ci0KLSAgICAvLyBPdXRwdXQgIjxpbXBvcnRlZF9maWxlPjogIiBzbyBtYWtlIHdvbid0IGZhaWwgaWYgdGhlIGltcG9ydGVkIGZpbGUgaGFzCi0gICAgLy8gYmVlbiBkZWxldGVkLCBtb3ZlZCBvciByZW5hbWVkIGluIGluY3JlbWVudGFsIGJ1aWxkLgotICAgIGltcG9ydCA9IGdfaW1wb3J0czsKLSAgICB3aGlsZSAoaW1wb3J0KSB7Ci0gICAgICAgIGlmIChpbXBvcnQtPmZpbGVuYW1lKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHRvLCAiJXMgOlxuIiwgaW1wb3J0LT5maWxlbmFtZSk7Ci0gICAgICAgIH0KLSAgICAgICAgaW1wb3J0ID0gaW1wb3J0LT5uZXh0OwotICAgIH0KLQotICAgIGZjbG9zZSh0byk7Ci19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLXN0YXRpYyBzdHJpbmcKLWdlbmVyYXRlX291dHB1dEZpbGVOYW1lMihjb25zdCBPcHRpb25zJiBvcHRpb25zLCBjb25zdCBidWZmZXJfdHlwZSYgbmFtZSwgY29uc3QgY2hhciogcGFja2FnZSkKLXsKLSAgICBzdHJpbmcgcmVzdWx0OwotCi0gICAgLy8gY3JlYXRlIHRoZSBwYXRoIHRvIHRoZSBkZXN0aW5hdGlvbiBmb2xkZXIgYmFzZWQgb24gdGhlCi0gICAgLy8gaW50ZXJmYWNlIHBhY2thZ2UgbmFtZQotICAgIHJlc3VsdCA9IG9wdGlvbnMub3V0cHV0QmFzZUZvbGRlcjsKLSAgICByZXN1bHQgKz0gT1NfUEFUSF9TRVBBUkFUT1I7Ci0KLSAgICBzdHJpbmcgcGFja2FnZVN0ciA9IHBhY2thZ2U7Ci0gICAgc2l6ZV90IGxlbiA9IHBhY2thZ2VTdHIubGVuZ3RoKCk7Ci0gICAgZm9yIChzaXplX3QgaT0wOyBpPGxlbjsgaSsrKSB7Ci0gICAgICAgIGlmIChwYWNrYWdlU3RyW2ldID09ICcuJykgewotICAgICAgICAgICAgcGFja2FnZVN0cltpXSA9IE9TX1BBVEhfU0VQQVJBVE9SOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmVzdWx0ICs9IHBhY2thZ2VTdHI7Ci0KLSAgICAvLyBhZGQgdGhlIGZpbGVuYW1lIGJ5IHJlcGxhY2luZyB0aGUgLmFpZGwgZXh0ZW5zaW9uIHRvIC5qYXZhCi0gICAgY29uc3QgY2hhciogcCA9IHN0cmNocihuYW1lLmRhdGEsICcuJyk7Ci0gICAgbGVuID0gcCA/IHAtbmFtZS5kYXRhIDogc3RybGVuKG5hbWUuZGF0YSk7Ci0KLSAgICByZXN1bHQgKz0gT1NfUEFUSF9TRVBBUkFUT1I7Ci0gICAgcmVzdWx0LmFwcGVuZChuYW1lLmRhdGEsIGxlbik7Ci0gICAgcmVzdWx0ICs9ICIuamF2YSI7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1zdGF0aWMgc3RyaW5nCi1nZW5lcmF0ZV9vdXRwdXRGaWxlTmFtZShjb25zdCBPcHRpb25zJiBvcHRpb25zLCBjb25zdCBkb2N1bWVudF9pdGVtX3R5cGUqIGl0ZW1zKQotewotICAgIC8vIGl0ZW1zIGhhcyBhbHJlYWR5IGJlZW4gY2hlY2tlZCB0byBoYXZlIG9ubHkgb25lIGludGVyZmFjZS4KLSAgICBpZiAoaXRlbXMtPml0ZW1fdHlwZSA9PSBJTlRFUkZBQ0VfVFlQRV9CSU5ERVIgfHwgaXRlbXMtPml0ZW1fdHlwZSA9PSBJTlRFUkZBQ0VfVFlQRV9SUEMpIHsKLSAgICAgICAgaW50ZXJmYWNlX3R5cGUqIHR5cGUgPSAoaW50ZXJmYWNlX3R5cGUqKWl0ZW1zOwotCi0gICAgICAgIHJldHVybiBnZW5lcmF0ZV9vdXRwdXRGaWxlTmFtZTIob3B0aW9ucywgdHlwZS0+bmFtZSwgdHlwZS0+cGFja2FnZSk7Ci0gICAgfSBlbHNlIGlmIChpdGVtcy0+aXRlbV90eXBlID09IFVTRVJfREFUQV9UWVBFKSB7Ci0gICAgICAgIHVzZXJfZGF0YV90eXBlKiB0eXBlID0gKHVzZXJfZGF0YV90eXBlKilpdGVtczsKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRlX291dHB1dEZpbGVOYW1lMihvcHRpb25zLCB0eXBlLT5uYW1lLCB0eXBlLT5wYWNrYWdlKTsKLSAgICB9Ci0KLSAgICAvLyBJIGRvbid0IHRoaW5rIHdlIGNhbiBjb21lIGhlcmUsIGJ1dCBzYWZlciB0aGFuIHJldHVybmluZyBOVUxMLgotICAgIHN0cmluZyByZXN1bHQ7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotCi0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLXN0YXRpYyB2b2lkCi1jaGVja19vdXRwdXRGaWxlUGF0aChjb25zdCBzdHJpbmcmIHBhdGgpIHsKLSAgICBzaXplX3QgbGVuID0gcGF0aC5sZW5ndGgoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8bGVuIDsgaSsrKSB7Ci0gICAgICAgIGlmIChwYXRoW2ldID09IE9TX1BBVEhfU0VQQVJBVE9SKSB7Ci0gICAgICAgICAgICBzdHJpbmcgcCA9IHBhdGguc3Vic3RyKDAsIGkpOwotICAgICAgICAgICAgaWYgKGFjY2VzcyhwYXRoLmRhdGEoKSwgRl9PSykgIT0gMCkgewotI2lmZGVmIEhBVkVfTVNfQ19SVU5USU1FCi0gICAgICAgICAgICAgICAgX21rZGlyKHAuZGF0YSgpKTsKLSNlbHNlCi0gICAgICAgICAgICAgICAgbWtkaXIocC5kYXRhKCksIFNfSVJVU1J8U19JV1VTUnxTX0lYVVNSfFNfSVJHUlB8U19JWEdSUCk7Ci0jZW5kaWYKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLX0KLQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1zdGF0aWMgaW50Ci1wYXJzZV9wcmVwcm9jZXNzZWRfZmlsZShjb25zdCBzdHJpbmcmIGZpbGVuYW1lKQotewotICAgIGludCBlcnI7Ci0KLSAgICBGSUxFKiBmID0gZm9wZW4oZmlsZW5hbWUuY19zdHIoKSwgInJiIik7Ci0gICAgaWYgKGYgPT0gTlVMTCkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6IGNhbid0IG9wZW4gcHJlcHJvY2Vzc2VkIGZpbGU6ICVzXG4iLAotICAgICAgICAgICAgICAgIGZpbGVuYW1lLmNfc3RyKCkpOwotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBpbnQgbGluZW5vID0gMTsKLSAgICBjaGFyIGxpbmVbMTAyNF07Ci0gICAgY2hhciB0eXBlWzEwMjRdOwotICAgIGNoYXIgZnVsbG5hbWVbMTAyNF07Ci0gICAgd2hpbGUgKGZnZXRzKGxpbmUsIHNpemVvZihsaW5lKSwgZikpIHsKLSAgICAgICAgLy8gc2tpcCBjb21tZW50cyBhbmQgZW1wdHkgbGluZXMKLSAgICAgICAgaWYgKCFsaW5lWzBdIHx8IHN0cm5jbXAobGluZSwgIi8vIiwgMikgPT0gMCkgewotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgc3NjYW5mKGxpbmUsICIlcyAlW147IFxyXG5cdF07IiwgdHlwZSwgZnVsbG5hbWUpOwotCi0gICAgICAgIGNoYXIqIHBhY2thZ2VuYW1lOwotICAgICAgICBjaGFyKiBjbGFzc25hbWUgPSByZmluZChmdWxsbmFtZSwgJy4nKTsKLSAgICAgICAgaWYgKGNsYXNzbmFtZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAqY2xhc3NuYW1lID0gJ1wwJzsKLSAgICAgICAgICAgIGNsYXNzbmFtZSsrOwotICAgICAgICAgICAgcGFja2FnZW5hbWUgPSBmdWxsbmFtZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGNsYXNzbmFtZSA9IGZ1bGxuYW1lOwotICAgICAgICAgICAgcGFja2FnZW5hbWUgPSBOVUxMOwotICAgICAgICB9Ci0KLSAgICAgICAgLy9wcmludGYoIiVzOiVkOi4uLiVzLi4uJXMuLi4lcy4uLlxuIiwgZmlsZW5hbWUuY19zdHIoKSwgbGluZW5vLAotICAgICAgICAvLyAgICAgICAgdHlwZSwgcGFja2FnZW5hbWUsIGNsYXNzbmFtZSk7Ci0gICAgICAgIGRvY3VtZW50X2l0ZW1fdHlwZSogZG9jOwotCi0gICAgICAgIGlmICgwID09IHN0cmNtcCgicGFyY2VsYWJsZSIsIHR5cGUpKSB7Ci0gICAgICAgICAgICB1c2VyX2RhdGFfdHlwZSogcGFyY2wgPSAodXNlcl9kYXRhX3R5cGUqKW1hbGxvYygKLSAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHVzZXJfZGF0YV90eXBlKSk7Ci0gICAgICAgICAgICBtZW1zZXQocGFyY2wsIDAsIHNpemVvZih1c2VyX2RhdGFfdHlwZSkpOwotICAgICAgICAgICAgcGFyY2wtPmRvY3VtZW50X2l0ZW0uaXRlbV90eXBlID0gVVNFUl9EQVRBX1RZUEU7Ci0gICAgICAgICAgICBwYXJjbC0+a2V5d29yZF90b2tlbi5saW5lbm8gPSBsaW5lbm87Ci0gICAgICAgICAgICBwYXJjbC0+a2V5d29yZF90b2tlbi5kYXRhID0gc3RyZHVwKHR5cGUpOwotICAgICAgICAgICAgcGFyY2wtPnBhY2thZ2UgPSBwYWNrYWdlbmFtZSA/IHN0cmR1cChwYWNrYWdlbmFtZSkgOiBOVUxMOwotICAgICAgICAgICAgcGFyY2wtPm5hbWUubGluZW5vID0gbGluZW5vOwotICAgICAgICAgICAgcGFyY2wtPm5hbWUuZGF0YSA9IHN0cmR1cChjbGFzc25hbWUpOwotICAgICAgICAgICAgcGFyY2wtPnNlbWljb2xvbl90b2tlbi5saW5lbm8gPSBsaW5lbm87Ci0gICAgICAgICAgICBwYXJjbC0+c2VtaWNvbG9uX3Rva2VuLmRhdGEgPSBzdHJkdXAoIjsiKTsKLSAgICAgICAgICAgIHBhcmNsLT5mbGF0dGVuaW5nX21ldGhvZHMgPSBQQVJDRUxBQkxFX0RBVEE7Ci0gICAgICAgICAgICBkb2MgPSAoZG9jdW1lbnRfaXRlbV90eXBlKilwYXJjbDsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmICgwID09IHN0cmNtcCgiZmxhdHRlbmFibGUiLCB0eXBlKSkgewotICAgICAgICAgICAgdXNlcl9kYXRhX3R5cGUqIHBhcmNsID0gKHVzZXJfZGF0YV90eXBlKiltYWxsb2MoCi0gICAgICAgICAgICAgICAgICAgIHNpemVvZih1c2VyX2RhdGFfdHlwZSkpOwotICAgICAgICAgICAgbWVtc2V0KHBhcmNsLCAwLCBzaXplb2YodXNlcl9kYXRhX3R5cGUpKTsKLSAgICAgICAgICAgIHBhcmNsLT5kb2N1bWVudF9pdGVtLml0ZW1fdHlwZSA9IFVTRVJfREFUQV9UWVBFOwotICAgICAgICAgICAgcGFyY2wtPmtleXdvcmRfdG9rZW4ubGluZW5vID0gbGluZW5vOwotICAgICAgICAgICAgcGFyY2wtPmtleXdvcmRfdG9rZW4uZGF0YSA9IHN0cmR1cCh0eXBlKTsKLSAgICAgICAgICAgIHBhcmNsLT5wYWNrYWdlID0gcGFja2FnZW5hbWUgPyBzdHJkdXAocGFja2FnZW5hbWUpIDogTlVMTDsKLSAgICAgICAgICAgIHBhcmNsLT5uYW1lLmxpbmVubyA9IGxpbmVubzsKLSAgICAgICAgICAgIHBhcmNsLT5uYW1lLmRhdGEgPSBzdHJkdXAoY2xhc3NuYW1lKTsKLSAgICAgICAgICAgIHBhcmNsLT5zZW1pY29sb25fdG9rZW4ubGluZW5vID0gbGluZW5vOwotICAgICAgICAgICAgcGFyY2wtPnNlbWljb2xvbl90b2tlbi5kYXRhID0gc3RyZHVwKCI7Iik7Ci0gICAgICAgICAgICBwYXJjbC0+ZmxhdHRlbmluZ19tZXRob2RzID0gUlBDX0RBVEE7Ci0gICAgICAgICAgICBkb2MgPSAoZG9jdW1lbnRfaXRlbV90eXBlKilwYXJjbDsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmICgwID09IHN0cmNtcCgiaW50ZXJmYWNlIiwgdHlwZSkpIHsKLSAgICAgICAgICAgIGludGVyZmFjZV90eXBlKiBpZmFjZSA9IChpbnRlcmZhY2VfdHlwZSopbWFsbG9jKAotICAgICAgICAgICAgICAgICAgICBzaXplb2YoaW50ZXJmYWNlX3R5cGUpKTsKLSAgICAgICAgICAgIG1lbXNldChpZmFjZSwgMCwgc2l6ZW9mKGludGVyZmFjZV90eXBlKSk7Ci0gICAgICAgICAgICBpZmFjZS0+ZG9jdW1lbnRfaXRlbS5pdGVtX3R5cGUgPSBJTlRFUkZBQ0VfVFlQRV9CSU5ERVI7Ci0gICAgICAgICAgICBpZmFjZS0+aW50ZXJmYWNlX3Rva2VuLmxpbmVubyA9IGxpbmVubzsKLSAgICAgICAgICAgIGlmYWNlLT5pbnRlcmZhY2VfdG9rZW4uZGF0YSA9IHN0cmR1cCh0eXBlKTsKLSAgICAgICAgICAgIGlmYWNlLT5wYWNrYWdlID0gcGFja2FnZW5hbWUgPyBzdHJkdXAocGFja2FnZW5hbWUpIDogTlVMTDsKLSAgICAgICAgICAgIGlmYWNlLT5uYW1lLmxpbmVubyA9IGxpbmVubzsKLSAgICAgICAgICAgIGlmYWNlLT5uYW1lLmRhdGEgPSBzdHJkdXAoY2xhc3NuYW1lKTsKLSAgICAgICAgICAgIGlmYWNlLT5vcGVuX2JyYWNlX3Rva2VuLmxpbmVubyA9IGxpbmVubzsKLSAgICAgICAgICAgIGlmYWNlLT5vcGVuX2JyYWNlX3Rva2VuLmRhdGEgPSBzdHJkdXAoInsiKTsKLSAgICAgICAgICAgIGlmYWNlLT5jbG9zZV9icmFjZV90b2tlbi5saW5lbm8gPSBsaW5lbm87Ci0gICAgICAgICAgICBpZmFjZS0+Y2xvc2VfYnJhY2VfdG9rZW4uZGF0YSA9IHN0cmR1cCgifSIpOwotICAgICAgICAgICAgZG9jID0gKGRvY3VtZW50X2l0ZW1fdHlwZSopaWZhY2U7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkOiBiYWQgdHlwZSBpbiBsaW5lOiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUuY19zdHIoKSwgbGluZW5vLCBsaW5lKTsKLSAgICAgICAgICAgIGZjbG9zZShmKTsKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICB9Ci0gICAgICAgIGVyciA9IGdhdGhlcl90eXBlcyhmaWxlbmFtZS5jX3N0cigpLCBkb2MpOwotICAgICAgICBsaW5lbm8rKzsKLSAgICB9Ci0KLSAgICBpZiAoIWZlb2YoZikpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogZXJyb3IgcmVhZGluZyBmaWxlLCBsaW5lIHRvIGxvbmcuXG4iLAotICAgICAgICAgICAgICAgIGZpbGVuYW1lLmNfc3RyKCksIGxpbmVubyk7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIGZjbG9zZShmKTsKLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludAotY2hlY2tfYW5kX2Fzc2lnbl9tZXRob2RfaWRzKGNvbnN0IGNoYXIgKiBmaWxlbmFtZSwgaW50ZXJmYWNlX2l0ZW1fdHlwZSogZmlyc3RfaXRlbSkKLXsKLSAgICAvLyBDaGVjayB3aGV0aGVyIHRoZXJlIGFyZSBhbnkgbWV0aG9kcyB3aXRoIG1hbnVhbGx5IGFzc2lnbmVkIGlkJ3MgYW5kIGFueSB0aGF0IGFyZSBub3QuCi0gICAgLy8gRWl0aGVyIGFsbCBtZXRob2QgaWQncyBtdXN0IGJlIG1hbnVhbGx5IGFzc2lnbmVkIG9yIGFsbCBvZiB0aGVtIG11c3Qgbm90LgotICAgIC8vIEFsc28sIGNoZWNrIGZvciBkdXBsaWNhdGVzIG9mIHVzZXIgc2V0IGlkJ3MgYW5kIHRoYXQgdGhlIGlkJ3MgYXJlIHdpdGhpbiB0aGUgcHJvcGVyIGJvdW5kcy4KLSAgICBzZXQ8aW50PiB1c2VkSWRzOwotICAgIGludGVyZmFjZV9pdGVtX3R5cGUqIGl0ZW0gPSBmaXJzdF9pdGVtOwotICAgIGJvb2wgaGFzVW5hc3NpZ25lZElkcyA9IGZhbHNlOwotICAgIGJvb2wgaGFzQXNzaWduZWRJZHMgPSBmYWxzZTsKLSAgICB3aGlsZSAoaXRlbSAhPSBOVUxMKSB7Ci0gICAgICAgIGlmIChpdGVtLT5pdGVtX3R5cGUgPT0gTUVUSE9EX1RZUEUpIHsKLSAgICAgICAgICAgIG1ldGhvZF90eXBlKiBtZXRob2RfaXRlbSA9IChtZXRob2RfdHlwZSopaXRlbTsKLSAgICAgICAgICAgIGlmIChtZXRob2RfaXRlbS0+aGFzSWQpIHsKLSAgICAgICAgICAgICAgICBoYXNBc3NpZ25lZElkcyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgbWV0aG9kX2l0ZW0tPmFzc2lnbmVkX2lkID0gYXRvaShtZXRob2RfaXRlbS0+aWQuZGF0YSk7Ci0gICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIHVzZXIgc2V0IGlkIGlzIG5vdCBkdXBsaWNhdGVkLgotICAgICAgICAgICAgICAgIGlmICh1c2VkSWRzLmZpbmQobWV0aG9kX2l0ZW0tPmFzc2lnbmVkX2lkKSAhPSB1c2VkSWRzLmVuZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFdlIGZvdW5kIGEgZHVwbGljYXRlIGlkLCBzbyB0aHJvdyBhbiBlcnJvci4KLSAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzOiVkIEZvdW5kIGR1cGxpY2F0ZSBtZXRob2QgaWQgKCVkKSBmb3IgbWV0aG9kOiAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwgbWV0aG9kX2l0ZW0tPmlkLmxpbmVubywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2RfaXRlbS0+YXNzaWduZWRfaWQsIG1ldGhvZF9pdGVtLT5uYW1lLmRhdGEpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIHVzZXIgc2V0IGlkIGlzIHdpdGhpbiB0aGUgYXBwcm9wcmlhdGUgbGltaXRzCi0gICAgICAgICAgICAgICAgaWYgKG1ldGhvZF9pdGVtLT5hc3NpZ25lZF9pZCA8IE1JTl9VU0VSX1NFVF9NRVRIT0RfSUQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZF9pdGVtLT5hc3NpZ25lZF9pZCA+IE1BWF9VU0VSX1NFVF9NRVRIT0RfSUQpIHsKLSAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZCBGb3VuZCBvdXQgb2YgYm91bmRzIGlkICglZCkgZm9yIG1ldGhvZDogJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIG1ldGhvZF9pdGVtLT5pZC5saW5lbm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kX2l0ZW0tPmFzc2lnbmVkX2lkLCBtZXRob2RfaXRlbS0+bmFtZS5kYXRhKTsKLSAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIgICAgVmFsdWUgZm9yIGlkIG11c3QgYmUgYmV0d2VlbiAlZCBhbmQgJWQgaW5jbHVzaXZlLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSU5fVVNFUl9TRVRfTUVUSE9EX0lELCBNQVhfVVNFUl9TRVRfTUVUSE9EX0lEKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHVzZWRJZHMuaW5zZXJ0KG1ldGhvZF9pdGVtLT5hc3NpZ25lZF9pZCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGhhc1VuYXNzaWduZWRJZHMgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGhhc0Fzc2lnbmVkSWRzICYmIGhhc1VuYXNzaWduZWRJZHMpIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAgICAgICAgICAgICAgICAgICIlczogWW91IG11c3QgZWl0aGVyIGFzc2lnbiBpZCdzIHRvIGFsbCBtZXRob2RzIG9yIHRvIG5vbmUgb2YgdGhlbS5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaXRlbSA9IGl0ZW0tPm5leHQ7Ci0gICAgfQotCi0gICAgLy8gSW4gdGhlIGNhc2UgdGhhdCBhbGwgbWV0aG9kcyBoYXZlIHVuYXNzaWduZWQgaWQncywgc2V0IGEgdW5pcXVlIGlkIGZvciB0aGVtLgotICAgIGlmIChoYXNVbmFzc2lnbmVkSWRzKSB7Ci0gICAgICAgIGludCBuZXdJZCA9IDA7Ci0gICAgICAgIGl0ZW0gPSBmaXJzdF9pdGVtOwotICAgICAgICB3aGlsZSAoaXRlbSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBpZiAoaXRlbS0+aXRlbV90eXBlID09IE1FVEhPRF9UWVBFKSB7Ci0gICAgICAgICAgICAgICAgbWV0aG9kX3R5cGUqIG1ldGhvZF9pdGVtID0gKG1ldGhvZF90eXBlKilpdGVtOwotICAgICAgICAgICAgICAgIG1ldGhvZF9pdGVtLT5hc3NpZ25lZF9pZCA9IG5ld0lkKys7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpdGVtID0gaXRlbS0+bmV4dDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIHN1Y2Nlc3MKLSAgICByZXR1cm4gMDsKLX0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotc3RhdGljIGludAotY29tcGlsZV9haWRsKE9wdGlvbnMmIG9wdGlvbnMpCi17Ci0gICAgaW50IGVyciA9IDAsIE47Ci0KLSAgICBzZXRfaW1wb3J0X3BhdGhzKG9wdGlvbnMuaW1wb3J0UGF0aHMpOwotCi0gICAgcmVnaXN0ZXJfYmFzZV90eXBlcygpOwotCi0gICAgLy8gaW1wb3J0IHRoZSBwcmVwcm9jZXNzZWQgZmlsZQotICAgIE4gPSBvcHRpb25zLnByZXByb2Nlc3NlZEZpbGVzLnNpemUoKTsKLSAgICBmb3IgKGludCBpPTA7IGk8TjsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IHN0cmluZyYgcyA9IG9wdGlvbnMucHJlcHJvY2Vzc2VkRmlsZXNbaV07Ci0gICAgICAgIGVyciB8PSBwYXJzZV9wcmVwcm9jZXNzZWRfZmlsZShzKTsKLSAgICB9Ci0gICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBlcnI7Ci0gICAgfQotCi0gICAgLy8gcGFyc2UgdGhlIG1haW4gZmlsZQotICAgIGdfY2FsbGJhY2tzID0gJmdfbWFpbkNhbGxiYWNrczsKLSAgICBlcnIgPSBwYXJzZV9haWRsKG9wdGlvbnMuaW5wdXRGaWxlTmFtZS5jX3N0cigpKTsKLSAgICBkb2N1bWVudF9pdGVtX3R5cGUqIG1haW5Eb2MgPSBnX2RvY3VtZW50OwotICAgIGdfZG9jdW1lbnQgPSBOVUxMOwotCi0gICAgLy8gcGFyc2UgdGhlIGltcG9ydHMKLSAgICBnX2NhbGxiYWNrcyA9ICZnX21haW5DYWxsYmFja3M7Ci0gICAgaW1wb3J0X2luZm8qIGltcG9ydCA9IGdfaW1wb3J0czsKLSAgICB3aGlsZSAoaW1wb3J0KSB7Ci0gICAgICAgIGlmIChOQU1FUy5GaW5kKGltcG9ydC0+bmVlZGVkQ2xhc3MpID09IE5VTEwpIHsKLSAgICAgICAgICAgIGltcG9ydC0+ZmlsZW5hbWUgPSBmaW5kX2ltcG9ydF9maWxlKGltcG9ydC0+bmVlZGVkQ2xhc3MpOwotICAgICAgICAgICAgaWYgKCFpbXBvcnQtPmZpbGVuYW1lKSB7Ci0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogY291bGRuJ3QgZmluZCBpbXBvcnQgZm9yIGNsYXNzICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0LT5mcm9tLCBpbXBvcnQtPnN0YXRlbWVudC5saW5lbm8sCi0gICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnQtPm5lZWRlZENsYXNzKTsKLSAgICAgICAgICAgICAgICBlcnIgfD0gMTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZXJyIHw9IHBhcnNlX2FpZGwoaW1wb3J0LT5maWxlbmFtZSk7Ci0gICAgICAgICAgICAgICAgaW1wb3J0LT5kb2MgPSBnX2RvY3VtZW50OwotICAgICAgICAgICAgICAgIGlmIChpbXBvcnQtPmRvYyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIGVyciB8PSAxOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpbXBvcnQgPSBpbXBvcnQtPm5leHQ7Ci0gICAgfQotICAgIC8vIGJhaWwgb3V0IG5vdyBpZiBwYXJzaW5nIHdhc24ndCBzdWNjZXNzZnVsCi0gICAgaWYgKGVyciAhPSAwIHx8IG1haW5Eb2MgPT0gTlVMTCkgewotICAgICAgICAvL2ZwcmludGYoc3RkZXJyLCAiYWlkbDogcGFyc2luZyBmYWlsZWQsIHN0b3BwaW5nLlxuIik7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIC8vIGNvbXBsYWluIGFib3V0IG9uZXMgdGhhdCBhcmVuJ3QgaW4gdGhlIHJpZ2h0IGZpbGVzCi0gICAgZXJyIHw9IGNoZWNrX2ZpbGVuYW1lcyhvcHRpb25zLmlucHV0RmlsZU5hbWUuY19zdHIoKSwgbWFpbkRvYyk7Ci0gICAgaW1wb3J0ID0gZ19pbXBvcnRzOwotICAgIHdoaWxlIChpbXBvcnQpIHsKLSAgICAgICAgZXJyIHw9IGNoZWNrX2ZpbGVuYW1lcyhpbXBvcnQtPmZpbGVuYW1lLCBpbXBvcnQtPmRvYyk7Ci0gICAgICAgIGltcG9ydCA9IGltcG9ydC0+bmV4dDsKLSAgICB9Ci0KLSAgICAvLyBnYXRoZXIgdGhlIHR5cGVzIHRoYXQgaGF2ZSBiZWVuIGRlY2xhcmVkCi0gICAgZXJyIHw9IGdhdGhlcl90eXBlcyhvcHRpb25zLmlucHV0RmlsZU5hbWUuY19zdHIoKSwgbWFpbkRvYyk7Ci0gICAgaW1wb3J0ID0gZ19pbXBvcnRzOwotICAgIHdoaWxlIChpbXBvcnQpIHsKLSAgICAgICAgZXJyIHw9IGdhdGhlcl90eXBlcyhpbXBvcnQtPmZpbGVuYW1lLCBpbXBvcnQtPmRvYyk7Ci0gICAgICAgIGltcG9ydCA9IGltcG9ydC0+bmV4dDsKLSAgICB9Ci0KLSNpZiAwCi0gICAgcHJpbnRmKCItLS0tIG1haW4gZG9jIC0tLS1cbiIpOwotICAgIHRlc3RfZG9jdW1lbnQobWFpbkRvYyk7Ci0KLSAgICBpbXBvcnQgPSBnX2ltcG9ydHM7Ci0gICAgd2hpbGUgKGltcG9ydCkgewotICAgICAgICBwcmludGYoIi0tLS0gaW1wb3J0IGRvYyAtLS0tXG4iKTsKLSAgICAgICAgdGVzdF9kb2N1bWVudChpbXBvcnQtPmRvYyk7Ci0gICAgICAgIGltcG9ydCA9IGltcG9ydC0+bmV4dDsKLSAgICB9Ci0gICAgTkFNRVMuRHVtcCgpOwotI2VuZGlmCi0KLSAgICAvLyBjaGVjayB0aGUgcmVmZXJlbmNlZCB0eXBlcyBpbiBtYWluRG9jIHRvIG1ha2Ugc3VyZSB3ZSd2ZSBpbXBvcnRlZCB0aGVtCi0gICAgZXJyIHw9IGNoZWNrX3R5cGVzKG9wdGlvbnMuaW5wdXRGaWxlTmFtZS5jX3N0cigpLCBtYWluRG9jKTsKLQotICAgIC8vIGZpbmFsbHksIHRoZXJlIHJlYWxseSBvbmx5IG5lZWRzIHRvIGJlIG9uZSB0aGluZyBpbiBtYWluRG9jLCBhbmQgaXQKLSAgICAvLyBuZWVkcyB0byBiZSBhbiBpbnRlcmZhY2UuCi0gICAgYm9vbCBvbmx5UGFyY2VsYWJsZSA9IGZhbHNlOwotICAgIGVyciB8PSBleGFjdGx5X29uZV9pbnRlcmZhY2Uob3B0aW9ucy5pbnB1dEZpbGVOYW1lLmNfc3RyKCksIG1haW5Eb2MsIG9wdGlvbnMsICZvbmx5UGFyY2VsYWJsZSk7Ci0KLSAgICAvLyBJZiB0aGlzIGluY2x1ZGVzIGFuIGludGVyZmFjZSBkZWZpbml0aW9uLCB0aGVuIGFzc2lnbiBtZXRob2QgaWRzIGFuZCB2YWxpZGF0ZS4KLSAgICBpZiAoIW9ubHlQYXJjZWxhYmxlKSB7Ci0gICAgICAgIGVyciB8PSBjaGVja19hbmRfYXNzaWduX21ldGhvZF9pZHMob3B0aW9ucy5pbnB1dEZpbGVOYW1lLmNfc3RyKCksCi0gICAgICAgICAgICAgICAgKChpbnRlcmZhY2VfdHlwZSopbWFpbkRvYyktPmludGVyZmFjZV9pdGVtcyk7Ci0gICAgfQotCi0gICAgLy8gYWZ0ZXIgdGhpcywgdGhlcmUgc2hvdWxkbid0IGJlIGFueSBtb3JlIGVycm9ycyBiZWNhdXNlIG9mIHRoZQotICAgIC8vIGlucHV0LgotICAgIGlmIChlcnIgIT0gMCB8fCBtYWluRG9jID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgLy8gaWYgbmVlZGVkLCBnZW5lcmF0ZSB0aGUgb3V0cHV0RmlsZU5hbWUgZnJvbSB0aGUgb3V0cHV0QmFzZUZvbGRlcgotICAgIGlmIChvcHRpb25zLm91dHB1dEZpbGVOYW1lLmxlbmd0aCgpID09IDAgJiYKLSAgICAgICAgICAgIG9wdGlvbnMub3V0cHV0QmFzZUZvbGRlci5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgb3B0aW9ucy5vdXRwdXRGaWxlTmFtZSA9IGdlbmVyYXRlX291dHB1dEZpbGVOYW1lKG9wdGlvbnMsIG1haW5Eb2MpOwotICAgIH0KLQotICAgIC8vIGlmIHdlIHdlcmUgYXNrZWQgdG8sIGdlbmVyYXRlIGEgbWFrZSBkZXBlbmRlbmN5IGZpbGUKLSAgICAvLyB1bmxlc3MgaXQncyBhIHBhcmNlbGFibGUgKmFuZCogaXQncyBzdXBwb3NlZCB0byBmYWlsIG9uIHBhcmNlbGFibGUKLSAgICBpZiAoKG9wdGlvbnMuYXV0b0RlcEZpbGUgfHwgb3B0aW9ucy5kZXBGaWxlTmFtZSAhPSAiIikgJiYKLSAgICAgICAgICAgICEob25seVBhcmNlbGFibGUgJiYgb3B0aW9ucy5mYWlsT25QYXJjZWxhYmxlKSkgewotICAgICAgICAvLyBtYWtlIHN1cmUgdGhlIGZvbGRlcnMgb2YgdGhlIG91dHB1dCBmaWxlIGFsbCBleGlzdHMKLSAgICAgICAgY2hlY2tfb3V0cHV0RmlsZVBhdGgob3B0aW9ucy5vdXRwdXRGaWxlTmFtZSk7Ci0gICAgICAgIGdlbmVyYXRlX2RlcF9maWxlKG9wdGlvbnMsIG1haW5Eb2MpOwotICAgIH0KLQotICAgIC8vIHRoZXkgZGlkbid0IGFzayB0byBmYWlsIG9uIHBhcmNlbGFibGVzLCBzbyBqdXN0IGV4aXQgcXVpZXRseS4KLSAgICBpZiAob25seVBhcmNlbGFibGUgJiYgIW9wdGlvbnMuZmFpbE9uUGFyY2VsYWJsZSkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvLyBtYWtlIHN1cmUgdGhlIGZvbGRlcnMgb2YgdGhlIG91dHB1dCBmaWxlIGFsbCBleGlzdHMKLSAgICBjaGVja19vdXRwdXRGaWxlUGF0aChvcHRpb25zLm91dHB1dEZpbGVOYW1lKTsKLQotICAgIGVyciA9IGdlbmVyYXRlX2phdmEob3B0aW9ucy5vdXRwdXRGaWxlTmFtZSwgb3B0aW9ucy5pbnB1dEZpbGVOYW1lLmNfc3RyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJmYWNlX3R5cGUqKW1haW5Eb2MpOwotCi0gICAgcmV0dXJuIGVycjsKLX0KLQotc3RhdGljIGludAotcHJlcHJvY2Vzc19haWRsKGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMpCi17Ci0gICAgdmVjdG9yPHN0cmluZz4gbGluZXM7Ci0gICAgaW50IGVycjsKLQotICAgIC8vIHJlYWQgZmlsZXMKLSAgICBpbnQgTiA9IG9wdGlvbnMuZmlsZXNUb1ByZXByb2Nlc3Muc2l6ZSgpOwotICAgIGZvciAoaW50IGk9MDsgaTxOOyBpKyspIHsKLSAgICAgICAgZ19jYWxsYmFja3MgPSAmZ19tYWluQ2FsbGJhY2tzOwotICAgICAgICBlcnIgPSBwYXJzZV9haWRsKG9wdGlvbnMuZmlsZXNUb1ByZXByb2Nlc3NbaV0uY19zdHIoKSk7Ci0gICAgICAgIGlmIChlcnIgIT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgfQotICAgICAgICBkb2N1bWVudF9pdGVtX3R5cGUqIGRvYyA9IGdfZG9jdW1lbnQ7Ci0gICAgICAgIHN0cmluZyBsaW5lOwotICAgICAgICBpZiAoZG9jLT5pdGVtX3R5cGUgPT0gVVNFUl9EQVRBX1RZUEUpIHsKLSAgICAgICAgICAgIHVzZXJfZGF0YV90eXBlKiBwYXJjZWxhYmxlID0gKHVzZXJfZGF0YV90eXBlKilkb2M7Ci0gICAgICAgICAgICBpZiAoKHBhcmNlbGFibGUtPmZsYXR0ZW5pbmdfbWV0aG9kcyAmIFBBUkNFTEFCTEVfREFUQSkgIT0gMCkgewotICAgICAgICAgICAgICAgIGxpbmUgPSAicGFyY2VsYWJsZSAiOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKChwYXJjZWxhYmxlLT5mbGF0dGVuaW5nX21ldGhvZHMgJiBSUENfREFUQSkgIT0gMCkgewotICAgICAgICAgICAgICAgIGxpbmUgPSAiZmxhdHRlbmFibGUgIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChwYXJjZWxhYmxlLT5wYWNrYWdlKSB7Ci0gICAgICAgICAgICAgICAgbGluZSArPSBwYXJjZWxhYmxlLT5wYWNrYWdlOwotICAgICAgICAgICAgICAgIGxpbmUgKz0gJy4nOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbGluZSArPSBwYXJjZWxhYmxlLT5uYW1lLmRhdGE7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsaW5lID0gImludGVyZmFjZSAiOwotICAgICAgICAgICAgaW50ZXJmYWNlX3R5cGUqIGlmYWNlID0gKGludGVyZmFjZV90eXBlKilkb2M7Ci0gICAgICAgICAgICBpZiAoaWZhY2UtPnBhY2thZ2UpIHsKLSAgICAgICAgICAgICAgICBsaW5lICs9IGlmYWNlLT5wYWNrYWdlOwotICAgICAgICAgICAgICAgIGxpbmUgKz0gJy4nOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbGluZSArPSBpZmFjZS0+bmFtZS5kYXRhOwotICAgICAgICB9Ci0gICAgICAgIGxpbmUgKz0gIjtcbiI7Ci0gICAgICAgIGxpbmVzLnB1c2hfYmFjayhsaW5lKTsKLSAgICB9Ci0KLSAgICAvLyB3cml0ZSBwcmVwcm9jZXNzZWQgZmlsZQotICAgIGludCBmZCA9IG9wZW4oIG9wdGlvbnMub3V0cHV0RmlsZU5hbWUuY19zdHIoKSwKLSAgICAgICAgICAgICAgICAgICBPX1JEV1J8T19DUkVBVHxPX1RSVU5DfE9fQklOQVJZLAotI2lmZGVmIEhBVkVfTVNfQ19SVU5USU1FCi0gICAgICAgICAgICAgICAgICAgX1NfSVJFQUR8X1NfSVdSSVRFKTsKLSNlbHNlCi0gICAgICAgICAgICAgICAgICAgU19JUlVTUnxTX0lXVVNSfFNfSVJHUlApOwotI2VuZGlmCi0gICAgaWYgKGZkID09IC0xKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiYWlkbDogY291bGQgbm90IG9wZW4gZmlsZSBmb3Igd3JpdGU6ICVzXG4iLAotICAgICAgICAgICAgICAgIG9wdGlvbnMub3V0cHV0RmlsZU5hbWUuY19zdHIoKSk7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIE4gPSBsaW5lcy5zaXplKCk7Ci0gICAgZm9yIChpbnQgaT0wOyBpPE47IGkrKykgewotICAgICAgICBjb25zdCBzdHJpbmcmIHMgPSBsaW5lc1tpXTsKLSAgICAgICAgaW50IGxlbiA9IHMubGVuZ3RoKCk7Ci0gICAgICAgIGlmIChsZW4gIT0gd3JpdGUoZmQsIHMuY19zdHIoKSwgbGVuKSkgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJhaWRsOiBlcnJvciB3cml0aW5nIHRvIGZpbGUgJXNcbiIsCi0gICAgICAgICAgICAgICAgb3B0aW9ucy5vdXRwdXRGaWxlTmFtZS5jX3N0cigpKTsKLSAgICAgICAgICAgIGNsb3NlKGZkKTsKLSAgICAgICAgICAgIHVubGluayhvcHRpb25zLm91dHB1dEZpbGVOYW1lLmNfc3RyKCkpOwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBjbG9zZShmZCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLWludAotbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCi17Ci0gICAgT3B0aW9ucyBvcHRpb25zOwotICAgIGludCByZXN1bHQgPSBwYXJzZV9vcHRpb25zKGFyZ2MsIGFyZ3YsICZvcHRpb25zKTsKLSAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgc3dpdGNoIChvcHRpb25zLnRhc2spCi0gICAgewotICAgICAgICBjYXNlIENPTVBJTEVfQUlETDoKLSAgICAgICAgICAgIHJldHVybiBjb21waWxlX2FpZGwob3B0aW9ucyk7Ci0gICAgICAgIGNhc2UgUFJFUFJPQ0VTU19BSURMOgotICAgICAgICAgICAgcmV0dXJuIHByZXByb2Nlc3NfYWlkbChvcHRpb25zKTsKLSAgICB9Ci0gICAgZnByaW50ZihzdGRlcnIsICJhaWRsOiBpbnRlcm5hbCBlcnJvclxuIik7Ci0gICAgcmV0dXJuIDE7Ci19CmRpZmYgLS1naXQgYS90b29scy9haWRsL2FpZGxfbGFuZ3VhZ2UuY3BwIGIvdG9vbHMvYWlkbC9haWRsX2xhbmd1YWdlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Q2YTNiZC4uMDAwMDAwMAotLS0gYS90b29scy9haWRsL2FpZGxfbGFuZ3VhZ2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotI2luY2x1ZGUgImFpZGxfbGFuZ3VhZ2UuaCIKLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotCi0jaWZkZWYgSEFWRV9NU19DX1JVTlRJTUUKLWludCBpc2F0dHkoaW50ICBmZCkKLXsKLSAgICByZXR1cm4gKGZkID09IDApOwotfQotI2VuZGlmCi0KLSNpZiAwCi1QYXJzZXJDYWxsYmFja3Mga19wYXJzZXJDYWxsYmFja3MgPSB7Ci0gICAgTlVMTAotfTsKLSNlbmRpZgotCi1QYXJzZXJDYWxsYmFja3MqIGdfY2FsbGJhY2tzID0gTlVMTDsgLy8gJmtfcGFyc2VyQ2FsbGJhY2tzOwotCmRpZmYgLS1naXQgYS90b29scy9haWRsL2FpZGxfbGFuZ3VhZ2UuaCBiL3Rvb2xzL2FpZGwvYWlkbF9sYW5ndWFnZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTEzNzBjLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FpZGwvYWlkbF9sYW5ndWFnZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTcyICswLDAgQEAKLSNpZm5kZWYgREVWSUNFX1RPT0xTX0FJRExfQUlETF9MQU5HVUFHRV9ICi0jZGVmaW5lIERFVklDRV9UT09MU19BSURMX0FJRExfTEFOR1VBR0VfSAotCi0KLXR5cGVkZWYgZW51bSB7Ci0gICAgTk9fRVhUUkFfVEVYVCA9IDAsCi0gICAgU0hPUlRfQ09NTUVOVCwKLSAgICBMT05HX0NPTU1FTlQsCi0gICAgQ09QWV9URVhULAotICAgIFdISVRFU1BBQ0UKLX0gd2hpY2hfZXh0cmFfdGV4dDsKLQotdHlwZWRlZiBzdHJ1Y3QgZXh0cmFfdGV4dF90eXBlIHsKLSAgICB1bnNpZ25lZCBsaW5lbm87Ci0gICAgd2hpY2hfZXh0cmFfdGV4dCB3aGljaDsKLSAgICBjaGFyKiBkYXRhOyAKLSAgICB1bnNpZ25lZCBsZW47Ci0gICAgc3RydWN0IGV4dHJhX3RleHRfdHlwZSogbmV4dDsKLX0gZXh0cmFfdGV4dF90eXBlOwotCi10eXBlZGVmIHN0cnVjdCBidWZmZXJfdHlwZSB7Ci0gICAgdW5zaWduZWQgbGluZW5vOwotICAgIHVuc2lnbmVkIHRva2VuOwotICAgIGNoYXIgKmRhdGE7Ci0gICAgZXh0cmFfdGV4dF90eXBlKiBleHRyYTsKLX0gYnVmZmVyX3R5cGU7Ci0KLXR5cGVkZWYgc3RydWN0IHR5cGVfdHlwZSB7Ci0gICAgYnVmZmVyX3R5cGUgdHlwZTsKLSAgICBidWZmZXJfdHlwZSBhcnJheV90b2tlbjsKLSAgICBpbnQgZGltZW5zaW9uOwotfSB0eXBlX3R5cGU7Ci0KLXR5cGVkZWYgc3RydWN0IGFyZ190eXBlIHsKLSAgICBidWZmZXJfdHlwZSBjb21tYV90b2tlbjsgLy8gZW1wdHkgaW4gdGhlIGZpcnN0IG9uZSBpbiB0aGUgbGlzdAotICAgIGJ1ZmZlcl90eXBlIGRpcmVjdGlvbjsKLSAgICB0eXBlX3R5cGUgdHlwZTsKLSAgICBidWZmZXJfdHlwZSBuYW1lOwotICAgIHN0cnVjdCBhcmdfdHlwZSAqbmV4dDsKLX0gYXJnX3R5cGU7Ci0KLWVudW0gewotICAgIE1FVEhPRF9UWVBFCi19OwotCi10eXBlZGVmIHN0cnVjdCBpbnRlcmZhY2VfaXRlbV90eXBlIHsKLSAgICB1bnNpZ25lZCBpdGVtX3R5cGU7Ci0gICAgc3RydWN0IGludGVyZmFjZV9pdGVtX3R5cGUqIG5leHQ7Ci19IGludGVyZmFjZV9pdGVtX3R5cGU7Ci0KLXR5cGVkZWYgc3RydWN0IG1ldGhvZF90eXBlIHsKLSAgICBpbnRlcmZhY2VfaXRlbV90eXBlIGludGVyZmFjZV9pdGVtOwotICAgIHR5cGVfdHlwZSB0eXBlOwotICAgIGJvb2wgb25ld2F5OwotICAgIGJ1ZmZlcl90eXBlIG9uZXdheV90b2tlbjsKLSAgICBidWZmZXJfdHlwZSBuYW1lOwotICAgIGJ1ZmZlcl90eXBlIG9wZW5fcGFyZW5fdG9rZW47Ci0gICAgYXJnX3R5cGUqIGFyZ3M7Ci0gICAgYnVmZmVyX3R5cGUgY2xvc2VfcGFyZW5fdG9rZW47Ci0gICAgYm9vbCBoYXNJZDsKLSAgICBidWZmZXJfdHlwZSBlcXVhbHNfdG9rZW47Ci0gICAgYnVmZmVyX3R5cGUgaWQ7Ci0gICAgLy8gWFhYIG1pc3NpbmcgY29tbWVudHMvY29weSB0ZXh0IGhlcmUKLSAgICBidWZmZXJfdHlwZSBzZW1pY29sb25fdG9rZW47Ci0gICAgYnVmZmVyX3R5cGUqIGNvbW1lbnRzX3Rva2VuOyAvLyBwb2ludHMgaW50byB0aGlzIHN0cnVjdHVyZSwgRE8gTk9UIERFTEVURQotICAgIGludCBhc3NpZ25lZF9pZDsKLX0gbWV0aG9kX3R5cGU7Ci0KLWVudW0gewotICAgIFVTRVJfREFUQV9UWVBFID0gMTIsCi0gICAgSU5URVJGQUNFX1RZUEVfQklOREVSLAotICAgIElOVEVSRkFDRV9UWVBFX1JQQwotfTsKLQotdHlwZWRlZiBzdHJ1Y3QgZG9jdW1lbnRfaXRlbV90eXBlIHsKLSAgICB1bnNpZ25lZCBpdGVtX3R5cGU7Ci0gICAgc3RydWN0IGRvY3VtZW50X2l0ZW1fdHlwZSogbmV4dDsKLX0gZG9jdW1lbnRfaXRlbV90eXBlOwotCi0KLS8vIGZvciB1c2VyX2RhdGFfdHlwZS5mbGF0dGVuaW5nX21ldGhvZHMKLWVudW0gewotICAgIFBBUkNFTEFCTEVfREFUQSA9IDB4MSwKLSAgICBSUENfREFUQSA9IDB4MgotfTsKLQotdHlwZWRlZiBzdHJ1Y3QgdXNlcl9kYXRhX3R5cGUgewotICAgIGRvY3VtZW50X2l0ZW1fdHlwZSBkb2N1bWVudF9pdGVtOwotICAgIGJ1ZmZlcl90eXBlIGtleXdvcmRfdG9rZW47IC8vIG9ubHkgdGhlIGZpcnN0IG9uZQotICAgIGNoYXIqIHBhY2thZ2U7Ci0gICAgYnVmZmVyX3R5cGUgbmFtZTsKLSAgICBidWZmZXJfdHlwZSBzZW1pY29sb25fdG9rZW47Ci0gICAgaW50IGZsYXR0ZW5pbmdfbWV0aG9kczsKLX0gdXNlcl9kYXRhX3R5cGU7Ci0KLXR5cGVkZWYgc3RydWN0IGludGVyZmFjZV90eXBlIHsKLSAgICBkb2N1bWVudF9pdGVtX3R5cGUgZG9jdW1lbnRfaXRlbTsKLSAgICBidWZmZXJfdHlwZSBpbnRlcmZhY2VfdG9rZW47Ci0gICAgYm9vbCBvbmV3YXk7Ci0gICAgYnVmZmVyX3R5cGUgb25ld2F5X3Rva2VuOwotICAgIGNoYXIqIHBhY2thZ2U7Ci0gICAgYnVmZmVyX3R5cGUgbmFtZTsKLSAgICBidWZmZXJfdHlwZSBvcGVuX2JyYWNlX3Rva2VuOwotICAgIGludGVyZmFjZV9pdGVtX3R5cGUqIGludGVyZmFjZV9pdGVtczsKLSAgICBidWZmZXJfdHlwZSBjbG9zZV9icmFjZV90b2tlbjsKLSAgICBidWZmZXJfdHlwZSogY29tbWVudHNfdG9rZW47IC8vIHBvaW50cyBpbnRvIHRoaXMgc3RydWN0dXJlLCBETyBOT1QgREVMRVRFCi19IGludGVyZmFjZV90eXBlOwotCi10eXBlZGVmIHVuaW9uIGxleGVyX3R5cGUgewotICAgIGJ1ZmZlcl90eXBlIGJ1ZmZlcjsKLSAgICB0eXBlX3R5cGUgdHlwZTsKLSAgICBhcmdfdHlwZSAqYXJnOwotICAgIG1ldGhvZF90eXBlKiBtZXRob2Q7Ci0gICAgaW50ZXJmYWNlX2l0ZW1fdHlwZSogaW50ZXJmYWNlX2l0ZW07Ci0gICAgaW50ZXJmYWNlX3R5cGUqIGludGVyZmFjZV9vYmo7Ci0gICAgdXNlcl9kYXRhX3R5cGUqIHVzZXJfZGF0YTsKLSAgICBkb2N1bWVudF9pdGVtX3R5cGUqIGRvY3VtZW50X2l0ZW07Ci19IGxleGVyX3R5cGU7Ci0KLQotI2RlZmluZSBZWVNUWVBFIGxleGVyX3R5cGUKLQotI2lmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi1pbnQgcGFyc2VfYWlkbChjaGFyIGNvbnN0ICopOwotCi0vLyBzdHJpcHMgb2ZmIHRoZSBsZWFkaW5nIHdoaXRlc3BhY2UsIHRoZSAiaW1wb3J0IiB0ZXh0Ci0vLyBhbHNvIHJldHVybnMgd2hldGhlciBpdCdzIGEgbG9jYWwgb3Igc3lzdGVtIGltcG9ydAotLy8gd2UgcmVseSBvbiB0aGUgaW5wdXQgbWF0Y2hpbmcgdGhlIGltcG9ydCByZWdleCBmcm9tIGJlbG93Ci1jaGFyKiBwYXJzZV9pbXBvcnRfc3RhdGVtZW50KGNvbnN0IGNoYXIqIHRleHQpOwotCi0vLyBpbiwgb3V0IG9yIGlub3V0Ci1lbnVtIHsKLSAgICBJTl9QQVJBTUVURVIgPSAxLAotICAgIE9VVF9QQVJBTUVURVIgPSAyLAotICAgIElOT1VUX1BBUkFNRVRFUiA9IDMKLX07Ci1pbnQgY29udmVydF9kaXJlY3Rpb24oY29uc3QgY2hhciogZGlyZWN0aW9uKTsKLQotLy8gY2FsbGJhY2tzIGZyb20gd2l0aGluIHRoZSBwYXJzZXIKLS8vIHRoZXNlIGZ1bmN0aW9ucyBhbGwgdGFrZSBvd25lcnNoaXAgb2YgdGhlIHN0cmluZ3MKLXR5cGVkZWYgc3RydWN0IFBhcnNlckNhbGxiYWNrcyB7Ci0gICAgdm9pZCAoKmRvY3VtZW50KShkb2N1bWVudF9pdGVtX3R5cGUqIGl0ZW1zKTsKLSAgICB2b2lkICgqaW1wb3J0KShidWZmZXJfdHlwZSogc3RhdGVtZW50KTsKLX0gUGFyc2VyQ2FsbGJhY2tzOwotCi1leHRlcm4gUGFyc2VyQ2FsbGJhY2tzKiBnX2NhbGxiYWNrczsKLQotLy8gdHJ1ZSBpZiB0aGVyZSB3YXMgYW4gZXJyb3IgcGFyc2luZywgZmFsc2Ugb3RoZXJ3aXNlCi1leHRlcm4gaW50IGdfZXJyb3I7Ci0KLS8vIHRoZSBuYW1lIG9mIHRoZSBmaWxlIHdlJ3JlIGN1cnJlbnRseSBwYXJzaW5nCi1leHRlcm4gY2hhciBjb25zdCogZ19jdXJyZW50RmlsZW5hbWU7Ci0KLS8vIHRoZSBwYWNrYWdlIG5hbWUgZm9yIG91ciBjdXJyZW50IGZpbGUKLWV4dGVybiBjaGFyIGNvbnN0KiBnX2N1cnJlbnRQYWNrYWdlOwotCi10eXBlZGVmIGVudW0gewotICAgIFNUQVRFTUVOVF9JTlNJREVfSU5URVJGQUNFCi19IGVycm9yX3R5cGU7Ci0KLXZvaWQgaW5pdF9idWZmZXJfdHlwZShidWZmZXJfdHlwZSogYnVmLCBpbnQgbGluZW5vKTsKLQotCi0jaWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0KLSNlbmRpZiAvLyBERVZJQ0VfVE9PTFNfQUlETF9BSURMX0xBTkdVQUdFX0gKZGlmZiAtLWdpdCBhL3Rvb2xzL2FpZGwvYWlkbF9sYW5ndWFnZV9sLmwgYi90b29scy9haWRsL2FpZGxfbGFuZ3VhZ2VfbC5sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDMzZTdhLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FpZGwvYWlkbF9sYW5ndWFnZV9sLmwKKysrIC9kZXYvbnVsbApAQCAtMSwyMTQgKzAsMCBAQAotJXsKLSNpbmNsdWRlICJhaWRsX2xhbmd1YWdlLmgiCi0jaW5jbHVkZSAiYWlkbF9sYW5ndWFnZV95LmgiCi0jaW5jbHVkZSAic2VhcmNoX3BhdGguaCIKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLQotZXh0ZXJuIFlZU1RZUEUgeXlsdmFsOwotCi0vLyBjb21tZW50IGFuZCB3aGl0ZXNwYWNlIGhhbmRsaW5nCi0vLyB0aGVzZSBmdW5jdGlvbnMgc2F2ZSBhIGNvcHkgb2YgdGhlIGJ1ZmZlcgotc3RhdGljIHZvaWQgYmVnaW5fZXh0cmFfdGV4dCh1bnNpZ25lZCBsaW5lbm8sIHdoaWNoX2V4dHJhX3RleHQgd2hpY2gpOwotc3RhdGljIHZvaWQgYXBwZW5kX2V4dHJhX3RleHQoY2hhciogdGV4dCk7Ci1zdGF0aWMgZXh0cmFfdGV4dF90eXBlKiBnZXRfZXh0cmFfdGV4dCh2b2lkKTsgICAvLyB5b3Ugbm93IG93biB0aGUgb2JqZWN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHJldHVybnMKLXN0YXRpYyB2b2lkIGRyb3BfZXh0cmFfdGV4dCh2b2lkKTsKLQotLy8gcGFja2FnZSBoYW5kbGluZwotc3RhdGljIHZvaWQgZG9fcGFja2FnZV9zdGF0ZW1lbnQoY29uc3QgY2hhciogaW1wb3J0VGV4dCk7Ci0KLSNkZWZpbmUgU0VUX0JVRkZFUih0KSBcCi0gICAgZG8geyBcCi0gICAgICAgIHl5bHZhbC5idWZmZXIubGluZW5vID0geXlsaW5lbm87IFwKLSAgICAgICAgeXlsdmFsLmJ1ZmZlci50b2tlbiA9ICh0KTsgXAotICAgICAgICB5eWx2YWwuYnVmZmVyLmRhdGEgPSBzdHJkdXAoeXl0ZXh0KTsgXAotICAgICAgICB5eWx2YWwuYnVmZmVyLmV4dHJhID0gZ2V0X2V4dHJhX3RleHQoKTsgXAotICAgIH0gd2hpbGUoMCkKLQotJX0KLQotJW9wdGlvbiB5eWxpbmVubwotJW9wdGlvbiBub3l5d3JhcAotCi0leCBDT1BZSU5HIExPTkdfQ09NTUVOVAotCi1pZGVudGlmaWVyICBbX2EtekEtWl1bX2EtekEtWjAtOVwuXSoKLXdoaXRlc3BhY2UgIChbIFx0XG5ccl0rKQotYnJhY2tldHMgICAgXFt7d2hpdGVzcGFjZX0/XF0KLWlkdmFsdWUgICAgICgwfFsxLTldWzAtOV0qKQotCi0lJQotCi0KLVwlXCVceyAgICAgICAgICAgICAgeyBiZWdpbl9leHRyYV90ZXh0KHl5bGluZW5vLCBDT1BZX1RFWFQpOyBCRUdJTihDT1BZSU5HKTsgfQotPENPUFlJTkc+XH1cJVwlICAgICB7IEJFR0lOKElOSVRJQUwpOyB9Ci08Q09QWUlORz4uKlxuICAgICAgIHsgYXBwZW5kX2V4dHJhX3RleHQoeXl0ZXh0KTsgfQotPENPUFlJTkc+LiogICAgICAgICB7IGFwcGVuZF9leHRyYV90ZXh0KHl5dGV4dCk7IH0KLTxDT1BZSU5HPlxuKyAgICAgICAgeyBhcHBlbmRfZXh0cmFfdGV4dCh5eXRleHQpOyB9Ci0KLQotXC9cKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGJlZ2luX2V4dHJhX3RleHQoeXlsaW5lbm8sICh3aGljaF9leHRyYV90ZXh0KUxPTkdfQ09NTUVOVCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkVHSU4oTE9OR19DT01NRU5UKTsgfQotPExPTkdfQ09NTUVOVD5bXipdKiAgICAgICAgICAgICB7IGFwcGVuZF9leHRyYV90ZXh0KHl5dGV4dCk7IH0KLTxMT05HX0NPTU1FTlQ+XCorW14vXSAgICAgICAgICAgeyBhcHBlbmRfZXh0cmFfdGV4dCh5eXRleHQpOyB9Ci08TE9OR19DT01NRU5UPlxuICAgICAgICAgICAgICAgIHsgYXBwZW5kX2V4dHJhX3RleHQoeXl0ZXh0KTsgfQotPExPTkdfQ09NTUVOVD5cKipcLyAgICAgICAgICAgICB7IEJFR0lOKElOSVRJQUwpOyB9Ci0KLV57d2hpdGVzcGFjZX0/aW1wb3J0e3doaXRlc3BhY2V9W14gXHRcclxuXSt7d2hpdGVzcGFjZX0/OyAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUX0JVRkZFUihJTVBPUlQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElNUE9SVDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotXnt3aGl0ZXNwYWNlfT9wYWNrYWdle3doaXRlc3BhY2V9W14gXHRcclxuXSt7d2hpdGVzcGFjZX0/OyAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9fcGFja2FnZV9zdGF0ZW1lbnQoeXl0ZXh0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9CVUZGRVIoUEFDS0FHRSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUEFDS0FHRTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotPDxFT0Y+PiAgICAgICAgICAgICB7IHl5dGVybWluYXRlKCk7IH0KLQotXC9cLy4qXG4gICAgICAgICAgICB7IGJlZ2luX2V4dHJhX3RleHQoeXlsaW5lbm8sIFNIT1JUX0NPTU1FTlQpOwotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kX2V4dHJhX3RleHQoeXl0ZXh0KTsgfQotCi17d2hpdGVzcGFjZX0gICAgeyAvKiBiZWdpbl9leHRyYV90ZXh0KHl5bGluZW5vLCBXSElURVNQQUNFKTsKLSAgICAgICAgICAgICAgICAgICAgYXBwZW5kX2V4dHJhX3RleHQoeXl0ZXh0KTsgKi8gfQotCi07ICAgICAgICAgICAgICAgeyBTRVRfQlVGRkVSKCc7Jyk7IHJldHVybiAnOyc7IH0KLVx7ICAgICAgICAgICAgICB7IFNFVF9CVUZGRVIoJ3snKTsgcmV0dXJuICd7JzsgfQotXH0gICAgICAgICAgICAgIHsgU0VUX0JVRkZFUignfScpOyByZXR1cm4gJ30nOyB9Ci1cKCAgICAgICAgICAgICAgeyBTRVRfQlVGRkVSKCcoJyk7IHJldHVybiAnKCc7IH0KLVwpICAgICAgICAgICAgICB7IFNFVF9CVUZGRVIoJyknKTsgcmV0dXJuICcpJzsgfQotLCAgICAgICAgICAgICAgIHsgU0VUX0JVRkZFUignLCcpOyByZXR1cm4gJywnOyB9Ci09ICAgICAgICAgICAgICAgeyBTRVRfQlVGRkVSKCc9Jyk7IHJldHVybiAnPSc7IH0KLQotICAgIC8qIGtleXdvcmRzICovCi1wYXJjZWxhYmxlICAgICAgeyBTRVRfQlVGRkVSKFBBUkNFTEFCTEUpOyByZXR1cm4gUEFSQ0VMQUJMRTsgfQotaW50ZXJmYWNlICAgICAgIHsgU0VUX0JVRkZFUihJTlRFUkZBQ0UpOyByZXR1cm4gSU5URVJGQUNFOyB9Ci1mbGF0dGVuYWJsZSAgICAgeyBTRVRfQlVGRkVSKEZMQVRURU5BQkxFKTsgcmV0dXJuIEZMQVRURU5BQkxFOyB9Ci1ycGMgICAgICAgICAgICAgeyBTRVRfQlVGRkVSKElOVEVSRkFDRSk7IHJldHVybiBSUEM7IH0KLWluICAgICAgICAgICAgICB7IFNFVF9CVUZGRVIoSU4pOyByZXR1cm4gSU47IH0KLW91dCAgICAgICAgICAgICB7IFNFVF9CVUZGRVIoT1VUKTsgcmV0dXJuIE9VVDsgfQotaW5vdXQgICAgICAgICAgIHsgU0VUX0JVRkZFUihJTk9VVCk7IHJldHVybiBJTk9VVDsgfQotb25ld2F5ICAgICAgICAgIHsgU0VUX0JVRkZFUihPTkVXQVkpOyByZXR1cm4gT05FV0FZOyB9Ci0KLXticmFja2V0c30rICAgICB7IFNFVF9CVUZGRVIoQVJSQVkpOyByZXR1cm4gQVJSQVk7IH0KLXtpZHZhbHVlfSAgICAgICB7IFNFVF9CVUZGRVIoSURWQUxVRSk7IHJldHVybiBJRFZBTFVFOyB9Ci17aWRlbnRpZmllcn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBTRVRfQlVGRkVSKElERU5USUZJRVIpOyByZXR1cm4gSURFTlRJRklFUjsgfQote2lkZW50aWZpZXJ9XDx7d2hpdGVzcGFjZX0qe2lkZW50aWZpZXJ9KHt3aGl0ZXNwYWNlfSose3doaXRlc3BhY2V9KntpZGVudGlmaWVyfSkqe3doaXRlc3BhY2V9Klw+ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9CVUZGRVIoR0VORVJJQyk7IHJldHVybiBHRU5FUklDOyB9Ci0KLSAgICAvKiBzeW50YXggZXJyb3IhICovCi0uICAgICAgICAgICAgICAgeyBwcmludGYoIlVOS05PV04oJXMpIiwgeXl0ZXh0KTsKLSAgICAgICAgICAgICAgICAgIHl5bHZhbC5idWZmZXIubGluZW5vID0geXlsaW5lbm87Ci0gICAgICAgICAgICAgICAgICB5eWx2YWwuYnVmZmVyLnRva2VuID0gSURFTlRJRklFUjsKLSAgICAgICAgICAgICAgICAgIHl5bHZhbC5idWZmZXIuZGF0YSA9IHN0cmR1cCh5eXRleHQpOwotICAgICAgICAgICAgICAgICAgcmV0dXJuIElERU5USUZJRVI7Ci0gICAgICAgICAgICAgICAgfQotCi0lJQotCi0vLyBjb21tZW50IGFuZCB3aGl0ZXNwYWNlIGhhbmRsaW5nCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLWV4dHJhX3RleHRfdHlwZSogZ19leHRyYVRleHQgPSBOVUxMOwotZXh0cmFfdGV4dF90eXBlKiBnX25leHRFeHRyYVRleHQgPSBOVUxMOwotCi12b2lkIGJlZ2luX2V4dHJhX3RleHQodW5zaWduZWQgbGluZW5vLCB3aGljaF9leHRyYV90ZXh0IHdoaWNoKQotewotICAgIGV4dHJhX3RleHRfdHlwZSogdGV4dCA9IChleHRyYV90ZXh0X3R5cGUqKW1hbGxvYyhzaXplb2YoZXh0cmFfdGV4dF90eXBlKSk7Ci0gICAgdGV4dC0+bGluZW5vID0gbGluZW5vOwotICAgIHRleHQtPndoaWNoID0gd2hpY2g7Ci0gICAgdGV4dC0+ZGF0YSA9IE5VTEw7Ci0gICAgdGV4dC0+bGVuID0gMDsKLSAgICB0ZXh0LT5uZXh0ID0gTlVMTDsKLSAgICBpZiAoZ19uZXh0RXh0cmFUZXh0ID09IE5VTEwpIHsKLSAgICAgICAgZ19leHRyYVRleHQgPSB0ZXh0OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGdfbmV4dEV4dHJhVGV4dC0+bmV4dCA9IHRleHQ7Ci0gICAgfQotICAgIGdfbmV4dEV4dHJhVGV4dCA9IHRleHQ7Ci19Ci0KLXZvaWQgYXBwZW5kX2V4dHJhX3RleHQoY2hhciogdGV4dCkKLXsKLSAgICBpZiAoZ19uZXh0RXh0cmFUZXh0LT5kYXRhID09IE5VTEwpIHsKLSAgICAgICAgZ19uZXh0RXh0cmFUZXh0LT5kYXRhID0gc3RyZHVwKHRleHQpOwotICAgICAgICBnX25leHRFeHRyYVRleHQtPmxlbiA9IHN0cmxlbih0ZXh0KTsKLSAgICB9IGVsc2UgewotICAgICAgICBjaGFyKiBvcmlnID0gZ19uZXh0RXh0cmFUZXh0LT5kYXRhOwotICAgICAgICB1bnNpZ25lZCBvbGRMZW4gPSBnX25leHRFeHRyYVRleHQtPmxlbjsKLSAgICAgICAgdW5zaWduZWQgbGVuID0gc3RybGVuKHRleHQpOwotICAgICAgICBnX25leHRFeHRyYVRleHQtPmxlbiArPSBsZW47Ci0gICAgICAgIGdfbmV4dEV4dHJhVGV4dC0+ZGF0YSA9IChjaGFyKiltYWxsb2MoZ19uZXh0RXh0cmFUZXh0LT5sZW4rMSk7Ci0gICAgICAgIG1lbWNweShnX25leHRFeHRyYVRleHQtPmRhdGEsIG9yaWcsIG9sZExlbik7Ci0gICAgICAgIG1lbWNweShnX25leHRFeHRyYVRleHQtPmRhdGErb2xkTGVuLCB0ZXh0LCBsZW4pOwotICAgICAgICBnX25leHRFeHRyYVRleHQtPmRhdGFbZ19uZXh0RXh0cmFUZXh0LT5sZW5dID0gJ1wwJzsKLSAgICAgICAgZnJlZShvcmlnKTsKLSAgICB9Ci19Ci0KLWV4dHJhX3RleHRfdHlwZSoKLWdldF9leHRyYV90ZXh0KHZvaWQpCi17Ci0gICAgZXh0cmFfdGV4dF90eXBlKiByZXN1bHQgPSBnX2V4dHJhVGV4dDsKLSAgICBnX2V4dHJhVGV4dCA9IE5VTEw7Ci0gICAgZ19uZXh0RXh0cmFUZXh0ID0gTlVMTDsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lkIGRyb3BfZXh0cmFfdGV4dCh2b2lkKQotewotICAgIGV4dHJhX3RleHRfdHlwZSogcCA9IGdfZXh0cmFUZXh0OwotICAgIHdoaWxlIChwKSB7Ci0gICAgICAgIGV4dHJhX3RleHRfdHlwZSogbmV4dCA9IHAtPm5leHQ7Ci0gICAgICAgIGZyZWUocC0+ZGF0YSk7Ci0gICAgICAgIGZyZWUocCk7Ci0gICAgICAgIGZyZWUobmV4dCk7Ci0gICAgfQotICAgIGdfZXh0cmFUZXh0ID0gTlVMTDsKLSAgICBnX25leHRFeHRyYVRleHQgPSBOVUxMOwotfQotCi0KLS8vIHBhY2thZ2UgaGFuZGxpbmcKLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotdm9pZCBkb19wYWNrYWdlX3N0YXRlbWVudChjb25zdCBjaGFyKiBpbXBvcnRUZXh0KQotewotICAgIGlmIChnX2N1cnJlbnRQYWNrYWdlKSBmcmVlKCh2b2lkKilnX2N1cnJlbnRQYWNrYWdlKTsKLSAgICBnX2N1cnJlbnRQYWNrYWdlID0gcGFyc2VfaW1wb3J0X3N0YXRlbWVudChpbXBvcnRUZXh0KTsKLX0KLQotCi0vLyBtYWluIHBhcnNlIGZ1bmN0aW9uCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLWNoYXIgY29uc3QqIGdfY3VycmVudEZpbGVuYW1lID0gTlVMTDsKLWNoYXIgY29uc3QqIGdfY3VycmVudFBhY2thZ2UgPSBOVUxMOwotCi1pbnQgeXlwYXJzZSh2b2lkKTsKLQotaW50IHBhcnNlX2FpZGwoY2hhciBjb25zdCAqZmlsZW5hbWUpCi17Ci0gICAgeXlpbiA9IGZvcGVuKGZpbGVuYW1lLCAiciIpOwotICAgIGlmICh5eWluKSB7Ci0gICAgICAgIGNoYXIgY29uc3QqIG9sZEZpbGVuYW1lID0gZ19jdXJyZW50RmlsZW5hbWU7Ci0gICAgICAgIGNoYXIgY29uc3QqIG9sZFBhY2thZ2UgPSBnX2N1cnJlbnRQYWNrYWdlOwotICAgICAgICBnX2N1cnJlbnRGaWxlbmFtZSA9IHN0cmR1cChmaWxlbmFtZSk7Ci0KLSAgICAgICAgZ19lcnJvciA9IDA7Ci0gICAgICAgIHl5bGluZW5vID0gMTsKLSAgICAgICAgaW50IHJ2ID0geXlwYXJzZSgpOwotICAgICAgICBpZiAoZ19lcnJvciAhPSAwKSB7Ci0gICAgICAgICAgICBydiA9IGdfZXJyb3I7Ci0gICAgICAgIH0KLQotICAgICAgICBmcmVlKCh2b2lkKilnX2N1cnJlbnRGaWxlbmFtZSk7Ci0gICAgICAgIGdfY3VycmVudEZpbGVuYW1lID0gb2xkRmlsZW5hbWU7Ci0gICAgICAgIAotICAgICAgICBpZiAoZ19jdXJyZW50UGFja2FnZSkgZnJlZSgodm9pZCopZ19jdXJyZW50UGFja2FnZSk7Ci0gICAgICAgIGdfY3VycmVudFBhY2thZ2UgPSBvbGRQYWNrYWdlOwotCi0gICAgICAgIHJldHVybiBydjsKLSAgICB9IGVsc2UgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6IHVuYWJsZSB0byBvcGVuIGZpbGUgZm9yIHJlYWQ6ICVzXG4iLCBmaWxlbmFtZSk7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvdG9vbHMvYWlkbC9haWRsX2xhbmd1YWdlX3kueSBiL3Rvb2xzL2FpZGwvYWlkbF9sYW5ndWFnZV95LnkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliNDBkMjguLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWlkbC9haWRsX2xhbmd1YWdlX3kueQorKysgL2Rldi9udWxsCkBAIC0xLDM3MyArMCwwIEBACi0lewotI2luY2x1ZGUgImFpZGxfbGFuZ3VhZ2UuaCIKLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotCi1pbnQgeXllcnJvcihjaGFyKiBlcnJzdHIpOwotaW50IHl5bGV4KHZvaWQpOwotZXh0ZXJuIGludCB5eWxpbmVubzsKLQotc3RhdGljIGludCBjb3VudF9icmFja2V0cyhjb25zdCBjaGFyKik7Ci0KLSV9Ci0KLSV0b2tlbiBJTVBPUlQKLSV0b2tlbiBQQUNLQUdFCi0ldG9rZW4gSURFTlRJRklFUgotJXRva2VuIElEVkFMVUUKLSV0b2tlbiBHRU5FUklDCi0ldG9rZW4gQVJSQVkKLSV0b2tlbiBQQVJDRUxBQkxFCi0ldG9rZW4gSU5URVJGQUNFCi0ldG9rZW4gRkxBVFRFTkFCTEUKLSV0b2tlbiBSUEMKLSV0b2tlbiBJTgotJXRva2VuIE9VVAotJXRva2VuIElOT1VUCi0ldG9rZW4gT05FV0FZCi0KLSUlCi1kb2N1bWVudDoKLSAgICAgICAgZG9jdW1lbnRfaXRlbXMgICAgICAgICAgICAgICAgICAgICAgICAgIHsgZ19jYWxsYmFja3MtPmRvY3VtZW50KCQxLmRvY3VtZW50X2l0ZW0pOyB9Ci0gICAgfCAgIGhlYWRlcnMgZG9jdW1lbnRfaXRlbXMgICAgICAgICAgICAgICAgICB7IGdfY2FsbGJhY2tzLT5kb2N1bWVudCgkMi5kb2N1bWVudF9pdGVtKTsgfQotICAgIDsKLQotaGVhZGVyczoKLSAgICAgICAgcGFja2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgfQotICAgIHwgICBpbXBvcnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB9Ci0gICAgfCAgIHBhY2thZ2UgaW1wb3J0cyAgICAgICAgICAgICAgICAgICAgICAgICB7IH0KLSAgICA7Ci0KLXBhY2thZ2U6Ci0gICAgICAgIFBBQ0tBR0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IH0KLSAgICA7Ci0KLWltcG9ydHM6Ci0gICAgICAgIElNUE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGdfY2FsbGJhY2tzLT5pbXBvcnQoJigkMS5idWZmZXIpKTsgfQotICAgIHwgICBJTVBPUlQgaW1wb3J0cyAgICAgICAgICAgICAgICAgICAgICAgICAgeyBnX2NhbGxiYWNrcy0+aW1wb3J0KCYoJDEuYnVmZmVyKSk7IH0KLSAgICA7Ci0KLWRvY3VtZW50X2l0ZW1zOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJC5kb2N1bWVudF9pdGVtID0gTlVMTDsgfQotICAgIHwgICBkb2N1bWVudF9pdGVtcyBkZWNsYXJhdGlvbiAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkMi5kb2N1bWVudF9pdGVtID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXJyb3IgY2FzZXMgb25seQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9ICQxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50X2l0ZW1fdHlwZSogcCA9ICQxLmRvY3VtZW50X2l0ZW07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChwICYmIHAtPm5leHQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHA9cC0+bmV4dDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC0+bmV4dCA9IChkb2N1bWVudF9pdGVtX3R5cGUqKSQyLmRvY3VtZW50X2l0ZW07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9ICQxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQuZG9jdW1lbnRfaXRlbSA9IChkb2N1bWVudF9pdGVtX3R5cGUqKSQyLmRvY3VtZW50X2l0ZW07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgfCBkb2N1bWVudF9pdGVtcyBlcnJvciAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogc3ludGF4IGVycm9yIGRvbid0IGtub3cgd2hhdCB0byBkbyB3aXRoIFwiJXNcIlxuIiwgZ19jdXJyZW50RmlsZW5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMi5idWZmZXIubGluZW5vLCAkMi5idWZmZXIuZGF0YSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSAkMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICA7Ci0KLWRlY2xhcmF0aW9uOgotICAgICAgICBwYXJjZWxhYmxlX2RlY2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJC5kb2N1bWVudF9pdGVtID0gKGRvY3VtZW50X2l0ZW1fdHlwZSopJDEudXNlcl9kYXRhOyB9Ci0gICAgfCAgIGludGVyZmFjZV9kZWNsICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkLmRvY3VtZW50X2l0ZW0gPSAoZG9jdW1lbnRfaXRlbV90eXBlKikkMS5pbnRlcmZhY2VfaXRlbTsgfQotICAgIDsKLQotcGFyY2VsYWJsZV9kZWNsOgotICAgICAgICBQQVJDRUxBQkxFIElERU5USUZJRVIgJzsnICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9kYXRhX3R5cGUqIGIgPSAodXNlcl9kYXRhX3R5cGUqKW1hbGxvYyhzaXplb2YodXNlcl9kYXRhX3R5cGUpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi0+ZG9jdW1lbnRfaXRlbS5pdGVtX3R5cGUgPSBVU0VSX0RBVEFfVFlQRTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi0+ZG9jdW1lbnRfaXRlbS5uZXh0ID0gTlVMTDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi0+a2V5d29yZF90b2tlbiA9ICQxLmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi0+bmFtZSA9ICQyLmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi0+cGFja2FnZSA9IGdfY3VycmVudFBhY2thZ2UgPyBzdHJkdXAoZ19jdXJyZW50UGFja2FnZSkgOiBOVUxMOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLT5zZW1pY29sb25fdG9rZW4gPSAkMy5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGItPmZsYXR0ZW5pbmdfbWV0aG9kcyA9IFBBUkNFTEFCTEVfREFUQTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQudXNlcl9kYXRhID0gYjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgfCAgIFBBUkNFTEFCTEUgJzsnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkIHN5bnRheCBlcnJvciBpbiBwYXJjZWxhYmxlIGRlY2xhcmF0aW9uLiBFeHBlY3RlZCB0eXBlIG5hbWUuXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19jdXJyZW50RmlsZW5hbWUsICQxLmJ1ZmZlci5saW5lbm8pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC51c2VyX2RhdGEgPSBOVUxMOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICB8ICAgUEFSQ0VMQUJMRSBlcnJvciAnOycgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6JWQgc3ludGF4IGVycm9yIGluIHBhcmNlbGFibGUgZGVjbGFyYXRpb24uIEV4cGVjdGVkIHR5cGUgbmFtZSwgc2F3IFwiJXNcIi5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX2N1cnJlbnRGaWxlbmFtZSwgJDIuYnVmZmVyLmxpbmVubywgJDIuYnVmZmVyLmRhdGEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC51c2VyX2RhdGEgPSBOVUxMOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICB8ICAgRkxBVFRFTkFCTEUgSURFTlRJRklFUiAnOycgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfZGF0YV90eXBlKiBiID0gKHVzZXJfZGF0YV90eXBlKiltYWxsb2Moc2l6ZW9mKHVzZXJfZGF0YV90eXBlKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGItPmRvY3VtZW50X2l0ZW0uaXRlbV90eXBlID0gVVNFUl9EQVRBX1RZUEU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGItPmRvY3VtZW50X2l0ZW0ubmV4dCA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGItPmtleXdvcmRfdG9rZW4gPSAkMS5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGItPm5hbWUgPSAkMi5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGItPnBhY2thZ2UgPSBnX2N1cnJlbnRQYWNrYWdlID8gc3RyZHVwKGdfY3VycmVudFBhY2thZ2UpIDogTlVMTDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi0+c2VtaWNvbG9uX3Rva2VuID0gJDMuYnVmZmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLT5mbGF0dGVuaW5nX21ldGhvZHMgPSBQQVJDRUxBQkxFX0RBVEEgfCBSUENfREFUQTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQudXNlcl9kYXRhID0gYjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgfCAgIEZMQVRURU5BQkxFICc7JyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkIHN5bnRheCBlcnJvciBpbiBmbGF0dGVuYWJsZSBkZWNsYXJhdGlvbi4gRXhwZWN0ZWQgdHlwZSBuYW1lLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfY3VycmVudEZpbGVuYW1lLCAkMS5idWZmZXIubGluZW5vKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQudXNlcl9kYXRhID0gTlVMTDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgfCAgIEZMQVRURU5BQkxFIGVycm9yICc7JyAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkIHN5bnRheCBlcnJvciBpbiBmbGF0dGVuYWJsZSBkZWNsYXJhdGlvbi4gRXhwZWN0ZWQgdHlwZSBuYW1lLCBzYXcgXCIlc1wiLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfY3VycmVudEZpbGVuYW1lLCAkMi5idWZmZXIubGluZW5vLCAkMi5idWZmZXIuZGF0YSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLnVzZXJfZGF0YSA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgOwotCi1pbnRlcmZhY2VfaGVhZGVyOgotICAgICAgICBJTlRFUkZBQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2VfdHlwZSogYyA9IChpbnRlcmZhY2VfdHlwZSopbWFsbG9jKHNpemVvZihpbnRlcmZhY2VfdHlwZSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5kb2N1bWVudF9pdGVtLml0ZW1fdHlwZSA9IElOVEVSRkFDRV9UWVBFX0JJTkRFUjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy0+ZG9jdW1lbnRfaXRlbS5uZXh0ID0gTlVMTDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy0+aW50ZXJmYWNlX3Rva2VuID0gJDEuYnVmZmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5vbmV3YXkgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCZjLT5vbmV3YXlfdG9rZW4sIDAsIHNpemVvZihidWZmZXJfdHlwZSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5jb21tZW50c190b2tlbiA9ICZjLT5pbnRlcmZhY2VfdG9rZW47Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLmludGVyZmFjZV9vYmogPSBjOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgIHwgICBPTkVXQVkgSU5URVJGQUNFICAgICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2VfdHlwZSogYyA9IChpbnRlcmZhY2VfdHlwZSopbWFsbG9jKHNpemVvZihpbnRlcmZhY2VfdHlwZSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5kb2N1bWVudF9pdGVtLml0ZW1fdHlwZSA9IElOVEVSRkFDRV9UWVBFX0JJTkRFUjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy0+ZG9jdW1lbnRfaXRlbS5uZXh0ID0gTlVMTDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy0+aW50ZXJmYWNlX3Rva2VuID0gJDIuYnVmZmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5vbmV3YXkgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5vbmV3YXlfdG9rZW4gPSAkMS5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtPmNvbW1lbnRzX3Rva2VuID0gJmMtPm9uZXdheV90b2tlbjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQuaW50ZXJmYWNlX29iaiA9IGM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgfCAgIFJQQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZV90eXBlKiBjID0gKGludGVyZmFjZV90eXBlKiltYWxsb2Moc2l6ZW9mKGludGVyZmFjZV90eXBlKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtPmRvY3VtZW50X2l0ZW0uaXRlbV90eXBlID0gSU5URVJGQUNFX1RZUEVfUlBDOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5kb2N1bWVudF9pdGVtLm5leHQgPSBOVUxMOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5pbnRlcmZhY2VfdG9rZW4gPSAkMS5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtPm9uZXdheSA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1zZXQoJmMtPm9uZXdheV90b2tlbiwgMCwgc2l6ZW9mKGJ1ZmZlcl90eXBlKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtPmNvbW1lbnRzX3Rva2VuID0gJmMtPmludGVyZmFjZV90b2tlbjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQuaW50ZXJmYWNlX29iaiA9IGM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgOwotCi1pbnRlcmZhY2Vfa2V5d29yZHM6Ci0gICAgICAgIElOVEVSRkFDRQotICAgIHwgICBSUEMKLSAgICA7Ci0KLWludGVyZmFjZV9kZWNsOgotICAgICAgICBpbnRlcmZhY2VfaGVhZGVyIElERU5USUZJRVIgJ3snIGludGVyZmFjZV9pdGVtcyAnfScgeyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlX3R5cGUqIGMgPSAkMS5pbnRlcmZhY2Vfb2JqOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5uYW1lID0gJDIuYnVmZmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5wYWNrYWdlID0gZ19jdXJyZW50UGFja2FnZSA/IHN0cmR1cChnX2N1cnJlbnRQYWNrYWdlKSA6IE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtPm9wZW5fYnJhY2VfdG9rZW4gPSAkMy5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtPmludGVyZmFjZV9pdGVtcyA9ICQ0LmludGVyZmFjZV9pdGVtOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLT5jbG9zZV9icmFjZV90b2tlbiA9ICQ1LmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQuaW50ZXJmYWNlX29iaiA9IGM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgIHwgICBpbnRlcmZhY2Vfa2V5d29yZHMgZXJyb3IgJ3snIGludGVyZmFjZV9pdGVtcyAnfScgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogc3ludGF4IGVycm9yIGluIGludGVyZmFjZSBkZWNsYXJhdGlvbi4gIEV4cGVjdGVkIHR5cGUgbmFtZSwgc2F3IFwiJXNcIlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19jdXJyZW50RmlsZW5hbWUsICQyLmJ1ZmZlci5saW5lbm8sICQyLmJ1ZmZlci5kYXRhKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQuZG9jdW1lbnRfaXRlbSA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgIHwgICBpbnRlcmZhY2Vfa2V5d29yZHMgZXJyb3IgJ30nICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogc3ludGF4IGVycm9yIGluIGludGVyZmFjZSBkZWNsYXJhdGlvbi4gIEV4cGVjdGVkIHR5cGUgbmFtZSwgc2F3IFwiJXNcIlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19jdXJyZW50RmlsZW5hbWUsICQyLmJ1ZmZlci5saW5lbm8sICQyLmJ1ZmZlci5kYXRhKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQuZG9jdW1lbnRfaXRlbSA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgOwotCi1pbnRlcmZhY2VfaXRlbXM6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJC5pbnRlcmZhY2VfaXRlbSA9IE5VTEw7IH0KLSAgICB8ICAgaW50ZXJmYWNlX2l0ZW1zIG1ldGhvZF9kZWNsICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZV9pdGVtX3R5cGUqIHA9JDEuaW50ZXJmYWNlX2l0ZW07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChwICYmIHAtPm5leHQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHA9cC0+bmV4dDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC0+bmV4dCA9IChpbnRlcmZhY2VfaXRlbV90eXBlKikkMi5tZXRob2Q7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9ICQxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQuaW50ZXJmYWNlX2l0ZW0gPSAoaW50ZXJmYWNlX2l0ZW1fdHlwZSopJDIubWV0aG9kOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgIHwgICBpbnRlcmZhY2VfaXRlbXMgZXJyb3IgJzsnICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogc3ludGF4IGVycm9yIGJlZm9yZSAnOycgKGV4cGVjdGVkIG1ldGhvZCBkZWNsYXJhdGlvbilcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfY3VycmVudEZpbGVuYW1lLCAkMy5idWZmZXIubGluZW5vKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSAkMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgOwotCi1tZXRob2RfZGVjbDoKLSAgICAgICAgdHlwZSBJREVOVElGSUVSICcoJyBhcmdfbGlzdCAnKScgJzsnICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZF90eXBlICptZXRob2QgPSAobWV0aG9kX3R5cGUqKW1hbGxvYyhzaXplb2YobWV0aG9kX3R5cGUpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5pbnRlcmZhY2VfaXRlbS5pdGVtX3R5cGUgPSBNRVRIT0RfVFlQRTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5pbnRlcmZhY2VfaXRlbS5uZXh0ID0gTlVMTDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5vbmV3YXkgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT50eXBlID0gJDEudHlwZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCZtZXRob2QtPm9uZXdheV90b2tlbiwgMCwgc2l6ZW9mKGJ1ZmZlcl90eXBlKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+bmFtZSA9ICQyLmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5vcGVuX3BhcmVuX3Rva2VuID0gJDMuYnVmZmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QtPmFyZ3MgPSAkNC5hcmc7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+Y2xvc2VfcGFyZW5fdG9rZW4gPSAkNS5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+aGFzSWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCZtZXRob2QtPmVxdWFsc190b2tlbiwgMCwgc2l6ZW9mKGJ1ZmZlcl90eXBlKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbXNldCgmbWV0aG9kLT5pZCwgMCwgc2l6ZW9mKGJ1ZmZlcl90eXBlKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+c2VtaWNvbG9uX3Rva2VuID0gJDYuYnVmZmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QtPmNvbW1lbnRzX3Rva2VuID0gJm1ldGhvZC0+dHlwZS50eXBlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tZXRob2QgPSBtZXRob2Q7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgIHwgICBPTkVXQVkgdHlwZSBJREVOVElGSUVSICcoJyBhcmdfbGlzdCAnKScgJzsnICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZF90eXBlICptZXRob2QgPSAobWV0aG9kX3R5cGUqKW1hbGxvYyhzaXplb2YobWV0aG9kX3R5cGUpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5pbnRlcmZhY2VfaXRlbS5pdGVtX3R5cGUgPSBNRVRIT0RfVFlQRTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5pbnRlcmZhY2VfaXRlbS5uZXh0ID0gTlVMTDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5vbmV3YXkgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QtPm9uZXdheV90b2tlbiA9ICQxLmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT50eXBlID0gJDIudHlwZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5uYW1lID0gJDMuYnVmZmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QtPm9wZW5fcGFyZW5fdG9rZW4gPSAkNC5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+YXJncyA9ICQ1LmFyZzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5jbG9zZV9wYXJlbl90b2tlbiA9ICQ2LmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5oYXNJZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1zZXQoJm1ldGhvZC0+ZXF1YWxzX3Rva2VuLCAwLCBzaXplb2YoYnVmZmVyX3R5cGUpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCZtZXRob2QtPmlkLCAwLCBzaXplb2YoYnVmZmVyX3R5cGUpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5zZW1pY29sb25fdG9rZW4gPSAkNy5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+Y29tbWVudHNfdG9rZW4gPSAmbWV0aG9kLT5vbmV3YXlfdG9rZW47Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1ldGhvZCA9IG1ldGhvZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgfCAgICB0eXBlIElERU5USUZJRVIgJygnIGFyZ19saXN0ICcpJyAnPScgSURWQUxVRSAnOycgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kX3R5cGUgKm1ldGhvZCA9IChtZXRob2RfdHlwZSopbWFsbG9jKHNpemVvZihtZXRob2RfdHlwZSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QtPmludGVyZmFjZV9pdGVtLml0ZW1fdHlwZSA9IE1FVEhPRF9UWVBFOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QtPmludGVyZmFjZV9pdGVtLm5leHQgPSBOVUxMOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QtPm9uZXdheSA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1zZXQoJm1ldGhvZC0+b25ld2F5X3Rva2VuLCAwLCBzaXplb2YoYnVmZmVyX3R5cGUpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT50eXBlID0gJDEudHlwZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5uYW1lID0gJDIuYnVmZmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QtPm9wZW5fcGFyZW5fdG9rZW4gPSAkMy5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+YXJncyA9ICQ0LmFyZzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5jbG9zZV9wYXJlbl90b2tlbiA9ICQ1LmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5oYXNJZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+ZXF1YWxzX3Rva2VuID0gJDYuYnVmZmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QtPmlkID0gJDcuYnVmZmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QtPnNlbWljb2xvbl90b2tlbiA9ICQ4LmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5jb21tZW50c190b2tlbiA9ICZtZXRob2QtPnR5cGUudHlwZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubWV0aG9kID0gbWV0aG9kOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICB8ICAgT05FV0FZIHR5cGUgSURFTlRJRklFUiAnKCcgYXJnX2xpc3QgJyknICc9JyBJRFZBTFVFICc7JyAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2RfdHlwZSAqbWV0aG9kID0gKG1ldGhvZF90eXBlKiltYWxsb2Moc2l6ZW9mKG1ldGhvZF90eXBlKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+aW50ZXJmYWNlX2l0ZW0uaXRlbV90eXBlID0gTUVUSE9EX1RZUEU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+aW50ZXJmYWNlX2l0ZW0ubmV4dCA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+b25ld2F5ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5vbmV3YXlfdG9rZW4gPSAkMS5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+dHlwZSA9ICQyLnR5cGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+bmFtZSA9ICQzLmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5vcGVuX3BhcmVuX3Rva2VuID0gJDQuYnVmZmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QtPmFyZ3MgPSAkNS5hcmc7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+Y2xvc2VfcGFyZW5fdG9rZW4gPSAkNi5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+aGFzSWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QtPmVxdWFsc190b2tlbiA9ICQ3LmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5pZCA9ICQ4LmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLT5zZW1pY29sb25fdG9rZW4gPSAkOS5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+Y29tbWVudHNfdG9rZW4gPSAmbWV0aG9kLT5vbmV3YXlfdG9rZW47Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1ldGhvZCA9IG1ldGhvZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgOwotCi1hcmdfbGlzdDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJC5hcmcgPSBOVUxMOyB9Ci0gICAgfCAgIGFyZyAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSAkMTsgfQotICAgIHwgICBhcmdfbGlzdCAnLCcgYXJnICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCQuYXJnICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IE5VTEwgb24gZXJyb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9ICQxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ190eXBlICpwID0gJDEuYXJnOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChwICYmIHAtPm5leHQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcD1wLT5uZXh0OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMy5hcmctPmNvbW1hX3Rva2VuID0gJDIuYnVmZmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAtPm5leHQgPSAkMy5hcmc7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICB8ICAgZXJyb3IgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczolZDogc3ludGF4IGVycm9yIGluIHBhcmFtZXRlciBsaXN0XG4iLCBnX2N1cnJlbnRGaWxlbmFtZSwgJDEuYnVmZmVyLmxpbmVubyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5hcmcgPSBOVUxMOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgOwotCi1hcmc6Ci0gICAgICAgIGRpcmVjdGlvbiB0eXBlIElERU5USUZJRVIgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ190eXBlKiBhcmcgPSAoYXJnX3R5cGUqKW1hbGxvYyhzaXplb2YoYXJnX3R5cGUpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbXNldCgmYXJnLT5jb21tYV90b2tlbiwgMCwgc2l6ZW9mKGJ1ZmZlcl90eXBlKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmctPmRpcmVjdGlvbiA9ICQxLmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZy0+dHlwZSA9ICQyLnR5cGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmctPm5hbWUgPSAkMy5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmctPm5leHQgPSBOVUxMOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQuYXJnID0gYXJnOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgOwotCi10eXBlOgotICAgICAgICBJREVOVElGSUVSICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC50eXBlLnR5cGUgPSAkMS5idWZmZXI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0X2J1ZmZlcl90eXBlKCYkJC50eXBlLmFycmF5X3Rva2VuLCB5eWxpbmVubyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC50eXBlLmRpbWVuc2lvbiA9IDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICB8ICAgSURFTlRJRklFUiBBUlJBWSAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQudHlwZS50eXBlID0gJDEuYnVmZmVyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQudHlwZS5hcnJheV90b2tlbiA9ICQyLmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLnR5cGUuZGltZW5zaW9uID0gY291bnRfYnJhY2tldHMoJDIuYnVmZmVyLmRhdGEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgfCAgIEdFTkVSSUMgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLnR5cGUudHlwZSA9ICQxLmJ1ZmZlcjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRfYnVmZmVyX3R5cGUoJiQkLnR5cGUuYXJyYXlfdG9rZW4sIHl5bGluZW5vKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLnR5cGUuZGltZW5zaW9uID0gMDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgIDsKLQotZGlyZWN0aW9uOgotICAgICAgICAgICAgICAgICAgICB7IGluaXRfYnVmZmVyX3R5cGUoJiQkLmJ1ZmZlciwgeXlsaW5lbm8pOyB9Ci0gICAgfCAgIElOICAgICAgICAgIHsgJCQuYnVmZmVyID0gJDEuYnVmZmVyOyB9Ci0gICAgfCAgIE9VVCAgICAgICAgIHsgJCQuYnVmZmVyID0gJDEuYnVmZmVyOyB9Ci0gICAgfCAgIElOT1VUICAgICAgIHsgJCQuYnVmZmVyID0gJDEuYnVmZmVyOyB9Ci0gICAgOwotCi0lJQotCi0jaW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotCi1pbnQgZ19lcnJvciA9IDA7Ci0KLWludCB5eWVycm9yKGNoYXIqIGVycnN0cikKLXsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiVkOiAlc1xuIiwgZ19jdXJyZW50RmlsZW5hbWUsIHl5bGluZW5vLCBlcnJzdHIpOwotICAgIGdfZXJyb3IgPSAxOwotICAgIHJldHVybiAxOwotfQotCi12b2lkIGluaXRfYnVmZmVyX3R5cGUoYnVmZmVyX3R5cGUqIGJ1ZiwgaW50IGxpbmVubykKLXsKLSAgICBidWYtPmxpbmVubyA9IGxpbmVubzsKLSAgICBidWYtPnRva2VuID0gMDsKLSAgICBidWYtPmRhdGEgPSBOVUxMOwotICAgIGJ1Zi0+ZXh0cmEgPSBOVUxMOwotfQotCi1zdGF0aWMgaW50IGNvdW50X2JyYWNrZXRzKGNvbnN0IGNoYXIqIHMpCi17Ci0gICAgaW50IG49MDsKLSAgICB3aGlsZSAoKnMpIHsKLSAgICAgICAgaWYgKCpzID09ICdbJykgbisrOwotICAgICAgICBzKys7Ci0gICAgfQotICAgIHJldHVybiBuOwotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvYWlkbC9nZW5lcmF0ZV9qYXZhLmNwcCBiL3Rvb2xzL2FpZGwvZ2VuZXJhdGVfamF2YS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDllNTc0MDcuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWlkbC9nZW5lcmF0ZV9qYXZhLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLSNpbmNsdWRlICJnZW5lcmF0ZV9qYXZhLmgiCi0jaW5jbHVkZSAiVHlwZS5oIgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLVZhcmlhYmxlRmFjdG9yeTo6VmFyaWFibGVGYWN0b3J5KGNvbnN0IHN0cmluZyYgYmFzZSkKLSAgICA6bV9iYXNlKGJhc2UpLAotICAgICBtX2luZGV4KDApCi17Ci19Ci0KLVZhcmlhYmxlKgotVmFyaWFibGVGYWN0b3J5OjpHZXQoVHlwZSogdHlwZSkKLXsKLSAgICBjaGFyIG5hbWVbMTAwXTsKLSAgICBzcHJpbnRmKG5hbWUsICIlcyVkIiwgbV9iYXNlLmNfc3RyKCksIG1faW5kZXgpOwotICAgIG1faW5kZXgrKzsKLSAgICBWYXJpYWJsZSogdiA9IG5ldyBWYXJpYWJsZSh0eXBlLCBuYW1lKTsKLSAgICBtX3ZhcnMucHVzaF9iYWNrKHYpOwotICAgIHJldHVybiB2OwotfQotCi1WYXJpYWJsZSoKLVZhcmlhYmxlRmFjdG9yeTo6R2V0KGludCBpbmRleCkKLXsKLSAgICByZXR1cm4gbV92YXJzW2luZGV4XTsKLX0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotc3RyaW5nCi1nYXRoZXJfY29tbWVudHMoZXh0cmFfdGV4dF90eXBlKiBleHRyYSkKLXsKLSAgICBzdHJpbmcgczsKLSAgICB3aGlsZSAoZXh0cmEpIHsKLSAgICAgICAgaWYgKGV4dHJhLT53aGljaCA9PSBTSE9SVF9DT01NRU5UKSB7Ci0gICAgICAgICAgICBzICs9IGV4dHJhLT5kYXRhOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGV4dHJhLT53aGljaCA9PSBMT05HX0NPTU1FTlQpIHsKLSAgICAgICAgICAgIHMgKz0gIi8qIjsKLSAgICAgICAgICAgIHMgKz0gZXh0cmEtPmRhdGE7Ci0gICAgICAgICAgICBzICs9ICIqLyI7Ci0gICAgICAgIH0KLSAgICAgICAgZXh0cmEgPSBleHRyYS0+bmV4dDsKLSAgICB9Ci0gICAgcmV0dXJuIHM7Ci19Ci0KLXN0cmluZwotYXBwZW5kKGNvbnN0IGNoYXIqIGEsIGNvbnN0IGNoYXIqIGIpCi17Ci0gICAgc3RyaW5nIHMgPSBhOwotICAgIHMgKz0gYjsKLSAgICByZXR1cm4gczsKLX0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotaW50Ci1nZW5lcmF0ZV9qYXZhKGNvbnN0IHN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IHN0cmluZyYgb3JpZ2luYWxTcmMsCi0gICAgICAgICAgICAgICAgaW50ZXJmYWNlX3R5cGUqIGlmYWNlKQotewotICAgIENsYXNzKiBjbDsKLQotICAgIGlmIChpZmFjZS0+ZG9jdW1lbnRfaXRlbS5pdGVtX3R5cGUgPT0gSU5URVJGQUNFX1RZUEVfQklOREVSKSB7Ci0gICAgICAgIGNsID0gZ2VuZXJhdGVfYmluZGVyX2ludGVyZmFjZV9jbGFzcyhpZmFjZSk7Ci0gICAgfQotICAgIGVsc2UgaWYgKGlmYWNlLT5kb2N1bWVudF9pdGVtLml0ZW1fdHlwZSA9PSBJTlRFUkZBQ0VfVFlQRV9SUEMpIHsKLSAgICAgICAgY2wgPSBnZW5lcmF0ZV9ycGNfaW50ZXJmYWNlX2NsYXNzKGlmYWNlKTsKLSAgICB9Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBuZXcgRG9jdW1lbnQ7Ci0gICAgICAgIGRvY3VtZW50LT5jb21tZW50ID0gIiI7Ci0gICAgICAgIGlmIChpZmFjZS0+cGFja2FnZSkgZG9jdW1lbnQtPnBhY2thZ2UgPSBpZmFjZS0+cGFja2FnZTsKLSAgICAgICAgZG9jdW1lbnQtPm9yaWdpbmFsU3JjID0gb3JpZ2luYWxTcmM7Ci0gICAgICAgIGRvY3VtZW50LT5jbGFzc2VzLnB1c2hfYmFjayhjbCk7Ci0KLS8vICAgIHByaW50Zigib3V0cHV0dGluZy4uLiBmaWxlbmFtZT0lc1xuIiwgZmlsZW5hbWUuY19zdHIoKSk7Ci0gICAgRklMRSogdG87Ci0gICAgaWYgKGZpbGVuYW1lID09ICItIikgewotICAgICAgICB0byA9IHN0ZG91dDsKLSAgICB9IGVsc2UgewotICAgICAgIC8qIG9wZW4gZmlsZSBpbiBiaW5hcnkgbW9kZSB0byBlbnN1cmUgdGhhdCB0aGUgdG9vbCBwcm9kdWNlcyB0aGUKLSAgICAgICAgKiBzYW1lIG91dHB1dCBvbiBhbGwgcGxhdGZvcm1zICEhCi0gICAgICAgICovCi0gICAgICAgIHRvID0gZm9wZW4oZmlsZW5hbWUuY19zdHIoKSwgIndiIik7Ci0gICAgICAgIGlmICh0byA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInVuYWJsZSB0byBvcGVuICVzIGZvciB3cml0ZVxuIiwgZmlsZW5hbWUuY19zdHIoKSk7Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGRvY3VtZW50LT5Xcml0ZSh0byk7Ci0KLSAgICBmY2xvc2UodG8pOwotICAgIHJldHVybiAwOwotfQotCmRpZmYgLS1naXQgYS90b29scy9haWRsL2dlbmVyYXRlX2phdmEuaCBiL3Rvb2xzL2FpZGwvZ2VuZXJhdGVfamF2YS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmZjZmViLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FpZGwvZ2VuZXJhdGVfamF2YS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotI2lmbmRlZiBHRU5FUkFURV9KQVZBX0gKLSNkZWZpbmUgR0VORVJBVEVfSkFWQV9ICi0KLSNpbmNsdWRlICJhaWRsX2xhbmd1YWdlLmgiCi0jaW5jbHVkZSAiQVNULmgiCi0KLSNpbmNsdWRlIDxzdHJpbmc+Ci0KLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLWludCBnZW5lcmF0ZV9qYXZhKGNvbnN0IHN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IHN0cmluZyYgb3JpZ2luYWxTcmMsCi0gICAgICAgICAgICAgICAgaW50ZXJmYWNlX3R5cGUqIGlmYWNlKTsKLQotQ2xhc3MqIGdlbmVyYXRlX2JpbmRlcl9pbnRlcmZhY2VfY2xhc3MoY29uc3QgaW50ZXJmYWNlX3R5cGUqIGlmYWNlKTsKLUNsYXNzKiBnZW5lcmF0ZV9ycGNfaW50ZXJmYWNlX2NsYXNzKGNvbnN0IGludGVyZmFjZV90eXBlKiBpZmFjZSk7Ci0KLXN0cmluZyBnYXRoZXJfY29tbWVudHMoZXh0cmFfdGV4dF90eXBlKiBleHRyYSk7Ci1zdHJpbmcgYXBwZW5kKGNvbnN0IGNoYXIqIGEsIGNvbnN0IGNoYXIqIGIpOwotCi1jbGFzcyBWYXJpYWJsZUZhY3RvcnkKLXsKLXB1YmxpYzoKLSAgICBWYXJpYWJsZUZhY3RvcnkoY29uc3Qgc3RyaW5nJiBiYXNlKTsgLy8gYmFzZSBtdXN0IGJlIHNob3J0Ci0gICAgVmFyaWFibGUqIEdldChUeXBlKiB0eXBlKTsKLSAgICBWYXJpYWJsZSogR2V0KGludCBpbmRleCk7Ci1wcml2YXRlOgotICAgIHZlY3RvcjxWYXJpYWJsZSo+IG1fdmFyczsKLSAgICBzdHJpbmcgbV9iYXNlOwotICAgIGludCBtX2luZGV4OwotfTsKLQotI2VuZGlmIC8vIEdFTkVSQVRFX0pBVkFfSAotCmRpZmYgLS1naXQgYS90b29scy9haWRsL2dlbmVyYXRlX2phdmFfYmluZGVyLmNwcCBiL3Rvb2xzL2FpZGwvZ2VuZXJhdGVfamF2YV9iaW5kZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMjkxY2ViLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FpZGwvZ2VuZXJhdGVfamF2YV9iaW5kZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTYwICswLDAgQEAKLSNpbmNsdWRlICJnZW5lcmF0ZV9qYXZhLmgiCi0jaW5jbHVkZSAiVHlwZS5oIgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLWNsYXNzIFN0dWJDbGFzcyA6IHB1YmxpYyBDbGFzcwotewotcHVibGljOgotICAgIFN0dWJDbGFzcyhUeXBlKiB0eXBlLCBUeXBlKiBpbnRlcmZhY2VUeXBlKTsKLSAgICB2aXJ0dWFsIH5TdHViQ2xhc3MoKTsKLQotICAgIFZhcmlhYmxlKiB0cmFuc2FjdF9jb2RlOwotICAgIFZhcmlhYmxlKiB0cmFuc2FjdF9kYXRhOwotICAgIFZhcmlhYmxlKiB0cmFuc2FjdF9yZXBseTsKLSAgICBWYXJpYWJsZSogdHJhbnNhY3RfZmxhZ3M7Ci0gICAgU3dpdGNoU3RhdGVtZW50KiB0cmFuc2FjdF9zd2l0Y2g7Ci1wcml2YXRlOgotICAgIHZvaWQgbWFrZV9hc19pbnRlcmZhY2UoVHlwZSogaW50ZXJmYWNlVHlwZSk7Ci19OwotCi1TdHViQ2xhc3M6OlN0dWJDbGFzcyhUeXBlKiB0eXBlLCBUeXBlKiBpbnRlcmZhY2VUeXBlKQotICAgIDpDbGFzcygpCi17Ci0gICAgdGhpcy0+Y29tbWVudCA9ICIvKiogTG9jYWwtc2lkZSBJUEMgaW1wbGVtZW50YXRpb24gc3R1YiBjbGFzcy4gKi8iOwotICAgIHRoaXMtPm1vZGlmaWVycyA9IFBVQkxJQyB8IEFCU1RSQUNUIHwgU1RBVElDOwotICAgIHRoaXMtPndoYXQgPSBDbGFzczo6Q0xBU1M7Ci0gICAgdGhpcy0+dHlwZSA9IHR5cGU7Ci0gICAgdGhpcy0+ZXh0ZW5kcyA9IEJJTkRFUl9OQVRJVkVfVFlQRTsKLSAgICB0aGlzLT5pbnRlcmZhY2VzLnB1c2hfYmFjayhpbnRlcmZhY2VUeXBlKTsKLQotICAgIC8vIGRlc2NyaXB0b3IKLSAgICBGaWVsZCogZGVzY3JpcHRvciA9IG5ldyBGaWVsZChTVEFUSUMgfCBGSU5BTCB8IFBSSVZBVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFZhcmlhYmxlKFNUUklOR19UWVBFLCAiREVTQ1JJUFRPUiIpKTsKLSAgICBkZXNjcmlwdG9yLT52YWx1ZSA9ICJcIiIgKyBpbnRlcmZhY2VUeXBlLT5RdWFsaWZpZWROYW1lKCkgKyAiXCIiOwotICAgIHRoaXMtPmVsZW1lbnRzLnB1c2hfYmFjayhkZXNjcmlwdG9yKTsKLQotICAgIC8vIGN0b3IKLSAgICBNZXRob2QqIGN0b3IgPSBuZXcgTWV0aG9kOwotICAgICAgICBjdG9yLT5tb2RpZmllcnMgPSBQVUJMSUM7Ci0gICAgICAgIGN0b3ItPmNvbW1lbnQgPSAiLyoqIENvbnN0cnVjdCB0aGUgc3R1YiBhdCBhdHRhY2ggaXQgdG8gdGhlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlcmZhY2UuICovIjsKLSAgICAgICAgY3Rvci0+bmFtZSA9ICJTdHViIjsKLSAgICAgICAgY3Rvci0+c3RhdGVtZW50cyA9IG5ldyBTdGF0ZW1lbnRCbG9jazsKLSAgICBNZXRob2RDYWxsKiBhdHRhY2ggPSBuZXcgTWV0aG9kQ2FsbChUSElTX1ZBTFVFLCAiYXR0YWNoSW50ZXJmYWNlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLCBUSElTX1ZBTFVFLCBuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIkRFU0NSSVBUT1IiKSk7Ci0gICAgY3Rvci0+c3RhdGVtZW50cy0+QWRkKGF0dGFjaCk7Ci0gICAgdGhpcy0+ZWxlbWVudHMucHVzaF9iYWNrKGN0b3IpOwotCi0gICAgLy8gYXNJbnRlcmZhY2UKLSAgICBtYWtlX2FzX2ludGVyZmFjZShpbnRlcmZhY2VUeXBlKTsKLQotICAgIC8vIGFzQmluZGVyCi0gICAgTWV0aG9kKiBhc0JpbmRlciA9IG5ldyBNZXRob2Q7Ci0gICAgICAgIGFzQmluZGVyLT5tb2RpZmllcnMgPSBQVUJMSUMgfCBPVkVSUklERTsKLSAgICAgICAgYXNCaW5kZXItPnJldHVyblR5cGUgPSBJQklOREVSX1RZUEU7Ci0gICAgICAgIGFzQmluZGVyLT5uYW1lID0gImFzQmluZGVyIjsKLSAgICAgICAgYXNCaW5kZXItPnN0YXRlbWVudHMgPSBuZXcgU3RhdGVtZW50QmxvY2s7Ci0gICAgYXNCaW5kZXItPnN0YXRlbWVudHMtPkFkZChuZXcgUmV0dXJuU3RhdGVtZW50KFRISVNfVkFMVUUpKTsKLSAgICB0aGlzLT5lbGVtZW50cy5wdXNoX2JhY2soYXNCaW5kZXIpOwotCi0gICAgLy8gb25UcmFuc2FjdAotICAgIHRoaXMtPnRyYW5zYWN0X2NvZGUgPSBuZXcgVmFyaWFibGUoSU5UX1RZUEUsICJjb2RlIik7Ci0gICAgdGhpcy0+dHJhbnNhY3RfZGF0YSA9IG5ldyBWYXJpYWJsZShQQVJDRUxfVFlQRSwgImRhdGEiKTsKLSAgICB0aGlzLT50cmFuc2FjdF9yZXBseSA9IG5ldyBWYXJpYWJsZShQQVJDRUxfVFlQRSwgInJlcGx5Iik7Ci0gICAgdGhpcy0+dHJhbnNhY3RfZmxhZ3MgPSBuZXcgVmFyaWFibGUoSU5UX1RZUEUsICJmbGFncyIpOwotICAgIE1ldGhvZCogb25UcmFuc2FjdCA9IG5ldyBNZXRob2Q7Ci0gICAgICAgIG9uVHJhbnNhY3QtPm1vZGlmaWVycyA9IFBVQkxJQyB8IE9WRVJSSURFOwotICAgICAgICBvblRyYW5zYWN0LT5yZXR1cm5UeXBlID0gQk9PTEVBTl9UWVBFOwotICAgICAgICBvblRyYW5zYWN0LT5uYW1lID0gIm9uVHJhbnNhY3QiOwotICAgICAgICBvblRyYW5zYWN0LT5wYXJhbWV0ZXJzLnB1c2hfYmFjayh0aGlzLT50cmFuc2FjdF9jb2RlKTsKLSAgICAgICAgb25UcmFuc2FjdC0+cGFyYW1ldGVycy5wdXNoX2JhY2sodGhpcy0+dHJhbnNhY3RfZGF0YSk7Ci0gICAgICAgIG9uVHJhbnNhY3QtPnBhcmFtZXRlcnMucHVzaF9iYWNrKHRoaXMtPnRyYW5zYWN0X3JlcGx5KTsKLSAgICAgICAgb25UcmFuc2FjdC0+cGFyYW1ldGVycy5wdXNoX2JhY2sodGhpcy0+dHJhbnNhY3RfZmxhZ3MpOwotICAgICAgICBvblRyYW5zYWN0LT5zdGF0ZW1lbnRzID0gbmV3IFN0YXRlbWVudEJsb2NrOwotICAgICAgICBvblRyYW5zYWN0LT5leGNlcHRpb25zLnB1c2hfYmFjayhSRU1PVEVfRVhDRVBUSU9OX1RZUEUpOwotICAgIHRoaXMtPmVsZW1lbnRzLnB1c2hfYmFjayhvblRyYW5zYWN0KTsKLSAgICB0aGlzLT50cmFuc2FjdF9zd2l0Y2ggPSBuZXcgU3dpdGNoU3RhdGVtZW50KHRoaXMtPnRyYW5zYWN0X2NvZGUpOwotCi0gICAgb25UcmFuc2FjdC0+c3RhdGVtZW50cy0+QWRkKHRoaXMtPnRyYW5zYWN0X3N3aXRjaCk7Ci0gICAgTWV0aG9kQ2FsbCogc3VwZXJDYWxsID0gbmV3IE1ldGhvZENhbGwoU1VQRVJfVkFMVUUsICJvblRyYW5zYWN0IiwgNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMtPnRyYW5zYWN0X2NvZGUsIHRoaXMtPnRyYW5zYWN0X2RhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT50cmFuc2FjdF9yZXBseSwgdGhpcy0+dHJhbnNhY3RfZmxhZ3MpOwotICAgIG9uVHJhbnNhY3QtPnN0YXRlbWVudHMtPkFkZChuZXcgUmV0dXJuU3RhdGVtZW50KHN1cGVyQ2FsbCkpOwotfQotCi1TdHViQ2xhc3M6On5TdHViQ2xhc3MoKQotewotfQotCi12b2lkCi1TdHViQ2xhc3M6Om1ha2VfYXNfaW50ZXJmYWNlKFR5cGUgKmludGVyZmFjZVR5cGUpCi17Ci0gICAgVmFyaWFibGUqIG9iaiA9IG5ldyBWYXJpYWJsZShJQklOREVSX1RZUEUsICJvYmoiKTsKLQotICAgIE1ldGhvZCogbSA9IG5ldyBNZXRob2Q7Ci0gICAgICAgIG0tPmNvbW1lbnQgPSAiLyoqXG4gKiBDYXN0IGFuIElCaW5kZXIgb2JqZWN0IGludG8gYW4gIjsKLSAgICAgICAgbS0+Y29tbWVudCArPSBpbnRlcmZhY2VUeXBlLT5RdWFsaWZpZWROYW1lKCk7Ci0gICAgICAgIG0tPmNvbW1lbnQgKz0gIiBpbnRlcmZhY2UsXG4iOwotICAgICAgICBtLT5jb21tZW50ICs9ICIgKiBnZW5lcmF0aW5nIGEgcHJveHkgaWYgbmVlZGVkLlxuICovIjsKLSAgICAgICAgbS0+bW9kaWZpZXJzID0gUFVCTElDIHwgU1RBVElDOwotICAgICAgICBtLT5yZXR1cm5UeXBlID0gaW50ZXJmYWNlVHlwZTsKLSAgICAgICAgbS0+bmFtZSA9ICJhc0ludGVyZmFjZSI7Ci0gICAgICAgIG0tPnBhcmFtZXRlcnMucHVzaF9iYWNrKG9iaik7Ci0gICAgICAgIG0tPnN0YXRlbWVudHMgPSBuZXcgU3RhdGVtZW50QmxvY2s7Ci0KLSAgICBJZlN0YXRlbWVudCogaWZzdGF0ZW1lbnQgPSBuZXcgSWZTdGF0ZW1lbnQoKTsKLSAgICAgICAgaWZzdGF0ZW1lbnQtPmV4cHJlc3Npb24gPSBuZXcgQ29tcGFyaXNvbihvYmosICI9PSIsIE5VTExfVkFMVUUpOwotICAgICAgICBpZnN0YXRlbWVudC0+c3RhdGVtZW50cyA9IG5ldyBTdGF0ZW1lbnRCbG9jazsKLSAgICAgICAgaWZzdGF0ZW1lbnQtPnN0YXRlbWVudHMtPkFkZChuZXcgUmV0dXJuU3RhdGVtZW50KE5VTExfVkFMVUUpKTsKLSAgICBtLT5zdGF0ZW1lbnRzLT5BZGQoaWZzdGF0ZW1lbnQpOwotCi0gICAgLy8gSUludGVyZmFjZSBpaW4gPSBvYmoucXVlcnlMb2NhbEludGVyZmFjZShERVNDUklQVE9SKQotICAgIE1ldGhvZENhbGwqIHF1ZXJ5TG9jYWxJbnRlcmZhY2UgPSBuZXcgTWV0aG9kQ2FsbChvYmosICJxdWVyeUxvY2FsSW50ZXJmYWNlIik7Ci0gICAgcXVlcnlMb2NhbEludGVyZmFjZS0+YXJndW1lbnRzLnB1c2hfYmFjayhuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIkRFU0NSSVBUT1IiKSk7Ci0gICAgSUludGVyZmFjZVR5cGUqIGlpblR5cGUgPSBuZXcgSUludGVyZmFjZVR5cGUoKTsKLSAgICBWYXJpYWJsZSAqaWluID0gbmV3IFZhcmlhYmxlKGlpblR5cGUsICJpaW4iKTsKLSAgICBWYXJpYWJsZURlY2xhcmF0aW9uKiBpaW5WZCA9IG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKGlpbiwgcXVlcnlMb2NhbEludGVyZmFjZSwgTlVMTCk7Ci0gICAgbS0+c3RhdGVtZW50cy0+QWRkKGlpblZkKTsKLQotICAgIC8vIEVuc3VyZSB0aGUgaW5zdGFuY2UgdHlwZSBvZiB0aGUgbG9jYWwgb2JqZWN0IGlzIGFzIGV4cGVjdGVkLgotICAgIC8vIE9uZSBzY2VuYXJpbyB3aGVyZSB0aGlzIGlzIG5lZWRlZCBpcyBpZiBhbm90aGVyIHBhY2thZ2UgKHdpdGggYQotICAgIC8vIGRpZmZlcmVudCBjbGFzcyBsb2FkZXIpIHJ1bnMgaW4gdGhlIHNhbWUgcHJvY2VzcyBhcyB0aGUgc2VydmljZS4KLQotICAgIC8vIGlmIChpaW4gIT0gbnVsbCAmJiBpaW4gaW5zdGFuY2VvZiA8aW50ZXJmYWNlVHlwZT4pIHJldHVybiAoPGludGVyZmFjZVR5cGU+KSBpaW47Ci0gICAgQ29tcGFyaXNvbiogaWluTm90TnVsbCA9IG5ldyBDb21wYXJpc29uKGlpbiwgIiE9IiwgTlVMTF9WQUxVRSk7Ci0gICAgQ29tcGFyaXNvbiogaW5zdE9mQ2hlY2sgPSBuZXcgQ29tcGFyaXNvbihpaW4sICIgaW5zdGFuY2VvZiAiLAotICAgICAgICAgICAgbmV3IExpdGVyYWxFeHByZXNzaW9uKGludGVyZmFjZVR5cGUtPlF1YWxpZmllZE5hbWUoKSkpOwotICAgIElmU3RhdGVtZW50KiBpbnN0T2ZTdGF0ZW1lbnQgPSBuZXcgSWZTdGF0ZW1lbnQoKTsKLSAgICAgICAgaW5zdE9mU3RhdGVtZW50LT5leHByZXNzaW9uID0gbmV3IENvbXBhcmlzb24oaWluTm90TnVsbCwgIiYmIiwgaW5zdE9mQ2hlY2spOwotICAgICAgICBpbnN0T2ZTdGF0ZW1lbnQtPnN0YXRlbWVudHMgPSBuZXcgU3RhdGVtZW50QmxvY2s7Ci0gICAgICAgIGluc3RPZlN0YXRlbWVudC0+c3RhdGVtZW50cy0+QWRkKG5ldyBSZXR1cm5TdGF0ZW1lbnQobmV3IENhc3QoaW50ZXJmYWNlVHlwZSwgaWluKSkpOwotICAgIG0tPnN0YXRlbWVudHMtPkFkZChpbnN0T2ZTdGF0ZW1lbnQpOwotCi0gICAgc3RyaW5nIHByb3h5VHlwZSA9IGludGVyZmFjZVR5cGUtPlF1YWxpZmllZE5hbWUoKTsKLSAgICBwcm94eVR5cGUgKz0gIi5TdHViLlByb3h5IjsKLSAgICBOZXdFeHByZXNzaW9uKiBuZSA9IG5ldyBOZXdFeHByZXNzaW9uKE5BTUVTLkZpbmQocHJveHlUeXBlKSk7Ci0gICAgbmUtPmFyZ3VtZW50cy5wdXNoX2JhY2sob2JqKTsKLSAgICBtLT5zdGF0ZW1lbnRzLT5BZGQobmV3IFJldHVyblN0YXRlbWVudChuZSkpOwotCi0gICAgdGhpcy0+ZWxlbWVudHMucHVzaF9iYWNrKG0pOwotfQotCi0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotY2xhc3MgUHJveHlDbGFzcyA6IHB1YmxpYyBDbGFzcwotewotcHVibGljOgotICAgIFByb3h5Q2xhc3MoVHlwZSogdHlwZSwgSW50ZXJmYWNlVHlwZSogaW50ZXJmYWNlVHlwZSk7Ci0gICAgdmlydHVhbCB+UHJveHlDbGFzcygpOwotCi0gICAgVmFyaWFibGUqIG1SZW1vdGU7Ci0gICAgYm9vbCBtT25lV2F5OwotfTsKLQotUHJveHlDbGFzczo6UHJveHlDbGFzcyhUeXBlKiB0eXBlLCBJbnRlcmZhY2VUeXBlKiBpbnRlcmZhY2VUeXBlKQotICAgIDpDbGFzcygpCi17Ci0gICAgdGhpcy0+bW9kaWZpZXJzID0gUFJJVkFURSB8IFNUQVRJQzsKLSAgICB0aGlzLT53aGF0ID0gQ2xhc3M6OkNMQVNTOwotICAgIHRoaXMtPnR5cGUgPSB0eXBlOwotICAgIHRoaXMtPmludGVyZmFjZXMucHVzaF9iYWNrKGludGVyZmFjZVR5cGUpOwotCi0gICAgbU9uZVdheSA9IGludGVyZmFjZVR5cGUtPk9uZVdheSgpOwotCi0gICAgLy8gSUJpbmRlciBtUmVtb3RlCi0gICAgbVJlbW90ZSA9IG5ldyBWYXJpYWJsZShJQklOREVSX1RZUEUsICJtUmVtb3RlIik7Ci0gICAgdGhpcy0+ZWxlbWVudHMucHVzaF9iYWNrKG5ldyBGaWVsZChQUklWQVRFLCBtUmVtb3RlKSk7Ci0KLSAgICAvLyBQcm94eSgpCi0gICAgVmFyaWFibGUqIHJlbW90ZSA9IG5ldyBWYXJpYWJsZShJQklOREVSX1RZUEUsICJyZW1vdGUiKTsKLSAgICBNZXRob2QqIGN0b3IgPSBuZXcgTWV0aG9kOwotICAgICAgICBjdG9yLT5uYW1lID0gIlByb3h5IjsKLSAgICAgICAgY3Rvci0+c3RhdGVtZW50cyA9IG5ldyBTdGF0ZW1lbnRCbG9jazsKLSAgICAgICAgY3Rvci0+cGFyYW1ldGVycy5wdXNoX2JhY2socmVtb3RlKTsKLSAgICBjdG9yLT5zdGF0ZW1lbnRzLT5BZGQobmV3IEFzc2lnbm1lbnQobVJlbW90ZSwgcmVtb3RlKSk7Ci0gICAgdGhpcy0+ZWxlbWVudHMucHVzaF9iYWNrKGN0b3IpOwotCi0gICAgLy8gSUJpbmRlciBhc0JpbmRlcigpCi0gICAgTWV0aG9kKiBhc0JpbmRlciA9IG5ldyBNZXRob2Q7Ci0gICAgICAgIGFzQmluZGVyLT5tb2RpZmllcnMgPSBQVUJMSUMgfCBPVkVSUklERTsKLSAgICAgICAgYXNCaW5kZXItPnJldHVyblR5cGUgPSBJQklOREVSX1RZUEU7Ci0gICAgICAgIGFzQmluZGVyLT5uYW1lID0gImFzQmluZGVyIjsKLSAgICAgICAgYXNCaW5kZXItPnN0YXRlbWVudHMgPSBuZXcgU3RhdGVtZW50QmxvY2s7Ci0gICAgYXNCaW5kZXItPnN0YXRlbWVudHMtPkFkZChuZXcgUmV0dXJuU3RhdGVtZW50KG1SZW1vdGUpKTsKLSAgICB0aGlzLT5lbGVtZW50cy5wdXNoX2JhY2soYXNCaW5kZXIpOwotfQotCi1Qcm94eUNsYXNzOjp+UHJveHlDbGFzcygpCi17Ci19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLXN0YXRpYyB2b2lkCi1nZW5lcmF0ZV9uZXdfYXJyYXkoVHlwZSogdCwgU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsKQotewotICAgIFZhcmlhYmxlKiBsZW4gPSBuZXcgVmFyaWFibGUoSU5UX1RZUEUsIHYtPm5hbWUgKyAiX2xlbmd0aCIpOwotICAgIGFkZFRvLT5BZGQobmV3IFZhcmlhYmxlRGVjbGFyYXRpb24obGVuLCBuZXcgTWV0aG9kQ2FsbChwYXJjZWwsICJyZWFkSW50IikpKTsKLSAgICBJZlN0YXRlbWVudCogbGVuY2hlY2sgPSBuZXcgSWZTdGF0ZW1lbnQoKTsKLSAgICBsZW5jaGVjay0+ZXhwcmVzc2lvbiA9IG5ldyBDb21wYXJpc29uKGxlbiwgIjwiLCBuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIjAiKSk7Ci0gICAgbGVuY2hlY2stPnN0YXRlbWVudHMtPkFkZChuZXcgQXNzaWdubWVudCh2LCBOVUxMX1ZBTFVFKSk7Ci0gICAgbGVuY2hlY2stPmVsc2VpZiA9IG5ldyBJZlN0YXRlbWVudCgpOwotICAgIGxlbmNoZWNrLT5lbHNlaWYtPnN0YXRlbWVudHMtPkFkZChuZXcgQXNzaWdubWVudCh2LAotICAgICAgICAgICAgICAgIG5ldyBOZXdBcnJheUV4cHJlc3Npb24odCwgbGVuKSkpOwotICAgIGFkZFRvLT5BZGQobGVuY2hlY2spOwotfQotCi1zdGF0aWMgdm9pZAotZ2VuZXJhdGVfd3JpdGVfdG9fcGFyY2VsKFR5cGUqIHQsIFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgaW50IGZsYWdzKQotewotICAgIGlmICh2LT5kaW1lbnNpb24gPT0gMCkgewotICAgICAgICB0LT5Xcml0ZVRvUGFyY2VsKGFkZFRvLCB2LCBwYXJjZWwsIGZsYWdzKTsKLSAgICB9Ci0gICAgaWYgKHYtPmRpbWVuc2lvbiA9PSAxKSB7Ci0gICAgICAgIHQtPldyaXRlQXJyYXlUb1BhcmNlbChhZGRUbywgdiwgcGFyY2VsLCBmbGFncyk7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZAotZ2VuZXJhdGVfY3JlYXRlX2Zyb21fcGFyY2VsKFR5cGUqIHQsIFN0YXRlbWVudEJsb2NrKiBhZGRUbywgVmFyaWFibGUqIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGUqIHBhcmNlbCwgVmFyaWFibGUqKiBjbCkKLXsKLSAgICBpZiAodi0+ZGltZW5zaW9uID09IDApIHsKLSAgICAgICAgdC0+Q3JlYXRlRnJvbVBhcmNlbChhZGRUbywgdiwgcGFyY2VsLCBjbCk7Ci0gICAgfQotICAgIGlmICh2LT5kaW1lbnNpb24gPT0gMSkgewotICAgICAgICB0LT5DcmVhdGVBcnJheUZyb21QYXJjZWwoYWRkVG8sIHYsIHBhcmNlbCwgY2wpOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQKLWdlbmVyYXRlX3JlYWRfZnJvbV9wYXJjZWwoVHlwZSogdCwgU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZSogcGFyY2VsLCBWYXJpYWJsZSoqIGNsKQotewotICAgIGlmICh2LT5kaW1lbnNpb24gPT0gMCkgewotICAgICAgICB0LT5SZWFkRnJvbVBhcmNlbChhZGRUbywgdiwgcGFyY2VsLCBjbCk7Ci0gICAgfQotICAgIGlmICh2LT5kaW1lbnNpb24gPT0gMSkgewotICAgICAgICB0LT5SZWFkQXJyYXlGcm9tUGFyY2VsKGFkZFRvLCB2LCBwYXJjZWwsIGNsKTsKLSAgICB9Ci19Ci0KLQotc3RhdGljIHZvaWQKLWdlbmVyYXRlX21ldGhvZChjb25zdCBtZXRob2RfdHlwZSogbWV0aG9kLCBDbGFzcyogaW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgICBTdHViQ2xhc3MqIHN0dWJDbGFzcywgUHJveHlDbGFzcyogcHJveHlDbGFzcywgaW50IGluZGV4KQotewotICAgIGFyZ190eXBlKiBhcmc7Ci0gICAgaW50IGk7Ci0gICAgYm9vbCBoYXNPdXRQYXJhbXMgPSBmYWxzZTsKLQotICAgIGNvbnN0IGJvb2wgb25ld2F5ID0gcHJveHlDbGFzcy0+bU9uZVdheSB8fCBtZXRob2QtPm9uZXdheTsKLQotICAgIC8vID09IHRoZSBUUkFOU0FDVF8gY29uc3RhbnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgc3RyaW5nIHRyYW5zYWN0Q29kZU5hbWUgPSAiVFJBTlNBQ1RJT05fIjsKLSAgICB0cmFuc2FjdENvZGVOYW1lICs9IG1ldGhvZC0+bmFtZS5kYXRhOwotCi0gICAgY2hhciB0cmFuc2FjdENvZGVWYWx1ZVs2MF07Ci0gICAgc3ByaW50Zih0cmFuc2FjdENvZGVWYWx1ZSwgIihhbmRyb2lkLm9zLklCaW5kZXIuRklSU1RfQ0FMTF9UUkFOU0FDVElPTiArICVkKSIsIGluZGV4KTsKLQotICAgIEZpZWxkKiB0cmFuc2FjdENvZGUgPSBuZXcgRmllbGQoU1RBVElDIHwgRklOQUwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFZhcmlhYmxlKElOVF9UWVBFLCB0cmFuc2FjdENvZGVOYW1lKSk7Ci0gICAgdHJhbnNhY3RDb2RlLT52YWx1ZSA9IHRyYW5zYWN0Q29kZVZhbHVlOwotICAgIHN0dWJDbGFzcy0+ZWxlbWVudHMucHVzaF9iYWNrKHRyYW5zYWN0Q29kZSk7Ci0KLSAgICAvLyA9PSB0aGUgZGVjbGFyYXRpb24gaW4gdGhlIGludGVyZmFjZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIE1ldGhvZCogZGVjbCA9IG5ldyBNZXRob2Q7Ci0gICAgICAgIGRlY2wtPmNvbW1lbnQgPSBnYXRoZXJfY29tbWVudHMobWV0aG9kLT5jb21tZW50c190b2tlbi0+ZXh0cmEpOwotICAgICAgICBkZWNsLT5tb2RpZmllcnMgPSBQVUJMSUM7Ci0gICAgICAgIGRlY2wtPnJldHVyblR5cGUgPSBOQU1FUy5TZWFyY2gobWV0aG9kLT50eXBlLnR5cGUuZGF0YSk7Ci0gICAgICAgIGRlY2wtPnJldHVyblR5cGVEaW1lbnNpb24gPSBtZXRob2QtPnR5cGUuZGltZW5zaW9uOwotICAgICAgICBkZWNsLT5uYW1lID0gbWV0aG9kLT5uYW1lLmRhdGE7Ci0KLSAgICBhcmcgPSBtZXRob2QtPmFyZ3M7Ci0gICAgd2hpbGUgKGFyZyAhPSBOVUxMKSB7Ci0gICAgICAgIGRlY2wtPnBhcmFtZXRlcnMucHVzaF9iYWNrKG5ldyBWYXJpYWJsZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQU1FUy5TZWFyY2goYXJnLT50eXBlLnR5cGUuZGF0YSksIGFyZy0+bmFtZS5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZy0+dHlwZS5kaW1lbnNpb24pKTsKLSAgICAgICAgYXJnID0gYXJnLT5uZXh0OwotICAgIH0KLQotICAgIGRlY2wtPmV4Y2VwdGlvbnMucHVzaF9iYWNrKFJFTU9URV9FWENFUFRJT05fVFlQRSk7Ci0KLSAgICBpbnRlcmZhY2UtPmVsZW1lbnRzLnB1c2hfYmFjayhkZWNsKTsKLQotICAgIC8vID09IHRoZSBzdHViIG1ldGhvZCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLSAgICBDYXNlKiBjID0gbmV3IENhc2UodHJhbnNhY3RDb2RlTmFtZSk7Ci0KLSAgICBNZXRob2RDYWxsKiByZWFsQ2FsbCA9IG5ldyBNZXRob2RDYWxsKFRISVNfVkFMVUUsIG1ldGhvZC0+bmFtZS5kYXRhKTsKLQotICAgIC8vIGludGVyZmFjZSB0b2tlbiB2YWxpZGF0aW9uIGlzIHRoZSB2ZXJ5IGZpcnN0IHRoaW5nIHdlIGRvCi0gICAgYy0+c3RhdGVtZW50cy0+QWRkKG5ldyBNZXRob2RDYWxsKHN0dWJDbGFzcy0+dHJhbnNhY3RfZGF0YSwKLSAgICAgICAgICAgICJlbmZvcmNlSW50ZXJmYWNlIiwgMSwgbmV3IExpdGVyYWxFeHByZXNzaW9uKCJERVNDUklQVE9SIikpKTsKLQotICAgIC8vIGFyZ3MKLSAgICBWYXJpYWJsZSogY2wgPSBOVUxMOwotICAgIFZhcmlhYmxlRmFjdG9yeSBzdHViQXJncygiX2FyZyIpOwotICAgIGFyZyA9IG1ldGhvZC0+YXJnczsKLSAgICB3aGlsZSAoYXJnICE9IE5VTEwpIHsKLSAgICAgICAgVHlwZSogdCA9IE5BTUVTLlNlYXJjaChhcmctPnR5cGUudHlwZS5kYXRhKTsKLSAgICAgICAgVmFyaWFibGUqIHYgPSBzdHViQXJncy5HZXQodCk7Ci0gICAgICAgIHYtPmRpbWVuc2lvbiA9IGFyZy0+dHlwZS5kaW1lbnNpb247Ci0KLSAgICAgICAgYy0+c3RhdGVtZW50cy0+QWRkKG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKHYpKTsKLQotICAgICAgICBpZiAoY29udmVydF9kaXJlY3Rpb24oYXJnLT5kaXJlY3Rpb24uZGF0YSkgJiBJTl9QQVJBTUVURVIpIHsKLSAgICAgICAgICAgIGdlbmVyYXRlX2NyZWF0ZV9mcm9tX3BhcmNlbCh0LCBjLT5zdGF0ZW1lbnRzLCB2LAotICAgICAgICAgICAgICAgICAgICBzdHViQ2xhc3MtPnRyYW5zYWN0X2RhdGEsICZjbCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoYXJnLT50eXBlLmRpbWVuc2lvbiA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgYy0+c3RhdGVtZW50cy0+QWRkKG5ldyBBc3NpZ25tZW50KHYsIG5ldyBOZXdFeHByZXNzaW9uKHYtPnR5cGUpKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChhcmctPnR5cGUuZGltZW5zaW9uID09IDEpIHsKLSAgICAgICAgICAgICAgICBnZW5lcmF0ZV9uZXdfYXJyYXkodi0+dHlwZSwgYy0+c3RhdGVtZW50cywgdiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0dWJDbGFzcy0+dHJhbnNhY3RfZGF0YSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6aW50ZXJuYWwgZXJyb3IgJXM6JWRcbiIsIF9fRklMRV9fLAotICAgICAgICAgICAgICAgICAgICAgICAgX19MSU5FX18pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcmVhbENhbGwtPmFyZ3VtZW50cy5wdXNoX2JhY2sodik7Ci0KLSAgICAgICAgYXJnID0gYXJnLT5uZXh0OwotICAgIH0KLQotICAgIC8vIHRoZSByZWFsIGNhbGwKLSAgICBWYXJpYWJsZSogX3Jlc3VsdCA9IE5VTEw7Ci0gICAgaWYgKDAgPT0gc3RyY21wKG1ldGhvZC0+dHlwZS50eXBlLmRhdGEsICJ2b2lkIikpIHsKLSAgICAgICAgYy0+c3RhdGVtZW50cy0+QWRkKHJlYWxDYWxsKTsKLQotICAgICAgICBpZiAoIW9uZXdheSkgewotICAgICAgICAgICAgLy8gcmVwb3J0IHRoYXQgdGhlcmUgd2VyZSBubyBleGNlcHRpb25zCi0gICAgICAgICAgICBNZXRob2RDYWxsKiBleCA9IG5ldyBNZXRob2RDYWxsKHN0dWJDbGFzcy0+dHJhbnNhY3RfcmVwbHksCi0gICAgICAgICAgICAgICAgICAgICJ3cml0ZU5vRXhjZXB0aW9uIiwgMCk7Ci0gICAgICAgICAgICBjLT5zdGF0ZW1lbnRzLT5BZGQoZXgpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgX3Jlc3VsdCA9IG5ldyBWYXJpYWJsZShkZWNsLT5yZXR1cm5UeXBlLCAiX3Jlc3VsdCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2wtPnJldHVyblR5cGVEaW1lbnNpb24pOwotICAgICAgICBjLT5zdGF0ZW1lbnRzLT5BZGQobmV3IFZhcmlhYmxlRGVjbGFyYXRpb24oX3Jlc3VsdCwgcmVhbENhbGwpKTsKLQotICAgICAgICBpZiAoIW9uZXdheSkgewotICAgICAgICAgICAgLy8gcmVwb3J0IHRoYXQgdGhlcmUgd2VyZSBubyBleGNlcHRpb25zCi0gICAgICAgICAgICBNZXRob2RDYWxsKiBleCA9IG5ldyBNZXRob2RDYWxsKHN0dWJDbGFzcy0+dHJhbnNhY3RfcmVwbHksCi0gICAgICAgICAgICAgICAgICAgICJ3cml0ZU5vRXhjZXB0aW9uIiwgMCk7Ci0gICAgICAgICAgICBjLT5zdGF0ZW1lbnRzLT5BZGQoZXgpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gbWFyc2hhbGwgdGhlIHJldHVybiB2YWx1ZQotICAgICAgICBnZW5lcmF0ZV93cml0ZV90b19wYXJjZWwoZGVjbC0+cmV0dXJuVHlwZSwgYy0+c3RhdGVtZW50cywgX3Jlc3VsdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0dWJDbGFzcy0+dHJhbnNhY3RfcmVwbHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlOjpQQVJDRUxBQkxFX1dSSVRFX1JFVFVSTl9WQUxVRSk7Ci0gICAgfQotCi0gICAgLy8gb3V0IHBhcmFtZXRlcnMKLSAgICBpID0gMDsKLSAgICBhcmcgPSBtZXRob2QtPmFyZ3M7Ci0gICAgd2hpbGUgKGFyZyAhPSBOVUxMKSB7Ci0gICAgICAgIFR5cGUqIHQgPSBOQU1FUy5TZWFyY2goYXJnLT50eXBlLnR5cGUuZGF0YSk7Ci0gICAgICAgIFZhcmlhYmxlKiB2ID0gc3R1YkFyZ3MuR2V0KGkrKyk7Ci0KLSAgICAgICAgaWYgKGNvbnZlcnRfZGlyZWN0aW9uKGFyZy0+ZGlyZWN0aW9uLmRhdGEpICYgT1VUX1BBUkFNRVRFUikgewotICAgICAgICAgICAgZ2VuZXJhdGVfd3JpdGVfdG9fcGFyY2VsKHQsIGMtPnN0YXRlbWVudHMsIHYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0dWJDbGFzcy0+dHJhbnNhY3RfcmVwbHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGU6OlBBUkNFTEFCTEVfV1JJVEVfUkVUVVJOX1ZBTFVFKTsKLSAgICAgICAgICAgIGhhc091dFBhcmFtcyA9IHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBhcmcgPSBhcmctPm5leHQ7Ci0gICAgfQotCi0gICAgLy8gcmV0dXJuIHRydWUKLSAgICBjLT5zdGF0ZW1lbnRzLT5BZGQobmV3IFJldHVyblN0YXRlbWVudChUUlVFX1ZBTFVFKSk7Ci0gICAgc3R1YkNsYXNzLT50cmFuc2FjdF9zd2l0Y2gtPmNhc2VzLnB1c2hfYmFjayhjKTsKLQotICAgIC8vID09IHRoZSBwcm94eSBtZXRob2QgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgTWV0aG9kKiBwcm94eSA9IG5ldyBNZXRob2Q7Ci0gICAgICAgIHByb3h5LT5jb21tZW50ID0gZ2F0aGVyX2NvbW1lbnRzKG1ldGhvZC0+Y29tbWVudHNfdG9rZW4tPmV4dHJhKTsKLSAgICAgICAgcHJveHktPm1vZGlmaWVycyA9IFBVQkxJQyB8IE9WRVJSSURFOwotICAgICAgICBwcm94eS0+cmV0dXJuVHlwZSA9IE5BTUVTLlNlYXJjaChtZXRob2QtPnR5cGUudHlwZS5kYXRhKTsKLSAgICAgICAgcHJveHktPnJldHVyblR5cGVEaW1lbnNpb24gPSBtZXRob2QtPnR5cGUuZGltZW5zaW9uOwotICAgICAgICBwcm94eS0+bmFtZSA9IG1ldGhvZC0+bmFtZS5kYXRhOwotICAgICAgICBwcm94eS0+c3RhdGVtZW50cyA9IG5ldyBTdGF0ZW1lbnRCbG9jazsKLSAgICAgICAgYXJnID0gbWV0aG9kLT5hcmdzOwotICAgICAgICB3aGlsZSAoYXJnICE9IE5VTEwpIHsKLSAgICAgICAgICAgIHByb3h5LT5wYXJhbWV0ZXJzLnB1c2hfYmFjayhuZXcgVmFyaWFibGUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTkFNRVMuU2VhcmNoKGFyZy0+dHlwZS50eXBlLmRhdGEpLCBhcmctPm5hbWUuZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmctPnR5cGUuZGltZW5zaW9uKSk7Ci0gICAgICAgICAgICBhcmcgPSBhcmctPm5leHQ7Ci0gICAgICAgIH0KLSAgICAgICAgcHJveHktPmV4Y2VwdGlvbnMucHVzaF9iYWNrKFJFTU9URV9FWENFUFRJT05fVFlQRSk7Ci0gICAgcHJveHlDbGFzcy0+ZWxlbWVudHMucHVzaF9iYWNrKHByb3h5KTsKLQotICAgIC8vIHRoZSBwYXJjZWxzCi0gICAgVmFyaWFibGUqIF9kYXRhID0gbmV3IFZhcmlhYmxlKFBBUkNFTF9UWVBFLCAiX2RhdGEiKTsKLSAgICBwcm94eS0+c3RhdGVtZW50cy0+QWRkKG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKF9kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTWV0aG9kQ2FsbChQQVJDRUxfVFlQRSwgIm9idGFpbiIpKSk7Ci0gICAgVmFyaWFibGUqIF9yZXBseSA9IE5VTEw7Ci0gICAgaWYgKCFvbmV3YXkpIHsKLSAgICAgICAgX3JlcGx5ID0gbmV3IFZhcmlhYmxlKFBBUkNFTF9UWVBFLCAiX3JlcGx5Iik7Ci0gICAgICAgIHByb3h5LT5zdGF0ZW1lbnRzLT5BZGQobmV3IFZhcmlhYmxlRGVjbGFyYXRpb24oX3JlcGx5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE1ldGhvZENhbGwoUEFSQ0VMX1RZUEUsICJvYnRhaW4iKSkpOwotICAgIH0KLQotICAgIC8vIHRoZSByZXR1cm4gdmFsdWUKLSAgICBfcmVzdWx0ID0gTlVMTDsKLSAgICBpZiAoMCAhPSBzdHJjbXAobWV0aG9kLT50eXBlLnR5cGUuZGF0YSwgInZvaWQiKSkgewotICAgICAgICBfcmVzdWx0ID0gbmV3IFZhcmlhYmxlKHByb3h5LT5yZXR1cm5UeXBlLCAiX3Jlc3VsdCIsCi0gICAgICAgICAgICAgICAgbWV0aG9kLT50eXBlLmRpbWVuc2lvbik7Ci0gICAgICAgIHByb3h5LT5zdGF0ZW1lbnRzLT5BZGQobmV3IFZhcmlhYmxlRGVjbGFyYXRpb24oX3Jlc3VsdCkpOwotICAgIH0KLQotICAgIC8vIHRyeSBhbmQgZmluYWxseQotICAgIFRyeVN0YXRlbWVudCogdHJ5U3RhdGVtZW50ID0gbmV3IFRyeVN0YXRlbWVudCgpOwotICAgIHByb3h5LT5zdGF0ZW1lbnRzLT5BZGQodHJ5U3RhdGVtZW50KTsKLSAgICBGaW5hbGx5U3RhdGVtZW50KiBmaW5hbGx5U3RhdGVtZW50ID0gbmV3IEZpbmFsbHlTdGF0ZW1lbnQoKTsKLSAgICBwcm94eS0+c3RhdGVtZW50cy0+QWRkKGZpbmFsbHlTdGF0ZW1lbnQpOwotCi0gICAgLy8gdGhlIGludGVyZmFjZSBpZGVudGlmaWVyIHRva2VuOiB0aGUgREVTQ1JJUFRPUiBjb25zdGFudCwgbWFyc2hhbGxlZCBhcyBhIHN0cmluZwotICAgIHRyeVN0YXRlbWVudC0+c3RhdGVtZW50cy0+QWRkKG5ldyBNZXRob2RDYWxsKF9kYXRhLCAid3JpdGVJbnRlcmZhY2VUb2tlbiIsCi0gICAgICAgICAgICAxLCBuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIkRFU0NSSVBUT1IiKSkpOwotCi0gICAgLy8gdGhlIHBhcmFtZXRlcnMKLSAgICBhcmcgPSBtZXRob2QtPmFyZ3M7Ci0gICAgd2hpbGUgKGFyZyAhPSBOVUxMKSB7Ci0gICAgICAgIFR5cGUqIHQgPSBOQU1FUy5TZWFyY2goYXJnLT50eXBlLnR5cGUuZGF0YSk7Ci0gICAgICAgIFZhcmlhYmxlKiB2ID0gbmV3IFZhcmlhYmxlKHQsIGFyZy0+bmFtZS5kYXRhLCBhcmctPnR5cGUuZGltZW5zaW9uKTsKLSAgICAgICAgaW50IGRpciA9IGNvbnZlcnRfZGlyZWN0aW9uKGFyZy0+ZGlyZWN0aW9uLmRhdGEpOwotICAgICAgICBpZiAoZGlyID09IE9VVF9QQVJBTUVURVIgJiYgYXJnLT50eXBlLmRpbWVuc2lvbiAhPSAwKSB7Ci0gICAgICAgICAgICBJZlN0YXRlbWVudCogY2hlY2tsZW4gPSBuZXcgSWZTdGF0ZW1lbnQoKTsKLSAgICAgICAgICAgIGNoZWNrbGVuLT5leHByZXNzaW9uID0gbmV3IENvbXBhcmlzb24odiwgIj09IiwgTlVMTF9WQUxVRSk7Ci0gICAgICAgICAgICBjaGVja2xlbi0+c3RhdGVtZW50cy0+QWRkKG5ldyBNZXRob2RDYWxsKF9kYXRhLCAid3JpdGVJbnQiLCAxLAotICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExpdGVyYWxFeHByZXNzaW9uKCItMSIpKSk7Ci0gICAgICAgICAgICBjaGVja2xlbi0+ZWxzZWlmID0gbmV3IElmU3RhdGVtZW50KCk7Ci0gICAgICAgICAgICBjaGVja2xlbi0+ZWxzZWlmLT5zdGF0ZW1lbnRzLT5BZGQobmV3IE1ldGhvZENhbGwoX2RhdGEsICJ3cml0ZUludCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAxLCBuZXcgRmllbGRWYXJpYWJsZSh2LCAibGVuZ3RoIikpKTsKLSAgICAgICAgICAgIHRyeVN0YXRlbWVudC0+c3RhdGVtZW50cy0+QWRkKGNoZWNrbGVuKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChkaXIgJiBJTl9QQVJBTUVURVIpIHsKLSAgICAgICAgICAgIGdlbmVyYXRlX3dyaXRlX3RvX3BhcmNlbCh0LCB0cnlTdGF0ZW1lbnQtPnN0YXRlbWVudHMsIHYsIF9kYXRhLCAwKTsKLSAgICAgICAgfQotICAgICAgICBhcmcgPSBhcmctPm5leHQ7Ci0gICAgfQotCi0gICAgLy8gdGhlIHRyYW5zYWN0IGNhbGwKLSAgICBNZXRob2RDYWxsKiBjYWxsID0gbmV3IE1ldGhvZENhbGwocHJveHlDbGFzcy0+bVJlbW90ZSwgInRyYW5zYWN0IiwgNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIlN0dWIuIiArIHRyYW5zYWN0Q29kZU5hbWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kYXRhLCBfcmVwbHkgPyBfcmVwbHkgOiBOVUxMX1ZBTFVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMaXRlcmFsRXhwcmVzc2lvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25ld2F5ID8gImFuZHJvaWQub3MuSUJpbmRlci5GTEFHX09ORVdBWSIgOiAiMCIpKTsKLSAgICB0cnlTdGF0ZW1lbnQtPnN0YXRlbWVudHMtPkFkZChjYWxsKTsKLQotICAgIC8vIHRocm93IGJhY2sgZXhjZXB0aW9ucy4KLSAgICBpZiAoX3JlcGx5KSB7Ci0gICAgICAgIE1ldGhvZENhbGwqIGV4ID0gbmV3IE1ldGhvZENhbGwoX3JlcGx5LCAicmVhZEV4Y2VwdGlvbiIsIDApOwotICAgICAgICB0cnlTdGF0ZW1lbnQtPnN0YXRlbWVudHMtPkFkZChleCk7Ci0gICAgfQotCi0gICAgLy8gcmV0dXJuaW5nIGFuZCBjbGVhbnVwCi0gICAgaWYgKF9yZXBseSAhPSBOVUxMKSB7Ci0gICAgICAgIGlmIChfcmVzdWx0ICE9IE5VTEwpIHsKLSAgICAgICAgICAgIGdlbmVyYXRlX2NyZWF0ZV9mcm9tX3BhcmNlbChwcm94eS0+cmV0dXJuVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgdHJ5U3RhdGVtZW50LT5zdGF0ZW1lbnRzLCBfcmVzdWx0LCBfcmVwbHksICZjbCk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyB0aGUgb3V0L2lub3V0IHBhcmFtZXRlcnMKLSAgICAgICAgYXJnID0gbWV0aG9kLT5hcmdzOwotICAgICAgICB3aGlsZSAoYXJnICE9IE5VTEwpIHsKLSAgICAgICAgICAgIFR5cGUqIHQgPSBOQU1FUy5TZWFyY2goYXJnLT50eXBlLnR5cGUuZGF0YSk7Ci0gICAgICAgICAgICBWYXJpYWJsZSogdiA9IG5ldyBWYXJpYWJsZSh0LCBhcmctPm5hbWUuZGF0YSwgYXJnLT50eXBlLmRpbWVuc2lvbik7Ci0gICAgICAgICAgICBpZiAoY29udmVydF9kaXJlY3Rpb24oYXJnLT5kaXJlY3Rpb24uZGF0YSkgJiBPVVRfUEFSQU1FVEVSKSB7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdGVfcmVhZF9mcm9tX3BhcmNlbCh0LCB0cnlTdGF0ZW1lbnQtPnN0YXRlbWVudHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYsIF9yZXBseSwgJmNsKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFyZyA9IGFyZy0+bmV4dDsKLSAgICAgICAgfQotCi0gICAgICAgIGZpbmFsbHlTdGF0ZW1lbnQtPnN0YXRlbWVudHMtPkFkZChuZXcgTWV0aG9kQ2FsbChfcmVwbHksICJyZWN5Y2xlIikpOwotICAgIH0KLSAgICBmaW5hbGx5U3RhdGVtZW50LT5zdGF0ZW1lbnRzLT5BZGQobmV3IE1ldGhvZENhbGwoX2RhdGEsICJyZWN5Y2xlIikpOwotCi0gICAgaWYgKF9yZXN1bHQgIT0gTlVMTCkgewotICAgICAgICBwcm94eS0+c3RhdGVtZW50cy0+QWRkKG5ldyBSZXR1cm5TdGF0ZW1lbnQoX3Jlc3VsdCkpOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQKLWdlbmVyYXRlX2ludGVyZmFjZV9kZXNjcmlwdG9ycyhTdHViQ2xhc3MqIHN0dWIsIFByb3h5Q2xhc3MqIHByb3h5KQotewotICAgIC8vIHRoZSBpbnRlcmZhY2UgZGVzY3JpcHRvciB0cmFuc2FjdGlvbiBoYW5kbGVyCi0gICAgQ2FzZSogYyA9IG5ldyBDYXNlKCJJTlRFUkZBQ0VfVFJBTlNBQ1RJT04iKTsKLSAgICBjLT5zdGF0ZW1lbnRzLT5BZGQobmV3IE1ldGhvZENhbGwoc3R1Yi0+dHJhbnNhY3RfcmVwbHksICJ3cml0ZVN0cmluZyIsCi0gICAgICAgICAgICAxLCBuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIkRFU0NSSVBUT1IiKSkpOwotICAgIGMtPnN0YXRlbWVudHMtPkFkZChuZXcgUmV0dXJuU3RhdGVtZW50KFRSVUVfVkFMVUUpKTsKLSAgICBzdHViLT50cmFuc2FjdF9zd2l0Y2gtPmNhc2VzLnB1c2hfYmFjayhjKTsKLQotICAgIC8vIGFuZCB0aGUgcHJveHktc2lkZSBtZXRob2QgcmV0dXJuaW5nIHRoZSBkZXNjcmlwdG9yIGRpcmVjdGx5Ci0gICAgTWV0aG9kKiBnZXREZXNjID0gbmV3IE1ldGhvZDsKLSAgICBnZXREZXNjLT5tb2RpZmllcnMgPSBQVUJMSUM7Ci0gICAgZ2V0RGVzYy0+cmV0dXJuVHlwZSA9IFNUUklOR19UWVBFOwotICAgIGdldERlc2MtPnJldHVyblR5cGVEaW1lbnNpb24gPSAwOwotICAgIGdldERlc2MtPm5hbWUgPSAiZ2V0SW50ZXJmYWNlRGVzY3JpcHRvciI7Ci0gICAgZ2V0RGVzYy0+c3RhdGVtZW50cyA9IG5ldyBTdGF0ZW1lbnRCbG9jazsKLSAgICBnZXREZXNjLT5zdGF0ZW1lbnRzLT5BZGQobmV3IFJldHVyblN0YXRlbWVudChuZXcgTGl0ZXJhbEV4cHJlc3Npb24oIkRFU0NSSVBUT1IiKSkpOwotICAgIHByb3h5LT5lbGVtZW50cy5wdXNoX2JhY2soZ2V0RGVzYyk7Ci19Ci0KLUNsYXNzKgotZ2VuZXJhdGVfYmluZGVyX2ludGVyZmFjZV9jbGFzcyhjb25zdCBpbnRlcmZhY2VfdHlwZSogaWZhY2UpCi17Ci0gICAgSW50ZXJmYWNlVHlwZSogaW50ZXJmYWNlVHlwZSA9IHN0YXRpY19jYXN0PEludGVyZmFjZVR5cGUqPigKLSAgICAgICAgTkFNRVMuRmluZChpZmFjZS0+cGFja2FnZSwgaWZhY2UtPm5hbWUuZGF0YSkpOwotCi0gICAgLy8gdGhlIGludGVyZmFjZSBjbGFzcwotICAgIENsYXNzKiBpbnRlcmZhY2UgPSBuZXcgQ2xhc3M7Ci0gICAgICAgIGludGVyZmFjZS0+Y29tbWVudCA9IGdhdGhlcl9jb21tZW50cyhpZmFjZS0+Y29tbWVudHNfdG9rZW4tPmV4dHJhKTsKLSAgICAgICAgaW50ZXJmYWNlLT5tb2RpZmllcnMgPSBQVUJMSUM7Ci0gICAgICAgIGludGVyZmFjZS0+d2hhdCA9IENsYXNzOjpJTlRFUkZBQ0U7Ci0gICAgICAgIGludGVyZmFjZS0+dHlwZSA9IGludGVyZmFjZVR5cGU7Ci0gICAgICAgIGludGVyZmFjZS0+aW50ZXJmYWNlcy5wdXNoX2JhY2soSUlOVEVSRkFDRV9UWVBFKTsKLQotICAgIC8vIHRoZSBzdHViIGlubmVyIGNsYXNzCi0gICAgU3R1YkNsYXNzKiBzdHViID0gbmV3IFN0dWJDbGFzcygKLSAgICAgICAgTkFNRVMuRmluZChpZmFjZS0+cGFja2FnZSwgYXBwZW5kKGlmYWNlLT5uYW1lLmRhdGEsICIuU3R1YiIpLmNfc3RyKCkpLAotICAgICAgICBpbnRlcmZhY2VUeXBlKTsKLSAgICBpbnRlcmZhY2UtPmVsZW1lbnRzLnB1c2hfYmFjayhzdHViKTsKLQotICAgIC8vIHRoZSBwcm94eSBpbm5lciBjbGFzcwotICAgIFByb3h5Q2xhc3MqIHByb3h5ID0gbmV3IFByb3h5Q2xhc3MoCi0gICAgICAgIE5BTUVTLkZpbmQoaWZhY2UtPnBhY2thZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKGlmYWNlLT5uYW1lLmRhdGEsICIuU3R1Yi5Qcm94eSIpLmNfc3RyKCkpLAotICAgICAgICBpbnRlcmZhY2VUeXBlKTsKLSAgICBzdHViLT5lbGVtZW50cy5wdXNoX2JhY2socHJveHkpOwotCi0gICAgLy8gc3R1YiBhbmQgcHJveHkgc3VwcG9ydCBmb3IgZ2V0SW50ZXJmYWNlRGVzY3JpcHRvcigpCi0gICAgZ2VuZXJhdGVfaW50ZXJmYWNlX2Rlc2NyaXB0b3JzKHN0dWIsIHByb3h5KTsKLQotICAgIC8vIGFsbCB0aGUgZGVjbGFyZWQgbWV0aG9kcyBvZiB0aGUgaW50ZXJmYWNlCi0gICAgaW50IGluZGV4ID0gMDsKLSAgICBpbnRlcmZhY2VfaXRlbV90eXBlKiBpdGVtID0gaWZhY2UtPmludGVyZmFjZV9pdGVtczsKLSAgICB3aGlsZSAoaXRlbSAhPSBOVUxMKSB7Ci0gICAgICAgIGlmIChpdGVtLT5pdGVtX3R5cGUgPT0gTUVUSE9EX1RZUEUpIHsKLSAgICAgICAgICAgIG1ldGhvZF90eXBlICogbWV0aG9kX2l0ZW0gPSAobWV0aG9kX3R5cGUqKSBpdGVtOwotICAgICAgICAgICAgZ2VuZXJhdGVfbWV0aG9kKG1ldGhvZF9pdGVtLCBpbnRlcmZhY2UsIHN0dWIsIHByb3h5LCBtZXRob2RfaXRlbS0+YXNzaWduZWRfaWQpOwotICAgICAgICB9Ci0gICAgICAgIGl0ZW0gPSBpdGVtLT5uZXh0OwotICAgICAgICBpbmRleCsrOwotICAgIH0KLQotICAgIHJldHVybiBpbnRlcmZhY2U7Ci19Ci0KZGlmZiAtLWdpdCBhL3Rvb2xzL2FpZGwvZ2VuZXJhdGVfamF2YV9ycGMuY3BwIGIvdG9vbHMvYWlkbC9nZW5lcmF0ZV9qYXZhX3JwYy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlNGRhY2MuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWlkbC9nZW5lcmF0ZV9qYXZhX3JwYy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDAxICswLDAgQEAKLSNpbmNsdWRlICJnZW5lcmF0ZV9qYXZhLmgiCi0jaW5jbHVkZSAiVHlwZS5oIgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLVR5cGUqIFNFUlZJQ0VfQ09OVEVYVF9UWVBFID0gbmV3IFR5cGUoImFuZHJvaWQuY29udGVudCIsCi0gICAgICAgICJDb250ZXh0IiwgVHlwZTo6QlVJTFRfSU4sIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwotVHlwZSogUFJFU0VOVEVSX0JBU0VfVFlQRSA9IG5ldyBUeXBlKCJhbmRyb2lkLnN1cHBvcnQucGxhY2UuY29ubmVjdG9yIiwKLSAgICAgICAgIkV2ZW50TGlzdGVuZXIiLCBUeXBlOjpCVUlMVF9JTiwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7Ci1UeXBlKiBQUkVTRU5URVJfTElTVEVORVJfQkFTRV9UWVBFID0gbmV3IFR5cGUoImFuZHJvaWQuc3VwcG9ydC5wbGFjZS5jb25uZWN0b3IiLAotICAgICAgICAiRXZlbnRMaXN0ZW5lci5MaXN0ZW5lciIsIFR5cGU6OkJVSUxUX0lOLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKLVR5cGUqIFJQQ19CUk9LRVJfVFlQRSA9IG5ldyBUeXBlKCJhbmRyb2lkLnN1cHBvcnQucGxhY2UuY29ubmVjdG9yIiwgIkJyb2tlciIsCi0gICAgICAgIFR5cGU6OkJVSUxUX0lOLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKLVR5cGUqIFJQQ19DT05UQUlORVJfVFlQRSA9IG5ldyBUeXBlKCJjb20uYW5kcm9pZC5hdGhvbWUuY29ubmVjdG9yIiwgIkNvbm5lY3RvckNvbnRhaW5lciIsCi0gICAgICAgIFR5cGU6OkJVSUxUX0lOLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKLVR5cGUqIFBMQUNFX0lORk9fVFlQRSA9IG5ldyBUeXBlKCJhbmRyb2lkLnN1cHBvcnQucGxhY2UuY29ubmVjdG9yIiwgIlBsYWNlSW5mbyIsCi0gICAgICAgIFR5cGU6OkJVSUxUX0lOLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKLS8vIFRPRE86IEp1c3QgdXNlIEVuZHBvaW50LCBzbyB0aGlzIHdvcmtzIGZvciBhbGwgZW5kcG9pbnRzLgotVHlwZSogUlBDX0NPTk5FQ1RPUl9UWVBFID0gbmV3IFR5cGUoImFuZHJvaWQuc3VwcG9ydC5wbGFjZS5jb25uZWN0b3IiLCAiQ29ubmVjdG9yIiwKLSAgICAgICAgVHlwZTo6QlVJTFRfSU4sIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwotVHlwZSogUlBDX0VORFBPSU5UX0lORk9fVFlQRSA9IG5ldyBVc2VyRGF0YVR5cGUoImFuZHJvaWQuc3VwcG9ydC5wbGFjZS5ycGMiLAotICAgICAgICAiRW5kcG9pbnRJbmZvIiwgdHJ1ZSwgX19GSUxFX18sIF9fTElORV9fKTsKLVR5cGUqIFJQQ19SRVNVTFRfSEFORExFUl9UWVBFID0gbmV3IFVzZXJEYXRhVHlwZSgiYW5kcm9pZC5zdXBwb3J0LnBsYWNlLnJwYyIsICJScGNSZXN1bHRIYW5kbGVyIiwKLSAgICAgICAgdHJ1ZSwgX19GSUxFX18sIF9fTElORV9fKTsKLVR5cGUqIFJQQ19FUlJPUl9MSVNURU5FUl9UWVBFID0gbmV3IFR5cGUoImFuZHJvaWQuc3VwcG9ydC5wbGFjZS5ycGMiLCAiUnBjRXJyb3JIYW5kbGVyIiwKLSAgICAgICAgVHlwZTo6QlVJTFRfSU4sIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwotVHlwZSogUlBDX0NPTlRFWFRfVFlQRSA9IG5ldyBVc2VyRGF0YVR5cGUoImFuZHJvaWQuc3VwcG9ydC5wbGFjZS5ycGMiLCAiUnBjQ29udGV4dCIsIHRydWUsCi0gICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7Ci0KLXN0YXRpYyB2b2lkIGdlbmVyYXRlX2NyZWF0ZV9mcm9tX2RhdGEoVHlwZSogdCwgU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBjb25zdCBzdHJpbmcmIGtleSwKLSAgICAgICAgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBkYXRhLCBWYXJpYWJsZSoqIGNsKTsKLXN0YXRpYyB2b2lkIGdlbmVyYXRlX25ld19hcnJheShUeXBlKiB0LCBTdGF0ZW1lbnRCbG9jayogYWRkVG8sIFZhcmlhYmxlKiB2LCBWYXJpYWJsZSogZnJvbSk7Ci1zdGF0aWMgdm9pZCBnZW5lcmF0ZV93cml0ZV90b19kYXRhKFR5cGUqIHQsIFN0YXRlbWVudEJsb2NrKiBhZGRUbywgRXhwcmVzc2lvbiogaywgVmFyaWFibGUqIHYsCi0gICAgICAgIFZhcmlhYmxlKiBkYXRhKTsKLQotc3RhdGljIHN0cmluZwotZm9ybWF0X2ludChpbnQgbikKLXsKLSAgICBjaGFyIHN0clsyMF07Ci0gICAgc3ByaW50ZihzdHIsICIlZCIsIG4pOwotICAgIHJldHVybiBzdHJpbmcoc3RyKTsKLX0KLQotc3RhdGljIHN0cmluZwotY2xhc3NfbmFtZV9sZWFmKGNvbnN0IHN0cmluZyYgc3RyKQotewotICAgIHN0cmluZzo6c2l6ZV90eXBlIHBvcyA9IHN0ci5yZmluZCgnLicpOwotICAgIGlmIChwb3MgPT0gc3RyaW5nOjpucG9zKSB7Ci0gICAgICAgIHJldHVybiBzdHI7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIHN0cmluZyhzdHIsIHBvcysxKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyBzdHJpbmcKLXJlc3VsdHNfY2xhc3NfbmFtZShjb25zdCBzdHJpbmcmIG4pCi17Ci0gICAgc3RyaW5nIHN0ciA9IG47Ci0gICAgc3RyWzBdID0gdG91cHBlcihzdHJbMF0pOwotICAgIHN0ci5pbnNlcnQoMCwgIk9uIik7Ci0gICAgcmV0dXJuIHN0cjsKLX0KLQotc3RhdGljIHN0cmluZwotcmVzdWx0c19tZXRob2RfbmFtZShjb25zdCBzdHJpbmcmIG4pCi17Ci0gICAgc3RyaW5nIHN0ciA9IG47Ci0gICAgc3RyWzBdID0gdG91cHBlcihzdHJbMF0pOwotICAgIHN0ci5pbnNlcnQoMCwgIm9uIik7Ci0gICAgcmV0dXJuIHN0cjsKLX0KLQotc3RhdGljIHN0cmluZwotcHVzaF9tZXRob2RfbmFtZShjb25zdCBzdHJpbmcmIG4pCi17Ci0gICAgc3RyaW5nIHN0ciA9IG47Ci0gICAgc3RyWzBdID0gdG91cHBlcihzdHJbMF0pOwotICAgIHN0ci5pbnNlcnQoMCwgInB1c2giKTsKLSAgICByZXR1cm4gc3RyOwotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1jbGFzcyBEaXNwYXRjaGVyQ2xhc3MgOiBwdWJsaWMgQ2xhc3MKLXsKLXB1YmxpYzoKLSAgICBEaXNwYXRjaGVyQ2xhc3MoY29uc3QgaW50ZXJmYWNlX3R5cGUqIGlmYWNlLCBFeHByZXNzaW9uKiB0YXJnZXQpOwotICAgIHZpcnR1YWwgfkRpc3BhdGNoZXJDbGFzcygpOwotCi0gICAgdm9pZCBBZGRNZXRob2QoY29uc3QgbWV0aG9kX3R5cGUqIG1ldGhvZCk7Ci0gICAgdm9pZCBEb25lV2l0aE1ldGhvZHMoKTsKLQotICAgIE1ldGhvZCogcHJvY2Vzc01ldGhvZDsKLSAgICBWYXJpYWJsZSogYWN0aW9uUGFyYW07Ci0gICAgVmFyaWFibGUqIHJlcXVlc3RQYXJhbTsKLSAgICBWYXJpYWJsZSogcnBjQ29udGV4dFBhcmFtOwotICAgIFZhcmlhYmxlKiBlcnJvclBhcmFtOwotICAgIFZhcmlhYmxlKiByZXF1ZXN0RGF0YTsKLSAgICBWYXJpYWJsZSogcmVzdWx0RGF0YTsKLSAgICBJZlN0YXRlbWVudCogZGlzcGF0Y2hJZlN0YXRlbWVudDsKLSAgICBFeHByZXNzaW9uKiB0YXJnZXRFeHByZXNzaW9uOwotCi1wcml2YXRlOgotICAgIHZvaWQgZ2VuZXJhdGVfcHJvY2VzcygpOwotfTsKLQotRGlzcGF0Y2hlckNsYXNzOjpEaXNwYXRjaGVyQ2xhc3MoY29uc3QgaW50ZXJmYWNlX3R5cGUqIGlmYWNlLCBFeHByZXNzaW9uKiB0YXJnZXQpCi0gICAgOkNsYXNzKCksCi0gICAgIGRpc3BhdGNoSWZTdGF0ZW1lbnQoTlVMTCksCi0gICAgIHRhcmdldEV4cHJlc3Npb24odGFyZ2V0KQotewotICAgIGdlbmVyYXRlX3Byb2Nlc3MoKTsKLX0KLQotRGlzcGF0Y2hlckNsYXNzOjp+RGlzcGF0Y2hlckNsYXNzKCkKLXsKLX0KLQotdm9pZAotRGlzcGF0Y2hlckNsYXNzOjpnZW5lcmF0ZV9wcm9jZXNzKCkKLXsKLSAgICAvLyBieXRlW10gcHJvY2VzcyhTdHJpbmcgYWN0aW9uLCBieXRlW10gcGFyYW1zLCBScGNDb250ZXh0IGNvbnRleHQsIFJwY0Vycm9yIHN0YXR1cykKLSAgICB0aGlzLT5wcm9jZXNzTWV0aG9kID0gbmV3IE1ldGhvZDsKLSAgICAgICAgdGhpcy0+cHJvY2Vzc01ldGhvZC0+bW9kaWZpZXJzID0gUFVCTElDOwotICAgICAgICB0aGlzLT5wcm9jZXNzTWV0aG9kLT5yZXR1cm5UeXBlID0gQllURV9UWVBFOwotICAgICAgICB0aGlzLT5wcm9jZXNzTWV0aG9kLT5yZXR1cm5UeXBlRGltZW5zaW9uID0gMTsKLSAgICAgICAgdGhpcy0+cHJvY2Vzc01ldGhvZC0+bmFtZSA9ICJwcm9jZXNzIjsKLSAgICAgICAgdGhpcy0+cHJvY2Vzc01ldGhvZC0+c3RhdGVtZW50cyA9IG5ldyBTdGF0ZW1lbnRCbG9jazsKLQotICAgIHRoaXMtPmFjdGlvblBhcmFtID0gbmV3IFZhcmlhYmxlKFNUUklOR19UWVBFLCAiYWN0aW9uIik7Ci0gICAgdGhpcy0+cHJvY2Vzc01ldGhvZC0+cGFyYW1ldGVycy5wdXNoX2JhY2sodGhpcy0+YWN0aW9uUGFyYW0pOwotCi0gICAgdGhpcy0+cmVxdWVzdFBhcmFtID0gbmV3IFZhcmlhYmxlKEJZVEVfVFlQRSwgInJlcXVlc3RQYXJhbSIsIDEpOwotICAgIHRoaXMtPnByb2Nlc3NNZXRob2QtPnBhcmFtZXRlcnMucHVzaF9iYWNrKHRoaXMtPnJlcXVlc3RQYXJhbSk7Ci0KLSAgICB0aGlzLT5ycGNDb250ZXh0UGFyYW0gPSBuZXcgVmFyaWFibGUoUlBDX0NPTlRFWFRfVFlQRSwgImNvbnRleHQiLCAwKTsKLSAgICB0aGlzLT5wcm9jZXNzTWV0aG9kLT5wYXJhbWV0ZXJzLnB1c2hfYmFjayh0aGlzLT5ycGNDb250ZXh0UGFyYW0pOyAgICAKLQotICAgIHRoaXMtPmVycm9yUGFyYW0gPSBuZXcgVmFyaWFibGUoUlBDX0VSUk9SX1RZUEUsICJlcnJvclBhcmFtIiwgMCk7Ci0gICAgdGhpcy0+cHJvY2Vzc01ldGhvZC0+cGFyYW1ldGVycy5wdXNoX2JhY2sodGhpcy0+ZXJyb3JQYXJhbSk7Ci0KLSAgICB0aGlzLT5yZXF1ZXN0RGF0YSA9IG5ldyBWYXJpYWJsZShSUENfREFUQV9UWVBFLCAicmVxdWVzdCIpOwotICAgIHRoaXMtPnByb2Nlc3NNZXRob2QtPnN0YXRlbWVudHMtPkFkZChuZXcgVmFyaWFibGVEZWNsYXJhdGlvbihyZXF1ZXN0RGF0YSwKLSAgICAgICAgICAgICAgICBuZXcgTmV3RXhwcmVzc2lvbihSUENfREFUQV9UWVBFLCAxLCB0aGlzLT5yZXF1ZXN0UGFyYW0pKSk7Ci0KLSAgICB0aGlzLT5yZXN1bHREYXRhID0gbmV3IFZhcmlhYmxlKFJQQ19EQVRBX1RZUEUsICJyZXN1bHREYXRhIik7Ci0gICAgdGhpcy0+cHJvY2Vzc01ldGhvZC0+c3RhdGVtZW50cy0+QWRkKG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKHRoaXMtPnJlc3VsdERhdGEsCi0gICAgICAgICAgICAgICAgTlVMTF9WQUxVRSkpOwotfQotCi12b2lkCi1EaXNwYXRjaGVyQ2xhc3M6OkFkZE1ldGhvZChjb25zdCBtZXRob2RfdHlwZSogbWV0aG9kKQotewotICAgIGFyZ190eXBlKiBhcmc7Ci0KLSAgICAvLyBUaGUgaWYvc3dpdGNoIHN0YXRlbWVudAotICAgIElmU3RhdGVtZW50KiBpZnMgPSBuZXcgSWZTdGF0ZW1lbnQoKTsKLSAgICAgICAgaWZzLT5leHByZXNzaW9uID0gbmV3IE1ldGhvZENhbGwobmV3IFN0cmluZ0xpdGVyYWxFeHByZXNzaW9uKG1ldGhvZC0+bmFtZS5kYXRhKSwgImVxdWFscyIsCi0gICAgICAgICAgICAgICAgMSwgdGhpcy0+YWN0aW9uUGFyYW0pOwotICAgIFN0YXRlbWVudEJsb2NrKiBibG9jayA9IGlmcy0+c3RhdGVtZW50cyA9IG5ldyBTdGF0ZW1lbnRCbG9jazsKLSAgICBpZiAodGhpcy0+ZGlzcGF0Y2hJZlN0YXRlbWVudCA9PSBOVUxMKSB7Ci0gICAgICAgIHRoaXMtPmRpc3BhdGNoSWZTdGF0ZW1lbnQgPSBpZnM7Ci0gICAgICAgIHRoaXMtPnByb2Nlc3NNZXRob2QtPnN0YXRlbWVudHMtPkFkZChkaXNwYXRjaElmU3RhdGVtZW50KTsKLSAgICB9IGVsc2UgewotICAgICAgICB0aGlzLT5kaXNwYXRjaElmU3RhdGVtZW50LT5lbHNlaWYgPSBpZnM7Ci0gICAgICAgIHRoaXMtPmRpc3BhdGNoSWZTdGF0ZW1lbnQgPSBpZnM7Ci0gICAgfQotICAgIAotICAgIC8vIFRoZSBjYWxsIHRvIGRlY2wgKGZyb20gYWJvdmUpCi0gICAgTWV0aG9kQ2FsbCogcmVhbENhbGwgPSBuZXcgTWV0aG9kQ2FsbCh0aGlzLT50YXJnZXRFeHByZXNzaW9uLCBtZXRob2QtPm5hbWUuZGF0YSk7Ci0KLSAgICAvLyBhcmdzCi0gICAgVmFyaWFibGUqIGNsYXNzTG9hZGVyID0gTlVMTDsKLSAgICBWYXJpYWJsZUZhY3Rvcnkgc3R1YkFyZ3MoIl9hcmciKTsKLSAgICBhcmcgPSBtZXRob2QtPmFyZ3M7Ci0gICAgd2hpbGUgKGFyZyAhPSBOVUxMKSB7Ci0gICAgICAgIFR5cGUqIHQgPSBOQU1FUy5TZWFyY2goYXJnLT50eXBlLnR5cGUuZGF0YSk7Ci0gICAgICAgIFZhcmlhYmxlKiB2ID0gc3R1YkFyZ3MuR2V0KHQpOwotICAgICAgICB2LT5kaW1lbnNpb24gPSBhcmctPnR5cGUuZGltZW5zaW9uOwotCi0gICAgICAgIC8vIFVubWFyc2hhbGwgdGhlIHBhcmFtZXRlcgotICAgICAgICBibG9jay0+QWRkKG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKHYpKTsKLSAgICAgICAgaWYgKGNvbnZlcnRfZGlyZWN0aW9uKGFyZy0+ZGlyZWN0aW9uLmRhdGEpICYgSU5fUEFSQU1FVEVSKSB7Ci0gICAgICAgICAgICBnZW5lcmF0ZV9jcmVhdGVfZnJvbV9kYXRhKHQsIGJsb2NrLCBhcmctPm5hbWUuZGF0YSwgdiwKLSAgICAgICAgICAgICAgICAgICAgdGhpcy0+cmVxdWVzdERhdGEsICZjbGFzc0xvYWRlcik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoYXJnLT50eXBlLmRpbWVuc2lvbiA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgYmxvY2stPkFkZChuZXcgQXNzaWdubWVudCh2LCBuZXcgTmV3RXhwcmVzc2lvbih2LT50eXBlKSkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSBpZiAoYXJnLT50eXBlLmRpbWVuc2lvbiA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdGVfbmV3X2FycmF5KHYtPnR5cGUsIGJsb2NrLCB2LCB0aGlzLT5yZXF1ZXN0RGF0YSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImFpZGw6aW50ZXJuYWwgZXJyb3IgJXM6JWRcbiIsIF9fRklMRV9fLAotICAgICAgICAgICAgICAgICAgICAgICAgX19MSU5FX18pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gQWRkIHRoYXQgcGFyYW1ldGVyIHRvIHRoZSBtZXRob2QgY2FsbAotICAgICAgICByZWFsQ2FsbC0+YXJndW1lbnRzLnB1c2hfYmFjayh2KTsKLQotICAgICAgICBhcmcgPSBhcmctPm5leHQ7Ci0gICAgfQotCi0gICAgLy8gQWRkIGEgZmluYWwgcGFyYW1ldGVyOiBScGNDb250ZXh0LiBDb250YWlucyBkYXRhIGFib3V0Ci0gICAgLy8gaW5jb21pbmcgcmVxdWVzdCAoZS5nLiwgY2VydGlmaWNhdGUpCi0gICAgcmVhbENhbGwtPmFyZ3VtZW50cy5wdXNoX2JhY2sobmV3IFZhcmlhYmxlKFJQQ19DT05URVhUX1RZUEUsICJjb250ZXh0IiwgMCkpOwotCi0gICAgVHlwZSogcmV0dXJuVHlwZSA9IE5BTUVTLlNlYXJjaChtZXRob2QtPnR5cGUudHlwZS5kYXRhKTsKLSAgICBpZiAocmV0dXJuVHlwZSA9PSBFVkVOVF9GQUtFX1RZUEUpIHsKLSAgICAgICAgcmV0dXJuVHlwZSA9IFZPSURfVFlQRTsKLSAgICB9Ci0gICAgCi0gICAgLy8gdGhlIHJlYWwgY2FsbAotICAgIGJvb2wgZmlyc3QgPSB0cnVlOwotICAgIFZhcmlhYmxlKiBfcmVzdWx0ID0gTlVMTDsKLSAgICBpZiAocmV0dXJuVHlwZSA9PSBWT0lEX1RZUEUpIHsKLSAgICAgICAgYmxvY2stPkFkZChyZWFsQ2FsbCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgX3Jlc3VsdCA9IG5ldyBWYXJpYWJsZShyZXR1cm5UeXBlLCAiX3Jlc3VsdCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC0+dHlwZS5kaW1lbnNpb24pOwotICAgICAgICBibG9jay0+QWRkKG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKF9yZXN1bHQsIHJlYWxDYWxsKSk7Ci0KLSAgICAgICAgLy8gbmVlZCB0aGUgcmVzdWx0IFJwY0RhdGEKLSAgICAgICAgaWYgKGZpcnN0KSB7Ci0gICAgICAgICAgICBibG9jay0+QWRkKG5ldyBBc3NpZ25tZW50KHRoaXMtPnJlc3VsdERhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXcgTmV3RXhwcmVzc2lvbihSUENfREFUQV9UWVBFKSkpOwotICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIG1hcnNoYWxsIHRoZSByZXR1cm4gdmFsdWUKLSAgICAgICAgZ2VuZXJhdGVfd3JpdGVfdG9fZGF0YShyZXR1cm5UeXBlLCBibG9jaywKLSAgICAgICAgICAgICAgICBuZXcgU3RyaW5nTGl0ZXJhbEV4cHJlc3Npb24oIl9yZXN1bHQiKSwgX3Jlc3VsdCwgdGhpcy0+cmVzdWx0RGF0YSk7Ci0gICAgfQotCi0gICAgLy8gb3V0IHBhcmFtZXRlcnMKLSAgICBpbnQgaSA9IDA7Ci0gICAgYXJnID0gbWV0aG9kLT5hcmdzOwotICAgIHdoaWxlIChhcmcgIT0gTlVMTCkgewotICAgICAgICBUeXBlKiB0ID0gTkFNRVMuU2VhcmNoKGFyZy0+dHlwZS50eXBlLmRhdGEpOwotICAgICAgICBWYXJpYWJsZSogdiA9IHN0dWJBcmdzLkdldChpKyspOwotCi0gICAgICAgIGlmIChjb252ZXJ0X2RpcmVjdGlvbihhcmctPmRpcmVjdGlvbi5kYXRhKSAmIE9VVF9QQVJBTUVURVIpIHsKLSAgICAgICAgICAgIC8vIG5lZWQgdGhlIHJlc3VsdCBScGNEYXRhCi0gICAgICAgICAgICBpZiAoZmlyc3QpIHsKLSAgICAgICAgICAgICAgICBibG9jay0+QWRkKG5ldyBBc3NpZ25tZW50KHRoaXMtPnJlc3VsdERhdGEsIG5ldyBOZXdFeHByZXNzaW9uKFJQQ19EQVRBX1RZUEUpKSk7Ci0gICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZ2VuZXJhdGVfd3JpdGVfdG9fZGF0YSh0LCBibG9jaywgbmV3IFN0cmluZ0xpdGVyYWxFeHByZXNzaW9uKGFyZy0+bmFtZS5kYXRhKSwKLSAgICAgICAgICAgICAgICAgICAgdiwgdGhpcy0+cmVzdWx0RGF0YSk7Ci0gICAgICAgIH0KLQotICAgICAgICBhcmcgPSBhcmctPm5leHQ7Ci0gICAgfQotfQotCi12b2lkCi1EaXNwYXRjaGVyQ2xhc3M6OkRvbmVXaXRoTWV0aG9kcygpCi17Ci0gICAgaWYgKHRoaXMtPmRpc3BhdGNoSWZTdGF0ZW1lbnQgPT0gTlVMTCkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdGhpcy0+ZWxlbWVudHMucHVzaF9iYWNrKHRoaXMtPnByb2Nlc3NNZXRob2QpOwotCi0gICAgSWZTdGF0ZW1lbnQqIGZhbGx0aHJvdWdoID0gbmV3IElmU3RhdGVtZW50KCk7Ci0gICAgICAgIGZhbGx0aHJvdWdoLT5zdGF0ZW1lbnRzID0gbmV3IFN0YXRlbWVudEJsb2NrOwotICAgICAgICBmYWxsdGhyb3VnaC0+c3RhdGVtZW50cy0+QWRkKG5ldyBSZXR1cm5TdGF0ZW1lbnQoCi0gICAgICAgICAgICAgICAgICAgIG5ldyBNZXRob2RDYWxsKFNVUEVSX1ZBTFVFLCAicHJvY2VzcyIsIDQsIAotICAgICAgICAgICAgICAgICAgICB0aGlzLT5hY3Rpb25QYXJhbSwgdGhpcy0+cmVxdWVzdFBhcmFtLCAKLSAgICAgICAgICAgICAgICAgICAgdGhpcy0+cnBjQ29udGV4dFBhcmFtLAotICAgICAgICAgICAgICAgICAgICB0aGlzLT5lcnJvclBhcmFtKSkpOwotICAgIHRoaXMtPmRpc3BhdGNoSWZTdGF0ZW1lbnQtPmVsc2VpZiA9IGZhbGx0aHJvdWdoOwotICAgIElmU3RhdGVtZW50KiBzID0gbmV3IElmU3RhdGVtZW50OwotICAgICAgICBzLT5zdGF0ZW1lbnRzID0gbmV3IFN0YXRlbWVudEJsb2NrOwotICAgIHRoaXMtPnByb2Nlc3NNZXRob2QtPnN0YXRlbWVudHMtPkFkZChzKTsKLSAgICBzLT5leHByZXNzaW9uID0gbmV3IENvbXBhcmlzb24odGhpcy0+cmVzdWx0RGF0YSwgIiE9IiwgTlVMTF9WQUxVRSk7Ci0gICAgcy0+c3RhdGVtZW50cy0+QWRkKG5ldyBSZXR1cm5TdGF0ZW1lbnQobmV3IE1ldGhvZENhbGwodGhpcy0+cmVzdWx0RGF0YSwgInNlcmlhbGl6ZSIpKSk7Ci0gICAgcy0+ZWxzZWlmID0gbmV3IElmU3RhdGVtZW50OwotICAgIHMgPSBzLT5lbHNlaWY7Ci0gICAgcy0+c3RhdGVtZW50cy0+QWRkKG5ldyBSZXR1cm5TdGF0ZW1lbnQoTlVMTF9WQUxVRSkpOwotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1jbGFzcyBScGNQcm94eUNsYXNzIDogcHVibGljIENsYXNzCi17Ci1wdWJsaWM6Ci0gICAgUnBjUHJveHlDbGFzcyhjb25zdCBpbnRlcmZhY2VfdHlwZSogaWZhY2UsIEludGVyZmFjZVR5cGUqIGludGVyZmFjZVR5cGUpOwotICAgIHZpcnR1YWwgflJwY1Byb3h5Q2xhc3MoKTsKLQotICAgIFZhcmlhYmxlKiBlbmRwb2ludDsKLSAgICBWYXJpYWJsZSogYnJva2VyOwotCi1wcml2YXRlOgotICAgIHZvaWQgZ2VuZXJhdGVfY3RvcigpOwotICAgIHZvaWQgZ2VuZXJhdGVfZ2V0X2VuZHBvaW50X2luZm8oKTsKLX07Ci0KLVJwY1Byb3h5Q2xhc3M6OlJwY1Byb3h5Q2xhc3MoY29uc3QgaW50ZXJmYWNlX3R5cGUqIGlmYWNlLCBJbnRlcmZhY2VUeXBlKiBpbnRlcmZhY2VUeXBlKQotICAgIDpDbGFzcygpCi17Ci0gICAgdGhpcy0+Y29tbWVudCA9IGdhdGhlcl9jb21tZW50cyhpZmFjZS0+Y29tbWVudHNfdG9rZW4tPmV4dHJhKTsKLSAgICB0aGlzLT5tb2RpZmllcnMgPSBQVUJMSUM7Ci0gICAgdGhpcy0+d2hhdCA9IENsYXNzOjpDTEFTUzsKLSAgICB0aGlzLT50eXBlID0gaW50ZXJmYWNlVHlwZTsKLQotICAgIC8vIGJyb2tlcgotICAgIHRoaXMtPmJyb2tlciA9IG5ldyBWYXJpYWJsZShSUENfQlJPS0VSX1RZUEUsICJfYnJva2VyIik7Ci0gICAgdGhpcy0+ZWxlbWVudHMucHVzaF9iYWNrKG5ldyBGaWVsZChQUklWQVRFLCB0aGlzLT5icm9rZXIpKTsKLSAgICAvLyBlbmRwb2ludAotICAgIHRoaXMtPmVuZHBvaW50ID0gbmV3IFZhcmlhYmxlKFJQQ19FTkRQT0lOVF9JTkZPX1RZUEUsICJfZW5kcG9pbnQiKTsKLSAgICB0aGlzLT5lbGVtZW50cy5wdXNoX2JhY2sobmV3IEZpZWxkKFBSSVZBVEUsIHRoaXMtPmVuZHBvaW50KSk7Ci0KLSAgICAvLyBtZXRob2RzCi0gICAgZ2VuZXJhdGVfY3RvcigpOwotICAgIGdlbmVyYXRlX2dldF9lbmRwb2ludF9pbmZvKCk7Ci19Ci0KLVJwY1Byb3h5Q2xhc3M6On5ScGNQcm94eUNsYXNzKCkKLXsKLX0KLQotdm9pZAotUnBjUHJveHlDbGFzczo6Z2VuZXJhdGVfY3RvcigpCi17Ci0gICAgVmFyaWFibGUqIGJyb2tlciA9IG5ldyBWYXJpYWJsZShSUENfQlJPS0VSX1RZUEUsICJicm9rZXIiKTsKLSAgICBWYXJpYWJsZSogZW5kcG9pbnQgPSBuZXcgVmFyaWFibGUoUlBDX0VORFBPSU5UX0lORk9fVFlQRSwgImVuZHBvaW50Iik7Ci0gICAgTWV0aG9kKiBjdG9yID0gbmV3IE1ldGhvZDsKLSAgICAgICAgY3Rvci0+bW9kaWZpZXJzID0gUFVCTElDOwotICAgICAgICBjdG9yLT5uYW1lID0gY2xhc3NfbmFtZV9sZWFmKHRoaXMtPnR5cGUtPk5hbWUoKSk7Ci0gICAgICAgIGN0b3ItPnN0YXRlbWVudHMgPSBuZXcgU3RhdGVtZW50QmxvY2s7Ci0gICAgICAgIGN0b3ItPnBhcmFtZXRlcnMucHVzaF9iYWNrKGJyb2tlcik7Ci0gICAgICAgIGN0b3ItPnBhcmFtZXRlcnMucHVzaF9iYWNrKGVuZHBvaW50KTsKLSAgICB0aGlzLT5lbGVtZW50cy5wdXNoX2JhY2soY3Rvcik7Ci0KLSAgICBjdG9yLT5zdGF0ZW1lbnRzLT5BZGQobmV3IEFzc2lnbm1lbnQodGhpcy0+YnJva2VyLCBicm9rZXIpKTsKLSAgICBjdG9yLT5zdGF0ZW1lbnRzLT5BZGQobmV3IEFzc2lnbm1lbnQodGhpcy0+ZW5kcG9pbnQsIGVuZHBvaW50KSk7Ci19Ci0KLXZvaWQKLVJwY1Byb3h5Q2xhc3M6OmdlbmVyYXRlX2dldF9lbmRwb2ludF9pbmZvKCkKLXsKLSAgICBNZXRob2QqIGdldCA9IG5ldyBNZXRob2Q7Ci0gICAgZ2V0LT5tb2RpZmllcnMgPSBQVUJMSUM7Ci0gICAgZ2V0LT5yZXR1cm5UeXBlID0gUlBDX0VORFBPSU5UX0lORk9fVFlQRTsKLSAgICBnZXQtPm5hbWUgPSAiZ2V0RW5kcG9pbnRJbmZvIjsKLSAgICBnZXQtPnN0YXRlbWVudHMgPSBuZXcgU3RhdGVtZW50QmxvY2s7Ci0gICAgdGhpcy0+ZWxlbWVudHMucHVzaF9iYWNrKGdldCk7Ci0KLSAgICBnZXQtPnN0YXRlbWVudHMtPkFkZChuZXcgUmV0dXJuU3RhdGVtZW50KHRoaXMtPmVuZHBvaW50KSk7Ci19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLWNsYXNzIEV2ZW50TGlzdGVuZXJDbGFzcyA6IHB1YmxpYyBEaXNwYXRjaGVyQ2xhc3MKLXsKLXB1YmxpYzoKLSAgICBFdmVudExpc3RlbmVyQ2xhc3MoY29uc3QgaW50ZXJmYWNlX3R5cGUqIGlmYWNlLCBUeXBlKiBsaXN0ZW5lclR5cGUpOwotICAgIHZpcnR1YWwgfkV2ZW50TGlzdGVuZXJDbGFzcygpOwotCi0gICAgVmFyaWFibGUqIF9saXN0ZW5lcjsKLQotcHJpdmF0ZToKLSAgICB2b2lkIGdlbmVyYXRlX2N0b3IoKTsKLX07Ci0KLUV4cHJlc3Npb24qCi1nZW5lcmF0ZV9nZXRfbGlzdGVuZXJfZXhwcmVzc2lvbihUeXBlKiBjYXN0KQotewotICAgIHJldHVybiBuZXcgQ2FzdChjYXN0LCBuZXcgTWV0aG9kQ2FsbChUSElTX1ZBTFVFLCAiZ2V0VmlldyIpKTsKLX0KLQotRXZlbnRMaXN0ZW5lckNsYXNzOjpFdmVudExpc3RlbmVyQ2xhc3MoY29uc3QgaW50ZXJmYWNlX3R5cGUqIGlmYWNlLCBUeXBlKiBsaXN0ZW5lclR5cGUpCi0gICAgOkRpc3BhdGNoZXJDbGFzcyhpZmFjZSwgbmV3IEZpZWxkVmFyaWFibGUoVEhJU19WQUxVRSwgIl9saXN0ZW5lciIpKQotewotICAgIHRoaXMtPm1vZGlmaWVycyA9IFBSSVZBVEU7Ci0gICAgdGhpcy0+d2hhdCA9IENsYXNzOjpDTEFTUzsKLSAgICB0aGlzLT50eXBlID0gbmV3IFR5cGUoaWZhY2UtPnBhY2thZ2UgPyBpZmFjZS0+cGFja2FnZSA6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKGlmYWNlLT5uYW1lLmRhdGEsICIuUHJlc2VudGVyIiksCi0gICAgICAgICAgICAgICAgICAgICAgICBUeXBlOjpHRU5FUkFURUQsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwotICAgIHRoaXMtPmV4dGVuZHMgPSBQUkVTRU5URVJfQkFTRV9UWVBFOwotCi0gICAgdGhpcy0+X2xpc3RlbmVyID0gbmV3IFZhcmlhYmxlKGxpc3RlbmVyVHlwZSwgIl9saXN0ZW5lciIpOwotICAgIHRoaXMtPmVsZW1lbnRzLnB1c2hfYmFjayhuZXcgRmllbGQoUFJJVkFURSwgdGhpcy0+X2xpc3RlbmVyKSk7Ci0KLSAgICAvLyBtZXRob2RzCi0gICAgZ2VuZXJhdGVfY3RvcigpOwotfQotCi1FdmVudExpc3RlbmVyQ2xhc3M6On5FdmVudExpc3RlbmVyQ2xhc3MoKQotewotfQotCi12b2lkCi1FdmVudExpc3RlbmVyQ2xhc3M6OmdlbmVyYXRlX2N0b3IoKQotewotICAgIFZhcmlhYmxlKiBicm9rZXIgPSBuZXcgVmFyaWFibGUoUlBDX0JST0tFUl9UWVBFLCAiYnJva2VyIik7Ci0gICAgVmFyaWFibGUqIGxpc3RlbmVyID0gbmV3IFZhcmlhYmxlKHRoaXMtPl9saXN0ZW5lci0+dHlwZSwgImxpc3RlbmVyIik7Ci0gICAgTWV0aG9kKiBjdG9yID0gbmV3IE1ldGhvZDsKLSAgICAgICAgY3Rvci0+bW9kaWZpZXJzID0gUFVCTElDOwotICAgICAgICBjdG9yLT5uYW1lID0gY2xhc3NfbmFtZV9sZWFmKHRoaXMtPnR5cGUtPk5hbWUoKSk7Ci0gICAgICAgIGN0b3ItPnN0YXRlbWVudHMgPSBuZXcgU3RhdGVtZW50QmxvY2s7Ci0gICAgICAgIGN0b3ItPnBhcmFtZXRlcnMucHVzaF9iYWNrKGJyb2tlcik7Ci0gICAgICAgIGN0b3ItPnBhcmFtZXRlcnMucHVzaF9iYWNrKGxpc3RlbmVyKTsKLSAgICB0aGlzLT5lbGVtZW50cy5wdXNoX2JhY2soY3Rvcik7Ci0KLSAgICBjdG9yLT5zdGF0ZW1lbnRzLT5BZGQobmV3IE1ldGhvZENhbGwoInN1cGVyIiwgMiwgYnJva2VyLCBsaXN0ZW5lcikpOwotICAgIGN0b3ItPnN0YXRlbWVudHMtPkFkZChuZXcgQXNzaWdubWVudCh0aGlzLT5fbGlzdGVuZXIsIGxpc3RlbmVyKSk7Ci19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLWNsYXNzIExpc3RlbmVyQ2xhc3MgOiBwdWJsaWMgQ2xhc3MKLXsKLXB1YmxpYzoKLSAgICBMaXN0ZW5lckNsYXNzKGNvbnN0IGludGVyZmFjZV90eXBlKiBpZmFjZSk7Ci0gICAgdmlydHVhbCB+TGlzdGVuZXJDbGFzcygpOwotCi0gICAgYm9vbCBuZWVkZWQ7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBnZW5lcmF0ZV9jdG9yKCk7Ci19OwotCi1MaXN0ZW5lckNsYXNzOjpMaXN0ZW5lckNsYXNzKGNvbnN0IGludGVyZmFjZV90eXBlKiBpZmFjZSkKLSAgICA6Q2xhc3MoKSwKLSAgICAgbmVlZGVkKGZhbHNlKQotewotICAgIHRoaXMtPmNvbW1lbnQgPSAiLyoqIEV4dGVuZCB0aGlzIHRvIGxpc3RlbiB0byB0aGUgZXZlbnRzIGZyb20gdGhpcyBjbGFzcy4gKi8iOwotICAgIHRoaXMtPm1vZGlmaWVycyA9IFNUQVRJQyB8IFBVQkxJQyA7Ci0gICAgdGhpcy0+d2hhdCA9IENsYXNzOjpDTEFTUzsKLSAgICB0aGlzLT50eXBlID0gbmV3IFR5cGUoaWZhY2UtPnBhY2thZ2UgPyBpZmFjZS0+cGFja2FnZSA6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKGlmYWNlLT5uYW1lLmRhdGEsICIuTGlzdGVuZXIiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFR5cGU6OkdFTkVSQVRFRCwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7Ci0gICAgdGhpcy0+ZXh0ZW5kcyA9IFBSRVNFTlRFUl9MSVNURU5FUl9CQVNFX1RZUEU7Ci19Ci0KLUxpc3RlbmVyQ2xhc3M6On5MaXN0ZW5lckNsYXNzKCkKLXsKLX0KLQotLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotY2xhc3MgRW5kcG9pbnRCYXNlQ2xhc3MgOiBwdWJsaWMgRGlzcGF0Y2hlckNsYXNzCi17Ci1wdWJsaWM6Ci0gICAgRW5kcG9pbnRCYXNlQ2xhc3MoY29uc3QgaW50ZXJmYWNlX3R5cGUqIGlmYWNlKTsKLSAgICB2aXJ0dWFsIH5FbmRwb2ludEJhc2VDbGFzcygpOwotCi0gICAgYm9vbCBuZWVkZWQ7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBnZW5lcmF0ZV9jdG9yKCk7Ci19OwotCi1FbmRwb2ludEJhc2VDbGFzczo6RW5kcG9pbnRCYXNlQ2xhc3MoY29uc3QgaW50ZXJmYWNlX3R5cGUqIGlmYWNlKQotICAgIDpEaXNwYXRjaGVyQ2xhc3MoaWZhY2UsIFRISVNfVkFMVUUpLAotICAgICBuZWVkZWQoZmFsc2UpCi17Ci0gICAgdGhpcy0+Y29tbWVudCA9ICIvKiogRXh0ZW5kIHRoaXMgdG8gaW1wbGVtZW50IGEgbGluayBzZXJ2aWNlLiAqLyI7Ci0gICAgdGhpcy0+bW9kaWZpZXJzID0gU1RBVElDIHwgUFVCTElDIHwgQUJTVFJBQ1Q7Ci0gICAgdGhpcy0+d2hhdCA9IENsYXNzOjpDTEFTUzsKLSAgICB0aGlzLT50eXBlID0gbmV3IFR5cGUoaWZhY2UtPnBhY2thZ2UgPyBpZmFjZS0+cGFja2FnZSA6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKGlmYWNlLT5uYW1lLmRhdGEsICIuRW5kcG9pbnRCYXNlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICBUeXBlOjpHRU5FUkFURUQsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwotICAgIHRoaXMtPmV4dGVuZHMgPSBSUENfQ09OTkVDVE9SX1RZUEU7Ci0KLSAgICAvLyBtZXRob2RzCi0gICAgZ2VuZXJhdGVfY3RvcigpOwotfQotCi1FbmRwb2ludEJhc2VDbGFzczo6fkVuZHBvaW50QmFzZUNsYXNzKCkKLXsKLX0KLQotdm9pZAotRW5kcG9pbnRCYXNlQ2xhc3M6OmdlbmVyYXRlX2N0b3IoKQotewotICAgIFZhcmlhYmxlKiBjb250YWluZXIgPSBuZXcgVmFyaWFibGUoUlBDX0NPTlRBSU5FUl9UWVBFLCAiY29udGFpbmVyIik7Ci0gICAgVmFyaWFibGUqIGJyb2tlciA9IG5ldyBWYXJpYWJsZShSUENfQlJPS0VSX1RZUEUsICJicm9rZXIiKTsKLQlWYXJpYWJsZSogcGxhY2UgPSBuZXcgVmFyaWFibGUoUExBQ0VfSU5GT19UWVBFLCAicGxhY2VJbmZvIik7Ci0gICAgTWV0aG9kKiBjdG9yID0gbmV3IE1ldGhvZDsKLSAgICAgICAgY3Rvci0+bW9kaWZpZXJzID0gUFVCTElDOwotICAgICAgICBjdG9yLT5uYW1lID0gY2xhc3NfbmFtZV9sZWFmKHRoaXMtPnR5cGUtPk5hbWUoKSk7Ci0gICAgICAgIGN0b3ItPnN0YXRlbWVudHMgPSBuZXcgU3RhdGVtZW50QmxvY2s7Ci0gICAgICAgIGN0b3ItPnBhcmFtZXRlcnMucHVzaF9iYWNrKGNvbnRhaW5lcik7Ci0gICAgICAgIGN0b3ItPnBhcmFtZXRlcnMucHVzaF9iYWNrKGJyb2tlcik7Ci0gICAgICAgIGN0b3ItPnBhcmFtZXRlcnMucHVzaF9iYWNrKHBsYWNlKTsKLSAgICB0aGlzLT5lbGVtZW50cy5wdXNoX2JhY2soY3Rvcik7Ci0KLSAgICBjdG9yLT5zdGF0ZW1lbnRzLT5BZGQobmV3IE1ldGhvZENhbGwoInN1cGVyIiwgMywgY29udGFpbmVyLCBicm9rZXIsIHBsYWNlKSk7Ci19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLWNsYXNzIFJlc3VsdERpc3BhdGNoZXJDbGFzcyA6IHB1YmxpYyBDbGFzcwotewotcHVibGljOgotICAgIFJlc3VsdERpc3BhdGNoZXJDbGFzcygpOwotICAgIHZpcnR1YWwgflJlc3VsdERpc3BhdGNoZXJDbGFzcygpOwotCi0gICAgdm9pZCBBZGRNZXRob2QoaW50IGluZGV4LCBjb25zdCBzdHJpbmcmIG5hbWUsIE1ldGhvZCoqIG1ldGhvZCwgVmFyaWFibGUqKiBwYXJhbSk7Ci0KLSAgICBib29sIG5lZWRlZDsKLSAgICBWYXJpYWJsZSogbWV0aG9kSWQ7Ci0gICAgVmFyaWFibGUqIGNhbGxiYWNrOwotICAgIE1ldGhvZCogb25SZXN1bHRNZXRob2Q7Ci0gICAgVmFyaWFibGUqIHJlc3VsdFBhcmFtOwotICAgIFN3aXRjaFN0YXRlbWVudCogbWV0aG9kU3dpdGNoOwotCi1wcml2YXRlOgotICAgIHZvaWQgZ2VuZXJhdGVfY3RvcigpOwotICAgIHZvaWQgZ2VuZXJhdGVfb25SZXN1bHQoKTsKLX07Ci0KLVJlc3VsdERpc3BhdGNoZXJDbGFzczo6UmVzdWx0RGlzcGF0Y2hlckNsYXNzKCkKLSAgICA6Q2xhc3MoKSwKLSAgICAgbmVlZGVkKGZhbHNlKQotewotICAgIHRoaXMtPm1vZGlmaWVycyA9IFBSSVZBVEUgfCBGSU5BTDsKLSAgICB0aGlzLT53aGF0ID0gQ2xhc3M6OkNMQVNTOwotICAgIHRoaXMtPnR5cGUgPSBuZXcgVHlwZSgiX1Jlc3VsdERpc3BhdGNoZXIiLCBUeXBlOjpHRU5FUkFURUQsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwotICAgIHRoaXMtPmludGVyZmFjZXMucHVzaF9iYWNrKFJQQ19SRVNVTFRfSEFORExFUl9UWVBFKTsKLQotICAgIC8vIG1ldGhvZElkCi0gICAgdGhpcy0+bWV0aG9kSWQgPSBuZXcgVmFyaWFibGUoSU5UX1RZUEUsICJtZXRob2RJZCIpOwotICAgIHRoaXMtPmVsZW1lbnRzLnB1c2hfYmFjayhuZXcgRmllbGQoUFJJVkFURSwgdGhpcy0+bWV0aG9kSWQpKTsKLSAgICB0aGlzLT5jYWxsYmFjayA9IG5ldyBWYXJpYWJsZShPQkpFQ1RfVFlQRSwgImNhbGxiYWNrIik7Ci0gICAgdGhpcy0+ZWxlbWVudHMucHVzaF9iYWNrKG5ldyBGaWVsZChQUklWQVRFLCB0aGlzLT5jYWxsYmFjaykpOwotCi0gICAgLy8gbWV0aG9kcwotICAgIGdlbmVyYXRlX2N0b3IoKTsKLSAgICBnZW5lcmF0ZV9vblJlc3VsdCgpOwotfQotCi1SZXN1bHREaXNwYXRjaGVyQ2xhc3M6On5SZXN1bHREaXNwYXRjaGVyQ2xhc3MoKQotewotfQotCi12b2lkCi1SZXN1bHREaXNwYXRjaGVyQ2xhc3M6OmdlbmVyYXRlX2N0b3IoKQotewotICAgIFZhcmlhYmxlKiBtZXRob2RJZFBhcmFtID0gbmV3IFZhcmlhYmxlKElOVF9UWVBFLCAibWV0aElkIik7Ci0gICAgVmFyaWFibGUqIGNhbGxiYWNrUGFyYW0gPSBuZXcgVmFyaWFibGUoT0JKRUNUX1RZUEUsICJjYk9iaiIpOwotICAgIE1ldGhvZCogY3RvciA9IG5ldyBNZXRob2Q7Ci0gICAgICAgIGN0b3ItPm1vZGlmaWVycyA9IFBVQkxJQzsKLSAgICAgICAgY3Rvci0+bmFtZSA9IGNsYXNzX25hbWVfbGVhZih0aGlzLT50eXBlLT5OYW1lKCkpOwotICAgICAgICBjdG9yLT5zdGF0ZW1lbnRzID0gbmV3IFN0YXRlbWVudEJsb2NrOwotICAgICAgICBjdG9yLT5wYXJhbWV0ZXJzLnB1c2hfYmFjayhtZXRob2RJZFBhcmFtKTsKLSAgICAgICAgY3Rvci0+cGFyYW1ldGVycy5wdXNoX2JhY2soY2FsbGJhY2tQYXJhbSk7Ci0gICAgdGhpcy0+ZWxlbWVudHMucHVzaF9iYWNrKGN0b3IpOwotCi0gICAgY3Rvci0+c3RhdGVtZW50cy0+QWRkKG5ldyBBc3NpZ25tZW50KHRoaXMtPm1ldGhvZElkLCBtZXRob2RJZFBhcmFtKSk7Ci0gICAgY3Rvci0+c3RhdGVtZW50cy0+QWRkKG5ldyBBc3NpZ25tZW50KHRoaXMtPmNhbGxiYWNrLCBjYWxsYmFja1BhcmFtKSk7Ci19Ci0KLXZvaWQKLVJlc3VsdERpc3BhdGNoZXJDbGFzczo6Z2VuZXJhdGVfb25SZXN1bHQoKQotewotICAgIHRoaXMtPm9uUmVzdWx0TWV0aG9kID0gbmV3IE1ldGhvZDsKLSAgICAgICAgdGhpcy0+b25SZXN1bHRNZXRob2QtPm1vZGlmaWVycyA9IFBVQkxJQzsKLSAgICAgICAgdGhpcy0+b25SZXN1bHRNZXRob2QtPnJldHVyblR5cGUgPSBWT0lEX1RZUEU7Ci0gICAgICAgIHRoaXMtPm9uUmVzdWx0TWV0aG9kLT5yZXR1cm5UeXBlRGltZW5zaW9uID0gMDsKLSAgICAgICAgdGhpcy0+b25SZXN1bHRNZXRob2QtPm5hbWUgPSAib25SZXN1bHQiOwotICAgICAgICB0aGlzLT5vblJlc3VsdE1ldGhvZC0+c3RhdGVtZW50cyA9IG5ldyBTdGF0ZW1lbnRCbG9jazsKLSAgICB0aGlzLT5lbGVtZW50cy5wdXNoX2JhY2sodGhpcy0+b25SZXN1bHRNZXRob2QpOwotCi0gICAgdGhpcy0+cmVzdWx0UGFyYW0gPSBuZXcgVmFyaWFibGUoQllURV9UWVBFLCAicmVzdWx0IiwgMSk7Ci0gICAgdGhpcy0+b25SZXN1bHRNZXRob2QtPnBhcmFtZXRlcnMucHVzaF9iYWNrKHRoaXMtPnJlc3VsdFBhcmFtKTsKLQotICAgIHRoaXMtPm1ldGhvZFN3aXRjaCA9IG5ldyBTd2l0Y2hTdGF0ZW1lbnQodGhpcy0+bWV0aG9kSWQpOwotICAgIHRoaXMtPm9uUmVzdWx0TWV0aG9kLT5zdGF0ZW1lbnRzLT5BZGQodGhpcy0+bWV0aG9kU3dpdGNoKTsKLX0KLQotdm9pZAotUmVzdWx0RGlzcGF0Y2hlckNsYXNzOjpBZGRNZXRob2QoaW50IGluZGV4LCBjb25zdCBzdHJpbmcmIG5hbWUsIE1ldGhvZCoqIG1ldGhvZCwgVmFyaWFibGUqKiBwYXJhbSkKLXsKLSAgICBNZXRob2QqIG0gPSBuZXcgTWV0aG9kOwotICAgICAgICBtLT5tb2RpZmllcnMgPSBQVUJMSUM7Ci0gICAgICAgIG0tPnJldHVyblR5cGUgPSBWT0lEX1RZUEU7Ci0gICAgICAgIG0tPnJldHVyblR5cGVEaW1lbnNpb24gPSAwOwotICAgICAgICBtLT5uYW1lID0gbmFtZTsKLSAgICAgICAgbS0+c3RhdGVtZW50cyA9IG5ldyBTdGF0ZW1lbnRCbG9jazsKLSAgICAqcGFyYW0gPSBuZXcgVmFyaWFibGUoQllURV9UWVBFLCAicmVzdWx0IiwgMSk7Ci0gICAgbS0+cGFyYW1ldGVycy5wdXNoX2JhY2soKnBhcmFtKTsKLSAgICB0aGlzLT5lbGVtZW50cy5wdXNoX2JhY2sobSk7Ci0gICAgKm1ldGhvZCA9IG07Ci0KLSAgICBDYXNlKiBjID0gbmV3IENhc2UoZm9ybWF0X2ludChpbmRleCkpOwotICAgIGMtPnN0YXRlbWVudHMtPkFkZChuZXcgTWV0aG9kQ2FsbChuZXcgTGl0ZXJhbEV4cHJlc3Npb24oInRoaXMiKSwgbmFtZSwgMSwgdGhpcy0+cmVzdWx0UGFyYW0pKTsKLSAgICBjLT5zdGF0ZW1lbnRzLT5BZGQobmV3IEJyZWFrKCkpOwotCi0gICAgdGhpcy0+bWV0aG9kU3dpdGNoLT5jYXNlcy5wdXNoX2JhY2soYyk7Ci19Ci0KLS8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLXN0YXRpYyB2b2lkCi1nZW5lcmF0ZV9uZXdfYXJyYXkoVHlwZSogdCwgU3RhdGVtZW50QmxvY2sqIGFkZFRvLCBWYXJpYWJsZSogdiwgVmFyaWFibGUqIGZyb20pCi17Ci0gICAgZnByaW50ZihzdGRlcnIsICJhaWRsOiBpbXBsZW1lbnQgZ2VuZXJhdGVfbmV3X2FycmF5ICVzOiVkXG4iLCBfX0ZJTEVfXywgX19MSU5FX18pOwotICAgIGV4aXQoMSk7Ci19Ci0KLXN0YXRpYyB2b2lkCi1nZW5lcmF0ZV9jcmVhdGVfZnJvbV9kYXRhKFR5cGUqIHQsIFN0YXRlbWVudEJsb2NrKiBhZGRUbywgY29uc3Qgc3RyaW5nJiBrZXksIFZhcmlhYmxlKiB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlKiBkYXRhLCBWYXJpYWJsZSoqIGNsKQotewotICAgIEV4cHJlc3Npb24qIGsgPSBuZXcgU3RyaW5nTGl0ZXJhbEV4cHJlc3Npb24oa2V5KTsKLSAgICBpZiAodi0+ZGltZW5zaW9uID09IDApIHsKLSAgICAgICAgdC0+Q3JlYXRlRnJvbVJwY0RhdGEoYWRkVG8sIGssIHYsIGRhdGEsIGNsKTsKLSAgICB9Ci0gICAgaWYgKHYtPmRpbWVuc2lvbiA9PSAxKSB7Ci0gICAgICAgIC8vdC0+UmVhZEFycmF5RnJvbVJwY0RhdGEoYWRkVG8sIHYsIGRhdGEsIGNsKTsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJhaWRsOiBpbXBsZW1lbnQgZ2VuZXJhdGVfY3JlYXRlX2Zyb21fZGF0YSBmb3IgYXJyYXlzJXM6JWRcbiIsCi0gICAgICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkCi1nZW5lcmF0ZV93cml0ZV90b19kYXRhKFR5cGUqIHQsIFN0YXRlbWVudEJsb2NrKiBhZGRUbywgRXhwcmVzc2lvbiogaywgVmFyaWFibGUqIHYsIFZhcmlhYmxlKiBkYXRhKQotewotICAgIGlmICh2LT5kaW1lbnNpb24gPT0gMCkgewotICAgICAgICB0LT5Xcml0ZVRvUnBjRGF0YShhZGRUbywgaywgdiwgZGF0YSwgMCk7Ci0gICAgfQotICAgIGlmICh2LT5kaW1lbnNpb24gPT0gMSkgewotICAgICAgICAvL3QtPldyaXRlQXJyYXlUb1BhcmNlbChhZGRUbywgdiwgZGF0YSk7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiYWlkbDogaW1wbGVtZW50IGdlbmVyYXRlX3dyaXRlX3RvX2RhdGEgZm9yIGFycmF5cyVzOiVkXG4iLAotICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7Ci0gICAgfQotfQotCi0vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1zdGF0aWMgVHlwZSoKLWdlbmVyYXRlX3Jlc3VsdHNfbWV0aG9kKGNvbnN0IG1ldGhvZF90eXBlKiBtZXRob2QsIFJwY1Byb3h5Q2xhc3MqIHByb3h5Q2xhc3MpCi17Ci0gICAgYXJnX3R5cGUqIGFyZzsKLQotICAgIHN0cmluZyByZXN1bHRzTWV0aG9kTmFtZSA9IHJlc3VsdHNfbWV0aG9kX25hbWUobWV0aG9kLT5uYW1lLmRhdGEpOwotICAgIFR5cGUqIHJlc3VsdHNJbnRlcmZhY2VUeXBlID0gbmV3IFR5cGUocmVzdWx0c19jbGFzc19uYW1lKG1ldGhvZC0+bmFtZS5kYXRhKSwKLSAgICAgICAgICAgIFR5cGU6OkdFTkVSQVRFRCwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7Ci0KLSAgICBpZiAoIW1ldGhvZC0+b25ld2F5KSB7Ci0gICAgICAgIENsYXNzKiByZXN1bHRzQ2xhc3MgPSBuZXcgQ2xhc3M7Ci0gICAgICAgICAgICByZXN1bHRzQ2xhc3MtPm1vZGlmaWVycyA9IFNUQVRJQyB8IFBVQkxJQzsKLSAgICAgICAgICAgIHJlc3VsdHNDbGFzcy0+d2hhdCA9IENsYXNzOjpJTlRFUkZBQ0U7Ci0gICAgICAgICAgICByZXN1bHRzQ2xhc3MtPnR5cGUgPSByZXN1bHRzSW50ZXJmYWNlVHlwZTsKLQotICAgICAgICBNZXRob2QqIHJlc3VsdE1ldGhvZCA9IG5ldyBNZXRob2Q7Ci0gICAgICAgICAgICByZXN1bHRNZXRob2QtPmNvbW1lbnQgPSBnYXRoZXJfY29tbWVudHMobWV0aG9kLT5jb21tZW50c190b2tlbi0+ZXh0cmEpOwotICAgICAgICAgICAgcmVzdWx0TWV0aG9kLT5tb2RpZmllcnMgPSBQVUJMSUM7Ci0gICAgICAgICAgICByZXN1bHRNZXRob2QtPnJldHVyblR5cGUgPSBWT0lEX1RZUEU7Ci0gICAgICAgICAgICByZXN1bHRNZXRob2QtPnJldHVyblR5cGVEaW1lbnNpb24gPSAwOwotICAgICAgICAgICAgcmVzdWx0TWV0aG9kLT5uYW1lID0gcmVzdWx0c01ldGhvZE5hbWU7Ci0gICAgICAgIGlmICgwICE9IHN0cmNtcCgidm9pZCIsIG1ldGhvZC0+dHlwZS50eXBlLmRhdGEpKSB7Ci0gICAgICAgICAgICByZXN1bHRNZXRob2QtPnBhcmFtZXRlcnMucHVzaF9iYWNrKG5ldyBWYXJpYWJsZShOQU1FUy5TZWFyY2gobWV0aG9kLT50eXBlLnR5cGUuZGF0YSksCi0gICAgICAgICAgICAgICAgICAgICAgICAiX3Jlc3VsdCIsIG1ldGhvZC0+dHlwZS5kaW1lbnNpb24pKTsKLSAgICAgICAgfQotICAgICAgICBhcmcgPSBtZXRob2QtPmFyZ3M7Ci0gICAgICAgIHdoaWxlIChhcmcgIT0gTlVMTCkgewotICAgICAgICAgICAgaWYgKGNvbnZlcnRfZGlyZWN0aW9uKGFyZy0+ZGlyZWN0aW9uLmRhdGEpICYgT1VUX1BBUkFNRVRFUikgewotICAgICAgICAgICAgICAgIHJlc3VsdE1ldGhvZC0+cGFyYW1ldGVycy5wdXNoX2JhY2sobmV3IFZhcmlhYmxlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkFNRVMuU2VhcmNoKGFyZy0+dHlwZS50eXBlLmRhdGEpLCBhcmctPm5hbWUuZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZy0+dHlwZS5kaW1lbnNpb24pKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFyZyA9IGFyZy0+bmV4dDsKLSAgICAgICAgfQotICAgICAgICByZXN1bHRzQ2xhc3MtPmVsZW1lbnRzLnB1c2hfYmFjayhyZXN1bHRNZXRob2QpOwotCi0gICAgICAgIGlmIChyZXN1bHRNZXRob2QtPnBhcmFtZXRlcnMuc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgcHJveHlDbGFzcy0+ZWxlbWVudHMucHVzaF9iYWNrKHJlc3VsdHNDbGFzcyk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0c0ludGVyZmFjZVR5cGU7Ci0gICAgICAgIH0gCi0gICAgfQotICAgIC8vZGVsZXRlIHJlc3VsdHNJbnRlcmZhY2VUeXBlOwotICAgIHJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgdm9pZAotZ2VuZXJhdGVfcHJveHlfbWV0aG9kKGNvbnN0IG1ldGhvZF90eXBlKiBtZXRob2QsIFJwY1Byb3h5Q2xhc3MqIHByb3h5Q2xhc3MsCi0gICAgICAgIFJlc3VsdERpc3BhdGNoZXJDbGFzcyogcmVzdWx0c0Rpc3BhdGNoZXJDbGFzcywgVHlwZSogcmVzdWx0c0ludGVyZmFjZVR5cGUsIGludCBpbmRleCkKLXsKLSAgICBhcmdfdHlwZSogYXJnOwotICAgIE1ldGhvZCogcHJveHlNZXRob2QgPSBuZXcgTWV0aG9kOwotICAgICAgICBwcm94eU1ldGhvZC0+Y29tbWVudCA9IGdhdGhlcl9jb21tZW50cyhtZXRob2QtPmNvbW1lbnRzX3Rva2VuLT5leHRyYSk7Ci0gICAgICAgIHByb3h5TWV0aG9kLT5tb2RpZmllcnMgPSBQVUJMSUM7Ci0gICAgICAgIHByb3h5TWV0aG9kLT5yZXR1cm5UeXBlID0gVk9JRF9UWVBFOwotICAgICAgICBwcm94eU1ldGhvZC0+cmV0dXJuVHlwZURpbWVuc2lvbiA9IDA7Ci0gICAgICAgIHByb3h5TWV0aG9kLT5uYW1lID0gbWV0aG9kLT5uYW1lLmRhdGE7Ci0gICAgICAgIHByb3h5TWV0aG9kLT5zdGF0ZW1lbnRzID0gbmV3IFN0YXRlbWVudEJsb2NrOwotICAgIHByb3h5Q2xhc3MtPmVsZW1lbnRzLnB1c2hfYmFjayhwcm94eU1ldGhvZCk7Ci0KLSAgICAvLyBUaGUgbG9jYWwgdmFyaWFibGVzCi0gICAgVmFyaWFibGUqIF9kYXRhID0gbmV3IFZhcmlhYmxlKFJQQ19EQVRBX1RZUEUsICJfZGF0YSIpOwotICAgIHByb3h5TWV0aG9kLT5zdGF0ZW1lbnRzLT5BZGQobmV3IFZhcmlhYmxlRGVjbGFyYXRpb24oX2RhdGEsIG5ldyBOZXdFeHByZXNzaW9uKFJQQ19EQVRBX1RZUEUpKSk7Ci0KLSAgICAvLyBBZGQgdGhlIGFyZ3VtZW50cwotICAgIGFyZyA9IG1ldGhvZC0+YXJnczsKLSAgICB3aGlsZSAoYXJnICE9IE5VTEwpIHsKLSAgICAgICAgaWYgKGNvbnZlcnRfZGlyZWN0aW9uKGFyZy0+ZGlyZWN0aW9uLmRhdGEpICYgSU5fUEFSQU1FVEVSKSB7Ci0gICAgICAgICAgICAvLyBGdW5jdGlvbiBzaWduYXR1cmUKLSAgICAgICAgICAgIFR5cGUqIHQgPSBOQU1FUy5TZWFyY2goYXJnLT50eXBlLnR5cGUuZGF0YSk7Ci0gICAgICAgICAgICBWYXJpYWJsZSogdiA9IG5ldyBWYXJpYWJsZSh0LCBhcmctPm5hbWUuZGF0YSwgYXJnLT50eXBlLmRpbWVuc2lvbik7Ci0gICAgICAgICAgICBwcm94eU1ldGhvZC0+cGFyYW1ldGVycy5wdXNoX2JhY2sodik7Ci0KLSAgICAgICAgICAgIC8vIElucHV0IHBhcmFtZXRlciBtYXJzaGFsbGluZwotICAgICAgICAgICAgZ2VuZXJhdGVfd3JpdGVfdG9fZGF0YSh0LCBwcm94eU1ldGhvZC0+c3RhdGVtZW50cywKLSAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ0xpdGVyYWxFeHByZXNzaW9uKGFyZy0+bmFtZS5kYXRhKSwgdiwgX2RhdGEpOwotICAgICAgICB9Ci0gICAgICAgIGFyZyA9IGFyZy0+bmV4dDsKLSAgICB9Ci0KLSAgICAvLyBJZiB0aGVyZSBpcyBhIHJlc3VsdHMgaW50ZXJmYWNlIGZvciB0aGlzIGNsYXNzCi0gICAgRXhwcmVzc2lvbiogcmVzdWx0UGFyYW1ldGVyOwotICAgIGlmIChyZXN1bHRzSW50ZXJmYWNlVHlwZSAhPSBOVUxMKSB7Ci0gICAgICAgIC8vIFJlc3VsdCBpbnRlcmZhY2UgcGFyYW1ldGVyCi0gICAgICAgIFZhcmlhYmxlKiByZXN1bHRMaXN0ZW5lciA9IG5ldyBWYXJpYWJsZShyZXN1bHRzSW50ZXJmYWNlVHlwZSwgIl9yZXN1bHQiKTsKLSAgICAgICAgcHJveHlNZXRob2QtPnBhcmFtZXRlcnMucHVzaF9iYWNrKHJlc3VsdExpc3RlbmVyKTsKLQotICAgICAgICAvLyBBZGQgdGhlIHJlc3VsdHMgZGlzcGF0Y2hlciBjYWxsYmFjawotICAgICAgICByZXN1bHRzRGlzcGF0Y2hlckNsYXNzLT5uZWVkZWQgPSB0cnVlOwotICAgICAgICByZXN1bHRQYXJhbWV0ZXIgPSBuZXcgTmV3RXhwcmVzc2lvbihyZXN1bHRzRGlzcGF0Y2hlckNsYXNzLT50eXBlLCAyLAotICAgICAgICAgICAgICAgIG5ldyBMaXRlcmFsRXhwcmVzc2lvbihmb3JtYXRfaW50KGluZGV4KSksIHJlc3VsdExpc3RlbmVyKTsKLSAgICB9IGVsc2UgewotICAgICAgICByZXN1bHRQYXJhbWV0ZXIgPSBOVUxMX1ZBTFVFOwotICAgIH0KLQotICAgIC8vIEFsbCBwcm94eSBtZXRob2RzIHRha2UgYW4gZXJyb3IgcGFyYW1ldGVyCi0gICAgVmFyaWFibGUqIGVycm9yTGlzdGVuZXIgPSBuZXcgVmFyaWFibGUoUlBDX0VSUk9SX0xJU1RFTkVSX1RZUEUsICJfZXJyb3JzIik7Ci0gICAgcHJveHlNZXRob2QtPnBhcmFtZXRlcnMucHVzaF9iYWNrKGVycm9yTGlzdGVuZXIpOwotCi0gICAgLy8gQ2FsbCB0aGUgYnJva2VyCi0gICAgcHJveHlNZXRob2QtPnN0YXRlbWVudHMtPkFkZChuZXcgTWV0aG9kQ2FsbChuZXcgRmllbGRWYXJpYWJsZShUSElTX1ZBTFVFLCAiX2Jyb2tlciIpLAotICAgICAgICAgICAgICAgICJzZW5kUnBjIiwgNSwKLSAgICAgICAgICAgICAgICBwcm94eUNsYXNzLT5lbmRwb2ludCwKLSAgICAgICAgICAgICAgICBuZXcgU3RyaW5nTGl0ZXJhbEV4cHJlc3Npb24obWV0aG9kLT5uYW1lLmRhdGEpLAotICAgICAgICAgICAgICAgIG5ldyBNZXRob2RDYWxsKF9kYXRhLCAic2VyaWFsaXplIiksCi0gICAgICAgICAgICAgICAgcmVzdWx0UGFyYW1ldGVyLAotICAgICAgICAgICAgICAgIGVycm9yTGlzdGVuZXIpKTsKLX0KLQotc3RhdGljIHZvaWQKLWdlbmVyYXRlX3Jlc3VsdF9kaXNwYXRjaGVyX21ldGhvZChjb25zdCBtZXRob2RfdHlwZSogbWV0aG9kLAotICAgICAgICBSZXN1bHREaXNwYXRjaGVyQ2xhc3MqIHJlc3VsdHNEaXNwYXRjaGVyQ2xhc3MsIFR5cGUqIHJlc3VsdHNJbnRlcmZhY2VUeXBlLCBpbnQgaW5kZXgpCi17Ci0gICAgYXJnX3R5cGUqIGFyZzsKLSAgICBNZXRob2QqIGRpc3BhdGNoTWV0aG9kOwotICAgIFZhcmlhYmxlKiBkaXNwYXRjaFBhcmFtOwotICAgIHJlc3VsdHNEaXNwYXRjaGVyQ2xhc3MtPkFkZE1ldGhvZChpbmRleCwgbWV0aG9kLT5uYW1lLmRhdGEsICZkaXNwYXRjaE1ldGhvZCwgJmRpc3BhdGNoUGFyYW0pOwotCi0gICAgVmFyaWFibGUqIGNsYXNzTG9hZGVyID0gTlVMTDsKLSAgICBWYXJpYWJsZSogcmVzdWx0RGF0YSA9IG5ldyBWYXJpYWJsZShSUENfREFUQV9UWVBFLCAicmVzdWx0RGF0YSIpOwotICAgIGRpc3BhdGNoTWV0aG9kLT5zdGF0ZW1lbnRzLT5BZGQobmV3IFZhcmlhYmxlRGVjbGFyYXRpb24ocmVzdWx0RGF0YSwKLSAgICAgICAgICAgICAgICBuZXcgTmV3RXhwcmVzc2lvbihSUENfREFUQV9UWVBFLCAxLCBkaXNwYXRjaFBhcmFtKSkpOwotCi0gICAgLy8gVGhlIGNhbGxiYWNrIG1ldGhvZCBpdHNlbGYKLSAgICBNZXRob2RDYWxsKiByZWFsQ2FsbCA9IG5ldyBNZXRob2RDYWxsKAotICAgICAgICAgICAgbmV3IENhc3QocmVzdWx0c0ludGVyZmFjZVR5cGUsIG5ldyBGaWVsZFZhcmlhYmxlKFRISVNfVkFMVUUsICJjYWxsYmFjayIpKSwKLSAgICAgICAgICAgIHJlc3VsdHNfbWV0aG9kX25hbWUobWV0aG9kLT5uYW1lLmRhdGEpKTsKLQotICAgIC8vIFRoZSByZXR1cm4gdmFsdWUKLSAgICB7Ci0gICAgICAgIFR5cGUqIHQgPSBOQU1FUy5TZWFyY2gobWV0aG9kLT50eXBlLnR5cGUuZGF0YSk7Ci0gICAgICAgIGlmICh0ICE9IFZPSURfVFlQRSkgewotICAgICAgICAgICAgVmFyaWFibGUqIHJ2ID0gbmV3IFZhcmlhYmxlKHQsICJydiIpOwotICAgICAgICAgICAgZGlzcGF0Y2hNZXRob2QtPnN0YXRlbWVudHMtPkFkZChuZXcgVmFyaWFibGVEZWNsYXJhdGlvbihydikpOwotICAgICAgICAgICAgZ2VuZXJhdGVfY3JlYXRlX2Zyb21fZGF0YSh0LCBkaXNwYXRjaE1ldGhvZC0+c3RhdGVtZW50cywgIl9yZXN1bHQiLCBydiwKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0RGF0YSwgJmNsYXNzTG9hZGVyKTsKLSAgICAgICAgICAgIHJlYWxDYWxsLT5hcmd1bWVudHMucHVzaF9iYWNrKHJ2KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIFZhcmlhYmxlRmFjdG9yeSBzdHViQXJncygiYXJnIik7Ci0gICAgYXJnID0gbWV0aG9kLT5hcmdzOwotICAgIHdoaWxlIChhcmcgIT0gTlVMTCkgewotICAgICAgICBpZiAoY29udmVydF9kaXJlY3Rpb24oYXJnLT5kaXJlY3Rpb24uZGF0YSkgJiBPVVRfUEFSQU1FVEVSKSB7Ci0gICAgICAgICAgICAvLyBVbm1hcnNoYWxsIHRoZSByZXN1bHRzCi0gICAgICAgICAgICBUeXBlKiB0ID0gTkFNRVMuU2VhcmNoKGFyZy0+dHlwZS50eXBlLmRhdGEpOwotICAgICAgICAgICAgVmFyaWFibGUqIHYgPSBzdHViQXJncy5HZXQodCk7Ci0gICAgICAgICAgICBkaXNwYXRjaE1ldGhvZC0+c3RhdGVtZW50cy0+QWRkKG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKHYpKTsKLQotICAgICAgICAgICAgZ2VuZXJhdGVfY3JlYXRlX2Zyb21fZGF0YSh0LCBkaXNwYXRjaE1ldGhvZC0+c3RhdGVtZW50cywgYXJnLT5uYW1lLmRhdGEsIHYsCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdERhdGEsICZjbGFzc0xvYWRlcik7Ci0KLSAgICAgICAgICAgIC8vIEFkZCB0aGUgYXJndW1lbnQgdG8gdGhlIGNhbGxiYWNrCi0gICAgICAgICAgICByZWFsQ2FsbC0+YXJndW1lbnRzLnB1c2hfYmFjayh2KTsKLSAgICAgICAgfQotICAgICAgICBhcmcgPSBhcmctPm5leHQ7Ci0gICAgfQotCi0gICAgLy8gQ2FsbCB0aGUgY2FsbGJhY2sgbWV0aG9kCi0gICAgSWZTdGF0ZW1lbnQqIGlmc3QgPSBuZXcgSWZTdGF0ZW1lbnQ7Ci0gICAgICAgIGlmc3QtPmV4cHJlc3Npb24gPSBuZXcgQ29tcGFyaXNvbihuZXcgRmllbGRWYXJpYWJsZShUSElTX1ZBTFVFLCAiY2FsbGJhY2siKSwgIiE9IiwgTlVMTF9WQUxVRSk7Ci0gICAgZGlzcGF0Y2hNZXRob2QtPnN0YXRlbWVudHMtPkFkZChpZnN0KTsKLSAgICBpZnN0LT5zdGF0ZW1lbnRzLT5BZGQocmVhbENhbGwpOwotfQotCi1zdGF0aWMgdm9pZAotZ2VuZXJhdGVfcmVndWxhcl9tZXRob2QoY29uc3QgbWV0aG9kX3R5cGUqIG1ldGhvZCwgUnBjUHJveHlDbGFzcyogcHJveHlDbGFzcywKLSAgICAgICAgRW5kcG9pbnRCYXNlQ2xhc3MqIHNlcnZpY2VCYXNlQ2xhc3MsIFJlc3VsdERpc3BhdGNoZXJDbGFzcyogcmVzdWx0c0Rpc3BhdGNoZXJDbGFzcywKLSAgICAgICAgaW50IGluZGV4KQotewotICAgIGFyZ190eXBlKiBhcmc7Ci0KLSAgICAvLyA9PSB0aGUgY2FsbGJhY2sgaW50ZXJmYWNlIGZvciByZXN1bHRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgLy8gdGhlIHNlcnZpY2UgYmFzZSBjbGFzcwotICAgIFR5cGUqIHJlc3VsdHNJbnRlcmZhY2VUeXBlID0gZ2VuZXJhdGVfcmVzdWx0c19tZXRob2QobWV0aG9kLCBwcm94eUNsYXNzKTsKLSAgICAKLSAgICAvLyA9PSB0aGUgbWV0aG9kIGluIHRoZSBwcm94eSBjbGFzcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgZ2VuZXJhdGVfcHJveHlfbWV0aG9kKG1ldGhvZCwgcHJveHlDbGFzcywgcmVzdWx0c0Rpc3BhdGNoZXJDbGFzcywgcmVzdWx0c0ludGVyZmFjZVR5cGUsIGluZGV4KTsKLQotICAgIC8vID09IHRoZSBtZXRob2QgaW4gdGhlIHJlc3VsdCBkaXNwYXRjaGVyIGNsYXNzID09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBpZiAocmVzdWx0c0ludGVyZmFjZVR5cGUgIT0gTlVMTCkgewotICAgICAgICBnZW5lcmF0ZV9yZXN1bHRfZGlzcGF0Y2hlcl9tZXRob2QobWV0aG9kLCByZXN1bHRzRGlzcGF0Y2hlckNsYXNzLCByZXN1bHRzSW50ZXJmYWNlVHlwZSwKLSAgICAgICAgICAgICAgICBpbmRleCk7Ci0gICAgfQotCi0gICAgLy8gPT0gVGhlIGFic3RyYWN0IG1ldGhvZCB0aGF0IHRoZSBzZXJ2aWNlIGRldmVsb3BlcnMgaW1wbGVtZW50ID09PT09PT09PT0KLSAgICBNZXRob2QqIGRlY2wgPSBuZXcgTWV0aG9kOwotICAgICAgICBkZWNsLT5jb21tZW50ID0gZ2F0aGVyX2NvbW1lbnRzKG1ldGhvZC0+Y29tbWVudHNfdG9rZW4tPmV4dHJhKTsKLSAgICAgICAgZGVjbC0+bW9kaWZpZXJzID0gUFVCTElDIHwgQUJTVFJBQ1Q7Ci0gICAgICAgIGRlY2wtPnJldHVyblR5cGUgPSBOQU1FUy5TZWFyY2gobWV0aG9kLT50eXBlLnR5cGUuZGF0YSk7Ci0gICAgICAgIGRlY2wtPnJldHVyblR5cGVEaW1lbnNpb24gPSBtZXRob2QtPnR5cGUuZGltZW5zaW9uOwotICAgICAgICBkZWNsLT5uYW1lID0gbWV0aG9kLT5uYW1lLmRhdGE7Ci0gICAgYXJnID0gbWV0aG9kLT5hcmdzOwotICAgIHdoaWxlIChhcmcgIT0gTlVMTCkgewotICAgICAgICBkZWNsLT5wYXJhbWV0ZXJzLnB1c2hfYmFjayhuZXcgVmFyaWFibGUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTkFNRVMuU2VhcmNoKGFyZy0+dHlwZS50eXBlLmRhdGEpLCBhcmctPm5hbWUuZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmctPnR5cGUuZGltZW5zaW9uKSk7Ci0gICAgICAgIGFyZyA9IGFyZy0+bmV4dDsKLSAgICB9Ci0KLSAgICAvLyBBZGQgdGhlIGRlZmF1bHQgUnBjQ29udGV4dCBwYXJhbSB0byBhbGwgbWV0aG9kcwotICAgIGRlY2wtPnBhcmFtZXRlcnMucHVzaF9iYWNrKG5ldyBWYXJpYWJsZShSUENfQ09OVEVYVF9UWVBFLCAiY29udGV4dCIsIDApKTsKLQkKLSAgICBzZXJ2aWNlQmFzZUNsYXNzLT5lbGVtZW50cy5wdXNoX2JhY2soZGVjbCk7Ci0gICAgCi0KLSAgICAvLyA9PSB0aGUgZGlzcGF0Y2ggbWV0aG9kIGluIHRoZSBzZXJ2aWNlIGJhc2UgY2xhc3MgPT09PT09PT09PT09PT09PT09PT09PQotICAgIHNlcnZpY2VCYXNlQ2xhc3MtPkFkZE1ldGhvZChtZXRob2QpOwotfQotCi1zdGF0aWMgdm9pZAotZ2VuZXJhdGVfZXZlbnRfbWV0aG9kKGNvbnN0IG1ldGhvZF90eXBlKiBtZXRob2QsIFJwY1Byb3h5Q2xhc3MqIHByb3h5Q2xhc3MsCi0gICAgICAgIEVuZHBvaW50QmFzZUNsYXNzKiBzZXJ2aWNlQmFzZUNsYXNzLCBMaXN0ZW5lckNsYXNzKiBsaXN0ZW5lckNsYXNzLAotICAgICAgICBFdmVudExpc3RlbmVyQ2xhc3MqIHByZXNlbnRlckNsYXNzLCBpbnQgaW5kZXgpCi17Ci0gICAgYXJnX3R5cGUqIGFyZzsKLSAgICBsaXN0ZW5lckNsYXNzLT5uZWVkZWQgPSB0cnVlOwotCi0gICAgLy8gPT0gdGhlIHB1c2ggbWV0aG9kIGluIHRoZSBzZXJ2aWNlIGJhc2UgY2xhc3MgPT09PT09PT09PT09PT09PT09PT09PT09PQotICAgIE1ldGhvZCogcHVzaCA9IG5ldyBNZXRob2Q7Ci0gICAgICAgIHB1c2gtPm1vZGlmaWVycyA9IFBVQkxJQzsKLSAgICAgICAgcHVzaC0+bmFtZSA9IHB1c2hfbWV0aG9kX25hbWUobWV0aG9kLT5uYW1lLmRhdGEpOwotICAgICAgICBwdXNoLT5zdGF0ZW1lbnRzID0gbmV3IFN0YXRlbWVudEJsb2NrOwotICAgICAgICBwdXNoLT5yZXR1cm5UeXBlID0gVk9JRF9UWVBFOwotICAgIHNlcnZpY2VCYXNlQ2xhc3MtPmVsZW1lbnRzLnB1c2hfYmFjayhwdXNoKTsKLQotICAgIC8vIFRoZSBsb2NhbCB2YXJpYWJsZXMKLSAgICBWYXJpYWJsZSogX2RhdGEgPSBuZXcgVmFyaWFibGUoUlBDX0RBVEFfVFlQRSwgIl9kYXRhIik7Ci0gICAgcHVzaC0+c3RhdGVtZW50cy0+QWRkKG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKF9kYXRhLCBuZXcgTmV3RXhwcmVzc2lvbihSUENfREFUQV9UWVBFKSkpOwotCi0gICAgLy8gQWRkIHRoZSBhcmd1bWVudHMKLSAgICBhcmcgPSBtZXRob2QtPmFyZ3M7Ci0gICAgd2hpbGUgKGFyZyAhPSBOVUxMKSB7Ci0gICAgICAgIC8vIEZ1bmN0aW9uIHNpZ25hdHVyZQotICAgICAgICBUeXBlKiB0ID0gTkFNRVMuU2VhcmNoKGFyZy0+dHlwZS50eXBlLmRhdGEpOwotICAgICAgICBWYXJpYWJsZSogdiA9IG5ldyBWYXJpYWJsZSh0LCBhcmctPm5hbWUuZGF0YSwgYXJnLT50eXBlLmRpbWVuc2lvbik7Ci0gICAgICAgIHB1c2gtPnBhcmFtZXRlcnMucHVzaF9iYWNrKHYpOwotCi0gICAgICAgIC8vIElucHV0IHBhcmFtZXRlciBtYXJzaGFsbGluZwotICAgICAgICBnZW5lcmF0ZV93cml0ZV90b19kYXRhKHQsIHB1c2gtPnN0YXRlbWVudHMsCi0gICAgICAgICAgICAgICAgbmV3IFN0cmluZ0xpdGVyYWxFeHByZXNzaW9uKGFyZy0+bmFtZS5kYXRhKSwgdiwgX2RhdGEpOwotCi0gICAgICAgIGFyZyA9IGFyZy0+bmV4dDsKLSAgICB9Ci0KLSAgICAvLyBTZW5kIHRoZSBub3RpZmljYXRpb25zCi0gICAgcHVzaC0+c3RhdGVtZW50cy0+QWRkKG5ldyBNZXRob2RDYWxsKCJwdXNoRXZlbnQiLCAyLAotICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdMaXRlcmFsRXhwcmVzc2lvbihtZXRob2QtPm5hbWUuZGF0YSksCi0gICAgICAgICAgICAgICAgbmV3IE1ldGhvZENhbGwoX2RhdGEsICJzZXJpYWxpemUiKSkpOwotCi0gICAgLy8gPT0gdGhlIGV2ZW50IGNhbGxiYWNrIGRpc3BhdGNoZXIgbWV0aG9kICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICBwcmVzZW50ZXJDbGFzcy0+QWRkTWV0aG9kKG1ldGhvZCk7Ci0KLSAgICAvLyA9PSB0aGUgZXZlbnQgbWV0aG9kIGluIHRoZSBsaXN0ZW5lciBiYXNlIGNsYXNzID09PT09PT09PT09PT09PT09PT09PQotICAgIE1ldGhvZCogZXZlbnQgPSBuZXcgTWV0aG9kOwotICAgICAgICBldmVudC0+bW9kaWZpZXJzID0gUFVCTElDOwotICAgICAgICBldmVudC0+bmFtZSA9IG1ldGhvZC0+bmFtZS5kYXRhOwotICAgICAgICBldmVudC0+c3RhdGVtZW50cyA9IG5ldyBTdGF0ZW1lbnRCbG9jazsKLSAgICAgICAgZXZlbnQtPnJldHVyblR5cGUgPSBWT0lEX1RZUEU7Ci0gICAgbGlzdGVuZXJDbGFzcy0+ZWxlbWVudHMucHVzaF9iYWNrKGV2ZW50KTsKLSAgICBhcmcgPSBtZXRob2QtPmFyZ3M7Ci0gICAgd2hpbGUgKGFyZyAhPSBOVUxMKSB7Ci0gICAgICAgIGV2ZW50LT5wYXJhbWV0ZXJzLnB1c2hfYmFjayhuZXcgVmFyaWFibGUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTkFNRVMuU2VhcmNoKGFyZy0+dHlwZS50eXBlLmRhdGEpLCBhcmctPm5hbWUuZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmctPnR5cGUuZGltZW5zaW9uKSk7Ci0gICAgICAgIGFyZyA9IGFyZy0+bmV4dDsKLSAgICB9Ci0KLSAgICAvLyBBZGQgYSBmaW5hbCBwYXJhbWV0ZXI6IFJwY0NvbnRleHQuIENvbnRhaW5zIGRhdGEgYWJvdXQKLSAgICAvLyBpbmNvbWluZyByZXF1ZXN0IChlLmcuLCBjZXJ0aWZpY2F0ZSkKLSAgICBldmVudC0+cGFyYW1ldGVycy5wdXNoX2JhY2sobmV3IFZhcmlhYmxlKFJQQ19DT05URVhUX1RZUEUsICJjb250ZXh0IiwgMCkpOwotfQotCi1zdGF0aWMgdm9pZAotZ2VuZXJhdGVfbGlzdGVuZXJfbWV0aG9kcyhScGNQcm94eUNsYXNzKiBwcm94eUNsYXNzLCBUeXBlKiBwcmVzZW50ZXJUeXBlLCBUeXBlKiBsaXN0ZW5lclR5cGUpCi17Ci0gICAgLy8gQW5kcm9pZEF0SG9tZVByZXNlbnRlciBfcHJlc2VudGVyOwotICAgIC8vIHZvaWQgc3RhcnRMaXN0ZW5pbmcoTGlzdGVuZXIgbGlzdGVuZXIpIHsKLSAgICAvLyAgICAgc3RvcExpc3RlbmluZygpOwotICAgIC8vICAgICBfcHJlc2VudGVyID0gbmV3IFByZXNlbnRlcihfYnJva2VyLCBsaXN0ZW5lcik7Ci0gICAgLy8gICAgIF9wcmVzZW50ZXIuc3RhcnRMaXN0ZW5pbmcoX2VuZHBvaW50KTsKLSAgICAvLyB9Ci0gICAgLy8gdm9pZCBzdG9wTGlzdGVuaW5nKCkgewotICAgIC8vICAgICBpZiAoX3ByZXNlbnRlciAhPSBudWxsKSB7Ci0gICAgLy8gICAgICAgICBfcHJlc2VudGVyLnN0b3BMaXN0ZW5pbmcoKTsKLSAgICAvLyAgICAgfQotICAgIC8vIH0KLQotICAgIFZhcmlhYmxlKiBfcHJlc2VudGVyID0gbmV3IFZhcmlhYmxlKHByZXNlbnRlclR5cGUsICJfcHJlc2VudGVyIik7Ci0gICAgcHJveHlDbGFzcy0+ZWxlbWVudHMucHVzaF9iYWNrKG5ldyBGaWVsZChQUklWQVRFLCBfcHJlc2VudGVyKSk7Ci0KLSAgICBWYXJpYWJsZSogbGlzdGVuZXIgPSBuZXcgVmFyaWFibGUobGlzdGVuZXJUeXBlLCAibGlzdGVuZXIiKTsKLQotICAgIE1ldGhvZCogc3RhcnRMaXN0ZW5pbmdNZXRob2QgPSBuZXcgTWV0aG9kOwotICAgICAgICBzdGFydExpc3RlbmluZ01ldGhvZC0+bW9kaWZpZXJzID0gUFVCTElDOwotICAgICAgICBzdGFydExpc3RlbmluZ01ldGhvZC0+cmV0dXJuVHlwZSA9IFZPSURfVFlQRTsKLSAgICAgICAgc3RhcnRMaXN0ZW5pbmdNZXRob2QtPm5hbWUgPSAic3RhcnRMaXN0ZW5pbmciOwotICAgICAgICBzdGFydExpc3RlbmluZ01ldGhvZC0+c3RhdGVtZW50cyA9IG5ldyBTdGF0ZW1lbnRCbG9jazsKLSAgICAgICAgc3RhcnRMaXN0ZW5pbmdNZXRob2QtPnBhcmFtZXRlcnMucHVzaF9iYWNrKGxpc3RlbmVyKTsKLSAgICBwcm94eUNsYXNzLT5lbGVtZW50cy5wdXNoX2JhY2soc3RhcnRMaXN0ZW5pbmdNZXRob2QpOwotCi0gICAgc3RhcnRMaXN0ZW5pbmdNZXRob2QtPnN0YXRlbWVudHMtPkFkZChuZXcgTWV0aG9kQ2FsbChUSElTX1ZBTFVFLCAic3RvcExpc3RlbmluZyIpKTsKLSAgICBzdGFydExpc3RlbmluZ01ldGhvZC0+c3RhdGVtZW50cy0+QWRkKG5ldyBBc3NpZ25tZW50KF9wcmVzZW50ZXIsCi0gICAgICAgICAgICAgICAgbmV3IE5ld0V4cHJlc3Npb24ocHJlc2VudGVyVHlwZSwgMiwgcHJveHlDbGFzcy0+YnJva2VyLCBsaXN0ZW5lcikpKTsKLSAgICBzdGFydExpc3RlbmluZ01ldGhvZC0+c3RhdGVtZW50cy0+QWRkKG5ldyBNZXRob2RDYWxsKF9wcmVzZW50ZXIsCi0gICAgICAgICAgICAgICAgInN0YXJ0TGlzdGVuaW5nIiwgMSwgcHJveHlDbGFzcy0+ZW5kcG9pbnQpKTsKLQotICAgIE1ldGhvZCogc3RvcExpc3RlbmluZ01ldGhvZCA9IG5ldyBNZXRob2Q7Ci0gICAgICAgIHN0b3BMaXN0ZW5pbmdNZXRob2QtPm1vZGlmaWVycyA9IFBVQkxJQzsKLSAgICAgICAgc3RvcExpc3RlbmluZ01ldGhvZC0+cmV0dXJuVHlwZSA9IFZPSURfVFlQRTsKLSAgICAgICAgc3RvcExpc3RlbmluZ01ldGhvZC0+bmFtZSA9ICJzdG9wTGlzdGVuaW5nIjsKLSAgICAgICAgc3RvcExpc3RlbmluZ01ldGhvZC0+c3RhdGVtZW50cyA9IG5ldyBTdGF0ZW1lbnRCbG9jazsKLSAgICBwcm94eUNsYXNzLT5lbGVtZW50cy5wdXNoX2JhY2soc3RvcExpc3RlbmluZ01ldGhvZCk7Ci0KLSAgICBJZlN0YXRlbWVudCogaWZzdCA9IG5ldyBJZlN0YXRlbWVudDsKLSAgICAgICAgaWZzdC0+ZXhwcmVzc2lvbiA9IG5ldyBDb21wYXJpc29uKF9wcmVzZW50ZXIsICIhPSIsIE5VTExfVkFMVUUpOwotICAgIHN0b3BMaXN0ZW5pbmdNZXRob2QtPnN0YXRlbWVudHMtPkFkZChpZnN0KTsKLQotICAgIGlmc3QtPnN0YXRlbWVudHMtPkFkZChuZXcgTWV0aG9kQ2FsbChfcHJlc2VudGVyLCAic3RvcExpc3RlbmluZyIpKTsKLSAgICBpZnN0LT5zdGF0ZW1lbnRzLT5BZGQobmV3IEFzc2lnbm1lbnQoX3ByZXNlbnRlciwgTlVMTF9WQUxVRSkpOwotfQotCi1DbGFzcyoKLWdlbmVyYXRlX3JwY19pbnRlcmZhY2VfY2xhc3MoY29uc3QgaW50ZXJmYWNlX3R5cGUqIGlmYWNlKQotewotICAgIC8vIHRoZSBwcm94eSBjbGFzcwotICAgIEludGVyZmFjZVR5cGUqIGludGVyZmFjZVR5cGUgPSBzdGF0aWNfY2FzdDxJbnRlcmZhY2VUeXBlKj4oCi0gICAgICAgIE5BTUVTLkZpbmQoaWZhY2UtPnBhY2thZ2UsIGlmYWNlLT5uYW1lLmRhdGEpKTsKLSAgICBScGNQcm94eUNsYXNzKiBwcm94eSA9IG5ldyBScGNQcm94eUNsYXNzKGlmYWNlLCBpbnRlcmZhY2VUeXBlKTsKLQotICAgIC8vIHRoZSBsaXN0ZW5lciBjbGFzcwotICAgIExpc3RlbmVyQ2xhc3MqIGxpc3RlbmVyID0gbmV3IExpc3RlbmVyQ2xhc3MoaWZhY2UpOwotCi0gICAgLy8gdGhlIHByZXNlbnRlciBjbGFzcwotICAgIEV2ZW50TGlzdGVuZXJDbGFzcyogcHJlc2VudGVyID0gbmV3IEV2ZW50TGlzdGVuZXJDbGFzcyhpZmFjZSwgbGlzdGVuZXItPnR5cGUpOwotCi0gICAgLy8gdGhlIHNlcnZpY2UgYmFzZSBjbGFzcwotICAgIEVuZHBvaW50QmFzZUNsYXNzKiBiYXNlID0gbmV3IEVuZHBvaW50QmFzZUNsYXNzKGlmYWNlKTsKLSAgICBwcm94eS0+ZWxlbWVudHMucHVzaF9iYWNrKGJhc2UpOwotCi0gICAgLy8gdGhlIHJlc3VsdCBkaXNwYXRjaGVyCi0gICAgUmVzdWx0RGlzcGF0Y2hlckNsYXNzKiByZXN1bHRzID0gbmV3IFJlc3VsdERpc3BhdGNoZXJDbGFzcygpOwotCi0gICAgLy8gYWxsIHRoZSBkZWNsYXJlZCBtZXRob2RzIG9mIHRoZSBwcm94eQotICAgIGludCBpbmRleCA9IDA7Ci0gICAgaW50ZXJmYWNlX2l0ZW1fdHlwZSogaXRlbSA9IGlmYWNlLT5pbnRlcmZhY2VfaXRlbXM7Ci0gICAgd2hpbGUgKGl0ZW0gIT0gTlVMTCkgewotICAgICAgICBpZiAoaXRlbS0+aXRlbV90eXBlID09IE1FVEhPRF9UWVBFKSB7Ci0gICAgICAgICAgICBpZiAoTkFNRVMuU2VhcmNoKCgobWV0aG9kX3R5cGUqKWl0ZW0pLT50eXBlLnR5cGUuZGF0YSkgPT0gRVZFTlRfRkFLRV9UWVBFKSB7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdGVfZXZlbnRfbWV0aG9kKChtZXRob2RfdHlwZSopaXRlbSwgcHJveHksIGJhc2UsIGxpc3RlbmVyLCBwcmVzZW50ZXIsIGluZGV4KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdGVfcmVndWxhcl9tZXRob2QoKG1ldGhvZF90eXBlKilpdGVtLCBwcm94eSwgYmFzZSwgcmVzdWx0cywgaW5kZXgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGl0ZW0gPSBpdGVtLT5uZXh0OwotICAgICAgICBpbmRleCsrOwotICAgIH0KLSAgICBwcmVzZW50ZXItPkRvbmVXaXRoTWV0aG9kcygpOwotICAgIGJhc2UtPkRvbmVXaXRoTWV0aG9kcygpOwotCi0gICAgLy8gb25seSBhZGQgdGhpcyBpZiB0aGVyZSBhcmUgbWV0aG9kcyB3aXRoIHJlc3VsdHMgLyBvdXQgcGFyYW1ldGVycwotICAgIGlmIChyZXN1bHRzLT5uZWVkZWQpIHsKLSAgICAgICAgcHJveHktPmVsZW1lbnRzLnB1c2hfYmFjayhyZXN1bHRzKTsKLSAgICB9Ci0gICAgaWYgKGxpc3RlbmVyLT5uZWVkZWQpIHsKLSAgICAgICAgcHJveHktPmVsZW1lbnRzLnB1c2hfYmFjayhsaXN0ZW5lcik7Ci0gICAgICAgIHByb3h5LT5lbGVtZW50cy5wdXNoX2JhY2socHJlc2VudGVyKTsKLSAgICAgICAgZ2VuZXJhdGVfbGlzdGVuZXJfbWV0aG9kcyhwcm94eSwgcHJlc2VudGVyLT50eXBlLCBsaXN0ZW5lci0+dHlwZSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHByb3h5OwotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvYWlkbC9vcHRpb25zLmNwcCBiL3Rvb2xzL2FpZGwvb3B0aW9ucy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiMmRhZWIuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWlkbC9vcHRpb25zLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE1NCArMCwwIEBACi0KLSNpbmNsdWRlICJvcHRpb25zLmgiCi0KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotCi1zdGF0aWMgaW50Ci11c2FnZSgpCi17Ci0gICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICAgICAidXNhZ2U6IGFpZGwgT1BUSU9OUyBJTlBVVCBbT1VUUFVUXVxuIgotICAgICAgICAgICAgIiAgICAgICBhaWRsIC0tcHJlcHJvY2VzcyBPVVRQVVQgSU5QVVQuLi5cbiIKLSAgICAgICAgICAgICJcbiIKLSAgICAgICAgICAgICJPUFRJT05TOlxuIgotICAgICAgICAgICAgIiAgIC1JPERJUj4gICAgc2VhcmNoIHBhdGggZm9yIGltcG9ydCBzdGF0ZW1lbnRzLlxuIgotICAgICAgICAgICAgIiAgIC1kPEZJTEU+ICAgZ2VuZXJhdGUgZGVwZW5kZW5jeSBmaWxlLlxuIgotICAgICAgICAgICAgIiAgIC1hICAgICAgICAgZ2VuZXJhdGUgZGVwZW5kZW5jeSBmaWxlIG5leHQgdG8gdGhlIG91dHB1dCBmaWxlIHdpdGggdGhlIG5hbWUgYmFzZWQgb24gdGhlIGlucHV0IGZpbGUuXG4iCi0gICAgICAgICAgICAiICAgLXA8RklMRT4gICBmaWxlIGNyZWF0ZWQgYnkgLS1wcmVwcm9jZXNzIHRvIGltcG9ydC5cbiIKLSAgICAgICAgICAgICIgICAtbzxGT0xERVI+IGJhc2Ugb3V0cHV0IGZvbGRlciBmb3IgZ2VuZXJhdGVkIGZpbGVzLlxuIgotICAgICAgICAgICAgIiAgIC1iICAgICAgICAgZmFpbCB3aGVuIHRyeWluZyB0byBjb21waWxlIGEgcGFyY2VsYWJsZS5cbiIKLSAgICAgICAgICAgICJcbiIKLSAgICAgICAgICAgICJJTlBVVDpcbiIKLSAgICAgICAgICAgICIgICBBbiBhaWRsIGludGVyZmFjZSBmaWxlLlxuIgotICAgICAgICAgICAgIlxuIgotICAgICAgICAgICAgIk9VVFBVVDpcbiIKLSAgICAgICAgICAgICIgICBUaGUgZ2VuZXJhdGVkIGludGVyZmFjZSBmaWxlcy5cbiIKLSAgICAgICAgICAgICIgICBJZiBvbWl0dGVkIGFuZCB0aGUgLW8gb3B0aW9uIGlzIG5vdCB1c2VkLCB0aGUgaW5wdXQgZmlsZW5hbWUgaXMgdXNlZCwgd2l0aCB0aGUgLmFpZGwgZXh0ZW5zaW9uIGNoYW5nZWQgdG8gYSAuamF2YSBleHRlbnNpb24uXG4iCi0gICAgICAgICAgICAiICAgSWYgdGhlIC1vIG9wdGlvbiBpcyB1c2VkLCB0aGUgZ2VuZXJhdGVkIGZpbGVzIHdpbGwgYmUgcGxhY2VkIGluIHRoZSBiYXNlIG91dHB1dCBmb2xkZXIsIHVuZGVyIHRoZWlyIHBhY2thZ2UgZm9sZGVyXG4iCi0gICAgICAgICAgICk7Ci0gICAgcmV0dXJuIDE7Ci19Ci0KLWludAotcGFyc2Vfb3B0aW9ucyhpbnQgYXJnYywgY29uc3QgY2hhciogY29uc3QqIGFyZ3YsIE9wdGlvbnMgKm9wdGlvbnMpCi17Ci0gICAgaW50IGkgPSAxOwotCi0gICAgaWYgKGFyZ2MgPj0gMiAmJiAwID09IHN0cmNtcChhcmd2WzFdLCAiLS1wcmVwcm9jZXNzIikpIHsKLSAgICAgICAgaWYgKGFyZ2MgPCA0KSB7Ci0gICAgICAgICAgICByZXR1cm4gdXNhZ2UoKTsKLSAgICAgICAgfQotICAgICAgICBvcHRpb25zLT5vdXRwdXRGaWxlTmFtZSA9IGFyZ3ZbMl07Ci0gICAgICAgIGZvciAoaW50IGk9MzsgaTxhcmdjOyBpKyspIHsKLSAgICAgICAgICAgIG9wdGlvbnMtPmZpbGVzVG9QcmVwcm9jZXNzLnB1c2hfYmFjayhhcmd2W2ldKTsKLSAgICAgICAgfQotICAgICAgICBvcHRpb25zLT50YXNrID0gUFJFUFJPQ0VTU19BSURMOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBvcHRpb25zLT50YXNrID0gQ09NUElMRV9BSURMOwotICAgIG9wdGlvbnMtPmZhaWxPblBhcmNlbGFibGUgPSBmYWxzZTsKLSAgICBvcHRpb25zLT5hdXRvRGVwRmlsZSA9IGZhbHNlOwotCi0gICAgLy8gT1BUSU9OUwotICAgIHdoaWxlIChpIDwgYXJnYykgewotICAgICAgICBjb25zdCBjaGFyKiBzID0gYXJndltpXTsKLSAgICAgICAgaW50IGxlbiA9IHN0cmxlbihzKTsKLSAgICAgICAgaWYgKHNbMF0gPT0gJy0nKSB7Ci0gICAgICAgICAgICBpZiAobGVuID4gMSkgewotICAgICAgICAgICAgICAgIC8vIC1JPHN5c3RlbS1pbXBvcnQtcGF0aD4KLSAgICAgICAgICAgICAgICBpZiAoc1sxXSA9PSAnSScpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGxlbiA+IDIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMtPmltcG9ydFBhdGhzLnB1c2hfYmFjayhzKzIpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICItSSBvcHRpb24gKCVkKSByZXF1aXJlcyBhIHBhdGguXG4iLCBpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1c2FnZSgpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNbMV0gPT0gJ2QnKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiAyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLT5kZXBGaWxlTmFtZSA9IHMrMjsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiLWQgb3B0aW9uICglZCkgcmVxdWlyZXMgYSBmaWxlLlxuIiwgaSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXNhZ2UoKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlIGlmIChzWzFdID09ICdhJykgewotICAgICAgICAgICAgICAgICAgICBvcHRpb25zLT5hdXRvRGVwRmlsZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNbMV0gPT0gJ3AnKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiAyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLT5wcmVwcm9jZXNzZWRGaWxlcy5wdXNoX2JhY2socysyKTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiLXAgb3B0aW9uICglZCkgcmVxdWlyZXMgYSBmaWxlLlxuIiwgaSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXNhZ2UoKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlIGlmIChzWzFdID09ICdvJykgewotICAgICAgICAgICAgICAgICAgICBpZiAobGVuID4gMikgewotICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy0+b3V0cHV0QmFzZUZvbGRlciA9IHMrMjsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiLW8gb3B0aW9uICglZCkgcmVxdWlyZXMgYSBwYXRoLlxuIiwgaSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXNhZ2UoKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlIGlmIChsZW4gPT0gMiAmJiBzWzFdID09ICdiJykgewotICAgICAgICAgICAgICAgICAgICBvcHRpb25zLT5mYWlsT25QYXJjZWxhYmxlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIHNbMV0gaXMgbm90IGtub3duCi0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAidW5rbm93biBvcHRpb24gKCVkKTogJXNcbiIsIGksIHMpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXNhZ2UoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIGxlbiA8PSAxCi0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1bmtub3duIG9wdGlvbiAoJWQpOiAlc1xuIiwgaSwgcyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHVzYWdlKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBzWzBdICE9ICctJwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgaSsrOwotICAgIH0KLQotICAgIC8vIElOUFVUCi0gICAgaWYgKGkgPCBhcmdjKSB7Ci0gICAgICAgIG9wdGlvbnMtPmlucHV0RmlsZU5hbWUgPSBhcmd2W2ldOwotICAgICAgICBpKys7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJJTlBVVCByZXF1aXJlZFxuIik7Ci0gICAgICAgIHJldHVybiB1c2FnZSgpOwotICAgIH0KLQotICAgIC8vIE9VVFBVVAotICAgIGlmIChpIDwgYXJnYykgewotICAgICAgICBvcHRpb25zLT5vdXRwdXRGaWxlTmFtZSA9IGFyZ3ZbaV07Ci0gICAgICAgIGkrKzsKLSAgICB9IGVsc2UgaWYgKG9wdGlvbnMtPm91dHB1dEJhc2VGb2xkZXIubGVuZ3RoKCkgPT0gMCkgewotICAgICAgICAvLyBjb3B5IGlucHV0IGludG8gb3V0cHV0IGFuZCBjaGFuZ2UgdGhlIGV4dGVuc2lvbiBmcm9tIC5haWRsIHRvIC5qYXZhCi0gICAgICAgIG9wdGlvbnMtPm91dHB1dEZpbGVOYW1lID0gb3B0aW9ucy0+aW5wdXRGaWxlTmFtZTsKLSAgICAgICAgc3RyaW5nOjpzaXplX3R5cGUgcG9zID0gb3B0aW9ucy0+b3V0cHV0RmlsZU5hbWUuc2l6ZSgpLTU7Ci0gICAgICAgIGlmIChvcHRpb25zLT5vdXRwdXRGaWxlTmFtZS5jb21wYXJlKHBvcywgNSwgIi5haWRsIikgPT0gMCkgeyAgLy8gNSA9IHN0cmxlbigiLmFpZGwiKQotICAgICAgICAgICAgb3B0aW9ucy0+b3V0cHV0RmlsZU5hbWUucmVwbGFjZShwb3MsIDUsICIuamF2YSIpOyAvLyA1ID0gc3RybGVuKCIuYWlkbCIpCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIklOUFVUIGlzIG5vdCBhbiAuYWlkbCBmaWxlLlxuIik7Ci0gICAgICAgICAgICByZXR1cm4gdXNhZ2UoKTsKLSAgICAgICAgfQotICAgICB9Ci0KLSAgICAvLyBhbnl0aGluZyByZW1haW5pbmc/Ci0gICAgaWYgKGkgIT0gYXJnYykgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInVua25vd24gb3B0aW9uJXM6IiwgKGk9PWFyZ2MtMT8oY29uc3QgY2hhciopIiI6KGNvbnN0IGNoYXIqKSJzIikpOwotICAgICAgICBmb3IgKDsgaTxhcmdjLTE7IGkrKykgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIgJXMiLCBhcmd2W2ldKTsKLSAgICAgICAgfQotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7Ci0gICAgICAgIHJldHVybiB1c2FnZSgpOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCmRpZmYgLS1naXQgYS90b29scy9haWRsL29wdGlvbnMuaCBiL3Rvb2xzL2FpZGwvb3B0aW9ucy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODdlMzdkLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FpZGwvb3B0aW9ucy5oCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotI2lmbmRlZiBERVZJQ0VfVE9PTFNfQUlETF9ICi0jZGVmaW5lIERFVklDRV9UT09MU19BSURMX0gKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHN0cmluZz4KLSNpbmNsdWRlIDx2ZWN0b3I+Ci0KLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLWVudW0gewotICAgIENPTVBJTEVfQUlETCwKLSAgICBQUkVQUk9DRVNTX0FJREwKLX07Ci0KLS8vIFRoaXMgc3RydWN0IGlzIHRoZSBwYXJzZWQgdmVyc2lvbiBvZiB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbnMKLXN0cnVjdCBPcHRpb25zCi17Ci0gICAgaW50IHRhc2s7Ci0gICAgYm9vbCBmYWlsT25QYXJjZWxhYmxlOwotICAgIHZlY3RvcjxzdHJpbmc+IGltcG9ydFBhdGhzOwotICAgIHZlY3RvcjxzdHJpbmc+IHByZXByb2Nlc3NlZEZpbGVzOwotICAgIHN0cmluZyBpbnB1dEZpbGVOYW1lOwotICAgIHN0cmluZyBvdXRwdXRGaWxlTmFtZTsKLSAgICBzdHJpbmcgb3V0cHV0QmFzZUZvbGRlcjsKLSAgICBzdHJpbmcgZGVwRmlsZU5hbWU7Ci0gICAgYm9vbCBhdXRvRGVwRmlsZTsKLQotICAgIHZlY3RvcjxzdHJpbmc+IGZpbGVzVG9QcmVwcm9jZXNzOwotfTsKLQotLy8gdGFrZXMgdGhlIGlucHV0cyBmcm9tIHRoZSBjb21tYW5kIGxpbmUgYW5kIGZpbGxzIGluIHRoZSBPcHRpb25zIHN0cnVjdAotLy8gUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIGFuZCBub256ZXJvIG9uIGZhaWx1cmUuCi0vLyBJdCBhbHNvIHByaW50cyB0aGUgdXNhZ2Ugc3RhdGVtZW50IG9uIGZhaWx1cmUuCi1pbnQgcGFyc2Vfb3B0aW9ucyhpbnQgYXJnYywgY29uc3QgY2hhciogY29uc3QqIGFyZ3YsIE9wdGlvbnMgKm9wdGlvbnMpOwotCi0jZW5kaWYgLy8gREVWSUNFX1RPT0xTX0FJRExfSApkaWZmIC0tZ2l0IGEvdG9vbHMvYWlkbC9vcHRpb25zX3Rlc3QuY3BwIGIvdG9vbHMvYWlkbC9vcHRpb25zX3Rlc3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDEwNmNlLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2FpZGwvb3B0aW9uc190ZXN0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI5MSArMCwwIEBACi0jaW5jbHVkZSA8aW9zdHJlYW0+Ci0jaW5jbHVkZSAib3B0aW9ucy5oIgotCi1jb25zdCBib29sIFZFUkJPU0UgPSBmYWxzZTsKLQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotc3RydWN0IEFuc3dlciB7Ci0gICAgY29uc3QgY2hhciogYXJndls4XTsKLSAgICBpbnQgcmVzdWx0OwotICAgIGNvbnN0IGNoYXIqIHN5c3RlbVNlYXJjaFBhdGhbOF07Ci0gICAgY29uc3QgY2hhciogbG9jYWxTZWFyY2hQYXRoWzhdOwotICAgIGNvbnN0IGNoYXIqIGlucHV0RmlsZU5hbWU7Ci0gICAgbGFuZ3VhZ2VfdCBuYXRpdmVMYW5ndWFnZTsKLSAgICBjb25zdCBjaGFyKiBvdXRwdXRIOwotICAgIGNvbnN0IGNoYXIqIG91dHB1dENQUDsKLSAgICBjb25zdCBjaGFyKiBvdXRwdXRKYXZhOwotfTsKLQotYm9vbAotbWF0Y2hfYXJyYXlzKGNvbnN0IGNoYXIqIGNvbnN0KmV4cGVjdGVkLCBjb25zdCB2ZWN0b3I8c3RyaW5nPiAmZ290KQotewotICAgIGludCBjb3VudCA9IDA7Ci0gICAgd2hpbGUgKGV4cGVjdGVkW2NvdW50XSAhPSBOVUxMKSB7Ci0gICAgICAgIGNvdW50Kys7Ci0gICAgfQotICAgIGlmIChnb3Quc2l6ZSgpICE9IGNvdW50KSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyBpKyspIHsKLSAgICAgICAgaWYgKGdvdFtpXSAhPSBleHBlY3RlZFtpXSkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkCi1wcmludF9hcnJheShjb25zdCBjaGFyKiBwcmVmaXgsIGNvbnN0IGNoYXIqIGNvbnN0KmV4cGVjdGVkKQotewotICAgIHdoaWxlICgqZXhwZWN0ZWQpIHsKLSAgICAgICAgY291dCA8PCBwcmVmaXggPDwgKmV4cGVjdGVkIDw8IGVuZGw7Ci0gICAgICAgIGV4cGVjdGVkKys7Ci0gICAgfQotfQotCi12b2lkCi1wcmludF9hcnJheShjb25zdCBjaGFyKiBwcmVmaXgsIGNvbnN0IHZlY3RvcjxzdHJpbmc+ICZnb3QpCi17Ci0gICAgc2l6ZV90IGNvdW50ID0gZ290LnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpPTA7IGk8Y291bnQ7IGkrKykgewotICAgICAgICBjb3V0IDw8IHByZWZpeCA8PCBnb3RbaV0gPDwgZW5kbDsKLSAgICB9Ci19Ci0KLXN0YXRpYyBpbnQKLXRlc3QoY29uc3QgQW5zd2VyJiBhbnN3ZXIpCi17Ci0gICAgaW50IGFyZ2MgPSAwOwotICAgIHdoaWxlIChhbnN3ZXIuYXJndlthcmdjXSkgewotICAgICAgICBhcmdjKys7Ci0gICAgfQotCi0gICAgaW50IGVyciA9IDA7Ci0KLSAgICBPcHRpb25zIG9wdGlvbnM7Ci0gICAgaW50IHJlc3VsdCA9IHBhcnNlX29wdGlvbnMoYXJnYywgYW5zd2VyLmFyZ3YsICZvcHRpb25zKTsKLQotICAgIC8vIHJlc3VsdAotICAgIGlmICgoKGJvb2wpcmVzdWx0KSAhPSAoKGJvb2wpYW5zd2VyLnJlc3VsdCkpIHsKLSAgICAgICAgY291dCA8PCAibWlzbWF0Y2g6IHJlc3VsdDogZ290ICIgPDwgcmVzdWx0IDw8ICIgZXhwZWN0ZWQgIiA8PAotICAgICAgICAgICAgYW5zd2VyLnJlc3VsdCA8PCBlbmRsOwotICAgICAgICBlcnIgPSAxOwotICAgIH0KLQotICAgIGlmIChyZXN1bHQgIT0gMCkgewotICAgICAgICAvLyBpZiBpdCBmYWlsZWQsIGV2ZXJ5dGhpbmcgaXMgaW52YWxpZAotICAgICAgICByZXR1cm4gZXJyOwotICAgIH0KLQotICAgIC8vIHN5c3RlbVNlYXJjaFBhdGgKLSAgICBpZiAoIW1hdGNoX2FycmF5cyhhbnN3ZXIuc3lzdGVtU2VhcmNoUGF0aCwgb3B0aW9ucy5zeXN0ZW1TZWFyY2hQYXRoKSkgewotICAgICAgICBjb3V0IDw8ICJtaXNtYXRjaDogc3lzdGVtU2VhcmNoUGF0aDogZ290IiA8PCBlbmRsOwotICAgICAgICBwcmludF9hcnJheSgiICAgICAgICAiLCBvcHRpb25zLnN5c3RlbVNlYXJjaFBhdGgpOwotICAgICAgICBjb3V0IDw8ICIgICAgZXhwZWN0ZWQiIDw8IGVuZGw7Ci0gICAgICAgIHByaW50X2FycmF5KCIgICAgICAgICIsIGFuc3dlci5zeXN0ZW1TZWFyY2hQYXRoKTsKLSAgICAgICAgZXJyID0gMTsKLSAgICB9Ci0KLSAgICAvLyBsb2NhbFNlYXJjaFBhdGgKLSAgICBpZiAoIW1hdGNoX2FycmF5cyhhbnN3ZXIubG9jYWxTZWFyY2hQYXRoLCBvcHRpb25zLmxvY2FsU2VhcmNoUGF0aCkpIHsKLSAgICAgICAgY291dCA8PCAibWlzbWF0Y2g6IGxvY2FsU2VhcmNoUGF0aDogZ290IiA8PCBlbmRsOwotICAgICAgICBwcmludF9hcnJheSgiICAgICAgICAiLCBvcHRpb25zLmxvY2FsU2VhcmNoUGF0aCk7Ci0gICAgICAgIGNvdXQgPDwgIiAgICBleHBlY3RlZCIgPDwgZW5kbDsKLSAgICAgICAgcHJpbnRfYXJyYXkoIiAgICAgICAgIiwgYW5zd2VyLmxvY2FsU2VhcmNoUGF0aCk7Ci0gICAgICAgIGVyciA9IDE7Ci0gICAgfQotCi0gICAgLy8gaW5wdXRGaWxlTmFtZQotICAgIGlmIChhbnN3ZXIuaW5wdXRGaWxlTmFtZSAhPSBvcHRpb25zLmlucHV0RmlsZU5hbWUpIHsKLSAgICAgICAgY291dCA8PCAibWlzbWF0Y2g6IGlucHV0RmlsZU5hbWU6IGdvdCAiIDw8IG9wdGlvbnMuaW5wdXRGaWxlTmFtZQotICAgICAgICAgICAgPDwgIiBleHBlY3RlZCAiIDw8IGFuc3dlci5pbnB1dEZpbGVOYW1lIDw8IGVuZGw7Ci0gICAgICAgIGVyciA9IDE7Ci0gICAgfQotCi0gICAgLy8gbmF0aXZlTGFuZ3VhZ2UKLSAgICBpZiAoYW5zd2VyLm5hdGl2ZUxhbmd1YWdlICE9IG9wdGlvbnMubmF0aXZlTGFuZ3VhZ2UpIHsKLSAgICAgICAgY291dCA8PCAibWlzbWF0Y2g6IG5hdGl2ZUxhbmd1YWdlOiBnb3QgIiA8PCBvcHRpb25zLm5hdGl2ZUxhbmd1YWdlCi0gICAgICAgICAgICA8PCAiIGV4cGVjdGVkICIgPDwgYW5zd2VyLm5hdGl2ZUxhbmd1YWdlIDw8IGVuZGw7Ci0gICAgICAgIGVyciA9IDE7Ci0gICAgfQotCi0gICAgLy8gb3V0cHV0SAotICAgIGlmIChhbnN3ZXIub3V0cHV0SCAhPSBvcHRpb25zLm91dHB1dEgpIHsKLSAgICAgICAgY291dCA8PCAibWlzbWF0Y2g6IG91dHB1dEg6IGdvdCAiIDw8IG9wdGlvbnMub3V0cHV0SAotICAgICAgICAgICAgPDwgIiBleHBlY3RlZCAiIDw8IGFuc3dlci5vdXRwdXRIIDw8IGVuZGw7Ci0gICAgICAgIGVyciA9IDE7Ci0gICAgfQotCi0gICAgLy8gb3V0cHV0Q1BQCi0gICAgaWYgKGFuc3dlci5vdXRwdXRDUFAgIT0gb3B0aW9ucy5vdXRwdXRDUFApIHsKLSAgICAgICAgY291dCA8PCAibWlzbWF0Y2g6IG91dHB1dENQUDogZ290ICIgPDwgb3B0aW9ucy5vdXRwdXRDUFAKLSAgICAgICAgICAgIDw8ICIgZXhwZWN0ZWQgIiA8PCBhbnN3ZXIub3V0cHV0Q1BQIDw8IGVuZGw7Ci0gICAgICAgIGVyciA9IDE7Ci0gICAgfQotCi0gICAgLy8gb3V0cHV0SmF2YQotICAgIGlmIChhbnN3ZXIub3V0cHV0SmF2YSAhPSBvcHRpb25zLm91dHB1dEphdmEpIHsKLSAgICAgICAgY291dCA8PCAibWlzbWF0Y2g6IG91dHB1dEphdmE6IGdvdCAiIDw8IG9wdGlvbnMub3V0cHV0SmF2YQotICAgICAgICAgICAgPDwgIiBleHBlY3RlZCAiIDw8IGFuc3dlci5vdXRwdXRKYXZhIDw8IGVuZGw7Ci0gICAgICAgIGVyciA9IDE7Ci0gICAgfQotCi0gICAgcmV0dXJuIGVycjsKLX0KLQotY29uc3QgQW5zd2VyIGdfdGVzdHNbXSA9IHsKLQotICAgIHsKLSAgICAgICAgLyogYXJndiAqLyAgICAgICAgICAgICAgeyAidGVzdCIsICItaS9tb29mIiwgIi1JL2JsYWgiLCAiLUlibGVoIiwgIi1pbW9vIiwgImlucHV0RmlsZU5hbWUuYWlkbF9jcHAiLCBOVUxMLCBOVUxMIH0sCi0gICAgICAgIC8qIHJlc3VsdCAqLyAgICAgICAgICAgIDAsCi0gICAgICAgIC8qIHN5c3RlbVNlYXJjaFBhdGggKi8gIHsgIi9ibGFoIiwgImJsZWgiLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMIH0sCi0gICAgICAgIC8qIGxvY2FsU2VhcmNoUGF0aCAqLyAgIHsgIi9tb29mIiwgIm1vbyIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfSwKLSAgICAgICAgLyogaW5wdXRGaWxlTmFtZSAqLyAgICAgImlucHV0RmlsZU5hbWUuYWlkbF9jcHAiLAotICAgICAgICAvKiBuYXRpdmVMYW5ndWFnZSAqLyAgICBDUFAsCi0gICAgICAgIC8qIG91dHB1dEggKi8gICAgICAgICAgICIiLAotICAgICAgICAvKiBvdXRwdXRDUFAgKi8gICAgICAgICAiIiwKLSAgICAgICAgLyogb3V0cHV0SmF2YSAqLyAgICAgICAgIiIKLSAgICB9LAotCi0gICAgewotICAgICAgICAvKiBhcmd2ICovICAgICAgICAgICAgICB7ICJ0ZXN0IiwgImlucHV0RmlsZU5hbWUuYWlkbF9jcHAiLCAiLW9oIiwgIm91dHB1dEgiLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMIH0sCi0gICAgICAgIC8qIHJlc3VsdCAqLyAgICAgICAgICAgIDAsCi0gICAgICAgIC8qIHN5c3RlbVNlYXJjaFBhdGggKi8gIHsgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCB9LAotICAgICAgICAvKiBsb2NhbFNlYXJjaFBhdGggKi8gICB7IE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfSwKLSAgICAgICAgLyogaW5wdXRGaWxlTmFtZSAqLyAgICAgImlucHV0RmlsZU5hbWUuYWlkbF9jcHAiLAotICAgICAgICAvKiBuYXRpdmVMYW5ndWFnZSAqLyAgICBDUFAsCi0gICAgICAgIC8qIG91dHB1dEggKi8gICAgICAgICAgICJvdXRwdXRIIiwKLSAgICAgICAgLyogb3V0cHV0Q1BQICovICAgICAgICAgIiIsCi0gICAgICAgIC8qIG91dHB1dEphdmEgKi8gICAgICAgICIiCi0gICAgfSwKLQotICAgIHsKLSAgICAgICAgLyogYXJndiAqLyAgICAgICAgICAgICAgeyAidGVzdCIsICJpbnB1dEZpbGVOYW1lLmFpZGxfY3BwIiwgIi1vY3BwIiwgIm91dHB1dENQUCIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfSwKLSAgICAgICAgLyogcmVzdWx0ICovICAgICAgICAgICAgMCwKLSAgICAgICAgLyogc3lzdGVtU2VhcmNoUGF0aCAqLyAgeyBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMIH0sCi0gICAgICAgIC8qIGxvY2FsU2VhcmNoUGF0aCAqLyAgIHsgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCB9LAotICAgICAgICAvKiBpbnB1dEZpbGVOYW1lICovICAgICAiaW5wdXRGaWxlTmFtZS5haWRsX2NwcCIsCi0gICAgICAgIC8qIG5hdGl2ZUxhbmd1YWdlICovICAgIENQUCwKLSAgICAgICAgLyogb3V0cHV0SCAqLyAgICAgICAgICAgIiIsCi0gICAgICAgIC8qIG91dHB1dENQUCAqLyAgICAgICAgICJvdXRwdXRDUFAiLAotICAgICAgICAvKiBvdXRwdXRKYXZhICovICAgICAgICAiIgotICAgIH0sCi0KLSAgICB7Ci0gICAgICAgIC8qIGFyZ3YgKi8gICAgICAgICAgICAgIHsgInRlc3QiLCAiaW5wdXRGaWxlTmFtZS5haWRsX2NwcCIsICItb2phdmEiLCAib3V0cHV0SmF2YSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfSwKLSAgICAgICAgLyogcmVzdWx0ICovICAgICAgICAgICAgMCwKLSAgICAgICAgLyogc3lzdGVtU2VhcmNoUGF0aCAqLyAgeyBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMIH0sCi0gICAgICAgIC8qIGxvY2FsU2VhcmNoUGF0aCAqLyAgIHsgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCB9LAotICAgICAgICAvKiBpbnB1dEZpbGVOYW1lICovICAgICAiaW5wdXRGaWxlTmFtZS5haWRsX2NwcCIsCi0gICAgICAgIC8qIG5hdGl2ZUxhbmd1YWdlICovICAgIENQUCwKLSAgICAgICAgLyogb3V0cHV0SCAqLyAgICAgICAgICAgIiIsCi0gICAgICAgIC8qIG91dHB1dENQUCAqLyAgICAgICAgICIiLAotICAgICAgICAvKiBvdXRwdXRKYXZhICovICAgICAgICAib3V0cHV0SmF2YSIKLSAgICB9LAotCi0gICAgewotICAgICAgICAvKiBhcmd2ICovICAgICAgICAgICAgICB7ICJ0ZXN0IiwgImlucHV0RmlsZU5hbWUuYWlkbF9jcHAiLCAiLW9oIiwgIm91dHB1dEgiLCAiLW9jcHAiLCAib3V0cHV0Q1BQIiwgIi1vamF2YSIsICJvdXRwdXRKYXZhIiB9LAotICAgICAgICAvKiByZXN1bHQgKi8gICAgICAgICAgICAwLAotICAgICAgICAvKiBzeXN0ZW1TZWFyY2hQYXRoICovICB7IE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfSwKLSAgICAgICAgLyogbG9jYWxTZWFyY2hQYXRoICovICAgeyBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMIH0sCi0gICAgICAgIC8qIGlucHV0RmlsZU5hbWUgKi8gICAgICJpbnB1dEZpbGVOYW1lLmFpZGxfY3BwIiwKLSAgICAgICAgLyogbmF0aXZlTGFuZ3VhZ2UgKi8gICAgQ1BQLAotICAgICAgICAvKiBvdXRwdXRIICovICAgICAgICAgICAib3V0cHV0SCIsCi0gICAgICAgIC8qIG91dHB1dENQUCAqLyAgICAgICAgICJvdXRwdXRDUFAiLAotICAgICAgICAvKiBvdXRwdXRKYXZhICovICAgICAgICAib3V0cHV0SmF2YSIKLSAgICB9LAotCi0gICAgewotICAgICAgICAvKiBhcmd2ICovICAgICAgICAgICAgICB7ICJ0ZXN0IiwgImlucHV0RmlsZU5hbWUuYWlkbF9jcHAiLCAiLW9oIiwgIm91dHB1dEgiLCAiLW9oIiwgIm91dHB1dEgxIiwgTlVMTCwgTlVMTCB9LAotICAgICAgICAvKiByZXN1bHQgKi8gICAgICAgICAgICAxLAotICAgICAgICAvKiBzeXN0ZW1TZWFyY2hQYXRoICovICB7IE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfSwKLSAgICAgICAgLyogbG9jYWxTZWFyY2hQYXRoICovICAgeyBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMIH0sCi0gICAgICAgIC8qIGlucHV0RmlsZU5hbWUgKi8gICAgICIiLAotICAgICAgICAvKiBuYXRpdmVMYW5ndWFnZSAqLyAgICBDUFAsCi0gICAgICAgIC8qIG91dHB1dEggKi8gICAgICAgICAgICIiLAotICAgICAgICAvKiBvdXRwdXRDUFAgKi8gICAgICAgICAiIiwKLSAgICAgICAgLyogb3V0cHV0SmF2YSAqLyAgICAgICAgIiIKLSAgICB9LAotCi0gICAgewotICAgICAgICAvKiBhcmd2ICovICAgICAgICAgICAgICB7ICJ0ZXN0IiwgImlucHV0RmlsZU5hbWUuYWlkbF9jcHAiLCAiLW9jcHAiLCAib3V0cHV0Q1BQIiwgIi1vY3BwIiwgIm91dHB1dENQUDEiLCBOVUxMLCBOVUxMIH0sCi0gICAgICAgIC8qIHJlc3VsdCAqLyAgICAgICAgICAgIDEsCi0gICAgICAgIC8qIHN5c3RlbVNlYXJjaFBhdGggKi8gIHsgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCB9LAotICAgICAgICAvKiBsb2NhbFNlYXJjaFBhdGggKi8gICB7IE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfSwKLSAgICAgICAgLyogaW5wdXRGaWxlTmFtZSAqLyAgICAgIiIsCi0gICAgICAgIC8qIG5hdGl2ZUxhbmd1YWdlICovICAgIENQUCwKLSAgICAgICAgLyogb3V0cHV0SCAqLyAgICAgICAgICAgIiIsCi0gICAgICAgIC8qIG91dHB1dENQUCAqLyAgICAgICAgICIiLAotICAgICAgICAvKiBvdXRwdXRKYXZhICovICAgICAgICAiIgotICAgIH0sCi0KLSAgICB7Ci0gICAgICAgIC8qIGFyZ3YgKi8gICAgICAgICAgICAgIHsgInRlc3QiLCAiaW5wdXRGaWxlTmFtZS5haWRsX2NwcCIsICItb2phdmEiLCAib3V0cHV0SmF2YSIsICItb2phdmEiLCAib3V0cHV0SmF2YTEiLCBOVUxMLCBOVUxMIH0sCi0gICAgICAgIC8qIHJlc3VsdCAqLyAgICAgICAgICAgIDEsCi0gICAgICAgIC8qIHN5c3RlbVNlYXJjaFBhdGggKi8gIHsgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCB9LAotICAgICAgICAvKiBsb2NhbFNlYXJjaFBhdGggKi8gICB7IE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfSwKLSAgICAgICAgLyogaW5wdXRGaWxlTmFtZSAqLyAgICAgIiIsCi0gICAgICAgIC8qIG5hdGl2ZUxhbmd1YWdlICovICAgIENQUCwKLSAgICAgICAgLyogb3V0cHV0SCAqLyAgICAgICAgICAgIiIsCi0gICAgICAgIC8qIG91dHB1dENQUCAqLyAgICAgICAgICIiLAotICAgICAgICAvKiBvdXRwdXRKYXZhICovICAgICAgICAiIgotICAgIH0sCi0KLX07Ci0KLWludAotbWFpbihpbnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpCi17Ci0gICAgY29uc3QgaW50IGNvdW50ID0gc2l6ZW9mKGdfdGVzdHMpL3NpemVvZihnX3Rlc3RzWzBdKTsKLSAgICBpbnQgbWF0Y2hlc1tjb3VudF07Ci0KLSAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7IGkrKykgewotICAgICAgICBpZiAoVkVSQk9TRSkgewotICAgICAgICAgICAgY291dCA8PCBlbmRsOwotICAgICAgICAgICAgY291dCA8PCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiA8PCBlbmRsOwotICAgICAgICAgICAgY29uc3QgY2hhciogY29uc3QqIHAgPSBnX3Rlc3RzW2ldLmFyZ3Y7Ci0gICAgICAgICAgICB3aGlsZSAoKnApIHsKLSAgICAgICAgICAgICAgICBjb3V0IDw8ICIgIiA8PCAqcDsKLSAgICAgICAgICAgICAgICBwKys7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjb3V0IDw8IGVuZGw7Ci0gICAgICAgICAgICBjb3V0IDw8ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIDw8IGVuZGw7Ci0gICAgICAgIH0KLSAgICAgICAgbWF0Y2hlc1tpXSA9IHRlc3QoZ190ZXN0c1tpXSk7Ci0gICAgICAgIGlmIChWRVJCT1NFKSB7Ci0gICAgICAgICAgICBpZiAoMCA9PSBtYXRjaGVzW2ldKSB7Ci0gICAgICAgICAgICAgICAgY291dCA8PCAicGFzc2VkIiA8PCBlbmRsOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBjb3V0IDw8ICJmYWlsZWQiIDw8IGVuZGw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXN1bHQgfD0gbWF0Y2hlc1tpXTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGNvdXQgPDwgZW5kbDsKLSAgICBjb3V0IDw8ICI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iIDw8IGVuZGw7Ci0gICAgY291dCA8PCAib3B0aW9uc190ZXN0IHN1bW1hcnkiIDw8IGVuZGw7Ci0gICAgY291dCA8PCAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IiA8PCBlbmRsOwotCi0gICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgY291dCA8PCAicGFzc2VkIiA8PCBlbmRsOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGNvdXQgPDwgImZhaWxlZCB0aGUgZm9sbG93aW5nIHRlc3RzOiIgPDwgZW5kbDsKLSAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyBpKyspIHsKLSAgICAgICAgICAgIGlmIChtYXRjaGVzW2ldKSB7Ci0gICAgICAgICAgICAgICAgY291dCA8PCAiICAgIjsKLSAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBjb25zdCogcCA9IGdfdGVzdHNbaV0uYXJndjsKLSAgICAgICAgICAgICAgICB3aGlsZSAoKnApIHsKLSAgICAgICAgICAgICAgICAgICAgY291dCA8PCAiICIgPDwgKnA7Ci0gICAgICAgICAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY291dCA8PCBlbmRsOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQpkaWZmIC0tZ2l0IGEvdG9vbHMvYWlkbC9zZWFyY2hfcGF0aC5jcHAgYi90b29scy9haWRsL3NlYXJjaF9wYXRoLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmZiNmNiMi4uMDAwMDAwMAotLS0gYS90b29scy9haWRsL3NlYXJjaF9wYXRoLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlICJzZWFyY2hfcGF0aC5oIgotI2luY2x1ZGUgIm9wdGlvbnMuaCIKLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2lmZGVmIEhBVkVfTVNfQ19SVU5USU1FCi0jaW5jbHVkZSA8aW8uaD4KLSNlbmRpZgotCi1zdGF0aWMgdmVjdG9yPHN0cmluZz4gZ19pbXBvcnRQYXRoczsKLQotdm9pZAotc2V0X2ltcG9ydF9wYXRocyhjb25zdCB2ZWN0b3I8c3RyaW5nPiYgaW1wb3J0UGF0aHMpCi17Ci0gICAgZ19pbXBvcnRQYXRocyA9IGltcG9ydFBhdGhzOwotfQotCi1jaGFyKgotZmluZF9pbXBvcnRfZmlsZShjb25zdCBjaGFyKiBnaXZlbikKLXsKLSAgICBzdHJpbmcgZXhwZWN0ZWQgPSBnaXZlbjsKLQotICAgIGludCBOID0gZXhwZWN0ZWQubGVuZ3RoKCk7Ci0gICAgZm9yIChpbnQgaT0wOyBpPE47IGkrKykgewotICAgICAgICBjaGFyIGMgPSBleHBlY3RlZFtpXTsKLSAgICAgICAgaWYgKGMgPT0gJy4nKSB7Ci0gICAgICAgICAgICBleHBlY3RlZFtpXSA9IE9TX1BBVEhfU0VQQVJBVE9SOwotICAgICAgICB9Ci0gICAgfQotICAgIGV4cGVjdGVkICs9ICIuYWlkbCI7Ci0KLSAgICB2ZWN0b3I8c3RyaW5nPiYgcGF0aHMgPSBnX2ltcG9ydFBhdGhzOwotICAgIGZvciAodmVjdG9yPHN0cmluZz46Oml0ZXJhdG9yIGl0PXBhdGhzLmJlZ2luKCk7IGl0IT1wYXRocy5lbmQoKTsgaXQrKykgewotICAgICAgICBzdHJpbmcgZiA9ICppdDsKLSAgICAgICAgaWYgKGYuc2l6ZSgpID09IDApIHsKLSAgICAgICAgICAgIGYgPSAiLiI7Ci0gICAgICAgICAgICBmICs9IE9TX1BBVEhfU0VQQVJBVE9SOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGZbZi5zaXplKCktMV0gIT0gT1NfUEFUSF9TRVBBUkFUT1IpIHsKLSAgICAgICAgICAgIGYgKz0gT1NfUEFUSF9TRVBBUkFUT1I7Ci0gICAgICAgIH0KLSAgICAgICAgZi5hcHBlbmQoZXhwZWN0ZWQpOwotCi0jaWZkZWYgSEFWRV9NU19DX1JVTlRJTUUKLSAgICAgICAgLyogY2hlY2sgdGhhdCB0aGUgZmlsZSBleGlzdHMgYW5kIGlzIG5vdCB3cml0ZS1vbmx5ICovCi0gICAgICAgIGlmICgwID09IF9hY2Nlc3MoZi5jX3N0cigpLCAwKSAmJiAgLyogbW9kZSAwPWV4aXN0ICovCi0gICAgICAgICAgICAwID09IF9hY2Nlc3MoZi5jX3N0cigpLCA0KSApIHsgLyogbW9kZSA0PXJlYWRhYmxlICovCi0jZWxzZQotICAgICAgICBpZiAoMCA9PSBhY2Nlc3MoZi5jX3N0cigpLCBSX09LKSkgewotI2VuZGlmICAgICAgICAKLSAgICAgICAgICAgIHJldHVybiBzdHJkdXAoZi5jX3N0cigpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBOVUxMOwotfQotCmRpZmYgLS1naXQgYS90b29scy9haWRsL3NlYXJjaF9wYXRoLmggYi90b29scy9haWRsL3NlYXJjaF9wYXRoLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiZjk0YjEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvYWlkbC9zZWFyY2hfcGF0aC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotI2lmbmRlZiBERVZJQ0VfVE9PTFNfQUlETF9TRUFSQ0hfUEFUSF9ICi0jZGVmaW5lIERFVklDRV9UT09MU19BSURMX1NFQVJDSF9QQVRIX0gKLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0KLSNpZiBfX2NwbHVzcGx1cwotI2luY2x1ZGUgPHZlY3Rvcj4KLSNpbmNsdWRlIDxzdHJpbmc+Ci11c2luZyBuYW1lc3BhY2Ugc3RkOwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotLy8gcmV0dXJucyBhIEZJTEUqIGFuZCB0aGUgY2hhciogZm9yIHRoZSBmaWxlIHRoYXQgaXQgZm91bmQKLS8vIGdpdmVuIGlzIHRoZSBjbGFzcyBuYW1lIHdlJ3JlIGxvb2tpbmcgZm9yCi1jaGFyKiBmaW5kX2ltcG9ydF9maWxlKGNvbnN0IGNoYXIqIGdpdmVuKTsKLQotI2lmIF9fY3BsdXNwbHVzCi19OyAvLyBleHRlcm4gIkMiCi12b2lkIHNldF9pbXBvcnRfcGF0aHMoY29uc3QgdmVjdG9yPHN0cmluZz4mIGltcG9ydFBhdGhzKTsKLSNlbmRpZgotCi0jZW5kaWYgLy8gREVWSUNFX1RPT0xTX0FJRExfU0VBUkNIX1BBVEhfSAotCmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvLmdpdGlnbm9yZSBiL3Rvb2xzL2xheW91dGxpYi8uZ2l0aWdub3JlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNWU4MmQ3Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi8uZ2l0aWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYmluClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL0FuZHJvaWQubWsgYi90b29scy9sYXlvdXRsaWIvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGU3MzU2OC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0jCi1MT0NBTF9QQVRIIDo9ICQobXktZGlyKQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi0KLSMKLSMgRGVmaW5lIHJ1bGVzIHRvIGJ1aWxkIHRlbXBfbGF5b3V0bGliLmphciwgd2hpY2ggY29udGFpbnMgYSBzdWJzZXQgb2YKLSMgdGhlIGNsYXNzZXMgaW4gZnJhbWV3b3JrLmphci4gIFRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wgaXMgdXNlZCB0bwotIyB0cmFuc2Zvcm0gdGhlIGZyYW1ld29yayBqYXIgaW50byB0aGUgdGVtcF9sYXlvdXRsaWIgamFyLgotIwotCi0jIFdlIG5lZWQgdG8gcHJvY2VzcyB0aGUgZnJhbWV3b3JrIGNsYXNzZXMuamFyIGZpbGUsIGJ1dCB3ZSBjYW4ndAotIyBkZXBlbmQgZGlyZWN0bHkgb24gaXQgKHByaXZhdGUgdmFycyB3b24ndCBiZSBpbmhlcml0ZWQgY29ycmVjdGx5KS4KLSMgU28sIHdlIGRlcGVuZCBvbiBmcmFtZXdvcmsncyBCVUlMVCBmaWxlLgotYnVpbHRfZnJhbWV3b3JrX2RlcCA6PSAkKGNhbGwgamF2YS1saWItZGVwcyxmcmFtZXdvcmstYmFzZSkKLWJ1aWx0X2ZyYW1ld29ya19jbGFzc2VzIDo9ICQoY2FsbCBqYXZhLWxpYi1maWxlcyxmcmFtZXdvcmstYmFzZSkKLQotYnVpbHRfY29yZV9kZXAgOj0gJChjYWxsIGphdmEtbGliLWRlcHMsY29yZSkKLWJ1aWx0X2NvcmVfY2xhc3NlcyA6PSAkKGNhbGwgamF2YS1saWItZmlsZXMsY29yZSkKLQotYnVpbHRfbGF5b3V0bGliX2NyZWF0ZV9qYXIgOj0gJChjYWxsIGludGVybWVkaWF0ZXMtZGlyLWZvciwgXAotCQkJSkFWQV9MSUJSQVJJRVMsbGF5b3V0bGliX2NyZWF0ZSxIT1NUKS9qYXZhbGliLmphcgotCi0jIFRoaXMgaXMgbW9zdGx5IGEgY29weSBvZiBjb25maWcvaG9zdF9qYXZhX2xpYnJhcnkubWsKLUxPQ0FMX01PRFVMRSA6PSB0ZW1wX2xheW91dGxpYgotTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCi1MT0NBTF9NT0RVTEVfU1VGRklYIDo9ICQoQ09NTU9OX0pBVkFfUEFDS0FHRV9TVUZGSVgpCi1MT0NBTF9JU19IT1NUX01PRFVMRSA6PSB0cnVlCi1MT0NBTF9CVUlMVF9NT0RVTEVfU1RFTSA6PSBqYXZhbGliLmphcgotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWluY2x1ZGUgJChCVUlMRF9TWVNURU0pL2Jhc2VfcnVsZXMubWsKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0kKExPQ0FMX0JVSUxUX01PRFVMRSk6ICQoYnVpbHRfY29yZV9kZXApIFwKLSAgICAgICAgICAgICAgICAgICAgICAgJChidWlsdF9mcmFtZXdvcmtfZGVwKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICQoYnVpbHRfbGF5b3V0bGliX2NyZWF0ZV9qYXIpCi0JJChoaWRlKSBlY2hvICJob3N0IGxheW91dGxpYl9jcmVhdGU6ICRAIgotCSQoaGlkZSkgbWtkaXIgLXAgJChkaXIgJEApCi0JJChoaWRlKSBybSAtZiAkQAotCSQoaGlkZSkgbHMgLWwgJChidWlsdF9mcmFtZXdvcmtfY2xhc3NlcykKLQkkKGhpZGUpIGphdmEgLWphciAkKGJ1aWx0X2xheW91dGxpYl9jcmVhdGVfamFyKSBcCi0JICAgICAgICAgICAgICRAIFwKLQkgICAgICAgICAgICAgJChidWlsdF9jb3JlX2NsYXNzZXMpIFwKLQkgICAgICAgICAgICAgJChidWlsdF9mcmFtZXdvcmtfY2xhc3NlcykKLQkkKGhpZGUpIGxzIC1sICQoYnVpbHRfZnJhbWV3b3JrX2NsYXNzZXMpCi0KLQotIwotIyBJbmNsdWRlIHRoZSBzdWJkaXIgbWFrZWZpbGVzLgotIwotaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL1JFQURNRSBiL3Rvb2xzL2xheW91dGxpYi9SRUFETUUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmZWE5YmQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL1JFQURNRQorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotTGF5b3V0bGliIGlzIGEgY3VzdG9tIHZlcnNpb24gb2YgdGhlIGFuZHJvaWQgVmlldyBmcmFtZXdvcmsgZGVzaWduZWQgdG8gcnVuIGluc2lkZSBFY2xpcHNlLgotVGhlIGdvYWwgb2YgdGhlIGxpYnJhcnkgaXMgdG8gcHJvdmlkZSBsYXlvdXQgcmVuZGVyaW5nIGluIEVjbGlwc2UgdGhhdCBhcmUgdmVyeSB2ZXJ5IGNsb3NlIHRvIHRoZWlyIHJlbmRlcmluZyBvbiBkZXZpY2VzLgotCi1Ob25lIG9mIHRoZSBjb20uYW5kcm9pZC4qIG9yIGFuZHJvaWQuKiBjbGFzc2VzIGluIGxheW91dGxpYiBydW4gb24gZGV2aWNlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlLy5jbGFzc3BhdGggYi90b29scy9sYXlvdXRsaWIvYnJpZGdlLy5jbGFzc3BhdGgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlNDI3NGQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS8uY2xhc3NwYXRoCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxjbGFzc3BhdGg+Ci0JPGNsYXNzcGF0aGVudHJ5IGV4Y2x1ZGluZz0ib3JnL2t4bWwyL2lvLyIga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0idmFyIiBwYXRoPSJBTkRST0lEX1BMQVRfU1JDL3ByZWJ1aWx0cy9taXNjL2NvbW1vbi9sYXlvdXRsaWJfYXBpL2xheW91dGxpYl9hcGktcHJlYnVpbHQuamFyIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InZhciIgcGF0aD0iQU5EUk9JRF9QTEFUX1NSQy9wcmVidWlsdHMvbWlzYy9jb21tb24va3htbDIva3htbDItMi4zLjAuamFyIiBzb3VyY2VwYXRoPSIvQU5EUk9JRF9QTEFUX1NSQy9kYWx2aWsvbGliY29yZS94bWwvc3JjL21haW4vamF2YSIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJ2YXIiIHBhdGg9IkFORFJPSURfUExBVF9TUkMvb3V0L2hvc3QvY29tbW9uL29iai9KQVZBX0xJQlJBUklFUy90ZW1wX2xheW91dGxpYl9pbnRlcm1lZGlhdGVzL2phdmFsaWIuamFyIiBzb3VyY2VwYXRoPSIvQU5EUk9JRF9QTEFUX1NSQy9mcmFtZXdvcmtzL2Jhc2UiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0idmFyIiBwYXRoPSJBTkRST0lEX1BMQVRfU1JDL3ByZWJ1aWx0cy9taXNjL2NvbW1vbi9uaW5lcGF0Y2gvbmluZXBhdGNoLXByZWJ1aWx0LmphciIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJ2YXIiIHBhdGg9IkFORFJPSURfUExBVF9TUkMvcHJlYnVpbHRzL21pc2MvY29tbW9uL3Rvb2xzLWNvbW1vbi90b29scy1jb21tb24tcHJlYnVpbHQuamFyIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InZhciIgcGF0aD0iQU5EUk9JRF9QTEFUX1NSQy9wcmVidWlsdHMvbWlzYy9jb21tb24vaWN1NGovaWN1NGouamFyIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Ci08L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvLnByb2plY3QgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzZlNzFiLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5sYXlvdXRsaWJfYnJpZGdlPC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KLQk8L25hdHVyZXM+Ci08L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvLnNldHRpbmdzL1JFQURNRS50eHQgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlLy5zZXR0aW5ncy9SRUFETUUudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTIwYjIwLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvLnNldHRpbmdzL1JFQURNRS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLUNvcHkgdGhpcyBpbiBlY2xpcHNlIHByb2plY3QgYXMgYSAuc2V0dGluZ3MgZm9sZGVyIGF0IHRoZSByb290LgotVGhpcyBlbnN1cmUgcHJvcGVyIGNvbXBpbGF0aW9uIGNvbXBsaWFuY2UgYW5kIHdhcm5pbmcvZXJyb3IgbGV2ZWxzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzODFhMGUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuYW5ub3RhdGlvbi5ub25udWxsPWNvbS5hbmRyb2lkLmFubm90YXRpb25zLk5vbk51bGwKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmFubm90YXRpb24ubm9ubnVsbGJ5ZGVmYXVsdD1jb20uYW5kcm9pZC5hbm5vdGF0aW9ucy5Ob25OdWxsQnlEZWZhdWx0Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5hbm5vdGF0aW9uLm5vbm51bGxpc2RlZmF1bHQ9ZGlzYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmFubm90YXRpb24ubnVsbGFibGU9Y29tLmFuZHJvaWQuYW5ub3RhdGlvbnMuTnVsbGFibGUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmFubm90YXRpb24ubnVsbGFuYWx5c2lzPWVuYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4uaW5saW5lSnNyQnl0ZWNvZGU9ZW5hYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi50YXJnZXRQbGF0Zm9ybT0xLjYKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4udW51c2VkTG9jYWw9cHJlc2VydmUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvbXBsaWFuY2U9MS42Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5kZWJ1Zy5saW5lTnVtYmVyPWdlbmVyYXRlCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5kZWJ1Zy5sb2NhbFZhcmlhYmxlPWdlbmVyYXRlCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5kZWJ1Zy5zb3VyY2VGaWxlPWdlbmVyYXRlCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmFubm90YXRpb25TdXBlckludGVyZmFjZT13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmFzc2VydElkZW50aWZpZXI9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYXV0b2JveGluZz1pZ25vcmUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uY29tcGFyaW5nSWRlbnRpY2FsPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZGVhZENvZGU9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5kZXByZWNhdGlvbj13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmRlcHJlY2F0aW9uSW5EZXByZWNhdGVkQ29kZT1kaXNhYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5kZXByZWNhdGlvbldoZW5PdmVycmlkaW5nRGVwcmVjYXRlZE1ldGhvZD1kaXNhYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5kaXNjb3VyYWdlZFJlZmVyZW5jZT13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmVtcHR5U3RhdGVtZW50PWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5lbnVtSWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5leHBsaWNpdGx5Q2xvc2VkQXV0b0Nsb3NlYWJsZT1pZ25vcmUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZmFsbHRocm91Z2hDYXNlPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZmF0YWxPcHRpb25hbEVycm9yPWVuYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZmllbGRIaWRpbmc9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5maW5hbFBhcmFtZXRlckJvdW5kPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZmluYWxseUJsb2NrTm90Q29tcGxldGluZ05vcm1hbGx5PXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZm9yYmlkZGVuUmVmZXJlbmNlPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmhpZGRlbkNhdGNoQmxvY2s9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5pbmNsdWRlTnVsbEluZm9Gcm9tQXNzZXJ0cz1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmluY29tcGF0aWJsZU5vbkluaGVyaXRlZEludGVyZmFjZU1ldGhvZD13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmluY29tcGxldGVFbnVtU3dpdGNoPWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5pbmRpcmVjdFN0YXRpY0FjY2Vzcz1pZ25vcmUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ubG9jYWxWYXJpYWJsZUhpZGluZz13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLm1ldGhvZFdpdGhDb25zdHJ1Y3Rvck5hbWU9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5taXNzaW5nRGVwcmVjYXRlZEFubm90YXRpb249d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5taXNzaW5nSGFzaENvZGVNZXRob2Q9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5taXNzaW5nT3ZlcnJpZGVBbm5vdGF0aW9uPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLm1pc3NpbmdPdmVycmlkZUFubm90YXRpb25Gb3JJbnRlcmZhY2VNZXRob2RJbXBsZW1lbnRhdGlvbj1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLm1pc3NpbmdTZXJpYWxWZXJzaW9uPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ubWlzc2luZ1N5bmNocm9uaXplZE9uSW5oZXJpdGVkTWV0aG9kPWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5ub0VmZmVjdEFzc2lnbm1lbnQ9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5ub0ltcGxpY2l0U3RyaW5nQ29udmVyc2lvbj13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLm5vbkV4dGVybmFsaXplZFN0cmluZ0xpdGVyYWw9aWdub3JlCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLm51bGxSZWZlcmVuY2U9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ubnVsbFNwZWNJbnN1ZmZpY2llbnRJbmZvPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ubnVsbFNwZWNWaW9sYXRpb249ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ub3ZlcnJpZGluZ1BhY2thZ2VEZWZhdWx0TWV0aG9kPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ucGFyYW1ldGVyQXNzaWdubWVudD1pZ25vcmUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ucG9zc2libGVBY2NpZGVudGFsQm9vbGVhbkFzc2lnbm1lbnQ9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5wb3RlbnRpYWxOdWxsUmVmZXJlbmNlPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ucG90ZW50aWFsTnVsbFNwZWNWaW9sYXRpb249ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ucG90ZW50aWFsbHlVbmNsb3NlZENsb3NlYWJsZT13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnJhd1R5cGVSZWZlcmVuY2U9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5yZWR1bmRhbnROdWxsQW5ub3RhdGlvbj13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnJlZHVuZGFudE51bGxDaGVjaz1pZ25vcmUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ucmVkdW5kYW50U3BlY2lmaWNhdGlvbk9mVHlwZUFyZ3VtZW50cz1pZ25vcmUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ucmVkdW5kYW50U3VwZXJpbnRlcmZhY2U9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5yZXBvcnRNZXRob2RDYW5CZVBvdGVudGlhbGx5U3RhdGljPWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5yZXBvcnRNZXRob2RDYW5CZVN0YXRpYz1pZ25vcmUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uc3BlY2lhbFBhcmFtZXRlckhpZGluZ0ZpZWxkPWRpc2FibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnN0YXRpY0FjY2Vzc1JlY2VpdmVyPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uc3VwcHJlc3NPcHRpb25hbEVycm9ycz1kaXNhYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5zdXBwcmVzc1dhcm5pbmdzPWVuYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uc3ludGhldGljQWNjZXNzRW11bGF0aW9uPWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS50eXBlUGFyYW1ldGVySGlkaW5nPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0udW5hdm9pZGFibGVHZW5lcmljVHlwZVByb2JsZW1zPWRpc2FibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVuY2hlY2tlZFR5cGVPcGVyYXRpb249d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bmNsb3NlZENsb3NlYWJsZT1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bmRvY3VtZW50ZWRFbXB0eUJsb2NrPWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bmhhbmRsZWRXYXJuaW5nVG9rZW49d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bm5lY2Vzc2FyeUVsc2U9aWdub3JlCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVubmVjZXNzYXJ5VHlwZUNoZWNrPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0udW5xdWFsaWZpZWRGaWVsZEFjY2Vzcz1pZ25vcmUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0udW51c2VkRGVjbGFyZWRUaHJvd25FeGNlcHRpb249d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bnVzZWREZWNsYXJlZFRocm93bkV4Y2VwdGlvbkV4ZW1wdEV4Y2VwdGlvbkFuZFRocm93YWJsZT1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVudXNlZERlY2xhcmVkVGhyb3duRXhjZXB0aW9uSW5jbHVkZURvY0NvbW1lbnRSZWZlcmVuY2U9ZW5hYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bnVzZWREZWNsYXJlZFRocm93bkV4Y2VwdGlvbldoZW5PdmVycmlkaW5nPWRpc2FibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVudXNlZEltcG9ydD13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVudXNlZExhYmVsPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0udW51c2VkTG9jYWw9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bnVzZWRPYmplY3RBbGxvY2F0aW9uPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0udW51c2VkUGFyYW1ldGVyPWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bnVzZWRQYXJhbWV0ZXJJbmNsdWRlRG9jQ29tbWVudFJlZmVyZW5jZT1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVudXNlZFBhcmFtZXRlcldoZW5JbXBsZW1lbnRpbmdBYnN0cmFjdD1kaXNhYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bnVzZWRQYXJhbWV0ZXJXaGVuT3ZlcnJpZGluZ0NvbmNyZXRlPWRpc2FibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVudXNlZFByaXZhdGVNZW1iZXI9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bnVzZWRXYXJuaW5nVG9rZW49d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS52YXJhcmdzQXJndW1lbnROZWVkQ2FzdD13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5zb3VyY2U9MS42CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL0FuZHJvaWQubWsgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL0FuZHJvaWQubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzZDQ4ZmMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9BbmRyb2lkLm1rCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotIwotIyBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMKLSMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSMKLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotCi1MT0NBTF9TUkNfRklMRVMgOj0gJChjYWxsIGFsbC1qYXZhLWZpbGVzLXVuZGVyLHNyYykKLUxPQ0FMX0pBVkFfUkVTT1VSQ0VfRElSUyA6PSByZXNvdXJjZXMKLQotCi1MT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCi0Ja3htbDItMi4zLjAgXAotCWljdTRqIFwKLQlsYXlvdXRsaWJfYXBpLXByZWJ1aWx0IFwKLQl0b29scy1jb21tb24tcHJlYnVpbHQKLQotTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKLQl0ZW1wX2xheW91dGxpYiBcCi0JbmluZXBhdGNoLXByZWJ1aWx0Ci0KLUxPQ0FMX01PRFVMRSA6PSBsYXlvdXRsaWIKLQotaW5jbHVkZSAkKEJVSUxEX0hPU1RfSkFWQV9MSUJSQVJZKQotCi0jIEJ1aWxkIGFsbCBzdWItZGlyZWN0b3JpZXMKLWluY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKLQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9hY3Rpb25fYmFyLnhtbCBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvYWN0aW9uX2Jhci54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhZGM1YWYuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9hY3Rpb25fYmFyLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KLTxtZXJnZSB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiPgotICAgIDxpbmNsdWRlIGxheW91dD0iQGFuZHJvaWQ6bGF5b3V0L2FjdGlvbl9iYXJfaG9tZSIgLz4KLSAgICA8VGV4dFZpZXcKLSAgICAgICAgICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJ3cmFwX2NvbnRlbnQiCi0gICAgICAgICAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIvPgotPC9tZXJnZT4KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvaGRwaS9pY19zeXNiYXJfYmFjay5wbmcgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL2hkcGkvaWNfc3lzYmFyX2JhY2sucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NGU2YmM4Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvaGRwaS9pY19zeXNiYXJfYmFjay5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL2hkcGkvaWNfc3lzYmFyX2hvbWUucG5nIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9oZHBpL2ljX3N5c2Jhcl9ob21lLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzhlNGY0NS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL2hkcGkvaWNfc3lzYmFyX2hvbWUucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9oZHBpL2ljX3N5c2Jhcl9yZWNlbnQucG5nIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9oZHBpL2ljX3N5c2Jhcl9yZWNlbnQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjlmMzAwLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvaGRwaS9pY19zeXNiYXJfcmVjZW50LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvaGRwaS9zdGF0X3N5c19iYXR0ZXJ5X2NoYXJnZV9hbmltMTAwLnBuZyBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvaGRwaS9zdGF0X3N5c19iYXR0ZXJ5X2NoYXJnZV9hbmltMTAwLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODI5Mzc4ZS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL2hkcGkvc3RhdF9zeXNfYmF0dGVyeV9jaGFyZ2VfYW5pbTEwMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL2hkcGkvc3RhdF9zeXNfd2lmaV9zaWduYWxfNF9mdWxseS5wbmcgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL2hkcGkvc3RhdF9zeXNfd2lmaV9zaWduYWxfNF9mdWxseS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzMWRhZWQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9oZHBpL3N0YXRfc3lzX3dpZmlfc2lnbmFsXzRfZnVsbHkucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9oZHBpL3N0YXR1c19iYXJfYmFja2dyb3VuZC45LnBuZyBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvaGRwaS9zdGF0dXNfYmFyX2JhY2tncm91bmQuOS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0YmUyOTguLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9oZHBpL3N0YXR1c19iYXJfYmFja2dyb3VuZC45LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbGRydGwtaGRwaS9pY19zeXNiYXJfYmFjay5wbmcgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL2xkcnRsLWhkcGkvaWNfc3lzYmFyX2JhY2sucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODJlYmZlLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbGRydGwtaGRwaS9pY19zeXNiYXJfYmFjay5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL2xkcnRsLWhkcGkvaWNfc3lzYmFyX3JlY2VudC5wbmcgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL2xkcnRsLWhkcGkvaWNfc3lzYmFyX3JlY2VudC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3N2I0NzEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9sZHJ0bC1oZHBpL2ljX3N5c2Jhcl9yZWNlbnQucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9sZHJ0bC1tZHBpL2ljX3N5c2Jhcl9iYWNrLnBuZyBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbGRydGwtbWRwaS9pY19zeXNiYXJfYmFjay5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExYjgwNjIuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9sZHJ0bC1tZHBpL2ljX3N5c2Jhcl9iYWNrLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbGRydGwtbWRwaS9pY19zeXNiYXJfcmVjZW50LnBuZyBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbGRydGwtbWRwaS9pY19zeXNiYXJfcmVjZW50LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmNkYmVmZS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL2xkcnRsLW1kcGkvaWNfc3lzYmFyX3JlY2VudC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL2xkcnRsLXhoZHBpL2ljX3N5c2Jhcl9iYWNrLnBuZyBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbGRydGwteGhkcGkvaWNfc3lzYmFyX2JhY2sucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzNkODY0Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbGRydGwteGhkcGkvaWNfc3lzYmFyX2JhY2sucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9sZHJ0bC14aGRwaS9pY19zeXNiYXJfcmVjZW50LnBuZyBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbGRydGwteGhkcGkvaWNfc3lzYmFyX3JlY2VudC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2NjVlMmEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9sZHJ0bC14aGRwaS9pY19zeXNiYXJfcmVjZW50LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbWRwaS9pY19zeXNiYXJfYmFjay5wbmcgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL21kcGkvaWNfc3lzYmFyX2JhY2sucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDBiYzViLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbWRwaS9pY19zeXNiYXJfYmFjay5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL21kcGkvaWNfc3lzYmFyX2hvbWUucG5nIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9tZHBpL2ljX3N5c2Jhcl9ob21lLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGMzMTgzYi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL21kcGkvaWNfc3lzYmFyX2hvbWUucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9tZHBpL2ljX3N5c2Jhcl9yZWNlbnQucG5nIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9tZHBpL2ljX3N5c2Jhcl9yZWNlbnQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDdmNjExLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbWRwaS9pY19zeXNiYXJfcmVjZW50LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbWRwaS9zdGF0X3N5c19iYXR0ZXJ5X2NoYXJnZV9hbmltMTAwLnBuZyBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbWRwaS9zdGF0X3N5c19iYXR0ZXJ5X2NoYXJnZV9hbmltMTAwLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc3M2E3MC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL21kcGkvc3RhdF9zeXNfYmF0dGVyeV9jaGFyZ2VfYW5pbTEwMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL21kcGkvc3RhdF9zeXNfd2lmaV9zaWduYWxfNF9mdWxseS5wbmcgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL21kcGkvc3RhdF9zeXNfd2lmaV9zaWduYWxfNF9mdWxseS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlMWFjOTEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9tZHBpL3N0YXRfc3lzX3dpZmlfc2lnbmFsXzRfZnVsbHkucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9tZHBpL3N0YXR1c19iYXJfYmFja2dyb3VuZC45LnBuZyBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbWRwaS9zdGF0dXNfYmFyX2JhY2tncm91bmQuOS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViN2MxYTQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9tZHBpL3N0YXR1c19iYXJfYmFja2dyb3VuZC45LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvbmF2aWdhdGlvbl9iYXIueG1sIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9uYXZpZ2F0aW9uX2Jhci54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5OWNhMDguLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy9uYXZpZ2F0aW9uX2Jhci54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPG1lcmdlIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCI+Ci0JPFRleHRWaWV3Ci0JCQlhbmRyb2lkOmxheW91dF93aWR0aD0id3JhcF9jb250ZW50IgotCQkJYW5kcm9pZDpsYXlvdXRfaGVpZ2h0PSJ3cmFwX2NvbnRlbnQiCi0JCQlhbmRyb2lkOmxheW91dF93ZWlnaHQ9IjEiLz4KLQk8SW1hZ2VWaWV3Ci0JCQlhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKLQkJCWFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJ3cmFwX2NvbnRlbnQiLz4KLQk8SW1hZ2VWaWV3Ci0JCQlhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKLQkJCWFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJ3cmFwX2NvbnRlbnQiLz4KLQk8SW1hZ2VWaWV3Ci0JCQlhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKLQkJCWFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJ3cmFwX2NvbnRlbnQiLz4KLQk8VGV4dFZpZXcKLQkJCWFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJ3cmFwX2NvbnRlbnQiCi0JCQlhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKLQkJCWFuZHJvaWQ6bGF5b3V0X3dlaWdodD0iMSIvPgotPC9tZXJnZT4KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvc3RhdHVzX2Jhci54bWwgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL3N0YXR1c19iYXIueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWI0NzRkLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvc3RhdHVzX2Jhci54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotPG1lcmdlIHhtbG5zOmFuZHJvaWQ9Imh0dHA6Ly9zY2hlbWFzLmFuZHJvaWQuY29tL2Fway9yZXMvYW5kcm9pZCI+Ci0JPFRleHRWaWV3Ci0JCQlhbmRyb2lkOmxheW91dF93aWR0aD0id3JhcF9jb250ZW50IgotCQkJYW5kcm9pZDpsYXlvdXRfaGVpZ2h0PSJ3cmFwX2NvbnRlbnQiCi0JCQlhbmRyb2lkOmxheW91dF93ZWlnaHQ9IjEiLz4KLQk8SW1hZ2VWaWV3Ci0JCQlhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKLQkJCWFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJ3cmFwX2NvbnRlbnQiCi0JCQlhbmRyb2lkOmxheW91dF9tYXJnaW5Ub3A9IjFkcCIvPgotCTxJbWFnZVZpZXcKLQkJCWFuZHJvaWQ6bGF5b3V0X2hlaWdodD0id3JhcF9jb250ZW50IgotCQkJYW5kcm9pZDpsYXlvdXRfd2lkdGg9IndyYXBfY29udGVudCIKLQkJCWFuZHJvaWQ6bGF5b3V0X21hcmdpbkxlZnQ9IjNkcCIKLQkJCWFuZHJvaWQ6bGF5b3V0X21hcmdpblJpZ2h0PSI1ZHAiCi0JCQlhbmRyb2lkOmxheW91dF9tYXJnaW5Ub3A9IjFkcCIvPgotPC9tZXJnZT4KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvdGl0bGVfYmFyLnhtbCBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMvdGl0bGVfYmFyLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzZkNzhkOS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL3RpdGxlX2Jhci54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Ci08bWVyZ2UgeG1sbnM6YW5kcm9pZD0iaHR0cDovL3NjaGVtYXMuYW5kcm9pZC5jb20vYXBrL3Jlcy9hbmRyb2lkIj4KLQk8VGV4dFZpZXcKLQkJCWFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJ3cmFwX2NvbnRlbnQiCi0JCQlhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIvPgotPC9tZXJnZT4KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMveGhkcGkvaWNfc3lzYmFyX2JhY2sucG5nIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy94aGRwaS9pY19zeXNiYXJfYmFjay5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkNjBjZDYuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy94aGRwaS9pY19zeXNiYXJfYmFjay5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL3hoZHBpL2ljX3N5c2Jhcl9ob21lLnBuZyBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMveGhkcGkvaWNfc3lzYmFyX2hvbWUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNWJjNWM5Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMveGhkcGkvaWNfc3lzYmFyX2hvbWUucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy94aGRwaS9pY19zeXNiYXJfcmVjZW50LnBuZyBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMveGhkcGkvaWNfc3lzYmFyX3JlY2VudC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2MjFkOWMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy94aGRwaS9pY19zeXNiYXJfcmVjZW50LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMveGhkcGkvc3RhdF9zeXNfYmF0dGVyeV9jaGFyZ2VfYW5pbTEwMC5wbmcgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL3hoZHBpL3N0YXRfc3lzX2JhdHRlcnlfY2hhcmdlX2FuaW0xMDAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2ZkNzE5Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvcmVzb3VyY2VzL2JhcnMveGhkcGkvc3RhdF9zeXNfYmF0dGVyeV9jaGFyZ2VfYW5pbTEwMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL3hoZHBpL3N0YXRfc3lzX3dpZmlfc2lnbmFsXzRfZnVsbHkucG5nIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9yZXNvdXJjZXMvYmFycy94aGRwaS9zdGF0X3N5c193aWZpX3NpZ25hbF80X2Z1bGx5LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjI1YzYxZC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Jlc291cmNlcy9iYXJzL3hoZHBpL3N0YXRfc3lzX3dpZmlfc2lnbmFsXzRfZnVsbHkucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9hbmltYXRpb24vQW5pbWF0aW9uVGhyZWFkLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2FuaW1hdGlvbi9BbmltYXRpb25UaHJlYWQuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjEwZWM5Zi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2FuaW1hdGlvbi9BbmltYXRpb25UaHJlYWQuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmFuaW1hdGlvbjsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5JQW5pbWF0aW9uTGlzdGVuZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlbmRlclNlc3Npb247Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlc3VsdDsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVzdWx0LlN0YXR1czsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLkJyaWRnZTsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuUmVuZGVyU2Vzc2lvbkltcGw7Ci0KLWltcG9ydCBhbmRyb2lkLm9zLkhhbmRsZXI7Ci1pbXBvcnQgYW5kcm9pZC5vcy5IYW5kbGVyX0RlbGVnYXRlOwotaW1wb3J0IGFuZHJvaWQub3MuSGFuZGxlcl9EZWxlZ2F0ZS5JSGFuZGxlckNhbGxiYWNrOwotaW1wb3J0IGFuZHJvaWQub3MuTWVzc2FnZTsKLQotaW1wb3J0IGphdmEudXRpbC5Qcmlvcml0eVF1ZXVlOwotaW1wb3J0IGphdmEudXRpbC5RdWV1ZTsKLQotLyoqCi0gKiBBYnN0cmFjdCBhbmltYXRpb24gdGhyZWFkLgotICogPHAvPgotICogVGhpcyBkb2VzIG5vdCBhY3R1YWxseSBzdGFydCBhbiBhbmltYXRpb24sIGluc3RlYWQgaXQgZmFrZXMgYSBsb29wZXIgdGhhdCB3aWxsIHBsYXkgd2hhdGV2ZXIKLSAqIGFuaW1hdGlvbiBpcyBzZW5kaW5nIG1lc3NhZ2VzIHRvIGl0cyBvd24ge0BsaW5rIEhhbmRsZXJ9LgotICogPHAvPgotICogQ2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjcHJlQW5pbWF0aW9uKCl9IGFuZCB7QGxpbmsgI3Bvc3RBbmltYXRpb24oKX0uCi0gKiA8cC8+Ci0gKiBJZiB7QGxpbmsgI3ByZUFuaW1hdGlvbigpfSBkb2VzIG5vdCBzdGFydCBhbiBhbmltYXRpb24gc29tZWhvdyB0aGVuIHRoZSB0aHJlYWQgZG9lc24ndCBkbwotICogYW55dGhpbmcuCi0gKgotICovCi1wdWJsaWMgYWJzdHJhY3QgY2xhc3MgQW5pbWF0aW9uVGhyZWFkIGV4dGVuZHMgVGhyZWFkIHsKLQotICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE1lc3NhZ2VCdW5kbGUgaW1wbGVtZW50cyBDb21wYXJhYmxlPE1lc3NhZ2VCdW5kbGU+IHsKLSAgICAgICAgZmluYWwgSGFuZGxlciBtVGFyZ2V0OwotICAgICAgICBmaW5hbCBNZXNzYWdlIG1NZXNzYWdlOwotICAgICAgICBmaW5hbCBsb25nIG1VcHRpbWVNaWxsaXM7Ci0KLSAgICAgICAgTWVzc2FnZUJ1bmRsZShIYW5kbGVyIHRhcmdldCwgTWVzc2FnZSBtZXNzYWdlLCBsb25nIHVwdGltZU1pbGxpcykgewotICAgICAgICAgICAgbVRhcmdldCA9IHRhcmdldDsKLSAgICAgICAgICAgIG1NZXNzYWdlID0gbWVzc2FnZTsKLSAgICAgICAgICAgIG1VcHRpbWVNaWxsaXMgPSB1cHRpbWVNaWxsaXM7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oTWVzc2FnZUJ1bmRsZSBidW5kbGUpIHsKLSAgICAgICAgICAgIGlmIChtVXB0aW1lTWlsbGlzIDwgYnVuZGxlLm1VcHRpbWVNaWxsaXMpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgZmluYWwgUmVuZGVyU2Vzc2lvbkltcGwgbVNlc3Npb247Ci0KLSAgICBwcml2YXRlIFF1ZXVlPE1lc3NhZ2VCdW5kbGU+IG1RdWV1ZSA9IG5ldyBQcmlvcml0eVF1ZXVlPE1lc3NhZ2VCdW5kbGU+KCk7Ci0gICAgcHJpdmF0ZSBmaW5hbCBJQW5pbWF0aW9uTGlzdGVuZXIgbUxpc3RlbmVyOwotCi0gICAgcHVibGljIEFuaW1hdGlvblRocmVhZChSZW5kZXJTZXNzaW9uSW1wbCBzY2VuZSwgU3RyaW5nIHRocmVhZE5hbWUsCi0gICAgICAgICAgICBJQW5pbWF0aW9uTGlzdGVuZXIgbGlzdGVuZXIpIHsKLSAgICAgICAgc3VwZXIodGhyZWFkTmFtZSk7Ci0gICAgICAgIG1TZXNzaW9uID0gc2NlbmU7Ci0gICAgICAgIG1MaXN0ZW5lciA9IGxpc3RlbmVyOwotICAgIH0KLQotICAgIHB1YmxpYyBhYnN0cmFjdCBSZXN1bHQgcHJlQW5pbWF0aW9uKCk7Ci0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgcG9zdEFuaW1hdGlvbigpOwotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgcnVuKCkgewotICAgICAgICBCcmlkZ2UucHJlcGFyZVRocmVhZCgpOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgLyogRklYTUU6IFRoZSBBTklNQVRJT05fRlJBTUUgbWVzc2FnZSBubyBsb25nZXIgZXhpc3RzLiAgSW5zdGVhZCwgdGhlCi0gICAgICAgICAgICAgKiBhbmltYXRpb24gdGltaW5nIGxvb3AgaXMgY29tcGxldGVseSBiYXNlZCBvbiBhIENob3Jlb2dyYXBoZXIgb2JqZWN0cwotICAgICAgICAgICAgICogdGhhdCBzY2hlZHVsZXMgYW5pbWF0aW9uIGFuZCBkcmF3aW5nIGZyYW1lcy4gIFRoZSBhbmltYXRpb24gaGFuZGxlciBpcwotICAgICAgICAgICAgICogbm8gbG9uZ2VyIGV2ZW4gYSBoYW5kbGVyOyBpdCBpcyBqdXN0IGEgUnVubmFibGUgZW5xdWV1ZWQgb24gdGhlIENob3Jlb2dyYXBoZXIuCi0gICAgICAgICAgICBIYW5kbGVyX0RlbGVnYXRlLnNldENhbGxiYWNrKG5ldyBJSGFuZGxlckNhbGxiYWNrKCkgewotICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHNlbmRNZXNzYWdlQXRUaW1lKEhhbmRsZXIgaGFuZGxlciwgTWVzc2FnZSBtc2csIGxvbmcgdXB0aW1lTWlsbGlzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtc2cud2hhdCA9PSBWYWx1ZUFuaW1hdG9yLkFOSU1BVElPTl9TVEFSVCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZy53aGF0ID09IFZhbHVlQW5pbWF0b3IuQU5JTUFUSU9OX0ZSQU1FKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtUXVldWUuYWRkKG5ldyBNZXNzYWdlQnVuZGxlKGhhbmRsZXIsIG1zZywgdXB0aW1lTWlsbGlzKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBqdXN0IGlnbm9yZS4KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgKi8KLQotICAgICAgICAgICAgLy8gY2FsbCBvdXQgdG8gdGhlIHByZS1hbmltYXRpb24gd29yaywgd2hpY2ggc2hvdWxkIHN0YXJ0IGFuIGFuaW1hdGlvbiBvciBtb3JlLgotICAgICAgICAgICAgUmVzdWx0IHJlc3VsdCA9IHByZUFuaW1hdGlvbigpOwotICAgICAgICAgICAgaWYgKHJlc3VsdC5pc1N1Y2Nlc3MoKSA9PSBmYWxzZSkgewotICAgICAgICAgICAgICAgIG1MaXN0ZW5lci5kb25lKHJlc3VsdCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIGxvb3AgdGhlIGFuaW1hdGlvbgotICAgICAgICAgICAgUmVuZGVyU2Vzc2lvbiBzZXNzaW9uID0gbVNlc3Npb24uZ2V0U2Vzc2lvbigpOwotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIC8vIGNoZWNrIGVhcmx5LgotICAgICAgICAgICAgICAgIGlmIChtTGlzdGVuZXIuaXNDYW5jZWxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgbmV4dCBtZXNzYWdlLgotICAgICAgICAgICAgICAgIE1lc3NhZ2VCdW5kbGUgYnVuZGxlID0gbVF1ZXVlLnBvbGwoKTsKLSAgICAgICAgICAgICAgICBpZiAoYnVuZGxlID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gc2xlZXAgZW5vdWdoIGZvciB0aGlzIGJ1bmRsZSB0byBiZSBvbiB0aW1lCi0gICAgICAgICAgICAgICAgbG9uZyBjdXJyZW50VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwotICAgICAgICAgICAgICAgIGlmIChjdXJyZW50VGltZSA8IGJ1bmRsZS5tVXB0aW1lTWlsbGlzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzbGVlcChidW5kbGUubVVwdGltZU1pbGxpcyAtIGN1cnJlbnRUaW1lKTsKLSAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUUgbG9nL2RvIHNvbWV0aGluZy9zbGVlcCBhZ2Fpbj8KLSAgICAgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAvLyBjaGVjayBhZnRlciBzbGVlcGluZy4KLSAgICAgICAgICAgICAgICBpZiAobUxpc3RlbmVyLmlzQ2FuY2VsZWQoKSkgewotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAvLyByZWFkeSB0byBkbyB0aGUgd29yaywgYWNxdWlyZSB0aGUgc2NlbmUuCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbVNlc3Npb24uYWNxdWlyZSgyNTApOwotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNTdWNjZXNzKCkgPT0gZmFsc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgbUxpc3RlbmVyLmRvbmUocmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIC8vIHByb2Nlc3MgdGhlIGJ1bmRsZS4gSWYgdGhlIGFuaW1hdGlvbiBpcyBub3QgZmluaXNoZWQsIHRoaXMgd2lsbCBlbnF1ZXVlCi0gICAgICAgICAgICAgICAgLy8gdGhlIG5leHQgbWVzc2FnZSwgc28gbVF1ZXVlIHdpbGwgaGF2ZSBhbm90aGVyIG9uZS4KLSAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBhZnRlciBhY3F1aXJpbmcgaW4gY2FzZSBpdCB0b29rIGEgd2hpbGUuCi0gICAgICAgICAgICAgICAgICAgIGlmIChtTGlzdGVuZXIuaXNDYW5jZWxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIGJ1bmRsZS5tVGFyZ2V0LmhhbmRsZU1lc3NhZ2UoYnVuZGxlLm1NZXNzYWdlKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1TZXNzaW9uLnJlbmRlcihmYWxzZSAvKmZyZXNoUmVuZGVyKi8pLmlzU3VjY2VzcygpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtTGlzdGVuZXIub25OZXdGcmFtZShzZXNzaW9uKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgICAgICAgICAgIG1TZXNzaW9uLnJlbGVhc2UoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IHdoaWxlIChtTGlzdGVuZXIuaXNDYW5jZWxlZCgpID09IGZhbHNlICYmIG1RdWV1ZS5zaXplKCkgPiAwKTsKLQotICAgICAgICAgICAgbUxpc3RlbmVyLmRvbmUoU3RhdHVzLlNVQ0NFU1MuY3JlYXRlUmVzdWx0KCkpOwotCi0gICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0aHJvd2FibGUpIHsKLSAgICAgICAgICAgIC8vIGNhbid0IHVzZSBCcmlkZ2UuZ2V0TG9nKCkgYXMgdGhlIGV4Y2VwdGlvbiBtaWdodCBiZSB0aHJvd24gb3V0c2lkZQotICAgICAgICAgICAgLy8gb2YgYW4gYWNxdWlyZS9yZWxlYXNlIGJsb2NrLgotICAgICAgICAgICAgbUxpc3RlbmVyLmRvbmUoU3RhdHVzLkVSUk9SX1VOS05PV04uY3JlYXRlUmVzdWx0KCJFcnJvciBwbGF5aW5nIGFuaW1hdGlvbiIsIHRocm93YWJsZSkpOwotCi0gICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgICBwb3N0QW5pbWF0aW9uKCk7Ci0gICAgICAgICAgICBIYW5kbGVyX0RlbGVnYXRlLnNldENhbGxiYWNrKG51bGwpOwotICAgICAgICAgICAgQnJpZGdlLmNsZWFudXBUaHJlYWQoKTsKLSAgICAgICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvYW5pbWF0aW9uL1Byb3BlcnR5VmFsdWVzSG9sZGVyX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2FuaW1hdGlvbi9Qcm9wZXJ0eVZhbHVlc0hvbGRlcl9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjQ0NGFhLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvYW5pbWF0aW9uL1Byb3BlcnR5VmFsdWVzSG9sZGVyX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmFuaW1hdGlvbjsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5hbmltYXRpb24uUHJvcGVydHlWYWx1ZXNIb2xkZXIKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBQcm9wZXJ0eVZhbHVlc0hvbGRlciBoYXZlIGJlZW4KLSAqIHJlcGxhY2VkIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIEJlY2F1c2UgaXQncyBhIHN0YXRlbGVzcyBjbGFzcyB0byBzdGFydCB3aXRoLCB0aGVyZSdzIG5vIG5lZWQgdG8ga2VlcCBhIHtAbGluayBEZWxlZ2F0ZU1hbmFnZXJ9Ci0gKiBhcm91bmQgdG8gbWFwIGludCB0byBpbnN0YW5jZSBvZiB0aGUgZGVsZWdhdGUuCi0gKgotICogVGhlIG1haW4gZ29hbCBvZiB0aGlzIGNsYXNzJyBtZXRob2RzIGFyZSB0byBwcm92aWRlIGEgbmF0aXZlIHdheSB0byBhY2Nlc3Mgc2V0dGVycyBhbmQgZ2V0dGVycwotICogb24gc29tZSBvYmplY3QuIEluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIGRlZmF1bHQgdG8gdXNpbmcgSmF2YSByZWZsZWN0aW9uIGluc3RlYWQgc28gdGhlIG5hdGl2ZQotICogbWV0aG9kcyBkbyBub3RoaW5nLgotICoKLSAqLwotLypwYWNrYWdlKi8gY2xhc3MgUHJvcGVydHlWYWx1ZXNIb2xkZXJfRGVsZWdhdGUgewotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuR2V0SW50TWV0aG9kKENsYXNzPD8+IHRhcmdldENsYXNzLCBTdHJpbmcgbWV0aG9kTmFtZSkgewotICAgICAgICAvLyByZXR1cm4gMCB0byBmb3JjZSBQcm9wZXJ0eVZhbHVlc0hvbGRlciB0byB1c2UgSmF2YSByZWZsZWN0aW9uLgotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5HZXRGbG9hdE1ldGhvZChDbGFzczw/PiB0YXJnZXRDbGFzcywgU3RyaW5nIG1ldGhvZE5hbWUpIHsKLSAgICAgICAgLy8gcmV0dXJuIDAgdG8gZm9yY2UgUHJvcGVydHlWYWx1ZXNIb2xkZXIgdG8gdXNlIEphdmEgcmVmbGVjdGlvbi4KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbkNhbGxJbnRNZXRob2QoT2JqZWN0IHRhcmdldCwgaW50IG1ldGhvZElELCBpbnQgYXJnKSB7Ci0gICAgICAgIC8vIGRvIG5vdGhpbmcKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuQ2FsbEZsb2F0TWV0aG9kKE9iamVjdCB0YXJnZXQsIGludCBtZXRob2RJRCwgZmxvYXQgYXJnKSB7Ci0gICAgICAgIC8vIGRvIG5vdGhpbmcKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2FwcC9GcmFnbWVudF9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9hcHAvRnJhZ21lbnRfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWFiZDNmMS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2FwcC9GcmFnbWVudF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTA0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuYXBwOwotCi1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLklQcm9qZWN0Q2FsbGJhY2s7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7Ci1pbXBvcnQgYW5kcm9pZC5vcy5CdW5kbGU7Ci0KLS8qKgotICogRGVsZWdhdGUgdXNlZCB0byBwcm92aWRlIG5ldyBpbXBsZW1lbnRhdGlvbiBvZiBhIHNlbGVjdCBmZXcgbWV0aG9kcyBvZiB7QGxpbmsgRnJhZ21lbnR9Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgIG1ldGhvZHMgb2YgRnJhZ21lbnQgaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGUgbWV0aG9kcyBiZWluZyByZS1pbXBsZW1lbnRlZCBhcmUgdGhlIG9uZXMgcmVzcG9uc2libGUgZm9yIGluc3RhbnRpYXRpbmcgRnJhZ21lbnQgb2JqZWN0cy4KLSAqIEJlY2F1c2UgdGhlIGNsYXNzZXMgb2YgdGhlc2Ugb2JqZWN0cyBhcmUgZm91bmQgaW4gdGhlIHByb2plY3QsIHRoZXNlIG1ldGhvZHMgbmVlZCBhY2Nlc3MgdG8KLSAqIHtAbGluayBJUHJvamVjdENhbGxiYWNrfSBvYmplY3QuIFRoZXkgYXJlIGhvd2V2ZXIgc3RhdGljIG1ldGhvZHMsIHNvIHRoZSBjYWxsYmFjayBpcyBzZXQKLSAqIGJlZm9yZSB0aGUgaW5mbGF0aW9uIHRocm91Z2gge0BsaW5rICNzZXRQcm9qZWN0Q2FsbGJhY2soSVByb2plY3RDYWxsYmFjayl9LgotICovCi1wdWJsaWMgY2xhc3MgRnJhZ21lbnRfRGVsZWdhdGUgewotCi0gICAgcHJpdmF0ZSBzdGF0aWMgSVByb2plY3RDYWxsYmFjayBzUHJvamVjdENhbGxiYWNrOwotCi0gICAgLyoqCi0gICAgICogU2V0cyB0aGUgY3VycmVudCB7QGxpbmsgSVByb2plY3RDYWxsYmFja30gdG8gYmUgdXNlZCB0byBpbnN0YW50aWF0ZSBjbGFzc2VzIGNvbWluZwotICAgICAqIGZyb20gdGhlIHByb2plY3QgYmVpbmcgcmVuZGVyZWQuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIHNldFByb2plY3RDYWxsYmFjayhJUHJvamVjdENhbGxiYWNrIHByb2plY3RDYWxsYmFjaykgewotICAgICAgICBzUHJvamVjdENhbGxiYWNrID0gcHJvamVjdENhbGxiYWNrOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIExpa2Uge0BsaW5rICNpbnN0YW50aWF0ZShDb250ZXh0LCBTdHJpbmcsIEJ1bmRsZSl9IGJ1dCB3aXRoIGEgbnVsbAotICAgICAqIGFyZ3VtZW50IEJ1bmRsZS4KLSAgICAgKi8KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgRnJhZ21lbnQgaW5zdGFudGlhdGUoQ29udGV4dCBjb250ZXh0LCBTdHJpbmcgZm5hbWUpIHsKLSAgICAgICAgcmV0dXJuIGluc3RhbnRpYXRlKGNvbnRleHQsIGZuYW1lLCBudWxsKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2YgYSBGcmFnbWVudCB3aXRoIHRoZSBnaXZlbiBjbGFzcyBuYW1lLiAgVGhpcyBpcwotICAgICAqIHRoZSBzYW1lIGFzIGNhbGxpbmcgaXRzIGVtcHR5IGNvbnN0cnVjdG9yLgotICAgICAqCi0gICAgICogQHBhcmFtIGNvbnRleHQgVGhlIGNhbGxpbmcgY29udGV4dCBiZWluZyB1c2VkIHRvIGluc3RhbnRpYXRlIHRoZSBmcmFnbWVudC4KLSAgICAgKiBUaGlzIGlzIGN1cnJlbnRseSBqdXN0IHVzZWQgdG8gZ2V0IGl0cyBDbGFzc0xvYWRlci4KLSAgICAgKiBAcGFyYW0gZm5hbWUgVGhlIGNsYXNzIG5hbWUgb2YgdGhlIGZyYWdtZW50IHRvIGluc3RhbnRpYXRlLgotICAgICAqIEBwYXJhbSBhcmdzIEJ1bmRsZSBvZiBhcmd1bWVudHMgdG8gc3VwcGx5IHRvIHRoZSBmcmFnbWVudCwgd2hpY2ggaXQKLSAgICAgKiBjYW4gcmV0cmlldmUgd2l0aCB7QGxpbmsgI2dldEFyZ3VtZW50cygpfS4gIE1heSBiZSBudWxsLgotICAgICAqIEByZXR1cm4gUmV0dXJucyBhIG5ldyBmcmFnbWVudCBpbnN0YW5jZS4KLSAgICAgKiBAdGhyb3dzIEluc3RhbnRpYXRpb25FeGNlcHRpb24gSWYgdGhlcmUgaXMgYSBmYWlsdXJlIGluIGluc3RhbnRpYXRpbmcKLSAgICAgKiB0aGUgZ2l2ZW4gZnJhZ21lbnQgY2xhc3MuICBUaGlzIGlzIGEgcnVudGltZSBleGNlcHRpb247IGl0IGlzIG5vdAotICAgICAqIG5vcm1hbGx5IGV4cGVjdGVkIHRvIGhhcHBlbi4KLSAgICAgKi8KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgRnJhZ21lbnQgaW5zdGFudGlhdGUoQ29udGV4dCBjb250ZXh0LCBTdHJpbmcgZm5hbWUsIEJ1bmRsZSBhcmdzKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBpZiAoc1Byb2plY3RDYWxsYmFjayAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgRnJhZ21lbnQgZiA9IChGcmFnbWVudCkgc1Byb2plY3RDYWxsYmFjay5sb2FkVmlldyhmbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDbGFzc1swXSwgbmV3IE9iamVjdFswXSk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoYXJncyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3Muc2V0Q2xhc3NMb2FkZXIoZi5nZXRDbGFzcygpLmdldENsYXNzTG9hZGVyKCkpOwotICAgICAgICAgICAgICAgICAgICBmLm1Bcmd1bWVudHMgPSBhcmdzOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gZjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0gY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZyYWdtZW50Lkluc3RhbnRpYXRpb25FeGNlcHRpb24oIlVuYWJsZSB0byBpbnN0YW50aWF0ZSBmcmFnbWVudCAiICsgZm5hbWUKLSAgICAgICAgICAgICAgICAgICAgKyAiOiBtYWtlIHN1cmUgY2xhc3MgbmFtZSBleGlzdHMsIGlzIHB1YmxpYywgYW5kIGhhcyBhbiIKLSAgICAgICAgICAgICAgICAgICAgKyAiIGVtcHR5IGNvbnN0cnVjdG9yIHRoYXQgaXMgcHVibGljIiwgZSk7Ci0gICAgICAgIH0gY2F0Y2ggKGphdmEubGFuZy5JbnN0YW50aWF0aW9uRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGcmFnbWVudC5JbnN0YW50aWF0aW9uRXhjZXB0aW9uKCJVbmFibGUgdG8gaW5zdGFudGlhdGUgZnJhZ21lbnQgIiArIGZuYW1lCi0gICAgICAgICAgICAgICAgICAgICsgIjogbWFrZSBzdXJlIGNsYXNzIG5hbWUgZXhpc3RzLCBpcyBwdWJsaWMsIGFuZCBoYXMgYW4iCi0gICAgICAgICAgICAgICAgICAgICsgIiBlbXB0eSBjb25zdHJ1Y3RvciB0aGF0IGlzIHB1YmxpYyIsIGUpOwotICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBGcmFnbWVudC5JbnN0YW50aWF0aW9uRXhjZXB0aW9uKCJVbmFibGUgdG8gaW5zdGFudGlhdGUgZnJhZ21lbnQgIiArIGZuYW1lCi0gICAgICAgICAgICAgICAgICAgICsgIjogbWFrZSBzdXJlIGNsYXNzIG5hbWUgZXhpc3RzLCBpcyBwdWJsaWMsIGFuZCBoYXMgYW4iCi0gICAgICAgICAgICAgICAgICAgICsgIiBlbXB0eSBjb25zdHJ1Y3RvciB0aGF0IGlzIHB1YmxpYyIsIGUpOwotICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEZyYWdtZW50Lkluc3RhbnRpYXRpb25FeGNlcHRpb24oIlVuYWJsZSB0byBpbnN0YW50aWF0ZSBmcmFnbWVudCAiICsgZm5hbWUKLSAgICAgICAgICAgICAgICAgICAgKyAiOiBtYWtlIHN1cmUgY2xhc3MgbmFtZSBleGlzdHMsIGlzIHB1YmxpYywgYW5kIGhhcyBhbiIKLSAgICAgICAgICAgICAgICAgICAgKyAiIGVtcHR5IGNvbnN0cnVjdG9yIHRoYXQgaXMgcHVibGljIiwgZSk7Ci0gICAgICAgIH0KLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2NvbnRlbnQvcmVzL0JyaWRnZUFzc2V0TWFuYWdlci5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9jb250ZW50L3Jlcy9CcmlkZ2VBc3NldE1hbmFnZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTk1MzkxOC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2NvbnRlbnQvcmVzL0JyaWRnZUFzc2V0TWFuYWdlci5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5jb250ZW50LnJlczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5Bc3NldE1hbmFnZXI7Ci0KLXB1YmxpYyBjbGFzcyBCcmlkZ2VBc3NldE1hbmFnZXIgZXh0ZW5kcyBBc3NldE1hbmFnZXIgewotCi0gICAgLyoqCi0gICAgICogVGhpcyBpbml0aWFsaXplcyB0aGUgc3RhdGljIGZpZWxkIHtAbGluayBBc3NldE1hbmFnZXIjbVN5c3RlbX0gd2hpY2ggaXMgdXNlZAotICAgICAqIGJ5IG1ldGhvZHMgd2hvIGdldCBhIGdsb2JhbCBhc3NldCBtYW5hZ2VyIHVzaW5nIHtAbGluayBBc3NldE1hbmFnZXIjZ2V0U3lzdGVtKCl9LgotICAgICAqIDxwLz4KLSAgICAgKiBUaGV5IHdpbGwgZW5kIHVwIHVzaW5nIG91ciBicmlkZ2UgYXNzZXQgbWFuYWdlci4KLSAgICAgKiA8cC8+Ci0gICAgICoge0BsaW5rIEJyaWRnZX0gY2FsbHMgdGhpcyBtZXRob2QgYWZ0ZXIgc2V0dGluZyB1cCBhIG5ldyBicmlkZ2UuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBBc3NldE1hbmFnZXIgaW5pdFN5c3RlbSgpIHsKLSAgICAgICAgaWYgKCEoQXNzZXRNYW5hZ2VyLnNTeXN0ZW0gaW5zdGFuY2VvZiBCcmlkZ2VBc3NldE1hbmFnZXIpKSB7Ci0gICAgICAgICAgICAvLyBOb3RlIHRoYXQgQXNzZXRNYW5hZ2VyKCkgY3JlYXRlcyBhIHN5c3RlbSBBc3NldE1hbmFnZXIgYW5kIHdlIG92ZXJyaWRlIGl0Ci0gICAgICAgICAgICAvLyB3aXRoIG91ciBCcmlkZ2VBc3NldE1hbmFnZXIuCi0gICAgICAgICAgICBBc3NldE1hbmFnZXIuc1N5c3RlbSA9IG5ldyBCcmlkZ2VBc3NldE1hbmFnZXIoKTsKLSAgICAgICAgICAgIEFzc2V0TWFuYWdlci5zU3lzdGVtLm1ha2VTdHJpbmdCbG9ja3MoZmFsc2UpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBBc3NldE1hbmFnZXIuc1N5c3RlbTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDbGVhcnMgdGhlIHN0YXRpYyB7QGxpbmsgQXNzZXRNYW5hZ2VyI3NTeXN0ZW19IHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBsZWF2ZSBvYmplY3RzCi0gICAgICogYXJvdW5kIHRoYXQgd291bGQgcHJldmVudCB1cyBmcm9tIHVubG9hZGluZyB0aGUgbGlicmFyeS4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXJTeXN0ZW0oKSB7Ci0gICAgICAgIEFzc2V0TWFuYWdlci5zU3lzdGVtID0gbnVsbDsKLSAgICB9Ci0KLSAgICBwcml2YXRlIEJyaWRnZUFzc2V0TWFuYWdlcigpIHsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2NvbnRlbnQvcmVzL0JyaWRnZVJlc291cmNlcy5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9jb250ZW50L3Jlcy9CcmlkZ2VSZXNvdXJjZXMuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc5NDQ1Mi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2NvbnRlbnQvcmVzL0JyaWRnZVJlc291cmNlcy5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNjk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuY29udGVudC5yZXM7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuSVByb2plY3RDYWxsYmFjazsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuTGF5b3V0TG9nOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXNvdXJjZVZhbHVlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlQ29uc3RhbnRzOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC5CcmlkZ2VDb250ZXh0OwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC5CcmlkZ2VYbWxCbG9ja1BhcnNlcjsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuUGFyc2VyRmFjdG9yeTsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuUmVzb3VyY2VIZWxwZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQubmluZXBhdGNoLk5pbmVQYXRjaDsKLWltcG9ydCBjb20uYW5kcm9pZC5yZXNvdXJjZXMuUmVzb3VyY2VUeXBlOwotaW1wb3J0IGNvbS5hbmRyb2lkLnV0aWwuUGFpcjsKLQotaW1wb3J0IG9yZy54bWxwdWxsLnYxLlhtbFB1bGxQYXJzZXI7Ci1pbXBvcnQgb3JnLnhtbHB1bGwudjEuWG1sUHVsbFBhcnNlckV4Y2VwdGlvbjsKLQotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuRHJhd2FibGU7Ci1pbXBvcnQgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldDsKLWltcG9ydCBhbmRyb2lkLnV0aWwuRGlzcGxheU1ldHJpY3M7Ci1pbXBvcnQgYW5kcm9pZC51dGlsLlR5cGVkVmFsdWU7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cC5MYXlvdXRQYXJhbXM7Ci0KLWltcG9ydCBqYXZhLmlvLkZpbGU7Ci1pbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKLQotLyoqCi0gKgotICovCi1wdWJsaWMgZmluYWwgY2xhc3MgQnJpZGdlUmVzb3VyY2VzIGV4dGVuZHMgUmVzb3VyY2VzIHsKLQotICAgIHByaXZhdGUgQnJpZGdlQ29udGV4dCBtQ29udGV4dDsKLSAgICBwcml2YXRlIElQcm9qZWN0Q2FsbGJhY2sgbVByb2plY3RDYWxsYmFjazsKLSAgICBwcml2YXRlIGJvb2xlYW5bXSBtUGxhdGZvcm1SZXNvdXJjZUZsYWcgPSBuZXcgYm9vbGVhblsxXTsKLQotICAgIC8qKgotICAgICAqIFNpbXBsZXIgd3JhcHBlciBhcm91bmQgRmlsZUlucHV0U3RyZWFtLiBUaGlzIGlzIHVzZWQgd2hlbiB0aGUgaW5wdXQgc3RyZWFtIHJlcHJlc2VudAotICAgICAqIG5vdCBhIG5vcm1hbCBiaXRtYXAgYnV0IGEgbmluZSBwYXRjaC4KLSAgICAgKiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHRoZSBJbnB1dFN0cmVhbSBpcyBjcmVhdGVkIGluIGEgbWV0aG9kIGJ1dCB1c2VkIGluIGFub3RoZXIgdGhhdCBuZWVkcwotICAgICAqIHRvIGtub3cgd2hldGhlciB0aGlzIGlzIDktcGF0Y2ggb3Igbm90LCBzdWNoIGFzIEJpdG1hcEZhY3RvcnkuCi0gICAgICovCi0gICAgcHVibGljIGNsYXNzIE5pbmVQYXRjaElucHV0U3RyZWFtIGV4dGVuZHMgRmlsZUlucHV0U3RyZWFtIHsKLSAgICAgICAgcHJpdmF0ZSBib29sZWFuIG1GYWtlTWFya1N1cHBvcnQgPSB0cnVlOwotICAgICAgICBwdWJsaWMgTmluZVBhdGNoSW5wdXRTdHJlYW0oRmlsZSBmaWxlKSB0aHJvd3MgRmlsZU5vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgICAgIHN1cGVyKGZpbGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBib29sZWFuIG1hcmtTdXBwb3J0ZWQoKSB7Ci0gICAgICAgICAgICBpZiAobUZha2VNYXJrU3VwcG9ydCkgewotICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgbmVlZGVkIHNvIHRoYXQgQml0bWFwRmFjdG9yeSBkb2Vzbid0IHdyYXAgdGhpcyBpbiBhIEJ1ZmZlcmVkSW5wdXRTdHJlYW0uCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBzdXBlci5tYXJrU3VwcG9ydGVkKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBwdWJsaWMgdm9pZCBkaXNhYmxlRmFrZU1hcmtTdXBwb3J0KCkgewotICAgICAgICAgICAgLy8gZGlzYWJsZSBmYWtlIG1hcmsgc3VwcG9ydCBzbyB0aGF0IGluIGNhc2UgY29kZWMgYWN0dWFsbHkgdHJ5IHRvIHVzZSB0aGVtCi0gICAgICAgICAgICAvLyB3ZSBkb24ndCBsaWUgdG8gdGhlbS4KLSAgICAgICAgICAgIG1GYWtlTWFya1N1cHBvcnQgPSBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFRoaXMgaW5pdGlhbGl6ZXMgdGhlIHN0YXRpYyBmaWVsZCB7QGxpbmsgUmVzb3VyY2VzI21TeXN0ZW19IHdoaWNoIGlzIHVzZWQKLSAgICAgKiBieSBtZXRob2RzIHdobyBnZXQgZ2xvYmFsIHJlc291cmNlcyB1c2luZyB7QGxpbmsgUmVzb3VyY2VzI2dldFN5c3RlbSgpfS4KLSAgICAgKiA8cC8+Ci0gICAgICogVGhleSB3aWxsIGVuZCB1cCB1c2luZyBvdXIgYnJpZGdlIHJlc291cmNlcy4KLSAgICAgKiA8cC8+Ci0gICAgICoge0BsaW5rIEJyaWRnZX0gY2FsbHMgdGhpcyBtZXRob2QgYWZ0ZXIgc2V0dGluZyB1cCBhIG5ldyBicmlkZ2UuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZXMgaW5pdFN5c3RlbShCcmlkZ2VDb250ZXh0IGNvbnRleHQsCi0gICAgICAgICAgICBBc3NldE1hbmFnZXIgYXNzZXRzLAotICAgICAgICAgICAgRGlzcGxheU1ldHJpY3MgbWV0cmljcywKLSAgICAgICAgICAgIENvbmZpZ3VyYXRpb24gY29uZmlnLAotICAgICAgICAgICAgSVByb2plY3RDYWxsYmFjayBwcm9qZWN0Q2FsbGJhY2spIHsKLSAgICAgICAgcmV0dXJuIFJlc291cmNlcy5tU3lzdGVtID0gbmV3IEJyaWRnZVJlc291cmNlcyhjb250ZXh0LAotICAgICAgICAgICAgICAgIGFzc2V0cywKLSAgICAgICAgICAgICAgICBtZXRyaWNzLAotICAgICAgICAgICAgICAgIGNvbmZpZywKLSAgICAgICAgICAgICAgICBwcm9qZWN0Q2FsbGJhY2spOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIERpc3Bvc2VzIHRoZSBzdGF0aWMge0BsaW5rIFJlc291cmNlcyNtU3lzdGVtfSB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgbGVhdmUgb2JqZWN0cwotICAgICAqIGFyb3VuZCB0aGF0IHdvdWxkIHByZXZlbnQgdXMgZnJvbSB1bmxvYWRpbmcgdGhlIGxpYnJhcnkuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIGRpc3Bvc2VTeXN0ZW0oKSB7Ci0gICAgICAgIGlmIChSZXNvdXJjZXMubVN5c3RlbSBpbnN0YW5jZW9mIEJyaWRnZVJlc291cmNlcykgewotICAgICAgICAgICAgKChCcmlkZ2VSZXNvdXJjZXMpKFJlc291cmNlcy5tU3lzdGVtKSkubUNvbnRleHQgPSBudWxsOwotICAgICAgICAgICAgKChCcmlkZ2VSZXNvdXJjZXMpKFJlc291cmNlcy5tU3lzdGVtKSkubVByb2plY3RDYWxsYmFjayA9IG51bGw7Ci0gICAgICAgIH0KLSAgICAgICAgUmVzb3VyY2VzLm1TeXN0ZW0gPSBudWxsOwotICAgIH0KLQotICAgIHByaXZhdGUgQnJpZGdlUmVzb3VyY2VzKEJyaWRnZUNvbnRleHQgY29udGV4dCwgQXNzZXRNYW5hZ2VyIGFzc2V0cywgRGlzcGxheU1ldHJpY3MgbWV0cmljcywKLSAgICAgICAgICAgIENvbmZpZ3VyYXRpb24gY29uZmlnLCBJUHJvamVjdENhbGxiYWNrIHByb2plY3RDYWxsYmFjaykgewotICAgICAgICBzdXBlcihhc3NldHMsIG1ldHJpY3MsIGNvbmZpZyk7Ci0gICAgICAgIG1Db250ZXh0ID0gY29udGV4dDsKLSAgICAgICAgbVByb2plY3RDYWxsYmFjayA9IHByb2plY3RDYWxsYmFjazsKLSAgICB9Ci0KLSAgICBwdWJsaWMgQnJpZGdlVHlwZWRBcnJheSBuZXdUeXBlQXJyYXkoaW50IG51bUVudHJpZXMsIGJvb2xlYW4gcGxhdGZvcm1GaWxlKSB7Ci0gICAgICAgIHJldHVybiBuZXcgQnJpZGdlVHlwZWRBcnJheSh0aGlzLCBtQ29udGV4dCwgbnVtRW50cmllcywgcGxhdGZvcm1GaWxlKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIFBhaXI8U3RyaW5nLCBSZXNvdXJjZVZhbHVlPiBnZXRSZXNvdXJjZVZhbHVlKGludCBpZCwgYm9vbGVhbltdIHBsYXRmb3JtUmVzRmxhZ19vdXQpIHsKLSAgICAgICAgLy8gZmlyc3QgZ2V0IHRoZSBTdHJpbmcgcmVsYXRlZCB0byB0aGlzIGlkIGluIHRoZSBmcmFtZXdvcmsKLSAgICAgICAgUGFpcjxSZXNvdXJjZVR5cGUsIFN0cmluZz4gcmVzb3VyY2VJbmZvID0gQnJpZGdlLnJlc29sdmVSZXNvdXJjZUlkKGlkKTsKLQotICAgICAgICBpZiAocmVzb3VyY2VJbmZvICE9IG51bGwpIHsKLSAgICAgICAgICAgIHBsYXRmb3JtUmVzRmxhZ19vdXRbMF0gPSB0cnVlOwotICAgICAgICAgICAgU3RyaW5nIGF0dHJpYnV0ZU5hbWUgPSByZXNvdXJjZUluZm8uZ2V0U2Vjb25kKCk7Ci0KLSAgICAgICAgICAgIHJldHVybiBQYWlyLm9mKGF0dHJpYnV0ZU5hbWUsIG1Db250ZXh0LmdldFJlbmRlclJlc291cmNlcygpLmdldEZyYW1ld29ya1Jlc291cmNlKAotICAgICAgICAgICAgICAgICAgICByZXNvdXJjZUluZm8uZ2V0Rmlyc3QoKSwgYXR0cmlidXRlTmFtZSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gZGlkbid0IGZpbmQgYSBtYXRjaCBpbiB0aGUgZnJhbWV3b3JrPyBsb29rIGluIHRoZSBwcm9qZWN0LgotICAgICAgICBpZiAobVByb2plY3RDYWxsYmFjayAhPSBudWxsKSB7Ci0gICAgICAgICAgICByZXNvdXJjZUluZm8gPSBtUHJvamVjdENhbGxiYWNrLnJlc29sdmVSZXNvdXJjZUlkKGlkKTsKLQotICAgICAgICAgICAgaWYgKHJlc291cmNlSW5mbyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcGxhdGZvcm1SZXNGbGFnX291dFswXSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIFN0cmluZyBhdHRyaWJ1dGVOYW1lID0gcmVzb3VyY2VJbmZvLmdldFNlY29uZCgpOwotCi0gICAgICAgICAgICAgICAgcmV0dXJuIFBhaXIub2YoYXR0cmlidXRlTmFtZSwgbUNvbnRleHQuZ2V0UmVuZGVyUmVzb3VyY2VzKCkuZ2V0UHJvamVjdFJlc291cmNlKAotICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VJbmZvLmdldEZpcnN0KCksIGF0dHJpYnV0ZU5hbWUpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBEcmF3YWJsZSBnZXREcmF3YWJsZShpbnQgaWQpIHRocm93cyBOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIFBhaXI8U3RyaW5nLCBSZXNvdXJjZVZhbHVlPiB2YWx1ZSA9IGdldFJlc291cmNlVmFsdWUoaWQsIG1QbGF0Zm9ybVJlc291cmNlRmxhZyk7Ci0KLSAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBSZXNvdXJjZUhlbHBlci5nZXREcmF3YWJsZSh2YWx1ZS5nZXRTZWNvbmQoKSwgbUNvbnRleHQpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gaWQgd2FzIG5vdCBmb3VuZCBvciBub3QgcmVzb2x2ZWQuIFRocm93IGEgTm90Rm91bmRFeGNlcHRpb24uCi0gICAgICAgIHRocm93RXhjZXB0aW9uKGlkKTsKLQotICAgICAgICAvLyB0aGlzIGlzIG5vdCB1c2VkIHNpbmNlIHRoZSBtZXRob2QgYWJvdmUgYWx3YXlzIHRocm93cwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldENvbG9yKGludCBpZCkgdGhyb3dzIE5vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgUGFpcjxTdHJpbmcsIFJlc291cmNlVmFsdWU+IHZhbHVlID0gZ2V0UmVzb3VyY2VWYWx1ZShpZCwgbVBsYXRmb3JtUmVzb3VyY2VGbGFnKTsKLQotICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VIZWxwZXIuZ2V0Q29sb3IodmFsdWUuZ2V0U2Vjb25kKCkuZ2V0VmFsdWUoKSk7Ci0gICAgICAgICAgICB9IGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5lcnJvcihMYXlvdXRMb2cuVEFHX1JFU09VUkNFU19GT1JNQVQsIGUuZ2V0TWVzc2FnZSgpLCBlLAotICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBpZCB3YXMgbm90IGZvdW5kIG9yIG5vdCByZXNvbHZlZC4gVGhyb3cgYSBOb3RGb3VuZEV4Y2VwdGlvbi4KLSAgICAgICAgdGhyb3dFeGNlcHRpb24oaWQpOwotCi0gICAgICAgIC8vIHRoaXMgaXMgbm90IHVzZWQgc2luY2UgdGhlIG1ldGhvZCBhYm92ZSBhbHdheXMgdGhyb3dzCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBDb2xvclN0YXRlTGlzdCBnZXRDb2xvclN0YXRlTGlzdChpbnQgaWQpIHRocm93cyBOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIFBhaXI8U3RyaW5nLCBSZXNvdXJjZVZhbHVlPiByZXNWYWx1ZSA9IGdldFJlc291cmNlVmFsdWUoaWQsIG1QbGF0Zm9ybVJlc291cmNlRmxhZyk7Ci0KLSAgICAgICAgaWYgKHJlc1ZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgIENvbG9yU3RhdGVMaXN0IHN0YXRlTGlzdCA9IFJlc291cmNlSGVscGVyLmdldENvbG9yU3RhdGVMaXN0KHJlc1ZhbHVlLmdldFNlY29uZCgpLAotICAgICAgICAgICAgICAgICAgICBtQ29udGV4dCk7Ci0gICAgICAgICAgICBpZiAoc3RhdGVMaXN0ICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGVMaXN0OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gaWQgd2FzIG5vdCBmb3VuZCBvciBub3QgcmVzb2x2ZWQuIFRocm93IGEgTm90Rm91bmRFeGNlcHRpb24uCi0gICAgICAgIHRocm93RXhjZXB0aW9uKGlkKTsKLQotICAgICAgICAvLyB0aGlzIGlzIG5vdCB1c2VkIHNpbmNlIHRoZSBtZXRob2QgYWJvdmUgYWx3YXlzIHRocm93cwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQ2hhclNlcXVlbmNlIGdldFRleHQoaW50IGlkKSB0aHJvd3MgTm90Rm91bmRFeGNlcHRpb24gewotICAgICAgICBQYWlyPFN0cmluZywgUmVzb3VyY2VWYWx1ZT4gdmFsdWUgPSBnZXRSZXNvdXJjZVZhbHVlKGlkLCBtUGxhdGZvcm1SZXNvdXJjZUZsYWcpOwotCi0gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBSZXNvdXJjZVZhbHVlIHJlc1ZhbHVlID0gdmFsdWUuZ2V0U2Vjb25kKCk7Ci0KLSAgICAgICAgICAgIGFzc2VydCByZXNWYWx1ZSAhPSBudWxsOwotICAgICAgICAgICAgaWYgKHJlc1ZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBTdHJpbmcgdiA9IHJlc1ZhbHVlLmdldFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHYgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBpZCB3YXMgbm90IGZvdW5kIG9yIG5vdCByZXNvbHZlZC4gVGhyb3cgYSBOb3RGb3VuZEV4Y2VwdGlvbi4KLSAgICAgICAgdGhyb3dFeGNlcHRpb24oaWQpOwotCi0gICAgICAgIC8vIHRoaXMgaXMgbm90IHVzZWQgc2luY2UgdGhlIG1ldGhvZCBhYm92ZSBhbHdheXMgdGhyb3dzCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBYbWxSZXNvdXJjZVBhcnNlciBnZXRMYXlvdXQoaW50IGlkKSB0aHJvd3MgTm90Rm91bmRFeGNlcHRpb24gewotICAgICAgICBQYWlyPFN0cmluZywgUmVzb3VyY2VWYWx1ZT4gdiA9IGdldFJlc291cmNlVmFsdWUoaWQsIG1QbGF0Zm9ybVJlc291cmNlRmxhZyk7Ci0KLSAgICAgICAgaWYgKHYgIT0gbnVsbCkgewotICAgICAgICAgICAgUmVzb3VyY2VWYWx1ZSB2YWx1ZSA9IHYuZ2V0U2Vjb25kKCk7Ci0gICAgICAgICAgICBYbWxQdWxsUGFyc2VyIHBhcnNlciA9IG51bGw7Ci0KLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGN1cnJlbnQgcGFyc2VyIGNhbiBwcm92aWRlIHVzIHdpdGggYSBjdXN0b20gcGFyc2VyLgotICAgICAgICAgICAgICAgIGlmIChtUGxhdGZvcm1SZXNvdXJjZUZsYWdbMF0gPT0gZmFsc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFyc2VyID0gbVByb2plY3RDYWxsYmFjay5nZXRQYXJzZXIodmFsdWUpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIG5ldyBvbmUgbWFudWFsbHkgaWYgbmVlZGVkLgotICAgICAgICAgICAgICAgIGlmIChwYXJzZXIgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBGaWxlIHhtbCA9IG5ldyBGaWxlKHZhbHVlLmdldFZhbHVlKCkpOwotICAgICAgICAgICAgICAgICAgICBpZiAoeG1sLmlzRmlsZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGNyZWF0ZSBhIHB1bGwgcGFyc2VyIGFyb3VuZCB0aGUgbGF5b3V0IFhNTCBmaWxlLCBhbmQgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2l2ZSB0aGF0IHRvIG91ciBYbWxCbG9ja1BhcnNlcgotICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyID0gUGFyc2VyRmFjdG9yeS5jcmVhdGUoeG1sKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChwYXJzZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEJyaWRnZVhtbEJsb2NrUGFyc2VyKHBhcnNlciwgbUNvbnRleHQsIG1QbGF0Zm9ybVJlc291cmNlRmxhZ1swXSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBjYXRjaCAoWG1sUHVsbFBhcnNlckV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfQlJPS0VOLAotICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBjb25maWd1cmUgcGFyc2VyIGZvciAiICsgdmFsdWUuZ2V0VmFsdWUoKSwgZSwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgICAgICAgICAgLy8gd2UnbGwgcmV0dXJuIG51bGwgYmVsb3cuCi0gICAgICAgICAgICB9IGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkbid0IGhhcHBlbiBzaW5jZSB3ZSBjaGVjayBhYm92ZS4KLSAgICAgICAgICAgIH0KLQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gaWQgd2FzIG5vdCBmb3VuZCBvciBub3QgcmVzb2x2ZWQuIFRocm93IGEgTm90Rm91bmRFeGNlcHRpb24uCi0gICAgICAgIHRocm93RXhjZXB0aW9uKGlkKTsKLQotICAgICAgICAvLyB0aGlzIGlzIG5vdCB1c2VkIHNpbmNlIHRoZSBtZXRob2QgYWJvdmUgYWx3YXlzIHRocm93cwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgWG1sUmVzb3VyY2VQYXJzZXIgZ2V0QW5pbWF0aW9uKGludCBpZCkgdGhyb3dzIE5vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgUGFpcjxTdHJpbmcsIFJlc291cmNlVmFsdWU+IHYgPSBnZXRSZXNvdXJjZVZhbHVlKGlkLCBtUGxhdGZvcm1SZXNvdXJjZUZsYWcpOwotCi0gICAgICAgIGlmICh2ICE9IG51bGwpIHsKLSAgICAgICAgICAgIFJlc291cmNlVmFsdWUgdmFsdWUgPSB2LmdldFNlY29uZCgpOwotICAgICAgICAgICAgWG1sUHVsbFBhcnNlciBwYXJzZXIgPSBudWxsOwotCi0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIEZpbGUgeG1sID0gbmV3IEZpbGUodmFsdWUuZ2V0VmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKHhtbC5pc0ZpbGUoKSkgewotICAgICAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGNyZWF0ZSBhIHB1bGwgcGFyc2VyIGFyb3VuZCB0aGUgbGF5b3V0IFhNTCBmaWxlLCBhbmQgdGhlbgotICAgICAgICAgICAgICAgICAgICAvLyBnaXZlIHRoYXQgdG8gb3VyIFhtbEJsb2NrUGFyc2VyCi0gICAgICAgICAgICAgICAgICAgIHBhcnNlciA9IFBhcnNlckZhY3RvcnkuY3JlYXRlKHhtbCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCcmlkZ2VYbWxCbG9ja1BhcnNlcihwYXJzZXIsIG1Db250ZXh0LCBtUGxhdGZvcm1SZXNvdXJjZUZsYWdbMF0pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gY2F0Y2ggKFhtbFB1bGxQYXJzZXJFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5lcnJvcihMYXlvdXRMb2cuVEFHX0JST0tFTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gY29uZmlndXJlIHBhcnNlciBmb3IgIiArIHZhbHVlLmdldFZhbHVlKCksIGUsIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgICAgIC8vIHdlJ2xsIHJldHVybiBudWxsIGJlbG93LgotICAgICAgICAgICAgfSBjYXRjaCAoRmlsZU5vdEZvdW5kRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2Ugd2UgY2hlY2sgYWJvdmUuCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIGlkIHdhcyBub3QgZm91bmQgb3Igbm90IHJlc29sdmVkLiBUaHJvdyBhIE5vdEZvdW5kRXhjZXB0aW9uLgotICAgICAgICB0aHJvd0V4Y2VwdGlvbihpZCk7Ci0KLSAgICAgICAgLy8gdGhpcyBpcyBub3QgdXNlZCBzaW5jZSB0aGUgbWV0aG9kIGFib3ZlIGFsd2F5cyB0aHJvd3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFR5cGVkQXJyYXkgb2J0YWluQXR0cmlidXRlcyhBdHRyaWJ1dGVTZXQgc2V0LCBpbnRbXSBhdHRycykgewotICAgICAgICByZXR1cm4gbUNvbnRleHQub2J0YWluU3R5bGVkQXR0cmlidXRlcyhzZXQsIGF0dHJzKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgVHlwZWRBcnJheSBvYnRhaW5UeXBlZEFycmF5KGludCBpZCkgdGhyb3dzIE5vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7Ci0gICAgfQotCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgZmxvYXQgZ2V0RGltZW5zaW9uKGludCBpZCkgdGhyb3dzIE5vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgUGFpcjxTdHJpbmcsIFJlc291cmNlVmFsdWU+IHZhbHVlID0gZ2V0UmVzb3VyY2VWYWx1ZShpZCwgbVBsYXRmb3JtUmVzb3VyY2VGbGFnKTsKLQotICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgUmVzb3VyY2VWYWx1ZSByZXNWYWx1ZSA9IHZhbHVlLmdldFNlY29uZCgpOwotCi0gICAgICAgICAgICBhc3NlcnQgcmVzVmFsdWUgIT0gbnVsbDsKLSAgICAgICAgICAgIGlmIChyZXNWYWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHYgPSByZXNWYWx1ZS5nZXRWYWx1ZSgpOwotICAgICAgICAgICAgICAgIGlmICh2ICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHYuZXF1YWxzKEJyaWRnZUNvbnN0YW50cy5NQVRDSF9QQVJFTlQpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5lcXVhbHMoQnJpZGdlQ29uc3RhbnRzLkZJTExfUEFSRU5UKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExheW91dFBhcmFtcy5NQVRDSF9QQVJFTlQ7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodi5lcXVhbHMoQnJpZGdlQ29uc3RhbnRzLldSQVBfQ09OVEVOVCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBMYXlvdXRQYXJhbXMuV1JBUF9DT05URU5UOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKFJlc291cmNlSGVscGVyLnBhcnNlRmxvYXRBdHRyaWJ1dGUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUuZ2V0Rmlyc3QoKSwgdiwgbVRtcFZhbHVlLCB0cnVlIC8qcmVxdWlyZVVuaXQqLykgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVG1wVmFsdWUudHlwZSA9PSBUeXBlZFZhbHVlLlRZUEVfRElNRU5TSU9OKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbVRtcFZhbHVlLmdldERpbWVuc2lvbihnZXREaXNwbGF5TWV0cmljcygpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIGlkIHdhcyBub3QgZm91bmQgb3Igbm90IHJlc29sdmVkLiBUaHJvdyBhIE5vdEZvdW5kRXhjZXB0aW9uLgotICAgICAgICB0aHJvd0V4Y2VwdGlvbihpZCk7Ci0KLSAgICAgICAgLy8gdGhpcyBpcyBub3QgdXNlZCBzaW5jZSB0aGUgbWV0aG9kIGFib3ZlIGFsd2F5cyB0aHJvd3MKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXREaW1lbnNpb25QaXhlbE9mZnNldChpbnQgaWQpIHRocm93cyBOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIFBhaXI8U3RyaW5nLCBSZXNvdXJjZVZhbHVlPiB2YWx1ZSA9IGdldFJlc291cmNlVmFsdWUoaWQsIG1QbGF0Zm9ybVJlc291cmNlRmxhZyk7Ci0KLSAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgIFJlc291cmNlVmFsdWUgcmVzVmFsdWUgPSB2YWx1ZS5nZXRTZWNvbmQoKTsKLQotICAgICAgICAgICAgYXNzZXJ0IHJlc1ZhbHVlICE9IG51bGw7Ci0gICAgICAgICAgICBpZiAocmVzVmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIFN0cmluZyB2ID0gcmVzVmFsdWUuZ2V0VmFsdWUoKTsKLSAgICAgICAgICAgICAgICBpZiAodiAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChSZXNvdXJjZUhlbHBlci5wYXJzZUZsb2F0QXR0cmlidXRlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmdldEZpcnN0KCksIHYsIG1UbXBWYWx1ZSwgdHJ1ZSAvKnJlcXVpcmVVbml0Ki8pICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbVRtcFZhbHVlLnR5cGUgPT0gVHlwZWRWYWx1ZS5UWVBFX0RJTUVOU0lPTikgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFR5cGVkVmFsdWUuY29tcGxleFRvRGltZW5zaW9uUGl4ZWxPZmZzZXQobVRtcFZhbHVlLmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldERpc3BsYXlNZXRyaWNzKCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gaWQgd2FzIG5vdCBmb3VuZCBvciBub3QgcmVzb2x2ZWQuIFRocm93IGEgTm90Rm91bmRFeGNlcHRpb24uCi0gICAgICAgIHRocm93RXhjZXB0aW9uKGlkKTsKLQotICAgICAgICAvLyB0aGlzIGlzIG5vdCB1c2VkIHNpbmNlIHRoZSBtZXRob2QgYWJvdmUgYWx3YXlzIHRocm93cwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldERpbWVuc2lvblBpeGVsU2l6ZShpbnQgaWQpIHRocm93cyBOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIFBhaXI8U3RyaW5nLCBSZXNvdXJjZVZhbHVlPiB2YWx1ZSA9IGdldFJlc291cmNlVmFsdWUoaWQsIG1QbGF0Zm9ybVJlc291cmNlRmxhZyk7Ci0KLSAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgIFJlc291cmNlVmFsdWUgcmVzVmFsdWUgPSB2YWx1ZS5nZXRTZWNvbmQoKTsKLQotICAgICAgICAgICAgYXNzZXJ0IHJlc1ZhbHVlICE9IG51bGw7Ci0gICAgICAgICAgICBpZiAocmVzVmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIFN0cmluZyB2ID0gcmVzVmFsdWUuZ2V0VmFsdWUoKTsKLSAgICAgICAgICAgICAgICBpZiAodiAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChSZXNvdXJjZUhlbHBlci5wYXJzZUZsb2F0QXR0cmlidXRlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmdldEZpcnN0KCksIHYsIG1UbXBWYWx1ZSwgdHJ1ZSAvKnJlcXVpcmVVbml0Ki8pICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbVRtcFZhbHVlLnR5cGUgPT0gVHlwZWRWYWx1ZS5UWVBFX0RJTUVOU0lPTikgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFR5cGVkVmFsdWUuY29tcGxleFRvRGltZW5zaW9uUGl4ZWxTaXplKG1UbXBWYWx1ZS5kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXREaXNwbGF5TWV0cmljcygpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIGlkIHdhcyBub3QgZm91bmQgb3Igbm90IHJlc29sdmVkLiBUaHJvdyBhIE5vdEZvdW5kRXhjZXB0aW9uLgotICAgICAgICB0aHJvd0V4Y2VwdGlvbihpZCk7Ci0KLSAgICAgICAgLy8gdGhpcyBpcyBub3QgdXNlZCBzaW5jZSB0aGUgbWV0aG9kIGFib3ZlIGFsd2F5cyB0aHJvd3MKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRJbnRlZ2VyKGludCBpZCkgdGhyb3dzIE5vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgUGFpcjxTdHJpbmcsIFJlc291cmNlVmFsdWU+IHZhbHVlID0gZ2V0UmVzb3VyY2VWYWx1ZShpZCwgbVBsYXRmb3JtUmVzb3VyY2VGbGFnKTsKLQotICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgUmVzb3VyY2VWYWx1ZSByZXNWYWx1ZSA9IHZhbHVlLmdldFNlY29uZCgpOwotCi0gICAgICAgICAgICBhc3NlcnQgcmVzVmFsdWUgIT0gbnVsbDsKLSAgICAgICAgICAgIGlmIChyZXNWYWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHYgPSByZXNWYWx1ZS5nZXRWYWx1ZSgpOwotICAgICAgICAgICAgICAgIGlmICh2ICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IHJhZGl4ID0gMTA7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh2LnN0YXJ0c1dpdGgoIjB4IikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnN1YnN0cmluZygyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJhZGl4ID0gMTY7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnRlZ2VyLnBhcnNlSW50KHYsIHJhZGl4KTsKLSAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBleGNlcHRpb24gYmVsb3cKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIGlkIHdhcyBub3QgZm91bmQgb3Igbm90IHJlc29sdmVkLiBUaHJvdyBhIE5vdEZvdW5kRXhjZXB0aW9uLgotICAgICAgICB0aHJvd0V4Y2VwdGlvbihpZCk7Ci0KLSAgICAgICAgLy8gdGhpcyBpcyBub3QgdXNlZCBzaW5jZSB0aGUgbWV0aG9kIGFib3ZlIGFsd2F5cyB0aHJvd3MKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gZ2V0Qm9vbGVhbihpbnQgaWQpIHRocm93cyBOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIFBhaXI8U3RyaW5nLCBSZXNvdXJjZVZhbHVlPiB2YWx1ZSA9IGdldFJlc291cmNlVmFsdWUoaWQsIG1QbGF0Zm9ybVJlc291cmNlRmxhZyk7Ci0KLSAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgIFJlc291cmNlVmFsdWUgcmVzVmFsdWUgPSB2YWx1ZS5nZXRTZWNvbmQoKTsKLQotICAgICAgICAgICAgYXNzZXJ0IHJlc1ZhbHVlICE9IG51bGw7Ci0gICAgICAgICAgICBpZiAocmVzVmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIFN0cmluZyB2ID0gcmVzVmFsdWUuZ2V0VmFsdWUoKTsKLSAgICAgICAgICAgICAgICBpZiAodiAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuLnBhcnNlQm9vbGVhbih2KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBpZCB3YXMgbm90IGZvdW5kIG9yIG5vdCByZXNvbHZlZC4gVGhyb3cgYSBOb3RGb3VuZEV4Y2VwdGlvbi4KLSAgICAgICAgdGhyb3dFeGNlcHRpb24oaWQpOwotCi0gICAgICAgIC8vIHRoaXMgaXMgbm90IHVzZWQgc2luY2UgdGhlIG1ldGhvZCBhYm92ZSBhbHdheXMgdGhyb3dzCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFJlc291cmNlRW50cnlOYW1lKGludCByZXNpZCkgdGhyb3dzIE5vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRSZXNvdXJjZU5hbWUoaW50IHJlc2lkKSB0aHJvd3MgTm90Rm91bmRFeGNlcHRpb24gewotICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFJlc291cmNlVHlwZU5hbWUoaW50IHJlc2lkKSB0aHJvd3MgTm90Rm91bmRFeGNlcHRpb24gewotICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFN0cmluZyhpbnQgaWQsIE9iamVjdC4uLiBmb3JtYXRBcmdzKSB0aHJvd3MgTm90Rm91bmRFeGNlcHRpb24gewotICAgICAgICBTdHJpbmcgcyA9IGdldFN0cmluZyhpZCk7Ci0gICAgICAgIGlmIChzICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZm9ybWF0KHMsIGZvcm1hdEFyZ3MpOwotCi0gICAgICAgIH0KLQotICAgICAgICAvLyBpZCB3YXMgbm90IGZvdW5kIG9yIG5vdCByZXNvbHZlZC4gVGhyb3cgYSBOb3RGb3VuZEV4Y2VwdGlvbi4KLSAgICAgICAgdGhyb3dFeGNlcHRpb24oaWQpOwotCi0gICAgICAgIC8vIHRoaXMgaXMgbm90IHVzZWQgc2luY2UgdGhlIG1ldGhvZCBhYm92ZSBhbHdheXMgdGhyb3dzCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKGludCBpZCkgdGhyb3dzIE5vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgUGFpcjxTdHJpbmcsIFJlc291cmNlVmFsdWU+IHZhbHVlID0gZ2V0UmVzb3VyY2VWYWx1ZShpZCwgbVBsYXRmb3JtUmVzb3VyY2VGbGFnKTsKLQotICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZS5nZXRTZWNvbmQoKS5nZXRWYWx1ZSgpICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZS5nZXRTZWNvbmQoKS5nZXRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gaWQgd2FzIG5vdCBmb3VuZCBvciBub3QgcmVzb2x2ZWQuIFRocm93IGEgTm90Rm91bmRFeGNlcHRpb24uCi0gICAgICAgIHRocm93RXhjZXB0aW9uKGlkKTsKLQotICAgICAgICAvLyB0aGlzIGlzIG5vdCB1c2VkIHNpbmNlIHRoZSBtZXRob2QgYWJvdmUgYWx3YXlzIHRocm93cwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBnZXRWYWx1ZShpbnQgaWQsIFR5cGVkVmFsdWUgb3V0VmFsdWUsIGJvb2xlYW4gcmVzb2x2ZVJlZnMpCi0gICAgICAgICAgICB0aHJvd3MgTm90Rm91bmRFeGNlcHRpb24gewotICAgICAgICBQYWlyPFN0cmluZywgUmVzb3VyY2VWYWx1ZT4gdmFsdWUgPSBnZXRSZXNvdXJjZVZhbHVlKGlkLCBtUGxhdGZvcm1SZXNvdXJjZUZsYWcpOwotCi0gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBTdHJpbmcgdiA9IHZhbHVlLmdldFNlY29uZCgpLmdldFZhbHVlKCk7Ci0KLSAgICAgICAgICAgIGlmICh2ICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBpZiAoUmVzb3VyY2VIZWxwZXIucGFyc2VGbG9hdEF0dHJpYnV0ZSh2YWx1ZS5nZXRGaXJzdCgpLCB2LCBvdXRWYWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qcmVxdWlyZVVuaXQqLykpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIC8vIGVsc2UgaXQncyBhIHN0cmluZwotICAgICAgICAgICAgICAgIG91dFZhbHVlLnR5cGUgPSBUeXBlZFZhbHVlLlRZUEVfU1RSSU5HOwotICAgICAgICAgICAgICAgIG91dFZhbHVlLnN0cmluZyA9IHY7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gaWQgd2FzIG5vdCBmb3VuZCBvciBub3QgcmVzb2x2ZWQuIFRocm93IGEgTm90Rm91bmRFeGNlcHRpb24uCi0gICAgICAgIHRocm93RXhjZXB0aW9uKGlkKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBnZXRWYWx1ZShTdHJpbmcgbmFtZSwgVHlwZWRWYWx1ZSBvdXRWYWx1ZSwgYm9vbGVhbiByZXNvbHZlUmVmcykKLSAgICAgICAgICAgIHRocm93cyBOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBYbWxSZXNvdXJjZVBhcnNlciBnZXRYbWwoaW50IGlkKSB0aHJvd3MgTm90Rm91bmRFeGNlcHRpb24gewotICAgICAgICBQYWlyPFN0cmluZywgUmVzb3VyY2VWYWx1ZT4gdmFsdWUgPSBnZXRSZXNvdXJjZVZhbHVlKGlkLCBtUGxhdGZvcm1SZXNvdXJjZUZsYWcpOwotCi0gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBTdHJpbmcgdiA9IHZhbHVlLmdldFNlY29uZCgpLmdldFZhbHVlKCk7Ci0KLSAgICAgICAgICAgIGlmICh2ICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAvLyBjaGVjayB0aGlzIGlzIGEgZmlsZQotICAgICAgICAgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKHYpOwotICAgICAgICAgICAgICAgIGlmIChmLmlzRmlsZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBYbWxQdWxsUGFyc2VyIHBhcnNlciA9IFBhcnNlckZhY3RvcnkuY3JlYXRlKGYpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEJyaWRnZVhtbEJsb2NrUGFyc2VyKHBhcnNlciwgbUNvbnRleHQsIG1QbGF0Zm9ybVJlc291cmNlRmxhZ1swXSk7Ci0gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFhtbFB1bGxQYXJzZXJFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgTm90Rm91bmRFeGNlcHRpb24gbmV3RSA9IG5ldyBOb3RGb3VuZEV4Y2VwdGlvbigpOwotICAgICAgICAgICAgICAgICAgICAgICAgbmV3RS5pbml0Q2F1c2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXdFOwotICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgTm90Rm91bmRFeGNlcHRpb24gbmV3RSA9IG5ldyBOb3RGb3VuZEV4Y2VwdGlvbigpOwotICAgICAgICAgICAgICAgICAgICAgICAgbmV3RS5pbml0Q2F1c2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXdFOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gaWQgd2FzIG5vdCBmb3VuZCBvciBub3QgcmVzb2x2ZWQuIFRocm93IGEgTm90Rm91bmRFeGNlcHRpb24uCi0gICAgICAgIHRocm93RXhjZXB0aW9uKGlkKTsKLQotICAgICAgICAvLyB0aGlzIGlzIG5vdCB1c2VkIHNpbmNlIHRoZSBtZXRob2QgYWJvdmUgYWx3YXlzIHRocm93cwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgWG1sUmVzb3VyY2VQYXJzZXIgbG9hZFhtbFJlc291cmNlUGFyc2VyKFN0cmluZyBmaWxlLCBpbnQgaWQsCi0gICAgICAgICAgICBpbnQgYXNzZXRDb29raWUsIFN0cmluZyB0eXBlKSB0aHJvd3MgTm90Rm91bmRFeGNlcHRpb24gewotICAgICAgICAvLyBldmVuIHRob3VnaCB3ZSBrbm93IHRoZSBYTUwgZmlsZSB0byBsb2FkIGRpcmVjdGx5LCB3ZSBzdGlsbCBuZWVkIHRvIHJlc29sdmUgdGhlCi0gICAgICAgIC8vIGlkIHNvIHRoYXQgd2UgY2FuIGtub3cgaWYgaXQncyBhIHBsYXRmb3JtIG9yIHByb2plY3QgcmVzb3VyY2UuCi0gICAgICAgIC8vIChtUGxhdGZvcm1SZXNvdWNlRmxhZyB3aWxsIGdldCB0aGUgcmVzdWx0IGFuZCB3aWxsIGJlIHVzZWQgbGF0ZXIpLgotICAgICAgICBnZXRSZXNvdXJjZVZhbHVlKGlkLCBtUGxhdGZvcm1SZXNvdXJjZUZsYWcpOwotCi0gICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKGZpbGUpOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgWG1sUHVsbFBhcnNlciBwYXJzZXIgPSBQYXJzZXJGYWN0b3J5LmNyZWF0ZShmKTsKLQotICAgICAgICAgICAgcmV0dXJuIG5ldyBCcmlkZ2VYbWxCbG9ja1BhcnNlcihwYXJzZXIsIG1Db250ZXh0LCBtUGxhdGZvcm1SZXNvdXJjZUZsYWdbMF0pOwotICAgICAgICB9IGNhdGNoIChYbWxQdWxsUGFyc2VyRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIE5vdEZvdW5kRXhjZXB0aW9uIG5ld0UgPSBuZXcgTm90Rm91bmRFeGNlcHRpb24oKTsKLSAgICAgICAgICAgIG5ld0UuaW5pdENhdXNlKGUpOwotICAgICAgICAgICAgdGhyb3cgbmV3RTsKLSAgICAgICAgfSBjYXRjaCAoRmlsZU5vdEZvdW5kRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIE5vdEZvdW5kRXhjZXB0aW9uIG5ld0UgPSBuZXcgTm90Rm91bmRFeGNlcHRpb24oKTsKLSAgICAgICAgICAgIG5ld0UuaW5pdENhdXNlKGUpOwotICAgICAgICAgICAgdGhyb3cgbmV3RTsKLSAgICAgICAgfQotICAgIH0KLQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIElucHV0U3RyZWFtIG9wZW5SYXdSZXNvdXJjZShpbnQgaWQpIHRocm93cyBOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIFBhaXI8U3RyaW5nLCBSZXNvdXJjZVZhbHVlPiB2YWx1ZSA9IGdldFJlc291cmNlVmFsdWUoaWQsIG1QbGF0Zm9ybVJlc291cmNlRmxhZyk7Ci0KLSAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgIFN0cmluZyBwYXRoID0gdmFsdWUuZ2V0U2Vjb25kKCkuZ2V0VmFsdWUoKTsKLQotICAgICAgICAgICAgaWYgKHBhdGggIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIC8vIGNoZWNrIHRoaXMgaXMgYSBmaWxlCi0gICAgICAgICAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUocGF0aCk7Ci0gICAgICAgICAgICAgICAgaWYgKGYuaXNGaWxlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIGl0J3MgYSBuaW5lLXBhdGNoIHJldHVybiBhIGN1c3RvbSBpbnB1dCBzdHJlYW0gc28gdGhhdAotICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3RoZXIgbWV0aG9kcyAobWFpbmx5IGJpdG1hcCBmYWN0b3J5KSBjYW4gZGV0ZWN0IGl0J3MgYSA5LXBhdGNoCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgYWN0dWFsbHkgbG9hZCBpdCBhcyBhIDktcGF0Y2ggaW5zdGVhZCBvZiBhIG5vcm1hbCBiaXRtYXAKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXRoLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoTmluZVBhdGNoLkVYVEVOU0lPTl85UEFUQ0gpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOaW5lUGF0Y2hJbnB1dFN0cmVhbShmKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZUlucHV0U3RyZWFtKGYpOwotICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgTm90Rm91bmRFeGNlcHRpb24gbmV3RSA9IG5ldyBOb3RGb3VuZEV4Y2VwdGlvbigpOwotICAgICAgICAgICAgICAgICAgICAgICAgbmV3RS5pbml0Q2F1c2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXdFOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gaWQgd2FzIG5vdCBmb3VuZCBvciBub3QgcmVzb2x2ZWQuIFRocm93IGEgTm90Rm91bmRFeGNlcHRpb24uCi0gICAgICAgIHRocm93RXhjZXB0aW9uKGlkKTsKLQotICAgICAgICAvLyB0aGlzIGlzIG5vdCB1c2VkIHNpbmNlIHRoZSBtZXRob2QgYWJvdmUgYWx3YXlzIHRocm93cwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgSW5wdXRTdHJlYW0gb3BlblJhd1Jlc291cmNlKGludCBpZCwgVHlwZWRWYWx1ZSB2YWx1ZSkgdGhyb3dzIE5vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgZ2V0VmFsdWUoaWQsIHZhbHVlLCB0cnVlKTsKLQotICAgICAgICBTdHJpbmcgcGF0aCA9IHZhbHVlLnN0cmluZy50b1N0cmluZygpOwotCi0gICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKHBhdGgpOwotICAgICAgICBpZiAoZi5pc0ZpbGUoKSkgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAvLyBpZiBpdCdzIGEgbmluZS1wYXRjaCByZXR1cm4gYSBjdXN0b20gaW5wdXQgc3RyZWFtIHNvIHRoYXQKLSAgICAgICAgICAgICAgICAvLyBvdGhlciBtZXRob2RzIChtYWlubHkgYml0bWFwIGZhY3RvcnkpIGNhbiBkZXRlY3QgaXQncyBhIDktcGF0Y2gKLSAgICAgICAgICAgICAgICAvLyBhbmQgYWN0dWFsbHkgbG9hZCBpdCBhcyBhIDktcGF0Y2ggaW5zdGVhZCBvZiBhIG5vcm1hbCBiaXRtYXAKLSAgICAgICAgICAgICAgICBpZiAocGF0aC50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKE5pbmVQYXRjaC5FWFRFTlNJT05fOVBBVENIKSkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE5pbmVQYXRjaElucHV0U3RyZWFtKGYpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEZpbGVJbnB1dFN0cmVhbShmKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgTm90Rm91bmRFeGNlcHRpb24gZXhjZXB0aW9uID0gbmV3IE5vdEZvdW5kRXhjZXB0aW9uKCk7Ci0gICAgICAgICAgICAgICAgZXhjZXB0aW9uLmluaXRDYXVzZShlKTsKLSAgICAgICAgICAgICAgICB0aHJvdyBleGNlcHRpb247Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFeGNlcHRpb24oKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQXNzZXRGaWxlRGVzY3JpcHRvciBvcGVuUmF3UmVzb3VyY2VGZChpbnQgaWQpIHRocm93cyBOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEJ1aWxkcyBhbmQgdGhyb3dzIGEge0BsaW5rIFJlc291cmNlcy5Ob3RGb3VuZEV4Y2VwdGlvbn0gYmFzZWQgb24gYSByZXNvdXJjZSBpZCBhbmQgYSByZXNvdXJjZSB0eXBlLgotICAgICAqIEBwYXJhbSBpZCB0aGUgaWQgb2YgdGhlIHJlc291cmNlCi0gICAgICogQHRocm93cyBOb3RGb3VuZEV4Y2VwdGlvbgotICAgICAqLwotICAgIHByaXZhdGUgdm9pZCB0aHJvd0V4Y2VwdGlvbihpbnQgaWQpIHRocm93cyBOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIGZpcnN0IGdldCB0aGUgU3RyaW5nIHJlbGF0ZWQgdG8gdGhpcyBpZCBpbiB0aGUgZnJhbWV3b3JrCi0gICAgICAgIFBhaXI8UmVzb3VyY2VUeXBlLCBTdHJpbmc+IHJlc291cmNlSW5mbyA9IEJyaWRnZS5yZXNvbHZlUmVzb3VyY2VJZChpZCk7Ci0KLSAgICAgICAgLy8gaWYgdGhlIG5hbWUgaXMgdW5rbm93biBpbiB0aGUgZnJhbWV3b3JrLCBnZXQgaXQgZnJvbSB0aGUgY3VzdG9tIHZpZXcgbG9hZGVyLgotICAgICAgICBpZiAocmVzb3VyY2VJbmZvID09IG51bGwgJiYgbVByb2plY3RDYWxsYmFjayAhPSBudWxsKSB7Ci0gICAgICAgICAgICByZXNvdXJjZUluZm8gPSBtUHJvamVjdENhbGxiYWNrLnJlc29sdmVSZXNvdXJjZUlkKGlkKTsKLSAgICAgICAgfQotCi0gICAgICAgIFN0cmluZyBtZXNzYWdlID0gbnVsbDsKLSAgICAgICAgaWYgKHJlc291cmNlSW5mbyAhPSBudWxsKSB7Ci0gICAgICAgICAgICBtZXNzYWdlID0gU3RyaW5nLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBmaW5kICUxJHMgcmVzb3VyY2UgbWF0Y2hpbmcgdmFsdWUgMHglMiRYIChyZXNvbHZlZCBuYW1lOiAlMyRzKSBpbiBjdXJyZW50IGNvbmZpZ3VyYXRpb24uIiwKLSAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VJbmZvLmdldEZpcnN0KCksIGlkLCByZXNvdXJjZUluZm8uZ2V0U2Vjb25kKCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbWVzc2FnZSA9IFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICJDb3VsZCBub3QgcmVzb2x2ZSByZXNvdXJjZSB2YWx1ZTogMHglMSRYLiIsIGlkKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEV4Y2VwdGlvbihtZXNzYWdlKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2NvbnRlbnQvcmVzL0JyaWRnZVR5cGVkQXJyYXkuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvY29udGVudC9yZXMvQnJpZGdlVHlwZWRBcnJheS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NDZkMTM5Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvY29udGVudC9yZXMvQnJpZGdlVHlwZWRBcnJheS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsOTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuY29udGVudC5yZXM7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuQXR0clJlc291cmNlVmFsdWU7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkxheW91dExvZzsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVuZGVyUmVzb3VyY2VzOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXNvdXJjZVZhbHVlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5TdHlsZVJlc291cmNlVmFsdWU7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwudXRpbC5YbWxVdGlsczsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLkJyaWRnZTsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLkJyaWRnZUNvbnN0YW50czsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmFuZHJvaWQuQnJpZGdlQ29udGV4dDsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmFuZHJvaWQuQnJpZGdlWG1sQmxvY2tQYXJzZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLlBhcnNlckZhY3Rvcnk7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLlJlc291cmNlSGVscGVyOwotaW1wb3J0IGNvbS5hbmRyb2lkLnJlc291cmNlcy5SZXNvdXJjZVR5cGU7Ci0KLWltcG9ydCBvcmcueG1scHVsbC52MS5YbWxQdWxsUGFyc2VyOwotaW1wb3J0IG9yZy54bWxwdWxsLnYxLlhtbFB1bGxQYXJzZXJFeGNlcHRpb247Ci0KLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLmRyYXdhYmxlLkRyYXdhYmxlOwotaW1wb3J0IGFuZHJvaWQudXRpbC5EaXNwbGF5TWV0cmljczsKLWltcG9ydCBhbmRyb2lkLnV0aWwuVHlwZWRWYWx1ZTsKLWltcG9ydCBhbmRyb2lkLnZpZXcuTGF5b3V0SW5mbGF0ZXJfRGVsZWdhdGU7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cC5MYXlvdXRQYXJhbXM7Ci0KLWltcG9ydCBqYXZhLmlvLkZpbGU7Ci1pbXBvcnQgamF2YS51dGlsLkFycmF5czsKLWltcG9ydCBqYXZhLnV0aWwuTWFwOwotCi0vKioKLSAqIEN1c3RvbSBpbXBsZW1lbnRhdGlvbiBvZiBUeXBlZEFycmF5IHRvIGhhbmRsZSBub24gY29tcGlsZWQgcmVzb3VyY2VzLgotICovCi1wdWJsaWMgZmluYWwgY2xhc3MgQnJpZGdlVHlwZWRBcnJheSBleHRlbmRzIFR5cGVkQXJyYXkgewotCi0gICAgcHJpdmF0ZSBmaW5hbCBCcmlkZ2VSZXNvdXJjZXMgbUJyaWRnZVJlc291cmNlczsKLSAgICBwcml2YXRlIGZpbmFsIEJyaWRnZUNvbnRleHQgbUNvbnRleHQ7Ci0gICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIG1QbGF0Zm9ybUZpbGU7Ci0KLSAgICBwcml2YXRlIFJlc291cmNlVmFsdWVbXSBtUmVzb3VyY2VEYXRhOwotICAgIHByaXZhdGUgU3RyaW5nW10gbU5hbWVzOwotICAgIHByaXZhdGUgYm9vbGVhbltdIG1Jc0ZyYW1ld29yazsKLQotICAgIHB1YmxpYyBCcmlkZ2VUeXBlZEFycmF5KEJyaWRnZVJlc291cmNlcyByZXNvdXJjZXMsIEJyaWRnZUNvbnRleHQgY29udGV4dCwgaW50IGxlbiwKLSAgICAgICAgICAgIGJvb2xlYW4gcGxhdGZvcm1GaWxlKSB7Ci0gICAgICAgIHN1cGVyKG51bGwsIG51bGwsIG51bGwsIDApOwotICAgICAgICBtQnJpZGdlUmVzb3VyY2VzID0gcmVzb3VyY2VzOwotICAgICAgICBtQ29udGV4dCA9IGNvbnRleHQ7Ci0gICAgICAgIG1QbGF0Zm9ybUZpbGUgPSBwbGF0Zm9ybUZpbGU7Ci0gICAgICAgIG1SZXNvdXJjZURhdGEgPSBuZXcgUmVzb3VyY2VWYWx1ZVtsZW5dOwotICAgICAgICBtTmFtZXMgPSBuZXcgU3RyaW5nW2xlbl07Ci0gICAgICAgIG1Jc0ZyYW1ld29yayA9IG5ldyBib29sZWFuW2xlbl07Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQSBicmlkZ2Utc3BlY2lmaWMgbWV0aG9kIHRoYXQgc2V0cyBhIHZhbHVlIGluIHRoZSB0eXBlIGFycmF5Ci0gICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCBvZiB0aGUgdmFsdWUgaW4gdGhlIFR5cGVkQXJyYXkKLSAgICAgKiBAcGFyYW0gbmFtZSB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlCi0gICAgICogQHBhcmFtIGlzRnJhbWV3b3JrIHdoZXRoZXIgdGhlIGF0dHJpYnV0ZSBpcyBpbiB0aGUgYW5kcm9pZCBuYW1lc3BhY2UuCi0gICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgYnJpZGdlU2V0VmFsdWUoaW50IGluZGV4LCBTdHJpbmcgbmFtZSwgYm9vbGVhbiBpc0ZyYW1ld29yaywgUmVzb3VyY2VWYWx1ZSB2YWx1ZSkgewotICAgICAgICBtUmVzb3VyY2VEYXRhW2luZGV4XSA9IHZhbHVlOwotICAgICAgICBtTmFtZXNbaW5kZXhdID0gbmFtZTsKLSAgICAgICAgbUlzRnJhbWV3b3JrW2luZGV4XSA9IGlzRnJhbWV3b3JrOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFNlYWxzIHRoZSBhcnJheSBhZnRlciBhbGwgY2FsbHMgdG8ge0BsaW5rICNicmlkZ2VTZXRWYWx1ZShpbnQsIFN0cmluZywgUmVzb3VyY2VWYWx1ZSl9IGhhdmUKLSAgICAgKiBiZWVuIGRvbmUuCi0gICAgICogPHAvPlRoaXMgYWxsb3dzIHRvIGNvbXB1dGUgdGhlIGxpc3Qgb2Ygbm9uIGRlZmF1bHQgdmFsdWVzLCBwZXJtaXR0aW5nCi0gICAgICoge0BsaW5rICNnZXRJbmRleENvdW50KCl9IHRvIHJldHVybiB0aGUgcHJvcGVyIHZhbHVlLgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHNlYWxBcnJheSgpIHsKLSAgICAgICAgLy8gZmlsbHMgVHlwZWRBcnJheS5tSW5kaWNlcyB3aGljaCBpcyB1c2VkIHRvIGltcGxlbWVudCBnZXRJbmRleENvdW50L2dldEluZGV4QXQKLSAgICAgICAgLy8gZmlyc3QgY291bnQgdGhlIGFycmF5IHNpemUKLSAgICAgICAgaW50IGNvdW50ID0gMDsKLSAgICAgICAgZm9yIChSZXNvdXJjZVZhbHVlIGRhdGEgOiBtUmVzb3VyY2VEYXRhKSB7Ci0gICAgICAgICAgICBpZiAoZGF0YSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgY291bnQrKzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIGFsbG9jYXRlIHRoZSB0YWJsZSB3aXRoIGFuIGV4dHJhIHRvIHN0b3JlIHRoZSBzaXplCi0gICAgICAgIG1JbmRpY2VzID0gbmV3IGludFtjb3VudCsxXTsKLSAgICAgICAgbUluZGljZXNbMF0gPSBjb3VudDsKLQotICAgICAgICAvLyBmaWxsIHRoZSBhcnJheSB3aXRoIHRoZSBpbmRpY2VzLgotICAgICAgICBpbnQgaW5kZXggPSAxOwotICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgPCBtUmVzb3VyY2VEYXRhLmxlbmd0aCA7IGkrKykgewotICAgICAgICAgICAgaWYgKG1SZXNvdXJjZURhdGFbaV0gIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIG1JbmRpY2VzW2luZGV4KytdID0gaTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIHZhbHVlcyBpbiB0aGlzIGFycmF5LgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgbGVuZ3RoKCkgewotICAgICAgICByZXR1cm4gbVJlc291cmNlRGF0YS5sZW5ndGg7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJuIHRoZSBSZXNvdXJjZXMgb2JqZWN0IHRoaXMgYXJyYXkgd2FzIGxvYWRlZCBmcm9tLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBSZXNvdXJjZXMgZ2V0UmVzb3VyY2VzKCkgewotICAgICAgICByZXR1cm4gbUJyaWRnZVJlc291cmNlczsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXRyaWV2ZSB0aGUgc3R5bGVkIHN0cmluZyB2YWx1ZSBmb3IgdGhlIGF0dHJpYnV0ZSBhdCA8dmFyPmluZGV4PC92YXI+LgotICAgICAqCi0gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIGF0dHJpYnV0ZSB0byByZXRyaWV2ZS4KLSAgICAgKgotICAgICAqIEByZXR1cm4gQ2hhclNlcXVlbmNlIGhvbGRpbmcgc3RyaW5nIGRhdGEuICBNYXkgYmUgc3R5bGVkLiAgUmV0dXJucwotICAgICAqICAgICAgICAgbnVsbCBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBkZWZpbmVkLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBDaGFyU2VxdWVuY2UgZ2V0VGV4dChpbnQgaW5kZXgpIHsKLSAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBtUmVzb3VyY2VEYXRhLmxlbmd0aCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobVJlc291cmNlRGF0YVtpbmRleF0gIT0gbnVsbCkgewotICAgICAgICAgICAgLy8gRklYTUU6IGhhbmRsZSBzdHlsZWQgc3RyaW5ncyEKLSAgICAgICAgICAgIHJldHVybiBtUmVzb3VyY2VEYXRhW2luZGV4XS5nZXRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0cmlldmUgdGhlIHN0cmluZyB2YWx1ZSBmb3IgdGhlIGF0dHJpYnV0ZSBhdCA8dmFyPmluZGV4PC92YXI+LgotICAgICAqCi0gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIGF0dHJpYnV0ZSB0byByZXRyaWV2ZS4KLSAgICAgKgotICAgICAqIEByZXR1cm4gU3RyaW5nIGhvbGRpbmcgc3RyaW5nIGRhdGEuICBBbnkgc3R5bGluZyBpbmZvcm1hdGlvbiBpcwotICAgICAqIHJlbW92ZWQuICBSZXR1cm5zIG51bGwgaWYgdGhlIGF0dHJpYnV0ZSBpcyBub3QgZGVmaW5lZC4KLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFN0cmluZyhpbnQgaW5kZXgpIHsKLSAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBtUmVzb3VyY2VEYXRhLmxlbmd0aCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobVJlc291cmNlRGF0YVtpbmRleF0gIT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG1SZXNvdXJjZURhdGFbaW5kZXhdLmdldFZhbHVlKCk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXRyaWV2ZSB0aGUgYm9vbGVhbiB2YWx1ZSBmb3IgdGhlIGF0dHJpYnV0ZSBhdCA8dmFyPmluZGV4PC92YXI+LgotICAgICAqCi0gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIGF0dHJpYnV0ZSB0byByZXRyaWV2ZS4KLSAgICAgKiBAcGFyYW0gZGVmVmFsdWUgVmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBhdHRyaWJ1dGUgaXMgbm90IGRlZmluZWQuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIEF0dHJpYnV0ZSBib29sZWFuIHZhbHVlLCBvciBkZWZWYWx1ZSBpZiBub3QgZGVmaW5lZC4KLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBnZXRCb29sZWFuKGludCBpbmRleCwgYm9vbGVhbiBkZWZWYWx1ZSkgewotICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IG1SZXNvdXJjZURhdGEubGVuZ3RoKSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobVJlc291cmNlRGF0YVtpbmRleF0gPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGRlZlZhbHVlOwotICAgICAgICB9Ci0KLSAgICAgICAgU3RyaW5nIHMgPSBtUmVzb3VyY2VEYXRhW2luZGV4XS5nZXRWYWx1ZSgpOwotICAgICAgICBpZiAocyAhPSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gWG1sVXRpbHMuY29udmVydFZhbHVlVG9Cb29sZWFuKHMsIGRlZlZhbHVlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBkZWZWYWx1ZTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXRyaWV2ZSB0aGUgaW50ZWdlciB2YWx1ZSBmb3IgdGhlIGF0dHJpYnV0ZSBhdCA8dmFyPmluZGV4PC92YXI+LgotICAgICAqCi0gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIGF0dHJpYnV0ZSB0byByZXRyaWV2ZS4KLSAgICAgKiBAcGFyYW0gZGVmVmFsdWUgVmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBhdHRyaWJ1dGUgaXMgbm90IGRlZmluZWQuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIEF0dHJpYnV0ZSBpbnQgdmFsdWUsIG9yIGRlZlZhbHVlIGlmIG5vdCBkZWZpbmVkLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0SW50KGludCBpbmRleCwgaW50IGRlZlZhbHVlKSB7Ci0gICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gbVJlc291cmNlRGF0YS5sZW5ndGgpIHsKLSAgICAgICAgICAgIHJldHVybiBkZWZWYWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtUmVzb3VyY2VEYXRhW2luZGV4XSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgcyA9IG1SZXNvdXJjZURhdGFbaW5kZXhdLmdldFZhbHVlKCk7Ci0KLSAgICAgICAgaWYgKFJlbmRlclJlc291cmNlcy5SRUZFUkVOQ0VfTlVMTC5lcXVhbHMocykpIHsKLSAgICAgICAgICAgIHJldHVybiBkZWZWYWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChzID09IG51bGwgfHwgcy5sZW5ndGgoKSA9PSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICB0cnkgewotICAgICAgICAgICAgcmV0dXJuIFhtbFV0aWxzLmNvbnZlcnRWYWx1ZVRvSW50KHMsIGRlZlZhbHVlKTsKLSAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIC8vIHBhc3MKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEZpZWxkIGlzIG5vdCBudWxsIGFuZCBpcyBub3QgYW4gaW50ZWdlci4KLSAgICAgICAgLy8gQ2hlY2sgZm9yIHBvc3NpYmxlIGNvbnN0YW50cyBhbmQgdHJ5IHRvIGZpbmQgdGhlbS4KLSAgICAgICAgLy8gR2V0IHRoZSBtYXAgb2YgYXR0cmlidXRlLWNvbnN0YW50IC0+IEludGVnZXJWYWx1ZQotICAgICAgICBNYXA8U3RyaW5nLCBJbnRlZ2VyPiBtYXAgPSBudWxsOwotICAgICAgICBpZiAobUlzRnJhbWV3b3JrW2luZGV4XSkgewotICAgICAgICAgICAgbWFwID0gQnJpZGdlLmdldEVudW1WYWx1ZXMobU5hbWVzW2luZGV4XSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBnZXQgdGhlIHN0eWxlYWJsZSBtYXRjaGluZyB0aGUgcmVzb2x2ZWQgbmFtZQotICAgICAgICAgICAgUmVuZGVyUmVzb3VyY2VzIHJlcyA9IG1Db250ZXh0LmdldFJlbmRlclJlc291cmNlcygpOwotICAgICAgICAgICAgUmVzb3VyY2VWYWx1ZSBhdHRyID0gcmVzLmdldFByb2plY3RSZXNvdXJjZShSZXNvdXJjZVR5cGUuQVRUUiwgbU5hbWVzW2luZGV4XSk7Ci0gICAgICAgICAgICBpZiAoYXR0ciBpbnN0YW5jZW9mIEF0dHJSZXNvdXJjZVZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgbWFwID0gKChBdHRyUmVzb3VyY2VWYWx1ZSkgYXR0cikuZ2V0QXR0cmlidXRlVmFsdWVzKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobWFwICE9IG51bGwpIHsKLSAgICAgICAgICAgIC8vIGFjY3VtdWxhdG9yIHRvIHN0b3JlIHRoZSB2YWx1ZSBvZiB0aGUgMSsgY29uc3RhbnRzLgotICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7Ci0KLSAgICAgICAgICAgIC8vIHNwbGl0IHRoZSB2YWx1ZSBpbiBjYXNlIHRoaXMgaXMgYSBtaXggb2Ygc2V2ZXJhbCBmbGFncy4KLSAgICAgICAgICAgIFN0cmluZ1tdIGtleXdvcmRzID0gcy5zcGxpdCgiXFx8Iik7Ci0gICAgICAgICAgICBmb3IgKFN0cmluZyBrZXl3b3JkIDoga2V5d29yZHMpIHsKLSAgICAgICAgICAgICAgICBJbnRlZ2VyIGkgPSBtYXAuZ2V0KGtleXdvcmQudHJpbSgpKTsKLSAgICAgICAgICAgICAgICBpZiAoaSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSBpLmludFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLndhcm5pbmcoTGF5b3V0TG9nLlRBR19SRVNPVVJDRVNfRk9STUFULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiVzXCIgaW4gYXR0cmlidXRlIFwiJTIkc1wiIGlzIG5vdCBhIHZhbGlkIHZhbHVlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZCwgbU5hbWVzW2luZGV4XSksIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0cmlldmUgdGhlIGZsb2F0IHZhbHVlIGZvciB0aGUgYXR0cmlidXRlIGF0IDx2YXI+aW5kZXg8L3Zhcj4uCi0gICAgICoKLSAgICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgYXR0cmlidXRlIHRvIHJldHJpZXZlLgotICAgICAqCi0gICAgICogQHJldHVybiBBdHRyaWJ1dGUgZmxvYXQgdmFsdWUsIG9yIGRlZlZhbHVlIGlmIG5vdCBkZWZpbmVkLi4KLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgZmxvYXQgZ2V0RmxvYXQoaW50IGluZGV4LCBmbG9hdCBkZWZWYWx1ZSkgewotICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IG1SZXNvdXJjZURhdGEubGVuZ3RoKSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobVJlc291cmNlRGF0YVtpbmRleF0gPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGRlZlZhbHVlOwotICAgICAgICB9Ci0KLSAgICAgICAgU3RyaW5nIHMgPSBtUmVzb3VyY2VEYXRhW2luZGV4XS5nZXRWYWx1ZSgpOwotCi0gICAgICAgIGlmIChzICE9IG51bGwpIHsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZsb2F0LnBhcnNlRmxvYXQocyk7Ci0gICAgICAgICAgICB9IGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS53YXJuaW5nKExheW91dExvZy5UQUdfUkVTT1VSQ0VTX0ZPUk1BVCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiJXNcIiBpbiBhdHRyaWJ1dGUgXCIlMiRzXCIgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBmbG9hdC4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMsIG1OYW1lc1tpbmRleF0pLCBudWxsIC8qZGF0YSovKTsKLQotICAgICAgICAgICAgICAgIC8vIHdlJ2xsIHJldHVybiB0aGUgZGVmYXVsdCB2YWx1ZSBiZWxvdy4KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0cmlldmUgdGhlIGNvbG9yIHZhbHVlIGZvciB0aGUgYXR0cmlidXRlIGF0IDx2YXI+aW5kZXg8L3Zhcj4uICBJZgotICAgICAqIHRoZSBhdHRyaWJ1dGUgcmVmZXJlbmNlcyBhIGNvbG9yIHJlc291cmNlIGhvbGRpbmcgYSBjb21wbGV4Ci0gICAgICoge0BsaW5rIGFuZHJvaWQuY29udGVudC5yZXMuQ29sb3JTdGF0ZUxpc3R9LCB0aGVuIHRoZSBkZWZhdWx0IGNvbG9yIGZyb20KLSAgICAgKiB0aGUgc2V0IGlzIHJldHVybmVkLgotICAgICAqCi0gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIGF0dHJpYnV0ZSB0byByZXRyaWV2ZS4KLSAgICAgKiBAcGFyYW0gZGVmVmFsdWUgVmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBhdHRyaWJ1dGUgaXMgbm90IGRlZmluZWQgb3IKLSAgICAgKiAgICAgICAgICAgICAgICAgbm90IGEgcmVzb3VyY2UuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIEF0dHJpYnV0ZSBjb2xvciB2YWx1ZSwgb3IgZGVmVmFsdWUgaWYgbm90IGRlZmluZWQuCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRDb2xvcihpbnQgaW5kZXgsIGludCBkZWZWYWx1ZSkgewotICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IG1SZXNvdXJjZURhdGEubGVuZ3RoKSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobVJlc291cmNlRGF0YVtpbmRleF0gPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGRlZlZhbHVlOwotICAgICAgICB9Ci0KLSAgICAgICAgQ29sb3JTdGF0ZUxpc3QgY29sb3JTdGF0ZUxpc3QgPSBSZXNvdXJjZUhlbHBlci5nZXRDb2xvclN0YXRlTGlzdCgKLSAgICAgICAgICAgICAgICBtUmVzb3VyY2VEYXRhW2luZGV4XSwgbUNvbnRleHQpOwotICAgICAgICBpZiAoY29sb3JTdGF0ZUxpc3QgIT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGNvbG9yU3RhdGVMaXN0LmdldERlZmF1bHRDb2xvcigpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlZlZhbHVlOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHJpZXZlIHRoZSBDb2xvclN0YXRlTGlzdCBmb3IgdGhlIGF0dHJpYnV0ZSBhdCA8dmFyPmluZGV4PC92YXI+LgotICAgICAqIFRoZSB2YWx1ZSBtYXkgYmUgZWl0aGVyIGEgc2luZ2xlIHNvbGlkIGNvbG9yIG9yIGEgcmVmZXJlbmNlIHRvCi0gICAgICogYSBjb2xvciBvciBjb21wbGV4IHtAbGluayBhbmRyb2lkLmNvbnRlbnQucmVzLkNvbG9yU3RhdGVMaXN0fSBkZXNjcmlwdGlvbi4KLSAgICAgKgotICAgICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiBhdHRyaWJ1dGUgdG8gcmV0cmlldmUuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIENvbG9yU3RhdGVMaXN0IGZvciB0aGUgYXR0cmlidXRlLCBvciBudWxsIGlmIG5vdCBkZWZpbmVkLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBDb2xvclN0YXRlTGlzdCBnZXRDb2xvclN0YXRlTGlzdChpbnQgaW5kZXgpIHsKLSAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBtUmVzb3VyY2VEYXRhLmxlbmd0aCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobVJlc291cmNlRGF0YVtpbmRleF0gPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBSZXNvdXJjZVZhbHVlIHJlc1ZhbHVlID0gbVJlc291cmNlRGF0YVtpbmRleF07Ci0gICAgICAgIFN0cmluZyB2YWx1ZSA9IHJlc1ZhbHVlLmdldFZhbHVlKCk7Ci0KLSAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKFJlbmRlclJlc291cmNlcy5SRUZFUkVOQ0VfTlVMTC5lcXVhbHModmFsdWUpKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGxldCB0aGUgZnJhbWV3b3JrIGluZmxhdGUgdGhlIENvbG9yU3RhdGVMaXN0IGZyb20gdGhlIFhNTCBmaWxlLgotICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZSh2YWx1ZSk7Ci0gICAgICAgIGlmIChmLmlzRmlsZSgpKSB7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIFhtbFB1bGxQYXJzZXIgcGFyc2VyID0gUGFyc2VyRmFjdG9yeS5jcmVhdGUoZik7Ci0KLSAgICAgICAgICAgICAgICBCcmlkZ2VYbWxCbG9ja1BhcnNlciBibG9ja1BhcnNlciA9IG5ldyBCcmlkZ2VYbWxCbG9ja1BhcnNlcigKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlciwgbUNvbnRleHQsIHJlc1ZhbHVlLmlzRnJhbWV3b3JrKCkpOwotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBDb2xvclN0YXRlTGlzdC5jcmVhdGVGcm9tWG1sKG1Db250ZXh0LmdldFJlc291cmNlcygpLCBibG9ja1BhcnNlcik7Ci0gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKLSAgICAgICAgICAgICAgICAgICAgYmxvY2tQYXJzZXIuZW5zdXJlUG9wcGVkKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBjYXRjaCAoWG1sUHVsbFBhcnNlckV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfQlJPS0VOLAotICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBjb25maWd1cmUgcGFyc2VyIGZvciAiICsgdmFsdWUsIGUsIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGFuIGVycm9yIGFuZCBub3Qgd2FybmluZyBzaW5jZSB0aGUgZmlsZSBleGlzdGVuY2UgaXMgY2hlY2tlZCBiZWZvcmUKLSAgICAgICAgICAgICAgICAvLyBhdHRlbXB0aW5nIHRvIHBhcnNlIGl0LgotICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5lcnJvcihMYXlvdXRMb2cuVEFHX1JFU09VUkNFU19SRUFELAotICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBwYXJzZSBmaWxlICIgKyB2YWx1ZSwgZSwgbnVsbCAvKmRhdGEqLyk7Ci0KLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBpbnQgY29sb3IgPSBSZXNvdXJjZUhlbHBlci5nZXRDb2xvcih2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gQ29sb3JTdGF0ZUxpc3QudmFsdWVPZihjb2xvcik7Ci0gICAgICAgIH0gY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZXJyb3IoTGF5b3V0TG9nLlRBR19SRVNPVVJDRVNfRk9STUFULCBlLmdldE1lc3NhZ2UoKSwgZSwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXRyaWV2ZSB0aGUgaW50ZWdlciB2YWx1ZSBmb3IgdGhlIGF0dHJpYnV0ZSBhdCA8dmFyPmluZGV4PC92YXI+LgotICAgICAqCi0gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIGF0dHJpYnV0ZSB0byByZXRyaWV2ZS4KLSAgICAgKiBAcGFyYW0gZGVmVmFsdWUgVmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBhdHRyaWJ1dGUgaXMgbm90IGRlZmluZWQgb3IKLSAgICAgKiAgICAgICAgICAgICAgICAgbm90IGEgcmVzb3VyY2UuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIEF0dHJpYnV0ZSBpbnRlZ2VyIHZhbHVlLCBvciBkZWZWYWx1ZSBpZiBub3QgZGVmaW5lZC4KLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldEludGVnZXIoaW50IGluZGV4LCBpbnQgZGVmVmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGdldEludChpbmRleCwgZGVmVmFsdWUpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHJpZXZlIGEgZGltZW5zaW9uYWwgdW5pdCBhdHRyaWJ1dGUgYXQgPHZhcj5pbmRleDwvdmFyPi4gIFVuaXQKLSAgICAgKiBjb252ZXJzaW9ucyBhcmUgYmFzZWQgb24gdGhlIGN1cnJlbnQge0BsaW5rIERpc3BsYXlNZXRyaWNzfQotICAgICAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVzb3VyY2VzIHRoaXMge0BsaW5rIFR5cGVkQXJyYXl9IG9iamVjdAotICAgICAqIGNhbWUgZnJvbS4KLSAgICAgKgotICAgICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiBhdHRyaWJ1dGUgdG8gcmV0cmlldmUuCi0gICAgICogQHBhcmFtIGRlZlZhbHVlIFZhbHVlIHRvIHJldHVybiBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBkZWZpbmVkIG9yCi0gICAgICogICAgICAgICAgICAgICAgIG5vdCBhIHJlc291cmNlLgotICAgICAqCi0gICAgICogQHJldHVybiBBdHRyaWJ1dGUgZGltZW5zaW9uIHZhbHVlIG11bHRpcGxpZWQgYnkgdGhlIGFwcHJvcHJpYXRlCi0gICAgICogbWV0cmljLCBvciBkZWZWYWx1ZSBpZiBub3QgZGVmaW5lZC4KLSAgICAgKgotICAgICAqIEBzZWUgI2dldERpbWVuc2lvblBpeGVsT2Zmc2V0Ci0gICAgICogQHNlZSAjZ2V0RGltZW5zaW9uUGl4ZWxTaXplCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGZsb2F0IGdldERpbWVuc2lvbihpbnQgaW5kZXgsIGZsb2F0IGRlZlZhbHVlKSB7Ci0gICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gbVJlc291cmNlRGF0YS5sZW5ndGgpIHsKLSAgICAgICAgICAgIHJldHVybiBkZWZWYWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtUmVzb3VyY2VEYXRhW2luZGV4XSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgcyA9IG1SZXNvdXJjZURhdGFbaW5kZXhdLmdldFZhbHVlKCk7Ci0KLSAgICAgICAgaWYgKHMgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGRlZlZhbHVlOwotICAgICAgICB9IGVsc2UgaWYgKHMuZXF1YWxzKEJyaWRnZUNvbnN0YW50cy5NQVRDSF9QQVJFTlQpIHx8Ci0gICAgICAgICAgICAgICAgcy5lcXVhbHMoQnJpZGdlQ29uc3RhbnRzLkZJTExfUEFSRU5UKSkgewotICAgICAgICAgICAgcmV0dXJuIExheW91dFBhcmFtcy5NQVRDSF9QQVJFTlQ7Ci0gICAgICAgIH0gZWxzZSBpZiAocy5lcXVhbHMoQnJpZGdlQ29uc3RhbnRzLldSQVBfQ09OVEVOVCkpIHsKLSAgICAgICAgICAgIHJldHVybiBMYXlvdXRQYXJhbXMuV1JBUF9DT05URU5UOwotICAgICAgICB9IGVsc2UgaWYgKFJlbmRlclJlc291cmNlcy5SRUZFUkVOQ0VfTlVMTC5lcXVhbHMocykpIHsKLSAgICAgICAgICAgIHJldHVybiBkZWZWYWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChSZXNvdXJjZUhlbHBlci5wYXJzZUZsb2F0QXR0cmlidXRlKG1OYW1lc1tpbmRleF0sIHMsIG1WYWx1ZSwgdHJ1ZSAvKnJlcXVpcmVVbml0Ki8pKSB7Ci0gICAgICAgICAgICByZXR1cm4gbVZhbHVlLmdldERpbWVuc2lvbihtQnJpZGdlUmVzb3VyY2VzLmdldERpc3BsYXlNZXRyaWNzKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gbG9va3MgbGlrZSB3ZSB3ZXJlIHVuYWJsZSB0byByZXNvbHZlIHRoZSBkaW1lbnNpb24gdmFsdWUKLSAgICAgICAgQnJpZGdlLmdldExvZygpLndhcm5pbmcoTGF5b3V0TG9nLlRBR19SRVNPVVJDRVNfRk9STUFULAotICAgICAgICAgICAgICAgIFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICJcIiUxJHNcIiBpbiBhdHRyaWJ1dGUgXCIlMiRzXCIgaXMgbm90IGEgdmFsaWQgZm9ybWF0LiIsCi0gICAgICAgICAgICAgICAgICAgIHMsIG1OYW1lc1tpbmRleF0pLCBudWxsIC8qZGF0YSovKTsKLQotICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0cmlldmUgYSBkaW1lbnNpb25hbCB1bml0IGF0dHJpYnV0ZSBhdCA8dmFyPmluZGV4PC92YXI+IGZvciB1c2UKLSAgICAgKiBhcyBhbiBvZmZzZXQgaW4gcmF3IHBpeGVscy4gIFRoaXMgaXMgdGhlIHNhbWUgYXMKLSAgICAgKiB7QGxpbmsgI2dldERpbWVuc2lvbn0sIGV4Y2VwdCB0aGUgcmV0dXJuZWQgdmFsdWUgaXMgY29udmVydGVkIHRvCi0gICAgICogaW50ZWdlciBwaXhlbHMgZm9yIHlvdS4gIEFuIG9mZnNldCBjb252ZXJzaW9uIGludm9sdmVzIHNpbXBseQotICAgICAqIHRydW5jYXRpbmcgdGhlIGJhc2UgdmFsdWUgdG8gYW4gaW50ZWdlci4KLSAgICAgKgotICAgICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiBhdHRyaWJ1dGUgdG8gcmV0cmlldmUuCi0gICAgICogQHBhcmFtIGRlZlZhbHVlIFZhbHVlIHRvIHJldHVybiBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBkZWZpbmVkIG9yCi0gICAgICogICAgICAgICAgICAgICAgIG5vdCBhIHJlc291cmNlLgotICAgICAqCi0gICAgICogQHJldHVybiBBdHRyaWJ1dGUgZGltZW5zaW9uIHZhbHVlIG11bHRpcGxpZWQgYnkgdGhlIGFwcHJvcHJpYXRlCi0gICAgICogbWV0cmljIGFuZCB0cnVuY2F0ZWQgdG8gaW50ZWdlciBwaXhlbHMsIG9yIGRlZlZhbHVlIGlmIG5vdCBkZWZpbmVkLgotICAgICAqCi0gICAgICogQHNlZSAjZ2V0RGltZW5zaW9uCi0gICAgICogQHNlZSAjZ2V0RGltZW5zaW9uUGl4ZWxTaXplCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXREaW1lbnNpb25QaXhlbE9mZnNldChpbnQgaW5kZXgsIGludCBkZWZWYWx1ZSkgewotICAgICAgICByZXR1cm4gKGludCkgZ2V0RGltZW5zaW9uKGluZGV4LCBkZWZWYWx1ZSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0cmlldmUgYSBkaW1lbnNpb25hbCB1bml0IGF0dHJpYnV0ZSBhdCA8dmFyPmluZGV4PC92YXI+IGZvciB1c2UKLSAgICAgKiBhcyBhIHNpemUgaW4gcmF3IHBpeGVscy4gIFRoaXMgaXMgdGhlIHNhbWUgYXMKLSAgICAgKiB7QGxpbmsgI2dldERpbWVuc2lvbn0sIGV4Y2VwdCB0aGUgcmV0dXJuZWQgdmFsdWUgaXMgY29udmVydGVkIHRvCi0gICAgICogaW50ZWdlciBwaXhlbHMgZm9yIHVzZSBhcyBhIHNpemUuICBBIHNpemUgY29udmVyc2lvbiBpbnZvbHZlcwotICAgICAqIHJvdW5kaW5nIHRoZSBiYXNlIHZhbHVlLCBhbmQgZW5zdXJpbmcgdGhhdCBhIG5vbi16ZXJvIGJhc2UgdmFsdWUKLSAgICAgKiBpcyBhdCBsZWFzdCBvbmUgcGl4ZWwgaW4gc2l6ZS4KLSAgICAgKgotICAgICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiBhdHRyaWJ1dGUgdG8gcmV0cmlldmUuCi0gICAgICogQHBhcmFtIGRlZlZhbHVlIFZhbHVlIHRvIHJldHVybiBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBkZWZpbmVkIG9yCi0gICAgICogICAgICAgICAgICAgICAgIG5vdCBhIHJlc291cmNlLgotICAgICAqCi0gICAgICogQHJldHVybiBBdHRyaWJ1dGUgZGltZW5zaW9uIHZhbHVlIG11bHRpcGxpZWQgYnkgdGhlIGFwcHJvcHJpYXRlCi0gICAgICogbWV0cmljIGFuZCB0cnVuY2F0ZWQgdG8gaW50ZWdlciBwaXhlbHMsIG9yIGRlZlZhbHVlIGlmIG5vdCBkZWZpbmVkLgotICAgICAqCi0gICAgICogQHNlZSAjZ2V0RGltZW5zaW9uCi0gICAgICogQHNlZSAjZ2V0RGltZW5zaW9uUGl4ZWxPZmZzZXQKLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldERpbWVuc2lvblBpeGVsU2l6ZShpbnQgaW5kZXgsIGludCBkZWZWYWx1ZSkgewotICAgICAgICB0cnkgewotICAgICAgICAgICAgcmV0dXJuIGdldERpbWVuc2lvbihpbmRleCk7Ci0gICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgaWYgKG1SZXNvdXJjZURhdGFbaW5kZXhdICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IG1SZXNvdXJjZURhdGFbaW5kZXhdLmdldFZhbHVlKCk7Ci0KLSAgICAgICAgICAgICAgICBpZiAocyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIGxvb2tzIGxpa2Ugd2Ugd2VyZSB1bmFibGUgdG8gcmVzb2x2ZSB0aGUgZGltZW5zaW9uIHZhbHVlCi0gICAgICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS53YXJuaW5nKExheW91dExvZy5UQUdfUkVTT1VSQ0VTX0ZPUk1BVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIlMSRzXCIgaW4gYXR0cmlidXRlIFwiJTIkc1wiIGlzIG5vdCBhIHZhbGlkIGZvcm1hdC4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLCBtTmFtZXNbaW5kZXhdKSwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBTcGVjaWFsIHZlcnNpb24gb2Yge0BsaW5rICNnZXREaW1lbnNpb25QaXhlbFNpemV9IGZvciByZXRyaWV2aW5nCi0gICAgICoge0BsaW5rIGFuZHJvaWQudmlldy5WaWV3R3JvdXB9J3MgbGF5b3V0X3dpZHRoIGFuZCBsYXlvdXRfaGVpZ2h0Ci0gICAgICogYXR0cmlidXRlcy4gIFRoaXMgaXMgb25seSBoZXJlIGZvciBwZXJmb3JtYW5jZSByZWFzb25zOyBhcHBsaWNhdGlvbnMKLSAgICAgKiBzaG91bGQgdXNlIHtAbGluayAjZ2V0RGltZW5zaW9uUGl4ZWxTaXplfS4KLSAgICAgKgotICAgICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiB0aGUgYXR0cmlidXRlIHRvIHJldHJpZXZlLgotICAgICAqIEBwYXJhbSBuYW1lIFRleHR1YWwgbmFtZSBvZiBhdHRyaWJ1dGUgZm9yIGVycm9yIHJlcG9ydGluZy4KLSAgICAgKgotICAgICAqIEByZXR1cm4gQXR0cmlidXRlIGRpbWVuc2lvbiB2YWx1ZSBtdWx0aXBsaWVkIGJ5IHRoZSBhcHByb3ByaWF0ZQotICAgICAqIG1ldHJpYyBhbmQgdHJ1bmNhdGVkIHRvIGludGVnZXIgcGl4ZWxzLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0TGF5b3V0RGltZW5zaW9uKGludCBpbmRleCwgU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIC8vIHRoaXMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24KLSAgICAgICAgICAgIHJldHVybiBnZXREaW1lbnNpb24oaW5kZXgpOwotICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKLQotICAgICAgICAgICAgaWYgKExheW91dEluZmxhdGVyX0RlbGVnYXRlLnNJc0luSW5jbHVkZSkgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS53YXJuaW5nKExheW91dExvZy5UQUdfUkVTT1VSQ0VTX0ZPUk1BVCwKLSAgICAgICAgICAgICAgICAgICAgIllvdSBtdXN0IHN1cHBseSBhICIgKyBuYW1lICsgIiBhdHRyaWJ1dGUuIiwgbnVsbCk7Ci0KLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRMYXlvdXREaW1lbnNpb24oaW50IGluZGV4LCBpbnQgZGVmVmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGdldERpbWVuc2lvblBpeGVsU2l6ZShpbmRleCwgZGVmVmFsdWUpOwotICAgIH0KLQotICAgIHByaXZhdGUgaW50IGdldERpbWVuc2lvbihpbnQgaW5kZXgpIHsKLSAgICAgICAgaWYgKG1SZXNvdXJjZURhdGFbaW5kZXhdID09IG51bGwpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgcyA9IG1SZXNvdXJjZURhdGFbaW5kZXhdLmdldFZhbHVlKCk7Ci0KLSAgICAgICAgaWYgKHMgPT0gbnVsbCkgewotICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oKTsKLSAgICAgICAgfSBlbHNlIGlmIChzLmVxdWFscyhCcmlkZ2VDb25zdGFudHMuTUFUQ0hfUEFSRU5UKSB8fAotICAgICAgICAgICAgICAgIHMuZXF1YWxzKEJyaWRnZUNvbnN0YW50cy5GSUxMX1BBUkVOVCkpIHsKLSAgICAgICAgICAgIHJldHVybiBMYXlvdXRQYXJhbXMuTUFUQ0hfUEFSRU5UOwotICAgICAgICB9IGVsc2UgaWYgKHMuZXF1YWxzKEJyaWRnZUNvbnN0YW50cy5XUkFQX0NPTlRFTlQpKSB7Ci0gICAgICAgICAgICByZXR1cm4gTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVDsKLSAgICAgICAgfSBlbHNlIGlmIChSZW5kZXJSZXNvdXJjZXMuUkVGRVJFTkNFX05VTEwuZXF1YWxzKHMpKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKFJlc291cmNlSGVscGVyLnBhcnNlRmxvYXRBdHRyaWJ1dGUobU5hbWVzW2luZGV4XSwgcywgbVZhbHVlLCB0cnVlIC8qcmVxdWlyZVVuaXQqLykpIHsKLSAgICAgICAgICAgIGZsb2F0IGYgPSBtVmFsdWUuZ2V0RGltZW5zaW9uKG1CcmlkZ2VSZXNvdXJjZXMuZ2V0RGlzcGxheU1ldHJpY3MoKSk7Ci0KLSAgICAgICAgICAgIGZpbmFsIGludCByZXMgPSAoaW50KShmKzAuNWYpOwotICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSByZXR1cm4gcmVzOwotICAgICAgICAgICAgaWYgKGYgPT0gMCkgcmV0dXJuIDA7Ci0gICAgICAgICAgICBpZiAoZiA+IDApIHJldHVybiAxOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXRyaWV2ZSBhIGZyYWN0aW9uYWwgdW5pdCBhdHRyaWJ1dGUgYXQgPHZhcj5pbmRleDwvdmFyPi4KLSAgICAgKgotICAgICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiBhdHRyaWJ1dGUgdG8gcmV0cmlldmUuCi0gICAgICogQHBhcmFtIGJhc2UgVGhlIGJhc2UgdmFsdWUgb2YgdGhpcyBmcmFjdGlvbi4gIEluIG90aGVyIHdvcmRzLCBhCi0gICAgICogICAgICAgICAgICAgc3RhbmRhcmQgZnJhY3Rpb24gaXMgbXVsdGlwbGllZCBieSB0aGlzIHZhbHVlLgotICAgICAqIEBwYXJhbSBwYmFzZSBUaGUgcGFyZW50IGJhc2UgdmFsdWUgb2YgdGhpcyBmcmFjdGlvbi4gIEluIG90aGVyCi0gICAgICogICAgICAgICAgICAgd29yZHMsIGEgcGFyZW50IGZyYWN0aW9uIChubiVwKSBpcyBtdWx0aXBsaWVkIGJ5IHRoaXMKLSAgICAgKiAgICAgICAgICAgICB2YWx1ZS4KLSAgICAgKiBAcGFyYW0gZGVmVmFsdWUgVmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBhdHRyaWJ1dGUgaXMgbm90IGRlZmluZWQgb3IKLSAgICAgKiAgICAgICAgICAgICAgICAgbm90IGEgcmVzb3VyY2UuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIEF0dHJpYnV0ZSBmcmFjdGlvbmFsIHZhbHVlIG11bHRpcGxpZWQgYnkgdGhlIGFwcHJvcHJpYXRlCi0gICAgICogYmFzZSB2YWx1ZSwgb3IgZGVmVmFsdWUgaWYgbm90IGRlZmluZWQuCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGZsb2F0IGdldEZyYWN0aW9uKGludCBpbmRleCwgaW50IGJhc2UsIGludCBwYmFzZSwgZmxvYXQgZGVmVmFsdWUpIHsKLSAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBtUmVzb3VyY2VEYXRhLmxlbmd0aCkgewotICAgICAgICAgICAgcmV0dXJuIGRlZlZhbHVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKG1SZXNvdXJjZURhdGFbaW5kZXhdID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBkZWZWYWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIFN0cmluZyB2YWx1ZSA9IG1SZXNvdXJjZURhdGFbaW5kZXhdLmdldFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoUmVzb3VyY2VIZWxwZXIucGFyc2VGbG9hdEF0dHJpYnV0ZShtTmFtZXNbaW5kZXhdLCB2YWx1ZSwgbVZhbHVlLAotICAgICAgICAgICAgICAgIGZhbHNlIC8qcmVxdWlyZVVuaXQqLykpIHsKLSAgICAgICAgICAgIHJldHVybiBtVmFsdWUuZ2V0RnJhY3Rpb24oYmFzZSwgcGJhc2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gbG9va3MgbGlrZSB3ZSB3ZXJlIHVuYWJsZSB0byByZXNvbHZlIHRoZSBmcmFjdGlvbiB2YWx1ZQotICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkud2FybmluZyhMYXlvdXRMb2cuVEFHX1JFU09VUkNFU19GT1JNQVQsCi0gICAgICAgICAgICAgICAgU3RyaW5nLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAgICAgIlwiJTEkc1wiIGluIGF0dHJpYnV0ZSBcIiUyJHNcIiBjYW5ub3QgYmUgY29udmVydGVkIHRvIGEgZnJhY3Rpb24uIiwKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUsIG1OYW1lc1tpbmRleF0pLCBudWxsIC8qZGF0YSovKTsKLQotICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0cmlldmUgdGhlIHJlc291cmNlIGlkZW50aWZpZXIgZm9yIHRoZSBhdHRyaWJ1dGUgYXQKLSAgICAgKiA8dmFyPmluZGV4PC92YXI+LiAgTm90ZSB0aGF0IGF0dHJpYnV0ZSByZXNvdXJjZSBhcyByZXNvbHZlZCB3aGVuCi0gICAgICogdGhlIG92ZXJhbGwge0BsaW5rIFR5cGVkQXJyYXl9IG9iamVjdCBpcyByZXRyaWV2ZWQuICBBcyBhCi0gICAgICogcmVzdWx0LCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSByZXNvdXJjZSBpZGVudGlmaWVyIG9mIHRoZQotICAgICAqIGZpbmFsIHJlc291cmNlIHZhbHVlIHRoYXQgd2FzIGZvdW5kLCA8ZW0+bm90PC9lbT4gbmVjZXNzYXJpbHkgdGhlCi0gICAgICogb3JpZ2luYWwgcmVzb3VyY2UgdGhhdCB3YXMgc3BlY2lmaWVkIGJ5IHRoZSBhdHRyaWJ1dGUuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgYXR0cmlidXRlIHRvIHJldHJpZXZlLgotICAgICAqIEBwYXJhbSBkZWZWYWx1ZSBWYWx1ZSB0byByZXR1cm4gaWYgdGhlIGF0dHJpYnV0ZSBpcyBub3QgZGVmaW5lZCBvcgotICAgICAqICAgICAgICAgICAgICAgICBub3QgYSByZXNvdXJjZS4KLSAgICAgKgotICAgICAqIEByZXR1cm4gQXR0cmlidXRlIHJlc291cmNlIGlkZW50aWZpZXIsIG9yIGRlZlZhbHVlIGlmIG5vdCBkZWZpbmVkLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0UmVzb3VyY2VJZChpbnQgaW5kZXgsIGludCBkZWZWYWx1ZSkgewotICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IG1SZXNvdXJjZURhdGEubGVuZ3RoKSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBnZXQgdGhlIFJlc291cmNlIGZvciB0aGlzIGluZGV4Ci0gICAgICAgIFJlc291cmNlVmFsdWUgcmVzVmFsdWUgPSBtUmVzb3VyY2VEYXRhW2luZGV4XTsKLQotICAgICAgICAvLyBubyBkYXRhLCByZXR1cm4gdGhlIGRlZmF1bHQgdmFsdWUuCi0gICAgICAgIGlmIChyZXNWYWx1ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBjaGVjayBpZiB0aGlzIGlzIGEgc3R5bGUgcmVzb3VyY2UKLSAgICAgICAgaWYgKHJlc1ZhbHVlIGluc3RhbmNlb2YgU3R5bGVSZXNvdXJjZVZhbHVlKSB7Ci0gICAgICAgICAgICAvLyBnZXQgdGhlIGlkIHRoYXQgd2lsbCByZXByZXNlbnQgdGhpcyBzdHlsZS4KLSAgICAgICAgICAgIHJldHVybiBtQ29udGV4dC5nZXREeW5hbWljSWRCeVN0eWxlKChTdHlsZVJlc291cmNlVmFsdWUpcmVzVmFsdWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKFJlbmRlclJlc291cmNlcy5SRUZFUkVOQ0VfTlVMTC5lcXVhbHMocmVzVmFsdWUuZ2V0VmFsdWUoKSkpIHsKLSAgICAgICAgICAgIHJldHVybiBkZWZWYWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGlmIHRoZSBhdHRyaWJ1dGUgd2FzIGEgcmVmZXJlbmNlIHRvIGEgcmVzb3VyY2UsIGFuZCBub3QgYSBkZWNsYXJhdGlvbiBvZiBhbiBpZCAoQCtpZCksCi0gICAgICAgIC8vIHRoZW4gdGhlIHhtbCBhdHRyaWJ1dGUgdmFsdWUgd2FzICJyZXNvbHZlZCIgd2hpY2ggbGVhZHMgdXMgdG8gYSBSZXNvdXJjZVZhbHVlIHdpdGggYQotICAgICAgICAvLyB2YWxpZCBnZXRUeXBlKCkgYW5kIGdldE5hbWUoKSByZXR1cm5pbmcgYSByZXNvdXJjZSBuYW1lLgotICAgICAgICAvLyAoYW5kIGdldFZhbHVlKCkgcmV0dXJuaW5nIG51bGwhKS4gV2UgbmVlZCB0byBoYW5kbGUgdGhpcyEKLSAgICAgICAgaWYgKHJlc1ZhbHVlLmdldFJlc291cmNlVHlwZSgpICE9IG51bGwpIHsKLSAgICAgICAgICAgIC8vIGlmIHRoaXMgaXMgYSBmcmFtZXdvcmsgaWQKLSAgICAgICAgICAgIGlmIChtUGxhdGZvcm1GaWxlIHx8IHJlc1ZhbHVlLmlzRnJhbWV3b3JrKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBsb29rIGZvciBpZE5hbWUgaW4gdGhlIGFuZHJvaWQgUiBjbGFzc2VzCi0gICAgICAgICAgICAgICAgcmV0dXJuIG1Db250ZXh0LmdldEZyYW1ld29ya1Jlc291cmNlVmFsdWUoCi0gICAgICAgICAgICAgICAgICAgICAgICByZXNWYWx1ZS5nZXRSZXNvdXJjZVR5cGUoKSwgcmVzVmFsdWUuZ2V0TmFtZSgpLCBkZWZWYWx1ZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIGxvb2sgZm9yIGlkTmFtZSBpbiB0aGUgcHJvamVjdCBSIGNsYXNzLgotICAgICAgICAgICAgcmV0dXJuIG1Db250ZXh0LmdldFByb2plY3RSZXNvdXJjZVZhbHVlKAotICAgICAgICAgICAgICAgICAgICByZXNWYWx1ZS5nZXRSZXNvdXJjZVR5cGUoKSwgcmVzVmFsdWUuZ2V0TmFtZSgpLCBkZWZWYWx1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBlbHNlLCB0cnkgdG8gZ2V0IHRoZSB2YWx1ZSwgYW5kIHJlc29sdmUgaXQgc29tZWhvdy4KLSAgICAgICAgU3RyaW5nIHZhbHVlID0gcmVzVmFsdWUuZ2V0VmFsdWUoKTsKLSAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBkZWZWYWx1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGlmIHRoZSB2YWx1ZSBpcyBqdXN0IGFuIGludGVnZXIsIHJldHVybiBpdC4KLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGludCBpID0gSW50ZWdlci5wYXJzZUludCh2YWx1ZSk7Ci0gICAgICAgICAgICBpZiAoSW50ZWdlci50b1N0cmluZyhpKS5lcXVhbHModmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAvLyBwYXNzCi0gICAgICAgIH0KLQotICAgICAgICAvLyBIYW5kbGUgdGhlIEBpZC88bmFtZT4sIEAraWQvPG5hbWU+IGFuZCBAYW5kcm9pZDppZC88bmFtZT4KLSAgICAgICAgLy8gV2UgbmVlZCB0byByZXR1cm4gdGhlIGV4YWN0IHZhbHVlIHRoYXQgd2FzIGNvbXBpbGVkIChmcm9tIHRoZSB2YXJpb3VzIFIgY2xhc3NlcyksCi0gICAgICAgIC8vIGFzIHRoZXNlIHZhbHVlcyBjYW4gYmUgcmV1c2VkIGludGVybmFsbHkgd2l0aCBjYWxscyB0byBmaW5kVmlld0J5SWQoKS4KLSAgICAgICAgLy8gVGhlcmUncyBhIHRyaWNrIHdpdGggcGxhdGZvcm0gbGF5b3V0cyB0aGF0IG5vdCB1c2UgImFuZHJvaWQ6IiBidXQgdGhlaXIgSURzIGFyZSBpbgotICAgICAgICAvLyBmYWN0IGluIHRoZSBhbmRyb2lkLlIgYW5kIGNvbS5hbmRyb2lkLmludGVybmFsLlIgY2xhc3Nlcy4KLSAgICAgICAgLy8gVGhlIGZpZWxkIG1QbGF0Zm9ybUZpbGUgd2lsbCBpbmRpY2F0ZSB0aGF0IGFsbCBJRHMgYXJlIHRvIGJlIGxvb2tlZCB1cCBpbiB0aGUgYW5kcm9pZCBSCi0gICAgICAgIC8vIGNsYXNzZXMgZXhjbHVzaXZlbHkuCi0KLSAgICAgICAgLy8gaWYgdGhpcyBpcyBhIHJlZmVyZW5jZSB0byBhbiBpZCwgZmluZCBpdC4KLSAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoIkBpZC8iKSB8fCB2YWx1ZS5zdGFydHNXaXRoKCJAKyIpIHx8Ci0gICAgICAgICAgICAgICAgdmFsdWUuc3RhcnRzV2l0aCgiQGFuZHJvaWQ6aWQvIikpIHsKLQotICAgICAgICAgICAgaW50IHBvcyA9IHZhbHVlLmluZGV4T2YoJy8nKTsKLSAgICAgICAgICAgIFN0cmluZyBpZE5hbWUgPSB2YWx1ZS5zdWJzdHJpbmcocG9zICsgMSk7Ci0KLSAgICAgICAgICAgIC8vIGlmIHRoaXMgaXMgYSBmcmFtZXdvcmsgaWQKLSAgICAgICAgICAgIGlmIChtUGxhdGZvcm1GaWxlIHx8IHZhbHVlLnN0YXJ0c1dpdGgoIkBhbmRyb2lkIikgfHwgdmFsdWUuc3RhcnRzV2l0aCgiQCthbmRyb2lkIikpIHsKLSAgICAgICAgICAgICAgICAvLyBsb29rIGZvciBpZE5hbWUgaW4gdGhlIGFuZHJvaWQgUiBjbGFzc2VzCi0gICAgICAgICAgICAgICAgcmV0dXJuIG1Db250ZXh0LmdldEZyYW1ld29ya1Jlc291cmNlVmFsdWUoUmVzb3VyY2VUeXBlLklELCBpZE5hbWUsIGRlZlZhbHVlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gbG9vayBmb3IgaWROYW1lIGluIHRoZSBwcm9qZWN0IFIgY2xhc3MuCi0gICAgICAgICAgICByZXR1cm4gbUNvbnRleHQuZ2V0UHJvamVjdFJlc291cmNlVmFsdWUoUmVzb3VyY2VUeXBlLklELCBpZE5hbWUsIGRlZlZhbHVlKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIG5vdCBhIGRpcmVjdCBpZCB2YWxpZCByZWZlcmVuY2U/IHJlc29sdmUgaXQKLSAgICAgICAgSW50ZWdlciBpZFZhbHVlID0gbnVsbDsKLQotICAgICAgICBpZiAocmVzVmFsdWUuaXNGcmFtZXdvcmsoKSkgewotICAgICAgICAgICAgaWRWYWx1ZSA9IEJyaWRnZS5nZXRSZXNvdXJjZUlkKHJlc1ZhbHVlLmdldFJlc291cmNlVHlwZSgpLAotICAgICAgICAgICAgICAgICAgICByZXNWYWx1ZS5nZXROYW1lKCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWRWYWx1ZSA9IG1Db250ZXh0LmdldFByb2plY3RDYWxsYmFjaygpLmdldFJlc291cmNlSWQoCi0gICAgICAgICAgICAgICAgICAgIHJlc1ZhbHVlLmdldFJlc291cmNlVHlwZSgpLCByZXNWYWx1ZS5nZXROYW1lKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGlkVmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGlkVmFsdWUuaW50VmFsdWUoKTsKLSAgICAgICAgfQotCi0gICAgICAgIEJyaWRnZS5nZXRMb2coKS53YXJuaW5nKExheW91dExvZy5UQUdfUkVTT1VSQ0VTX1JFU09MVkUsCi0gICAgICAgICAgICAgICAgU3RyaW5nLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAgICAgIlVuYWJsZSB0byByZXNvbHZlIGlkIFwiJTEkc1wiIGZvciBhdHRyaWJ1dGUgXCIlMiRzXCIiLCB2YWx1ZSwgbU5hbWVzW2luZGV4XSksCi0gICAgICAgICAgICAgICAgICAgIHJlc1ZhbHVlKTsKLQotICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0cmlldmUgdGhlIERyYXdhYmxlIGZvciB0aGUgYXR0cmlidXRlIGF0IDx2YXI+aW5kZXg8L3Zhcj4uICBUaGlzCi0gICAgICogZ2V0cyB0aGUgcmVzb3VyY2UgSUQgb2YgdGhlIHNlbGVjdGVkIGF0dHJpYnV0ZSwgYW5kIHVzZXMKLSAgICAgKiB7QGxpbmsgUmVzb3VyY2VzI2dldERyYXdhYmxlIFJlc291cmNlcy5nZXREcmF3YWJsZX0gb2YgdGhlIG93bmluZwotICAgICAqIFJlc291cmNlcyBvYmplY3QgdG8gcmV0cmlldmUgaXRzIERyYXdhYmxlLgotICAgICAqCi0gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIGF0dHJpYnV0ZSB0byByZXRyaWV2ZS4KLSAgICAgKgotICAgICAqIEByZXR1cm4gRHJhd2FibGUgZm9yIHRoZSBhdHRyaWJ1dGUsIG9yIG51bGwgaWYgbm90IGRlZmluZWQuCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIERyYXdhYmxlIGdldERyYXdhYmxlKGludCBpbmRleCkgewotICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IG1SZXNvdXJjZURhdGEubGVuZ3RoKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtUmVzb3VyY2VEYXRhW2luZGV4XSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIFJlc291cmNlVmFsdWUgdmFsdWUgPSBtUmVzb3VyY2VEYXRhW2luZGV4XTsKLSAgICAgICAgU3RyaW5nIHN0cmluZ1ZhbHVlID0gdmFsdWUuZ2V0VmFsdWUoKTsKLSAgICAgICAgaWYgKHN0cmluZ1ZhbHVlID09IG51bGwgfHwgUmVuZGVyUmVzb3VyY2VzLlJFRkVSRU5DRV9OVUxMLmVxdWFscyhzdHJpbmdWYWx1ZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIFJlc291cmNlSGVscGVyLmdldERyYXdhYmxlKHZhbHVlLCBtQ29udGV4dCk7Ci0gICAgfQotCi0KLSAgICAvKioKLSAgICAgKiBSZXRyaWV2ZSB0aGUgQ2hhclNlcXVlbmNlW10gZm9yIHRoZSBhdHRyaWJ1dGUgYXQgPHZhcj5pbmRleDwvdmFyPi4KLSAgICAgKiBUaGlzIGdldHMgdGhlIHJlc291cmNlIElEIG9mIHRoZSBzZWxlY3RlZCBhdHRyaWJ1dGUsIGFuZCB1c2VzCi0gICAgICoge0BsaW5rIFJlc291cmNlcyNnZXRUZXh0QXJyYXkgUmVzb3VyY2VzLmdldFRleHRBcnJheX0gb2YgdGhlIG93bmluZwotICAgICAqIFJlc291cmNlcyBvYmplY3QgdG8gcmV0cmlldmUgaXRzIFN0cmluZ1tdLgotICAgICAqCi0gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIGF0dHJpYnV0ZSB0byByZXRyaWV2ZS4KLSAgICAgKgotICAgICAqIEByZXR1cm4gQ2hhclNlcXVlbmNlW10gZm9yIHRoZSBhdHRyaWJ1dGUsIG9yIG51bGwgaWYgbm90IGRlZmluZWQuCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIENoYXJTZXF1ZW5jZVtdIGdldFRleHRBcnJheShpbnQgaW5kZXgpIHsKLSAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBtUmVzb3VyY2VEYXRhLmxlbmd0aCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobVJlc291cmNlRGF0YVtpbmRleF0gPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgdmFsdWUgPSBtUmVzb3VyY2VEYXRhW2luZGV4XS5nZXRWYWx1ZSgpOwotICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgaWYgKFJlbmRlclJlc291cmNlcy5SRUZFUkVOQ0VfTlVMTC5lcXVhbHModmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBuZXcgQ2hhclNlcXVlbmNlW10geyB2YWx1ZSB9OwotICAgICAgICB9Ci0KLSAgICAgICAgQnJpZGdlLmdldExvZygpLndhcm5pbmcoTGF5b3V0TG9nLlRBR19SRVNPVVJDRVNfRk9STUFULAotICAgICAgICAgICAgICAgIFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZy5mb3JtYXQoIlVua25vd24gdmFsdWUgZm9yIGdldFRleHRBcnJheSglZCkgPT4gJXMiLCAvL0RFQlVHCi0gICAgICAgICAgICAgICAgICAgIGluZGV4LCBtUmVzb3VyY2VEYXRhW2luZGV4XS5nZXROYW1lKCkpKSwgbnVsbCAvKmRhdGEqLyk7Ci0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0cmlldmUgdGhlIHJhdyBUeXBlZFZhbHVlIGZvciB0aGUgYXR0cmlidXRlIGF0IDx2YXI+aW5kZXg8L3Zhcj4uCi0gICAgICoKLSAgICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgYXR0cmlidXRlIHRvIHJldHJpZXZlLgotICAgICAqIEBwYXJhbSBvdXRWYWx1ZSBUeXBlZFZhbHVlIG9iamVjdCBpbiB3aGljaCB0byBwbGFjZSB0aGUgYXR0cmlidXRlJ3MKLSAgICAgKiAgICAgICAgICAgICAgICAgZGF0YS4KLSAgICAgKgotICAgICAqIEByZXR1cm4gUmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSB3YXMgcmV0cmlldmVkLCBlbHNlIGZhbHNlLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGdldFZhbHVlKGludCBpbmRleCwgVHlwZWRWYWx1ZSBvdXRWYWx1ZSkgewotICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IG1SZXNvdXJjZURhdGEubGVuZ3RoKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobVJlc291cmNlRGF0YVtpbmRleF0gPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgU3RyaW5nIHMgPSBtUmVzb3VyY2VEYXRhW2luZGV4XS5nZXRWYWx1ZSgpOwotCi0gICAgICAgIHJldHVybiBSZXNvdXJjZUhlbHBlci5wYXJzZUZsb2F0QXR0cmlidXRlKG1OYW1lc1tpbmRleF0sIHMsIG91dFZhbHVlLAotICAgICAgICAgICAgICAgIGZhbHNlIC8qcmVxdWlyZVVuaXQqLyk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZXJlIGlzIGFuIGF0dHJpYnV0ZSBhdCA8dmFyPmluZGV4PC92YXI+LgotICAgICAqCi0gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIGF0dHJpYnV0ZSB0byByZXRyaWV2ZS4KLSAgICAgKgotICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGUgYXR0cmlidXRlIGhhcyBhIHZhbHVlLCBmYWxzZSBvdGhlcndpc2UuCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaGFzVmFsdWUoaW50IGluZGV4KSB7Ci0gICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gbVJlc291cmNlRGF0YS5sZW5ndGgpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBtUmVzb3VyY2VEYXRhW2luZGV4XSAhPSBudWxsOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHJpZXZlIHRoZSByYXcgVHlwZWRWYWx1ZSBmb3IgdGhlIGF0dHJpYnV0ZSBhdCA8dmFyPmluZGV4PC92YXI+Ci0gICAgICogYW5kIHJldHVybiBhIHRlbXBvcmFyeSBvYmplY3QgaG9sZGluZyBpdHMgZGF0YS4gIFRoaXMgb2JqZWN0IGlzIG9ubHkKLSAgICAgKiB2YWxpZCB1bnRpbCB0aGUgbmV4dCBjYWxsIG9uIHRvIHtAbGluayBUeXBlZEFycmF5fS4KLSAgICAgKgotICAgICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiBhdHRyaWJ1dGUgdG8gcmV0cmlldmUuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIFJldHVybnMgYSBUeXBlZFZhbHVlIG9iamVjdCBpZiB0aGUgYXR0cmlidXRlIGlzIGRlZmluZWQsCi0gICAgICogICAgICAgICBjb250YWluaW5nIGl0cyBkYXRhOyBvdGhlcndpc2UgcmV0dXJucyBudWxsLiAgKFlvdSB3aWxsIG5vdAotICAgICAqICAgICAgICAgcmVjZWl2ZSBhIFR5cGVkVmFsdWUgd2hvc2UgdHlwZSBpcyBUWVBFX05VTEwuKQotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBUeXBlZFZhbHVlIHBlZWtWYWx1ZShpbnQgaW5kZXgpIHsKLSAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBtUmVzb3VyY2VEYXRhLmxlbmd0aCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZ2V0VmFsdWUoaW5kZXgsIG1WYWx1ZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBtVmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIGEgbWVzc2FnZSBhYm91dCB0aGUgcGFyc2VyIHN0YXRlIHN1aXRhYmxlIGZvciBwcmludGluZyBlcnJvciBtZXNzYWdlcy4KLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFBvc2l0aW9uRGVzY3JpcHRpb24oKSB7Ci0gICAgICAgIHJldHVybiAiPGludGVybmFsIC0tIHN0dWIgaWYgbmVlZGVkPiI7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogR2l2ZSBiYWNrIGEgcHJldmlvdXNseSByZXRyaWV2ZWQgVHlwZWRBcnJheSwgZm9yIGxhdGVyIHJlLXVzZS4KLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCByZWN5Y2xlKCkgewotICAgICAgICAvLyBwYXNzCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKLSAgICAgICAgcmV0dXJuIEFycmF5cy50b1N0cmluZyhtUmVzb3VyY2VEYXRhKTsKLSAgICB9Ci0gfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9jb250ZW50L3Jlcy9SZXNvdXJjZXNfVGhlbWVfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvY29udGVudC9yZXMvUmVzb3VyY2VzX1RoZW1lX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5ZDYxNWMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9jb250ZW50L3Jlcy9SZXNvdXJjZXNfVGhlbWVfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuY29udGVudC5yZXM7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuUmVuZGVyU2Vzc2lvbkltcGw7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5SZXNvdXJjZXMuTm90Rm91bmRFeGNlcHRpb247Ci1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5SZXNvdXJjZXMuVGhlbWU7Ci1pbXBvcnQgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldDsKLWltcG9ydCBhbmRyb2lkLnV0aWwuVHlwZWRWYWx1ZTsKLQotLyoqCi0gKiBEZWxlZ2F0ZSB1c2VkIHRvIHByb3ZpZGUgbmV3IGltcGxlbWVudGF0aW9uIG9mIGEgc2VsZWN0IGZldyBtZXRob2RzIG9mIHtAbGluayBSZXNvdXJjZXMkVGhlbWV9Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgIG1ldGhvZHMgb2YgVGhlbWUgaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBSZXNvdXJjZXNfVGhlbWVfRGVsZWdhdGUgewotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIFR5cGVkQXJyYXkgb2J0YWluU3R5bGVkQXR0cmlidXRlcygKLSAgICAgICAgICAgIFJlc291cmNlcyB0aGlzUmVzb3VyY2VzLCBUaGVtZSB0aGlzVGhlbWUsCi0gICAgICAgICAgICBpbnRbXSBhdHRycykgewotICAgICAgICByZXR1cm4gUmVuZGVyU2Vzc2lvbkltcGwuZ2V0Q3VycmVudENvbnRleHQoKS5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGF0dHJzKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgVHlwZWRBcnJheSBvYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKAotICAgICAgICAgICAgUmVzb3VyY2VzIHRoaXNSZXNvdXJjZXMsIFRoZW1lIHRoaXNUaGVtZSwKLSAgICAgICAgICAgIGludCByZXNpZCwgaW50W10gYXR0cnMpCi0gICAgICAgICAgICB0aHJvd3MgTm90Rm91bmRFeGNlcHRpb24gewotICAgICAgICByZXR1cm4gUmVuZGVyU2Vzc2lvbkltcGwuZ2V0Q3VycmVudENvbnRleHQoKS5vYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKHJlc2lkLCBhdHRycyk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIFR5cGVkQXJyYXkgb2J0YWluU3R5bGVkQXR0cmlidXRlcygKLSAgICAgICAgICAgIFJlc291cmNlcyB0aGlzUmVzb3VyY2VzLCBUaGVtZSB0aGlzVGhlbWUsCi0gICAgICAgICAgICBBdHRyaWJ1dGVTZXQgc2V0LCBpbnRbXSBhdHRycywgaW50IGRlZlN0eWxlQXR0ciwgaW50IGRlZlN0eWxlUmVzKSB7Ci0gICAgICAgIHJldHVybiBSZW5kZXJTZXNzaW9uSW1wbC5nZXRDdXJyZW50Q29udGV4dCgpLm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoCi0gICAgICAgICAgICAgICAgc2V0LCBhdHRycywgZGVmU3R5bGVBdHRyLCBkZWZTdHlsZVJlcyk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gcmVzb2x2ZUF0dHJpYnV0ZSgKLSAgICAgICAgICAgIFJlc291cmNlcyB0aGlzUmVzb3VyY2VzLCBUaGVtZSB0aGlzVGhlbWUsCi0gICAgICAgICAgICBpbnQgcmVzaWQsIFR5cGVkVmFsdWUgb3V0VmFsdWUsCi0gICAgICAgICAgICBib29sZWFuIHJlc29sdmVSZWZzKSB7Ci0gICAgICAgIHJldHVybiBSZW5kZXJTZXNzaW9uSW1wbC5nZXRDdXJyZW50Q29udGV4dCgpLnJlc29sdmVUaGVtZUF0dHJpYnV0ZSgKLSAgICAgICAgICAgICAgICByZXNpZCwgb3V0VmFsdWUsIHJlc29sdmVSZWZzKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2NvbnRlbnQvcmVzL1R5cGVkQXJyYXlfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvY29udGVudC9yZXMvVHlwZWRBcnJheV9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYTc4OTlhLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvY29udGVudC9yZXMvVHlwZWRBcnJheV9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5jb250ZW50LnJlczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotaW1wb3J0IGFuZHJvaWQudXRpbC5UeXBlZFZhbHVlOwotCi1wdWJsaWMgY2xhc3MgVHlwZWRBcnJheV9EZWxlZ2F0ZSB7Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZ2V0VmFsdWVBdChUeXBlZEFycmF5IHRoZVR5cGVkQXJyYXksIGludCBpbmRleCwgVHlwZWRWYWx1ZSBvdXRWYWx1ZSkgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0F2b2lkWGZlcm1vZGVfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvQXZvaWRYZmVybW9kZV9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTBhMmJkLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvQXZvaWRYZmVybW9kZV9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgamF2YS5hd3QuQ29tcG9zaXRlOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5Bdm9pZFhmZXJtb2RlCi0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgQXZvaWRYZmVybW9kZSBoYXZlIGJlZW4KLSAqIHJlcGxhY2VkIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIFRoaXMgY2xhc3MgYmVoYXZlcyBsaWtlIHRoZSBvcmlnaW5hbCBuYXRpdmUgaW1wbGVtZW50YXRpb24sIGJ1dCBpbiBKYXZhLCBrZWVwaW5nIHByZXZpb3VzbHkKLSAqIG5hdGl2ZSBkYXRhIGludG8gaXRzIG93biBvYmplY3RzIGFuZCBtYXBwaW5nIHRoZW0gdG8gaW50IHRoYXQgYXJlIHNlbnQgYmFjayBhbmQgZm9ydGggYmV0d2VlbgotICogaXQgYW5kIHRoZSBvcmlnaW5hbCBBdm9pZFhmZXJtb2RlIGNsYXNzLgotICoKLSAqIEJlY2F1c2UgdGhpcyBleHRlbmRzIHtAbGluayBYZmVybW9kZV9EZWxlZ2F0ZX0sIHRoZXJlJ3Mgbm8gbmVlZCB0byB1c2UgYQotICoge0BsaW5rIERlbGVnYXRlTWFuYWdlcn0sIGFzIGFsbCB0aGUgUGF0aEVmZmVjdCBjbGFzc2VzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIG1hbmFnZXIgb3duZWQgYnkKLSAqIHtAbGluayBYZmVybW9kZV9EZWxlZ2F0ZX0uCi0gKgotICovCi1wdWJsaWMgY2xhc3MgQXZvaWRYZmVybW9kZV9EZWxlZ2F0ZSBleHRlbmRzIFhmZXJtb2RlX0RlbGVnYXRlIHsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgZGF0YSAtLS0tCi0KLSAgICAvLyAtLS0tIFB1YmxpYyBIZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQ29tcG9zaXRlIGdldENvbXBvc2l0ZShpbnQgYWxwaGEpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNTdXBwb3J0ZWQoKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCkgewotICAgICAgICByZXR1cm4gIkF2b2lkIFhmZXJtb2RlcyBhcmUgbm90IHN1cHBvcnRlZCBpbiBMYXlvdXQgUHJldmlldyBtb2RlLiI7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBuYXRpdmUgbWV0aG9kcyAtLS0tCi0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZUNyZWF0ZShpbnQgb3BDb2xvciwgaW50IHRvbGVyYW5jZSwgaW50IG5hdGl2ZU1vZGUpIHsKLSAgICAgICAgQXZvaWRYZmVybW9kZV9EZWxlZ2F0ZSBuZXdEZWxlZ2F0ZSA9IG5ldyBBdm9pZFhmZXJtb2RlX0RlbGVnYXRlKCk7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5hZGROZXdEZWxlZ2F0ZShuZXdEZWxlZ2F0ZSk7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBQcml2YXRlIGRlbGVnYXRlL2hlbHBlciBtZXRob2RzIC0tLS0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvQmlkaVJlbmRlcmVyLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0JpZGlSZW5kZXJlci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MmQwYTBkLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvQmlkaVJlbmRlcmVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyMTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGphdmEuYXd0LkZvbnQ7Ci1pbXBvcnQgamF2YS5hd3QuR3JhcGhpY3MyRDsKLWltcG9ydCBqYXZhLmF3dC5mb250LkZvbnRSZW5kZXJDb250ZXh0OwotaW1wb3J0IGphdmEuYXd0LmZvbnQuR2x5cGhWZWN0b3I7Ci1pbXBvcnQgamF2YS51dGlsLkxpbmtlZExpc3Q7Ci1pbXBvcnQgamF2YS51dGlsLkxpc3Q7Ci0KLWltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQ7Ci1pbXBvcnQgY29tLmlibS5pY3UubGFuZy5VU2NyaXB0UnVuOwotCi1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5QYWludF9EZWxlZ2F0ZS5Gb250SW5mbzsKLQotLyoqCi0gKiBSZW5kZXIgdGhlIHRleHQgYnkgYnJlYWtpbmcgaXQgaW50byB2YXJpb3VzIHNjcmlwdHMgYW5kIHVzaW5nIHRoZSByaWdodCBmb250IGZvciBlYWNoIHNjcmlwdC4KLSAqIENhbiBiZSB1c2VkIHRvIG1lYXN1cmUgdGhlIHRleHQgd2l0aG91dCBhY3R1YWxseSBkcmF3aW5nIGl0LgotICovCi1AU3VwcHJlc3NXYXJuaW5ncygiZGVwcmVjYXRpb24iKQotcHVibGljIGNsYXNzIEJpZGlSZW5kZXJlciB7Ci0KLSAgICAvKiBwYWNrYWdlICovIHN0YXRpYyBjbGFzcyBTY3JpcHRSdW4gewotICAgICAgICBpbnQgc3RhcnQ7Ci0gICAgICAgIGludCBsaW1pdDsKLSAgICAgICAgYm9vbGVhbiBpc1J0bDsKLSAgICAgICAgaW50IHNjcmlwdENvZGU7Ci0gICAgICAgIEZvbnRJbmZvIGZvbnQ7Ci0KLSAgICAgICAgcHVibGljIFNjcmlwdFJ1bihpbnQgc3RhcnQsIGludCBsaW1pdCwgYm9vbGVhbiBpc1J0bCkgewotICAgICAgICAgICAgdGhpcy5zdGFydCA9IHN0YXJ0OwotICAgICAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OwotICAgICAgICAgICAgdGhpcy5pc1J0bCA9IGlzUnRsOwotICAgICAgICAgICAgdGhpcy5zY3JpcHRDb2RlID0gVVNjcmlwdC5JTlZBTElEX0NPREU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiBwYWNrYWdlICovIEdyYXBoaWNzMkQgZ3JhcGhpY3M7Ci0gICAgLyogcGFja2FnZSAqLyBQYWludF9EZWxlZ2F0ZSBwYWludDsKLSAgICAvKiBwYWNrYWdlICovIGNoYXJbXSB0ZXh0OwotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIGdyYXBoaWNzIE1heSBiZSBudWxsLgotICAgICAqIEBwYXJhbSBwYWludCBUaGUgUGFpbnQgdG8gdXNlIHRvIGdldCB0aGUgZm9udHMuIFNob3VsZCBub3QgYmUgbnVsbC4KLSAgICAgKiBAcGFyYW0gdGV4dCBVbmlkaXJlY3Rpb25hbCB0ZXh0LiBTaG91bGQgbm90IGJlIG51bGwuCi0gICAgICovCi0gICAgLyogcGFja2FnZSAqLyBCaWRpUmVuZGVyZXIoR3JhcGhpY3MyRCBncmFwaGljcywgUGFpbnRfRGVsZWdhdGUgcGFpbnQsIGNoYXJbXSB0ZXh0KSB7Ci0gICAgICAgIGFzc2VydCAocGFpbnQgIT0gbnVsbCk7Ci0gICAgICAgIHRoaXMuZ3JhcGhpY3MgPSBncmFwaGljczsKLSAgICAgICAgdGhpcy5wYWludCA9IHBhaW50OwotICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlbmRlciB1bmlkaXJlY3Rpb25hbCB0ZXh0LgotICAgICAqCi0gICAgICogVGhpcyBtZXRob2QgY2FuIGFsc28gYmUgdXNlZCB0byBtZWFzdXJlIHRoZSB3aWR0aCBvZiB0aGUgdGV4dCB3aXRob3V0IGFjdHVhbGx5IGRyYXdpbmcgaXQuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gc3RhcnQgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlcgotICAgICAqIEBwYXJhbSBsaW1pdCBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRoYXQgc2hvdWxkIG5vdCBiZSByZW5kZXJlZC4KLSAgICAgKiBAcGFyYW0gaXNSdGwgaXMgdGhlIHRleHQgcmlnaHQtdG8tbGVmdAotICAgICAqIEBwYXJhbSBhZHZhbmNlcyBJZiBub3QgbnVsbCwgdGhlbiBhZHZhbmNlcyBmb3IgZWFjaCBjaGFyYWN0ZXIgdG8gYmUgcmVuZGVyZWQgYXJlIHJldHVybmVkCi0gICAgICogICAgICAgICAgICBoZXJlLgotICAgICAqIEBwYXJhbSBhZHZhbmNlc0luZGV4IGluZGV4IGludG8gYWR2YW5jZXMgZnJvbSB3aGVyZSB0aGUgYWR2YW5jZXMgbmVlZCB0byBiZSBmaWxsZWQuCi0gICAgICogQHBhcmFtIGRyYXcgSWYgdHJ1ZSBhbmQge0BsaW5rIGdyYXBoaWNzfSBpcyBub3QgbnVsbCwgZHJhdyB0aGUgcmVuZGVyZWQgdGV4dCBvbiB0aGUgZ3JhcGhpY3MKLSAgICAgKiAgICAgICAgICAgIGF0IHRoZSBnaXZlbiBjby1vcmRpbmF0ZXMKLSAgICAgKiBAcGFyYW0geCBUaGUgeC1jb29yZGluYXRlIG9mIHRoZSBsZWZ0IGVkZ2Ugb2Ygd2hlcmUgdGhlIHRleHQgc2hvdWxkIGJlIGRyYXduIG9uIHRoZSBnaXZlbgotICAgICAqICAgICAgICAgICAgZ3JhcGhpY3MuCi0gICAgICogQHBhcmFtIHkgVGhlIHktY29vcmRpbmF0ZSBhdCB3aGljaCB0byBkcmF3IHRoZSB0ZXh0IG9uIHRoZSBnaXZlbiBncmFwaGljcy4KLSAgICAgKiBAcmV0dXJuIFRoZSB4LWNvb3JkaW5hdGUgb2YgdGhlIHJpZ2h0IGVkZ2Ugb2YgdGhlIGRyYXduIHRleHQuIEluIG90aGVyIHdvcmRzLAotICAgICAqICAgICAgICAgICAgeCArIHRoZSB3aWR0aCBvZiB0aGUgdGV4dC4KLSAgICAgKi8KLSAgICAvKiBwYWNrYWdlICovIGZsb2F0IHJlbmRlclRleHQoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGJvb2xlYW4gaXNSdGwsIGZsb2F0IGFkdmFuY2VzW10sCi0gICAgICAgICAgICBpbnQgYWR2YW5jZXNJbmRleCwgYm9vbGVhbiBkcmF3LCBmbG9hdCB4LCBmbG9hdCB5KSB7Ci0gICAgICAgIC8vIFdlIGJyZWFrIHRoZSB0ZXh0IGludG8gc2NyaXB0cyBhbmQgdGhlbiBzZWxlY3QgZm9udCBiYXNlZCBvbiBpdCBhbmQgdGhlbiByZW5kZXIgZWFjaCBvZgotICAgICAgICAvLyB0aGUgc2NyaXB0IHJ1bnMuCi0gICAgICAgIGZvciAoU2NyaXB0UnVuIHJ1biA6IGdldFNjcmlwdFJ1bnModGV4dCwgc3RhcnQsIGxpbWl0LCBpc1J0bCwgcGFpbnQuZ2V0Rm9udHMoKSkpIHsKLSAgICAgICAgICAgIGludCBmbGFnID0gRm9udC5MQVlPVVRfTk9fTElNSVRfQ09OVEVYVCB8IEZvbnQuTEFZT1VUX05PX1NUQVJUX0NPTlRFWFQ7Ci0gICAgICAgICAgICBmbGFnIHw9IGlzUnRsID8gRm9udC5MQVlPVVRfUklHSFRfVE9fTEVGVCA6IEZvbnQuTEFZT1VUX0xFRlRfVE9fUklHSFQ7Ci0gICAgICAgICAgICB4ID0gcmVuZGVyU2NyaXB0KHJ1bi5zdGFydCwgcnVuLmxpbWl0LCBydW4uZm9udCwgZmxhZywgYWR2YW5jZXMsIGFkdmFuY2VzSW5kZXgsIGRyYXcsCi0gICAgICAgICAgICAgICAgICAgIHgsIHkpOwotICAgICAgICAgICAgYWR2YW5jZXNJbmRleCArPSBydW4ubGltaXQgLSBydW4uc3RhcnQ7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHg7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmVuZGVyIGEgc2NyaXB0IHJ1bi4gVXNlIHRoZSBwcmVmZXJyZWQgZm9udCB0byByZW5kZXIgYXMgbXVjaCBhcyBwb3NzaWJsZS4gVGhpcyBhbHNvCi0gICAgICogaW1wbGVtZW50cyBhIGZhbGxiYWNrIG1lY2hhbmlzbSB0byByZW5kZXIgY2hhcmFjdGVycyB0aGF0IGNhbm5vdCBiZSBkcmF3biB1c2luZyB0aGUKLSAgICAgKiBwcmVmZXJyZWQgZm9udC4KLSAgICAgKgotICAgICAqIEByZXR1cm4geCArIHdpZHRoIG9mIHRoZSB0ZXh0IGRyYXduLgotICAgICAqLwotICAgIHByaXZhdGUgZmxvYXQgcmVuZGVyU2NyaXB0KGludCBzdGFydCwgaW50IGxpbWl0LCBGb250SW5mbyBwcmVmZXJyZWRGb250LCBpbnQgZmxhZywKLSAgICAgICAgICAgIGZsb2F0IGFkdmFuY2VzW10sIGludCBhZHZhbmNlc0luZGV4LCBib29sZWFuIGRyYXcsIGZsb2F0IHgsIGZsb2F0IHkpIHsKLSAgICAgICAgTGlzdDxGb250SW5mbz4gZm9udHMgPSBwYWludC5nZXRGb250cygpOwotICAgICAgICBpZiAoZm9udHMgPT0gbnVsbCB8fCBwcmVmZXJyZWRGb250ID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiB4OwotICAgICAgICB9Ci0KLSAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQpIHsKLSAgICAgICAgICAgIGJvb2xlYW4gZm91bmRGb250ID0gZmFsc2U7Ci0gICAgICAgICAgICBpbnQgY2FuRGlzcGxheVVwVG8gPSBwcmVmZXJyZWRGb250Lm1Gb250LmNhbkRpc3BsYXlVcFRvKHRleHQsIHN0YXJ0LCBsaW1pdCk7Ci0gICAgICAgICAgICBpZiAoY2FuRGlzcGxheVVwVG8gPT0gLTEpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyKHN0YXJ0LCBsaW1pdCwgcHJlZmVycmVkRm9udCwgZmxhZywgYWR2YW5jZXMsIGFkdmFuY2VzSW5kZXgsIGRyYXcsCi0gICAgICAgICAgICAgICAgICAgICAgICB4LCB5KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FuRGlzcGxheVVwVG8gPiBzdGFydCkgeyAvLyBjYW4gZHJhdyBzb21ldGhpbmcKLSAgICAgICAgICAgICAgICB4ID0gcmVuZGVyKHN0YXJ0LCBjYW5EaXNwbGF5VXBUbywgcHJlZmVycmVkRm9udCwgZmxhZywgYWR2YW5jZXMsIGFkdmFuY2VzSW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICBkcmF3LCB4LCB5KTsKLSAgICAgICAgICAgICAgICBhZHZhbmNlc0luZGV4ICs9IGNhbkRpc3BsYXlVcFRvIC0gc3RhcnQ7Ci0gICAgICAgICAgICAgICAgc3RhcnQgPSBjYW5EaXNwbGF5VXBUbzsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaW50IGNoYXJDb3VudCA9IENoYXJhY3Rlci5pc0hpZ2hTdXJyb2dhdGUodGV4dFtzdGFydF0pID8gMiA6IDE7Ci0gICAgICAgICAgICBmb3IgKEZvbnRJbmZvIGZvbnQgOiBmb250cykgewotICAgICAgICAgICAgICAgIGNhbkRpc3BsYXlVcFRvID0gZm9udC5tRm9udC5jYW5EaXNwbGF5VXBUbyh0ZXh0LCBzdGFydCwgc3RhcnQgKyBjaGFyQ291bnQpOwotICAgICAgICAgICAgICAgIGlmIChjYW5EaXNwbGF5VXBUbyA9PSAtMSkgewotICAgICAgICAgICAgICAgICAgICB4ID0gcmVuZGVyKHN0YXJ0LCBzdGFydCtjaGFyQ291bnQsIGZvbnQsIGZsYWcsIGFkdmFuY2VzLCBhZHZhbmNlc0luZGV4LCBkcmF3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsIHkpOwotICAgICAgICAgICAgICAgICAgICBzdGFydCArPSBjaGFyQ291bnQ7Ci0gICAgICAgICAgICAgICAgICAgIGFkdmFuY2VzSW5kZXggKz0gY2hhckNvdW50OwotICAgICAgICAgICAgICAgICAgICBmb3VuZEZvbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIWZvdW5kRm9udCkgewotICAgICAgICAgICAgICAgIC8vIE5vIGZvbnQgY2FuIGRpc3BsYXkgdGhpcyBjaGFyLiBVc2UgdGhlIHByZWZlcnJlZCBmb250LiBUaGUgY2hhciB3aWxsIG1vc3QKLSAgICAgICAgICAgICAgICAvLyBwcm9iYWJseSBhcHBlYXIgYXMgYSBib3ggb3IgYSBibGFuayBzcGFjZS4gV2UgY291bGQsIHByb2JhYmx5LCB1c2Ugc29tZQotICAgICAgICAgICAgICAgIC8vIGhldXJpc3RpY3MgYW5kIGJyZWFrIHRoZSBjaGFyYWN0ZXIgaW50byB0aGUgYmFzZSBjaGFyYWN0ZXIgYW5kIGRpYWNyaXRpY3MgYW5kCi0gICAgICAgICAgICAgICAgLy8gdGhlbiBkcmF3IGl0LCBidXQgaXQncyBwcm9iYWJseSBub3Qgd29ydGggdGhlIGVmZm9ydC4KLSAgICAgICAgICAgICAgICB4ID0gcmVuZGVyKHN0YXJ0LCBzdGFydCArIGNoYXJDb3VudCwgcHJlZmVycmVkRm9udCwgZmxhZywgYWR2YW5jZXMsIGFkdmFuY2VzSW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICBkcmF3LCB4LCB5KTsKLSAgICAgICAgICAgICAgICBzdGFydCArPSBjaGFyQ291bnQ7Ci0gICAgICAgICAgICAgICAgYWR2YW5jZXNJbmRleCArPSBjaGFyQ291bnQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHg7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmVuZGVyIHRoZSB0ZXh0IHdpdGggdGhlIGdpdmVuIGZvbnQuCi0gICAgICovCi0gICAgcHJpdmF0ZSBmbG9hdCByZW5kZXIoaW50IHN0YXJ0LCBpbnQgbGltaXQsIEZvbnRJbmZvIGZvbnQsIGludCBmbGFnLCBmbG9hdCBhZHZhbmNlc1tdLAotICAgICAgICAgICAgaW50IGFkdmFuY2VzSW5kZXgsIGJvb2xlYW4gZHJhdywgZmxvYXQgeCwgZmxvYXQgeSkgewotCi0gICAgICAgIGZsb2F0IHRvdGFsQWR2YW5jZSA9IDA7Ci0gICAgICAgIC8vIFNpbmNlIHRoZSBtZXRyaWNzIGRvbid0IGhhdmUgYW50aS1hbGlhc2luZyBzZXQsIHdlIGNyZWF0ZSBhIG5ldyBGb250UmVuZGVyQ29udGV4dCB3aXRoCi0gICAgICAgIC8vIHRoZSBhbnRpLWFsaWFzaW5nIHNldC4KLSAgICAgICAgRm9udFJlbmRlckNvbnRleHQgZiA9IGZvbnQubU1ldHJpY3MuZ2V0Rm9udFJlbmRlckNvbnRleHQoKTsKLSAgICAgICAgRm9udFJlbmRlckNvbnRleHQgZnJjID0gbmV3IEZvbnRSZW5kZXJDb250ZXh0KGYuZ2V0VHJhbnNmb3JtKCksIHBhaW50LmlzQW50aUFsaWFzZWQoKSwKLSAgICAgICAgICAgICAgICBmLnVzZXNGcmFjdGlvbmFsTWV0cmljcygpKTsKLSAgICAgICAgR2x5cGhWZWN0b3IgZ3YgPSBmb250Lm1Gb250LmxheW91dEdseXBoVmVjdG9yKGZyYywgdGV4dCwgc3RhcnQsIGxpbWl0LCBmbGFnKTsKLSAgICAgICAgaW50IG5nID0gZ3YuZ2V0TnVtR2x5cGhzKCk7Ci0gICAgICAgIGludFtdIGNpID0gZ3YuZ2V0R2x5cGhDaGFySW5kaWNlcygwLCBuZywgbnVsbCk7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmc7IGkrKykgewotICAgICAgICAgICAgZmxvYXQgYWR2ID0gZ3YuZ2V0R2x5cGhNZXRyaWNzKGkpLmdldEFkdmFuY2VYKCk7Ci0gICAgICAgICAgICBpZiAoYWR2YW5jZXMgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGludCBhZHZfaWR4ID0gYWR2YW5jZXNJbmRleCArIGNpW2ldOwotICAgICAgICAgICAgICAgIGFkdmFuY2VzW2Fkdl9pZHhdICs9IGFkdjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRvdGFsQWR2YW5jZSArPSBhZHY7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGRyYXcgJiYgZ3JhcGhpY3MgIT0gbnVsbCkgewotICAgICAgICAgICAgZ3JhcGhpY3MuZHJhd0dseXBoVmVjdG9yKGd2LCB4LCB5KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4geCArIHRvdGFsQWR2YW5jZTsKLSAgICB9Ci0KLSAgICAvLyAtLS0gU3RhdGljIGhlbHBlciBtZXRob2RzIC0tLQotCi0gICAgLyogcGFja2FnZSAqLyAgc3RhdGljIExpc3Q8U2NyaXB0UnVuPiBnZXRTY3JpcHRSdW5zKGNoYXJbXSB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCwKLSAgICAgICAgICAgIGJvb2xlYW4gaXNSdGwsIExpc3Q8Rm9udEluZm8+IGZvbnRzKSB7Ci0gICAgICAgIExpbmtlZExpc3Q8U2NyaXB0UnVuPiBzY3JpcHRSdW5zID0gbmV3IExpbmtlZExpc3Q8U2NyaXB0UnVuPigpOwotCi0gICAgICAgIGludCBjb3VudCA9IGxpbWl0IC0gc3RhcnQ7Ci0gICAgICAgIFVTY3JpcHRSdW4gdVNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKHRleHQsIHN0YXJ0LCBjb3VudCk7Ci0gICAgICAgIHdoaWxlICh1U2NyaXB0UnVuLm5leHQoKSkgewotICAgICAgICAgICAgaW50IHNjcmlwdFN0YXJ0ID0gdVNjcmlwdFJ1bi5nZXRTY3JpcHRTdGFydCgpOwotICAgICAgICAgICAgaW50IHNjcmlwdExpbWl0ID0gdVNjcmlwdFJ1bi5nZXRTY3JpcHRMaW1pdCgpOwotICAgICAgICAgICAgU2NyaXB0UnVuIHJ1biA9IG5ldyBTY3JpcHRSdW4oc2NyaXB0U3RhcnQsIHNjcmlwdExpbWl0LCBpc1J0bCk7Ci0gICAgICAgICAgICBydW4uc2NyaXB0Q29kZSA9IHVTY3JpcHRSdW4uZ2V0U2NyaXB0Q29kZSgpOwotICAgICAgICAgICAgc2V0U2NyaXB0Rm9udCh0ZXh0LCBydW4sIGZvbnRzKTsKLSAgICAgICAgICAgIHNjcmlwdFJ1bnMuYWRkKHJ1bik7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gc2NyaXB0UnVuczsKLSAgICB9Ci0KLSAgICAvLyBUT0RPOiBSZXBsYWNlIHRoaXMgbWV0aG9kIHdpdGggb25lIHdoaWNoIHJldHVybnMgdGhlIGZvbnQgYmFzZWQgb24gdGhlIHNjcmlwdENvZGUuCi0gICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBzZXRTY3JpcHRGb250KGNoYXJbXSB0ZXh0LCBTY3JpcHRSdW4gcnVuLAotICAgICAgICAgICAgTGlzdDxGb250SW5mbz4gZm9udHMpIHsKLSAgICAgICAgZm9yIChGb250SW5mbyBmb250SW5mbyA6IGZvbnRzKSB7Ci0gICAgICAgICAgICBpZiAoZm9udEluZm8ubUZvbnQuY2FuRGlzcGxheVVwVG8odGV4dCwgcnVuLnN0YXJ0LCBydW4ubGltaXQpID09IC0xKSB7Ci0gICAgICAgICAgICAgICAgcnVuLmZvbnQgPSBmb250SW5mbzsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcnVuLmZvbnQgPSBmb250cy5nZXQoMCk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9CaXRtYXBGYWN0b3J5X0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0JpdG1hcEZhY3RvcnlfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDRjZTlkMC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0JpdG1hcEZhY3RvcnlfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE4NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5CcmlkZ2U7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLkRlbGVnYXRlTWFuYWdlcjsKLWltcG9ydCBjb20uYW5kcm9pZC5uaW5lcGF0Y2guTmluZVBhdGNoQ2h1bms7Ci1pbXBvcnQgY29tLmFuZHJvaWQucmVzb3VyY2VzLkRlbnNpdHk7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5CcmlkZ2VSZXNvdXJjZXMuTmluZVBhdGNoSW5wdXRTdHJlYW07Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXBGYWN0b3J5Lk9wdGlvbnM7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXBfRGVsZWdhdGUuQml0bWFwQ3JlYXRlRmxhZ3M7Ci0KLWltcG9ydCBqYXZhLmlvLkZpbGVEZXNjcmlwdG9yOwotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLnV0aWwuRW51bVNldDsKLWltcG9ydCBqYXZhLnV0aWwuU2V0OwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXBGYWN0b3J5Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgQml0bWFwRmFjdG9yeSBoYXZlIGJlZW4KLSAqIHJlcGxhY2VkIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIEJlY2F1c2UgaXQncyBhIHN0YXRlbGVzcyBjbGFzcyB0byBzdGFydCB3aXRoLCB0aGVyZSdzIG5vIG5lZWQgdG8ga2VlcCBhIHtAbGluayBEZWxlZ2F0ZU1hbmFnZXJ9Ci0gKiBhcm91bmQgdG8gbWFwIGludCB0byBpbnN0YW5jZSBvZiB0aGUgZGVsZWdhdGUuCi0gKgotICovCi0vKnBhY2thZ2UqLyBjbGFzcyBCaXRtYXBGYWN0b3J5X0RlbGVnYXRlIHsKLQotICAgIC8vIC0tLS0tLSBKYXZhIGRlbGVnYXRlcyAtLS0tLS0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBCaXRtYXAgZmluaXNoRGVjb2RlKEJpdG1hcCBibSwgUmVjdCBvdXRQYWRkaW5nLCBPcHRpb25zIG9wdHMpIHsKLSAgICAgICAgaWYgKGJtID09IG51bGwgfHwgb3B0cyA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gYm07Ci0gICAgICAgIH0KLQotICAgICAgICBmaW5hbCBpbnQgZGVuc2l0eSA9IG9wdHMuaW5EZW5zaXR5OwotICAgICAgICBpZiAoZGVuc2l0eSA9PSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gYm07Ci0gICAgICAgIH0KLQotICAgICAgICBibS5zZXREZW5zaXR5KGRlbnNpdHkpOwotICAgICAgICBmaW5hbCBpbnQgdGFyZ2V0RGVuc2l0eSA9IG9wdHMuaW5UYXJnZXREZW5zaXR5OwotICAgICAgICBpZiAodGFyZ2V0RGVuc2l0eSA9PSAwIHx8IGRlbnNpdHkgPT0gdGFyZ2V0RGVuc2l0eSB8fCBkZW5zaXR5ID09IG9wdHMuaW5TY3JlZW5EZW5zaXR5KSB7Ci0gICAgICAgICAgICByZXR1cm4gYm07Ci0gICAgICAgIH0KLQotICAgICAgICBieXRlW10gbnAgPSBibS5nZXROaW5lUGF0Y2hDaHVuaygpOwotICAgICAgICBmaW5hbCBib29sZWFuIGlzTmluZVBhdGNoID0gbnAgIT0gbnVsbCAmJiBOaW5lUGF0Y2guaXNOaW5lUGF0Y2hDaHVuayhucCk7Ci0gICAgICAgIC8vIERFTEVHQVRFIENIQU5HRTogbmV2ZXIgc2NhbGUgOS1wYXRjaAotICAgICAgICBpZiAob3B0cy5pblNjYWxlZCAmJiBpc05pbmVQYXRjaCA9PSBmYWxzZSkgewotICAgICAgICAgICAgZmxvYXQgc2NhbGUgPSB0YXJnZXREZW5zaXR5IC8gKGZsb2F0KWRlbnNpdHk7Ci0gICAgICAgICAgICAvLyBUT0RPOiBUaGlzIGlzIHZlcnkgaW5lZmZpY2llbnQgYW5kIHNob3VsZCBiZSBkb25lIGluIG5hdGl2ZSBieSBTa2lhCi0gICAgICAgICAgICBmaW5hbCBCaXRtYXAgb2xkQml0bWFwID0gYm07Ci0gICAgICAgICAgICBibSA9IEJpdG1hcC5jcmVhdGVTY2FsZWRCaXRtYXAob2xkQml0bWFwLCAoaW50KSAoYm0uZ2V0V2lkdGgoKSAqIHNjYWxlICsgMC41ZiksCi0gICAgICAgICAgICAgICAgICAgIChpbnQpIChibS5nZXRIZWlnaHQoKSAqIHNjYWxlICsgMC41ZiksIHRydWUpOwotICAgICAgICAgICAgb2xkQml0bWFwLnJlY3ljbGUoKTsKLQotICAgICAgICAgICAgaWYgKGlzTmluZVBhdGNoKSB7Ci0gICAgICAgICAgICAgICAgbnAgPSBuYXRpdmVTY2FsZU5pbmVQYXRjaChucCwgc2NhbGUsIG91dFBhZGRpbmcpOwotICAgICAgICAgICAgICAgIGJtLnNldE5pbmVQYXRjaENodW5rKG5wKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJtLnNldERlbnNpdHkodGFyZ2V0RGVuc2l0eSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gYm07Ci0gICAgfQotCi0KLSAgICAvLyAtLS0tLS0gTmF0aXZlIERlbGVnYXRlcyAtLS0tLS0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBCaXRtYXAgbmF0aXZlRGVjb2RlU3RyZWFtKElucHV0U3RyZWFtIGlzLCBieXRlW10gc3RvcmFnZSwKLSAgICAgICAgICAgIFJlY3QgcGFkZGluZywgT3B0aW9ucyBvcHRzKSB7Ci0gICAgICAgIHJldHVybiBuYXRpdmVEZWNvZGVTdHJlYW0oaXMsIHN0b3JhZ2UsIHBhZGRpbmcsIG9wdHMsIGZhbHNlLCAxLmYpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyAgQml0bWFwIG5hdGl2ZURlY29kZVN0cmVhbShJbnB1dFN0cmVhbSBpcywgYnl0ZVtdIHN0b3JhZ2UsCi0gICAgICAgICAgICBSZWN0IHBhZGRpbmcsIE9wdGlvbnMgb3B0cywgYm9vbGVhbiBhcHBseVNjYWxlLCBmbG9hdCBzY2FsZSkgewotICAgICAgICBCaXRtYXAgYm0gPSBudWxsOwotCi0gICAgICAgIC8vVE9ETyBzdXBwb3J0IHJlc2NhbGluZwotCi0gICAgICAgIERlbnNpdHkgZGVuc2l0eSA9IERlbnNpdHkuTUVESVVNOwotICAgICAgICBTZXQ8Qml0bWFwQ3JlYXRlRmxhZ3M+IGJpdG1hcENyZWF0ZUZsYWdzID0gRW51bVNldC5vZihCaXRtYXBDcmVhdGVGbGFncy5NVVRBQkxFKTsKLSAgICAgICAgaWYgKG9wdHMgIT0gbnVsbCkgewotICAgICAgICAgICAgZGVuc2l0eSA9IERlbnNpdHkuZ2V0RW51bShvcHRzLmluRGVuc2l0eSk7Ci0gICAgICAgICAgICBpZiAob3B0cy5pblByZW11bHRpcGxpZWQpIHsKLSAgICAgICAgICAgICAgICBiaXRtYXBDcmVhdGVGbGFncy5hZGQoQml0bWFwQ3JlYXRlRmxhZ3MuUFJFTVVMVElQTElFRCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICB0cnkgewotICAgICAgICAgICAgaWYgKGlzIGluc3RhbmNlb2YgTmluZVBhdGNoSW5wdXRTdHJlYW0pIHsKLSAgICAgICAgICAgICAgICBOaW5lUGF0Y2hJbnB1dFN0cmVhbSBucGlzID0gKE5pbmVQYXRjaElucHV0U3RyZWFtKSBpczsKLSAgICAgICAgICAgICAgICBucGlzLmRpc2FibGVGYWtlTWFya1N1cHBvcnQoKTsKLQotICAgICAgICAgICAgICAgIC8vIGxvYWQgdGhlIGJpdG1hcCBhcyBhIG5pbmUgcGF0Y2gKLSAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC5uaW5lcGF0Y2guTmluZVBhdGNoIG5pbmVQYXRjaCA9IGNvbS5hbmRyb2lkLm5pbmVwYXRjaC5OaW5lUGF0Y2gubG9hZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIG5waXMsIHRydWUgLyppczlQYXRjaCovLCBmYWxzZSAvKmNvbnZlcnQqLyk7Ci0KLSAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIGJpdG1hcCBhbmQgY2h1bmsgb2JqZWN0cy4KLSAgICAgICAgICAgICAgICBibSA9IEJpdG1hcF9EZWxlZ2F0ZS5jcmVhdGVCaXRtYXAobmluZVBhdGNoLmdldEltYWdlKCksIGJpdG1hcENyZWF0ZUZsYWdzLAotICAgICAgICAgICAgICAgICAgICAgICAgZGVuc2l0eSk7Ci0gICAgICAgICAgICAgICAgTmluZVBhdGNoQ2h1bmsgY2h1bmsgPSBuaW5lUGF0Y2guZ2V0Q2h1bmsoKTsKLQotICAgICAgICAgICAgICAgIC8vIHB1dCB0aGUgY2h1bmsgaW4gdGhlIGJpdG1hcAotICAgICAgICAgICAgICAgIGJtLnNldE5pbmVQYXRjaENodW5rKE5pbmVQYXRjaF9EZWxlZ2F0ZS5zZXJpYWxpemUoY2h1bmspKTsKLQotICAgICAgICAgICAgICAgIC8vIHJlYWQgdGhlIHBhZGRpbmcKLSAgICAgICAgICAgICAgICBpbnRbXSBwYWRkaW5nYXJyYXkgPSBjaHVuay5nZXRQYWRkaW5nKCk7Ci0gICAgICAgICAgICAgICAgcGFkZGluZy5sZWZ0ID0gcGFkZGluZ2FycmF5WzBdOwotICAgICAgICAgICAgICAgIHBhZGRpbmcudG9wID0gcGFkZGluZ2FycmF5WzFdOwotICAgICAgICAgICAgICAgIHBhZGRpbmcucmlnaHQgPSBwYWRkaW5nYXJyYXlbMl07Ci0gICAgICAgICAgICAgICAgcGFkZGluZy5ib3R0b20gPSBwYWRkaW5nYXJyYXlbM107Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIGxvYWQgdGhlIGJpdG1hcCBkaXJlY3RseS4KLSAgICAgICAgICAgICAgICBibSA9IEJpdG1hcF9EZWxlZ2F0ZS5jcmVhdGVCaXRtYXAoaXMsIGJpdG1hcENyZWF0ZUZsYWdzLCBkZW5zaXR5KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewotICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKG51bGwsIkZhaWxlZCB0byBsb2FkIGltYWdlIiAsIGUsIG51bGwpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGJtOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBCaXRtYXAgbmF0aXZlRGVjb2RlRmlsZURlc2NyaXB0b3IoRmlsZURlc2NyaXB0b3IgZmQsCi0gICAgICAgICAgICBSZWN0IHBhZGRpbmcsIE9wdGlvbnMgb3B0cykgewotICAgICAgICBvcHRzLmluQml0bWFwID0gbnVsbDsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIEJpdG1hcCBuYXRpdmVEZWNvZGVBc3NldChpbnQgYXNzZXQsIFJlY3QgcGFkZGluZywgT3B0aW9ucyBvcHRzKSB7Ci0gICAgICAgIG9wdHMuaW5CaXRtYXAgPSBudWxsOwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgQml0bWFwIG5hdGl2ZURlY29kZUFzc2V0KGludCBhc3NldCwgUmVjdCBwYWRkaW5nLCBPcHRpb25zIG9wdHMsCi0gICAgICAgICAgICBib29sZWFuIGFwcGx5U2NhbGUsIGZsb2F0IHNjYWxlKSB7Ci0gICAgICAgIG9wdHMuaW5CaXRtYXAgPSBudWxsOwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgQml0bWFwIG5hdGl2ZURlY29kZUJ5dGVBcnJheShieXRlW10gZGF0YSwgaW50IG9mZnNldCwKLSAgICAgICAgICAgIGludCBsZW5ndGgsIE9wdGlvbnMgb3B0cykgewotICAgICAgICBvcHRzLmluQml0bWFwID0gbnVsbDsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJ5dGVbXSBuYXRpdmVTY2FsZU5pbmVQYXRjaChieXRlW10gY2h1bmssIGZsb2F0IHNjYWxlLCBSZWN0IHBhZCkgewotICAgICAgICAvLyBkb24ndCBzY2FsZSBmb3Igbm93LiBUaGlzIHNob3VsZCBub3QgYmUgY2FsbGVkIGFueXdheSBzaW5jZSB3ZSByZS1pbXBsZW1lbnQKLSAgICAgICAgLy8gQml0bWFwRmFjdG9yeS5maW5pc2hEZWNvZGUoKTsKLSAgICAgICAgcmV0dXJuIGNodW5rOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZUlzU2Vla2FibGUoRmlsZURlc2NyaXB0b3IgZmQpIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9CaXRtYXBTaGFkZXJfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvQml0bWFwU2hhZGVyX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1YTc1YjAuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9CaXRtYXBTaGFkZXJfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDI1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkxheW91dExvZzsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLkJyaWRnZTsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRGVsZWdhdGVNYW5hZ2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuU2hhZGVyLlRpbGVNb2RlOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXBTaGFkZXIKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBCaXRtYXBTaGFkZXIgaGF2ZSBiZWVuCi0gKiByZXBsYWNlZCBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgQml0bWFwU2hhZGVyIGNsYXNzLgotICoKLSAqIEJlY2F1c2UgdGhpcyBleHRlbmRzIHtAbGluayBTaGFkZXJfRGVsZWdhdGV9LCB0aGVyZSdzIG5vIG5lZWQgdG8gdXNlIGEge0BsaW5rIERlbGVnYXRlTWFuYWdlcn0sCi0gKiBhcyBhbGwgdGhlIFNoYWRlciBjbGFzc2VzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIG1hbmFnZXIgb3duZWQgYnkge0BsaW5rIFNoYWRlcl9EZWxlZ2F0ZX0uCi0gKgotICogQHNlZSBTaGFkZXJfRGVsZWdhdGUKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBCaXRtYXBTaGFkZXJfRGVsZWdhdGUgZXh0ZW5kcyBTaGFkZXJfRGVsZWdhdGUgewotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBkYXRhIC0tLS0KLSAgICBwcml2YXRlIGphdmEuYXd0LlBhaW50IG1KYXZhUGFpbnQ7Ci0KLSAgICAvLyAtLS0tIFB1YmxpYyBIZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgamF2YS5hd3QuUGFpbnQgZ2V0SmF2YVBhaW50KCkgewotICAgICAgICByZXR1cm4gbUphdmFQYWludDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBpc1N1cHBvcnRlZCgpIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRTdXBwb3J0TWVzc2FnZSgpIHsKLSAgICAgICAgLy8gbm8gbWVzc2FnZSBzaW5jZSBpc1N1cHBvcnRlZCByZXR1cm5zIHRydWU7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVDcmVhdGUoaW50IG5hdGl2ZV9iaXRtYXAsIGludCBzaGFkZXJUaWxlTW9kZVgsCi0gICAgICAgICAgICBpbnQgc2hhZGVyVGlsZU1vZGVZKSB7Ci0gICAgICAgIEJpdG1hcF9EZWxlZ2F0ZSBiaXRtYXAgPSBCaXRtYXBfRGVsZWdhdGUuZ2V0RGVsZWdhdGUobmF0aXZlX2JpdG1hcCk7Ci0gICAgICAgIGlmIChiaXRtYXAgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICBCaXRtYXBTaGFkZXJfRGVsZWdhdGUgbmV3RGVsZWdhdGUgPSBuZXcgQml0bWFwU2hhZGVyX0RlbGVnYXRlKAotICAgICAgICAgICAgICAgIGJpdG1hcC5nZXRJbWFnZSgpLAotICAgICAgICAgICAgICAgIFNoYWRlcl9EZWxlZ2F0ZS5nZXRUaWxlTW9kZShzaGFkZXJUaWxlTW9kZVgpLAotICAgICAgICAgICAgICAgIFNoYWRlcl9EZWxlZ2F0ZS5nZXRUaWxlTW9kZShzaGFkZXJUaWxlTW9kZVkpKTsKLSAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmFkZE5ld0RlbGVnYXRlKG5ld0RlbGVnYXRlKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZVBvc3RDcmVhdGUoaW50IG5hdGl2ZV9zaGFkZXIsIGludCBuYXRpdmVfYml0bWFwLAotICAgICAgICAgICAgaW50IHNoYWRlclRpbGVNb2RlWCwgaW50IHNoYWRlclRpbGVNb2RlWSkgewotICAgICAgICAvLyBwYXNzLCBub3QgbmVlZGVkLgotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgcHJpdmF0ZSBCaXRtYXBTaGFkZXJfRGVsZWdhdGUoamF2YS5hd3QuaW1hZ2UuQnVmZmVyZWRJbWFnZSBpbWFnZSwKLSAgICAgICAgICAgIFRpbGVNb2RlIHRpbGVNb2RlWCwgVGlsZU1vZGUgdGlsZU1vZGVZKSB7Ci0gICAgICAgIG1KYXZhUGFpbnQgPSBuZXcgQml0bWFwU2hhZGVyUGFpbnQoaW1hZ2UsIHRpbGVNb2RlWCwgdGlsZU1vZGVZKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIGNsYXNzIEJpdG1hcFNoYWRlclBhaW50IGltcGxlbWVudHMgamF2YS5hd3QuUGFpbnQgewotICAgICAgICBwcml2YXRlIGZpbmFsIGphdmEuYXd0LmltYWdlLkJ1ZmZlcmVkSW1hZ2UgbUltYWdlOwotICAgICAgICBwcml2YXRlIGZpbmFsIFRpbGVNb2RlIG1UaWxlTW9kZVg7Ci0gICAgICAgIHByaXZhdGUgZmluYWwgVGlsZU1vZGUgbVRpbGVNb2RlWTsKLQotICAgICAgICBCaXRtYXBTaGFkZXJQYWludChqYXZhLmF3dC5pbWFnZS5CdWZmZXJlZEltYWdlIGltYWdlLAotICAgICAgICAgICAgICAgIFRpbGVNb2RlIHRpbGVNb2RlWCwgVGlsZU1vZGUgdGlsZU1vZGVZKSB7Ci0gICAgICAgICAgICBtSW1hZ2UgPSBpbWFnZTsKLSAgICAgICAgICAgIG1UaWxlTW9kZVggPSB0aWxlTW9kZVg7Ci0gICAgICAgICAgICBtVGlsZU1vZGVZID0gdGlsZU1vZGVZOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBqYXZhLmF3dC5QYWludENvbnRleHQgY3JlYXRlQ29udGV4dCgKLSAgICAgICAgICAgICAgICBqYXZhLmF3dC5pbWFnZS5Db2xvck1vZGVsICAgICAgY29sb3JNb2RlbCwKLSAgICAgICAgICAgICAgICBqYXZhLmF3dC5SZWN0YW5nbGUgICAgICAgICAgICAgZGV2aWNlQm91bmRzLAotICAgICAgICAgICAgICAgIGphdmEuYXd0Lmdlb20uUmVjdGFuZ2xlMkQgICAgICB1c2VyQm91bmRzLAotICAgICAgICAgICAgICAgIGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtICB4Zm9ybSwKLSAgICAgICAgICAgICAgICBqYXZhLmF3dC5SZW5kZXJpbmdIaW50cyAgICAgICAgaGludHMpIHsKLQotICAgICAgICAgICAgamF2YS5hd3QuZ2VvbS5BZmZpbmVUcmFuc2Zvcm0gY2FudmFzTWF0cml4OwotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBjYW52YXNNYXRyaXggPSB4Zm9ybS5jcmVhdGVJbnZlcnNlKCk7Ci0gICAgICAgICAgICB9IGNhdGNoIChqYXZhLmF3dC5nZW9tLk5vbmludmVydGlibGVUcmFuc2Zvcm1FeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5maWRlbGl0eVdhcm5pbmcoTGF5b3V0TG9nLlRBR19NQVRSSVhfSU5WRVJTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJVbmFibGUgdG8gaW52ZXJzZSBtYXRyaXggaW4gQml0bWFwU2hhZGVyIiwgZSwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgICAgICAgICAgY2FudmFzTWF0cml4ID0gbmV3IGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtIGxvY2FsTWF0cml4ID0gZ2V0TG9jYWxNYXRyaXgoKTsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgbG9jYWxNYXRyaXggPSBsb2NhbE1hdHJpeC5jcmVhdGVJbnZlcnNlKCk7Ci0gICAgICAgICAgICB9IGNhdGNoIChqYXZhLmF3dC5nZW9tLk5vbmludmVydGlibGVUcmFuc2Zvcm1FeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5maWRlbGl0eVdhcm5pbmcoTGF5b3V0TG9nLlRBR19NQVRSSVhfSU5WRVJTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJVbmFibGUgdG8gaW52ZXJzZSBtYXRyaXggaW4gQml0bWFwU2hhZGVyIiwgZSwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgICAgICAgICAgbG9jYWxNYXRyaXggPSBuZXcgamF2YS5hd3QuZ2VvbS5BZmZpbmVUcmFuc2Zvcm0oKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIG5ldyBCaXRtYXBTaGFkZXJDb250ZXh0KGNhbnZhc01hdHJpeCwgbG9jYWxNYXRyaXgsIGNvbG9yTW9kZWwpOwotICAgICAgICB9Ci0KLSAgICAgICAgcHJpdmF0ZSBjbGFzcyBCaXRtYXBTaGFkZXJDb250ZXh0IGltcGxlbWVudHMgamF2YS5hd3QuUGFpbnRDb250ZXh0IHsKLQotICAgICAgICAgICAgcHJpdmF0ZSBmaW5hbCBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybSBtQ2FudmFzTWF0cml4OwotICAgICAgICAgICAgcHJpdmF0ZSBmaW5hbCBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybSBtTG9jYWxNYXRyaXg7Ci0gICAgICAgICAgICBwcml2YXRlIGZpbmFsIGphdmEuYXd0LmltYWdlLkNvbG9yTW9kZWwgbUNvbG9yTW9kZWw7Ci0KLSAgICAgICAgICAgIHB1YmxpYyBCaXRtYXBTaGFkZXJDb250ZXh0KAotICAgICAgICAgICAgICAgICAgICBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybSBjYW52YXNNYXRyaXgsCi0gICAgICAgICAgICAgICAgICAgIGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtIGxvY2FsTWF0cml4LAotICAgICAgICAgICAgICAgICAgICBqYXZhLmF3dC5pbWFnZS5Db2xvck1vZGVsIGNvbG9yTW9kZWwpIHsKLSAgICAgICAgICAgICAgICBtQ2FudmFzTWF0cml4ID0gY2FudmFzTWF0cml4OwotICAgICAgICAgICAgICAgIG1Mb2NhbE1hdHJpeCA9IGxvY2FsTWF0cml4OwotICAgICAgICAgICAgICAgIG1Db2xvck1vZGVsID0gY29sb3JNb2RlbDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCBkaXNwb3NlKCkgewotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBqYXZhLmF3dC5pbWFnZS5Db2xvck1vZGVsIGdldENvbG9yTW9kZWwoKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1Db2xvck1vZGVsOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBqYXZhLmF3dC5pbWFnZS5SYXN0ZXIgZ2V0UmFzdGVyKGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSB7Ci0gICAgICAgICAgICAgICAgamF2YS5hd3QuaW1hZ2UuQnVmZmVyZWRJbWFnZSBpbWFnZSA9IG5ldyBqYXZhLmF3dC5pbWFnZS5CdWZmZXJlZEltYWdlKHcsIGgsCi0gICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmF3dC5pbWFnZS5CdWZmZXJlZEltYWdlLlRZUEVfSU5UX0FSR0IpOwotCi0gICAgICAgICAgICAgICAgaW50W10gZGF0YSA9IG5ldyBpbnRbdypoXTsKLQotICAgICAgICAgICAgICAgIGludCBpbmRleCA9IDA7Ci0gICAgICAgICAgICAgICAgZmxvYXRbXSBwdDEgPSBuZXcgZmxvYXRbMl07Ci0gICAgICAgICAgICAgICAgZmxvYXRbXSBwdDIgPSBuZXcgZmxvYXRbMl07Ci0gICAgICAgICAgICAgICAgZm9yIChpbnQgaXkgPSAwIDsgaXkgPCBoIDsgaXkrKykgewotICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpeCA9IDAgOyBpeCA8IHcgOyBpeCsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgdGhlIGNhbnZhcyB0cmFuc2Zvcm0KLSAgICAgICAgICAgICAgICAgICAgICAgIHB0MVswXSA9IHggKyBpeDsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB0MVsxXSA9IHkgKyBpeTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1DYW52YXNNYXRyaXgudHJhbnNmb3JtKHB0MSwgMCwgcHQyLCAwLCAxKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBsb2NhbCBtYXRyaXguCi0gICAgICAgICAgICAgICAgICAgICAgICBwdDFbMF0gPSBwdDJbMF07Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdDFbMV0gPSBwdDJbMV07Ci0gICAgICAgICAgICAgICAgICAgICAgICBtTG9jYWxNYXRyaXgudHJhbnNmb3JtKHB0MSwgMCwgcHQyLCAwLCAxKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtpbmRleCsrXSA9IGdldENvbG9yKHB0MlswXSwgcHQyWzFdKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGltYWdlLnNldFJHQigwIC8qc3RhcnRYKi8sIDAgLypzdGFydFkqLywgdywgaCwgZGF0YSwgMCAvKm9mZnNldCovLCB3IC8qc2NhbnNpemUqLyk7Ci0KLSAgICAgICAgICAgICAgICByZXR1cm4gaW1hZ2UuZ2V0UmFzdGVyKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvKioKLSAgICAgICAgICogUmV0dXJucyBhIGNvbG9yIGZvciBhbiBhcmJpdHJhcnkgcG9pbnQuCi0gICAgICAgICAqLwotICAgICAgICBwcml2YXRlIGludCBnZXRDb2xvcihmbG9hdCBmeCwgZmxvYXQgZnkpIHsKLSAgICAgICAgICAgIGludCB4ID0gZ2V0Q29vcmRpbmF0ZShNYXRoLnJvdW5kKGZ4KSwgbUltYWdlLmdldFdpZHRoKCksIG1UaWxlTW9kZVgpOwotICAgICAgICAgICAgaW50IHkgPSBnZXRDb29yZGluYXRlKE1hdGgucm91bmQoZnkpLCBtSW1hZ2UuZ2V0SGVpZ2h0KCksIG1UaWxlTW9kZVkpOwotCi0gICAgICAgICAgICByZXR1cm4gbUltYWdlLmdldFJHQih4LCB5KTsKLSAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGUgaW50IGdldENvb3JkaW5hdGUoaW50IGksIGludCBzaXplLCBUaWxlTW9kZSBtb2RlKSB7Ci0gICAgICAgICAgICBpZiAoaSA8IDApIHsKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKG1vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBDTEFNUDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGkgPSAwOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgUkVQRUFUOgotICAgICAgICAgICAgICAgICAgICAgICAgaSA9IHNpemUgLSAxIC0gKC1pICUgc2l6ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBNSVJST1I6Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIHRoZSBzYW1lIGFzIHRoZSBwb3NpdGl2ZSBzaWRlLCBqdXN0IG1ha2UgdGhlIHZhbHVlIHBvc2l0aXZlCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBmaXJzdC4KLSAgICAgICAgICAgICAgICAgICAgICAgIGkgPSAtaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb3VudCA9IGkgLyBzaXplOwotICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGkgJSBzaXplOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGNvdW50ICUgMikgPT0gMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBzaXplIC0gMSAtIGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGkgPj0gc2l6ZSkgewotICAgICAgICAgICAgICAgIHN3aXRjaCAobW9kZSkgewotICAgICAgICAgICAgICAgICAgICBjYXNlIENMQU1QOgotICAgICAgICAgICAgICAgICAgICAgICAgaSA9IHNpemUgLSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgUkVQRUFUOgotICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGkgJSBzaXplOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgTUlSUk9SOgotICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50ID0gaSAvIHNpemU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpID0gaSAlIHNpemU7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoY291bnQgJSAyKSA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaSA9IHNpemUgLSAxIC0gaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIGk7Ci0gICAgICAgIH0KLQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgaW50IGdldFRyYW5zcGFyZW5jeSgpIHsKLSAgICAgICAgICAgIHJldHVybiBqYXZhLmF3dC5QYWludC5UUkFOU0xVQ0VOVDsKLSAgICAgICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvQml0bWFwX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0JpdG1hcF9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYzI4NGFjLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvQml0bWFwX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw2NTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5MYXlvdXRMb2c7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5CcmlkZ2U7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLkRlbGVnYXRlTWFuYWdlcjsKLWltcG9ydCBjb20uYW5kcm9pZC5yZXNvdXJjZXMuRGVuc2l0eTsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLkJpdG1hcC5Db25maWc7Ci1pbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWw7Ci0KLWltcG9ydCBqYXZhLmF3dC5HcmFwaGljczJEOwotaW1wb3J0IGphdmEuYXd0LmltYWdlLkJ1ZmZlcmVkSW1hZ2U7Ci1pbXBvcnQgamF2YS5pby5GaWxlOwotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLm5pby5CdWZmZXI7Ci1pbXBvcnQgamF2YS51dGlsLkFycmF5czsKLWltcG9ydCBqYXZhLnV0aWwuRW51bVNldDsKLWltcG9ydCBqYXZhLnV0aWwuU2V0OwotCi1pbXBvcnQgamF2YXguaW1hZ2Vpby5JbWFnZUlPOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXAKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBCaXRtYXAgaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgQml0bWFwIGNsYXNzLgotICoKLSAqIEBzZWUgRGVsZWdhdGVNYW5hZ2VyCi0gKgotICovCi1wdWJsaWMgZmluYWwgY2xhc3MgQml0bWFwX0RlbGVnYXRlIHsKLQotICAgIHB1YmxpYyBlbnVtIEJpdG1hcENyZWF0ZUZsYWdzIHsKLSAgICAgICAgUFJFTVVMVElQTElFRCwgTVVUQUJMRQotICAgIH0KLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgbWFuYWdlciAtLS0tCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRGVsZWdhdGVNYW5hZ2VyPEJpdG1hcF9EZWxlZ2F0ZT4gc01hbmFnZXIgPQotICAgICAgICAgICAgbmV3IERlbGVnYXRlTWFuYWdlcjxCaXRtYXBfRGVsZWdhdGU+KEJpdG1hcF9EZWxlZ2F0ZS5jbGFzcyk7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGhlbHBlciBkYXRhIC0tLS0KLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgZGF0YSAtLS0tCi0gICAgcHJpdmF0ZSBmaW5hbCBDb25maWcgbUNvbmZpZzsKLSAgICBwcml2YXRlIEJ1ZmZlcmVkSW1hZ2UgbUltYWdlOwotICAgIHByaXZhdGUgYm9vbGVhbiBtSGFzQWxwaGEgPSB0cnVlOwotICAgIHByaXZhdGUgYm9vbGVhbiBtSGFzTWlwTWFwID0gZmFsc2U7ICAgICAgLy8gVE9ETzogY2hlY2sgdGhlIGRlZmF1bHQuCi0gICAgcHJpdmF0ZSBpbnQgbUdlbmVyYXRpb25JZCA9IDA7Ci0KLQotICAgIC8vIC0tLS0gUHVibGljIEhlbHBlciBtZXRob2RzIC0tLS0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIG5hdGl2ZSBkZWxlZ2F0ZSBhc3NvY2lhdGVkIHRvIGEgZ2l2ZW4ge0BsaW5rIEJpdG1hcF9EZWxlZ2F0ZX0gb2JqZWN0LgotICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgQml0bWFwX0RlbGVnYXRlIGdldERlbGVnYXRlKEJpdG1hcCBiaXRtYXApIHsKLSAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmdldERlbGVnYXRlKGJpdG1hcC5tTmF0aXZlQml0bWFwKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBuYXRpdmUgZGVsZWdhdGUgYXNzb2NpYXRlZCB0byBhIGdpdmVuIGFuIGludCByZWZlcmVuY2luZyBhIHtAbGluayBCaXRtYXB9IG9iamVjdC4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIEJpdG1hcF9EZWxlZ2F0ZSBnZXREZWxlZ2F0ZShpbnQgbmF0aXZlX2JpdG1hcCkgewotICAgICAgICByZXR1cm4gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX2JpdG1hcCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIHtAbGluayBCaXRtYXB9IGluaXRpYWxpemVkIHdpdGggdGhlIGdpdmVuIGZpbGUgY29udGVudC4KLSAgICAgKgotICAgICAqIEBwYXJhbSBpbnB1dCB0aGUgZmlsZSBmcm9tIHdoaWNoIHRvIHJlYWQgdGhlIGJpdG1hcCBjb250ZW50Ci0gICAgICogQHBhcmFtIGlzTXV0YWJsZSB3aGV0aGVyIHRoZSBiaXRtYXAgaXMgbXV0YWJsZQotICAgICAqIEBwYXJhbSBkZW5zaXR5IHRoZSBkZW5zaXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgYml0bWFwCi0gICAgICoKLSAgICAgKiBAc2VlIEJpdG1hcCNpc011dGFibGUoKQotICAgICAqIEBzZWUgQml0bWFwI2dldERlbnNpdHkoKQotICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgQml0bWFwIGNyZWF0ZUJpdG1hcChGaWxlIGlucHV0LCBib29sZWFuIGlzTXV0YWJsZSwgRGVuc2l0eSBkZW5zaXR5KQotICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUJpdG1hcChpbnB1dCwgZ2V0UHJlbXVsdGlwbGllZEJpdG1hcENyZWF0ZUZsYWdzKGlzTXV0YWJsZSksIGRlbnNpdHkpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSB7QGxpbmsgQml0bWFwfSBpbml0aWFsaXplZCB3aXRoIHRoZSBnaXZlbiBmaWxlIGNvbnRlbnQuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gaW5wdXQgdGhlIGZpbGUgZnJvbSB3aGljaCB0byByZWFkIHRoZSBiaXRtYXAgY29udGVudAotICAgICAqIEBwYXJhbSBkZW5zaXR5IHRoZSBkZW5zaXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgYml0bWFwCi0gICAgICoKLSAgICAgKiBAc2VlIEJpdG1hcCNpc1ByZW11bHRpcGxpZWQoKQotICAgICAqIEBzZWUgQml0bWFwI2lzTXV0YWJsZSgpCi0gICAgICogQHNlZSBCaXRtYXAjZ2V0RGVuc2l0eSgpCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBCaXRtYXAgY3JlYXRlQml0bWFwKEZpbGUgaW5wdXQsIFNldDxCaXRtYXBDcmVhdGVGbGFncz4gY3JlYXRlRmxhZ3MsCi0gICAgICAgICAgICBEZW5zaXR5IGRlbnNpdHkpIHRocm93cyBJT0V4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIGNyZWF0ZSBhIGRlbGVnYXRlIHdpdGggdGhlIGNvbnRlbnQgb2YgdGhlIGZpbGUuCi0gICAgICAgIEJpdG1hcF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IG5ldyBCaXRtYXBfRGVsZWdhdGUoSW1hZ2VJTy5yZWFkKGlucHV0KSwgQ29uZmlnLkFSR0JfODg4OCk7Ci0KLSAgICAgICAgcmV0dXJuIGNyZWF0ZUJpdG1hcChkZWxlZ2F0ZSwgY3JlYXRlRmxhZ3MsIGRlbnNpdHkuZ2V0RHBpVmFsdWUoKSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIHtAbGluayBCaXRtYXB9IGluaXRpYWxpemVkIHdpdGggdGhlIGdpdmVuIHN0cmVhbSBjb250ZW50LgotICAgICAqCi0gICAgICogQHBhcmFtIGlucHV0IHRoZSBzdHJlYW0gZnJvbSB3aGljaCB0byByZWFkIHRoZSBiaXRtYXAgY29udGVudAotICAgICAqIEBwYXJhbSBpc011dGFibGUgd2hldGhlciB0aGUgYml0bWFwIGlzIG11dGFibGUKLSAgICAgKiBAcGFyYW0gZGVuc2l0eSB0aGUgZGVuc2l0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGJpdG1hcAotICAgICAqCi0gICAgICogQHNlZSBCaXRtYXAjaXNNdXRhYmxlKCkKLSAgICAgKiBAc2VlIEJpdG1hcCNnZXREZW5zaXR5KCkKLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIEJpdG1hcCBjcmVhdGVCaXRtYXAoSW5wdXRTdHJlYW0gaW5wdXQsIGJvb2xlYW4gaXNNdXRhYmxlLCBEZW5zaXR5IGRlbnNpdHkpCi0gICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24gewotICAgICAgICByZXR1cm4gY3JlYXRlQml0bWFwKGlucHV0LCBnZXRQcmVtdWx0aXBsaWVkQml0bWFwQ3JlYXRlRmxhZ3MoaXNNdXRhYmxlKSwgZGVuc2l0eSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIHtAbGluayBCaXRtYXB9IGluaXRpYWxpemVkIHdpdGggdGhlIGdpdmVuIHN0cmVhbSBjb250ZW50LgotICAgICAqCi0gICAgICogQHBhcmFtIGlucHV0IHRoZSBzdHJlYW0gZnJvbSB3aGljaCB0byByZWFkIHRoZSBiaXRtYXAgY29udGVudAotICAgICAqIEBwYXJhbSBjcmVhdGVGbGFncwotICAgICAqIEBwYXJhbSBkZW5zaXR5IHRoZSBkZW5zaXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgYml0bWFwCi0gICAgICoKLSAgICAgKiBAc2VlIEJpdG1hcCNpc1ByZW11bHRpcGxpZWQoKQotICAgICAqIEBzZWUgQml0bWFwI2lzTXV0YWJsZSgpCi0gICAgICogQHNlZSBCaXRtYXAjZ2V0RGVuc2l0eSgpCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBCaXRtYXAgY3JlYXRlQml0bWFwKElucHV0U3RyZWFtIGlucHV0LCBTZXQ8Qml0bWFwQ3JlYXRlRmxhZ3M+IGNyZWF0ZUZsYWdzLAotICAgICAgICAgICAgRGVuc2l0eSBkZW5zaXR5KSB0aHJvd3MgSU9FeGNlcHRpb24gewotICAgICAgICAvLyBjcmVhdGUgYSBkZWxlZ2F0ZSB3aXRoIHRoZSBjb250ZW50IG9mIHRoZSBzdHJlYW0uCi0gICAgICAgIEJpdG1hcF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IG5ldyBCaXRtYXBfRGVsZWdhdGUoSW1hZ2VJTy5yZWFkKGlucHV0KSwgQ29uZmlnLkFSR0JfODg4OCk7Ci0KLSAgICAgICAgcmV0dXJuIGNyZWF0ZUJpdG1hcChkZWxlZ2F0ZSwgY3JlYXRlRmxhZ3MsIGRlbnNpdHkuZ2V0RHBpVmFsdWUoKSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIHtAbGluayBCaXRtYXB9IGluaXRpYWxpemVkIHdpdGggdGhlIGdpdmVuIHtAbGluayBCdWZmZXJlZEltYWdlfQotICAgICAqCi0gICAgICogQHBhcmFtIGltYWdlIHRoZSBiaXRtYXAgY29udGVudAotICAgICAqIEBwYXJhbSBpc011dGFibGUgd2hldGhlciB0aGUgYml0bWFwIGlzIG11dGFibGUKLSAgICAgKiBAcGFyYW0gZGVuc2l0eSB0aGUgZGVuc2l0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGJpdG1hcAotICAgICAqCi0gICAgICogQHNlZSBCaXRtYXAjaXNNdXRhYmxlKCkKLSAgICAgKiBAc2VlIEJpdG1hcCNnZXREZW5zaXR5KCkKLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIEJpdG1hcCBjcmVhdGVCaXRtYXAoQnVmZmVyZWRJbWFnZSBpbWFnZSwgYm9vbGVhbiBpc011dGFibGUsCi0gICAgICAgICAgICBEZW5zaXR5IGRlbnNpdHkpIHRocm93cyBJT0V4Y2VwdGlvbiB7Ci0gICAgICAgIHJldHVybiBjcmVhdGVCaXRtYXAoaW1hZ2UsIGdldFByZW11bHRpcGxpZWRCaXRtYXBDcmVhdGVGbGFncyhpc011dGFibGUpLCBkZW5zaXR5KTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDcmVhdGVzIGFuZCByZXR1cm5zIGEge0BsaW5rIEJpdG1hcH0gaW5pdGlhbGl6ZWQgd2l0aCB0aGUgZ2l2ZW4ge0BsaW5rIEJ1ZmZlcmVkSW1hZ2V9Ci0gICAgICoKLSAgICAgKiBAcGFyYW0gaW1hZ2UgdGhlIGJpdG1hcCBjb250ZW50Ci0gICAgICogQHBhcmFtIGNyZWF0ZUZsYWdzCi0gICAgICogQHBhcmFtIGRlbnNpdHkgdGhlIGRlbnNpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBiaXRtYXAKLSAgICAgKgotICAgICAqIEBzZWUgQml0bWFwI2lzUHJlbXVsdGlwbGllZCgpCi0gICAgICogQHNlZSBCaXRtYXAjaXNNdXRhYmxlKCkKLSAgICAgKiBAc2VlIEJpdG1hcCNnZXREZW5zaXR5KCkKLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIEJpdG1hcCBjcmVhdGVCaXRtYXAoQnVmZmVyZWRJbWFnZSBpbWFnZSwgU2V0PEJpdG1hcENyZWF0ZUZsYWdzPiBjcmVhdGVGbGFncywKLSAgICAgICAgICAgIERlbnNpdHkgZGVuc2l0eSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gY3JlYXRlIGEgZGVsZWdhdGUgd2l0aCB0aGUgZ2l2ZW4gaW1hZ2UuCi0gICAgICAgIEJpdG1hcF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IG5ldyBCaXRtYXBfRGVsZWdhdGUoaW1hZ2UsIENvbmZpZy5BUkdCXzg4ODgpOwotCi0gICAgICAgIHJldHVybiBjcmVhdGVCaXRtYXAoZGVsZWdhdGUsIGNyZWF0ZUZsYWdzLCBkZW5zaXR5LmdldERwaVZhbHVlKCkpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIHtAbGluayBCdWZmZXJlZEltYWdlfSB1c2VkIGJ5IHRoZSBkZWxlZ2F0ZSBvZiB0aGUgZ2l2ZW4ge0BsaW5rIEJpdG1hcH0uCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBCdWZmZXJlZEltYWdlIGdldEltYWdlKEJpdG1hcCBiaXRtYXApIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBCaXRtYXBfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShiaXRtYXAubU5hdGl2ZUJpdG1hcCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBkZWxlZ2F0ZS5tSW1hZ2U7Ci0gICAgfQotCi0gICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0QnVmZmVyZWRJbWFnZVR5cGUoaW50IG5hdGl2ZUJpdG1hcENvbmZpZykgewotICAgICAgICBzd2l0Y2ggKENvbmZpZy5uYXRpdmVUb0NvbmZpZyhuYXRpdmVCaXRtYXBDb25maWcpKSB7Ci0gICAgICAgICAgICBjYXNlIEFMUEhBXzg6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEJ1ZmZlcmVkSW1hZ2UuVFlQRV9JTlRfQVJHQjsKLSAgICAgICAgICAgIGNhc2UgUkdCXzU2NToKLSAgICAgICAgICAgICAgICByZXR1cm4gQnVmZmVyZWRJbWFnZS5UWVBFX0lOVF9BUkdCOwotICAgICAgICAgICAgY2FzZSBBUkdCXzQ0NDQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEJ1ZmZlcmVkSW1hZ2UuVFlQRV9JTlRfQVJHQjsKLSAgICAgICAgICAgIGNhc2UgQVJHQl84ODg4OgotICAgICAgICAgICAgICAgIHJldHVybiBCdWZmZXJlZEltYWdlLlRZUEVfSU5UX0FSR0I7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gQnVmZmVyZWRJbWFnZS5UWVBFX0lOVF9BUkdCOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIHtAbGluayBCdWZmZXJlZEltYWdlfSB1c2VkIGJ5IHRoZSBkZWxlZ2F0ZSBvZiB0aGUgZ2l2ZW4ge0BsaW5rIEJpdG1hcH0uCi0gICAgICovCi0gICAgcHVibGljIEJ1ZmZlcmVkSW1hZ2UgZ2V0SW1hZ2UoKSB7Ci0gICAgICAgIHJldHVybiBtSW1hZ2U7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgQW5kcm9pZCBiaXRtYXAgY29uZmlnLiBOb3RlIHRoYXQgdGhpcyBub3QgdGhlIGNvbmZpZyBvZiB0aGUgdW5kZXJseWluZwotICAgICAqIEphdmEyRCBiaXRtYXAuCi0gICAgICovCi0gICAgcHVibGljIENvbmZpZyBnZXRDb25maWcoKSB7Ci0gICAgICAgIHJldHVybiBtQ29uZmlnOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIGhhc0FscGhhIHJlbmRlcmluZyBoaW50Ci0gICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBiaXRtYXAgYWxwaGEgc2hvdWxkIGJlIHVzZWQgYXQgcmVuZGVyIHRpbWUKLSAgICAgKi8KLSAgICBwdWJsaWMgYm9vbGVhbiBoYXNBbHBoYSgpIHsKLSAgICAgICAgcmV0dXJuIG1IYXNBbHBoYSAmJiBtQ29uZmlnICE9IENvbmZpZy5SR0JfNTY1OwotICAgIH0KLQotICAgIHB1YmxpYyBib29sZWFuIGhhc01pcE1hcCgpIHsKLSAgICAgICAgLy8gVE9ETzogY2hlY2sgaWYgbW9yZSBjaGVja3MgYXJlIHJlcXVpcmVkIGFzIGluIGhhc0FscGhhLgotICAgICAgICByZXR1cm4gbUhhc01pcE1hcDsKLSAgICB9Ci0gICAgLyoqCi0gICAgICogVXBkYXRlIHRoZSBnZW5lcmF0aW9uSWQuCi0gICAgICoKLSAgICAgKiBAc2VlIEJpdG1hcCNnZXRHZW5lcmF0aW9uSWQoKQotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIGNoYW5nZSgpIHsKLSAgICAgICAgbUdlbmVyYXRpb25JZCsrOwotICAgIH0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIEJpdG1hcCBuYXRpdmVDcmVhdGUoaW50W10gY29sb3JzLCBpbnQgb2Zmc2V0LCBpbnQgc3RyaWRlLCBpbnQgd2lkdGgsCi0gICAgICAgICAgICBpbnQgaGVpZ2h0LCBpbnQgbmF0aXZlQ29uZmlnLCBib29sZWFuIGlzTXV0YWJsZSkgewotICAgICAgICBpbnQgaW1hZ2VUeXBlID0gZ2V0QnVmZmVyZWRJbWFnZVR5cGUobmF0aXZlQ29uZmlnKTsKLQotICAgICAgICAvLyBjcmVhdGUgdGhlIGltYWdlCi0gICAgICAgIEJ1ZmZlcmVkSW1hZ2UgaW1hZ2UgPSBuZXcgQnVmZmVyZWRJbWFnZSh3aWR0aCwgaGVpZ2h0LCBpbWFnZVR5cGUpOwotCi0gICAgICAgIGlmIChjb2xvcnMgIT0gbnVsbCkgewotICAgICAgICAgICAgaW1hZ2Uuc2V0UkdCKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGNvbG9ycywgb2Zmc2V0LCBzdHJpZGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gY3JlYXRlIGEgZGVsZWdhdGUgd2l0aCB0aGUgY29udGVudCBvZiB0aGUgc3RyZWFtLgotICAgICAgICBCaXRtYXBfRGVsZWdhdGUgZGVsZWdhdGUgPSBuZXcgQml0bWFwX0RlbGVnYXRlKGltYWdlLCBDb25maWcubmF0aXZlVG9Db25maWcobmF0aXZlQ29uZmlnKSk7Ci0KLSAgICAgICAgcmV0dXJuIGNyZWF0ZUJpdG1hcChkZWxlZ2F0ZSwgZ2V0UHJlbXVsdGlwbGllZEJpdG1hcENyZWF0ZUZsYWdzKGlzTXV0YWJsZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQml0bWFwLmdldERlZmF1bHREZW5zaXR5KCkpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBCaXRtYXAgbmF0aXZlQ29weShpbnQgc3JjQml0bWFwLCBpbnQgbmF0aXZlQ29uZmlnLCBib29sZWFuIGlzTXV0YWJsZSkgewotICAgICAgICBCaXRtYXBfRGVsZWdhdGUgc3JjQm1wRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShzcmNCaXRtYXApOwotICAgICAgICBpZiAoc3JjQm1wRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBCdWZmZXJlZEltYWdlIHNyY0ltYWdlID0gc3JjQm1wRGVsZWdhdGUuZ2V0SW1hZ2UoKTsKLQotICAgICAgICBpbnQgd2lkdGggPSBzcmNJbWFnZS5nZXRXaWR0aCgpOwotICAgICAgICBpbnQgaGVpZ2h0ID0gc3JjSW1hZ2UuZ2V0SGVpZ2h0KCk7Ci0KLSAgICAgICAgaW50IGltYWdlVHlwZSA9IGdldEJ1ZmZlcmVkSW1hZ2VUeXBlKG5hdGl2ZUNvbmZpZyk7Ci0KLSAgICAgICAgLy8gY3JlYXRlIHRoZSBpbWFnZQotICAgICAgICBCdWZmZXJlZEltYWdlIGltYWdlID0gbmV3IEJ1ZmZlcmVkSW1hZ2Uod2lkdGgsIGhlaWdodCwgaW1hZ2VUeXBlKTsKLQotICAgICAgICAvLyBjb3B5IHRoZSBzb3VyY2UgaW1hZ2UgaW50byB0aGUgaW1hZ2UuCi0gICAgICAgIGludFtdIGFyZ2IgPSBuZXcgaW50W3dpZHRoICogaGVpZ2h0XTsKLSAgICAgICAgc3JjSW1hZ2UuZ2V0UkdCKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGFyZ2IsIDAsIHdpZHRoKTsKLSAgICAgICAgaW1hZ2Uuc2V0UkdCKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGFyZ2IsIDAsIHdpZHRoKTsKLQotICAgICAgICAvLyBjcmVhdGUgYSBkZWxlZ2F0ZSB3aXRoIHRoZSBjb250ZW50IG9mIHRoZSBzdHJlYW0uCi0gICAgICAgIEJpdG1hcF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IG5ldyBCaXRtYXBfRGVsZWdhdGUoaW1hZ2UsIENvbmZpZy5uYXRpdmVUb0NvbmZpZyhuYXRpdmVDb25maWcpKTsKLQotICAgICAgICByZXR1cm4gY3JlYXRlQml0bWFwKGRlbGVnYXRlLCBnZXRQcmVtdWx0aXBsaWVkQml0bWFwQ3JlYXRlRmxhZ3MoaXNNdXRhYmxlKSwKLSAgICAgICAgICAgICAgICBCaXRtYXAuZ2V0RGVmYXVsdERlbnNpdHkoKSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlRGVzdHJ1Y3RvcihpbnQgbmF0aXZlQml0bWFwKSB7Ci0gICAgICAgIHNNYW5hZ2VyLnJlbW92ZUphdmFSZWZlcmVuY2VGb3IobmF0aXZlQml0bWFwKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVSZWN5Y2xlKGludCBuYXRpdmVCaXRtYXApIHsKLSAgICAgICAgc01hbmFnZXIucmVtb3ZlSmF2YVJlZmVyZW5jZUZvcihuYXRpdmVCaXRtYXApOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZUNvbXByZXNzKGludCBuYXRpdmVCaXRtYXAsIGludCBmb3JtYXQsIGludCBxdWFsaXR5LAotICAgICAgICAgICAgT3V0cHV0U3RyZWFtIHN0cmVhbSwgYnl0ZVtdIHRlbXBTdG9yYWdlKSB7Ci0gICAgICAgIEJyaWRnZS5nZXRMb2coKS5lcnJvcihMYXlvdXRMb2cuVEFHX1VOU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICJCaXRtYXAuY29tcHJlc3MoKSBpcyBub3Qgc3VwcG9ydGVkIiwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZUVyYXNlKGludCBuYXRpdmVCaXRtYXAsIGludCBjb2xvcikgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIEJpdG1hcF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZUJpdG1hcCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBCdWZmZXJlZEltYWdlIGltYWdlID0gZGVsZWdhdGUubUltYWdlOwotCi0gICAgICAgIEdyYXBoaWNzMkQgZyA9IGltYWdlLmNyZWF0ZUdyYXBoaWNzKCk7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBnLnNldENvbG9yKG5ldyBqYXZhLmF3dC5Db2xvcihjb2xvciwgdHJ1ZSkpOwotCi0gICAgICAgICAgICBnLmZpbGxSZWN0KDAsIDAsIGltYWdlLmdldFdpZHRoKCksIGltYWdlLmdldEhlaWdodCgpKTsKLSAgICAgICAgfSBmaW5hbGx5IHsKLSAgICAgICAgICAgIGcuZGlzcG9zZSgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVXaWR0aChpbnQgbmF0aXZlQml0bWFwKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQml0bWFwX0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQml0bWFwKTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlbGVnYXRlLm1JbWFnZS5nZXRXaWR0aCgpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlSGVpZ2h0KGludCBuYXRpdmVCaXRtYXApIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBCaXRtYXBfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVCaXRtYXApOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVsZWdhdGUubUltYWdlLmdldEhlaWdodCgpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlUm93Qnl0ZXMoaW50IG5hdGl2ZUJpdG1hcCkgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIEJpdG1hcF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZUJpdG1hcCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBkZWxlZ2F0ZS5tSW1hZ2UuZ2V0V2lkdGgoKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZUNvbmZpZyhpbnQgbmF0aXZlQml0bWFwKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQml0bWFwX0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQml0bWFwKTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlbGVnYXRlLm1Db25maWcubmF0aXZlSW50OwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZUhhc0FscGhhKGludCBuYXRpdmVCaXRtYXApIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBCaXRtYXBfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVCaXRtYXApOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVsZWdhdGUubUhhc0FscGhhOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZUhhc01pcE1hcChpbnQgbmF0aXZlQml0bWFwKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQml0bWFwX0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQml0bWFwKTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlbGVnYXRlLm1IYXNNaXBNYXA7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVHZXRQaXhlbChpbnQgbmF0aXZlQml0bWFwLCBpbnQgeCwgaW50IHkpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBCaXRtYXBfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVCaXRtYXApOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVsZWdhdGUubUltYWdlLmdldFJHQih4LCB5KTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVHZXRQaXhlbHMoaW50IG5hdGl2ZUJpdG1hcCwgaW50W10gcGl4ZWxzLCBpbnQgb2Zmc2V0LAotICAgICAgICAgICAgaW50IHN0cmlkZSwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsKLSAgICAgICAgQml0bWFwX0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQml0bWFwKTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGRlbGVnYXRlLmdldEltYWdlKCkuZ2V0UkdCKHgsIHksIHdpZHRoLCBoZWlnaHQsIHBpeGVscywgb2Zmc2V0LCBzdHJpZGUpOwotICAgIH0KLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlU2V0UGl4ZWwoaW50IG5hdGl2ZUJpdG1hcCwgaW50IHgsIGludCB5LCBpbnQgY29sb3IpIHsKLSAgICAgICAgQml0bWFwX0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQml0bWFwKTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGRlbGVnYXRlLmdldEltYWdlKCkuc2V0UkdCKHgsIHksIGNvbG9yKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVTZXRQaXhlbHMoaW50IG5hdGl2ZUJpdG1hcCwgaW50W10gY29sb3JzLCBpbnQgb2Zmc2V0LAotICAgICAgICAgICAgaW50IHN0cmlkZSwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsKLSAgICAgICAgQml0bWFwX0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQml0bWFwKTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGRlbGVnYXRlLmdldEltYWdlKCkuc2V0UkdCKHgsIHksIHdpZHRoLCBoZWlnaHQsIGNvbG9ycywgb2Zmc2V0LCBzdHJpZGUpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZUNvcHlQaXhlbHNUb0J1ZmZlcihpbnQgbmF0aXZlQml0bWFwLCBCdWZmZXIgZHN0KSB7Ci0gICAgICAgIC8vIEZJWE1FIGltcGxlbWVudCBuYXRpdmUgZGVsZWdhdGUKLSAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX1VOU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICJCaXRtYXAuY29weVBpeGVsc1RvQnVmZmVyIGlzIG5vdCBzdXBwb3J0ZWQuIiwgbnVsbCwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlQ29weVBpeGVsc0Zyb21CdWZmZXIoaW50IG5iLCBCdWZmZXIgc3JjKSB7Ci0gICAgICAgIC8vIEZJWE1FIGltcGxlbWVudCBuYXRpdmUgZGVsZWdhdGUKLSAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX1VOU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICJCaXRtYXAuY29weVBpeGVsc0Zyb21CdWZmZXIgaXMgbm90IHN1cHBvcnRlZC4iLCBudWxsLCBudWxsIC8qZGF0YSovKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZUdlbmVyYXRpb25JZChpbnQgbmF0aXZlQml0bWFwKSB7Ci0gICAgICAgIEJpdG1hcF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZUJpdG1hcCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBkZWxlZ2F0ZS5tR2VuZXJhdGlvbklkOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBCaXRtYXAgbmF0aXZlQ3JlYXRlRnJvbVBhcmNlbChQYXJjZWwgcCkgewotICAgICAgICAvLyBUaGlzIGlzIG9ubHkgY2FsbGVkIGJ5IEJpdG1hcC5DUkVBVE9SIChQYXJjZWxhYmxlLkNyZWF0b3I8Qml0bWFwPiksIHdoaWNoIGlzIG9ubHkKLSAgICAgICAgLy8gdXNlZCBkdXJpbmcgYWlkbCBjYWxsIHNvIHJlYWxseSB0aGlzIHNob3VsZCBub3QgYmUgY2FsbGVkLgotICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZXJyb3IoTGF5b3V0TG9nLlRBR19VTlNVUFBPUlRFRCwKLSAgICAgICAgICAgICAgICAiQUlETCBpcyBub3Qgc3VwcG9yZWQsIGFuZCB0aGVyZWZvcmUgQml0bWFwcyBjYW5ub3QgYmUgY3JlYXRlZCBmcm9tIHBhcmNlbHMuIiwKLSAgICAgICAgICAgICAgICBudWxsIC8qZGF0YSovKTsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlV3JpdGVUb1BhcmNlbChpbnQgbmF0aXZlQml0bWFwLCBib29sZWFuIGlzTXV0YWJsZSwKLSAgICAgICAgICAgIGludCBkZW5zaXR5LCBQYXJjZWwgcCkgewotICAgICAgICAvLyBUaGlzIGlzIG9ubHkgY2FsbGVkIHdoZW4gc2VuZGluZyBhIGJpdG1hcCB0aHJvdWdoIGFpZGwsIHNvIHJlYWxseSB0aGlzIHNob3VsZCBub3QKLSAgICAgICAgLy8gYmUgY2FsbGVkLgotICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZXJyb3IoTGF5b3V0TG9nLlRBR19VTlNVUFBPUlRFRCwKLSAgICAgICAgICAgICAgICAiQUlETCBpcyBub3Qgc3VwcG9yZWQsIGFuZCB0aGVyZWZvcmUgQml0bWFwcyBjYW5ub3QgYmUgd3JpdHRlbiB0byBwYXJjZWxzLiIsCi0gICAgICAgICAgICAgICAgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgQml0bWFwIG5hdGl2ZUV4dHJhY3RBbHBoYShpbnQgbmF0aXZlQml0bWFwLCBpbnQgbmF0aXZlUGFpbnQsCi0gICAgICAgICAgICBpbnRbXSBvZmZzZXRYWSkgewotICAgICAgICBCaXRtYXBfRGVsZWdhdGUgYml0bWFwID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQml0bWFwKTsKLSAgICAgICAgaWYgKGJpdG1hcCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGdldCB0aGUgcGFpbnQgd2hpY2ggY2FuIGJlIG51bGwgaWYgbmF0aXZlUGFpbnQgaXMgMC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgcGFpbnQgPSBQYWludF9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZShuYXRpdmVQYWludCk7Ci0KLSAgICAgICAgaWYgKHBhaW50ICE9IG51bGwgJiYgcGFpbnQuZ2V0TWFza0ZpbHRlcigpICE9IG51bGwpIHsKLSAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5maWRlbGl0eVdhcm5pbmcoTGF5b3V0TG9nLlRBR19NQVNLRklMVEVSLAotICAgICAgICAgICAgICAgICAgICAiTWFza0ZpbHRlciBub3Qgc3VwcG9ydGVkIGluIEJpdG1hcC5leHRyYWN0QWxwaGEiLAotICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsIC8qZGF0YSovKTsKLSAgICAgICAgfQotCi0gICAgICAgIGludCBhbHBoYSA9IHBhaW50ICE9IG51bGwgPyBwYWludC5nZXRBbHBoYSgpIDogMHhGRjsKLSAgICAgICAgQnVmZmVyZWRJbWFnZSBpbWFnZSA9IGNyZWF0ZUNvcHkoYml0bWFwLmdldEltYWdlKCksIEJ1ZmZlcmVkSW1hZ2UuVFlQRV9JTlRfQVJHQiwgYWxwaGEpOwotCi0gICAgICAgIC8vIGNyZWF0ZSB0aGUgZGVsZWdhdGUuIFRoZSBhY3R1YWwgQml0bWFwIGNvbmZpZyBpcyBvbmx5IGFuIGFscGhhIGNoYW5uZWwKLSAgICAgICAgQml0bWFwX0RlbGVnYXRlIGRlbGVnYXRlID0gbmV3IEJpdG1hcF9EZWxlZ2F0ZShpbWFnZSwgQ29uZmlnLkFMUEhBXzgpOwotCi0gICAgICAgIC8vIHRoZSBkZW5zaXR5IGRvZXNuJ3QgbWF0dGVyLCBpdCdzIHNldCBieSB0aGUgSmF2YSBtZXRob2QuCi0gICAgICAgIHJldHVybiBjcmVhdGVCaXRtYXAoZGVsZWdhdGUsIEVudW1TZXQub2YoQml0bWFwQ3JlYXRlRmxhZ3MuTVVUQUJMRSksCi0gICAgICAgICAgICAgICAgRGVuc2l0eS5ERUZBVUxUX0RFTlNJVFkgLypkZW5zaXR5Ki8pOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZVByZXBhcmVUb0RyYXcoaW50IG5hdGl2ZUJpdG1hcCkgewotICAgICAgICAvLyBub3RoaW5nIHRvIGJlIGRvbmUgaGVyZS4KLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVTZXRIYXNBbHBoYShpbnQgbmF0aXZlQml0bWFwLCBib29sZWFuIGhhc0FscGhhKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQml0bWFwX0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQml0bWFwKTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGRlbGVnYXRlLm1IYXNBbHBoYSA9IGhhc0FscGhhOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZVNldEhhc01pcE1hcChpbnQgbmF0aXZlQml0bWFwLCBib29sZWFuIGhhc01pcE1hcCkgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIEJpdG1hcF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZUJpdG1hcCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBkZWxlZ2F0ZS5tSGFzTWlwTWFwID0gaGFzTWlwTWFwOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZVNhbWVBcyhpbnQgbmIwLCBpbnQgbmIxKSB7Ci0gICAgICAgIEJpdG1hcF9EZWxlZ2F0ZSBkZWxlZ2F0ZTEgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYjApOwotICAgICAgICBpZiAoZGVsZWdhdGUxID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIEJpdG1hcF9EZWxlZ2F0ZSBkZWxlZ2F0ZTIgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYjEpOwotICAgICAgICBpZiAoZGVsZWdhdGUyID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIEJ1ZmZlcmVkSW1hZ2UgaW1hZ2UxID0gZGVsZWdhdGUxLmdldEltYWdlKCk7Ci0gICAgICAgIEJ1ZmZlcmVkSW1hZ2UgaW1hZ2UyID0gZGVsZWdhdGUyLmdldEltYWdlKCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZTEubUNvbmZpZyAhPSBkZWxlZ2F0ZTIubUNvbmZpZyB8fAotICAgICAgICAgICAgICAgIGltYWdlMS5nZXRXaWR0aCgpICE9IGltYWdlMi5nZXRXaWR0aCgpIHx8Ci0gICAgICAgICAgICAgICAgaW1hZ2UxLmdldEhlaWdodCgpICE9IGltYWdlMi5nZXRIZWlnaHQoKSkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gZ2V0IHRoZSBpbnRlcm5hbCBkYXRhCi0gICAgICAgIGludCB3ID0gaW1hZ2UxLmdldFdpZHRoKCk7Ci0gICAgICAgIGludCBoID0gaW1hZ2UyLmdldEhlaWdodCgpOwotICAgICAgICBpbnRbXSBhcmdiMSA9IG5ldyBpbnRbdypoXTsKLSAgICAgICAgaW50W10gYXJnYjIgPSBuZXcgaW50W3cqaF07Ci0KLSAgICAgICAgaW1hZ2UxLmdldFJHQigwLCAwLCB3LCBoLCBhcmdiMSwgMCwgdyk7Ci0gICAgICAgIGltYWdlMi5nZXRSR0IoMCwgMCwgdywgaCwgYXJnYjIsIDAsIHcpOwotCi0gICAgICAgIC8vIGNvbXBhcmVzCi0gICAgICAgIGlmIChkZWxlZ2F0ZTEubUNvbmZpZyA9PSBDb25maWcuQUxQSEFfOCkgewotICAgICAgICAgICAgLy8gaW4gdGhpcyBjYXNlIHdlIGhhdmUgdG8gbWFudWFsbHkgY29tcGFyZSB0aGUgYWxwaGEgY2hhbm5lbCBhcyB0aGUgcmVzdCBpcyBnYXJiYWdlLgotICAgICAgICAgICAgZmluYWwgaW50IGxlbmd0aCA9IHcqaDsKLSAgICAgICAgICAgIGZvciAoaW50IGkgPSAwIDsgaSA8IGxlbmd0aCA7IGkrKykgewotICAgICAgICAgICAgICAgIGlmICgoYXJnYjFbaV0gJiAweEZGMDAwMDAwKSAhPSAoYXJnYjJbaV0gJiAweEZGMDAwMDAwKSkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gQXJyYXlzLmVxdWFscyhhcmdiMSwgYXJnYjIpOwotICAgIH0KLQotICAgIC8vIC0tLS0gUHJpdmF0ZSBkZWxlZ2F0ZS9oZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBwcml2YXRlIEJpdG1hcF9EZWxlZ2F0ZShCdWZmZXJlZEltYWdlIGltYWdlLCBDb25maWcgY29uZmlnKSB7Ci0gICAgICAgIG1JbWFnZSA9IGltYWdlOwotICAgICAgICBtQ29uZmlnID0gY29uZmlnOwotICAgIH0KLQotICAgIHByaXZhdGUgc3RhdGljIEJpdG1hcCBjcmVhdGVCaXRtYXAoQml0bWFwX0RlbGVnYXRlIGRlbGVnYXRlLAotICAgICAgICAgICAgU2V0PEJpdG1hcENyZWF0ZUZsYWdzPiBjcmVhdGVGbGFncywgaW50IGRlbnNpdHkpIHsKLSAgICAgICAgLy8gZ2V0IGl0cyBuYXRpdmVfaW50Ci0gICAgICAgIGludCBuYXRpdmVJbnQgPSBzTWFuYWdlci5hZGROZXdEZWxlZ2F0ZShkZWxlZ2F0ZSk7Ci0KLSAgICAgICAgaW50IHdpZHRoID0gZGVsZWdhdGUubUltYWdlLmdldFdpZHRoKCk7Ci0gICAgICAgIGludCBoZWlnaHQgPSBkZWxlZ2F0ZS5tSW1hZ2UuZ2V0SGVpZ2h0KCk7Ci0gICAgICAgIGJvb2xlYW4gaXNNdXRhYmxlID0gY3JlYXRlRmxhZ3MuY29udGFpbnMoQml0bWFwQ3JlYXRlRmxhZ3MuTVVUQUJMRSk7Ci0gICAgICAgIGJvb2xlYW4gaXNQcmVtdWx0aXBsaWVkID0gY3JlYXRlRmxhZ3MuY29udGFpbnMoQml0bWFwQ3JlYXRlRmxhZ3MuUFJFTVVMVElQTElFRCk7Ci0KLSAgICAgICAgLy8gYW5kIGNyZWF0ZS9yZXR1cm4gYSBuZXcgQml0bWFwIHdpdGggaXQKLSAgICAgICAgcmV0dXJuIG5ldyBCaXRtYXAobmF0aXZlSW50LCBudWxsIC8qIGJ1ZmZlciAqLywgd2lkdGgsIGhlaWdodCwgZGVuc2l0eSwgaXNNdXRhYmxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBpc1ByZW11bHRpcGxpZWQsIG51bGwgLypuaW5lUGF0Y2hDaHVuayovLCBudWxsIC8qIGxheW91dEJvdW5kcyAqLyk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBzdGF0aWMgU2V0PEJpdG1hcENyZWF0ZUZsYWdzPiBnZXRQcmVtdWx0aXBsaWVkQml0bWFwQ3JlYXRlRmxhZ3MoYm9vbGVhbiBpc011dGFibGUpIHsKLSAgICAgICAgU2V0PEJpdG1hcENyZWF0ZUZsYWdzPiBjcmVhdGVGbGFncyA9IEVudW1TZXQub2YoQml0bWFwQ3JlYXRlRmxhZ3MuUFJFTVVMVElQTElFRCk7Ci0gICAgICAgIGlmIChpc011dGFibGUpIHsKLSAgICAgICAgICAgIGNyZWF0ZUZsYWdzLmFkZChCaXRtYXBDcmVhdGVGbGFncy5NVVRBQkxFKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gY3JlYXRlRmxhZ3M7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGNvcHkgb2YgYSBnaXZlbiBCdWZmZXJlZEltYWdlLgotICAgICAqIDxwLz4KLSAgICAgKiBpZiBhbHBoYSBpcyBkaWZmZXJlbnQgdGhhbiAyNTUsIHRoZW4gaXQgaXMgYXBwbGllZCB0byB0aGUgYWxwaGEgY2hhbm5lbCBvZiBlYWNoIHBpeGVsLgotICAgICAqCi0gICAgICogQHBhcmFtIGltYWdlIHRoZSBpbWFnZSB0byBjb3B5Ci0gICAgICogQHBhcmFtIGltYWdlVHlwZSB0aGUgdHlwZSBvZiB0aGUgbmV3IGltYWdlCi0gICAgICogQHBhcmFtIGFscGhhIGFuIG9wdGlvbmFsIGFscGhhIG1vZGlmaWVyCi0gICAgICogQHJldHVybiBhIG5ldyBCdWZmZXJlZEltYWdlCi0gICAgICovCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIEJ1ZmZlcmVkSW1hZ2UgY3JlYXRlQ29weShCdWZmZXJlZEltYWdlIGltYWdlLCBpbnQgaW1hZ2VUeXBlLCBpbnQgYWxwaGEpIHsKLSAgICAgICAgaW50IHcgPSBpbWFnZS5nZXRXaWR0aCgpOwotICAgICAgICBpbnQgaCA9IGltYWdlLmdldEhlaWdodCgpOwotCi0gICAgICAgIEJ1ZmZlcmVkSW1hZ2UgcmVzdWx0ID0gbmV3IEJ1ZmZlcmVkSW1hZ2UodywgaCwgaW1hZ2VUeXBlKTsKLQotICAgICAgICBpbnRbXSBhcmdiID0gbmV3IGludFt3ICogaF07Ci0gICAgICAgIGltYWdlLmdldFJHQigwLCAwLCBpbWFnZS5nZXRXaWR0aCgpLCBpbWFnZS5nZXRIZWlnaHQoKSwgYXJnYiwgMCwgaW1hZ2UuZ2V0V2lkdGgoKSk7Ci0KLSAgICAgICAgaWYgKGFscGhhICE9IDI1NSkgewotICAgICAgICAgICAgZmluYWwgaW50IGxlbmd0aCA9IGFyZ2IubGVuZ3RoOwotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICBpbnQgYSA9IChhcmdiW2ldID4+PiAyNCAqIGFscGhhKSAvIDI1NTsKLSAgICAgICAgICAgICAgICBhcmdiW2ldID0gKGEgPDwgMjQpIHwgKGFyZ2JbaV0gJiAweDAwRkZGRkZGKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJlc3VsdC5zZXRSR0IoMCwgMCwgdywgaCwgYXJnYiwgMCwgdyk7Ci0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvQmx1ck1hc2tGaWx0ZXJfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvQmx1ck1hc2tGaWx0ZXJfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGJlY2JhMS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0JsdXJNYXNrRmlsdGVyX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLkRlbGVnYXRlTWFuYWdlcjsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLS8qKgotICogRGVsZWdhdGUgaW1wbGVtZW50aW5nIHRoZSBuYXRpdmUgbWV0aG9kcyBvZiBhbmRyb2lkLmdyYXBoaWNzLkJsdXJNYXNrRmlsdGVyCi0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgQmx1ck1hc2tGaWx0ZXIgaGF2ZQotICogYmVlbiByZXBsYWNlZCBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgQmx1ck1hc2tGaWx0ZXIgY2xhc3MuCi0gKgotICogQmVjYXVzZSB0aGlzIGV4dGVuZHMge0BsaW5rIE1hc2tGaWx0ZXJfRGVsZWdhdGV9LCB0aGVyZSdzIG5vIG5lZWQgdG8gdXNlIGEKLSAqIHtAbGluayBEZWxlZ2F0ZU1hbmFnZXJ9LCBhcyBhbGwgdGhlIFNoYWRlciBjbGFzc2VzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIG1hbmFnZXIKLSAqIG93bmVkIGJ5IHtAbGluayBNYXNrRmlsdGVyX0RlbGVnYXRlfS4KLSAqCi0gKiBAc2VlIE1hc2tGaWx0ZXJfRGVsZWdhdGUKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBCbHVyTWFza0ZpbHRlcl9EZWxlZ2F0ZSBleHRlbmRzIE1hc2tGaWx0ZXJfRGVsZWdhdGUgewotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBkYXRhIC0tLS0KLQotICAgIC8vIC0tLS0gUHVibGljIEhlbHBlciBtZXRob2RzIC0tLS0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGlzU3VwcG9ydGVkKCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRTdXBwb3J0TWVzc2FnZSgpIHsKLSAgICAgICAgcmV0dXJuICJCbHVyIE1hc2sgRmlsdGVycyBhcmUgbm90IHN1cHBvcnRlZC4iOwotICAgIH0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVDb25zdHJ1Y3RvcihmbG9hdCByYWRpdXMsIGludCBzdHlsZSkgewotICAgICAgICBCbHVyTWFza0ZpbHRlcl9EZWxlZ2F0ZSBuZXdEZWxlZ2F0ZSA9IG5ldyBCbHVyTWFza0ZpbHRlcl9EZWxlZ2F0ZSgpOwotICAgICAgICByZXR1cm4gc01hbmFnZXIuYWRkTmV3RGVsZWdhdGUobmV3RGVsZWdhdGUpOwotICAgIH0KLQotICAgIC8vIC0tLS0gUHJpdmF0ZSBkZWxlZ2F0ZS9oZWxwZXIgbWV0aG9kcyAtLS0tCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0NhbnZhc19EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9DYW52YXNfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjJiNDdiZC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0NhbnZhc19EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTI4OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkxheW91dExvZzsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLkJyaWRnZTsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRGVsZWdhdGVNYW5hZ2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5HY1NuYXBzaG90OwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwLkNvbmZpZzsKLWltcG9ydCBhbmRyb2lkLnRleHQuVGV4dFV0aWxzOwotCi1pbXBvcnQgamF2YS5hd3QuQ29sb3I7Ci1pbXBvcnQgamF2YS5hd3QuQ29tcG9zaXRlOwotaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzMkQ7Ci1pbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOwotaW1wb3J0IGphdmEuYXd0LlJlbmRlcmluZ0hpbnRzOwotaW1wb3J0IGphdmEuYXd0LlNoYXBlOwotaW1wb3J0IGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtOwotaW1wb3J0IGphdmEuYXd0Lmdlb20uQXJjMkQ7Ci1pbXBvcnQgamF2YS5hd3QuaW1hZ2UuQnVmZmVyZWRJbWFnZTsKLQotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5DYW52YXMKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBDYW52YXMgaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgQ2FudmFzIGNsYXNzLgotICoKLSAqIEBzZWUgRGVsZWdhdGVNYW5hZ2VyCi0gKgotICovCi1wdWJsaWMgZmluYWwgY2xhc3MgQ2FudmFzX0RlbGVnYXRlIHsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgbWFuYWdlciAtLS0tCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRGVsZWdhdGVNYW5hZ2VyPENhbnZhc19EZWxlZ2F0ZT4gc01hbmFnZXIgPQotICAgICAgICAgICAgbmV3IERlbGVnYXRlTWFuYWdlcjxDYW52YXNfRGVsZWdhdGU+KENhbnZhc19EZWxlZ2F0ZS5jbGFzcyk7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGhlbHBlciBkYXRhIC0tLS0KLQotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGJvb2xlYW5bXSBzQm9vbE91dCA9IG5ldyBib29sZWFuWzFdOwotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBkYXRhIC0tLS0KLSAgICBwcml2YXRlIEJpdG1hcF9EZWxlZ2F0ZSBtQml0bWFwOwotICAgIHByaXZhdGUgR2NTbmFwc2hvdCBtU25hcHNob3Q7Ci0KLSAgICBwcml2YXRlIERyYXdGaWx0ZXJfRGVsZWdhdGUgbURyYXdGaWx0ZXIgPSBudWxsOwotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgbmF0aXZlIGRlbGVnYXRlIGFzc29jaWF0ZWQgdG8gYSBnaXZlbiB7QGxpbmsgQ2FudmFzfSBvYmplY3QuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBDYW52YXNfRGVsZWdhdGUgZ2V0RGVsZWdhdGUoQ2FudmFzIGNhbnZhcykgewotICAgICAgICByZXR1cm4gc01hbmFnZXIuZ2V0RGVsZWdhdGUoY2FudmFzLm1OYXRpdmVDYW52YXMpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIG5hdGl2ZSBkZWxlZ2F0ZSBhc3NvY2lhdGVkIHRvIGEgZ2l2ZW4gYW4gaW50IHJlZmVyZW5jaW5nIGEge0BsaW5rIENhbnZhc30gb2JqZWN0LgotICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgQ2FudmFzX0RlbGVnYXRlIGdldERlbGVnYXRlKGludCBuYXRpdmVfY2FudmFzKSB7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfY2FudmFzKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHtAbGluayBHcmFwaGljczJEfSB1c2VkIHRvIGRyYXcuCi0gICAgICovCi0gICAgcHVibGljIEdjU25hcHNob3QgZ2V0U25hcHNob3QoKSB7Ci0gICAgICAgIHJldHVybiBtU25hcHNob3Q7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUge0BsaW5rIERyYXdGaWx0ZXJ9IGRlbGVnYXRlIG9yIG51bGwgaWYgbm9uZSBoYXZlIGJlZW4gc2V0LgotICAgICAqCi0gICAgICogQHJldHVybiB0aGUgZGVsZWdhdGUgb3IgbnVsbC4KLSAgICAgKi8KLSAgICBwdWJsaWMgRHJhd0ZpbHRlcl9EZWxlZ2F0ZSBnZXREcmF3RmlsdGVyKCkgewotICAgICAgICByZXR1cm4gbURyYXdGaWx0ZXI7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBuYXRpdmUgbWV0aG9kcyAtLS0tCi0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBpc09wYXF1ZShDYW52YXMgdGhpc0NhbnZhcykgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIENhbnZhc19EZWxlZ2F0ZSBjYW52YXNEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKHRoaXNDYW52YXMubU5hdGl2ZUNhbnZhcyk7Ci0gICAgICAgIGlmIChjYW52YXNEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gY2FudmFzRGVsZWdhdGUubUJpdG1hcC5nZXRDb25maWcoKSA9PSBDb25maWcuUkdCXzU2NTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IGdldFdpZHRoKENhbnZhcyB0aGlzQ2FudmFzKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc0NhbnZhcy5tTmF0aXZlQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGNhbnZhc0RlbGVnYXRlLm1CaXRtYXAuZ2V0SW1hZ2UoKS5nZXRXaWR0aCgpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgZ2V0SGVpZ2h0KENhbnZhcyB0aGlzQ2FudmFzKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc0NhbnZhcy5tTmF0aXZlQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGNhbnZhc0RlbGVnYXRlLm1CaXRtYXAuZ2V0SW1hZ2UoKS5nZXRIZWlnaHQoKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIHRyYW5zbGF0ZShDYW52YXMgdGhpc0NhbnZhcywgZmxvYXQgZHgsIGZsb2F0IGR5KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc0NhbnZhcy5tTmF0aXZlQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGNhbnZhc0RlbGVnYXRlLmdldFNuYXBzaG90KCkudHJhbnNsYXRlKGR4LCBkeSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgcm90YXRlKENhbnZhcyB0aGlzQ2FudmFzLCBmbG9hdCBkZWdyZWVzKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc0NhbnZhcy5tTmF0aXZlQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGNhbnZhc0RlbGVnYXRlLmdldFNuYXBzaG90KCkucm90YXRlKE1hdGgudG9SYWRpYW5zKGRlZ3JlZXMpKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIHNjYWxlKENhbnZhcyB0aGlzQ2FudmFzLCBmbG9hdCBzeCwgZmxvYXQgc3kpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBDYW52YXNfRGVsZWdhdGUgY2FudmFzRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzQ2FudmFzLm1OYXRpdmVDYW52YXMpOwotICAgICAgICBpZiAoY2FudmFzRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FudmFzRGVsZWdhdGUuZ2V0U25hcHNob3QoKS5zY2FsZShzeCwgc3kpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgc2tldyhDYW52YXMgdGhpc0NhbnZhcywgZmxvYXQga3gsIGZsb2F0IGt5KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc0NhbnZhcy5tTmF0aXZlQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGdldCB0aGUgY3VycmVudCB0b3AgZ3JhcGhpY3MyRCBvYmplY3QuCi0gICAgICAgIEdjU25hcHNob3QgZyA9IGNhbnZhc0RlbGVnYXRlLmdldFNuYXBzaG90KCk7Ci0KLSAgICAgICAgLy8gZ2V0IGl0cyBjdXJyZW50IG1hdHJpeAotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gY3VycmVudFR4ID0gZy5nZXRUcmFuc2Zvcm0oKTsKLSAgICAgICAgLy8gZ2V0IHRoZSBBZmZpbmVUcmFuc2Zvcm0gZm9yIHRoZSBnaXZlbiBza2V3LgotICAgICAgICBmbG9hdFtdIG10eCA9IE1hdHJpeF9EZWxlZ2F0ZS5nZXRTa2V3KGt4LCBreSk7Ci0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBtYXRyaXhUeCA9IE1hdHJpeF9EZWxlZ2F0ZS5nZXRBZmZpbmVUcmFuc2Zvcm0obXR4KTsKLQotICAgICAgICAvLyBjb21iaW5lIHRoZW0gc28gdGhhdCB0aGUgZ2l2ZW4gbWF0cml4IGlzIGFwcGxpZWQgYWZ0ZXIuCi0gICAgICAgIGN1cnJlbnRUeC5wcmVDb25jYXRlbmF0ZShtYXRyaXhUeCk7Ci0KLSAgICAgICAgLy8gZ2l2ZSBpdCB0byB0aGUgZ3JhcGhpY3MyRCBhcyBhIG5ldyBtYXRyaXggcmVwbGFjaW5nIGFsbCBwcmV2aW91cyB0cmFuc2Zvcm0KLSAgICAgICAgZy5zZXRUcmFuc2Zvcm0oY3VycmVudFR4KTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBjbGlwUmVjdChDYW52YXMgdGhpc0NhbnZhcywgUmVjdEYgcmVjdCkgewotICAgICAgICByZXR1cm4gY2xpcFJlY3QodGhpc0NhbnZhcywgcmVjdC5sZWZ0LCByZWN0LnRvcCwgcmVjdC5yaWdodCwgcmVjdC5ib3R0b20pOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIGNsaXBSZWN0KENhbnZhcyB0aGlzQ2FudmFzLCBSZWN0IHJlY3QpIHsKLSAgICAgICAgcmV0dXJuIGNsaXBSZWN0KHRoaXNDYW52YXMsIChmbG9hdCkgcmVjdC5sZWZ0LCAoZmxvYXQpIHJlY3QudG9wLAotICAgICAgICAgICAgICAgIChmbG9hdCkgcmVjdC5yaWdodCwgKGZsb2F0KSByZWN0LmJvdHRvbSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gY2xpcFJlY3QoQ2FudmFzIHRoaXNDYW52YXMsIGZsb2F0IGxlZnQsIGZsb2F0IHRvcCwgZmxvYXQgcmlnaHQsCi0gICAgICAgICAgICBmbG9hdCBib3R0b20pIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBDYW52YXNfRGVsZWdhdGUgY2FudmFzRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzQ2FudmFzLm1OYXRpdmVDYW52YXMpOwotICAgICAgICBpZiAoY2FudmFzRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGNhbnZhc0RlbGVnYXRlLmNsaXBSZWN0KGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSwgUmVnaW9uLk9wLklOVEVSU0VDVC5uYXRpdmVJbnQpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIGNsaXBSZWN0KENhbnZhcyB0aGlzQ2FudmFzLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0LAotICAgICAgICAgICAgaW50IGJvdHRvbSkgewotCi0gICAgICAgIHJldHVybiBjbGlwUmVjdCh0aGlzQ2FudmFzLCAoZmxvYXQpIGxlZnQsIChmbG9hdCkgdG9wLCAoZmxvYXQpIHJpZ2h0LCAoZmxvYXQpIGJvdHRvbSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBzYXZlKENhbnZhcyB0aGlzQ2FudmFzKSB7Ci0gICAgICAgIHJldHVybiBzYXZlKHRoaXNDYW52YXMsIENhbnZhcy5NQVRSSVhfU0FWRV9GTEFHIHwgQ2FudmFzLkNMSVBfU0FWRV9GTEFHKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IHNhdmUoQ2FudmFzIHRoaXNDYW52YXMsIGludCBzYXZlRmxhZ3MpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBDYW52YXNfRGVsZWdhdGUgY2FudmFzRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzQ2FudmFzLm1OYXRpdmVDYW52YXMpOwotICAgICAgICBpZiAoY2FudmFzRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gY2FudmFzRGVsZWdhdGUuc2F2ZShzYXZlRmxhZ3MpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIHJlc3RvcmUoQ2FudmFzIHRoaXNDYW52YXMpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBDYW52YXNfRGVsZWdhdGUgY2FudmFzRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzQ2FudmFzLm1OYXRpdmVDYW52YXMpOwotICAgICAgICBpZiAoY2FudmFzRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FudmFzRGVsZWdhdGUucmVzdG9yZSgpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgZ2V0U2F2ZUNvdW50KENhbnZhcyB0aGlzQ2FudmFzKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc0NhbnZhcy5tTmF0aXZlQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGNhbnZhc0RlbGVnYXRlLmdldFNuYXBzaG90KCkuc2l6ZSgpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIHJlc3RvcmVUb0NvdW50KENhbnZhcyB0aGlzQ2FudmFzLCBpbnQgc2F2ZUNvdW50KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc0NhbnZhcy5tTmF0aXZlQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGNhbnZhc0RlbGVnYXRlLnJlc3RvcmVUbyhzYXZlQ291bnQpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIGRyYXdQb2ludHMoQ2FudmFzIHRoaXNDYW52YXMsIGZsb2F0W10gcHRzLCBpbnQgb2Zmc2V0LCBpbnQgY291bnQsCi0gICAgICAgICAgICBQYWludCBwYWludCkgewotICAgICAgICAvLyBGSVhNRQotICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZmlkZWxpdHlXYXJuaW5nKExheW91dExvZy5UQUdfVU5TVVBQT1JURUQsCi0gICAgICAgICAgICAgICAgIkNhbnZhcy5kcmF3UG9pbnQgaXMgbm90IHN1cHBvcnRlZC4iLCBudWxsLCBudWxsIC8qZGF0YSovKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBkcmF3UG9pbnQoQ2FudmFzIHRoaXNDYW52YXMsIGZsb2F0IHgsIGZsb2F0IHksIFBhaW50IHBhaW50KSB7Ci0gICAgICAgIC8vIEZJWE1FCi0gICAgICAgIEJyaWRnZS5nZXRMb2coKS5maWRlbGl0eVdhcm5pbmcoTGF5b3V0TG9nLlRBR19VTlNVUFBPUlRFRCwKLSAgICAgICAgICAgICAgICAiQ2FudmFzLmRyYXdQb2ludCBpcyBub3Qgc3VwcG9ydGVkLiIsIG51bGwsIG51bGwgLypkYXRhKi8pOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIGRyYXdMaW5lcyhDYW52YXMgdGhpc0NhbnZhcywKLSAgICAgICAgICAgIGZpbmFsIGZsb2F0W10gcHRzLCBmaW5hbCBpbnQgb2Zmc2V0LCBmaW5hbCBpbnQgY291bnQsCi0gICAgICAgICAgICBQYWludCBwYWludCkgewotICAgICAgICBkcmF3KHRoaXNDYW52YXMubU5hdGl2ZUNhbnZhcywgcGFpbnQubU5hdGl2ZVBhaW50LCBmYWxzZSAvKmNvbXBvc2l0ZU9ubHkqLywKLSAgICAgICAgICAgICAgICBmYWxzZSAvKmZvcmNlU3JjTW9kZSovLCBuZXcgR2NTbmFwc2hvdC5EcmF3YWJsZSgpIHsKLSAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGRyYXcoR3JhcGhpY3MyRCBncmFwaGljcywgUGFpbnRfRGVsZWdhdGUgcGFpbnREZWxlZ2F0ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgY291bnQgOyBpICs9IDQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFwaGljcy5kcmF3TGluZSgoaW50KXB0c1tpICsgb2Zmc2V0XSwgKGludClwdHNbaSArIG9mZnNldCArIDFdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludClwdHNbaSArIG9mZnNldCArIDJdLCAoaW50KXB0c1tpICsgb2Zmc2V0ICsgM10pOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgZnJlZUNhY2hlcygpIHsKLSAgICAgICAgLy8gbm90aGluZyB0byBiZSBkb25lIGhlcmUuCi0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgZnJlZVRleHRMYXlvdXRDYWNoZXMoKSB7Ci0gICAgICAgIC8vIG5vdGhpbmcgdG8gYmUgZG9uZSBoZXJlIHlldC4KLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IGluaXRSYXN0ZXIoaW50IG5hdGl2ZUJpdG1hcE9yWmVybykgewotICAgICAgICBpZiAobmF0aXZlQml0bWFwT3JaZXJvID4gMCkgewotICAgICAgICAgICAgLy8gZ2V0IHRoZSBCaXRtYXAgZnJvbSB0aGUgaW50Ci0gICAgICAgICAgICBCaXRtYXBfRGVsZWdhdGUgYml0bWFwRGVsZWdhdGUgPSBCaXRtYXBfRGVsZWdhdGUuZ2V0RGVsZWdhdGUobmF0aXZlQml0bWFwT3JaZXJvKTsKLQotICAgICAgICAgICAgLy8gY3JlYXRlIGEgbmV3IENhbnZhc19EZWxlZ2F0ZSB3aXRoIHRoZSBnaXZlbiBiaXRtYXAgYW5kIHJldHVybiBpdHMgbmV3IG5hdGl2ZSBpbnQuCi0gICAgICAgICAgICBDYW52YXNfRGVsZWdhdGUgbmV3RGVsZWdhdGUgPSBuZXcgQ2FudmFzX0RlbGVnYXRlKGJpdG1hcERlbGVnYXRlKTsKLQotICAgICAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmFkZE5ld0RlbGVnYXRlKG5ld0RlbGVnYXRlKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGNyZWF0ZSBhIG5ldyBDYW52YXNfRGVsZWdhdGUgYW5kIHJldHVybiBpdHMgbmV3IG5hdGl2ZSBpbnQuCi0gICAgICAgIENhbnZhc19EZWxlZ2F0ZSBuZXdEZWxlZ2F0ZSA9IG5ldyBDYW52YXNfRGVsZWdhdGUoKTsKLQotICAgICAgICByZXR1cm4gc01hbmFnZXIuYWRkTmV3RGVsZWdhdGUobmV3RGVsZWdhdGUpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIGNvcHlOYXRpdmVDYW52YXNTdGF0ZShpbnQgc3JjQ2FudmFzLCBpbnQgZHN0Q2FudmFzKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIHNyY0NhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoc3JjQ2FudmFzKTsKLSAgICAgICAgaWYgKHNyY0NhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGRzdENhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoZHN0Q2FudmFzKTsKLSAgICAgICAgaWYgKGRzdENhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAvLyBUT0RPOiBhY3R1YWxseSBjb3B5IHRoZSBjYW52YXMgc3RhdGUuCi0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVfc2F2ZUxheWVyKGludCBuYXRpdmVDYW52YXMsIFJlY3RGIGJvdW5kcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBhaW50LCBpbnQgbGF5ZXJGbGFncykgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIENhbnZhc19EZWxlZ2F0ZSBjYW52YXNEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZUNhbnZhcyk7Ci0gICAgICAgIGlmIChjYW52YXNEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIHBhaW50RGVsZWdhdGUgPSBQYWludF9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZShwYWludCk7Ci0gICAgICAgIGlmIChwYWludERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGNhbnZhc0RlbGVnYXRlLnNhdmVMYXllcihib3VuZHMsIHBhaW50RGVsZWdhdGUsIGxheWVyRmxhZ3MpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlX3NhdmVMYXllcihpbnQgbmF0aXZlQ2FudmFzLCBmbG9hdCBsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB0LCBmbG9hdCByLCBmbG9hdCBiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFpbnQsIGludCBsYXllckZsYWdzKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgcGFpbnREZWxlZ2F0ZSA9IFBhaW50X0RlbGVnYXRlLmdldERlbGVnYXRlKHBhaW50KTsKLSAgICAgICAgaWYgKHBhaW50RGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gY2FudmFzRGVsZWdhdGUuc2F2ZUxheWVyKG5ldyBSZWN0RihsLCB0LCByLCBiKSwKLSAgICAgICAgICAgICAgICBwYWludERlbGVnYXRlLCBsYXllckZsYWdzKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZV9zYXZlTGF5ZXJBbHBoYShpbnQgbmF0aXZlQ2FudmFzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY3RGIGJvdW5kcywgaW50IGFscGhhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsYXllckZsYWdzKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGNhbnZhc0RlbGVnYXRlLnNhdmVMYXllckFscGhhKGJvdW5kcywgYWxwaGEsIGxheWVyRmxhZ3MpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlX3NhdmVMYXllckFscGhhKGludCBuYXRpdmVDYW52YXMsIGZsb2F0IGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgdCwgZmxvYXQgciwgZmxvYXQgYiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWxwaGEsIGludCBsYXllckZsYWdzKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGNhbnZhc0RlbGVnYXRlLnNhdmVMYXllckFscGhhKG5ldyBSZWN0RihsLCB0LCByLCBiKSwgYWxwaGEsIGxheWVyRmxhZ3MpOwotICAgIH0KLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2NvbmNhdChpbnQgbkNhbnZhcywgaW50IG5NYXRyaXgpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBDYW52YXNfRGVsZWdhdGUgY2FudmFzRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBtYXRyaXhEZWxlZ2F0ZSA9IE1hdHJpeF9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZShuTWF0cml4KTsKLSAgICAgICAgaWYgKG1hdHJpeERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGdldCB0aGUgY3VycmVudCB0b3AgZ3JhcGhpY3MyRCBvYmplY3QuCi0gICAgICAgIEdjU25hcHNob3Qgc25hcHNob3QgPSBjYW52YXNEZWxlZ2F0ZS5nZXRTbmFwc2hvdCgpOwotCi0gICAgICAgIC8vIGdldCBpdHMgY3VycmVudCBtYXRyaXgKLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGN1cnJlbnRUeCA9IHNuYXBzaG90LmdldFRyYW5zZm9ybSgpOwotICAgICAgICAvLyBnZXQgdGhlIEFmZmluZVRyYW5zZm9ybSBvZiB0aGUgZ2l2ZW4gbWF0cml4Ci0gICAgICAgIEFmZmluZVRyYW5zZm9ybSBtYXRyaXhUeCA9IG1hdHJpeERlbGVnYXRlLmdldEFmZmluZVRyYW5zZm9ybSgpOwotCi0gICAgICAgIC8vIGNvbWJpbmUgdGhlbSBzbyB0aGF0IHRoZSBnaXZlbiBtYXRyaXggaXMgYXBwbGllZCBhZnRlci4KLSAgICAgICAgY3VycmVudFR4LmNvbmNhdGVuYXRlKG1hdHJpeFR4KTsKLQotICAgICAgICAvLyBnaXZlIGl0IHRvIHRoZSBncmFwaGljczJEIGFzIGEgbmV3IG1hdHJpeCByZXBsYWNpbmcgYWxsIHByZXZpb3VzIHRyYW5zZm9ybQotICAgICAgICBzbmFwc2hvdC5zZXRUcmFuc2Zvcm0oY3VycmVudFR4KTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfc2V0TWF0cml4KGludCBuQ2FudmFzLCBpbnQgbk1hdHJpeCkgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIENhbnZhc19EZWxlZ2F0ZSBjYW52YXNEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5DYW52YXMpOwotICAgICAgICBpZiAoY2FudmFzRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIG1hdHJpeERlbGVnYXRlID0gTWF0cml4X0RlbGVnYXRlLmdldERlbGVnYXRlKG5NYXRyaXgpOwotICAgICAgICBpZiAobWF0cml4RGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gZ2V0IHRoZSBjdXJyZW50IHRvcCBncmFwaGljczJEIG9iamVjdC4KLSAgICAgICAgR2NTbmFwc2hvdCBzbmFwc2hvdCA9IGNhbnZhc0RlbGVnYXRlLmdldFNuYXBzaG90KCk7Ci0KLSAgICAgICAgLy8gZ2V0IHRoZSBBZmZpbmVUcmFuc2Zvcm0gb2YgdGhlIGdpdmVuIG1hdHJpeAotICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gbWF0cml4VHggPSBtYXRyaXhEZWxlZ2F0ZS5nZXRBZmZpbmVUcmFuc2Zvcm0oKTsKLQotICAgICAgICAvLyBnaXZlIGl0IHRvIHRoZSBncmFwaGljczJEIGFzIGEgbmV3IG1hdHJpeCByZXBsYWNpbmcgYWxsIHByZXZpb3VzIHRyYW5zZm9ybQotICAgICAgICBzbmFwc2hvdC5zZXRUcmFuc2Zvcm0obWF0cml4VHgpOwotCi0gICAgICAgIGlmIChtYXRyaXhEZWxlZ2F0ZS5oYXNQZXJzcGVjdGl2ZSgpKSB7Ci0gICAgICAgICAgICBhc3NlcnQgZmFsc2U7Ci0gICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZmlkZWxpdHlXYXJuaW5nKExheW91dExvZy5UQUdfTUFUUklYX0FGRklORSwKLSAgICAgICAgICAgICAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuQ2FudmFzI3NldE1hdHJpeChhbmRyb2lkLmdyYXBoaWNzLk1hdHJpeCkgb25seSAiICsKLSAgICAgICAgICAgICAgICAgICAgInN1cHBvcnRzIGFmZmluZSB0cmFuc2Zvcm1hdGlvbnMuIiwgbnVsbCwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVfY2xpcFJlY3QoaW50IG5DYW52YXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGxlZnQsIGZsb2F0IHRvcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlZ2lvbk9wKSB7Ci0KLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBDYW52YXNfRGVsZWdhdGUgY2FudmFzRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBjYW52YXNEZWxlZ2F0ZS5jbGlwUmVjdChsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20sIHJlZ2lvbk9wKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVfY2xpcFBhdGgoaW50IG5hdGl2ZUNhbnZhcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5hdGl2ZVBhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWdpb25PcCkgewotICAgICAgICBDYW52YXNfRGVsZWdhdGUgY2FudmFzRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVDYW52YXMpOwotICAgICAgICBpZiAoY2FudmFzRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBQYXRoX0RlbGVnYXRlIHBhdGhEZWxlZ2F0ZSA9IFBhdGhfRGVsZWdhdGUuZ2V0RGVsZWdhdGUobmF0aXZlUGF0aCk7Ci0gICAgICAgIGlmIChwYXRoRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gY2FudmFzRGVsZWdhdGUubVNuYXBzaG90LmNsaXAocGF0aERlbGVnYXRlLmdldEphdmFTaGFwZSgpLCByZWdpb25PcCk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX2NsaXBSZWdpb24oaW50IG5hdGl2ZUNhbnZhcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmF0aXZlUmVnaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWdpb25PcCkgewotICAgICAgICBDYW52YXNfRGVsZWdhdGUgY2FudmFzRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVDYW52YXMpOwotICAgICAgICBpZiAoY2FudmFzRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBSZWdpb25fRGVsZWdhdGUgcmVnaW9uID0gUmVnaW9uX0RlbGVnYXRlLmdldERlbGVnYXRlKG5hdGl2ZVJlZ2lvbik7Ci0gICAgICAgIGlmIChyZWdpb24gPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gY2FudmFzRGVsZWdhdGUubVNuYXBzaG90LmNsaXAocmVnaW9uLmdldEphdmFBcmVhKCksIHJlZ2lvbk9wKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVTZXREcmF3RmlsdGVyKGludCBuYXRpdmVDYW52YXMsIGludCBuYXRpdmVGaWx0ZXIpIHsKLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGNhbnZhc0RlbGVnYXRlLm1EcmF3RmlsdGVyID0gRHJhd0ZpbHRlcl9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZShuYXRpdmVGaWx0ZXIpOwotCi0gICAgICAgIGlmIChjYW52YXNEZWxlZ2F0ZS5tRHJhd0ZpbHRlciAhPSBudWxsICYmCi0gICAgICAgICAgICAgICAgY2FudmFzRGVsZWdhdGUubURyYXdGaWx0ZXIuaXNTdXBwb3J0ZWQoKSA9PSBmYWxzZSkgewotICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX0RSQVdGSUxURVIsCi0gICAgICAgICAgICAgICAgICAgIGNhbnZhc0RlbGVnYXRlLm1EcmF3RmlsdGVyLmdldFN1cHBvcnRNZXNzYWdlKCksIG51bGwsIG51bGwgLypkYXRhKi8pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX2dldENsaXBCb3VuZHMoaW50IG5hdGl2ZUNhbnZhcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0IGJvdW5kcykgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIENhbnZhc19EZWxlZ2F0ZSBjYW52YXNEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZUNhbnZhcyk7Ci0gICAgICAgIGlmIChjYW52YXNEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBSZWN0YW5nbGUgcmVjdCA9IGNhbnZhc0RlbGVnYXRlLmdldFNuYXBzaG90KCkuZ2V0Q2xpcCgpLmdldEJvdW5kcygpOwotICAgICAgICBpZiAocmVjdCAhPSBudWxsICYmIHJlY3QuaXNFbXB0eSgpID09IGZhbHNlKSB7Ci0gICAgICAgICAgICBib3VuZHMubGVmdCA9IHJlY3QueDsKLSAgICAgICAgICAgIGJvdW5kcy50b3AgPSByZWN0Lnk7Ci0gICAgICAgICAgICBib3VuZHMucmlnaHQgPSByZWN0LnggKyByZWN0LndpZHRoOwotICAgICAgICAgICAgYm91bmRzLmJvdHRvbSA9IHJlY3QueSArIHJlY3QuaGVpZ2h0OwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2dldENUTShpbnQgY2FudmFzLCBpbnQgbWF0cml4KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoY2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBtYXRyaXhEZWxlZ2F0ZSA9IE1hdHJpeF9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZShtYXRyaXgpOwotICAgICAgICBpZiAobWF0cml4RGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgQWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IGNhbnZhc0RlbGVnYXRlLmdldFNuYXBzaG90KCkuZ2V0VHJhbnNmb3JtKCk7Ci0gICAgICAgIG1hdHJpeERlbGVnYXRlLnNldChNYXRyaXhfRGVsZWdhdGUubWFrZVZhbHVlcyh0cmFuc2Zvcm0pKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVfcXVpY2tSZWplY3QoaW50IG5hdGl2ZUNhbnZhcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdEYgcmVjdCkgewotICAgICAgICAvLyBGSVhNRSBwcm9wZXJseSBpbXBsZW1lbnQgcXVpY2tSZWplY3QKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZV9xdWlja1JlamVjdChpbnQgbmF0aXZlQ2FudmFzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGF0aCkgewotICAgICAgICAvLyBGSVhNRSBwcm9wZXJseSBpbXBsZW1lbnQgcXVpY2tSZWplY3QKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZV9xdWlja1JlamVjdChpbnQgbmF0aXZlQ2FudmFzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBsZWZ0LCBmbG9hdCB0b3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20pIHsKLSAgICAgICAgLy8gRklYTUUgcHJvcGVybHkgaW1wbGVtZW50IHF1aWNrUmVqZWN0Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfZHJhd1JHQihpbnQgbmF0aXZlQ2FudmFzLCBpbnQgciwgaW50IGcsIGludCBiKSB7Ci0gICAgICAgIG5hdGl2ZV9kcmF3Q29sb3IobmF0aXZlQ2FudmFzLCAweEZGMDAwMDAwIHwgciA8PCAxNiB8IChnJjB4RkYpIDw8IDggfCAoYiYweEZGKSwKLSAgICAgICAgICAgICAgICBQb3J0ZXJEdWZmLk1vZGUuU1JDX09WRVIubmF0aXZlSW50KTsKLQotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9kcmF3QVJHQihpbnQgbmF0aXZlQ2FudmFzLCBpbnQgYSwgaW50IHIsIGludCBnLCBpbnQgYikgewotICAgICAgICBuYXRpdmVfZHJhd0NvbG9yKG5hdGl2ZUNhbnZhcywgYSA8PCAyNCB8IChyJjB4RkYpIDw8IDE2IHwgKGcmMHhGRikgPDwgOCB8IChiJjB4RkYpLAotICAgICAgICAgICAgICAgIFBvcnRlckR1ZmYuTW9kZS5TUkNfT1ZFUi5uYXRpdmVJbnQpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9kcmF3Q29sb3IoaW50IG5hdGl2ZUNhbnZhcywgaW50IGNvbG9yKSB7Ci0gICAgICAgIG5hdGl2ZV9kcmF3Q29sb3IobmF0aXZlQ2FudmFzLCBjb2xvciwgUG9ydGVyRHVmZi5Nb2RlLlNSQ19PVkVSLm5hdGl2ZUludCk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2RyYXdDb2xvcihpbnQgbmF0aXZlQ2FudmFzLCBmaW5hbCBpbnQgY29sb3IsIGZpbmFsIGludCBtb2RlKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGZpbmFsIGludCB3ID0gY2FudmFzRGVsZWdhdGUubUJpdG1hcC5nZXRJbWFnZSgpLmdldFdpZHRoKCk7Ci0gICAgICAgIGZpbmFsIGludCBoID0gY2FudmFzRGVsZWdhdGUubUJpdG1hcC5nZXRJbWFnZSgpLmdldEhlaWdodCgpOwotICAgICAgICBkcmF3KG5hdGl2ZUNhbnZhcywgbmV3IEdjU25hcHNob3QuRHJhd2FibGUoKSB7Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgZHJhdyhHcmFwaGljczJEIGdyYXBoaWNzLCBQYWludF9EZWxlZ2F0ZSBwYWludCkgewotICAgICAgICAgICAgICAgIC8vIHJlc2V0IGl0cyB0cmFuc2Zvcm0ganVzdCBpbiBjYXNlCi0gICAgICAgICAgICAgICAgZ3JhcGhpY3Muc2V0VHJhbnNmb3JtKG5ldyBBZmZpbmVUcmFuc2Zvcm0oKSk7Ci0KLSAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIGNvbG9yCi0gICAgICAgICAgICAgICAgZ3JhcGhpY3Muc2V0Q29sb3IobmV3IENvbG9yKGNvbG9yLCB0cnVlIC8qYWxwaGEqLykpOwotCi0gICAgICAgICAgICAgICAgQ29tcG9zaXRlIGNvbXBvc2l0ZSA9IFBvcnRlckR1ZmZYZmVybW9kZV9EZWxlZ2F0ZS5nZXRDb21wb3NpdGUoCi0gICAgICAgICAgICAgICAgICAgICAgICBQb3J0ZXJEdWZmWGZlcm1vZGVfRGVsZWdhdGUuZ2V0UG9ydGVyRHVmZk1vZGUobW9kZSksIDB4RkYpOwotICAgICAgICAgICAgICAgIGlmIChjb21wb3NpdGUgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBncmFwaGljcy5zZXRDb21wb3NpdGUoY29tcG9zaXRlKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBncmFwaGljcy5maWxsUmVjdCgwLCAwLCB3LCBoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2RyYXdQYWludChpbnQgbmF0aXZlQ2FudmFzLCBpbnQgcGFpbnQpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX1VOU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICJDYW52YXMuZHJhd1BhaW50IGlzIG5vdCBzdXBwb3J0ZWQuIiwgbnVsbCwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2RyYXdMaW5lKGludCBuYXRpdmVDYW52YXMsCi0gICAgICAgICAgICBmaW5hbCBmbG9hdCBzdGFydFgsIGZpbmFsIGZsb2F0IHN0YXJ0WSwgZmluYWwgZmxvYXQgc3RvcFgsIGZpbmFsIGZsb2F0IHN0b3BZLAotICAgICAgICAgICAgaW50IHBhaW50KSB7Ci0KLSAgICAgICAgZHJhdyhuYXRpdmVDYW52YXMsIHBhaW50LCBmYWxzZSAvKmNvbXBvc2l0ZU9ubHkqLywgZmFsc2UgLypmb3JjZVNyY01vZGUqLywKLSAgICAgICAgICAgICAgICBuZXcgR2NTbmFwc2hvdC5EcmF3YWJsZSgpIHsKLSAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGRyYXcoR3JhcGhpY3MyRCBncmFwaGljcywgUGFpbnRfRGVsZWdhdGUgcGFpbnREZWxlZ2F0ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3MuZHJhd0xpbmUoKGludClzdGFydFgsIChpbnQpc3RhcnRZLCAoaW50KXN0b3BYLCAoaW50KXN0b3BZKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfZHJhd1JlY3QoaW50IG5hdGl2ZUNhbnZhcywgUmVjdEYgcmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBhaW50KSB7Ci0gICAgICAgIG5hdGl2ZV9kcmF3UmVjdChuYXRpdmVDYW52YXMsIHJlY3QubGVmdCwgcmVjdC50b3AsIHJlY3QucmlnaHQsIHJlY3QuYm90dG9tLCBwYWludCk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2RyYXdSZWN0KGludCBuYXRpdmVDYW52YXMsCi0gICAgICAgICAgICBmaW5hbCBmbG9hdCBsZWZ0LCBmaW5hbCBmbG9hdCB0b3AsIGZpbmFsIGZsb2F0IHJpZ2h0LCBmaW5hbCBmbG9hdCBib3R0b20sIGludCBwYWludCkgewotCi0gICAgICAgIGRyYXcobmF0aXZlQ2FudmFzLCBwYWludCwgZmFsc2UgLypjb21wb3NpdGVPbmx5Ki8sIGZhbHNlIC8qZm9yY2VTcmNNb2RlKi8sCi0gICAgICAgICAgICAgICAgbmV3IEdjU25hcHNob3QuRHJhd2FibGUoKSB7Ci0gICAgICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBkcmF3KEdyYXBoaWNzMkQgZ3JhcGhpY3MsIFBhaW50X0RlbGVnYXRlIHBhaW50RGVsZWdhdGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdHlsZSA9IHBhaW50RGVsZWdhdGUuZ2V0U3R5bGUoKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHJhdwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0eWxlID09IFBhaW50LlN0eWxlLkZJTEwubmF0aXZlSW50IHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlID09IFBhaW50LlN0eWxlLkZJTExfQU5EX1NUUk9LRS5uYXRpdmVJbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFwaGljcy5maWxsUmVjdCgoaW50KWxlZnQsIChpbnQpdG9wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkocmlnaHQtbGVmdCksIChpbnQpKGJvdHRvbS10b3ApKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0eWxlID09IFBhaW50LlN0eWxlLlNUUk9LRS5uYXRpdmVJbnQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUgPT0gUGFpbnQuU3R5bGUuRklMTF9BTkRfU1RST0tFLm5hdGl2ZUludCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzLmRyYXdSZWN0KChpbnQpbGVmdCwgKGludCl0b3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShyaWdodC1sZWZ0KSwgKGludCkoYm90dG9tLXRvcCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9kcmF3T3ZhbChpbnQgbmF0aXZlQ2FudmFzLCBmaW5hbCBSZWN0RiBvdmFsLCBpbnQgcGFpbnQpIHsKLSAgICAgICAgaWYgKG92YWwucmlnaHQgPiBvdmFsLmxlZnQgJiYgb3ZhbC5ib3R0b20gPiBvdmFsLnRvcCkgewotICAgICAgICAgICAgZHJhdyhuYXRpdmVDYW52YXMsIHBhaW50LCBmYWxzZSAvKmNvbXBvc2l0ZU9ubHkqLywgZmFsc2UgLypmb3JjZVNyY01vZGUqLywKLSAgICAgICAgICAgICAgICAgICAgbmV3IEdjU25hcHNob3QuRHJhd2FibGUoKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGRyYXcoR3JhcGhpY3MyRCBncmFwaGljcywgUGFpbnRfRGVsZWdhdGUgcGFpbnREZWxlZ2F0ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdHlsZSA9IHBhaW50RGVsZWdhdGUuZ2V0U3R5bGUoKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRyYXcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3R5bGUgPT0gUGFpbnQuU3R5bGUuRklMTC5uYXRpdmVJbnQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlID09IFBhaW50LlN0eWxlLkZJTExfQU5EX1NUUk9LRS5uYXRpdmVJbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3MuZmlsbE92YWwoKGludClvdmFsLmxlZnQsIChpbnQpb3ZhbC50b3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludClvdmFsLndpZHRoKCksIChpbnQpb3ZhbC5oZWlnaHQoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0eWxlID09IFBhaW50LlN0eWxlLlNUUk9LRS5uYXRpdmVJbnQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlID09IFBhaW50LlN0eWxlLkZJTExfQU5EX1NUUk9LRS5uYXRpdmVJbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3MuZHJhd092YWwoKGludClvdmFsLmxlZnQsIChpbnQpb3ZhbC50b3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludClvdmFsLndpZHRoKCksIChpbnQpb3ZhbC5oZWlnaHQoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfZHJhd0NpcmNsZShpbnQgbmF0aXZlQ2FudmFzLAotICAgICAgICAgICAgZmxvYXQgY3gsIGZsb2F0IGN5LCBmbG9hdCByYWRpdXMsIGludCBwYWludCkgewotICAgICAgICBuYXRpdmVfZHJhd092YWwobmF0aXZlQ2FudmFzLAotICAgICAgICAgICAgICAgIG5ldyBSZWN0RihjeCAtIHJhZGl1cywgY3kgLSByYWRpdXMsIGN4ICsgcmFkaXVzLCBjeSArIHJhZGl1cyksCi0gICAgICAgICAgICAgICAgcGFpbnQpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9kcmF3QXJjKGludCBuYXRpdmVDYW52YXMsCi0gICAgICAgICAgICBmaW5hbCBSZWN0RiBvdmFsLCBmaW5hbCBmbG9hdCBzdGFydEFuZ2xlLCBmaW5hbCBmbG9hdCBzd2VlcCwKLSAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gdXNlQ2VudGVyLCBpbnQgcGFpbnQpIHsKLSAgICAgICAgaWYgKG92YWwucmlnaHQgPiBvdmFsLmxlZnQgJiYgb3ZhbC5ib3R0b20gPiBvdmFsLnRvcCkgewotICAgICAgICAgICAgZHJhdyhuYXRpdmVDYW52YXMsIHBhaW50LCBmYWxzZSAvKmNvbXBvc2l0ZU9ubHkqLywgZmFsc2UgLypmb3JjZVNyY01vZGUqLywKLSAgICAgICAgICAgICAgICAgICAgbmV3IEdjU25hcHNob3QuRHJhd2FibGUoKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGRyYXcoR3JhcGhpY3MyRCBncmFwaGljcywgUGFpbnRfRGVsZWdhdGUgcGFpbnREZWxlZ2F0ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdHlsZSA9IHBhaW50RGVsZWdhdGUuZ2V0U3R5bGUoKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyYzJELkZsb2F0IGFyYyA9IG5ldyBBcmMyRC5GbG9hdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92YWwubGVmdCwgb3ZhbC50b3AsIG92YWwud2lkdGgoKSwgb3ZhbC5oZWlnaHQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1zdGFydEFuZ2xlLCAtc3dlZXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VDZW50ZXIgPyBBcmMyRC5QSUUgOiBBcmMyRC5PUEVOKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRyYXcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3R5bGUgPT0gUGFpbnQuU3R5bGUuRklMTC5uYXRpdmVJbnQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlID09IFBhaW50LlN0eWxlLkZJTExfQU5EX1NUUk9LRS5uYXRpdmVJbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3MuZmlsbChhcmMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHlsZSA9PSBQYWludC5TdHlsZS5TVFJPS0UubmF0aXZlSW50IHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSA9PSBQYWludC5TdHlsZS5GSUxMX0FORF9TVFJPS0UubmF0aXZlSW50KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzLmRyYXcoYXJjKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9kcmF3Um91bmRSZWN0KGludCBuYXRpdmVDYW52YXMsCi0gICAgICAgICAgICBmaW5hbCBSZWN0RiByZWN0LCBmaW5hbCBmbG9hdCByeCwgZmluYWwgZmxvYXQgcnksIGludCBwYWludCkgewotCi0gICAgICAgIGRyYXcobmF0aXZlQ2FudmFzLCBwYWludCwgZmFsc2UgLypjb21wb3NpdGVPbmx5Ki8sIGZhbHNlIC8qZm9yY2VTcmNNb2RlKi8sCi0gICAgICAgICAgICAgICAgbmV3IEdjU25hcHNob3QuRHJhd2FibGUoKSB7Ci0gICAgICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBkcmF3KEdyYXBoaWNzMkQgZ3JhcGhpY3MsIFBhaW50X0RlbGVnYXRlIHBhaW50RGVsZWdhdGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdHlsZSA9IHBhaW50RGVsZWdhdGUuZ2V0U3R5bGUoKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHJhdwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0eWxlID09IFBhaW50LlN0eWxlLkZJTEwubmF0aXZlSW50IHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlID09IFBhaW50LlN0eWxlLkZJTExfQU5EX1NUUk9LRS5uYXRpdmVJbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFwaGljcy5maWxsUm91bmRSZWN0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludClyZWN0LmxlZnQsIChpbnQpcmVjdC50b3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KXJlY3Qud2lkdGgoKSwgKGludClyZWN0LmhlaWdodCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludClyeCwgKGludClyeSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHlsZSA9PSBQYWludC5TdHlsZS5TVFJPS0UubmF0aXZlSW50IHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlID09IFBhaW50LlN0eWxlLkZJTExfQU5EX1NUUk9LRS5uYXRpdmVJbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFwaGljcy5kcmF3Um91bmRSZWN0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludClyZWN0LmxlZnQsIChpbnQpcmVjdC50b3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KXJlY3Qud2lkdGgoKSwgKGludClyZWN0LmhlaWdodCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludClyeCwgKGludClyeSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2RyYXdQYXRoKGludCBuYXRpdmVDYW52YXMsIGludCBwYXRoLCBpbnQgcGFpbnQpIHsKLSAgICAgICAgZmluYWwgUGF0aF9EZWxlZ2F0ZSBwYXRoRGVsZWdhdGUgPSBQYXRoX0RlbGVnYXRlLmdldERlbGVnYXRlKHBhdGgpOwotICAgICAgICBpZiAocGF0aERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGRyYXcobmF0aXZlQ2FudmFzLCBwYWludCwgZmFsc2UgLypjb21wb3NpdGVPbmx5Ki8sIGZhbHNlIC8qZm9yY2VTcmNNb2RlKi8sCi0gICAgICAgICAgICAgICAgbmV3IEdjU25hcHNob3QuRHJhd2FibGUoKSB7Ci0gICAgICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBkcmF3KEdyYXBoaWNzMkQgZ3JhcGhpY3MsIFBhaW50X0RlbGVnYXRlIHBhaW50RGVsZWdhdGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFNoYXBlIHNoYXBlID0gcGF0aERlbGVnYXRlLmdldEphdmFTaGFwZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0eWxlID0gcGFpbnREZWxlZ2F0ZS5nZXRTdHlsZSgpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3R5bGUgPT0gUGFpbnQuU3R5bGUuRklMTC5uYXRpdmVJbnQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUgPT0gUGFpbnQuU3R5bGUuRklMTF9BTkRfU1RST0tFLm5hdGl2ZUludCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzLmZpbGwoc2hhcGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3R5bGUgPT0gUGFpbnQuU3R5bGUuU1RST0tFLm5hdGl2ZUludCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSA9PSBQYWludC5TdHlsZS5GSUxMX0FORF9TVFJPS0UubmF0aXZlSW50KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3MuZHJhdyhzaGFwZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2RyYXdCaXRtYXAoQ2FudmFzIHRoaXNDYW52YXMsIGludCBuYXRpdmVDYW52YXMsIGludCBiaXRtYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgbGVmdCwgZmxvYXQgdG9wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYXRpdmVQYWludE9yWmVybywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2FudmFzRGVuc2l0eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2NyZWVuRGVuc2l0eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYml0bWFwRGVuc2l0eSkgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIEJpdG1hcF9EZWxlZ2F0ZSBiaXRtYXBEZWxlZ2F0ZSA9IEJpdG1hcF9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZShiaXRtYXApOwotICAgICAgICBpZiAoYml0bWFwRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgQnVmZmVyZWRJbWFnZSBpbWFnZSA9IGJpdG1hcERlbGVnYXRlLmdldEltYWdlKCk7Ci0gICAgICAgIGZsb2F0IHJpZ2h0ID0gbGVmdCArIGltYWdlLmdldFdpZHRoKCk7Ci0gICAgICAgIGZsb2F0IGJvdHRvbSA9IHRvcCArIGltYWdlLmdldEhlaWdodCgpOwotCi0gICAgICAgIGRyYXdCaXRtYXAobmF0aXZlQ2FudmFzLCBiaXRtYXBEZWxlZ2F0ZSwgbmF0aXZlUGFpbnRPclplcm8sCi0gICAgICAgICAgICAgICAgMCwgMCwgaW1hZ2UuZ2V0V2lkdGgoKSwgaW1hZ2UuZ2V0SGVpZ2h0KCksCi0gICAgICAgICAgICAgICAgKGludClsZWZ0LCAoaW50KXRvcCwgKGludClyaWdodCwgKGludClib3R0b20pOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9kcmF3Qml0bWFwKENhbnZhcyB0aGlzQ2FudmFzLCBpbnQgbmF0aXZlQ2FudmFzLCBpbnQgYml0bWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY3Qgc3JjLCBSZWN0RiBkc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5hdGl2ZVBhaW50T3JaZXJvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzY3JlZW5EZW5zaXR5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBiaXRtYXBEZW5zaXR5KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQml0bWFwX0RlbGVnYXRlIGJpdG1hcERlbGVnYXRlID0gQml0bWFwX0RlbGVnYXRlLmdldERlbGVnYXRlKGJpdG1hcCk7Ci0gICAgICAgIGlmIChiaXRtYXBEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBCdWZmZXJlZEltYWdlIGltYWdlID0gYml0bWFwRGVsZWdhdGUuZ2V0SW1hZ2UoKTsKLQotICAgICAgICBpZiAoc3JjID09IG51bGwpIHsKLSAgICAgICAgICAgIGRyYXdCaXRtYXAobmF0aXZlQ2FudmFzLCBiaXRtYXBEZWxlZ2F0ZSwgbmF0aXZlUGFpbnRPclplcm8sCi0gICAgICAgICAgICAgICAgICAgIDAsIDAsIGltYWdlLmdldFdpZHRoKCksIGltYWdlLmdldEhlaWdodCgpLAotICAgICAgICAgICAgICAgICAgICAoaW50KWRzdC5sZWZ0LCAoaW50KWRzdC50b3AsIChpbnQpZHN0LnJpZ2h0LCAoaW50KWRzdC5ib3R0b20pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZHJhd0JpdG1hcChuYXRpdmVDYW52YXMsIGJpdG1hcERlbGVnYXRlLCBuYXRpdmVQYWludE9yWmVybywKLSAgICAgICAgICAgICAgICAgICAgc3JjLmxlZnQsIHNyYy50b3AsIHNyYy53aWR0aCgpLCBzcmMuaGVpZ2h0KCksCi0gICAgICAgICAgICAgICAgICAgIChpbnQpZHN0LmxlZnQsIChpbnQpZHN0LnRvcCwgKGludClkc3QucmlnaHQsIChpbnQpZHN0LmJvdHRvbSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfZHJhd0JpdG1hcChpbnQgbmF0aXZlQ2FudmFzLCBpbnQgYml0bWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY3Qgc3JjLCBSZWN0IGRzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmF0aXZlUGFpbnRPclplcm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNjcmVlbkRlbnNpdHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJpdG1hcERlbnNpdHkpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBCaXRtYXBfRGVsZWdhdGUgYml0bWFwRGVsZWdhdGUgPSBCaXRtYXBfRGVsZWdhdGUuZ2V0RGVsZWdhdGUoYml0bWFwKTsKLSAgICAgICAgaWYgKGJpdG1hcERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIEJ1ZmZlcmVkSW1hZ2UgaW1hZ2UgPSBiaXRtYXBEZWxlZ2F0ZS5nZXRJbWFnZSgpOwotCi0gICAgICAgIGlmIChzcmMgPT0gbnVsbCkgewotICAgICAgICAgICAgZHJhd0JpdG1hcChuYXRpdmVDYW52YXMsIGJpdG1hcERlbGVnYXRlLCBuYXRpdmVQYWludE9yWmVybywKLSAgICAgICAgICAgICAgICAgICAgMCwgMCwgaW1hZ2UuZ2V0V2lkdGgoKSwgaW1hZ2UuZ2V0SGVpZ2h0KCksCi0gICAgICAgICAgICAgICAgICAgIGRzdC5sZWZ0LCBkc3QudG9wLCBkc3QucmlnaHQsIGRzdC5ib3R0b20pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZHJhd0JpdG1hcChuYXRpdmVDYW52YXMsIGJpdG1hcERlbGVnYXRlLCBuYXRpdmVQYWludE9yWmVybywKLSAgICAgICAgICAgICAgICAgICAgc3JjLmxlZnQsIHNyYy50b3AsIHNyYy53aWR0aCgpLCBzcmMuaGVpZ2h0KCksCi0gICAgICAgICAgICAgICAgICAgIGRzdC5sZWZ0LCBkc3QudG9wLCBkc3QucmlnaHQsIGRzdC5ib3R0b20pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2RyYXdCaXRtYXAoaW50IG5hdGl2ZUNhbnZhcywgaW50W10gY29sb3JzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCwgaW50IHN0cmlkZSwgZmluYWwgZmxvYXQgeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBmbG9hdCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBoYXNBbHBoYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmF0aXZlUGFpbnRPclplcm8pIHsKLQotICAgICAgICAvLyBjcmVhdGUgYSB0ZW1wIEJ1ZmZlcmVkSW1hZ2UgY29udGFpbmluZyB0aGUgY29udGVudC4KLSAgICAgICAgZmluYWwgQnVmZmVyZWRJbWFnZSBpbWFnZSA9IG5ldyBCdWZmZXJlZEltYWdlKHdpZHRoLCBoZWlnaHQsCi0gICAgICAgICAgICAgICAgaGFzQWxwaGEgPyBCdWZmZXJlZEltYWdlLlRZUEVfSU5UX0FSR0IgOiBCdWZmZXJlZEltYWdlLlRZUEVfSU5UX1JHQik7Ci0gICAgICAgIGltYWdlLnNldFJHQigwLCAwLCB3aWR0aCwgaGVpZ2h0LCBjb2xvcnMsIG9mZnNldCwgc3RyaWRlKTsKLQotICAgICAgICBkcmF3KG5hdGl2ZUNhbnZhcywgbmF0aXZlUGFpbnRPclplcm8sIHRydWUgLypjb21wb3NpdGVPbmx5Ki8sIGZhbHNlIC8qZm9yY2VTcmNNb2RlKi8sCi0gICAgICAgICAgICAgICAgbmV3IEdjU25hcHNob3QuRHJhd2FibGUoKSB7Ci0gICAgICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBkcmF3KEdyYXBoaWNzMkQgZ3JhcGhpY3MsIFBhaW50X0RlbGVnYXRlIHBhaW50KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFpbnQgIT0gbnVsbCAmJiBwYWludC5pc0ZpbHRlckJpdG1hcCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3Muc2V0UmVuZGVyaW5nSGludChSZW5kZXJpbmdIaW50cy5LRVlfSU5URVJQT0xBVElPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbmRlcmluZ0hpbnRzLlZBTFVFX0lOVEVSUE9MQVRJT05fQklMSU5FQVIpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICBncmFwaGljcy5kcmF3SW1hZ2UoaW1hZ2UsIChpbnQpIHgsIChpbnQpIHksIG51bGwpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZURyYXdCaXRtYXBNYXRyaXgoaW50IG5DYW52YXMsIGludCBuQml0bWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5NYXRyaXgsIGludCBuUGFpbnQpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBDYW52YXNfRGVsZWdhdGUgY2FudmFzRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludCwgd2hpY2ggY2FuIGJlIG51bGwKLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgcGFpbnREZWxlZ2F0ZSA9IFBhaW50X0RlbGVnYXRlLmdldERlbGVnYXRlKG5QYWludCk7Ci0KLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBCaXRtYXBfRGVsZWdhdGUgYml0bWFwRGVsZWdhdGUgPSBCaXRtYXBfRGVsZWdhdGUuZ2V0RGVsZWdhdGUobkJpdG1hcCk7Ci0gICAgICAgIGlmIChiaXRtYXBEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBmaW5hbCBCdWZmZXJlZEltYWdlIGltYWdlID0gZ2V0SW1hZ2VUb0RyYXcoYml0bWFwRGVsZWdhdGUsIHBhaW50RGVsZWdhdGUsIHNCb29sT3V0KTsKLQotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgbWF0cml4RGVsZWdhdGUgPSBNYXRyaXhfRGVsZWdhdGUuZ2V0RGVsZWdhdGUobk1hdHJpeCk7Ci0gICAgICAgIGlmIChtYXRyaXhEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBmaW5hbCBBZmZpbmVUcmFuc2Zvcm0gbXR4ID0gbWF0cml4RGVsZWdhdGUuZ2V0QWZmaW5lVHJhbnNmb3JtKCk7Ci0KLSAgICAgICAgY2FudmFzRGVsZWdhdGUuZ2V0U25hcHNob3QoKS5kcmF3KG5ldyBHY1NuYXBzaG90LkRyYXdhYmxlKCkgewotICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGRyYXcoR3JhcGhpY3MyRCBncmFwaGljcywgUGFpbnRfRGVsZWdhdGUgcGFpbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHBhaW50ICE9IG51bGwgJiYgcGFpbnQuaXNGaWx0ZXJCaXRtYXAoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3Muc2V0UmVuZGVyaW5nSGludChSZW5kZXJpbmdIaW50cy5LRVlfSU5URVJQT0xBVElPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVuZGVyaW5nSGludHMuVkFMVUVfSU5URVJQT0xBVElPTl9CSUxJTkVBUik7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAvL0ZJWE1FIGFkZCBzdXBwb3J0IGZvciBjYW52YXMsIHNjcmVlbiBhbmQgYml0bWFwIGRlbnNpdGllcy4KLSAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3MuZHJhd0ltYWdlKGltYWdlLCBtdHgsIG51bGwpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgfSwgcGFpbnREZWxlZ2F0ZSwgdHJ1ZSAvKmNvbXBvc2l0ZU9ubHkqLywgZmFsc2UgLypmb3JjZVNyY01vZGUqLyk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlRHJhd0JpdG1hcE1lc2goaW50IG5DYW52YXMsIGludCBuQml0bWFwLAotICAgICAgICAgICAgaW50IG1lc2hXaWR0aCwgaW50IG1lc2hIZWlnaHQsIGZsb2F0W10gdmVydHMsIGludCB2ZXJ0T2Zmc2V0LCBpbnRbXSBjb2xvcnMsCi0gICAgICAgICAgICBpbnQgY29sb3JPZmZzZXQsIGludCBuUGFpbnQpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX1VOU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICJDYW52YXMuZHJhd0JpdG1hcE1lc2ggaXMgbm90IHN1cHBvcnRlZC4iLCBudWxsLCBudWxsIC8qZGF0YSovKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVEcmF3VmVydGljZXMoaW50IG5DYW52YXMsIGludCBtb2RlLCBpbnQgbiwKLSAgICAgICAgICAgIGZsb2F0W10gdmVydHMsIGludCB2ZXJ0T2Zmc2V0LAotICAgICAgICAgICAgZmxvYXRbXSB0ZXhzLCBpbnQgdGV4T2Zmc2V0LAotICAgICAgICAgICAgaW50W10gY29sb3JzLCBpbnQgY29sb3JPZmZzZXQsCi0gICAgICAgICAgICBzaG9ydFtdIGluZGljZXMsIGludCBpbmRleE9mZnNldCwKLSAgICAgICAgICAgIGludCBpbmRleENvdW50LCBpbnQgblBhaW50KSB7Ci0gICAgICAgIC8vIEZJWE1FCi0gICAgICAgIEJyaWRnZS5nZXRMb2coKS5maWRlbGl0eVdhcm5pbmcoTGF5b3V0TG9nLlRBR19VTlNVUFBPUlRFRCwKLSAgICAgICAgICAgICAgICAiQ2FudmFzLmRyYXdWZXJ0aWNlcyBpcyBub3Qgc3VwcG9ydGVkLiIsIG51bGwsIG51bGwgLypkYXRhKi8pOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9kcmF3VGV4dChpbnQgbmF0aXZlQ2FudmFzLAotICAgICAgICAgICAgZmluYWwgY2hhcltdIHRleHQsIGZpbmFsIGludCBpbmRleCwgZmluYWwgaW50IGNvdW50LAotICAgICAgICAgICAgZmluYWwgZmxvYXQgc3RhcnRYLCBmaW5hbCBmbG9hdCBzdGFydFksIGZpbmFsIGludCBmbGFncywgaW50IHBhaW50KSB7Ci0KLSAgICAgICAgZHJhdyhuYXRpdmVDYW52YXMsIHBhaW50LCBmYWxzZSAvKmNvbXBvc2l0ZU9ubHkqLywgZmFsc2UgLypmb3JjZVNyY01vZGUqLywKLSAgICAgICAgICAgICAgICBuZXcgR2NTbmFwc2hvdC5EcmF3YWJsZSgpIHsKLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgZHJhdyhHcmFwaGljczJEIGdyYXBoaWNzLCBQYWludF9EZWxlZ2F0ZSBwYWludERlbGVnYXRlKSB7Ci0gICAgICAgICAgICAgICAgLy8gV0FSTklORzogdGhlIGxvZ2ljIGluIHRoaXMgbWV0aG9kIGlzIHNpbWlsYXIgdG8gUGFpbnRfRGVsZWdhdGUubWVhc3VyZVRleHQuCi0gICAgICAgICAgICAgICAgLy8gQW55IGNoYW5nZSB0byB0aGlzIG1ldGhvZCBzaG91bGQgYmUgcmVmbGVjdGVkIGluIFBhaW50Lm1lYXN1cmVUZXh0Ci0gICAgICAgICAgICAgICAgLy8gUGFpbnQuVGV4dEFsaWduIGluZGljYXRlcyBob3cgdGhlIHRleHQgaXMgcG9zaXRpb25lZCByZWxhdGl2ZSB0byBYLgotICAgICAgICAgICAgICAgIC8vIExFRlQgaXMgdGhlIGRlZmF1bHQgYW5kIHRoZXJlJ3Mgbm90aGluZyB0byBkby4KLSAgICAgICAgICAgICAgICBmbG9hdCB4ID0gc3RhcnRYOwotICAgICAgICAgICAgICAgIGludCBsaW1pdCA9IGluZGV4ICsgY291bnQ7Ci0gICAgICAgICAgICAgICAgYm9vbGVhbiBpc1J0bCA9IGZsYWdzID09IENhbnZhcy5ESVJFQ1RJT05fUlRMOwotICAgICAgICAgICAgICAgIGlmIChwYWludERlbGVnYXRlLmdldFRleHRBbGlnbigpICE9IFBhaW50LkFsaWduLkxFRlQubmF0aXZlSW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIGZsb2F0IG0gPSBwYWludERlbGVnYXRlLm1lYXN1cmVUZXh0KHRleHQsIGluZGV4LCBjb3VudCwgaXNSdGwpOwotICAgICAgICAgICAgICAgICAgICBpZiAocGFpbnREZWxlZ2F0ZS5nZXRUZXh0QWxpZ24oKSA9PSBQYWludC5BbGlnbi5DRU5URVIubmF0aXZlSW50KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB4IC09IG0gLyAyOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhaW50RGVsZWdhdGUuZ2V0VGV4dEFsaWduKCkgPT0gUGFpbnQuQWxpZ24uUklHSFQubmF0aXZlSW50KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB4IC09IG07Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBuZXcgQmlkaVJlbmRlcmVyKGdyYXBoaWNzLCBwYWludERlbGVnYXRlLCB0ZXh0KS5yZW5kZXJUZXh0KAotICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsIGxpbWl0LCBpc1J0bCwgbnVsbCwgMCwgdHJ1ZSwgeCwgc3RhcnRZKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2RyYXdUZXh0KGludCBuYXRpdmVDYW52YXMsIFN0cmluZyB0ZXh0LAotICAgICAgICAgICAgaW50IHN0YXJ0LCBpbnQgZW5kLCBmbG9hdCB4LCBmbG9hdCB5LCBmaW5hbCBpbnQgZmxhZ3MsIGludCBwYWludCkgewotICAgICAgICBpbnQgY291bnQgPSBlbmQgLSBzdGFydDsKLSAgICAgICAgY2hhcltdIGJ1ZmZlciA9IFRlbXBvcmFyeUJ1ZmZlci5vYnRhaW4oY291bnQpOwotICAgICAgICBUZXh0VXRpbHMuZ2V0Q2hhcnModGV4dCwgc3RhcnQsIGVuZCwgYnVmZmVyLCAwKTsKLQotICAgICAgICBuYXRpdmVfZHJhd1RleHQobmF0aXZlQ2FudmFzLCBidWZmZXIsIDAsIGNvdW50LCB4LCB5LCBmbGFncywgcGFpbnQpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9kcmF3VGV4dFJ1bihpbnQgbmF0aXZlQ2FudmFzLCBTdHJpbmcgdGV4dCwKLSAgICAgICAgICAgIGludCBzdGFydCwgaW50IGVuZCwgaW50IGNvbnRleHRTdGFydCwgaW50IGNvbnRleHRFbmQsCi0gICAgICAgICAgICBmbG9hdCB4LCBmbG9hdCB5LCBpbnQgZmxhZ3MsIGludCBwYWludCkgewotICAgICAgICBpbnQgY291bnQgPSBlbmQgLSBzdGFydDsKLSAgICAgICAgY2hhcltdIGJ1ZmZlciA9IFRlbXBvcmFyeUJ1ZmZlci5vYnRhaW4oY291bnQpOwotICAgICAgICBUZXh0VXRpbHMuZ2V0Q2hhcnModGV4dCwgc3RhcnQsIGVuZCwgYnVmZmVyLCAwKTsKLQotICAgICAgICBuYXRpdmVfZHJhd1RleHQobmF0aXZlQ2FudmFzLCBidWZmZXIsIDAsIGNvdW50LCB4LCB5LCBmbGFncywgcGFpbnQpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9kcmF3VGV4dFJ1bihpbnQgbmF0aXZlQ2FudmFzLCBjaGFyW10gdGV4dCwKLSAgICAgICAgICAgIGludCBzdGFydCwgaW50IGNvdW50LCBpbnQgY29udGV4dFN0YXJ0LCBpbnQgY29udGV4dENvdW50LAotICAgICAgICAgICAgZmxvYXQgeCwgZmxvYXQgeSwgaW50IGZsYWdzLCBpbnQgcGFpbnQpIHsKLSAgICAgICAgbmF0aXZlX2RyYXdUZXh0KG5hdGl2ZUNhbnZhcywgdGV4dCwgc3RhcnQsIGNvdW50LCB4LCB5LCBmbGFncywgcGFpbnQpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9kcmF3UG9zVGV4dChpbnQgbmF0aXZlQ2FudmFzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gdGV4dCwgaW50IGluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291bnQsIGZsb2F0W10gcG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFpbnQpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX1VOU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICJDYW52YXMuZHJhd1Bvc1RleHQgaXMgbm90IHN1cHBvcnRlZC4iLCBudWxsLCBudWxsIC8qZGF0YSovKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfZHJhd1Bvc1RleHQoaW50IG5hdGl2ZUNhbnZhcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQsIGZsb2F0W10gcG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFpbnQpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX1VOU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICJDYW52YXMuZHJhd1Bvc1RleHQgaXMgbm90IHN1cHBvcnRlZC4iLCBudWxsLCBudWxsIC8qZGF0YSovKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfZHJhd1RleHRPblBhdGgoaW50IG5hdGl2ZUNhbnZhcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHRleHQsIGludCBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50LCBpbnQgcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgaE9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgdk9mZnNldCwgaW50IGJpZGlGbGFncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBhaW50KSB7Ci0gICAgICAgIC8vIEZJWE1FCi0gICAgICAgIEJyaWRnZS5nZXRMb2coKS5maWRlbGl0eVdhcm5pbmcoTGF5b3V0TG9nLlRBR19VTlNVUFBPUlRFRCwKLSAgICAgICAgICAgICAgICAiQ2FudmFzLmRyYXdUZXh0T25QYXRoIGlzIG5vdCBzdXBwb3J0ZWQuIiwgbnVsbCwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2RyYXdUZXh0T25QYXRoKGludCBuYXRpdmVDYW52YXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZXh0LCBpbnQgcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgaE9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgdk9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZsYWdzLCBpbnQgcGFpbnQpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX1VOU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICJDYW52YXMuZHJhd1RleHRPblBhdGggaXMgbm90IHN1cHBvcnRlZC4iLCBudWxsLCBudWxsIC8qZGF0YSovKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBmaW5hbGl6ZXIoaW50IG5hdGl2ZUNhbnZhcykgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQgc28gdGhhdCBpdCBjYW4gYmUgZGlzcG9zZWQuCi0gICAgICAgIENhbnZhc19EZWxlZ2F0ZSBjYW52YXNEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZUNhbnZhcyk7Ci0gICAgICAgIGlmIChjYW52YXNEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBjYW52YXNEZWxlZ2F0ZS5kaXNwb3NlKCk7Ci0KLSAgICAgICAgLy8gcmVtb3ZlIGl0IGZyb20gdGhlIG1hbmFnZXIuCi0gICAgICAgIHNNYW5hZ2VyLnJlbW92ZUphdmFSZWZlcmVuY2VGb3IobmF0aXZlQ2FudmFzKTsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgLyoqCi0gICAgICogRXhlY3V0ZXMgYSB7QGxpbmsgR2NTbmFwc2hvdC5EcmF3YWJsZX0gd2l0aCBhIGdpdmVuIGNhbnZhcyBhbmQgcGFpbnQuCi0gICAgICogPHA+Tm90ZSB0aGF0IHRoZSBkcmF3YWJsZSBtYXkgYWN0dWFsbHkgYmUgZXhlY3V0ZWQgc2V2ZXJhbCB0aW1lcyBpZiB0aGVyZSBhcmUKLSAgICAgKiBsYXllcnMgaW52b2x2ZWQgKHNlZSB7QGxpbmsgI3NhdmVMYXllcihSZWN0RiwgaW50LCBpbnQpfS4KLSAgICAgKi8KLSAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGRyYXcoaW50IG5DYW52YXMsIGludCBuUGFpbnQsIGJvb2xlYW4gY29tcG9zaXRlT25seSwgYm9vbGVhbiBmb3JjZVNyY01vZGUsCi0gICAgICAgICAgICBHY1NuYXBzaG90LkRyYXdhYmxlIGRyYXdhYmxlKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobkNhbnZhcyk7Ci0gICAgICAgIGlmIChjYW52YXNEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBnZXQgdGhlIHBhaW50IHdoaWNoIGNhbiBiZSBudWxsIGlmIG5QYWludCBpcyAwOwotICAgICAgICBQYWludF9EZWxlZ2F0ZSBwYWludERlbGVnYXRlID0gUGFpbnRfRGVsZWdhdGUuZ2V0RGVsZWdhdGUoblBhaW50KTsKLQotICAgICAgICBjYW52YXNEZWxlZ2F0ZS5nZXRTbmFwc2hvdCgpLmRyYXcoZHJhd2FibGUsIHBhaW50RGVsZWdhdGUsIGNvbXBvc2l0ZU9ubHksIGZvcmNlU3JjTW9kZSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogRXhlY3V0ZXMgYSB7QGxpbmsgR2NTbmFwc2hvdC5EcmF3YWJsZX0gd2l0aCBhIGdpdmVuIGNhbnZhcy4gTm8gcGFpbnQgb2JqZWN0IHdpbGwgYmUgcHJvdmlkZWQKLSAgICAgKiB0byB7QGxpbmsgR2NTbmFwc2hvdC5EcmF3YWJsZSNkcmF3KEdyYXBoaWNzMkQsIFBhaW50X0RlbGVnYXRlKX0uCi0gICAgICogPHA+Tm90ZSB0aGF0IHRoZSBkcmF3YWJsZSBtYXkgYWN0dWFsbHkgYmUgZXhlY3V0ZWQgc2V2ZXJhbCB0aW1lcyBpZiB0aGVyZSBhcmUKLSAgICAgKiBsYXllcnMgaW52b2x2ZWQgKHNlZSB7QGxpbmsgI3NhdmVMYXllcihSZWN0RiwgaW50LCBpbnQpfS4KLSAgICAgKi8KLSAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGRyYXcoaW50IG5DYW52YXMsIEdjU25hcHNob3QuRHJhd2FibGUgZHJhd2FibGUpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBDYW52YXNfRGVsZWdhdGUgY2FudmFzRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGNhbnZhc0RlbGVnYXRlLm1TbmFwc2hvdC5kcmF3KGRyYXdhYmxlKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIENhbnZhc19EZWxlZ2F0ZShCaXRtYXBfRGVsZWdhdGUgYml0bWFwKSB7Ci0gICAgICAgIG1TbmFwc2hvdCA9IEdjU25hcHNob3QuY3JlYXRlRGVmYXVsdFNuYXBzaG90KG1CaXRtYXAgPSBiaXRtYXApOwotICAgIH0KLQotICAgIHByaXZhdGUgQ2FudmFzX0RlbGVnYXRlKCkgewotICAgICAgICBtU25hcHNob3QgPSBHY1NuYXBzaG90LmNyZWF0ZURlZmF1bHRTbmFwc2hvdChudWxsIC8qaW1hZ2UqLyk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogRGlzcG9zZXMgb2YgdGhlIHtAbGluayBHcmFwaGljczJEfSBzdGFjay4KLSAgICAgKi8KLSAgICBwcml2YXRlIHZvaWQgZGlzcG9zZSgpIHsKLSAgICAgICAgbVNuYXBzaG90LmRpc3Bvc2UoKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIGludCBzYXZlKGludCBzYXZlRmxhZ3MpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBjdXJyZW50IHNhdmUgY291bnQKLSAgICAgICAgaW50IGNvdW50ID0gbVNuYXBzaG90LnNpemUoKTsKLQotICAgICAgICBtU25hcHNob3QgPSBtU25hcHNob3Quc2F2ZShzYXZlRmxhZ3MpOwotCi0gICAgICAgIC8vIHJldHVybiB0aGUgb2xkIHNhdmUgY291bnQKLSAgICAgICAgcmV0dXJuIGNvdW50OwotICAgIH0KLQotICAgIHByaXZhdGUgaW50IHNhdmVMYXllckFscGhhKFJlY3RGIHJlY3QsIGludCBhbHBoYSwgaW50IHNhdmVGbGFncykgewotICAgICAgICBQYWludF9EZWxlZ2F0ZSBwYWludCA9IG5ldyBQYWludF9EZWxlZ2F0ZSgpOwotICAgICAgICBwYWludC5zZXRBbHBoYShhbHBoYSk7Ci0gICAgICAgIHJldHVybiBzYXZlTGF5ZXIocmVjdCwgcGFpbnQsIHNhdmVGbGFncyk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBpbnQgc2F2ZUxheWVyKFJlY3RGIHJlY3QsIFBhaW50X0RlbGVnYXRlIHBhaW50LCBpbnQgc2F2ZUZsYWdzKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgY3VycmVudCBzYXZlIGNvdW50Ci0gICAgICAgIGludCBjb3VudCA9IG1TbmFwc2hvdC5zaXplKCk7Ci0KLSAgICAgICAgbVNuYXBzaG90ID0gbVNuYXBzaG90LnNhdmVMYXllcihyZWN0LCBwYWludCwgc2F2ZUZsYWdzKTsKLQotICAgICAgICAvLyByZXR1cm4gdGhlIG9sZCBzYXZlIGNvdW50Ci0gICAgICAgIHJldHVybiBjb3VudDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXN0b3JlcyB0aGUge0BsaW5rIEdjU25hcHNob3R9IHRvIDx2YXI+c2F2ZUNvdW50PC92YXI+Ci0gICAgICogQHBhcmFtIHNhdmVDb3VudCB0aGUgc2F2ZUNvdW50Ci0gICAgICovCi0gICAgcHJpdmF0ZSB2b2lkIHJlc3RvcmVUbyhpbnQgc2F2ZUNvdW50KSB7Ci0gICAgICAgIG1TbmFwc2hvdCA9IG1TbmFwc2hvdC5yZXN0b3JlVG8oc2F2ZUNvdW50KTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXN0b3JlcyB0aGUge0BsaW5rIEdjU25hcHNob3R9IHRvIDx2YXI+c2F2ZUNvdW50PC92YXI+Ci0gICAgICogQHBhcmFtIHNhdmVDb3VudCB0aGUgc2F2ZUNvdW50Ci0gICAgICovCi0gICAgcHJpdmF0ZSB2b2lkIHJlc3RvcmUoKSB7Ci0gICAgICAgIG1TbmFwc2hvdCA9IG1TbmFwc2hvdC5yZXN0b3JlKCk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBib29sZWFuIGNsaXBSZWN0KGZsb2F0IGxlZnQsIGZsb2F0IHRvcCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgaW50IHJlZ2lvbk9wKSB7Ci0gICAgICAgIHJldHVybiBtU25hcHNob3QuY2xpcFJlY3QobGVmdCwgdG9wLCByaWdodCwgYm90dG9tLCByZWdpb25PcCk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSB2b2lkIHNldEJpdG1hcChCaXRtYXBfRGVsZWdhdGUgYml0bWFwKSB7Ci0gICAgICAgIG1CaXRtYXAgPSBiaXRtYXA7Ci0gICAgICAgIGFzc2VydCBtU25hcHNob3Quc2l6ZSgpID09IDE7Ci0gICAgICAgIG1TbmFwc2hvdC5zZXRCaXRtYXAobUJpdG1hcCk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBkcmF3Qml0bWFwKAotICAgICAgICAgICAgaW50IG5hdGl2ZUNhbnZhcywKLSAgICAgICAgICAgIEJpdG1hcF9EZWxlZ2F0ZSBiaXRtYXAsCi0gICAgICAgICAgICBpbnQgbmF0aXZlUGFpbnRPclplcm8sCi0gICAgICAgICAgICBmaW5hbCBpbnQgc2xlZnQsIGZpbmFsIGludCBzdG9wLCBmaW5hbCBpbnQgc3JpZ2h0LCBmaW5hbCBpbnQgc2JvdHRvbSwKLSAgICAgICAgICAgIGZpbmFsIGludCBkbGVmdCwgZmluYWwgaW50IGR0b3AsIGZpbmFsIGludCBkcmlnaHQsIGZpbmFsIGludCBkYm90dG9tKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgQ2FudmFzX0RlbGVnYXRlIGNhbnZhc0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlQ2FudmFzKTsKLSAgICAgICAgaWYgKGNhbnZhc0RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGdldCB0aGUgcGFpbnQsIHdoaWNoIGNvdWxkIGJlIG51bGwgaWYgdGhlIGludCBpcyAwCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIHBhaW50RGVsZWdhdGUgPSBQYWludF9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZShuYXRpdmVQYWludE9yWmVybyk7Ci0KLSAgICAgICAgZmluYWwgQnVmZmVyZWRJbWFnZSBpbWFnZSA9IGdldEltYWdlVG9EcmF3KGJpdG1hcCwgcGFpbnREZWxlZ2F0ZSwgc0Jvb2xPdXQpOwotCi0gICAgICAgIGRyYXcobmF0aXZlQ2FudmFzLCBuYXRpdmVQYWludE9yWmVybywgdHJ1ZSAvKmNvbXBvc2l0ZU9ubHkqLywgc0Jvb2xPdXRbMF0sCi0gICAgICAgICAgICAgICAgbmV3IEdjU25hcHNob3QuRHJhd2FibGUoKSB7Ci0gICAgICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBkcmF3KEdyYXBoaWNzMkQgZ3JhcGhpY3MsIFBhaW50X0RlbGVnYXRlIHBhaW50KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFpbnQgIT0gbnVsbCAmJiBwYWludC5pc0ZpbHRlckJpdG1hcCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3Muc2V0UmVuZGVyaW5nSGludChSZW5kZXJpbmdIaW50cy5LRVlfSU5URVJQT0xBVElPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbmRlcmluZ0hpbnRzLlZBTFVFX0lOVEVSUE9MQVRJT05fQklMSU5FQVIpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICAvL0ZJWE1FIGFkZCBzdXBwb3J0IGZvciBjYW52YXMsIHNjcmVlbiBhbmQgYml0bWFwIGRlbnNpdGllcy4KLSAgICAgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzLmRyYXdJbWFnZShpbWFnZSwgZGxlZnQsIGR0b3AsIGRyaWdodCwgZGJvdHRvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xlZnQsIHN0b3AsIHNyaWdodCwgc2JvdHRvbSwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAgfQotCi0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIGEgQnVmZmVyZWRJbWFnZSByZWFkeSBmb3IgZHJhd2luZywgYmFzZWQgb24gdGhlIGJpdG1hcCBhbmQgcGFpbnQgZGVsZWdhdGUuCi0gICAgICogVGhlIGltYWdlIHJldHVybnMsIHRocm91Z2ggYSAxLXNpemUgYm9vbGVhbiBhcnJheSwgd2hldGhlciB0aGUgZHJhd2luZyBjb2RlIHNob3VsZAotICAgICAqIHVzZSBhIFNSQyBjb21wb3NpdGUgbm8gbWF0dGVyIHdoYXQgdGhlIHBhaW50IHNheXMuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gYml0bWFwIHRoZSBiaXRtYXAKLSAgICAgKiBAcGFyYW0gcGFpbnQgdGhlIHBhaW50IHRoYXQgd2lsbCBiZSB1c2VkIHRvIGRyYXcKLSAgICAgKiBAcGFyYW0gZm9yY2VTcmNNb2RlIHdoZXRoZXIgdGhlIGNvbXBvc2l0ZSB3aWxsIGhhdmUgdG8gYmUgU1JDCi0gICAgICogQHJldHVybiB0aGUgaW1hZ2UgdG8gZHJhdwotICAgICAqLwotICAgIHByaXZhdGUgc3RhdGljIEJ1ZmZlcmVkSW1hZ2UgZ2V0SW1hZ2VUb0RyYXcoQml0bWFwX0RlbGVnYXRlIGJpdG1hcCwgUGFpbnRfRGVsZWdhdGUgcGFpbnQsCi0gICAgICAgICAgICBib29sZWFuW10gZm9yY2VTcmNNb2RlKSB7Ci0gICAgICAgIEJ1ZmZlcmVkSW1hZ2UgaW1hZ2UgPSBiaXRtYXAuZ2V0SW1hZ2UoKTsKLSAgICAgICAgZm9yY2VTcmNNb2RlWzBdID0gZmFsc2U7Ci0KLSAgICAgICAgLy8gaWYgdGhlIGJpdG1hcCBjb25maWcgaXMgYWxwaGFfOCwgdGhlbiB3ZSBlcmFzZSBhbGwgY29sb3IgdmFsdWUgZnJvbSBpdAotICAgICAgICAvLyBiZWZvcmUgZHJhd2luZyBpdC4KLSAgICAgICAgaWYgKGJpdG1hcC5nZXRDb25maWcoKSA9PSBCaXRtYXAuQ29uZmlnLkFMUEhBXzgpIHsKLSAgICAgICAgICAgIGZpeEFscGhhOEJpdG1hcChpbWFnZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoYml0bWFwLmhhc0FscGhhKCkgPT0gZmFsc2UpIHsKLSAgICAgICAgICAgIC8vIGhhc0FscGhhIGlzIG1lcmVseSBhIHJlbmRlcmluZyBoaW50LiBUaGVyZSBjYW4gaW4gZmFjdCBiZSBhbHBoYSB2YWx1ZXMKLSAgICAgICAgICAgIC8vIGluIHRoZSBiaXRtYXAgYnV0IGl0IHNob3VsZCBiZSBpZ25vcmVkIGF0IGRyYXdpbmcgdGltZS4KLSAgICAgICAgICAgIC8vIFRoZXJlIGlzIHR3byB3YXlzIHRvIGRvIHRoaXM6Ci0gICAgICAgICAgICAvLyAtIG92ZXJyaWRlIHRoZSBjb21wb3NpdGUgdG8gYmUgU1JDLiBUaGlzIGNhbiBvbmx5IGJlIHVzZWQgaWYgdGhlIGNvbXBvc2l0ZQotICAgICAgICAgICAgLy8gICB3YXMgZ29pbmcgdG8gYmUgU1JDIG9yIFNSQ19PVkVSIGluIHRoZSBmaXJzdCBwbGFjZQotICAgICAgICAgICAgLy8gLSBDcmVhdGUgYSBkaWZmZXJlbnQgYml0bWFwIHRvIGRyYXcgaW4gd2hpY2ggYWxsIHRoZSBhbHBoYSBjaGFubmVsIHZhbHVlcyBpcyBzZXQKLSAgICAgICAgICAgIC8vICAgdG8gMHhGRi4KLSAgICAgICAgICAgIGlmIChwYWludCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgWGZlcm1vZGVfRGVsZWdhdGUgeGZlcm1vZGVEZWxlZ2F0ZSA9IHBhaW50LmdldFhmZXJtb2RlKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHhmZXJtb2RlRGVsZWdhdGUgaW5zdGFuY2VvZiBQb3J0ZXJEdWZmWGZlcm1vZGVfRGVsZWdhdGUpIHsKLSAgICAgICAgICAgICAgICAgICAgUG9ydGVyRHVmZi5Nb2RlIG1vZGUgPQotICAgICAgICAgICAgICAgICAgICAgICAgKChQb3J0ZXJEdWZmWGZlcm1vZGVfRGVsZWdhdGUpeGZlcm1vZGVEZWxlZ2F0ZSkuZ2V0TW9kZSgpOwotCi0gICAgICAgICAgICAgICAgICAgIGZvcmNlU3JjTW9kZVswXSA9IG1vZGUgPT0gUG9ydGVyRHVmZi5Nb2RlLlNSQ19PVkVSIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9PSBQb3J0ZXJEdWZmLk1vZGUuU1JDOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gaWYgd2UgY2FuJ3QgZm9yY2UgU1JDIG1vZGUsIHRoZW4gY3JlYXRlIGEgdGVtcCBiaXRtYXAgb2YgVFlQRV9SR0IKLSAgICAgICAgICAgIGlmIChmb3JjZVNyY01vZGVbMF0gPT0gZmFsc2UpIHsKLSAgICAgICAgICAgICAgICBpbWFnZSA9IEJpdG1hcF9EZWxlZ2F0ZS5jcmVhdGVDb3B5KGltYWdlLCBCdWZmZXJlZEltYWdlLlRZUEVfSU5UX1JHQiwgMHhGRik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gaW1hZ2U7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBmaXhBbHBoYThCaXRtYXAoZmluYWwgQnVmZmVyZWRJbWFnZSBpbWFnZSkgewotICAgICAgICBpbnQgdyA9IGltYWdlLmdldFdpZHRoKCk7Ci0gICAgICAgIGludCBoID0gaW1hZ2UuZ2V0SGVpZ2h0KCk7Ci0gICAgICAgIGludFtdIGFyZ2IgPSBuZXcgaW50W3cgKiBoXTsKLSAgICAgICAgaW1hZ2UuZ2V0UkdCKDAsIDAsIGltYWdlLmdldFdpZHRoKCksIGltYWdlLmdldEhlaWdodCgpLCBhcmdiLCAwLCBpbWFnZS5nZXRXaWR0aCgpKTsKLQotICAgICAgICBmaW5hbCBpbnQgbGVuZ3RoID0gYXJnYi5sZW5ndGg7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwIDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBhcmdiW2ldICY9IDB4RkYwMDAwMDA7Ci0gICAgICAgIH0KLSAgICAgICAgaW1hZ2Uuc2V0UkdCKDAsIDAsIHcsIGgsIGFyZ2IsIDAsIHcpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9Db2xvckZpbHRlcl9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9Db2xvckZpbHRlcl9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNWE3YWI2Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvQ29sb3JGaWx0ZXJfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuZ3JhcGhpY3M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRGVsZWdhdGVNYW5hZ2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotLyoqCi0gKiBEZWxlZ2F0ZSBpbXBsZW1lbnRpbmcgdGhlIG5hdGl2ZSBtZXRob2RzIG9mIGFuZHJvaWQuZ3JhcGhpY3MuQ29sb3JGaWx0ZXIKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBDb2xvckZpbHRlciBoYXZlIGJlZW4gcmVwbGFjZWQKLSAqIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIFRoaXMgY2xhc3MgYmVoYXZlcyBsaWtlIHRoZSBvcmlnaW5hbCBuYXRpdmUgaW1wbGVtZW50YXRpb24sIGJ1dCBpbiBKYXZhLCBrZWVwaW5nIHByZXZpb3VzbHkKLSAqIG5hdGl2ZSBkYXRhIGludG8gaXRzIG93biBvYmplY3RzIGFuZCBtYXBwaW5nIHRoZW0gdG8gaW50IHRoYXQgYXJlIHNlbnQgYmFjayBhbmQgZm9ydGggYmV0d2VlbgotICogaXQgYW5kIHRoZSBvcmlnaW5hbCBDb2xvckZpbHRlciBjbGFzcy4KLSAqCi0gKiBUaGlzIGFsc28gc2VydmUgYXMgYSBiYXNlIGNsYXNzIGZvciBhbGwgQ29sb3JGaWx0ZXIgZGVsZWdhdGUgY2xhc3Nlcy4KLSAqCi0gKiBAc2VlIERlbGVnYXRlTWFuYWdlcgotICoKLSAqLwotcHVibGljIGFic3RyYWN0IGNsYXNzIENvbG9yRmlsdGVyX0RlbGVnYXRlIHsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgbWFuYWdlciAtLS0tCi0gICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBEZWxlZ2F0ZU1hbmFnZXI8Q29sb3JGaWx0ZXJfRGVsZWdhdGU+IHNNYW5hZ2VyID0KLSAgICAgICAgICAgIG5ldyBEZWxlZ2F0ZU1hbmFnZXI8Q29sb3JGaWx0ZXJfRGVsZWdhdGU+KENvbG9yRmlsdGVyX0RlbGVnYXRlLmNsYXNzKTsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgaGVscGVyIGRhdGEgLS0tLQotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBkYXRhIC0tLS0KLQotICAgIC8vIC0tLS0gUHVibGljIEhlbHBlciBtZXRob2RzIC0tLS0KLQotICAgIHB1YmxpYyBzdGF0aWMgQ29sb3JGaWx0ZXJfRGVsZWdhdGUgZ2V0RGVsZWdhdGUoaW50IG5hdGl2ZVNoYWRlcikgewotICAgICAgICByZXR1cm4gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlU2hhZGVyKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBpc1N1cHBvcnRlZCgpOwotICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmcgZ2V0U3VwcG9ydE1lc3NhZ2UoKTsKLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgZmluYWxpemVyKGludCBuYXRpdmVfaW5zdGFuY2UsIGludCBuYXRpdmVDb2xvckZpbHRlcikgewotICAgICAgICBzTWFuYWdlci5yZW1vdmVKYXZhUmVmZXJlbmNlRm9yKG5hdGl2ZV9pbnN0YW5jZSk7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBQcml2YXRlIGRlbGVnYXRlL2hlbHBlciBtZXRob2RzIC0tLS0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvQ29sb3JNYXRyaXhDb2xvckZpbHRlcl9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9Db2xvck1hdHJpeENvbG9yRmlsdGVyX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkZTM0NGIuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9Db2xvck1hdHJpeENvbG9yRmlsdGVyX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLkRlbGVnYXRlTWFuYWdlcjsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLS8qKgotICogRGVsZWdhdGUgaW1wbGVtZW50aW5nIHRoZSBuYXRpdmUgbWV0aG9kcyBvZiBhbmRyb2lkLmdyYXBoaWNzLkNvbG9yTWF0cml4Q29sb3JGaWx0ZXIKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBDb2xvck1hdHJpeENvbG9yRmlsdGVyIGhhdmUKLSAqIGJlZW4gcmVwbGFjZWQgYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICogVGhpcyBjbGFzcyBiZWhhdmVzIGxpa2UgdGhlIG9yaWdpbmFsIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGluIEphdmEsIGtlZXBpbmcgcHJldmlvdXNseQotICogbmF0aXZlIGRhdGEgaW50byBpdHMgb3duIG9iamVjdHMgYW5kIG1hcHBpbmcgdGhlbSB0byBpbnQgdGhhdCBhcmUgc2VudCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuCi0gKiBpdCBhbmQgdGhlIG9yaWdpbmFsIENvbG9yTWF0cml4Q29sb3JGaWx0ZXIgY2xhc3MuCi0gKgotICogQmVjYXVzZSB0aGlzIGV4dGVuZHMge0BsaW5rIENvbG9yRmlsdGVyX0RlbGVnYXRlfSwgdGhlcmUncyBubyBuZWVkIHRvIHVzZSBhCi0gKiB7QGxpbmsgRGVsZWdhdGVNYW5hZ2VyfSwgYXMgYWxsIHRoZSBTaGFkZXIgY2xhc3NlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBtYW5hZ2VyCi0gKiBvd25lZCBieSB7QGxpbmsgQ29sb3JGaWx0ZXJfRGVsZWdhdGV9LgotICoKLSAqIEBzZWUgQ29sb3JGaWx0ZXJfRGVsZWdhdGUKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBDb2xvck1hdHJpeENvbG9yRmlsdGVyX0RlbGVnYXRlIGV4dGVuZHMgQ29sb3JGaWx0ZXJfRGVsZWdhdGUgewotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBkYXRhIC0tLS0KLQotICAgIC8vIC0tLS0gUHVibGljIEhlbHBlciBtZXRob2RzIC0tLS0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGlzU3VwcG9ydGVkKCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRTdXBwb3J0TWVzc2FnZSgpIHsKLSAgICAgICAgcmV0dXJuICJDb2xvck1hdHJpeCBDb2xvciBGaWx0ZXJzIGFyZSBub3Qgc3VwcG9ydGVkLiI7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBuYXRpdmUgbWV0aG9kcyAtLS0tCi0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZUNvbG9yTWF0cml4RmlsdGVyKGZsb2F0W10gYXJyYXkpIHsKLSAgICAgICAgQ29sb3JNYXRyaXhDb2xvckZpbHRlcl9EZWxlZ2F0ZSBuZXdEZWxlZ2F0ZSA9IG5ldyBDb2xvck1hdHJpeENvbG9yRmlsdGVyX0RlbGVnYXRlKCk7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5hZGROZXdEZWxlZ2F0ZShuZXdEZWxlZ2F0ZSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuQ29sb3JNYXRyaXhGaWx0ZXIoaW50IG5hdGl2ZUZpbHRlciwgZmxvYXRbXSBhcnJheSkgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8vIC0tLS0gUHJpdmF0ZSBkZWxlZ2F0ZS9oZWxwZXIgbWV0aG9kcyAtLS0tCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0NvbXBvc2VQYXRoRWZmZWN0X0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0NvbXBvc2VQYXRoRWZmZWN0X0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjMDRhODcuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9Db21wb3NlUGF0aEVmZmVjdF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgamF2YS5hd3QuU3Ryb2tlOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5Db21wb3NlUGF0aEVmZmVjdAotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsIG5hdGl2ZSBtZXRob2RzIG9mIENvbXBvc2VQYXRoRWZmZWN0IGhhdmUgYmVlbgotICogcmVwbGFjZWQgYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICogVGhpcyBjbGFzcyBiZWhhdmVzIGxpa2UgdGhlIG9yaWdpbmFsIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGluIEphdmEsIGtlZXBpbmcgcHJldmlvdXNseQotICogbmF0aXZlIGRhdGEgaW50byBpdHMgb3duIG9iamVjdHMgYW5kIG1hcHBpbmcgdGhlbSB0byBpbnQgdGhhdCBhcmUgc2VudCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuCi0gKiBpdCBhbmQgdGhlIG9yaWdpbmFsIENvbXBvc2VQYXRoRWZmZWN0IGNsYXNzLgotICoKLSAqIEJlY2F1c2UgdGhpcyBleHRlbmRzIHtAbGluayBQYXRoRWZmZWN0X0RlbGVnYXRlfSwgdGhlcmUncyBubyBuZWVkIHRvIHVzZSBhIHtAbGluayBEZWxlZ2F0ZU1hbmFnZXJ9LAotICogYXMgYWxsIHRoZSBTaGFkZXIgY2xhc3NlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBtYW5hZ2VyIG93bmVkIGJ5IHtAbGluayBQYXRoRWZmZWN0X0RlbGVnYXRlfS4KLSAqCi0gKiBAc2VlIFBhdGhFZmZlY3RfRGVsZWdhdGUKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBDb21wb3NlUGF0aEVmZmVjdF9EZWxlZ2F0ZSBleHRlbmRzIFBhdGhFZmZlY3RfRGVsZWdhdGUgewotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBkYXRhIC0tLS0KLQotICAgIC8vIC0tLS0gUHVibGljIEhlbHBlciBtZXRob2RzIC0tLS0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJva2UgZ2V0U3Ryb2tlKFBhaW50X0RlbGVnYXRlIHBhaW50KSB7Ci0gICAgICAgIC8vIEZJWE1FCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGlzU3VwcG9ydGVkKCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRTdXBwb3J0TWVzc2FnZSgpIHsKLSAgICAgICAgcmV0dXJuICJDb21wb3NlIFBhdGggRWZmZWN0cyBhcmUgbm90IHN1cHBvcnRlZCBpbiBMYXlvdXQgUHJldmlldyBtb2RlLiI7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBuYXRpdmUgbWV0aG9kcyAtLS0tCi0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZUNyZWF0ZShpbnQgb3V0ZXJwZSwgaW50IGlubmVycGUpIHsKLSAgICAgICAgQ29tcG9zZVBhdGhFZmZlY3RfRGVsZWdhdGUgbmV3RGVsZWdhdGUgPSBuZXcgQ29tcG9zZVBhdGhFZmZlY3RfRGVsZWdhdGUoKTsKLSAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmFkZE5ld0RlbGVnYXRlKG5ld0RlbGVnYXRlKTsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9Db21wb3NlU2hhZGVyX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0NvbXBvc2VTaGFkZXJfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjZlMWQwMC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0NvbXBvc2VTaGFkZXJfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuZ3JhcGhpY3M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRGVsZWdhdGVNYW5hZ2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotaW1wb3J0IGphdmEuYXd0LlBhaW50OwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5Db21wb3NlU2hhZGVyCi0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgQ29tcG9zZVNoYWRlciBoYXZlIGJlZW4KLSAqIHJlcGxhY2VkIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIFRoaXMgY2xhc3MgYmVoYXZlcyBsaWtlIHRoZSBvcmlnaW5hbCBuYXRpdmUgaW1wbGVtZW50YXRpb24sIGJ1dCBpbiBKYXZhLCBrZWVwaW5nIHByZXZpb3VzbHkKLSAqIG5hdGl2ZSBkYXRhIGludG8gaXRzIG93biBvYmplY3RzIGFuZCBtYXBwaW5nIHRoZW0gdG8gaW50IHRoYXQgYXJlIHNlbnQgYmFjayBhbmQgZm9ydGggYmV0d2VlbgotICogaXQgYW5kIHRoZSBvcmlnaW5hbCBDb21wb3NlU2hhZGVyIGNsYXNzLgotICoKLSAqIEJlY2F1c2UgdGhpcyBleHRlbmRzIHtAbGluayBTaGFkZXJfRGVsZWdhdGV9LCB0aGVyZSdzIG5vIG5lZWQgdG8gdXNlIGEge0BsaW5rIERlbGVnYXRlTWFuYWdlcn0sCi0gKiBhcyBhbGwgdGhlIFNoYWRlciBjbGFzc2VzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIG1hbmFnZXIgb3duZWQgYnkge0BsaW5rIFNoYWRlcl9EZWxlZ2F0ZX0uCi0gKgotICogQHNlZSBTaGFkZXJfRGVsZWdhdGUKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBDb21wb3NlU2hhZGVyX0RlbGVnYXRlIGV4dGVuZHMgU2hhZGVyX0RlbGVnYXRlIHsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgZGF0YSAtLS0tCi0KLSAgICAvLyAtLS0tIFB1YmxpYyBIZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgUGFpbnQgZ2V0SmF2YVBhaW50KCkgewotICAgICAgICAvLyBGSVhNRQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBpc1N1cHBvcnRlZCgpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3VwcG9ydE1lc3NhZ2UoKSB7Ci0gICAgICAgIHJldHVybiAiQ29tcG9zZSBTaGFkZXJzIGFyZSBub3Qgc3VwcG9ydGVkIGluIExheW91dCBQcmV2aWV3IG1vZGUuIjsKLSAgICB9Ci0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVDcmVhdGUxKGludCBuYXRpdmVfc2hhZGVyQSwgaW50IG5hdGl2ZV9zaGFkZXJCLAotICAgICAgICAgICAgaW50IG5hdGl2ZV9tb2RlKSB7Ci0gICAgICAgIC8vIEZJWE1FIG5vdCBzdXBwb3J0ZWQgeWV0LgotICAgICAgICBDb21wb3NlU2hhZGVyX0RlbGVnYXRlIG5ld0RlbGVnYXRlID0gbmV3IENvbXBvc2VTaGFkZXJfRGVsZWdhdGUoKTsKLSAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmFkZE5ld0RlbGVnYXRlKG5ld0RlbGVnYXRlKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZUNyZWF0ZTIoaW50IG5hdGl2ZV9zaGFkZXJBLCBpbnQgbmF0aXZlX3NoYWRlckIsCi0gICAgICAgICAgICBpbnQgcG9ydGVyRHVmZk1vZGUpIHsKLSAgICAgICAgLy8gRklYTUUgbm90IHN1cHBvcnRlZCB5ZXQuCi0gICAgICAgIENvbXBvc2VTaGFkZXJfRGVsZWdhdGUgbmV3RGVsZWdhdGUgPSBuZXcgQ29tcG9zZVNoYWRlcl9EZWxlZ2F0ZSgpOwotICAgICAgICByZXR1cm4gc01hbmFnZXIuYWRkTmV3RGVsZWdhdGUobmV3RGVsZWdhdGUpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlUG9zdENyZWF0ZTEoaW50IG5hdGl2ZV9zaGFkZXIsIGludCBuYXRpdmVfc2tpYVNoYWRlckEsCi0gICAgICAgICAgICBpbnQgbmF0aXZlX3NraWFTaGFkZXJCLCBpbnQgbmF0aXZlX21vZGUpIHsKLSAgICAgICAgLy8gcGFzcywgbm90IG5lZWRlZC4KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVQb3N0Q3JlYXRlMihpbnQgbmF0aXZlX3NoYWRlciwgaW50IG5hdGl2ZV9za2lhU2hhZGVyQSwKLSAgICAgICAgICAgIGludCBuYXRpdmVfc2tpYVNoYWRlckIsIGludCBwb3J0ZXJEdWZmTW9kZSkgewotICAgICAgICAvLyBwYXNzLCBub3QgbmVlZGVkLgotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0Nvcm5lclBhdGhFZmZlY3RfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvQ29ybmVyUGF0aEVmZmVjdF9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMGY4MTY4Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvQ29ybmVyUGF0aEVmZmVjdF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgamF2YS5hd3QuU3Ryb2tlOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5Db3JuZXJQYXRoRWZmZWN0Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgQ29ybmVyUGF0aEVmZmVjdCBoYXZlIGJlZW4KLSAqIHJlcGxhY2VkIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIFRoaXMgY2xhc3MgYmVoYXZlcyBsaWtlIHRoZSBvcmlnaW5hbCBuYXRpdmUgaW1wbGVtZW50YXRpb24sIGJ1dCBpbiBKYXZhLCBrZWVwaW5nIHByZXZpb3VzbHkKLSAqIG5hdGl2ZSBkYXRhIGludG8gaXRzIG93biBvYmplY3RzIGFuZCBtYXBwaW5nIHRoZW0gdG8gaW50IHRoYXQgYXJlIHNlbnQgYmFjayBhbmQgZm9ydGggYmV0d2VlbgotICogaXQgYW5kIHRoZSBvcmlnaW5hbCBDb3JuZXJQYXRoRWZmZWN0IGNsYXNzLgotICoKLSAqIEJlY2F1c2UgdGhpcyBleHRlbmRzIHtAbGluayBQYXRoRWZmZWN0X0RlbGVnYXRlfSwgdGhlcmUncyBubyBuZWVkIHRvIHVzZSBhIHtAbGluayBEZWxlZ2F0ZU1hbmFnZXJ9LAotICogYXMgYWxsIHRoZSBTaGFkZXIgY2xhc3NlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBtYW5hZ2VyIG93bmVkIGJ5IHtAbGluayBQYXRoRWZmZWN0X0RlbGVnYXRlfS4KLSAqCi0gKiBAc2VlIFBhdGhFZmZlY3RfRGVsZWdhdGUKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBDb3JuZXJQYXRoRWZmZWN0X0RlbGVnYXRlIGV4dGVuZHMgUGF0aEVmZmVjdF9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cm9rZSBnZXRTdHJva2UoUGFpbnRfRGVsZWdhdGUgcGFpbnQpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNTdXBwb3J0ZWQoKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCkgewotICAgICAgICByZXR1cm4gIkNvcm5lciBQYXRoIEVmZmVjdHMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gTGF5b3V0IFByZXZpZXcgbW9kZS4iOwotICAgIH0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVDcmVhdGUoZmxvYXQgcmFkaXVzKSB7Ci0gICAgICAgIENvcm5lclBhdGhFZmZlY3RfRGVsZWdhdGUgbmV3RGVsZWdhdGUgPSBuZXcgQ29ybmVyUGF0aEVmZmVjdF9EZWxlZ2F0ZSgpOwotICAgICAgICByZXR1cm4gc01hbmFnZXIuYWRkTmV3RGVsZWdhdGUobmV3RGVsZWdhdGUpOwotICAgIH0KLQotICAgIC8vIC0tLS0gUHJpdmF0ZSBkZWxlZ2F0ZS9oZWxwZXIgbWV0aG9kcyAtLS0tCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0Rhc2hQYXRoRWZmZWN0X0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0Rhc2hQYXRoRWZmZWN0X0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5N2MyZWMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9EYXNoUGF0aEVmZmVjdF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgamF2YS5hd3QuQmFzaWNTdHJva2U7Ci1pbXBvcnQgamF2YS5hd3QuU3Ryb2tlOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5EYXNoUGF0aEVmZmVjdAotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsIG5hdGl2ZSBtZXRob2RzIG9mIERhc2hQYXRoRWZmZWN0IGhhdmUgYmVlbgotICogcmVwbGFjZWQgYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICogVGhpcyBjbGFzcyBiZWhhdmVzIGxpa2UgdGhlIG9yaWdpbmFsIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGluIEphdmEsIGtlZXBpbmcgcHJldmlvdXNseQotICogbmF0aXZlIGRhdGEgaW50byBpdHMgb3duIG9iamVjdHMgYW5kIG1hcHBpbmcgdGhlbSB0byBpbnQgdGhhdCBhcmUgc2VudCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuCi0gKiBpdCBhbmQgdGhlIG9yaWdpbmFsIERhc2hQYXRoRWZmZWN0IGNsYXNzLgotICoKLSAqIEJlY2F1c2UgdGhpcyBleHRlbmRzIHtAbGluayBQYXRoRWZmZWN0X0RlbGVnYXRlfSwgdGhlcmUncyBubyBuZWVkIHRvIHVzZSBhCi0gKiB7QGxpbmsgRGVsZWdhdGVNYW5hZ2VyfSwgYXMgYWxsIHRoZSBQYXRoRWZmZWN0IGNsYXNzZXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgbWFuYWdlciBvd25lZCBieQotICoge0BsaW5rIFBhdGhFZmZlY3RfRGVsZWdhdGV9LgotICoKLSAqIEBzZWUgUGF0aEVmZmVjdF9EZWxlZ2F0ZQotICoKLSAqLwotcHVibGljIGZpbmFsIGNsYXNzIERhc2hQYXRoRWZmZWN0X0RlbGVnYXRlIGV4dGVuZHMgUGF0aEVmZmVjdF9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotCi0gICAgcHJpdmF0ZSBmaW5hbCBmbG9hdFtdIG1JbnRlcnZhbHM7Ci0gICAgcHJpdmF0ZSBmaW5hbCBmbG9hdCBtUGhhc2U7Ci0KLSAgICAvLyAtLS0tIFB1YmxpYyBIZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3Ryb2tlIGdldFN0cm9rZShQYWludF9EZWxlZ2F0ZSBwYWludCkgewotICAgICAgICByZXR1cm4gbmV3IEJhc2ljU3Ryb2tlKAotICAgICAgICAgICAgICAgIHBhaW50LmdldFN0cm9rZVdpZHRoKCksCi0gICAgICAgICAgICAgICAgcGFpbnQuZ2V0SmF2YUNhcCgpLAotICAgICAgICAgICAgICAgIHBhaW50LmdldEphdmFKb2luKCksCi0gICAgICAgICAgICAgICAgcGFpbnQuZ2V0SmF2YVN0cm9rZU1pdGVyKCksCi0gICAgICAgICAgICAgICAgbUludGVydmFscywKLSAgICAgICAgICAgICAgICBtUGhhc2UpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGlzU3VwcG9ydGVkKCkgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCkgewotICAgICAgICAvLyBubyBtZXNzYWdlIHNpbmNlIGlzU3VwcG9ydGVkIHJldHVybnMgdHJ1ZTsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBuYXRpdmUgbWV0aG9kcyAtLS0tCi0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZUNyZWF0ZShmbG9hdCBpbnRlcnZhbHNbXSwgZmxvYXQgcGhhc2UpIHsKLSAgICAgICAgRGFzaFBhdGhFZmZlY3RfRGVsZWdhdGUgbmV3RGVsZWdhdGUgPSBuZXcgRGFzaFBhdGhFZmZlY3RfRGVsZWdhdGUoaW50ZXJ2YWxzLCBwaGFzZSk7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5hZGROZXdEZWxlZ2F0ZShuZXdEZWxlZ2F0ZSk7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBQcml2YXRlIGRlbGVnYXRlL2hlbHBlciBtZXRob2RzIC0tLS0KLQotICAgIHByaXZhdGUgRGFzaFBhdGhFZmZlY3RfRGVsZWdhdGUoZmxvYXQgaW50ZXJ2YWxzW10sIGZsb2F0IHBoYXNlKSB7Ci0gICAgICAgIG1JbnRlcnZhbHMgPSBuZXcgZmxvYXRbaW50ZXJ2YWxzLmxlbmd0aF07Ci0gICAgICAgIFN5c3RlbS5hcnJheWNvcHkoaW50ZXJ2YWxzLCAwLCBtSW50ZXJ2YWxzLCAwLCBpbnRlcnZhbHMubGVuZ3RoKTsKLSAgICAgICAgbVBoYXNlID0gcGhhc2U7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0Rpc2NyZXRlUGF0aEVmZmVjdF9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9EaXNjcmV0ZVBhdGhFZmZlY3RfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM0YTgxMC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0Rpc2NyZXRlUGF0aEVmZmVjdF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgamF2YS5hd3QuU3Ryb2tlOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5EaXNjcmV0ZVBhdGhFZmZlY3QKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBEaXNjcmV0ZVBhdGhFZmZlY3QgaGF2ZSBiZWVuCi0gKiByZXBsYWNlZCBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgRGlzY3JldGVQYXRoRWZmZWN0IGNsYXNzLgotICoKLSAqIEJlY2F1c2UgdGhpcyBleHRlbmRzIHtAbGluayBQYXRoRWZmZWN0X0RlbGVnYXRlfSwgdGhlcmUncyBubyBuZWVkIHRvIHVzZSBhIHtAbGluayBEZWxlZ2F0ZU1hbmFnZXJ9LAotICogYXMgYWxsIHRoZSBTaGFkZXIgY2xhc3NlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBtYW5hZ2VyIG93bmVkIGJ5IHtAbGluayBQYXRoRWZmZWN0X0RlbGVnYXRlfS4KLSAqCi0gKiBAc2VlIFBhdGhFZmZlY3RfRGVsZWdhdGUKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBEaXNjcmV0ZVBhdGhFZmZlY3RfRGVsZWdhdGUgZXh0ZW5kcyBQYXRoRWZmZWN0X0RlbGVnYXRlIHsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgZGF0YSAtLS0tCi0KLSAgICAvLyAtLS0tIFB1YmxpYyBIZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3Ryb2tlIGdldFN0cm9rZShQYWludF9EZWxlZ2F0ZSBwYWludCkgewotICAgICAgICAvLyBGSVhNRQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBpc1N1cHBvcnRlZCgpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3VwcG9ydE1lc3NhZ2UoKSB7Ci0gICAgICAgIHJldHVybiAiRGlzY3JldGUgUGF0aCBFZmZlY3RzIGFyZSBub3Qgc3VwcG9ydGVkIGluIExheW91dCBQcmV2aWV3IG1vZGUuIjsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIG5hdGl2ZSBtZXRob2RzIC0tLS0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlQ3JlYXRlKGZsb2F0IGxlbmd0aCwgZmxvYXQgZGV2aWF0aW9uKSB7Ci0gICAgICAgIERpc2NyZXRlUGF0aEVmZmVjdF9EZWxlZ2F0ZSBuZXdEZWxlZ2F0ZSA9IG5ldyBEaXNjcmV0ZVBhdGhFZmZlY3RfRGVsZWdhdGUoKTsKLSAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmFkZE5ld0RlbGVnYXRlKG5ld0RlbGVnYXRlKTsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9EcmF3RmlsdGVyX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0RyYXdGaWx0ZXJfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODcwYzQ2Yi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0RyYXdGaWx0ZXJfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuZ3JhcGhpY3M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRGVsZWdhdGVNYW5hZ2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotLyoqCi0gKiBEZWxlZ2F0ZSBpbXBsZW1lbnRpbmcgdGhlIG5hdGl2ZSBtZXRob2RzIG9mIGFuZHJvaWQuZ3JhcGhpY3MuRHJhd0ZpbHRlcgotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsIG5hdGl2ZSBtZXRob2RzIG9mIERyYXdGaWx0ZXIgaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgRHJhd0ZpbHRlciBjbGFzcy4KLSAqCi0gKiBUaGlzIGFsc28gc2VydmUgYXMgYSBiYXNlIGNsYXNzIGZvciBhbGwgRHJhd0ZpbHRlciBkZWxlZ2F0ZSBjbGFzc2VzLgotICoKLSAqIEBzZWUgRGVsZWdhdGVNYW5hZ2VyCi0gKgotICovCi1wdWJsaWMgYWJzdHJhY3QgY2xhc3MgRHJhd0ZpbHRlcl9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIG1hbmFnZXIgLS0tLQotICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgRGVsZWdhdGVNYW5hZ2VyPERyYXdGaWx0ZXJfRGVsZWdhdGU+IHNNYW5hZ2VyID0KLSAgICAgICAgICAgIG5ldyBEZWxlZ2F0ZU1hbmFnZXI8RHJhd0ZpbHRlcl9EZWxlZ2F0ZT4oRHJhd0ZpbHRlcl9EZWxlZ2F0ZS5jbGFzcyk7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGhlbHBlciBkYXRhIC0tLS0KLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgZGF0YSAtLS0tCi0KLSAgICAvLyAtLS0tIFB1YmxpYyBIZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBwdWJsaWMgc3RhdGljIERyYXdGaWx0ZXJfRGVsZWdhdGUgZ2V0RGVsZWdhdGUoaW50IG5hdGl2ZURyYXdGaWx0ZXIpIHsKLSAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZURyYXdGaWx0ZXIpOwotICAgIH0KLQotICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGlzU3VwcG9ydGVkKCk7Ci0gICAgcHVibGljIGFic3RyYWN0IFN0cmluZyBnZXRTdXBwb3J0TWVzc2FnZSgpOwotCi0gICAgLy8gLS0tLSBuYXRpdmUgbWV0aG9kcyAtLS0tCi0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVEZXN0cnVjdG9yKGludCBuYXRpdmVEcmF3RmlsdGVyKSB7Ci0gICAgICAgIHNNYW5hZ2VyLnJlbW92ZUphdmFSZWZlcmVuY2VGb3IobmF0aXZlRHJhd0ZpbHRlcik7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBQcml2YXRlIGRlbGVnYXRlL2hlbHBlciBtZXRob2RzIC0tLS0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvRW1ib3NzTWFza0ZpbHRlcl9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9FbWJvc3NNYXNrRmlsdGVyX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViYzFjMWQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9FbWJvc3NNYXNrRmlsdGVyX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLkRlbGVnYXRlTWFuYWdlcjsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLS8qKgotICogRGVsZWdhdGUgaW1wbGVtZW50aW5nIHRoZSBuYXRpdmUgbWV0aG9kcyBvZiBhbmRyb2lkLmdyYXBoaWNzLkVtYm9zc01hc2tGaWx0ZXIKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBFbWJvc3NNYXNrRmlsdGVyIGhhdmUKLSAqIGJlZW4gcmVwbGFjZWQgYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICogVGhpcyBjbGFzcyBiZWhhdmVzIGxpa2UgdGhlIG9yaWdpbmFsIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGluIEphdmEsIGtlZXBpbmcgcHJldmlvdXNseQotICogbmF0aXZlIGRhdGEgaW50byBpdHMgb3duIG9iamVjdHMgYW5kIG1hcHBpbmcgdGhlbSB0byBpbnQgdGhhdCBhcmUgc2VudCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuCi0gKiBpdCBhbmQgdGhlIG9yaWdpbmFsIEVtYm9zc01hc2tGaWx0ZXIgY2xhc3MuCi0gKgotICogQmVjYXVzZSB0aGlzIGV4dGVuZHMge0BsaW5rIE1hc2tGaWx0ZXJfRGVsZWdhdGV9LCB0aGVyZSdzIG5vIG5lZWQgdG8gdXNlIGEKLSAqIHtAbGluayBEZWxlZ2F0ZU1hbmFnZXJ9LCBhcyBhbGwgdGhlIFNoYWRlciBjbGFzc2VzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIG1hbmFnZXIKLSAqIG93bmVkIGJ5IHtAbGluayBNYXNrRmlsdGVyX0RlbGVnYXRlfS4KLSAqCi0gKiBAc2VlIE1hc2tGaWx0ZXJfRGVsZWdhdGUKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBFbWJvc3NNYXNrRmlsdGVyX0RlbGVnYXRlIGV4dGVuZHMgTWFza0ZpbHRlcl9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNTdXBwb3J0ZWQoKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCkgewotICAgICAgICByZXR1cm4gIkVtYm9zcyBNYXNrIEZpbHRlcnMgYXJlIG5vdCBzdXBwb3J0ZWQuIjsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIG5hdGl2ZSBtZXRob2RzIC0tLS0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlQ29uc3RydWN0b3IoZmxvYXRbXSBkaXJlY3Rpb24sIGZsb2F0IGFtYmllbnQsCi0gICAgICAgICAgICBmbG9hdCBzcGVjdWxhciwgZmxvYXQgYmx1clJhZGl1cykgewotICAgICAgICBFbWJvc3NNYXNrRmlsdGVyX0RlbGVnYXRlIG5ld0RlbGVnYXRlID0gbmV3IEVtYm9zc01hc2tGaWx0ZXJfRGVsZWdhdGUoKTsKLSAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmFkZE5ld0RlbGVnYXRlKG5ld0RlbGVnYXRlKTsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9HcmFkaWVudF9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9HcmFkaWVudF9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NDc1YzIyLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvR3JhZGllbnRfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDIxMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5TaGFkZXIuVGlsZU1vZGU7Ci0KLS8qKgotICogQmFzZSBjbGFzcyBmb3IgdHJ1ZSBHcmFkaWVudCBzaGFkZXIgZGVsZWdhdGUuCi0gKi8KLXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBHcmFkaWVudF9EZWxlZ2F0ZSBleHRlbmRzIFNoYWRlcl9EZWxlZ2F0ZSB7Ci0KLSAgICBwcm90ZWN0ZWQgZmluYWwgaW50W10gbUNvbG9yczsKLSAgICBwcm90ZWN0ZWQgZmluYWwgZmxvYXRbXSBtUG9zaXRpb25zOwotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNTdXBwb3J0ZWQoKSB7Ci0gICAgICAgIC8vIGFsbCBncmFkaWVudCBzaGFkZXJzIGFyZSBzdXBwb3J0ZWQuCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3VwcG9ydE1lc3NhZ2UoKSB7Ci0gICAgICAgIC8vIGFsbCBncmFkaWVudCBzaGFkZXJzIGFyZSBzdXBwb3J0ZWQsIG5vIG5lZWQgZm9yIGEgZ3JhZGllbnQgc3VwcG9ydAotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDcmVhdGVzIHRoZSBiYXNlIHNoYWRlciBhbmQgZG8gc29tZSBiYXNpYyB0ZXN0IG9uIHRoZSBwYXJhbWV0ZXJzLgotICAgICAqCi0gICAgICogQHBhcmFtIGNvbG9ycyBUaGUgY29sb3JzIHRvIGJlIGRpc3RyaWJ1dGVkIGFsb25nIHRoZSBncmFkaWVudCBsaW5lCi0gICAgICogQHBhcmFtIHBvc2l0aW9ucyBNYXkgYmUgbnVsbC4gVGhlIHJlbGF0aXZlIHBvc2l0aW9ucyBbMC4uMV0gb2YgZWFjaAotICAgICAqICAgICAgICAgICAgY29ycmVzcG9uZGluZyBjb2xvciBpbiB0aGUgY29sb3JzIGFycmF5LiBJZiB0aGlzIGlzIG51bGwsIHRoZQotICAgICAqICAgICAgICAgICAgdGhlIGNvbG9ycyBhcmUgZGlzdHJpYnV0ZWQgZXZlbmx5IGFsb25nIHRoZSBncmFkaWVudCBsaW5lLgotICAgICAqLwotICAgIHByb3RlY3RlZCBHcmFkaWVudF9EZWxlZ2F0ZShpbnQgY29sb3JzW10sIGZsb2F0IHBvc2l0aW9uc1tdKSB7Ci0gICAgICAgIGlmIChjb2xvcnMubGVuZ3RoIDwgMikgewotICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibmVlZHMgPj0gMiBudW1iZXIgb2YgY29sb3JzIik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHBvc2l0aW9ucyAhPSBudWxsICYmIGNvbG9ycy5sZW5ndGggIT0gcG9zaXRpb25zLmxlbmd0aCkgewotICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiY29sb3IgYW5kIHBvc2l0aW9uIGFycmF5cyBtdXN0IGJlIG9mIGVxdWFsIGxlbmd0aCIpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHBvc2l0aW9ucyA9PSBudWxsKSB7Ci0gICAgICAgICAgICBmbG9hdCBzcGFjaW5nID0gMS5mIC8gKGNvbG9ycy5sZW5ndGggLSAxKTsKLSAgICAgICAgICAgIHBvc2l0aW9ucyA9IG5ldyBmbG9hdFtjb2xvcnMubGVuZ3RoXTsKLSAgICAgICAgICAgIHBvc2l0aW9uc1swXSA9IDAuZjsKLSAgICAgICAgICAgIHBvc2l0aW9uc1tjb2xvcnMubGVuZ3RoLTFdID0gMS5mOwotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBjb2xvcnMubGVuZ3RoIC0gMSA7IGkrKykgewotICAgICAgICAgICAgICAgIHBvc2l0aW9uc1tpXSA9IHNwYWNpbmcgKiBpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgbUNvbG9ycyA9IGNvbG9yczsKLSAgICAgICAgbVBvc2l0aW9ucyA9IHBvc2l0aW9uczsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBCYXNlIGNsYXNzIGZvciAoSmF2YSkgR3JhZGllbnQgUGFpbnRzLiBUaGlzIGhhbmRsZXMgY29tcHV0aW5nIHRoZSBncmFkaWVudCBjb2xvcnMgYmFzZWQKLSAgICAgKiBvbiB0aGUgY29sb3IgYW5kIHBvc2l0aW9uIGxpc3RzLCBhcyB3ZWxsIGFzIHRoZSB7QGxpbmsgVGlsZU1vZGV9Ci0gICAgICoKLSAgICAgKi8KLSAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIEdyYWRpZW50UGFpbnQgaW1wbGVtZW50cyBqYXZhLmF3dC5QYWludCB7Ci0gICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBHUkFESUVOVF9TSVpFID0gMTAwOwotCi0gICAgICAgIHByaXZhdGUgZmluYWwgaW50W10gbUNvbG9yczsKLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBmbG9hdFtdIG1Qb3NpdGlvbnM7Ci0gICAgICAgIHByaXZhdGUgZmluYWwgVGlsZU1vZGUgbVRpbGVNb2RlOwotICAgICAgICBwcml2YXRlIGludFtdIG1HcmFkaWVudDsKLQotICAgICAgICBwcm90ZWN0ZWQgR3JhZGllbnRQYWludChpbnRbXSBjb2xvcnMsIGZsb2F0W10gcG9zaXRpb25zLCBUaWxlTW9kZSB0aWxlTW9kZSkgewotICAgICAgICAgICAgbUNvbG9ycyA9IGNvbG9yczsKLSAgICAgICAgICAgIG1Qb3NpdGlvbnMgPSBwb3NpdGlvbnM7Ci0gICAgICAgICAgICBtVGlsZU1vZGUgPSB0aWxlTW9kZTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgaW50IGdldFRyYW5zcGFyZW5jeSgpIHsKLSAgICAgICAgICAgIHJldHVybiBqYXZhLmF3dC5QYWludC5UUkFOU0xVQ0VOVDsKLSAgICAgICAgfQotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBQcmUtY29tcHV0ZXMgdGhlIGNvbG9ycyBmb3IgdGhlIGdyYWRpZW50LiBUaGlzIG11c3QgYmUgY2FsbGVkIG9uY2UgYmVmb3JlIGFueSBjYWxsCi0gICAgICAgICAqIHRvIHtAbGluayAjZ2V0R3JhZGllbnRDb2xvcihmbG9hdCl9Ci0gICAgICAgICAqLwotICAgICAgICBwcm90ZWN0ZWQgdm9pZCBwcmVjb21wdXRlR3JhZGllbnRDb2xvcnMoKSB7Ci0gICAgICAgICAgICBpZiAobUdyYWRpZW50ID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAvLyBhY3R1YWxseSBjcmVhdGUgYW4gYXJyYXkgd2l0aCBhbiBleHRyYSBzaXplLCBzbyB0aGF0IHdlIGNhbiByZWFsbHkgZ28KLSAgICAgICAgICAgICAgICAvLyBmcm9tIDAgdG8gU0laRSAoMTAwJSksIG9yIGN1cnJlbnRQb3MgaW4gdGhlIGxvb3AgYmVsb3cgd2lsbCBuZXZlciBlcXVhbCAxLjAKLSAgICAgICAgICAgICAgICBtR3JhZGllbnQgPSBuZXcgaW50W0dSQURJRU5UX1NJWkUrMV07Ci0KLSAgICAgICAgICAgICAgICBpbnQgcHJldlBvcyA9IDA7Ci0gICAgICAgICAgICAgICAgaW50IG5leHRQb3MgPSAxOwotICAgICAgICAgICAgICAgIGZvciAoaW50IGkgID0gMCA7IGkgPD0gR1JBRElFTlRfU0laRSA7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAvLyBjb21wdXRlIGN1cnJlbnQgcG9zaXRpb24KLSAgICAgICAgICAgICAgICAgICAgZmxvYXQgY3VycmVudFBvcyA9IChmbG9hdClpL0dSQURJRU5UX1NJWkU7Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxlIChjdXJyZW50UG9zID4gbVBvc2l0aW9uc1tuZXh0UG9zXSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcHJldlBvcyA9IG5leHRQb3MrKzsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIGZsb2F0IHBlcmNlbnQgPSAoY3VycmVudFBvcyAtIG1Qb3NpdGlvbnNbcHJldlBvc10pIC8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAobVBvc2l0aW9uc1tuZXh0UG9zXSAtIG1Qb3NpdGlvbnNbcHJldlBvc10pOwotCi0gICAgICAgICAgICAgICAgICAgIG1HcmFkaWVudFtpXSA9IGNvbXB1dGVDb2xvcihtQ29sb3JzW3ByZXZQb3NdLCBtQ29sb3JzW25leHRQb3NdLCBwZXJjZW50KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvKioKLSAgICAgICAgICogUmV0dXJucyB0aGUgY29sb3IgYmFzZWQgb24gdGhlIHBvc2l0aW9uIGluIHRoZSBncmFkaWVudC4KLSAgICAgICAgICogPHZhcj5wb3M8L3Zhcj4gY2FuIGJlIGFueXRoaW5nLCBldmVuICZsdDsgMCBvciAmZ3Q7ID4gMSwgYXMgdGhlIGdyYWRpZW50Ci0gICAgICAgICAqIHdpbGwgdXNlIHtAbGluayBUaWxlTW9kZX0gdmFsdWUgdG8gY29udmVydCBpdCBpbnRvIGEgWzAsMV0gdmFsdWUuCi0gICAgICAgICAqLwotICAgICAgICBwcm90ZWN0ZWQgaW50IGdldEdyYWRpZW50Q29sb3IoZmxvYXQgcG9zKSB7Ci0gICAgICAgICAgICBpZiAocG9zIDwgMC5mKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1UaWxlTW9kZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobVRpbGVNb2RlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENMQU1QOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IDAuZjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgUkVQRUFUOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgaW50ZWdlciBwYXJ0IHRvIHN0YXkgaW4gdGhlIFswLDFdIHJhbmdlLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGFsc28gbmVlZCB0byBpbnZlcnQgdGhlIHZhbHVlIGZyb20gWy0xLDBdIHRvIFswLCAxXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBvcyAtIChmbG9hdClNYXRoLmZsb29yKHBvcyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE1JUlJPUjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIHRoZSBzYW1lIGFzIHRoZSBwb3NpdGl2ZSBzaWRlLCBqdXN0IG1ha2UgdGhlIHZhbHVlIHBvc2l0aXZlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmlyc3QuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gTWF0aC5hYnMocG9zKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgaW50ZWdlciBhbmQgdGhlIGRlY2ltYWwgcGFydAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbnRQYXJ0ID0gKGludClNYXRoLmZsb29yKHBvcyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcG9zIC0gaW50UGFydDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAwIC0+IDEgOiBub3JtYWwgb3JkZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxIC0+IDI6IG1pcnJvcmVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXRjLi4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIG1lYW5zIGlmIHRoZSBpbnRwYXJ0IGlzIG9kZCB3ZSBpbnZlcnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGludFBhcnQgJSAyKSA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IDEuZiAtIHBvczsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBwb3MgPSAwLjBmOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAocG9zID4gMWYpIHsKLSAgICAgICAgICAgICAgICBpZiAobVRpbGVNb2RlICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChtVGlsZU1vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ0xBTVA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gMS5mOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBSRVBFQVQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBpbnRlZ2VyIHBhcnQgdG8gc3RheSBpbiB0aGUgWzAsMV0gcmFuZ2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MgLSAoZmxvYXQpTWF0aC5mbG9vcihwb3MpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBNSVJST1I6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBpbnRlZ2VyIGFuZCB0aGUgZGVjaW1hbCBwYXJ0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGludFBhcnQgPSAoaW50KU1hdGguZmxvb3IocG9zKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwb3MgLSBpbnRQYXJ0OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDAgLT4gMSA6IG5vcm1hbCBvcmRlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEgLT4gMjogbWlycm9yZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBldGMuLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgbWVhbnMgaWYgdGhlIGludHBhcnQgaXMgb2RkIHdlIGludmVydAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoaW50UGFydCAlIDIpID09IDEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gMS5mIC0gcG9zOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHBvcyA9IDEuMGY7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpbnQgaW5kZXggPSAoaW50KSgocG9zICogR1JBRElFTlRfU0laRSkgKyAuNSk7Ci0KLSAgICAgICAgICAgIHJldHVybiBtR3JhZGllbnRbaW5kZXhdOwotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIFJldHVybnMgdGhlIGNvbG9yIGJldHdlZW4gYzEsIGFuZCBjMiwgYmFzZWQgb24gdGhlIHBlcmNlbnQgb2YgdGhlIGRpc3RhbmNlCi0gICAgICAgICAqIGJldHdlZW4gYzEgYW5kIGMyLgotICAgICAgICAgKi8KLSAgICAgICAgcHJpdmF0ZSBpbnQgY29tcHV0ZUNvbG9yKGludCBjMSwgaW50IGMyLCBmbG9hdCBwZXJjZW50KSB7Ci0gICAgICAgICAgICBpbnQgYSA9IGNvbXB1dGVDaGFubmVsKChjMSA+PiAyNCkgJiAweEZGLCAoYzIgPj4gMjQpICYgMHhGRiwgcGVyY2VudCk7Ci0gICAgICAgICAgICBpbnQgciA9IGNvbXB1dGVDaGFubmVsKChjMSA+PiAxNikgJiAweEZGLCAoYzIgPj4gMTYpICYgMHhGRiwgcGVyY2VudCk7Ci0gICAgICAgICAgICBpbnQgZyA9IGNvbXB1dGVDaGFubmVsKChjMSA+PiAgOCkgJiAweEZGLCAoYzIgPj4gIDgpICYgMHhGRiwgcGVyY2VudCk7Ci0gICAgICAgICAgICBpbnQgYiA9IGNvbXB1dGVDaGFubmVsKChjMSAgICAgICkgJiAweEZGLCAoYzIgICAgICApICYgMHhGRiwgcGVyY2VudCk7Ci0gICAgICAgICAgICByZXR1cm4gYSA8PCAyNCB8IHIgPDwgMTYgfCBnIDw8IDggfCBiOwotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIFJldHVybnMgdGhlIGNoYW5uZWwgdmFsdWUgYmV0d2VlbiAyIHZhbHVlcyBiYXNlZCBvbiB0aGUgcGVyY2VudCBvZiB0aGUgZGlzdGFuY2UgYmV0d2VlbgotICAgICAgICAgKiB0aGUgMiB2YWx1ZXMuLgotICAgICAgICAgKi8KLSAgICAgICAgcHJpdmF0ZSBpbnQgY29tcHV0ZUNoYW5uZWwoaW50IGMxLCBpbnQgYzIsIGZsb2F0IHBlcmNlbnQpIHsKLSAgICAgICAgICAgIHJldHVybiBjMSArIChpbnQpKChwZXJjZW50ICogKGMyLWMxKSkgKyAuNSk7Ci0gICAgICAgIH0KLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0xheWVyUmFzdGVyaXplcl9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9MYXllclJhc3Rlcml6ZXJfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTFlMDU3Ni4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0xheWVyUmFzdGVyaXplcl9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5MYXllclJhc3Rlcml6ZXIKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBMYXllclJhc3Rlcml6ZXIgaGF2ZQotICogYmVlbiByZXBsYWNlZCBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgTGF5ZXJSYXN0ZXJpemVyIGNsYXNzLgotICoKLSAqIEJlY2F1c2UgdGhpcyBleHRlbmRzIHtAbGluayBSYXN0ZXJpemVyX0RlbGVnYXRlfSwgdGhlcmUncyBubyBuZWVkIHRvIHVzZSBhCi0gKiB7QGxpbmsgRGVsZWdhdGVNYW5hZ2VyfSwgYXMgYWxsIHRoZSBTaGFkZXIgY2xhc3NlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBtYW5hZ2VyCi0gKiBvd25lZCBieSB7QGxpbmsgUmFzdGVyaXplcl9EZWxlZ2F0ZX0uCi0gKgotICogQHNlZSBSYXN0ZXJpemVyX0RlbGVnYXRlCi0gKgotICovCi1wdWJsaWMgY2xhc3MgTGF5ZXJSYXN0ZXJpemVyX0RlbGVnYXRlIGV4dGVuZHMgUmFzdGVyaXplcl9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNTdXBwb3J0ZWQoKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCkgewotICAgICAgICByZXR1cm4gIkxheWVyIFJhc3Rlcml6ZXJzIGFyZSBub3Qgc3VwcG9ydGVkLiI7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBuYXRpdmUgbWV0aG9kcyAtLS0tCi0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZUNvbnN0cnVjdG9yKCkgewotICAgICAgICBMYXllclJhc3Rlcml6ZXJfRGVsZWdhdGUgbmV3RGVsZWdhdGUgPSBuZXcgTGF5ZXJSYXN0ZXJpemVyX0RlbGVnYXRlKCk7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5hZGROZXdEZWxlZ2F0ZShuZXdEZWxlZ2F0ZSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlQWRkTGF5ZXIoaW50IG5hdGl2ZV9sYXllciwgaW50IG5hdGl2ZV9wYWludCwgZmxvYXQgZHgsIGZsb2F0IGR5KSB7Ci0KLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9MaWdodGluZ0NvbG9yRmlsdGVyX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0xpZ2h0aW5nQ29sb3JGaWx0ZXJfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGVlODgzZC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0xpZ2h0aW5nQ29sb3JGaWx0ZXJfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuZ3JhcGhpY3M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRGVsZWdhdGVNYW5hZ2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotLyoqCi0gKiBEZWxlZ2F0ZSBpbXBsZW1lbnRpbmcgdGhlIG5hdGl2ZSBtZXRob2RzIG9mIGFuZHJvaWQuZ3JhcGhpY3MuTGlnaHRpbmdDb2xvckZpbHRlcgotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsIG5hdGl2ZSBtZXRob2RzIG9mIExpZ2h0aW5nQ29sb3JGaWx0ZXIgaGF2ZQotICogYmVlbiByZXBsYWNlZCBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgTGlnaHRpbmdDb2xvckZpbHRlciBjbGFzcy4KLSAqCi0gKiBCZWNhdXNlIHRoaXMgZXh0ZW5kcyB7QGxpbmsgQ29sb3JGaWx0ZXJfRGVsZWdhdGV9LCB0aGVyZSdzIG5vIG5lZWQgdG8gdXNlIGEKLSAqIHtAbGluayBEZWxlZ2F0ZU1hbmFnZXJ9LCBhcyBhbGwgdGhlIFNoYWRlciBjbGFzc2VzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIG1hbmFnZXIKLSAqIG93bmVkIGJ5IHtAbGluayBDb2xvckZpbHRlcl9EZWxlZ2F0ZX0uCi0gKgotICogQHNlZSBDb2xvckZpbHRlcl9EZWxlZ2F0ZQotICoKLSAqLwotcHVibGljIGNsYXNzIExpZ2h0aW5nQ29sb3JGaWx0ZXJfRGVsZWdhdGUgZXh0ZW5kcyBDb2xvckZpbHRlcl9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNTdXBwb3J0ZWQoKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCkgewotICAgICAgICByZXR1cm4gIkxpZ2h0aW5nIENvbG9yIEZpbHRlcnMgYXJlIG5vdCBzdXBwb3J0ZWQuIjsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIG5hdGl2ZSBtZXRob2RzIC0tLS0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlX0NyZWF0ZUxpZ2h0aW5nRmlsdGVyKGludCBtdWwsIGludCBhZGQpIHsKLSAgICAgICAgTGlnaHRpbmdDb2xvckZpbHRlcl9EZWxlZ2F0ZSBuZXdEZWxlZ2F0ZSA9IG5ldyBMaWdodGluZ0NvbG9yRmlsdGVyX0RlbGVnYXRlKCk7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5hZGROZXdEZWxlZ2F0ZShuZXdEZWxlZ2F0ZSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuQ3JlYXRlTGlnaHRpbmdGaWx0ZXIoaW50IG5hdGl2ZUZpbHRlciwgaW50IG11bCwgaW50IGFkZCkgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8vIC0tLS0gUHJpdmF0ZSBkZWxlZ2F0ZS9oZWxwZXIgbWV0aG9kcyAtLS0tCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0xpbmVhckdyYWRpZW50X0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL0xpbmVhckdyYWRpZW50X0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxMTdmY2EuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9MaW5lYXJHcmFkaWVudF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMjQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuZ3JhcGhpY3M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuTGF5b3V0TG9nOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5TaGFkZXIuVGlsZU1vZGU7Ci0KLS8qKgotICogRGVsZWdhdGUgaW1wbGVtZW50aW5nIHRoZSBuYXRpdmUgbWV0aG9kcyBvZiBhbmRyb2lkLmdyYXBoaWNzLkxpbmVhckdyYWRpZW50Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgTGluZWFyR3JhZGllbnQgaGF2ZSBiZWVuCi0gKiByZXBsYWNlZCBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgTGluZWFyR3JhZGllbnQgY2xhc3MuCi0gKgotICogQmVjYXVzZSB0aGlzIGV4dGVuZHMge0BsaW5rIFNoYWRlcl9EZWxlZ2F0ZX0sIHRoZXJlJ3Mgbm8gbmVlZCB0byB1c2UgYSB7QGxpbmsgRGVsZWdhdGVNYW5hZ2VyfSwKLSAqIGFzIGFsbCB0aGUgU2hhZGVyIGNsYXNzZXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgbWFuYWdlciBvd25lZCBieSB7QGxpbmsgU2hhZGVyX0RlbGVnYXRlfS4KLSAqCi0gKiBAc2VlIFNoYWRlcl9EZWxlZ2F0ZQotICoKLSAqLwotcHVibGljIGZpbmFsIGNsYXNzIExpbmVhckdyYWRpZW50X0RlbGVnYXRlIGV4dGVuZHMgR3JhZGllbnRfRGVsZWdhdGUgewotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBkYXRhIC0tLS0KLSAgICBwcml2YXRlIGphdmEuYXd0LlBhaW50IG1KYXZhUGFpbnQ7Ci0KLSAgICAvLyAtLS0tIFB1YmxpYyBIZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgamF2YS5hd3QuUGFpbnQgZ2V0SmF2YVBhaW50KCkgewotICAgICAgICByZXR1cm4gbUphdmFQYWludDsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIG5hdGl2ZSBtZXRob2RzIC0tLS0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlQ3JlYXRlMShMaW5lYXJHcmFkaWVudCB0aGlzR3JhZGllbnQsCi0gICAgICAgICAgICBmbG9hdCB4MCwgZmxvYXQgeTAsIGZsb2F0IHgxLCBmbG9hdCB5MSwKLSAgICAgICAgICAgIGludCBjb2xvcnNbXSwgZmxvYXQgcG9zaXRpb25zW10sIGludCB0aWxlTW9kZSkgewotICAgICAgICBMaW5lYXJHcmFkaWVudF9EZWxlZ2F0ZSBuZXdEZWxlZ2F0ZSA9IG5ldyBMaW5lYXJHcmFkaWVudF9EZWxlZ2F0ZSh4MCwgeTAsIHgxLCB5MSwKLSAgICAgICAgICAgICAgICBjb2xvcnMsIHBvc2l0aW9ucywgU2hhZGVyX0RlbGVnYXRlLmdldFRpbGVNb2RlKHRpbGVNb2RlKSk7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5hZGROZXdEZWxlZ2F0ZShuZXdEZWxlZ2F0ZSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVDcmVhdGUyKExpbmVhckdyYWRpZW50IHRoaXNHcmFkaWVudCwKLSAgICAgICAgICAgIGZsb2F0IHgwLCBmbG9hdCB5MCwgZmxvYXQgeDEsIGZsb2F0IHkxLAotICAgICAgICAgICAgaW50IGNvbG9yMCwgaW50IGNvbG9yMSwgaW50IHRpbGVNb2RlKSB7Ci0gICAgICAgIHJldHVybiBuYXRpdmVDcmVhdGUxKHRoaXNHcmFkaWVudCwKLSAgICAgICAgICAgICAgICB4MCwgeTAsIHgxLCB5MSwgbmV3IGludFtdIHsgY29sb3IwLCBjb2xvcjF9LCBudWxsIC8qcG9zaXRpb25zKi8sCi0gICAgICAgICAgICAgICAgdGlsZU1vZGUpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlUG9zdENyZWF0ZTEoTGluZWFyR3JhZGllbnQgdGhpc0dyYWRpZW50LAotICAgICAgICAgICAgaW50IG5hdGl2ZV9zaGFkZXIsIGZsb2F0IHgwLCBmbG9hdCB5MCwgZmxvYXQgeDEsIGZsb2F0IHkxLAotICAgICAgICAgICAgaW50IGNvbG9yc1tdLCBmbG9hdCBwb3NpdGlvbnNbXSwgaW50IHRpbGVNb2RlKSB7Ci0gICAgICAgIC8vIG5vdGhpbmcgdG8gYmUgZG9uZSBoZXJlLgotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZVBvc3RDcmVhdGUyKExpbmVhckdyYWRpZW50IHRoaXNHcmFkaWVudCwKLSAgICAgICAgICAgIGludCBuYXRpdmVfc2hhZGVyLCBmbG9hdCB4MCwgZmxvYXQgeTAsIGZsb2F0IHgxLCBmbG9hdCB5MSwKLSAgICAgICAgICAgIGludCBjb2xvcjAsIGludCBjb2xvcjEsIGludCB0aWxlTW9kZSkgewotICAgICAgICAvLyBub3RoaW5nIHRvIGJlIGRvbmUgaGVyZS4KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBQcml2YXRlIGRlbGVnYXRlL2hlbHBlciBtZXRob2RzIC0tLS0KLQotICAgIC8qKgotICAgICAqIENyZWF0ZSBhIHNoYWRlciB0aGF0IGRyYXdzIGEgbGluZWFyIGdyYWRpZW50IGFsb25nIGEgbGluZS4KLSAgICAgKgotICAgICAqIEBwYXJhbSB4MCBUaGUgeC1jb29yZGluYXRlIGZvciB0aGUgc3RhcnQgb2YgdGhlIGdyYWRpZW50IGxpbmUKLSAgICAgKiBAcGFyYW0geTAgVGhlIHktY29vcmRpbmF0ZSBmb3IgdGhlIHN0YXJ0IG9mIHRoZSBncmFkaWVudCBsaW5lCi0gICAgICogQHBhcmFtIHgxIFRoZSB4LWNvb3JkaW5hdGUgZm9yIHRoZSBlbmQgb2YgdGhlIGdyYWRpZW50IGxpbmUKLSAgICAgKiBAcGFyYW0geTEgVGhlIHktY29vcmRpbmF0ZSBmb3IgdGhlIGVuZCBvZiB0aGUgZ3JhZGllbnQgbGluZQotICAgICAqIEBwYXJhbSBjb2xvcnMgVGhlIGNvbG9ycyB0byBiZSBkaXN0cmlidXRlZCBhbG9uZyB0aGUgZ3JhZGllbnQgbGluZQotICAgICAqIEBwYXJhbSBwb3NpdGlvbnMgTWF5IGJlIG51bGwuIFRoZSByZWxhdGl2ZSBwb3NpdGlvbnMgWzAuLjFdIG9mIGVhY2gKLSAgICAgKiAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgY29sb3IgaW4gdGhlIGNvbG9ycyBhcnJheS4gSWYgdGhpcyBpcyBudWxsLCB0aGUKLSAgICAgKiAgICAgICAgICAgIHRoZSBjb2xvcnMgYXJlIGRpc3RyaWJ1dGVkIGV2ZW5seSBhbG9uZyB0aGUgZ3JhZGllbnQgbGluZS4KLSAgICAgKiBAcGFyYW0gdGlsZSBUaGUgU2hhZGVyIHRpbGluZyBtb2RlCi0gICAgICovCi0gICAgcHJpdmF0ZSBMaW5lYXJHcmFkaWVudF9EZWxlZ2F0ZShmbG9hdCB4MCwgZmxvYXQgeTAsIGZsb2F0IHgxLCBmbG9hdCB5MSwKLSAgICAgICAgICAgIGludCBjb2xvcnNbXSwgZmxvYXQgcG9zaXRpb25zW10sIFRpbGVNb2RlIHRpbGUpIHsKLSAgICAgICAgc3VwZXIoY29sb3JzLCBwb3NpdGlvbnMpOwotICAgICAgICBtSmF2YVBhaW50ID0gbmV3IExpbmVhckdyYWRpZW50UGFpbnQoeDAsIHkwLCB4MSwgeTEsIG1Db2xvcnMsIG1Qb3NpdGlvbnMsIHRpbGUpOwotICAgIH0KLQotICAgIC8vIC0tLS0gQ3VzdG9tIEphdmEgUGFpbnQgLS0tLQotICAgIC8qKgotICAgICAqIExpbmVhciBHcmFkaWVudCAoSmF2YSkgUGFpbnQgYWJsZSB0byBoYW5kbGUgbW9yZSB0aGFuIDIgcG9pbnRzLCBhcwotICAgICAqIHtAbGluayBqYXZhLmF3dC5HcmFkaWVudFBhaW50fSBvbmx5IHN1cHBvcnRzIDIgcG9pbnRzIGFuZCBkb2VzIG5vdCBzdXBwb3J0IEFuZHJvaWQncyB0aWxlCi0gICAgICogbW9kZXMuCi0gICAgICovCi0gICAgcHJpdmF0ZSBjbGFzcyBMaW5lYXJHcmFkaWVudFBhaW50IGV4dGVuZHMgR3JhZGllbnRQYWludCB7Ci0KLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBmbG9hdCBtWDA7Ci0gICAgICAgIHByaXZhdGUgZmluYWwgZmxvYXQgbVkwOwotICAgICAgICBwcml2YXRlIGZpbmFsIGZsb2F0IG1EeDsKLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBmbG9hdCBtRHk7Ci0gICAgICAgIHByaXZhdGUgZmluYWwgZmxvYXQgbURTaXplMjsKLQotICAgICAgICBwdWJsaWMgTGluZWFyR3JhZGllbnRQYWludChmbG9hdCB4MCwgZmxvYXQgeTAsIGZsb2F0IHgxLCBmbG9hdCB5MSwgaW50IGNvbG9yc1tdLAotICAgICAgICAgICAgICAgIGZsb2F0IHBvc2l0aW9uc1tdLCBUaWxlTW9kZSB0aWxlKSB7Ci0gICAgICAgICAgICBzdXBlcihjb2xvcnMsIHBvc2l0aW9ucywgdGlsZSk7Ci0gICAgICAgICAgICBtWDAgPSB4MDsKLSAgICAgICAgICAgIG1ZMCA9IHkwOwotICAgICAgICAgICAgbUR4ID0geDEgLSB4MDsKLSAgICAgICAgICAgIG1EeSA9IHkxIC0geTA7Ci0gICAgICAgICAgICBtRFNpemUyID0gbUR4ICogbUR4ICsgbUR5ICogbUR5OwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBqYXZhLmF3dC5QYWludENvbnRleHQgY3JlYXRlQ29udGV4dCgKLSAgICAgICAgICAgICAgICBqYXZhLmF3dC5pbWFnZS5Db2xvck1vZGVsICAgICAgY29sb3JNb2RlbCwKLSAgICAgICAgICAgICAgICBqYXZhLmF3dC5SZWN0YW5nbGUgICAgICAgICAgICAgZGV2aWNlQm91bmRzLAotICAgICAgICAgICAgICAgIGphdmEuYXd0Lmdlb20uUmVjdGFuZ2xlMkQgICAgICB1c2VyQm91bmRzLAotICAgICAgICAgICAgICAgIGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtICB4Zm9ybSwKLSAgICAgICAgICAgICAgICBqYXZhLmF3dC5SZW5kZXJpbmdIaW50cyAgICAgICAgaGludHMpIHsKLSAgICAgICAgICAgIHByZWNvbXB1dGVHcmFkaWVudENvbG9ycygpOwotCi0gICAgICAgICAgICBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybSBjYW52YXNNYXRyaXg7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIGNhbnZhc01hdHJpeCA9IHhmb3JtLmNyZWF0ZUludmVyc2UoKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGphdmEuYXd0Lmdlb20uTm9uaW52ZXJ0aWJsZVRyYW5zZm9ybUV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX01BVFJJWF9JTlZFUlNFLAotICAgICAgICAgICAgICAgICAgICAgICAgIlVuYWJsZSB0byBpbnZlcnNlIG1hdHJpeCBpbiBMaW5lYXJHcmFkaWVudCIsIGUsIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgICAgIGNhbnZhc01hdHJpeCA9IG5ldyBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybSgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybSBsb2NhbE1hdHJpeCA9IGdldExvY2FsTWF0cml4KCk7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIGxvY2FsTWF0cml4ID0gbG9jYWxNYXRyaXguY3JlYXRlSW52ZXJzZSgpOwotICAgICAgICAgICAgfSBjYXRjaCAoamF2YS5hd3QuZ2VvbS5Ob25pbnZlcnRpYmxlVHJhbnNmb3JtRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZmlkZWxpdHlXYXJuaW5nKExheW91dExvZy5UQUdfTUFUUklYX0lOVkVSU0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAiVW5hYmxlIHRvIGludmVyc2UgbWF0cml4IGluIExpbmVhckdyYWRpZW50IiwgZSwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgICAgICAgICAgbG9jYWxNYXRyaXggPSBuZXcgamF2YS5hd3QuZ2VvbS5BZmZpbmVUcmFuc2Zvcm0oKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIG5ldyBMaW5lYXJHcmFkaWVudFBhaW50Q29udGV4dChjYW52YXNNYXRyaXgsIGxvY2FsTWF0cml4LCBjb2xvck1vZGVsKTsKLSAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGUgY2xhc3MgTGluZWFyR3JhZGllbnRQYWludENvbnRleHQgaW1wbGVtZW50cyBqYXZhLmF3dC5QYWludENvbnRleHQgewotCi0gICAgICAgICAgICBwcml2YXRlIGZpbmFsIGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtIG1DYW52YXNNYXRyaXg7Ci0gICAgICAgICAgICBwcml2YXRlIGZpbmFsIGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtIG1Mb2NhbE1hdHJpeDsKLSAgICAgICAgICAgIHByaXZhdGUgZmluYWwgamF2YS5hd3QuaW1hZ2UuQ29sb3JNb2RlbCBtQ29sb3JNb2RlbDsKLQotICAgICAgICAgICAgcHJpdmF0ZSBMaW5lYXJHcmFkaWVudFBhaW50Q29udGV4dCgKLSAgICAgICAgICAgICAgICAgICAgamF2YS5hd3QuZ2VvbS5BZmZpbmVUcmFuc2Zvcm0gY2FudmFzTWF0cml4LAotICAgICAgICAgICAgICAgICAgICBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybSBsb2NhbE1hdHJpeCwKLSAgICAgICAgICAgICAgICAgICAgamF2YS5hd3QuaW1hZ2UuQ29sb3JNb2RlbCBjb2xvck1vZGVsKSB7Ci0gICAgICAgICAgICAgICAgbUNhbnZhc01hdHJpeCA9IGNhbnZhc01hdHJpeDsKLSAgICAgICAgICAgICAgICBtTG9jYWxNYXRyaXggPSBsb2NhbE1hdHJpeDsKLSAgICAgICAgICAgICAgICBtQ29sb3JNb2RlbCA9IGNvbG9yTW9kZWw7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgZGlzcG9zZSgpIHsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgamF2YS5hd3QuaW1hZ2UuQ29sb3JNb2RlbCBnZXRDb2xvck1vZGVsKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBtQ29sb3JNb2RlbDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgamF2YS5hd3QuaW1hZ2UuUmFzdGVyIGdldFJhc3RlcihpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkgewotICAgICAgICAgICAgICAgIGphdmEuYXd0LmltYWdlLkJ1ZmZlcmVkSW1hZ2UgaW1hZ2UgPSBuZXcgamF2YS5hd3QuaW1hZ2UuQnVmZmVyZWRJbWFnZSh3LCBoLAotICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5hd3QuaW1hZ2UuQnVmZmVyZWRJbWFnZS5UWVBFX0lOVF9BUkdCKTsKLQotICAgICAgICAgICAgICAgIGludFtdIGRhdGEgPSBuZXcgaW50W3cqaF07Ci0KLSAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSAwOwotICAgICAgICAgICAgICAgIGZsb2F0W10gcHQxID0gbmV3IGZsb2F0WzJdOwotICAgICAgICAgICAgICAgIGZsb2F0W10gcHQyID0gbmV3IGZsb2F0WzJdOwotICAgICAgICAgICAgICAgIGZvciAoaW50IGl5ID0gMCA7IGl5IDwgaCA7IGl5KyspIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaXggPSAwIDsgaXggPCB3IDsgaXgrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBjYW52YXMgdHJhbnNmb3JtCi0gICAgICAgICAgICAgICAgICAgICAgICBwdDFbMF0gPSB4ICsgaXg7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdDFbMV0gPSB5ICsgaXk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtQ2FudmFzTWF0cml4LnRyYW5zZm9ybShwdDEsIDAsIHB0MiwgMCwgMSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSB0aGUgbG9jYWwgbWF0cml4LgotICAgICAgICAgICAgICAgICAgICAgICAgcHQxWzBdID0gcHQyWzBdOwotICAgICAgICAgICAgICAgICAgICAgICAgcHQxWzFdID0gcHQyWzFdOwotICAgICAgICAgICAgICAgICAgICAgICAgbUxvY2FsTWF0cml4LnRyYW5zZm9ybShwdDEsIDAsIHB0MiwgMCwgMSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbaW5kZXgrK10gPSBnZXRDb2xvcihwdDJbMF0sIHB0MlsxXSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpbWFnZS5zZXRSR0IoMCAvKnN0YXJ0WCovLCAwIC8qc3RhcnRZKi8sIHcsIGgsIGRhdGEsIDAgLypvZmZzZXQqLywgdyAvKnNjYW5zaXplKi8pOwotCi0gICAgICAgICAgICAgICAgcmV0dXJuIGltYWdlLmdldFJhc3RlcigpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIFJldHVybnMgYSBjb2xvciBmb3IgYW4gYXJiaXRyYXJ5IHBvaW50LgotICAgICAgICAgKi8KLSAgICAgICAgcHJpdmF0ZSBpbnQgZ2V0Q29sb3IoZmxvYXQgeCwgZmxvYXQgeSkgewotICAgICAgICAgICAgZmxvYXQgcG9zOwotICAgICAgICAgICAgaWYgKG1EeCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgcG9zID0gKHkgLSBtWTApIC8gbUR5OwotICAgICAgICAgICAgfSBlbHNlIGlmIChtRHkgPT0gMCkgewotICAgICAgICAgICAgICAgIHBvcyA9ICh4IC0gbVgwKSAvIG1EeDsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gZmluZCB0aGUgeCBwb3NpdGlvbiBvbiB0aGUgZ3JhZGllbnQgdmVjdG9yLgotICAgICAgICAgICAgICAgIGZsb2F0IF94ID0gKG1EeCptRHkqKHktbVkwKSArIG1EeSptRHkqbVgwICsgbUR4Km1EeCp4KSAvIG1EU2l6ZTI7Ci0gICAgICAgICAgICAgICAgLy8gZnJvbSBpdCBnZXQgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSB2ZWN0b3IKLSAgICAgICAgICAgICAgICBwb3MgPSAoX3ggLSBtWDApIC8gbUR4OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gZ2V0R3JhZGllbnRDb2xvcihwb3MpOwotICAgICAgICB9Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9NYXNrRmlsdGVyX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL01hc2tGaWx0ZXJfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzJmMjdlNC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL01hc2tGaWx0ZXJfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuZ3JhcGhpY3M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRGVsZWdhdGVNYW5hZ2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotLyoqCi0gKiBEZWxlZ2F0ZSBpbXBsZW1lbnRpbmcgdGhlIG5hdGl2ZSBtZXRob2RzIG9mIGFuZHJvaWQuZ3JhcGhpY3MuTWFza0ZpbHRlcgotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsIG5hdGl2ZSBtZXRob2RzIG9mIE1hc2tGaWx0ZXIgaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgTWFza0ZpbHRlciBjbGFzcy4KLSAqCi0gKiBUaGlzIGFsc28gc2VydmUgYXMgYSBiYXNlIGNsYXNzIGZvciBhbGwgTWFza0ZpbHRlciBkZWxlZ2F0ZSBjbGFzc2VzLgotICoKLSAqIEBzZWUgRGVsZWdhdGVNYW5hZ2VyCi0gKgotICovCi1wdWJsaWMgYWJzdHJhY3QgY2xhc3MgTWFza0ZpbHRlcl9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIG1hbmFnZXIgLS0tLQotICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgRGVsZWdhdGVNYW5hZ2VyPE1hc2tGaWx0ZXJfRGVsZWdhdGU+IHNNYW5hZ2VyID0KLSAgICAgICAgICAgIG5ldyBEZWxlZ2F0ZU1hbmFnZXI8TWFza0ZpbHRlcl9EZWxlZ2F0ZT4oTWFza0ZpbHRlcl9EZWxlZ2F0ZS5jbGFzcyk7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGhlbHBlciBkYXRhIC0tLS0KLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgZGF0YSAtLS0tCi0KLSAgICAvLyAtLS0tIFB1YmxpYyBIZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBwdWJsaWMgc3RhdGljIE1hc2tGaWx0ZXJfRGVsZWdhdGUgZ2V0RGVsZWdhdGUoaW50IG5hdGl2ZVNoYWRlcikgewotICAgICAgICByZXR1cm4gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlU2hhZGVyKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBpc1N1cHBvcnRlZCgpOwotICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmcgZ2V0U3VwcG9ydE1lc3NhZ2UoKTsKLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlRGVzdHJ1Y3RvcihpbnQgbmF0aXZlX2ZpbHRlcikgewotICAgICAgICBzTWFuYWdlci5yZW1vdmVKYXZhUmVmZXJlbmNlRm9yKG5hdGl2ZV9maWx0ZXIpOwotICAgIH0KLQotICAgIC8vIC0tLS0gUHJpdmF0ZSBkZWxlZ2F0ZS9oZWxwZXIgbWV0aG9kcyAtLS0tCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL01hdHJpeF9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9NYXRyaXhfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWRmMmEyMS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL01hdHJpeF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTEyOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuTGF5b3V0TG9nOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5NYXRyaXguU2NhbGVUb0ZpdDsKLQotaW1wb3J0IGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtOwotaW1wb3J0IGphdmEuYXd0Lmdlb20uTm9uaW52ZXJ0aWJsZVRyYW5zZm9ybUV4Y2VwdGlvbjsKLQotLyoqCi0gKiBEZWxlZ2F0ZSBpbXBsZW1lbnRpbmcgdGhlIG5hdGl2ZSBtZXRob2RzIG9mIGFuZHJvaWQuZ3JhcGhpY3MuTWF0cml4Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgTWF0cml4IGhhdmUgYmVlbiByZXBsYWNlZAotICogYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICogVGhpcyBjbGFzcyBiZWhhdmVzIGxpa2UgdGhlIG9yaWdpbmFsIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGluIEphdmEsIGtlZXBpbmcgcHJldmlvdXNseQotICogbmF0aXZlIGRhdGEgaW50byBpdHMgb3duIG9iamVjdHMgYW5kIG1hcHBpbmcgdGhlbSB0byBpbnQgdGhhdCBhcmUgc2VudCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuCi0gKiBpdCBhbmQgdGhlIG9yaWdpbmFsIE1hdHJpeCBjbGFzcy4KLSAqCi0gKiBAc2VlIERlbGVnYXRlTWFuYWdlcgotICoKLSAqLwotcHVibGljIGZpbmFsIGNsYXNzIE1hdHJpeF9EZWxlZ2F0ZSB7Ci0KLSAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgTUFUUklYX1NJWkUgPSA5OwotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBtYW5hZ2VyIC0tLS0KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBEZWxlZ2F0ZU1hbmFnZXI8TWF0cml4X0RlbGVnYXRlPiBzTWFuYWdlciA9Ci0gICAgICAgICAgICBuZXcgRGVsZWdhdGVNYW5hZ2VyPE1hdHJpeF9EZWxlZ2F0ZT4oTWF0cml4X0RlbGVnYXRlLmNsYXNzKTsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgZGF0YSAtLS0tCi0gICAgcHJpdmF0ZSBmbG9hdCBtVmFsdWVzW10gPSBuZXcgZmxvYXRbTUFUUklYX1NJWkVdOwotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgcHVibGljIHN0YXRpYyBNYXRyaXhfRGVsZWdhdGUgZ2V0RGVsZWdhdGUoaW50IG5hdGl2ZV9pbnN0YW5jZSkgewotICAgICAgICByZXR1cm4gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX2luc3RhbmNlKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIGFuIHtAbGluayBBZmZpbmVUcmFuc2Zvcm19IG1hdGNoaW5nIHRoZSBnaXZlbiBNYXRyaXguCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBBZmZpbmVUcmFuc2Zvcm0gZ2V0QWZmaW5lVHJhbnNmb3JtKE1hdHJpeCBtKSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG0ubmF0aXZlX2luc3RhbmNlKTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlbGVnYXRlLmdldEFmZmluZVRyYW5zZm9ybSgpOwotICAgIH0KLQotICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBoYXNQZXJzcGVjdGl2ZShNYXRyaXggbSkgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShtLm5hdGl2ZV9pbnN0YW5jZSk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVsZWdhdGUuaGFzUGVyc3BlY3RpdmUoKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBTZXRzIHRoZSBjb250ZW50IG9mIHRoZSBtYXRyaXggd2l0aCB0aGUgY29udGVudCBvZiBhbm90aGVyIG1hdHJpeC4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzZXQoTWF0cml4X0RlbGVnYXRlIG1hdHJpeCkgewotICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1hdHJpeC5tVmFsdWVzLCAwLCBtVmFsdWVzLCAwLCBNQVRSSVhfU0laRSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogU2V0cyB0aGUgY29udGVudCBvZiB0aGUgbWF0cml4IHdpdGggdGhlIGNvbnRlbnQgb2YgYW5vdGhlciBtYXRyaXggcmVwcmVzZW50ZWQgYXMgYW4gYXJyYXkKLSAgICAgKiBvZiB2YWx1ZXMuCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgc2V0KGZsb2F0W10gdmFsdWVzKSB7Ci0gICAgICAgIFN5c3RlbS5hcnJheWNvcHkodmFsdWVzLCAwLCBtVmFsdWVzLCAwLCBNQVRSSVhfU0laRSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmVzZXRzIHRoZSBtYXRyaXggdG8gYmUgdGhlIGlkZW50aXR5IG1hdHJpeC4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKLSAgICAgICAgcmVzZXQobVZhbHVlcyk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgbWF0cml4IGlzIGlkZW50aXR5LgotICAgICAqLwotICAgIHB1YmxpYyBib29sZWFuIGlzSWRlbnRpdHkoKSB7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwLCBrID0gMDsgaSA8IDM7IGkrKykgewotICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAzOyBqKyssIGsrKykgewotICAgICAgICAgICAgICAgIGlmIChtVmFsdWVzW2tdICE9ICgoaT09aikgPyAxIDogMCkpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHB1YmxpYyBzdGF0aWMgZmxvYXRbXSBtYWtlVmFsdWVzKEFmZmluZVRyYW5zZm9ybSBtYXRyaXgpIHsKLSAgICAgICAgZmxvYXRbXSB2YWx1ZXMgPSBuZXcgZmxvYXRbTUFUUklYX1NJWkVdOwotICAgICAgICB2YWx1ZXNbMF0gPSAoZmxvYXQpIG1hdHJpeC5nZXRTY2FsZVgoKTsKLSAgICAgICAgdmFsdWVzWzFdID0gKGZsb2F0KSBtYXRyaXguZ2V0U2hlYXJYKCk7Ci0gICAgICAgIHZhbHVlc1syXSA9IChmbG9hdCkgbWF0cml4LmdldFRyYW5zbGF0ZVgoKTsKLSAgICAgICAgdmFsdWVzWzNdID0gKGZsb2F0KSBtYXRyaXguZ2V0U2hlYXJZKCk7Ci0gICAgICAgIHZhbHVlc1s0XSA9IChmbG9hdCkgbWF0cml4LmdldFNjYWxlWSgpOwotICAgICAgICB2YWx1ZXNbNV0gPSAoZmxvYXQpIG1hdHJpeC5nZXRUcmFuc2xhdGVZKCk7Ci0gICAgICAgIHZhbHVlc1s2XSA9IDAuZjsKLSAgICAgICAgdmFsdWVzWzddID0gMC5mOwotICAgICAgICB2YWx1ZXNbOF0gPSAxLmY7Ci0KLSAgICAgICAgcmV0dXJuIHZhbHVlczsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIE1hdHJpeF9EZWxlZ2F0ZSBtYWtlKEFmZmluZVRyYW5zZm9ybSBtYXRyaXgpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBNYXRyaXhfRGVsZWdhdGUobWFrZVZhbHVlcyhtYXRyaXgpKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgYm9vbGVhbiBtYXBSZWN0KFJlY3RGIGRzdCwgUmVjdEYgc3JjKSB7Ci0gICAgICAgIC8vIGFycmF5IHdpdGggNCBjb3JuZXJzCi0gICAgICAgIGZsb2F0W10gY29ybmVycyA9IG5ldyBmbG9hdFtdIHsKLSAgICAgICAgICAgICAgICBzcmMubGVmdCwgc3JjLnRvcCwKLSAgICAgICAgICAgICAgICBzcmMucmlnaHQsIHNyYy50b3AsCi0gICAgICAgICAgICAgICAgc3JjLnJpZ2h0LCBzcmMuYm90dG9tLAotICAgICAgICAgICAgICAgIHNyYy5sZWZ0LCBzcmMuYm90dG9tLAotICAgICAgICB9OwotCi0gICAgICAgIC8vIGFwcGx5IHRoZSB0cmFuc2Zvcm0gdG8gdGhlbS4KLSAgICAgICAgbWFwUG9pbnRzKGNvcm5lcnMpOwotCi0gICAgICAgIC8vIG5vdyBwdXQgdGhlIHJlc3VsdCBpbiB0aGUgcmVjdC4gV2UgdGFrZSB0aGUgbWluL21heCBvZiBYcyBhbmQgbWluL21heCBvZiBZcwotICAgICAgICBkc3QubGVmdCA9IE1hdGgubWluKE1hdGgubWluKGNvcm5lcnNbMF0sIGNvcm5lcnNbMl0pLCBNYXRoLm1pbihjb3JuZXJzWzRdLCBjb3JuZXJzWzZdKSk7Ci0gICAgICAgIGRzdC5yaWdodCA9IE1hdGgubWF4KE1hdGgubWF4KGNvcm5lcnNbMF0sIGNvcm5lcnNbMl0pLCBNYXRoLm1heChjb3JuZXJzWzRdLCBjb3JuZXJzWzZdKSk7Ci0KLSAgICAgICAgZHN0LnRvcCA9IE1hdGgubWluKE1hdGgubWluKGNvcm5lcnNbMV0sIGNvcm5lcnNbM10pLCBNYXRoLm1pbihjb3JuZXJzWzVdLCBjb3JuZXJzWzddKSk7Ci0gICAgICAgIGRzdC5ib3R0b20gPSBNYXRoLm1heChNYXRoLm1heChjb3JuZXJzWzFdLCBjb3JuZXJzWzNdKSwgTWF0aC5tYXgoY29ybmVyc1s1XSwgY29ybmVyc1s3XSkpOwotCi0KLSAgICAgICAgcmV0dXJuIChjb21wdXRlVHlwZU1hc2soKSAmIGtSZWN0U3RheXNSZWN0X01hc2spICE9IDA7Ci0gICAgfQotCi0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIGFuIHtAbGluayBBZmZpbmVUcmFuc2Zvcm19IG1hdGNoaW5nIHRoZSBtYXRyaXguCi0gICAgICovCi0gICAgcHVibGljIEFmZmluZVRyYW5zZm9ybSBnZXRBZmZpbmVUcmFuc2Zvcm0oKSB7Ci0gICAgICAgIHJldHVybiBnZXRBZmZpbmVUcmFuc2Zvcm0obVZhbHVlcyk7Ci0gICAgfQotCi0gICAgcHVibGljIGJvb2xlYW4gaGFzUGVyc3BlY3RpdmUoKSB7Ci0gICAgICAgIHJldHVybiAobVZhbHVlc1s2XSAhPSAwIHx8IG1WYWx1ZXNbN10gIT0gMCB8fCBtVmFsdWVzWzhdICE9IDEpOwotICAgIH0KLQotCi0KLSAgICAvLyAtLS0tIG5hdGl2ZSBtZXRob2RzIC0tLS0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlX2NyZWF0ZShpbnQgbmF0aXZlX3NyY19vcl96ZXJvKSB7Ci0gICAgICAgIC8vIGNyZWF0ZSB0aGUgZGVsZWdhdGUKLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIG5ld0RlbGVnYXRlID0gbmV3IE1hdHJpeF9EZWxlZ2F0ZSgpOwotCi0gICAgICAgIC8vIGNvcHkgZnJvbSB2YWx1ZXMgaWYgbmVlZGVkLgotICAgICAgICBpZiAobmF0aXZlX3NyY19vcl96ZXJvID4gMCkgewotICAgICAgICAgICAgTWF0cml4X0RlbGVnYXRlIG9sZERlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX3NyY19vcl96ZXJvKTsKLSAgICAgICAgICAgIGlmIChvbGREZWxlZ2F0ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSgKLSAgICAgICAgICAgICAgICAgICAgICAgIG9sZERlbGVnYXRlLm1WYWx1ZXMsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXdEZWxlZ2F0ZS5tVmFsdWVzLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgTUFUUklYX1NJWkUpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmFkZE5ld0RlbGVnYXRlKG5ld0RlbGVnYXRlKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVfaXNJZGVudGl0eShpbnQgbmF0aXZlX29iamVjdCkgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZC5pc0lkZW50aXR5KCk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX3JlY3RTdGF5c1JlY3QoaW50IG5hdGl2ZV9vYmplY3QpIHsKLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIGQgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGQgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gKGQuY29tcHV0ZVR5cGVNYXNrKCkgJiBrUmVjdFN0YXlzUmVjdF9NYXNrKSAhPSAwOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9yZXNldChpbnQgbmF0aXZlX29iamVjdCkgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICByZXNldChkLm1WYWx1ZXMpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9zZXQoaW50IG5hdGl2ZV9vYmplY3QsIGludCBvdGhlcikgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgc3JjID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUob3RoZXIpOwotICAgICAgICBpZiAoc3JjID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjLm1WYWx1ZXMsIDAsIGQubVZhbHVlcywgMCwgTUFUUklYX1NJWkUpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9zZXRUcmFuc2xhdGUoaW50IG5hdGl2ZV9vYmplY3QsIGZsb2F0IGR4LCBmbG9hdCBkeSkgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBzZXRUcmFuc2xhdGUoZC5tVmFsdWVzLCBkeCwgZHkpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9zZXRTY2FsZShpbnQgbmF0aXZlX29iamVjdCwgZmxvYXQgc3gsIGZsb2F0IHN5LAotICAgICAgICAgICAgZmxvYXQgcHgsIGZsb2F0IHB5KSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGQubVZhbHVlcyA9IGdldFNjYWxlKHN4LCBzeSwgcHgsIHB5KTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfc2V0U2NhbGUoaW50IG5hdGl2ZV9vYmplY3QsIGZsb2F0IHN4LCBmbG9hdCBzeSkgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBkLm1WYWx1ZXNbMF0gPSBzeDsKLSAgICAgICAgZC5tVmFsdWVzWzFdID0gMDsKLSAgICAgICAgZC5tVmFsdWVzWzJdID0gMDsKLSAgICAgICAgZC5tVmFsdWVzWzNdID0gMDsKLSAgICAgICAgZC5tVmFsdWVzWzRdID0gc3k7Ci0gICAgICAgIGQubVZhbHVlc1s1XSA9IDA7Ci0gICAgICAgIGQubVZhbHVlc1s2XSA9IDA7Ci0gICAgICAgIGQubVZhbHVlc1s3XSA9IDA7Ci0gICAgICAgIGQubVZhbHVlc1s4XSA9IDE7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX3NldFJvdGF0ZShpbnQgbmF0aXZlX29iamVjdCwgZmxvYXQgZGVncmVlcywgZmxvYXQgcHgsIGZsb2F0IHB5KSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGQubVZhbHVlcyA9IGdldFJvdGF0ZShkZWdyZWVzLCBweCwgcHkpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9zZXRSb3RhdGUoaW50IG5hdGl2ZV9vYmplY3QsIGZsb2F0IGRlZ3JlZXMpIHsKLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIGQgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGQgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgc2V0Um90YXRlKGQubVZhbHVlcywgZGVncmVlcyk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX3NldFNpbkNvcyhpbnQgbmF0aXZlX29iamVjdCwgZmxvYXQgc2luVmFsdWUsIGZsb2F0IGNvc1ZhbHVlLAotICAgICAgICAgICAgZmxvYXQgcHgsIGZsb2F0IHB5KSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFRPRE86IGRvIGl0IGluIG9uZSBwYXNzCi0KLSAgICAgICAgLy8gdHJhbnNsYXRlIHNvIHRoYXQgdGhlIHBpdm90IGlzIGluIDAsMAotICAgICAgICBzZXRUcmFuc2xhdGUoZC5tVmFsdWVzLCAtcHgsIC1weSk7Ci0KLSAgICAgICAgLy8gc2NhbGUKLSAgICAgICAgZC5wb3N0VHJhbnNmb3JtKGdldFJvdGF0ZShzaW5WYWx1ZSwgY29zVmFsdWUpKTsKLSAgICAgICAgLy8gdHJhbnNsYXRlIGJhY2sgdGhlIHBpdm90Ci0gICAgICAgIGQucG9zdFRyYW5zZm9ybShnZXRUcmFuc2xhdGUocHgsIHB5KSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX3NldFNpbkNvcyhpbnQgbmF0aXZlX29iamVjdCwgZmxvYXQgc2luVmFsdWUsIGZsb2F0IGNvc1ZhbHVlKSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHNldFJvdGF0ZShkLm1WYWx1ZXMsIHNpblZhbHVlLCBjb3NWYWx1ZSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX3NldFNrZXcoaW50IG5hdGl2ZV9vYmplY3QsIGZsb2F0IGt4LCBmbG9hdCBreSwKLSAgICAgICAgICAgIGZsb2F0IHB4LCBmbG9hdCBweSkgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBkLm1WYWx1ZXMgPSBnZXRTa2V3KGt4LCBreSwgcHgsIHB5KTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfc2V0U2tldyhpbnQgbmF0aXZlX29iamVjdCwgZmxvYXQga3gsIGZsb2F0IGt5KSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGQubVZhbHVlc1swXSA9IDE7Ci0gICAgICAgIGQubVZhbHVlc1sxXSA9IGt4OwotICAgICAgICBkLm1WYWx1ZXNbMl0gPSAtMDsKLSAgICAgICAgZC5tVmFsdWVzWzNdID0ga3k7Ci0gICAgICAgIGQubVZhbHVlc1s0XSA9IDE7Ci0gICAgICAgIGQubVZhbHVlc1s1XSA9IDA7Ci0gICAgICAgIGQubVZhbHVlc1s2XSA9IDA7Ci0gICAgICAgIGQubVZhbHVlc1s3XSA9IDA7Ci0gICAgICAgIGQubVZhbHVlc1s4XSA9IDE7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX3NldENvbmNhdChpbnQgbmF0aXZlX29iamVjdCwgaW50IGEsIGludCBiKSB7Ci0gICAgICAgIGlmIChhID09IG5hdGl2ZV9vYmplY3QpIHsKLSAgICAgICAgICAgIHJldHVybiBuYXRpdmVfcHJlQ29uY2F0KG5hdGl2ZV9vYmplY3QsIGIpOwotICAgICAgICB9IGVsc2UgaWYgKGIgPT0gbmF0aXZlX29iamVjdCkgewotICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZV9wb3N0Q29uY2F0KG5hdGl2ZV9vYmplY3QsIGEpOwotICAgICAgICB9Ci0KLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIGQgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGQgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIGFfbXR4ID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoYSk7Ci0gICAgICAgIGlmIChhX210eCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgYl9tdHggPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShiKTsKLSAgICAgICAgaWYgKGJfbXR4ID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIG11bHRpcGx5KGQubVZhbHVlcywgYV9tdHgubVZhbHVlcywgYl9tdHgubVZhbHVlcyk7Ci0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX3ByZVRyYW5zbGF0ZShpbnQgbmF0aXZlX29iamVjdCwgZmxvYXQgZHgsIGZsb2F0IGR5KSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGQucHJlVHJhbnNmb3JtKGdldFRyYW5zbGF0ZShkeCwgZHkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX3ByZVNjYWxlKGludCBuYXRpdmVfb2JqZWN0LCBmbG9hdCBzeCwgZmxvYXQgc3ksCi0gICAgICAgICAgICBmbG9hdCBweCwgZmxvYXQgcHkpIHsKLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIGQgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGQgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgZC5wcmVUcmFuc2Zvcm0oZ2V0U2NhbGUoc3gsIHN5LCBweCwgcHkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX3ByZVNjYWxlKGludCBuYXRpdmVfb2JqZWN0LCBmbG9hdCBzeCwgZmxvYXQgc3kpIHsKLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIGQgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGQgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgZC5wcmVUcmFuc2Zvcm0oZ2V0U2NhbGUoc3gsIHN5KSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZV9wcmVSb3RhdGUoaW50IG5hdGl2ZV9vYmplY3QsIGZsb2F0IGRlZ3JlZXMsCi0gICAgICAgICAgICBmbG9hdCBweCwgZmxvYXQgcHkpIHsKLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIGQgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGQgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgZC5wcmVUcmFuc2Zvcm0oZ2V0Um90YXRlKGRlZ3JlZXMsIHB4LCBweSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVfcHJlUm90YXRlKGludCBuYXRpdmVfb2JqZWN0LCBmbG9hdCBkZWdyZWVzKSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGRvdWJsZSByYWQgPSBNYXRoLnRvUmFkaWFucyhkZWdyZWVzKTsKLSAgICAgICAgZmxvYXQgc2luID0gKGZsb2F0KU1hdGguc2luKHJhZCk7Ci0gICAgICAgIGZsb2F0IGNvcyA9IChmbG9hdClNYXRoLmNvcyhyYWQpOwotCi0gICAgICAgIGQucHJlVHJhbnNmb3JtKGdldFJvdGF0ZShzaW4sIGNvcykpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVfcHJlU2tldyhpbnQgbmF0aXZlX29iamVjdCwgZmxvYXQga3gsIGZsb2F0IGt5LAotICAgICAgICAgICAgZmxvYXQgcHgsIGZsb2F0IHB5KSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGQucHJlVHJhbnNmb3JtKGdldFNrZXcoa3gsIGt5LCBweCwgcHkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX3ByZVNrZXcoaW50IG5hdGl2ZV9vYmplY3QsIGZsb2F0IGt4LCBmbG9hdCBreSkgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBkLnByZVRyYW5zZm9ybShnZXRTa2V3KGt4LCBreSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVfcHJlQ29uY2F0KGludCBuYXRpdmVfb2JqZWN0LCBpbnQgb3RoZXJfbWF0cml4KSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBvdGhlciA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG90aGVyX21hdHJpeCk7Ci0gICAgICAgIGlmIChvdGhlciA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBkLnByZVRyYW5zZm9ybShvdGhlci5tVmFsdWVzKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX3Bvc3RUcmFuc2xhdGUoaW50IG5hdGl2ZV9vYmplY3QsIGZsb2F0IGR4LCBmbG9hdCBkeSkgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBkLnBvc3RUcmFuc2Zvcm0oZ2V0VHJhbnNsYXRlKGR4LCBkeSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVfcG9zdFNjYWxlKGludCBuYXRpdmVfb2JqZWN0LCBmbG9hdCBzeCwgZmxvYXQgc3ksCi0gICAgICAgICAgICBmbG9hdCBweCwgZmxvYXQgcHkpIHsKLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIGQgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGQgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgZC5wb3N0VHJhbnNmb3JtKGdldFNjYWxlKHN4LCBzeSwgcHgsIHB5KSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZV9wb3N0U2NhbGUoaW50IG5hdGl2ZV9vYmplY3QsIGZsb2F0IHN4LCBmbG9hdCBzeSkgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBkLnBvc3RUcmFuc2Zvcm0oZ2V0U2NhbGUoc3gsIHN5KSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZV9wb3N0Um90YXRlKGludCBuYXRpdmVfb2JqZWN0LCBmbG9hdCBkZWdyZWVzLAotICAgICAgICAgICAgZmxvYXQgcHgsIGZsb2F0IHB5KSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGQucG9zdFRyYW5zZm9ybShnZXRSb3RhdGUoZGVncmVlcywgcHgsIHB5KSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZV9wb3N0Um90YXRlKGludCBuYXRpdmVfb2JqZWN0LCBmbG9hdCBkZWdyZWVzKSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGQucG9zdFRyYW5zZm9ybShnZXRSb3RhdGUoZGVncmVlcykpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVfcG9zdFNrZXcoaW50IG5hdGl2ZV9vYmplY3QsIGZsb2F0IGt4LCBmbG9hdCBreSwKLSAgICAgICAgICAgIGZsb2F0IHB4LCBmbG9hdCBweSkgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBkLnBvc3RUcmFuc2Zvcm0oZ2V0U2tldyhreCwga3ksIHB4LCBweSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVfcG9zdFNrZXcoaW50IG5hdGl2ZV9vYmplY3QsIGZsb2F0IGt4LCBmbG9hdCBreSkgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBkLnBvc3RUcmFuc2Zvcm0oZ2V0U2tldyhreCwga3kpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX3Bvc3RDb25jYXQoaW50IG5hdGl2ZV9vYmplY3QsIGludCBvdGhlcl9tYXRyaXgpIHsKLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIGQgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGQgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIG90aGVyID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUob3RoZXJfbWF0cml4KTsKLSAgICAgICAgaWYgKG90aGVyID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGQucG9zdFRyYW5zZm9ybShvdGhlci5tVmFsdWVzKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX3NldFJlY3RUb1JlY3QoaW50IG5hdGl2ZV9vYmplY3QsIFJlY3RGIHNyYywKLSAgICAgICAgICAgIFJlY3RGIGRzdCwgaW50IHN0ZikgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoc3JjLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgcmVzZXQoZC5tVmFsdWVzKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChkc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBkLm1WYWx1ZXNbMF0gPSBkLm1WYWx1ZXNbMV0gPSBkLm1WYWx1ZXNbMl0gPSBkLm1WYWx1ZXNbM10gPSBkLm1WYWx1ZXNbNF0gPSBkLm1WYWx1ZXNbNV0KLSAgICAgICAgICAgICAgID0gZC5tVmFsdWVzWzZdID0gZC5tVmFsdWVzWzddID0gMDsKLSAgICAgICAgICAgIGQubVZhbHVlc1s4XSA9IDE7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmbG9hdCAgICB0eCwgc3ggPSBkc3Qud2lkdGgoKSAvIHNyYy53aWR0aCgpOwotICAgICAgICAgICAgZmxvYXQgICAgdHksIHN5ID0gZHN0LmhlaWdodCgpIC8gc3JjLmhlaWdodCgpOwotICAgICAgICAgICAgYm9vbGVhbiAgeExhcmdlciA9IGZhbHNlOwotCi0gICAgICAgICAgICBpZiAoc3RmICE9IFNjYWxlVG9GaXQuRklMTC5uYXRpdmVJbnQpIHsKLSAgICAgICAgICAgICAgICBpZiAoc3ggPiBzeSkgewotICAgICAgICAgICAgICAgICAgICB4TGFyZ2VyID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgc3ggPSBzeTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBzeSA9IHN4OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdHggPSBkc3QubGVmdCAtIHNyYy5sZWZ0ICogc3g7Ci0gICAgICAgICAgICB0eSA9IGRzdC50b3AgLSBzcmMudG9wICogc3k7Ci0gICAgICAgICAgICBpZiAoc3RmID09IFNjYWxlVG9GaXQuQ0VOVEVSLm5hdGl2ZUludCB8fCBzdGYgPT0gU2NhbGVUb0ZpdC5FTkQubmF0aXZlSW50KSB7Ci0gICAgICAgICAgICAgICAgZmxvYXQgZGlmZjsKLQotICAgICAgICAgICAgICAgIGlmICh4TGFyZ2VyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRpZmYgPSBkc3Qud2lkdGgoKSAtIHNyYy53aWR0aCgpICogc3k7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZGlmZiA9IGRzdC5oZWlnaHQoKSAtIHNyYy5oZWlnaHQoKSAqIHN5OwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChzdGYgPT0gU2NhbGVUb0ZpdC5DRU5URVIubmF0aXZlSW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIGRpZmYgPSBkaWZmIC8gMjsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAoeExhcmdlcikgewotICAgICAgICAgICAgICAgICAgICB0eCArPSBkaWZmOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHR5ICs9IGRpZmY7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBkLm1WYWx1ZXNbMF0gPSBzeDsKLSAgICAgICAgICAgIGQubVZhbHVlc1s0XSA9IHN5OwotICAgICAgICAgICAgZC5tVmFsdWVzWzJdID0gdHg7Ci0gICAgICAgICAgICBkLm1WYWx1ZXNbNV0gPSB0eTsKLSAgICAgICAgICAgIGQubVZhbHVlc1sxXSAgPSBkLm1WYWx1ZXNbM10gPSBkLm1WYWx1ZXNbNl0gPSBkLm1WYWx1ZXNbN10gPSAwOwotCi0gICAgICAgIH0KLSAgICAgICAgLy8gc2hhcmVkIGNsZWFudXAKLSAgICAgICAgZC5tVmFsdWVzWzhdID0gMTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX3NldFBvbHlUb1BvbHkoaW50IG5hdGl2ZV9vYmplY3QsIGZsb2F0W10gc3JjLCBpbnQgc3JjSW5kZXgsCi0gICAgICAgICAgICBmbG9hdFtdIGRzdCwgaW50IGRzdEluZGV4LCBpbnQgcG9pbnRDb3VudCkgewotICAgICAgICAvLyBGSVhNRQotICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZmlkZWxpdHlXYXJuaW5nKExheW91dExvZy5UQUdfVU5TVVBQT1JURUQsCi0gICAgICAgICAgICAgICAgIk1hdHJpeC5zZXRQb2x5VG9Qb2x5IGlzIG5vdCBzdXBwb3J0ZWQuIiwKLSAgICAgICAgICAgICAgICBudWxsLCBudWxsIC8qZGF0YSovKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZV9pbnZlcnQoaW50IG5hdGl2ZV9vYmplY3QsIGludCBpbnZlcnNlKSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBpbnZfbXR4ID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoaW52ZXJzZSk7Ci0gICAgICAgIGlmIChpbnZfbXR4ID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gYWZmaW5lVHJhbnNmb3JtID0gZC5nZXRBZmZpbmVUcmFuc2Zvcm0oKTsKLSAgICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBpbnZlcnNlVHJhbnNmb3JtID0gYWZmaW5lVHJhbnNmb3JtLmNyZWF0ZUludmVyc2UoKTsKLSAgICAgICAgICAgIGludl9tdHgubVZhbHVlc1swXSA9IChmbG9hdClpbnZlcnNlVHJhbnNmb3JtLmdldFNjYWxlWCgpOwotICAgICAgICAgICAgaW52X210eC5tVmFsdWVzWzFdID0gKGZsb2F0KWludmVyc2VUcmFuc2Zvcm0uZ2V0U2hlYXJYKCk7Ci0gICAgICAgICAgICBpbnZfbXR4Lm1WYWx1ZXNbMl0gPSAoZmxvYXQpaW52ZXJzZVRyYW5zZm9ybS5nZXRUcmFuc2xhdGVYKCk7Ci0gICAgICAgICAgICBpbnZfbXR4Lm1WYWx1ZXNbM10gPSAoZmxvYXQpaW52ZXJzZVRyYW5zZm9ybS5nZXRTY2FsZVgoKTsKLSAgICAgICAgICAgIGludl9tdHgubVZhbHVlc1s0XSA9IChmbG9hdClpbnZlcnNlVHJhbnNmb3JtLmdldFNoZWFyWSgpOwotICAgICAgICAgICAgaW52X210eC5tVmFsdWVzWzVdID0gKGZsb2F0KWludmVyc2VUcmFuc2Zvcm0uZ2V0VHJhbnNsYXRlWSgpOwotCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfSBjYXRjaCAoTm9uaW52ZXJ0aWJsZVRyYW5zZm9ybUV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfbWFwUG9pbnRzKGludCBuYXRpdmVfb2JqZWN0LCBmbG9hdFtdIGRzdCwgaW50IGRzdEluZGV4LAotICAgICAgICAgICAgZmxvYXRbXSBzcmMsIGludCBzcmNJbmRleCwgaW50IHB0Q291bnQsIGJvb2xlYW4gaXNQdHMpIHsKLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIGQgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGQgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGlzUHRzKSB7Ci0gICAgICAgICAgICBkLm1hcFBvaW50cyhkc3QsIGRzdEluZGV4LCBzcmMsIHNyY0luZGV4LCBwdENvdW50KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGQubWFwVmVjdG9ycyhkc3QsIGRzdEluZGV4LCBzcmMsIHNyY0luZGV4LCBwdENvdW50KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZV9tYXBSZWN0KGludCBuYXRpdmVfb2JqZWN0LCBSZWN0RiBkc3QsIFJlY3RGIHNyYykgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZC5tYXBSZWN0KGRzdCwgc3JjKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgZmxvYXQgbmF0aXZlX21hcFJhZGl1cyhpbnQgbmF0aXZlX29iamVjdCwgZmxvYXQgcmFkaXVzKSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwLmY7Ci0gICAgICAgIH0KLQotICAgICAgICBmbG9hdFtdIHNyYyA9IG5ldyBmbG9hdFtdIHsgcmFkaXVzLCAwLmYsIDAuZiwgcmFkaXVzIH07Ci0gICAgICAgIGQubWFwVmVjdG9ycyhzcmMsIDAsIHNyYywgMCwgMik7Ci0KLSAgICAgICAgZmxvYXQgbDEgPSBnZXRQb2ludExlbmd0aChzcmMsIDApOwotICAgICAgICBmbG9hdCBsMiA9IGdldFBvaW50TGVuZ3RoKHNyYywgMik7Ci0KLSAgICAgICAgcmV0dXJuIChmbG9hdCkgTWF0aC5zcXJ0KGwxICogbDIpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9nZXRWYWx1ZXMoaW50IG5hdGl2ZV9vYmplY3QsIGZsb2F0W10gdmFsdWVzKSB7Ci0gICAgICAgIE1hdHJpeF9EZWxlZ2F0ZSBkID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZC5tVmFsdWVzLCAwLCBkLm1WYWx1ZXMsIDAsIE1BVFJJWF9TSVpFKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfc2V0VmFsdWVzKGludCBuYXRpdmVfb2JqZWN0LCBmbG9hdFtdIHZhbHVlcykgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgZCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHZhbHVlcywgMCwgZC5tVmFsdWVzLCAwLCBNQVRSSVhfU0laRSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX2VxdWFscyhpbnQgbmF0aXZlX2EsIGludCBuYXRpdmVfYikgewotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgYSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9hKTsKLSAgICAgICAgaWYgKGEgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIGIgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfYik7Ci0gICAgICAgIGlmIChiID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAoaW50IGkgPSAwIDsgaSA8IE1BVFJJWF9TSVpFIDsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAoYS5tVmFsdWVzW2ldICE9IGIubVZhbHVlc1tpXSkgewotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIGZpbmFsaXplcihpbnQgbmF0aXZlX2luc3RhbmNlKSB7Ci0gICAgICAgIHNNYW5hZ2VyLnJlbW92ZUphdmFSZWZlcmVuY2VGb3IobmF0aXZlX2luc3RhbmNlKTsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgaGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIEFmZmluZVRyYW5zZm9ybSBnZXRBZmZpbmVUcmFuc2Zvcm0oZmxvYXRbXSBtYXRyaXgpIHsKLSAgICAgICAgLy8gdGhlIEFmZmluZVRyYW5zZm9ybSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgdmFsdWUgaW4gYSBkaWZmZXJlbnQgb3JkZXIKLSAgICAgICAgLy8gZm9yIGEgbWF0cml4IFsgMCAxIDIgXQotICAgICAgICAvLyAgICAgICAgICAgICAgWyAzIDQgNSBdCi0gICAgICAgIC8vIHRoZSBvcmRlciBpcyAwLCAzLCAxLCA0LCAyLCA1Li4uCi0gICAgICAgIHJldHVybiBuZXcgQWZmaW5lVHJhbnNmb3JtKAotICAgICAgICAgICAgICAgIG1hdHJpeFswXSwgbWF0cml4WzNdLCBtYXRyaXhbMV0sCi0gICAgICAgICAgICAgICAgbWF0cml4WzRdLCBtYXRyaXhbMl0sIG1hdHJpeFs1XSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmVzZXQgYSBtYXRyaXggdG8gdGhlIGlkZW50aXR5Ci0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCByZXNldChmbG9hdFtdIG10eCkgewotICAgICAgICBmb3IgKGludCBpID0gMCwgayA9IDA7IGkgPCAzOyBpKyspIHsKLSAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgMzsgaisrLCBrKyspIHsKLSAgICAgICAgICAgICAgICBtdHhba10gPSAoKGk9PWopID8gMSA6IDApOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgQFN1cHByZXNzV2FybmluZ3MoInVudXNlZCIpCi0gICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IGtJZGVudGl0eV9NYXNrICAgICAgPSAwOwotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBrVHJhbnNsYXRlX01hc2sgICAgID0gMHgwMTsgIC8vITwgc2V0IGlmIHRoZSBtYXRyaXggaGFzIHRyYW5zbGF0aW9uCi0gICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IGtTY2FsZV9NYXNrICAgICAgICAgPSAweDAyOyAgLy8hPCBzZXQgaWYgdGhlIG1hdHJpeCBoYXMgWCBvciBZIHNjYWxlCi0gICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IGtBZmZpbmVfTWFzayAgICAgICAgPSAweDA0OyAgLy8hPCBzZXQgaWYgdGhlIG1hdHJpeCBza2V3cyBvciByb3RhdGVzCi0gICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IGtQZXJzcGVjdGl2ZV9NYXNrICAgPSAweDA4OyAgLy8hPCBzZXQgaWYgdGhlIG1hdHJpeCBpcyBpbiBwZXJzcGVjdGl2ZQotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBrUmVjdFN0YXlzUmVjdF9NYXNrID0gMHgxMDsKLSAgICBAU3VwcHJlc3NXYXJuaW5ncygidW51c2VkIikKLSAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQga1Vua25vd25fTWFzayAgICAgICA9IDB4ODA7Ci0KLSAgICBAU3VwcHJlc3NXYXJuaW5ncygidW51c2VkIikKLSAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQga0FsbE1hc2tzICAgICAgICAgICA9IGtUcmFuc2xhdGVfTWFzayB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrU2NhbGVfTWFzayB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQWZmaW5lX01hc2sgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BlcnNwZWN0aXZlX01hc2sgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1JlY3RTdGF5c1JlY3RfTWFzazsKLQotICAgIC8vIHRoZXNlIGd1eXMgYWxpZ24gd2l0aCB0aGUgbWFza3MsIHNvIHdlIGNhbiBjb21wdXRlIGEgbWFzayBmcm9tIGEgdmFyaWFibGUgMC8xCi0gICAgQFN1cHByZXNzV2FybmluZ3MoInVudXNlZCIpCi0gICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IGtUcmFuc2xhdGVfU2hpZnQgPSAwOwotICAgIEBTdXBwcmVzc1dhcm5pbmdzKCJ1bnVzZWQiKQotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBrU2NhbGVfU2hpZnQgPSAxOwotICAgIEBTdXBwcmVzc1dhcm5pbmdzKCJ1bnVzZWQiKQotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBrQWZmaW5lX1NoaWZ0ID0gMjsKLSAgICBAU3VwcHJlc3NXYXJuaW5ncygidW51c2VkIikKLSAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQga1BlcnNwZWN0aXZlX1NoaWZ0ID0gMzsKLSAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQga1JlY3RTdGF5c1JlY3RfU2hpZnQgPSA0OwotCi0gICAgcHJpdmF0ZSBpbnQgY29tcHV0ZVR5cGVNYXNrKCkgewotICAgICAgICBpbnQgbWFzayA9IDA7Ci0KLSAgICAgICAgaWYgKG1WYWx1ZXNbNl0gIT0gMC4gfHwgbVZhbHVlc1s3XSAhPSAwLiB8fCBtVmFsdWVzWzhdICE9IDEuKSB7Ci0gICAgICAgICAgICBtYXNrIHw9IGtQZXJzcGVjdGl2ZV9NYXNrOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKG1WYWx1ZXNbMl0gIT0gMC4gfHwgbVZhbHVlc1s1XSAhPSAwLikgewotICAgICAgICAgICAgbWFzayB8PSBrVHJhbnNsYXRlX01hc2s7Ci0gICAgICAgIH0KLQotICAgICAgICBmbG9hdCBtMDAgPSBtVmFsdWVzWzBdOwotICAgICAgICBmbG9hdCBtMDEgPSBtVmFsdWVzWzFdOwotICAgICAgICBmbG9hdCBtMTAgPSBtVmFsdWVzWzNdOwotICAgICAgICBmbG9hdCBtMTEgPSBtVmFsdWVzWzRdOwotCi0gICAgICAgIGlmIChtMDEgIT0gMC4gfHwgbTEwICE9IDAuKSB7Ci0gICAgICAgICAgICBtYXNrIHw9IGtBZmZpbmVfTWFzazsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtMDAgIT0gMS4gfHwgbTExICE9IDEuKSB7Ci0gICAgICAgICAgICBtYXNrIHw9IGtTY2FsZV9NYXNrOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKChtYXNrICYga1BlcnNwZWN0aXZlX01hc2spID09IDApIHsKLSAgICAgICAgICAgIC8vIG1hcCBub24temVybyB0byAxCi0gICAgICAgICAgICBpbnQgaW0wMCA9IG0wMCAhPSAwID8gMSA6IDA7Ci0gICAgICAgICAgICBpbnQgaW0wMSA9IG0wMSAhPSAwID8gMSA6IDA7Ci0gICAgICAgICAgICBpbnQgaW0xMCA9IG0xMCAhPSAwID8gMSA6IDA7Ci0gICAgICAgICAgICBpbnQgaW0xMSA9IG0xMSAhPSAwID8gMSA6IDA7Ci0KLSAgICAgICAgICAgIC8vIHJlY29yZCBpZiB0aGUgKHApcmltYXJ5IGFuZCAocyllY29uZGFyeSBkaWFnb25hbHMgYXJlIGFsbCAwIG9yCi0gICAgICAgICAgICAvLyBhbGwgbm9uLXplcm8gKGFuc3dlciBpcyAwIG9yIDEpCi0gICAgICAgICAgICBpbnQgZHAwID0gKGltMDAgfCBpbTExKSBeIDE7ICAvLyB0cnVlIGlmIGJvdGggYXJlIDAKLSAgICAgICAgICAgIGludCBkcDEgPSBpbTAwICYgaW0xMTsgICAgICAgIC8vIHRydWUgaWYgYm90aCBhcmUgMQotICAgICAgICAgICAgaW50IGRzMCA9IChpbTAxIHwgaW0xMCkgXiAxOyAgLy8gdHJ1ZSBpZiBib3RoIGFyZSAwCi0gICAgICAgICAgICBpbnQgZHMxID0gaW0wMSAmIGltMTA7ICAgICAgICAvLyB0cnVlIGlmIGJvdGggYXJlIDEKLQotICAgICAgICAgICAgLy8gcmV0dXJuIDEgaWYgcHJpbWFyeSBpcyAxIGFuZCBzZWNvbmRhcnkgaXMgMCBvcgotICAgICAgICAgICAgLy8gcHJpbWFyeSBpcyAwIGFuZCBzZWNvbmRhcnkgaXMgMQotICAgICAgICAgICAgbWFzayB8PSAoKGRwMCAmIGRzMSkgfCAoZHAxICYgZHMwKSkgPDwga1JlY3RTdGF5c1JlY3RfU2hpZnQ7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbWFzazsKLSAgICB9Ci0KLSAgICBwcml2YXRlIE1hdHJpeF9EZWxlZ2F0ZSgpIHsKLSAgICAgICAgcmVzZXQoKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIE1hdHJpeF9EZWxlZ2F0ZShmbG9hdFtdIHZhbHVlcykgewotICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHZhbHVlcywgMCwgbVZhbHVlcywgMCwgTUFUUklYX1NJWkUpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEFkZHMgdGhlIGdpdmVuIHRyYW5zZm9ybWF0aW9uIHRvIHRoZSBjdXJyZW50IE1hdHJpeAotICAgICAqIDxwLz5UaGlzIGluIGVmZmVjdCBkb2VzIHRoaXMgPSB0aGlzKm1hdHJpeAotICAgICAqIEBwYXJhbSBtYXRyaXgKLSAgICAgKi8KLSAgICBwcml2YXRlIHZvaWQgcG9zdFRyYW5zZm9ybShmbG9hdFtdIG1hdHJpeCkgewotICAgICAgICBmbG9hdFtdIHRtcCA9IG5ldyBmbG9hdFs5XTsKLSAgICAgICAgbXVsdGlwbHkodG1wLCBtVmFsdWVzLCBtYXRyaXgpOwotICAgICAgICBtVmFsdWVzID0gdG1wOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEFkZHMgdGhlIGdpdmVuIHRyYW5zZm9ybWF0aW9uIHRvIHRoZSBjdXJyZW50IE1hdHJpeAotICAgICAqIDxwLz5UaGlzIGluIGVmZmVjdCBkb2VzIHRoaXMgPSBtYXRyaXgqdGhpcwotICAgICAqIEBwYXJhbSBtYXRyaXgKLSAgICAgKi8KLSAgICBwcml2YXRlIHZvaWQgcHJlVHJhbnNmb3JtKGZsb2F0W10gbWF0cml4KSB7Ci0gICAgICAgIGZsb2F0W10gdG1wID0gbmV3IGZsb2F0WzldOwotICAgICAgICBtdWx0aXBseSh0bXAsIG1hdHJpeCwgbVZhbHVlcyk7Ci0gICAgICAgIG1WYWx1ZXMgPSB0bXA7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQXBwbHkgdGhpcyBtYXRyaXggdG8gdGhlIGFycmF5IG9mIDJEIHBvaW50cyBzcGVjaWZpZWQgYnkgc3JjLCBhbmQgd3JpdGUKLSAgICAgICogdGhlIHRyYW5zZm9ybWVkIHBvaW50cyBpbnRvIHRoZSBhcnJheSBvZiBwb2ludHMgc3BlY2lmaWVkIGJ5IGRzdC4gVGhlCi0gICAgICAqIHR3byBhcnJheXMgcmVwcmVzZW50IHRoZWlyICJwb2ludHMiIGFzIHBhaXJzIG9mIGZsb2F0cyBbeCwgeV0uCi0gICAgICAqCi0gICAgICAqIEBwYXJhbSBkc3QgICBUaGUgYXJyYXkgb2YgZHN0IHBvaW50cyAoeCx5IHBhaXJzKQotICAgICAgKiBAcGFyYW0gZHN0SW5kZXggVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBbeCx5XSBwYWlyIG9mIGRzdCBmbG9hdHMKLSAgICAgICogQHBhcmFtIHNyYyAgIFRoZSBhcnJheSBvZiBzcmMgcG9pbnRzICh4LHkgcGFpcnMpCi0gICAgICAqIEBwYXJhbSBzcmNJbmRleCBUaGUgaW5kZXggb2YgdGhlIGZpcnN0IFt4LHldIHBhaXIgb2Ygc3JjIGZsb2F0cwotICAgICAgKiBAcGFyYW0gcG9pbnRDb3VudCBUaGUgbnVtYmVyIG9mIHBvaW50cyAoeCx5IHBhaXJzKSB0byB0cmFuc2Zvcm0KLSAgICAgICovCi0KLSAgICAgcHJpdmF0ZSB2b2lkIG1hcFBvaW50cyhmbG9hdFtdIGRzdCwgaW50IGRzdEluZGV4LCBmbG9hdFtdIHNyYywgaW50IHNyY0luZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvaW50Q291bnQpIHsKLSAgICAgICAgIGZpbmFsIGludCBjb3VudCA9IHBvaW50Q291bnQgKiAyOwotCi0gICAgICAgICBmbG9hdFtdIHRtcERlc3QgPSBkc3Q7Ci0gICAgICAgICBib29sZWFuIGluUGxhY2UgPSBkc3QgPT0gc3JjOwotICAgICAgICAgaWYgKGluUGxhY2UpIHsKLSAgICAgICAgICAgICB0bXBEZXN0ID0gbmV3IGZsb2F0W2RzdEluZGV4ICsgY291bnRdOwotICAgICAgICAgfQotCi0gICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgPCBjb3VudCA7IGkgKz0gMikgewotICAgICAgICAgICAgIC8vIGp1c3QgaW4gY2FzZSB3ZSBhcmUgZG9pbmcgaW4gcGxhY2UsIHdlIGJldHRlciBwdXQgdGhpcyBpbiB0ZW1wIHZhcnMKLSAgICAgICAgICAgICBmbG9hdCB4ID0gbVZhbHVlc1swXSAqIHNyY1tpICsgc3JjSW5kZXhdICsKLSAgICAgICAgICAgICAgICAgICAgICAgbVZhbHVlc1sxXSAqIHNyY1tpICsgc3JjSW5kZXggKyAxXSArCi0gICAgICAgICAgICAgICAgICAgICAgIG1WYWx1ZXNbMl07Ci0gICAgICAgICAgICAgZmxvYXQgeSA9IG1WYWx1ZXNbM10gKiBzcmNbaSArIHNyY0luZGV4XSArCi0gICAgICAgICAgICAgICAgICAgICAgIG1WYWx1ZXNbNF0gKiBzcmNbaSArIHNyY0luZGV4ICsgMV0gKwotICAgICAgICAgICAgICAgICAgICAgICBtVmFsdWVzWzVdOwotCi0gICAgICAgICAgICAgdG1wRGVzdFtpICsgZHN0SW5kZXhdICAgICA9IHg7Ci0gICAgICAgICAgICAgdG1wRGVzdFtpICsgZHN0SW5kZXggKyAxXSA9IHk7Ci0gICAgICAgICB9Ci0KLSAgICAgICAgIGlmIChpblBsYWNlKSB7Ci0gICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0bXBEZXN0LCBkc3RJbmRleCwgZHN0LCBkc3RJbmRleCwgY291bnQpOwotICAgICAgICAgfQotICAgICB9Ci0KLSAgICAgLyoqCi0gICAgICAqIEFwcGx5IHRoaXMgbWF0cml4IHRvIHRoZSBhcnJheSBvZiAyRCBwb2ludHMsIGFuZCB3cml0ZSB0aGUgdHJhbnNmb3JtZWQKLSAgICAgICogcG9pbnRzIGJhY2sgaW50byB0aGUgYXJyYXkKLSAgICAgICoKLSAgICAgICogQHBhcmFtIHB0cyBUaGUgYXJyYXkgW3gwLCB5MCwgeDEsIHkxLCAuLi5dIG9mIHBvaW50cyB0byB0cmFuc2Zvcm0uCi0gICAgICAqLwotCi0gICAgIHByaXZhdGUgdm9pZCBtYXBQb2ludHMoZmxvYXRbXSBwdHMpIHsKLSAgICAgICAgIG1hcFBvaW50cyhwdHMsIDAsIHB0cywgMCwgcHRzLmxlbmd0aCA+PiAxKTsKLSAgICAgfQotCi0gICAgIHByaXZhdGUgdm9pZCBtYXBWZWN0b3JzKGZsb2F0W10gZHN0LCBpbnQgZHN0SW5kZXgsIGZsb2F0W10gc3JjLCBpbnQgc3JjSW5kZXgsIGludCBwdENvdW50KSB7Ci0gICAgICAgICBpZiAoaGFzUGVyc3BlY3RpdmUoKSkgewotICAgICAgICAgICAgIC8vIHRyYW5zZm9ybSB0aGUgKDAsMCkgcG9pbnQKLSAgICAgICAgICAgICBmbG9hdFtdIG9yaWdpbiA9IG5ldyBmbG9hdFtdIHsgMC5mLCAwLmZ9OwotICAgICAgICAgICAgIG1hcFBvaW50cyhvcmlnaW4pOwotCi0gICAgICAgICAgICAgLy8gdHJhbnNsYXRlIHRoZSB2ZWN0b3IgZGF0YSBhcyBwb2ludHMKLSAgICAgICAgICAgICBtYXBQb2ludHMoZHN0LCBkc3RJbmRleCwgc3JjLCBzcmNJbmRleCwgcHRDb3VudCk7Ci0KLSAgICAgICAgICAgICAvLyB0aGVuIHN1YnN0cmFjdCB0aGUgdHJhbnNmb3JtZWQgb3JpZ2luLgotICAgICAgICAgICAgIGZpbmFsIGludCBjb3VudCA9IHB0Q291bnQgKiAyOwotICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwIDsgaSA8IGNvdW50IDsgaSArPSAyKSB7Ci0gICAgICAgICAgICAgICAgIGRzdFtkc3RJbmRleCArIGldID0gZHN0W2RzdEluZGV4ICsgaV0gLSBvcmlnaW5bMF07Ci0gICAgICAgICAgICAgICAgIGRzdFtkc3RJbmRleCArIGkgKyAxXSA9IGRzdFtkc3RJbmRleCArIGkgKyAxXSAtIG9yaWdpblsxXTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIC8vIG1ha2UgYSBjb3B5IG9mIHRoZSBtYXRyaXgKLSAgICAgICAgICAgICBNYXRyaXhfRGVsZWdhdGUgY29weSA9IG5ldyBNYXRyaXhfRGVsZWdhdGUobVZhbHVlcyk7Ci0KLSAgICAgICAgICAgICAvLyByZW1vdmUgdGhlIHRyYW5zbGF0aW9uCi0gICAgICAgICAgICAgc2V0VHJhbnNsYXRlKGNvcHkubVZhbHVlcywgMCwgMCk7Ci0KLSAgICAgICAgICAgICAvLyBtYXAgdGhlIGNvbnRlbnQgYXMgcG9pbnRzLgotICAgICAgICAgICAgIGNvcHkubWFwUG9pbnRzKGRzdCwgZHN0SW5kZXgsIHNyYywgc3JjSW5kZXgsIHB0Q291bnQpOwotICAgICAgICAgfQotICAgICB9Ci0KLSAgICAgcHJpdmF0ZSBzdGF0aWMgZmxvYXQgZ2V0UG9pbnRMZW5ndGgoZmxvYXRbXSBzcmMsIGludCBpbmRleCkgewotICAgICAgICAgcmV0dXJuIChmbG9hdCkgTWF0aC5zcXJ0KHNyY1tpbmRleF0gKiBzcmNbaW5kZXhdICsgc3JjW2luZGV4ICsgMV0gKiBzcmNbaW5kZXggKyAxXSk7Ci0gICAgIH0KLQotICAgIC8qKgotICAgICAqIG11bHRpcGx5IHR3byBtYXRyaWNlcyBhbmQgc3RvcmUgdGhlbSBpbiBhIDNyZC4KLSAgICAgKiA8cC8+VGhpcyBpbiBlZmZlY3QgZG9lcyBkZXN0ID0gYSpiCi0gICAgICogZGVzdCBjYW5ub3QgYmUgdGhlIHNhbWUgYXMgYSBvciBiLgotICAgICAqLwotICAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBtdWx0aXBseShmbG9hdCBkZXN0W10sIGZsb2F0W10gYSwgZmxvYXRbXSBiKSB7Ci0gICAgICAgIC8vIGZpcnN0IHJvdwotICAgICAgICBkZXN0WzBdID0gYlswXSAqIGFbMF0gKyBiWzFdICogYVszXSArIGJbMl0gKiBhWzZdOwotICAgICAgICBkZXN0WzFdID0gYlswXSAqIGFbMV0gKyBiWzFdICogYVs0XSArIGJbMl0gKiBhWzddOwotICAgICAgICBkZXN0WzJdID0gYlswXSAqIGFbMl0gKyBiWzFdICogYVs1XSArIGJbMl0gKiBhWzhdOwotCi0gICAgICAgIC8vIDJuZCByb3cKLSAgICAgICAgZGVzdFszXSA9IGJbM10gKiBhWzBdICsgYls0XSAqIGFbM10gKyBiWzVdICogYVs2XTsKLSAgICAgICAgZGVzdFs0XSA9IGJbM10gKiBhWzFdICsgYls0XSAqIGFbNF0gKyBiWzVdICogYVs3XTsKLSAgICAgICAgZGVzdFs1XSA9IGJbM10gKiBhWzJdICsgYls0XSAqIGFbNV0gKyBiWzVdICogYVs4XTsKLQotICAgICAgICAvLyAzcmQgcm93Ci0gICAgICAgIGRlc3RbNl0gPSBiWzZdICogYVswXSArIGJbN10gKiBhWzNdICsgYls4XSAqIGFbNl07Ci0gICAgICAgIGRlc3RbN10gPSBiWzZdICogYVsxXSArIGJbN10gKiBhWzRdICsgYls4XSAqIGFbN107Ci0gICAgICAgIGRlc3RbOF0gPSBiWzZdICogYVsyXSArIGJbN10gKiBhWzVdICsgYls4XSAqIGFbOF07Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyBhIG1hdHJpeCB0aGF0IHJlcHJlc2VudHMgYSBnaXZlbiB0cmFuc2xhdGUKLSAgICAgKiBAcGFyYW0gZHgKLSAgICAgKiBAcGFyYW0gZHkKLSAgICAgKiBAcmV0dXJuCi0gICAgICovCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0W10gZ2V0VHJhbnNsYXRlKGZsb2F0IGR4LCBmbG9hdCBkeSkgewotICAgICAgICByZXR1cm4gc2V0VHJhbnNsYXRlKG5ldyBmbG9hdFs5XSwgZHgsIGR5KTsKLSAgICB9Ci0KLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgZmxvYXRbXSBzZXRUcmFuc2xhdGUoZmxvYXRbXSBkZXN0LCBmbG9hdCBkeCwgZmxvYXQgZHkpIHsKLSAgICAgICAgZGVzdFswXSA9IDE7Ci0gICAgICAgIGRlc3RbMV0gPSAwOwotICAgICAgICBkZXN0WzJdID0gZHg7Ci0gICAgICAgIGRlc3RbM10gPSAwOwotICAgICAgICBkZXN0WzRdID0gMTsKLSAgICAgICAgZGVzdFs1XSA9IGR5OwotICAgICAgICBkZXN0WzZdID0gMDsKLSAgICAgICAgZGVzdFs3XSA9IDA7Ci0gICAgICAgIGRlc3RbOF0gPSAxOwotICAgICAgICByZXR1cm4gZGVzdDsKLSAgICB9Ci0KLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgZmxvYXRbXSBnZXRTY2FsZShmbG9hdCBzeCwgZmxvYXQgc3kpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBmbG9hdFtdIHsgc3gsIDAsIDAsIDAsIHN5LCAwLCAwLCAwLCAxIH07Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyBhIG1hdHJpeCB0aGF0IHJlcHJlc2VudHMgdGhlIGdpdmVuIHNjYWxlIGluZm8uCi0gICAgICogQHBhcmFtIHN4Ci0gICAgICogQHBhcmFtIHN5Ci0gICAgICogQHBhcmFtIHB4Ci0gICAgICogQHBhcmFtIHB5Ci0gICAgICovCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0W10gZ2V0U2NhbGUoZmxvYXQgc3gsIGZsb2F0IHN5LCBmbG9hdCBweCwgZmxvYXQgcHkpIHsKLSAgICAgICAgZmxvYXRbXSB0bXAgPSBuZXcgZmxvYXRbOV07Ci0gICAgICAgIGZsb2F0W10gdG1wMiA9IG5ldyBmbG9hdFs5XTsKLQotICAgICAgICAvLyBUT0RPOiBkbyBpdCBpbiBvbmUgcGFzcwotCi0gICAgICAgIC8vIHRyYW5zbGF0ZSB0bXAgc28gdGhhdCB0aGUgcGl2b3QgaXMgaW4gMCwwCi0gICAgICAgIHNldFRyYW5zbGF0ZSh0bXAsIC1weCwgLXB5KTsKLQotICAgICAgICAvLyBzY2FsZSBpbnRvIHRtcDIKLSAgICAgICAgbXVsdGlwbHkodG1wMiwgdG1wLCBnZXRTY2FsZShzeCwgc3kpKTsKLQotICAgICAgICAvLyB0cmFuc2xhdGUgYmFjayB0aGUgcGl2b3QgYmFjayBpbnRvIHRtcAotICAgICAgICBtdWx0aXBseSh0bXAsIHRtcDIsIGdldFRyYW5zbGF0ZShweCwgcHkpKTsKLQotICAgICAgICByZXR1cm4gdG1wOwotICAgIH0KLQotCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0W10gZ2V0Um90YXRlKGZsb2F0IGRlZ3JlZXMpIHsKLSAgICAgICAgZG91YmxlIHJhZCA9IE1hdGgudG9SYWRpYW5zKGRlZ3JlZXMpOwotICAgICAgICBmbG9hdCBzaW4gPSAoZmxvYXQpTWF0aC5zaW4ocmFkKTsKLSAgICAgICAgZmxvYXQgY29zID0gKGZsb2F0KU1hdGguY29zKHJhZCk7Ci0KLSAgICAgICAgcmV0dXJuIGdldFJvdGF0ZShzaW4sIGNvcyk7Ci0gICAgfQotCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0W10gZ2V0Um90YXRlKGZsb2F0IHNpbiwgZmxvYXQgY29zKSB7Ci0gICAgICAgIHJldHVybiBzZXRSb3RhdGUobmV3IGZsb2F0WzldLCBzaW4sIGNvcyk7Ci0gICAgfQotCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0W10gc2V0Um90YXRlKGZsb2F0W10gZGVzdCwgZmxvYXQgZGVncmVlcykgewotICAgICAgICBkb3VibGUgcmFkID0gTWF0aC50b1JhZGlhbnMoZGVncmVlcyk7Ci0gICAgICAgIGZsb2F0IHNpbiA9IChmbG9hdClNYXRoLnNpbihyYWQpOwotICAgICAgICBmbG9hdCBjb3MgPSAoZmxvYXQpTWF0aC5jb3MocmFkKTsKLQotICAgICAgICByZXR1cm4gc2V0Um90YXRlKGRlc3QsIHNpbiwgY29zKTsKLSAgICB9Ci0KLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgZmxvYXRbXSBzZXRSb3RhdGUoZmxvYXRbXSBkZXN0LCBmbG9hdCBzaW4sIGZsb2F0IGNvcykgewotICAgICAgICBkZXN0WzBdID0gY29zOwotICAgICAgICBkZXN0WzFdID0gLXNpbjsKLSAgICAgICAgZGVzdFsyXSA9IDA7Ci0gICAgICAgIGRlc3RbM10gPSBzaW47Ci0gICAgICAgIGRlc3RbNF0gPSBjb3M7Ci0gICAgICAgIGRlc3RbNV0gPSAwOwotICAgICAgICBkZXN0WzZdID0gMDsKLSAgICAgICAgZGVzdFs3XSA9IDA7Ci0gICAgICAgIGRlc3RbOF0gPSAxOwotICAgICAgICByZXR1cm4gZGVzdDsKLSAgICB9Ci0KLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgZmxvYXRbXSBnZXRSb3RhdGUoZmxvYXQgZGVncmVlcywgZmxvYXQgcHgsIGZsb2F0IHB5KSB7Ci0gICAgICAgIGZsb2F0W10gdG1wID0gbmV3IGZsb2F0WzldOwotICAgICAgICBmbG9hdFtdIHRtcDIgPSBuZXcgZmxvYXRbOV07Ci0KLSAgICAgICAgLy8gVE9ETzogZG8gaXQgaW4gb25lIHBhc3MKLQotICAgICAgICAvLyB0cmFuc2xhdGUgc28gdGhhdCB0aGUgcGl2b3QgaXMgaW4gMCwwCi0gICAgICAgIHNldFRyYW5zbGF0ZSh0bXAsIC1weCwgLXB5KTsKLQotICAgICAgICAvLyByb3RhdGUgaW50byB0bXAyCi0gICAgICAgIGRvdWJsZSByYWQgPSBNYXRoLnRvUmFkaWFucyhkZWdyZWVzKTsKLSAgICAgICAgZmxvYXQgY29zID0gKGZsb2F0KU1hdGguY29zKHJhZCk7Ci0gICAgICAgIGZsb2F0IHNpbiA9IChmbG9hdClNYXRoLnNpbihyYWQpOwotICAgICAgICBtdWx0aXBseSh0bXAyLCB0bXAsIGdldFJvdGF0ZShzaW4sIGNvcykpOwotCi0gICAgICAgIC8vIHRyYW5zbGF0ZSBiYWNrIHRoZSBwaXZvdCBiYWNrIGludG8gdG1wCi0gICAgICAgIG11bHRpcGx5KHRtcCwgdG1wMiwgZ2V0VHJhbnNsYXRlKHB4LCBweSkpOwotCi0gICAgICAgIHJldHVybiB0bXA7Ci0gICAgfQotCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0W10gZ2V0U2tldyhmbG9hdCBreCwgZmxvYXQga3kpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBmbG9hdFtdIHsgMSwga3gsIDAsIGt5LCAxLCAwLCAwLCAwLCAxIH07Ci0gICAgfQotCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0W10gZ2V0U2tldyhmbG9hdCBreCwgZmxvYXQga3ksIGZsb2F0IHB4LCBmbG9hdCBweSkgewotICAgICAgICBmbG9hdFtdIHRtcCA9IG5ldyBmbG9hdFs5XTsKLSAgICAgICAgZmxvYXRbXSB0bXAyID0gbmV3IGZsb2F0WzldOwotCi0gICAgICAgIC8vIFRPRE86IGRvIGl0IGluIG9uZSBwYXNzCi0KLSAgICAgICAgLy8gdHJhbnNsYXRlIHNvIHRoYXQgdGhlIHBpdm90IGlzIGluIDAsMAotICAgICAgICBzZXRUcmFuc2xhdGUodG1wLCAtcHgsIC1weSk7Ci0KLSAgICAgICAgLy8gc2tldyBpbnRvIHRtcDIKLSAgICAgICAgbXVsdGlwbHkodG1wMiwgdG1wLCBuZXcgZmxvYXRbXSB7IDEsIGt4LCAwLCBreSwgMSwgMCwgMCwgMCwgMSB9KTsKLSAgICAgICAgLy8gdHJhbnNsYXRlIGJhY2sgdGhlIHBpdm90IGJhY2sgaW50byB0bXAKLSAgICAgICAgbXVsdGlwbHkodG1wLCB0bXAyLCBnZXRUcmFuc2xhdGUocHgsIHB5KSk7Ci0KLSAgICAgICAgcmV0dXJuIHRtcDsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL05pbmVQYXRjaF9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9OaW5lUGF0Y2hfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmE2ODc5Ni4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL05pbmVQYXRjaF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMjQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuZ3JhcGhpY3M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuTGF5b3V0TG9nOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLkdjU25hcHNob3Q7Ci1pbXBvcnQgY29tLmFuZHJvaWQubmluZXBhdGNoLk5pbmVQYXRjaENodW5rOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuTmluZVBhdGNoRHJhd2FibGU7Ci0KLWltcG9ydCBqYXZhLmF3dC5HcmFwaGljczJEOwotaW1wb3J0IGphdmEuYXd0LmltYWdlLkJ1ZmZlcmVkSW1hZ2U7Ci1pbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheU91dHB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwotaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5sYW5nLnJlZi5Tb2Z0UmVmZXJlbmNlOwotaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOwotaW1wb3J0IGphdmEudXRpbC5NYXA7Ci0KLS8qKgotICogRGVsZWdhdGUgaW1wbGVtZW50aW5nIHRoZSBuYXRpdmUgbWV0aG9kcyBvZiBhbmRyb2lkLmdyYXBoaWNzLk5pbmVQYXRjaAotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsIG5hdGl2ZSBtZXRob2RzIG9mIE5pbmVQYXRjaCBoYXZlIGJlZW4gcmVwbGFjZWQKLSAqIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIEJlY2F1c2UgaXQncyBhIHN0YXRlbGVzcyBjbGFzcyB0byBzdGFydCB3aXRoLCB0aGVyZSdzIG5vIG5lZWQgdG8ga2VlcCBhIHtAbGluayBEZWxlZ2F0ZU1hbmFnZXJ9Ci0gKiBhcm91bmQgdG8gbWFwIGludCB0byBpbnN0YW5jZSBvZiB0aGUgZGVsZWdhdGUuCi0gKgotICovCi1wdWJsaWMgZmluYWwgY2xhc3MgTmluZVBhdGNoX0RlbGVnYXRlIHsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgbWFuYWdlciAtLS0tCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRGVsZWdhdGVNYW5hZ2VyPE5pbmVQYXRjaF9EZWxlZ2F0ZT4gc01hbmFnZXIgPQotICAgICAgICAgICAgbmV3IERlbGVnYXRlTWFuYWdlcjxOaW5lUGF0Y2hfRGVsZWdhdGU+KE5pbmVQYXRjaF9EZWxlZ2F0ZS5jbGFzcyk7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGhlbHBlciBkYXRhIC0tLS0KLSAgICAvKioKLSAgICAgKiBDYWNoZSBtYXAgZm9yIHtAbGluayBOaW5lUGF0Y2hDaHVua30uCi0gICAgICogV2hlbiB0aGUgY2h1bmtzIGFyZSBjcmVhdGVkIHRoZXkgYXJlIHNlcmlhbGl6ZWQgaW50byBhIGJ5dGVbXSwgYW5kIGJvdGggYXJlIHB1dAotICAgICAqIGluIHRoZSBjYWNoZSwgdXNpbmcgYSB7QGxpbmsgU29mdFJlZmVyZW5jZX0gZm9yIHRoZSBjaHVuay4gVGhlIGRlZmF1bHQgSmF2YSBjbGFzc2VzCi0gICAgICogZm9yIHtAbGluayBOaW5lUGF0Y2h9IGFuZCB7QGxpbmsgTmluZVBhdGNoRHJhd2FibGV9IG9ubHkgcmVmZXJlbmNlIHRvIHRoZSBieXRlW10gZGF0YSwgYW5kCi0gICAgICogcHJvdmlkZSB0aGlzIGZvciBkcmF3aW5nLgotICAgICAqIFVzaW5nIHRoZSBjYWNoZSBtYXAgYWxsb3dzIHVzIHRvIG5vdCBoYXZlIHRvIGRlc2VyaWFsaXplIHRoZSBieXRlW10gYmFjayBpbnRvIGEKLSAgICAgKiB7QGxpbmsgTmluZVBhdGNoQ2h1bmt9IGV2ZXJ5IHRpbWUgYSByZW5kZXJpbmcgaXMgZG9uZS4KLSAgICAgKi8KLSAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBNYXA8Ynl0ZVtdLCBTb2Z0UmVmZXJlbmNlPE5pbmVQYXRjaENodW5rPj4gc0NodW5rQ2FjaGUgPQotICAgICAgICBuZXcgSGFzaE1hcDxieXRlW10sIFNvZnRSZWZlcmVuY2U8TmluZVBhdGNoQ2h1bms+PigpOwotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBkYXRhIC0tLS0KLSAgICBwcml2YXRlIGJ5dGVbXSBjaHVuazsKLQotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgLyoqCi0gICAgICogU2VyaWFsaXplcyB0aGUgZ2l2ZW4gY2h1bmsuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIHRoZSBzZXJpYWxpemVkIGRhdGEgZm9yIHRoZSBjaHVuay4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXSBzZXJpYWxpemUoTmluZVBhdGNoQ2h1bmsgY2h1bmspIHsKLSAgICAgICAgLy8gc2VyaWFsaXplIHRoZSBjaHVuayB0byBnZXQgYSBieXRlW10KLSAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3MgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7Ci0gICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvb3MgPSBudWxsOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgb29zID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShiYW9zKTsKLSAgICAgICAgICAgIG9vcy53cml0ZU9iamVjdChjaHVuayk7Ci0gICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5lcnJvcihudWxsLCAiRmFpbGVkIHRvIHNlcmlhbGl6ZSBOaW5lUGF0Y2hDaHVuay4iLCBlLCBudWxsIC8qZGF0YSovKTsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAgICAgaWYgKG9vcyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgb29zLmNsb3NlKCk7Ci0gICAgICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIGdldCB0aGUgYXJyYXkgYW5kIGFkZCBpdCB0byB0aGUgY2FjaGUKLSAgICAgICAgYnl0ZVtdIGFycmF5ID0gYmFvcy50b0J5dGVBcnJheSgpOwotICAgICAgICBzQ2h1bmtDYWNoZS5wdXQoYXJyYXksIG5ldyBTb2Z0UmVmZXJlbmNlPE5pbmVQYXRjaENodW5rPihjaHVuaykpOwotICAgICAgICByZXR1cm4gYXJyYXk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyBhIHtAbGluayBOaW5lUGF0Y2hDaHVua30gb2JqZWN0IGZvciB0aGUgZ2l2ZW4gc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbi4KLSAgICAgKgotICAgICAqIElmIHRoZSBjaHVuayBpcyBwcmVzZW50IGluIHRoZSBjYWNoZSB0aGVuIHRoZSBvYmplY3QgZnJvbSB0aGUgY2FjaGUgaXMgcmV0dXJuZWQsIG90aGVyd2lzZQotICAgICAqIHRoZSBhcnJheSBpcyBkZXNlcmlhbGl6ZWQgaW50byBhIHtAbGluayBOaW5lUGF0Y2hDaHVua30gb2JqZWN0LgotICAgICAqCi0gICAgICogQHBhcmFtIGFycmF5IHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjaHVuay4KLSAgICAgKiBAcmV0dXJuIHRoZSBOaW5lUGF0Y2hDaHVuayBvciBudWxsIGlmIGRlc2VyaWFsaXphdGlvbiBmYWlsZWQuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBOaW5lUGF0Y2hDaHVuayBnZXRDaHVuayhieXRlW10gYXJyYXkpIHsKLSAgICAgICAgU29mdFJlZmVyZW5jZTxOaW5lUGF0Y2hDaHVuaz4gY2h1bmtSZWYgPSBzQ2h1bmtDYWNoZS5nZXQoYXJyYXkpOwotICAgICAgICBOaW5lUGF0Y2hDaHVuayBjaHVuayA9IGNodW5rUmVmLmdldCgpOwotICAgICAgICBpZiAoY2h1bmsgPT0gbnVsbCkgewotICAgICAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0gYmFpcyA9IG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShhcnJheSk7Ci0gICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBudWxsOwotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oYmFpcyk7Ci0gICAgICAgICAgICAgICAgY2h1bmsgPSAoTmluZVBhdGNoQ2h1bmspIG9pcy5yZWFkT2JqZWN0KCk7Ci0KLSAgICAgICAgICAgICAgICAvLyBwdXQgYmFjayB0aGUgY2h1bmsgaW4gdGhlIGNhY2hlCi0gICAgICAgICAgICAgICAgaWYgKGNodW5rICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgc0NodW5rQ2FjaGUucHV0KGFycmF5LCBuZXcgU29mdFJlZmVyZW5jZTxOaW5lUGF0Y2hDaHVuaz4oY2h1bmspKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfQlJPS0VOLAotICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBkZXNlcmlhbGl6ZSBOaW5lUGF0Y2hDaHVuayBjb250ZW50LiIsIGUsIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfQlJPS0VOLAotICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBkZXNlcmlhbGl6ZSBOaW5lUGF0Y2hDaHVuayBjbGFzcy4iLCBlLCBudWxsIC8qZGF0YSovKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgICAgICAgaWYgKG9pcyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBvaXMuY2xvc2UoKTsKLSAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGNodW5rOwotICAgIH0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gaXNOaW5lUGF0Y2hDaHVuayhieXRlW10gY2h1bmspIHsKLSAgICAgICAgTmluZVBhdGNoQ2h1bmsgY2h1bmtPYmplY3QgPSBnZXRDaHVuayhjaHVuayk7Ci0gICAgICAgIGlmIChjaHVua09iamVjdCAhPSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IHZhbGlkYXRlTmluZVBhdGNoQ2h1bmsoaW50IGJpdG1hcCwgYnl0ZVtdIGNodW5rKSB7Ci0gICAgICAgIC8vIHRoZSBkZWZhdWx0IEpOSSBpbXBsZW1lbnRhdGlvbiBvbmx5IGNoZWNrcyB0aGF0IHRoZSBieXRlW10gaGFzIHRoZSBzYW1lCi0gICAgICAgIC8vIHNpemUgYXMgdGhlIEMgc3RydWN0IGl0IHJlcHJlc2VudC4gU2luY2Ugd2UgY2Fubm90IGRvIHRoZSBzYW1lIGNoZWNrIChzZXJpYWxpemF0aW9uCi0gICAgICAgIC8vIHdpbGwgcmV0dXJuIGRpZmZlcmVudCBzaXplIGRlcGVuZGluZyBvbiBjb250ZW50KSwgd2UgZG8gbm90aGluZy4KLSAgICAgICAgTmluZVBhdGNoX0RlbGVnYXRlIG5ld0RlbGVnYXRlID0gbmV3IE5pbmVQYXRjaF9EZWxlZ2F0ZSgpOwotICAgICAgICBuZXdEZWxlZ2F0ZS5jaHVuayA9IGNodW5rOwotICAgICAgICByZXR1cm4gc01hbmFnZXIuYWRkTmV3RGVsZWdhdGUobmV3RGVsZWdhdGUpOwotICAgIH0KLQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZUZpbmFsaXplKGludCBjaHVuaykgewotICAgICAgICBzTWFuYWdlci5yZW1vdmVKYXZhUmVmZXJlbmNlRm9yKGNodW5rKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVEcmF3KGludCBjYW52YXNfaW5zdGFuY2UsIFJlY3RGIGxvYywgaW50IGJpdG1hcF9pbnN0YW5jZSwKLSAgICAgICAgICAgIGludCBjaHVuaywgaW50IHBhaW50X2luc3RhbmNlX29yX251bGwsIGludCBkZXN0RGVuc2l0eSwgaW50IHNyY0RlbnNpdHkpIHsKLSAgICAgICAgZHJhdyhjYW52YXNfaW5zdGFuY2UsCi0gICAgICAgICAgICAgICAgKGludCkgbG9jLmxlZnQsIChpbnQpIGxvYy50b3AsIChpbnQpIGxvYy53aWR0aCgpLCAoaW50KSBsb2MuaGVpZ2h0KCksCi0gICAgICAgICAgICAgICAgYml0bWFwX2luc3RhbmNlLCBjaHVuaywgcGFpbnRfaW5zdGFuY2Vfb3JfbnVsbCwKLSAgICAgICAgICAgICAgICBkZXN0RGVuc2l0eSwgc3JjRGVuc2l0eSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlRHJhdyhpbnQgY2FudmFzX2luc3RhbmNlLCBSZWN0IGxvYywgaW50IGJpdG1hcF9pbnN0YW5jZSwKLSAgICAgICAgICAgIGludCBjaHVuaywgaW50IHBhaW50X2luc3RhbmNlX29yX251bGwsIGludCBkZXN0RGVuc2l0eSwgaW50IHNyY0RlbnNpdHkpIHsKLSAgICAgICAgZHJhdyhjYW52YXNfaW5zdGFuY2UsCi0gICAgICAgICAgICAgICAgbG9jLmxlZnQsIGxvYy50b3AsIGxvYy53aWR0aCgpLCBsb2MuaGVpZ2h0KCksCi0gICAgICAgICAgICAgICAgYml0bWFwX2luc3RhbmNlLCBjaHVuaywgcGFpbnRfaW5zdGFuY2Vfb3JfbnVsbCwKLSAgICAgICAgICAgICAgICBkZXN0RGVuc2l0eSwgc3JjRGVuc2l0eSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVHZXRUcmFuc3BhcmVudFJlZ2lvbihpbnQgYml0bWFwLCBpbnQgY2h1bmssIFJlY3QgbG9jYXRpb24pIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBQcml2YXRlIEhlbHBlciBtZXRob2RzIC0tLS0KLQotICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZHJhdyhpbnQgY2FudmFzX2luc3RhbmNlLAotICAgICAgICAgICAgZmluYWwgaW50IGxlZnQsIGZpbmFsIGludCB0b3AsIGZpbmFsIGludCByaWdodCwgZmluYWwgaW50IGJvdHRvbSwKLSAgICAgICAgICAgIGludCBiaXRtYXBfaW5zdGFuY2UsIGludCBjaHVuaywgaW50IHBhaW50X2luc3RhbmNlX29yX251bGwsCi0gICAgICAgICAgICBmaW5hbCBpbnQgZGVzdERlbnNpdHksIGZpbmFsIGludCBzcmNEZW5zaXR5KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgZmluYWwgQml0bWFwX0RlbGVnYXRlIGJpdG1hcF9kZWxlZ2F0ZSA9IEJpdG1hcF9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZShiaXRtYXBfaW5zdGFuY2UpOwotICAgICAgICBpZiAoYml0bWFwX2RlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGJ5dGVbXSBjID0gbnVsbDsKLSAgICAgICAgTmluZVBhdGNoX0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoY2h1bmspOwotICAgICAgICBpZiAoZGVsZWdhdGUgIT0gbnVsbCkgewotICAgICAgICAgICAgYyA9IGRlbGVnYXRlLmNodW5rOwotICAgICAgICB9Ci0gICAgICAgIGlmIChjID09IG51bGwpIHsKLSAgICAgICAgICAgIC8vIG5vdCBhIDktcGF0Y2g/Ci0gICAgICAgICAgICBCdWZmZXJlZEltYWdlIGltYWdlID0gYml0bWFwX2RlbGVnYXRlLmdldEltYWdlKCk7Ci0gICAgICAgICAgICBDYW52YXNfRGVsZWdhdGUubmF0aXZlX2RyYXdCaXRtYXAoY2FudmFzX2luc3RhbmNlLCBiaXRtYXBfaW5zdGFuY2UsCi0gICAgICAgICAgICAgICAgICAgIG5ldyBSZWN0KDAsIDAsIGltYWdlLmdldFdpZHRoKCksIGltYWdlLmdldEhlaWdodCgpKSwKLSAgICAgICAgICAgICAgICAgICAgbmV3IFJlY3QobGVmdCwgdG9wLCByaWdodCwgYm90dG9tKSwKLSAgICAgICAgICAgICAgICAgICAgcGFpbnRfaW5zdGFuY2Vfb3JfbnVsbCwgZGVzdERlbnNpdHksIHNyY0RlbnNpdHkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgZmluYWwgTmluZVBhdGNoQ2h1bmsgY2h1bmtPYmplY3QgPSBnZXRDaHVuayhjKTsKLSAgICAgICAgYXNzZXJ0IGNodW5rT2JqZWN0ICE9IG51bGw7Ci0gICAgICAgIGlmIChjaHVua09iamVjdCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBDYW52YXNfRGVsZWdhdGUgY2FudmFzX2RlbGVnYXRlID0gQ2FudmFzX0RlbGVnYXRlLmdldERlbGVnYXRlKGNhbnZhc19pbnN0YW5jZSk7Ci0gICAgICAgIGlmIChjYW52YXNfZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gdGhpcyBvbmUgY2FuIGJlIG51bGwKLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgcGFpbnRfZGVsZWdhdGUgPSBQYWludF9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZShwYWludF9pbnN0YW5jZV9vcl9udWxsKTsKLQotICAgICAgICBjYW52YXNfZGVsZWdhdGUuZ2V0U25hcHNob3QoKS5kcmF3KG5ldyBHY1NuYXBzaG90LkRyYXdhYmxlKCkgewotICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGRyYXcoR3JhcGhpY3MyRCBncmFwaGljcywgUGFpbnRfRGVsZWdhdGUgcGFpbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2h1bmtPYmplY3QuZHJhdyhiaXRtYXBfZGVsZWdhdGUuZ2V0SW1hZ2UoKSwgZ3JhcGhpY3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCwgdG9wLCByaWdodCAtIGxlZnQsIGJvdHRvbSAtIHRvcCwgZGVzdERlbnNpdHksIHNyY0RlbnNpdHkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sIHBhaW50X2RlbGVnYXRlLCB0cnVlIC8qY29tcG9zaXRlT25seSovLCBmYWxzZSAvKmZvcmNlU3JjTW9kZSovKTsKLQotICAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1BhaW50RmxhZ3NEcmF3RmlsdGVyX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1BhaW50RmxhZ3NEcmF3RmlsdGVyX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxZDM0NmEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9QYWludEZsYWdzRHJhd0ZpbHRlcl9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5QYWludEZsYWdzRHJhd0ZpbHRlcgotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsIG5hdGl2ZSBtZXRob2RzIG9mIFBhaW50RmxhZ3NEcmF3RmlsdGVyIGhhdmUgYmVlbgotICogcmVwbGFjZWQgYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICogVGhpcyBjbGFzcyBiZWhhdmVzIGxpa2UgdGhlIG9yaWdpbmFsIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGluIEphdmEsIGtlZXBpbmcgcHJldmlvdXNseQotICogbmF0aXZlIGRhdGEgaW50byBpdHMgb3duIG9iamVjdHMgYW5kIG1hcHBpbmcgdGhlbSB0byBpbnQgdGhhdCBhcmUgc2VudCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuCi0gKiBpdCBhbmQgdGhlIG9yaWdpbmFsIFBhaW50RmxhZ3NEcmF3RmlsdGVyIGNsYXNzLgotICoKLSAqIEJlY2F1c2UgdGhpcyBleHRlbmRzIHtAbGluayBEcmF3RmlsdGVyX0RlbGVnYXRlfSwgdGhlcmUncyBubyBuZWVkIHRvIHVzZSBhCi0gKiB7QGxpbmsgRGVsZWdhdGVNYW5hZ2VyfSwgYXMgYWxsIHRoZSBEcmF3RmlsdGVyIGNsYXNzZXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgbWFuYWdlciBvd25lZCBieQotICoge0BsaW5rIERyYXdGaWx0ZXJfRGVsZWdhdGV9LgotICoKLSAqIEBzZWUgRHJhd0ZpbHRlcl9EZWxlZ2F0ZQotICoKLSAqLwotcHVibGljIGNsYXNzIFBhaW50RmxhZ3NEcmF3RmlsdGVyX0RlbGVnYXRlIGV4dGVuZHMgRHJhd0ZpbHRlcl9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNTdXBwb3J0ZWQoKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCkgewotICAgICAgICByZXR1cm4gIlBhaW50IEZsYWdzIERyYXcgRmlsdGVycyBhcmUgbm90IHN1cHBvcnRlZC4iOwotICAgIH0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVDb25zdHJ1Y3RvcihpbnQgY2xlYXJCaXRzLCBpbnQgc2V0Qml0cykgewotICAgICAgICBQYWludEZsYWdzRHJhd0ZpbHRlcl9EZWxlZ2F0ZSBuZXdEZWxlZ2F0ZSA9IG5ldyBQYWludEZsYWdzRHJhd0ZpbHRlcl9EZWxlZ2F0ZSgpOwotICAgICAgICByZXR1cm4gc01hbmFnZXIuYWRkTmV3RGVsZWdhdGUobmV3RGVsZWdhdGUpOwotICAgIH0KLQotICAgIC8vIC0tLS0gUHJpdmF0ZSBkZWxlZ2F0ZS9oZWxwZXIgbWV0aG9kcyAtLS0tCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1BhaW50X0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1BhaW50X0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxOTUzZWQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9QYWludF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTIwOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkxheW91dExvZzsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLkJyaWRnZTsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRGVsZWdhdGVNYW5hZ2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuUGFpbnQuRm9udE1ldHJpY3M7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5QYWludC5Gb250TWV0cmljc0ludDsKLWltcG9ydCBhbmRyb2lkLnRleHQuVGV4dFV0aWxzOwotCi1pbXBvcnQgamF2YS5hd3QuQmFzaWNTdHJva2U7Ci1pbXBvcnQgamF2YS5hd3QuRm9udDsKLWltcG9ydCBqYXZhLmF3dC5TaGFwZTsKLWltcG9ydCBqYXZhLmF3dC5TdHJva2U7Ci1pbXBvcnQgamF2YS5hd3QuVG9vbGtpdDsKLWltcG9ydCBqYXZhLmF3dC5mb250LkZvbnRSZW5kZXJDb250ZXh0OwotaW1wb3J0IGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtOwotaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7Ci1pbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOwotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7Ci0KLS8qKgotICogRGVsZWdhdGUgaW1wbGVtZW50aW5nIHRoZSBuYXRpdmUgbWV0aG9kcyBvZiBhbmRyb2lkLmdyYXBoaWNzLlBhaW50Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgUGFpbnQgaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgUGFpbnQgY2xhc3MuCi0gKgotICogQHNlZSBEZWxlZ2F0ZU1hbmFnZXIKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBQYWludF9EZWxlZ2F0ZSB7Ci0KLSAgICAvKioKLSAgICAgKiBDbGFzcyBhc3NvY2lhdGluZyBhIHtAbGluayBGb250fSBhbmQgaXQncyB7QGxpbmsgamF2YS5hd3QuRm9udE1ldHJpY3N9LgotICAgICAqLwotICAgIC8qcGFja2FnZSovIHN0YXRpYyBmaW5hbCBjbGFzcyBGb250SW5mbyB7Ci0gICAgICAgIEZvbnQgbUZvbnQ7Ci0gICAgICAgIGphdmEuYXd0LkZvbnRNZXRyaWNzIG1NZXRyaWNzOwotICAgIH0KLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgbWFuYWdlciAtLS0tCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRGVsZWdhdGVNYW5hZ2VyPFBhaW50X0RlbGVnYXRlPiBzTWFuYWdlciA9Ci0gICAgICAgICAgICBuZXcgRGVsZWdhdGVNYW5hZ2VyPFBhaW50X0RlbGVnYXRlPihQYWludF9EZWxlZ2F0ZS5jbGFzcyk7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGhlbHBlciBkYXRhIC0tLS0KLSAgICBwcml2YXRlIExpc3Q8Rm9udEluZm8+IG1Gb250czsKLSAgICBwcml2YXRlIGZpbmFsIEZvbnRSZW5kZXJDb250ZXh0IG1Gb250Q29udGV4dCA9IG5ldyBGb250UmVuZGVyQ29udGV4dCgKLSAgICAgICAgICAgIG5ldyBBZmZpbmVUcmFuc2Zvcm0oKSwgdHJ1ZSwgdHJ1ZSk7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotICAgIHByaXZhdGUgaW50IG1GbGFnczsKLSAgICBwcml2YXRlIGludCBtQ29sb3I7Ci0gICAgcHJpdmF0ZSBpbnQgbVN0eWxlOwotICAgIHByaXZhdGUgaW50IG1DYXA7Ci0gICAgcHJpdmF0ZSBpbnQgbUpvaW47Ci0gICAgcHJpdmF0ZSBpbnQgbVRleHRBbGlnbjsKLSAgICBwcml2YXRlIFR5cGVmYWNlX0RlbGVnYXRlIG1UeXBlZmFjZTsKLSAgICBwcml2YXRlIGZsb2F0IG1TdHJva2VXaWR0aDsKLSAgICBwcml2YXRlIGZsb2F0IG1TdHJva2VNaXRlcjsKLSAgICBwcml2YXRlIGZsb2F0IG1UZXh0U2l6ZTsKLSAgICBwcml2YXRlIGZsb2F0IG1UZXh0U2NhbGVYOwotICAgIHByaXZhdGUgZmxvYXQgbVRleHRTa2V3WDsKLSAgICBwcml2YXRlIGludCBtSGludGluZ01vZGUgPSBQYWludC5ISU5USU5HX09OOwotCi0gICAgcHJpdmF0ZSBYZmVybW9kZV9EZWxlZ2F0ZSBtWGZlcm1vZGU7Ci0gICAgcHJpdmF0ZSBDb2xvckZpbHRlcl9EZWxlZ2F0ZSBtQ29sb3JGaWx0ZXI7Ci0gICAgcHJpdmF0ZSBTaGFkZXJfRGVsZWdhdGUgbVNoYWRlcjsKLSAgICBwcml2YXRlIFBhdGhFZmZlY3RfRGVsZWdhdGUgbVBhdGhFZmZlY3Q7Ci0gICAgcHJpdmF0ZSBNYXNrRmlsdGVyX0RlbGVnYXRlIG1NYXNrRmlsdGVyOwotICAgIHByaXZhdGUgUmFzdGVyaXplcl9EZWxlZ2F0ZSBtUmFzdGVyaXplcjsKLQotICAgIHByaXZhdGUgTG9jYWxlIG1Mb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOwotCi0KLSAgICAvLyAtLS0tIFB1YmxpYyBIZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBwdWJsaWMgc3RhdGljIFBhaW50X0RlbGVnYXRlIGdldERlbGVnYXRlKGludCBuYXRpdmVfcGFpbnQpIHsKLSAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9wYWludCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgbGlzdCBvZiB7QGxpbmsgRm9udH0gb2JqZWN0cy4gVGhlIGZpcnN0IGl0ZW0gaXMgdGhlIG1haW4gZm9udCwgdGhlIHJlc3QKLSAgICAgKiBhcmUgZmFsbCBiYWNrcyBmb3IgY2hhcmFjdGVycyBub3QgcHJlc2VudCBpbiB0aGUgbWFpbiBmb250LgotICAgICAqLwotICAgIHB1YmxpYyBMaXN0PEZvbnRJbmZvPiBnZXRGb250cygpIHsKLSAgICAgICAgcmV0dXJuIG1Gb250czsKLSAgICB9Ci0KLSAgICBwdWJsaWMgYm9vbGVhbiBpc0FudGlBbGlhc2VkKCkgewotICAgICAgICByZXR1cm4gKG1GbGFncyAmIFBhaW50LkFOVElfQUxJQVNfRkxBRykgIT0gMDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgYm9vbGVhbiBpc0ZpbHRlckJpdG1hcCgpIHsKLSAgICAgICAgcmV0dXJuIChtRmxhZ3MgJiBQYWludC5GSUxURVJfQklUTUFQX0ZMQUcpICE9IDA7Ci0gICAgfQotCi0gICAgcHVibGljIGludCBnZXRTdHlsZSgpIHsKLSAgICAgICAgcmV0dXJuIG1TdHlsZTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgaW50IGdldENvbG9yKCkgewotICAgICAgICByZXR1cm4gbUNvbG9yOwotICAgIH0KLQotICAgIHB1YmxpYyBpbnQgZ2V0QWxwaGEoKSB7Ci0gICAgICAgIHJldHVybiBtQ29sb3IgPj4+IDI0OwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHNldEFscGhhKGludCBhbHBoYSkgewotICAgICAgICBtQ29sb3IgPSAoYWxwaGEgPDwgMjQpIHwgKG1Db2xvciAmIDB4MDBGRkZGRkYpOwotICAgIH0KLQotICAgIHB1YmxpYyBpbnQgZ2V0VGV4dEFsaWduKCkgewotICAgICAgICByZXR1cm4gbVRleHRBbGlnbjsKLSAgICB9Ci0KLSAgICBwdWJsaWMgZmxvYXQgZ2V0U3Ryb2tlV2lkdGgoKSB7Ci0gICAgICAgIHJldHVybiBtU3Ryb2tlV2lkdGg7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogcmV0dXJucyB0aGUgdmFsdWUgb2Ygc3Ryb2tlIG1pdGVyIG5lZWRlZCBieSB0aGUgamF2YSBhcGkuCi0gICAgICovCi0gICAgcHVibGljIGZsb2F0IGdldEphdmFTdHJva2VNaXRlcigpIHsKLSAgICAgICAgZmxvYXQgbWl0ZXIgPSBtU3Ryb2tlTWl0ZXIgKiBtU3Ryb2tlV2lkdGg7Ci0gICAgICAgIGlmIChtaXRlciA8IDEuZikgewotICAgICAgICAgICAgbWl0ZXIgPSAxLmY7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG1pdGVyOwotICAgIH0KLQotICAgIHB1YmxpYyBpbnQgZ2V0SmF2YUNhcCgpIHsKLSAgICAgICAgc3dpdGNoIChQYWludC5zQ2FwQXJyYXlbbUNhcF0pIHsKLSAgICAgICAgICAgIGNhc2UgQlVUVDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQmFzaWNTdHJva2UuQ0FQX0JVVFQ7Ci0gICAgICAgICAgICBjYXNlIFJPVU5EOgotICAgICAgICAgICAgICAgIHJldHVybiBCYXNpY1N0cm9rZS5DQVBfUk9VTkQ7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgY2FzZSBTUVVBUkU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEJhc2ljU3Ryb2tlLkNBUF9TUVVBUkU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwdWJsaWMgaW50IGdldEphdmFKb2luKCkgewotICAgICAgICBzd2l0Y2ggKFBhaW50LnNKb2luQXJyYXlbbUpvaW5dKSB7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgY2FzZSBNSVRFUjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQmFzaWNTdHJva2UuSk9JTl9NSVRFUjsKLSAgICAgICAgICAgIGNhc2UgUk9VTkQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEJhc2ljU3Ryb2tlLkpPSU5fUk9VTkQ7Ci0gICAgICAgICAgICBjYXNlIEJFVkVMOgotICAgICAgICAgICAgICAgIHJldHVybiBCYXNpY1N0cm9rZS5KT0lOX0JFVkVMOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHVibGljIFN0cm9rZSBnZXRKYXZhU3Ryb2tlKCkgewotICAgICAgICBpZiAobVBhdGhFZmZlY3QgIT0gbnVsbCkgewotICAgICAgICAgICAgaWYgKG1QYXRoRWZmZWN0LmlzU3VwcG9ydGVkKCkpIHsKLSAgICAgICAgICAgICAgICBTdHJva2Ugc3Ryb2tlID0gbVBhdGhFZmZlY3QuZ2V0U3Ryb2tlKHRoaXMpOwotICAgICAgICAgICAgICAgIGFzc2VydCBzdHJva2UgIT0gbnVsbDsKLSAgICAgICAgICAgICAgICBpZiAoc3Ryb2tlICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0cm9rZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5maWRlbGl0eVdhcm5pbmcoTGF5b3V0TG9nLlRBR19QQVRIRUZGRUNULAotICAgICAgICAgICAgICAgICAgICAgICAgbVBhdGhFZmZlY3QuZ2V0U3VwcG9ydE1lc3NhZ2UoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gaWYgbm8gY3VzdG9tIHN0cm9rZSBhcyBiZWVuIHNldCwgc2V0IHRoZSBkZWZhdWx0IG9uZS4KLSAgICAgICAgcmV0dXJuIG5ldyBCYXNpY1N0cm9rZSgKLSAgICAgICAgICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGgoKSwKLSAgICAgICAgICAgICAgICAgICAgZ2V0SmF2YUNhcCgpLAotICAgICAgICAgICAgICAgICAgICBnZXRKYXZhSm9pbigpLAotICAgICAgICAgICAgICAgICAgICBnZXRKYXZhU3Ryb2tlTWl0ZXIoKSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUge0BsaW5rIFhmZXJtb2RlfSBkZWxlZ2F0ZSBvciBudWxsIGlmIG5vbmUgaGF2ZSBiZWVuIHNldAotICAgICAqCi0gICAgICogQHJldHVybiB0aGUgZGVsZWdhdGUgb3IgbnVsbC4KLSAgICAgKi8KLSAgICBwdWJsaWMgWGZlcm1vZGVfRGVsZWdhdGUgZ2V0WGZlcm1vZGUoKSB7Ci0gICAgICAgIHJldHVybiBtWGZlcm1vZGU7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUge0BsaW5rIENvbG9yRmlsdGVyfSBkZWxlZ2F0ZSBvciBudWxsIGlmIG5vbmUgaGF2ZSBiZWVuIHNldAotICAgICAqCi0gICAgICogQHJldHVybiB0aGUgZGVsZWdhdGUgb3IgbnVsbC4KLSAgICAgKi8KLSAgICBwdWJsaWMgQ29sb3JGaWx0ZXJfRGVsZWdhdGUgZ2V0Q29sb3JGaWx0ZXIoKSB7Ci0gICAgICAgIHJldHVybiBtQ29sb3JGaWx0ZXI7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUge0BsaW5rIFNoYWRlcn0gZGVsZWdhdGUgb3IgbnVsbCBpZiBub25lIGhhdmUgYmVlbiBzZXQKLSAgICAgKgotICAgICAqIEByZXR1cm4gdGhlIGRlbGVnYXRlIG9yIG51bGwuCi0gICAgICovCi0gICAgcHVibGljIFNoYWRlcl9EZWxlZ2F0ZSBnZXRTaGFkZXIoKSB7Ci0gICAgICAgIHJldHVybiBtU2hhZGVyOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIHtAbGluayBNYXNrRmlsdGVyfSBkZWxlZ2F0ZSBvciBudWxsIGlmIG5vbmUgaGF2ZSBiZWVuIHNldAotICAgICAqCi0gICAgICogQHJldHVybiB0aGUgZGVsZWdhdGUgb3IgbnVsbC4KLSAgICAgKi8KLSAgICBwdWJsaWMgTWFza0ZpbHRlcl9EZWxlZ2F0ZSBnZXRNYXNrRmlsdGVyKCkgewotICAgICAgICByZXR1cm4gbU1hc2tGaWx0ZXI7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUge0BsaW5rIFJhc3Rlcml6ZXJ9IGRlbGVnYXRlIG9yIG51bGwgaWYgbm9uZSBoYXZlIGJlZW4gc2V0Ci0gICAgICoKLSAgICAgKiBAcmV0dXJuIHRoZSBkZWxlZ2F0ZSBvciBudWxsLgotICAgICAqLwotICAgIHB1YmxpYyBSYXN0ZXJpemVyX0RlbGVnYXRlIGdldFJhc3Rlcml6ZXIoKSB7Ci0gICAgICAgIHJldHVybiBtUmFzdGVyaXplcjsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIG5hdGl2ZSBtZXRob2RzIC0tLS0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgZ2V0RmxhZ3MoUGFpbnQgdGhpc1BhaW50KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUGFpbnQubU5hdGl2ZVBhaW50KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlbGVnYXRlLm1GbGFnczsKLSAgICB9Ci0KLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgc2V0RmxhZ3MoUGFpbnQgdGhpc1BhaW50LCBpbnQgZmxhZ3MpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKHRoaXNQYWludC5tTmF0aXZlUGFpbnQpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgZGVsZWdhdGUubUZsYWdzID0gZmxhZ3M7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgc2V0RmlsdGVyQml0bWFwKFBhaW50IHRoaXNQYWludCwgYm9vbGVhbiBmaWx0ZXIpIHsKLSAgICAgICAgc2V0RmxhZyh0aGlzUGFpbnQsIFBhaW50LkZJTFRFUl9CSVRNQVBfRkxBRywgZmlsdGVyKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IGdldEhpbnRpbmcoUGFpbnQgdGhpc1BhaW50KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUGFpbnQubU5hdGl2ZVBhaW50KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBQYWludC5ISU5USU5HX09OOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlbGVnYXRlLm1IaW50aW5nTW9kZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBzZXRIaW50aW5nKFBhaW50IHRoaXNQYWludCwgaW50IG1vZGUpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKHRoaXNQYWludC5tTmF0aXZlUGFpbnQpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgZGVsZWdhdGUubUhpbnRpbmdNb2RlID0gbW9kZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBzZXRBbnRpQWxpYXMoUGFpbnQgdGhpc1BhaW50LCBib29sZWFuIGFhKSB7Ci0gICAgICAgIHNldEZsYWcodGhpc1BhaW50LCBQYWludC5BTlRJX0FMSUFTX0ZMQUcsIGFhKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBzZXRTdWJwaXhlbFRleHQoUGFpbnQgdGhpc1BhaW50LCBib29sZWFuIHN1YnBpeGVsVGV4dCkgewotICAgICAgICBzZXRGbGFnKHRoaXNQYWludCwgUGFpbnQuU1VCUElYRUxfVEVYVF9GTEFHLCBzdWJwaXhlbFRleHQpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIHNldFVuZGVybGluZVRleHQoUGFpbnQgdGhpc1BhaW50LCBib29sZWFuIHVuZGVybGluZVRleHQpIHsKLSAgICAgICAgc2V0RmxhZyh0aGlzUGFpbnQsIFBhaW50LlVOREVSTElORV9URVhUX0ZMQUcsIHVuZGVybGluZVRleHQpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIHNldFN0cmlrZVRocnVUZXh0KFBhaW50IHRoaXNQYWludCwgYm9vbGVhbiBzdHJpa2VUaHJ1VGV4dCkgewotICAgICAgICBzZXRGbGFnKHRoaXNQYWludCwgUGFpbnQuU1RSSUtFX1RIUlVfVEVYVF9GTEFHLCBzdHJpa2VUaHJ1VGV4dCk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgc2V0RmFrZUJvbGRUZXh0KFBhaW50IHRoaXNQYWludCwgYm9vbGVhbiBmYWtlQm9sZFRleHQpIHsKLSAgICAgICAgc2V0RmxhZyh0aGlzUGFpbnQsIFBhaW50LkZBS0VfQk9MRF9URVhUX0ZMQUcsIGZha2VCb2xkVGV4dCk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgc2V0RGl0aGVyKFBhaW50IHRoaXNQYWludCwgYm9vbGVhbiBkaXRoZXIpIHsKLSAgICAgICAgc2V0RmxhZyh0aGlzUGFpbnQsIFBhaW50LkRJVEhFUl9GTEFHLCBkaXRoZXIpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIHNldExpbmVhclRleHQoUGFpbnQgdGhpc1BhaW50LCBib29sZWFuIGxpbmVhclRleHQpIHsKLSAgICAgICAgc2V0RmxhZyh0aGlzUGFpbnQsIFBhaW50LkxJTkVBUl9URVhUX0ZMQUcsIGxpbmVhclRleHQpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgZ2V0Q29sb3IoUGFpbnQgdGhpc1BhaW50KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUGFpbnQubU5hdGl2ZVBhaW50KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlbGVnYXRlLm1Db2xvcjsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBzZXRDb2xvcihQYWludCB0aGlzUGFpbnQsIGludCBjb2xvcikgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc1BhaW50Lm1OYXRpdmVQYWludCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBkZWxlZ2F0ZS5tQ29sb3IgPSBjb2xvcjsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IGdldEFscGhhKFBhaW50IHRoaXNQYWludCkgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc1BhaW50Lm1OYXRpdmVQYWludCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBkZWxlZ2F0ZS5nZXRBbHBoYSgpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIHNldEFscGhhKFBhaW50IHRoaXNQYWludCwgaW50IGEpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKHRoaXNQYWludC5tTmF0aXZlUGFpbnQpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgZGVsZWdhdGUuc2V0QWxwaGEoYSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0IGdldFN0cm9rZVdpZHRoKFBhaW50IHRoaXNQYWludCkgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc1BhaW50Lm1OYXRpdmVQYWludCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gMS5mOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlbGVnYXRlLm1TdHJva2VXaWR0aDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBzZXRTdHJva2VXaWR0aChQYWludCB0aGlzUGFpbnQsIGZsb2F0IHdpZHRoKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUGFpbnQubU5hdGl2ZVBhaW50KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGRlbGVnYXRlLm1TdHJva2VXaWR0aCA9IHdpZHRoOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBmbG9hdCBnZXRTdHJva2VNaXRlcihQYWludCB0aGlzUGFpbnQpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKHRoaXNQYWludC5tTmF0aXZlUGFpbnQpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIDEuZjsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBkZWxlZ2F0ZS5tU3Ryb2tlTWl0ZXI7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgc2V0U3Ryb2tlTWl0ZXIoUGFpbnQgdGhpc1BhaW50LCBmbG9hdCBtaXRlcikgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc1BhaW50Lm1OYXRpdmVQYWludCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBkZWxlZ2F0ZS5tU3Ryb2tlTWl0ZXIgPSBtaXRlcjsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuU2V0U2hhZG93TGF5ZXIoUGFpbnQgdGhpc1BhaW50LCBmbG9hdCByYWRpdXMsIGZsb2F0IGR4LCBmbG9hdCBkeSwKLSAgICAgICAgICAgIGludCBjb2xvcikgewotICAgICAgICAvLyBGSVhNRQotICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZmlkZWxpdHlXYXJuaW5nKExheW91dExvZy5UQUdfVU5TVVBQT1JURUQsCi0gICAgICAgICAgICAgICAgIlBhaW50LnNldFNoYWRvd0xheWVyIGlzIG5vdCBzdXBwb3J0ZWQuIiwgbnVsbCwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0IGdldFRleHRTaXplKFBhaW50IHRoaXNQYWludCkgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc1BhaW50Lm1OYXRpdmVQYWludCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gMS5mOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlbGVnYXRlLm1UZXh0U2l6ZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBzZXRUZXh0U2l6ZShQYWludCB0aGlzUGFpbnQsIGZsb2F0IHRleHRTaXplKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUGFpbnQubU5hdGl2ZVBhaW50KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGRlbGVnYXRlLm1UZXh0U2l6ZSA9IHRleHRTaXplOwotICAgICAgICBkZWxlZ2F0ZS51cGRhdGVGb250T2JqZWN0KCk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0IGdldFRleHRTY2FsZVgoUGFpbnQgdGhpc1BhaW50KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUGFpbnQubU5hdGl2ZVBhaW50KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAxLmY7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVsZWdhdGUubVRleHRTY2FsZVg7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgc2V0VGV4dFNjYWxlWChQYWludCB0aGlzUGFpbnQsIGZsb2F0IHNjYWxlWCkgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc1BhaW50Lm1OYXRpdmVQYWludCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBkZWxlZ2F0ZS5tVGV4dFNjYWxlWCA9IHNjYWxlWDsKLSAgICAgICAgZGVsZWdhdGUudXBkYXRlRm9udE9iamVjdCgpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBmbG9hdCBnZXRUZXh0U2tld1goUGFpbnQgdGhpc1BhaW50KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUGFpbnQubU5hdGl2ZVBhaW50KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAxLmY7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVsZWdhdGUubVRleHRTa2V3WDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBzZXRUZXh0U2tld1goUGFpbnQgdGhpc1BhaW50LCBmbG9hdCBza2V3WCkgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc1BhaW50Lm1OYXRpdmVQYWludCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBkZWxlZ2F0ZS5tVGV4dFNrZXdYID0gc2tld1g7Ci0gICAgICAgIGRlbGVnYXRlLnVwZGF0ZUZvbnRPYmplY3QoKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgZmxvYXQgYXNjZW50KFBhaW50IHRoaXNQYWludCkgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc1BhaW50Lm1OYXRpdmVQYWludCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChkZWxlZ2F0ZS5tRm9udHMuc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgamF2YS5hd3QuRm9udE1ldHJpY3MgamF2YU1ldHJpY3MgPSBkZWxlZ2F0ZS5tRm9udHMuZ2V0KDApLm1NZXRyaWNzOwotICAgICAgICAgICAgLy8gQW5kcm9pZCBleHBlY3RzIG5lZ2F0aXZlIGFzY2VudCBzbyB3ZSBpbnZlcnQgdGhlIHZhbHVlIGZyb20gSmF2YS4KLSAgICAgICAgICAgIHJldHVybiAtIGphdmFNZXRyaWNzLmdldEFzY2VudCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0IGRlc2NlbnQoUGFpbnQgdGhpc1BhaW50KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUKLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUGFpbnQubU5hdGl2ZVBhaW50KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGRlbGVnYXRlLm1Gb250cy5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICBqYXZhLmF3dC5Gb250TWV0cmljcyBqYXZhTWV0cmljcyA9IGRlbGVnYXRlLm1Gb250cy5nZXQoMCkubU1ldHJpY3M7Ci0gICAgICAgICAgICByZXR1cm4gamF2YU1ldHJpY3MuZ2V0RGVzY2VudCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgZmxvYXQgZ2V0Rm9udE1ldHJpY3MoUGFpbnQgdGhpc1BhaW50LCBGb250TWV0cmljcyBtZXRyaWNzKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUKLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUGFpbnQubU5hdGl2ZVBhaW50KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlbGVnYXRlLmdldEZvbnRNZXRyaWNzKG1ldHJpY3MpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgZ2V0Rm9udE1ldHJpY3NJbnQoUGFpbnQgdGhpc1BhaW50LCBGb250TWV0cmljc0ludCBmbWkpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZQotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKHRoaXNQYWludC5tTmF0aXZlUGFpbnQpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZGVsZWdhdGUubUZvbnRzLnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgIGphdmEuYXd0LkZvbnRNZXRyaWNzIGphdmFNZXRyaWNzID0gZGVsZWdhdGUubUZvbnRzLmdldCgwKS5tTWV0cmljczsKLSAgICAgICAgICAgIGlmIChmbWkgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIC8vIEFuZHJvaWQgZXhwZWN0cyBuZWdhdGl2ZSBhc2NlbnQgc28gd2UgaW52ZXJ0IHRoZSB2YWx1ZSBmcm9tIEphdmEuCi0gICAgICAgICAgICAgICAgZm1pLnRvcCA9IC0gamF2YU1ldHJpY3MuZ2V0TWF4QXNjZW50KCk7Ci0gICAgICAgICAgICAgICAgZm1pLmFzY2VudCA9IC0gamF2YU1ldHJpY3MuZ2V0QXNjZW50KCk7Ci0gICAgICAgICAgICAgICAgZm1pLmRlc2NlbnQgPSBqYXZhTWV0cmljcy5nZXREZXNjZW50KCk7Ci0gICAgICAgICAgICAgICAgZm1pLmJvdHRvbSA9IGphdmFNZXRyaWNzLmdldE1heERlc2NlbnQoKTsKLSAgICAgICAgICAgICAgICBmbWkubGVhZGluZyA9IGphdmFNZXRyaWNzLmdldExlYWRpbmcoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIGphdmFNZXRyaWNzLmdldEhlaWdodCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0IG5hdGl2ZV9tZWFzdXJlVGV4dChQYWludCB0aGlzUGFpbnQsIGNoYXJbXSB0ZXh0LCBpbnQgaW5kZXgsCi0gICAgICAgICAgICBpbnQgY291bnQsIGludCBiaWRpRmxhZ3MpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZQotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKHRoaXNQYWludC5tTmF0aXZlUGFpbnQpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVsZWdhdGUubWVhc3VyZVRleHQodGV4dCwgaW5kZXgsIGNvdW50LCBpc1J0bChiaWRpRmxhZ3MpKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgZmxvYXQgbmF0aXZlX21lYXN1cmVUZXh0KFBhaW50IHRoaXNQYWludCwgU3RyaW5nIHRleHQsIGludCBzdGFydCwgaW50IGVuZCwKLSAgICAgICAgaW50IGJpZGlGbGFncykgewotICAgICAgICByZXR1cm4gbmF0aXZlX21lYXN1cmVUZXh0KHRoaXNQYWludCwgdGV4dC50b0NoYXJBcnJheSgpLCBzdGFydCwgZW5kIC0gc3RhcnQsIGJpZGlGbGFncyk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0IG5hdGl2ZV9tZWFzdXJlVGV4dChQYWludCB0aGlzUGFpbnQsIFN0cmluZyB0ZXh0LCBpbnQgYmlkaUZsYWdzKSB7Ci0gICAgICAgIHJldHVybiBuYXRpdmVfbWVhc3VyZVRleHQodGhpc1BhaW50LCB0ZXh0LnRvQ2hhckFycmF5KCksIDAsIHRleHQubGVuZ3RoKCksIGJpZGlGbGFncyk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVfYnJlYWtUZXh0KFBhaW50IHRoaXNQYWludCwgY2hhcltdIHRleHQsIGludCBpbmRleCwgaW50IGNvdW50LAotICAgICAgICAgICAgZmxvYXQgbWF4V2lkdGgsIGludCBiaWRpRmxhZ3MsIGZsb2F0W10gbWVhc3VyZWRXaWR0aCkgewotCi0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUKLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUGFpbnQubU5hdGl2ZVBhaW50KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgaW50IGluYyA9IGNvdW50ID4gMCA/IDEgOiAtMTsKLQotICAgICAgICBpbnQgbWVhc3VyZUluZGV4ID0gMDsKLSAgICAgICAgZmxvYXQgbWVhc3VyZUFjYyA9IDA7Ci0gICAgICAgIGZvciAoaW50IGkgPSBpbmRleDsgaSAhPSBpbmRleCArIGNvdW50OyBpICs9IGluYywgbWVhc3VyZUluZGV4KyspIHsKLSAgICAgICAgICAgIGludCBzdGFydCwgZW5kOwotICAgICAgICAgICAgaWYgKGkgPCBpbmRleCkgewotICAgICAgICAgICAgICAgIHN0YXJ0ID0gaTsKLSAgICAgICAgICAgICAgICBlbmQgPSBpbmRleDsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc3RhcnQgPSBpbmRleDsKLSAgICAgICAgICAgICAgICBlbmQgPSBpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBtZWFzdXJlIGZyb20gc3RhcnQgdG8gZW5kCi0gICAgICAgICAgICBmbG9hdCByZXMgPSBkZWxlZ2F0ZS5tZWFzdXJlVGV4dCh0ZXh0LCBzdGFydCwgZW5kIC0gc3RhcnQgKyAxLCBpc1J0bChiaWRpRmxhZ3MpKTsKLQotICAgICAgICAgICAgaWYgKG1lYXN1cmVkV2lkdGggIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIG1lYXN1cmVkV2lkdGhbbWVhc3VyZUluZGV4XSA9IHJlczsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbWVhc3VyZUFjYyArPSByZXM7Ci0gICAgICAgICAgICBpZiAocmVzID4gbWF4V2lkdGgpIHsKLSAgICAgICAgICAgICAgICAvLyB3ZSBzaG91bGQgbm90IHJldHVybiB0aGlzIGNoYXIgaW5kZXgsIGJ1dCBzaW5jZSBpdCdzIDAtYmFzZWQKLSAgICAgICAgICAgICAgICAvLyBhbmQgd2UgbmVlZCB0byByZXR1cm4gYSBjb3VudCwgd2Ugc2ltcGx5IHJldHVybiBtZWFzdXJlSW5kZXg7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1lYXN1cmVJbmRleDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG1lYXN1cmVJbmRleDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZV9icmVha1RleHQoUGFpbnQgdGhpc1BhaW50LCBTdHJpbmcgdGV4dCwgYm9vbGVhbiBtZWFzdXJlRm9yd2FyZHMsCi0gICAgICAgICAgICBmbG9hdCBtYXhXaWR0aCwgaW50IGJpZGlGbGFncywgZmxvYXRbXSBtZWFzdXJlZFdpZHRoKSB7Ci0gICAgICAgIHJldHVybiBuYXRpdmVfYnJlYWtUZXh0KHRoaXNQYWludCwgdGV4dC50b0NoYXJBcnJheSgpLCAwLCB0ZXh0Lmxlbmd0aCgpLCBtYXhXaWR0aCwKLSAgICAgICAgICAgICAgICBiaWRpRmxhZ3MsIG1lYXN1cmVkV2lkdGgpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlX2luaXQoKSB7Ci0gICAgICAgIFBhaW50X0RlbGVnYXRlIG5ld0RlbGVnYXRlID0gbmV3IFBhaW50X0RlbGVnYXRlKCk7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5hZGROZXdEZWxlZ2F0ZShuZXdEZWxlZ2F0ZSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVfaW5pdFdpdGhQYWludChpbnQgcGFpbnQpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKHBhaW50KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgbmV3RGVsZWdhdGUgPSBuZXcgUGFpbnRfRGVsZWdhdGUoZGVsZWdhdGUpOwotICAgICAgICByZXR1cm4gc01hbmFnZXIuYWRkTmV3RGVsZWdhdGUobmV3RGVsZWdhdGUpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9yZXNldChpbnQgbmF0aXZlX29iamVjdCkgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBkZWxlZ2F0ZS5yZXNldCgpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9zZXQoaW50IG5hdGl2ZV9kc3QsIGludCBuYXRpdmVfc3JjKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGVfZHN0ID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX2RzdCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZV9kc3QgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZV9zcmMgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfc3JjKTsKLSAgICAgICAgaWYgKGRlbGVnYXRlX3NyYyA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBkZWxlZ2F0ZV9kc3Quc2V0KGRlbGVnYXRlX3NyYyk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVfZ2V0U3R5bGUoaW50IG5hdGl2ZV9vYmplY3QpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVsZWdhdGUubVN0eWxlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9zZXRTdHlsZShpbnQgbmF0aXZlX29iamVjdCwgaW50IHN0eWxlKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGRlbGVnYXRlLm1TdHlsZSA9IHN0eWxlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlX2dldFN0cm9rZUNhcChpbnQgbmF0aXZlX29iamVjdCkgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBkZWxlZ2F0ZS5tQ2FwOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9zZXRTdHJva2VDYXAoaW50IG5hdGl2ZV9vYmplY3QsIGludCBjYXApIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgZGVsZWdhdGUubUNhcCA9IGNhcDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZV9nZXRTdHJva2VKb2luKGludCBuYXRpdmVfb2JqZWN0KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlbGVnYXRlLm1Kb2luOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9zZXRTdHJva2VKb2luKGludCBuYXRpdmVfb2JqZWN0LCBpbnQgam9pbikgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBkZWxlZ2F0ZS5tSm9pbiA9IGpvaW47Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlX2dldEZpbGxQYXRoKGludCBuYXRpdmVfb2JqZWN0LCBpbnQgc3JjLCBpbnQgZHN0KSB7Ci0gICAgICAgIFBhaW50X0RlbGVnYXRlIHBhaW50ID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChwYWludCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBQYXRoX0RlbGVnYXRlIHNyY1BhdGggPSBQYXRoX0RlbGVnYXRlLmdldERlbGVnYXRlKHNyYyk7Ci0gICAgICAgIGlmIChzcmNQYXRoID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgUGF0aF9EZWxlZ2F0ZSBkc3RQYXRoID0gUGF0aF9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZShkc3QpOwotICAgICAgICBpZiAoZHN0UGF0aCA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIFN0cm9rZSBzdHJva2UgPSBwYWludC5nZXRKYXZhU3Ryb2tlKCk7Ci0gICAgICAgIFNoYXBlIHN0cm9rZVNoYXBlID0gc3Ryb2tlLmNyZWF0ZVN0cm9rZWRTaGFwZShzcmNQYXRoLmdldEphdmFTaGFwZSgpKTsKLQotICAgICAgICBkc3RQYXRoLnNldEphdmFTaGFwZShzdHJva2VTaGFwZSk7Ci0KLSAgICAgICAgLy8gRklYTUUgZmlndXJlIG91dCB0aGUgcmV0dXJuIHZhbHVlPwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZV9zZXRTaGFkZXIoaW50IG5hdGl2ZV9vYmplY3QsIGludCBzaGFkZXIpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHNoYWRlcjsKLSAgICAgICAgfQotCi0gICAgICAgIGRlbGVnYXRlLm1TaGFkZXIgPSBTaGFkZXJfRGVsZWdhdGUuZ2V0RGVsZWdhdGUoc2hhZGVyKTsKLQotICAgICAgICByZXR1cm4gc2hhZGVyOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlX3NldENvbG9yRmlsdGVyKGludCBuYXRpdmVfb2JqZWN0LCBpbnQgZmlsdGVyKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmaWx0ZXI7Ci0gICAgICAgIH0KLQotICAgICAgICBkZWxlZ2F0ZS5tQ29sb3JGaWx0ZXIgPSBDb2xvckZpbHRlcl9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZShmaWx0ZXIpOzsKLQotICAgICAgICAvLyBzaW5jZSBub25lIG9mIHRob3NlIGFyZSBzdXBwb3J0ZWQsIGRpc3BsYXkgYSBmaWRlbGl0eSB3YXJuaW5nIHJpZ2h0IGF3YXkKLSAgICAgICAgaWYgKGRlbGVnYXRlLm1Db2xvckZpbHRlciAhPSBudWxsICYmIGRlbGVnYXRlLm1Db2xvckZpbHRlci5pc1N1cHBvcnRlZCgpID09IGZhbHNlKSB7Ci0gICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZmlkZWxpdHlXYXJuaW5nKExheW91dExvZy5UQUdfQ09MT1JGSUxURVIsCi0gICAgICAgICAgICAgICAgICAgIGRlbGVnYXRlLm1Db2xvckZpbHRlci5nZXRTdXBwb3J0TWVzc2FnZSgpLCBudWxsLCBudWxsIC8qZGF0YSovKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmaWx0ZXI7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVfc2V0WGZlcm1vZGUoaW50IG5hdGl2ZV9vYmplY3QsIGludCB4ZmVybW9kZSkgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4geGZlcm1vZGU7Ci0gICAgICAgIH0KLQotICAgICAgICBkZWxlZ2F0ZS5tWGZlcm1vZGUgPSBYZmVybW9kZV9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZSh4ZmVybW9kZSk7Ci0KLSAgICAgICAgcmV0dXJuIHhmZXJtb2RlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlX3NldFBhdGhFZmZlY3QoaW50IG5hdGl2ZV9vYmplY3QsIGludCBlZmZlY3QpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGVmZmVjdDsKLSAgICAgICAgfQotCi0gICAgICAgIGRlbGVnYXRlLm1QYXRoRWZmZWN0ID0gUGF0aEVmZmVjdF9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZShlZmZlY3QpOwotCi0gICAgICAgIHJldHVybiBlZmZlY3Q7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVfc2V0TWFza0ZpbHRlcihpbnQgbmF0aXZlX29iamVjdCwgaW50IG1hc2tmaWx0ZXIpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG1hc2tmaWx0ZXI7Ci0gICAgICAgIH0KLQotICAgICAgICBkZWxlZ2F0ZS5tTWFza0ZpbHRlciA9IE1hc2tGaWx0ZXJfRGVsZWdhdGUuZ2V0RGVsZWdhdGUobWFza2ZpbHRlcik7Ci0KLSAgICAgICAgLy8gc2luY2Ugbm9uZSBvZiB0aG9zZSBhcmUgc3VwcG9ydGVkLCBkaXNwbGF5IGEgZmlkZWxpdHkgd2FybmluZyByaWdodCBhd2F5Ci0gICAgICAgIGlmIChkZWxlZ2F0ZS5tTWFza0ZpbHRlciAhPSBudWxsICYmIGRlbGVnYXRlLm1NYXNrRmlsdGVyLmlzU3VwcG9ydGVkKCkgPT0gZmFsc2UpIHsKLSAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5maWRlbGl0eVdhcm5pbmcoTGF5b3V0TG9nLlRBR19NQVNLRklMVEVSLAotICAgICAgICAgICAgICAgICAgICBkZWxlZ2F0ZS5tTWFza0ZpbHRlci5nZXRTdXBwb3J0TWVzc2FnZSgpLCBudWxsLCBudWxsIC8qZGF0YSovKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBtYXNrZmlsdGVyOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlX3NldFR5cGVmYWNlKGludCBuYXRpdmVfb2JqZWN0LCBpbnQgdHlwZWZhY2UpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICBkZWxlZ2F0ZS5tVHlwZWZhY2UgPSBUeXBlZmFjZV9EZWxlZ2F0ZS5nZXREZWxlZ2F0ZSh0eXBlZmFjZSk7Ci0gICAgICAgIGRlbGVnYXRlLnVwZGF0ZUZvbnRPYmplY3QoKTsKLSAgICAgICAgcmV0dXJuIHR5cGVmYWNlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlX3NldFJhc3Rlcml6ZXIoaW50IG5hdGl2ZV9vYmplY3QsIGludCByYXN0ZXJpemVyKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiByYXN0ZXJpemVyOwotICAgICAgICB9Ci0KLSAgICAgICAgZGVsZWdhdGUubVJhc3Rlcml6ZXIgPSBSYXN0ZXJpemVyX0RlbGVnYXRlLmdldERlbGVnYXRlKHJhc3Rlcml6ZXIpOwotCi0gICAgICAgIC8vIHNpbmNlIG5vbmUgb2YgdGhvc2UgYXJlIHN1cHBvcnRlZCwgZGlzcGxheSBhIGZpZGVsaXR5IHdhcm5pbmcgcmlnaHQgYXdheQotICAgICAgICBpZiAoZGVsZWdhdGUubVJhc3Rlcml6ZXIgIT0gbnVsbCAmJiBkZWxlZ2F0ZS5tUmFzdGVyaXplci5pc1N1cHBvcnRlZCgpID09IGZhbHNlKSB7Ci0gICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZmlkZWxpdHlXYXJuaW5nKExheW91dExvZy5UQUdfUkFTVEVSSVpFUiwKLSAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGUubVJhc3Rlcml6ZXIuZ2V0U3VwcG9ydE1lc3NhZ2UoKSwgbnVsbCwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gcmFzdGVyaXplcjsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZV9nZXRUZXh0QWxpZ24oaW50IG5hdGl2ZV9vYmplY3QpIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVsZWdhdGUubVRleHRBbGlnbjsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfc2V0VGV4dEFsaWduKGludCBuYXRpdmVfb2JqZWN0LCBpbnQgYWxpZ24pIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSBmcm9tIHRoZSBuYXRpdmUgaW50LgotICAgICAgICBQYWludF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9vYmplY3QpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgZGVsZWdhdGUubVRleHRBbGlnbiA9IGFsaWduOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9zZXRUZXh0TG9jYWxlKGludCBuYXRpdmVfb2JqZWN0LCBTdHJpbmcgbG9jYWxlKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGRlbGVnYXRlLnNldFRleHRMb2NhbGUobG9jYWxlKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZV9nZXRUZXh0V2lkdGhzKGludCBuYXRpdmVfb2JqZWN0LCBjaGFyW10gdGV4dCwgaW50IGluZGV4LAotICAgICAgICAgICAgaW50IGNvdW50LCBpbnQgYmlkaUZsYWdzLCBmbG9hdFtdIHdpZHRocykgewotICAgICAgICAvLyBnZXQgdGhlIGRlbGVnYXRlIGZyb20gdGhlIG5hdGl2ZSBpbnQuCi0gICAgICAgIFBhaW50X0RlbGVnYXRlIGRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX29iamVjdCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChkZWxlZ2F0ZS5tRm9udHMuc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgLy8gRklYTUU6IGhhbmRsZSBtdWx0aS1jaGFyIGNoYXJhY3RlcnMgKHNlZSBtZWFzdXJlVGV4dCkKLSAgICAgICAgICAgIGZsb2F0IHRvdGFsQWR2YW5jZSA9IDA7Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLSAgICAgICAgICAgICAgICBjaGFyIGMgPSB0ZXh0W2kgKyBpbmRleF07Ci0gICAgICAgICAgICAgICAgYm9vbGVhbiBmb3VuZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGZvciAoRm9udEluZm8gaW5mbyA6IGRlbGVnYXRlLm1Gb250cykgewotICAgICAgICAgICAgICAgICAgICBpZiAoaW5mby5tRm9udC5jYW5EaXNwbGF5KGMpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBhZHYgPSBpbmZvLm1NZXRyaWNzLmNoYXJXaWR0aChjKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsQWR2YW5jZSArPSBhZHY7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAod2lkdGhzICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aHNbaV0gPSBhZHY7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKGZvdW5kID09IGZhbHNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIG5vIGFkdmFuY2UgZm9yIHRoaXMgY2hhci4KLSAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRocyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aHNbaV0gPSAwLmY7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiAoaW50KSB0b3RhbEFkdmFuY2U7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZV9nZXRUZXh0V2lkdGhzKGludCBuYXRpdmVfb2JqZWN0LCBTdHJpbmcgdGV4dCwgaW50IHN0YXJ0LAotICAgICAgICAgICAgaW50IGVuZCwgaW50IGJpZGlGbGFncywgZmxvYXRbXSB3aWR0aHMpIHsKLSAgICAgICAgcmV0dXJuIG5hdGl2ZV9nZXRUZXh0V2lkdGhzKG5hdGl2ZV9vYmplY3QsIHRleHQudG9DaGFyQXJyYXkoKSwgc3RhcnQsIGVuZCAtIHN0YXJ0LAotICAgICAgICAgICAgICAgIGJpZGlGbGFncywgd2lkdGhzKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKiBwYWNrYWdlICovc3RhdGljIGludCBuYXRpdmVfZ2V0VGV4dEdseXBocyhpbnQgbmF0aXZlX29iamVjdCwgU3RyaW5nIHRleHQsIGludCBzdGFydCwKLSAgICAgICAgICAgIGludCBlbmQsIGludCBjb250ZXh0U3RhcnQsIGludCBjb250ZXh0RW5kLCBpbnQgZmxhZ3MsIGNoYXJbXSBnbHlwaHMpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0IG5hdGl2ZV9nZXRUZXh0UnVuQWR2YW5jZXMoaW50IG5hdGl2ZV9vYmplY3QsCi0gICAgICAgICAgICBjaGFyW10gdGV4dCwgaW50IGluZGV4LCBpbnQgY291bnQsIGludCBjb250ZXh0SW5kZXgsIGludCBjb250ZXh0Q291bnQsCi0gICAgICAgICAgICBpbnQgZmxhZ3MsIGZsb2F0W10gYWR2YW5jZXMsIGludCBhZHZhbmNlc0luZGV4KSB7Ci0KLSAgICAgICAgaWYgKGFkdmFuY2VzICE9IG51bGwpCi0gICAgICAgICAgICBmb3IgKGludCBpID0gYWR2YW5jZXNJbmRleDsgaTwgYWR2YW5jZXNJbmRleCtjb3VudDsgaSsrKQotICAgICAgICAgICAgICAgIGFkdmFuY2VzW2ldPTA7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwgfHwgZGVsZWdhdGUubUZvbnRzID09IG51bGwgfHwgZGVsZWdhdGUubUZvbnRzLnNpemUoKSA9PSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gMC5mOwotICAgICAgICB9Ci0gICAgICAgIGJvb2xlYW4gaXNSdGwgPSBpc1J0bChmbGFncyk7Ci0KLSAgICAgICAgaW50IGxpbWl0ID0gaW5kZXggKyBjb3VudDsKLSAgICAgICAgcmV0dXJuIG5ldyBCaWRpUmVuZGVyZXIobnVsbCwgZGVsZWdhdGUsIHRleHQpLnJlbmRlclRleHQoCi0gICAgICAgICAgICAgICAgaW5kZXgsIGxpbWl0LCBpc1J0bCwgYWR2YW5jZXMsIGFkdmFuY2VzSW5kZXgsIGZhbHNlLCAwLCAwKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgZmxvYXQgbmF0aXZlX2dldFRleHRSdW5BZHZhbmNlcyhpbnQgbmF0aXZlX29iamVjdCwKLSAgICAgICAgICAgIFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQsIGludCBjb250ZXh0U3RhcnQsIGludCBjb250ZXh0RW5kLAotICAgICAgICAgICAgaW50IGZsYWdzLCBmbG9hdFtdIGFkdmFuY2VzLCBpbnQgYWR2YW5jZXNJbmRleCkgewotICAgICAgICAvLyBGSVhNRTogc3VwcG9ydCBjb250ZXh0U3RhcnQgYW5kIGNvbnRleHRFbmQKLSAgICAgICAgaW50IGNvdW50ID0gZW5kIC0gc3RhcnQ7Ci0gICAgICAgIGNoYXJbXSBidWZmZXIgPSBUZW1wb3JhcnlCdWZmZXIub2J0YWluKGNvdW50KTsKLSAgICAgICAgVGV4dFV0aWxzLmdldENoYXJzKHRleHQsIHN0YXJ0LCBlbmQsIGJ1ZmZlciwgMCk7Ci0KLSAgICAgICAgcmV0dXJuIG5hdGl2ZV9nZXRUZXh0UnVuQWR2YW5jZXMobmF0aXZlX29iamVjdCwgYnVmZmVyLCAwLCBjb3VudCwgY29udGV4dFN0YXJ0LAotICAgICAgICAgICAgICAgIGNvbnRleHRFbmQgLSBjb250ZXh0U3RhcnQsIGZsYWdzLCBhZHZhbmNlcywgYWR2YW5jZXNJbmRleCk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVfZ2V0VGV4dFJ1bkN1cnNvcihQYWludCB0aGlzUGFpbnQsIGludCBuYXRpdmVfb2JqZWN0LCBjaGFyW10gdGV4dCwKLSAgICAgICAgICAgIGludCBjb250ZXh0U3RhcnQsIGludCBjb250ZXh0TGVuZ3RoLCBpbnQgZmxhZ3MsIGludCBvZmZzZXQsIGludCBjdXJzb3JPcHQpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX1VOU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICJQYWludC5nZXRUZXh0UnVuQ3Vyc29yIGlzIG5vdCBzdXBwb3J0ZWQuIiwgbnVsbCwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlX2dldFRleHRSdW5DdXJzb3IoUGFpbnQgdGhpc1BhaW50LCBpbnQgbmF0aXZlX29iamVjdCwgU3RyaW5nIHRleHQsCi0gICAgICAgICAgICBpbnQgY29udGV4dFN0YXJ0LCBpbnQgY29udGV4dEVuZCwgaW50IGZsYWdzLCBpbnQgb2Zmc2V0LCBpbnQgY3Vyc29yT3B0KSB7Ci0gICAgICAgIC8vIEZJWE1FCi0gICAgICAgIEJyaWRnZS5nZXRMb2coKS5maWRlbGl0eVdhcm5pbmcoTGF5b3V0TG9nLlRBR19VTlNVUFBPUlRFRCwKLSAgICAgICAgICAgICAgICAiUGFpbnQuZ2V0VGV4dFJ1bkN1cnNvciBpcyBub3Qgc3VwcG9ydGVkLiIsIG51bGwsIG51bGwgLypkYXRhKi8pOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfZ2V0VGV4dFBhdGgoaW50IG5hdGl2ZV9vYmplY3QsIGludCBiaWRpRmxhZ3MsCi0gICAgICAgICAgICAgICAgY2hhcltdIHRleHQsIGludCBpbmRleCwgaW50IGNvdW50LCBmbG9hdCB4LCBmbG9hdCB5LCBpbnQgcGF0aCkgewotICAgICAgICAvLyBGSVhNRQotICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZmlkZWxpdHlXYXJuaW5nKExheW91dExvZy5UQUdfVU5TVVBQT1JURUQsCi0gICAgICAgICAgICAgICAgIlBhaW50LmdldFRleHRQYXRoIGlzIG5vdCBzdXBwb3J0ZWQuIiwgbnVsbCwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2dldFRleHRQYXRoKGludCBuYXRpdmVfb2JqZWN0LCBpbnQgYmlkaUZsYWdzLAotICAgICAgICAgICAgU3RyaW5nIHRleHQsIGludCBzdGFydCwgaW50IGVuZCwgZmxvYXQgeCwgZmxvYXQgeSwgaW50IHBhdGgpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX1VOU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICJQYWludC5nZXRUZXh0UGF0aCBpcyBub3Qgc3VwcG9ydGVkLiIsIG51bGwsIG51bGwgLypkYXRhKi8pOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZUdldFN0cmluZ0JvdW5kcyhpbnQgbmF0aXZlUGFpbnQsIFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsCi0gICAgICAgICAgICBpbnQgZW5kLCBpbnQgYmlkaUZsYWdzLCBSZWN0IGJvdW5kcykgewotICAgICAgICBuYXRpdmVHZXRDaGFyQXJyYXlCb3VuZHMobmF0aXZlUGFpbnQsIHRleHQudG9DaGFyQXJyYXkoKSwgc3RhcnQsIGVuZCAtIHN0YXJ0LCBiaWRpRmxhZ3MsCi0gICAgICAgICAgICAgICAgYm91bmRzKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVHZXRDaGFyQXJyYXlCb3VuZHMoaW50IG5hdGl2ZVBhaW50LCBjaGFyW10gdGV4dCwgaW50IGluZGV4LAotICAgICAgICAgICAgaW50IGNvdW50LCBpbnQgYmlkaUZsYWdzLCBSZWN0IGJvdW5kcykgewotCi0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVQYWludCk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsIHx8IGRlbGVnYXRlLm1Gb250cyA9PSBudWxsIHx8IGRlbGVnYXRlLm1Gb250cy5zaXplKCkgPT0gMCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGludCB3ID0gKGludCkgZGVsZWdhdGUubWVhc3VyZVRleHQodGV4dCwgaW5kZXgsIGNvdW50LCBpc1J0bChiaWRpRmxhZ3MpKTsKLSAgICAgICAgaW50IGg9IGRlbGVnYXRlLmdldEZvbnRzKCkuZ2V0KDApLm1NZXRyaWNzLmdldEhlaWdodCgpOwotICAgICAgICBib3VuZHMuc2V0KDAsIDAsIHcsIGgpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIGZpbmFsaXplcihpbnQgbmF0aXZlUGFpbnQpIHsKLSAgICAgICAgc01hbmFnZXIucmVtb3ZlSmF2YVJlZmVyZW5jZUZvcihuYXRpdmVQYWludCk7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBQcml2YXRlIGRlbGVnYXRlL2hlbHBlciBtZXRob2RzIC0tLS0KLQotICAgIC8qcGFja2FnZSovIFBhaW50X0RlbGVnYXRlKCkgewotICAgICAgICByZXNldCgpOwotICAgIH0KLQotICAgIHByaXZhdGUgUGFpbnRfRGVsZWdhdGUoUGFpbnRfRGVsZWdhdGUgcGFpbnQpIHsKLSAgICAgICAgc2V0KHBhaW50KTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHZvaWQgc2V0KFBhaW50X0RlbGVnYXRlIHBhaW50KSB7Ci0gICAgICAgIG1GbGFncyA9IHBhaW50Lm1GbGFnczsKLSAgICAgICAgbUNvbG9yID0gcGFpbnQubUNvbG9yOwotICAgICAgICBtU3R5bGUgPSBwYWludC5tU3R5bGU7Ci0gICAgICAgIG1DYXAgPSBwYWludC5tQ2FwOwotICAgICAgICBtSm9pbiA9IHBhaW50Lm1Kb2luOwotICAgICAgICBtVGV4dEFsaWduID0gcGFpbnQubVRleHRBbGlnbjsKLSAgICAgICAgbVR5cGVmYWNlID0gcGFpbnQubVR5cGVmYWNlOwotICAgICAgICBtU3Ryb2tlV2lkdGggPSBwYWludC5tU3Ryb2tlV2lkdGg7Ci0gICAgICAgIG1TdHJva2VNaXRlciA9IHBhaW50Lm1TdHJva2VNaXRlcjsKLSAgICAgICAgbVRleHRTaXplID0gcGFpbnQubVRleHRTaXplOwotICAgICAgICBtVGV4dFNjYWxlWCA9IHBhaW50Lm1UZXh0U2NhbGVYOwotICAgICAgICBtVGV4dFNrZXdYID0gcGFpbnQubVRleHRTa2V3WDsKLSAgICAgICAgbVhmZXJtb2RlID0gcGFpbnQubVhmZXJtb2RlOwotICAgICAgICBtQ29sb3JGaWx0ZXIgPSBwYWludC5tQ29sb3JGaWx0ZXI7Ci0gICAgICAgIG1TaGFkZXIgPSBwYWludC5tU2hhZGVyOwotICAgICAgICBtUGF0aEVmZmVjdCA9IHBhaW50Lm1QYXRoRWZmZWN0OwotICAgICAgICBtTWFza0ZpbHRlciA9IHBhaW50Lm1NYXNrRmlsdGVyOwotICAgICAgICBtUmFzdGVyaXplciA9IHBhaW50Lm1SYXN0ZXJpemVyOwotICAgICAgICBtSGludGluZ01vZGUgPSBwYWludC5tSGludGluZ01vZGU7Ci0gICAgICAgIHVwZGF0ZUZvbnRPYmplY3QoKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHZvaWQgcmVzZXQoKSB7Ci0gICAgICAgIG1GbGFncyA9IFBhaW50LkRFRkFVTFRfUEFJTlRfRkxBR1M7Ci0gICAgICAgIG1Db2xvciA9IDB4RkYwMDAwMDA7Ci0gICAgICAgIG1TdHlsZSA9IFBhaW50LlN0eWxlLkZJTEwubmF0aXZlSW50OwotICAgICAgICBtQ2FwID0gUGFpbnQuQ2FwLkJVVFQubmF0aXZlSW50OwotICAgICAgICBtSm9pbiA9IFBhaW50LkpvaW4uTUlURVIubmF0aXZlSW50OwotICAgICAgICBtVGV4dEFsaWduID0gMDsKLSAgICAgICAgbVR5cGVmYWNlID0gVHlwZWZhY2VfRGVsZWdhdGUuZ2V0RGVsZWdhdGUoVHlwZWZhY2Uuc0RlZmF1bHRzWzBdLm5hdGl2ZV9pbnN0YW5jZSk7Ci0gICAgICAgIG1TdHJva2VXaWR0aCA9IDEuZjsKLSAgICAgICAgbVN0cm9rZU1pdGVyID0gNC5mOwotICAgICAgICBtVGV4dFNpemUgPSAyMC5mOwotICAgICAgICBtVGV4dFNjYWxlWCA9IDEuZjsKLSAgICAgICAgbVRleHRTa2V3WCA9IDAuZjsKLSAgICAgICAgbVhmZXJtb2RlID0gbnVsbDsKLSAgICAgICAgbUNvbG9yRmlsdGVyID0gbnVsbDsKLSAgICAgICAgbVNoYWRlciA9IG51bGw7Ci0gICAgICAgIG1QYXRoRWZmZWN0ID0gbnVsbDsKLSAgICAgICAgbU1hc2tGaWx0ZXIgPSBudWxsOwotICAgICAgICBtUmFzdGVyaXplciA9IG51bGw7Ci0gICAgICAgIHVwZGF0ZUZvbnRPYmplY3QoKTsKLSAgICAgICAgbUhpbnRpbmdNb2RlID0gUGFpbnQuSElOVElOR19PTjsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBVcGRhdGUgdGhlIHtAbGluayBGb250fSBvYmplY3QgZnJvbSB0aGUgdHlwZWZhY2UsIHRleHQgc2l6ZSBhbmQgc2NhbGluZwotICAgICAqLwotICAgIEBTdXBwcmVzc1dhcm5pbmdzKCJkZXByZWNhdGlvbiIpCi0gICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZUZvbnRPYmplY3QoKSB7Ci0gICAgICAgIGlmIChtVHlwZWZhY2UgIT0gbnVsbCkgewotICAgICAgICAgICAgLy8gR2V0IHRoZSBmb250cyBmcm9tIHRoZSBUeXBlRmFjZSBvYmplY3QuCi0gICAgICAgICAgICBMaXN0PEZvbnQ+IGZvbnRzID0gbVR5cGVmYWNlLmdldEZvbnRzKCk7Ci0KLSAgICAgICAgICAgIC8vIGNyZWF0ZSBuZXcgZm9udCBvYmplY3RzIGFzIHdlbGwgYXMgRm9udE1ldHJpY3MsIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRleHQgc2l6ZQotICAgICAgICAgICAgLy8gYW5kIHNrZXcgaW5mby4KLSAgICAgICAgICAgIEFycmF5TGlzdDxGb250SW5mbz4gaW5mb0xpc3QgPSBuZXcgQXJyYXlMaXN0PEZvbnRJbmZvPihmb250cy5zaXplKCkpOwotICAgICAgICAgICAgZm9yIChGb250IGZvbnQgOiBmb250cykgewotICAgICAgICAgICAgICAgIEZvbnRJbmZvIGluZm8gPSBuZXcgRm9udEluZm8oKTsKLSAgICAgICAgICAgICAgICBpbmZvLm1Gb250ID0gZm9udC5kZXJpdmVGb250KG1UZXh0U2l6ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKG1UZXh0U2NhbGVYICE9IDEuMCB8fCBtVGV4dFNrZXdYICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogc3VwcG9ydCBza2V3Ci0gICAgICAgICAgICAgICAgICAgIGluZm8ubUZvbnQgPSBpbmZvLm1Gb250LmRlcml2ZUZvbnQobmV3IEFmZmluZVRyYW5zZm9ybSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVGV4dFNjYWxlWCwgbVRleHRTa2V3WCwgMCwgMSwgMCwgMCkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAvLyBUaGUgbWV0cmljcyBoZXJlIGRvbid0IGhhdmUgYW50aS1hbGlhc2luZyBzZXQuCi0gICAgICAgICAgICAgICAgaW5mby5tTWV0cmljcyA9IFRvb2xraXQuZ2V0RGVmYXVsdFRvb2xraXQoKS5nZXRGb250TWV0cmljcyhpbmZvLm1Gb250KTsKLQotICAgICAgICAgICAgICAgIGluZm9MaXN0LmFkZChpbmZvKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbUZvbnRzID0gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlTGlzdChpbmZvTGlzdCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKnBhY2thZ2UqLyBmbG9hdCBtZWFzdXJlVGV4dChjaGFyW10gdGV4dCwgaW50IGluZGV4LCBpbnQgY291bnQsIGJvb2xlYW4gaXNSdGwpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBCaWRpUmVuZGVyZXIobnVsbCwgdGhpcywgdGV4dCkucmVuZGVyVGV4dCgKLSAgICAgICAgICAgICAgICBpbmRleCwgaW5kZXggKyBjb3VudCwgaXNSdGwsIG51bGwsIDAsIGZhbHNlLCAwLCAwKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIGZsb2F0IGdldEZvbnRNZXRyaWNzKEZvbnRNZXRyaWNzIG1ldHJpY3MpIHsKLSAgICAgICAgaWYgKG1Gb250cy5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICBqYXZhLmF3dC5Gb250TWV0cmljcyBqYXZhTWV0cmljcyA9IG1Gb250cy5nZXQoMCkubU1ldHJpY3M7Ci0gICAgICAgICAgICBpZiAobWV0cmljcyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgLy8gQW5kcm9pZCBleHBlY3RzIG5lZ2F0aXZlIGFzY2VudCBzbyB3ZSBpbnZlcnQgdGhlIHZhbHVlIGZyb20gSmF2YS4KLSAgICAgICAgICAgICAgICBtZXRyaWNzLnRvcCA9IC0gamF2YU1ldHJpY3MuZ2V0TWF4QXNjZW50KCk7Ci0gICAgICAgICAgICAgICAgbWV0cmljcy5hc2NlbnQgPSAtIGphdmFNZXRyaWNzLmdldEFzY2VudCgpOwotICAgICAgICAgICAgICAgIG1ldHJpY3MuZGVzY2VudCA9IGphdmFNZXRyaWNzLmdldERlc2NlbnQoKTsKLSAgICAgICAgICAgICAgICBtZXRyaWNzLmJvdHRvbSA9IGphdmFNZXRyaWNzLmdldE1heERlc2NlbnQoKTsKLSAgICAgICAgICAgICAgICBtZXRyaWNzLmxlYWRpbmcgPSBqYXZhTWV0cmljcy5nZXRMZWFkaW5nKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBqYXZhTWV0cmljcy5nZXRIZWlnaHQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHByaXZhdGUgdm9pZCBzZXRUZXh0TG9jYWxlKFN0cmluZyBsb2NhbGUpIHsKLSAgICAgICAgbUxvY2FsZSA9IG5ldyBMb2NhbGUobG9jYWxlKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHNldEZsYWcoUGFpbnQgdGhpc1BhaW50LCBpbnQgZmxhZ01hc2ssIGJvb2xlYW4gZmxhZ1ZhbHVlKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgUGFpbnRfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUGFpbnQubU5hdGl2ZVBhaW50KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChmbGFnVmFsdWUpIHsKLSAgICAgICAgICAgIGRlbGVnYXRlLm1GbGFncyB8PSBmbGFnTWFzazsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRlbGVnYXRlLm1GbGFncyAmPSB+ZmxhZ01hc2s7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzUnRsKGludCBmbGFnKSB7Ci0gICAgICAgIHN3aXRjaChmbGFnKSB7Ci0gICAgICAgIGNhc2UgUGFpbnQuQklESV9SVEw6Ci0gICAgICAgIGNhc2UgUGFpbnQuQklESV9GT1JDRV9SVEw6Ci0gICAgICAgIGNhc2UgUGFpbnQuQklESV9ERUZBVUxUX1JUTDoKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9QYXRoRGFzaFBhdGhFZmZlY3RfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvUGF0aERhc2hQYXRoRWZmZWN0X0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0NDhmMGUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9QYXRoRGFzaFBhdGhFZmZlY3RfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuZ3JhcGhpY3M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRGVsZWdhdGVNYW5hZ2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotaW1wb3J0IGphdmEuYXd0LlN0cm9rZTsKLQotLyoqCi0gKiBEZWxlZ2F0ZSBpbXBsZW1lbnRpbmcgdGhlIG5hdGl2ZSBtZXRob2RzIG9mIGFuZHJvaWQuZ3JhcGhpY3MuUGF0aERhc2hQYXRoRWZmZWN0Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgUGF0aERhc2hQYXRoRWZmZWN0IGhhdmUgYmVlbgotICogcmVwbGFjZWQgYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICogVGhpcyBjbGFzcyBiZWhhdmVzIGxpa2UgdGhlIG9yaWdpbmFsIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGluIEphdmEsIGtlZXBpbmcgcHJldmlvdXNseQotICogbmF0aXZlIGRhdGEgaW50byBpdHMgb3duIG9iamVjdHMgYW5kIG1hcHBpbmcgdGhlbSB0byBpbnQgdGhhdCBhcmUgc2VudCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuCi0gKiBpdCBhbmQgdGhlIG9yaWdpbmFsIFBhdGhEYXNoUGF0aEVmZmVjdCBjbGFzcy4KLSAqCi0gKiBCZWNhdXNlIHRoaXMgZXh0ZW5kcyB7QGxpbmsgUGF0aEVmZmVjdF9EZWxlZ2F0ZX0sIHRoZXJlJ3Mgbm8gbmVlZCB0byB1c2UgYSB7QGxpbmsgRGVsZWdhdGVNYW5hZ2VyfSwKLSAqIGFzIGFsbCB0aGUgU2hhZGVyIGNsYXNzZXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgbWFuYWdlciBvd25lZCBieSB7QGxpbmsgUGF0aEVmZmVjdF9EZWxlZ2F0ZX0uCi0gKgotICogQHNlZSBQYXRoRWZmZWN0X0RlbGVnYXRlCi0gKgotICovCi1wdWJsaWMgY2xhc3MgUGF0aERhc2hQYXRoRWZmZWN0X0RlbGVnYXRlIGV4dGVuZHMgUGF0aEVmZmVjdF9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cm9rZSBnZXRTdHJva2UoUGFpbnRfRGVsZWdhdGUgcGFpbnQpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNTdXBwb3J0ZWQoKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCkgewotICAgICAgICByZXR1cm4gIlBhdGggRGFzaCBQYXRoIEVmZmVjdHMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gTGF5b3V0IFByZXZpZXcgbW9kZS4iOwotICAgIH0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVDcmVhdGUoaW50IG5hdGl2ZV9wYXRoLCBmbG9hdCBhZHZhbmNlLCBmbG9hdCBwaGFzZSwKLSAgICAgICAgICAgIGludCBuYXRpdmVfc3R5bGUpIHsKLSAgICAgICAgUGF0aERhc2hQYXRoRWZmZWN0X0RlbGVnYXRlIG5ld0RlbGVnYXRlID0gbmV3IFBhdGhEYXNoUGF0aEVmZmVjdF9EZWxlZ2F0ZSgpOwotICAgICAgICByZXR1cm4gc01hbmFnZXIuYWRkTmV3RGVsZWdhdGUobmV3RGVsZWdhdGUpOwotICAgIH0KLQotICAgIC8vIC0tLS0gUHJpdmF0ZSBkZWxlZ2F0ZS9oZWxwZXIgbWV0aG9kcyAtLS0tCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1BhdGhFZmZlY3RfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvUGF0aEVmZmVjdF9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDJiNmRlLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvUGF0aEVmZmVjdF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgamF2YS5hd3QuU3Ryb2tlOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5QYXRoRWZmZWN0Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgUGF0aEVmZmVjdCBoYXZlIGJlZW4gcmVwbGFjZWQKLSAqIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIFRoaXMgY2xhc3MgYmVoYXZlcyBsaWtlIHRoZSBvcmlnaW5hbCBuYXRpdmUgaW1wbGVtZW50YXRpb24sIGJ1dCBpbiBKYXZhLCBrZWVwaW5nIHByZXZpb3VzbHkKLSAqIG5hdGl2ZSBkYXRhIGludG8gaXRzIG93biBvYmplY3RzIGFuZCBtYXBwaW5nIHRoZW0gdG8gaW50IHRoYXQgYXJlIHNlbnQgYmFjayBhbmQgZm9ydGggYmV0d2VlbgotICogaXQgYW5kIHRoZSBvcmlnaW5hbCBQYXRoRWZmZWN0IGNsYXNzLgotICoKLSAqIFRoaXMgYWxzbyBzZXJ2ZSBhcyBhIGJhc2UgY2xhc3MgZm9yIGFsbCBQYXRoRWZmZWN0IGRlbGVnYXRlIGNsYXNzZXMuCi0gKgotICogQHNlZSBEZWxlZ2F0ZU1hbmFnZXIKLSAqCi0gKi8KLXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQYXRoRWZmZWN0X0RlbGVnYXRlIHsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgbWFuYWdlciAtLS0tCi0gICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBEZWxlZ2F0ZU1hbmFnZXI8UGF0aEVmZmVjdF9EZWxlZ2F0ZT4gc01hbmFnZXIgPQotICAgICAgICAgICAgbmV3IERlbGVnYXRlTWFuYWdlcjxQYXRoRWZmZWN0X0RlbGVnYXRlPihQYXRoRWZmZWN0X0RlbGVnYXRlLmNsYXNzKTsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgaGVscGVyIGRhdGEgLS0tLQotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBkYXRhIC0tLS0KLQotICAgIC8vIC0tLS0gUHVibGljIEhlbHBlciBtZXRob2RzIC0tLS0KLQotICAgIHB1YmxpYyBzdGF0aWMgUGF0aEVmZmVjdF9EZWxlZ2F0ZSBnZXREZWxlZ2F0ZShpbnQgbmF0aXZlU2hhZGVyKSB7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVTaGFkZXIpOwotICAgIH0KLQotICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJva2UgZ2V0U3Ryb2tlKFBhaW50X0RlbGVnYXRlIHBhaW50KTsKLSAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiBpc1N1cHBvcnRlZCgpOwotICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmcgZ2V0U3VwcG9ydE1lc3NhZ2UoKTsKLQotCi0gICAgLy8gLS0tLSBuYXRpdmUgbWV0aG9kcyAtLS0tCi0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVEZXN0cnVjdG9yKGludCBuYXRpdmVfcGF0aGVmZmVjdCkgewotICAgICAgICBzTWFuYWdlci5yZW1vdmVKYXZhUmVmZXJlbmNlRm9yKG5hdGl2ZV9wYXRoZWZmZWN0KTsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1BhdGhfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvUGF0aF9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NGYxOWQzLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvUGF0aF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsODE1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuZ3JhcGhpY3M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuTGF5b3V0TG9nOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5QYXRoLkRpcmVjdGlvbjsKLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlBhdGguRmlsbFR5cGU7Ci0KLWltcG9ydCBqYXZhLmF3dC5TaGFwZTsKLWltcG9ydCBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybTsKLWltcG9ydCBqYXZhLmF3dC5nZW9tLkFyYzJEOwotaW1wb3J0IGphdmEuYXd0Lmdlb20uQXJlYTsKLWltcG9ydCBqYXZhLmF3dC5nZW9tLkVsbGlwc2UyRDsKLWltcG9ydCBqYXZhLmF3dC5nZW9tLkdlbmVyYWxQYXRoOwotaW1wb3J0IGphdmEuYXd0Lmdlb20uUGF0aEl0ZXJhdG9yOwotaW1wb3J0IGphdmEuYXd0Lmdlb20uUG9pbnQyRDsKLWltcG9ydCBqYXZhLmF3dC5nZW9tLlJlY3RhbmdsZTJEOwotaW1wb3J0IGphdmEuYXd0Lmdlb20uUm91bmRSZWN0YW5nbGUyRDsKLQotLyoqCi0gKiBEZWxlZ2F0ZSBpbXBsZW1lbnRpbmcgdGhlIG5hdGl2ZSBtZXRob2RzIG9mIGFuZHJvaWQuZ3JhcGhpY3MuUGF0aAotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsIG5hdGl2ZSBtZXRob2RzIG9mIFBhdGggaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgUGF0aCBjbGFzcy4KLSAqCi0gKiBAc2VlIERlbGVnYXRlTWFuYWdlcgotICoKLSAqLwotcHVibGljIGZpbmFsIGNsYXNzIFBhdGhfRGVsZWdhdGUgewotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBtYW5hZ2VyIC0tLS0KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBEZWxlZ2F0ZU1hbmFnZXI8UGF0aF9EZWxlZ2F0ZT4gc01hbmFnZXIgPQotICAgICAgICAgICAgbmV3IERlbGVnYXRlTWFuYWdlcjxQYXRoX0RlbGVnYXRlPihQYXRoX0RlbGVnYXRlLmNsYXNzKTsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgZGF0YSAtLS0tCi0gICAgcHJpdmF0ZSBGaWxsVHlwZSBtRmlsbFR5cGUgPSBGaWxsVHlwZS5XSU5ESU5HOwotICAgIHByaXZhdGUgR2VuZXJhbFBhdGggbVBhdGggPSBuZXcgR2VuZXJhbFBhdGgoKTsKLQotICAgIHByaXZhdGUgZmxvYXQgbUxhc3RYID0gMDsKLSAgICBwcml2YXRlIGZsb2F0IG1MYXN0WSA9IDA7Ci0KLSAgICAvLyAtLS0tIFB1YmxpYyBIZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBwdWJsaWMgc3RhdGljIFBhdGhfRGVsZWdhdGUgZ2V0RGVsZWdhdGUoaW50IG5QYXRoKSB7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5nZXREZWxlZ2F0ZShuUGF0aCk7Ci0gICAgfQotCi0gICAgcHVibGljIFNoYXBlIGdldEphdmFTaGFwZSgpIHsKLSAgICAgICAgcmV0dXJuIG1QYXRoOwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHNldEphdmFTaGFwZShTaGFwZSBzaGFwZSkgewotICAgICAgICBtUGF0aC5yZXNldCgpOwotICAgICAgICBtUGF0aC5hcHBlbmQoc2hhcGUsIGZhbHNlIC8qY29ubmVjdCovKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKLSAgICAgICAgbVBhdGgucmVzZXQoKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBzZXRQYXRoSXRlcmF0b3IoUGF0aEl0ZXJhdG9yIGl0ZXJhdG9yKSB7Ci0gICAgICAgIG1QYXRoLnJlc2V0KCk7Ci0gICAgICAgIG1QYXRoLmFwcGVuZChpdGVyYXRvciwgZmFsc2UgLypjb25uZWN0Ki8pOwotICAgIH0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBpbml0MSgpIHsKLSAgICAgICAgLy8gY3JlYXRlIHRoZSBkZWxlZ2F0ZQotICAgICAgICBQYXRoX0RlbGVnYXRlIG5ld0RlbGVnYXRlID0gbmV3IFBhdGhfRGVsZWdhdGUoKTsKLQotICAgICAgICByZXR1cm4gc01hbmFnZXIuYWRkTmV3RGVsZWdhdGUobmV3RGVsZWdhdGUpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgaW5pdDIoaW50IG5QYXRoKSB7Ci0gICAgICAgIC8vIGNyZWF0ZSB0aGUgZGVsZWdhdGUKLSAgICAgICAgUGF0aF9EZWxlZ2F0ZSBuZXdEZWxlZ2F0ZSA9IG5ldyBQYXRoX0RlbGVnYXRlKCk7Ci0KLSAgICAgICAgLy8gZ2V0IHRoZSBkZWxlZ2F0ZSB0byBjb3B5LCB3aGljaCBjb3VsZCBiZSBudWxsIGlmIG5QYXRoIGlzIDAKLSAgICAgICAgUGF0aF9EZWxlZ2F0ZSBwYXRoRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuUGF0aCk7Ci0gICAgICAgIGlmIChwYXRoRGVsZWdhdGUgIT0gbnVsbCkgewotICAgICAgICAgICAgbmV3RGVsZWdhdGUuc2V0KHBhdGhEZWxlZ2F0ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gc01hbmFnZXIuYWRkTmV3RGVsZWdhdGUobmV3RGVsZWdhdGUpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9yZXNldChpbnQgblBhdGgpIHsKLSAgICAgICAgUGF0aF9EZWxlZ2F0ZSBwYXRoRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuUGF0aCk7Ci0gICAgICAgIGlmIChwYXRoRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgcGF0aERlbGVnYXRlLm1QYXRoLnJlc2V0KCk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX3Jld2luZChpbnQgblBhdGgpIHsKLSAgICAgICAgLy8gY2FsbCBvdXQgdG8gcmVzZXQgc2luY2UgdGhlcmUncyBub3RoaW5nIHRvIG9wdGltaXplIGluCi0gICAgICAgIC8vIHRlcm1zIG9mIGRhdGEgc3RydWN0cy4KLSAgICAgICAgbmF0aXZlX3Jlc2V0KG5QYXRoKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfc2V0KGludCBuYXRpdmVfZHN0LCBpbnQgbmF0aXZlX3NyYykgewotICAgICAgICBQYXRoX0RlbGVnYXRlIHBhdGhEc3REZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9kc3QpOwotICAgICAgICBpZiAocGF0aERzdERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIFBhdGhfRGVsZWdhdGUgcGF0aFNyY0RlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX3NyYyk7Ci0gICAgICAgIGlmIChwYXRoU3JjRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgcGF0aERzdERlbGVnYXRlLnNldChwYXRoU3JjRGVsZWdhdGUpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlX2dldEZpbGxUeXBlKGludCBuUGF0aCkgewotICAgICAgICBQYXRoX0RlbGVnYXRlIHBhdGhEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5QYXRoKTsKLSAgICAgICAgaWYgKHBhdGhEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBwYXRoRGVsZWdhdGUubUZpbGxUeXBlLm5hdGl2ZUludDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfc2V0RmlsbFR5cGUoaW50IG5QYXRoLCBpbnQgZnQpIHsKLSAgICAgICAgUGF0aF9EZWxlZ2F0ZSBwYXRoRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuUGF0aCk7Ci0gICAgICAgIGlmIChwYXRoRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgcGF0aERlbGVnYXRlLm1GaWxsVHlwZSA9IFBhdGguc0ZpbGxUeXBlQXJyYXlbZnRdOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZV9pc0VtcHR5KGludCBuUGF0aCkgewotICAgICAgICBQYXRoX0RlbGVnYXRlIHBhdGhEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5QYXRoKTsKLSAgICAgICAgaWYgKHBhdGhEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBwYXRoRGVsZWdhdGUuaXNFbXB0eSgpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZV9pc1JlY3QoaW50IG5QYXRoLCBSZWN0RiByZWN0KSB7Ci0gICAgICAgIFBhdGhfRGVsZWdhdGUgcGF0aERlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoblBhdGgpOwotICAgICAgICBpZiAocGF0aERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGNyZWF0ZSBhbiBBcmVhIHRoYXQgY2FuIHRlc3QgaWYgdGhlIHBhdGggaXMgYSByZWN0Ci0gICAgICAgIEFyZWEgYXJlYSA9IG5ldyBBcmVhKHBhdGhEZWxlZ2F0ZS5tUGF0aCk7Ci0gICAgICAgIGlmIChhcmVhLmlzUmVjdGFuZ3VsYXIoKSkgewotICAgICAgICAgICAgaWYgKHJlY3QgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHBhdGhEZWxlZ2F0ZS5maWxsQm91bmRzKHJlY3QpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfY29tcHV0ZUJvdW5kcyhpbnQgblBhdGgsIFJlY3RGIGJvdW5kcykgewotICAgICAgICBQYXRoX0RlbGVnYXRlIHBhdGhEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5QYXRoKTsKLSAgICAgICAgaWYgKHBhdGhEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBwYXRoRGVsZWdhdGUuZmlsbEJvdW5kcyhib3VuZHMpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9pbmNSZXNlcnZlKGludCBuUGF0aCwgaW50IGV4dHJhUHRDb3VudCkgewotICAgICAgICAvLyBzaW5jZSB3ZSB1c2UgYSBqYXZhMkQgcGF0aCwgdGhlcmUncyBubyB3YXkgdG8gcHJlLWFsbG9jYXRlIG5ldyBwb2ludHMsCi0gICAgICAgIC8vIHNvIHdlIGRvIG5vdGhpbmcuCi0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX21vdmVUbyhpbnQgblBhdGgsIGZsb2F0IHgsIGZsb2F0IHkpIHsKLSAgICAgICAgUGF0aF9EZWxlZ2F0ZSBwYXRoRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuUGF0aCk7Ci0gICAgICAgIGlmIChwYXRoRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgcGF0aERlbGVnYXRlLm1vdmVUbyh4LCB5KTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfck1vdmVUbyhpbnQgblBhdGgsIGZsb2F0IGR4LCBmbG9hdCBkeSkgewotICAgICAgICBQYXRoX0RlbGVnYXRlIHBhdGhEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5QYXRoKTsKLSAgICAgICAgaWYgKHBhdGhEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBwYXRoRGVsZWdhdGUuck1vdmVUbyhkeCwgZHkpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9saW5lVG8oaW50IG5QYXRoLCBmbG9hdCB4LCBmbG9hdCB5KSB7Ci0gICAgICAgIFBhdGhfRGVsZWdhdGUgcGF0aERlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoblBhdGgpOwotICAgICAgICBpZiAocGF0aERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHBhdGhEZWxlZ2F0ZS5saW5lVG8oeCwgeSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX3JMaW5lVG8oaW50IG5QYXRoLCBmbG9hdCBkeCwgZmxvYXQgZHkpIHsKLSAgICAgICAgUGF0aF9EZWxlZ2F0ZSBwYXRoRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuUGF0aCk7Ci0gICAgICAgIGlmIChwYXRoRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgcGF0aERlbGVnYXRlLnJMaW5lVG8oZHgsIGR5KTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfcXVhZFRvKGludCBuUGF0aCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIpIHsKLSAgICAgICAgUGF0aF9EZWxlZ2F0ZSBwYXRoRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuUGF0aCk7Ci0gICAgICAgIGlmIChwYXRoRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgcGF0aERlbGVnYXRlLnF1YWRUbyh4MSwgeTEsIHgyLCB5Mik7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX3JRdWFkVG8oaW50IG5QYXRoLCBmbG9hdCBkeDEsIGZsb2F0IGR5MSwgZmxvYXQgZHgyLCBmbG9hdCBkeTIpIHsKLSAgICAgICAgUGF0aF9EZWxlZ2F0ZSBwYXRoRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuUGF0aCk7Ci0gICAgICAgIGlmIChwYXRoRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgcGF0aERlbGVnYXRlLnJRdWFkVG8oZHgxLCBkeTEsIGR4MiwgZHkyKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfY3ViaWNUbyhpbnQgblBhdGgsIGZsb2F0IHgxLCBmbG9hdCB5MSwKLSAgICAgICAgICAgIGZsb2F0IHgyLCBmbG9hdCB5MiwgZmxvYXQgeDMsIGZsb2F0IHkzKSB7Ci0gICAgICAgIFBhdGhfRGVsZWdhdGUgcGF0aERlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoblBhdGgpOwotICAgICAgICBpZiAocGF0aERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHBhdGhEZWxlZ2F0ZS5jdWJpY1RvKHgxLCB5MSwgeDIsIHkyLCB4MywgeTMpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9yQ3ViaWNUbyhpbnQgblBhdGgsIGZsb2F0IHgxLCBmbG9hdCB5MSwKLSAgICAgICAgICAgIGZsb2F0IHgyLCBmbG9hdCB5MiwgZmxvYXQgeDMsIGZsb2F0IHkzKSB7Ci0gICAgICAgIFBhdGhfRGVsZWdhdGUgcGF0aERlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoblBhdGgpOwotICAgICAgICBpZiAocGF0aERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHBhdGhEZWxlZ2F0ZS5yQ3ViaWNUbyh4MSwgeTEsIHgyLCB5MiwgeDMsIHkzKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfYXJjVG8oaW50IG5QYXRoLCBSZWN0RiBvdmFsLAotICAgICAgICAgICAgICAgICAgICBmbG9hdCBzdGFydEFuZ2xlLCBmbG9hdCBzd2VlcEFuZ2xlLCBib29sZWFuIGZvcmNlTW92ZVRvKSB7Ci0gICAgICAgIFBhdGhfRGVsZWdhdGUgcGF0aERlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoblBhdGgpOwotICAgICAgICBpZiAocGF0aERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHBhdGhEZWxlZ2F0ZS5hcmNUbyhvdmFsLCBzdGFydEFuZ2xlLCBzd2VlcEFuZ2xlLCBmb3JjZU1vdmVUbyk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2Nsb3NlKGludCBuUGF0aCkgewotICAgICAgICBQYXRoX0RlbGVnYXRlIHBhdGhEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5QYXRoKTsKLSAgICAgICAgaWYgKHBhdGhEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBwYXRoRGVsZWdhdGUuY2xvc2UoKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfYWRkUmVjdChpbnQgblBhdGgsIFJlY3RGIHJlY3QsIGludCBkaXIpIHsKLSAgICAgICAgUGF0aF9EZWxlZ2F0ZSBwYXRoRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuUGF0aCk7Ci0gICAgICAgIGlmIChwYXRoRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgcGF0aERlbGVnYXRlLmFkZFJlY3QocmVjdC5sZWZ0LCByZWN0LnRvcCwgcmVjdC5yaWdodCwgcmVjdC5ib3R0b20sIGRpcik7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2FkZFJlY3QoaW50IG5QYXRoLAotICAgICAgICAgICAgZmxvYXQgbGVmdCwgZmxvYXQgdG9wLCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBpbnQgZGlyKSB7Ci0gICAgICAgIFBhdGhfRGVsZWdhdGUgcGF0aERlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoblBhdGgpOwotICAgICAgICBpZiAocGF0aERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHBhdGhEZWxlZ2F0ZS5hZGRSZWN0KGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSwgZGlyKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfYWRkT3ZhbChpbnQgblBhdGgsIFJlY3RGIG92YWwsIGludCBkaXIpIHsKLSAgICAgICAgUGF0aF9EZWxlZ2F0ZSBwYXRoRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuUGF0aCk7Ci0gICAgICAgIGlmIChwYXRoRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgcGF0aERlbGVnYXRlLm1QYXRoLmFwcGVuZChuZXcgRWxsaXBzZTJELkZsb2F0KAotICAgICAgICAgICAgICAgIG92YWwubGVmdCwgb3ZhbC50b3AsIG92YWwud2lkdGgoKSwgb3ZhbC5oZWlnaHQoKSksIGZhbHNlKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfYWRkQ2lyY2xlKGludCBuUGF0aCwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgcmFkaXVzLCBpbnQgZGlyKSB7Ci0gICAgICAgIFBhdGhfRGVsZWdhdGUgcGF0aERlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoblBhdGgpOwotICAgICAgICBpZiAocGF0aERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGJlY2F1c2UgeC95IGlzIHRoZSBjZW50ZXIgb2YgdGhlIGNpcmNsZSwgbmVlZCB0byBvZmZzZXQgdGhpcyBieSB0aGUgcmFkaXVzCi0gICAgICAgIHBhdGhEZWxlZ2F0ZS5tUGF0aC5hcHBlbmQobmV3IEVsbGlwc2UyRC5GbG9hdCgKLSAgICAgICAgICAgICAgICB4IC0gcmFkaXVzLCB5IC0gcmFkaXVzLCByYWRpdXMgKiAyLCByYWRpdXMgKiAyKSwgZmFsc2UpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9hZGRBcmMoaW50IG5QYXRoLCBSZWN0RiBvdmFsLAotICAgICAgICAgICAgZmxvYXQgc3RhcnRBbmdsZSwgZmxvYXQgc3dlZXBBbmdsZSkgewotICAgICAgICBQYXRoX0RlbGVnYXRlIHBhdGhEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5QYXRoKTsKLSAgICAgICAgaWYgKHBhdGhEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBiZWNhdXNlIHgveSBpcyB0aGUgY2VudGVyIG9mIHRoZSBjaXJjbGUsIG5lZWQgdG8gb2Zmc2V0IHRoaXMgYnkgdGhlIHJhZGl1cwotICAgICAgICBwYXRoRGVsZWdhdGUubVBhdGguYXBwZW5kKG5ldyBBcmMyRC5GbG9hdCgKLSAgICAgICAgICAgICAgICBvdmFsLmxlZnQsIG92YWwudG9wLCBvdmFsLndpZHRoKCksIG92YWwuaGVpZ2h0KCksCi0gICAgICAgICAgICAgICAgLXN0YXJ0QW5nbGUsIC1zd2VlcEFuZ2xlLCBBcmMyRC5PUEVOKSwgZmFsc2UpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZV9hZGRSb3VuZFJlY3QoCi0gICAgICAgICAgICBpbnQgblBhdGgsIFJlY3RGIHJlY3QsIGZsb2F0IHJ4LCBmbG9hdCByeSwgaW50IGRpcikgewotCi0gICAgICAgIFBhdGhfRGVsZWdhdGUgcGF0aERlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoblBhdGgpOwotICAgICAgICBpZiAocGF0aERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHBhdGhEZWxlZ2F0ZS5tUGF0aC5hcHBlbmQobmV3IFJvdW5kUmVjdGFuZ2xlMkQuRmxvYXQoCi0gICAgICAgICAgICAgICAgcmVjdC5sZWZ0LCByZWN0LnRvcCwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpLCByeCAqIDIsIHJ5ICogMiksIGZhbHNlKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfYWRkUm91bmRSZWN0KGludCBuUGF0aCwgUmVjdEYgcmVjdCwgZmxvYXRbXSByYWRpaSwgaW50IGRpcikgewotICAgICAgICAvLyBKYXZhMkQgZG9lc24ndCBzdXBwb3J0IGRpZmZlcmVudCByb3VuZGVkIGNvcm5lcnMgaW4gZWFjaCBjb3JuZXIsIHNvIGp1c3QgdXNlIHRoZQotICAgICAgICAvLyBmaXJzdCB2YWx1ZS4KLSAgICAgICAgbmF0aXZlX2FkZFJvdW5kUmVjdChuUGF0aCwgcmVjdCwgcmFkaWlbMF0sIHJhZGlpWzFdLCBkaXIpOwotCi0gICAgICAgIC8vIHRoZXJlIGNhbiBiZSBhIGNhc2Ugd2hlcmUgdGhpcyBBUEkgaXMgdXNlZCBidXQgd2l0aCBzaW1pbGFyIHZhbHVlcyBmb3IgYWxsIGNvcm5lcnMsIHNvCi0gICAgICAgIC8vIGluIHRoYXQgY2FzZSB3ZSBkb24ndCB3YXJuLgotICAgICAgICAvLyB3ZSBvbmx5IGNhcmUgaWYgMiBjb3JuZXJzIGFyZSBkaWZmZXJlbnQgc28ganVzdCBjb21wYXJlIHRvIHRoZSBuZXh0IG9uZS4KLSAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgMyA7IGkrKykgewotICAgICAgICAgICAgaWYgKHJhZGlpW2kgKiAyXSAhPSByYWRpaVsoaSArIDEpICogMl0gfHwgcmFkaWlbaSAqIDIgKyAxXSAhPSByYWRpaVsoaSArIDEpICogMiArIDFdKSB7Ci0gICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX1VOU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICAgICAgICAgIkRpZmZlcmVudCBjb3JuZXIgc2l6ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gUGF0aC5hZGRSb3VuZFJlY3QuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2FkZFBhdGgoaW50IG5QYXRoLCBpbnQgc3JjLCBmbG9hdCBkeCwgZmxvYXQgZHkpIHsKLSAgICAgICAgYWRkUGF0aChuUGF0aCwgc3JjLCBBZmZpbmVUcmFuc2Zvcm0uZ2V0VHJhbnNsYXRlSW5zdGFuY2UoZHgsIGR5KSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX2FkZFBhdGgoaW50IG5QYXRoLCBpbnQgc3JjKSB7Ci0gICAgICAgIGFkZFBhdGgoblBhdGgsIHNyYywgbnVsbCAvKnRyYW5zZm9ybSovKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfYWRkUGF0aChpbnQgblBhdGgsIGludCBzcmMsIGludCBtYXRyaXgpIHsKLSAgICAgICAgTWF0cml4X0RlbGVnYXRlIG1hdHJpeERlbGVnYXRlID0gTWF0cml4X0RlbGVnYXRlLmdldERlbGVnYXRlKG1hdHJpeCk7Ci0gICAgICAgIGlmIChtYXRyaXhEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBhZGRQYXRoKG5QYXRoLCBzcmMsIG1hdHJpeERlbGVnYXRlLmdldEFmZmluZVRyYW5zZm9ybSgpKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfb2Zmc2V0KGludCBuUGF0aCwgZmxvYXQgZHgsIGZsb2F0IGR5LCBpbnQgZHN0X3BhdGgpIHsKLSAgICAgICAgUGF0aF9EZWxlZ2F0ZSBwYXRoRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuUGF0aCk7Ci0gICAgICAgIGlmIChwYXRoRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gY291bGQgYmUgbnVsbCBpZiB0aGUgaW50IGlzIDA7Ci0gICAgICAgIFBhdGhfRGVsZWdhdGUgZHN0RGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShkc3RfcGF0aCk7Ci0KLSAgICAgICAgcGF0aERlbGVnYXRlLm9mZnNldChkeCwgZHksIGRzdERlbGVnYXRlKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfb2Zmc2V0KGludCBuUGF0aCwgZmxvYXQgZHgsIGZsb2F0IGR5KSB7Ci0gICAgICAgIG5hdGl2ZV9vZmZzZXQoblBhdGgsIGR4LCBkeSwgMCk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlX3NldExhc3RQb2ludChpbnQgblBhdGgsIGZsb2F0IGR4LCBmbG9hdCBkeSkgewotICAgICAgICBQYXRoX0RlbGVnYXRlIHBhdGhEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5QYXRoKTsKLSAgICAgICAgaWYgKHBhdGhEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBwYXRoRGVsZWdhdGUubUxhc3RYID0gZHg7Ci0gICAgICAgIHBhdGhEZWxlZ2F0ZS5tTGFzdFkgPSBkeTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfdHJhbnNmb3JtKGludCBuUGF0aCwgaW50IG1hdHJpeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkc3RfcGF0aCkgewotICAgICAgICBQYXRoX0RlbGVnYXRlIHBhdGhEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5QYXRoKTsKLSAgICAgICAgaWYgKHBhdGhEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBNYXRyaXhfRGVsZWdhdGUgbWF0cml4RGVsZWdhdGUgPSBNYXRyaXhfRGVsZWdhdGUuZ2V0RGVsZWdhdGUobWF0cml4KTsKLSAgICAgICAgaWYgKG1hdHJpeERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIHRoaXMgY2FuIGJlIG51bGwgaWYgZHN0X3BhdGggaXMgMAotICAgICAgICBQYXRoX0RlbGVnYXRlIGRzdERlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoZHN0X3BhdGgpOwotCi0gICAgICAgIHBhdGhEZWxlZ2F0ZS50cmFuc2Zvcm0obWF0cml4RGVsZWdhdGUsIGRzdERlbGVnYXRlKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVfdHJhbnNmb3JtKGludCBuUGF0aCwgaW50IG1hdHJpeCkgewotICAgICAgICBuYXRpdmVfdHJhbnNmb3JtKG5QYXRoLCBtYXRyaXgsIDApOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIGZpbmFsaXplcihpbnQgblBhdGgpIHsKLSAgICAgICAgc01hbmFnZXIucmVtb3ZlSmF2YVJlZmVyZW5jZUZvcihuUGF0aCk7Ci0gICAgfQotCi0KLSAgICAvLyAtLS0tIFByaXZhdGUgaGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgcHJpdmF0ZSB2b2lkIHNldChQYXRoX0RlbGVnYXRlIGRlbGVnYXRlKSB7Ci0gICAgICAgIG1QYXRoLnJlc2V0KCk7Ci0gICAgICAgIHNldEZpbGxUeXBlKGRlbGVnYXRlLm1GaWxsVHlwZSk7Ci0gICAgICAgIG1QYXRoLmFwcGVuZChkZWxlZ2F0ZS5tUGF0aCwgZmFsc2UgLypjb25uZWN0Ki8pOwotICAgIH0KLQotICAgIHByaXZhdGUgdm9pZCBzZXRGaWxsVHlwZShGaWxsVHlwZSBmaWxsVHlwZSkgewotICAgICAgICBtRmlsbFR5cGUgPSBmaWxsVHlwZTsKLSAgICAgICAgbVBhdGguc2V0V2luZGluZ1J1bGUoZ2V0V2luZGluZ1J1bGUoZmlsbFR5cGUpKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBKYXZhMkQgd2luZGluZyBydWxlcyBtYXRjaGluZyBhIGdpdmVuIEFuZHJvaWQge0BsaW5rIEZpbGxUeXBlfS4KLSAgICAgKiBAcGFyYW0gdHlwZSB0aGUgYW5kcm9pZCBmaWxsIHR5cGUKLSAgICAgKiBAcmV0dXJuIHRoZSBtYXRjaGluZyBqYXZhMmQgd2luZGluZyBydWxlLgotICAgICAqLwotICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRXaW5kaW5nUnVsZShGaWxsVHlwZSB0eXBlKSB7Ci0gICAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICAgICAgY2FzZSBXSU5ESU5HOgotICAgICAgICAgICAgY2FzZSBJTlZFUlNFX1dJTkRJTkc6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEdlbmVyYWxQYXRoLldJTkRfTk9OX1pFUk87Ci0gICAgICAgICAgICBjYXNlIEVWRU5fT0REOgotICAgICAgICAgICAgY2FzZSBJTlZFUlNFX0VWRU5fT0REOgotICAgICAgICAgICAgICAgIHJldHVybiBHZW5lcmFsUGF0aC5XSU5EX0VWRU5fT0REOwotICAgICAgICB9Ci0KLSAgICAgICAgYXNzZXJ0IGZhbHNlOwotICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBzdGF0aWMgRGlyZWN0aW9uIGdldERpcmVjdGlvbihpbnQgZGlyZWN0aW9uKSB7Ci0gICAgICAgIGZvciAoRGlyZWN0aW9uIGQgOiBEaXJlY3Rpb24udmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gZC5uYXRpdmVJbnQpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGFzc2VydCBmYWxzZTsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBhZGRQYXRoKGludCBkZXN0UGF0aCwgaW50IHNyY1BhdGgsIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm0pIHsKLSAgICAgICAgUGF0aF9EZWxlZ2F0ZSBkZXN0UGF0aERlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoZGVzdFBhdGgpOwotICAgICAgICBpZiAoZGVzdFBhdGhEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBQYXRoX0RlbGVnYXRlIHNyY1BhdGhEZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKHNyY1BhdGgpOwotICAgICAgICBpZiAoc3JjUGF0aERlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0cmFuc2Zvcm0gIT0gbnVsbCkgewotICAgICAgICAgICAgZGVzdFBhdGhEZWxlZ2F0ZS5tUGF0aC5hcHBlbmQoCi0gICAgICAgICAgICAgICAgICAgIHNyY1BhdGhEZWxlZ2F0ZS5tUGF0aC5nZXRQYXRoSXRlcmF0b3IodHJhbnNmb3JtKSwgZmFsc2UpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZGVzdFBhdGhEZWxlZ2F0ZS5tUGF0aC5hcHBlbmQoc3JjUGF0aERlbGVnYXRlLm1QYXRoLCBmYWxzZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgcGF0aCBpcyBlbXB0eS4KLSAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHBhdGggaXMgZW1wdHkuCi0gICAgICovCi0gICAgcHJpdmF0ZSBib29sZWFuIGlzRW1wdHkoKSB7Ci0gICAgICAgIHJldHVybiBtUGF0aC5nZXRDdXJyZW50UG9pbnQoKSA9PSBudWxsOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEZpbGxzIHRoZSBnaXZlbiB7QGxpbmsgUmVjdEZ9IHdpdGggdGhlIHBhdGggYm91bmRzLgotICAgICAqIEBwYXJhbSBib3VuZHMgdGhlIFJlY3RGIHRvIGJlIGZpbGxlZC4KLSAgICAgKi8KLSAgICBwcml2YXRlIHZvaWQgZmlsbEJvdW5kcyhSZWN0RiBib3VuZHMpIHsKLSAgICAgICAgUmVjdGFuZ2xlMkQgcmVjdCA9IG1QYXRoLmdldEJvdW5kczJEKCk7Ci0gICAgICAgIGJvdW5kcy5sZWZ0ID0gKGZsb2F0KXJlY3QuZ2V0TWluWCgpOwotICAgICAgICBib3VuZHMucmlnaHQgPSAoZmxvYXQpcmVjdC5nZXRNYXhYKCk7Ci0gICAgICAgIGJvdW5kcy50b3AgPSAoZmxvYXQpcmVjdC5nZXRNaW5ZKCk7Ci0gICAgICAgIGJvdW5kcy5ib3R0b20gPSAoZmxvYXQpcmVjdC5nZXRNYXhZKCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogU2V0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgY29udG91ciB0byB0aGUgcG9pbnQgKHgseSkuCi0gICAgICoKLSAgICAgKiBAcGFyYW0geCBUaGUgeC1jb29yZGluYXRlIG9mIHRoZSBzdGFydCBvZiBhIG5ldyBjb250b3VyCi0gICAgICogQHBhcmFtIHkgVGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgc3RhcnQgb2YgYSBuZXcgY29udG91cgotICAgICAqLwotICAgIHByaXZhdGUgdm9pZCBtb3ZlVG8oZmxvYXQgeCwgZmxvYXQgeSkgewotICAgICAgICBtUGF0aC5tb3ZlVG8obUxhc3RYID0geCwgbUxhc3RZID0geSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogU2V0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgY29udG91ciByZWxhdGl2ZSB0byB0aGUgbGFzdCBwb2ludCBvbiB0aGUKLSAgICAgKiBwcmV2aW91cyBjb250b3VyLiBJZiB0aGVyZSBpcyBubyBwcmV2aW91cyBjb250b3VyLCB0aGlzIGlzIHRyZWF0ZWQgdGhlCi0gICAgICogc2FtZSBhcyBtb3ZlVG8oKS4KLSAgICAgKgotICAgICAqIEBwYXJhbSBkeCBUaGUgYW1vdW50IHRvIGFkZCB0byB0aGUgeC1jb29yZGluYXRlIG9mIHRoZSBlbmQgb2YgdGhlCi0gICAgICogICAgICAgICAgIHByZXZpb3VzIGNvbnRvdXIsIHRvIHNwZWNpZnkgdGhlIHN0YXJ0IG9mIGEgbmV3IGNvbnRvdXIKLSAgICAgKiBAcGFyYW0gZHkgVGhlIGFtb3VudCB0byBhZGQgdG8gdGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgZW5kIG9mIHRoZQotICAgICAqICAgICAgICAgICBwcmV2aW91cyBjb250b3VyLCB0byBzcGVjaWZ5IHRoZSBzdGFydCBvZiBhIG5ldyBjb250b3VyCi0gICAgICovCi0gICAgcHJpdmF0ZSB2b2lkIHJNb3ZlVG8oZmxvYXQgZHgsIGZsb2F0IGR5KSB7Ci0gICAgICAgIGR4ICs9IG1MYXN0WDsKLSAgICAgICAgZHkgKz0gbUxhc3RZOwotICAgICAgICBtUGF0aC5tb3ZlVG8obUxhc3RYID0gZHgsIG1MYXN0WSA9IGR5KTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBBZGQgYSBsaW5lIGZyb20gdGhlIGxhc3QgcG9pbnQgdG8gdGhlIHNwZWNpZmllZCBwb2ludCAoeCx5KS4KLSAgICAgKiBJZiBubyBtb3ZlVG8oKSBjYWxsIGhhcyBiZWVuIG1hZGUgZm9yIHRoaXMgY29udG91ciwgdGhlIGZpcnN0IHBvaW50IGlzCi0gICAgICogYXV0b21hdGljYWxseSBzZXQgdG8gKDAsMCkuCi0gICAgICoKLSAgICAgKiBAcGFyYW0geCBUaGUgeC1jb29yZGluYXRlIG9mIHRoZSBlbmQgb2YgYSBsaW5lCi0gICAgICogQHBhcmFtIHkgVGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgZW5kIG9mIGEgbGluZQotICAgICAqLwotICAgIHByaXZhdGUgdm9pZCBsaW5lVG8oZmxvYXQgeCwgZmxvYXQgeSkgewotICAgICAgICBtUGF0aC5saW5lVG8obUxhc3RYID0geCwgbUxhc3RZID0geSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogU2FtZSBhcyBsaW5lVG8sIGJ1dCB0aGUgY29vcmRpbmF0ZXMgYXJlIGNvbnNpZGVyZWQgcmVsYXRpdmUgdG8gdGhlIGxhc3QKLSAgICAgKiBwb2ludCBvbiB0aGlzIGNvbnRvdXIuIElmIHRoZXJlIGlzIG5vIHByZXZpb3VzIHBvaW50LCB0aGVuIGEgbW92ZVRvKDAsMCkKLSAgICAgKiBpcyBpbnNlcnRlZCBhdXRvbWF0aWNhbGx5LgotICAgICAqCi0gICAgICogQHBhcmFtIGR4IFRoZSBhbW91bnQgdG8gYWRkIHRvIHRoZSB4LWNvb3JkaW5hdGUgb2YgdGhlIHByZXZpb3VzIHBvaW50IG9uCi0gICAgICogICAgICAgICAgIHRoaXMgY29udG91ciwgdG8gc3BlY2lmeSBhIGxpbmUKLSAgICAgKiBAcGFyYW0gZHkgVGhlIGFtb3VudCB0byBhZGQgdG8gdGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgcHJldmlvdXMgcG9pbnQgb24KLSAgICAgKiAgICAgICAgICAgdGhpcyBjb250b3VyLCB0byBzcGVjaWZ5IGEgbGluZQotICAgICAqLwotICAgIHByaXZhdGUgdm9pZCByTGluZVRvKGZsb2F0IGR4LCBmbG9hdCBkeSkgewotICAgICAgICBpZiAoaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBtUGF0aC5tb3ZlVG8obUxhc3RYID0gMCwgbUxhc3RZID0gMCk7Ci0gICAgICAgIH0KLSAgICAgICAgZHggKz0gbUxhc3RYOwotICAgICAgICBkeSArPSBtTGFzdFk7Ci0gICAgICAgIG1QYXRoLmxpbmVUbyhtTGFzdFggPSBkeCwgbUxhc3RZID0gZHkpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEFkZCBhIHF1YWRyYXRpYyBiZXppZXIgZnJvbSB0aGUgbGFzdCBwb2ludCwgYXBwcm9hY2hpbmcgY29udHJvbCBwb2ludAotICAgICAqICh4MSx5MSksIGFuZCBlbmRpbmcgYXQgKHgyLHkyKS4gSWYgbm8gbW92ZVRvKCkgY2FsbCBoYXMgYmVlbiBtYWRlIGZvcgotICAgICAqIHRoaXMgY29udG91ciwgdGhlIGZpcnN0IHBvaW50IGlzIGF1dG9tYXRpY2FsbHkgc2V0IHRvICgwLDApLgotICAgICAqCi0gICAgICogQHBhcmFtIHgxIFRoZSB4LWNvb3JkaW5hdGUgb2YgdGhlIGNvbnRyb2wgcG9pbnQgb24gYSBxdWFkcmF0aWMgY3VydmUKLSAgICAgKiBAcGFyYW0geTEgVGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgY29udHJvbCBwb2ludCBvbiBhIHF1YWRyYXRpYyBjdXJ2ZQotICAgICAqIEBwYXJhbSB4MiBUaGUgeC1jb29yZGluYXRlIG9mIHRoZSBlbmQgcG9pbnQgb24gYSBxdWFkcmF0aWMgY3VydmUKLSAgICAgKiBAcGFyYW0geTIgVGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgZW5kIHBvaW50IG9uIGEgcXVhZHJhdGljIGN1cnZlCi0gICAgICovCi0gICAgcHJpdmF0ZSB2b2lkIHF1YWRUbyhmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MikgewotICAgICAgICBtUGF0aC5xdWFkVG8oeDEsIHkxLCBtTGFzdFggPSB4MiwgbUxhc3RZID0geTIpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFNhbWUgYXMgcXVhZFRvLCBidXQgdGhlIGNvb3JkaW5hdGVzIGFyZSBjb25zaWRlcmVkIHJlbGF0aXZlIHRvIHRoZSBsYXN0Ci0gICAgICogcG9pbnQgb24gdGhpcyBjb250b3VyLiBJZiB0aGVyZSBpcyBubyBwcmV2aW91cyBwb2ludCwgdGhlbiBhIG1vdmVUbygwLDApCi0gICAgICogaXMgaW5zZXJ0ZWQgYXV0b21hdGljYWxseS4KLSAgICAgKgotICAgICAqIEBwYXJhbSBkeDEgVGhlIGFtb3VudCB0byBhZGQgdG8gdGhlIHgtY29vcmRpbmF0ZSBvZiB0aGUgbGFzdCBwb2ludCBvbgotICAgICAqICAgICAgICAgICAgdGhpcyBjb250b3VyLCBmb3IgdGhlIGNvbnRyb2wgcG9pbnQgb2YgYSBxdWFkcmF0aWMgY3VydmUKLSAgICAgKiBAcGFyYW0gZHkxIFRoZSBhbW91bnQgdG8gYWRkIHRvIHRoZSB5LWNvb3JkaW5hdGUgb2YgdGhlIGxhc3QgcG9pbnQgb24KLSAgICAgKiAgICAgICAgICAgIHRoaXMgY29udG91ciwgZm9yIHRoZSBjb250cm9sIHBvaW50IG9mIGEgcXVhZHJhdGljIGN1cnZlCi0gICAgICogQHBhcmFtIGR4MiBUaGUgYW1vdW50IHRvIGFkZCB0byB0aGUgeC1jb29yZGluYXRlIG9mIHRoZSBsYXN0IHBvaW50IG9uCi0gICAgICogICAgICAgICAgICB0aGlzIGNvbnRvdXIsIGZvciB0aGUgZW5kIHBvaW50IG9mIGEgcXVhZHJhdGljIGN1cnZlCi0gICAgICogQHBhcmFtIGR5MiBUaGUgYW1vdW50IHRvIGFkZCB0byB0aGUgeS1jb29yZGluYXRlIG9mIHRoZSBsYXN0IHBvaW50IG9uCi0gICAgICogICAgICAgICAgICB0aGlzIGNvbnRvdXIsIGZvciB0aGUgZW5kIHBvaW50IG9mIGEgcXVhZHJhdGljIGN1cnZlCi0gICAgICovCi0gICAgcHJpdmF0ZSB2b2lkIHJRdWFkVG8oZmxvYXQgZHgxLCBmbG9hdCBkeTEsIGZsb2F0IGR4MiwgZmxvYXQgZHkyKSB7Ci0gICAgICAgIGlmIChpc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG1QYXRoLm1vdmVUbyhtTGFzdFggPSAwLCBtTGFzdFkgPSAwKTsKLSAgICAgICAgfQotICAgICAgICBkeDEgKz0gbUxhc3RYOwotICAgICAgICBkeTEgKz0gbUxhc3RZOwotICAgICAgICBkeDIgKz0gbUxhc3RYOwotICAgICAgICBkeTIgKz0gbUxhc3RZOwotICAgICAgICBtUGF0aC5xdWFkVG8oZHgxLCBkeTEsIG1MYXN0WCA9IGR4MiwgbUxhc3RZID0gZHkyKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBBZGQgYSBjdWJpYyBiZXppZXIgZnJvbSB0aGUgbGFzdCBwb2ludCwgYXBwcm9hY2hpbmcgY29udHJvbCBwb2ludHMKLSAgICAgKiAoeDEseTEpIGFuZCAoeDIseTIpLCBhbmQgZW5kaW5nIGF0ICh4Myx5MykuIElmIG5vIG1vdmVUbygpIGNhbGwgaGFzIGJlZW4KLSAgICAgKiBtYWRlIGZvciB0aGlzIGNvbnRvdXIsIHRoZSBmaXJzdCBwb2ludCBpcyBhdXRvbWF0aWNhbGx5IHNldCB0byAoMCwwKS4KLSAgICAgKgotICAgICAqIEBwYXJhbSB4MSBUaGUgeC1jb29yZGluYXRlIG9mIHRoZSAxc3QgY29udHJvbCBwb2ludCBvbiBhIGN1YmljIGN1cnZlCi0gICAgICogQHBhcmFtIHkxIFRoZSB5LWNvb3JkaW5hdGUgb2YgdGhlIDFzdCBjb250cm9sIHBvaW50IG9uIGEgY3ViaWMgY3VydmUKLSAgICAgKiBAcGFyYW0geDIgVGhlIHgtY29vcmRpbmF0ZSBvZiB0aGUgMm5kIGNvbnRyb2wgcG9pbnQgb24gYSBjdWJpYyBjdXJ2ZQotICAgICAqIEBwYXJhbSB5MiBUaGUgeS1jb29yZGluYXRlIG9mIHRoZSAybmQgY29udHJvbCBwb2ludCBvbiBhIGN1YmljIGN1cnZlCi0gICAgICogQHBhcmFtIHgzIFRoZSB4LWNvb3JkaW5hdGUgb2YgdGhlIGVuZCBwb2ludCBvbiBhIGN1YmljIGN1cnZlCi0gICAgICogQHBhcmFtIHkzIFRoZSB5LWNvb3JkaW5hdGUgb2YgdGhlIGVuZCBwb2ludCBvbiBhIGN1YmljIGN1cnZlCi0gICAgICovCi0gICAgcHJpdmF0ZSB2b2lkIGN1YmljVG8oZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsCi0gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB4MywgZmxvYXQgeTMpIHsKLSAgICAgICAgbVBhdGguY3VydmVUbyh4MSwgeTEsIHgyLCB5MiwgbUxhc3RYID0geDMsIG1MYXN0WSA9IHkzKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBTYW1lIGFzIGN1YmljVG8sIGJ1dCB0aGUgY29vcmRpbmF0ZXMgYXJlIGNvbnNpZGVyZWQgcmVsYXRpdmUgdG8gdGhlCi0gICAgICogY3VycmVudCBwb2ludCBvbiB0aGlzIGNvbnRvdXIuIElmIHRoZXJlIGlzIG5vIHByZXZpb3VzIHBvaW50LCB0aGVuIGEKLSAgICAgKiBtb3ZlVG8oMCwwKSBpcyBpbnNlcnRlZCBhdXRvbWF0aWNhbGx5LgotICAgICAqLwotICAgIHByaXZhdGUgdm9pZCByQ3ViaWNUbyhmbG9hdCBkeDEsIGZsb2F0IGR5MSwgZmxvYXQgZHgyLCBmbG9hdCBkeTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZHgzLCBmbG9hdCBkeTMpIHsKLSAgICAgICAgaWYgKGlzRW1wdHkoKSkgewotICAgICAgICAgICAgbVBhdGgubW92ZVRvKG1MYXN0WCA9IDAsIG1MYXN0WSA9IDApOwotICAgICAgICB9Ci0gICAgICAgIGR4MSArPSBtTGFzdFg7Ci0gICAgICAgIGR5MSArPSBtTGFzdFk7Ci0gICAgICAgIGR4MiArPSBtTGFzdFg7Ci0gICAgICAgIGR5MiArPSBtTGFzdFk7Ci0gICAgICAgIGR4MyArPSBtTGFzdFg7Ci0gICAgICAgIGR5MyArPSBtTGFzdFk7Ci0gICAgICAgIG1QYXRoLmN1cnZlVG8oZHgxLCBkeTEsIGR4MiwgZHkyLCBtTGFzdFggPSBkeDMsIG1MYXN0WSA9IGR5Myk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQXBwZW5kIHRoZSBzcGVjaWZpZWQgYXJjIHRvIHRoZSBwYXRoIGFzIGEgbmV3IGNvbnRvdXIuIElmIHRoZSBzdGFydCBvZgotICAgICAqIHRoZSBwYXRoIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBwYXRoJ3MgY3VycmVudCBsYXN0IHBvaW50LCB0aGVuIGFuCi0gICAgICogYXV0b21hdGljIGxpbmVUbygpIGlzIGFkZGVkIHRvIGNvbm5lY3QgdGhlIGN1cnJlbnQgY29udG91ciB0byB0aGUKLSAgICAgKiBzdGFydCBvZiB0aGUgYXJjLiBIb3dldmVyLCBpZiB0aGUgcGF0aCBpcyBlbXB0eSwgdGhlbiB3ZSBjYWxsIG1vdmVUbygpCi0gICAgICogd2l0aCB0aGUgZmlyc3QgcG9pbnQgb2YgdGhlIGFyYy4gVGhlIHN3ZWVwIGFuZ2xlIGlzIHRyZWFkIG1vZCAzNjAuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gb3ZhbCAgICAgICAgVGhlIGJvdW5kcyBvZiBvdmFsIGRlZmluaW5nIHNoYXBlIGFuZCBzaXplIG9mIHRoZSBhcmMKLSAgICAgKiBAcGFyYW0gc3RhcnRBbmdsZSAgU3RhcnRpbmcgYW5nbGUgKGluIGRlZ3JlZXMpIHdoZXJlIHRoZSBhcmMgYmVnaW5zCi0gICAgICogQHBhcmFtIHN3ZWVwQW5nbGUgIFN3ZWVwIGFuZ2xlIChpbiBkZWdyZWVzKSBtZWFzdXJlZCBjbG9ja3dpc2UsIHRyZWF0ZWQKLSAgICAgKiAgICAgICAgICAgICAgICAgICAgbW9kIDM2MC4KLSAgICAgKiBAcGFyYW0gZm9yY2VNb3ZlVG8gSWYgdHJ1ZSwgYWx3YXlzIGJlZ2luIGEgbmV3IGNvbnRvdXIgd2l0aCB0aGUgYXJjCi0gICAgICovCi0gICAgcHJpdmF0ZSB2b2lkIGFyY1RvKFJlY3RGIG92YWwsIGZsb2F0IHN0YXJ0QW5nbGUsIGZsb2F0IHN3ZWVwQW5nbGUsIGJvb2xlYW4gZm9yY2VNb3ZlVG8pIHsKLSAgICAgICAgQXJjMkQgYXJjID0gbmV3IEFyYzJELkZsb2F0KG92YWwubGVmdCwgb3ZhbC50b3AsIG92YWwud2lkdGgoKSwgb3ZhbC5oZWlnaHQoKSwgLXN0YXJ0QW5nbGUsCi0gICAgICAgICAgICAgICAgLXN3ZWVwQW5nbGUsIEFyYzJELk9QRU4pOwotICAgICAgICBtUGF0aC5hcHBlbmQoYXJjLCB0cnVlIC8qY29ubmVjdCovKTsKLQotICAgICAgICByZXNldExhc3RQb2ludEZyb21QYXRoKCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ2xvc2UgdGhlIGN1cnJlbnQgY29udG91ci4gSWYgdGhlIGN1cnJlbnQgcG9pbnQgaXMgbm90IGVxdWFsIHRvIHRoZQotICAgICAqIGZpcnN0IHBvaW50IG9mIHRoZSBjb250b3VyLCBhIGxpbmUgc2VnbWVudCBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkLgotICAgICAqLwotICAgIHByaXZhdGUgdm9pZCBjbG9zZSgpIHsKLSAgICAgICAgbVBhdGguY2xvc2VQYXRoKCk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSB2b2lkIHJlc2V0TGFzdFBvaW50RnJvbVBhdGgoKSB7Ci0gICAgICAgIFBvaW50MkQgbGFzdCA9IG1QYXRoLmdldEN1cnJlbnRQb2ludCgpOwotICAgICAgICBtTGFzdFggPSAoZmxvYXQpIGxhc3QuZ2V0WCgpOwotICAgICAgICBtTGFzdFkgPSAoZmxvYXQpIGxhc3QuZ2V0WSgpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEFkZCBhIGNsb3NlZCByZWN0YW5nbGUgY29udG91ciB0byB0aGUgcGF0aAotICAgICAqCi0gICAgICogQHBhcmFtIGxlZnQgICBUaGUgbGVmdCBzaWRlIG9mIGEgcmVjdGFuZ2xlIHRvIGFkZCB0byB0aGUgcGF0aAotICAgICAqIEBwYXJhbSB0b3AgICAgVGhlIHRvcCBvZiBhIHJlY3RhbmdsZSB0byBhZGQgdG8gdGhlIHBhdGgKLSAgICAgKiBAcGFyYW0gcmlnaHQgIFRoZSByaWdodCBzaWRlIG9mIGEgcmVjdGFuZ2xlIHRvIGFkZCB0byB0aGUgcGF0aAotICAgICAqIEBwYXJhbSBib3R0b20gVGhlIGJvdHRvbSBvZiBhIHJlY3RhbmdsZSB0byBhZGQgdG8gdGhlIHBhdGgKLSAgICAgKiBAcGFyYW0gZGlyICAgIFRoZSBkaXJlY3Rpb24gdG8gd2luZCB0aGUgcmVjdGFuZ2xlJ3MgY29udG91cgotICAgICAqLwotICAgIHByaXZhdGUgdm9pZCBhZGRSZWN0KGZsb2F0IGxlZnQsIGZsb2F0IHRvcCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaXIpIHsKLSAgICAgICAgbW92ZVRvKGxlZnQsIHRvcCk7Ci0KLSAgICAgICAgRGlyZWN0aW9uIGRpcmVjdGlvbiA9IGdldERpcmVjdGlvbihkaXIpOwotCi0gICAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7Ci0gICAgICAgICAgICBjYXNlIENXOgotICAgICAgICAgICAgICAgIGxpbmVUbyhyaWdodCwgdG9wKTsKLSAgICAgICAgICAgICAgICBsaW5lVG8ocmlnaHQsIGJvdHRvbSk7Ci0gICAgICAgICAgICAgICAgbGluZVRvKGxlZnQsIGJvdHRvbSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENDVzoKLSAgICAgICAgICAgICAgICBsaW5lVG8obGVmdCwgYm90dG9tKTsKLSAgICAgICAgICAgICAgICBsaW5lVG8ocmlnaHQsIGJvdHRvbSk7Ci0gICAgICAgICAgICAgICAgbGluZVRvKHJpZ2h0LCB0b3ApOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2xvc2UoKTsKLQotICAgICAgICByZXNldExhc3RQb2ludEZyb21QYXRoKCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogT2Zmc2V0IHRoZSBwYXRoIGJ5IChkeCxkeSksIHJldHVybmluZyB0cnVlIG9uIHN1Y2Nlc3MKLSAgICAgKgotICAgICAqIEBwYXJhbSBkeCAgVGhlIGFtb3VudCBpbiB0aGUgWCBkaXJlY3Rpb24gdG8gb2Zmc2V0IHRoZSBlbnRpcmUgcGF0aAotICAgICAqIEBwYXJhbSBkeSAgVGhlIGFtb3VudCBpbiB0aGUgWSBkaXJlY3Rpb24gdG8gb2Zmc2V0IHRoZSBlbnRpcmUgcGF0aAotICAgICAqIEBwYXJhbSBkc3QgVGhlIHRyYW5zbGF0ZWQgcGF0aCBpcyB3cml0dGVuIGhlcmUuIElmIHRoaXMgaXMgbnVsbCwgdGhlbgotICAgICAqICAgICAgICAgICAgdGhlIG9yaWdpbmFsIHBhdGggaXMgbW9kaWZpZWQuCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgb2Zmc2V0KGZsb2F0IGR4LCBmbG9hdCBkeSwgUGF0aF9EZWxlZ2F0ZSBkc3QpIHsKLSAgICAgICAgR2VuZXJhbFBhdGggbmV3UGF0aCA9IG5ldyBHZW5lcmFsUGF0aCgpOwotCi0gICAgICAgIFBhdGhJdGVyYXRvciBpdGVyYXRvciA9IG1QYXRoLmdldFBhdGhJdGVyYXRvcihuZXcgQWZmaW5lVHJhbnNmb3JtKDAsIDAsIGR4LCAwLCAwLCBkeSkpOwotCi0gICAgICAgIG5ld1BhdGguYXBwZW5kKGl0ZXJhdG9yLCBmYWxzZSAvKmNvbm5lY3QqLyk7Ci0KLSAgICAgICAgaWYgKGRzdCAhPSBudWxsKSB7Ci0gICAgICAgICAgICBkc3QubVBhdGggPSBuZXdQYXRoOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbVBhdGggPSBuZXdQYXRoOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogVHJhbnNmb3JtIHRoZSBwb2ludHMgaW4gdGhpcyBwYXRoIGJ5IG1hdHJpeCwgYW5kIHdyaXRlIHRoZSBhbnN3ZXIKLSAgICAgKiBpbnRvIGRzdC4gSWYgZHN0IGlzIG51bGwsIHRoZW4gdGhlIHRoZSBvcmlnaW5hbCBwYXRoIGlzIG1vZGlmaWVkLgotICAgICAqCi0gICAgICogQHBhcmFtIG1hdHJpeCBUaGUgbWF0cml4IHRvIGFwcGx5IHRvIHRoZSBwYXRoCi0gICAgICogQHBhcmFtIGRzdCAgICBUaGUgdHJhbnNmb3JtZWQgcGF0aCBpcyB3cml0dGVuIGhlcmUuIElmIGRzdCBpcyBudWxsLAotICAgICAqICAgICAgICAgICAgICAgdGhlbiB0aGUgdGhlIG9yaWdpbmFsIHBhdGggaXMgbW9kaWZpZWQKLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCB0cmFuc2Zvcm0oTWF0cml4X0RlbGVnYXRlIG1hdHJpeCwgUGF0aF9EZWxlZ2F0ZSBkc3QpIHsKLSAgICAgICAgaWYgKG1hdHJpeC5oYXNQZXJzcGVjdGl2ZSgpKSB7Ci0gICAgICAgICAgICBhc3NlcnQgZmFsc2U7Ci0gICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZmlkZWxpdHlXYXJuaW5nKExheW91dExvZy5UQUdfTUFUUklYX0FGRklORSwKLSAgICAgICAgICAgICAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuUGF0aCN0cmFuc2Zvcm0oKSBvbmx5ICIgKwotICAgICAgICAgICAgICAgICAgICAic3VwcG9ydHMgYWZmaW5lIHRyYW5zZm9ybWF0aW9ucy4iLCBudWxsLCBudWxsIC8qZGF0YSovKTsKLSAgICAgICAgfQotCi0gICAgICAgIEdlbmVyYWxQYXRoIG5ld1BhdGggPSBuZXcgR2VuZXJhbFBhdGgoKTsKLQotICAgICAgICBQYXRoSXRlcmF0b3IgaXRlcmF0b3IgPSBtUGF0aC5nZXRQYXRoSXRlcmF0b3IobWF0cml4LmdldEFmZmluZVRyYW5zZm9ybSgpKTsKLQotICAgICAgICBuZXdQYXRoLmFwcGVuZChpdGVyYXRvciwgZmFsc2UgLypjb25uZWN0Ki8pOwotCi0gICAgICAgIGlmIChkc3QgIT0gbnVsbCkgewotICAgICAgICAgICAgZHN0Lm1QYXRoID0gbmV3UGF0aDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1QYXRoID0gbmV3UGF0aDsKLSAgICAgICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvUGl4ZWxYb3JYZmVybW9kZV9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9QaXhlbFhvclhmZXJtb2RlX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhYjA0NGIuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9QaXhlbFhvclhmZXJtb2RlX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLkRlbGVnYXRlTWFuYWdlcjsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLWltcG9ydCBqYXZhLmF3dC5Db21wb3NpdGU7Ci0KLS8qKgotICogRGVsZWdhdGUgaW1wbGVtZW50aW5nIHRoZSBuYXRpdmUgbWV0aG9kcyBvZiBhbmRyb2lkLmdyYXBoaWNzLlBpeGVsWG9yWGZlcm1vZGUKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBQaXhlbFhvclhmZXJtb2RlIGhhdmUgYmVlbgotICogcmVwbGFjZWQgYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICogVGhpcyBjbGFzcyBiZWhhdmVzIGxpa2UgdGhlIG9yaWdpbmFsIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGluIEphdmEsIGtlZXBpbmcgcHJldmlvdXNseQotICogbmF0aXZlIGRhdGEgaW50byBpdHMgb3duIG9iamVjdHMgYW5kIG1hcHBpbmcgdGhlbSB0byBpbnQgdGhhdCBhcmUgc2VudCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuCi0gKiBpdCBhbmQgdGhlIG9yaWdpbmFsIFBpeGVsWG9yWGZlcm1vZGUgY2xhc3MuCi0gKgotICogQmVjYXVzZSB0aGlzIGV4dGVuZHMge0BsaW5rIFhmZXJtb2RlX0RlbGVnYXRlfSwgdGhlcmUncyBubyBuZWVkIHRvIHVzZSBhCi0gKiB7QGxpbmsgRGVsZWdhdGVNYW5hZ2VyfSwgYXMgYWxsIHRoZSBQYXRoRWZmZWN0IGNsYXNzZXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgbWFuYWdlciBvd25lZCBieQotICoge0BsaW5rIFhmZXJtb2RlX0RlbGVnYXRlfS4KLSAqCi0gKiBAc2VlIFhmZXJtb2RlX0RlbGVnYXRlCi0gKi8KLXB1YmxpYyBjbGFzcyBQaXhlbFhvclhmZXJtb2RlX0RlbGVnYXRlIGV4dGVuZHMgWGZlcm1vZGVfRGVsZWdhdGUgewotICAgIC8vIC0tLS0gZGVsZWdhdGUgZGF0YSAtLS0tCi0KLSAgICAvLyAtLS0tIFB1YmxpYyBIZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQ29tcG9zaXRlIGdldENvbXBvc2l0ZShpbnQgYWxwaGEpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNTdXBwb3J0ZWQoKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCkgewotICAgICAgICByZXR1cm4gIlBpeGVsIFhPUiBYZmVybW9kZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gTGF5b3V0IFByZXZpZXcgbW9kZS4iOwotICAgIH0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVDcmVhdGUoaW50IG9wQ29sb3IpIHsKLSAgICAgICAgUGl4ZWxYb3JYZmVybW9kZV9EZWxlZ2F0ZSBuZXdEZWxlZ2F0ZSA9IG5ldyBQaXhlbFhvclhmZXJtb2RlX0RlbGVnYXRlKCk7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5hZGROZXdEZWxlZ2F0ZShuZXdEZWxlZ2F0ZSk7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBQcml2YXRlIGRlbGVnYXRlL2hlbHBlciBtZXRob2RzIC0tLS0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvUG9ydGVyRHVmZkNvbG9yRmlsdGVyX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1BvcnRlckR1ZmZDb2xvckZpbHRlcl9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDVkYmFhLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvUG9ydGVyRHVmZkNvbG9yRmlsdGVyX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLkRlbGVnYXRlTWFuYWdlcjsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLS8qKgotICogRGVsZWdhdGUgaW1wbGVtZW50aW5nIHRoZSBuYXRpdmUgbWV0aG9kcyBvZiBhbmRyb2lkLmdyYXBoaWNzLlBvcnRlckR1ZmZDb2xvckZpbHRlcgotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsIG5hdGl2ZSBtZXRob2RzIG9mIFBvcnRlckR1ZmZDb2xvckZpbHRlciBoYXZlCi0gKiBiZWVuIHJlcGxhY2VkIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIFRoaXMgY2xhc3MgYmVoYXZlcyBsaWtlIHRoZSBvcmlnaW5hbCBuYXRpdmUgaW1wbGVtZW50YXRpb24sIGJ1dCBpbiBKYXZhLCBrZWVwaW5nIHByZXZpb3VzbHkKLSAqIG5hdGl2ZSBkYXRhIGludG8gaXRzIG93biBvYmplY3RzIGFuZCBtYXBwaW5nIHRoZW0gdG8gaW50IHRoYXQgYXJlIHNlbnQgYmFjayBhbmQgZm9ydGggYmV0d2VlbgotICogaXQgYW5kIHRoZSBvcmlnaW5hbCBQb3J0ZXJEdWZmQ29sb3JGaWx0ZXIgY2xhc3MuCi0gKgotICogQmVjYXVzZSB0aGlzIGV4dGVuZHMge0BsaW5rIENvbG9yRmlsdGVyX0RlbGVnYXRlfSwgdGhlcmUncyBubyBuZWVkIHRvIHVzZSBhCi0gKiB7QGxpbmsgRGVsZWdhdGVNYW5hZ2VyfSwgYXMgYWxsIHRoZSBTaGFkZXIgY2xhc3NlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBtYW5hZ2VyCi0gKiBvd25lZCBieSB7QGxpbmsgQ29sb3JGaWx0ZXJfRGVsZWdhdGV9LgotICoKLSAqIEBzZWUgQ29sb3JGaWx0ZXJfRGVsZWdhdGUKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBQb3J0ZXJEdWZmQ29sb3JGaWx0ZXJfRGVsZWdhdGUgZXh0ZW5kcyBDb2xvckZpbHRlcl9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNTdXBwb3J0ZWQoKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCkgewotICAgICAgICByZXR1cm4gIlBvcnRlckR1ZmYgQ29sb3IgRmlsdGVycyBhcmUgbm90IHN1cHBvcnRlZC4iOwotICAgIH0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVfQ3JlYXRlUG9ydGVyRHVmZkZpbHRlcihpbnQgc3JjQ29sb3IsIGludCBwb3J0ZXJEdWZmTW9kZSkgewotICAgICAgICBQb3J0ZXJEdWZmQ29sb3JGaWx0ZXJfRGVsZWdhdGUgbmV3RGVsZWdhdGUgPSBuZXcgUG9ydGVyRHVmZkNvbG9yRmlsdGVyX0RlbGVnYXRlKCk7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5hZGROZXdEZWxlZ2F0ZShuZXdEZWxlZ2F0ZSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuQ3JlYXRlUG9ydGVyRHVmZkZpbHRlcihpbnQgbmF0aXZlRmlsdGVyLCBpbnQgc3JjQ29sb3IsCi0gICAgICAgICAgICBpbnQgcG9ydGVyRHVmZk1vZGUpIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9Qb3J0ZXJEdWZmWGZlcm1vZGVfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvUG9ydGVyRHVmZlhmZXJtb2RlX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzMDFjMWEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9Qb3J0ZXJEdWZmWGZlcm1vZGVfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkxheW91dExvZzsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLkJyaWRnZTsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRGVsZWdhdGVNYW5hZ2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotaW1wb3J0IGphdmEuYXd0LkFscGhhQ29tcG9zaXRlOwotaW1wb3J0IGphdmEuYXd0LkNvbXBvc2l0ZTsKLQotLyoqCi0gKiBEZWxlZ2F0ZSBpbXBsZW1lbnRpbmcgdGhlIG5hdGl2ZSBtZXRob2RzIG9mIGFuZHJvaWQuZ3JhcGhpY3MuUG9ydGVyRHVmZlhmZXJtb2RlCi0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgUG9ydGVyRHVmZlhmZXJtb2RlIGhhdmUgYmVlbgotICogcmVwbGFjZWQgYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICogVGhpcyBjbGFzcyBiZWhhdmVzIGxpa2UgdGhlIG9yaWdpbmFsIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGluIEphdmEsIGtlZXBpbmcgcHJldmlvdXNseQotICogbmF0aXZlIGRhdGEgaW50byBpdHMgb3duIG9iamVjdHMgYW5kIG1hcHBpbmcgdGhlbSB0byBpbnQgdGhhdCBhcmUgc2VudCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuCi0gKiBpdCBhbmQgdGhlIG9yaWdpbmFsIFBvcnRlckR1ZmZYZmVybW9kZSBjbGFzcy4KLSAqCi0gKiBCZWNhdXNlIHRoaXMgZXh0ZW5kcyB7QGxpbmsgWGZlcm1vZGVfRGVsZWdhdGV9LCB0aGVyZSdzIG5vIG5lZWQgdG8gdXNlIGEKLSAqIHtAbGluayBEZWxlZ2F0ZU1hbmFnZXJ9LCBhcyBhbGwgdGhlIFBhdGhFZmZlY3QgY2xhc3NlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBtYW5hZ2VyIG93bmVkIGJ5Ci0gKiB7QGxpbmsgWGZlcm1vZGVfRGVsZWdhdGV9LgotICoKLSAqLwotcHVibGljIGNsYXNzIFBvcnRlckR1ZmZYZmVybW9kZV9EZWxlZ2F0ZSBleHRlbmRzIFhmZXJtb2RlX0RlbGVnYXRlIHsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgZGF0YSAtLS0tCi0KLSAgICBwcml2YXRlIGZpbmFsIGludCBtTW9kZTsKLQotICAgIC8vIC0tLS0gUHVibGljIEhlbHBlciBtZXRob2RzIC0tLS0KLQotICAgIHB1YmxpYyBQb3J0ZXJEdWZmLk1vZGUgZ2V0TW9kZSgpIHsKLSAgICAgICAgcmV0dXJuIGdldFBvcnRlckR1ZmZNb2RlKG1Nb2RlKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQ29tcG9zaXRlIGdldENvbXBvc2l0ZShpbnQgYWxwaGEpIHsKLSAgICAgICAgcmV0dXJuIGdldENvbXBvc2l0ZShnZXRQb3J0ZXJEdWZmTW9kZShtTW9kZSksIGFscGhhKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBpc1N1cHBvcnRlZCgpIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRTdXBwb3J0TWVzc2FnZSgpIHsKLSAgICAgICAgLy8gbm8gbWVzc2FnZSBzaW5jZSBpc1N1cHBvcnRlZCByZXR1cm5zIHRydWU7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIHB1YmxpYyBzdGF0aWMgUG9ydGVyRHVmZi5Nb2RlIGdldFBvcnRlckR1ZmZNb2RlKGludCBtb2RlKSB7Ci0gICAgICAgIGZvciAoUG9ydGVyRHVmZi5Nb2RlIG0gOiBQb3J0ZXJEdWZmLk1vZGUudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGlmIChtLm5hdGl2ZUludCA9PSBtb2RlKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZXJyb3IoTGF5b3V0TG9nLlRBR19CUk9LRU4sCi0gICAgICAgICAgICAgICAgU3RyaW5nLmZvcm1hdCgiVW5rbm93biBQb3J0ZXJEdWZmLk1vZGU6ICVkIiwgbW9kZSksIG51bGwgLypkYXRhKi8pOwotICAgICAgICBhc3NlcnQgZmFsc2U7Ci0gICAgICAgIHJldHVybiBQb3J0ZXJEdWZmLk1vZGUuU1JDX09WRVI7Ci0gICAgfQotCi0gICAgcHVibGljIHN0YXRpYyBDb21wb3NpdGUgZ2V0Q29tcG9zaXRlKFBvcnRlckR1ZmYuTW9kZSBtb2RlLCBpbnQgYWxwaGEpIHsKLSAgICAgICAgZmxvYXQgZmFscGhhID0gYWxwaGEgIT0gMHhGRiA/IChmbG9hdClhbHBoYSAvIDI1NS5mIDogMS5mOwotICAgICAgICBzd2l0Y2ggKG1vZGUpIHsKLSAgICAgICAgICAgIGNhc2UgQ0xFQVI6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEFscGhhQ29tcG9zaXRlLmdldEluc3RhbmNlKEFscGhhQ29tcG9zaXRlLkNMRUFSLCBmYWxwaGEpOwotICAgICAgICAgICAgY2FzZSBEQVJLRU46Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIERTVDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQWxwaGFDb21wb3NpdGUuZ2V0SW5zdGFuY2UoQWxwaGFDb21wb3NpdGUuRFNULCBmYWxwaGEpOwotICAgICAgICAgICAgY2FzZSBEU1RfQVRPUDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQWxwaGFDb21wb3NpdGUuZ2V0SW5zdGFuY2UoQWxwaGFDb21wb3NpdGUuRFNUX0FUT1AsIGZhbHBoYSk7Ci0gICAgICAgICAgICBjYXNlIERTVF9JTjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQWxwaGFDb21wb3NpdGUuZ2V0SW5zdGFuY2UoQWxwaGFDb21wb3NpdGUuRFNUX0lOLCBmYWxwaGEpOwotICAgICAgICAgICAgY2FzZSBEU1RfT1VUOgotICAgICAgICAgICAgICAgIHJldHVybiBBbHBoYUNvbXBvc2l0ZS5nZXRJbnN0YW5jZShBbHBoYUNvbXBvc2l0ZS5EU1RfT1VULCBmYWxwaGEpOwotICAgICAgICAgICAgY2FzZSBEU1RfT1ZFUjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQWxwaGFDb21wb3NpdGUuZ2V0SW5zdGFuY2UoQWxwaGFDb21wb3NpdGUuRFNUX09WRVIsIGZhbHBoYSk7Ci0gICAgICAgICAgICBjYXNlIExJR0hURU46Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIE1VTFRJUExZOgotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBTQ1JFRU46Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFNSQzoKLSAgICAgICAgICAgICAgICByZXR1cm4gQWxwaGFDb21wb3NpdGUuZ2V0SW5zdGFuY2UoQWxwaGFDb21wb3NpdGUuU1JDLCBmYWxwaGEpOwotICAgICAgICAgICAgY2FzZSBTUkNfQVRPUDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQWxwaGFDb21wb3NpdGUuZ2V0SW5zdGFuY2UoQWxwaGFDb21wb3NpdGUuU1JDX0FUT1AsIGZhbHBoYSk7Ci0gICAgICAgICAgICBjYXNlIFNSQ19JTjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQWxwaGFDb21wb3NpdGUuZ2V0SW5zdGFuY2UoQWxwaGFDb21wb3NpdGUuU1JDX0lOLCBmYWxwaGEpOwotICAgICAgICAgICAgY2FzZSBTUkNfT1VUOgotICAgICAgICAgICAgICAgIHJldHVybiBBbHBoYUNvbXBvc2l0ZS5nZXRJbnN0YW5jZShBbHBoYUNvbXBvc2l0ZS5TUkNfT1VULCBmYWxwaGEpOwotICAgICAgICAgICAgY2FzZSBTUkNfT1ZFUjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQWxwaGFDb21wb3NpdGUuZ2V0SW5zdGFuY2UoQWxwaGFDb21wb3NpdGUuU1JDX09WRVIsIGZhbHBoYSk7Ci0gICAgICAgICAgICBjYXNlIFhPUjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQWxwaGFDb21wb3NpdGUuZ2V0SW5zdGFuY2UoQWxwaGFDb21wb3NpdGUuWE9SLCBmYWxwaGEpOwotICAgICAgICB9Ci0KLSAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX0JST0tFTiwKLSAgICAgICAgICAgICAgICBTdHJpbmcuZm9ybWF0KCJVbnN1cHBvcnRlZCBQb3J0ZXJEdWZmIE1vZGU6ICVzIiwgbW9kZS5uYW1lKCkpLAotICAgICAgICAgICAgICAgIG51bGwsIG51bGwgLypkYXRhKi8pOwotCi0gICAgICAgIHJldHVybiBBbHBoYUNvbXBvc2l0ZS5nZXRJbnN0YW5jZShBbHBoYUNvbXBvc2l0ZS5TUkNfT1ZFUiwgZmFscGhhKTsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIG5hdGl2ZSBtZXRob2RzIC0tLS0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlQ3JlYXRlWGZlcm1vZGUoaW50IG1vZGUpIHsKLSAgICAgICAgUG9ydGVyRHVmZlhmZXJtb2RlX0RlbGVnYXRlIG5ld0RlbGVnYXRlID0gbmV3IFBvcnRlckR1ZmZYZmVybW9kZV9EZWxlZ2F0ZShtb2RlKTsKLSAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmFkZE5ld0RlbGVnYXRlKG5ld0RlbGVnYXRlKTsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgcHJpdmF0ZSBQb3J0ZXJEdWZmWGZlcm1vZGVfRGVsZWdhdGUoaW50IG1vZGUpIHsKLSAgICAgICAgbU1vZGUgPSBtb2RlOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvUmFkaWFsR3JhZGllbnRfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvUmFkaWFsR3JhZGllbnRfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ZlNDVmYS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1JhZGlhbEdyYWRpZW50X0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyMTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5MYXlvdXRMb2c7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5CcmlkZ2U7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLkRlbGVnYXRlTWFuYWdlcjsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlNoYWRlci5UaWxlTW9kZTsKLQotLyoqCi0gKiBEZWxlZ2F0ZSBpbXBsZW1lbnRpbmcgdGhlIG5hdGl2ZSBtZXRob2RzIG9mIGFuZHJvaWQuZ3JhcGhpY3MuUmFkaWFsR3JhZGllbnQKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBSYWRpYWxHcmFkaWVudCBoYXZlIGJlZW4KLSAqIHJlcGxhY2VkIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIFRoaXMgY2xhc3MgYmVoYXZlcyBsaWtlIHRoZSBvcmlnaW5hbCBuYXRpdmUgaW1wbGVtZW50YXRpb24sIGJ1dCBpbiBKYXZhLCBrZWVwaW5nIHByZXZpb3VzbHkKLSAqIG5hdGl2ZSBkYXRhIGludG8gaXRzIG93biBvYmplY3RzIGFuZCBtYXBwaW5nIHRoZW0gdG8gaW50IHRoYXQgYXJlIHNlbnQgYmFjayBhbmQgZm9ydGggYmV0d2VlbgotICogaXQgYW5kIHRoZSBvcmlnaW5hbCBSYWRpYWxHcmFkaWVudCBjbGFzcy4KLSAqCi0gKiBCZWNhdXNlIHRoaXMgZXh0ZW5kcyB7QGxpbmsgU2hhZGVyX0RlbGVnYXRlfSwgdGhlcmUncyBubyBuZWVkIHRvIHVzZSBhIHtAbGluayBEZWxlZ2F0ZU1hbmFnZXJ9LAotICogYXMgYWxsIHRoZSBTaGFkZXIgY2xhc3NlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBtYW5hZ2VyIG93bmVkIGJ5IHtAbGluayBTaGFkZXJfRGVsZWdhdGV9LgotICoKLSAqIEBzZWUgU2hhZGVyX0RlbGVnYXRlCi0gKgotICovCi1wdWJsaWMgY2xhc3MgUmFkaWFsR3JhZGllbnRfRGVsZWdhdGUgZXh0ZW5kcyBHcmFkaWVudF9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotICAgIHByaXZhdGUgamF2YS5hd3QuUGFpbnQgbUphdmFQYWludDsKLQotICAgIC8vIC0tLS0gUHVibGljIEhlbHBlciBtZXRob2RzIC0tLS0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBqYXZhLmF3dC5QYWludCBnZXRKYXZhUGFpbnQoKSB7Ci0gICAgICAgIHJldHVybiBtSmF2YVBhaW50OwotICAgIH0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVDcmVhdGUxKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHJhZGl1cywKLSAgICAgICAgICAgIGludCBjb2xvcnNbXSwgZmxvYXQgcG9zaXRpb25zW10sIGludCB0aWxlTW9kZSkgewotICAgICAgICBSYWRpYWxHcmFkaWVudF9EZWxlZ2F0ZSBuZXdEZWxlZ2F0ZSA9IG5ldyBSYWRpYWxHcmFkaWVudF9EZWxlZ2F0ZSh4LCB5LCByYWRpdXMsCi0gICAgICAgICAgICAgICAgY29sb3JzLCBwb3NpdGlvbnMsIFNoYWRlcl9EZWxlZ2F0ZS5nZXRUaWxlTW9kZSh0aWxlTW9kZSkpOwotICAgICAgICByZXR1cm4gc01hbmFnZXIuYWRkTmV3RGVsZWdhdGUobmV3RGVsZWdhdGUpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlQ3JlYXRlMihmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCByYWRpdXMsCi0gICAgICAgICAgICBpbnQgY29sb3IwLCBpbnQgY29sb3IxLCBpbnQgdGlsZU1vZGUpIHsKLSAgICAgICAgcmV0dXJuIG5hdGl2ZUNyZWF0ZTEoeCwgeSwgcmFkaXVzLCBuZXcgaW50W10geyBjb2xvcjAsIGNvbG9yMSB9LCBudWxsIC8qcG9zaXRpb25zKi8sCi0gICAgICAgICAgICAgICAgdGlsZU1vZGUpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlUG9zdENyZWF0ZTEoaW50IG5hdGl2ZV9zaGFkZXIsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHJhZGl1cywKLSAgICAgICAgICAgIGludCBjb2xvcnNbXSwgZmxvYXQgcG9zaXRpb25zW10sIGludCB0aWxlTW9kZSkgewotICAgICAgICAvLyBub3RoaW5nIHRvIGJlIGRvbmUgaGVyZS4KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVQb3N0Q3JlYXRlMihpbnQgbmF0aXZlX3NoYWRlciwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgcmFkaXVzLAotICAgICAgICAgICAgaW50IGNvbG9yMCwgaW50IGNvbG9yMSwgaW50IHRpbGVNb2RlKSB7Ci0gICAgICAgIC8vIG5vdGhpbmcgdG8gYmUgZG9uZSBoZXJlLgotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlIGEgc2hhZGVyIHRoYXQgZHJhd3MgYSByYWRpYWwgZ3JhZGllbnQgZ2l2ZW4gdGhlIGNlbnRlciBhbmQgcmFkaXVzLgotICAgICAqCi0gICAgICogQHBhcmFtIHggVGhlIHgtY29vcmRpbmF0ZSBvZiB0aGUgY2VudGVyIG9mIHRoZSByYWRpdXMKLSAgICAgKiBAcGFyYW0geSBUaGUgeS1jb29yZGluYXRlIG9mIHRoZSBjZW50ZXIgb2YgdGhlIHJhZGl1cwotICAgICAqIEBwYXJhbSByYWRpdXMgTXVzdCBiZSBwb3NpdGl2ZS4gVGhlIHJhZGl1cyBvZiB0aGUgY2lyY2xlIGZvciB0aGlzCi0gICAgICogICAgICAgICAgICBncmFkaWVudAotICAgICAqIEBwYXJhbSBjb2xvcnMgVGhlIGNvbG9ycyB0byBiZSBkaXN0cmlidXRlZCBiZXR3ZWVuIHRoZSBjZW50ZXIgYW5kIGVkZ2Ugb2YKLSAgICAgKiAgICAgICAgICAgIHRoZSBjaXJjbGUKLSAgICAgKiBAcGFyYW0gcG9zaXRpb25zIE1heSBiZSBOVUxMLiBUaGUgcmVsYXRpdmUgcG9zaXRpb24gb2YgZWFjaCBjb3JyZXNwb25kaW5nCi0gICAgICogICAgICAgICAgICBjb2xvciBpbiB0aGUgY29sb3JzIGFycmF5LiBJZiB0aGlzIGlzIE5VTEwsIHRoZSB0aGUgY29sb3JzIGFyZQotICAgICAqICAgICAgICAgICAgZGlzdHJpYnV0ZWQgZXZlbmx5IGJldHdlZW4gdGhlIGNlbnRlciBhbmQgZWRnZSBvZiB0aGUgY2lyY2xlLgotICAgICAqIEBwYXJhbSB0aWxlIFRoZSBTaGFkZXIgdGlsaW5nIG1vZGUKLSAgICAgKi8KLSAgICBwcml2YXRlIFJhZGlhbEdyYWRpZW50X0RlbGVnYXRlKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHJhZGl1cywgaW50IGNvbG9yc1tdLCBmbG9hdCBwb3NpdGlvbnNbXSwKLSAgICAgICAgICAgIFRpbGVNb2RlIHRpbGUpIHsKLSAgICAgICAgc3VwZXIoY29sb3JzLCBwb3NpdGlvbnMpOwotICAgICAgICBtSmF2YVBhaW50ID0gbmV3IFJhZGlhbEdyYWRpZW50UGFpbnQoeCwgeSwgcmFkaXVzLCBtQ29sb3JzLCBtUG9zaXRpb25zLCB0aWxlKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIGNsYXNzIFJhZGlhbEdyYWRpZW50UGFpbnQgZXh0ZW5kcyBHcmFkaWVudFBhaW50IHsKLQotICAgICAgICBwcml2YXRlIGZpbmFsIGZsb2F0IG1YOwotICAgICAgICBwcml2YXRlIGZpbmFsIGZsb2F0IG1ZOwotICAgICAgICBwcml2YXRlIGZpbmFsIGZsb2F0IG1SYWRpdXM7Ci0KLSAgICAgICAgcHVibGljIFJhZGlhbEdyYWRpZW50UGFpbnQoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgcmFkaXVzLAotICAgICAgICAgICAgICAgIGludFtdIGNvbG9ycywgZmxvYXRbXSBwb3NpdGlvbnMsIFRpbGVNb2RlIG1vZGUpIHsKLSAgICAgICAgICAgIHN1cGVyKGNvbG9ycywgcG9zaXRpb25zLCBtb2RlKTsKLSAgICAgICAgICAgIG1YID0geDsKLSAgICAgICAgICAgIG1ZID0geTsKLSAgICAgICAgICAgIG1SYWRpdXMgPSByYWRpdXM7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIGphdmEuYXd0LlBhaW50Q29udGV4dCBjcmVhdGVDb250ZXh0KAotICAgICAgICAgICAgICAgIGphdmEuYXd0LmltYWdlLkNvbG9yTW9kZWwgICAgIGNvbG9yTW9kZWwsCi0gICAgICAgICAgICAgICAgamF2YS5hd3QuUmVjdGFuZ2xlICAgICAgICAgICAgZGV2aWNlQm91bmRzLAotICAgICAgICAgICAgICAgIGphdmEuYXd0Lmdlb20uUmVjdGFuZ2xlMkQgICAgIHVzZXJCb3VuZHMsCi0gICAgICAgICAgICAgICAgamF2YS5hd3QuZ2VvbS5BZmZpbmVUcmFuc2Zvcm0geGZvcm0sCi0gICAgICAgICAgICAgICAgamF2YS5hd3QuUmVuZGVyaW5nSGludHMgICAgICAgaGludHMpIHsKLSAgICAgICAgICAgIHByZWNvbXB1dGVHcmFkaWVudENvbG9ycygpOwotCi0gICAgICAgICAgICBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybSBjYW52YXNNYXRyaXg7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIGNhbnZhc01hdHJpeCA9IHhmb3JtLmNyZWF0ZUludmVyc2UoKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGphdmEuYXd0Lmdlb20uTm9uaW52ZXJ0aWJsZVRyYW5zZm9ybUV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX01BVFJJWF9JTlZFUlNFLAotICAgICAgICAgICAgICAgICAgICAgICAgIlVuYWJsZSB0byBpbnZlcnNlIG1hdHJpeCBpbiBSYWRpYWxHcmFkaWVudCIsIGUsIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgICAgIGNhbnZhc01hdHJpeCA9IG5ldyBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybSgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybSBsb2NhbE1hdHJpeCA9IGdldExvY2FsTWF0cml4KCk7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIGxvY2FsTWF0cml4ID0gbG9jYWxNYXRyaXguY3JlYXRlSW52ZXJzZSgpOwotICAgICAgICAgICAgfSBjYXRjaCAoamF2YS5hd3QuZ2VvbS5Ob25pbnZlcnRpYmxlVHJhbnNmb3JtRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZmlkZWxpdHlXYXJuaW5nKExheW91dExvZy5UQUdfTUFUUklYX0lOVkVSU0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAiVW5hYmxlIHRvIGludmVyc2UgbWF0cml4IGluIFJhZGlhbEdyYWRpZW50IiwgZSwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgICAgICAgICAgbG9jYWxNYXRyaXggPSBuZXcgamF2YS5hd3QuZ2VvbS5BZmZpbmVUcmFuc2Zvcm0oKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIG5ldyBSYWRpYWxHcmFkaWVudFBhaW50Q29udGV4dChjYW52YXNNYXRyaXgsIGxvY2FsTWF0cml4LCBjb2xvck1vZGVsKTsKLSAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGUgY2xhc3MgUmFkaWFsR3JhZGllbnRQYWludENvbnRleHQgaW1wbGVtZW50cyBqYXZhLmF3dC5QYWludENvbnRleHQgewotCi0gICAgICAgICAgICBwcml2YXRlIGZpbmFsIGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtIG1DYW52YXNNYXRyaXg7Ci0gICAgICAgICAgICBwcml2YXRlIGZpbmFsIGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtIG1Mb2NhbE1hdHJpeDsKLSAgICAgICAgICAgIHByaXZhdGUgZmluYWwgamF2YS5hd3QuaW1hZ2UuQ29sb3JNb2RlbCBtQ29sb3JNb2RlbDsKLQotICAgICAgICAgICAgcHVibGljIFJhZGlhbEdyYWRpZW50UGFpbnRDb250ZXh0KAotICAgICAgICAgICAgICAgICAgICBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybSBjYW52YXNNYXRyaXgsCi0gICAgICAgICAgICAgICAgICAgIGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtIGxvY2FsTWF0cml4LAotICAgICAgICAgICAgICAgICAgICBqYXZhLmF3dC5pbWFnZS5Db2xvck1vZGVsIGNvbG9yTW9kZWwpIHsKLSAgICAgICAgICAgICAgICBtQ2FudmFzTWF0cml4ID0gY2FudmFzTWF0cml4OwotICAgICAgICAgICAgICAgIG1Mb2NhbE1hdHJpeCA9IGxvY2FsTWF0cml4OwotICAgICAgICAgICAgICAgIG1Db2xvck1vZGVsID0gY29sb3JNb2RlbDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCBkaXNwb3NlKCkgewotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBqYXZhLmF3dC5pbWFnZS5Db2xvck1vZGVsIGdldENvbG9yTW9kZWwoKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1Db2xvck1vZGVsOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBqYXZhLmF3dC5pbWFnZS5SYXN0ZXIgZ2V0UmFzdGVyKGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSB7Ci0gICAgICAgICAgICAgICAgamF2YS5hd3QuaW1hZ2UuQnVmZmVyZWRJbWFnZSBpbWFnZSA9IG5ldyBqYXZhLmF3dC5pbWFnZS5CdWZmZXJlZEltYWdlKHcsIGgsCi0gICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmF3dC5pbWFnZS5CdWZmZXJlZEltYWdlLlRZUEVfSU5UX0FSR0IpOwotCi0gICAgICAgICAgICAgICAgaW50W10gZGF0YSA9IG5ldyBpbnRbdypoXTsKLQotICAgICAgICAgICAgICAgIC8vIGNvbXB1dGUgZGlzdGFuY2UgZnJvbSBlYWNoIHBvaW50IHRvIHRoZSBjZW50ZXIsIGFuZCBmaWd1cmUgb3V0IHRoZSBkaXN0YW5jZSBmcm9tCi0gICAgICAgICAgICAgICAgLy8gaXQuCi0gICAgICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKLSAgICAgICAgICAgICAgICBmbG9hdFtdIHB0MSA9IG5ldyBmbG9hdFsyXTsKLSAgICAgICAgICAgICAgICBmbG9hdFtdIHB0MiA9IG5ldyBmbG9hdFsyXTsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBpeSA9IDAgOyBpeSA8IGggOyBpeSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGl4ID0gMCA7IGl4IDwgdyA7IGl4KyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSB0aGUgY2FudmFzIHRyYW5zZm9ybQotICAgICAgICAgICAgICAgICAgICAgICAgcHQxWzBdID0geCArIGl4OwotICAgICAgICAgICAgICAgICAgICAgICAgcHQxWzFdID0geSArIGl5OwotICAgICAgICAgICAgICAgICAgICAgICAgbUNhbnZhc01hdHJpeC50cmFuc2Zvcm0ocHQxLCAwLCBwdDIsIDAsIDEpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgdGhlIGxvY2FsIG1hdHJpeAotICAgICAgICAgICAgICAgICAgICAgICAgcHQxWzBdID0gcHQyWzBdIC0gbVg7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdDFbMV0gPSBwdDJbMV0gLSBtWTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1Mb2NhbE1hdHJpeC50cmFuc2Zvcm0ocHQxLCAwLCBwdDIsIDAsIDEpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBfeCA9IHB0MlswXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IF95ID0gcHQyWzFdOwotICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGlzdGFuY2UgPSAoZmxvYXQpIE1hdGguc3FydChfeCAqIF94ICsgX3kgKiBfeSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbaW5kZXgrK10gPSBnZXRHcmFkaWVudENvbG9yKGRpc3RhbmNlIC8gbVJhZGl1cyk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpbWFnZS5zZXRSR0IoMCAvKnN0YXJ0WCovLCAwIC8qc3RhcnRZKi8sIHcsIGgsIGRhdGEsIDAgLypvZmZzZXQqLywgdyAvKnNjYW5zaXplKi8pOwotCi0gICAgICAgICAgICAgICAgcmV0dXJuIGltYWdlLmdldFJhc3RlcigpOwotICAgICAgICAgICAgfQotCi0gICAgICAgIH0KLSAgICB9Ci0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvUmFzdGVyaXplcl9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9SYXN0ZXJpemVyX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4MTJiNmIuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9SYXN0ZXJpemVyX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLkRlbGVnYXRlTWFuYWdlcjsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLS8qKgotICogRGVsZWdhdGUgaW1wbGVtZW50aW5nIHRoZSBuYXRpdmUgbWV0aG9kcyBvZiBhbmRyb2lkLmdyYXBoaWNzLlJhc3Rlcml6ZXIKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBSYXN0ZXJpemVyIGhhdmUgYmVlbiByZXBsYWNlZAotICogYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICogVGhpcyBjbGFzcyBiZWhhdmVzIGxpa2UgdGhlIG9yaWdpbmFsIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGluIEphdmEsIGtlZXBpbmcgcHJldmlvdXNseQotICogbmF0aXZlIGRhdGEgaW50byBpdHMgb3duIG9iamVjdHMgYW5kIG1hcHBpbmcgdGhlbSB0byBpbnQgdGhhdCBhcmUgc2VudCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuCi0gKiBpdCBhbmQgdGhlIG9yaWdpbmFsIFJhc3Rlcml6ZXIgY2xhc3MuCi0gKgotICogVGhpcyBhbHNvIHNlcnZlIGFzIGEgYmFzZSBjbGFzcyBmb3IgYWxsIFJhc3Rlcml6ZXIgZGVsZWdhdGUgY2xhc3Nlcy4KLSAqCi0gKiBAc2VlIERlbGVnYXRlTWFuYWdlcgotICoKLSAqLwotcHVibGljIGFic3RyYWN0IGNsYXNzIFJhc3Rlcml6ZXJfRGVsZWdhdGUgewotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBtYW5hZ2VyIC0tLS0KLSAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIERlbGVnYXRlTWFuYWdlcjxSYXN0ZXJpemVyX0RlbGVnYXRlPiBzTWFuYWdlciA9Ci0gICAgICAgICAgICBuZXcgRGVsZWdhdGVNYW5hZ2VyPFJhc3Rlcml6ZXJfRGVsZWdhdGU+KFJhc3Rlcml6ZXJfRGVsZWdhdGUuY2xhc3MpOwotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBoZWxwZXIgZGF0YSAtLS0tCi0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgcHVibGljIHN0YXRpYyBSYXN0ZXJpemVyX0RlbGVnYXRlIGdldERlbGVnYXRlKGludCBuYXRpdmVTaGFkZXIpIHsKLSAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZVNoYWRlcik7Ci0gICAgfQotCi0gICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gaXNTdXBwb3J0ZWQoKTsKLSAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCk7Ci0KLSAgICAvLyAtLS0tIG5hdGl2ZSBtZXRob2RzIC0tLS0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIGZpbmFsaXplcihpbnQgbmF0aXZlX2luc3RhbmNlKSB7Ci0gICAgICAgIHNNYW5hZ2VyLnJlbW92ZUphdmFSZWZlcmVuY2VGb3IobmF0aXZlX2luc3RhbmNlKTsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9SZWdpb25fRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvUmVnaW9uX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiMzFiOGYuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9SZWdpb25fRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDQ4NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkxheW91dExvZzsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLkJyaWRnZTsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRGVsZWdhdGVNYW5hZ2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotaW1wb3J0IGFuZHJvaWQub3MuUGFyY2VsOwotCi1pbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOwotaW1wb3J0IGphdmEuYXd0LlNoYXBlOwotaW1wb3J0IGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtOwotaW1wb3J0IGphdmEuYXd0Lmdlb20uQXJlYTsKLWltcG9ydCBqYXZhLmF3dC5nZW9tLlJlY3RhbmdsZTJEOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5SZWdpb24KLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBSZWdpb24gaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgUmVnaW9uIGNsYXNzLgotICoKLSAqIFRoaXMgYWxzbyBzZXJ2ZSBhcyBhIGJhc2UgY2xhc3MgZm9yIGFsbCBSZWdpb24gZGVsZWdhdGUgY2xhc3Nlcy4KLSAqCi0gKiBAc2VlIERlbGVnYXRlTWFuYWdlcgotICoKLSAqLwotcHVibGljIGNsYXNzIFJlZ2lvbl9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIG1hbmFnZXIgLS0tLQotICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgRGVsZWdhdGVNYW5hZ2VyPFJlZ2lvbl9EZWxlZ2F0ZT4gc01hbmFnZXIgPQotICAgICAgICAgICAgbmV3IERlbGVnYXRlTWFuYWdlcjxSZWdpb25fRGVsZWdhdGU+KFJlZ2lvbl9EZWxlZ2F0ZS5jbGFzcyk7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGhlbHBlciBkYXRhIC0tLS0KLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgZGF0YSAtLS0tCi0gICAgcHJpdmF0ZSBBcmVhIG1BcmVhID0gbmV3IEFyZWEoKTsKLQotICAgIC8vIC0tLS0gUHVibGljIEhlbHBlciBtZXRob2RzIC0tLS0KLQotICAgIHB1YmxpYyBzdGF0aWMgUmVnaW9uX0RlbGVnYXRlIGdldERlbGVnYXRlKGludCBuYXRpdmVTaGFkZXIpIHsKLSAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZVNoYWRlcik7Ci0gICAgfQotCi0gICAgcHVibGljIEFyZWEgZ2V0SmF2YUFyZWEoKSB7Ci0gICAgICAgIHJldHVybiBtQXJlYTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDb21iaW5lcyB0d28ge0BsaW5rIFNoYXBlfSBpbnRvIGFub3RoZXIgb25lIChhY3R1YWxseSBhbiB7QGxpbmsgQXJlYX0pLCBhY2NvcmRpbmcKLSAgICAgKiB0byB0aGUgZ2l2ZW4ge0BsaW5rIFJlZ2lvbi5PcH0uCi0gICAgICoKLSAgICAgKiBJZiB0aGUgT3AgaXMgbm90IG9uZSB0aGF0IGNvbWJpbmVzIHR3byBzaGFwZXMsIHRoZW4gdGhpcyByZXR1cm4gbnVsbAotICAgICAqCi0gICAgICogQHBhcmFtIHNoYXBlMSB0aGUgZmlydCBzaGFwZSB0byBjb21iaW5lIHdoaWNoIGNhbiBiZSBudWxsIGlmIHRoZXJlJ3Mgbm8gb3JpZ2luYWwgY2xpcC4KLSAgICAgKiBAcGFyYW0gc2hhcGUyIHRoZSAybmQgc2hhcGUgdG8gY29tYmluZQotICAgICAqIEBwYXJhbSByZWdpb25PcCB0aGUgb3BlcmFuZGUgZm9yIHRoZSBjb21iaW5lCi0gICAgICogQHJldHVybiBhIG5ldyBhcmVhIG9yIG51bGwuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBBcmVhIGNvbWJpbmVTaGFwZXMoU2hhcGUgc2hhcGUxLCBTaGFwZSBzaGFwZTIsIGludCByZWdpb25PcCkgewotICAgICAgICBpZiAocmVnaW9uT3AgPT0gUmVnaW9uLk9wLkRJRkZFUkVOQ0UubmF0aXZlSW50KSB7Ci0gICAgICAgICAgICAvLyBpZiBzaGFwZTEgaXMgbnVsbCAoZW1wdHkpLCB0aGVuIHRoZSByZXN1bHQgaXMgbnVsbC4KLSAgICAgICAgICAgIGlmIChzaGFwZTEgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyByZXN1bHQgaXMgYWx3YXlzIGEgbmV3IGFyZWEuCi0gICAgICAgICAgICBBcmVhIHJlc3VsdCA9IG5ldyBBcmVhKHNoYXBlMSk7Ci0gICAgICAgICAgICByZXN1bHQuc3VidHJhY3Qoc2hhcGUyIGluc3RhbmNlb2YgQXJlYSA/IChBcmVhKSBzaGFwZTIgOiBuZXcgQXJlYShzaGFwZTIpKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0KLSAgICAgICAgfSBlbHNlIGlmIChyZWdpb25PcCA9PSBSZWdpb24uT3AuSU5URVJTRUNULm5hdGl2ZUludCkgewotICAgICAgICAgICAgLy8gaWYgc2hhcGUxIGlzIG51bGwsIHRoZW4gdGhlIHJlc3VsdCBpcyBzaW1wbHkgc2hhcGUyLgotICAgICAgICAgICAgaWYgKHNoYXBlMSA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBBcmVhKHNoYXBlMik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIHJlc3VsdCBpcyBhbHdheXMgYSBuZXcgYXJlYS4KLSAgICAgICAgICAgIEFyZWEgcmVzdWx0ID0gbmV3IEFyZWEoc2hhcGUxKTsKLSAgICAgICAgICAgIHJlc3VsdC5pbnRlcnNlY3Qoc2hhcGUyIGluc3RhbmNlb2YgQXJlYSA/IChBcmVhKSBzaGFwZTIgOiBuZXcgQXJlYShzaGFwZTIpKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0KLSAgICAgICAgfSBlbHNlIGlmIChyZWdpb25PcCA9PSBSZWdpb24uT3AuVU5JT04ubmF0aXZlSW50KSB7Ci0gICAgICAgICAgICAvLyBpZiBzaGFwZTEgaXMgbnVsbCwgdGhlbiB0aGUgcmVzdWx0IGlzIHNpbXBseSBzaGFwZTIuCi0gICAgICAgICAgICBpZiAoc2hhcGUxID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEFyZWEoc2hhcGUyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gcmVzdWx0IGlzIGFsd2F5cyBhIG5ldyBhcmVhLgotICAgICAgICAgICAgQXJlYSByZXN1bHQgPSBuZXcgQXJlYShzaGFwZTEpOwotICAgICAgICAgICAgcmVzdWx0LmFkZChzaGFwZTIgaW5zdGFuY2VvZiBBcmVhID8gKEFyZWEpIHNoYXBlMiA6IG5ldyBBcmVhKHNoYXBlMikpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLQotICAgICAgICB9IGVsc2UgaWYgKHJlZ2lvbk9wID09IFJlZ2lvbi5PcC5YT1IubmF0aXZlSW50KSB7Ci0gICAgICAgICAgICAvLyBpZiBzaGFwZTEgaXMgbnVsbCwgdGhlbiB0aGUgcmVzdWx0IGlzIHNpbXBseSBzaGFwZTIKLSAgICAgICAgICAgIGlmIChzaGFwZTEgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQXJlYShzaGFwZTIpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyByZXN1bHQgaXMgYWx3YXlzIGEgbmV3IGFyZWEuCi0gICAgICAgICAgICBBcmVhIHJlc3VsdCA9IG5ldyBBcmVhKHNoYXBlMSk7Ci0gICAgICAgICAgICByZXN1bHQuZXhjbHVzaXZlT3Ioc2hhcGUyIGluc3RhbmNlb2YgQXJlYSA/IChBcmVhKSBzaGFwZTIgOiBuZXcgQXJlYShzaGFwZTIpKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0KLSAgICAgICAgfSBlbHNlIGlmIChyZWdpb25PcCA9PSBSZWdpb24uT3AuUkVWRVJTRV9ESUZGRVJFTkNFLm5hdGl2ZUludCkgewotICAgICAgICAgICAgLy8gcmVzdWx0IGlzIGFsd2F5cyBhIG5ldyBhcmVhLgotICAgICAgICAgICAgQXJlYSByZXN1bHQgPSBuZXcgQXJlYShzaGFwZTIpOwotCi0gICAgICAgICAgICBpZiAoc2hhcGUxICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQuc3VidHJhY3Qoc2hhcGUxIGluc3RhbmNlb2YgQXJlYSA/IChBcmVhKSBzaGFwZTEgOiBuZXcgQXJlYShzaGFwZTEpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gaXNFbXB0eShSZWdpb24gdGhpc1JlZ2lvbikgewotICAgICAgICBSZWdpb25fRGVsZWdhdGUgcmVnaW9uRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUmVnaW9uLm1OYXRpdmVSZWdpb24pOwotICAgICAgICBpZiAocmVnaW9uRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gcmVnaW9uRGVsZWdhdGUubUFyZWEuaXNFbXB0eSgpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIGlzUmVjdChSZWdpb24gdGhpc1JlZ2lvbikgewotICAgICAgICBSZWdpb25fRGVsZWdhdGUgcmVnaW9uRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUmVnaW9uLm1OYXRpdmVSZWdpb24pOwotICAgICAgICBpZiAocmVnaW9uRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gcmVnaW9uRGVsZWdhdGUubUFyZWEuaXNSZWN0YW5ndWxhcigpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIGlzQ29tcGxleChSZWdpb24gdGhpc1JlZ2lvbikgewotICAgICAgICBSZWdpb25fRGVsZWdhdGUgcmVnaW9uRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUmVnaW9uLm1OYXRpdmVSZWdpb24pOwotICAgICAgICBpZiAocmVnaW9uRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gcmVnaW9uRGVsZWdhdGUubUFyZWEuaXNTaW5ndWxhcigpID09IGZhbHNlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIGNvbnRhaW5zKFJlZ2lvbiB0aGlzUmVnaW9uLCBpbnQgeCwgaW50IHkpIHsKLSAgICAgICAgUmVnaW9uX0RlbGVnYXRlIHJlZ2lvbkRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc1JlZ2lvbi5tTmF0aXZlUmVnaW9uKTsKLSAgICAgICAgaWYgKHJlZ2lvbkRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiByZWdpb25EZWxlZ2F0ZS5tQXJlYS5jb250YWlucyh4LCB5KTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBxdWlja0NvbnRhaW5zKFJlZ2lvbiB0aGlzUmVnaW9uLAotICAgICAgICAgICAgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSkgewotICAgICAgICBSZWdpb25fRGVsZWdhdGUgcmVnaW9uRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUmVnaW9uLm1OYXRpdmVSZWdpb24pOwotICAgICAgICBpZiAocmVnaW9uRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHJlZ2lvbkRlbGVnYXRlLm1BcmVhLmlzUmVjdGFuZ3VsYXIoKSAmJgotICAgICAgICAgICAgICAgIHJlZ2lvbkRlbGVnYXRlLm1BcmVhLmNvbnRhaW5zKGxlZnQsIHRvcCwgcmlnaHQgLSBsZWZ0LCBib3R0b20gLSB0b3ApOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIHF1aWNrUmVqZWN0KFJlZ2lvbiB0aGlzUmVnaW9uLAotICAgICAgICAgICAgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSkgewotICAgICAgICBSZWdpb25fRGVsZWdhdGUgcmVnaW9uRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUmVnaW9uLm1OYXRpdmVSZWdpb24pOwotICAgICAgICBpZiAocmVnaW9uRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHJlZ2lvbkRlbGVnYXRlLm1BcmVhLmlzRW1wdHkoKSB8fAotICAgICAgICAgICAgICAgIHJlZ2lvbkRlbGVnYXRlLm1BcmVhLmludGVyc2VjdHMobGVmdCwgdG9wLCByaWdodCAtIGxlZnQsIGJvdHRvbSAtIHRvcCkgPT0gZmFsc2U7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gcXVpY2tSZWplY3QoUmVnaW9uIHRoaXNSZWdpb24sIFJlZ2lvbiByZ24pIHsKLSAgICAgICAgUmVnaW9uX0RlbGVnYXRlIHJlZ2lvbkRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc1JlZ2lvbi5tTmF0aXZlUmVnaW9uKTsKLSAgICAgICAgaWYgKHJlZ2lvbkRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIFJlZ2lvbl9EZWxlZ2F0ZSB0YXJnZXRSZWdpb25EZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKHJnbi5tTmF0aXZlUmVnaW9uKTsKLSAgICAgICAgaWYgKHRhcmdldFJlZ2lvbkRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiByZWdpb25EZWxlZ2F0ZS5tQXJlYS5pc0VtcHR5KCkgfHwKLSAgICAgICAgICAgICAgICByZWdpb25EZWxlZ2F0ZS5tQXJlYS5nZXRCb3VuZHMoKS5pbnRlcnNlY3RzKAotICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0UmVnaW9uRGVsZWdhdGUubUFyZWEuZ2V0Qm91bmRzKCkpID09IGZhbHNlOwotCi0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgdHJhbnNsYXRlKFJlZ2lvbiB0aGlzUmVnaW9uLCBpbnQgZHgsIGludCBkeSwgUmVnaW9uIGRzdCkgewotICAgICAgICBSZWdpb25fRGVsZWdhdGUgcmVnaW9uRGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZSh0aGlzUmVnaW9uLm1OYXRpdmVSZWdpb24pOwotICAgICAgICBpZiAocmVnaW9uRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgUmVnaW9uX0RlbGVnYXRlIHRhcmdldFJlZ2lvbkRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUoZHN0Lm1OYXRpdmVSZWdpb24pOwotICAgICAgICBpZiAodGFyZ2V0UmVnaW9uRGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHJlZ2lvbkRlbGVnYXRlLm1BcmVhLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgdGFyZ2V0UmVnaW9uRGVsZWdhdGUubUFyZWEgPSBuZXcgQXJlYSgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGFyZ2V0UmVnaW9uRGVsZWdhdGUubUFyZWEgPSBuZXcgQXJlYShyZWdpb25EZWxlZ2F0ZS5tQXJlYSk7Ci0gICAgICAgICAgICBBZmZpbmVUcmFuc2Zvcm0gbXR4ID0gbmV3IEFmZmluZVRyYW5zZm9ybSgpOwotICAgICAgICAgICAgbXR4LnRyYW5zbGF0ZShkeCwgZHkpOwotICAgICAgICAgICAgdGFyZ2V0UmVnaW9uRGVsZWdhdGUubUFyZWEudHJhbnNmb3JtKG10eCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBzY2FsZShSZWdpb24gdGhpc1JlZ2lvbiwgZmxvYXQgc2NhbGUsIFJlZ2lvbiBkc3QpIHsKLSAgICAgICAgUmVnaW9uX0RlbGVnYXRlIHJlZ2lvbkRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUodGhpc1JlZ2lvbi5tTmF0aXZlUmVnaW9uKTsKLSAgICAgICAgaWYgKHJlZ2lvbkRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIFJlZ2lvbl9EZWxlZ2F0ZSB0YXJnZXRSZWdpb25EZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKGRzdC5tTmF0aXZlUmVnaW9uKTsKLSAgICAgICAgaWYgKHRhcmdldFJlZ2lvbkRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChyZWdpb25EZWxlZ2F0ZS5tQXJlYS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHRhcmdldFJlZ2lvbkRlbGVnYXRlLm1BcmVhID0gbmV3IEFyZWEoKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRhcmdldFJlZ2lvbkRlbGVnYXRlLm1BcmVhID0gbmV3IEFyZWEocmVnaW9uRGVsZWdhdGUubUFyZWEpOwotICAgICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG10eCA9IG5ldyBBZmZpbmVUcmFuc2Zvcm0oKTsKLSAgICAgICAgICAgIG10eC5zY2FsZShzY2FsZSwgc2NhbGUpOwotICAgICAgICAgICAgdGFyZ2V0UmVnaW9uRGVsZWdhdGUubUFyZWEudHJhbnNmb3JtKG10eCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZUNvbnN0cnVjdG9yKCkgewotICAgICAgICBSZWdpb25fRGVsZWdhdGUgbmV3RGVsZWdhdGUgPSBuZXcgUmVnaW9uX0RlbGVnYXRlKCk7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5hZGROZXdEZWxlZ2F0ZShuZXdEZWxlZ2F0ZSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgbmF0aXZlRGVzdHJ1Y3RvcihpbnQgbmF0aXZlX3JlZ2lvbikgewotICAgICAgICBzTWFuYWdlci5yZW1vdmVKYXZhUmVmZXJlbmNlRm9yKG5hdGl2ZV9yZWdpb24pOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZVNldFJlZ2lvbihpbnQgbmF0aXZlX2RzdCwgaW50IG5hdGl2ZV9zcmMpIHsKLSAgICAgICAgUmVnaW9uX0RlbGVnYXRlIGRzdFJlZ2lvbiA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9kc3QpOwotICAgICAgICBpZiAoZHN0UmVnaW9uID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgUmVnaW9uX0RlbGVnYXRlIHNyY1JlZ2lvbiA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9zcmMpOwotICAgICAgICBpZiAoc3JjUmVnaW9uID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgZHN0UmVnaW9uLm1BcmVhLnJlc2V0KCk7Ci0gICAgICAgIGRzdFJlZ2lvbi5tQXJlYS5hZGQoc3JjUmVnaW9uLm1BcmVhKTsKLQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVTZXRSZWN0KGludCBuYXRpdmVfZHN0LAotICAgICAgICAgICAgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSkgewotICAgICAgICBSZWdpb25fRGVsZWdhdGUgZHN0UmVnaW9uID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX2RzdCk7Ci0gICAgICAgIGlmIChkc3RSZWdpb24gPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBkc3RSZWdpb24ubUFyZWEgPSBuZXcgQXJlYShuZXcgUmVjdGFuZ2xlMkQuRmxvYXQobGVmdCwgdG9wLCByaWdodCAtIGxlZnQsIGJvdHRvbSAtIHRvcCkpOwotICAgICAgICByZXR1cm4gZHN0UmVnaW9uLm1BcmVhLmdldEJvdW5kcygpLmlzRW1wdHkoKSA9PSBmYWxzZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVTZXRQYXRoKGludCBuYXRpdmVfZHN0LCBpbnQgbmF0aXZlX3BhdGgsIGludCBuYXRpdmVfY2xpcCkgewotICAgICAgICBSZWdpb25fRGVsZWdhdGUgZHN0UmVnaW9uID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX2RzdCk7Ci0gICAgICAgIGlmIChkc3RSZWdpb24gPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBQYXRoX0RlbGVnYXRlIHBhdGggPSBQYXRoX0RlbGVnYXRlLmdldERlbGVnYXRlKG5hdGl2ZV9wYXRoKTsKLSAgICAgICAgaWYgKHBhdGggPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBkc3RSZWdpb24ubUFyZWEgPSBuZXcgQXJlYShwYXRoLmdldEphdmFTaGFwZSgpKTsKLQotICAgICAgICBSZWdpb25fRGVsZWdhdGUgY2xpcCA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9jbGlwKTsKLSAgICAgICAgaWYgKGNsaXAgIT0gbnVsbCkgewotICAgICAgICAgICAgZHN0UmVnaW9uLm1BcmVhLnN1YnRyYWN0KGNsaXAuZ2V0SmF2YUFyZWEoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZHN0UmVnaW9uLm1BcmVhLmdldEJvdW5kcygpLmlzRW1wdHkoKSA9PSBmYWxzZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVHZXRCb3VuZHMoaW50IG5hdGl2ZV9yZWdpb24sIFJlY3QgcmVjdCkgewotICAgICAgICBSZWdpb25fRGVsZWdhdGUgcmVnaW9uID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX3JlZ2lvbik7Ci0gICAgICAgIGlmIChyZWdpb24gPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBSZWN0YW5nbGUgYm91bmRzID0gcmVnaW9uLm1BcmVhLmdldEJvdW5kcygpOwotICAgICAgICBpZiAoYm91bmRzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgcmVjdC5sZWZ0ID0gcmVjdC50b3AgPSByZWN0LnJpZ2h0ID0gcmVjdC5ib3R0b20gPSAwOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmVjdC5sZWZ0ID0gYm91bmRzLng7Ci0gICAgICAgIHJlY3QudG9wID0gYm91bmRzLnk7Ci0gICAgICAgIHJlY3QucmlnaHQgPSBib3VuZHMueCArIGJvdW5kcy53aWR0aDsKLSAgICAgICAgcmVjdC5ib3R0b20gPSBib3VuZHMueSArIGJvdW5kcy5oZWlnaHQ7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZUdldEJvdW5kYXJ5UGF0aChpbnQgbmF0aXZlX3JlZ2lvbiwgaW50IG5hdGl2ZV9wYXRoKSB7Ci0gICAgICAgIFJlZ2lvbl9EZWxlZ2F0ZSByZWdpb24gPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfcmVnaW9uKTsKLSAgICAgICAgaWYgKHJlZ2lvbiA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBQYXRoX0RlbGVnYXRlIHBhdGggPSBQYXRoX0RlbGVnYXRlLmdldERlbGVnYXRlKG5hdGl2ZV9wYXRoKTsKLSAgICAgICAgaWYgKHBhdGggPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHJlZ2lvbi5tQXJlYS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHBhdGgucmVzZXQoKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHBhdGguc2V0UGF0aEl0ZXJhdG9yKHJlZ2lvbi5tQXJlYS5nZXRQYXRoSXRlcmF0b3IobmV3IEFmZmluZVRyYW5zZm9ybSgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZU9wKGludCBuYXRpdmVfZHN0LAotICAgICAgICAgICAgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSwgaW50IG9wKSB7Ci0gICAgICAgIFJlZ2lvbl9EZWxlZ2F0ZSByZWdpb24gPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfZHN0KTsKLSAgICAgICAgaWYgKHJlZ2lvbiA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICByZWdpb24ubUFyZWEgPSBjb21iaW5lU2hhcGVzKHJlZ2lvbi5tQXJlYSwKLSAgICAgICAgICAgICAgICBuZXcgUmVjdGFuZ2xlMkQuRmxvYXQobGVmdCwgdG9wLCByaWdodCAtIGxlZnQsIGJvdHRvbSAtIHRvcCksIG9wKTsKLQotICAgICAgICBhc3NlcnQgcmVnaW9uLm1BcmVhICE9IG51bGw7Ci0gICAgICAgIGlmIChyZWdpb24ubUFyZWEgIT0gbnVsbCkgewotICAgICAgICAgICAgcmVnaW9uLm1BcmVhID0gbmV3IEFyZWEoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiByZWdpb24ubUFyZWEuZ2V0Qm91bmRzKCkuaXNFbXB0eSgpID09IGZhbHNlOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIG5hdGl2ZU9wKGludCBuYXRpdmVfZHN0LCBSZWN0IHJlY3QsIGludCBuYXRpdmVfcmVnaW9uLCBpbnQgb3ApIHsKLSAgICAgICAgUmVnaW9uX0RlbGVnYXRlIHJlZ2lvbiA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9kc3QpOwotICAgICAgICBpZiAocmVnaW9uID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJlZ2lvbi5tQXJlYSA9IGNvbWJpbmVTaGFwZXMocmVnaW9uLm1BcmVhLAotICAgICAgICAgICAgICAgIG5ldyBSZWN0YW5nbGUyRC5GbG9hdChyZWN0LmxlZnQsIHJlY3QudG9wLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpLCBvcCk7Ci0KLSAgICAgICAgYXNzZXJ0IHJlZ2lvbi5tQXJlYSAhPSBudWxsOwotICAgICAgICBpZiAocmVnaW9uLm1BcmVhICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJlZ2lvbi5tQXJlYSA9IG5ldyBBcmVhKCk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gcmVnaW9uLm1BcmVhLmdldEJvdW5kcygpLmlzRW1wdHkoKSA9PSBmYWxzZTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVPcChpbnQgbmF0aXZlX2RzdCwKLSAgICAgICAgICAgIGludCBuYXRpdmVfcmVnaW9uMSwgaW50IG5hdGl2ZV9yZWdpb24yLCBpbnQgb3ApIHsKLSAgICAgICAgUmVnaW9uX0RlbGVnYXRlIGRzdFJlZ2lvbiA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9kc3QpOwotICAgICAgICBpZiAoZHN0UmVnaW9uID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgUmVnaW9uX0RlbGVnYXRlIHJlZ2lvbjEgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfcmVnaW9uMSk7Ci0gICAgICAgIGlmIChyZWdpb24xID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIFJlZ2lvbl9EZWxlZ2F0ZSByZWdpb24yID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX3JlZ2lvbjIpOwotICAgICAgICBpZiAocmVnaW9uMiA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBkc3RSZWdpb24ubUFyZWEgPSBjb21iaW5lU2hhcGVzKHJlZ2lvbjEubUFyZWEsIHJlZ2lvbjIubUFyZWEsIG9wKTsKLQotICAgICAgICBhc3NlcnQgZHN0UmVnaW9uLm1BcmVhICE9IG51bGw7Ci0gICAgICAgIGlmIChkc3RSZWdpb24ubUFyZWEgIT0gbnVsbCkgewotICAgICAgICAgICAgZHN0UmVnaW9uLm1BcmVhID0gbmV3IEFyZWEoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBkc3RSZWdpb24ubUFyZWEuZ2V0Qm91bmRzKCkuaXNFbXB0eSgpID09IGZhbHNlOwotCi0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVDcmVhdGVGcm9tUGFyY2VsKFBhcmNlbCBwKSB7Ci0gICAgICAgIC8vIFRoaXMgaXMgb25seSBjYWxsZWQgYnkgUmVnaW9uLkNSRUFUT1IgKFBhcmNlbGFibGUuQ3JlYXRvcjxSZWdpb24+KSwgd2hpY2ggaXMgb25seQotICAgICAgICAvLyB1c2VkIGR1cmluZyBhaWRsIGNhbGwgc28gcmVhbGx5IHRoaXMgc2hvdWxkIG5vdCBiZSBjYWxsZWQuCi0gICAgICAgIEJyaWRnZS5nZXRMb2coKS5lcnJvcihMYXlvdXRMb2cuVEFHX1VOU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICJBSURMIGlzIG5vdCBzdXBwb3JlZCwgYW5kIHRoZXJlZm9yZSBSZWdpb25zIGNhbm5vdCBiZSBjcmVhdGVkIGZyb20gcGFyY2Vscy4iLAotICAgICAgICAgICAgICAgIG51bGwgLypkYXRhKi8pOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBuYXRpdmVXcml0ZVRvUGFyY2VsKGludCBuYXRpdmVfcmVnaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyY2VsIHApIHsKLSAgICAgICAgLy8gVGhpcyBpcyBvbmx5IGNhbGxlZCB3aGVuIHNlbmRpbmcgYSByZWdpb24gdGhyb3VnaCBhaWRsLCBzbyByZWFsbHkgdGhpcyBzaG91bGQgbm90Ci0gICAgICAgIC8vIGJlIGNhbGxlZC4KLSAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfVU5TVVBQT1JURUQsCi0gICAgICAgICAgICAgICAgIkFJREwgaXMgbm90IHN1cHBvcmVkLCBhbmQgdGhlcmVmb3JlIFJlZ2lvbnMgY2Fubm90IGJlIHdyaXR0ZW4gdG8gcGFyY2Vscy4iLAotICAgICAgICAgICAgICAgIG51bGwgLypkYXRhKi8pOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGJvb2xlYW4gbmF0aXZlRXF1YWxzKGludCBuYXRpdmVfcjEsIGludCBuYXRpdmVfcjIpIHsKLSAgICAgICAgUmVnaW9uX0RlbGVnYXRlIHJlZ2lvbjEgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfcjEpOwotICAgICAgICBpZiAocmVnaW9uMSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBSZWdpb25fRGVsZWdhdGUgcmVnaW9uMiA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9yMik7Ci0gICAgICAgIGlmIChyZWdpb24yID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiByZWdpb24xLm1BcmVhLmVxdWFscyhyZWdpb24yLm1BcmVhKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgU3RyaW5nIG5hdGl2ZVRvU3RyaW5nKGludCBuYXRpdmVfcmVnaW9uKSB7Ci0gICAgICAgIFJlZ2lvbl9EZWxlZ2F0ZSByZWdpb24gPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfcmVnaW9uKTsKLSAgICAgICAgaWYgKHJlZ2lvbiA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gIm5vdCBmb3VuZCI7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gcmVnaW9uLm1BcmVhLnRvU3RyaW5nKCk7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBQcml2YXRlIGRlbGVnYXRlL2hlbHBlciBtZXRob2RzIC0tLS0KLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9TaGFkZXJfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvU2hhZGVyX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2OGMwMzg0Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvU2hhZGVyX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5TaGFkZXIuVGlsZU1vZGU7Ci0KLS8qKgotICogRGVsZWdhdGUgaW1wbGVtZW50aW5nIHRoZSBuYXRpdmUgbWV0aG9kcyBvZiBhbmRyb2lkLmdyYXBoaWNzLlNoYWRlcgotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsIG5hdGl2ZSBtZXRob2RzIG9mIFNoYWRlciBoYXZlIGJlZW4gcmVwbGFjZWQKLSAqIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIFRoaXMgY2xhc3MgYmVoYXZlcyBsaWtlIHRoZSBvcmlnaW5hbCBuYXRpdmUgaW1wbGVtZW50YXRpb24sIGJ1dCBpbiBKYXZhLCBrZWVwaW5nIHByZXZpb3VzbHkKLSAqIG5hdGl2ZSBkYXRhIGludG8gaXRzIG93biBvYmplY3RzIGFuZCBtYXBwaW5nIHRoZW0gdG8gaW50IHRoYXQgYXJlIHNlbnQgYmFjayBhbmQgZm9ydGggYmV0d2VlbgotICogaXQgYW5kIHRoZSBvcmlnaW5hbCBTaGFkZXIgY2xhc3MuCi0gKgotICogVGhpcyBhbHNvIHNlcnZlIGFzIGEgYmFzZSBjbGFzcyBmb3IgYWxsIFNoYWRlciBkZWxlZ2F0ZSBjbGFzc2VzLgotICoKLSAqIEBzZWUgRGVsZWdhdGVNYW5hZ2VyCi0gKgotICovCi1wdWJsaWMgYWJzdHJhY3QgY2xhc3MgU2hhZGVyX0RlbGVnYXRlIHsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgbWFuYWdlciAtLS0tCi0gICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBEZWxlZ2F0ZU1hbmFnZXI8U2hhZGVyX0RlbGVnYXRlPiBzTWFuYWdlciA9Ci0gICAgICAgICAgICBuZXcgRGVsZWdhdGVNYW5hZ2VyPFNoYWRlcl9EZWxlZ2F0ZT4oU2hhZGVyX0RlbGVnYXRlLmNsYXNzKTsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgaGVscGVyIGRhdGEgLS0tLQotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBkYXRhIC0tLS0KLSAgICBwcml2YXRlIE1hdHJpeF9EZWxlZ2F0ZSBtTG9jYWxNYXRyaXggPSBudWxsOwotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgcHVibGljIHN0YXRpYyBTaGFkZXJfRGVsZWdhdGUgZ2V0RGVsZWdhdGUoaW50IG5hdGl2ZVNoYWRlcikgewotICAgICAgICByZXR1cm4gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlU2hhZGVyKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSB7QGxpbmsgVGlsZU1vZGV9IG1hdGNoaW5nIHRoZSBnaXZlbiBpbnQuCi0gICAgICogQHBhcmFtIHRpbGVNb2RlIHRoZSB0aWxlIG1vZGUgaW50IHZhbHVlCi0gICAgICogQHJldHVybiB0aGUgVGlsZU1vZGUgZW51bS4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIFRpbGVNb2RlIGdldFRpbGVNb2RlKGludCB0aWxlTW9kZSkgewotICAgICAgICBmb3IgKFRpbGVNb2RlIHRtIDogVGlsZU1vZGUudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGlmICh0bS5uYXRpdmVJbnQgPT0gdGlsZU1vZGUpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gdG07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBhc3NlcnQgZmFsc2U7Ci0gICAgICAgIHJldHVybiBUaWxlTW9kZS5DTEFNUDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgYWJzdHJhY3QgamF2YS5hd3QuUGFpbnQgZ2V0SmF2YVBhaW50KCk7Ci0gICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gaXNTdXBwb3J0ZWQoKTsKLSAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCk7Ci0KLSAgICAvLyAtLS0tIG5hdGl2ZSBtZXRob2RzIC0tLS0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZURlc3RydWN0b3IoaW50IG5hdGl2ZV9zaGFkZXIsIGludCBuYXRpdmVfc2tpYVNoYWRlcikgewotICAgICAgICBzTWFuYWdlci5yZW1vdmVKYXZhUmVmZXJlbmNlRm9yKG5hdGl2ZV9zaGFkZXIpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIG5hdGl2ZVNldExvY2FsTWF0cml4KGludCBuYXRpdmVfc2hhZGVyLCBpbnQgbmF0aXZlX3NraWFTaGFkZXIsCi0gICAgICAgICAgICBpbnQgbWF0cml4X2luc3RhbmNlKSB7Ci0gICAgICAgIC8vIGdldCB0aGUgZGVsZWdhdGUgZnJvbSB0aGUgbmF0aXZlIGludC4KLSAgICAgICAgU2hhZGVyX0RlbGVnYXRlIHNoYWRlckRlbGVnYXRlID0gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlX3NoYWRlcik7Ci0gICAgICAgIGlmIChzaGFkZXJEZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBzaGFkZXJEZWxlZ2F0ZS5tTG9jYWxNYXRyaXggPSBNYXRyaXhfRGVsZWdhdGUuZ2V0RGVsZWdhdGUobWF0cml4X2luc3RhbmNlKTsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgcHJvdGVjdGVkIGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtIGdldExvY2FsTWF0cml4KCkgewotICAgICAgICBpZiAobUxvY2FsTWF0cml4ICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBtTG9jYWxNYXRyaXguZ2V0QWZmaW5lVHJhbnNmb3JtKCk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbmV3IGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtKCk7Ci0gICAgfQotCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1N1bVBhdGhFZmZlY3RfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvU3VtUGF0aEVmZmVjdF9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MTBkZjBjLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvU3VtUGF0aEVmZmVjdF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgamF2YS5hd3QuU3Ryb2tlOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5TdW1QYXRoRWZmZWN0Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgU3VtUGF0aEVmZmVjdCBoYXZlIGJlZW4KLSAqIHJlcGxhY2VkIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIFRoaXMgY2xhc3MgYmVoYXZlcyBsaWtlIHRoZSBvcmlnaW5hbCBuYXRpdmUgaW1wbGVtZW50YXRpb24sIGJ1dCBpbiBKYXZhLCBrZWVwaW5nIHByZXZpb3VzbHkKLSAqIG5hdGl2ZSBkYXRhIGludG8gaXRzIG93biBvYmplY3RzIGFuZCBtYXBwaW5nIHRoZW0gdG8gaW50IHRoYXQgYXJlIHNlbnQgYmFjayBhbmQgZm9ydGggYmV0d2VlbgotICogaXQgYW5kIHRoZSBvcmlnaW5hbCBTdW1QYXRoRWZmZWN0IGNsYXNzLgotICoKLSAqIEJlY2F1c2UgdGhpcyBleHRlbmRzIHtAbGluayBQYXRoRWZmZWN0X0RlbGVnYXRlfSwgdGhlcmUncyBubyBuZWVkIHRvIHVzZSBhIHtAbGluayBEZWxlZ2F0ZU1hbmFnZXJ9LAotICogYXMgYWxsIHRoZSBTaGFkZXIgY2xhc3NlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBtYW5hZ2VyIG93bmVkIGJ5IHtAbGluayBQYXRoRWZmZWN0X0RlbGVnYXRlfS4KLSAqCi0gKiBAc2VlIFBhdGhFZmZlY3RfRGVsZWdhdGUKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBTdW1QYXRoRWZmZWN0X0RlbGVnYXRlIGV4dGVuZHMgUGF0aEVmZmVjdF9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cm9rZSBnZXRTdHJva2UoUGFpbnRfRGVsZWdhdGUgcGFpbnQpIHsKLSAgICAgICAgLy8gRklYTUUKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNTdXBwb3J0ZWQoKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCkgewotICAgICAgICByZXR1cm4gIlN1bSBQYXRoIEVmZmVjdHMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gTGF5b3V0IFByZXZpZXcgbW9kZS4iOwotICAgIH0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVDcmVhdGUoaW50IGZpcnN0LCBpbnQgc2Vjb25kKSB7Ci0gICAgICAgIFN1bVBhdGhFZmZlY3RfRGVsZWdhdGUgbmV3RGVsZWdhdGUgPSBuZXcgU3VtUGF0aEVmZmVjdF9EZWxlZ2F0ZSgpOwotICAgICAgICByZXR1cm4gc01hbmFnZXIuYWRkTmV3RGVsZWdhdGUobmV3RGVsZWdhdGUpOwotICAgIH0KLQotICAgIC8vIC0tLS0gUHJpdmF0ZSBkZWxlZ2F0ZS9oZWxwZXIgbWV0aG9kcyAtLS0tCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1N3ZWVwR3JhZGllbnRfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvU3dlZXBHcmFkaWVudF9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxM2FlMTJlLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvU3dlZXBHcmFkaWVudF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMjIyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQuZ3JhcGhpY3M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuTGF5b3V0TG9nOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5Td2VlcEdyYWRpZW50Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgU3dlZXBHcmFkaWVudCBoYXZlIGJlZW4KLSAqIHJlcGxhY2VkIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIFRoaXMgY2xhc3MgYmVoYXZlcyBsaWtlIHRoZSBvcmlnaW5hbCBuYXRpdmUgaW1wbGVtZW50YXRpb24sIGJ1dCBpbiBKYXZhLCBrZWVwaW5nIHByZXZpb3VzbHkKLSAqIG5hdGl2ZSBkYXRhIGludG8gaXRzIG93biBvYmplY3RzIGFuZCBtYXBwaW5nIHRoZW0gdG8gaW50IHRoYXQgYXJlIHNlbnQgYmFjayBhbmQgZm9ydGggYmV0d2VlbgotICogaXQgYW5kIHRoZSBvcmlnaW5hbCBTd2VlcEdyYWRpZW50IGNsYXNzLgotICoKLSAqIEJlY2F1c2UgdGhpcyBleHRlbmRzIHtAbGluayBTaGFkZXJfRGVsZWdhdGV9LCB0aGVyZSdzIG5vIG5lZWQgdG8gdXNlIGEge0BsaW5rIERlbGVnYXRlTWFuYWdlcn0sCi0gKiBhcyBhbGwgdGhlIFNoYWRlciBjbGFzc2VzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIG1hbmFnZXIgb3duZWQgYnkge0BsaW5rIFNoYWRlcl9EZWxlZ2F0ZX0uCi0gKgotICogQHNlZSBTaGFkZXJfRGVsZWdhdGUKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBTd2VlcEdyYWRpZW50X0RlbGVnYXRlIGV4dGVuZHMgR3JhZGllbnRfRGVsZWdhdGUgewotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBkYXRhIC0tLS0KLSAgICBwcml2YXRlIGphdmEuYXd0LlBhaW50IG1KYXZhUGFpbnQ7Ci0KLSAgICAvLyAtLS0tIFB1YmxpYyBIZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgamF2YS5hd3QuUGFpbnQgZ2V0SmF2YVBhaW50KCkgewotICAgICAgICByZXR1cm4gbUphdmFQYWludDsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIG5hdGl2ZSBtZXRob2RzIC0tLS0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBpbnQgbmF0aXZlQ3JlYXRlMShmbG9hdCB4LCBmbG9hdCB5LCBpbnQgY29sb3JzW10sIGZsb2F0IHBvc2l0aW9uc1tdKSB7Ci0gICAgICAgIFN3ZWVwR3JhZGllbnRfRGVsZWdhdGUgbmV3RGVsZWdhdGUgPSBuZXcgU3dlZXBHcmFkaWVudF9EZWxlZ2F0ZSh4LCB5LCBjb2xvcnMsIHBvc2l0aW9ucyk7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5hZGROZXdEZWxlZ2F0ZShuZXdEZWxlZ2F0ZSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBuYXRpdmVDcmVhdGUyKGZsb2F0IHgsIGZsb2F0IHksIGludCBjb2xvcjAsIGludCBjb2xvcjEpIHsKLSAgICAgICAgcmV0dXJuIG5hdGl2ZUNyZWF0ZTEoeCwgeSwgbmV3IGludFtdIHsgY29sb3IwLCBjb2xvcjEgfSwgbnVsbCAvKnBvc2l0aW9ucyovKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZVBvc3RDcmVhdGUxKGludCBuYXRpdmVfc2hhZGVyLCBmbG9hdCBjeCwgZmxvYXQgY3ksCi0gICAgICAgICAgICBpbnRbXSBjb2xvcnMsIGZsb2F0W10gcG9zaXRpb25zKSB7Ci0gICAgICAgIC8vIG5vdGhpbmcgdG8gYmUgZG9uZSBoZXJlLgotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZVBvc3RDcmVhdGUyKGludCBuYXRpdmVfc2hhZGVyLCBmbG9hdCBjeCwgZmxvYXQgY3ksCi0gICAgICAgICAgICBpbnQgY29sb3IwLCBpbnQgY29sb3IxKSB7Ci0gICAgICAgIC8vIG5vdGhpbmcgdG8gYmUgZG9uZSBoZXJlLgotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFByaXZhdGUgZGVsZWdhdGUvaGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgLyoqCi0gICAgICogQSBzdWJjbGFzcyBvZiBTaGFkZXIgdGhhdCBkcmF3cyBhIHN3ZWVwIGdyYWRpZW50IGFyb3VuZCBhIGNlbnRlciBwb2ludC4KLSAgICAgKgotICAgICAqIEBwYXJhbSBjeCAgICAgICBUaGUgeC1jb29yZGluYXRlIG9mIHRoZSBjZW50ZXIKLSAgICAgKiBAcGFyYW0gY3kgICAgICAgVGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgY2VudGVyCi0gICAgICogQHBhcmFtIGNvbG9ycyAgIFRoZSBjb2xvcnMgdG8gYmUgZGlzdHJpYnV0ZWQgYmV0d2VlbiBhcm91bmQgdGhlIGNlbnRlci4KLSAgICAgKiAgICAgICAgICAgICAgICAgVGhlcmUgbXVzdCBiZSBhdCBsZWFzdCAyIGNvbG9ycyBpbiB0aGUgYXJyYXkuCi0gICAgICogQHBhcmFtIHBvc2l0aW9ucyBNYXkgYmUgTlVMTC4gVGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mCi0gICAgICogICAgICAgICAgICAgICAgIGVhY2ggY29ycmVzcG9uZGluZyBjb2xvciBpbiB0aGUgY29sb3JzIGFycmF5LCBiZWdpbm5pbmcKLSAgICAgKiAgICAgICAgICAgICAgICAgd2l0aCAwIGFuZCBlbmRpbmcgd2l0aCAxLjAuIElmIHRoZSB2YWx1ZXMgYXJlIG5vdAotICAgICAqICAgICAgICAgICAgICAgICBtb25vdG9uaWMsIHRoZSBkcmF3aW5nIG1heSBwcm9kdWNlIHVuZXhwZWN0ZWQgcmVzdWx0cy4KLSAgICAgKiAgICAgICAgICAgICAgICAgSWYgcG9zaXRpb25zIGlzIE5VTEwsIHRoZW4gdGhlIGNvbG9ycyBhcmUgYXV0b21hdGljYWxseQotICAgICAqICAgICAgICAgICAgICAgICBzcGFjZWQgZXZlbmx5LgotICAgICAqLwotICAgIHByaXZhdGUgU3dlZXBHcmFkaWVudF9EZWxlZ2F0ZShmbG9hdCBjeCwgZmxvYXQgY3ksCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbG9yc1tdLCBmbG9hdCBwb3NpdGlvbnNbXSkgewotICAgICAgICBzdXBlcihjb2xvcnMsIHBvc2l0aW9ucyk7Ci0gICAgICAgIG1KYXZhUGFpbnQgPSBuZXcgU3dlZXBHcmFkaWVudFBhaW50KGN4LCBjeSwgbUNvbG9ycywgbVBvc2l0aW9ucyk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBjbGFzcyBTd2VlcEdyYWRpZW50UGFpbnQgZXh0ZW5kcyBHcmFkaWVudFBhaW50IHsKLQotICAgICAgICBwcml2YXRlIGZpbmFsIGZsb2F0IG1DeDsKLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBmbG9hdCBtQ3k7Ci0KLSAgICAgICAgcHVibGljIFN3ZWVwR3JhZGllbnRQYWludChmbG9hdCBjeCwgZmxvYXQgY3ksIGludFtdIGNvbG9ycywKLSAgICAgICAgICAgICAgICBmbG9hdFtdIHBvc2l0aW9ucykgewotICAgICAgICAgICAgc3VwZXIoY29sb3JzLCBwb3NpdGlvbnMsIG51bGwgLyp0aWxlTW9kZSovKTsKLSAgICAgICAgICAgIG1DeCA9IGN4OwotICAgICAgICAgICAgbUN5ID0gY3k7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIGphdmEuYXd0LlBhaW50Q29udGV4dCBjcmVhdGVDb250ZXh0KAotICAgICAgICAgICAgICAgIGphdmEuYXd0LmltYWdlLkNvbG9yTW9kZWwgICAgIGNvbG9yTW9kZWwsCi0gICAgICAgICAgICAgICAgamF2YS5hd3QuUmVjdGFuZ2xlICAgICAgICAgICAgZGV2aWNlQm91bmRzLAotICAgICAgICAgICAgICAgIGphdmEuYXd0Lmdlb20uUmVjdGFuZ2xlMkQgICAgIHVzZXJCb3VuZHMsCi0gICAgICAgICAgICAgICAgamF2YS5hd3QuZ2VvbS5BZmZpbmVUcmFuc2Zvcm0geGZvcm0sCi0gICAgICAgICAgICAgICAgamF2YS5hd3QuUmVuZGVyaW5nSGludHMgICAgICAgaGludHMpIHsKLSAgICAgICAgICAgIHByZWNvbXB1dGVHcmFkaWVudENvbG9ycygpOwotCi0gICAgICAgICAgICBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybSBjYW52YXNNYXRyaXg7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIGNhbnZhc01hdHJpeCA9IHhmb3JtLmNyZWF0ZUludmVyc2UoKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGphdmEuYXd0Lmdlb20uTm9uaW52ZXJ0aWJsZVRyYW5zZm9ybUV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX01BVFJJWF9JTlZFUlNFLAotICAgICAgICAgICAgICAgICAgICAgICAgIlVuYWJsZSB0byBpbnZlcnNlIG1hdHJpeCBpbiBTd2VlcEdyYWRpZW50IiwgZSwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgICAgICAgICAgY2FudmFzTWF0cml4ID0gbmV3IGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtIGxvY2FsTWF0cml4ID0gZ2V0TG9jYWxNYXRyaXgoKTsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgbG9jYWxNYXRyaXggPSBsb2NhbE1hdHJpeC5jcmVhdGVJbnZlcnNlKCk7Ci0gICAgICAgICAgICB9IGNhdGNoIChqYXZhLmF3dC5nZW9tLk5vbmludmVydGlibGVUcmFuc2Zvcm1FeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5maWRlbGl0eVdhcm5pbmcoTGF5b3V0TG9nLlRBR19NQVRSSVhfSU5WRVJTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJVbmFibGUgdG8gaW52ZXJzZSBtYXRyaXggaW4gU3dlZXBHcmFkaWVudCIsIGUsIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgICAgIGxvY2FsTWF0cml4ID0gbmV3IGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBuZXcgU3dlZXBHcmFkaWVudFBhaW50Q29udGV4dChjYW52YXNNYXRyaXgsIGxvY2FsTWF0cml4LCBjb2xvck1vZGVsKTsKLSAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGUgY2xhc3MgU3dlZXBHcmFkaWVudFBhaW50Q29udGV4dCBpbXBsZW1lbnRzIGphdmEuYXd0LlBhaW50Q29udGV4dCB7Ci0KLSAgICAgICAgICAgIHByaXZhdGUgZmluYWwgamF2YS5hd3QuZ2VvbS5BZmZpbmVUcmFuc2Zvcm0gbUNhbnZhc01hdHJpeDsKLSAgICAgICAgICAgIHByaXZhdGUgZmluYWwgamF2YS5hd3QuZ2VvbS5BZmZpbmVUcmFuc2Zvcm0gbUxvY2FsTWF0cml4OwotICAgICAgICAgICAgcHJpdmF0ZSBmaW5hbCBqYXZhLmF3dC5pbWFnZS5Db2xvck1vZGVsIG1Db2xvck1vZGVsOwotCi0gICAgICAgICAgICBwdWJsaWMgU3dlZXBHcmFkaWVudFBhaW50Q29udGV4dCgKLSAgICAgICAgICAgICAgICAgICAgamF2YS5hd3QuZ2VvbS5BZmZpbmVUcmFuc2Zvcm0gY2FudmFzTWF0cml4LAotICAgICAgICAgICAgICAgICAgICBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybSBsb2NhbE1hdHJpeCwKLSAgICAgICAgICAgICAgICAgICAgamF2YS5hd3QuaW1hZ2UuQ29sb3JNb2RlbCBjb2xvck1vZGVsKSB7Ci0gICAgICAgICAgICAgICAgbUNhbnZhc01hdHJpeCA9IGNhbnZhc01hdHJpeDsKLSAgICAgICAgICAgICAgICBtTG9jYWxNYXRyaXggPSBsb2NhbE1hdHJpeDsKLSAgICAgICAgICAgICAgICBtQ29sb3JNb2RlbCA9IGNvbG9yTW9kZWw7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgZGlzcG9zZSgpIHsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgamF2YS5hd3QuaW1hZ2UuQ29sb3JNb2RlbCBnZXRDb2xvck1vZGVsKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBtQ29sb3JNb2RlbDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgamF2YS5hd3QuaW1hZ2UuUmFzdGVyIGdldFJhc3RlcihpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCkgewotICAgICAgICAgICAgICAgIGphdmEuYXd0LmltYWdlLkJ1ZmZlcmVkSW1hZ2UgaW1hZ2UgPSBuZXcgamF2YS5hd3QuaW1hZ2UuQnVmZmVyZWRJbWFnZSh3LCBoLAotICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5hd3QuaW1hZ2UuQnVmZmVyZWRJbWFnZS5UWVBFX0lOVF9BUkdCKTsKLQotICAgICAgICAgICAgICAgIGludFtdIGRhdGEgPSBuZXcgaW50W3cqaF07Ci0KLSAgICAgICAgICAgICAgICAvLyBjb21wdXRlIGFuZ2xlIGZyb20gZWFjaCBwb2ludCB0byB0aGUgY2VudGVyLCBhbmQgZmlndXJlIG91dCB0aGUgZGlzdGFuY2UgZnJvbQotICAgICAgICAgICAgICAgIC8vIGl0LgotICAgICAgICAgICAgICAgIGludCBpbmRleCA9IDA7Ci0gICAgICAgICAgICAgICAgZmxvYXRbXSBwdDEgPSBuZXcgZmxvYXRbMl07Ci0gICAgICAgICAgICAgICAgZmxvYXRbXSBwdDIgPSBuZXcgZmxvYXRbMl07Ci0gICAgICAgICAgICAgICAgZm9yIChpbnQgaXkgPSAwIDsgaXkgPCBoIDsgaXkrKykgewotICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpeCA9IDAgOyBpeCA8IHcgOyBpeCsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgdGhlIGNhbnZhcyB0cmFuc2Zvcm0KLSAgICAgICAgICAgICAgICAgICAgICAgIHB0MVswXSA9IHggKyBpeDsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB0MVsxXSA9IHkgKyBpeTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1DYW52YXNNYXRyaXgudHJhbnNmb3JtKHB0MSwgMCwgcHQyLCAwLCAxKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBsb2NhbCBtYXRyaXgKLSAgICAgICAgICAgICAgICAgICAgICAgIHB0MVswXSA9IHB0MlswXSAtIG1DeDsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB0MVsxXSA9IHB0MlsxXSAtIG1DeTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1Mb2NhbE1hdHJpeC50cmFuc2Zvcm0ocHQxLCAwLCBwdDIsIDAsIDEpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkeCA9IHB0MlswXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGR5ID0gcHQyWzFdOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBhbmdsZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkeCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGUgPSAoZmxvYXQpIChkeSA8IDAgPyAzICogTWF0aC5QSSAvIDIgOiBNYXRoLlBJIC8gMik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGR5ID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmdsZSA9IChmbG9hdCkgKGR4IDwgMCA/IE1hdGguUEkgOiAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGUgPSAoZmxvYXQpIE1hdGguYXRhbihkeSAvIGR4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZHggPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkeSA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZ2xlICs9IE1hdGguUEkgKiAyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGUgKz0gTWF0aC5QSTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnZlcnQgdG8gMC0xLiB2YWx1ZSBhbmQgZ2V0IGNvbG9yCi0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2luZGV4KytdID0gZ2V0R3JhZGllbnRDb2xvcigoZmxvYXQpIChhbmdsZSAvICgyICogTWF0aC5QSSkpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGltYWdlLnNldFJHQigwIC8qc3RhcnRYKi8sIDAgLypzdGFydFkqLywgdywgaCwgZGF0YSwgMCAvKm9mZnNldCovLCB3IC8qc2NhbnNpemUqLyk7Ci0KLSAgICAgICAgICAgICAgICByZXR1cm4gaW1hZ2UuZ2V0UmFzdGVyKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvVHlwZWZhY2VfQWNjZXNzb3IuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvVHlwZWZhY2VfQWNjZXNzb3IuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRhZDJhYy4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1R5cGVmYWNlX0FjY2Vzc29yLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLmdyYXBoaWNzOwotCi0vKioKLSAqIENsYXNzIGFsbG93aW5nIGFjY2VzcyB0byBwYWNrYWdlLXByb3RlY3RlZCBtZXRob2RzL2ZpZWxkcy4KLSAqLwotcHVibGljIGNsYXNzIFR5cGVmYWNlX0FjY2Vzc29yIHsKLQotICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzKCkgewotICAgICAgICBUeXBlZmFjZS5zRGVmYXVsdHMgPSBudWxsOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvVHlwZWZhY2VfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvVHlwZWZhY2VfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODcwMWNjOC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1R5cGVmYWNlX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyMTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5MYXlvdXRMb2c7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5CcmlkZ2U7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLkRlbGVnYXRlTWFuYWdlcjsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRm9udExvYWRlcjsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLkFzc2V0TWFuYWdlcjsKLQotaW1wb3J0IGphdmEuYXd0LkZvbnQ7Ci1pbXBvcnQgamF2YS5pby5GaWxlOwotaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7Ci1pbXBvcnQgamF2YS51dGlsLkxpc3Q7Ci0KLS8qKgotICogRGVsZWdhdGUgaW1wbGVtZW50aW5nIHRoZSBuYXRpdmUgbWV0aG9kcyBvZiBhbmRyb2lkLmdyYXBoaWNzLlR5cGVmYWNlCi0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgVHlwZWZhY2UgaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKiBUaGlzIGNsYXNzIGJlaGF2ZXMgbGlrZSB0aGUgb3JpZ2luYWwgbmF0aXZlIGltcGxlbWVudGF0aW9uLCBidXQgaW4gSmF2YSwga2VlcGluZyBwcmV2aW91c2x5Ci0gKiBuYXRpdmUgZGF0YSBpbnRvIGl0cyBvd24gb2JqZWN0cyBhbmQgbWFwcGluZyB0aGVtIHRvIGludCB0aGF0IGFyZSBzZW50IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4KLSAqIGl0IGFuZCB0aGUgb3JpZ2luYWwgVHlwZWZhY2UgY2xhc3MuCi0gKgotICogQHNlZSBEZWxlZ2F0ZU1hbmFnZXIKLSAqCi0gKi8KLXB1YmxpYyBmaW5hbCBjbGFzcyBUeXBlZmFjZV9EZWxlZ2F0ZSB7Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1lTVEVNX0ZPTlRTID0gIi9zeXN0ZW0vZm9udHMvIjsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgbWFuYWdlciAtLS0tCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRGVsZWdhdGVNYW5hZ2VyPFR5cGVmYWNlX0RlbGVnYXRlPiBzTWFuYWdlciA9Ci0gICAgICAgICAgICBuZXcgRGVsZWdhdGVNYW5hZ2VyPFR5cGVmYWNlX0RlbGVnYXRlPihUeXBlZmFjZV9EZWxlZ2F0ZS5jbGFzcyk7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGhlbHBlciBkYXRhIC0tLS0KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGQVVMVF9GQU1JTFkgPSAic2Fucy1zZXJpZiI7Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBGb250TG9hZGVyIHNGb250TG9hZGVyOwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExpc3Q8VHlwZWZhY2VfRGVsZWdhdGU+IHNQb3N0SW5pdERlbGVnYXRlID0KLSAgICAgICAgICAgIG5ldyBBcnJheUxpc3Q8VHlwZWZhY2VfRGVsZWdhdGU+KCk7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotCi0gICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgbUZhbWlseTsKLSAgICBwcml2YXRlIGludCBtU3R5bGU7Ci0gICAgcHJpdmF0ZSBMaXN0PEZvbnQ+IG1Gb250czsKLQotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgdm9pZCBpbml0KEZvbnRMb2FkZXIgZm9udExvYWRlcikgewotICAgICAgICBzRm9udExvYWRlciA9IGZvbnRMb2FkZXI7Ci0KLSAgICAgICAgZm9yIChUeXBlZmFjZV9EZWxlZ2F0ZSBkZWxlZ2F0ZSA6IHNQb3N0SW5pdERlbGVnYXRlKSB7Ci0gICAgICAgICAgICBkZWxlZ2F0ZS5pbml0KCk7Ci0gICAgICAgIH0KLSAgICAgICAgc1Bvc3RJbml0RGVsZWdhdGUuY2xlYXIoKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIFR5cGVmYWNlX0RlbGVnYXRlIGdldERlbGVnYXRlKGludCBuYXRpdmVUeXBlZmFjZSkgewotICAgICAgICByZXR1cm4gc01hbmFnZXIuZ2V0RGVsZWdhdGUobmF0aXZlVHlwZWZhY2UpOwotICAgIH0KLQotICAgIHB1YmxpYyBzdGF0aWMgTGlzdDxGb250PiBnZXRGb250cyhUeXBlZmFjZSB0eXBlZmFjZSkgewotICAgICAgICByZXR1cm4gZ2V0Rm9udHModHlwZWZhY2UubmF0aXZlX2luc3RhbmNlKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIExpc3Q8Rm9udD4gZ2V0Rm9udHMoaW50IG5hdGl2ZV9pbnQpIHsKLSAgICAgICAgVHlwZWZhY2VfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfaW50KTsKLSAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlbGVnYXRlLmdldEZvbnRzKCk7Ci0gICAgfQotCi0gICAgcHVibGljIExpc3Q8Rm9udD4gZ2V0Rm9udHMoKSB7Ci0gICAgICAgIHJldHVybiBtRm9udHM7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBuYXRpdmUgbWV0aG9kcyAtLS0tCi0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgc3luY2hyb25pemVkIGludCBuYXRpdmVDcmVhdGUoU3RyaW5nIGZhbWlseU5hbWUsIGludCBzdHlsZSkgewotICAgICAgICBpZiAoZmFtaWx5TmFtZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICBmYW1pbHlOYW1lID0gREVGQVVMVF9GQU1JTFk7Ci0gICAgICAgIH0KLQotICAgICAgICBUeXBlZmFjZV9EZWxlZ2F0ZSBuZXdEZWxlZ2F0ZSA9IG5ldyBUeXBlZmFjZV9EZWxlZ2F0ZShmYW1pbHlOYW1lLCBzdHlsZSk7Ci0gICAgICAgIGlmIChzRm9udExvYWRlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBuZXdEZWxlZ2F0ZS5pbml0KCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBmb250IGxvYWRlciBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgeWV0LCBhZGQgdGhlIGRlbGVnYXRlIHRvIGEgbGlzdCBvZiBkZWxlZ2F0ZXMKLSAgICAgICAgICAgIC8vIHRvIGluaXQgd2hlbiB0aGUgZm9udCBsb2FkZXIgaXMgaW5pdGlhbGl6ZWQuCi0gICAgICAgICAgICAvLyBUaGVyZSB3b24ndCBiZSBhbnkgcmVuZGVyaW5nIGJlZm9yZSB0aGlzIGhhcHBlbnMgYW55d2F5LgotICAgICAgICAgICAgc1Bvc3RJbml0RGVsZWdhdGUuYWRkKG5ld0RlbGVnYXRlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBzTWFuYWdlci5hZGROZXdEZWxlZ2F0ZShuZXdEZWxlZ2F0ZSk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHN5bmNocm9uaXplZCBpbnQgbmF0aXZlQ3JlYXRlRnJvbVR5cGVmYWNlKGludCBuYXRpdmVfaW5zdGFuY2UsIGludCBzdHlsZSkgewotICAgICAgICBUeXBlZmFjZV9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKG5hdGl2ZV9pbnN0YW5jZSk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotCi0gICAgICAgIFR5cGVmYWNlX0RlbGVnYXRlIG5ld0RlbGVnYXRlID0gbmV3IFR5cGVmYWNlX0RlbGVnYXRlKGRlbGVnYXRlLm1GYW1pbHksIHN0eWxlKTsKLSAgICAgICAgaWYgKHNGb250TG9hZGVyICE9IG51bGwpIHsKLSAgICAgICAgICAgIG5ld0RlbGVnYXRlLmluaXQoKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIGZvbnQgbG9hZGVyIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCB5ZXQsIGFkZCB0aGUgZGVsZWdhdGUgdG8gYSBsaXN0IG9mIGRlbGVnYXRlcwotICAgICAgICAgICAgLy8gdG8gaW5pdCB3aGVuIHRoZSBmb250IGxvYWRlciBpcyBpbml0aWFsaXplZC4KLSAgICAgICAgICAgIC8vIFRoZXJlIHdvbid0IGJlIGFueSByZW5kZXJpbmcgYmVmb3JlIHRoaXMgaGFwcGVucyBhbnl3YXkuCi0gICAgICAgICAgICBzUG9zdEluaXREZWxlZ2F0ZS5hZGQobmV3RGVsZWdhdGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmFkZE5ld0RlbGVnYXRlKG5ld0RlbGVnYXRlKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgc3luY2hyb25pemVkIGludCBuYXRpdmVDcmVhdGVGcm9tQXNzZXQoQXNzZXRNYW5hZ2VyIG1nciwgU3RyaW5nIHBhdGgpIHsKLSAgICAgICAgQnJpZGdlLmdldExvZygpLmZpZGVsaXR5V2FybmluZyhMYXlvdXRMb2cuVEFHX1VOU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICJUeXBlZmFjZS5jcmVhdGVGcm9tQXNzZXQoKSBpcyBub3Qgc3VwcG9ydGVkLiIsIG51bGwgLyp0aHJvd2FibGUqLywgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBzeW5jaHJvbml6ZWQgaW50IG5hdGl2ZUNyZWF0ZUZyb21GaWxlKFN0cmluZyBwYXRoKSB7Ci0gICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoU1lTVEVNX0ZPTlRTKSApIHsKLSAgICAgICAgICAgIFN0cmluZyByZWxhdGl2ZVBhdGggPSBwYXRoLnN1YnN0cmluZyhTWVNURU1fRk9OVFMubGVuZ3RoKCkpOwotICAgICAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUoc0ZvbnRMb2FkZXIuZ2V0T3NGb250c0xvY2F0aW9uKCksIHJlbGF0aXZlUGF0aCk7Ci0KLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgRm9udCBmb250ID0gRm9udC5jcmVhdGVGb250KEZvbnQuVFJVRVRZUEVfRk9OVCwgZik7Ci0gICAgICAgICAgICAgICAgaWYgKGZvbnQgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBUeXBlZmFjZV9EZWxlZ2F0ZSBuZXdEZWxlZ2F0ZSA9IG5ldyBUeXBlZmFjZV9EZWxlZ2F0ZShmb250KTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNNYW5hZ2VyLmFkZE5ld0RlbGVnYXRlKG5ld0RlbGVnYXRlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5maWRlbGl0eVdhcm5pbmcoTGF5b3V0TG9nLlRBR19CUk9LRU4sCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcuZm9ybWF0KCJVbmFibGUgdG8gbG9hZCBmb250ICUxJHMiLCByZWxhdGl2ZVBhdGgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgLyp0aHJvd2FibGUqLywgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZmlkZWxpdHlXYXJuaW5nKExheW91dExvZy5UQUdfVU5TVVBQT1JURUQsCi0gICAgICAgICAgICAgICAgICAgICJUeXBlZmFjZS5jcmVhdGVGcm9tRmlsZSgpIGNhbiBvbmx5IHdvcmsgd2l0aCBwbGF0Zm9ybSBmb250cyBsb2NhdGVkIGluICIgKwotICAgICAgICAgICAgICAgICAgICAgICAgU1lTVEVNX0ZPTlRTLAotICAgICAgICAgICAgICAgICAgICBudWxsIC8qdGhyb3dhYmxlKi8sIG51bGwgLypkYXRhKi8pOwotICAgICAgICB9Ci0KLQotICAgICAgICAvLyByZXR1cm4gYSBjb3B5IG9mIHRoZSBiYXNlIGZvbnQKLSAgICAgICAgcmV0dXJuIG5hdGl2ZUNyZWF0ZShudWxsLCAwKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBuYXRpdmVVbnJlZihpbnQgbmF0aXZlX2luc3RhbmNlKSB7Ci0gICAgICAgIHNNYW5hZ2VyLnJlbW92ZUphdmFSZWZlcmVuY2VGb3IobmF0aXZlX2luc3RhbmNlKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IG5hdGl2ZUdldFN0eWxlKGludCBuYXRpdmVfaW5zdGFuY2UpIHsKLSAgICAgICAgVHlwZWZhY2VfRGVsZWdhdGUgZGVsZWdhdGUgPSBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfaW5zdGFuY2UpOwotICAgICAgICBpZiAoZGVsZWdhdGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVsZWdhdGUubVN0eWxlOwotICAgIH0KLQotICAgIC8vIC0tLS0gUHJpdmF0ZSBkZWxlZ2F0ZS9oZWxwZXIgbWV0aG9kcyAtLS0tCi0KLSAgICBwcml2YXRlIFR5cGVmYWNlX0RlbGVnYXRlKFN0cmluZyBmYW1pbHksIGludCBzdHlsZSkgewotICAgICAgICBtRmFtaWx5ID0gZmFtaWx5OwotICAgICAgICBtU3R5bGUgPSBzdHlsZTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIFR5cGVmYWNlX0RlbGVnYXRlKEZvbnQgZm9udCkgewotICAgICAgICBtRmFtaWx5ID0gZm9udC5nZXRGYW1pbHkoKTsKLSAgICAgICAgbVN0eWxlID0gVHlwZWZhY2UuTk9STUFMOwotCi0gICAgICAgIG1Gb250cyA9IHNGb250TG9hZGVyLmdldEZhbGxiYWNrRm9udHMobVN0eWxlKTsKLQotICAgICAgICAvLyBpbnNlcnQgdGhlIGZvbnQgZ2x5cGggZmlyc3QuCi0gICAgICAgIG1Gb250cy5hZGQoMCwgZm9udCk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSB2b2lkIGluaXQoKSB7Ci0gICAgICAgIG1Gb250cyA9IHNGb250TG9hZGVyLmdldEZvbnQobUZhbWlseSwgbVN0eWxlKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1hmZXJtb2RlX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL2dyYXBoaWNzL1hmZXJtb2RlX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2MmQ2OWMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9ncmFwaGljcy9YZmVybW9kZV9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5EZWxlZ2F0ZU1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgamF2YS5hd3QuQ29tcG9zaXRlOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5ncmFwaGljcy5YZmVybW9kZQotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsIG5hdGl2ZSBtZXRob2RzIG9mIFhmZXJtb2RlIGhhdmUgYmVlbiByZXBsYWNlZAotICogYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICogVGhpcyBjbGFzcyBiZWhhdmVzIGxpa2UgdGhlIG9yaWdpbmFsIG5hdGl2ZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGluIEphdmEsIGtlZXBpbmcgcHJldmlvdXNseQotICogbmF0aXZlIGRhdGEgaW50byBpdHMgb3duIG9iamVjdHMgYW5kIG1hcHBpbmcgdGhlbSB0byBpbnQgdGhhdCBhcmUgc2VudCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuCi0gKiBpdCBhbmQgdGhlIG9yaWdpbmFsIFhmZXJtb2RlIGNsYXNzLgotICoKLSAqIFRoaXMgYWxzbyBzZXJ2ZSBhcyBhIGJhc2UgY2xhc3MgZm9yIGFsbCBYZmVybW9kZSBkZWxlZ2F0ZSBjbGFzc2VzLgotICoKLSAqIEBzZWUgRGVsZWdhdGVNYW5hZ2VyCi0gKgotICovCi1wdWJsaWMgYWJzdHJhY3QgY2xhc3MgWGZlcm1vZGVfRGVsZWdhdGUgewotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBtYW5hZ2VyIC0tLS0KLSAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIERlbGVnYXRlTWFuYWdlcjxYZmVybW9kZV9EZWxlZ2F0ZT4gc01hbmFnZXIgPQotICAgICAgICAgICAgbmV3IERlbGVnYXRlTWFuYWdlcjxYZmVybW9kZV9EZWxlZ2F0ZT4oWGZlcm1vZGVfRGVsZWdhdGUuY2xhc3MpOwotCi0gICAgLy8gLS0tLSBkZWxlZ2F0ZSBoZWxwZXIgZGF0YSAtLS0tCi0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotCi0gICAgLy8gLS0tLSBQdWJsaWMgSGVscGVyIG1ldGhvZHMgLS0tLQotCi0gICAgcHVibGljIHN0YXRpYyBYZmVybW9kZV9EZWxlZ2F0ZSBnZXREZWxlZ2F0ZShpbnQgbmF0aXZlX2luc3RhbmNlKSB7Ci0gICAgICAgIHJldHVybiBzTWFuYWdlci5nZXREZWxlZ2F0ZShuYXRpdmVfaW5zdGFuY2UpOwotICAgIH0KLQotICAgIHB1YmxpYyBhYnN0cmFjdCBDb21wb3NpdGUgZ2V0Q29tcG9zaXRlKGludCBhbHBoYSk7Ci0gICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gaXNTdXBwb3J0ZWQoKTsKLSAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nIGdldFN1cHBvcnRNZXNzYWdlKCk7Ci0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgZmluYWxpemVyKGludCBuYXRpdmVfaW5zdGFuY2UpIHsKLSAgICAgICAgc01hbmFnZXIucmVtb3ZlSmF2YVJlZmVyZW5jZUZvcihuYXRpdmVfaW5zdGFuY2UpOwotICAgIH0KLQotICAgIC8vIC0tLS0gUHJpdmF0ZSBkZWxlZ2F0ZS9oZWxwZXIgbWV0aG9kcyAtLS0tCi0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvb3MvQnVpbGRfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvb3MvQnVpbGRfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmY4MmE1ZS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL29zL0J1aWxkX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLm9zOwotCi1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5CcmlkZ2U7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLkRlbGVnYXRlTWFuYWdlcjsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLWltcG9ydCBqYXZhLnV0aWwuTWFwOwotCi0vKioKLSAqIERlbGVnYXRlIGltcGxlbWVudGluZyB0aGUgbmF0aXZlIG1ldGhvZHMgb2YgYW5kcm9pZC5vcy5CdWlsZAotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsIG5hdGl2ZSBtZXRob2RzIG9mIEJ1aWxkIGhhdmUgYmVlbiByZXBsYWNlZAotICogYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICogQmVjYXVzZSBpdCdzIGEgc3RhdGVsZXNzIGNsYXNzIHRvIHN0YXJ0IHdpdGgsIHRoZXJlJ3Mgbm8gbmVlZCB0byBrZWVwIGEge0BsaW5rIERlbGVnYXRlTWFuYWdlcn0KLSAqIGFyb3VuZCB0byBtYXAgaW50IHRvIGluc3RhbmNlIG9mIHRoZSBkZWxlZ2F0ZS4KLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBCdWlsZF9EZWxlZ2F0ZSB7Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgU3RyaW5nIGdldFN0cmluZyhTdHJpbmcgcHJvcGVydHkpIHsKLSAgICAgICAgTWFwPFN0cmluZywgU3RyaW5nPiBwcm9wZXJ0aWVzID0gQnJpZGdlLmdldFBsYXRmb3JtUHJvcGVydGllcygpOwotICAgICAgICBTdHJpbmcgdmFsdWUgPSBwcm9wZXJ0aWVzLmdldChwcm9wZXJ0eSk7Ci0gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gQnVpbGQuVU5LTk9XTjsKLSAgICB9Ci0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvb3MvSGFuZGxlclRocmVhZF9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9vcy9IYW5kbGVyVGhyZWFkX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmYmU5N2MwLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvb3MvSGFuZGxlclRocmVhZF9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5vczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC5CcmlkZ2VDb250ZXh0OwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5SZW5kZXJBY3Rpb247Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKLWltcG9ydCBqYXZhLnV0aWwuTGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuTWFwOwotCi0vKioKLSAqIERlbGVnYXRlIG92ZXJyaWRpbmcgc2VsZWN0ZWQgbWV0aG9kcyBvZiBhbmRyb2lkLm9zLkhhbmRsZXJUaHJlYWQKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHNlbGVjdGVkIG1ldGhvZHMgb2YgSGFuZGxlciBoYXZlIGJlZW4gcmVwbGFjZWQKLSAqIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBIYW5kbGVyVGhyZWFkX0RlbGVnYXRlIHsKLQotICAgIHByaXZhdGUgc3RhdGljIE1hcDxCcmlkZ2VDb250ZXh0LCBMaXN0PEhhbmRsZXJUaHJlYWQ+PiBzVGhyZWFkcyA9Ci0gICAgICAgICAgICBuZXcgSGFzaE1hcDxCcmlkZ2VDb250ZXh0LCBMaXN0PEhhbmRsZXJUaHJlYWQ+PigpOwotCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIGNsZWFuVXAoQnJpZGdlQ29udGV4dCBjb250ZXh0KSB7Ci0gICAgICAgIExpc3Q8SGFuZGxlclRocmVhZD4gbGlzdCA9IHNUaHJlYWRzLmdldChjb250ZXh0KTsKLSAgICAgICAgaWYgKGxpc3QgIT0gbnVsbCkgewotICAgICAgICAgICAgZm9yIChIYW5kbGVyVGhyZWFkIHRocmVhZCA6IGxpc3QpIHsKLSAgICAgICAgICAgICAgICB0aHJlYWQucXVpdCgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBsaXN0LmNsZWFyKCk7Ci0gICAgICAgICAgICBzVGhyZWFkcy5yZW1vdmUoY29udGV4dCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyAtLS0tLS0tLSBEZWxlZ2F0ZSBtZXRob2RzCi0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgdm9pZCBydW4oSGFuZGxlclRocmVhZCB0aGVUaHJlYWQpIHsKLSAgICAgICAgLy8gcmVjb3JkIHRoZSB0aHJlYWQgc28gdGhhdCBpdCBjYW4gYmUgcXVpdCgpIG9uIGNsZWFuIHVwLgotICAgICAgICBCcmlkZ2VDb250ZXh0IGNvbnRleHQgPSBSZW5kZXJBY3Rpb24uZ2V0Q3VycmVudENvbnRleHQoKTsKLSAgICAgICAgTGlzdDxIYW5kbGVyVGhyZWFkPiBsaXN0ID0gc1RocmVhZHMuZ2V0KGNvbnRleHQpOwotICAgICAgICBpZiAobGlzdCA9PSBudWxsKSB7Ci0gICAgICAgICAgICBsaXN0ID0gbmV3IEFycmF5TGlzdDxIYW5kbGVyVGhyZWFkPigpOwotICAgICAgICAgICAgc1RocmVhZHMucHV0KGNvbnRleHQsIGxpc3QpOwotICAgICAgICB9Ci0KLSAgICAgICAgbGlzdC5hZGQodGhlVGhyZWFkKTsKLQotICAgICAgICAvLyAtLS0tIFNUQVJUIERFRkFVTFQgSU1QTEVNRU5UQVRJT04uCi0KLSAgICAgICAgdGhlVGhyZWFkLm1UaWQgPSBQcm9jZXNzLm15VGlkKCk7Ci0gICAgICAgIExvb3Blci5wcmVwYXJlKCk7Ci0gICAgICAgIHN5bmNocm9uaXplZCAodGhlVGhyZWFkKSB7Ci0gICAgICAgICAgICB0aGVUaHJlYWQubUxvb3BlciA9IExvb3Blci5teUxvb3BlcigpOwotICAgICAgICAgICAgdGhlVGhyZWFkLm5vdGlmeUFsbCgpOwotICAgICAgICB9Ci0gICAgICAgIFByb2Nlc3Muc2V0VGhyZWFkUHJpb3JpdHkodGhlVGhyZWFkLm1Qcmlvcml0eSk7Ci0gICAgICAgIHRoZVRocmVhZC5vbkxvb3BlclByZXBhcmVkKCk7Ci0gICAgICAgIExvb3Blci5sb29wKCk7Ci0gICAgICAgIHRoZVRocmVhZC5tVGlkID0gLTE7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9vcy9IYW5kbGVyX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL29zL0hhbmRsZXJfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE1MmM4YS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL29zL0hhbmRsZXJfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQub3M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLQotLyoqCi0gKiBEZWxlZ2F0ZSBvdmVycmlkaW5nIHNlbGVjdGVkIG1ldGhvZHMgb2YgYW5kcm9pZC5vcy5IYW5kbGVyCi0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCBzZWxlY3RlZCBtZXRob2RzIG9mIEhhbmRsZXIgaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKgotICovCi1wdWJsaWMgY2xhc3MgSGFuZGxlcl9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0tLS0tLSBEZWxlZ2F0ZSBtZXRob2RzCi0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBzZW5kTWVzc2FnZUF0VGltZShIYW5kbGVyIGhhbmRsZXIsIE1lc3NhZ2UgbXNnLCBsb25nIHVwdGltZU1pbGxpcykgewotICAgICAgICAvLyBnZXQgdGhlIGNhbGxiYWNrCi0gICAgICAgIElIYW5kbGVyQ2FsbGJhY2sgY2FsbGJhY2sgPSBzQ2FsbGJhY2tzLmdldCgpOwotICAgICAgICBpZiAoY2FsbGJhY2sgIT0gbnVsbCkgewotICAgICAgICAgICAgY2FsbGJhY2suc2VuZE1lc3NhZ2VBdFRpbWUoaGFuZGxlciwgbXNnLCB1cHRpbWVNaWxsaXMpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIC8vIC0tLS0tLS0tIERlbGVnYXRlIGltcGxlbWVudGF0aW9uCi0KLSAgICBwdWJsaWMgaW50ZXJmYWNlIElIYW5kbGVyQ2FsbGJhY2sgewotICAgICAgICB2b2lkIHNlbmRNZXNzYWdlQXRUaW1lKEhhbmRsZXIgaGFuZGxlciwgTWVzc2FnZSBtc2csIGxvbmcgdXB0aW1lTWlsbGlzKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBUaHJlYWRMb2NhbDxJSGFuZGxlckNhbGxiYWNrPiBzQ2FsbGJhY2tzID0KLSAgICAgICAgbmV3IFRocmVhZExvY2FsPElIYW5kbGVyQ2FsbGJhY2s+KCk7Ci0KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0Q2FsbGJhY2soSUhhbmRsZXJDYWxsYmFjayBjYWxsYmFjaykgewotICAgICAgICBzQ2FsbGJhY2tzLnNldChjYWxsYmFjayk7Ci0gICAgfQotCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL29zL0xvb3Blcl9BY2Nlc3Nvci5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9vcy9Mb29wZXJfQWNjZXNzb3IuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDlmM2U0Ny4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL29zL0xvb3Blcl9BY2Nlc3Nvci5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi1wYWNrYWdlIGFuZHJvaWQub3M7Ci0KLWltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5GaWVsZDsKLQotLyoqCi0gKiBDbGFzcyBhbGxvd2luZyBhY2Nlc3MgdG8gcGFja2FnZS1wcm90ZWN0ZWQgbWV0aG9kcy9maWVsZHMuCi0gKi8KLXB1YmxpYyBjbGFzcyBMb29wZXJfQWNjZXNzb3IgewotCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIGNsZWFudXBUaHJlYWQoKSB7Ci0gICAgICAgIC8vIGNsZWFuIHVwIHRoZSBsb29wZXIKLSAgICAgICAgTG9vcGVyLnNUaHJlYWRMb2NhbC5yZW1vdmUoKTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIEZpZWxkIHNNYWluTG9vcGVyID0gTG9vcGVyLmNsYXNzLmdldERlY2xhcmVkRmllbGQoInNNYWluTG9vcGVyIik7Ci0gICAgICAgICAgICBzTWFpbkxvb3Blci5zZXRBY2Nlc3NpYmxlKHRydWUpOwotICAgICAgICAgICAgc01haW5Mb29wZXIuc2V0KG51bGwsIG51bGwpOwotICAgICAgICB9IGNhdGNoIChTZWN1cml0eUV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICBjYXRjaFJlZmxlY3Rpb25FeGNlcHRpb24oKTsKLSAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIGNhdGNoUmVmbGVjdGlvbkV4Y2VwdGlvbigpOwotICAgICAgICB9IGNhdGNoIChOb1N1Y2hGaWVsZEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICBjYXRjaFJlZmxlY3Rpb25FeGNlcHRpb24oKTsKLSAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICBjYXRjaFJlZmxlY3Rpb25FeGNlcHRpb24oKTsKLSAgICAgICAgfQotCi0gICAgfQotCi0gICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBjYXRjaFJlZmxlY3Rpb25FeGNlcHRpb24oKSB7Ci0gICAgICAgIGFzc2VydChmYWxzZSk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9vcy9TZXJ2aWNlTWFuYWdlci5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9vcy9TZXJ2aWNlTWFuYWdlci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YTY4ZWUyLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvb3MvU2VydmljZU1hbmFnZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQub3M7Ci0KLWltcG9ydCBqYXZhLnV0aWwuTWFwOwotCi1wdWJsaWMgZmluYWwgY2xhc3MgU2VydmljZU1hbmFnZXIgewotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyBhIHJlZmVyZW5jZSB0byBhIHNlcnZpY2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZS4KLSAgICAgKgotICAgICAqIEBwYXJhbSBuYW1lIHRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIHRvIGdldAotICAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIHNlcnZpY2UsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSBzZXJ2aWNlIGRvZXNuJ3QgZXhpc3QKLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIElCaW5kZXIgZ2V0U2VydmljZShTdHJpbmcgbmFtZSkgewotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBQbGFjZSBhIG5ldyBAYSBzZXJ2aWNlIGNhbGxlZCBAYSBuYW1lIGludG8gdGhlIHNlcnZpY2UKLSAgICAgKiBtYW5hZ2VyLgotICAgICAqCi0gICAgICogQHBhcmFtIG5hbWUgdGhlIG5hbWUgb2YgdGhlIG5ldyBzZXJ2aWNlCi0gICAgICogQHBhcmFtIHNlcnZpY2UgdGhlIHNlcnZpY2Ugb2JqZWN0Ci0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIGFkZFNlcnZpY2UoU3RyaW5nIG5hbWUsIElCaW5kZXIgc2VydmljZSkgewotICAgICAgICAvLyBwYXNzCi0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0cmlldmUgYW4gZXhpc3Rpbmcgc2VydmljZSBjYWxsZWQgQGEgbmFtZSBmcm9tIHRoZQotICAgICAqIHNlcnZpY2UgbWFuYWdlci4gIE5vbi1ibG9ja2luZy4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIElCaW5kZXIgY2hlY2tTZXJ2aWNlKFN0cmluZyBuYW1lKSB7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybiBhIGxpc3Qgb2YgYWxsIGN1cnJlbnRseSBydW5uaW5nIHNlcnZpY2VzLgotICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gbGlzdFNlcnZpY2VzKCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIG51bGwgc29tZXRpbWVzLCBzbyBpdCdzIG9rCi0gICAgICAgIC8vIHRvIHJldHVybiBudWxsIGluc3RlYWQgb2YgYW4gZW1wdHkgbGlzdC4KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogVGhpcyBpcyBvbmx5IGludGVuZGVkIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBwcm9jZXNzIGlzIGZpcnN0IGJlaW5nIGJyb3VnaHQKLSAgICAgKiB1cCBhbmQgYm91bmQgYnkgdGhlIGFjdGl2aXR5IG1hbmFnZXIuIFRoZXJlIGlzIG9ubHkgb25lIHRocmVhZCBpbiB0aGUgcHJvY2VzcwotICAgICAqIGF0IHRoYXQgdGltZSwgc28gbm8gbG9ja2luZyBpcyBkb25lLgotICAgICAqCi0gICAgICogQHBhcmFtIGNhY2hlIHRoZSBjYWNoZSBvZiBzZXJ2aWNlIHJlZmVyZW5jZXMKLSAgICAgKiBAaGlkZQotICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBpbml0U2VydmljZUNhY2hlKE1hcDxTdHJpbmcsIElCaW5kZXI+IGNhY2hlKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL29zL1N5c3RlbUNsb2NrX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL29zL1N5c3RlbUNsb2NrX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkNTk0ZjcuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC9vcy9TeXN0ZW1DbG9ja19EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQub3M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRGVsZWdhdGVNYW5hZ2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotLyoqCi0gKiBEZWxlZ2F0ZSBpbXBsZW1lbnRpbmcgdGhlIG5hdGl2ZSBtZXRob2RzIG9mIGFuZHJvaWQub3MuU3lzdGVtQ2xvY2sKLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCBuYXRpdmUgbWV0aG9kcyBvZiBTeXN0ZW1DbG9jayBoYXZlIGJlZW4gcmVwbGFjZWQKLSAqIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqIEJlY2F1c2UgaXQncyBhIHN0YXRlbGVzcyBjbGFzcyB0byBzdGFydCB3aXRoLCB0aGVyZSdzIG5vIG5lZWQgdG8ga2VlcCBhIHtAbGluayBEZWxlZ2F0ZU1hbmFnZXJ9Ci0gKiBhcm91bmQgdG8gbWFwIGludCB0byBpbnN0YW5jZSBvZiB0aGUgZGVsZWdhdGUuCi0gKgotICovCi1wdWJsaWMgY2xhc3MgU3lzdGVtQ2xvY2tfRGVsZWdhdGUgewotICAgIHByaXZhdGUgc3RhdGljIGxvbmcgc0Jvb3RUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgbG9uZyBzQm9vdFRpbWVOYW5vID0gU3lzdGVtLm5hbm9UaW1lKCk7Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBzZXRDdXJyZW50VGltZU1pbGxpcyhsb25nIG1pbGxpcykgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIG1pbGxpc2Vjb25kcyBzaW5jZSBib290LCBub3QgY291bnRpbmcgdGltZSBzcGVudCBpbiBkZWVwIHNsZWVwLgotICAgICAqIDxiPk5vdGU6PC9iPiBUaGlzIHZhbHVlIG1heSBnZXQgcmVzZXQgb2NjYXNpb25hbGx5IChiZWZvcmUgaXQgd291bGQKLSAgICAgKiBvdGhlcndpc2Ugd3JhcCBhcm91bmQpLgotICAgICAqCi0gICAgICogQHJldHVybiBtaWxsaXNlY29uZHMgb2Ygbm9uLXNsZWVwIHVwdGltZSBzaW5jZSBib290LgotICAgICAqLwotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBsb25nIHVwdGltZU1pbGxpcygpIHsKLSAgICAgICAgcmV0dXJuIFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc0Jvb3RUaW1lOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgbWlsbGlzZWNvbmRzIHNpbmNlIGJvb3QsIGluY2x1ZGluZyB0aW1lIHNwZW50IGluIHNsZWVwLgotICAgICAqCi0gICAgICogQHJldHVybiBlbGFwc2VkIG1pbGxpc2Vjb25kcyBzaW5jZSBib290LgotICAgICAqLwotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBsb25nIGVsYXBzZWRSZWFsdGltZSgpIHsKLSAgICAgICAgcmV0dXJuIFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc0Jvb3RUaW1lOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgbmFub3NlY29uZHMgc2luY2UgYm9vdCwgaW5jbHVkaW5nIHRpbWUgc3BlbnQgaW4gc2xlZXAuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIGVsYXBzZWQgbmFub3NlY29uZHMgc2luY2UgYm9vdC4KLSAgICAgKi8KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgbG9uZyBlbGFwc2VkUmVhbHRpbWVOYW5vcygpIHsKLSAgICAgICAgcmV0dXJuIFN5c3RlbS5uYW5vVGltZSgpIC0gc0Jvb3RUaW1lTmFubzsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIG1pbGxpc2Vjb25kcyBydW5uaW5nIGluIHRoZSBjdXJyZW50IHRocmVhZC4KLSAgICAgKgotICAgICAqIEByZXR1cm4gZWxhcHNlZCBtaWxsaXNlY29uZHMgaW4gdGhlIHRocmVhZAotICAgICAqLwotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBsb25nIGN1cnJlbnRUaHJlYWRUaW1lTWlsbGlzKCkgewotICAgICAgICByZXR1cm4gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyBtaWNyb3NlY29uZHMgcnVubmluZyBpbiB0aGUgY3VycmVudCB0aHJlYWQuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIGVsYXBzZWQgbWljcm9zZWNvbmRzIGluIHRoZSB0aHJlYWQKLSAgICAgKgotICAgICAqIEBoaWRlCi0gICAgICovCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGxvbmcgY3VycmVudFRocmVhZFRpbWVNaWNybygpIHsKLSAgICAgICAgcmV0dXJuIFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpICogMTAwMDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIGN1cnJlbnQgd2FsbCB0aW1lIGluICBtaWNyb3NlY29uZHMuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIGVsYXBzZWQgbWljcm9zZWNvbmRzIGluIHdhbGwgdGltZQotICAgICAqCi0gICAgICogQGhpZGUKLSAgICAgKi8KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgbG9uZyBjdXJyZW50VGltZU1pY3JvKCkgewotICAgICAgICByZXR1cm4gZWxhcHNlZFJlYWx0aW1lKCkgKiAxMDAwOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdGV4dC9BbmRyb2lkQmlkaV9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC90ZXh0L0FuZHJvaWRCaWRpX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3M2ZhMGUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC90ZXh0L0FuZHJvaWRCaWRpX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLnRleHQ7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuTGF5b3V0TG9nOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLWltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJpZGk7Ci0KLQotLyoqCi0gKiBEZWxlZ2F0ZSB1c2VkIHRvIHByb3ZpZGUgbmV3IGltcGxlbWVudGF0aW9uIGZvciB0aGUgbmF0aXZlIG1ldGhvZHMgb2Yge0BsaW5rIEFuZHJvaWRCaWRpfQotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsICBtZXRob2RzIG9mIEFuZHJvaWRCaWRpIGhhdmUgYmVlbiByZXBsYWNlZAotICogYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICovCi1wdWJsaWMgY2xhc3MgQW5kcm9pZEJpZGlfRGVsZWdhdGUgewotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGludCBydW5CaWRpKGludCBkaXIsIGNoYXJbXSBjaGFycywgYnl0ZVtdIGNoYXJJbmZvLCBpbnQgY291bnQsCi0gICAgICAgICAgICBib29sZWFuIGhhdmVJbmZvKSB7Ci0KLSAgICAgICAgc3dpdGNoIChkaXIpIHsKLSAgICAgICAgY2FzZSAwOiAvLyBMYXlvdXQuRElSX1JFUVVFU1RfTFRSCi0gICAgICAgIGNhc2UgMTogLy8gTGF5b3V0LkRJUl9SRVFVRVNUX1JUTAotICAgICAgICAgICAgYnJlYWs7ICAvLyBObyBjaGFuZ2UuCi0gICAgICAgIGNhc2UgLTE6Ci0gICAgICAgICAgICBkaXIgPSBCaWRpLkxFVkVMX0RFRkFVTFRfTFRSOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgLTI6Ci0gICAgICAgICAgICBkaXIgPSBCaWRpLkxFVkVMX0RFRkFVTFRfUlRMOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAvLyBJbnZhbGlkIGNvZGUuIExvZyBlcnJvciwgYXNzdW1lIExFVkVMX0RFRkFVTFRfTFRSIGFuZCBjb250aW51ZS4KLSAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5lcnJvcihMYXlvdXRMb2cuVEFHX0JST0tFTiwgIkludmFsaWQgZGlyZWN0aW9uIGZsYWciLCBudWxsKTsKLSAgICAgICAgICAgIGRpciA9IEJpZGkuTEVWRUxfREVGQVVMVF9MVFI7Ci0gICAgICAgIH0KLSAgICAgICAgQmlkaSBiaWRpID0gbmV3IEJpZGkoY2hhcnMsIDAsIG51bGwsIDAsIGNvdW50LCBkaXIpOwotICAgICAgICBpZiAoY2hhckluZm8gIT0gbnVsbCkgewotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQotICAgICAgICAgICAgY2hhckluZm9baV0gPSBiaWRpLmdldExldmVsQXQoaSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGJpZGkuZ2V0UGFyYUxldmVsKCk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC90ZXh0L2Zvcm1hdC9EYXRlRm9ybWF0X0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3RleHQvZm9ybWF0L0RhdGVGb3JtYXRfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGNkMWE2OS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3RleHQvZm9ybWF0L0RhdGVGb3JtYXRfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQudGV4dC5mb3JtYXQ7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKLQotCi0vKioKLSAqIERlbGVnYXRlIHVzZWQgdG8gcHJvdmlkZSBuZXcgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBuYXRpdmUgbWV0aG9kcyBvZiB7QGxpbmsgRGF0ZUZvcm1hdH0KLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCAgbWV0aG9kcyBvZiBEYXRlRm9ybWF0IGhhdmUgYmVlbiByZXBsYWNlZAotICogYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICovCi1wdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdF9EZWxlZ2F0ZSB7Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgYm9vbGVhbiBpczI0SG91ckZvcm1hdChDb250ZXh0IGNvbnRleHQpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdGV4dC9mb3JtYXQvVGltZV9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC90ZXh0L2Zvcm1hdC9UaW1lX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1Y2Q2ODcuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC90ZXh0L2Zvcm1hdC9UaW1lX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLnRleHQuZm9ybWF0OwotCi1pbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOwotaW1wb3J0IGphdmEudXRpbC5Vbmtub3duRm9ybWF0Q29udmVyc2lvbkV4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLnV0aWwucmVnZXguUGF0dGVybjsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5MYXlvdXRMb2c7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5CcmlkZ2U7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi0vKioKLSAqIERlbGVnYXRlIHVzZWQgdG8gcHJvdmlkZSBuZXcgaW1wbGVtZW50YXRpb24gZm9yIG5hdGl2ZSBtZXRob2RzIG9mIHtAbGluayBUaW1lfQotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgc29tZSBuYXRpdmUgbWV0aG9kcyBvZiBUaW1lIGhhdmUgYmVlbiByZXBsYWNlZCBieSBjYWxscyB0bwotICogbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKi8KLXB1YmxpYyBjbGFzcyBUaW1lX0RlbGVnYXRlIHsKLQotICAgIC8vIFJlZ2V4IHRvIG1hdGNoIG9kZCBudW1iZXIgb2YgJyUnLgotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFBhdHRlcm4gcCA9IFBhdHRlcm4uY29tcGlsZSgiKD88ISUpKCUlKSolKD8hJSkiKTsKLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBTdHJpbmcgZm9ybWF0MShUaW1lIHRoaXNUaW1lLCBTdHJpbmcgZm9ybWF0KSB7Ci0KLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIC8vIENoYW5nZSB0aGUgZm9ybWF0IGJ5IGFkZGluZyBjaGFuZ2luZyAnJScgdG8gIiUxJHQiLiBUaGlzIGlzIHJlcXVpcmVkIHRvIHRlbGwgdGhlCi0gICAgICAgICAgICAvLyBmb3JtYXR0ZXIgd2hpY2ggYXJndW1lbnQgdG8gdXNlIGZyb20gdGhlIGFyZ3VtZW50IGxpc3QuICclJScgaXMgbGVmdCBhcyBpcy4gSW4gdGhlCi0gICAgICAgICAgICAvLyByZXBsYWNlbWVudCBzdHJpbmcsICQwIHJlZmVycyB0byBtYXRjaGVkIHBhdHRlcm4uIFxcMSBtZWFucyAnMScsIHdyaXR0ZW4gdGhpcyB3YXkgdG8KLSAgICAgICAgICAgIC8vIHNlcGFyYXRlIGl0IGZyb20gMC4gXFwkIG1lYW5zICckJywgd3JpdHRlbiB0aGlzIHdheSB0byBzdXBwcmVzcyB0aGUgc3BlY2lhbCBtZWFuaW5nCi0gICAgICAgICAgICAvLyBvZiAkLgotICAgICAgICAgICAgcmV0dXJuIFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgIHAubWF0Y2hlcihmb3JtYXQpLnJlcGxhY2VBbGwoIiQwXFwxXFwkdCIpLAotICAgICAgICAgICAgICAgICAgICB0aW1lVG9DYWxlbmRhcih0aGlzVGltZSwgQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKSkpOwotICAgICAgICB9IGNhdGNoIChVbmtub3duRm9ybWF0Q29udmVyc2lvbkV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZmlkZWxpdHlXYXJuaW5nKExheW91dExvZy5UQUdfU1RSRlRJTUUsICJVbnJlY29nbml6ZWQgZm9ybWF0IiwgZSwgZm9ybWF0KTsKLSAgICAgICAgICAgIHJldHVybiBmb3JtYXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBDYWxlbmRhciB0aW1lVG9DYWxlbmRhcihUaW1lIHRpbWUsIENhbGVuZGFyIGNhbGVuZGFyKSB7Ci0gICAgICAgIGNhbGVuZGFyLnNldCh0aW1lLnllYXIsIHRpbWUubW9udGgsIHRpbWUubW9udGhEYXksIHRpbWUuaG91ciwgdGltZS5taW51dGUsIHRpbWUuc2Vjb25kKTsKLSAgICAgICAgcmV0dXJuIGNhbGVuZGFyOwotICAgIH0KLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC91dGlsL0JyaWRnZVhtbFB1bGxBdHRyaWJ1dGVzLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3V0aWwvQnJpZGdlWG1sUHVsbEF0dHJpYnV0ZXMuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmFjNWIwMi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3V0aWwvQnJpZGdlWG1sUHVsbEF0dHJpYnV0ZXMuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDI4MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLnV0aWw7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVuZGVyUmVzb3VyY2VzOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXNvdXJjZVZhbHVlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLnV0aWwuWG1sVXRpbHM7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5CcmlkZ2U7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5CcmlkZ2VDb25zdGFudHM7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5hbmRyb2lkLkJyaWRnZUNvbnRleHQ7Ci1pbXBvcnQgY29tLmFuZHJvaWQucmVzb3VyY2VzLlJlc291cmNlVHlwZTsKLQotaW1wb3J0IG9yZy54bWxwdWxsLnYxLlhtbFB1bGxQYXJzZXI7Ci0KLS8qKgotICogQSBjb3JyZWN0IGltcGxlbWVudGF0aW9uIG9mIHRoZSB7QGxpbmsgQXR0cmlidXRlU2V0fSBpbnRlcmZhY2Ugb24gdG9wIG9mIGEgWG1sUHVsbFBhcnNlcgotICovCi1wdWJsaWMgY2xhc3MgQnJpZGdlWG1sUHVsbEF0dHJpYnV0ZXMgZXh0ZW5kcyBYbWxQdWxsQXR0cmlidXRlcyB7Ci0KLSAgICBwcml2YXRlIGZpbmFsIEJyaWRnZUNvbnRleHQgbUNvbnRleHQ7Ci0gICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIG1QbGF0Zm9ybUZpbGU7Ci0KLSAgICBwdWJsaWMgQnJpZGdlWG1sUHVsbEF0dHJpYnV0ZXMoWG1sUHVsbFBhcnNlciBwYXJzZXIsIEJyaWRnZUNvbnRleHQgY29udGV4dCwKLSAgICAgICAgICAgIGJvb2xlYW4gcGxhdGZvcm1GaWxlKSB7Ci0gICAgICAgIHN1cGVyKHBhcnNlcik7Ci0gICAgICAgIG1Db250ZXh0ID0gY29udGV4dDsKLSAgICAgICAgbVBsYXRmb3JtRmlsZSA9IHBsYXRmb3JtRmlsZTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIChub24tSmF2YWRvYykKLSAgICAgKiBAc2VlIGFuZHJvaWQudXRpbC5YbWxQdWxsQXR0cmlidXRlcyNnZXRBdHRyaWJ1dGVOYW1lUmVzb3VyY2UoaW50KQotICAgICAqCi0gICAgICogVGhpcyBtZXRob2RzIG11c3QgcmV0dXJuIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci48bmFtZT4gbWF0Y2hpbmcKLSAgICAgKiB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLgotICAgICAqIEl0IHJldHVybnMgMCBpZiBpdCBkb2Vzbid0IGZpbmQgYW55dGhpbmcuCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRBdHRyaWJ1dGVOYW1lUmVzb3VyY2UoaW50IGluZGV4KSB7Ci0gICAgICAgIC8vIGdldCB0aGUgYXR0cmlidXRlIG5hbWUuCi0gICAgICAgIFN0cmluZyBuYW1lID0gZ2V0QXR0cmlidXRlTmFtZShpbmRleCk7Ci0KLSAgICAgICAgLy8gZ2V0IHRoZSBhdHRyaWJ1dGUgbmFtZXNwYWNlCi0gICAgICAgIFN0cmluZyBucyA9IG1QYXJzZXIuZ2V0QXR0cmlidXRlTmFtZXNwYWNlKGluZGV4KTsKLQotICAgICAgICBpZiAoQnJpZGdlQ29uc3RhbnRzLk5TX1JFU09VUkNFUy5lcXVhbHMobnMpKSB7Ci0gICAgICAgICAgICBJbnRlZ2VyIHYgPSBCcmlkZ2UuZ2V0UmVzb3VyY2VJZChSZXNvdXJjZVR5cGUuQVRUUiwgbmFtZSk7Ci0gICAgICAgICAgICBpZiAodiAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHYuaW50VmFsdWUoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyB0aGlzIGlzIG5vdCBhbiBhdHRyaWJ1dGUgaW4gdGhlIGFuZHJvaWQgbmFtZXNwYWNlLCB3ZSBxdWVyeSB0aGUgY3VzdG9tdmlld2xvYWRlciwgaWYKLSAgICAgICAgLy8gdGhlIG5hbWVzcGFjZXMgbWF0Y2guCi0gICAgICAgIGlmIChtQ29udGV4dC5nZXRQcm9qZWN0Q2FsbGJhY2soKS5nZXROYW1lc3BhY2UoKS5lcXVhbHMobnMpKSB7Ci0gICAgICAgICAgICBJbnRlZ2VyIHYgPSBtQ29udGV4dC5nZXRQcm9qZWN0Q2FsbGJhY2soKS5nZXRSZXNvdXJjZUlkKFJlc291cmNlVHlwZS5BVFRSLCBuYW1lKTsKLSAgICAgICAgICAgIGlmICh2ICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gdi5pbnRWYWx1ZSgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRBdHRyaWJ1dGVMaXN0VmFsdWUoU3RyaW5nIG5hbWVzcGFjZSwgU3RyaW5nIGF0dHJpYnV0ZSwKLSAgICAgICAgICAgIFN0cmluZ1tdIG9wdGlvbnMsIGludCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgU3RyaW5nIHZhbHVlID0gZ2V0QXR0cmlidXRlVmFsdWUobmFtZXNwYWNlLCBhdHRyaWJ1dGUpOwotICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgUmVzb3VyY2VWYWx1ZSByID0gZ2V0UmVzb3VyY2VWYWx1ZSh2YWx1ZSk7Ci0KLSAgICAgICAgICAgIGlmIChyICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHIuZ2V0VmFsdWUoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIFhtbFV0aWxzLmNvbnZlcnRWYWx1ZVRvTGlzdCh2YWx1ZSwgb3B0aW9ucywgZGVmYXVsdFZhbHVlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gZ2V0QXR0cmlidXRlQm9vbGVhblZhbHVlKFN0cmluZyBuYW1lc3BhY2UsIFN0cmluZyBhdHRyaWJ1dGUsCi0gICAgICAgICAgICBib29sZWFuIGRlZmF1bHRWYWx1ZSkgewotICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShuYW1lc3BhY2UsIGF0dHJpYnV0ZSk7Ci0gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBSZXNvdXJjZVZhbHVlIHIgPSBnZXRSZXNvdXJjZVZhbHVlKHZhbHVlKTsKLQotICAgICAgICAgICAgaWYgKHIgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHZhbHVlID0gci5nZXRWYWx1ZSgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gWG1sVXRpbHMuY29udmVydFZhbHVlVG9Cb29sZWFuKHZhbHVlLCBkZWZhdWx0VmFsdWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldEF0dHJpYnV0ZVJlc291cmNlVmFsdWUoU3RyaW5nIG5hbWVzcGFjZSwgU3RyaW5nIGF0dHJpYnV0ZSwgaW50IGRlZmF1bHRWYWx1ZSkgewotICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShuYW1lc3BhY2UsIGF0dHJpYnV0ZSk7Ci0KLSAgICAgICAgcmV0dXJuIHJlc29sdmVSZXNvdXJjZVZhbHVlKHZhbHVlLCBkZWZhdWx0VmFsdWUpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0QXR0cmlidXRlSW50VmFsdWUoU3RyaW5nIG5hbWVzcGFjZSwgU3RyaW5nIGF0dHJpYnV0ZSwKLSAgICAgICAgICAgIGludCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgU3RyaW5nIHZhbHVlID0gZ2V0QXR0cmlidXRlVmFsdWUobmFtZXNwYWNlLCBhdHRyaWJ1dGUpOwotICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgUmVzb3VyY2VWYWx1ZSByID0gZ2V0UmVzb3VyY2VWYWx1ZSh2YWx1ZSk7Ci0KLSAgICAgICAgICAgIGlmIChyICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHIuZ2V0VmFsdWUoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIFhtbFV0aWxzLmNvbnZlcnRWYWx1ZVRvSW50KHZhbHVlLCBkZWZhdWx0VmFsdWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldEF0dHJpYnV0ZVVuc2lnbmVkSW50VmFsdWUoU3RyaW5nIG5hbWVzcGFjZSwgU3RyaW5nIGF0dHJpYnV0ZSwKLSAgICAgICAgICAgIGludCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgU3RyaW5nIHZhbHVlID0gZ2V0QXR0cmlidXRlVmFsdWUobmFtZXNwYWNlLCBhdHRyaWJ1dGUpOwotICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgUmVzb3VyY2VWYWx1ZSByID0gZ2V0UmVzb3VyY2VWYWx1ZSh2YWx1ZSk7Ci0KLSAgICAgICAgICAgIGlmIChyICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHIuZ2V0VmFsdWUoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIFhtbFV0aWxzLmNvbnZlcnRWYWx1ZVRvVW5zaWduZWRJbnQodmFsdWUsIGRlZmF1bHRWYWx1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBmbG9hdCBnZXRBdHRyaWJ1dGVGbG9hdFZhbHVlKFN0cmluZyBuYW1lc3BhY2UsIFN0cmluZyBhdHRyaWJ1dGUsCi0gICAgICAgICAgICBmbG9hdCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgU3RyaW5nIHMgPSBnZXRBdHRyaWJ1dGVWYWx1ZShuYW1lc3BhY2UsIGF0dHJpYnV0ZSk7Ci0gICAgICAgIGlmIChzICE9IG51bGwpIHsKLSAgICAgICAgICAgIFJlc291cmNlVmFsdWUgciA9IGdldFJlc291cmNlVmFsdWUocyk7Ci0KLSAgICAgICAgICAgIGlmIChyICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBzID0gci5nZXRWYWx1ZSgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gRmxvYXQucGFyc2VGbG9hdChzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRBdHRyaWJ1dGVMaXN0VmFsdWUoaW50IGluZGV4LAotICAgICAgICAgICAgU3RyaW5nW10gb3B0aW9ucywgaW50IGRlZmF1bHRWYWx1ZSkgewotICAgICAgICByZXR1cm4gWG1sVXRpbHMuY29udmVydFZhbHVlVG9MaXN0KAotICAgICAgICAgICAgZ2V0QXR0cmlidXRlVmFsdWUoaW5kZXgpLCBvcHRpb25zLCBkZWZhdWx0VmFsdWUpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGdldEF0dHJpYnV0ZUJvb2xlYW5WYWx1ZShpbnQgaW5kZXgsIGJvb2xlYW4gZGVmYXVsdFZhbHVlKSB7Ci0gICAgICAgIFN0cmluZyB2YWx1ZSA9IGdldEF0dHJpYnV0ZVZhbHVlKGluZGV4KTsKLSAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgIFJlc291cmNlVmFsdWUgciA9IGdldFJlc291cmNlVmFsdWUodmFsdWUpOwotCi0gICAgICAgICAgICBpZiAociAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgdmFsdWUgPSByLmdldFZhbHVlKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBYbWxVdGlscy5jb252ZXJ0VmFsdWVUb0Jvb2xlYW4odmFsdWUsIGRlZmF1bHRWYWx1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0QXR0cmlidXRlUmVzb3VyY2VWYWx1ZShpbnQgaW5kZXgsIGludCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgU3RyaW5nIHZhbHVlID0gZ2V0QXR0cmlidXRlVmFsdWUoaW5kZXgpOwotCi0gICAgICAgIHJldHVybiByZXNvbHZlUmVzb3VyY2VWYWx1ZSh2YWx1ZSwgZGVmYXVsdFZhbHVlKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldEF0dHJpYnV0ZUludFZhbHVlKGludCBpbmRleCwgaW50IGRlZmF1bHRWYWx1ZSkgewotICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShpbmRleCk7Ci0gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBSZXNvdXJjZVZhbHVlIHIgPSBnZXRSZXNvdXJjZVZhbHVlKHZhbHVlKTsKLQotICAgICAgICAgICAgaWYgKHIgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHZhbHVlID0gci5nZXRWYWx1ZSgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gWG1sVXRpbHMuY29udmVydFZhbHVlVG9JbnQodmFsdWUsIGRlZmF1bHRWYWx1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0QXR0cmlidXRlVW5zaWduZWRJbnRWYWx1ZShpbnQgaW5kZXgsIGludCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgU3RyaW5nIHZhbHVlID0gZ2V0QXR0cmlidXRlVmFsdWUoaW5kZXgpOwotICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgUmVzb3VyY2VWYWx1ZSByID0gZ2V0UmVzb3VyY2VWYWx1ZSh2YWx1ZSk7Ci0KLSAgICAgICAgICAgIGlmIChyICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHIuZ2V0VmFsdWUoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIFhtbFV0aWxzLmNvbnZlcnRWYWx1ZVRvVW5zaWduZWRJbnQodmFsdWUsIGRlZmF1bHRWYWx1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBmbG9hdCBnZXRBdHRyaWJ1dGVGbG9hdFZhbHVlKGludCBpbmRleCwgZmxvYXQgZGVmYXVsdFZhbHVlKSB7Ci0gICAgICAgIFN0cmluZyBzID0gZ2V0QXR0cmlidXRlVmFsdWUoaW5kZXgpOwotICAgICAgICBpZiAocyAhPSBudWxsKSB7Ci0gICAgICAgICAgICBSZXNvdXJjZVZhbHVlIHIgPSBnZXRSZXNvdXJjZVZhbHVlKHMpOwotCi0gICAgICAgICAgICBpZiAociAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcyA9IHIuZ2V0VmFsdWUoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIEZsb2F0LnBhcnNlRmxvYXQocyk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICAgIH0KLQotICAgIC8vIC0tIHByaXZhdGUgaGVscGVyIG1ldGhvZHMKLQotICAgIC8qKgotICAgICAqIFJldHVybnMgYSByZXNvbHZlZCB7QGxpbmsgUmVzb3VyY2VWYWx1ZX0gZnJvbSBhIGdpdmVuIHZhbHVlLgotICAgICAqLwotICAgIHByaXZhdGUgUmVzb3VyY2VWYWx1ZSBnZXRSZXNvdXJjZVZhbHVlKFN0cmluZyB2YWx1ZSkgewotICAgICAgICAvLyBub3cgbG9vayBmb3IgdGhpcyBwYXJ0aWN1bGFyIHZhbHVlCi0gICAgICAgIFJlbmRlclJlc291cmNlcyByZXNvdXJjZXMgPSBtQ29udGV4dC5nZXRSZW5kZXJSZXNvdXJjZXMoKTsKLSAgICAgICAgcmV0dXJuIHJlc291cmNlcy5yZXNvbHZlUmVzVmFsdWUocmVzb3VyY2VzLmZpbmRSZXNWYWx1ZSh2YWx1ZSwgbVBsYXRmb3JtRmlsZSkpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlc29sdmVzIGFuZCByZXR1cm4gYSB2YWx1ZSB0byBpdHMgYXNzb2NpYXRlZCBpbnRlZ2VyLgotICAgICAqLwotICAgIHByaXZhdGUgaW50IHJlc29sdmVSZXNvdXJjZVZhbHVlKFN0cmluZyB2YWx1ZSwgaW50IGRlZmF1bHRWYWx1ZSkgewotICAgICAgICBSZXNvdXJjZVZhbHVlIHJlc291cmNlID0gZ2V0UmVzb3VyY2VWYWx1ZSh2YWx1ZSk7Ci0gICAgICAgIGlmIChyZXNvdXJjZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBJbnRlZ2VyIGlkID0gbnVsbDsKLSAgICAgICAgICAgIGlmIChtUGxhdGZvcm1GaWxlIHx8IHJlc291cmNlLmlzRnJhbWV3b3JrKCkpIHsKLSAgICAgICAgICAgICAgICBpZCA9IEJyaWRnZS5nZXRSZXNvdXJjZUlkKHJlc291cmNlLmdldFJlc291cmNlVHlwZSgpLCByZXNvdXJjZS5nZXROYW1lKCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZCA9IG1Db250ZXh0LmdldFByb2plY3RDYWxsYmFjaygpLmdldFJlc291cmNlSWQoCi0gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZS5nZXRSZXNvdXJjZVR5cGUoKSwgcmVzb3VyY2UuZ2V0TmFtZSgpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKGlkICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gaWQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdXRpbC9GbG9hdE1hdGhfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdXRpbC9GbG9hdE1hdGhfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGI0YzYwYi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3V0aWwvRmxvYXRNYXRoX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxMzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC51dGlsOwotCi1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLkRlbGVnYXRlTWFuYWdlcjsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLS8qKgotICogRGVsZWdhdGUgaW1wbGVtZW50aW5nIHRoZSBuYXRpdmUgbWV0aG9kcyBvZiBhbmRyb2lkLnV0aWwuRmxvYXRNYXRoCi0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZHMgb2YgRmxvYXRNYXRoIGhhdmUgYmVlbiByZXBsYWNlZAotICogYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICogQmVjYXVzZSBpdCdzIGEgc3RhdGVsZXNzIGNsYXNzIHRvIHN0YXJ0IHdpdGgsIHRoZXJlJ3Mgbm8gbmVlZCB0byBrZWVwIGEge0BsaW5rIERlbGVnYXRlTWFuYWdlcn0KLSAqIGFyb3VuZCB0byBtYXAgaW50IHRvIGluc3RhbmNlIG9mIHRoZSBkZWxlZ2F0ZS4KLSAqCi0gKi8KLS8qcGFja2FnZSovIGZpbmFsIGNsYXNzIEZsb2F0TWF0aF9EZWxlZ2F0ZSB7Ci0KLSAgICAvKiogUHJldmVudHMgaW5zdGFudGlhdGlvbi4gKi8KLSAgICBwcml2YXRlIEZsb2F0TWF0aF9EZWxlZ2F0ZSgpIHt9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBmbG9hdCBjb252ZXJzaW9uIG9mIHRoZSBtb3N0IHBvc2l0aXZlIChpLmUuIGNsb3Nlc3QgdG8KLSAgICAgKiBwb3NpdGl2ZSBpbmZpbml0eSkgaW50ZWdlciB2YWx1ZSB3aGljaCBpcyBsZXNzIHRoYW4gdGhlIGFyZ3VtZW50LgotICAgICAqCi0gICAgICogQHBhcmFtIHZhbHVlIHRvIGJlIGNvbnZlcnRlZAotICAgICAqIEByZXR1cm4gdGhlIGZsb29yIG9mIHZhbHVlCi0gICAgICovCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0IGZsb29yKGZsb2F0IHZhbHVlKSB7Ci0gICAgICAgIHJldHVybiAoZmxvYXQpTWF0aC5mbG9vcih2YWx1ZSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgZmxvYXQgY29udmVyc2lvbiBvZiB0aGUgbW9zdCBuZWdhdGl2ZSAoaS5lLiBjbG9zZXN0IHRvCi0gICAgICogbmVnYXRpdmUgaW5maW5pdHkpIGludGVnZXIgdmFsdWUgd2hpY2ggaXMgZ3JlYXRlciB0aGFuIHRoZSBhcmd1bWVudC4KLSAgICAgKgotICAgICAqIEBwYXJhbSB2YWx1ZSB0byBiZSBjb252ZXJ0ZWQKLSAgICAgKiBAcmV0dXJuIHRoZSBjZWlsaW5nIG9mIHZhbHVlCi0gICAgICovCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIGZsb2F0IGNlaWwoZmxvYXQgdmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIChmbG9hdClNYXRoLmNlaWwodmFsdWUpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIGNsb3Nlc3QgZmxvYXQgYXBwcm94aW1hdGlvbiBvZiB0aGUgc2luZSBvZiB0aGUgYXJndW1lbnQuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gYW5nbGUgdG8gY29tcHV0ZSB0aGUgY29zaW5lIG9mLCBpbiByYWRpYW5zCi0gICAgICogQHJldHVybiB0aGUgc2luZSBvZiBhbmdsZQotICAgICAqLwotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyAgZmxvYXQgc2luKGZsb2F0IGFuZ2xlKSB7Ci0gICAgICAgIHJldHVybiAoZmxvYXQpTWF0aC5zaW4oYW5nbGUpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIGNsb3Nlc3QgZmxvYXQgYXBwcm94aW1hdGlvbiBvZiB0aGUgY29zaW5lIG9mIHRoZSBhcmd1bWVudC4KLSAgICAgKgotICAgICAqIEBwYXJhbSBhbmdsZSB0byBjb21wdXRlIHRoZSBjb3NpbmUgb2YsIGluIHJhZGlhbnMKLSAgICAgKiBAcmV0dXJuIHRoZSBjb3NpbmUgb2YgYW5nbGUKLSAgICAgKi8KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgZmxvYXQgY29zKGZsb2F0IGFuZ2xlKSB7Ci0gICAgICAgIHJldHVybiAoZmxvYXQpTWF0aC5jb3MoYW5nbGUpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIGNsb3Nlc3QgZmxvYXQgYXBwcm94aW1hdGlvbiBvZiB0aGUgc3F1YXJlIHJvb3Qgb2YgdGhlCi0gICAgICogYXJndW1lbnQuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gdmFsdWUgdG8gY29tcHV0ZSBzcXJ0IG9mCi0gICAgICogQHJldHVybiB0aGUgc3F1YXJlIHJvb3Qgb2YgdmFsdWUKLSAgICAgKi8KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgZmxvYXQgc3FydChmbG9hdCB2YWx1ZSkgewotICAgICAgICByZXR1cm4gKGZsb2F0KU1hdGguc3FydCh2YWx1ZSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgY2xvc2VzdCBmbG9hdCBhcHByb3hpbWF0aW9uIG9mIHRoZSByYWlzaW5nICJlIiB0byB0aGUgcG93ZXIKLSAgICAgKiBvZiB0aGUgYXJndW1lbnQuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gdmFsdWUgdG8gY29tcHV0ZSB0aGUgZXhwb25lbnRpYWwgb2YKLSAgICAgKiBAcmV0dXJuIHRoZSBleHBvbmVudGlhbCBvZiB2YWx1ZQotICAgICAqLwotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBmbG9hdCBleHAoZmxvYXQgdmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIChmbG9hdClNYXRoLmV4cCh2YWx1ZSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgY2xvc2VzdCBmbG9hdCBhcHByb3hpbWF0aW9uIG9mIHRoZSByZXN1bHQgb2YgcmFpc2luZyB7QGNvZGUKLSAgICAgKiB4fSB0byB0aGUgcG93ZXIgb2Yge0Bjb2RlIHl9LgotICAgICAqCi0gICAgICogQHBhcmFtIHggdGhlIGJhc2Ugb2YgdGhlIG9wZXJhdGlvbi4KLSAgICAgKiBAcGFyYW0geSB0aGUgZXhwb25lbnQgb2YgdGhlIG9wZXJhdGlvbi4KLSAgICAgKiBAcmV0dXJuIHtAY29kZSB4fSB0byB0aGUgcG93ZXIgb2Yge0Bjb2RlIHl9LgotICAgICAqLwotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBmbG9hdCBwb3coZmxvYXQgeCwgZmxvYXQgeSkgewotICAgICAgICByZXR1cm4gKGZsb2F0KU1hdGgucG93KHgsIHkpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMge0Bjb2RlIHNxcnQofTxpPntAY29kZSB4fTwvaT48c3VwPntAY29kZSAyfTwvc3VwPntAY29kZSArfSA8aT4KLSAgICAgKiB7QGNvZGUgeX08L2k+PHN1cD57QGNvZGUgMn08L3N1cD57QGNvZGUgKX0uCi0gICAgICoKLSAgICAgKiBAcGFyYW0geCBhIGZsb2F0IG51bWJlcgotICAgICAqIEBwYXJhbSB5IGEgZmxvYXQgbnVtYmVyCi0gICAgICogQHJldHVybiB0aGUgaHlwb3RlbnVzZQotICAgICAqLwotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBmbG9hdCBoeXBvdChmbG9hdCB4LCBmbG9hdCB5KSB7Ci0gICAgICAgIHJldHVybiAoZmxvYXQpTWF0aC5zcXJ0KHgqeCArIHkqeSk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC91dGlsL0xvZ19EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC91dGlsL0xvZ19EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjQzMmFiLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdXRpbC9Mb2dfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQudXRpbDsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotY2xhc3MgTG9nX0RlbGVnYXRlIHsKLSAgICAvLyB0byByZXBsaWNhdGUgcHJlZml4IHZpc2libGUgd2hlbiB1c2luZyAnYWRiIGxvZ2NhdCcKLSAgICBwcml2YXRlIHN0YXRpYyBjaGFyIHByaW9yaXR5Q2hhcihpbnQgcHJpb3JpdHkpIHsKLSAgICAgICAgc3dpdGNoIChwcmlvcml0eSkgewotICAgICAgICAgICAgY2FzZSBMb2cuVkVSQk9TRToKLSAgICAgICAgICAgICAgICByZXR1cm4gJ1YnOwotICAgICAgICAgICAgY2FzZSBMb2cuREVCVUc6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdEJzsKLSAgICAgICAgICAgIGNhc2UgTG9nLklORk86Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdJJzsKLSAgICAgICAgICAgIGNhc2UgTG9nLldBUk46Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdXJzsKLSAgICAgICAgICAgIGNhc2UgTG9nLkVSUk9SOgotICAgICAgICAgICAgICAgIHJldHVybiAnRSc7Ci0gICAgICAgICAgICBjYXNlIExvZy5BU1NFUlQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdBJzsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICc/JzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIHN0YXRpYyBpbnQgcHJpbnRsbl9uYXRpdmUoaW50IGJ1ZklELCBpbnQgcHJpb3JpdHksIFN0cmluZyB0YWcsIFN0cmluZyBtc2dzKSB7Ci0gICAgICAgIFN0cmluZyBwcmVmaXggPSBwcmlvcml0eUNoYXIocHJpb3JpdHkpICsgIi8iICsgdGFnICsgIjogIjsKLSAgICAgICAgZm9yIChTdHJpbmcgbXNnOiBtc2dzLnNwbGl0KCJcbiIpKSB7Ci0gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocHJlZml4ICsgbXNnKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdXRpbC9McnVDYWNoZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC91dGlsL0xydUNhY2hlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUyMDg2MDYuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC91dGlsL0xydUNhY2hlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwzOTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC51dGlsOwotCi1pbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hNYXA7Ci1pbXBvcnQgamF2YS51dGlsLk1hcDsKLQotLyoqCi0gKiBCRUdJTiBMQVlPVVRMSUIgQ0hBTkdFCi0gKiBUaGlzIGlzIGEgY3VzdG9tIHZlcnNpb24gdGhhdCBkb2Vzbid0IHVzZSB0aGUgbm9uIHN0YW5kYXJkIExpbmtlZEhhc2hNYXAjZWxkZXN0LgotICogRU5EIExBWU9VVExJQiBDSEFOR0UKLSAqCi0gKiBBIGNhY2hlIHRoYXQgaG9sZHMgc3Ryb25nIHJlZmVyZW5jZXMgdG8gYSBsaW1pdGVkIG51bWJlciBvZiB2YWx1ZXMuIEVhY2ggdGltZQotICogYSB2YWx1ZSBpcyBhY2Nlc3NlZCwgaXQgaXMgbW92ZWQgdG8gdGhlIGhlYWQgb2YgYSBxdWV1ZS4gV2hlbiBhIHZhbHVlIGlzCi0gKiBhZGRlZCB0byBhIGZ1bGwgY2FjaGUsIHRoZSB2YWx1ZSBhdCB0aGUgZW5kIG9mIHRoYXQgcXVldWUgaXMgZXZpY3RlZCBhbmQgbWF5Ci0gKiBiZWNvbWUgZWxpZ2libGUgZm9yIGdhcmJhZ2UgY29sbGVjdGlvbi4KLSAqCi0gKiA8cD5JZiB5b3VyIGNhY2hlZCB2YWx1ZXMgaG9sZCByZXNvdXJjZXMgdGhhdCBuZWVkIHRvIGJlIGV4cGxpY2l0bHkgcmVsZWFzZWQsCi0gKiBvdmVycmlkZSB7QGxpbmsgI2VudHJ5UmVtb3ZlZH0uCi0gKgotICogPHA+SWYgYSBjYWNoZSBtaXNzIHNob3VsZCBiZSBjb21wdXRlZCBvbiBkZW1hbmQgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGtleXMsCi0gKiBvdmVycmlkZSB7QGxpbmsgI2NyZWF0ZX0uIFRoaXMgc2ltcGxpZmllcyB0aGUgY2FsbGluZyBjb2RlLCBhbGxvd2luZyBpdCB0bwotICogYXNzdW1lIGEgdmFsdWUgd2lsbCBhbHdheXMgYmUgcmV0dXJuZWQsIGV2ZW4gd2hlbiB0aGVyZSdzIGEgY2FjaGUgbWlzcy4KLSAqCi0gKiA8cD5CeSBkZWZhdWx0LCB0aGUgY2FjaGUgc2l6ZSBpcyBtZWFzdXJlZCBpbiB0aGUgbnVtYmVyIG9mIGVudHJpZXMuIE92ZXJyaWRlCi0gKiB7QGxpbmsgI3NpemVPZn0gdG8gc2l6ZSB0aGUgY2FjaGUgaW4gZGlmZmVyZW50IHVuaXRzLiBGb3IgZXhhbXBsZSwgdGhpcyBjYWNoZQotICogaXMgbGltaXRlZCB0byA0TWlCIG9mIGJpdG1hcHM6Ci0gKiA8cHJlPiAgIHtAY29kZQotICogICBpbnQgY2FjaGVTaXplID0gNCAqIDEwMjQgKiAxMDI0OyAvLyA0TWlCCi0gKiAgIExydUNhY2hlPFN0cmluZywgQml0bWFwPiBiaXRtYXBDYWNoZSA9IG5ldyBMcnVDYWNoZTxTdHJpbmcsIEJpdG1hcD4oY2FjaGVTaXplKSB7Ci0gKiAgICAgICBwcm90ZWN0ZWQgaW50IHNpemVPZihTdHJpbmcga2V5LCBCaXRtYXAgdmFsdWUpIHsKLSAqICAgICAgICAgICByZXR1cm4gdmFsdWUuZ2V0Qnl0ZUNvdW50KCk7Ci0gKiAgICAgICB9Ci0gKiAgIH19PC9wcmU+Ci0gKgotICogPHA+VGhpcyBjbGFzcyBpcyB0aHJlYWQtc2FmZS4gUGVyZm9ybSBtdWx0aXBsZSBjYWNoZSBvcGVyYXRpb25zIGF0b21pY2FsbHkgYnkKLSAqIHN5bmNocm9uaXppbmcgb24gdGhlIGNhY2hlOiA8cHJlPiAgIHtAY29kZQotICogICBzeW5jaHJvbml6ZWQgKGNhY2hlKSB7Ci0gKiAgICAgaWYgKGNhY2hlLmdldChrZXkpID09IG51bGwpIHsKLSAqICAgICAgICAgY2FjaGUucHV0KGtleSwgdmFsdWUpOwotICogICAgIH0KLSAqICAgfX08L3ByZT4KLSAqCi0gKiA8cD5UaGlzIGNsYXNzIGRvZXMgbm90IGFsbG93IG51bGwgdG8gYmUgdXNlZCBhcyBhIGtleSBvciB2YWx1ZS4gQSByZXR1cm4KLSAqIHZhbHVlIG9mIG51bGwgZnJvbSB7QGxpbmsgI2dldH0sIHtAbGluayAjcHV0fSBvciB7QGxpbmsgI3JlbW92ZX0gaXMKLSAqIHVuYW1iaWd1b3VzOiB0aGUga2V5IHdhcyBub3QgaW4gdGhlIGNhY2hlLgotICoKLSAqIDxwPlRoaXMgY2xhc3MgYXBwZWFyZWQgaW4gQW5kcm9pZCAzLjEgKEhvbmV5Y29tYiBNUjEpOyBpdCdzIGF2YWlsYWJsZSBhcyBwYXJ0Ci0gKiBvZiA8YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3Nkay9jb21wYXRpYmlsaXR5LWxpYnJhcnkuaHRtbCI+QW5kcm9pZCdzCi0gKiBTdXBwb3J0IFBhY2thZ2U8L2E+IGZvciBlYXJsaWVyIHJlbGVhc2VzLgotICovCi1wdWJsaWMgY2xhc3MgTHJ1Q2FjaGU8SywgVj4gewotICAgIHByaXZhdGUgZmluYWwgTGlua2VkSGFzaE1hcDxLLCBWPiBtYXA7Ci0KLSAgICAvKiogU2l6ZSBvZiB0aGlzIGNhY2hlIGluIHVuaXRzLiBOb3QgbmVjZXNzYXJpbHkgdGhlIG51bWJlciBvZiBlbGVtZW50cy4gKi8KLSAgICBwcml2YXRlIGludCBzaXplOwotICAgIHByaXZhdGUgaW50IG1heFNpemU7Ci0KLSAgICBwcml2YXRlIGludCBwdXRDb3VudDsKLSAgICBwcml2YXRlIGludCBjcmVhdGVDb3VudDsKLSAgICBwcml2YXRlIGludCBldmljdGlvbkNvdW50OwotICAgIHByaXZhdGUgaW50IGhpdENvdW50OwotICAgIHByaXZhdGUgaW50IG1pc3NDb3VudDsKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSBtYXhTaXplIGZvciBjYWNoZXMgdGhhdCBkbyBub3Qgb3ZlcnJpZGUge0BsaW5rICNzaXplT2Z9LCB0aGlzIGlzCi0gICAgICogICAgIHRoZSBtYXhpbXVtIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBjYWNoZS4gRm9yIGFsbCBvdGhlciBjYWNoZXMsCi0gICAgICogICAgIHRoaXMgaXMgdGhlIG1heGltdW0gc3VtIG9mIHRoZSBzaXplcyBvZiB0aGUgZW50cmllcyBpbiB0aGlzIGNhY2hlLgotICAgICAqLwotICAgIHB1YmxpYyBMcnVDYWNoZShpbnQgbWF4U2l6ZSkgewotICAgICAgICBpZiAobWF4U2l6ZSA8PSAwKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJtYXhTaXplIDw9IDAiKTsKLSAgICAgICAgfQotICAgICAgICB0aGlzLm1heFNpemUgPSBtYXhTaXplOwotICAgICAgICB0aGlzLm1hcCA9IG5ldyBMaW5rZWRIYXNoTWFwPEssIFY+KDAsIDAuNzVmLCB0cnVlKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBTZXRzIHRoZSBzaXplIG9mIHRoZSBjYWNoZS4KLSAgICAgKiBAcGFyYW0gbWF4U2l6ZSBUaGUgbmV3IG1heGltdW0gc2l6ZS4KLSAgICAgKgotICAgICAqIEBoaWRlCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgcmVzaXplKGludCBtYXhTaXplKSB7Ci0gICAgICAgIGlmIChtYXhTaXplIDw9IDApIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIm1heFNpemUgPD0gMCIpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7Ci0gICAgICAgICAgICB0aGlzLm1heFNpemUgPSBtYXhTaXplOwotICAgICAgICB9Ci0gICAgICAgIHRyaW1Ub1NpemUobWF4U2l6ZSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgdmFsdWUgZm9yIHtAY29kZSBrZXl9IGlmIGl0IGV4aXN0cyBpbiB0aGUgY2FjaGUgb3IgY2FuIGJlCi0gICAgICogY3JlYXRlZCBieSB7QGNvZGUgI2NyZWF0ZX0uIElmIGEgdmFsdWUgd2FzIHJldHVybmVkLCBpdCBpcyBtb3ZlZCB0byB0aGUKLSAgICAgKiBoZWFkIG9mIHRoZSBxdWV1ZS4gVGhpcyByZXR1cm5zIG51bGwgaWYgYSB2YWx1ZSBpcyBub3QgY2FjaGVkIGFuZCBjYW5ub3QKLSAgICAgKiBiZSBjcmVhdGVkLgotICAgICAqLwotICAgIHB1YmxpYyBmaW5hbCBWIGdldChLIGtleSkgewotICAgICAgICBpZiAoa2V5ID09IG51bGwpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigia2V5ID09IG51bGwiKTsKLSAgICAgICAgfQotCi0gICAgICAgIFYgbWFwVmFsdWU7Ci0gICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgewotICAgICAgICAgICAgbWFwVmFsdWUgPSBtYXAuZ2V0KGtleSk7Ci0gICAgICAgICAgICBpZiAobWFwVmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGhpdENvdW50Kys7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1hcFZhbHVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbWlzc0NvdW50Kys7Ci0gICAgICAgIH0KLQotICAgICAgICAvKgotICAgICAgICAgKiBBdHRlbXB0IHRvIGNyZWF0ZSBhIHZhbHVlLiBUaGlzIG1heSB0YWtlIGEgbG9uZyB0aW1lLCBhbmQgdGhlIG1hcAotICAgICAgICAgKiBtYXkgYmUgZGlmZmVyZW50IHdoZW4gY3JlYXRlKCkgcmV0dXJucy4gSWYgYSBjb25mbGljdGluZyB2YWx1ZSB3YXMKLSAgICAgICAgICogYWRkZWQgdG8gdGhlIG1hcCB3aGlsZSBjcmVhdGUoKSB3YXMgd29ya2luZywgd2UgbGVhdmUgdGhhdCB2YWx1ZSBpbgotICAgICAgICAgKiB0aGUgbWFwIGFuZCByZWxlYXNlIHRoZSBjcmVhdGVkIHZhbHVlLgotICAgICAgICAgKi8KLQotICAgICAgICBWIGNyZWF0ZWRWYWx1ZSA9IGNyZWF0ZShrZXkpOwotICAgICAgICBpZiAoY3JlYXRlZFZhbHVlID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7Ci0gICAgICAgICAgICBjcmVhdGVDb3VudCsrOwotICAgICAgICAgICAgbWFwVmFsdWUgPSBtYXAucHV0KGtleSwgY3JlYXRlZFZhbHVlKTsKLQotICAgICAgICAgICAgaWYgKG1hcFZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAvLyBUaGVyZSB3YXMgYSBjb25mbGljdCBzbyB1bmRvIHRoYXQgbGFzdCBwdXQKLSAgICAgICAgICAgICAgICBtYXAucHV0KGtleSwgbWFwVmFsdWUpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBzaXplICs9IHNhZmVTaXplT2Yoa2V5LCBjcmVhdGVkVmFsdWUpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKG1hcFZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgIGVudHJ5UmVtb3ZlZChmYWxzZSwga2V5LCBjcmVhdGVkVmFsdWUsIG1hcFZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiBtYXBWYWx1ZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRyaW1Ub1NpemUobWF4U2l6ZSk7Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRlZFZhbHVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ2FjaGVzIHtAY29kZSB2YWx1ZX0gZm9yIHtAY29kZSBrZXl9LiBUaGUgdmFsdWUgaXMgbW92ZWQgdG8gdGhlIGhlYWQgb2YKLSAgICAgKiB0aGUgcXVldWUuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyB2YWx1ZSBtYXBwZWQgYnkge0Bjb2RlIGtleX0uCi0gICAgICovCi0gICAgcHVibGljIGZpbmFsIFYgcHV0KEsga2V5LCBWIHZhbHVlKSB7Ci0gICAgICAgIGlmIChrZXkgPT0gbnVsbCB8fCB2YWx1ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oImtleSA9PSBudWxsIHx8IHZhbHVlID09IG51bGwiKTsKLSAgICAgICAgfQotCi0gICAgICAgIFYgcHJldmlvdXM7Ci0gICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgewotICAgICAgICAgICAgcHV0Q291bnQrKzsKLSAgICAgICAgICAgIHNpemUgKz0gc2FmZVNpemVPZihrZXksIHZhbHVlKTsKLSAgICAgICAgICAgIHByZXZpb3VzID0gbWFwLnB1dChrZXksIHZhbHVlKTsKLSAgICAgICAgICAgIGlmIChwcmV2aW91cyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgc2l6ZSAtPSBzYWZlU2l6ZU9mKGtleSwgcHJldmlvdXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHByZXZpb3VzICE9IG51bGwpIHsKLSAgICAgICAgICAgIGVudHJ5UmVtb3ZlZChmYWxzZSwga2V5LCBwcmV2aW91cywgdmFsdWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgdHJpbVRvU2l6ZShtYXhTaXplKTsKLSAgICAgICAgcmV0dXJuIHByZXZpb3VzOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEBwYXJhbSBtYXhTaXplIHRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIGNhY2hlIGJlZm9yZSByZXR1cm5pbmcuIE1heSBiZSAtMQotICAgICAqICAgICB0byBldmljdCBldmVuIDAtc2l6ZWQgZWxlbWVudHMuCi0gICAgICovCi0gICAgcHJpdmF0ZSB2b2lkIHRyaW1Ub1NpemUoaW50IG1heFNpemUpIHsKLSAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgICAgIEsga2V5OwotICAgICAgICAgICAgViB2YWx1ZTsKLSAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgewotICAgICAgICAgICAgICAgIGlmIChzaXplIDwgMCB8fCAobWFwLmlzRW1wdHkoKSAmJiBzaXplICE9IDApKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZ2V0Q2xhc3MoKS5nZXROYW1lKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIuc2l6ZU9mKCkgaXMgcmVwb3J0aW5nIGluY29uc2lzdGVudCByZXN1bHRzISIpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChzaXplIDw9IG1heFNpemUpIHsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gQkVHSU4gTEFZT1VUTElCIENIQU5HRQotICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgbGFzdCBpdGVtIGluIHRoZSBsaW5rZWQgbGlzdC4KLSAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIG5vdCBlZmZpY2llbnQsIHRoZSBnb2FsIGhlcmUgaXMgdG8gbWluaW1pemUgdGhlIGNoYW5nZXMKLSAgICAgICAgICAgICAgICAvLyBjb21wYXJlZCB0byB0aGUgcGxhdGZvcm0gdmVyc2lvbi4KLSAgICAgICAgICAgICAgICBNYXAuRW50cnk8SywgVj4gdG9FdmljdCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgZm9yIChNYXAuRW50cnk8SywgVj4gZW50cnkgOiBtYXAuZW50cnlTZXQoKSkgewotICAgICAgICAgICAgICAgICAgICB0b0V2aWN0ID0gZW50cnk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIC8vIEVORCBMQVlPVVRMSUIgQ0hBTkdFCi0KLSAgICAgICAgICAgICAgICBpZiAodG9FdmljdCA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGtleSA9IHRvRXZpY3QuZ2V0S2V5KCk7Ci0gICAgICAgICAgICAgICAgdmFsdWUgPSB0b0V2aWN0LmdldFZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgbWFwLnJlbW92ZShrZXkpOwotICAgICAgICAgICAgICAgIHNpemUgLT0gc2FmZVNpemVPZihrZXksIHZhbHVlKTsKLSAgICAgICAgICAgICAgICBldmljdGlvbkNvdW50Kys7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGVudHJ5UmVtb3ZlZCh0cnVlLCBrZXksIHZhbHVlLCBudWxsKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlbW92ZXMgdGhlIGVudHJ5IGZvciB7QGNvZGUga2V5fSBpZiBpdCBleGlzdHMuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyB2YWx1ZSBtYXBwZWQgYnkge0Bjb2RlIGtleX0uCi0gICAgICovCi0gICAgcHVibGljIGZpbmFsIFYgcmVtb3ZlKEsga2V5KSB7Ci0gICAgICAgIGlmIChrZXkgPT0gbnVsbCkgewotICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCJrZXkgPT0gbnVsbCIpOwotICAgICAgICB9Ci0KLSAgICAgICAgViBwcmV2aW91czsKLSAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7Ci0gICAgICAgICAgICBwcmV2aW91cyA9IG1hcC5yZW1vdmUoa2V5KTsKLSAgICAgICAgICAgIGlmIChwcmV2aW91cyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgc2l6ZSAtPSBzYWZlU2l6ZU9mKGtleSwgcHJldmlvdXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHByZXZpb3VzICE9IG51bGwpIHsKLSAgICAgICAgICAgIGVudHJ5UmVtb3ZlZChmYWxzZSwga2V5LCBwcmV2aW91cywgbnVsbCk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gcHJldmlvdXM7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ2FsbGVkIGZvciBlbnRyaWVzIHRoYXQgaGF2ZSBiZWVuIGV2aWN0ZWQgb3IgcmVtb3ZlZC4gVGhpcyBtZXRob2QgaXMKLSAgICAgKiBpbnZva2VkIHdoZW4gYSB2YWx1ZSBpcyBldmljdGVkIHRvIG1ha2Ugc3BhY2UsIHJlbW92ZWQgYnkgYSBjYWxsIHRvCi0gICAgICoge0BsaW5rICNyZW1vdmV9LCBvciByZXBsYWNlZCBieSBhIGNhbGwgdG8ge0BsaW5rICNwdXR9LiBUaGUgZGVmYXVsdAotICAgICAqIGltcGxlbWVudGF0aW9uIGRvZXMgbm90aGluZy4KLSAgICAgKgotICAgICAqIDxwPlRoZSBtZXRob2QgaXMgY2FsbGVkIHdpdGhvdXQgc3luY2hyb25pemF0aW9uOiBvdGhlciB0aHJlYWRzIG1heQotICAgICAqIGFjY2VzcyB0aGUgY2FjaGUgd2hpbGUgdGhpcyBtZXRob2QgaXMgZXhlY3V0aW5nLgotICAgICAqCi0gICAgICogQHBhcmFtIGV2aWN0ZWQgdHJ1ZSBpZiB0aGUgZW50cnkgaXMgYmVpbmcgcmVtb3ZlZCB0byBtYWtlIHNwYWNlLCBmYWxzZQotICAgICAqICAgICBpZiB0aGUgcmVtb3ZhbCB3YXMgY2F1c2VkIGJ5IGEge0BsaW5rICNwdXR9IG9yIHtAbGluayAjcmVtb3ZlfS4KLSAgICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG5ldyB2YWx1ZSBmb3Ige0Bjb2RlIGtleX0sIGlmIGl0IGV4aXN0cy4gSWYgbm9uLW51bGwsCi0gICAgICogICAgIHRoaXMgcmVtb3ZhbCB3YXMgY2F1c2VkIGJ5IGEge0BsaW5rICNwdXR9LiBPdGhlcndpc2UgaXQgd2FzIGNhdXNlZCBieQotICAgICAqICAgICBhbiBldmljdGlvbiBvciBhIHtAbGluayAjcmVtb3ZlfS4KLSAgICAgKi8KLSAgICBwcm90ZWN0ZWQgdm9pZCBlbnRyeVJlbW92ZWQoYm9vbGVhbiBldmljdGVkLCBLIGtleSwgViBvbGRWYWx1ZSwgViBuZXdWYWx1ZSkge30KLQotICAgIC8qKgotICAgICAqIENhbGxlZCBhZnRlciBhIGNhY2hlIG1pc3MgdG8gY29tcHV0ZSBhIHZhbHVlIGZvciB0aGUgY29ycmVzcG9uZGluZyBrZXkuCi0gICAgICogUmV0dXJucyB0aGUgY29tcHV0ZWQgdmFsdWUgb3IgbnVsbCBpZiBubyB2YWx1ZSBjYW4gYmUgY29tcHV0ZWQuIFRoZQotICAgICAqIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyBudWxsLgotICAgICAqCi0gICAgICogPHA+VGhlIG1ldGhvZCBpcyBjYWxsZWQgd2l0aG91dCBzeW5jaHJvbml6YXRpb246IG90aGVyIHRocmVhZHMgbWF5Ci0gICAgICogYWNjZXNzIHRoZSBjYWNoZSB3aGlsZSB0aGlzIG1ldGhvZCBpcyBleGVjdXRpbmcuCi0gICAgICoKLSAgICAgKiA8cD5JZiBhIHZhbHVlIGZvciB7QGNvZGUga2V5fSBleGlzdHMgaW4gdGhlIGNhY2hlIHdoZW4gdGhpcyBtZXRob2QKLSAgICAgKiByZXR1cm5zLCB0aGUgY3JlYXRlZCB2YWx1ZSB3aWxsIGJlIHJlbGVhc2VkIHdpdGgge0BsaW5rICNlbnRyeVJlbW92ZWR9Ci0gICAgICogYW5kIGRpc2NhcmRlZC4gVGhpcyBjYW4gb2NjdXIgd2hlbiBtdWx0aXBsZSB0aHJlYWRzIHJlcXVlc3QgdGhlIHNhbWUga2V5Ci0gICAgICogYXQgdGhlIHNhbWUgdGltZSAoY2F1c2luZyBtdWx0aXBsZSB2YWx1ZXMgdG8gYmUgY3JlYXRlZCksIG9yIHdoZW4gb25lCi0gICAgICogdGhyZWFkIGNhbGxzIHtAbGluayAjcHV0fSB3aGlsZSBhbm90aGVyIGlzIGNyZWF0aW5nIGEgdmFsdWUgZm9yIHRoZSBzYW1lCi0gICAgICoga2V5LgotICAgICAqLwotICAgIHByb3RlY3RlZCBWIGNyZWF0ZShLIGtleSkgewotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBwcml2YXRlIGludCBzYWZlU2l6ZU9mKEsga2V5LCBWIHZhbHVlKSB7Ci0gICAgICAgIGludCByZXN1bHQgPSBzaXplT2Yoa2V5LCB2YWx1ZSk7Ci0gICAgICAgIGlmIChyZXN1bHQgPCAwKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOZWdhdGl2ZSBzaXplOiAiICsga2V5ICsgIj0iICsgdmFsdWUpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgZW50cnkgZm9yIHtAY29kZSBrZXl9IGFuZCB7QGNvZGUgdmFsdWV9IGluCi0gICAgICogdXNlci1kZWZpbmVkIHVuaXRzLiAgVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyAxIHNvIHRoYXQgc2l6ZQotICAgICAqIGlzIHRoZSBudW1iZXIgb2YgZW50cmllcyBhbmQgbWF4IHNpemUgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMuCi0gICAgICoKLSAgICAgKiA8cD5BbiBlbnRyeSdzIHNpemUgbXVzdCBub3QgY2hhbmdlIHdoaWxlIGl0IGlzIGluIHRoZSBjYWNoZS4KLSAgICAgKi8KLSAgICBwcm90ZWN0ZWQgaW50IHNpemVPZihLIGtleSwgViB2YWx1ZSkgewotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDbGVhciB0aGUgY2FjaGUsIGNhbGxpbmcge0BsaW5rICNlbnRyeVJlbW92ZWR9IG9uIGVhY2ggcmVtb3ZlZCBlbnRyeS4KLSAgICAgKi8KLSAgICBwdWJsaWMgZmluYWwgdm9pZCBldmljdEFsbCgpIHsKLSAgICAgICAgdHJpbVRvU2l6ZSgtMSk7IC8vIC0xIHdpbGwgZXZpY3QgMC1zaXplZCBlbGVtZW50cwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEZvciBjYWNoZXMgdGhhdCBkbyBub3Qgb3ZlcnJpZGUge0BsaW5rICNzaXplT2Z9LCB0aGlzIHJldHVybnMgdGhlIG51bWJlcgotICAgICAqIG9mIGVudHJpZXMgaW4gdGhlIGNhY2hlLiBGb3IgYWxsIG90aGVyIGNhY2hlcywgdGhpcyByZXR1cm5zIHRoZSBzdW0gb2YKLSAgICAgKiB0aGUgc2l6ZXMgb2YgdGhlIGVudHJpZXMgaW4gdGhpcyBjYWNoZS4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3luY2hyb25pemVkIGZpbmFsIGludCBzaXplKCkgewotICAgICAgICByZXR1cm4gc2l6ZTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBGb3IgY2FjaGVzIHRoYXQgZG8gbm90IG92ZXJyaWRlIHtAbGluayAjc2l6ZU9mfSwgdGhpcyByZXR1cm5zIHRoZSBtYXhpbXVtCi0gICAgICogbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGNhY2hlLiBGb3IgYWxsIG90aGVyIGNhY2hlcywgdGhpcyByZXR1cm5zIHRoZQotICAgICAqIG1heGltdW0gc3VtIG9mIHRoZSBzaXplcyBvZiB0aGUgZW50cmllcyBpbiB0aGlzIGNhY2hlLgotICAgICAqLwotICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgZmluYWwgaW50IG1heFNpemUoKSB7Ci0gICAgICAgIHJldHVybiBtYXhTaXplOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiB0aW1lcyB7QGxpbmsgI2dldH0gcmV0dXJuZWQgYSB2YWx1ZSB0aGF0IHdhcwotICAgICAqIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgY2FjaGUuCi0gICAgICovCi0gICAgcHVibGljIHN5bmNocm9uaXplZCBmaW5hbCBpbnQgaGl0Q291bnQoKSB7Ci0gICAgICAgIHJldHVybiBoaXRDb3VudDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGltZXMge0BsaW5rICNnZXR9IHJldHVybmVkIG51bGwgb3IgcmVxdWlyZWQgYSBuZXcKLSAgICAgKiB2YWx1ZSB0byBiZSBjcmVhdGVkLgotICAgICAqLwotICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgZmluYWwgaW50IG1pc3NDb3VudCgpIHsKLSAgICAgICAgcmV0dXJuIG1pc3NDb3VudDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGltZXMge0BsaW5rICNjcmVhdGUoT2JqZWN0KX0gcmV0dXJuZWQgYSB2YWx1ZS4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3luY2hyb25pemVkIGZpbmFsIGludCBjcmVhdGVDb3VudCgpIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUNvdW50OwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiB0aW1lcyB7QGxpbmsgI3B1dH0gd2FzIGNhbGxlZC4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3luY2hyb25pemVkIGZpbmFsIGludCBwdXRDb3VudCgpIHsKLSAgICAgICAgcmV0dXJuIHB1dENvdW50OwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiB2YWx1ZXMgdGhhdCBoYXZlIGJlZW4gZXZpY3RlZC4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3luY2hyb25pemVkIGZpbmFsIGludCBldmljdGlvbkNvdW50KCkgewotICAgICAgICByZXR1cm4gZXZpY3Rpb25Db3VudDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgY3VycmVudCBjb250ZW50cyBvZiB0aGUgY2FjaGUsIG9yZGVyZWQgZnJvbSBsZWFzdAotICAgICAqIHJlY2VudGx5IGFjY2Vzc2VkIHRvIG1vc3QgcmVjZW50bHkgYWNjZXNzZWQuCi0gICAgICovCi0gICAgcHVibGljIHN5bmNocm9uaXplZCBmaW5hbCBNYXA8SywgVj4gc25hcHNob3QoKSB7Ci0gICAgICAgIHJldHVybiBuZXcgTGlua2VkSGFzaE1hcDxLLCBWPihtYXApOwotICAgIH0KLQotICAgIEBPdmVycmlkZSBwdWJsaWMgc3luY2hyb25pemVkIGZpbmFsIFN0cmluZyB0b1N0cmluZygpIHsKLSAgICAgICAgaW50IGFjY2Vzc2VzID0gaGl0Q291bnQgKyBtaXNzQ291bnQ7Ci0gICAgICAgIGludCBoaXRQZXJjZW50ID0gYWNjZXNzZXMgIT0gMCA/ICgxMDAgKiBoaXRDb3VudCAvIGFjY2Vzc2VzKSA6IDA7Ci0gICAgICAgIHJldHVybiBTdHJpbmcuZm9ybWF0KCJMcnVDYWNoZVttYXhTaXplPSVkLGhpdHM9JWQsbWlzc2VzPSVkLGhpdFJhdGU9JWQlJV0iLAotICAgICAgICAgICAgICAgIG1heFNpemUsIGhpdENvdW50LCBtaXNzQ291bnQsIGhpdFBlcmNlbnQpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdmlldy9BdHRhY2hJbmZvX0FjY2Vzc29yLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3ZpZXcvQXR0YWNoSW5mb19BY2Nlc3Nvci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OTAxZjcyLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdmlldy9BdHRhY2hJbmZvX0FjY2Vzc29yLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLnZpZXc7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmFuZHJvaWQuQnJpZGdlV2luZG93OwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC5CcmlkZ2VXaW5kb3dTZXNzaW9uOwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7Ci1pbXBvcnQgYW5kcm9pZC5vcy5IYW5kbGVyOwotaW1wb3J0IGFuZHJvaWQudmlldy5WaWV3LkF0dGFjaEluZm87Ci0KLS8qKgotICogQ2xhc3MgYWxsb3dpbmcgYWNjZXNzIHRvIHBhY2thZ2UtcHJvdGVjdGVkIG1ldGhvZHMvZmllbGRzLgotICovCi1wdWJsaWMgY2xhc3MgQXR0YWNoSW5mb19BY2Nlc3NvciB7Ci0KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0QXR0YWNoSW5mbyhWaWV3IHZpZXcpIHsKLSAgICAgICAgQ29udGV4dCBjb250ZXh0ID0gdmlldy5nZXRDb250ZXh0KCk7Ci0gICAgICAgIFdpbmRvd01hbmFnZXIgd20gPSAoV2luZG93TWFuYWdlciljb250ZXh0LmdldFN5c3RlbVNlcnZpY2UoQ29udGV4dC5XSU5ET1dfU0VSVklDRSk7Ci0gICAgICAgIERpc3BsYXkgZGlzcGxheSA9IHdtLmdldERlZmF1bHREaXNwbGF5KCk7Ci0gICAgICAgIFZpZXdSb290SW1wbCByb290ID0gbmV3IFZpZXdSb290SW1wbChjb250ZXh0LCBkaXNwbGF5KTsKLSAgICAgICAgQXR0YWNoSW5mbyBpbmZvID0gbmV3IEF0dGFjaEluZm8obmV3IEJyaWRnZVdpbmRvd1Nlc3Npb24oKSwgbmV3IEJyaWRnZVdpbmRvdygpLAotICAgICAgICAgICAgICAgIGRpc3BsYXksIHJvb3QsIG5ldyBIYW5kbGVyKCksIG51bGwpOwotICAgICAgICBpbmZvLm1IYXNXaW5kb3dGb2N1cyA9IHRydWU7Ci0gICAgICAgIGluZm8ubVdpbmRvd1Zpc2liaWxpdHkgPSBWaWV3LlZJU0lCTEU7Ci0gICAgICAgIGluZm8ubUluVG91Y2hNb2RlID0gZmFsc2U7IC8vIHRoaXMgaXMgc28gdGhhdCB3ZSBjYW4gZGlzcGxheSBzZWxlY3Rpb25zLgotICAgICAgICBpbmZvLm1IYXJkd2FyZUFjY2VsZXJhdGVkID0gZmFsc2U7Ci0gICAgICAgIHZpZXcuZGlzcGF0Y2hBdHRhY2hlZFRvV2luZG93KGluZm8sIDApOwotICAgIH0KLQotICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBkaXNwYXRjaE9uUHJlRHJhdyhWaWV3IHZpZXcpIHsKLSAgICAgICAgdmlldy5tQXR0YWNoSW5mby5tVHJlZU9ic2VydmVyLmRpc3BhdGNoT25QcmVEcmF3KCk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L0JyaWRnZUluZmxhdGVyLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3ZpZXcvQnJpZGdlSW5mbGF0ZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTQxZjFjZTYuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L0JyaWRnZUluZmxhdGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyNzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC52aWV3OwotCi1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLklQcm9qZWN0Q2FsbGJhY2s7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkxheW91dExvZzsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuTWVyZ2VDb29raWU7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlc291cmNlUmVmZXJlbmNlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXNvdXJjZVZhbHVlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC5CcmlkZ2VDb250ZXh0OwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC5CcmlkZ2VYbWxCbG9ja1BhcnNlcjsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuUGFyc2VyRmFjdG9yeTsKLWltcG9ydCBjb20uYW5kcm9pZC5yZXNvdXJjZXMuUmVzb3VyY2VUeXBlOwotaW1wb3J0IGNvbS5hbmRyb2lkLnV0aWwuUGFpcjsKLQotaW1wb3J0IG9yZy54bWxwdWxsLnYxLlhtbFB1bGxQYXJzZXI7Ci0KLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKLWltcG9ydCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0OwotaW1wb3J0IGFuZHJvaWQudmlldy5JbmZsYXRlRXhjZXB0aW9uOwotaW1wb3J0IGFuZHJvaWQudmlldy5MYXlvdXRJbmZsYXRlcjsKLWltcG9ydCBhbmRyb2lkLnZpZXcuVmlldzsKLWltcG9ydCBhbmRyb2lkLnZpZXcuVmlld0dyb3VwOwotCi1pbXBvcnQgamF2YS5pby5GaWxlOwotCi0vKioKLSAqIEN1c3RvbSBpbXBsZW1lbnRhdGlvbiBvZiB7QGxpbmsgTGF5b3V0SW5mbGF0ZXJ9IHRvIGhhbmRsZSBjdXN0b20gdmlld3MuCi0gKi8KLXB1YmxpYyBmaW5hbCBjbGFzcyBCcmlkZ2VJbmZsYXRlciBleHRlbmRzIExheW91dEluZmxhdGVyIHsKLQotICAgIHByaXZhdGUgZmluYWwgSVByb2plY3RDYWxsYmFjayBtUHJvamVjdENhbGxiYWNrOwotICAgIHByaXZhdGUgYm9vbGVhbiBtSXNJbk1lcmdlID0gZmFsc2U7Ci0gICAgcHJpdmF0ZSBSZXNvdXJjZVJlZmVyZW5jZSBtUmVzb3VyY2VSZWZlcmVuY2U7Ci0KLSAgICAvKioKLSAgICAgKiBMaXN0IG9mIGNsYXNzIHByZWZpeGVzIHdoaWNoIGFyZSB0cmllZCBmaXJzdCBieSBkZWZhdWx0LgotICAgICAqIDxwLz4KLSAgICAgKiBUaGlzIHNob3VsZCBtYXRjaCB0aGUgbGlzdCBpbiBjb20uYW5kcm9pZC5pbnRlcm5hbC5wb2xpY3kuaW1wbC5QaG9uZUxheW91dEluZmxhdGVyLgotICAgICAqLwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHNDbGFzc1ByZWZpeExpc3QgPSB7Ci0gICAgICAgICJhbmRyb2lkLndpZGdldC4iLAotICAgICAgICAiYW5kcm9pZC53ZWJraXQuIgotICAgIH07Ci0KLSAgICBwcm90ZWN0ZWQgQnJpZGdlSW5mbGF0ZXIoTGF5b3V0SW5mbGF0ZXIgb3JpZ2luYWwsIENvbnRleHQgbmV3Q29udGV4dCkgewotICAgICAgICBzdXBlcihvcmlnaW5hbCwgbmV3Q29udGV4dCk7Ci0gICAgICAgIG1Qcm9qZWN0Q2FsbGJhY2sgPSBudWxsOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEluc3RhbnRpYXRlIGEgbmV3IEJyaWRnZUluZmxhdGVyIHdpdGggYW4ge0BsaW5rIElQcm9qZWN0Q2FsbGJhY2t9IG9iamVjdC4KLSAgICAgKgotICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBBbmRyb2lkIGFwcGxpY2F0aW9uIGNvbnRleHQuCi0gICAgICogQHBhcmFtIHByb2plY3RDYWxsYmFjayB0aGUge0BsaW5rIElQcm9qZWN0Q2FsbGJhY2t9IG9iamVjdC4KLSAgICAgKi8KLSAgICBwdWJsaWMgQnJpZGdlSW5mbGF0ZXIoQ29udGV4dCBjb250ZXh0LCBJUHJvamVjdENhbGxiYWNrIHByb2plY3RDYWxsYmFjaykgewotICAgICAgICBzdXBlcihjb250ZXh0KTsKLSAgICAgICAgbVByb2plY3RDYWxsYmFjayA9IHByb2plY3RDYWxsYmFjazsKLSAgICAgICAgbUNvbnN0cnVjdG9yQXJnc1swXSA9IGNvbnRleHQ7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFZpZXcgb25DcmVhdGVWaWV3KFN0cmluZyBuYW1lLCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHRocm93cyBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgVmlldyB2aWV3ID0gbnVsbDsKLQotICAgICAgICB0cnkgewotICAgICAgICAgICAgLy8gRmlyc3QgdHJ5IHRvIGZpbmQgYSBjbGFzcyB1c2luZyB0aGUgZGVmYXVsdCBBbmRyb2lkIHByZWZpeGVzCi0gICAgICAgICAgICBmb3IgKFN0cmluZyBwcmVmaXggOiBzQ2xhc3NQcmVmaXhMaXN0KSB7Ci0gICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgdmlldyA9IGNyZWF0ZVZpZXcobmFtZSwgcHJlZml4LCBhdHRycyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh2aWV3ICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZS4gV2UnbGwgdHJ5IGFnYWluIHVzaW5nIHRoZSBiYXNlIGNsYXNzIGJlbG93LgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gTmV4dCB0cnkgdXNpbmcgdGhlIHBhcmVudCBsb2FkZXIuIFRoaXMgd2lsbCBtb3N0IGxpa2VseSBvbmx5IHdvcmsgZm9yCi0gICAgICAgICAgICAvLyBmdWxseS1xdWFsaWZpZWQgY2xhc3MgbmFtZXMuCi0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIGlmICh2aWV3ID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgdmlldyA9IHN1cGVyLm9uQ3JlYXRlVmlldyhuYW1lLCBhdHRycyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgLy8gSWdub3JlLiBXZSdsbCB0cnkgYWdhaW4gdXNpbmcgdGhlIGN1c3RvbSB2aWV3IGxvYWRlciBiZWxvdy4KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gRmluYWxseSB0cnkgYWdhaW4gdXNpbmcgdGhlIGN1c3RvbSB2aWV3IGxvYWRlcgotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBpZiAodmlldyA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZpZXcgPSBsb2FkQ3VzdG9tVmlldyhuYW1lLCBhdHRycyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNsYXNzIHdhcyBub3QgZm91bmQsIHdlIHRocm93IHRoZSBleGNlcHRpb24gZGlyZWN0bHksIGJlY2F1c2UgdGhpcwotICAgICAgICAgICAgICAgIC8vIG1ldGhvZCBpcyBhbHJlYWR5IGV4cGVjdGVkIHRvIHRocm93IGl0LgotICAgICAgICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAvLyBXcmFwIHRoZSByZWFsIGV4Y2VwdGlvbiBpbiBhIENsYXNzTm90Rm91bmRFeGNlcHRpb24sIHNvIHRoYXQgdGhlIGNhbGxpbmcgbWV0aG9kCi0gICAgICAgICAgICAvLyBjYW4gZGVhbCB3aXRoIGl0LgotICAgICAgICAgICAgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBleGNlcHRpb24gPSBuZXcgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbigib25DcmVhdGVWaWV3IiwgZSk7Ci0gICAgICAgICAgICB0aHJvdyBleGNlcHRpb247Ci0gICAgICAgIH0KLQotICAgICAgICBzZXR1cFZpZXdJbkNvbnRleHQodmlldywgYXR0cnMpOwotCi0gICAgICAgIHJldHVybiB2aWV3OwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBWaWV3IGNyZWF0ZVZpZXdGcm9tVGFnKFZpZXcgcGFyZW50LCBTdHJpbmcgbmFtZSwgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIFZpZXcgdmlldyA9IG51bGw7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICB2aWV3ID0gc3VwZXIuY3JlYXRlVmlld0Zyb21UYWcocGFyZW50LCBuYW1lLCBhdHRycyk7Ci0gICAgICAgIH0gY2F0Y2ggKEluZmxhdGVFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgLy8gdHJ5IHRvIGxvYWQgdGhlIGNsYXNzIGZyb20gdXNpbmcgdGhlIGN1c3RvbSB2aWV3IGxvYWRlcgotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICB2aWV3ID0gbG9hZEN1c3RvbVZpZXcobmFtZSwgYXR0cnMpOwotICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUyKSB7Ci0gICAgICAgICAgICAgICAgLy8gV3JhcCB0aGUgcmVhbCBleGNlcHRpb24gaW4gYW4gSW5mbGF0ZUV4Y2VwdGlvbiBzbyB0aGF0IHRoZSBjYWxsaW5nCi0gICAgICAgICAgICAgICAgLy8gbWV0aG9kIGNhbiBkZWFsIHdpdGggaXQuCi0gICAgICAgICAgICAgICAgSW5mbGF0ZUV4Y2VwdGlvbiBleGNlcHRpb24gPSBuZXcgSW5mbGF0ZUV4Y2VwdGlvbigpOwotICAgICAgICAgICAgICAgIGlmIChlMi5nZXRDbGFzcygpLmVxdWFscyhDbGFzc05vdEZvdW5kRXhjZXB0aW9uLmNsYXNzKSA9PSBmYWxzZSkgewotICAgICAgICAgICAgICAgICAgICBleGNlcHRpb24uaW5pdENhdXNlKGUyKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBleGNlcHRpb24uaW5pdENhdXNlKGUpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB0aHJvdyBleGNlcHRpb247Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBzZXR1cFZpZXdJbkNvbnRleHQodmlldywgYXR0cnMpOwotCi0gICAgICAgIHJldHVybiB2aWV3OwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBWaWV3IGluZmxhdGUoaW50IHJlc291cmNlLCBWaWV3R3JvdXAgcm9vdCkgewotICAgICAgICBDb250ZXh0IGNvbnRleHQgPSBnZXRDb250ZXh0KCk7Ci0gICAgICAgIGlmIChjb250ZXh0IGluc3RhbmNlb2YgQnJpZGdlQ29udGV4dCkgewotICAgICAgICAgICAgQnJpZGdlQ29udGV4dCBicmlkZ2VDb250ZXh0ID0gKEJyaWRnZUNvbnRleHQpY29udGV4dDsKLQotICAgICAgICAgICAgUmVzb3VyY2VWYWx1ZSB2YWx1ZSA9IG51bGw7Ci0KLSAgICAgICAgICAgIFBhaXI8UmVzb3VyY2VUeXBlLCBTdHJpbmc+IGxheW91dEluZm8gPSBCcmlkZ2UucmVzb2x2ZVJlc291cmNlSWQocmVzb3VyY2UpOwotICAgICAgICAgICAgaWYgKGxheW91dEluZm8gIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHZhbHVlID0gYnJpZGdlQ29udGV4dC5nZXRSZW5kZXJSZXNvdXJjZXMoKS5nZXRGcmFtZXdvcmtSZXNvdXJjZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVHlwZS5MQVlPVVQsIGxheW91dEluZm8uZ2V0U2Vjb25kKCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBsYXlvdXRJbmZvID0gbVByb2plY3RDYWxsYmFjay5yZXNvbHZlUmVzb3VyY2VJZChyZXNvdXJjZSk7Ci0KLSAgICAgICAgICAgICAgICBpZiAobGF5b3V0SW5mbyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gYnJpZGdlQ29udGV4dC5nZXRSZW5kZXJSZXNvdXJjZXMoKS5nZXRQcm9qZWN0UmVzb3VyY2UoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VUeXBlLkxBWU9VVCwgbGF5b3V0SW5mby5nZXRTZWNvbmQoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKHZhbHVlLmdldFZhbHVlKCkpOwotICAgICAgICAgICAgICAgIGlmIChmLmlzRmlsZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBYbWxQdWxsUGFyc2VyIHBhcnNlciA9IFBhcnNlckZhY3RvcnkuY3JlYXRlKGYpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBCcmlkZ2VYbWxCbG9ja1BhcnNlciBicmlkZ2VQYXJzZXIgPSBuZXcgQnJpZGdlWG1sQmxvY2tQYXJzZXIoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlciwgYnJpZGdlQ29udGV4dCwgZmFsc2UpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5mbGF0ZShicmlkZ2VQYXJzZXIsIHJvb3QpOwotICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfUkVTT1VSQ0VTX1JFQUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gcGFyc2UgZmlsZSAiICsgZi5nZXRBYnNvbHV0ZVBhdGgoKSwgZSwgbnVsbCAvKmRhdGEqLyk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIHByaXZhdGUgVmlldyBsb2FkQ3VzdG9tVmlldyhTdHJpbmcgbmFtZSwgQXR0cmlidXRlU2V0IGF0dHJzKSB0aHJvd3MgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiwKLSAgICAgICAgICAgIEV4Y2VwdGlvbnsKLSAgICAgICAgaWYgKG1Qcm9qZWN0Q2FsbGJhY2sgIT0gbnVsbCkgewotICAgICAgICAgICAgLy8gZmlyc3QgZ2V0IHRoZSBjbGFzc25hbWUgaW4gY2FzZSBpdCdzIG5vdCB0aGUgbm9kZSBuYW1lCi0gICAgICAgICAgICBpZiAobmFtZS5lcXVhbHMoInZpZXciKSkgewotICAgICAgICAgICAgICAgIG5hbWUgPSBhdHRycy5nZXRBdHRyaWJ1dGVWYWx1ZShudWxsLCAiY2xhc3MiKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbUNvbnN0cnVjdG9yQXJnc1sxXSA9IGF0dHJzOwotCi0gICAgICAgICAgICBPYmplY3QgY3VzdG9tVmlldyA9IG1Qcm9qZWN0Q2FsbGJhY2subG9hZFZpZXcobmFtZSwgbUNvbnN0cnVjdG9yU2lnbmF0dXJlLAotICAgICAgICAgICAgICAgICAgICBtQ29uc3RydWN0b3JBcmdzKTsKLQotICAgICAgICAgICAgaWYgKGN1c3RvbVZpZXcgaW5zdGFuY2VvZiBWaWV3KSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChWaWV3KWN1c3RvbVZpZXc7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHZvaWQgc2V0dXBWaWV3SW5Db250ZXh0KFZpZXcgdmlldywgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIGlmIChnZXRDb250ZXh0KCkgaW5zdGFuY2VvZiBCcmlkZ2VDb250ZXh0KSB7Ci0gICAgICAgICAgICBCcmlkZ2VDb250ZXh0IGJjID0gKEJyaWRnZUNvbnRleHQpIGdldENvbnRleHQoKTsKLSAgICAgICAgICAgIGlmIChhdHRycyBpbnN0YW5jZW9mIEJyaWRnZVhtbEJsb2NrUGFyc2VyKSB7Ci0gICAgICAgICAgICAgICAgQnJpZGdlWG1sQmxvY2tQYXJzZXIgcGFyc2VyID0gKEJyaWRnZVhtbEJsb2NrUGFyc2VyKSBhdHRyczsKLQotICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgdmlldyBrZXkKLSAgICAgICAgICAgICAgICBPYmplY3Qgdmlld0tleSA9IHBhcnNlci5nZXRWaWV3Q29va2llKCk7Ci0KLSAgICAgICAgICAgICAgICBpZiAodmlld0tleSA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCBjdXJyZW50RGVwdGggPSBwYXJzZXIuZ2V0RGVwdGgoKTsKLQotICAgICAgICAgICAgICAgICAgICAvLyB0ZXN0IHdoZXRoZXIgd2UgYXJlIGluIGFuIGluY2x1ZGVkIGZpbGUgb3IgaW4gYSBhZGFwdGVyIGJpbmRpbmcgdmlldy4KLSAgICAgICAgICAgICAgICAgICAgQnJpZGdlWG1sQmxvY2tQYXJzZXIgcHJldmlvdXNQYXJzZXIgPSBiYy5nZXRQcmV2aW91c1BhcnNlcigpOwotICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNQYXJzZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9va3MgbGlrZSB3ZSBpbnNpZGUgYW4gZW1iZWRkZWQgbGF5b3V0LgotICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25seSBhcHBseSB0aGUgY29va2llIG9mIHRoZSBjYWxsaW5nIG5vZGUgKDxpbmNsdWRlPikgaWYgd2UgYXJlIGF0IHRoZQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG9wIGxldmVsIG9mIHRoZSBlbWJlZGRlZCBsYXlvdXQuIElmIHRoZXJlIGlzIGEgbWVyZ2UgdGFnLCB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBza2lwIGl0IGFuZCBsb29rIGZvciB0aGUgMm5kIGxldmVsCi0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGVzdERlcHRoID0gbUlzSW5NZXJnZSA/IDIgOiAxOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnREZXB0aCA9PSB0ZXN0RGVwdGgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3S2V5ID0gcHJldmlvdXNQYXJzZXIuZ2V0Vmlld0Nvb2tpZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIGFyZSBpbiBhIG1lcmdlLCB3cmFwIHRoZSBjb29raWUgaW4gYSBNZXJnZUNvb2tpZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmlld0tleSAhPSBudWxsICYmIG1Jc0luTWVyZ2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0tleSA9IG5ldyBNZXJnZUNvb2tpZSh2aWV3S2V5KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobVJlc291cmNlUmVmZXJlbmNlICE9IG51bGwgJiYgY3VycmVudERlcHRoID09IDEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsc2UgaWYgdGhlcmUncyBhIHJlc291cmNlIHJlZmVyZW5jZSwgdGhpcyBtZWFucyB3ZSBhcmUgaW4gYW4gYWRhcHRlcgotICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmluZGluZyBjYXNlLiBTZXQgdGhlIHJlc291cmNlIHJlZiBhcyB0aGUgdmlldyBjb29raWUgb25seSBmb3IgdGhlIHRvcAotICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGV2ZWwgdmlldy4KLSAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdLZXkgPSBtUmVzb3VyY2VSZWZlcmVuY2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAodmlld0tleSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJjLmFkZFZpZXdLZXkodmlldywgdmlld0tleSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgc2V0SXNJbk1lcmdlKGJvb2xlYW4gaXNJbk1lcmdlKSB7Ci0gICAgICAgIG1Jc0luTWVyZ2UgPSBpc0luTWVyZ2U7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgc2V0UmVzb3VyY2VSZWZlcmVuY2UoUmVzb3VyY2VSZWZlcmVuY2UgcmVmZXJlbmNlKSB7Ci0gICAgICAgIG1SZXNvdXJjZVJlZmVyZW5jZSA9IHJlZmVyZW5jZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgTGF5b3V0SW5mbGF0ZXIgY2xvbmVJbkNvbnRleHQoQ29udGV4dCBuZXdDb250ZXh0KSB7Ci0gICAgICAgIHJldHVybiBuZXcgQnJpZGdlSW5mbGF0ZXIodGhpcywgbmV3Q29udGV4dCk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L0Nob3Jlb2dyYXBoZXJfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdmlldy9DaG9yZW9ncmFwaGVyX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3NWVlNTAuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L0Nob3Jlb2dyYXBoZXJfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotcGFja2FnZSBhbmRyb2lkLnZpZXc7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLS8qKgotICogRGVsZWdhdGUgdXNlZCB0byBwcm92aWRlIG5ldyBpbXBsZW1lbnRhdGlvbiBvZiBhIHNlbGVjdCBmZXcgbWV0aG9kcyBvZiB7QGxpbmsgQ2hvcmVvZ3JhcGhlcn0KLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCAgbWV0aG9kcyBvZiBDaG9yZW9ncmFwaGVyIGhhdmUgYmVlbgotICogcmVwbGFjZWQgYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICovCi1wdWJsaWMgY2xhc3MgQ2hvcmVvZ3JhcGhlcl9EZWxlZ2F0ZSB7Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICBwdWJsaWMgc3RhdGljIGZsb2F0IGdldFJlZnJlc2hSYXRlKCkgewotICAgICAgICByZXR1cm4gNjAuZjsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3ZpZXcvRGlzcGxheV9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L0Rpc3BsYXlfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTNkYzgyMS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3ZpZXcvRGlzcGxheV9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC52aWV3OwotCi1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi0KLS8qKgotICogRGVsZWdhdGUgdXNlZCB0byBwcm92aWRlIG5ldyBpbXBsZW1lbnRhdGlvbiBvZiBhIHNlbGVjdCBmZXcgbWV0aG9kcyBvZiB7QGxpbmsgRGlzcGxheX0KLSAqCi0gKiBUaHJvdWdoIHRoZSBsYXlvdXRsaWJfY3JlYXRlIHRvb2wsIHRoZSBvcmlnaW5hbCAgbWV0aG9kcyBvZiBEaXNwbGF5IGhhdmUgYmVlbiByZXBsYWNlZAotICogYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICovCi1wdWJsaWMgY2xhc3MgRGlzcGxheV9EZWxlZ2F0ZSB7Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICBzdGF0aWMgdm9pZCB1cGRhdGVEaXNwbGF5SW5mb0xvY2tlZChEaXNwbGF5IHRoZURpc3BsYXkpIHsKLSAgICAgICAgLy8gZG8gbm90aGluZwotICAgIH0KLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L0lXaW5kb3dNYW5hZ2VySW1wbC5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L0lXaW5kb3dNYW5hZ2VySW1wbC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDE1M2FmLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdmlldy9JV2luZG93TWFuYWdlckltcGwuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDUwMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLnZpZXc7Ci0KLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlBvaW50OwotaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLnZpZXcuSUlucHV0Q29udGV4dDsKLWltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC52aWV3LklJbnB1dE1ldGhvZENsaWVudDsKLQotaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuQ29tcGF0aWJpbGl0eUluZm87Ci1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5Db25maWd1cmF0aW9uOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuUmVjdDsKLWltcG9ydCBhbmRyb2lkLm9zLkJ1bmRsZTsKLWltcG9ydCBhbmRyb2lkLm9zLklCaW5kZXI7Ci1pbXBvcnQgYW5kcm9pZC5vcy5JUmVtb3RlQ2FsbGJhY2s7Ci1pbXBvcnQgYW5kcm9pZC5vcy5SZW1vdGVFeGNlcHRpb247Ci1pbXBvcnQgYW5kcm9pZC51dGlsLkRpc3BsYXlNZXRyaWNzOwotaW1wb3J0IGFuZHJvaWQudmlldy5EaXNwbGF5OwotaW1wb3J0IGFuZHJvaWQudmlldy5HcmF2aXR5OwotaW1wb3J0IGFuZHJvaWQudmlldy5JQXBwbGljYXRpb25Ub2tlbjsKLWltcG9ydCBhbmRyb2lkLnZpZXcuSUlucHV0RmlsdGVyOwotaW1wb3J0IGFuZHJvaWQudmlldy5JT25LZXlndWFyZEV4aXRSZXN1bHQ7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LklSb3RhdGlvbldhdGNoZXI7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LklXaW5kb3dNYW5hZ2VyOwotaW1wb3J0IGFuZHJvaWQudmlldy5JV2luZG93U2Vzc2lvbjsKLQotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotCi0vKioKLSAqIEJhc2ljIGltcGxlbWVudGF0aW9uIG9mIHtAbGluayBJV2luZG93TWFuYWdlcn0gc28gdGhhdCB7QGxpbmsgRGlzcGxheX0gKGFuZAotICoge0BsaW5rIERpc3BsYXlfRGVsZWdhdGV9KSBjYW4gcmV0dXJuIGEgdmFsaWQgaW5zdGFuY2UuCi0gKi8KLXB1YmxpYyBjbGFzcyBJV2luZG93TWFuYWdlckltcGwgaW1wbGVtZW50cyBJV2luZG93TWFuYWdlciB7Ci0KLSAgICBwcml2YXRlIGZpbmFsIENvbmZpZ3VyYXRpb24gbUNvbmZpZzsKLSAgICBwcml2YXRlIGZpbmFsIERpc3BsYXlNZXRyaWNzIG1NZXRyaWNzOwotICAgIHByaXZhdGUgZmluYWwgaW50IG1Sb3RhdGlvbjsKLSAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gbUhhc05hdmlnYXRpb25CYXI7Ci0KLSAgICBwdWJsaWMgSVdpbmRvd01hbmFnZXJJbXBsKENvbmZpZ3VyYXRpb24gY29uZmlnLCBEaXNwbGF5TWV0cmljcyBtZXRyaWNzLCBpbnQgcm90YXRpb24sCi0gICAgICAgICAgICBib29sZWFuIGhhc05hdmlnYXRpb25CYXIpIHsKLSAgICAgICAgbUNvbmZpZyA9IGNvbmZpZzsKLSAgICAgICAgbU1ldHJpY3MgPSBtZXRyaWNzOwotICAgICAgICBtUm90YXRpb24gPSByb3RhdGlvbjsKLSAgICAgICAgbUhhc05hdmlnYXRpb25CYXIgPSBoYXNOYXZpZ2F0aW9uQmFyOwotICAgIH0KLQotICAgIC8vIGN1c3RvbSBBUEkuCi0KLSAgICBwdWJsaWMgRGlzcGxheU1ldHJpY3MgZ2V0TWV0cmljcygpIHsKLSAgICAgICAgcmV0dXJuIG1NZXRyaWNzOwotICAgIH0KLQotICAgIC8vIC0tLS0gaW1wbGVtZW50YXRpb24gb2YgSVdpbmRvd01hbmFnZXIgdGhhdCB3ZSBjYXJlIGFib3V0IC0tLS0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0Um90YXRpb24oKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgcmV0dXJuIG1Sb3RhdGlvbjsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBoYXNOYXZpZ2F0aW9uQmFyKCkgewotICAgICAgICByZXR1cm4gbUhhc05hdmlnYXRpb25CYXI7Ci0gICAgfQotCi0gICAgLy8gLS0tLSB1bnVzZWQgaW1wbGVtZW50YXRpb24gb2YgSVdpbmRvd01hbmFnZXIgLS0tLQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgYWRkQXBwVG9rZW4oaW50IGFyZzAsIElBcHBsaWNhdGlvblRva2VuIGFyZzEsIGludCBhcmcyLCBpbnQgYXJnMywgaW50IGFyZzQsCi0gICAgICAgICAgICBib29sZWFuIGFyZzUsIGJvb2xlYW4gYXJnNiwgaW50IGFyZzcpCi0gICAgICAgICAgICB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgYWRkV2luZG93VG9rZW4oSUJpbmRlciBhcmcwLCBpbnQgYXJnMSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGNsZWFyRm9yY2VkRGlzcGxheVNpemUoaW50IGRpc3BsYXlJZCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBjbGVhckZvcmNlZERpc3BsYXlEZW5zaXR5KGludCBkaXNwbGF5SWQpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0T3ZlcnNjYW4oaW50IGRpc3BsYXlJZCwgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSkKLSAgICAgICAgICAgIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgY2xvc2VTeXN0ZW1EaWFsb2dzKFN0cmluZyBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc3RhcnRGcmVlemluZ1NjcmVlbihpbnQgZXhpdEFuaW0sIGludCBlbnRlckFuaW0pIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHN0b3BGcmVlemluZ1NjcmVlbigpIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGRpc2FibGVLZXlndWFyZChJQmluZGVyIGFyZzAsIFN0cmluZyBhcmcxKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgZXhlY3V0ZUFwcFRyYW5zaXRpb24oKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgZXhpdEtleWd1YXJkU2VjdXJlbHkoSU9uS2V5Z3VhcmRFeGl0UmVzdWx0IGFyZzApIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBmcmVlemVSb3RhdGlvbihpbnQgYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBmbG9hdCBnZXRBbmltYXRpb25TY2FsZShpbnQgYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGZsb2F0W10gZ2V0QW5pbWF0aW9uU2NhbGVzKCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRBcHBPcmllbnRhdGlvbihJQXBwbGljYXRpb25Ub2tlbiBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldFBlbmRpbmdBcHBUcmFuc2l0aW9uKCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaW5LZXlndWFyZFJlc3RyaWN0ZWRJbnB1dE1vZGUoKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaW5wdXRNZXRob2RDbGllbnRIYXNGb2N1cyhJSW5wdXRNZXRob2RDbGllbnQgYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGlzS2V5Z3VhcmRMb2NrZWQoKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNLZXlndWFyZFNlY3VyZSgpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBpc1ZpZXdTZXJ2ZXJSdW5uaW5nKCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBJV2luZG93U2Vzc2lvbiBvcGVuU2Vzc2lvbihJSW5wdXRNZXRob2RDbGllbnQgYXJnMCwgSUlucHV0Q29udGV4dCBhcmcxKQotICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgb3ZlcnJpZGVQZW5kaW5nQXBwVHJhbnNpdGlvbihTdHJpbmcgYXJnMCwgaW50IGFyZzEsIGludCBhcmcyLAotICAgICAgICAgICAgSVJlbW90ZUNhbGxiYWNrIHN0YXJ0ZWRDYWxsYmFjaykgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIG92ZXJyaWRlUGVuZGluZ0FwcFRyYW5zaXRpb25TY2FsZVVwKGludCBzdGFydFgsIGludCBzdGFydFksIGludCBzdGFydFdpZHRoLAotICAgICAgICAgICAgaW50IHN0YXJ0SGVpZ2h0KSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIG92ZXJyaWRlUGVuZGluZ0FwcFRyYW5zaXRpb25UaHVtYihCaXRtYXAgc3JjVGh1bWIsIGludCBzdGFydFgsIGludCBzdGFydFksCi0gICAgICAgICAgICBJUmVtb3RlQ2FsbGJhY2sgc3RhcnRlZENhbGxiYWNrLCBib29sZWFuIHNjYWxlVXApIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgcGF1c2VLZXlEaXNwYXRjaGluZyhJQmluZGVyIGFyZzApIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBwcmVwYXJlQXBwVHJhbnNpdGlvbihpbnQgYXJnMCwgYm9vbGVhbiBhcmcxKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgcmVlbmFibGVLZXlndWFyZChJQmluZGVyIGFyZzApIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCByZW1vdmVBcHBUb2tlbihJQmluZGVyIGFyZzApIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCByZW1vdmVXaW5kb3dUb2tlbihJQmluZGVyIGFyZzApIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCByZXN1bWVLZXlEaXNwYXRjaGluZyhJQmluZGVyIGFyZzApIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQml0bWFwIHNjcmVlbnNob3RBcHBsaWNhdGlvbnMoSUJpbmRlciBhcmcwLCBpbnQgZGlzcGxheUlkLCBpbnQgYXJnMSwKLSAgICAgICAgICAgIGludCBhcmcyLCBib29sZWFuIGFyZzMpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldEFuaW1hdGlvblNjYWxlKGludCBhcmcwLCBmbG9hdCBhcmcxKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0QW5pbWF0aW9uU2NhbGVzKGZsb2F0W10gYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldEFwcEdyb3VwSWQoSUJpbmRlciBhcmcwLCBpbnQgYXJnMSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldEFwcE9yaWVudGF0aW9uKElBcHBsaWNhdGlvblRva2VuIGFyZzAsIGludCBhcmcxKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldEFwcFN0YXJ0aW5nV2luZG93KElCaW5kZXIgYXJnMCwgU3RyaW5nIGFyZzEsIGludCBhcmcyLCBDb21wYXRpYmlsaXR5SW5mbyBhcmczLAotICAgICAgICAgICAgQ2hhclNlcXVlbmNlIGFyZzQsIGludCBhcmc1LCBpbnQgYXJnNiwgaW50IGFyZzcsIGludCBhcmc4LCBJQmluZGVyIGFyZzksIGJvb2xlYW4gYXJnMTApCi0gICAgICAgICAgICB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldEFwcFZpc2liaWxpdHkoSUJpbmRlciBhcmcwLCBib29sZWFuIGFyZzEpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzZXRBcHBXaWxsQmVIaWRkZW4oSUJpbmRlciBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldEV2ZW50RGlzcGF0Y2hpbmcoYm9vbGVhbiBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldEZvY3VzZWRBcHAoSUJpbmRlciBhcmcwLCBib29sZWFuIGFyZzEpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgZ2V0SW5pdGlhbERpc3BsYXlTaXplKGludCBkaXNwbGF5SWQsIFBvaW50IHNpemUpIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGdldEJhc2VEaXNwbGF5U2l6ZShpbnQgZGlzcGxheUlkLCBQb2ludCBzaXplKSB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzZXRGb3JjZWREaXNwbGF5U2l6ZShpbnQgZGlzcGxheUlkLCBpbnQgYXJnMCwgaW50IGFyZzEpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRJbml0aWFsRGlzcGxheURlbnNpdHkoaW50IGRpc3BsYXlJZCkgewotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRCYXNlRGlzcGxheURlbnNpdHkoaW50IGRpc3BsYXlJZCkgewotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0Rm9yY2VkRGlzcGxheURlbnNpdHkoaW50IGRpc3BsYXlJZCwgaW50IGRlbnNpdHkpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0SW5Ub3VjaE1vZGUoYm9vbGVhbiBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldE5ld0NvbmZpZ3VyYXRpb24oQ29uZmlndXJhdGlvbiBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHVwZGF0ZVJvdGF0aW9uKGJvb2xlYW4gYXJnMCwgYm9vbGVhbiBhcmcxKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldFN0cmljdE1vZGVWaXN1YWxJbmRpY2F0b3JQcmVmZXJlbmNlKFN0cmluZyBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNob3dTdHJpY3RNb2RlVmlvbGF0aW9uKGJvb2xlYW4gYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzdGFydEFwcEZyZWV6aW5nU2NyZWVuKElCaW5kZXIgYXJnMCwgaW50IGFyZzEpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gc3RhcnRWaWV3U2VydmVyKGludCBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc3RhdHVzQmFyVmlzaWJpbGl0eUNoYW5nZWQoaW50IGFyZzApIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc3RvcEFwcEZyZWV6aW5nU2NyZWVuKElCaW5kZXIgYXJnMCwgYm9vbGVhbiBhcmcxKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIHN0b3BWaWV3U2VydmVyKCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHRoYXdSb3RhdGlvbigpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIENvbmZpZ3VyYXRpb24gdXBkYXRlT3JpZW50YXRpb25Gcm9tQXBwVG9rZW5zKENvbmZpZ3VyYXRpb24gYXJnMCwgSUJpbmRlciBhcmcxKQotICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCB3YXRjaFJvdGF0aW9uKElSb3RhdGlvbldhdGNoZXIgYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgcmVtb3ZlUm90YXRpb25XYXRjaGVyKElSb3RhdGlvbldhdGNoZXIgYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gd2FpdEZvcldpbmRvd0RyYXduKElCaW5kZXIgdG9rZW4sIElSZW1vdGVDYWxsYmFjayBjYWxsYmFjaykgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIElCaW5kZXIgYXNCaW5kZXIoKSB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRQcmVmZXJyZWRPcHRpb25zUGFuZWxHcmF2aXR5KCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIHJldHVybiBHcmF2aXR5LkNFTlRFUl9IT1JJWk9OVEFMIHwgR3Jhdml0eS5CT1RUT007Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgZGlzbWlzc0tleWd1YXJkKCkgewotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGxvY2tOb3coQnVuZGxlIG9wdGlvbnMpIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGlzU2FmZU1vZGVFbmFibGVkKCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIElCaW5kZXIgZ2V0Rm9jdXNlZFdpbmRvd1Rva2VuKCkgewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldElucHV0RmlsdGVyKElJbnB1dEZpbHRlciBmaWx0ZXIpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgZ2V0V2luZG93RnJhbWUoSUJpbmRlciB0b2tlbiwgUmVjdCBvdXRGcmFtZSkgewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0TWFnbmlmaWNhdGlvbkNhbGxiYWNrcyhJTWFnbmlmaWNhdGlvbkNhbGxiYWNrcyBjYWxsYmFja3MpIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldE1hZ25pZmljYXRpb25TcGVjKE1hZ25pZmljYXRpb25TcGVjIHNwZWMpIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBNYWduaWZpY2F0aW9uU3BlYyBnZXRDb21wYXRpYmxlTWFnbmlmaWNhdGlvblNwZWNGb3JXaW5kb3coSUJpbmRlciB3aW5kb3dUb2tlbikgewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGlzUm90YXRpb25Gcm96ZW4oKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0VG91Y2hFeHBsb3JhdGlvbkVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKSB7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L0xheW91dEluZmxhdGVyX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3ZpZXcvTGF5b3V0SW5mbGF0ZXJfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2RiM2ExYi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3ZpZXcvTGF5b3V0SW5mbGF0ZXJfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE5OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLnZpZXc7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLWltcG9ydCBvcmcueG1scHVsbC52MS5YbWxQdWxsUGFyc2VyOwotaW1wb3J0IG9yZy54bWxwdWxsLnYxLlhtbFB1bGxQYXJzZXJFeGNlcHRpb247Ci0KLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLlR5cGVkQXJyYXk7Ci1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5YbWxSZXNvdXJjZVBhcnNlcjsKLWltcG9ydCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0OwotaW1wb3J0IGFuZHJvaWQudXRpbC5YbWw7Ci0KLWltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwotCi0vKioKLSAqIERlbGVnYXRlIHVzZWQgdG8gcHJvdmlkZSBuZXcgaW1wbGVtZW50YXRpb24gb2YgYSBzZWxlY3QgZmV3IG1ldGhvZHMgb2Yge0BsaW5rIExheW91dEluZmxhdGVyfQotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsICBtZXRob2RzIG9mIExheW91dEluZmxhdGVyIGhhdmUgYmVlbiByZXBsYWNlZAotICogYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICovCi1wdWJsaWMgY2xhc3MgTGF5b3V0SW5mbGF0ZXJfRGVsZWdhdGUgewotCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRBR19NRVJHRSA9ICJtZXJnZSI7Ci0KLSAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gc0lzSW5JbmNsdWRlID0gZmFsc2U7Ci0KLSAgICAvKioKLSAgICAgKiBSZWN1cnNpdmUgbWV0aG9kIHVzZWQgdG8gZGVzY2VuZCBkb3duIHRoZSB4bWwgaGllcmFyY2h5IGFuZCBpbnN0YW50aWF0ZQotICAgICAqIHZpZXdzLCBpbnN0YW50aWF0ZSB0aGVpciBjaGlsZHJlbiwgYW5kIHRoZW4gY2FsbCBvbkZpbmlzaEluZmxhdGUoKS4KLSAgICAgKgotICAgICAqIFRoaXMgaW1wbGVtZW50YXRpb24ganVzdCByZWNvcmRzIHRoZSBtZXJnZSBzdGF0dXMgYmVmb3JlIGNhbGxpbmcgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCi0gICAgICovCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIHZvaWQgckluZmxhdGUoTGF5b3V0SW5mbGF0ZXIgdGhpc0luZmxhdGVyLAotICAgICAgICAgICAgWG1sUHVsbFBhcnNlciBwYXJzZXIsIFZpZXcgcGFyZW50LCBmaW5hbCBBdHRyaWJ1dGVTZXQgYXR0cnMsCi0gICAgICAgICAgICBib29sZWFuIGZpbmlzaEluZmxhdGUpIHRocm93cyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7Ci0KLSAgICAgICAgaWYgKGZpbmlzaEluZmxhdGUgPT0gZmFsc2UpIHsKLSAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBtZXJnZSBySW5mbGF0ZSEKLSAgICAgICAgICAgIGlmICh0aGlzSW5mbGF0ZXIgaW5zdGFuY2VvZiBCcmlkZ2VJbmZsYXRlcikgewotICAgICAgICAgICAgICAgICgoQnJpZGdlSW5mbGF0ZXIpIHRoaXNJbmZsYXRlcikuc2V0SXNJbk1lcmdlKHRydWUpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gLS0tLSBTVEFSVCBERUZBVUxUIElNUExFTUVOVEFUSU9OLgotCi0gICAgICAgIHRoaXNJbmZsYXRlci5ySW5mbGF0ZV9PcmlnaW5hbChwYXJzZXIsIHBhcmVudCwgYXR0cnMsIGZpbmlzaEluZmxhdGUpOwotCi0gICAgICAgIC8vIC0tLS0gRU5EIERFRkFVTFQgSU1QTEVNRU5UQVRJT04uCi0KLSAgICAgICAgaWYgKGZpbmlzaEluZmxhdGUgPT0gZmFsc2UpIHsKLSAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBtZXJnZSBySW5mbGF0ZSEKLSAgICAgICAgICAgIGlmICh0aGlzSW5mbGF0ZXIgaW5zdGFuY2VvZiBCcmlkZ2VJbmZsYXRlcikgewotICAgICAgICAgICAgICAgICgoQnJpZGdlSW5mbGF0ZXIpIHRoaXNJbmZsYXRlcikuc2V0SXNJbk1lcmdlKGZhbHNlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBwYXJzZUluY2x1ZGUoCi0gICAgICAgICAgICBMYXlvdXRJbmZsYXRlciB0aGlzSW5mbGF0ZXIsCi0gICAgICAgICAgICBYbWxQdWxsUGFyc2VyIHBhcnNlciwgVmlldyBwYXJlbnQsIEF0dHJpYnV0ZVNldCBhdHRycykKLSAgICAgICAgICAgIHRocm93cyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7Ci0KLSAgICAgICAgaW50IHR5cGU7Ci0KLSAgICAgICAgaWYgKHBhcmVudCBpbnN0YW5jZW9mIFZpZXdHcm91cCkgewotICAgICAgICAgICAgZmluYWwgaW50IGxheW91dCA9IGF0dHJzLmdldEF0dHJpYnV0ZVJlc291cmNlVmFsdWUobnVsbCwgImxheW91dCIsIDApOwotICAgICAgICAgICAgaWYgKGxheW91dCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIHZhbHVlID0gYXR0cnMuZ2V0QXR0cmlidXRlVmFsdWUobnVsbCwgImxheW91dCIpOwotICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbmZsYXRlRXhjZXB0aW9uKCJZb3UgbXVzdCBzcGVjaWZpeSBhIGxheW91dCBpbiB0aGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGluY2x1ZGUgdGFnOiA8aW5jbHVkZSBsYXlvdXQ9XCJAbGF5b3V0L2xheW91dElEXCIgLz4iKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5mbGF0ZUV4Y2VwdGlvbigiWW91IG11c3Qgc3BlY2lmaXkgYSB2YWxpZCBsYXlvdXQgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgInJlZmVyZW5jZS4gVGhlIGxheW91dCBJRCAiICsgdmFsdWUgKyAiIGlzIG5vdCB2YWxpZC4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGZpbmFsIFhtbFJlc291cmNlUGFyc2VyIGNoaWxkUGFyc2VyID0KLSAgICAgICAgICAgICAgICAgICAgdGhpc0luZmxhdGVyLmdldENvbnRleHQoKS5nZXRSZXNvdXJjZXMoKS5nZXRMYXlvdXQobGF5b3V0KTsKLQotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIGZpbmFsIEF0dHJpYnV0ZVNldCBjaGlsZEF0dHJzID0gWG1sLmFzQXR0cmlidXRlU2V0KGNoaWxkUGFyc2VyKTsKLQotICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKHR5cGUgPSBjaGlsZFBhcnNlci5uZXh0KCkpICE9IFhtbFB1bGxQYXJzZXIuU1RBUlRfVEFHICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSAhPSBYbWxQdWxsUGFyc2VyLkVORF9ET0NVTUVOVCkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gRW1wdHkuCi0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSAhPSBYbWxQdWxsUGFyc2VyLlNUQVJUX1RBRykgewotICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEluZmxhdGVFeGNlcHRpb24oY2hpbGRQYXJzZXIuZ2V0UG9zaXRpb25EZXNjcmlwdGlvbigpICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjogTm8gc3RhcnQgdGFnIGZvdW5kISIpOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGNoaWxkTmFtZSA9IGNoaWxkUGFyc2VyLmdldE5hbWUoKTsKLQotICAgICAgICAgICAgICAgICAgICBpZiAoVEFHX01FUkdFLmVxdWFscyhjaGlsZE5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBJbmZsYXRlIGFsbCBjaGlsZHJlbi4KLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNJbmZsYXRlci5ySW5mbGF0ZShjaGlsZFBhcnNlciwgcGFyZW50LCBjaGlsZEF0dHJzLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBWaWV3IHZpZXcgPSB0aGlzSW5mbGF0ZXIuY3JlYXRlVmlld0Zyb21UYWcocGFyZW50LCBjaGlsZE5hbWUsIGNoaWxkQXR0cnMpOwotICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgVmlld0dyb3VwIGdyb3VwID0gKFZpZXdHcm91cCkgcGFyZW50OwotCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSB0cnkgdG8gbG9hZCB0aGUgbGF5b3V0IHBhcmFtcyBzZXQgaW4gdGhlIDxpbmNsdWRlIC8+IHRhZy4gSWYKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZXkgZG9uJ3QgZXhpc3QsIHdlIHdpbGwgcmVseSBvbiB0aGUgbGF5b3V0IHBhcmFtcyBzZXQgaW4gdGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBpbmNsdWRlZCBYTUwgZmlsZS4KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIER1cmluZyBhIGxheW91dHBhcmFtcyBnZW5lcmF0aW9uLCBhIHJ1bnRpbWUgZXhjZXB0aW9uIGlzIHRocm93bgotICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgZWl0aGVyIGxheW91dF93aWR0aCBvciBsYXlvdXRfaGVpZ2h0IGlzIG1pc3NpbmcuIFdlIGNhdGNoCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGV4Y2VwdGlvbiBhbmQgc2V0IGxvY2FsUGFyYW1zIGFjY29yZGluZ2x5OiB0cnVlIG1lYW5zIHdlCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzdWNjZXNzZnVsbHkgbG9hZGVkIGxheW91dCBwYXJhbXMgZnJvbSB0aGUgPGluY2x1ZGUgLz4gdGFnLAotICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmFsc2UgbWVhbnMgd2UgbmVlZCB0byByZWx5IG9uIHRoZSBpbmNsdWRlZCBsYXlvdXQgcGFyYW1zLgotICAgICAgICAgICAgICAgICAgICAgICAgVmlld0dyb3VwLkxheW91dFBhcmFtcyBwYXJhbXMgPSBudWxsOwotICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtLS0tIFNUQVJUIENIQU5HRVMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzSXNJbkluY2x1ZGUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0tLS0gRU5EIENIQU5HRVMKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IGdyb3VwLmdlbmVyYXRlTGF5b3V0UGFyYW1zKGF0dHJzKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLS0tLSBTVEFSVCBDSEFOR0VTCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc0lzSW5JbmNsdWRlID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLS0tLSBFTkQgQ0hBTkdFUwotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gZ3JvdXAuZ2VuZXJhdGVMYXlvdXRQYXJhbXMoY2hpbGRBdHRycyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0tLS0gU1RBUlQgQ0hBTkdFUwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNJc0luSW5jbHVkZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0tLS0gRU5EIENIQU5HRVMKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbXMgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3LnNldExheW91dFBhcmFtcyhwYXJhbXMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5mbGF0ZSBhbGwgY2hpbGRyZW4uCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzSW5mbGF0ZXIuckluZmxhdGUoY2hpbGRQYXJzZXIsIHZpZXcsIGNoaWxkQXR0cnMsIHRydWUpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBBdHRlbXB0IHRvIG92ZXJyaWRlIHRoZSBpbmNsdWRlZCBsYXlvdXQncyBhbmRyb2lkOmlkIHdpdGggdGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmUgc2V0IG9uIHRoZSA8aW5jbHVkZSAvPiB0YWcgaXRzZWxmLgotICAgICAgICAgICAgICAgICAgICAgICAgVHlwZWRBcnJheSBhID0gdGhpc0luZmxhdGVyLm1Db250ZXh0Lm9idGFpblN0eWxlZEF0dHJpYnV0ZXMoYXR0cnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuVmlldywgMCwgMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgaWQgPSBhLmdldFJlc291cmNlSWQoY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuVmlld19pZCwgVmlldy5OT19JRCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBXaGlsZSB3ZSdyZSBhdCBpdCwgbGV0J3MgdHJ5IHRvIG92ZXJyaWRlIGFuZHJvaWQ6dmlzaWJpbGl0eS4KLSAgICAgICAgICAgICAgICAgICAgICAgIGludCB2aXNpYmlsaXR5ID0gYS5nZXRJbnQoY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5zdHlsZWFibGUuVmlld192aXNpYmlsaXR5LCAtMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhLnJlY3ljbGUoKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlkICE9IFZpZXcuTk9fSUQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3LnNldElkKGlkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh2aXNpYmlsaXR5KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3LnNldFZpc2liaWxpdHkoVmlldy5WSVNJQkxFKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3LnNldFZpc2liaWxpdHkoVmlldy5JTlZJU0lCTEUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcuc2V0VmlzaWJpbGl0eShWaWV3LkdPTkUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAuYWRkVmlldyh2aWV3KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgICAgICAgICAgIGNoaWxkUGFyc2VyLmNsb3NlKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGhyb3cgbmV3IEluZmxhdGVFeGNlcHRpb24oIjxpbmNsdWRlIC8+IGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIG9mIGEgVmlld0dyb3VwIik7Ci0gICAgICAgIH0KLQotICAgICAgICBmaW5hbCBpbnQgY3VycmVudERlcHRoID0gcGFyc2VyLmdldERlcHRoKCk7Ci0gICAgICAgIHdoaWxlICgoKHR5cGUgPSBwYXJzZXIubmV4dCgpKSAhPSBYbWxQdWxsUGFyc2VyLkVORF9UQUcgfHwKLSAgICAgICAgICAgICAgICBwYXJzZXIuZ2V0RGVwdGgoKSA+IGN1cnJlbnREZXB0aCkgJiYgdHlwZSAhPSBYbWxQdWxsUGFyc2VyLkVORF9ET0NVTUVOVCkgewotICAgICAgICAgICAgLy8gRW1wdHkKLSAgICAgICAgfQotICAgIH0KLQotCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3ZpZXcvU3VyZmFjZVZpZXcuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdmlldy9TdXJmYWNlVmlldy5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YWE0YjNiLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdmlldy9TdXJmYWNlVmlldy5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTEyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQudmlldzsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuTW9ja1ZpZXc7Ci0KLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLkNhbnZhczsKLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlJlY3Q7Ci1pbXBvcnQgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldDsKLQotLyoqCi0gKiBNb2NrIHZlcnNpb24gb2YgdGhlIFN1cmZhY2VWaWV3LgotICogT25seSBub24gb3ZlcnJpZGUgcHVibGljIG1ldGhvZHMgZnJvbSB0aGUgcmVhbCBTdXJmYWNlVmlldyBoYXZlIGJlZW4gYWRkZWQgaW4gdGhlcmUuCi0gKiBNZXRob2RzIHRoYXQgdGFrZSBhbiB1bmtub3duIGNsYXNzIGFzIHBhcmFtZXRlciBvciBhcyByZXR1cm4gb2JqZWN0LCBoYXZlIGJlZW4gcmVtb3ZlZCBmb3Igbm93LgotICoKLSAqIFRPRE86IGdlbmVyYXRlIGF1dG9tYXRpY2FsbHkuCi0gKgotICovCi1wdWJsaWMgY2xhc3MgU3VyZmFjZVZpZXcgZXh0ZW5kcyBNb2NrVmlldyB7Ci0KLSAgICBwdWJsaWMgU3VyZmFjZVZpZXcoQ29udGV4dCBjb250ZXh0KSB7Ci0gICAgICAgIHRoaXMoY29udGV4dCwgbnVsbCk7Ci0gICAgfQotCi0gICAgcHVibGljIFN1cmZhY2VWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMgLCAwKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgU3VyZmFjZVZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOwotICAgIH0KLQotICAgIHB1YmxpYyBTdXJmYWNlSG9sZGVyIGdldEhvbGRlcigpIHsKLSAgICAgICAgcmV0dXJuIG1TdXJmYWNlSG9sZGVyOwotICAgIH0KLQotICAgIHByaXZhdGUgU3VyZmFjZUhvbGRlciBtU3VyZmFjZUhvbGRlciA9IG5ldyBTdXJmYWNlSG9sZGVyKCkgewotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0NyZWF0aW5nKCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyB2b2lkIGFkZENhbGxiYWNrKENhbGxiYWNrIGNhbGxiYWNrKSB7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgcmVtb3ZlQ2FsbGJhY2soQ2FsbGJhY2sgY2FsbGJhY2spIHsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCBzZXRGaXhlZFNpemUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgc2V0U2l6ZUZyb21MYXlvdXQoKSB7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgc2V0Rm9ybWF0KGludCBmb3JtYXQpIHsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCBzZXRUeXBlKGludCB0eXBlKSB7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgc2V0S2VlcFNjcmVlbk9uKGJvb2xlYW4gc2NyZWVuT24pIHsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgQ2FudmFzIGxvY2tDYW52YXMoKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgQ2FudmFzIGxvY2tDYW52YXMoUmVjdCBkaXJ0eSkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgdW5sb2NrQ2FudmFzQW5kUG9zdChDYW52YXMgY2FudmFzKSB7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIFN1cmZhY2UgZ2V0U3VyZmFjZSgpIHsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBSZWN0IGdldFN1cmZhY2VGcmFtZSgpIHsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0gICAgfTsKLX0KLQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L1ZpZXdDb25maWd1cmF0aW9uX0FjY2Vzc29yLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3ZpZXcvVmlld0NvbmZpZ3VyYXRpb25fQWNjZXNzb3IuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzM1MzNlMC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3ZpZXcvVmlld0NvbmZpZ3VyYXRpb25fQWNjZXNzb3IuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQudmlldzsKLQotLyoqCi0gKiBDbGFzcyBhbGxvd2luZyBhY2Nlc3MgdG8gcGFja2FnZS1wcm90ZWN0ZWQgbWV0aG9kcy9maWVsZHMuCi0gKi8KLXB1YmxpYyBjbGFzcyBWaWV3Q29uZmlndXJhdGlvbl9BY2Nlc3NvciB7Ci0KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXJDb25maWd1cmF0aW9ucygpIHsKLSAgICAgICAgLy8gY2xlYXIgdGhlIHN0b3JlZCBWaWV3Q29uZmlndXJhdGlvbiBzaW5jZSB0aGUgbWFwIGlzIHBlciBkZW5zaXR5IGFuZCBub3QgcGVyIGNvbnRleHQuCi0gICAgICAgIFZpZXdDb25maWd1cmF0aW9uLnNDb25maWd1cmF0aW9ucy5jbGVhcigpOwotICAgIH0KLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L1ZpZXdSb290SW1wbF9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L1ZpZXdSb290SW1wbF9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNGI4NGVmLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdmlldy9WaWV3Um9vdEltcGxfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQudmlldzsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotLyoqCi0gKiBEZWxlZ2F0ZSB1c2VkIHRvIHByb3ZpZGUgbmV3IGltcGxlbWVudGF0aW9uIG9mIGEgc2VsZWN0IGZldyBtZXRob2RzIG9mIHtAbGluayBWaWV3Um9vdEltcGx9Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgIG1ldGhvZHMgb2YgVmlld1Jvb3RJbXBsIGhhdmUgYmVlbiByZXBsYWNlZAotICogYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICovCi1wdWJsaWMgY2xhc3MgVmlld1Jvb3RJbXBsX0RlbGVnYXRlIHsKLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIGlzSW5Ub3VjaE1vZGUoKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsgLy8gdGhpcyBhbGxvd3MgZGlzcGxheWluZyBzZWxlY3Rpb24uCi0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L1ZpZXdfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdmlldy9WaWV3X0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyMTVmN2MuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L1ZpZXdfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGFuZHJvaWQudmlldzsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotLyoqCi0gKiBEZWxlZ2F0ZSB1c2VkIHRvIHByb3ZpZGUgbmV3IGltcGxlbWVudGF0aW9uIG9mIGEgc2VsZWN0IGZldyBtZXRob2RzIG9mIHtAbGluayBWaWV3fQotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsICBtZXRob2RzIG9mIFZpZXcgaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBWaWV3X0RlbGVnYXRlIHsKLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIGlzSW5FZGl0TW9kZShWaWV3IHRoaXNWaWV3KSB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdmlldy9XaW5kb3dNYW5hZ2VyR2xvYmFsX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3ZpZXcvV2luZG93TWFuYWdlckdsb2JhbF9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjA2ZTU1Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdmlldy9XaW5kb3dNYW5hZ2VyR2xvYmFsX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLnZpZXc7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci0KLS8qKgotICogRGVsZWdhdGUgdXNlZCB0byBwcm92aWRlIG5ldyBpbXBsZW1lbnRhdGlvbiBvZiBhIHNlbGVjdCBmZXcgbWV0aG9kcyBvZgotICoge0BsaW5rIFdpbmRvd01hbmFnZXJHbG9iYWx9Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgIG1ldGhvZHMgb2YgV2luZG93TWFuYWdlckdsb2JhbCBoYXZlIGJlZW4KLSAqIHJlcGxhY2VkIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqLwotcHVibGljIGNsYXNzIFdpbmRvd01hbmFnZXJHbG9iYWxfRGVsZWdhdGUgewotCi0gICAgcHJpdmF0ZSBzdGF0aWMgSVdpbmRvd01hbmFnZXIgc1NlcnZpY2U7Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICBwdWJsaWMgc3RhdGljIElXaW5kb3dNYW5hZ2VyIGdldFdpbmRvd01hbmFnZXJTZXJ2aWNlKCkgewotICAgICAgICByZXR1cm4gc1NlcnZpY2U7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBzdHVmZiAtLS0tCi0KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0V2luZG93TWFuYWdlclNlcnZpY2UoSVdpbmRvd01hbmFnZXIgc2VydmljZSkgewotICAgICAgICBzU2VydmljZSA9IHNlcnZpY2U7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hbmFnZXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdmlldy9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNYW5hZ2VyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmZDc4MzYuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hbmFnZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDEzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLnZpZXcuYWNjZXNzaWJpbGl0eTsKLQotaW1wb3J0IGFuZHJvaWQuYWNjZXNzaWJpbGl0eXNlcnZpY2UuQWNjZXNzaWJpbGl0eVNlcnZpY2VJbmZvOwotaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OwotaW1wb3J0IGFuZHJvaWQuY29udGVudC5wbS5TZXJ2aWNlSW5mbzsKLWltcG9ydCBhbmRyb2lkLnZpZXcuSVdpbmRvdzsKLWltcG9ydCBhbmRyb2lkLnZpZXcuVmlldzsKLQotaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKLWltcG9ydCBqYXZhLnV0aWwuTGlzdDsKLQotLyoqCi0gKiBTeXN0ZW0gbGV2ZWwgc2VydmljZSB0aGF0IHNlcnZlcyBhcyBhbiBldmVudCBkaXNwYXRjaCBmb3Ige0BsaW5rIEFjY2Vzc2liaWxpdHlFdmVudH1zLgotICogU3VjaCBldmVudHMgYXJlIGdlbmVyYXRlZCB3aGVuIHNvbWV0aGluZyBub3RhYmxlIGhhcHBlbnMgaW4gdGhlIHVzZXIgaW50ZXJmYWNlLAotICogZm9yIGV4YW1wbGUgYW4ge0BsaW5rIGFuZHJvaWQuYXBwLkFjdGl2aXR5fSBzdGFydHMsIHRoZSBmb2N1cyBvciBzZWxlY3Rpb24gb2YgYQotICoge0BsaW5rIGFuZHJvaWQudmlldy5WaWV3fSBjaGFuZ2VzIGV0Yy4gUGFydGllcyBpbnRlcmVzdGVkIGluIGhhbmRsaW5nIGFjY2Vzc2liaWxpdHkKLSAqIGV2ZW50cyBpbXBsZW1lbnQgYW5kIHJlZ2lzdGVyIGFuIGFjY2Vzc2liaWxpdHkgc2VydmljZSB3aGljaCBleHRlbmRzCi0gKiB7QGxpbmsgYW5kcm9pZC5hY2Nlc3NpYmlsaXR5c2VydmljZS5BY2Nlc3NpYmlsaXR5U2VydmljZX0uCi0gKgotICogQHNlZSBBY2Nlc3NpYmlsaXR5RXZlbnQKLSAqIEBzZWUgYW5kcm9pZC5hY2Nlc3NpYmlsaXR5c2VydmljZS5BY2Nlc3NpYmlsaXR5U2VydmljZQotICogQHNlZSBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dCNnZXRTeXN0ZW1TZXJ2aWNlCi0gKi8KLXB1YmxpYyBmaW5hbCBjbGFzcyBBY2Nlc3NpYmlsaXR5TWFuYWdlciB7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgQWNjZXNzaWJpbGl0eU1hbmFnZXIgc0luc3RhbmNlID0gbmV3IEFjY2Vzc2liaWxpdHlNYW5hZ2VyKCk7Ci0KLSAgICAvKioKLSAgICAgKiBMaXN0ZW5lciBmb3IgdGhlIGFjY2Vzc2liaWxpdHkgc3RhdGUuCi0gICAgICovCi0gICAgcHVibGljIGludGVyZmFjZSBBY2Nlc3NpYmlsaXR5U3RhdGVDaGFuZ2VMaXN0ZW5lciB7Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIENhbGxlZCBiYWNrIG9uIGNoYW5nZSBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzdGF0ZS4KLSAgICAgICAgICoKLSAgICAgICAgICogQHBhcmFtIGVuYWJsZWQgV2hldGhlciBhY2Nlc3NpYmlsaXR5IGlzIGVuYWJsZWQuCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgdm9pZCBvbkFjY2Vzc2liaWxpdHlTdGF0ZUNoYW5nZWQoYm9vbGVhbiBlbmFibGVkKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBHZXQgYW4gQWNjZXNzaWJpbGl0eU1hbmFnZXIgaW5zdGFuY2UgKGNyZWF0ZSBvbmUgaWYgbmVjZXNzYXJ5KS4KLSAgICAgKgotICAgICAqIEBoaWRlCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBBY2Nlc3NpYmlsaXR5TWFuYWdlciBnZXRJbnN0YW5jZShDb250ZXh0IGNvbnRleHQpIHsKLSAgICAgICAgcmV0dXJuIHNJbnN0YW5jZTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDcmVhdGUgYW4gaW5zdGFuY2UuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gY29udGV4dCBBIHtAbGluayBDb250ZXh0fS4KLSAgICAgKi8KLSAgICBwcml2YXRlIEFjY2Vzc2liaWxpdHlNYW5hZ2VyKCkgewotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgaWYgdGhlIHtAbGluayBBY2Nlc3NpYmlsaXR5TWFuYWdlcn0gaXMgZW5hYmxlZC4KLSAgICAgKgotICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGlzIHtAbGluayBBY2Nlc3NpYmlsaXR5TWFuYWdlcn0gaXMgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLgotICAgICAqLwotICAgIHB1YmxpYyBib29sZWFuIGlzRW5hYmxlZCgpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFNlbmRzIGFuIHtAbGluayBBY2Nlc3NpYmlsaXR5RXZlbnR9LiBJZiB0aGlzIHtAbGluayBBY2Nlc3NpYmlsaXR5TWFuYWdlcn0gaXMgbm90Ci0gICAgICogZW5hYmxlZCB0aGUgY2FsbCBpcyBhIE5PT1AuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIHtAbGluayBBY2Nlc3NpYmlsaXR5RXZlbnR9LgotICAgICAqCi0gICAgICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24gaWYgYSBjbGllbnQgdHJpZXMgdG8gc2VuZCBhbiB7QGxpbmsgQWNjZXNzaWJpbGl0eUV2ZW50fQotICAgICAqICAgICAgICAgd2hpbGUgYWNjZXNzaWJpbGl0eSBpcyBub3QgZW5hYmxlZC4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzZW5kQWNjZXNzaWJpbGl0eUV2ZW50KEFjY2Vzc2liaWxpdHlFdmVudCBldmVudCkgewotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlcXVlc3RzIGludGVycnVwdGlvbiBvZiB0aGUgYWNjZXNzaWJpbGl0eSBmZWVkYmFjayBmcm9tIGFsbCBhY2Nlc3NpYmlsaXR5IHNlcnZpY2VzLgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIGludGVycnVwdCgpIHsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSB7QGxpbmsgU2VydmljZUluZm99cyBvZiB0aGUgaW5zdGFsbGVkIGFjY2Vzc2liaWxpdHkgc2VydmljZXMuCi0gICAgICoKLSAgICAgKiBAcmV0dXJuIEFuIHVubW9kaWZpYWJsZSBsaXN0IHdpdGgge0BsaW5rIFNlcnZpY2VJbmZvfXMuCi0gICAgICovCi0gICAgcHVibGljIExpc3Q8U2VydmljZUluZm8+IGdldEFjY2Vzc2liaWxpdHlTZXJ2aWNlTGlzdCgpIHsKLSAgICAgICAgLy8gbm9ybWFsIGltcGxlbWVudGF0aW9uIGRvZXMgdGhpcyBpbiBzb21lIGNhc2UsIHNvIGxldCdzIGRvIHRoZSBzYW1lCi0gICAgICAgIC8vICh1bm1vZGlmaWFibGVMaXN0IHdyYXBwZWQgYXJvdW5kIG51bGwpLgotICAgICAgICBMaXN0PFNlcnZpY2VJbmZvPiBzZXJ2aWNlcyA9IG51bGw7Ci0gICAgICAgIHJldHVybiBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVMaXN0KHNlcnZpY2VzKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgTGlzdDxBY2Nlc3NpYmlsaXR5U2VydmljZUluZm8+IGdldEluc3RhbGxlZEFjY2Vzc2liaWxpdHlTZXJ2aWNlTGlzdCgpIHsKLSAgICAgICAgLy8gbm9ybWFsIGltcGxlbWVudGF0aW9uIGRvZXMgdGhpcyBpbiBzb21lIGNhc2UsIHNvIGxldCdzIGRvIHRoZSBzYW1lCi0gICAgICAgIC8vICh1bm1vZGlmaWFibGVMaXN0IHdyYXBwZWQgYXJvdW5kIG51bGwpLgotICAgICAgICBMaXN0PEFjY2Vzc2liaWxpdHlTZXJ2aWNlSW5mbz4gc2VydmljZXMgPSBudWxsOwotICAgICAgICByZXR1cm4gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlTGlzdChzZXJ2aWNlcyk7Ci0gICAgfQotCi0gICAgcHVibGljIGJvb2xlYW4gYWRkQWNjZXNzaWJpbGl0eVN0YXRlQ2hhbmdlTGlzdGVuZXIoCi0gICAgICAgICAgICBBY2Nlc3NpYmlsaXR5U3RhdGVDaGFuZ2VMaXN0ZW5lciBsaXN0ZW5lcikgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgYm9vbGVhbiByZW1vdmVBY2Nlc3NpYmlsaXR5U3RhdGVDaGFuZ2VMaXN0ZW5lcigKLSAgICAgICAgICAgIEFjY2Vzc2liaWxpdHlTdGF0ZUNoYW5nZUxpc3RlbmVyIGxpc3RlbmVyKSB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHB1YmxpYyBpbnQgYWRkQWNjZXNzaWJpbGl0eUludGVyYWN0aW9uQ29ubmVjdGlvbihJV2luZG93IHdpbmRvd1Rva2VuLAotICAgICAgICAgICAgSUFjY2Vzc2liaWxpdHlJbnRlcmFjdGlvbkNvbm5lY3Rpb24gY29ubmVjdGlvbikgewotICAgICAgICByZXR1cm4gVmlldy5OT19JRDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCByZW1vdmVBY2Nlc3NpYmlsaXR5SW50ZXJhY3Rpb25Db25uZWN0aW9uKElXaW5kb3cgd2luZG93VG9rZW4pIHsKLSAgICB9Ci0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdmlldy9pbnB1dG1ldGhvZC9JbnB1dE1ldGhvZE1hbmFnZXJfQWNjZXNzb3IuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvdmlldy9pbnB1dG1ldGhvZC9JbnB1dE1ldGhvZE1hbmFnZXJfQWNjZXNzb3IuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGM0ZjljOC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3ZpZXcvaW5wdXRtZXRob2QvSW5wdXRNZXRob2RNYW5hZ2VyX0FjY2Vzc29yLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLnZpZXcuaW5wdXRtZXRob2Q7Ci0KLS8qKgotICogQ2xhc3MgYWxsb3dpbmcgYWNjZXNzIHRvIHBhY2thZ2UtcHJvdGVjdGVkIG1ldGhvZHMvZmllbGRzLgotICovCi1wdWJsaWMgY2xhc3MgSW5wdXRNZXRob2RNYW5hZ2VyX0FjY2Vzc29yIHsKLQotICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZXNldEluc3RhbmNlKCkgewotICAgICAgICBJbnB1dE1ldGhvZE1hbmFnZXIuc0luc3RhbmNlID0gbnVsbDsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3ZpZXcvaW5wdXRtZXRob2QvSW5wdXRNZXRob2RNYW5hZ2VyX0RlbGVnYXRlLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9hbmRyb2lkL3ZpZXcvaW5wdXRtZXRob2QvSW5wdXRNZXRob2RNYW5hZ2VyX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjOTg4NDcuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC92aWV3L2lucHV0bWV0aG9kL0lucHV0TWV0aG9kTWFuYWdlcl9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC52aWV3LmlucHV0bWV0aG9kOwotCi1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5hbmRyb2lkLkJyaWRnZUlJbnB1dE1ldGhvZE1hbmFnZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7Ci1pbXBvcnQgYW5kcm9pZC5vcy5Mb29wZXI7Ci0KLQotLyoqCi0gKiBEZWxlZ2F0ZSB1c2VkIHRvIHByb3ZpZGUgbmV3IGltcGxlbWVudGF0aW9uIG9mIGEgc2VsZWN0IGZldyBtZXRob2RzIG9mIHtAbGluayBJbnB1dE1ldGhvZE1hbmFnZXJ9Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgIG1ldGhvZHMgb2YgSW5wdXRNZXRob2RNYW5hZ2VyIGhhdmUgYmVlbiByZXBsYWNlZAotICogYnkgY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGUgc2FtZSBuYW1lIGluIHRoaXMgZGVsZWdhdGUgY2xhc3MuCi0gKgotICovCi1wdWJsaWMgY2xhc3MgSW5wdXRNZXRob2RNYW5hZ2VyX0RlbGVnYXRlIHsKLQotICAgIC8vIC0tLS0gT3ZlcnJpZGRlbiBtZXRob2RzIC0tLS0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBJbnB1dE1ldGhvZE1hbmFnZXIgZ2V0SW5zdGFuY2UoKSB7Ci0gICAgICAgIHN5bmNocm9uaXplZCAoSW5wdXRNZXRob2RNYW5hZ2VyLmNsYXNzKSB7Ci0gICAgICAgICAgICBJbnB1dE1ldGhvZE1hbmFnZXIgaW1tID0gSW5wdXRNZXRob2RNYW5hZ2VyLnBlZWtJbnN0YW5jZSgpOwotICAgICAgICAgICAgaWYgKGltbSA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgaW1tID0gbmV3IElucHV0TWV0aG9kTWFuYWdlcigKLSAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCcmlkZ2VJSW5wdXRNZXRob2RNYW5hZ2VyKCksIExvb3Blci5nZXRNYWluTG9vcGVyKCkpOwotICAgICAgICAgICAgICAgIElucHV0TWV0aG9kTWFuYWdlci5zSW5zdGFuY2UgPSBpbW07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gaW1tOwotICAgICAgICB9Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC93ZWJraXQvV2ViVmlldy5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvYW5kcm9pZC93ZWJraXQvV2ViVmlldy5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMDJmMjA0Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2FuZHJvaWQvd2Via2l0L1dlYlZpZXcuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDIzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBhbmRyb2lkLndlYmtpdDsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuTW9ja1ZpZXc7Ci0KLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLkJpdG1hcDsKLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlBpY3R1cmU7Ci1pbXBvcnQgYW5kcm9pZC5vcy5CdW5kbGU7Ci1pbXBvcnQgYW5kcm9pZC5vcy5NZXNzYWdlOwotaW1wb3J0IGFuZHJvaWQudXRpbC5BdHRyaWJ1dGVTZXQ7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXc7Ci0KLS8qKgotICogTW9jayB2ZXJzaW9uIG9mIHRoZSBXZWJWaWV3LgotICogT25seSBub24gb3ZlcnJpZGUgcHVibGljIG1ldGhvZHMgZnJvbSB0aGUgcmVhbCBXZWJWaWV3IGhhdmUgYmVlbiBhZGRlZCBpbiB0aGVyZS4KLSAqIE1ldGhvZHMgdGhhdCB0YWtlIGFuIHVua25vd24gY2xhc3MgYXMgcGFyYW1ldGVyIG9yIGFzIHJldHVybiBvYmplY3QsIGhhdmUgYmVlbiByZW1vdmVkIGZvciBub3cuCi0gKiAKLSAqIFRPRE86IGdlbmVyYXRlIGF1dG9tYXRpY2FsbHkuCi0gKgotICovCi1wdWJsaWMgY2xhc3MgV2ViVmlldyBleHRlbmRzIE1vY2tWaWV3IHsKLQotICAgIC8qKgotICAgICAqIENvbnN0cnVjdCBhIG5ldyBXZWJWaWV3IHdpdGggYSBDb250ZXh0IG9iamVjdC4KLSAgICAgKiBAcGFyYW0gY29udGV4dCBBIENvbnRleHQgb2JqZWN0IHVzZWQgdG8gYWNjZXNzIGFwcGxpY2F0aW9uIGFzc2V0cy4KLSAgICAgKi8KLSAgICBwdWJsaWMgV2ViVmlldyhDb250ZXh0IGNvbnRleHQpIHsKLSAgICAgICAgdGhpcyhjb250ZXh0LCBudWxsKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgV2ViVmlldyB3aXRoIGxheW91dCBwYXJhbWV0ZXJzLgotICAgICAqIEBwYXJhbSBjb250ZXh0IEEgQ29udGV4dCBvYmplY3QgdXNlZCB0byBhY2Nlc3MgYXBwbGljYXRpb24gYXNzZXRzLgotICAgICAqIEBwYXJhbSBhdHRycyBBbiBBdHRyaWJ1dGVTZXQgcGFzc2VkIHRvIG91ciBwYXJlbnQuCi0gICAgICovCi0gICAgcHVibGljIFdlYlZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMpIHsKLSAgICAgICAgdGhpcyhjb250ZXh0LCBhdHRycywgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi5hdHRyLndlYlZpZXdTdHlsZSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ29uc3RydWN0IGEgbmV3IFdlYlZpZXcgd2l0aCBsYXlvdXQgcGFyYW1ldGVycyBhbmQgYSBkZWZhdWx0IHN0eWxlLgotICAgICAqIEBwYXJhbSBjb250ZXh0IEEgQ29udGV4dCBvYmplY3QgdXNlZCB0byBhY2Nlc3MgYXBwbGljYXRpb24gYXNzZXRzLgotICAgICAqIEBwYXJhbSBhdHRycyBBbiBBdHRyaWJ1dGVTZXQgcGFzc2VkIHRvIG91ciBwYXJlbnQuCi0gICAgICogQHBhcmFtIGRlZlN0eWxlIFRoZSBkZWZhdWx0IHN0eWxlIHJlc291cmNlIElELgotICAgICAqLwotICAgIHB1YmxpYyBXZWJWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzLCBpbnQgZGVmU3R5bGUpIHsKLSAgICAgICAgc3VwZXIoY29udGV4dCwgYXR0cnMsIGRlZlN0eWxlKTsKLSAgICB9Ci0gICAgCi0gICAgLy8gU1RBUlQgRkFLRSBQVUJMSUMgTUVUSE9EUwotICAgIAotICAgIHB1YmxpYyB2b2lkIHNldEhvcml6b250YWxTY3JvbGxiYXJPdmVybGF5KGJvb2xlYW4gb3ZlcmxheSkgewotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHNldFZlcnRpY2FsU2Nyb2xsYmFyT3ZlcmxheShib29sZWFuIG92ZXJsYXkpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgYm9vbGVhbiBvdmVybGF5SG9yaXpvbnRhbFNjcm9sbGJhcigpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHB1YmxpYyBib29sZWFuIG92ZXJsYXlWZXJ0aWNhbFNjcm9sbGJhcigpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHNhdmVQYXNzd29yZChTdHJpbmcgaG9zdCwgU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBzZXRIdHRwQXV0aFVzZXJuYW1lUGFzc3dvcmQoU3RyaW5nIGhvc3QsIFN0cmluZyByZWFsbSwKLSAgICAgICAgICAgIFN0cmluZyB1c2VybmFtZSwgU3RyaW5nIHBhc3N3b3JkKSB7Ci0gICAgfQotCi0gICAgcHVibGljIFN0cmluZ1tdIGdldEh0dHBBdXRoVXNlcm5hbWVQYXNzd29yZChTdHJpbmcgaG9zdCwgU3RyaW5nIHJlYWxtKSB7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIGRlc3Ryb3koKSB7Ci0gICAgfQotCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIGVuYWJsZVBsYXRmb3JtTm90aWZpY2F0aW9ucygpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZVBsYXRmb3JtTm90aWZpY2F0aW9ucygpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBsb2FkVXJsKFN0cmluZyB1cmwpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBsb2FkRGF0YShTdHJpbmcgZGF0YSwgU3RyaW5nIG1pbWVUeXBlLCBTdHJpbmcgZW5jb2RpbmcpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBsb2FkRGF0YVdpdGhCYXNlVVJMKFN0cmluZyBiYXNlVXJsLCBTdHJpbmcgZGF0YSwKLSAgICAgICAgICAgIFN0cmluZyBtaW1lVHlwZSwgU3RyaW5nIGVuY29kaW5nLCBTdHJpbmcgZmFpbFVybCkgewotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHN0b3BMb2FkaW5nKCkgewotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHJlbG9hZCgpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgYm9vbGVhbiBjYW5Hb0JhY2soKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBnb0JhY2soKSB7Ci0gICAgfQotCi0gICAgcHVibGljIGJvb2xlYW4gY2FuR29Gb3J3YXJkKCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgZ29Gb3J3YXJkKCkgewotICAgIH0KLQotICAgIHB1YmxpYyBib29sZWFuIGNhbkdvQmFja09yRm9yd2FyZChpbnQgc3RlcHMpIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIGdvQmFja09yRm9yd2FyZChpbnQgc3RlcHMpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgYm9vbGVhbiBwYWdlVXAoYm9vbGVhbiB0b3ApIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAKLSAgICBwdWJsaWMgYm9vbGVhbiBwYWdlRG93bihib29sZWFuIGJvdHRvbSkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgY2xlYXJWaWV3KCkgewotICAgIH0KLSAgICAKLSAgICBwdWJsaWMgUGljdHVyZSBjYXB0dXJlUGljdHVyZSgpIHsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgcHVibGljIGZsb2F0IGdldFNjYWxlKCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBzZXRJbml0aWFsU2NhbGUoaW50IHNjYWxlSW5QZXJjZW50KSB7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgaW52b2tlWm9vbVBpY2tlcigpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCByZXF1ZXN0Rm9jdXNOb2RlSHJlZihNZXNzYWdlIGhyZWZNc2cpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCByZXF1ZXN0SW1hZ2VSZWYoTWVzc2FnZSBtc2cpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgU3RyaW5nIGdldFVybCgpIHsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgcHVibGljIFN0cmluZyBnZXRUaXRsZSgpIHsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgcHVibGljIEJpdG1hcCBnZXRGYXZpY29uKCkgewotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgaW50IGdldFByb2dyZXNzKCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgCi0gICAgcHVibGljIGludCBnZXRDb250ZW50SGVpZ2h0KCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBwYXVzZVRpbWVycygpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCByZXN1bWVUaW1lcnMoKSB7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgY2xlYXJDYWNoZSgpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBjbGVhckZvcm1EYXRhKCkgewotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIGNsZWFySGlzdG9yeSgpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBjbGVhclNzbFByZWZlcmVuY2VzKCkgewotICAgIH0KLQotICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGZpbmRBZGRyZXNzKFN0cmluZyBhZGRyKSB7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIGRvY3VtZW50SGFzSW1hZ2VzKE1lc3NhZ2UgcmVzcG9uc2UpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBzZXRXZWJWaWV3Q2xpZW50KFdlYlZpZXdDbGllbnQgY2xpZW50KSB7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgc2V0RG93bmxvYWRMaXN0ZW5lcihEb3dubG9hZExpc3RlbmVyIGxpc3RlbmVyKSB7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgc2V0V2ViQ2hyb21lQ2xpZW50KFdlYkNocm9tZUNsaWVudCBjbGllbnQpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBhZGRKYXZhc2NyaXB0SW50ZXJmYWNlKE9iamVjdCBvYmosIFN0cmluZyBpbnRlcmZhY2VOYW1lKSB7Ci0gICAgfQotCi0gICAgcHVibGljIFZpZXcgZ2V0Wm9vbUNvbnRyb2xzKCkgewotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgYm9vbGVhbiB6b29tSW4oKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgYm9vbGVhbiB6b29tT3V0KCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvaW50ZXJuYWwvcG9saWN5L1BvbGljeU1hbmFnZXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2ludGVybmFsL3BvbGljeS9Qb2xpY3lNYW5hZ2VyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxMDBkYzUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvaW50ZXJuYWwvcG9saWN5L1BvbGljeU1hbmFnZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLmludGVybmFsLnBvbGljeTsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5MYXlvdXRMb2c7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5CcmlkZ2U7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsLlJlbmRlckFjdGlvbjsKLQotaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OwotaW1wb3J0IGFuZHJvaWQudmlldy5CcmlkZ2VJbmZsYXRlcjsKLWltcG9ydCBhbmRyb2lkLnZpZXcuRmFsbGJhY2tFdmVudEhhbmRsZXI7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LktleUV2ZW50OwotaW1wb3J0IGFuZHJvaWQudmlldy5MYXlvdXRJbmZsYXRlcjsKLWltcG9ydCBhbmRyb2lkLnZpZXcuVmlldzsKLWltcG9ydCBhbmRyb2lkLnZpZXcuV2luZG93OwotaW1wb3J0IGFuZHJvaWQudmlldy5XaW5kb3dNYW5hZ2VyUG9saWN5OwotCi0vKioKLSAqIEN1c3RvbSBpbXBsZW1lbnRhdGlvbiBvZiBQb2xpY3lNYW5hZ2VyIHRoYXQgZG9lcyBub3RoaW5nIHRvIHJ1biBpbiBMYXlvdXRMaWIuCi0gKgotICovCi1wdWJsaWMgY2xhc3MgUG9saWN5TWFuYWdlciB7Ci0KLSAgICBwdWJsaWMgc3RhdGljIFdpbmRvdyBtYWtlTmV3V2luZG93KENvbnRleHQgY29udGV4dCkgewotICAgICAgICAvLyB0aGlzIHdpbGwgbGlrZWx5IGNyYXNoIHNvbWV3aGVyZSBiZXlvbmQgc28gd2UgbG9nIGl0LgotICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZXJyb3IoTGF5b3V0TG9nLlRBR19VTlNVUFBPUlRFRCwKLSAgICAgICAgICAgICAgICAiQ2FsbCB0byBQb2xpY3lNYW5hZ2VyLm1ha2VOZXdXaW5kb3cgaXMgbm90IHN1cHBvcnRlZCIsIG51bGwpOwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIExheW91dEluZmxhdGVyIG1ha2VOZXdMYXlvdXRJbmZsYXRlcihDb250ZXh0IGNvbnRleHQpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBCcmlkZ2VJbmZsYXRlcihjb250ZXh0LCBSZW5kZXJBY3Rpb24uZ2V0Q3VycmVudENvbnRleHQoKS5nZXRQcm9qZWN0Q2FsbGJhY2soKSk7Ci0gICAgfQotCi0gICAgcHVibGljIHN0YXRpYyBXaW5kb3dNYW5hZ2VyUG9saWN5IG1ha2VOZXdXaW5kb3dNYW5hZ2VyKCkgewotICAgICAgICAvLyB0aGlzIHdpbGwgbGlrZWx5IGNyYXNoIHNvbWV3aGVyZSBiZXlvbmQgc28gd2UgbG9nIGl0LgotICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZXJyb3IoTGF5b3V0TG9nLlRBR19VTlNVUFBPUlRFRCwKLSAgICAgICAgICAgICAgICAiQ2FsbCB0byBQb2xpY3lNYW5hZ2VyLm1ha2VOZXdXaW5kb3dNYW5hZ2VyIGlzIG5vdCBzdXBwb3J0ZWQiLCBudWxsKTsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgcHVibGljIHN0YXRpYyBGYWxsYmFja0V2ZW50SGFuZGxlciBtYWtlTmV3RmFsbGJhY2tFdmVudEhhbmRsZXIoQ29udGV4dCBjb250ZXh0KSB7Ci0gICAgICAgIHJldHVybiBuZXcgRmFsbGJhY2tFdmVudEhhbmRsZXIoKSB7Ci0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHNldFZpZXcoVmlldyB2KSB7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgcHJlRGlzcGF0Y2hLZXlFdmVudChLZXlFdmVudCBldmVudCkgewotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGRpc3BhdGNoS2V5RXZlbnQoS2V5RXZlbnQgZXZlbnQpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvaW50ZXJuYWwvdGV4dHNlcnZpY2UvSVRleHRTZXJ2aWNlc01hbmFnZXJfU3R1Yl9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvaW50ZXJuYWwvdGV4dHNlcnZpY2UvSVRleHRTZXJ2aWNlc01hbmFnZXJfU3R1Yl9EZWxlZ2F0ZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDE3MjkyLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2ludGVybmFsL3RleHRzZXJ2aWNlL0lUZXh0U2VydmljZXNNYW5hZ2VyX1N0dWJfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDExMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5pbnRlcm5hbC50ZXh0c2VydmljZTsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5MYXlvdXRsaWJEZWxlZ2F0ZTsKLQotaW1wb3J0IGFuZHJvaWQub3MuQnVuZGxlOwotaW1wb3J0IGFuZHJvaWQub3MuSUJpbmRlcjsKLWltcG9ydCBhbmRyb2lkLm9zLlJlbW90ZUV4Y2VwdGlvbjsKLWltcG9ydCBhbmRyb2lkLnZpZXcudGV4dHNlcnZpY2UuU3BlbGxDaGVja2VySW5mbzsKLWltcG9ydCBhbmRyb2lkLnZpZXcudGV4dHNlcnZpY2UuU3BlbGxDaGVja2VyU3VidHlwZTsKLQotCi0vKioKLSAqIERlbGVnYXRlIHVzZWQgdG8gcHJvdmlkZSBuZXcgaW1wbGVtZW50YXRpb24gb2YgYSBzZWxlY3QgZmV3IG1ldGhvZHMgb2YKLSAqIHtAbGluayBJVGV4dFNlcnZpY2VzTWFuYWdlciRTdHVifQotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsICBtZXRob2RzIG9mIFN0dWIgaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBJVGV4dFNlcnZpY2VzTWFuYWdlcl9TdHViX0RlbGVnYXRlIHsKLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIHB1YmxpYyBzdGF0aWMgSVRleHRTZXJ2aWNlc01hbmFnZXIgYXNJbnRlcmZhY2UoSUJpbmRlciBvYmopIHsKLSAgICAgICAgLy8gaWdub3JlIHRoZSBvYmogYW5kIHJldHVybiBhIGZha2UgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uCi0gICAgICAgIHJldHVybiBuZXcgRmFrZVRleHRTZXJ2aWNlc01hbmFnZXIoKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBGYWtlVGV4dFNlcnZpY2VzTWFuYWdlciBpbXBsZW1lbnRzIElUZXh0U2VydmljZXNNYW5hZ2VyIHsKLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgZmluaXNoU3BlbGxDaGVja2VyU2VydmljZShJU3BlbGxDaGVja2VyU2Vzc2lvbkxpc3RlbmVyIGFyZzApCi0gICAgICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0KLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgU3BlbGxDaGVja2VySW5mbyBnZXRDdXJyZW50U3BlbGxDaGVja2VyKFN0cmluZyBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBTcGVsbENoZWNrZXJTdWJ0eXBlIGdldEN1cnJlbnRTcGVsbENoZWNrZXJTdWJ0eXBlKFN0cmluZyBhcmcwLCBib29sZWFuIGFyZzEpCi0gICAgICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgU3BlbGxDaGVja2VySW5mb1tdIGdldEVuYWJsZWRTcGVsbENoZWNrZXJzKCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCBnZXRTcGVsbENoZWNrZXJTZXJ2aWNlKFN0cmluZyBhcmcwLCBTdHJpbmcgYXJnMSwKLSAgICAgICAgICAgICAgICBJVGV4dFNlcnZpY2VzU2Vzc2lvbkxpc3RlbmVyIGFyZzIsIElTcGVsbENoZWNrZXJTZXNzaW9uTGlzdGVuZXIgYXJnMywgQnVuZGxlIGFyZzQpCi0gICAgICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0KLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1NwZWxsQ2hlY2tlckVuYWJsZWQoKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW50U3BlbGxDaGVja2VyKFN0cmluZyBhcmcwLCBTdHJpbmcgYXJnMSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0KLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW50U3BlbGxDaGVja2VyU3VidHlwZShTdHJpbmcgYXJnMCwgaW50IGFyZzEpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotCi0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgc2V0U3BlbGxDaGVja2VyRW5hYmxlZChib29sZWFuIGFyZzApIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotCi0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIElCaW5kZXIgYXNCaW5kZXIoKSB7Ci0gICAgICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgfQotIH0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2ludGVybmFsL3V0aWwvWG1sVXRpbHNfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2ludGVybmFsL3V0aWwvWG1sVXRpbHNfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmY5OThiOC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9pbnRlcm5hbC91dGlsL1htbFV0aWxzX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5pbnRlcm5hbC51dGlsOwotCi1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi0KLS8qKgotICogRGVsZWdhdGUgdXNlZCB0byBwcm92aWRlIG5ldyBpbXBsZW1lbnRhdGlvbiBvZiBhIHNlbGVjdCBmZXcgbWV0aG9kcyBvZiB7QGxpbmsgWG1sVXRpbHN9Ci0gKgotICogVGhyb3VnaCB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLCB0aGUgb3JpZ2luYWwgIG1ldGhvZHMgb2YgWG1sVXRpbHMgaGF2ZSBiZWVuIHJlcGxhY2VkCi0gKiBieSBjYWxscyB0byBtZXRob2RzIG9mIHRoZSBzYW1lIG5hbWUgaW4gdGhpcyBkZWxlZ2F0ZSBjbGFzcy4KLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBYbWxVdGlsc19EZWxlZ2F0ZSB7Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgZmluYWwgaW50IGNvbnZlcnRWYWx1ZVRvSW50KENoYXJTZXF1ZW5jZSBjaGFyU2VxLCBpbnQgZGVmYXVsdFZhbHVlKSB7Ci0gICAgICAgIGlmIChudWxsID09IGNoYXJTZXEpCi0gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotCi0gICAgICAgIFN0cmluZyBubSA9IGNoYXJTZXEudG9TdHJpbmcoKTsKLQotICAgICAgICAvLyBUaGlzIGNvZGUgaXMgY29waWVkIGZyb20gdGhlIG9yaWdpbmFsIGltcGxlbWVudGF0aW9uLiBUaGUgaXNzdWUgaXMgdGhhdAotICAgICAgICAvLyBUaGUgRGFsdmlrIGxpYnJhcmllcyBhcmUgYWJsZSB0byBoYW5kbGUgSW50ZWdlci5wYXJzZSgiWFhYWFhYWFgiLCAxNikgd2hlcmUgWFhYWFhYWAotICAgICAgICAvLyBpcyA+IDgwMDAwMDAwIGJ1dCB0aGUgSmF2YSBWTSBjYW5ub3QuCi0KLSAgICAgICAgaW50IHNpZ24gPSAxOwotICAgICAgICBpbnQgaW5kZXggPSAwOwotICAgICAgICBpbnQgbGVuID0gbm0ubGVuZ3RoKCk7Ci0gICAgICAgIGludCBiYXNlID0gMTA7Ci0KLSAgICAgICAgaWYgKCctJyA9PSBubS5jaGFyQXQoMCkpIHsKLSAgICAgICAgICAgIHNpZ24gPSAtMTsKLSAgICAgICAgICAgIGluZGV4Kys7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoJzAnID09IG5tLmNoYXJBdChpbmRleCkpIHsKLSAgICAgICAgICAgIC8vICBRdWljayBjaGVjayBmb3IgYSB6ZXJvIGJ5IGl0c2VsZgotICAgICAgICAgICAgaWYgKGluZGV4ID09IChsZW4gLSAxKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLQotICAgICAgICAgICAgY2hhciBjID0gbm0uY2hhckF0KGluZGV4ICsgMSk7Ci0KLSAgICAgICAgICAgIGlmICgneCcgPT0gYyB8fCAnWCcgPT0gYykgewotICAgICAgICAgICAgICAgIGluZGV4ICs9IDI7Ci0gICAgICAgICAgICAgICAgYmFzZSA9IDE2OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpbmRleCsrOwotICAgICAgICAgICAgICAgIGJhc2UgPSA4OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKCcjJyA9PSBubS5jaGFyQXQoaW5kZXgpKSB7Ci0gICAgICAgICAgICBpbmRleCsrOwotICAgICAgICAgICAgYmFzZSA9IDE2OwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuICgoaW50KUxvbmcucGFyc2VMb25nKG5tLnN1YnN0cmluZyhpbmRleCksIGJhc2UpKSAqIHNpZ247Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9CcmlkZ2UuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvQnJpZGdlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiNGJlNzEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9CcmlkZ2UuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDYzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlOwotCi1pbXBvcnQgc3RhdGljIGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXN1bHQuU3RhdHVzLkVSUk9SX1VOS05PV047Ci1pbXBvcnQgc3RhdGljIGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXN1bHQuU3RhdHVzLlNVQ0NFU1M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuQ2FwYWJpbGl0eTsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuRHJhd2FibGVQYXJhbXM7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkxheW91dExvZzsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVuZGVyU2Vzc2lvbjsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVzdWx0OwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXN1bHQuU3RhdHVzOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5TZXNzaW9uUGFyYW1zOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5Gb250TG9hZGVyOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5SZW5kZXJEcmF3YWJsZTsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuUmVuZGVyU2Vzc2lvbkltcGw7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS51dGlsLkR5bmFtaWNJZE1hcDsKLWltcG9ydCBjb20uYW5kcm9pZC5uaW5lcGF0Y2guTmluZVBhdGNoQ2h1bms7Ci1pbXBvcnQgY29tLmFuZHJvaWQucmVzb3VyY2VzLlJlc291cmNlVHlwZTsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlLk1ldGhvZEFkYXB0ZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZS5PdmVycmlkZU1ldGhvZDsKLWltcG9ydCBjb20uYW5kcm9pZC51dGlsLlBhaXI7Ci1pbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5CcmlkZ2VBc3NldE1hbmFnZXI7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXA7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5UeXBlZmFjZV9BY2Nlc3NvcjsKLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlR5cGVmYWNlX0RlbGVnYXRlOwotaW1wb3J0IGFuZHJvaWQub3MuTG9vcGVyOwotaW1wb3J0IGFuZHJvaWQub3MuTG9vcGVyX0FjY2Vzc29yOwotaW1wb3J0IGFuZHJvaWQudmlldy5WaWV3OwotaW1wb3J0IGFuZHJvaWQudmlldy5WaWV3R3JvdXA7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdQYXJlbnQ7Ci0KLWltcG9ydCBqYXZhLmlvLkZpbGU7Ci1pbXBvcnQgamF2YS5sYW5nLnJlZi5Tb2Z0UmVmZXJlbmNlOwotaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0LkZpZWxkOwotaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1vZGlmaWVyOwotaW1wb3J0IGphdmEudXRpbC5BcnJheXM7Ci1pbXBvcnQgamF2YS51dGlsLkVudW1NYXA7Ci1pbXBvcnQgamF2YS51dGlsLkVudW1TZXQ7Ci1pbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7Ci1pbXBvcnQgamF2YS51dGlsLk1hcDsKLWltcG9ydCBqYXZhLnV0aWwuY29uY3VycmVudC5sb2Nrcy5SZWVudHJhbnRMb2NrOwotCi0vKioKLSAqIE1haW4gZW50cnkgcG9pbnQgb2YgdGhlIExheW91dExpYiBCcmlkZ2UuCi0gKiA8cC8+VG8gdXNlIHRoaXMgYnJpZGdlLCBzaW1wbHkgaW5zdGFudGlhdGUgYW4gb2JqZWN0IG9mIHR5cGUge0BsaW5rIEJyaWRnZX0gYW5kIGNhbGwKLSAqIHtAbGluayAjY3JlYXRlU2NlbmUoU2NlbmVQYXJhbXMpfQotICovCi1wdWJsaWMgZmluYWwgY2xhc3MgQnJpZGdlIGV4dGVuZHMgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkJyaWRnZSB7Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX0xPQ0FMRV9ESVJFQ1RJT05fUlRMID0gInJpZ2h0LXRvLWxlZnQiOwotCi0gICAgcHVibGljIHN0YXRpYyBjbGFzcyBTdGF0aWNNZXRob2ROb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbiBleHRlbmRzIFJ1bnRpbWVFeGNlcHRpb24gewotICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAxTDsKLQotICAgICAgICBwdWJsaWMgU3RhdGljTWV0aG9kTm90SW1wbGVtZW50ZWRFeGNlcHRpb24oU3RyaW5nIG1zZykgewotICAgICAgICAgICAgc3VwZXIobXNnKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIExvY2sgdG8gZW5zdXJlIG9ubHkgb25lIHJlbmRlcmluZy9pbmZsYXRpbmcgaGFwcGVucyBhdCBhIHRpbWUuCi0gICAgICogVGhpcyBpcyBkdWUgdG8gc29tZSBzaW5nbGV0b24gaW4gdGhlIEFuZHJvaWQgZnJhbWV3b3JrLgotICAgICAqLwotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIFJlZW50cmFudExvY2sgc0xvY2sgPSBuZXcgUmVlbnRyYW50TG9jaygpOwotCi0gICAgLyoqCi0gICAgICogTWFwcyBmcm9tIGlkIHRvIHJlc291cmNlIHR5cGUvbmFtZS4gVGhpcyBpcyBmb3IgY29tLmFuZHJvaWQuaW50ZXJuYWwuUgotICAgICAqLwotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIE1hcDxJbnRlZ2VyLCBQYWlyPFJlc291cmNlVHlwZSwgU3RyaW5nPj4gc1JNYXAgPQotICAgICAgICBuZXcgSGFzaE1hcDxJbnRlZ2VyLCBQYWlyPFJlc291cmNlVHlwZSwgU3RyaW5nPj4oKTsKLQotICAgIC8qKgotICAgICAqIFNhbWUgYXMgc1JNYXAgZXhjZXB0IGZvciBpbnRbXSBpbnN0ZWFkIG9mIGludCByZXNvdXJjZXMuIFRoaXMgaXMgZm9yIGFuZHJvaWQuUiBvbmx5LgotICAgICAqLwotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIE1hcDxJbnRBcnJheSwgU3RyaW5nPiBzUkFycmF5TWFwID0gbmV3IEhhc2hNYXA8SW50QXJyYXksIFN0cmluZz4oKTsKLSAgICAvKioKLSAgICAgKiBSZXZlcnNlIG1hcCBjb21wYXJlZCB0byBzUk1hcCwgcmVzb3VyY2UgdHlwZSAtPiAocmVzb3VyY2UgbmFtZSAtPiBpZCkuCi0gICAgICogVGhpcyBpcyBmb3IgY29tLmFuZHJvaWQuaW50ZXJuYWwuUi4KLSAgICAgKi8KLSAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBNYXA8UmVzb3VyY2VUeXBlLCBNYXA8U3RyaW5nLCBJbnRlZ2VyPj4gc1JldlJNYXAgPQotICAgICAgICBuZXcgRW51bU1hcDxSZXNvdXJjZVR5cGUsIE1hcDxTdHJpbmcsSW50ZWdlcj4+KFJlc291cmNlVHlwZS5jbGFzcyk7Ci0KLSAgICAvLyBmcmFtZXdvcmsgcmVzb3VyY2VzIGFyZSBkZWZpbmVkIGFzIDB4MDFYWCMjIyMgd2hlcmUgWFggaXMgdGhlIHJlc291cmNlIHR5cGUgKGxheW91dCwKLSAgICAvLyBkcmF3YWJsZSwgZXRjLi4uKS4gVXNpbmcgRkYgYXMgdGhlIHR5cGUgYWxsb3dzIGZvciAyNTUgcmVzb3VyY2UgdHlwZXMgYmVmb3JlIHdlIGdldCBhCi0gICAgLy8gY29sbGlzaW9uIHdoaWNoIHNob3VsZCBiZSBmaW5lLgotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBEWU5BTUlDX0lEX1NFRURfU1RBUlQgPSAweDAxZmYwMDAwOwotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIER5bmFtaWNJZE1hcCBzRHluYW1pY0lkcyA9IG5ldyBEeW5hbWljSWRNYXAoRFlOQU1JQ19JRF9TRUVEX1NUQVJUKTsKLQotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIE1hcDxPYmplY3QsIE1hcDxTdHJpbmcsIFNvZnRSZWZlcmVuY2U8Qml0bWFwPj4+IHNQcm9qZWN0Qml0bWFwQ2FjaGUgPQotICAgICAgICBuZXcgSGFzaE1hcDxPYmplY3QsIE1hcDxTdHJpbmcsIFNvZnRSZWZlcmVuY2U8Qml0bWFwPj4+KCk7Ci0gICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgTWFwPE9iamVjdCwgTWFwPFN0cmluZywgU29mdFJlZmVyZW5jZTxOaW5lUGF0Y2hDaHVuaz4+PiBzUHJvamVjdDlQYXRjaENhY2hlID0KLSAgICAgICAgbmV3IEhhc2hNYXA8T2JqZWN0LCBNYXA8U3RyaW5nLCBTb2Z0UmVmZXJlbmNlPE5pbmVQYXRjaENodW5rPj4+KCk7Ci0KLSAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBNYXA8U3RyaW5nLCBTb2Z0UmVmZXJlbmNlPEJpdG1hcD4+IHNGcmFtZXdvcmtCaXRtYXBDYWNoZSA9Ci0gICAgICAgIG5ldyBIYXNoTWFwPFN0cmluZywgU29mdFJlZmVyZW5jZTxCaXRtYXA+PigpOwotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIE1hcDxTdHJpbmcsIFNvZnRSZWZlcmVuY2U8TmluZVBhdGNoQ2h1bms+PiBzRnJhbWV3b3JrOVBhdGNoQ2FjaGUgPQotICAgICAgICBuZXcgSGFzaE1hcDxTdHJpbmcsIFNvZnRSZWZlcmVuY2U8TmluZVBhdGNoQ2h1bms+PigpOwotCi0gICAgcHJpdmF0ZSBzdGF0aWMgTWFwPFN0cmluZywgTWFwPFN0cmluZywgSW50ZWdlcj4+IHNFbnVtVmFsdWVNYXA7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgTWFwPFN0cmluZywgU3RyaW5nPiBzUGxhdGZvcm1Qcm9wZXJ0aWVzOwotCi0gICAgLyoqCi0gICAgICogaW50W10gd3JhcHBlciB0byB1c2UgYXMga2V5cyBpbiBtYXBzLgotICAgICAqLwotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGNsYXNzIEludEFycmF5IHsKLSAgICAgICAgcHJpdmF0ZSBpbnRbXSBtQXJyYXk7Ci0KLSAgICAgICAgcHJpdmF0ZSBJbnRBcnJheSgpIHsKLSAgICAgICAgICAgIC8vIGRvIG5vdGhpbmcKLSAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGUgSW50QXJyYXkoaW50W10gYSkgewotICAgICAgICAgICAgbUFycmF5ID0gYTsKLSAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGUgdm9pZCBzZXQoaW50W10gYSkgewotICAgICAgICAgICAgbUFycmF5ID0gYTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgewotICAgICAgICAgICAgcmV0dXJuIEFycmF5cy5oYXNoQ29kZShtQXJyYXkpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7Ci0gICAgICAgICAgICBpZiAodGhpcyA9PSBvYmopIHJldHVybiB0cnVlOwotICAgICAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAoZ2V0Q2xhc3MoKSAhPSBvYmouZ2V0Q2xhc3MoKSkgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgICAgICBJbnRBcnJheSBvdGhlciA9IChJbnRBcnJheSkgb2JqOwotICAgICAgICAgICAgaWYgKCFBcnJheXMuZXF1YWxzKG1BcnJheSwgb3RoZXIubUFycmF5KSkgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiogSW5zdGFuY2Ugb2YgSW50QXJyYXlXcmFwcGVyIHRvIGJlIHJldXNlZCBpbiB7QGxpbmsgI3Jlc29sdmVSZXNvdXJjZUlkKGludFtdKX0uICovCi0gICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgSW50QXJyYXkgc0ludEFycmF5V3JhcHBlciA9IG5ldyBJbnRBcnJheSgpOwotCi0gICAgLyoqCi0gICAgICogQSBkZWZhdWx0IGxvZyB0aGFuIHByaW50cyB0byBzdGRvdXQvc3RkZXJyLgotICAgICAqLwotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIExheW91dExvZyBzRGVmYXVsdExvZyA9IG5ldyBMYXlvdXRMb2coKSB7Ci0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCBlcnJvcihTdHJpbmcgdGFnLCBTdHJpbmcgbWVzc2FnZSwgT2JqZWN0IGRhdGEpIHsKLSAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihtZXNzYWdlKTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCBlcnJvcihTdHJpbmcgdGFnLCBTdHJpbmcgbWVzc2FnZSwgVGhyb3dhYmxlIHRocm93YWJsZSwgT2JqZWN0IGRhdGEpIHsKLSAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihtZXNzYWdlKTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB3YXJuaW5nKFN0cmluZyB0YWcsIFN0cmluZyBtZXNzYWdlLCBPYmplY3QgZGF0YSkgewotICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKG1lc3NhZ2UpOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIC8qKgotICAgICAqIEN1cnJlbnQgbG9nLgotICAgICAqLwotICAgIHByaXZhdGUgc3RhdGljIExheW91dExvZyBzQ3VycmVudExvZyA9IHNEZWZhdWx0TG9nOwotCi0gICAgcHJpdmF0ZSBFbnVtU2V0PENhcGFiaWxpdHk+IG1DYXBhYmlsaXRpZXM7Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldEFwaUxldmVsKCkgewotICAgICAgICByZXR1cm4gY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkJyaWRnZS5BUElfQ1VSUkVOVDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgRW51bVNldDxDYXBhYmlsaXR5PiBnZXRDYXBhYmlsaXRpZXMoKSB7Ci0gICAgICAgIHJldHVybiBtQ2FwYWJpbGl0aWVzOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGluaXQoTWFwPFN0cmluZyxTdHJpbmc+IHBsYXRmb3JtUHJvcGVydGllcywKLSAgICAgICAgICAgIEZpbGUgZm9udExvY2F0aW9uLAotICAgICAgICAgICAgTWFwPFN0cmluZywgTWFwPFN0cmluZywgSW50ZWdlcj4+IGVudW1WYWx1ZU1hcCwKLSAgICAgICAgICAgIExheW91dExvZyBsb2cpIHsKLSAgICAgICAgc1BsYXRmb3JtUHJvcGVydGllcyA9IHBsYXRmb3JtUHJvcGVydGllczsKLSAgICAgICAgc0VudW1WYWx1ZU1hcCA9IGVudW1WYWx1ZU1hcDsKLQotICAgICAgICAvLyBkb24ndCB1c2UgRW51bVNldC5hbGxPZigpLCBiZWNhdXNlIHRoZSBicmlkZ2UgZG9lc24ndCBjb21lIHdpdGggaXRzIHNwZWNpZmljIHZlcnNpb24KLSAgICAgICAgLy8gb2YgbGF5b3V0bGliX2FwaS4gSXQgaXMgcHJvdmlkZWQgYnkgdGhlIGNsaWVudCB3aGljaCBjb3VsZCBoYXZlIGEgbW9yZSByZWNlbnQgdmVyc2lvbgotICAgICAgICAvLyB3aXRoIG5ld2VyLCB1bnN1cHBvcnRlZCBjYXBhYmlsaXRpZXMuCi0gICAgICAgIG1DYXBhYmlsaXRpZXMgPSBFbnVtU2V0Lm9mKAotICAgICAgICAgICAgICAgIENhcGFiaWxpdHkuVU5CT1VORF9SRU5ERVJJTkcsCi0gICAgICAgICAgICAgICAgQ2FwYWJpbGl0eS5DVVNUT01fQkFDS0dST1VORF9DT0xPUiwKLSAgICAgICAgICAgICAgICBDYXBhYmlsaXR5LlJFTkRFUiwKLSAgICAgICAgICAgICAgICBDYXBhYmlsaXR5LkxBWU9VVF9PTkxZLAotICAgICAgICAgICAgICAgIENhcGFiaWxpdHkuRU1CRURERURfTEFZT1VULAotICAgICAgICAgICAgICAgIENhcGFiaWxpdHkuVklFV19NQU5JUFVMQVRJT04sCi0gICAgICAgICAgICAgICAgQ2FwYWJpbGl0eS5QTEFZX0FOSU1BVElPTiwKLSAgICAgICAgICAgICAgICBDYXBhYmlsaXR5LkFOSU1BVEVEX1ZJRVdfTUFOSVBVTEFUSU9OLAotICAgICAgICAgICAgICAgIENhcGFiaWxpdHkuQURBUFRFUl9CSU5ESU5HLAotICAgICAgICAgICAgICAgIENhcGFiaWxpdHkuRVhURU5ERURfVklFV0lORk8sCi0gICAgICAgICAgICAgICAgQ2FwYWJpbGl0eS5GSVhFRF9TQ0FMQUJMRV9OSU5FX1BBVENILAotICAgICAgICAgICAgICAgIENhcGFiaWxpdHkuUlRMKTsKLQotCi0gICAgICAgIEJyaWRnZUFzc2V0TWFuYWdlci5pbml0U3lzdGVtKCk7Ci0KLSAgICAgICAgLy8gV2hlbiBERUJVR19MQVlPVVQgaXMgc2V0IGFuZCBpcyBub3QgMCBvciBmYWxzZSwgc2V0dXAgYSBkZWZhdWx0IGxpc3RlbmVyCi0gICAgICAgIC8vIG9uIHN0YXRpYyAobmF0aXZlKSBtZXRob2RzIHdoaWNoIHByaW50cyB0aGUgc2lnbmF0dXJlIG9uIHRoZSBjb25zb2xlIGFuZAotICAgICAgICAvLyB0aHJvd3MgYW4gZXhjZXB0aW9uLgotICAgICAgICAvLyBUaGlzIGlzIHVzZWZ1bCB3aGVuIHRlc3RpbmcgdGhlIHJlbmRlcmluZyBpbiBBRFQgdG8gaWRlbnRpZnkgc3RhdGljIG5hdGl2ZQotICAgICAgICAvLyBtZXRob2RzIHRoYXQgYXJlIGlnbm9yZWQgLS0gbGF5b3V0bGliX2NyZWF0ZSBtYWtlcyB0aGVtIHJldHVybnMgMC9mYWxzZS9udWxsCi0gICAgICAgIC8vIHdoaWNoIGlzIGdlbmVyYWxseSBPSyB5ZXQgbWlnaHQgYmUgYSBwcm9ibGVtLCBzbyB0aGlzIGlzIGhvdyB5b3UnZCBmaW5kIG91dC4KLSAgICAgICAgLy8KLSAgICAgICAgLy8gQ3VycmVudGx5IGxheW91dGxpYl9jcmVhdGUgb25seSBvdmVycmlkZXMgc3RhdGljIG5hdGl2ZSBtZXRob2QuCi0gICAgICAgIC8vIFN0YXRpYyBub24tbmF0aXZlcyBhcmUgbm90IG92ZXJyaWRkZW4gYW5kIHRodXMgZG8gbm90IGdldCBoZXJlLgotICAgICAgICBmaW5hbCBTdHJpbmcgZGVidWcgPSBTeXN0ZW0uZ2V0ZW52KCJERUJVR19MQVlPVVQiKTsKLSAgICAgICAgaWYgKGRlYnVnICE9IG51bGwgJiYgIWRlYnVnLmVxdWFscygiMCIpICYmICFkZWJ1Zy5lcXVhbHMoImZhbHNlIikpIHsKLQotICAgICAgICAgICAgT3ZlcnJpZGVNZXRob2Quc2V0RGVmYXVsdExpc3RlbmVyKG5ldyBNZXRob2RBZGFwdGVyKCkgewotICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIG9uSW52b2tlVihTdHJpbmcgc2lnbmF0dXJlLCBib29sZWFuIGlzTmF0aXZlLCBPYmplY3QgY2FsbGVyKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNEZWZhdWx0TG9nLmVycm9yKG51bGwsICJNaXNzaW5nIFN0dWI6ICIgKyBzaWduYXR1cmUgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpc05hdGl2ZSA/ICIgKG5hdGl2ZSkiIDogIiIpLCBudWxsIC8qZGF0YSovKTsKLQotICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcuZXF1YWxzSWdub3JlQ2FzZSgidGhyb3ciKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhyb3dpbmcgdGhpcyBleGNlcHRpb24gZG9lc24ndCBzZWVtIHRoYXQgdXNlZnVsLiBJdCBicmVha3MKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBsYXlvdXQgZWRpdG9yIHlldCBkb2Vzbid0IGRpc3BsYXkgYW55dGhpbmcgbWVhbmluZ2Z1bCB0byB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZXIuIEhhdmluZyB0aGUgZXJyb3IgaW4gdGhlIGNvbnNvbGUgaXMganVzdCBhcyB1c2VmdWwuIFdlJ2xsCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBpdCBvbmx5IGlmIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyAidGhyb3ciIG9yICJUSFJPVyIuCi0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RhdGljTWV0aG9kTm90SW1wbGVtZW50ZWRFeGNlcHRpb24oc2lnbmF0dXJlKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gbG9hZCB0aGUgZm9udHMuCi0gICAgICAgIEZvbnRMb2FkZXIgZm9udExvYWRlciA9IEZvbnRMb2FkZXIuY3JlYXRlKGZvbnRMb2NhdGlvbi5nZXRBYnNvbHV0ZVBhdGgoKSk7Ci0gICAgICAgIGlmIChmb250TG9hZGVyICE9IG51bGwpIHsKLSAgICAgICAgICAgIFR5cGVmYWNlX0RlbGVnYXRlLmluaXQoZm9udExvYWRlcik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsb2cuZXJyb3IoTGF5b3V0TG9nLlRBR19CUk9LRU4sCi0gICAgICAgICAgICAgICAgICAgICJGYWlsZWQgY3JlYXRlIEZvbnRMb2FkZXIgaW4gbGF5b3V0IGxpYi4iLCBudWxsKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIG5vdyBwYXJzZSBjb20uYW5kcm9pZC5pbnRlcm5hbC5SIChhbmQgb25seSB0aGlzIG9uZSBhcyBhbmRyb2lkLlIgaXMgYSBzdWJzZXQgb2YKLSAgICAgICAgLy8gdGhlIGludGVybmFsIHZlcnNpb24pLCBhbmQgcHV0IHRoZSBjb250ZW50IGluIHRoZSBtYXBzLgotICAgICAgICB0cnkgewotICAgICAgICAgICAgQ2xhc3M8Pz4gciA9IGNvbS5hbmRyb2lkLmludGVybmFsLlIuY2xhc3M7Ci0KLSAgICAgICAgICAgIGZvciAoQ2xhc3M8Pz4gaW5uZXIgOiByLmdldERlY2xhcmVkQ2xhc3NlcygpKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHJlc1R5cGVOYW1lID0gaW5uZXIuZ2V0U2ltcGxlTmFtZSgpOwotICAgICAgICAgICAgICAgIFJlc291cmNlVHlwZSByZXNUeXBlID0gUmVzb3VyY2VUeXBlLmdldEVudW0ocmVzVHlwZU5hbWUpOwotICAgICAgICAgICAgICAgIGlmIChyZXNUeXBlICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgTWFwPFN0cmluZywgSW50ZWdlcj4gZnVsbE1hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgSW50ZWdlcj4oKTsKLSAgICAgICAgICAgICAgICAgICAgc1JldlJNYXAucHV0KHJlc1R5cGUsIGZ1bGxNYXApOwotCi0gICAgICAgICAgICAgICAgICAgIGZvciAoRmllbGQgZiA6IGlubmVyLmdldERlY2xhcmVkRmllbGRzKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgcHJvY2VzcyBzdGF0aWMgZmluYWwgZmllbGRzLiBTaW5jZSB0aGUgZmluYWwgYXR0cmlidXRlIG1heSBoYXZlCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBiZWVuIGFsdGVyZWQgYnkgbGF5b3V0bGliX2NyZWF0ZSwgd2Ugb25seSBjaGVjayBzdGF0aWMKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBtb2RpZmllcnMgPSBmLmdldE1vZGlmaWVycygpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1vZGlmaWVyLmlzU3RhdGljKG1vZGlmaWVycykpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzczw/PiB0eXBlID0gZi5nZXRUeXBlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUuaXNBcnJheSgpICYmIHR5cGUuZ2V0Q29tcG9uZW50VHlwZSgpID09IGludC5jbGFzcykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgb2JqZWN0IGlzIGFuIGludFtdIHdlIHB1dCBpdCBpbiBzUkFycmF5TWFwIHVzaW5nIGFuIEludEFycmF5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyYXBwZXIgdGhhdCBwcm9wZXJseSBpbXBsZW1lbnRzIGVxdWFscyBhbmQgaGFzaGNvZGUgZm9yIHRoZSBhcnJheQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvYmplY3RzLCBhcyByZXF1aXJlZCBieSB0aGUgbWFwIGNvbnRyYWN0LgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzUkFycmF5TWFwLnB1dChuZXcgSW50QXJyYXkoKGludFtdKSBmLmdldChudWxsKSksIGYuZ2V0TmFtZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gaW50LmNsYXNzKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIgdmFsdWUgPSAoSW50ZWdlcikgZi5nZXQobnVsbCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNSTWFwLnB1dCh2YWx1ZSwgUGFpci5vZihyZXNUeXBlLCBmLmdldE5hbWUoKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsTWFwLnB1dChmLmdldE5hbWUoKSwgdmFsdWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0aHJvd2FibGUpIHsKLSAgICAgICAgICAgIGlmIChsb2cgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGxvZy5lcnJvcihMYXlvdXRMb2cuVEFHX0JST0tFTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gbG9hZCBjb20uYW5kcm9pZC5pbnRlcm5hbC5SIGZyb20gdGhlIGxheW91dCBsaWJyYXJ5IGphciIsCi0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvd2FibGUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gZGlzcG9zZSgpIHsKLSAgICAgICAgQnJpZGdlQXNzZXRNYW5hZ2VyLmNsZWFyU3lzdGVtKCk7Ci0KLSAgICAgICAgLy8gZGlzcG9zZSBvZiB0aGUgZGVmYXVsdCB0eXBlZmFjZS4KLSAgICAgICAgVHlwZWZhY2VfQWNjZXNzb3IucmVzZXREZWZhdWx0cygpOwotCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFN0YXJ0cyBhIGxheW91dCBzZXNzaW9uIGJ5IGluZmxhdGluZyBhbmQgcmVuZGVyaW5nIGl0LiBUaGUgbWV0aG9kIHJldHVybnMgYQotICAgICAqIHtAbGluayBSZW5kZXJTZXNzaW9ufSBvbiB3aGljaCBmdXJ0aGVyIGFjdGlvbnMgY2FuIGJlIHRha2VuLgotICAgICAqCi0gICAgICogQHBhcmFtIHBhcmFtcyB0aGUge0BsaW5rIFNlc3Npb25QYXJhbXN9IG9iamVjdCB3aXRoIGFsbCB0aGUgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IHRvIGNyZWF0ZQotICAgICAqICAgICAgICAgICB0aGUgc2NlbmUuCi0gICAgICogQHJldHVybiBhIG5ldyB7QGxpbmsgUmVuZGVyU2Vzc2lvbn0gb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIHJlc3VsdCBvZiB0aGUgbGF5b3V0LgotICAgICAqIEBzaW5jZSA1Ci0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFJlbmRlclNlc3Npb24gY3JlYXRlU2Vzc2lvbihTZXNzaW9uUGFyYW1zIHBhcmFtcykgewotICAgICAgICB0cnkgewotICAgICAgICAgICAgUmVzdWx0IGxhc3RSZXN1bHQgPSBTVUNDRVNTLmNyZWF0ZVJlc3VsdCgpOwotICAgICAgICAgICAgUmVuZGVyU2Vzc2lvbkltcGwgc2NlbmUgPSBuZXcgUmVuZGVyU2Vzc2lvbkltcGwocGFyYW1zKTsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgcHJlcGFyZVRocmVhZCgpOwotICAgICAgICAgICAgICAgIGxhc3RSZXN1bHQgPSBzY2VuZS5pbml0KHBhcmFtcy5nZXRUaW1lb3V0KCkpOwotICAgICAgICAgICAgICAgIGlmIChsYXN0UmVzdWx0LmlzU3VjY2VzcygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxhc3RSZXN1bHQgPSBzY2VuZS5pbmZsYXRlKCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChsYXN0UmVzdWx0LmlzU3VjY2VzcygpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsYXN0UmVzdWx0ID0gc2NlbmUucmVuZGVyKHRydWUgLypmcmVzaFJlbmRlciovKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgICAgICAgc2NlbmUucmVsZWFzZSgpOwotICAgICAgICAgICAgICAgIGNsZWFudXBUaHJlYWQoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIG5ldyBCcmlkZ2VSZW5kZXJTZXNzaW9uKHNjZW5lLCBsYXN0UmVzdWx0KTsKLSAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKLSAgICAgICAgICAgIC8vIGdldCB0aGUgcmVhbCBjYXVzZSBvZiB0aGUgZXhjZXB0aW9uLgotICAgICAgICAgICAgVGhyb3dhYmxlIHQyID0gdDsKLSAgICAgICAgICAgIHdoaWxlICh0Mi5nZXRDYXVzZSgpICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICB0MiA9IHQuZ2V0Q2F1c2UoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBuZXcgQnJpZGdlUmVuZGVyU2Vzc2lvbihudWxsLAotICAgICAgICAgICAgICAgICAgICBFUlJPUl9VTktOT1dOLmNyZWF0ZVJlc3VsdCh0Mi5nZXRNZXNzYWdlKCksIHQpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBSZXN1bHQgcmVuZGVyRHJhd2FibGUoRHJhd2FibGVQYXJhbXMgcGFyYW1zKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBSZXN1bHQgbGFzdFJlc3VsdCA9IFNVQ0NFU1MuY3JlYXRlUmVzdWx0KCk7Ci0gICAgICAgICAgICBSZW5kZXJEcmF3YWJsZSBhY3Rpb24gPSBuZXcgUmVuZGVyRHJhd2FibGUocGFyYW1zKTsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgcHJlcGFyZVRocmVhZCgpOwotICAgICAgICAgICAgICAgIGxhc3RSZXN1bHQgPSBhY3Rpb24uaW5pdChwYXJhbXMuZ2V0VGltZW91dCgpKTsKLSAgICAgICAgICAgICAgICBpZiAobGFzdFJlc3VsdC5pc1N1Y2Nlc3MoKSkgewotICAgICAgICAgICAgICAgICAgICBsYXN0UmVzdWx0ID0gYWN0aW9uLnJlbmRlcigpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgICAgICAgYWN0aW9uLnJlbGVhc2UoKTsKLSAgICAgICAgICAgICAgICBjbGVhbnVwVGhyZWFkKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBsYXN0UmVzdWx0OwotICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgewotICAgICAgICAgICAgLy8gZ2V0IHRoZSByZWFsIGNhdXNlIG9mIHRoZSBleGNlcHRpb24uCi0gICAgICAgICAgICBUaHJvd2FibGUgdDIgPSB0OwotICAgICAgICAgICAgd2hpbGUgKHQyLmdldENhdXNlKCkgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHQyID0gdC5nZXRDYXVzZSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIEVSUk9SX1VOS05PV04uY3JlYXRlUmVzdWx0KHQyLmdldE1lc3NhZ2UoKSwgdCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBjbGVhckNhY2hlcyhPYmplY3QgcHJvamVjdEtleSkgewotICAgICAgICBpZiAocHJvamVjdEtleSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBzUHJvamVjdEJpdG1hcENhY2hlLnJlbW92ZShwcm9qZWN0S2V5KTsKLSAgICAgICAgICAgIHNQcm9qZWN0OVBhdGNoQ2FjaGUucmVtb3ZlKHByb2plY3RLZXkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFJlc3VsdCBnZXRWaWV3UGFyZW50KE9iamVjdCB2aWV3T2JqZWN0KSB7Ci0gICAgICAgIGlmICh2aWV3T2JqZWN0IGluc3RhbmNlb2YgVmlldykgewotICAgICAgICAgICAgcmV0dXJuIFN0YXR1cy5TVUNDRVNTLmNyZWF0ZVJlc3VsdCgoKFZpZXcpdmlld09iamVjdCkuZ2V0UGFyZW50KCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidmlld09iamVjdCBpcyBub3QgYSBWaWV3Iik7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFJlc3VsdCBnZXRWaWV3SW5kZXgoT2JqZWN0IHZpZXdPYmplY3QpIHsKLSAgICAgICAgaWYgKHZpZXdPYmplY3QgaW5zdGFuY2VvZiBWaWV3KSB7Ci0gICAgICAgICAgICBWaWV3IHZpZXcgPSAoVmlldykgdmlld09iamVjdDsKLSAgICAgICAgICAgIFZpZXdQYXJlbnQgcGFyZW50VmlldyA9IHZpZXcuZ2V0UGFyZW50KCk7Ci0KLSAgICAgICAgICAgIGlmIChwYXJlbnRWaWV3IGluc3RhbmNlb2YgVmlld0dyb3VwKSB7Ci0gICAgICAgICAgICAgICAgU3RhdHVzLlNVQ0NFU1MuY3JlYXRlUmVzdWx0KCgoVmlld0dyb3VwKSBwYXJlbnRWaWV3KS5pbmRleE9mQ2hpbGQodmlldykpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gU3RhdHVzLlNVQ0NFU1MuY3JlYXRlUmVzdWx0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ2aWV3T2JqZWN0IGlzIG5vdCBhIFZpZXciKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBpc1J0bChTdHJpbmcgbG9jYWxlKSB7Ci0gICAgICAgIHJldHVybiBpc0xvY2FsZVJ0bChsb2NhbGUpOwotICAgIH0KLQotICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xvY2FsZVJ0bChTdHJpbmcgbG9jYWxlKSB7Ci0gICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgewotICAgICAgICAgICAgbG9jYWxlID0gIiI7Ci0gICAgICAgIH0KLSAgICAgICAgVUxvY2FsZSB1TG9jYWxlID0gbmV3IFVMb2NhbGUobG9jYWxlKTsKLSAgICAgICAgcmV0dXJuIHVMb2NhbGUuZ2V0Q2hhcmFjdGVyT3JpZW50YXRpb24oKS5lcXVhbHMoSUNVX0xPQ0FMRV9ESVJFQ1RJT05fUlRMKSA/Ci0gICAgICAgICAgICAgICAgdHJ1ZSA6IGZhbHNlOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIGxvY2sgZm9yIHRoZSBicmlkZ2UKLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIFJlZW50cmFudExvY2sgZ2V0TG9jaygpIHsKLSAgICAgICAgcmV0dXJuIHNMb2NrOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFByZXBhcmVzIHRoZSBjdXJyZW50IHRocmVhZCBmb3IgcmVuZGVyaW5nLgotICAgICAqCi0gICAgICogTm90ZSB0aGF0IHdoaWxlIHRoaXMgY2FuIGJlIGNhbGxlZCBzZXZlcmFsIHRpbWUsIHRoZSBmaXJzdCBjYWxsIHRvIHtAbGluayAjY2xlYW51cFRocmVhZCgpfQotICAgICAqIHdpbGwgZG8gdGhlIGNsZWFuLXVwLCBhbmQgbWFrZSB0aGUgdGhyZWFkIHVuYWJsZSB0byBkbyBmdXJ0aGVyIHNjZW5lIGFjdGlvbnMuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIHByZXBhcmVUaHJlYWQoKSB7Ci0gICAgICAgIC8vIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBMb29wZXIgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgZm9yIHRoaXMgdGhyZWFkLgotICAgICAgICAvLyB0aGlzIGlzIHJlcXVpcmVkIGZvciBWaWV3IHRoYXQgY3JlYXRlcyBIYW5kbGVyIG9iamVjdHMuCi0gICAgICAgIGlmIChMb29wZXIubXlMb29wZXIoKSA9PSBudWxsKSB7Ci0gICAgICAgICAgICBMb29wZXIucHJlcGFyZU1haW5Mb29wZXIoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIENsZWFucyB1cCB0aHJlYWQtc3BlY2lmaWMgZGF0YS4gQWZ0ZXIgdGhpcywgdGhlIHRocmVhZCBjYW5ub3QgYmUgdXNlZCBmb3Igc2NlbmUgYWN0aW9ucy4KLSAgICAgKiA8cD4KLSAgICAgKiBOb3RlIHRoYXQgaXQgZG9lc24ndCBtYXR0ZXIgaG93IG1hbnkgdGltZXMge0BsaW5rICNwcmVwYXJlVGhyZWFkKCl9IHdhcyBjYWxsZWQsIGEgc2luZ2xlCi0gICAgICogY2FsbCB0byB0aGlzIHdpbGwgcHJldmVudCB0aGUgdGhyZWFkIGZyb20gZG9pbmcgZnVydGhlciBzY2VuZSBhY3Rpb25zCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIGNsZWFudXBUaHJlYWQoKSB7Ci0gICAgICAgIC8vIGNsZWFuIHVwIHRoZSBsb29wZXIKLSAgICAgICAgTG9vcGVyX0FjY2Vzc29yLmNsZWFudXBUaHJlYWQoKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIExheW91dExvZyBnZXRMb2coKSB7Ci0gICAgICAgIHJldHVybiBzQ3VycmVudExvZzsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0TG9nKExheW91dExvZyBsb2cpIHsKLSAgICAgICAgLy8gY2hlY2sgb25seSB0aGUgdGhyZWFkIGN1cnJlbnRseSBvd25pbmcgdGhlIGxvY2sgY2FuIGRvIHRoaXMuCi0gICAgICAgIGlmIChzTG9jay5pc0hlbGRCeUN1cnJlbnRUaHJlYWQoKSA9PSBmYWxzZSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigic2NlbmUgbXVzdCBiZSBhY3F1aXJlZCBmaXJzdC4gc2VlICNhY3F1aXJlKGxvbmcpIik7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobG9nICE9IG51bGwpIHsKLSAgICAgICAgICAgIHNDdXJyZW50TG9nID0gbG9nOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc0N1cnJlbnRMb2cgPSBzRGVmYXVsdExvZzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgZGV0YWlscyBvZiBhIGZyYW1ld29yayByZXNvdXJjZSBmcm9tIGl0cyBpbnRlZ2VyIHZhbHVlLgotICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgaW50ZWdlciB2YWx1ZQotICAgICAqIEByZXR1cm4gYSBQYWlyIGNvbnRhaW5pbmcgdGhlIHJlc291cmNlIHR5cGUgYW5kIG5hbWUsIG9yIG51bGwgaWYgdGhlIGlkCi0gICAgICogICAgIGRvZXMgbm90IG1hdGNoIGFueSByZXNvdXJjZS4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIFBhaXI8UmVzb3VyY2VUeXBlLCBTdHJpbmc+IHJlc29sdmVSZXNvdXJjZUlkKGludCB2YWx1ZSkgewotICAgICAgICBQYWlyPFJlc291cmNlVHlwZSwgU3RyaW5nPiBwYWlyID0gc1JNYXAuZ2V0KHZhbHVlKTsKLSAgICAgICAgaWYgKHBhaXIgPT0gbnVsbCkgewotICAgICAgICAgICAgcGFpciA9IHNEeW5hbWljSWRzLnJlc29sdmVJZCh2YWx1ZSk7Ci0gICAgICAgICAgICBpZiAocGFpciA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oU3RyaW5nLmZvcm1hdCgiTWlzc2luZyBpZDogJTEkMDhYICglMSRkKSIsIHZhbHVlKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHBhaXI7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgbmFtZSBvZiBhIGZyYW1ld29yayByZXNvdXJjZSB3aG9zZSB2YWx1ZSBpcyBhbiBpbnQgYXJyYXkuCi0gICAgICogQHBhcmFtIGFycmF5Ci0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVzb2x2ZVJlc291cmNlSWQoaW50W10gYXJyYXkpIHsKLSAgICAgICAgc0ludEFycmF5V3JhcHBlci5zZXQoYXJyYXkpOwotICAgICAgICByZXR1cm4gc1JBcnJheU1hcC5nZXQoc0ludEFycmF5V3JhcHBlcik7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgaW50ZWdlciBpZCBvZiBhIGZyYW1ld29yayByZXNvdXJjZSwgZnJvbSBhIGdpdmVuIHJlc291cmNlIHR5cGUgYW5kIHJlc291cmNlIG5hbWUuCi0gICAgICogQHBhcmFtIHR5cGUgdGhlIHR5cGUgb2YgdGhlIHJlc291cmNlCi0gICAgICogQHBhcmFtIG5hbWUgdGhlIG5hbWUgb2YgdGhlIHJlc291cmNlLgotICAgICAqIEByZXR1cm4gYW4ge0BsaW5rIEludGVnZXJ9IGNvbnRhaW5pbmcgdGhlIHJlc291cmNlIGlkLCBvciBudWxsIGlmIG5vIHJlc291cmNlIHdlcmUgZm91bmQuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBJbnRlZ2VyIGdldFJlc291cmNlSWQoUmVzb3VyY2VUeXBlIHR5cGUsIFN0cmluZyBuYW1lKSB7Ci0gICAgICAgIE1hcDxTdHJpbmcsIEludGVnZXI+IG1hcCA9IHNSZXZSTWFwLmdldCh0eXBlKTsKLSAgICAgICAgSW50ZWdlciB2YWx1ZSA9IG51bGw7Ci0gICAgICAgIGlmIChtYXAgIT0gbnVsbCkgewotICAgICAgICAgICAgdmFsdWUgPSBtYXAuZ2V0KG5hbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsKLSAgICAgICAgICAgIHZhbHVlID0gc0R5bmFtaWNJZHMuZ2V0SWQodHlwZSwgbmFtZSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBwb3NzaWJsZSBlbnVtcyBmb3IgYSBnaXZlbiBhdHRyaWJ1dGUgbmFtZS4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIE1hcDxTdHJpbmcsIEludGVnZXI+IGdldEVudW1WYWx1ZXMoU3RyaW5nIGF0dHJpYnV0ZU5hbWUpIHsKLSAgICAgICAgaWYgKHNFbnVtVmFsdWVNYXAgIT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHNFbnVtVmFsdWVNYXAuZ2V0KGF0dHJpYnV0ZU5hbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgcGxhdGZvcm0gYnVpbGQgcHJvcGVydGllcy4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIE1hcDxTdHJpbmcsIFN0cmluZz4gZ2V0UGxhdGZvcm1Qcm9wZXJ0aWVzKCkgewotICAgICAgICByZXR1cm4gc1BsYXRmb3JtUHJvcGVydGllczsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBiaXRtYXAgZm9yIGEgc3BlY2lmaWMgcGF0aCwgZnJvbSBhIHNwZWNpZmljIHByb2plY3QgY2FjaGUsIG9yIGZyb20gdGhlCi0gICAgICogZnJhbWV3b3JrIGNhY2hlLgotICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgcGF0aCBvZiB0aGUgYml0bWFwCi0gICAgICogQHBhcmFtIHByb2plY3RLZXkgdGhlIGtleSBvZiB0aGUgcHJvamVjdCwgb3IgbnVsbCB0byBxdWVyeSB0aGUgZnJhbWV3b3JrIGNhY2hlLgotICAgICAqIEByZXR1cm4gdGhlIGNhY2hlZCBCaXRtYXAgb3IgbnVsbCBpZiBub3QgZm91bmQuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBCaXRtYXAgZ2V0Q2FjaGVkQml0bWFwKFN0cmluZyB2YWx1ZSwgT2JqZWN0IHByb2plY3RLZXkpIHsKLSAgICAgICAgaWYgKHByb2plY3RLZXkgIT0gbnVsbCkgewotICAgICAgICAgICAgTWFwPFN0cmluZywgU29mdFJlZmVyZW5jZTxCaXRtYXA+PiBtYXAgPSBzUHJvamVjdEJpdG1hcENhY2hlLmdldChwcm9qZWN0S2V5KTsKLSAgICAgICAgICAgIGlmIChtYXAgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIFNvZnRSZWZlcmVuY2U8Qml0bWFwPiByZWYgPSBtYXAuZ2V0KHZhbHVlKTsKLSAgICAgICAgICAgICAgICBpZiAocmVmICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZi5nZXQoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBTb2Z0UmVmZXJlbmNlPEJpdG1hcD4gcmVmID0gc0ZyYW1ld29ya0JpdG1hcENhY2hlLmdldCh2YWx1ZSk7Ci0gICAgICAgICAgICBpZiAocmVmICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVmLmdldCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogU2V0cyBhIGJpdG1hcCBpbiBhIHByb2plY3QgY2FjaGUgb3IgaW4gdGhlIGZyYW1ld29yayBjYWNoZS4KLSAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHBhdGggb2YgdGhlIGJpdG1hcAotICAgICAqIEBwYXJhbSBibXAgdGhlIEJpdG1hcCBvYmplY3QKLSAgICAgKiBAcGFyYW0gcHJvamVjdEtleSB0aGUga2V5IG9mIHRoZSBwcm9qZWN0LCBvciBudWxsIHRvIHB1dCB0aGUgYml0bWFwIGluIHRoZSBmcmFtZXdvcmsgY2FjaGUuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIHNldENhY2hlZEJpdG1hcChTdHJpbmcgdmFsdWUsIEJpdG1hcCBibXAsIE9iamVjdCBwcm9qZWN0S2V5KSB7Ci0gICAgICAgIGlmIChwcm9qZWN0S2V5ICE9IG51bGwpIHsKLSAgICAgICAgICAgIE1hcDxTdHJpbmcsIFNvZnRSZWZlcmVuY2U8Qml0bWFwPj4gbWFwID0gc1Byb2plY3RCaXRtYXBDYWNoZS5nZXQocHJvamVjdEtleSk7Ci0KLSAgICAgICAgICAgIGlmIChtYXAgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIG1hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgU29mdFJlZmVyZW5jZTxCaXRtYXA+PigpOwotICAgICAgICAgICAgICAgIHNQcm9qZWN0Qml0bWFwQ2FjaGUucHV0KHByb2plY3RLZXksIG1hcCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1hcC5wdXQodmFsdWUsIG5ldyBTb2Z0UmVmZXJlbmNlPEJpdG1hcD4oYm1wKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzRnJhbWV3b3JrQml0bWFwQ2FjaGUucHV0KHZhbHVlLCBuZXcgU29mdFJlZmVyZW5jZTxCaXRtYXA+KGJtcCkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgOSBwYXRjaCBjaHVuayBmb3IgYSBzcGVjaWZpYyBwYXRoLCBmcm9tIGEgc3BlY2lmaWMgcHJvamVjdCBjYWNoZSwgb3IgZnJvbSB0aGUKLSAgICAgKiBmcmFtZXdvcmsgY2FjaGUuCi0gICAgICogQHBhcmFtIHZhbHVlIHRoZSBwYXRoIG9mIHRoZSA5IHBhdGNoCi0gICAgICogQHBhcmFtIHByb2plY3RLZXkgdGhlIGtleSBvZiB0aGUgcHJvamVjdCwgb3IgbnVsbCB0byBxdWVyeSB0aGUgZnJhbWV3b3JrIGNhY2hlLgotICAgICAqIEByZXR1cm4gdGhlIGNhY2hlZCA5IHBhdGNoIG9yIG51bGwgaWYgbm90IGZvdW5kLgotICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgTmluZVBhdGNoQ2h1bmsgZ2V0Q2FjaGVkOVBhdGNoKFN0cmluZyB2YWx1ZSwgT2JqZWN0IHByb2plY3RLZXkpIHsKLSAgICAgICAgaWYgKHByb2plY3RLZXkgIT0gbnVsbCkgewotICAgICAgICAgICAgTWFwPFN0cmluZywgU29mdFJlZmVyZW5jZTxOaW5lUGF0Y2hDaHVuaz4+IG1hcCA9IHNQcm9qZWN0OVBhdGNoQ2FjaGUuZ2V0KHByb2plY3RLZXkpOwotCi0gICAgICAgICAgICBpZiAobWFwICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBTb2Z0UmVmZXJlbmNlPE5pbmVQYXRjaENodW5rPiByZWYgPSBtYXAuZ2V0KHZhbHVlKTsKLSAgICAgICAgICAgICAgICBpZiAocmVmICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZi5nZXQoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBTb2Z0UmVmZXJlbmNlPE5pbmVQYXRjaENodW5rPiByZWYgPSBzRnJhbWV3b3JrOVBhdGNoQ2FjaGUuZ2V0KHZhbHVlKTsKLSAgICAgICAgICAgIGlmIChyZWYgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJldHVybiByZWYuZ2V0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBTZXRzIGEgOSBwYXRjaCBjaHVuayBpbiBhIHByb2plY3QgY2FjaGUgb3IgaW4gdGhlIGZyYW1ld29yayBjYWNoZS4KLSAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHBhdGggb2YgdGhlIDkgcGF0Y2gKLSAgICAgKiBAcGFyYW0gbmluZVBhdGNoIHRoZSA5IHBhdGNoIG9iamVjdAotICAgICAqIEBwYXJhbSBwcm9qZWN0S2V5IHRoZSBrZXkgb2YgdGhlIHByb2plY3QsIG9yIG51bGwgdG8gcHV0IHRoZSBiaXRtYXAgaW4gdGhlIGZyYW1ld29yayBjYWNoZS4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0Q2FjaGVkOVBhdGNoKFN0cmluZyB2YWx1ZSwgTmluZVBhdGNoQ2h1bmsgbmluZVBhdGNoLCBPYmplY3QgcHJvamVjdEtleSkgewotICAgICAgICBpZiAocHJvamVjdEtleSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBNYXA8U3RyaW5nLCBTb2Z0UmVmZXJlbmNlPE5pbmVQYXRjaENodW5rPj4gbWFwID0gc1Byb2plY3Q5UGF0Y2hDYWNoZS5nZXQocHJvamVjdEtleSk7Ci0KLSAgICAgICAgICAgIGlmIChtYXAgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIG1hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgU29mdFJlZmVyZW5jZTxOaW5lUGF0Y2hDaHVuaz4+KCk7Ci0gICAgICAgICAgICAgICAgc1Byb2plY3Q5UGF0Y2hDYWNoZS5wdXQocHJvamVjdEtleSwgbWFwKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbWFwLnB1dCh2YWx1ZSwgbmV3IFNvZnRSZWZlcmVuY2U8TmluZVBhdGNoQ2h1bms+KG5pbmVQYXRjaCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc0ZyYW1ld29yazlQYXRjaENhY2hlLnB1dCh2YWx1ZSwgbmV3IFNvZnRSZWZlcmVuY2U8TmluZVBhdGNoQ2h1bms+KG5pbmVQYXRjaCkpOwotICAgICAgICB9Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9CcmlkZ2VDb25zdGFudHMuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvQnJpZGdlQ29uc3RhbnRzLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViOWU3ZjEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9CcmlkZ2VDb25zdGFudHMuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2U7Ci0KLS8qKgotICogQ29uc3RhbnQgZGVmaW5pdGlvbiBjbGFzcy48YnI+Ci0gKiA8YnI+Ci0gKiBNb3N0IGNvbnN0YW50cyBoYXZlIGEgcHJlZml4IGRlZmluaW5nIHRoZSBjb250ZW50LgotICogPHVsPgotICogPGxpPjxjb2RlPldTXzwvY29kZT4gV29ya3NwYWNlIHBhdGggY29uc3RhbnQuIFRob3NlIGFyZSBhYnNvbHV0ZSBwYXRocywKLSAqIGZyb20gdGhlIHByb2plY3Qgcm9vdC48L2xpPgotICogPGxpPjxjb2RlPk9TXzwvY29kZT4gT1MgcGF0aCBjb25zdGFudC4gVGhlc2UgcGF0aHMgYXJlIGRpZmZlcmVudCBkZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtLjwvbGk+Ci0gKiA8bGk+PGNvZGU+Rk5fPC9jb2RlPiBGaWxlIG5hbWUgY29uc3RhbnQuPC9saT4KLSAqIDxsaT48Y29kZT5GRF88L2NvZGU+IEZvbGRlciBuYW1lIGNvbnN0YW50LjwvbGk+Ci0gKiA8bGk+PGNvZGU+RVhUXzwvY29kZT4gRmlsZSBleHRlbnNpb24gY29uc3RhbnQuIFRoaXMgZG9lcyBOT1QgaW5jbHVkZSBhIGRvdC48L2xpPgotICogPGxpPjxjb2RlPkRPVF88L2NvZGU+IEZpbGUgZXh0ZW5zaW9uIGNvbnN0YW50LiBUaGlzIHN0YXJ0IHdpdGggYSBkb3QuPC9saT4KLSAqIDxsaT48Y29kZT5SRV88L2NvZGU+IFJlZ2V4cCBjb25zdGFudC48L2xpPgotICogPGxpPjxjb2RlPk5TXzwvY29kZT4gTmFtZXNwYWNlIGNvbnN0YW50LjwvbGk+Ci0gKiA8bGk+PGNvZGU+Q0xBU1NfPC9jb2RlPiBGdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZS48L2xpPgotICogPC91bD4KLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBCcmlkZ2VDb25zdGFudHMgewotCi0gICAgLyoqIE5hbWVzcGFjZSBmb3IgdGhlIHJlc291cmNlIFhNTCAqLwotICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgU3RyaW5nIE5TX1JFU09VUkNFUyA9ICJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiOwotCi0gICAgLyoqIEFwcCBhdXRvIG5hbWVzcGFjZSAqLwotICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgU3RyaW5nIE5TX0FQUF9SRVNfQVVUTyA9ICJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzLWF1dG8iOwotCi0gICAgcHVibGljIGZpbmFsIHN0YXRpYyBTdHJpbmcgUiA9ICJjb20uYW5kcm9pZC5pbnRlcm5hbC5SIjsKLQotCi0gICAgcHVibGljIGZpbmFsIHN0YXRpYyBTdHJpbmcgTUFUQ0hfUEFSRU5UID0gIm1hdGNoX3BhcmVudCI7Ci0gICAgcHVibGljIGZpbmFsIHN0YXRpYyBTdHJpbmcgRklMTF9QQVJFTlQgPSAiZmlsbF9wYXJlbnQiOwotICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgU3RyaW5nIFdSQVBfQ09OVEVOVCA9ICJ3cmFwX2NvbnRlbnQiOwotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9CcmlkZ2VSZW5kZXJTZXNzaW9uLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL0JyaWRnZVJlbmRlclNlc3Npb24uamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjlmNGIzYS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL0JyaWRnZVJlbmRlclNlc3Npb24uamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE5NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlOwotCi1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLklBbmltYXRpb25MaXN0ZW5lcjsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuSUxheW91dFB1bGxQYXJzZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlbmRlclBhcmFtczsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVuZGVyU2Vzc2lvbjsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVzdWx0OwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5WaWV3SW5mbzsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuUmVuZGVyU2Vzc2lvbkltcGw7Ci0KLWltcG9ydCBhbmRyb2lkLnZpZXcuVmlldzsKLWltcG9ydCBhbmRyb2lkLnZpZXcuVmlld0dyb3VwOwotCi1pbXBvcnQgamF2YS5hd3QuaW1hZ2UuQnVmZmVyZWRJbWFnZTsKLWltcG9ydCBqYXZhLnV0aWwuTGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuTWFwOwotCi0vKioKLSAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHtAbGluayBSZW5kZXJTZXNzaW9ufS4KLSAqCi0gKiBUaGlzIGlzIGEgcHJldHR5IGJhc2ljIGNsYXNzIHRoYXQgZG9lcyBhbG1vc3Qgbm90aGluZy4gQWxsIG9mIHRoZSB3b3JrIGlzIGRvbmUgaW4KLSAqIHtAbGluayBSZW5kZXJTZXNzaW9uSW1wbH0uCi0gKgotICovCi1wdWJsaWMgY2xhc3MgQnJpZGdlUmVuZGVyU2Vzc2lvbiBleHRlbmRzIFJlbmRlclNlc3Npb24gewotCi0gICAgcHJpdmF0ZSBmaW5hbCBSZW5kZXJTZXNzaW9uSW1wbCBtU2Vzc2lvbjsKLSAgICBwcml2YXRlIFJlc3VsdCBtTGFzdFJlc3VsdDsKLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBSZXN1bHQgZ2V0UmVzdWx0KCkgewotICAgICAgICByZXR1cm4gbUxhc3RSZXN1bHQ7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEJ1ZmZlcmVkSW1hZ2UgZ2V0SW1hZ2UoKSB7Ci0gICAgICAgIHJldHVybiBtU2Vzc2lvbi5nZXRJbWFnZSgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGlzQWxwaGFDaGFubmVsSW1hZ2UoKSB7Ci0gICAgICAgIHJldHVybiBtU2Vzc2lvbi5pc0FscGhhQ2hhbm5lbEltYWdlKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIExpc3Q8Vmlld0luZm8+IGdldFJvb3RWaWV3cygpIHsKLSAgICAgICAgcmV0dXJuIG1TZXNzaW9uLmdldFZpZXdJbmZvcygpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBNYXA8U3RyaW5nLCBTdHJpbmc+IGdldERlZmF1bHRQcm9wZXJ0aWVzKE9iamVjdCB2aWV3T2JqZWN0KSB7Ci0gICAgICAgIHJldHVybiBtU2Vzc2lvbi5nZXREZWZhdWx0UHJvcGVydGllcyh2aWV3T2JqZWN0KTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgUmVzdWx0IGdldFByb3BlcnR5KE9iamVjdCBvYmplY3RWaWV3LCBTdHJpbmcgcHJvcGVydHlOYW1lKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIHN1cGVyLmdldFByb3BlcnR5KG9iamVjdFZpZXcsIHByb3BlcnR5TmFtZSk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFJlc3VsdCBzZXRQcm9wZXJ0eShPYmplY3Qgb2JqZWN0VmlldywgU3RyaW5nIHByb3BlcnR5TmFtZSwgU3RyaW5nIHByb3BlcnR5VmFsdWUpIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gc3VwZXIuc2V0UHJvcGVydHkob2JqZWN0VmlldywgcHJvcGVydHlOYW1lLCBwcm9wZXJ0eVZhbHVlKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgUmVzdWx0IHJlbmRlcihsb25nIHRpbWVvdXQpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIEJyaWRnZS5wcmVwYXJlVGhyZWFkKCk7Ci0gICAgICAgICAgICBtTGFzdFJlc3VsdCA9IG1TZXNzaW9uLmFjcXVpcmUodGltZW91dCk7Ci0gICAgICAgICAgICBpZiAobUxhc3RSZXN1bHQuaXNTdWNjZXNzKCkpIHsKLSAgICAgICAgICAgICAgICBtTGFzdFJlc3VsdCA9IG1TZXNzaW9uLnJlbmRlcihmYWxzZSAvKmZyZXNoUmVuZGVyKi8pOwotICAgICAgICAgICAgfQotICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAgICAgbVNlc3Npb24ucmVsZWFzZSgpOwotICAgICAgICAgICAgQnJpZGdlLmNsZWFudXBUaHJlYWQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBtTGFzdFJlc3VsdDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgUmVzdWx0IGFuaW1hdGUoT2JqZWN0IHRhcmdldE9iamVjdCwgU3RyaW5nIGFuaW1hdGlvbk5hbWUsCi0gICAgICAgICAgICBib29sZWFuIGlzRnJhbWV3b3JrQW5pbWF0aW9uLCBJQW5pbWF0aW9uTGlzdGVuZXIgbGlzdGVuZXIpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIEJyaWRnZS5wcmVwYXJlVGhyZWFkKCk7Ci0gICAgICAgICAgICBtTGFzdFJlc3VsdCA9IG1TZXNzaW9uLmFjcXVpcmUoUmVuZGVyUGFyYW1zLkRFRkFVTFRfVElNRU9VVCk7Ci0gICAgICAgICAgICBpZiAobUxhc3RSZXN1bHQuaXNTdWNjZXNzKCkpIHsKLSAgICAgICAgICAgICAgICBtTGFzdFJlc3VsdCA9IG1TZXNzaW9uLmFuaW1hdGUodGFyZ2V0T2JqZWN0LCBhbmltYXRpb25OYW1lLCBpc0ZyYW1ld29ya0FuaW1hdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVyKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBmaW5hbGx5IHsKLSAgICAgICAgICAgIG1TZXNzaW9uLnJlbGVhc2UoKTsKLSAgICAgICAgICAgIEJyaWRnZS5jbGVhbnVwVGhyZWFkKCk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbUxhc3RSZXN1bHQ7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFJlc3VsdCBpbnNlcnRDaGlsZChPYmplY3QgcGFyZW50VmlldywgSUxheW91dFB1bGxQYXJzZXIgY2hpbGRYbWwsIGludCBpbmRleCwKLSAgICAgICAgICAgIElBbmltYXRpb25MaXN0ZW5lciBsaXN0ZW5lcikgewotICAgICAgICBpZiAocGFyZW50VmlldyBpbnN0YW5jZW9mIFZpZXdHcm91cCA9PSBmYWxzZSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicGFyZW50VmlldyBpcyBub3QgYSBWaWV3R3JvdXAiKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBCcmlkZ2UucHJlcGFyZVRocmVhZCgpOwotICAgICAgICAgICAgbUxhc3RSZXN1bHQgPSBtU2Vzc2lvbi5hY3F1aXJlKFJlbmRlclBhcmFtcy5ERUZBVUxUX1RJTUVPVVQpOwotICAgICAgICAgICAgaWYgKG1MYXN0UmVzdWx0LmlzU3VjY2VzcygpKSB7Ci0gICAgICAgICAgICAgICAgbUxhc3RSZXN1bHQgPSBtU2Vzc2lvbi5pbnNlcnRDaGlsZCgoVmlld0dyb3VwKSBwYXJlbnRWaWV3LCBjaGlsZFhtbCwgaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgICBtU2Vzc2lvbi5yZWxlYXNlKCk7Ci0gICAgICAgICAgICBCcmlkZ2UuY2xlYW51cFRocmVhZCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG1MYXN0UmVzdWx0OwotICAgIH0KLQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFJlc3VsdCBtb3ZlQ2hpbGQoT2JqZWN0IHBhcmVudFZpZXcsIE9iamVjdCBjaGlsZFZpZXcsIGludCBpbmRleCwKLSAgICAgICAgICAgIE1hcDxTdHJpbmcsIFN0cmluZz4gbGF5b3V0UGFyYW1zLCBJQW5pbWF0aW9uTGlzdGVuZXIgbGlzdGVuZXIpIHsKLSAgICAgICAgaWYgKHBhcmVudFZpZXcgaW5zdGFuY2VvZiBWaWV3R3JvdXAgPT0gZmFsc2UpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInBhcmVudFZpZXcgaXMgbm90IGEgVmlld0dyb3VwIik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGNoaWxkVmlldyBpbnN0YW5jZW9mIFZpZXcgPT0gZmFsc2UpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNoaWxkVmlldyBpcyBub3QgYSBWaWV3Iik7Ci0gICAgICAgIH0KLQotICAgICAgICB0cnkgewotICAgICAgICAgICAgQnJpZGdlLnByZXBhcmVUaHJlYWQoKTsKLSAgICAgICAgICAgIG1MYXN0UmVzdWx0ID0gbVNlc3Npb24uYWNxdWlyZShSZW5kZXJQYXJhbXMuREVGQVVMVF9USU1FT1VUKTsKLSAgICAgICAgICAgIGlmIChtTGFzdFJlc3VsdC5pc1N1Y2Nlc3MoKSkgewotICAgICAgICAgICAgICAgIG1MYXN0UmVzdWx0ID0gbVNlc3Npb24ubW92ZUNoaWxkKChWaWV3R3JvdXApIHBhcmVudFZpZXcsIChWaWV3KSBjaGlsZFZpZXcsIGluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0UGFyYW1zLCBsaXN0ZW5lcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgICBtU2Vzc2lvbi5yZWxlYXNlKCk7Ci0gICAgICAgICAgICBCcmlkZ2UuY2xlYW51cFRocmVhZCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG1MYXN0UmVzdWx0OwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBSZXN1bHQgcmVtb3ZlQ2hpbGQoT2JqZWN0IGNoaWxkVmlldywgSUFuaW1hdGlvbkxpc3RlbmVyIGxpc3RlbmVyKSB7Ci0gICAgICAgIGlmIChjaGlsZFZpZXcgaW5zdGFuY2VvZiBWaWV3ID09IGZhbHNlKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjaGlsZFZpZXcgaXMgbm90IGEgVmlldyIpOwotICAgICAgICB9Ci0KLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIEJyaWRnZS5wcmVwYXJlVGhyZWFkKCk7Ci0gICAgICAgICAgICBtTGFzdFJlc3VsdCA9IG1TZXNzaW9uLmFjcXVpcmUoUmVuZGVyUGFyYW1zLkRFRkFVTFRfVElNRU9VVCk7Ci0gICAgICAgICAgICBpZiAobUxhc3RSZXN1bHQuaXNTdWNjZXNzKCkpIHsKLSAgICAgICAgICAgICAgICBtTGFzdFJlc3VsdCA9IG1TZXNzaW9uLnJlbW92ZUNoaWxkKChWaWV3KSBjaGlsZFZpZXcsIGxpc3RlbmVyKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBmaW5hbGx5IHsKLSAgICAgICAgICAgIG1TZXNzaW9uLnJlbGVhc2UoKTsKLSAgICAgICAgICAgIEJyaWRnZS5jbGVhbnVwVGhyZWFkKCk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbUxhc3RSZXN1bHQ7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgZGlzcG9zZSgpIHsKLSAgICB9Ci0KLSAgICAvKnBhY2thZ2UqLyBCcmlkZ2VSZW5kZXJTZXNzaW9uKFJlbmRlclNlc3Npb25JbXBsIHNjZW5lLCBSZXN1bHQgbGFzdFJlc3VsdCkgewotICAgICAgICBtU2Vzc2lvbiA9IHNjZW5lOwotICAgICAgICBpZiAoc2NlbmUgIT0gbnVsbCkgewotICAgICAgICAgICAgbVNlc3Npb24uc2V0U2NlbmUodGhpcyk7Ci0gICAgICAgIH0KLSAgICAgICAgbUxhc3RSZXN1bHQgPSBsYXN0UmVzdWx0OwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvTW9ja1ZpZXcuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvTW9ja1ZpZXcuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Q1MGIyYS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL01vY2tWaWV3LmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlOwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5DYW52YXM7Ci1pbXBvcnQgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldDsKLWltcG9ydCBhbmRyb2lkLnZpZXcuR3Jhdml0eTsKLWltcG9ydCBhbmRyb2lkLndpZGdldC5UZXh0VmlldzsKLQotLyoqCi0gKiBCYXNlIGNsYXNzIGZvciBtb2NrZWQgdmlld3MuCi0gKgotICogVE9ETzogaW1wbGVtZW50IG9uRHJhdyBhbmQgZHJhdyBhIHJlY3RhbmdsZSBpbiBhIHJhbmRvbSBjb2xvciB3aXRoIHRoZSBuYW1lIG9mIHRoZSBjbGFzcwotICogKG9yIGJldHRlciB0aGUgaWQgb2YgdGhlIHZpZXcpLgotICovCi1wdWJsaWMgY2xhc3MgTW9ja1ZpZXcgZXh0ZW5kcyBUZXh0VmlldyB7Ci0KLSAgICBwdWJsaWMgTW9ja1ZpZXcoQ29udGV4dCBjb250ZXh0LCBBdHRyaWJ1dGVTZXQgYXR0cnMsIGludCBkZWZTdHlsZSkgewotICAgICAgICBzdXBlcihjb250ZXh0LCBhdHRycywgZGVmU3R5bGUpOwotCi0gICAgICAgIHNldFRleHQodGhpcy5nZXRDbGFzcygpLmdldFNpbXBsZU5hbWUoKSk7Ci0gICAgICAgIHNldFRleHRDb2xvcigweEZGMDAwMDAwKTsKLSAgICAgICAgc2V0R3Jhdml0eShHcmF2aXR5LkNFTlRFUik7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgb25EcmF3KENhbnZhcyBjYW52YXMpIHsKLSAgICAgICAgY2FudmFzLmRyYXdBUkdCKDB4RkYsIDB4N0YsIDB4N0YsIDB4N0YpOwotCi0gICAgICAgIHN1cGVyLm9uRHJhdyhjYW52YXMpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYW5kcm9pZC9CcmlkZ2VDb250ZW50UHJvdmlkZXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYW5kcm9pZC9CcmlkZ2VDb250ZW50UHJvdmlkZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDE3NDBiMS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2FuZHJvaWQvQnJpZGdlQ29udGVudFByb3ZpZGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5hbmRyb2lkOwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRlbnRQcm92aWRlck9wZXJhdGlvbjsKLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGVudFByb3ZpZGVyUmVzdWx0OwotaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZW50VmFsdWVzOwotaW1wb3J0IGFuZHJvaWQuY29udGVudC5JQ29udGVudFByb3ZpZGVyOwotaW1wb3J0IGFuZHJvaWQuY29udGVudC5PcGVyYXRpb25BcHBsaWNhdGlvbkV4Y2VwdGlvbjsKLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLkFzc2V0RmlsZURlc2NyaXB0b3I7Ci1pbXBvcnQgYW5kcm9pZC5kYXRhYmFzZS5DdXJzb3I7Ci1pbXBvcnQgYW5kcm9pZC5uZXQuVXJpOwotaW1wb3J0IGFuZHJvaWQub3MuQnVuZGxlOwotaW1wb3J0IGFuZHJvaWQub3MuSUJpbmRlcjsKLWltcG9ydCBhbmRyb2lkLm9zLklDYW5jZWxsYXRpb25TaWduYWw7Ci1pbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWxGaWxlRGVzY3JpcHRvcjsKLWltcG9ydCBhbmRyb2lkLm9zLlJlbW90ZUV4Y2VwdGlvbjsKLQotaW1wb3J0IGphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uOwotaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7Ci0KLS8qKgotICogTW9jayBpbXBsZW1lbnRhdGlvbiBvZiB7QGxpbmsgSUNvbnRlbnRQcm92aWRlcn0uCi0gKgotICogVE9ETzogbmV2ZXIgcmV0dXJuIG51bGwgd2hlbiB0aGUgbWV0aG9kIGlzIG5vdCBzdXBwb3NlZCB0by4gUmV0dXJuIGZha2UgZGF0YSBpbnN0ZWFkLgotICovCi1wdWJsaWMgZmluYWwgY2xhc3MgQnJpZGdlQ29udGVudFByb3ZpZGVyIGltcGxlbWVudHMgSUNvbnRlbnRQcm92aWRlciB7Ci0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIENvbnRlbnRQcm92aWRlclJlc3VsdFtdIGFwcGx5QmF0Y2goU3RyaW5nIGNhbGxpbmdQYWNrYWdlLAotICAgICAgICAgICAgQXJyYXlMaXN0PENvbnRlbnRQcm92aWRlck9wZXJhdGlvbj4gYXJnMCkKLSAgICAgICAgICAgIHRocm93cyBSZW1vdGVFeGNlcHRpb24sIE9wZXJhdGlvbkFwcGxpY2F0aW9uRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGJ1bGtJbnNlcnQoU3RyaW5nIGNhbGxpbmdQYWNrYWdlLCBVcmkgYXJnMCwgQ29udGVudFZhbHVlc1tdIGFyZzEpCi0gICAgICAgICAgICB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQnVuZGxlIGNhbGwoU3RyaW5nIGNhbGxpbmdQYWNrYWdlLCBTdHJpbmcgYXJnMCwgU3RyaW5nIGFyZzEsIEJ1bmRsZSBhcmcyKQotICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBkZWxldGUoU3RyaW5nIGNhbGxpbmdQYWNrYWdlLCBVcmkgYXJnMCwgU3RyaW5nIGFyZzEsIFN0cmluZ1tdIGFyZzIpCi0gICAgICAgICAgICB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoVXJpIGFyZzApIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBVcmkgaW5zZXJ0KFN0cmluZyBjYWxsaW5nUGFja2FnZSwgVXJpIGFyZzAsIENvbnRlbnRWYWx1ZXMgYXJnMSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEFzc2V0RmlsZURlc2NyaXB0b3Igb3BlbkFzc2V0RmlsZSgKLSAgICAgICAgICAgIFN0cmluZyBjYWxsaW5nUGFja2FnZSwgVXJpIGFyZzAsIFN0cmluZyBhcmcxLCBJQ2FuY2VsbGF0aW9uU2lnbmFsIHNpZ25hbCkKLSAgICAgICAgICAgIHRocm93cyBSZW1vdGVFeGNlcHRpb24sIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFBhcmNlbEZpbGVEZXNjcmlwdG9yIG9wZW5GaWxlKAotICAgICAgICAgICAgU3RyaW5nIGNhbGxpbmdQYWNrYWdlLCBVcmkgYXJnMCwgU3RyaW5nIGFyZzEsIElDYW5jZWxsYXRpb25TaWduYWwgc2lnbmFsKQotICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiwgRmlsZU5vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQ3Vyc29yIHF1ZXJ5KFN0cmluZyBjYWxsaW5nUGFja2FnZSwgVXJpIGFyZzAsIFN0cmluZ1tdIGFyZzEsIFN0cmluZyBhcmcyLCBTdHJpbmdbXSBhcmczLAotICAgICAgICAgICAgU3RyaW5nIGFyZzQsIElDYW5jZWxsYXRpb25TaWduYWwgYXJnNSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCB1cGRhdGUoU3RyaW5nIGNhbGxpbmdQYWNrYWdlLCBVcmkgYXJnMCwgQ29udGVudFZhbHVlcyBhcmcxLCBTdHJpbmcgYXJnMiwKLSAgICAgICAgICAgIFN0cmluZ1tdIGFyZzMpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBJQmluZGVyIGFzQmluZGVyKCkgewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTdHJlYW1UeXBlcyhVcmkgYXJnMCwgU3RyaW5nIGFyZzEpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBBc3NldEZpbGVEZXNjcmlwdG9yIG9wZW5UeXBlZEFzc2V0RmlsZShTdHJpbmcgY2FsbGluZ1BhY2thZ2UsIFVyaSBhcmcwLCBTdHJpbmcgYXJnMSwKLSAgICAgICAgICAgIEJ1bmRsZSBhcmcyLCBJQ2FuY2VsbGF0aW9uU2lnbmFsIHNpZ25hbCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiwgRmlsZU5vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgSUNhbmNlbGxhdGlvblNpZ25hbCBjcmVhdGVDYW5jZWxsYXRpb25TaWduYWwoKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgVXJpIGNhbm9uaWNhbGl6ZShTdHJpbmcgY2FsbGluZ1BrZywgVXJpIHVyaSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBVcmkgdW5jYW5vbmljYWxpemUoU3RyaW5nIGNhbGxpbmdQa2csIFVyaSB1cmkpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2FuZHJvaWQvQnJpZGdlQ29udGVudFJlc29sdmVyLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2FuZHJvaWQvQnJpZGdlQ29udGVudFJlc29sdmVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkMjU5ZDcuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9hbmRyb2lkL0JyaWRnZUNvbnRlbnRSZXNvbHZlci5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTIwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZDsKLQotaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZW50UmVzb2x2ZXI7Ci1pbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7Ci1pbXBvcnQgYW5kcm9pZC5jb250ZW50LklDb250ZW50UHJvdmlkZXI7Ci1pbXBvcnQgYW5kcm9pZC5kYXRhYmFzZS5Db250ZW50T2JzZXJ2ZXI7Ci1pbXBvcnQgYW5kcm9pZC5uZXQuVXJpOwotaW1wb3J0IGFuZHJvaWQub3MuQnVuZGxlOwotCi0vKioKLSAqIEEgbW9jayBjb250ZW50IHJlc29sdmVyIGZvciB0aGUgTGF5b3V0TGliIEJyaWRnZS4KLSAqIDxwLz4KLSAqIEl0IHdvbid0IHNlcnZlIGFueSBhY3R1YWwgZGF0YSBidXQgaXQncyBnb29kIGVub3VnaCBmb3IgYWxsCi0gKiB0aGUgd2lkZ2V0cyB3aGljaCBleHBlY3QgdG8gaGF2ZSBhIGNvbnRlbnQgcmVzb2x2ZXIgYXZhaWxhYmxlIHZpYQotICoge0BsaW5rIEJyaWRnZUNvbnRleHQjZ2V0Q29udGVudFJlc29sdmVyKCl9LgotICovCi1wdWJsaWMgY2xhc3MgQnJpZGdlQ29udGVudFJlc29sdmVyIGV4dGVuZHMgQ29udGVudFJlc29sdmVyIHsKLQotICAgIHByaXZhdGUgQnJpZGdlQ29udGVudFByb3ZpZGVyIG1Qcm92aWRlciA9IG51bGw7Ci0KLSAgICBwdWJsaWMgQnJpZGdlQ29udGVudFJlc29sdmVyKENvbnRleHQgY29udGV4dCkgewotICAgICAgICBzdXBlcihjb250ZXh0KTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgSUNvbnRlbnRQcm92aWRlciBhY3F1aXJlUHJvdmlkZXIoQ29udGV4dCBjLCBTdHJpbmcgbmFtZSkgewotICAgICAgICBpZiAobVByb3ZpZGVyID09IG51bGwpIHsKLSAgICAgICAgICAgIG1Qcm92aWRlciA9IG5ldyBCcmlkZ2VDb250ZW50UHJvdmlkZXIoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBtUHJvdmlkZXI7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIElDb250ZW50UHJvdmlkZXIgYWNxdWlyZUV4aXN0aW5nUHJvdmlkZXIoQ29udGV4dCBjLCBTdHJpbmcgbmFtZSkgewotICAgICAgICBpZiAobVByb3ZpZGVyID09IG51bGwpIHsKLSAgICAgICAgICAgIG1Qcm92aWRlciA9IG5ldyBCcmlkZ2VDb250ZW50UHJvdmlkZXIoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBtUHJvdmlkZXI7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gcmVsZWFzZVByb3ZpZGVyKElDb250ZW50UHJvdmlkZXIgaWNwKSB7Ci0gICAgICAgIC8vIGlnbm9yZQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHJvdGVjdGVkIElDb250ZW50UHJvdmlkZXIgYWNxdWlyZVVuc3RhYmxlUHJvdmlkZXIoQ29udGV4dCBjLCBTdHJpbmcgbmFtZSkgewotICAgICAgICByZXR1cm4gYWNxdWlyZVByb3ZpZGVyKGMsIG5hbWUpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIHJlbGVhc2VVbnN0YWJsZVByb3ZpZGVyKElDb250ZW50UHJvdmlkZXIgaWNwKSB7Ci0gICAgICAgIHJldHVybiByZWxlYXNlUHJvdmlkZXIoaWNwKTsKLSAgICB9Ci0KLSAgICAvKiogQGhpZGUgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB1bnN0YWJsZVByb3ZpZGVyRGllZChJQ29udGVudFByb3ZpZGVyIGljcCkgewotICAgIH0KLQotICAgIC8qKgotICAgICAqIFN0dWIgZm9yIHRoZSBsYXlvdXRsaWIgYnJpZGdlIGNvbnRlbnQgcmVzb2x2ZXIuCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgcmVnaXN0ZXJDb250ZW50T2JzZXJ2ZXIoVXJpIHVyaSwgYm9vbGVhbiBub3RpZnlGb3JEZXNjZW5kZW50cywKLSAgICAgICAgICAgIENvbnRlbnRPYnNlcnZlciBvYnNlcnZlcikgewotICAgICAgICAvLyBwYXNzCi0gICAgfQotCi0gICAgLyoqCi0gICAgICogU3R1YiBmb3IgdGhlIGxheW91dGxpYiBicmlkZ2UgY29udGVudCByZXNvbHZlci4KLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB1bnJlZ2lzdGVyQ29udGVudE9ic2VydmVyKENvbnRlbnRPYnNlcnZlciBvYnNlcnZlcikgewotICAgICAgICAvLyBwYXNzCi0gICAgfQotCi0gICAgLyoqCi0gICAgICogU3R1YiBmb3IgdGhlIGxheW91dGxpYiBicmlkZ2UgY29udGVudCByZXNvbHZlci4KLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBub3RpZnlDaGFuZ2UoVXJpIHVyaSwgQ29udGVudE9ic2VydmVyIG9ic2VydmVyLCBib29sZWFuIHN5bmNUb05ldHdvcmspIHsKLSAgICAgICAgLy8gcGFzcwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFN0dWIgZm9yIHRoZSBsYXlvdXRsaWIgYnJpZGdlIGNvbnRlbnQgcmVzb2x2ZXIuCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc3RhcnRTeW5jKFVyaSB1cmksIEJ1bmRsZSBleHRyYXMpIHsKLSAgICAgICAgLy8gcGFzcwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFN0dWIgZm9yIHRoZSBsYXlvdXRsaWIgYnJpZGdlIGNvbnRlbnQgcmVzb2x2ZXIuCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgY2FuY2VsU3luYyhVcmkgdXJpKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2FuZHJvaWQvQnJpZGdlQ29udGV4dC5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9hbmRyb2lkL0JyaWRnZUNvbnRleHQuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjkyOTRhYi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2FuZHJvaWQvQnJpZGdlQ29udGV4dC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTQzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmFuZHJvaWQ7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuSUxheW91dFB1bGxQYXJzZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLklQcm9qZWN0Q2FsbGJhY2s7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkxheW91dExvZzsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVuZGVyUmVzb3VyY2VzOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXNvdXJjZVJlZmVyZW5jZTsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVzb3VyY2VWYWx1ZTsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuU3R5bGVSZXNvdXJjZVZhbHVlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlQ29uc3RhbnRzOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC52aWV3LldpbmRvd01hbmFnZXJJbXBsOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5QYXJzZXJGYWN0b3J5OwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5TdGFjazsKLWltcG9ydCBjb20uYW5kcm9pZC5yZXNvdXJjZXMuUmVzb3VyY2VUeXBlOwotaW1wb3J0IGNvbS5hbmRyb2lkLnV0aWwuUGFpcjsKLQotaW1wb3J0IG9yZy54bWxwdWxsLnYxLlhtbFB1bGxQYXJzZXI7Ci1pbXBvcnQgb3JnLnhtbHB1bGwudjEuWG1sUHVsbFBhcnNlckV4Y2VwdGlvbjsKLQotaW1wb3J0IGFuZHJvaWQuY29udGVudC5Ccm9hZGNhc3RSZWNlaXZlcjsKLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29tcG9uZW50TmFtZTsKLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGVudFJlc29sdmVyOwotaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OwotaW1wb3J0IGFuZHJvaWQuY29udGVudC5JbnRlbnQ7Ci1pbXBvcnQgYW5kcm9pZC5jb250ZW50LkludGVudEZpbHRlcjsKLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQuSW50ZW50U2VuZGVyOwotaW1wb3J0IGFuZHJvaWQuY29udGVudC5TZXJ2aWNlQ29ubmVjdGlvbjsKLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQuU2hhcmVkUHJlZmVyZW5jZXM7Ci1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnBtLkFwcGxpY2F0aW9uSW5mbzsKLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQucG0uUGFja2FnZU1hbmFnZXI7Ci1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5Bc3NldE1hbmFnZXI7Ci1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5CcmlkZ2VSZXNvdXJjZXM7Ci1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5CcmlkZ2VUeXBlZEFycmF5OwotaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuQ29uZmlndXJhdGlvbjsKLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLlJlc291cmNlczsKLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLlJlc291cmNlcy5UaGVtZTsKLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLlR5cGVkQXJyYXk7Ci1pbXBvcnQgYW5kcm9pZC5kYXRhYmFzZS5EYXRhYmFzZUVycm9ySGFuZGxlcjsKLWltcG9ydCBhbmRyb2lkLmRhdGFiYXNlLnNxbGl0ZS5TUUxpdGVEYXRhYmFzZTsKLWltcG9ydCBhbmRyb2lkLmRhdGFiYXNlLnNxbGl0ZS5TUUxpdGVEYXRhYmFzZS5DdXJzb3JGYWN0b3J5OwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuRHJhd2FibGU7Ci1pbXBvcnQgYW5kcm9pZC5uZXQuVXJpOwotaW1wb3J0IGFuZHJvaWQub3MuQnVuZGxlOwotaW1wb3J0IGFuZHJvaWQub3MuSGFuZGxlcjsKLWltcG9ydCBhbmRyb2lkLm9zLkxvb3BlcjsKLWltcG9ydCBhbmRyb2lkLm9zLlBvd2VyTWFuYWdlcjsKLWltcG9ydCBhbmRyb2lkLm9zLlVzZXJIYW5kbGU7Ci1pbXBvcnQgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldDsKLWltcG9ydCBhbmRyb2lkLnV0aWwuRGlzcGxheU1ldHJpY3M7Ci1pbXBvcnQgYW5kcm9pZC51dGlsLlR5cGVkVmFsdWU7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LkJyaWRnZUluZmxhdGVyOwotaW1wb3J0IGFuZHJvaWQudmlldy5EaXNwbGF5OwotaW1wb3J0IGFuZHJvaWQudmlldy5EaXNwbGF5QWRqdXN0bWVudHM7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXc7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cDsKLWltcG9ydCBhbmRyb2lkLnZpZXcuV2luZG93TWFuYWdlcjsKLWltcG9ydCBhbmRyb2lkLnZpZXcudGV4dHNlcnZpY2UuVGV4dFNlcnZpY2VzTWFuYWdlcjsKLQotaW1wb3J0IGphdmEuaW8uRmlsZTsKLWltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOwotaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7Ci1pbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7Ci1pbXBvcnQgamF2YS51dGlsLklkZW50aXR5SGFzaE1hcDsKLWltcG9ydCBqYXZhLnV0aWwuTGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuTWFwOwotCi0vKioKLSAqIEN1c3RvbSBpbXBsZW1lbnRhdGlvbiBvZiBDb250ZXh0L0FjdGl2aXR5IHRvIGhhbmRsZSBub24gY29tcGlsZWQgcmVzb3VyY2VzLgotICovCi1wdWJsaWMgZmluYWwgY2xhc3MgQnJpZGdlQ29udGV4dCBleHRlbmRzIENvbnRleHQgewotCi0gICAgcHJpdmF0ZSBSZXNvdXJjZXMgbVN5c3RlbVJlc291cmNlczsKLSAgICBwcml2YXRlIGZpbmFsIEhhc2hNYXA8VmlldywgT2JqZWN0PiBtVmlld0tleU1hcCA9IG5ldyBIYXNoTWFwPFZpZXcsIE9iamVjdD4oKTsKLSAgICBwcml2YXRlIGZpbmFsIE9iamVjdCBtUHJvamVjdEtleTsKLSAgICBwcml2YXRlIGZpbmFsIERpc3BsYXlNZXRyaWNzIG1NZXRyaWNzOwotICAgIHByaXZhdGUgZmluYWwgUmVuZGVyUmVzb3VyY2VzIG1SZW5kZXJSZXNvdXJjZXM7Ci0gICAgcHJpdmF0ZSBmaW5hbCBDb25maWd1cmF0aW9uIG1Db25maWc7Ci0gICAgcHJpdmF0ZSBmaW5hbCBBcHBsaWNhdGlvbkluZm8gbUFwcGxpY2F0aW9uSW5mbzsKLSAgICBwcml2YXRlIGZpbmFsIElQcm9qZWN0Q2FsbGJhY2sgbVByb2plY3RDYWxsYmFjazsKLSAgICBwcml2YXRlIGZpbmFsIFdpbmRvd01hbmFnZXIgbVdpbmRvd01hbmFnZXI7Ci0KLSAgICBwcml2YXRlIFJlc291cmNlcy5UaGVtZSBtVGhlbWU7Ci0KLSAgICBwcml2YXRlIGZpbmFsIE1hcDxPYmplY3QsIE1hcDxTdHJpbmcsIFN0cmluZz4+IG1EZWZhdWx0UHJvcE1hcHMgPQotICAgICAgICBuZXcgSWRlbnRpdHlIYXNoTWFwPE9iamVjdCwgTWFwPFN0cmluZyxTdHJpbmc+PigpOwotCi0gICAgLy8gbWFwcyBmb3IgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGlkIHJlcHJlc2VudGluZyBzdHlsZSBvYmplY3RzIChTdHlsZVJlc291cmNlVmFsdWUpCi0gICAgcHJpdmF0ZSBNYXA8SW50ZWdlciwgU3R5bGVSZXNvdXJjZVZhbHVlPiBtRHluYW1pY0lkVG9TdHlsZU1hcDsKLSAgICBwcml2YXRlIE1hcDxTdHlsZVJlc291cmNlVmFsdWUsIEludGVnZXI+IG1TdHlsZVRvRHluYW1pY0lkTWFwOwotICAgIHByaXZhdGUgaW50IG1EeW5hbWljSWRHZW5lcmF0b3IgPSAweDAxMDMwMDAwOyAvLyBCYXNlIGlkIGZvciBmcmFtZXdvcmsgUi5zdHlsZQotCi0gICAgLy8gY2FjaGUgZm9yIFR5cGVkQXJyYXkgZ2VuZXJhdGVkIGZyb20gSVN0eWxlUmVzb3VyY2VWYWx1ZSBvYmplY3QKLSAgICBwcml2YXRlIE1hcDxpbnRbXSwgTWFwPEludGVnZXIsIFR5cGVkQXJyYXk+PiBtVHlwZWRBcnJheUNhY2hlOwotICAgIHByaXZhdGUgQnJpZGdlSW5mbGF0ZXIgbUJyaWRnZUluZmxhdGVyOwotCi0gICAgcHJpdmF0ZSBCcmlkZ2VDb250ZW50UmVzb2x2ZXIgbUNvbnRlbnRSZXNvbHZlcjsKLQotICAgIHByaXZhdGUgZmluYWwgU3RhY2s8QnJpZGdlWG1sQmxvY2tQYXJzZXI+IG1QYXJzZXJTdGFjayA9IG5ldyBTdGFjazxCcmlkZ2VYbWxCbG9ja1BhcnNlcj4oKTsKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSBwcm9qZWN0S2V5IEFuIE9iamVjdCBpZGVudGlmeWluZyB0aGUgcHJvamVjdC4gVGhpcyBpcyB1c2VkIGZvciB0aGUgY2FjaGUgbWVjaGFuaXNtLgotICAgICAqIEBwYXJhbSBtZXRyaWNzIHRoZSB7QGxpbmsgRGlzcGxheU1ldHJpY3N9LgotICAgICAqIEBwYXJhbSByZW5kZXJSZXNvdXJjZXMgdGhlIGNvbmZpZ3VyZWQgcmVzb3VyY2VzIChib3RoIGZyYW1ld29yayBhbmQgcHJvamVjdHMpIGZvciB0aGlzCi0gICAgICogcmVuZGVyLgotICAgICAqIEBwYXJhbSBwcm9qZWN0Q2FsbGJhY2sKLSAgICAgKiBAcGFyYW0gY29uZmlnIHRoZSBDb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhpcyByZW5kZXIuCi0gICAgICogQHBhcmFtIHRhcmdldFNka1ZlcnNpb24gdGhlIHRhcmdldFNka1ZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLgotICAgICAqLwotICAgIHB1YmxpYyBCcmlkZ2VDb250ZXh0KE9iamVjdCBwcm9qZWN0S2V5LCBEaXNwbGF5TWV0cmljcyBtZXRyaWNzLAotICAgICAgICAgICAgUmVuZGVyUmVzb3VyY2VzIHJlbmRlclJlc291cmNlcywKLSAgICAgICAgICAgIElQcm9qZWN0Q2FsbGJhY2sgcHJvamVjdENhbGxiYWNrLAotICAgICAgICAgICAgQ29uZmlndXJhdGlvbiBjb25maWcsCi0gICAgICAgICAgICBpbnQgdGFyZ2V0U2RrVmVyc2lvbiwKLSAgICAgICAgICAgIGJvb2xlYW4gaGFzUnRsU3VwcG9ydCkgewotICAgICAgICBtUHJvamVjdEtleSA9IHByb2plY3RLZXk7Ci0gICAgICAgIG1NZXRyaWNzID0gbWV0cmljczsKLSAgICAgICAgbVByb2plY3RDYWxsYmFjayA9IHByb2plY3RDYWxsYmFjazsKLQotICAgICAgICBtUmVuZGVyUmVzb3VyY2VzID0gcmVuZGVyUmVzb3VyY2VzOwotICAgICAgICBtQ29uZmlnID0gY29uZmlnOwotCi0gICAgICAgIG1BcHBsaWNhdGlvbkluZm8gPSBuZXcgQXBwbGljYXRpb25JbmZvKCk7Ci0gICAgICAgIG1BcHBsaWNhdGlvbkluZm8udGFyZ2V0U2RrVmVyc2lvbiA9IHRhcmdldFNka1ZlcnNpb247Ci0gICAgICAgIGlmIChoYXNSdGxTdXBwb3J0KSB7Ci0gICAgICAgICAgICBtQXBwbGljYXRpb25JbmZvLmZsYWdzID0gbUFwcGxpY2F0aW9uSW5mby5mbGFncyB8IEFwcGxpY2F0aW9uSW5mby5GTEFHX1NVUFBPUlRTX1JUTDsKLSAgICAgICAgfQotCi0gICAgICAgIG1XaW5kb3dNYW5hZ2VyID0gbmV3IFdpbmRvd01hbmFnZXJJbXBsKG1NZXRyaWNzKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBJbml0aWFsaXplcyB0aGUge0BsaW5rIFJlc291cmNlc30gc2luZ2xldG9uIHRvIGJlIGxpbmtlZCB0byB0aGlzIHtAbGluayBDb250ZXh0fSwgaXRzCi0gICAgICoge0BsaW5rIERpc3BsYXlNZXRyaWNzfSwge0BsaW5rIENvbmZpZ3VyYXRpb259LCBhbmQge0BsaW5rIElQcm9qZWN0Q2FsbGJhY2t9LgotICAgICAqCi0gICAgICogQHNlZSAjZGlzcG9zZVJlc291cmNlcygpCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgaW5pdFJlc291cmNlcygpIHsKLSAgICAgICAgQXNzZXRNYW5hZ2VyIGFzc2V0TWFuYWdlciA9IEFzc2V0TWFuYWdlci5nZXRTeXN0ZW0oKTsKLQotICAgICAgICBtU3lzdGVtUmVzb3VyY2VzID0gQnJpZGdlUmVzb3VyY2VzLmluaXRTeXN0ZW0oCi0gICAgICAgICAgICAgICAgdGhpcywKLSAgICAgICAgICAgICAgICBhc3NldE1hbmFnZXIsCi0gICAgICAgICAgICAgICAgbU1ldHJpY3MsCi0gICAgICAgICAgICAgICAgbUNvbmZpZywKLSAgICAgICAgICAgICAgICBtUHJvamVjdENhbGxiYWNrKTsKLSAgICAgICAgbVRoZW1lID0gbVN5c3RlbVJlc291cmNlcy5uZXdUaGVtZSgpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIERpc3Bvc2VzIHRoZSB7QGxpbmsgUmVzb3VyY2VzfSBzaW5nbGV0b24uCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgZGlzcG9zZVJlc291cmNlcygpIHsKLSAgICAgICAgQnJpZGdlUmVzb3VyY2VzLmRpc3Bvc2VTeXN0ZW0oKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBzZXRCcmlkZ2VJbmZsYXRlcihCcmlkZ2VJbmZsYXRlciBpbmZsYXRlcikgewotICAgICAgICBtQnJpZGdlSW5mbGF0ZXIgPSBpbmZsYXRlcjsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBhZGRWaWV3S2V5KFZpZXcgdmlldywgT2JqZWN0IHZpZXdLZXkpIHsKLSAgICAgICAgbVZpZXdLZXlNYXAucHV0KHZpZXcsIHZpZXdLZXkpOwotICAgIH0KLQotICAgIHB1YmxpYyBPYmplY3QgZ2V0Vmlld0tleShWaWV3IHZpZXcpIHsKLSAgICAgICAgcmV0dXJuIG1WaWV3S2V5TWFwLmdldCh2aWV3KTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgT2JqZWN0IGdldFByb2plY3RLZXkoKSB7Ci0gICAgICAgIHJldHVybiBtUHJvamVjdEtleTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgRGlzcGxheU1ldHJpY3MgZ2V0TWV0cmljcygpIHsKLSAgICAgICAgcmV0dXJuIG1NZXRyaWNzOwotICAgIH0KLQotICAgIHB1YmxpYyBJUHJvamVjdENhbGxiYWNrIGdldFByb2plY3RDYWxsYmFjaygpIHsKLSAgICAgICAgcmV0dXJuIG1Qcm9qZWN0Q2FsbGJhY2s7Ci0gICAgfQotCi0gICAgcHVibGljIFJlbmRlclJlc291cmNlcyBnZXRSZW5kZXJSZXNvdXJjZXMoKSB7Ci0gICAgICAgIHJldHVybiBtUmVuZGVyUmVzb3VyY2VzOwotICAgIH0KLQotICAgIHB1YmxpYyBNYXA8U3RyaW5nLCBTdHJpbmc+IGdldERlZmF1bHRQcm9wTWFwKE9iamVjdCBrZXkpIHsKLSAgICAgICAgcmV0dXJuIG1EZWZhdWx0UHJvcE1hcHMuZ2V0KGtleSk7Ci0gICAgfQotCi0gICAgcHVibGljIENvbmZpZ3VyYXRpb24gZ2V0Q29uZmlndXJhdGlvbigpIHsKLSAgICAgICAgcmV0dXJuIG1Db25maWc7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQWRkcyBhIHBhcnNlciB0byB0aGUgc3RhY2suCi0gICAgICogQHBhcmFtIHBhcnNlciB0aGUgcGFyc2VyIHRvIGFkZC4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBwdXNoUGFyc2VyKEJyaWRnZVhtbEJsb2NrUGFyc2VyIHBhcnNlcikgewotICAgICAgICBpZiAoUGFyc2VyRmFjdG9yeS5MT0dfUEFSU0VSKSB7Ci0gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlBVU0ggIiArIHBhcnNlci5nZXRQYXJzZXIoKS50b1N0cmluZygpKTsKLSAgICAgICAgfQotICAgICAgICBtUGFyc2VyU3RhY2sucHVzaChwYXJzZXIpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlbW92ZXMgdGhlIHBhcnNlciBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjawotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHBvcFBhcnNlcigpIHsKLSAgICAgICAgQnJpZGdlWG1sQmxvY2tQYXJzZXIgcGFyc2VyID0gbVBhcnNlclN0YWNrLnBvcCgpOwotICAgICAgICBpZiAoUGFyc2VyRmFjdG9yeS5MT0dfUEFSU0VSKSB7Ci0gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlBPUEQgIiArIHBhcnNlci5nZXRQYXJzZXIoKS50b1N0cmluZygpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgcGFyc2VyIGF0IHRoZSB0b3AgdGhlIG9mIHRoZSBzdGFjay4KLSAgICAgKiBAcmV0dXJuIGEgcGFyc2VyIG9yIG51bGwuCi0gICAgICovCi0gICAgcHVibGljIEJyaWRnZVhtbEJsb2NrUGFyc2VyIGdldEN1cnJlbnRQYXJzZXIoKSB7Ci0gICAgICAgIHJldHVybiBtUGFyc2VyU3RhY2sucGVlaygpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIHByZXZpb3VzIHBhcnNlci4KLSAgICAgKiBAcmV0dXJuIGEgcGFyc2VyIG9yIG51bGwgaWYgdGhlcmUgaXNuJ3QgYW55IHByZXZpb3VzIHBhcnNlcgotICAgICAqLwotICAgIHB1YmxpYyBCcmlkZ2VYbWxCbG9ja1BhcnNlciBnZXRQcmV2aW91c1BhcnNlcigpIHsKLSAgICAgICAgaWYgKG1QYXJzZXJTdGFjay5zaXplKCkgPCAyKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbVBhcnNlclN0YWNrLmdldChtUGFyc2VyU3RhY2suc2l6ZSgpIC0gMik7Ci0gICAgfQotCi0gICAgcHVibGljIGJvb2xlYW4gcmVzb2x2ZVRoZW1lQXR0cmlidXRlKGludCByZXNpZCwgVHlwZWRWYWx1ZSBvdXRWYWx1ZSwgYm9vbGVhbiByZXNvbHZlUmVmcykgewotICAgICAgICBQYWlyPFJlc291cmNlVHlwZSwgU3RyaW5nPiByZXNvdXJjZUluZm8gPSBCcmlkZ2UucmVzb2x2ZVJlc291cmNlSWQocmVzaWQpOwotICAgICAgICBib29sZWFuIGlzRnJhbWV3b3JrUmVzID0gdHJ1ZTsKLSAgICAgICAgaWYgKHJlc291cmNlSW5mbyA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXNvdXJjZUluZm8gPSBtUHJvamVjdENhbGxiYWNrLnJlc29sdmVSZXNvdXJjZUlkKHJlc2lkKTsKLSAgICAgICAgICAgIGlzRnJhbWV3b3JrUmVzID0gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAocmVzb3VyY2VJbmZvID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIFJlc291cmNlVmFsdWUgdmFsdWUgPSBtUmVuZGVyUmVzb3VyY2VzLmZpbmRJdGVtSW5UaGVtZShyZXNvdXJjZUluZm8uZ2V0U2Vjb25kKCksCi0gICAgICAgICAgICAgICAgaXNGcmFtZXdvcmtSZXMpOwotICAgICAgICBpZiAocmVzb2x2ZVJlZnMpIHsKLSAgICAgICAgICAgIHZhbHVlID0gbVJlbmRlclJlc291cmNlcy5yZXNvbHZlUmVzVmFsdWUodmFsdWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gY2hlY2sgaWYgdGhpcyBpcyBhIHN0eWxlIHJlc291cmNlCi0gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFN0eWxlUmVzb3VyY2VWYWx1ZSkgewotICAgICAgICAgICAgLy8gZ2V0IHRoZSBpZCB0aGF0IHdpbGwgcmVwcmVzZW50IHRoaXMgc3R5bGUuCi0gICAgICAgICAgICBvdXRWYWx1ZS5yZXNvdXJjZUlkID0gZ2V0RHluYW1pY0lkQnlTdHlsZSgoU3R5bGVSZXNvdXJjZVZhbHVlKXZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLQotICAgICAgICBpbnQgYTsKLSAgICAgICAgLy8gaWYgdGhpcyBpcyBhIGZyYW1ld29yayB2YWx1ZS4KLSAgICAgICAgaWYgKHZhbHVlLmlzRnJhbWV3b3JrKCkpIHsKLSAgICAgICAgICAgIC8vIGxvb2sgZm9yIGlkTmFtZSBpbiB0aGUgYW5kcm9pZCBSIGNsYXNzZXMuCi0gICAgICAgICAgICAvLyB1c2UgMCBhIGRlZmF1bHQgcmVzIHZhbHVlIGFzIGl0J3Mgbm90IGEgdmFsaWQgaWQgdmFsdWUuCi0gICAgICAgICAgICBhID0gZ2V0RnJhbWV3b3JrUmVzb3VyY2VWYWx1ZSh2YWx1ZS5nZXRSZXNvdXJjZVR5cGUoKSwgdmFsdWUuZ2V0TmFtZSgpLCAwIC8qZGVmVmFsdWUqLyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBsb29rIGZvciBpZE5hbWUgaW4gdGhlIHByb2plY3QgUiBjbGFzcy4KLSAgICAgICAgICAgIC8vIHVzZSAwIGEgZGVmYXVsdCByZXMgdmFsdWUgYXMgaXQncyBub3QgYSB2YWxpZCBpZCB2YWx1ZS4KLSAgICAgICAgICAgIGEgPSBnZXRQcm9qZWN0UmVzb3VyY2VWYWx1ZSh2YWx1ZS5nZXRSZXNvdXJjZVR5cGUoKSwgdmFsdWUuZ2V0TmFtZSgpLCAwIC8qZGVmVmFsdWUqLyk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoYSAhPSAwKSB7Ci0gICAgICAgICAgICBvdXRWYWx1ZS5yZXNvdXJjZUlkID0gYTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotCi0gICAgcHVibGljIFJlc291cmNlUmVmZXJlbmNlIHJlc29sdmVJZChpbnQgaWQpIHsKLSAgICAgICAgLy8gZmlyc3QgZ2V0IHRoZSBTdHJpbmcgcmVsYXRlZCB0byB0aGlzIGlkIGluIHRoZSBmcmFtZXdvcmsKLSAgICAgICAgUGFpcjxSZXNvdXJjZVR5cGUsIFN0cmluZz4gcmVzb3VyY2VJbmZvID0gQnJpZGdlLnJlc29sdmVSZXNvdXJjZUlkKGlkKTsKLQotICAgICAgICBpZiAocmVzb3VyY2VJbmZvICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VSZWZlcmVuY2UocmVzb3VyY2VJbmZvLmdldFNlY29uZCgpLCB0cnVlKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGRpZG4ndCBmaW5kIGEgbWF0Y2ggaW4gdGhlIGZyYW1ld29yaz8gbG9vayBpbiB0aGUgcHJvamVjdC4KLSAgICAgICAgaWYgKG1Qcm9qZWN0Q2FsbGJhY2sgIT0gbnVsbCkgewotICAgICAgICAgICAgcmVzb3VyY2VJbmZvID0gbVByb2plY3RDYWxsYmFjay5yZXNvbHZlUmVzb3VyY2VJZChpZCk7Ci0KLSAgICAgICAgICAgIGlmIChyZXNvdXJjZUluZm8gIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VSZWZlcmVuY2UocmVzb3VyY2VJbmZvLmdldFNlY29uZCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgUGFpcjxWaWV3LCBCb29sZWFuPiBpbmZsYXRlVmlldyhSZXNvdXJjZVJlZmVyZW5jZSByZXNvdXJjZSwgVmlld0dyb3VwIHBhcmVudCwKLSAgICAgICAgICAgIGJvb2xlYW4gYXR0YWNoVG9Sb290LCBib29sZWFuIHNraXBDYWxsYmFja1BhcnNlcikgewotICAgICAgICBib29sZWFuIGlzUGxhdGZvcm1MYXlvdXQgPSByZXNvdXJjZS5pc0ZyYW1ld29yaygpOwotCi0gICAgICAgIGlmIChpc1BsYXRmb3JtTGF5b3V0ID09IGZhbHNlICYmIHNraXBDYWxsYmFja1BhcnNlciA9PSBmYWxzZSkgewotICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIHByb2plY3QgY2FsbGJhY2sgY2FuIHByb3ZpZGUgdXMgd2l0aCBhIGN1c3RvbSBwYXJzZXIuCi0gICAgICAgICAgICBJTGF5b3V0UHVsbFBhcnNlciBwYXJzZXIgPSBnZXRQYXJzZXIocmVzb3VyY2UpOwotCi0gICAgICAgICAgICBpZiAocGFyc2VyICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBCcmlkZ2VYbWxCbG9ja1BhcnNlciBibG9ja1BhcnNlciA9IG5ldyBCcmlkZ2VYbWxCbG9ja1BhcnNlcihwYXJzZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCByZXNvdXJjZS5pc0ZyYW1ld29yaygpKTsKLSAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICBwdXNoUGFyc2VyKGJsb2NrUGFyc2VyKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBhaXIub2YoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbUJyaWRnZUluZmxhdGVyLmluZmxhdGUoYmxvY2tQYXJzZXIsIHBhcmVudCwgYXR0YWNoVG9Sb290KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsKLSAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAgICAgICAgICAgICBwb3BQYXJzZXIoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBSZXNvdXJjZVZhbHVlIHJlc1ZhbHVlOwotICAgICAgICBpZiAocmVzb3VyY2UgaW5zdGFuY2VvZiBSZXNvdXJjZVZhbHVlKSB7Ci0gICAgICAgICAgICByZXNWYWx1ZSA9IChSZXNvdXJjZVZhbHVlKSByZXNvdXJjZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtTGF5b3V0KSB7Ci0gICAgICAgICAgICAgICAgcmVzVmFsdWUgPSBtUmVuZGVyUmVzb3VyY2VzLmdldEZyYW1ld29ya1Jlc291cmNlKFJlc291cmNlVHlwZS5MQVlPVVQsCi0gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZS5nZXROYW1lKCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICByZXNWYWx1ZSA9IG1SZW5kZXJSZXNvdXJjZXMuZ2V0UHJvamVjdFJlc291cmNlKFJlc291cmNlVHlwZS5MQVlPVVQsCi0gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZS5nZXROYW1lKCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHJlc1ZhbHVlICE9IG51bGwpIHsKLQotICAgICAgICAgICAgRmlsZSB4bWwgPSBuZXcgRmlsZShyZXNWYWx1ZS5nZXRWYWx1ZSgpKTsKLSAgICAgICAgICAgIGlmICh4bWwuaXNGaWxlKCkpIHsKLSAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGNyZWF0ZSBhIHB1bGwgcGFyc2VyIGFyb3VuZCB0aGUgbGF5b3V0IFhNTCBmaWxlLCBhbmQgdGhlbgotICAgICAgICAgICAgICAgIC8vIGdpdmUgdGhhdCB0byBvdXIgWG1sQmxvY2tQYXJzZXIKLSAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICBYbWxQdWxsUGFyc2VyIHBhcnNlciA9IFBhcnNlckZhY3RvcnkuY3JlYXRlKHhtbCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSByZXNvdXJjZSByZWYgdG8gaGF2ZSBjb3JyZWN0IHZpZXcgY29va2llcwotICAgICAgICAgICAgICAgICAgICBtQnJpZGdlSW5mbGF0ZXIuc2V0UmVzb3VyY2VSZWZlcmVuY2UocmVzb3VyY2UpOwotCi0gICAgICAgICAgICAgICAgICAgIEJyaWRnZVhtbEJsb2NrUGFyc2VyIGJsb2NrUGFyc2VyID0gbmV3IEJyaWRnZVhtbEJsb2NrUGFyc2VyKHBhcnNlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCByZXNvdXJjZS5pc0ZyYW1ld29yaygpKTsKLSAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2hQYXJzZXIoYmxvY2tQYXJzZXIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBhaXIub2YoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1CcmlkZ2VJbmZsYXRlci5pbmZsYXRlKGJsb2NrUGFyc2VyLCBwYXJlbnQsIGF0dGFjaFRvUm9vdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKLSAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHBvcFBhcnNlcigpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBjYXRjaCAoWG1sUHVsbFBhcnNlckV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5lcnJvcihMYXlvdXRMb2cuVEFHX0JST0tFTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNvbmZpZ3VyZSBwYXJzZXIgZm9yICIgKyB4bWwsIGUsIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgICAgICAgICAvLyB3ZSdsbCByZXR1cm4gbnVsbCBiZWxvdy4KLSAgICAgICAgICAgICAgICB9IGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZG4ndCBoYXBwZW4gc2luY2Ugd2UgY2hlY2sgYWJvdmUuCi0gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKLSAgICAgICAgICAgICAgICAgICAgbUJyaWRnZUluZmxhdGVyLnNldFJlc291cmNlUmVmZXJlbmNlKG51bGwpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfQlJPS0VOLAotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLmZvcm1hdCgiRmlsZSAlcyBpcyBtaXNzaW5nISIsIHhtbCksIG51bGwpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfQlJPS0VOLAotICAgICAgICAgICAgICAgICAgICBTdHJpbmcuZm9ybWF0KCJMYXlvdXQgJXMlcyBkb2VzIG5vdCBleGlzdC4iLCBpc1BsYXRmb3JtTGF5b3V0ID8gImFuZHJvaWQ6IiA6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlLmdldE5hbWUoKSksIG51bGwpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIFBhaXIub2YobnVsbCwgZmFsc2UpOwotICAgIH0KLQotICAgIEBTdXBwcmVzc1dhcm5pbmdzKCJkZXByZWNhdGlvbiIpCi0gICAgcHJpdmF0ZSBJTGF5b3V0UHVsbFBhcnNlciBnZXRQYXJzZXIoUmVzb3VyY2VSZWZlcmVuY2UgcmVzb3VyY2UpIHsKLSAgICAgICAgSUxheW91dFB1bGxQYXJzZXIgcGFyc2VyOwotICAgICAgICBpZiAocmVzb3VyY2UgaW5zdGFuY2VvZiBSZXNvdXJjZVZhbHVlKSB7Ci0gICAgICAgICAgICBwYXJzZXIgPSBtUHJvamVjdENhbGxiYWNrLmdldFBhcnNlcigoUmVzb3VyY2VWYWx1ZSkgcmVzb3VyY2UpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcGFyc2VyID0gbVByb2plY3RDYWxsYmFjay5nZXRQYXJzZXIocmVzb3VyY2UuZ2V0TmFtZSgpKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcGFyc2VyOwotICAgIH0KLQotICAgIC8vIC0tLS0tLS0tLS0tLSBDb250ZXh0IG1ldGhvZHMKLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBSZXNvdXJjZXMgZ2V0UmVzb3VyY2VzKCkgewotICAgICAgICByZXR1cm4gbVN5c3RlbVJlc291cmNlczsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgVGhlbWUgZ2V0VGhlbWUoKSB7Ci0gICAgICAgIHJldHVybiBtVGhlbWU7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIENsYXNzTG9hZGVyIGdldENsYXNzTG9hZGVyKCkgewotICAgICAgICByZXR1cm4gdGhpcy5nZXRDbGFzcygpLmdldENsYXNzTG9hZGVyKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIE9iamVjdCBnZXRTeXN0ZW1TZXJ2aWNlKFN0cmluZyBzZXJ2aWNlKSB7Ci0gICAgICAgIGlmIChMQVlPVVRfSU5GTEFURVJfU0VSVklDRS5lcXVhbHMoc2VydmljZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBtQnJpZGdlSW5mbGF0ZXI7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoVEVYVF9TRVJWSUNFU19NQU5BR0VSX1NFUlZJQ0UuZXF1YWxzKHNlcnZpY2UpKSB7Ci0gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHJldHVybiBhIHZhbGlkIHNlcnZpY2UgdG8gYXZvaWQgTlBFCi0gICAgICAgICAgICByZXR1cm4gVGV4dFNlcnZpY2VzTWFuYWdlci5nZXRJbnN0YW5jZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKFdJTkRPV19TRVJWSUNFLmVxdWFscyhzZXJ2aWNlKSkgewotICAgICAgICAgICAgcmV0dXJuIG1XaW5kb3dNYW5hZ2VyOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gbmVlZGVkIGJ5IFNlYXJjaFZpZXcKLSAgICAgICAgaWYgKElOUFVUX01FVEhPRF9TRVJWSUNFLmVxdWFscyhzZXJ2aWNlKSkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoUE9XRVJfU0VSVklDRS5lcXVhbHMoc2VydmljZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgUG93ZXJNYW5hZ2VyKHRoaXMsIG5ldyBCcmlkZ2VQb3dlck1hbmFnZXIoKSwgbmV3IEhhbmRsZXIoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIlVuc3VwcG9ydGVkIFNlcnZpY2U6ICIgKyBzZXJ2aWNlKTsKLSAgICB9Ci0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBmaW5hbCBUeXBlZEFycmF5IG9idGFpblN0eWxlZEF0dHJpYnV0ZXMoaW50W10gYXR0cnMpIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVN0eWxlQmFzZWRUeXBlZEFycmF5KG1SZW5kZXJSZXNvdXJjZXMuZ2V0Q3VycmVudFRoZW1lKCksIGF0dHJzKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgZmluYWwgVHlwZWRBcnJheSBvYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKGludCByZXNpZCwgaW50W10gYXR0cnMpCi0gICAgICAgICAgICB0aHJvd3MgUmVzb3VyY2VzLk5vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gZ2V0IHRoZSBTdHlsZVJlc291cmNlVmFsdWUgYmFzZWQgb24gdGhlIHJlc0lkOwotICAgICAgICBTdHlsZVJlc291cmNlVmFsdWUgc3R5bGUgPSBnZXRTdHlsZUJ5RHluYW1pY0lkKHJlc2lkKTsKLQotICAgICAgICBpZiAoc3R5bGUgPT0gbnVsbCkgewotICAgICAgICAgICAgdGhyb3cgbmV3IFJlc291cmNlcy5Ob3RGb3VuZEV4Y2VwdGlvbigpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKG1UeXBlZEFycmF5Q2FjaGUgPT0gbnVsbCkgewotICAgICAgICAgICAgbVR5cGVkQXJyYXlDYWNoZSA9IG5ldyBIYXNoTWFwPGludFtdLCBNYXA8SW50ZWdlcixUeXBlZEFycmF5Pj4oKTsKLQotICAgICAgICAgICAgTWFwPEludGVnZXIsIFR5cGVkQXJyYXk+IG1hcCA9IG5ldyBIYXNoTWFwPEludGVnZXIsIFR5cGVkQXJyYXk+KCk7Ci0gICAgICAgICAgICBtVHlwZWRBcnJheUNhY2hlLnB1dChhdHRycywgbWFwKTsKLQotICAgICAgICAgICAgQnJpZGdlVHlwZWRBcnJheSB0YSA9IGNyZWF0ZVN0eWxlQmFzZWRUeXBlZEFycmF5KHN0eWxlLCBhdHRycyk7Ci0gICAgICAgICAgICBtYXAucHV0KHJlc2lkLCB0YSk7Ci0KLSAgICAgICAgICAgIHJldHVybiB0YTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGdldCB0aGUgMm5kIG1hcAotICAgICAgICBNYXA8SW50ZWdlciwgVHlwZWRBcnJheT4gbWFwID0gbVR5cGVkQXJyYXlDYWNoZS5nZXQoYXR0cnMpOwotICAgICAgICBpZiAobWFwID09IG51bGwpIHsKLSAgICAgICAgICAgIG1hcCA9IG5ldyBIYXNoTWFwPEludGVnZXIsIFR5cGVkQXJyYXk+KCk7Ci0gICAgICAgICAgICBtVHlwZWRBcnJheUNhY2hlLnB1dChhdHRycywgbWFwKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGdldCB0aGUgYXJyYXkgZnJvbSB0aGUgMm5kIG1hcAotICAgICAgICBUeXBlZEFycmF5IHRhID0gbWFwLmdldChyZXNpZCk7Ci0KLSAgICAgICAgaWYgKHRhID09IG51bGwpIHsKLSAgICAgICAgICAgIHRhID0gY3JlYXRlU3R5bGVCYXNlZFR5cGVkQXJyYXkoc3R5bGUsIGF0dHJzKTsKLSAgICAgICAgICAgIG1hcC5wdXQocmVzaWQsIHRhKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiB0YTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgZmluYWwgVHlwZWRBcnJheSBvYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKEF0dHJpYnV0ZVNldCBzZXQsIGludFtdIGF0dHJzKSB7Ci0gICAgICAgIHJldHVybiBvYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKHNldCwgYXR0cnMsIDAsIDApOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBUeXBlZEFycmF5IG9idGFpblN0eWxlZEF0dHJpYnV0ZXMoQXR0cmlidXRlU2V0IHNldCwgaW50W10gYXR0cnMsCi0gICAgICAgICAgICBpbnQgZGVmU3R5bGVBdHRyLCBpbnQgZGVmU3R5bGVSZXMpIHsKLQotICAgICAgICBNYXA8U3RyaW5nLCBTdHJpbmc+IGRlZmF1bHRQcm9wTWFwID0gbnVsbDsKLSAgICAgICAgYm9vbGVhbiBpc1BsYXRmb3JtRmlsZSA9IHRydWU7Ci0KLSAgICAgICAgLy8gSGludDogZm9yIFhtbFB1bGxQYXJzZXIsIGF0dGFjaCBzb3VyY2UgLy9ERVZJQ0VfU1JDL2RhbHZpay9saWJjb3JlL3htbC9zcmMvamF2YQotICAgICAgICBpZiAoc2V0IGluc3RhbmNlb2YgQnJpZGdlWG1sQmxvY2tQYXJzZXIpIHsKLSAgICAgICAgICAgIEJyaWRnZVhtbEJsb2NrUGFyc2VyIHBhcnNlciA9IG51bGw7Ci0gICAgICAgICAgICBwYXJzZXIgPSAoQnJpZGdlWG1sQmxvY2tQYXJzZXIpc2V0OwotCi0gICAgICAgICAgICBpc1BsYXRmb3JtRmlsZSA9IHBhcnNlci5pc1BsYXRmb3JtRmlsZSgpOwotCi0gICAgICAgICAgICBPYmplY3Qga2V5ID0gcGFyc2VyLmdldFZpZXdDb29raWUoKTsKLSAgICAgICAgICAgIGlmIChrZXkgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGRlZmF1bHRQcm9wTWFwID0gbURlZmF1bHRQcm9wTWFwcy5nZXQoa2V5KTsKLSAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdFByb3BNYXAgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0UHJvcE1hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpOwotICAgICAgICAgICAgICAgICAgICBtRGVmYXVsdFByb3BNYXBzLnB1dChrZXksIGRlZmF1bHRQcm9wTWFwKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgfSBlbHNlIGlmIChzZXQgaW5zdGFuY2VvZiBCcmlkZ2VMYXlvdXRQYXJhbXNNYXBBdHRyaWJ1dGVzKSB7Ci0gICAgICAgICAgICAvLyB0aGlzIGlzIG9ubHkgZm9yIHRlbXAgbGF5b3V0IHBhcmFtcyBnZW5lcmF0ZWQgZHluYW1pY2FsbHksIHNvIHRoaXMgaXMgbmV2ZXIKLSAgICAgICAgICAgIC8vIHBsYXRmb3JtIGNvbnRlbnQuCi0gICAgICAgICAgICBpc1BsYXRmb3JtRmlsZSA9IGZhbHNlOwotICAgICAgICB9IGVsc2UgaWYgKHNldCAhPSBudWxsKSB7IC8vIG51bGwgcGFyc2VyIGlzIG9rCi0gICAgICAgICAgICAvLyByZWFsbHkgdGhpcyBzaG91bGQgbm90IGJlIGhhcHBlbmluZyBzaW5jZSBpdHMgaW5zdGFudGlhdGVkIGluIEJyaWRnZQotICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfQlJPS0VOLAotICAgICAgICAgICAgICAgICAgICAiUGFyc2VyIGlzIG5vdCBhIEJyaWRnZVhtbEJsb2NrUGFyc2VyISIsIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBMaXN0PFBhaXI8U3RyaW5nLCBCb29sZWFuPj4gYXR0cmlidXRlTGlzdCA9IHNlYXJjaEF0dHJzKGF0dHJzKTsKLQotICAgICAgICBCcmlkZ2VUeXBlZEFycmF5IHRhID0gKChCcmlkZ2VSZXNvdXJjZXMpIG1TeXN0ZW1SZXNvdXJjZXMpLm5ld1R5cGVBcnJheShhdHRycy5sZW5ndGgsCi0gICAgICAgICAgICAgICAgaXNQbGF0Zm9ybUZpbGUpOwotCi0gICAgICAgIC8vIGxvb2sgZm9yIGEgY3VzdG9tIHN0eWxlLgotICAgICAgICBTdHJpbmcgY3VzdG9tU3R5bGUgPSBudWxsOwotICAgICAgICBpZiAoc2V0ICE9IG51bGwpIHsKLSAgICAgICAgICAgIGN1c3RvbVN0eWxlID0gc2V0LmdldEF0dHJpYnV0ZVZhbHVlKG51bGwgLyogbmFtZXNwYWNlKi8sICJzdHlsZSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgU3R5bGVSZXNvdXJjZVZhbHVlIGN1c3RvbVN0eWxlVmFsdWVzID0gbnVsbDsKLSAgICAgICAgaWYgKGN1c3RvbVN0eWxlICE9IG51bGwpIHsKLSAgICAgICAgICAgIFJlc291cmNlVmFsdWUgaXRlbSA9IG1SZW5kZXJSZXNvdXJjZXMuZmluZFJlc1ZhbHVlKGN1c3RvbVN0eWxlLAotICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKmZvcmNlRnJhbWV3b3JrT25seSovKTsKLQotICAgICAgICAgICAgLy8gcmVzb2x2ZSBpdCBpbiBjYXNlIGl0IGxpbmtzIHRvIHNvbWV0aGluZyBlbHNlCi0gICAgICAgICAgICBpdGVtID0gbVJlbmRlclJlc291cmNlcy5yZXNvbHZlUmVzVmFsdWUoaXRlbSk7Ci0KLSAgICAgICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgU3R5bGVSZXNvdXJjZVZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgY3VzdG9tU3R5bGVWYWx1ZXMgPSAoU3R5bGVSZXNvdXJjZVZhbHVlKWl0ZW07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvLyByZXNvbHZlIHRoZSBkZWZTdHlsZUF0dHIgdmFsdWUgaW50byBhIElTdHlsZVJlc291cmNlVmFsdWUKLSAgICAgICAgU3R5bGVSZXNvdXJjZVZhbHVlIGRlZlN0eWxlVmFsdWVzID0gbnVsbDsKLQotICAgICAgICBpZiAoZGVmU3R5bGVBdHRyICE9IDApIHsKLSAgICAgICAgICAgIC8vIGdldCB0aGUgbmFtZSBmcm9tIHRoZSBpbnQuCi0gICAgICAgICAgICBQYWlyPFN0cmluZywgQm9vbGVhbj4gZGVmU3R5bGVBdHRyaWJ1dGUgPSBzZWFyY2hBdHRyKGRlZlN0eWxlQXR0cik7Ci0KLSAgICAgICAgICAgIGlmIChkZWZhdWx0UHJvcE1hcCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIGRlZlN0eWxlTmFtZSA9IGRlZlN0eWxlQXR0cmlidXRlLmdldEZpcnN0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKGRlZlN0eWxlQXR0cmlidXRlLmdldFNlY29uZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRlZlN0eWxlTmFtZSA9ICJhbmRyb2lkOiIgKyBkZWZTdHlsZU5hbWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGRlZmF1bHRQcm9wTWFwLnB1dCgic3R5bGUiLCBkZWZTdHlsZU5hbWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBsb29rIGZvciB0aGUgc3R5bGUgaW4gdGhlIGN1cnJlbnQgdGhlbWUsIGFuZCBpdHMgcGFyZW50OgotICAgICAgICAgICAgUmVzb3VyY2VWYWx1ZSBpdGVtID0gbVJlbmRlclJlc291cmNlcy5maW5kSXRlbUluVGhlbWUoZGVmU3R5bGVBdHRyaWJ1dGUuZ2V0Rmlyc3QoKSwKLSAgICAgICAgICAgICAgICAgICAgZGVmU3R5bGVBdHRyaWJ1dGUuZ2V0U2Vjb25kKCkpOwotCi0gICAgICAgICAgICBpZiAoaXRlbSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgLy8gaXRlbSBpcyBhIHJlZmVyZW5jZSB0byBhIHN0eWxlIGVudHJ5LiBTZWFyY2ggZm9yIGl0LgotICAgICAgICAgICAgICAgIGl0ZW0gPSBtUmVuZGVyUmVzb3VyY2VzLmZpbmRSZXNWYWx1ZShpdGVtLmdldFZhbHVlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKmZvcmNlRnJhbWV3b3JrT25seSovKTsKLQotICAgICAgICAgICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgU3R5bGVSZXNvdXJjZVZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRlZlN0eWxlVmFsdWVzID0gKFN0eWxlUmVzb3VyY2VWYWx1ZSlpdGVtOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfUkVTT1VSQ0VTX1JFU09MVkVfVEhFTUVfQVRUUiwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gZmluZCBzdHlsZSAnJXMnIGluIGN1cnJlbnQgdGhlbWUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZTdHlsZUF0dHJpYnV0ZS5nZXRGaXJzdCgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKGRlZlN0eWxlUmVzICE9IDApIHsKLSAgICAgICAgICAgIGJvb2xlYW4gaXNGcmFtZXdvcmtSZXMgPSB0cnVlOwotICAgICAgICAgICAgUGFpcjxSZXNvdXJjZVR5cGUsIFN0cmluZz4gdmFsdWUgPSBCcmlkZ2UucmVzb2x2ZVJlc291cmNlSWQoZGVmU3R5bGVSZXMpOwotICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IG1Qcm9qZWN0Q2FsbGJhY2sucmVzb2x2ZVJlc291cmNlSWQoZGVmU3R5bGVSZXMpOwotICAgICAgICAgICAgICAgIGlzRnJhbWV3b3JrUmVzID0gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZhbHVlLmdldEZpcnN0KCkgPT0gUmVzb3VyY2VUeXBlLlNUWUxFKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIGxvb2sgZm9yIHRoZSBzdHlsZSBpbiB0aGUgY3VycmVudCB0aGVtZSwgYW5kIGl0cyBwYXJlbnQ6Ci0gICAgICAgICAgICAgICAgICAgIFJlc291cmNlVmFsdWUgaXRlbSA9IG1SZW5kZXJSZXNvdXJjZXMuZmluZEl0ZW1JblRoZW1lKHZhbHVlLmdldFNlY29uZCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRnJhbWV3b3JrUmVzKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0gIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBTdHlsZVJlc291cmNlVmFsdWUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdFByb3BNYXAgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0UHJvcE1hcC5wdXQoInN0eWxlIiwgaXRlbS5nZXROYW1lKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZlN0eWxlVmFsdWVzID0gKFN0eWxlUmVzb3VyY2VWYWx1ZSlpdGVtOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKG51bGwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0eWxlIHdpdGggaWQgMHgleCAocmVzb2x2ZWQgdG8gJyVzJykgZG9lcyBub3QgZXhpc3QuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZTdHlsZVJlcywgdmFsdWUuZ2V0U2Vjb25kKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsIC8qZGF0YSovKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5lcnJvcihudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVzb3VjZSBpZCAweCV4IGlzIG5vdCBvZiB0eXBlIFNUWUxFIChpbnN0ZWFkICVzKSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZTdHlsZVJlcywgdmFsdWUuZ2V0Rmlyc3QoKS50b1N0cmluZygpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsIC8qZGF0YSovKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5lcnJvcihudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBmaW5kIHN0eWxlIHdpdGggaWQgMHgleCBpbiBjdXJyZW50IHRoZW1lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmU3R5bGVSZXMpLAotICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgYXBwTmFtZXNwYWNlID0gbVByb2plY3RDYWxsYmFjay5nZXROYW1lc3BhY2UoKTsKLQotICAgICAgICBpZiAoYXR0cmlidXRlTGlzdCAhPSBudWxsKSB7Ci0gICAgICAgICAgICBmb3IgKGludCBpbmRleCA9IDAgOyBpbmRleCA8IGF0dHJpYnV0ZUxpc3Quc2l6ZSgpIDsgaW5kZXgrKykgewotICAgICAgICAgICAgICAgIFBhaXI8U3RyaW5nLCBCb29sZWFuPiBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVMaXN0LmdldChpbmRleCk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgU3RyaW5nIGF0dHJOYW1lID0gYXR0cmlidXRlLmdldEZpcnN0KCk7Ci0gICAgICAgICAgICAgICAgYm9vbGVhbiBmcmFtZXdvcmtBdHRyID0gYXR0cmlidXRlLmdldFNlY29uZCgpLmJvb2xlYW5WYWx1ZSgpOwotICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgaWYgKHNldCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0LmdldEF0dHJpYnV0ZVZhbHVlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1ld29ya0F0dHIgPyBCcmlkZ2VDb25zdGFudHMuTlNfUkVTT1VSQ0VTIDogYXBwTmFtZXNwYWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ck5hbWUpOwotCi0gICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoaXMgaXMgYW4gYXBwIGF0dHJpYnV0ZSwgYW5kIHRoZSBmaXJzdCBnZXQgZmFpbHMsIHRyeSB3aXRoIHRoZQotICAgICAgICAgICAgICAgICAgICAvLyBuZXcgcmVzLWF1dG8gbmFtZXNwYWNlIGFzIHdlbGwKLSAgICAgICAgICAgICAgICAgICAgaWYgKGZyYW1ld29ya0F0dHIgPT0gZmFsc2UgJiYgdmFsdWUgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXQuZ2V0QXR0cmlidXRlVmFsdWUoQnJpZGdlQ29uc3RhbnRzLk5TX0FQUF9SRVNfQVVUTywgYXR0ck5hbWUpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUncyBubyBkaXJlY3QgdmFsdWUgZm9yIHRoaXMgYXR0cmlidXRlIGluIHRoZSBYTUwsIHdlIGxvb2sgZm9yIGRlZmF1bHQKLSAgICAgICAgICAgICAgICAvLyB2YWx1ZXMgaW4gdGhlIHdpZGdldCBkZWZTdHlsZSwgYW5kIHRoZW4gaW4gdGhlIHRoZW1lLgotICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIFJlc291cmNlVmFsdWUgcmVzVmFsdWUgPSBudWxsOwotCi0gICAgICAgICAgICAgICAgICAgIC8vIGxvb2sgZm9yIHRoZSB2YWx1ZSBpbiB0aGUgY3VzdG9tIHN0eWxlIGZpcnN0IChhbmQgaXRzIHBhcmVudCBpZiBuZWVkZWQpCi0gICAgICAgICAgICAgICAgICAgIGlmIChjdXN0b21TdHlsZVZhbHVlcyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXNWYWx1ZSA9IG1SZW5kZXJSZXNvdXJjZXMuZmluZEl0ZW1JblN0eWxlKGN1c3RvbVN0eWxlVmFsdWVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyTmFtZSwgZnJhbWV3b3JrQXR0cik7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAvLyB0aGVuIGxvb2sgZm9yIHRoZSB2YWx1ZSBpbiB0aGUgZGVmYXVsdCBTdHlsZSAoYW5kIGl0cyBwYXJlbnQgaWYgbmVlZGVkKQotICAgICAgICAgICAgICAgICAgICBpZiAocmVzVmFsdWUgPT0gbnVsbCAmJiBkZWZTdHlsZVZhbHVlcyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXNWYWx1ZSA9IG1SZW5kZXJSZXNvdXJjZXMuZmluZEl0ZW1JblN0eWxlKGRlZlN0eWxlVmFsdWVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyTmFtZSwgZnJhbWV3b3JrQXR0cik7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgaXRlbSBpcyBub3QgcHJlc2VudCBpbiB0aGUgZGVmU3R5bGUsIHdlIGxvb2sgaW4gdGhlIG1haW4gdGhlbWUgKGFuZAotICAgICAgICAgICAgICAgICAgICAvLyBpdHMgcGFyZW50IHRoZW1lcykKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc1ZhbHVlID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc1ZhbHVlID0gbVJlbmRlclJlc291cmNlcy5maW5kSXRlbUluVGhlbWUoYXR0ck5hbWUsIGZyYW1ld29ya0F0dHIpOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UgZm91bmQgYSB2YWx1ZSwgd2UgbWFrZSBzdXJlIHRoaXMgZG9lc24ndCByZWZlcmVuY2UgYW5vdGhlciB2YWx1ZS4KLSAgICAgICAgICAgICAgICAgICAgLy8gU28gd2UgcmVzb2x2ZSBpdC4KLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc1ZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHB1dCB0aGUgZmlyc3QgZGVmYXVsdCB2YWx1ZSwgYmVmb3JlIHRoZSByZXNvbHV0aW9uLgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlZmF1bHRQcm9wTWFwICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0UHJvcE1hcC5wdXQoYXR0ck5hbWUsIHJlc1ZhbHVlLmdldFZhbHVlKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICByZXNWYWx1ZSA9IG1SZW5kZXJSZXNvdXJjZXMucmVzb2x2ZVJlc1ZhbHVlKHJlc1ZhbHVlKTsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIHRhLmJyaWRnZVNldFZhbHVlKGluZGV4LCBhdHRyTmFtZSwgZnJhbWV3b3JrQXR0ciwgcmVzVmFsdWUpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIHRoZXJlIGlzIGEgdmFsdWUgaW4gdGhlIFhNTCwgYnV0IHdlIG5lZWQgdG8gcmVzb2x2ZSBpdCBpbiBjYXNlIGl0J3MKLSAgICAgICAgICAgICAgICAgICAgLy8gcmVmZXJlbmNpbmcgYW5vdGhlciByZXNvdXJjZSBvciBhIHRoZW1lIHZhbHVlLgotICAgICAgICAgICAgICAgICAgICB0YS5icmlkZ2VTZXRWYWx1ZShpbmRleCwgYXR0ck5hbWUsIGZyYW1ld29ya0F0dHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbVJlbmRlclJlc291cmNlcy5yZXNvbHZlVmFsdWUobnVsbCwgYXR0ck5hbWUsIHZhbHVlLCBpc1BsYXRmb3JtRmlsZSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHRhLnNlYWxBcnJheSgpOwotCi0gICAgICAgIHJldHVybiB0YTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgTG9vcGVyIGdldE1haW5Mb29wZXIoKSB7Ci0gICAgICAgIHJldHVybiBMb29wZXIubXlMb29wZXIoKTsKLSAgICB9Ci0KLQotICAgIC8vIC0tLS0tLS0tLS0tLS0gcHJpdmF0ZSBuZXcgbWV0aG9kcwotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhIHtAbGluayBCcmlkZ2VUeXBlZEFycmF5fSBieSBmaWxsaW5nIHRoZSB2YWx1ZXMgZGVmaW5lZCBieSB0aGUgaW50W10gd2l0aCB0aGUKLSAgICAgKiB2YWx1ZXMgZm91bmQgaW4gdGhlIGdpdmVuIHN0eWxlLgotICAgICAqIEBzZWUgI29idGFpblN0eWxlZEF0dHJpYnV0ZXMoaW50LCBpbnRbXSkKLSAgICAgKi8KLSAgICBwcml2YXRlIEJyaWRnZVR5cGVkQXJyYXkgY3JlYXRlU3R5bGVCYXNlZFR5cGVkQXJyYXkoU3R5bGVSZXNvdXJjZVZhbHVlIHN0eWxlLCBpbnRbXSBhdHRycykKLSAgICAgICAgICAgIHRocm93cyBSZXNvdXJjZXMuTm90Rm91bmRFeGNlcHRpb24gewotCi0gICAgICAgIExpc3Q8UGFpcjxTdHJpbmcsIEJvb2xlYW4+PiBhdHRyaWJ1dGVzID0gc2VhcmNoQXR0cnMoYXR0cnMpOwotCi0gICAgICAgIEJyaWRnZVR5cGVkQXJyYXkgdGEgPSAoKEJyaWRnZVJlc291cmNlcykgbVN5c3RlbVJlc291cmNlcykubmV3VHlwZUFycmF5KGF0dHJzLmxlbmd0aCwKLSAgICAgICAgICAgICAgICBmYWxzZSk7Ci0KLSAgICAgICAgLy8gZm9yIGVhY2ggYXR0cmlidXRlLCBnZXQgaXRzIG5hbWUgc28gdGhhdCB3ZSBjYW4gc2VhcmNoIGl0IGluIHRoZSBzdHlsZQotICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgPCBhdHRycy5sZW5ndGggOyBpKyspIHsKLSAgICAgICAgICAgIFBhaXI8U3RyaW5nLCBCb29sZWFuPiBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzLmdldChpKTsKLQotICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgLy8gbG9vayBmb3IgdGhlIHZhbHVlIGluIHRoZSBnaXZlbiBzdHlsZQotICAgICAgICAgICAgICAgIFJlc291cmNlVmFsdWUgcmVzVmFsdWUgPSBtUmVuZGVyUmVzb3VyY2VzLmZpbmRJdGVtSW5TdHlsZShzdHlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZS5nZXRGaXJzdCgpLCBhdHRyaWJ1dGUuZ2V0U2Vjb25kKCkpOwotCi0gICAgICAgICAgICAgICAgaWYgKHJlc1ZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gcmVzb2x2ZSBpdCB0byBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIHJlZmVyZW5jZXMgbGVmdC4KLSAgICAgICAgICAgICAgICAgICAgdGEuYnJpZGdlU2V0VmFsdWUoaSwgYXR0cmlidXRlLmdldEZpcnN0KCksIGF0dHJpYnV0ZS5nZXRTZWNvbmQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtUmVuZGVyUmVzb3VyY2VzLnJlc29sdmVSZXNWYWx1ZShyZXNWYWx1ZSkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHRhLnNlYWxBcnJheSgpOwotCi0gICAgICAgIHJldHVybiB0YTsKLSAgICB9Ci0KLQotICAgIC8qKgotICAgICAqIFRoZSBpbnB1dCBpbnRbXSBhdHRycyBpcyBhIGxpc3Qgb2YgYXR0cmlidXRlcy4gVGhlIHJldHVybnMgYSBsaXN0IG9mIGluZm9ybWF0aW9uIGFib3V0Ci0gICAgICogZWFjaCBhdHRyaWJ1dGVzLiBUaGUgaW5mb3JtYXRpb24gaXMgKG5hbWUsIGlzRnJhbWV3b3JrKQotICAgICAqIDxwLz4KLSAgICAgKgotICAgICAqIEBwYXJhbSBhdHRycyBBbiBhdHRyaWJ1dGUgYXJyYXkgcmVmZXJlbmNlIGdpdmVuIHRvIG9idGFpblN0eWxlZEF0dHJpYnV0ZXMuCi0gICAgICogQHJldHVybiBMaXN0IG9mIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbi4KLSAgICAgKi8KLSAgICBwcml2YXRlIExpc3Q8UGFpcjxTdHJpbmcsIEJvb2xlYW4+PiBzZWFyY2hBdHRycyhpbnRbXSBhdHRycykgewotICAgICAgICBMaXN0PFBhaXI8U3RyaW5nLCBCb29sZWFuPj4gcmVzdWx0cyA9IG5ldyBBcnJheUxpc3Q8UGFpcjxTdHJpbmcsIEJvb2xlYW4+PihhdHRycy5sZW5ndGgpOwotCi0gICAgICAgIC8vIGZvciBlYWNoIGF0dHJpYnV0ZSwgZ2V0IGl0cyBuYW1lIHNvIHRoYXQgd2UgY2FuIHNlYXJjaCBpdCBpbiB0aGUgc3R5bGUKLSAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgYXR0cnMubGVuZ3RoIDsgaSsrKSB7Ci0gICAgICAgICAgICBQYWlyPFJlc291cmNlVHlwZSwgU3RyaW5nPiByZXNvbHZlZFJlc291cmNlID0gQnJpZGdlLnJlc29sdmVSZXNvdXJjZUlkKGF0dHJzW2ldKTsKLSAgICAgICAgICAgIGJvb2xlYW4gaXNGcmFtZXdvcmsgPSBmYWxzZTsKLSAgICAgICAgICAgIGlmIChyZXNvbHZlZFJlc291cmNlICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBpc0ZyYW1ld29yayA9IHRydWU7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc29sdmVkUmVzb3VyY2UgPSBtUHJvamVjdENhbGxiYWNrLnJlc29sdmVSZXNvdXJjZUlkKGF0dHJzW2ldKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKHJlc29sdmVkUmVzb3VyY2UgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJlc3VsdHMuYWRkKFBhaXIub2YocmVzb2x2ZWRSZXNvdXJjZS5nZXRTZWNvbmQoKSwgaXNGcmFtZXdvcmspKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0cy5hZGQobnVsbCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gcmVzdWx0czsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBTZWFyY2hlcyBmb3IgdGhlIGF0dHJpYnV0ZSByZWZlcmVuY2VkIGJ5IGl0cyBpbnRlcm5hbCBpZC4KLSAgICAgKgotICAgICAqIEBwYXJhbSBhdHRyIEFuIGF0dHJpYnV0ZSByZWZlcmVuY2UgZ2l2ZW4gdG8gb2J0YWluU3R5bGVkQXR0cmlidXRlcyBzdWNoIGFzIGRlZlN0eWxlLgotICAgICAqIEByZXR1cm4gQSAobmFtZSwgaXNGcmFtZXdvcmspIHBhaXIgZGVzY3JpYmluZyB0aGUgYXR0cmlidXRlIGlmIGZvdW5kLiBSZXR1cm5zIG51bGwKLSAgICAgKiAgICAgICAgIGlmIG5vdGhpbmcgaXMgZm91bmQuCi0gICAgICovCi0gICAgcHVibGljIFBhaXI8U3RyaW5nLCBCb29sZWFuPiBzZWFyY2hBdHRyKGludCBhdHRyKSB7Ci0gICAgICAgIFBhaXI8UmVzb3VyY2VUeXBlLCBTdHJpbmc+IGluZm8gPSBCcmlkZ2UucmVzb2x2ZVJlc291cmNlSWQoYXR0cik7Ci0gICAgICAgIGlmIChpbmZvICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBQYWlyLm9mKGluZm8uZ2V0U2Vjb25kKCksIEJvb2xlYW4uVFJVRSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpbmZvID0gbVByb2plY3RDYWxsYmFjay5yZXNvbHZlUmVzb3VyY2VJZChhdHRyKTsKLSAgICAgICAgaWYgKGluZm8gIT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIFBhaXIub2YoaW5mby5nZXRTZWNvbmQoKSwgQm9vbGVhbi5GQUxTRSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgaW50IGdldER5bmFtaWNJZEJ5U3R5bGUoU3R5bGVSZXNvdXJjZVZhbHVlIHJlc1ZhbHVlKSB7Ci0gICAgICAgIGlmIChtRHluYW1pY0lkVG9TdHlsZU1hcCA9PSBudWxsKSB7Ci0gICAgICAgICAgICAvLyBjcmVhdGUgdGhlIG1hcHMuCi0gICAgICAgICAgICBtRHluYW1pY0lkVG9TdHlsZU1hcCA9IG5ldyBIYXNoTWFwPEludGVnZXIsIFN0eWxlUmVzb3VyY2VWYWx1ZT4oKTsKLSAgICAgICAgICAgIG1TdHlsZVRvRHluYW1pY0lkTWFwID0gbmV3IEhhc2hNYXA8U3R5bGVSZXNvdXJjZVZhbHVlLCBJbnRlZ2VyPigpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gbG9vayBmb3IgYW4gZXhpc3RpbmcgaWQKLSAgICAgICAgSW50ZWdlciBpZCA9IG1TdHlsZVRvRHluYW1pY0lkTWFwLmdldChyZXNWYWx1ZSk7Ci0KLSAgICAgICAgaWYgKGlkID09IG51bGwpIHsKLSAgICAgICAgICAgIC8vIGdlbmVyYXRlIGEgbmV3IGlkCi0gICAgICAgICAgICBpZCA9IEludGVnZXIudmFsdWVPZigrK21EeW5hbWljSWRHZW5lcmF0b3IpOwotCi0gICAgICAgICAgICAvLyBhbmQgYWRkIGl0IHRvIHRoZSBtYXBzLgotICAgICAgICAgICAgbUR5bmFtaWNJZFRvU3R5bGVNYXAucHV0KGlkLCByZXNWYWx1ZSk7Ci0gICAgICAgICAgICBtU3R5bGVUb0R5bmFtaWNJZE1hcC5wdXQocmVzVmFsdWUsIGlkKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBpZDsKLSAgICB9Ci0KLSAgICBwcml2YXRlIFN0eWxlUmVzb3VyY2VWYWx1ZSBnZXRTdHlsZUJ5RHluYW1pY0lkKGludCBpKSB7Ci0gICAgICAgIGlmIChtRHluYW1pY0lkVG9TdHlsZU1hcCAhPSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gbUR5bmFtaWNJZFRvU3R5bGVNYXAuZ2V0KGkpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgcHVibGljIGludCBnZXRGcmFtZXdvcmtSZXNvdXJjZVZhbHVlKFJlc291cmNlVHlwZSByZXNUeXBlLCBTdHJpbmcgcmVzTmFtZSwgaW50IGRlZlZhbHVlKSB7Ci0gICAgICAgIEludGVnZXIgdmFsdWUgPSBCcmlkZ2UuZ2V0UmVzb3VyY2VJZChyZXNUeXBlLCByZXNOYW1lKTsKLSAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZS5pbnRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRlZlZhbHVlOwotICAgIH0KLQotICAgIHB1YmxpYyBpbnQgZ2V0UHJvamVjdFJlc291cmNlVmFsdWUoUmVzb3VyY2VUeXBlIHJlc1R5cGUsIFN0cmluZyByZXNOYW1lLCBpbnQgZGVmVmFsdWUpIHsKLSAgICAgICAgaWYgKG1Qcm9qZWN0Q2FsbGJhY2sgIT0gbnVsbCkgewotICAgICAgICAgICAgSW50ZWdlciB2YWx1ZSA9IG1Qcm9qZWN0Q2FsbGJhY2suZ2V0UmVzb3VyY2VJZChyZXNUeXBlLCByZXNOYW1lKTsKLSAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmludFZhbHVlKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVmVmFsdWU7Ci0gICAgfQotCi0gICAgLy8tLS0tLS0tLS0tLS0gTk9UIE9WRVJSSURFTiAtLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gYmluZFNlcnZpY2UoSW50ZW50IGFyZzAsIFNlcnZpY2VDb25uZWN0aW9uIGFyZzEsIGludCBhcmcyKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgY2hlY2tDYWxsaW5nT3JTZWxmUGVybWlzc2lvbihTdHJpbmcgYXJnMCkgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgY2hlY2tDYWxsaW5nT3JTZWxmVXJpUGVybWlzc2lvbihVcmkgYXJnMCwgaW50IGFyZzEpIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGNoZWNrQ2FsbGluZ1Blcm1pc3Npb24oU3RyaW5nIGFyZzApIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGNoZWNrQ2FsbGluZ1VyaVBlcm1pc3Npb24oVXJpIGFyZzAsIGludCBhcmcxKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBjaGVja1Blcm1pc3Npb24oU3RyaW5nIGFyZzAsIGludCBhcmcxLCBpbnQgYXJnMikgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgY2hlY2tVcmlQZXJtaXNzaW9uKFVyaSBhcmcwLCBpbnQgYXJnMSwgaW50IGFyZzIsIGludCBhcmczKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBjaGVja1VyaVBlcm1pc3Npb24oVXJpIGFyZzAsIFN0cmluZyBhcmcxLCBTdHJpbmcgYXJnMiwgaW50IGFyZzMsCi0gICAgICAgICAgICBpbnQgYXJnNCwgaW50IGFyZzUpIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBjbGVhcldhbGxwYXBlcigpIHsKLSAgICAgICAgLy8gcGFzcwotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIENvbnRleHQgY3JlYXRlUGFja2FnZUNvbnRleHQoU3RyaW5nIGFyZzAsIGludCBhcmcxKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIENvbnRleHQgY3JlYXRlUGFja2FnZUNvbnRleHRBc1VzZXIoU3RyaW5nIGFyZzAsIGludCBhcmcxLCBVc2VySGFuZGxlIHVzZXIpIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQ29udGV4dCBjcmVhdGVDb25maWd1cmF0aW9uQ29udGV4dChDb25maWd1cmF0aW9uIG92ZXJyaWRlQ29uZmlndXJhdGlvbikgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBDb250ZXh0IGNyZWF0ZURpc3BsYXlDb250ZXh0KERpc3BsYXkgZGlzcGxheSkgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmdbXSBkYXRhYmFzZUxpc3QoKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gZGVsZXRlRGF0YWJhc2UoU3RyaW5nIGFyZzApIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gZGVsZXRlRmlsZShTdHJpbmcgYXJnMCkgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBlbmZvcmNlQ2FsbGluZ09yU2VsZlBlcm1pc3Npb24oU3RyaW5nIGFyZzAsIFN0cmluZyBhcmcxKSB7Ci0gICAgICAgIC8vIHBhc3MKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGVuZm9yY2VDYWxsaW5nT3JTZWxmVXJpUGVybWlzc2lvbihVcmkgYXJnMCwgaW50IGFyZzEsCi0gICAgICAgICAgICBTdHJpbmcgYXJnMikgewotICAgICAgICAvLyBwYXNzCi0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBlbmZvcmNlQ2FsbGluZ1Blcm1pc3Npb24oU3RyaW5nIGFyZzAsIFN0cmluZyBhcmcxKSB7Ci0gICAgICAgIC8vIHBhc3MKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGVuZm9yY2VDYWxsaW5nVXJpUGVybWlzc2lvbihVcmkgYXJnMCwgaW50IGFyZzEsIFN0cmluZyBhcmcyKSB7Ci0gICAgICAgIC8vIHBhc3MKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGVuZm9yY2VQZXJtaXNzaW9uKFN0cmluZyBhcmcwLCBpbnQgYXJnMSwgaW50IGFyZzIsIFN0cmluZyBhcmczKSB7Ci0gICAgICAgIC8vIHBhc3MKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGVuZm9yY2VVcmlQZXJtaXNzaW9uKFVyaSBhcmcwLCBpbnQgYXJnMSwgaW50IGFyZzIsIGludCBhcmczLAotICAgICAgICAgICAgU3RyaW5nIGFyZzQpIHsKLSAgICAgICAgLy8gcGFzcwotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgZW5mb3JjZVVyaVBlcm1pc3Npb24oVXJpIGFyZzAsIFN0cmluZyBhcmcxLCBTdHJpbmcgYXJnMiwKLSAgICAgICAgICAgIGludCBhcmczLCBpbnQgYXJnNCwgaW50IGFyZzUsIFN0cmluZyBhcmc2KSB7Ci0gICAgICAgIC8vIHBhc3MKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmdbXSBmaWxlTGlzdCgpIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQXNzZXRNYW5hZ2VyIGdldEFzc2V0cygpIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgRmlsZSBnZXRDYWNoZURpcigpIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgRmlsZSBnZXRFeHRlcm5hbENhY2hlRGlyKCkgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBDb250ZW50UmVzb2x2ZXIgZ2V0Q29udGVudFJlc29sdmVyKCkgewotICAgICAgICBpZiAobUNvbnRlbnRSZXNvbHZlciA9PSBudWxsKSB7Ci0gICAgICAgICAgICBtQ29udGVudFJlc29sdmVyID0gbmV3IEJyaWRnZUNvbnRlbnRSZXNvbHZlcih0aGlzKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbUNvbnRlbnRSZXNvbHZlcjsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgRmlsZSBnZXREYXRhYmFzZVBhdGgoU3RyaW5nIGFyZzApIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgRmlsZSBnZXREaXIoU3RyaW5nIGFyZzAsIGludCBhcmcxKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEZpbGUgZ2V0RmlsZVN0cmVhbVBhdGgoU3RyaW5nIGFyZzApIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgRmlsZSBnZXRGaWxlc0RpcigpIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgRmlsZSBnZXRFeHRlcm5hbEZpbGVzRGlyKFN0cmluZyB0eXBlKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRQYWNrYWdlQ29kZVBhdGgoKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFBhY2thZ2VNYW5hZ2VyIGdldFBhY2thZ2VNYW5hZ2VyKCkgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGFja2FnZU5hbWUoKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRCYXNlUGFja2FnZU5hbWUoKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRPcFBhY2thZ2VOYW1lKCkgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBBcHBsaWNhdGlvbkluZm8gZ2V0QXBwbGljYXRpb25JbmZvKCkgewotICAgICAgICByZXR1cm4gbUFwcGxpY2F0aW9uSW5mbzsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldFBhY2thZ2VSZXNvdXJjZVBhdGgoKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEZpbGUgZ2V0U2hhcmVkUHJlZnNGaWxlKFN0cmluZyBuYW1lKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFNoYXJlZFByZWZlcmVuY2VzIGdldFNoYXJlZFByZWZlcmVuY2VzKFN0cmluZyBhcmcwLCBpbnQgYXJnMSkgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBEcmF3YWJsZSBnZXRXYWxscGFwZXIoKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRXYWxscGFwZXJEZXNpcmVkTWluaW11bVdpZHRoKCkgewotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRXYWxscGFwZXJEZXNpcmVkTWluaW11bUhlaWdodCgpIHsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGdyYW50VXJpUGVybWlzc2lvbihTdHJpbmcgYXJnMCwgVXJpIGFyZzEsIGludCBhcmcyKSB7Ci0gICAgICAgIC8vIHBhc3MKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBGaWxlSW5wdXRTdHJlYW0gb3BlbkZpbGVJbnB1dChTdHJpbmcgYXJnMCkgdGhyb3dzIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEZpbGVPdXRwdXRTdHJlYW0gb3BlbkZpbGVPdXRwdXQoU3RyaW5nIGFyZzAsIGludCBhcmcxKSB0aHJvd3MgRmlsZU5vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU1FMaXRlRGF0YWJhc2Ugb3Blbk9yQ3JlYXRlRGF0YWJhc2UoU3RyaW5nIGFyZzAsIGludCBhcmcxLCBDdXJzb3JGYWN0b3J5IGFyZzIpIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU1FMaXRlRGF0YWJhc2Ugb3Blbk9yQ3JlYXRlRGF0YWJhc2UoU3RyaW5nIGFyZzAsIGludCBhcmcxLAotICAgICAgICAgICAgQ3Vyc29yRmFjdG9yeSBhcmcyLCBEYXRhYmFzZUVycm9ySGFuZGxlciBhcmczKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIERyYXdhYmxlIHBlZWtXYWxscGFwZXIoKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEludGVudCByZWdpc3RlclJlY2VpdmVyKEJyb2FkY2FzdFJlY2VpdmVyIGFyZzAsIEludGVudEZpbHRlciBhcmcxKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEludGVudCByZWdpc3RlclJlY2VpdmVyKEJyb2FkY2FzdFJlY2VpdmVyIGFyZzAsIEludGVudEZpbHRlciBhcmcxLAotICAgICAgICAgICAgU3RyaW5nIGFyZzIsIEhhbmRsZXIgYXJnMykgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBJbnRlbnQgcmVnaXN0ZXJSZWNlaXZlckFzVXNlcihCcm9hZGNhc3RSZWNlaXZlciBhcmcwLCBVc2VySGFuZGxlIGFyZzBwNSwKLSAgICAgICAgICAgIEludGVudEZpbHRlciBhcmcxLCBTdHJpbmcgYXJnMiwgSGFuZGxlciBhcmczKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgcmVtb3ZlU3RpY2t5QnJvYWRjYXN0KEludGVudCBhcmcwKSB7Ci0gICAgICAgIC8vIHBhc3MKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHJldm9rZVVyaVBlcm1pc3Npb24oVXJpIGFyZzAsIGludCBhcmcxKSB7Ci0gICAgICAgIC8vIHBhc3MKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNlbmRCcm9hZGNhc3QoSW50ZW50IGFyZzApIHsKLSAgICAgICAgLy8gcGFzcwotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2VuZEJyb2FkY2FzdChJbnRlbnQgYXJnMCwgU3RyaW5nIGFyZzEpIHsKLSAgICAgICAgLy8gcGFzcwotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2VuZEJyb2FkY2FzdChJbnRlbnQgaW50ZW50LCBTdHJpbmcgcmVjZWl2ZXJQZXJtaXNzaW9uLCBpbnQgYXBwT3ApIHsKLSAgICAgICAgLy8gcGFzcwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNlbmRPcmRlcmVkQnJvYWRjYXN0KEludGVudCBhcmcwLCBTdHJpbmcgYXJnMSkgewotICAgICAgICAvLyBwYXNzCi0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzZW5kT3JkZXJlZEJyb2FkY2FzdChJbnRlbnQgYXJnMCwgU3RyaW5nIGFyZzEsCi0gICAgICAgICAgICBCcm9hZGNhc3RSZWNlaXZlciBhcmcyLCBIYW5kbGVyIGFyZzMsIGludCBhcmc0LCBTdHJpbmcgYXJnNSwKLSAgICAgICAgICAgIEJ1bmRsZSBhcmc2KSB7Ci0gICAgICAgIC8vIHBhc3MKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNlbmRPcmRlcmVkQnJvYWRjYXN0KEludGVudCBpbnRlbnQsIFN0cmluZyByZWNlaXZlclBlcm1pc3Npb24sIGludCBhcHBPcCwKLSAgICAgICAgICAgIEJyb2FkY2FzdFJlY2VpdmVyIHJlc3VsdFJlY2VpdmVyLCBIYW5kbGVyIHNjaGVkdWxlciwgaW50IGluaXRpYWxDb2RlLAotICAgICAgICAgICAgU3RyaW5nIGluaXRpYWxEYXRhLCBCdW5kbGUgaW5pdGlhbEV4dHJhcykgewotICAgICAgICAvLyBwYXNzCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2VuZEJyb2FkY2FzdEFzVXNlcihJbnRlbnQgaW50ZW50LCBVc2VySGFuZGxlIHVzZXIpIHsKLSAgICAgICAgLy8gcGFzcwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNlbmRCcm9hZGNhc3RBc1VzZXIoSW50ZW50IGludGVudCwgVXNlckhhbmRsZSB1c2VyLAotICAgICAgICAgICAgU3RyaW5nIHJlY2VpdmVyUGVybWlzc2lvbikgewotICAgICAgICAvLyBwYXNzCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2VuZE9yZGVyZWRCcm9hZGNhc3RBc1VzZXIoSW50ZW50IGludGVudCwgVXNlckhhbmRsZSB1c2VyLAotICAgICAgICAgICAgU3RyaW5nIHJlY2VpdmVyUGVybWlzc2lvbiwgQnJvYWRjYXN0UmVjZWl2ZXIgcmVzdWx0UmVjZWl2ZXIsIEhhbmRsZXIgc2NoZWR1bGVyLAotICAgICAgICAgICAgaW50IGluaXRpYWxDb2RlLCBTdHJpbmcgaW5pdGlhbERhdGEsIEJ1bmRsZSBpbml0aWFsRXh0cmFzKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzZW5kU3RpY2t5QnJvYWRjYXN0KEludGVudCBhcmcwKSB7Ci0gICAgICAgIC8vIHBhc3MKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNlbmRTdGlja3lPcmRlcmVkQnJvYWRjYXN0KEludGVudCBpbnRlbnQsCi0gICAgICAgICAgICBCcm9hZGNhc3RSZWNlaXZlciByZXN1bHRSZWNlaXZlciwgSGFuZGxlciBzY2hlZHVsZXIsIGludCBpbml0aWFsQ29kZSwgU3RyaW5nIGluaXRpYWxEYXRhLAotICAgICAgICAgICBCdW5kbGUgaW5pdGlhbEV4dHJhcykgewotICAgICAgICAvLyBwYXNzCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2VuZFN0aWNreUJyb2FkY2FzdEFzVXNlcihJbnRlbnQgaW50ZW50LCBVc2VySGFuZGxlIHVzZXIpIHsKLSAgICAgICAgLy8gcGFzcwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNlbmRTdGlja3lPcmRlcmVkQnJvYWRjYXN0QXNVc2VyKEludGVudCBpbnRlbnQsCi0gICAgICAgICAgICBVc2VySGFuZGxlIHVzZXIsIEJyb2FkY2FzdFJlY2VpdmVyIHJlc3VsdFJlY2VpdmVyLAotICAgICAgICAgICAgSGFuZGxlciBzY2hlZHVsZXIsIGludCBpbml0aWFsQ29kZSwgU3RyaW5nIGluaXRpYWxEYXRhLAotICAgICAgICAgICAgQnVuZGxlIGluaXRpYWxFeHRyYXMpIHsKLSAgICAgICAgLy8gcGFzcwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHJlbW92ZVN0aWNreUJyb2FkY2FzdEFzVXNlcihJbnRlbnQgaW50ZW50LCBVc2VySGFuZGxlIHVzZXIpIHsKLSAgICAgICAgLy8gcGFzcwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldFRoZW1lKGludCBhcmcwKSB7Ci0gICAgICAgIC8vIHBhc3MKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldFdhbGxwYXBlcihCaXRtYXAgYXJnMCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcwotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0V2FsbHBhcGVyKElucHV0U3RyZWFtIGFyZzApIHRocm93cyBJT0V4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHN0YXJ0QWN0aXZpdHkoSW50ZW50IGFyZzApIHsKLSAgICAgICAgLy8gcGFzcwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHN0YXJ0QWN0aXZpdHkoSW50ZW50IGFyZzAsIEJ1bmRsZSBhcmcxKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzdGFydEludGVudFNlbmRlcihJbnRlbnRTZW5kZXIgaW50ZW50LAotICAgICAgICAgICAgSW50ZW50IGZpbGxJbkludGVudCwgaW50IGZsYWdzTWFzaywgaW50IGZsYWdzVmFsdWVzLCBpbnQgZXh0cmFGbGFncykKLSAgICAgICAgICAgIHRocm93cyBJbnRlbnRTZW5kZXIuU2VuZEludGVudEV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzdGFydEludGVudFNlbmRlcihJbnRlbnRTZW5kZXIgaW50ZW50LAotICAgICAgICAgICAgSW50ZW50IGZpbGxJbkludGVudCwgaW50IGZsYWdzTWFzaywgaW50IGZsYWdzVmFsdWVzLCBpbnQgZXh0cmFGbGFncywKLSAgICAgICAgICAgIEJ1bmRsZSBvcHRpb25zKSB0aHJvd3MgSW50ZW50U2VuZGVyLlNlbmRJbnRlbnRFeGNlcHRpb24gewotICAgICAgICAvLyBwYXNzCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gc3RhcnRJbnN0cnVtZW50YXRpb24oQ29tcG9uZW50TmFtZSBhcmcwLCBTdHJpbmcgYXJnMSwKLSAgICAgICAgICAgIEJ1bmRsZSBhcmcyKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBDb21wb25lbnROYW1lIHN0YXJ0U2VydmljZShJbnRlbnQgYXJnMCkgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIHN0b3BTZXJ2aWNlKEludGVudCBhcmcwKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBDb21wb25lbnROYW1lIHN0YXJ0U2VydmljZUFzVXNlcihJbnRlbnQgYXJnMCwgVXNlckhhbmRsZSBhcmcxKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gc3RvcFNlcnZpY2VBc1VzZXIoSW50ZW50IGFyZzAsIFVzZXJIYW5kbGUgYXJnMSkgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB1bmJpbmRTZXJ2aWNlKFNlcnZpY2VDb25uZWN0aW9uIGFyZzApIHsKLSAgICAgICAgLy8gcGFzcwotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdW5yZWdpc3RlclJlY2VpdmVyKEJyb2FkY2FzdFJlY2VpdmVyIGFyZzApIHsKLSAgICAgICAgLy8gcGFzcwotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIENvbnRleHQgZ2V0QXBwbGljYXRpb25Db250ZXh0KCkgewotICAgICAgICByZXR1cm4gdGhpczsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzdGFydEFjdGl2aXRpZXMoSW50ZW50W10gYXJnMCkgewotICAgICAgICAvLyBwYXNzCi0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzdGFydEFjdGl2aXRpZXMoSW50ZW50W10gYXJnMCwgQnVuZGxlIGFyZzEpIHsKLSAgICAgICAgLy8gcGFzcwotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNSZXN0cmljdGVkKCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEZpbGUgZ2V0T2JiRGlyKCkgewotICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZXJyb3IoTGF5b3V0TG9nLlRBR19VTlNVUFBPUlRFRCwgIk9CQiBub3Qgc3VwcG9ydGVkIiwgbnVsbCk7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBEaXNwbGF5QWRqdXN0bWVudHMgZ2V0RGlzcGxheUFkanVzdG1lbnRzKGludCBkaXNwbGF5SWQpIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBAaGlkZQotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0VXNlcklkKCkgewotICAgICAgICByZXR1cm4gMDsgLy8gbm90IHVzZWQKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgRmlsZVtdIGdldEV4dGVybmFsRmlsZXNEaXJzKFN0cmluZyB0eXBlKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG5ldyBGaWxlWzBdOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBGaWxlW10gZ2V0T2JiRGlycygpIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gbmV3IEZpbGVbMF07Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEZpbGVbXSBnZXRFeHRlcm5hbENhY2hlRGlycygpIHsKLSAgICAgICAgLy8gcGFzcwotICAgICAgICByZXR1cm4gbmV3IEZpbGVbMF07Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9hbmRyb2lkL0JyaWRnZUlJbnB1dE1ldGhvZE1hbmFnZXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYW5kcm9pZC9CcmlkZ2VJSW5wdXRNZXRob2RNYW5hZ2VyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjZjVlZDUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9hbmRyb2lkL0JyaWRnZUlJbnB1dE1ldGhvZE1hbmFnZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDIzMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmFuZHJvaWQ7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC52aWV3LklJbnB1dENvbnRleHQ7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwudmlldy5JSW5wdXRNZXRob2RDbGllbnQ7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwudmlldy5JSW5wdXRNZXRob2RNYW5hZ2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLnZpZXcuSW5wdXRCaW5kUmVzdWx0OwotCi1pbXBvcnQgYW5kcm9pZC5vcy5JQmluZGVyOwotaW1wb3J0IGFuZHJvaWQub3MuUmVtb3RlRXhjZXB0aW9uOwotaW1wb3J0IGFuZHJvaWQub3MuUmVzdWx0UmVjZWl2ZXI7Ci1pbXBvcnQgYW5kcm9pZC50ZXh0LnN0eWxlLlN1Z2dlc3Rpb25TcGFuOwotaW1wb3J0IGFuZHJvaWQudmlldy5pbnB1dG1ldGhvZC5FZGl0b3JJbmZvOwotaW1wb3J0IGFuZHJvaWQudmlldy5pbnB1dG1ldGhvZC5JbnB1dE1ldGhvZEluZm87Ci1pbXBvcnQgYW5kcm9pZC52aWV3LmlucHV0bWV0aG9kLklucHV0TWV0aG9kU3VidHlwZTsKLQotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotCi0vKioKLSAqIEJhc2ljIGltcGxlbWVudGF0aW9uIG9mIElJbnB1dE1ldGhvZE1hbmFnZXIgdGhhdCBkb2VzIG5vdGhpbmcuCi0gKgotICovCi1wdWJsaWMgY2xhc3MgQnJpZGdlSUlucHV0TWV0aG9kTWFuYWdlciBpbXBsZW1lbnRzIElJbnB1dE1ldGhvZE1hbmFnZXIgewotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgYWRkQ2xpZW50KElJbnB1dE1ldGhvZENsaWVudCBhcmcwLCBJSW5wdXRDb250ZXh0IGFyZzEsIGludCBhcmcyLCBpbnQgYXJnMykKLSAgICAgICAgICAgIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBmaW5pc2hJbnB1dChJSW5wdXRNZXRob2RDbGllbnQgYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBJbnB1dE1ldGhvZFN1YnR5cGUgZ2V0Q3VycmVudElucHV0TWV0aG9kU3VidHlwZSgpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBMaXN0PElucHV0TWV0aG9kSW5mbz4gZ2V0RW5hYmxlZElucHV0TWV0aG9kTGlzdCgpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBMaXN0PElucHV0TWV0aG9kU3VidHlwZT4gZ2V0RW5hYmxlZElucHV0TWV0aG9kU3VidHlwZUxpc3QoU3RyaW5nIGFyZzAsCi0gICAgICAgICAgICBib29sZWFuIGFyZzEpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBMaXN0PElucHV0TWV0aG9kSW5mbz4gZ2V0SW5wdXRNZXRob2RMaXN0KCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIElucHV0TWV0aG9kU3VidHlwZSBnZXRMYXN0SW5wdXRNZXRob2RTdWJ0eXBlKCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIExpc3QgZ2V0U2hvcnRjdXRJbnB1dE1ldGhvZHNBbmRTdWJ0eXBlcygpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGhpZGVNeVNvZnRJbnB1dChJQmluZGVyIGFyZzAsIGludCBhcmcxKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaGlkZVNvZnRJbnB1dChJSW5wdXRNZXRob2RDbGllbnQgYXJnMCwgaW50IGFyZzEsIFJlc3VsdFJlY2VpdmVyIGFyZzIpCi0gICAgICAgICAgICB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gbm90aWZ5U3VnZ2VzdGlvblBpY2tlZChTdWdnZXN0aW9uU3BhbiBhcmcwLCBTdHJpbmcgYXJnMSwgaW50IGFyZzIpCi0gICAgICAgICAgICB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgcmVnaXN0ZXJTdWdnZXN0aW9uU3BhbnNGb3JOb3RpZmljYXRpb24oU3VnZ2VzdGlvblNwYW5bXSBhcmcwKQotICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHJlbW92ZUNsaWVudChJSW5wdXRNZXRob2RDbGllbnQgYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldEFkZGl0aW9uYWxJbnB1dE1ldGhvZFN1YnR5cGVzKFN0cmluZyBhcmcwLCBJbnB1dE1ldGhvZFN1YnR5cGVbXSBhcmcxKQotICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBzZXRDdXJyZW50SW5wdXRNZXRob2RTdWJ0eXBlKElucHV0TWV0aG9kU3VidHlwZSBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0SW1lV2luZG93U3RhdHVzKElCaW5kZXIgYXJnMCwgaW50IGFyZzEsIGludCBhcmcyKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0SW5wdXRNZXRob2QoSUJpbmRlciBhcmcwLCBTdHJpbmcgYXJnMSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldElucHV0TWV0aG9kQW5kU3VidHlwZShJQmluZGVyIGFyZzAsIFN0cmluZyBhcmcxLCBJbnB1dE1ldGhvZFN1YnR5cGUgYXJnMikKLSAgICAgICAgICAgIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBzZXRJbnB1dE1ldGhvZEVuYWJsZWQoU3RyaW5nIGFyZzAsIGJvb2xlYW4gYXJnMSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNob3dJbnB1dE1ldGhvZEFuZFN1YnR5cGVFbmFibGVyRnJvbUNsaWVudChJSW5wdXRNZXRob2RDbGllbnQgYXJnMCwgU3RyaW5nIGFyZzEpCi0gICAgICAgICAgICB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2hvd0lucHV0TWV0aG9kUGlja2VyRnJvbUNsaWVudChJSW5wdXRNZXRob2RDbGllbnQgYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNob3dNeVNvZnRJbnB1dChJQmluZGVyIGFyZzAsIGludCBhcmcxKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gc2hvd1NvZnRJbnB1dChJSW5wdXRNZXRob2RDbGllbnQgYXJnMCwgaW50IGFyZzEsIFJlc3VsdFJlY2VpdmVyIGFyZzIpCi0gICAgICAgICAgICB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIElucHV0QmluZFJlc3VsdCBzdGFydElucHV0KElJbnB1dE1ldGhvZENsaWVudCBjbGllbnQsIElJbnB1dENvbnRleHQgaW5wdXRDb250ZXh0LAotICAgICAgICAgICAgRWRpdG9ySW5mbyBhdHRyaWJ1dGUsIGludCBjb250cm9sRmxhZ3MpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIHN3aXRjaFRvTGFzdElucHV0TWV0aG9kKElCaW5kZXIgYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgYm9vbGVhbiBzd2l0Y2hUb05leHRJbnB1dE1ldGhvZChJQmluZGVyIGFyZzAsIGJvb2xlYW4gYXJnMSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgYm9vbGVhbiBzaG91bGRPZmZlclN3aXRjaGluZ1RvTmV4dElucHV0TWV0aG9kKElCaW5kZXIgYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHVwZGF0ZVN0YXR1c0ljb24oSUJpbmRlciBhcmcwLCBTdHJpbmcgYXJnMSwgaW50IGFyZzIpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCi0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgSW5wdXRCaW5kUmVzdWx0IHdpbmRvd0dhaW5lZEZvY3VzKElJbnB1dE1ldGhvZENsaWVudCBjbGllbnQsIElCaW5kZXIgd2luZG93VG9rZW4sCi0gICAgICAgICAgICBpbnQgY29udHJvbEZsYWdzLCBpbnQgc29mdElucHV0TW9kZSwgaW50IHdpbmRvd0ZsYWdzLCBFZGl0b3JJbmZvIGF0dHJpYnV0ZSwKLSAgICAgICAgICAgIElJbnB1dENvbnRleHQgaW5wdXRDb250ZXh0KSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgSUJpbmRlciBhc0JpbmRlcigpIHsKLSAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YgotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2FuZHJvaWQvQnJpZGdlTGF5b3V0UGFyYW1zTWFwQXR0cmlidXRlcy5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9hbmRyb2lkL0JyaWRnZUxheW91dFBhcmFtc01hcEF0dHJpYnV0ZXMuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjU5MTJlNy4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2FuZHJvaWQvQnJpZGdlTGF5b3V0UGFyYW1zTWFwQXR0cmlidXRlcy5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZDsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlQ29uc3RhbnRzOwotCi1pbXBvcnQgYW5kcm9pZC51dGlsLkF0dHJpYnV0ZVNldDsKLQotaW1wb3J0IGphdmEudXRpbC5NYXA7Ci0KLS8qKgotICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIHtAbGluayBBdHRyaWJ1dGVTZXR9IGludGVyZmFjZSBvbiB0b3Agb2YgYSBtYXAgb2YgYXR0cmlidXRlIGluIHRoZSBmb3JtCi0gKiBvZiAobmFtZSwgdmFsdWUpLgotICoKLSAqIFRoaXMgaXMgbWVhbnQgdG8gYmUgY2FsbGVkIG9ubHkgZnJvbSB7QGxpbmsgQnJpZGdlQ29udGV4dCNvYnRhaW5TdHlsZWRBdHRyaWJ1dGVzKEF0dHJpYnV0ZVNldCwgaW50W10sIGludCwgaW50KX0KLSAqIGluIHRoZSBjYXNlIG9mIExheW91dFBhcmFtcyBhbmQgdGhlcmVmb3JlIGlzbid0IGEgZnVsbCBpbXBsZW1lbnRhdGlvbi4KLSAqLwotcHVibGljIGNsYXNzIEJyaWRnZUxheW91dFBhcmFtc01hcEF0dHJpYnV0ZXMgaW1wbGVtZW50cyBBdHRyaWJ1dGVTZXQgewotCi0gICAgcHJpdmF0ZSBmaW5hbCBNYXA8U3RyaW5nLCBTdHJpbmc+IG1BdHRyaWJ1dGVzOwotCi0gICAgcHVibGljIEJyaWRnZUxheW91dFBhcmFtc01hcEF0dHJpYnV0ZXMoTWFwPFN0cmluZywgU3RyaW5nPiBhdHRyaWJ1dGVzKSB7Ci0gICAgICAgIG1BdHRyaWJ1dGVzID0gYXR0cmlidXRlczsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldEF0dHJpYnV0ZVZhbHVlKFN0cmluZyBuYW1lc3BhY2UsIFN0cmluZyBuYW1lKSB7Ci0gICAgICAgIGlmIChCcmlkZ2VDb25zdGFudHMuTlNfUkVTT1VSQ0VTLmVxdWFscyhuYW1lc3BhY2UpKSB7Ci0gICAgICAgICAgICByZXR1cm4gbUF0dHJpYnV0ZXMuZ2V0KG5hbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgLy8gLS0tLSB0aGUgZm9sbG93aW5nIG1ldGhvZHMgYXJlIG5vdCBjYWxsZWQgZnJvbQotICAgIC8vIEJyaWRnZUNvbnRleHQjb2J0YWluU3R5bGVkQXR0cmlidXRlcyhBdHRyaWJ1dGVTZXQsIGludFtdLCBpbnQsIGludCkKLSAgICAvLyBTaG91bGQgdGhleSBldmVyIGJlIGNhbGxlZCwgd2UnbGwganVzdCBpbXBsZW1lbnQgdGhlbSBvbiBhIG5lZWQgYmFzaXMuCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldEF0dHJpYnV0ZUNvdW50KCkgewotICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldEF0dHJpYnV0ZU5hbWUoaW50IGluZGV4KSB7Ci0gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0QXR0cmlidXRlVmFsdWUoaW50IGluZGV4KSB7Ci0gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0UG9zaXRpb25EZXNjcmlwdGlvbigpIHsKLSAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRBdHRyaWJ1dGVOYW1lUmVzb3VyY2UoaW50IGluZGV4KSB7Ci0gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0QXR0cmlidXRlTGlzdFZhbHVlKFN0cmluZyBuYW1lc3BhY2UsIFN0cmluZyBhdHRyaWJ1dGUsCi0gICAgICAgICAgICBTdHJpbmdbXSBvcHRpb25zLCBpbnQgZGVmYXVsdFZhbHVlKSB7Ci0gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGdldEF0dHJpYnV0ZUJvb2xlYW5WYWx1ZShTdHJpbmcgbmFtZXNwYWNlLCBTdHJpbmcgYXR0cmlidXRlLAotICAgICAgICAgICAgYm9vbGVhbiBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRBdHRyaWJ1dGVSZXNvdXJjZVZhbHVlKFN0cmluZyBuYW1lc3BhY2UsIFN0cmluZyBhdHRyaWJ1dGUsCi0gICAgICAgICAgICBpbnQgZGVmYXVsdFZhbHVlKSB7Ci0gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0QXR0cmlidXRlSW50VmFsdWUoU3RyaW5nIG5hbWVzcGFjZSwgU3RyaW5nIGF0dHJpYnV0ZSwKLSAgICAgICAgICAgIGludCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRBdHRyaWJ1dGVVbnNpZ25lZEludFZhbHVlKFN0cmluZyBuYW1lc3BhY2UsIFN0cmluZyBhdHRyaWJ1dGUsCi0gICAgICAgICAgICBpbnQgZGVmYXVsdFZhbHVlKSB7Ci0gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBmbG9hdCBnZXRBdHRyaWJ1dGVGbG9hdFZhbHVlKFN0cmluZyBuYW1lc3BhY2UsIFN0cmluZyBhdHRyaWJ1dGUsCi0gICAgICAgICAgICBmbG9hdCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRBdHRyaWJ1dGVMaXN0VmFsdWUoaW50IGluZGV4LAotICAgICAgICAgICAgU3RyaW5nW10gb3B0aW9ucywgaW50IGRlZmF1bHRWYWx1ZSkgewotICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBnZXRBdHRyaWJ1dGVCb29sZWFuVmFsdWUoaW50IGluZGV4LCBib29sZWFuIGRlZmF1bHRWYWx1ZSkgewotICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldEF0dHJpYnV0ZVJlc291cmNlVmFsdWUoaW50IGluZGV4LCBpbnQgZGVmYXVsdFZhbHVlKSB7Ci0gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0QXR0cmlidXRlSW50VmFsdWUoaW50IGluZGV4LCBpbnQgZGVmYXVsdFZhbHVlKSB7Ci0gICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0QXR0cmlidXRlVW5zaWduZWRJbnRWYWx1ZShpbnQgaW5kZXgsIGludCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGZsb2F0IGdldEF0dHJpYnV0ZUZsb2F0VmFsdWUoaW50IGluZGV4LCBmbG9hdCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRJZEF0dHJpYnV0ZSgpIHsKLSAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRDbGFzc0F0dHJpYnV0ZSgpIHsKLSAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRJZEF0dHJpYnV0ZVJlc291cmNlVmFsdWUoaW50IGRlZmF1bHRWYWx1ZSkgewotICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldFN0eWxlQXR0cmlidXRlKCkgewotICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2FuZHJvaWQvQnJpZGdlUG93ZXJNYW5hZ2VyLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2FuZHJvaWQvQnJpZGdlUG93ZXJNYW5hZ2VyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4MTMzN2MuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9hbmRyb2lkL0JyaWRnZVBvd2VyTWFuYWdlci5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTMzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZDsKLQotaW1wb3J0IGFuZHJvaWQub3MuSUJpbmRlcjsKLWltcG9ydCBhbmRyb2lkLm9zLklQb3dlck1hbmFnZXI7Ci1pbXBvcnQgYW5kcm9pZC5vcy5SZW1vdGVFeGNlcHRpb247Ci1pbXBvcnQgYW5kcm9pZC5vcy5Xb3JrU291cmNlOwotCi0vKioKLSAqIEZha2UgaW1wbGVtZW50YXRpb24gb2YgSVBvd2VyTWFuYWdlci4KLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBCcmlkZ2VQb3dlck1hbmFnZXIgaW1wbGVtZW50cyBJUG93ZXJNYW5hZ2VyIHsKLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGlzU2NyZWVuT24oKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIElCaW5kZXIgYXNCaW5kZXIoKSB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgYWNxdWlyZVdha2VMb2NrKElCaW5kZXIgYXJnMCwgaW50IGFyZzEsIFN0cmluZyBhcmcyLCBTdHJpbmcgYXJnMl81LCBXb3JrU291cmNlIGFyZzMpCi0gICAgICAgICAgICB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGFjcXVpcmVXYWtlTG9ja1dpdGhVaWQoSUJpbmRlciBhcmcwLCBpbnQgYXJnMSwgU3RyaW5nIGFyZzIsIFN0cmluZyBhcmcyXzUsIGludCBhcmczKQotICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBjcmFzaChTdHJpbmcgYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBnb1RvU2xlZXAobG9uZyBhcmcwLCBpbnQgYXJnMSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBuYXAobG9uZyBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHJlYm9vdChib29sZWFuIGNvbmZpcm0sIFN0cmluZyByZWFzb24sIGJvb2xlYW4gd2FpdCkgewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2h1dGRvd24oYm9vbGVhbiBjb25maXJtLCBib29sZWFuIHdhaXQpIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHJlbGVhc2VXYWtlTG9jayhJQmluZGVyIGFyZzAsIGludCBhcmcxKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHVwZGF0ZVdha2VMb2NrVWlkcyhJQmluZGVyIGFyZzAsIGludFtdIGFyZzEpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0QXR0ZW50aW9uTGlnaHQoYm9vbGVhbiBhcmcwLCBpbnQgYXJnMSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzZXRUZW1wb3JhcnlTY3JlZW5BdXRvQnJpZ2h0bmVzc0FkanVzdG1lbnRTZXR0aW5nT3ZlcnJpZGUoZmxvYXQgYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzZXRUZW1wb3JhcnlTY3JlZW5CcmlnaHRuZXNzU2V0dGluZ092ZXJyaWRlKGludCBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldE1heGltdW1TY3JlZW5PZmZUaW1lb3V0RnJvbURldmljZUFkbWluKGludCBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldFN0YXlPblNldHRpbmcoaW50IGFyZzApIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdXBkYXRlV2FrZUxvY2tXb3JrU291cmNlKElCaW5kZXIgYXJnMCwgV29ya1NvdXJjZSBhcmcxKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGlzV2FrZUxvY2tMZXZlbFN1cHBvcnRlZChpbnQgbGV2ZWwpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHVzZXJBY3Rpdml0eShsb25nIHRpbWUsIGludCBldmVudCwgaW50IGZsYWdzKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHdha2VVcChsb25nIHRpbWUpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9hbmRyb2lkL0JyaWRnZVdpbmRvdy5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9hbmRyb2lkL0JyaWRnZVdpbmRvdy5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjU3NmQyLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYW5kcm9pZC9CcmlkZ2VXaW5kb3cuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDEwNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmFuZHJvaWQ7Ci0KLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLkNvbmZpZ3VyYXRpb247Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5SZWN0OwotaW1wb3J0IGFuZHJvaWQub3MuQnVuZGxlOwotaW1wb3J0IGFuZHJvaWQub3MuSUJpbmRlcjsKLWltcG9ydCBhbmRyb2lkLm9zLlBhcmNlbEZpbGVEZXNjcmlwdG9yOwotaW1wb3J0IGFuZHJvaWQub3MuUmVtb3RlRXhjZXB0aW9uOwotaW1wb3J0IGFuZHJvaWQudmlldy5EcmFnRXZlbnQ7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LklXaW5kb3c7Ci0KLS8qKgotICogSW1wbGVtZW50YXRpb24gb2Yge0BsaW5rIElXaW5kb3d9IHRvIHBhc3MgdG8gdGhlIEF0dGFjaEluZm8uCi0gKi8KLXB1YmxpYyBmaW5hbCBjbGFzcyBCcmlkZ2VXaW5kb3cgaW1wbGVtZW50cyBJV2luZG93IHsKLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoQXBwVmlzaWJpbGl0eShib29sZWFuIGFyZzApIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgZGlzcGF0Y2hHZXROZXdTdXJmYWNlKCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBleGVjdXRlQ29tbWFuZChTdHJpbmcgYXJnMCwgU3RyaW5nIGFyZzEsIFBhcmNlbEZpbGVEZXNjcmlwdG9yIGFyZzIpCi0gICAgICAgICAgICB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHJlc2l6ZWQoUmVjdCBhcmcxLCBSZWN0IGFyZzFwNSwgUmVjdCBhcmcyLCBSZWN0IGFyZzMsCi0gICAgICAgICAgICBib29sZWFuIGFyZzQsIENvbmZpZ3VyYXRpb24gYXJnNSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBtb3ZlZChpbnQgYXJnMCwgaW50IGFyZzEpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgZGlzcGF0Y2hTY3JlZW5TdGF0ZShib29sZWFuIG9uKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHdpbmRvd0ZvY3VzQ2hhbmdlZChib29sZWFuIGFyZzAsIGJvb2xlYW4gYXJnMSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBkaXNwYXRjaFdhbGxwYXBlck9mZnNldHMoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeFN0ZXAsIGZsb2F0IHlTdGVwLAotICAgICAgICAgICAgYm9vbGVhbiBzeW5jKSB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBkaXNwYXRjaFdhbGxwYXBlckNvbW1hbmQoU3RyaW5nIGFjdGlvbiwgaW50IHgsIGludCB5LAotICAgICAgICAgICAgaW50IHosIEJ1bmRsZSBleHRyYXMsIGJvb2xlYW4gc3luYykgewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgY2xvc2VTeXN0ZW1EaWFsb2dzKFN0cmluZyByZWFzb24pIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGRpc3BhdGNoRHJhZ0V2ZW50KERyYWdFdmVudCBldmVudCkgewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgZGlzcGF0Y2hTeXN0ZW1VaVZpc2liaWxpdHlDaGFuZ2VkKGludCBzZXEsIGludCBnbG9iYWxVaSwKLSAgICAgICAgICAgIGludCBsb2NhbFZhbHVlLCBpbnQgbG9jYWxDaGFuZ2VzKSB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBkb25lQW5pbWF0aW5nKCkgewotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBJQmluZGVyIGFzQmluZGVyKCkgewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYW5kcm9pZC9CcmlkZ2VXaW5kb3dTZXNzaW9uLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2FuZHJvaWQvQnJpZGdlV2luZG93U2Vzc2lvbi5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOWU2ODc4Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYW5kcm9pZC9CcmlkZ2VXaW5kb3dTZXNzaW9uLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyMDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5hbmRyb2lkOwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LkNsaXBEYXRhOwotaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuQ29uZmlndXJhdGlvbjsKLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlJlY3Q7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5SZWdpb247Ci1pbXBvcnQgYW5kcm9pZC5vcy5CdW5kbGU7Ci1pbXBvcnQgYW5kcm9pZC5vcy5JQmluZGVyOwotaW1wb3J0IGFuZHJvaWQub3MuUmVtb3RlRXhjZXB0aW9uOwotaW1wb3J0IGFuZHJvaWQudmlldy5JV2luZG93OwotaW1wb3J0IGFuZHJvaWQudmlldy5JV2luZG93SWQ7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LklXaW5kb3dTZXNzaW9uOwotaW1wb3J0IGFuZHJvaWQudmlldy5JbnB1dENoYW5uZWw7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlN1cmZhY2U7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlN1cmZhY2VWaWV3OwotaW1wb3J0IGFuZHJvaWQudmlldy5XaW5kb3dNYW5hZ2VyLkxheW91dFBhcmFtczsKLQotLyoqCi0gKiBJbXBsZW1lbnRhdGlvbiBvZiB7QGxpbmsgSVdpbmRvd1Nlc3Npb259IHNvIHRoYXQgbVNlc3Npb24gaXMgbm90IG51bGwgaW4KLSAqIHRoZSB7QGxpbmsgU3VyZmFjZVZpZXd9LgotICovCi1wdWJsaWMgZmluYWwgY2xhc3MgQnJpZGdlV2luZG93U2Vzc2lvbiBpbXBsZW1lbnRzIElXaW5kb3dTZXNzaW9uIHsKLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgYWRkKElXaW5kb3cgYXJnMCwgaW50IHNlcSwgTGF5b3V0UGFyYW1zIGFyZzEsIGludCBhcmcyLCBSZWN0IGFyZzMsCi0gICAgICAgICAgICBJbnB1dENoYW5uZWwgb3V0SW5wdXRjaGFubmVsKQotICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBhZGRUb0Rpc3BsYXkoSVdpbmRvdyBhcmcwLCBpbnQgc2VxLCBMYXlvdXRQYXJhbXMgYXJnMSwgaW50IGFyZzIsIGludCBkaXNwbGF5SWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdCBhcmczLCBJbnB1dENoYW5uZWwgb3V0SW5wdXRjaGFubmVsKQotICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBhZGRXaXRob3V0SW5wdXRDaGFubmVsKElXaW5kb3cgYXJnMCwgaW50IHNlcSwgTGF5b3V0UGFyYW1zIGFyZzEsIGludCBhcmcyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0IGFyZzMpCi0gICAgICAgICAgICB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGFkZFRvRGlzcGxheVdpdGhvdXRJbnB1dENoYW5uZWwoSVdpbmRvdyBhcmcwLCBpbnQgc2VxLCBMYXlvdXRQYXJhbXMgYXJnMSwgaW50IGFyZzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaXNwbGF5SWQsIFJlY3QgYXJnMykKLSAgICAgICAgICAgIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGZpbmlzaERyYXdpbmcoSVdpbmRvdyBhcmcwKSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGdldEluVG91Y2hNb2RlKCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIHBlcmZvcm1IYXB0aWNGZWVkYmFjayhJV2luZG93IHdpbmRvdywgaW50IGVmZmVjdElkLCBib29sZWFuIGFsd2F5cykgewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCByZWxheW91dChJV2luZG93IGFyZzAsIGludCBzZXEsIExheW91dFBhcmFtcyBhcmcxLCBpbnQgYXJnMiwgaW50IGFyZzMsIGludCBhcmc0LAotICAgICAgICAgICAgaW50IGFyZzRfNSwgUmVjdCBhcmc1WiwgUmVjdCBhcmc1LCBSZWN0IGFyZzYsIFJlY3QgYXJnNywgQ29uZmlndXJhdGlvbiBhcmc3YiwKLSAgICAgICAgICAgIFN1cmZhY2UgYXJnOCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgcGVyZm9ybURlZmVycmVkRGVzdHJveShJV2luZG93IHdpbmRvdykgewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gb3V0T2ZNZW1vcnkoSVdpbmRvdyB3aW5kb3cpIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgZ2V0RGlzcGxheUZyYW1lKElXaW5kb3cgd2luZG93LCBSZWN0IG91dERpc3BsYXlGcmFtZSkgewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgcmVtb3ZlKElXaW5kb3cgYXJnMCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzZXRJblRvdWNoTW9kZShib29sZWFuIGFyZzApIHRocm93cyBSZW1vdGVFeGNlcHRpb24gewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0VHJhbnNwYXJlbnRSZWdpb24oSVdpbmRvdyBhcmcwLCBSZWdpb24gYXJnMSkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBzZXRJbnNldHMoSVdpbmRvdyB3aW5kb3csIGludCB0b3VjaGFibGUsIFJlY3QgY29udGVudEluc2V0cywKLSAgICAgICAgICAgIFJlY3QgdmlzaWJsZUluc2V0cywgUmVnaW9uIHRvdWNoYWJsZVJlZ2lvbikgewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIElCaW5kZXIgcHJlcGFyZURyYWcoSVdpbmRvdyB3aW5kb3csIGludCBmbGFncywKLSAgICAgICAgICAgIGludCB0aHVtYm5haWxXaWR0aCwgaW50IHRodW1ibmFpbEhlaWdodCwgU3VyZmFjZSBvdXRTdXJmYWNlKQotICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdwotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBwZXJmb3JtRHJhZyhJV2luZG93IHdpbmRvdywgSUJpbmRlciBkcmFnVG9rZW4sCi0gICAgICAgICAgICBmbG9hdCB0b3VjaFgsIGZsb2F0IHRvdWNoWSwgZmxvYXQgdGh1bWJDZW50ZXJYLCBmbG9hdCB0aHVtYkNlbnRlclksCi0gICAgICAgICAgICBDbGlwRGF0YSBkYXRhKQotICAgICAgICAgICAgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgcmVwb3J0RHJvcFJlc3VsdChJV2luZG93IHdpbmRvdywgYm9vbGVhbiBjb25zdW1lZCkgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGRyYWdSZWNpcGllbnRFbnRlcmVkKElXaW5kb3cgd2luZG93KSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgZHJhZ1JlY2lwaWVudEV4aXRlZChJV2luZG93IHdpbmRvdykgdGhyb3dzIFJlbW90ZUV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldFdhbGxwYXBlclBvc2l0aW9uKElCaW5kZXIgd2luZG93LCBmbG9hdCB4LCBmbG9hdCB5LAotICAgICAgICBmbG9hdCB4U3RlcCwgZmxvYXQgeVN0ZXApIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHdhbGxwYXBlck9mZnNldHNDb21wbGV0ZShJQmluZGVyIHdpbmRvdykgewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEJ1bmRsZSBzZW5kV2FsbHBhcGVyQ29tbWFuZChJQmluZGVyIHdpbmRvdywgU3RyaW5nIGFjdGlvbiwgaW50IHgsIGludCB5LAotICAgICAgICAgICAgaW50IHosIEJ1bmRsZSBleHRyYXMsIGJvb2xlYW4gc3luYykgewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHdhbGxwYXBlckNvbW1hbmRDb21wbGV0ZShJQmluZGVyIHdpbmRvdywgQnVuZGxlIHJlc3VsdCkgewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0VW5pdmVyc2VUcmFuc2Zvcm0oSUJpbmRlciB3aW5kb3csIGZsb2F0IGFscGhhLCBmbG9hdCBvZmZ4LCBmbG9hdCBvZmZ5LAotICAgICAgICAgICAgZmxvYXQgZHNkeCwgZmxvYXQgZHRkeCwgZmxvYXQgZHNkeSwgZmxvYXQgZHRkeSkgewotICAgICAgICAvLyBwYXNzIGZvciBub3cuCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIElCaW5kZXIgYXNCaW5kZXIoKSB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgb25SZWN0YW5nbGVPblNjcmVlblJlcXVlc3RlZChJQmluZGVyIHdpbmRvdywgUmVjdCByZWN0YW5nbGUsIGJvb2xlYW4gaW1tZWRpYXRlKSB7Ci0gICAgICAgIC8vIHBhc3MgZm9yIG5vdy4KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgSVdpbmRvd0lkIGdldFdpbmRvd0lkKElCaW5kZXIgd2luZG93KSB0aHJvd3MgUmVtb3RlRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gcGFzcyBmb3Igbm93LgotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2FuZHJvaWQvQnJpZGdlWG1sQmxvY2tQYXJzZXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYW5kcm9pZC9CcmlkZ2VYbWxCbG9ja1BhcnNlci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzg3MTJlLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYW5kcm9pZC9CcmlkZ2VYbWxCbG9ja1BhcnNlci5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNDk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZDsKLQotCi1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLklMYXlvdXRQdWxsUGFyc2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5QYXJzZXJGYWN0b3J5OwotCi1pbXBvcnQgb3JnLnhtbHB1bGwudjEuWG1sUHVsbFBhcnNlcjsKLWltcG9ydCBvcmcueG1scHVsbC52MS5YbWxQdWxsUGFyc2VyRXhjZXB0aW9uOwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5YbWxSZXNvdXJjZVBhcnNlcjsKLWltcG9ydCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0OwotaW1wb3J0IGFuZHJvaWQudXRpbC5CcmlkZ2VYbWxQdWxsQXR0cmlidXRlczsKLQotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLmlvLlJlYWRlcjsKLQotLyoqCi0gKiB7QGxpbmsgQnJpZGdlWG1sQmxvY2tQYXJzZXJ9IHJlaW1wbGVtZW50cyBtb3N0IG9mIGFuZHJvaWQueG1sLlhtbEJsb2NrLlBhcnNlci4KLSAqIEl0IGRlbGVnYXRlcyB0byBib3RoIGFuIGluc3RhbmNlIG9mIHtAbGluayBYbWxQdWxsUGFyc2VyfSBhbmQgYW4gaW5zdGFuY2Ugb2YKLSAqIFhtbFB1bGxBdHRyaWJ1dGVzIChmb3IgdGhlIHtAbGluayBBdHRyaWJ1dGVTZXR9IHBhcnQpLgotICovCi1wdWJsaWMgY2xhc3MgQnJpZGdlWG1sQmxvY2tQYXJzZXIgaW1wbGVtZW50cyBYbWxSZXNvdXJjZVBhcnNlciB7Ci0KLSAgICBwcml2YXRlIGZpbmFsIFhtbFB1bGxQYXJzZXIgbVBhcnNlcjsKLSAgICBwcml2YXRlIGZpbmFsIEJyaWRnZVhtbFB1bGxBdHRyaWJ1dGVzIG1BdHRyaWI7Ci0gICAgcHJpdmF0ZSBmaW5hbCBCcmlkZ2VDb250ZXh0IG1Db250ZXh0OwotICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBtUGxhdGZvcm1GaWxlOwotCi0gICAgcHJpdmF0ZSBib29sZWFuIG1TdGFydGVkID0gZmFsc2U7Ci0gICAgcHJpdmF0ZSBpbnQgbUV2ZW50VHlwZSA9IFNUQVJUX0RPQ1VNRU5UOwotCi0gICAgcHJpdmF0ZSBib29sZWFuIG1Qb3BwZWQgPSB0cnVlOyAvLyBkZWZhdWx0IHRvIHRydWUgaW4gY2FzZSBpdCdzIG5vdCBwdXNoZWQuCi0KLSAgICAvKioKLSAgICAgKiBCdWlsZHMgYSB7QGxpbmsgQnJpZGdlWG1sQmxvY2tQYXJzZXJ9LgotICAgICAqIEBwYXJhbSBwYXJzZXIgVGhlIFhtbFB1bGxQYXJzZXIgdG8gZ2V0IHRoZSBjb250ZW50IGZyb20uCi0gICAgICogQHBhcmFtIGNvbnRleHQgdGhlIENvbnRleHQuCi0gICAgICogQHBhcmFtIHBsYXRmb3JtRmlsZSBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGhlIGZpbGUgaXMgYSBwbGF0Zm9ybSBmaWxlIG9yIG5vdC4KLSAgICAgKi8KLSAgICBwdWJsaWMgQnJpZGdlWG1sQmxvY2tQYXJzZXIoWG1sUHVsbFBhcnNlciBwYXJzZXIsIEJyaWRnZUNvbnRleHQgY29udGV4dCwgYm9vbGVhbiBwbGF0Zm9ybUZpbGUpIHsKLSAgICAgICAgaWYgKFBhcnNlckZhY3RvcnkuTE9HX1BBUlNFUikgewotICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDUlRFICIgKyBwYXJzZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBtUGFyc2VyID0gcGFyc2VyOwotICAgICAgICBtQ29udGV4dCA9IGNvbnRleHQ7Ci0gICAgICAgIG1QbGF0Zm9ybUZpbGUgPSBwbGF0Zm9ybUZpbGU7Ci0gICAgICAgIG1BdHRyaWIgPSBuZXcgQnJpZGdlWG1sUHVsbEF0dHJpYnV0ZXMocGFyc2VyLCBjb250ZXh0LCBtUGxhdGZvcm1GaWxlKTsKLQotICAgICAgICBpZiAobUNvbnRleHQgIT0gbnVsbCkgewotICAgICAgICAgICAgbUNvbnRleHQucHVzaFBhcnNlcih0aGlzKTsKLSAgICAgICAgICAgIG1Qb3BwZWQgPSBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHB1YmxpYyBYbWxQdWxsUGFyc2VyIGdldFBhcnNlcigpIHsKLSAgICAgICAgcmV0dXJuIG1QYXJzZXI7Ci0gICAgfQotCi0gICAgcHVibGljIGJvb2xlYW4gaXNQbGF0Zm9ybUZpbGUoKSB7Ci0gICAgICAgIHJldHVybiBtUGxhdGZvcm1GaWxlOwotICAgIH0KLQotICAgIHB1YmxpYyBPYmplY3QgZ2V0Vmlld0Nvb2tpZSgpIHsKLSAgICAgICAgaWYgKG1QYXJzZXIgaW5zdGFuY2VvZiBJTGF5b3V0UHVsbFBhcnNlcikgewotICAgICAgICAgICAgcmV0dXJuICgoSUxheW91dFB1bGxQYXJzZXIpbVBhcnNlcikuZ2V0Vmlld0Nvb2tpZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgZW5zdXJlUG9wcGVkKCkgewotICAgICAgICBpZiAobUNvbnRleHQgIT0gbnVsbCAmJiBtUG9wcGVkID09IGZhbHNlKSB7Ci0gICAgICAgICAgICBtQ29udGV4dC5wb3BQYXJzZXIoKTsKLSAgICAgICAgICAgIG1Qb3BwZWQgPSB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gLS0tLS0tLSBYbWxSZXNvdXJjZVBhcnNlciBpbXBsZW1lbnRhdGlvbgotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0RmVhdHVyZShTdHJpbmcgbmFtZSwgYm9vbGVhbiBzdGF0ZSkKLSAgICAgICAgICAgIHRocm93cyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uIHsKLSAgICAgICAgaWYgKEZFQVRVUkVfUFJPQ0VTU19OQU1FU1BBQ0VTLmVxdWFscyhuYW1lKSAmJiBzdGF0ZSkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChGRUFUVVJFX1JFUE9SVF9OQU1FU1BBQ0VfQVRUUklCVVRFUy5lcXVhbHMobmFtZSkgJiYgc3RhdGUpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICB0aHJvdyBuZXcgWG1sUHVsbFBhcnNlckV4Y2VwdGlvbigiVW5zdXBwb3J0ZWQgZmVhdHVyZTogIiArIG5hbWUpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGdldEZlYXR1cmUoU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgaWYgKEZFQVRVUkVfUFJPQ0VTU19OQU1FU1BBQ0VTLmVxdWFscyhuYW1lKSkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKEZFQVRVUkVfUkVQT1JUX05BTUVTUEFDRV9BVFRSSUJVVEVTLmVxdWFscyhuYW1lKSkgewotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldFByb3BlcnR5KFN0cmluZyBuYW1lLCBPYmplY3QgdmFsdWUpIHRocm93cyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uIHsKLSAgICAgICAgdGhyb3cgbmV3IFhtbFB1bGxQYXJzZXJFeGNlcHRpb24oInNldFByb3BlcnR5KCkgbm90IHN1cHBvcnRlZCIpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBPYmplY3QgZ2V0UHJvcGVydHkoU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgc2V0SW5wdXQoUmVhZGVyIGluKSB0aHJvd3MgWG1sUHVsbFBhcnNlckV4Y2VwdGlvbiB7Ci0gICAgICAgIG1QYXJzZXIuc2V0SW5wdXQoaW4pOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHNldElucHV0KElucHV0U3RyZWFtIGlucHV0U3RyZWFtLCBTdHJpbmcgaW5wdXRFbmNvZGluZykKLSAgICAgICAgICAgIHRocm93cyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uIHsKLSAgICAgICAgbVBhcnNlci5zZXRJbnB1dChpbnB1dFN0cmVhbSwgaW5wdXRFbmNvZGluZyk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgZGVmaW5lRW50aXR5UmVwbGFjZW1lbnRUZXh0KFN0cmluZyBlbnRpdHlOYW1lLAotICAgICAgICAgICAgU3RyaW5nIHJlcGxhY2VtZW50VGV4dCkgdGhyb3dzIFhtbFB1bGxQYXJzZXJFeGNlcHRpb24gewotICAgICAgICB0aHJvdyBuZXcgWG1sUHVsbFBhcnNlckV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAiZGVmaW5lRW50aXR5UmVwbGFjZW1lbnRUZXh0KCkgbm90IHN1cHBvcnRlZCIpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZXNwYWNlUHJlZml4KGludCBwb3MpIHRocm93cyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uIHsKLSAgICAgICAgdGhyb3cgbmV3IFhtbFB1bGxQYXJzZXJFeGNlcHRpb24oImdldE5hbWVzcGFjZVByZWZpeCgpIG5vdCBzdXBwb3J0ZWQiKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIGdldElucHV0RW5jb2RpbmcoKSB7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZXNwYWNlKFN0cmluZyBwcmVmaXgpIHsKLSAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oImdldE5hbWVzcGFjZSgpIG5vdCBzdXBwb3J0ZWQiKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldE5hbWVzcGFjZUNvdW50KGludCBkZXB0aCkgdGhyb3dzIFhtbFB1bGxQYXJzZXJFeGNlcHRpb24gewotICAgICAgICB0aHJvdyBuZXcgWG1sUHVsbFBhcnNlckV4Y2VwdGlvbigiZ2V0TmFtZXNwYWNlQ291bnQoKSBub3Qgc3VwcG9ydGVkIik7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRQb3NpdGlvbkRlc2NyaXB0aW9uKCkgewotICAgICAgICByZXR1cm4gIkJpbmFyeSBYTUwgZmlsZSBsaW5lICMiICsgZ2V0TGluZU51bWJlcigpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZXNwYWNlVXJpKGludCBwb3MpIHRocm93cyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uIHsKLSAgICAgICAgdGhyb3cgbmV3IFhtbFB1bGxQYXJzZXJFeGNlcHRpb24oImdldE5hbWVzcGFjZVVyaSgpIG5vdCBzdXBwb3J0ZWQiKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldENvbHVtbk51bWJlcigpIHsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0RGVwdGgoKSB7Ci0gICAgICAgIHJldHVybiBtUGFyc2VyLmdldERlcHRoKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRUZXh0KCkgewotICAgICAgICByZXR1cm4gbVBhcnNlci5nZXRUZXh0KCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRMaW5lTnVtYmVyKCkgewotICAgICAgICByZXR1cm4gbVBhcnNlci5nZXRMaW5lTnVtYmVyKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRFdmVudFR5cGUoKSB7Ci0gICAgICAgIHJldHVybiBtRXZlbnRUeXBlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGlzV2hpdGVzcGFjZSgpIHRocm93cyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gT3JpZ2luYWwgY29tbWVudDogd2hpdGVzcGFjZSB3YXMgc3RyaXBwZWQgYnkgYWFwdC4KLSAgICAgICAgcmV0dXJuIG1QYXJzZXIuaXNXaGl0ZXNwYWNlKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRQcmVmaXgoKSB7Ci0gICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJnZXRQcmVmaXggbm90IHN1cHBvcnRlZCIpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBjaGFyW10gZ2V0VGV4dENoYXJhY3RlcnMoaW50W10gaG9sZGVyRm9yU3RhcnRBbmRMZW5ndGgpIHsKLSAgICAgICAgU3RyaW5nIHR4dCA9IGdldFRleHQoKTsKLSAgICAgICAgY2hhcltdIGNoYXJzID0gbnVsbDsKLSAgICAgICAgaWYgKHR4dCAhPSBudWxsKSB7Ci0gICAgICAgICAgICBob2xkZXJGb3JTdGFydEFuZExlbmd0aFswXSA9IDA7Ci0gICAgICAgICAgICBob2xkZXJGb3JTdGFydEFuZExlbmd0aFsxXSA9IHR4dC5sZW5ndGgoKTsKLSAgICAgICAgICAgIGNoYXJzID0gbmV3IGNoYXJbdHh0Lmxlbmd0aCgpXTsKLSAgICAgICAgICAgIHR4dC5nZXRDaGFycygwLCB0eHQubGVuZ3RoKCksIGNoYXJzLCAwKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gY2hhcnM7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXROYW1lc3BhY2UoKSB7Ci0gICAgICAgIHJldHVybiBtUGFyc2VyLmdldE5hbWVzcGFjZSgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKLSAgICAgICAgcmV0dXJuIG1QYXJzZXIuZ2V0TmFtZSgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0QXR0cmlidXRlTmFtZXNwYWNlKGludCBpbmRleCkgewotICAgICAgICByZXR1cm4gbVBhcnNlci5nZXRBdHRyaWJ1dGVOYW1lc3BhY2UoaW5kZXgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0QXR0cmlidXRlTmFtZShpbnQgaW5kZXgpIHsKLSAgICAgICAgcmV0dXJuIG1QYXJzZXIuZ2V0QXR0cmlidXRlTmFtZShpbmRleCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRBdHRyaWJ1dGVQcmVmaXgoaW50IGluZGV4KSB7Ci0gICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJnZXRBdHRyaWJ1dGVQcmVmaXggbm90IHN1cHBvcnRlZCIpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGlzRW1wdHlFbGVtZW50VGFnKCkgewotICAgICAgICAvLyBYWFggTmVlZCB0byBkZXRlY3QgdGhpcy4KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0QXR0cmlidXRlQ291bnQoKSB7Ci0gICAgICAgIHJldHVybiBtUGFyc2VyLmdldEF0dHJpYnV0ZUNvdW50KCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRBdHRyaWJ1dGVWYWx1ZShpbnQgaW5kZXgpIHsKLSAgICAgICAgcmV0dXJuIG1QYXJzZXIuZ2V0QXR0cmlidXRlVmFsdWUoaW5kZXgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0QXR0cmlidXRlVHlwZShpbnQgaW5kZXgpIHsKLSAgICAgICAgcmV0dXJuICJDREFUQSI7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNBdHRyaWJ1dGVEZWZhdWx0KGludCBpbmRleCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBuZXh0VG9rZW4oKSB0aHJvd3MgWG1sUHVsbFBhcnNlckV4Y2VwdGlvbiwgSU9FeGNlcHRpb24gewotICAgICAgICByZXR1cm4gbmV4dCgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0QXR0cmlidXRlVmFsdWUoU3RyaW5nIG5hbWVzcGFjZSwgU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgcmV0dXJuIG1QYXJzZXIuZ2V0QXR0cmlidXRlVmFsdWUobmFtZXNwYWNlLCBuYW1lKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IG5leHQoKSB0aHJvd3MgWG1sUHVsbFBhcnNlckV4Y2VwdGlvbiwgSU9FeGNlcHRpb24gewotICAgICAgICBpZiAoIW1TdGFydGVkKSB7Ci0gICAgICAgICAgICBtU3RhcnRlZCA9IHRydWU7Ci0KLSAgICAgICAgICAgIGlmIChQYXJzZXJGYWN0b3J5LkxPR19QQVJTRVIpIHsKLSAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNUUlQgIiArIG1QYXJzZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBTVEFSVF9ET0NVTUVOVDsKLSAgICAgICAgfQotCi0gICAgICAgIGludCBldiA9IG1QYXJzZXIubmV4dCgpOwotCi0gICAgICAgIGlmIChQYXJzZXJGYWN0b3J5LkxPR19QQVJTRVIpIHsKLSAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTkVYVCAiICsgbVBhcnNlci50b1N0cmluZygpICsgIiAiICsKLSAgICAgICAgICAgICAgICAgICAgZXZlbnRUeXBlVG9TdHJpbmcobUV2ZW50VHlwZSkgKyAiIC0+ICIgKyBldmVudFR5cGVUb1N0cmluZyhldikpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGV2ID09IEVORF9UQUcgJiYgbVBhcnNlci5nZXREZXB0aCgpID09IDEpIHsKLSAgICAgICAgICAgIC8vIGRvbmUgd2l0aCBwYXJzZXIgcmVtb3ZlIGl0IGZyb20gdGhlIGNvbnRleHQgc3RhY2suCi0gICAgICAgICAgICBlbnN1cmVQb3BwZWQoKTsKLQotICAgICAgICAgICAgaWYgKFBhcnNlckZhY3RvcnkuTE9HX1BBUlNFUikgewotICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBtRXZlbnRUeXBlID0gZXY7Ci0gICAgICAgIHJldHVybiBldjsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBldmVudFR5cGVUb1N0cmluZyhpbnQgZXZlbnRUeXBlKSB7Ci0gICAgICAgIHN3aXRjaCAoZXZlbnRUeXBlKSB7Ci0gICAgICAgICAgICBjYXNlIFNUQVJUX0RPQ1VNRU5UOgotICAgICAgICAgICAgICAgIHJldHVybiAiU1RBUlRfRE9DIjsKLSAgICAgICAgICAgIGNhc2UgRU5EX0RPQ1VNRU5UOgotICAgICAgICAgICAgICAgIHJldHVybiAiRU5EX0RPQyI7Ci0gICAgICAgICAgICBjYXNlIFNUQVJUX1RBRzoKLSAgICAgICAgICAgICAgICByZXR1cm4gIlNUQVJUX1RBRyI7Ci0gICAgICAgICAgICBjYXNlIEVORF9UQUc6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJFTkRfVEFHIjsKLSAgICAgICAgICAgIGNhc2UgVEVYVDoKLSAgICAgICAgICAgICAgICByZXR1cm4gIlRFWFQiOwotICAgICAgICAgICAgY2FzZSBDRFNFQ1Q6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJDRFNFQ1QiOwotICAgICAgICAgICAgY2FzZSBFTlRJVFlfUkVGOgotICAgICAgICAgICAgICAgIHJldHVybiAiRU5USVRZX1JFRiI7Ci0gICAgICAgICAgICBjYXNlIElHTk9SQUJMRV9XSElURVNQQUNFOgotICAgICAgICAgICAgICAgIHJldHVybiAiSUdOT1JBQkxFX1dISVRFU1BBQ0UiOwotICAgICAgICAgICAgY2FzZSBQUk9DRVNTSU5HX0lOU1RSVUNUSU9OOgotICAgICAgICAgICAgICAgIHJldHVybiAiUFJPQ0VTU0lOR19JTlNUUlVDVElPTiI7Ci0gICAgICAgICAgICBjYXNlIENPTU1FTlQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICJDT01NRU5UIjsKLSAgICAgICAgICAgIGNhc2UgRE9DREVDTDoKLSAgICAgICAgICAgICAgICByZXR1cm4gIkRPQ0RFQ0wiOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuICI/Pz8/IjsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCByZXF1aXJlKGludCB0eXBlLCBTdHJpbmcgbmFtZXNwYWNlLCBTdHJpbmcgbmFtZSkKLSAgICAgICAgICAgIHRocm93cyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uIHsKLSAgICAgICAgaWYgKHR5cGUgIT0gZ2V0RXZlbnRUeXBlKCkKLSAgICAgICAgICAgICAgICB8fCAobmFtZXNwYWNlICE9IG51bGwgJiYgIW5hbWVzcGFjZS5lcXVhbHMoZ2V0TmFtZXNwYWNlKCkpKQotICAgICAgICAgICAgICAgIHx8IChuYW1lICE9IG51bGwgJiYgIW5hbWUuZXF1YWxzKGdldE5hbWUoKSkpKQotICAgICAgICAgICAgdGhyb3cgbmV3IFhtbFB1bGxQYXJzZXJFeGNlcHRpb24oImV4cGVjdGVkICIgKyBUWVBFU1t0eXBlXQotICAgICAgICAgICAgICAgICAgICArIGdldFBvc2l0aW9uRGVzY3JpcHRpb24oKSk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBuZXh0VGV4dCgpIHRocm93cyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7Ci0gICAgICAgIGlmIChnZXRFdmVudFR5cGUoKSAhPSBTVEFSVF9UQUcpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uKGdldFBvc2l0aW9uRGVzY3JpcHRpb24oKQotICAgICAgICAgICAgICAgICAgICArICI6IHBhcnNlciBtdXN0IGJlIG9uIFNUQVJUX1RBRyB0byByZWFkIG5leHQgdGV4dCIsIHRoaXMsCi0gICAgICAgICAgICAgICAgICAgIG51bGwpOwotICAgICAgICB9Ci0gICAgICAgIGludCBldmVudFR5cGUgPSBuZXh0KCk7Ci0gICAgICAgIGlmIChldmVudFR5cGUgPT0gVEVYVCkgewotICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGdldFRleHQoKTsKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IG5leHQoKTsKLSAgICAgICAgICAgIGlmIChldmVudFR5cGUgIT0gRU5EX1RBRykgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UG9zaXRpb25EZXNjcmlwdGlvbigpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIjogZXZlbnQgVEVYVCBpdCBtdXN0IGJlIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IEVORF9UQUciLAotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywgbnVsbCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBFTkRfVEFHKSB7Ci0gICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgWG1sUHVsbFBhcnNlckV4Y2VwdGlvbihnZXRQb3NpdGlvbkRlc2NyaXB0aW9uKCkKLSAgICAgICAgICAgICAgICAgICAgKyAiOiBwYXJzZXIgbXVzdCBiZSBvbiBTVEFSVF9UQUcgb3IgVEVYVCB0byByZWFkIHRleHQiLAotICAgICAgICAgICAgICAgICAgICB0aGlzLCBudWxsKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgbmV4dFRhZygpIHRocm93cyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7Ci0gICAgICAgIGludCBldmVudFR5cGUgPSBuZXh0KCk7Ci0gICAgICAgIGlmIChldmVudFR5cGUgPT0gVEVYVCAmJiBpc1doaXRlc3BhY2UoKSkgeyAvLyBza2lwIHdoaXRlc3BhY2UKLSAgICAgICAgICAgIGV2ZW50VHlwZSA9IG5leHQoKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoZXZlbnRUeXBlICE9IFNUQVJUX1RBRyAmJiBldmVudFR5cGUgIT0gRU5EX1RBRykgewotICAgICAgICAgICAgdGhyb3cgbmV3IFhtbFB1bGxQYXJzZXJFeGNlcHRpb24oZ2V0UG9zaXRpb25EZXNjcmlwdGlvbigpCi0gICAgICAgICAgICAgICAgICAgICsgIjogZXhwZWN0ZWQgc3RhcnQgb3IgZW5kIHRhZyIsIHRoaXMsIG51bGwpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBldmVudFR5cGU7Ci0gICAgfQotCi0gICAgLy8gQXR0cmlidXRlU2V0IGltcGxlbWVudGF0aW9uCi0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIGNsb3NlKCkgewotICAgICAgICAvLyBwYXNzCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gZ2V0QXR0cmlidXRlQm9vbGVhblZhbHVlKGludCBpbmRleCwgYm9vbGVhbiBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIG1BdHRyaWIuZ2V0QXR0cmlidXRlQm9vbGVhblZhbHVlKGluZGV4LCBkZWZhdWx0VmFsdWUpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGdldEF0dHJpYnV0ZUJvb2xlYW5WYWx1ZShTdHJpbmcgbmFtZXNwYWNlLCBTdHJpbmcgYXR0cmlidXRlLAotICAgICAgICAgICAgYm9vbGVhbiBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIG1BdHRyaWIuZ2V0QXR0cmlidXRlQm9vbGVhblZhbHVlKG5hbWVzcGFjZSwgYXR0cmlidXRlLCBkZWZhdWx0VmFsdWUpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBmbG9hdCBnZXRBdHRyaWJ1dGVGbG9hdFZhbHVlKGludCBpbmRleCwgZmxvYXQgZGVmYXVsdFZhbHVlKSB7Ci0gICAgICAgIHJldHVybiBtQXR0cmliLmdldEF0dHJpYnV0ZUZsb2F0VmFsdWUoaW5kZXgsIGRlZmF1bHRWYWx1ZSk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGZsb2F0IGdldEF0dHJpYnV0ZUZsb2F0VmFsdWUoU3RyaW5nIG5hbWVzcGFjZSwgU3RyaW5nIGF0dHJpYnV0ZSwgZmxvYXQgZGVmYXVsdFZhbHVlKSB7Ci0gICAgICAgIHJldHVybiBtQXR0cmliLmdldEF0dHJpYnV0ZUZsb2F0VmFsdWUobmFtZXNwYWNlLCBhdHRyaWJ1dGUsIGRlZmF1bHRWYWx1ZSk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRBdHRyaWJ1dGVJbnRWYWx1ZShpbnQgaW5kZXgsIGludCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIG1BdHRyaWIuZ2V0QXR0cmlidXRlSW50VmFsdWUoaW5kZXgsIGRlZmF1bHRWYWx1ZSk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRBdHRyaWJ1dGVJbnRWYWx1ZShTdHJpbmcgbmFtZXNwYWNlLCBTdHJpbmcgYXR0cmlidXRlLCBpbnQgZGVmYXVsdFZhbHVlKSB7Ci0gICAgICAgIHJldHVybiBtQXR0cmliLmdldEF0dHJpYnV0ZUludFZhbHVlKG5hbWVzcGFjZSwgYXR0cmlidXRlLCBkZWZhdWx0VmFsdWUpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0QXR0cmlidXRlTGlzdFZhbHVlKGludCBpbmRleCwgU3RyaW5nW10gb3B0aW9ucywgaW50IGRlZmF1bHRWYWx1ZSkgewotICAgICAgICByZXR1cm4gbUF0dHJpYi5nZXRBdHRyaWJ1dGVMaXN0VmFsdWUoaW5kZXgsIG9wdGlvbnMsIGRlZmF1bHRWYWx1ZSk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRBdHRyaWJ1dGVMaXN0VmFsdWUoU3RyaW5nIG5hbWVzcGFjZSwgU3RyaW5nIGF0dHJpYnV0ZSwKLSAgICAgICAgICAgIFN0cmluZ1tdIG9wdGlvbnMsIGludCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIG1BdHRyaWIuZ2V0QXR0cmlidXRlTGlzdFZhbHVlKG5hbWVzcGFjZSwgYXR0cmlidXRlLCBvcHRpb25zLCBkZWZhdWx0VmFsdWUpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0QXR0cmlidXRlTmFtZVJlc291cmNlKGludCBpbmRleCkgewotICAgICAgICByZXR1cm4gbUF0dHJpYi5nZXRBdHRyaWJ1dGVOYW1lUmVzb3VyY2UoaW5kZXgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0QXR0cmlidXRlUmVzb3VyY2VWYWx1ZShpbnQgaW5kZXgsIGludCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIG1BdHRyaWIuZ2V0QXR0cmlidXRlUmVzb3VyY2VWYWx1ZShpbmRleCwgZGVmYXVsdFZhbHVlKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldEF0dHJpYnV0ZVJlc291cmNlVmFsdWUoU3RyaW5nIG5hbWVzcGFjZSwgU3RyaW5nIGF0dHJpYnV0ZSwgaW50IGRlZmF1bHRWYWx1ZSkgewotICAgICAgICByZXR1cm4gbUF0dHJpYi5nZXRBdHRyaWJ1dGVSZXNvdXJjZVZhbHVlKG5hbWVzcGFjZSwgYXR0cmlidXRlLCBkZWZhdWx0VmFsdWUpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0QXR0cmlidXRlVW5zaWduZWRJbnRWYWx1ZShpbnQgaW5kZXgsIGludCBkZWZhdWx0VmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIG1BdHRyaWIuZ2V0QXR0cmlidXRlVW5zaWduZWRJbnRWYWx1ZShpbmRleCwgZGVmYXVsdFZhbHVlKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldEF0dHJpYnV0ZVVuc2lnbmVkSW50VmFsdWUoU3RyaW5nIG5hbWVzcGFjZSwgU3RyaW5nIGF0dHJpYnV0ZSwgaW50IGRlZmF1bHRWYWx1ZSkgewotICAgICAgICByZXR1cm4gbUF0dHJpYi5nZXRBdHRyaWJ1dGVVbnNpZ25lZEludFZhbHVlKG5hbWVzcGFjZSwgYXR0cmlidXRlLCBkZWZhdWx0VmFsdWUpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0Q2xhc3NBdHRyaWJ1dGUoKSB7Ci0gICAgICAgIHJldHVybiBtQXR0cmliLmdldENsYXNzQXR0cmlidXRlKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyBnZXRJZEF0dHJpYnV0ZSgpIHsKLSAgICAgICAgcmV0dXJuIG1BdHRyaWIuZ2V0SWRBdHRyaWJ1dGUoKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldElkQXR0cmlidXRlUmVzb3VyY2VWYWx1ZShpbnQgZGVmYXVsdFZhbHVlKSB7Ci0gICAgICAgIHJldHVybiBtQXR0cmliLmdldElkQXR0cmlidXRlUmVzb3VyY2VWYWx1ZShkZWZhdWx0VmFsdWUpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0U3R5bGVBdHRyaWJ1dGUoKSB7Ci0gICAgICAgIHJldHVybiBtQXR0cmliLmdldFN0eWxlQXR0cmlidXRlKCk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9hbmRyb2lkL3ZpZXcvV2luZG93TWFuYWdlckltcGwuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYW5kcm9pZC92aWV3L1dpbmRvd01hbmFnZXJJbXBsLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlNWFlOGQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9hbmRyb2lkL3ZpZXcvV2luZG93TWFuYWdlckltcGwuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmFuZHJvaWQudmlldzsKLQotaW1wb3J0IGFuZHJvaWQudXRpbC5EaXNwbGF5TWV0cmljczsKLWltcG9ydCBhbmRyb2lkLnZpZXcuRGlzcGxheTsKLWltcG9ydCBhbmRyb2lkLnZpZXcuRGlzcGxheUFkanVzdG1lbnRzOwotaW1wb3J0IGFuZHJvaWQudmlldy5EaXNwbGF5SW5mbzsKLWltcG9ydCBhbmRyb2lkLnZpZXcuVmlldzsKLWltcG9ydCBhbmRyb2lkLnZpZXcuV2luZG93TWFuYWdlcjsKLQotcHVibGljIGNsYXNzIFdpbmRvd01hbmFnZXJJbXBsIGltcGxlbWVudHMgV2luZG93TWFuYWdlciB7Ci0KLSAgICBwcml2YXRlIGZpbmFsIERpc3BsYXlNZXRyaWNzIG1NZXRyaWNzOwotICAgIHByaXZhdGUgZmluYWwgRGlzcGxheSBtRGlzcGxheTsKLQotICAgIHB1YmxpYyBXaW5kb3dNYW5hZ2VySW1wbChEaXNwbGF5TWV0cmljcyBtZXRyaWNzKSB7Ci0gICAgICAgIG1NZXRyaWNzID0gbWV0cmljczsKLQotICAgICAgICBEaXNwbGF5SW5mbyBpbmZvID0gbmV3IERpc3BsYXlJbmZvKCk7Ci0gICAgICAgIGluZm8ubG9naWNhbEhlaWdodCA9IG1NZXRyaWNzLmhlaWdodFBpeGVsczsKLSAgICAgICAgaW5mby5sb2dpY2FsV2lkdGggPSBtTWV0cmljcy53aWR0aFBpeGVsczsKLSAgICAgICAgbURpc3BsYXkgPSBuZXcgRGlzcGxheShudWxsLCBEaXNwbGF5LkRFRkFVTFRfRElTUExBWSwgaW5mbywKLSAgICAgICAgICAgICAgICBEaXNwbGF5QWRqdXN0bWVudHMuREVGQVVMVF9ESVNQTEFZX0FESlVTVE1FTlRTKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgRGlzcGxheSBnZXREZWZhdWx0RGlzcGxheSgpIHsKLSAgICAgICAgcmV0dXJuIG1EaXNwbGF5OwotICAgIH0KLQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgYWRkVmlldyhWaWV3IGFyZzAsIGFuZHJvaWQudmlldy5WaWV3R3JvdXAuTGF5b3V0UGFyYW1zIGFyZzEpIHsKLSAgICAgICAgLy8gcGFzcwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHJlbW92ZVZpZXcoVmlldyBhcmcwKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB1cGRhdGVWaWV3TGF5b3V0KFZpZXcgYXJnMCwgYW5kcm9pZC52aWV3LlZpZXdHcm91cC5MYXlvdXRQYXJhbXMgYXJnMSkgewotICAgICAgICAvLyBwYXNzCi0gICAgfQotCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCByZW1vdmVWaWV3SW1tZWRpYXRlKFZpZXcgYXJnMCkgewotICAgICAgICAvLyBwYXNzCi0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9iYXJzL0N1c3RvbUJhci5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9iYXJzL0N1c3RvbUJhci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxN2IwZWI2Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYmFycy9DdXN0b21CYXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDMyMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmJhcnM7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVuZGVyUmVzb3VyY2VzOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXNvdXJjZVZhbHVlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5TdHlsZVJlc291cmNlVmFsdWU7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5CcmlkZ2U7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5hbmRyb2lkLkJyaWRnZUNvbnRleHQ7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5hbmRyb2lkLkJyaWRnZVhtbEJsb2NrUGFyc2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5QYXJzZXJGYWN0b3J5OwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5SZXNvdXJjZUhlbHBlcjsKLWltcG9ydCBjb20uYW5kcm9pZC5yZXNvdXJjZXMuRGVuc2l0eTsKLWltcG9ydCBjb20uYW5kcm9pZC5yZXNvdXJjZXMuTGF5b3V0RGlyZWN0aW9uOwotaW1wb3J0IGNvbS5hbmRyb2lkLnJlc291cmNlcy5SZXNvdXJjZVR5cGU7Ci0KLWltcG9ydCBvcmcueG1scHVsbC52MS5YbWxQdWxsUGFyc2VyOwotaW1wb3J0IG9yZy54bWxwdWxsLnYxLlhtbFB1bGxQYXJzZXJFeGNlcHRpb247Ci0KLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQucmVzLkNvbG9yU3RhdGVMaXN0OwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwX0RlbGVnYXRlOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuQml0bWFwRHJhd2FibGU7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS5EcmF3YWJsZTsKLWltcG9ydCBhbmRyb2lkLnV0aWwuVHlwZWRWYWx1ZTsKLWltcG9ydCBhbmRyb2lkLnZpZXcuR3Jhdml0eTsKLWltcG9ydCBhbmRyb2lkLnZpZXcuTGF5b3V0SW5mbGF0ZXI7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXc7Ci1pbXBvcnQgYW5kcm9pZC53aWRnZXQuSW1hZ2VWaWV3OwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0LkxpbmVhckxheW91dDsKLWltcG9ydCBhbmRyb2lkLndpZGdldC5UZXh0VmlldzsKLQotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKLQotLyoqCi0gKiBCYXNlICJiYXIiIGNsYXNzIGZvciB0aGUgd2luZG93IGRlY29yIGFyb3VuZCB0aGUgdGhlIGVkaXRlZCBsYXlvdXQuCi0gKiBUaGlzIGlzIGJhc2ljYWxseSBhbiBob3Jpem9udGFsIGxheW91dCB0aGF0IGxvYWRzIGEgZ2l2ZW4gbGF5b3V0IG9uIGNyZWF0aW9uIChpdCBpcyByZWFkCi0gKiB0aHJvdWdoIHtAbGluayBDbGFzcyNnZXRSZXNvdXJjZUFzU3RyZWFtKFN0cmluZyl9KS4KLSAqCi0gKiBUaGUgZ2l2ZW4gbGF5b3V0IHNob3VsZCBiZSBhIG1lcmdlIGxheW91dCBzbyB0aGF0IGFsbCB0aGUgY2hpbGRyZW4gYmVsb25nIHRvIHRoaXMgY2xhc3MgZGlyZWN0bHkuCi0gKgotICogSXQgYWxzbyBwcm92aWRlcyBhIGZldyB1dGlsaXR5IG1ldGhvZHMgdG8gY29uZmlndXJlIHRoZSBjb250ZW50IG9mIHRoZSBsYXlvdXQuCi0gKi8KLWFic3RyYWN0IGNsYXNzIEN1c3RvbUJhciBleHRlbmRzIExpbmVhckxheW91dCB7Ci0KLSAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgVGV4dFZpZXcgZ2V0U3R5bGVhYmxlVGV4dFZpZXcoKTsKLQotICAgIHByb3RlY3RlZCBDdXN0b21CYXIoQ29udGV4dCBjb250ZXh0LCBEZW5zaXR5IGRlbnNpdHksIGludCBvcmllbnRhdGlvbiwgU3RyaW5nIGxheW91dFBhdGgsCi0gICAgICAgICAgICBTdHJpbmcgbmFtZSkgdGhyb3dzIFhtbFB1bGxQYXJzZXJFeGNlcHRpb24gewotICAgICAgICBzdXBlcihjb250ZXh0KTsKLSAgICAgICAgc2V0T3JpZW50YXRpb24ob3JpZW50YXRpb24pOwotICAgICAgICBpZiAob3JpZW50YXRpb24gPT0gTGluZWFyTGF5b3V0LkhPUklaT05UQUwpIHsKLSAgICAgICAgICAgIHNldEdyYXZpdHkoR3Jhdml0eS5DRU5URVJfVkVSVElDQUwpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2V0R3Jhdml0eShHcmF2aXR5LkNFTlRFUl9IT1JJWk9OVEFMKTsKLSAgICAgICAgfQotCi0gICAgICAgIExheW91dEluZmxhdGVyIGluZmxhdGVyID0gKExheW91dEluZmxhdGVyKSBnZXRDb250ZXh0KCkuZ2V0U3lzdGVtU2VydmljZSgKLSAgICAgICAgICAgICAgICBDb250ZXh0LkxBWU9VVF9JTkZMQVRFUl9TRVJWSUNFKTsKLQotICAgICAgICBYbWxQdWxsUGFyc2VyIHBhcnNlciA9IFBhcnNlckZhY3RvcnkuY3JlYXRlKGdldENsYXNzKCkuZ2V0UmVzb3VyY2VBc1N0cmVhbShsYXlvdXRQYXRoKSwKLSAgICAgICAgICAgICAgICBuYW1lKTsKLQotICAgICAgICBCcmlkZ2VYbWxCbG9ja1BhcnNlciBicmlkZ2VQYXJzZXIgPSBuZXcgQnJpZGdlWG1sQmxvY2tQYXJzZXIoCi0gICAgICAgICAgICAgICAgcGFyc2VyLCAoQnJpZGdlQ29udGV4dCkgY29udGV4dCwgZmFsc2UgLypwbGF0Zm9ybUZpbGUqLyk7Ci0KLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGluZmxhdGVyLmluZmxhdGUoYnJpZGdlUGFyc2VyLCB0aGlzLCB0cnVlKTsKLSAgICAgICAgfSBmaW5hbGx5IHsKLSAgICAgICAgICAgIGJyaWRnZVBhcnNlci5lbnN1cmVQb3BwZWQoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgSW5wdXRTdHJlYW0gZ2V0SWNvbihTdHJpbmcgaWNvbk5hbWUsIERlbnNpdHlbXSBkZW5zaXR5SW5PdXQsIExheW91dERpcmVjdGlvbiBkaXJlY3Rpb24sIAotICAgICAgICAgICAgU3RyaW5nW10gcGF0aE91dCwgYm9vbGVhbiB0cnlPdGhlckRlbnNpdGllcykgewotICAgICAgICAvLyBjdXJyZW50IGRlbnNpdHkKLSAgICAgICAgRGVuc2l0eSBkZW5zaXR5ID0gZGVuc2l0eUluT3V0WzBdOwotCi0gICAgICAgIC8vIGJpdG1hcCB1cmwgcmVsYXRpdmUgdG8gdGhpcyBjbGFzcwotICAgICAgICBpZiAoZGlyZWN0aW9uICE9IG51bGwpIHsKLSAgICAgICAgICAgIHBhdGhPdXRbMF0gPSAiL2JhcnMvIiArIGRpcmVjdGlvbi5nZXRSZXNvdXJjZVZhbHVlKCkgKyAiLSIgKyBkZW5zaXR5LmdldFJlc291cmNlVmFsdWUoKQotICAgICAgICAgICAgICAgICAgICArICIvIiArIGljb25OYW1lOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcGF0aE91dFswXSA9ICIvYmFycy8iICsgZGVuc2l0eS5nZXRSZXNvdXJjZVZhbHVlKCkgKyAiLyIgKyBpY29uTmFtZTsKLSAgICAgICAgfQotCi0gICAgICAgIElucHV0U3RyZWFtIHN0cmVhbSA9IGdldENsYXNzKCkuZ2V0UmVzb3VyY2VBc1N0cmVhbShwYXRoT3V0WzBdKTsKLSAgICAgICAgaWYgKHN0cmVhbSA9PSBudWxsICYmIHRyeU90aGVyRGVuc2l0aWVzKSB7Ci0gICAgICAgICAgICBmb3IgKERlbnNpdHkgZCA6IERlbnNpdHkudmFsdWVzKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoZCAhPSBkZW5zaXR5KSB7Ci0gICAgICAgICAgICAgICAgICAgIGRlbnNpdHlJbk91dFswXSA9IGQ7Ci0gICAgICAgICAgICAgICAgICAgIHN0cmVhbSA9IGdldEljb24oaWNvbk5hbWUsIGRlbnNpdHlJbk91dCwgZGlyZWN0aW9uLCBwYXRoT3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qdHJ5T3RoZXJEZW5zaXRpZXMqLyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzdHJlYW0gIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0cmVhbTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIGNvdWxkbid0IGZpbmQgcmVzb3VyY2Ugd2l0aCBkaXJlY3Rpb24gcXVhbGlmaWVyLiB0cnkgd2l0aG91dC4KLSAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJldHVybiBnZXRJY29uKGljb25OYW1lLCBkZW5zaXR5SW5PdXQsIG51bGwsIHBhdGhPdXQsIHRydWUpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHN0cmVhbTsKLSAgICB9Ci0KLSAgICBwcm90ZWN0ZWQgdm9pZCBsb2FkSWNvbihpbnQgaW5kZXgsIFN0cmluZyBpY29uTmFtZSwgRGVuc2l0eSBkZW5zaXR5KSB7Ci0gICAgICAgIGxvYWRJY29uKGluZGV4LCBpY29uTmFtZSwgZGVuc2l0eSwgZmFsc2UpOwotICAgIH0KLQotICAgIHByb3RlY3RlZCB2b2lkIGxvYWRJY29uKGludCBpbmRleCwgU3RyaW5nIGljb25OYW1lLCBEZW5zaXR5IGRlbnNpdHksIGJvb2xlYW4gaXNSdGwpIHsKLSAgICAgICAgVmlldyBjaGlsZCA9IGdldENoaWxkQXQoaW5kZXgpOwotICAgICAgICBpZiAoY2hpbGQgaW5zdGFuY2VvZiBJbWFnZVZpZXcpIHsKLSAgICAgICAgICAgIEltYWdlVmlldyBpbWFnZVZpZXcgPSAoSW1hZ2VWaWV3KSBjaGlsZDsKLQotICAgICAgICAgICAgU3RyaW5nW10gcGF0aE91dCA9IG5ldyBTdHJpbmdbMV07Ci0gICAgICAgICAgICBEZW5zaXR5W10gZGVuc2l0eUluT3V0ID0gbmV3IERlbnNpdHlbXSB7IGRlbnNpdHkgfTsKLSAgICAgICAgICAgIExheW91dERpcmVjdGlvbiBkaXIgPSBpc1J0bCA/IExheW91dERpcmVjdGlvbi5SVEwgOiBMYXlvdXREaXJlY3Rpb24uTFRSOwotICAgICAgICAgICAgSW5wdXRTdHJlYW0gc3RyZWFtID0gZ2V0SWNvbihpY29uTmFtZSwgZGVuc2l0eUluT3V0LCBkaXIsIHBhdGhPdXQsCi0gICAgICAgICAgICAgICAgICAgIHRydWUgLyp0cnlPdGhlckRlbnNpdGllcyovKTsKLSAgICAgICAgICAgIGRlbnNpdHkgPSBkZW5zaXR5SW5PdXRbMF07Ci0KLSAgICAgICAgICAgIGlmIChzdHJlYW0gIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIC8vIGxvb2sgZm9yIGEgY2FjaGVkIGJpdG1hcAotICAgICAgICAgICAgICAgIEJpdG1hcCBiaXRtYXAgPSBCcmlkZ2UuZ2V0Q2FjaGVkQml0bWFwKHBhdGhPdXRbMF0sIHRydWUgLyppc0ZyYW1ld29yayovKTsKLSAgICAgICAgICAgICAgICBpZiAoYml0bWFwID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJpdG1hcCA9IEJpdG1hcF9EZWxlZ2F0ZS5jcmVhdGVCaXRtYXAoc3RyZWFtLCBmYWxzZSAvKmlzTXV0YWJsZSovLCBkZW5zaXR5KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIEJyaWRnZS5zZXRDYWNoZWRCaXRtYXAocGF0aE91dFswXSwgYml0bWFwLCB0cnVlIC8qaXNGcmFtZXdvcmsqLyk7Ci0gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChiaXRtYXAgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBCaXRtYXBEcmF3YWJsZSBkcmF3YWJsZSA9IG5ldyBCaXRtYXBEcmF3YWJsZShnZXRDb250ZXh0KCkuZ2V0UmVzb3VyY2VzKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0bWFwKTsKLSAgICAgICAgICAgICAgICAgICAgaW1hZ2VWaWV3LnNldEltYWdlRHJhd2FibGUoZHJhd2FibGUpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHByb3RlY3RlZCB2b2lkIGxvYWRJY29uKGludCBpbmRleCwgU3RyaW5nIGljb25SZWZlcmVuY2UpIHsKLSAgICAgICAgUmVzb3VyY2VWYWx1ZSB2YWx1ZSA9IGdldFJlc291cmNlVmFsdWUoaWNvblJlZmVyZW5jZSk7Ci0gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBsb2FkSWNvbihpbmRleCwgdmFsdWUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHJvdGVjdGVkIHZvaWQgbG9hZEljb25CeUlkKGludCBpZCwgU3RyaW5nIGljb25SZWZlcmVuY2UpIHsKLSAgICAgICAgUmVzb3VyY2VWYWx1ZSB2YWx1ZSA9IGdldFJlc291cmNlVmFsdWUoaWNvblJlZmVyZW5jZSk7Ci0gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBsb2FkSWNvbkJ5SWQoaWQsIHZhbHVlKTsKLSAgICAgICAgfQotICAgIH0KLQotCi0gICAgcHJvdGVjdGVkIERyYXdhYmxlIGxvYWRJY29uKGludCBpbmRleCwgUmVzb3VyY2VUeXBlIHR5cGUsIFN0cmluZyBuYW1lKSB7Ci0gICAgICAgIEJyaWRnZUNvbnRleHQgYnJpZGdlQ29udGV4dCA9IChCcmlkZ2VDb250ZXh0KSBtQ29udGV4dDsKLSAgICAgICAgUmVuZGVyUmVzb3VyY2VzIHJlcyA9IGJyaWRnZUNvbnRleHQuZ2V0UmVuZGVyUmVzb3VyY2VzKCk7Ci0KLSAgICAgICAgLy8gZmluZCB0aGUgcmVzb3VyY2UKLSAgICAgICAgUmVzb3VyY2VWYWx1ZSB2YWx1ZSA9IHJlcy5nZXRGcmFtZXdvcmtSZXNvdXJjZSh0eXBlLCBuYW1lKTsKLQotICAgICAgICAvLyByZXNvbHZlIGl0IGlmIG5lZWRlZAotICAgICAgICB2YWx1ZSA9IHJlcy5yZXNvbHZlUmVzVmFsdWUodmFsdWUpOwotICAgICAgICByZXR1cm4gbG9hZEljb24oaW5kZXgsIHZhbHVlKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIERyYXdhYmxlIGxvYWRJY29uKGludCBpbmRleCwgUmVzb3VyY2VWYWx1ZSB2YWx1ZSkgewotICAgICAgICBWaWV3IGNoaWxkID0gZ2V0Q2hpbGRBdChpbmRleCk7Ci0gICAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIEltYWdlVmlldykgewotICAgICAgICAgICAgSW1hZ2VWaWV3IGltYWdlVmlldyA9IChJbWFnZVZpZXcpIGNoaWxkOwotCi0gICAgICAgICAgICByZXR1cm4gbG9hZEljb24oaW1hZ2VWaWV3LCB2YWx1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBwcml2YXRlIERyYXdhYmxlIGxvYWRJY29uQnlJZChpbnQgaWQsIFJlc291cmNlVmFsdWUgdmFsdWUpIHsKLSAgICAgICAgVmlldyBjaGlsZCA9IGZpbmRWaWV3QnlJZChpZCk7Ci0gICAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIEltYWdlVmlldykgewotICAgICAgICAgICAgSW1hZ2VWaWV3IGltYWdlVmlldyA9IChJbWFnZVZpZXcpIGNoaWxkOwotCi0gICAgICAgICAgICByZXR1cm4gbG9hZEljb24oaW1hZ2VWaWV3LCB2YWx1ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLQotICAgIHByaXZhdGUgRHJhd2FibGUgbG9hZEljb24oSW1hZ2VWaWV3IGltYWdlVmlldywgUmVzb3VyY2VWYWx1ZSB2YWx1ZSkgewotICAgICAgICBEcmF3YWJsZSBkcmF3YWJsZSA9IFJlc291cmNlSGVscGVyLmdldERyYXdhYmxlKHZhbHVlLCAoQnJpZGdlQ29udGV4dCkgbUNvbnRleHQpOwotICAgICAgICBpZiAoZHJhd2FibGUgIT0gbnVsbCkgewotICAgICAgICAgICAgaW1hZ2VWaWV3LnNldEltYWdlRHJhd2FibGUoZHJhd2FibGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGRyYXdhYmxlOwotICAgIH0KLQotICAgIHByb3RlY3RlZCBUZXh0VmlldyBzZXRUZXh0KGludCBpbmRleCwgU3RyaW5nIHN0cmluZ1JlZmVyZW5jZSkgewotICAgICAgICBWaWV3IGNoaWxkID0gZ2V0Q2hpbGRBdChpbmRleCk7Ci0gICAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIFRleHRWaWV3KSB7Ci0gICAgICAgICAgICBUZXh0VmlldyB0ZXh0VmlldyA9IChUZXh0VmlldykgY2hpbGQ7Ci0gICAgICAgICAgICBzZXRUZXh0KHRleHRWaWV3LCBzdHJpbmdSZWZlcmVuY2UpOwotICAgICAgICAgICAgcmV0dXJuIHRleHRWaWV3OwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgcHJvdGVjdGVkIFRleHRWaWV3IHNldFRleHRCeUlkKGludCBpZCwgU3RyaW5nIHN0cmluZ1JlZmVyZW5jZSkgewotICAgICAgICBWaWV3IGNoaWxkID0gZmluZFZpZXdCeUlkKGlkKTsKLSAgICAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgVGV4dFZpZXcpIHsKLSAgICAgICAgICAgIFRleHRWaWV3IHRleHRWaWV3ID0gKFRleHRWaWV3KSBjaGlsZDsKLSAgICAgICAgICAgIHNldFRleHQodGV4dFZpZXcsIHN0cmluZ1JlZmVyZW5jZSk7Ci0gICAgICAgICAgICByZXR1cm4gdGV4dFZpZXc7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHZvaWQgc2V0VGV4dChUZXh0VmlldyB0ZXh0VmlldywgU3RyaW5nIHN0cmluZ1JlZmVyZW5jZSkgewotICAgICAgICBSZXNvdXJjZVZhbHVlIHZhbHVlID0gZ2V0UmVzb3VyY2VWYWx1ZShzdHJpbmdSZWZlcmVuY2UpOwotICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgdGV4dFZpZXcuc2V0VGV4dCh2YWx1ZS5nZXRWYWx1ZSgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRleHRWaWV3LnNldFRleHQoc3RyaW5nUmVmZXJlbmNlKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHByb3RlY3RlZCB2b2lkIHNldFN0eWxlKFN0cmluZyB0aGVtZUVudHJ5TmFtZSkgewotCi0gICAgICAgIEJyaWRnZUNvbnRleHQgYnJpZGdlQ29udGV4dCA9IChCcmlkZ2VDb250ZXh0KSBtQ29udGV4dDsKLSAgICAgICAgUmVuZGVyUmVzb3VyY2VzIHJlcyA9IGJyaWRnZUNvbnRleHQuZ2V0UmVuZGVyUmVzb3VyY2VzKCk7Ci0KLSAgICAgICAgUmVzb3VyY2VWYWx1ZSB2YWx1ZSA9IHJlcy5maW5kSXRlbUluVGhlbWUodGhlbWVFbnRyeU5hbWUsIHRydWUgLyppc0ZyYW1ld29ya0F0dHIqLyk7Ci0gICAgICAgIHZhbHVlID0gcmVzLnJlc29sdmVSZXNWYWx1ZSh2YWx1ZSk7Ci0KLSAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgU3R5bGVSZXNvdXJjZVZhbHVlID09IGZhbHNlKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBTdHlsZVJlc291cmNlVmFsdWUgc3R5bGUgPSAoU3R5bGVSZXNvdXJjZVZhbHVlKSB2YWx1ZTsKLQotICAgICAgICAvLyBnZXQgdGhlIGJhY2tncm91bmQKLSAgICAgICAgUmVzb3VyY2VWYWx1ZSBiYWNrZ3JvdW5kVmFsdWUgPSByZXMuZmluZEl0ZW1JblN0eWxlKHN0eWxlLCAiYmFja2dyb3VuZCIsCi0gICAgICAgICAgICAgICAgdHJ1ZSAvKmlzRnJhbWV3b3JrQXR0ciovKTsKLSAgICAgICAgYmFja2dyb3VuZFZhbHVlID0gcmVzLnJlc29sdmVSZXNWYWx1ZShiYWNrZ3JvdW5kVmFsdWUpOwotICAgICAgICBpZiAoYmFja2dyb3VuZFZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgIERyYXdhYmxlIGQgPSBSZXNvdXJjZUhlbHBlci5nZXREcmF3YWJsZShiYWNrZ3JvdW5kVmFsdWUsIGJyaWRnZUNvbnRleHQpOwotICAgICAgICAgICAgaWYgKGQgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHNldEJhY2tncm91bmQoZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBUZXh0VmlldyB0ZXh0VmlldyA9IGdldFN0eWxlYWJsZVRleHRWaWV3KCk7Ci0gICAgICAgIGlmICh0ZXh0VmlldyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAvLyBnZXQgdGhlIHRleHQgc3R5bGUKLSAgICAgICAgICAgIFJlc291cmNlVmFsdWUgdGV4dFN0eWxlVmFsdWUgPSByZXMuZmluZEl0ZW1JblN0eWxlKHN0eWxlLCAidGl0bGVUZXh0U3R5bGUiLAotICAgICAgICAgICAgICAgICAgICB0cnVlIC8qaXNGcmFtZXdvcmtBdHRyKi8pOwotICAgICAgICAgICAgdGV4dFN0eWxlVmFsdWUgPSByZXMucmVzb2x2ZVJlc1ZhbHVlKHRleHRTdHlsZVZhbHVlKTsKLSAgICAgICAgICAgIGlmICh0ZXh0U3R5bGVWYWx1ZSBpbnN0YW5jZW9mIFN0eWxlUmVzb3VyY2VWYWx1ZSkgewotICAgICAgICAgICAgICAgIFN0eWxlUmVzb3VyY2VWYWx1ZSB0ZXh0U3R5bGUgPSAoU3R5bGVSZXNvdXJjZVZhbHVlKSB0ZXh0U3R5bGVWYWx1ZTsKLQotICAgICAgICAgICAgICAgIFJlc291cmNlVmFsdWUgdGV4dFNpemUgPSByZXMuZmluZEl0ZW1JblN0eWxlKHRleHRTdHlsZSwgInRleHRTaXplIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgLyppc0ZyYW1ld29ya0F0dHIqLyk7Ci0gICAgICAgICAgICAgICAgdGV4dFNpemUgPSByZXMucmVzb2x2ZVJlc1ZhbHVlKHRleHRTaXplKTsKLQotICAgICAgICAgICAgICAgIGlmICh0ZXh0U2l6ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIFR5cGVkVmFsdWUgb3V0ID0gbmV3IFR5cGVkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKFJlc291cmNlSGVscGVyLnBhcnNlRmxvYXRBdHRyaWJ1dGUoInRleHRTaXplIiwgdGV4dFNpemUuZ2V0VmFsdWUoKSwgb3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgLypyZXF1aXJlVW5pdCovKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFZpZXcuc2V0VGV4dFNpemUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5nZXREaW1lbnNpb24oYnJpZGdlQ29udGV4dC5nZXRSZXNvdXJjZXMoKS5nZXREaXNwbGF5TWV0cmljcygpKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0KLQotICAgICAgICAgICAgICAgIFJlc291cmNlVmFsdWUgdGV4dENvbG9yID0gcmVzLmZpbmRJdGVtSW5TdHlsZSh0ZXh0U3R5bGUsICJ0ZXh0Q29sb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAvKmlzRnJhbWV3b3JrQXR0ciovKTsKLSAgICAgICAgICAgICAgICB0ZXh0Q29sb3IgPSByZXMucmVzb2x2ZVJlc1ZhbHVlKHRleHRDb2xvcik7Ci0gICAgICAgICAgICAgICAgaWYgKHRleHRDb2xvciAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIENvbG9yU3RhdGVMaXN0IHN0YXRlTGlzdCA9IFJlc291cmNlSGVscGVyLmdldENvbG9yU3RhdGVMaXN0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvciwgYnJpZGdlQ29udGV4dCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZUxpc3QgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFZpZXcuc2V0VGV4dENvbG9yKHN0YXRlTGlzdCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcml2YXRlIFJlc291cmNlVmFsdWUgZ2V0UmVzb3VyY2VWYWx1ZShTdHJpbmcgcmVmZXJlbmNlKSB7Ci0gICAgICAgIEJyaWRnZUNvbnRleHQgYnJpZGdlQ29udGV4dCA9IChCcmlkZ2VDb250ZXh0KSBtQ29udGV4dDsKLSAgICAgICAgUmVuZGVyUmVzb3VyY2VzIHJlcyA9IGJyaWRnZUNvbnRleHQuZ2V0UmVuZGVyUmVzb3VyY2VzKCk7Ci0KLSAgICAgICAgLy8gZmluZCB0aGUgcmVzb3VyY2UKLSAgICAgICAgUmVzb3VyY2VWYWx1ZSB2YWx1ZSA9IHJlcy5maW5kUmVzVmFsdWUocmVmZXJlbmNlLCBmYWxzZSAvKmlzRnJhbWV3b3JrKi8pOwotCi0gICAgICAgIC8vIHJlc29sdmUgaXQgaWYgbmVlZGVkCi0gICAgICAgIHJldHVybiByZXMucmVzb2x2ZVJlc1ZhbHVlKHZhbHVlKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2JhcnMvRmFrZUFjdGlvbkJhci5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9iYXJzL0Zha2VBY3Rpb25CYXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjI2NjQ5ZC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2JhcnMvRmFrZUFjdGlvbkJhci5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5iYXJzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQucmVzb3VyY2VzLkRlbnNpdHk7Ci0KLWltcG9ydCBvcmcueG1scHVsbC52MS5YbWxQdWxsUGFyc2VyRXhjZXB0aW9uOwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7Ci1pbXBvcnQgYW5kcm9pZC53aWRnZXQuTGluZWFyTGF5b3V0OwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlRleHRWaWV3OwotCi1wdWJsaWMgY2xhc3MgRmFrZUFjdGlvbkJhciBleHRlbmRzIEN1c3RvbUJhciB7Ci0KLSAgICBwcml2YXRlIFRleHRWaWV3IG1UZXh0VmlldzsKLQotICAgIHB1YmxpYyBGYWtlQWN0aW9uQmFyKENvbnRleHQgY29udGV4dCwgRGVuc2l0eSBkZW5zaXR5LCBTdHJpbmcgbGFiZWwsIFN0cmluZyBpY29uKQotICAgICAgICAgICAgdGhyb3dzIFhtbFB1bGxQYXJzZXJFeGNlcHRpb24gewotICAgICAgICBzdXBlcihjb250ZXh0LCBkZW5zaXR5LCBMaW5lYXJMYXlvdXQuSE9SSVpPTlRBTCwgIi9iYXJzL2FjdGlvbl9iYXIueG1sIiwgImFjdGlvbl9iYXIueG1sIik7Ci0KLSAgICAgICAgLy8gQ2Fubm90IGFjY2VzcyB0aGUgaW5zaWRlIGl0ZW1zIHRocm91Z2ggaWQgYmVjYXVzZSBubyBSLmlkIHZhbHVlcyBoYXZlIGJlZW4KLSAgICAgICAgLy8gY3JlYXRlZCBmb3IgdGhlbS4KLSAgICAgICAgLy8gV2UgZG8ga25vdyB0aGUgb3JkZXIgdGhvdWdoLgotICAgICAgICBsb2FkSWNvbkJ5SWQoYW5kcm9pZC5SLmlkLmhvbWUsIGljb24pOwotICAgICAgICBtVGV4dFZpZXcgPSBzZXRUZXh0KDEsIGxhYmVsKTsKLQotICAgICAgICBzZXRTdHlsZSgiYWN0aW9uQmFyU3R5bGUiKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwcm90ZWN0ZWQgVGV4dFZpZXcgZ2V0U3R5bGVhYmxlVGV4dFZpZXcoKSB7Ci0gICAgICAgIHJldHVybiBtVGV4dFZpZXc7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9iYXJzL05hdmlnYXRpb25CYXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYmFycy9OYXZpZ2F0aW9uQmFyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0ZTY3NmUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9iYXJzL05hdmlnYXRpb25CYXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYmFyczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLnJlc291cmNlcy5EZW5zaXR5OwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotCi1pbXBvcnQgb3JnLnhtbHB1bGwudjEuWG1sUHVsbFBhcnNlckV4Y2VwdGlvbjsKLQotaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0LkxpbmVhckxheW91dDsKLWltcG9ydCBhbmRyb2lkLndpZGdldC5UZXh0VmlldzsKLQotcHVibGljIGNsYXNzIE5hdmlnYXRpb25CYXIgZXh0ZW5kcyBDdXN0b21CYXIgewotCi0gICAgcHVibGljIE5hdmlnYXRpb25CYXIoQ29udGV4dCBjb250ZXh0LCBEZW5zaXR5IGRlbnNpdHksIGludCBvcmllbnRhdGlvbiwgYm9vbGVhbiBpc1J0bCwKLSAgICAgICAgICAgIGJvb2xlYW4gcnRsRW5hYmxlZCkgdGhyb3dzIFhtbFB1bGxQYXJzZXJFeGNlcHRpb24gewotICAgICAgICBzdXBlcihjb250ZXh0LCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgIi9iYXJzL25hdmlnYXRpb25fYmFyLnhtbCIsICJuYXZpZ2F0aW9uX2Jhci54bWwiKTsKLQotICAgICAgICBzZXRCYWNrZ3JvdW5kQ29sb3IoMHhGRjAwMDAwMCk7Ci0KLSAgICAgICAgLy8gQ2Fubm90IGFjY2VzcyB0aGUgaW5zaWRlIGl0ZW1zIHRocm91Z2ggaWQgYmVjYXVzZSBubyBSLmlkIHZhbHVlcyBoYXZlIGJlZW4KLSAgICAgICAgLy8gY3JlYXRlZCBmb3IgdGhlbS4KLSAgICAgICAgLy8gV2UgZG8ga25vdyB0aGUgb3JkZXIgdGhvdWdoLgotICAgICAgICAvLyAwIGlzIGEgc3BhY2VyLgotICAgICAgICBpbnQgYmFjayA9IDE7Ci0gICAgICAgIGludCByZWNlbnQgPSAzOwotICAgICAgICBpZiAob3JpZW50YXRpb24gPT0gTGluZWFyTGF5b3V0LlZFUlRJQ0FMIHx8IChpc1J0bCAmJiAhcnRsRW5hYmxlZCkpIHsKLSAgICAgICAgICAgIC8vIElmIFJUTCBpcyBlbmFibGVkLCB0aGVuIGxheW91dGxpYiBtaXJyb3JzIHRoZSBsYXlvdXQgZm9yIHVzLgotICAgICAgICAgICAgYmFjayA9IDM7Ci0gICAgICAgICAgICByZWNlbnQgPSAxOwotICAgICAgICB9Ci0KLSAgICAgICAgbG9hZEljb24oYmFjaywgICAiaWNfc3lzYmFyX2JhY2sucG5nIiwgICBkZW5zaXR5LCBpc1J0bCk7Ci0gICAgICAgIGxvYWRJY29uKDIsICAgICAgImljX3N5c2Jhcl9ob21lLnBuZyIsICAgZGVuc2l0eSwgaXNSdGwpOwotICAgICAgICBsb2FkSWNvbihyZWNlbnQsICJpY19zeXNiYXJfcmVjZW50LnBuZyIsIGRlbnNpdHksIGlzUnRsKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwcm90ZWN0ZWQgVGV4dFZpZXcgZ2V0U3R5bGVhYmxlVGV4dFZpZXcoKSB7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYmFycy9TdGF0dXNCYXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYmFycy9TdGF0dXNCYXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzY5MmQ5Ni4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2JhcnMvU3RhdHVzQmFyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmJhcnM7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5yZXNvdXJjZXMuRGVuc2l0eTsKLWltcG9ydCBjb20uYW5kcm9pZC5yZXNvdXJjZXMuUmVzb3VyY2VUeXBlOwotCi1pbXBvcnQgb3JnLnhtbHB1bGwudjEuWG1sUHVsbFBhcnNlckV4Y2VwdGlvbjsKLQotaW1wb3J0IGFuZHJvaWQuY29udGVudC5Db250ZXh0OwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuRHJhd2FibGU7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS5MZXZlbExpc3REcmF3YWJsZTsKLWltcG9ydCBhbmRyb2lkLnZpZXcuR3Jhdml0eTsKLWltcG9ydCBhbmRyb2lkLndpZGdldC5MaW5lYXJMYXlvdXQ7Ci1pbXBvcnQgYW5kcm9pZC53aWRnZXQuVGV4dFZpZXc7Ci0KLXB1YmxpYyBjbGFzcyBTdGF0dXNCYXIgZXh0ZW5kcyBDdXN0b21CYXIgewotCi0gICAgcHVibGljIFN0YXR1c0JhcihDb250ZXh0IGNvbnRleHQsIERlbnNpdHkgZGVuc2l0eSwgaW50IGRpcmVjdGlvbiwgYm9vbGVhbiBSdGxFbmFibGVkKQotICAgICAgICAgICAgdGhyb3dzIFhtbFB1bGxQYXJzZXJFeGNlcHRpb24gewotICAgICAgICAvLyBGSVhNRTogaWYgZGlyZWN0aW9uIGlzIFJUTCBidXQgaXQncyBub3QgZW5hYmxlZCBpbiBhcHBsaWNhdGlvbiBtYW5pZmVzdCwgbWlycm9yIHRoaXMgYmFyLgotCi0gICAgICAgIHN1cGVyKGNvbnRleHQsIGRlbnNpdHksIExpbmVhckxheW91dC5IT1JJWk9OVEFMLCAiL2JhcnMvc3RhdHVzX2Jhci54bWwiLCAic3RhdHVzX2Jhci54bWwiKTsKLQotICAgICAgICAvLyBGSVhNRTogdXNlIEZJTExfSD8KLSAgICAgICAgc2V0R3Jhdml0eShHcmF2aXR5LlNUQVJUIHwgR3Jhdml0eS5UT1AgfCBHcmF2aXR5LlJJR0hUKTsKLSAgICAgICAgc2V0QmFja2dyb3VuZENvbG9yKDB4RkYwMDAwMDApOwotCi0gICAgICAgIC8vIENhbm5vdCBhY2Nlc3MgdGhlIGluc2lkZSBpdGVtcyB0aHJvdWdoIGlkIGJlY2F1c2Ugbm8gUi5pZCB2YWx1ZXMgaGF2ZSBiZWVuCi0gICAgICAgIC8vIGNyZWF0ZWQgZm9yIHRoZW0uCi0gICAgICAgIC8vIFdlIGRvIGtub3cgdGhlIG9yZGVyIHRob3VnaC4KLSAgICAgICAgLy8gMCBpcyB0aGUgc3BhY2VyCi0gICAgICAgIGxvYWRJY29uKDEsICJzdGF0X3N5c193aWZpX3NpZ25hbF80X2Z1bGx5LnBuZyIsIGRlbnNpdHkpOwotICAgICAgICBsb2FkSWNvbigyLCAic3RhdF9zeXNfYmF0dGVyeV9jaGFyZ2VfYW5pbTEwMC5wbmciLCBkZW5zaXR5KTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwcm90ZWN0ZWQgVGV4dFZpZXcgZ2V0U3R5bGVhYmxlVGV4dFZpZXcoKSB7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvYmFycy9UaXRsZUJhci5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9iYXJzL1RpdGxlQmFyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyNzg1OWYuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9iYXJzL1RpdGxlQmFyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmJhcnM7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5yZXNvdXJjZXMuRGVuc2l0eTsKLQotaW1wb3J0IG9yZy54bWxwdWxsLnYxLlhtbFB1bGxQYXJzZXJFeGNlcHRpb247Ci0KLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKLWltcG9ydCBhbmRyb2lkLndpZGdldC5MaW5lYXJMYXlvdXQ7Ci1pbXBvcnQgYW5kcm9pZC53aWRnZXQuVGV4dFZpZXc7Ci0KLXB1YmxpYyBjbGFzcyBUaXRsZUJhciBleHRlbmRzIEN1c3RvbUJhciB7Ci0KLSAgICBwcml2YXRlIFRleHRWaWV3IG1UZXh0VmlldzsKLQotICAgIHB1YmxpYyBUaXRsZUJhcihDb250ZXh0IGNvbnRleHQsIERlbnNpdHkgZGVuc2l0eSwgU3RyaW5nIGxhYmVsKQotICAgICAgICAgICAgdGhyb3dzIFhtbFB1bGxQYXJzZXJFeGNlcHRpb24gewotICAgICAgICBzdXBlcihjb250ZXh0LCBkZW5zaXR5LCBMaW5lYXJMYXlvdXQuSE9SSVpPTlRBTCwgIi9iYXJzL3RpdGxlX2Jhci54bWwiLCAidGl0bGVfYmFyLnhtbCIpOwotCi0gICAgICAgIC8vIENhbm5vdCBhY2Nlc3MgdGhlIGluc2lkZSBpdGVtcyB0aHJvdWdoIGlkIGJlY2F1c2Ugbm8gUi5pZCB2YWx1ZXMgaGF2ZSBiZWVuCi0gICAgICAgIC8vIGNyZWF0ZWQgZm9yIHRoZW0uCi0gICAgICAgIC8vIFdlIGRvIGtub3cgdGhlIG9yZGVyIHRob3VnaC4KLSAgICAgICAgbVRleHRWaWV3ID0gc2V0VGV4dCgwLCBsYWJlbCk7Ci0KLSAgICAgICAgc2V0U3R5bGUoIndpbmRvd1RpdGxlQmFja2dyb3VuZFN0eWxlIik7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHJvdGVjdGVkIFRleHRWaWV3IGdldFN0eWxlYWJsZVRleHRWaWV3KCkgewotICAgICAgICByZXR1cm4gbVRleHRWaWV3OwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9EZWxlZ2F0ZU1hbmFnZXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9EZWxlZ2F0ZU1hbmFnZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWUxMjE3ZC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2ltcGwvRGVsZWdhdGVNYW5hZ2VyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsOwotCi1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS51dGlsLkRlYnVnOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UudXRpbC5TcGFyc2VXZWFrQXJyYXk7Ci0KLWltcG9ydCBhbmRyb2lkLnV0aWwuU3BhcnNlQXJyYXk7Ci0KLWltcG9ydCBqYXZhLmxhbmcucmVmLldlYWtSZWZlcmVuY2U7Ci1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuTGlzdDsKLQotLyoqCi0gKiBNYW5hZ2VzIG5hdGl2ZSBkZWxlZ2F0ZXMuCi0gKgotICogVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggbGF5b3VibGliX2NyZWF0ZTogY2VydGFpbiBBbmRyb2lkIGphdmEgY2xhc3NlcyBhcmUgbWVyZQotICogd3JhcHBlcnMgYXJvdW5kIGEgaGVhdmlseSBuYXRpdmUgYmFzZWQgaW1wbGVtZW50YXRpb24sIGFuZCB3ZSBuZWVkIGEgd2F5IHRvIHJ1biB0aGVzZSBjbGFzc2VzCi0gKiBpbiBvdXIgRWNsaXBzZSByZW5kZXJpbmcgZnJhbWV3b3JrIHdpdGhvdXQgYnJpbmdpbmcgYWxsIHRoZSBuYXRpdmUgY29kZSBmcm9tIHRoZSBBbmRyb2lkCi0gKiBwbGF0Zm9ybS4KLSAqCi0gKiBUaHVzIHdlIGluc3RydWN0IGxheW91dGxpYl9jcmVhdGUgdG8gbW9kaWZ5IHRoZSBieXRlY29kZSBvZiB0aGVzZSBjbGFzc2VzIHRvIHJlcGxhY2UgdGhlaXIKLSAqIG5hdGl2ZSBtZXRob2RzIGJ5ICJkZWxlZ2F0ZSBjYWxscyIuCi0gKgotICogRm9yIGV4YW1wbGUsIGEgbmF0aXZlIG1ldGhvZCBhbmRyb2lkLmdyYXBoaWNzLk1hdHJpeC5pbml0KC4uLikgd2lsbCBhY3R1YWxseSBiZWNvbWUKLSAqIGEgY2FsbCB0byBhbmRyb2lkLmdyYXBoaWNzLk1hdHJpeF9EZWxlZ2F0ZS5pbml0KC4uLikuCi0gKgotICogVGhlIEFuZHJvaWQgamF2YSBjbGFzc2VzIHRoYXQgdXNlIG5hdGl2ZSBjb2RlIHVzZXMgYW4gaW50IChKYXZhIHNpZGUpIHRvIHJlZmVyZW5jZSBuYXRpdmUKLSAqIG9iamVjdHMuIFRoaXMgaW50IGlzIGdlbmVyYWxseSBkaXJlY3RseSB0aGUgcG9pbnRlciB0byB0aGUgQyBzdHJ1Y3R1cmUgY291bnRlcnBhcnQuCi0gKiBUeXBpY2FsbHkgYSBjcmVhdGlvbiBtZXRob2Qgd2lsbCByZXR1cm4gc3VjaCBhbiBpbnQsIGFuZCB0aGVuIHRoaXMgaW50IHdpbGwgYmUgcGFzc2VkIGxhdGVyCi0gKiB0byBhIEphdmEgbWV0aG9kIHRvIGlkZW50aWZ5IHRoZSBDIG9iamVjdCB0byBtYW5pcHVsYXRlLgotICoKLSAqIFNpbmNlIHdlIGNhbm5vdCB1c2UgdGhlIEphdmEgb2JqZWN0IHJlZmVyZW5jZSBhcyB0aGUgaW50IGRpcmVjdGx5LCBEZWxlZ2F0ZU1hbmFnZXIgbWFuYWdlcyB0aGUKLSAqIGludCAtPiBEZWxlZ2F0ZSBjbGFzcyBsaW5rLgotICoKLSAqIE5hdGl2ZSBtZXRob2RzIHVzdWFsbHkgYWx3YXlzIGhhdmUgdGhlIGludCBhcyBwYXJhbWV0ZXJzLiBUaGUgZmlyc3QgdGhpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZAotICogd2lsbCBkbyBpcyBjYWxsIHtAbGluayAjZ2V0RGVsZWdhdGUoaW50KX0gdG8gZ2V0IHRoZSBKYXZhIG9iamVjdCBtYXRjaGluZyB0aGUgaW50LgotICoKLSAqIFR5cGljYWwgbmF0aXZlIGluaXQgbWV0aG9kcyBhcmUgcmV0dXJuaW5nIGEgbmV3IGludCBiYWNrIHRvIHRoZSBKYXZhIGNsYXNzLCBzbwotICoge0BsaW5rICNhZGROZXdEZWxlZ2F0ZShPYmplY3QpfSBkb2VzIHRoZSBzYW1lLgotICoKLSAqIFRoZSBKTkkgcmVmZXJlbmNlcyBhcmUgY291bnRlZCwgc28gd2UgZG8gdGhlIHNhbWUgdGhyb3VnaCBhIHtAbGluayBXZWFrUmVmZXJlbmNlfS4gQmVjYXVzZQotICogdGhlIEphdmEgb2JqZWN0IG5lZWRzIHRvIGNvdW50IGFzIGEgcmVmZXJlbmNlIChldmVuIHRob3VnaCBpdCBvbmx5IGhvbGRzIGFuIGludCksIHdlIHVzZSB0aGUKLSAqIGZvbGxvd2luZyBtZWNoYW5pc206Ci0gKgotICogLSB7QGxpbmsgI2FkZE5ld0RlbGVnYXRlKE9iamVjdCl9IGFuZCB7QGxpbmsgI3JlbW92ZUphdmFSZWZlcmVuY2VGb3IoaW50KX0gYWRkcyBhbmQgcmVtb3ZlcwotICogICB0aGUgZGVsZWdhdGUgdG8vZnJvbSBhIGxpc3QuIFRoaXMgbGlzdCBob2xkIHRoZSByZWZlcmVuY2UgYW5kIHByZXZlbnRzIHRoZSBHQyBmcm9tIHJlY2xhaW1pbmcKLSAqICAgdGhlIGRlbGVnYXRlLgotICoKLSAqIC0ge0BsaW5rICNhZGROZXdEZWxlZ2F0ZShPYmplY3QpfSBhbHNvIGFkZHMgdGhlIGRlbGVnYXRlIHRvIGEge0BsaW5rIFNwYXJzZUFycmF5fSB0aGF0IGhvbGRzIGEKLSAqICAge0BsaW5rIFdlYWtSZWZlcmVuY2V9IHRvIHRoZSBkZWxlZ2F0ZS4gVGhpcyBhbGxvd3MgdGhlIGRlbGVnYXRlIHRvIGJlIGRlbGV0ZWQgYXV0b21hdGljYWxseQotICogICB3aGVuIG5vdGhpbmcgcmVmZXJlbmNlcyBpdC4gVGhpcyBtZWFucyB0aGF0IGFueSBjbGFzcyB0aGF0IGhvbGRzIGEgZGVsZWdhdGUgKGV4Y2VwdCBmb3IgdGhlCi0gKiAgIEphdmEgbWFpbiBjbGFzcykgbXVzdCBub3QgdXNlIHRoZSBpbnQgYnV0IHRoZSBEZWxlZ2F0ZSBjbGFzcyBpbnN0ZWFkLiBUaGUgaW50ZWdlcnMgbXVzdAotICogICBvbmx5IGJlIHVzZWQgaW4gdGhlIEFQSSBiZXR3ZWVuIHRoZSBtYWluIEphdmEgY2xhc3MgYW5kIHRoZSBEZWxlZ2F0ZS4KLSAqCi0gKiBAcGFyYW0gPFQ+IHRoZSBkZWxlZ2F0ZSBjbGFzcyB0byBtYW5hZ2UKLSAqLwotcHVibGljIGZpbmFsIGNsYXNzIERlbGVnYXRlTWFuYWdlcjxUPiB7Ci0gICAgcHJpdmF0ZSBmaW5hbCBDbGFzczxUPiBtQ2xhc3M7Ci0gICAgcHJpdmF0ZSBmaW5hbCBTcGFyc2VXZWFrQXJyYXk8VD4gbURlbGVnYXRlcyA9IG5ldyBTcGFyc2VXZWFrQXJyYXk8VD4oKTsKLSAgICAvKiogbGlzdCB1c2VkIHRvIHN0b3JlIGRlbGVnYXRlcyB3aGVuIHRoZWlyIG1haW4gb2JqZWN0IGhvbGRzIGEgcmVmZXJlbmNlIHRvIHRoZW0uCi0gICAgICogVGhpcyBpcyB0byBlbnN1cmUgdGhhdCB0aGUgV2Vha1JlZmVyZW5jZSBpbiB0aGUgU3BhcnNlV2Vha0FycmF5IGRvZXNuJ3QgZ2V0IEdDJ2VkCi0gICAgICogQHNlZSAjYWRkTmV3RGVsZWdhdGUoT2JqZWN0KQotICAgICAqIEBzZWUgI3JlbW92ZUphdmFSZWZlcmVuY2VGb3IoaW50KQotICAgICAqLwotICAgIHByaXZhdGUgZmluYWwgTGlzdDxUPiBtSmF2YVJlZmVyZW5jZXMgPSBuZXcgQXJyYXlMaXN0PFQ+KCk7Ci0gICAgcHJpdmF0ZSBpbnQgbURlbGVnYXRlQ291bnRlciA9IDA7Ci0KLSAgICBwdWJsaWMgRGVsZWdhdGVNYW5hZ2VyKENsYXNzPFQ+IHRoZUNsYXNzKSB7Ci0gICAgICAgIG1DbGFzcyA9IHRoZUNsYXNzOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIGRlbGVnYXRlIGZyb20gdGhlIGdpdmVuIG5hdGl2ZSBpbnQuCi0gICAgICogPHA+Ci0gICAgICogSWYgdGhlIGludCBpcyB6ZXJvLCB0aGVuIHRoaXMgd2lsbCBhbHdheXMgcmV0dXJuIG51bGwuCi0gICAgICogPHA+Ci0gICAgICogSWYgdGhlIGludCBpcyBub24gemVybyBhbmQgdGhlIGRlbGVnYXRlIGlzIG5vdCBmb3VuZCwgdGhpcyB3aWxsIHRocm93IGFuIGFzc2VydC4KLSAgICAgKgotICAgICAqIEBwYXJhbSBuYXRpdmVfb2JqZWN0IHRoZSBuYXRpdmUgaW50LgotICAgICAqIEByZXR1cm4gdGhlIGRlbGVnYXRlIG9yIG51bGwgaWYgbm90IGZvdW5kLgotICAgICAqLwotICAgIHB1YmxpYyBUIGdldERlbGVnYXRlKGludCBuYXRpdmVfb2JqZWN0KSB7Ci0gICAgICAgIGlmIChuYXRpdmVfb2JqZWN0ID4gMCkgewotICAgICAgICAgICAgVCBkZWxlZ2F0ZSA9ICBtRGVsZWdhdGVzLmdldChuYXRpdmVfb2JqZWN0KTsKLQotICAgICAgICAgICAgaWYgKERlYnVnLkRFQlVHKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGRlbGVnYXRlID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJVbmtub3duICIgKyBtQ2xhc3MuZ2V0U2ltcGxlTmFtZSgpICsgIiB3aXRoIGludCAiICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGFzc2VydCBkZWxlZ2F0ZSAhPSBudWxsOwotICAgICAgICAgICAgcmV0dXJuIGRlbGVnYXRlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEFkZHMgYSBkZWxlZ2F0ZSB0byB0aGUgbWFuYWdlciBhbmQgcmV0dXJucyB0aGUgbmF0aXZlIGludCB1c2VkIHRvIGlkZW50aWZ5IGl0LgotICAgICAqIEBwYXJhbSBuZXdEZWxlZ2F0ZSB0aGUgZGVsZWdhdGUgdG8gYWRkCi0gICAgICogQHJldHVybiBhIHVuaXF1ZSBuYXRpdmUgaW50IHRvIGlkZW50aWZ5IHRoZSBkZWxlZ2F0ZQotICAgICAqLwotICAgIHB1YmxpYyBpbnQgYWRkTmV3RGVsZWdhdGUoVCBuZXdEZWxlZ2F0ZSkgewotICAgICAgICBpbnQgbmF0aXZlX29iamVjdCA9ICsrbURlbGVnYXRlQ291bnRlcjsKLSAgICAgICAgbURlbGVnYXRlcy5wdXQobmF0aXZlX29iamVjdCwgbmV3RGVsZWdhdGUpOwotICAgICAgICBhc3NlcnQgIW1KYXZhUmVmZXJlbmNlcy5jb250YWlucyhuZXdEZWxlZ2F0ZSk7Ci0gICAgICAgIG1KYXZhUmVmZXJlbmNlcy5hZGQobmV3RGVsZWdhdGUpOwotCi0gICAgICAgIGlmIChEZWJ1Zy5ERUJVRykgewotICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOZXcgIiArIG1DbGFzcy5nZXRTaW1wbGVOYW1lKCkgKyAiIHdpdGggaW50ICIgKyBuYXRpdmVfb2JqZWN0KTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBuYXRpdmVfb2JqZWN0OwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlbW92ZXMgdGhlIG1haW4gcmVmZXJlbmNlIG9uIHRoZSBnaXZlbiBkZWxlZ2F0ZS4KLSAgICAgKiBAcGFyYW0gbmF0aXZlX29iamVjdCB0aGUgbmF0aXZlIGludGVnZXIgcmVwcmVzZW50aW5nIHRoZSBkZWxlZ2F0ZS4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCByZW1vdmVKYXZhUmVmZXJlbmNlRm9yKGludCBuYXRpdmVfb2JqZWN0KSB7Ci0gICAgICAgIFQgZGVsZWdhdGUgPSBnZXREZWxlZ2F0ZShuYXRpdmVfb2JqZWN0KTsKLQotICAgICAgICBpZiAoRGVidWcuREVCVUcpIHsKLSAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVtb3ZpbmcgbWFpbiBKYXZhIHJlZiBvbiAiICsgbUNsYXNzLmdldFNpbXBsZU5hbWUoKSArCi0gICAgICAgICAgICAgICAgICAgICIgd2l0aCBpbnQgIiArIG5hdGl2ZV9vYmplY3QpOwotICAgICAgICB9Ci0KLSAgICAgICAgbUphdmFSZWZlcmVuY2VzLnJlbW92ZShkZWxlZ2F0ZSk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL0ZvbnRMb2FkZXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9Gb250TG9hZGVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwOGI2NTEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL0ZvbnRMb2FkZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDM5NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGw7Ci0KLWltcG9ydCBvcmcueG1sLnNheC5BdHRyaWJ1dGVzOwotaW1wb3J0IG9yZy54bWwuc2F4LlNBWEV4Y2VwdGlvbjsKLWltcG9ydCBvcmcueG1sLnNheC5oZWxwZXJzLkRlZmF1bHRIYW5kbGVyOwotCi1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5UeXBlZmFjZTsKLQotaW1wb3J0IGphdmEuYXd0LkZvbnQ7Ci1pbXBvcnQgamF2YS5pby5GaWxlOwotaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOwotaW1wb3J0IGphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uOwotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKLWltcG9ydCBqYXZhLnV0aWwuTGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuU2V0OwotCi1pbXBvcnQgamF2YXgueG1sLnBhcnNlcnMuUGFyc2VyQ29uZmlndXJhdGlvbkV4Y2VwdGlvbjsKLWltcG9ydCBqYXZheC54bWwucGFyc2Vycy5TQVhQYXJzZXI7Ci1pbXBvcnQgamF2YXgueG1sLnBhcnNlcnMuU0FYUGFyc2VyRmFjdG9yeTsKLQotLyoqCi0gKiBQcm92aWRlcyB7QGxpbmsgRm9udH0gb2JqZWN0IHRvIHRoZSBsYXlvdXQgbGliLgotICogPHAvPgotICogVGhlIGZvbnRzIGFyZSBsb2FkZWQgZnJvbSB0aGUgU0RLIGRpcmVjdG9yeS4gRmFtaWx5L3N0eWxlIG1hcHBpbmcgaXMgZG9uZSBieSBwYXJzaW5nIHRoZQotICogZm9udHMueG1sIGZpbGUgbG9jYXRlZCBhbG9uZ3NpZGUgdGhlIHR0ZiBmaWxlcy4KLSAqLwotcHVibGljIGZpbmFsIGNsYXNzIEZvbnRMb2FkZXIgewotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGT05UU19TWVNURU0gPSAic3lzdGVtX2ZvbnRzLnhtbCI7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZPTlRTX1ZFTkRPUiA9ICJ2ZW5kb3JfZm9udHMueG1sIjsKLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRk9OVFNfRkFMTEJBQ0sgPSAiZmFsbGJhY2tfZm9udHMueG1sIjsKLQotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOT0RFX0ZBTUlMWVNFVCA9ICJmYW1pbHlzZXQiOwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOT0RFX0ZBTUlMWSA9ICJmYW1pbHkiOwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOT0RFX05BTUUgPSAibmFtZSI7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5PREVfRklMRSA9ICJmaWxlIjsKLQotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBVFRSSUJVVEVfVkFSSUFOVCA9ICJ2YXJpYW50IjsKLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQVRUUklCVVRFX1ZBTFVFX0VMRUdBTlQgPSAiZWxlZ2FudCI7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZPTlRfU1VGRklYX05PTkUgPSAiLnR0ZiI7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZPTlRfU1VGRklYX1JFR1VMQVIgPSAiLVJlZ3VsYXIudHRmIjsKLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRk9OVF9TVUZGSVhfQk9MRCA9ICItQm9sZC50dGYiOwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGT05UX1NVRkZJWF9JVEFMSUMgPSAiLUl0YWxpYy50dGYiOwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGT05UX1NVRkZJWF9CT0xESVRBTElDID0gIi1Cb2xkSXRhbGljLnR0ZiI7Ci0KLSAgICAvLyBUaGlzIG11c3QgbWF0Y2ggdGhlIHZhbHVlcyBvZiBUeXBlZmFjZSBzdHlsZXMgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZW0gZm9yIGluZGljZXMgaW4gdGhpcwotICAgIC8vIGFycmF5LgotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIEFXVF9TVFlMRVMgPSBuZXcgaW50W10gewotICAgICAgICBGb250LlBMQUlOLAotICAgICAgICBGb250LkJPTEQsCi0gICAgICAgIEZvbnQuSVRBTElDLAotICAgICAgICBGb250LkJPTEQgfCBGb250LklUQUxJQwotICAgIH07Ci0gICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gREVSSVZFX0JPTERfSVRBTElDID0gbmV3IGludFtdIHsKLSAgICAgICAgVHlwZWZhY2UuSVRBTElDLCBUeXBlZmFjZS5CT0xELCBUeXBlZmFjZS5OT1JNQUwKLSAgICB9OwotICAgIHByaXZhdGUgc3RhdGljIGludFtdIERFUklWRV9JVEFMSUMgPSBuZXcgaW50W10geyBUeXBlZmFjZS5OT1JNQUwgfTsKLSAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBERVJJVkVfQk9MRCA9IG5ldyBpbnRbXSB7IFR5cGVmYWNlLk5PUk1BTCB9OwotCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTGlzdDxGb250SW5mbz4gbU1haW5Gb250cyA9IG5ldyBBcnJheUxpc3Q8Rm9udEluZm8+KCk7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTGlzdDxGb250SW5mbz4gbUZhbGxiYWNrRm9udHMgPSBuZXcgQXJyYXlMaXN0PEZvbnRJbmZvPigpOwotCi0gICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgbU9zRm9udHNMb2NhdGlvbjsKLQotICAgIHB1YmxpYyBzdGF0aWMgRm9udExvYWRlciBjcmVhdGUoU3RyaW5nIGZvbnRPc0xvY2F0aW9uKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBTQVhQYXJzZXJGYWN0b3J5IHBhcnNlckZhY3RvcnkgPSBTQVhQYXJzZXJGYWN0b3J5Lm5ld0luc3RhbmNlKCk7Ci0gICAgICAgICAgICAgICAgcGFyc2VyRmFjdG9yeS5zZXROYW1lc3BhY2VBd2FyZSh0cnVlKTsKLQotICAgICAgICAgICAgLy8gcGFyc2UgdGhlIHN5c3RlbSBmb250cwotICAgICAgICAgICAgRm9udEhhbmRsZXIgaGFuZGxlciA9IHBhcnNlRm9udEZpbGUocGFyc2VyRmFjdG9yeSwgZm9udE9zTG9jYXRpb24sIEZPTlRTX1NZU1RFTSk7Ci0gICAgICAgICAgICBMaXN0PEZvbnRJbmZvPiBzeXN0ZW1Gb250cyA9IGhhbmRsZXIuZ2V0Rm9udExpc3QoKTsKLQotCi0gICAgICAgICAgICAvLyBwYXJzZSB0aGUgZmFsbGJhY2sgZm9udHMKLSAgICAgICAgICAgIGhhbmRsZXIgPSBwYXJzZUZvbnRGaWxlKHBhcnNlckZhY3RvcnksIGZvbnRPc0xvY2F0aW9uLCBGT05UU19GQUxMQkFDSyk7Ci0gICAgICAgICAgICBMaXN0PEZvbnRJbmZvPiBmYWxsYmFja0ZvbnRzID0gaGFuZGxlci5nZXRGb250TGlzdCgpOwotCi0gICAgICAgICAgICByZXR1cm4gbmV3IEZvbnRMb2FkZXIoZm9udE9zTG9jYXRpb24sIHN5c3RlbUZvbnRzLCBmYWxsYmFja0ZvbnRzKTsKLSAgICAgICAgfSBjYXRjaCAoUGFyc2VyQ29uZmlndXJhdGlvbkV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAvLyByZXR1cm4gbnVsbCBiZWxvdwotICAgICAgICB9IGNhdGNoIChTQVhFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgLy8gcmV0dXJuIG51bGwgYmVsb3cKLSAgICAgICAgfSBjYXRjaCAoRmlsZU5vdEZvdW5kRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIC8vIHJldHVybiBudWxsIGJlbG93Ci0gICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIC8vIHJldHVybiBudWxsIGJlbG93Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBGb250SGFuZGxlciBwYXJzZUZvbnRGaWxlKFNBWFBhcnNlckZhY3RvcnkgcGFyc2VyRmFjdG9yeSwKLSAgICAgICAgICAgIFN0cmluZyBmb250T3NMb2NhdGlvbiwgU3RyaW5nIGZvbnRGaWxlTmFtZSkKLSAgICAgICAgICAgIHRocm93cyBQYXJzZXJDb25maWd1cmF0aW9uRXhjZXB0aW9uLCBTQVhFeGNlcHRpb24sIElPRXhjZXB0aW9uLCBGaWxlTm90Rm91bmRFeGNlcHRpb24gewotCi0gICAgICAgIFNBWFBhcnNlciBwYXJzZXIgPSBwYXJzZXJGYWN0b3J5Lm5ld1NBWFBhcnNlcigpOwotICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZShmb250T3NMb2NhdGlvbiwgZm9udEZpbGVOYW1lKTsKLQotICAgICAgICBGb250SGFuZGxlciBkZWZpbml0aW9uUGFyc2VyID0gbmV3IEZvbnRIYW5kbGVyKAotICAgICAgICAgICAgICAgIGZvbnRPc0xvY2F0aW9uICsgRmlsZS5zZXBhcmF0b3IpOwotICAgICAgICBwYXJzZXIucGFyc2UobmV3IEZpbGVJbnB1dFN0cmVhbShmKSwgZGVmaW5pdGlvblBhcnNlcik7Ci0gICAgICAgIHJldHVybiBkZWZpbml0aW9uUGFyc2VyOwotICAgIH0KLQotICAgIHByaXZhdGUgRm9udExvYWRlcihTdHJpbmcgZm9udE9zTG9jYXRpb24sCi0gICAgICAgICAgICBMaXN0PEZvbnRJbmZvPiBmb250TGlzdCwgTGlzdDxGb250SW5mbz4gZmFsbEJhY2tMaXN0KSB7Ci0gICAgICAgIG1Pc0ZvbnRzTG9jYXRpb24gPSBmb250T3NMb2NhdGlvbjsKLSAgICAgICAgbU1haW5Gb250cy5hZGRBbGwoZm9udExpc3QpOwotICAgICAgICBtRmFsbGJhY2tGb250cy5hZGRBbGwoZmFsbEJhY2tMaXN0KTsKLSAgICB9Ci0KLQotICAgIHB1YmxpYyBTdHJpbmcgZ2V0T3NGb250c0xvY2F0aW9uKCkgewotICAgICAgICByZXR1cm4gbU9zRm9udHNMb2NhdGlvbjsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIGEge0BsaW5rIEZvbnR9IG9iamVjdCBnaXZlbiBhIGZhbWlseSBuYW1lIGFuZCBhIHN0eWxlIHZhbHVlIChjb25zdGFudCBpbgotICAgICAqIHtAbGluayBUeXBlZmFjZX0pLgotICAgICAqIEBwYXJhbSBmYW1pbHkgdGhlIGZhbWlseSBuYW1lCi0gICAgICogQHBhcmFtIHN0eWxlIGEgMS1pdGVtIGFycmF5IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBzdHlsZS4gQmFzZWQgb24gdGhlIGZvbnQgYmVpbmcgcmVhZAotICAgICAqICAgICAgICAgICAgICB0aGUgYWN0dWFsIHN0eWxlIG1heSBiZSBkaWZmZXJlbnQuIFRoZSBhcnJheSBjb250YWlucyB0aGUgYWN0dWFsIHN0eWxlIGFmdGVyCi0gICAgICogICAgICAgICAgICAgIHRoZSBtZXRob2QgcmV0dXJucy4KLSAgICAgKiBAcmV0dXJuIHRoZSBmb250IG9iamVjdCBvciBudWxsIGlmIG5vIG1hdGNoIGNvdWxkIGJlIGZvdW5kLgotICAgICAqLwotICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgTGlzdDxGb250PiBnZXRGb250KFN0cmluZyBmYW1pbHksIGludCBzdHlsZSkgewotICAgICAgICBMaXN0PEZvbnQ+IHJlc3VsdCA9IG5ldyBBcnJheUxpc3Q8Rm9udD4oKTsKLQotICAgICAgICBpZiAoZmFtaWx5ID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLQotCi0gICAgICAgIC8vIGdldCB0aGUgZm9udCBvYmplY3RzIGZyb20gdGhlIG1haW4gbGlzdCBiYXNlZCBvbiBmYW1pbHkuCi0gICAgICAgIGZvciAoRm9udEluZm8gaW5mbyA6IG1NYWluRm9udHMpIHsKLSAgICAgICAgICAgIGlmIChpbmZvLmZhbWlsaWVzLmNvbnRhaW5zKGZhbWlseSkpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQuYWRkKGluZm8uZm9udFtzdHlsZV0pOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gYWRkIGFsbCB0aGUgZmFsbGJhY2sgZm9udHMgZm9yIHRoZSBnaXZlbiBzdHlsZQotICAgICAgICBmb3IgKEZvbnRJbmZvIGluZm8gOiBtRmFsbGJhY2tGb250cykgewotICAgICAgICAgICAgcmVzdWx0LmFkZChpbmZvLmZvbnRbc3R5bGVdKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0KLSAgICBwdWJsaWMgc3luY2hyb25pemVkIExpc3Q8Rm9udD4gZ2V0RmFsbGJhY2tGb250cyhpbnQgc3R5bGUpIHsKLSAgICAgICAgTGlzdDxGb250PiByZXN1bHQgPSBuZXcgQXJyYXlMaXN0PEZvbnQ+KCk7Ci0gICAgICAgIC8vIGFkZCBhbGwgdGhlIGZhbGxiYWNrIGZvbnRzCi0gICAgICAgIGZvciAoRm9udEluZm8gaW5mbyA6IG1GYWxsYmFja0ZvbnRzKSB7Ci0gICAgICAgICAgICByZXN1bHQuYWRkKGluZm8uZm9udFtzdHlsZV0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0KLSAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBjbGFzcyBGb250SW5mbyB7Ci0gICAgICAgIGZpbmFsIEZvbnRbXSBmb250ID0gbmV3IEZvbnRbNF07IC8vIE1hdGNoZXMgdGhlIDQgdHlwZS1mYWNlIHN0eWxlcy4KLSAgICAgICAgZmluYWwgU2V0PFN0cmluZz4gZmFtaWxpZXM7Ci0KLSAgICAgICAgRm9udEluZm8oKSB7Ci0gICAgICAgICAgICBmYW1pbGllcyA9IG5ldyBIYXNoU2V0PFN0cmluZz4oKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGNsYXNzIEZvbnRIYW5kbGVyIGV4dGVuZHMgRGVmYXVsdEhhbmRsZXIgewotICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtT3NGb250c0xvY2F0aW9uOwotCi0gICAgICAgIHByaXZhdGUgRm9udEluZm8gbUZvbnRJbmZvID0gbnVsbDsKLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdCdWlsZGVyIG1CdWlsZGVyID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKLSAgICAgICAgcHJpdmF0ZSBMaXN0PEZvbnRJbmZvPiBtRm9udExpc3QgPSBuZXcgQXJyYXlMaXN0PEZvbnRJbmZvPigpOwotICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNDb21wYWN0Rm9udCA9IHRydWU7Ci0KLSAgICAgICAgcHJpdmF0ZSBGb250SGFuZGxlcihTdHJpbmcgb3NGb250c0xvY2F0aW9uKSB7Ci0gICAgICAgICAgICBzdXBlcigpOwotICAgICAgICAgICAgbU9zRm9udHNMb2NhdGlvbiA9IG9zRm9udHNMb2NhdGlvbjsKLSAgICAgICAgfQotCi0gICAgICAgIHB1YmxpYyBMaXN0PEZvbnRJbmZvPiBnZXRGb250TGlzdCgpIHsKLSAgICAgICAgICAgIHJldHVybiBtRm9udExpc3Q7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiAobm9uLUphdmFkb2MpCi0gICAgICAgICAqIEBzZWUgb3JnLnhtbC5zYXguaGVscGVycy5EZWZhdWx0SGFuZGxlciNzdGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgb3JnLnhtbC5zYXguQXR0cmlidXRlcykKLSAgICAgICAgICovCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCBzdGFydEVsZW1lbnQoU3RyaW5nIHVyaSwgU3RyaW5nIGxvY2FsTmFtZSwgU3RyaW5nIG5hbWUsIEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKLSAgICAgICAgICAgICAgICB0aHJvd3MgU0FYRXhjZXB0aW9uIHsKLSAgICAgICAgICAgIGlmIChOT0RFX0ZBTUlMWVNFVC5lcXVhbHMobG9jYWxOYW1lKSkgewotICAgICAgICAgICAgICAgIG1Gb250TGlzdCA9IG5ldyBBcnJheUxpc3Q8Rm9udEluZm8+KCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKE5PREVfRkFNSUxZLmVxdWFscyhsb2NhbE5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1Gb250TGlzdCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1Gb250SW5mbyA9IG51bGw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChOT0RFX05BTUUuZXF1YWxzKGxvY2FsTmFtZSkpIHsKLSAgICAgICAgICAgICAgICBpZiAobUZvbnRMaXN0ICE9IG51bGwgJiYgbUZvbnRJbmZvID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgbUZvbnRJbmZvID0gbmV3IEZvbnRJbmZvKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChOT0RFX0ZJTEUuZXF1YWxzKGxvY2FsTmFtZSkpIHsKLSAgICAgICAgICAgICAgICBpZiAobUZvbnRMaXN0ICE9IG51bGwgJiYgbUZvbnRJbmZvID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgbUZvbnRJbmZvID0gbmV3IEZvbnRJbmZvKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChBVFRSSUJVVEVfVkFMVUVfRUxFR0FOVC5lcXVhbHMoYXR0cmlidXRlcy5nZXRWYWx1ZShBVFRSSUJVVEVfVkFSSUFOVCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlzQ29tcGFjdEZvbnQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpc0NvbXBhY3RGb250ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1CdWlsZGVyLnNldExlbmd0aCgwKTsKLQotICAgICAgICAgICAgc3VwZXIuc3RhcnRFbGVtZW50KHVyaSwgbG9jYWxOYW1lLCBuYW1lLCBhdHRyaWJ1dGVzKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIChub24tSmF2YWRvYykKLSAgICAgICAgICogQHNlZSBvcmcueG1sLnNheC5oZWxwZXJzLkRlZmF1bHRIYW5kbGVyI2NoYXJhY3RlcnMoY2hhcltdLCBpbnQsIGludCkKLSAgICAgICAgICovCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCBjaGFyYWN0ZXJzKGNoYXJbXSBjaCwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoKSB0aHJvd3MgU0FYRXhjZXB0aW9uIHsKLSAgICAgICAgICAgIGlmIChpc0NvbXBhY3RGb250KSB7Ci0gICAgICAgICAgICAgIG1CdWlsZGVyLmFwcGVuZChjaCwgc3RhcnQsIGxlbmd0aCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvKiAobm9uLUphdmFkb2MpCi0gICAgICAgICAqIEBzZWUgb3JnLnhtbC5zYXguaGVscGVycy5EZWZhdWx0SGFuZGxlciNlbmRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpCi0gICAgICAgICAqLwotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgZW5kRWxlbWVudChTdHJpbmcgdXJpLCBTdHJpbmcgbG9jYWxOYW1lLCBTdHJpbmcgbmFtZSkgdGhyb3dzIFNBWEV4Y2VwdGlvbiB7Ci0gICAgICAgICAgICBpZiAoTk9ERV9GQU1JTFkuZXF1YWxzKGxvY2FsTmFtZSkpIHsKLSAgICAgICAgICAgICAgICBpZiAobUZvbnRJbmZvICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gaWYgaGFzIGEgbm9ybWFsIGZvbnQgZmlsZSwgYWRkIHRvIHRoZSBsaXN0Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtRm9udEluZm8uZm9udFtUeXBlZmFjZS5OT1JNQUxdICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1Gb250TGlzdC5hZGQobUZvbnRJbmZvKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIG1pc3NpbmcgZm9udCBzdHlsZXMsIG9yZGVyIGlzIGltcG9ydGFudC4KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtRm9udEluZm8uZm9udFtUeXBlZmFjZS5CT0xEX0lUQUxJQ10gPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVEZXJpdmVkRm9udChUeXBlZmFjZS5CT0xEX0lUQUxJQywgREVSSVZFX0JPTERfSVRBTElDKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtRm9udEluZm8uZm9udFtUeXBlZmFjZS5JVEFMSUNdID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlRGVyaXZlZEZvbnQoVHlwZWZhY2UuSVRBTElDLCBERVJJVkVfSVRBTElDKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtRm9udEluZm8uZm9udFtUeXBlZmFjZS5CT0xEXSA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcHV0ZURlcml2ZWRGb250KFR5cGVmYWNlLkJPTEQsIERFUklWRV9CT0xEKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIG1Gb250SW5mbyA9IG51bGw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlmIChOT0RFX05BTUUuZXF1YWxzKGxvY2FsTmFtZSkpIHsKLSAgICAgICAgICAgICAgICAvLyBoYW5kbGUgYSBuZXcgbmFtZSBmb3IgYW4gZXhpc3RpbmcgRm9udCBJbmZvCi0gICAgICAgICAgICAgICAgaWYgKG1Gb250SW5mbyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZyBmYW1pbHkgPSB0cmltWG1sV2hpdGVzcGFjZXMobUJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgIG1Gb250SW5mby5mYW1pbGllcy5hZGQoZmFtaWx5KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKE5PREVfRklMRS5lcXVhbHMobG9jYWxOYW1lKSkgewotICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBhIG5ldyBmaWxlIGZvciBhbiBleGlzdGluZyBGb250IEluZm8KLSAgICAgICAgICAgICAgICBpZiAoaXNDb21wYWN0Rm9udCAmJiBtRm9udEluZm8gIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZmlsZU5hbWUgPSB0cmltWG1sV2hpdGVzcGFjZXMobUJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgICAgICAgICAgICAgICAgIEZvbnQgZm9udCA9IGdldEZvbnQoZmlsZU5hbWUpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZm9udCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZU5hbWUuZW5kc1dpdGgoRk9OVF9TVUZGSVhfUkVHVUxBUikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRm9udEluZm8uZm9udFtUeXBlZmFjZS5OT1JNQUxdID0gZm9udDsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsZU5hbWUuZW5kc1dpdGgoRk9OVF9TVUZGSVhfQk9MRCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRm9udEluZm8uZm9udFtUeXBlZmFjZS5CT0xEXSA9IGZvbnQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpbGVOYW1lLmVuZHNXaXRoKEZPTlRfU1VGRklYX0lUQUxJQykpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRm9udEluZm8uZm9udFtUeXBlZmFjZS5JVEFMSUNdID0gZm9udDsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsZU5hbWUuZW5kc1dpdGgoRk9OVF9TVUZGSVhfQk9MRElUQUxJQykpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRm9udEluZm8uZm9udFtUeXBlZmFjZS5CT0xEX0lUQUxJQ10gPSBmb250OwotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWxlTmFtZS5lbmRzV2l0aChGT05UX1NVRkZJWF9OT05FKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1Gb250SW5mby5mb250W1R5cGVmYWNlLk5PUk1BTF0gPSBmb250OwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcHJpdmF0ZSBGb250IGdldEZvbnQoU3RyaW5nIGZpbGVOYW1lKSB7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKG1Pc0ZvbnRzTG9jYXRpb24sIGZpbGVOYW1lKTsKLSAgICAgICAgICAgICAgICBpZiAoZmlsZS5leGlzdHMoKSkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRm9udC5jcmVhdGVGb250KEZvbnQuVFJVRVRZUEVfRk9OVCwgZmlsZSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKLQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGUgdm9pZCBjb21wdXRlRGVyaXZlZEZvbnQoIGludCB0b0NvbXB1dGUsIGludFtdIGJhc2VkT25MaXN0KSB7Ci0gICAgICAgICAgICBmb3IgKGludCBiYXNlZE9uIDogYmFzZWRPbkxpc3QpIHsKLSAgICAgICAgICAgICAgICBpZiAobUZvbnRJbmZvLmZvbnRbYmFzZWRPbl0gIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBtRm9udEluZm8uZm9udFt0b0NvbXB1dGVdID0KLSAgICAgICAgICAgICAgICAgICAgICAgIG1Gb250SW5mby5mb250W2Jhc2VkT25dLmRlcml2ZUZvbnQoQVdUX1NUWUxFU1t0b0NvbXB1dGVdKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gd2UgcmVhbGx5IHNob3VsZG4ndCBzdG9wIHRoZXJlLiBUaGlzIG1lYW5zIHdlIGRvbid0IGhhdmUgYSBOT1JNQUwgZm9udC4uLgotICAgICAgICAgICAgYXNzZXJ0IGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgcHJpdmF0ZSBTdHJpbmcgdHJpbVhtbFdoaXRlc3BhY2VzKFN0cmluZyB2YWx1ZSkgewotICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gbG9vayBmb3IgY2FycmlhZ2UgcmV0dXJuIGFuZCByZXBsYWNlIGFsbCB3aGl0ZXNwYWNlIGFyb3VuZCBpdCBieSBqdXN0IDEgc3BhY2UuCi0gICAgICAgICAgICBpbnQgaW5kZXg7Ci0KLSAgICAgICAgICAgIHdoaWxlICgoaW5kZXggPSB2YWx1ZS5pbmRleE9mKCdcbicpKSAhPSAtMSkgewotICAgICAgICAgICAgICAgIC8vIGxvb2sgZm9yIHdoaXRlc3BhY2Ugb24gZWFjaCBzaWRlCi0gICAgICAgICAgICAgICAgaW50IGxlZnQgPSBpbmRleCAtIDE7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGxlZnQgPj0gMCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZSh2YWx1ZS5jaGFyQXQobGVmdCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0LS07Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGludCByaWdodCA9IGluZGV4ICsgMTsKLSAgICAgICAgICAgICAgICBpbnQgY291bnQgPSB2YWx1ZS5sZW5ndGgoKTsKLSAgICAgICAgICAgICAgICB3aGlsZSAocmlnaHQgPCBjb3VudCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZSh2YWx1ZS5jaGFyQXQocmlnaHQpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQrKzsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGFsbCBiZXR3ZWVuIGxlZnQgYW5kIHJpZ2h0IChub24gaW5jbHVzaXZlKSBhbmQgcmVwbGFjZSBieSBhIHNpbmdsZSBzcGFjZS4KLSAgICAgICAgICAgICAgICBTdHJpbmcgbGVmdFN0cmluZyA9IG51bGw7Ci0gICAgICAgICAgICAgICAgaWYgKGxlZnQgPj0gMCkgewotICAgICAgICAgICAgICAgICAgICBsZWZ0U3RyaW5nID0gdmFsdWUuc3Vic3RyaW5nKDAsIGxlZnQgKyAxKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHJpZ2h0U3RyaW5nID0gbnVsbDsKLSAgICAgICAgICAgICAgICBpZiAocmlnaHQgPCBjb3VudCkgewotICAgICAgICAgICAgICAgICAgICByaWdodFN0cmluZyA9IHZhbHVlLnN1YnN0cmluZyhyaWdodCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKGxlZnRTdHJpbmcgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGxlZnRTdHJpbmc7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyaWdodFN0cmluZyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSArPSAiICIgKyByaWdodFN0cmluZzsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcmlnaHRTdHJpbmcgIT0gbnVsbCA/IHJpZ2h0U3RyaW5nIDogIiI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBub3cgd2UgdW4tZXNjYXBlIHRoZSBzdHJpbmcKLSAgICAgICAgICAgIGludCBsZW5ndGggPSB2YWx1ZS5sZW5ndGgoKTsKLSAgICAgICAgICAgIGNoYXJbXSBidWZmZXIgPSB2YWx1ZS50b0NoYXJBcnJheSgpOwotCi0gICAgICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgPCBsZW5ndGggOyBpKyspIHsKLSAgICAgICAgICAgICAgICBpZiAoYnVmZmVyW2ldID09ICdcXCcpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGJ1ZmZlcltpKzFdID09ICduJykgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSB0aGUgY2hhciB3aXRoIFxuCi0gICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbaSsxXSA9ICdcbic7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgdGhlIHJlc3Qgb2YgdGhlIGJ1ZmZlciBzaW5jZSB3ZSBnbyBmcm9tIDIgdG8gMSBjaGFyCi0gICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLCBpKzEsIGJ1ZmZlciwgaSwgbGVuZ3RoIC0gaSAtIDEpOwotICAgICAgICAgICAgICAgICAgICBsZW5ndGgtLTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1ZmZlciwgMCwgbGVuZ3RoKTsKLSAgICAgICAgfQotCi0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL0djU25hcHNob3QuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9HY1NuYXBzaG90LmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxZDZiMWEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL0djU25hcHNob3QuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDgwMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGw7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuTGF5b3V0TG9nOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotCi1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXBfRGVsZWdhdGU7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5DYW52YXM7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5QYWludDsKLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlBhaW50X0RlbGVnYXRlOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuUmVjdDsKLWltcG9ydCBhbmRyb2lkLmdyYXBoaWNzLlJlY3RGOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuUmVnaW9uOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuUmVnaW9uX0RlbGVnYXRlOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuU2hhZGVyX0RlbGVnYXRlOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuWGZlcm1vZGVfRGVsZWdhdGU7Ci0KLWltcG9ydCBqYXZhLmF3dC5BbHBoYUNvbXBvc2l0ZTsKLWltcG9ydCBqYXZhLmF3dC5Db2xvcjsKLWltcG9ydCBqYXZhLmF3dC5Db21wb3NpdGU7Ci1pbXBvcnQgamF2YS5hd3QuR3JhcGhpY3MyRDsKLWltcG9ydCBqYXZhLmF3dC5SZW5kZXJpbmdIaW50czsKLWltcG9ydCBqYXZhLmF3dC5TaGFwZTsKLWltcG9ydCBqYXZhLmF3dC5nZW9tLkFmZmluZVRyYW5zZm9ybTsKLWltcG9ydCBqYXZhLmF3dC5nZW9tLkFyZWE7Ci1pbXBvcnQgamF2YS5hd3QuZ2VvbS5SZWN0YW5nbGUyRDsKLWltcG9ydCBqYXZhLmF3dC5pbWFnZS5CdWZmZXJlZEltYWdlOwotaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7Ci0KLS8qKgotICogQ2xhc3MgcmVwcmVzZW50aW5nIGEgZ3JhcGhpY3MgY29udGV4dCBzbmFwc2hvdCwgYXMgd2VsbCBhcyBhIGNvbnRleHQgc3RhY2sgYXMgYSBsaW5rZWQgbGlzdC4KLSAqIDxwPgotICogVGhpcyBpcyBiYXNlZCBvbiB0b3Agb2Yge0BsaW5rIEdyYXBoaWNzMkR9IGJ1dCBjYW4gb3BlcmF0ZSBpbmRlcGVuZGVudGx5IGlmIG5vbmUgYXJlIGF2YWlsYWJsZQotICogeWV0IHdoZW4gc2V0dGluZyB0cmFuc2Zvcm1zIGFuZCBjbGlwIGluZm9ybWF0aW9uLgotICogPHA+Ci0gKiBUaGlzIGFsbG93cyBmb3IgZHJhd2luZyB0aHJvdWdoIHtAbGluayAjZHJhdyhEcmF3YWJsZSwgUGFpbnRfRGVsZWdhdGUpfSBhbmQKLSAqIHtAbGluayAjZHJhdyhEcmF3YWJsZSwgUGFpbnRfRGVsZWdhdGUpfQotICoKLSAqIEhhbmRsaW5nIG9mIGxheWVycyAoY3JlYXRlZCB3aXRoIHtAbGluayBDYW52YXMjc2F2ZUxheWVyKFJlY3RGLCBQYWludCwgaW50KX0pIGlzIGhhbmRsZWQgdGhyb3VnaAotICogYSBsaXN0IG9mIEdyYXBoaWNzMkQgZm9yIGVhY2ggbGF5ZXJzLiBUaGUgY2xhc3MgYWN0dWFsbHkgbWFpbnRhaW5zIGEgbGlzdCBvZiB7QGxpbmsgTGF5ZXJ9Ci0gKiBmb3IgZWFjaCBsYXllci4gRG9pbmcgYSBzYXZlKCkgd2lsbCBkdXBsaWNhdGUgdGhpcyBsaXN0IHNvIHRoYXQgZWFjaCBncmFwaGljczJEIG9iamVjdAotICogKHtAbGluayBMYXllciNnZXRHcmFwaGljcygpfSkgaXMgY29uZmlndXJlZCBvbmx5IGZvciB0aGUgbmV3IHNuYXBzaG90LgotICovCi1wdWJsaWMgY2xhc3MgR2NTbmFwc2hvdCB7Ci0KLSAgICBwcml2YXRlIGZpbmFsIEdjU25hcHNob3QgbVByZXZpb3VzOwotICAgIHByaXZhdGUgZmluYWwgaW50IG1GbGFnczsKLQotICAgIC8qKiBsaXN0IG9mIGxheWVycy4gVGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QgaXMgYWx3YXlzIHRoZSAgKi8KLSAgICBwcml2YXRlIGZpbmFsIEFycmF5TGlzdDxMYXllcj4gbUxheWVycyA9IG5ldyBBcnJheUxpc3Q8TGF5ZXI+KCk7Ci0KLSAgICAvKiogdGVtcCB0cmFuc2Zvcm0gaW4gY2FzZSB0cmFuc2Zvcm1hdGlvbiBhcmUgc2V0IGJlZm9yZSBhIEdyYXBoaWNzMkQgZXhpc3RzICovCi0gICAgcHJpdmF0ZSBBZmZpbmVUcmFuc2Zvcm0gbVRyYW5zZm9ybSA9IG51bGw7Ci0gICAgLyoqIHRlbXAgY2xpcCBpbiBjYXNlIGNsaXBwaW5nIGlzIHNldCBiZWZvcmUgYSBHcmFwaGljczJEIGV4aXN0cyAqLwotICAgIHByaXZhdGUgQXJlYSBtQ2xpcCA9IG51bGw7Ci0KLSAgICAvLyBsb2NhbCBsYXllciBkYXRhCi0gICAgLyoqIGEgbG9jYWwgbGF5ZXIgY3JlYXRlZCB3aXRoIHtAbGluayBDYW52YXMjc2F2ZUxheWVyKFJlY3RGLCBQYWludCwgaW50KX0uCi0gICAgICogSWYgdGhpcyBpcyBudWxsLCB0aGlzIGRvZXMgbm90IG1lYW4gdGhlcmUncyBubyBsYXllciwganVzdCB0aGF0IHRoZSBzbmFwc2hvdCBpcyBub3QgdGhlCi0gICAgICogb25lIHRoYXQgY3JlYXRlZCB0aGUgbGF5ZXIuCi0gICAgICogQHNlZSAjZ2V0TGF5ZXJTbmFwc2hvdCgpCi0gICAgICovCi0gICAgcHJpdmF0ZSBmaW5hbCBMYXllciBtTG9jYWxMYXllcjsKLSAgICBwcml2YXRlIGZpbmFsIFBhaW50X0RlbGVnYXRlIG1Mb2NhbExheWVyUGFpbnQ7Ci0gICAgcHJpdmF0ZSBmaW5hbCBSZWN0IG1MYXllckJvdW5kczsKLQotICAgIHB1YmxpYyBpbnRlcmZhY2UgRHJhd2FibGUgewotICAgICAgICB2b2lkIGRyYXcoR3JhcGhpY3MyRCBncmFwaGljcywgUGFpbnRfRGVsZWdhdGUgcGFpbnQpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIENsYXNzIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBsYXllci4KLSAgICAgKgotICAgICAqIFRoaXMgY29udGFpbnMgZ3JhcGhpY3MsIGJpdG1hcCBhbmQgbGF5ZXIgaW5mb3JtYXRpb24uCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTGF5ZXIgewotICAgICAgICBwcml2YXRlIGZpbmFsIEdyYXBoaWNzMkQgbUdyYXBoaWNzOwotICAgICAgICBwcml2YXRlIGZpbmFsIEJpdG1hcF9EZWxlZ2F0ZSBtQml0bWFwOwotICAgICAgICBwcml2YXRlIGZpbmFsIEJ1ZmZlcmVkSW1hZ2UgbUltYWdlOwotICAgICAgICAvKiogdGhlIGZsYWdzIHRoYXQgd2VyZSB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgbGF5ZXIuIFRoaXMgaXMgbmV2ZXIgY2hhbmdlZCwgYW5kIHBhc3NlZAotICAgICAgICAgKiBhcyBpcyB3aGVuIHtAbGluayAjbWFrZUNvcHkoKX0gaXMgY2FsbGVkICovCi0gICAgICAgIHByaXZhdGUgZmluYWwgaW50IG1GbGFnczsKLSAgICAgICAgLyoqIHRoZSBvcmlnaW5hbCBjb250ZW50IG9mIHRoZSBsYXllciB3aGVuIHRoZSBuZXh0IG9iamVjdCB3YXMgY3JlYXRlZC4gVGhpcyBpcyBub3QKLSAgICAgICAgICogcGFzc2VkIGluIHtAbGluayAjbWFrZUNvcHkoKX0gYW5kIGluc3RlYWQgaXMgcmVjcmVhdGVkIHdoZW4gYSBuZXcgbGF5ZXIgaXMgYWRkZWQKLSAgICAgICAgICogKGRlcGVuZGluZyBvbiBpdHMgZmxhZ3MpICovCi0gICAgICAgIHByaXZhdGUgQnVmZmVyZWRJbWFnZSBtT3JpZ2luYWxDb3B5OwotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBDcmVhdGVzIGEgbGF5ZXIgd2l0aCBhIGdyYXBoaWNzIGFuZCBhIGJpdG1hcC4gVGhpcyBpcyBvbmx5IHVzZWQgdG8gY3JlYXRlCi0gICAgICAgICAqIHRoZSBiYXNlIGxheWVyLgotICAgICAgICAgKgotICAgICAgICAgKiBAcGFyYW0gZ3JhcGhpY3MgdGhlIGdyYXBoaWNzCi0gICAgICAgICAqIEBwYXJhbSBiaXRtYXAgdGhlIGJpdG1hcAotICAgICAgICAgKi8KLSAgICAgICAgTGF5ZXIoR3JhcGhpY3MyRCBncmFwaGljcywgQml0bWFwX0RlbGVnYXRlIGJpdG1hcCkgewotICAgICAgICAgICAgbUdyYXBoaWNzID0gZ3JhcGhpY3M7Ci0gICAgICAgICAgICBtQml0bWFwID0gYml0bWFwOwotICAgICAgICAgICAgbUltYWdlID0gbUJpdG1hcC5nZXRJbWFnZSgpOwotICAgICAgICAgICAgbUZsYWdzID0gMDsKLSAgICAgICAgfQotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBDcmVhdGVzIGEgbGF5ZXIgd2l0aCBhIGdyYXBoaWNzIGFuZCBhbiBpbWFnZS4gSWYgdGhlIGltYWdlIGJlbG9uZ3MgdG8gYQotICAgICAgICAgKiB7QGxpbmsgQml0bWFwX0RlbGVnYXRlfSAoY2FzZSBvZiB0aGUgYmFzZSBsYXllciksIHRoZW4KLSAgICAgICAgICoge0BsaW5rIExheWVyI0xheWVyKEdyYXBoaWNzMkQsIEJpdG1hcF9EZWxlZ2F0ZSl9IHNob3VsZCBiZSB1c2VkLgotICAgICAgICAgKgotICAgICAgICAgKiBAcGFyYW0gZ3JhcGhpY3MgdGhlIGdyYXBoaWNzIHRoZSBuZXcgZ3JhcGhpY3MgZm9yIHRoaXMgbGF5ZXIKLSAgICAgICAgICogQHBhcmFtIGltYWdlIHRoZSBpbWFnZSB0aGUgaW1hZ2UgZnJvbSB3aGljaCB0aGUgZ3JhcGhpY3MgY2FtZQotICAgICAgICAgKiBAcGFyYW0gZmxhZ3MgdGhlIGZsYWdzIHRoYXQgd2VyZSB1c2VkIHRvIHNhdmUgdGhpcyBsYXllcgotICAgICAgICAgKi8KLSAgICAgICAgTGF5ZXIoR3JhcGhpY3MyRCBncmFwaGljcywgQnVmZmVyZWRJbWFnZSBpbWFnZSwgaW50IGZsYWdzKSB7Ci0gICAgICAgICAgICBtR3JhcGhpY3MgPSBncmFwaGljczsKLSAgICAgICAgICAgIG1CaXRtYXAgPSBudWxsOwotICAgICAgICAgICAgbUltYWdlID0gaW1hZ2U7Ci0gICAgICAgICAgICBtRmxhZ3MgPSBmbGFnczsKLSAgICAgICAgfQotCi0gICAgICAgIC8qKiBUaGUgR3JhcGhpY3MyRCwgZ3VhcmFudGVlZCB0byBiZSBub24gbnVsbCAqLwotICAgICAgICBHcmFwaGljczJEIGdldEdyYXBoaWNzKCkgewotICAgICAgICAgICAgcmV0dXJuIG1HcmFwaGljczsKLSAgICAgICAgfQotCi0gICAgICAgIC8qKiBUaGUgQnVmZmVyZWRJbWFnZSwgZ3VhcmFudGVlZCB0byBiZSBub24gbnVsbCAqLwotICAgICAgICBCdWZmZXJlZEltYWdlIGdldEltYWdlKCkgewotICAgICAgICAgICAgcmV0dXJuIG1JbWFnZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qKiBSZXR1cm5zIHRoZSBsYXllciBzYXZlIGZsYWdzLiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIGFkZGl0aW9uYWwgbGF5ZXJzLgotICAgICAgICAgKiBGb3IgdGhlIGJhc2UgbGF5ZXIgdGhpcyB3aWxsIGFsd2F5cyByZXR1cm4gMDsKLSAgICAgICAgICogRm9yIGEgZ2l2ZW4gbGF5ZXIsIGFsbCBmdXJ0aGVyIGNvcGllcyBvZiB0aGlzIHtAbGluayBMYXllcn0gb2JqZWN0IGluIG5ldyBzbmFwc2hvdHMKLSAgICAgICAgICogd2lsbCBhbHdheXMgcmV0dXJuIHRoZSBzYW1lIHZhbHVlLgotICAgICAgICAgKi8KLSAgICAgICAgaW50IGdldEZsYWdzKCkgewotICAgICAgICAgICAgcmV0dXJuIG1GbGFnczsKLSAgICAgICAgfQotCi0gICAgICAgIExheWVyIG1ha2VDb3B5KCkgewotICAgICAgICAgICAgaWYgKG1CaXRtYXAgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTGF5ZXIoKEdyYXBoaWNzMkQpIG1HcmFwaGljcy5jcmVhdGUoKSwgbUJpdG1hcCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBuZXcgTGF5ZXIoKEdyYXBoaWNzMkQpIG1HcmFwaGljcy5jcmVhdGUoKSwgbUltYWdlLCBtRmxhZ3MpOwotICAgICAgICB9Ci0KLSAgICAgICAgLyoqIHNldHMgYW4gb3B0aW9uYWwgY29weSBvZiB0aGUgb3JpZ2luYWwgY29udGVudCB0byBiZSB1c2VkIGR1cmluZyByZXN0b3JlICovCi0gICAgICAgIHZvaWQgc2V0T3JpZ2luYWxDb3B5KEJ1ZmZlcmVkSW1hZ2UgaW1hZ2UpIHsKLSAgICAgICAgICAgIG1PcmlnaW5hbENvcHkgPSBpbWFnZTsKLSAgICAgICAgfQotCi0gICAgICAgIEJ1ZmZlcmVkSW1hZ2UgZ2V0T3JpZ2luYWxDb3B5KCkgewotICAgICAgICAgICAgcmV0dXJuIG1PcmlnaW5hbENvcHk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGNoYW5nZSgpIHsKLSAgICAgICAgICAgIGlmIChtQml0bWFwICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBtQml0bWFwLmNoYW5nZSgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIFNldHMgdGhlIGNsaXAgZm9yIHRoZSBncmFwaGljczJEIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGxheWVyLgotICAgICAgICAgKiBUaGlzIHNob3VsZCBiZSB1c2VkIG92ZXIgdGhlIG5vcm1hbCBHcmFwaGljczJEIHNldENsaXAgbWV0aG9kLgotICAgICAgICAgKgotICAgICAgICAgKiBAcGFyYW0gY2xpcFNoYXBlIHRoZSBzaGFwZSB0byB1c2UgYSB0aGUgY2xpcCBzaGFwZS4KLSAgICAgICAgICovCi0gICAgICAgIHZvaWQgc2V0Q2xpcChTaGFwZSBjbGlwU2hhcGUpIHsKLSAgICAgICAgICAgIC8vIGJlY2F1c2Ugc2V0Q2xpcCBpcyBvbmx5IGd1YXJhbnRlZWQgdG8gd29yayB3aXRoIHJlY3RhbmdsZSBzaGFwZSwKLSAgICAgICAgICAgIC8vIGZpcnN0IHJlc2V0IHRoZSBjbGlwIHRvIG1heCBhbmQgdGhlbiBpbnRlcnNlY3QgdGhlIGN1cnJlbnQgKGVtcHR5KQotICAgICAgICAgICAgLy8gY2xpcCB3aXRoIHRoZSBzaGFwLgotICAgICAgICAgICAgbUdyYXBoaWNzLnNldENsaXAobnVsbCk7Ci0gICAgICAgICAgICBtR3JhcGhpY3MuY2xpcChjbGlwU2hhcGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIENsaXBzIHRoZSBsYXllciB3aXRoIHRoZSBnaXZlbiBzaGFwZS4gVGhpcyBwZXJmb3JtcyBhbiBpbnRlcnNlY3QgYmV0d2VlbiB0aGUgY3VycmVudAotICAgICAgICAgKiBjbGlwIHNoYXBlIGFuZCB0aGUgZ2l2ZW4gc2hhcGUuCi0gICAgICAgICAqIEBwYXJhbSBzaGFwZSB0aGUgbmV3IGNsaXAgc2hhcGUuCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgdm9pZCBjbGlwKFNoYXBlIHNoYXBlKSB7Ci0gICAgICAgICAgICBtR3JhcGhpY3MuY2xpcChzaGFwZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDcmVhdGVzIHRoZSByb290IHNuYXBzaG90IGFzc29jaWF0aW5nIGl0IHdpdGggYSBnaXZlbiBiaXRtYXAuCi0gICAgICogPHA+Ci0gICAgICogSWYgPHZhcj5iaXRtYXA8L3Zhcj4gaXMgbnVsbCwgdGhlbiB7QGxpbmsgR2NTbmFwc2hvdCNzZXRCaXRtYXAoQml0bWFwX0RlbGVnYXRlKX0gbXVzdCBiZQotICAgICAqIGNhbGxlZCBiZWZvcmUgdGhlIHNuYXBzaG90IGNhbiBiZSB1c2VkIHRvIGRyYXcuIFRyYW5zZm9ybSBhbmQgY2xpcCBvcGVyYXRpb25zIGFyZSBwZXJtaXR0ZWQKLSAgICAgKiBiZWZvcmUuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gaW1hZ2UgdGhlIGltYWdlIHRvIGFzc29jaWF0ZSB0byB0aGUgc25hcHNob3Qgb3IgbnVsbC4KLSAgICAgKiBAcmV0dXJuIHRoZSByb290IHNuYXBzaG90Ci0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBHY1NuYXBzaG90IGNyZWF0ZURlZmF1bHRTbmFwc2hvdChCaXRtYXBfRGVsZWdhdGUgYml0bWFwKSB7Ci0gICAgICAgIEdjU25hcHNob3Qgc25hcHNob3QgPSBuZXcgR2NTbmFwc2hvdCgpOwotICAgICAgICBpZiAoYml0bWFwICE9IG51bGwpIHsKLSAgICAgICAgICAgIHNuYXBzaG90LnNldEJpdG1hcChiaXRtYXApOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHNuYXBzaG90OwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFNhdmVzIHRoZSBjdXJyZW50IHN0YXRlIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gZmxhZ3MgYW5kIHJldHVybnMgdGhlIG5ldyBjdXJyZW50IHNuYXBzaG90LgotICAgICAqIDxwLz4KLSAgICAgKiBUaGlzIGlzIHRoZSBlcXVpdmFsZW50IG9mIHtAbGluayBDYW52YXMjc2F2ZShpbnQpfQotICAgICAqCi0gICAgICogQHBhcmFtIGZsYWdzIHRoZSBzYXZlIGZsYWdzLgotICAgICAqIEByZXR1cm4gdGhlIG5ldyBzbmFwc2hvdAotICAgICAqCi0gICAgICogQHNlZSBDYW52YXMjc2F2ZShpbnQpCi0gICAgICovCi0gICAgcHVibGljIEdjU25hcHNob3Qgc2F2ZShpbnQgZmxhZ3MpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBHY1NuYXBzaG90KHRoaXMsIG51bGwgLypsYXllcmJvdW5kcyovLCBudWxsIC8qcGFpbnQqLywgZmxhZ3MpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFNhdmVzIHRoZSBjdXJyZW50IHN0YXRlIGFuZCBjcmVhdGVzIGEgbmV3IGxheWVyLCBhbmQgcmV0dXJucyB0aGUgbmV3IGN1cnJlbnQgc25hcHNob3QuCi0gICAgICogPHAvPgotICAgICAqIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2Yge0BsaW5rIENhbnZhcyNzYXZlTGF5ZXIoUmVjdEYsIFBhaW50LCBpbnQpfQotICAgICAqCi0gICAgICogQHBhcmFtIGxheWVyQm91bmRzIHRoZSBsYXllciBib3VuZHMKLSAgICAgKiBAcGFyYW0gcGFpbnQgdGhlIFBhaW50IGluZm9ybWF0aW9uIHVzZWQgdG8gYmxpdCB0aGUgbGF5ZXIgYmFjayBpbnRvIHRoZSBsYXllcnMgdW5kZXJuZWF0aAotICAgICAqICAgICAgICAgIHVwb24gcmVzdG9yZQotICAgICAqIEBwYXJhbSBmbGFncyB0aGUgc2F2ZSBmbGFncy4KLSAgICAgKiBAcmV0dXJuIHRoZSBuZXcgc25hcHNob3QKLSAgICAgKgotICAgICAqIEBzZWUgQ2FudmFzI3NhdmVMYXllcihSZWN0RiwgUGFpbnQsIGludCkKLSAgICAgKi8KLSAgICBwdWJsaWMgR2NTbmFwc2hvdCBzYXZlTGF5ZXIoUmVjdEYgbGF5ZXJCb3VuZHMsIFBhaW50X0RlbGVnYXRlIHBhaW50LCBpbnQgZmxhZ3MpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBHY1NuYXBzaG90KHRoaXMsIGxheWVyQm91bmRzLCBwYWludCwgZmxhZ3MpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIENyZWF0ZXMgdGhlIHJvb3Qgc25hcHNob3QuCi0gICAgICoge0BsaW5rICNzZXRHcmFwaGljczJEKEdyYXBoaWNzMkQpfSB3aWxsIGhhdmUgdG8gYmUgY2FsbGVkIG9uIGl0IHdoZW4gcG9zc2libGUuCi0gICAgICovCi0gICAgcHJpdmF0ZSBHY1NuYXBzaG90KCkgewotICAgICAgICBtUHJldmlvdXMgPSBudWxsOwotICAgICAgICBtRmxhZ3MgPSAwOwotICAgICAgICBtTG9jYWxMYXllciA9IG51bGw7Ci0gICAgICAgIG1Mb2NhbExheWVyUGFpbnQgPSBudWxsOwotICAgICAgICBtTGF5ZXJCb3VuZHMgPSBudWxsOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIENyZWF0ZXMgYSBuZXcge0BsaW5rIEdjU25hcHNob3R9IG9uIHRvcCBvZiBhbm90aGVyIG9uZSwgd2l0aCBhIGxheWVyIGRhdGEgdG8gYmUgcmVzdG9yZWQKLSAgICAgKiBpbnRvIHRoZSBtYWluIGdyYXBoaWNzIHdoZW4ge0BsaW5rICNyZXN0b3JlKCl9IGlzIGNhbGxlZC4KLSAgICAgKgotICAgICAqIEBwYXJhbSBwcmV2aW91cyB0aGUgcHJldmlvdXMgc25hcHNob3QgaGVhZC4KLSAgICAgKiBAcGFyYW0gbGF5ZXJCb3VuZHMgdGhlIHJlZ2lvbiBvZiB0aGUgbGF5ZXIuIE9wdGlvbmFsLCBpZiBudWxsLCB0aGlzIGlzIGEgbm9ybWFsIHNhdmUoKQotICAgICAqIEBwYXJhbSBwYWludCB0aGUgUGFpbnQgaW5mb3JtYXRpb24gdXNlZCB0byBibGl0IHRoZSBsYXllciBiYWNrIGludG8gdGhlIGxheWVycyB1bmRlcm5lYXRoCi0gICAgICogICAgICAgICAgdXBvbiByZXN0b3JlCi0gICAgICogQHBhcmFtIGZsYWdzIHRoZSBmbGFncyByZWdhcmRpbmcgd2hhdCBzaG91bGQgYmUgc2F2ZWQuCi0gICAgICovCi0gICAgcHJpdmF0ZSBHY1NuYXBzaG90KEdjU25hcHNob3QgcHJldmlvdXMsIFJlY3RGIGxheWVyQm91bmRzLCBQYWludF9EZWxlZ2F0ZSBwYWludCwgaW50IGZsYWdzKSB7Ci0gICAgICAgIGFzc2VydCBwcmV2aW91cyAhPSBudWxsOwotICAgICAgICBtUHJldmlvdXMgPSBwcmV2aW91czsKLSAgICAgICAgbUZsYWdzID0gZmxhZ3M7Ci0KLSAgICAgICAgLy8gbWFrZSBhIGNvcHkgb2YgdGhlIGN1cnJlbnQgbGF5ZXJzIGJlZm9yZSBhZGRpbmcgdGhlIG5ldyBvbmUuCi0gICAgICAgIC8vIFRoaXMga2VlcHMgdGhlIHNhbWUgQnVmZmVyZWRJbWFnZSByZWZlcmVuY2UgYnV0IGNyZWF0ZXMgbmV3IEdyYXBoaWNzMkQgZm9yIHRoaXMKLSAgICAgICAgLy8gc25hcHNob3QuCi0gICAgICAgIC8vIEl0IGRvZXMgbm90IGNvcHkgd2hhdGV2ZXIgb3JpZ2luYWwgY29weSB0aGUgbGF5ZXJzIGhhdmUsIGFzIHRoZXkgd2lsbCBiZSBkb25lCi0gICAgICAgIC8vIG9ubHkgaWYgdGhlIG5ldyBsYXllciBkb2Vzbid0IGNsaXAgZHJhd2luZyB0byBpdHNlbGYuCi0gICAgICAgIGZvciAoTGF5ZXIgbGF5ZXIgOiBtUHJldmlvdXMubUxheWVycykgewotICAgICAgICAgICAgbUxheWVycy5hZGQobGF5ZXIubWFrZUNvcHkoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobGF5ZXJCb3VuZHMgIT0gbnVsbCkgewotICAgICAgICAgICAgLy8gZ2V0IHRoZSBjdXJyZW50IHRyYW5zZm9ybQotICAgICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIG1hdHJpeCA9IG1MYXllcnMuZ2V0KDApLmdldEdyYXBoaWNzKCkuZ2V0VHJhbnNmb3JtKCk7Ci0KLSAgICAgICAgICAgIC8vIHRyYW5zZm9ybSB0aGUgbGF5ZXJCb3VuZHMgd2l0aCB0aGUgY3VycmVudCB0cmFuc2Zvcm0gYW5kIHN0b3JlcyBpdCBpbnRvIGEgaW50IHJlY3QKLSAgICAgICAgICAgIFJlY3RGIHJlY3QyID0gbmV3IFJlY3RGKCk7Ci0gICAgICAgICAgICBtYXBSZWN0KG1hdHJpeCwgcmVjdDIsIGxheWVyQm91bmRzKTsKLSAgICAgICAgICAgIG1MYXllckJvdW5kcyA9IG5ldyBSZWN0KCk7Ci0gICAgICAgICAgICByZWN0Mi5yb3VuZChtTGF5ZXJCb3VuZHMpOwotCi0gICAgICAgICAgICAvLyBnZXQgdGhlIGJhc2UgbGF5ZXIgKGFsd2F5cyBhdCBpbmRleCAwKQotICAgICAgICAgICAgTGF5ZXIgYmFzZUxheWVyID0gbUxheWVycy5nZXQoMCk7Ci0KLSAgICAgICAgICAgIC8vIGNyZWF0ZSB0aGUgaW1hZ2UgZm9yIHRoZSBsYXllcgotICAgICAgICAgICAgQnVmZmVyZWRJbWFnZSBsYXllckltYWdlID0gbmV3IEJ1ZmZlcmVkSW1hZ2UoCi0gICAgICAgICAgICAgICAgICAgIGJhc2VMYXllci5nZXRJbWFnZSgpLmdldFdpZHRoKCksCi0gICAgICAgICAgICAgICAgICAgIGJhc2VMYXllci5nZXRJbWFnZSgpLmdldEhlaWdodCgpLAotICAgICAgICAgICAgICAgICAgICAobUZsYWdzICYgQ2FudmFzLkhBU19BTFBIQV9MQVlFUl9TQVZFX0ZMQUcpICE9IDAgPwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkSW1hZ2UuVFlQRV9JTlRfQVJHQiA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkSW1hZ2UuVFlQRV9JTlRfUkdCKTsKLQotICAgICAgICAgICAgLy8gY3JlYXRlIGEgZ3JhcGhpY3MgZm9yIGl0IHNvIHRoYXQgZHJhd2luZyBjYW4gYmUgZG9uZS4KLSAgICAgICAgICAgIEdyYXBoaWNzMkQgbGF5ZXJHcmFwaGljcyA9IGxheWVySW1hZ2UuY3JlYXRlR3JhcGhpY3MoKTsKLQotICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGlzIGxheWVyIGluaGVyaXRzIHRoZSBjdXJyZW50IGNvbnRleHQgZm9yIHRyYW5zZm9ybSBhbmQgY2xpcCwKLSAgICAgICAgICAgIC8vIHNldCB0aGVtIHRvIG9uZSBmcm9tIHRoZSBiYXNlIGxheWVyLgotICAgICAgICAgICAgQWZmaW5lVHJhbnNmb3JtIGN1cnJlbnRNdHggPSBiYXNlTGF5ZXIuZ2V0R3JhcGhpY3MoKS5nZXRUcmFuc2Zvcm0oKTsKLSAgICAgICAgICAgIGxheWVyR3JhcGhpY3Muc2V0VHJhbnNmb3JtKGN1cnJlbnRNdHgpOwotCi0gICAgICAgICAgICAvLyBjcmVhdGUgYSBuZXcgbGF5ZXIgZm9yIHRoaXMgbmV3IGxheWVyIGFuZCBhZGQgaXQgdG8gdGhlIGxpc3QgYXQgdGhlIGVuZC4KLSAgICAgICAgICAgIG1MYXllcnMuYWRkKG1Mb2NhbExheWVyID0gbmV3IExheWVyKGxheWVyR3JhcGhpY3MsIGxheWVySW1hZ2UsIGZsYWdzKSk7Ci0KLSAgICAgICAgICAgIC8vIHNldCB0aGUgY2xpcCBvbiBpdC4KLSAgICAgICAgICAgIFNoYXBlIGN1cnJlbnRDbGlwID0gYmFzZUxheWVyLmdldEdyYXBoaWNzKCkuZ2V0Q2xpcCgpOwotICAgICAgICAgICAgbUxvY2FsTGF5ZXIuc2V0Q2xpcChjdXJyZW50Q2xpcCk7Ci0KLSAgICAgICAgICAgIC8vIGlmIHRoZSBkcmF3aW5nIGlzIG5vdCBjbGlwcGVkIHRvIHRoZSBsb2NhbCBsYXllciBvbmx5LCB3ZSBzYXZlIHRoZSBjdXJyZW50IGNvbnRlbnQKLSAgICAgICAgICAgIC8vIG9mIGFsbCBvdGhlciBsYXllcnMuIFdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIHBhcnQgdGhhdCB3aWxsIGFjdHVhbGx5Ci0gICAgICAgICAgICAvLyBiZSBkcmF3biwgc28gd2UgY3JlYXRlIGFzIHNtYWxsIGJpdG1hcHMgYXMgd2UgY2FuLgotICAgICAgICAgICAgLy8gVGhpcyBpcyBzbyB0aGF0IHdlIGNhbiBlcmFzZSB0aGUgZHJhd2luZyB0aGF0IGdvZXMgaW4gdGhlIGxheWVycyBiZWxvdyB0aGF0IHdpbGwKLSAgICAgICAgICAgIC8vIGJlIGNvbWluZyBmcm9tIHRoZSBsYXllciBpdHNlbGYuCi0gICAgICAgICAgICBpZiAoKG1GbGFncyAmIENhbnZhcy5DTElQX1RPX0xBWUVSX1NBVkVfRkxBRykgPT0gMCkgewotICAgICAgICAgICAgICAgIGludCB3ID0gbUxheWVyQm91bmRzLndpZHRoKCk7Ci0gICAgICAgICAgICAgICAgaW50IGggPSBtTGF5ZXJCb3VuZHMuaGVpZ2h0KCk7Ci0gICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgbUxheWVycy5zaXplKCkgLSAxIDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIExheWVyIGxheWVyID0gbUxheWVycy5nZXQoaSk7Ci0gICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkSW1hZ2UgaW1hZ2UgPSBuZXcgQnVmZmVyZWRJbWFnZSh3LCBoLCBCdWZmZXJlZEltYWdlLlRZUEVfSU5UX0FSR0IpOwotICAgICAgICAgICAgICAgICAgICBHcmFwaGljczJEIGdyYXBoaWNzID0gaW1hZ2UuY3JlYXRlR3JhcGhpY3MoKTsKLSAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3MuZHJhd0ltYWdlKGxheWVyLmdldEltYWdlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgdywgaCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtTGF5ZXJCb3VuZHMubGVmdCwgbUxheWVyQm91bmRzLnRvcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1MYXllckJvdW5kcy5yaWdodCwgbUxheWVyQm91bmRzLmJvdHRvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsKTsKLSAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3MuZGlzcG9zZSgpOwotICAgICAgICAgICAgICAgICAgICBsYXllci5zZXRPcmlnaW5hbENvcHkoaW1hZ2UpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1Mb2NhbExheWVyID0gbnVsbDsKLSAgICAgICAgICAgIG1MYXllckJvdW5kcyA9IG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBtTG9jYWxMYXllclBhaW50ICA9IHBhaW50OwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIGRpc3Bvc2UoKSB7Ci0gICAgICAgIGZvciAoTGF5ZXIgbGF5ZXIgOiBtTGF5ZXJzKSB7Ci0gICAgICAgICAgICBsYXllci5nZXRHcmFwaGljcygpLmRpc3Bvc2UoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtUHJldmlvdXMgIT0gbnVsbCkgewotICAgICAgICAgICAgbVByZXZpb3VzLmRpc3Bvc2UoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlc3RvcmVzIHRoZSB0b3Age0BsaW5rIEdjU25hcHNob3R9LCBhbmQgcmV0dXJucyB0aGUgbmV4dCBvbmUuCi0gICAgICovCi0gICAgcHVibGljIEdjU25hcHNob3QgcmVzdG9yZSgpIHsKLSAgICAgICAgcmV0dXJuIGRvUmVzdG9yZSgpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlc3RvcmVzIHRoZSB7QGxpbmsgR2NTbmFwc2hvdH0gdG8gPHZhcj5zYXZlQ291bnQ8L3Zhcj4uCi0gICAgICogQHBhcmFtIHNhdmVDb3VudCB0aGUgc2F2ZUNvdW50IG9yIC0xIHRvIG9ubHkgcmVzdG9yZSAxLgotICAgICAqCi0gICAgICogQHJldHVybiB0aGUgbmV3IGhlYWQgb2YgdGhlIEdjIHNuYXBzaG90IHN0YWNrLgotICAgICAqLwotICAgIHB1YmxpYyBHY1NuYXBzaG90IHJlc3RvcmVUbyhpbnQgc2F2ZUNvdW50KSB7Ci0gICAgICAgIHJldHVybiBkb1Jlc3RvcmVUbyhzaXplKCksIHNhdmVDb3VudCk7Ci0gICAgfQotCi0gICAgcHVibGljIGludCBzaXplKCkgewotICAgICAgICBpZiAobVByZXZpb3VzICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBtUHJldmlvdXMuc2l6ZSgpICsgMTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIExpbmsgdGhlIHNuYXBzaG90IHRvIGEgQml0bWFwX0RlbGVnYXRlLgotICAgICAqIDxwLz4KLSAgICAgKiBUaGlzIGlzIG9ubHkgZm9yIHRoZSBjYXNlIHdoZXJlIHRoZSBzbmFwc2hvdCB3YXMgY3JlYXRlZCB3aXRoIGEgbnVsbCBpbWFnZSB3aGVuIGNhbGxpbmcKLSAgICAgKiB7QGxpbmsgI2NyZWF0ZURlZmF1bHRTbmFwc2hvdChCaXRtYXBfRGVsZWdhdGUpfSwgYW5kIGlzIHRoZXJlZm9yZSBub3QgeWV0IGxpbmtlZCB0bwotICAgICAqIGEgcHJldmlvdXMgc25hcHNob3QuCi0gICAgICogPHAvPgotICAgICAqIElmIGFueSB0cmFuc2Zvcm0gb3IgY2xpcCBpbmZvcm1hdGlvbiB3YXMgc2V0IGJlZm9yZSwgdGhleSBhcmUgcHV0IGludG8gdGhlIEdyYXBoaWNzIG9iamVjdC4KLSAgICAgKiBAcGFyYW0gYml0bWFwIHRoZSBiaXRtYXAgdG8gbGluayB0by4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzZXRCaXRtYXAoQml0bWFwX0RlbGVnYXRlIGJpdG1hcCkgewotICAgICAgICAvLyBjcmVhdGUgYSBuZXcgTGF5ZXIgZm9yIHRoZSBiaXRtYXAuIFRoaXMgd2lsbCBiZSB0aGUgYmFzZSBsYXllci4KLSAgICAgICAgR3JhcGhpY3MyRCBncmFwaGljczJEID0gYml0bWFwLmdldEltYWdlKCkuY3JlYXRlR3JhcGhpY3MoKTsKLSAgICAgICAgTGF5ZXIgYmFzZUxheWVyID0gbmV3IExheWVyKGdyYXBoaWNzMkQsIGJpdG1hcCk7Ci0KLSAgICAgICAgLy8gU2V0IHRoZSBjdXJyZW50IHRyYW5zZm9ybSBhbmQgY2xpcCB3aGljaCBjYW4gZWl0aGVyIGNvbWUgZnJvbSBtVHJhbnNmb3JtL21DbGlwIGlmIHRoZXkKLSAgICAgICAgLy8gd2VyZSBzZXQgd2hlbiB0aGVyZSB3YXMgbm8gYml0bWFwL2xheWVycyBvciBmcm9tIHRoZSBjdXJyZW50IGJhc2UgbGF5ZXJzIGlmIHRoZXJlIGlzCi0gICAgICAgIC8vIG9uZSBhbHJlYWR5LgotCi0gICAgICAgIGdyYXBoaWNzMkQuc2V0VHJhbnNmb3JtKGdldFRyYW5zZm9ybSgpKTsKLSAgICAgICAgLy8gcmVzZXQgbVRyYW5zZm9ybSBpbiBjYXNlIHRoZXJlIHdhcyBvbmUuCi0gICAgICAgIG1UcmFuc2Zvcm0gPSBudWxsOwotCi0gICAgICAgIGJhc2VMYXllci5zZXRDbGlwKGdldENsaXAoKSk7Ci0gICAgICAgIC8vIHJlc2V0IG1DbGlwIGluIGNhc2UgdGhlcmUgd2FzIG9uZS4KLSAgICAgICAgbUNsaXAgPSBudWxsOwotCi0gICAgICAgIC8vIHJlcGxhY2Ugd2hhdGV2ZXIgY3VycmVudCBsYXllcnMgd2UgaGF2ZSB3aXRoIHRoaXMuCi0gICAgICAgIG1MYXllcnMuY2xlYXIoKTsKLSAgICAgICAgbUxheWVycy5hZGQoYmFzZUxheWVyKTsKLQotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHRyYW5zbGF0ZShmbG9hdCBkeCwgZmxvYXQgZHkpIHsKLSAgICAgICAgaWYgKG1MYXllcnMuc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgZm9yIChMYXllciBsYXllciA6IG1MYXllcnMpIHsKLSAgICAgICAgICAgICAgICBsYXllci5nZXRHcmFwaGljcygpLnRyYW5zbGF0ZShkeCwgZHkpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1UcmFuc2Zvcm0gPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIG1UcmFuc2Zvcm0gPSBuZXcgQWZmaW5lVHJhbnNmb3JtKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtVHJhbnNmb3JtLnRyYW5zbGF0ZShkeCwgZHkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgcm90YXRlKGRvdWJsZSByYWRpYW5zKSB7Ci0gICAgICAgIGlmIChtTGF5ZXJzLnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgIGZvciAoTGF5ZXIgbGF5ZXIgOiBtTGF5ZXJzKSB7Ci0gICAgICAgICAgICAgICAgbGF5ZXIuZ2V0R3JhcGhpY3MoKS5yb3RhdGUocmFkaWFucyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobVRyYW5zZm9ybSA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgbVRyYW5zZm9ybSA9IG5ldyBBZmZpbmVUcmFuc2Zvcm0oKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1UcmFuc2Zvcm0ucm90YXRlKHJhZGlhbnMpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgc2NhbGUoZmxvYXQgc3gsIGZsb2F0IHN5KSB7Ci0gICAgICAgIGlmIChtTGF5ZXJzLnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgIGZvciAoTGF5ZXIgbGF5ZXIgOiBtTGF5ZXJzKSB7Ci0gICAgICAgICAgICAgICAgbGF5ZXIuZ2V0R3JhcGhpY3MoKS5zY2FsZShzeCwgc3kpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1UcmFuc2Zvcm0gPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIG1UcmFuc2Zvcm0gPSBuZXcgQWZmaW5lVHJhbnNmb3JtKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtVHJhbnNmb3JtLnNjYWxlKHN4LCBzeSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwdWJsaWMgQWZmaW5lVHJhbnNmb3JtIGdldFRyYW5zZm9ybSgpIHsKLSAgICAgICAgaWYgKG1MYXllcnMuc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgLy8gYWxsIGdyYXBoaWNzMkQgaW4gdGhlIGxpc3QgaGF2ZSB0aGUgc2FtZSB0cmFuc2Zvcm0KLSAgICAgICAgICAgIHJldHVybiBtTGF5ZXJzLmdldCgwKS5nZXRHcmFwaGljcygpLmdldFRyYW5zZm9ybSgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1UcmFuc2Zvcm0gPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIG1UcmFuc2Zvcm0gPSBuZXcgQWZmaW5lVHJhbnNmb3JtKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gbVRyYW5zZm9ybTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHNldFRyYW5zZm9ybShBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtKSB7Ci0gICAgICAgIGlmIChtTGF5ZXJzLnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgIGZvciAoTGF5ZXIgbGF5ZXIgOiBtTGF5ZXJzKSB7Ci0gICAgICAgICAgICAgICAgbGF5ZXIuZ2V0R3JhcGhpY3MoKS5zZXRUcmFuc2Zvcm0odHJhbnNmb3JtKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChtVHJhbnNmb3JtID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICBtVHJhbnNmb3JtID0gbmV3IEFmZmluZVRyYW5zZm9ybSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbVRyYW5zZm9ybS5zZXRUcmFuc2Zvcm0odHJhbnNmb3JtKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHB1YmxpYyBib29sZWFuIGNsaXAoU2hhcGUgc2hhcGUsIGludCByZWdpb25PcCkgewotICAgICAgICAvLyBTaW1wbGUgY2FzZSBvZiBpbnRlcnNlY3Qgd2l0aCBleGlzdGluZyBsYXllcnMuCi0gICAgICAgIC8vIEJlY2F1c2UgR3JhcGhpY3MyRCNzZXRDbGlwIHdvcmtzIGEgYml0IHBlY3VsaWFybHksIHdlIG9wdGltaXplCi0gICAgICAgIC8vIHRoZSBjYXNlIG9mIGNsaXBwaW5nIGJ5IGludGVyc2VjdGlvbiwgYXMgaXQncyBzdXBwb3J0ZWQgbmF0aXZlbHkuCi0gICAgICAgIGlmIChyZWdpb25PcCA9PSBSZWdpb24uT3AuSU5URVJTRUNULm5hdGl2ZUludCAmJiBtTGF5ZXJzLnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgIGZvciAoTGF5ZXIgbGF5ZXIgOiBtTGF5ZXJzKSB7Ci0gICAgICAgICAgICAgICAgbGF5ZXIuY2xpcChzaGFwZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFNoYXBlIGN1cnJlbnRDbGlwID0gZ2V0Q2xpcCgpOwotICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRDbGlwICE9IG51bGwgJiYgY3VycmVudENsaXAuZ2V0Qm91bmRzKCkuaXNFbXB0eSgpID09IGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgQXJlYSBhcmVhID0gbnVsbDsKLQotICAgICAgICBpZiAocmVnaW9uT3AgPT0gUmVnaW9uLk9wLlJFUExBQ0UubmF0aXZlSW50KSB7Ci0gICAgICAgICAgICBhcmVhID0gbmV3IEFyZWEoc2hhcGUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXJlYSA9IFJlZ2lvbl9EZWxlZ2F0ZS5jb21iaW5lU2hhcGVzKGdldENsaXAoKSwgc2hhcGUsIHJlZ2lvbk9wKTsKLSAgICAgICAgfQotCi0gICAgICAgIGFzc2VydCBhcmVhICE9IG51bGw7Ci0KLSAgICAgICAgaWYgKG1MYXllcnMuc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgaWYgKGFyZWEgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGZvciAoTGF5ZXIgbGF5ZXIgOiBtTGF5ZXJzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxheWVyLnNldENsaXAoYXJlYSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBTaGFwZSBjdXJyZW50Q2xpcCA9IGdldENsaXAoKTsKLSAgICAgICAgICAgIHJldHVybiBjdXJyZW50Q2xpcCAhPSBudWxsICYmIGN1cnJlbnRDbGlwLmdldEJvdW5kcygpLmlzRW1wdHkoKSA9PSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChhcmVhICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBtQ2xpcCA9IGFyZWE7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1DbGlwID0gbmV3IEFyZWEoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIG1DbGlwLmdldEJvdW5kcygpLmlzRW1wdHkoKSA9PSBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHB1YmxpYyBib29sZWFuIGNsaXBSZWN0KGZsb2F0IGxlZnQsIGZsb2F0IHRvcCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgaW50IHJlZ2lvbk9wKSB7Ci0gICAgICAgIHJldHVybiBjbGlwKG5ldyBSZWN0YW5nbGUyRC5GbG9hdChsZWZ0LCB0b3AsIHJpZ2h0IC0gbGVmdCwgYm90dG9tIC0gdG9wKSwgcmVnaW9uT3ApOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgY2xpcCwgb3IgbnVsbCBpZiBub25lIGhhdmUgYmVlbiBzZXR1cC4KLSAgICAgKi8KLSAgICBwdWJsaWMgU2hhcGUgZ2V0Q2xpcCgpIHsKLSAgICAgICAgaWYgKG1MYXllcnMuc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgLy8gdGhleSBhbGwgaGF2ZSB0aGUgc2FtZSBjbGlwCi0gICAgICAgICAgICByZXR1cm4gbUxheWVycy5nZXQoMCkuZ2V0R3JhcGhpY3MoKS5nZXRDbGlwKCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4gbUNsaXA7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcml2YXRlIEdjU25hcHNob3QgZG9SZXN0b3JlVG8oaW50IHNpemUsIGludCBzYXZlQ291bnQpIHsKLSAgICAgICAgaWYgKHNpemUgPD0gc2F2ZUNvdW50KSB7Ci0gICAgICAgICAgICByZXR1cm4gdGhpczsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIHJlc3RvcmUgdGhlIGN1cnJlbnQgb25lIGZpcnN0LgotICAgICAgICBHY1NuYXBzaG90IHByZXZpb3VzID0gZG9SZXN0b3JlKCk7Ci0KLSAgICAgICAgaWYgKHNpemUgPT0gc2F2ZUNvdW50ICsgMSkgeyAvLyB0aGlzIHdhcyB0aGUgb25seSBvbmUgdGhhdCBuZWVkZWQgcmVzdG9yZS4KLSAgICAgICAgICAgIHJldHVybiBwcmV2aW91czsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiBwcmV2aW91cy5kb1Jlc3RvcmVUbyhzaXplIC0gMSwgc2F2ZUNvdW50KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIEV4ZWN1dGVzIHRoZSBEcmF3YWJsZSdzIGRyYXcgbWV0aG9kLCB3aXRoIGEgbnVsbCBwYWludCBkZWxlZ2F0ZS4KLSAgICAgKiA8cC8+Ci0gICAgICogTm90ZSB0aGF0IHRoZSBtZXRob2QgY2FuIGJlIGNhbGxlZCBzZXZlcmFsIHRpbWVzIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIGFjdGl2ZSBsYXllci4KLSAgICAgKiBAcGFyYW0gZHJhd2FibGUKLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBkcmF3KERyYXdhYmxlIGRyYXdhYmxlKSB7Ci0gICAgICAgIGRyYXcoZHJhd2FibGUsIG51bGwsIGZhbHNlIC8qY29tcG9zaXRlT25seSovLCBmYWxzZSAvKmZvcmNlU3JjTW9kZSovKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBFeGVjdXRlcyB0aGUgRHJhd2FibGUncyBkcmF3IG1ldGhvZC4KLSAgICAgKiA8cC8+Ci0gICAgICogTm90ZSB0aGF0IHRoZSBtZXRob2QgY2FuIGJlIGNhbGxlZCBzZXZlcmFsIHRpbWVzIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIGFjdGl2ZSBsYXllci4KLSAgICAgKiBAcGFyYW0gZHJhd2FibGUKLSAgICAgKiBAcGFyYW0gcGFpbnQKLSAgICAgKiBAcGFyYW0gY29tcG9zaXRlT25seSB3aGV0aGVyIHRoZSBwYWludCBpcyB1c2VkIGZvciBjb21wb3NpdGUgb25seS4gVGhpcyBpcyB0eXBpY2FsbHkKLSAgICAgKiAgICAgICAgICB0aGUgY2FzZSBmb3IgYml0bWFwcy4KLSAgICAgKiBAcGFyYW0gZm9yY2VTcmNNb2RlIGlmIHRydWUsIHRoaXMgb3ZlcnJpZGVzIHRoZSBjb21wb3NpdGUgdG8gYmUgU1JDCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgZHJhdyhEcmF3YWJsZSBkcmF3YWJsZSwgUGFpbnRfRGVsZWdhdGUgcGFpbnQsIGJvb2xlYW4gY29tcG9zaXRlT25seSwKLSAgICAgICAgICAgIGJvb2xlYW4gZm9yY2VTcmNNb2RlKSB7Ci0gICAgICAgIC8vIHRoZSBjdXJyZW50IHNuYXBzaG90IG1heSBub3QgaGF2ZSBhIG1Mb2NhbExheWVyIChpZSBpdCB3YXMgY3JlYXRlZCBvbiBzYXZlKCkgaW5zdGVhZAotICAgICAgICAvLyBvZiBzYXZlTGF5ZXIoKSwgYnV0IHRoYXQgZG9lc24ndCBtZWFuIHRoZXJlJ3Mgbm8gbGF5ZXIuCi0gICAgICAgIC8vIG1MYXllcnMgaG93ZXZlciBzYXZlcyBhbGwgdGhlIGluZm9ybWF0aW9uIHdlIG5lZWQgKGZsYWdzKS4KLSAgICAgICAgaWYgKG1MYXllcnMuc2l6ZSgpID09IDEpIHsKLSAgICAgICAgICAgIC8vIG5vIGxheWVyLCBvbmx5IGJhc2UgbGF5ZXIuIGVhc3kgY2FzZS4KLSAgICAgICAgICAgIGRyYXdJbkxheWVyKG1MYXllcnMuZ2V0KDApLCBkcmF3YWJsZSwgcGFpbnQsIGNvbXBvc2l0ZU9ubHksIGZvcmNlU3JjTW9kZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBkcmF3IGluIGFsbCB0aGUgbGF5ZXJzIHVudGlsIHRoZSBsYXllciBzYXZlIGZsYWdzIHRlbGxzIHVzIHRvIHN0b3AgKGllIGRyYXdpbmcKLSAgICAgICAgICAgIC8vIGluIHRoYXQgbGF5ZXIgaXMgbGltaXRlZCB0byB0aGUgbGF5ZXIgaXRzZWxmLgotICAgICAgICAgICAgaW50IGZsYWdzOwotICAgICAgICAgICAgaW50IGkgPSBtTGF5ZXJzLnNpemUoKSAtIDE7Ci0KLSAgICAgICAgICAgIGRvIHsKLSAgICAgICAgICAgICAgICBMYXllciBsYXllciA9IG1MYXllcnMuZ2V0KGkpOwotCi0gICAgICAgICAgICAgICAgZHJhd0luTGF5ZXIobGF5ZXIsIGRyYXdhYmxlLCBwYWludCwgY29tcG9zaXRlT25seSwgZm9yY2VTcmNNb2RlKTsKLQotICAgICAgICAgICAgICAgIC8vIHRoZW4gZ28gdG8gcHJldmlvdXMgbGF5ZXIsIG9ubHkgaWYgdGhlcmUgYXJlIGFueSBsZWZ0LCBhbmQgaXRzIGZsYWdzCi0gICAgICAgICAgICAgICAgLy8gZG9lc24ndCByZXN0cmljdCBkcmF3aW5nIHRvIHRoZSBsYXllciBpdHNlbGYuCi0gICAgICAgICAgICAgICAgaS0tOwotICAgICAgICAgICAgICAgIGZsYWdzID0gbGF5ZXIuZ2V0RmxhZ3MoKTsKLSAgICAgICAgICAgIH0gd2hpbGUgKGkgPj0gMCAmJiAoZmxhZ3MgJiBDYW52YXMuQ0xJUF9UT19MQVlFUl9TQVZFX0ZMQUcpID09IDApOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHJpdmF0ZSB2b2lkIGRyYXdJbkxheWVyKExheWVyIGxheWVyLCBEcmF3YWJsZSBkcmF3YWJsZSwgUGFpbnRfRGVsZWdhdGUgcGFpbnQsCi0gICAgICAgICAgICBib29sZWFuIGNvbXBvc2l0ZU9ubHksIGJvb2xlYW4gZm9yY2VTcmNNb2RlKSB7Ci0gICAgICAgIEdyYXBoaWNzMkQgb3JpZ2luYWxHcmFwaGljcyA9IGxheWVyLmdldEdyYXBoaWNzKCk7Ci0gICAgICAgIC8vIGdldCBhIEdyYXBoaWNzMkQgb2JqZWN0IGNvbmZpZ3VyZWQgd2l0aCB0aGUgZHJhd2luZyBwYXJhbWV0ZXJzLgotICAgICAgICBHcmFwaGljczJEIGNvbmZpZ3VyZWRHcmFwaGljczJEID0KLSAgICAgICAgICAgIHBhaW50ICE9IG51bGwgPwotICAgICAgICAgICAgICAgICAgICBjcmVhdGVDdXN0b21HcmFwaGljcyhvcmlnaW5hbEdyYXBoaWNzLCBwYWludCwgY29tcG9zaXRlT25seSwgZm9yY2VTcmNNb2RlKSA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAoR3JhcGhpY3MyRCkgb3JpZ2luYWxHcmFwaGljcy5jcmVhdGUoKTsKLQotICAgICAgICB0cnkgewotICAgICAgICAgICAgZHJhd2FibGUuZHJhdyhjb25maWd1cmVkR3JhcGhpY3MyRCwgcGFpbnQpOwotICAgICAgICAgICAgbGF5ZXIuY2hhbmdlKCk7Ci0gICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgICAvLyBkaXNwb3NlIEdyYXBoaWNzMkQgb2JqZWN0Ci0gICAgICAgICAgICBjb25maWd1cmVkR3JhcGhpY3MyRC5kaXNwb3NlKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcml2YXRlIEdjU25hcHNob3QgZG9SZXN0b3JlKCkgewotICAgICAgICBpZiAobVByZXZpb3VzICE9IG51bGwpIHsKLSAgICAgICAgICAgIGlmIChtTG9jYWxMYXllciAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgLy8gcHJlcGFyZSB0byBibGl0IHRoZSBsYXllcnMgaW4gd2hpY2ggd2UgaGF2ZSBkcmF3LCBpbiB0aGUgbGF5ZXIgYmVuZWF0aAotICAgICAgICAgICAgICAgIC8vIHRoZW0sIHN0YXJ0aW5nIHdpdGggdGhlIHRvcCBvbmUgKHdoaWNoIGlzIHRoZSBjdXJyZW50IGxvY2FsIGxheWVyKS4KLSAgICAgICAgICAgICAgICBpbnQgaSA9IG1MYXllcnMuc2l6ZSgpIC0gMTsKLSAgICAgICAgICAgICAgICBpbnQgZmxhZ3M7Ci0gICAgICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgICAgICBMYXllciBkc3RMYXllciA9IG1MYXllcnMuZ2V0KGkgLSAxKTsKLQotICAgICAgICAgICAgICAgICAgICByZXN0b3JlTGF5ZXIoZHN0TGF5ZXIpOwotCi0gICAgICAgICAgICAgICAgICAgIGZsYWdzID0gZHN0TGF5ZXIuZ2V0RmxhZ3MoKTsKLSAgICAgICAgICAgICAgICAgICAgaS0tOwotICAgICAgICAgICAgICAgIH0gd2hpbGUgKGkgPiAwICYmIChmbGFncyAmIENhbnZhcy5DTElQX1RPX0xBWUVSX1NBVkVfRkxBRykgPT0gMCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIGlmIHRoaXMgc25hcHNob3QgZG9lcyBub3Qgc2F2ZSBldmVyeXRoaW5nLCB0aGVuIHNldCB0aGUgcHJldmlvdXMgc25hcHNob3QKLSAgICAgICAgICAgIC8vIHRvIHRoaXMgc25hcHNob3QgY29udGVudAotCi0gICAgICAgICAgICAvLyBkaWRuJ3Qgc2F2ZSB0aGUgbWF0cml4PyBzZXQgdGhlIGN1cnJlbnQgbWF0cml4IG9uIHRoZSBwcmV2aW91cyBzbmFwc2hvdAotICAgICAgICAgICAgaWYgKChtRmxhZ3MgJiBDYW52YXMuTUFUUklYX1NBVkVfRkxBRykgPT0gMCkgewotICAgICAgICAgICAgICAgIEFmZmluZVRyYW5zZm9ybSBtdHggPSBnZXRUcmFuc2Zvcm0oKTsKLSAgICAgICAgICAgICAgICBmb3IgKExheWVyIGxheWVyIDogbVByZXZpb3VzLm1MYXllcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgbGF5ZXIuZ2V0R3JhcGhpY3MoKS5zZXRUcmFuc2Zvcm0obXR4KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIGRpZG4ndCBzYXZlIHRoZSBjbGlwPyBzZXQgdGhlIGN1cnJlbnQgY2xpcCBvbiB0aGUgcHJldmlvdXMgc25hcHNob3QKLSAgICAgICAgICAgIGlmICgobUZsYWdzICYgQ2FudmFzLkNMSVBfU0FWRV9GTEFHKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgU2hhcGUgY2xpcCA9IGdldENsaXAoKTsKLSAgICAgICAgICAgICAgICBmb3IgKExheWVyIGxheWVyIDogbVByZXZpb3VzLm1MYXllcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgbGF5ZXIuc2V0Q2xpcChjbGlwKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKExheWVyIGxheWVyIDogbUxheWVycykgewotICAgICAgICAgICAgbGF5ZXIuZ2V0R3JhcGhpY3MoKS5kaXNwb3NlKCk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbVByZXZpb3VzOwotICAgIH0KLQotICAgIHByaXZhdGUgdm9pZCByZXN0b3JlTGF5ZXIoTGF5ZXIgZHN0TGF5ZXIpIHsKLQotICAgICAgICBHcmFwaGljczJEIGJhc2VHZnggPSBkc3RMYXllci5nZXRJbWFnZSgpLmNyZWF0ZUdyYXBoaWNzKCk7Ci0KLSAgICAgICAgLy8gaWYgdGhlIGxheWVyIGNvbnRhaW5zIGFuIG9yaWdpbmFsIGNvcHkgdGhpcyBtZWFucyB0aGUgZmxhZ3MKLSAgICAgICAgLy8gZGlkbid0IHJlc3RyaWN0IGRyYXdpbmcgdG8gdGhlIGxvY2FsIGxheWVyIGFuZCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUKLSAgICAgICAgLy8gbGF5ZXIgYm91bmRzIGluIHRoZSBsYXllciBiZW5lYXRoIGRpZG4ndCByZWNlaXZlIGFueSBkcmF3aW5nLgotICAgICAgICAvLyBzbyB3ZSB1c2UgdGhlIG9yaWdpbmFsQ29weSB0byBlcmFzZSB0aGUgbmV3IGRyYXdpbmdzIGluIHRoZXJlLgotICAgICAgICBCdWZmZXJlZEltYWdlIG9yaWdpbmFsQ29weSA9IGRzdExheWVyLmdldE9yaWdpbmFsQ29weSgpOwotICAgICAgICBpZiAob3JpZ2luYWxDb3B5ICE9IG51bGwpIHsKLSAgICAgICAgICAgIEdyYXBoaWNzMkQgZyA9IChHcmFwaGljczJEKSBiYXNlR2Z4LmNyZWF0ZSgpOwotICAgICAgICAgICAgZy5zZXRDb21wb3NpdGUoQWxwaGFDb21wb3NpdGUuU3JjKTsKLQotICAgICAgICAgICAgZy5kcmF3SW1hZ2Uob3JpZ2luYWxDb3B5LAotICAgICAgICAgICAgICAgICAgICBtTGF5ZXJCb3VuZHMubGVmdCwgbUxheWVyQm91bmRzLnRvcCwgbUxheWVyQm91bmRzLnJpZ2h0LCBtTGF5ZXJCb3VuZHMuYm90dG9tLAotICAgICAgICAgICAgICAgICAgICAwLCAwLCBtTGF5ZXJCb3VuZHMud2lkdGgoKSwgbUxheWVyQm91bmRzLmhlaWdodCgpLAotICAgICAgICAgICAgICAgICAgICBudWxsKTsKLSAgICAgICAgICAgIGcuZGlzcG9zZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gbm93IGRyYXcgcHV0IHRoZSBjb250ZW50IG9mIHRoZSBsb2NhbCBsYXllciBvbnRvIHRoZSBsYXllciwKLSAgICAgICAgLy8gdXNpbmcgdGhlIHBhaW50IGluZm9ybWF0aW9uCi0gICAgICAgIEdyYXBoaWNzMkQgZyA9IGNyZWF0ZUN1c3RvbUdyYXBoaWNzKGJhc2VHZngsIG1Mb2NhbExheWVyUGFpbnQsCi0gICAgICAgICAgICAgICAgdHJ1ZSAvKmFscGhhT25seSovLCBmYWxzZSAvKmZvcmNlU3JjTW9kZSovKTsKLQotICAgICAgICBnLmRyYXdJbWFnZShtTG9jYWxMYXllci5nZXRJbWFnZSgpLAotICAgICAgICAgICAgICAgIG1MYXllckJvdW5kcy5sZWZ0LCBtTGF5ZXJCb3VuZHMudG9wLCBtTGF5ZXJCb3VuZHMucmlnaHQsIG1MYXllckJvdW5kcy5ib3R0b20sCi0gICAgICAgICAgICAgICAgbUxheWVyQm91bmRzLmxlZnQsIG1MYXllckJvdW5kcy50b3AsIG1MYXllckJvdW5kcy5yaWdodCwgbUxheWVyQm91bmRzLmJvdHRvbSwKLSAgICAgICAgICAgICAgICBudWxsKTsKLSAgICAgICAgZy5kaXNwb3NlKCk7Ci0KLSAgICAgICAgYmFzZUdmeC5kaXNwb3NlKCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhIG5ldyB7QGxpbmsgR3JhcGhpY3MyRH0gYmFzZWQgb24gdGhlIHtAbGluayBQYWludH0gcGFyYW1ldGVycy4KLSAgICAgKiA8cC8+VGhlIG9iamVjdCBtdXN0IGJlIGRpc3Bvc2VkICh7QGxpbmsgR3JhcGhpY3MyRCNkaXNwb3NlKCl9KSBhZnRlciBiZWluZyB1c2VkLgotICAgICAqLwotICAgIHByaXZhdGUgR3JhcGhpY3MyRCBjcmVhdGVDdXN0b21HcmFwaGljcyhHcmFwaGljczJEIG9yaWdpbmFsLCBQYWludF9EZWxlZ2F0ZSBwYWludCwKLSAgICAgICAgICAgIGJvb2xlYW4gY29tcG9zaXRlT25seSwgYm9vbGVhbiBmb3JjZVNyY01vZGUpIHsKLSAgICAgICAgLy8gbWFrZSBuZXcgb25lIGdyYXBoaWNzCi0gICAgICAgIEdyYXBoaWNzMkQgZyA9IChHcmFwaGljczJEKSBvcmlnaW5hbC5jcmVhdGUoKTsKLQotICAgICAgICAvLyBjb25maWd1cmUgaXQKLQotICAgICAgICBpZiAocGFpbnQuaXNBbnRpQWxpYXNlZCgpKSB7Ci0gICAgICAgICAgICBnLnNldFJlbmRlcmluZ0hpbnQoCi0gICAgICAgICAgICAgICAgICAgIFJlbmRlcmluZ0hpbnRzLktFWV9BTlRJQUxJQVNJTkcsIFJlbmRlcmluZ0hpbnRzLlZBTFVFX0FOVElBTElBU19PTik7Ci0gICAgICAgICAgICBnLnNldFJlbmRlcmluZ0hpbnQoCi0gICAgICAgICAgICAgICAgICAgIFJlbmRlcmluZ0hpbnRzLktFWV9URVhUX0FOVElBTElBU0lORywgUmVuZGVyaW5nSGludHMuVkFMVUVfVEVYVF9BTlRJQUxJQVNfT04pOwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbGVhbiBjdXN0b21TaGFkZXIgPSBmYWxzZTsKLQotICAgICAgICAvLyBnZXQgdGhlIHNoYWRlciBmaXJzdCwgYXMgaXQnbGwgcmVwbGFjZSB0aGUgY29sb3IgaWYgaXQgY2FuIGJlIHVzZWQgaXQuCi0gICAgICAgIGlmIChjb21wb3NpdGVPbmx5ID09IGZhbHNlKSB7Ci0gICAgICAgICAgICBTaGFkZXJfRGVsZWdhdGUgc2hhZGVyRGVsZWdhdGUgPSBwYWludC5nZXRTaGFkZXIoKTsKLSAgICAgICAgICAgIGlmIChzaGFkZXJEZWxlZ2F0ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNoYWRlckRlbGVnYXRlLmlzU3VwcG9ydGVkKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgamF2YS5hd3QuUGFpbnQgc2hhZGVyUGFpbnQgPSBzaGFkZXJEZWxlZ2F0ZS5nZXRKYXZhUGFpbnQoKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNoYWRlclBhaW50ICE9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzaGFkZXJQYWludCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnLnNldFBhaW50KHNoYWRlclBhaW50KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbVNoYWRlciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZmlkZWxpdHlXYXJuaW5nKExheW91dExvZy5UQUdfU0hBREVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRlckRlbGVnYXRlLmdldFN1cHBvcnRNZXNzYWdlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAvKnRocm93YWJsZSovLCBudWxsIC8qZGF0YSovKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIGlmIG5vIHNoYWRlciwgdXNlIHRoZSBwYWludCBjb2xvcgotICAgICAgICAgICAgaWYgKGN1c3RvbVNoYWRlciA9PSBmYWxzZSkgewotICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IobmV3IENvbG9yKHBhaW50LmdldENvbG9yKCksIHRydWUgLypoYXNBbHBoYSovKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIHNldCB0aGUgc3Ryb2tlCi0gICAgICAgICAgICBnLnNldFN0cm9rZShwYWludC5nZXRKYXZhU3Ryb2tlKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gdGhlIGFscGhhIGZvciB0aGUgY29tcG9zaXRlLiBBbHdheXMgb3BhcXVlIGlmIHRoZSBub3JtYWwgcGFpbnQgY29sb3IgaXMgdXNlZCBzaW5jZQotICAgICAgICAvLyBpdCBjb250YWlucyB0aGUgYWxwaGEKLSAgICAgICAgaW50IGFscGhhID0gKGNvbXBvc2l0ZU9ubHkgfHwgY3VzdG9tU2hhZGVyKSA/IHBhaW50LmdldEFscGhhKCkgOiAweEZGOwotCi0gICAgICAgIGlmIChmb3JjZVNyY01vZGUpIHsKLSAgICAgICAgICAgIGcuc2V0Q29tcG9zaXRlKEFscGhhQ29tcG9zaXRlLmdldEluc3RhbmNlKAotICAgICAgICAgICAgICAgICAgICBBbHBoYUNvbXBvc2l0ZS5TUkMsIChmbG9hdCkgYWxwaGEgLyAyNTUuZikpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYm9vbGVhbiBjdXN0b21YZmVybW9kZSA9IGZhbHNlOwotICAgICAgICAgICAgWGZlcm1vZGVfRGVsZWdhdGUgeGZlcm1vZGVEZWxlZ2F0ZSA9IHBhaW50LmdldFhmZXJtb2RlKCk7Ci0gICAgICAgICAgICBpZiAoeGZlcm1vZGVEZWxlZ2F0ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHhmZXJtb2RlRGVsZWdhdGUuaXNTdXBwb3J0ZWQoKSkgewotICAgICAgICAgICAgICAgICAgICBDb21wb3NpdGUgY29tcG9zaXRlID0geGZlcm1vZGVEZWxlZ2F0ZS5nZXRDb21wb3NpdGUoYWxwaGEpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQgY29tcG9zaXRlICE9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjb21wb3NpdGUgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAgICAgZy5zZXRDb21wb3NpdGUoY29tcG9zaXRlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbVhmZXJtb2RlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5maWRlbGl0eVdhcm5pbmcoTGF5b3V0TG9nLlRBR19YRkVSTU9ERSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZmVybW9kZURlbGVnYXRlLmdldFN1cHBvcnRNZXNzYWdlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAvKnRocm93YWJsZSovLCBudWxsIC8qZGF0YSovKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIGlmIHRoZXJlIHdhcyBubyBjdXN0b20geGZlcm1vZGUsIGJ1dCB3ZSBoYXZlIGFscGhhIChkdWUgdG8gYSBzaGFkZXIgYW5kIGEgbm9uCi0gICAgICAgICAgICAvLyBvcGFxdWUgYWxwaGEgY2hhbm5lbCBpbiB0aGUgcGFpbnQgY29sb3IpLCB0aGVuIHdlIGNyZWF0ZSBhbiBBbHBoYUNvbXBvc2l0ZSBhbnl3YXkKLSAgICAgICAgICAgIC8vIHRoYXQgd2lsbCBoYW5kbGUgdGhlIGFscGhhLgotICAgICAgICAgICAgaWYgKGN1c3RvbVhmZXJtb2RlID09IGZhbHNlICYmIGFscGhhICE9IDB4RkYpIHsKLSAgICAgICAgICAgICAgICBnLnNldENvbXBvc2l0ZShBbHBoYUNvbXBvc2l0ZS5nZXRJbnN0YW5jZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIEFscGhhQ29tcG9zaXRlLlNSQ19PVkVSLCAoZmxvYXQpIGFscGhhIC8gMjU1LmYpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBnOwotICAgIH0KLQotICAgIHByaXZhdGUgdm9pZCBtYXBSZWN0KEFmZmluZVRyYW5zZm9ybSBtYXRyaXgsIFJlY3RGIGRzdCwgUmVjdEYgc3JjKSB7Ci0gICAgICAgIC8vIGFycmF5IHdpdGggNCBjb3JuZXJzCi0gICAgICAgIGZsb2F0W10gY29ybmVycyA9IG5ldyBmbG9hdFtdIHsKLSAgICAgICAgICAgICAgICBzcmMubGVmdCwgc3JjLnRvcCwKLSAgICAgICAgICAgICAgICBzcmMucmlnaHQsIHNyYy50b3AsCi0gICAgICAgICAgICAgICAgc3JjLnJpZ2h0LCBzcmMuYm90dG9tLAotICAgICAgICAgICAgICAgIHNyYy5sZWZ0LCBzcmMuYm90dG9tLAotICAgICAgICB9OwotCi0gICAgICAgIC8vIGFwcGx5IHRoZSB0cmFuc2Zvcm0gdG8gdGhlbS4KLSAgICAgICAgbWF0cml4LnRyYW5zZm9ybShjb3JuZXJzLCAwLCBjb3JuZXJzLCAwLCA0KTsKLQotICAgICAgICAvLyBub3cgcHV0IHRoZSByZXN1bHQgaW4gdGhlIHJlY3QuIFdlIHRha2UgdGhlIG1pbi9tYXggb2YgWHMgYW5kIG1pbi9tYXggb2YgWXMKLSAgICAgICAgZHN0LmxlZnQgPSBNYXRoLm1pbihNYXRoLm1pbihjb3JuZXJzWzBdLCBjb3JuZXJzWzJdKSwgTWF0aC5taW4oY29ybmVyc1s0XSwgY29ybmVyc1s2XSkpOwotICAgICAgICBkc3QucmlnaHQgPSBNYXRoLm1heChNYXRoLm1heChjb3JuZXJzWzBdLCBjb3JuZXJzWzJdKSwgTWF0aC5tYXgoY29ybmVyc1s0XSwgY29ybmVyc1s2XSkpOwotCi0gICAgICAgIGRzdC50b3AgPSBNYXRoLm1pbihNYXRoLm1pbihjb3JuZXJzWzFdLCBjb3JuZXJzWzNdKSwgTWF0aC5taW4oY29ybmVyc1s1XSwgY29ybmVyc1s3XSkpOwotICAgICAgICBkc3QuYm90dG9tID0gTWF0aC5tYXgoTWF0aC5tYXgoY29ybmVyc1sxXSwgY29ybmVyc1szXSksIE1hdGgubWF4KGNvcm5lcnNbNV0sIGNvcm5lcnNbN10pKTsKLSAgICB9Ci0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9QYXJzZXJGYWN0b3J5LmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2ltcGwvUGFyc2VyRmFjdG9yeS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDM4NDlmLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9QYXJzZXJGYWN0b3J5LmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsOwotCi0KLWltcG9ydCBvcmcua3htbDIuaW8uS1htbFBhcnNlcjsKLWltcG9ydCBvcmcueG1scHVsbC52MS5YbWxQdWxsUGFyc2VyOwotaW1wb3J0IG9yZy54bWxwdWxsLnYxLlhtbFB1bGxQYXJzZXJFeGNlcHRpb247Ci0KLWltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkSW5wdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLmlvLkZpbGU7Ci1pbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOwotCi0vKioKLSAqIEEgZmFjdG9yeSBmb3Ige0BsaW5rIFhtbFB1bGxQYXJzZXJ9LgotICoKLSAqLwotcHVibGljIGNsYXNzIFBhcnNlckZhY3RvcnkgewotCi0gICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgU3RyaW5nIEVOQ09ESU5HID0gIlVURi04IjsgLy8kTk9OLU5MUy0xJAotCi0gICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIExPR19QQVJTRVIgPSBmYWxzZTsKLQotICAgIHB1YmxpYyBzdGF0aWMgWG1sUHVsbFBhcnNlciBjcmVhdGUoRmlsZSBmKQotICAgICAgICAgICAgdGhyb3dzIFhtbFB1bGxQYXJzZXJFeGNlcHRpb24sIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIElucHV0U3RyZWFtIHN0cmVhbSA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZik7Ci0gICAgICAgIHJldHVybiBjcmVhdGUoc3RyZWFtLCBmLmdldE5hbWUoKSwgZi5sZW5ndGgoKSk7Ci0gICAgfQotCi0gICAgcHVibGljIHN0YXRpYyBYbWxQdWxsUGFyc2VyIGNyZWF0ZShJbnB1dFN0cmVhbSBzdHJlYW0sIFN0cmluZyBuYW1lKQotICAgICAgICB0aHJvd3MgWG1sUHVsbFBhcnNlckV4Y2VwdGlvbiB7Ci0gICAgICAgIHJldHVybiBjcmVhdGUoc3RyZWFtLCBuYW1lLCAtMSk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBzdGF0aWMgWG1sUHVsbFBhcnNlciBjcmVhdGUoSW5wdXRTdHJlYW0gc3RyZWFtLCBTdHJpbmcgbmFtZSwgbG9uZyBzaXplKQotICAgICAgICAgICAgdGhyb3dzIFhtbFB1bGxQYXJzZXJFeGNlcHRpb24gewotICAgICAgICBLWG1sUGFyc2VyIHBhcnNlciA9IGluc3RhbnRpYXRlUGFyc2VyKG5hbWUpOwotCi0gICAgICAgIHN0cmVhbSA9IHJlYWRBbmRDbG9zZShzdHJlYW0sIG5hbWUsIHNpemUpOwotCi0gICAgICAgIHBhcnNlci5zZXRJbnB1dChzdHJlYW0sIEVOQ09ESU5HKTsKLSAgICAgICAgcmV0dXJuIHBhcnNlcjsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBLWG1sUGFyc2VyIGluc3RhbnRpYXRlUGFyc2VyKFN0cmluZyBuYW1lKSB0aHJvd3MgWG1sUHVsbFBhcnNlckV4Y2VwdGlvbiB7Ci0gICAgICAgIEtYbWxQYXJzZXIgcGFyc2VyOwotICAgICAgICBpZiAobmFtZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBwYXJzZXIgPSBuZXcgQ3VzdG9tUGFyc2VyKG5hbWUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcGFyc2VyID0gbmV3IEtYbWxQYXJzZXIoKTsKLSAgICAgICAgfQotICAgICAgICBwYXJzZXIuc2V0RmVhdHVyZShYbWxQdWxsUGFyc2VyLkZFQVRVUkVfUFJPQ0VTU19OQU1FU1BBQ0VTLCB0cnVlKTsKLSAgICAgICAgcmV0dXJuIHBhcnNlcjsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBJbnB1dFN0cmVhbSByZWFkQW5kQ2xvc2UoSW5wdXRTdHJlYW0gc3RyZWFtLCBTdHJpbmcgbmFtZSwgbG9uZyBzaXplKQotICAgICAgICAgICAgdGhyb3dzIFhtbFB1bGxQYXJzZXJFeGNlcHRpb24gewotICAgICAgICAvLyBqdXN0IGEgc2FuaXR5IGNoZWNrLiBJdCdzIGRvdWJ0ZnVsIHdlJ2xsIGhhdmUgc3VjaCBiaWcgZmlsZXMhCi0gICAgICAgIGlmIChzaXplID4gSW50ZWdlci5NQVhfVkFMVUUpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBYbWxQdWxsUGFyc2VyRXhjZXB0aW9uKCJGaWxlICIgKyBuYW1lICsgIiBpcyB0b28gYmlnIHRvIGJlIHBhcnNlZCIpOwotICAgICAgICB9Ci0gICAgICAgIGludCBpbnRTaXplID0gKGludCkgc2l6ZTsKLQotICAgICAgICAvLyBjcmVhdGUgYSBidWZmZXJlZCByZWFkZXIgdG8gZmFjaWxpdGF0ZSByZWFkaW5nLgotICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGJ1ZmZlcmVkU3RyZWFtID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oc3RyZWFtKTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGludCBhdmFpbDsKLSAgICAgICAgICAgIGlmIChpbnRTaXplICE9IC0xKSB7Ci0gICAgICAgICAgICAgICAgYXZhaWwgPSBpbnRTaXplOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIHNpemUgdG8gcmVhZC4KLSAgICAgICAgICAgICAgICBhdmFpbCA9IGJ1ZmZlcmVkU3RyZWFtLmF2YWlsYWJsZSgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBjcmVhdGUgdGhlIGluaXRpYWwgYnVmZmVyIGFuZCByZWFkIGl0LgotICAgICAgICAgICAgYnl0ZVtdIGJ1ZmZlciA9IG5ldyBieXRlW2F2YWlsXTsKLSAgICAgICAgICAgIGludCByZWFkID0gc3RyZWFtLnJlYWQoYnVmZmVyKTsKLQotICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgZWFzeSBjYXNlLgotICAgICAgICAgICAgaWYgKHJlYWQgPT0gaW50U2l6ZSkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnVmZmVyKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlcmUgaXMgbW9yZSB0byByZWFkIChyZWFkKCkgZG9lcyBub3QgbmVjZXNzYXJpbHkgcmVhZCBhbGwgdGhhdAotICAgICAgICAgICAgLy8gYXZhaWxhYmxlKCkgcmV0dXJuZWQhKQotICAgICAgICAgICAgd2hpbGUgKChhdmFpbCA9IGJ1ZmZlcmVkU3RyZWFtLmF2YWlsYWJsZSgpKSA+IDApIHsKLSAgICAgICAgICAgICAgICBpZiAocmVhZCArIGF2YWlsID4gYnVmZmVyLmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICAvLyBqdXN0IGFsbG9jYXRlIHdoYXQgaXMgbmVlZGVkLiBXZSdyZSBtb3N0bHkgcmVhZGluZyBzbWFsbCBmaWxlcwotICAgICAgICAgICAgICAgICAgICAvLyBzbyBpdCBzaG91bGRuJ3QgYmUgdG9vIHByb2JsZW1hdGljLgotICAgICAgICAgICAgICAgICAgICBieXRlW10gbW9yZUJ1ZmZlciA9IG5ldyBieXRlW3JlYWQgKyBhdmFpbF07Ci0gICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLCAwLCBtb3JlQnVmZmVyLCAwLCByZWFkKTsKLSAgICAgICAgICAgICAgICAgICAgYnVmZmVyID0gbW9yZUJ1ZmZlcjsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICByZWFkICs9IHN0cmVhbS5yZWFkKGJ1ZmZlciwgcmVhZCwgYXZhaWwpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyByZXR1cm4gYSBuZXcgc3RyZWFtIGVuY2Fwc3VsYXRpbmcgdGhpcyBidWZmZXIuCi0gICAgICAgICAgICByZXR1cm4gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ1ZmZlcik7Ci0KLSAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IFhtbFB1bGxQYXJzZXJFeGNlcHRpb24oIkZhaWxlZCB0byByZWFkICIgKyBuYW1lLCBudWxsLCBlKTsKLSAgICAgICAgfSBmaW5hbGx5IHsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgYnVmZmVyZWRTdHJlYW0uY2xvc2UoKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEN1c3RvbVBhcnNlciBleHRlbmRzIEtYbWxQYXJzZXIgewotICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtTmFtZTsKLQotICAgICAgICBDdXN0b21QYXJzZXIoU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgICAgIHN1cGVyKCk7Ci0gICAgICAgICAgICBtTmFtZSA9IG5hbWU7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKLSAgICAgICAgICAgIHJldHVybiBtTmFtZTsKLSAgICAgICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9QbGF5QW5pbWF0aW9uVGhyZWFkLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2ltcGwvUGxheUFuaW1hdGlvblRocmVhZC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjcwMTgwLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9QbGF5QW5pbWF0aW9uVGhyZWFkLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGw7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuSUFuaW1hdGlvbkxpc3RlbmVyOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXN1bHQ7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlc3VsdC5TdGF0dXM7Ci0KLWltcG9ydCBhbmRyb2lkLmFuaW1hdGlvbi5BbmltYXRpb25UaHJlYWQ7Ci1pbXBvcnQgYW5kcm9pZC5hbmltYXRpb24uQW5pbWF0b3I7Ci0KLXB1YmxpYyBjbGFzcyBQbGF5QW5pbWF0aW9uVGhyZWFkIGV4dGVuZHMgQW5pbWF0aW9uVGhyZWFkIHsKLQotICAgIHByaXZhdGUgZmluYWwgQW5pbWF0b3IgbUFuaW1hdG9yOwotCi0gICAgcHVibGljIFBsYXlBbmltYXRpb25UaHJlYWQoQW5pbWF0b3IgYW5pbWF0b3IsIFJlbmRlclNlc3Npb25JbXBsIHNjZW5lLCBTdHJpbmcgYW5pbU5hbWUsCi0gICAgICAgICAgICBJQW5pbWF0aW9uTGlzdGVuZXIgbGlzdGVuZXIpIHsKLSAgICAgICAgc3VwZXIoc2NlbmUsIGFuaW1OYW1lLCBsaXN0ZW5lcik7Ci0gICAgICAgIG1BbmltYXRvciA9IGFuaW1hdG9yOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBSZXN1bHQgcHJlQW5pbWF0aW9uKCkgewotICAgICAgICAvLyBzdGFydCB0aGUgYW5pbWF0aW9uLiBUaGlzIHdpbGwgc2VuZCBhIG1lc3NhZ2UgdG8gdGhlIGhhbmRsZXIgcmlnaHQgYXdheSwgc28KLSAgICAgICAgLy8gdGhlIHF1ZXVlIGlzIGZpbGxlZCB3aGVuIHRoaXMgbWV0aG9kIHJldHVybnMuCi0gICAgICAgIG1BbmltYXRvci5zdGFydCgpOwotCi0gICAgICAgIHJldHVybiBTdGF0dXMuU1VDQ0VTUy5jcmVhdGVSZXN1bHQoKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCBwb3N0QW5pbWF0aW9uKCkgewotICAgICAgICAvLyBub3RoaW5nIHRvIGJlIGRvbmUuCi0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL1JlbmRlckFjdGlvbi5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL1JlbmRlckFjdGlvbi5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyM2QwOGUzLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9SZW5kZXJBY3Rpb24uamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDM5MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGw7Ci0KLWltcG9ydCBzdGF0aWMgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlc3VsdC5TdGF0dXMuRVJST1JfTE9DS19JTlRFUlJVUFRFRDsKLWltcG9ydCBzdGF0aWMgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlc3VsdC5TdGF0dXMuRVJST1JfVElNRU9VVDsKLWltcG9ydCBzdGF0aWMgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlc3VsdC5TdGF0dXMuU1VDQ0VTUzsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5IYXJkd2FyZUNvbmZpZzsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuTGF5b3V0TG9nOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZW5kZXJQYXJhbXM7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlbmRlclJlc291cmNlczsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVuZGVyUmVzb3VyY2VzLkZyYW1ld29ya1Jlc291cmNlSWRQcm92aWRlcjsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVzdWx0OwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC5CcmlkZ2VDb250ZXh0OwotaW1wb3J0IGNvbS5hbmRyb2lkLnJlc291cmNlcy5EZW5zaXR5OwotaW1wb3J0IGNvbS5hbmRyb2lkLnJlc291cmNlcy5SZXNvdXJjZVR5cGU7Ci1pbXBvcnQgY29tLmFuZHJvaWQucmVzb3VyY2VzLlNjcmVlbk9yaWVudGF0aW9uOwotaW1wb3J0IGNvbS5hbmRyb2lkLnJlc291cmNlcy5TY3JlZW5TaXplOwotCi1pbXBvcnQgYW5kcm9pZC5jb250ZW50LnJlcy5Db25maWd1cmF0aW9uOwotaW1wb3J0IGFuZHJvaWQub3MuSGFuZGxlclRocmVhZF9EZWxlZ2F0ZTsKLWltcG9ydCBhbmRyb2lkLm9zLkxvb3BlcjsKLWltcG9ydCBhbmRyb2lkLnV0aWwuRGlzcGxheU1ldHJpY3M7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdDb25maWd1cmF0aW9uX0FjY2Vzc29yOwotaW1wb3J0IGFuZHJvaWQudmlldy5pbnB1dG1ldGhvZC5JbnB1dE1ldGhvZE1hbmFnZXI7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LmlucHV0bWV0aG9kLklucHV0TWV0aG9kTWFuYWdlcl9BY2Nlc3NvcjsKLQotaW1wb3J0IGphdmEudXRpbC5jb25jdXJyZW50LlRpbWVVbml0OwotaW1wb3J0IGphdmEudXRpbC5jb25jdXJyZW50LmxvY2tzLlJlZW50cmFudExvY2s7Ci0KLS8qKgotICogQmFzZSBjbGFzcyBmb3IgcmVuZGVyaW5nIGFjdGlvbi4KLSAqCi0gKiBJdCBwcm92aWRlcyBsaWZlLWN5Y2xlIG1ldGhvZHMgdG8gaW5pdCBhbmQgc3RvcCB0aGUgcmVuZGVyaW5nLgotICogVGhlIG1vc3QgaW1wb3J0YW50IG1ldGhvZHMgYXJlOgotICoge0BsaW5rICNpbml0KGxvbmcpfSBhbmQge0BsaW5rICNhY3F1aXJlKGxvbmcpfSB0byBzdGFydCBhIHJlbmRlcmluZyBhbmQge0BsaW5rICNyZWxlYXNlKCl9Ci0gKiBhZnRlciB0aGUgcmVuZGVyaW5nLgotICoKLSAqCi0gKiBAcGFyYW0gPFQ+IHRoZSB7QGxpbmsgUmVuZGVyUGFyYW1zfSBpbXBsZW1lbnRhdGlvbgotICoKLSAqLwotcHVibGljIGFic3RyYWN0IGNsYXNzIFJlbmRlckFjdGlvbjxUIGV4dGVuZHMgUmVuZGVyUGFyYW1zPiBleHRlbmRzIEZyYW1ld29ya1Jlc291cmNlSWRQcm92aWRlciB7Ci0KLSAgICAvKioKLSAgICAgKiBUaGUgY3VycmVudCBjb250ZXh0IGJlaW5nIHJlbmRlcmVkLiBUaGlzIGlzIHNldCB0aHJvdWdoIHtAbGluayAjYWNxdWlyZShsb25nKX0gYW5kCi0gICAgICoge0BsaW5rICNpbml0KGxvbmcpfSwgYW5kIHVuc2V0IGluIHtAbGluayAjcmVsZWFzZSgpfS4KLSAgICAgKi8KLSAgICBwcml2YXRlIHN0YXRpYyBCcmlkZ2VDb250ZXh0IHNDdXJyZW50Q29udGV4dCA9IG51bGw7Ci0KLSAgICBwcml2YXRlIGZpbmFsIFQgbVBhcmFtczsKLQotICAgIHByaXZhdGUgQnJpZGdlQ29udGV4dCBtQ29udGV4dDsKLQotICAgIC8qKgotICAgICAqIENyZWF0ZXMgYSByZW5kZXJBY3Rpb24uCi0gICAgICogPHA+Ci0gICAgICogVGhpcyA8Yj5tdXN0PC9iPiBiZSBmb2xsb3dlZCBieSBhIGNhbGwgdG8ge0BsaW5rIFJlbmRlckFjdGlvbiNpbml0KCl9LCB3aGljaCBhY3QgYXMgYQotICAgICAqIGNhbGwgdG8ge0BsaW5rIFJlbmRlckFjdGlvbiNhY3F1aXJlKGxvbmcpfQotICAgICAqCi0gICAgICogQHBhcmFtIHBhcmFtcyB0aGUgUmVuZGVyUGFyYW1zLiBUaGlzIG11c3QgYmUgYSBjb3B5IHRoYXQgdGhlIGFjdGlvbiBjYW4ga2VlcAotICAgICAqCi0gICAgICovCi0gICAgcHJvdGVjdGVkIFJlbmRlckFjdGlvbihUIHBhcmFtcykgewotICAgICAgICBtUGFyYW1zID0gcGFyYW1zOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEluaXRpYWxpemVzIGFuZCBhY3F1aXJlcyB0aGUgc2NlbmUsIGNyZWF0aW5nIHZhcmlvdXMgQW5kcm9pZCBvYmplY3RzIHN1Y2ggYXMgY29udGV4dCwKLSAgICAgKiBpbmZsYXRlciwgYW5kIHBhcnNlci4KLSAgICAgKgotICAgICAqIEBwYXJhbSB0aW1lb3V0IHRoZSB0aW1lIHRvIHdhaXQgaWYgYW5vdGhlciByZW5kZXJpbmcgaXMgaGFwcGVuaW5nLgotICAgICAqCi0gICAgICogQHJldHVybiB3aGV0aGVyIHRoZSBzY2VuZSB3YXMgcHJlcGFyZWQKLSAgICAgKgotICAgICAqIEBzZWUgI2FjcXVpcmUobG9uZykKLSAgICAgKiBAc2VlICNyZWxlYXNlKCkKLSAgICAgKi8KLSAgICBwdWJsaWMgUmVzdWx0IGluaXQobG9uZyB0aW1lb3V0KSB7Ci0gICAgICAgIC8vIGFjcXVpcmUgdGhlIGxvY2suIGlmIHRoZSByZXN1bHQgaXMgbnVsbCwgbG9jayB3YXMganVzdCBhY3F1aXJlZCwgb3RoZXJ3aXNlLCByZXR1cm4KLSAgICAgICAgLy8gdGhlIHJlc3VsdC4KLSAgICAgICAgUmVzdWx0IHJlc3VsdCA9IGFjcXVpcmVMb2NrKHRpbWVvdXQpOwotICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLQotICAgICAgICBIYXJkd2FyZUNvbmZpZyBoYXJkd2FyZUNvbmZpZyA9IG1QYXJhbXMuZ2V0SGFyZHdhcmVDb25maWcoKTsKLQotICAgICAgICAvLyBzZXR1cCB0aGUgZGlzcGxheSBNZXRyaWNzLgotICAgICAgICBEaXNwbGF5TWV0cmljcyBtZXRyaWNzID0gbmV3IERpc3BsYXlNZXRyaWNzKCk7Ci0gICAgICAgIG1ldHJpY3MuZGVuc2l0eURwaSA9IG1ldHJpY3Mubm9uY29tcGF0RGVuc2l0eURwaSA9Ci0gICAgICAgICAgICAgICAgaGFyZHdhcmVDb25maWcuZ2V0RGVuc2l0eSgpLmdldERwaVZhbHVlKCk7Ci0KLSAgICAgICAgbWV0cmljcy5kZW5zaXR5ID0gbWV0cmljcy5ub25jb21wYXREZW5zaXR5ID0KLSAgICAgICAgICAgICAgICBtZXRyaWNzLmRlbnNpdHlEcGkgLyAoZmxvYXQpIERpc3BsYXlNZXRyaWNzLkRFTlNJVFlfREVGQVVMVDsKLQotICAgICAgICBtZXRyaWNzLnNjYWxlZERlbnNpdHkgPSBtZXRyaWNzLm5vbmNvbXBhdFNjYWxlZERlbnNpdHkgPSBtZXRyaWNzLmRlbnNpdHk7Ci0KLSAgICAgICAgbWV0cmljcy53aWR0aFBpeGVscyA9IG1ldHJpY3Mubm9uY29tcGF0V2lkdGhQaXhlbHMgPSBoYXJkd2FyZUNvbmZpZy5nZXRTY3JlZW5XaWR0aCgpOwotICAgICAgICBtZXRyaWNzLmhlaWdodFBpeGVscyA9IG1ldHJpY3Mubm9uY29tcGF0SGVpZ2h0UGl4ZWxzID0gaGFyZHdhcmVDb25maWcuZ2V0U2NyZWVuSGVpZ2h0KCk7Ci0gICAgICAgIG1ldHJpY3MueGRwaSA9IG1ldHJpY3Mubm9uY29tcGF0WGRwaSA9IGhhcmR3YXJlQ29uZmlnLmdldFhkcGkoKTsKLSAgICAgICAgbWV0cmljcy55ZHBpID0gbWV0cmljcy5ub25jb21wYXRZZHBpID0gaGFyZHdhcmVDb25maWcuZ2V0WWRwaSgpOwotCi0gICAgICAgIFJlbmRlclJlc291cmNlcyByZXNvdXJjZXMgPSBtUGFyYW1zLmdldFJlc291cmNlcygpOwotCi0gICAgICAgIC8vIGJ1aWxkIHRoZSBjb250ZXh0Ci0gICAgICAgIG1Db250ZXh0ID0gbmV3IEJyaWRnZUNvbnRleHQobVBhcmFtcy5nZXRQcm9qZWN0S2V5KCksIG1ldHJpY3MsIHJlc291cmNlcywKLSAgICAgICAgICAgICAgICBtUGFyYW1zLmdldFByb2plY3RDYWxsYmFjaygpLCBnZXRDb25maWd1cmF0aW9uKCksIG1QYXJhbXMuZ2V0VGFyZ2V0U2RrVmVyc2lvbigpLAotICAgICAgICAgICAgICAgIG1QYXJhbXMuaXNSdGxTdXBwb3J0ZWQoKSk7Ci0KLSAgICAgICAgc2V0VXAoKTsKLQotICAgICAgICByZXR1cm4gU1VDQ0VTUy5jcmVhdGVSZXN1bHQoKTsKLSAgICB9Ci0KLQotICAgIC8qKgotICAgICAqIFByZXBhcmVzIHRoZSBzY2VuZSBmb3IgYWN0aW9uLgotICAgICAqIDxwPgotICAgICAqIFRoaXMgY2FsbCBpcyBibG9ja2luZyBpZiBhbm90aGVyIHJlbmRlcmluZy9pbmZsYXRpbmcgaXMgY3VycmVudGx5IGhhcHBlbmluZywgYW5kIHdpbGwgcmV0dXJuCi0gICAgICogd2hldGhlciB0aGUgcHJlcGFyYXRpb24gd29ya2VkLgotICAgICAqCi0gICAgICogVGhlIHByZXBhcmF0aW9uIGNhbiBmYWlsIGlmIGFub3RoZXIgcmVuZGVyaW5nIHRvb2sgdG9vIGxvbmcgYW5kIHRoZSB0aW1lb3V0IHdhcyBlbGFwc2VkLgotICAgICAqCi0gICAgICogTW9yZSB0aGFuIG9uZSBjYWxsIHRvIHRoaXMgZnJvbSB0aGUgc2FtZSB0aHJlYWQgd2lsbCBoYXZlIG5vIGVmZmVjdCBhbmQgd2lsbCByZXR1cm4KLSAgICAgKiB7QGxpbmsgUmVzdWx0I1NVQ0NFU1N9LgotICAgICAqCi0gICAgICogQWZ0ZXIgc2NlbmUgYWN0aW9ucyBoYXZlIHRha2VuIHBsYWNlLCBvbmx5IG9uZSBjYWxsIHRvIHtAbGluayAjcmVsZWFzZSgpfSBtdXN0IGJlCi0gICAgICogZG9uZS4KLSAgICAgKgotICAgICAqIEBwYXJhbSB0aW1lb3V0IHRoZSB0aW1lIHRvIHdhaXQgaWYgYW5vdGhlciByZW5kZXJpbmcgaXMgaGFwcGVuaW5nLgotICAgICAqCi0gICAgICogQHJldHVybiB3aGV0aGVyIHRoZSBzY2VuZSB3YXMgcHJlcGFyZWQKLSAgICAgKgotICAgICAqIEBzZWUgI3JlbGVhc2UoKQotICAgICAqCi0gICAgICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24gaWYge0BsaW5rICNpbml0KGxvbmcpfSB3YXMgbmV2ZXIgY2FsbGVkLgotICAgICAqLwotICAgIHB1YmxpYyBSZXN1bHQgYWNxdWlyZShsb25nIHRpbWVvdXQpIHsKLSAgICAgICAgaWYgKG1Db250ZXh0ID09IG51bGwpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkFmdGVyIHNjZW5lIGNyZWF0aW9uLCAjaW5pdCgpIG11c3QgYmUgY2FsbGVkIik7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBhY3F1aXJlIHRoZSBsb2NrLiBpZiB0aGUgcmVzdWx0IGlzIG51bGwsIGxvY2sgd2FzIGp1c3QgYWNxdWlyZWQsIG90aGVyd2lzZSwgcmV0dXJuCi0gICAgICAgIC8vIHRoZSByZXN1bHQuCi0gICAgICAgIFJlc3VsdCByZXN1bHQgPSBhY3F1aXJlTG9jayh0aW1lb3V0KTsKLSAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0KLSAgICAgICAgc2V0VXAoKTsKLQotICAgICAgICByZXR1cm4gU1VDQ0VTUy5jcmVhdGVSZXN1bHQoKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBBY3F1aXJlIHRoZSBsb2NrIHNvIHRoYXQgdGhlIHNjZW5lIGNhbiBiZSBhY3RlZCB1cG9uLgotICAgICAqIDxwPgotICAgICAqIFRoaXMgcmV0dXJucyBudWxsIGlmIHRoZSBsb2NrIHdhcyBqdXN0IGFjcXVpcmVkLCBvdGhlcndpc2UgaXQgcmV0dXJucwotICAgICAqIHtAbGluayBSZXN1bHQjU1VDQ0VTU30gaWYgdGhlIGxvY2sgYWxyZWFkeSBiZWxvbmdlZCB0byB0aGF0IHRocmVhZCwgb3IgYW5vdGhlcgotICAgICAqIGluc3RhbmNlIChzZWUge0BsaW5rIFJlc3VsdCNnZXRTdGF0dXMoKX0pIGlmIGFuIGVycm9yIG9jY3VycmVkLgotICAgICAqCi0gICAgICogQHBhcmFtIHRpbWVvdXQgdGhlIHRpbWUgdG8gd2FpdCBpZiBhbm90aGVyIHJlbmRlcmluZyBpcyBoYXBwZW5pbmcuCi0gICAgICogQHJldHVybiBudWxsIGlmIHRoZSBsb2NrIHdhcyBqdXN0IGFjcXVpcmUgb3IgYW5vdGhlciByZXN1bHQgZGVwZW5kaW5nIG9uIHRoZSBzdGF0ZS4KLSAgICAgKgotICAgICAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uIGlmIHRoZSBjdXJyZW50IGNvbnRleHQgaXMgZGlmZmVyZW50IHRoYW4gdGhlIG9uZSBvd25lZCBieQotICAgICAqICAgICAgdGhlIHNjZW5lLgotICAgICAqLwotICAgIHByaXZhdGUgUmVzdWx0IGFjcXVpcmVMb2NrKGxvbmcgdGltZW91dCkgewotICAgICAgICBSZWVudHJhbnRMb2NrIGxvY2sgPSBCcmlkZ2UuZ2V0TG9jaygpOwotICAgICAgICBpZiAobG9jay5pc0hlbGRCeUN1cnJlbnRUaHJlYWQoKSA9PSBmYWxzZSkgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBib29sZWFuIGFjcXVpcmVkID0gbG9jay50cnlMb2NrKHRpbWVvdXQsIFRpbWVVbml0Lk1JTExJU0VDT05EUyk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoYWNxdWlyZWQgPT0gZmFsc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9SX1RJTUVPVVQuY3JlYXRlUmVzdWx0KCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIHJldHVybiBFUlJPUl9MT0NLX0lOVEVSUlVQVEVELmNyZWF0ZVJlc3VsdCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gVGhpcyB0aHJlYWQgaG9sZHMgdGhlIGxvY2sgYWxyZWFkeS4gQ2hlY2tzIHRoYXQgdGhpcyB3YXNuJ3QgZm9yIGEgZGlmZmVyZW50IGNvbnRleHQuCi0gICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGNhbGxlZCBieSBpbml0LCBtQ29udGV4dCB3aWxsIGJlIG51bGwgYW5kIHNvIHNob3VsZCBzQ3VycmVudENvbnRleHQKLSAgICAgICAgICAgIC8vIGFueXdheQotICAgICAgICAgICAgaWYgKG1Db250ZXh0ICE9IHNDdXJyZW50Q29udGV4dCkgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkFjcXVpcmluZyBkaWZmZXJlbnQgc2NlbmVzIGZyb20gc2FtZSB0aHJlYWQgd2l0aG91dCByZWxlYXNlcyIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIFNVQ0NFU1MuY3JlYXRlUmVzdWx0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDbGVhbnMgdXAgdGhlIHNjZW5lIGFmdGVyIGFuIGFjdGlvbi4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCByZWxlYXNlKCkgewotICAgICAgICBSZWVudHJhbnRMb2NrIGxvY2sgPSBCcmlkZ2UuZ2V0TG9jaygpOwotCi0gICAgICAgIC8vIHdpdGggdGhlIHVzZSBvZiBmaW5hbGx5IGJsb2NrcywgaXQgaXMgcG9zc2libGUgdG8gZmluZCBvdXJzZWxmIGNhbGxpbmcgdGhpcwotICAgICAgICAvLyB3aXRob3V0IGEgc3VjY2Vzc2Z1bCBjYWxsIHRvIHByZXBhcmVTY2VuZS4gVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB1bmxvY2soKSB3aWxsCi0gICAgICAgIC8vIG5vdCB0aHJvdyBJbGxlZ2FsTW9uaXRvclN0YXRlRXhjZXB0aW9uLgotICAgICAgICBpZiAobG9jay5pc0hlbGRCeUN1cnJlbnRUaHJlYWQoKSkgewotICAgICAgICAgICAgdGVhckRvd24oKTsKLSAgICAgICAgICAgIGxvY2sudW5sb2NrKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBTZXRzIHVwIHRoZSBzZXNzaW9uIGZvciByZW5kZXJpbmcuCi0gICAgICogPHAvPgotICAgICAqIFRoZSBjb3VudGVycGFydCBpcyB7QGxpbmsgI3RlYXJEb3duKCl9LgotICAgICAqLwotICAgIHByaXZhdGUgdm9pZCBzZXRVcCgpIHsKLSAgICAgICAgLy8gbWFrZSBzdXJlIHRoZSBSZXNvdXJjZXMgb2JqZWN0IHJlZmVyZW5jZXMgdGhlIGNvbnRleHQgKGFuZCBvdGhlciBvYmplY3RzKSBmb3IgdGhpcwotICAgICAgICAvLyBzY2VuZQotICAgICAgICBtQ29udGV4dC5pbml0UmVzb3VyY2VzKCk7Ci0gICAgICAgIHNDdXJyZW50Q29udGV4dCA9IG1Db250ZXh0OwotCi0gICAgICAgIC8vIGNyZWF0ZSBhbiBJbnB1dE1ldGhvZE1hbmFnZXIKLSAgICAgICAgSW5wdXRNZXRob2RNYW5hZ2VyLmdldEluc3RhbmNlKCk7Ci0KLSAgICAgICAgTGF5b3V0TG9nIGN1cnJlbnRMb2cgPSBtUGFyYW1zLmdldExvZygpOwotICAgICAgICBCcmlkZ2Uuc2V0TG9nKGN1cnJlbnRMb2cpOwotICAgICAgICBtQ29udGV4dC5nZXRSZW5kZXJSZXNvdXJjZXMoKS5zZXRGcmFtZXdvcmtSZXNvdXJjZUlkUHJvdmlkZXIodGhpcyk7Ci0gICAgICAgIG1Db250ZXh0LmdldFJlbmRlclJlc291cmNlcygpLnNldExvZ2dlcihjdXJyZW50TG9nKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBUZWFyIGRvd24gdGhlIHNlc3Npb24gYWZ0ZXIgcmVuZGVyaW5nLgotICAgICAqIDxwLz4KLSAgICAgKiBUaGUgY291bnRlcnBhcnQgaXMge0BsaW5rICNzZXRVcCgpfS4KLSAgICAgKi8KLSAgICBwcml2YXRlIHZvaWQgdGVhckRvd24oKSB7Ci0gICAgICAgIC8vIFRoZSBjb250ZXh0IG1heSBiZSBudWxsLCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IgZHVyaW5nIGluaXQoKS4KLSAgICAgICAgaWYgKG1Db250ZXh0ICE9IG51bGwpIHsKLSAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0byByZW1vdmUgc3RhdGljIHJlZmVyZW5jZXMsIG90aGVyd2lzZSB3ZSBjb3VsZCBub3QgdW5sb2FkIHRoZSBsaWIKLSAgICAgICAgICAgIG1Db250ZXh0LmRpc3Bvc2VSZXNvdXJjZXMoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChzQ3VycmVudENvbnRleHQgIT0gbnVsbCkgewotICAgICAgICAgICAgLy8gcXVpdCBIYW5kbGVyVGhyZWFkIGNyZWF0ZWQgZHVyaW5nIHRoaXMgc2Vzc2lvbi4KLSAgICAgICAgICAgIEhhbmRsZXJUaHJlYWRfRGVsZWdhdGUuY2xlYW5VcChzQ3VycmVudENvbnRleHQpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gY2xlYXIgdGhlIHN0b3JlZCBWaWV3Q29uZmlndXJhdGlvbiBzaW5jZSB0aGUgbWFwIGlzIHBlciBkZW5zaXR5IGFuZCBub3QgcGVyIGNvbnRleHQuCi0gICAgICAgIFZpZXdDb25maWd1cmF0aW9uX0FjY2Vzc29yLmNsZWFyQ29uZmlndXJhdGlvbnMoKTsKLQotICAgICAgICAvLyByZW1vdmUgdGhlIElucHV0TWV0aG9kTWFuYWdlcgotICAgICAgICBJbnB1dE1ldGhvZE1hbmFnZXJfQWNjZXNzb3IucmVzZXRJbnN0YW5jZSgpOwotCi0gICAgICAgIHNDdXJyZW50Q29udGV4dCA9IG51bGw7Ci0KLSAgICAgICAgQnJpZGdlLnNldExvZyhudWxsKTsKLSAgICAgICAgaWYgKG1Db250ZXh0ICE9IG51bGwpIHsKLSAgICAgICAgICAgIG1Db250ZXh0LmdldFJlbmRlclJlc291cmNlcygpLnNldEZyYW1ld29ya1Jlc291cmNlSWRQcm92aWRlcihudWxsKTsKLSAgICAgICAgICAgIG1Db250ZXh0LmdldFJlbmRlclJlc291cmNlcygpLnNldExvZ2dlcihudWxsKTsKLSAgICAgICAgfQotCi0gICAgICAgIG1Db250ZXh0ID0gbnVsbDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIEJyaWRnZUNvbnRleHQgZ2V0Q3VycmVudENvbnRleHQoKSB7Ci0gICAgICAgIHJldHVybiBzQ3VycmVudENvbnRleHQ7Ci0gICAgfQotCi0gICAgcHJvdGVjdGVkIFQgZ2V0UGFyYW1zKCkgewotICAgICAgICByZXR1cm4gbVBhcmFtczsKLSAgICB9Ci0KLSAgICBwcm90ZWN0ZWQgQnJpZGdlQ29udGV4dCBnZXRDb250ZXh0KCkgewotICAgICAgICByZXR1cm4gbUNvbnRleHQ7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgbG9nIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2Vzc2lvbi4KLSAgICAgKiBAcmV0dXJuIHRoZSBsb2cgb3IgbnVsbCBpZiB0aGVyZSBhcmUgbm9uZS4KLSAgICAgKi8KLSAgICBwdWJsaWMgTGF5b3V0TG9nIGdldExvZygpIHsKLSAgICAgICAgaWYgKG1QYXJhbXMgIT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG1QYXJhbXMuZ2V0TG9nKCk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDaGVja3MgdGhhdCB0aGUgbG9jayBpcyBvd25lZCBieSB0aGUgY3VycmVudCB0aHJlYWQgYW5kIHRoYXQgdGhlIGN1cnJlbnQgY29udGV4dCBpcyB0aGUgb25lCi0gICAgICogZnJvbSB0aGlzIHNjZW5lLgotICAgICAqCi0gICAgICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24gaWYgdGhlIGN1cnJlbnQgY29udGV4dCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgb25lIG93bmVkIGJ5Ci0gICAgICogICAgICB0aGUgc2NlbmUsIG9yIGlmIHtAbGluayAjYWNxdWlyZShsb25nKX0gd2FzIG5vdCBjYWxsZWQuCi0gICAgICovCi0gICAgcHJvdGVjdGVkIHZvaWQgY2hlY2tMb2NrKCkgewotICAgICAgICBSZWVudHJhbnRMb2NrIGxvY2sgPSBCcmlkZ2UuZ2V0TG9jaygpOwotICAgICAgICBpZiAobG9jay5pc0hlbGRCeUN1cnJlbnRUaHJlYWQoKSA9PSBmYWxzZSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigic2NlbmUgbXVzdCBiZSBhY3F1aXJlZCBmaXJzdC4gc2VlICNhY3F1aXJlKGxvbmcpIik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHNDdXJyZW50Q29udGV4dCAhPSBtQ29udGV4dCkgewotICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiVGhyZWFkIGFjcXVpcmVkIGEgc2NlbmUgYnV0IGlzIHJlbmRlcmluZyBhIGRpZmZlcmVudCBvbmUiKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgQ29uZmlndXJhdGlvbiBnZXRDb25maWd1cmF0aW9uKCkgewotICAgICAgICBDb25maWd1cmF0aW9uIGNvbmZpZyA9IG5ldyBDb25maWd1cmF0aW9uKCk7Ci0KLSAgICAgICAgSGFyZHdhcmVDb25maWcgaGFyZHdhcmVDb25maWcgPSBtUGFyYW1zLmdldEhhcmR3YXJlQ29uZmlnKCk7Ci0KLSAgICAgICAgU2NyZWVuU2l6ZSBzY3JlZW5TaXplID0gaGFyZHdhcmVDb25maWcuZ2V0U2NyZWVuU2l6ZSgpOwotICAgICAgICBpZiAoc2NyZWVuU2l6ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBzd2l0Y2ggKHNjcmVlblNpemUpIHsKLSAgICAgICAgICAgICAgICBjYXNlIFNNQUxMOgotICAgICAgICAgICAgICAgICAgICBjb25maWcuc2NyZWVuTGF5b3V0IHw9IENvbmZpZ3VyYXRpb24uU0NSRUVOTEFZT1VUX1NJWkVfU01BTEw7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgTk9STUFMOgotICAgICAgICAgICAgICAgICAgICBjb25maWcuc2NyZWVuTGF5b3V0IHw9IENvbmZpZ3VyYXRpb24uU0NSRUVOTEFZT1VUX1NJWkVfTk9STUFMOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIExBUkdFOgotICAgICAgICAgICAgICAgICAgICBjb25maWcuc2NyZWVuTGF5b3V0IHw9IENvbmZpZ3VyYXRpb24uU0NSRUVOTEFZT1VUX1NJWkVfTEFSR0U7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgWExBUkdFOgotICAgICAgICAgICAgICAgICAgICBjb25maWcuc2NyZWVuTGF5b3V0IHw9IENvbmZpZ3VyYXRpb24uU0NSRUVOTEFZT1VUX1NJWkVfWExBUkdFOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIERlbnNpdHkgZGVuc2l0eSA9IGhhcmR3YXJlQ29uZmlnLmdldERlbnNpdHkoKTsKLSAgICAgICAgaWYgKGRlbnNpdHkgPT0gbnVsbCkgewotICAgICAgICAgICAgZGVuc2l0eSA9IERlbnNpdHkuTUVESVVNOwotICAgICAgICB9Ci0KLSAgICAgICAgY29uZmlnLnNjcmVlbldpZHRoRHAgPSBoYXJkd2FyZUNvbmZpZy5nZXRTY3JlZW5XaWR0aCgpIC8gZGVuc2l0eS5nZXREcGlWYWx1ZSgpOwotICAgICAgICBjb25maWcuc2NyZWVuSGVpZ2h0RHAgPSBoYXJkd2FyZUNvbmZpZy5nZXRTY3JlZW5IZWlnaHQoKSAvIGRlbnNpdHkuZ2V0RHBpVmFsdWUoKTsKLSAgICAgICAgaWYgKGNvbmZpZy5zY3JlZW5IZWlnaHREcCA8IGNvbmZpZy5zY3JlZW5XaWR0aERwKSB7Ci0gICAgICAgICAgICBjb25maWcuc21hbGxlc3RTY3JlZW5XaWR0aERwID0gY29uZmlnLnNjcmVlbkhlaWdodERwOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29uZmlnLnNtYWxsZXN0U2NyZWVuV2lkdGhEcCA9IGNvbmZpZy5zY3JlZW5XaWR0aERwOwotICAgICAgICB9Ci0gICAgICAgIGNvbmZpZy5kZW5zaXR5RHBpID0gZGVuc2l0eS5nZXREcGlWYWx1ZSgpOwotCi0gICAgICAgIC8vIG5ldmVyIHJ1biBpbiBjb21wYXQgbW9kZToKLSAgICAgICAgY29uZmlnLmNvbXBhdFNjcmVlbldpZHRoRHAgPSBjb25maWcuc2NyZWVuV2lkdGhEcDsKLSAgICAgICAgY29uZmlnLmNvbXBhdFNjcmVlbkhlaWdodERwID0gY29uZmlnLnNjcmVlbkhlaWdodERwOwotCi0gICAgICAgIFNjcmVlbk9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0gaGFyZHdhcmVDb25maWcuZ2V0T3JpZW50YXRpb24oKTsKLSAgICAgICAgaWYgKG9yaWVudGF0aW9uICE9IG51bGwpIHsKLSAgICAgICAgICAgIHN3aXRjaCAob3JpZW50YXRpb24pIHsKLSAgICAgICAgICAgIGNhc2UgUE9SVFJBSVQ6Ci0gICAgICAgICAgICAgICAgY29uZmlnLm9yaWVudGF0aW9uID0gQ29uZmlndXJhdGlvbi5PUklFTlRBVElPTl9QT1JUUkFJVDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgTEFORFNDQVBFOgotICAgICAgICAgICAgICAgIGNvbmZpZy5vcmllbnRhdGlvbiA9IENvbmZpZ3VyYXRpb24uT1JJRU5UQVRJT05fTEFORFNDQVBFOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBTUVVBUkU6Ci0gICAgICAgICAgICAgICAgY29uZmlnLm9yaWVudGF0aW9uID0gQ29uZmlndXJhdGlvbi5PUklFTlRBVElPTl9TUVVBUkU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBjb25maWcub3JpZW50YXRpb24gPSBDb25maWd1cmF0aW9uLk9SSUVOVEFUSU9OX1VOREVGSU5FRDsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFRPRE86IGZpbGwgaW4gbW9yZSBjb25maWcgaW5mby4KLQotICAgICAgICByZXR1cm4gY29uZmlnOwotICAgIH0KLQotCi0gICAgLy8gLS0tIEZyYW1ld29ya1Jlc291cmNlSWRQcm92aWRlciBtZXRob2RzCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgSW50ZWdlciBnZXRJZChSZXNvdXJjZVR5cGUgcmVzVHlwZSwgU3RyaW5nIHJlc05hbWUpIHsKLSAgICAgICAgcmV0dXJuIEJyaWRnZS5nZXRSZXNvdXJjZUlkKHJlc1R5cGUsIHJlc05hbWUpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9SZW5kZXJEcmF3YWJsZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL1JlbmRlckRyYXdhYmxlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2NzcxMzEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL1JlbmRlckRyYXdhYmxlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsOwotCi1pbXBvcnQgc3RhdGljIGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXN1bHQuU3RhdHVzLkVSUk9SX1VOS05PV047Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuRHJhd2FibGVQYXJhbXM7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkhhcmR3YXJlQ29uZmlnOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXNvdXJjZVZhbHVlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXN1bHQ7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlc3VsdC5TdGF0dXM7Ci1pbXBvcnQgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5hbmRyb2lkLkJyaWRnZUNvbnRleHQ7Ci1pbXBvcnQgY29tLmFuZHJvaWQucmVzb3VyY2VzLlJlc291cmNlVHlwZTsKLQotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwX0RlbGVnYXRlOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuQ2FudmFzOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuRHJhd2FibGU7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LkF0dGFjaEluZm9fQWNjZXNzb3I7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXcuTWVhc3VyZVNwZWM7Ci1pbXBvcnQgYW5kcm9pZC53aWRnZXQuRnJhbWVMYXlvdXQ7Ci0KLWltcG9ydCBqYXZhLmF3dC5BbHBoYUNvbXBvc2l0ZTsKLWltcG9ydCBqYXZhLmF3dC5Db2xvcjsKLWltcG9ydCBqYXZhLmF3dC5HcmFwaGljczJEOwotaW1wb3J0IGphdmEuYXd0LmltYWdlLkJ1ZmZlcmVkSW1hZ2U7Ci1pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKLQotLyoqCi0gKiBBY3Rpb24gdG8gcmVuZGVyIGEgZ2l2ZW4gRHJhd2FibGUgcHJvdmlkZWQgdGhyb3VnaCB7QGxpbmsgRHJhd2FibGVQYXJhbXMjZ2V0RHJhd2FibGUoKX0uCi0gKgotICogVGhlIGNsYXNzIG9ubHkgcHJvdmlkZXMgYSBzaW1wbGUge0BsaW5rICNyZW5kZXIoKX0gbWV0aG9kLCBidXQgdGhlIGZ1bGwgbGlmZS1jeWNsZSBvZiB0aGUKLSAqIGFjdGlvbiBtdXN0IGJlIHJlc3BlY3RlZC4KLSAqCi0gKiBAc2VlIFJlbmRlckFjdGlvbgotICoKLSAqLwotcHVibGljIGNsYXNzIFJlbmRlckRyYXdhYmxlIGV4dGVuZHMgUmVuZGVyQWN0aW9uPERyYXdhYmxlUGFyYW1zPiB7Ci0KLSAgICBwdWJsaWMgUmVuZGVyRHJhd2FibGUoRHJhd2FibGVQYXJhbXMgcGFyYW1zKSB7Ci0gICAgICAgIHN1cGVyKG5ldyBEcmF3YWJsZVBhcmFtcyhwYXJhbXMpKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgUmVzdWx0IHJlbmRlcigpIHsKLSAgICAgICAgY2hlY2tMb2NrKCk7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAvLyBnZXQgdGhlIGRyYXdhYmxlIHJlc291cmNlIHZhbHVlCi0gICAgICAgICAgICBEcmF3YWJsZVBhcmFtcyBwYXJhbXMgPSBnZXRQYXJhbXMoKTsKLSAgICAgICAgICAgIEhhcmR3YXJlQ29uZmlnIGhhcmR3YXJlQ29uZmlnID0gcGFyYW1zLmdldEhhcmR3YXJlQ29uZmlnKCk7Ci0gICAgICAgICAgICBSZXNvdXJjZVZhbHVlIGRyYXdhYmxlUmVzb3VyY2UgPSBwYXJhbXMuZ2V0RHJhd2FibGUoKTsKLQotICAgICAgICAgICAgLy8gcmVzb2x2ZSBpdAotICAgICAgICAgICAgQnJpZGdlQ29udGV4dCBjb250ZXh0ID0gZ2V0Q29udGV4dCgpOwotICAgICAgICAgICAgZHJhd2FibGVSZXNvdXJjZSA9IGNvbnRleHQuZ2V0UmVuZGVyUmVzb3VyY2VzKCkucmVzb2x2ZVJlc1ZhbHVlKGRyYXdhYmxlUmVzb3VyY2UpOwotCi0gICAgICAgICAgICBpZiAoZHJhd2FibGVSZXNvdXJjZSA9PSBudWxsIHx8Ci0gICAgICAgICAgICAgICAgICAgIGRyYXdhYmxlUmVzb3VyY2UuZ2V0UmVzb3VyY2VUeXBlKCkgIT0gUmVzb3VyY2VUeXBlLkRSQVdBQkxFKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1cy5FUlJPUl9OT1RfQV9EUkFXQUJMRS5jcmVhdGVSZXN1bHQoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gY3JlYXRlIGEgc2ltcGxlIEZyYW1lTGF5b3V0Ci0gICAgICAgICAgICBGcmFtZUxheW91dCBjb250ZW50ID0gbmV3IEZyYW1lTGF5b3V0KGNvbnRleHQpOwotCi0gICAgICAgICAgICAvLyBnZXQgdGhlIGFjdHVhbCBEcmF3YWJsZSBvYmplY3QgdG8gZHJhdwotICAgICAgICAgICAgRHJhd2FibGUgZCA9IFJlc291cmNlSGVscGVyLmdldERyYXdhYmxlKGRyYXdhYmxlUmVzb3VyY2UsIGNvbnRleHQpOwotICAgICAgICAgICAgY29udGVudC5zZXRCYWNrZ3JvdW5kKGQpOwotCi0gICAgICAgICAgICAvLyBzZXQgdGhlIEF0dGFjaEluZm8gb24gdGhlIHJvb3Qgdmlldy4KLSAgICAgICAgICAgIEF0dGFjaEluZm9fQWNjZXNzb3Iuc2V0QXR0YWNoSW5mbyhjb250ZW50KTsKLQotCi0gICAgICAgICAgICAvLyBtZWFzdXJlCi0gICAgICAgICAgICBpbnQgdyA9IGhhcmR3YXJlQ29uZmlnLmdldFNjcmVlbldpZHRoKCk7Ci0gICAgICAgICAgICBpbnQgaCA9IGhhcmR3YXJlQ29uZmlnLmdldFNjcmVlbkhlaWdodCgpOwotICAgICAgICAgICAgaW50IHdfc3BlYyA9IE1lYXN1cmVTcGVjLm1ha2VNZWFzdXJlU3BlYyh3LCBNZWFzdXJlU3BlYy5FWEFDVExZKTsKLSAgICAgICAgICAgIGludCBoX3NwZWMgPSBNZWFzdXJlU3BlYy5tYWtlTWVhc3VyZVNwZWMoaCwgTWVhc3VyZVNwZWMuRVhBQ1RMWSk7Ci0gICAgICAgICAgICBjb250ZW50Lm1lYXN1cmUod19zcGVjLCBoX3NwZWMpOwotCi0gICAgICAgICAgICAvLyBub3cgZG8gdGhlIGxheW91dC4KLSAgICAgICAgICAgIGNvbnRlbnQubGF5b3V0KDAsIDAsIHcsIGgpOwotCi0gICAgICAgICAgICAvLyBwcmVEcmF3IHNldHVwCi0gICAgICAgICAgICBBdHRhY2hJbmZvX0FjY2Vzc29yLmRpc3BhdGNoT25QcmVEcmF3KGNvbnRlbnQpOwotCi0gICAgICAgICAgICAvLyBkcmF3IGludG8gYSBuZXcgaW1hZ2UKLSAgICAgICAgICAgIEJ1ZmZlcmVkSW1hZ2UgaW1hZ2UgPSBnZXRJbWFnZSh3LCBoKTsKLQotICAgICAgICAgICAgLy8gY3JlYXRlIGFuIEFuZHJvaWQgYml0bWFwIGFyb3VuZCB0aGUgQnVmZmVyZWRJbWFnZQotICAgICAgICAgICAgQml0bWFwIGJpdG1hcCA9IEJpdG1hcF9EZWxlZ2F0ZS5jcmVhdGVCaXRtYXAoaW1hZ2UsCi0gICAgICAgICAgICAgICAgICAgIHRydWUgLyppc011dGFibGUqLywgaGFyZHdhcmVDb25maWcuZ2V0RGVuc2l0eSgpKTsKLQotICAgICAgICAgICAgLy8gY3JlYXRlIGEgQ2FudmFzIGFyb3VuZCB0aGUgQW5kcm9pZCBiaXRtYXAKLSAgICAgICAgICAgIENhbnZhcyBjYW52YXMgPSBuZXcgQ2FudmFzKGJpdG1hcCk7Ci0gICAgICAgICAgICBjYW52YXMuc2V0RGVuc2l0eShoYXJkd2FyZUNvbmZpZy5nZXREZW5zaXR5KCkuZ2V0RHBpVmFsdWUoKSk7Ci0KLSAgICAgICAgICAgIC8vIGFuZCBkcmF3Ci0gICAgICAgICAgICBjb250ZW50LmRyYXcoY2FudmFzKTsKLQotICAgICAgICAgICAgcmV0dXJuIFN0YXR1cy5TVUNDRVNTLmNyZWF0ZVJlc3VsdChpbWFnZSk7Ci0gICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIHJldHVybiBFUlJPUl9VTktOT1dOLmNyZWF0ZVJlc3VsdChlLmdldE1lc3NhZ2UoKSwgZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcm90ZWN0ZWQgQnVmZmVyZWRJbWFnZSBnZXRJbWFnZShpbnQgdywgaW50IGgpIHsKLSAgICAgICAgQnVmZmVyZWRJbWFnZSBpbWFnZSA9IG5ldyBCdWZmZXJlZEltYWdlKHcsIGgsIEJ1ZmZlcmVkSW1hZ2UuVFlQRV9JTlRfQVJHQik7Ci0gICAgICAgIEdyYXBoaWNzMkQgZ2MgPSBpbWFnZS5jcmVhdGVHcmFwaGljcygpOwotICAgICAgICBnYy5zZXRDb21wb3NpdGUoQWxwaGFDb21wb3NpdGUuU3JjKTsKLQotICAgICAgICBnYy5zZXRDb2xvcihuZXcgQ29sb3IoMHgwMDAwMDAwMCwgdHJ1ZSkpOwotICAgICAgICBnYy5maWxsUmVjdCgwLCAwLCB3LCBoKTsKLQotICAgICAgICAvLyBkb25lCi0gICAgICAgIGdjLmRpc3Bvc2UoKTsKLQotICAgICAgICByZXR1cm4gaW1hZ2U7Ci0gICAgfQotCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2ltcGwvUmVuZGVyU2Vzc2lvbkltcGwuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9SZW5kZXJTZXNzaW9uSW1wbC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1Nzc3MWUzLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9SZW5kZXJTZXNzaW9uSW1wbC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTQ4NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGw7Ci0KLWltcG9ydCBzdGF0aWMgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlc3VsdC5TdGF0dXMuRVJST1JfQU5JTV9OT1RfRk9VTkQ7Ci1pbXBvcnQgc3RhdGljIGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXN1bHQuU3RhdHVzLkVSUk9SX0lORkxBVElPTjsKLWltcG9ydCBzdGF0aWMgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlc3VsdC5TdGF0dXMuRVJST1JfTk9UX0lORkxBVEVEOwotaW1wb3J0IHN0YXRpYyBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVzdWx0LlN0YXR1cy5FUlJPUl9VTktOT1dOOwotaW1wb3J0IHN0YXRpYyBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVzdWx0LlN0YXR1cy5FUlJPUl9WSUVXR1JPVVBfTk9fQ0hJTERSRU47Ci1pbXBvcnQgc3RhdGljIGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXN1bHQuU3RhdHVzLlNVQ0NFU1M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuQWRhcHRlckJpbmRpbmc7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkhhcmR3YXJlQ29uZmlnOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5JQW5pbWF0aW9uTGlzdGVuZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLklMYXlvdXRQdWxsUGFyc2VyOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5JUHJvamVjdENhbGxiYWNrOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZW5kZXJQYXJhbXM7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlbmRlclJlc291cmNlczsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVuZGVyU2Vzc2lvbjsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVzb3VyY2VSZWZlcmVuY2U7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlc291cmNlVmFsdWU7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLlJlc3VsdDsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVzdWx0LlN0YXR1czsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuU2Vzc2lvblBhcmFtczsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuU2Vzc2lvblBhcmFtcy5SZW5kZXJpbmdNb2RlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5WaWV3SW5mbzsKLWltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC51dGlsLlhtbFV0aWxzOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC5CcmlkZ2VDb250ZXh0OwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC5CcmlkZ2VMYXlvdXRQYXJhbXNNYXBBdHRyaWJ1dGVzOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC5CcmlkZ2VYbWxCbG9ja1BhcnNlcjsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmJhcnMuRmFrZUFjdGlvbkJhcjsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmJhcnMuTmF2aWdhdGlvbkJhcjsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmJhcnMuU3RhdHVzQmFyOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYmFycy5UaXRsZUJhcjsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuYmluZGluZy5GYWtlQWRhcHRlcjsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuYmluZGluZy5GYWtlRXhwYW5kYWJsZUFkYXB0ZXI7Ci1pbXBvcnQgY29tLmFuZHJvaWQucmVzb3VyY2VzLlJlc291cmNlVHlwZTsKLWltcG9ydCBjb20uYW5kcm9pZC5yZXNvdXJjZXMuU2NyZWVuT3JpZW50YXRpb247Ci1pbXBvcnQgY29tLmFuZHJvaWQudXRpbC5QYWlyOwotCi1pbXBvcnQgb3JnLnhtbHB1bGwudjEuWG1sUHVsbFBhcnNlckV4Y2VwdGlvbjsKLQotaW1wb3J0IGFuZHJvaWQuYW5pbWF0aW9uLkFuaW1hdGlvblRocmVhZDsKLWltcG9ydCBhbmRyb2lkLmFuaW1hdGlvbi5BbmltYXRvcjsKLWltcG9ydCBhbmRyb2lkLmFuaW1hdGlvbi5BbmltYXRvckluZmxhdGVyOwotaW1wb3J0IGFuZHJvaWQuYW5pbWF0aW9uLkxheW91dFRyYW5zaXRpb247Ci1pbXBvcnQgYW5kcm9pZC5hbmltYXRpb24uTGF5b3V0VHJhbnNpdGlvbi5UcmFuc2l0aW9uTGlzdGVuZXI7Ci1pbXBvcnQgYW5kcm9pZC5hcHAuRnJhZ21lbnRfRGVsZWdhdGU7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXA7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXBfRGVsZWdhdGU7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5DYW52YXM7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS5EcmF3YWJsZTsKLWltcG9ydCBhbmRyb2lkLnV0aWwuRGlzcGxheU1ldHJpY3M7Ci1pbXBvcnQgYW5kcm9pZC51dGlsLlR5cGVkVmFsdWU7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LkF0dGFjaEluZm9fQWNjZXNzb3I7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LkJyaWRnZUluZmxhdGVyOwotaW1wb3J0IGFuZHJvaWQudmlldy5JV2luZG93TWFuYWdlcjsKLWltcG9ydCBhbmRyb2lkLnZpZXcuSVdpbmRvd01hbmFnZXJJbXBsOwotaW1wb3J0IGFuZHJvaWQudmlldy5TdXJmYWNlOwotaW1wb3J0IGFuZHJvaWQudmlldy5WaWV3OwotaW1wb3J0IGFuZHJvaWQudmlldy5WaWV3Lk1lYXN1cmVTcGVjOwotaW1wb3J0IGFuZHJvaWQudmlldy5WaWV3R3JvdXA7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cC5MYXlvdXRQYXJhbXM7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cC5NYXJnaW5MYXlvdXRQYXJhbXM7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LldpbmRvd01hbmFnZXJHbG9iYWxfRGVsZWdhdGU7Ci1pbXBvcnQgYW5kcm9pZC53aWRnZXQuQWJzTGlzdFZpZXc7Ci1pbXBvcnQgYW5kcm9pZC53aWRnZXQuQWJzU3Bpbm5lcjsKLWltcG9ydCBhbmRyb2lkLndpZGdldC5BZGFwdGVyVmlldzsKLWltcG9ydCBhbmRyb2lkLndpZGdldC5FeHBhbmRhYmxlTGlzdFZpZXc7Ci1pbXBvcnQgYW5kcm9pZC53aWRnZXQuRnJhbWVMYXlvdXQ7Ci1pbXBvcnQgYW5kcm9pZC53aWRnZXQuTGluZWFyTGF5b3V0OwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0Lkxpc3RWaWV3OwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlF1aWNrQ29udGFjdEJhZGdlOwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlRhYkhvc3Q7Ci1pbXBvcnQgYW5kcm9pZC53aWRnZXQuVGFiSG9zdC5UYWJTcGVjOwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlRhYldpZGdldDsKLQotaW1wb3J0IGphdmEuYXd0LkFscGhhQ29tcG9zaXRlOwotaW1wb3J0IGphdmEuYXd0LkNvbG9yOwotaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzMkQ7Ci1pbXBvcnQgamF2YS5hd3QuaW1hZ2UuQnVmZmVyZWRJbWFnZTsKLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotaW1wb3J0IGphdmEudXRpbC5NYXA7Ci0KLS8qKgotICogQ2xhc3MgaW1wbGVtZW50aW5nIHRoZSByZW5kZXIgc2Vzc2lvbi4KLSAqCi0gKiBBIHNlc3Npb24gaXMgYSBzdGF0ZWZ1bCByZXByZXNlbnRhdGlvbiBvZiBhIGxheW91dCBmaWxlLiBJdCBpcyBpbml0aWFsaXplZCB3aXRoIGRhdGEgY29taW5nCi0gKiB0aHJvdWdoIHRoZSB7QGxpbmsgQnJpZGdlfSBBUEkgdG8gaW5mbGF0ZSB0aGUgbGF5b3V0LiBGdXJ0aGVyIGFjdGlvbnMgYW5kIHJlbmRlcmluZyBjYW4gdGhlbgotICogYmUgZG9uZSBvbiB0aGUgbGF5b3V0LgotICoKLSAqLwotcHVibGljIGNsYXNzIFJlbmRlclNlc3Npb25JbXBsIGV4dGVuZHMgUmVuZGVyQWN0aW9uPFNlc3Npb25QYXJhbXM+IHsKLQotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX1RJVExFX0JBUl9IRUlHSFQgPSAyNTsKLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9TVEFUVVNfQkFSX0hFSUdIVCA9IDI1OwotCi0gICAgLy8gc2NlbmUgc3RhdGUKLSAgICBwcml2YXRlIFJlbmRlclNlc3Npb24gbVNjZW5lOwotICAgIHByaXZhdGUgQnJpZGdlWG1sQmxvY2tQYXJzZXIgbUJsb2NrUGFyc2VyOwotICAgIHByaXZhdGUgQnJpZGdlSW5mbGF0ZXIgbUluZmxhdGVyOwotICAgIHByaXZhdGUgUmVzb3VyY2VWYWx1ZSBtV2luZG93QmFja2dyb3VuZDsKLSAgICBwcml2YXRlIFZpZXdHcm91cCBtVmlld1Jvb3Q7Ci0gICAgcHJpdmF0ZSBGcmFtZUxheW91dCBtQ29udGVudFJvb3Q7Ci0gICAgcHJpdmF0ZSBDYW52YXMgbUNhbnZhczsKLSAgICBwcml2YXRlIGludCBtTWVhc3VyZWRTY3JlZW5XaWR0aCA9IC0xOwotICAgIHByaXZhdGUgaW50IG1NZWFzdXJlZFNjcmVlbkhlaWdodCA9IC0xOwotICAgIHByaXZhdGUgYm9vbGVhbiBtSXNBbHBoYUNoYW5uZWxJbWFnZTsKLSAgICBwcml2YXRlIGJvb2xlYW4gbVdpbmRvd0lzRmxvYXRpbmc7Ci0KLSAgICBwcml2YXRlIGludCBtU3RhdHVzQmFyU2l6ZTsKLSAgICBwcml2YXRlIGludCBtTmF2aWdhdGlvbkJhclNpemU7Ci0gICAgcHJpdmF0ZSBpbnQgbU5hdmlnYXRpb25CYXJPcmllbnRhdGlvbiA9IExpbmVhckxheW91dC5IT1JJWk9OVEFMOwotICAgIHByaXZhdGUgaW50IG1UaXRsZUJhclNpemU7Ci0gICAgcHJpdmF0ZSBpbnQgbUFjdGlvbkJhclNpemU7Ci0KLQotICAgIC8vIGluZm9ybWF0aW9uIGJlaW5nIHJldHVybmVkIHRocm91Z2ggdGhlIEFQSQotICAgIHByaXZhdGUgQnVmZmVyZWRJbWFnZSBtSW1hZ2U7Ci0gICAgcHJpdmF0ZSBMaXN0PFZpZXdJbmZvPiBtVmlld0luZm9MaXN0OwotCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgUG9zdEluZmxhdGVFeGNlcHRpb24gZXh0ZW5kcyBFeGNlcHRpb24gewotICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAxTDsKLQotICAgICAgICBwdWJsaWMgUG9zdEluZmxhdGVFeGNlcHRpb24oU3RyaW5nIG1lc3NhZ2UpIHsKLSAgICAgICAgICAgIHN1cGVyKG1lc3NhZ2UpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhIGxheW91dCBzY2VuZSB3aXRoIGFsbCB0aGUgaW5mb3JtYXRpb24gY29taW5nIGZyb20gdGhlIGxheW91dCBicmlkZ2UgQVBJLgotICAgICAqIDxwPgotICAgICAqIFRoaXMgPGI+bXVzdDwvYj4gYmUgZm9sbG93ZWQgYnkgYSBjYWxsIHRvIHtAbGluayBSZW5kZXJTZXNzaW9uSW1wbCNpbml0KCl9LCB3aGljaCBhY3QgYXMgYQotICAgICAqIGNhbGwgdG8ge0BsaW5rIFJlbmRlclNlc3Npb25JbXBsI2FjcXVpcmUobG9uZyl9Ci0gICAgICoKLSAgICAgKiBAc2VlIExheW91dEJyaWRnZSNjcmVhdGVTY2VuZShjb20uYW5kcm9pZC5sYXlvdXRsaWIuYXBpLlNjZW5lUGFyYW1zKQotICAgICAqLwotICAgIHB1YmxpYyBSZW5kZXJTZXNzaW9uSW1wbChTZXNzaW9uUGFyYW1zIHBhcmFtcykgewotICAgICAgICBzdXBlcihuZXcgU2Vzc2lvblBhcmFtcyhwYXJhbXMpKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBJbml0aWFsaXplcyBhbmQgYWNxdWlyZXMgdGhlIHNjZW5lLCBjcmVhdGluZyB2YXJpb3VzIEFuZHJvaWQgb2JqZWN0cyBzdWNoIGFzIGNvbnRleHQsCi0gICAgICogaW5mbGF0ZXIsIGFuZCBwYXJzZXIuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gdGltZW91dCB0aGUgdGltZSB0byB3YWl0IGlmIGFub3RoZXIgcmVuZGVyaW5nIGlzIGhhcHBlbmluZy4KLSAgICAgKgotICAgICAqIEByZXR1cm4gd2hldGhlciB0aGUgc2NlbmUgd2FzIHByZXBhcmVkCi0gICAgICoKLSAgICAgKiBAc2VlICNhY3F1aXJlKGxvbmcpCi0gICAgICogQHNlZSAjcmVsZWFzZSgpCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFJlc3VsdCBpbml0KGxvbmcgdGltZW91dCkgewotICAgICAgICBSZXN1bHQgcmVzdWx0ID0gc3VwZXIuaW5pdCh0aW1lb3V0KTsKLSAgICAgICAgaWYgKHJlc3VsdC5pc1N1Y2Nlc3MoKSA9PSBmYWxzZSkgewotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotCi0gICAgICAgIFNlc3Npb25QYXJhbXMgcGFyYW1zID0gZ2V0UGFyYW1zKCk7Ci0gICAgICAgIEJyaWRnZUNvbnRleHQgY29udGV4dCA9IGdldENvbnRleHQoKTsKLQotICAgICAgICBSZW5kZXJSZXNvdXJjZXMgcmVzb3VyY2VzID0gZ2V0UGFyYW1zKCkuZ2V0UmVzb3VyY2VzKCk7Ci0gICAgICAgIERpc3BsYXlNZXRyaWNzIG1ldHJpY3MgPSBnZXRDb250ZXh0KCkuZ2V0TWV0cmljcygpOwotCi0gICAgICAgIC8vIHVzZSBkZWZhdWx0IG9mIHRydWUgaW4gY2FzZSBpdCdzIG5vdCBmb3VuZCB0byB1c2UgYWxwaGEgYnkgZGVmYXVsdAotICAgICAgICBtSXNBbHBoYUNoYW5uZWxJbWFnZSAgPSBnZXRCb29sZWFuVGhlbWVWYWx1ZShyZXNvdXJjZXMsCi0gICAgICAgICAgICAgICAgIndpbmRvd0lzRmxvYXRpbmciLCB0cnVlIC8qZGVmYXVsdFZhbHVlKi8pOwotCi0gICAgICAgIG1XaW5kb3dJc0Zsb2F0aW5nID0gZ2V0Qm9vbGVhblRoZW1lVmFsdWUocmVzb3VyY2VzLCAid2luZG93SXNGbG9hdGluZyIsCi0gICAgICAgICAgICAgICAgdHJ1ZSAvKmRlZmF1bHRWYWx1ZSovKTsKLQotICAgICAgICBmaW5kQmFja2dyb3VuZChyZXNvdXJjZXMpOwotICAgICAgICBmaW5kU3RhdHVzQmFyKHJlc291cmNlcywgbWV0cmljcyk7Ci0gICAgICAgIGZpbmRBY3Rpb25CYXIocmVzb3VyY2VzLCBtZXRyaWNzKTsKLSAgICAgICAgZmluZE5hdmlnYXRpb25CYXIocmVzb3VyY2VzLCBtZXRyaWNzKTsKLQotICAgICAgICAvLyBGSVhNRTogZmluZCB0aG9zZSBvdXQsIGFuZCBwb3NzaWJseSBhZGQgdGhlbSB0byB0aGUgcmVuZGVyIHBhcmFtcwotICAgICAgICBib29sZWFuIGhhc05hdmlnYXRpb25CYXIgPSB0cnVlOwotICAgICAgICBJV2luZG93TWFuYWdlciBpd20gPSBuZXcgSVdpbmRvd01hbmFnZXJJbXBsKGdldENvbnRleHQoKS5nZXRDb25maWd1cmF0aW9uKCksCi0gICAgICAgICAgICAgICAgbWV0cmljcywgU3VyZmFjZS5ST1RBVElPTl8wLAotICAgICAgICAgICAgICAgIGhhc05hdmlnYXRpb25CYXIpOwotICAgICAgICBXaW5kb3dNYW5hZ2VyR2xvYmFsX0RlbGVnYXRlLnNldFdpbmRvd01hbmFnZXJTZXJ2aWNlKGl3bSk7Ci0KLSAgICAgICAgLy8gYnVpbGQgdGhlIGluZmxhdGVyIGFuZCBwYXJzZXIuCi0gICAgICAgIG1JbmZsYXRlciA9IG5ldyBCcmlkZ2VJbmZsYXRlcihjb250ZXh0LCBwYXJhbXMuZ2V0UHJvamVjdENhbGxiYWNrKCkpOwotICAgICAgICBjb250ZXh0LnNldEJyaWRnZUluZmxhdGVyKG1JbmZsYXRlcik7Ci0KLSAgICAgICAgbUJsb2NrUGFyc2VyID0gbmV3IEJyaWRnZVhtbEJsb2NrUGFyc2VyKAotICAgICAgICAgICAgICAgIHBhcmFtcy5nZXRMYXlvdXREZXNjcmlwdGlvbigpLCBjb250ZXh0LCBmYWxzZSAvKiBwbGF0Zm9ybVJlc291cmNlRmxhZyAqLyk7Ci0KLSAgICAgICAgcmV0dXJuIFNVQ0NFU1MuY3JlYXRlUmVzdWx0KCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogSW5mbGF0ZXMgdGhlIGxheW91dC4KLSAgICAgKiA8cD4KLSAgICAgKiB7QGxpbmsgI2FjcXVpcmUobG9uZyl9IG11c3QgaGF2ZSBiZWVuIGNhbGxlZCBiZWZvcmUgdGhpcy4KLSAgICAgKgotICAgICAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uIGlmIHRoZSBjdXJyZW50IGNvbnRleHQgaXMgZGlmZmVyZW50IHRoYW4gdGhlIG9uZSBvd25lZCBieQotICAgICAqICAgICAgdGhlIHNjZW5lLCBvciBpZiB7QGxpbmsgI2luaXQobG9uZyl9IHdhcyBub3QgY2FsbGVkLgotICAgICAqLwotICAgIHB1YmxpYyBSZXN1bHQgaW5mbGF0ZSgpIHsKLSAgICAgICAgY2hlY2tMb2NrKCk7Ci0KLSAgICAgICAgdHJ5IHsKLQotICAgICAgICAgICAgU2Vzc2lvblBhcmFtcyBwYXJhbXMgPSBnZXRQYXJhbXMoKTsKLSAgICAgICAgICAgIEhhcmR3YXJlQ29uZmlnIGhhcmR3YXJlQ29uZmlnID0gcGFyYW1zLmdldEhhcmR3YXJlQ29uZmlnKCk7Ci0gICAgICAgICAgICBCcmlkZ2VDb250ZXh0IGNvbnRleHQgPSBnZXRDb250ZXh0KCk7Ci0gICAgICAgICAgICBib29sZWFuIGlzUnRsID0gQnJpZGdlLmlzTG9jYWxlUnRsKHBhcmFtcy5nZXRMb2NhbGUoKSk7Ci0gICAgICAgICAgICBpbnQgZGlyZWN0aW9uID0gaXNSdGwgPyBWaWV3LkxBWU9VVF9ESVJFQ1RJT05fUlRMIDogVmlldy5MQVlPVVRfRElSRUNUSU9OX0xUUjsKLQotICAgICAgICAgICAgLy8gdGhlIHZpZXcgZ3JvdXAgdGhhdCByZWNlaXZlcyB0aGUgd2luZG93IGJhY2tncm91bmQuCi0gICAgICAgICAgICBWaWV3R3JvdXAgYmFja2dyb3VuZFZpZXcgPSBudWxsOwotCi0gICAgICAgICAgICBpZiAobVdpbmRvd0lzRmxvYXRpbmcgfHwgcGFyYW1zLmlzRm9yY2VOb0RlY29yKCkpIHsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kVmlldyA9IG1WaWV3Um9vdCA9IG1Db250ZW50Um9vdCA9IG5ldyBGcmFtZUxheW91dChjb250ZXh0KTsKLSAgICAgICAgICAgICAgICBtVmlld1Jvb3Quc2V0TGF5b3V0RGlyZWN0aW9uKGRpcmVjdGlvbik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChoYXNTb2Z0d2FyZUJ1dHRvbnMoKSAmJiBtTmF2aWdhdGlvbkJhck9yaWVudGF0aW9uID09IExpbmVhckxheW91dC5WRVJUSUNBTCkgewotICAgICAgICAgICAgICAgICAgICAvKgotICAgICAgICAgICAgICAgICAgICAgKiBUaGlzIGlzIGEgc3BlY2lhbCBjYXNlIHdoZXJlIHRoZSBuYXZpZ2F0aW9uIGJhciBpcyBvbiB0aGUgcmlnaHQuCi0gICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLSsKLSAgICAgICAgICAgICAgICAgICAgICAgfCBTdGF0dXMgYmFyIChhbHdheXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgfAotICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgICB8Ci0gICAgICAgICAgICAgICAgICAgICAgIHwgKExheW91dCB3aXRoIGJhY2tncm91bmQgZHJhd2FibGUpICAgICAgICAgICAgICAgfCAgIHwKLSAgICAgICAgICAgICAgICAgICAgICAgfCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8ICAgfAotICAgICAgICAgICAgICAgICAgICAgICB8IHwgVGl0bGUvQWN0aW9uIGJhciAob3B0aW9uYWwpICAgICAgICAgICAgICAgICB8IHwgICB8Ci0gICAgICAgICAgICAgICAgICAgICAgIHwgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfCAgIHwKLSAgICAgICAgICAgICAgICAgICAgICAgfCB8IENvbnRlbnQsIHZlcnRpY2FsIGV4dGVuZGluZyAgICAgICAgICAgICAgICAgfCB8ICAgfAotICAgICAgICAgICAgICAgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHwgICB8Ci0gICAgICAgICAgICAgICAgICAgICAgIHwgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfCAgIHwKLSAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tKwotCi0gICAgICAgICAgICAgICAgICAgICAgIFNvIHdlIGNyZWF0ZSBhIGhvcml6b250YWwgbGF5b3V0LCB3aXRoIHRoZSBuYXYgYmFyIG9uIHRoZSByaWdodCwKLSAgICAgICAgICAgICAgICAgICAgICAgYW5kIHRoZSBsZWZ0IHBhcnQgaXMgdGhlIG5vcm1hbCBsYXlvdXQgYmVsb3cgd2l0aG91dCB0aGUgbmF2IGJhciBhdAotICAgICAgICAgICAgICAgICAgICAgICB0aGUgYm90dG9tCi0gICAgICAgICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgICAgICBMaW5lYXJMYXlvdXQgdG9wTGF5b3V0ID0gbmV3IExpbmVhckxheW91dChjb250ZXh0KTsKLSAgICAgICAgICAgICAgICAgICAgdG9wTGF5b3V0LnNldExheW91dERpcmVjdGlvbihkaXJlY3Rpb24pOwotICAgICAgICAgICAgICAgICAgICBtVmlld1Jvb3QgPSB0b3BMYXlvdXQ7Ci0gICAgICAgICAgICAgICAgICAgIHRvcExheW91dC5zZXRPcmllbnRhdGlvbihMaW5lYXJMYXlvdXQuSE9SSVpPTlRBTCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIE5hdmlnYXRpb25CYXIgbmF2aWdhdGlvbkJhciA9IG5ldyBOYXZpZ2F0aW9uQmFyKGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlQ29uZmlnLmdldERlbnNpdHkoKSwgTGluZWFyTGF5b3V0LlZFUlRJQ0FMLCBpc1J0bCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmlzUnRsU3VwcG9ydGVkKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbkJhci5zZXRMYXlvdXRQYXJhbXMoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMaW5lYXJMYXlvdXQuTGF5b3V0UGFyYW1zKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1OYXZpZ2F0aW9uQmFyU2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRQYXJhbXMuTUFUQ0hfUEFSRU5UKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0b3BMYXlvdXQuYWRkVmlldyhuYXZpZ2F0aW9uQmFyKTsKLSAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoWG1sUHVsbFBhcnNlckV4Y2VwdGlvbiBlKSB7Ci0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgICAgICogd2UncmUgY3JlYXRpbmcgdGhlIGZvbGxvd2luZyBsYXlvdXQKLSAgICAgICAgICAgICAgICAgKgotICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICAgICAgICAgICAgICAgICAgIHwgU3RhdHVzIGJhciAoYWx3YXlzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICAgICAgICAgICAgICAgICAgIHwgKExheW91dCB3aXRoIGJhY2tncm91bmQgZHJhd2FibGUpICAgICAgICAgICAgICAgfAotICAgICAgICAgICAgICAgICAgIHwgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfAotICAgICAgICAgICAgICAgICAgIHwgfCBUaXRsZS9BY3Rpb24gYmFyIChvcHRpb25hbCkgICAgICAgICAgICAgICAgIHwgfAotICAgICAgICAgICAgICAgICAgIHwgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfAotICAgICAgICAgICAgICAgICAgIHwgfCBDb250ZW50LCB2ZXJ0aWNhbCBleHRlbmRpbmcgICAgICAgICAgICAgICAgIHwgfAotICAgICAgICAgICAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgfAotICAgICAgICAgICAgICAgICAgIHwgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfAotICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICAgICAgICAgICAgICAgICAgIHwgTmF2aWdhdGlvbiBiYXIgZm9yIHNvZnQgYnV0dG9ucywgbWF5YmUgc2VlIGFib3ZlfAotICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCi0gICAgICAgICAgICAgICAgICovCi0KLSAgICAgICAgICAgICAgICBMaW5lYXJMYXlvdXQgdG9wTGF5b3V0ID0gbmV3IExpbmVhckxheW91dChjb250ZXh0KTsKLSAgICAgICAgICAgICAgICB0b3BMYXlvdXQuc2V0T3JpZW50YXRpb24oTGluZWFyTGF5b3V0LlZFUlRJQ0FMKTsKLSAgICAgICAgICAgICAgICB0b3BMYXlvdXQuc2V0TGF5b3V0RGlyZWN0aW9uKGRpcmVjdGlvbik7Ci0gICAgICAgICAgICAgICAgLy8gaWYgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIGEgdmlldyByb290IHRoaXMgaXMgaXQKLSAgICAgICAgICAgICAgICBpZiAobVZpZXdSb290ID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgbVZpZXdSb290ID0gdG9wTGF5b3V0OwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIExpbmVhckxheW91dC5MYXlvdXRQYXJhbXMgbGF5b3V0UGFyYW1zID0gbmV3IExpbmVhckxheW91dC5MYXlvdXRQYXJhbXMoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0UGFyYW1zLldSQVBfQ09OVEVOVCwgTGF5b3V0UGFyYW1zLk1BVENIX1BBUkVOVCk7Ci0gICAgICAgICAgICAgICAgICAgIGxheW91dFBhcmFtcy53ZWlnaHQgPSAxOwotICAgICAgICAgICAgICAgICAgICB0b3BMYXlvdXQuc2V0TGF5b3V0UGFyYW1zKGxheW91dFBhcmFtcyk7Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgY2FzZSBvZiBzb2Z0IGJ1dHRvbnMgKyB2ZXJ0aWNhbCBiYXIuCi0gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgdG9wIGxheW91dCBpcyB0aGUgZmlyc3QgbGF5b3V0IGluIHRoZSBob3Jpem9udGFsIGxheW91dC4gc2VlIGFib3ZlKQotICAgICAgICAgICAgICAgICAgICBpZiAoaXNSdGwgJiYgcGFyYW1zLmlzUnRsU3VwcG9ydGVkKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIFJUTCBpcyBlbmFibGVkLCBsYXlvdXRsaWIgd2lsbCBtaXJyb3IgdGhlIGxheW91dHMuIFNvLCBhZGQgdGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0b3BMYXlvdXQgdG8gdGhlIHJpZ2h0IG9mIE5hdmlnYXRpb24gQmFyIGFuZCBsYXlvdXRsaWIgd2lsbCBkcmF3IGl0Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0byB0aGUgbGVmdC4KLSAgICAgICAgICAgICAgICAgICAgICAgIG1WaWV3Um9vdC5hZGRWaWV3KHRvcExheW91dCk7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGQgdGhlIHRvcCBsYXlvdXQgdG8gdGhlIGxlZnQgb2YgdGhlIE5hdmlnYXRpb24gQmFyLgotICAgICAgICAgICAgICAgICAgICAgICAgbVZpZXdSb290LmFkZFZpZXcodG9wTGF5b3V0LCAwKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChtU3RhdHVzQmFyU2l6ZSA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gc3lzdGVtIGJhcgotICAgICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzQmFyIHN5c3RlbUJhciA9IG5ldyBTdGF0dXNCYXIoY29udGV4dCwgaGFyZHdhcmVDb25maWcuZ2V0RGVuc2l0eSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24sIHBhcmFtcy5pc1J0bFN1cHBvcnRlZCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN5c3RlbUJhci5zZXRMYXlvdXRQYXJhbXMoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMaW5lYXJMYXlvdXQuTGF5b3V0UGFyYW1zKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExheW91dFBhcmFtcy5NQVRDSF9QQVJFTlQsIG1TdGF0dXNCYXJTaXplKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0b3BMYXlvdXQuYWRkVmlldyhzeXN0ZW1CYXIpOwotICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChYbWxQdWxsUGFyc2VyRXhjZXB0aW9uIGUpIHsKLQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgTGluZWFyTGF5b3V0IGJhY2tncm91bmRMYXlvdXQgPSBuZXcgTGluZWFyTGF5b3V0KGNvbnRleHQpOwotICAgICAgICAgICAgICAgIGJhY2tncm91bmRWaWV3ID0gYmFja2dyb3VuZExheW91dDsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kTGF5b3V0LnNldE9yaWVudGF0aW9uKExpbmVhckxheW91dC5WRVJUSUNBTCk7Ci0gICAgICAgICAgICAgICAgTGluZWFyTGF5b3V0LkxheW91dFBhcmFtcyBsYXlvdXRQYXJhbXMgPSBuZXcgTGluZWFyTGF5b3V0LkxheW91dFBhcmFtcygKLSAgICAgICAgICAgICAgICAgICAgICAgIExheW91dFBhcmFtcy5NQVRDSF9QQVJFTlQsIExheW91dFBhcmFtcy5XUkFQX0NPTlRFTlQpOwotICAgICAgICAgICAgICAgIGxheW91dFBhcmFtcy53ZWlnaHQgPSAxOwotICAgICAgICAgICAgICAgIGJhY2tncm91bmRMYXlvdXQuc2V0TGF5b3V0UGFyYW1zKGxheW91dFBhcmFtcyk7Ci0gICAgICAgICAgICAgICAgdG9wTGF5b3V0LmFkZFZpZXcoYmFja2dyb3VuZExheW91dCk7Ci0KLQotICAgICAgICAgICAgICAgIC8vIGlmIHRoZSB0aGVtZSBzYXlzIG5vIHRpdGxlL2FjdGlvbiBiYXIsIHRoZW4gdGhlIHNpemUgd2lsbCBiZSAwCi0gICAgICAgICAgICAgICAgaWYgKG1BY3Rpb25CYXJTaXplID4gMCkgewotICAgICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgRmFrZUFjdGlvbkJhciBhY3Rpb25CYXIgPSBuZXcgRmFrZUFjdGlvbkJhcihjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXJkd2FyZUNvbmZpZy5nZXREZW5zaXR5KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5nZXRBcHBMYWJlbCgpLCBwYXJhbXMuZ2V0QXBwSWNvbigpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbkJhci5zZXRMYXlvdXRQYXJhbXMoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMaW5lYXJMYXlvdXQuTGF5b3V0UGFyYW1zKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExheW91dFBhcmFtcy5NQVRDSF9QQVJFTlQsIG1BY3Rpb25CYXJTaXplKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kTGF5b3V0LmFkZFZpZXcoYWN0aW9uQmFyKTsKLSAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoWG1sUHVsbFBhcnNlckV4Y2VwdGlvbiBlKSB7Ci0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobVRpdGxlQmFyU2l6ZSA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlQmFyIHRpdGxlQmFyID0gbmV3IFRpdGxlQmFyKGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlQ29uZmlnLmdldERlbnNpdHkoKSwgcGFyYW1zLmdldEFwcExhYmVsKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGVCYXIuc2V0TGF5b3V0UGFyYW1zKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGluZWFyTGF5b3V0LkxheW91dFBhcmFtcygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRQYXJhbXMuTUFUQ0hfUEFSRU5ULCBtVGl0bGVCYXJTaXplKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kTGF5b3V0LmFkZFZpZXcodGl0bGVCYXIpOwotICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChYbWxQdWxsUGFyc2VyRXhjZXB0aW9uIGUpIHsKLQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gY29udGVudCBmcmFtZQotICAgICAgICAgICAgICAgIG1Db250ZW50Um9vdCA9IG5ldyBGcmFtZUxheW91dChjb250ZXh0KTsKLSAgICAgICAgICAgICAgICBsYXlvdXRQYXJhbXMgPSBuZXcgTGluZWFyTGF5b3V0LkxheW91dFBhcmFtcygKLSAgICAgICAgICAgICAgICAgICAgICAgIExheW91dFBhcmFtcy5NQVRDSF9QQVJFTlQsIExheW91dFBhcmFtcy5XUkFQX0NPTlRFTlQpOwotICAgICAgICAgICAgICAgIGxheW91dFBhcmFtcy53ZWlnaHQgPSAxOwotICAgICAgICAgICAgICAgIG1Db250ZW50Um9vdC5zZXRMYXlvdXRQYXJhbXMobGF5b3V0UGFyYW1zKTsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kTGF5b3V0LmFkZFZpZXcobUNvbnRlbnRSb290KTsKLQotICAgICAgICAgICAgICAgIGlmIChtTmF2aWdhdGlvbkJhck9yaWVudGF0aW9uID09IExpbmVhckxheW91dC5IT1JJWk9OVEFMICYmCi0gICAgICAgICAgICAgICAgICAgICAgICBtTmF2aWdhdGlvbkJhclNpemUgPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIHN5c3RlbSBiYXIKLSAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIE5hdmlnYXRpb25CYXIgbmF2aWdhdGlvbkJhciA9IG5ldyBOYXZpZ2F0aW9uQmFyKGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlQ29uZmlnLmdldERlbnNpdHkoKSwgTGluZWFyTGF5b3V0LkhPUklaT05UQUwsIGlzUnRsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuaXNSdGxTdXBwb3J0ZWQoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uQmFyLnNldExheW91dFBhcmFtcygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExpbmVhckxheW91dC5MYXlvdXRQYXJhbXMoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0UGFyYW1zLk1BVENIX1BBUkVOVCwgbU5hdmlnYXRpb25CYXJTaXplKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0b3BMYXlvdXQuYWRkVmlldyhuYXZpZ2F0aW9uQmFyKTsKLSAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoWG1sUHVsbFBhcnNlckV4Y2VwdGlvbiBlKSB7Ci0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotCi0gICAgICAgICAgICAvLyBTZXRzIHRoZSBwcm9qZWN0IGNhbGxiYWNrIChjdXN0b20gdmlldyBsb2FkZXIpIHRvIHRoZSBmcmFnbWVudCBkZWxlZ2F0ZSBzbyB0aGF0Ci0gICAgICAgICAgICAvLyBpdCBjYW4gaW5zdGFudGlhdGUgdGhlIGN1c3RvbSBGcmFnbWVudC4KLSAgICAgICAgICAgIEZyYWdtZW50X0RlbGVnYXRlLnNldFByb2plY3RDYWxsYmFjayhwYXJhbXMuZ2V0UHJvamVjdENhbGxiYWNrKCkpOwotCi0gICAgICAgICAgICBWaWV3IHZpZXcgPSBtSW5mbGF0ZXIuaW5mbGF0ZShtQmxvY2tQYXJzZXIsIG1Db250ZW50Um9vdCk7Ci0KLSAgICAgICAgICAgIC8vIGRvbmUgd2l0aCB0aGUgcGFyc2VyLCBwb3AgaXQuCi0gICAgICAgICAgICBjb250ZXh0LnBvcFBhcnNlcigpOwotCi0gICAgICAgICAgICBGcmFnbWVudF9EZWxlZ2F0ZS5zZXRQcm9qZWN0Q2FsbGJhY2sobnVsbCk7Ci0KLSAgICAgICAgICAgIC8vIHNldCB0aGUgQXR0YWNoSW5mbyBvbiB0aGUgcm9vdCB2aWV3LgotICAgICAgICAgICAgQXR0YWNoSW5mb19BY2Nlc3Nvci5zZXRBdHRhY2hJbmZvKG1WaWV3Um9vdCk7Ci0KLSAgICAgICAgICAgIC8vIHBvc3QtaW5mbGF0ZSBwcm9jZXNzLiBGb3Igbm93IHRoaXMgc3VwcG9ydHMgVGFiSG9zdC9UYWJXaWRnZXQKLSAgICAgICAgICAgIHBvc3RJbmZsYXRlUHJvY2Vzcyh2aWV3LCBwYXJhbXMuZ2V0UHJvamVjdENhbGxiYWNrKCkpOwotCi0gICAgICAgICAgICAvLyBnZXQgdGhlIGJhY2tncm91bmQgZHJhd2FibGUKLSAgICAgICAgICAgIGlmIChtV2luZG93QmFja2dyb3VuZCAhPSBudWxsICYmIGJhY2tncm91bmRWaWV3ICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBEcmF3YWJsZSBkID0gUmVzb3VyY2VIZWxwZXIuZ2V0RHJhd2FibGUobVdpbmRvd0JhY2tncm91bmQsIGNvbnRleHQpOwotICAgICAgICAgICAgICAgIGJhY2tncm91bmRWaWV3LnNldEJhY2tncm91bmQoZCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBTVUNDRVNTLmNyZWF0ZVJlc3VsdCgpOwotICAgICAgICB9IGNhdGNoIChQb3N0SW5mbGF0ZUV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICByZXR1cm4gRVJST1JfSU5GTEFUSU9OLmNyZWF0ZVJlc3VsdChlLmdldE1lc3NhZ2UoKSwgZSk7Ci0gICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSBlKSB7Ci0gICAgICAgICAgICAvLyBnZXQgdGhlIHJlYWwgY2F1c2Ugb2YgdGhlIGV4Y2VwdGlvbi4KLSAgICAgICAgICAgIFRocm93YWJsZSB0ID0gZTsKLSAgICAgICAgICAgIHdoaWxlICh0LmdldENhdXNlKCkgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHQgPSB0LmdldENhdXNlKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBFUlJPUl9JTkZMQVRJT04uY3JlYXRlUmVzdWx0KHQuZ2V0TWVzc2FnZSgpLCB0KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlbmRlcnMgdGhlIHNjZW5lLgotICAgICAqIDxwPgotICAgICAqIHtAbGluayAjYWNxdWlyZShsb25nKX0gbXVzdCBoYXZlIGJlZW4gY2FsbGVkIGJlZm9yZSB0aGlzLgotICAgICAqCi0gICAgICogQHBhcmFtIGZyZXNoUmVuZGVyIHdoZXRoZXIgdGhlIHJlbmRlciBpcyBhIG5ldyBvbmUgYW5kIHNob3VsZCBlcmFzZSB0aGUgZXhpc3RpbmcgYml0bWFwIChpbgotICAgICAqICAgICAgdGhlIGNhc2Ugd2hlcmUgYml0bWFwcyBhcmUgcmV1c2VkKS4gVGhpcyBpcyB0eXBpY2FsbHkgbmVlZGVkIHdoZW4gbm90IHBsYXlpbmcKLSAgICAgKiAgICAgIGFuaW1hdGlvbnMuKQotICAgICAqCi0gICAgICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24gaWYgdGhlIGN1cnJlbnQgY29udGV4dCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgb25lIG93bmVkIGJ5Ci0gICAgICogICAgICB0aGUgc2NlbmUsIG9yIGlmIHtAbGluayAjYWNxdWlyZShsb25nKX0gd2FzIG5vdCBjYWxsZWQuCi0gICAgICoKLSAgICAgKiBAc2VlIFJlbmRlclBhcmFtcyNnZXRSZW5kZXJpbmdNb2RlKCkKLSAgICAgKiBAc2VlIFJlbmRlclNlc3Npb24jcmVuZGVyKGxvbmcpCi0gICAgICovCi0gICAgcHVibGljIFJlc3VsdCByZW5kZXIoYm9vbGVhbiBmcmVzaFJlbmRlcikgewotICAgICAgICBjaGVja0xvY2soKTsKLQotICAgICAgICBTZXNzaW9uUGFyYW1zIHBhcmFtcyA9IGdldFBhcmFtcygpOwotCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBpZiAobVZpZXdSb290ID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gRVJST1JfTk9UX0lORkxBVEVELmNyZWF0ZVJlc3VsdCgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBwYXJhbXMuZ2V0UmVuZGVyaW5nTW9kZSgpOwotICAgICAgICAgICAgSGFyZHdhcmVDb25maWcgaGFyZHdhcmVDb25maWcgPSBwYXJhbXMuZ2V0SGFyZHdhcmVDb25maWcoKTsKLQotICAgICAgICAgICAgLy8gb25seSBkbyB0aGUgc2NyZWVuIG1lYXN1cmUgd2hlbiBuZWVkZWQuCi0gICAgICAgICAgICBib29sZWFuIG5ld1JlbmRlclNpemUgPSBmYWxzZTsKLSAgICAgICAgICAgIGlmIChtTWVhc3VyZWRTY3JlZW5XaWR0aCA9PSAtMSkgewotICAgICAgICAgICAgICAgIG5ld1JlbmRlclNpemUgPSB0cnVlOwotICAgICAgICAgICAgICAgIG1NZWFzdXJlZFNjcmVlbldpZHRoID0gaGFyZHdhcmVDb25maWcuZ2V0U2NyZWVuV2lkdGgoKTsKLSAgICAgICAgICAgICAgICBtTWVhc3VyZWRTY3JlZW5IZWlnaHQgPSBoYXJkd2FyZUNvbmZpZy5nZXRTY3JlZW5IZWlnaHQoKTsKLQotICAgICAgICAgICAgICAgIGlmIChyZW5kZXJpbmdNb2RlICE9IFJlbmRlcmluZ01vZGUuTk9STUFMKSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCB3aWR0aE1lYXN1cmVTcGVjTW9kZSA9IHJlbmRlcmluZ01vZGUuaXNIb3JpekV4cGFuZCgpID8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZWFzdXJlU3BlYy5VTlNQRUNJRklFRCAvLyB0aGlzIGxldHMgdXMga25vdyB0aGUgYWN0dWFsIG5lZWRlZCBzaXplCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBNZWFzdXJlU3BlYy5FWEFDVExZOwotICAgICAgICAgICAgICAgICAgICBpbnQgaGVpZ2h0TWVhc3VyZVNwZWNNb2RlID0gcmVuZGVyaW5nTW9kZS5pc1ZlcnRFeHBhbmQoKSA/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVhc3VyZVNwZWMuVU5TUEVDSUZJRUQgLy8gdGhpcyBsZXRzIHVzIGtub3cgdGhlIGFjdHVhbCBuZWVkZWQgc2l6ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogTWVhc3VyZVNwZWMuRVhBQ1RMWTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBXZSB1c2VkIHRvIGNvbXBhcmUgdGhlIG1lYXN1cmVkIHNpemUgb2YgdGhlIGNvbnRlbnQgdG8gdGhlIHNjcmVlbiBzaXplIGJ1dAotICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGRvZXMgbm90IHdvcmsgYW55bW9yZSBkdWUgdG8gdGhlIDIgZm9sbG93aW5nIGlzc3VlczoKLSAgICAgICAgICAgICAgICAgICAgLy8gLSBJZiB0aGUgY29udGVudCBpcyBpbiBhIGRlY29yIChzeXN0ZW0gYmFyLCB0aXRsZS9hY3Rpb24gYmFyKSwgdGhlIHJvb3QgdmlldwotICAgICAgICAgICAgICAgICAgICAvLyAgIHdpbGwgbm90IHJlc2l6ZSBldmVuIHdpdGggdGhlIFVOU1BFQ0lGSUVEIGJlY2F1c2Ugb2YgdGhlIGVtYmVkZGVkIGxheW91dC4KLSAgICAgICAgICAgICAgICAgICAgLy8gLSBJZiB0aGVyZSBpcyBubyBkZWNvciwgYnV0IGEgZGlhbG9nIGZyYW1lLCB0aGVuIHRoZSBkaWFsb2cgcGFkZGluZyBwcmV2ZW50cwotICAgICAgICAgICAgICAgICAgICAvLyAgIGNvbXBhcmluZyB0aGUgc2l6ZSBvZiB0aGUgY29udGVudCB0byB0aGUgc2NyZWVuIGZyYW1lIChhcyBpdCB3b3VsZCBub3QKLSAgICAgICAgICAgICAgICAgICAgLy8gICB0YWtlIGludG8gYWNjb3VudCB0aGUgZGlhbG9nIHBhZGRpbmcpLgotCi0gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBzb2x1dGlvbiBpcyB0byBmaXJzdCBnZXQgdGhlIGNvbnRlbnQgc2l6ZSBpbiBhIG5vcm1hbCByZW5kZXJpbmcsIGluc2lkZQotICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZGVjb3Igb3IgdGhlIGRpYWxvZyBwYWRkaW5nLgotICAgICAgICAgICAgICAgICAgICAvLyBUaGVuIG1lYXN1cmUgb25seSB0aGUgY29udGVudCB3aXRoIFVOU1BFQ0lGSUVEIHRvIHNlZSB0aGUgc2l6ZSBkaWZmZXJlbmNlCi0gICAgICAgICAgICAgICAgICAgIC8vIGFuZCBhcHBseSB0aGlzIHRvIHRoZSBzY3JlZW4gc2l6ZS4KLQotICAgICAgICAgICAgICAgICAgICAvLyBmaXJzdCBtZWFzdXJlIHRoZSBmdWxsIGxheW91dCwgd2l0aCBFWEFDVExZIHRvIGdldCB0aGUgc2l6ZSBvZiB0aGUKLSAgICAgICAgICAgICAgICAgICAgLy8gY29udGVudCBhcyBpdCBpcyBpbnNpZGUgdGhlIGRlY29yL2RpYWxvZwotICAgICAgICAgICAgICAgICAgICBQYWlyPEludGVnZXIsIEludGVnZXI+IGV4YWN0TWVhc3VyZSA9IG1lYXN1cmVWaWV3KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1WaWV3Um9vdCwgbUNvbnRlbnRSb290LmdldENoaWxkQXQoMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbU1lYXN1cmVkU2NyZWVuV2lkdGgsIE1lYXN1cmVTcGVjLkVYQUNUTFksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbU1lYXN1cmVkU2NyZWVuSGVpZ2h0LCBNZWFzdXJlU3BlYy5FWEFDVExZKTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBub3cgbWVhc3VyZSB0aGUgY29udGVudCBvbmx5IHVzaW5nIFVOU1BFQ0lGSUVEICh3aGVyZSBhcHBsaWNhYmxlLCBiYXNlZCBvbgotICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcmVuZGVyaW5nIG1vZGUpLiBUaGlzIHdpbGwgZ2l2ZSB1cyB0aGUgc2l6ZSB0aGUgY29udGVudCBuZWVkcy4KLSAgICAgICAgICAgICAgICAgICAgUGFpcjxJbnRlZ2VyLCBJbnRlZ2VyPiByZXN1bHQgPSBtZWFzdXJlVmlldygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtQ29udGVudFJvb3QsIG1Db250ZW50Um9vdC5nZXRDaGlsZEF0KDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1NZWFzdXJlZFNjcmVlbldpZHRoLCB3aWR0aE1lYXN1cmVTcGVjTW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtTWVhc3VyZWRTY3JlZW5IZWlnaHQsIGhlaWdodE1lYXN1cmVTcGVjTW9kZSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gbm93IGxvb2sgYXQgdGhlIGRpZmZlcmVuY2UgYW5kIGFkZCB3aGF0IGlzIG5lZWRlZC4KLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlbmRlcmluZ01vZGUuaXNIb3JpekV4cGFuZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWVhc3VyZWRXaWR0aCA9IGV4YWN0TWVhc3VyZS5nZXRGaXJzdCgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5lZWRlZFdpZHRoID0gcmVzdWx0LmdldEZpcnN0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmVlZGVkV2lkdGggPiBtZWFzdXJlZFdpZHRoKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbU1lYXN1cmVkU2NyZWVuV2lkdGggKz0gbmVlZGVkV2lkdGggLSBtZWFzdXJlZFdpZHRoOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlbmRlcmluZ01vZGUuaXNWZXJ0RXhwYW5kKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBtZWFzdXJlZEhlaWdodCA9IGV4YWN0TWVhc3VyZS5nZXRTZWNvbmQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZWVkZWRIZWlnaHQgPSByZXN1bHQuZ2V0U2Vjb25kKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmVlZGVkSGVpZ2h0ID4gbWVhc3VyZWRIZWlnaHQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtTWVhc3VyZWRTY3JlZW5IZWlnaHQgKz0gbmVlZGVkSGVpZ2h0IC0gbWVhc3VyZWRIZWlnaHQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIG1lYXN1cmUgYWdhaW4gd2l0aCB0aGUgc2l6ZSB3ZSBuZWVkCi0gICAgICAgICAgICAvLyBUaGlzIG11c3QgYWx3YXlzIGJlIGRvbmUgYmVmb3JlIHRoZSBjYWxsIHRvIGxheW91dAotICAgICAgICAgICAgbWVhc3VyZVZpZXcobVZpZXdSb290LCBudWxsIC8qbWVhc3VyZWRWaWV3Ki8sCi0gICAgICAgICAgICAgICAgICAgIG1NZWFzdXJlZFNjcmVlbldpZHRoLCBNZWFzdXJlU3BlYy5FWEFDVExZLAotICAgICAgICAgICAgICAgICAgICBtTWVhc3VyZWRTY3JlZW5IZWlnaHQsIE1lYXN1cmVTcGVjLkVYQUNUTFkpOwotCi0gICAgICAgICAgICAvLyBub3cgZG8gdGhlIGxheW91dC4KLSAgICAgICAgICAgIG1WaWV3Um9vdC5sYXlvdXQoMCwgMCwgbU1lYXN1cmVkU2NyZWVuV2lkdGgsIG1NZWFzdXJlZFNjcmVlbkhlaWdodCk7Ci0KLSAgICAgICAgICAgIGlmIChwYXJhbXMuaXNMYXlvdXRPbmx5KCkpIHsKLSAgICAgICAgICAgICAgICAvLyBkZWxldGUgdGhlIGNhbnZhcyBhbmQgaW1hZ2UgdG8gcmVzZXQgdGhlbSBvbiB0aGUgbmV4dCBmdWxsIHJlbmRlcmluZwotICAgICAgICAgICAgICAgIG1JbWFnZSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgbUNhbnZhcyA9IG51bGw7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIEF0dGFjaEluZm9fQWNjZXNzb3IuZGlzcGF0Y2hPblByZURyYXcobVZpZXdSb290KTsKLQotICAgICAgICAgICAgICAgIC8vIGRyYXcgdGhlIHZpZXdzCi0gICAgICAgICAgICAgICAgLy8gY3JlYXRlIHRoZSBCdWZmZXJlZEltYWdlIGludG8gd2hpY2ggdGhlIGxheW91dCB3aWxsIGJlIHJlbmRlcmVkLgotICAgICAgICAgICAgICAgIGJvb2xlYW4gbmV3SW1hZ2UgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBpZiAobmV3UmVuZGVyU2l6ZSB8fCBtQ2FudmFzID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtcy5nZXRJbWFnZUZhY3RvcnkoKSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtSW1hZ2UgPSBwYXJhbXMuZ2V0SW1hZ2VGYWN0b3J5KCkuZ2V0SW1hZ2UoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1NZWFzdXJlZFNjcmVlbldpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtTWVhc3VyZWRTY3JlZW5IZWlnaHQpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgbUltYWdlID0gbmV3IEJ1ZmZlcmVkSW1hZ2UoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1NZWFzdXJlZFNjcmVlbldpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtTWVhc3VyZWRTY3JlZW5IZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkSW1hZ2UuVFlQRV9JTlRfQVJHQik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBuZXdJbWFnZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1zLmlzQmdDb2xvck92ZXJyaWRkZW4oKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2luY2Ugd2Ugb3ZlcnJpZGUgdGhlIGNvbnRlbnQsIGl0J3MgdGhlIHNhbWUgYXMgaWYgaXQgd2FzIGEgbmV3IGltYWdlLgotICAgICAgICAgICAgICAgICAgICAgICAgbmV3SW1hZ2UgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnYyA9IG1JbWFnZS5jcmVhdGVHcmFwaGljcygpOwotICAgICAgICAgICAgICAgICAgICAgICAgZ2Muc2V0Q29sb3IobmV3IENvbG9yKHBhcmFtcy5nZXRPdmVycmlkZUJnQ29sb3IoKSwgdHJ1ZSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgZ2Muc2V0Q29tcG9zaXRlKEFscGhhQ29tcG9zaXRlLlNyYyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnYy5maWxsUmVjdCgwLCAwLCBtTWVhc3VyZWRTY3JlZW5XaWR0aCwgbU1lYXN1cmVkU2NyZWVuSGVpZ2h0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdjLmRpc3Bvc2UoKTsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhbiBBbmRyb2lkIGJpdG1hcCBhcm91bmQgdGhlIEJ1ZmZlcmVkSW1hZ2UKLSAgICAgICAgICAgICAgICAgICAgQml0bWFwIGJpdG1hcCA9IEJpdG1hcF9EZWxlZ2F0ZS5jcmVhdGVCaXRtYXAobUltYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgLyppc011dGFibGUqLywgaGFyZHdhcmVDb25maWcuZ2V0RGVuc2l0eSgpKTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBDYW52YXMgYXJvdW5kIHRoZSBBbmRyb2lkIGJpdG1hcAotICAgICAgICAgICAgICAgICAgICBtQ2FudmFzID0gbmV3IENhbnZhcyhiaXRtYXApOwotICAgICAgICAgICAgICAgICAgICBtQ2FudmFzLnNldERlbnNpdHkoaGFyZHdhcmVDb25maWcuZ2V0RGVuc2l0eSgpLmdldERwaVZhbHVlKCkpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChmcmVzaFJlbmRlciAmJiBuZXdJbWFnZSA9PSBmYWxzZSkgewotICAgICAgICAgICAgICAgICAgICBHcmFwaGljczJEIGdjID0gbUltYWdlLmNyZWF0ZUdyYXBoaWNzKCk7Ci0gICAgICAgICAgICAgICAgICAgIGdjLnNldENvbXBvc2l0ZShBbHBoYUNvbXBvc2l0ZS5TcmMpOwotCi0gICAgICAgICAgICAgICAgICAgIGdjLnNldENvbG9yKG5ldyBDb2xvcigweDAwMDAwMDAwLCB0cnVlKSk7Ci0gICAgICAgICAgICAgICAgICAgIGdjLmZpbGxSZWN0KDAsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbU1lYXN1cmVkU2NyZWVuV2lkdGgsIG1NZWFzdXJlZFNjcmVlbkhlaWdodCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gZG9uZQotICAgICAgICAgICAgICAgICAgICBnYy5kaXNwb3NlKCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgbVZpZXdSb290LmRyYXcobUNhbnZhcyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1WaWV3SW5mb0xpc3QgPSBzdGFydFZpc2l0aW5nVmlld3MobVZpZXdSb290LCAwLCBwYXJhbXMuZ2V0RXh0ZW5kZWRWaWV3SW5mb01vZGUoKSk7Ci0KLSAgICAgICAgICAgIC8vIHN1Y2Nlc3MhCi0gICAgICAgICAgICByZXR1cm4gU1VDQ0VTUy5jcmVhdGVSZXN1bHQoKTsKLSAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKLSAgICAgICAgICAgIC8vIGdldCB0aGUgcmVhbCBjYXVzZSBvZiB0aGUgZXhjZXB0aW9uLgotICAgICAgICAgICAgVGhyb3dhYmxlIHQgPSBlOwotICAgICAgICAgICAgd2hpbGUgKHQuZ2V0Q2F1c2UoKSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgdCA9IHQuZ2V0Q2F1c2UoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIEVSUk9SX1VOS05PV04uY3JlYXRlUmVzdWx0KHQuZ2V0TWVzc2FnZSgpLCB0KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIEV4ZWN1dGVzIHtAbGluayBWaWV3I21lYXN1cmUoaW50LCBpbnQpfSBvbiBhIGdpdmVuIHZpZXcgd2l0aCB0aGUgZ2l2ZW4gcGFyYW1ldGVycyAodXNlZAotICAgICAqIHRvIGNyZWF0ZSBtZWFzdXJlIHNwZWNzIHdpdGgge0BsaW5rIE1lYXN1cmVTcGVjI21ha2VNZWFzdXJlU3BlYyhpbnQsIGludCl9LgotICAgICAqCi0gICAgICogaWYgPHZhcj5tZWFzdXJlZFZpZXc8L3Zhcj4gaXMgbm9uIG51bGwsIHRoZSBtZXRob2QgcmV0dXJucyBhIHtAbGluayBQYWlyfSBvZiAod2lkdGgsIGhlaWdodCkKLSAgICAgKiBmb3IgdGhlIHZpZXcgKHVzaW5nIHtAbGluayBWaWV3I2dldE1lYXN1cmVkV2lkdGgoKX0gYW5kIHtAbGluayBWaWV3I2dldE1lYXN1cmVkSGVpZ2h0KCl9KS4KLSAgICAgKgotICAgICAqIEBwYXJhbSB2aWV3VG9NZWFzdXJlIHRoZSB2aWV3IG9uIHdoaWNoIHRvIGV4ZWN1dGUgbWVhc3VyZSgpLgotICAgICAqIEBwYXJhbSBtZWFzdXJlZFZpZXcgaWYgbm9uIG51bGwsIHRoZSB2aWV3IHRvIHF1ZXJ5IGZvciBpdHMgbWVhc3VyZWQgd2lkdGgvaGVpZ2h0LgotICAgICAqIEBwYXJhbSB3aWR0aCB0aGUgd2lkdGggdG8gdXNlIGluIHRoZSBNZWFzdXJlU3BlYy4KLSAgICAgKiBAcGFyYW0gd2lkdGhNb2RlIHRoZSBNZWFzdXJlU3BlYyBtb2RlIHRvIHVzZSBmb3IgdGhlIHdpZHRoLgotICAgICAqIEBwYXJhbSBoZWlnaHQgdGhlIGhlaWdodCB0byB1c2UgaW4gdGhlIE1lYXN1cmVTcGVjLgotICAgICAqIEBwYXJhbSBoZWlnaHRNb2RlIHRoZSBNZWFzdXJlU3BlYyBtb2RlIHRvIHVzZSBmb3IgdGhlIGhlaWdodC4KLSAgICAgKiBAcmV0dXJuIHRoZSBtZWFzdXJlZCB3aWR0aC9oZWlnaHQgaWYgbWVhc3VyZWRWaWV3IGlzIG5vbi1udWxsLCBudWxsIG90aGVyd2lzZS4KLSAgICAgKi8KLSAgICBwcml2YXRlIFBhaXI8SW50ZWdlciwgSW50ZWdlcj4gbWVhc3VyZVZpZXcoVmlld0dyb3VwIHZpZXdUb01lYXN1cmUsIFZpZXcgbWVhc3VyZWRWaWV3LAotICAgICAgICAgICAgaW50IHdpZHRoLCBpbnQgd2lkdGhNb2RlLCBpbnQgaGVpZ2h0LCBpbnQgaGVpZ2h0TW9kZSkgewotICAgICAgICBpbnQgd19zcGVjID0gTWVhc3VyZVNwZWMubWFrZU1lYXN1cmVTcGVjKHdpZHRoLCB3aWR0aE1vZGUpOwotICAgICAgICBpbnQgaF9zcGVjID0gTWVhc3VyZVNwZWMubWFrZU1lYXN1cmVTcGVjKGhlaWdodCwgaGVpZ2h0TW9kZSk7Ci0gICAgICAgIHZpZXdUb01lYXN1cmUubWVhc3VyZSh3X3NwZWMsIGhfc3BlYyk7Ci0KLSAgICAgICAgaWYgKG1lYXN1cmVkVmlldyAhPSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gUGFpci5vZihtZWFzdXJlZFZpZXcuZ2V0TWVhc3VyZWRXaWR0aCgpLCBtZWFzdXJlZFZpZXcuZ2V0TWVhc3VyZWRIZWlnaHQoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBBbmltYXRlIGFuIG9iamVjdAotICAgICAqIDxwPgotICAgICAqIHtAbGluayAjYWNxdWlyZShsb25nKX0gbXVzdCBoYXZlIGJlZW4gY2FsbGVkIGJlZm9yZSB0aGlzLgotICAgICAqCi0gICAgICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24gaWYgdGhlIGN1cnJlbnQgY29udGV4dCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgb25lIG93bmVkIGJ5Ci0gICAgICogICAgICB0aGUgc2NlbmUsIG9yIGlmIHtAbGluayAjYWNxdWlyZShsb25nKX0gd2FzIG5vdCBjYWxsZWQuCi0gICAgICoKLSAgICAgKiBAc2VlIFJlbmRlclNlc3Npb24jYW5pbWF0ZShPYmplY3QsIFN0cmluZywgYm9vbGVhbiwgSUFuaW1hdGlvbkxpc3RlbmVyKQotICAgICAqLwotICAgIHB1YmxpYyBSZXN1bHQgYW5pbWF0ZShPYmplY3QgdGFyZ2V0T2JqZWN0LCBTdHJpbmcgYW5pbWF0aW9uTmFtZSwKLSAgICAgICAgICAgIGJvb2xlYW4gaXNGcmFtZXdvcmtBbmltYXRpb24sIElBbmltYXRpb25MaXN0ZW5lciBsaXN0ZW5lcikgewotICAgICAgICBjaGVja0xvY2soKTsKLQotICAgICAgICBCcmlkZ2VDb250ZXh0IGNvbnRleHQgPSBnZXRDb250ZXh0KCk7Ci0KLSAgICAgICAgLy8gZmluZCB0aGUgYW5pbWF0aW9uIGZpbGUuCi0gICAgICAgIFJlc291cmNlVmFsdWUgYW5pbWF0aW9uUmVzb3VyY2UgPSBudWxsOwotICAgICAgICBpbnQgYW5pbWF0aW9uSWQgPSAwOwotICAgICAgICBpZiAoaXNGcmFtZXdvcmtBbmltYXRpb24pIHsKLSAgICAgICAgICAgIGFuaW1hdGlvblJlc291cmNlID0gY29udGV4dC5nZXRSZW5kZXJSZXNvdXJjZXMoKS5nZXRGcmFtZXdvcmtSZXNvdXJjZSgKLSAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VUeXBlLkFOSU1BVE9SLCBhbmltYXRpb25OYW1lKTsKLSAgICAgICAgICAgIGlmIChhbmltYXRpb25SZXNvdXJjZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgYW5pbWF0aW9uSWQgPSBCcmlkZ2UuZ2V0UmVzb3VyY2VJZChSZXNvdXJjZVR5cGUuQU5JTUFUT1IsIGFuaW1hdGlvbk5hbWUpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYW5pbWF0aW9uUmVzb3VyY2UgPSBjb250ZXh0LmdldFJlbmRlclJlc291cmNlcygpLmdldFByb2plY3RSZXNvdXJjZSgKLSAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VUeXBlLkFOSU1BVE9SLCBhbmltYXRpb25OYW1lKTsKLSAgICAgICAgICAgIGlmIChhbmltYXRpb25SZXNvdXJjZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgYW5pbWF0aW9uSWQgPSBjb250ZXh0LmdldFByb2plY3RDYWxsYmFjaygpLmdldFJlc291cmNlSWQoCi0gICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVR5cGUuQU5JTUFUT1IsIGFuaW1hdGlvbk5hbWUpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGFuaW1hdGlvblJlc291cmNlICE9IG51bGwpIHsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgQW5pbWF0b3IgYW5pbSA9IEFuaW1hdG9ySW5mbGF0ZXIubG9hZEFuaW1hdG9yKGNvbnRleHQsIGFuaW1hdGlvbklkKTsKLSAgICAgICAgICAgICAgICBpZiAoYW5pbSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFuaW0uc2V0VGFyZ2V0KHRhcmdldE9iamVjdCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgbmV3IFBsYXlBbmltYXRpb25UaHJlYWQoYW5pbSwgdGhpcywgYW5pbWF0aW9uTmFtZSwgbGlzdGVuZXIpLnN0YXJ0KCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNVQ0NFU1MuY3JlYXRlUmVzdWx0KCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIHJlYWwgY2F1c2Ugb2YgdGhlIGV4Y2VwdGlvbi4KLSAgICAgICAgICAgICAgICBUaHJvd2FibGUgdCA9IGU7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKHQuZ2V0Q2F1c2UoKSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHQgPSB0LmdldENhdXNlKCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgcmV0dXJuIEVSUk9SX1VOS05PV04uY3JlYXRlUmVzdWx0KHQuZ2V0TWVzc2FnZSgpLCB0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBFUlJPUl9BTklNX05PVF9GT1VORC5jcmVhdGVSZXN1bHQoKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBJbnNlcnQgYSBuZXcgY2hpbGQgaW50byBhbiBleGlzdGluZyBwYXJlbnQuCi0gICAgICogPHA+Ci0gICAgICoge0BsaW5rICNhY3F1aXJlKGxvbmcpfSBtdXN0IGhhdmUgYmVlbiBjYWxsZWQgYmVmb3JlIHRoaXMuCi0gICAgICoKLSAgICAgKiBAdGhyb3dzIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiBpZiB0aGUgY3VycmVudCBjb250ZXh0IGlzIGRpZmZlcmVudCB0aGFuIHRoZSBvbmUgb3duZWQgYnkKLSAgICAgKiAgICAgIHRoZSBzY2VuZSwgb3IgaWYge0BsaW5rICNhY3F1aXJlKGxvbmcpfSB3YXMgbm90IGNhbGxlZC4KLSAgICAgKgotICAgICAqIEBzZWUgUmVuZGVyU2Vzc2lvbiNpbnNlcnRDaGlsZChPYmplY3QsIElMYXlvdXRQdWxsUGFyc2VyLCBpbnQsIElBbmltYXRpb25MaXN0ZW5lcikKLSAgICAgKi8KLSAgICBwdWJsaWMgUmVzdWx0IGluc2VydENoaWxkKGZpbmFsIFZpZXdHcm91cCBwYXJlbnRWaWV3LCBJTGF5b3V0UHVsbFBhcnNlciBjaGlsZFhtbCwKLSAgICAgICAgICAgIGZpbmFsIGludCBpbmRleCwgSUFuaW1hdGlvbkxpc3RlbmVyIGxpc3RlbmVyKSB7Ci0gICAgICAgIGNoZWNrTG9jaygpOwotCi0gICAgICAgIEJyaWRnZUNvbnRleHQgY29udGV4dCA9IGdldENvbnRleHQoKTsKLQotICAgICAgICAvLyBjcmVhdGUgYSBibG9jayBwYXJzZXIgZm9yIHRoZSBYTUwKLSAgICAgICAgQnJpZGdlWG1sQmxvY2tQYXJzZXIgYmxvY2tQYXJzZXIgPSBuZXcgQnJpZGdlWG1sQmxvY2tQYXJzZXIoCi0gICAgICAgICAgICAgICAgY2hpbGRYbWwsIGNvbnRleHQsIGZhbHNlIC8qIHBsYXRmb3JtUmVzb3VyY2VGbGFnICovKTsKLQotICAgICAgICAvLyBpbmZsYXRlIHRoZSBjaGlsZCB3aXRob3V0IGFkZGluZyBpdCB0byB0aGUgcm9vdCBzaW5jZSB3ZSB3YW50IHRvIGNvbnRyb2wgd2hlcmUgaXQnbGwKLSAgICAgICAgLy8gZ2V0IGFkZGVkLiBXZSBkbyBwYXNzIHRoZSBwYXJlbnRWaWV3IGhvd2V2ZXIgdG8gZW5zdXJlIHRoYXQgdGhlIGxheW91dFBhcmFtcyB3aWxsCi0gICAgICAgIC8vIGJlIGNyZWF0ZWQgY29ycmVjdGx5LgotICAgICAgICBmaW5hbCBWaWV3IGNoaWxkID0gbUluZmxhdGVyLmluZmxhdGUoYmxvY2tQYXJzZXIsIHBhcmVudFZpZXcsIGZhbHNlIC8qYXR0YWNoVG9Sb290Ki8pOwotICAgICAgICBibG9ja1BhcnNlci5lbnN1cmVQb3BwZWQoKTsKLQotICAgICAgICBpbnZhbGlkYXRlUmVuZGVyaW5nU2l6ZSgpOwotCi0gICAgICAgIGlmIChsaXN0ZW5lciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBuZXcgQW5pbWF0aW9uVGhyZWFkKHRoaXMsICJpbnNlcnRDaGlsZCIsIGxpc3RlbmVyKSB7Ci0KLSAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgICAgICBwdWJsaWMgUmVzdWx0IHByZUFuaW1hdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFyZW50Vmlldy5zZXRMYXlvdXRUcmFuc2l0aW9uKG5ldyBMYXlvdXRUcmFuc2l0aW9uKCkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWRkVmlldyhwYXJlbnRWaWV3LCBjaGlsZCwgaW5kZXgpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHBvc3RBbmltYXRpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhcmVudFZpZXcuc2V0TGF5b3V0VHJhbnNpdGlvbihudWxsKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LnN0YXJ0KCk7Ci0KLSAgICAgICAgICAgIC8vIGFsd2F5cyByZXR1cm4gc3VjY2VzcyBzaW5jZSB0aGUgcmVhbCBzdGF0dXMgd2lsbCBjb21lIHRocm91Z2ggdGhlIGxpc3RlbmVyLgotICAgICAgICAgICAgcmV0dXJuIFNVQ0NFU1MuY3JlYXRlUmVzdWx0KGNoaWxkKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGFkZCBpdCB0byB0aGUgcGFyZW50VmlldyBpbiB0aGUgY29ycmVjdCBsb2NhdGlvbgotICAgICAgICBSZXN1bHQgcmVzdWx0ID0gYWRkVmlldyhwYXJlbnRWaWV3LCBjaGlsZCwgaW5kZXgpOwotICAgICAgICBpZiAocmVzdWx0LmlzU3VjY2VzcygpID09IGZhbHNlKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0KLSAgICAgICAgcmVzdWx0ID0gcmVuZGVyKGZhbHNlIC8qZnJlc2hSZW5kZXIqLyk7Ci0gICAgICAgIGlmIChyZXN1bHQuaXNTdWNjZXNzKCkpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5nZXRDb3B5V2l0aERhdGEoY2hpbGQpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBBZGRzIGEgZ2l2ZW4gdmlldyB0byBhIGdpdmVuIHBhcmVudCBhdCBhIGdpdmVuIGluZGV4LgotICAgICAqCi0gICAgICogQHBhcmFtIHBhcmVudCB0aGUgcGFyZW50IHRvIHJlY2VpdmUgdGhlIHZpZXcKLSAgICAgKiBAcGFyYW0gdmlldyB0aGUgdmlldyB0byBhZGQgdG8gdGhlIHBhcmVudAotICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggd2hlcmUgdG8gZG8gdGhlIGFkZC4KLSAgICAgKgotICAgICAqIEByZXR1cm4gYSBSZXN1bHQgd2l0aCB7QGxpbmsgU3RhdHVzI1NVQ0NFU1N9IG9yCi0gICAgICogICAgIHtAbGluayBTdGF0dXMjRVJST1JfVklFV0dST1VQX05PX0NISUxEUkVOfSBpZiB0aGUgZ2l2ZW4gcGFyZW50IGRvZXNuJ3Qgc3VwcG9ydAotICAgICAqICAgICBhZGRpbmcgdmlld3MuCi0gICAgICovCi0gICAgcHJpdmF0ZSBSZXN1bHQgYWRkVmlldyhWaWV3R3JvdXAgcGFyZW50LCBWaWV3IHZpZXcsIGludCBpbmRleCkgewotICAgICAgICB0cnkgewotICAgICAgICAgICAgcGFyZW50LmFkZFZpZXcodmlldywgaW5kZXgpOwotICAgICAgICAgICAgcmV0dXJuIFNVQ0NFU1MuY3JlYXRlUmVzdWx0KCk7Ci0gICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIC8vIGxvb2tzIGxpa2UgdGhpcyBpcyBhIHZpZXcgY2xhc3MgdGhhdCBkb2Vzbid0IHN1cHBvcnQgY2hpbGRyZW4gbWFuaXB1bGF0aW9uIQotICAgICAgICAgICAgcmV0dXJuIEVSUk9SX1ZJRVdHUk9VUF9OT19DSElMRFJFTi5jcmVhdGVSZXN1bHQoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIE1vdmVzIGEgdmlldyB0byBhIG5ldyBwYXJlbnQgYXQgYSBnaXZlbiBsb2NhdGlvbgotICAgICAqIDxwPgotICAgICAqIHtAbGluayAjYWNxdWlyZShsb25nKX0gbXVzdCBoYXZlIGJlZW4gY2FsbGVkIGJlZm9yZSB0aGlzLgotICAgICAqCi0gICAgICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24gaWYgdGhlIGN1cnJlbnQgY29udGV4dCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgb25lIG93bmVkIGJ5Ci0gICAgICogICAgICB0aGUgc2NlbmUsIG9yIGlmIHtAbGluayAjYWNxdWlyZShsb25nKX0gd2FzIG5vdCBjYWxsZWQuCi0gICAgICoKLSAgICAgKiBAc2VlIFJlbmRlclNlc3Npb24jbW92ZUNoaWxkKE9iamVjdCwgT2JqZWN0LCBpbnQsIE1hcCwgSUFuaW1hdGlvbkxpc3RlbmVyKQotICAgICAqLwotICAgIHB1YmxpYyBSZXN1bHQgbW92ZUNoaWxkKGZpbmFsIFZpZXdHcm91cCBuZXdQYXJlbnRWaWV3LCBmaW5hbCBWaWV3IGNoaWxkVmlldywgZmluYWwgaW50IGluZGV4LAotICAgICAgICAgICAgTWFwPFN0cmluZywgU3RyaW5nPiBsYXlvdXRQYXJhbXNNYXAsIGZpbmFsIElBbmltYXRpb25MaXN0ZW5lciBsaXN0ZW5lcikgewotICAgICAgICBjaGVja0xvY2soKTsKLQotICAgICAgICBpbnZhbGlkYXRlUmVuZGVyaW5nU2l6ZSgpOwotCi0gICAgICAgIExheW91dFBhcmFtcyBsYXlvdXRQYXJhbXMgPSBudWxsOwotICAgICAgICBpZiAobGF5b3V0UGFyYW1zTWFwICE9IG51bGwpIHsKLSAgICAgICAgICAgIC8vIG5lZWQgdG8gY3JlYXRlIGEgbmV3IExheW91dFBhcmFtcyBvYmplY3QgZm9yIHRoZSBuZXcgcGFyZW50LgotICAgICAgICAgICAgbGF5b3V0UGFyYW1zID0gbmV3UGFyZW50Vmlldy5nZW5lcmF0ZUxheW91dFBhcmFtcygKLSAgICAgICAgICAgICAgICAgICAgbmV3IEJyaWRnZUxheW91dFBhcmFtc01hcEF0dHJpYnV0ZXMobGF5b3V0UGFyYW1zTWFwKSk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBnZXQgdGhlIGN1cnJlbnQgcGFyZW50IG9mIHRoZSB2aWV3IHRoYXQgbmVlZHMgdG8gYmUgbW92ZWQuCi0gICAgICAgIGZpbmFsIFZpZXdHcm91cCBwcmV2aW91c1BhcmVudCA9IChWaWV3R3JvdXApIGNoaWxkVmlldy5nZXRQYXJlbnQoKTsKLQotICAgICAgICBpZiAobGlzdGVuZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgZmluYWwgTGF5b3V0UGFyYW1zIHBhcmFtcyA9IGxheW91dFBhcmFtczsKLQotICAgICAgICAgICAgLy8gdGhlcmUgaXMgbm8gc3VwcG9ydCBmb3IgYW5pbWF0aW5nIHZpZXdzIGFjcm9zcyBsYXlvdXRzLCBzbyBpbiBjYXNlIHRoZSBuZXcgYW5kIG9sZAotICAgICAgICAgICAgLy8gcGFyZW50IHZpZXdzIGFyZSBkaWZmZXJlbnQgd2UgZmFrZSB0aGUgYW5pbWF0aW9uIHRocm91Z2ggYSBubyBhbmltYXRpb24gdGhyZWFkLgotICAgICAgICAgICAgaWYgKHByZXZpb3VzUGFyZW50ICE9IG5ld1BhcmVudFZpZXcpIHsKLSAgICAgICAgICAgICAgICBuZXcgVGhyZWFkKCJub3QgYW5pbWF0ZWQgbW92ZUNoaWxkIikgewotICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0IHJlc3VsdCA9IG1vdmVWaWV3KHByZXZpb3VzUGFyZW50LCBuZXdQYXJlbnRWaWV3LCBjaGlsZFZpZXcsIGluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc1N1Y2Nlc3MoKSA9PSBmYWxzZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmRvbmUocmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVhZHkgdG8gZG8gdGhlIHdvcmssIGFjcXVpcmUgdGhlIHNjZW5lLgotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gYWNxdWlyZSgyNTApOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc1N1Y2Nlc3MoKSA9PSBmYWxzZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLmRvbmUocmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVuZGVyKGZhbHNlIC8qZnJlc2hSZW5kZXIqLyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc1N1Y2Nlc3MoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lci5vbk5ld0ZyYW1lKFJlbmRlclNlc3Npb25JbXBsLnRoaXMuZ2V0U2Vzc2lvbigpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGVhc2UoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXIuZG9uZShyZXN1bHQpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfS5zdGFydCgpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBuZXcgQW5pbWF0aW9uVGhyZWFkKHRoaXMsICJtb3ZlQ2hpbGQiLCBsaXN0ZW5lcikgewotCi0gICAgICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgICAgICBwdWJsaWMgUmVzdWx0IHByZUFuaW1hdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCB1cCB0aGUgdHJhbnNpdGlvbiBmb3IgdGhlIHBhcmVudC4KLSAgICAgICAgICAgICAgICAgICAgICAgIExheW91dFRyYW5zaXRpb24gdHJhbnNpdGlvbiA9IG5ldyBMYXlvdXRUcmFuc2l0aW9uKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1BhcmVudC5zZXRMYXlvdXRUcmFuc2l0aW9uKHRyYW5zaXRpb24pOwotCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0d2VhayB0aGUgYW5pbWF0aW9uIGR1cmF0aW9ucyBhbmQgc3RhcnQgZGVsYXlzICh0byBtYXRjaCB0aGUgZHVyYXRpb24gb2YKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuaW1hdGlvbiBwbGF5aW5nIGp1c3QgYmVmb3JlKS4KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6IENhbm5vdCB1c2VyIEFuaW1hdGlvbi5zZXREdXJhdGlvbigpIGRpcmVjdGx5LiBIYXZlIHRvIHNldCBpdAotICAgICAgICAgICAgICAgICAgICAgICAgLy8gb24gdGhlIExheW91dFRyYW5zaXRpb24uCi0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLnNldER1cmF0aW9uKExheW91dFRyYW5zaXRpb24uRElTQVBQRUFSSU5HLCAxMDApOwotICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ0hBTkdFX0RJU0FQUEVBUklORyBwbGF5cyBhZnRlciBESVNBUFBFQVJJTkcKLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24uc2V0U3RhcnREZWxheShMYXlvdXRUcmFuc2l0aW9uLkNIQU5HRV9ESVNBUFBFQVJJTkcsIDEwMCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24uc2V0RHVyYXRpb24oTGF5b3V0VHJhbnNpdGlvbi5DSEFOR0VfRElTQVBQRUFSSU5HLCAxMDApOwotCi0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLnNldER1cmF0aW9uKExheW91dFRyYW5zaXRpb24uQ0hBTkdFX0FQUEVBUklORywgMTAwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIENIQU5HRV9BUFBFQVJJTkcgcGxheXMgYWZ0ZXIgQ0hBTkdFX0FQUEVBUklORwotICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbi5zZXRTdGFydERlbGF5KExheW91dFRyYW5zaXRpb24uQVBQRUFSSU5HLCAxMDApOwotCi0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLnNldER1cmF0aW9uKExheW91dFRyYW5zaXRpb24uQVBQRUFSSU5HLCAxMDApOwotCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW92ZVZpZXcocHJldmlvdXNQYXJlbnQsIG5ld1BhcmVudFZpZXcsIGNoaWxkVmlldywgaW5kZXgsIHBhcmFtcyk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgcG9zdEFuaW1hdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUGFyZW50LnNldExheW91dFRyYW5zaXRpb24obnVsbCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJlbnRWaWV3LnNldExheW91dFRyYW5zaXRpb24obnVsbCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9LnN0YXJ0KCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIGFsd2F5cyByZXR1cm4gc3VjY2VzcyBzaW5jZSB0aGUgcmVhbCBzdGF0dXMgd2lsbCBjb21lIHRocm91Z2ggdGhlIGxpc3RlbmVyLgotICAgICAgICAgICAgcmV0dXJuIFNVQ0NFU1MuY3JlYXRlUmVzdWx0KGxheW91dFBhcmFtcyk7Ci0gICAgICAgIH0KLQotICAgICAgICBSZXN1bHQgcmVzdWx0ID0gbW92ZVZpZXcocHJldmlvdXNQYXJlbnQsIG5ld1BhcmVudFZpZXcsIGNoaWxkVmlldywgaW5kZXgsIGxheW91dFBhcmFtcyk7Ci0gICAgICAgIGlmIChyZXN1bHQuaXNTdWNjZXNzKCkgPT0gZmFsc2UpIHsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLQotICAgICAgICByZXN1bHQgPSByZW5kZXIoZmFsc2UgLypmcmVzaFJlbmRlciovKTsKLSAgICAgICAgaWYgKGxheW91dFBhcmFtcyAhPSBudWxsICYmIHJlc3VsdC5pc1N1Y2Nlc3MoKSkgewotICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmdldENvcHlXaXRoRGF0YShsYXlvdXRQYXJhbXMpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBNb3ZlcyBhIFZpZXcgZnJvbSBpdHMgY3VycmVudCBwYXJlbnQgdG8gYSBuZXcgZ2l2ZW4gcGFyZW50IGF0IGEgbmV3IGdpdmVuIGxvY2F0aW9uLCB3aXRoCi0gICAgICogYW4gb3B0aW9uYWwgbmV3IHtAbGluayBMYXlvdXRQYXJhbXN9IGluc3RhbmNlCi0gICAgICoKLSAgICAgKiBAcGFyYW0gcHJldmlvdXNQYXJlbnQgdGhlIHByZXZpb3VzIHBhcmVudCwgc3RpbGwgb3duaW5nIHRoZSBjaGlsZCBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbC4KLSAgICAgKiBAcGFyYW0gbmV3UGFyZW50IHRoZSBuZXcgcGFyZW50Ci0gICAgICogQHBhcmFtIG1vdmVkVmlldyB0aGUgdmlldyB0byBtb3ZlCi0gICAgICogQHBhcmFtIGluZGV4IHRoZSBuZXcgbG9jYXRpb24gaW4gdGhlIG5ldyBwYXJlbnQKLSAgICAgKiBAcGFyYW0gcGFyYW1zIGFuIG9wdGlvbiAoY2FuIGJlIG51bGwpIHtAbGluayBMYXlvdXRQYXJhbXN9IGluc3RhbmNlLgotICAgICAqCi0gICAgICogQHJldHVybiBhIFJlc3VsdCB3aXRoIHtAbGluayBTdGF0dXMjU1VDQ0VTU30gb3IKLSAgICAgKiAgICAge0BsaW5rIFN0YXR1cyNFUlJPUl9WSUVXR1JPVVBfTk9fQ0hJTERSRU59IGlmIHRoZSBnaXZlbiBwYXJlbnQgZG9lc24ndCBzdXBwb3J0Ci0gICAgICogICAgIGFkZGluZyB2aWV3cy4KLSAgICAgKi8KLSAgICBwcml2YXRlIFJlc3VsdCBtb3ZlVmlldyhWaWV3R3JvdXAgcHJldmlvdXNQYXJlbnQsIGZpbmFsIFZpZXdHcm91cCBuZXdQYXJlbnQsCi0gICAgICAgICAgICBmaW5hbCBWaWV3IG1vdmVkVmlldywgZmluYWwgaW50IGluZGV4LCBmaW5hbCBMYXlvdXRQYXJhbXMgcGFyYW1zKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAvLyBjaGVjayBpZiB0aGVyZSBpcyBhIHRyYW5zaXRpb24gb24gdGhlIHByZXZpb3VzUGFyZW50LgotICAgICAgICAgICAgTGF5b3V0VHJhbnNpdGlvbiBwcmV2aW91c1RyYW5zaXRpb24gPSBwcmV2aW91c1BhcmVudC5nZXRMYXlvdXRUcmFuc2l0aW9uKCk7Ci0gICAgICAgICAgICBpZiAocHJldmlvdXNUcmFuc2l0aW9uICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAvLyBpbiB0aGlzIGNhc2UgdGhlcmUgaXMgYW4gYW5pbWF0aW9uLiBUaGlzIG1lYW5zIHdlIGhhdmUgdG8gd2FpdCBmb3IgdGhlIGNoaWxkJ3MKLSAgICAgICAgICAgICAgICAvLyBwYXJlbnQgcmVmZXJlbmNlIHRvIGJlIG51bGwnZWQgb3V0IHNvIHRoYXQgd2UgY2FuIGFkZCBpdCB0byB0aGUgbmV3IHBhcmVudC4KLSAgICAgICAgICAgICAgICAvLyBJdCBpcyB0ZWNobmljYWxseSByZW1vdmVkIHJpZ2h0IGJlZm9yZSB0aGUgRElTQVBQRUFSSU5HIGFuaW1hdGlvbiBpcyBkb25lIChpZgotICAgICAgICAgICAgICAgIC8vIHRoZSBhbmltYXRpb24gb2YgdGhpcyB0eXBlIGlzIG5vdCBudWxsLCBvdGhlcndpc2UgaXQncyBhZnRlciB3aGljaCBpcyBpbXBvc3NpYmxlCi0gICAgICAgICAgICAgICAgLy8gdG8gaGFuZGxlKS4KLSAgICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoZXJlIGlzIG5vIG1vdmUgYW5pbWF0aW9uLCBpZiB0aGUgbmV3IHBhcmVudCBpcyB0aGUgc2FtZSBhcyB0aGUgb2xkCi0gICAgICAgICAgICAgICAgLy8gcGFyZW50LCB3ZSBuZWVkIHRvIHdhaXQgdW50aWwgdGhlIENIQU5HRV9ESVNBUFBFQVJJTkcgYW5pbWF0aW9uIGlzIGRvbmUgYmVmb3JlCi0gICAgICAgICAgICAgICAgLy8gYWRkaW5nIHRoZSBjaGlsZCBvciB0aGUgY2hpbGQgd2lsbCBhcHBlYXIgaW4gaXRzIG5ldyBsb2NhdGlvbiBiZWZvcmUgdGhlCi0gICAgICAgICAgICAgICAgLy8gb3RoZXIgY2hpbGRyZW4gaGF2ZSBtYWRlIHJvb20gZm9yIGl0LgotCi0gICAgICAgICAgICAgICAgLy8gYWRkIGEgbGlzdGVuZXIgdG8gdGhlIHRyYW5zaXRpb24gdG8gYmUgbm90aWZpZWQgb2YgdGhlIGFjdHVhbCByZW1vdmFsLgotICAgICAgICAgICAgICAgIHByZXZpb3VzVHJhbnNpdGlvbi5hZGRUcmFuc2l0aW9uTGlzdGVuZXIobmV3IFRyYW5zaXRpb25MaXN0ZW5lcigpIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSBpbnQgbUNoYW5nZURpc2FwcGVhcmluZ0NvdW50ID0gMDsKLQotICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgc3RhcnRUcmFuc2l0aW9uKExheW91dFRyYW5zaXRpb24gdHJhbnNpdGlvbiwgVmlld0dyb3VwIGNvbnRhaW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaWV3IHZpZXcsIGludCB0cmFuc2l0aW9uVHlwZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRyYW5zaXRpb25UeXBlID09IExheW91dFRyYW5zaXRpb24uQ0hBTkdFX0RJU0FQUEVBUklORykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1DaGFuZ2VEaXNhcHBlYXJpbmdDb3VudCsrOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGVuZFRyYW5zaXRpb24oTGF5b3V0VHJhbnNpdGlvbiB0cmFuc2l0aW9uLCBWaWV3R3JvdXAgY29udGFpbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpZXcgdmlldywgaW50IHRyYW5zaXRpb25UeXBlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHJhbnNpdGlvblR5cGUgPT0gTGF5b3V0VHJhbnNpdGlvbi5DSEFOR0VfRElTQVBQRUFSSU5HKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbUNoYW5nZURpc2FwcGVhcmluZ0NvdW50LS07Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uVHlwZSA9PSBMYXlvdXRUcmFuc2l0aW9uLkNIQU5HRV9ESVNBUFBFQVJJTkcgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUNoYW5nZURpc2FwcGVhcmluZ0NvdW50ID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQgaXQgdG8gdGhlIHBhcmVudFZpZXcgaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1zICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFyZW50LmFkZFZpZXcobW92ZWRWaWV3LCBpbmRleCwgcGFyYW1zKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXJlbnQuYWRkVmlldyhtb3ZlZFZpZXcsIGluZGV4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgdmlldyBmcm9tIHRoZSBjdXJyZW50IHBhcmVudC4KLSAgICAgICAgICAgICAgICBwcmV2aW91c1BhcmVudC5yZW1vdmVWaWV3KG1vdmVkVmlldyk7Ci0KLSAgICAgICAgICAgICAgICAvLyBhbmQgcmV0dXJuIHNpbmNlIGFkZGluZyB0aGUgdmlldyB0byB0aGUgbmV3IHBhcmVudCBpcyBkb25lIGluIHRoZSBsaXN0ZW5lci4KLSAgICAgICAgICAgICAgICByZXR1cm4gU1VDQ0VTUy5jcmVhdGVSZXN1bHQoKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gc3RhbmRhcmQgY29kZSB3aXRoIG5vIGFuaW1hdGlvbi4gcHJldHR5IHNpbXBsZS4KLSAgICAgICAgICAgICAgICBwcmV2aW91c1BhcmVudC5yZW1vdmVWaWV3KG1vdmVkVmlldyk7Ci0KLSAgICAgICAgICAgICAgICAvLyBhZGQgaXQgdG8gdGhlIHBhcmVudFZpZXcgaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24KLSAgICAgICAgICAgICAgICBpZiAocGFyYW1zICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgbmV3UGFyZW50LmFkZFZpZXcobW92ZWRWaWV3LCBpbmRleCwgcGFyYW1zKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBuZXdQYXJlbnQuYWRkVmlldyhtb3ZlZFZpZXcsIGluZGV4KTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICByZXR1cm4gU1VDQ0VTUy5jcmVhdGVSZXN1bHQoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gZSkgewotICAgICAgICAgICAgLy8gbG9va3MgbGlrZSB0aGlzIGlzIGEgdmlldyBjbGFzcyB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBjaGlsZHJlbiBtYW5pcHVsYXRpb24hCi0gICAgICAgICAgICByZXR1cm4gRVJST1JfVklFV0dST1VQX05PX0NISUxEUkVOLmNyZWF0ZVJlc3VsdCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmVtb3ZlcyBhIGNoaWxkIGZyb20gaXRzIGN1cnJlbnQgcGFyZW50LgotICAgICAqIDxwPgotICAgICAqIHtAbGluayAjYWNxdWlyZShsb25nKX0gbXVzdCBoYXZlIGJlZW4gY2FsbGVkIGJlZm9yZSB0aGlzLgotICAgICAqCi0gICAgICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24gaWYgdGhlIGN1cnJlbnQgY29udGV4dCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgb25lIG93bmVkIGJ5Ci0gICAgICogICAgICB0aGUgc2NlbmUsIG9yIGlmIHtAbGluayAjYWNxdWlyZShsb25nKX0gd2FzIG5vdCBjYWxsZWQuCi0gICAgICoKLSAgICAgKiBAc2VlIFJlbmRlclNlc3Npb24jcmVtb3ZlQ2hpbGQoT2JqZWN0LCBJQW5pbWF0aW9uTGlzdGVuZXIpCi0gICAgICovCi0gICAgcHVibGljIFJlc3VsdCByZW1vdmVDaGlsZChmaW5hbCBWaWV3IGNoaWxkVmlldywgSUFuaW1hdGlvbkxpc3RlbmVyIGxpc3RlbmVyKSB7Ci0gICAgICAgIGNoZWNrTG9jaygpOwotCi0gICAgICAgIGludmFsaWRhdGVSZW5kZXJpbmdTaXplKCk7Ci0KLSAgICAgICAgZmluYWwgVmlld0dyb3VwIHBhcmVudCA9IChWaWV3R3JvdXApIGNoaWxkVmlldy5nZXRQYXJlbnQoKTsKLQotICAgICAgICBpZiAobGlzdGVuZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbmV3IEFuaW1hdGlvblRocmVhZCh0aGlzLCAibW92ZUNoaWxkIiwgbGlzdGVuZXIpIHsKLQotICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgIHB1YmxpYyBSZXN1bHQgcHJlQW5pbWF0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBwYXJlbnQuc2V0TGF5b3V0VHJhbnNpdGlvbihuZXcgTGF5b3V0VHJhbnNpdGlvbigpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlbW92ZVZpZXcocGFyZW50LCBjaGlsZFZpZXcpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHBvc3RBbmltYXRpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhcmVudC5zZXRMYXlvdXRUcmFuc2l0aW9uKG51bGwpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0uc3RhcnQoKTsKLQotICAgICAgICAgICAgLy8gYWx3YXlzIHJldHVybiBzdWNjZXNzIHNpbmNlIHRoZSByZWFsIHN0YXR1cyB3aWxsIGNvbWUgdGhyb3VnaCB0aGUgbGlzdGVuZXIuCi0gICAgICAgICAgICByZXR1cm4gU1VDQ0VTUy5jcmVhdGVSZXN1bHQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIFJlc3VsdCByZXN1bHQgPSByZW1vdmVWaWV3KHBhcmVudCwgY2hpbGRWaWV3KTsKLSAgICAgICAgaWYgKHJlc3VsdC5pc1N1Y2Nlc3MoKSA9PSBmYWxzZSkgewotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiByZW5kZXIoZmFsc2UgLypmcmVzaFJlbmRlciovKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZW1vdmVzIGEgZ2l2ZW4gdmlldyBmcm9tIGl0cyBjdXJyZW50IHBhcmVudC4KLSAgICAgKgotICAgICAqIEBwYXJhbSB2aWV3IHRoZSB2aWV3IHRvIHJlbW92ZSBmcm9tIGl0cyBwYXJlbnQKLSAgICAgKgotICAgICAqIEByZXR1cm4gYSBSZXN1bHQgd2l0aCB7QGxpbmsgU3RhdHVzI1NVQ0NFU1N9IG9yCi0gICAgICogICAgIHtAbGluayBTdGF0dXMjRVJST1JfVklFV0dST1VQX05PX0NISUxEUkVOfSBpZiB0aGUgZ2l2ZW4gcGFyZW50IGRvZXNuJ3Qgc3VwcG9ydAotICAgICAqICAgICBhZGRpbmcgdmlld3MuCi0gICAgICovCi0gICAgcHJpdmF0ZSBSZXN1bHQgcmVtb3ZlVmlldyhWaWV3R3JvdXAgcGFyZW50LCBWaWV3IHZpZXcpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHBhcmVudC5yZW1vdmVWaWV3KHZpZXcpOwotICAgICAgICAgICAgcmV0dXJuIFNVQ0NFU1MuY3JlYXRlUmVzdWx0KCk7Ci0gICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIC8vIGxvb2tzIGxpa2UgdGhpcyBpcyBhIHZpZXcgY2xhc3MgdGhhdCBkb2Vzbid0IHN1cHBvcnQgY2hpbGRyZW4gbWFuaXB1bGF0aW9uIQotICAgICAgICAgICAgcmV0dXJuIEVSUk9SX1ZJRVdHUk9VUF9OT19DSElMRFJFTi5jcmVhdGVSZXN1bHQoKTsKLSAgICAgICAgfQotICAgIH0KLQotCi0gICAgcHJpdmF0ZSB2b2lkIGZpbmRCYWNrZ3JvdW5kKFJlbmRlclJlc291cmNlcyByZXNvdXJjZXMpIHsKLSAgICAgICAgaWYgKGdldFBhcmFtcygpLmlzQmdDb2xvck92ZXJyaWRkZW4oKSA9PSBmYWxzZSkgewotICAgICAgICAgICAgbVdpbmRvd0JhY2tncm91bmQgPSByZXNvdXJjZXMuZmluZEl0ZW1JblRoZW1lKCJ3aW5kb3dCYWNrZ3JvdW5kIiwKLSAgICAgICAgICAgICAgICAgICAgdHJ1ZSAvKmlzRnJhbWV3b3JrQXR0ciovKTsKLSAgICAgICAgICAgIGlmIChtV2luZG93QmFja2dyb3VuZCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgbVdpbmRvd0JhY2tncm91bmQgPSByZXNvdXJjZXMucmVzb2x2ZVJlc1ZhbHVlKG1XaW5kb3dCYWNrZ3JvdW5kKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgYm9vbGVhbiBoYXNTb2Z0d2FyZUJ1dHRvbnMoKSB7Ci0gICAgICAgIHJldHVybiBnZXRQYXJhbXMoKS5nZXRIYXJkd2FyZUNvbmZpZygpLmhhc1NvZnR3YXJlQnV0dG9ucygpOwotICAgIH0KLQotICAgIHByaXZhdGUgdm9pZCBmaW5kU3RhdHVzQmFyKFJlbmRlclJlc291cmNlcyByZXNvdXJjZXMsIERpc3BsYXlNZXRyaWNzIG1ldHJpY3MpIHsKLSAgICAgICAgYm9vbGVhbiB3aW5kb3dGdWxsc2NyZWVuID0gZ2V0Qm9vbGVhblRoZW1lVmFsdWUocmVzb3VyY2VzLAotICAgICAgICAgICAgICAgICJ3aW5kb3dGdWxsc2NyZWVuIiwgZmFsc2UgLypkZWZhdWx0VmFsdWUqLyk7Ci0KLSAgICAgICAgaWYgKHdpbmRvd0Z1bGxzY3JlZW4gPT0gZmFsc2UgJiYgbVdpbmRvd0lzRmxvYXRpbmcgPT0gZmFsc2UpIHsKLSAgICAgICAgICAgIC8vIGRlZmF1bHQgdmFsdWUKLSAgICAgICAgICAgIG1TdGF0dXNCYXJTaXplID0gREVGQVVMVF9TVEFUVVNfQkFSX0hFSUdIVDsKLQotICAgICAgICAgICAgLy8gZ2V0IHRoZSByZWFsIHZhbHVlCi0gICAgICAgICAgICBSZXNvdXJjZVZhbHVlIHZhbHVlID0gcmVzb3VyY2VzLmdldEZyYW1ld29ya1Jlc291cmNlKFJlc291cmNlVHlwZS5ESU1FTiwKLSAgICAgICAgICAgICAgICAgICAgInN0YXR1c19iYXJfaGVpZ2h0Iik7Ci0KLSAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgVHlwZWRWYWx1ZSB0eXBlZFZhbHVlID0gUmVzb3VyY2VIZWxwZXIuZ2V0VmFsdWUoInN0YXR1c19iYXJfaGVpZ2h0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmdldFZhbHVlKCksIHRydWUgLypyZXF1aXJlVW5pdCovKTsKLSAgICAgICAgICAgICAgICBpZiAodHlwZWRWYWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIGNvbXB1dGUgdGhlIHBpeGVsIHZhbHVlIGJhc2VkIG9uIHRoZSBkaXNwbGF5IG1ldHJpY3MKLSAgICAgICAgICAgICAgICAgICAgbVN0YXR1c0JhclNpemUgPSAoaW50KXR5cGVkVmFsdWUuZ2V0RGltZW5zaW9uKG1ldHJpY3MpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgdm9pZCBmaW5kQWN0aW9uQmFyKFJlbmRlclJlc291cmNlcyByZXNvdXJjZXMsIERpc3BsYXlNZXRyaWNzIG1ldHJpY3MpIHsKLSAgICAgICAgaWYgKG1XaW5kb3dJc0Zsb2F0aW5nKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBib29sZWFuIHdpbmRvd0FjdGlvbkJhciA9IGdldEJvb2xlYW5UaGVtZVZhbHVlKHJlc291cmNlcywKLSAgICAgICAgICAgICAgICAid2luZG93QWN0aW9uQmFyIiwgdHJ1ZSAvKmRlZmF1bHRWYWx1ZSovKTsKLQotICAgICAgICAvLyBpZiB0aGVyZSdzIGEgdmFsdWUgYW5kIGl0J3MgZmFsc2UgKGRlZmF1bHQgaXMgdHJ1ZSkKLSAgICAgICAgaWYgKHdpbmRvd0FjdGlvbkJhcikgewotCi0gICAgICAgICAgICAvLyBkZWZhdWx0IHNpemUgb2YgdGhlIHdpbmRvdyB0aXRsZSBiYXIKLSAgICAgICAgICAgIG1BY3Rpb25CYXJTaXplID0gREVGQVVMVF9USVRMRV9CQVJfSEVJR0hUOwotCi0gICAgICAgICAgICAvLyBnZXQgdmFsdWUgZnJvbSB0aGUgdGhlbWUuCi0gICAgICAgICAgICBSZXNvdXJjZVZhbHVlIHZhbHVlID0gcmVzb3VyY2VzLmZpbmRJdGVtSW5UaGVtZSgiYWN0aW9uQmFyU2l6ZSIsCi0gICAgICAgICAgICAgICAgICAgIHRydWUgLyppc0ZyYW1ld29ya0F0dHIqLyk7Ci0KLSAgICAgICAgICAgIC8vIHJlc29sdmUgaXQKLSAgICAgICAgICAgIHZhbHVlID0gcmVzb3VyY2VzLnJlc29sdmVSZXNWYWx1ZSh2YWx1ZSk7Ci0KLSAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBudW1lcmljYWwgdmFsdWUsIGlmIGF2YWlsYWJsZQotICAgICAgICAgICAgICAgIFR5cGVkVmFsdWUgdHlwZWRWYWx1ZSA9IFJlc291cmNlSGVscGVyLmdldFZhbHVlKCJhY3Rpb25CYXJTaXplIiwgdmFsdWUuZ2V0VmFsdWUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgLypyZXF1aXJlVW5pdCovKTsKLSAgICAgICAgICAgICAgICBpZiAodHlwZWRWYWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIGNvbXB1dGUgdGhlIHBpeGVsIHZhbHVlIGJhc2VkIG9uIHRoZSBkaXNwbGF5IG1ldHJpY3MKLSAgICAgICAgICAgICAgICAgICAgbUFjdGlvbkJhclNpemUgPSAoaW50KXR5cGVkVmFsdWUuZ2V0RGltZW5zaW9uKG1ldHJpY3MpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIGFjdGlvbiBiYXIgb3ZlcnJpZGVzIHRpdGxlIGJhciBzbyBvbmx5IGxvb2sgZm9yIHRoaXMgb25lIGlmIGFjdGlvbiBiYXIgaXMgaGlkZGVuCi0gICAgICAgICAgICBib29sZWFuIHdpbmRvd05vVGl0bGUgPSBnZXRCb29sZWFuVGhlbWVWYWx1ZShyZXNvdXJjZXMsCi0gICAgICAgICAgICAgICAgICAgICJ3aW5kb3dOb1RpdGxlIiwgZmFsc2UgLypkZWZhdWx0VmFsdWUqLyk7Ci0KLSAgICAgICAgICAgIGlmICh3aW5kb3dOb1RpdGxlID09IGZhbHNlKSB7Ci0KLSAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IHNpemUgb2YgdGhlIHdpbmRvdyB0aXRsZSBiYXIKLSAgICAgICAgICAgICAgICBtVGl0bGVCYXJTaXplID0gREVGQVVMVF9USVRMRV9CQVJfSEVJR0hUOwotCi0gICAgICAgICAgICAgICAgLy8gZ2V0IHZhbHVlIGZyb20gdGhlIHRoZW1lLgotICAgICAgICAgICAgICAgIFJlc291cmNlVmFsdWUgdmFsdWUgPSByZXNvdXJjZXMuZmluZEl0ZW1JblRoZW1lKCJ3aW5kb3dUaXRsZVNpemUiLAotICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAvKmlzRnJhbWV3b3JrQXR0ciovKTsKLQotICAgICAgICAgICAgICAgIC8vIHJlc29sdmUgaXQKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHJlc291cmNlcy5yZXNvbHZlUmVzVmFsdWUodmFsdWUpOwotCi0gICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBudW1lcmljYWwgdmFsdWUsIGlmIGF2YWlsYWJsZQotICAgICAgICAgICAgICAgICAgICBUeXBlZFZhbHVlIHR5cGVkVmFsdWUgPSBSZXNvdXJjZUhlbHBlci5nZXRWYWx1ZSgid2luZG93VGl0bGVTaXplIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5nZXRWYWx1ZSgpLCB0cnVlIC8qcmVxdWlyZVVuaXQqLyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlZFZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbXB1dGUgdGhlIHBpeGVsIHZhbHVlIGJhc2VkIG9uIHRoZSBkaXNwbGF5IG1ldHJpY3MKLSAgICAgICAgICAgICAgICAgICAgICAgIG1UaXRsZUJhclNpemUgPSAoaW50KXR5cGVkVmFsdWUuZ2V0RGltZW5zaW9uKG1ldHJpY3MpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcml2YXRlIHZvaWQgZmluZE5hdmlnYXRpb25CYXIoUmVuZGVyUmVzb3VyY2VzIHJlc291cmNlcywgRGlzcGxheU1ldHJpY3MgbWV0cmljcykgewotICAgICAgICBpZiAoaGFzU29mdHdhcmVCdXR0b25zKCkgJiYgbVdpbmRvd0lzRmxvYXRpbmcgPT0gZmFsc2UpIHsKLQotICAgICAgICAgICAgLy8gZGVmYXVsdCB2YWx1ZQotICAgICAgICAgICAgbU5hdmlnYXRpb25CYXJTaXplID0gNDg7IC8vID8/Ci0KLSAgICAgICAgICAgIEhhcmR3YXJlQ29uZmlnIGhhcmR3YXJlQ29uZmlnID0gZ2V0UGFyYW1zKCkuZ2V0SGFyZHdhcmVDb25maWcoKTsKLQotICAgICAgICAgICAgYm9vbGVhbiBiYXJPbkJvdHRvbSA9IHRydWU7Ci0KLSAgICAgICAgICAgIGlmIChoYXJkd2FyZUNvbmZpZy5nZXRPcmllbnRhdGlvbigpID09IFNjcmVlbk9yaWVudGF0aW9uLkxBTkRTQ0FQRSkgewotICAgICAgICAgICAgICAgIC8vIGNvbXB1dGUgdGhlIGRwIG9mIHRoZSBzY3JlZW4uCi0gICAgICAgICAgICAgICAgaW50IHNob3J0U2l6ZSA9IGhhcmR3YXJlQ29uZmlnLmdldFNjcmVlbkhlaWdodCgpOwotCi0gICAgICAgICAgICAgICAgLy8gY29tcHV0ZSBpbiBkcAotICAgICAgICAgICAgICAgIGludCBzaG9ydFNpemVEcCA9IHNob3J0U2l6ZSAqIERpc3BsYXlNZXRyaWNzLkRFTlNJVFlfREVGQVVMVCAvIGhhcmR3YXJlQ29uZmlnLmdldERlbnNpdHkoKS5nZXREcGlWYWx1ZSgpOwotCi0gICAgICAgICAgICAgICAgaWYgKHNob3J0U2l6ZURwIDwgNjAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIDAtNTk5ZHA6ICJwaG9uZSIgVUkgd2l0aCBiYXIgb24gdGhlIHNpZGUKLSAgICAgICAgICAgICAgICAgICAgYmFyT25Cb3R0b20gPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAvLyA2MDArZHA6ICJ0YWJsZXQiIFVJIHdpdGggYmFyIG9uIHRoZSBib3R0b20KLSAgICAgICAgICAgICAgICAgICAgYmFyT25Cb3R0b20gPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKGJhck9uQm90dG9tKSB7Ci0gICAgICAgICAgICAgICAgbU5hdmlnYXRpb25CYXJPcmllbnRhdGlvbiA9IExpbmVhckxheW91dC5IT1JJWk9OVEFMOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtTmF2aWdhdGlvbkJhck9yaWVudGF0aW9uID0gTGluZWFyTGF5b3V0LlZFUlRJQ0FMOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBnZXQgdGhlIHJlYWwgdmFsdWUKLSAgICAgICAgICAgIFJlc291cmNlVmFsdWUgdmFsdWUgPSByZXNvdXJjZXMuZ2V0RnJhbWV3b3JrUmVzb3VyY2UoUmVzb3VyY2VUeXBlLkRJTUVOLAotICAgICAgICAgICAgICAgICAgICBiYXJPbkJvdHRvbSA/ICJuYXZpZ2F0aW9uX2Jhcl9oZWlnaHQiIDogIm5hdmlnYXRpb25fYmFyX3dpZHRoIik7Ci0KLSAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgVHlwZWRWYWx1ZSB0eXBlZFZhbHVlID0gUmVzb3VyY2VIZWxwZXIuZ2V0VmFsdWUoIm5hdmlnYXRpb25fYmFyX2hlaWdodCIsCi0gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5nZXRWYWx1ZSgpLCB0cnVlIC8qcmVxdWlyZVVuaXQqLyk7Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGVkVmFsdWUgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAvLyBjb21wdXRlIHRoZSBwaXhlbCB2YWx1ZSBiYXNlZCBvbiB0aGUgZGlzcGxheSBtZXRyaWNzCi0gICAgICAgICAgICAgICAgICAgIG1OYXZpZ2F0aW9uQmFyU2l6ZSA9IChpbnQpdHlwZWRWYWx1ZS5nZXREaW1lbnNpb24obWV0cmljcyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogTG9va3MgZm9yIGEgYXR0cmlidXRlIGluIHRoZSBjdXJyZW50IHRoZW1lLiBUaGUgYXR0cmlidXRlIGlzIGluIHRoZSBhbmRyb2lkCi0gICAgICogbmFtZXNwYWNlLgotICAgICAqCi0gICAgICogQHBhcmFtIHJlc291cmNlcyB0aGUgcmVuZGVyIHJlc291cmNlcwotICAgICAqIEBwYXJhbSBuYW1lIHRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUKLSAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIHRoZSBkZWZhdWx0IHZhbHVlLgotICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgb3IgdGhlIGRlZmF1bHQgb25lIGlmIG5vdCBmb3VuZC4KLSAgICAgKi8KLSAgICBwcml2YXRlIGJvb2xlYW4gZ2V0Qm9vbGVhblRoZW1lVmFsdWUoUmVuZGVyUmVzb3VyY2VzIHJlc291cmNlcywKLSAgICAgICAgICAgIFN0cmluZyBuYW1lLCBib29sZWFuIGRlZmF1bHRWYWx1ZSkgewotCi0gICAgICAgIC8vIGdldCB0aGUgdGl0bGUgYmFyIGZsYWcgZnJvbSB0aGUgY3VycmVudCB0aGVtZS4KLSAgICAgICAgUmVzb3VyY2VWYWx1ZSB2YWx1ZSA9IHJlc291cmNlcy5maW5kSXRlbUluVGhlbWUobmFtZSwgdHJ1ZSAvKmlzRnJhbWV3b3JrQXR0ciovKTsKLQotICAgICAgICAvLyBiZWNhdXNlIGl0IG1heSByZWZlcmVuY2Ugc29tZXRoaW5nIGVsc2UsIHdlIHJlc29sdmUgaXQuCi0gICAgICAgIHZhbHVlID0gcmVzb3VyY2VzLnJlc29sdmVSZXNWYWx1ZSh2YWx1ZSk7Ci0KLSAgICAgICAgLy8gaWYgdGhlcmUncyBubyB2YWx1ZSwgcmV0dXJuIHRoZSBkZWZhdWx0LgotICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZS5nZXRWYWx1ZSgpID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gWG1sVXRpbHMuY29udmVydFZhbHVlVG9Cb29sZWFuKHZhbHVlLmdldFZhbHVlKCksIGRlZmF1bHRWYWx1ZSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUG9zdCBwcm9jZXNzIG9uIGEgdmlldyBoaWVyYWNoeSB0aGF0IHdhcyBqdXN0IGluZmxhdGVkLgotICAgICAqIDxwLz5BdCB0aGUgbW9tZW50IHRoaXMgb25seSBzdXBwb3J0IFRhYkhvc3Q6IElmIHtAbGluayBUYWJIb3N0fSBpcyBkZXRlY3RlZCwgbG9vayBmb3IgdGhlCi0gICAgICoge0BsaW5rIFRhYldpZGdldH0sIGFuZCB0aGUgY29ycmVzcG9uZGluZyB7QGxpbmsgRnJhbWVMYXlvdXR9IGFuZCBtYWtlIG5ldyB0YWJzIGF1dG9tYXRpY2FsbHkKLSAgICAgKiBiYXNlZCBvbiB0aGUgY29udGVudCBvZiB0aGUge0BsaW5rIEZyYW1lTGF5b3V0fS4KLSAgICAgKiBAcGFyYW0gdmlldyB0aGUgcm9vdCB2aWV3IHRvIHByb2Nlc3MuCi0gICAgICogQHBhcmFtIHByb2plY3RDYWxsYmFjayBjYWxsYmFjayB0byB0aGUgcHJvamVjdC4KLSAgICAgKi8KLSAgICBwcml2YXRlIHZvaWQgcG9zdEluZmxhdGVQcm9jZXNzKFZpZXcgdmlldywgSVByb2plY3RDYWxsYmFjayBwcm9qZWN0Q2FsbGJhY2spCi0gICAgICAgICAgICB0aHJvd3MgUG9zdEluZmxhdGVFeGNlcHRpb24gewotICAgICAgICBpZiAodmlldyBpbnN0YW5jZW9mIFRhYkhvc3QpIHsKLSAgICAgICAgICAgIHNldHVwVGFiSG9zdCgoVGFiSG9zdCl2aWV3LCBwcm9qZWN0Q2FsbGJhY2spOwotICAgICAgICB9IGVsc2UgaWYgKHZpZXcgaW5zdGFuY2VvZiBRdWlja0NvbnRhY3RCYWRnZSkgewotICAgICAgICAgICAgUXVpY2tDb250YWN0QmFkZ2UgYmFkZ2UgPSAoUXVpY2tDb250YWN0QmFkZ2UpIHZpZXc7Ci0gICAgICAgICAgICBiYWRnZS5zZXRJbWFnZVRvRGVmYXVsdCgpOwotICAgICAgICB9IGVsc2UgaWYgKHZpZXcgaW5zdGFuY2VvZiBBZGFwdGVyVmlldzw/PikgewotICAgICAgICAgICAgLy8gZ2V0IHRoZSB2aWV3IElELgotICAgICAgICAgICAgaW50IGlkID0gdmlldy5nZXRJZCgpOwotCi0gICAgICAgICAgICBCcmlkZ2VDb250ZXh0IGNvbnRleHQgPSBnZXRDb250ZXh0KCk7Ci0KLSAgICAgICAgICAgIC8vIGdldCBhIFJlc291cmNlUmVmZXJlbmNlIGZyb20gdGhlIGludGVnZXIgSUQuCi0gICAgICAgICAgICBSZXNvdXJjZVJlZmVyZW5jZSBsaXN0UmVmID0gY29udGV4dC5yZXNvbHZlSWQoaWQpOwotCi0gICAgICAgICAgICBpZiAobGlzdFJlZiAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgU2Vzc2lvblBhcmFtcyBwYXJhbXMgPSBnZXRQYXJhbXMoKTsKLSAgICAgICAgICAgICAgICBBZGFwdGVyQmluZGluZyBiaW5kaW5nID0gcGFyYW1zLmdldEFkYXB0ZXJCaW5kaW5ncygpLmdldChsaXN0UmVmKTsKLQotICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIHdhcyBubyBhZGFwdGVyIGJpbmRpbmcsIHRyeWluZyB0byBnZXQgaXQgZnJvbSB0aGUgY2FsbCBiYWNrLgotICAgICAgICAgICAgICAgIGlmIChiaW5kaW5nID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgYmluZGluZyA9IHBhcmFtcy5nZXRQcm9qZWN0Q2FsbGJhY2soKS5nZXRBZGFwdGVyQmluZGluZyhsaXN0UmVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZ2V0Vmlld0tleSh2aWV3KSwgdmlldyk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKGJpbmRpbmcgIT0gbnVsbCkgewotCi0gICAgICAgICAgICAgICAgICAgIGlmICh2aWV3IGluc3RhbmNlb2YgQWJzTGlzdFZpZXcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoYmluZGluZy5nZXRGb290ZXJDb3VudCgpID4gMCB8fCBiaW5kaW5nLmdldEhlYWRlckNvdW50KCkgPiAwKSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3IGluc3RhbmNlb2YgTGlzdFZpZXcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0VmlldyBsaXN0ID0gKExpc3RWaWV3KSB2aWV3OwotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBza2lwQ2FsbGJhY2tQYXJzZXIgPSBmYWxzZTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb3VudCA9IGJpbmRpbmcuZ2V0SGVhZGVyQ291bnQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgPCBjb3VudCA7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWlyPFZpZXcsIEJvb2xlYW4+IHBhaXIgPSBjb250ZXh0LmluZmxhdGVWaWV3KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRpbmcuZ2V0SGVhZGVyQXQoaSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCwgZmFsc2UgLyphdHRhY2hUb1Jvb3QqLywgc2tpcENhbGxiYWNrUGFyc2VyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhaXIuZ2V0Rmlyc3QoKSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LmFkZEhlYWRlclZpZXcocGFpci5nZXRGaXJzdCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBDYWxsYmFja1BhcnNlciB8PSBwYWlyLmdldFNlY29uZCgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gYmluZGluZy5nZXRGb290ZXJDb3VudCgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwIDsgaSA8IGNvdW50IDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhaXI8VmlldywgQm9vbGVhbj4gcGFpciA9IGNvbnRleHQuaW5mbGF0ZVZpZXcoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluZGluZy5nZXRGb290ZXJBdChpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LCBmYWxzZSAvKmF0dGFjaFRvUm9vdCovLCBza2lwQ2FsbGJhY2tQYXJzZXIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFpci5nZXRGaXJzdCgpICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QuYWRkRm9vdGVyVmlldyhwYWlyLmdldEZpcnN0KCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcENhbGxiYWNrUGFyc2VyIHw9IHBhaXIuZ2V0U2Vjb25kKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmlldyBpbnN0YW5jZW9mIEV4cGFuZGFibGVMaXN0VmlldykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoRXhwYW5kYWJsZUxpc3RWaWV3KSB2aWV3KS5zZXRBZGFwdGVyKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZha2VFeHBhbmRhYmxlQWRhcHRlcigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFJlZiwgYmluZGluZywgcGFyYW1zLmdldFByb2plY3RDYWxsYmFjaygpKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoQWJzTGlzdFZpZXcpIHZpZXcpLnNldEFkYXB0ZXIoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmFrZUFkYXB0ZXIoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RSZWYsIGJpbmRpbmcsIHBhcmFtcy5nZXRQcm9qZWN0Q2FsbGJhY2soKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZpZXcgaW5zdGFuY2VvZiBBYnNTcGlubmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAoKEFic1NwaW5uZXIpIHZpZXcpLnNldEFkYXB0ZXIoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGYWtlQWRhcHRlcigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0UmVmLCBiaW5kaW5nLCBwYXJhbXMuZ2V0UHJvamVjdENhbGxiYWNrKCkpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmICh2aWV3IGluc3RhbmNlb2YgVmlld0dyb3VwKSB7Ci0gICAgICAgICAgICBWaWV3R3JvdXAgZ3JvdXAgPSAoVmlld0dyb3VwKXZpZXc7Ci0gICAgICAgICAgICBmaW5hbCBpbnQgY291bnQgPSBncm91cC5nZXRDaGlsZENvdW50KCk7Ci0gICAgICAgICAgICBmb3IgKGludCBjID0gMCA7IGMgPCBjb3VudCA7IGMrKykgewotICAgICAgICAgICAgICAgIFZpZXcgY2hpbGQgPSBncm91cC5nZXRDaGlsZEF0KGMpOwotICAgICAgICAgICAgICAgIHBvc3RJbmZsYXRlUHJvY2VzcyhjaGlsZCwgcHJvamVjdENhbGxiYWNrKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFNldHMgdXAgYSB7QGxpbmsgVGFiSG9zdH0gb2JqZWN0LgotICAgICAqIEBwYXJhbSB0YWJIb3N0IHRoZSBUYWJIb3N0IHRvIHNldHVwLgotICAgICAqIEBwYXJhbSBwcm9qZWN0Q2FsbGJhY2sgVGhlIHByb2plY3QgY2FsbGJhY2sgb2JqZWN0IHRvIGFjY2VzcyB0aGUgcHJvamVjdCBSIGNsYXNzLgotICAgICAqIEB0aHJvd3MgUG9zdEluZmxhdGVFeGNlcHRpb24KLSAgICAgKi8KLSAgICBwcml2YXRlIHZvaWQgc2V0dXBUYWJIb3N0KFRhYkhvc3QgdGFiSG9zdCwgSVByb2plY3RDYWxsYmFjayBwcm9qZWN0Q2FsbGJhY2spCi0gICAgICAgICAgICB0aHJvd3MgUG9zdEluZmxhdGVFeGNlcHRpb24gewotICAgICAgICAvLyBsb29rIGZvciB0aGUgVGFiV2lkZ2V0LCBhbmQgdGhlIEZyYW1lTGF5b3V0LiBUaGV5IGhhdmUgdGhlaXIgb3duIHNwZWNpZmljIG5hbWVzCi0gICAgICAgIFZpZXcgdiA9IHRhYkhvc3QuZmluZFZpZXdCeUlkKGFuZHJvaWQuUi5pZC50YWJzKTsKLQotICAgICAgICBpZiAodiA9PSBudWxsKSB7Ci0gICAgICAgICAgICB0aHJvdyBuZXcgUG9zdEluZmxhdGVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICJUYWJIb3N0IHJlcXVpcmVzIGEgVGFiV2lkZ2V0IHdpdGggaWQgXCJhbmRyb2lkOmlkL3RhYnNcIi5cbiIpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCh2IGluc3RhbmNlb2YgVGFiV2lkZ2V0KSA9PSBmYWxzZSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IFBvc3RJbmZsYXRlRXhjZXB0aW9uKFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICJUYWJIb3N0IHJlcXVpcmVzIGEgVGFiV2lkZ2V0IHdpdGggaWQgXCJhbmRyb2lkOmlkL3RhYnNcIi5cbiIgKwotICAgICAgICAgICAgICAgICAgICAiVmlldyBmb3VuZCB3aXRoIGlkICd0YWJzJyBpcyAnJXMnIiwgdi5nZXRDbGFzcygpLmdldENhbm9uaWNhbE5hbWUoKSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgdiA9IHRhYkhvc3QuZmluZFZpZXdCeUlkKGFuZHJvaWQuUi5pZC50YWJjb250ZW50KTsKLQotICAgICAgICBpZiAodiA9PSBudWxsKSB7Ci0gICAgICAgICAgICAvLyBUT0RPOiBzZWUgaWYgd2UgY2FuIGZha2UgdGFicyBldmVuIHdpdGhvdXQgdGhlIEZyYW1lTGF5b3V0IChzYW1lIGJlbG93IHdoZW4gdGhlIGZyYW1lbGF5b3V0IGlzIGVtcHR5KQotICAgICAgICAgICAgdGhyb3cgbmV3IFBvc3RJbmZsYXRlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAiVGFiSG9zdCByZXF1aXJlcyBhIEZyYW1lTGF5b3V0IHdpdGggaWQgXCJhbmRyb2lkOmlkL3RhYmNvbnRlbnRcIi4iKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICgodiBpbnN0YW5jZW9mIEZyYW1lTGF5b3V0KSA9PSBmYWxzZSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IFBvc3RJbmZsYXRlRXhjZXB0aW9uKFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICJUYWJIb3N0IHJlcXVpcmVzIGEgRnJhbWVMYXlvdXQgd2l0aCBpZCBcImFuZHJvaWQ6aWQvdGFiY29udGVudFwiLlxuIiArCi0gICAgICAgICAgICAgICAgICAgICJWaWV3IGZvdW5kIHdpdGggaWQgJ3RhYmNvbnRlbnQnIGlzICclcyciLCB2LmdldENsYXNzKCkuZ2V0Q2Fub25pY2FsTmFtZSgpKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBGcmFtZUxheW91dCBjb250ZW50ID0gKEZyYW1lTGF5b3V0KXY7Ci0KLSAgICAgICAgLy8gbm93IHByb2Nlc3MgdGhlIGNvbnRlbnQgb2YgdGhlIGZyYW1lbGF5b3V0IGFuZCBkeW5hbWljYWxseSBjcmVhdGUgdGFicyBmb3IgaXQuCi0gICAgICAgIGZpbmFsIGludCBjb3VudCA9IGNvbnRlbnQuZ2V0Q2hpbGRDb3VudCgpOwotCi0gICAgICAgIC8vIHRoaXMgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFkZFRhYigpIHNvIHRoYXQgdGhlIFRhYkhvc3Qgc2VhcmNoZXMgaXRzIFRhYldpZGdldAotICAgICAgICAvLyBhbmQgRnJhbWVMYXlvdXQuCi0gICAgICAgIHRhYkhvc3Quc2V0dXAoKTsKLQotICAgICAgICBpZiAoY291bnQgPT0gMCkgewotICAgICAgICAgICAgLy8gQ3JlYXRlIGEgZHVtbXkgY2hpbGQgdG8gZ2V0IGEgc2luZ2xlIHRhYgotICAgICAgICAgICAgVGFiU3BlYyBzcGVjID0gdGFiSG9zdC5uZXdUYWJTcGVjKCJ0YWciKS5zZXRJbmRpY2F0b3IoIlRhYiBMYWJlbCIsCi0gICAgICAgICAgICAgICAgICAgIHRhYkhvc3QuZ2V0UmVzb3VyY2VzKCkuZ2V0RHJhd2FibGUoYW5kcm9pZC5SLmRyYXdhYmxlLmljX21lbnVfaW5mb19kZXRhaWxzKSkKLSAgICAgICAgICAgICAgICAgICAgLnNldENvbnRlbnQobmV3IFRhYkhvc3QuVGFiQ29udGVudEZhY3RvcnkoKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBWaWV3IGNyZWF0ZVRhYkNvbnRlbnQoU3RyaW5nIHRhZykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTGluZWFyTGF5b3V0KGdldENvbnRleHQoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgdGFiSG9zdC5hZGRUYWIoc3BlYyk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBmb3IgZWFjaCBjaGlsZCBvZiB0aGUgZnJhbWVsYXlvdXQsIGFkZCBhIG5ldyBUYWJTcGVjCi0gICAgICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgPCBjb3VudCA7IGkrKykgewotICAgICAgICAgICAgICAgIFZpZXcgY2hpbGQgPSBjb250ZW50LmdldENoaWxkQXQoaSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHRhYlNwZWMgPSBTdHJpbmcuZm9ybWF0KCJ0YWJfc3BlYyVkIiwgaSsxKTsKLSAgICAgICAgICAgICAgICBpbnQgaWQgPSBjaGlsZC5nZXRJZCgpOwotICAgICAgICAgICAgICAgIFBhaXI8UmVzb3VyY2VUeXBlLCBTdHJpbmc+IHJlc291cmNlID0gcHJvamVjdENhbGxiYWNrLnJlc29sdmVSZXNvdXJjZUlkKGlkKTsKLSAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZTsKLSAgICAgICAgICAgICAgICBpZiAocmVzb3VyY2UgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBuYW1lID0gcmVzb3VyY2UuZ2V0U2Vjb25kKCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgbmFtZSA9IFN0cmluZy5mb3JtYXQoIlRhYiAlZCIsIGkrMSk7IC8vIGRlZmF1bHQgbmFtZSBpZiBpZCBpcyB1bnJlc29sdmVkLgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB0YWJIb3N0LmFkZFRhYih0YWJIb3N0Lm5ld1RhYlNwZWModGFiU3BlYykuc2V0SW5kaWNhdG9yKG5hbWUpLnNldENvbnRlbnQoaWQpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgTGlzdDxWaWV3SW5mbz4gc3RhcnRWaXNpdGluZ1ZpZXdzKFZpZXcgdmlldywgaW50IG9mZnNldCwgYm9vbGVhbiBzZXRFeHRlbmRlZEluZm8pIHsKLSAgICAgICAgaWYgKHZpZXcgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBhZGp1c3QgdGhlIG9mZnNldCB0byB0aGlzIHZpZXcuCi0gICAgICAgIG9mZnNldCArPSB2aWV3LmdldFRvcCgpOwotCi0gICAgICAgIGlmICh2aWV3ID09IG1Db250ZW50Um9vdCkgewotICAgICAgICAgICAgcmV0dXJuIHZpc2l0QWxsQ2hpbGRyZW4obUNvbnRlbnRSb290LCBvZmZzZXQsIHNldEV4dGVuZGVkSW5mbyk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBvdGhlcndpc2UsIGxvb2sgZm9yIG1Db250ZW50Um9vdCBpbiB0aGUgY2hpbGRyZW4KLSAgICAgICAgaWYgKHZpZXcgaW5zdGFuY2VvZiBWaWV3R3JvdXApIHsKLSAgICAgICAgICAgIFZpZXdHcm91cCBncm91cCA9ICgoVmlld0dyb3VwKSB2aWV3KTsKLQotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBncm91cC5nZXRDaGlsZENvdW50KCk7IGkrKykgewotICAgICAgICAgICAgICAgIExpc3Q8Vmlld0luZm8+IGxpc3QgPSBzdGFydFZpc2l0aW5nVmlld3MoZ3JvdXAuZ2V0Q2hpbGRBdChpKSwgb2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgc2V0RXh0ZW5kZWRJbmZvKTsKLSAgICAgICAgICAgICAgICBpZiAobGlzdCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBsaXN0OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFZpc2l0cyBhIFZpZXcgYW5kIGl0cyBjaGlsZHJlbiBhbmQgZ2VuZXJhdGUgYSB7QGxpbmsgVmlld0luZm99IGNvbnRhaW5pbmcgdGhlCi0gICAgICogYm91bmRzIG9mIGFsbCB0aGUgdmlld3MuCi0gICAgICogQHBhcmFtIHZpZXcgdGhlIHJvb3QgVmlldwotICAgICAqIEBwYXJhbSBvZmZzZXQgYW4gb2Zmc2V0IGZvciB0aGUgdmlldyBib3VuZHMuCi0gICAgICogQHBhcmFtIHNldEV4dGVuZGVkSW5mbyB3aGV0aGVyIHRvIHNldCB0aGUgZXh0ZW5kZWQgdmlldyBpbmZvIGluIHRoZSB7QGxpbmsgVmlld0luZm99IG9iamVjdC4KLSAgICAgKi8KLSAgICBwcml2YXRlIFZpZXdJbmZvIHZpc2l0KFZpZXcgdmlldywgaW50IG9mZnNldCwgYm9vbGVhbiBzZXRFeHRlbmRlZEluZm8pIHsKLSAgICAgICAgaWYgKHZpZXcgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBWaWV3SW5mbyByZXN1bHQgPSBuZXcgVmlld0luZm8odmlldy5nZXRDbGFzcygpLmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICBnZXRDb250ZXh0KCkuZ2V0Vmlld0tleSh2aWV3KSwKLSAgICAgICAgICAgICAgICB2aWV3LmdldExlZnQoKSwgdmlldy5nZXRUb3AoKSArIG9mZnNldCwgdmlldy5nZXRSaWdodCgpLCB2aWV3LmdldEJvdHRvbSgpICsgb2Zmc2V0LAotICAgICAgICAgICAgICAgIHZpZXcsIHZpZXcuZ2V0TGF5b3V0UGFyYW1zKCkpOwotCi0gICAgICAgIGlmIChzZXRFeHRlbmRlZEluZm8pIHsKLSAgICAgICAgICAgIE1hcmdpbkxheW91dFBhcmFtcyBtYXJnaW5QYXJhbXMgPSBudWxsOwotICAgICAgICAgICAgTGF5b3V0UGFyYW1zIHBhcmFtcyA9IHZpZXcuZ2V0TGF5b3V0UGFyYW1zKCk7Ci0gICAgICAgICAgICBpZiAocGFyYW1zIGluc3RhbmNlb2YgTWFyZ2luTGF5b3V0UGFyYW1zKSB7Ci0gICAgICAgICAgICAgICAgbWFyZ2luUGFyYW1zID0gKE1hcmdpbkxheW91dFBhcmFtcykgcGFyYW1zOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVzdWx0LnNldEV4dGVuZGVkSW5mbyh2aWV3LmdldEJhc2VsaW5lKCksCi0gICAgICAgICAgICAgICAgICAgIG1hcmdpblBhcmFtcyAhPSBudWxsID8gbWFyZ2luUGFyYW1zLmxlZnRNYXJnaW4gOiAwLAotICAgICAgICAgICAgICAgICAgICBtYXJnaW5QYXJhbXMgIT0gbnVsbCA/IG1hcmdpblBhcmFtcy50b3BNYXJnaW4gOiAwLAotICAgICAgICAgICAgICAgICAgICBtYXJnaW5QYXJhbXMgIT0gbnVsbCA/IG1hcmdpblBhcmFtcy5yaWdodE1hcmdpbiA6IDAsCi0gICAgICAgICAgICAgICAgICAgIG1hcmdpblBhcmFtcyAhPSBudWxsID8gbWFyZ2luUGFyYW1zLmJvdHRvbU1hcmdpbiA6IDApOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHZpZXcgaW5zdGFuY2VvZiBWaWV3R3JvdXApIHsKLSAgICAgICAgICAgIFZpZXdHcm91cCBncm91cCA9ICgoVmlld0dyb3VwKSB2aWV3KTsKLSAgICAgICAgICAgIHJlc3VsdC5zZXRDaGlsZHJlbih2aXNpdEFsbENoaWxkcmVuKGdyb3VwLCAwIC8qb2Zmc2V0Ki8sIHNldEV4dGVuZGVkSW5mbykpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBWaXNpdHMgYWxsIHRoZSBjaGlsZHJlbiBvZiBhIGdpdmVuIFZpZXdHcm91cCBnZW5lcmF0ZSBhIGxpc3Qgb2Yge0BsaW5rIFZpZXdJbmZvfQotICAgICAqIGNvbnRhaW5pbmcgdGhlIGJvdW5kcyBvZiBhbGwgdGhlIHZpZXdzLgotICAgICAqIEBwYXJhbSB2aWV3IHRoZSByb290IFZpZXcKLSAgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIG9mZnNldCBmb3IgdGhlIHZpZXcgYm91bmRzLgotICAgICAqIEBwYXJhbSBzZXRFeHRlbmRlZEluZm8gd2hldGhlciB0byBzZXQgdGhlIGV4dGVuZGVkIHZpZXcgaW5mbyBpbiB0aGUge0BsaW5rIFZpZXdJbmZvfSBvYmplY3QuCi0gICAgICovCi0gICAgcHJpdmF0ZSBMaXN0PFZpZXdJbmZvPiB2aXNpdEFsbENoaWxkcmVuKFZpZXdHcm91cCB2aWV3R3JvdXAsIGludCBvZmZzZXQsCi0gICAgICAgICAgICBib29sZWFuIHNldEV4dGVuZGVkSW5mbykgewotICAgICAgICBpZiAodmlld0dyb3VwID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgTGlzdDxWaWV3SW5mbz4gY2hpbGRyZW4gPSBuZXcgQXJyYXlMaXN0PFZpZXdJbmZvPigpOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZpZXdHcm91cC5nZXRDaGlsZENvdW50KCk7IGkrKykgewotICAgICAgICAgICAgY2hpbGRyZW4uYWRkKHZpc2l0KHZpZXdHcm91cC5nZXRDaGlsZEF0KGkpLCBvZmZzZXQsIHNldEV4dGVuZGVkSW5mbykpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBjaGlsZHJlbjsKLSAgICB9Ci0KLQotICAgIHByaXZhdGUgdm9pZCBpbnZhbGlkYXRlUmVuZGVyaW5nU2l6ZSgpIHsKLSAgICAgICAgbU1lYXN1cmVkU2NyZWVuV2lkdGggPSBtTWVhc3VyZWRTY3JlZW5IZWlnaHQgPSAtMTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgQnVmZmVyZWRJbWFnZSBnZXRJbWFnZSgpIHsKLSAgICAgICAgcmV0dXJuIG1JbWFnZTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgYm9vbGVhbiBpc0FscGhhQ2hhbm5lbEltYWdlKCkgewotICAgICAgICByZXR1cm4gbUlzQWxwaGFDaGFubmVsSW1hZ2U7Ci0gICAgfQotCi0gICAgcHVibGljIExpc3Q8Vmlld0luZm8+IGdldFZpZXdJbmZvcygpIHsKLSAgICAgICAgcmV0dXJuIG1WaWV3SW5mb0xpc3Q7Ci0gICAgfQotCi0gICAgcHVibGljIE1hcDxTdHJpbmcsIFN0cmluZz4gZ2V0RGVmYXVsdFByb3BlcnRpZXMoT2JqZWN0IHZpZXdPYmplY3QpIHsKLSAgICAgICAgcmV0dXJuIGdldENvbnRleHQoKS5nZXREZWZhdWx0UHJvcE1hcCh2aWV3T2JqZWN0KTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBzZXRTY2VuZShSZW5kZXJTZXNzaW9uIHNlc3Npb24pIHsKLSAgICAgICAgbVNjZW5lID0gc2Vzc2lvbjsKLSAgICB9Ci0KLSAgICBwdWJsaWMgUmVuZGVyU2Vzc2lvbiBnZXRTZXNzaW9uKCkgewotICAgICAgICByZXR1cm4gbVNjZW5lOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9SZXNvdXJjZUhlbHBlci5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL1Jlc291cmNlSGVscGVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkY2I2OTMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL1Jlc291cmNlSGVscGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw0OTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQubGF5b3V0bGliLmJyaWRnZS5pbXBsOwotCi1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkRlbnNpdHlCYXNlZFJlc291cmNlVmFsdWU7Ci1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkxheW91dExvZzsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuUmVuZGVyUmVzb3VyY2VzOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXNvdXJjZVZhbHVlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC5CcmlkZ2VDb250ZXh0OwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC5CcmlkZ2VYbWxCbG9ja1BhcnNlcjsKLWltcG9ydCBjb20uYW5kcm9pZC5uaW5lcGF0Y2guTmluZVBhdGNoOwotaW1wb3J0IGNvbS5hbmRyb2lkLm5pbmVwYXRjaC5OaW5lUGF0Y2hDaHVuazsKLWltcG9ydCBjb20uYW5kcm9pZC5yZXNvdXJjZXMuRGVuc2l0eTsKLQotaW1wb3J0IG9yZy54bWxwdWxsLnYxLlhtbFB1bGxQYXJzZXI7Ci1pbXBvcnQgb3JnLnhtbHB1bGwudjEuWG1sUHVsbFBhcnNlckV4Y2VwdGlvbjsKLQotaW1wb3J0IGFuZHJvaWQuY29udGVudC5yZXMuQ29sb3JTdGF0ZUxpc3Q7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXA7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5CaXRtYXBfRGVsZWdhdGU7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5OaW5lUGF0Y2hfRGVsZWdhdGU7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5SZWN0OwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuQml0bWFwRHJhd2FibGU7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS5Db2xvckRyYXdhYmxlOwotaW1wb3J0IGFuZHJvaWQuZ3JhcGhpY3MuZHJhd2FibGUuRHJhd2FibGU7Ci1pbXBvcnQgYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS5OaW5lUGF0Y2hEcmF3YWJsZTsKLWltcG9ydCBhbmRyb2lkLnV0aWwuVHlwZWRWYWx1ZTsKLQotaW1wb3J0IGphdmEuaW8uRmlsZTsKLWltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwotaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5uZXQuTWFsZm9ybWVkVVJMRXhjZXB0aW9uOwotaW1wb3J0IGphdmEudXRpbC5yZWdleC5NYXRjaGVyOwotaW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOwotCi0vKioKLSAqIEhlbHBlciBjbGFzcyB0byBwcm92aWRlIHZhcmlvdXMgY29udmVyc2lvbiBtZXRob2QgdXNlZCBpbiBoYW5kbGluZyBhbmRyb2lkIHJlc291cmNlcy4KLSAqLwotcHVibGljIGZpbmFsIGNsYXNzIFJlc291cmNlSGVscGVyIHsKLQotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIFBhdHRlcm4gc0Zsb2F0UGF0dGVybiA9IFBhdHRlcm4uY29tcGlsZSgiKC0/WzAtOV0rKD86XFwuWzAtOV0rKT8pKC4qKSIpOwotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGZsb2F0W10gc0Zsb2F0T3V0ID0gbmV3IGZsb2F0WzFdOwotCi0gICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgVHlwZWRWYWx1ZSBtVmFsdWUgPSBuZXcgVHlwZWRWYWx1ZSgpOwotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgY29sb3IgdmFsdWUgcmVwcmVzZW50ZWQgYnkgdGhlIGdpdmVuIHN0cmluZyB2YWx1ZQotICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgY29sb3IgdmFsdWUKLSAgICAgKiBAcmV0dXJuIHRoZSBjb2xvciBhcyBhbiBpbnQKLSAgICAgKiBAdGhyb3cgTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGlmIHRoZSBjb252ZXJzaW9uIGZhaWxlZC4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDb2xvcihTdHJpbmcgdmFsdWUpIHsKLSAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKLSAgICAgICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKCIjIikgPT0gZmFsc2UpIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTnVtYmVyRm9ybWF0RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLmZvcm1hdCgiQ29sb3IgdmFsdWUgJyVzJyBtdXN0IHN0YXJ0IHdpdGggIyIsIHZhbHVlKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDEpOwotCi0gICAgICAgICAgICAvLyBtYWtlIHN1cmUgaXQncyBub3QgbG9uZ2VyIHRoYW4gMzJiaXQKLSAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGgoKSA+IDgpIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTnVtYmVyRm9ybWF0RXhjZXB0aW9uKFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAiQ29sb3IgdmFsdWUgJyVzJyBpcyB0b28gbG9uZy4gRm9ybWF0IGlzIGVpdGhlciIgKwotICAgICAgICAgICAgICAgICAgICAgICAgIiNBQVJSR0dCQiwgI1JSR0dCQiwgI1JHQiwgb3IgI0FSR0IiLAotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCgpID09IDMpIHsgLy8gUkdCIGZvcm1hdAotICAgICAgICAgICAgICAgIGNoYXJbXSBjb2xvciA9IG5ldyBjaGFyWzhdOwotICAgICAgICAgICAgICAgIGNvbG9yWzBdID0gY29sb3JbMV0gPSAnRic7Ci0gICAgICAgICAgICAgICAgY29sb3JbMl0gPSBjb2xvclszXSA9IHZhbHVlLmNoYXJBdCgwKTsKLSAgICAgICAgICAgICAgICBjb2xvcls0XSA9IGNvbG9yWzVdID0gdmFsdWUuY2hhckF0KDEpOwotICAgICAgICAgICAgICAgIGNvbG9yWzZdID0gY29sb3JbN10gPSB2YWx1ZS5jaGFyQXQoMik7Ci0gICAgICAgICAgICAgICAgdmFsdWUgPSBuZXcgU3RyaW5nKGNvbG9yKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoKCkgPT0gNCkgeyAvLyBBUkdCIGZvcm1hdAotICAgICAgICAgICAgICAgIGNoYXJbXSBjb2xvciA9IG5ldyBjaGFyWzhdOwotICAgICAgICAgICAgICAgIGNvbG9yWzBdID0gY29sb3JbMV0gPSB2YWx1ZS5jaGFyQXQoMCk7Ci0gICAgICAgICAgICAgICAgY29sb3JbMl0gPSBjb2xvclszXSA9IHZhbHVlLmNoYXJBdCgxKTsKLSAgICAgICAgICAgICAgICBjb2xvcls0XSA9IGNvbG9yWzVdID0gdmFsdWUuY2hhckF0KDIpOwotICAgICAgICAgICAgICAgIGNvbG9yWzZdID0gY29sb3JbN10gPSB2YWx1ZS5jaGFyQXQoMyk7Ci0gICAgICAgICAgICAgICAgdmFsdWUgPSBuZXcgU3RyaW5nKGNvbG9yKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoKCkgPT0gNikgewotICAgICAgICAgICAgICAgIHZhbHVlID0gIkZGIiArIHZhbHVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyB0aGlzIGlzIGEgUlJHR0JCIG9yIEFBUlJHR0JCIHZhbHVlCi0KLSAgICAgICAgICAgIC8vIEludGVnZXIucGFyc2VJbnQgd2lsbCBmYWlsIHRvIHBhcnNlIHN0cmluZ3MgbGlrZSAiZmYxOTE5MTkiLCBzbyB3ZSB1c2UKLSAgICAgICAgICAgIC8vIGEgTG9uZywgYnV0IGNhc3QgdGhlIHJlc3VsdCBiYWNrIGludG8gYW4gaW50LCBzaW5jZSB3ZSBrbm93IHRoYXQgd2UncmUgb25seQotICAgICAgICAgICAgLy8gZGVhbGluZyB3aXRoIDMyIGJpdCB2YWx1ZXMuCi0gICAgICAgICAgICByZXR1cm4gKGludClMb25nLnBhcnNlTG9uZyh2YWx1ZSwgMTYpOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhyb3cgbmV3IE51bWJlckZvcm1hdEV4Y2VwdGlvbigpOwotICAgIH0KLQotICAgIHB1YmxpYyBzdGF0aWMgQ29sb3JTdGF0ZUxpc3QgZ2V0Q29sb3JTdGF0ZUxpc3QoUmVzb3VyY2VWYWx1ZSByZXNWYWx1ZSwgQnJpZGdlQ29udGV4dCBjb250ZXh0KSB7Ci0gICAgICAgIFN0cmluZyB2YWx1ZSA9IHJlc1ZhbHVlLmdldFZhbHVlKCk7Ci0gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIFJlbmRlclJlc291cmNlcy5SRUZFUkVOQ0VfTlVMTC5lcXVhbHModmFsdWUpID09IGZhbHNlKSB7Ci0gICAgICAgICAgICAvLyBmaXJzdCBjaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBmaWxlICh4bWwgbW9zdCBsaWtlbHkpCi0gICAgICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZSh2YWx1ZSk7Ci0gICAgICAgICAgICBpZiAoZi5pc0ZpbGUoKSkgewotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIGxldCB0aGUgZnJhbWV3b3JrIGluZmxhdGUgdGhlIENvbG9yU3RhdGVMaXN0IGZyb20gdGhlIFhNTCBmaWxlLCBieQotICAgICAgICAgICAgICAgICAgICAvLyBwcm92aWRpbmcgYW4gWG1sUHVsbFBhcnNlcgotICAgICAgICAgICAgICAgICAgICBYbWxQdWxsUGFyc2VyIHBhcnNlciA9IFBhcnNlckZhY3RvcnkuY3JlYXRlKGYpOwotCi0gICAgICAgICAgICAgICAgICAgIEJyaWRnZVhtbEJsb2NrUGFyc2VyIGJsb2NrUGFyc2VyID0gbmV3IEJyaWRnZVhtbEJsb2NrUGFyc2VyKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlciwgY29udGV4dCwgcmVzVmFsdWUuaXNGcmFtZXdvcmsoKSk7Ci0gICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29sb3JTdGF0ZUxpc3QuY3JlYXRlRnJvbVhtbChjb250ZXh0LmdldFJlc291cmNlcygpLCBibG9ja1BhcnNlcik7Ci0gICAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBibG9ja1BhcnNlci5lbnN1cmVQb3BwZWQoKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFhtbFB1bGxQYXJzZXJFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZXJyb3IoTGF5b3V0TG9nLlRBR19CUk9LRU4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBjb25maWd1cmUgcGFyc2VyIGZvciAiICsgdmFsdWUsIGUsIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgICAgICAgICAvLyB3ZSdsbCByZXR1cm4gbnVsbCBiZWxvdy4KLSAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGFuIGVycm9yIGFuZCBub3Qgd2FybmluZyBzaW5jZSB0aGUgZmlsZSBleGlzdGVuY2UgaXMKLSAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2tlZCBiZWZvcmUgYXR0ZW1wdGluZyB0byBwYXJzZSBpdC4KLSAgICAgICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfUkVTT1VSQ0VTX1JFQUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBwYXJzZSBmaWxlICIgKyB2YWx1ZSwgZSwgbnVsbCAvKmRhdGEqLyk7Ci0KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyB0cnkgdG8gbG9hZCB0aGUgY29sb3Igc3RhdGUgbGlzdCBmcm9tIGFuIGludAotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCBjb2xvciA9IFJlc291cmNlSGVscGVyLmdldENvbG9yKHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbG9yU3RhdGVMaXN0LnZhbHVlT2YoY29sb3IpOwotICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5lcnJvcihMYXlvdXRMb2cuVEFHX1JFU09VUkNFU19GT1JNQVQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBjb252ZXJ0ICIgKyB2YWx1ZSArICIgaW50byBhIENvbG9yU3RhdGVMaXN0IiwgZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsIC8qZGF0YSovKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyBhIGRyYXdhYmxlIGZyb20gdGhlIGdpdmVuIHZhbHVlLgotICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdGhhdCBjb250YWlucyBhIHBhdGggdG8gYSA5IHBhdGNoLCBhIGJpdG1hcCBvciBhIHhtbCBiYXNlZCBkcmF3YWJsZSwKLSAgICAgKiBvciBhbiBoZXhhZGVjaW1hbCBjb2xvcgotICAgICAqIEBwYXJhbSBjb250ZXh0IHRoZSBjdXJyZW50IGNvbnRleHQKLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIERyYXdhYmxlIGdldERyYXdhYmxlKFJlc291cmNlVmFsdWUgdmFsdWUsIEJyaWRnZUNvbnRleHQgY29udGV4dCkgewotICAgICAgICBTdHJpbmcgc3RyaW5nVmFsdWUgPSB2YWx1ZS5nZXRWYWx1ZSgpOwotICAgICAgICBpZiAoUmVuZGVyUmVzb3VyY2VzLlJFRkVSRU5DRV9OVUxMLmVxdWFscyhzdHJpbmdWYWx1ZSkpIHsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgU3RyaW5nIGxvd2VyQ2FzZVZhbHVlID0gc3RyaW5nVmFsdWUudG9Mb3dlckNhc2UoKTsKLQotICAgICAgICBEZW5zaXR5IGRlbnNpdHkgPSBEZW5zaXR5Lk1FRElVTTsKLSAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGVuc2l0eUJhc2VkUmVzb3VyY2VWYWx1ZSkgewotICAgICAgICAgICAgZGVuc2l0eSA9Ci0gICAgICAgICAgICAgICAgKChEZW5zaXR5QmFzZWRSZXNvdXJjZVZhbHVlKXZhbHVlKS5nZXRSZXNvdXJjZURlbnNpdHkoKTsKLSAgICAgICAgfQotCi0KLSAgICAgICAgaWYgKGxvd2VyQ2FzZVZhbHVlLmVuZHNXaXRoKE5pbmVQYXRjaC5FWFRFTlNJT05fOVBBVENIKSkgewotICAgICAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoc3RyaW5nVmFsdWUpOwotICAgICAgICAgICAgaWYgKGZpbGUuaXNGaWxlKCkpIHsKLSAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0TmluZVBhdGNoRHJhd2FibGUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlKSwgZGVuc2l0eSwgdmFsdWUuaXNGcmFtZXdvcmsoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdWYWx1ZSwgY29udGV4dCk7Ci0gICAgICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgICAgICAvLyBmYWlsZWQgdG8gcmVhZCB0aGUgZmlsZSwgd2UnbGwgcmV0dXJuIG51bGwgYmVsb3cuCi0gICAgICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5lcnJvcihMYXlvdXRMb2cuVEFHX1JFU09VUkNFU19SRUFELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgbG90IGxvYWQgIiArIGZpbGUuZ2V0QWJzb2x1dGVQYXRoKCksIGUsIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0gZWxzZSBpZiAobG93ZXJDYXNlVmFsdWUuZW5kc1dpdGgoIi54bWwiKSkgewotICAgICAgICAgICAgLy8gY3JlYXRlIGEgYmxvY2sgcGFyc2VyIGZvciB0aGUgZmlsZQotICAgICAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUoc3RyaW5nVmFsdWUpOwotICAgICAgICAgICAgaWYgKGYuaXNGaWxlKCkpIHsKLSAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAvLyBsZXQgdGhlIGZyYW1ld29yayBpbmZsYXRlIHRoZSBEcmF3YWJsZSBmcm9tIHRoZSBYTUwgZmlsZS4KLSAgICAgICAgICAgICAgICAgICAgWG1sUHVsbFBhcnNlciBwYXJzZXIgPSBQYXJzZXJGYWN0b3J5LmNyZWF0ZShmKTsKLQotICAgICAgICAgICAgICAgICAgICBCcmlkZ2VYbWxCbG9ja1BhcnNlciBibG9ja1BhcnNlciA9IG5ldyBCcmlkZ2VYbWxCbG9ja1BhcnNlcigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXIsIGNvbnRleHQsIHZhbHVlLmlzRnJhbWV3b3JrKCkpOwotICAgICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERyYXdhYmxlLmNyZWF0ZUZyb21YbWwoY29udGV4dC5nZXRSZXNvdXJjZXMoKSwgYmxvY2tQYXJzZXIpOwotICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tQYXJzZXIuZW5zdXJlUG9wcGVkKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGFuIGVycm9yIGFuZCBub3Qgd2FybmluZyBzaW5jZSB0aGUgZmlsZSBleGlzdGVuY2UgaXMgY2hlY2tlZCBiZWZvcmUKLSAgICAgICAgICAgICAgICAgICAgLy8gYXR0ZW1wdGluZyB0byBwYXJzZSBpdC4KLSAgICAgICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKG51bGwsICJGYWlsZWQgdG8gcGFyc2UgZmlsZSAiICsgc3RyaW5nVmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZSwgbnVsbCAvKmRhdGEqLyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZXJyb3IoTGF5b3V0TG9nLlRBR19CUk9LRU4sCi0gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcuZm9ybWF0KCJGaWxlICVzIGRvZXMgbm90IGV4aXN0IChvciBpcyBub3QgYSBmaWxlKSIsIHN0cmluZ1ZhbHVlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEZpbGUgYm1wRmlsZSA9IG5ldyBGaWxlKHN0cmluZ1ZhbHVlKTsKLSAgICAgICAgICAgIGlmIChibXBGaWxlLmlzRmlsZSgpKSB7Ci0gICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgQml0bWFwIGJpdG1hcCA9IEJyaWRnZS5nZXRDYWNoZWRCaXRtYXAoc3RyaW5nVmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUuaXNGcmFtZXdvcmsoKSA/IG51bGwgOiBjb250ZXh0LmdldFByb2plY3RLZXkoKSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGJpdG1hcCA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBiaXRtYXAgPSBCaXRtYXBfRGVsZWdhdGUuY3JlYXRlQml0bWFwKGJtcEZpbGUsIGZhbHNlIC8qaXNNdXRhYmxlKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbnNpdHkpOwotICAgICAgICAgICAgICAgICAgICAgICAgQnJpZGdlLnNldENhY2hlZEJpdG1hcChzdHJpbmdWYWx1ZSwgYml0bWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5pc0ZyYW1ld29yaygpID8gbnVsbCA6IGNvbnRleHQuZ2V0UHJvamVjdEtleSgpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQml0bWFwRHJhd2FibGUoY29udGV4dC5nZXRSZXNvdXJjZXMoKSwgYml0bWFwKTsKLSAgICAgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIHdlJ2xsIHJldHVybiBudWxsIGJlbG93Ci0gICAgICAgICAgICAgICAgICAgIEJyaWRnZS5nZXRMb2coKS5lcnJvcihMYXlvdXRMb2cuVEFHX1JFU09VUkNFU19SRUFELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgbG90IGxvYWQgIiArIGJtcEZpbGUuZ2V0QWJzb2x1dGVQYXRoKCksIGUsIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gYXR0ZW1wdCB0byBnZXQgYSBjb2xvciBmcm9tIHRoZSB2YWx1ZQotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIGludCBjb2xvciA9IGdldENvbG9yKHN0cmluZ1ZhbHVlKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDb2xvckRyYXdhYmxlKGNvbG9yKTsKLSAgICAgICAgICAgICAgICB9IGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgICAgICAvLyB3ZSdsbCByZXR1cm4gbnVsbCBiZWxvdy4KLSAgICAgICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfUkVTT1VSQ0VTX0ZPUk1BVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNvbnZlcnQgIiArIHN0cmluZ1ZhbHVlICsgIiBpbnRvIGEgZHJhd2FibGUiLCBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgLypkYXRhKi8pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIHByaXZhdGUgc3RhdGljIERyYXdhYmxlIGdldE5pbmVQYXRjaERyYXdhYmxlKElucHV0U3RyZWFtIGlucHV0U3RyZWFtLCBEZW5zaXR5IGRlbnNpdHksCi0gICAgICAgICAgICBib29sZWFuIGlzRnJhbWV3b3JrLCBTdHJpbmcgY2FjaGVLZXksIEJyaWRnZUNvbnRleHQgY29udGV4dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKLSAgICAgICAgLy8gc2VlIGlmIHdlIHN0aWxsIGhhdmUgYm90aCB0aGUgY2h1bmsgYW5kIHRoZSBiaXRtYXAgaW4gdGhlIGNhY2hlcwotICAgICAgICBOaW5lUGF0Y2hDaHVuayBjaHVuayA9IEJyaWRnZS5nZXRDYWNoZWQ5UGF0Y2goY2FjaGVLZXksCi0gICAgICAgICAgICAgICAgaXNGcmFtZXdvcmsgPyBudWxsIDogY29udGV4dC5nZXRQcm9qZWN0S2V5KCkpOwotICAgICAgICBCaXRtYXAgYml0bWFwID0gQnJpZGdlLmdldENhY2hlZEJpdG1hcChjYWNoZUtleSwKLSAgICAgICAgICAgICAgICBpc0ZyYW1ld29yayA/IG51bGwgOiBjb250ZXh0LmdldFByb2plY3RLZXkoKSk7Ci0KLSAgICAgICAgLy8gaWYgZWl0aGVyIGNodW5rIG9yIGJpdG1hcCBpcyBudWxsLCB0aGVuIHdlIHJlbG9hZCB0aGUgOS1wYXRjaCBmaWxlLgotICAgICAgICBpZiAoY2h1bmsgPT0gbnVsbCB8fCBiaXRtYXAgPT0gbnVsbCkgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBOaW5lUGF0Y2ggbmluZVBhdGNoID0gTmluZVBhdGNoLmxvYWQoaW5wdXRTdHJlYW0sIHRydWUgLyppczlQYXRjaCovLAotICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgLyogY29udmVydCAqLyk7Ci0gICAgICAgICAgICAgICAgaWYgKG5pbmVQYXRjaCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjaHVuayA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjaHVuayA9IG5pbmVQYXRjaC5nZXRDaHVuaygpOwotCi0gICAgICAgICAgICAgICAgICAgICAgICBCcmlkZ2Uuc2V0Q2FjaGVkOVBhdGNoKGNhY2hlS2V5LCBjaHVuaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGcmFtZXdvcmsgPyBudWxsIDogY29udGV4dC5nZXRQcm9qZWN0S2V5KCkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGJpdG1hcCA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBiaXRtYXAgPSBCaXRtYXBfRGVsZWdhdGUuY3JlYXRlQml0bWFwKG5pbmVQYXRjaC5nZXRJbWFnZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKmlzTXV0YWJsZSovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZW5zaXR5KTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgQnJpZGdlLnNldENhY2hlZEJpdG1hcChjYWNoZUtleSwgYml0bWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZyYW1ld29yayA/IG51bGwgOiBjb250ZXh0LmdldFByb2plY3RLZXkoKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGNhdGNoIChNYWxmb3JtZWRVUkxFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIC8vIFVSTCBpcyB3cm9uZywgd2UnbGwgcmV0dXJuIG51bGwgYmVsb3cKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChjaHVuayAhPSBudWxsICYmIGJpdG1hcCAhPSBudWxsKSB7Ci0gICAgICAgICAgICBpbnRbXSBwYWRkaW5nID0gY2h1bmsuZ2V0UGFkZGluZygpOwotICAgICAgICAgICAgUmVjdCBwYWRkaW5nUmVjdCA9IG5ldyBSZWN0KHBhZGRpbmdbMF0sIHBhZGRpbmdbMV0sIHBhZGRpbmdbMl0sIHBhZGRpbmdbM10pOwotCi0gICAgICAgICAgICByZXR1cm4gbmV3IE5pbmVQYXRjaERyYXdhYmxlKGNvbnRleHQuZ2V0UmVzb3VyY2VzKCksIGJpdG1hcCwKLSAgICAgICAgICAgICAgICAgICAgTmluZVBhdGNoX0RlbGVnYXRlLnNlcmlhbGl6ZShjaHVuayksCi0gICAgICAgICAgICAgICAgICAgIHBhZGRpbmdSZWN0LCBudWxsKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIC8vIC0tLS0tLS0gVHlwZWRWYWx1ZSBzdHVmZgotICAgIC8vIFRoaXMgaXMgdGFrZW4gZnJvbSAvL2RldmljZS9saWJzL3V0aWxzL1Jlc291cmNlVHlwZXMuY3BwCi0KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBVbml0RW50cnkgewotICAgICAgICBTdHJpbmcgbmFtZTsKLSAgICAgICAgaW50IHR5cGU7Ci0gICAgICAgIGludCB1bml0OwotICAgICAgICBmbG9hdCBzY2FsZTsKLQotICAgICAgICBVbml0RW50cnkoU3RyaW5nIG5hbWUsIGludCB0eXBlLCBpbnQgdW5pdCwgZmxvYXQgc2NhbGUpIHsKLSAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7Ci0gICAgICAgICAgICB0aGlzLnR5cGUgPSB0eXBlOwotICAgICAgICAgICAgdGhpcy51bml0ID0gdW5pdDsKLSAgICAgICAgICAgIHRoaXMuc2NhbGUgPSBzY2FsZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIFVuaXRFbnRyeVtdIHNVbml0TmFtZXMgPSBuZXcgVW5pdEVudHJ5W10gewotICAgICAgICBuZXcgVW5pdEVudHJ5KCJweCIsIFR5cGVkVmFsdWUuVFlQRV9ESU1FTlNJT04sIFR5cGVkVmFsdWUuQ09NUExFWF9VTklUX1BYLCAxLjBmKSwKLSAgICAgICAgbmV3IFVuaXRFbnRyeSgiZGlwIiwgVHlwZWRWYWx1ZS5UWVBFX0RJTUVOU0lPTiwgVHlwZWRWYWx1ZS5DT01QTEVYX1VOSVRfRElQLCAxLjBmKSwKLSAgICAgICAgbmV3IFVuaXRFbnRyeSgiZHAiLCBUeXBlZFZhbHVlLlRZUEVfRElNRU5TSU9OLCBUeXBlZFZhbHVlLkNPTVBMRVhfVU5JVF9ESVAsIDEuMGYpLAotICAgICAgICBuZXcgVW5pdEVudHJ5KCJzcCIsIFR5cGVkVmFsdWUuVFlQRV9ESU1FTlNJT04sIFR5cGVkVmFsdWUuQ09NUExFWF9VTklUX1NQLCAxLjBmKSwKLSAgICAgICAgbmV3IFVuaXRFbnRyeSgicHQiLCBUeXBlZFZhbHVlLlRZUEVfRElNRU5TSU9OLCBUeXBlZFZhbHVlLkNPTVBMRVhfVU5JVF9QVCwgMS4wZiksCi0gICAgICAgIG5ldyBVbml0RW50cnkoImluIiwgVHlwZWRWYWx1ZS5UWVBFX0RJTUVOU0lPTiwgVHlwZWRWYWx1ZS5DT01QTEVYX1VOSVRfSU4sIDEuMGYpLAotICAgICAgICBuZXcgVW5pdEVudHJ5KCJtbSIsIFR5cGVkVmFsdWUuVFlQRV9ESU1FTlNJT04sIFR5cGVkVmFsdWUuQ09NUExFWF9VTklUX01NLCAxLjBmKSwKLSAgICAgICAgbmV3IFVuaXRFbnRyeSgiJSIsIFR5cGVkVmFsdWUuVFlQRV9GUkFDVElPTiwgVHlwZWRWYWx1ZS5DT01QTEVYX1VOSVRfRlJBQ1RJT04sIDEuMGYvMTAwKSwKLSAgICAgICAgbmV3IFVuaXRFbnRyeSgiJXAiLCBUeXBlZFZhbHVlLlRZUEVfRlJBQ1RJT04sIFR5cGVkVmFsdWUuQ09NUExFWF9VTklUX0ZSQUNUSU9OX1BBUkVOVCwgMS4wZi8xMDApLAotICAgIH07Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSByYXcgdmFsdWUgZnJvbSB0aGUgZ2l2ZW4gYXR0cmlidXRlIGZsb2F0LXR5cGUgdmFsdWUgc3RyaW5nLgotICAgICAqIFRoaXMgb2JqZWN0IGlzIG9ubHkgdmFsaWQgdW50aWwgdGhlIG5leHQgY2FsbCBvbiB0byB7QGxpbmsgUmVzb3VyY2VIZWxwZXJ9LgotICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgVHlwZWRWYWx1ZSBnZXRWYWx1ZShTdHJpbmcgYXR0cmlidXRlLCBTdHJpbmcgdmFsdWUsIGJvb2xlYW4gcmVxdWlyZVVuaXQpIHsKLSAgICAgICAgaWYgKHBhcnNlRmxvYXRBdHRyaWJ1dGUoYXR0cmlidXRlLCB2YWx1ZSwgbVZhbHVlLCByZXF1aXJlVW5pdCkpIHsKLSAgICAgICAgICAgIHJldHVybiBtVmFsdWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBQYXJzZSBhIGZsb2F0IGF0dHJpYnV0ZSBhbmQgcmV0dXJuIHRoZSBwYXJzZWQgdmFsdWUgaW50byBhIGdpdmVuIFR5cGVkVmFsdWUuCi0gICAgICogQHBhcmFtIGF0dHJpYnV0ZSB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLiBDYW4gYmUgbnVsbCBpZiA8dmFyPnJlcXVpcmVVbml0PC92YXI+IGlzIGZhbHNlLgotICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgc3RyaW5nIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUKLSAgICAgKiBAcGFyYW0gb3V0VmFsdWUgdGhlIFR5cGVkVmFsdWUgdG8gcmVjZWl2ZSB0aGUgcGFyc2VkIHZhbHVlCi0gICAgICogQHBhcmFtIHJlcXVpcmVVbml0IHdoZXRoZXIgdGhlIHZhbHVlIGlzIGV4cGVjdGVkIHRvIGNvbnRhaW4gYSB1bml0LgotICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBzdWNjZXNzLgotICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBwYXJzZUZsb2F0QXR0cmlidXRlKFN0cmluZyBhdHRyaWJ1dGUsIFN0cmluZyB2YWx1ZSwKLSAgICAgICAgICAgIFR5cGVkVmFsdWUgb3V0VmFsdWUsIGJvb2xlYW4gcmVxdWlyZVVuaXQpIHsKLSAgICAgICAgYXNzZXJ0IHJlcXVpcmVVbml0ID09IGZhbHNlIHx8IGF0dHJpYnV0ZSAhPSBudWxsOwotCi0gICAgICAgIC8vIHJlbW92ZSB0aGUgc3BhY2UgYmVmb3JlIGFuZCBhZnRlcgotICAgICAgICB2YWx1ZSA9IHZhbHVlLnRyaW0oKTsKLSAgICAgICAgaW50IGxlbiA9IHZhbHVlLmxlbmd0aCgpOwotCi0gICAgICAgIGlmIChsZW4gPD0gMCkgewotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gY2hlY2sgdGhhdCB0aGVyZSdzIG5vIG5vbiBhc2NpaSBjaGFyYWN0ZXJzLgotICAgICAgICBjaGFyW10gYnVmID0gdmFsdWUudG9DaGFyQXJyYXkoKTsKLSAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgbGVuIDsgaSsrKSB7Ci0gICAgICAgICAgICBpZiAoYnVmW2ldID4gMjU1KSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gY2hlY2sgdGhlIGZpcnN0IGNoYXJhY3RlcgotICAgICAgICBpZiAoYnVmWzBdIDwgJzAnICYmIGJ1ZlswXSA+ICc5JyAmJiBidWZbMF0gIT0gJy4nICYmIGJ1ZlswXSAhPSAnLScpIHsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIG5vdyBsb29rIGZvciB0aGUgc3RyaW5nIHRoYXQgaXMgYWZ0ZXIgdGhlIGZsb2F0Li4uCi0gICAgICAgIE1hdGNoZXIgbSA9IHNGbG9hdFBhdHRlcm4ubWF0Y2hlcih2YWx1ZSk7Ci0gICAgICAgIGlmIChtLm1hdGNoZXMoKSkgewotICAgICAgICAgICAgU3RyaW5nIGZfc3RyID0gbS5ncm91cCgxKTsKLSAgICAgICAgICAgIFN0cmluZyBlbmQgPSBtLmdyb3VwKDIpOwotCi0gICAgICAgICAgICBmbG9hdCBmOwotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBmID0gRmxvYXQucGFyc2VGbG9hdChmX3N0cik7Ci0gICAgICAgICAgICB9IGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkbid0IGhhcHBlbiB3aXRoIHRoZSByZWdleHAgYWJvdmUuCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoZW5kLmxlbmd0aCgpID4gMCAmJiBlbmQuY2hhckF0KDApICE9ICcgJykgewotICAgICAgICAgICAgICAgIC8vIE1pZ2h0IGJlIGEgdW5pdC4uLgotICAgICAgICAgICAgICAgIGlmIChwYXJzZVVuaXQoZW5kLCBvdXRWYWx1ZSwgc0Zsb2F0T3V0KSkgewotICAgICAgICAgICAgICAgICAgICBjb21wdXRlVHlwZWRWYWx1ZShvdXRWYWx1ZSwgZiwgc0Zsb2F0T3V0WzBdKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gbWFrZSBzdXJlIGl0J3Mgb25seSBzcGFjZXMgYXQgdGhlIGVuZC4KLSAgICAgICAgICAgIGVuZCA9IGVuZC50cmltKCk7Ci0KLSAgICAgICAgICAgIGlmIChlbmQubGVuZ3RoKCkgPT0gMCkgewotICAgICAgICAgICAgICAgIGlmIChvdXRWYWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXF1aXJlVW5pdCA9PSBmYWxzZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgb3V0VmFsdWUudHlwZSA9IFR5cGVkVmFsdWUuVFlQRV9GTE9BVDsKLSAgICAgICAgICAgICAgICAgICAgICAgIG91dFZhbHVlLmRhdGEgPSBGbG9hdC5mbG9hdFRvSW50Qml0cyhmKTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIHVuaXQgd2hlbiByZXF1aXJlZD8gVXNlIGRwIGFuZCBvdXQgYW4gZXJyb3IuCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBseVVuaXQoc1VuaXROYW1lc1sxXSwgb3V0VmFsdWUsIHNGbG9hdE91dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlVHlwZWRWYWx1ZShvdXRWYWx1ZSwgZiwgc0Zsb2F0T3V0WzBdKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfUkVTT1VSQ0VTX1JFU09MVkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRpbWVuc2lvbiBcIiUxJHNcIiBpbiBhdHRyaWJ1dGUgXCIlMiRzXCIgaXMgbWlzc2luZyB1bml0ISIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsIGF0dHJpYnV0ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGNvbXB1dGVUeXBlZFZhbHVlKFR5cGVkVmFsdWUgb3V0VmFsdWUsIGZsb2F0IHZhbHVlLCBmbG9hdCBzY2FsZSkgewotICAgICAgICB2YWx1ZSAqPSBzY2FsZTsKLSAgICAgICAgYm9vbGVhbiBuZWcgPSB2YWx1ZSA8IDA7Ci0gICAgICAgIGlmIChuZWcpIHsKLSAgICAgICAgICAgIHZhbHVlID0gLXZhbHVlOwotICAgICAgICB9Ci0gICAgICAgIGxvbmcgYml0cyA9IChsb25nKSh2YWx1ZSooMTw8MjMpKy41Zik7Ci0gICAgICAgIGludCByYWRpeDsKLSAgICAgICAgaW50IHNoaWZ0OwotICAgICAgICBpZiAoKGJpdHMmMHg3ZmZmZmYpID09IDApIHsKLSAgICAgICAgICAgIC8vIEFsd2F5cyB1c2UgMjNwMCBpZiB0aGVyZSBpcyBubyBmcmFjdGlvbiwganVzdCB0byBtYWtlCi0gICAgICAgICAgICAvLyB0aGluZ3MgZWFzaWVyIHRvIHJlYWQuCi0gICAgICAgICAgICByYWRpeCA9IFR5cGVkVmFsdWUuQ09NUExFWF9SQURJWF8yM3AwOwotICAgICAgICAgICAgc2hpZnQgPSAyMzsKLSAgICAgICAgfSBlbHNlIGlmICgoYml0cyYweGZmZmZmZmZmZmY4MDAwMDBMKSA9PSAwKSB7Ci0gICAgICAgICAgICAvLyBNYWduaXR1ZGUgaXMgemVybyAtLSBjYW4gZml0IGluIDAgYml0cyBvZiBwcmVjaXNpb24uCi0gICAgICAgICAgICByYWRpeCA9IFR5cGVkVmFsdWUuQ09NUExFWF9SQURJWF8wcDIzOwotICAgICAgICAgICAgc2hpZnQgPSAwOwotICAgICAgICB9IGVsc2UgaWYgKChiaXRzJjB4ZmZmZmZmZmY4MDAwMDAwMEwpID09IDApIHsKLSAgICAgICAgICAgIC8vIE1hZ25pdHVkZSBjYW4gZml0IGluIDggYml0cyBvZiBwcmVjaXNpb24uCi0gICAgICAgICAgICByYWRpeCA9IFR5cGVkVmFsdWUuQ09NUExFWF9SQURJWF84cDE1OwotICAgICAgICAgICAgc2hpZnQgPSA4OwotICAgICAgICB9IGVsc2UgaWYgKChiaXRzJjB4ZmZmZmZmODAwMDAwMDAwMEwpID09IDApIHsKLSAgICAgICAgICAgIC8vIE1hZ25pdHVkZSBjYW4gZml0IGluIDE2IGJpdHMgb2YgcHJlY2lzaW9uLgotICAgICAgICAgICAgcmFkaXggPSBUeXBlZFZhbHVlLkNPTVBMRVhfUkFESVhfMTZwNzsKLSAgICAgICAgICAgIHNoaWZ0ID0gMTY7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBNYWduaXR1ZGUgbmVlZHMgZW50aXJlIHJhbmdlLCBzbyBubyBmcmFjdGlvbmFsIHBhcnQuCi0gICAgICAgICAgICByYWRpeCA9IFR5cGVkVmFsdWUuQ09NUExFWF9SQURJWF8yM3AwOwotICAgICAgICAgICAgc2hpZnQgPSAyMzsKLSAgICAgICAgfQotICAgICAgICBpbnQgbWFudGlzc2EgPSAoaW50KSgKLSAgICAgICAgICAgIChiaXRzPj5zaGlmdCkgJiBUeXBlZFZhbHVlLkNPTVBMRVhfTUFOVElTU0FfTUFTSyk7Ci0gICAgICAgIGlmIChuZWcpIHsKLSAgICAgICAgICAgIG1hbnRpc3NhID0gKC1tYW50aXNzYSkgJiBUeXBlZFZhbHVlLkNPTVBMRVhfTUFOVElTU0FfTUFTSzsKLSAgICAgICAgfQotICAgICAgICBvdXRWYWx1ZS5kYXRhIHw9Ci0gICAgICAgICAgICAocmFkaXg8PFR5cGVkVmFsdWUuQ09NUExFWF9SQURJWF9TSElGVCkKLSAgICAgICAgICAgIHwgKG1hbnRpc3NhPDxUeXBlZFZhbHVlLkNPTVBMRVhfTUFOVElTU0FfU0hJRlQpOwotICAgIH0KLQotICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gcGFyc2VVbml0KFN0cmluZyBzdHIsIFR5cGVkVmFsdWUgb3V0VmFsdWUsIGZsb2F0W10gb3V0U2NhbGUpIHsKLSAgICAgICAgc3RyID0gc3RyLnRyaW0oKTsKLQotICAgICAgICBmb3IgKFVuaXRFbnRyeSB1bml0IDogc1VuaXROYW1lcykgewotICAgICAgICAgICAgaWYgKHVuaXQubmFtZS5lcXVhbHMoc3RyKSkgewotICAgICAgICAgICAgICAgIGFwcGx5VW5pdCh1bml0LCBvdXRWYWx1ZSwgb3V0U2NhbGUpOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYXBwbHlVbml0KFVuaXRFbnRyeSB1bml0LCBUeXBlZFZhbHVlIG91dFZhbHVlLCBmbG9hdFtdIG91dFNjYWxlKSB7Ci0gICAgICAgIG91dFZhbHVlLnR5cGUgPSB1bml0LnR5cGU7Ci0gICAgICAgIG91dFZhbHVlLmRhdGEgPSB1bml0LnVuaXQgPDwgVHlwZWRWYWx1ZS5DT01QTEVYX1VOSVRfU0hJRlQ7Ci0gICAgICAgIG91dFNjYWxlWzBdID0gdW5pdC5zY2FsZTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9TdGFjay5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL1N0YWNrLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliZDAwMTUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL1N0YWNrLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGw7Ci0KLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwotCi0vKioKLSAqIEN1c3RvbSBTdGFjayBpbXBsZW1lbnRhdGlvbiBvbiB0b3Agb2YgYW4ge0BsaW5rIEFycmF5TGlzdH0gaW5zdGVhZCBvZgotICogdXNpbmcge0BsaW5rIGphdmEudXRpbC5TdGFja30gd2hpY2ggaXMgb24gdG9wIG9mIGEgdmVjdG9yLgotICoKLSAqIEBwYXJhbSA8VD4KLSAqLwotcHVibGljIGNsYXNzIFN0YWNrPFQ+IGV4dGVuZHMgQXJyYXlMaXN0PFQ+IHsKLQotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDFMOwotCi0gICAgcHVibGljIFN0YWNrKCkgewotICAgICAgICBzdXBlcigpOwotICAgIH0KLQotICAgIHB1YmxpYyBTdGFjayhpbnQgc2l6ZSkgewotICAgICAgICBzdXBlcihzaXplKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBQdXNoZXMgdGhlIGdpdmVuIG9iamVjdCB0byB0aGUgc3RhY2sKLSAgICAgKiBAcGFyYW0gb2JqZWN0IHRoZSBvYmplY3QgdG8gcHVzaAotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHB1c2goVCBvYmplY3QpIHsKLSAgICAgICAgYWRkKG9iamVjdCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmVtb3ZlIHRoZSBvYmplY3QgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2sgYW5kIHJldHVybnMgaXQuCi0gICAgICogQHJldHVybiB0aGUgcmVtb3ZlZCBvYmplY3Qgb3IgbnVsbCBpZiB0aGUgc3RhY2sgd2FzIGVtcHR5LgotICAgICAqLwotICAgIHB1YmxpYyBUIHBvcCgpIHsKLSAgICAgICAgaWYgKHNpemUoKSA+IDApIHsKLSAgICAgICAgICAgIHJldHVybiByZW1vdmUoc2l6ZSgpIC0gMSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBvYmplY3QgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suCi0gICAgICogQHJldHVybiB0aGUgb2JqZWN0IGF0IHRoZSB0b3Agb3IgbnVsbCBpZiB0aGUgc3RhY2sgaXMgZW1wdHkuCi0gICAgICovCi0gICAgcHVibGljIFQgcGVlaygpIHsKLSAgICAgICAgaWYgKHNpemUoKSA+IDApIHsKLSAgICAgICAgICAgIHJldHVybiBnZXQoc2l6ZSgpIC0gMSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbDsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2ltcGwvYmluZGluZy9BZGFwdGVySGVscGVyLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2ltcGwvYmluZGluZy9BZGFwdGVySGVscGVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjOTk4YWYuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL2JpbmRpbmcvQWRhcHRlckhlbHBlci5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5iaW5kaW5nOwotCi1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkRhdGFCaW5kaW5nSXRlbTsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuSVByb2plY3RDYWxsYmFjazsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuTGF5b3V0TG9nOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXNvdXJjZVJlZmVyZW5jZTsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuSVByb2plY3RDYWxsYmFjay5WaWV3QXR0cmlidXRlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuQnJpZGdlOwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZC5CcmlkZ2VDb250ZXh0OwotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5SZW5kZXJBY3Rpb247Ci1pbXBvcnQgY29tLmFuZHJvaWQudXRpbC5QYWlyOwotCi1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXc7Ci1pbXBvcnQgYW5kcm9pZC52aWV3LlZpZXdHcm91cDsKLWltcG9ydCBhbmRyb2lkLndpZGdldC5BZGFwdGVyVmlldzsKLWltcG9ydCBhbmRyb2lkLndpZGdldC5DaGVja2FibGU7Ci1pbXBvcnQgYW5kcm9pZC53aWRnZXQuSW1hZ2VWaWV3OwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlRleHRWaWV3OwotCi0vKioKLSAqIEEgSGVscGVyIGNsYXNzIHRvIGRvIGZha2UgZGF0YSBiaW5kaW5nIGluIHtAbGluayBBZGFwdGVyVmlld30gb2JqZWN0cy4KLSAqLwotQFN1cHByZXNzV2FybmluZ3MoImRlcHJlY2F0aW9uIikKLXB1YmxpYyBjbGFzcyBBZGFwdGVySGVscGVyIHsKLQotICAgIHN0YXRpYyBQYWlyPFZpZXcsIEJvb2xlYW4+IGdldFZpZXcoQWRhcHRlckl0ZW0gaXRlbSwgQWRhcHRlckl0ZW0gcGFyZW50SXRlbSwgVmlld0dyb3VwIHBhcmVudCwKLSAgICAgICAgICAgIElQcm9qZWN0Q2FsbGJhY2sgY2FsbGJhY2ssIFJlc291cmNlUmVmZXJlbmNlIGFkYXB0ZXJSZWYsIGJvb2xlYW4gc2tpcENhbGxiYWNrUGFyc2VyKSB7Ci0gICAgICAgIC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgcmVjeWNsaW5nIGhlcmUgYmVjYXVzZSB3ZSBuZXZlciBzY3JvbGwuCi0gICAgICAgIERhdGFCaW5kaW5nSXRlbSBkYXRhQmluZGluZ0l0ZW0gPSBpdGVtLmdldERhdGFCaW5kaW5nSXRlbSgpOwotCi0gICAgICAgIEJyaWRnZUNvbnRleHQgY29udGV4dCA9IFJlbmRlckFjdGlvbi5nZXRDdXJyZW50Q29udGV4dCgpOwotCi0gICAgICAgIFBhaXI8VmlldywgQm9vbGVhbj4gcGFpciA9IGNvbnRleHQuaW5mbGF0ZVZpZXcoZGF0YUJpbmRpbmdJdGVtLmdldFZpZXdSZWZlcmVuY2UoKSwKLSAgICAgICAgICAgICAgICBwYXJlbnQsIGZhbHNlIC8qYXR0YWNoVG9Sb290Ki8sIHNraXBDYWxsYmFja1BhcnNlcik7Ci0KLSAgICAgICAgVmlldyB2aWV3ID0gcGFpci5nZXRGaXJzdCgpOwotICAgICAgICBza2lwQ2FsbGJhY2tQYXJzZXIgfD0gcGFpci5nZXRTZWNvbmQoKTsKLQotICAgICAgICBpZiAodmlldyAhPSBudWxsKSB7Ci0gICAgICAgICAgICBmaWxsVmlldyhjb250ZXh0LCB2aWV3LCBpdGVtLCBwYXJlbnRJdGVtLCBjYWxsYmFjaywgYWRhcHRlclJlZik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBjcmVhdGUgYSB0ZXh0IHZpZXcgdG8gZGlzcGxheSBhbiBlcnJvci4KLSAgICAgICAgICAgIFRleHRWaWV3IHR2ID0gbmV3IFRleHRWaWV3KGNvbnRleHQpOwotICAgICAgICAgICAgdHYuc2V0VGV4dCgiVW5hYmxlIHRvIGZpbmQgbGF5b3V0OiAiICsgZGF0YUJpbmRpbmdJdGVtLmdldFZpZXdSZWZlcmVuY2UoKS5nZXROYW1lKCkpOwotICAgICAgICAgICAgdmlldyA9IHR2OwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIFBhaXIub2Yodmlldywgc2tpcENhbGxiYWNrUGFyc2VyKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGZpbGxWaWV3KEJyaWRnZUNvbnRleHQgY29udGV4dCwgVmlldyB2aWV3LCBBZGFwdGVySXRlbSBpdGVtLAotICAgICAgICAgICAgQWRhcHRlckl0ZW0gcGFyZW50SXRlbSwgSVByb2plY3RDYWxsYmFjayBjYWxsYmFjaywgUmVzb3VyY2VSZWZlcmVuY2UgYWRhcHRlclJlZikgewotICAgICAgICBpZiAodmlldyBpbnN0YW5jZW9mIFZpZXdHcm91cCkgewotICAgICAgICAgICAgVmlld0dyb3VwIGdyb3VwID0gKFZpZXdHcm91cCkgdmlldzsKLSAgICAgICAgICAgIGZpbmFsIGludCBjb3VudCA9IGdyb3VwLmdldENoaWxkQ291bnQoKTsKLSAgICAgICAgICAgIGZvciAoaW50IGkgPSAwIDsgaSA8IGNvdW50IDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgZmlsbFZpZXcoY29udGV4dCwgZ3JvdXAuZ2V0Q2hpbGRBdChpKSwgaXRlbSwgcGFyZW50SXRlbSwgY2FsbGJhY2ssIGFkYXB0ZXJSZWYpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaW50IGlkID0gdmlldy5nZXRJZCgpOwotICAgICAgICAgICAgaWYgKGlkICE9IDApIHsKLSAgICAgICAgICAgICAgICBSZXNvdXJjZVJlZmVyZW5jZSByZXNvbHZlZFJlZiA9IGNvbnRleHQucmVzb2x2ZUlkKGlkKTsKLSAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWRSZWYgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBpbnQgZnVsbFBvc2l0aW9uID0gaXRlbS5nZXRGdWxsUG9zaXRpb24oKTsKLSAgICAgICAgICAgICAgICAgICAgaW50IHBvc2l0aW9uUGVyVHlwZSA9IGl0ZW0uZ2V0UG9zaXRpb25QZXJUeXBlKCk7Ci0gICAgICAgICAgICAgICAgICAgIGludCBmdWxsUGFyZW50UG9zaXRpb24gPSBwYXJlbnRJdGVtICE9IG51bGwgPyBwYXJlbnRJdGVtLmdldEZ1bGxQb3NpdGlvbigpIDogMDsKLSAgICAgICAgICAgICAgICAgICAgaW50IHBhcmVudFBvc2l0aW9uUGVyVHlwZSA9IHBhcmVudEl0ZW0gIT0gbnVsbCA/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SXRlbS5nZXRQb3NpdGlvblBlclR5cGUoKSA6IDA7Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXcgaW5zdGFuY2VvZiBUZXh0VmlldykgewotICAgICAgICAgICAgICAgICAgICAgICAgVGV4dFZpZXcgdHYgPSAoVGV4dFZpZXcpIHZpZXc7Ci0gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBjYWxsYmFjay5nZXRBZGFwdGVySXRlbVZhbHVlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGFwdGVyUmVmLCBjb250ZXh0LmdldFZpZXdLZXkodmlldyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZ2V0RGF0YUJpbmRpbmdJdGVtKCkuZ2V0Vmlld1JlZmVyZW5jZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsUG9zaXRpb24sIHBvc2l0aW9uUGVyVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFBhcmVudFBvc2l0aW9uLCBwYXJlbnRQb3NpdGlvblBlclR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkUmVmLCBWaWV3QXR0cmlidXRlLlRFWFQsIHR2LmdldFRleHQoKS50b1N0cmluZygpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmdldENsYXNzKCkgIT0gVmlld0F0dHJpYnV0ZS5URVhULmdldEF0dHJpYnV0ZUNsYXNzKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfQlJPS0VOLCBTdHJpbmcuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXcm9uZyBBZGFwdGVyIEl0ZW0gdmFsdWUgY2xhc3MgZm9yIFRFWFQuIEV4cGVjdGVkIFN0cmluZywgZ290ICVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5nZXRDbGFzcygpLmdldE5hbWUoKSksIG51bGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR2LnNldFRleHQoKFN0cmluZykgdmFsdWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIGlmICh2aWV3IGluc3RhbmNlb2YgQ2hlY2thYmxlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBDaGVja2FibGUgY2IgPSAoQ2hlY2thYmxlKSB2aWV3OwotCi0gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBjYWxsYmFjay5nZXRBZGFwdGVySXRlbVZhbHVlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGFwdGVyUmVmLCBjb250ZXh0LmdldFZpZXdLZXkodmlldyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZ2V0RGF0YUJpbmRpbmdJdGVtKCkuZ2V0Vmlld1JlZmVyZW5jZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsUG9zaXRpb24sIHBvc2l0aW9uUGVyVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbFBhcmVudFBvc2l0aW9uLCBwYXJlbnRQb3NpdGlvblBlclR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkUmVmLCBWaWV3QXR0cmlidXRlLklTX0NIRUNLRUQsIGNiLmlzQ2hlY2tlZCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmdldENsYXNzKCkgIT0gVmlld0F0dHJpYnV0ZS5JU19DSEVDS0VELmdldEF0dHJpYnV0ZUNsYXNzKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJpZGdlLmdldExvZygpLmVycm9yKExheW91dExvZy5UQUdfQlJPS0VOLCBTdHJpbmcuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXcm9uZyBBZGFwdGVyIEl0ZW0gdmFsdWUgY2xhc3MgZm9yIFRFWFQuIEV4cGVjdGVkIEJvb2xlYW4sIGdvdCAlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkpLCBudWxsKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYi5zZXRDaGVja2VkKChCb29sZWFuKSB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXcgaW5zdGFuY2VvZiBJbWFnZVZpZXcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlVmlldyBpdiA9IChJbWFnZVZpZXcpIHZpZXc7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGNhbGxiYWNrLmdldEFkYXB0ZXJJdGVtVmFsdWUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkYXB0ZXJSZWYsIGNvbnRleHQuZ2V0Vmlld0tleSh2aWV3KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5nZXREYXRhQmluZGluZ0l0ZW0oKS5nZXRWaWV3UmVmZXJlbmNlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxQb3NpdGlvbiwgcG9zaXRpb25QZXJUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsUGFyZW50UG9zaXRpb24sIHBhcmVudFBvc2l0aW9uUGVyVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRSZWYsIFZpZXdBdHRyaWJ1dGUuU1JDLCBpdi5nZXREcmF3YWJsZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmdldENsYXNzKCkgIT0gVmlld0F0dHJpYnV0ZS5TUkMuZ2V0QXR0cmlidXRlQ2xhc3MoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZXJyb3IoTGF5b3V0TG9nLlRBR19CUk9LRU4sIFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldyb25nIEFkYXB0ZXIgSXRlbSB2YWx1ZSBjbGFzcyBmb3IgVEVYVC4gRXhwZWN0ZWQgQm9vbGVhbiwgZ290ICVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5nZXRDbGFzcygpLmdldE5hbWUoKSksIG51bGwpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL2JpbmRpbmcvQWRhcHRlckl0ZW0uamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9iaW5kaW5nL0FkYXB0ZXJJdGVtLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlMjhkYmEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL2JpbmRpbmcvQWRhcHRlckl0ZW0uamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5iaW5kaW5nOwotCi1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7Ci1pbXBvcnQgamF2YS51dGlsLkxpc3Q7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuRGF0YUJpbmRpbmdJdGVtOwotCi0vKioKLSAqIFRoaXMgaXMgdGhlIGl0ZW1zIHByb3ZpZGVkIGJ5IHRoZSBhZGFwdGVyLiBUaGV5IGFyZSBkeW5hbWljYWxseSBnZW5lcmF0ZWQuCi0gKi8KLWZpbmFsIGNsYXNzIEFkYXB0ZXJJdGVtIHsKLSAgICBwcml2YXRlIGZpbmFsIERhdGFCaW5kaW5nSXRlbSBtSXRlbTsKLSAgICBwcml2YXRlIGZpbmFsIGludCBtVHlwZTsKLSAgICBwcml2YXRlIGZpbmFsIGludCBtRnVsbFBvc2l0aW9uOwotICAgIHByaXZhdGUgZmluYWwgaW50IG1Qb3NpdGlvblBlclR5cGU7Ci0gICAgcHJpdmF0ZSBMaXN0PEFkYXB0ZXJJdGVtPiBtQ2hpbGRyZW47Ci0KLSAgICBwcm90ZWN0ZWQgQWRhcHRlckl0ZW0oRGF0YUJpbmRpbmdJdGVtIGl0ZW0sIGludCB0eXBlLCBpbnQgZnVsbFBvc2l0aW9uLAotICAgICAgICAgICAgaW50IHBvc2l0aW9uUGVyVHlwZSkgewotICAgICAgICBtSXRlbSA9IGl0ZW07Ci0gICAgICAgIG1UeXBlID0gdHlwZTsKLSAgICAgICAgbUZ1bGxQb3NpdGlvbiA9IGZ1bGxQb3NpdGlvbjsKLSAgICAgICAgbVBvc2l0aW9uUGVyVHlwZSA9IHBvc2l0aW9uUGVyVHlwZTsKLSAgICB9Ci0KLSAgICB2b2lkIGFkZENoaWxkKEFkYXB0ZXJJdGVtIGNoaWxkKSB7Ci0gICAgICAgIGlmIChtQ2hpbGRyZW4gPT0gbnVsbCkgewotICAgICAgICAgICAgbUNoaWxkcmVuID0gbmV3IEFycmF5TGlzdDxBZGFwdGVySXRlbT4oKTsKLSAgICAgICAgfQotCi0gICAgICAgIG1DaGlsZHJlbi5hZGQoY2hpbGQpOwotICAgIH0KLQotICAgIExpc3Q8QWRhcHRlckl0ZW0+IGdldENoaWxkcmVuKCkgewotICAgICAgICBpZiAobUNoaWxkcmVuICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBtQ2hpbGRyZW47Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gQ29sbGVjdGlvbnMuZW1wdHlMaXN0KCk7Ci0gICAgfQotCi0gICAgaW50IGdldFR5cGUoKSB7Ci0gICAgICAgIHJldHVybiBtVHlwZTsKLSAgICB9Ci0KLSAgICBpbnQgZ2V0RnVsbFBvc2l0aW9uKCkgewotICAgICAgICByZXR1cm4gbUZ1bGxQb3NpdGlvbjsKLSAgICB9Ci0KLSAgICBpbnQgZ2V0UG9zaXRpb25QZXJUeXBlKCkgewotICAgICAgICByZXR1cm4gbVBvc2l0aW9uUGVyVHlwZTsKLSAgICB9Ci0KLSAgICBEYXRhQmluZGluZ0l0ZW0gZ2V0RGF0YUJpbmRpbmdJdGVtKCkgewotICAgICAgICByZXR1cm4gbUl0ZW07Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL2JpbmRpbmcvRmFrZUFkYXB0ZXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvaW1wbC9iaW5kaW5nL0Zha2VBZGFwdGVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhMTNmNWEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL2JpbmRpbmcvRmFrZUFkYXB0ZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDEzMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuYmluZGluZzsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5BZGFwdGVyQmluZGluZzsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuRGF0YUJpbmRpbmdJdGVtOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5JUHJvamVjdENhbGxiYWNrOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXNvdXJjZVJlZmVyZW5jZTsKLWltcG9ydCBjb20uYW5kcm9pZC51dGlsLlBhaXI7Ci0KLWltcG9ydCBhbmRyb2lkLnZpZXcuVmlldzsKLWltcG9ydCBhbmRyb2lkLnZpZXcuVmlld0dyb3VwOwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0LkFkYXB0ZXJWaWV3OwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0LkJhc2VBZGFwdGVyOwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0Lkxpc3RBZGFwdGVyOwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0LlNwaW5uZXJBZGFwdGVyOwotCi1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuTGlzdDsKLQotLyoqCi0gKiBGYWtlIGFkYXB0ZXIgdG8gZG8gZmFrZSBkYXRhIGJpbmRpbmcgaW4ge0BsaW5rIEFkYXB0ZXJWaWV3fSBvYmplY3RzIGZvciB7QGxpbmsgTGlzdEFkYXB0ZXJ9Ci0gKiBhbmQge0BsaW5rIFNwaW5uZXJBZGFwdGVyfS4KLSAqCi0gKi8KLUBTdXBwcmVzc1dhcm5pbmdzKCJkZXByZWNhdGlvbiIpCi1wdWJsaWMgY2xhc3MgRmFrZUFkYXB0ZXIgZXh0ZW5kcyBCYXNlQWRhcHRlciB7Ci0KLSAgICAvLyBkb24ndCB1c2UgYSBzZXQgYmVjYXVzZSB0aGUgb3JkZXIgaXMgaW1wb3J0YW50LgotICAgIHByaXZhdGUgZmluYWwgTGlzdDxSZXNvdXJjZVJlZmVyZW5jZT4gbVR5cGVzID0gbmV3IEFycmF5TGlzdDxSZXNvdXJjZVJlZmVyZW5jZT4oKTsKLSAgICBwcml2YXRlIGZpbmFsIElQcm9qZWN0Q2FsbGJhY2sgbUNhbGxiYWNrOwotICAgIHByaXZhdGUgZmluYWwgUmVzb3VyY2VSZWZlcmVuY2UgbUFkYXB0ZXJSZWY7Ci0gICAgcHJpdmF0ZSBmaW5hbCBMaXN0PEFkYXB0ZXJJdGVtPiBtSXRlbXMgPSBuZXcgQXJyYXlMaXN0PEFkYXB0ZXJJdGVtPigpOwotICAgIHByaXZhdGUgYm9vbGVhbiBtU2tpcENhbGxiYWNrUGFyc2VyID0gZmFsc2U7Ci0KLSAgICBwdWJsaWMgRmFrZUFkYXB0ZXIoUmVzb3VyY2VSZWZlcmVuY2UgYWRhcHRlclJlZiwgQWRhcHRlckJpbmRpbmcgYmluZGluZywKLSAgICAgICAgICAgIElQcm9qZWN0Q2FsbGJhY2sgY2FsbGJhY2spIHsKLSAgICAgICAgbUFkYXB0ZXJSZWYgPSBhZGFwdGVyUmVmOwotICAgICAgICBtQ2FsbGJhY2sgPSBjYWxsYmFjazsKLQotICAgICAgICBmaW5hbCBpbnQgcmVwZWF0Q291bnQgPSBiaW5kaW5nLmdldFJlcGVhdENvdW50KCk7Ci0gICAgICAgIGZpbmFsIGludCBpdGVtQ291bnQgPSBiaW5kaW5nLmdldEl0ZW1Db3VudCgpOwotCi0gICAgICAgIC8vIE5lZWQgYW4gYXJyYXkgdG8gY291bnQgZm9yIGVhY2ggdHlwZS4KLSAgICAgICAgLy8gVGhpcyBpcyBsaWtlbHkgdG9vIGJpZywgYnV0IGlzIHRoZSBtYXggaXQgY2FuIGJlLgotICAgICAgICBpbnRbXSB0eXBlQ291bnQgPSBuZXcgaW50W2l0ZW1Db3VudF07Ci0KLSAgICAgICAgLy8gV2UgcHV0IHNldmVyYWwgcmVwZWF0aW5nIHNldHMuCi0gICAgICAgIGZvciAoaW50IHIgPSAwIDsgciA8IHJlcGVhdENvdW50IDsgcisrKSB7Ci0gICAgICAgICAgICAvLyBsb29wIG9uIHRoZSB0eXBlIG9mIGxpc3QgaXRlbXMsIGFuZCBhZGQgaG93ZXZlciBtYW55IGZvciBlYWNoIHR5cGUuCi0gICAgICAgICAgICBmb3IgKERhdGFCaW5kaW5nSXRlbSBkYXRhQmluZGluZ0l0ZW0gOiBiaW5kaW5nKSB7Ci0gICAgICAgICAgICAgICAgUmVzb3VyY2VSZWZlcmVuY2Ugdmlld1JlZiA9IGRhdGFCaW5kaW5nSXRlbS5nZXRWaWV3UmVmZXJlbmNlKCk7Ci0gICAgICAgICAgICAgICAgaW50IHR5cGVJbmRleCA9IG1UeXBlcy5pbmRleE9mKHZpZXdSZWYpOwotICAgICAgICAgICAgICAgIGlmICh0eXBlSW5kZXggPT0gLTEpIHsKLSAgICAgICAgICAgICAgICAgICAgdHlwZUluZGV4ID0gbVR5cGVzLnNpemUoKTsKLSAgICAgICAgICAgICAgICAgICAgbVR5cGVzLmFkZCh2aWV3UmVmKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpbnQgY291bnQgPSBkYXRhQmluZGluZ0l0ZW0uZ2V0Q291bnQoKTsKLQotICAgICAgICAgICAgICAgIGludCBpbmRleCA9IHR5cGVDb3VudFt0eXBlSW5kZXhdOwotICAgICAgICAgICAgICAgIHR5cGVDb3VudFt0eXBlSW5kZXhdICs9IGNvdW50OwotCi0gICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDAgOyBrIDwgY291bnQgOyBrKyspIHsKLSAgICAgICAgICAgICAgICAgICAgbUl0ZW1zLmFkZChuZXcgQWRhcHRlckl0ZW0oZGF0YUJpbmRpbmdJdGVtLCB0eXBlSW5kZXgsIG1JdGVtcy5zaXplKCksIGluZGV4KyspKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBpc0VuYWJsZWQoaW50IHBvc2l0aW9uKSB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0Q291bnQoKSB7Ci0gICAgICAgIHJldHVybiBtSXRlbXMuc2l6ZSgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBPYmplY3QgZ2V0SXRlbShpbnQgcG9zaXRpb24pIHsKLSAgICAgICAgcmV0dXJuIG1JdGVtcy5nZXQocG9zaXRpb24pOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBsb25nIGdldEl0ZW1JZChpbnQgcG9zaXRpb24pIHsKLSAgICAgICAgcmV0dXJuIHBvc2l0aW9uOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0SXRlbVZpZXdUeXBlKGludCBwb3NpdGlvbikgewotICAgICAgICByZXR1cm4gbUl0ZW1zLmdldChwb3NpdGlvbikuZ2V0VHlwZSgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBWaWV3IGdldFZpZXcoaW50IHBvc2l0aW9uLCBWaWV3IGNvbnZlcnRWaWV3LCBWaWV3R3JvdXAgcGFyZW50KSB7Ci0gICAgICAgIC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgcmVjeWNsaW5nIGhlcmUgYmVjYXVzZSB3ZSBuZXZlciBzY3JvbGwuCi0gICAgICAgIEFkYXB0ZXJJdGVtIGl0ZW0gPSBtSXRlbXMuZ2V0KHBvc2l0aW9uKTsKLSAgICAgICAgUGFpcjxWaWV3LCBCb29sZWFuPiBwYWlyID0gQWRhcHRlckhlbHBlci5nZXRWaWV3KGl0ZW0sIG51bGwgLypwYXJlbnRHcm91cCovLCBwYXJlbnQsCi0gICAgICAgICAgICAgICAgbUNhbGxiYWNrLCBtQWRhcHRlclJlZiwgbVNraXBDYWxsYmFja1BhcnNlcik7Ci0gICAgICAgIG1Ta2lwQ2FsbGJhY2tQYXJzZXIgPSBwYWlyLmdldFNlY29uZCgpOwotICAgICAgICByZXR1cm4gcGFpci5nZXRGaXJzdCgpOwotCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGludCBnZXRWaWV3VHlwZUNvdW50KCkgewotICAgICAgICByZXR1cm4gbVR5cGVzLnNpemUoKTsKLSAgICB9Ci0KLSAgICAvLyAtLS0tIFNwaW5uZXJBZGFwdGVyCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgVmlldyBnZXREcm9wRG93blZpZXcoaW50IHBvc2l0aW9uLCBWaWV3IGNvbnZlcnRWaWV3LCBWaWV3R3JvdXAgcGFyZW50KSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9pbXBsL2JpbmRpbmcvRmFrZUV4cGFuZGFibGVBZGFwdGVyLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2ltcGwvYmluZGluZy9GYWtlRXhwYW5kYWJsZUFkYXB0ZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTUzOTU3OS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2ltcGwvYmluZGluZy9GYWtlRXhwYW5kYWJsZUFkYXB0ZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDIzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuYmluZGluZzsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5BZGFwdGVyQmluZGluZzsKLWltcG9ydCBjb20uYW5kcm9pZC5pZGUuY29tbW9uLnJlbmRlcmluZy5hcGkuRGF0YUJpbmRpbmdJdGVtOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5JUHJvamVjdENhbGxiYWNrOwotaW1wb3J0IGNvbS5hbmRyb2lkLmlkZS5jb21tb24ucmVuZGVyaW5nLmFwaS5SZXNvdXJjZVJlZmVyZW5jZTsKLWltcG9ydCBjb20uYW5kcm9pZC51dGlsLlBhaXI7Ci0KLWltcG9ydCBhbmRyb2lkLmRhdGFiYXNlLkRhdGFTZXRPYnNlcnZlcjsKLWltcG9ydCBhbmRyb2lkLnZpZXcuVmlldzsKLWltcG9ydCBhbmRyb2lkLnZpZXcuVmlld0dyb3VwOwotaW1wb3J0IGFuZHJvaWQud2lkZ2V0LkV4cGFuZGFibGVMaXN0QWRhcHRlcjsKLWltcG9ydCBhbmRyb2lkLndpZGdldC5IZXRlcm9nZW5lb3VzRXhwYW5kYWJsZUxpc3Q7Ci0KLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotCi1AU3VwcHJlc3NXYXJuaW5ncygiZGVwcmVjYXRpb24iKQotcHVibGljIGNsYXNzIEZha2VFeHBhbmRhYmxlQWRhcHRlciBpbXBsZW1lbnRzIEV4cGFuZGFibGVMaXN0QWRhcHRlciwgSGV0ZXJvZ2VuZW91c0V4cGFuZGFibGVMaXN0IHsKLQotICAgIHByaXZhdGUgZmluYWwgSVByb2plY3RDYWxsYmFjayBtQ2FsbGJhY2s7Ci0gICAgcHJpdmF0ZSBmaW5hbCBSZXNvdXJjZVJlZmVyZW5jZSBtQWRhcHRlclJlZjsKLSAgICBwcml2YXRlIGJvb2xlYW4gbVNraXBDYWxsYmFja1BhcnNlciA9IGZhbHNlOwotCi0gICAgcHJvdGVjdGVkIGZpbmFsIExpc3Q8QWRhcHRlckl0ZW0+IG1JdGVtcyA9IG5ldyBBcnJheUxpc3Q8QWRhcHRlckl0ZW0+KCk7Ci0KLSAgICAvLyBkb24ndCB1c2UgYSBzZXQgYmVjYXVzZSB0aGUgb3JkZXIgaXMgaW1wb3J0YW50LgotICAgIHByaXZhdGUgZmluYWwgTGlzdDxSZXNvdXJjZVJlZmVyZW5jZT4gbUdyb3VwVHlwZXMgPSBuZXcgQXJyYXlMaXN0PFJlc291cmNlUmVmZXJlbmNlPigpOwotICAgIHByaXZhdGUgZmluYWwgTGlzdDxSZXNvdXJjZVJlZmVyZW5jZT4gbUNoaWxkcmVuVHlwZXMgPSBuZXcgQXJyYXlMaXN0PFJlc291cmNlUmVmZXJlbmNlPigpOwotCi0gICAgcHVibGljIEZha2VFeHBhbmRhYmxlQWRhcHRlcihSZXNvdXJjZVJlZmVyZW5jZSBhZGFwdGVyUmVmLCBBZGFwdGVyQmluZGluZyBiaW5kaW5nLAotICAgICAgICAgICAgSVByb2plY3RDYWxsYmFjayBjYWxsYmFjaykgewotICAgICAgICBtQWRhcHRlclJlZiA9IGFkYXB0ZXJSZWY7Ci0gICAgICAgIG1DYWxsYmFjayA9IGNhbGxiYWNrOwotCi0gICAgICAgIGNyZWF0ZUl0ZW1zKGJpbmRpbmcsIGJpbmRpbmcuZ2V0SXRlbUNvdW50KCksIGJpbmRpbmcuZ2V0UmVwZWF0Q291bnQoKSwgbUdyb3VwVHlwZXMsIDEpOwotICAgIH0KLQotICAgIHByaXZhdGUgdm9pZCBjcmVhdGVJdGVtcyhJdGVyYWJsZTxEYXRhQmluZGluZ0l0ZW0+IGl0ZXJhYmxlLCBmaW5hbCBpbnQgaXRlbUNvdW50LAotICAgICAgICAgICAgZmluYWwgaW50IHJlcGVhdENvdW50LCBMaXN0PFJlc291cmNlUmVmZXJlbmNlPiB0eXBlcywgaW50IGRlcHRoKSB7Ci0gICAgICAgIC8vIE5lZWQgYW4gYXJyYXkgdG8gY291bnQgZm9yIGVhY2ggdHlwZS4KLSAgICAgICAgLy8gVGhpcyBpcyBsaWtlbHkgdG9vIGJpZywgYnV0IGlzIHRoZSBtYXggaXQgY2FuIGJlLgotICAgICAgICBpbnRbXSB0eXBlQ291bnQgPSBuZXcgaW50W2l0ZW1Db3VudF07Ci0KLSAgICAgICAgLy8gd2UgcHV0IHNldmVyYWwgcmVwZWF0aW5nIHNldHMuCi0gICAgICAgIGZvciAoaW50IHIgPSAwIDsgciA8IHJlcGVhdENvdW50IDsgcisrKSB7Ci0gICAgICAgICAgICAvLyBsb29wIG9uIHRoZSB0eXBlIG9mIGxpc3QgaXRlbXMsIGFuZCBhZGQgaG93ZXZlciBtYW55IGZvciBlYWNoIHR5cGUuCi0gICAgICAgICAgICBmb3IgKERhdGFCaW5kaW5nSXRlbSBkYXRhQmluZGluZ0l0ZW0gOiBpdGVyYWJsZSkgewotICAgICAgICAgICAgICAgIFJlc291cmNlUmVmZXJlbmNlIHZpZXdSZWYgPSBkYXRhQmluZGluZ0l0ZW0uZ2V0Vmlld1JlZmVyZW5jZSgpOwotICAgICAgICAgICAgICAgIGludCB0eXBlSW5kZXggPSB0eXBlcy5pbmRleE9mKHZpZXdSZWYpOwotICAgICAgICAgICAgICAgIGlmICh0eXBlSW5kZXggPT0gLTEpIHsKLSAgICAgICAgICAgICAgICAgICAgdHlwZUluZGV4ID0gdHlwZXMuc2l6ZSgpOwotICAgICAgICAgICAgICAgICAgICB0eXBlcy5hZGQodmlld1JlZik7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgTGlzdDxEYXRhQmluZGluZ0l0ZW0+IGNoaWxkcmVuID0gZGF0YUJpbmRpbmdJdGVtLmdldENoaWxkcmVuKCk7Ci0gICAgICAgICAgICAgICAgaW50IGNvdW50ID0gZGF0YUJpbmRpbmdJdGVtLmdldENvdW50KCk7Ci0KLSAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgY2hpbGRyZW4sIHdlIHVzZSB0aGUgY291bnQgYXMgYSByZXBlYXQgY291bnQgZm9yIHRoZSBjaGlsZHJlbi4KLSAgICAgICAgICAgICAgICBpZiAoY2hpbGRyZW4uc2l6ZSgpID4gMCkgewotICAgICAgICAgICAgICAgICAgICBjb3VudCA9IDE7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaW50IGluZGV4ID0gdHlwZUNvdW50W3R5cGVJbmRleF07Ci0gICAgICAgICAgICAgICAgdHlwZUNvdW50W3R5cGVJbmRleF0gKz0gY291bnQ7Ci0KLSAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMCA7IGsgPCBjb3VudCA7IGsrKykgewotICAgICAgICAgICAgICAgICAgICBBZGFwdGVySXRlbSBpdGVtID0gbmV3IEFkYXB0ZXJJdGVtKGRhdGFCaW5kaW5nSXRlbSwgdHlwZUluZGV4LCBtSXRlbXMuc2l6ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4KyspOwotICAgICAgICAgICAgICAgICAgICBtSXRlbXMuYWRkKGl0ZW0pOwotCi0gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbi5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVJdGVtcyhkYXRhQmluZGluZ0l0ZW0sIGRlcHRoICsgMSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcml2YXRlIHZvaWQgY3JlYXRlSXRlbXMoRGF0YUJpbmRpbmdJdGVtIGl0ZW0sIGludCBkZXB0aCkgewotICAgICAgICBpZiAoZGVwdGggPT0gMikgewotICAgICAgICAgICAgY3JlYXRlSXRlbXMoaXRlbSwgaXRlbS5nZXRDaGlsZHJlbigpLnNpemUoKSwgaXRlbS5nZXRDb3VudCgpLCBtQ2hpbGRyZW5UeXBlcywgZGVwdGgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBBZGFwdGVySXRlbSBnZXRDaGlsZEl0ZW0oaW50IGdyb3VwUG9zaXRpb24sIGludCBjaGlsZFBvc2l0aW9uKSB7Ci0gICAgICAgIEFkYXB0ZXJJdGVtIGl0ZW0gPSBtSXRlbXMuZ2V0KGdyb3VwUG9zaXRpb24pOwotCi0gICAgICAgIExpc3Q8QWRhcHRlckl0ZW0+IGNoaWxkcmVuID0gaXRlbS5nZXRDaGlsZHJlbigpOwotICAgICAgICByZXR1cm4gY2hpbGRyZW4uZ2V0KGNoaWxkUG9zaXRpb24pOwotICAgIH0KLQotICAgIC8vIC0tLS0gRXhwYW5kYWJsZUxpc3RBZGFwdGVyCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldEdyb3VwQ291bnQoKSB7Ci0gICAgICAgIHJldHVybiBtSXRlbXMuc2l6ZSgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0Q2hpbGRyZW5Db3VudChpbnQgZ3JvdXBQb3NpdGlvbikgewotICAgICAgICBBZGFwdGVySXRlbSBpdGVtID0gbUl0ZW1zLmdldChncm91cFBvc2l0aW9uKTsKLSAgICAgICAgcmV0dXJuIGl0ZW0uZ2V0Q2hpbGRyZW4oKS5zaXplKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIE9iamVjdCBnZXRHcm91cChpbnQgZ3JvdXBQb3NpdGlvbikgewotICAgICAgICByZXR1cm4gbUl0ZW1zLmdldChncm91cFBvc2l0aW9uKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgT2JqZWN0IGdldENoaWxkKGludCBncm91cFBvc2l0aW9uLCBpbnQgY2hpbGRQb3NpdGlvbikgewotICAgICAgICByZXR1cm4gZ2V0Q2hpbGRJdGVtKGdyb3VwUG9zaXRpb24sIGNoaWxkUG9zaXRpb24pOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBWaWV3IGdldEdyb3VwVmlldyhpbnQgZ3JvdXBQb3NpdGlvbiwgYm9vbGVhbiBpc0V4cGFuZGVkLCBWaWV3IGNvbnZlcnRWaWV3LAotICAgICAgICAgICAgVmlld0dyb3VwIHBhcmVudCkgewotICAgICAgICAvLyB3ZSBkb24ndCBjYXJlIGFib3V0IHJlY3ljbGluZyBoZXJlIGJlY2F1c2Ugd2UgbmV2ZXIgc2Nyb2xsLgotICAgICAgICBBZGFwdGVySXRlbSBpdGVtID0gbUl0ZW1zLmdldChncm91cFBvc2l0aW9uKTsKLSAgICAgICAgUGFpcjxWaWV3LCBCb29sZWFuPiBwYWlyID0gQWRhcHRlckhlbHBlci5nZXRWaWV3KGl0ZW0sIG51bGwgLypwYXJlbnRJdGVtKi8sIHBhcmVudCwKLSAgICAgICAgICAgICAgICBtQ2FsbGJhY2ssIG1BZGFwdGVyUmVmLCBtU2tpcENhbGxiYWNrUGFyc2VyKTsKLSAgICAgICAgbVNraXBDYWxsYmFja1BhcnNlciA9IHBhaXIuZ2V0U2Vjb25kKCk7Ci0gICAgICAgIHJldHVybiBwYWlyLmdldEZpcnN0KCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFZpZXcgZ2V0Q2hpbGRWaWV3KGludCBncm91cFBvc2l0aW9uLCBpbnQgY2hpbGRQb3NpdGlvbiwgYm9vbGVhbiBpc0xhc3RDaGlsZCwKLSAgICAgICAgICAgIFZpZXcgY29udmVydFZpZXcsIFZpZXdHcm91cCBwYXJlbnQpIHsKLSAgICAgICAgLy8gd2UgZG9uJ3QgY2FyZSBhYm91dCByZWN5Y2xpbmcgaGVyZSBiZWNhdXNlIHdlIG5ldmVyIHNjcm9sbC4KLSAgICAgICAgQWRhcHRlckl0ZW0gcGFyZW50SXRlbSA9IG1JdGVtcy5nZXQoZ3JvdXBQb3NpdGlvbik7Ci0gICAgICAgIEFkYXB0ZXJJdGVtIGl0ZW0gPSBnZXRDaGlsZEl0ZW0oZ3JvdXBQb3NpdGlvbiwgY2hpbGRQb3NpdGlvbik7Ci0gICAgICAgIFBhaXI8VmlldywgQm9vbGVhbj4gcGFpciA9IEFkYXB0ZXJIZWxwZXIuZ2V0VmlldyhpdGVtLCBwYXJlbnRJdGVtLCBwYXJlbnQsIG1DYWxsYmFjaywKLSAgICAgICAgICAgICAgICBtQWRhcHRlclJlZiwgbVNraXBDYWxsYmFja1BhcnNlcik7Ci0gICAgICAgIG1Ta2lwQ2FsbGJhY2tQYXJzZXIgPSBwYWlyLmdldFNlY29uZCgpOwotICAgICAgICByZXR1cm4gcGFpci5nZXRGaXJzdCgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBsb25nIGdldEdyb3VwSWQoaW50IGdyb3VwUG9zaXRpb24pIHsKLSAgICAgICAgcmV0dXJuIGdyb3VwUG9zaXRpb247Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGxvbmcgZ2V0Q2hpbGRJZChpbnQgZ3JvdXBQb3NpdGlvbiwgaW50IGNoaWxkUG9zaXRpb24pIHsKLSAgICAgICAgcmV0dXJuIGNoaWxkUG9zaXRpb247Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGxvbmcgZ2V0Q29tYmluZWRHcm91cElkKGxvbmcgZ3JvdXBJZCkgewotICAgICAgICByZXR1cm4gZ3JvdXBJZCA8PCAxNiB8IDB4MDAwMEZGRkY7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGxvbmcgZ2V0Q29tYmluZWRDaGlsZElkKGxvbmcgZ3JvdXBJZCwgbG9uZyBjaGlsZElkKSB7Ci0gICAgICAgIHJldHVybiBncm91cElkIDw8IDE2IHwgY2hpbGRJZDsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBpc0NoaWxkU2VsZWN0YWJsZShpbnQgZ3JvdXBQb3NpdGlvbiwgaW50IGNoaWxkUG9zaXRpb24pIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgb25Hcm91cENvbGxhcHNlZChpbnQgZ3JvdXBQb3NpdGlvbikgewotICAgICAgICAvLyBwYXNzCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgb25Hcm91cEV4cGFuZGVkKGludCBncm91cFBvc2l0aW9uKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCByZWdpc3RlckRhdGFTZXRPYnNlcnZlcihEYXRhU2V0T2JzZXJ2ZXIgb2JzZXJ2ZXIpIHsKLSAgICAgICAgLy8gcGFzcwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHVucmVnaXN0ZXJEYXRhU2V0T2JzZXJ2ZXIoRGF0YVNldE9ic2VydmVyIG9ic2VydmVyKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgYm9vbGVhbiBoYXNTdGFibGVJZHMoKSB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBib29sZWFuIGFyZUFsbEl0ZW1zRW5hYmxlZCgpIHsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpIHsKLSAgICAgICAgcmV0dXJuIG1JdGVtcy5pc0VtcHR5KCk7Ci0gICAgfQotCi0gICAgLy8gLS0tLSBIZXRlcm9nZW5lb3VzRXhwYW5kYWJsZUxpc3QKLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0Q2hpbGRUeXBlKGludCBncm91cFBvc2l0aW9uLCBpbnQgY2hpbGRQb3NpdGlvbikgewotICAgICAgICByZXR1cm4gZ2V0Q2hpbGRJdGVtKGdyb3VwUG9zaXRpb24sIGNoaWxkUG9zaXRpb24pLmdldFR5cGUoKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldENoaWxkVHlwZUNvdW50KCkgewotICAgICAgICByZXR1cm4gbUNoaWxkcmVuVHlwZXMuc2l6ZSgpOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgZ2V0R3JvdXBUeXBlKGludCBncm91cFBvc2l0aW9uKSB7Ci0gICAgICAgIHJldHVybiBtSXRlbXMuZ2V0KGdyb3VwUG9zaXRpb24pLmdldFR5cGUoKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgaW50IGdldEdyb3VwVHlwZUNvdW50KCkgewotICAgICAgICByZXR1cm4gbUdyb3VwVHlwZXMuc2l6ZSgpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvdXRpbC9EZWJ1Zy5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS91dGlsL0RlYnVnLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyZWFiODUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS91dGlsL0RlYnVnLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLnV0aWw7Ci0KLXB1YmxpYyBjbGFzcyBEZWJ1ZyB7Ci0KLSAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS91dGlsL0R5bmFtaWNJZE1hcC5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS91dGlsL0R5bmFtaWNJZE1hcC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWZhZTk1Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9hbmRyb2lkL2xheW91dGxpYi9icmlkZ2UvdXRpbC9EeW5hbWljSWRNYXAuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDc2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UudXRpbDsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLnJlc291cmNlcy5SZXNvdXJjZVR5cGU7Ci1pbXBvcnQgY29tLmFuZHJvaWQudXRpbC5QYWlyOwotCi1pbXBvcnQgYW5kcm9pZC51dGlsLlNwYXJzZUFycmF5OwotCi1pbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7Ci1pbXBvcnQgamF2YS51dGlsLk1hcDsKLQotcHVibGljIGNsYXNzIER5bmFtaWNJZE1hcCB7Ci0KLSAgICBwcml2YXRlIGZpbmFsIE1hcDxQYWlyPFJlc291cmNlVHlwZSwgU3RyaW5nPiwgSW50ZWdlcj4gbUR5bmFtaWNJZHMgPSBuZXcgSGFzaE1hcDxQYWlyPFJlc291cmNlVHlwZSwgU3RyaW5nPiwgSW50ZWdlcj4oKTsKLSAgICBwcml2YXRlIGZpbmFsIFNwYXJzZUFycmF5PFBhaXI8UmVzb3VyY2VUeXBlLCBTdHJpbmc+PiBtUmV2RHluYW1pY0lkcyA9IG5ldyBTcGFyc2VBcnJheTxQYWlyPFJlc291cmNlVHlwZSwgU3RyaW5nPj4oKTsKLSAgICBwcml2YXRlIGludCBtRHluYW1pY1NlZWQ7Ci0KLSAgICBwdWJsaWMgRHluYW1pY0lkTWFwKGludCBzZWVkKSB7Ci0gICAgICAgIG1EeW5hbWljU2VlZCA9IHNlZWQ7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgcmVzZXQoaW50IHNlZWQpIHsKLSAgICAgICAgbUR5bmFtaWNJZHMuY2xlYXIoKTsKLSAgICAgICAgbVJldkR5bmFtaWNJZHMuY2xlYXIoKTsKLSAgICAgICAgbUR5bmFtaWNTZWVkID0gc2VlZDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIGEgZHluYW1pYyBpbnRlZ2VyIGZvciB0aGUgZ2l2ZW4gcmVzb3VyY2UgdHlwZS9uYW1lLCBjcmVhdGluZyBpdCBpZiBpdCBkb2Vzbid0Ci0gICAgICogYWxyZWFkeSBleGlzdC4KLSAgICAgKgotICAgICAqIEBwYXJhbSB0eXBlIHRoZSB0eXBlIG9mIHRoZSByZXNvdXJjZQotICAgICAqIEBwYXJhbSBuYW1lIHRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZQotICAgICAqIEByZXR1cm4gYW4gaW50ZWdlci4KLSAgICAgKi8KLSAgICBwdWJsaWMgSW50ZWdlciBnZXRJZChSZXNvdXJjZVR5cGUgdHlwZSwgU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgcmV0dXJuIGdldElkKFBhaXIub2YodHlwZSwgbmFtZSkpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgYSBkeW5hbWljIGludGVnZXIgZm9yIHRoZSBnaXZlbiByZXNvdXJjZSB0eXBlL25hbWUsIGNyZWF0aW5nIGl0IGlmIGl0IGRvZXNuJ3QKLSAgICAgKiBhbHJlYWR5IGV4aXN0LgotICAgICAqCi0gICAgICogQHBhcmFtIHJlc291cmNlIHRoZSB0eXBlL25hbWUgb2YgdGhlIHJlc291cmNlCi0gICAgICogQHJldHVybiBhbiBpbnRlZ2VyLgotICAgICAqLwotICAgIHB1YmxpYyBJbnRlZ2VyIGdldElkKFBhaXI8UmVzb3VyY2VUeXBlLCBTdHJpbmc+IHJlc291cmNlKSB7Ci0gICAgICAgIEludGVnZXIgdmFsdWUgPSBtRHluYW1pY0lkcy5nZXQocmVzb3VyY2UpOwotICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgewotICAgICAgICAgICAgdmFsdWUgPSBJbnRlZ2VyLnZhbHVlT2YoKyttRHluYW1pY1NlZWQpOwotICAgICAgICAgICAgbUR5bmFtaWNJZHMucHV0KHJlc291cmNlLCB2YWx1ZSk7Ci0gICAgICAgICAgICBtUmV2RHluYW1pY0lkcy5wdXQodmFsdWUsIHJlc291cmNlKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgUGFpcjxSZXNvdXJjZVR5cGUsIFN0cmluZz4gcmVzb2x2ZUlkKGludCBpZCkgewotICAgICAgICByZXR1cm4gbVJldkR5bmFtaWNJZHMuZ2V0KGlkKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL3V0aWwvU3BhcnNlV2Vha0FycmF5LmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL3V0aWwvU3BhcnNlV2Vha0FycmF5LmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkMGM5Y2UuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS91dGlsL1NwYXJzZVdlYWtBcnJheS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMzc2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UudXRpbDsKLQotCi1pbXBvcnQgY29tLmFuZHJvaWQuaW50ZXJuYWwudXRpbC5BcnJheVV0aWxzOwotCi1pbXBvcnQgYW5kcm9pZC51dGlsLlNwYXJzZUFycmF5OwotCi1pbXBvcnQgamF2YS5sYW5nLnJlZi5XZWFrUmVmZXJlbmNlOwotCi0vKioKLSAqIFRoaXMgaXMgYSBjdXN0b20ge0BsaW5rIFNwYXJzZUFycmF5fSB0aGF0IHVzZXMge0BsaW5rIFdlYWtSZWZlcmVuY2V9IGFyb3VuZCB0aGUgb2JqZWN0cyBhZGRlZAotICogdG8gaXQuIFdoZW4gdGhlIGFycmF5IGlzIGNvbXBhY3RlZCwgbm90IG9ubHkgZGVsZXRlZCBpbmRpY2VzIGJ1dCBhbHNvIGVtcHR5IHJlZmVyZW5jZXMKLSAqIGFyZSByZW1vdmVkLCBtYWtpbmcgdGhlIGFycmF5IGVmZmljaWVudCBhdCByZW1vdmluZyByZWZlcmVuY2VzIHRoYXQgd2VyZSByZWNsYWltZWQuCi0gKgotICogVGhlIGNvZGUgaXMgdGFrZW4gZnJvbSB7QGxpbmsgU3BhcnNlQXJyYXl9IGRpcmVjdGx5IGFuZCBhZGFwdGVkIHRvIHVzZSB3ZWFrIHJlZmVyZW5jZXMuCi0gKgotICogQmVjYXVzZSBvdXIgdXNhZ2UgbWVhbnMgdGhhdCB3ZSBuZXZlciBhY3R1YWxseSBjYWxsIHtAbGluayAjcmVtb3ZlKGludCl9IG9yIHtAbGluayAjZGVsZXRlKGludCl9LAotICogd2UgbXVzdCBtYW51YWxseSBjaGVjayBpZiB0aGVyZSBhcmUgcmVjbGFpbWVkIHJlZmVyZW5jZXMgdG8gdHJpZ2dlciBhbiBpbnRlcm5hbCBjb21wYWN0IHN0ZXAKLSAqICh3aGljaCBpcyBub3JtYWxseSBvbmx5IHRyaWdnZXJlZCB3aGVuIGFuIGl0ZW0gaXMgbWFudWFsbHkgcmVtb3ZlZCkuCi0gKgotICogU3BhcnNlQXJyYXlzIG1hcCBpbnRlZ2VycyB0byBPYmplY3RzLiAgVW5saWtlIGEgbm9ybWFsIGFycmF5IG9mIE9iamVjdHMsCi0gKiB0aGVyZSBjYW4gYmUgZ2FwcyBpbiB0aGUgaW5kaWNlcy4gIEl0IGlzIGludGVuZGVkIHRvIGJlIG1vcmUgZWZmaWNpZW50Ci0gKiB0aGFuIHVzaW5nIGEgSGFzaE1hcCB0byBtYXAgSW50ZWdlcnMgdG8gT2JqZWN0cy4KLSAqLwotQFN1cHByZXNzV2FybmluZ3MoInVuY2hlY2tlZCIpCi1wdWJsaWMgY2xhc3MgU3BhcnNlV2Vha0FycmF5PEU+IHsKLQotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdCBERUxFVEVEX1JFRiA9IG5ldyBPYmplY3QoKTsKLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBXZWFrUmVmZXJlbmNlPD8+IERFTEVURUQgPSBuZXcgV2Vha1JlZmVyZW5jZShERUxFVEVEX1JFRik7Ci0gICAgcHJpdmF0ZSBib29sZWFuIG1HYXJiYWdlID0gZmFsc2U7Ci0KLSAgICAvKioKLSAgICAgKiBDcmVhdGVzIGEgbmV3IFNwYXJzZUFycmF5IGNvbnRhaW5pbmcgbm8gbWFwcGluZ3MuCi0gICAgICovCi0gICAgcHVibGljIFNwYXJzZVdlYWtBcnJheSgpIHsKLSAgICAgICAgdGhpcygxMCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhIG5ldyBTcGFyc2VBcnJheSBjb250YWluaW5nIG5vIG1hcHBpbmdzIHRoYXQgd2lsbCBub3QKLSAgICAgKiByZXF1aXJlIGFueSBhZGRpdGlvbmFsIG1lbW9yeSBhbGxvY2F0aW9uIHRvIHN0b3JlIHRoZSBzcGVjaWZpZWQKLSAgICAgKiBudW1iZXIgb2YgbWFwcGluZ3MuCi0gICAgICovCi0gICAgcHVibGljIFNwYXJzZVdlYWtBcnJheShpbnQgaW5pdGlhbENhcGFjaXR5KSB7Ci0gICAgICAgIGluaXRpYWxDYXBhY2l0eSA9IEFycmF5VXRpbHMuaWRlYWxJbnRBcnJheVNpemUoaW5pdGlhbENhcGFjaXR5KTsKLQotICAgICAgICBtS2V5cyA9IG5ldyBpbnRbaW5pdGlhbENhcGFjaXR5XTsKLSAgICAgICAgbVZhbHVlcyA9IG5ldyBXZWFrUmVmZXJlbmNlW2luaXRpYWxDYXBhY2l0eV07Ci0gICAgICAgIG1TaXplID0gMDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBHZXRzIHRoZSBPYmplY3QgbWFwcGVkIGZyb20gdGhlIHNwZWNpZmllZCBrZXksIG9yIDxjb2RlPm51bGw8L2NvZGU+Ci0gICAgICogaWYgbm8gc3VjaCBtYXBwaW5nIGhhcyBiZWVuIG1hZGUuCi0gICAgICovCi0gICAgcHVibGljIEUgZ2V0KGludCBrZXkpIHsKLSAgICAgICAgcmV0dXJuIGdldChrZXksIG51bGwpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEdldHMgdGhlIE9iamVjdCBtYXBwZWQgZnJvbSB0aGUgc3BlY2lmaWVkIGtleSwgb3IgdGhlIHNwZWNpZmllZCBPYmplY3QKLSAgICAgKiBpZiBubyBzdWNoIG1hcHBpbmcgaGFzIGJlZW4gbWFkZS4KLSAgICAgKi8KLSAgICBwdWJsaWMgRSBnZXQoaW50IGtleSwgRSB2YWx1ZUlmS2V5Tm90Rm91bmQpIHsKLSAgICAgICAgaW50IGkgPSBiaW5hcnlTZWFyY2gobUtleXMsIDAsIG1TaXplLCBrZXkpOwotCi0gICAgICAgIGlmIChpIDwgMCB8fCBtVmFsdWVzW2ldID09IERFTEVURUQgfHwgbVZhbHVlc1tpXS5nZXQoKSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWVJZktleU5vdEZvdW5kOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIChFKSBtVmFsdWVzW2ldLmdldCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmVtb3ZlcyB0aGUgbWFwcGluZyBmcm9tIHRoZSBzcGVjaWZpZWQga2V5LCBpZiB0aGVyZSB3YXMgYW55LgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIGRlbGV0ZShpbnQga2V5KSB7Ci0gICAgICAgIGludCBpID0gYmluYXJ5U2VhcmNoKG1LZXlzLCAwLCBtU2l6ZSwga2V5KTsKLQotICAgICAgICBpZiAoaSA+PSAwKSB7Ci0gICAgICAgICAgICBpZiAobVZhbHVlc1tpXSAhPSBERUxFVEVEKSB7Ci0gICAgICAgICAgICAgICAgbVZhbHVlc1tpXSA9IERFTEVURUQ7Ci0gICAgICAgICAgICAgICAgbUdhcmJhZ2UgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQWxpYXMgZm9yIHtAbGluayAjZGVsZXRlKGludCl9LgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHJlbW92ZShpbnQga2V5KSB7Ci0gICAgICAgIGRlbGV0ZShrZXkpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlbW92ZXMgdGhlIG1hcHBpbmcgYXQgdGhlIHNwZWNpZmllZCBpbmRleC4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCByZW1vdmVBdChpbnQgaW5kZXgpIHsKLSAgICAgICAgaWYgKG1WYWx1ZXNbaW5kZXhdICE9IERFTEVURUQpIHsKLSAgICAgICAgICAgIG1WYWx1ZXNbaW5kZXhdID0gREVMRVRFRDsKLSAgICAgICAgICAgIG1HYXJiYWdlID0gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHByaXZhdGUgdm9pZCBnYygpIHsKLSAgICAgICAgaW50IG4gPSBtU2l6ZTsKLSAgICAgICAgaW50IG8gPSAwOwotICAgICAgICBpbnRbXSBrZXlzID0gbUtleXM7Ci0gICAgICAgIFdlYWtSZWZlcmVuY2U8Pz5bXSB2YWx1ZXMgPSBtVmFsdWVzOwotCi0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7Ci0gICAgICAgICAgICBXZWFrUmVmZXJlbmNlPD8+IHZhbCA9IHZhbHVlc1tpXTsKLQotICAgICAgICAgICAgLy8gRG9uJ3Qga2VlcCBhbnkgbm9uIERFTEVURUQgdmFsdWVzLCBidXQgb25seSB0aGUgb25lIHRoYXQgc3RpbGwgaGF2ZSBhIHZhbGlkCi0gICAgICAgICAgICAvLyByZWZlcmVuY2UuCi0gICAgICAgICAgICBpZiAodmFsICE9IERFTEVURUQgJiYgdmFsLmdldCgpICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBpZiAoaSAhPSBvKSB7Ci0gICAgICAgICAgICAgICAgICAgIGtleXNbb10gPSBrZXlzW2ldOwotICAgICAgICAgICAgICAgICAgICB2YWx1ZXNbb10gPSB2YWw7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgbysrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgbUdhcmJhZ2UgPSBmYWxzZTsKLSAgICAgICAgbVNpemUgPSBvOwotCi0gICAgICAgIGludCBuZXdTaXplID0gQXJyYXlVdGlscy5pZGVhbEludEFycmF5U2l6ZShtU2l6ZSk7Ci0gICAgICAgIGlmIChuZXdTaXplIDwgbUtleXMubGVuZ3RoKSB7Ci0gICAgICAgICAgICBpbnRbXSBua2V5cyA9IG5ldyBpbnRbbmV3U2l6ZV07Ci0gICAgICAgICAgICBXZWFrUmVmZXJlbmNlPD8+W10gbnZhbHVlcyA9IG5ldyBXZWFrUmVmZXJlbmNlW25ld1NpemVdOwotCi0gICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1LZXlzLCAwLCBua2V5cywgMCwgbmV3U2l6ZSk7Ci0gICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1WYWx1ZXMsIDAsIG52YWx1ZXMsIDAsIG5ld1NpemUpOwotCi0gICAgICAgICAgICBtS2V5cyA9IG5rZXlzOwotICAgICAgICAgICAgbVZhbHVlcyA9IG52YWx1ZXM7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBBZGRzIGEgbWFwcGluZyBmcm9tIHRoZSBzcGVjaWZpZWQga2V5IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUsCi0gICAgICogcmVwbGFjaW5nIHRoZSBwcmV2aW91cyBtYXBwaW5nIGZyb20gdGhlIHNwZWNpZmllZCBrZXkgaWYgdGhlcmUKLSAgICAgKiB3YXMgb25lLgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHB1dChpbnQga2V5LCBFIHZhbHVlKSB7Ci0gICAgICAgIGludCBpID0gYmluYXJ5U2VhcmNoKG1LZXlzLCAwLCBtU2l6ZSwga2V5KTsKLQotICAgICAgICBpZiAoaSA+PSAwKSB7Ci0gICAgICAgICAgICBtVmFsdWVzW2ldID0gbmV3IFdlYWtSZWZlcmVuY2UodmFsdWUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaSA9IH5pOwotCi0gICAgICAgICAgICBpZiAoaSA8IG1TaXplICYmIChtVmFsdWVzW2ldID09IERFTEVURUQgfHwgbVZhbHVlc1tpXS5nZXQoKSA9PSBudWxsKSkgewotICAgICAgICAgICAgICAgIG1LZXlzW2ldID0ga2V5OwotICAgICAgICAgICAgICAgIG1WYWx1ZXNbaV0gPSBuZXcgV2Vha1JlZmVyZW5jZSh2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAobVNpemUgPj0gbUtleXMubGVuZ3RoICYmIChtR2FyYmFnZSB8fCBoYXNSZWNsYWltZWRSZWZzKCkpKSB7Ci0gICAgICAgICAgICAgICAgZ2MoKTsKLQotICAgICAgICAgICAgICAgIC8vIFNlYXJjaCBhZ2FpbiBiZWNhdXNlIGluZGljZXMgbWF5IGhhdmUgY2hhbmdlZC4KLSAgICAgICAgICAgICAgICBpID0gfmJpbmFyeVNlYXJjaChtS2V5cywgMCwgbVNpemUsIGtleSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChtU2l6ZSA+PSBtS2V5cy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAgICBpbnQgbiA9IEFycmF5VXRpbHMuaWRlYWxJbnRBcnJheVNpemUobVNpemUgKyAxKTsKLQotICAgICAgICAgICAgICAgIGludFtdIG5rZXlzID0gbmV3IGludFtuXTsKLSAgICAgICAgICAgICAgICBXZWFrUmVmZXJlbmNlPD8+W10gbnZhbHVlcyA9IG5ldyBXZWFrUmVmZXJlbmNlW25dOwotCi0gICAgICAgICAgICAgICAgLy8gTG9nLmUoIlNwYXJzZUFycmF5IiwgImdyb3cgIiArIG1LZXlzLmxlbmd0aCArICIgdG8gIiArIG4pOwotICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobUtleXMsIDAsIG5rZXlzLCAwLCBtS2V5cy5sZW5ndGgpOwotICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobVZhbHVlcywgMCwgbnZhbHVlcywgMCwgbVZhbHVlcy5sZW5ndGgpOwotCi0gICAgICAgICAgICAgICAgbUtleXMgPSBua2V5czsKLSAgICAgICAgICAgICAgICBtVmFsdWVzID0gbnZhbHVlczsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKG1TaXplIC0gaSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgLy8gTG9nLmUoIlNwYXJzZUFycmF5IiwgIm1vdmUgIiArIChtU2l6ZSAtIGkpKTsKLSAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1LZXlzLCBpLCBtS2V5cywgaSArIDEsIG1TaXplIC0gaSk7Ci0gICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShtVmFsdWVzLCBpLCBtVmFsdWVzLCBpICsgMSwgbVNpemUgLSBpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbUtleXNbaV0gPSBrZXk7Ci0gICAgICAgICAgICBtVmFsdWVzW2ldID0gbmV3IFdlYWtSZWZlcmVuY2UodmFsdWUpOwotICAgICAgICAgICAgbVNpemUrKzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBrZXktdmFsdWUgbWFwcGluZ3MgdGhhdCB0aGlzIFNwYXJzZUFycmF5Ci0gICAgICogY3VycmVudGx5IHN0b3Jlcy4KLSAgICAgKi8KLSAgICBwdWJsaWMgaW50IHNpemUoKSB7Ci0gICAgICAgIGlmIChtR2FyYmFnZSkgewotICAgICAgICAgICAgZ2MoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBtU2l6ZTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBHaXZlbiBhbiBpbmRleCBpbiB0aGUgcmFuZ2UgPGNvZGU+MC4uLnNpemUoKS0xPC9jb2RlPiwgcmV0dXJucwotICAgICAqIHRoZSBrZXkgZnJvbSB0aGUgPGNvZGU+aW5kZXg8L2NvZGU+dGgga2V5LXZhbHVlIG1hcHBpbmcgdGhhdCB0aGlzCi0gICAgICogU3BhcnNlQXJyYXkgc3RvcmVzLgotICAgICAqLwotICAgIHB1YmxpYyBpbnQga2V5QXQoaW50IGluZGV4KSB7Ci0gICAgICAgIGlmIChtR2FyYmFnZSkgewotICAgICAgICAgICAgZ2MoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBtS2V5c1tpbmRleF07Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogR2l2ZW4gYW4gaW5kZXggaW4gdGhlIHJhbmdlIDxjb2RlPjAuLi5zaXplKCktMTwvY29kZT4sIHJldHVybnMKLSAgICAgKiB0aGUgdmFsdWUgZnJvbSB0aGUgPGNvZGU+aW5kZXg8L2NvZGU+dGgga2V5LXZhbHVlIG1hcHBpbmcgdGhhdCB0aGlzCi0gICAgICogU3BhcnNlQXJyYXkgc3RvcmVzLgotICAgICAqLwotICAgIHB1YmxpYyBFIHZhbHVlQXQoaW50IGluZGV4KSB7Ci0gICAgICAgIGlmIChtR2FyYmFnZSkgewotICAgICAgICAgICAgZ2MoKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiAoRSkgbVZhbHVlc1tpbmRleF0uZ2V0KCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogR2l2ZW4gYW4gaW5kZXggaW4gdGhlIHJhbmdlIDxjb2RlPjAuLi5zaXplKCktMTwvY29kZT4sIHNldHMgYSBuZXcKLSAgICAgKiB2YWx1ZSBmb3IgdGhlIDxjb2RlPmluZGV4PC9jb2RlPnRoIGtleS12YWx1ZSBtYXBwaW5nIHRoYXQgdGhpcwotICAgICAqIFNwYXJzZUFycmF5IHN0b3Jlcy4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBzZXRWYWx1ZUF0KGludCBpbmRleCwgRSB2YWx1ZSkgewotICAgICAgICBpZiAobUdhcmJhZ2UpIHsKLSAgICAgICAgICAgIGdjKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBtVmFsdWVzW2luZGV4XSA9IG5ldyBXZWFrUmVmZXJlbmNlKHZhbHVlKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBmb3Igd2hpY2gge0BsaW5rICNrZXlBdH0gd291bGQgcmV0dXJuIHRoZQotICAgICAqIHNwZWNpZmllZCBrZXksIG9yIGEgbmVnYXRpdmUgbnVtYmVyIGlmIHRoZSBzcGVjaWZpZWQKLSAgICAgKiBrZXkgaXMgbm90IG1hcHBlZC4KLSAgICAgKi8KLSAgICBwdWJsaWMgaW50IGluZGV4T2ZLZXkoaW50IGtleSkgewotICAgICAgICBpZiAobUdhcmJhZ2UpIHsKLSAgICAgICAgICAgIGdjKCk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gYmluYXJ5U2VhcmNoKG1LZXlzLCAwLCBtU2l6ZSwga2V5KTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIGFuIGluZGV4IGZvciB3aGljaCB7QGxpbmsgI3ZhbHVlQXR9IHdvdWxkIHJldHVybiB0aGUKLSAgICAgKiBzcGVjaWZpZWQga2V5LCBvciBhIG5lZ2F0aXZlIG51bWJlciBpZiBubyBrZXlzIG1hcCB0byB0aGUKLSAgICAgKiBzcGVjaWZpZWQgdmFsdWUuCi0gICAgICogQmV3YXJlIHRoYXQgdGhpcyBpcyBhIGxpbmVhciBzZWFyY2gsIHVubGlrZSBsb29rdXBzIGJ5IGtleSwKLSAgICAgKiBhbmQgdGhhdCBtdWx0aXBsZSBrZXlzIGNhbiBtYXAgdG8gdGhlIHNhbWUgdmFsdWUgYW5kIHRoaXMgd2lsbAotICAgICAqIGZpbmQgb25seSBvbmUgb2YgdGhlbS4KLSAgICAgKi8KLSAgICBwdWJsaWMgaW50IGluZGV4T2ZWYWx1ZShFIHZhbHVlKSB7Ci0gICAgICAgIGlmIChtR2FyYmFnZSkgewotICAgICAgICAgICAgZ2MoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbVNpemU7IGkrKykKLSAgICAgICAgICAgIGlmIChtVmFsdWVzW2ldLmdldCgpID09IHZhbHVlKQotICAgICAgICAgICAgICAgIHJldHVybiBpOwotCi0gICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZW1vdmVzIGFsbCBrZXktdmFsdWUgbWFwcGluZ3MgZnJvbSB0aGlzIFNwYXJzZUFycmF5LgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIGNsZWFyKCkgewotICAgICAgICBpbnQgbiA9IG1TaXplOwotICAgICAgICBXZWFrUmVmZXJlbmNlPD8+W10gdmFsdWVzID0gbVZhbHVlczsKLQotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewotICAgICAgICAgICAgdmFsdWVzW2ldID0gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIG1TaXplID0gMDsKLSAgICAgICAgbUdhcmJhZ2UgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBQdXRzIGEga2V5L3ZhbHVlIHBhaXIgaW50byB0aGUgYXJyYXksIG9wdGltaXppbmcgZm9yIHRoZSBjYXNlIHdoZXJlCi0gICAgICogdGhlIGtleSBpcyBncmVhdGVyIHRoYW4gYWxsIGV4aXN0aW5nIGtleXMgaW4gdGhlIGFycmF5LgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIGFwcGVuZChpbnQga2V5LCBFIHZhbHVlKSB7Ci0gICAgICAgIGlmIChtU2l6ZSAhPSAwICYmIGtleSA8PSBtS2V5c1ttU2l6ZSAtIDFdKSB7Ci0gICAgICAgICAgICBwdXQoa2V5LCB2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobVNpemUgPj0gbUtleXMubGVuZ3RoICYmIChtR2FyYmFnZSB8fCBoYXNSZWNsYWltZWRSZWZzKCkpKSB7Ci0gICAgICAgICAgICBnYygpOwotICAgICAgICB9Ci0KLSAgICAgICAgaW50IHBvcyA9IG1TaXplOwotICAgICAgICBpZiAocG9zID49IG1LZXlzLmxlbmd0aCkgewotICAgICAgICAgICAgaW50IG4gPSBBcnJheVV0aWxzLmlkZWFsSW50QXJyYXlTaXplKHBvcyArIDEpOwotCi0gICAgICAgICAgICBpbnRbXSBua2V5cyA9IG5ldyBpbnRbbl07Ci0gICAgICAgICAgICBXZWFrUmVmZXJlbmNlPD8+W10gbnZhbHVlcyA9IG5ldyBXZWFrUmVmZXJlbmNlW25dOwotCi0gICAgICAgICAgICAvLyBMb2cuZSgiU3BhcnNlQXJyYXkiLCAiZ3JvdyAiICsgbUtleXMubGVuZ3RoICsgIiB0byAiICsgbik7Ci0gICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1LZXlzLCAwLCBua2V5cywgMCwgbUtleXMubGVuZ3RoKTsKLSAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobVZhbHVlcywgMCwgbnZhbHVlcywgMCwgbVZhbHVlcy5sZW5ndGgpOwotCi0gICAgICAgICAgICBtS2V5cyA9IG5rZXlzOwotICAgICAgICAgICAgbVZhbHVlcyA9IG52YWx1ZXM7Ci0gICAgICAgIH0KLQotICAgICAgICBtS2V5c1twb3NdID0ga2V5OwotICAgICAgICBtVmFsdWVzW3Bvc10gPSBuZXcgV2Vha1JlZmVyZW5jZSh2YWx1ZSk7Ci0gICAgICAgIG1TaXplID0gcG9zICsgMTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIGJvb2xlYW4gaGFzUmVjbGFpbWVkUmVmcygpIHsKLSAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgbVNpemUgOyBpKyspIHsKLSAgICAgICAgICAgIGlmIChtVmFsdWVzW2ldLmdldCgpID09IG51bGwpIHsgLy8gREVMRVRFRC5nZXQoKSBuZXZlciByZXR1cm5zIG51bGwuCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBzdGF0aWMgaW50IGJpbmFyeVNlYXJjaChpbnRbXSBhLCBpbnQgc3RhcnQsIGludCBsZW4sIGludCBrZXkpIHsKLSAgICAgICAgaW50IGhpZ2ggPSBzdGFydCArIGxlbiwgbG93ID0gc3RhcnQgLSAxLCBndWVzczsKLQotICAgICAgICB3aGlsZSAoaGlnaCAtIGxvdyA+IDEpIHsKLSAgICAgICAgICAgIGd1ZXNzID0gKGhpZ2ggKyBsb3cpIC8gMjsKLQotICAgICAgICAgICAgaWYgKGFbZ3Vlc3NdIDwga2V5KQotICAgICAgICAgICAgICAgIGxvdyA9IGd1ZXNzOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGhpZ2ggPSBndWVzczsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChoaWdoID09IHN0YXJ0ICsgbGVuKQotICAgICAgICAgICAgcmV0dXJuIH4oc3RhcnQgKyBsZW4pOwotICAgICAgICBlbHNlIGlmIChhW2hpZ2hdID09IGtleSkKLSAgICAgICAgICAgIHJldHVybiBoaWdoOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gfmhpZ2g7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBpbnRbXSBtS2V5czsKLSAgICBwcml2YXRlIFdlYWtSZWZlcmVuY2U8Pz5bXSBtVmFsdWVzOwotICAgIHByaXZhdGUgaW50IG1TaXplOwotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2dvb2dsZS9hbmRyb2lkL21hcHMvTWFwVmlldy5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvY29tL2dvb2dsZS9hbmRyb2lkL21hcHMvTWFwVmlldy5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZDAxM2JiLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2NvbS9nb29nbGUvYW5kcm9pZC9tYXBzL01hcFZpZXcuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uZ29vZ2xlLmFuZHJvaWQubWFwczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuTW9ja1ZpZXc7Ci0KLWltcG9ydCBhbmRyb2lkLmNvbnRlbnQuQ29udGV4dDsKLWltcG9ydCBhbmRyb2lkLm9zLkJ1bmRsZTsKLWltcG9ydCBhbmRyb2lkLnV0aWwuQXR0cmlidXRlU2V0OwotaW1wb3J0IGFuZHJvaWQudmlldy5WaWV3OwotCi0vKioKLSAqIE1vY2sgdmVyc2lvbiBvZiB0aGUgTWFwVmlldy4KLSAqIE9ubHkgbm9uIG92ZXJyaWRlIHB1YmxpYyBtZXRob2RzIGZyb20gdGhlIHJlYWwgTWFwVmlldyBoYXZlIGJlZW4gYWRkZWQgaW4gdGhlcmUuCi0gKiBNZXRob2RzIHRoYXQgdGFrZSBhbiB1bmtub3duIGNsYXNzIGFzIHBhcmFtZXRlciBvciBhcyByZXR1cm4gb2JqZWN0LCBoYXZlIGJlZW4gcmVtb3ZlZCBmb3Igbm93LgotICogCi0gKiBUT0RPOiBnZW5lcmF0ZSBhdXRvbWF0aWNhbGx5LgotICoKLSAqLwotcHVibGljIGNsYXNzIE1hcFZpZXcgZXh0ZW5kcyBNb2NrVmlldyB7Ci0KLSAgICAvKioKLSAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgV2ViVmlldyB3aXRoIGEgQ29udGV4dCBvYmplY3QuCi0gICAgICogQHBhcmFtIGNvbnRleHQgQSBDb250ZXh0IG9iamVjdCB1c2VkIHRvIGFjY2VzcyBhcHBsaWNhdGlvbiBhc3NldHMuCi0gICAgICovCi0gICAgcHVibGljIE1hcFZpZXcoQ29udGV4dCBjb250ZXh0KSB7Ci0gICAgICAgIHRoaXMoY29udGV4dCwgbnVsbCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ29uc3RydWN0IGEgbmV3IFdlYlZpZXcgd2l0aCBsYXlvdXQgcGFyYW1ldGVycy4KLSAgICAgKiBAcGFyYW0gY29udGV4dCBBIENvbnRleHQgb2JqZWN0IHVzZWQgdG8gYWNjZXNzIGFwcGxpY2F0aW9uIGFzc2V0cy4KLSAgICAgKiBAcGFyYW0gYXR0cnMgQW4gQXR0cmlidXRlU2V0IHBhc3NlZCB0byBvdXIgcGFyZW50LgotICAgICAqLwotICAgIHB1YmxpYyBNYXBWaWV3KENvbnRleHQgY29udGV4dCwgQXR0cmlidXRlU2V0IGF0dHJzKSB7Ci0gICAgICAgIHRoaXMoY29udGV4dCwgYXR0cnMsIGNvbS5hbmRyb2lkLmludGVybmFsLlIuYXR0ci5tYXBWaWV3U3R5bGUpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIENvbnN0cnVjdCBhIG5ldyBXZWJWaWV3IHdpdGggbGF5b3V0IHBhcmFtZXRlcnMgYW5kIGEgZGVmYXVsdCBzdHlsZS4KLSAgICAgKiBAcGFyYW0gY29udGV4dCBBIENvbnRleHQgb2JqZWN0IHVzZWQgdG8gYWNjZXNzIGFwcGxpY2F0aW9uIGFzc2V0cy4KLSAgICAgKiBAcGFyYW0gYXR0cnMgQW4gQXR0cmlidXRlU2V0IHBhc3NlZCB0byBvdXIgcGFyZW50LgotICAgICAqIEBwYXJhbSBkZWZTdHlsZSBUaGUgZGVmYXVsdCBzdHlsZSByZXNvdXJjZSBJRC4KLSAgICAgKi8KLSAgICBwdWJsaWMgTWFwVmlldyhDb250ZXh0IGNvbnRleHQsIEF0dHJpYnV0ZVNldCBhdHRycywgaW50IGRlZlN0eWxlKSB7Ci0gICAgICAgIHN1cGVyKGNvbnRleHQsIGF0dHJzLCBkZWZTdHlsZSk7Ci0gICAgfQotICAgIAotICAgIC8vIFNUQVJUIEZBS0UgUFVCTElDIE1FVEhPRFMKLSAgICAKLSAgICBwdWJsaWMgdm9pZCBkaXNwbGF5Wm9vbUNvbnRyb2xzKGJvb2xlYW4gdGFrZUZvY3VzKSB7Ci0gICAgfQotCi0gICAgcHVibGljIGJvb2xlYW4gY2FuQ292ZXJDZW50ZXIoKSB7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBwcmVMb2FkKCkgewotICAgIH0KLQotICAgIHB1YmxpYyBpbnQgZ2V0Wm9vbUxldmVsKCkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBzZXRTYXRlbGxpdGUoYm9vbGVhbiBvbikgewotICAgIH0KLQotICAgIHB1YmxpYyBib29sZWFuIGlzU2F0ZWxsaXRlKCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgc2V0VHJhZmZpYyhib29sZWFuIG9uKSB7Ci0gICAgfQotCi0gICAgcHVibGljIGJvb2xlYW4gaXNUcmFmZmljKCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgc2V0U3RyZWV0Vmlldyhib29sZWFuIG9uKSB7Ci0gICAgfQotCi0gICAgcHVibGljIGJvb2xlYW4gaXNTdHJlZXRWaWV3KCkgewotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcHVibGljIGludCBnZXRMYXRpdHVkZVNwYW4oKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHB1YmxpYyBpbnQgZ2V0TG9uZ2l0dWRlU3BhbigpIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcHVibGljIGludCBnZXRNYXhab29tTGV2ZWwoKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIG9uU2F2ZUluc3RhbmNlU3RhdGUoQnVuZGxlIHN0YXRlKSB7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgb25SZXN0b3JlSW5zdGFuY2VTdGF0ZShCdW5kbGUgc3RhdGUpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgVmlldyBnZXRab29tQ29udHJvbHMoKSB7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2xpYmNvcmUvaWN1L0RhdGVJbnRlcnZhbEZvcm1hdF9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvbGliY29yZS9pY3UvRGF0ZUludGVydmFsRm9ybWF0X0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3NzNkOTMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvbGliY29yZS9pY3UvRGF0ZUludGVydmFsRm9ybWF0X0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBsaWJjb3JlLmljdTsKLQotaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOwotCi1pbXBvcnQgY29tLmFuZHJvaWQuaWRlLmNvbW1vbi5yZW5kZXJpbmcuYXBpLkxheW91dExvZzsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLkJyaWRnZTsKLWltcG9ydCBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlLmltcGwuRGVsZWdhdGVNYW5hZ2VyOwotaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUludGVydmFsRm9ybWF0OwotaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuRGF0ZUludGVydmFsOwotaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7Ci1pbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOwotCi1wdWJsaWMgY2xhc3MgRGF0ZUludGVydmFsRm9ybWF0X0RlbGVnYXRlIHsKLQotICAgIC8vIC0tLS0gZGVsZWdhdGUgbWFuYWdlciAtLS0tCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRGVsZWdhdGVNYW5hZ2VyPERhdGVJbnRlcnZhbEZvcm1hdF9EZWxlZ2F0ZT4gc01hbmFnZXIgPQotICAgICAgICAgICAgbmV3IERlbGVnYXRlTWFuYWdlcjxEYXRlSW50ZXJ2YWxGb3JtYXRfRGVsZWdhdGU+KERhdGVJbnRlcnZhbEZvcm1hdF9EZWxlZ2F0ZS5jbGFzcyk7Ci0KLSAgICAvLyAtLS0tIGRlbGVnYXRlIGRhdGEgLS0tLQotICAgIHByaXZhdGUgRGF0ZUludGVydmFsRm9ybWF0IG1Gb3JtYXQ7Ci0KLQotICAgIC8vIC0tLS0gbmF0aXZlIG1ldGhvZHMgLS0tLQotCi0gICAgLypwYWNrYWdlKi9zdGF0aWMgU3RyaW5nIGZvcm1hdERhdGVJbnRlcnZhbChsb25nIGFkZHJlc3MsIGxvbmcgZnJvbURhdGUsIGxvbmcgdG9EYXRlKSB7Ci0gICAgICAgIERhdGVJbnRlcnZhbEZvcm1hdF9EZWxlZ2F0ZSBkZWxlZ2F0ZSA9IHNNYW5hZ2VyLmdldERlbGVnYXRlKChpbnQpYWRkcmVzcyk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICBCcmlkZ2UuZ2V0TG9nKCkuZXJyb3IoTGF5b3V0TG9nLlRBR19CUk9LRU4sCi0gICAgICAgICAgICAgICAgICAgICJVbmFibGUgZm9yIGZpbmQgbmF0aXZlIERhdGVJbnRlcnZhbEZvcm1hdCIsIG51bGwpOwotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLSAgICAgICAgRGF0ZUludGVydmFsIGludGVydmFsID0gbmV3IERhdGVJbnRlcnZhbChmcm9tRGF0ZSwgdG9EYXRlKTsKLSAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOwotICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOwotICAgICAgICBkZWxlZ2F0ZS5tRm9ybWF0LmZvcm1hdChpbnRlcnZhbCwgc2IsIHBvcyk7Ci0gICAgICAgIHJldHVybiBzYi50b1N0cmluZygpOwotICAgIH0KLQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBsb25nIGNyZWF0ZURhdGVJbnRlcnZhbEZvcm1hdChTdHJpbmcgc2tlbGV0b24sIFN0cmluZyBsb2NhbGVOYW1lLAotICAgICAgICAgICAgU3RyaW5nIHR6TmFtZSkgewotICAgICAgICBUaW1lWm9uZSBwcmV2RGVmYXVsdFR6ID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOwotICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lLmdldFRpbWVab25lKHR6TmFtZSkpOwotICAgICAgICBEYXRlSW50ZXJ2YWxGb3JtYXRfRGVsZWdhdGUgbmV3RGVsZWdhdGUgPSBuZXcgRGF0ZUludGVydmFsRm9ybWF0X0RlbGVnYXRlKCk7Ci0gICAgICAgIG5ld0RlbGVnYXRlLm1Gb3JtYXQgPQotICAgICAgICAgICAgICAgIERhdGVJbnRlcnZhbEZvcm1hdC5nZXRJbnN0YW5jZShza2VsZXRvbiwgbmV3IFVMb2NhbGUobG9jYWxlTmFtZSkpOwotICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHByZXZEZWZhdWx0VHopOwotICAgICAgICByZXR1cm4gc01hbmFnZXIuYWRkTmV3RGVsZWdhdGUobmV3RGVsZWdhdGUpOwotICAgIH0KLQotICAgIC8qcGFja2FnZSovIHN0YXRpYyB2b2lkIGRlc3Ryb3lEYXRlSW50ZXJ2YWxGb3JtYXQobG9uZyBhZGRyZXNzKSB7Ci0gICAgICAgIHNNYW5hZ2VyLnJlbW92ZUphdmFSZWZlcmVuY2VGb3IoKGludClhZGRyZXNzKTsKLSAgICB9Ci0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2Uvc3JjL2xpYmNvcmUvaWN1L0lDVV9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvbGliY29yZS9pY3UvSUNVX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2YWU4MDQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS9zcmMvbGliY29yZS9pY3UvSUNVX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgbGliY29yZS5pY3U7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuTGF5b3V0bGliRGVsZWdhdGU7Ci1pbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlVGltZVBhdHRlcm5HZW5lcmF0b3I7Ci1pbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOwotCi1pbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKLQotLyoqCi0gKiBEZWxlZ2F0ZSBpbXBsZW1lbnRpbmcgdGhlIG5hdGl2ZSBtZXRob2RzIG9mIGxpYmNvcmUuaWN1LklDVQotICoKLSAqIFRocm91Z2ggdGhlIGxheW91dGxpYl9jcmVhdGUgdG9vbCwgdGhlIG9yaWdpbmFsIG5hdGl2ZSBtZXRob2RzIG9mIElDVSBoYXZlIGJlZW4gcmVwbGFjZWQKLSAqIGJ5IGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhlIHNhbWUgbmFtZSBpbiB0aGlzIGRlbGVnYXRlIGNsYXNzLgotICoKLSAqLwotcHVibGljIGNsYXNzIElDVV9EZWxlZ2F0ZSB7Ci0KLSAgICAvLyAtLS0gSmF2YSBkZWxlZ2F0ZXMKLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBTdHJpbmcgdG9Mb3dlckNhc2UoU3RyaW5nIHMsIFN0cmluZyBsb2NhbGVOYW1lKSB7Ci0gICAgICAgIHJldHVybiBzLnRvTG93ZXJDYXNlKCk7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIFN0cmluZyB0b1VwcGVyQ2FzZShTdHJpbmcgcywgU3RyaW5nIGxvY2FsZU5hbWUpIHsKLSAgICAgICAgcmV0dXJuIHMudG9VcHBlckNhc2UoKTsKLSAgICB9Ci0KLSAgICAvLyAtLS0gTmF0aXZlIG1ldGhvZHMgYWNjZXNzaW5nIElDVSdzIGRhdGFiYXNlLgotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIFN0cmluZyBnZXRCZXN0RGF0ZVRpbWVQYXR0ZXJuKFN0cmluZyBza2VsZXRvbiwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKLSAgICAgICAgcmV0dXJuIERhdGVUaW1lUGF0dGVybkdlbmVyYXRvci5nZXRJbnN0YW5jZShuZXcgVUxvY2FsZShsb2NhbGVOYW1lKSkKLSAgICAgICAgICAgICAgICAuZ2V0QmVzdFBhdHRlcm4oc2tlbGV0b24pOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBTdHJpbmcgZ2V0Q2xkclZlcnNpb24oKSB7Ci0gICAgICAgIHJldHVybiAiMjIuMS4xIjsgICAgICAvLyBUT0RPOiBjaGVjayB3aGF0IHRoZSByaWdodCB2YWx1ZSBzaG91bGQgYmUuCi0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIFN0cmluZyBnZXRJY3VWZXJzaW9uKCkgewotICAgICAgICByZXR1cm4gInVua25vd25fbGF5b3V0bGliIjsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgU3RyaW5nIGdldFVuaWNvZGVWZXJzaW9uKCkgewotICAgICAgICByZXR1cm4gIjUuMiI7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIFN0cmluZ1tdIGdldEF2YWlsYWJsZUJyZWFrSXRlcmF0b3JMb2NhbGVzTmF0aXZlKCkgewotICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1swXTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgU3RyaW5nW10gZ2V0QXZhaWxhYmxlQ2FsZW5kYXJMb2NhbGVzTmF0aXZlKCkgewotICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1swXTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgU3RyaW5nW10gZ2V0QXZhaWxhYmxlQ29sbGF0b3JMb2NhbGVzTmF0aXZlKCkgewotICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1swXTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgU3RyaW5nW10gZ2V0QXZhaWxhYmxlRGF0ZUZvcm1hdExvY2FsZXNOYXRpdmUoKSB7Ci0gICAgICAgIHJldHVybiBuZXcgU3RyaW5nWzBdOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBTdHJpbmdbXSBnZXRBdmFpbGFibGVMb2NhbGVzTmF0aXZlKCkgewotICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1swXTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgU3RyaW5nW10gZ2V0QXZhaWxhYmxlTnVtYmVyRm9ybWF0TG9jYWxlc05hdGl2ZSgpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdbMF07Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIFN0cmluZ1tdIGdldEF2YWlsYWJsZUN1cnJlbmN5Q29kZXMoKSB7Ci0gICAgICAgIHJldHVybiBuZXcgU3RyaW5nWzBdOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBTdHJpbmcgZ2V0Q3VycmVuY3lDb2RlKFN0cmluZyBsb2NhbGUpIHsKLSAgICAgICAgcmV0dXJuICIiOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBTdHJpbmcgZ2V0Q3VycmVuY3lEaXNwbGF5TmFtZShTdHJpbmcgbG9jYWxlLCBTdHJpbmcgY3VycmVuY3lDb2RlKSB7Ci0gICAgICAgIHJldHVybiAiIjsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgaW50IGdldEN1cnJlbmN5RnJhY3Rpb25EaWdpdHMoU3RyaW5nIGN1cnJlbmN5Q29kZSkgewotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgU3RyaW5nIGdldEN1cnJlbmN5U3ltYm9sKFN0cmluZyBsb2NhbGUsIFN0cmluZyBjdXJyZW5jeUNvZGUpIHsKLSAgICAgICAgcmV0dXJuICIiOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUNvdW50cnlOYXRpdmUoU3RyaW5nIGNvdW50cnlDb2RlLCBTdHJpbmcgbG9jYWxlKSB7Ci0gICAgICAgIHJldHVybiAiIjsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlMYW5ndWFnZU5hdGl2ZShTdHJpbmcgbGFuZ3VhZ2VDb2RlLCBTdHJpbmcgbG9jYWxlKSB7Ci0gICAgICAgIHJldHVybiAiIjsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlWYXJpYW50TmF0aXZlKFN0cmluZyB2YXJpYW50Q29kZSwgU3RyaW5nIGxvY2FsZSkgewotICAgICAgICByZXR1cm4gIiI7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIFN0cmluZyBnZXRJU08zQ291bnRyeU5hdGl2ZShTdHJpbmcgbG9jYWxlKSB7Ci0gICAgICAgIHJldHVybiAiIjsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgU3RyaW5nIGdldElTTzNMYW5ndWFnZU5hdGl2ZShTdHJpbmcgbG9jYWxlKSB7Ci0gICAgICAgIHJldHVybiAiIjsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgU3RyaW5nIGFkZExpa2VseVN1YnRhZ3MoU3RyaW5nIGxvY2FsZSkgewotICAgICAgICByZXR1cm4gIiI7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIFN0cmluZyBnZXRTY3JpcHQoU3RyaW5nIGxvY2FsZSkgewotICAgICAgICByZXR1cm4gIiI7Ci0gICAgfQotCi0gICAgQExheW91dGxpYkRlbGVnYXRlCi0gICAgLypwYWNrYWdlKi8gc3RhdGljIFN0cmluZ1tdIGdldElTT0xhbmd1YWdlc05hdGl2ZSgpIHsKLSAgICAgICAgcmV0dXJuIExvY2FsZS5nZXRJU09MYW5ndWFnZXMoKTsKLSAgICB9Ci0KLSAgICBATGF5b3V0bGliRGVsZWdhdGUKLSAgICAvKnBhY2thZ2UqLyBzdGF0aWMgU3RyaW5nW10gZ2V0SVNPQ291bnRyaWVzTmF0aXZlKCkgewotICAgICAgICByZXR1cm4gTG9jYWxlLmdldElTT0NvdW50cmllcygpOwotICAgIH0KLQotICAgIEBMYXlvdXRsaWJEZWxlZ2F0ZQotICAgIC8qcGFja2FnZSovIHN0YXRpYyBib29sZWFuIGluaXRMb2NhbGVEYXRhSW1wbChTdHJpbmcgbG9jYWxlLCBMb2NhbGVEYXRhIHJlc3VsdCkgewotCi0gICAgICAgIC8vIFVzZWQgYnkgQ2FsZW5kYXIuCi0gICAgICAgIHJlc3VsdC5maXJzdERheU9mV2VlayA9IEludGVnZXIudmFsdWVPZigxKTsKLSAgICAgICAgcmVzdWx0Lm1pbmltYWxEYXlzSW5GaXJzdFdlZWsgPSBJbnRlZ2VyLnZhbHVlT2YoMSk7Ci0KLSAgICAgICAgLy8gVXNlZCBieSBEYXRlRm9ybWF0U3ltYm9scy4KLSAgICAgICAgcmVzdWx0LmFtUG0gPSBuZXcgU3RyaW5nW10geyAiQU0iLCAiUE0iIH07Ci0gICAgICAgIHJlc3VsdC5lcmFzID0gbmV3IFN0cmluZ1tdIHsgIkJDIiwgIkFEIiB9OwotCi0gICAgICAgIHJlc3VsdC5sb25nTW9udGhOYW1lcyA9IG5ldyBTdHJpbmdbXSB7ICJKYW51YXJ5IiwgIkZlYnJ1YXJ5IiwgIk1hcmNoIiwgIkFwcmlsIiwgIk1heSIsCi0gICAgICAgICAgICAgICAgIkp1bmUiLCAiSnVseSIsICJBdWd1c3QiLCAiU2VwdGVtYmVyIiwgIk9jdG9iZXIiLCAiTm92ZW1iZXIiLCAiRGVjZW1iZXIiIH07Ci0gICAgICAgIHJlc3VsdC5zaG9ydE1vbnRoTmFtZXMgPSBuZXcgU3RyaW5nW10geyAiSmFuIiwgIkZlYiIsICJNYXIiLCAiQXByIiwgIk1heSIsCi0gICAgICAgICAgICAgICAgIkp1biIsICJKdWwiLCAiQXVnIiwgIlNlcCIsICJPY3QiLCAiTm92IiwgIkRlYyIgfTsKLSAgICAgICAgcmVzdWx0LmxvbmdTdGFuZEFsb25lTW9udGhOYW1lcyA9IHJlc3VsdC5sb25nTW9udGhOYW1lczsKLSAgICAgICAgcmVzdWx0LnNob3J0U3RhbmRBbG9uZU1vbnRoTmFtZXMgPSByZXN1bHQuc2hvcnRNb250aE5hbWVzOwotCi0gICAgICAgIC8vIFRoZSBwbGF0Zm9ybSBjb2RlIGV4cGVjdHMgdGhpcyB0byBiZWdpbiBhdCBpbmRleCAxLCByYXRoZXIgdGhhbiAwLiBJdCBtYXBzIGl0IGRpcmVjdGx5IHRvCi0gICAgICAgIC8vIHRoZSBjb25zdGFudHMgZnJvbSBqYXZhLnV0aWwuQ2FsZW5kYXIuPHdlZWtkYXk+Ci0gICAgICAgIHJlc3VsdC5sb25nV2Vla2RheU5hbWVzID0gbmV3IFN0cmluZ1tdIHsKLSAgICAgICAgICAgICAgICAiIiwgIlN1bmRheSIsICJNb25kYXkiICwiVHVlc2RheSIsICJXZWRuZXNkYXkiLCAiVGh1cnNkYXkiLCAiRnJpZGF5IiwgIlNhdHVyZGF5IiB9OwotICAgICAgICByZXN1bHQuc2hvcnRXZWVrZGF5TmFtZXMgPSBuZXcgU3RyaW5nW10gewotICAgICAgICAgICAgICAgICIiLCAiU3VuIiwgIk1vbiIgLCJUdWUiLCAiV2VkIiwgIlRodSIsICJGcmkiLCAiU2F0IiB9OwotICAgICAgICByZXN1bHQudGlueVdlZWtkYXlOYW1lcyA9IG5ldyBTdHJpbmdbXSB7Ci0gICAgICAgICAgICAgICAgIiIsICJTIiwgIk0iLCAiVCIsICJXIiwgIlQiLCAiRiIsICJTIiB9OwotCi0gICAgICAgIHJlc3VsdC5sb25nU3RhbmRBbG9uZVdlZWtkYXlOYW1lcyA9IHJlc3VsdC5sb25nV2Vla2RheU5hbWVzOwotICAgICAgICByZXN1bHQuc2hvcnRTdGFuZEFsb25lV2Vla2RheU5hbWVzID0gcmVzdWx0LnNob3J0V2Vla2RheU5hbWVzOwotICAgICAgICByZXN1bHQudGlueVN0YW5kQWxvbmVXZWVrZGF5TmFtZXMgPSByZXN1bHQudGlueVdlZWtkYXlOYW1lczsKLQotICAgICAgICByZXN1bHQuZnVsbFRpbWVGb3JtYXQgPSAiIjsKLSAgICAgICAgcmVzdWx0LmxvbmdUaW1lRm9ybWF0ID0gIiI7Ci0gICAgICAgIHJlc3VsdC5tZWRpdW1UaW1lRm9ybWF0ID0gIiI7Ci0gICAgICAgIHJlc3VsdC5zaG9ydFRpbWVGb3JtYXQgPSAiIjsKLQotICAgICAgICByZXN1bHQuZnVsbERhdGVGb3JtYXQgPSAiIjsKLSAgICAgICAgcmVzdWx0LmxvbmdEYXRlRm9ybWF0ID0gIiI7Ci0gICAgICAgIHJlc3VsdC5tZWRpdW1EYXRlRm9ybWF0ID0gIiI7Ci0gICAgICAgIHJlc3VsdC5zaG9ydERhdGVGb3JtYXQgPSAiIjsKLQotICAgICAgICAvLyBVc2VkIGJ5IERlY2ltYWxGb3JtYXRTeW1ib2xzLgotICAgICAgICByZXN1bHQuemVyb0RpZ2l0ID0gJzAnOwotICAgICAgICByZXN1bHQuZGVjaW1hbFNlcGFyYXRvciA9ICcuJzsKLSAgICAgICAgcmVzdWx0Lmdyb3VwaW5nU2VwYXJhdG9yID0gJywnOwotICAgICAgICByZXN1bHQucGF0dGVyblNlcGFyYXRvciA9ICcgJzsKLSAgICAgICAgcmVzdWx0LnBlcmNlbnQgPSAnJSc7Ci0gICAgICAgIHJlc3VsdC5wZXJNaWxsID0gJ1x1MjAzMCc7Ci0gICAgICAgIHJlc3VsdC5tb25ldGFyeVNlcGFyYXRvciA9ICcgJzsKLSAgICAgICAgcmVzdWx0Lm1pbnVzU2lnbiA9ICctJzsKLSAgICAgICAgcmVzdWx0LmV4cG9uZW50U2VwYXJhdG9yID0gImUiOwotICAgICAgICByZXN1bHQuaW5maW5pdHkgPSAiXHUyMjFFIjsKLSAgICAgICAgcmVzdWx0Lk5hTiA9ICJOYU4iOwotICAgICAgICAvLyBBbHNvIHVzZWQgYnkgQ3VycmVuY3kuCi0gICAgICAgIHJlc3VsdC5jdXJyZW5jeVN5bWJvbCA9ICIkIjsKLSAgICAgICAgcmVzdWx0LmludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCA9ICJVU0QiOwotCi0gICAgICAgIC8vIFVzZWQgYnkgRGVjaW1hbEZvcm1hdCBhbmQgTnVtYmVyRm9ybWF0LgotICAgICAgICByZXN1bHQubnVtYmVyUGF0dGVybiA9ICIlZiI7Ci0gICAgICAgIHJlc3VsdC5pbnRlZ2VyUGF0dGVybiA9ICIlZCI7Ci0gICAgICAgIHJlc3VsdC5jdXJyZW5jeVBhdHRlcm4gPSAiJXMiOwotICAgICAgICByZXN1bHQucGVyY2VudFBhdHRlcm4gPSAiJWYiOwotCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvdGVzdHMvLmNsYXNzcGF0aCBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvdGVzdHMvLmNsYXNzcGF0aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmIzMmUwOS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Rlc3RzLy5jbGFzc3BhdGgKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGNsYXNzcGF0aD4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJyZXMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIiLz4KLQk8Y2xhc3NwYXRoZW50cnkgY29tYmluZWFjY2Vzc3J1bGVzPSJmYWxzZSIga2luZD0ic3JjIiBwYXRoPSIvbGF5b3V0bGliX2JyaWRnZSIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJ2YXIiIHBhdGg9IkFORFJPSURfUExBVF9TUkMvcHJlYnVpbHRzL21pc2MvY29tbW9uL2t4bWwyL2t4bWwyLTIuMy4wLmphciIgc291cmNlcGF0aD0iL0FORFJPSURfUExBVF9TUkMvZGFsdmlrL2xpYmNvcmUveG1sL3NyYy9tYWluL2phdmEiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0idmFyIiBwYXRoPSJBTkRST0lEX1BMQVRfU1JDL291dC9ob3N0L2NvbW1vbi9vYmovSkFWQV9MSUJSQVJJRVMvdGVtcF9sYXlvdXRsaWJfaW50ZXJtZWRpYXRlcy9qYXZhbGliLmphciIgc291cmNlcGF0aD0iL0FORFJPSURfUExBVF9TUkMvZnJhbWV3b3Jrcy9iYXNlIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0Lmp1bml0LkpVTklUX0NPTlRBSU5FUi8zIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Ci08L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvdGVzdHMvLnByb2plY3QgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Rlc3RzLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzI1ZWVkLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvdGVzdHMvLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5sYXlvdXRsaWJfYnJpZGdlLXRlc3RzPC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KLQk8L25hdHVyZXM+Ci08L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvdGVzdHMvQW5kcm9pZC5tayBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvdGVzdHMvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOThjYWRlOS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Rlc3RzL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxMSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotCi1MT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCi0KLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotCi0jIE9ubHkgY29tcGlsZSBzb3VyY2UgamF2YSBmaWxlcyBpbiB0aGlzIGxpYi4KLUxPQ0FMX1NSQ19GSUxFUyA6PSAkKGNhbGwgYWxsLWphdmEtZmlsZXMtdW5kZXIsIHNyYykKLQotTE9DQUxfSkFWQV9SRVNPVVJDRV9ESVJTIDo9IHJlcwotCi1MT0NBTF9NT0RVTEUgOj0gbGF5b3V0bGliLXRlc3RzCi1MT0NBTF9NT0RVTEVfVEFHUyA6PSBvcHRpb25hbAotCi1MT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBsYXlvdXRsaWIga3htbDItMi4zLjAganVuaXQKLQotaW5jbHVkZSAkKEJVSUxEX0hPU1RfSkFWQV9MSUJSQVJZKQotCi0jIEJ1aWxkIGFsbCBzdWItZGlyZWN0b3JpZXMKLWluY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvdGVzdHMvcmVzL2NvbS9hbmRyb2lkL2xheW91dGxpYi90ZXN0ZGF0YS9sYXlvdXQxLnhtbCBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvdGVzdHMvcmVzL2NvbS9hbmRyb2lkL2xheW91dGxpYi90ZXN0ZGF0YS9sYXlvdXQxLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjhmYzk0Ny4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Rlc3RzL3Jlcy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvdGVzdGRhdGEvbGF5b3V0MS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgotCi08IS0tCi0gQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLQotIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLQotICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0KLSBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0tLT4KLQotPExpbmVhckxheW91dCB4bWxuczphbmRyb2lkPSJodHRwOi8vc2NoZW1hcy5hbmRyb2lkLmNvbS9hcGsvcmVzL2FuZHJvaWQiCi0gICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9Im1hdGNoX3BhcmVudCIKLSAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9Im1hdGNoX3BhcmVudCIKLQlhbmRyb2lkOm9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCIKLT4KLQk8QnV0dG9uCi0JCWFuZHJvaWQ6aWQ9IkAraWQvYm91dG9uIgotCSAgICBhbmRyb2lkOmxheW91dF93aWR0aD0id3JhcF9jb250ZW50IgotCSAgICBhbmRyb2lkOmxheW91dF9oZWlnaHQ9IndyYXBfY29udGVudCIKLQkgICAgYW5kcm9pZDpsYXlvdXRfd2VpZ2h0PSIxIgotCSAgICBhbmRyb2lkOnRleHQ9Ik15IEJ1dHRvbiBUZXh0IgotCSAgICA+Ci0JICAgIDwvQnV0dG9uPgotCTxWaWV3Ci0JCWFuZHJvaWQ6aWQ9IkAraWQvc3VyZmFjZSIKLQkgICAgYW5kcm9pZDpsYXlvdXRfd2lkdGg9Im1hdGNoX3BhcmVudCIKLQkgICAgYW5kcm9pZDpsYXlvdXRfaGVpZ2h0PSJtYXRjaF9wYXJlbnQiCi0JICAgIGFuZHJvaWQ6bGF5b3V0X3dlaWdodD0iMiIKLQkgICAgLz4KLQk8VGV4dFZpZXcKLQkgICAgYW5kcm9pZDppZD0iQCtpZC9zdGF0dXMiCi0JICAgIGFuZHJvaWQ6cGFkZGluZ0xlZnQ9IjJkaXAiCi0JICAgIGFuZHJvaWQ6bGF5b3V0X3dlaWdodD0iMCIKLQkgICAgYW5kcm9pZDpiYWNrZ3JvdW5kPSJAZHJhd2FibGUvYmxhY2siCi0JICAgIGFuZHJvaWQ6bGF5b3V0X3dpZHRoPSJtYXRjaF9wYXJlbnQiCi0JICAgIGFuZHJvaWQ6bGF5b3V0X2hlaWdodD0id3JhcF9jb250ZW50IgotCSAgICBhbmRyb2lkOmxpbmVzPSIxIgotCSAgICBhbmRyb2lkOmdyYXZpdHk9ImNlbnRlcl92ZXJ0aWNhbHxjZW50ZXJfaG9yaXpvbnRhbCIKLQkgICAgYW5kcm9pZDp0ZXh0PSJNeSBUZXh0VmlldyBUZXh0IgotCSAgICAvPgotPC9MaW5lYXJMYXlvdXQ+CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Rlc3RzL3NyYy9hbmRyb2lkL2dyYXBoaWNzL01hdHJpeF9EZWxlZ2F0ZVRlc3QuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvdGVzdHMvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvTWF0cml4X0RlbGVnYXRlVGVzdC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYzRlZGFjLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9icmlkZ2UvdGVzdHMvc3JjL2FuZHJvaWQvZ3JhcGhpY3MvTWF0cml4X0RlbGVnYXRlVGVzdC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgYW5kcm9pZC5ncmFwaGljczsKLQotaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKLQotLyoqCi0gKgotICovCi1wdWJsaWMgY2xhc3MgTWF0cml4X0RlbGVnYXRlVGVzdCBleHRlbmRzIFRlc3RDYXNlIHsKLQotICAgIEBPdmVycmlkZQotICAgIHByb3RlY3RlZCB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIHN1cGVyLnNldFVwKCk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHJvdGVjdGVkIHZvaWQgdGVhckRvd24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgc3VwZXIudGVhckRvd24oKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCB0ZXN0SWRlbnRpdHkoKSB7Ci0gICAgICAgIE1hdHJpeCBtMSA9IG5ldyBNYXRyaXgoKTsKLQotICAgICAgICBhc3NlcnRUcnVlKG0xLmlzSWRlbnRpdHkoKSk7Ci0KLSAgICAgICAgbTEuc2V0VmFsdWVzKG5ldyBmbG9hdFtdIHsgMSwwLDAsIDAsMSwwLCAwLDAsMSB9KTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShtMS5pc0lkZW50aXR5KCkpOwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHRlc3RDb3B5Q29uc3RydWN0b3IoKSB7Ci0gICAgICAgIE1hdHJpeCBtMSA9IG5ldyBNYXRyaXgoKTsKLSAgICAgICAgTWF0cml4IG0yID0gbmV3IE1hdHJpeChtMSk7Ci0KLSAgICAgICAgZmxvYXRbXSB2MSA9IG5ldyBmbG9hdFs5XTsKLSAgICAgICAgZmxvYXRbXSB2MiA9IG5ldyBmbG9hdFs5XTsKLSAgICAgICAgbTEuZ2V0VmFsdWVzKHYxKTsKLSAgICAgICAgbTIuZ2V0VmFsdWVzKHYyKTsKLQotICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgPCA5OyBpKyspIHsKLSAgICAgICAgICAgIGFzc2VydEVxdWFscyh2MVtpXSwgdjJbaV0pOwotICAgICAgICB9Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS90ZXN0cy9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9UZXN0RGVsZWdhdGVzLmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Rlc3RzL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL1Rlc3REZWxlZ2F0ZXMuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDMyMThkYi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Rlc3RzL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL1Rlc3REZWxlZ2F0ZXMuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE5NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC5sYXlvdXRsaWIuYnJpZGdlOwotCi1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGUuQ3JlYXRlSW5mbzsKLQotaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDsKLWltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5Nb2RpZmllcjsKLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotCi1pbXBvcnQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlOwotCi0vKioKLSAqIFRlc3RzIHRoYXQgbmF0aXZlIGRlbGVnYXRlIGNsYXNzZXMgaW1wbGVtZW50IGFsbCB0aGUgcmVxdWlyZWQgbWV0aG9kcy4KLSAqCi0gKiBUaGlzIGxvb2tzIGF0IHtAbGluayBDcmVhdGVJbmZvI0RFTEVHQVRFX0NMQVNTX05BVElWRVN9IHRvIGdldCB0aGUgbGlzdCBvZiBjbGFzc2VzIHRoYXQKLSAqIGhhdmUgdGhlaXIgbmF0aXZlIG1ldGhvZHMgcmVpbXBsZW1lbnRlZCB0aHJvdWdoIGEgZGVsZWdhdGUuCi0gKgotICogU2luY2UgdGhlIHJlaW1wbGVtZW50ZWQgbWV0aG9kcyBhcmUgbm90IG5hdGl2ZSBhbnltb3JlLCB3ZSBsb29rIGZvciB0aGUgYW5ub3RhdGlvbgotICoge0BsaW5rIExheW91dGxpYkRlbGVnYXRlfSwgYW5kIGxvb2sgZm9yIGEgbWF0Y2hpbmcgbWV0aG9kIGluIHRoZSBkZWxlZ2F0ZSAobmFtZWQgdGhlIHNhbWUKLSAqIGFzIHRoZSBtb2RpZmllZCBjbGFzcyB3aXRoIF9EZWxlZ2F0ZSBhZGRlZCBhcyBhIHN1ZmZpeCkuCi0gKiBJZiB0aGUgb3JpZ2luYWwgbmF0aXZlIG1ldGhvZCBpcyBub3Qgc3RhdGljLCB0aGVuIHdlIG1ha2Ugc3VyZSB0aGUgZGVsZWdhdGUgbWV0aG9kIGFsc28KLSAqIGluY2x1ZGUgdGhlIG9yaWdpbmFsIGNsYXNzIGFzIGZpcnN0IHBhcmFtZXRlciAodG8gYWNjZXNzICJ0aGlzIikuCi0gKgotICovCi1wdWJsaWMgY2xhc3MgVGVzdERlbGVnYXRlcyBleHRlbmRzIFRlc3RDYXNlIHsKLQotICAgIHB1YmxpYyB2b2lkIHRlc3ROYXRpdmVEZWxlZ2F0ZXMoKSB7Ci0KLSAgICAgICAgZmluYWwgU3RyaW5nW10gY2xhc3NlcyA9IENyZWF0ZUluZm8uREVMRUdBVEVfQ0xBU1NfTkFUSVZFUzsKLSAgICAgICAgZmluYWwgaW50IGNvdW50ID0gY2xhc3Nlcy5sZW5ndGg7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwIDsgaSA8IGNvdW50IDsgaSsrKSB7Ci0gICAgICAgICAgICBsb2FkQW5kQ29tcGFyZUNsYXNzZXMoY2xhc3Nlc1tpXSwgY2xhc3Nlc1tpXSArICJfRGVsZWdhdGUiKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHRlc3RNZXRob2REZWxlZ2F0ZXMoKSB7Ci0gICAgICAgIGZpbmFsIFN0cmluZ1tdIG1ldGhvZHMgPSBDcmVhdGVJbmZvLkRFTEVHQVRFX01FVEhPRFM7Ci0gICAgICAgIGZpbmFsIGludCBjb3VudCA9IG1ldGhvZHMubGVuZ3RoOwotICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgPCBjb3VudCA7IGkrKykgewotICAgICAgICAgICAgU3RyaW5nIG1ldGhvZE5hbWUgPSBtZXRob2RzW2ldOwotCi0gICAgICAgICAgICAvLyBleHRyYWN0IHRoZSBjbGFzcyBuYW1lCi0gICAgICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gbWV0aG9kTmFtZS5zdWJzdHJpbmcoMCwgbWV0aG9kTmFtZS5pbmRleE9mKCcjJykpOwotICAgICAgICAgICAgU3RyaW5nIHRhcmdldENsYXNzTmFtZSA9IGNsYXNzTmFtZS5yZXBsYWNlKCckJywgJ18nKSArICJfRGVsZWdhdGUiOwotCi0gICAgICAgICAgICBsb2FkQW5kQ29tcGFyZUNsYXNzZXMoY2xhc3NOYW1lLCB0YXJnZXRDbGFzc05hbWUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHJpdmF0ZSB2b2lkIGxvYWRBbmRDb21wYXJlQ2xhc3NlcyhTdHJpbmcgb3JpZ2luYWxDbGFzc05hbWUsIFN0cmluZyBkZWxlZ2F0ZUNsYXNzTmFtZSkgewotICAgICAgICAvLyBsb2FkIHRoZSBjbGFzc2VzCi0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBDbGFzc0xvYWRlciBjbGFzc0xvYWRlciA9IFRlc3REZWxlZ2F0ZXMuY2xhc3MuZ2V0Q2xhc3NMb2FkZXIoKTsKLSAgICAgICAgICAgIENsYXNzPD8+IG9yaWdpbmFsQ2xhc3MgPSBjbGFzc0xvYWRlci5sb2FkQ2xhc3Mob3JpZ2luYWxDbGFzc05hbWUpOwotICAgICAgICAgICAgQ2xhc3M8Pz4gZGVsZWdhdGVDbGFzcyA9IGNsYXNzTG9hZGVyLmxvYWRDbGFzcyhkZWxlZ2F0ZUNsYXNzTmFtZSk7Ci0KLSAgICAgICAgICAgIGNvbXBhcmUob3JpZ2luYWxDbGFzcywgZGVsZWdhdGVDbGFzcyk7Ci0gICAgICAgIH0gY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgewotICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gbG9hZCBjbGFzczogIiArIGUuZ2V0TWVzc2FnZSgpKTsKLSAgICAgICAgfSBjYXRjaCAoU2VjdXJpdHlFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIGxvYWQgY2xhc3M6ICIgKyBlLmdldE1lc3NhZ2UoKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcml2YXRlIHZvaWQgY29tcGFyZShDbGFzczw/PiBvcmlnaW5hbENsYXNzLCBDbGFzczw/PiBkZWxlZ2F0ZUNsYXNzKSB0aHJvd3MgU2VjdXJpdHlFeGNlcHRpb24gewotICAgICAgICBMaXN0PE1ldGhvZD4gY2hlY2tlZERlbGVnYXRlTWV0aG9kcyA9IG5ldyBBcnJheUxpc3Q8TWV0aG9kPigpOwotCi0gICAgICAgIC8vIGxvb3Agb24gdGhlIG1ldGhvZHMgb2YgdGhlIG9yaWdpbmFsIGNsYXNzLCBhbmQgZm9yIHRoZSBvbmVzIHRoYXQgYXJlIGFubm90YXRlZAotICAgICAgICAvLyB3aXRoIEBMYXlvdXRsaWJEZWxlZ2F0ZSwgbG9vayBmb3IgYSBtYXRjaGluZyBtZXRob2QgaW4gdGhlIGRlbGVnYXRlIGNsYXNzLgotICAgICAgICAvLyBUaGUgYW5ub3RhdGlvbiBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIGJ5IGxheW91dGxpYl9jcmVhdGUgd2hlbiBpdCByZXBsYWNlIGEgbWV0aG9kCi0gICAgICAgIC8vIGJ5IGEgY2FsbCB0byBhIGRlbGVnYXRlCi0gICAgICAgIE1ldGhvZFtdIG9yaWdpbmFsTWV0aG9kcyA9IG9yaWdpbmFsQ2xhc3MuZ2V0RGVjbGFyZWRNZXRob2RzKCk7Ci0gICAgICAgIGZvciAoTWV0aG9kIG9yaWdpbmFsTWV0aG9kIDogb3JpZ2luYWxNZXRob2RzKSB7Ci0gICAgICAgICAgICAvLyBsb29rIGZvciBtZXRob2RzIHRoYXQgYXJlIGRlbGVnYXRlZDogdGhleSBoYXZlIHRoZSBMYXlvdXRsaWJEZWxlZ2F0ZSBhbm5vdGF0aW9uCi0gICAgICAgICAgICBpZiAob3JpZ2luYWxNZXRob2QuZ2V0QW5ub3RhdGlvbihMYXlvdXRsaWJEZWxlZ2F0ZS5jbGFzcykgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBnZXQgdGhlIHNpZ25hdHVyZS4KLSAgICAgICAgICAgIENsYXNzPD8+W10gcGFyYW1ldGVycyA9IG9yaWdpbmFsTWV0aG9kLmdldFBhcmFtZXRlclR5cGVzKCk7Ci0KLSAgICAgICAgICAgIC8vIGlmIHRoZSBtZXRob2QgaXMgbm90IHN0YXRpYywgdGhlbiB0aGUgY2xhc3MgaXMgYWRkZWQgYXMgdGhlIGZpcnN0IHBhcmFtZXRlcgotICAgICAgICAgICAgLy8gKGZvciAidGhpcyIpCi0gICAgICAgICAgICBpZiAoKG9yaWdpbmFsTWV0aG9kLmdldE1vZGlmaWVycygpICYgTW9kaWZpZXIuU1RBVElDKSA9PSAwKSB7Ci0KLSAgICAgICAgICAgICAgICBDbGFzczw/PltdIG5ld1BhcmFtZXRlcnMgPSBuZXcgQ2xhc3M8Pz5bcGFyYW1ldGVycy5sZW5ndGggKyAxXTsKLSAgICAgICAgICAgICAgICBuZXdQYXJhbWV0ZXJzWzBdID0gb3JpZ2luYWxDbGFzczsKLSAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHBhcmFtZXRlcnMsIDAsIG5ld1BhcmFtZXRlcnMsIDEsIHBhcmFtZXRlcnMubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gbmV3UGFyYW1ldGVyczsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gaWYgdGhlIG9yaWdpbmFsIGNsYXNzIGlzIGFuIGlubmVyIGNsYXNzIHRoYXQncyBub3Qgc3RhdGljLCB0aGVuCi0gICAgICAgICAgICAvLyB3ZSBhZGQgdGhpcyBvbiB0aGUgZW5jbG9zaW5nIGNsYXNzIGF0IHRoZSBiZWdpbm5pbmcKLSAgICAgICAgICAgIGlmIChvcmlnaW5hbENsYXNzLmdldEVuY2xvc2luZ0NsYXNzKCkgIT0gbnVsbCAmJgotICAgICAgICAgICAgICAgICAgICAob3JpZ2luYWxDbGFzcy5nZXRNb2RpZmllcnMoKSAmIE1vZGlmaWVyLlNUQVRJQykgPT0gMCkgewotICAgICAgICAgICAgICAgIENsYXNzPD8+W10gbmV3UGFyYW1ldGVycyA9IG5ldyBDbGFzczw/PltwYXJhbWV0ZXJzLmxlbmd0aCArIDFdOwotICAgICAgICAgICAgICAgIG5ld1BhcmFtZXRlcnNbMF0gPSBvcmlnaW5hbENsYXNzLmdldEVuY2xvc2luZ0NsYXNzKCk7Ci0gICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShwYXJhbWV0ZXJzLCAwLCBuZXdQYXJhbWV0ZXJzLCAxLCBwYXJhbWV0ZXJzLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgcGFyYW1ldGVycyA9IG5ld1BhcmFtZXRlcnM7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgLy8gdHJ5IHRvIGxvYWQgdGhlIG1ldGhvZCB3aXRoIHRoZSBnaXZlbiBwYXJhbWV0ZXIgdHlwZXMuCi0gICAgICAgICAgICAgICAgTWV0aG9kIGRlbGVnYXRlTWV0aG9kID0gZGVsZWdhdGVDbGFzcy5nZXREZWNsYXJlZE1ldGhvZChvcmlnaW5hbE1ldGhvZC5nZXROYW1lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzKTsKLQotICAgICAgICAgICAgICAgIC8vIGNoZWNrIHRoYXQgdGhlIG1ldGhvZCBoYXMgdGhlIGFubm90YXRpb24KLSAgICAgICAgICAgICAgICBhc3NlcnROb3ROdWxsKAotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlbGVnYXRlIG1ldGhvZCAlMSRzIGZvciBjbGFzcyAlMiRzIGRvZXMgbm90IGhhdmUgdGhlIEBMYXlvdXRsaWJEZWxlZ2F0ZSBhbm5vdGF0aW9uIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGVNZXRob2QuZ2V0TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbENsYXNzLmdldE5hbWUoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICBkZWxlZ2F0ZU1ldGhvZC5nZXRBbm5vdGF0aW9uKExheW91dGxpYkRlbGVnYXRlLmNsYXNzKSk7Ci0KLSAgICAgICAgICAgICAgICAvLyBjaGVjayB0aGF0IHRoZSBtZXRob2QgaXMgc3RhdGljCi0gICAgICAgICAgICAgICAgYXNzZXJ0VHJ1ZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZWxlZ2F0ZSBtZXRob2QgJTEkcyBmb3IgY2xhc3MgJTIkcyBpcyBub3Qgc3RhdGljIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGVNZXRob2QuZ2V0TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbENsYXNzLmdldE5hbWUoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAoZGVsZWdhdGVNZXRob2QuZ2V0TW9kaWZpZXJzKCkgJiBNb2RpZmllci5TVEFUSUMpID09IE1vZGlmaWVyLlNUQVRJQyk7Ci0KLSAgICAgICAgICAgICAgICAvLyBhZGQgdGhlIG1ldGhvZCBhcyBjaGVja2VkLgotICAgICAgICAgICAgICAgIGNoZWNrZWREZWxlZ2F0ZU1ldGhvZHMuYWRkKGRlbGVnYXRlTWV0aG9kKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBnZXRNZXRob2ROYW1lKG9yaWdpbmFsTWV0aG9kLCBwYXJhbWV0ZXJzKTsKLSAgICAgICAgICAgICAgICBmYWlsKFN0cmluZy5mb3JtYXQoIk1pc3NpbmcgJTEkcy4lMiRzIiwgZGVsZWdhdGVDbGFzcy5nZXROYW1lKCksIG5hbWUpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIGxvb2sgZm9yIGRlYWQgKGRlbGVnYXRlKSBjb2RlLgotICAgICAgICAvLyBUaGlzIGxvb2tzIGZvciBhbGwgbWV0aG9kcyBpbiB0aGUgZGVsZWdhdGUgY2xhc3MsIGFuZCBpZiB0aGV5IGhhdmUgdGhlCi0gICAgICAgIC8vIEBMYXlvdXRsaWJEZWxlZ2F0ZSBhbm5vdGF0aW9uLCBtYWtlIHN1cmUgdGhleSBoYXZlIGJlZW4gcHJldmlvdXNseSBmb3VuZCBhcyBhCi0gICAgICAgIC8vIG1hdGNoIGZvciBhIG1ldGhvZCBpbiB0aGUgb3JpZ2luYWwgY2xhc3MuCi0gICAgICAgIC8vIElmIG5vdCwgdGhpcyBtZWFucyB0aGUgbWV0aG9kIGlzIGEgZGVsZWdhdGUgZm9yIGEgbWV0aG9kIHRoYXQgZWl0aGVyIGRvZXNuJ3QgZXhpc3QKLSAgICAgICAgLy8gYW55bW9yZSBvciBpcyBub3QgZGVsZWdhdGVkIGFueW1vcmUuCi0gICAgICAgIE1ldGhvZFtdIGRlbGVnYXRlTWV0aG9kcyA9IGRlbGVnYXRlQ2xhc3MuZ2V0RGVjbGFyZWRNZXRob2RzKCk7Ci0gICAgICAgIGZvciAoTWV0aG9kIGRlbGVnYXRlTWV0aG9kIDogZGVsZWdhdGVNZXRob2RzKSB7Ci0gICAgICAgICAgICAvLyBsb29rIGZvciBtZXRob2RzIHRoYXQgYXJlIGRlbGVnYXRlczogdGhleSBoYXZlIHRoZSBMYXlvdXRsaWJEZWxlZ2F0ZSBhbm5vdGF0aW9uCi0gICAgICAgICAgICBpZiAoZGVsZWdhdGVNZXRob2QuZ2V0QW5ub3RhdGlvbihMYXlvdXRsaWJEZWxlZ2F0ZS5jbGFzcykgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBhc3NlcnRUcnVlKAotICAgICAgICAgICAgICAgICAgICBTdHJpbmcuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZWxlZ2F0ZSBtZXRob2QgJTEkcy4lMiRzIGlzIG5vdCB1c2VkIGFueW1vcmUgYW5kIG11c3QgYmUgcmVtb3ZlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZWdhdGVDbGFzcy5nZXROYW1lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TWV0aG9kTmFtZShkZWxlZ2F0ZU1ldGhvZCkpLAotICAgICAgICAgICAgICAgICAgICBjaGVja2VkRGVsZWdhdGVNZXRob2RzLmNvbnRhaW5zKGRlbGVnYXRlTWV0aG9kKSk7Ci0gICAgICAgIH0KLQotICAgIH0KLQotICAgIHByaXZhdGUgU3RyaW5nIGdldE1ldGhvZE5hbWUoTWV0aG9kIG1ldGhvZCkgewotICAgICAgICByZXR1cm4gZ2V0TWV0aG9kTmFtZShtZXRob2QsIG1ldGhvZC5nZXRQYXJhbWV0ZXJUeXBlcygpKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIFN0cmluZyBnZXRNZXRob2ROYW1lKE1ldGhvZCBtZXRob2QsIENsYXNzPD8+W10gcGFyYW1ldGVycykgewotICAgICAgICAvLyBjb21wdXRlIGEgZnVsbCBjbGFzcyBuYW1lIHRoYXQncyBsb25nIGJ1dCBub3QgdG9vIGxvbmcuCi0gICAgICAgIFN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcihtZXRob2QuZ2V0TmFtZSgpICsgIigiKTsKLSAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBwYXJhbWV0ZXJzLmxlbmd0aDsgaisrKSB7Ci0gICAgICAgICAgICBDbGFzczw/PiB0aGVDbGFzcyA9IHBhcmFtZXRlcnNbal07Ci0gICAgICAgICAgICBzYi5hcHBlbmQodGhlQ2xhc3MuZ2V0TmFtZSgpKTsKLSAgICAgICAgICAgIGludCBkaW1lbnNpb25zID0gMDsKLSAgICAgICAgICAgIHdoaWxlICh0aGVDbGFzcy5pc0FycmF5KCkpIHsKLSAgICAgICAgICAgICAgICBkaW1lbnNpb25zKys7Ci0gICAgICAgICAgICAgICAgdGhlQ2xhc3MgPSB0aGVDbGFzcy5nZXRDb21wb25lbnRUeXBlKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRpbWVuc2lvbnM7IGkrKykgewotICAgICAgICAgICAgICAgIHNiLmFwcGVuZCgiW10iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChqIDwgKHBhcmFtZXRlcnMubGVuZ3RoIC0gMSkpIHsKLSAgICAgICAgICAgICAgICBzYi5hcHBlbmQoIiwiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBzYi5hcHBlbmQoIikiKTsKLQotICAgICAgICByZXR1cm4gc2IudG9TdHJpbmcoKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Rlc3RzL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2FuZHJvaWQvQnJpZGdlWG1sQmxvY2tQYXJzZXJUZXN0LmphdmEgYi90b29scy9sYXlvdXRsaWIvYnJpZGdlL3Rlc3RzL3NyYy9jb20vYW5kcm9pZC9sYXlvdXRsaWIvYnJpZGdlL2FuZHJvaWQvQnJpZGdlWG1sQmxvY2tQYXJzZXJUZXN0LmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2NWEwMDguLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2JyaWRnZS90ZXN0cy9zcmMvY29tL2FuZHJvaWQvbGF5b3V0bGliL2JyaWRnZS9hbmRyb2lkL0JyaWRnZVhtbEJsb2NrUGFyc2VyVGVzdC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuYW5kcm9pZDsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLmxheW91dGxpYi5icmlkZ2UuaW1wbC5QYXJzZXJGYWN0b3J5OwotCi1pbXBvcnQgb3JnLnczYy5kb20uTm9kZTsKLWltcG9ydCBvcmcueG1scHVsbC52MS5YbWxQdWxsUGFyc2VyOwotCi1pbXBvcnQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlOwotCi1wdWJsaWMgY2xhc3MgQnJpZGdlWG1sQmxvY2tQYXJzZXJUZXN0IGV4dGVuZHMgVGVzdENhc2UgewotCi0gICAgQE92ZXJyaWRlCi0gICAgcHJvdGVjdGVkIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgc3VwZXIuc2V0VXAoKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwcm90ZWN0ZWQgdm9pZCB0ZWFyRG93bigpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBzdXBlci50ZWFyRG93bigpOwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHRlc3RYbWxCbG9ja1BhcnNlcigpIHRocm93cyBFeGNlcHRpb24gewotCi0gICAgICAgIFhtbFB1bGxQYXJzZXIgcGFyc2VyID0gUGFyc2VyRmFjdG9yeS5jcmVhdGUoCi0gICAgICAgICAgICAgICAgZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZUFzU3RyZWFtKCIvY29tL2FuZHJvaWQvbGF5b3V0bGliL3Rlc3RkYXRhL2xheW91dDEueG1sIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAibGF5b3V0MS54bWwiKTsKLQotICAgICAgICBwYXJzZXIgPSBuZXcgQnJpZGdlWG1sQmxvY2tQYXJzZXIocGFyc2VyLCBudWxsLCBmYWxzZSAvKiBwbGF0Zm9ybVJlc291cmNlRmxhZyAqLyk7Ci0KLSAgICAgICAgYXNzZXJ0RXF1YWxzKFhtbFB1bGxQYXJzZXIuU1RBUlRfRE9DVU1FTlQsIHBhcnNlci5uZXh0KCkpOwotCi0gICAgICAgIGFzc2VydEVxdWFscyhYbWxQdWxsUGFyc2VyLlNUQVJUX1RBRywgcGFyc2VyLm5leHQoKSk7Ci0gICAgICAgIGFzc2VydEVxdWFscygiTGluZWFyTGF5b3V0IiwgcGFyc2VyLmdldE5hbWUoKSk7Ci0KLSAgICAgICAgYXNzZXJ0RXF1YWxzKFhtbFB1bGxQYXJzZXIuVEVYVCwgcGFyc2VyLm5leHQoKSk7Ci0KLSAgICAgICAgYXNzZXJ0RXF1YWxzKFhtbFB1bGxQYXJzZXIuU1RBUlRfVEFHLCBwYXJzZXIubmV4dCgpKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKCJCdXR0b24iLCBwYXJzZXIuZ2V0TmFtZSgpKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKFhtbFB1bGxQYXJzZXIuVEVYVCwgcGFyc2VyLm5leHQoKSk7Ci0gICAgICAgIGFzc2VydEVxdWFscyhYbWxQdWxsUGFyc2VyLkVORF9UQUcsIHBhcnNlci5uZXh0KCkpOwotCi0gICAgICAgIGFzc2VydEVxdWFscyhYbWxQdWxsUGFyc2VyLlRFWFQsIHBhcnNlci5uZXh0KCkpOwotCi0gICAgICAgIGFzc2VydEVxdWFscyhYbWxQdWxsUGFyc2VyLlNUQVJUX1RBRywgcGFyc2VyLm5leHQoKSk7Ci0gICAgICAgIGFzc2VydEVxdWFscygiVmlldyIsIHBhcnNlci5nZXROYW1lKCkpOwotICAgICAgICBhc3NlcnRFcXVhbHMoWG1sUHVsbFBhcnNlci5FTkRfVEFHLCBwYXJzZXIubmV4dCgpKTsKLQotICAgICAgICBhc3NlcnRFcXVhbHMoWG1sUHVsbFBhcnNlci5URVhULCBwYXJzZXIubmV4dCgpKTsKLQotICAgICAgICBhc3NlcnRFcXVhbHMoWG1sUHVsbFBhcnNlci5TVEFSVF9UQUcsIHBhcnNlci5uZXh0KCkpOwotICAgICAgICBhc3NlcnRFcXVhbHMoIlRleHRWaWV3IiwgcGFyc2VyLmdldE5hbWUoKSk7Ci0gICAgICAgIGFzc2VydEVxdWFscyhYbWxQdWxsUGFyc2VyLkVORF9UQUcsIHBhcnNlci5uZXh0KCkpOwotCi0gICAgICAgIGFzc2VydEVxdWFscyhYbWxQdWxsUGFyc2VyLlRFWFQsIHBhcnNlci5uZXh0KCkpOwotCi0gICAgICAgIGFzc2VydEVxdWFscyhYbWxQdWxsUGFyc2VyLkVORF9UQUcsIHBhcnNlci5uZXh0KCkpOwotICAgICAgICBhc3NlcnRFcXVhbHMoWG1sUHVsbFBhcnNlci5FTkRfRE9DVU1FTlQsIHBhcnNlci5uZXh0KCkpOwotICAgIH0KLQotICAgIC8vLS0tLS0tLS0tLS0tCi0KLSAgICAvKioKLSAgICAgKiBRdWljayduJ2RpcnR5IGRlYnVnIGhlbHBlciB0aGF0IGR1bXBzIGFuIFhNTCBzdHJ1Y3R1cmUgdG8gc3Rkb3V0LgotICAgICAqLwotICAgIEBTdXBwcmVzc1dhcm5pbmdzKCJ1bnVzZWQiKQotICAgIHByaXZhdGUgdm9pZCBkdW1wKE5vZGUgbm9kZSwgU3RyaW5nIHByZWZpeCkgewotICAgICAgICBOb2RlIG47Ci0KLSAgICAgICAgU3RyaW5nW10gdHlwZXMgPSB7Ci0gICAgICAgICAgICAgICAgInVua25vd24iLAotICAgICAgICAgICAgICAgICJFTEVNRU5UX05PREUiLAotICAgICAgICAgICAgICAgICJBVFRSSUJVVEVfTk9ERSIsCi0gICAgICAgICAgICAgICAgIlRFWFRfTk9ERSIsCi0gICAgICAgICAgICAgICAgIkNEQVRBX1NFQ1RJT05fTk9ERSIsCi0gICAgICAgICAgICAgICAgIkVOVElUWV9SRUZFUkVOQ0VfTk9ERSIsCi0gICAgICAgICAgICAgICAgIkVOVElUWV9OT0RFIiwKLSAgICAgICAgICAgICAgICAiUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFIiwKLSAgICAgICAgICAgICAgICAiQ09NTUVOVF9OT0RFIiwKLSAgICAgICAgICAgICAgICAiRE9DVU1FTlRfTk9ERSIsCi0gICAgICAgICAgICAgICAgIkRPQ1VNRU5UX1RZUEVfTk9ERSIsCi0gICAgICAgICAgICAgICAgIkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUiLAotICAgICAgICAgICAgICAgICJOT1RBVElPTl9OT0RFIgotICAgICAgICB9OwotCi0gICAgICAgIFN0cmluZyBzID0gU3RyaW5nLmZvcm1hdCgiJXM8JXM+ICVzICVzIiwKLSAgICAgICAgICAgICAgICBwcmVmaXgsCi0gICAgICAgICAgICAgICAgdHlwZXNbbm9kZS5nZXROb2RlVHlwZSgpXSwKLSAgICAgICAgICAgICAgICBub2RlLmdldE5vZGVOYW1lKCksCi0gICAgICAgICAgICAgICAgbm9kZS5nZXROb2RlVmFsdWUoKSA9PSBudWxsID8gIiIgOiBub2RlLmdldE5vZGVWYWx1ZSgpLnRyaW0oKSk7Ci0KLSAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHMpOwotCi0gICAgICAgIG4gPSBub2RlLmdldEZpcnN0Q2hpbGQoKTsKLSAgICAgICAgaWYgKG4gIT0gbnVsbCkgewotICAgICAgICAgICAgZHVtcChuLCBwcmVmaXggKyAiLSAiKTsKLSAgICAgICAgfQotCi0gICAgICAgIG4gPSBub2RlLmdldE5leHRTaWJsaW5nKCk7Ci0gICAgICAgIGlmIChuICE9IG51bGwpIHsKLSAgICAgICAgICAgIGR1bXAobiwgcHJlZml4KTsKLSAgICAgICAgfQotCi0gICAgfQotCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvY3JlYXRlLy5jbGFzc3BhdGggYi90b29scy9sYXlvdXRsaWIvY3JlYXRlLy5jbGFzc3BhdGgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkOGJiMGQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS8uY2xhc3NwYXRoCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPGNsYXNzcGF0aD4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KLQk8Y2xhc3NwYXRoZW50cnkgZXhjbHVkaW5nPSJtb2NrX2RhdGEvIiBraW5kPSJzcmMiIHBhdGg9InRlc3RzIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSIi8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0Lmp1bml0LkpVTklUX0NPTlRBSU5FUi80Ii8+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InZhciIgcGF0aD0iQU5EUk9JRF9TUkMvcHJlYnVpbHRzL3Rvb2xzL2NvbW1vbi9hc20tdG9vbHMvYXNtLTQuMC5qYXIiIHNvdXJjZXBhdGg9Ii9BTkRST0lEX1BMQVQvcHJlYnVpbHRzL3Rvb2xzL2NvbW1vbi9hc20tdG9vbHMvc3JjLTQuMC56aXAiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KLTwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS8ucHJvamVjdCBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxMDBkMTcuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPmxheW91dGxpYl9jcmVhdGU8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JPC9idWlsZFNwZWM+Ci0JPG5hdHVyZXM+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS8uc2V0dGluZ3MvUkVBRE1FLnR4dCBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvLnNldHRpbmdzL1JFQURNRS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxMjBiMjAuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS8uc2V0dGluZ3MvUkVBRE1FLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotQ29weSB0aGlzIGluIGVjbGlwc2UgcHJvamVjdCBhcyBhIC5zZXR0aW5ncyBmb2xkZXIgYXQgdGhlIHJvb3QuCi1UaGlzIGVuc3VyZSBwcm9wZXIgY29tcGlsYXRpb24gY29tcGxpYW5jZSBhbmQgd2FybmluZy9lcnJvciBsZXZlbHMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LmNvcmUucHJlZnMgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTM4MWEwZS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLWVjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5hbm5vdGF0aW9uLm5vbm51bGw9Y29tLmFuZHJvaWQuYW5ub3RhdGlvbnMuTm9uTnVsbAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuYW5ub3RhdGlvbi5ub25udWxsYnlkZWZhdWx0PWNvbS5hbmRyb2lkLmFubm90YXRpb25zLk5vbk51bGxCeURlZmF1bHQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmFubm90YXRpb24ubm9ubnVsbGlzZGVmYXVsdD1kaXNhYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuYW5ub3RhdGlvbi5udWxsYWJsZT1jb20uYW5kcm9pZC5hbm5vdGF0aW9ucy5OdWxsYWJsZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuYW5ub3RhdGlvbi5udWxsYW5hbHlzaXM9ZW5hYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi5pbmxpbmVKc3JCeXRlY29kZT1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLnRhcmdldFBsYXRmb3JtPTEuNgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi51bnVzZWRMb2NhbD1wcmVzZXJ2ZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29tcGxpYW5jZT0xLjYKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmRlYnVnLmxpbmVOdW1iZXI9Z2VuZXJhdGUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmRlYnVnLmxvY2FsVmFyaWFibGU9Z2VuZXJhdGUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmRlYnVnLnNvdXJjZUZpbGU9Z2VuZXJhdGUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYW5ub3RhdGlvblN1cGVySW50ZXJmYWNlPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYXNzZXJ0SWRlbnRpZmllcj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5hdXRvYm94aW5nPWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5jb21wYXJpbmdJZGVudGljYWw9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5kZWFkQ29kZT13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmRlcHJlY2F0aW9uPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZGVwcmVjYXRpb25JbkRlcHJlY2F0ZWRDb2RlPWRpc2FibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmRlcHJlY2F0aW9uV2hlbk92ZXJyaWRpbmdEZXByZWNhdGVkTWV0aG9kPWRpc2FibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmRpc2NvdXJhZ2VkUmVmZXJlbmNlPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZW1wdHlTdGF0ZW1lbnQ9aWdub3JlCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmVudW1JZGVudGlmaWVyPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmV4cGxpY2l0bHlDbG9zZWRBdXRvQ2xvc2VhYmxlPWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5mYWxsdGhyb3VnaENhc2U9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5mYXRhbE9wdGlvbmFsRXJyb3I9ZW5hYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5maWVsZEhpZGluZz13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmZpbmFsUGFyYW1ldGVyQm91bmQ9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5maW5hbGx5QmxvY2tOb3RDb21wbGV0aW5nTm9ybWFsbHk9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5mb3JiaWRkZW5SZWZlcmVuY2U9ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uaGlkZGVuQ2F0Y2hCbG9jaz13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmluY2x1ZGVOdWxsSW5mb0Zyb21Bc3NlcnRzPWVuYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uaW5jb21wYXRpYmxlTm9uSW5oZXJpdGVkSW50ZXJmYWNlTWV0aG9kPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uaW5jb21wbGV0ZUVudW1Td2l0Y2g9aWdub3JlCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmluZGlyZWN0U3RhdGljQWNjZXNzPWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5sb2NhbFZhcmlhYmxlSGlkaW5nPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ubWV0aG9kV2l0aENvbnN0cnVjdG9yTmFtZT13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLm1pc3NpbmdEZXByZWNhdGVkQW5ub3RhdGlvbj13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLm1pc3NpbmdIYXNoQ29kZU1ldGhvZD13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLm1pc3NpbmdPdmVycmlkZUFubm90YXRpb249ZXJyb3IKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ubWlzc2luZ092ZXJyaWRlQW5ub3RhdGlvbkZvckludGVyZmFjZU1ldGhvZEltcGxlbWVudGF0aW9uPWVuYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ubWlzc2luZ1NlcmlhbFZlcnNpb249d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5taXNzaW5nU3luY2hyb25pemVkT25Jbmhlcml0ZWRNZXRob2Q9aWdub3JlCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLm5vRWZmZWN0QXNzaWdubWVudD13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLm5vSW1wbGljaXRTdHJpbmdDb252ZXJzaW9uPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ubm9uRXh0ZXJuYWxpemVkU3RyaW5nTGl0ZXJhbD1pZ25vcmUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ubnVsbFJlZmVyZW5jZT1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5udWxsU3BlY0luc3VmZmljaWVudEluZm89d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5udWxsU3BlY1Zpb2xhdGlvbj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5vdmVycmlkaW5nUGFja2FnZURlZmF1bHRNZXRob2Q9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5wYXJhbWV0ZXJBc3NpZ25tZW50PWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5wb3NzaWJsZUFjY2lkZW50YWxCb29sZWFuQXNzaWdubWVudD13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnBvdGVudGlhbE51bGxSZWZlcmVuY2U9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5wb3RlbnRpYWxOdWxsU3BlY1Zpb2xhdGlvbj1lcnJvcgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5wb3RlbnRpYWxseVVuY2xvc2VkQ2xvc2VhYmxlPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ucmF3VHlwZVJlZmVyZW5jZT13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnJlZHVuZGFudE51bGxBbm5vdGF0aW9uPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0ucmVkdW5kYW50TnVsbENoZWNrPWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5yZWR1bmRhbnRTcGVjaWZpY2F0aW9uT2ZUeXBlQXJndW1lbnRzPWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5yZWR1bmRhbnRTdXBlcmludGVyZmFjZT13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnJlcG9ydE1ldGhvZENhbkJlUG90ZW50aWFsbHlTdGF0aWM9aWdub3JlCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnJlcG9ydE1ldGhvZENhbkJlU3RhdGljPWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5zcGVjaWFsUGFyYW1ldGVySGlkaW5nRmllbGQ9ZGlzYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uc3RhdGljQWNjZXNzUmVjZWl2ZXI9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5zdXBwcmVzc09wdGlvbmFsRXJyb3JzPWRpc2FibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnN1cHByZXNzV2FybmluZ3M9ZW5hYmxlZAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5zeW50aGV0aWNBY2Nlc3NFbXVsYXRpb249aWdub3JlCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnR5cGVQYXJhbWV0ZXJIaWRpbmc9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bmF2b2lkYWJsZUdlbmVyaWNUeXBlUHJvYmxlbXM9ZGlzYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0udW5jaGVja2VkVHlwZU9wZXJhdGlvbj13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVuY2xvc2VkQ2xvc2VhYmxlPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVuZG9jdW1lbnRlZEVtcHR5QmxvY2s9aWdub3JlCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVuaGFuZGxlZFdhcm5pbmdUb2tlbj13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVubmVjZXNzYXJ5RWxzZT1pZ25vcmUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0udW5uZWNlc3NhcnlUeXBlQ2hlY2s9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bnF1YWxpZmllZEZpZWxkQWNjZXNzPWlnbm9yZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bnVzZWREZWNsYXJlZFRocm93bkV4Y2VwdGlvbj13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVudXNlZERlY2xhcmVkVGhyb3duRXhjZXB0aW9uRXhlbXB0RXhjZXB0aW9uQW5kVGhyb3dhYmxlPWVuYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0udW51c2VkRGVjbGFyZWRUaHJvd25FeGNlcHRpb25JbmNsdWRlRG9jQ29tbWVudFJlZmVyZW5jZT1lbmFibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVudXNlZERlY2xhcmVkVGhyb3duRXhjZXB0aW9uV2hlbk92ZXJyaWRpbmc9ZGlzYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0udW51c2VkSW1wb3J0PXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0udW51c2VkTGFiZWw9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bnVzZWRMb2NhbD13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVudXNlZE9iamVjdEFsbG9jYXRpb249d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS51bnVzZWRQYXJhbWV0ZXI9aWdub3JlCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVudXNlZFBhcmFtZXRlckluY2x1ZGVEb2NDb21tZW50UmVmZXJlbmNlPWVuYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0udW51c2VkUGFyYW1ldGVyV2hlbkltcGxlbWVudGluZ0Fic3RyYWN0PWRpc2FibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVudXNlZFBhcmFtZXRlcldoZW5PdmVycmlkaW5nQ29uY3JldGU9ZGlzYWJsZWQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0udW51c2VkUHJpdmF0ZU1lbWJlcj13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnVudXNlZFdhcm5pbmdUb2tlbj13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLnZhcmFyZ3NBcmd1bWVudE5lZWRDYXN0PXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnNvdXJjZT0xLjYKZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvQW5kcm9pZC5tayBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWJkNDhhYi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0jCi0jIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0jCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIwotIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIwotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotIwotTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi0KLUxPQ0FMX1NSQ19GSUxFUyA6PSAkKGNhbGwgYWxsLWphdmEtZmlsZXMtdW5kZXIsc3JjKQotCi1MT0NBTF9KQVJfTUFOSUZFU1QgOj0gbWFuaWZlc3QudHh0Ci1MT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAotCWFzbS00LjAKLQotTE9DQUxfTU9EVUxFIDo9IGxheW91dGxpYl9jcmVhdGUKLQotaW5jbHVkZSAkKEJVSUxEX0hPU1RfSkFWQV9MSUJSQVJZKQotCmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL1JFQURNRS50eHQgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL1JFQURNRS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmMmIxODUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9SRUFETUUudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjcxICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLQotCi0tIERlc2NyaXB0aW9uIC0KLS0tLS0tLS0tLS0tLS0tLQotCi1MYXlvdXRsaWJfY3JlYXRlIGdlbmVyYXRlcyBhIEpBUiBsaWJyYXJ5IHVzZWQgYnkgdGhlIEVjbGlwc2UgZ3JhcGhpY2FsIGxheW91dCBlZGl0b3IKLXRvIHBlcmZvcm0gbGF5b3V0LgotCi0KLS0gVXNhZ2UgLQotLS0tLS0tLS0tCi0KLSAuL2xheW91dGxpYl9jcmVhdGUgcGF0aC90by9hbmRyb2lkLmphciBkZXN0aW5hdGlvbi5qYXIKLQotCi0tIERlc2lnbiBPdmVydmlldyAtCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLUxheW91dGxpYl9jcmVhdGUgdXNlcyB0aGUgImFuZHJvaWQuamFyIiBjb250YWluaW5nIGFsbCB0aGUgSmF2YSBjb2RlIHVzZWQgYnkgQW5kcm9pZAotYXMgZ2VuZXJhdGVkIGJ5IHRoZSBBbmRyb2lkIGJ1aWxkLCByaWdodCBiZWZvcmUgdGhlIGNsYXNzZXMgYXJlIGNvbnZlcnRlZCB0byBhIERFWCBmb3JtYXQuCi0KLVRoZSBBbmRyb2lkIEpBUiBjYW4ndCBiZSB1c2VkIGRpcmVjdGx5IGluIEVjbGlwc2U6Ci0tIGl0IGNvbnRhaW5zIHJlZmVyZW5jZXMgdG8gbmF0aXZlIGNvZGUgKHdoaWNoIHdlIHdhbnQgdG8gYXZvaWQgaW4gRWNsaXBzZSksCi0tIHNvbWUgY2xhc3NlcyBuZWVkIHRvIGJlIG92ZXJyaWRkZW4sIGZvciBleGFtcGxlIGFsbCB0aGUgZHJhd2luZyBjb2RlIHRoYXQgaXMKLSAgcmVwbGFjZWQgYnkgSmF2YSAyRCBjYWxscyBpbiBFY2xpcHNlLgotLSBzb21lIG9mIHRoZSBjbGFzc2VzIHRoYXQgbmVlZCB0byBiZSBjaGFuZ2VkIGFyZSBmaW5hbCBhbmQvb3Igd2UgbmVlZCBhY2Nlc3MKLSAgdG8gdGhlaXIgcHJpdmF0ZSBpbnRlcm5hbCBzdGF0ZS4KLQotQ29uc2VxdWVudGx5IHRoaXMgdG9vbDoKLS0gcGFyc2VzIHRoZSBpbnB1dCBKQVIsCi0tIG1vZGlmaWVzIHNvbWUgb2YgdGhlIGNsYXNzZXMgZGlyZWN0bHkgdXNpbmcgc29tZSBieXRlY29kZSBtYW5pcHVsYXRpb24sCi0tIGZpbHRlcnMgc29tZSBwYWNrYWdlcyBhbmQgcmVtb3ZlcyB0aG9zZSB3ZSBkb24ndCB3YW50IGluIHRoZSBvdXRwdXQgSkFSLAotLSBpbmplY3RzIHNvbWUgbmV3IGNsYXNzZXMsCi0tIGdlbmVyYXRlcyBhIG1vZGlmaWVkIEpBUiBmaWxlIHRoYXQgaXMgc3VpdGFibGUgZm9yIHRoZSBBbmRyb2lkIHBsdWdpbgotICBmb3IgRWNsaXBzZSB0byBwZXJmb3JtIHJlbmRlcmluZy4KLQotVGhlIEFTTSBsaWJyYXJ5IGlzIHVzZWQgdG8gZG8gdGhlIGJ5dGVjb2RlIG1vZGlmaWNhdGlvbiB1c2luZyBpdHMgdmlzaXRvciBwYXR0ZXJuIEFQSS4KLQotVGhlIGxheW91dGxpYl9jcmVhdGUgaXMgKk5PVCogZ2VuZXJpYy4gVGhlcmUgaXMgbm8gY29uZmlndXJhdGlvbiBmaWxlLiBJbnN0ZWFkIGFsbCB0aGUKLWNvbmZpZ3VyYXRpb24gaXMgZG9uZSBpbiB0aGUgbWFpbigpIG1ldGhvZCBhbmQgdGhlIENyZWF0ZUluZm8gc3RydWN0dXJlIGlzIGV4cGVjdGVkIHRvCi1jaGFuZ2Ugd2l0aCB0aGUgQW5kcm9pZCBwbGF0Zm9ybSBhcyBuZXcgY2xhc3NlcyBhcmUgYWRkZWQsIGNoYW5nZWQgb3IgcmVtb3ZlZC4KLQotVGhlIHJlc3VsdGluZyBKQVIgaXMgdXNlZCBieSBsYXlvdXRsaWJfYnJpZGdlIChhLmsuYS4gInRoZSBicmlkZ2UiKSwgYWxzbyBwYXJ0IG9mIHRoZQotcGxhdGZvcm0sIHRoYXQgcHJvdmlkZXMgYWxsIHRoZSBuZWNlc3NhcnkgbWlzc2luZyBpbXBsZW1lbnRhdGlvbiBmb3IgcmVuZGVyaW5nIGdyYXBoaWNzCi1pbiBFY2xpcHNlLgotCi0KLQotLSBJbXBsZW1lbnRhdGlvbiBOb3RlcyAtCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIHRvb2wgd29ya3MgaW4gdHdvIHBoYXNlczoKLS0gZmlyc3QgYW5hbHl6ZSB0aGUgaW5wdXQgamFyIChBc21BbmFseXplciBjbGFzcykKLS0gdGhlbiBnZW5lcmF0ZSB0aGUgb3V0cHV0IGphciAoQXNtR2VuZXJhdG9yIGNsYXNzKSwKLQotCi0tIEFuYWx5emVyCi0tLS0tLS0tLS0tCi0KLVRoZSBnb2FsIG9mIHRoZSBhbmFseXplciBpcyB0byBjcmVhdGUgYSBncmFwaCBvZiBhbGwgdGhlIGNsYXNzZXMgZnJvbSB0aGUgaW5wdXQgSkFSCi13aXRoIHRoZWlyIGRlcGVuZGVuY2llcyBhbmQgdGhlbiBvbmx5IGtlZXAgdGhlIG9uZXMgd2Ugd2FudC4KLQotVG8gZG8gdGhhdCwgdGhlIGFuYWx5emVyIGlzIGNyZWF0ZWQgd2l0aCBhIGxpc3Qgb2YgYmFzZSBjbGFzc2VzIHRvIGtlZXAgLS0gZXZlcnl0aGluZwotdGhhdCBkZXJpdmVzIGZyb20gdGhlc2UgaXMga2VwdC4gQ3VycmVudGx5IHRoZSBvbmUgc3VjaCBjbGFzcyBpcyBhbmRyb2lkLnZpZXcuVmlldzoKLXNpbmNlIHdlIHdhbnQgdG8gcmVuZGVyIGxheW91dHMsIGFueXRoaW5nIHRoYXQgaXMgc29ydCBvZiBhIHZpZXcgbmVlZHMgdG8gYmUga2VwdC4KLQotVGhlIGFuYWx5emVyIGlzIGFsc28gZ2l2ZW4gYSBsaXN0IG9mIGNsYXNzIG5hbWVzIHRvIGtlZXAgaW4gdGhlIG91dHB1dC4KLVRoaXMgaXMgZG9uZSB1c2luZyBzaGVsbC1saWtlIGdsb2IgcGF0dGVybnMgdGhhdCBmaWx0ZXIgb24gdGhlIGZ1bGx5LXF1YWxpZmllZAotY2xhc3MgbmFtZXMsIGZvciBleGFtcGxlICJhbmRyb2lkLiouUioqIiAoIioiIGRvZXMgbm90IG1hdGNoZXMgZG90cyB3aGlsc3QgIioqIiBkb2VzLAotYW5kICIuIiBhbmQgIiQiIGFyZSBpbnRlcnByZXRlZCBhcy1pcykuCi1JbiBwcmFjdGljZSB3ZSBhbG1vc3QgYnV0IG5vdCBxdWl0ZSByZXF1ZXN0IHRoZSBpbmNsdXNpb24gb2YgZnVsbCBwYWNrYWdlcy4KLQotVGhlIGFuYWx5emVyIGlzIGFsc28gZ2l2ZW4gYSBsaXN0IG9mIGNsYXNzZXMgdG8gZXhjbHVkZS4gQSBmYWtlIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlCi1jbGFzc2VzIGlzIGluamVjdGVkIGJ5IHRoZSBHZW5lcmF0b3IuCi0KLVdpdGggdGhpcyBpbmZvcm1hdGlvbiwgdGhlIGFuYWx5emVyIHBhcnNlcyB0aGUgaW5wdXQgemlwIHRvIGZpbmQgYWxsIHRoZSBjbGFzc2VzLgotQWxsIGNsYXNzZXMgZGVyaXZpbmcgZnJvbSB0aGUgcmVxdWVzdGVkIGJhc2VzIGNsYXNzZXMgYXJlIGtlcHQuCi1BbGwgY2xhc3NlcyB3aGljaCBuYW1lIG1hdGNoZWQgdGhlIGdsb2IgcGF0dGVybiBhcmUga2VwdC4KLVRoZSBhbmFseXNpcyB0aGVuIGZpbmRzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIG9mIHRoZSBjbGFzc2VzIHRoYXQgYXJlIHRvIGJlIGtlcHQKLXVzaW5nIGFuIEFTTSB2aXNpdG9yIG9uIHRoZSBjbGFzcywgdGhlIGZpZWxkIHR5cGVzLCB0aGUgbWV0aG9kIHR5cGVzIGFuZCBhbm5vdGF0aW9ucyB0eXBlcy4KLUNsYXNzZXMgdGhhdCBiZWxvbmcgdG8gdGhlIGN1cnJlbnQgSlJFIGFyZSBleGNsdWRlZC4KLQotVGhlIG91dHB1dCBvZiB0aGUgYW5hbHl6ZXIgaXMgYSBzZXQgb2YgQVNNIENsYXNzUmVhZGVyIGluc3RhbmNlcyB3aGljaCBhcmUgdGhlbgotZmVkIHRvIHRoZSBnZW5lcmF0b3IuCi0KLQotLSBHZW5lcmF0b3IKLS0tLS0tLS0tLS0tCi0KLVRoZSBnZW5lcmF0b3IgaXMgY29uc3RydWN0ZWQgZnJvbSBhIENyZWF0ZUluZm8gc3RydWN0IHRoYXQgYWN0cyBhcyBhIGNvbmZpZyBmaWxlCi1hbmQgbGlzdHM6Ci0tIHRoZSBjbGFzc2VzIHRvIGluamVjdCBpbiB0aGUgb3V0cHV0IEpBUiAtLSB0aGVzZSBjbGFzc2VzIGFyZSBkaXJlY3RseSBpbXBsZW1lbnRlZAotICBpbiBsYXlvdXRsaWJfY3JlYXRlIGFuZCB3aWxsIGJlIHVzZWQgdG8gaW50ZXJmYWNlIHdpdGggdGhlIHJlbmRlcmVyIGluIEVjbGlwc2UuCi0tIHNwZWNpZmljIG1ldGhvZHMgdG8gb3ZlcnJpZGUgKHNlZSBtZXRob2Qgc3R1YnMgZGV0YWlscyBiZWxvdykuCi0tIHNwZWNpZmljIG1ldGhvZHMgZm9yIHdoaWNoIHRvIGRlbGVnYXRlIGNhbGxzLgotLSBzcGVjaWZpYyBtZXRob2RzIHRvIHJlbW92ZSBiYXNlZCBvbiB0aGVpciByZXR1cm4gdHlwZS4KLS0gc3BlY2lmaWMgY2xhc3NlcyB0byByZW5hbWUuCi0tIHNwZWNpZmljIGNsYXNzZXMgdG8gcmVmYWN0b3IuCi0KLUVhY2ggb2YgdGhlc2UgYXJlIHNwZWNpZmljIHN0cmF0ZWdpZXMgd2UgdXNlIHRvIGJlIGFibGUgdG8gbW9kaWZ5IHRoZSBBbmRyb2lkIGNvZGUKLXRvIGZpdCB3aXRoaW4gdGhlIEVjbGlwc2UgcmVuZGVyZXIuIFRoZXNlIHN0cmF0ZWdpZXMgYXJlIGV4cGxhaW5lZCBiZW93LgotCi1UaGUgY29yZSBtZXRob2Qgb2YgdGhlIGdlbmVyYXRvciBpcyB0cmFuc2Zvcm0oKTogaXQgdGFrZXMgYW4gaW5wdXQgQVNNIENsYXNzUmVhZGVyCi1hbmQgbW9kaWZpZXMgaXQgdG8gcHJvZHVjZSBhIGJ5dGUgYXJyYXkgc3VpdGFibGUgZm9yIHRoZSBmaW5hbCBKQVIgZmlsZS4KLQotVGhlIGZpcnN0IHN0ZXAgb2YgdGhlIHRyYW5zZm9ybWF0aW9uIGlzIHRvIGltcGxlbWVudCB0aGUgbWV0aG9kIGRlbGVnYXRlcy4KLQotVGhlIFRyYW5zZm9ybUNsYXNzQWRhcHRlciBpcyB0aGVuIHVzZWQgdG8gcHJvY2VzcyB0aGUgcG90ZW50aWFsbHkgcmVuYW1lZCBjbGFzcy4KLUFsbCBwcm90ZWN0ZWQgb3IgcHJpdmF0ZSBjbGFzc2VzIGFyZSBtYXJrZXQgYXMgcHVibGljLgotQWxsIGNsYXNzZXMgYXJlIG1hZGUgbm9uLWZpbmFsLgotSW50ZXJmYWNlcyBhcmUgbGVmdCBhcy1pcy4KLQotSWYgYSBtZXRob2QgaGFzIGEgcmV0dXJuIHR5cGUgdGhhdCBtdXN0IGJlIGVyYXNlZCwgdGhlIHdob2xlIG1ldGhvZCBpcyBza2lwcGVkLgotTWV0aG9kcyBhcmUgYWxzbyBjaGFuZ2VkIGZyb20gcHJvdGVjdGVkL3ByaXZhdGUgdG8gcHVibGljLgotVGhlIGNvZGUgb2YgdGhlIG1ldGhvZHMgaXMgdGhlbiBrZXB0IGFzLWlzLCBleGNlcHQgZm9yIG5hdGl2ZSBtZXRob2RzIHdoaWNoIGFyZQotcmVwbGFjZWQgYnkgYSBzdHViLiBNZXRob2RzIHRoYXQgYXJlIHRvIGJlIG92ZXJyaWRkZW4gYXJlIGFsc28gcmVwbGFjZWQgYnkgYSBzdHViLgotCi1GaW5hbGx5IGZpZWxkcyBhcmUgYWxzbyB2aXNpdGVkIGFuZCBjaGFuZ2VkIGZyb20gcHJvdGVjdGVkL3ByaXZhdGUgdG8gcHVibGljLgotCi1UaGUgbmV4dCBzdGVwIG9mIHRoZSB0cmFuc2Zvcm1hdGlvbiBpcyBjaGFuZ2luZyB0aGUgbmFtZSBvZiB0aGUgY2xhc3MgaW4gY2FzZQotd2UgcmVxdWVzdGVkIHRoZSBjbGFzcyB0byBiZSByZW5hbWVkLiBUaGlzIHVzZXMgdGhlIFJlbmFtZUNsYXNzQWRhcHRlciB0byBhbHNvIHJlbmFtZQotYWxsIGlubmVyIGNsYXNzZXMgYW5kIHJlZmVyZW5jZXMgaW4gbWV0aG9kcyBhbmQgdHlwZXMuIE5vdGUgdGhhdCBvdGhlciBjbGFzc2VzIGFyZQotbm90IHRyYW5zZm9ybWVkIGFuZCBrZWVwIHJlZmVyZW5jaW5nIHRoZSBvcmlnaW5hbCBuYW1lLgotCi1UaGUgY2xhc3MgaXMgdGhlbiBmZWQgdG8gUmVmYWN0b3JDbGFzc0FkYXB0ZXIgd2hpY2ggaXMgbGlrZSBSZW5hbWVDbGFzc0FkYXB0ZXIgYnV0Ci11cGRhdGVzIHRoZSByZWZlcmVuY2VzIGluIGFsbCBjbGFzc2VzLiBUaGlzIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSByZWZlcmVuY2VzIG9mIGNsYXNzZXMKLWluIHRoZSBqYXZhIHBhY2thZ2UgdGhhdCB3ZXJlIGFkZGVkIGluIHRoZSBEYWx2aWsgVk0gYnV0IGFyZSBub3QgYSBwYXJ0IG9mIHRoZSBzdGFuZGFyZAotSlZNLiBUaGUgZXhpc3RpbmcgY2xhc3NlcyBhcmUgbW9kaWZpZWQgdG8gdXBkYXRlIGFsbCByZWZlcmVuY2VzIHRvIHRoZXNlIG5vbi1zdGFuZGFyZAotY2xhc3Nlcy4gQW4gYWx0ZXJuYXRlIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIChjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuamF2YS4qKSBpcwotaW5qZWN0ZWQuCi0KLVRoZSBDbGFzc0FkYXB0ZXJzIGFyZSBjaGFpbmVkIHRvZ2V0aGVyIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgb3V0cHV0LiAoTG9vayBhdCBzZWN0aW9uCi0yLjIuNyBUcmFuc2Zvcm1hdGlvbiBjaGFpbnMgaW4gdGhlIGFzbSB1c2VyIGd1aWRlLCBsaW5rIGluIHRoZSBSZWZlcmVuY2VzLikgVGhlIG9yZGVyIG9mCi1leGVjdXRpb24gb2YgdGhlc2UgaXM6Ci1DbGFzc1JlYWRlciAtPiBbRGVsZWdhdGVDbGFzc0FkYXB0ZXJdIC0+IFRyYW5zZm9ybUNsYXNzQWRhcHRlciAtPiBbUmVuYW1lQ2xhc3NBZGFwdGVyXSAtPgotUmVmYWN0b3JDbGFzc0FkYXB0ZXIgLT4gQ2xhc3NXcml0ZXIKLQotLSBNZXRob2Qgc3R1YnMKLS0tLS0tLS0tLS0tLS0tCi0KLUFzIGluZGljYXRlZCBhYm92ZSwgYWxsIG5hdGl2ZSBhbmQgb3ZlcnJpZGRlbiBtZXRob2RzIGFyZSByZXBsYWNlZCBieSBhIHN0dWIuCi1XZSBkb24ndCBoYXZlIHRoZSBjb2RlIHRvIHJlcGxhY2Ugd2l0aCBpbiBsYXlvdXRsaWJfY3JlYXRlLgotSW5zdGVhZCB0aGUgU3R1Yk1ldGhvZEFkYXB0ZXIgcmVwbGFjZXMgdGhlIGNvZGUgb2YgdGhlIG1ldGhvZCBieSBhIGNhbGwgdG8KLU92ZXJyaWRlTWV0aG9kLmludm9rZVgoKS4gV2hlbiB1c2luZyB0aGUgZmluYWwgSkFSLCB0aGUgYnJpZGdlIGNhbiByZWdpc3RlcgotbGlzdGVuZXJzIGZyb20gdGhlc2Ugb3ZlcnJpZGRlbiBtZXRob2QgY2FsbHMgYmFzZWQgb24gdGhlIG1ldGhvZCBzaWduYXR1cmVzLgotCi1UaGUgbGlzdGVuZXJzIGFyZSBjdXJyZW50bHkgcHJldHR5IGJhc2ljOiB3ZSBvbmx5IHBhc3MgdGhlIHNpZ25hdHVyZSBvZiB0aGUKLW1ldGhvZCBiZWluZyBjYWxsZWQsIGl0cyBjYWxsZXIgb2JqZWN0IGFuZCBhIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZQotbWV0aG9kIHdhcyBuYXRpdmUuIFdlIGRvIG5vdCBjdXJyZW50bHkgcHJvdmlkZSB0aGUgcGFyYW1ldGVycy4gVGhlIGxpc3RlbmVyCi1jYW4gaG93ZXZlciBzcGVjaWZ5IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIG92ZXJyaWRkZW4gbWV0aG9kLgotCi1UaGlzIHN0cmF0ZWd5IGlzIG5vdyBvYnNvbGV0ZSBhbmQgcmVwbGFjZWQgYnkgdGhlIG1ldGhvZCBkZWxlZ2F0ZXMuCi0KLQotLSBTdHJhdGVnaWVzCi0tLS0tLS0tLS0tLS0KLQotV2UgY3VycmVudGx5IGhhdmUgNiBzdHJhdGVnaWVzIHRvIGRlYWwgd2l0aCBvdmVycmlkaW5nIHRoZSByZW5kZXJpbmcgY29kZQotYW5kIG1ha2UgaXQgcnVuIGluIEVjbGlwc2UuIE1vc3Qgb2YgdGhlc2Ugc3RyYXRlZ2llcyBhcmUgaW1wbGVtZW50ZWQgaGFuZC1pbi1oYW5kCi1ieSB0aGUgYnJpZGdlICh3aGljaCBydW5zIGluIEVjbGlwc2UpIGFuZCB0aGUgZ2VuZXJhdG9yLgotCi0KLTEtIENsYXNzIEluamVjdGlvbgotCi1UaGlzIGlzIHRoZSBlYXNpZXN0OiB3ZSBjdXJyZW50bHkgaW5qZWN0IHRoZSBmb2xsb3dpbmcgY2xhc3NlczoKLS0gT3ZlcnJpZGVNZXRob2QgYW5kIGl0cyBhc3NvY2lhdGVkIE1ldGhvZExpc3RlbmVyIGFuZCBNZXRob2RBZGFwdGVyIGFyZSB1c2VkCi0gIHRvIGludGVyY2VwdCBjYWxscyB0byBzb21lIHNwZWNpZmljIG1ldGhvZHMgdGhhdCBhcmUgc3R1YmJlZCBvdXQgYW5kIGNoYW5nZQotICB0aGVpciByZXR1cm4gdmFsdWUuCi0tIENyZWF0ZUluZm8gY2xhc3MsIHdoaWNoIGNvbmZpZ3VyZWQgdGhlIGdlbmVyYXRvci4gTm90IHVzZWQgeWV0LCBidXQgY291bGQKLSAgaW4gdGhlb3J5IGhlbHAgdXMgdHJhY2sgd2hhdCB0aGUgZ2VuZXJhdG9yIGNoYW5nZWQuCi0tIEF1dG9DbG9zZWFibGUgYW5kIE9iamVjdHMgYXJlIHBhcnQgb2YgSmF2YSA3LiBUbyBlbmFibGUgdXMgdG8gc3RpbGwgcnVuIG9uIEphdmEgNiwgbmV3Ci0gIGNsYXNzZXMgYXJlIGluamVjdGVkLiBUaGUgaW1wbGVtZW50YXRpb24gZm9yIHRoZXNlIGNsYXNzZXMgaGFzIGJlZW4gdGFrZW4gZnJvbQotICBBbmRyb2lkJ3MgbGliY29yZSAocGxhdGZvcm0vbGliY29yZS9sdW5pL3NyYy9tYWluL2phdmEvamF2YS8uLi4pLgotLSBDaGFyc2V0cywgSW50ZWdyYWxUb1N0cmluZyBhbmQgVW5zYWZlQnl0ZVNlcXVlbmNlIGFyZSBub3QgcGFydCBvZiB0aGUgc3RhbmRhcmQgSkFWQSBWTS4KLSAgVGhleSBhcmUgYWRkZWQgdG8gdGhlIERhbHZpayBWTSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4gQW4gaW1wbGVtZW50YXRpb24gdGhhdCBpcyB2ZXJ5Ci0gIGNsb3NlIHRvIHRoZSBvcmlnaW5hbCAod2hpY2ggaXMgYXQgcGxhdGZvcm0vbGliY29yZS9sdW5pL3NyYy9tYWluL2phdmEvLi4uKSBpcyBpbmplY3RlZC4KLSAgU2luY2UgdGhlc2UgY2xhc3NlZXMgd2VyZSBpbiBwYXJ0IG9mIHRoZSBqYXZhIHBhY2thZ2UsIHdoZXJlIHdlIGNhbid0IGluamVjdCBjbGFzc2VzLAotICBhbGwgcmVmZXJlbmNlcyB0byB0aGVzZSBoYXZlIGJlZW4gdXBkYXRlZCAoU2VlIHN0cmF0ZWd5IDQtIFJlZmFjdG9yaW5nIENsYXNzZXMpLgotCi0KLTItIE92ZXJyaWRpbmcgbWV0aG9kcwotCi1BcyBleHBsYWluZWQgZWFybGllciwgdGhlIGNyZWF0b3IgZG9lc24ndCBoYXZlIGFueSByZXBsYWNlbWVudCBjb2RlIGZvcgotbWV0aG9kcyB0byBvdmVycmlkZS4gSW5zdGVhZCBpdCByZW1vdmVzIHRoZSBvcmlnaW5hbCBjb2RlIGFuZCByZXBsYWNlcyBpdAotYnkgYSBjYWxsIHRvIGEgc3BlY2lmaWMgT3ZlcmlkZGVNZXRob2QuaW52b2tlWCgpLiBUaGUgYnJpZGdlIHRoZW4gcmVnaXN0ZXJzCi1hIGxpc3RlbmVyIG9uIHRoZSBtZXRob2Qgc2lnbmF0dXJlIGFuZCBjYW4gcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbi4KLQotVGhpcyBzdHJhdGVneSBpcyBub3cgb2Jzb2xldGUgYW5kIHJlcGxhY2VkIGJ5IHRoZSBtZXRob2QgZGVsZWdhdGVzLgotU2VlIHN0cmF0ZWd5IDUgYmVsb3cuCi0KLQotMy0gUmVuYW1pbmcgY2xhc3NlcwotCi1UaGlzIHNpbXBseSBjaGFuZ2VzIHRoZSBuYW1lIG9mIGEgY2xhc3MgaW4gaXRzIGRlZmluaXRpb24sIGFzIHdlbGwgYXMgYWxsIGl0cwotcmVmZXJlbmNlcyBpbiBpbnRlcm5hbCBpbm5lciBjbGFzc2VzIGFuZCBtZXRob2RzLgotQ2FsbHMgZnJvbSBvdGhlciBjbGFzc2VzIGFyZSBub3QgbW9kaWZpZWQgLS0gdGhleSBrZWVwIHJlZmVyZW5jaW5nIHRoZSBvcmlnaW5hbAotY2xhc3MgbmFtZS4gVGhpcyBhbGxvd3MgdGhlIGJyaWRnZSB0byBsaXRlcmFsbHkgcmVwbGFjZSBhbiBpbXBsZW1lbnRhdGlvbi4KLQotQW4gZXhhbXBsZSB3aWxsIG1ha2UgdGhpcyBlYXNpZXI6IGFuZHJvaWQuZ3JhcGhpY3MuUGFpbnQgaXMgdGhlIG1haW4gZHJhd2luZwotY2xhc3MgdGhhdCB3ZSBuZWVkIHRvIHJlcGxhY2UuIFRvIGRvIHNvLCB0aGUgZ2VuZXJhdG9yIHJlbmFtZXMgUGFpbnQgdG8gX29yaWdpbmFsX1BhaW50LgotTGF0ZXIgdGhlIGJyaWRnZSBwcm92aWRlcyBpdHMgb3duIHJlcGxhY2VtZW50IHZlcnNpb24gb2YgUGFpbnQgd2hpY2ggd2lsbCBiZSB1c2VkCi1ieSB0aGUgcmVzdCBvZiB0aGUgQW5kcm9pZCBzdGFjay4gVGhlIHJlcGxhY2VtZW50IHZlcnNpb24gb2YgUGFpbnQgY2FuIHN0aWxsIHVzZQotKGVpdGhlciBieSBpbmhlcml0YW5jZSBvciBkZWxlZ2F0aW9uKSBhbGwgdGhlIG9yaWdpbmFsIG5vbi1uYXRpdmUgY29kZSBvZiBfb3JpZ2luYWxfUGFpbnQKLWlmIGl0IHNvIGRlc2lyZXMuCi0KLVNvbWUgb2YgdGhlIEFuZHJvaWQgY2xhc3NlcyBhcmUgYmFzaWNhbGx5IHdyYXBwZXJzIG92ZXIgbmF0aXZlIG9iamVjdHMgYW5kIHNpbmNlCi13ZSBkb24ndCBoYXZlIHRoZSBuYXRpdmUgY29kZSBpbiBFY2xpcHNlLCB3ZSBuZWVkIHRvIHByb3ZpZGUgYSBmdWxsIGFsdGVybmF0ZQotaW1wbGVtZW50YXRpb24uIFN1Yi1jbGFzc2luZyBkb2Vzbid0IHdvcmsgYXMgc29tZSBuYXRpdmUgbWV0aG9kcyBhcmUgc3RhdGljIGFuZAotd2UgZG9uJ3QgY29udHJvbCBvYmplY3QgY3JlYXRpb24uCi0KLVRoaXMgd29uJ3QgcmVuYW1lL3JlcGxhY2UgdGhlIGlubmVyIHN0YXRpYyBtZXRob2RzIG9mIGEgZ2l2ZW4gY2xhc3MuCi0KLQotNC0gUmVmYWN0b3JpbmcgY2xhc3NlcwotCi1UaGlzIGlzIHZlcnkgc2ltaWxhciB0byB0aGUgUmVuYW1pbmcgY2xhc3NlcyBleGNlcHQgdGhhdCBpdCBhbHNvIHVwZGF0ZXMgdGhlIHJlZmVyZW5jZSBpbgotYWxsIGNsYXNzZXMuIFRoaXMgaXMgZG9uZSBmb3IgY2xhc3NlcyB3aGljaCBhcmUgYWRkZWQgdG8gdGhlIERhbHZpayBWTSBmb3IgcGVyZm9ybWFuY2UKLXJlYXNvbnMgYnV0IGFyZSBub3QgcHJlc2VudCBpbiB0aGUgU3RhbmRhcmQgSmF2YSBWTS4gQW4gaW1wbGVtZW50YXRpb24gZm9yIHRoZXNlIGNsYXNzZXMKLWlzIGFsc28gaW5qZWN0ZWQuCi0KLQotNS0gTWV0aG9kIGVyYXN1cmUgYmFzZWQgb24gcmV0dXJuIHR5cGUKLQotVGhpcyBpcyBtb3N0bHkgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIHRoZSBicmlkZ2U6IGluIHRoZSBQYWludCBjbGFzcwotbWVudGlvbmVkIGFib3ZlLCBzb21lIGlubmVyIHN0YXRpYyBjbGFzc2VzIGFyZSB1c2VkIHRvIHBhc3MgYXJvdW5kCi1hdHRyaWJ1dGVzIChlLmcuIEZvbnRNZXRyaWNzLCBvciB0aGUgU3R5bGUgZW51bSkgYW5kIGFsbCB0aGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24KLWlzIG5hdGl2ZS4KLQotSW4gdGhpcyBjYXNlIHdlIGhhdmUgYSBzdHJhdGVneSB0aGF0IHRlbGxzIHRoZSBnZW5lcmF0b3IgdGhhdCBhbnl0aGluZyByZXR1cm5pbmcsIGZvcgotZXhhbXBsZSwgdGhlIGlubmVyIGNsYXNzIFBhaW50JFN0eWxlIGluIHRoZSBQYWludCBjbGFzcyBzaG91bGQgYmUgZGlzY2FyZGVkIGFuZCB0aGUKLWJyaWRnZSB3aWxsIHByb3ZpZGUgaXRzIG93biBpbXBsZW1lbnRhdGlvbi4KLQotCi02LSBNZXRob2QgRGVsZWdhdGVzCi0KLVRoaXMgc3RyYXRlZ3kgaXMgdXNlZCB0byBvdmVycmlkZSBtZXRob2QgaW1wbGVtZW50YXRpb25zLgotR2l2ZW4gYSBtZXRob2QgU29tZUNsYXNzLk1ldGhvZE5hbWUoKSwgMSBvciAyIG1ldGhvZHMgYXJlIGdlbmVyYXRlZDoKLWEtIEEgY29weSBvZiB0aGUgb3JpZ2luYWwgbWV0aG9kIG5hbWVkIFNvbWVDbGFzcy5NZXRob2ROYW1lX09yaWdpbmFsKCkuCi0gICBUaGUgY29udGVudCBpcyB0aGUgb3JpZ2luYWwgbWV0aG9kIGFzLWlzIGZyb20gdGhlIHJlYWRlci4KLSAgIFRoaXMgc3RlcCBpcyBvbWl0dGVkIGlmIHRoZSBtZXRob2QgaXMgbmF0aXZlLCBzaW5jZSBpdCBoYXMgbm8gSmF2YSBpbXBsZW1lbnRhdGlvbi4KLWItIEEgYnJhbmQgbmV3IGltcGxlbWVudGF0aW9uIG9mIFNvbWVDbGFzcy5NZXRob2ROYW1lKCkgd2hpY2ggY2FsbHMgdG8gYQotICAgbm9uLWV4aXN0aW5nIHN0YXRpYyBtZXRob2QgbmFtZWQgU29tZUNsYXNzX0RlbGVnYXRlLk1ldGhvZE5hbWUoKS4KLSAgIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzICdkZWxlZ2F0ZScgbWV0aG9kIGlzIGRvbmUgaW4gbGF5b3V0bGliX2JyaWdkZS4KLQotVGhlIGRlbGVnYXRlIG1ldGhvZCBpcyBhIHN0YXRpYyBtZXRob2QuCi1JZiB0aGUgb3JpZ2luYWwgbWV0aG9kIGlzIG5vbi1zdGF0aWMsIHRoZSBkZWxlZ2F0ZSBtZXRob2QgcmVjZWl2ZXMgdGhlIG9yaWdpbmFsICd0aGlzJwotYXMgaXRzIGZpcnN0IGFyZ3VtZW50LiBJZiB0aGUgb3JpZ2luYWwgbWV0aG9kIGlzIGFuIGlubmVyIG5vbi1zdGF0aWMgbWV0aG9kLCBpdCBhbHNvCi1yZWNlaXZlcyB0aGUgaW5uZXIgJ3RoaXMnIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQuCi0KLQotCi0tIFJlZmVyZW5jZXMgLQotLS0tLS0tLS0tLS0tLS0KLQotCi1UaGUgSlZNIFNwZWNpZmljYXRpb24gMm5kIGVkaXRpb246Ci0gIGh0dHA6Ly9qYXZhLnN1bi5jb20vZG9jcy9ib29rcy9qdm1zL3NlY29uZF9lZGl0aW9uL2h0bWwvVk1TcGVjVE9DLmRvYy5odG1sCi0KLVVuZGVyc3RhbmRpbmcgYnl0ZWNvZGU6Ci0gIGh0dHA6Ly93d3cuaWJtLmNvbS9kZXZlbG9wZXJ3b3Jrcy9pYm0vbGlicmFyeS9pdC1oYWdnYXJfYnl0ZWNvZGUvCi0KLUJ5dGVjb2RlIG9wY29kZSBsaXN0OgotICBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0phdmFfYnl0ZWNvZGVfaW5zdHJ1Y3Rpb25fbGlzdGluZ3MKLQotQVNNIHVzZXIgZ3VpZGU6Ci0gIGh0dHA6Ly9kb3dubG9hZC5mb3JnZS5vYmplY3R3ZWIub3JnL2FzbS9hc200LWd1aWRlLnBkZgotCi0KLS0tCi1lbmQKZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvbWFuaWZlc3QudHh0IGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9tYW5pZmVzdC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzOGU3ZjkuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9tYW5pZmVzdC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1NYWluLUNsYXNzOiBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlLk1haW4KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9hbm5vdGF0aW9ucy9MYXlvdXRsaWJEZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2Fubm90YXRpb25zL0xheW91dGxpYkRlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhNDhlYTYuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2Fubm90YXRpb25zL0xheW91dGxpYkRlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnM7Ci0KLWltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb247Ci1pbXBvcnQgamF2YS5sYW5nLmFubm90YXRpb24uUmV0ZW50aW9uUG9saWN5OwotCi0vKioKLSAqIERlbm90ZXMgYSBtZXRob2QgdGhhdCBoYXMgYmVlbiBjb252ZXJ0ZWQgdG8gYSBkZWxlZ2F0ZSBieSBsYXlvdXRsaWJfY3JlYXRlLgotICovCi1AUmV0ZW50aW9uKFJldGVudGlvblBvbGljeS5SVU5USU1FKQotcHVibGljIEBpbnRlcmZhY2UgTGF5b3V0bGliRGVsZWdhdGUgewotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2Fubm90YXRpb25zL051bGxhYmxlLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvYW5ub3RhdGlvbnMvTnVsbGFibGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDY4OWM5Mi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvYW5ub3RhdGlvbnMvTnVsbGFibGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9uczsKLQotaW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvbjsKLWltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb25Qb2xpY3k7Ci0KLS8qKgotICogRGVub3RlcyBhIHBhcmFtZXRlciBvciBmaWVsZCBjYW4gYmUgbnVsbC4KLSAqIDxwLz4KLSAqIFdoZW4gZGVjb3JhdGluZyBhIG1ldGhvZCBjYWxsIHBhcmFtZXRlciwgdGhpcyBkZW5vdGVzIHRoZSBwYXJhbWV0ZXIgY2FuCi0gKiBsZWdpdGltYXRlbHkgYmUgbnVsbCBhbmQgdGhlIG1ldGhvZCB3aWxsIGdyYWNlZnVsbHkgZGVhbCB3aXRoIGl0LiBUeXBpY2FsbHkgdXNlZAotICogb24gb3B0aW9uYWwgcGFyYW1ldGVycy4KLSAqIDxwLz4KLSAqIFdoZW4gZGVjb3JhdGluZyBhIG1ldGhvZCwgdGhpcyBkZW5vdGVzIHRoZSBtZXRob2QgbWlnaHQgbGVnaXRpbWF0ZWx5IHJldHVybiBudWxsLgotICogPHAvPgotICogVGhpcyBpcyBhIG1hcmtlciBhbm5vdGF0aW9uIGFuZCBpdCBoYXMgbm8gc3BlY2lmaWMgYXR0cmlidXRlcy4KLSAqLwotQFJldGVudGlvbihSZXRlbnRpb25Qb2xpY3kuU09VUkNFKQotcHVibGljIEBpbnRlcmZhY2UgTnVsbGFibGUgewotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2Fubm90YXRpb25zL1Zpc2libGVGb3JUZXN0aW5nLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvYW5ub3RhdGlvbnMvVmlzaWJsZUZvclRlc3RpbmcuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRlMDE2Yi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvYW5ub3RhdGlvbnMvVmlzaWJsZUZvclRlc3RpbmcuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9uczsKLQotaW1wb3J0IGphdmEubGFuZy5hbm5vdGF0aW9uLlJldGVudGlvbjsKLWltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5SZXRlbnRpb25Qb2xpY3k7Ci0KLS8qKgotICogRGVub3RlcyB0aGF0IHRoZSBjbGFzcywgbWV0aG9kIG9yIGZpZWxkIGhhcyBpdHMgdmlzaWJpbGl0eSByZWxheGVkIHNvCi0gKiB0aGF0IHVuaXQgdGVzdHMgY2FuIGFjY2VzcyBpdC4KLSAqIDxwLz4KLSAqIFRoZSA8Y29kZT52aXNpYmlsaXR5PC9jb2RlPiBhcmd1bWVudCBjYW4gYmUgdXNlZCB0byBzcGVjaWZpYyB3aGF0IHRoZSBvcmlnaW5hbAotICogdmlzaWJpbGl0eSBzaG91bGQgaGF2ZSBiZWVuIGlmIGl0IGhhZCBub3QgYmVlbiBtYWRlIHB1YmxpYyBvciBwYWNrYWdlLXByaXZhdGUgZm9yIHRlc3RpbmcuCi0gKiBUaGUgZGVmYXVsdCBpcyB0byBjb25zaWRlciB0aGUgZWxlbWVudCBwcml2YXRlLgotICovCi1AUmV0ZW50aW9uKFJldGVudGlvblBvbGljeS5TT1VSQ0UpCi1wdWJsaWMgQGludGVyZmFjZSBWaXNpYmxlRm9yVGVzdGluZyB7Ci0gICAgLyoqCi0gICAgICogSW50ZW5kZWQgdmlzaWJpbGl0eSBpZiB0aGUgZWxlbWVudCBoYWQgbm90IGJlZW4gbWFkZSBwdWJsaWMgb3IgcGFja2FnZS1wcml2YXRlIGZvcgotICAgICAqIHRlc3RpbmcuCi0gICAgICovCi0gICAgZW51bSBWaXNpYmlsaXR5IHsKLSAgICAgICAgLyoqIFRoZSBlbGVtZW50IHNob3VsZCBiZSBjb25zaWRlcmVkIHByb3RlY3RlZC4gKi8KLSAgICAgICAgUFJPVEVDVEVELAotICAgICAgICAvKiogVGhlIGVsZW1lbnQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcGFja2FnZS1wcml2YXRlLiAqLwotICAgICAgICBQQUNLQUdFLAotICAgICAgICAvKiogVGhlIGVsZW1lbnQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcHJpdmF0ZS4gKi8KLSAgICAgICAgUFJJVkFURQotICAgIH0KLQotICAgIC8qKgotICAgICAqIEludGVuZGVkIHZpc2liaWxpdHkgaWYgdGhlIGVsZW1lbnQgaGFkIG5vdCBiZWVuIG1hZGUgcHVibGljIG9yIHBhY2thZ2UtcHJpdmF0ZSBmb3IgdGVzdGluZy4KLSAgICAgKiBJZiBub3Qgc3BlY2lmaWVkLCBvbmUgc2hvdWxkIGFzc3VtZSB0aGUgZWxlbWVudCBvcmlnaW5hbGx5IGludGVuZGVkIHRvIGJlIHByaXZhdGUuCi0gICAgICovCi0gICAgVmlzaWJpbGl0eSB2aXNpYmlsaXR5KCkgZGVmYXVsdCBWaXNpYmlsaXR5LlBSSVZBVEU7Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0Fic3RyYWN0Q2xhc3NBZGFwdGVyLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0Fic3RyYWN0Q2xhc3NBZGFwdGVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyY2FhMjUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9BYnN0cmFjdENsYXNzQWRhcHRlci5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNDE4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGU7Ci0KLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5Bbm5vdGF0aW9uVmlzaXRvcjsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1Zpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uRmllbGRWaXNpdG9yOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkxhYmVsOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLk1ldGhvZFZpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uT3Bjb2RlczsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5UeXBlOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLnNpZ25hdHVyZS5TaWduYXR1cmVSZWFkZXI7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uc2lnbmF0dXJlLlNpZ25hdHVyZVZpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uc2lnbmF0dXJlLlNpZ25hdHVyZVdyaXRlcjsKLQotLyoqCi0gKiBQcm92aWRlcyB0aGUgY29tbW9uIGNvZGUgZm9yIFJlbmFtZUNsYXNzQWRhcHRlciBhbmQgUmVmYWN0b3JDbGFzc0FkYXB0ZXIuIEl0Ci0gKiBnb2VzIHRocm91Z2ggdGhlIGNvbXBsZXRlIGNsYXNzIGFuZCBmaW5kcyByZWZlcmVuY2VzIHRvIG90aGVyIGNsYXNzZXMuIEl0Ci0gKiB0aGVuIGNhbGxzIHtAbGluayAjcmVuYW1lSW50ZXJuYWxUeXBlKFN0cmluZyl9IHRvIGNvbnZlcnQgdGhlIGNsYXNzTmFtZSB0bwotICogdGhlIG5ldyB2YWx1ZSwgaWYgbmVlZCBiZS4KLSAqLwotcHVibGljIGFic3RyYWN0IGNsYXNzIEFic3RyYWN0Q2xhc3NBZGFwdGVyIGV4dGVuZHMgQ2xhc3NWaXNpdG9yIHsKLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIG5ldyBGUUNOIGZvciB0aGUgY2xhc3MsIGlmIHRoZSByZWZlcmVuY2UgdG8gdGhpcyBjbGFzcyBuZWVkcwotICAgICAqIHRvIGJlIHVwZGF0ZWQuIEVsc2UsIGl0IHJldHVybnMgdGhlIHNhbWUgc3RyaW5nLgotICAgICAqIEBwYXJhbSBuYW1lIE9sZCBGUUNOCi0gICAgICogQHJldHVybiBOZXcgRlFDTiBpZiBpdCBuZWVkcyB0byBiZSByZW5hbWVkLCBlbHNlIHRoZSBvbGQgRlFDTgotICAgICAqLwotICAgIGFic3RyYWN0IFN0cmluZyByZW5hbWVJbnRlcm5hbFR5cGUoU3RyaW5nIG5hbWUpOwotCi0gICAgcHVibGljIEFic3RyYWN0Q2xhc3NBZGFwdGVyKENsYXNzVmlzaXRvciBjdikgewotICAgICAgICBzdXBlcihPcGNvZGVzLkFTTTQsIGN2KTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZW5hbWVzIGEgdHlwZSBkZXNjcmlwdG9yLCBlLmcuICJMY29tLnBhY2thZ2UuTXlDbGFzczsiCi0gICAgICogSWYgdGhlIHR5cGUgZG9lc24ndCBuZWVkIHRvIGJlIHJlbmFtZWQsIHJldHVybnMgdGhlIGlucHV0IHN0cmluZyBhcy1pcy4KLSAgICAgKi8KLSAgICBTdHJpbmcgcmVuYW1lVHlwZURlc2MoU3RyaW5nIGRlc2MpIHsKLSAgICAgICAgaWYgKGRlc2MgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gcmVuYW1lVHlwZShUeXBlLmdldFR5cGUoZGVzYykpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlbmFtZXMgYW4gb2JqZWN0IHR5cGUsIGUuZy4gIkxjb20ucGFja2FnZS5NeUNsYXNzOyIgb3IgYW4gYXJyYXkgdHlwZSB0aGF0IGhhcyBhbgotICAgICAqIG9iamVjdCBlbGVtZW50LCBlLmcuICJbTGNvbS5wYWNrYWdlLk15Q2xhc3M7IgotICAgICAqIElmIHRoZSB0eXBlIGRvZXNuJ3QgbmVlZCB0byBiZSByZW5hbWVkLCByZXR1cm5zIHRoZSBpbnRlcm5hbCBuYW1lIG9mIHRoZSBpbnB1dCB0eXBlLgotICAgICAqLwotICAgIFN0cmluZyByZW5hbWVUeXBlKFR5cGUgdHlwZSkgewotICAgICAgICBpZiAodHlwZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0eXBlLmdldFNvcnQoKSA9PSBUeXBlLk9CSkVDVCkgewotICAgICAgICAgICAgU3RyaW5nIGluID0gdHlwZS5nZXRJbnRlcm5hbE5hbWUoKTsKLSAgICAgICAgICAgIHJldHVybiAiTCIgKyByZW5hbWVJbnRlcm5hbFR5cGUoaW4pICsgIjsiOwotICAgICAgICB9IGVsc2UgaWYgKHR5cGUuZ2V0U29ydCgpID09IFR5cGUuQVJSQVkpIHsKLSAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOwotICAgICAgICAgICAgZm9yIChpbnQgbiA9IHR5cGUuZ2V0RGltZW5zaW9ucygpOyBuID4gMDsgbi0tKSB7Ci0gICAgICAgICAgICAgICAgc2IuYXBwZW5kKCdbJyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzYi5hcHBlbmQocmVuYW1lVHlwZSh0eXBlLmdldEVsZW1lbnRUeXBlKCkpKTsKLSAgICAgICAgICAgIHJldHVybiBzYi50b1N0cmluZygpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0eXBlLmdldERlc2NyaXB0b3IoKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZW5hbWVzIGFuIG9iamVjdCB0eXBlLCBlLmcuICJMY29tLnBhY2thZ2UuTXlDbGFzczsiIG9yIGFuIGFycmF5IHR5cGUgdGhhdCBoYXMgYW4KLSAgICAgKiBvYmplY3QgZWxlbWVudCwgZS5nLiAiW0xjb20ucGFja2FnZS5NeUNsYXNzOyIuCi0gICAgICogVGhpcyBpcyBsaWtlIHJlbmFtZVR5cGUoKSBleGNlcHQgdGhhdCBpdCByZXR1cm5zIGEgVHlwZSBvYmplY3QuCi0gICAgICogSWYgdGhlIHR5cGUgZG9lc24ndCBuZWVkIHRvIGJlIHJlbmFtZWQsIHJldHVybnMgdGhlIGlucHV0IHR5cGUgb2JqZWN0LgotICAgICAqLwotICAgIFR5cGUgcmVuYW1lVHlwZUFzVHlwZShUeXBlIHR5cGUpIHsKLSAgICAgICAgaWYgKHR5cGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodHlwZS5nZXRTb3J0KCkgPT0gVHlwZS5PQkpFQ1QpIHsKLSAgICAgICAgICAgIFN0cmluZyBpbiA9IHR5cGUuZ2V0SW50ZXJuYWxOYW1lKCk7Ci0gICAgICAgICAgICBTdHJpbmcgbmV3SW4gPSByZW5hbWVJbnRlcm5hbFR5cGUoaW4pOwotICAgICAgICAgICAgaWYgKG5ld0luICE9IGluKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFR5cGUuZ2V0VHlwZSgiTCIgKyBuZXdJbiArICI7Iik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAodHlwZS5nZXRTb3J0KCkgPT0gVHlwZS5BUlJBWSkgewotICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7Ci0gICAgICAgICAgICBmb3IgKGludCBuID0gdHlwZS5nZXREaW1lbnNpb25zKCk7IG4gPiAwOyBuLS0pIHsKLSAgICAgICAgICAgICAgICBzYi5hcHBlbmQoJ1snKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNiLmFwcGVuZChyZW5hbWVUeXBlKHR5cGUuZ2V0RWxlbWVudFR5cGUoKSkpOwotICAgICAgICAgICAgcmV0dXJuIFR5cGUuZ2V0VHlwZShzYi50b1N0cmluZygpKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdHlwZTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZW5hbWVzIGEgbWV0aG9kIGRlc2NyaXB0b3IsIGkuZS4gYXBwbGllcyByZW5hbWVUeXBlIHRvIGFsbCBhcmd1bWVudHMgYW5kIHRvIHRoZQotICAgICAqIHJldHVybiB2YWx1ZS4KLSAgICAgKi8KLSAgICBTdHJpbmcgcmVuYW1lTWV0aG9kRGVzYyhTdHJpbmcgZGVzYykgewotICAgICAgICBpZiAoZGVzYyA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotCi0gICAgICAgIFR5cGVbXSBhcmdzID0gVHlwZS5nZXRBcmd1bWVudFR5cGVzKGRlc2MpOwotCi0gICAgICAgIFN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigiKCIpOwotICAgICAgICBmb3IgKFR5cGUgYXJnIDogYXJncykgewotICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSByZW5hbWVUeXBlKGFyZyk7Ci0gICAgICAgICAgICBzYi5hcHBlbmQobmFtZSk7Ci0gICAgICAgIH0KLSAgICAgICAgc2IuYXBwZW5kKCcpJyk7Ci0KLSAgICAgICAgVHlwZSByZXQgPSBUeXBlLmdldFJldHVyblR5cGUoZGVzYyk7Ci0gICAgICAgIFN0cmluZyBuYW1lID0gcmVuYW1lVHlwZShyZXQpOwotICAgICAgICBzYi5hcHBlbmQobmFtZSk7Ci0KLSAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7Ci0gICAgfQotCi0KLSAgICAvKioKLSAgICAgKiBSZW5hbWVzIHRoZSBDbGFzc1NpZ25hdHVyZSBoYW5kbGVkIGJ5IENsYXNzVmlzaXRvci52aXNpdAotICAgICAqIG9yIHRoZSBNZXRob2RUeXBlU2lnbmF0dXJlIGhhbmRsZWQgYnkgQ2xhc3NWaXNpdG9yLnZpc2l0TWV0aG9kLgotICAgICAqLwotICAgIFN0cmluZyByZW5hbWVUeXBlU2lnbmF0dXJlKFN0cmluZyBzaWcpIHsKLSAgICAgICAgaWYgKHNpZyA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotICAgICAgICBTaWduYXR1cmVSZWFkZXIgcmVhZGVyID0gbmV3IFNpZ25hdHVyZVJlYWRlcihzaWcpOwotICAgICAgICBTaWduYXR1cmVXcml0ZXIgd3JpdGVyID0gbmV3IFNpZ25hdHVyZVdyaXRlcigpOwotICAgICAgICByZWFkZXIuYWNjZXB0KG5ldyBSZW5hbWVTaWduYXR1cmVBZGFwdGVyKHdyaXRlcikpOwotICAgICAgICBzaWcgPSB3cml0ZXIudG9TdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuIHNpZzsKLSAgICB9Ci0KLQotICAgIC8qKgotICAgICAqIFJlbmFtZXMgdGhlIEZpZWxkVHlwZVNpZ25hdHVyZSBoYW5kbGVkIGJ5IENsYXNzVmlzaXRvci52aXNpdEZpZWxkCi0gICAgICogb3IgTWV0aG9kVmlzaXRvci52aXNpdExvY2FsVmFyaWFibGUuCi0gICAgICovCi0gICAgU3RyaW5nIHJlbmFtZUZpZWxkU2lnbmF0dXJlKFN0cmluZyBzaWcpIHsKLSAgICAgICAgcmV0dXJuIHJlbmFtZVR5cGVTaWduYXR1cmUoc2lnKTsKLSAgICB9Ci0KLQotICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIC8vIE1ldGhvZHMgZnJvbSB0aGUgQ2xhc3NBZGFwdGVyCi0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdChpbnQgdmVyc2lvbiwgaW50IGFjY2VzcywgU3RyaW5nIG5hbWUsIFN0cmluZyBzaWduYXR1cmUsCi0gICAgICAgICAgICBTdHJpbmcgc3VwZXJOYW1lLCBTdHJpbmdbXSBpbnRlcmZhY2VzKSB7Ci0gICAgICAgIG5hbWUgPSByZW5hbWVJbnRlcm5hbFR5cGUobmFtZSk7Ci0gICAgICAgIHN1cGVyTmFtZSA9IHJlbmFtZUludGVybmFsVHlwZShzdXBlck5hbWUpOwotICAgICAgICBzaWduYXR1cmUgPSByZW5hbWVUeXBlU2lnbmF0dXJlKHNpZ25hdHVyZSk7Ci0gICAgICAgIGlmIChpbnRlcmZhY2VzICE9IG51bGwpIHsKLSAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW50ZXJmYWNlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIGludGVyZmFjZXNbaV0gPSByZW5hbWVJbnRlcm5hbFR5cGUoaW50ZXJmYWNlc1tpXSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBzdXBlci52aXNpdCh2ZXJzaW9uLCBhY2Nlc3MsIG5hbWUsIHNpZ25hdHVyZSwgc3VwZXJOYW1lLCBpbnRlcmZhY2VzKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdElubmVyQ2xhc3MoU3RyaW5nIG5hbWUsIFN0cmluZyBvdXRlck5hbWUsIFN0cmluZyBpbm5lck5hbWUsIGludCBhY2Nlc3MpIHsKLSAgICAgICAgbmFtZSA9IHJlbmFtZUludGVybmFsVHlwZShuYW1lKTsKLSAgICAgICAgb3V0ZXJOYW1lID0gcmVuYW1lSW50ZXJuYWxUeXBlKG91dGVyTmFtZSk7Ci0gICAgICAgIHN1cGVyLnZpc2l0SW5uZXJDbGFzcyhuYW1lLCBvdXRlck5hbWUsIGlubmVyTmFtZSwgYWNjZXNzKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdE91dGVyQ2xhc3MoU3RyaW5nIG93bmVyLCBTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MpIHsKLSAgICAgICAgc3VwZXIudmlzaXRPdXRlckNsYXNzKHJlbmFtZUludGVybmFsVHlwZShvd25lciksIG5hbWUsIHJlbmFtZVR5cGVEZXNjKGRlc2MpKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgTWV0aG9kVmlzaXRvciB2aXNpdE1ldGhvZChpbnQgYWNjZXNzLCBTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MsCi0gICAgICAgICAgICBTdHJpbmcgc2lnbmF0dXJlLCBTdHJpbmdbXSBleGNlcHRpb25zKSB7Ci0gICAgICAgIGRlc2MgPSByZW5hbWVNZXRob2REZXNjKGRlc2MpOwotICAgICAgICBzaWduYXR1cmUgPSByZW5hbWVUeXBlU2lnbmF0dXJlKHNpZ25hdHVyZSk7Ci0gICAgICAgIE1ldGhvZFZpc2l0b3IgbXcgPSBzdXBlci52aXNpdE1ldGhvZChhY2Nlc3MsIG5hbWUsIGRlc2MsIHNpZ25hdHVyZSwgZXhjZXB0aW9ucyk7Ci0gICAgICAgIHJldHVybiBuZXcgUmVuYW1lTWV0aG9kQWRhcHRlcihtdyk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEFubm90YXRpb25WaXNpdG9yIHZpc2l0QW5ub3RhdGlvbihTdHJpbmcgZGVzYywgYm9vbGVhbiB2aXNpYmxlKSB7Ci0gICAgICAgIGRlc2MgPSByZW5hbWVUeXBlRGVzYyhkZXNjKTsKLSAgICAgICAgcmV0dXJuIHN1cGVyLnZpc2l0QW5ub3RhdGlvbihkZXNjLCB2aXNpYmxlKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgRmllbGRWaXNpdG9yIHZpc2l0RmllbGQoaW50IGFjY2VzcywgU3RyaW5nIG5hbWUsIFN0cmluZyBkZXNjLAotICAgICAgICAgICAgU3RyaW5nIHNpZ25hdHVyZSwgT2JqZWN0IHZhbHVlKSB7Ci0gICAgICAgIGRlc2MgPSByZW5hbWVUeXBlRGVzYyhkZXNjKTsKLSAgICAgICAgcmV0dXJuIHN1cGVyLnZpc2l0RmllbGQoYWNjZXNzLCBuYW1lLCBkZXNjLCBzaWduYXR1cmUsIHZhbHVlKTsKLSAgICB9Ci0KLQotICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgLyoqCi0gICAgICogQSBtZXRob2QgdmlzaXRvciB0aGF0IHJlbmFtZXMgYWxsIHJlZmVyZW5jZXMgZnJvbSBhbiBvbGQgY2xhc3MgbmFtZSB0byBhIG5ldyBjbGFzcyBuYW1lLgotICAgICAqLwotICAgIHB1YmxpYyBjbGFzcyBSZW5hbWVNZXRob2RBZGFwdGVyIGV4dGVuZHMgTWV0aG9kVmlzaXRvciB7Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIENyZWF0ZXMgYSBtZXRob2QgdmlzaXRvciB0aGF0IHJlbmFtZXMgYWxsIHJlZmVyZW5jZXMgZnJvbSBhIGdpdmVuIG9sZCBuYW1lIHRvIGEgZ2l2ZW4gbmV3Ci0gICAgICAgICAqIG5hbWUuIFRoZSBtZXRob2QgdmlzaXRvciB3aWxsIGFsc28gcmVuYW1lIGFsbCBpbm5lciBjbGFzc2VzLgotICAgICAgICAgKiBUaGUgbmFtZXMgbXVzdCBiZSBmdWxsIHF1YWxpZmllZCBpbnRlcm5hbCBBU00gbmFtZXMgKGUuZy4gY29tL2JsYWgvTXlDbGFzcyRJbm5lckNsYXNzKS4KLSAgICAgICAgICovCi0gICAgICAgIHB1YmxpYyBSZW5hbWVNZXRob2RBZGFwdGVyKE1ldGhvZFZpc2l0b3IgbXYpIHsKLSAgICAgICAgICAgIHN1cGVyKE9wY29kZXMuQVNNNCwgbXYpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBBbm5vdGF0aW9uVmlzaXRvciB2aXNpdEFubm90YXRpb24oU3RyaW5nIGRlc2MsIGJvb2xlYW4gdmlzaWJsZSkgewotICAgICAgICAgICAgZGVzYyA9IHJlbmFtZVR5cGVEZXNjKGRlc2MpOwotCi0gICAgICAgICAgICByZXR1cm4gc3VwZXIudmlzaXRBbm5vdGF0aW9uKGRlc2MsIHZpc2libGUpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBBbm5vdGF0aW9uVmlzaXRvciB2aXNpdFBhcmFtZXRlckFubm90YXRpb24oaW50IHBhcmFtZXRlciwgU3RyaW5nIGRlc2MsIGJvb2xlYW4gdmlzaWJsZSkgewotICAgICAgICAgICAgZGVzYyA9IHJlbmFtZVR5cGVEZXNjKGRlc2MpOwotCi0gICAgICAgICAgICByZXR1cm4gc3VwZXIudmlzaXRQYXJhbWV0ZXJBbm5vdGF0aW9uKHBhcmFtZXRlciwgZGVzYywgdmlzaWJsZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgdmlzaXRUeXBlSW5zbihpbnQgb3Bjb2RlLCBTdHJpbmcgdHlwZSkgewotICAgICAgICAgICAgLy8gVGhlIHR5cGUgc29tZXRpbWVzIHR1cm5zIG91dCB0byBiZSBhIHR5cGUgZGVzY3JpcHRvci4gV2UgdHJ5IHRvIGRldGVjdCBpdCBhbmQgZml4LgotICAgICAgICAgICAgaWYgKHR5cGUuaW5kZXhPZignOycpID4gMCkgewotICAgICAgICAgICAgICAgIHR5cGUgPSByZW5hbWVUeXBlRGVzYyh0eXBlKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdHlwZSA9IHJlbmFtZUludGVybmFsVHlwZSh0eXBlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN1cGVyLnZpc2l0VHlwZUluc24ob3Bjb2RlLCB0eXBlKTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEZpZWxkSW5zbihpbnQgb3Bjb2RlLCBTdHJpbmcgb3duZXIsIFN0cmluZyBuYW1lLCBTdHJpbmcgZGVzYykgewotICAgICAgICAgICAgb3duZXIgPSByZW5hbWVJbnRlcm5hbFR5cGUob3duZXIpOwotICAgICAgICAgICAgZGVzYyA9IHJlbmFtZVR5cGVEZXNjKGRlc2MpOwotCi0gICAgICAgICAgICBzdXBlci52aXNpdEZpZWxkSW5zbihvcGNvZGUsIG93bmVyLCBuYW1lLCBkZXNjKTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdE1ldGhvZEluc24oaW50IG9wY29kZSwgU3RyaW5nIG93bmVyLCBTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MpIHsKLSAgICAgICAgICAgIC8vIFRoZSBvd25lciBzb21ldGltZXMgdHVybnMgb3V0IHRvIGJlIGEgdHlwZSBkZXNjcmlwdG9yLiBXZSB0cnkgdG8gZGV0ZWN0IGl0IGFuZCBmaXguCi0gICAgICAgICAgICBpZiAob3duZXIuaW5kZXhPZignOycpID4gMCkgewotICAgICAgICAgICAgICAgIG93bmVyID0gcmVuYW1lVHlwZURlc2Mob3duZXIpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBvd25lciA9IHJlbmFtZUludGVybmFsVHlwZShvd25lcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkZXNjID0gcmVuYW1lTWV0aG9kRGVzYyhkZXNjKTsKLQotICAgICAgICAgICAgc3VwZXIudmlzaXRNZXRob2RJbnNuKG9wY29kZSwgb3duZXIsIG5hbWUsIGRlc2MpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0TGRjSW5zbihPYmplY3QgY3N0KSB7Ci0gICAgICAgICAgICAvLyBJZiBjc3QgaXMgYSBUeXBlLCB0aGlzIG1lYW5zIHRoZSBjb2RlIGlzIHRyeWluZyB0byBwdWxsIHRoZSAuY2xhc3MgY29uc3RhbnQKLSAgICAgICAgICAgIC8vIGZvciB0aGlzIGNsYXNzLCBzbyBpdCBuZWVkcyB0byBiZSByZW5hbWVkIHRvby4KLSAgICAgICAgICAgIGlmIChjc3QgaW5zdGFuY2VvZiBUeXBlKSB7Ci0gICAgICAgICAgICAgICAgY3N0ID0gcmVuYW1lVHlwZUFzVHlwZSgoVHlwZSkgY3N0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN1cGVyLnZpc2l0TGRjSW5zbihjc3QpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0TXVsdGlBTmV3QXJyYXlJbnNuKFN0cmluZyBkZXNjLCBpbnQgZGltcykgewotICAgICAgICAgICAgZGVzYyA9IHJlbmFtZVR5cGVEZXNjKGRlc2MpOwotCi0gICAgICAgICAgICBzdXBlci52aXNpdE11bHRpQU5ld0FycmF5SW5zbihkZXNjLCBkaW1zKTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdFRyeUNhdGNoQmxvY2soTGFiZWwgc3RhcnQsIExhYmVsIGVuZCwgTGFiZWwgaGFuZGxlciwgU3RyaW5nIHR5cGUpIHsKLSAgICAgICAgICAgIHR5cGUgPSByZW5hbWVJbnRlcm5hbFR5cGUodHlwZSk7Ci0KLSAgICAgICAgICAgIHN1cGVyLnZpc2l0VHJ5Q2F0Y2hCbG9jayhzdGFydCwgZW5kLCBoYW5kbGVyLCB0eXBlKTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdExvY2FsVmFyaWFibGUoU3RyaW5nIG5hbWUsIFN0cmluZyBkZXNjLCBTdHJpbmcgc2lnbmF0dXJlLAotICAgICAgICAgICAgICAgIExhYmVsIHN0YXJ0LCBMYWJlbCBlbmQsIGludCBpbmRleCkgewotICAgICAgICAgICAgZGVzYyA9IHJlbmFtZVR5cGVEZXNjKGRlc2MpOwotICAgICAgICAgICAgc2lnbmF0dXJlID0gcmVuYW1lRmllbGRTaWduYXR1cmUoc2lnbmF0dXJlKTsKLQotICAgICAgICAgICAgc3VwZXIudmlzaXRMb2NhbFZhcmlhYmxlKG5hbWUsIGRlc2MsIHNpZ25hdHVyZSwgc3RhcnQsIGVuZCwgaW5kZXgpOwotICAgICAgICB9Ci0KLSAgICB9Ci0KLSAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgIHB1YmxpYyBjbGFzcyBSZW5hbWVTaWduYXR1cmVBZGFwdGVyIGV4dGVuZHMgU2lnbmF0dXJlVmlzaXRvciB7Ci0KLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBTaWduYXR1cmVWaXNpdG9yIG1TdjsKLQotICAgICAgICBwdWJsaWMgUmVuYW1lU2lnbmF0dXJlQWRhcHRlcihTaWduYXR1cmVWaXNpdG9yIHN2KSB7Ci0gICAgICAgICAgICBzdXBlcihPcGNvZGVzLkFTTTQpOwotICAgICAgICAgICAgbVN2ID0gc3Y7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgdmlzaXRDbGFzc1R5cGUoU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgICAgIG5hbWUgPSByZW5hbWVJbnRlcm5hbFR5cGUobmFtZSk7Ci0gICAgICAgICAgICBtU3YudmlzaXRDbGFzc1R5cGUobmFtZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgdmlzaXRJbm5lckNsYXNzVHlwZShTdHJpbmcgbmFtZSkgewotICAgICAgICAgICAgbmFtZSA9IHJlbmFtZUludGVybmFsVHlwZShuYW1lKTsKLSAgICAgICAgICAgIG1Tdi52aXNpdElubmVyQ2xhc3NUeXBlKG5hbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBTaWduYXR1cmVWaXNpdG9yIHZpc2l0QXJyYXlUeXBlKCkgewotICAgICAgICAgICAgU2lnbmF0dXJlVmlzaXRvciBzdiA9IG1Tdi52aXNpdEFycmF5VHlwZSgpOwotICAgICAgICAgICAgcmV0dXJuIG5ldyBSZW5hbWVTaWduYXR1cmVBZGFwdGVyKHN2KTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEJhc2VUeXBlKGNoYXIgZGVzY3JpcHRvcikgewotICAgICAgICAgICAgbVN2LnZpc2l0QmFzZVR5cGUoZGVzY3JpcHRvcik7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRDbGFzc0JvdW5kKCkgewotICAgICAgICAgICAgU2lnbmF0dXJlVmlzaXRvciBzdiA9IG1Tdi52aXNpdENsYXNzQm91bmQoKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgUmVuYW1lU2lnbmF0dXJlQWRhcHRlcihzdik7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgdmlzaXRFbmQoKSB7Ci0gICAgICAgICAgICBtU3YudmlzaXRFbmQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgU2lnbmF0dXJlVmlzaXRvciB2aXNpdEV4Y2VwdGlvblR5cGUoKSB7Ci0gICAgICAgICAgICBTaWduYXR1cmVWaXNpdG9yIHN2ID0gbVN2LnZpc2l0RXhjZXB0aW9uVHlwZSgpOwotICAgICAgICAgICAgcmV0dXJuIG5ldyBSZW5hbWVTaWduYXR1cmVBZGFwdGVyKHN2KTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEZvcm1hbFR5cGVQYXJhbWV0ZXIoU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgICAgIG1Tdi52aXNpdEZvcm1hbFR5cGVQYXJhbWV0ZXIobmFtZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRJbnRlcmZhY2UoKSB7Ci0gICAgICAgICAgICBTaWduYXR1cmVWaXNpdG9yIHN2ID0gbVN2LnZpc2l0SW50ZXJmYWNlKCk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IFJlbmFtZVNpZ25hdHVyZUFkYXB0ZXIoc3YpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBTaWduYXR1cmVWaXNpdG9yIHZpc2l0SW50ZXJmYWNlQm91bmQoKSB7Ci0gICAgICAgICAgICBTaWduYXR1cmVWaXNpdG9yIHN2ID0gbVN2LnZpc2l0SW50ZXJmYWNlQm91bmQoKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgUmVuYW1lU2lnbmF0dXJlQWRhcHRlcihzdik7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRQYXJhbWV0ZXJUeXBlKCkgewotICAgICAgICAgICAgU2lnbmF0dXJlVmlzaXRvciBzdiA9IG1Tdi52aXNpdFBhcmFtZXRlclR5cGUoKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgUmVuYW1lU2lnbmF0dXJlQWRhcHRlcihzdik7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRSZXR1cm5UeXBlKCkgewotICAgICAgICAgICAgU2lnbmF0dXJlVmlzaXRvciBzdiA9IG1Tdi52aXNpdFJldHVyblR5cGUoKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgUmVuYW1lU2lnbmF0dXJlQWRhcHRlcihzdik7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRTdXBlcmNsYXNzKCkgewotICAgICAgICAgICAgU2lnbmF0dXJlVmlzaXRvciBzdiA9IG1Tdi52aXNpdFN1cGVyY2xhc3MoKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgUmVuYW1lU2lnbmF0dXJlQWRhcHRlcihzdik7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgdmlzaXRUeXBlQXJndW1lbnQoKSB7Ci0gICAgICAgICAgICBtU3YudmlzaXRUeXBlQXJndW1lbnQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgU2lnbmF0dXJlVmlzaXRvciB2aXNpdFR5cGVBcmd1bWVudChjaGFyIHdpbGRjYXJkKSB7Ci0gICAgICAgICAgICBTaWduYXR1cmVWaXNpdG9yIHN2ID0gbVN2LnZpc2l0VHlwZUFyZ3VtZW50KHdpbGRjYXJkKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgUmVuYW1lU2lnbmF0dXJlQWRhcHRlcihzdik7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgdmlzaXRUeXBlVmFyaWFibGUoU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgICAgIG1Tdi52aXNpdFR5cGVWYXJpYWJsZShuYW1lKTsKLSAgICAgICAgfQotCi0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9Bc21BbmFseXplci5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9Bc21BbmFseXplci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTcyYTQwLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvQXNtQW5hbHl6ZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDg1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlOwotCi1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uQW5ub3RhdGlvblZpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uQXR0cmlidXRlOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkNsYXNzUmVhZGVyOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkNsYXNzVmlzaXRvcjsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5GaWVsZFZpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uTGFiZWw7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uTWV0aG9kVmlzaXRvcjsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5PcGNvZGVzOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLlR5cGU7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uc2lnbmF0dXJlLlNpZ25hdHVyZVJlYWRlcjsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5zaWduYXR1cmUuU2lnbmF0dXJlVmlzaXRvcjsKLQotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247Ci1pbXBvcnQgamF2YS51dGlsLkxpc3Q7Ci1pbXBvcnQgamF2YS51dGlsLk1hcDsKLWltcG9ydCBqYXZhLnV0aWwuTWFwLkVudHJ5OwotaW1wb3J0IGphdmEudXRpbC5TZXQ7Ci1pbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7Ci1pbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47Ci1pbXBvcnQgamF2YS51dGlsLnppcC5aaXBFbnRyeTsKLWltcG9ydCBqYXZhLnV0aWwuemlwLlppcEZpbGU7Ci0KLS8qKgotICogQW5hbHl6ZXMgdGhlIGlucHV0IEpBUiB1c2luZyB0aGUgQVNNIGphdmEgYnl0ZWNvZGUgbWFuaXB1bGF0aW9uIGxpYnJhcnkKLSAqIHRvIGxpc3QgdGhlIGRlc2lyZWQgY2xhc3NlcyBhbmQgdGhlaXIgZGVwZW5kZW5jaWVzLgotICovCi1wdWJsaWMgY2xhc3MgQXNtQW5hbHl6ZXIgewotCi0gICAgLy8gTm90ZTogYSBidW5jaCBvZiBzdHVmZiBoYXMgcGFja2FnZS1sZXZlbCBhY2Nlc3MgZm9yIHVuaXQgdGVzdHMuIENvbnNpZGVyIGl0IHByaXZhdGUuCi0KLSAgICAvKiogT3V0cHV0IGxvZ2dlci4gKi8KLSAgICBwcml2YXRlIGZpbmFsIExvZyBtTG9nOwotICAgIC8qKiBUaGUgaW5wdXQgc291cmNlIEpBUiB0byBwYXJzZS4gKi8KLSAgICBwcml2YXRlIGZpbmFsIExpc3Q8U3RyaW5nPiBtT3NTb3VyY2VKYXI7Ci0gICAgLyoqIFRoZSBnZW5lcmF0b3IgdG8gZmlsbCB3aXRoIHRoZSBjbGFzcyBsaXN0IGFuZCBkZXBlbmRlbmN5IGxpc3QuICovCi0gICAgcHJpdmF0ZSBmaW5hbCBBc21HZW5lcmF0b3IgbUdlbjsKLSAgICAvKiogS2VlcCBhbGwgY2xhc3NlcyB0aGF0IGRlcml2ZSBmcm9tIHRoZXNlIG9uZSAodGhlc2UgaW5jbHVkZWQpLiAqLwotICAgIHByaXZhdGUgZmluYWwgU3RyaW5nW10gbURlcml2ZUZyb207Ci0gICAgLyoqIEdsb2IgcGF0dGVybnMgb2YgY2xhc3NlcyB0byBrZWVwLCBlLmcuICJjb20uZm9vLioiICovCi0gICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdbXSBtSW5jbHVkZUdsb2JzOwotICAgIC8qKiBUaGUgc2V0IG9mIGNsYXNzZXMgdG8gZXhjbHVkZS4qLwotICAgIHByaXZhdGUgZmluYWwgU2V0PFN0cmluZz4gbUV4Y2x1ZGVkQ2xhc3NlczsKLQotICAgIC8qKgotICAgICAqIENyZWF0ZXMgYSBuZXcgYW5hbHl6ZXIuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gbG9nIFRoZSBsb2cgb3V0cHV0LgotICAgICAqIEBwYXJhbSBvc0phclBhdGggVGhlIGlucHV0IHNvdXJjZSBKQVJzIHRvIHBhcnNlLgotICAgICAqIEBwYXJhbSBnZW4gVGhlIGdlbmVyYXRvciB0byBmaWxsIHdpdGggdGhlIGNsYXNzIGxpc3QgYW5kIGRlcGVuZGVuY3kgbGlzdC4KLSAgICAgKiBAcGFyYW0gZGVyaXZlRnJvbSBLZWVwIGFsbCBjbGFzc2VzIHRoYXQgZGVyaXZlIGZyb20gdGhlc2Ugb25lICh0aGVzZSBpbmNsdWRlZCkuCi0gICAgICogQHBhcmFtIGluY2x1ZGVHbG9icyBHbG9iIHBhdHRlcm5zIG9mIGNsYXNzZXMgdG8ga2VlcCwgZS5nLiAiY29tLmZvby4qIgotICAgICAqICAgICAgICAoIioiIGRvZXMgbm90IG1hdGNoZXMgZG90cyB3aGlsc3QgIioqIiBkb2VzLCAiLiIgYW5kICIkIiBhcmUgaW50ZXJwcmV0ZWQgYXMtaXMpCi0gICAgICovCi0gICAgcHVibGljIEFzbUFuYWx5emVyKExvZyBsb2csIExpc3Q8U3RyaW5nPiBvc0phclBhdGgsIEFzbUdlbmVyYXRvciBnZW4sCi0gICAgICAgICAgICBTdHJpbmdbXSBkZXJpdmVGcm9tLCBTdHJpbmdbXSBpbmNsdWRlR2xvYnMsIFNldDxTdHJpbmc+IGV4Y2x1ZGVDbGFzc2VzKSB7Ci0gICAgICAgIG1Mb2cgPSBsb2c7Ci0gICAgICAgIG1HZW4gPSBnZW47Ci0gICAgICAgIG1Pc1NvdXJjZUphciA9IG9zSmFyUGF0aCAhPSBudWxsID8gb3NKYXJQYXRoIDogbmV3IEFycmF5TGlzdDxTdHJpbmc+KCk7Ci0gICAgICAgIG1EZXJpdmVGcm9tID0gZGVyaXZlRnJvbSAhPSBudWxsID8gZGVyaXZlRnJvbSA6IG5ldyBTdHJpbmdbMF07Ci0gICAgICAgIG1JbmNsdWRlR2xvYnMgPSBpbmNsdWRlR2xvYnMgIT0gbnVsbCA/IGluY2x1ZGVHbG9icyA6IG5ldyBTdHJpbmdbMF07Ci0gICAgICAgIG1FeGNsdWRlZENsYXNzZXMgPSBleGNsdWRlQ2xhc3NlczsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBTdGFydHMgdGhlIGFuYWx5c2lzIHVzaW5nIHBhcmFtZXRlcnMgZnJvbSB0aGUgY29uc3RydWN0b3IuCi0gICAgICogRmlsbHMgdGhlIGdlbmVyYXRvciB3aXRoIGNsYXNzZXMgJiBkZXBlbmRlbmNpZXMgZm91bmQuCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgYW5hbHl6ZSgpIHRocm93cyBJT0V4Y2VwdGlvbiwgTG9nQWJvcnRFeGNlcHRpb24gewotICAgICAgICBNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gemlwQ2xhc3NlcyA9IHBhcnNlWmlwKG1Pc1NvdXJjZUphcik7Ci0gICAgICAgIG1Mb2cuaW5mbygiRm91bmQgJWQgY2xhc3NlcyBpbiBpbnB1dCBKQVIlcy4iLCB6aXBDbGFzc2VzLnNpemUoKSwKLSAgICAgICAgICAgICAgICBtT3NTb3VyY2VKYXIuc2l6ZSgpID4gMSA/ICJzIiA6ICIiKTsKLQotICAgICAgICBNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gZm91bmQgPSBmaW5kSW5jbHVkZXMoemlwQ2xhc3Nlcyk7Ci0gICAgICAgIE1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBkZXBzID0gZmluZERlcHMoemlwQ2xhc3NlcywgZm91bmQpOwotCi0gICAgICAgIGlmIChtR2VuICE9IG51bGwpIHsKLSAgICAgICAgICAgIG1HZW4uc2V0S2VlcChmb3VuZCk7Ci0gICAgICAgICAgICBtR2VuLnNldERlcHMoZGVwcyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBQYXJzZXMgYSBKQVIgZmlsZSBhbmQgcmV0dXJucyBhIGxpc3Qgb2YgYWxsIGNsYXNzZXMgZm91bmRzIHVzaW5nIGEgbWFwCi0gICAgICogY2xhc3MgbmFtZSA9PiBBU00gQ2xhc3NSZWFkZXIuIENsYXNzIG5hbWVzIGFyZSBpbiB0aGUgZm9ybSAiYW5kcm9pZC52aWV3LlZpZXciLgotICAgICAqLwotICAgIE1hcDxTdHJpbmcsQ2xhc3NSZWFkZXI+IHBhcnNlWmlwKExpc3Q8U3RyaW5nPiBqYXJQYXRoTGlzdCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKLSAgICAgICAgVHJlZU1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBjbGFzc2VzID0gbmV3IFRyZWVNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4oKTsKLQotICAgICAgICBmb3IgKFN0cmluZyBqYXJQYXRoIDogamFyUGF0aExpc3QpIHsKLSAgICAgICAgICAgIFppcEZpbGUgemlwID0gbmV3IFppcEZpbGUoamFyUGF0aCk7Ci0gICAgICAgICAgICBFbnVtZXJhdGlvbjw/IGV4dGVuZHMgWmlwRW50cnk+IGVudHJpZXMgPSB6aXAuZW50cmllcygpOwotICAgICAgICAgICAgWmlwRW50cnkgZW50cnk7Ci0gICAgICAgICAgICB3aGlsZSAoZW50cmllcy5oYXNNb3JlRWxlbWVudHMoKSkgewotICAgICAgICAgICAgICAgIGVudHJ5ID0gZW50cmllcy5uZXh0RWxlbWVudCgpOwotICAgICAgICAgICAgICAgIGlmIChlbnRyeS5nZXROYW1lKCkuZW5kc1dpdGgoIi5jbGFzcyIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIENsYXNzUmVhZGVyIGNyID0gbmV3IENsYXNzUmVhZGVyKHppcC5nZXRJbnB1dFN0cmVhbShlbnRyeSkpOwotICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gY2xhc3NSZWFkZXJUb0NsYXNzTmFtZShjcik7Ci0gICAgICAgICAgICAgICAgICAgIGNsYXNzZXMucHV0KGNsYXNzTmFtZSwgY3IpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBjbGFzc2VzOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFV0aWxpdHkgdGhhdCByZXR1cm5zIHRoZSBmdWxseSBxdWFsaWZpZWQgYmluYXJ5IGNsYXNzIG5hbWUgZm9yIGEgQ2xhc3NSZWFkZXIuCi0gICAgICogRS5nLiBpdCByZXR1cm5zIHNvbWV0aGluZyBsaWtlIGFuZHJvaWQudmlldy5WaWV3LgotICAgICAqLwotICAgIHN0YXRpYyBTdHJpbmcgY2xhc3NSZWFkZXJUb0NsYXNzTmFtZShDbGFzc1JlYWRlciBjbGFzc1JlYWRlcikgewotICAgICAgICBpZiAoY2xhc3NSZWFkZXIgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4gY2xhc3NSZWFkZXIuZ2V0Q2xhc3NOYW1lKCkucmVwbGFjZSgnLycsICcuJyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBVdGlsaXR5IHRoYXQgcmV0dXJucyB0aGUgZnVsbHkgcXVhbGlmaWVkIGJpbmFyeSBjbGFzcyBuYW1lIGZyb20gYSBwYXRoLWxpa2UgRlFDTi4KLSAgICAgKiBFLmcuIGl0IHJldHVybnMgYW5kcm9pZC52aWV3LlZpZXcgZnJvbSBhbmRyb2lkL3ZpZXcvVmlldy4KLSAgICAgKi8KLSAgICBzdGF0aWMgU3RyaW5nIGludGVybmFsVG9CaW5hcnlDbGFzc05hbWUoU3RyaW5nIGNsYXNzTmFtZSkgewotICAgICAgICBpZiAoY2xhc3NOYW1lID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIGNsYXNzTmFtZS5yZXBsYWNlKCcvJywgJy4nKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFByb2Nlc3MgdGhlICJpbmNsdWRlcyIgYXJyYXlzLgotICAgICAqIDxwLz4KLSAgICAgKiBUaGlzIHVwZGF0ZXMgdGhlIGluX291dF9mb3VuZCBtYXAuCi0gICAgICovCi0gICAgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IGZpbmRJbmNsdWRlcyhNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gemlwQ2xhc3NlcykKLSAgICAgICAgICAgIHRocm93cyBMb2dBYm9ydEV4Y2VwdGlvbiB7Ci0gICAgICAgIFRyZWVNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gZm91bmQgPSBuZXcgVHJlZU1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPigpOwotCi0gICAgICAgIG1Mb2cuZGVidWcoIkZpbmQgY2xhc3NlcyB0byBpbmNsdWRlLiIpOwotCi0gICAgICAgIGZvciAoU3RyaW5nIHMgOiBtSW5jbHVkZUdsb2JzKSB7Ci0gICAgICAgICAgICBmaW5kR2xvYnMocywgemlwQ2xhc3NlcywgZm91bmQpOwotICAgICAgICB9Ci0gICAgICAgIGZvciAoU3RyaW5nIHMgOiBtRGVyaXZlRnJvbSkgewotICAgICAgICAgICAgZmluZENsYXNzZXNEZXJpdmluZ0Zyb20ocywgemlwQ2xhc3NlcywgZm91bmQpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGZvdW5kOwotICAgIH0KLQotCi0gICAgLyoqCi0gICAgICogVXNlcyBBU00gdG8gZmluZCB0aGUgY2xhc3MgcmVhZGVyIGZvciB0aGUgZ2l2ZW4gRlFDTiBjbGFzcyBuYW1lLgotICAgICAqIElmIGZvdW5kLCBpbnNlcnQgaXQgaW4gdGhlIGluX291dF9mb3VuZCBtYXAuCi0gICAgICogUmV0dXJucyB0aGUgY2xhc3MgcmVhZGVyIG9iamVjdC4KLSAgICAgKi8KLSAgICBDbGFzc1JlYWRlciBmaW5kQ2xhc3MoU3RyaW5nIGNsYXNzTmFtZSwgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IHppcENsYXNzZXMsCi0gICAgICAgICAgICBNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gaW5PdXRGb3VuZCkgdGhyb3dzIExvZ0Fib3J0RXhjZXB0aW9uIHsKLSAgICAgICAgQ2xhc3NSZWFkZXIgY2xhc3NSZWFkZXIgPSB6aXBDbGFzc2VzLmdldChjbGFzc05hbWUpOwotICAgICAgICBpZiAoY2xhc3NSZWFkZXIgPT0gbnVsbCkgewotICAgICAgICAgICAgdGhyb3cgbmV3IExvZ0Fib3J0RXhjZXB0aW9uKCJDbGFzcyAlcyBub3QgZm91bmQgYnkgQVNNIGluICVzIiwKLSAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lLCBtT3NTb3VyY2VKYXIpOwotICAgICAgICB9Ci0KLSAgICAgICAgaW5PdXRGb3VuZC5wdXQoY2xhc3NOYW1lLCBjbGFzc1JlYWRlcik7Ci0gICAgICAgIHJldHVybiBjbGFzc1JlYWRlcjsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBJbnNlcnQgaW4gdGhlIGluT3V0Rm91bmQgbWFwIGFsbCBjbGFzc2VzIGZvdW5kIGluIHppcENsYXNzZXMgdGhhdCBtYXRjaCB0aGUKLSAgICAgKiBnaXZlbiBnbG9iIHBhdHRlcm4uCi0gICAgICogPHAvPgotICAgICAqIFRoZSBnbG9iIHBhdHRlcm4gaXMgbm90IGEgcmVnZXhwLiBJdCBvbmx5IGFjY2VwdHMgdGhlICIqIiBrZXl3b3JkIHRvIG1lYW4KLSAgICAgKiAiYW55dGhpbmcgYnV0IGEgcGVyaW9kIi4gVGhlICIuIiBhbmQgIiQiIGNoYXJhY3RlcnMgbWF0Y2ggdGhlbXNlbHZlcy4KLSAgICAgKiBUaGUgIioqIiBrZXl3b3JkIG1lYW5zIGV2ZXJ5dGhpbmcgaW5jbHVkaW5nICIuIi4KLSAgICAgKiA8cC8+Ci0gICAgICogRXhhbXBsZXM6Ci0gICAgICogPHVsPgotICAgICAqIDxsaT5jb20uZm9vLiogbWF0Y2hlcyBhbGwgY2xhc3NlcyBpbiB0aGUgcGFja2FnZSBjb20uZm9vIGJ1dCBOT1Qgc3ViLXBhY2thZ2VzLgotICAgICAqIDxsaT5jb20uZm9vKi4qJEV2ZW50IG1hdGNoZXMgYWxsIGludGVybmFsIEV2ZW50IGNsYXNzZXMgaW4gYSBjb20uZm9vKi4qIGNsYXNzLgotICAgICAqIDwvdWw+Ci0gICAgICovCi0gICAgdm9pZCBmaW5kR2xvYnMoU3RyaW5nIGdsb2JQYXR0ZXJuLCBNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gemlwQ2xhc3NlcywKLSAgICAgICAgICAgIE1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBpbk91dEZvdW5kKSB0aHJvd3MgTG9nQWJvcnRFeGNlcHRpb24gewotICAgICAgICAvLyB0cmFuc2Zvcm1zIHRoZSBnbG9iIHBhdHRlcm4gaW4gYSByZWdleHA6Ci0gICAgICAgIC8vIC0gZXNjYXBlICIuIiB3aXRoICJcLiIKLSAgICAgICAgLy8gLSByZXBsYWNlICIqIiBieSAiW14uXSoiCi0gICAgICAgIC8vIC0gZXNjYXBlICIkIiB3aXRoICJcJCIKLSAgICAgICAgLy8gLSBhZGQgZW5kLW9mLWxpbmUgbWF0Y2ggJAotICAgICAgICBnbG9iUGF0dGVybiA9IGdsb2JQYXR0ZXJuLnJlcGxhY2VBbGwoIlxcJCIsICJcXFxcXFwkIik7Ci0gICAgICAgIGdsb2JQYXR0ZXJuID0gZ2xvYlBhdHRlcm4ucmVwbGFjZUFsbCgiXFwuIiwgIlxcXFwuIik7Ci0gICAgICAgIC8vIHByZXZlbnQgKiogZnJvbSBiZWluZyBhbHRlcmVkIGJ5IHRoZSBuZXh0IHJ1bGUsIHRoZW4gcHJvY2VzcyB0aGUgKiBydWxlIGFuZCBmaW5hbGx5Ci0gICAgICAgIC8vIHRoZSByZWFsICoqIHJ1bGUgKHdoaWNoIGlzIG5vdyBAKQotICAgICAgICBnbG9iUGF0dGVybiA9IGdsb2JQYXR0ZXJuLnJlcGxhY2VBbGwoIlxcKlxcKiIsICJAIik7Ci0gICAgICAgIGdsb2JQYXR0ZXJuID0gZ2xvYlBhdHRlcm4ucmVwbGFjZUFsbCgiXFwqIiwgIlteLl0qIik7Ci0gICAgICAgIGdsb2JQYXR0ZXJuID0gZ2xvYlBhdHRlcm4ucmVwbGFjZUFsbCgiQCIsICIuKiIpOwotICAgICAgICBnbG9iUGF0dGVybiArPSAiJCI7Ci0KLSAgICAgICAgUGF0dGVybiByZWdleHAgPSBQYXR0ZXJuLmNvbXBpbGUoZ2xvYlBhdHRlcm4pOwotCi0gICAgICAgIGZvciAoRW50cnk8U3RyaW5nLCBDbGFzc1JlYWRlcj4gZW50cnkgOiB6aXBDbGFzc2VzLmVudHJ5U2V0KCkpIHsKLSAgICAgICAgICAgIFN0cmluZyBjbGFzc19uYW1lID0gZW50cnkuZ2V0S2V5KCk7Ci0gICAgICAgICAgICBpZiAocmVnZXhwLm1hdGNoZXIoY2xhc3NfbmFtZSkubWF0Y2hlcygpKSB7Ci0gICAgICAgICAgICAgICAgZmluZENsYXNzKGNsYXNzX25hbWUsIHppcENsYXNzZXMsIGluT3V0Rm91bmQpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ2hlY2tzIGFsbCB0aGUgY2xhc3NlcyBkZWZpbmVkIGluIHRoZSBKYXJDbGFzc05hbWUgaW5zdGFuY2UgYW5kIHVzZXMgQkNFTCB0bwotICAgICAqIGRldGVybWluZSBpZiB0aGV5IGFyZSBkZXJpdmVkIGZyb20gdGhlIGdpdmVuIEZRQ04gc3VwZXIgY2xhc3MgbmFtZS4KLSAgICAgKiBJbnNlcnRzIHRoZSBzdXBlciBjbGFzcyBhbmQgYWxsIHRoZSBjbGFzcyBvYmplY3RzIGZvdW5kIGluIHRoZSBtYXAuCi0gICAgICovCi0gICAgdm9pZCBmaW5kQ2xhc3Nlc0Rlcml2aW5nRnJvbShTdHJpbmcgc3VwZXJfbmFtZSwgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IHppcENsYXNzZXMsCi0gICAgICAgICAgICBNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gaW5PdXRGb3VuZCkgdGhyb3dzIExvZ0Fib3J0RXhjZXB0aW9uIHsKLSAgICAgICAgZmluZENsYXNzKHN1cGVyX25hbWUsIHppcENsYXNzZXMsIGluT3V0Rm91bmQpOwotCi0gICAgICAgIGZvciAoRW50cnk8U3RyaW5nLCBDbGFzc1JlYWRlcj4gZW50cnkgOiB6aXBDbGFzc2VzLmVudHJ5U2V0KCkpIHsKLSAgICAgICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSBlbnRyeS5nZXRLZXkoKTsKLSAgICAgICAgICAgIGlmIChzdXBlcl9uYW1lLmVxdWFscyhjbGFzc05hbWUpKSB7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBDbGFzc1JlYWRlciBjbGFzc1JlYWRlciA9IGVudHJ5LmdldFZhbHVlKCk7Ci0gICAgICAgICAgICBDbGFzc1JlYWRlciBwYXJlbnRfY3IgPSBjbGFzc1JlYWRlcjsKLSAgICAgICAgICAgIHdoaWxlIChwYXJlbnRfY3IgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIFN0cmluZyBwYXJlbnRfbmFtZSA9IGludGVybmFsVG9CaW5hcnlDbGFzc05hbWUocGFyZW50X2NyLmdldFN1cGVyTmFtZSgpKTsKLSAgICAgICAgICAgICAgICBpZiAocGFyZW50X25hbWUgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICAvLyBub3QgZm91bmQKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdXBlcl9uYW1lLmVxdWFscyhwYXJlbnRfbmFtZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgaW5PdXRGb3VuZC5wdXQoY2xhc3NOYW1lLCBjbGFzc1JlYWRlcik7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwYXJlbnRfY3IgPSB6aXBDbGFzc2VzLmdldChwYXJlbnRfbmFtZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBJbnN0YW50aWF0ZXMgYSBuZXcgRGVwZW5kZW5jeVZpc2l0b3IuIFVzZWZ1bCBmb3IgdW5pdCB0ZXN0cy4KLSAgICAgKi8KLSAgICBEZXBlbmRlbmN5VmlzaXRvciBnZXRWaXNpdG9yKE1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiB6aXBDbGFzc2VzLAotICAgICAgICAgICAgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IGluS2VlcCwKLSAgICAgICAgICAgIE1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBvdXRLZWVwLAotICAgICAgICAgICAgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IGluRGVwcywKLSAgICAgICAgICAgIE1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBvdXREZXBzKSB7Ci0gICAgICAgIHJldHVybiBuZXcgRGVwZW5kZW5jeVZpc2l0b3IoemlwQ2xhc3NlcywgaW5LZWVwLCBvdXRLZWVwLCBpbkRlcHMsIG91dERlcHMpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEZpbmRzIGFsbCBkZXBlbmRlbmNpZXMgZm9yIGFsbCBjbGFzc2VzIGluIGtlZXBDbGFzc2VzIHdoaWNoIGFyZSBhbHNvCi0gICAgICogbGlzdGVkIGluIHppcENsYXNzZXMuIFJldHVybnMgYSBtYXAgb2YgYWxsIHRoZSBkZXBlbmRlbmNpZXMgZm91bmQuCi0gICAgICovCi0gICAgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IGZpbmREZXBzKE1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiB6aXBDbGFzc2VzLAotICAgICAgICAgICAgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IGluT3V0S2VlcENsYXNzZXMpIHsKLQotICAgICAgICBUcmVlTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IGRlcHMgPSBuZXcgVHJlZU1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPigpOwotICAgICAgICBUcmVlTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IG5ld19kZXBzID0gbmV3IFRyZWVNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4oKTsKLSAgICAgICAgVHJlZU1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBuZXdfa2VlcCA9IG5ldyBUcmVlTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+KCk7Ci0gICAgICAgIFRyZWVNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gdGVtcCA9IG5ldyBUcmVlTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+KCk7Ci0KLSAgICAgICAgRGVwZW5kZW5jeVZpc2l0b3IgdmlzaXRvciA9IGdldFZpc2l0b3IoemlwQ2xhc3NlcywKLSAgICAgICAgICAgICAgICBpbk91dEtlZXBDbGFzc2VzLCBuZXdfa2VlcCwKLSAgICAgICAgICAgICAgICBkZXBzLCBuZXdfZGVwcyk7Ci0KLSAgICAgICAgZm9yIChDbGFzc1JlYWRlciBjciA6IGluT3V0S2VlcENsYXNzZXMudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGNyLmFjY2VwdCh2aXNpdG9yLCAwIC8qIGZsYWdzICovKTsKLSAgICAgICAgfQotCi0gICAgICAgIHdoaWxlIChuZXdfZGVwcy5zaXplKCkgPiAwIHx8IG5ld19rZWVwLnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgIGRlcHMucHV0QWxsKG5ld19kZXBzKTsKLSAgICAgICAgICAgIGluT3V0S2VlcENsYXNzZXMucHV0QWxsKG5ld19rZWVwKTsKLQotICAgICAgICAgICAgdGVtcC5jbGVhcigpOwotICAgICAgICAgICAgdGVtcC5wdXRBbGwobmV3X2RlcHMpOwotICAgICAgICAgICAgdGVtcC5wdXRBbGwobmV3X2tlZXApOwotICAgICAgICAgICAgbmV3X2RlcHMuY2xlYXIoKTsKLSAgICAgICAgICAgIG5ld19rZWVwLmNsZWFyKCk7Ci0gICAgICAgICAgICBtTG9nLmRlYnVnKCJGb3VuZCAlMSRkIHRvIGtlZXAsICUyJGQgZGVwZW5kZW5jaWVzLiIsCi0gICAgICAgICAgICAgICAgICAgIGluT3V0S2VlcENsYXNzZXMuc2l6ZSgpLCBkZXBzLnNpemUoKSk7Ci0KLSAgICAgICAgICAgIGZvciAoQ2xhc3NSZWFkZXIgY3IgOiB0ZW1wLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICAgICAgY3IuYWNjZXB0KHZpc2l0b3IsIDAgLyogZmxhZ3MgKi8pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgbUxvZy5pbmZvKCJGb3VuZCAlMSRkIGNsYXNzZXMgdG8ga2VlcCwgJTIkZCBjbGFzcyBkZXBlbmRlbmNpZXMuIiwKLSAgICAgICAgICAgICAgICBpbk91dEtlZXBDbGFzc2VzLnNpemUoKSwgZGVwcy5zaXplKCkpOwotCi0gICAgICAgIHJldHVybiBkZXBzOwotICAgIH0KLQotCi0KLSAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICAvKioKLSAgICAgKiBWaXNpdG9yIHRvIGNvbGxlY3QgYWxsIHRoZSB0eXBlIGRlcGVuZGVuY2llcyBmcm9tIGEgY2xhc3MuCi0gICAgICovCi0gICAgcHVibGljIGNsYXNzIERlcGVuZGVuY3lWaXNpdG9yIGV4dGVuZHMgQ2xhc3NWaXNpdG9yIHsKLQotICAgICAgICAvKiogQWxsIGNsYXNzZXMgZm91bmQgaW4gdGhlIHNvdXJjZSBKQVIuICovCi0gICAgICAgIHByaXZhdGUgZmluYWwgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IG1aaXBDbGFzc2VzOwotICAgICAgICAvKiogQ2xhc3NlcyBmcm9tIHdoaWNoIGRlcGVuZGVuY2llcyBhcmUgdG8gYmUgZm91bmQuICovCi0gICAgICAgIHByaXZhdGUgZmluYWwgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IG1JbktlZXA7Ci0gICAgICAgIC8qKiBEZXBlbmRlbmNpZXMgYWxyZWFkeSBrbm93bi4gKi8KLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gbUluRGVwczsKLSAgICAgICAgLyoqIE5ldyBkZXBlbmRlbmNpZXMgZm91bmQgYnkgdGhpcyB2aXNpdG9yLiAqLwotICAgICAgICBwcml2YXRlIGZpbmFsIE1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBtT3V0RGVwczsKLSAgICAgICAgLyoqIE5ldyBjbGFzc2VzIHRvIGtlZXAgYXMtaXMgZm91bmQgYnkgdGhpcyB2aXNpdG9yLiAqLwotICAgICAgICBwcml2YXRlIGZpbmFsIE1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBtT3V0S2VlcDsKLQotICAgICAgICAvKioKLSAgICAgICAgICogQ3JlYXRlcyBhIG5ldyB2aXNpdG9yIHRoYXQgd2lsbCBmaW5kIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGZvciB0aGUgdmlzaXRlZCBjbGFzcy4KLSAgICAgICAgICogVHlwZXMgd2hpY2ggYXJlIGFscmVhZHkgaW4gdGhlIHppcENsYXNzZXMsIGtlZXBDbGFzc2VzIG9yIGluRGVwcyBhcmUgbm90IG1hcmtlZC4KLSAgICAgICAgICogTmV3IGRlcGVuZGVuY2llcyBhcmUgbWFya2VkIGluIG91dERlcHMuCi0gICAgICAgICAqCi0gICAgICAgICAqIEBwYXJhbSB6aXBDbGFzc2VzIEFsbCBjbGFzc2VzIGZvdW5kIGluIHRoZSBzb3VyY2UgSkFSLgotICAgICAgICAgKiBAcGFyYW0gaW5LZWVwIENsYXNzZXMgZnJvbSB3aGljaCBkZXBlbmRlbmNpZXMgYXJlIHRvIGJlIGZvdW5kLgotICAgICAgICAgKiBAcGFyYW0gaW5EZXBzIERlcGVuZGVuY2llcyBhbHJlYWR5IGtub3duLgotICAgICAgICAgKiBAcGFyYW0gb3V0RGVwcyBOZXcgZGVwZW5kZW5jaWVzIGZvdW5kIGJ5IHRoaXMgdmlzaXRvci4KLSAgICAgICAgICovCi0gICAgICAgIHB1YmxpYyBEZXBlbmRlbmN5VmlzaXRvcihNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gemlwQ2xhc3NlcywKLSAgICAgICAgICAgICAgICBNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gaW5LZWVwLAotICAgICAgICAgICAgICAgIE1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBvdXRLZWVwLAotICAgICAgICAgICAgICAgIE1hcDxTdHJpbmcsQ2xhc3NSZWFkZXI+IGluRGVwcywKLSAgICAgICAgICAgICAgICBNYXA8U3RyaW5nLENsYXNzUmVhZGVyPiBvdXREZXBzKSB7Ci0gICAgICAgICAgICBzdXBlcihPcGNvZGVzLkFTTTQpOwotICAgICAgICAgICAgbVppcENsYXNzZXMgPSB6aXBDbGFzc2VzOwotICAgICAgICAgICAgbUluS2VlcCA9IGluS2VlcDsKLSAgICAgICAgICAgIG1PdXRLZWVwID0gb3V0S2VlcDsKLSAgICAgICAgICAgIG1JbkRlcHMgPSBpbkRlcHM7Ci0gICAgICAgICAgICBtT3V0RGVwcyA9IG91dERlcHM7Ci0gICAgICAgIH0KLQotICAgICAgICAvKioKLSAgICAgICAgICogQ29uc2lkZXJzIHRoZSBnaXZlbiBjbGFzcyBuYW1lIGFzIGEgZGVwZW5kZW5jeS4KLSAgICAgICAgICogSWYgaXQgZG9lcywgYWRkIHRvIHRoZSBtT3V0RGVwcyBtYXAuCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgdm9pZCBjb25zaWRlck5hbWUoU3RyaW5nIGNsYXNzTmFtZSkgewotICAgICAgICAgICAgaWYgKGNsYXNzTmFtZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBjbGFzc05hbWUgPSBpbnRlcm5hbFRvQmluYXJ5Q2xhc3NOYW1lKGNsYXNzTmFtZSk7Ci0KLSAgICAgICAgICAgIC8vIGV4Y2x1ZGUgY2xhc3NlcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIGZvdW5kIG9yIGFyZSBtYXJrZWQgdG8gYmUgZXhjbHVkZWQKLSAgICAgICAgICAgIGlmIChtSW5LZWVwLmNvbnRhaW5zS2V5KGNsYXNzTmFtZSkgfHwKLSAgICAgICAgICAgICAgICAgICAgbU91dEtlZXAuY29udGFpbnNLZXkoY2xhc3NOYW1lKSB8fAotICAgICAgICAgICAgICAgICAgICBtSW5EZXBzLmNvbnRhaW5zS2V5KGNsYXNzTmFtZSkgfHwKLSAgICAgICAgICAgICAgICAgICAgbU91dERlcHMuY29udGFpbnNLZXkoY2xhc3NOYW1lKSB8fAotICAgICAgICAgICAgICAgICAgICBtRXhjbHVkZWRDbGFzc2VzLmNvbnRhaW5zKGdldEJhc2VOYW1lKGNsYXNzTmFtZSkpKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBleGNsdWRlIGNsYXNzZXMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIEpBUiBmaWxlIGJlaW5nIGV4YW1pbmVkCi0gICAgICAgICAgICBDbGFzc1JlYWRlciBjciA9IG1aaXBDbGFzc2VzLmdldChjbGFzc05hbWUpOwotICAgICAgICAgICAgaWYgKGNyID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgLy8gZXhjbHVkZSBjbGFzc2VzIHRoYXQgYXJlIHBhcnQgb2YgdGhlIGRlZmF1bHQgSlJFICh0aGUgb25lIGV4ZWN1dGluZyB0aGlzIHByb2dyYW0pCi0gICAgICAgICAgICAgICAgaWYgKGdldENsYXNzKCkuZ2V0Q2xhc3NMb2FkZXIoKS5sb2FkQ2xhc3MoY2xhc3NOYW1lKSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICAvLyBpZ25vcmUKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gYWNjZXB0IHRoaXMgY2xhc3M6Ci0gICAgICAgICAgICAvLyAtIGFuZHJvaWQgY2xhc3NlcyBhcmUgYWRkZWQgdG8gZGVwZW5kZW5jaWVzCi0gICAgICAgICAgICAvLyAtIG5vbi1hbmRyb2lkIGNsYXNzZXMgYXJlIGFkZGVkIHRvIHRoZSBsaXN0IG9mIGNsYXNzZXMgdG8ga2VlcCBhcy1pcyAodGhleSBkb24ndCBuZWVkCi0gICAgICAgICAgICAvLyAgIHRvIGJlIHN0dWJiZWQpLgotICAgICAgICAgICAgaWYgKGNsYXNzTmFtZS5pbmRleE9mKCJhbmRyb2lkIikgPj0gMCkgeyAgLy8gVE9ETyBtYWtlIGNvbmZpZ3VyYWJsZQotICAgICAgICAgICAgICAgIG1PdXREZXBzLnB1dChjbGFzc05hbWUsIGNyKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbU91dEtlZXAucHV0KGNsYXNzTmFtZSwgY3IpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIENvbnNpZGVycyB0aGlzIGFycmF5IG9mIG5hbWVzIHVzaW5nIGNvbnNpZGVyTmFtZSgpLgotICAgICAgICAgKi8KLSAgICAgICAgcHVibGljIHZvaWQgY29uc2lkZXJOYW1lcyhTdHJpbmdbXSBjbGFzc05hbWVzKSB7Ci0gICAgICAgICAgICBpZiAoY2xhc3NOYW1lcyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChTdHJpbmcgY2xhc3NOYW1lIDogY2xhc3NOYW1lcykgewotICAgICAgICAgICAgICAgICAgICBjb25zaWRlck5hbWUoY2xhc3NOYW1lKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvKioKLSAgICAgICAgICogQ29uc2lkZXJzIHRoaXMgc2lnbmF0dXJlIG9yIHR5cGUgc2lnbmF0dXJlIGJ5IGludm9raW5nIHRoZSB7QGxpbmsgU2lnbmF0dXJlVmlzaXRvcn0KLSAgICAgICAgICogb24gaXQuCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgdm9pZCBjb25zaWRlclNpZ25hdHVyZShTdHJpbmcgc2lnbmF0dXJlKSB7Ci0gICAgICAgICAgICBpZiAoc2lnbmF0dXJlICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBTaWduYXR1cmVSZWFkZXIgc3IgPSBuZXcgU2lnbmF0dXJlUmVhZGVyKHNpZ25hdHVyZSk7Ci0gICAgICAgICAgICAgICAgLy8gU2lnbmF0dXJlUmVhZGVyLmFjY2VwdCB3aWxsIGNhbGwgYWNjZXNzVHlwZSBzbyB3ZSBkb24ndCByZWFsbHkgaGF2ZQotICAgICAgICAgICAgICAgIC8vIHRvIGRpZmZlcmVudGlhdGUgd2hlcmUgdGhlIHNpZ25hdHVyZSBjb21lcyBmcm9tLgotICAgICAgICAgICAgICAgIHNyLmFjY2VwdChuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIENvbnNpZGVycyB0aGlzIHtAbGluayBUeXBlfS4gRm9yIGFycmF5cywgdGhlIGVsZW1lbnQgdHlwZSBpcyBjb25zaWRlcmVkLgotICAgICAgICAgKiBJZiB0aGUgdHlwZSBpcyBhbiBvYmplY3QsIGl0J3MgaW50ZXJuYWwgbmFtZSBpcyBjb25zaWRlcmVkLgotICAgICAgICAgKi8KLSAgICAgICAgcHVibGljIHZvaWQgY29uc2lkZXJUeXBlKFR5cGUgdCkgewotICAgICAgICAgICAgaWYgKHQgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGlmICh0LmdldFNvcnQoKSA9PSBUeXBlLkFSUkFZKSB7Ci0gICAgICAgICAgICAgICAgICAgIHQgPSB0LmdldEVsZW1lbnRUeXBlKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh0LmdldFNvcnQoKSA9PSBUeXBlLk9CSkVDVCkgewotICAgICAgICAgICAgICAgICAgICBjb25zaWRlck5hbWUodC5nZXRJbnRlcm5hbE5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIENvbnNpZGVycyBhIGRlc2NyaXB0b3Igc3RyaW5nLiBUaGUgZGVzY3JpcHRvciBpcyBjb252ZXJ0ZWQgdG8gYSB7QGxpbmsgVHlwZX0KLSAgICAgICAgICogYW5kIHRoZW4gY29uc2lkZXJUeXBlKCkgaXMgaW52b2tlZC4KLSAgICAgICAgICovCi0gICAgICAgIHB1YmxpYyB2b2lkIGNvbnNpZGVyRGVzYyhTdHJpbmcgZGVzYykgewotICAgICAgICAgICAgaWYgKGRlc2MgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIFR5cGUgdCA9IFR5cGUuZ2V0VHlwZShkZXNjKTsKLSAgICAgICAgICAgICAgICAgICAgY29uc2lkZXJUeXBlKHQpOwotICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZSwgbm90IGEgdmFsaWQgdHlwZS4KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBwcml2YXRlIFN0cmluZyBnZXRCYXNlTmFtZShTdHJpbmcgY2xhc3NOYW1lKSB7Ci0gICAgICAgICAgICBpbnQgcG9zID0gY2xhc3NOYW1lLmluZGV4T2YoJyQnKTsKLSAgICAgICAgICAgIGlmIChwb3MgPiAwKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNsYXNzTmFtZS5zdWJzdHJpbmcoMCwgcG9zKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBjbGFzc05hbWU7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgLy8gLS0tIENsYXNzVmlzaXRvciwgRmllbGRWaXNpdG9yCi0gICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgICAgIC8vIFZpc2l0cyBhIGNsYXNzIGhlYWRlcgotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgdmlzaXQoaW50IHZlcnNpb24sIGludCBhY2Nlc3MsIFN0cmluZyBuYW1lLAotICAgICAgICAgICAgICAgIFN0cmluZyBzaWduYXR1cmUsIFN0cmluZyBzdXBlck5hbWUsIFN0cmluZ1tdIGludGVyZmFjZXMpIHsKLSAgICAgICAgICAgIC8vIHNpZ25hdHVyZSBpcyB0aGUgc2lnbmF0dXJlIG9mIHRoaXMgY2xhc3MuIE1heSBiZSBudWxsIGlmIHRoZSBjbGFzcyBpcyBub3QgYSBnZW5lcmljCi0gICAgICAgICAgICAvLyBvbmUsIGFuZCBkb2VzIG5vdCBleHRlbmQgb3IgaW1wbGVtZW50IGdlbmVyaWMgY2xhc3NlcyBvciBpbnRlcmZhY2VzLgotCi0gICAgICAgICAgICBpZiAoc2lnbmF0dXJlICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBjb25zaWRlclNpZ25hdHVyZShzaWduYXR1cmUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBzdXBlck5hbWUgaXMgdGhlIGludGVybmFsIG9mIG5hbWUgb2YgdGhlIHN1cGVyIGNsYXNzIChzZWUgZ2V0SW50ZXJuYWxOYW1lKS4KLSAgICAgICAgICAgIC8vIEZvciBpbnRlcmZhY2VzLCB0aGUgc3VwZXIgY2xhc3MgaXMgT2JqZWN0LiBNYXkgYmUgbnVsbCBidXQgb25seSBmb3IgdGhlIE9iamVjdCBjbGFzcy4KLSAgICAgICAgICAgIGNvbnNpZGVyTmFtZShzdXBlck5hbWUpOwotCi0gICAgICAgICAgICAvLyBpbnRlcmZhY2VzIGlzIHRoZSBpbnRlcm5hbCBuYW1lcyBvZiB0aGUgY2xhc3MncyBpbnRlcmZhY2VzIChzZWUgZ2V0SW50ZXJuYWxOYW1lKS4KLSAgICAgICAgICAgIC8vIE1heSBiZSBudWxsLgotICAgICAgICAgICAgY29uc2lkZXJOYW1lcyhpbnRlcmZhY2VzKTsKLSAgICAgICAgfQotCi0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBBbm5vdGF0aW9uVmlzaXRvciB2aXNpdEFubm90YXRpb24oU3RyaW5nIGRlc2MsIGJvb2xlYW4gdmlzaWJsZSkgewotICAgICAgICAgICAgLy8gZGVzYyBpcyB0aGUgY2xhc3MgZGVzY3JpcHRvciBvZiB0aGUgYW5ub3RhdGlvbiBjbGFzcy4KLSAgICAgICAgICAgIGNvbnNpZGVyRGVzYyhkZXNjKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgTXlBbm5vdGF0aW9uVmlzaXRvcigpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0QXR0cmlidXRlKEF0dHJpYnV0ZSBhdHRyKSB7Ci0gICAgICAgICAgICAvLyBwYXNzCi0gICAgICAgIH0KLQotICAgICAgICAvLyBWaXNpdHMgdGhlIGVuZCBvZiBhIGNsYXNzCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEVuZCgpIHsKLSAgICAgICAgICAgIC8vIHBhc3MKLSAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGUgY2xhc3MgTXlGaWVsZFZpc2l0b3IgZXh0ZW5kcyBGaWVsZFZpc2l0b3IgewotCi0gICAgICAgICAgICBwdWJsaWMgTXlGaWVsZFZpc2l0b3IoKSB7Ci0gICAgICAgICAgICAgICAgc3VwZXIoT3Bjb2Rlcy5BU000KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgQW5ub3RhdGlvblZpc2l0b3IgdmlzaXRBbm5vdGF0aW9uKFN0cmluZyBkZXNjLCBib29sZWFuIHZpc2libGUpIHsKLSAgICAgICAgICAgICAgICAvLyBkZXNjIGlzIHRoZSBjbGFzcyBkZXNjcmlwdG9yIG9mIHRoZSBhbm5vdGF0aW9uIGNsYXNzLgotICAgICAgICAgICAgICAgIGNvbnNpZGVyRGVzYyhkZXNjKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE15QW5ub3RhdGlvblZpc2l0b3IoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEF0dHJpYnV0ZShBdHRyaWJ1dGUgYXR0cikgewotICAgICAgICAgICAgICAgIC8vIHBhc3MKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gVmlzaXRzIHRoZSBlbmQgb2YgYSBjbGFzcwotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEVuZCgpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzCi0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIEZpZWxkVmlzaXRvciB2aXNpdEZpZWxkKGludCBhY2Nlc3MsIFN0cmluZyBuYW1lLCBTdHJpbmcgZGVzYywKLSAgICAgICAgICAgICAgICBTdHJpbmcgc2lnbmF0dXJlLCBPYmplY3QgdmFsdWUpIHsKLSAgICAgICAgICAgIC8vIGRlc2MgaXMgdGhlIGZpZWxkJ3MgZGVzY3JpcHRvciAoc2VlIFR5cGUpLgotICAgICAgICAgICAgY29uc2lkZXJEZXNjKGRlc2MpOwotCi0gICAgICAgICAgICAvLyBzaWduYXR1cmUgaXMgdGhlIGZpZWxkJ3Mgc2lnbmF0dXJlLiBNYXkgYmUgbnVsbCBpZiB0aGUgZmllbGQncyB0eXBlIGRvZXMgbm90IHVzZQotICAgICAgICAgICAgLy8gZ2VuZXJpYyB0eXBlcy4KLSAgICAgICAgICAgIGNvbnNpZGVyU2lnbmF0dXJlKHNpZ25hdHVyZSk7Ci0KLSAgICAgICAgICAgIHJldHVybiBuZXcgTXlGaWVsZFZpc2l0b3IoKTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdElubmVyQ2xhc3MoU3RyaW5nIG5hbWUsIFN0cmluZyBvdXRlck5hbWUsIFN0cmluZyBpbm5lck5hbWUsIGludCBhY2Nlc3MpIHsKLSAgICAgICAgICAgIC8vIG5hbWUgaXMgdGhlIGludGVybmFsIG5hbWUgb2YgYW4gaW5uZXIgY2xhc3MgKHNlZSBnZXRJbnRlcm5hbE5hbWUpLgotICAgICAgICAgICAgY29uc2lkZXJOYW1lKG5hbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBNZXRob2RWaXNpdG9yIHZpc2l0TWV0aG9kKGludCBhY2Nlc3MsIFN0cmluZyBuYW1lLCBTdHJpbmcgZGVzYywKLSAgICAgICAgICAgICAgICBTdHJpbmcgc2lnbmF0dXJlLCBTdHJpbmdbXSBleGNlcHRpb25zKSB7Ci0gICAgICAgICAgICAvLyBkZXNjIGlzIHRoZSBtZXRob2QncyBkZXNjcmlwdG9yIChzZWUgVHlwZSkuCi0gICAgICAgICAgICBjb25zaWRlckRlc2MoZGVzYyk7Ci0gICAgICAgICAgICAvLyBzaWduYXR1cmUgaXMgdGhlIG1ldGhvZCdzIHNpZ25hdHVyZS4gTWF5IGJlIG51bGwgaWYgdGhlIG1ldGhvZCBwYXJhbWV0ZXJzLCByZXR1cm4KLSAgICAgICAgICAgIC8vIHR5cGUgYW5kIGV4Y2VwdGlvbnMgZG8gbm90IHVzZSBnZW5lcmljIHR5cGVzLgotICAgICAgICAgICAgY29uc2lkZXJTaWduYXR1cmUoc2lnbmF0dXJlKTsKLQotICAgICAgICAgICAgcmV0dXJuIG5ldyBNeU1ldGhvZFZpc2l0b3IoKTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdE91dGVyQ2xhc3MoU3RyaW5nIG93bmVyLCBTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MpIHsKLSAgICAgICAgICAgIC8vIHBhc3MKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdFNvdXJjZShTdHJpbmcgc291cmNlLCBTdHJpbmcgZGVidWcpIHsKLSAgICAgICAgICAgIC8vIHBhc3MKLSAgICAgICAgfQotCi0KLSAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgIC8vIC0tLSBNZXRob2RWaXNpdG9yCi0gICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgICAgIHByaXZhdGUgY2xhc3MgTXlNZXRob2RWaXNpdG9yIGV4dGVuZHMgTWV0aG9kVmlzaXRvciB7Ci0KLSAgICAgICAgICAgIHB1YmxpYyBNeU1ldGhvZFZpc2l0b3IoKSB7Ci0gICAgICAgICAgICAgICAgc3VwZXIoT3Bjb2Rlcy5BU000KTsKLSAgICAgICAgICAgIH0KLQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBBbm5vdGF0aW9uVmlzaXRvciB2aXNpdEFubm90YXRpb25EZWZhdWx0KCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTXlBbm5vdGF0aW9uVmlzaXRvcigpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0Q29kZSgpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIGZpZWxkIGluc3RydWN0aW9uCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0RmllbGRJbnNuKGludCBvcGNvZGUsIFN0cmluZyBvd25lciwgU3RyaW5nIG5hbWUsIFN0cmluZyBkZXNjKSB7Ci0gICAgICAgICAgICAgICAgLy8gbmFtZSBpcyB0aGUgZmllbGQncyBuYW1lLgotICAgICAgICAgICAgICAgIGNvbnNpZGVyTmFtZShuYW1lKTsKLSAgICAgICAgICAgICAgICAvLyBkZXNjIGlzIHRoZSBmaWVsZCdzIGRlc2NyaXB0b3IgKHNlZSBUeXBlKS4KLSAgICAgICAgICAgICAgICBjb25zaWRlckRlc2MoZGVzYyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRGcmFtZShpbnQgdHlwZSwgaW50IGxvY2FsLCBPYmplY3RbXSBsb2NhbDIsIGludCBzdGFjaywgT2JqZWN0W10gc3RhY2syKSB7Ci0gICAgICAgICAgICAgICAgLy8gcGFzcwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0SWluY0luc24oaW50IHZhciwgaW50IGluY3JlbWVudCkgewotICAgICAgICAgICAgICAgIC8vIHBhc3MgLS0gYW4gSUlOQyBpbnN0cnVjdGlvbgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0SW5zbihpbnQgb3Bjb2RlKSB7Ci0gICAgICAgICAgICAgICAgLy8gcGFzcyAtLSBhIHplcm8gb3BlcmFuZCBpbnN0cnVjdGlvbgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0SW50SW5zbihpbnQgb3Bjb2RlLCBpbnQgb3BlcmFuZCkgewotICAgICAgICAgICAgICAgIC8vIHBhc3MgLS0gYSBzaW5nbGUgaW50IG9wZXJhbmQgaW5zdHJ1Y3Rpb24KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEp1bXBJbnNuKGludCBvcGNvZGUsIExhYmVsIGxhYmVsKSB7Ci0gICAgICAgICAgICAgICAgLy8gcGFzcyAtLSBhIGp1bXAgaW5zdHJ1Y3Rpb24KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdExhYmVsKExhYmVsIGxhYmVsKSB7Ci0gICAgICAgICAgICAgICAgLy8gcGFzcyAtLSBhIGxhYmVsIHRhcmdldAotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBpbnN0cnVjdGlvbiB0byBsb2FkIGEgY29uc3RhbnQgZnJvbSB0aGUgc3RhY2sKLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRMZGNJbnNuKE9iamVjdCBjc3QpIHsKLSAgICAgICAgICAgICAgICBpZiAoY3N0IGluc3RhbmNlb2YgVHlwZSkgewotICAgICAgICAgICAgICAgICAgICBjb25zaWRlclR5cGUoKFR5cGUpIGNzdCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0TGluZU51bWJlcihpbnQgbGluZSwgTGFiZWwgc3RhcnQpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRMb2NhbFZhcmlhYmxlKFN0cmluZyBuYW1lLCBTdHJpbmcgZGVzYywKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNpZ25hdHVyZSwgTGFiZWwgc3RhcnQsIExhYmVsIGVuZCwgaW50IGluZGV4KSB7Ci0gICAgICAgICAgICAgICAgLy8gZGVzYyBpcyB0aGUgdHlwZSBkZXNjcmlwdG9yIG9mIHRoaXMgbG9jYWwgdmFyaWFibGUuCi0gICAgICAgICAgICAgICAgY29uc2lkZXJEZXNjKGRlc2MpOwotICAgICAgICAgICAgICAgIC8vIHNpZ25hdHVyZSBpcyB0aGUgdHlwZSBzaWduYXR1cmUgb2YgdGhpcyBsb2NhbCB2YXJpYWJsZS4gTWF5IGJlIG51bGwgaWYgdGhlIGxvY2FsCi0gICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgdHlwZSBkb2VzIG5vdCB1c2UgZ2VuZXJpYyB0eXBlcy4KLSAgICAgICAgICAgICAgICBjb25zaWRlclNpZ25hdHVyZShzaWduYXR1cmUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0TG9va3VwU3dpdGNoSW5zbihMYWJlbCBkZmx0LCBpbnRbXSBrZXlzLCBMYWJlbFtdIGxhYmVscykgewotICAgICAgICAgICAgICAgIC8vIHBhc3MgLS0gYSBsb29rdXAgc3dpdGNoIGluc3RydWN0aW9uCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRNYXhzKGludCBtYXhTdGFjaywgaW50IG1heExvY2FscykgewotICAgICAgICAgICAgICAgIC8vIHBhc3MKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gaW5zdHJ1Y3Rpb24gdGhhdCBpbnZva2VzIGEgbWV0aG9kCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0TWV0aG9kSW5zbihpbnQgb3Bjb2RlLCBTdHJpbmcgb3duZXIsIFN0cmluZyBuYW1lLCBTdHJpbmcgZGVzYykgewotCi0gICAgICAgICAgICAgICAgLy8gb3duZXIgaXMgdGhlIGludGVybmFsIG5hbWUgb2YgdGhlIG1ldGhvZCdzIG93bmVyIGNsYXNzCi0gICAgICAgICAgICAgICAgY29uc2lkZXJOYW1lKG93bmVyKTsKLSAgICAgICAgICAgICAgICAvLyBkZXNjIGlzIHRoZSBtZXRob2QncyBkZXNjcmlwdG9yIChzZWUgVHlwZSkuCi0gICAgICAgICAgICAgICAgY29uc2lkZXJEZXNjKGRlc2MpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBpbnN0cnVjdGlvbiBtdWx0aWFuZXdhcnJheSwgd2hhdGV2ZXIgdGhhdCBpcwotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdE11bHRpQU5ld0FycmF5SW5zbihTdHJpbmcgZGVzYywgaW50IGRpbXMpIHsKLQotICAgICAgICAgICAgICAgIC8vIGRlc2MgYW4gYXJyYXkgdHlwZSBkZXNjcmlwdG9yLgotICAgICAgICAgICAgICAgIGNvbnNpZGVyRGVzYyhkZXNjKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgQW5ub3RhdGlvblZpc2l0b3IgdmlzaXRQYXJhbWV0ZXJBbm5vdGF0aW9uKGludCBwYXJhbWV0ZXIsIFN0cmluZyBkZXNjLAotICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKLSAgICAgICAgICAgICAgICAvLyBkZXNjIGlzIHRoZSBjbGFzcyBkZXNjcmlwdG9yIG9mIHRoZSBhbm5vdGF0aW9uIGNsYXNzLgotICAgICAgICAgICAgICAgIGNvbnNpZGVyRGVzYyhkZXNjKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE15QW5ub3RhdGlvblZpc2l0b3IoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdFRhYmxlU3dpdGNoSW5zbihpbnQgbWluLCBpbnQgbWF4LCBMYWJlbCBkZmx0LCBMYWJlbC4uLiBsYWJlbHMpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzIC0tIHRhYmxlIHN3aXRjaCBpbnN0cnVjdGlvbgotCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRUcnlDYXRjaEJsb2NrKExhYmVsIHN0YXJ0LCBMYWJlbCBlbmQsIExhYmVsIGhhbmRsZXIsIFN0cmluZyB0eXBlKSB7Ci0gICAgICAgICAgICAgICAgLy8gdHlwZSBpcyB0aGUgaW50ZXJuYWwgbmFtZSBvZiB0aGUgdHlwZSBvZiBleGNlcHRpb25zIGhhbmRsZWQgYnkgdGhlIGhhbmRsZXIsCi0gICAgICAgICAgICAgICAgLy8gb3IgbnVsbCB0byBjYXRjaCBhbnkgZXhjZXB0aW9ucyAoZm9yICJmaW5hbGx5IiBibG9ja3MpLgotICAgICAgICAgICAgICAgIGNvbnNpZGVyTmFtZSh0eXBlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gdHlwZSBpbnN0cnVjdGlvbgotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdFR5cGVJbnNuKGludCBvcGNvZGUsIFN0cmluZyB0eXBlKSB7Ci0gICAgICAgICAgICAgICAgLy8gdHlwZSBpcyB0aGUgb3BlcmFuZCBvZiB0aGUgaW5zdHJ1Y3Rpb24gdG8gYmUgdmlzaXRlZC4gVGhpcyBvcGVyYW5kIG11c3QgYmUgdGhlCi0gICAgICAgICAgICAgICAgLy8gaW50ZXJuYWwgbmFtZSBvZiBhbiBvYmplY3Qgb3IgYXJyYXkgY2xhc3MuCi0gICAgICAgICAgICAgICAgY29uc2lkZXJOYW1lKHR5cGUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0VmFySW5zbihpbnQgb3Bjb2RlLCBpbnQgdmFyKSB7Ci0gICAgICAgICAgICAgICAgLy8gcGFzcyAtLSBsb2NhbCB2YXJpYWJsZSBpbnN0cnVjdGlvbgotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcHJpdmF0ZSBjbGFzcyBNeVNpZ25hdHVyZVZpc2l0b3IgZXh0ZW5kcyBTaWduYXR1cmVWaXNpdG9yIHsKLQotICAgICAgICAgICAgcHVibGljIE15U2lnbmF0dXJlVmlzaXRvcigpIHsKLSAgICAgICAgICAgICAgICBzdXBlcihPcGNvZGVzLkFTTTQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgIC8vIC0tLSBTaWduYXR1cmVWaXNpdG9yCi0gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbUN1cnJlbnRTaWduYXR1cmVDbGFzcyA9IG51bGw7Ci0KLSAgICAgICAgICAgIC8vIFN0YXJ0cyB0aGUgdmlzaXQgb2YgYSBzaWduYXR1cmUgY29ycmVzcG9uZGluZyB0byBhIGNsYXNzIG9yIGludGVyZmFjZSB0eXBlCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0Q2xhc3NUeXBlKFN0cmluZyBuYW1lKSB7Ci0gICAgICAgICAgICAgICAgbUN1cnJlbnRTaWduYXR1cmVDbGFzcyA9IG5hbWU7Ci0gICAgICAgICAgICAgICAgY29uc2lkZXJOYW1lKG5hbWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBWaXNpdHMgYW4gaW5uZXIgY2xhc3MKLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRJbm5lckNsYXNzVHlwZShTdHJpbmcgbmFtZSkgewotICAgICAgICAgICAgICAgIGlmIChtQ3VycmVudFNpZ25hdHVyZUNsYXNzICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgbUN1cnJlbnRTaWduYXR1cmVDbGFzcyArPSAiJCIgKyBuYW1lOwotICAgICAgICAgICAgICAgICAgICBjb25zaWRlck5hbWUobUN1cnJlbnRTaWduYXR1cmVDbGFzcyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBTaWduYXR1cmVWaXNpdG9yIHZpc2l0QXJyYXlUeXBlKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRCYXNlVHlwZShjaGFyIGRlc2NyaXB0b3IpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzIC0tIGEgcHJpbWl0aXZlIHR5cGUsIGlnbm9yZWQKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgU2lnbmF0dXJlVmlzaXRvciB2aXNpdENsYXNzQm91bmQoKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNeVNpZ25hdHVyZVZpc2l0b3IoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgU2lnbmF0dXJlVmlzaXRvciB2aXNpdEV4Y2VwdGlvblR5cGUoKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNeVNpZ25hdHVyZVZpc2l0b3IoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEZvcm1hbFR5cGVQYXJhbWV0ZXIoU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRJbnRlcmZhY2UoKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNeVNpZ25hdHVyZVZpc2l0b3IoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgU2lnbmF0dXJlVmlzaXRvciB2aXNpdEludGVyZmFjZUJvdW5kKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRQYXJhbWV0ZXJUeXBlKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRSZXR1cm5UeXBlKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRTdXBlcmNsYXNzKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRUeXBlQXJndW1lbnQoY2hhciB3aWxkY2FyZCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRUeXBlVmFyaWFibGUoU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRUeXBlQXJndW1lbnQoKSB7Ci0gICAgICAgICAgICAgICAgLy8gcGFzcwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLQotICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgLy8gLS0tIEFubm90YXRpb25WaXNpdG9yCi0gICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgICAgIHByaXZhdGUgY2xhc3MgTXlBbm5vdGF0aW9uVmlzaXRvciBleHRlbmRzIEFubm90YXRpb25WaXNpdG9yIHsKLQotICAgICAgICAgICAgcHVibGljIE15QW5ub3RhdGlvblZpc2l0b3IoKSB7Ci0gICAgICAgICAgICAgICAgc3VwZXIoT3Bjb2Rlcy5BU000KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gVmlzaXRzIGEgcHJpbWl0aXZlIHZhbHVlIG9mIGFuIGFubm90YXRpb24KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXQoU3RyaW5nIG5hbWUsIE9iamVjdCB2YWx1ZSkgewotICAgICAgICAgICAgICAgIC8vIHZhbHVlIGlzIHRoZSBhY3R1YWwgdmFsdWUsIHdob3NlIHR5cGUgbXVzdCBiZSBCeXRlLCBCb29sZWFuLCBDaGFyYWN0ZXIsIFNob3J0LAotICAgICAgICAgICAgICAgIC8vIEludGVnZXIsIExvbmcsIEZsb2F0LCBEb3VibGUsIFN0cmluZyBvciBUeXBlCi0gICAgICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVHlwZSkgewotICAgICAgICAgICAgICAgICAgICBjb25zaWRlclR5cGUoKFR5cGUpIHZhbHVlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIEFubm90YXRpb25WaXNpdG9yIHZpc2l0QW5ub3RhdGlvbihTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MpIHsKLSAgICAgICAgICAgICAgICAvLyBkZXNjIGlzIHRoZSBjbGFzcyBkZXNjcmlwdG9yIG9mIHRoZSBuZXN0ZWQgYW5ub3RhdGlvbiBjbGFzcy4KLSAgICAgICAgICAgICAgICBjb25zaWRlckRlc2MoZGVzYyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNeUFubm90YXRpb25WaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIEFubm90YXRpb25WaXNpdG9yIHZpc2l0QXJyYXkoU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE15QW5ub3RhdGlvblZpc2l0b3IoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEVudW0oU3RyaW5nIG5hbWUsIFN0cmluZyBkZXNjLCBTdHJpbmcgdmFsdWUpIHsKLSAgICAgICAgICAgICAgICAvLyBkZXNjIGlzIHRoZSBjbGFzcyBkZXNjcmlwdG9yIG9mIHRoZSBlbnVtZXJhdGlvbiBjbGFzcy4KLSAgICAgICAgICAgICAgICBjb25zaWRlckRlc2MoZGVzYyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0FzbUdlbmVyYXRvci5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9Bc21HZW5lcmF0b3IuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjEwMjU2MS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0FzbUdlbmVyYXRvci5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMzg0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGU7Ci0KLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1JlYWRlcjsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1Zpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uQ2xhc3NXcml0ZXI7Ci0KLWltcG9ydCBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOwotaW1wb3J0IGphdmEudXRpbC5BcnJheXM7Ci1pbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7Ci1pbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7Ci1pbXBvcnQgamF2YS51dGlsLk1hcDsKLWltcG9ydCBqYXZhLnV0aWwuTWFwLkVudHJ5OwotaW1wb3J0IGphdmEudXRpbC5TZXQ7Ci1pbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7Ci1pbXBvcnQgamF2YS51dGlsLmphci5KYXJFbnRyeTsKLWltcG9ydCBqYXZhLnV0aWwuamFyLkphck91dHB1dFN0cmVhbTsKLQotLyoqCi0gKiBDbGFzcyB0aGF0IGdlbmVyYXRlcyBhIG5ldyBKQVIgZnJvbSBhIGxpc3Qgb2YgY2xhc3Nlcywgc29tZSBvZiB3aGljaCBhcmUgdG8gYmUga2VwdCBhcy1pcwotICogYW5kIHNvbWUgb2Ygd2hpY2ggYXJlIHRvIGJlIHN0dWJiZWQgcGFydGlhbGx5IG9yIHRvdGFsbHkuCi0gKi8KLXB1YmxpYyBjbGFzcyBBc21HZW5lcmF0b3IgewotCi0gICAgLyoqIE91dHB1dCBsb2dnZXIuICovCi0gICAgcHJpdmF0ZSBmaW5hbCBMb2cgbUxvZzsKLSAgICAvKiogVGhlIHBhdGggb2YgdGhlIGRlc3RpbmF0aW9uIEpBUiB0byBjcmVhdGUuICovCi0gICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgbU9zRGVzdEphcjsKLSAgICAvKiogTGlzdCBvZiBjbGFzc2VzIHRvIGluamVjdCBpbiB0aGUgZmluYWwgSkFSIGZyb20gX3RoaXNfIGFyY2hpdmUuICovCi0gICAgcHJpdmF0ZSBmaW5hbCBDbGFzczw/PltdIG1JbmplY3RDbGFzc2VzOwotICAgIC8qKiBUaGUgc2V0IG9mIG1ldGhvZHMgdG8gc3R1YiBvdXQuICovCi0gICAgcHJpdmF0ZSBmaW5hbCBTZXQ8U3RyaW5nPiBtU3R1Yk1ldGhvZHM7Ci0gICAgLyoqIEFsbCBjbGFzc2VzIHRvIG91dHB1dCBhcy1pcywgZXhjZXB0IGlmIHRoZXkgaGF2ZSBuYXRpdmUgbWV0aG9kcy4gKi8KLSAgICBwcml2YXRlIE1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBtS2VlcDsKLSAgICAvKiogQWxsIGRlcGVuZGVuY2llcyB0aGF0IG11c3QgYmUgY29tcGxldGVseSBzdHViYmVkLiAqLwotICAgIHByaXZhdGUgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IG1EZXBzOwotICAgIC8qKiBDb3VudGVyIG9mIG51bWJlciBvZiBjbGFzc2VzIHJlbmFtZWQgZHVyaW5nIHRyYW5zZm9ybS4gKi8KLSAgICBwcml2YXRlIGludCBtUmVuYW1lQ291bnQ7Ci0gICAgLyoqIEZRQ04gTmFtZXMgb2YgdGhlIGNsYXNzZXMgdG8gcmVuYW1lOiBtYXAgb2xkLUZRQ04gPT4gbmV3LUZRQ04gKi8KLSAgICBwcml2YXRlIGZpbmFsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1SZW5hbWVDbGFzc2VzOwotICAgIC8qKiBGUUNOIE5hbWVzIG9mICJvbGQiIGNsYXNzZXMgdGhhdCB3ZXJlIE5PVCByZW5hbWVkLiBUaGlzIHN0YXJ0cyB3aXRoIHRoZSBmdWxsIGxpc3Qgb2YKLSAgICAgKiAgb2xkLUZRQ04gdG8gcmVuYW1lIGFuZCB0aGV5IGdldCBlcmFzZWQgYXMgdGhleSBnZXQgcmVuYW1lZC4gQXQgdGhlIGVuZCwgY2xhc3NlcyBzdGlsbAotICAgICAqICBsZWZ0IGhlcmUgYXJlIG5vdCBpbiB0aGUgY29kZSBiYXNlIGFueW1vcmUgYW5kIHRodXMgd2VyZSBub3QgcmVuYW1lZC4gKi8KLSAgICBwcml2YXRlIEhhc2hTZXQ8U3RyaW5nPiBtQ2xhc3Nlc05vdFJlbmFtZWQ7Ci0gICAgLyoqIEEgbWFwIHsgRlFDTiA9PiBzZXQgeyBsaXN0IG9mIHJldHVybiB0eXBlcyB0byBkZWxldGUgZnJvbSB0aGUgRlFDTiB9IH0uICovCi0gICAgcHJpdmF0ZSBIYXNoTWFwPFN0cmluZywgU2V0PFN0cmluZz4+IG1EZWxldGVSZXR1cm5zOwotICAgIC8qKiBBIG1hcCB7IEZRQ04gPT4gc2V0IHsgbWV0aG9kIG5hbWVzIH0gfSBvZiBtZXRob2RzIHRvIHJld3JpdGUgYXMgZGVsZWdhdGVzLgotICAgICAqICBUaGUgc3BlY2lhbCBuYW1lIHtAbGluayBEZWxlZ2F0ZUNsYXNzQWRhcHRlciNBTExfTkFUSVZFU30gY2FuIGJlIHVzZWQgYXMgaW4gaW50ZXJuYWwgc2V0LiAqLwotICAgIHByaXZhdGUgZmluYWwgSGFzaE1hcDxTdHJpbmcsIFNldDxTdHJpbmc+PiBtRGVsZWdhdGVNZXRob2RzOwotICAgIC8qKiBGUUNOIE5hbWVzIG9mIGNsYXNzZXMgdG8gcmVmYWN0b3IuIEFsbCByZWZlcmVuY2UgdG8gb2xkLUZRQ04gd2lsbCBiZSB1cGRhdGVkIHRvIG5ldy1GUUNOLgotICAgICAqIG1hcCBvbGQtRlFDTiA9PiBuZXctRlFDTiAqLwotICAgIHByaXZhdGUgZmluYWwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbVJlZmFjdG9yQ2xhc3NlczsKLQotICAgIC8qKgotICAgICAqIENyZWF0ZXMgYSBuZXcgZ2VuZXJhdG9yIHRoYXQgY2FuIGdlbmVyYXRlIHRoZSBvdXRwdXQgSkFSIHdpdGggdGhlIHN0dWJiZWQgY2xhc3Nlcy4KLSAgICAgKgotICAgICAqIEBwYXJhbSBsb2cgT3V0cHV0IGxvZ2dlci4KLSAgICAgKiBAcGFyYW0gb3NEZXN0SmFyIFRoZSBwYXRoIG9mIHRoZSBkZXN0aW5hdGlvbiBKQVIgdG8gY3JlYXRlLgotICAgICAqIEBwYXJhbSBjcmVhdGVJbmZvIENyZWF0aW9uIHBhcmFtZXRlcnMuIE11c3Qgbm90IGJlIG51bGwuCi0gICAgICovCi0gICAgcHVibGljIEFzbUdlbmVyYXRvcihMb2cgbG9nLCBTdHJpbmcgb3NEZXN0SmFyLCBJQ3JlYXRlSW5mbyBjcmVhdGVJbmZvKSB7Ci0gICAgICAgIG1Mb2cgPSBsb2c7Ci0gICAgICAgIG1Pc0Rlc3RKYXIgPSBvc0Rlc3RKYXI7Ci0gICAgICAgIG1JbmplY3RDbGFzc2VzID0gY3JlYXRlSW5mby5nZXRJbmplY3RlZENsYXNzZXMoKTsKLSAgICAgICAgbVN0dWJNZXRob2RzID0gbmV3IEhhc2hTZXQ8U3RyaW5nPihBcnJheXMuYXNMaXN0KGNyZWF0ZUluZm8uZ2V0T3ZlcnJpZGRlbk1ldGhvZHMoKSkpOwotCi0gICAgICAgIC8vIENyZWF0ZSB0aGUgbWFwL3NldCBvZiBtZXRob2RzIHRvIGNoYW5nZSB0byBkZWxlZ2F0ZXMKLSAgICAgICAgbURlbGVnYXRlTWV0aG9kcyA9IG5ldyBIYXNoTWFwPFN0cmluZywgU2V0PFN0cmluZz4+KCk7Ci0gICAgICAgIGZvciAoU3RyaW5nIHNpZ25hdHVyZSA6IGNyZWF0ZUluZm8uZ2V0RGVsZWdhdGVNZXRob2RzKCkpIHsKLSAgICAgICAgICAgIGludCBwb3MgPSBzaWduYXR1cmUuaW5kZXhPZignIycpOwotICAgICAgICAgICAgaWYgKHBvcyA8PSAwIHx8IHBvcyA+PSBzaWduYXR1cmUubGVuZ3RoKCkgLSAxKSB7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gYmluYXJ5VG9JbnRlcm5hbENsYXNzTmFtZShzaWduYXR1cmUuc3Vic3RyaW5nKDAsIHBvcykpOwotICAgICAgICAgICAgU3RyaW5nIG1ldGhvZE5hbWUgPSBzaWduYXR1cmUuc3Vic3RyaW5nKHBvcyArIDEpOwotICAgICAgICAgICAgU2V0PFN0cmluZz4gbWV0aG9kcyA9IG1EZWxlZ2F0ZU1ldGhvZHMuZ2V0KGNsYXNzTmFtZSk7Ci0gICAgICAgICAgICBpZiAobWV0aG9kcyA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgbWV0aG9kcyA9IG5ldyBIYXNoU2V0PFN0cmluZz4oKTsKLSAgICAgICAgICAgICAgICBtRGVsZWdhdGVNZXRob2RzLnB1dChjbGFzc05hbWUsIG1ldGhvZHMpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbWV0aG9kcy5hZGQobWV0aG9kTmFtZSk7Ci0gICAgICAgIH0KLSAgICAgICAgZm9yIChTdHJpbmcgY2xhc3NOYW1lIDogY3JlYXRlSW5mby5nZXREZWxlZ2F0ZUNsYXNzTmF0aXZlcygpKSB7Ci0gICAgICAgICAgICBjbGFzc05hbWUgPSBiaW5hcnlUb0ludGVybmFsQ2xhc3NOYW1lKGNsYXNzTmFtZSk7Ci0gICAgICAgICAgICBTZXQ8U3RyaW5nPiBtZXRob2RzID0gbURlbGVnYXRlTWV0aG9kcy5nZXQoY2xhc3NOYW1lKTsKLSAgICAgICAgICAgIGlmIChtZXRob2RzID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICBtZXRob2RzID0gbmV3IEhhc2hTZXQ8U3RyaW5nPigpOwotICAgICAgICAgICAgICAgIG1EZWxlZ2F0ZU1ldGhvZHMucHV0KGNsYXNzTmFtZSwgbWV0aG9kcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtZXRob2RzLmFkZChEZWxlZ2F0ZUNsYXNzQWRhcHRlci5BTExfTkFUSVZFUyk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBDcmVhdGUgdGhlIG1hcCBvZiBjbGFzc2VzIHRvIHJlbmFtZS4KLSAgICAgICAgbVJlbmFtZUNsYXNzZXMgPSBuZXcgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4oKTsKLSAgICAgICAgbUNsYXNzZXNOb3RSZW5hbWVkID0gbmV3IEhhc2hTZXQ8U3RyaW5nPigpOwotICAgICAgICBTdHJpbmdbXSByZW5hbWVDbGFzc2VzID0gY3JlYXRlSW5mby5nZXRSZW5hbWVkQ2xhc3NlcygpOwotICAgICAgICBpbnQgbiA9IHJlbmFtZUNsYXNzZXMubGVuZ3RoOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkgKz0gMikgewotICAgICAgICAgICAgYXNzZXJ0IGkgKyAxIDwgbjsKLSAgICAgICAgICAgIC8vIFRoZSBBU00gY2xhc3MgbmFtZXMgdXNlcyAiLyIgc2VwYXJhdG9ycywgd2hlcmVhcyByZWd1bGFyIEZRQ04gdXNlICIuIgotICAgICAgICAgICAgU3RyaW5nIG9sZEZxY24gPSBiaW5hcnlUb0ludGVybmFsQ2xhc3NOYW1lKHJlbmFtZUNsYXNzZXNbaV0pOwotICAgICAgICAgICAgU3RyaW5nIG5ld0ZxY24gPSBiaW5hcnlUb0ludGVybmFsQ2xhc3NOYW1lKHJlbmFtZUNsYXNzZXNbaSArIDFdKTsKLSAgICAgICAgICAgIG1SZW5hbWVDbGFzc2VzLnB1dChvbGRGcWNuLCBuZXdGcWNuKTsKLSAgICAgICAgICAgIG1DbGFzc2VzTm90UmVuYW1lZC5hZGQob2xkRnFjbik7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBDcmVhdGUgYSBtYXAgb2YgY2xhc3NlcyB0byBiZSByZWZhY3RvcmVkLgotICAgICAgICBtUmVmYWN0b3JDbGFzc2VzID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+KCk7Ci0gICAgICAgIFN0cmluZ1tdIHJlZmFjdG9yQ2xhc3NlcyA9IGNyZWF0ZUluZm8uZ2V0SmF2YVBrZ0NsYXNzZXMoKTsKLSAgICAgICAgbiA9IHJlZmFjdG9yQ2xhc3Nlcy5sZW5ndGg7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSArPSAyKSB7Ci0gICAgICAgICAgICBhc3NlcnQgaSArIDEgPCBuOwotICAgICAgICAgICAgU3RyaW5nIG9sZEZxY24gPSBiaW5hcnlUb0ludGVybmFsQ2xhc3NOYW1lKHJlZmFjdG9yQ2xhc3Nlc1tpXSk7Ci0gICAgICAgICAgICBTdHJpbmcgbmV3RnFjbiA9IGJpbmFyeVRvSW50ZXJuYWxDbGFzc05hbWUocmVmYWN0b3JDbGFzc2VzW2kgKyAxXSk7Ci0gICAgICAgICAgICBtUmVmYWN0b3JDbGFzc2VzLnB1dChvbGRGcWNuLCBuZXdGcWNuKTs7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBjcmVhdGUgdGhlIG1hcCBvZiByZW5hbWVkIGNsYXNzIC0+IHJldHVybiB0eXBlIG9mIG1ldGhvZCB0byBkZWxldGUuCi0gICAgICAgIG1EZWxldGVSZXR1cm5zID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBTZXQ8U3RyaW5nPj4oKTsKLSAgICAgICAgU3RyaW5nW10gZGVsZXRlUmV0dXJucyA9IGNyZWF0ZUluZm8uZ2V0RGVsZXRlUmV0dXJucygpOwotICAgICAgICBTZXQ8U3RyaW5nPiByZXR1cm5UeXBlcyA9IG51bGw7Ci0gICAgICAgIFN0cmluZyByZW5hbWVkQ2xhc3MgPSBudWxsOwotICAgICAgICBmb3IgKFN0cmluZyBjbGFzc05hbWUgOiBkZWxldGVSZXR1cm5zKSB7Ci0gICAgICAgICAgICAvLyBpZiB3ZSByZWFjaCB0aGUgZW5kIG9mIGEgc2VjdGlvbiwgYWRkIGl0IHRvIHRoZSBtYWluIG1hcAotICAgICAgICAgICAgaWYgKGNsYXNzTmFtZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHJldHVyblR5cGVzICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgbURlbGV0ZVJldHVybnMucHV0KHJlbmFtZWRDbGFzcywgcmV0dXJuVHlwZXMpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHJlbmFtZWRDbGFzcyA9IG51bGw7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIGlmIHRoZSByZW5hbWVkIGNsYXNzIGlzIG51bGwsIHRoaXMgaXMgdGhlIGJlZ2lubmluZyBvZiBhIHNlY3Rpb24KLSAgICAgICAgICAgIGlmIChyZW5hbWVkQ2xhc3MgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJlbmFtZWRDbGFzcyA9IGJpbmFyeVRvSW50ZXJuYWxDbGFzc05hbWUoY2xhc3NOYW1lKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8ganVzdCBhIHN0YW5kYXJkIHJldHVybiB0eXBlLCB3ZSBhZGQgaXQgdG8gdGhlIGxpc3QuCi0gICAgICAgICAgICBpZiAocmV0dXJuVHlwZXMgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJldHVyblR5cGVzID0gbmV3IEhhc2hTZXQ8U3RyaW5nPigpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuVHlwZXMuYWRkKGJpbmFyeVRvSW50ZXJuYWxDbGFzc05hbWUoY2xhc3NOYW1lKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGNsYXNzZXMgdGhhdCBoYXZlIG5vdCBiZWVuIHJlbmFtZWQgeWV0LgotICAgICAqIDxwLz4KLSAgICAgKiBUaGUgbmFtZXMgYXJlICJpbnRlcm5hbCBjbGFzcyBuYW1lcyIgcmF0aGVyIHRoYW4gRlFDTiwgaS5lLiB0aGV5IHVzZSAiLyIgaW5zdGVhZCAiLiIKLSAgICAgKiBhcyBwYWNrYWdlIHNlcGFyYXRvcnMuCi0gICAgICovCi0gICAgcHVibGljIFNldDxTdHJpbmc+IGdldENsYXNzZXNOb3RSZW5hbWVkKCkgewotICAgICAgICByZXR1cm4gbUNsYXNzZXNOb3RSZW5hbWVkOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFV0aWxpdHkgdGhhdCByZXR1cm5zIHRoZSBpbnRlcm5hbCBBU00gY2xhc3MgbmFtZSBmcm9tIGEgZnVsbHkgcXVhbGlmaWVkIGJpbmFyeSBjbGFzcwotICAgICAqIG5hbWUuIEUuZy4gaXQgcmV0dXJucyBhbmRyb2lkL3ZpZXcvVmlldyBmcm9tIGFuZHJvaWQudmlldy5WaWV3LgotICAgICAqLwotICAgIFN0cmluZyBiaW5hcnlUb0ludGVybmFsQ2xhc3NOYW1lKFN0cmluZyBjbGFzc05hbWUpIHsKLSAgICAgICAgaWYgKGNsYXNzTmFtZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiBjbGFzc05hbWUucmVwbGFjZSgnLicsICcvJyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiogU2V0cyB0aGUgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGFzLWlzLCBleGNlcHQgaWYgdGhleSBoYXZlIG5hdGl2ZSBtZXRob2RzICovCi0gICAgcHVibGljIHZvaWQgc2V0S2VlcChNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4ga2VlcCkgewotICAgICAgICBtS2VlcCA9IGtlZXA7Ci0gICAgfQotCi0gICAgLyoqIFNldHMgdGhlIG1hcCBvZiBkZXBlbmRlbmNpZXMgdGhhdCBtdXN0IGJlIGNvbXBsZXRlbHkgc3R1YmJlZCAqLwotICAgIHB1YmxpYyB2b2lkIHNldERlcHMoTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IGRlcHMpIHsKLSAgICAgICAgbURlcHMgPSBkZXBzOwotICAgIH0KLQotICAgIC8qKiBHZXRzIHRoZSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgYXMtaXMsIGV4Y2VwdCBpZiB0aGV5IGhhdmUgbmF0aXZlIG1ldGhvZHMgKi8KLSAgICBwdWJsaWMgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IGdldEtlZXAoKSB7Ci0gICAgICAgIHJldHVybiBtS2VlcDsKLSAgICB9Ci0KLSAgICAvKiogR2V0cyB0aGUgbWFwIG9mIGRlcGVuZGVuY2llcyB0aGF0IG11c3QgYmUgY29tcGxldGVseSBzdHViYmVkICovCi0gICAgcHVibGljIE1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBnZXREZXBzKCkgewotICAgICAgICByZXR1cm4gbURlcHM7Ci0gICAgfQotCi0gICAgLyoqIEdlbmVyYXRlcyB0aGUgZmluYWwgSkFSICovCi0gICAgcHVibGljIHZvaWQgZ2VuZXJhdGUoKSB0aHJvd3MgRmlsZU5vdEZvdW5kRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7Ci0gICAgICAgIFRyZWVNYXA8U3RyaW5nLCBieXRlW10+IGFsbCA9IG5ldyBUcmVlTWFwPFN0cmluZywgYnl0ZVtdPigpOwotCi0gICAgICAgIGZvciAoQ2xhc3M8Pz4gY2xhenogOiBtSW5qZWN0Q2xhc3NlcykgewotICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBjbGFzc1RvRW50cnlQYXRoKGNsYXp6KTsKLSAgICAgICAgICAgIElucHV0U3RyZWFtIGlzID0gQ2xhc3NMb2FkZXIuZ2V0U3lzdGVtUmVzb3VyY2VBc1N0cmVhbShuYW1lKTsKLSAgICAgICAgICAgIENsYXNzUmVhZGVyIGNyID0gbmV3IENsYXNzUmVhZGVyKGlzKTsKLSAgICAgICAgICAgIGJ5dGVbXSBiID0gdHJhbnNmb3JtKGNyLCB0cnVlIC8qIHN0dWJOYXRpdmVzT25seSAqLyk7Ci0gICAgICAgICAgICBuYW1lID0gY2xhc3NOYW1lVG9FbnRyeVBhdGgodHJhbnNmb3JtTmFtZShjci5nZXRDbGFzc05hbWUoKSkpOwotICAgICAgICAgICAgYWxsLnB1dChuYW1lLCBiKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAoRW50cnk8U3RyaW5nLCBDbGFzc1JlYWRlcj4gZW50cnkgOiBtRGVwcy5lbnRyeVNldCgpKSB7Ci0gICAgICAgICAgICBDbGFzc1JlYWRlciBjciA9IGVudHJ5LmdldFZhbHVlKCk7Ci0gICAgICAgICAgICBieXRlW10gYiA9IHRyYW5zZm9ybShjciwgdHJ1ZSAvKiBzdHViTmF0aXZlc09ubHkgKi8pOwotICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBjbGFzc05hbWVUb0VudHJ5UGF0aCh0cmFuc2Zvcm1OYW1lKGNyLmdldENsYXNzTmFtZSgpKSk7Ci0gICAgICAgICAgICBhbGwucHV0KG5hbWUsIGIpOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChFbnRyeTxTdHJpbmcsIENsYXNzUmVhZGVyPiBlbnRyeSA6IG1LZWVwLmVudHJ5U2V0KCkpIHsKLSAgICAgICAgICAgIENsYXNzUmVhZGVyIGNyID0gZW50cnkuZ2V0VmFsdWUoKTsKLSAgICAgICAgICAgIGJ5dGVbXSBiID0gdHJhbnNmb3JtKGNyLCB0cnVlIC8qIHN0dWJOYXRpdmVzT25seSAqLyk7Ci0gICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGNsYXNzTmFtZVRvRW50cnlQYXRoKHRyYW5zZm9ybU5hbWUoY3IuZ2V0Q2xhc3NOYW1lKCkpKTsKLSAgICAgICAgICAgIGFsbC5wdXQobmFtZSwgYik7Ci0gICAgICAgIH0KLQotICAgICAgICBtTG9nLmluZm8oIiMgZGVwcyBjbGFzc2VzOiAlZCIsIG1EZXBzLnNpemUoKSk7Ci0gICAgICAgIG1Mb2cuaW5mbygiIyBrZWVwIGNsYXNzZXM6ICVkIiwgbUtlZXAuc2l6ZSgpKTsKLSAgICAgICAgbUxvZy5pbmZvKCIjIHJlbmFtZWQgICAgIDogJWQiLCBtUmVuYW1lQ291bnQpOwotCi0gICAgICAgIGNyZWF0ZUphcihuZXcgRmlsZU91dHB1dFN0cmVhbShtT3NEZXN0SmFyKSwgYWxsKTsKLSAgICAgICAgbUxvZy5pbmZvKCJDcmVhdGVkIEpBUiBmaWxlICVzIiwgbU9zRGVzdEphcik7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogV3JpdGVzIHRoZSBKQVIgZmlsZS4KLSAgICAgKgotICAgICAqIEBwYXJhbSBvdXRTdHJlYW0gVGhlIGZpbGUgb3V0cHV0IHN0cmVhbSB3ZXJlIHRvIHdyaXRlIHRoZSBKQVIuCi0gICAgICogQHBhcmFtIGFsbCBUaGUgbWFwIG9mIGFsbCBjbGFzc2VzIHRvIG91dHB1dC4KLSAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uIGlmIGFuIEkvTyBlcnJvciBoYXMgb2NjdXJyZWQKLSAgICAgKi8KLSAgICB2b2lkIGNyZWF0ZUphcihGaWxlT3V0cHV0U3RyZWFtIG91dFN0cmVhbSwgTWFwPFN0cmluZyxieXRlW10+IGFsbCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKLSAgICAgICAgSmFyT3V0cHV0U3RyZWFtIGphciA9IG5ldyBKYXJPdXRwdXRTdHJlYW0ob3V0U3RyZWFtKTsKLSAgICAgICAgZm9yIChFbnRyeTxTdHJpbmcsIGJ5dGVbXT4gZW50cnkgOiBhbGwuZW50cnlTZXQoKSkgewotICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBlbnRyeS5nZXRLZXkoKTsKLSAgICAgICAgICAgIEphckVudHJ5IGphcl9lbnRyeSA9IG5ldyBKYXJFbnRyeShuYW1lKTsKLSAgICAgICAgICAgIGphci5wdXROZXh0RW50cnkoamFyX2VudHJ5KTsKLSAgICAgICAgICAgIGphci53cml0ZShlbnRyeS5nZXRWYWx1ZSgpKTsKLSAgICAgICAgICAgIGphci5jbG9zZUVudHJ5KCk7Ci0gICAgICAgIH0KLSAgICAgICAgamFyLmZsdXNoKCk7Ci0gICAgICAgIGphci5jbG9zZSgpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFV0aWxpdHkgbWV0aG9kIHRoYXQgY29udmVydHMgYSBmdWxseSBxdWFsaWZpZWQgamF2YSBuYW1lIGludG8gYSBKQVIgZW50cnkgcGF0aAotICAgICAqIGUuZy4gZm9yIHRoZSBpbnB1dCAiYW5kcm9pZC52aWV3LlZpZXciIGl0IHJldHVybnMgImFuZHJvaWQvdmlldy9WaWV3LmNsYXNzIgotICAgICAqLwotICAgIFN0cmluZyBjbGFzc05hbWVUb0VudHJ5UGF0aChTdHJpbmcgY2xhc3NOYW1lKSB7Ci0gICAgICAgIHJldHVybiBjbGFzc05hbWUucmVwbGFjZUFsbCgiXFwuIiwgIi8iKS5jb25jYXQoIi5jbGFzcyIpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFV0aWxpdHkgbWV0aG9kIHRvIGdldCB0aGUgSkFSIGVudHJ5IHBhdGggZnJvbSBhIENsYXNzIG5hbWUuCi0gICAgICogZS5nLiBpdCByZXR1cm5zIHNvbWV0aW5nIGxpa2UgImNvbS9mb28vT3V0ZXJDbGFzcyRJbm5lckNsYXNzMSRJbm5lckNsYXNzMi5jbGFzcyIKLSAgICAgKi8KLSAgICBwcml2YXRlIFN0cmluZyBjbGFzc1RvRW50cnlQYXRoKENsYXNzPD8+IGNsYXp6KSB7Ci0gICAgICAgIFN0cmluZyBuYW1lID0gIiI7Ci0gICAgICAgIENsYXNzPD8+IHBhcmVudDsKLSAgICAgICAgd2hpbGUgKChwYXJlbnQgPSBjbGF6ei5nZXRFbmNsb3NpbmdDbGFzcygpKSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBuYW1lID0gIiQiICsgY2xhenouZ2V0U2ltcGxlTmFtZSgpICsgbmFtZTsKLSAgICAgICAgICAgIGNsYXp6ID0gcGFyZW50OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBjbGFzc05hbWVUb0VudHJ5UGF0aChjbGF6ei5nZXRDYW5vbmljYWxOYW1lKCkgKyBuYW1lKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBUcmFuc2Zvcm1zIGEgY2xhc3MuCi0gICAgICogPHAvPgotICAgICAqIFRoZXJlIGFyZSAzIGtpbmQgb2YgdHJhbnNmb3JtYXRpb25zOgotICAgICAqCi0gICAgICogMS0gRm9yICJtb2NrIiBkZXBlbmRlbmNpZXMgY2xhc3Nlcywgd2Ugd2FudCB0byByZW1vdmUgYWxsIGNvZGUgZnJvbSBtZXRob2RzIGFuZCByZXBsYWNlCi0gICAgICogYnkgYSBzdHViLiBOYXRpdmUgbWV0aG9kcyBtdXN0IGJlIGltcGxlbWVudGVkIHdpdGggdGhpcyBzdHViIHRvby4gQWJzdHJhY3QgbWV0aG9kcyBhcmUKLSAgICAgKiBsZWZ0IGludGFjdC4gTW9kaWZpZWQgY2xhc3NlcyBtdXN0IGJlIG92ZXJyaWRhYmxlIChub24tcHJpdmF0ZSwgbm9uLWZpbmFsKS4KLSAgICAgKiBOYXRpdmUgbWV0aG9kcyBtdXN0IGJlIG1hZGUgbm9uLWZpbmFsLCBub24tcHJpdmF0ZS4KLSAgICAgKgotICAgICAqIDItIEZvciAia2VlcCIgY2xhc3Nlcywgd2Ugd2FudCB0byByZXdyaXRlIGFsbCBuYXRpdmUgbWV0aG9kcyBhcyBpbmRpY2F0ZWQgYWJvdmUuCi0gICAgICogSWYgYSBjbGFzcyBoYXMgbmF0aXZlIG1ldGhvZHMsIGl0IG11c3QgYWxzbyBiZSBtYWRlIG5vbi1wcml2YXRlLCBub24tZmluYWwuCi0gICAgICoKLSAgICAgKiBOb3RlIHRoYXQgdW5mb3J0dW5hdGVseSBzdGF0aWMgbWV0aG9kcyBjYW5ub3QgYmUgY2hhbmdlZCB0byBub24tc3RhdGljIChzaW5jZSBzdGF0aWMgYW5kCi0gICAgICogbm9uLXN0YXRpYyBhcmUgaW52b2tlZCBkaWZmZXJlbnRseS4pCi0gICAgICovCi0gICAgYnl0ZVtdIHRyYW5zZm9ybShDbGFzc1JlYWRlciBjciwgYm9vbGVhbiBzdHViTmF0aXZlc09ubHkpIHsKLQotICAgICAgICBib29sZWFuIGhhc05hdGl2ZU1ldGhvZHMgPSBoYXNOYXRpdmVNZXRob2RzKGNyKTsKLQotICAgICAgICAvLyBHZXQgdGhlIGNsYXNzIG5hbWUsIGFzIGFuIGludGVybmFsIG5hbWUgKGUuZy4gY29tL2FuZHJvaWQvU29tZUNsYXNzJElubmVyQ2xhc3MpCi0gICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSBjci5nZXRDbGFzc05hbWUoKTsKLQotICAgICAgICBTdHJpbmcgbmV3TmFtZSA9IHRyYW5zZm9ybU5hbWUoY2xhc3NOYW1lKTsKLSAgICAgICAgLy8gdHJhbnNmb3JtTmFtZSByZXR1cm5zIGl0cyBpbnB1dCBhcmd1bWVudCBpZiB0aGVyZSdzIG5vIG5lZWQgdG8gcmVuYW1lIHRoZSBjbGFzcwotICAgICAgICBpZiAobmV3TmFtZSAhPSBjbGFzc05hbWUpIHsKLSAgICAgICAgICAgIG1SZW5hbWVDb3VudCsrOwotICAgICAgICAgICAgLy8gVGhpcyBjbGFzcyBpcyBiZWluZyByZW5hbWVkLCBzbyByZW1vdmUgaXQgZnJvbSB0aGUgbGlzdCBvZiBjbGFzc2VzIG5vdCByZW5hbWVkLgotICAgICAgICAgICAgbUNsYXNzZXNOb3RSZW5hbWVkLnJlbW92ZShjbGFzc05hbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgbUxvZy5kZWJ1ZygiVHJhbnNmb3JtICVzJXMlcyVzIiwgY2xhc3NOYW1lLAotICAgICAgICAgICAgICAgIG5ld05hbWUgPT0gY2xhc3NOYW1lID8gIiIgOiAiIChyZW5hbWVkIHRvICIgKyBuZXdOYW1lICsgIikiLAotICAgICAgICAgICAgICAgIGhhc05hdGl2ZU1ldGhvZHMgPyAiIC0tIGhhcyBuYXRpdmVzIiA6ICIiLAotICAgICAgICAgICAgICAgIHN0dWJOYXRpdmVzT25seSA/ICIgLS0gc3R1YiBuYXRpdmVzIG9ubHkiIDogIiIpOwotCi0gICAgICAgIC8vIFJld3JpdGUgdGhlIG5ldyBjbGFzcyBmcm9tIHNjcmF0Y2gsIHdpdGhvdXQgcmV1c2luZyB0aGUgY29uc3RhbnQgcG9vbCBmcm9tIHRoZQotICAgICAgICAvLyBvcmlnaW5hbCBjbGFzcyByZWFkZXIuCi0gICAgICAgIENsYXNzV3JpdGVyIGN3ID0gbmV3IENsYXNzV3JpdGVyKENsYXNzV3JpdGVyLkNPTVBVVEVfTUFYUyk7Ci0KLSAgICAgICAgQ2xhc3NWaXNpdG9yIGN2ID0gbmV3IFJlZmFjdG9yQ2xhc3NBZGFwdGVyKGN3LCBtUmVmYWN0b3JDbGFzc2VzKTsKLSAgICAgICAgaWYgKG5ld05hbWUgIT0gY2xhc3NOYW1lKSB7Ci0gICAgICAgICAgICBjdiA9IG5ldyBSZW5hbWVDbGFzc0FkYXB0ZXIoY3YsIGNsYXNzTmFtZSwgbmV3TmFtZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBjdiA9IG5ldyBUcmFuc2Zvcm1DbGFzc0FkYXB0ZXIobUxvZywgbVN0dWJNZXRob2RzLAotICAgICAgICAgICAgICAgIG1EZWxldGVSZXR1cm5zLmdldChjbGFzc05hbWUpLAotICAgICAgICAgICAgICAgIG5ld05hbWUsIGN2LAotICAgICAgICAgICAgICAgIHN0dWJOYXRpdmVzT25seSwgc3R1Yk5hdGl2ZXNPbmx5IHx8IGhhc05hdGl2ZU1ldGhvZHMpOwotCi0gICAgICAgIFNldDxTdHJpbmc+IGRlbGVnYXRlTWV0aG9kcyA9IG1EZWxlZ2F0ZU1ldGhvZHMuZ2V0KGNsYXNzTmFtZSk7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZU1ldGhvZHMgIT0gbnVsbCAmJiAhZGVsZWdhdGVNZXRob2RzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgLy8gSWYgZGVsZWdhdGVNZXRob2RzIG9ubHkgY29udGFpbnMgb25lIGVudHJ5IEFMTF9OQVRJVkVTIGFuZCB0aGUgY2xhc3MgaXMKLSAgICAgICAgICAgIC8vIGtub3duIHRvIGhhdmUgbm8gbmF0aXZlIG1ldGhvZHMsIGp1c3Qgc2tpcCB0aGlzIHN0ZXAuCi0gICAgICAgICAgICBpZiAoaGFzTmF0aXZlTWV0aG9kcyB8fAotICAgICAgICAgICAgICAgICAgICAhKGRlbGVnYXRlTWV0aG9kcy5zaXplKCkgPT0gMSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGVnYXRlTWV0aG9kcy5jb250YWlucyhEZWxlZ2F0ZUNsYXNzQWRhcHRlci5BTExfTkFUSVZFUykpKSB7Ci0gICAgICAgICAgICAgICAgY3YgPSBuZXcgRGVsZWdhdGVDbGFzc0FkYXB0ZXIobUxvZywgY3YsIGNsYXNzTmFtZSwgZGVsZWdhdGVNZXRob2RzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGNyLmFjY2VwdChjdiwgMCAvKiBmbGFncyAqLyk7Ci0gICAgICAgIHJldHVybiBjdy50b0J5dGVBcnJheSgpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFNob3VsZCB0aGlzIGNsYXNzIGJlIHJlbmFtZWQsIHRoaXMgcmV0dXJucyB0aGUgbmV3IG5hbWUuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZQotICAgICAqIG9yaWdpbmFsIG5hbWUuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gY2xhc3NOYW1lIFRoZSBpbnRlcm5hbCBBU00gbmFtZSBvZiB0aGUgY2xhc3MgdGhhdCBtYXkgaGF2ZSB0byBiZSByZW5hbWVkCi0gICAgICogQHJldHVybiBBIG5ldyB0cmFuc2Zvcm1lZCBuYW1lIG9yIHRoZSBvcmlnaW5hbCBpbnB1dCBhcmd1bWVudC4KLSAgICAgKi8KLSAgICBTdHJpbmcgdHJhbnNmb3JtTmFtZShTdHJpbmcgY2xhc3NOYW1lKSB7Ci0gICAgICAgIFN0cmluZyBuZXdOYW1lID0gbVJlbmFtZUNsYXNzZXMuZ2V0KGNsYXNzTmFtZSk7Ci0gICAgICAgIGlmIChuZXdOYW1lICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBuZXdOYW1lOwotICAgICAgICB9Ci0gICAgICAgIGludCBwb3MgPSBjbGFzc05hbWUuaW5kZXhPZignJCcpOwotICAgICAgICBpZiAocG9zID4gMCkgewotICAgICAgICAgICAgLy8gSXMgdGhpcyBhbiBpbm5lciBjbGFzcyBvZiBhIHJlbmFtZWQgY2xhc3M/Ci0gICAgICAgICAgICBTdHJpbmcgYmFzZSA9IGNsYXNzTmFtZS5zdWJzdHJpbmcoMCwgcG9zKTsKLSAgICAgICAgICAgIG5ld05hbWUgPSBtUmVuYW1lQ2xhc3Nlcy5nZXQoYmFzZSk7Ci0gICAgICAgICAgICBpZiAobmV3TmFtZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ld05hbWUgKyBjbGFzc05hbWUuc3Vic3RyaW5nKHBvcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gY2xhc3NOYW1lOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdHJ1ZSBpZiBhIGNsYXNzIGhhcyBhbnkgbmF0aXZlIG1ldGhvZHMuCi0gICAgICovCi0gICAgYm9vbGVhbiBoYXNOYXRpdmVNZXRob2RzKENsYXNzUmVhZGVyIGNyKSB7Ci0gICAgICAgIENsYXNzSGFzTmF0aXZlVmlzaXRvciBjdiA9IG5ldyBDbGFzc0hhc05hdGl2ZVZpc2l0b3IoKTsKLSAgICAgICAgY3IuYWNjZXB0KGN2LCAwIC8qIGZsYWdzICovKTsKLSAgICAgICAgcmV0dXJuIGN2Lmhhc05hdGl2ZU1ldGhvZHMoKTsKLSAgICB9Ci0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvQ2xhc3NIYXNOYXRpdmVWaXNpdG9yLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0NsYXNzSGFzTmF0aXZlVmlzaXRvci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzk1NWZkLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvQ2xhc3NIYXNOYXRpdmVWaXNpdG9yLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZTsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5WaXNpYmxlRm9yVGVzdGluZzsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuVmlzaWJsZUZvclRlc3RpbmcuVmlzaWJpbGl0eTsKLQotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkFubm90YXRpb25WaXNpdG9yOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkF0dHJpYnV0ZTsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1Zpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uRmllbGRWaXNpdG9yOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLk1ldGhvZFZpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uT3Bjb2RlczsKLQotLyoqCi0gKiBJbmRpY2F0ZXMgaWYgYSBjbGFzcyBjb250YWlucyBhbnkgbmF0aXZlIG1ldGhvZHMuCi0gKi8KLXB1YmxpYyBjbGFzcyBDbGFzc0hhc05hdGl2ZVZpc2l0b3IgZXh0ZW5kcyBDbGFzc1Zpc2l0b3IgewotICAgIHB1YmxpYyBDbGFzc0hhc05hdGl2ZVZpc2l0b3IoKSB7Ci0gICAgICAgIHN1cGVyKE9wY29kZXMuQVNNNCk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBib29sZWFuIG1IYXNOYXRpdmVNZXRob2RzID0gZmFsc2U7Ci0KLSAgICBwdWJsaWMgYm9vbGVhbiBoYXNOYXRpdmVNZXRob2RzKCkgewotICAgICAgICByZXR1cm4gbUhhc05hdGl2ZU1ldGhvZHM7Ci0gICAgfQotCi0gICAgQFZpc2libGVGb3JUZXN0aW5nKHZpc2liaWxpdHk9VmlzaWJpbGl0eS5QUklWQVRFKQotICAgIHByb3RlY3RlZCB2b2lkIHNldEhhc05hdGl2ZU1ldGhvZHMoYm9vbGVhbiBoYXNOYXRpdmVNZXRob2RzLCBTdHJpbmcgbWV0aG9kTmFtZSkgewotICAgICAgICBtSGFzTmF0aXZlTWV0aG9kcyA9IGhhc05hdGl2ZU1ldGhvZHM7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXQoaW50IHZlcnNpb24sIGludCBhY2Nlc3MsIFN0cmluZyBuYW1lLCBTdHJpbmcgc2lnbmF0dXJlLAotICAgICAgICAgICAgU3RyaW5nIHN1cGVyTmFtZSwgU3RyaW5nW10gaW50ZXJmYWNlcykgewotICAgICAgICAvLyBwYXNzCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEFubm90YXRpb25WaXNpdG9yIHZpc2l0QW5ub3RhdGlvbihTdHJpbmcgZGVzYywgYm9vbGVhbiB2aXNpYmxlKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRBdHRyaWJ1dGUoQXR0cmlidXRlIGF0dHIpIHsKLSAgICAgICAgLy8gcGFzcwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0RW5kKCkgewotICAgICAgICAvLyBwYXNzCi0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEZpZWxkVmlzaXRvciB2aXNpdEZpZWxkKGludCBhY2Nlc3MsIFN0cmluZyBuYW1lLCBTdHJpbmcgZGVzYywKLSAgICAgICAgICAgIFN0cmluZyBzaWduYXR1cmUsIE9iamVjdCB2YWx1ZSkgewotICAgICAgICAvLyBwYXNzCi0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0SW5uZXJDbGFzcyhTdHJpbmcgbmFtZSwgU3RyaW5nIG91dGVyTmFtZSwKLSAgICAgICAgICAgIFN0cmluZyBpbm5lck5hbWUsIGludCBhY2Nlc3MpIHsKLSAgICAgICAgLy8gcGFzcwotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBNZXRob2RWaXNpdG9yIHZpc2l0TWV0aG9kKGludCBhY2Nlc3MsIFN0cmluZyBuYW1lLCBTdHJpbmcgZGVzYywKLSAgICAgICAgICAgIFN0cmluZyBzaWduYXR1cmUsIFN0cmluZ1tdIGV4Y2VwdGlvbnMpIHsKLSAgICAgICAgaWYgKChhY2Nlc3MgJiBPcGNvZGVzLkFDQ19OQVRJVkUpICE9IDApIHsKLSAgICAgICAgICAgIHNldEhhc05hdGl2ZU1ldGhvZHModHJ1ZSwgbmFtZSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRPdXRlckNsYXNzKFN0cmluZyBvd25lciwgU3RyaW5nIG5hbWUsIFN0cmluZyBkZXNjKSB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdFNvdXJjZShTdHJpbmcgc291cmNlLCBTdHJpbmcgZGVidWcpIHsKLSAgICAgICAgLy8gcGFzcwotICAgIH0KLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9DcmVhdGVJbmZvLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0NyZWF0ZUluZm8uamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjY3NzllMy4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0NyZWF0ZUluZm8uamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDI0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlOwotCi1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5qYXZhLkF1dG9DbG9zZWFibGU7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmphdmEuQ2hhcnNldHM7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmphdmEuSW50ZWdyYWxUb1N0cmluZzsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuamF2YS5PYmplY3RzOwotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5qYXZhLlVuc2FmZUJ5dGVTZXF1ZW5jZTsKLQotLyoqCi0gKiBEZXNjcmliZXMgdGhlIHdvcmsgdG8gYmUgZG9uZSBieSB7QGxpbmsgQXNtR2VuZXJhdG9yfS4KLSAqLwotcHVibGljIGZpbmFsIGNsYXNzIENyZWF0ZUluZm8gaW1wbGVtZW50cyBJQ3JlYXRlSW5mbyB7Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGNsYXNzIGZyb20gbGF5b3V0bGliX2NyZWF0ZSB0byBpbmplY3QgaW4gbGF5b3V0bGliLgotICAgICAqIFRoZSBsaXN0IGNhbiBiZSBlbXB0eSBidXQgbXVzdCBub3QgYmUgbnVsbC4KLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQ2xhc3M8Pz5bXSBnZXRJbmplY3RlZENsYXNzZXMoKSB7Ci0gICAgICAgIHJldHVybiBJTkpFQ1RFRF9DTEFTU0VTOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgbWV0aG9kcyB0byByZXdyaXRlIGFzIGRlbGVnYXRlcy4KLSAgICAgKiBUaGUgbGlzdCBjYW4gYmUgZW1wdHkgYnV0IG11c3Qgbm90IGJlIG51bGwuCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZ1tdIGdldERlbGVnYXRlTWV0aG9kcygpIHsKLSAgICAgICAgcmV0dXJuIERFTEVHQVRFX01FVEhPRFM7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBjbGFzc2VzIG9uIHdoaWNoIHRvIGRlbGVnYXRlIGFsbCBuYXRpdmUgbWV0aG9kcy4KLSAgICAgKiBUaGUgbGlzdCBjYW4gYmUgZW1wdHkgYnV0IG11c3Qgbm90IGJlIG51bGwuCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZ1tdIGdldERlbGVnYXRlQ2xhc3NOYXRpdmVzKCkgewotICAgICAgICByZXR1cm4gREVMRUdBVEVfQ0xBU1NfTkFUSVZFUzsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIFRoZSBsaXN0IG9mIG1ldGhvZHMgdG8gc3R1YiBvdXQuIEVhY2ggZW50cnkgbXVzdCBiZSBpbiB0aGUgZm9ybQotICAgICAqICJwYWNrYWdlLnBhY2thZ2UuT3V0ZXJDbGFzcyRJbm5lckNsYXNzI01ldGhvZE5hbWUiLgotICAgICAqIFRoZSBsaXN0IGNhbiBiZSBlbXB0eSBidXQgbXVzdCBub3QgYmUgbnVsbC4KLSAgICAgKiA8cC8+Ci0gICAgICogVGhpcyB1c2FnZSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIG1ldGhvZCAnZGVsZWdhdGVzJyBpbnN0ZWFkLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRPdmVycmlkZGVuTWV0aG9kcygpIHsKLSAgICAgICAgcmV0dXJuIE9WRVJSSURERU5fTUVUSE9EUzsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGNsYXNzZXMgdG8gcmVuYW1lLCBtdXN0IGJlIGFuIGV2ZW4gbGlzdDogdGhlIGJpbmFyeSBGUUNOCi0gICAgICogb2YgY2xhc3MgdG8gcmVwbGFjZSBmb2xsb3dlZCBieSB0aGUgbmV3IEZRQ04uCi0gICAgICogVGhlIGxpc3QgY2FuIGJlIGVtcHR5IGJ1dCBtdXN0IG5vdCBiZSBudWxsLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRSZW5hbWVkQ2xhc3NlcygpIHsKLSAgICAgICAgcmV0dXJuIFJFTkFNRURfQ0xBU1NFUzsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGNsYXNzZXMgZm9yIHdoaWNoIHRoZSBtZXRob2RzIHJldHVybmluZyB0aGVtIHNob3VsZCBiZSBkZWxldGVkLgotICAgICAqIFRoZSBhcnJheSBjb250YWlucyBhIGxpc3Qgb2YgbnVsbCB0ZXJtaW5hdGVkIHNlY3Rpb24gc3RhcnRpbmcgd2l0aCB0aGUgbmFtZSBvZiB0aGUgY2xhc3MKLSAgICAgKiB0byByZW5hbWUgaW4gd2hpY2ggdGhlIG1ldGhvZHMgYXJlIGRlbGV0ZWQsIGZvbGxvd2VkIGJ5IGEgbGlzdCBvZiByZXR1cm4gdHlwZXMgaWRlbnRpZnlpbmcKLSAgICAgKiB0aGUgbWV0aG9kcyB0byBkZWxldGUuCi0gICAgICogVGhlIGxpc3QgY2FuIGJlIGVtcHR5IGJ1dCBtdXN0IG5vdCBiZSBudWxsLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmdbXSBnZXREZWxldGVSZXR1cm5zKCkgewotICAgICAgICByZXR1cm4gREVMRVRFX1JFVFVSTlM7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBjbGFzc2VzIHRvIHJlZmFjdG9yLCBtdXN0IGJlIGFuIGV2ZW4gbGlzdDogdGhlIGJpbmFyeSBGUUNOIG9mIGNsYXNzIHRvCi0gICAgICogcmVwbGFjZSBmb2xsb3dlZCBieSB0aGUgbmV3IEZRQ04uIEFsbCByZWZlcmVuY2VzIHRvIHRoZSBvbGQgY2xhc3Mgc2hvdWxkIGJlIHVwZGF0ZWQgdG8gdGhlCi0gICAgICogbmV3IGNsYXNzLiBUaGUgbGlzdCBjYW4gYmUgZW1wdHkgYnV0IG11c3Qgbm90IGJlIG51bGwuCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZ1tdIGdldEphdmFQa2dDbGFzc2VzKCkgewotICAgICAgcmV0dXJuIEpBVkFfUEtHX0NMQVNTRVM7Ci0gICAgfQotICAgIC8vLS0tLS0KLQotICAgIC8qKgotICAgICAqIFRoZSBsaXN0IG9mIGNsYXNzIGZyb20gbGF5b3V0bGliX2NyZWF0ZSB0byBpbmplY3QgaW4gbGF5b3V0bGliLgotICAgICAqLwotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIENsYXNzPD8+W10gSU5KRUNURURfQ0xBU1NFUyA9IG5ldyBDbGFzczw/PltdIHsKLSAgICAgICAgICAgIE92ZXJyaWRlTWV0aG9kLmNsYXNzLAotICAgICAgICAgICAgTWV0aG9kTGlzdGVuZXIuY2xhc3MsCi0gICAgICAgICAgICBNZXRob2RBZGFwdGVyLmNsYXNzLAotICAgICAgICAgICAgSUNyZWF0ZUluZm8uY2xhc3MsCi0gICAgICAgICAgICBDcmVhdGVJbmZvLmNsYXNzLAotICAgICAgICAgICAgTGF5b3V0bGliRGVsZWdhdGUuY2xhc3MsCi0gICAgICAgICAgICAvKiBKYXZhIHBhY2thZ2UgY2xhc3NlcyAqLwotICAgICAgICAgICAgQXV0b0Nsb3NlYWJsZS5jbGFzcywKLSAgICAgICAgICAgIE9iamVjdHMuY2xhc3MsCi0gICAgICAgICAgICBJbnRlZ3JhbFRvU3RyaW5nLmNsYXNzLAotICAgICAgICAgICAgVW5zYWZlQnl0ZVNlcXVlbmNlLmNsYXNzLAotICAgICAgICAgICAgQ2hhcnNldHMuY2xhc3MsCi0gICAgICAgIH07Ci0KLSAgICAvKioKLSAgICAgKiBUaGUgbGlzdCBvZiBtZXRob2RzIHRvIHJld3JpdGUgYXMgZGVsZWdhdGVzLgotICAgICAqLwotICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgU3RyaW5nW10gREVMRUdBVEVfTUVUSE9EUyA9IG5ldyBTdHJpbmdbXSB7Ci0gICAgICAgICJhbmRyb2lkLmFwcC5GcmFnbWVudCNpbnN0YW50aWF0ZSIsIC8vKExhbmRyb2lkL2NvbnRlbnQvQ29udGV4dDtMamF2YS9sYW5nL1N0cmluZztMYW5kcm9pZC9vcy9CdW5kbGU7KUxhbmRyb2lkL2FwcC9GcmFnbWVudDsiLAotICAgICAgICAiYW5kcm9pZC5jb250ZW50LnJlcy5SZXNvdXJjZXMkVGhlbWUjb2J0YWluU3R5bGVkQXR0cmlidXRlcyIsCi0gICAgICAgICJhbmRyb2lkLmNvbnRlbnQucmVzLlJlc291cmNlcyRUaGVtZSNyZXNvbHZlQXR0cmlidXRlIiwKLSAgICAgICAgImFuZHJvaWQuY29udGVudC5yZXMuVHlwZWRBcnJheSNnZXRWYWx1ZUF0IiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwRmFjdG9yeSNmaW5pc2hEZWNvZGUiLAotICAgICAgICAiYW5kcm9pZC5vcy5IYW5kbGVyI3NlbmRNZXNzYWdlQXRUaW1lIiwKLSAgICAgICAgImFuZHJvaWQub3MuSGFuZGxlclRocmVhZCNydW4iLAotICAgICAgICAiYW5kcm9pZC5vcy5CdWlsZCNnZXRTdHJpbmciLAotICAgICAgICAiYW5kcm9pZC50ZXh0LmZvcm1hdC5EYXRlRm9ybWF0I2lzMjRIb3VyRm9ybWF0IiwKLSAgICAgICAgImFuZHJvaWQudGV4dC5mb3JtYXQuVGltZSNmb3JtYXQxIiwKLSAgICAgICAgImFuZHJvaWQudmlldy5DaG9yZW9ncmFwaGVyI2dldFJlZnJlc2hSYXRlIiwKLSAgICAgICAgImFuZHJvaWQudmlldy5EaXNwbGF5I3VwZGF0ZURpc3BsYXlJbmZvTG9ja2VkIiwKLSAgICAgICAgImFuZHJvaWQudmlldy5MYXlvdXRJbmZsYXRlciNySW5mbGF0ZSIsCi0gICAgICAgICJhbmRyb2lkLnZpZXcuTGF5b3V0SW5mbGF0ZXIjcGFyc2VJbmNsdWRlIiwKLSAgICAgICAgImFuZHJvaWQudmlldy5WaWV3I2lzSW5FZGl0TW9kZSIsCi0gICAgICAgICJhbmRyb2lkLnZpZXcuVmlld1Jvb3RJbXBsI2lzSW5Ub3VjaE1vZGUiLAotICAgICAgICAiYW5kcm9pZC52aWV3LldpbmRvd01hbmFnZXJHbG9iYWwjZ2V0V2luZG93TWFuYWdlclNlcnZpY2UiLAotICAgICAgICAiYW5kcm9pZC52aWV3LmlucHV0bWV0aG9kLklucHV0TWV0aG9kTWFuYWdlciNnZXRJbnN0YW5jZSIsCi0gICAgICAgICJjb20uYW5kcm9pZC5pbnRlcm5hbC51dGlsLlhtbFV0aWxzI2NvbnZlcnRWYWx1ZVRvSW50IiwKLSAgICAgICAgImNvbS5hbmRyb2lkLmludGVybmFsLnRleHRzZXJ2aWNlLklUZXh0U2VydmljZXNNYW5hZ2VyJFN0dWIjYXNJbnRlcmZhY2UiLAotICAgIH07Ci0KLSAgICAvKioKLSAgICAgKiBUaGUgbGlzdCBvZiBjbGFzc2VzIG9uIHdoaWNoIHRvIGRlbGVnYXRlIGFsbCBuYXRpdmUgbWV0aG9kcy4KLSAgICAgKi8KLSAgICBwdWJsaWMgZmluYWwgc3RhdGljIFN0cmluZ1tdIERFTEVHQVRFX0NMQVNTX05BVElWRVMgPSBuZXcgU3RyaW5nW10gewotICAgICAgICAiYW5kcm9pZC5hbmltYXRpb24uUHJvcGVydHlWYWx1ZXNIb2xkZXIiLAotICAgICAgICAiYW5kcm9pZC5ncmFwaGljcy5Bdm9pZFhmZXJtb2RlIiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwIiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuQml0bWFwRmFjdG9yeSIsCi0gICAgICAgICJhbmRyb2lkLmdyYXBoaWNzLkJpdG1hcFNoYWRlciIsCi0gICAgICAgICJhbmRyb2lkLmdyYXBoaWNzLkJsdXJNYXNrRmlsdGVyIiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuQ2FudmFzIiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuQ29sb3JGaWx0ZXIiLAotICAgICAgICAiYW5kcm9pZC5ncmFwaGljcy5Db2xvck1hdHJpeENvbG9yRmlsdGVyIiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuQ29tcG9zZVBhdGhFZmZlY3QiLAotICAgICAgICAiYW5kcm9pZC5ncmFwaGljcy5Db21wb3NlU2hhZGVyIiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuQ29ybmVyUGF0aEVmZmVjdCIsCi0gICAgICAgICJhbmRyb2lkLmdyYXBoaWNzLkRhc2hQYXRoRWZmZWN0IiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuRGlzY3JldGVQYXRoRWZmZWN0IiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuRHJhd0ZpbHRlciIsCi0gICAgICAgICJhbmRyb2lkLmdyYXBoaWNzLkVtYm9zc01hc2tGaWx0ZXIiLAotICAgICAgICAiYW5kcm9pZC5ncmFwaGljcy5MYXllclJhc3Rlcml6ZXIiLAotICAgICAgICAiYW5kcm9pZC5ncmFwaGljcy5MaWdodGluZ0NvbG9yRmlsdGVyIiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuTGluZWFyR3JhZGllbnQiLAotICAgICAgICAiYW5kcm9pZC5ncmFwaGljcy5NYXNrRmlsdGVyIiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuTWF0cml4IiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuTmluZVBhdGNoIiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuUGFpbnQiLAotICAgICAgICAiYW5kcm9pZC5ncmFwaGljcy5QYWludEZsYWdzRHJhd0ZpbHRlciIsCi0gICAgICAgICJhbmRyb2lkLmdyYXBoaWNzLlBhdGgiLAotICAgICAgICAiYW5kcm9pZC5ncmFwaGljcy5QYXRoRGFzaFBhdGhFZmZlY3QiLAotICAgICAgICAiYW5kcm9pZC5ncmFwaGljcy5QYXRoRWZmZWN0IiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuUGl4ZWxYb3JYZmVybW9kZSIsCi0gICAgICAgICJhbmRyb2lkLmdyYXBoaWNzLlBvcnRlckR1ZmZDb2xvckZpbHRlciIsCi0gICAgICAgICJhbmRyb2lkLmdyYXBoaWNzLlBvcnRlckR1ZmZYZmVybW9kZSIsCi0gICAgICAgICJhbmRyb2lkLmdyYXBoaWNzLlJhZGlhbEdyYWRpZW50IiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuUmFzdGVyaXplciIsCi0gICAgICAgICJhbmRyb2lkLmdyYXBoaWNzLlJlZ2lvbiIsCi0gICAgICAgICJhbmRyb2lkLmdyYXBoaWNzLlNoYWRlciIsCi0gICAgICAgICJhbmRyb2lkLmdyYXBoaWNzLlN1bVBhdGhFZmZlY3QiLAotICAgICAgICAiYW5kcm9pZC5ncmFwaGljcy5Td2VlcEdyYWRpZW50IiwKLSAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuVHlwZWZhY2UiLAotICAgICAgICAiYW5kcm9pZC5ncmFwaGljcy5YZmVybW9kZSIsCi0gICAgICAgICJhbmRyb2lkLm9zLlN5c3RlbUNsb2NrIiwKLSAgICAgICAgImFuZHJvaWQudGV4dC5BbmRyb2lkQmlkaSIsCi0gICAgICAgICJhbmRyb2lkLnV0aWwuRmxvYXRNYXRoIiwKLSAgICAgICAgImFuZHJvaWQudmlldy5EaXNwbGF5IiwKLSAgICAgICAgImxpYmNvcmUuaWN1LkRhdGVJbnRlcnZhbEZvcm1hdCIsCi0gICAgICAgICJsaWJjb3JlLmljdS5JQ1UiLAotICAgIH07Ci0KLSAgICAvKioKLSAgICAgKiBUaGUgbGlzdCBvZiBtZXRob2RzIHRvIHN0dWIgb3V0LiBFYWNoIGVudHJ5IG11c3QgYmUgaW4gdGhlIGZvcm0KLSAgICAgKiAgInBhY2thZ2UucGFja2FnZS5PdXRlckNsYXNzJElubmVyQ2xhc3MjTWV0aG9kTmFtZSIuCi0gICAgICogIFRoaXMgdXNhZ2UgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBtZXRob2QgJ2RlbGVnYXRlcycgaW5zdGVhZC4KLSAgICAgKi8KLSAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBTdHJpbmdbXSBPVkVSUklEREVOX01FVEhPRFMgPSBuZXcgU3RyaW5nW10gewotICAgIH07Ci0KLSAgICAvKioKLSAgICAgKiAgVGhlIGxpc3Qgb2YgY2xhc3NlcyB0byByZW5hbWUsIG11c3QgYmUgYW4gZXZlbiBsaXN0OiB0aGUgYmluYXJ5IEZRQ04KLSAgICAgKiAgb2YgY2xhc3MgdG8gcmVwbGFjZSBmb2xsb3dlZCBieSB0aGUgbmV3IEZRQ04uCi0gICAgICovCi0gICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgU3RyaW5nW10gUkVOQU1FRF9DTEFTU0VTID0KLSAgICAgICAgbmV3IFN0cmluZ1tdIHsKLSAgICAgICAgICAgICJhbmRyb2lkLm9zLlNlcnZpY2VNYW5hZ2VyIiwgICAgICAgICAgICAgICAgICAgICAgICJhbmRyb2lkLm9zLl9PcmlnaW5hbF9TZXJ2aWNlTWFuYWdlciIsCi0gICAgICAgICAgICAiYW5kcm9pZC51dGlsLkxydUNhY2hlIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5kcm9pZC51dGlsLl9PcmlnaW5hbF9McnVDYWNoZSIsCi0gICAgICAgICAgICAiYW5kcm9pZC52aWV3LlN1cmZhY2VWaWV3IiwgICAgICAgICAgICAgICAgICAgICAgICAiYW5kcm9pZC52aWV3Ll9PcmlnaW5hbF9TdXJmYWNlVmlldyIsCi0gICAgICAgICAgICAiYW5kcm9pZC52aWV3LmFjY2Vzc2liaWxpdHkuQWNjZXNzaWJpbGl0eU1hbmFnZXIiLCAiYW5kcm9pZC52aWV3LmFjY2Vzc2liaWxpdHkuX09yaWdpbmFsX0FjY2Vzc2liaWxpdHlNYW5hZ2VyIiwKLSAgICAgICAgICAgICJhbmRyb2lkLndlYmtpdC5XZWJWaWV3IiwgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmRyb2lkLndlYmtpdC5fT3JpZ2luYWxfV2ViVmlldyIsCi0gICAgICAgICAgICAiY29tLmFuZHJvaWQuaW50ZXJuYWwucG9saWN5LlBvbGljeU1hbmFnZXIiLCAgICAgICAiY29tLmFuZHJvaWQuaW50ZXJuYWwucG9saWN5Ll9PcmlnaW5hbF9Qb2xpY3lNYW5hZ2VyIiwKLSAgICAgICAgfTsKLQotICAgIC8qKgotICAgICAqIFRoZSBsaXN0IG9mIGNsYXNzIHJlZmVyZW5jZXMgdG8gdXBkYXRlLCBtdXN0IGJlIGFuIGV2ZW4gbGlzdDogdGhlIGJpbmFyeQotICAgICAqIEZRQ04gb2YgY2xhc3MgdG8gcmVwbGFjZSBmb2xsb3dlZCBieSB0aGUgbmV3IEZRQ04uIFRoZSBjbGFzc2VzIHRvCi0gICAgICogcmVwbGFjZSBhcmUgdG8gYmUgZXhjbHVkZWQgZnJvbSB0aGUgb3V0cHV0LgotICAgICAqLwotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIFN0cmluZ1tdIEpBVkFfUEtHX0NMQVNTRVMgPQotICAgICAgICBuZXcgU3RyaW5nW10gewotICAgICAgICAgICAgImphdmEubGFuZy5BdXRvQ2xvc2VhYmxlIiwgICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5qYXZhLkF1dG9DbG9zZWFibGUiLAotICAgICAgICAgICAgImphdmEudXRpbC5PYmplY3RzIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5qYXZhLk9iamVjdHMiLAotICAgICAgICAgICAgImphdmEubmlvLmNoYXJzZXQuQ2hhcnNldHMiLCAgICAgICAgICAgICAgICAgICAgICAgImNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5qYXZhLkNoYXJzZXRzIiwKLSAgICAgICAgICAgICJqYXZhLmxhbmcuSW50ZWdyYWxUb1N0cmluZyIsICAgICAgICAgICAgICAgICAgICAgICJjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuamF2YS5JbnRlZ3JhbFRvU3RyaW5nIiwKLSAgICAgICAgICAgICJqYXZhLmxhbmcuVW5zYWZlQnl0ZVNlcXVlbmNlIiwgICAgICAgICAgICAgICAgICAgICJjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuamF2YS5VbnNhZmVCeXRlU2VxdWVuY2UiLAotICAgICAgICB9OwotCi0gICAgLyoqCi0gICAgICogTGlzdCBvZiBjbGFzc2VzIGZvciB3aGljaCB0aGUgbWV0aG9kcyByZXR1cm5pbmcgdGhlbSBzaG91bGQgYmUgZGVsZXRlZC4KLSAgICAgKiBUaGUgYXJyYXkgY29udGFpbnMgYSBsaXN0IG9mIG51bGwgdGVybWluYXRlZCBzZWN0aW9uIHN0YXJ0aW5nIHdpdGggdGhlIG5hbWUgb2YgdGhlIGNsYXNzCi0gICAgICogdG8gcmVuYW1lIGluIHdoaWNoIHRoZSBtZXRob2RzIGFyZSBkZWxldGVkLCBmb2xsb3dlZCBieSBhIGxpc3Qgb2YgcmV0dXJuIHR5cGVzIGlkZW50aWZ5aW5nCi0gICAgICogdGhlIG1ldGhvZHMgdG8gZGVsZXRlLgotICAgICAqLwotICAgIHByaXZhdGUgZmluYWwgc3RhdGljIFN0cmluZ1tdIERFTEVURV9SRVRVUk5TID0KLSAgICAgICAgbmV3IFN0cmluZ1tdIHsKLSAgICAgICAgICAgIG51bGwgfTsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2VwYXJhdG9yLCBmb3IgbmV4dCBjbGFzcy9tZXRob2RzIGxpc3QuCi19Ci0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvRGVsZWdhdGVDbGFzc0FkYXB0ZXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvRGVsZWdhdGVDbGFzc0FkYXB0ZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTI3YmU5Ny4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0RlbGVnYXRlQ2xhc3NBZGFwdGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZTsKLQotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkNsYXNzVmlzaXRvcjsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5NZXRob2RWaXNpdG9yOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLk9wY29kZXM7Ci0KLWltcG9ydCBqYXZhLnV0aWwuU2V0OwotCi0vKioKLSAqIEEge0BsaW5rIERlbGVnYXRlQ2xhc3NBZGFwdGVyfSBjYW4gdHJhbnNmb3JtIHNvbWUgbWV0aG9kcyBmcm9tIGEgY2xhc3MgaW50bwotICogZGVsZWdhdGVzIHRoYXQgZGVmZXIgdGhlIGNhbGwgdG8gYW4gYXNzb2NpYXRlZCBkZWxlZ2F0ZSBjbGFzcy4KLSAqIDxwLz4KLSAqIFRoaXMgaXMgdXNlZCB0byBvdmVycmlkZSBzcGVjaWZpYyBtZXRob2RzIGFuZCBvciBhbGwgbmF0aXZlIG1ldGhvZHMgaW4gY2xhc3Nlcy4KLSAqLwotcHVibGljIGNsYXNzIERlbGVnYXRlQ2xhc3NBZGFwdGVyIGV4dGVuZHMgQ2xhc3NWaXNpdG9yIHsKLQotICAgIC8qKiBTdWZmaXggYWRkZWQgdG8gb3JpZ2luYWwgbWV0aG9kcy4gKi8KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1JJR0lOQUxfU1VGRklYID0gIl9PcmlnaW5hbCI7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIENPTlNUUlVDVE9SID0gIjxpbml0PiI7Ci0gICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIENMQVNTX0lOSVQgPSAiPGNsaW5pdD4iOwotCi0gICAgcHVibGljIGZpbmFsIHN0YXRpYyBTdHJpbmcgQUxMX05BVElWRVMgPSAiPDxhbGxfbmF0aXZlcz4+IjsKLQotICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG1DbGFzc05hbWU7Ci0gICAgcHJpdmF0ZSBmaW5hbCBTZXQ8U3RyaW5nPiBtRGVsZWdhdGVNZXRob2RzOwotICAgIHByaXZhdGUgZmluYWwgTG9nIG1Mb2c7Ci0KLSAgICAvKioKLSAgICAgKiBDcmVhdGVzIGEgbmV3IHtAbGluayBEZWxlZ2F0ZUNsYXNzQWRhcHRlcn0gdGhhdCBjYW4gdHJhbnNmb3JtIHNvbWUgbWV0aG9kcwotICAgICAqIGZyb20gYSBjbGFzcyBpbnRvIGRlbGVnYXRlcyB0aGF0IGRlZmVyIHRoZSBjYWxsIHRvIGFuIGFzc29jaWF0ZWQgZGVsZWdhdGUgY2xhc3MuCi0gICAgICogPHAvPgotICAgICAqIFRoaXMgaXMgdXNlZCB0byBvdmVycmlkZSBzcGVjaWZpYyBtZXRob2RzIGFuZCBvciBhbGwgbmF0aXZlIG1ldGhvZHMgaW4gY2xhc3Nlcy4KLSAgICAgKgotICAgICAqIEBwYXJhbSBsb2cgVGhlIGxvZ2dlciBvYmplY3QuIE11c3Qgbm90IGJlIG51bGwuCi0gICAgICogQHBhcmFtIGN2IHRoZSBjbGFzcyB2aXNpdG9yIHRvIHdoaWNoIHRoaXMgYWRhcHRlciBtdXN0IGRlbGVnYXRlIGNhbGxzLgotICAgICAqIEBwYXJhbSBjbGFzc05hbWUgVGhlIGludGVybmFsIGNsYXNzIG5hbWUgb2YgdGhlIGNsYXNzIHRvIHZpc2l0LAotICAgICAqICAgICAgICAgIGUuZy4gPGNvZGU+Y29tL2FuZHJvaWQvU29tZUNsYXNzJElubmVyQ2xhc3M8L2NvZGU+LgotICAgICAqIEBwYXJhbSBkZWxlZ2F0ZU1ldGhvZHMgVGhlIHNldCBvZiBtZXRob2QgbmFtZXMgdG8gbW9kaWZ5IGFuZC9vciB0aGUKLSAgICAgKiAgICAgICAgICBzcGVjaWFsIGNvbnN0YW50IHtAbGluayAjQUxMX05BVElWRVN9IHRvIGNvbnZlcnQgYWxsIG5hdGl2ZSBtZXRob2RzLgotICAgICAqLwotICAgIHB1YmxpYyBEZWxlZ2F0ZUNsYXNzQWRhcHRlcihMb2cgbG9nLAotICAgICAgICAgICAgQ2xhc3NWaXNpdG9yIGN2LAotICAgICAgICAgICAgU3RyaW5nIGNsYXNzTmFtZSwKLSAgICAgICAgICAgIFNldDxTdHJpbmc+IGRlbGVnYXRlTWV0aG9kcykgewotICAgICAgICBzdXBlcihPcGNvZGVzLkFTTTQsIGN2KTsKLSAgICAgICAgbUxvZyA9IGxvZzsKLSAgICAgICAgbUNsYXNzTmFtZSA9IGNsYXNzTmFtZTsKLSAgICAgICAgbURlbGVnYXRlTWV0aG9kcyA9IGRlbGVnYXRlTWV0aG9kczsKLSAgICB9Ci0KLSAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAvLyBNZXRob2RzIGZyb20gdGhlIENsYXNzQWRhcHRlcgotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIE1ldGhvZFZpc2l0b3IgdmlzaXRNZXRob2QoaW50IGFjY2VzcywgU3RyaW5nIG5hbWUsIFN0cmluZyBkZXNjLAotICAgICAgICAgICAgU3RyaW5nIHNpZ25hdHVyZSwgU3RyaW5nW10gZXhjZXB0aW9ucykgewotCi0gICAgICAgIGJvb2xlYW4gaXNTdGF0aWMgPSAoYWNjZXNzICYgT3Bjb2Rlcy5BQ0NfU1RBVElDKSAhPSAwOwotICAgICAgICBib29sZWFuIGlzTmF0aXZlID0gKGFjY2VzcyAmIE9wY29kZXMuQUNDX05BVElWRSkgIT0gMDsKLQotICAgICAgICBib29sZWFuIHVzZURlbGVnYXRlID0gKGlzTmF0aXZlICYmIG1EZWxlZ2F0ZU1ldGhvZHMuY29udGFpbnMoQUxMX05BVElWRVMpKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbURlbGVnYXRlTWV0aG9kcy5jb250YWlucyhuYW1lKTsKLQotICAgICAgICBpZiAoIXVzZURlbGVnYXRlKSB7Ci0gICAgICAgICAgICAvLyBOb3QgY3JlYXRpbmcgYSBkZWxlZ2F0ZSBmb3IgdGhpcyBtZXRob2QsIHBhc3MgaXQgYXMtaXMgZnJvbSB0aGUgcmVhZGVyCi0gICAgICAgICAgICAvLyB0byB0aGUgd3JpdGVyLgotICAgICAgICAgICAgcmV0dXJuIHN1cGVyLnZpc2l0TWV0aG9kKGFjY2VzcywgbmFtZSwgZGVzYywgc2lnbmF0dXJlLCBleGNlcHRpb25zKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh1c2VEZWxlZ2F0ZSkgewotICAgICAgICAgICAgaWYgKENPTlNUUlVDVE9SLmVxdWFscyhuYW1lKSB8fCBDTEFTU19JTklULmVxdWFscyhuYW1lKSkgewotICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGN1cnJlbnRseSBzdXBwb3J0IGdlbmVyYXRpbmcgZGVsZWdhdGVzIGZvciBjb25zdHJ1Y3RvcnMuCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICBTdHJpbmcuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICAgICAgIkRlbGVnYXRlIGRvZXNuJ3Qgc3VwcG9ydCBvdmVycmlkaW5nIGNvbnN0cnVjdG9yICUxJHM6JTIkcyglMyRzKSIsICAvLyROT04tTkxTLTEkCi0gICAgICAgICAgICAgICAgICAgICAgICBtQ2xhc3NOYW1lLCBuYW1lLCBkZXNjKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoaXNOYXRpdmUpIHsKLSAgICAgICAgICAgIC8vIFJlbW92ZSBuYXRpdmUgZmxhZwotICAgICAgICAgICAgYWNjZXNzID0gYWNjZXNzICYgfk9wY29kZXMuQUNDX05BVElWRTsKLSAgICAgICAgICAgIE1ldGhvZFZpc2l0b3IgbXdEZWxlZ2F0ZSA9IHN1cGVyLnZpc2l0TWV0aG9kKGFjY2VzcywgbmFtZSwgZGVzYywgc2lnbmF0dXJlLCBleGNlcHRpb25zKTsKLQotICAgICAgICAgICAgRGVsZWdhdGVNZXRob2RBZGFwdGVyMiBhID0gbmV3IERlbGVnYXRlTWV0aG9kQWRhcHRlcjIoCi0gICAgICAgICAgICAgICAgICAgIG1Mb2csIG51bGwgLyptd09yaWdpbmFsKi8sIG13RGVsZWdhdGUsIG1DbGFzc05hbWUsIG5hbWUsIGRlc2MsIGlzU3RhdGljKTsKLQotICAgICAgICAgICAgLy8gQSBuYXRpdmUgaGFzIG5vIGNvZGUgdG8gdmlzaXQsIHNvIHdlIG5lZWQgdG8gZ2VuZXJhdGUgaXQgZGlyZWN0bHkuCi0gICAgICAgICAgICBhLmdlbmVyYXRlRGVsZWdhdGVDb2RlKCk7Ci0KLSAgICAgICAgICAgIHJldHVybiBtd0RlbGVnYXRlOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gR2l2ZW4gYSBub24tbmF0aXZlIFNvbWVDbGFzcy5NZXRob2ROYW1lKCksIHdlIHdhbnQgdG8gZ2VuZXJhdGUgMiBtZXRob2RzOgotICAgICAgICAvLyAtIEEgY29weSBvZiB0aGUgb3JpZ2luYWwgbWV0aG9kIG5hbWVkIFNvbWVDbGFzcy5NZXRob2ROYW1lX09yaWdpbmFsKCkuCi0gICAgICAgIC8vICAgVGhlIGNvbnRlbnQgaXMgdGhlIG9yaWdpbmFsIG1ldGhvZCBhcy1pcyBmcm9tIHRoZSByZWFkZXIuCi0gICAgICAgIC8vIC0gQSBicmFuZCBuZXcgaW1wbGVtZW50YXRpb24gb2YgU29tZUNsYXNzLk1ldGhvZE5hbWUoKSB3aGljaCBjYWxscyB0byBhCi0gICAgICAgIC8vICAgbm9uLWV4aXN0aW5nIG1ldGhvZCBuYW1lZCBTb21lQ2xhc3NfRGVsZWdhdGUuTWV0aG9kTmFtZSgpLgotICAgICAgICAvLyAgIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzICdkZWxlZ2F0ZScgbWV0aG9kIGlzIGRvbmUgaW4gbGF5b3V0bGliX2JyaWdkZS4KLQotICAgICAgICBpbnQgYWNjZXNzRGVsZWdhdGUgPSBhY2Nlc3M7Ci0gICAgICAgIC8vIGNoYW5nZSBhY2Nlc3MgdG8gcHVibGljIGZvciB0aGUgb3JpZ2luYWwgb25lCi0gICAgICAgIGlmIChNYWluLnNPcHRpb25zLmdlbmVyYXRlUHVibGljQWNjZXNzKSB7Ci0gICAgICAgICAgICBhY2Nlc3MgJj0gfihPcGNvZGVzLkFDQ19QUk9URUNURUQgfCBPcGNvZGVzLkFDQ19QUklWQVRFKTsKLSAgICAgICAgICAgIGFjY2VzcyB8PSBPcGNvZGVzLkFDQ19QVUJMSUM7Ci0gICAgICAgIH0KLQotICAgICAgICBNZXRob2RWaXNpdG9yIG13T3JpZ2luYWwgPSBzdXBlci52aXNpdE1ldGhvZChhY2Nlc3MsIG5hbWUgKyBPUklHSU5BTF9TVUZGSVgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2MsIHNpZ25hdHVyZSwgZXhjZXB0aW9ucyk7Ci0gICAgICAgIE1ldGhvZFZpc2l0b3IgbXdEZWxlZ2F0ZSA9IHN1cGVyLnZpc2l0TWV0aG9kKGFjY2Vzc0RlbGVnYXRlLCBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjLCBzaWduYXR1cmUsIGV4Y2VwdGlvbnMpOwotCi0gICAgICAgIERlbGVnYXRlTWV0aG9kQWRhcHRlcjIgYSA9IG5ldyBEZWxlZ2F0ZU1ldGhvZEFkYXB0ZXIyKAotICAgICAgICAgICAgICAgIG1Mb2csIG13T3JpZ2luYWwsIG13RGVsZWdhdGUsIG1DbGFzc05hbWUsIG5hbWUsIGRlc2MsIGlzU3RhdGljKTsKLSAgICAgICAgcmV0dXJuIGE7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9EZWxlZ2F0ZU1ldGhvZEFkYXB0ZXIyLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0RlbGVnYXRlTWV0aG9kQWRhcHRlcjIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMGIyMi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0RlbGVnYXRlTWV0aG9kQWRhcHRlcjIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDQ2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlOwotCi1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmFubm90YXRpb25zLkxheW91dGxpYkRlbGVnYXRlOwotCi1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uQW5ub3RhdGlvblZpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uQXR0cmlidXRlOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkNsYXNzUmVhZGVyOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkNsYXNzVmlzaXRvcjsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5MYWJlbDsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5NZXRob2RWaXNpdG9yOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLk9wY29kZXM7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uVHlwZTsKLQotaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7Ci0KLS8qKgotICogVGhpcyBtZXRob2QgYWRhcHRlciBnZW5lcmF0ZXMgZGVsZWdhdGUgbWV0aG9kcy4KLSAqIDxwLz4KLSAqIEdpdmVuIGEgbWV0aG9kIHtAY29kZSBTb21lQ2xhc3MuTWV0aG9kTmFtZSgpfSwgdGhpcyBnZW5lcmF0ZXMgMSBvciAyIG1ldGhvZHM6Ci0gKiA8dWw+Ci0gKiA8bGk+IEEgY29weSBvZiB0aGUgb3JpZ2luYWwgbWV0aG9kIG5hbWVkIHtAY29kZSBTb21lQ2xhc3MuTWV0aG9kTmFtZV9PcmlnaW5hbCgpfS4KLSAqICAgVGhlIGNvbnRlbnQgaXMgdGhlIG9yaWdpbmFsIG1ldGhvZCBhcy1pcyBmcm9tIHRoZSByZWFkZXIuCi0gKiAgIFRoaXMgc3RlcCBpcyBvbWl0dGVkIGlmIHRoZSBtZXRob2QgaXMgbmF0aXZlLCBzaW5jZSBpdCBoYXMgbm8gSmF2YSBpbXBsZW1lbnRhdGlvbi4KLSAqIDxsaT4gQSBicmFuZCBuZXcgaW1wbGVtZW50YXRpb24gb2Yge0Bjb2RlIFNvbWVDbGFzcy5NZXRob2ROYW1lKCl9IHdoaWNoIGNhbGxzIHRvIGEKLSAqICAgbm9uLWV4aXN0aW5nIG1ldGhvZCBuYW1lZCB7QGNvZGUgU29tZUNsYXNzX0RlbGVnYXRlLk1ldGhvZE5hbWUoKX0uCi0gKiAgIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzICdkZWxlZ2F0ZScgbWV0aG9kIGlzIGRvbmUgaW4gbGF5b3V0bGliX2JyaWdkZS4KLSAqIDwvdWw+Ci0gKiBBIG1ldGhvZCB2aXNpdG9yIGlzIGdlbmVyYWxseSBjb25zdHJ1Y3RlZCB0byBnZW5lcmF0ZSBhIHNpbmdsZSBtZXRob2Q7IGhvd2V2ZXIKLSAqIGhlcmUgd2UgbWlnaHQgd2FudCB0byBnZW5lcmF0ZSBvbmUgb3IgdHdvIGRlcGVuZGluZyBvbiB0aGUgY29udGV4dC4gVG8gYWNoaWV2ZQotICogdGhhdCwgdGhlIHZpc2l0b3IgaGVyZSBnZW5lcmF0ZXMgdGhlICdvcmlnaW5hbCcgbWV0aG9kIGFuZCBhY3RzIGFzIGEgbm8tb3AgaWYKLSAqIG5vIHN1Y2ggbWV0aG9kIGV4aXN0cyAoZS5nLiB3aGVuIHRoZSBvcmlnaW5hbCBpcyBhIG5hdGl2ZSBtZXRob2QpLgotICogVGhlIGRlbGVnYXRlIG1ldGhvZCBpcyBnZW5lcmF0ZWQgYWZ0ZXIgdGhlIHtAY29kZSB2aXNpdEVuZH0gb2YgdGhlIG9yaWdpbmFsIG1ldGhvZAotICogb3IgYnkgaGF2aW5nIHRoZSBjbGFzcyBhZGFwdGVyIDxlbT5kaXJlY3RseTwvZW0+IGNhbGwge0BsaW5rICNnZW5lcmF0ZURlbGVnYXRlQ29kZSgpfQotICogZm9yIG5hdGl2ZSBtZXRob2RzLgotICogPHAvPgotICogV2hlbiBnZW5lcmF0aW5nIHRoZSAnZGVsZWdhdGUnLCB0aGUgaW1wbGVtZW50YXRpb24gZ2VuZXJhdGVzIGEgY2FsbCB0byBhIGNsYXNzCi0gKiBjbGFzcyBuYW1lZCA8Y29kZT4mbHQ7Y2xhc3NOYW1lJmd0O19EZWxlZ2F0ZTwvY29kZT4gd2l0aCBzdGF0aWMgbWV0aG9kcyBtYXRjaGluZwotICogdGhlIG1ldGhvZHMgdG8gYmUgb3ZlcnJpZGRlbiBoZXJlLiBUaGUgbWV0aG9kcyBoYXZlIHRoZSBzYW1lIHJldHVybiB0eXBlLgotICogVGhlIGFyZ3VtZW50IHR5cGUgbGlzdCBpcyB0aGUgc2FtZSBleGNlcHQgdGhlICJ0aGlzIiByZWZlcmVuY2UgaXMgcGFzc2VkIGZpcnN0Ci0gKiBmb3Igbm9uLXN0YXRpYyBtZXRob2RzLgotICogPHAvPgotICogQSBuZXcgYW5ub3RhdGlvbiBpcyBhZGRlZCB0byB0aGVzZSAnZGVsZWdhdGUnIG1ldGhvZHMgc28gdGhhdCB3ZSBjYW4gZWFzaWx5IGZpbmQgdGhlbQotICogZm9yIGF1dG9tYXRlZCB0ZXN0aW5nLgotICogPHAvPgotICogVGhpcyBjbGFzcyBpc24ndCBpbnRlbmRlZCB0byBiZSBnZW5lcmljIG9yIHJldXNhYmxlLgotICogSXQgaXMgY2FsbGVkIGJ5IHtAbGluayBEZWxlZ2F0ZUNsYXNzQWRhcHRlcn0sIHdoaWNoIHRha2VzIGNhcmUgb2YgcHJvcGVybHkgaW5pdGlhbGl6aW5nCi0gKiB0aGUgdHdvIG1ldGhvZCB3cml0ZXJzIGZvciB0aGUgb3JpZ2luYWwgYW5kIHRoZSBkZWxlZ2F0ZSBjbGFzcywgYXMgbmVlZGVkLCB3aXRoIHRoZWlyCi0gKiBleHBlY3RlZCBuYW1lcy4KLSAqIDxwLz4KLSAqIFRoZSBjbGFzcyBhZGFwdGVyIGFsc28gdGFrZXMgY2FyZSBvZiBjYWxsaW5nIHtAbGluayAjZ2VuZXJhdGVEZWxlZ2F0ZUNvZGUoKX0gZGlyZWN0bHkgZm9yCi0gKiBhIG5hdGl2ZSBhbmQgdXNlIHRoZSB2aXNpdG9yIHBhdHRlcm4gZm9yIG5vbi1uYXRpdmVzLgotICogTm90ZSB0aGF0IG5hdGl2ZSBtZXRob2RzIGhhdmUsIGJ5IGRlZmluaXRpb24sIG5vIGNvZGUgc28gdGhlcmUncyBub3RoaW5nIGEgdmlzaXRvcgotICogY2FuIHZpc2l0LgotICogPHAvPgotICogSW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgYXJlIG5vdCByZS11c2FibGUuCi0gKiBUaGUgY2xhc3MgYWRhcHRlciBjcmVhdGVzIGEgbmV3IGluc3RhbmNlIGZvciBlYWNoIG1ldGhvZC4KLSAqLwotY2xhc3MgRGVsZWdhdGVNZXRob2RBZGFwdGVyMiBleHRlbmRzIE1ldGhvZFZpc2l0b3IgewotCi0gICAgLyoqIFN1ZmZpeCBhZGRlZCB0byBkZWxlZ2F0ZSBjbGFzc2VzLiAqLwotICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERFTEVHQVRFX1NVRkZJWCA9ICJfRGVsZWdhdGUiOwotCi0gICAgLyoqIFRoZSBwYXJlbnQgbWV0aG9kIHdyaXRlciB0byBjb3B5IG9mIHRoZSBvcmlnaW5hbCBtZXRob2QuCi0gICAgICogIE51bGwgd2hlbiBkZWFsaW5nIHdpdGggYSBuYXRpdmUgb3JpZ2luYWwgbWV0aG9kLiAqLwotICAgIHByaXZhdGUgTWV0aG9kVmlzaXRvciBtT3JnV3JpdGVyOwotICAgIC8qKiBUaGUgcGFyZW50IG1ldGhvZCB3cml0ZXIgdG8gZ2VuZXJhdGUgdGhlIGRlbGVnYXRpbmcgbWV0aG9kLiBOZXZlciBudWxsLiAqLwotICAgIHByaXZhdGUgTWV0aG9kVmlzaXRvciBtRGVsV3JpdGVyOwotICAgIC8qKiBUaGUgb3JpZ2luYWwgbWV0aG9kIGRlc2NyaXB0b3IgKHJldHVybiB0eXBlICsgYXJndW1lbnQgdHlwZXMuKSAqLwotICAgIHByaXZhdGUgU3RyaW5nIG1EZXNjOwotICAgIC8qKiBUcnVlIGlmIHRoZSBvcmlnaW5hbCBtZXRob2QgaXMgc3RhdGljLiAqLwotICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBtSXNTdGF0aWM7Ci0gICAgLyoqIFRoZSBpbnRlcm5hbCBjbGFzcyBuYW1lIChlLmcuIDxjb2RlPmNvbS9hbmRyb2lkL1NvbWVDbGFzcyRJbm5lckNsYXNzPC9jb2RlPi4pICovCi0gICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgbUNsYXNzTmFtZTsKLSAgICAvKiogVGhlIG1ldGhvZCBuYW1lLiAqLwotICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG1NZXRob2ROYW1lOwotICAgIC8qKiBMb2dnZXIgb2JqZWN0LiAqLwotICAgIHByaXZhdGUgZmluYWwgTG9nIG1Mb2c7Ci0KLSAgICAvKiogQXJyYXkgdXNlZCB0byBjYXB0dXJlIHRoZSBmaXJzdCBsaW5lIG51bWJlciBpbmZvcm1hdGlvbiBmcm9tIHRoZSBvcmlnaW5hbCBtZXRob2QKLSAgICAgKiAgYW5kIGR1cGxpY2F0ZSBpdCBpbiB0aGUgZGVsZWdhdGUuICovCi0gICAgcHJpdmF0ZSBPYmplY3RbXSBtRGVsZWdhdGVMaW5lTnVtYmVyOwotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhIG5ldyB7QGxpbmsgRGVsZWdhdGVNZXRob2RBZGFwdGVyMn0gdGhhdCB3aWxsIHRyYW5zZm9ybSB0aGlzIG1ldGhvZAotICAgICAqIGludG8gYSBkZWxlZ2F0ZSBjYWxsLgotICAgICAqIDxwLz4KLSAgICAgKiBTZWUge0BsaW5rIERlbGVnYXRlTWV0aG9kQWRhcHRlcjJ9IGZvciBtb3JlIGRldGFpbHMuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gbG9nIFRoZSBsb2dnZXIgb2JqZWN0LiBNdXN0IG5vdCBiZSBudWxsLgotICAgICAqIEBwYXJhbSBtdk9yaWdpbmFsIFRoZSBwYXJlbnQgbWV0aG9kIHdyaXRlciB0byBjb3B5IG9mIHRoZSBvcmlnaW5hbCBtZXRob2QuCi0gICAgICogICAgICAgICAgTXVzdCBiZSB7QGNvZGUgbnVsbH0gd2hlbiBkZWFsaW5nIHdpdGggYSBuYXRpdmUgb3JpZ2luYWwgbWV0aG9kLgotICAgICAqIEBwYXJhbSBtdkRlbGVnYXRlIFRoZSBwYXJlbnQgbWV0aG9kIHdyaXRlciB0byBnZW5lcmF0ZSB0aGUgZGVsZWdhdGluZyBtZXRob2QuCi0gICAgICogICAgICAgICAgTXVzdCBuZXZlciBiZSBudWxsLgotICAgICAqIEBwYXJhbSBjbGFzc05hbWUgVGhlIGludGVybmFsIGNsYXNzIG5hbWUgb2YgdGhlIGNsYXNzIHRvIHZpc2l0LAotICAgICAqICAgICAgICAgIGUuZy4gPGNvZGU+Y29tL2FuZHJvaWQvU29tZUNsYXNzJElubmVyQ2xhc3M8L2NvZGU+LgotICAgICAqIEBwYXJhbSBtZXRob2ROYW1lIFRoZSBzaW1wbGUgbmFtZSBvZiB0aGUgbWV0aG9kLgotICAgICAqIEBwYXJhbSBkZXNjIEEgbWV0aG9kIGRlc2NyaXB0b3IgKGMuZi4ge0BsaW5rIFR5cGUjZ2V0UmV0dXJuVHlwZShTdHJpbmcpfSArCi0gICAgICogICAgICAgICAge0BsaW5rIFR5cGUjZ2V0QXJndW1lbnRUeXBlcyhTdHJpbmcpfSkKLSAgICAgKiBAcGFyYW0gaXNTdGF0aWMgVHJ1ZSBpZiB0aGUgbWV0aG9kIGlzIGRlY2xhcmVkIHN0YXRpYy4KLSAgICAgKi8KLSAgICBwdWJsaWMgRGVsZWdhdGVNZXRob2RBZGFwdGVyMihMb2cgbG9nLAotICAgICAgICAgICAgTWV0aG9kVmlzaXRvciBtdk9yaWdpbmFsLAotICAgICAgICAgICAgTWV0aG9kVmlzaXRvciBtdkRlbGVnYXRlLAotICAgICAgICAgICAgU3RyaW5nIGNsYXNzTmFtZSwKLSAgICAgICAgICAgIFN0cmluZyBtZXRob2ROYW1lLAotICAgICAgICAgICAgU3RyaW5nIGRlc2MsCi0gICAgICAgICAgICBib29sZWFuIGlzU3RhdGljKSB7Ci0gICAgICAgIHN1cGVyKE9wY29kZXMuQVNNNCk7Ci0gICAgICAgIG1Mb2cgPSBsb2c7Ci0gICAgICAgIG1PcmdXcml0ZXIgPSBtdk9yaWdpbmFsOwotICAgICAgICBtRGVsV3JpdGVyID0gbXZEZWxlZ2F0ZTsKLSAgICAgICAgbUNsYXNzTmFtZSA9IGNsYXNzTmFtZTsKLSAgICAgICAgbU1ldGhvZE5hbWUgPSBtZXRob2ROYW1lOwotICAgICAgICBtRGVzYyA9IGRlc2M7Ci0gICAgICAgIG1Jc1N0YXRpYyA9IGlzU3RhdGljOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEdlbmVyYXRlcyB0aGUgbmV3IGNvZGUgZm9yIHRoZSBtZXRob2QuCi0gICAgICogPHAvPgotICAgICAqIEZvciBuYXRpdmUgbWV0aG9kcywgdGhpcyBtdXN0IGJlIGludm9rZWQgZGlyZWN0bHkgYnkge0BsaW5rIERlbGVnYXRlQ2xhc3NBZGFwdGVyfQotICAgICAqIChzaW5jZSB0aGV5IGhhdmUgbm8gY29kZSB0byB2aXNpdCkuCi0gICAgICogPHAvPgotICAgICAqIE90aGVyd2lzZSBmb3Igbm9uLW5hdGl2ZSBtZXRob2RzIHRoZSB7QGxpbmsgRGVsZWdhdGVDbGFzc0FkYXB0ZXJ9IHNpbXBseSBuZWVkcyB0bwotICAgICAqIHJldHVybiB0aGlzIGluc3RhbmNlIG9mIHtAbGluayBEZWxlZ2F0ZU1ldGhvZEFkYXB0ZXIyfSBhbmQgbGV0IHRoZSBub3JtYWwgdmlzaXRvciBwYXR0ZXJuCi0gICAgICogaW52b2tlIGl0IGFzIHBhcnQgb2YgdGhlIHtAbGluayBDbGFzc1JlYWRlciNhY2NlcHQoQ2xhc3NWaXNpdG9yLCBpbnQpfSB3b3JrZmxvdyBhbmQgdGhlbgotICAgICAqIHRoaXMgbWV0aG9kIHdpbGwgYmUgaW52b2tlZCBmcm9tIHtAbGluayBNZXRob2RWaXNpdG9yI3Zpc2l0RW5kKCl9LgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIGdlbmVyYXRlRGVsZWdhdGVDb2RlKCkgewotICAgICAgICAvKgotICAgICAgICAgKiBUaGUgZ29hbCBpcyB0byBnZW5lcmF0ZSBhIGNhbGwgdG8gYSBzdGF0aWMgZGVsZWdhdGUgbWV0aG9kLgotICAgICAgICAgKiBJZiB0aGlzIG1ldGhvZCBpcyBub24tc3RhdGljLCB0aGUgZmlyc3QgcGFyYW1ldGVyIHdpbGwgYmUgJ3RoaXMnLgotICAgICAgICAgKiBBbGwgdGhlIHBhcmFtZXRlcnMgbXVzdCBiZSBwYXNzZWQgYW5kIHRoZW4gdGhlIGV2ZW50dWFsIHJldHVybiB0eXBlIHJldHVybmVkLgotICAgICAgICAgKgotICAgICAgICAgKiBFeGFtcGxlLCBsZXQncyBzYXkgd2UgaGF2ZSBhIG1ldGhvZCBzdWNoIGFzCi0gICAgICAgICAqICAgcHVibGljIHZvaWQgbXlNZXRob2QoaW50IGEsIE9iamVjdCBiLCBBcnJheUxpc3Q8U3RyaW5nPiBjKSB7IC4uLiB9Ci0gICAgICAgICAqCi0gICAgICAgICAqIFdlJ2xsIHdhbnQgdG8gY3JlYXRlIGEgYm9keSB0aGF0IGNhbGxzIGEgZGVsZWdhdGUgbWV0aG9kIGxpa2UgdGhpczoKLSAgICAgICAgICogICBUaGVDbGFzc19EZWxlZ2F0ZS5teU1ldGhvZCh0aGlzLCBhLCBiLCBjKTsKLSAgICAgICAgICoKLSAgICAgICAgICogSWYgdGhlIG1ldGhvZCBpcyBub24tc3RhdGljIGFuZCB0aGUgY2xhc3MgbmFtZSBpcyBhbiBpbm5lciBjbGFzcyAoZS5nLiBoYXMgJCBpbiBpdHMKLSAgICAgICAgICogbGFzdCBzZWdtZW50KSwgd2Ugd2FudCB0byBwdXNoIHRoZSAndGhpcycgb2YgdGhlIG91dGVyIGNsYXNzIGZpcnN0OgotICAgICAgICAgKiAgIE91dGVyQ2xhc3NfSW5uZXJDbGFzc19EZWxlZ2F0ZS5teU1ldGhvZCgKLSAgICAgICAgICogICAgIE91dGVyQ2xhc3MudGhpcywKLSAgICAgICAgICogICAgIE91dGVyQ2xhc3MkSW5uZXJDbGFzcy50aGlzLAotICAgICAgICAgKiAgICAgYSwgYiwgYyk7Ci0gICAgICAgICAqCi0gICAgICAgICAqIE9ubHkgb25lIGxldmVsIG9mIGlubmVyIGNsYXNzIGlzIHN1cHBvcnRlZCByaWdodCBub3csIGZvciBzaW1wbGljaXR5IGFuZCBiZWNhdXNlCi0gICAgICAgICAqIHdlIGRvbid0IG5lZWQgbW9yZS4KLSAgICAgICAgICoKLSAgICAgICAgICogVGhlIGdlbmVyYXRlZCBjbGFzcyBuYW1lIGlzIHRoZSBjdXJyZW50IGNsYXNzIG5hbWUgd2l0aCAiX0RlbGVnYXRlIiBhcHBlbmRlZCB0byBpdC4KLSAgICAgICAgICogT25lIHRoaW5nIHRvIHJlYWxpemUgaXMgdGhhdCB3ZSBkb24ndCBjYXJlIGFib3V0IGdlbmVyaWNzIC0tIHNpbmNlIGdlbmVyaWMgdHlwZXMKLSAgICAgICAgICogYXJlIGVyYXNlZCBhdCBidWlsZCB0aW1lLCB0aGV5IGhhdmUgbm8gaW5mbHVlbmNlIG9uIHRoZSBtZXRob2QgbmFtZSBiZWluZyBjYWxsZWQuCi0gICAgICAgICAqLwotCi0gICAgICAgIC8vIEFkZCBvdXIgYW5ub3RhdGlvbgotICAgICAgICBBbm5vdGF0aW9uVmlzaXRvciBhdyA9IG1EZWxXcml0ZXIudmlzaXRBbm5vdGF0aW9uKAotICAgICAgICAgICAgICAgIFR5cGUuZ2V0T2JqZWN0VHlwZShUeXBlLmdldEludGVybmFsTmFtZShMYXlvdXRsaWJEZWxlZ2F0ZS5jbGFzcykpLnRvU3RyaW5nKCksCi0gICAgICAgICAgICAgICAgdHJ1ZSk7IC8vIHZpc2libGUgYXQgcnVudGltZQotICAgICAgICBpZiAoYXcgIT0gbnVsbCkgewotICAgICAgICAgICAgYXcudmlzaXRFbmQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIG1EZWxXcml0ZXIudmlzaXRDb2RlKCk7Ci0KLSAgICAgICAgaWYgKG1EZWxlZ2F0ZUxpbmVOdW1iZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgT2JqZWN0W10gcCA9IG1EZWxlZ2F0ZUxpbmVOdW1iZXI7Ci0gICAgICAgICAgICBtRGVsV3JpdGVyLnZpc2l0TGluZU51bWJlcigoSW50ZWdlcikgcFswXSwgKExhYmVsKSBwWzFdKTsKLSAgICAgICAgfQotCi0gICAgICAgIEFycmF5TGlzdDxUeXBlPiBwYXJhbVR5cGVzID0gbmV3IEFycmF5TGlzdDxUeXBlPigpOwotICAgICAgICBTdHJpbmcgZGVsZWdhdGVDbGFzc05hbWUgPSBtQ2xhc3NOYW1lICsgREVMRUdBVEVfU1VGRklYOwotICAgICAgICBib29sZWFuIHB1c2hlZEFyZzAgPSBmYWxzZTsKLSAgICAgICAgaW50IG1heFN0YWNrID0gMDsKLQotICAgICAgICAvLyBDaGVjayBpZiB0aGUgbGFzdCBzZWdtZW50IG9mIHRoZSBjbGFzcyBuYW1lIGhhcyBpbm5lciBhbiBjbGFzcy4KLSAgICAgICAgLy8gUmlnaHQgbm93IHdlIG9ubHkgc3VwcG9ydCBvbmUgbGV2ZWwgb2YgaW5uZXIgY2xhc3Nlcy4KLSAgICAgICAgVHlwZSBvdXRlclR5cGUgPSBudWxsOwotICAgICAgICBpbnQgc2xhc2ggPSBtQ2xhc3NOYW1lLmxhc3RJbmRleE9mKCcvJyk7Ci0gICAgICAgIGludCBkb2wgPSBtQ2xhc3NOYW1lLmxhc3RJbmRleE9mKCckJyk7Ci0gICAgICAgIGlmIChkb2wgIT0gLTEgJiYgZG9sID4gc2xhc2ggJiYgZG9sID09IG1DbGFzc05hbWUuaW5kZXhPZignJCcpKSB7Ci0gICAgICAgICAgICBTdHJpbmcgb3V0ZXJDbGFzcyA9IG1DbGFzc05hbWUuc3Vic3RyaW5nKDAsIGRvbCk7Ci0gICAgICAgICAgICBvdXRlclR5cGUgPSBUeXBlLmdldE9iamVjdFR5cGUob3V0ZXJDbGFzcyk7Ci0KLSAgICAgICAgICAgIC8vIENoYW5nZSBhIGRlbGVnYXRlIGNsYXNzIG5hbWUgdG8gImNvbS9mb28vT3V0ZXJfSW5uZXJfRGVsZWdhdGUiCi0gICAgICAgICAgICBkZWxlZ2F0ZUNsYXNzTmFtZSA9IGRlbGVnYXRlQ2xhc3NOYW1lLnJlcGxhY2UoJyQnLCAnXycpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRm9yIGFuIGluc3RhbmNlIG1ldGhvZCAoZS5nLiBub24tc3RhdGljKSwgcHVzaCB0aGUgJ3RoaXMnIHByZWNlZGVkCi0gICAgICAgIC8vIGJ5IHRoZSAndGhpcycgb2YgYW55IG91dGVyIGNsYXNzLCBpZiBhbnkuCi0gICAgICAgIGlmICghbUlzU3RhdGljKSB7Ci0KLSAgICAgICAgICAgIGlmIChvdXRlclR5cGUgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIC8vIFRoZSBmaXJzdC1sZXZlbCBpbm5lciBjbGFzcyBoYXMgYSBwYWNrYWdlLXByb3RlY3RlZCBtZW1iZXIgY2FsbGVkICd0aGlzJDAnCi0gICAgICAgICAgICAgICAgLy8gdGhhdCBwb2ludHMgdG8gdGhlIG91dGVyIGNsYXNzLgotCi0gICAgICAgICAgICAgICAgLy8gUHVzaCB0aGlzLmdldEZpZWxkKCJ0aGlzJDAiKSBvbiB0aGUgY2FsbCBzdGFjay4KLSAgICAgICAgICAgICAgICBtRGVsV3JpdGVyLnZpc2l0VmFySW5zbihPcGNvZGVzLkFMT0FELCAwKTsgLy8gdmFyIDAgPSB0aGlzCi0gICAgICAgICAgICAgICAgbURlbFdyaXRlci52aXNpdEZpZWxkSW5zbihPcGNvZGVzLkdFVEZJRUxELAotICAgICAgICAgICAgICAgICAgICAgICAgbUNsYXNzTmFtZSwgICAgICAgICAgICAgICAgIC8vIGNsYXNzIHdoZXJlIHRoZSBmaWVsZCBpcyBkZWZpbmVkCi0gICAgICAgICAgICAgICAgICAgICAgICAidGhpcyQwIiwgICAgICAgICAgICAgICAgICAgLy8gZmllbGQgbmFtZQotICAgICAgICAgICAgICAgICAgICAgICAgb3V0ZXJUeXBlLmdldERlc2NyaXB0b3IoKSk7IC8vIHR5cGUgb2YgdGhlIGZpZWxkCi0gICAgICAgICAgICAgICAgbWF4U3RhY2srKzsKLSAgICAgICAgICAgICAgICBwYXJhbVR5cGVzLmFkZChvdXRlclR5cGUpOwotCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIFB1c2ggInRoaXMiIGZvciB0aGUgaW5zdGFuY2UgbWV0aG9kLCB3aGljaCBpcyBhbHdheXMgQUxPQUQgMAotICAgICAgICAgICAgbURlbFdyaXRlci52aXNpdFZhckluc24oT3Bjb2Rlcy5BTE9BRCwgMCk7Ci0gICAgICAgICAgICBtYXhTdGFjaysrOwotICAgICAgICAgICAgcHVzaGVkQXJnMCA9IHRydWU7Ci0gICAgICAgICAgICBwYXJhbVR5cGVzLmFkZChUeXBlLmdldE9iamVjdFR5cGUobUNsYXNzTmFtZSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gUHVzaCBhbGwgb3RoZXIgYXJndW1lbnRzLiBTdGFydCBhdCBhcmcgMSBpZiB3ZSBhbHJlYWR5IHB1c2hlZCAndGhpcycgYWJvdmUuCi0gICAgICAgIFR5cGVbXSBhcmdUeXBlcyA9IFR5cGUuZ2V0QXJndW1lbnRUeXBlcyhtRGVzYyk7Ci0gICAgICAgIGludCBtYXhMb2NhbHMgPSBwdXNoZWRBcmcwID8gMSA6IDA7Ci0gICAgICAgIGZvciAoVHlwZSB0IDogYXJnVHlwZXMpIHsKLSAgICAgICAgICAgIGludCBzaXplID0gdC5nZXRTaXplKCk7Ci0gICAgICAgICAgICBtRGVsV3JpdGVyLnZpc2l0VmFySW5zbih0LmdldE9wY29kZShPcGNvZGVzLklMT0FEKSwgbWF4TG9jYWxzKTsKLSAgICAgICAgICAgIG1heExvY2FscyArPSBzaXplOwotICAgICAgICAgICAgbWF4U3RhY2sgKz0gc2l6ZTsKLSAgICAgICAgICAgIHBhcmFtVHlwZXMuYWRkKHQpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gQ29uc3RydWN0IHRoZSBkZXNjcmlwdG9yIG9mIHRoZSBkZWxlZ2F0ZSBiYXNlZCBvbiB0aGUgcGFyYW1ldGVycwotICAgICAgICAvLyB3ZSBwdXNoZWQgb24gdGhlIGNhbGwgc3RhY2suIFRoZSByZXR1cm4gdHlwZSByZW1haW5zIHVuY2hhbmdlZC4KLSAgICAgICAgU3RyaW5nIGRlc2MgPSBUeXBlLmdldE1ldGhvZERlc2NyaXB0b3IoCi0gICAgICAgICAgICAgICAgVHlwZS5nZXRSZXR1cm5UeXBlKG1EZXNjKSwKLSAgICAgICAgICAgICAgICBwYXJhbVR5cGVzLnRvQXJyYXkobmV3IFR5cGVbcGFyYW1UeXBlcy5zaXplKCldKSk7Ci0KLSAgICAgICAgLy8gSW52b2tlIHRoZSBzdGF0aWMgZGVsZWdhdGUKLSAgICAgICAgbURlbFdyaXRlci52aXNpdE1ldGhvZEluc24oT3Bjb2Rlcy5JTlZPS0VTVEFUSUMsCi0gICAgICAgICAgICAgICAgZGVsZWdhdGVDbGFzc05hbWUsCi0gICAgICAgICAgICAgICAgbU1ldGhvZE5hbWUsCi0gICAgICAgICAgICAgICAgZGVzYyk7Ci0KLSAgICAgICAgVHlwZSByZXR1cm5UeXBlID0gVHlwZS5nZXRSZXR1cm5UeXBlKG1EZXNjKTsKLSAgICAgICAgbURlbFdyaXRlci52aXNpdEluc24ocmV0dXJuVHlwZS5nZXRPcGNvZGUoT3Bjb2Rlcy5JUkVUVVJOKSk7Ci0KLSAgICAgICAgbURlbFdyaXRlci52aXNpdE1heHMobWF4U3RhY2ssIG1heExvY2Fscyk7Ci0gICAgICAgIG1EZWxXcml0ZXIudmlzaXRFbmQoKTsKLQotICAgICAgICAvLyBGb3IgZGVidWdnaW5nIG5vdy4gTWF5YmUgd2Ugc2hvdWxkIGNvbGxlY3QgdGhlc2UgYW5kIHN0b3JlIHRoZW0gaW4KLSAgICAgICAgLy8gYSB0ZXh0IGZpbGUgZm9yIGhlbHBpbmcgY3JlYXRlIHRoZSBkZWxlZ2F0ZXMuIFdlIGNvdWxkIGFsc28gY29tcGFyZQotICAgICAgICAvLyB0aGUgdGV4dCBmaWxlIHRvIGEgZ29sZGVuIGFuZCBicmVhayB0aGUgYnVpbGQgb24gdW5zdXBwb3J0ZWQgY2hhbmdlcwotICAgICAgICAvLyBvciByZWdyZXNzaW9ucy4gRXZlbiBiZXR0ZXIgd2UgY291bGQgZmFuY3ktcHJpbnQgc29tZXRoaW5nIHRoYXQgbG9va3MKLSAgICAgICAgLy8gbGlrZSB0aGUgZXhwZWN0ZWQgSmF2YSBtZXRob2QgZGVjbGFyYXRpb24uCi0gICAgICAgIG1Mb2cuZGVidWcoIkRlbGVnYXRlOiAlMSRzICMgJTIkcyAlMyRzIiwgZGVsZWdhdGVDbGFzc05hbWUsIG1NZXRob2ROYW1lLCBkZXNjKTsKLSAgICB9Ci0KLSAgICAvKiBQYXNzIGRvd24gdG8gdmlzaXRvciB3cml0ZXIuIEluIHRoaXMgaW1wbGVtZW50YXRpb24sIGVpdGhlciBkbyBub3RoaW5nLiAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0Q29kZSgpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdENvZGUoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qCi0gICAgICogdmlzaXRNYXhzIGlzIGNhbGxlZCBqdXN0IGJlZm9yZSB2aXNpdEVuZCBpZiB0aGVyZSB3YXMgYW55IGNvZGUgdG8gcmV3cml0ZS4KLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdE1heHMoaW50IG1heFN0YWNrLCBpbnQgbWF4TG9jYWxzKSB7Ci0gICAgICAgIGlmIChtT3JnV3JpdGVyICE9IG51bGwpIHsKLSAgICAgICAgICAgIG1PcmdXcml0ZXIudmlzaXRNYXhzKG1heFN0YWNrLCBtYXhMb2NhbHMpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqIEVuZCBvZiB2aXNpdGluZy4gR2VuZXJhdGUgdGhlIGRlbGVnYXRpbmcgY29kZS4gKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdEVuZCgpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdEVuZCgpOwotICAgICAgICB9Ci0gICAgICAgIGdlbmVyYXRlRGVsZWdhdGVDb2RlKCk7Ci0gICAgfQotCi0gICAgLyogV3JpdGVzIGFsbCBhbm5vdGF0aW9uIGZyb20gdGhlIG9yaWdpbmFsIG1ldGhvZC4gKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQW5ub3RhdGlvblZpc2l0b3IgdmlzaXRBbm5vdGF0aW9uKFN0cmluZyBkZXNjLCBib29sZWFuIHZpc2libGUpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG1PcmdXcml0ZXIudmlzaXRBbm5vdGF0aW9uKGRlc2MsIHZpc2libGUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiBXcml0ZXMgYWxsIGFubm90YXRpb24gZGVmYXVsdCB2YWx1ZXMgZnJvbSB0aGUgb3JpZ2luYWwgbWV0aG9kLiAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBBbm5vdGF0aW9uVmlzaXRvciB2aXNpdEFubm90YXRpb25EZWZhdWx0KCkgewotICAgICAgICBpZiAobU9yZ1dyaXRlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gbU9yZ1dyaXRlci52aXNpdEFubm90YXRpb25EZWZhdWx0KCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBBbm5vdGF0aW9uVmlzaXRvciB2aXNpdFBhcmFtZXRlckFubm90YXRpb24oaW50IHBhcmFtZXRlciwgU3RyaW5nIGRlc2MsCi0gICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG1PcmdXcml0ZXIudmlzaXRQYXJhbWV0ZXJBbm5vdGF0aW9uKHBhcmFtZXRlciwgZGVzYywgdmlzaWJsZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qIFdyaXRlcyBhbGwgYXR0cmlidXRlcyBmcm9tIHRoZSBvcmlnaW5hbCBtZXRob2QuICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRBdHRyaWJ1dGUoQXR0cmlidXRlIGF0dHIpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdEF0dHJpYnV0ZShhdHRyKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qCi0gICAgICogT25seSB3cml0ZXMgdGhlIGZpcnN0IGxpbmUgbnVtYmVyIHByZXNlbnQgaW4gdGhlIG9yaWdpbmFsIGNvZGUgc28gdGhhdCBzb3VyY2UKLSAgICAgKiB2aWV3ZXJzIGNhbiBkaXJlY3QgdG8gdGhlIGNvcnJlY3QgbWV0aG9kLCBldmVuIGlmIHRoZSBjb250ZW50IGRvZXNuJ3QgbWF0Y2guCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRMaW5lTnVtYmVyKGludCBsaW5lLCBMYWJlbCBzdGFydCkgewotICAgICAgICAvLyBDYXB0dXJlIHRoZSBmaXJzdCBsaW5lIHZhbHVlcyBmb3IgdGhlIG5ldyBkZWxlZ2F0ZSBtZXRob2QKLSAgICAgICAgaWYgKG1EZWxlZ2F0ZUxpbmVOdW1iZXIgPT0gbnVsbCkgewotICAgICAgICAgICAgbURlbGVnYXRlTGluZU51bWJlciA9IG5ldyBPYmplY3RbXSB7IGxpbmUsIHN0YXJ0IH07Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdExpbmVOdW1iZXIobGluZSwgc3RhcnQpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRJbnNuKGludCBvcGNvZGUpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdEluc24ob3Bjb2RlKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0TGFiZWwoTGFiZWwgbGFiZWwpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdExhYmVsKGxhYmVsKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0VHJ5Q2F0Y2hCbG9jayhMYWJlbCBzdGFydCwgTGFiZWwgZW5kLCBMYWJlbCBoYW5kbGVyLCBTdHJpbmcgdHlwZSkgewotICAgICAgICBpZiAobU9yZ1dyaXRlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBtT3JnV3JpdGVyLnZpc2l0VHJ5Q2F0Y2hCbG9jayhzdGFydCwgZW5kLCBoYW5kbGVyLCB0eXBlKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0TWV0aG9kSW5zbihpbnQgb3Bjb2RlLCBTdHJpbmcgb3duZXIsIFN0cmluZyBuYW1lLCBTdHJpbmcgZGVzYykgewotICAgICAgICBpZiAobU9yZ1dyaXRlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBtT3JnV3JpdGVyLnZpc2l0TWV0aG9kSW5zbihvcGNvZGUsIG93bmVyLCBuYW1lLCBkZXNjKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0RmllbGRJbnNuKGludCBvcGNvZGUsIFN0cmluZyBvd25lciwgU3RyaW5nIG5hbWUsIFN0cmluZyBkZXNjKSB7Ci0gICAgICAgIGlmIChtT3JnV3JpdGVyICE9IG51bGwpIHsKLSAgICAgICAgICAgIG1PcmdXcml0ZXIudmlzaXRGaWVsZEluc24ob3Bjb2RlLCBvd25lciwgbmFtZSwgZGVzYyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdEZyYW1lKGludCB0eXBlLCBpbnQgbkxvY2FsLCBPYmplY3RbXSBsb2NhbCwgaW50IG5TdGFjaywgT2JqZWN0W10gc3RhY2spIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdEZyYW1lKHR5cGUsIG5Mb2NhbCwgbG9jYWwsIG5TdGFjaywgc3RhY2spOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRJaW5jSW5zbihpbnQgdmFyLCBpbnQgaW5jcmVtZW50KSB7Ci0gICAgICAgIGlmIChtT3JnV3JpdGVyICE9IG51bGwpIHsKLSAgICAgICAgICAgIG1PcmdXcml0ZXIudmlzaXRJaW5jSW5zbih2YXIsIGluY3JlbWVudCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdEludEluc24oaW50IG9wY29kZSwgaW50IG9wZXJhbmQpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdEludEluc24ob3Bjb2RlLCBvcGVyYW5kKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0SnVtcEluc24oaW50IG9wY29kZSwgTGFiZWwgbGFiZWwpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdEp1bXBJbnNuKG9wY29kZSwgbGFiZWwpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRMZGNJbnNuKE9iamVjdCBjc3QpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdExkY0luc24oY3N0KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0TG9jYWxWYXJpYWJsZShTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MsIFN0cmluZyBzaWduYXR1cmUsCi0gICAgICAgICAgICBMYWJlbCBzdGFydCwgTGFiZWwgZW5kLCBpbnQgaW5kZXgpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdExvY2FsVmFyaWFibGUobmFtZSwgZGVzYywgc2lnbmF0dXJlLCBzdGFydCwgZW5kLCBpbmRleCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdExvb2t1cFN3aXRjaEluc24oTGFiZWwgZGZsdCwgaW50W10ga2V5cywgTGFiZWxbXSBsYWJlbHMpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdExvb2t1cFN3aXRjaEluc24oZGZsdCwga2V5cywgbGFiZWxzKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0TXVsdGlBTmV3QXJyYXlJbnNuKFN0cmluZyBkZXNjLCBpbnQgZGltcykgewotICAgICAgICBpZiAobU9yZ1dyaXRlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBtT3JnV3JpdGVyLnZpc2l0TXVsdGlBTmV3QXJyYXlJbnNuKGRlc2MsIGRpbXMpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRUYWJsZVN3aXRjaEluc24oaW50IG1pbiwgaW50IG1heCwgTGFiZWwgZGZsdCwgTGFiZWxbXSBsYWJlbHMpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdFRhYmxlU3dpdGNoSW5zbihtaW4sIG1heCwgZGZsdCwgbGFiZWxzKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0VHlwZUluc24oaW50IG9wY29kZSwgU3RyaW5nIHR5cGUpIHsKLSAgICAgICAgaWYgKG1PcmdXcml0ZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgbU9yZ1dyaXRlci52aXNpdFR5cGVJbnNuKG9wY29kZSwgdHlwZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdFZhckluc24oaW50IG9wY29kZSwgaW50IHZhcikgewotICAgICAgICBpZiAobU9yZ1dyaXRlciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBtT3JnV3JpdGVyLnZpc2l0VmFySW5zbihvcGNvZGUsIHZhcik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvRGVwZW5kZW5jeUZpbmRlci5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9EZXBlbmRlbmN5RmluZGVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5ODhjNzAuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9EZXBlbmRlbmN5RmluZGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw3ODcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZTsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5hbm5vdGF0aW9ucy5WaXNpYmxlRm9yVGVzdGluZzsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuYW5ub3RhdGlvbnMuVmlzaWJsZUZvclRlc3RpbmcuVmlzaWJpbGl0eTsKLQotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkFubm90YXRpb25WaXNpdG9yOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkF0dHJpYnV0ZTsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1JlYWRlcjsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1Zpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uRmllbGRWaXNpdG9yOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkxhYmVsOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLk1ldGhvZFZpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uT3Bjb2RlczsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5UeXBlOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLnNpZ25hdHVyZS5TaWduYXR1cmVSZWFkZXI7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uc2lnbmF0dXJlLlNpZ25hdHVyZVZpc2l0b3I7Ci0KLWltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwotaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7Ci1pbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOwotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotaW1wb3J0IGphdmEudXRpbC5NYXA7Ci1pbXBvcnQgamF2YS51dGlsLk1hcC5FbnRyeTsKLWltcG9ydCBqYXZhLnV0aWwuU2V0OwotaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOwotaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OwotaW1wb3J0IGphdmEudXRpbC56aXAuWmlwRW50cnk7Ci1pbXBvcnQgamF2YS51dGlsLnppcC5aaXBGaWxlOwotCi0vKioKLSAqIEFuYWx5emVzIHRoZSBpbnB1dCBKQVIgdXNpbmcgdGhlIEFTTSBqYXZhIGJ5dGVjb2RlIG1hbmlwdWxhdGlvbiBsaWJyYXJ5Ci0gKiB0byBsaXN0IHRoZSBjbGFzc2VzIGFuZCB0aGVpciBkZXBlbmRlbmNpZXMuIEEgImRlcGVuZGVuY3kiIGlzIGEgY2xhc3MKLSAqIHVzZWQgYnkgYW5vdGhlciBjbGFzcy4KLSAqLwotcHVibGljIGNsYXNzIERlcGVuZGVuY3lGaW5kZXIgewotCi0gICAgLy8gTm90ZTogYSBidW5jaCBvZiBzdHVmZiBoYXMgcGFja2FnZS1sZXZlbCBhY2Nlc3MgZm9yIHVuaXQgdGVzdHMuIENvbnNpZGVyIGl0IHByaXZhdGUuCi0KLSAgICAvKiogT3V0cHV0IGxvZ2dlci4gKi8KLSAgICBwcml2YXRlIGZpbmFsIExvZyBtTG9nOwotCi0gICAgLyoqCi0gICAgICogQ3JlYXRlcyBhIG5ldyBhbmFseXplci4KLSAgICAgKgotICAgICAqIEBwYXJhbSBsb2cgVGhlIGxvZyBvdXRwdXQuCi0gICAgICovCi0gICAgcHVibGljIERlcGVuZGVuY3lGaW5kZXIoTG9nIGxvZykgewotICAgICAgICBtTG9nID0gbG9nOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFN0YXJ0cyB0aGUgYW5hbHlzaXMgdXNpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBjb25zdHJ1Y3Rvci4KLSAgICAgKgotICAgICAqIEBwYXJhbSBvc0phclBhdGggVGhlIGlucHV0IHNvdXJjZSBKQVJzIHRvIHBhcnNlLgotICAgICAqIEByZXR1cm4gQSBwYWlyOiBbMF06IG1hcCB7IGNsYXNzIEZRQ04gPT4gc2V0IG9mIEZRQ04gY2xhc3MgZGVwZW5kZW5jaWVzIH0uCi0gICAgICogICAgICAgICAgICAgICAgIFsxXTogbWFwIHsgbWlzc2luZyBjbGFzcyBGUUNOID0+IHNldCBvZiBGUUNOIGNsYXNzIHRoYXQgdXNlcyBpdC4gfQotICAgICAqLwotICAgIHB1YmxpYyBMaXN0PE1hcDxTdHJpbmcsIFNldDxTdHJpbmc+Pj4gZmluZERlcHMoTGlzdDxTdHJpbmc+IG9zSmFyUGF0aCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKLQotICAgICAgICBNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gemlwQ2xhc3NlcyA9IHBhcnNlWmlwKG9zSmFyUGF0aCk7Ci0gICAgICAgIG1Mb2cuaW5mbygiRm91bmQgJWQgY2xhc3NlcyBpbiBpbnB1dCBKQVIlcy4iLAotICAgICAgICAgICAgICAgIHppcENsYXNzZXMuc2l6ZSgpLAotICAgICAgICAgICAgICAgIG9zSmFyUGF0aC5zaXplKCkgPiAxID8gInMiIDogIiIpOwotCi0gICAgICAgIE1hcDxTdHJpbmcsIFNldDxTdHJpbmc+PiBkZXBzID0gZmluZENsYXNzZXNEZXBzKHppcENsYXNzZXMpOwotCi0gICAgICAgIE1hcDxTdHJpbmcsIFNldDxTdHJpbmc+PiBtaXNzaW5nID0gZmluZE1pc3NpbmdDbGFzc2VzKGRlcHMsIHppcENsYXNzZXMua2V5U2V0KCkpOwotCi0gICAgICAgIExpc3Q8TWFwPFN0cmluZywgU2V0PFN0cmluZz4+PiByZXN1bHQgPSBuZXcgQXJyYXlMaXN0PE1hcDxTdHJpbmcsU2V0PFN0cmluZz4+PigyKTsKLSAgICAgICAgcmVzdWx0LmFkZChkZXBzKTsKLSAgICAgICAgcmVzdWx0LmFkZChtaXNzaW5nKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBQcmludHMgZGVwZW5kZW5jaWVzIHRvIHRoZSBjdXJyZW50IGxvZ2dlciwgZm91bmQgc3R1ZmYgYW5kIG1pc3Npbmcgc3R1ZmYuCi0gICAgICovCi0gICAgcHVibGljIHZvaWQgcHJpbnRBbGxEZXBzKExpc3Q8TWFwPFN0cmluZywgU2V0PFN0cmluZz4+PiByZXN1bHQpIHsKLSAgICAgICAgYXNzZXJ0IHJlc3VsdC5zaXplKCkgPT0gMjsKLSAgICAgICAgTWFwPFN0cmluZywgU2V0PFN0cmluZz4+IGRlcHMgPSByZXN1bHQuZ2V0KDApOwotICAgICAgICBNYXA8U3RyaW5nLCBTZXQ8U3RyaW5nPj4gbWlzc2luZyA9IHJlc3VsdC5nZXQoMSk7Ci0KLSAgICAgICAgLy8gUHJpbnQgYWxsIGRlcGVuZGVuY2VzIGZvdW5kIGluIHRoZSBmb3JtYXQ6Ci0gICAgICAgIC8vICtGb3VuZDogPEZRQ04gZnJvbSB6aXA+Ci0gICAgICAgIC8vICAgICB1c2VzOiBGUUNOCi0KLSAgICAgICAgbUxvZy5pbmZvKCIrKysrKysgJWQgRW50cmllcyBmb3VuZCBpbiBzb3VyY2UgSkFScyIsIGRlcHMuc2l6ZSgpKTsKLSAgICAgICAgbUxvZy5pbmZvKCIiKTsKLQotICAgICAgICBmb3IgKEVudHJ5PFN0cmluZywgU2V0PFN0cmluZz4+IGVudHJ5IDogZGVwcy5lbnRyeVNldCgpKSB7Ci0gICAgICAgICAgICBtTG9nLmluZm8oICAgICIrRm91bmQgIDogJXMiLCBlbnRyeS5nZXRLZXkoKSk7Ci0gICAgICAgICAgICBmb3IgKFN0cmluZyBkZXAgOiBlbnRyeS5nZXRWYWx1ZSgpKSB7Ci0gICAgICAgICAgICAgICAgbUxvZy5pbmZvKCIgICAgdXNlczogJXMiLCBkZXApOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBtTG9nLmluZm8oIiIpOwotICAgICAgICB9Ci0KLQotICAgICAgICAvLyBOb3cgcHJpbnQgYWxsIG1pc3NpbmcgZGVwZW5kZW5jZXMgaW4gdGhlIGZvcm1hdDoKLSAgICAgICAgLy8gLU1pc3NpbmcgPEZRQ04+OgotICAgICAgICAvLyAgICAgdXNlZCBieTogPEZRQ04+Ci0KLSAgICAgICAgbUxvZy5pbmZvKCIiKTsKLSAgICAgICAgbUxvZy5pbmZvKCItLS0tLS0gJWQgRW50cmllcyBtaXNzaW5nIGZyb20gc291cmNlIEpBUnMiLCBtaXNzaW5nLnNpemUoKSk7Ci0gICAgICAgIG1Mb2cuaW5mbygiIik7Ci0KLSAgICAgICAgZm9yIChFbnRyeTxTdHJpbmcsIFNldDxTdHJpbmc+PiBlbnRyeSA6IG1pc3NpbmcuZW50cnlTZXQoKSkgewotICAgICAgICAgICAgbUxvZy5pbmZvKCAgICAiLU1pc3NpbmcgIDogJXMiLCBlbnRyeS5nZXRLZXkoKSk7Ci0gICAgICAgICAgICBmb3IgKFN0cmluZyBkZXAgOiBlbnRyeS5nZXRWYWx1ZSgpKSB7Ci0gICAgICAgICAgICAgICAgbUxvZy5pbmZvKCIgICB1c2VkIGJ5OiAlcyIsIGRlcCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1Mb2cuaW5mbygiIik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBQcmludHMgb25seSBhIHN1bW1hcnkgb2YgdGhlIG1pc3NpbmcgZGVwZW5kZW5jaWVzIHRvIHRoZSBjdXJyZW50IGxvZ2dlci4KLSAgICAgKi8KLSAgICBwdWJsaWMgdm9pZCBwcmludE1pc3NpbmdEZXBzKExpc3Q8TWFwPFN0cmluZywgU2V0PFN0cmluZz4+PiByZXN1bHQpIHsKLSAgICAgICAgYXNzZXJ0IHJlc3VsdC5zaXplKCkgPT0gMjsKLSAgICAgICAgQFN1cHByZXNzV2FybmluZ3MoInVudXNlZCIpIE1hcDxTdHJpbmcsIFNldDxTdHJpbmc+PiBkZXBzID0gcmVzdWx0LmdldCgwKTsKLSAgICAgICAgTWFwPFN0cmluZywgU2V0PFN0cmluZz4+IG1pc3NpbmcgPSByZXN1bHQuZ2V0KDEpOwotCi0gICAgICAgIGZvciAoU3RyaW5nIGZxY24gOiBtaXNzaW5nLmtleVNldCgpKSB7Ci0gICAgICAgICAgICBtTG9nLmluZm8oIiVzIiwgZnFjbik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyAtLS0tLS0tLS0tLS0tLS0tCi0KLSAgICAvKioKLSAgICAgKiBQYXJzZXMgYSBKQVIgZmlsZSBhbmQgcmV0dXJucyBhIGxpc3Qgb2YgYWxsIGNsYXNzZXMgZm91bmRzIHVzaW5nIGEgbWFwCi0gICAgICogY2xhc3MgbmFtZSA9PiBBU00gQ2xhc3NSZWFkZXIuIENsYXNzIG5hbWVzIGFyZSBpbiB0aGUgZm9ybSAiYW5kcm9pZC52aWV3LlZpZXciLgotICAgICAqLwotICAgIE1hcDxTdHJpbmcsQ2xhc3NSZWFkZXI+IHBhcnNlWmlwKExpc3Q8U3RyaW5nPiBqYXJQYXRoTGlzdCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKLSAgICAgICAgVHJlZU1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBjbGFzc2VzID0gbmV3IFRyZWVNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4oKTsKLQotICAgICAgICBmb3IgKFN0cmluZyBqYXJQYXRoIDogamFyUGF0aExpc3QpIHsKLSAgICAgICAgICAgIFppcEZpbGUgemlwID0gbmV3IFppcEZpbGUoamFyUGF0aCk7Ci0gICAgICAgICAgICBFbnVtZXJhdGlvbjw/IGV4dGVuZHMgWmlwRW50cnk+IGVudHJpZXMgPSB6aXAuZW50cmllcygpOwotICAgICAgICAgICAgWmlwRW50cnkgZW50cnk7Ci0gICAgICAgICAgICB3aGlsZSAoZW50cmllcy5oYXNNb3JlRWxlbWVudHMoKSkgewotICAgICAgICAgICAgICAgIGVudHJ5ID0gZW50cmllcy5uZXh0RWxlbWVudCgpOwotICAgICAgICAgICAgICAgIGlmIChlbnRyeS5nZXROYW1lKCkuZW5kc1dpdGgoIi5jbGFzcyIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIENsYXNzUmVhZGVyIGNyID0gbmV3IENsYXNzUmVhZGVyKHppcC5nZXRJbnB1dFN0cmVhbShlbnRyeSkpOwotICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gY2xhc3NSZWFkZXJUb0NsYXNzTmFtZShjcik7Ci0gICAgICAgICAgICAgICAgICAgIGNsYXNzZXMucHV0KGNsYXNzTmFtZSwgY3IpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBjbGFzc2VzOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFV0aWxpdHkgdGhhdCByZXR1cm5zIHRoZSBmdWxseSBxdWFsaWZpZWQgYmluYXJ5IGNsYXNzIG5hbWUgZm9yIGEgQ2xhc3NSZWFkZXIuCi0gICAgICogRS5nLiBpdCByZXR1cm5zIHNvbWV0aGluZyBsaWtlIGFuZHJvaWQudmlldy5WaWV3LgotICAgICAqLwotICAgIHN0YXRpYyBTdHJpbmcgY2xhc3NSZWFkZXJUb0NsYXNzTmFtZShDbGFzc1JlYWRlciBjbGFzc1JlYWRlcikgewotICAgICAgICBpZiAoY2xhc3NSZWFkZXIgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4gY2xhc3NSZWFkZXIuZ2V0Q2xhc3NOYW1lKCkucmVwbGFjZSgnLycsICcuJyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBVdGlsaXR5IHRoYXQgcmV0dXJucyB0aGUgZnVsbHkgcXVhbGlmaWVkIGJpbmFyeSBjbGFzcyBuYW1lIGZyb20gYSBwYXRoLWxpa2UgRlFDTi4KLSAgICAgKiBFLmcuIGl0IHJldHVybnMgYW5kcm9pZC52aWV3LlZpZXcgZnJvbSBhbmRyb2lkL3ZpZXcvVmlldy4KLSAgICAgKi8KLSAgICBzdGF0aWMgU3RyaW5nIGludGVybmFsVG9CaW5hcnlDbGFzc05hbWUoU3RyaW5nIGNsYXNzTmFtZSkgewotICAgICAgICBpZiAoY2xhc3NOYW1lID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIGNsYXNzTmFtZS5yZXBsYWNlKCcvJywgJy4nKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIEZpbmRzIGFsbCBkZXBlbmRlbmNpZXMgZm9yIGFsbCBjbGFzc2VzIGluIGtlZXBDbGFzc2VzIHdoaWNoIGFyZSBhbHNvCi0gICAgICogbGlzdGVkIGluIHppcENsYXNzZXMuIFJldHVybnMgYSBtYXAgb2YgYWxsIHRoZSBkZXBlbmRlbmNpZXMgZm91bmQuCi0gICAgICovCi0gICAgTWFwPFN0cmluZywgU2V0PFN0cmluZz4+IGZpbmRDbGFzc2VzRGVwcyhNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gemlwQ2xhc3NlcykgewotCi0gICAgICAgIC8vIFRoZSBkZXBlbmRlbmNpZXMgdGhhdCB3ZSdsbCBjb2xsZWN0LgotICAgICAgICAvLyBJdCdzIGEgbWFwIENsYXNzIG5hbWUgPT4gdXNlcyBjbGFzcyBuYW1lcy4KLSAgICAgICAgTWFwPFN0cmluZywgU2V0PFN0cmluZz4+IGRlcGVuZGVuY3lNYXAgPSBuZXcgVHJlZU1hcDxTdHJpbmcsIFNldDxTdHJpbmc+PigpOwotCi0gICAgICAgIERlcGVuZGVuY3lWaXNpdG9yIHZpc2l0b3IgPSBnZXRWaXNpdG9yKCk7Ci0KLSAgICAgICAgaW50IGNvdW50ID0gMDsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGZvciAoRW50cnk8U3RyaW5nLCBDbGFzc1JlYWRlcj4gZW50cnkgOiB6aXBDbGFzc2VzLmVudHJ5U2V0KCkpIHsKLSAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGVudHJ5LmdldEtleSgpOwotCi0gICAgICAgICAgICAgICAgVHJlZVNldDxTdHJpbmc+IHNldCA9IG5ldyBUcmVlU2V0PFN0cmluZz4oKTsKLSAgICAgICAgICAgICAgICBkZXBlbmRlbmN5TWFwLnB1dChuYW1lLCBzZXQpOwotICAgICAgICAgICAgICAgIHZpc2l0b3Iuc2V0RGVwZW5kZW5jeVNldChzZXQpOwotCi0gICAgICAgICAgICAgICAgQ2xhc3NSZWFkZXIgY3IgPSBlbnRyeS5nZXRWYWx1ZSgpOwotICAgICAgICAgICAgICAgIGNyLmFjY2VwdCh2aXNpdG9yLCAwIC8qIGZsYWdzICovKTsKLQotICAgICAgICAgICAgICAgIHZpc2l0b3Iuc2V0RGVwZW5kZW5jeVNldChudWxsKTsKLQotICAgICAgICAgICAgICAgIG1Mb2cuZGVidWdOb2xuKCJWaXNpdGVkICVkIGNsYXNzZXNcciIsICsrY291bnQpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGZpbmFsbHkgewotICAgICAgICAgICAgbUxvZy5kZWJ1Z05vbG4oIlxuIik7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZGVwZW5kZW5jeU1hcDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDb21wdXRlcyB3aGljaCBjbGFzc2VzIEZRQ04gd2VyZSBmb3VuZCBhcyBkZXBlbmRlbmNpZXMgdGhhdCBhcmUgTk9UIGxpc3RlZAotICAgICAqIGluIHRoZSBvcmlnaW5hbCBKQVIgY2xhc3Nlcy4KLSAgICAgKgotICAgICAqIEBwYXJhbSBkZXBzIFRoZSBtYXAgeyBGUUNOID0+IGRlcGVuZGVuY2llc1tdIH0gcmV0dXJuZWQgYnkge0BsaW5rICNmaW5kQ2xhc3Nlc0RlcHMoTWFwKX0uCi0gICAgICogQHBhcmFtIHppcENsYXNzZXMgVGhlIHNldCBvZiBhbGwgY2xhc3NlcyBGUUNOIGZvdW5kIGluIHRoZSBKQVIgZmlsZXMuCi0gICAgICogQHJldHVybiBBIG1hcCB7IEZRQ04gbm90IGZvdW5kIGluIHRoZSB6aXBDbGFzc2VzID0+IGNsYXNzZXMgdXNpbmcgaXQgfQotICAgICAqLwotICAgIHByaXZhdGUgTWFwPFN0cmluZywgU2V0PFN0cmluZz4+IGZpbmRNaXNzaW5nQ2xhc3NlcygKLSAgICAgICAgICAgIE1hcDxTdHJpbmcsIFNldDxTdHJpbmc+PiBkZXBzLAotICAgICAgICAgICAgU2V0PFN0cmluZz4gemlwQ2xhc3NlcykgewotICAgICAgICBNYXA8U3RyaW5nLCBTZXQ8U3RyaW5nPj4gbWlzc2luZyA9IG5ldyBUcmVlTWFwPFN0cmluZywgU2V0PFN0cmluZz4+KCk7Ci0KLSAgICAgICAgZm9yIChFbnRyeTxTdHJpbmcsIFNldDxTdHJpbmc+PiBlbnRyeSA6IGRlcHMuZW50cnlTZXQoKSkgewotICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBlbnRyeS5nZXRLZXkoKTsKLQotICAgICAgICAgICAgZm9yIChTdHJpbmcgZGVwIDogZW50cnkuZ2V0VmFsdWUoKSkgewotICAgICAgICAgICAgICAgIGlmICghemlwQ2xhc3Nlcy5jb250YWlucyhkZXApKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgZGVwZW5kZW5jeSBkb2Vzbid0IGV4aXN0IGluIHRoZSB6aXAgY2xhc3Nlcy4KLSAgICAgICAgICAgICAgICAgICAgU2V0PFN0cmluZz4gc2V0ID0gbWlzc2luZy5nZXQoZGVwKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNldCA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXQgPSBuZXcgVHJlZVNldDxTdHJpbmc+KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtaXNzaW5nLnB1dChkZXAsIHNldCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChuYW1lKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBtaXNzaW5nOwotICAgIH0KLQotCi0gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgLyoqCi0gICAgICogSW5zdGFudGlhdGVzIGEgbmV3IERlcGVuZGVuY3lWaXNpdG9yLiBVc2VmdWwgZm9yIHVuaXQgdGVzdHMuCi0gICAgICovCi0gICAgQFZpc2libGVGb3JUZXN0aW5nKHZpc2liaWxpdHk9VmlzaWJpbGl0eS5QUklWQVRFKQotICAgIERlcGVuZGVuY3lWaXNpdG9yIGdldFZpc2l0b3IoKSB7Ci0gICAgICAgIHJldHVybiBuZXcgRGVwZW5kZW5jeVZpc2l0b3IoKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBWaXNpdG9yIHRvIGNvbGxlY3QgYWxsIHRoZSB0eXBlIGRlcGVuZGVuY2llcyBmcm9tIGEgY2xhc3MuCi0gICAgICovCi0gICAgcHVibGljIGNsYXNzIERlcGVuZGVuY3lWaXNpdG9yIGV4dGVuZHMgQ2xhc3NWaXNpdG9yIHsKLQotICAgICAgICBwcml2YXRlIFNldDxTdHJpbmc+IG1DdXJyZW50RGVwU2V0OwotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBDcmVhdGVzIGEgbmV3IHZpc2l0b3IgdGhhdCB3aWxsIGZpbmQgYWxsIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoZSB2aXNpdGVkIGNsYXNzLgotICAgICAgICAgKi8KLSAgICAgICAgcHVibGljIERlcGVuZGVuY3lWaXNpdG9yKCkgewotICAgICAgICAgICAgc3VwZXIoT3Bjb2Rlcy5BU000KTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBTZXRzIHRoZSB7QGxpbmsgU2V0fSB3aGVyZSB0byByZWNvcmQgZGlyZWN0IGRlcGVuZGVuY2llcyBmb3IgdGhpcyBjbGFzcy4KLSAgICAgICAgICogVGhpcyB3aWxsIGNoYW5nZSBiZWZvcmUgZWFjaCB7QGxpbmsgQ2xhc3NSZWFkZXIjYWNjZXB0KENsYXNzVmlzaXRvciwgaW50KX0gY2FsbC4KLSAgICAgICAgICovCi0gICAgICAgIHB1YmxpYyB2b2lkIHNldERlcGVuZGVuY3lTZXQoU2V0PFN0cmluZz4gc2V0KSB7Ci0gICAgICAgICAgICBtQ3VycmVudERlcFNldCA9IHNldDsKLSAgICAgICAgfQotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBDb25zaWRlcnMgdGhlIGdpdmVuIGNsYXNzIG5hbWUgYXMgYSBkZXBlbmRlbmN5LgotICAgICAgICAgKi8KLSAgICAgICAgcHVibGljIHZvaWQgY29uc2lkZXJOYW1lKFN0cmluZyBjbGFzc05hbWUpIHsKLSAgICAgICAgICAgIGlmIChjbGFzc05hbWUgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgY2xhc3NOYW1lID0gaW50ZXJuYWxUb0JpbmFyeUNsYXNzTmFtZShjbGFzc05hbWUpOwotCi0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIC8vIGV4Y2x1ZGUgY2xhc3NlcyB0aGF0IGFyZSBwYXJ0IG9mIHRoZSBkZWZhdWx0IEpSRSAodGhlIG9uZSBleGVjdXRpbmcgdGhpcyBwcm9ncmFtKQotICAgICAgICAgICAgICAgIGlmIChnZXRDbGFzcygpLmdldENsYXNzTG9hZGVyKCkubG9hZENsYXNzKGNsYXNzTmFtZSkgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgLy8gaWdub3JlCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIEFkZCBpdCB0byB0aGUgZGVwZW5kZW5jeSBzZXQgZm9yIHRoZSBjdXJyZW50bHkgdmlzaXRlZCBjbGFzcywgYXMgbmVlZGVkLgotICAgICAgICAgICAgYXNzZXJ0IG1DdXJyZW50RGVwU2V0ICE9IG51bGw7Ci0gICAgICAgICAgICBpZiAobUN1cnJlbnREZXBTZXQgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIG1DdXJyZW50RGVwU2V0LmFkZChjbGFzc05hbWUpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIENvbnNpZGVycyB0aGlzIGFycmF5IG9mIG5hbWVzIHVzaW5nIGNvbnNpZGVyTmFtZSgpLgotICAgICAgICAgKi8KLSAgICAgICAgcHVibGljIHZvaWQgY29uc2lkZXJOYW1lcyhTdHJpbmdbXSBjbGFzc05hbWVzKSB7Ci0gICAgICAgICAgICBpZiAoY2xhc3NOYW1lcyAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChTdHJpbmcgY2xhc3NOYW1lIDogY2xhc3NOYW1lcykgewotICAgICAgICAgICAgICAgICAgICBjb25zaWRlck5hbWUoY2xhc3NOYW1lKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvKioKLSAgICAgICAgICogQ29uc2lkZXJzIHRoaXMgc2lnbmF0dXJlIG9yIHR5cGUgc2lnbmF0dXJlIGJ5IGludm9raW5nIHRoZSB7QGxpbmsgU2lnbmF0dXJlVmlzaXRvcn0KLSAgICAgICAgICogb24gaXQuCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgdm9pZCBjb25zaWRlclNpZ25hdHVyZShTdHJpbmcgc2lnbmF0dXJlKSB7Ci0gICAgICAgICAgICBpZiAoc2lnbmF0dXJlICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBTaWduYXR1cmVSZWFkZXIgc3IgPSBuZXcgU2lnbmF0dXJlUmVhZGVyKHNpZ25hdHVyZSk7Ci0gICAgICAgICAgICAgICAgLy8gU2lnbmF0dXJlUmVhZGVyLmFjY2VwdCB3aWxsIGNhbGwgYWNjZXNzVHlwZSBzbyB3ZSBkb24ndCByZWFsbHkgaGF2ZQotICAgICAgICAgICAgICAgIC8vIHRvIGRpZmZlcmVudGlhdGUgd2hlcmUgdGhlIHNpZ25hdHVyZSBjb21lcyBmcm9tLgotICAgICAgICAgICAgICAgIHNyLmFjY2VwdChuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIENvbnNpZGVycyB0aGlzIHtAbGluayBUeXBlfS4gRm9yIGFycmF5cywgdGhlIGVsZW1lbnQgdHlwZSBpcyBjb25zaWRlcmVkLgotICAgICAgICAgKiBJZiB0aGUgdHlwZSBpcyBhbiBvYmplY3QsIGl0J3MgaW50ZXJuYWwgbmFtZSBpcyBjb25zaWRlcmVkLgotICAgICAgICAgKi8KLSAgICAgICAgcHVibGljIHZvaWQgY29uc2lkZXJUeXBlKFR5cGUgdCkgewotICAgICAgICAgICAgaWYgKHQgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGlmICh0LmdldFNvcnQoKSA9PSBUeXBlLkFSUkFZKSB7Ci0gICAgICAgICAgICAgICAgICAgIHQgPSB0LmdldEVsZW1lbnRUeXBlKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICh0LmdldFNvcnQoKSA9PSBUeXBlLk9CSkVDVCkgewotICAgICAgICAgICAgICAgICAgICBjb25zaWRlck5hbWUodC5nZXRJbnRlcm5hbE5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIENvbnNpZGVycyBhIGRlc2NyaXB0b3Igc3RyaW5nLiBUaGUgZGVzY3JpcHRvciBpcyBjb252ZXJ0ZWQgdG8gYSB7QGxpbmsgVHlwZX0KLSAgICAgICAgICogYW5kIHRoZW4gY29uc2lkZXJUeXBlKCkgaXMgaW52b2tlZC4KLSAgICAgICAgICovCi0gICAgICAgIHB1YmxpYyBib29sZWFuIGNvbnNpZGVyRGVzYyhTdHJpbmcgZGVzYykgewotICAgICAgICAgICAgaWYgKGRlc2MgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChkZXNjLmxlbmd0aCgpID4gMCAmJiBkZXNjLmNoYXJBdCgwKSA9PSAnKCcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBtZXRob2QgZGVzY3JpcHRvciB3aXRoIGFyZ3VtZW50cyBhbmQgYSByZXR1cm4gdHlwZS4KLSAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgdCA9IFR5cGUuZ2V0UmV0dXJuVHlwZShkZXNjKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNpZGVyVHlwZSh0KTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChUeXBlIGFyZyA6IFR5cGUuZ2V0QXJndW1lbnRUeXBlcyhkZXNjKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNpZGVyVHlwZShhcmcpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBUeXBlIHQgPSBUeXBlLmdldFR5cGUoZGVzYyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25zaWRlclR5cGUodCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgfSBjYXRjaCAoQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlLCBub3QgYSB2YWxpZCB0eXBlLgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0KLSAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgIC8vIC0tLSBDbGFzc1Zpc2l0b3IsIEZpZWxkVmlzaXRvcgotICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAvLyBWaXNpdHMgYSBjbGFzcyBoZWFkZXIKLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0KGludCB2ZXJzaW9uLCBpbnQgYWNjZXNzLCBTdHJpbmcgbmFtZSwKLSAgICAgICAgICAgICAgICBTdHJpbmcgc2lnbmF0dXJlLCBTdHJpbmcgc3VwZXJOYW1lLCBTdHJpbmdbXSBpbnRlcmZhY2VzKSB7Ci0gICAgICAgICAgICAvLyBzaWduYXR1cmUgaXMgdGhlIHNpZ25hdHVyZSBvZiB0aGlzIGNsYXNzLiBNYXkgYmUgbnVsbCBpZiB0aGUgY2xhc3MgaXMgbm90IGEgZ2VuZXJpYwotICAgICAgICAgICAgLy8gb25lLCBhbmQgZG9lcyBub3QgZXh0ZW5kIG9yIGltcGxlbWVudCBnZW5lcmljIGNsYXNzZXMgb3IgaW50ZXJmYWNlcy4KLQotICAgICAgICAgICAgaWYgKHNpZ25hdHVyZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgY29uc2lkZXJTaWduYXR1cmUoc2lnbmF0dXJlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gc3VwZXJOYW1lIGlzIHRoZSBpbnRlcm5hbCBvZiBuYW1lIG9mIHRoZSBzdXBlciBjbGFzcyAoc2VlIGdldEludGVybmFsTmFtZSkuCi0gICAgICAgICAgICAvLyBGb3IgaW50ZXJmYWNlcywgdGhlIHN1cGVyIGNsYXNzIGlzIE9iamVjdC4gTWF5IGJlIG51bGwgYnV0IG9ubHkgZm9yIHRoZSBPYmplY3QgY2xhc3MuCi0gICAgICAgICAgICBjb25zaWRlck5hbWUoc3VwZXJOYW1lKTsKLQotICAgICAgICAgICAgLy8gaW50ZXJmYWNlcyBpcyB0aGUgaW50ZXJuYWwgbmFtZXMgb2YgdGhlIGNsYXNzJ3MgaW50ZXJmYWNlcyAoc2VlIGdldEludGVybmFsTmFtZSkuCi0gICAgICAgICAgICAvLyBNYXkgYmUgbnVsbC4KLSAgICAgICAgICAgIGNvbnNpZGVyTmFtZXMoaW50ZXJmYWNlcyk7Ci0gICAgICAgIH0KLQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgQW5ub3RhdGlvblZpc2l0b3IgdmlzaXRBbm5vdGF0aW9uKFN0cmluZyBkZXNjLCBib29sZWFuIHZpc2libGUpIHsKLSAgICAgICAgICAgIC8vIGRlc2MgaXMgdGhlIGNsYXNzIGRlc2NyaXB0b3Igb2YgdGhlIGFubm90YXRpb24gY2xhc3MuCi0gICAgICAgICAgICBjb25zaWRlckRlc2MoZGVzYyk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IE15QW5ub3RhdGlvblZpc2l0b3IoKTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEF0dHJpYnV0ZShBdHRyaWJ1dGUgYXR0cikgewotICAgICAgICAgICAgLy8gcGFzcwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gVmlzaXRzIHRoZSBlbmQgb2YgYSBjbGFzcwotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgdmlzaXRFbmQoKSB7Ci0gICAgICAgICAgICAvLyBwYXNzCi0gICAgICAgIH0KLQotICAgICAgICBwcml2YXRlIGNsYXNzIE15RmllbGRWaXNpdG9yIGV4dGVuZHMgRmllbGRWaXNpdG9yIHsKLQotICAgICAgICAgICAgcHVibGljIE15RmllbGRWaXNpdG9yKCkgewotICAgICAgICAgICAgICAgIHN1cGVyKE9wY29kZXMuQVNNNCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIEFubm90YXRpb25WaXNpdG9yIHZpc2l0QW5ub3RhdGlvbihTdHJpbmcgZGVzYywgYm9vbGVhbiB2aXNpYmxlKSB7Ci0gICAgICAgICAgICAgICAgLy8gZGVzYyBpcyB0aGUgY2xhc3MgZGVzY3JpcHRvciBvZiB0aGUgYW5ub3RhdGlvbiBjbGFzcy4KLSAgICAgICAgICAgICAgICBjb25zaWRlckRlc2MoZGVzYyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNeUFubm90YXRpb25WaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRBdHRyaWJ1dGUoQXR0cmlidXRlIGF0dHIpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIFZpc2l0cyB0aGUgZW5kIG9mIGEgY2xhc3MKLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRFbmQoKSB7Ci0gICAgICAgICAgICAgICAgLy8gcGFzcwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBGaWVsZFZpc2l0b3IgdmlzaXRGaWVsZChpbnQgYWNjZXNzLCBTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MsCi0gICAgICAgICAgICAgICAgU3RyaW5nIHNpZ25hdHVyZSwgT2JqZWN0IHZhbHVlKSB7Ci0gICAgICAgICAgICAvLyBkZXNjIGlzIHRoZSBmaWVsZCdzIGRlc2NyaXB0b3IgKHNlZSBUeXBlKS4KLSAgICAgICAgICAgIGNvbnNpZGVyRGVzYyhkZXNjKTsKLQotICAgICAgICAgICAgLy8gc2lnbmF0dXJlIGlzIHRoZSBmaWVsZCdzIHNpZ25hdHVyZS4gTWF5IGJlIG51bGwgaWYgdGhlIGZpZWxkJ3MgdHlwZSBkb2VzIG5vdCB1c2UKLSAgICAgICAgICAgIC8vIGdlbmVyaWMgdHlwZXMuCi0gICAgICAgICAgICBjb25zaWRlclNpZ25hdHVyZShzaWduYXR1cmUpOwotCi0gICAgICAgICAgICByZXR1cm4gbmV3IE15RmllbGRWaXNpdG9yKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgdmlzaXRJbm5lckNsYXNzKFN0cmluZyBuYW1lLCBTdHJpbmcgb3V0ZXJOYW1lLCBTdHJpbmcgaW5uZXJOYW1lLCBpbnQgYWNjZXNzKSB7Ci0gICAgICAgICAgICAvLyBuYW1lIGlzIHRoZSBpbnRlcm5hbCBuYW1lIG9mIGFuIGlubmVyIGNsYXNzIChzZWUgZ2V0SW50ZXJuYWxOYW1lKS4KLSAgICAgICAgICAgIC8vIE5vdGU6IG91dGVyTmFtZS9pbm5lck5hbWUgc2VlbXMgdG8gYmUgbnVsbCB3aGVuIHdlJ3JlIHJlYWRpbmcgdGhlCi0gICAgICAgICAgICAvLyBfT3JpZ2luYWxfQ2xhc3NOYW1lIGNsYXNzZXMgZ2VuZXJhdGVkIGJ5IGxheW91dGxpYl9jcmVhdGUuCi0gICAgICAgICAgICBpZiAob3V0ZXJOYW1lICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBjb25zaWRlck5hbWUobmFtZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIE1ldGhvZFZpc2l0b3IgdmlzaXRNZXRob2QoaW50IGFjY2VzcywgU3RyaW5nIG5hbWUsIFN0cmluZyBkZXNjLAotICAgICAgICAgICAgICAgIFN0cmluZyBzaWduYXR1cmUsIFN0cmluZ1tdIGV4Y2VwdGlvbnMpIHsKLSAgICAgICAgICAgIC8vIGRlc2MgaXMgdGhlIG1ldGhvZCdzIGRlc2NyaXB0b3IgKHNlZSBUeXBlKS4KLSAgICAgICAgICAgIGNvbnNpZGVyRGVzYyhkZXNjKTsKLSAgICAgICAgICAgIC8vIHNpZ25hdHVyZSBpcyB0aGUgbWV0aG9kJ3Mgc2lnbmF0dXJlLiBNYXkgYmUgbnVsbCBpZiB0aGUgbWV0aG9kIHBhcmFtZXRlcnMsIHJldHVybgotICAgICAgICAgICAgLy8gdHlwZSBhbmQgZXhjZXB0aW9ucyBkbyBub3QgdXNlIGdlbmVyaWMgdHlwZXMuCi0gICAgICAgICAgICBjb25zaWRlclNpZ25hdHVyZShzaWduYXR1cmUpOwotCi0gICAgICAgICAgICByZXR1cm4gbmV3IE15TWV0aG9kVmlzaXRvcigpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0T3V0ZXJDbGFzcyhTdHJpbmcgb3duZXIsIFN0cmluZyBuYW1lLCBTdHJpbmcgZGVzYykgewotICAgICAgICAgICAgLy8gcGFzcwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0U291cmNlKFN0cmluZyBzb3VyY2UsIFN0cmluZyBkZWJ1ZykgewotICAgICAgICAgICAgLy8gcGFzcwotICAgICAgICB9Ci0KLQotICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgLy8gLS0tIE1ldGhvZFZpc2l0b3IKLSAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICAgICAgcHJpdmF0ZSBjbGFzcyBNeU1ldGhvZFZpc2l0b3IgZXh0ZW5kcyBNZXRob2RWaXNpdG9yIHsKLQotICAgICAgICAgICAgcHVibGljIE15TWV0aG9kVmlzaXRvcigpIHsKLSAgICAgICAgICAgICAgICBzdXBlcihPcGNvZGVzLkFTTTQpOwotICAgICAgICAgICAgfQotCi0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIEFubm90YXRpb25WaXNpdG9yIHZpc2l0QW5ub3RhdGlvbkRlZmF1bHQoKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNeUFubm90YXRpb25WaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRDb2RlKCkgewotICAgICAgICAgICAgICAgIC8vIHBhc3MKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gZmllbGQgaW5zdHJ1Y3Rpb24KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRGaWVsZEluc24oaW50IG9wY29kZSwgU3RyaW5nIG93bmVyLCBTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MpIHsKLSAgICAgICAgICAgICAgICAvLyBuYW1lIGlzIHRoZSBmaWVsZCdzIG5hbWUuCi0gICAgICAgICAgICAgICAgLy8gZGVzYyBpcyB0aGUgZmllbGQncyBkZXNjcmlwdG9yIChzZWUgVHlwZSkuCi0gICAgICAgICAgICAgICAgY29uc2lkZXJEZXNjKGRlc2MpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0RnJhbWUoaW50IHR5cGUsIGludCBsb2NhbCwgT2JqZWN0W10gbG9jYWwyLCBpbnQgc3RhY2ssIE9iamVjdFtdIHN0YWNrMikgewotICAgICAgICAgICAgICAgIC8vIHBhc3MKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdElpbmNJbnNuKGludCB2YXIsIGludCBpbmNyZW1lbnQpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzIC0tIGFuIElJTkMgaW5zdHJ1Y3Rpb24KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEluc24oaW50IG9wY29kZSkgewotICAgICAgICAgICAgICAgIC8vIHBhc3MgLS0gYSB6ZXJvIG9wZXJhbmQgaW5zdHJ1Y3Rpb24KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEludEluc24oaW50IG9wY29kZSwgaW50IG9wZXJhbmQpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzIC0tIGEgc2luZ2xlIGludCBvcGVyYW5kIGluc3RydWN0aW9uCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRKdW1wSW5zbihpbnQgb3Bjb2RlLCBMYWJlbCBsYWJlbCkgewotICAgICAgICAgICAgICAgIC8vIHBhc3MgLS0gYSBqdW1wIGluc3RydWN0aW9uCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRMYWJlbChMYWJlbCBsYWJlbCkgewotICAgICAgICAgICAgICAgIC8vIHBhc3MgLS0gYSBsYWJlbCB0YXJnZXQKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gaW5zdHJ1Y3Rpb24gdG8gbG9hZCBhIGNvbnN0YW50IGZyb20gdGhlIHN0YWNrCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0TGRjSW5zbihPYmplY3QgY3N0KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNzdCBpbnN0YW5jZW9mIFR5cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc2lkZXJUeXBlKChUeXBlKSBjc3QpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdExpbmVOdW1iZXIoaW50IGxpbmUsIExhYmVsIHN0YXJ0KSB7Ci0gICAgICAgICAgICAgICAgLy8gcGFzcwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0TG9jYWxWYXJpYWJsZShTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MsCi0gICAgICAgICAgICAgICAgICAgIFN0cmluZyBzaWduYXR1cmUsIExhYmVsIHN0YXJ0LCBMYWJlbCBlbmQsIGludCBpbmRleCkgewotICAgICAgICAgICAgICAgIC8vIGRlc2MgaXMgdGhlIHR5cGUgZGVzY3JpcHRvciBvZiB0aGlzIGxvY2FsIHZhcmlhYmxlLgotICAgICAgICAgICAgICAgIGNvbnNpZGVyRGVzYyhkZXNjKTsKLSAgICAgICAgICAgICAgICAvLyBzaWduYXR1cmUgaXMgdGhlIHR5cGUgc2lnbmF0dXJlIG9mIHRoaXMgbG9jYWwgdmFyaWFibGUuIE1heSBiZSBudWxsIGlmIHRoZSBsb2NhbAotICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHR5cGUgZG9lcyBub3QgdXNlIGdlbmVyaWMgdHlwZXMuCi0gICAgICAgICAgICAgICAgY29uc2lkZXJTaWduYXR1cmUoc2lnbmF0dXJlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdExvb2t1cFN3aXRjaEluc24oTGFiZWwgZGZsdCwgaW50W10ga2V5cywgTGFiZWxbXSBsYWJlbHMpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzIC0tIGEgbG9va3VwIHN3aXRjaCBpbnN0cnVjdGlvbgotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0TWF4cyhpbnQgbWF4U3RhY2ssIGludCBtYXhMb2NhbHMpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8vIGluc3RydWN0aW9uIHRoYXQgaW52b2tlcyBhIG1ldGhvZAotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdE1ldGhvZEluc24oaW50IG9wY29kZSwgU3RyaW5nIG93bmVyLCBTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MpIHsKLQotICAgICAgICAgICAgICAgIC8vIG93bmVyIGlzIHRoZSBpbnRlcm5hbCBuYW1lIG9mIHRoZSBtZXRob2QncyBvd25lciBjbGFzcwotICAgICAgICAgICAgICAgIGlmICghY29uc2lkZXJEZXNjKG93bmVyKSAmJiBvd25lci5pbmRleE9mKCcvJykgIT0gLTEpIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc2lkZXJOYW1lKG93bmVyKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgLy8gZGVzYyBpcyB0aGUgbWV0aG9kJ3MgZGVzY3JpcHRvciAoc2VlIFR5cGUpLgotICAgICAgICAgICAgICAgIGNvbnNpZGVyRGVzYyhkZXNjKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gaW5zdHJ1Y3Rpb24gbXVsdGlhbmV3YXJyYXksIHdoYXRldmVyIHRoYXQgaXMKLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRNdWx0aUFOZXdBcnJheUluc24oU3RyaW5nIGRlc2MsIGludCBkaW1zKSB7Ci0KLSAgICAgICAgICAgICAgICAvLyBkZXNjIGFuIGFycmF5IHR5cGUgZGVzY3JpcHRvci4KLSAgICAgICAgICAgICAgICBjb25zaWRlckRlc2MoZGVzYyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIEFubm90YXRpb25WaXNpdG9yIHZpc2l0UGFyYW1ldGVyQW5ub3RhdGlvbihpbnQgcGFyYW1ldGVyLCBTdHJpbmcgZGVzYywKLSAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2aXNpYmxlKSB7Ci0gICAgICAgICAgICAgICAgLy8gZGVzYyBpcyB0aGUgY2xhc3MgZGVzY3JpcHRvciBvZiB0aGUgYW5ub3RhdGlvbiBjbGFzcy4KLSAgICAgICAgICAgICAgICBjb25zaWRlckRlc2MoZGVzYyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNeUFubm90YXRpb25WaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRUYWJsZVN3aXRjaEluc24oaW50IG1pbiwgaW50IG1heCwgTGFiZWwgZGZsdCwgTGFiZWxbXSBsYWJlbHMpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzIC0tIHRhYmxlIHN3aXRjaCBpbnN0cnVjdGlvbgotCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRUcnlDYXRjaEJsb2NrKExhYmVsIHN0YXJ0LCBMYWJlbCBlbmQsIExhYmVsIGhhbmRsZXIsIFN0cmluZyB0eXBlKSB7Ci0gICAgICAgICAgICAgICAgLy8gdHlwZSBpcyB0aGUgaW50ZXJuYWwgbmFtZSBvZiB0aGUgdHlwZSBvZiBleGNlcHRpb25zIGhhbmRsZWQgYnkgdGhlIGhhbmRsZXIsCi0gICAgICAgICAgICAgICAgLy8gb3IgbnVsbCB0byBjYXRjaCBhbnkgZXhjZXB0aW9ucyAoZm9yICJmaW5hbGx5IiBibG9ja3MpLgotICAgICAgICAgICAgICAgIGNvbnNpZGVyTmFtZSh0eXBlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gdHlwZSBpbnN0cnVjdGlvbgotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdFR5cGVJbnNuKGludCBvcGNvZGUsIFN0cmluZyB0eXBlKSB7Ci0gICAgICAgICAgICAgICAgLy8gdHlwZSBpcyB0aGUgb3BlcmFuZCBvZiB0aGUgaW5zdHJ1Y3Rpb24gdG8gYmUgdmlzaXRlZC4gVGhpcyBvcGVyYW5kIG11c3QgYmUgdGhlCi0gICAgICAgICAgICAgICAgLy8gaW50ZXJuYWwgbmFtZSBvZiBhbiBvYmplY3Qgb3IgYXJyYXkgY2xhc3MuCi0gICAgICAgICAgICAgICAgY29uc2lkZXJOYW1lKHR5cGUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0VmFySW5zbihpbnQgb3Bjb2RlLCBpbnQgdmFyKSB7Ci0gICAgICAgICAgICAgICAgLy8gcGFzcyAtLSBsb2NhbCB2YXJpYWJsZSBpbnN0cnVjdGlvbgotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcHJpdmF0ZSBjbGFzcyBNeVNpZ25hdHVyZVZpc2l0b3IgZXh0ZW5kcyBTaWduYXR1cmVWaXNpdG9yIHsKLQotICAgICAgICAgICAgcHVibGljIE15U2lnbmF0dXJlVmlzaXRvcigpIHsKLSAgICAgICAgICAgICAgICBzdXBlcihPcGNvZGVzLkFTTTQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgIC8vIC0tLSBTaWduYXR1cmVWaXNpdG9yCi0gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgICAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbUN1cnJlbnRTaWduYXR1cmVDbGFzcyA9IG51bGw7Ci0KLSAgICAgICAgICAgIC8vIFN0YXJ0cyB0aGUgdmlzaXQgb2YgYSBzaWduYXR1cmUgY29ycmVzcG9uZGluZyB0byBhIGNsYXNzIG9yIGludGVyZmFjZSB0eXBlCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0Q2xhc3NUeXBlKFN0cmluZyBuYW1lKSB7Ci0gICAgICAgICAgICAgICAgbUN1cnJlbnRTaWduYXR1cmVDbGFzcyA9IG5hbWU7Ci0gICAgICAgICAgICAgICAgY29uc2lkZXJOYW1lKG5hbWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBWaXNpdHMgYW4gaW5uZXIgY2xhc3MKLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRJbm5lckNsYXNzVHlwZShTdHJpbmcgbmFtZSkgewotICAgICAgICAgICAgICAgIGlmIChtQ3VycmVudFNpZ25hdHVyZUNsYXNzICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgbUN1cnJlbnRTaWduYXR1cmVDbGFzcyArPSAiJCIgKyBuYW1lOwotICAgICAgICAgICAgICAgICAgICBjb25zaWRlck5hbWUobUN1cnJlbnRTaWduYXR1cmVDbGFzcyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBTaWduYXR1cmVWaXNpdG9yIHZpc2l0QXJyYXlUeXBlKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRCYXNlVHlwZShjaGFyIGRlc2NyaXB0b3IpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzIC0tIGEgcHJpbWl0aXZlIHR5cGUsIGlnbm9yZWQKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgU2lnbmF0dXJlVmlzaXRvciB2aXNpdENsYXNzQm91bmQoKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNeVNpZ25hdHVyZVZpc2l0b3IoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgU2lnbmF0dXJlVmlzaXRvciB2aXNpdEV4Y2VwdGlvblR5cGUoKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNeVNpZ25hdHVyZVZpc2l0b3IoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEZvcm1hbFR5cGVQYXJhbWV0ZXIoU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRJbnRlcmZhY2UoKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNeVNpZ25hdHVyZVZpc2l0b3IoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgU2lnbmF0dXJlVmlzaXRvciB2aXNpdEludGVyZmFjZUJvdW5kKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRQYXJhbWV0ZXJUeXBlKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRSZXR1cm5UeXBlKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRTdXBlcmNsYXNzKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIFNpZ25hdHVyZVZpc2l0b3IgdmlzaXRUeXBlQXJndW1lbnQoY2hhciB3aWxkY2FyZCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTXlTaWduYXR1cmVWaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRUeXBlVmFyaWFibGUoU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgICAgICAgICAvLyBwYXNzCi0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRUeXBlQXJndW1lbnQoKSB7Ci0gICAgICAgICAgICAgICAgLy8gcGFzcwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLQotICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgLy8gLS0tIEFubm90YXRpb25WaXNpdG9yCi0gICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgICAgIHByaXZhdGUgY2xhc3MgTXlBbm5vdGF0aW9uVmlzaXRvciBleHRlbmRzIEFubm90YXRpb25WaXNpdG9yIHsKLQotICAgICAgICAgICAgcHVibGljIE15QW5ub3RhdGlvblZpc2l0b3IoKSB7Ci0gICAgICAgICAgICAgICAgc3VwZXIoT3Bjb2Rlcy5BU000KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gVmlzaXRzIGEgcHJpbWl0aXZlIHZhbHVlIG9mIGFuIGFubm90YXRpb24KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXQoU3RyaW5nIG5hbWUsIE9iamVjdCB2YWx1ZSkgewotICAgICAgICAgICAgICAgIC8vIHZhbHVlIGlzIHRoZSBhY3R1YWwgdmFsdWUsIHdob3NlIHR5cGUgbXVzdCBiZSBCeXRlLCBCb29sZWFuLCBDaGFyYWN0ZXIsIFNob3J0LAotICAgICAgICAgICAgICAgIC8vIEludGVnZXIsIExvbmcsIEZsb2F0LCBEb3VibGUsIFN0cmluZyBvciBUeXBlCi0gICAgICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVHlwZSkgewotICAgICAgICAgICAgICAgICAgICBjb25zaWRlclR5cGUoKFR5cGUpIHZhbHVlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIEFubm90YXRpb25WaXNpdG9yIHZpc2l0QW5ub3RhdGlvbihTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MpIHsKLSAgICAgICAgICAgICAgICAvLyBkZXNjIGlzIHRoZSBjbGFzcyBkZXNjcmlwdG9yIG9mIHRoZSBuZXN0ZWQgYW5ub3RhdGlvbiBjbGFzcy4KLSAgICAgICAgICAgICAgICBjb25zaWRlckRlc2MoZGVzYyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNeUFubm90YXRpb25WaXNpdG9yKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIEFubm90YXRpb25WaXNpdG9yIHZpc2l0QXJyYXkoU3RyaW5nIG5hbWUpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE15QW5ub3RhdGlvblZpc2l0b3IoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgdm9pZCB2aXNpdEVudW0oU3RyaW5nIG5hbWUsIFN0cmluZyBkZXNjLCBTdHJpbmcgdmFsdWUpIHsKLSAgICAgICAgICAgICAgICAvLyBkZXNjIGlzIHRoZSBjbGFzcyBkZXNjcmlwdG9yIG9mIHRoZSBlbnVtZXJhdGlvbiBjbGFzcy4KLSAgICAgICAgICAgICAgICBjb25zaWRlckRlc2MoZGVzYyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0lDcmVhdGVJbmZvLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0lDcmVhdGVJbmZvLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzODc4MTQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9JQ3JlYXRlSW5mby5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZTsKLQotLyoqCi0gKiBJbnRlcmZhY2UgZGVzY3JpYmluZyB0aGUgd29yayB0byBiZSBkb25lIGJ5IHtAbGluayBBc21HZW5lcmF0b3J9LgotICovCi1wdWJsaWMgaW50ZXJmYWNlIElDcmVhdGVJbmZvIHsKLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgY2xhc3MgZnJvbSBsYXlvdXRsaWJfY3JlYXRlIHRvIGluamVjdCBpbiBsYXlvdXRsaWIuCi0gICAgICogVGhlIGxpc3QgY2FuIGJlIGVtcHR5IGJ1dCBtdXN0IG5vdCBiZSBudWxsLgotICAgICAqLwotICAgIHB1YmxpYyBhYnN0cmFjdCBDbGFzczw/PltdIGdldEluamVjdGVkQ2xhc3NlcygpOwotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBtZXRob2RzIHRvIHJld3JpdGUgYXMgZGVsZWdhdGVzLgotICAgICAqIFRoZSBsaXN0IGNhbiBiZSBlbXB0eSBidXQgbXVzdCBub3QgYmUgbnVsbC4KLSAgICAgKi8KLSAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nW10gZ2V0RGVsZWdhdGVNZXRob2RzKCk7Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGNsYXNzZXMgb24gd2hpY2ggdG8gZGVsZWdhdGUgYWxsIG5hdGl2ZSBtZXRob2RzLgotICAgICAqIFRoZSBsaXN0IGNhbiBiZSBlbXB0eSBidXQgbXVzdCBub3QgYmUgbnVsbC4KLSAgICAgKi8KLSAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nW10gZ2V0RGVsZWdhdGVDbGFzc05hdGl2ZXMoKTsKLQotICAgIC8qKgotICAgICAqIFJldHVybnMgVGhlIGxpc3Qgb2YgbWV0aG9kcyB0byBzdHViIG91dC4gRWFjaCBlbnRyeSBtdXN0IGJlIGluIHRoZSBmb3JtCi0gICAgICogInBhY2thZ2UucGFja2FnZS5PdXRlckNsYXNzJElubmVyQ2xhc3MjTWV0aG9kTmFtZSIuCi0gICAgICogVGhlIGxpc3QgY2FuIGJlIGVtcHR5IGJ1dCBtdXN0IG5vdCBiZSBudWxsLgotICAgICAqLwotICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmdbXSBnZXRPdmVycmlkZGVuTWV0aG9kcygpOwotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBjbGFzc2VzIHRvIHJlbmFtZSwgbXVzdCBiZSBhbiBldmVuIGxpc3Q6IHRoZSBiaW5hcnkgRlFDTgotICAgICAqIG9mIGNsYXNzIHRvIHJlcGxhY2UgZm9sbG93ZWQgYnkgdGhlIG5ldyBGUUNOLgotICAgICAqIFRoZSBsaXN0IGNhbiBiZSBlbXB0eSBidXQgbXVzdCBub3QgYmUgbnVsbC4KLSAgICAgKi8KLSAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nW10gZ2V0UmVuYW1lZENsYXNzZXMoKTsKLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgY2xhc3NlcyBmb3Igd2hpY2ggdGhlIG1ldGhvZHMgcmV0dXJuaW5nIHRoZW0gc2hvdWxkIGJlIGRlbGV0ZWQuCi0gICAgICogVGhlIGFycmF5IGNvbnRhaW5zIGEgbGlzdCBvZiBudWxsIHRlcm1pbmF0ZWQgc2VjdGlvbiBzdGFydGluZyB3aXRoIHRoZSBuYW1lIG9mIHRoZSBjbGFzcwotICAgICAqIHRvIHJlbmFtZSBpbiB3aGljaCB0aGUgbWV0aG9kcyBhcmUgZGVsZXRlZCwgZm9sbG93ZWQgYnkgYSBsaXN0IG9mIHJldHVybiB0eXBlcyBpZGVudGlmeWluZwotICAgICAqIHRoZSBtZXRob2RzIHRvIGRlbGV0ZS4KLSAgICAgKiBUaGUgbGlzdCBjYW4gYmUgZW1wdHkgYnV0IG11c3Qgbm90IGJlIG51bGwuCi0gICAgICovCi0gICAgcHVibGljIGFic3RyYWN0IFN0cmluZ1tdIGdldERlbGV0ZVJldHVybnMoKTsKLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIGxpc3Qgb2YgY2xhc3NlcyB0byByZWZhY3RvciwgbXVzdCBiZSBhbiBldmVuIGxpc3Q6IHRoZQotICAgICAqIGJpbmFyeSBGUUNOIG9mIGNsYXNzIHRvIHJlcGxhY2UgZm9sbG93ZWQgYnkgdGhlIG5ldyBGUUNOLiBBbGwgcmVmZXJlbmNlcwotICAgICAqIHRvIHRoZSBvbGQgY2xhc3Mgc2hvdWxkIGJlIHVwZGF0ZWQgdG8gdGhlIG5ldyBjbGFzcy4KLSAgICAgKiBUaGUgbGlzdCBjYW4gYmUgZW1wdHkgYnV0IG11c3Qgbm90IGJlIG51bGwuCi0gICAgICovCi0gICAgcHVibGljIGFic3RyYWN0IFN0cmluZ1tdIGdldEphdmFQa2dDbGFzc2VzKCk7Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0xvZy5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9Mb2cuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzNiYTU5MS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0xvZy5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZTsKLQotaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7Ci1pbXBvcnQgamF2YS5pby5TdHJpbmdXcml0ZXI7Ci0KLXB1YmxpYyBjbGFzcyBMb2cgewotCi0gICAgcHJpdmF0ZSBib29sZWFuIG1WZXJib3NlID0gZmFsc2U7Ci0KLSAgICBwdWJsaWMgdm9pZCBzZXRWZXJib3NlKGJvb2xlYW4gdmVyYm9zZSkgewotICAgICAgICBtVmVyYm9zZSA9IHZlcmJvc2U7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgZGVidWcoU3RyaW5nIGZvcm1hdCwgT2JqZWN0Li4uIGFyZ3MpIHsKLSAgICAgICAgaWYgKG1WZXJib3NlKSB7Ci0gICAgICAgICAgICBpbmZvKGZvcm1hdCwgYXJncyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiogU2ltaWxhciB0byBkZWJ1ZygpIGJ1dCBkb2Vzbid0IGRvIGEgXG4gYXV0b21hdGljYWxseS4gKi8KLSAgICBwdWJsaWMgdm9pZCBkZWJ1Z05vbG4oU3RyaW5nIGZvcm1hdCwgT2JqZWN0Li4uIGFyZ3MpIHsKLSAgICAgICAgaWYgKG1WZXJib3NlKSB7Ci0gICAgICAgICAgICBTdHJpbmcgcyA9IFN0cmluZy5mb3JtYXQoZm9ybWF0LCBhcmdzKTsKLSAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQocyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwdWJsaWMgdm9pZCBpbmZvKFN0cmluZyBmb3JtYXQsIE9iamVjdC4uLiBhcmdzKSB7Ci0gICAgICAgIFN0cmluZyBzID0gU3RyaW5nLmZvcm1hdChmb3JtYXQsIGFyZ3MpOwotICAgICAgICBvdXRQcmludGxuKHMpOwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIGVycm9yKFN0cmluZyBmb3JtYXQsIE9iamVjdC4uLiBhcmdzKSB7Ci0gICAgICAgIFN0cmluZyBzID0gU3RyaW5nLmZvcm1hdChmb3JtYXQsIGFyZ3MpOwotICAgICAgICBlcnJQcmludGxuKHMpOwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIGV4Y2VwdGlvbihUaHJvd2FibGUgdCwgU3RyaW5nIGZvcm1hdCwgT2JqZWN0Li4uIGFyZ3MpIHsKLSAgICAgICAgU3RyaW5nV3JpdGVyIHN3ID0gbmV3IFN0cmluZ1dyaXRlcigpOwotICAgICAgICBQcmludFdyaXRlciBwdyA9IG5ldyBQcmludFdyaXRlcihzdyk7Ci0gICAgICAgIHQucHJpbnRTdGFja1RyYWNlKHB3KTsKLSAgICAgICAgcHcuZmx1c2goKTsKLSAgICAgICAgZXJyb3IoZm9ybWF0ICsgIlxuIiArIHN3LnRvU3RyaW5nKCksIGFyZ3MpOwotICAgIH0KLQotICAgIC8qKiBmb3IgdW5pdCB0ZXN0aW5nICovCi0gICAgcHJvdGVjdGVkIHZvaWQgZXJyUHJpbnRsbihTdHJpbmcgbXNnKSB7Ci0gICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihtc2cpOwotICAgIH0KLQotICAgIC8qKiBmb3IgdW5pdCB0ZXN0aW5nICovCi0gICAgcHJvdGVjdGVkIHZvaWQgb3V0UHJpbnRsbihTdHJpbmcgbXNnKSB7Ci0gICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihtc2cpOwotICAgIH0KLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9Mb2dBYm9ydEV4Y2VwdGlvbi5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9Mb2dBYm9ydEV4Y2VwdGlvbi5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzRiNGE3Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvTG9nQWJvcnRFeGNlcHRpb24uamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGU7Ci0KLXB1YmxpYyBjbGFzcyBMb2dBYm9ydEV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7Ci0KLSAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtRm9ybWF0OwotICAgIHByaXZhdGUgZmluYWwgT2JqZWN0W10gbUFyZ3M7Ci0KLSAgICBwdWJsaWMgTG9nQWJvcnRFeGNlcHRpb24oU3RyaW5nIGZvcm1hdCwgT2JqZWN0Li4uIGFyZ3MpIHsKLSAgICAgICAgbUZvcm1hdCA9IGZvcm1hdDsKLSAgICAgICAgbUFyZ3MgPSBhcmdzOwotICAgIH0KLSAgICAKLSAgICBwdWJsaWMgdm9pZCBlcnJvcihMb2cgbG9nKSB7Ci0gICAgICAgIGxvZy5lcnJvcihtRm9ybWF0LCBtQXJncyk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9NYWluLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL01haW4uamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmEyMzA0OC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL01haW4uamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDIyNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlOwotCi1pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwotaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OwotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotaW1wb3J0IGphdmEudXRpbC5NYXA7Ci1pbXBvcnQgamF2YS51dGlsLlNldDsKLQotCi0vKioKLSAqIEVudHJ5IHBvaW50IGZvciB0aGUgbGF5b3V0bGliX2NyZWF0ZSB0b29sLgotICogPHAvPgotICogVGhlIHRvb2wgZG9lcyBub3QgY3VycmVudGx5IHJlbHkgb24gYW55IGV4dGVybmFsIGNvbmZpZ3VyYXRpb24gZmlsZS4KLSAqIEluc3RlYWQgdGhlIGNvbmZpZ3VyYXRpb24gaXMgbW9zdGx5IGRvbmUgdmlhIHRoZSB7QGxpbmsgQ3JlYXRlSW5mb30gY2xhc3MuCi0gKiA8cC8+Ci0gKiBGb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbiBvZiB0aGUgdG9vbCBhbmQgaXRzIGltcGxlbWVudGF0aW9uLCBwbGVhc2UgcmVmZXIgdG8KLSAqIHRoZSAiUkVBRE1FLnR4dCIgZmlsZSBhdCB0aGUgcm9vdCBvZiB0aGlzIHByb2plY3QuCi0gKiA8cC8+Ci0gKiBGb3IgYSBxdWljayB0ZXN0LCBpbnZva2UgdGhpcyBhcyBmb2xsb3dzOgotICogPHByZT4KLSAqICQgbWFrZSBsYXlvdXRsaWIKLSAqIDwvcHJlPgotICogd2hpY2ggZG9lczoKLSAqIDxwcmU+Ci0gKiAkIG1ha2UgbGF5b3V0bGliX2NyZWF0ZSAmbHQ7YnVuY2ggb2YgZnJhbWV3b3JrIGphcnMmZ3Q7Ci0gKiAkIGphdmEgLWphciBvdXQvaG9zdC9saW51eC14ODYvZnJhbWV3b3JrL2xheW91dGxpYl9jcmVhdGUuamFyIFwKLSAqICAgICAgICBvdXQvaG9zdC9jb21tb24vb2JqL0pBVkFfTElCUkFSSUVTL3RlbXBfbGF5b3V0bGliX2ludGVybWVkaWF0ZXMvamF2YWxpYi5qYXIgXAotICogICAgICAgIG91dC90YXJnZXQvY29tbW9uL29iai9KQVZBX0xJQlJBUklFUy9jb3JlX2ludGVybWVkaWF0ZXMvY2xhc3Nlcy5qYXIgXAotICogICAgICAgIG91dC90YXJnZXQvY29tbW9uL29iai9KQVZBX0xJQlJBUklFUy9mcmFtZXdvcmtfaW50ZXJtZWRpYXRlcy9jbGFzc2VzLmphcgotICogPC9wcmU+Ci0gKi8KLXB1YmxpYyBjbGFzcyBNYWluIHsKLQotICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgT3B0aW9ucyB7Ci0gICAgICAgIHB1YmxpYyBib29sZWFuIGdlbmVyYXRlUHVibGljQWNjZXNzID0gdHJ1ZTsKLSAgICAgICAgcHVibGljIGJvb2xlYW4gbGlzdEFsbERlcHMgPSBmYWxzZTsKLSAgICAgICAgcHVibGljIGJvb2xlYW4gbGlzdE9ubHlNaXNzaW5nRGVwcyA9IGZhbHNlOwotICAgIH0KLQotICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT3B0aW9ucyBzT3B0aW9ucyA9IG5ldyBPcHRpb25zKCk7Ci0KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7Ci0KLSAgICAgICAgTG9nIGxvZyA9IG5ldyBMb2coKTsKLQotICAgICAgICBBcnJheUxpc3Q8U3RyaW5nPiBvc0phclBhdGggPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKTsKLSAgICAgICAgU3RyaW5nW10gb3NEZXN0SmFyID0geyBudWxsIH07Ci0KLSAgICAgICAgaWYgKCFwcm9jZXNzQXJncyhsb2csIGFyZ3MsIG9zSmFyUGF0aCwgb3NEZXN0SmFyKSkgewotICAgICAgICAgICAgbG9nLmVycm9yKCJVc2FnZTogbGF5b3V0bGliX2NyZWF0ZSBbLXZdIFstcF0gb3V0cHV0LmphciBpbnB1dC5qYXIgLi4uIik7Ci0gICAgICAgICAgICBsb2cuZXJyb3IoIlVzYWdlOiBsYXlvdXRsaWJfY3JlYXRlIFstdl0gWy0tbGlzdC1kZXBzfC0tbWlzc2luZy1kZXBzXSBpbnB1dC5qYXIgLi4uIik7Ci0gICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChzT3B0aW9ucy5saXN0QWxsRGVwcyB8fCBzT3B0aW9ucy5saXN0T25seU1pc3NpbmdEZXBzKSB7Ci0gICAgICAgICAgICBTeXN0ZW0uZXhpdChsaXN0RGVwcyhvc0phclBhdGgsIGxvZykpOwotCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBTeXN0ZW0uZXhpdChjcmVhdGVMYXlvdXRMaWIob3NEZXN0SmFyWzBdLCBvc0phclBhdGgsIGxvZykpOwotICAgICAgICB9Ci0KLQotICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBpbnQgY3JlYXRlTGF5b3V0TGliKFN0cmluZyBvc0Rlc3RKYXIsIEFycmF5TGlzdDxTdHJpbmc+IG9zSmFyUGF0aCwgTG9nIGxvZykgewotICAgICAgICBsb2cuaW5mbygiT3V0cHV0OiAlMSRzIiwgb3NEZXN0SmFyKTsKLSAgICAgICAgZm9yIChTdHJpbmcgcGF0aCA6IG9zSmFyUGF0aCkgewotICAgICAgICAgICAgbG9nLmluZm8oIklucHV0IDogICAgICAlMSRzIiwgcGF0aCk7Ci0gICAgICAgIH0KLQotICAgICAgICB0cnkgewotICAgICAgICAgICAgQ3JlYXRlSW5mbyBpbmZvID0gbmV3IENyZWF0ZUluZm8oKTsKLSAgICAgICAgICAgIFNldDxTdHJpbmc+IGV4Y2x1ZGVDbGFzc2VzID0gZ2V0RXhjbHVkZWRDbGFzc2VzKGluZm8pOwotICAgICAgICAgICAgQXNtR2VuZXJhdG9yIGFnZW4gPSBuZXcgQXNtR2VuZXJhdG9yKGxvZywgb3NEZXN0SmFyLCBpbmZvKTsKLQotICAgICAgICAgICAgQXNtQW5hbHl6ZXIgYWEgPSBuZXcgQXNtQW5hbHl6ZXIobG9nLCBvc0phclBhdGgsIGFnZW4sCi0gICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZXJpdmVkIGZyb20KLSAgICAgICAgICAgICAgICAgICAgICAgICJhbmRyb2lkLnZpZXcuVmlldyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiYW5kcm9pZC5hcHAuRnJhZ21lbnQiCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbmNsdWRlIGNsYXNzZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICJhbmRyb2lkLioiLCAvLyBmb3IgYW5kcm9pZC5SCi0gICAgICAgICAgICAgICAgICAgICAgICAiYW5kcm9pZC51dGlsLioiLAotICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5hbmRyb2lkLmludGVybmFsLnV0aWwuKiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiYW5kcm9pZC52aWV3LioiLAotICAgICAgICAgICAgICAgICAgICAgICAgImFuZHJvaWQud2lkZ2V0LioiLAotICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5hbmRyb2lkLmludGVybmFsLndpZGdldC4qIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJhbmRyb2lkLnRleHQuKioiLAotICAgICAgICAgICAgICAgICAgICAgICAgImFuZHJvaWQuZ3JhcGhpY3MuKiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiYW5kcm9pZC5ncmFwaGljcy5kcmF3YWJsZS4qIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJhbmRyb2lkLmNvbnRlbnQuKiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiYW5kcm9pZC5jb250ZW50LnJlcy4qIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJvcmcuYXBhY2hlLmhhcm1vbnkueG1sLioiLAotICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5hbmRyb2lkLmludGVybmFsLlIqKiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiYW5kcm9pZC5waW0uKiIsIC8vIGZvciBkYXRlcGlja2VyCi0gICAgICAgICAgICAgICAgICAgICAgICAiYW5kcm9pZC5vcy4qIiwgIC8vIGZvciBhbmRyb2lkLm9zLkhhbmRsZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICJhbmRyb2lkLmRhdGFiYXNlLkNvbnRlbnRPYnNlcnZlciIsIC8vIGZvciBEaWdpdGFsIGNsb2NrCi0gICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVDbGFzc2VzKTsKLSAgICAgICAgICAgIGFhLmFuYWx5emUoKTsKLSAgICAgICAgICAgIGFnZW4uZ2VuZXJhdGUoKTsKLQotICAgICAgICAgICAgLy8gVGhyb3cgYW4gZXJyb3IgaWYgYW55IGNsYXNzIGZhaWxlZCB0byBnZXQgcmVuYW1lZCBieSB0aGUgZ2VuZXJhdG9yCi0gICAgICAgICAgICAvLwotICAgICAgICAgICAgLy8gSU1QT1JUQU5UOiBpZiB5b3UncmUgYnVpbGRpbmcgdGhlIHBsYXRmb3JtIGFuZCB5b3UgZ2V0IHRoaXMgZXJyb3IgbWVzc2FnZSwKLSAgICAgICAgICAgIC8vIGl0IG1lYW5zIHRoZSByZW5hbWVDbGFzc2VzW10gYXJyYXkgaW4gQXNtR2VuZXJhdG9yIG5lZWRzIHRvIGJlIHVwZGF0ZWQ6IHNvbWUKLSAgICAgICAgICAgIC8vIGNsYXNzIHNob3VsZCBoYXZlIGJlZW4gcmVuYW1lZCBidXQgaXQgd2FzIG5vdCBmb3VuZCBpbiB0aGUgaW5wdXQgSkFSIGZpbGVzLgotICAgICAgICAgICAgU2V0PFN0cmluZz4gbm90UmVuYW1lZCA9IGFnZW4uZ2V0Q2xhc3Nlc05vdFJlbmFtZWQoKTsKLSAgICAgICAgICAgIGlmIChub3RSZW5hbWVkLnNpemUoKSA+IDApIHsKLSAgICAgICAgICAgICAgICAvLyAoODAtY29sdW1uIGd1aWRlIGJlbG93IGZvciBlcnJvciBmb3JtYXR0aW5nKQotICAgICAgICAgICAgICAgIC8vIDAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5Ci0gICAgICAgICAgICAgICAgbG9nLmVycm9yKAotICAgICAgICAgICAgICAgICAgIkVSUk9SIHdoZW4gcnVubmluZyBsYXlvdXRsaWJfY3JlYXRlOiB0aGUgZm9sbG93aW5nIGNsYXNzZXMgYXJlIHJlZmVyZW5jZWRcbiIgKwotICAgICAgICAgICAgICAgICAgImJ5IHRvb2xzL2xheW91dGxpYi9jcmVhdGUgYnV0IHdlcmUgbm90IGFjdHVhbGx5IGZvdW5kIGluIHRoZSBpbnB1dCBKQVIgZmlsZXMuXG4iICsKLSAgICAgICAgICAgICAgICAgICJUaGlzIG1heSBiZSBkdWUgdG8gc29tZSBwbGF0Zm9ybSBjbGFzc2VzIGhhdmluZyBiZWVuIHJlbmFtZWQuIik7Ci0gICAgICAgICAgICAgICAgZm9yIChTdHJpbmcgZnFjbiA6IG5vdFJlbmFtZWQpIHsKLSAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKCItIENsYXNzIG5vdCBmb3VuZDogJXMiLCBmcWNuLnJlcGxhY2UoJy8nLCAnLicpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZm9yIChTdHJpbmcgcGF0aCA6IG9zSmFyUGF0aCkgewotICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbygiLSBJbnB1dCBKQVIgOiAlMSRzIiwgcGF0aCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewotICAgICAgICAgICAgbG9nLmV4Y2VwdGlvbihlLCAiRmFpbGVkIHRvIGxvYWQgamFyIik7Ci0gICAgICAgIH0gY2F0Y2ggKExvZ0Fib3J0RXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIGUuZXJyb3IobG9nKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIHByaXZhdGUgc3RhdGljIFNldDxTdHJpbmc+IGdldEV4Y2x1ZGVkQ2xhc3NlcyhDcmVhdGVJbmZvIGluZm8pIHsKLSAgICAgICAgU3RyaW5nW10gcmVmYWN0b3JlZENsYXNzZXMgPSBpbmZvLmdldEphdmFQa2dDbGFzc2VzKCk7Ci0gICAgICAgIFNldDxTdHJpbmc+IGV4Y2x1ZGVkQ2xhc3NlcyA9IG5ldyBIYXNoU2V0PFN0cmluZz4ocmVmYWN0b3JlZENsYXNzZXMubGVuZ3RoKTsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZWZhY3RvcmVkQ2xhc3Nlcy5sZW5ndGg7IGkrPTIpIHsKLSAgICAgICAgICAgIGV4Y2x1ZGVkQ2xhc3Nlcy5hZGQocmVmYWN0b3JlZENsYXNzZXNbaV0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBleGNsdWRlZENsYXNzZXM7Ci0KLSAgICB9Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBpbnQgbGlzdERlcHMoQXJyYXlMaXN0PFN0cmluZz4gb3NKYXJQYXRoLCBMb2cgbG9nKSB7Ci0gICAgICAgIERlcGVuZGVuY3lGaW5kZXIgZGYgPSBuZXcgRGVwZW5kZW5jeUZpbmRlcihsb2cpOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgTGlzdDxNYXA8U3RyaW5nLCBTZXQ8U3RyaW5nPj4+IHJlc3VsdCA9IGRmLmZpbmREZXBzKG9zSmFyUGF0aCk7Ci0gICAgICAgICAgICBpZiAoc09wdGlvbnMubGlzdEFsbERlcHMpIHsKLSAgICAgICAgICAgICAgICBkZi5wcmludEFsbERlcHMocmVzdWx0KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc09wdGlvbnMubGlzdE9ubHlNaXNzaW5nRGVwcykgewotICAgICAgICAgICAgICAgIGRmLnByaW50TWlzc2luZ0RlcHMocmVzdWx0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewotICAgICAgICAgICAgbG9nLmV4Y2VwdGlvbihlLCAiRmFpbGVkIHRvIGxvYWQgamFyIik7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRydWUgaWYgYXJncyB3aGVyZSBwcm9wZXJseSBwYXJzZWQuCi0gICAgICogUmV0dXJucyBmYWxzZSBpZiBwcm9ncmFtIHNob3VsZCBleGl0IHdpdGggY29tbWFuZC1saW5lIHVzYWdlLgotICAgICAqIDxwLz4KLSAgICAgKiBOb3RlOiB0aGUgU3RyaW5nWzBdIGlzIGFuIG91dHB1dCBwYXJhbWV0ZXIgd3JhcHBlZCBpbiBhbiBhcnJheSwgc2luY2UgdGhlcmUgaXMgbm8KLSAgICAgKiAib3V0IiBwYXJhbWV0ZXIgc3VwcG9ydC4KLSAgICAgKi8KLSAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHByb2Nlc3NBcmdzKExvZyBsb2csIFN0cmluZ1tdIGFyZ3MsCi0gICAgICAgICAgICBBcnJheUxpc3Q8U3RyaW5nPiBvc0phclBhdGgsIFN0cmluZ1tdIG9zRGVzdEphcikgewotICAgICAgICBib29sZWFuIG5lZWRzX2Rlc3QgPSB0cnVlOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIFN0cmluZyBzID0gYXJnc1tpXTsKLSAgICAgICAgICAgIGlmIChzLmVxdWFscygiLXYiKSkgewotICAgICAgICAgICAgICAgIGxvZy5zZXRWZXJib3NlKHRydWUpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChzLmVxdWFscygiLXAiKSkgewotICAgICAgICAgICAgICAgIHNPcHRpb25zLmdlbmVyYXRlUHVibGljQWNjZXNzID0gZmFsc2U7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHMuZXF1YWxzKCItLWxpc3QtZGVwcyIpKSB7Ci0gICAgICAgICAgICAgICAgc09wdGlvbnMubGlzdEFsbERlcHMgPSB0cnVlOwotICAgICAgICAgICAgICAgIG5lZWRzX2Rlc3QgPSBmYWxzZTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAocy5lcXVhbHMoIi0tbWlzc2luZy1kZXBzIikpIHsKLSAgICAgICAgICAgICAgICBzT3B0aW9ucy5saXN0T25seU1pc3NpbmdEZXBzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBuZWVkc19kZXN0ID0gZmFsc2U7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKCFzLnN0YXJ0c1dpdGgoIi0iKSkgewotICAgICAgICAgICAgICAgIGlmIChuZWVkc19kZXN0ICYmIG9zRGVzdEphclswXSA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIG9zRGVzdEphclswXSA9IHM7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgb3NKYXJQYXRoLmFkZChzKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGxvZy5lcnJvcigiVW5rbm93IGFyZ3VtZW50OiAlcyIsIHMpOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChvc0phclBhdGguaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBsb2cuZXJyb3IoIk1pc3NpbmcgcGFyYW1ldGVyOiBwYXRoIHRvIGlucHV0IGphciIpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChuZWVkc19kZXN0ICYmIG9zRGVzdEphclswXSA9PSBudWxsKSB7Ci0gICAgICAgICAgICBsb2cuZXJyb3IoIk1pc3NpbmcgcGFyYW1ldGVyOiBwYXRoIHRvIG91dHB1dCBqYXIiKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHNPcHRpb25zLmdlbmVyYXRlUHVibGljQWNjZXNzID0gZmFsc2U7Ci0KLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9NZXRob2RBZGFwdGVyLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL01ldGhvZEFkYXB0ZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2QxZTRjZi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL01ldGhvZEFkYXB0ZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGU7Ci0KLQotLyoqCi0gKiBBbiBhZGFwdGVyIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVzZSB7QGxpbmsgTWV0aG9kTGlzdGVuZXJ9LgotICogPHAvPgotICogVGhlIGFkYXB0ZXIgY2FsbHMgdGhlIHZvaWQge0BsaW5rICNvbkludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpfSBsaXN0ZW5lcgotICogZm9yIGFsbCB0eXBlcyAoSSwgTCwgRiwgRCBhbmQgQSksIHJldHVybmluZyAwIG9yIG51bGwgYXMgYXBwcm9wcmlhdGUuCi0gKi8KLXB1YmxpYyBjbGFzcyBNZXRob2RBZGFwdGVyIGltcGxlbWVudHMgTWV0aG9kTGlzdGVuZXIgewotICAgIC8qKgotICAgICAqIEEgc3R1YiBtZXRob2QgaXMgYmVpbmcgaW52b2tlZC4KLSAgICAgKiA8cC8+Ci0gICAgICogS25vd24gbGltaXRhdGlvbjogY2FsbGVyIGFyZ3VtZW50cyBhcmUgbm90IGF2YWlsYWJsZS4KLSAgICAgKgotICAgICAqIEBwYXJhbSBzaWduYXR1cmUgVGhlIHNpZ25hdHVyZSBvZiB0aGUgbWV0aG9kIGJlaW5nIGludm9rZWQsIGNvbXBvc2VkIG9mIHRoZQotICAgICAqICAgICAgICAgICAgICAgICAgYmluYXJ5IGNsYXNzIG5hbWUgZm9sbG93ZWQgYnkgdGhlIG1ldGhvZCBkZXNjcmlwdG9yIChha2EgYXJndW1lbnQKLSAgICAgKiAgICAgICAgICAgICAgICAgIHR5cGVzKS4gRXhhbXBsZTogImNvbS9mb28vTXlDbGFzcy9Jbm5lckNsYXNzL3ByaW50SW50KEkpViIuCi0gICAgICogQHBhcmFtIGlzTmF0aXZlIFRydWUgaWYgdGhlIG1ldGhvZCB3YXMgYSBuYXRpdmUgbWV0aG9kLgotICAgICAqIEBwYXJhbSBjYWxsZXIgVGhlIGNhbGxpbmcgb2JqZWN0LiBOdWxsIGZvciBzdGF0aWMgbWV0aG9kcywgInRoaXMiIGZvciBpbnN0YW5jZSBtZXRob2RzLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIG9uSW52b2tlVihTdHJpbmcgc2lnbmF0dXJlLCBib29sZWFuIGlzTmF0aXZlLCBPYmplY3QgY2FsbGVyKSB7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogU2FtZSBhcyB7QGxpbmsgI29uSW52b2tlVihTdHJpbmcsIGJvb2xlYW4sIE9iamVjdCl9IGJ1dCByZXR1cm5zIGFuIGludGVnZXIgb3Igc2ltaWxhci4KLSAgICAgKiBAc2VlICNvbkludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpCi0gICAgICogQHJldHVybiBhbiBpbnRlZ2VyLCBvciBhIGJvb2xlYW4sIG9yIGEgc2hvcnQgb3IgYSBieXRlLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBpbnQgb25JbnZva2VJKFN0cmluZyBzaWduYXR1cmUsIGJvb2xlYW4gaXNOYXRpdmUsIE9iamVjdCBjYWxsZXIpIHsKLSAgICAgICAgb25JbnZva2VWKHNpZ25hdHVyZSwgaXNOYXRpdmUsIGNhbGxlcik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFNhbWUgYXMge0BsaW5rICNvbkludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpfSBidXQgcmV0dXJucyBhIGxvbmcuCi0gICAgICogQHNlZSAjb25JbnZva2VWKFN0cmluZywgYm9vbGVhbiwgT2JqZWN0KQotICAgICAqIEByZXR1cm4gYSBsb25nLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBsb25nIG9uSW52b2tlTChTdHJpbmcgc2lnbmF0dXJlLCBib29sZWFuIGlzTmF0aXZlLCBPYmplY3QgY2FsbGVyKSB7Ci0gICAgICAgIG9uSW52b2tlVihzaWduYXR1cmUsIGlzTmF0aXZlLCBjYWxsZXIpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBTYW1lIGFzIHtAbGluayAjb25JbnZva2VWKFN0cmluZywgYm9vbGVhbiwgT2JqZWN0KX0gYnV0IHJldHVybnMgYSBmbG9hdC4KLSAgICAgKiBAc2VlICNvbkludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpCi0gICAgICogQHJldHVybiBhIGZsb2F0LgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBmbG9hdCBvbkludm9rZUYoU3RyaW5nIHNpZ25hdHVyZSwgYm9vbGVhbiBpc05hdGl2ZSwgT2JqZWN0IGNhbGxlcikgewotICAgICAgICBvbkludm9rZVYoc2lnbmF0dXJlLCBpc05hdGl2ZSwgY2FsbGVyKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogU2FtZSBhcyB7QGxpbmsgI29uSW52b2tlVihTdHJpbmcsIGJvb2xlYW4sIE9iamVjdCl9IGJ1dCByZXR1cm5zIGEgZG91YmxlLgotICAgICAqIEBzZWUgI29uSW52b2tlVihTdHJpbmcsIGJvb2xlYW4sIE9iamVjdCkKLSAgICAgKiBAcmV0dXJuIGEgZG91YmxlLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBkb3VibGUgb25JbnZva2VEKFN0cmluZyBzaWduYXR1cmUsIGJvb2xlYW4gaXNOYXRpdmUsIE9iamVjdCBjYWxsZXIpIHsKLSAgICAgICAgb25JbnZva2VWKHNpZ25hdHVyZSwgaXNOYXRpdmUsIGNhbGxlcik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFNhbWUgYXMge0BsaW5rICNvbkludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpfSBidXQgcmV0dXJucyBhbiBvYmplY3QuCi0gICAgICogQHNlZSAjb25JbnZva2VWKFN0cmluZywgYm9vbGVhbiwgT2JqZWN0KQotICAgICAqIEByZXR1cm4gYW4gb2JqZWN0LgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBPYmplY3Qgb25JbnZva2VBKFN0cmluZyBzaWduYXR1cmUsIGJvb2xlYW4gaXNOYXRpdmUsIE9iamVjdCBjYWxsZXIpIHsKLSAgICAgICAgb25JbnZva2VWKHNpZ25hdHVyZSwgaXNOYXRpdmUsIGNhbGxlcik7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9NZXRob2RMaXN0ZW5lci5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9NZXRob2RMaXN0ZW5lci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZmMyYjI0Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvTWV0aG9kTGlzdGVuZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDc2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGU7Ci0KLQotLyoqCi0gKiBJbnRlcmZhY2UgdG8gYWxsb3cgYSBtZXRob2QgaW52b2NhdGlvbiB0byBiZSBsaXN0ZW5lZCB1cG9uLgotICogPHAvPgotICogVGhpcyBpcyB1c2VkIGJ5IHtAbGluayBPdmVycmlkZU1ldGhvZH0gdG8gcmVnaXN0ZXIgYSBsaXN0ZW5lciBmb3IgbWV0aG9kcyB0aGF0Ci0gKiBoYXZlIGJlZW4gc3R1YmJlZCBieSB0aGUge0BsaW5rIEFzbUdlbmVyYXRvcn0uIEF0IHJ1bnRpbWUgdGhlIHN0dWIgd2lsbCBjYWxsIGVpdGhlciBhCi0gKiBkZWZhdWx0IGdsb2JhbCBsaXN0ZW5lciBvciBhIHNwZWNpZmljIGxpc3RlbmVyIGJhc2VkIG9uIHRoZSBtZXRob2Qgc2lnbmF0dXJlLgotICovCi1wdWJsaWMgaW50ZXJmYWNlIE1ldGhvZExpc3RlbmVyIHsKLSAgICAvKioKLSAgICAgKiBBIHN0dWIgbWV0aG9kIGlzIGJlaW5nIGludm9rZWQuCi0gICAgICogPHAvPgotICAgICAqIEtub3duIGxpbWl0YXRpb246IGNhbGxlciBhcmd1bWVudHMgYXJlIG5vdCBhdmFpbGFibGUuCi0gICAgICogIAotICAgICAqIEBwYXJhbSBzaWduYXR1cmUgVGhlIHNpZ25hdHVyZSBvZiB0aGUgbWV0aG9kIGJlaW5nIGludm9rZWQsIGNvbXBvc2VkIG9mIHRoZQotICAgICAqICAgICAgICAgICAgICAgICAgYmluYXJ5IGNsYXNzIG5hbWUgZm9sbG93ZWQgYnkgdGhlIG1ldGhvZCBkZXNjcmlwdG9yIChha2EgYXJndW1lbnQKLSAgICAgKiAgICAgICAgICAgICAgICAgIHR5cGVzKS4gRXhhbXBsZTogImNvbS9mb28vTXlDbGFzcy9Jbm5lckNsYXNzL3ByaW50SW50KEkpViIuCi0gICAgICogQHBhcmFtIGlzTmF0aXZlIFRydWUgaWYgdGhlIG1ldGhvZCB3YXMgYSBuYXRpdmUgbWV0aG9kLgotICAgICAqIEBwYXJhbSBjYWxsZXIgVGhlIGNhbGxpbmcgb2JqZWN0LiBOdWxsIGZvciBzdGF0aWMgbWV0aG9kcywgInRoaXMiIGZvciBpbnN0YW5jZSBtZXRob2RzLgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIG9uSW52b2tlVihTdHJpbmcgc2lnbmF0dXJlLCBib29sZWFuIGlzTmF0aXZlLCBPYmplY3QgY2FsbGVyKTsKLQotICAgIC8qKgotICAgICAqIFNhbWUgYXMge0BsaW5rICNvbkludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpfSBidXQgcmV0dXJucyBhbiBpbnRlZ2VyIG9yIHNpbWlsYXIuCi0gICAgICogQHNlZSAjb25JbnZva2VWKFN0cmluZywgYm9vbGVhbiwgT2JqZWN0KQotICAgICAqIEByZXR1cm4gYW4gaW50ZWdlciwgb3IgYSBib29sZWFuLCBvciBhIHNob3J0IG9yIGEgYnl0ZS4KLSAgICAgKi8KLSAgICBwdWJsaWMgaW50IG9uSW52b2tlSShTdHJpbmcgc2lnbmF0dXJlLCBib29sZWFuIGlzTmF0aXZlLCBPYmplY3QgY2FsbGVyKTsKLQotICAgIC8qKgotICAgICAqIFNhbWUgYXMge0BsaW5rICNvbkludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpfSBidXQgcmV0dXJucyBhIGxvbmcuCi0gICAgICogQHNlZSAjb25JbnZva2VWKFN0cmluZywgYm9vbGVhbiwgT2JqZWN0KQotICAgICAqIEByZXR1cm4gYSBsb25nLgotICAgICAqLwotICAgIHB1YmxpYyBsb25nIG9uSW52b2tlTChTdHJpbmcgc2lnbmF0dXJlLCBib29sZWFuIGlzTmF0aXZlLCBPYmplY3QgY2FsbGVyKTsKLQotICAgIC8qKgotICAgICAqIFNhbWUgYXMge0BsaW5rICNvbkludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpfSBidXQgcmV0dXJucyBhIGZsb2F0LgotICAgICAqIEBzZWUgI29uSW52b2tlVihTdHJpbmcsIGJvb2xlYW4sIE9iamVjdCkKLSAgICAgKiBAcmV0dXJuIGEgZmxvYXQuCi0gICAgICovCi0gICAgcHVibGljIGZsb2F0IG9uSW52b2tlRihTdHJpbmcgc2lnbmF0dXJlLCBib29sZWFuIGlzTmF0aXZlLCBPYmplY3QgY2FsbGVyKTsKLQotICAgIC8qKgotICAgICAqIFNhbWUgYXMge0BsaW5rICNvbkludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpfSBidXQgcmV0dXJucyBhIGRvdWJsZS4KLSAgICAgKiBAc2VlICNvbkludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpCi0gICAgICogQHJldHVybiBhIGRvdWJsZS4KLSAgICAgKi8KLSAgICBwdWJsaWMgZG91YmxlIG9uSW52b2tlRChTdHJpbmcgc2lnbmF0dXJlLCBib29sZWFuIGlzTmF0aXZlLCBPYmplY3QgY2FsbGVyKTsKLQotICAgIC8qKgotICAgICAqIFNhbWUgYXMge0BsaW5rICNvbkludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpfSBidXQgcmV0dXJucyBhbiBvYmplY3QuCi0gICAgICogQHNlZSAjb25JbnZva2VWKFN0cmluZywgYm9vbGVhbiwgT2JqZWN0KQotICAgICAqIEByZXR1cm4gYW4gb2JqZWN0LgotICAgICAqLwotICAgIHB1YmxpYyBPYmplY3Qgb25JbnZva2VBKFN0cmluZyBzaWduYXR1cmUsIGJvb2xlYW4gaXNOYXRpdmUsIE9iamVjdCBjYWxsZXIpOwotfQotICAgIApkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9PdmVycmlkZU1ldGhvZC5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9PdmVycmlkZU1ldGhvZC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNmFmZjk5Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvT3ZlcnJpZGVNZXRob2QuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlOwotCi1pbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7Ci0KLS8qKgotICogQWxsb3dzIHN0dWIgbWV0aG9kcyBmcm9tIExheW91dExpYiB0byBiZSBvdmVycmlkZW4gYXQgcnVudGltZS4KLSAqIDxwLz4KLSAqIEltcGxlbWVudGF0aW9uIG5vdGU6IGFsbCB0eXBlcyByZXF1aXJlZCBieSB0aGlzIGNsYXNzKGlubmVyL291dGVyIGNsYXNzZXMgJiBpbnRlcmZhY2VzKQotICogbXVzdCBiZSByZWZlcmVuY2VkIGJ5IHRoZSBpbmplY3RDbGFzcyBhcmd1bWVudCB0byB7QGxpbmsgQXNtR2VuZXJhdG9yfSBpbiBNYWluLmphdmE7Ci0gKiBPdGhlcndpc2UgdGhleSB3b24ndCBiZSBhY2Nlc3NpYmxlIGluIGxheW91dGxpYi5qYXIgYXQgcnVudGltZS4KLSAqLwotcHVibGljIGZpbmFsIGNsYXNzIE92ZXJyaWRlTWV0aG9kIHsKLQotICAgIC8qKiBNYXAgb2YgbWV0aG9kIG92ZXJyaWRkZW4uICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgSGFzaE1hcDxTdHJpbmcsIE1ldGhvZExpc3RlbmVyPiBzTWV0aG9kcyA9IG5ldyBIYXNoTWFwPFN0cmluZywgTWV0aG9kTGlzdGVuZXI+KCk7Ci0gICAgLyoqIERlZmF1bHQgbGlzdGVuZXIgZm9yIGFsbCBtZXRob2Qgbm90IGxpc3RlZCBpbiBzTWV0aG9kcy4gTm90aGluZyBpZiBudWxsLiAqLwotICAgIHByaXZhdGUgc3RhdGljIE1ldGhvZExpc3RlbmVyIHNEZWZhdWx0TGlzdGVuZXIgPSBudWxsOwotICAgIAotICAgIC8qKgotICAgICAqIFNldHMgdGhlIGRlZmF1bHQgbGlzdGVuZXIgZm9yIGFsbCBtZXRob2RzIG5vdCBzcGVjaWZpY2FsbHkgaGFuZGxlZC4KLSAgICAgKiBOdWxsIG1lYW5zIHRvIGRvIG5vdGhpbmcuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIHNldERlZmF1bHRMaXN0ZW5lcihNZXRob2RMaXN0ZW5lciBsaXN0ZW5lcikgewotICAgICAgICBzRGVmYXVsdExpc3RlbmVyID0gbGlzdGVuZXI7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogRGVmaW5lcyBvciByZXNldCBhIGxpc3RlbmVyIGZvciB0aGUgZ2l2ZW4gbWV0aG9kIHNpZ25hdHVyZS4KLSAgICAgKiAKLSAgICAgKiBAcGFyYW0gc2lnbmF0dXJlIFRoZSBzaWduYXR1cmUgb2YgdGhlIG1ldGhvZCBiZWluZyBpbnZva2VkLCBjb21wb3NlZCBvZiB0aGUKLSAgICAgKiAgICAgICAgICAgICAgICAgIGJpbmFyeSBjbGFzcyBuYW1lIGZvbGxvd2VkIGJ5IHRoZSBtZXRob2QgZGVzY3JpcHRvciAoYWthIGFyZ3VtZW50Ci0gICAgICogICAgICAgICAgICAgICAgICB0eXBlcykuIEV4YW1wbGU6ICJjb20vZm9vL015Q2xhc3MvSW5uZXJDbGFzcy9wcmludEludChJKVYiCi0gICAgICogQHBhcmFtIGxpc3RlbmVyIFRoZSBuZXcgbGlzdGVuZXIuIFJlbW92ZXMgaXQgaWYgbnVsbC4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0TWV0aG9kTGlzdGVuZXIoU3RyaW5nIHNpZ25hdHVyZSwgTWV0aG9kTGlzdGVuZXIgbGlzdGVuZXIpIHsKLSAgICAgICAgaWYgKGxpc3RlbmVyID09IG51bGwpIHsKLSAgICAgICAgICAgIHNNZXRob2RzLnJlbW92ZShzaWduYXR1cmUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc01ldGhvZHMucHV0KHNpZ25hdHVyZSwgbGlzdGVuZXIpOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIC8qKgotICAgICAqIEludm9rZXMgdGhlIHNwZWNpZmljIGxpc3RlbmVyIGZvciB0aGUgZ2l2ZW4gc2lnbmF0dXJlIG9yIHRoZSBkZWZhdWx0IG9uZSBpZiBkZWZpbmVkLgotICAgICAqIDxwLz4KLSAgICAgKiBUaGlzIHZlcnNpb24gaW52b2tlcyB0aGUgbWV0aG9kIGxpc3RlbmVyIGZvciB0aGUgdm9pZCByZXR1cm4gdHlwZS4gCi0gICAgICogPHAvPgotICAgICAqIE5vdGU6IHRoaXMgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgYnkgdGhlIExheW91dExpYiBCcmlkZ2UuIEl0IGlzIGludGVuZGVkIHRvIGJlIGNhbGxlZAotICAgICAqIGJ5IHRoZSBzdHViYmVkIG1ldGhvZHMgZ2VuZXJhdGVkIGJ5IHRoZSBMYXlvdXRMaWJfY3JlYXRlIHRvb2wuCi0gICAgICogCi0gICAgICogQHBhcmFtIHNpZ25hdHVyZSBUaGUgc2lnbmF0dXJlIG9mIHRoZSBtZXRob2QgYmVpbmcgaW52b2tlZCwgY29tcG9zZWQgb2YgdGhlCi0gICAgICogICAgICAgICAgICAgICAgICBiaW5hcnkgY2xhc3MgbmFtZSBmb2xsb3dlZCBieSB0aGUgbWV0aG9kIGRlc2NyaXB0b3IgKGFrYSBhcmd1bWVudAotICAgICAqICAgICAgICAgICAgICAgICAgdHlwZXMpLiBFeGFtcGxlOiAiY29tL2Zvby9NeUNsYXNzL0lubmVyQ2xhc3MvcHJpbnRJbnQoSSlWIi4KLSAgICAgKiBAcGFyYW0gaXNOYXRpdmUgVHJ1ZSBpZiB0aGUgbWV0aG9kIHdhcyBhIG5hdGl2ZSBtZXRob2QuCi0gICAgICogQHBhcmFtIGNhbGxlciBUaGUgY2FsbGluZyBvYmplY3QuIE51bGwgZm9yIHN0YXRpYyBtZXRob2RzLCAidGhpcyIgZm9yIGluc3RhbmNlIG1ldGhvZHMuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIGludm9rZVYoU3RyaW5nIHNpZ25hdHVyZSwgYm9vbGVhbiBpc05hdGl2ZSwgT2JqZWN0IGNhbGxlcikgewotICAgICAgICBNZXRob2RMaXN0ZW5lciBpID0gc01ldGhvZHMuZ2V0KHNpZ25hdHVyZSk7Ci0gICAgICAgIGlmIChpICE9IG51bGwpIHsKLSAgICAgICAgICAgIGkub25JbnZva2VWKHNpZ25hdHVyZSwgaXNOYXRpdmUsIGNhbGxlcik7Ci0gICAgICAgIH0gZWxzZSBpZiAoc0RlZmF1bHRMaXN0ZW5lciAhPSBudWxsKSB7Ci0gICAgICAgICAgICBzRGVmYXVsdExpc3RlbmVyLm9uSW52b2tlVihzaWduYXR1cmUsIGlzTmF0aXZlLCBjYWxsZXIpOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIC8qKgotICAgICAqIEludm9rZXMgdGhlIHNwZWNpZmljIGxpc3RlbmVyIGZvciB0aGUgaW50IHJldHVybiB0eXBlLgotICAgICAqIEBzZWUgI2ludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBpbnQgaW52b2tlSShTdHJpbmcgc2lnbmF0dXJlLCBib29sZWFuIGlzTmF0aXZlLCBPYmplY3QgY2FsbGVyKSB7Ci0gICAgICAgIE1ldGhvZExpc3RlbmVyIGkgPSBzTWV0aG9kcy5nZXQoc2lnbmF0dXJlKTsKLSAgICAgICAgaWYgKGkgIT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGkub25JbnZva2VJKHNpZ25hdHVyZSwgaXNOYXRpdmUsIGNhbGxlcik7Ci0gICAgICAgIH0gZWxzZSBpZiAoc0RlZmF1bHRMaXN0ZW5lciAhPSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gc0RlZmF1bHRMaXN0ZW5lci5vbkludm9rZUkoc2lnbmF0dXJlLCBpc05hdGl2ZSwgY2FsbGVyKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgCi0gICAgLyoqCi0gICAgICogSW52b2tlcyB0aGUgc3BlY2lmaWMgbGlzdGVuZXIgZm9yIHRoZSBsb25nIHJldHVybiB0eXBlLgotICAgICAqIEBzZWUgI2ludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBsb25nIGludm9rZUwoU3RyaW5nIHNpZ25hdHVyZSwgYm9vbGVhbiBpc05hdGl2ZSwgT2JqZWN0IGNhbGxlcikgewotICAgICAgICBNZXRob2RMaXN0ZW5lciBpID0gc01ldGhvZHMuZ2V0KHNpZ25hdHVyZSk7Ci0gICAgICAgIGlmIChpICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBpLm9uSW52b2tlTChzaWduYXR1cmUsIGlzTmF0aXZlLCBjYWxsZXIpOwotICAgICAgICB9IGVsc2UgaWYgKHNEZWZhdWx0TGlzdGVuZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHNEZWZhdWx0TGlzdGVuZXIub25JbnZva2VMKHNpZ25hdHVyZSwgaXNOYXRpdmUsIGNhbGxlcik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIAotICAgIC8qKgotICAgICAqIEludm9rZXMgdGhlIHNwZWNpZmljIGxpc3RlbmVyIGZvciB0aGUgZmxvYXQgcmV0dXJuIHR5cGUuCi0gICAgICogQHNlZSAjaW52b2tlVihTdHJpbmcsIGJvb2xlYW4sIE9iamVjdCkKLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIGZsb2F0IGludm9rZUYoU3RyaW5nIHNpZ25hdHVyZSwgYm9vbGVhbiBpc05hdGl2ZSwgT2JqZWN0IGNhbGxlcikgewotICAgICAgICBNZXRob2RMaXN0ZW5lciBpID0gc01ldGhvZHMuZ2V0KHNpZ25hdHVyZSk7Ci0gICAgICAgIGlmIChpICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBpLm9uSW52b2tlRihzaWduYXR1cmUsIGlzTmF0aXZlLCBjYWxsZXIpOwotICAgICAgICB9IGVsc2UgaWYgKHNEZWZhdWx0TGlzdGVuZXIgIT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIHNEZWZhdWx0TGlzdGVuZXIub25JbnZva2VGKHNpZ25hdHVyZSwgaXNOYXRpdmUsIGNhbGxlcik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIAotICAgIC8qKgotICAgICAqIEludm9rZXMgdGhlIHNwZWNpZmljIGxpc3RlbmVyIGZvciB0aGUgZG91YmxlIHJldHVybiB0eXBlLgotICAgICAqIEBzZWUgI2ludm9rZVYoU3RyaW5nLCBib29sZWFuLCBPYmplY3QpCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBkb3VibGUgaW52b2tlRChTdHJpbmcgc2lnbmF0dXJlLCBib29sZWFuIGlzTmF0aXZlLCBPYmplY3QgY2FsbGVyKSB7Ci0gICAgICAgIE1ldGhvZExpc3RlbmVyIGkgPSBzTWV0aG9kcy5nZXQoc2lnbmF0dXJlKTsKLSAgICAgICAgaWYgKGkgIT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIGkub25JbnZva2VEKHNpZ25hdHVyZSwgaXNOYXRpdmUsIGNhbGxlcik7Ci0gICAgICAgIH0gZWxzZSBpZiAoc0RlZmF1bHRMaXN0ZW5lciAhPSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gc0RlZmF1bHRMaXN0ZW5lci5vbkludm9rZUQoc2lnbmF0dXJlLCBpc05hdGl2ZSwgY2FsbGVyKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgCi0gICAgLyoqCi0gICAgICogSW52b2tlcyB0aGUgc3BlY2lmaWMgbGlzdGVuZXIgZm9yIHRoZSBvYmplY3QgcmV0dXJuIHR5cGUuCi0gICAgICogQHNlZSAjaW52b2tlVihTdHJpbmcsIGJvb2xlYW4sIE9iamVjdCkKLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIE9iamVjdCBpbnZva2VBKFN0cmluZyBzaWduYXR1cmUsIGJvb2xlYW4gaXNOYXRpdmUsIE9iamVjdCBjYWxsZXIpIHsKLSAgICAgICAgTWV0aG9kTGlzdGVuZXIgaSA9IHNNZXRob2RzLmdldChzaWduYXR1cmUpOwotICAgICAgICBpZiAoaSAhPSBudWxsKSB7Ci0gICAgICAgICAgICByZXR1cm4gaS5vbkludm9rZUEoc2lnbmF0dXJlLCBpc05hdGl2ZSwgY2FsbGVyKTsKLSAgICAgICAgfSBlbHNlIGlmIChzRGVmYXVsdExpc3RlbmVyICE9IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybiBzRGVmYXVsdExpc3RlbmVyLm9uSW52b2tlQShzaWduYXR1cmUsIGlzTmF0aXZlLCBjYWxsZXIpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvUmVmYWN0b3JDbGFzc0FkYXB0ZXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvUmVmYWN0b3JDbGFzc0FkYXB0ZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTExNjFmNS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL1JlZmFjdG9yQ2xhc3NBZGFwdGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlOwotCi1pbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7Ci0KLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1Zpc2l0b3I7Ci0KLXB1YmxpYyBjbGFzcyBSZWZhY3RvckNsYXNzQWRhcHRlciBleHRlbmRzIEFic3RyYWN0Q2xhc3NBZGFwdGVyIHsKLQotICAgIHByaXZhdGUgZmluYWwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbVJlZmFjdG9yQ2xhc3NlczsKLQotICAgIFJlZmFjdG9yQ2xhc3NBZGFwdGVyKENsYXNzVmlzaXRvciBjdiwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcmVmYWN0b3JDbGFzc2VzKSB7Ci0gICAgICAgIHN1cGVyKGN2KTsKLSAgICAgICAgbVJlZmFjdG9yQ2xhc3NlcyA9IHJlZmFjdG9yQ2xhc3NlczsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwcm90ZWN0ZWQgU3RyaW5nIHJlbmFtZUludGVybmFsVHlwZShTdHJpbmcgb2xkQ2xhc3NOYW1lKSB7Ci0gICAgICAgIGlmIChvbGRDbGFzc05hbWUgIT0gbnVsbCkgewotICAgICAgICAgICAgU3RyaW5nIG5ld05hbWUgPSBtUmVmYWN0b3JDbGFzc2VzLmdldChvbGRDbGFzc05hbWUpOwotICAgICAgICAgICAgaWYgKG5ld05hbWUgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXdOYW1lOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaW50IHBvcyA9IG9sZENsYXNzTmFtZS5pbmRleE9mKCckJyk7Ci0gICAgICAgICAgICBpZiAocG9zID4gMCkgewotICAgICAgICAgICAgICAgIG5ld05hbWUgPSBtUmVmYWN0b3JDbGFzc2VzLmdldChvbGRDbGFzc05hbWUuc3Vic3RyaW5nKDAsIHBvcykpOwotICAgICAgICAgICAgICAgIGlmIChuZXdOYW1lICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld05hbWUgKyBvbGRDbGFzc05hbWUuc3Vic3RyaW5nKHBvcyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBvbGRDbGFzc05hbWU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9SZW5hbWVDbGFzc0FkYXB0ZXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvUmVuYW1lQ2xhc3NBZGFwdGVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2MTA3NGMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9SZW5hbWVDbGFzc0FkYXB0ZXIuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGU7Ci0KLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1Zpc2l0b3I7Ci0KLS8qKgotICogVGhpcyBjbGFzcyB2aXNpdG9yIHJlbmFtZXMgYSBjbGFzcyBmcm9tIGEgZ2l2ZW4gb2xkIG5hbWUgdG8gYSBnaXZlbiBuZXcgbmFtZS4KLSAqIFRoZSBjbGFzcyB2aXNpdG9yIHdpbGwgYWxzbyByZW5hbWUgYWxsIGlubmVyIGNsYXNzZXMgYW5kIHJlZmVyZW5jZXMgaW4gdGhlIG1ldGhvZHMuCi0gKiA8cC8+Ci0gKgotICogRm9yIGlubmVyIGNsYXNzZXMsIHRoaXMgaGFuZGxlcyBvbmx5IHRoZSBjYXNlIHdoZXJlIHRoZSBvdXRlciBjbGFzcyBuYW1lIGNoYW5nZXMuCi0gKiBUaGUgaW5uZXIgY2xhc3MgbmFtZSBzaG91bGQgcmVtYWluIHRoZSBzYW1lLgotICovCi1wdWJsaWMgY2xhc3MgUmVuYW1lQ2xhc3NBZGFwdGVyIGV4dGVuZHMgQWJzdHJhY3RDbGFzc0FkYXB0ZXIgewotCi0KLSAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtT2xkTmFtZTsKLSAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtTmV3TmFtZTsKLSAgICBwcml2YXRlIFN0cmluZyBtT2xkQmFzZTsKLSAgICBwcml2YXRlIFN0cmluZyBtTmV3QmFzZTsKLQotICAgIC8qKgotICAgICAqIENyZWF0ZXMgYSBjbGFzcyB2aXNpdG9yIHRoYXQgcmVuYW1lcyBhIGNsYXNzIGZyb20gYSBnaXZlbiBvbGQgbmFtZSB0byBhIGdpdmVuIG5ldyBuYW1lLgotICAgICAqIFRoZSBjbGFzcyB2aXNpdG9yIHdpbGwgYWxzbyByZW5hbWUgYWxsIGlubmVyIGNsYXNzZXMgYW5kIHJlZmVyZW5jZXMgaW4gdGhlIG1ldGhvZHMuCi0gICAgICogVGhlIG5hbWVzIG11c3QgYmUgZnVsbCBxdWFsaWZpZWQgaW50ZXJuYWwgQVNNIG5hbWVzIChlLmcuIGNvbS9ibGFoL015Q2xhc3MkSW5uZXJDbGFzcykuCi0gICAgICovCi0gICAgcHVibGljIFJlbmFtZUNsYXNzQWRhcHRlcihDbGFzc1Zpc2l0b3IgY3YsIFN0cmluZyBvbGROYW1lLCBTdHJpbmcgbmV3TmFtZSkgewotICAgICAgICBzdXBlcihjdik7Ci0gICAgICAgIG1PbGRCYXNlID0gbU9sZE5hbWUgPSBvbGROYW1lOwotICAgICAgICBtTmV3QmFzZSA9IG1OZXdOYW1lID0gbmV3TmFtZTsKLQotICAgICAgICBpbnQgcG9zID0gbU9sZE5hbWUuaW5kZXhPZignJCcpOwotICAgICAgICBpZiAocG9zID4gMCkgewotICAgICAgICAgICAgbU9sZEJhc2UgPSBtT2xkTmFtZS5zdWJzdHJpbmcoMCwgcG9zKTsKLSAgICAgICAgfQotICAgICAgICBwb3MgPSBtTmV3TmFtZS5pbmRleE9mKCckJyk7Ci0gICAgICAgIGlmIChwb3MgPiAwKSB7Ci0gICAgICAgICAgICBtTmV3QmFzZSA9IG1OZXdOYW1lLnN1YnN0cmluZygwLCBwb3MpOwotICAgICAgICB9Ci0KLSAgICAgICAgYXNzZXJ0IChtT2xkQmFzZSA9PSBudWxsICYmIG1OZXdCYXNlID09IG51bGwpIHx8IChtT2xkQmFzZSAhPSBudWxsICYmIG1OZXdCYXNlICE9IG51bGwpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlbmFtZXMgYW4gaW50ZXJuYWwgdHlwZSBuYW1lLCBlLmcuICJjb20ucGFja2FnZS5NeUNsYXNzIi4KLSAgICAgKiBJZiB0aGUgdHlwZSBkb2Vzbid0IG5lZWQgdG8gYmUgcmVuYW1lZCwgcmV0dXJucyB0aGUgaW5wdXQgc3RyaW5nIGFzLWlzLgotICAgICAqIDxwLz4KLSAgICAgKiBUaGUgaW50ZXJuYWwgdHlwZSBvZiBzb21lIG9mIHRoZSBNZXRob2RWaXNpdG9yIHR1cm5zIG91dCB0byBiZSBhIHR5cGUKLSAgICAgICBkZXNjcmlwdG9yIHNvbWV0aW1lcyBzbyBkZXNjcmlwdG9ycyBhcmUgcmVuYW1lZCB0b28uCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHJvdGVjdGVkIFN0cmluZyByZW5hbWVJbnRlcm5hbFR5cGUoU3RyaW5nIHR5cGUpIHsKLSAgICAgICAgaWYgKHR5cGUgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodHlwZS5lcXVhbHMobU9sZE5hbWUpKSB7Ci0gICAgICAgICAgICByZXR1cm4gbU5ld05hbWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobU9sZEJhc2UgIT0gbU9sZE5hbWUgJiYgdHlwZS5lcXVhbHMobU9sZEJhc2UpKSB7Ci0gICAgICAgICAgICByZXR1cm4gbU5ld0Jhc2U7Ci0gICAgICAgIH0KLQotICAgICAgICBpbnQgcG9zID0gdHlwZS5pbmRleE9mKCckJyk7Ci0gICAgICAgIGlmIChwb3MgPT0gbU9sZEJhc2UubGVuZ3RoKCkgJiYgdHlwZS5zdGFydHNXaXRoKG1PbGRCYXNlKSkgewotICAgICAgICAgICAgcmV0dXJuIG1OZXdCYXNlICsgdHlwZS5zdWJzdHJpbmcocG9zKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdHlwZTsKLSAgICB9Ci0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvU3R1Yk1ldGhvZEFkYXB0ZXIuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvU3R1Yk1ldGhvZEFkYXB0ZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTFlNzUzNS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL1N0dWJNZXRob2RBZGFwdGVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwzNzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZTsKLQotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkFubm90YXRpb25WaXNpdG9yOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkF0dHJpYnV0ZTsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5MYWJlbDsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5NZXRob2RWaXNpdG9yOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLk9wY29kZXM7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uVHlwZTsKLQotLyoqCi0gKiBUaGlzIG1ldGhvZCBhZGFwdGVyIHJld3JpdGVzIGEgbWV0aG9kIGJ5IGRpc2NhcmRpbmcgdGhlIG9yaWdpbmFsIGNvZGUgYW5kIGdlbmVyYXRpbmcKLSAqIGEgc3R1YiBkZXBlbmRpbmcgb24gdGhlIHJldHVybiB0eXBlLiBPcmlnaW5hbCBhbm5vdGF0aW9ucyBhcmUgcGFzc2VkIGFsb25nIHVuY2hhbmdlZC4KLSAqLwotY2xhc3MgU3R1Yk1ldGhvZEFkYXB0ZXIgZXh0ZW5kcyBNZXRob2RWaXNpdG9yIHsKLQotICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBDT05TVFJVQ1RPUiA9ICI8aW5pdD4iOwotICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBDTEFTU19JTklUID0gIjxjbGluaXQ+IjsKLQotICAgIC8qKiBUaGUgcGFyZW50IG1ldGhvZCB3cml0ZXIgKi8KLSAgICBwcml2YXRlIE1ldGhvZFZpc2l0b3IgbVBhcmVudFZpc2l0b3I7Ci0gICAgLyoqIFRoZSBtZXRob2QgcmV0dXJuIHR5cGUuIENhbiBiZSBudWxsLiAqLwotICAgIHByaXZhdGUgVHlwZSBtUmV0dXJuVHlwZTsKLSAgICAvKiogTWVzc2FnZSB0byBiZSBwcmludGVkIGJ5IHN0dWIgbWV0aG9kcy4gKi8KLSAgICBwcml2YXRlIFN0cmluZyBtSW52b2tlU2lnbmF0dXJlOwotICAgIC8qKiBGbGFnIHRvIG91dHB1dCB0aGUgZmlyc3QgbGluZSBudW1iZXIuICovCi0gICAgcHJpdmF0ZSBib29sZWFuIG1PdXRwdXRGaXJzdExpbmVOdW1iZXIgPSB0cnVlOwotICAgIC8qKiBGbGFnIHRoYXQgaXMgdHJ1ZSB3aGVuIGltcGxlbWVudGluZyBhIGNvbnN0cnVjdG9yLCB0byBhY2NlcHQgYWxsIG9yaWdpbmFsCi0gICAgICogIGNvZGUgY2FsbGluZyB0aGUgb3JpZ2luYWwgc3VwZXIgY29uc3RydWN0b3IuICovCi0gICAgcHJpdmF0ZSBib29sZWFuIG1Jc0luaXRNZXRob2QgPSBmYWxzZTsKLQotICAgIHByaXZhdGUgYm9vbGVhbiBtTWVzc2FnZUdlbmVyYXRlZDsKLSAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gbUlzU3RhdGljOwotICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBtSXNOYXRpdmU7Ci0KLSAgICBwdWJsaWMgU3R1Yk1ldGhvZEFkYXB0ZXIoTWV0aG9kVmlzaXRvciBtdiwgU3RyaW5nIG1ldGhvZE5hbWUsIFR5cGUgcmV0dXJuVHlwZSwKLSAgICAgICAgICAgIFN0cmluZyBpbnZva2VTaWduYXR1cmUsIGJvb2xlYW4gaXNTdGF0aWMsIGJvb2xlYW4gaXNOYXRpdmUpIHsKLSAgICAgICAgc3VwZXIoT3Bjb2Rlcy5BU000KTsKLSAgICAgICAgbVBhcmVudFZpc2l0b3IgPSBtdjsKLSAgICAgICAgbVJldHVyblR5cGUgPSByZXR1cm5UeXBlOwotICAgICAgICBtSW52b2tlU2lnbmF0dXJlID0gaW52b2tlU2lnbmF0dXJlOwotICAgICAgICBtSXNTdGF0aWMgPSBpc1N0YXRpYzsKLSAgICAgICAgbUlzTmF0aXZlID0gaXNOYXRpdmU7Ci0KLSAgICAgICAgaWYgKENPTlNUUlVDVE9SLmVxdWFscyhtZXRob2ROYW1lKSB8fCBDTEFTU19JTklULmVxdWFscyhtZXRob2ROYW1lKSkgewotICAgICAgICAgICAgbUlzSW5pdE1ldGhvZCA9IHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcml2YXRlIHZvaWQgZ2VuZXJhdGVJbnZva2UoKSB7Ci0gICAgICAgIC8qIEdlbmVyYXRlcyB0aGUgY29kZToKLSAgICAgICAgICogIE92ZXJyaWRlTWV0aG9kLmludm9rZSgic2lnbmF0dXJlIiwgbUlzTmF0aXZlID8gdHJ1ZSA6IGZhbHNlLCBudWxsIG9yIHRoaXMpOwotICAgICAgICAgKi8KLSAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRMZGNJbnNuKG1JbnZva2VTaWduYXR1cmUpOwotICAgICAgICAvLyBwdXNoIHRydWUgb3IgZmFsc2UKLSAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRJbnNuKG1Jc05hdGl2ZSA/IE9wY29kZXMuSUNPTlNUXzEgOiBPcGNvZGVzLklDT05TVF8wKTsKLSAgICAgICAgLy8gcHVzaCBudWxsIG9yIHRoaXMKLSAgICAgICAgaWYgKG1Jc1N0YXRpYykgewotICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRJbnNuKE9wY29kZXMuQUNPTlNUX05VTEwpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRWYXJJbnNuKE9wY29kZXMuQUxPQUQsIDApOwotICAgICAgICB9Ci0KLSAgICAgICAgaW50IHNvcnQgPSBtUmV0dXJuVHlwZSAhPSBudWxsID8gbVJldHVyblR5cGUuZ2V0U29ydCgpIDogVHlwZS5WT0lEOwotICAgICAgICBzd2l0Y2goc29ydCkgewotICAgICAgICBjYXNlIFR5cGUuVk9JRDoKLSAgICAgICAgICAgIG1QYXJlbnRWaXNpdG9yLnZpc2l0TWV0aG9kSW5zbihPcGNvZGVzLklOVk9LRVNUQVRJQywKLSAgICAgICAgICAgICAgICAgICAgImNvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvT3ZlcnJpZGVNZXRob2QiLAotICAgICAgICAgICAgICAgICAgICAiaW52b2tlViIsCi0gICAgICAgICAgICAgICAgICAgICIoTGphdmEvbGFuZy9TdHJpbmc7WkxqYXZhL2xhbmcvT2JqZWN0OylWIik7Ci0gICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdEluc24oT3Bjb2Rlcy5SRVRVUk4pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVHlwZS5CT09MRUFOOgotICAgICAgICBjYXNlIFR5cGUuQ0hBUjoKLSAgICAgICAgY2FzZSBUeXBlLkJZVEU6Ci0gICAgICAgIGNhc2UgVHlwZS5TSE9SVDoKLSAgICAgICAgY2FzZSBUeXBlLklOVDoKLSAgICAgICAgICAgIG1QYXJlbnRWaXNpdG9yLnZpc2l0TWV0aG9kSW5zbihPcGNvZGVzLklOVk9LRVNUQVRJQywKLSAgICAgICAgICAgICAgICAgICAgImNvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvT3ZlcnJpZGVNZXRob2QiLAotICAgICAgICAgICAgICAgICAgICAiaW52b2tlSSIsCi0gICAgICAgICAgICAgICAgICAgICIoTGphdmEvbGFuZy9TdHJpbmc7WkxqYXZhL2xhbmcvT2JqZWN0OylJIik7Ci0gICAgICAgICAgICBzd2l0Y2goc29ydCkgewotICAgICAgICAgICAgY2FzZSBUeXBlLkJPT0xFQU46Ci0gICAgICAgICAgICAgICAgTGFiZWwgbDEgPSBuZXcgTGFiZWwoKTsKLSAgICAgICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdEp1bXBJbnNuKE9wY29kZXMuSUZFUSwgbDEpOwotICAgICAgICAgICAgICAgIG1QYXJlbnRWaXNpdG9yLnZpc2l0SW5zbihPcGNvZGVzLklDT05TVF8xKTsKLSAgICAgICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdEluc24oT3Bjb2Rlcy5JUkVUVVJOKTsKLSAgICAgICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdExhYmVsKGwxKTsKLSAgICAgICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdEluc24oT3Bjb2Rlcy5JQ09OU1RfMCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFR5cGUuQ0hBUjoKLSAgICAgICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdEluc24oT3Bjb2Rlcy5JMkMpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBUeXBlLkJZVEU6Ci0gICAgICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRJbnNuKE9wY29kZXMuSTJCKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgVHlwZS5TSE9SVDoKLSAgICAgICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdEluc24oT3Bjb2Rlcy5JMlMpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRJbnNuKE9wY29kZXMuSVJFVFVSTik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUeXBlLkxPTkc6Ci0gICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdE1ldGhvZEluc24oT3Bjb2Rlcy5JTlZPS0VTVEFUSUMsCi0gICAgICAgICAgICAgICAgICAgICJjb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL092ZXJyaWRlTWV0aG9kIiwKLSAgICAgICAgICAgICAgICAgICAgImludm9rZUwiLAotICAgICAgICAgICAgICAgICAgICAiKExqYXZhL2xhbmcvU3RyaW5nO1pMamF2YS9sYW5nL09iamVjdDspSiIpOwotICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRJbnNuKE9wY29kZXMuTFJFVFVSTik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUeXBlLkZMT0FUOgotICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRNZXRob2RJbnNuKE9wY29kZXMuSU5WT0tFU1RBVElDLAotICAgICAgICAgICAgICAgICAgICAiY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9PdmVycmlkZU1ldGhvZCIsCi0gICAgICAgICAgICAgICAgICAgICJpbnZva2VGIiwKLSAgICAgICAgICAgICAgICAgICAgIihMamF2YS9sYW5nL1N0cmluZztaTGphdmEvbGFuZy9PYmplY3Q7KUYiKTsKLSAgICAgICAgICAgIG1QYXJlbnRWaXNpdG9yLnZpc2l0SW5zbihPcGNvZGVzLkZSRVRVUk4pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVHlwZS5ET1VCTEU6Ci0gICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdE1ldGhvZEluc24oT3Bjb2Rlcy5JTlZPS0VTVEFUSUMsCi0gICAgICAgICAgICAgICAgICAgICJjb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL092ZXJyaWRlTWV0aG9kIiwKLSAgICAgICAgICAgICAgICAgICAgImludm9rZUQiLAotICAgICAgICAgICAgICAgICAgICAiKExqYXZhL2xhbmcvU3RyaW5nO1pMamF2YS9sYW5nL09iamVjdDspRCIpOwotICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRJbnNuKE9wY29kZXMuRFJFVFVSTik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUeXBlLkFSUkFZOgotICAgICAgICBjYXNlIFR5cGUuT0JKRUNUOgotICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRNZXRob2RJbnNuKE9wY29kZXMuSU5WT0tFU1RBVElDLAotICAgICAgICAgICAgICAgICAgICAiY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9PdmVycmlkZU1ldGhvZCIsCi0gICAgICAgICAgICAgICAgICAgICJpbnZva2VBIiwKLSAgICAgICAgICAgICAgICAgICAgIihMamF2YS9sYW5nL1N0cmluZztaTGphdmEvbGFuZy9PYmplY3Q7KUxqYXZhL2xhbmcvT2JqZWN0OyIpOwotICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRUeXBlSW5zbihPcGNvZGVzLkNIRUNLQ0FTVCwgbVJldHVyblR5cGUuZ2V0SW50ZXJuYWxOYW1lKCkpOwotICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRJbnNuKE9wY29kZXMuQVJFVFVSTik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgfQotCi0gICAgcHJpdmF0ZSB2b2lkIGdlbmVyYXRlUG9wKCkgewotICAgICAgICAvKiBQb3BzIHRoZSBzdGFjaywgZGVwZW5kaW5nIG9uIHRoZSByZXR1cm4gdHlwZS4KLSAgICAgICAgICovCi0gICAgICAgIHN3aXRjaChtUmV0dXJuVHlwZSAhPSBudWxsID8gbVJldHVyblR5cGUuZ2V0U29ydCgpIDogVHlwZS5WT0lEKSB7Ci0gICAgICAgIGNhc2UgVHlwZS5WT0lEOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVHlwZS5CT09MRUFOOgotICAgICAgICBjYXNlIFR5cGUuQ0hBUjoKLSAgICAgICAgY2FzZSBUeXBlLkJZVEU6Ci0gICAgICAgIGNhc2UgVHlwZS5TSE9SVDoKLSAgICAgICAgY2FzZSBUeXBlLklOVDoKLSAgICAgICAgY2FzZSBUeXBlLkZMT0FUOgotICAgICAgICBjYXNlIFR5cGUuQVJSQVk6Ci0gICAgICAgIGNhc2UgVHlwZS5PQkpFQ1Q6Ci0gICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdEluc24oT3Bjb2Rlcy5QT1ApOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVHlwZS5MT05HOgotICAgICAgICBjYXNlIFR5cGUuRE9VQkxFOgotICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRJbnNuKE9wY29kZXMuUE9QMik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qIFBhc3MgZG93biB0byB2aXNpdG9yIHdyaXRlci4gSW4gdGhpcyBpbXBsZW1lbnRhdGlvbiwgZWl0aGVyIGRvIG5vdGhpbmcuICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRDb2RlKCkgewotICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdENvZGUoKTsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIHZpc2l0TWF4cyBpcyBjYWxsZWQganVzdCBiZWZvcmUgdmlzaXRFbmQgaWYgdGhlcmUgd2FzIGFueSBjb2RlIHRvIHJld3JpdGUuCi0gICAgICogRm9yIG5vbi1jb25zdHJ1Y3RvciwgZ2VuZXJhdGUgdGhlIG1lc3NhZ2luZyBjb2RlIGFuZCB0aGUgcmV0dXJuIHN0YXRlbWVudAotICAgICAqIGlmIGl0IGhhc24ndCBiZWVuIGRvbmUgYmVmb3JlLgotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0TWF4cyhpbnQgbWF4U3RhY2ssIGludCBtYXhMb2NhbHMpIHsKLSAgICAgICAgaWYgKCFtSXNJbml0TWV0aG9kICYmICFtTWVzc2FnZUdlbmVyYXRlZCkgewotICAgICAgICAgICAgZ2VuZXJhdGVJbnZva2UoKTsKLSAgICAgICAgICAgIG1NZXNzYWdlR2VuZXJhdGVkID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdE1heHMobWF4U3RhY2ssIG1heExvY2Fscyk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogRW5kIG9mIHZpc2l0aW5nLgotICAgICAqIEZvciBub24tY29uc3RydWN0b3IsIGdlbmVyYXRlIHRoZSBtZXNzYWdpbmcgY29kZSBhbmQgdGhlIHJldHVybiBzdGF0ZW1lbnQKLSAgICAgKiBpZiBpdCBoYXNuJ3QgYmVlbiBkb25lIGJlZm9yZS4KLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdEVuZCgpIHsKLSAgICAgICAgaWYgKCFtSXNJbml0TWV0aG9kICYmICFtTWVzc2FnZUdlbmVyYXRlZCkgewotICAgICAgICAgICAgZ2VuZXJhdGVJbnZva2UoKTsKLSAgICAgICAgICAgIG1NZXNzYWdlR2VuZXJhdGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIG1QYXJlbnRWaXNpdG9yLnZpc2l0TWF4cygxLCAxKTsKLSAgICAgICAgfQotICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdEVuZCgpOwotICAgIH0KLQotICAgIC8qIFdyaXRlcyBhbGwgYW5ub3RhdGlvbiBmcm9tIHRoZSBvcmlnaW5hbCBtZXRob2QuICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIEFubm90YXRpb25WaXNpdG9yIHZpc2l0QW5ub3RhdGlvbihTdHJpbmcgZGVzYywgYm9vbGVhbiB2aXNpYmxlKSB7Ci0gICAgICAgIHJldHVybiBtUGFyZW50VmlzaXRvci52aXNpdEFubm90YXRpb24oZGVzYywgdmlzaWJsZSk7Ci0gICAgfQotCi0gICAgLyogV3JpdGVzIGFsbCBhbm5vdGF0aW9uIGRlZmF1bHQgdmFsdWVzIGZyb20gdGhlIG9yaWdpbmFsIG1ldGhvZC4gKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQW5ub3RhdGlvblZpc2l0b3IgdmlzaXRBbm5vdGF0aW9uRGVmYXVsdCgpIHsKLSAgICAgICAgcmV0dXJuIG1QYXJlbnRWaXNpdG9yLnZpc2l0QW5ub3RhdGlvbkRlZmF1bHQoKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgQW5ub3RhdGlvblZpc2l0b3IgdmlzaXRQYXJhbWV0ZXJBbm5vdGF0aW9uKGludCBwYXJhbWV0ZXIsIFN0cmluZyBkZXNjLAotICAgICAgICAgICAgYm9vbGVhbiB2aXNpYmxlKSB7Ci0gICAgICAgIHJldHVybiBtUGFyZW50VmlzaXRvci52aXNpdFBhcmFtZXRlckFubm90YXRpb24ocGFyYW1ldGVyLCBkZXNjLCB2aXNpYmxlKTsKLSAgICB9Ci0KLSAgICAvKiBXcml0ZXMgYWxsIGF0dHJpYnV0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgbWV0aG9kLiAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0QXR0cmlidXRlKEF0dHJpYnV0ZSBhdHRyKSB7Ci0gICAgICAgIG1QYXJlbnRWaXNpdG9yLnZpc2l0QXR0cmlidXRlKGF0dHIpOwotICAgIH0KLQotICAgIC8qCi0gICAgICogT25seSB3cml0ZXMgdGhlIGZpcnN0IGxpbmUgbnVtYmVyIHByZXNlbnQgaW4gdGhlIG9yaWdpbmFsIGNvZGUgc28gdGhhdCBzb3VyY2UKLSAgICAgKiB2aWV3ZXJzIGNhbiBkaXJlY3QgdG8gdGhlIGNvcnJlY3QgbWV0aG9kLCBldmVuIGlmIHRoZSBjb250ZW50IGRvZXNuJ3QgbWF0Y2guCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRMaW5lTnVtYmVyKGludCBsaW5lLCBMYWJlbCBzdGFydCkgewotICAgICAgICBpZiAobUlzSW5pdE1ldGhvZCB8fCBtT3V0cHV0Rmlyc3RMaW5lTnVtYmVyKSB7Ci0gICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdExpbmVOdW1iZXIobGluZSwgc3RhcnQpOwotICAgICAgICAgICAgbU91dHB1dEZpcnN0TGluZU51bWJlciA9IGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogRm9yIG5vbi1jb25zdHJ1Y3RvciwgcmV3cml0ZSBleGlzdGluZyAicmV0dXJuIiBpbnN0cnVjdGlvbnMgdG8gd3JpdGUgdGhlIG1lc3NhZ2UuCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRJbnNuKGludCBvcGNvZGUpIHsKLSAgICAgICAgaWYgKG1Jc0luaXRNZXRob2QpIHsKLSAgICAgICAgICAgIHN3aXRjaCAob3Bjb2RlKSB7Ci0gICAgICAgICAgICBjYXNlIE9wY29kZXMuUkVUVVJOOgotICAgICAgICAgICAgY2FzZSBPcGNvZGVzLkFSRVRVUk46Ci0gICAgICAgICAgICBjYXNlIE9wY29kZXMuRFJFVFVSTjoKLSAgICAgICAgICAgIGNhc2UgT3Bjb2Rlcy5GUkVUVVJOOgotICAgICAgICAgICAgY2FzZSBPcGNvZGVzLklSRVRVUk46Ci0gICAgICAgICAgICBjYXNlIE9wY29kZXMuTFJFVFVSTjoKLSAgICAgICAgICAgICAgICAvLyBQb3AgdGhlIGxhc3Qgd29yZCBmcm9tIHRoZSBzdGFjayBzaW5jZSBpbnZva2Ugd2lsbCBnZW5lcmF0ZSBpdHMgb3duIHJldHVybi4KLSAgICAgICAgICAgICAgICBnZW5lcmF0ZVBvcCgpOwotICAgICAgICAgICAgICAgIGdlbmVyYXRlSW52b2tlKCk7Ci0gICAgICAgICAgICAgICAgbU1lc3NhZ2VHZW5lcmF0ZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIC8vJEZBTEwtVEhST1VHSCQKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRJbnNuKG9wY29kZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdExhYmVsKExhYmVsIGxhYmVsKSB7Ci0gICAgICAgIGlmIChtSXNJbml0TWV0aG9kKSB7Ci0gICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdExhYmVsKGxhYmVsKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0VHJ5Q2F0Y2hCbG9jayhMYWJlbCBzdGFydCwgTGFiZWwgZW5kLCBMYWJlbCBoYW5kbGVyLCBTdHJpbmcgdHlwZSkgewotICAgICAgICBpZiAobUlzSW5pdE1ldGhvZCkgewotICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRUcnlDYXRjaEJsb2NrKHN0YXJ0LCBlbmQsIGhhbmRsZXIsIHR5cGUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRNZXRob2RJbnNuKGludCBvcGNvZGUsIFN0cmluZyBvd25lciwgU3RyaW5nIG5hbWUsIFN0cmluZyBkZXNjKSB7Ci0gICAgICAgIGlmIChtSXNJbml0TWV0aG9kKSB7Ci0gICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdE1ldGhvZEluc24ob3Bjb2RlLCBvd25lciwgbmFtZSwgZGVzYyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdEZpZWxkSW5zbihpbnQgb3Bjb2RlLCBTdHJpbmcgb3duZXIsIFN0cmluZyBuYW1lLCBTdHJpbmcgZGVzYykgewotICAgICAgICBpZiAobUlzSW5pdE1ldGhvZCkgewotICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRGaWVsZEluc24ob3Bjb2RlLCBvd25lciwgbmFtZSwgZGVzYyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdEZyYW1lKGludCB0eXBlLCBpbnQgbkxvY2FsLCBPYmplY3RbXSBsb2NhbCwgaW50IG5TdGFjaywgT2JqZWN0W10gc3RhY2spIHsKLSAgICAgICAgaWYgKG1Jc0luaXRNZXRob2QpIHsKLSAgICAgICAgICAgIG1QYXJlbnRWaXNpdG9yLnZpc2l0RnJhbWUodHlwZSwgbkxvY2FsLCBsb2NhbCwgblN0YWNrLCBzdGFjayk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdElpbmNJbnNuKGludCB2YXIsIGludCBpbmNyZW1lbnQpIHsKLSAgICAgICAgaWYgKG1Jc0luaXRNZXRob2QpIHsKLSAgICAgICAgICAgIG1QYXJlbnRWaXNpdG9yLnZpc2l0SWluY0luc24odmFyLCBpbmNyZW1lbnQpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRJbnRJbnNuKGludCBvcGNvZGUsIGludCBvcGVyYW5kKSB7Ci0gICAgICAgIGlmIChtSXNJbml0TWV0aG9kKSB7Ci0gICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdEludEluc24ob3Bjb2RlLCBvcGVyYW5kKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0SnVtcEluc24oaW50IG9wY29kZSwgTGFiZWwgbGFiZWwpIHsKLSAgICAgICAgaWYgKG1Jc0luaXRNZXRob2QpIHsKLSAgICAgICAgICAgIG1QYXJlbnRWaXNpdG9yLnZpc2l0SnVtcEluc24ob3Bjb2RlLCBsYWJlbCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdExkY0luc24oT2JqZWN0IGNzdCkgewotICAgICAgICBpZiAobUlzSW5pdE1ldGhvZCkgewotICAgICAgICAgICAgbVBhcmVudFZpc2l0b3IudmlzaXRMZGNJbnNuKGNzdCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdExvY2FsVmFyaWFibGUoU3RyaW5nIG5hbWUsIFN0cmluZyBkZXNjLCBTdHJpbmcgc2lnbmF0dXJlLAotICAgICAgICAgICAgTGFiZWwgc3RhcnQsIExhYmVsIGVuZCwgaW50IGluZGV4KSB7Ci0gICAgICAgIGlmIChtSXNJbml0TWV0aG9kKSB7Ci0gICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdExvY2FsVmFyaWFibGUobmFtZSwgZGVzYywgc2lnbmF0dXJlLCBzdGFydCwgZW5kLCBpbmRleCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdExvb2t1cFN3aXRjaEluc24oTGFiZWwgZGZsdCwgaW50W10ga2V5cywgTGFiZWxbXSBsYWJlbHMpIHsKLSAgICAgICAgaWYgKG1Jc0luaXRNZXRob2QpIHsKLSAgICAgICAgICAgIG1QYXJlbnRWaXNpdG9yLnZpc2l0TG9va3VwU3dpdGNoSW5zbihkZmx0LCBrZXlzLCBsYWJlbHMpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXRNdWx0aUFOZXdBcnJheUluc24oU3RyaW5nIGRlc2MsIGludCBkaW1zKSB7Ci0gICAgICAgIGlmIChtSXNJbml0TWV0aG9kKSB7Ci0gICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdE11bHRpQU5ld0FycmF5SW5zbihkZXNjLCBkaW1zKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0VGFibGVTd2l0Y2hJbnNuKGludCBtaW4sIGludCBtYXgsIExhYmVsIGRmbHQsIExhYmVsW10gbGFiZWxzKSB7Ci0gICAgICAgIGlmIChtSXNJbml0TWV0aG9kKSB7Ci0gICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdFRhYmxlU3dpdGNoSW5zbihtaW4sIG1heCwgZGZsdCwgbGFiZWxzKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0VHlwZUluc24oaW50IG9wY29kZSwgU3RyaW5nIHR5cGUpIHsKLSAgICAgICAgaWYgKG1Jc0luaXRNZXRob2QpIHsKLSAgICAgICAgICAgIG1QYXJlbnRWaXNpdG9yLnZpc2l0VHlwZUluc24ob3Bjb2RlLCB0eXBlKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyB2b2lkIHZpc2l0VmFySW5zbihpbnQgb3Bjb2RlLCBpbnQgdmFyKSB7Ci0gICAgICAgIGlmIChtSXNJbml0TWV0aG9kKSB7Ci0gICAgICAgICAgICBtUGFyZW50VmlzaXRvci52aXNpdFZhckluc24ob3Bjb2RlLCB2YXIpOwotICAgICAgICB9Ci0gICAgfQotCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL1RyYW5zZm9ybUNsYXNzQWRhcHRlci5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9UcmFuc2Zvcm1DbGFzc0FkYXB0ZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQ1YTE4My4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL1RyYW5zZm9ybUNsYXNzQWRhcHRlci5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTgzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGU7Ci0KLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1Zpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uRmllbGRWaXNpdG9yOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLk1ldGhvZFZpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uT3Bjb2RlczsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5UeXBlOwotCi1pbXBvcnQgamF2YS51dGlsLlNldDsKLQotLyoqCi0gKiBDbGFzcyBhZGFwdGVyIHRoYXQgY2FuIHN0dWIgc29tZSBvciBhbGwgb2YgdGhlIG1ldGhvZHMgb2YgdGhlIGNsYXNzLgotICovCi1jbGFzcyBUcmFuc2Zvcm1DbGFzc0FkYXB0ZXIgZXh0ZW5kcyBDbGFzc1Zpc2l0b3IgewotCi0gICAgLyoqIFRydWUgaWYgYWxsIG1ldGhvZHMgc2hvdWxkIGJlIHN0dWJiZWQsIGZhbHNlIGlmIG9ubHkgbmF0aXZlIG9uZXMgbXVzdCBiZSBzdHViYmVkLiAqLwotICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBtU3R1YkFsbDsKLSAgICAvKiogVHJ1ZSBpZiB0aGUgY2xhc3MgaXMgYW4gaW50ZXJmYWNlLiAqLwotICAgIHByaXZhdGUgYm9vbGVhbiBtSXNJbnRlcmZhY2U7Ci0gICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgbUNsYXNzTmFtZTsKLSAgICBwcml2YXRlIGZpbmFsIExvZyBtTG9nOwotICAgIHByaXZhdGUgZmluYWwgU2V0PFN0cmluZz4gbVN0dWJNZXRob2RzOwotICAgIHByaXZhdGUgU2V0PFN0cmluZz4gbURlbGV0ZVJldHVybnM7Ci0KLSAgICAvKioKLSAgICAgKiBDcmVhdGVzIGEgbmV3IGNsYXNzIGFkYXB0ZXIgdGhhdCB3aWxsIHN0dWIgc29tZSBvciBhbGwgbWV0aG9kcy4KLSAgICAgKiBAcGFyYW0gbG9nZ2VyCi0gICAgICogQHBhcmFtIHN0dWJNZXRob2RzICBsaXN0IG9mIG1ldGhvZCBzaWduYXR1cmVzIHRvIGFsd2F5cyBzdHViIG91dAotICAgICAqIEBwYXJhbSBkZWxldGVSZXR1cm5zIGxpc3Qgb2YgdHlwZXMgdGhhdCB0cmlnZ2VyIHRoZSBkZWxldGlvbiBvZiBtZXRob2RzIHJldHVybmluZyB0aGVtLgotICAgICAqIEBwYXJhbSBjbGFzc05hbWUgVGhlIG5hbWUgb2YgdGhlIGNsYXNzIGJlaW5nIG1vZGlmaWVkCi0gICAgICogQHBhcmFtIGN2IFRoZSBwYXJlbnQgY2xhc3Mgd3JpdGVyIHZpc2l0b3IKLSAgICAgKiBAcGFyYW0gc3R1Yk5hdGl2ZXNPbmx5IFRydWUgaWYgb25seSBuYXRpdmUgbWV0aG9kcyBzaG91bGQgYmUgc3R1YmJlZC4gRmFsc2UgaWYgYWxsCi0gICAgICogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2RzIHNob3VsZCBiZSBzdHViYmVkLgotICAgICAqIEBwYXJhbSBoYXNOYXRpdmUgVHJ1ZSBpZiB0aGUgbWV0aG9kIGhhcyBuYXRpdmVzLCBpbiB3aGljaCBjYXNlIGl0cyBhY2Nlc3Mgc2hvdWxkIGJlCi0gICAgICogICAgICAgICAgICAgICAgICBjaGFuZ2VkLgotICAgICAqLwotICAgIHB1YmxpYyBUcmFuc2Zvcm1DbGFzc0FkYXB0ZXIoTG9nIGxvZ2dlciwgU2V0PFN0cmluZz4gc3R1Yk1ldGhvZHMsCi0gICAgICAgICAgICBTZXQ8U3RyaW5nPiBkZWxldGVSZXR1cm5zLCBTdHJpbmcgY2xhc3NOYW1lLCBDbGFzc1Zpc2l0b3IgY3YsCi0gICAgICAgICAgICBib29sZWFuIHN0dWJOYXRpdmVzT25seSwgYm9vbGVhbiBoYXNOYXRpdmUpIHsKLSAgICAgICAgc3VwZXIoT3Bjb2Rlcy5BU000LCBjdik7Ci0gICAgICAgIG1Mb2cgPSBsb2dnZXI7Ci0gICAgICAgIG1TdHViTWV0aG9kcyA9IHN0dWJNZXRob2RzOwotICAgICAgICBtQ2xhc3NOYW1lID0gY2xhc3NOYW1lOwotICAgICAgICBtU3R1YkFsbCA9ICFzdHViTmF0aXZlc09ubHk7Ci0gICAgICAgIG1Jc0ludGVyZmFjZSA9IGZhbHNlOwotICAgICAgICBtRGVsZXRlUmV0dXJucyA9IGRlbGV0ZVJldHVybnM7Ci0gICAgfQotCi0gICAgLyogVmlzaXRzIHRoZSBjbGFzcyBoZWFkZXIuICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgdmlzaXQoaW50IHZlcnNpb24sIGludCBhY2Nlc3MsIFN0cmluZyBuYW1lLAotICAgICAgICAgICAgU3RyaW5nIHNpZ25hdHVyZSwgU3RyaW5nIHN1cGVyTmFtZSwgU3RyaW5nW10gaW50ZXJmYWNlcykgewotCi0gICAgICAgIC8vIFRoaXMgY2xhc3MgbWlnaHQgYmUgYmVpbmcgcmVuYW1lZC4KLSAgICAgICAgbmFtZSA9IG1DbGFzc05hbWU7Ci0KLSAgICAgICAgLy8gcmVtb3ZlIHByb3RlY3RlZCBvciBwcml2YXRlIGFuZCBzZXQgYXMgcHVibGljCi0gICAgICAgIGlmIChNYWluLnNPcHRpb25zLmdlbmVyYXRlUHVibGljQWNjZXNzKSB7Ci0gICAgICAgICAgICBhY2Nlc3MgPSBhY2Nlc3MgJiB+KE9wY29kZXMuQUNDX1BSSVZBVEUgfCBPcGNvZGVzLkFDQ19QUk9URUNURUQpOwotICAgICAgICAgICAgYWNjZXNzIHw9IE9wY29kZXMuQUNDX1BVQkxJQzsKLSAgICAgICAgfQotICAgICAgICAvLyByZW1vdmUgZmluYWwKLSAgICAgICAgYWNjZXNzID0gYWNjZXNzICYgfk9wY29kZXMuQUNDX0ZJTkFMOwotICAgICAgICAvLyBub3RlOiBsZWF2ZSBhYnN0cmFjdCBjbGFzc2VzIGFzIHN1Y2gKLSAgICAgICAgLy8gZG9uJ3QgdHJ5IHRvIGltcGxlbWVudCBzdHViIGZvciBpbnRlcmZhY2VzCi0KLSAgICAgICAgbUlzSW50ZXJmYWNlID0gKChhY2Nlc3MgJiBPcGNvZGVzLkFDQ19JTlRFUkZBQ0UpICE9IDApOwotICAgICAgICBzdXBlci52aXNpdCh2ZXJzaW9uLCBhY2Nlc3MsIG5hbWUsIHNpZ25hdHVyZSwgc3VwZXJOYW1lLCBpbnRlcmZhY2VzKTsKLSAgICB9Ci0KLSAgICAvKiBWaXNpdHMgdGhlIGhlYWRlciBvZiBhbiBpbm5lciBjbGFzcy4gKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdElubmVyQ2xhc3MoU3RyaW5nIG5hbWUsIFN0cmluZyBvdXRlck5hbWUsIFN0cmluZyBpbm5lck5hbWUsIGludCBhY2Nlc3MpIHsKLSAgICAgICAgLy8gcmVtb3ZlIHByb3RlY3RlZCBvciBwcml2YXRlIGFuZCBzZXQgYXMgcHVibGljCi0gICAgICAgIGlmIChNYWluLnNPcHRpb25zLmdlbmVyYXRlUHVibGljQWNjZXNzKSB7Ci0gICAgICAgICAgICBhY2Nlc3MgPSBhY2Nlc3MgJiB+KE9wY29kZXMuQUNDX1BSSVZBVEUgfCBPcGNvZGVzLkFDQ19QUk9URUNURUQpOwotICAgICAgICAgICAgYWNjZXNzIHw9IE9wY29kZXMuQUNDX1BVQkxJQzsKLSAgICAgICAgfQotICAgICAgICAvLyByZW1vdmUgZmluYWwKLSAgICAgICAgYWNjZXNzID0gYWNjZXNzICYgfk9wY29kZXMuQUNDX0ZJTkFMOwotICAgICAgICAvLyBub3RlOiBsZWF2ZSBhYnN0cmFjdCBjbGFzc2VzIGFzIHN1Y2gKLSAgICAgICAgLy8gZG9uJ3QgdHJ5IHRvIGltcGxlbWVudCBzdHViIGZvciBpbnRlcmZhY2VzCi0KLSAgICAgICAgc3VwZXIudmlzaXRJbm5lckNsYXNzKG5hbWUsIG91dGVyTmFtZSwgaW5uZXJOYW1lLCBhY2Nlc3MpOwotICAgIH0KLQotICAgIC8qIFZpc2l0cyBhIG1ldGhvZC4gKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgTWV0aG9kVmlzaXRvciB2aXNpdE1ldGhvZChpbnQgYWNjZXNzLCBTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MsCi0gICAgICAgICAgICBTdHJpbmcgc2lnbmF0dXJlLCBTdHJpbmdbXSBleGNlcHRpb25zKSB7Ci0KLSAgICAgICAgaWYgKG1EZWxldGVSZXR1cm5zICE9IG51bGwpIHsKLSAgICAgICAgICAgIFR5cGUgdCA9IFR5cGUuZ2V0UmV0dXJuVHlwZShkZXNjKTsKLSAgICAgICAgICAgIGlmICh0LmdldFNvcnQoKSA9PSBUeXBlLk9CSkVDVCkgewotICAgICAgICAgICAgICAgIFN0cmluZyByZXR1cm5UeXBlID0gdC5nZXRJbnRlcm5hbE5hbWUoKTsKLSAgICAgICAgICAgICAgICBpZiAocmV0dXJuVHlwZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtRGVsZXRlUmV0dXJucy5jb250YWlucyhyZXR1cm5UeXBlKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgbWV0aG9kU2lnbmF0dXJlID0gbUNsYXNzTmFtZS5yZXBsYWNlKCcvJywgJy4nKSArICIjIiArIG5hbWU7Ci0KLSAgICAgICAgLy8gY2hhbmdlIGFjY2VzcyB0byBwdWJsaWMKLSAgICAgICAgaWYgKE1haW4uc09wdGlvbnMuZ2VuZXJhdGVQdWJsaWNBY2Nlc3MpIHsKLSAgICAgICAgICAgIGFjY2VzcyAmPSB+KE9wY29kZXMuQUNDX1BST1RFQ1RFRCB8IE9wY29kZXMuQUNDX1BSSVZBVEUpOwotICAgICAgICAgICAgYWNjZXNzIHw9IE9wY29kZXMuQUNDX1BVQkxJQzsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIHJlbW92ZSBmaW5hbAotICAgICAgICBhY2Nlc3MgPSBhY2Nlc3MgJiB+T3Bjb2Rlcy5BQ0NfRklOQUw7Ci0KLSAgICAgICAgLy8gc3R1YiB0aGlzIG1ldGhvZCBpZiB0aGV5IGFyZSBhbGwgdG8gYmUgc3R1YmJlZCBvciBpZiBpdCBpcyBhIG5hdGl2ZSBtZXRob2QKLSAgICAgICAgLy8gYW5kIGRvbid0IHRyeSB0byBzdHViIGludGVyZmFjZXMgbm9yIGFic3RyYWN0IG5vbi1uYXRpdmUgbWV0aG9kcy4KLSAgICAgICAgaWYgKCFtSXNJbnRlcmZhY2UgJiYKLSAgICAgICAgICAgICgoYWNjZXNzICYgKE9wY29kZXMuQUNDX0FCU1RSQUNUIHwgT3Bjb2Rlcy5BQ0NfTkFUSVZFKSkgIT0gT3Bjb2Rlcy5BQ0NfQUJTVFJBQ1QpICYmCi0gICAgICAgICAgICAobVN0dWJBbGwgfHwKLSAgICAgICAgICAgICAoYWNjZXNzICYgT3Bjb2Rlcy5BQ0NfTkFUSVZFKSAhPSAwKSB8fAotICAgICAgICAgICAgIG1TdHViTWV0aG9kcy5jb250YWlucyhtZXRob2RTaWduYXR1cmUpKSB7Ci0KLSAgICAgICAgICAgIGJvb2xlYW4gaXNTdGF0aWMgPSAoYWNjZXNzICYgT3Bjb2Rlcy5BQ0NfU1RBVElDKSAhPSAwOwotICAgICAgICAgICAgYm9vbGVhbiBpc05hdGl2ZSA9IChhY2Nlc3MgJiBPcGNvZGVzLkFDQ19OQVRJVkUpICE9IDA7Ci0KLSAgICAgICAgICAgIC8vIHJlbW92ZSBhYnN0cmFjdCwgZmluYWwgYW5kIG5hdGl2ZQotICAgICAgICAgICAgYWNjZXNzID0gYWNjZXNzICYgfihPcGNvZGVzLkFDQ19BQlNUUkFDVCB8IE9wY29kZXMuQUNDX0ZJTkFMIHwgT3Bjb2Rlcy5BQ0NfTkFUSVZFKTsKLQotICAgICAgICAgICAgU3RyaW5nIGludm9rZVNpZ25hdHVyZSA9IG1ldGhvZFNpZ25hdHVyZSArIGRlc2M7Ci0gICAgICAgICAgICBtTG9nLmRlYnVnKCIgIFN0dWI6ICVzICglcykiLCBpbnZva2VTaWduYXR1cmUsIGlzTmF0aXZlID8gIm5hdGl2ZSIgOiAiIik7Ci0KLSAgICAgICAgICAgIE1ldGhvZFZpc2l0b3IgbXcgPSBzdXBlci52aXNpdE1ldGhvZChhY2Nlc3MsIG5hbWUsIGRlc2MsIHNpZ25hdHVyZSwgZXhjZXB0aW9ucyk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IFN0dWJNZXRob2RBZGFwdGVyKG13LCBuYW1lLCByZXR1cm5UeXBlKGRlc2MpLCBpbnZva2VTaWduYXR1cmUsCi0gICAgICAgICAgICAgICAgICAgIGlzU3RhdGljLCBpc05hdGl2ZSk7Ci0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1Mb2cuZGVidWcoIiAgS2VlcDogJXMgJXMiLCBuYW1lLCBkZXNjKTsKLSAgICAgICAgICAgIHJldHVybiBzdXBlci52aXNpdE1ldGhvZChhY2Nlc3MsIG5hbWUsIGRlc2MsIHNpZ25hdHVyZSwgZXhjZXB0aW9ucyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiBWaXNpdHMgYSBmaWVsZC4gTWFrZXMgaXQgcHVibGljLiAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBGaWVsZFZpc2l0b3IgdmlzaXRGaWVsZChpbnQgYWNjZXNzLCBTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MsIFN0cmluZyBzaWduYXR1cmUsCi0gICAgICAgICAgICBPYmplY3QgdmFsdWUpIHsKLSAgICAgICAgLy8gY2hhbmdlIGFjY2VzcyB0byBwdWJsaWMKLSAgICAgICAgaWYgKE1haW4uc09wdGlvbnMuZ2VuZXJhdGVQdWJsaWNBY2Nlc3MpIHsKLSAgICAgICAgICAgIGFjY2VzcyAmPSB+KE9wY29kZXMuQUNDX1BST1RFQ1RFRCB8IE9wY29kZXMuQUNDX1BSSVZBVEUpOwotICAgICAgICAgICAgYWNjZXNzIHw9IE9wY29kZXMuQUNDX1BVQkxJQzsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gc3VwZXIudmlzaXRGaWVsZChhY2Nlc3MsIG5hbWUsIGRlc2MsIHNpZ25hdHVyZSwgdmFsdWUpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEV4dHJhY3RzIHRoZSByZXR1cm4ge0BsaW5rIFR5cGV9IG9mIHRoaXMgZGVzY3JpcHRvci4KLSAgICAgKi8KLSAgICBUeXBlIHJldHVyblR5cGUoU3RyaW5nIGRlc2MpIHsKLSAgICAgICAgaWYgKGRlc2MgIT0gbnVsbCkgewotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICByZXR1cm4gVHlwZS5nZXRSZXR1cm5UeXBlKGRlc2MpOwotICAgICAgICAgICAgfSBjYXRjaCAoQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICAvLyBpZ25vcmUsIG5vdCBhIHZhbGlkIHR5cGUuCi0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2phdmEvQXV0b0Nsb3NlYWJsZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2phdmEvQXV0b0Nsb3NlYWJsZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZDJjMTI4Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9qYXZhL0F1dG9DbG9zZWFibGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5qYXZhOwotCi0vKioKLSAqIERlZmluZXMgdGhlIHNhbWUgaW50ZXJmYWNlIGFzIHRoZSBqYXZhLmxhbmcuQXV0b0Nsb3NlYWJsZSB3aGljaCB3YXMgYWRkZWQgaW4KLSAqIEphdmEgNy4gVGhpcyBoYWNrIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJ1biB0aGUgQW5kcm9pZCBjb2RlIHdoaWNoIHVzZXMgSmF2YSA3Ci0gKiBmZWF0dXJlcyAoQVBJIDE4IGFuZCBiZXlvbmQpIHRvIHJ1biBvbiBKYXZhIDYuCi0gKiA8cC8+Ci0gKiBFeHRyYWN0ZWQgZnJvbSBBUEkgbGV2ZWwgMTgsIGZpbGU6Ci0gKiBwbGF0Zm9ybS9saWJjb3JlL2x1bmkvc3JjL21haW4vamF2YS9qYXZhL2xhbmcvQXV0b0Nsb3NlYWJsZS5qYXZhCi0gKi8KLXB1YmxpYyBpbnRlcmZhY2UgQXV0b0Nsb3NlYWJsZSB7Ci0gICAgLyoqCi0gICAgICogQ2xvc2VzIHRoZSBvYmplY3QgYW5kIHJlbGVhc2UgYW55IHN5c3RlbSByZXNvdXJjZXMgaXQgaG9sZHMuCi0gICAgICovCi0gICAgdm9pZCBjbG9zZSgpIHRocm93cyBFeGNlcHRpb247IH0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9qYXZhL0NoYXJzZXRzLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvamF2YS9DaGFyc2V0cy5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNzNiMDZiLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9qYXZhL0NoYXJzZXRzLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmphdmE7Ci0KLWltcG9ydCBqYXZhLm5pby5DaGFyQnVmZmVyOwotaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldDsKLQotLyoqCi0gKiBEZWZpbmVzIHRoZSBzYW1lIGNsYXNzIGFzIHRoZSBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXRzIHdoaWNoIHdhcyBhZGRlZCBpbgotICogRGFsdmlrIFZNLiBUaGlzIGhhY2ssIHByb3ZpZGVzIGEgcmVwbGFjZW1lbnQgZm9yIHRoYXQgY2xhc3Mgd2hpY2ggY2FuJ3QgYmUKLSAqIGxvYWRlZCBpbiB0aGUgc3RhbmRhcmQgSlZNIHNpbmNlIGl0J3MgaW4gdGhlIGphdmEgcGFja2FnZSBhbmQgc3RhbmRhcmQgSlZNCi0gKiBkb2Vzbid0IGhhdmUgaXQuIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBuYXRpdmUgbWV0aG9kcyBpbiB0aGUgb3JpZ2luYWwKLSAqIGNsYXNzIGhhcyBiZWVuIGFkZGVkLgotICogPHAvPgotICogRXh0cmFjdGVkIGZyb20gQVBJIGxldmVsIDE4LCBmaWxlOgotICogcGxhdGZvcm0vbGliY29yZS9sdW5pL3NyYy9tYWluL2phdmEvamF2YS9uaW8vY2hhcnNldC9DaGFyc2V0cwotICovCi1wdWJsaWMgZmluYWwgY2xhc3MgQ2hhcnNldHMgewotICAgIC8qKgotICAgICAqIEEgY2hlYXAgYW5kIHR5cGUtc2FmZSBjb25zdGFudCBmb3IgdGhlIElTTy04ODU5LTEgQ2hhcnNldC4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENoYXJzZXQgSVNPXzg4NTlfMSA9IENoYXJzZXQuZm9yTmFtZSgiSVNPLTg4NTktMSIpOwotCi0gICAgLyoqCi0gICAgICogQSBjaGVhcCBhbmQgdHlwZS1zYWZlIGNvbnN0YW50IGZvciB0aGUgVVMtQVNDSUkgQ2hhcnNldC4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENoYXJzZXQgVVNfQVNDSUkgPSBDaGFyc2V0LmZvck5hbWUoIlVTLUFTQ0lJIik7Ci0KLSAgICAvKioKLSAgICAgKiBBIGNoZWFwIGFuZCB0eXBlLXNhZmUgY29uc3RhbnQgZm9yIHRoZSBVVEYtOCBDaGFyc2V0LgotICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ2hhcnNldCBVVEZfOCA9IENoYXJzZXQuZm9yTmFtZSgiVVRGLTgiKTsKLQotICAgIC8qKgotICAgICAqIFJldHVybnMgYSBuZXcgYnl0ZSBhcnJheSBjb250YWluaW5nIHRoZSBieXRlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBjaGFyYWN0ZXJzLAotICAgICAqIGVuY29kZWQgaW4gVVMtQVNDSUkuIFVucmVwcmVzZW50YWJsZSBjaGFyYWN0ZXJzIGFyZSByZXBsYWNlZCBieSAoYnl0ZSkgJz8nLgotICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgYnl0ZVtdIHRvQXNjaWlCeXRlcyhjaGFyW10gY2hhcnMsIGludCBvZmZzZXQsIGludCBsZW5ndGgpIHsKLSAgICAgICAgQ2hhckJ1ZmZlciBjYiA9IENoYXJCdWZmZXIuYWxsb2NhdGUobGVuZ3RoKTsKLSAgICAgICAgY2IucHV0KGNoYXJzLCBvZmZzZXQsIGxlbmd0aCk7Ci0gICAgICAgIHJldHVybiBVU19BU0NJSS5lbmNvZGUoY2IpLmFycmF5KCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmV0dXJucyBhIG5ldyBieXRlIGFycmF5IGNvbnRhaW5pbmcgdGhlIGJ5dGVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGNoYXJhY3RlcnMsCi0gICAgICogZW5jb2RlZCBpbiBJU08tODg1OS0xLiBVbnJlcHJlc2VudGFibGUgY2hhcmFjdGVycyBhcmUgcmVwbGFjZWQgYnkgKGJ5dGUpICc/Jy4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXSB0b0lzb0xhdGluMUJ5dGVzKGNoYXJbXSBjaGFycywgaW50IG9mZnNldCwgaW50IGxlbmd0aCkgewotICAgICAgICBDaGFyQnVmZmVyIGNiID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZShsZW5ndGgpOwotICAgICAgICBjYi5wdXQoY2hhcnMsIG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuIElTT184ODU5XzEuZW5jb2RlKGNiKS5hcnJheSgpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgYSBuZXcgYnl0ZSBhcnJheSBjb250YWluaW5nIHRoZSBieXRlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBjaGFyYWN0ZXJzLAotICAgICAqIGVuY29kZWQgaW4gVVRGLTguIEFsbCBjaGFyYWN0ZXJzIGFyZSByZXByZXNlbnRhYmxlIGluIFVURi04LgotICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgYnl0ZVtdIHRvVXRmOEJ5dGVzKGNoYXJbXSBjaGFycywgaW50IG9mZnNldCwgaW50IGxlbmd0aCkgewotICAgICAgICBDaGFyQnVmZmVyIGNiID0gQ2hhckJ1ZmZlci5hbGxvY2F0ZShsZW5ndGgpOwotICAgICAgICBjYi5wdXQoY2hhcnMsIG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuIFVURl84LmVuY29kZShjYikuYXJyYXkoKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIGEgbmV3IGJ5dGUgYXJyYXkgY29udGFpbmluZyB0aGUgYnl0ZXMgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gY2hhcmFjdGVycywKLSAgICAgKiBlbmNvZGVkIGluIFVURi0xNkJFLiBBbGwgY2hhcmFjdGVycyBhcmUgcmVwcmVzZW50YWJsZSBpbiBVVEYtMTZCRS4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXSB0b0JpZ0VuZGlhblV0ZjE2Qnl0ZXMoY2hhcltdIGNoYXJzLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKSB7Ci0gICAgICAgIGJ5dGVbXSByZXN1bHQgPSBuZXcgYnl0ZVtsZW5ndGggKiAyXTsKLSAgICAgICAgaW50IGVuZCA9IG9mZnNldCArIGxlbmd0aDsKLSAgICAgICAgaW50IHJlc3VsdEluZGV4ID0gMDsKLSAgICAgICAgZm9yIChpbnQgaSA9IG9mZnNldDsgaSA8IGVuZDsgKytpKSB7Ci0gICAgICAgICAgICBjaGFyIGNoID0gY2hhcnNbaV07Ci0gICAgICAgICAgICByZXN1bHRbcmVzdWx0SW5kZXgrK10gPSAoYnl0ZSkgKGNoID4+IDgpOwotICAgICAgICAgICAgcmVzdWx0W3Jlc3VsdEluZGV4KytdID0gKGJ5dGUpIGNoOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogRGVjb2RlcyB0aGUgZ2l2ZW4gVVMtQVNDSUkgYnl0ZXMgaW50byB0aGUgZ2l2ZW4gY2hhcltdLiBFcXVpdmFsZW50IHRvIGJ1dCBmYXN0ZXIgdGhhbjoKLSAgICAgKgotICAgICAqIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewotICAgICAqICAgICBjaGFyIGNoID0gKGNoYXIpIChkYXRhW3N0YXJ0KytdICYgMHhmZik7Ci0gICAgICogICAgIHZhbHVlW2ldID0gKGNoIDw9IDB4N2YpID8gY2ggOiBSRVBMQUNFTUVOVF9DSEFSOwotICAgICAqIH0KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXNjaWlCeXRlc1RvQ2hhcnMoYnl0ZVtdIGJ5dGVzLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBjaGFyW10gY2hhcnMpIHsKLSAgICAgICAgaWYgKGJ5dGVzID09IG51bGwgfHwgY2hhcnMgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGZpbmFsIGNoYXIgUkVQTEFDRU1FTlRfQ0hBUiA9IChjaGFyKTB4ZmZkOwotICAgICAgICBpbnQgc3RhcnQgPSBvZmZzZXQ7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGNoYXIgY2ggPSAoY2hhcikgKGJ5dGVzW3N0YXJ0KytdICYgMHhmZik7Ci0gICAgICAgICAgICBjaGFyc1tpXSA9IChjaCA8PSAweDdmKSA/IGNoIDogUkVQTEFDRU1FTlRfQ0hBUjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIERlY29kZXMgdGhlIGdpdmVuIElTTy04ODU5LTEgYnl0ZXMgaW50byB0aGUgZ2l2ZW4gY2hhcltdLiBFcXVpdmFsZW50IHRvIGJ1dCBmYXN0ZXIgdGhhbjoKLSAgICAgKgotICAgICAqIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewotICAgICAqICAgICB2YWx1ZVtpXSA9IChjaGFyKSAoZGF0YVtzdGFydCsrXSAmIDB4ZmYpOwotICAgICAqIH0KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgaXNvTGF0aW4xQnl0ZXNUb0NoYXJzKGJ5dGVbXSBieXRlcywgaW50IG9mZnNldCwgaW50IGxlbmd0aCwgY2hhcltdIGNoYXJzKSB7Ci0gICAgICAgIGlmIChieXRlcyA9PSBudWxsIHx8IGNoYXJzID09IG51bGwpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpbnQgc3RhcnQgPSBvZmZzZXQ7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGNoYXJzW2ldID0gKGNoYXIpIChieXRlc1tzdGFydCsrXSAmIDB4ZmYpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBDaGFyc2V0cygpIHsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvamF2YS9JbnRlZ3JhbFRvU3RyaW5nLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvamF2YS9JbnRlZ3JhbFRvU3RyaW5nLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2ZGQwMGEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2phdmEvSW50ZWdyYWxUb1N0cmluZy5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNTM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5qYXZhOwotCi0vKioKLSAqIERlZmluZXMgdGhlIHNhbWUgY2xhc3MgYXMgdGhlIGphdmEubGFuZy5JbnRlZ3JhbFRvU3RyaW5nIHdoaWNoIHdhcyBhZGRlZCBpbgotICogRGFsdmlrIFZNLiBUaGlzIGhhY2ssIHByb3ZpZGVzIGEgcmVwbGFjZW1lbnQgZm9yIHRoYXQgY2xhc3Mgd2hpY2ggY2FuJ3QgYmUKLSAqIGxvYWRlZCBpbiB0aGUgc3RhbmRhcmQgSlZNIHNpbmNlIGl0J3MgaW4gdGhlIGphdmEgcGFja2FnZSBhbmQgc3RhbmRhcmQgSlZNCi0gKiBkb2Vzbid0IGhhdmUgaXQuIFNpbmNlIGl0J3Mgbm8gbG9uZ2VyIGluIGphdmEubGFuZywgYWNjZXNzIHRvIHBhY2thZ2UKLSAqIHByaXZhdGUgbWV0aG9kcyBhbmQgY2xhc3NlcyBoYXMgYmVlbiByZXBsYWNlZCBieSB0aGUgY2xvc2VzIG1hdGNoaW5nIHB1YmxpYwotICogaW1wbGVtZW50YXRpb24uCi0gKiA8cC8+Ci0gKiBFeHRyYWN0ZWQgZnJvbSBBUEkgbGV2ZWwgMTgsIGZpbGU6Ci0gKiBwbGF0Zm9ybS9saWJjb3JlL2x1bmkvc3JjL21haW4vamF2YS9qYXZhL2xhbmcvSW50ZWdyYWxUb1N0cmluZy5qYXZhCi0gKi8KLXB1YmxpYyBmaW5hbCBjbGFzcyBJbnRlZ3JhbFRvU3RyaW5nIHsKLSAgICAvKioKLSAgICAgKiBXaGVuIGFwcGVuZGluZyB0byBhbiBBYnN0cmFjdFN0cmluZ0J1aWxkZXIsIHRoaXMgdGhyZWFkLWxvY2FsIGNoYXJbXSBsZXRzIHVzIGF2b2lkCi0gICAgICogYWxsb2NhdGlvbiBvZiBhIHRlbXBvcmFyeSBhcnJheS4gKFdlIGNhbid0IHdyaXRlIHN0cmFpZ2h0IGludG8gdGhlIEFic3RyYWN0U3RyaW5nQnVpbGRlcgotICAgICAqIGJlY2F1c2UgaXQncyBhbG1vc3QgYXMgZXhwZW5zaXZlIHRvIHdvcmsgb3V0IHRoZSBleGFjdCBsZW5ndGggb2YgdGhlIHJlc3VsdCBhcyBpdCBpcyB0bwotICAgICAqIGRvIHRoZSBmb3JtYXR0aW5nLiBXZSBjb3VsZCB0cnkgYmVpbmcgY29uc2VydmF0aXZlIGFuZCAiZGVsZXRlIi1pbmcgdGhlIHVudXNlZCBzcGFjZQotICAgICAqIGFmdGVyd2FyZHMsIGJ1dCB0aGVuIHdlJ2QgbmVlZCB0byBkdXBsaWNhdGUgY29udmVydEludCBhbmQgY29udmVydExvbmcgcmF0aGVyIHRoYW4gc2hhcmUKLSAgICAgKiB0aGUgY29kZS4pCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGhyZWFkTG9jYWw8Y2hhcltdPiBCVUZGRVIgPSBuZXcgVGhyZWFkTG9jYWw8Y2hhcltdPigpIHsKLSAgICAgICAgQE92ZXJyaWRlIHByb3RlY3RlZCBjaGFyW10gaW5pdGlhbFZhbHVlKCkgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBjaGFyWzIwXTsgLy8gTWF4aW11bSBsZW5ndGggb2YgYSBiYXNlLTEwIGxvbmcuCi0gICAgICAgIH0KLSAgICB9OwotCi0gICAgLyoqCi0gICAgICogVGhlc2UgdGFibGVzIGFyZSB1c2VkIHRvIHNwZWNpYWwtY2FzZSB0b1N0cmluZyBjb21wdXRhdGlvbiBmb3IKLSAgICAgKiBzbWFsbCB2YWx1ZXMuICBUaGlzIHNlcnZlcyB0aHJlZSBwdXJwb3NlczogaXQgcmVkdWNlcyBtZW1vcnkgdXNhZ2U7Ci0gICAgICogaXQgaW5jcmVhc2VzIHBlcmZvcm1hbmNlIGZvciBzbWFsbCB2YWx1ZXM7IGFuZCBpdCBkZWNyZWFzZXMgdGhlCi0gICAgICogbnVtYmVyIG9mIGNvbXBhcmlzb25zIHJlcXVpcmVkIHRvIGRvIHRoZSBsZW5ndGggY29tcHV0YXRpb24uCi0gICAgICogRWxlbWVudHMgb2YgdGhpcyB0YWJsZSBhcmUgbGF6aWx5IGluaXRpYWxpemVkIG9uIGZpcnN0IHVzZS4KLSAgICAgKiBObyBsb2NraW5nIGlzIG5lY2Vzc2FyeSwgaS5lLiwgd2UgdXNlIHRoZSBub24tdm9sYXRpbGUsIHJhY3kKLSAgICAgKiBzaW5nbGUtY2hlY2sgaWRpb20uCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gU01BTExfTk9OTkVHQVRJVkVfVkFMVUVTID0gbmV3IFN0cmluZ1sxMDBdOwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIFNNQUxMX05FR0FUSVZFX1ZBTFVFUyA9IG5ldyBTdHJpbmdbMTAwXTsKLQotICAgIC8qKiBURU5TW2ldIGNvbnRhaW5zIHRoZSB0ZW5zIGRpZ2l0IG9mIHRoZSBudW1iZXIgaSwgMCA8PSBpIDw9IDk5LiAqLwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXJbXSBURU5TID0gewotICAgICAgICAnMCcsICcwJywgJzAnLCAnMCcsICcwJywgJzAnLCAnMCcsICcwJywgJzAnLCAnMCcsCi0gICAgICAgICcxJywgJzEnLCAnMScsICcxJywgJzEnLCAnMScsICcxJywgJzEnLCAnMScsICcxJywKLSAgICAgICAgJzInLCAnMicsICcyJywgJzInLCAnMicsICcyJywgJzInLCAnMicsICcyJywgJzInLAotICAgICAgICAnMycsICczJywgJzMnLCAnMycsICczJywgJzMnLCAnMycsICczJywgJzMnLCAnMycsCi0gICAgICAgICc0JywgJzQnLCAnNCcsICc0JywgJzQnLCAnNCcsICc0JywgJzQnLCAnNCcsICc0JywKLSAgICAgICAgJzUnLCAnNScsICc1JywgJzUnLCAnNScsICc1JywgJzUnLCAnNScsICc1JywgJzUnLAotICAgICAgICAnNicsICc2JywgJzYnLCAnNicsICc2JywgJzYnLCAnNicsICc2JywgJzYnLCAnNicsCi0gICAgICAgICc3JywgJzcnLCAnNycsICc3JywgJzcnLCAnNycsICc3JywgJzcnLCAnNycsICc3JywKLSAgICAgICAgJzgnLCAnOCcsICc4JywgJzgnLCAnOCcsICc4JywgJzgnLCAnOCcsICc4JywgJzgnLAotICAgICAgICAnOScsICc5JywgJzknLCAnOScsICc5JywgJzknLCAnOScsICc5JywgJzknLCAnOScKLSAgICB9OwotCi0gICAgLyoqIE9uZXMgW2ldIGNvbnRhaW5zIHRoZSB0ZW5zIGRpZ2l0IG9mIHRoZSBudW1iZXIgaSwgMCA8PSBpIDw9IDk5LiAqLwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXJbXSBPTkVTID0gewotICAgICAgICAnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOScsCi0gICAgICAgICcwJywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLCAnOCcsICc5JywKLSAgICAgICAgJzAnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknLAotICAgICAgICAnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOScsCi0gICAgICAgICcwJywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLCAnOCcsICc5JywKLSAgICAgICAgJzAnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknLAotICAgICAgICAnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOScsCi0gICAgICAgICcwJywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLCAnOCcsICc5JywKLSAgICAgICAgJzAnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknLAotICAgICAgICAnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOScsCi0gICAgfTsKLQotICAgIC8qKgotICAgICAqIFRhYmxlIGZvciBNT0QgLyBESVYgMTAgY29tcHV0YXRpb24gZGVzY3JpYmVkIGluIFNlY3Rpb24gMTAtMjEKLSAgICAgKiBvZiBIYW5rIFdhcnJlbidzICJIYWNrZXIncyBEZWxpZ2h0IiBvbmxpbmUgYWRkZW5kdW0uCi0gICAgICogaHR0cDovL3d3dy5oYWNrZXJzZGVsaWdodC5vcmcvZGl2Y01vcmUucGRmCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhcltdIE1PRF8xMF9UQUJMRSA9IHsKLSAgICAgICAgMCwgMSwgMiwgMiwgMywgMywgNCwgNSwgNSwgNiwgNywgNywgOCwgOCwgOSwgMAotICAgIH07Ci0KLSAgICAvKioKLSAgICAgKiBUaGUgZGlnaXRzIGZvciBldmVyeSBzdXBwb3J0ZWQgcmFkaXguCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhcltdIERJR0lUUyA9IHsKLSAgICAgICAgJzAnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknLAotICAgICAgICAnYScsICdiJywgJ2MnLCAnZCcsICdlJywgJ2YnLCAnZycsICdoJywgJ2knLCAnaicsCi0gICAgICAgICdrJywgJ2wnLCAnbScsICduJywgJ28nLCAncCcsICdxJywgJ3InLCAncycsICd0JywKLSAgICAgICAgJ3UnLCAndicsICd3JywgJ3gnLCAneScsICd6JwotICAgIH07Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyW10gVVBQRVJfQ0FTRV9ESUdJVFMgPSB7Ci0gICAgICAgICcwJywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLCAnOCcsICc5JywKLSAgICAgICAgJ0EnLCAnQicsICdDJywgJ0QnLCAnRScsICdGJywgJ0cnLCAnSCcsICdJJywgJ0onLAotICAgICAgICAnSycsICdMJywgJ00nLCAnTicsICdPJywgJ1AnLCAnUScsICdSJywgJ1MnLCAnVCcsCi0gICAgICAgICdVJywgJ1YnLCAnVycsICdYJywgJ1knLCAnWicKLSAgICB9OwotCi0gICAgcHJpdmF0ZSBJbnRlZ3JhbFRvU3RyaW5nKCkgewotICAgIH0KLQotICAgIC8qKgotICAgICAqIEVxdWl2YWxlbnQgdG8gSW50ZWdlci50b1N0cmluZyhpLCByYWRpeCkuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaW50VG9TdHJpbmcoaW50IGksIGludCByYWRpeCkgewotICAgICAgICBpZiAocmFkaXggPCBDaGFyYWN0ZXIuTUlOX1JBRElYIHx8IHJhZGl4ID4gQ2hhcmFjdGVyLk1BWF9SQURJWCkgewotICAgICAgICAgICAgcmFkaXggPSAxMDsKLSAgICAgICAgfQotICAgICAgICBpZiAocmFkaXggPT0gMTApIHsKLSAgICAgICAgICAgIHJldHVybiBpbnRUb1N0cmluZyhpKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qCi0gICAgICAgICAqIElmIGkgaXMgcG9zaXRpdmUsIG5lZ2F0ZSBpdC4gVGhpcyBpcyB0aGUgb3Bwb3NpdGUgb2Ygd2hhdCBvbmUgbWlnaHQKLSAgICAgICAgICogZXhwZWN0LiBJdCBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgcmFuZ2Ugb2YgdGhlIG5lZ2F0aXZlIHZhbHVlcyBpcwotICAgICAgICAgKiBzdHJpY3RseSBsYXJnZXIgdGhhbiB0aGF0IG9mIHRoZSBwb3NpdGl2ZSB2YWx1ZXM6IHRoZXJlIGlzIG5vCi0gICAgICAgICAqIHBvc2l0aXZlIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gSW50ZWdlci5NSU5fVkFMVUUuCi0gICAgICAgICAqLwotICAgICAgICBib29sZWFuIG5lZ2F0aXZlID0gZmFsc2U7Ci0gICAgICAgIGlmIChpIDwgMCkgewotICAgICAgICAgICAgbmVnYXRpdmUgPSB0cnVlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaSA9IC1pOwotICAgICAgICB9Ci0KLSAgICAgICAgaW50IGJ1ZkxlbiA9IHJhZGl4IDwgOCA/IDMzIDogMTI7ICAvLyBNYXggY2hhcnMgaW4gcmVzdWx0IChjb25zZXJ2YXRpdmUpCi0gICAgICAgIGNoYXJbXSBidWYgPSBuZXcgY2hhcltidWZMZW5dOwotICAgICAgICBpbnQgY3Vyc29yID0gYnVmTGVuOwotCi0gICAgICAgIGRvIHsKLSAgICAgICAgICAgIGludCBxID0gaSAvIHJhZGl4OwotICAgICAgICAgICAgYnVmWy0tY3Vyc29yXSA9IERJR0lUU1tyYWRpeCAqIHEgLSBpXTsKLSAgICAgICAgICAgIGkgPSBxOwotICAgICAgICB9IHdoaWxlIChpICE9IDApOwotCi0gICAgICAgIGlmIChuZWdhdGl2ZSkgewotICAgICAgICAgICAgYnVmWy0tY3Vyc29yXSA9ICctJzsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1ZiwgY3Vyc29yLCBidWZMZW4gLSBjdXJzb3IpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEVxdWl2YWxlbnQgdG8gSW50ZWdlci50b1N0cmluZyhpKS4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBpbnRUb1N0cmluZyhpbnQgaSkgewotICAgICAgICByZXR1cm4gY29udmVydEludChudWxsLCBpKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBFcXVpdmFsZW50IHRvIHNiLmFwcGVuZChJbnRlZ2VyLnRvU3RyaW5nKGkpKS4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXBwZW5kSW50KFN0cmluZ0J1aWxkZXIgc2IsIGludCBpKSB7Ci0gICAgICAgIGNvbnZlcnRJbnQoc2IsIGkpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBpIGFuZCBsZWF2ZXMgc2IgYWxvbmUgaWYgc2IgaXMgbnVsbC4KLSAgICAgKiBSZXR1cm5zIG51bGwgYW5kIGFwcGVuZHMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBpIHRvIHNiIGlmIHNiIGlzIG5vbi1udWxsLgotICAgICAqLwotICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBjb252ZXJ0SW50KFN0cmluZ0J1aWxkZXIgc2IsIGludCBpKSB7Ci0gICAgICAgIGJvb2xlYW4gbmVnYXRpdmUgPSBmYWxzZTsKLSAgICAgICAgU3RyaW5nIHF1aWNrUmVzdWx0ID0gbnVsbDsKLSAgICAgICAgaWYgKGkgPCAwKSB7Ci0gICAgICAgICAgICBuZWdhdGl2ZSA9IHRydWU7Ci0gICAgICAgICAgICBpID0gLWk7Ci0gICAgICAgICAgICBpZiAoaSA8IDEwMCkgewotICAgICAgICAgICAgICAgIGlmIChpIDwgMCkgewotICAgICAgICAgICAgICAgICAgICAvLyBJZiAtbiBpcyBzdGlsbCBuZWdhdGl2ZSwgbiBpcyBJbnRlZ2VyLk1JTl9WQUxVRQotICAgICAgICAgICAgICAgICAgICBxdWlja1Jlc3VsdCA9ICItMjE0NzQ4MzY0OCI7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcXVpY2tSZXN1bHQgPSBTTUFMTF9ORUdBVElWRV9WQUxVRVNbaV07Ci0gICAgICAgICAgICAgICAgICAgIGlmIChxdWlja1Jlc3VsdCA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBTTUFMTF9ORUdBVElWRV9WQUxVRVNbaV0gPSBxdWlja1Jlc3VsdCA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgPCAxMCA/IHN0cmluZ09mKCctJywgT05FU1tpXSkgOiBzdHJpbmdPZignLScsIFRFTlNbaV0sIE9ORVNbaV0pOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKGkgPCAxMDApIHsKLSAgICAgICAgICAgICAgICBxdWlja1Jlc3VsdCA9IFNNQUxMX05PTk5FR0FUSVZFX1ZBTFVFU1tpXTsKLSAgICAgICAgICAgICAgICBpZiAocXVpY2tSZXN1bHQgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBTTUFMTF9OT05ORUdBVElWRV9WQUxVRVNbaV0gPSBxdWlja1Jlc3VsdCA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaSA8IDEwID8gc3RyaW5nT2YoT05FU1tpXSkgOiBzdHJpbmdPZihURU5TW2ldLCBPTkVTW2ldKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHF1aWNrUmVzdWx0ICE9IG51bGwpIHsKLSAgICAgICAgICAgIGlmIChzYiAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgc2IuYXBwZW5kKHF1aWNrUmVzdWx0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBxdWlja1Jlc3VsdDsKLSAgICAgICAgfQotCi0gICAgICAgIGludCBidWZMZW4gPSAxMTsgLy8gTWF4IG51bWJlciBvZiBjaGFycyBpbiByZXN1bHQKLSAgICAgICAgY2hhcltdIGJ1ZiA9IChzYiAhPSBudWxsKSA/IEJVRkZFUi5nZXQoKSA6IG5ldyBjaGFyW2J1Zkxlbl07Ci0gICAgICAgIGludCBjdXJzb3IgPSBidWZMZW47Ci0KLSAgICAgICAgLy8gQ2FsY3VsYXRlIGRpZ2l0cyB0d28tYXQtYS10aW1lIHRpbGwgcmVtYWluaW5nIGRpZ2l0cyBmaXQgaW4gMTYgYml0cwotICAgICAgICB3aGlsZSAoaSA+PSAoMSA8PCAxNikpIHsKLSAgICAgICAgICAgIC8vIENvbXB1dGUgcSA9IG4vMTAwIGFuZCByID0gbiAlIDEwMCBhcyBwZXIgIkhhY2tlcidzIERlbGlnaHQiIDEwLTgKLSAgICAgICAgICAgIGludCBxID0gKGludCkgKCgweDUxRUI4NTFGTCAqIGkpID4+PiAzNyk7Ci0gICAgICAgICAgICBpbnQgciA9IGkgLSAxMDAqcTsKLSAgICAgICAgICAgIGJ1ZlstLWN1cnNvcl0gPSBPTkVTW3JdOwotICAgICAgICAgICAgYnVmWy0tY3Vyc29yXSA9IFRFTlNbcl07Ci0gICAgICAgICAgICBpID0gcTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIENhbGN1bGF0ZSByZW1haW5pbmcgZGlnaXRzIG9uZS1hdC1hLXRpbWUgZm9yIHBlcmZvcm1hbmNlCi0gICAgICAgIHdoaWxlIChpICE9IDApIHsKLSAgICAgICAgICAgIC8vIENvbXB1dGUgcSA9IG4vMTAgYW5kIHIgPSBuICUgMTAgYXMgcGVyICJIYWNrZXIncyBEZWxpZ2h0IiAxMC04Ci0gICAgICAgICAgICBpbnQgcSA9ICgweENDQ0QgKiBpKSA+Pj4gMTk7Ci0gICAgICAgICAgICBpbnQgciA9IGkgLSAxMCpxOwotICAgICAgICAgICAgYnVmWy0tY3Vyc29yXSA9IERJR0lUU1tyXTsKLSAgICAgICAgICAgIGkgPSBxOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKG5lZ2F0aXZlKSB7Ci0gICAgICAgICAgICBidWZbLS1jdXJzb3JdID0gJy0nOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHNiICE9IG51bGwpIHsKLSAgICAgICAgICAgIHNiLmFwcGVuZChidWYsIGN1cnNvciwgYnVmTGVuIC0gY3Vyc29yKTsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoYnVmLCBjdXJzb3IsIGJ1ZkxlbiAtIGN1cnNvcik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBFcXVpdmFsZW50IHRvIExvbmcudG9TdHJpbmcodiwgcmFkaXgpLgotICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGxvbmdUb1N0cmluZyhsb25nIHYsIGludCByYWRpeCkgewotICAgICAgICBpbnQgaSA9IChpbnQpIHY7Ci0gICAgICAgIGlmIChpID09IHYpIHsKLSAgICAgICAgICAgIHJldHVybiBpbnRUb1N0cmluZyhpLCByYWRpeCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAocmFkaXggPCBDaGFyYWN0ZXIuTUlOX1JBRElYIHx8IHJhZGl4ID4gQ2hhcmFjdGVyLk1BWF9SQURJWCkgewotICAgICAgICAgICAgcmFkaXggPSAxMDsKLSAgICAgICAgfQotICAgICAgICBpZiAocmFkaXggPT0gMTApIHsKLSAgICAgICAgICAgIHJldHVybiBsb25nVG9TdHJpbmcodik7Ci0gICAgICAgIH0KLQotICAgICAgICAvKgotICAgICAgICAgKiBJZiB2IGlzIHBvc2l0aXZlLCBuZWdhdGUgaXQuIFRoaXMgaXMgdGhlIG9wcG9zaXRlIG9mIHdoYXQgb25lIG1pZ2h0Ci0gICAgICAgICAqIGV4cGVjdC4gSXQgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIHJhbmdlIG9mIHRoZSBuZWdhdGl2ZSB2YWx1ZXMgaXMKLSAgICAgICAgICogc3RyaWN0bHkgbGFyZ2VyIHRoYW4gdGhhdCBvZiB0aGUgcG9zaXRpdmUgdmFsdWVzOiB0aGVyZSBpcyBubwotICAgICAgICAgKiBwb3NpdGl2ZSB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIEludGVnZXIuTUlOX1ZBTFVFLgotICAgICAgICAgKi8KLSAgICAgICAgYm9vbGVhbiBuZWdhdGl2ZSA9IGZhbHNlOwotICAgICAgICBpZiAodiA8IDApIHsKLSAgICAgICAgICAgIG5lZ2F0aXZlID0gdHJ1ZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHYgPSAtdjsKLSAgICAgICAgfQotCi0gICAgICAgIGludCBidWZMZW4gPSByYWRpeCA8IDggPyA2NSA6IDIzOyAgLy8gTWF4IGNoYXJzIGluIHJlc3VsdCAoY29uc2VydmF0aXZlKQotICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbYnVmTGVuXTsKLSAgICAgICAgaW50IGN1cnNvciA9IGJ1ZkxlbjsKLQotICAgICAgICBkbyB7Ci0gICAgICAgICAgICBsb25nIHEgPSB2IC8gcmFkaXg7Ci0gICAgICAgICAgICBidWZbLS1jdXJzb3JdID0gRElHSVRTWyhpbnQpIChyYWRpeCAqIHEgLSB2KV07Ci0gICAgICAgICAgICB2ID0gcTsKLSAgICAgICAgfSB3aGlsZSAodiAhPSAwKTsKLQotICAgICAgICBpZiAobmVnYXRpdmUpIHsKLSAgICAgICAgICAgIGJ1ZlstLWN1cnNvcl0gPSAnLSc7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhidWYsIGN1cnNvciwgYnVmTGVuIC0gY3Vyc29yKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBFcXVpdmFsZW50IHRvIExvbmcudG9TdHJpbmcobCkuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBTdHJpbmcgbG9uZ1RvU3RyaW5nKGxvbmcgbCkgewotICAgICAgICByZXR1cm4gY29udmVydExvbmcobnVsbCwgbCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogRXF1aXZhbGVudCB0byBzYi5hcHBlbmQoTG9uZy50b1N0cmluZyhsKSkuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIGFwcGVuZExvbmcoU3RyaW5nQnVpbGRlciBzYiwgbG9uZyBsKSB7Ci0gICAgICAgIGNvbnZlcnRMb25nKHNiLCBsKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgbiBhbmQgbGVhdmVzIHNiIGFsb25lIGlmIHNiIGlzIG51bGwuCi0gICAgICogUmV0dXJucyBudWxsIGFuZCBhcHBlbmRzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgbiB0byBzYiBpZiBzYiBpcyBub24tbnVsbC4KLSAgICAgKi8KLSAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29udmVydExvbmcoU3RyaW5nQnVpbGRlciBzYiwgbG9uZyBuKSB7Ci0gICAgICAgIGludCBpID0gKGludCkgbjsKLSAgICAgICAgaWYgKGkgPT0gbikgewotICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRJbnQoc2IsIGkpOwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbGVhbiBuZWdhdGl2ZSA9IChuIDwgMCk7Ci0gICAgICAgIGlmIChuZWdhdGl2ZSkgewotICAgICAgICAgICAgbiA9IC1uOwotICAgICAgICAgICAgaWYgKG4gPCAwKSB7Ci0gICAgICAgICAgICAgICAgLy8gSWYgLW4gaXMgc3RpbGwgbmVnYXRpdmUsIG4gaXMgTG9uZy5NSU5fVkFMVUUKLSAgICAgICAgICAgICAgICBTdHJpbmcgcXVpY2tSZXN1bHQgPSAiLTkyMjMzNzIwMzY4NTQ3NzU4MDgiOwotICAgICAgICAgICAgICAgIGlmIChzYiAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHNiLmFwcGVuZChxdWlja1Jlc3VsdCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gcXVpY2tSZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpbnQgYnVmTGVuID0gMjA7IC8vIE1heGltdW0gbnVtYmVyIG9mIGNoYXJzIGluIHJlc3VsdAotICAgICAgICBjaGFyW10gYnVmID0gKHNiICE9IG51bGwpID8gQlVGRkVSLmdldCgpIDogbmV3IGNoYXJbYnVmTGVuXTsKLQotICAgICAgICBpbnQgbG93ID0gKGludCkgKG4gJSAxMDAwMDAwMDAwKTsgLy8gRXh0cmFjdCBsb3ctb3JkZXIgOSBkaWdpdHMKLSAgICAgICAgaW50IGN1cnNvciA9IGludEludG9DaGFyQXJyYXkoYnVmLCBidWZMZW4sIGxvdyk7Ci0KLSAgICAgICAgLy8gWmVyby1wYWQgTG93IG9yZGVyIHBhcnQgdG8gOSBkaWdpdHMKLSAgICAgICAgd2hpbGUgKGN1cnNvciAhPSAoYnVmTGVuIC0gOSkpIHsKLSAgICAgICAgICAgIGJ1ZlstLWN1cnNvcl0gPSAnMCc7Ci0gICAgICAgIH0KLQotICAgICAgICAvKgotICAgICAgICAgKiBUaGUgcmVtYWluaW5nIGRpZ2l0cyBhcmUgKG4gLSBsb3cpIC8gMSwwMDAsMDAwLDAwMC4gIFRoaXMKLSAgICAgICAgICogImV4YWN0IGRpdmlzaW9uIiBpcyBkb25lIGFzIHBlciB0aGUgb25saW5lIGFkZGVuZHVtIHRvIEhhbmsgV2FycmVuJ3MKLSAgICAgICAgICogIkhhY2tlcidzIERlbGlnaHQiIDEwLTIwLCBodHRwOi8vd3d3LmhhY2tlcnNkZWxpZ2h0Lm9yZy9kaXZjTW9yZS5wZGYKLSAgICAgICAgICovCi0gICAgICAgIG4gPSAoKG4gLSBsb3cpID4+PiA5KSAqIDB4OEU0N0NFNDIzQTJFOUM2REw7Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogSWYgdGhlIHJlbWFpbmluZyBkaWdpdHMgZml0IGluIGFuIGludCwgZW1pdCB0aGVtIHVzaW5nIGEKLSAgICAgICAgICogc2luZ2xlIGNhbGwgdG8gaW50SW50b0NoYXJBcnJheS4gT3RoZXJ3aXNlLCBzdHJpcCBvZmYgdGhlCi0gICAgICAgICAqIGxvdy1vcmRlciBkaWdpdCwgcHV0IGl0IGluIGJ1ZiwgYW5kIHRoZW4gY2FsbCBpbnRJbnRvQ2hhckFycmF5Ci0gICAgICAgICAqIG9uIHRoZSByZW1haW5pbmcgZGlnaXRzICh3aGljaCBub3cgZml0IGluIGFuIGludCkuCi0gICAgICAgICAqLwotICAgICAgICBpZiAoKG4gJiAoLTFMIDw8IDMyKSkgPT0gMCkgewotICAgICAgICAgICAgY3Vyc29yID0gaW50SW50b0NoYXJBcnJheShidWYsIGN1cnNvciwgKGludCkgbik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICogU2V0IG1pZERpZ2l0IHRvIG4gJSAxMAotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBpbnQgbG8zMiA9IChpbnQpIG47Ci0gICAgICAgICAgICBpbnQgaGkzMiA9IChpbnQpIChuID4+PiAzMik7Ci0KLSAgICAgICAgICAgIC8vIG1pZERpZ2l0ID0gKCh1bnNpZ25lZCkgbG93MzIpICUgMTAsIHBlciAiSGFja2VyJ3MgRGVsaWdodCIgMTAtMjEKLSAgICAgICAgICAgIGludCBtaWREaWdpdCA9IE1PRF8xMF9UQUJMRVsoMHgxOTk5OTk5OSAqIGxvMzIgKyAobG8zMiA+Pj4gMSkgKyAobG8zMiA+Pj4gMykpID4+PiAyOF07Ci0KLSAgICAgICAgICAgIC8vIEFkanVzdCBtaWREaWdpdCBmb3IgaGkzMi4gKGFzc2VydCBoaTMyID09IDEgfHwgaGkzMiA9PSAyKQotICAgICAgICAgICAgbWlkRGlnaXQgLT0gaGkzMiA8PCAyOyAgLy8gMUwgPDwgMzIgPT0gLTQgTU9EIDEwCi0gICAgICAgICAgICBpZiAobWlkRGlnaXQgPCAwKSB7Ci0gICAgICAgICAgICAgICAgbWlkRGlnaXQgKz0gMTA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBidWZbLS1jdXJzb3JdID0gRElHSVRTW21pZERpZ2l0XTsKLQotICAgICAgICAgICAgLy8gRXhhY3QgZGl2aXNpb24gYXMgcGVyIFdhcnJlbiAxMC0yMAotICAgICAgICAgICAgaW50IHJlc3QgPSAoKGludCkgKChuIC0gbWlkRGlnaXQpID4+PiAxKSkgKiAweENDQ0NDQ0NEOwotICAgICAgICAgICAgY3Vyc29yID0gaW50SW50b0NoYXJBcnJheShidWYsIGN1cnNvciwgcmVzdCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobmVnYXRpdmUpIHsKLSAgICAgICAgICAgIGJ1ZlstLWN1cnNvcl0gPSAnLSc7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHNiICE9IG51bGwpIHsKLSAgICAgICAgICAgIHNiLmFwcGVuZChidWYsIGN1cnNvciwgYnVmTGVuIC0gY3Vyc29yKTsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoYnVmLCBjdXJzb3IsIGJ1ZkxlbiAtIGN1cnNvcik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBJbnNlcnRzIHRoZSB1bnNpZ25lZCBkZWNpbWFsIGludGVnZXIgcmVwcmVzZW50ZWQgYnkgbiBpbnRvIHRoZSBzcGVjaWZpZWQKLSAgICAgKiBjaGFyYWN0ZXIgYXJyYXkgc3RhcnRpbmcgYXQgcG9zaXRpb24gY3Vyc29yLiAgUmV0dXJucyB0aGUgaW5kZXggYWZ0ZXIKLSAgICAgKiB0aGUgbGFzdCBjaGFyYWN0ZXIgaW5zZXJ0ZWQgKGkuZS4sIHRoZSB2YWx1ZSB0byBwYXNzIGluIGFzIGN1cnNvciB0aGUKLSAgICAgKiBuZXh0IHRpbWUgdGhpcyBtZXRob2QgaXMgY2FsbGVkKS4gTm90ZSB0aGF0IG4gaXMgaW50ZXJwcmV0ZWQgYXMgYSBsYXJnZQotICAgICAqIHBvc2l0aXZlIGludGVnZXIgKG5vdCBhIG5lZ2F0aXZlIGludGVnZXIpIGlmIGl0cyBzaWduIGJpdCBpcyBzZXQuCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgaW50IGludEludG9DaGFyQXJyYXkoY2hhcltdIGJ1ZiwgaW50IGN1cnNvciwgaW50IG4pIHsKLSAgICAgICAgLy8gQ2FsY3VsYXRlIGRpZ2l0cyB0d28tYXQtYS10aW1lIHRpbGwgcmVtYWluaW5nIGRpZ2l0cyBmaXQgaW4gMTYgYml0cwotICAgICAgICB3aGlsZSAoKG4gJiAweGZmZmYwMDAwKSAhPSAwKSB7Ci0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICogQ29tcHV0ZSBxID0gbi8xMDAgYW5kIHIgPSBuICUgMTAwIGFzIHBlciAiSGFja2VyJ3MgRGVsaWdodCIgMTAtOC4KLSAgICAgICAgICAgICAqIFRoaXMgY29tcHV0YXRpb24gaXMgc2xpZ2h0bHkgZGlmZmVyZW50IGZyb20gdGhlIGNvcnJlc3BvbmRpbmcKLSAgICAgICAgICAgICAqIGNvbXB1dGF0aW9uIGluIGludFRvU3RyaW5nOiB0aGUgc2hpZnRzIGJlZm9yZSBhbmQgYWZ0ZXIKLSAgICAgICAgICAgICAqIG11bHRpcGx5IGNhbid0IGJlIGNvbWJpbmVkLCBhcyB0aGF0IHdvdWxkIHlpZWxkIHRoZSB3cm9uZyByZXN1bHQKLSAgICAgICAgICAgICAqIGlmIG4ncyBzaWduIGJpdCB3ZXJlIHNldC4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgaW50IHEgPSAoaW50KSAoKDB4NTFFQjg1MUZMICogKG4gPj4+IDIpKSA+Pj4gMzUpOwotICAgICAgICAgICAgaW50IHIgPSBuIC0gMTAwKnE7Ci0gICAgICAgICAgICBidWZbLS1jdXJzb3JdID0gT05FU1tyXTsKLSAgICAgICAgICAgIGJ1ZlstLWN1cnNvcl0gPSBURU5TW3JdOwotICAgICAgICAgICAgbiA9IHE7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBDYWxjdWxhdGUgcmVtYWluaW5nIGRpZ2l0cyBvbmUtYXQtYS10aW1lIGZvciBwZXJmb3JtYW5jZQotICAgICAgICB3aGlsZSAobiAhPSAwKSB7Ci0gICAgICAgICAgICAvLyBDb21wdXRlIHEgPSBuIC8gMTAgYW5kIHIgPSBuICUgMTAgYXMgcGVyICJIYWNrZXIncyBEZWxpZ2h0IiAxMC04Ci0gICAgICAgICAgICBpbnQgcSA9ICgweENDQ0QgKiBuKSA+Pj4gMTk7Ci0gICAgICAgICAgICBpbnQgciA9IG4gLSAxMCpxOwotICAgICAgICAgICAgYnVmWy0tY3Vyc29yXSA9IERJR0lUU1tyXTsKLSAgICAgICAgICAgIG4gPSBxOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBjdXJzb3I7Ci0gICAgfQotCi0gICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaW50VG9CaW5hcnlTdHJpbmcoaW50IGkpIHsKLSAgICAgICAgaW50IGJ1ZkxlbiA9IDMyOyAgLy8gTWF4IG51bWJlciBvZiBiaW5hcnkgZGlnaXRzIGluIGFuIGludAotICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbYnVmTGVuXTsKLSAgICAgICAgaW50IGN1cnNvciA9IGJ1ZkxlbjsKLQotICAgICAgICBkbyB7Ci0gICAgICAgICAgICBidWZbLS1jdXJzb3JdID0gRElHSVRTW2kgJiAxXTsKLSAgICAgICAgfSAgd2hpbGUgKChpID4+Pj0gMSkgIT0gMCk7Ci0KLSAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoYnVmLCBjdXJzb3IsIGJ1ZkxlbiAtIGN1cnNvcik7Ci0gICAgfQotCi0gICAgcHVibGljIHN0YXRpYyBTdHJpbmcgbG9uZ1RvQmluYXJ5U3RyaW5nKGxvbmcgdikgewotICAgICAgICBpbnQgaSA9IChpbnQpIHY7Ci0gICAgICAgIGlmICh2ID49IDAgJiYgaSA9PSB2KSB7Ci0gICAgICAgICAgICByZXR1cm4gaW50VG9CaW5hcnlTdHJpbmcoaSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpbnQgYnVmTGVuID0gNjQ7ICAvLyBNYXggbnVtYmVyIG9mIGJpbmFyeSBkaWdpdHMgaW4gYSBsb25nCi0gICAgICAgIGNoYXJbXSBidWYgPSBuZXcgY2hhcltidWZMZW5dOwotICAgICAgICBpbnQgY3Vyc29yID0gYnVmTGVuOwotCi0gICAgICAgIGRvIHsKLSAgICAgICAgICAgIGJ1ZlstLWN1cnNvcl0gPSBESUdJVFNbKChpbnQpIHYpICYgMV07Ci0gICAgICAgIH0gIHdoaWxlICgodiA+Pj49IDEpICE9IDApOwotCi0gICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1ZiwgY3Vyc29yLCBidWZMZW4gLSBjdXJzb3IpOwotICAgIH0KLQotICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVpbGRlciBhcHBlbmRCeXRlQXNIZXgoU3RyaW5nQnVpbGRlciBzYiwgYnl0ZSBiLCBib29sZWFuIHVwcGVyQ2FzZSkgewotICAgICAgICBjaGFyW10gZGlnaXRzID0gdXBwZXJDYXNlID8gVVBQRVJfQ0FTRV9ESUdJVFMgOiBESUdJVFM7Ci0gICAgICAgIHNiLmFwcGVuZChkaWdpdHNbKGIgPj4gNCkgJiAweGZdKTsKLSAgICAgICAgc2IuYXBwZW5kKGRpZ2l0c1tiICYgMHhmXSk7Ci0gICAgICAgIHJldHVybiBzYjsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBieXRlVG9IZXhTdHJpbmcoYnl0ZSBiLCBib29sZWFuIHVwcGVyQ2FzZSkgewotICAgICAgICBjaGFyW10gZGlnaXRzID0gdXBwZXJDYXNlID8gVVBQRVJfQ0FTRV9ESUdJVFMgOiBESUdJVFM7Ci0gICAgICAgIGNoYXJbXSBidWYgPSBuZXcgY2hhclsyXTsgLy8gV2UgYWx3YXlzIHdhbnQgdHdvIGRpZ2l0cy4KLSAgICAgICAgYnVmWzBdID0gZGlnaXRzWyhiID4+IDQpICYgMHhmXTsKLSAgICAgICAgYnVmWzFdID0gZGlnaXRzW2IgJiAweGZdOwotICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhidWYsIDAsIDIpOwotICAgIH0KLQotICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGJ5dGVzVG9IZXhTdHJpbmcoYnl0ZVtdIGJ5dGVzLCBib29sZWFuIHVwcGVyQ2FzZSkgewotICAgICAgICBjaGFyW10gZGlnaXRzID0gdXBwZXJDYXNlID8gVVBQRVJfQ0FTRV9ESUdJVFMgOiBESUdJVFM7Ci0gICAgICAgIGNoYXJbXSBidWYgPSBuZXcgY2hhcltieXRlcy5sZW5ndGggKiAyXTsKLSAgICAgICAgaW50IGMgPSAwOwotICAgICAgICBmb3IgKGJ5dGUgYiA6IGJ5dGVzKSB7Ci0gICAgICAgICAgICBidWZbYysrXSA9IGRpZ2l0c1soYiA+PiA0KSAmIDB4Zl07Ci0gICAgICAgICAgICBidWZbYysrXSA9IGRpZ2l0c1tiICYgMHhmXTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhidWYpOwotICAgIH0KLQotICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGludFRvSGV4U3RyaW5nKGludCBpLCBib29sZWFuIHVwcGVyQ2FzZSwgaW50IG1pbldpZHRoKSB7Ci0gICAgICAgIGludCBidWZMZW4gPSA4OyAgLy8gTWF4IG51bWJlciBvZiBoZXggZGlnaXRzIGluIGFuIGludAotICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbYnVmTGVuXTsKLSAgICAgICAgaW50IGN1cnNvciA9IGJ1ZkxlbjsKLQotICAgICAgICBjaGFyW10gZGlnaXRzID0gdXBwZXJDYXNlID8gVVBQRVJfQ0FTRV9ESUdJVFMgOiBESUdJVFM7Ci0gICAgICAgIGRvIHsKLSAgICAgICAgICAgIGJ1ZlstLWN1cnNvcl0gPSBkaWdpdHNbaSAmIDB4Zl07Ci0gICAgICAgIH0gd2hpbGUgKChpID4+Pj0gNCkgIT0gMCB8fCAoYnVmTGVuIC0gY3Vyc29yIDwgbWluV2lkdGgpKTsKLQotICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhidWYsIGN1cnNvciwgYnVmTGVuIC0gY3Vyc29yKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBsb25nVG9IZXhTdHJpbmcobG9uZyB2KSB7Ci0gICAgICAgIGludCBpID0gKGludCkgdjsKLSAgICAgICAgaWYgKHYgPj0gMCAmJiBpID09IHYpIHsKLSAgICAgICAgICAgIHJldHVybiBpbnRUb0hleFN0cmluZyhpLCBmYWxzZSwgMCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpbnQgYnVmTGVuID0gMTY7ICAvLyBNYXggbnVtYmVyIG9mIGhleCBkaWdpdHMgaW4gYSBsb25nCi0gICAgICAgIGNoYXJbXSBidWYgPSBuZXcgY2hhcltidWZMZW5dOwotICAgICAgICBpbnQgY3Vyc29yID0gYnVmTGVuOwotCi0gICAgICAgIGRvIHsKLSAgICAgICAgICAgIGJ1ZlstLWN1cnNvcl0gPSBESUdJVFNbKChpbnQpIHYpICYgMHhGXTsKLSAgICAgICAgfSB3aGlsZSAoKHYgPj4+PSA0KSAhPSAwKTsKLQotICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhidWYsIGN1cnNvciwgYnVmTGVuIC0gY3Vyc29yKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBpbnRUb09jdGFsU3RyaW5nKGludCBpKSB7Ci0gICAgICAgIGludCBidWZMZW4gPSAxMTsgIC8vIE1heCBudW1iZXIgb2Ygb2N0YWwgZGlnaXRzIGluIGFuIGludAotICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbYnVmTGVuXTsKLSAgICAgICAgaW50IGN1cnNvciA9IGJ1ZkxlbjsKLQotICAgICAgICBkbyB7Ci0gICAgICAgICAgICBidWZbLS1jdXJzb3JdID0gRElHSVRTW2kgJiA3XTsKLSAgICAgICAgfSB3aGlsZSAoKGkgPj4+PSAzKSAhPSAwKTsKLQotICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhidWYsIGN1cnNvciwgYnVmTGVuIC0gY3Vyc29yKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBsb25nVG9PY3RhbFN0cmluZyhsb25nIHYpIHsKLSAgICAgICAgaW50IGkgPSAoaW50KSB2OwotICAgICAgICBpZiAodiA+PSAwICYmIGkgPT0gdikgewotICAgICAgICAgICAgcmV0dXJuIGludFRvT2N0YWxTdHJpbmcoaSk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGJ1ZkxlbiA9IDIyOyAgLy8gTWF4IG51bWJlciBvZiBvY3RhbCBkaWdpdHMgaW4gYSBsb25nCi0gICAgICAgIGNoYXJbXSBidWYgPSBuZXcgY2hhcltidWZMZW5dOwotICAgICAgICBpbnQgY3Vyc29yID0gYnVmTGVuOwotCi0gICAgICAgIGRvIHsKLSAgICAgICAgICAgIGJ1ZlstLWN1cnNvcl0gPSBESUdJVFNbKChpbnQpIHYpICYgN107Ci0gICAgICAgIH0gd2hpbGUgKCh2ID4+Pj0gMykgIT0gMCk7Ci0KLSAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoYnVmLCBjdXJzb3IsIGJ1ZkxlbiAtIGN1cnNvcik7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHN0cmluZ09mKGNoYXIuLi4gYXJncykgewotICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhhcmdzLCAwLCBhcmdzLmxlbmd0aCk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2phdmEvT2JqZWN0cy5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2phdmEvT2JqZWN0cy5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYjFlZjcyLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvc3JjL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9qYXZhL09iamVjdHMuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDEzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuamF2YTsKLQotaW1wb3J0IGphdmEudXRpbC5BcnJheXM7Ci1pbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7Ci0KLS8qKgotICogRGVmaW5lcyB0aGUgc2FtZSBjbGFzcyBhcyB0aGUgamF2YS51dGlsLk9iamVjdHMgd2hpY2ggaXMgYWRkZWQgaW4gSmF2YSA3LgotICogVGhpcyBoYWNrIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJ1biB0aGUgQW5kcm9pZCBjb2RlIHdoaWNoIHVzZXMgSmF2YSA3IGZlYXR1cmVzCi0gKiAoQVBJIDE4IGFuZCBiZXlvbmQpIHRvIHJ1biBvbiBKYXZhIDYuCi0gKiA8cC8+Ci0gKiBFeHRyYWN0ZWQgZnJvbSBBUEkgbGV2ZWwgMTksIGZpbGU6Ci0gKiBwbGF0Zm9ybS9saWJjb3JlL2x1bmkvc3JjL21haW4vamF2YS9qYXZhL3V0aWwvT2JqZWN0cy5qYXZhCi0gKi8KLXB1YmxpYyBmaW5hbCBjbGFzcyBPYmplY3RzIHsKLSAgcHJpdmF0ZSBPYmplY3RzKCkge30KLQotICAvKioKLSAgICogUmV0dXJucyAwIGlmIHtAY29kZSBhID09IGJ9LCBvciB7QGNvZGUgYy5jb21wYXJlKGEsIGIpfSBvdGhlcndpc2UuCi0gICAqIFRoYXQgaXMsIHRoaXMgbWFrZXMge0Bjb2RlIGN9IG51bGwtc2FmZS4KLSAgICovCi0gIHB1YmxpYyBzdGF0aWMgPFQ+IGludCBjb21wYXJlKFQgYSwgVCBiLCBDb21wYXJhdG9yPD8gc3VwZXIgVD4gYykgewotICAgIGlmIChhID09IGIpIHsKLSAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICByZXR1cm4gYy5jb21wYXJlKGEsIGIpOwotICB9Ci0KLSAgLyoqCi0gICAqIFJldHVybnMgdHJ1ZSBpZiBib3RoIGFyZ3VtZW50cyBhcmUgbnVsbCwKLSAgICogdGhlIHJlc3VsdCBvZiB7QGxpbmsgQXJyYXlzI2VxdWFsc30gaWYgYm90aCBhcmd1bWVudHMgYXJlIHByaW1pdGl2ZSBhcnJheXMsCi0gICAqIHRoZSByZXN1bHQgb2Yge0BsaW5rIEFycmF5cyNkZWVwRXF1YWxzfSBpZiBib3RoIGFyZ3VtZW50cyBhcmUgYXJyYXlzIG9mIHJlZmVyZW5jZSB0eXBlcywKLSAgICogYW5kIHRoZSByZXN1bHQgb2Yge0BsaW5rICNlcXVhbHN9IG90aGVyd2lzZS4KLSAgICovCi0gIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBkZWVwRXF1YWxzKE9iamVjdCBhLCBPYmplY3QgYikgewotICAgIGlmIChhID09IG51bGwgfHwgYiA9PSBudWxsKSB7Ci0gICAgICByZXR1cm4gYSA9PSBiOwotICAgIH0gZWxzZSBpZiAoYSBpbnN0YW5jZW9mIE9iamVjdFtdICYmIGIgaW5zdGFuY2VvZiBPYmplY3RbXSkgewotICAgICAgcmV0dXJuIEFycmF5cy5kZWVwRXF1YWxzKChPYmplY3RbXSkgYSwgKE9iamVjdFtdKSBiKTsKLSAgICB9IGVsc2UgaWYgKGEgaW5zdGFuY2VvZiBib29sZWFuW10gJiYgYiBpbnN0YW5jZW9mIGJvb2xlYW5bXSkgewotICAgICAgcmV0dXJuIEFycmF5cy5lcXVhbHMoKGJvb2xlYW5bXSkgYSwgKGJvb2xlYW5bXSkgYik7Ci0gICAgfSBlbHNlIGlmIChhIGluc3RhbmNlb2YgYnl0ZVtdICYmIGIgaW5zdGFuY2VvZiBieXRlW10pIHsKLSAgICAgIHJldHVybiBBcnJheXMuZXF1YWxzKChieXRlW10pIGEsIChieXRlW10pIGIpOwotICAgIH0gZWxzZSBpZiAoYSBpbnN0YW5jZW9mIGNoYXJbXSAmJiBiIGluc3RhbmNlb2YgY2hhcltdKSB7Ci0gICAgICByZXR1cm4gQXJyYXlzLmVxdWFscygoY2hhcltdKSBhLCAoY2hhcltdKSBiKTsKLSAgICB9IGVsc2UgaWYgKGEgaW5zdGFuY2VvZiBkb3VibGVbXSAmJiBiIGluc3RhbmNlb2YgZG91YmxlW10pIHsKLSAgICAgIHJldHVybiBBcnJheXMuZXF1YWxzKChkb3VibGVbXSkgYSwgKGRvdWJsZVtdKSBiKTsKLSAgICB9IGVsc2UgaWYgKGEgaW5zdGFuY2VvZiBmbG9hdFtdICYmIGIgaW5zdGFuY2VvZiBmbG9hdFtdKSB7Ci0gICAgICByZXR1cm4gQXJyYXlzLmVxdWFscygoZmxvYXRbXSkgYSwgKGZsb2F0W10pIGIpOwotICAgIH0gZWxzZSBpZiAoYSBpbnN0YW5jZW9mIGludFtdICYmIGIgaW5zdGFuY2VvZiBpbnRbXSkgewotICAgICAgcmV0dXJuIEFycmF5cy5lcXVhbHMoKGludFtdKSBhLCAoaW50W10pIGIpOwotICAgIH0gZWxzZSBpZiAoYSBpbnN0YW5jZW9mIGxvbmdbXSAmJiBiIGluc3RhbmNlb2YgbG9uZ1tdKSB7Ci0gICAgICByZXR1cm4gQXJyYXlzLmVxdWFscygobG9uZ1tdKSBhLCAobG9uZ1tdKSBiKTsKLSAgICB9IGVsc2UgaWYgKGEgaW5zdGFuY2VvZiBzaG9ydFtdICYmIGIgaW5zdGFuY2VvZiBzaG9ydFtdKSB7Ci0gICAgICByZXR1cm4gQXJyYXlzLmVxdWFscygoc2hvcnRbXSkgYSwgKHNob3J0W10pIGIpOwotICAgIH0KLSAgICByZXR1cm4gYS5lcXVhbHMoYik7Ci0gIH0KLQotICAvKioKLSAgICogTnVsbC1zYWZlIGVxdWl2YWxlbnQgb2Yge0Bjb2RlIGEuZXF1YWxzKGIpfS4KLSAgICovCi0gIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IGEsIE9iamVjdCBiKSB7Ci0gICAgcmV0dXJuIChhID09IG51bGwpID8gKGIgPT0gbnVsbCkgOiBhLmVxdWFscyhiKTsKLSAgfQotCi0gIC8qKgotICAgKiBDb252ZW5pZW5jZSB3cmFwcGVyIGZvciB7QGxpbmsgQXJyYXlzI2hhc2hDb2RlfSwgYWRkaW5nIHZhcmFyZ3MuCi0gICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gY29tcHV0ZSBhIGhhc2ggY29kZSBmb3IgYW4gb2JqZWN0J3MgZmllbGRzIGFzIGZvbGxvd3M6Ci0gICAqIHtAY29kZSBPYmplY3RzLmhhc2goYSwgYiwgYyl9LgotICAgKi8KLSAgcHVibGljIHN0YXRpYyBpbnQgaGFzaChPYmplY3QuLi4gdmFsdWVzKSB7Ci0gICAgcmV0dXJuIEFycmF5cy5oYXNoQ29kZSh2YWx1ZXMpOwotICB9Ci0KLSAgLyoqCi0gICAqIFJldHVybnMgMCBmb3IgbnVsbCBvciB7QGNvZGUgby5oYXNoQ29kZSgpfS4KLSAgICovCi0gIHB1YmxpYyBzdGF0aWMgaW50IGhhc2hDb2RlKE9iamVjdCBvKSB7Ci0gICAgcmV0dXJuIChvID09IG51bGwpID8gMCA6IG8uaGFzaENvZGUoKTsKLSAgfQotCi0gIC8qKgotICAgKiBSZXR1cm5zIHtAY29kZSBvfSBpZiBub24tbnVsbCwgb3IgdGhyb3dzIHtAY29kZSBOdWxsUG9pbnRlckV4Y2VwdGlvbn0uCi0gICAqLwotICBwdWJsaWMgc3RhdGljIDxUPiBUIHJlcXVpcmVOb25OdWxsKFQgbykgewotICAgIGlmIChvID09IG51bGwpIHsKLSAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOwotICAgIH0KLSAgICByZXR1cm4gbzsKLSAgfQotCi0gIC8qKgotICAgKiBSZXR1cm5zIHtAY29kZSBvfSBpZiBub24tbnVsbCwgb3IgdGhyb3dzIHtAY29kZSBOdWxsUG9pbnRlckV4Y2VwdGlvbn0KLSAgICogd2l0aCB0aGUgZ2l2ZW4gZGV0YWlsIG1lc3NhZ2UuCi0gICAqLwotICBwdWJsaWMgc3RhdGljIDxUPiBUIHJlcXVpcmVOb25OdWxsKFQgbywgU3RyaW5nIG1lc3NhZ2UpIHsKLSAgICBpZiAobyA9PSBudWxsKSB7Ci0gICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24obWVzc2FnZSk7Ci0gICAgfQotICAgIHJldHVybiBvOwotICB9Ci0KLSAgLyoqCi0gICAqIFJldHVybnMgIm51bGwiIGZvciBudWxsIG9yIHtAY29kZSBvLnRvU3RyaW5nKCl9LgotICAgKi8KLSAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoT2JqZWN0IG8pIHsKLSAgICByZXR1cm4gKG8gPT0gbnVsbCkgPyAibnVsbCIgOiBvLnRvU3RyaW5nKCk7Ci0gIH0KLQotICAvKioKLSAgICogUmV0dXJucyB7QGNvZGUgbnVsbFN0cmluZ30gZm9yIG51bGwgb3Ige0Bjb2RlIG8udG9TdHJpbmcoKX0uCi0gICAqLwotICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1N0cmluZyhPYmplY3QgbywgU3RyaW5nIG51bGxTdHJpbmcpIHsKLSAgICByZXR1cm4gKG8gPT0gbnVsbCkgPyBudWxsU3RyaW5nIDogby50b1N0cmluZygpOwotICB9Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9zcmMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2phdmEvVW5zYWZlQnl0ZVNlcXVlbmNlLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvamF2YS9VbnNhZmVCeXRlU2VxdWVuY2UuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGUwOTA4MC4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3NyYy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvamF2YS9VbnNhZmVCeXRlU2VxdWVuY2UuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5qYXZhOwotCi1pbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0OwotCi0vKioKLSAqIERlZmluZXMgdGhlIHNhbWUgY2xhc3MgYXMgdGhlIGphdmEubGFuZy5VbnNhZmVCeXRlU2VxdWVuY2Ugd2hpY2ggd2FzIGFkZGVkIGluCi0gKiBEYWx2aWsgVk0uIFRoaXMgaGFjaywgcHJvdmlkZXMgYSByZXBsYWNlbWVudCBmb3IgdGhhdCBjbGFzcyB3aGljaCBjYW4ndCBiZQotICogbG9hZGVkIGluIHRoZSBzdGFuZGFyZCBKVk0gc2luY2UgaXQncyBpbiB0aGUgamF2YSBwYWNrYWdlIGFuZCBzdGFuZGFyZCBKVk0KLSAqIGRvZXNuJ3QgaGF2ZSBpdC4KLSAqIDxwLz4KLSAqIEV4dHJhY3RlZCBmcm9tIEFQSSBsZXZlbCAxOCwgZmlsZToKLSAqIHBsYXRmb3JtL2xpYmNvcmUvbHVuaS9zcmMvbWFpbi9qYXZhL2phdmEvbGFuZy9VbnNhZmVCeXRlU2VxdWVuY2UuamF2YQotICovCi1wdWJsaWMgY2xhc3MgVW5zYWZlQnl0ZVNlcXVlbmNlIHsKLSAgICBwcml2YXRlIGJ5dGVbXSBieXRlczsKLSAgICBwcml2YXRlIGludCBjb3VudDsKLQotICAgIHB1YmxpYyBVbnNhZmVCeXRlU2VxdWVuY2UoaW50IGluaXRpYWxDYXBhY2l0eSkgewotICAgICAgICB0aGlzLmJ5dGVzID0gbmV3IGJ5dGVbaW5pdGlhbENhcGFjaXR5XTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgaW50IHNpemUoKSB7Ci0gICAgICAgIHJldHVybiBjb3VudDsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBNb3ZlcyB0aGUgd3JpdGUgcG9pbnRlciBiYWNrIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlcXVlbmNlLAotICAgICAqIGJ1dCB3aXRob3V0IHJlc2l6aW5nIG9yIHJlYWxsb2NhdGluZyB0aGUgYnVmZmVyLgotICAgICAqLwotICAgIHB1YmxpYyB2b2lkIHJld2luZCgpIHsKLSAgICAgICAgY291bnQgPSAwOwotICAgIH0KLQotICAgIHB1YmxpYyB2b2lkIHdyaXRlKGJ5dGVbXSBidWZmZXIsIGludCBvZmZzZXQsIGludCBsZW5ndGgpIHsKLSAgICAgICAgaWYgKGNvdW50ICsgbGVuZ3RoID49IGJ5dGVzLmxlbmd0aCkgewotICAgICAgICAgICAgYnl0ZVtdIG5ld0J5dGVzID0gbmV3IGJ5dGVbKGNvdW50ICsgbGVuZ3RoKSAqIDJdOwotICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShieXRlcywgMCwgbmV3Qnl0ZXMsIDAsIGNvdW50KTsKLSAgICAgICAgICAgIGJ5dGVzID0gbmV3Qnl0ZXM7Ci0gICAgICAgIH0KLSAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsIG9mZnNldCwgYnl0ZXMsIGNvdW50LCBsZW5ndGgpOwotICAgICAgICBjb3VudCArPSBsZW5ndGg7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgd3JpdGUoaW50IGIpIHsKLSAgICAgICAgaWYgKGNvdW50ID09IGJ5dGVzLmxlbmd0aCkgewotICAgICAgICAgICAgYnl0ZVtdIG5ld0J5dGVzID0gbmV3IGJ5dGVbY291bnQgKiAyXTsKLSAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZXMsIDAsIG5ld0J5dGVzLCAwLCBjb3VudCk7Ci0gICAgICAgICAgICBieXRlcyA9IG5ld0J5dGVzOwotICAgICAgICB9Ci0gICAgICAgIGJ5dGVzW2NvdW50KytdID0gKGJ5dGUpIGI7Ci0gICAgfQotCi0gICAgcHVibGljIGJ5dGVbXSB0b0J5dGVBcnJheSgpIHsKLSAgICAgICAgaWYgKGNvdW50ID09IGJ5dGVzLmxlbmd0aCkgewotICAgICAgICAgICAgcmV0dXJuIGJ5dGVzOwotICAgICAgICB9Ci0gICAgICAgIGJ5dGVbXSByZXN1bHQgPSBuZXcgYnl0ZVtjb3VudF07Ci0gICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZXMsIDAsIHJlc3VsdCwgMCwgY291bnQpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoQ2hhcnNldCBjcykgewotICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhieXRlcywgMCwgY291bnQsIGNzKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvQXNtQW5hbHl6ZXJUZXN0LmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvQXNtQW5hbHl6ZXJUZXN0LmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwNWZjOWQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0FzbUFuYWx5emVyVGVzdC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMjM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZTsKLQotaW1wb3J0IHN0YXRpYyBvcmcuanVuaXQuQXNzZXJ0LmFzc2VydEFycmF5RXF1YWxzOwotaW1wb3J0IHN0YXRpYyBvcmcuanVuaXQuQXNzZXJ0LmFzc2VydEVxdWFsczsKLWltcG9ydCBzdGF0aWMgb3JnLmp1bml0LkFzc2VydC5hc3NlcnROb3ROdWxsOwotCi1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZS5Bc21BbmFseXplci5EZXBlbmRlbmN5VmlzaXRvcjsKLQotaW1wb3J0IG9yZy5qdW5pdC5BZnRlcjsKLWltcG9ydCBvcmcuanVuaXQuQmVmb3JlOwotaW1wb3J0IG9yZy5qdW5pdC5UZXN0OwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkNsYXNzUmVhZGVyOwotCi1pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLm5ldC5VUkw7Ci1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKLWltcG9ydCBqYXZhLnV0aWwuTWFwOwotaW1wb3J0IGphdmEudXRpbC5TZXQ7Ci1pbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7Ci0KLS8qKgotICogVW5pdCB0ZXN0cyBmb3Igc29tZSBtZXRob2RzIG9mIHtAbGluayBBc21BbmFseXplcn0uCi0gKi8KLXB1YmxpYyBjbGFzcyBBc21BbmFseXplclRlc3QgewotCi0gICAgcHJpdmF0ZSBNb2NrTG9nIG1Mb2c7Ci0gICAgcHJpdmF0ZSBBcnJheUxpc3Q8U3RyaW5nPiBtT3NKYXJQYXRoOwotICAgIHByaXZhdGUgQXNtQW5hbHl6ZXIgbUFhOwotCi0gICAgQEJlZm9yZQotICAgIHB1YmxpYyB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIG1Mb2cgPSBuZXcgTW9ja0xvZygpOwotICAgICAgICBVUkwgdXJsID0gdGhpcy5nZXRDbGFzcygpLmdldENsYXNzTG9hZGVyKCkuZ2V0UmVzb3VyY2UoImRhdGEvbW9ja19hbmRyb2lkLmphciIpOwotCi0gICAgICAgIG1Pc0phclBhdGggPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKTsKLSAgICAgICAgbU9zSmFyUGF0aC5hZGQodXJsLmdldEZpbGUoKSk7Ci0KLSAgICAgICAgU2V0PFN0cmluZz4gZXhjbHVkZUNsYXNzZXMgPSBuZXcgSGFzaFNldDxTdHJpbmc+KDEpOwotICAgICAgICBleGNsdWRlQ2xhc3Nlcy5hZGQoImphdmEubGFuZy5KYXZhQ2xhc3MiKTsKLSAgICAgICAgbUFhID0gbmV3IEFzbUFuYWx5emVyKG1Mb2csIG1Pc0phclBhdGgsIG51bGwgLyogZ2VuICovLAotICAgICAgICAgICAgICAgIG51bGwgLyogZGVyaXZlRnJvbSAqLywgbnVsbCAvKiBpbmNsdWRlR2xvYnMgKi8sIGV4Y2x1ZGVDbGFzc2VzKTsKLSAgICB9Ci0KLSAgICBAQWZ0ZXIKLSAgICBwdWJsaWMgdm9pZCB0ZWFyRG93bigpIHRocm93cyBFeGNlcHRpb24gewotICAgIH0KLQotICAgIEBUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFBhcnNlWmlwKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKLSAgICAgICAgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IG1hcCA9IG1BYS5wYXJzZVppcChtT3NKYXJQYXRoKTsKLQotICAgICAgICBhc3NlcnRBcnJheUVxdWFscyhuZXcgU3RyaW5nW10gewotICAgICAgICAgICAgICAgICJqYXZhLmxhbmcuSmF2YUNsYXNzIiwKLSAgICAgICAgICAgICAgICAibW9ja19hbmRyb2lkLmR1bW15LklubmVyVGVzdCIsCi0gICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC5kdW1teS5Jbm5lclRlc3QkRGVyaXZpbmdDbGFzcyIsCi0gICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC5kdW1teS5Jbm5lclRlc3QkTXlHZW5lcmljczEiLAotICAgICAgICAgICAgICAgICJtb2NrX2FuZHJvaWQuZHVtbXkuSW5uZXJUZXN0JE15SW50RW51bSIsCi0gICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC5kdW1teS5Jbm5lclRlc3QkTXlTdGF0aWNJbm5lckNsYXNzIiwKLSAgICAgICAgICAgICAgICAibW9ja19hbmRyb2lkLmR1bW15LklubmVyVGVzdCROb3RTdGF0aWNJbm5lcjEiLAotICAgICAgICAgICAgICAgICJtb2NrX2FuZHJvaWQuZHVtbXkuSW5uZXJUZXN0JE5vdFN0YXRpY0lubmVyMiIsCi0gICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC52aWV3LlZpZXciLAotICAgICAgICAgICAgICAgICJtb2NrX2FuZHJvaWQudmlldy5WaWV3R3JvdXAiLAotICAgICAgICAgICAgICAgICJtb2NrX2FuZHJvaWQudmlldy5WaWV3R3JvdXAkTGF5b3V0UGFyYW1zIiwKLSAgICAgICAgICAgICAgICAibW9ja19hbmRyb2lkLnZpZXcuVmlld0dyb3VwJE1hcmdpbkxheW91dFBhcmFtcyIsCi0gICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC53aWRnZXQuTGluZWFyTGF5b3V0IiwKLSAgICAgICAgICAgICAgICAibW9ja19hbmRyb2lkLndpZGdldC5MaW5lYXJMYXlvdXQkTGF5b3V0UGFyYW1zIiwKLSAgICAgICAgICAgICAgICAibW9ja19hbmRyb2lkLndpZGdldC5UYWJsZUxheW91dCIsCi0gICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC53aWRnZXQuVGFibGVMYXlvdXQkTGF5b3V0UGFyYW1zIgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIG1hcC5rZXlTZXQoKS50b0FycmF5KCkpOwotICAgIH0KLQotICAgIEBUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdEZpbmRDbGFzcygpIHRocm93cyBJT0V4Y2VwdGlvbiwgTG9nQWJvcnRFeGNlcHRpb24gewotICAgICAgICBNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gemlwQ2xhc3NlcyA9IG1BYS5wYXJzZVppcChtT3NKYXJQYXRoKTsKLSAgICAgICAgVHJlZU1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBmb3VuZCA9IG5ldyBUcmVlTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+KCk7Ci0KLSAgICAgICAgQ2xhc3NSZWFkZXIgY3IgPSBtQWEuZmluZENsYXNzKCJtb2NrX2FuZHJvaWQudmlldy5WaWV3R3JvdXAkTGF5b3V0UGFyYW1zIiwKLSAgICAgICAgICAgICAgICB6aXBDbGFzc2VzLCBmb3VuZCk7Ci0KLSAgICAgICAgYXNzZXJ0Tm90TnVsbChjcik7Ci0gICAgICAgIGFzc2VydEVxdWFscygibW9ja19hbmRyb2lkL3ZpZXcvVmlld0dyb3VwJExheW91dFBhcmFtcyIsIGNyLmdldENsYXNzTmFtZSgpKTsKLSAgICAgICAgYXNzZXJ0QXJyYXlFcXVhbHMobmV3IFN0cmluZ1tdIHsgIm1vY2tfYW5kcm9pZC52aWV3LlZpZXdHcm91cCRMYXlvdXRQYXJhbXMiIH0sCi0gICAgICAgICAgICAgICAgZm91bmQua2V5U2V0KCkudG9BcnJheSgpKTsKLSAgICAgICAgYXNzZXJ0QXJyYXlFcXVhbHMobmV3IENsYXNzUmVhZGVyW10geyBjciB9LCBmb3VuZC52YWx1ZXMoKS50b0FycmF5KCkpOwotICAgIH0KLQotICAgIEBUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdEZpbmRHbG9icygpIHRocm93cyBJT0V4Y2VwdGlvbiwgTG9nQWJvcnRFeGNlcHRpb24gewotICAgICAgICBNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gemlwQ2xhc3NlcyA9IG1BYS5wYXJzZVppcChtT3NKYXJQYXRoKTsKLSAgICAgICAgVHJlZU1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBmb3VuZCA9IG5ldyBUcmVlTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+KCk7Ci0KLSAgICAgICAgLy8gdGhpcyBtYXRjaGVzIGNsYXNzZXMsIGEgcGFja2FnZSBtYXRjaCByZXR1cm5zIG5vdGhpbmcKLSAgICAgICAgZm91bmQuY2xlYXIoKTsKLSAgICAgICAgbUFhLmZpbmRHbG9icygibW9ja19hbmRyb2lkLnZpZXciLCB6aXBDbGFzc2VzLCBmb3VuZCk7Ci0KLSAgICAgICAgYXNzZXJ0QXJyYXlFcXVhbHMobmV3IFN0cmluZ1tdIHsgfSwKLSAgICAgICAgICAgIGZvdW5kLmtleVNldCgpLnRvQXJyYXkoKSk7Ci0KLSAgICAgICAgLy8gYSBjb21wbGV4IGdsb2Igc2VhcmNoLiAqIGlzIGEgc2VhcmNoIHBhdHRlcm4gdGhhdCBtYXRjaGVzIG5hbWVzLCBub3QgZG90cwotICAgICAgICBtQWEuZmluZEdsb2JzKCJtb2NrX2FuZHJvaWQuKi4qR3JvdXAkKkxheW91dCoiLCB6aXBDbGFzc2VzLCBmb3VuZCk7Ci0KLSAgICAgICAgYXNzZXJ0QXJyYXlFcXVhbHMobmV3IFN0cmluZ1tdIHsKLSAgICAgICAgICAgICAgICAibW9ja19hbmRyb2lkLnZpZXcuVmlld0dyb3VwJExheW91dFBhcmFtcyIsCi0gICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC52aWV3LlZpZXdHcm91cCRNYXJnaW5MYXlvdXRQYXJhbXMiCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZm91bmQua2V5U2V0KCkudG9BcnJheSgpKTsKLQotICAgICAgICAvLyBhIGNvbXBsZXggZ2xvYiBzZWFyY2guICoqIGlzIGEgc2VhcmNoIHBhdHRlcm4gdGhhdCBtYXRjaGVzIG5hbWVzIGluY2x1ZGluZyBkb3RzCi0gICAgICAgIG1BYS5maW5kR2xvYnMoIm1vY2tfYW5kcm9pZC4qKkdyb3VwKiIsIHppcENsYXNzZXMsIGZvdW5kKTsKLQotICAgICAgICBhc3NlcnRBcnJheUVxdWFscyhuZXcgU3RyaW5nW10gewotICAgICAgICAgICAgICAgICJtb2NrX2FuZHJvaWQudmlldy5WaWV3R3JvdXAiLAotICAgICAgICAgICAgICAgICJtb2NrX2FuZHJvaWQudmlldy5WaWV3R3JvdXAkTGF5b3V0UGFyYW1zIiwKLSAgICAgICAgICAgICAgICAibW9ja19hbmRyb2lkLnZpZXcuVmlld0dyb3VwJE1hcmdpbkxheW91dFBhcmFtcyIKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmb3VuZC5rZXlTZXQoKS50b0FycmF5KCkpOwotCi0gICAgICAgIC8vIG1hdGNoZXMgYSBzaW5nbGUgY2xhc3MKLSAgICAgICAgZm91bmQuY2xlYXIoKTsKLSAgICAgICAgbUFhLmZpbmRHbG9icygibW9ja19hbmRyb2lkLnZpZXcuVmlldyIsIHppcENsYXNzZXMsIGZvdW5kKTsKLQotICAgICAgICBhc3NlcnRBcnJheUVxdWFscyhuZXcgU3RyaW5nW10gewotICAgICAgICAgICAgICAgICJtb2NrX2FuZHJvaWQudmlldy5WaWV3IgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGZvdW5kLmtleVNldCgpLnRvQXJyYXkoKSk7Ci0KLSAgICAgICAgLy8gbWF0Y2hlcyBldmVyeXRpbmcgaW5zaWRlIHRoZSBnaXZlbiBwYWNrYWdlIGJ1dCBub3Qgc3ViLXBhY2thZ2VzCi0gICAgICAgIGZvdW5kLmNsZWFyKCk7Ci0gICAgICAgIG1BYS5maW5kR2xvYnMoIm1vY2tfYW5kcm9pZC52aWV3LioiLCB6aXBDbGFzc2VzLCBmb3VuZCk7Ci0KLSAgICAgICAgYXNzZXJ0QXJyYXlFcXVhbHMobmV3IFN0cmluZ1tdIHsKLSAgICAgICAgICAgICAgICAibW9ja19hbmRyb2lkLnZpZXcuVmlldyIsCi0gICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC52aWV3LlZpZXdHcm91cCIsCi0gICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC52aWV3LlZpZXdHcm91cCRMYXlvdXRQYXJhbXMiLAotICAgICAgICAgICAgICAgICJtb2NrX2FuZHJvaWQudmlldy5WaWV3R3JvdXAkTWFyZ2luTGF5b3V0UGFyYW1zIgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGZvdW5kLmtleVNldCgpLnRvQXJyYXkoKSk7Ci0KLSAgICAgICAgZm9yIChTdHJpbmcga2V5IDogZm91bmQua2V5U2V0KCkpIHsKLSAgICAgICAgICAgIENsYXNzUmVhZGVyIHZhbHVlID0gZm91bmQuZ2V0KGtleSk7Ci0gICAgICAgICAgICBhc3NlcnROb3ROdWxsKCJObyB2YWx1ZSBmb3IgIiArIGtleSwgdmFsdWUpOwotICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKGtleSwgQXNtQW5hbHl6ZXIuY2xhc3NSZWFkZXJUb0NsYXNzTmFtZSh2YWx1ZSkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQFRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0RmluZENsYXNzZXNEZXJpdmluZ0Zyb20oKSB0aHJvd3MgTG9nQWJvcnRFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKLSAgICAgICAgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IHppcENsYXNzZXMgPSBtQWEucGFyc2VaaXAobU9zSmFyUGF0aCk7Ci0gICAgICAgIFRyZWVNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4gZm91bmQgPSBuZXcgVHJlZU1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPigpOwotCi0gICAgICAgIG1BYS5maW5kQ2xhc3Nlc0Rlcml2aW5nRnJvbSgibW9ja19hbmRyb2lkLnZpZXcuVmlldyIsIHppcENsYXNzZXMsIGZvdW5kKTsKLQotICAgICAgICBhc3NlcnRBcnJheUVxdWFscyhuZXcgU3RyaW5nW10gewotICAgICAgICAgICAgICAgICJtb2NrX2FuZHJvaWQudmlldy5WaWV3IiwKLSAgICAgICAgICAgICAgICAibW9ja19hbmRyb2lkLnZpZXcuVmlld0dyb3VwIiwKLSAgICAgICAgICAgICAgICAibW9ja19hbmRyb2lkLndpZGdldC5MaW5lYXJMYXlvdXQiLAotICAgICAgICAgICAgICAgICJtb2NrX2FuZHJvaWQud2lkZ2V0LlRhYmxlTGF5b3V0IiwKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBmb3VuZC5rZXlTZXQoKS50b0FycmF5KCkpOwotCi0gICAgICAgIGZvciAoU3RyaW5nIGtleSA6IGZvdW5kLmtleVNldCgpKSB7Ci0gICAgICAgICAgICBDbGFzc1JlYWRlciB2YWx1ZSA9IGZvdW5kLmdldChrZXkpOwotICAgICAgICAgICAgYXNzZXJ0Tm90TnVsbCgiTm8gdmFsdWUgZm9yICIgKyBrZXksIHZhbHVlKTsKLSAgICAgICAgICAgIGFzc2VydEVxdWFscyhrZXksIEFzbUFuYWx5emVyLmNsYXNzUmVhZGVyVG9DbGFzc05hbWUodmFsdWUpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdERlcGVuZGVuY3lWaXNpdG9yKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBMb2dBYm9ydEV4Y2VwdGlvbiB7Ci0gICAgICAgIE1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiB6aXBDbGFzc2VzID0gbUFhLnBhcnNlWmlwKG1Pc0phclBhdGgpOwotICAgICAgICBUcmVlTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IGtlZXAgPSBuZXcgVHJlZU1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPigpOwotICAgICAgICBUcmVlTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IG5ld19rZWVwID0gbmV3IFRyZWVNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4oKTsKLSAgICAgICAgVHJlZU1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBpbl9kZXBzID0gbmV3IFRyZWVNYXA8U3RyaW5nLCBDbGFzc1JlYWRlcj4oKTsKLSAgICAgICAgVHJlZU1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPiBvdXRfZGVwcyA9IG5ldyBUcmVlTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+KCk7Ci0KLSAgICAgICAgQ2xhc3NSZWFkZXIgY3IgPSBtQWEuZmluZENsYXNzKCJtb2NrX2FuZHJvaWQud2lkZ2V0LlRhYmxlTGF5b3V0IiwgemlwQ2xhc3Nlcywga2VlcCk7Ci0gICAgICAgIERlcGVuZGVuY3lWaXNpdG9yIHZpc2l0b3IgPSBtQWEuZ2V0VmlzaXRvcih6aXBDbGFzc2VzLCBrZWVwLCBuZXdfa2VlcCwgaW5fZGVwcywgb3V0X2RlcHMpOwotCi0gICAgICAgIC8vIGdldCBmaXJzdCBsZXZlbCBkZXBlbmRlbmNpZXMKLSAgICAgICAgY3IuYWNjZXB0KHZpc2l0b3IsIDAgLyogZmxhZ3MgKi8pOwotCi0gICAgICAgIGFzc2VydEFycmF5RXF1YWxzKG5ldyBTdHJpbmdbXSB7Ci0gICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC52aWV3LlZpZXdHcm91cCIsCi0gICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC53aWRnZXQuVGFibGVMYXlvdXQkTGF5b3V0UGFyYW1zIiwKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBvdXRfZGVwcy5rZXlTZXQoKS50b0FycmF5KCkpOwotCi0gICAgICAgIGluX2RlcHMucHV0QWxsKG91dF9kZXBzKTsKLSAgICAgICAgb3V0X2RlcHMuY2xlYXIoKTsKLQotICAgICAgICAvLyBnZXQgc2Vjb25kIGxldmVsIGRlcGVuZGVuY2llcwotICAgICAgICBmb3IgKENsYXNzUmVhZGVyIGNyMiA6IGluX2RlcHMudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGNyMi5hY2NlcHQodmlzaXRvciwgMCAvKiBmbGFncyAqLyk7Ci0gICAgICAgIH0KLQotICAgICAgICBhc3NlcnRBcnJheUVxdWFscyhuZXcgU3RyaW5nW10gewotICAgICAgICAgICAgICAgICJtb2NrX2FuZHJvaWQudmlldy5WaWV3IiwKLSAgICAgICAgICAgICAgICAibW9ja19hbmRyb2lkLnZpZXcuVmlld0dyb3VwJExheW91dFBhcmFtcyIsCi0gICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC52aWV3LlZpZXdHcm91cCRNYXJnaW5MYXlvdXRQYXJhbXMiLAotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIG91dF9kZXBzLmtleVNldCgpLnRvQXJyYXkoKSk7Ci0KLSAgICAgICAgaW5fZGVwcy5wdXRBbGwob3V0X2RlcHMpOwotICAgICAgICBvdXRfZGVwcy5jbGVhcigpOwotCi0gICAgICAgIC8vIGdldCB0aGlyZCBsZXZlbCBkZXBlbmRlbmNpZXMgKHRoZXJlIGFyZSBub25lKQotICAgICAgICBmb3IgKENsYXNzUmVhZGVyIGNyMiA6IGluX2RlcHMudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGNyMi5hY2NlcHQodmlzaXRvciwgMCAvKiBmbGFncyAqLyk7Ci0gICAgICAgIH0KLSAgICAgICAga2VlcC5wdXRBbGwobmV3X2tlZXApOwotCi0gICAgICAgIGFzc2VydEFycmF5RXF1YWxzKG5ldyBTdHJpbmdbXSB7IH0sIG91dF9kZXBzLmtleVNldCgpLnRvQXJyYXkoKSk7Ci0gICAgICAgIGFzc2VydEFycmF5RXF1YWxzKG5ldyBTdHJpbmdbXSB7Ci0gICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC53aWRnZXQuVGFibGVMYXlvdXQiLAotICAgICAgICB9LCBrZWVwLmtleVNldCgpLnRvQXJyYXkoKSk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0FzbUdlbmVyYXRvclRlc3QuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9Bc21HZW5lcmF0b3JUZXN0LmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhMjcxNzMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0FzbUdlbmVyYXRvclRlc3QuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDMzMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGU7Ci0KLQotaW1wb3J0IHN0YXRpYyBvcmcuanVuaXQuQXNzZXJ0LmFzc2VydEFycmF5RXF1YWxzOwotaW1wb3J0IHN0YXRpYyBvcmcuanVuaXQuQXNzZXJ0LmFzc2VydFRydWU7Ci0KLWltcG9ydCBvcmcuanVuaXQuQWZ0ZXI7Ci1pbXBvcnQgb3JnLmp1bml0LkJlZm9yZTsKLWltcG9ydCBvcmcuanVuaXQuVGVzdDsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1JlYWRlcjsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1Zpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uRmllbGRWaXNpdG9yOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLk1ldGhvZFZpc2l0b3I7Ci1pbXBvcnQgb3JnLm9iamVjdHdlYi5hc20uT3Bjb2RlczsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5UeXBlOwotCi1pbXBvcnQgamF2YS5pby5GaWxlOwotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS5uZXQuVVJMOwotaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7Ci1pbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOwotaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OwotaW1wb3J0IGphdmEudXRpbC5NYXA7Ci1pbXBvcnQgamF2YS51dGlsLlNldDsKLWltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKLWltcG9ydCBqYXZhLnV0aWwuemlwLlppcEVudHJ5OwotaW1wb3J0IGphdmEudXRpbC56aXAuWmlwRmlsZTsKLQotLyoqCi0gKiBVbml0IHRlc3RzIGZvciBzb21lIG1ldGhvZHMgb2Yge0BsaW5rIEFzbUdlbmVyYXRvcn0uCi0gKi8KLXB1YmxpYyBjbGFzcyBBc21HZW5lcmF0b3JUZXN0IHsKLQotICAgIHByaXZhdGUgTW9ja0xvZyBtTG9nOwotICAgIHByaXZhdGUgQXJyYXlMaXN0PFN0cmluZz4gbU9zSmFyUGF0aDsKLSAgICBwcml2YXRlIFN0cmluZyBtT3NEZXN0SmFyOwotICAgIHByaXZhdGUgRmlsZSBtVGVtcEZpbGU7Ci0KLSAgICAvLyBBU00gaW50ZXJuYWwgbmFtZSBmb3IgdGhlIHRoZSBjbGFzcyBpbiBqYXZhIHBhY2thZ2UgdGhhdCBzaG91bGQgYmUgcmVmYWN0b3JlZC4KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSkFWQV9DTEFTU19OQU1FID0gImphdmEvbGFuZy9KYXZhQ2xhc3MiOwotCi0gICAgQEJlZm9yZQotICAgIHB1YmxpYyB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIG1Mb2cgPSBuZXcgTW9ja0xvZygpOwotICAgICAgICBVUkwgdXJsID0gdGhpcy5nZXRDbGFzcygpLmdldENsYXNzTG9hZGVyKCkuZ2V0UmVzb3VyY2UoImRhdGEvbW9ja19hbmRyb2lkLmphciIpOwotCi0gICAgICAgIG1Pc0phclBhdGggPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKTsKLSAgICAgICAgbU9zSmFyUGF0aC5hZGQodXJsLmdldEZpbGUoKSk7Ci0KLSAgICAgICAgbVRlbXBGaWxlID0gRmlsZS5jcmVhdGVUZW1wRmlsZSgibW9jayIsICIuamFyIik7Ci0gICAgICAgIG1Pc0Rlc3RKYXIgPSBtVGVtcEZpbGUuZ2V0QWJzb2x1dGVQYXRoKCk7Ci0gICAgICAgIG1UZW1wRmlsZS5kZWxldGVPbkV4aXQoKTsKLSAgICB9Ci0KLSAgICBAQWZ0ZXIKLSAgICBwdWJsaWMgdm9pZCB0ZWFyRG93bigpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICBpZiAobVRlbXBGaWxlICE9IG51bGwpIHsKLSAgICAgICAgICAgIG1UZW1wRmlsZS5kZWxldGUoKTsKLSAgICAgICAgICAgIG1UZW1wRmlsZSA9IG51bGw7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAVGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RDbGFzc1JlbmFtaW5nKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBMb2dBYm9ydEV4Y2VwdGlvbiB7Ci0KLSAgICAgICAgSUNyZWF0ZUluZm8gY2kgPSBuZXcgSUNyZWF0ZUluZm8oKSB7Ci0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBDbGFzczw/PltdIGdldEluamVjdGVkQ2xhc3NlcygpIHsKLSAgICAgICAgICAgICAgICAvLyBjbGFzc2VzIHRvIGluamVjdCBpbiB0aGUgZmluYWwgSkFSCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDbGFzczw/PlswXTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgU3RyaW5nW10gZ2V0RGVsZWdhdGVNZXRob2RzKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nWzBdOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBTdHJpbmdbXSBnZXREZWxlZ2F0ZUNsYXNzTmF0aXZlcygpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1swXTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgU3RyaW5nW10gZ2V0T3ZlcnJpZGRlbk1ldGhvZHMoKSB7Ci0gICAgICAgICAgICAgICAgLy8gbWV0aG9kcyB0byBmb3JjZSBvdmVycmlkZQotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nWzBdOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRSZW5hbWVkQ2xhc3NlcygpIHsKLSAgICAgICAgICAgICAgICAvLyBjbGFzc2VzIHRvIHJlbmFtZSAoc28gdGhhdCB3ZSBjYW4gcmVwbGFjZSB0aGVtKQotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nW10gewotICAgICAgICAgICAgICAgICAgICAgICAgIm1vY2tfYW5kcm9pZC52aWV3LlZpZXciLCAibW9ja19hbmRyb2lkLnZpZXcuX09yaWdpbmFsX1ZpZXciLAotICAgICAgICAgICAgICAgICAgICAgICAgIm5vdC5hbi5hY3R1YWwuQ2xhc3NOYW1lIiwgImFub3Rlci5mYWtlLk5ld0NsYXNzTmFtZSIsCi0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgU3RyaW5nW10gZ2V0SmF2YVBrZ0NsYXNzZXMoKSB7Ci0gICAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nWzBdOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBTdHJpbmdbXSBnZXREZWxldGVSZXR1cm5zKCkgewotICAgICAgICAgICAgICAgICAvLyBtZXRob2RzIGRlbGV0ZWQgZnJvbSB0aGVpciByZXR1cm4gdHlwZS4KLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1swXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgICAgICBBc21HZW5lcmF0b3IgYWdlbiA9IG5ldyBBc21HZW5lcmF0b3IobUxvZywgbU9zRGVzdEphciwgY2kpOwotCi0gICAgICAgIEFzbUFuYWx5emVyIGFhID0gbmV3IEFzbUFuYWx5emVyKG1Mb2csIG1Pc0phclBhdGgsIGFnZW4sCi0gICAgICAgICAgICAgICAgbnVsbCwgICAgICAgICAgICAgICAgIC8vIGRlcml2ZWQgZnJvbQotICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICAgICAgICAvLyBpbmNsdWRlIGNsYXNzZXMKLSAgICAgICAgICAgICAgICAgICAgIioqIgotICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgbmV3IEhhc2hTZXQ8U3RyaW5nPigwKSAvKiBleGNsdWRlZCBjbGFzc2VzICovKTsKLSAgICAgICAgYWEuYW5hbHl6ZSgpOwotICAgICAgICBhZ2VuLmdlbmVyYXRlKCk7Ci0KLSAgICAgICAgU2V0PFN0cmluZz4gbm90UmVuYW1lZCA9IGFnZW4uZ2V0Q2xhc3Nlc05vdFJlbmFtZWQoKTsKLSAgICAgICAgYXNzZXJ0QXJyYXlFcXVhbHMobmV3IFN0cmluZ1tdIHsgIm5vdC9hbi9hY3R1YWwvQ2xhc3NOYW1lIiB9LCBub3RSZW5hbWVkLnRvQXJyYXkoKSk7Ci0KLSAgICB9Ci0KLSAgICBAVGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RDbGFzc1JlZmFjdG9yaW5nKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBMb2dBYm9ydEV4Y2VwdGlvbiB7Ci0gICAgICAgIElDcmVhdGVJbmZvIGNpID0gbmV3IElDcmVhdGVJbmZvKCkgewotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgQ2xhc3M8Pz5bXSBnZXRJbmplY3RlZENsYXNzZXMoKSB7Ci0gICAgICAgICAgICAgICAgLy8gY2xhc3NlcyB0byBpbmplY3QgaW4gdGhlIGZpbmFsIEpBUgotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ2xhc3M8Pz5bXSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlLmRhdGFjbGFzcy5KYXZhQ2xhc3MuY2xhc3MKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBTdHJpbmdbXSBnZXREZWxlZ2F0ZU1ldGhvZHMoKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdbMF07Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIFN0cmluZ1tdIGdldERlbGVnYXRlQ2xhc3NOYXRpdmVzKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nWzBdOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRPdmVycmlkZGVuTWV0aG9kcygpIHsKLSAgICAgICAgICAgICAgICAvLyBtZXRob2RzIHRvIGZvcmNlIG92ZXJyaWRlCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdbMF07Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIFN0cmluZ1tdIGdldFJlbmFtZWRDbGFzc2VzKCkgewotICAgICAgICAgICAgICAgIC8vIGNsYXNzZXMgdG8gcmVuYW1lIChzbyB0aGF0IHdlIGNhbiByZXBsYWNlIHRoZW0pCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdbMF07Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgcHVibGljIFN0cmluZ1tdIGdldEphdmFQa2dDbGFzc2VzKCkgewotICAgICAgICAgICAgIC8vIGNsYXNzZXMgdG8gcmVmYWN0b3IgKHNvIHRoYXQgd2UgY2FuIHJlcGxhY2UgdGhlbSkKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1tdIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICJqYXZhLmxhbmcuSmF2YUNsYXNzIiwgImNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGUuZGF0YWNsYXNzLkphdmFDbGFzcyIsCi0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICBwdWJsaWMgU3RyaW5nW10gZ2V0RGVsZXRlUmV0dXJucygpIHsKLSAgICAgICAgICAgICAgICAgLy8gbWV0aG9kcyBkZWxldGVkIGZyb20gdGhlaXIgcmV0dXJuIHR5cGUuCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdbMF07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0KLSAgICAgICAgQXNtR2VuZXJhdG9yIGFnZW4gPSBuZXcgQXNtR2VuZXJhdG9yKG1Mb2csIG1Pc0Rlc3RKYXIsIGNpKTsKLQotICAgICAgICBBc21BbmFseXplciBhYSA9IG5ldyBBc21BbmFseXplcihtTG9nLCBtT3NKYXJQYXRoLCBhZ2VuLAotICAgICAgICAgICAgICAgIG51bGwsICAgICAgICAgICAgICAgICAvLyBkZXJpdmVkIGZyb20KLSAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAgICAgICAgLy8gaW5jbHVkZSBjbGFzc2VzCi0gICAgICAgICAgICAgICAgICAgICIqKiIKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIG5ldyBIYXNoU2V0PFN0cmluZz4oMSkpOwotICAgICAgICBhYS5hbmFseXplKCk7Ci0gICAgICAgIGFnZW4uZ2VuZXJhdGUoKTsKLSAgICAgICAgTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IG91dHB1dCA9IHBhcnNlWmlwKG1Pc0Rlc3RKYXIpOwotICAgICAgICBib29sZWFuIGluamVjdGVkQ2xhc3NGb3VuZCA9IGZhbHNlOwotICAgICAgICBmb3IgKENsYXNzUmVhZGVyIGNyOiBvdXRwdXQudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIFRlc3RDbGFzc1Zpc2l0b3IgY3YgPSBuZXcgVGVzdENsYXNzVmlzaXRvcigpOwotICAgICAgICAgICAgY3IuYWNjZXB0KGN2LCAwKTsKLSAgICAgICAgICAgIGluamVjdGVkQ2xhc3NGb3VuZCB8PSBjdi5tSW5qZWN0ZWRDbGFzc0ZvdW5kOwotICAgICAgICB9Ci0gICAgICAgIGFzc2VydFRydWUoaW5qZWN0ZWRDbGFzc0ZvdW5kKTsKLSAgICB9Ci0KLSAgICBwcml2YXRlIE1hcDxTdHJpbmcsQ2xhc3NSZWFkZXI+IHBhcnNlWmlwKFN0cmluZyBqYXJQYXRoKSB0aHJvd3MgSU9FeGNlcHRpb24gewotICAgICAgICBUcmVlTWFwPFN0cmluZywgQ2xhc3NSZWFkZXI+IGNsYXNzZXMgPSBuZXcgVHJlZU1hcDxTdHJpbmcsIENsYXNzUmVhZGVyPigpOwotCi0gICAgICAgICAgICBaaXBGaWxlIHppcCA9IG5ldyBaaXBGaWxlKGphclBhdGgpOwotICAgICAgICAgICAgRW51bWVyYXRpb248PyBleHRlbmRzIFppcEVudHJ5PiBlbnRyaWVzID0gemlwLmVudHJpZXMoKTsKLSAgICAgICAgICAgIFppcEVudHJ5IGVudHJ5OwotICAgICAgICAgICAgd2hpbGUgKGVudHJpZXMuaGFzTW9yZUVsZW1lbnRzKCkpIHsKLSAgICAgICAgICAgICAgICBlbnRyeSA9IGVudHJpZXMubmV4dEVsZW1lbnQoKTsKLSAgICAgICAgICAgICAgICBpZiAoZW50cnkuZ2V0TmFtZSgpLmVuZHNXaXRoKCIuY2xhc3MiKSkgewotICAgICAgICAgICAgICAgICAgICBDbGFzc1JlYWRlciBjciA9IG5ldyBDbGFzc1JlYWRlcih6aXAuZ2V0SW5wdXRTdHJlYW0oZW50cnkpKTsKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNsYXNzTmFtZSA9IGNsYXNzUmVhZGVyVG9DbGFzc05hbWUoY3IpOwotICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLnB1dChjbGFzc05hbWUsIGNyKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGNsYXNzZXM7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBTdHJpbmcgY2xhc3NSZWFkZXJUb0NsYXNzTmFtZShDbGFzc1JlYWRlciBjbGFzc1JlYWRlcikgewotICAgICAgICBpZiAoY2xhc3NSZWFkZXIgPT0gbnVsbCkgewotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXR1cm4gY2xhc3NSZWFkZXIuZ2V0Q2xhc3NOYW1lKCkucmVwbGFjZSgnLycsICcuJyk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBwcml2YXRlIGNsYXNzIFRlc3RDbGFzc1Zpc2l0b3IgZXh0ZW5kcyBDbGFzc1Zpc2l0b3IgewotCi0gICAgICAgIGJvb2xlYW4gbUluamVjdGVkQ2xhc3NGb3VuZCA9IGZhbHNlOwotCi0gICAgICAgIFRlc3RDbGFzc1Zpc2l0b3IoKSB7Ci0gICAgICAgICAgICBzdXBlcihPcGNvZGVzLkFTTTQpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0KGludCB2ZXJzaW9uLCBpbnQgYWNjZXNzLCBTdHJpbmcgbmFtZSwgU3RyaW5nIHNpZ25hdHVyZSwKLSAgICAgICAgICAgICAgICBTdHJpbmcgc3VwZXJOYW1lLCBTdHJpbmdbXSBpbnRlcmZhY2VzKSB7Ci0gICAgICAgICAgICBhc3NlcnRUcnVlKCFnZXRCYXNlKG5hbWUpLmVxdWFscyhKQVZBX0NMQVNTX05BTUUpKTsKLSAgICAgICAgICAgIGlmIChuYW1lLmVxdWFscygiY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9kYXRhY2xhc3MvSmF2YUNsYXNzIikpIHsKLSAgICAgICAgICAgICAgICBtSW5qZWN0ZWRDbGFzc0ZvdW5kID0gdHJ1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN1cGVyLnZpc2l0KHZlcnNpb24sIGFjY2VzcywgbmFtZSwgc2lnbmF0dXJlLCBzdXBlck5hbWUsIGludGVyZmFjZXMpOwotICAgICAgICB9Ci0KLSAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgIHB1YmxpYyBGaWVsZFZpc2l0b3IgdmlzaXRGaWVsZChpbnQgYWNjZXNzLCBTdHJpbmcgbmFtZSwgU3RyaW5nIGRlc2MsCi0gICAgICAgICAgICAgICAgU3RyaW5nIHNpZ25hdHVyZSwgT2JqZWN0IHZhbHVlKSB7Ci0gICAgICAgICAgICBhc3NlcnRUcnVlKHRlc3RUeXBlKFR5cGUuZ2V0VHlwZShkZXNjKSkpOwotICAgICAgICAgICAgcmV0dXJuIHN1cGVyLnZpc2l0RmllbGQoYWNjZXNzLCBuYW1lLCBkZXNjLCBzaWduYXR1cmUsIHZhbHVlKTsKLSAgICAgICAgfQotCi0gICAgICAgIEBTdXBwcmVzc1dhcm5pbmdzKCJoaWRpbmciKQotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIE1ldGhvZFZpc2l0b3IgdmlzaXRNZXRob2QoaW50IGFjY2VzcywgU3RyaW5nIG5hbWUsIFN0cmluZyBkZXNjLAotICAgICAgICAgICAgICAgIFN0cmluZyBzaWduYXR1cmUsIFN0cmluZ1tdIGV4Y2VwdGlvbnMpIHsKLSAgICAgICAgICAgIE1ldGhvZFZpc2l0b3IgbXYgPSBzdXBlci52aXNpdE1ldGhvZChhY2Nlc3MsIG5hbWUsIGRlc2MsIHNpZ25hdHVyZSwgZXhjZXB0aW9ucyk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IE1ldGhvZFZpc2l0b3IoT3Bjb2Rlcy5BU000LCBtdikgewotCi0gICAgICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRGaWVsZEluc24oaW50IG9wY29kZSwgU3RyaW5nIG93bmVyLCBTdHJpbmcgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydFRydWUoIWdldEJhc2Uob3duZXIpLmVxdWFscyhKQVZBX0NMQVNTX05BTUUpKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0VHJ1ZSh0ZXN0VHlwZShUeXBlLmdldFR5cGUoZGVzYykpKTsKLSAgICAgICAgICAgICAgICAgICAgc3VwZXIudmlzaXRGaWVsZEluc24ob3Bjb2RlLCBvd25lciwgbmFtZSwgZGVzYyk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRMZGNJbnNuKE9iamVjdCBjc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNzdCBpbnN0YW5jZW9mIFR5cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydFRydWUodGVzdFR5cGUoKFR5cGUpY3N0KSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgc3VwZXIudmlzaXRMZGNJbnNuKGNzdCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgQE92ZXJyaWRlCi0gICAgICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXRUeXBlSW5zbihpbnQgb3Bjb2RlLCBTdHJpbmcgdHlwZSkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnRUcnVlKCFnZXRCYXNlKHR5cGUpLmVxdWFscyhKQVZBX0NMQVNTX05BTUUpKTsKLSAgICAgICAgICAgICAgICAgICAgc3VwZXIudmlzaXRUeXBlSW5zbihvcGNvZGUsIHR5cGUpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZpc2l0TWV0aG9kSW5zbihpbnQgb3Bjb2RlLCBTdHJpbmcgb3duZXIsIFN0cmluZyBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlc2MpIHsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0VHJ1ZSghZ2V0QmFzZShvd25lcikuZXF1YWxzKEpBVkFfQ0xBU1NfTkFNRSkpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRUcnVlKHRlc3RUeXBlKFR5cGUuZ2V0VHlwZShkZXNjKSkpOwotICAgICAgICAgICAgICAgICAgICBzdXBlci52aXNpdE1ldGhvZEluc24ob3Bjb2RlLCBvd25lciwgbmFtZSwgZGVzYyk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB9OwotICAgICAgICB9Ci0KLSAgICAgICAgcHJpdmF0ZSBib29sZWFuIHRlc3RUeXBlKFR5cGUgdHlwZSkgewotICAgICAgICAgICAgaW50IHNvcnQgPSB0eXBlLmdldFNvcnQoKTsKLSAgICAgICAgICAgIGlmIChzb3J0ID09IFR5cGUuT0JKRUNUKSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0VHJ1ZSghZ2V0QmFzZSh0eXBlLmdldEludGVybmFsTmFtZSgpKS5lcXVhbHMoSkFWQV9DTEFTU19OQU1FKSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHNvcnQgPT0gVHlwZS5BUlJBWSkgewotICAgICAgICAgICAgICAgIGFzc2VydFRydWUoIWdldEJhc2UodHlwZS5nZXRFbGVtZW50VHlwZSgpLmdldEludGVybmFsTmFtZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgLmVxdWFscyhKQVZBX0NMQVNTX05BTUUpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoc29ydCA9PSBUeXBlLk1FVEhPRCkgewotICAgICAgICAgICAgICAgIGJvb2xlYW4gciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgZm9yIChUeXBlIHQgOiB0eXBlLmdldEFyZ3VtZW50VHlwZXMoKSkgewotICAgICAgICAgICAgICAgICAgICByICY9IHRlc3RUeXBlKHQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gciAmIHRlc3RUeXBlKHR5cGUuZ2V0UmV0dXJuVHlwZSgpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0QmFzZShTdHJpbmcgY2xhc3NOYW1lKSB7Ci0gICAgICAgICAgICBpZiAoY2xhc3NOYW1lID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGludCBwb3MgPSBjbGFzc05hbWUuaW5kZXhPZignJCcpOwotICAgICAgICAgICAgaWYgKHBvcyA+IDApIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gY2xhc3NOYW1lLnN1YnN0cmluZygwLCBwb3MpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGNsYXNzTmFtZTsKLSAgICAgICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9DbGFzc0hhc05hdGl2ZVZpc2l0b3JUZXN0LmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvQ2xhc3NIYXNOYXRpdmVWaXNpdG9yVGVzdC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTM1YzQwLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9DbGFzc0hhc05hdGl2ZVZpc2l0b3JUZXN0LmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZTsKLQotaW1wb3J0IHN0YXRpYyBvcmcuanVuaXQuQXNzZXJ0Lio7Ci0KLWltcG9ydCBvcmcuanVuaXQuVGVzdDsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1JlYWRlcjsKLQotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKLQotCi0vKioKLSAqIFRlc3RzIHtAbGluayBDbGFzc0hhc05hdGl2ZVZpc2l0b3J9LgotICovCi1wdWJsaWMgY2xhc3MgQ2xhc3NIYXNOYXRpdmVWaXNpdG9yVGVzdCB7Ci0KLSAgICBAVGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RIYXNOYXRpdmUoKSB0aHJvd3MgSU9FeGNlcHRpb24gewotICAgICAgICBNb2NrQ2xhc3NIYXNOYXRpdmVWaXNpdG9yIGN2ID0gbmV3IE1vY2tDbGFzc0hhc05hdGl2ZVZpc2l0b3IoKTsKLSAgICAgICAgU3RyaW5nIGNsYXNzTmFtZSA9Ci0gICAgICAgICAgICAgICAgdGhpcy5nZXRDbGFzcygpLmdldENhbm9uaWNhbE5hbWUoKSArICIkIiArIENsYXNzV2l0aE5hdGl2ZS5jbGFzcy5nZXRTaW1wbGVOYW1lKCk7Ci0gICAgICAgIENsYXNzUmVhZGVyIGNyID0gbmV3IENsYXNzUmVhZGVyKGNsYXNzTmFtZSk7Ci0KLSAgICAgICAgY3IuYWNjZXB0KGN2LCAwIC8qIGZsYWdzICovKTsKLSAgICAgICAgYXNzZXJ0QXJyYXlFcXVhbHMobmV3IFN0cmluZ1tdIHsgIm5hdGl2ZV9tZXRob2QiIH0sIGN2LmdldE1ldGhvZHNGb3VuZCgpKTsKLSAgICAgICAgYXNzZXJ0VHJ1ZShjdi5oYXNOYXRpdmVNZXRob2RzKCkpOwotICAgIH0KLQotICAgIEBUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdEhhc05vTmF0aXZlKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKLSAgICAgICAgTW9ja0NsYXNzSGFzTmF0aXZlVmlzaXRvciBjdiA9IG5ldyBNb2NrQ2xhc3NIYXNOYXRpdmVWaXNpdG9yKCk7Ci0gICAgICAgIFN0cmluZyBjbGFzc05hbWUgPQotICAgICAgICAgICAgdGhpcy5nZXRDbGFzcygpLmdldENhbm9uaWNhbE5hbWUoKSArICIkIiArIENsYXNzV2l0aG91dE5hdGl2ZS5jbGFzcy5nZXRTaW1wbGVOYW1lKCk7Ci0gICAgICAgIENsYXNzUmVhZGVyIGNyID0gbmV3IENsYXNzUmVhZGVyKGNsYXNzTmFtZSk7Ci0KLSAgICAgICAgY3IuYWNjZXB0KGN2LCAwIC8qIGZsYWdzICovKTsKLSAgICAgICAgYXNzZXJ0QXJyYXlFcXVhbHMobmV3IFN0cmluZ1swXSwgY3YuZ2V0TWV0aG9kc0ZvdW5kKCkpOwotICAgICAgICBhc3NlcnRGYWxzZShjdi5oYXNOYXRpdmVNZXRob2RzKCkpOwotICAgIH0KLQotICAgIC8vLS0tLS0tLQotCi0gICAgLyoqCi0gICAgICogT3ZlcnJpZGVzIHtAbGluayBDbGFzc0hhc05hdGl2ZVZpc2l0b3J9IHRvIGNvbGxlYyB0aGUgbmFtZSBvZiB0aGUgbmF0aXZlIG1ldGhvZHMgZm91bmQuCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTW9ja0NsYXNzSGFzTmF0aXZlVmlzaXRvciBleHRlbmRzIENsYXNzSGFzTmF0aXZlVmlzaXRvciB7Ci0gICAgICAgIHByaXZhdGUgQXJyYXlMaXN0PFN0cmluZz4gbU1ldGhvZHNGb3VuZCA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOwotCi0gICAgICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRNZXRob2RzRm91bmQoKSB7Ci0gICAgICAgICAgICByZXR1cm4gbU1ldGhvZHNGb3VuZC50b0FycmF5KG5ldyBTdHJpbmdbbU1ldGhvZHNGb3VuZC5zaXplKCldKTsKLSAgICAgICAgfQotCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwcm90ZWN0ZWQgdm9pZCBzZXRIYXNOYXRpdmVNZXRob2RzKGJvb2xlYW4gaGFzTmF0aXZlTWV0aG9kcywgU3RyaW5nIG1ldGhvZE5hbWUpIHsKLSAgICAgICAgICAgIGlmIChoYXNOYXRpdmVNZXRob2RzKSB7Ci0gICAgICAgICAgICAgICAgbU1ldGhvZHNGb3VuZC5hZGQobWV0aG9kTmFtZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdXBlci5zZXRIYXNOYXRpdmVNZXRob2RzKGhhc05hdGl2ZU1ldGhvZHMsIG1ldGhvZE5hbWUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogRHVtbXkgdGVzdCBjbGFzcyB3aXRoIGEgbmF0aXZlIG1ldGhvZC4KLSAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIGNsYXNzIENsYXNzV2l0aE5hdGl2ZSB7Ci0gICAgICAgIHB1YmxpYyBDbGFzc1dpdGhOYXRpdmUoKSB7Ci0gICAgICAgIH0KLQotICAgICAgICBwdWJsaWMgdm9pZCBjYWxsVGhlTmF0aXZlTWV0aG9kKCkgewotICAgICAgICAgICAgbmF0aXZlX21ldGhvZCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgcHJpdmF0ZSBuYXRpdmUgdm9pZCBuYXRpdmVfbWV0aG9kKCk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogRHVtbXkgdGVzdCBjbGFzcyB3aXRoIG5vIG5hdGl2ZSBtZXRob2QuCi0gICAgICovCi0gICAgcHVibGljIHN0YXRpYyBjbGFzcyBDbGFzc1dpdGhvdXROYXRpdmUgewotICAgICAgICBwdWJsaWMgQ2xhc3NXaXRob3V0TmF0aXZlKCkgewotICAgICAgICB9Ci0KLSAgICAgICAgcHVibGljIHZvaWQgc29tZU1ldGhvZCgpIHsKLSAgICAgICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9EZWxlZ2F0ZUNsYXNzQWRhcHRlclRlc3QuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9EZWxlZ2F0ZUNsYXNzQWRhcHRlclRlc3QuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmUxMjBjZS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvRGVsZWdhdGVDbGFzc0FkYXB0ZXJUZXN0LmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw0NjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZTsKLQotCi1pbXBvcnQgc3RhdGljIG9yZy5qdW5pdC5Bc3NlcnQuYXNzZXJ0RXF1YWxzOwotaW1wb3J0IHN0YXRpYyBvcmcuanVuaXQuQXNzZXJ0LmFzc2VydEZhbHNlOwotaW1wb3J0IHN0YXRpYyBvcmcuanVuaXQuQXNzZXJ0LmFzc2VydE5vdE51bGw7Ci1pbXBvcnQgc3RhdGljIG9yZy5qdW5pdC5Bc3NlcnQuYXNzZXJ0U2FtZTsKLWltcG9ydCBzdGF0aWMgb3JnLmp1bml0LkFzc2VydC5hc3NlcnRUcnVlOwotaW1wb3J0IHN0YXRpYyBvcmcuanVuaXQuQXNzZXJ0LmZhaWw7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlLmRhdGFjbGFzcy5DbGFzc1dpdGhOYXRpdmU7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZS5kYXRhY2xhc3MuT3V0ZXJDbGFzczsKLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlLmRhdGFjbGFzcy5PdXRlckNsYXNzLklubmVyQ2xhc3M7Ci0KLWltcG9ydCBvcmcuanVuaXQuQmVmb3JlOwotaW1wb3J0IG9yZy5qdW5pdC5UZXN0OwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkNsYXNzUmVhZGVyOwotaW1wb3J0IG9yZy5vYmplY3R3ZWIuYXNtLkNsYXNzVmlzaXRvcjsKLWltcG9ydCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1dyaXRlcjsKLQotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKLWltcG9ydCBqYXZhLmlvLlN0cmluZ1dyaXRlcjsKLWltcG9ydCBqYXZhLmxhbmcuYW5ub3RhdGlvbi5Bbm5vdGF0aW9uOwotaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0LkNvbnN0cnVjdG9yOwotaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247Ci1pbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kOwotaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1vZGlmaWVyOwotaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOwotaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OwotaW1wb3J0IGphdmEudXRpbC5NYXA7Ci1pbXBvcnQgamF2YS51dGlsLk1hcC5FbnRyeTsKLWltcG9ydCBqYXZhLnV0aWwuU2V0OwotCi1wdWJsaWMgY2xhc3MgRGVsZWdhdGVDbGFzc0FkYXB0ZXJUZXN0IHsKLQotICAgIHByaXZhdGUgTW9ja0xvZyBtTG9nOwotCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5BVElWRV9DTEFTU19OQU1FID0gQ2xhc3NXaXRoTmF0aXZlLmNsYXNzLmdldENhbm9uaWNhbE5hbWUoKTsKLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1VURVJfQ0xBU1NfTkFNRSA9IE91dGVyQ2xhc3MuY2xhc3MuZ2V0Q2Fub25pY2FsTmFtZSgpOwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTk5FUl9DTEFTU19OQU1FID0gT3V0ZXJDbGFzcy5jbGFzcy5nZXRDYW5vbmljYWxOYW1lKCkgKyAiJCIgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5uZXJDbGFzcy5jbGFzcy5nZXRTaW1wbGVOYW1lKCk7Ci0KLSAgICBAQmVmb3JlCi0gICAgcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgbUxvZyA9IG5ldyBNb2NrTG9nKCk7Ci0gICAgICAgIG1Mb2cuc2V0VmVyYm9zZSh0cnVlKTsgLy8gY2FwdHVyZSBkZWJ1ZyBlcnJvciB0b28KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBUZXN0cyB0aGF0IGEgY2xhc3Mgbm90IGJlaW5nIG1vZGlmaWVkIHN0aWxsIHdvcmtzLgotICAgICAqLwotICAgIEBTdXBwcmVzc1dhcm5pbmdzKCJ1bmNoZWNrZWQiKQotICAgIEBUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdE5vT3AoKSB0aHJvd3MgVGhyb3dhYmxlIHsKLSAgICAgICAgLy8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBjbGFzcyB0aGF0IHdpbGwgYmUgbW9kaWZpZWQKLSAgICAgICAgLy8gKGxvYWQgdGhlIGNsYXNzIGluIGEgZGlzdGluY3QgY2xhc3MgbG9hZGVyIHNvIHRoYXQgd2UgY2FuIHRyYXNoIGl0cyBkZWZpbml0aW9uIGxhdGVyKQotICAgICAgICBDbGFzc0xvYWRlciBjbDEgPSBuZXcgQ2xhc3NMb2FkZXIodGhpcy5nZXRDbGFzcygpLmdldENsYXNzTG9hZGVyKCkpIHsgfTsKLSAgICAgICAgQ2xhc3M8Q2xhc3NXaXRoTmF0aXZlPiBjbGF6ejEgPSAoQ2xhc3M8Q2xhc3NXaXRoTmF0aXZlPikgY2wxLmxvYWRDbGFzcyhOQVRJVkVfQ0xBU1NfTkFNRSk7Ci0gICAgICAgIENsYXNzV2l0aE5hdGl2ZSBpbnN0YW5jZTEgPSBjbGF6ejEubmV3SW5zdGFuY2UoKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKDQyLCBpbnN0YW5jZTEuYWRkKDIwLCAyMikpOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgaW5zdGFuY2UxLmNhbGxOYXRpdmVJbnN0YW5jZSgxMCwgMy4xNDE1LCBuZXcgT2JqZWN0WzBdICk7Ci0gICAgICAgICAgICBmYWlsKCJUZXN0IHNob3VsZCBoYXZlIGZhaWxlZCB0byBpbnZva2UgY2FsbFRoZU5hdGl2ZU1ldGhvZCBbMV0iKTsKLSAgICAgICAgfSBjYXRjaCAoVW5zYXRpc2ZpZWRMaW5rRXJyb3IgZSkgewotICAgICAgICAgICAgLy8gVGhpcyBpcyBleHBlY3RlZCB0byBmYWlsIHNpbmNlIHRoZSBuYXRpdmUgbWV0aG9kIGlzIG5vdCBpbXBsZW1lbnRlZC4KLSAgICAgICAgfQotCi0gICAgICAgIC8vIE5vdyBwcm9jZXNzIGl0IGJ1dCB0ZWxsIHRoZSBkZWxlZ2F0ZSB0byBub3QgbW9kaWZ5IGFueSBtZXRob2QKLSAgICAgICAgQ2xhc3NXcml0ZXIgY3cgPSBuZXcgQ2xhc3NXcml0ZXIoMCAvKmZsYWdzKi8pOwotCi0gICAgICAgIEhhc2hTZXQ8U3RyaW5nPiBkZWxlZ2F0ZU1ldGhvZHMgPSBuZXcgSGFzaFNldDxTdHJpbmc+KCk7Ci0gICAgICAgIFN0cmluZyBpbnRlcm5hbENsYXNzTmFtZSA9IE5BVElWRV9DTEFTU19OQU1FLnJlcGxhY2UoJy4nLCAnLycpOwotICAgICAgICBEZWxlZ2F0ZUNsYXNzQWRhcHRlciBjdiA9IG5ldyBEZWxlZ2F0ZUNsYXNzQWRhcHRlcigKLSAgICAgICAgICAgICAgICBtTG9nLCBjdywgaW50ZXJuYWxDbGFzc05hbWUsIGRlbGVnYXRlTWV0aG9kcyk7Ci0KLSAgICAgICAgQ2xhc3NSZWFkZXIgY3IgPSBuZXcgQ2xhc3NSZWFkZXIoTkFUSVZFX0NMQVNTX05BTUUpOwotICAgICAgICBjci5hY2NlcHQoY3YsIDAgLyogZmxhZ3MgKi8pOwotCi0gICAgICAgIC8vIExvYWQgdGhlIGdlbmVyYXRlZCBjbGFzcyBpbiBhIGRpZmZlcmVudCBjbGFzcyBsb2FkZXIgYW5kIHRyeSBpdCBhZ2FpbgotCi0gICAgICAgIENsYXNzTG9hZGVyMiBjbDIgPSBudWxsOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgY2wyID0gbmV3IENsYXNzTG9hZGVyMigpIHsKLSAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCB0ZXN0TW9kaWZpZWRJbnN0YW5jZSgpIHRocm93cyBFeGNlcHRpb24gewotICAgICAgICAgICAgICAgICAgICBDbGFzczw/PiBjbGF6ejIgPSBsb2FkQ2xhc3MoTkFUSVZFX0NMQVNTX05BTUUpOwotICAgICAgICAgICAgICAgICAgICBPYmplY3QgaTIgPSBjbGF6ejIubmV3SW5zdGFuY2UoKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0Tm90TnVsbChpMik7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscyg0MiwgY2FsbEFkZChpMiwgMjAsIDIyKSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxDYWxsTmF0aXZlSW5zdGFuY2UoaTIsIDEwLCAzLjE0MTUsIG5ldyBPYmplY3RbMF0pOwotICAgICAgICAgICAgICAgICAgICAgICAgZmFpbCgiVGVzdCBzaG91bGQgaGF2ZSBmYWlsZWQgdG8gaW52b2tlIGNhbGxUaGVOYXRpdmVNZXRob2QgWzJdIik7Ci0gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBleHBlY3RlZCB0byBmYWlsIHNpbmNlIHRoZSBuYXRpdmUgbWV0aG9kIGhhcyBOT1QgYmVlbgotICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3ZlcnJpZGRlbiBoZXJlLgotICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKFVuc2F0aXNmaWVkTGlua0Vycm9yLmNsYXNzLCBlLmdldENhdXNlKCkuZ2V0Q2xhc3MoKSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBuYXRpdmUgbWV0aG9kIGRvZXMgTk9UIGhhdmUgdGhlIG5ldyBhbm5vdGF0aW9uCi0gICAgICAgICAgICAgICAgICAgIE1ldGhvZFtdIG0gPSBjbGF6ejIuZ2V0RGVjbGFyZWRNZXRob2RzKCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygibmF0aXZlX2luc3RhbmNlIiwgbVsyXS5nZXROYW1lKCkpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRUcnVlKE1vZGlmaWVyLmlzTmF0aXZlKG1bMl0uZ2V0TW9kaWZpZXJzKCkpKTsKLSAgICAgICAgICAgICAgICAgICAgQW5ub3RhdGlvbltdIGEgPSBtWzJdLmdldEFubm90YXRpb25zKCk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygwLCBhLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIGNsMi5hZGQoTkFUSVZFX0NMQVNTX05BTUUsIGN3KTsKLSAgICAgICAgICAgIGNsMi50ZXN0TW9kaWZpZWRJbnN0YW5jZSgpOwotICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgewotICAgICAgICAgICAgdGhyb3cgZHVtcEdlbmVyYXRlZENsYXNzKHQsIGNsMik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiB7QGxpbmsgRGVsZWdhdGVNZXRob2RBZGFwdGVyMn0gZG9lcyBub3Qgc3VwcG9ydCBvdmVycmlkaW5nIGNvbnN0cnVjdG9ycyB5ZXQsCi0gICAgICogc28gdGhpcyBzaG91bGQgZmFpbCB3aXRoIGFuIHtAbGluayBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbn0uCi0gICAgICoKLSAgICAgKiBBbHRob3VnaCBub3QgdGVzdGVkIGhlcmUsIHRoZSBtZXNzYWdlIG9mIHRoZSBleGNlcHRpb24gc2hvdWxkIGNvbnRhaW4gdGhlCi0gICAgICogY29uc3RydWN0b3Igc2lnbmF0dXJlLgotICAgICAqLwotICAgIEBUZXN0KGV4cGVjdGVkPVVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLmNsYXNzKQotICAgIHB1YmxpYyB2b2lkIHRlc3RDb25zdHJ1Y3RvcnNOb3RTdXBwb3J0ZWQoKSB0aHJvd3MgSU9FeGNlcHRpb24gewotICAgICAgICBDbGFzc1dyaXRlciBjdyA9IG5ldyBDbGFzc1dyaXRlcigwIC8qZmxhZ3MqLyk7Ci0KLSAgICAgICAgU3RyaW5nIGludGVybmFsQ2xhc3NOYW1lID0gTkFUSVZFX0NMQVNTX05BTUUucmVwbGFjZSgnLicsICcvJyk7Ci0KLSAgICAgICAgSGFzaFNldDxTdHJpbmc+IGRlbGVnYXRlTWV0aG9kcyA9IG5ldyBIYXNoU2V0PFN0cmluZz4oKTsKLSAgICAgICAgZGVsZWdhdGVNZXRob2RzLmFkZCgiPGluaXQ+Iik7Ci0gICAgICAgIERlbGVnYXRlQ2xhc3NBZGFwdGVyIGN2ID0gbmV3IERlbGVnYXRlQ2xhc3NBZGFwdGVyKAotICAgICAgICAgICAgICAgIG1Mb2csIGN3LCBpbnRlcm5hbENsYXNzTmFtZSwgZGVsZWdhdGVNZXRob2RzKTsKLQotICAgICAgICBDbGFzc1JlYWRlciBjciA9IG5ldyBDbGFzc1JlYWRlcihOQVRJVkVfQ0xBU1NfTkFNRSk7Ci0gICAgICAgIGNyLmFjY2VwdChjdiwgMCAvKiBmbGFncyAqLyk7Ci0gICAgfQotCi0gICAgQFRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0RGVsZWdhdGVOYXRpdmUoKSB0aHJvd3MgVGhyb3dhYmxlIHsKLSAgICAgICAgQ2xhc3NXcml0ZXIgY3cgPSBuZXcgQ2xhc3NXcml0ZXIoMCAvKmZsYWdzKi8pOwotICAgICAgICBTdHJpbmcgaW50ZXJuYWxDbGFzc05hbWUgPSBOQVRJVkVfQ0xBU1NfTkFNRS5yZXBsYWNlKCcuJywgJy8nKTsKLQotICAgICAgICBIYXNoU2V0PFN0cmluZz4gZGVsZWdhdGVNZXRob2RzID0gbmV3IEhhc2hTZXQ8U3RyaW5nPigpOwotICAgICAgICBkZWxlZ2F0ZU1ldGhvZHMuYWRkKERlbGVnYXRlQ2xhc3NBZGFwdGVyLkFMTF9OQVRJVkVTKTsKLSAgICAgICAgRGVsZWdhdGVDbGFzc0FkYXB0ZXIgY3YgPSBuZXcgRGVsZWdhdGVDbGFzc0FkYXB0ZXIoCi0gICAgICAgICAgICAgICAgbUxvZywgY3csIGludGVybmFsQ2xhc3NOYW1lLCBkZWxlZ2F0ZU1ldGhvZHMpOwotCi0gICAgICAgIENsYXNzUmVhZGVyIGNyID0gbmV3IENsYXNzUmVhZGVyKE5BVElWRV9DTEFTU19OQU1FKTsKLSAgICAgICAgY3IuYWNjZXB0KGN2LCAwIC8qIGZsYWdzICovKTsKLQotICAgICAgICAvLyBMb2FkIHRoZSBnZW5lcmF0ZWQgY2xhc3MgaW4gYSBkaWZmZXJlbnQgY2xhc3MgbG9hZGVyIGFuZCB0cnkgaXQKLSAgICAgICAgQ2xhc3NMb2FkZXIyIGNsMiA9IG51bGw7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBjbDIgPSBuZXcgQ2xhc3NMb2FkZXIyKCkgewotICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHRlc3RNb2RpZmllZEluc3RhbmNlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgICAgICAgICAgICAgIENsYXNzPD8+IGNsYXp6MiA9IGxvYWRDbGFzcyhOQVRJVkVfQ0xBU1NfTkFNRSk7Ci0gICAgICAgICAgICAgICAgICAgIE9iamVjdCBpMiA9IGNsYXp6Mi5uZXdJbnN0YW5jZSgpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnROb3ROdWxsKGkyKTsKLQotICAgICAgICAgICAgICAgICAgICAvLyBVc2UgcmVmbGVjdGlvbiB0byBhY2Nlc3MgaW5uZXIgbWV0aG9kcwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoNDIsIGNhbGxBZGQoaTIsIDIwLCAyMikpOwotCi0gICAgICAgICAgICAgICAgICAgICBPYmplY3RbXSBvYmpSZXN1bHQgPSBuZXcgT2JqZWN0W10geyBudWxsIH07Ci0gICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gY2FsbENhbGxOYXRpdmVJbnN0YW5jZShpMiwgMTAsIDMuMTQxNSwgb2JqUmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygoaW50KSgxMCArIDMuMTQxNSksIHJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgICAgICBhc3NlcnRTYW1lKGkyLCBvYmpSZXN1bHRbMF0pOwotCi0gICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBuYXRpdmUgbWV0aG9kIG5vdyBoYXMgdGhlIG5ldyBhbm5vdGF0aW9uIGFuZCBpcyBub3QgbmF0aXZlCi0gICAgICAgICAgICAgICAgICAgICBNZXRob2RbXSBtID0gY2xhenoyLmdldERlY2xhcmVkTWV0aG9kcygpOwotICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJuYXRpdmVfaW5zdGFuY2UiLCBtWzJdLmdldE5hbWUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICBhc3NlcnRGYWxzZShNb2RpZmllci5pc05hdGl2ZShtWzJdLmdldE1vZGlmaWVycygpKSk7Ci0gICAgICAgICAgICAgICAgICAgICBBbm5vdGF0aW9uW10gYSA9IG1bMl0uZ2V0QW5ub3RhdGlvbnMoKTsKLSAgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygiTGF5b3V0bGliRGVsZWdhdGUiLCBhWzBdLmFubm90YXRpb25UeXBlKCkuZ2V0U2ltcGxlTmFtZSgpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9OwotICAgICAgICAgICAgY2wyLmFkZChOQVRJVkVfQ0xBU1NfTkFNRSwgY3cpOwotICAgICAgICAgICAgY2wyLnRlc3RNb2RpZmllZEluc3RhbmNlKCk7Ci0gICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7Ci0gICAgICAgICAgICB0aHJvdyBkdW1wR2VuZXJhdGVkQ2xhc3ModCwgY2wyKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdERlbGVnYXRlSW5uZXIoKSB0aHJvd3MgVGhyb3dhYmxlIHsKLSAgICAgICAgLy8gV2UnbGwgZGVsZWdhdGUgdGhlICJnZXQiIG1ldGhvZCBvZiBib3RoIHRoZSBpbm5lciBhbmQgb3V0ZXIgY2xhc3MuCi0gICAgICAgIEhhc2hTZXQ8U3RyaW5nPiBkZWxlZ2F0ZU1ldGhvZHMgPSBuZXcgSGFzaFNldDxTdHJpbmc+KCk7Ci0gICAgICAgIGRlbGVnYXRlTWV0aG9kcy5hZGQoImdldCIpOwotICAgICAgICBkZWxlZ2F0ZU1ldGhvZHMuYWRkKCJwcml2YXRlTWV0aG9kIik7Ci0KLSAgICAgICAgLy8gR2VuZXJhdGUgdGhlIGRlbGVnYXRlIGZvciB0aGUgb3V0ZXIgY2xhc3MuCi0gICAgICAgIENsYXNzV3JpdGVyIGN3T3V0ZXIgPSBuZXcgQ2xhc3NXcml0ZXIoMCAvKmZsYWdzKi8pOwotICAgICAgICBTdHJpbmcgb3V0ZXJDbGFzc05hbWUgPSBPVVRFUl9DTEFTU19OQU1FLnJlcGxhY2UoJy4nLCAnLycpOwotICAgICAgICBEZWxlZ2F0ZUNsYXNzQWRhcHRlciBjdk91dGVyID0gbmV3IERlbGVnYXRlQ2xhc3NBZGFwdGVyKAotICAgICAgICAgICAgICAgIG1Mb2csIGN3T3V0ZXIsIG91dGVyQ2xhc3NOYW1lLCBkZWxlZ2F0ZU1ldGhvZHMpOwotICAgICAgICBDbGFzc1JlYWRlciBjciA9IG5ldyBDbGFzc1JlYWRlcihPVVRFUl9DTEFTU19OQU1FKTsKLSAgICAgICAgY3IuYWNjZXB0KGN2T3V0ZXIsIDAgLyogZmxhZ3MgKi8pOwotCi0gICAgICAgIC8vIEdlbmVyYXRlIHRoZSBkZWxlZ2F0ZSBmb3IgdGhlIGlubmVyIGNsYXNzLgotICAgICAgICBDbGFzc1dyaXRlciBjd0lubmVyID0gbmV3IENsYXNzV3JpdGVyKDAgLypmbGFncyovKTsKLSAgICAgICAgU3RyaW5nIGlubmVyQ2xhc3NOYW1lID0gSU5ORVJfQ0xBU1NfTkFNRS5yZXBsYWNlKCcuJywgJy8nKTsKLSAgICAgICAgRGVsZWdhdGVDbGFzc0FkYXB0ZXIgY3ZJbm5lciA9IG5ldyBEZWxlZ2F0ZUNsYXNzQWRhcHRlcigKLSAgICAgICAgICAgICAgICBtTG9nLCBjd0lubmVyLCBpbm5lckNsYXNzTmFtZSwgZGVsZWdhdGVNZXRob2RzKTsKLSAgICAgICAgY3IgPSBuZXcgQ2xhc3NSZWFkZXIoSU5ORVJfQ0xBU1NfTkFNRSk7Ci0gICAgICAgIGNyLmFjY2VwdChjdklubmVyLCAwIC8qIGZsYWdzICovKTsKLQotICAgICAgICAvLyBMb2FkIHRoZSBnZW5lcmF0ZWQgY2xhc3NlcyBpbiBhIGRpZmZlcmVudCBjbGFzcyBsb2FkZXIgYW5kIHRyeSB0aGVtCi0gICAgICAgIENsYXNzTG9hZGVyMiBjbDIgPSBudWxsOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgY2wyID0gbmV3IENsYXNzTG9hZGVyMigpIHsKLSAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCB0ZXN0TW9kaWZpZWRJbnN0YW5jZSgpIHRocm93cyBFeGNlcHRpb24gewotCi0gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoZSBvdXRlciBjbGFzcwotICAgICAgICAgICAgICAgICAgICBDbGFzczw/PiBvdXRlckNsYXp6MiA9IGxvYWRDbGFzcyhPVVRFUl9DTEFTU19OQU1FKTsKLSAgICAgICAgICAgICAgICAgICAgT2JqZWN0IG8yID0gb3V0ZXJDbGF6ejIubmV3SW5zdGFuY2UoKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0Tm90TnVsbChvMik7Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG9yaWdpbmFsIE91dGVyLmdldCByZXR1cm5zIDErMTArMjAsCi0gICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGUgZGVsZWdhdGUgbWFrZXMgaXQgcmV0dXJuIDQrMTArMjAKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKDQrMTArMjAsIGNhbGxHZXQobzIsIDEwLCAyMCkpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoMSsxMCsyMCwgY2FsbEdldF9PcmlnaW5hbChvMiwgMTAsIDIwKSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG9yaWdpbmFsIE91dGVyIGhhcyBhIHByaXZhdGUgbWV0aG9kIHRoYXQgaXMKLSAgICAgICAgICAgICAgICAgICAgLy8gZGVsZWdhdGVkLiBXZSBzaG91bGQgYmUgYWJsZSB0byBjYWxsIGJvdGggdGhlIGRlbGVnYXRlCi0gICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgb3JpZ2luYWwgKHdoaWNoIGlzIG5vdyBwdWJsaWMpLgotICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIm91dGVyUHJpdmF0ZU1ldGhvZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsTWV0aG9kKG8yLCAicHJpdmF0ZU1ldGhvZF9PcmlnaW5hbCIsIGZhbHNlIC8qbWFrZVB1YmxpYyovKSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG9yaWdpbmFsIG1ldGhvZCBpcyBwcml2YXRlLCBzbyBieSBkZWZhdWx0IHdlIGNhbid0IGFjY2VzcyBpdAotICAgICAgICAgICAgICAgICAgICBib29sZWFuIGdvdElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsTWV0aG9kKG8yLCAicHJpdmF0ZU1ldGhvZCIsIGZhbHNlIC8qbWFrZVB1YmxpYyovKTsKLSAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydFRydWUoZ290SWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFRyeSBhZ2FpbiwgYnV0IG5vdyBtYWtpbmcgaXQgYWNjZXNzaWJsZQotICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIm91dGVyUHJpdmF0ZV9EZWxlZ2F0ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbE1ldGhvZChvMiwgInByaXZhdGVNZXRob2QiLCB0cnVlIC8qbWFrZVB1YmxpYyovKSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhlIGlubmVyIGNsYXNzLiBTaW5jZSBpdCdzIG5vdCBhIHN0YXRpYyBpbm5lciBjbGFzcywgd2UgbmVlZAotICAgICAgICAgICAgICAgICAgICAvLyB0byB1c2UgdGhlIGhpZGRlbiBjb25zdHJ1Y3RvciB0aGF0IHRha2VzIHRoZSBvdXRlciBjbGFzcyBhcyBmaXJzdCBwYXJhbWV0ZXIuCi0gICAgICAgICAgICAgICAgICAgIENsYXNzPD8+IGlubmVyQ2xhenoyID0gbG9hZENsYXNzKElOTkVSX0NMQVNTX05BTUUpOwotICAgICAgICAgICAgICAgICAgICBDb25zdHJ1Y3Rvcjw/PiBpbm5lckNvbnMgPSBpbm5lckNsYXp6Mi5nZXRDb25zdHJ1Y3RvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ2xhc3M8Pz5bXSB7IG91dGVyQ2xhenoyIH0pOwotICAgICAgICAgICAgICAgICAgICBPYmplY3QgaTIgPSBpbm5lckNvbnMubmV3SW5zdGFuY2UobmV3IE9iamVjdFtdIHsgbzIgfSk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydE5vdE51bGwoaTIpOwotCi0gICAgICAgICAgICAgICAgICAgIC8vIFRoZSBvcmlnaW5hbCBJbm5lci5nZXQgcmV0dXJucyAzKzEwKzIwLAotICAgICAgICAgICAgICAgICAgICAvLyBidXQgdGhlIGRlbGVnYXRlIG1ha2VzIGl0IHJldHVybiA2KzEwKzIwCi0gICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscyg2KzEwKzIwLCBjYWxsR2V0KGkyLCAxMCwgMjApKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKDMrMTArMjAsIGNhbGxHZXRfT3JpZ2luYWwoaTIsIDEwLCAyMCkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBjbDIuYWRkKE9VVEVSX0NMQVNTX05BTUUsIGN3T3V0ZXIudG9CeXRlQXJyYXkoKSk7Ci0gICAgICAgICAgICBjbDIuYWRkKElOTkVSX0NMQVNTX05BTUUsIGN3SW5uZXIudG9CeXRlQXJyYXkoKSk7Ci0gICAgICAgICAgICBjbDIudGVzdE1vZGlmaWVkSW5zdGFuY2UoKTsKLSAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKLSAgICAgICAgICAgIHRocm93IGR1bXBHZW5lcmF0ZWRDbGFzcyh0LCBjbDIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8tLS0tLS0tCi0KLSAgICAvKioKLSAgICAgKiBBIGNsYXNzIGxvYWRlciB0aGFuIGNhbiBkZWZpbmUgYW5kIGluc3RhbnRpYXRlIG91ciBtb2RpZmllZCBjbGFzc2VzLgotICAgICAqIDxwLz4KLSAgICAgKiBUaGUgdHJpY2sgaGVyZSBpcyB0aGF0IHRoaXMgY2xhc3MgbG9hZGVyIHdpbGwgdGVzdCBvdXIgPGVtPm1vZGlmaWVkPC9lbT4gdmVyc2lvbgotICAgICAqIG9mIHRoZSBjbGFzc2VzLCB0aGUgb25lIHdpdGggdGhlIGRlbGVnYXRlIGNhbGxzLgotICAgICAqIDxwLz4KLSAgICAgKiBUcnlpbmcgdG8gZG8gc28gaW4gdGhlIG9yaWdpbmFsIGNsYXNzIGxvYWRlciBnZW5lcmF0ZXMgYWxsIHNvcnQgb2YgbGluayBpc3N1ZXMgYmVjYXVzZQotICAgICAqIHRoZXJlIGFyZSAyIGRpZmZlcmVudCBkZWZpbml0aW9ucyBvZiB0aGUgc2FtZSBjbGFzcyBuYW1lLiBUaGlzIGNsYXNzIGxvYWRlciB3aWxsCi0gICAgICogZGVmaW5lIGFuZCBsb2FkIHRoZSBjbGFzcyB3aGVuIHJlcXVlc3RlZCBieSBuYW1lIGFuZCBwcm92aWRlIGhlbHBlcnMgdG8gYWNjZXNzIHRoZQotICAgICAqIGluc3RhbmNlIG1ldGhvZHMgdmlhIHJlZmxlY3Rpb24uCi0gICAgICovCi0gICAgcHJpdmF0ZSBhYnN0cmFjdCBjbGFzcyBDbGFzc0xvYWRlcjIgZXh0ZW5kcyBDbGFzc0xvYWRlciB7Ci0KLSAgICAgICAgcHJpdmF0ZSBmaW5hbCBNYXA8U3RyaW5nLCBieXRlW10+IG1DbGFzc0RlZnMgPSBuZXcgSGFzaE1hcDxTdHJpbmcsIGJ5dGVbXT4oKTsKLQotICAgICAgICBwdWJsaWMgQ2xhc3NMb2FkZXIyKCkgewotICAgICAgICAgICAgc3VwZXIobnVsbCk7Ci0gICAgICAgIH0KLQotICAgICAgICBwdWJsaWMgQ2xhc3NMb2FkZXIyIGFkZChTdHJpbmcgY2xhc3NOYW1lLCBieXRlW10gZGVmaW5pdGlvbikgewotICAgICAgICAgICAgbUNsYXNzRGVmcy5wdXQoY2xhc3NOYW1lLCBkZWZpbml0aW9uKTsKLSAgICAgICAgICAgIHJldHVybiB0aGlzOwotICAgICAgICB9Ci0KLSAgICAgICAgcHVibGljIENsYXNzTG9hZGVyMiBhZGQoU3RyaW5nIGNsYXNzTmFtZSwgQ2xhc3NXcml0ZXIgcmV3cml0dGVuQ2xhc3MpIHsKLSAgICAgICAgICAgIG1DbGFzc0RlZnMucHV0KGNsYXNzTmFtZSwgcmV3cml0dGVuQ2xhc3MudG9CeXRlQXJyYXkoKSk7Ci0gICAgICAgICAgICByZXR1cm4gdGhpczsKLSAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGUgU2V0PEVudHJ5PFN0cmluZywgYnl0ZVtdPj4gZ2V0Qnl0ZUNvZGUoKSB7Ci0gICAgICAgICAgICByZXR1cm4gbUNsYXNzRGVmcy5lbnRyeVNldCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgQFN1cHByZXNzV2FybmluZ3MoInVudXNlZCIpCi0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwcm90ZWN0ZWQgQ2xhc3M8Pz4gZmluZENsYXNzKFN0cmluZyBuYW1lKSB0aHJvd3MgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHJldHVybiBzdXBlci5maW5kQ2xhc3MobmFtZSk7Ci0gICAgICAgICAgICB9IGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKLQotICAgICAgICAgICAgICAgIGJ5dGVbXSBkZWYgPSBtQ2xhc3NEZWZzLmdldChuYW1lKTsKLSAgICAgICAgICAgICAgICBpZiAoZGVmICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gTG9hZCB0aGUgbW9kaWZpZWQgQ2xhc3NXaXRoTmF0aXZlIGZyb20gaXRzIGJ5dGVzIHJlcHJlc2VudGF0aW9uLgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVmaW5lQ2xhc3MobmFtZSwgZGVmLCAwLCBkZWYubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAvLyBMb2FkIGV2ZXJ5dGhpbmcgZWxzZSBmcm9tIHRoZSBvcmlnaW5hbCBkZWZpbml0aW9uIGludG8gdGhlIG5ldyBjbGFzcyBsb2FkZXIuCi0gICAgICAgICAgICAgICAgICAgIENsYXNzUmVhZGVyIGNyID0gbmV3IENsYXNzUmVhZGVyKG5hbWUpOwotICAgICAgICAgICAgICAgICAgICBDbGFzc1dyaXRlciBjdyA9IG5ldyBDbGFzc1dyaXRlcigwKTsKLSAgICAgICAgICAgICAgICAgICAgY3IuYWNjZXB0KGN3LCAwKTsKLSAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzID0gY3cudG9CeXRlQXJyYXkoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmluZUNsYXNzKG5hbWUsIGJ5dGVzLCAwLCBieXRlcy5sZW5ndGgpOwotCi0gICAgICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gaW9lKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGlvZSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIEFjY2Vzc2VzIHtAbGluayBPdXRlckNsYXNzI2dldH0gb3Ige0BsaW5rIElubmVyQ2xhc3MjZ2V0fXZpYSByZWZsZWN0aW9uLgotICAgICAgICAgKi8KLSAgICAgICAgcHVibGljIGludCBjYWxsR2V0KE9iamVjdCBpbnN0YW5jZSwgaW50IGEsIGxvbmcgYikgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgICAgICBNZXRob2QgbSA9IGluc3RhbmNlLmdldENsYXNzKCkuZ2V0TWV0aG9kKCJnZXQiLAotICAgICAgICAgICAgICAgICAgICBuZXcgQ2xhc3M8Pz5bXSB7IGludC5jbGFzcywgbG9uZy5jbGFzcyB9ICk7Ci0KLSAgICAgICAgICAgIE9iamVjdCByZXN1bHQgPSBtLmludm9rZShpbnN0YW5jZSwgbmV3IE9iamVjdFtdIHsgYSwgYiB9KTsKLSAgICAgICAgICAgIHJldHVybiAoKEludGVnZXIpIHJlc3VsdCkuaW50VmFsdWUoKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBBY2Nlc3NlcyB0aGUgIl9PcmlnaW5hbCIgbWV0aG9kcyBmb3Ige0BsaW5rIE91dGVyQ2xhc3MjZ2V0fQotICAgICAgICAgKiBvciB7QGxpbmsgSW5uZXJDbGFzcyNnZXR9dmlhIHJlZmxlY3Rpb24uCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgaW50IGNhbGxHZXRfT3JpZ2luYWwoT2JqZWN0IGluc3RhbmNlLCBpbnQgYSwgbG9uZyBiKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgICAgIE1ldGhvZCBtID0gaW5zdGFuY2UuZ2V0Q2xhc3MoKS5nZXRNZXRob2QoImdldF9PcmlnaW5hbCIsCi0gICAgICAgICAgICAgICAgICAgIG5ldyBDbGFzczw/PltdIHsgaW50LmNsYXNzLCBsb25nLmNsYXNzIH0gKTsKLQotICAgICAgICAgICAgT2JqZWN0IHJlc3VsdCA9IG0uaW52b2tlKGluc3RhbmNlLCBuZXcgT2JqZWN0W10geyBhLCBiIH0pOwotICAgICAgICAgICAgcmV0dXJuICgoSW50ZWdlcikgcmVzdWx0KS5pbnRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIEFjY2Vzc2VzIHRoZSBhbnkgZGVjbGFyZWQgbWV0aG9kIHRoYXQgdGFrZXMgbm8gcGFyYW1ldGVyIHZpYSByZWZsZWN0aW9uLgotICAgICAgICAgKi8KLSAgICAgICAgQFN1cHByZXNzV2FybmluZ3MoInVuY2hlY2tlZCIpCi0gICAgICAgIHB1YmxpYyA8VD4gVCBjYWxsTWV0aG9kKE9iamVjdCBpbnN0YW5jZSwgU3RyaW5nIG1ldGhvZE5hbWUsIGJvb2xlYW4gbWFrZVB1YmxpYykgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgICAgICBNZXRob2QgbSA9IGluc3RhbmNlLmdldENsYXNzKCkuZ2V0RGVjbGFyZWRNZXRob2QobWV0aG9kTmFtZSwgKENsYXNzPD8+W10pbnVsbCk7Ci0KLSAgICAgICAgICAgIGJvb2xlYW4gd2FzQWNjZXNzaWJsZSA9IG0uaXNBY2Nlc3NpYmxlKCk7Ci0gICAgICAgICAgICBpZiAobWFrZVB1YmxpYyAmJiAhd2FzQWNjZXNzaWJsZSkgewotICAgICAgICAgICAgICAgIG0uc2V0QWNjZXNzaWJsZSh0cnVlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgT2JqZWN0IHJlc3VsdCA9IG0uaW52b2tlKGluc3RhbmNlLCAoT2JqZWN0W10pbnVsbCk7Ci0KLSAgICAgICAgICAgIGlmIChtYWtlUHVibGljICYmICF3YXNBY2Nlc3NpYmxlKSB7Ci0gICAgICAgICAgICAgICAgbS5zZXRBY2Nlc3NpYmxlKGZhbHNlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIChUKSByZXN1bHQ7Ci0gICAgICAgIH0KLQotICAgICAgICAvKioKLSAgICAgICAgICogQWNjZXNzZXMge0BsaW5rIENsYXNzV2l0aE5hdGl2ZSNhZGQoaW50LCBpbnQpfSB2aWEgcmVmbGVjdGlvbi4KLSAgICAgICAgICovCi0gICAgICAgIHB1YmxpYyBpbnQgY2FsbEFkZChPYmplY3QgaW5zdGFuY2UsIGludCBhLCBpbnQgYikgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgICAgICBNZXRob2QgbSA9IGluc3RhbmNlLmdldENsYXNzKCkuZ2V0TWV0aG9kKCJhZGQiLAotICAgICAgICAgICAgICAgICAgICBuZXcgQ2xhc3M8Pz5bXSB7IGludC5jbGFzcywgaW50LmNsYXNzIH0pOwotCi0gICAgICAgICAgICBPYmplY3QgcmVzdWx0ID0gbS5pbnZva2UoaW5zdGFuY2UsIG5ldyBPYmplY3RbXSB7IGEsIGIgfSk7Ci0gICAgICAgICAgICByZXR1cm4gKChJbnRlZ2VyKSByZXN1bHQpLmludFZhbHVlKCk7Ci0gICAgICAgIH0KLQotICAgICAgICAvKioKLSAgICAgICAgICogQWNjZXNzZXMge0BsaW5rIENsYXNzV2l0aE5hdGl2ZSNjYWxsTmF0aXZlSW5zdGFuY2UoaW50LCBkb3VibGUsIE9iamVjdFtdKX0KLSAgICAgICAgICogdmlhIHJlZmxlY3Rpb24uCi0gICAgICAgICAqLwotICAgICAgICBwdWJsaWMgaW50IGNhbGxDYWxsTmF0aXZlSW5zdGFuY2UoT2JqZWN0IGluc3RhbmNlLCBpbnQgYSwgZG91YmxlIGQsIE9iamVjdFtdIG8pCi0gICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgICAgICBNZXRob2QgbSA9IGluc3RhbmNlLmdldENsYXNzKCkuZ2V0TWV0aG9kKCJjYWxsTmF0aXZlSW5zdGFuY2UiLAotICAgICAgICAgICAgICAgICAgICBuZXcgQ2xhc3M8Pz5bXSB7IGludC5jbGFzcywgZG91YmxlLmNsYXNzLCBPYmplY3RbXS5jbGFzcyB9KTsKLQotICAgICAgICAgICAgT2JqZWN0IHJlc3VsdCA9IG0uaW52b2tlKGluc3RhbmNlLCBuZXcgT2JqZWN0W10geyBhLCBkLCBvIH0pOwotICAgICAgICAgICAgcmV0dXJuICgoSW50ZWdlcikgcmVzdWx0KS5pbnRWYWx1ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgdGVzdE1vZGlmaWVkSW5zdGFuY2UoKSB0aHJvd3MgRXhjZXB0aW9uOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIEZvciBkZWJ1Z2dpbmcsIGl0J3MgdXNlZnVsIHRvIGR1bXAgdGhlIGNvbnRlbnQgb2YgdGhlIGdlbmVyYXRlZCBjbGFzc2VzCi0gICAgICogYWxvbmcgd2l0aCB0aGUgZXhjZXB0aW9uIHRoYXQgd2FzIGdlbmVyYXRlZC4KLSAgICAgKgotICAgICAqIEhvd2V2ZXIgdG8gbWFrZSBpdCB3b3JrIHlvdSBuZWVkIHRvIHB1bGwgaW4gdGhlIG9yZy5vYmplY3R3ZWIuYXNtLnV0aWwuVHJhY2VDbGFzc1Zpc2l0b3IKLSAgICAgKiBjbGFzcyBhbmQgYXNzb2NpYXRlZCB1dGlsaXRpZXMgd2hpY2ggYXJlIGZvdW5kIGluIHRoZSBBU00gc291cmNlIGphci4gU2luY2Ugd2UgZG9uJ3QKLSAgICAgKiB3YW50IHRoYXQgZGVwZW5kZW5jeSBpbiB0aGUgc291cmNlIGNvZGUsIHdlIG9ubHkgcHV0IGl0IG1hbnVhbGx5IGZvciBkZXZlbG9wbWVudCBhbmQKLSAgICAgKiBhY2Nlc3MgdGhlIFRyYWNlQ2xhc3NWaXNpdG9yIHZpYSByZWZsZWN0aW9uIGlmIHByZXNlbnQuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gdCBUaGUgZXhjZXB0aW9uIHRocm93biBieSB7QGxpbmsgQ2xhc3NMb2FkZXIyI3Rlc3RNb2RpZmllZEluc3RhbmNlKCl9Ci0gICAgICogQHBhcmFtIGNsMiBUaGUge0BsaW5rIENsYXNzTG9hZGVyMn0gaW5zdGFuY2Ugd2l0aCB0aGUgZ2VuZXJhdGVkIGJ5dGVjb2RlLgotICAgICAqIEByZXR1cm4gRWl0aGVyIG9yaWdpbmFsIHtAY29kZSB0fSBvciBhIG5ldyB3cmFwcGVyIHtAbGluayBUaHJvd2FibGV9Ci0gICAgICovCi0gICAgcHJpdmF0ZSBUaHJvd2FibGUgZHVtcEdlbmVyYXRlZENsYXNzKFRocm93YWJsZSB0LCBDbGFzc0xvYWRlcjIgY2wyKSB7Ci0gICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAvLyBGb3IgZGVidWdnaW5nLCBkdW1wIHRoZSBieXRlY29kZSBvZiB0aGUgY2xhc3MgaW4gY2FzZSBvZiB1bmV4cGVjdGVkIGVycm9yCi0gICAgICAgICAgICAvLyBpZiB3ZSBjYW4gZmluZCB0aGUgVHJhY2VDbGFzc1Zpc2l0b3IgY2xhc3MuCi0gICAgICAgICAgICBDbGFzczw/PiB0Y3ZDbGFzcyA9IENsYXNzLmZvck5hbWUoIm9yZy5vYmplY3R3ZWIuYXNtLnV0aWwuVHJhY2VDbGFzc1Zpc2l0b3IiKTsKLQotICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7Ci0gICAgICAgICAgICBzYi5hcHBlbmQoJ1xuJykuYXBwZW5kKHQuZ2V0Q2xhc3MoKS5nZXRDYW5vbmljYWxOYW1lKCkpOwotICAgICAgICAgICAgaWYgKHQuZ2V0TWVzc2FnZSgpICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICBzYi5hcHBlbmQoIjogIikuYXBwZW5kKHQuZ2V0TWVzc2FnZSgpKTsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBmb3IgKEVudHJ5PFN0cmluZywgYnl0ZVtdPiBlbnRyeSA6IGNsMi5nZXRCeXRlQ29kZSgpKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIGNsYXNzTmFtZSA9IGVudHJ5LmdldEtleSgpOwotICAgICAgICAgICAgICAgIGJ5dGVbXSBieXRlcyA9IGVudHJ5LmdldFZhbHVlKCk7Ci0KLSAgICAgICAgICAgICAgICBTdHJpbmdXcml0ZXIgc3cgPSBuZXcgU3RyaW5nV3JpdGVyKCk7Ci0gICAgICAgICAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoc3cpOwotICAgICAgICAgICAgICAgIC8vIG5leHQgMiBsaW5lcyBkbzogVHJhY2VDbGFzc1Zpc2l0b3IgdGN2ID0gbmV3IFRyYWNlQ2xhc3NWaXNpdG9yKHB3KTsKLSAgICAgICAgICAgICAgICBDb25zdHJ1Y3Rvcjw/PiBjb25zID0gdGN2Q2xhc3MuZ2V0Q29uc3RydWN0b3IobmV3IENsYXNzPD8+W10geyBwdy5nZXRDbGFzcygpIH0pOwotICAgICAgICAgICAgICAgIE9iamVjdCB0Y3YgPSBjb25zLm5ld0luc3RhbmNlKG5ldyBPYmplY3RbXSB7IHB3IH0pOwotICAgICAgICAgICAgICAgIENsYXNzUmVhZGVyIGNyMiA9IG5ldyBDbGFzc1JlYWRlcihieXRlcyk7Ci0gICAgICAgICAgICAgICAgY3IyLmFjY2VwdCgoQ2xhc3NWaXNpdG9yKSB0Y3YsIDAgLyogZmxhZ3MgKi8pOwotCi0gICAgICAgICAgICAgICAgc2IuYXBwZW5kKCJcbkJ5dGVjb2RlIGR1bXA6IDwiKS5hcHBlbmQoY2xhc3NOYW1lKS5hcHBlbmQoIj46XG4iKQotICAgICAgICAgICAgICAgICAgLmFwcGVuZChzdy50b1N0cmluZygpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gUmUtdGhyb3cgZXhjZXB0aW9uIHdpdGggbmV3IG1lc3NhZ2UKLSAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gZXggPSBuZXcgUnVudGltZUV4Y2VwdGlvbihzYi50b1N0cmluZygpLCB0KTsKLSAgICAgICAgICAgIHJldHVybiBleDsKLSAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIGlnbm9yZSkgewotICAgICAgICAgICAgLy8gSW4gY2FzZSBvZiBwcm9ibGVtLCBqdXN0IHRocm93IHRoZSBvcmlnaW5hbCBleGNlcHRpb24gYXMtaXMuCi0gICAgICAgICAgICByZXR1cm4gdDsKLSAgICAgICAgfQotICAgIH0KLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0xvZ1Rlc3QuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9Mb2dUZXN0LmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhNWY2NTMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL0xvZ1Rlc3QuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGU7Ci0KLWltcG9ydCBzdGF0aWMgb3JnLmp1bml0LkFzc2VydC4qOwotCi1pbXBvcnQgb3JnLmp1bml0LkFmdGVyOwotaW1wb3J0IG9yZy5qdW5pdC5CZWZvcmU7Ci1pbXBvcnQgb3JnLmp1bml0LlRlc3Q7Ci0KLXB1YmxpYyBjbGFzcyBMb2dUZXN0IHsKLQotICAgIHByaXZhdGUgTW9ja0xvZyBtTG9nOwotCi0gICAgQEJlZm9yZQotICAgIHB1YmxpYyB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIG1Mb2cgPSBuZXcgTW9ja0xvZygpOwotICAgIH0KLQotICAgIEBBZnRlcgotICAgIHB1YmxpYyB2b2lkIHRlYXJEb3duKCkgdGhyb3dzIEV4Y2VwdGlvbiB7Ci0gICAgICAgIC8vIHBhc3MKLSAgICB9Ci0KLSAgICBAVGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3REZWJ1ZygpIHsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKCIiLCBtTG9nLmdldE91dCgpKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKCIiLCBtTG9nLmdldEVycigpKTsKLQotICAgICAgICBtTG9nLnNldFZlcmJvc2UoZmFsc2UpOwotICAgICAgICBtTG9nLmRlYnVnKCJUZXN0ICVkIiwgNDIpOwotICAgICAgICBhc3NlcnRFcXVhbHMoIiIsIG1Mb2cuZ2V0T3V0KCkpOwotCi0gICAgICAgIG1Mb2cuc2V0VmVyYm9zZSh0cnVlKTsKLSAgICAgICAgbUxvZy5kZWJ1ZygiVGVzdCAlZCIsIDQyKTsKLQotICAgICAgICBhc3NlcnRFcXVhbHMoIlRlc3QgNDJcbiIsIG1Mb2cuZ2V0T3V0KCkpOwotICAgICAgICBhc3NlcnRFcXVhbHMoIiIsIG1Mb2cuZ2V0RXJyKCkpOwotICAgIH0KLQotICAgIEBUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdEluZm8oKSB7Ci0gICAgICAgIGFzc2VydEVxdWFscygiIiwgbUxvZy5nZXRPdXQoKSk7Ci0gICAgICAgIGFzc2VydEVxdWFscygiIiwgbUxvZy5nZXRFcnIoKSk7Ci0KLSAgICAgICAgbUxvZy5pbmZvKCJUZXN0ICVkIiwgNDMpOwotCi0gICAgICAgIGFzc2VydEVxdWFscygiVGVzdCA0M1xuIiwgbUxvZy5nZXRPdXQoKSk7Ci0gICAgICAgIGFzc2VydEVxdWFscygiIiwgbUxvZy5nZXRFcnIoKSk7Ci0gICAgfQotCi0gICAgQFRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0RXJyb3IoKSB7Ci0gICAgICAgIGFzc2VydEVxdWFscygiIiwgbUxvZy5nZXRPdXQoKSk7Ci0gICAgICAgIGFzc2VydEVxdWFscygiIiwgbUxvZy5nZXRFcnIoKSk7Ci0KLSAgICAgICAgbUxvZy5lcnJvcigiVGVzdCAlZCIsIDQ0KTsKLQotICAgICAgICBhc3NlcnRFcXVhbHMoIiIsIG1Mb2cuZ2V0T3V0KCkpOwotICAgICAgICBhc3NlcnRFcXVhbHMoIlRlc3QgNDRcbiIsIG1Mb2cuZ2V0RXJyKCkpOwotICAgIH0KLQotICAgIEBUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdEV4Y2VwdGlvbigpIHsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKCIiLCBtTG9nLmdldE91dCgpKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKCIiLCBtTG9nLmdldEVycigpKTsKLQotICAgICAgICBFeGNlcHRpb24gZSA9IG5ldyBFeGNlcHRpb24oIk15IEV4Y2VwdGlvbiIpOwotICAgICAgICBtTG9nLmV4Y2VwdGlvbihlLCAiVGVzdCAlZCIsIDQ0KTsKLQotICAgICAgICBhc3NlcnRFcXVhbHMoIiIsIG1Mb2cuZ2V0T3V0KCkpOwotICAgICAgICBhc3NlcnRUcnVlKG1Mb2cuZ2V0RXJyKCkuc3RhcnRzV2l0aCgiVGVzdCA0NFxuamF2YS5sYW5nLkV4Y2VwdGlvbjogTXkgRXhjZXB0aW9uIikpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9Nb2NrTG9nLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvTW9ja0xvZy5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTc1MGEzLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9Nb2NrTG9nLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlOwotCi0KLXB1YmxpYyBjbGFzcyBNb2NrTG9nIGV4dGVuZHMgTG9nIHsKLSAgICBTdHJpbmdCdWlsZGVyIG1PdXQgPSBuZXcgU3RyaW5nQnVpbGRlcigpOwotICAgIFN0cmluZ0J1aWxkZXIgbUVyciA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7Ci0KLSAgICBwdWJsaWMgU3RyaW5nIGdldE91dCgpIHsKLSAgICAgICAgcmV0dXJuIG1PdXQudG9TdHJpbmcoKTsKLSAgICB9Ci0KLSAgICBwdWJsaWMgU3RyaW5nIGdldEVycigpIHsKLSAgICAgICAgcmV0dXJuIG1FcnIudG9TdHJpbmcoKTsKLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwcm90ZWN0ZWQgdm9pZCBvdXRQcmludGxuKFN0cmluZyBtc2cpIHsKLSAgICAgICAgbU91dC5hcHBlbmQobXNnKTsKLSAgICAgICAgbU91dC5hcHBlbmQoJ1xuJyk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHJvdGVjdGVkIHZvaWQgZXJyUHJpbnRsbihTdHJpbmcgbXNnKSB7Ci0gICAgICAgIG1FcnIuYXBwZW5kKG1zZyk7Ci0gICAgICAgIG1FcnIuYXBwZW5kKCdcbicpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9SZW5hbWVDbGFzc0FkYXB0ZXJUZXN0LmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvUmVuYW1lQ2xhc3NBZGFwdGVyVGVzdC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MjExZTczLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9SZW5hbWVDbGFzc0FkYXB0ZXJUZXN0LmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxMTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLQotcGFja2FnZSBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlOwotCi1pbXBvcnQgc3RhdGljIG9yZy5qdW5pdC5Bc3NlcnQuKjsKLQotaW1wb3J0IG9yZy5qdW5pdC5BZnRlcjsKLWltcG9ydCBvcmcuanVuaXQuQmVmb3JlOwotaW1wb3J0IG9yZy5qdW5pdC5UZXN0OwotCi0vKioKLSAqCi0gKi8KLXB1YmxpYyBjbGFzcyBSZW5hbWVDbGFzc0FkYXB0ZXJUZXN0IHsKLQotICAgIHByaXZhdGUgUmVuYW1lQ2xhc3NBZGFwdGVyIG1PdXRlcjsKLSAgICBwcml2YXRlIFJlbmFtZUNsYXNzQWRhcHRlciBtSW5uZXI7Ci0KLSAgICBAQmVmb3JlCi0gICAgcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKLSAgICAgICAgbU91dGVyID0gbmV3IFJlbmFtZUNsYXNzQWRhcHRlcihudWxsLCAvLyBjdgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tLnBhY2suT2xkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yZy5ibGFoLk5ldyIpOwotCi0gICAgICAgIG1Jbm5lciA9IG5ldyBSZW5hbWVDbGFzc0FkYXB0ZXIobnVsbCwgLy8gY3YKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5wYWNrLk9sZCRJbm5lciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmcuYmxhaC5OZXckSW5uZXIiKTsKLSAgICB9Ci0KLSAgICBAQWZ0ZXIKLSAgICBwdWJsaWMgdm9pZCB0ZWFyRG93bigpIHRocm93cyBFeGNlcHRpb24gewotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlbmFtZXMgYSB0eXBlLCBlLmcuICJMY29tLnBhY2thZ2UuTXk7IgotICAgICAqIElmIHRoZSB0eXBlIGRvZXNuJ3QgbmVlZCB0byBiZSByZW5hbWVkLCByZXR1cm5zIHRoZSBpbnB1dCBzdHJpbmcgYXMtaXMuCi0gICAgICovCi0gICAgQFRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UmVuYW1lVHlwZURlc2MoKSB7Ci0KLSAgICAgICAgLy8gcHJpbWl0aXZlIHR5cGVzIGFyZSBsZWZ0IHVudG91Y2hlZAotICAgICAgICBhc3NlcnRFcXVhbHMoIkkiLCBtT3V0ZXIucmVuYW1lVHlwZURlc2MoIkkiKSk7Ci0gICAgICAgIGFzc2VydEVxdWFscygiRCIsIG1PdXRlci5yZW5hbWVUeXBlRGVzYygiRCIpKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKCJWIiwgbU91dGVyLnJlbmFtZVR5cGVEZXNjKCJWIikpOwotCi0gICAgICAgIC8vIG9iamVjdCB0eXBlcyB0aGF0IG5lZWQgbm8gcmVuYW1pbmcgYXJlIGxlZnQgdW50b3VjaGVkCi0gICAgICAgIGFzc2VydEVxdWFscygiTGNvbS5wYWNrYWdlLk15Q2xhc3M7IiwgbU91dGVyLnJlbmFtZVR5cGVEZXNjKCJMY29tLnBhY2thZ2UuTXlDbGFzczsiKSk7Ci0gICAgICAgIGFzc2VydEVxdWFscygiTGNvbS5wYWNrYWdlLk15Q2xhc3M7IiwgbUlubmVyLnJlbmFtZVR5cGVEZXNjKCJMY29tLnBhY2thZ2UuTXlDbGFzczsiKSk7Ci0KLSAgICAgICAgLy8gb2JqZWN0IHR5cGVzIHRoYXQgbWF0Y2ggdGhlIHJlcXVpcmVtZW50cwotICAgICAgICBhc3NlcnRFcXVhbHMoIkxvcmcuYmxhaC5OZXc7IiwgbU91dGVyLnJlbmFtZVR5cGVEZXNjKCJMY29tLnBhY2suT2xkOyIpKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKCJMb3JnLmJsYWguTmV3JElubmVyOyIsIG1Jbm5lci5yZW5hbWVUeXBlRGVzYygiTGNvbS5wYWNrLk9sZCRJbm5lcjsiKSk7Ci0gICAgICAgIC8vIGlubmVyIGNsYXNzZXMgbWF0Y2ggdGhlIGJhc2UgdHlwZSB3aGljaCBpcyBiZWluZyByZW5hbWVkCi0gICAgICAgIGFzc2VydEVxdWFscygiTG9yZy5ibGFoLk5ldyRPdGhlcjsiLCBtT3V0ZXIucmVuYW1lVHlwZURlc2MoIkxjb20ucGFjay5PbGQkT3RoZXI7IikpOwotICAgICAgICBhc3NlcnRFcXVhbHMoIkxvcmcuYmxhaC5OZXckT3RoZXI7IiwgbUlubmVyLnJlbmFtZVR5cGVEZXNjKCJMY29tLnBhY2suT2xkJE90aGVyOyIpKTsKLQotICAgICAgICAvLyBhcnJheXMKLSAgICAgICAgYXNzZXJ0RXF1YWxzKCJbTG9yZy5ibGFoLk5ldzsiLCAgbU91dGVyLnJlbmFtZVR5cGVEZXNjKCJbTGNvbS5wYWNrLk9sZDsiKSk7Ci0gICAgICAgIGFzc2VydEVxdWFscygiW1tMb3JnLmJsYWguTmV3OyIsIG1PdXRlci5yZW5hbWVUeXBlRGVzYygiW1tMY29tLnBhY2suT2xkOyIpKTsKLQotICAgICAgICBhc3NlcnRFcXVhbHMoIltMb3JnLmJsYWguTmV3OyIsICBtSW5uZXIucmVuYW1lVHlwZURlc2MoIltMY29tLnBhY2suT2xkOyIpKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKCJbW0xvcmcuYmxhaC5OZXc7IiwgbUlubmVyLnJlbmFtZVR5cGVEZXNjKCJbW0xjb20ucGFjay5PbGQ7IikpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlbmFtZXMgYW4gb2JqZWN0IHR5cGUsIGUuZy4gIkxjb20ucGFja2FnZS5NeUNsYXNzOyIgb3IgYW4gYXJyYXkgdHlwZSB0aGF0IGhhcyBhbgotICAgICAqIG9iamVjdCBlbGVtZW50LCBlLmcuICJbTGNvbS5wYWNrYWdlLk15Q2xhc3M7IgotICAgICAqIElmIHRoZSB0eXBlIGRvZXNuJ3QgbmVlZCB0byBiZSByZW5hbWVkLCByZXR1cm5zIHRoZSBpbnRlcm5hbCBuYW1lIG9mIHRoZSBpbnB1dCB0eXBlLgotICAgICAqLwotICAgIEBUZXN0Ci0gICAgcHVibGljIHZvaWQgdGVzdFJlbmFtZVR5cGUoKSB7Ci0gICAgICAgIC8vIFNraXAuIFRoaXMgaXMgYWN0dWFsbHkgdGVzdGVkIGJ5IHRlc3RSZW5hbWVUeXBlRGVzYyBhYm92ZS4KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZW5hbWVzIGFuIGludGVybmFsIHR5cGUgbmFtZSwgZS5nLiAiY29tLnBhY2thZ2UuTXlDbGFzcyIuCi0gICAgICogSWYgdGhlIHR5cGUgZG9lc24ndCBuZWVkIHRvIGJlIHJlbmFtZWQsIHJldHVybnMgdGhlIGlucHV0IHN0cmluZyBhcy1pcy4KLSAgICAgKi8KLSAgICBAVGVzdAotICAgIHB1YmxpYyB2b2lkIHRlc3RSZW5hbWVJbnRlcm5hbFR5cGUoKSB7Ci0gICAgICAgIC8vIGFuIGFjdHVhbCBGUUNOCi0gICAgICAgIGFzc2VydEVxdWFscygib3JnLmJsYWguTmV3IiwgbU91dGVyLnJlbmFtZUludGVybmFsVHlwZSgiY29tLnBhY2suT2xkIikpOwotICAgICAgICBhc3NlcnRFcXVhbHMoIm9yZy5ibGFoLk5ldyRJbm5lciIsIG1PdXRlci5yZW5hbWVJbnRlcm5hbFR5cGUoImNvbS5wYWNrLk9sZCRJbm5lciIpKTsKLQotICAgICAgICBhc3NlcnRFcXVhbHMoIm9yZy5ibGFoLk5ldyRPdGhlciIsIG1Jbm5lci5yZW5hbWVJbnRlcm5hbFR5cGUoImNvbS5wYWNrLk9sZCRPdGhlciIpKTsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKCJvcmcuYmxhaC5OZXckT3RoZXIiLCBtSW5uZXIucmVuYW1lSW50ZXJuYWxUeXBlKCJjb20ucGFjay5PbGQkT3RoZXIiKSk7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUmVuYW1lcyBhIG1ldGhvZCBkZXNjcmlwdG9yLCBpLmUuIGFwcGxpZXMgcmVuYW1lVHlwZSB0byBhbGwgYXJndW1lbnRzIGFuZCB0byB0aGUKLSAgICAgKiByZXR1cm4gdmFsdWUuCi0gICAgICovCi0gICAgQFRlc3QKLSAgICBwdWJsaWMgdm9pZCB0ZXN0UmVuYW1lTWV0aG9kRGVzYygpIHsKLSAgICAgICAgYXNzZXJ0RXF1YWxzKCIoSURMb3JnLmJsYWguTmV3O1tMb3JnLmJsYWguTmV3JElubmVyOylMb3JnLmJsYWguTmV3JE90aGVyOyIsCi0gICAgICAgICAgICAgICBtT3V0ZXIucmVuYW1lTWV0aG9kRGVzYygiKElETGNvbS5wYWNrLk9sZDtbTGNvbS5wYWNrLk9sZCRJbm5lcjspTGNvbS5wYWNrLk9sZCRPdGhlcjsiKSk7Ci0gICAgfQotCi0KLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL2RhdGFjbGFzcy9DbGFzc1dpdGhOYXRpdmUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9kYXRhY2xhc3MvQ2xhc3NXaXRoTmF0aXZlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzMTQ4NTMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL2RhdGFjbGFzcy9DbGFzc1dpdGhOYXRpdmUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGUuZGF0YWNsYXNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZS5EZWxlZ2F0ZUNsYXNzQWRhcHRlclRlc3Q7Ci0KLS8qKgotICogRHVtbXkgdGVzdCBjbGFzcyB3aXRoIGEgbmF0aXZlIG1ldGhvZC4KLSAqIFRoZSBuYXRpdmUgbWV0aG9kIGlzIG5vdCBkZWZpbmVkIGFuZCBhbnkgYXR0ZW1wdCB0byBpbnZva2UgaXQgd2lsbAotICogdGhyb3cgYW4ge0BsaW5rIFVuc2F0aXNmaWVkTGlua0Vycm9yfS4KLSAqCi0gKiBVc2VkIGJ5IHtAbGluayBEZWxlZ2F0ZUNsYXNzQWRhcHRlclRlc3R9LgotICovCi1wdWJsaWMgY2xhc3MgQ2xhc3NXaXRoTmF0aXZlIHsKLSAgICBwdWJsaWMgQ2xhc3NXaXRoTmF0aXZlKCkgewotICAgIH0KLQotICAgIHB1YmxpYyBpbnQgYWRkKGludCBhLCBpbnQgYikgewotICAgICAgICByZXR1cm4gYSArIGI7Ci0gICAgfQotCi0gICAgLy8gTm90ZTogaXQncyBnb29kIHRvIGhhdmUgYSBsb25nIG9yIGRvdWJsZSBmb3IgdGVzdGluZyBwYXJhbWV0ZXJzIHNpbmNlIHRoZXkgdGFrZQotICAgIC8vIDIgc2xvdHMgaW4gdGhlIHN0YWNrL2xvY2FscyBtYXBzLgotCi0gICAgcHVibGljIGludCBjYWxsTmF0aXZlSW5zdGFuY2UoaW50IGEsIGRvdWJsZSBkLCBPYmplY3RbXSBvKSB7Ci0gICAgICAgIHJldHVybiBuYXRpdmVfaW5zdGFuY2UoYSwgZCwgbyk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBuYXRpdmUgaW50IG5hdGl2ZV9pbnN0YW5jZShpbnQgYSwgZG91YmxlIGQsIE9iamVjdFtdIG8pOwotfQotCmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvZGF0YWNsYXNzL0NsYXNzV2l0aE5hdGl2ZV9EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL2RhdGFjbGFzcy9DbGFzc1dpdGhOYXRpdmVfRGVsZWdhdGUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTNkNGRjNi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL2NvbS9hbmRyb2lkL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvZGF0YWNsYXNzL0NsYXNzV2l0aE5hdGl2ZV9EZWxlZ2F0ZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZS5kYXRhY2xhc3M7Ci0KLWltcG9ydCBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlLkRlbGVnYXRlQ2xhc3NBZGFwdGVyVGVzdDsKLQotLyoqCi0gKiBUaGUgZGVsZWdhdGUgdGhhdCByZWNlaXZlcyB0aGUgY2FsbCB0byB7QGxpbmsgQ2xhc3NXaXRoTmF0aXZlX0RlbGVnYXRlfSdzIG92ZXJyaWRkZW4gbWV0aG9kcy4KLSAqCi0gKiBVc2VkIGJ5IHtAbGluayBEZWxlZ2F0ZUNsYXNzQWRhcHRlclRlc3R9LgotICovCi1wdWJsaWMgY2xhc3MgQ2xhc3NXaXRoTmF0aXZlX0RlbGVnYXRlIHsKLSAgICBwdWJsaWMgc3RhdGljIGludCBuYXRpdmVfaW5zdGFuY2UoQ2xhc3NXaXRoTmF0aXZlIGluc3RhbmNlLCBpbnQgYSwgZG91YmxlIGQsIE9iamVjdFtdIG8pIHsKLSAgICAgICAgaWYgKG8gIT0gbnVsbCAmJiBvLmxlbmd0aCA+IDApIHsKLSAgICAgICAgICAgIG9bMF0gPSBpbnN0YW5jZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gKGludCkoYSArIGQpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL2RhdGFjbGFzcy9KYXZhQ2xhc3MuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9kYXRhY2xhc3MvSmF2YUNsYXNzLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliNWE5MTguLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL2RhdGFjbGFzcy9KYXZhQ2xhc3MuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtdjEwLnBocAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZS5kYXRhY2xhc3M7Ci0KLXB1YmxpYyBmaW5hbCBjbGFzcyBKYXZhQ2xhc3MgewotCi0gICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgdGVzdCA9ICJ0ZXN0IjsKLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9kYXRhY2xhc3MvT3V0ZXJDbGFzcy5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL2RhdGFjbGFzcy9PdXRlckNsYXNzLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwODNlNzYuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL2RhdGFjbGFzcy9PdXRlckNsYXNzLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlLmRhdGFjbGFzczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGUuRGVsZWdhdGVDbGFzc0FkYXB0ZXJUZXN0OwotCi0vKioKLSAqIFRlc3QgY2xhc3Mgd2l0aCBhbiBpbm5lciBjbGFzcy4KLSAqCi0gKiBVc2VkIGJ5IHtAbGluayBEZWxlZ2F0ZUNsYXNzQWRhcHRlclRlc3R9LgotICovCi1wdWJsaWMgY2xhc3MgT3V0ZXJDbGFzcyB7Ci0gICAgcHJpdmF0ZSBpbnQgbU91dGVyVmFsdWUgPSAxOwotICAgIHB1YmxpYyBPdXRlckNsYXNzKCkgewotICAgIH0KLQotICAgIC8vIE91dGVyLmdldCByZXR1cm5zIDEgKyBhICsgYgotICAgIC8vIE5vdGU6IGl0J3MgZ29vZCB0byBoYXZlIGEgbG9uZyBvciBkb3VibGUgZm9yIHRlc3RpbmcgcGFyYW1ldGVycyBzaW5jZSB0aGV5IHRha2UKLSAgICAvLyAyIHNsb3RzIGluIHRoZSBzdGFjay9sb2NhbHMgbWFwcy4KLSAgICBwdWJsaWMgaW50IGdldChpbnQgYSwgbG9uZyBiKSB7Ci0gICAgICAgIHJldHVybiBtT3V0ZXJWYWx1ZSArIGEgKyAoaW50KSBiOwotICAgIH0KLQotICAgIHB1YmxpYyBjbGFzcyBJbm5lckNsYXNzIHsKLSAgICAgICAgcHVibGljIElubmVyQ2xhc3MoKSB7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBJbm5lci5nZXQgcmV0dXJucyAyICsgMSArIGEgKyBiCi0gICAgICAgIHB1YmxpYyBpbnQgZ2V0KGludCBhLCBsb25nIGIpIHsKLSAgICAgICAgICAgIHJldHVybiAyICsgbU91dGVyVmFsdWUgKyBhICsgKGludCkgYjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEBTdXBwcmVzc1dhcm5pbmdzKCJ1bnVzZWQiKQotICAgIHByaXZhdGUgU3RyaW5nIHByaXZhdGVNZXRob2QoKSB7Ci0gICAgICAgIHJldHVybiAib3V0ZXJQcml2YXRlTWV0aG9kIjsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9kYXRhY2xhc3MvT3V0ZXJDbGFzc19EZWxlZ2F0ZS5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL2RhdGFjbGFzcy9PdXRlckNsYXNzX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3NGJlOGUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL2RhdGFjbGFzcy9PdXRlckNsYXNzX0RlbGVnYXRlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBjb20uYW5kcm9pZC50b29scy5sYXlvdXRsaWIuY3JlYXRlLmRhdGFjbGFzczsKLQotaW1wb3J0IGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGUuRGVsZWdhdGVDbGFzc0FkYXB0ZXJUZXN0OwotCi0vKioKLSAqIFVzZWQgYnkge0BsaW5rIERlbGVnYXRlQ2xhc3NBZGFwdGVyVGVzdH0uCi0gKi8KLXB1YmxpYyBjbGFzcyBPdXRlckNsYXNzX0RlbGVnYXRlIHsKLSAgICAvLyBUaGUgZGVsZWdhdGUgb3ZlcnJpZGUgb2YgT3V0ZXIuZ2V0IHJldHVybnMgNCArIGEgKyBiCi0gICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0KE91dGVyQ2xhc3MgaW5zdGFuY2UsIGludCBhLCBsb25nIGIpIHsKLSAgICAgICAgcmV0dXJuIDQgKyBhICsgKGludCkgYjsKLSAgICB9Ci0KLSAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBwcml2YXRlTWV0aG9kKE91dGVyQ2xhc3MgaW5zdGFuY2UpIHsKLSAgICAgICAgcmV0dXJuICJvdXRlclByaXZhdGVfRGVsZWdhdGUiOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL2RhdGFjbGFzcy9PdXRlckNsYXNzX0lubmVyQ2xhc3NfRGVsZWdhdGUuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvY29tL2FuZHJvaWQvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS9kYXRhY2xhc3MvT3V0ZXJDbGFzc19Jbm5lckNsYXNzX0RlbGVnYXRlLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0NzIyMjAuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9jb20vYW5kcm9pZC90b29scy9sYXlvdXRsaWIvY3JlYXRlL2RhdGFjbGFzcy9PdXRlckNsYXNzX0lubmVyQ2xhc3NfRGVsZWdhdGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGNvbS5hbmRyb2lkLnRvb2xzLmxheW91dGxpYi5jcmVhdGUuZGF0YWNsYXNzOwotCi1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZS5EZWxlZ2F0ZUNsYXNzQWRhcHRlclRlc3Q7Ci1pbXBvcnQgY29tLmFuZHJvaWQudG9vbHMubGF5b3V0bGliLmNyZWF0ZS5kYXRhY2xhc3MuT3V0ZXJDbGFzcy5Jbm5lckNsYXNzOwotCi0vKioKLSAqIFVzZWQgYnkge0BsaW5rIERlbGVnYXRlQ2xhc3NBZGFwdGVyVGVzdH0uCi0gKi8KLXB1YmxpYyBjbGFzcyBPdXRlckNsYXNzX0lubmVyQ2xhc3NfRGVsZWdhdGUgewotICAgIC8vIFRoZSBkZWxlZ2F0ZSBvdmVycmlkZSBvZiBJbm5lci5nZXQgcmV0dXJuIDYgKyBhICsgYgotICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldChPdXRlckNsYXNzIG91dGVyLCBJbm5lckNsYXNzIGlubmVyLCBpbnQgYSwgbG9uZyBiKSB7Ci0gICAgICAgIHJldHVybiA2ICsgYSArIChpbnQpIGI7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9kYXRhL21vY2tfYW5kcm9pZC5qYXIgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL2RhdGEvbW9ja19hbmRyb2lkLmphcgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjBkOGVmYi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL2RhdGEvbW9ja19hbmRyb2lkLmphcgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvbW9ja19kYXRhL2phdmEvbGFuZy9KYXZhQ2xhc3MuamF2YSBiL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvbW9ja19kYXRhL2phdmEvbGFuZy9KYXZhQ2xhc3MuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTk2MTJlOS4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL21vY2tfZGF0YS9qYXZhL2xhbmcvSmF2YUNsYXNzLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLXYxMC5waHAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIGphdmEubGFuZzsKLQotcHVibGljIGNsYXNzIEphdmFDbGFzcyB7Ci0KLSAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0ZXN0ID0gInRlc3QiOwotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9tb2NrX2RhdGEvbW9ja19hbmRyb2lkL2R1bW15L0lubmVyVGVzdC5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9tb2NrX2RhdGEvbW9ja19hbmRyb2lkL2R1bW15L0lubmVyVGVzdC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2ExZDA1Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvbW9ja19kYXRhL21vY2tfYW5kcm9pZC9kdW1teS9Jbm5lclRlc3QuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDkxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtdjEwLnBocAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgbW9ja19hbmRyb2lkLmR1bW15OwotCi1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKLWltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7Ci1pbXBvcnQgamF2YS51dGlsLkxpc3Q7Ci0KLXB1YmxpYyBjbGFzcyBJbm5lclRlc3QgewotCi0gICAgcHJpdmF0ZSBpbnQgbVNvbWVGaWVsZDsKLSAgICBwcml2YXRlIE15U3RhdGljSW5uZXJDbGFzcyBtSW5uZXJJbnN0YW5jZTsKLSAgICBwcml2YXRlIE15SW50RW51bSBtVGhlSW50RW51bTsKLSAgICBwcml2YXRlIE15R2VuZXJpY3MxPGludFtdW10sIElubmVyVGVzdCwgTXlJbnRFbnVtLCBmbG9hdFtdPiBtR2VuZXJpYzE7Ci0KLSAgICBwdWJsaWMgY2xhc3MgTm90U3RhdGljSW5uZXIyIGV4dGVuZHMgTm90U3RhdGljSW5uZXIxIHsKLQotICAgIH0KLQotICAgIHB1YmxpYyBjbGFzcyBOb3RTdGF0aWNJbm5lcjEgewotCi0gICAgICAgIHB1YmxpYyB2b2lkIHNvbWVUaGluZygpIHsKLSAgICAgICAgICAgIG1Tb21lRmllbGQgPSAyOwotICAgICAgICAgICAgbUlubmVySW5zdGFuY2UgPSBudWxsOwotICAgICAgICB9Ci0KLSAgICB9Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBNeVN0YXRpY0lubmVyQ2xhc3MgewotCi0gICAgfQotICAgIAotICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIERlcml2aW5nQ2xhc3MgZXh0ZW5kcyBJbm5lclRlc3QgewotICAgICAgICAKLSAgICB9Ci0gICAgCi0gICAgLy8gZW51bXMgYXJlIGEga2luZCBvZiBpbm5lciBzdGF0aWMgY2xhc3MKLSAgICBwdWJsaWMgZW51bSBNeUludEVudW0gewotICAgICAgICBWQUxVRTAoMCksCi0gICAgICAgIFZBTFVFMSgxKSwKLSAgICAgICAgVkFMVUUyKDIpOwotCi0gICAgICAgIE15SW50RW51bShpbnQgbXlJbnQpIHsKLSAgICAgICAgICAgIHRoaXMubXlJbnQgPSBteUludDsKLSAgICAgICAgfQotICAgICAgICBmaW5hbCBpbnQgbXlJbnQ7Ci0gICAgfQotICAgIAotICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTXlHZW5lcmljczE8VCwgVSwgViwgVz4gewotICAgICAgICBwdWJsaWMgTXlHZW5lcmljczEoKSB7Ci0gICAgICAgICAgICBpbnQgYSA9IDE7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgcHVibGljIDxYPiB2b2lkIGdlbmVyaWNNZXRob2QxKFggYSwgWFtdIGIpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgPFgsIFk+IHZvaWQgZ2VuZXJpY01ldGhvZDIoWCBhLCBMaXN0PFk+IGIpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgPFgsIFkgZXh0ZW5kcyBJbm5lclRlc3Q+IHZvaWQgZ2VuZXJpY01ldGhvZDMoWCBhLCBMaXN0PFk+IGIpIHsKLSAgICB9Ci0KLSAgICBwdWJsaWMgPFQgZXh0ZW5kcyBJbm5lclRlc3Q+IHZvaWQgZ2VuZXJpY01ldGhvZDQoVFtdIGEsIENvbGxlY3Rpb248VD4gYiwgQ29sbGVjdGlvbjw/PiBjKSB7Ci0gICAgICAgIEl0ZXJhdG9yPFQ+IGkgPSBiLml0ZXJhdG9yKCk7Ci0gICAgfQotCi0gICAgcHVibGljIHZvaWQgc29tZU1ldGhvZChJbm5lclRlc3Qgc2VsZikgewotICAgICAgICBtU29tZUZpZWxkID0gc2VsZi5tU29tZUZpZWxkOwotICAgICAgICBNeVN0YXRpY0lubmVyQ2xhc3MgbSA9IG5ldyBNeVN0YXRpY0lubmVyQ2xhc3MoKTsKLSAgICAgICAgbUlubmVySW5zdGFuY2UgPSBtOwotICAgICAgICBtVGhlSW50RW51bSA9IG51bGw7Ci0gICAgICAgIG1HZW5lcmljMSA9IG5ldyBNeUdlbmVyaWNzMSgpOwotICAgICAgICBnZW5lcmljTWV0aG9kNChuZXcgRGVyaXZpbmdDbGFzc1swXSwgbmV3IEFycmF5TGlzdDxEZXJpdmluZ0NsYXNzPigpLCBuZXcgQXJyYXlMaXN0PElubmVyVGVzdD4oKSk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9tb2NrX2RhdGEvbW9ja19hbmRyb2lkL3ZpZXcvVmlldy5qYXZhIGIvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9tb2NrX2RhdGEvbW9ja19hbmRyb2lkL3ZpZXcvVmlldy5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NGVjOGE5Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvbW9ja19kYXRhL21vY2tfYW5kcm9pZC92aWV3L1ZpZXcuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtdjEwLnBocAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgbW9ja19hbmRyb2lkLnZpZXc7Ci0KLWltcG9ydCBqYXZhLmxhbmcuSmF2YUNsYXNzOwotCi1wdWJsaWMgY2xhc3MgVmlldyB7Ci0KLSAgICAgICAgU3RyaW5nIHggPSBKYXZhQ2xhc3MudGVzdDsKLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9tb2NrX2RhdGEvbW9ja19hbmRyb2lkL3ZpZXcvVmlld0dyb3VwLmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL21vY2tfZGF0YS9tb2NrX2FuZHJvaWQvdmlldy9WaWV3R3JvdXAuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDY2NDcwZi4uMDAwMDAwMAotLS0gYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL21vY2tfZGF0YS9tb2NrX2FuZHJvaWQvdmlldy9WaWV3R3JvdXAuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtdjEwLnBocAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLXBhY2thZ2UgbW9ja19hbmRyb2lkLnZpZXc7Ci0KLXB1YmxpYyBjbGFzcyBWaWV3R3JvdXAgZXh0ZW5kcyBWaWV3IHsKLQotICAgIHB1YmxpYyBjbGFzcyBNYXJnaW5MYXlvdXRQYXJhbXMgZXh0ZW5kcyBMYXlvdXRQYXJhbXMgewotCi0gICAgfQotCi0gICAgcHVibGljIGNsYXNzIExheW91dFBhcmFtcyB7Ci0KLSAgICB9Ci0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvbW9ja19kYXRhL21vY2tfYW5kcm9pZC93aWRnZXQvTGluZWFyTGF5b3V0LmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL21vY2tfZGF0YS9tb2NrX2FuZHJvaWQvd2lkZ2V0L0xpbmVhckxheW91dC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODcwYTYzLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL2xheW91dGxpYi9jcmVhdGUvdGVzdHMvbW9ja19kYXRhL21vY2tfYW5kcm9pZC93aWRnZXQvTGluZWFyTGF5b3V0LmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLXYxMC5waHAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1wYWNrYWdlIG1vY2tfYW5kcm9pZC53aWRnZXQ7Ci0KLWltcG9ydCBtb2NrX2FuZHJvaWQudmlldy5WaWV3R3JvdXA7Ci0KLXB1YmxpYyBjbGFzcyBMaW5lYXJMYXlvdXQgZXh0ZW5kcyBWaWV3R3JvdXAgewotCi0gICAgcHVibGljIGNsYXNzIExheW91dFBhcmFtcyBleHRlbmRzIG1vY2tfYW5kcm9pZC52aWV3LlZpZXdHcm91cC5MYXlvdXRQYXJhbXMgewotCi0gICAgfQotCi19CmRpZmYgLS1naXQgYS90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL21vY2tfZGF0YS9tb2NrX2FuZHJvaWQvd2lkZ2V0L1RhYmxlTGF5b3V0LmphdmEgYi90b29scy9sYXlvdXRsaWIvY3JlYXRlL3Rlc3RzL21vY2tfZGF0YS9tb2NrX2FuZHJvaWQvd2lkZ2V0L1RhYmxlTGF5b3V0LmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0NTVlN2QuLjAwMDAwMDAKLS0tIGEvdG9vbHMvbGF5b3V0bGliL2NyZWF0ZS90ZXN0cy9tb2NrX2RhdGEvbW9ja19hbmRyb2lkL3dpZGdldC9UYWJsZUxheW91dC5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC12MTAucGhwCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotcGFja2FnZSBtb2NrX2FuZHJvaWQud2lkZ2V0OwotCi1pbXBvcnQgbW9ja19hbmRyb2lkLnZpZXcuVmlld0dyb3VwOwotCi1wdWJsaWMgY2xhc3MgVGFibGVMYXlvdXQgZXh0ZW5kcyBWaWV3R3JvdXAgewotCi0gICAgcHVibGljIGNsYXNzIExheW91dFBhcmFtcyBleHRlbmRzIE1hcmdpbkxheW91dFBhcmFtcyB7Ci0KLSAgICB9Ci0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL29iYnRvb2wvQW5kcm9pZC5tayBiL3Rvb2xzL29iYnRvb2wvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWZmNTZkNi4uMDAwMDAwMAotLS0gYS90b29scy9vYmJ0b29sL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0jCi0jIENvcHlyaWdodCAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgT3BhcXVlIEJpbmFyeSBCbG9iIChPQkIpIFRvb2wKLSMKLQotIyBUaGlzIHRvb2wgaXMgcHJlYnVpbHQgaWYgd2UncmUgZG9pbmcgYW4gYXBwLW9ubHkgYnVpbGQuCi1pZmVxICgkKFRBUkdFVF9CVUlMRF9BUFBTKSwpCi0KLUxPQ0FMX1BBVEg6PSAkKGNhbGwgbXktZGlyKQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi0KLUxPQ0FMX1NSQ19GSUxFUyA6PSBcCi0JTWFpbi5jcHAKLQotTE9DQUxfQ0ZMQUdTIDo9IC1XYWxsIC1XZXJyb3IKLQotI0xPQ0FMX0NfSU5DTFVERVMgKz0KLQotTE9DQUxfU1RBVElDX0xJQlJBUklFUyA6PSBcCi0JbGliYW5kcm9pZGZ3IFwKLQlsaWJ1dGlscyBcCi0JbGliY3V0aWxzIFwKLQlsaWJsb2cKLQotaWZlcSAoJChIT1NUX09TKSxsaW51eCkKLUxPQ0FMX0xETElCUyArPSAtbGRsIC1scHRocmVhZAotZW5kaWYKLQotTE9DQUxfTU9EVUxFIDo9IG9iYnRvb2wKLQotaW5jbHVkZSAkKEJVSUxEX0hPU1RfRVhFQ1VUQUJMRSkKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotCi1MT0NBTF9NT0RVTEUgOj0gcGJrZGYyZ2VuCi1MT0NBTF9NT0RVTEVfVEFHUyA6PSBvcHRpb25hbAotTE9DQUxfQ0ZMQUdTIDo9IC1XYWxsIC1XZXJyb3IKLUxPQ0FMX1NSQ19GSUxFUyA6PSBwYmtkZjJnZW4uY3BwCi1MT0NBTF9MRExJQlMgKz0gLWxkbAotTE9DQUxfQ19JTkNMVURFUyA6PSBleHRlcm5hbC9vcGVuc3NsL2luY2x1ZGUgJChMT0NBTF9DX0lOQ0xVREVTKQotTE9DQUxfU1RBVElDX0xJQlJBUklFUyA6PSBsaWJjcnlwdG9fc3RhdGljCi0KLWluY2x1ZGUgJChCVUlMRF9IT1NUX0VYRUNVVEFCTEUpCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWVuZGlmICMgVEFSR0VUX0JVSUxEX0FQUFMKZGlmZiAtLWdpdCBhL3Rvb2xzL29iYnRvb2wvTWFpbi5jcHAgYi90b29scy9vYmJ0b29sL01haW4uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjE1MmU4Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL29iYnRvb2wvTWFpbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzMDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNpbmNsdWRlIDxhbmRyb2lkZncvT2JiRmlsZS5oPgotI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KLQotI2luY2x1ZGUgPGdldG9wdC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwotCi1zdGF0aWMgY29uc3QgY2hhciogZ1Byb2dOYW1lID0gIm9iYnRvb2wiOwotc3RhdGljIGNvbnN0IGNoYXIqIGdQcm9nVmVyc2lvbiA9ICIxLjAiOwotCi1zdGF0aWMgaW50IHdhbnRVc2FnZSA9IDA7Ci1zdGF0aWMgaW50IHdhbnRWZXJzaW9uID0gMDsKLQotI2RlZmluZSBTQUxUX0xFTiA4Ci0KLSNkZWZpbmUgQUREX09QVFMgIm46djpvczoiCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsb25nb3B0c1tdID0gewotICAgIHsiaGVscCIsICAgICAgIG5vX2FyZ3VtZW50LCAmd2FudFVzYWdlLCAgIDF9LAotICAgIHsidmVyc2lvbiIsICAgIG5vX2FyZ3VtZW50LCAmd2FudFZlcnNpb24sIDF9LAotCi0gICAgLyogQXJncyBmb3IgImFkZCIgKi8KLSAgICB7Im5hbWUiLCAgICAgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ24nfSwKLSAgICB7InZlcnNpb24iLCAgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ3YnfSwKLSAgICB7Im92ZXJsYXkiLCAgICBvcHRpb25hbF9hcmd1bWVudCwgTlVMTCwgJ28nfSwKLSAgICB7InNhbHQiLCAgICAgICByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ3MnfSwKLQotICAgIHtOVUxMLCAwLCBOVUxMLCAnXDAnfQotfTsKLQotY2xhc3MgUGFja2FnZUluZm8gewotcHVibGljOgotICAgIFBhY2thZ2VJbmZvKCkKLSAgICAgICAgICAgIDogcGFja2FnZU5hbWUoTlVMTCkKLSAgICAgICAgICAgICwgcGFja2FnZVZlcnNpb24oLTEpCi0gICAgICAgICAgICAsIG92ZXJsYXkoZmFsc2UpCi0gICAgICAgICAgICAsIHNhbHRlZChmYWxzZSkKLSAgICB7Ci0gICAgICAgIG1lbXNldCgmc2FsdCwgMCwgc2l6ZW9mKHNhbHQpKTsKLSAgICB9Ci0KLSAgICBjaGFyKiBwYWNrYWdlTmFtZTsKLSAgICBpbnQgcGFja2FnZVZlcnNpb247Ci0gICAgYm9vbCBvdmVybGF5OwotICAgIGJvb2wgc2FsdGVkOwotICAgIHVuc2lnbmVkIGNoYXIgc2FsdFtTQUxUX0xFTl07Ci19OwotCi0vKgotICogUHJpbnQgdXNhZ2UgaW5mby4KLSAqLwotdm9pZCB1c2FnZSh2b2lkKQotewotICAgIGZwcmludGYoc3RkZXJyLCAiT3BhcXVlIEJpbmFyeSBCbG9iIChPQkIpIFRvb2xcblxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICJVc2FnZTpcbiIpOwotICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAiICVzIGFbZGRdIFsgT1BUSU9OUyBdIEZJTEVOQU1FXG4iCi0gICAgICAgICIgICBBZGRzIGFuIE9CQiBzaWduYXR1cmUgdG8gdGhlIGZpbGUuXG5cbiIsIGdQcm9nTmFtZSk7Ci0gICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICIgICBPcHRpb25zOlxuIgotICAgICAgICAiICAgICAtbiA8cGFja2FnZSBuYW1lPiAgICAgIHNldHMgdGhlIE9CQiBwYWNrYWdlIG5hbWUgKHJlcXVpcmVkKVxuIgotICAgICAgICAiICAgICAtdiA8T0JCIHZlcnNpb24+ICAgICAgIHNldHMgdGhlIE9CQiB2ZXJzaW9uIChyZXF1aXJlZClcbiIKLSAgICAgICAgIiAgICAgLW8gICAgICAgICAgICAgICAgICAgICBzZXRzIHRoZSBPQkIgb3ZlcmxheSBmbGFnXG4iCi0gICAgICAgICIgICAgIC1zIDw4IGJ5dGUgaGV4IHNhbHQ+ICAgc2V0cyB0aGUgY3J5cHRvIGtleSBzYWx0IChpZiBlbmNyeXB0ZWQpXG4iCi0gICAgICAgICJcbiIpOwotICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAiICVzIHJbZW1vdmVdIEZJTEVOQU1FXG4iCi0gICAgICAgICIgICBSZW1vdmVzIHRoZSBPQkIgc2lnbmF0dXJlIGZyb20gdGhlIGZpbGUuXG5cbiIsIGdQcm9nTmFtZSk7Ci0gICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICIgJXMgaVtuZm9dIEZJTEVOQU1FXG4iCi0gICAgICAgICIgICBQcmludHMgdGhlIE9CQiBzaWduYXR1cmUgaW5mb3JtYXRpb24gb2YgYSBmaWxlLlxuXG4iLCBnUHJvZ05hbWUpOwotfQotCi12b2lkIGRvQWRkKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBzdHJ1Y3QgUGFja2FnZUluZm8qIGluZm8pIHsKLSAgICBPYmJGaWxlICpvYmIgPSBuZXcgT2JiRmlsZSgpOwotICAgIGlmIChvYmItPnJlYWRGcm9tKGZpbGVuYW1lKSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiAlczogT0JCIHNpZ25hdHVyZSBhbHJlYWR5IHByZXNlbnRcbiIsIGZpbGVuYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG9iYi0+c2V0UGFja2FnZU5hbWUoU3RyaW5nOChpbmZvLT5wYWNrYWdlTmFtZSkpOwotICAgIG9iYi0+c2V0VmVyc2lvbihpbmZvLT5wYWNrYWdlVmVyc2lvbik7Ci0gICAgb2JiLT5zZXRPdmVybGF5KGluZm8tPm92ZXJsYXkpOwotICAgIGlmIChpbmZvLT5zYWx0ZWQpIHsKLSAgICAgICAgb2JiLT5zZXRTYWx0KGluZm8tPnNhbHQsIFNBTFRfTEVOKTsKLSAgICB9Ci0KLSAgICBpZiAoIW9iYi0+d3JpdGVUbyhmaWxlbmFtZSkpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogJXM6IGNvdWxkbid0IHdyaXRlIE9CQiBzaWduYXR1cmU6ICVzXG4iLAotICAgICAgICAgICAgICAgIGZpbGVuYW1lLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZnByaW50ZihzdGRlcnIsICJPQkIgc2lnbmF0dXJlIHN1Y2Nlc3NmdWxseSB3cml0dGVuXG4iKTsKLX0KLQotdm9pZCBkb1JlbW92ZShjb25zdCBjaGFyKiBmaWxlbmFtZSkgewotICAgIE9iYkZpbGUgKm9iYiA9IG5ldyBPYmJGaWxlKCk7Ci0gICAgaWYgKCFvYmItPnJlYWRGcm9tKGZpbGVuYW1lKSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiAlczogbm8gT0JCIHNpZ25hdHVyZSBwcmVzZW50XG4iLCBmaWxlbmFtZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW9iYi0+cmVtb3ZlRnJvbShmaWxlbmFtZSkpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogJXM6IGNvdWxkbid0IHJlbW92ZSBPQkIgc2lnbmF0dXJlXG4iLCBmaWxlbmFtZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBmcHJpbnRmKHN0ZGVyciwgIk9CQiBzaWduYXR1cmUgc3VjY2Vzc2Z1bGx5IHJlbW92ZWRcbiIpOwotfQotCi12b2lkIGRvSW5mbyhjb25zdCBjaGFyKiBmaWxlbmFtZSkgewotICAgIE9iYkZpbGUgKm9iYiA9IG5ldyBPYmJGaWxlKCk7Ci0gICAgaWYgKCFvYmItPnJlYWRGcm9tKGZpbGVuYW1lKSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiAlczogY291bGRuJ3QgcmVhZCBPQkIgc2lnbmF0dXJlXG4iLCBmaWxlbmFtZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBwcmludGYoIk9CQiBpbmZvIGZvciAnJXMnOlxuIiwgZmlsZW5hbWUpOwotICAgIHByaW50ZigiUGFja2FnZSBuYW1lOiAlc1xuIiwgb2JiLT5nZXRQYWNrYWdlTmFtZSgpLnN0cmluZygpKTsKLSAgICBwcmludGYoIiAgICAgVmVyc2lvbjogJWRcbiIsIG9iYi0+Z2V0VmVyc2lvbigpKTsKLSAgICBwcmludGYoIiAgICAgICBGbGFnczogMHglMDh4XG4iLCBvYmItPmdldEZsYWdzKCkpOwotICAgIHByaW50ZigiICAgICBPdmVybGF5OiAlc1xuIiwgb2JiLT5pc092ZXJsYXkoKSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwotICAgIHByaW50ZigiICAgICAgICBTYWx0OiAiKTsKLQotICAgIHNpemVfdCBzYWx0TGVuOwotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHNhbHQgPSBvYmItPmdldFNhbHQoJnNhbHRMZW4pOwotICAgIGlmIChzYWx0ICE9IE5VTEwpIHsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBTQUxUX0xFTjsgaSsrKSB7Ci0gICAgICAgICAgICBwcmludGYoIiUwMngiLCBzYWx0W2ldKTsKLSAgICAgICAgfQotICAgICAgICBwcmludGYoIlxuIik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcHJpbnRmKCI8ZW1wdHk+XG4iKTsKLSAgICB9Ci19Ci0KLWJvb2wgZnJvbUhleChjaGFyIGgsIHVuc2lnbmVkIGNoYXIgKmIpIHsKLSAgICBpZiAoaCA+PSAnMCcgJiYgaCA8PSAnOScpIHsKLSAgICAgICAgKmIgPSBoIC0gJzAnOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKGggPj0gJ2EnICYmIGggPD0gJ2YnKSB7Ci0gICAgICAgICpiID0gaCAtICdhJyArIDEwOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKGggPj0gJ0EnICYmIGggPD0gJ0YnKSB7Ci0gICAgICAgICpiID0gaCAtICdBJyArIDEwOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIGhleFRvQnl0ZShjaGFyIGgxLCBjaGFyIGgyLCB1bnNpZ25lZCBjaGFyKiBiKSB7Ci0gICAgdW5zaWduZWQgY2hhciBmaXJzdCwgc2Vjb25kOwotICAgIGlmICghZnJvbUhleChoMSwgJmZpcnN0KSkgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZnJvbUhleChoMiwgJnNlY29uZCkpIHJldHVybiBmYWxzZTsKLSAgICAqYiA9IChmaXJzdCA8PCA0KSB8IHNlY29uZDsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotLyoKLSAqIFBhcnNlIGFyZ3MuCi0gKi8KLWludCBtYWluKGludCBhcmdjLCBjaGFyKiBjb25zdCBhcmd2W10pCi17Ci0gICAgaW50IG9wdDsKLSAgICBpbnQgb3B0aW9uX2luZGV4ID0gMDsKLSAgICBzdHJ1Y3QgUGFja2FnZUluZm8gcGFja2FnZV9pbmZvOwotCi0gICAgaW50IHJlc3VsdCA9IDE7ICAgIC8vIHBlc3NpbWlzdGljYWxseSBhc3N1bWUgYW4gZXJyb3IuCi0KLSAgICBpZiAoYXJnYyA8IDIpIHsKLSAgICAgICAgd2FudFVzYWdlID0gMTsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotICAgIHdoaWxlICgob3B0ID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgQUREX09QVFMsIGxvbmdvcHRzLCAmb3B0aW9uX2luZGV4KSkgIT0gLTEpIHsKLSAgICAgICAgc3dpdGNoIChvcHQpIHsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgaWYgKGxvbmdvcHRzW29wdGlvbl9pbmRleF0uZmxhZykKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJyVzJyByZXF1aXJlcyBhbiBhcmd1bWVudFxuIiwgbG9uZ29wdHNbb3B0aW9uX2luZGV4XS5uYW1lKTsKLSAgICAgICAgICAgIHdhbnRVc2FnZSA9IDE7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIGNhc2UgJ24nOgotICAgICAgICAgICAgcGFja2FnZV9pbmZvLnBhY2thZ2VOYW1lID0gb3B0YXJnOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgJ3YnOiB7Ci0gICAgICAgICAgICBjaGFyKiBlbmQ7Ci0gICAgICAgICAgICBwYWNrYWdlX2luZm8ucGFja2FnZVZlcnNpb24gPSBzdHJ0b2wob3B0YXJnLCAmZW5kLCAxMCk7Ci0gICAgICAgICAgICBpZiAoKm9wdGFyZyA9PSAnXDAnIHx8ICplbmQgIT0gJ1wwJykgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IGludmFsaWQgdmVyc2lvbjsgc2hvdWxkIGJlIGludGVnZXIhXG5cbiIpOwotICAgICAgICAgICAgICAgIHdhbnRVc2FnZSA9IDE7Ci0gICAgICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSAnbyc6Ci0gICAgICAgICAgICBwYWNrYWdlX2luZm8ub3ZlcmxheSA9IHRydWU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAncyc6Ci0gICAgICAgICAgICBpZiAoc3RybGVuKG9wdGFyZykgIT0gU0FMVF9MRU4gKiAyKSB7Ci0gICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogc2FsdCBtdXN0IGJlIDggYnl0ZXMgaW4gaGV4IChlLmcuLCBBQkNENjUwMzEzMzdEMDBEKVxuXG4iKTsKLSAgICAgICAgICAgICAgICB3YW50VXNhZ2UgPSAxOwotICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcGFja2FnZV9pbmZvLnNhbHRlZCA9IHRydWU7Ci0KLSAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYjsKLSAgICAgICAgICAgIGZvciAoaW50IGkgPSAwLCBqID0gMDsgaSA8IFNBTFRfTEVOOyBpKyssIGorPTIpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWhleFRvQnl0ZShvcHRhcmdbal0sIG9wdGFyZ1tqKzFdLCAmYikpIHsKLSAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogc2FsdCBtdXN0IGJlIGluIGhleCAoZS5nLiwgQUJDRDY1MDMxMzM3RDAwRClcbiIpOwotICAgICAgICAgICAgICAgICAgICB3YW50VXNhZ2UgPSAxOwotICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHBhY2thZ2VfaW5mby5zYWx0W2ldID0gYjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICc/JzoKLSAgICAgICAgICAgIHdhbnRVc2FnZSA9IDE7Ci0gICAgICAgICAgICBnb3RvIGJhaWw7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAod2FudFZlcnNpb24pIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyAlc1xuIiwgZ1Byb2dOYW1lLCBnUHJvZ1ZlcnNpb24pOwotICAgIH0KLQotICAgIGlmICh3YW50VXNhZ2UpIHsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQotI2RlZmluZSBDSEVDS19PUChuYW1lKSBcCi0gICAgaWYgKHN0cm5jbXAob3AsIG5hbWUsIG9wc2l6ZSkpIHsgXAotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiB1bmtub3duIGZ1bmN0aW9uICclcychXG5cbiIsIG9wKTsgXAotICAgICAgICB3YW50VXNhZ2UgPSAxOyBcCi0gICAgICAgIGdvdG8gYmFpbDsgXAotICAgIH0KLQotICAgIGlmIChvcHRpbmQgPCBhcmdjKSB7Ci0gICAgICAgIGNvbnN0IGNoYXIqIG9wID0gYXJndltvcHRpbmQrK107Ci0gICAgICAgIGNvbnN0IGludCBvcHNpemUgPSBzdHJsZW4ob3ApOwotCi0gICAgICAgIGlmIChvcHRpbmQgPj0gYXJnYykgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogZmlsZW5hbWUgcmVxdWlyZWQhXG5cbiIpOwotICAgICAgICAgICAgd2FudFVzYWdlID0gMTsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IGNoYXIqIGZpbGVuYW1lID0gYXJndltvcHRpbmQrK107Ci0KLSAgICAgICAgc3dpdGNoIChvcFswXSkgewotICAgICAgICBjYXNlICdhJzoKLSAgICAgICAgICAgIENIRUNLX09QKCJhZGQiKTsKLSAgICAgICAgICAgIGlmIChwYWNrYWdlX2luZm8ucGFja2FnZU5hbWUgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IGFyZ3VtZW50cyByZXF1aXJlZCAncGFja2FnZU5hbWUnIGFuZCAndmVyc2lvbidcbiIpOwotICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRvQWRkKGZpbGVuYW1lLCAmcGFja2FnZV9pbmZvKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICdyJzoKLSAgICAgICAgICAgIENIRUNLX09QKCJyZW1vdmUiKTsKLSAgICAgICAgICAgIGRvUmVtb3ZlKGZpbGVuYW1lKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICdpJzoKLSAgICAgICAgICAgIENIRUNLX09QKCJpbmZvIik7Ci0gICAgICAgICAgICBkb0luZm8oZmlsZW5hbWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiB1bmtub3duIGNvbW1hbmQgJyVzJyFcblxuIiwgb3ApOwotICAgICAgICAgICAgd2FudFVzYWdlID0gMTsKLSAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgfQotICAgIH0KLQotYmFpbDoKLSAgICBpZiAod2FudFVzYWdlKSB7Ci0gICAgICAgIHVzYWdlKCk7Ci0gICAgICAgIHJlc3VsdCA9IDI7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL29iYnRvb2wvbWtvYmIuc2ggYi90b29scy9vYmJ0b29sL21rb2JiLnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA3MjUyNTBkLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL29iYnRvb2wvbWtvYmIuc2gKKysrIC9kZXYvbnVsbApAQCAtMSwyODEgKzAsMCBAQAotIyEvYmluL2Jhc2gKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMgCi0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0jIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jIAotIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotIwotCi0jIG1rb2JiLnNoIC0gQ3JlYXRlcyBPQkIgZmlsZXMgb24gTGludXggbWFjaGluZXMKLQotIyBEaXJlY3Rvcnkgd2hlcmUgd2Ugc2hvdWxkIHRlbXBvcmFyaWx5IG1vdW50IHRoZSBPQkIgbG9vcGJhY2sgdG8gY29weSBmaWxlcwotTU9VTlRESVI9L3RtcAotCi0jIFByZXNldHMuIENoYW5naW5nIHRoZXNlIHdpbGwgcHJvYmFibHkgYnJlYWsgeW91ciBPQkIgb24gdGhlIGRldmljZQotQ1JZUFRPPXR3b2Zpc2gKLUZTPXZmYXQKLU1LRlM9bWtmcy52ZmF0Ci1MT1NFVFVQPWxvc2V0dXAKLUJMT0NLX1NJWkU9NTEyCi1TTE9QPTUxMiAjIEFtb3VudCBvZiBmaWxlc3lzdGVtIHNsb3AgaW4gJHtCTE9DS19TSVpFfSBibG9ja3MKLQotZmluZF9iaW5hcmllcygpIHsKLSAgICBNS0ZTQklOPWB3aGljaCAke01LRlN9YAotICAgIExPU0VUVVBCSU49YHdoaWNoICR7TE9TRVRVUH1gCi0gICAgTU9VTlRCSU49YHdoaWNoIG1vdW50YAotICAgIFVNT1VOVEJJTj1gd2hpY2ggdW1vdW50YAotICAgIEREQklOPWB3aGljaCBkZGAKLSAgICBSU1lOQ0JJTj1gd2hpY2ggcnN5bmNgCi0gICAgUEJLREYyR0VOPWB3aGljaCBwYmtkZjJnZW5gCi19Ci0KLWNoZWNrX3ByZXJlcXMoKSB7Ci0gICAgaWYgWyAiYHVuYW1lIC1zYHgiICE9ICJMaW51eHgiIF07IHRoZW4gXAotICAgICAgICBlY2hvICJFUlJPUjogVGhpcyBzY3JpcHQgb25seSB3b3JrcyBvbiBMaW51eCEiCi0gICAgICAgIGV4aXQgMQotICAgIGZpCi0KLSAgICBpZiAhIGVncmVwIC1xICJeY3J5cHRvbG9vcCAiIC9wcm9jL21vZHVsZXM7IHRoZW4gXAotICAgICAgICBlY2hvICJFUlJPUjogQ291bGQgbm90IGZpbmQgY3J5cHRvbG9vcCBpbiB0aGUga2VybmVsLiIKLSAgICAgICAgZWNobyAiUGVyaGFwcyB5b3UgbmVlZCB0bzogbW9kcHJvYmUgY3J5cHRvbG9vcCIKLSAgICAgICAgZXhpdCAxCi0gICAgZmkKLQotICAgIGlmICEgZWdyZXAgLXEgIm5hbWVccyo6XHMqJHtDUllQVE99JCIgL3Byb2MvY3J5cHRvOyB0aGVuIFwKLSAgICAgICAgZWNobyAiRVJST1I6IENvdWxkIG5vdCBmaW5kIGNyeXB0byBcYCR7Q1JZUFRPfScgaW4gdGhlIGtlcm5lbC4iCi0gICAgICAgIGVjaG8gIlBlcmhhcHMgeW91IG5lZWQgdG86IG1vZHByb2JlICR7Q1JZUFRPfSIKLSAgICAgICAgZXhpdCAxCi0gICAgZmkKLQotICAgIGlmICEgZWdyZXAgLXEgIl5ccyoke0ZTfSQiIC9wcm9jL2ZpbGVzeXN0ZW1zOyB0aGVuIFwKLSAgICAgICAgZWNobyAiRVJST1I6IENvdWxkIG5vdCBmaW5kIGZpbGVzeXN0ZW0gXGAke0ZTfScgaW4gdGhlIGtlcm5lbC4iCi0gICAgICAgIGVjaG8gIlBlcmhhcHMgeW91IG5lZWQgdG86IG1vZHByb2JlICR7RlN9IgotICAgICAgICBleGl0IDEKLSAgICBmaQotCi0gICAgaWYgWyAiJHtNS0ZTQklOfXgiID0gIngiIF07IHRoZW4gXAotICAgICAgICBlY2hvICJFUlJPUjogQ291bGQgbm90IGZpbmQgJHtNS0ZTfSBpbiB5b3VyIHBhdGghIgotICAgICAgICBleGl0IDEKLSAgICBlbGlmIFsgISAteCAiJHtNS0ZTQklOfSIgXTsgdGhlbiBcCi0gICAgICAgIGVjaG8gIkVSUk9SOiAke01LRlNCSU59IGlzIG5vdCBleGVjdXRhYmxlISIKLSAgICAgICAgZXhpdCAxCi0gICAgZmkKLQotICAgIGlmIFsgIiR7TE9TRVRVUEJJTn14IiA9ICJ4IiBdOyB0aGVuIFwKLSAgICAgICAgZWNobyAiRVJST1I6IENvdWxkIG5vdCBmaW5kICR7TE9TRVRVUH0gaW4geW91ciBwYXRoISIKLSAgICAgICAgZXhpdCAxCi0gICAgZWxpZiBbICEgLXggIiR7TE9TRVRVUEJJTn0iIF07IHRoZW4gXAotICAgICAgICBlY2hvICJFUlJPUjogJHtMT1NFVFVQQklOfSBpcyBub3QgZXhlY3V0YWJsZSEiCi0gICAgICAgIGV4aXQgMQotICAgIGZpCi0KLSAgICBpZiBbICIke1BCS0RGMkdFTn14IiA9ICJ4IiBdOyB0aGVuIFwKLSAgICAgICAgZWNobyAiRVJST1I6IENvdWxkIG5vdCBmaW5kIHBia2RmMmdlbiBpbiB5b3VyIHBhdGghIgotICAgICAgICBleGl0IDEKLSAgICBmaQotfQotCi1jbGVhbnVwKCkgewotICAgIGlmIFsgIiR7bG9vcGRldn14IiAhPSAieCIgXTsgdGhlbiBcCi0gICAgICAgICR7TE9TRVRVUEJJTn0gLWQgJHtsb29wZGV2fQotICAgIGZpCi19Ci0KLWhpZGRlbl9wcm9tcHQoKSB7Ci0gICAgdW5zZXQgb3V0cHV0Ci0gICAgcHJvbXB0PSIkMSIKLSAgICBvdXR2YXI9IiQyIgotICAgIHdoaWxlIHJlYWQgLXMgLW4gMSAtcCAiJHByb21wdCIgYzsgZG8gXAotICAgICAgICBpZiBbICJ4JGMiID0gIngiIF07IHRoZW4gXAotICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgZmkKLSAgICAgICAgcHJvbXB0PScqJwotICAgICAgICBvdXRwdXQ9IiR7b3V0cHV0fSR7Y30iCi0gICAgZG9uZQotICAgIGVjaG8KLSAgICBldmFsICRvdXR2YXI9IiRvdXRwdXQiCi0gICAgdW5zZXQgb3V0cHV0Ci19Ci0KLXJlYWRfa2V5KCkgewotICAgIGhpZGRlbl9wcm9tcHQgIiAgICAgICAgRW5jcnlwdGlvbiBrZXk6ICIga2V5Ci0KLSAgICBpZiBbICIke2tleX14IiA9ICJ4IiBdOyB0aGVuIFwKLSAgICAgICAgZWNobyAiRVJST1I6IEFuIGVtcHR5IGtleSBpcyBub3QgYWxsb3dlZCEiCi0gICAgICAgIGV4aXQgMQotICAgIGZpCi0KLSAgICBoaWRkZW5fcHJvbXB0ICJFbmNyeXB0aW9uIGtleSAoYWdhaW4pOiAiIGtleTIKLQotICAgIGlmIFsgIiR7a2V5fXgiICE9ICIke2tleTJ9eCIgXTsgdGhlbiBcCi0gICAgICAgIGVjaG8gIkVSUk9SOiBFbmNyeXB0aW9uIGtleXMgZG8gbm90IG1hdGNoISIKLSAgICAgICAgZXhpdCAxCi0gICAgZmkKLX0KLQotb25leGl0KCkgewotICAgIGlmIFsgIngke3RlbXBfbW91bnR9IiAhPSAieCIgXTsgdGhlbiBcCi0gICAgICAgICR7VU1PVU5UQklOfSAke3RlbXBfbW91bnR9Ci0gICAgICAgIHJtZGlyICR7dGVtcF9tb3VudH0KLSAgICBmaQotICAgIGlmIFsgIngke2xvb3BfZGV2fSIgIT0gIngiIF07IHRoZW4gXAotICAgICAgICBpZiBbICR7dXNlX2NyeXB0b30gLWVxIDEgXTsgdGhlbiBcCi0gICAgICAgICAgICBkbXNldHVwIHJlbW92ZSAtZiAke2xvb3BfZGV2fQotICAgICAgICAgICAgJHtMT1NFVFVQQklOfSAtZCAke29sZF9sb29wX2Rldn0KLSAgICAgICAgZWxzZSBcCi0gICAgICAgICAgICAke0xPU0VUVVBCSU59IC1kICR7bG9vcF9kZXZ9Ci0gICAgICAgIGZpCi0gICAgZmkKLSAgICBpZiBbICJ4JHt0ZW1wZmlsZX0iICE9ICJ4IiAtYSAtZiAiJHt0ZW1wZmlsZX0iIF07IHRoZW4gXAotICAgICAgICBybSAtZiAke3RlbXBmaWxlfQotICAgIGZpCi0gICAgaWYgWyAieCR7a2V5ZmlsZX0iICE9ICJ4IiAtYSAtZiAiJHtrZXlmaWxlfSIgXTsgdGhlbiBcCi0gICAgICAgIHJtIC1mICR7a2V5ZmlsZX0KLSAgICBmaQotICAgIGVjaG8gIkZhdGFsIGVycm9yLiIKLSAgICBleGl0IDEKLX0KLQotdXNhZ2UoKSB7Ci0gICAgZWNobyAibWtvYmIuc2ggLS0gQ3JlYXRlIE9CQiBmaWxlcyBmb3IgdXNlIG9uIEFuZHJvaWQiCi0gICAgZWNobyAiIgotICAgIGVjaG8gIiAtZCA8ZGlyZWN0b3J5PiBVc2UgPGRpcmVjdG9yeT4gYXMgaW5wdXQgZm9yIE9CQiBmaWxlcyIKLSAgICBlY2hvICIgLWsgPGtleT4gICAgICAgVXNlIDxrZXk+IHRvIGVuY3J5cHQgT0JCIGZpbGUiCi0gICAgZWNobyAiIC1LICAgICAgICAgICAgIFByb21wdCBmb3Iga2V5IHRvIGVuY3J5cHQgT0JCIGZpbGUiCi0gICAgZWNobyAiIC1vIDxmaWxlbmFtZT4gIFdyaXRlIE9CQiBmaWxlIG91dCB0byA8ZmlsZW5hbWU+IgotICAgIGVjaG8gIiAtdiAgICAgICAgICAgICBWZXJib3NlIG1vZGUiCi0gICAgZWNobyAiIC1oICAgICAgICAgICAgIEhlbHA7IHRoaXMgdXNhZ2Ugc2NyZWVuIgotfQotCi1maW5kX2JpbmFyaWVzCi1jaGVja19wcmVyZXFzCi0KLXVzZV9jcnlwdG89MAotCi1hcmdzPWBnZXRvcHQgLW8gZDpoazpLbzp2IC0tICIkQCJgCi1ldmFsIHNldCAtLSAiJGFyZ3MiCi0KLXdoaWxlIHRydWU7IGRvIFwKLSAgICBjYXNlICIkMSIgaW4KLSAgICAgICAgLWQpIGRpcmVjdG9yeT0kMjsgc2hpZnQgMjs7Ci0gICAgICAgIC1oKSB1c2FnZTsgZXhpdCAxOzsKLSAgICAgICAgLWspIGtleT0kMjsgdXNlX2NyeXB0bz0xOyBzaGlmdCAyOzsKLSAgICAgICAgLUspIHByb21wdF9rZXk9MTsgdXNlX2NyeXB0bz0xOyBzaGlmdDs7Ci0gICAgICAgIC12KSB2ZXJib3NlPTE7IHNoaWZ0OzsKLSAgICAgICAgLW8pIGZpbGVuYW1lPSQyOyBzaGlmdCAyOzsKLSAgICAgICAgLS0pIHNoaWZ0OyBicmVhazs7Ci0gICAgICAgICopIGVjaG8gIkVSUk9SOiBJbnZhbGlkIGFyZ3VtZW50IGluIG9wdGlvbiBwYXJzaW5nISBDYW5ub3QgcmVjb3Zlci4gRXZlci4iOyBleGl0IDE7OwotICAgIGVzYWMKLWRvbmUKLQotaWYgWyAiJHtkaXJlY3Rvcnl9eCIgPSAieCIgLW8gISAtZCAiJHtkaXJlY3Rvcnl9IiBdOyB0aGVuIFwKLSAgICBlY2hvICJFUlJPUjogTXVzdCBzcGVjaWZ5IHZhbGlkIGlucHV0IGRpcmVjdG9yeSIKLSAgICBlY2hvICIiCi0gICAgdXNhZ2UKLSAgICBleGl0IDE7Ci1maQotCi1pZiBbICIke2ZpbGVuYW1lfXgiID0gIngiIF07IHRoZW4gXAotICAgIGVjaG8gIkVSUk9SOiBNdXN0IHNwZWNpZnkgZmlsZW5hbWUiCi0gICAgZWNobyAiIgotICAgIHVzYWdlCi0gICAgZXhpdCAxOwotZmkKLQotaWYgWyAke3VzZV9jcnlwdG99IC1lcSAxIC1hICIke2tleX14IiA9ICJ4IiAtYSAwJHtwcm9tcHRfa2V5fSAtZXEgMCBdOyB0aGVuIFwKLSAgICBlY2hvICJFUlJPUjogQ3J5cHRvIGRlc2lyZWQsIGJ1dCBubyBrZXkgc3VwcGxpZWQgb3IgcmVxdWVzdGVkIHRvIHByb21wdCBmb3IuIgotICAgIGV4aXQgMQotZmkKLQotaWYgWyAwJHtwcm9tcHRfa2V5fSAtZXEgMSBdOyB0aGVuIFwKLSAgICByZWFkX2tleQotZmkKLQotb3V0ZGlyPWBkaXJuYW1lICR7ZmlsZW5hbWV9YAotaWYgWyAhIC1kICIke291dGRpcn0iIF07IHRoZW4gXAotICAgIGVjaG8gIkVSUk9SOiBPdXRwdXQgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0OiAke291dGRpcn0iCi0gICAgZXhpdCAxCi1maQotCi0jIE1ha2Ugc3VyZSB3ZSBjbGVhbiB1cCBhbnkgc3R1ZmYgd2UgY3JlYXRlIGZyb20gaGVyZSBvbiBkdXJpbmcgZXJyb3IgY29uZGl0aW9ucwotdHJhcCBvbmV4aXQgRVJSCi0KLXRlbXBmaWxlPSQodGVtcGZpbGUgLWQgJHtvdXRkaXJ9KSB8fCAoIGVjaG8gIkVSUk9SOiBjb3VsZG4ndCBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUgaW4gJHtvdXRkaXJ9IjsgZXhpdCAxICkKLQotYmxvY2tfY291bnQ9YGR1IC1zIC0tYXBwYXJlbnQtc2l6ZSAtLWJsb2NrLXNpemU9NTEyICR7ZGlyZWN0b3J5fSB8IGF3ayAneyBwcmludCAkMTsgfSdgCi1pZiBbICQ/IC1uZSAwIF07IHRoZW4gXAotICAgIGVjaG8gIkVSUk9SOiBDb3VsZG4ndCByZWFkIHNpemUgb2YgaW5wdXQgZGlyZWN0b3J5ICR7ZGlyZWN0b3J5fSIKLSAgICBleGl0IDEKLWZpCi0KLWVjaG8gIkNyZWF0aW5nIHRlbXBvcmFyeSBmaWxlLi4uIgotJHtEREJJTn0gaWY9L2Rldi96ZXJvIG9mPSR7dGVtcGZpbGV9IGJzPSR7QkxPQ0tfU0laRX0gY291bnQ9JCgoJHtibG9ja19jb3VudH0gKyAke1NMT1B9KSkgPiAvZGV2L251bGwgMj4mMQotaWYgWyAkPyAtbmUgMCBdOyB0aGVuIFwKLSAgICBlY2hvICJFUlJPUjogY3JlYXRpbmcgdGVtcG9yYXJ5IGZpbGU6ICQ/IgotZmkKLQotbG9vcF9kZXY9JCgke0xPU0VUVVBCSU59IC1mKSB8fCAoIGVjaG8gIkVSUk9SOiBsb3NldHVwIHdvdWxkbid0IHRlbGwgdXMgdGhlIG5leHQgdW51c2VkIGRldmljZSI7IGV4aXQgMSApCi0KLSR7TE9TRVRVUEJJTn0gJHtsb29wX2Rldn0gJHt0ZW1wZmlsZX0gfHwgKCBlY2hvICJFUlJPUjogY291bGRuJ3QgY3JlYXRlIGxvb3BiYWNrIGRldmljZSI7IGV4aXQgMSApCi0KLWlmIFsgJHt1c2VfY3J5cHRvfSAtZXEgMSBdOyB0aGVuIFwKLSAgICBldmFsIGAke1BCS0RGMkdFTn0gJHtrZXl9YAotICAgIHVuaXF1ZV9kbV9uYW1lPWBiYXNlbmFtZSAke3RlbXBmaWxlfWAKLSAgICBlY2hvICIwIGBibG9ja2RldiAtLWdldHNpemUgJHtsb29wX2Rldn1gIGNyeXB0ICR7Q1JZUFRPfSAke2tleX0gMCAke2xvb3BfZGV2fSAwIiB8IGRtc2V0dXAgY3JlYXRlICR7dW5pcXVlX2RtX25hbWV9Ci0gICAgb2xkX2xvb3BfZGV2PSR7bG9vcF9kZXZ9Ci0gICAgbG9vcF9kZXY9L2Rldi9tYXBwZXIvJHt1bmlxdWVfZG1fbmFtZX0KLWZpCi0KLSMKLSMgQ3JlYXRlIHRoZSBmaWxlc3lzdGVtCi0jCi1lY2hvICIiCi0ke01LRlNCSU59IC1JICR7bG9vcF9kZXZ9Ci1lY2hvICIiCi0KLSMKLSMgTWFrZSB0aGUgdGVtcG9yYXJ5IG1vdW50IHBvaW50IGFuZCBtb3VudCBpdAotIwotdGVtcF9tb3VudD0iJHtNT1VOVERJUn0vJHtSQU5ET019IgotbWtkaXIgJHt0ZW1wX21vdW50fQotJHtNT1VOVEJJTn0gLXQgJHtGU30gLW8gbG9vcCAke2xvb3BfZGV2fSAke3RlbXBfbW91bnR9Ci0KLSMKLSMgcnN5bmMgdGhlIGZpbGVzIQotIwotZWNobyAiQ29weWluZyBmaWxlczoiCi0ke1JTWU5DQklOfSAtYXYgLS1uby1vd25lciAtLW5vLWdyb3VwICR7ZGlyZWN0b3J5fS8gJHt0ZW1wX21vdW50fS8KLWVjaG8gIiIKLQotZWNobyAiU3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgXGAke2ZpbGVuYW1lfSciCi0KLWlmIFsgJHt1c2VfY3J5cHRvfSAtZXEgMSBdOyB0aGVuIFwKLSAgICBlY2hvICJzYWx0IGZvciB1c2Ugd2l0aCBvYmJ0b29sIGlzOiIKLSAgICBlY2hvICIke3NhbHR9IgotZmkKLQotIwotIyBVbmRvIGFsbCB0aGUgdGVtcG9yYXJpZXMKLSMKLXVtb3VudCAke3RlbXBfbW91bnR9Ci1ybWRpciAke3RlbXBfbW91bnR9Ci1pZiBbICR7dXNlX2NyeXB0b30gLWVxIDEgXTsgdGhlbiBcCi0gICAgZG1zZXR1cCByZW1vdmUgLWYgJHtsb29wX2Rldn0KLSAgICAke0xPU0VUVVBCSU59IC1kICR7b2xkX2xvb3BfZGV2fQotZWxzZSBcCi0gICAgJHtMT1NFVFVQQklOfSAtZCAke2xvb3BfZGV2fQotZmkKLW12ICR7dGVtcGZpbGV9ICR7ZmlsZW5hbWV9Ci0KLXRyYXAgLSBFUlIKLQotZXhpdCAwCmRpZmYgLS1naXQgYS90b29scy9vYmJ0b29sL3Bia2RmMmdlbi5jcHAgYi90b29scy9vYmJ0b29sL3Bia2RmMmdlbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4ZDY3YzAuLjAwMDAwMDAKLS0tIGEvdG9vbHMvb2JidG9vbC9wYmtkZjJnZW4uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgotCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0KLS8qKgotICogU2ltcGxlIHByb2dyYW0gdG8gZ2VuZXJhdGUgYSBrZXkgYmFzZWQgb24gUEJLREYyIHdpdGggcHJlc2V0IGlucHV0cy4KLSAqCi0gKiBXaWxsIHByaW50IG91dCB0aGUgc2FsdCBhbmQga2V5IGluIGhleC4KLSAqLwotCi0jZGVmaW5lIFNBTFRfTEVOIDgKLSNkZWZpbmUgUk9VTkRTIDEwMjQKLSNkZWZpbmUgS0VZX0JJVFMgMTI4Ci0KLWludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCi17Ci0gICAgaWYgKGFyZ2MgIT0gMikgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiAlcyA8cGFzc3dvcmQ+XG4iLCBhcmd2WzBdKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0KLSAgICBpbnQgZmQgPSBvcGVuKCIvZGV2L3VyYW5kb20iLCBPX1JET05MWSk7Ci0gICAgaWYgKGZkIDwgMCkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkNvdWxkIG5vdCBvcGVuIC9kZXYvdXJhbmRvbTogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgIGNsb3NlKGZkKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBjaGFyIHNhbHRbU0FMVF9MRU5dOwotCi0gICAgaWYgKHJlYWQoZmQsICZzYWx0LCBTQUxUX0xFTikgIT0gU0FMVF9MRU4pIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3QgcmVhZCBzYWx0IGZyb20gL2Rldi91cmFuZG9tOiAlc1xuIiwgc3RyZXJyb3IoZXJybm8pKTsKLSAgICAgICAgY2xvc2UoZmQpOwotICAgICAgICBleGl0KDEpOwotICAgIH0KLSAgICBjbG9zZShmZCk7Ci0KLSAgICB1bnNpZ25lZCBjaGFyIHJhd0tleVtLRVlfQklUU107Ci0KLSAgICBpZiAoUEtDUzVfUEJLREYyX0hNQUNfU0hBMShhcmd2WzFdLCBzdHJsZW4oYXJndlsxXSksIHNhbHQsIFNBTFRfTEVOLAotICAgICAgICAgICAgUk9VTkRTLCBLRVlfQklUUywgcmF3S2V5KSAhPSAxKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IGdlbmVyYXRlIFBCS0RGMiBvdXRwdXQ6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICBleGl0KDEpOwotICAgIH0KLQotICAgIHByaW50Zigic2FsdD0iKTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IFNBTFRfTEVOOyBpKyspIHsKLSAgICAgICAgcHJpbnRmKCIlMDJ4Iiwgc2FsdFtpXSk7Ci0gICAgfQotICAgIHByaW50ZigiXG4iKTsKLQotICAgIHByaW50Zigia2V5PSIpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKEtFWV9CSVRTIC8gOCk7IGkrKykgewotICAgICAgICBwcmludGYoIiUwMngiLCByYXdLZXlbaV0pOwotICAgIH0KLSAgICBwcmludGYoIlxuIik7Ci19CmRpZmYgLS1naXQgYS90b29scy9vcmllbnRhdGlvbnBsb3QvUkVBRE1FLnR4dCBiL3Rvb2xzL29yaWVudGF0aW9ucGxvdC9SRUFETUUudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTNmNjVlLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL29yaWVudGF0aW9ucGxvdC9SRUFETUUudHh0CisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgYSBzaW1wbGUgcHl0aG9uIHNjcmlwdCBmb3IgdmlzdWFsaXppbmcKLXRoZSBiZWhhdmlvciBvZiB0aGUgV2luZG93T3JpZW50YXRpb25MaXN0ZW5lci4KLQotCi1QUkVSRVFVSVNJVEVTCi0tLS0tLS0tLS0tLS0tCi0KLTEuIFB5dGhvbiAyLjYKLTIuIG51bXB5Ci0zLiBtYXRwbG90bGliCi0KLQotVVNBR0UKLS0tLS0tCi0KLVRoZSB0b29sIHdvcmtzIGJ5IHNjYXBpbmcgdGhlIGRlYnVnIGxvZyBvdXRwdXQgZnJvbSBXaW5kb3dPcmllbnRhdGlvbkxpc3RlbmVyCi1mb3IgaW50ZXJlc3RpbmcgZGF0YSBhbmQgdGhlbiBwbG90dGluZyBpdC4KLQotMS4gUGx1ZyBpbiB0aGUgZGV2aWNlLiAgRW5zdXJlIHRoYXQgaXQgaXMgdGhlIG9ubHkgZGV2aWNlIHBsdWdnZWQgaW4KLSAgIHNpbmNlIHRoaXMgc2NyaXB0IGlzIG9mIHZlcnkgbGl0dGxlIGJyYWluIGFuZCB3aWxsIGdldCBjb25mdXNlZCBvdGhlcndpc2UuCi0KLTIuIEVuYWJsZSB0aGUgV2luZG93IE9yaWVudGF0aW9uIExpc3RlbmVyIGRlYnVnZ2luZyBkYXRhIGxvZy4KLSAgIGFkYiBzaGVsbCBzZXRwcm9wIGRlYnVnLm9yaWVudGF0aW9uLmxvZyB0cnVlCi0gICBhZGIgc2hlbGwgc3RvcAotICAgYWRiIHNoZWxsIHN0YXJ0Ci0KLTMuIFJ1biAib3JpZW50YXRpb25wbG90LnB5Ii4KLQotCi1XSEFUIElUIEFMTCBNRUFOUwotLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIHRvb2wgZGlzcGxheXMgc2V2ZXJhbCB0aW1lIHNlcmllcyBncmFwaHMgdGhhdCBwbG90IHRoZSBvdXRwdXQgb2YgdGhlCi1XaW5kb3dPcmllbnRhdGlvbkxpc3RlbmVyLiAgSGVyZSB5b3UgY2FuIHNlZSB0aGUgcmF3IGFjY2VsZXJvbWV0ZXIgZGF0YSwKLWZpbHRlcmVkIGFjY2VsZXJvbWV0ZXIgZGF0YSwgbWVhc3VyZWQgdGlsdCBhbmQgb3JpZW50YXRpb24gYW5nbGUsIGNvbmZpZGVuY2UKLWludGVydmFscyBmb3IgdGhlIHByb3Bvc2VkIG9yaWVudGF0aW9uIGFuZCBhY2NlbGVyb21ldGVyIGxhdGVuY3kuCi0KLVRoaW5ncyB0byBsb29rIGZvcjoKLQotMS4gRW5zdXJlIHRoZSBmaWx0ZXJpbmcgaXMgbm90IHRvbyBhZ2dyZXNzaXZlLiAgSWYgdGhlIGZpbHRlciBjdXQtb2ZmIGZyZXF1ZW5jeSBpcwotICAgbGVzcyB0aGFuIGFib3V0IDFIeiwgdGhlbiB0aGUgZmlsdGVyZWQgYWNjZWxvcm9tZXRlciBkYXRhIGJlY29tZXMgdG9vIHNtb290aAotICAgYW5kIHRoZSBsYXRlbmN5IGZvciBvcmllbnRhdGlvbiBkZXRlY3Rpb24gZ29lcyB1cC4gIE9uZSB3YXkgdG8gb2JzZXJ2ZSB0aGlzCi0gICBpcyBieSBob2xkaW5nIHRoZSBkZXZpY2UgdmVydGljYWxseSBpbiBvbmUgb3JpZW50YXRpb24gdGhlbiBzaGFycGx5IHR1cm5pbmcKLSAgIGl0IDkwIGRlZ3JlZXMgdG8gYSBkaWZmZXJlbnQgb3JpZW50YXRpb24uICBDb21wYXJlZCB0aGUgcmFwaWQgY2hhbmdlcyBpbiB0aGUKLSAgIHJhdyBhY2NlbGVyb21ldGVyIGRhdGEgd2l0aCB0aGUgc21vb3RoZWQgb3V0IGZpbHRlcmVkIGRhdGEuICBJZiB0aGUgZmlsdGVyaW5nCi0gICBpcyB0b28gYWdncmVzc2l2ZSwgdGhlIGZpbHRlciByZXNwb25zZSBtYXkgbGFnIGJ5IGh1bmRyZWRzIG9mIG1pbGxpc2Vjb25kcy4KLQotMi4gRW5zdXJlIHRoYXQgdGhlcmUgaXMgYW4gYXBwcm9wcmlhdGUgZ2FwIGJldHdlZW4gYWRqYWNlbnQgb3JpZW50YXRpb24gYW5nbGVzCi0gICBmb3IgaHlzdGVyZXNpcy4gIFRyeSBob2xkaW5nIHRoZSBkZXZpY2UgaW4gb25lIG9yaWVudGF0aW9uIGFuZCBzbG93bHkgdHVybmluZwotICAgaXQgOTAgZGVncmVlcy4gIE5vdGUgdGhhdCB0aGUgY29uZmlkZW5jZSBpbnRlcnZhbHMgd2lsbCBhbGwgZHJvcCB0byAwIGF0IHNvbWUKLSAgIHBvaW50IGluIGJldHdlZW4gdGhlIHR3byBvcmllbnRhdGlvbnM7IHRoYXQgaXMgdGhlIGdhcC4gIFRoZSBnYXAgc2hvdWxkIGJlCi0gICBvYnNlcnZlZCBiZXR3ZWVuIGFsbCBhZGphY2VudCBwYWlycyBvZiBvcmllbnRhdGlvbnMgd2hlbiB0dXJuaW5nIHRoZSBkZXZpY2UKLSAgIGluIGVpdGhlciBkaXJlY3Rpb24uCi0KLSAgIE5leHQgdHJ5IGhvbGRpbmcgdGhlIGRldmljZSBpbiBvbmUgb3JpZW50YXRpb24gYW5kIHJhcGlkbHkgdHVybmluZyBpdCBlbmQKLSAgIG92ZXIgZW5kIHRvIGEgbWlkcG9pbnQgYWJvdXQgNDUgZGVncmVlcyBiZXR3ZWVuIHR3byBvcHBvc2luZyBvcmllbnRhdGlvbnMuCi0gICBUaGVyZSBzaG91bGQgYmUgbm8gZ2FwIG9ic2VydmVkIGluaXRpYWxseS4gIFRoZSBhbGdvcml0aG0gc2hvdWxkIHBpY2sgb25lCi0gICBvZiB0aGUgb3JpZW50YXRpb25zIGFuZCBzZXR0bGUgaW50byBpdCAoc2luY2UgaXQgaXMgb2J2aW91c2x5IHF1aXRlCi0gICBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgb3JpZW50YXRpb24gb2YgdGhlIGRldmljZSkuICBIb3dldmVyLCBvbmNlIGl0Ci0gICBzZXR0bGVzLCB0aGUgY29uZmlkZW5jZSB2YWx1ZXMgc2hvdWxkIHN0YXJ0IHRyZW5kaW5nIHRvIDAgYWdhaW4gYmVjYXVzZQotICAgdGhlIG1lYXN1cmVkIG9yaWVudGF0aW9uIGFuZ2xlIGlzIG5vdyB3aXRoaW4gdGhlIGdhcCBiZXR3ZWVuIHRoZSBuZXcKLSAgIG9yaWVudGF0aW9uIGFuZCB0aGUgYWRqYWNlbnQgb3JpZW50YXRpb24uCi0KLSAgIEluIG90aGVyIHdvcmRzLCB0aGUgaHlzdGVyZXNpcyBnYXAgYXBwbGllcyBvbmx5IHdoZW4gdGhlIG1lYXN1cmVkIG9yaWVudGF0aW9uCi0gICBhbmdsZSAoc2F5LCA0NSBkZWdyZWVzKSBpcyBiZXR3ZWVuIHRoZSBjdXJyZW50IG9yaWVudGF0aW9uJ3MgaWRlYWwgYW5nbGUKLSAgIChzYXksIDAgZGVncmVlcykgYW5kIGFuIGFkamFjZW50IG9yaWVudGF0aW9uJ3MgaWRlYWwgYW5nbGUgKHNheSwgOTAgZGVncmVlcykuCi0KLTMuIEFjY2VsZXJvbWV0ZXIgaml0dGVyLiAgVGhlIGFjY2VsZXJvbWV0ZXIgbGF0ZW5jeSBncmFwaCBkaXNwbGF5cyB0aGUgaW50ZXJ2YWwKLSAgIGJldHdlZW4gc2Vuc29yIGV2ZW50cyBhcyByZXBvcnRlZCBieSB0aGUgU2Vuc29yRXZlbnQudGltZXN0YW1wIGZpZWxkLiAgSXQKLSAgIHNob3VsZCBiZSBhIGZhaXJseSBjb25zdGFudCA2MG1zLiAgSWYgdGhlIGxhdGVuY3kganVtcHMgYXJvdW5kIHdpbGRseSBvcgotICAgZ3JlYXRseSBleGNlZWRzIDYwbXMgdGhlbiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgYWNjZWxlcm9tZXRlciBvciB0aGUKLSAgIHNlbnNvciBtYW5hZ2VyLgotCi00LiBUaGUgb3JpZW50YXRpb24gYW5nbGUgaXMgbm90IG1lYXN1cmVkIHdoZW4gdGhlIHRpbHQgaXMgdG9vIGNsb3NlIHRvIDkwIG9yIC05MAotICAgZGVncmVlcyAocmVmZXIgdG8gTUFYX1RJTFQgY29uc3RhbnQpLiAgQ29uc2VxdWVudGx5LCB5b3Ugc2hvdWxkIGV4cGVjdCB0aGVyZQotICAgdG8gYmUgbm8gZGF0YS4gIExpa2V3aXNlLCBhbGwgZGVwZW5kZW50IGNhbGN1bGF0aW9ucyBhcmUgc3VwcHJlc3NlZCBpbiB0aGlzIGNhc2UKLSAgIHNvIHRoZXJlIHdpbGwgYmUgbm8gb3JpZW50YXRpb24gcHJvcG9zYWwgZWl0aGVyLgotCi01LiBFYWNoIG9yaWVudGF0aW9uIGhhcyBpdHMgb3duIGJvdW5kIG9uIGFsbG93YWJsZSB0aWx0IGFuZ2xlcy4gIEl0J3MgYSBnb29kIGlkZWEgdG8KLSAgIHZlcmlmeSB0aGF0IHRoZXNlIGxpbWl0cyBhcmUgYmVpbmcgZW5mb3JjZWQgYnkgZ3JhZHVhbGx5IHZhcnlpbmcgdGhlIHRpbHQgb2YKLSAgIHRoZSBkZXZpY2UgdW50aWwgaXQgaXMgaW5zaWRlL291dHNpZGUgdGhlIGxpbWl0IGZvciBlYWNoIG9yaWVudGF0aW9uLgotCi02LiBPcmllbnRhdGlvbiBjaGFuZ2VzIHNob3VsZCBiZSBzaWduaWZpY2FudGx5IGhhcmRlciB3aGVuIHRoZSBkZXZpY2UgaXMgaGVsZAotICAgb3ZlcmhlYWQuICBQZW9wbGUgcmVhZGluZyBvbiB0YWJsZXRzIGluIGJlZCBvZnRlbiBoYXZlIHRoZWlyIGhlYWQgdHVybmVkCi0gICBhIGxpdHRsZSB0byB0aGUgc2lkZSwgb3IgdGhleSBob2xkIHRoZSBkZXZpY2UgbG9vc2VseSBzbyBpdHMgb3JpZW50YXRpb24KLSAgIGNhbiBiZSBhIGJpdCB1bnVzdWFsLiAgVGhlIHRpbHQgaXMgYSBnb29kIGluZGljYXRvciBvZiB3aGV0aGVyIHRoZSBkZXZpY2UgaXMKLSAgIG92ZXJoZWFkLgpkaWZmIC0tZ2l0IGEvdG9vbHMvb3JpZW50YXRpb25wbG90L29yaWVudGF0aW9ucGxvdC5weSBiL3Rvb2xzL29yaWVudGF0aW9ucGxvdC9vcmllbnRhdGlvbnBsb3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDZmYzM5MjIuLjAwMDAwMDAKLS0tIGEvdG9vbHMvb3JpZW50YXRpb25wbG90L29yaWVudGF0aW9ucGxvdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ1NyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24yLjYKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0jCi0KLSMKLSMgUGxvdHMgZGVidWcgbG9nIG91dHB1dCBmcm9tIFdpbmRvd09yaWVudGF0aW9uTGlzdGVuZXIuCi0jIFNlZSBSRUFETUUudHh0IGZvciBkZXRhaWxzLgotIwotCi1pbXBvcnQgbnVtcHkgYXMgbnAKLWltcG9ydCBtYXRwbG90bGliLnB5cGxvdCBhcyBwbG90Ci1pbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0IHJlCi1pbXBvcnQgZmNudGwKLWltcG9ydCBvcwotaW1wb3J0IGVycm5vCi1pbXBvcnQgYmlzZWN0Ci1mcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZWRlbHRhCi0KLSMgUGFyYW1ldGVycy4KLXRpbWVzcGFuID0gMTUgIyBzZWNvbmRzIHRvdGFsIHNwYW4gc2hvd24KLXNjcm9sbGp1bXAgPSA1ICMgc2Vjb25kcyBqdW1wIHdoZW4gc2Nyb2xsaW5nCi10aW1ldGlja3MgPSAxICMgc2Vjb25kcyBiZXR3ZWVuIGVhY2ggdGltZSB0aWNrCi0KLSMgTm9uLWJsb2NraW5nIHN0cmVhbSB3cmFwcGVyLgotY2xhc3MgTm9uQmxvY2tpbmdTdHJlYW06Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCBzdHJlYW0pOgotICAgIGZjbnRsLmZjbnRsKHN0cmVhbSwgZmNudGwuRl9TRVRGTCwgb3MuT19OT05CTE9DSykKLSAgICBzZWxmLnN0cmVhbSA9IHN0cmVhbQotICAgIHNlbGYuYnVmZmVyID0gJycKLSAgICBzZWxmLnBvcyA9IDAKLQotICBkZWYgcmVhZGxpbmUoc2VsZik6Ci0gICAgd2hpbGUgVHJ1ZToKLSAgICAgIGluZGV4ID0gc2VsZi5idWZmZXIuZmluZCgnXG4nLCBzZWxmLnBvcykKLSAgICAgIGlmIGluZGV4ICE9IC0xOgotICAgICAgICByZXN1bHQgPSBzZWxmLmJ1ZmZlcltzZWxmLnBvczppbmRleF0KLSAgICAgICAgc2VsZi5wb3MgPSBpbmRleCArIDEKLSAgICAgICAgcmV0dXJuIHJlc3VsdAotCi0gICAgICBzZWxmLmJ1ZmZlciA9IHNlbGYuYnVmZmVyW3NlbGYucG9zOl0KLSAgICAgIHNlbGYucG9zID0gMAotICAgICAgdHJ5OgotICAgICAgICBjaHVuayA9IG9zLnJlYWQoc2VsZi5zdHJlYW0uZmlsZW5vKCksIDQwOTYpCi0gICAgICBleGNlcHQgT1NFcnJvciwgZToKLSAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FQUdBSU46Ci0gICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmFpc2UgZQotICAgICAgaWYgbGVuKGNodW5rKSA9PSAwOgotICAgICAgICBpZiBsZW4oc2VsZi5idWZmZXIpID09IDA6Ci0gICAgICAgICAgcmFpc2UoRU9GRXJyb3IpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgcmVzdWx0ID0gc2VsZi5idWZmZXIKLSAgICAgICAgICBzZWxmLmJ1ZmZlciA9ICcnCi0gICAgICAgICAgc2VsZi5wb3MgPSAwCi0gICAgICAgICAgcmV0dXJuIHJlc3VsdAotICAgICAgc2VsZi5idWZmZXIgKz0gY2h1bmsKLQotIyBQbG90dGVyCi1jbGFzcyBQbG90dGVyOgotICBkZWYgX19pbml0X18oc2VsZiwgYWRib3V0KToKLSAgICBzZWxmLmFkYm91dCA9IGFkYm91dAotCi0gICAgc2VsZi5maWcgPSBwbG90LmZpZ3VyZSgxKQotICAgIHNlbGYuZmlnLnN1cHRpdGxlKCdXaW5kb3cgT3JpZW50YXRpb24gTGlzdGVuZXInLCBmb250c2l6ZT0xMikKLSAgICBzZWxmLmZpZy5zZXRfZHBpKDk2KQotICAgIHNlbGYuZmlnLnNldF9zaXplX2luY2hlcygxNiwgMTIsIGZvcndhcmQ9VHJ1ZSkKLQotICAgIHNlbGYucmF3X2FjY2VsZXJhdGlvbl94ID0gc2VsZi5fbWFrZV90aW1lc2VyaWVzKCkKLSAgICBzZWxmLnJhd19hY2NlbGVyYXRpb25feSA9IHNlbGYuX21ha2VfdGltZXNlcmllcygpCi0gICAgc2VsZi5yYXdfYWNjZWxlcmF0aW9uX3ogPSBzZWxmLl9tYWtlX3RpbWVzZXJpZXMoKQotICAgIHNlbGYucmF3X2FjY2VsZXJhdGlvbl9tYWduaXR1ZGUgPSBzZWxmLl9tYWtlX3RpbWVzZXJpZXMoKQotICAgIHNlbGYucmF3X2FjY2VsZXJhdGlvbl9heGVzID0gc2VsZi5fYWRkX3RpbWVzZXJpZXNfYXhlcygKLSAgICAgICAgMSwgJ1JhdyBBY2NlbGVyYXRpb24nLCAnbS9zXjInLCBbLTIwLCAyMF0sCi0gICAgICAgIHl0aWNrcz1yYW5nZSgtMTUsIDE2LCA1KSkKLSAgICBzZWxmLnJhd19hY2NlbGVyYXRpb25fbGluZV94ID0gc2VsZi5fYWRkX3RpbWVzZXJpZXNfbGluZSgKLSAgICAgICAgc2VsZi5yYXdfYWNjZWxlcmF0aW9uX2F4ZXMsICd4JywgJ3JlZCcpCi0gICAgc2VsZi5yYXdfYWNjZWxlcmF0aW9uX2xpbmVfeSA9IHNlbGYuX2FkZF90aW1lc2VyaWVzX2xpbmUoCi0gICAgICAgIHNlbGYucmF3X2FjY2VsZXJhdGlvbl9heGVzLCAneScsICdncmVlbicpCi0gICAgc2VsZi5yYXdfYWNjZWxlcmF0aW9uX2xpbmVfeiA9IHNlbGYuX2FkZF90aW1lc2VyaWVzX2xpbmUoCi0gICAgICAgIHNlbGYucmF3X2FjY2VsZXJhdGlvbl9heGVzLCAneicsICdibHVlJykKLSAgICBzZWxmLnJhd19hY2NlbGVyYXRpb25fbGluZV9tYWduaXR1ZGUgPSBzZWxmLl9hZGRfdGltZXNlcmllc19saW5lKAotICAgICAgICBzZWxmLnJhd19hY2NlbGVyYXRpb25fYXhlcywgJ21hZ25pdHVkZScsICdvcmFuZ2UnLCBsaW5ld2lkdGg9MikKLSAgICBzZWxmLl9hZGRfdGltZXNlcmllc19sZWdlbmQoc2VsZi5yYXdfYWNjZWxlcmF0aW9uX2F4ZXMpCi0KLSAgICBzaGFyZWRfYXhpcyA9IHNlbGYucmF3X2FjY2VsZXJhdGlvbl9heGVzCi0KLSAgICBzZWxmLmZpbHRlcmVkX2FjY2VsZXJhdGlvbl94ID0gc2VsZi5fbWFrZV90aW1lc2VyaWVzKCkKLSAgICBzZWxmLmZpbHRlcmVkX2FjY2VsZXJhdGlvbl95ID0gc2VsZi5fbWFrZV90aW1lc2VyaWVzKCkKLSAgICBzZWxmLmZpbHRlcmVkX2FjY2VsZXJhdGlvbl96ID0gc2VsZi5fbWFrZV90aW1lc2VyaWVzKCkKLSAgICBzZWxmLmZpbHRlcmVkX2FjY2VsZXJhdGlvbl9tYWduaXR1ZGUgPSBzZWxmLl9tYWtlX3RpbWVzZXJpZXMoKQotICAgIHNlbGYuZmlsdGVyZWRfYWNjZWxlcmF0aW9uX2F4ZXMgPSBzZWxmLl9hZGRfdGltZXNlcmllc19heGVzKAotICAgICAgICAyLCAnRmlsdGVyZWQgQWNjZWxlcmF0aW9uJywgJ20vc14yJywgWy0yMCwgMjBdLAotICAgICAgICBzaGFyZXg9c2hhcmVkX2F4aXMsCi0gICAgICAgIHl0aWNrcz1yYW5nZSgtMTUsIDE2LCA1KSkKLSAgICBzZWxmLmZpbHRlcmVkX2FjY2VsZXJhdGlvbl9saW5lX3ggPSBzZWxmLl9hZGRfdGltZXNlcmllc19saW5lKAotICAgICAgICBzZWxmLmZpbHRlcmVkX2FjY2VsZXJhdGlvbl9heGVzLCAneCcsICdyZWQnKQotICAgIHNlbGYuZmlsdGVyZWRfYWNjZWxlcmF0aW9uX2xpbmVfeSA9IHNlbGYuX2FkZF90aW1lc2VyaWVzX2xpbmUoCi0gICAgICAgIHNlbGYuZmlsdGVyZWRfYWNjZWxlcmF0aW9uX2F4ZXMsICd5JywgJ2dyZWVuJykKLSAgICBzZWxmLmZpbHRlcmVkX2FjY2VsZXJhdGlvbl9saW5lX3ogPSBzZWxmLl9hZGRfdGltZXNlcmllc19saW5lKAotICAgICAgICBzZWxmLmZpbHRlcmVkX2FjY2VsZXJhdGlvbl9heGVzLCAneicsICdibHVlJykKLSAgICBzZWxmLmZpbHRlcmVkX2FjY2VsZXJhdGlvbl9saW5lX21hZ25pdHVkZSA9IHNlbGYuX2FkZF90aW1lc2VyaWVzX2xpbmUoCi0gICAgICAgIHNlbGYuZmlsdGVyZWRfYWNjZWxlcmF0aW9uX2F4ZXMsICdtYWduaXR1ZGUnLCAnb3JhbmdlJywgbGluZXdpZHRoPTIpCi0gICAgc2VsZi5fYWRkX3RpbWVzZXJpZXNfbGVnZW5kKHNlbGYuZmlsdGVyZWRfYWNjZWxlcmF0aW9uX2F4ZXMpCi0KLSAgICBzZWxmLnRpbHRfYW5nbGUgPSBzZWxmLl9tYWtlX3RpbWVzZXJpZXMoKQotICAgIHNlbGYudGlsdF9hbmdsZV9heGVzID0gc2VsZi5fYWRkX3RpbWVzZXJpZXNfYXhlcygKLSAgICAgICAgMywgJ1RpbHQgQW5nbGUnLCAnZGVncmVlcycsIFstMTA1LCAxMDVdLAotICAgICAgICBzaGFyZXg9c2hhcmVkX2F4aXMsCi0gICAgICAgIHl0aWNrcz1yYW5nZSgtOTAsIDkxLCAzMCkpCi0gICAgc2VsZi50aWx0X2FuZ2xlX2xpbmUgPSBzZWxmLl9hZGRfdGltZXNlcmllc19saW5lKAotICAgICAgICBzZWxmLnRpbHRfYW5nbGVfYXhlcywgJ3RpbHQnLCAnYmxhY2snKQotICAgIHNlbGYuX2FkZF90aW1lc2VyaWVzX2xlZ2VuZChzZWxmLnRpbHRfYW5nbGVfYXhlcykKLQotICAgIHNlbGYub3JpZW50YXRpb25fYW5nbGUgPSBzZWxmLl9tYWtlX3RpbWVzZXJpZXMoKQotICAgIHNlbGYub3JpZW50YXRpb25fYW5nbGVfYXhlcyA9IHNlbGYuX2FkZF90aW1lc2VyaWVzX2F4ZXMoCi0gICAgICAgIDQsICdPcmllbnRhdGlvbiBBbmdsZScsICdkZWdyZWVzJywgWy0yNSwgMzc1XSwKLSAgICAgICAgc2hhcmV4PXNoYXJlZF9heGlzLAotICAgICAgICB5dGlja3M9cmFuZ2UoMCwgMzYxLCA0NSkpCi0gICAgc2VsZi5vcmllbnRhdGlvbl9hbmdsZV9saW5lID0gc2VsZi5fYWRkX3RpbWVzZXJpZXNfbGluZSgKLSAgICAgICAgc2VsZi5vcmllbnRhdGlvbl9hbmdsZV9heGVzLCAnb3JpZW50YXRpb24nLCAnYmxhY2snKQotICAgIHNlbGYuX2FkZF90aW1lc2VyaWVzX2xlZ2VuZChzZWxmLm9yaWVudGF0aW9uX2FuZ2xlX2F4ZXMpCi0KLSAgICBzZWxmLmN1cnJlbnRfcm90YXRpb24gPSBzZWxmLl9tYWtlX3RpbWVzZXJpZXMoKQotICAgIHNlbGYucHJvcG9zZWRfcm90YXRpb24gPSBzZWxmLl9tYWtlX3RpbWVzZXJpZXMoKQotICAgIHNlbGYucHJlZGljdGVkX3JvdGF0aW9uID0gc2VsZi5fbWFrZV90aW1lc2VyaWVzKCkKLSAgICBzZWxmLm9yaWVudGF0aW9uX2F4ZXMgPSBzZWxmLl9hZGRfdGltZXNlcmllc19heGVzKAotICAgICAgICA1LCAnQ3VycmVudCAvIFByb3Bvc2VkIE9yaWVudGF0aW9uJywgJ3JvdGF0aW9uJywgWy0xLCA0XSwKLSAgICAgICAgc2hhcmV4PXNoYXJlZF9heGlzLAotICAgICAgICB5dGlja3M9cmFuZ2UoMCwgNCkpCi0gICAgc2VsZi5jdXJyZW50X3JvdGF0aW9uX2xpbmUgPSBzZWxmLl9hZGRfdGltZXNlcmllc19saW5lKAotICAgICAgICBzZWxmLm9yaWVudGF0aW9uX2F4ZXMsICdjdXJyZW50JywgJ2JsYWNrJywgbGluZXdpZHRoPTIpCi0gICAgc2VsZi5wcmVkaWN0ZWRfcm90YXRpb25fbGluZSA9IHNlbGYuX2FkZF90aW1lc2VyaWVzX2xpbmUoCi0gICAgICAgIHNlbGYub3JpZW50YXRpb25fYXhlcywgJ3ByZWRpY3RlZCcsICdwdXJwbGUnLCBsaW5ld2lkdGg9MykKLSAgICBzZWxmLnByb3Bvc2VkX3JvdGF0aW9uX2xpbmUgPSBzZWxmLl9hZGRfdGltZXNlcmllc19saW5lKAotICAgICAgICBzZWxmLm9yaWVudGF0aW9uX2F4ZXMsICdwcm9wb3NlZCcsICdncmVlbicsIGxpbmV3aWR0aD0zKQotICAgIHNlbGYuX2FkZF90aW1lc2VyaWVzX2xlZ2VuZChzZWxmLm9yaWVudGF0aW9uX2F4ZXMpCi0KLSAgICBzZWxmLnRpbWVfdW50aWxfc2V0dGxlZCA9IHNlbGYuX21ha2VfdGltZXNlcmllcygpCi0gICAgc2VsZi50aW1lX3VudGlsX2ZsYXRfZGVsYXlfZXhwaXJlZCA9IHNlbGYuX21ha2VfdGltZXNlcmllcygpCi0gICAgc2VsZi50aW1lX3VudGlsX3N3aW5nX2RlbGF5X2V4cGlyZWQgPSBzZWxmLl9tYWtlX3RpbWVzZXJpZXMoKQotICAgIHNlbGYudGltZV91bnRpbF9hY2NlbGVyYXRpb25fZGVsYXlfZXhwaXJlZCA9IHNlbGYuX21ha2VfdGltZXNlcmllcygpCi0gICAgc2VsZi5zdGFiaWxpdHlfYXhlcyA9IHNlbGYuX2FkZF90aW1lc2VyaWVzX2F4ZXMoCi0gICAgICAgIDYsICdQcm9wb3NhbCBTdGFiaWxpdHknLCAnbXMnLCBbLTEwLCA2MDBdLAotICAgICAgICBzaGFyZXg9c2hhcmVkX2F4aXMsCi0gICAgICAgIHl0aWNrcz1yYW5nZSgwLCA2MDAsIDEwMCkpCi0gICAgc2VsZi50aW1lX3VudGlsX3NldHRsZWRfbGluZSA9IHNlbGYuX2FkZF90aW1lc2VyaWVzX2xpbmUoCi0gICAgICAgIHNlbGYuc3RhYmlsaXR5X2F4ZXMsICd0aW1lIHVudGlsIHNldHRsZWQnLCAnYmxhY2snLCBsaW5ld2lkdGg9MikKLSAgICBzZWxmLnRpbWVfdW50aWxfZmxhdF9kZWxheV9leHBpcmVkX2xpbmUgPSBzZWxmLl9hZGRfdGltZXNlcmllc19saW5lKAotICAgICAgICBzZWxmLnN0YWJpbGl0eV9heGVzLCAndGltZSB1bnRpbCBmbGF0IGRlbGF5IGV4cGlyZWQnLCAnZ3JlZW4nKQotICAgIHNlbGYudGltZV91bnRpbF9zd2luZ19kZWxheV9leHBpcmVkX2xpbmUgPSBzZWxmLl9hZGRfdGltZXNlcmllc19saW5lKAotICAgICAgICBzZWxmLnN0YWJpbGl0eV9heGVzLCAndGltZSB1bnRpbCBzd2luZyBkZWxheSBleHBpcmVkJywgJ2JsdWUnKQotICAgIHNlbGYudGltZV91bnRpbF9hY2NlbGVyYXRpb25fZGVsYXlfZXhwaXJlZF9saW5lID0gc2VsZi5fYWRkX3RpbWVzZXJpZXNfbGluZSgKLSAgICAgICAgc2VsZi5zdGFiaWxpdHlfYXhlcywgJ3RpbWUgdW50aWwgYWNjZWxlcmF0aW9uIGRlbGF5IGV4cGlyZWQnLCAncmVkJykKLSAgICBzZWxmLl9hZGRfdGltZXNlcmllc19sZWdlbmQoc2VsZi5zdGFiaWxpdHlfYXhlcykKLQotICAgIHNlbGYuc2FtcGxlX2xhdGVuY3kgPSBzZWxmLl9tYWtlX3RpbWVzZXJpZXMoKQotICAgIHNlbGYuc2FtcGxlX2xhdGVuY3lfYXhlcyA9IHNlbGYuX2FkZF90aW1lc2VyaWVzX2F4ZXMoCi0gICAgICAgIDcsICdBY2NlbGVyb21ldGVyIFNhbXBsaW5nIExhdGVuY3knLCAnbXMnLCBbLTEwLCA1MDBdLAotICAgICAgICBzaGFyZXg9c2hhcmVkX2F4aXMsCi0gICAgICAgIHl0aWNrcz1yYW5nZSgwLCA1MDAsIDEwMCkpCi0gICAgc2VsZi5zYW1wbGVfbGF0ZW5jeV9saW5lID0gc2VsZi5fYWRkX3RpbWVzZXJpZXNfbGluZSgKLSAgICAgICAgc2VsZi5zYW1wbGVfbGF0ZW5jeV9heGVzLCAnbGF0ZW5jeScsICdibGFjaycpCi0gICAgc2VsZi5fYWRkX3RpbWVzZXJpZXNfbGVnZW5kKHNlbGYuc2FtcGxlX2xhdGVuY3lfYXhlcykKLQotICAgIHNlbGYuZmlnLmNhbnZhcy5tcGxfY29ubmVjdCgnYnV0dG9uX3ByZXNzX2V2ZW50Jywgc2VsZi5fb25fY2xpY2spCi0gICAgc2VsZi5wYXVzZWQgPSBGYWxzZQotCi0gICAgc2VsZi50aW1lciA9IHNlbGYuZmlnLmNhbnZhcy5uZXdfdGltZXIoaW50ZXJ2YWw9MTAwKQotICAgIHNlbGYudGltZXIuYWRkX2NhbGxiYWNrKGxhbWJkYTogc2VsZi51cGRhdGUoKSkKLSAgICBzZWxmLnRpbWVyLnN0YXJ0KCkKLQotICAgIHNlbGYudGltZWJhc2UgPSBOb25lCi0gICAgc2VsZi5fcmVzZXRfcGFyc2Vfc3RhdGUoKQotCi0gICMgSGFuZGxlIGEgY2xpY2sgZXZlbnQgdG8gcGF1c2Ugb3IgcmVzdGFydCB0aGUgdGltZXIuCi0gIGRlZiBfb25fY2xpY2soc2VsZiwgZXYpOgotICAgIGlmIG5vdCBzZWxmLnBhdXNlZDoKLSAgICAgIHNlbGYucGF1c2VkID0gVHJ1ZQotICAgICAgc2VsZi50aW1lci5zdG9wKCkKLSAgICBlbHNlOgotICAgICAgc2VsZi5wYXVzZWQgPSBGYWxzZQotICAgICAgc2VsZi50aW1lci5zdGFydCgpCi0KLSAgIyBJbml0aWFsaXplIGEgdGltZSBzZXJpZXMuCi0gIGRlZiBfbWFrZV90aW1lc2VyaWVzKHNlbGYpOgotICAgIHJldHVybiBbW10sIFtdXQotCi0gICMgQWRkIGEgc3VicGxvdCB0byB0aGUgZmlndXJlIGZvciBhIHRpbWUgc2VyaWVzLgotICBkZWYgX2FkZF90aW1lc2VyaWVzX2F4ZXMoc2VsZiwgaW5kZXgsIHRpdGxlLCB5bGFiZWwsIHlsaW0sIHl0aWNrcywgc2hhcmV4PU5vbmUpOgotICAgIG51bV9ncmFwaHMgPSA3Ci0gICAgaGVpZ2h0ID0gMC45IC8gbnVtX2dyYXBocwotICAgIHRvcCA9IDAuOTUgLSBoZWlnaHQgKiBpbmRleAotICAgIGF4ZXMgPSBzZWxmLmZpZy5hZGRfYXhlcyhbMC4xLCB0b3AsIDAuOCwgaGVpZ2h0XSwKLSAgICAgICAgeHNjYWxlPSdsaW5lYXInLAotICAgICAgICB4bGltPVswLCB0aW1lc3Bhbl0sCi0gICAgICAgIHlsYWJlbD15bGFiZWwsCi0gICAgICAgIHlzY2FsZT0nbGluZWFyJywKLSAgICAgICAgeWxpbT15bGltLAotICAgICAgICBzaGFyZXg9c2hhcmV4KQotICAgIGF4ZXMudGV4dCgwLjAyLCAwLjAyLCB0aXRsZSwgdHJhbnNmb3JtPWF4ZXMudHJhbnNBeGVzLCBmb250c2l6ZT0xMCwgZm9udHdlaWdodD0nYm9sZCcpCi0gICAgYXhlcy5zZXRfeGxhYmVsKCd0aW1lIChzKScsIGZvbnRzaXplPTEwLCBmb250d2VpZ2h0PSdib2xkJykKLSAgICBheGVzLnNldF95bGFiZWwoeWxhYmVsLCBmb250c2l6ZT0xMCwgZm9udHdlaWdodD0nYm9sZCcpCi0gICAgYXhlcy5zZXRfeHRpY2tzKHJhbmdlKDAsIHRpbWVzcGFuICsgMSwgdGltZXRpY2tzKSkKLSAgICBheGVzLnNldF95dGlja3MoeXRpY2tzKQotICAgIGF4ZXMuZ3JpZChUcnVlKQotCi0gICAgZm9yIGxhYmVsIGluIGF4ZXMuZ2V0X3h0aWNrbGFiZWxzKCk6Ci0gICAgICBsYWJlbC5zZXRfZm9udHNpemUoOSkKLSAgICBmb3IgbGFiZWwgaW4gYXhlcy5nZXRfeXRpY2tsYWJlbHMoKToKLSAgICAgIGxhYmVsLnNldF9mb250c2l6ZSg5KQotCi0gICAgcmV0dXJuIGF4ZXMKLQotICAjIEFkZCBhIGxpbmUgdG8gdGhlIGF4ZXMgZm9yIGEgdGltZSBzZXJpZXMuCi0gIGRlZiBfYWRkX3RpbWVzZXJpZXNfbGluZShzZWxmLCBheGVzLCBsYWJlbCwgY29sb3IsIGxpbmV3aWR0aD0xKToKLSAgICByZXR1cm4gYXhlcy5wbG90KFtdLCBsYWJlbD1sYWJlbCwgY29sb3I9Y29sb3IsIGxpbmV3aWR0aD1saW5ld2lkdGgpWzBdCi0KLSAgIyBBZGQgYSBsZWdlbmQgdG8gYSB0aW1lIHNlcmllcy4KLSAgZGVmIF9hZGRfdGltZXNlcmllc19sZWdlbmQoc2VsZiwgYXhlcyk6Ci0gICAgYXhlcy5sZWdlbmQoCi0gICAgICAgIGxvYz0ndXBwZXIgbGVmdCcsCi0gICAgICAgIGJib3hfdG9fYW5jaG9yPSgxLjAxLCAxKSwKLSAgICAgICAgYm9yZGVycGFkPTAuMSwKLSAgICAgICAgYm9yZGVyYXhlc3BhZD0wLjEsCi0gICAgICAgIHByb3A9eydzaXplJzogMTB9KQotCi0gICMgUmVzZXRzIHRoZSBwYXJzZSBzdGF0ZS4KLSAgZGVmIF9yZXNldF9wYXJzZV9zdGF0ZShzZWxmKToKLSAgICBzZWxmLnBhcnNlX3Jhd19hY2NlbGVyYXRpb25feCA9IE5vbmUKLSAgICBzZWxmLnBhcnNlX3Jhd19hY2NlbGVyYXRpb25feSA9IE5vbmUKLSAgICBzZWxmLnBhcnNlX3Jhd19hY2NlbGVyYXRpb25feiA9IE5vbmUKLSAgICBzZWxmLnBhcnNlX3Jhd19hY2NlbGVyYXRpb25fbWFnbml0dWRlID0gTm9uZQotICAgIHNlbGYucGFyc2VfZmlsdGVyZWRfYWNjZWxlcmF0aW9uX3ggPSBOb25lCi0gICAgc2VsZi5wYXJzZV9maWx0ZXJlZF9hY2NlbGVyYXRpb25feSA9IE5vbmUKLSAgICBzZWxmLnBhcnNlX2ZpbHRlcmVkX2FjY2VsZXJhdGlvbl96ID0gTm9uZQotICAgIHNlbGYucGFyc2VfZmlsdGVyZWRfYWNjZWxlcmF0aW9uX21hZ25pdHVkZSA9IE5vbmUKLSAgICBzZWxmLnBhcnNlX3RpbHRfYW5nbGUgPSBOb25lCi0gICAgc2VsZi5wYXJzZV9vcmllbnRhdGlvbl9hbmdsZSA9IE5vbmUKLSAgICBzZWxmLnBhcnNlX2N1cnJlbnRfcm90YXRpb24gPSBOb25lCi0gICAgc2VsZi5wYXJzZV9wcm9wb3NlZF9yb3RhdGlvbiA9IE5vbmUKLSAgICBzZWxmLnBhcnNlX3ByZWRpY3RlZF9yb3RhdGlvbiA9IE5vbmUKLSAgICBzZWxmLnBhcnNlX3RpbWVfdW50aWxfc2V0dGxlZCA9IE5vbmUKLSAgICBzZWxmLnBhcnNlX3RpbWVfdW50aWxfZmxhdF9kZWxheV9leHBpcmVkID0gTm9uZQotICAgIHNlbGYucGFyc2VfdGltZV91bnRpbF9zd2luZ19kZWxheV9leHBpcmVkID0gTm9uZQotICAgIHNlbGYucGFyc2VfdGltZV91bnRpbF9hY2NlbGVyYXRpb25fZGVsYXlfZXhwaXJlZCA9IE5vbmUKLSAgICBzZWxmLnBhcnNlX3NhbXBsZV9sYXRlbmN5ID0gTm9uZQotCi0gICMgVXBkYXRlIHNhbXBsZXMuCi0gIGRlZiB1cGRhdGUoc2VsZik6Ci0gICAgdGltZWluZGV4ID0gMAotICAgIHdoaWxlIFRydWU6Ci0gICAgICB0cnk6Ci0gICAgICAgIGxpbmUgPSBzZWxmLmFkYm91dC5yZWFkbGluZSgpCi0gICAgICBleGNlcHQgRU9GRXJyb3I6Ci0gICAgICAgIHBsb3QuY2xvc2UoKQotICAgICAgICByZXR1cm4KLSAgICAgIGlmIGxpbmUgaXMgTm9uZToKLSAgICAgICAgYnJlYWsKLSAgICAgIHByaW50IGxpbmUKLQotICAgICAgdHJ5OgotICAgICAgICB0aW1lc3RhbXAgPSBzZWxmLl9wYXJzZV90aW1lc3RhbXAobGluZSkKLSAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICBjb250aW51ZQotICAgICAgaWYgc2VsZi50aW1lYmFzZSBpcyBOb25lOgotICAgICAgICBzZWxmLnRpbWViYXNlID0gdGltZXN0YW1wCi0gICAgICBkZWx0YSA9IHRpbWVzdGFtcCAtIHNlbGYudGltZWJhc2UKLSAgICAgIHRpbWVpbmRleCA9IGRlbHRhLnNlY29uZHMgKyBkZWx0YS5taWNyb3NlY29uZHMgKiAwLjAwMDAwMQotCi0gICAgICBpZiBsaW5lLmZpbmQoJ1JhdyBhY2NlbGVyYXRpb24gdmVjdG9yOicpICE9IC0xOgotICAgICAgICBzZWxmLnBhcnNlX3Jhd19hY2NlbGVyYXRpb25feCA9IHNlbGYuX2dldF9mb2xsb3dpbmdfbnVtYmVyKGxpbmUsICd4PScpCi0gICAgICAgIHNlbGYucGFyc2VfcmF3X2FjY2VsZXJhdGlvbl95ID0gc2VsZi5fZ2V0X2ZvbGxvd2luZ19udW1iZXIobGluZSwgJ3k9JykKLSAgICAgICAgc2VsZi5wYXJzZV9yYXdfYWNjZWxlcmF0aW9uX3ogPSBzZWxmLl9nZXRfZm9sbG93aW5nX251bWJlcihsaW5lLCAnej0nKQotICAgICAgICBzZWxmLnBhcnNlX3Jhd19hY2NlbGVyYXRpb25fbWFnbml0dWRlID0gc2VsZi5fZ2V0X2ZvbGxvd2luZ19udW1iZXIobGluZSwgJ21hZ25pdHVkZT0nKQotCi0gICAgICBpZiBsaW5lLmZpbmQoJ0ZpbHRlcmVkIGFjY2VsZXJhdGlvbiB2ZWN0b3I6JykgIT0gLTE6Ci0gICAgICAgIHNlbGYucGFyc2VfZmlsdGVyZWRfYWNjZWxlcmF0aW9uX3ggPSBzZWxmLl9nZXRfZm9sbG93aW5nX251bWJlcihsaW5lLCAneD0nKQotICAgICAgICBzZWxmLnBhcnNlX2ZpbHRlcmVkX2FjY2VsZXJhdGlvbl95ID0gc2VsZi5fZ2V0X2ZvbGxvd2luZ19udW1iZXIobGluZSwgJ3k9JykKLSAgICAgICAgc2VsZi5wYXJzZV9maWx0ZXJlZF9hY2NlbGVyYXRpb25feiA9IHNlbGYuX2dldF9mb2xsb3dpbmdfbnVtYmVyKGxpbmUsICd6PScpCi0gICAgICAgIHNlbGYucGFyc2VfZmlsdGVyZWRfYWNjZWxlcmF0aW9uX21hZ25pdHVkZSA9IHNlbGYuX2dldF9mb2xsb3dpbmdfbnVtYmVyKGxpbmUsICdtYWduaXR1ZGU9JykKLQotICAgICAgaWYgbGluZS5maW5kKCd0aWx0QW5nbGU9JykgIT0gLTE6Ci0gICAgICAgIHNlbGYucGFyc2VfdGlsdF9hbmdsZSA9IHNlbGYuX2dldF9mb2xsb3dpbmdfbnVtYmVyKGxpbmUsICd0aWx0QW5nbGU9JykKLQotICAgICAgaWYgbGluZS5maW5kKCdvcmllbnRhdGlvbkFuZ2xlPScpICE9IC0xOgotICAgICAgICBzZWxmLnBhcnNlX29yaWVudGF0aW9uX2FuZ2xlID0gc2VsZi5fZ2V0X2ZvbGxvd2luZ19udW1iZXIobGluZSwgJ29yaWVudGF0aW9uQW5nbGU9JykKLQotICAgICAgaWYgbGluZS5maW5kKCdSZXN1bHQ6JykgIT0gLTE6Ci0gICAgICAgIHNlbGYucGFyc2VfY3VycmVudF9yb3RhdGlvbiA9IHNlbGYuX2dldF9mb2xsb3dpbmdfbnVtYmVyKGxpbmUsICdjdXJyZW50Um90YXRpb249JykKLSAgICAgICAgc2VsZi5wYXJzZV9wcm9wb3NlZF9yb3RhdGlvbiA9IHNlbGYuX2dldF9mb2xsb3dpbmdfbnVtYmVyKGxpbmUsICdwcm9wb3NlZFJvdGF0aW9uPScpCi0gICAgICAgIHNlbGYucGFyc2VfcHJlZGljdGVkX3JvdGF0aW9uID0gc2VsZi5fZ2V0X2ZvbGxvd2luZ19udW1iZXIobGluZSwgJ3ByZWRpY3RlZFJvdGF0aW9uPScpCi0gICAgICAgIHNlbGYucGFyc2Vfc2FtcGxlX2xhdGVuY3kgPSBzZWxmLl9nZXRfZm9sbG93aW5nX251bWJlcihsaW5lLCAndGltZURlbHRhTVM9JykKLSAgICAgICAgc2VsZi5wYXJzZV90aW1lX3VudGlsX3NldHRsZWQgPSBzZWxmLl9nZXRfZm9sbG93aW5nX251bWJlcihsaW5lLCAndGltZVVudGlsU2V0dGxlZE1TPScpCi0gICAgICAgIHNlbGYucGFyc2VfdGltZV91bnRpbF9mbGF0X2RlbGF5X2V4cGlyZWQgPSBzZWxmLl9nZXRfZm9sbG93aW5nX251bWJlcihsaW5lLCAndGltZVVudGlsRmxhdERlbGF5RXhwaXJlZE1TPScpCi0gICAgICAgIHNlbGYucGFyc2VfdGltZV91bnRpbF9zd2luZ19kZWxheV9leHBpcmVkID0gc2VsZi5fZ2V0X2ZvbGxvd2luZ19udW1iZXIobGluZSwgJ3RpbWVVbnRpbFN3aW5nRGVsYXlFeHBpcmVkTVM9JykKLSAgICAgICAgc2VsZi5wYXJzZV90aW1lX3VudGlsX2FjY2VsZXJhdGlvbl9kZWxheV9leHBpcmVkID0gc2VsZi5fZ2V0X2ZvbGxvd2luZ19udW1iZXIobGluZSwgJ3RpbWVVbnRpbEFjY2VsZXJhdGlvbkRlbGF5RXhwaXJlZE1TPScpCi0KLSAgICAgICAgc2VsZi5fYXBwZW5kKHNlbGYucmF3X2FjY2VsZXJhdGlvbl94LCB0aW1laW5kZXgsIHNlbGYucGFyc2VfcmF3X2FjY2VsZXJhdGlvbl94KQotICAgICAgICBzZWxmLl9hcHBlbmQoc2VsZi5yYXdfYWNjZWxlcmF0aW9uX3ksIHRpbWVpbmRleCwgc2VsZi5wYXJzZV9yYXdfYWNjZWxlcmF0aW9uX3kpCi0gICAgICAgIHNlbGYuX2FwcGVuZChzZWxmLnJhd19hY2NlbGVyYXRpb25feiwgdGltZWluZGV4LCBzZWxmLnBhcnNlX3Jhd19hY2NlbGVyYXRpb25feikKLSAgICAgICAgc2VsZi5fYXBwZW5kKHNlbGYucmF3X2FjY2VsZXJhdGlvbl9tYWduaXR1ZGUsIHRpbWVpbmRleCwgc2VsZi5wYXJzZV9yYXdfYWNjZWxlcmF0aW9uX21hZ25pdHVkZSkKLSAgICAgICAgc2VsZi5fYXBwZW5kKHNlbGYuZmlsdGVyZWRfYWNjZWxlcmF0aW9uX3gsIHRpbWVpbmRleCwgc2VsZi5wYXJzZV9maWx0ZXJlZF9hY2NlbGVyYXRpb25feCkKLSAgICAgICAgc2VsZi5fYXBwZW5kKHNlbGYuZmlsdGVyZWRfYWNjZWxlcmF0aW9uX3ksIHRpbWVpbmRleCwgc2VsZi5wYXJzZV9maWx0ZXJlZF9hY2NlbGVyYXRpb25feSkKLSAgICAgICAgc2VsZi5fYXBwZW5kKHNlbGYuZmlsdGVyZWRfYWNjZWxlcmF0aW9uX3osIHRpbWVpbmRleCwgc2VsZi5wYXJzZV9maWx0ZXJlZF9hY2NlbGVyYXRpb25feikKLSAgICAgICAgc2VsZi5fYXBwZW5kKHNlbGYuZmlsdGVyZWRfYWNjZWxlcmF0aW9uX21hZ25pdHVkZSwgdGltZWluZGV4LCBzZWxmLnBhcnNlX2ZpbHRlcmVkX2FjY2VsZXJhdGlvbl9tYWduaXR1ZGUpCi0gICAgICAgIHNlbGYuX2FwcGVuZChzZWxmLnRpbHRfYW5nbGUsIHRpbWVpbmRleCwgc2VsZi5wYXJzZV90aWx0X2FuZ2xlKQotICAgICAgICBzZWxmLl9hcHBlbmQoc2VsZi5vcmllbnRhdGlvbl9hbmdsZSwgdGltZWluZGV4LCBzZWxmLnBhcnNlX29yaWVudGF0aW9uX2FuZ2xlKQotICAgICAgICBzZWxmLl9hcHBlbmQoc2VsZi5jdXJyZW50X3JvdGF0aW9uLCB0aW1laW5kZXgsIHNlbGYucGFyc2VfY3VycmVudF9yb3RhdGlvbikKLSAgICAgICAgaWYgc2VsZi5wYXJzZV9wcm9wb3NlZF9yb3RhdGlvbiA+PSAwOgotICAgICAgICAgIHNlbGYuX2FwcGVuZChzZWxmLnByb3Bvc2VkX3JvdGF0aW9uLCB0aW1laW5kZXgsIHNlbGYucGFyc2VfcHJvcG9zZWRfcm90YXRpb24pCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgc2VsZi5fYXBwZW5kKHNlbGYucHJvcG9zZWRfcm90YXRpb24sIHRpbWVpbmRleCwgTm9uZSkKLSAgICAgICAgaWYgc2VsZi5wYXJzZV9wcmVkaWN0ZWRfcm90YXRpb24gPj0gMDoKLSAgICAgICAgICBzZWxmLl9hcHBlbmQoc2VsZi5wcmVkaWN0ZWRfcm90YXRpb24sIHRpbWVpbmRleCwgc2VsZi5wYXJzZV9wcmVkaWN0ZWRfcm90YXRpb24pCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgc2VsZi5fYXBwZW5kKHNlbGYucHJlZGljdGVkX3JvdGF0aW9uLCB0aW1laW5kZXgsIE5vbmUpCi0gICAgICAgIHNlbGYuX2FwcGVuZChzZWxmLnRpbWVfdW50aWxfc2V0dGxlZCwgdGltZWluZGV4LCBzZWxmLnBhcnNlX3RpbWVfdW50aWxfc2V0dGxlZCkKLSAgICAgICAgc2VsZi5fYXBwZW5kKHNlbGYudGltZV91bnRpbF9mbGF0X2RlbGF5X2V4cGlyZWQsIHRpbWVpbmRleCwgc2VsZi5wYXJzZV90aW1lX3VudGlsX2ZsYXRfZGVsYXlfZXhwaXJlZCkKLSAgICAgICAgc2VsZi5fYXBwZW5kKHNlbGYudGltZV91bnRpbF9zd2luZ19kZWxheV9leHBpcmVkLCB0aW1laW5kZXgsIHNlbGYucGFyc2VfdGltZV91bnRpbF9zd2luZ19kZWxheV9leHBpcmVkKQotICAgICAgICBzZWxmLl9hcHBlbmQoc2VsZi50aW1lX3VudGlsX2FjY2VsZXJhdGlvbl9kZWxheV9leHBpcmVkLCB0aW1laW5kZXgsIHNlbGYucGFyc2VfdGltZV91bnRpbF9hY2NlbGVyYXRpb25fZGVsYXlfZXhwaXJlZCkKLSAgICAgICAgc2VsZi5fYXBwZW5kKHNlbGYuc2FtcGxlX2xhdGVuY3ksIHRpbWVpbmRleCwgc2VsZi5wYXJzZV9zYW1wbGVfbGF0ZW5jeSkKLSAgICAgICAgc2VsZi5fcmVzZXRfcGFyc2Vfc3RhdGUoKQotCi0gICAgIyBTY3JvbGwgdGhlIHBsb3RzLgotICAgIGlmIHRpbWVpbmRleCA+IHRpbWVzcGFuOgotICAgICAgYm90dG9tID0gaW50KHRpbWVpbmRleCkgLSB0aW1lc3BhbiArIHNjcm9sbGp1bXAKLSAgICAgIHNlbGYudGltZWJhc2UgKz0gdGltZWRlbHRhKHNlY29uZHM9Ym90dG9tKQotICAgICAgc2VsZi5fc2Nyb2xsKHNlbGYucmF3X2FjY2VsZXJhdGlvbl94LCBib3R0b20pCi0gICAgICBzZWxmLl9zY3JvbGwoc2VsZi5yYXdfYWNjZWxlcmF0aW9uX3ksIGJvdHRvbSkKLSAgICAgIHNlbGYuX3Njcm9sbChzZWxmLnJhd19hY2NlbGVyYXRpb25feiwgYm90dG9tKQotICAgICAgc2VsZi5fc2Nyb2xsKHNlbGYucmF3X2FjY2VsZXJhdGlvbl9tYWduaXR1ZGUsIGJvdHRvbSkKLSAgICAgIHNlbGYuX3Njcm9sbChzZWxmLmZpbHRlcmVkX2FjY2VsZXJhdGlvbl94LCBib3R0b20pCi0gICAgICBzZWxmLl9zY3JvbGwoc2VsZi5maWx0ZXJlZF9hY2NlbGVyYXRpb25feSwgYm90dG9tKQotICAgICAgc2VsZi5fc2Nyb2xsKHNlbGYuZmlsdGVyZWRfYWNjZWxlcmF0aW9uX3osIGJvdHRvbSkKLSAgICAgIHNlbGYuX3Njcm9sbChzZWxmLmZpbHRlcmVkX2FjY2VsZXJhdGlvbl9tYWduaXR1ZGUsIGJvdHRvbSkKLSAgICAgIHNlbGYuX3Njcm9sbChzZWxmLnRpbHRfYW5nbGUsIGJvdHRvbSkKLSAgICAgIHNlbGYuX3Njcm9sbChzZWxmLm9yaWVudGF0aW9uX2FuZ2xlLCBib3R0b20pCi0gICAgICBzZWxmLl9zY3JvbGwoc2VsZi5jdXJyZW50X3JvdGF0aW9uLCBib3R0b20pCi0gICAgICBzZWxmLl9zY3JvbGwoc2VsZi5wcm9wb3NlZF9yb3RhdGlvbiwgYm90dG9tKQotICAgICAgc2VsZi5fc2Nyb2xsKHNlbGYucHJlZGljdGVkX3JvdGF0aW9uLCBib3R0b20pCi0gICAgICBzZWxmLl9zY3JvbGwoc2VsZi50aW1lX3VudGlsX3NldHRsZWQsIGJvdHRvbSkKLSAgICAgIHNlbGYuX3Njcm9sbChzZWxmLnRpbWVfdW50aWxfZmxhdF9kZWxheV9leHBpcmVkLCBib3R0b20pCi0gICAgICBzZWxmLl9zY3JvbGwoc2VsZi50aW1lX3VudGlsX3N3aW5nX2RlbGF5X2V4cGlyZWQsIGJvdHRvbSkKLSAgICAgIHNlbGYuX3Njcm9sbChzZWxmLnRpbWVfdW50aWxfYWNjZWxlcmF0aW9uX2RlbGF5X2V4cGlyZWQsIGJvdHRvbSkKLSAgICAgIHNlbGYuX3Njcm9sbChzZWxmLnNhbXBsZV9sYXRlbmN5LCBib3R0b20pCi0KLSAgICAjIFJlZHJhdyB0aGUgcGxvdHMuCi0gICAgc2VsZi5yYXdfYWNjZWxlcmF0aW9uX2xpbmVfeC5zZXRfZGF0YShzZWxmLnJhd19hY2NlbGVyYXRpb25feCkKLSAgICBzZWxmLnJhd19hY2NlbGVyYXRpb25fbGluZV95LnNldF9kYXRhKHNlbGYucmF3X2FjY2VsZXJhdGlvbl95KQotICAgIHNlbGYucmF3X2FjY2VsZXJhdGlvbl9saW5lX3ouc2V0X2RhdGEoc2VsZi5yYXdfYWNjZWxlcmF0aW9uX3opCi0gICAgc2VsZi5yYXdfYWNjZWxlcmF0aW9uX2xpbmVfbWFnbml0dWRlLnNldF9kYXRhKHNlbGYucmF3X2FjY2VsZXJhdGlvbl9tYWduaXR1ZGUpCi0gICAgc2VsZi5maWx0ZXJlZF9hY2NlbGVyYXRpb25fbGluZV94LnNldF9kYXRhKHNlbGYuZmlsdGVyZWRfYWNjZWxlcmF0aW9uX3gpCi0gICAgc2VsZi5maWx0ZXJlZF9hY2NlbGVyYXRpb25fbGluZV95LnNldF9kYXRhKHNlbGYuZmlsdGVyZWRfYWNjZWxlcmF0aW9uX3kpCi0gICAgc2VsZi5maWx0ZXJlZF9hY2NlbGVyYXRpb25fbGluZV96LnNldF9kYXRhKHNlbGYuZmlsdGVyZWRfYWNjZWxlcmF0aW9uX3opCi0gICAgc2VsZi5maWx0ZXJlZF9hY2NlbGVyYXRpb25fbGluZV9tYWduaXR1ZGUuc2V0X2RhdGEoc2VsZi5maWx0ZXJlZF9hY2NlbGVyYXRpb25fbWFnbml0dWRlKQotICAgIHNlbGYudGlsdF9hbmdsZV9saW5lLnNldF9kYXRhKHNlbGYudGlsdF9hbmdsZSkKLSAgICBzZWxmLm9yaWVudGF0aW9uX2FuZ2xlX2xpbmUuc2V0X2RhdGEoc2VsZi5vcmllbnRhdGlvbl9hbmdsZSkKLSAgICBzZWxmLmN1cnJlbnRfcm90YXRpb25fbGluZS5zZXRfZGF0YShzZWxmLmN1cnJlbnRfcm90YXRpb24pCi0gICAgc2VsZi5wcm9wb3NlZF9yb3RhdGlvbl9saW5lLnNldF9kYXRhKHNlbGYucHJvcG9zZWRfcm90YXRpb24pCi0gICAgc2VsZi5wcmVkaWN0ZWRfcm90YXRpb25fbGluZS5zZXRfZGF0YShzZWxmLnByZWRpY3RlZF9yb3RhdGlvbikKLSAgICBzZWxmLnRpbWVfdW50aWxfc2V0dGxlZF9saW5lLnNldF9kYXRhKHNlbGYudGltZV91bnRpbF9zZXR0bGVkKQotICAgIHNlbGYudGltZV91bnRpbF9mbGF0X2RlbGF5X2V4cGlyZWRfbGluZS5zZXRfZGF0YShzZWxmLnRpbWVfdW50aWxfZmxhdF9kZWxheV9leHBpcmVkKQotICAgIHNlbGYudGltZV91bnRpbF9zd2luZ19kZWxheV9leHBpcmVkX2xpbmUuc2V0X2RhdGEoc2VsZi50aW1lX3VudGlsX3N3aW5nX2RlbGF5X2V4cGlyZWQpCi0gICAgc2VsZi50aW1lX3VudGlsX2FjY2VsZXJhdGlvbl9kZWxheV9leHBpcmVkX2xpbmUuc2V0X2RhdGEoc2VsZi50aW1lX3VudGlsX2FjY2VsZXJhdGlvbl9kZWxheV9leHBpcmVkKQotICAgIHNlbGYuc2FtcGxlX2xhdGVuY3lfbGluZS5zZXRfZGF0YShzZWxmLnNhbXBsZV9sYXRlbmN5KQotCi0gICAgc2VsZi5maWcuY2FudmFzLmRyYXdfaWRsZSgpCi0KLSAgIyBTY3JvbGwgYSB0aW1lIHNlcmllcy4KLSAgZGVmIF9zY3JvbGwoc2VsZiwgdGltZXNlcmllcywgYm90dG9tKToKLSAgICBib3R0b21faW5kZXggPSBiaXNlY3QuYmlzZWN0X2xlZnQodGltZXNlcmllc1swXSwgYm90dG9tKQotICAgIGRlbCB0aW1lc2VyaWVzWzBdWzpib3R0b21faW5kZXhdCi0gICAgZGVsIHRpbWVzZXJpZXNbMV1bOmJvdHRvbV9pbmRleF0KLSAgICBmb3IgaSwgdGltZWluZGV4IGluIGVudW1lcmF0ZSh0aW1lc2VyaWVzWzBdKToKLSAgICAgIHRpbWVzZXJpZXNbMF1baV0gPSB0aW1laW5kZXggLSBib3R0b20KLQotICAjIEV4dHJhY3QgYSB3b3JkIGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIHByZWZpeC4KLSAgZGVmIF9nZXRfZm9sbG93aW5nX3dvcmQoc2VsZiwgbGluZSwgcHJlZml4KToKLSAgICBwcmVmaXhfaW5kZXggPSBsaW5lLmZpbmQocHJlZml4KQotICAgIGlmIHByZWZpeF9pbmRleCA9PSAtMToKLSAgICAgIHJldHVybiBOb25lCi0gICAgc3RhcnRfaW5kZXggPSBwcmVmaXhfaW5kZXggKyBsZW4ocHJlZml4KQotICAgIGRlbGltX2luZGV4ID0gbGluZS5maW5kKCcsJywgc3RhcnRfaW5kZXgpCi0gICAgaWYgZGVsaW1faW5kZXggPT0gLTE6Ci0gICAgICByZXR1cm4gbGluZVtzdGFydF9pbmRleDpdCi0gICAgZWxzZToKLSAgICAgIHJldHVybiBsaW5lW3N0YXJ0X2luZGV4OmRlbGltX2luZGV4XQotCi0gICMgRXh0cmFjdCBhIG51bWJlciBmb2xsb3dpbmcgdGhlIHNwZWNpZmllZCBwcmVmaXguCi0gIGRlZiBfZ2V0X2ZvbGxvd2luZ19udW1iZXIoc2VsZiwgbGluZSwgcHJlZml4KToKLSAgICB3b3JkID0gc2VsZi5fZ2V0X2ZvbGxvd2luZ193b3JkKGxpbmUsIHByZWZpeCkKLSAgICBpZiB3b3JkIGlzIE5vbmU6Ci0gICAgICByZXR1cm4gTm9uZQotICAgIHJldHVybiBmbG9hdCh3b3JkKQotCi0gICMgRXh0cmFjdCBhbiBhcnJheSBvZiBudW1iZXJzIGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIHByZWZpeC4KLSAgZGVmIF9nZXRfZm9sbG93aW5nX2FycmF5X29mX251bWJlcnMoc2VsZiwgbGluZSwgcHJlZml4KToKLSAgICBwcmVmaXhfaW5kZXggPSBsaW5lLmZpbmQocHJlZml4ICsgJ1snKQotICAgIGlmIHByZWZpeF9pbmRleCA9PSAtMToKLSAgICAgIHJldHVybiBOb25lCi0gICAgc3RhcnRfaW5kZXggPSBwcmVmaXhfaW5kZXggKyBsZW4ocHJlZml4KSArIDEKLSAgICBkZWxpbV9pbmRleCA9IGxpbmUuZmluZCgnXScsIHN0YXJ0X2luZGV4KQotICAgIGlmIGRlbGltX2luZGV4ID09IC0xOgotICAgICAgcmV0dXJuIE5vbmUKLQotICAgIHJlc3VsdCA9IFtdCi0gICAgd2hpbGUgc3RhcnRfaW5kZXggPCBkZWxpbV9pbmRleDoKLSAgICAgIGNvbW1hX2luZGV4ID0gbGluZS5maW5kKCcsICcsIHN0YXJ0X2luZGV4LCBkZWxpbV9pbmRleCkKLSAgICAgIGlmIGNvbW1hX2luZGV4ID09IC0xOgotICAgICAgICByZXN1bHQuYXBwZW5kKGZsb2F0KGxpbmVbc3RhcnRfaW5kZXg6ZGVsaW1faW5kZXhdKSkKLSAgICAgICAgYnJlYWs7Ci0gICAgICByZXN1bHQuYXBwZW5kKGZsb2F0KGxpbmVbc3RhcnRfaW5kZXg6Y29tbWFfaW5kZXhdKSkKLSAgICAgIHN0YXJ0X2luZGV4ID0gY29tbWFfaW5kZXggKyAyCi0gICAgcmV0dXJuIHJlc3VsdAotCi0gICMgQWRkIGEgdmFsdWUgdG8gYSB0aW1lIHNlcmllcy4KLSAgZGVmIF9hcHBlbmQoc2VsZiwgdGltZXNlcmllcywgdGltZWluZGV4LCBudW1iZXIpOgotICAgIHRpbWVzZXJpZXNbMF0uYXBwZW5kKHRpbWVpbmRleCkKLSAgICB0aW1lc2VyaWVzWzFdLmFwcGVuZChudW1iZXIpCi0KLSAgIyBQYXJzZSB0aGUgbG9nY2F0IHRpbWVzdGFtcC4KLSAgIyBUaW1lc3RhbXAgaGFzIHRoZSBmb3JtICcwMS0yMSAyMDo0Mjo0Mi45MzAnCi0gIGRlZiBfcGFyc2VfdGltZXN0YW1wKHNlbGYsIGxpbmUpOgotICAgIHJldHVybiBkYXRldGltZS5zdHJwdGltZShsaW5lWzA6MThdLCAnJW0tJWQgJUg6JU06JVMuJWYnKQotCi0jIE5vdGljZQotcHJpbnQgIldpbmRvdyBPcmllbnRhdGlvbiBMaXN0ZW5lciBwbG90dGluZyB0b29sIgotcHJpbnQgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCi1wcmludCAiUGxlYXNlIHR1cm4gb24gdGhlIFdpbmRvdyBPcmllbnRhdGlvbiBMaXN0ZW5lciBsb2dnaW5nIGluIERldmVsb3BtZW50IFNldHRpbmdzLiIKLQotIyBTdGFydCBhZGIuCi1wcmludCAiU3RhcnRpbmcgYWRiIGxvZ2NhdC5cbiIKLQotYWRiID0gc3VicHJvY2Vzcy5Qb3BlbihbJ2FkYicsICdsb2djYXQnLCAnLXMnLCAnLXYnLCAndGltZScsICdXaW5kb3dPcmllbnRhdGlvbkxpc3RlbmVyOlYnXSwKLSAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQotYWRib3V0ID0gTm9uQmxvY2tpbmdTdHJlYW0oYWRiLnN0ZG91dCkKLQotIyBQcmVwYXJlIHBsb3R0ZXIuCi1wbG90dGVyID0gUGxvdHRlcihhZGJvdXQpCi1wbG90dGVyLnVwZGF0ZSgpCi0KLSMgTWFpbiBsb29wLgotcGxvdC5zaG93KCkKZGlmZiAtLWdpdCBhL3Rvb2xzL3ByZWxvYWQvMjAwODA1MjIuY29tcGlsZWQgYi90b29scy9wcmVsb2FkLzIwMDgwNTIyLmNvbXBpbGVkCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMmFmNDIyLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL3ByZWxvYWQvMjAwODA1MjIuY29tcGlsZWQKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90b29scy9wcmVsb2FkLzIwMDkwODExLmNvbXBpbGVkIGIvdG9vbHMvcHJlbG9hZC8yMDA5MDgxMS5jb21waWxlZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmRiZWNhMC4uMDAwMDAwMAotLS0gYS90b29scy9wcmVsb2FkLzIwMDkwODExLmNvbXBpbGVkCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdG9vbHMvcHJlbG9hZC8yMDEwMDIyMy5jb21waWxlZCBiL3Rvb2xzL3ByZWxvYWQvMjAxMDAyMjMuY29tcGlsZWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwNTYzODguLjAwMDAwMDAKLS0tIGEvdG9vbHMvcHJlbG9hZC8yMDEwMDIyMy5jb21waWxlZAorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rvb2xzL3ByZWxvYWQvQW5kcm9pZC5tayBiL3Rvb2xzL3ByZWxvYWQvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjMyNTg3MC4uMDAwMDAwMAotLS0gYS90b29scy9wcmVsb2FkL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1MT0NBTF9QQVRIOj0gJChjYWxsIG15LWRpcikKLQotaW5jbHVkZSAkKENMRUFSX1ZBUlMpCi0KLUxPQ0FMX1NSQ19GSUxFUyA6PSBcCi0JQ29tcGlsZS5qYXZhICBcCi0JTG9hZGVkQ2xhc3MuamF2YSBcCi0JTWVtb3J5VXNhZ2UuamF2YSBcCi0JT3BlcmF0aW9uLmphdmEgXAotCVBvbGljeS5qYXZhIFwKLQlQcmludENzdi5qYXZhIFwKLQlQcmludEh0bWxEaWZmLmphdmEgXAotCVByaW50UHNUcmVlLmphdmEgXAotCVByb2MuamF2YSBcCi0JUmVjb3JkLmphdmEgXAotCVJvb3QuamF2YSBcCi0JV3JpdGVQcmVsb2FkZWRDbGFzc0ZpbGUuamF2YQotCi1MT0NBTF9NT0RVTEU6PSBwcmVsb2FkCi0KLWluY2x1ZGUgJChCVUlMRF9IT1NUX0pBVkFfTElCUkFSWSkKLQotaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90b29scy9wcmVsb2FkL0NvbXBpbGUuamF2YSBiL3Rvb2xzL3ByZWxvYWQvQ29tcGlsZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzI1OGVmLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL3ByZWxvYWQvQ29tcGlsZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLWltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOwotaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOwotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotCi0vKioKLSAqIFBhcnNlcyBhbmQgYW5hbHl6ZXMgYSBsb2csIHB1bGxpbmcgb3VyIFBSRUxPQUQgaW5mb3JtYXRpb24uIElmIHlvdSBoYXZlCi0gKiBhbiBlbXVsYXRvciBvciBkZXZpY2UgcnVubmluZyBpbiB0aGUgYmFja2dyb3VuZCwgdGhpcyBjbGFzcyB3aWxsIHVzZSBpdAotICogdG8gbWVhc3VyZSBhbmQgcmVjb3JkIHRoZSBtZW1vcnkgdXNhZ2Ugb2YgZWFjaCBjbGFzcy4KLSAqIAotICogVE9ETzogU2hvdWxkIGFuYWx5emUgbGluZXMgYW5kIHNlbGVjdCBzdWJzdHJpbmcgZHluYW1pY2FsbHkgKGluc3RlYWQgb2YgaGFyZGNvZGVkIDE5KQotICovCi1wdWJsaWMgY2xhc3MgQ29tcGlsZSB7Ci0KLSAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24gewotICAgICAgICBpZiAoYXJncy5sZW5ndGggIT0gMikgewotICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVc2FnZTogQ29tcGlsZSBbbG9nIGZpbGVdIFtvdXRwdXQgZmlsZV0iKTsKLSAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOwotICAgICAgICB9Ci0KLSAgICAgICAgUm9vdCByb290ID0gbmV3IFJvb3QoKTsKLQotICAgICAgICBMaXN0PFJlY29yZD4gcmVjb3JkcyA9IG5ldyBBcnJheUxpc3Q8UmVjb3JkPigpOwotCi0gICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGluID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcigKLSAgICAgICAgICAgICAgICBuZXcgRmlsZUlucHV0U3RyZWFtKGFyZ3NbMF0pKSk7Ci0KLSAgICAgICAgU3RyaW5nIGxpbmU7Ci0gICAgICAgIGludCBsaW5lTnVtYmVyID0gMDsKLSAgICAgICAgd2hpbGUgKChsaW5lID0gaW4ucmVhZExpbmUoKSkgIT0gbnVsbCkgewotICAgICAgICAgICAgbGluZU51bWJlcisrOwotICAgICAgICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aCgiSS9QUkVMT0FEIikpIHsKLSAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY2xpcHBlZCA9IGxpbmUuc3Vic3RyaW5nKDE5KTsKLSAgICAgICAgICAgICAgICAgICAgcmVjb3Jkcy5hZGQobmV3IFJlY29yZChjbGlwcGVkLCBsaW5lTnVtYmVyKSk7Ci0gICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFeGNlcHRpb24gd2hpbGUgcmVjb3JkaW5nIGxpbmUgIiArIGxpbmVOdW1iZXIgKyAiOiAiICsgbGluZSwgZSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChSZWNvcmQgcmVjb3JkIDogcmVjb3JkcykgewotICAgICAgICAgICAgcm9vdC5pbmRleFByb2Nlc3MocmVjb3JkKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZvciAoUmVjb3JkIHJlY29yZCA6IHJlY29yZHMpIHsKLSAgICAgICAgICAgIHJvb3QuaW5kZXhDbGFzc09wZXJhdGlvbihyZWNvcmQpOwotICAgICAgICB9Ci0KLSAgICAgICAgaW4uY2xvc2UoKTsKLQotICAgICAgICByb290LnRvRmlsZShhcmdzWzFdKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9wcmVsb2FkL0xvYWRlZENsYXNzLmphdmEgYi90b29scy9wcmVsb2FkL0xvYWRlZENsYXNzLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2ZTVkZmMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvcHJlbG9hZC9Mb2FkZWRDbGFzcy5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTMwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1pbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7Ci1pbXBvcnQgamF2YS51dGlsLio7Ci0KLS8qKgotICogQSBsb2FkZWQgY2xhc3MuCi0gKi8KLWNsYXNzIExvYWRlZENsYXNzIGltcGxlbWVudHMgU2VyaWFsaXphYmxlLCBDb21wYXJhYmxlPExvYWRlZENsYXNzPiB7Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAwOwotCi0gICAgLyoqIENsYXNzIG5hbWUuICovCi0gICAgZmluYWwgU3RyaW5nIG5hbWU7Ci0KLSAgICAvKiogTG9hZCBvcGVyYXRpb25zLiAqLwotICAgIGZpbmFsIExpc3Q8T3BlcmF0aW9uPiBsb2FkcyA9IG5ldyBBcnJheUxpc3Q8T3BlcmF0aW9uPigpOwotCi0gICAgLyoqIFN0YXRpYyBpbml0aWFsaXphdGlvbiBvcGVyYXRpb25zLiAqLwotICAgIGZpbmFsIExpc3Q8T3BlcmF0aW9uPiBpbml0aWFsaXphdGlvbnMgPSBuZXcgQXJyYXlMaXN0PE9wZXJhdGlvbj4oKTsKLQotICAgIC8qKiBNZW1vcnkgdXNhZ2UgZ2F0aGVyZWQgYnkgbG9hZGluZyBvbmx5IHRoaXMgY2xhc3MgaW4gaXRzIG93biBWTS4gKi8KLSAgICBNZW1vcnlVc2FnZSBtZW1vcnlVc2FnZSA9IE1lbW9yeVVzYWdlLk5PVF9BVkFJTEFCTEU7Ci0KLSAgICAvKioKLSAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIGNsYXNzIHdhcyBsb2FkZWQgaW4gdGhlIHN5c3RlbSBjbGFzcyBsb2FkZXIuCi0gICAgICovCi0gICAgZmluYWwgYm9vbGVhbiBzeXN0ZW1DbGFzczsKLQotICAgIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGlzIGNsYXNzIHdpbGwgYmUgcHJlbG9hZGVkLiAqLwotICAgIGJvb2xlYW4gcHJlbG9hZGVkOwotCi0gICAgLyoqIENvbnN0cnVjdHMgYSBuZXcgY2xhc3MuICovCi0gICAgTG9hZGVkQ2xhc3MoU3RyaW5nIG5hbWUsIGJvb2xlYW4gc3lzdGVtQ2xhc3MpIHsKLSAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5zeXN0ZW1DbGFzcyA9IHN5c3RlbUNsYXNzOwotICAgIH0KLQotICAgIHZvaWQgbWVhc3VyZU1lbW9yeVVzYWdlKCkgewotICAgICAgICB0aGlzLm1lbW9yeVVzYWdlID0gTWVtb3J5VXNhZ2UuZm9yQ2xhc3MobmFtZSk7Ci0gICAgfQotCi0gICAgaW50IG1sdCA9IC0xOwotCi0gICAgLyoqIE1lZGlhbiB0aW1lIHRvIGxvYWQgdGhpcyBjbGFzcy4gKi8KLSAgICBpbnQgbWVkaWFuTG9hZFRpbWVNaWNyb3MoKSB7Ci0gICAgICAgIGlmIChtbHQgIT0gLTEpIHsKLSAgICAgICAgICAgIHJldHVybiBtbHQ7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbWx0ID0gY2FsY3VsYXRlTWVkaWFuKGxvYWRzKTsKLSAgICB9Ci0KLSAgICBpbnQgbWl0ID0gLTE7Ci0KLSAgICAvKiogTWVkaWFuIHRpbWUgdG8gaW5pdGlhbGl6ZSB0aGlzIGNsYXNzLiAqLwotICAgIGludCBtZWRpYW5Jbml0VGltZU1pY3JvcygpIHsKLSAgICAgICAgaWYgKG1pdCAhPSAtMSkgewotICAgICAgICAgICAgcmV0dXJuIG1pdDsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBtaXQgPSBjYWxjdWxhdGVNZWRpYW4oaW5pdGlhbGl6YXRpb25zKTsKLSAgICB9Ci0KLSAgICBpbnQgbWVkaWFuVGltZU1pY3JvcygpIHsKLSAgICAgICAgcmV0dXJuIG1lZGlhbkluaXRUaW1lTWljcm9zKCkgKyBtZWRpYW5Mb2FkVGltZU1pY3JvcygpOwotICAgIH0KLQotICAgIC8qKiBDYWxjdWxhdGVzIHRoZSBtZWRpYW4gZHVyYXRpb24gZm9yIGEgbGlzdCBvZiBvcGVyYXRpb25zLiAqLwotICAgIHByaXZhdGUgc3RhdGljIGludCBjYWxjdWxhdGVNZWRpYW4oTGlzdDxPcGVyYXRpb24+IG9wZXJhdGlvbnMpIHsKLSAgICAgICAgaW50IHNpemUgPSBvcGVyYXRpb25zLnNpemUoKTsKLSAgICAgICAgaWYgKHNpemUgPT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgICAgICBpbnRbXSB0aW1lcyA9IG5ldyBpbnRbc2l6ZV07Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAgICB0aW1lc1tpXSA9IG9wZXJhdGlvbnMuZ2V0KGkpLmV4Y2x1c2l2ZVRpbWVNaWNyb3MoKTsKLSAgICAgICAgfQotCi0gICAgICAgIEFycmF5cy5zb3J0KHRpbWVzKTsKLSAgICAgICAgaW50IG1pZGRsZSA9IHNpemUgLyAyOwotICAgICAgICBpZiAoc2l6ZSAlIDIgPT0gMSkgewotICAgICAgICAgICAgLy8gT2RkCi0gICAgICAgICAgICByZXR1cm4gdGltZXNbbWlkZGxlXTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEV2ZW4gLS0gYXZlcmFnZSB0aGUgdHdvLgotICAgICAgICAgICAgcmV0dXJuICh0aW1lc1ttaWRkbGUgLSAxXSArIHRpbWVzW21pZGRsZV0pIC8gMjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKiBSZXR1cm5zIG5hbWVzIG9mIHByb2Nlc3NlcyB0aGF0IGxvYWRlZCB0aGlzIGNsYXNzLiAqLwotICAgIFNldDxTdHJpbmc+IHByb2Nlc3NOYW1lcygpIHsKLSAgICAgICAgU2V0PFN0cmluZz4gbmFtZXMgPSBuZXcgSGFzaFNldDxTdHJpbmc+KCk7Ci0gICAgICAgIGFkZFByb2Nlc3NOYW1lcyhsb2FkcywgbmFtZXMpOwotICAgICAgICBhZGRQcm9jZXNzTmFtZXMoaW5pdGlhbGl6YXRpb25zLCBuYW1lcyk7Ci0gICAgICAgIHJldHVybiBuYW1lczsKLSAgICB9Ci0KLSAgICBwcml2YXRlIHZvaWQgYWRkUHJvY2Vzc05hbWVzKExpc3Q8T3BlcmF0aW9uPiBvcHMsIFNldDxTdHJpbmc+IG5hbWVzKSB7Ci0gICAgICAgIGZvciAoT3BlcmF0aW9uIG9wZXJhdGlvbiA6IG9wcykgewotICAgICAgICAgICAgaWYgKG9wZXJhdGlvbi5wcm9jZXNzLmZyb21aeWdvdGUoKSkgewotICAgICAgICAgICAgICAgIG5hbWVzLmFkZChvcGVyYXRpb24ucHJvY2Vzcy5uYW1lKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKExvYWRlZENsYXNzIG8pIHsKLSAgICAgICAgcmV0dXJuIG5hbWUuY29tcGFyZVRvKG8ubmFtZSk7Ci0gICAgfQotCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKLSAgICAgICAgcmV0dXJuIG5hbWU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvcHJlbG9hZC9NZW1vcnlVc2FnZS5qYXZhIGIvdG9vbHMvcHJlbG9hZC9NZW1vcnlVc2FnZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOGY5NWY0Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL3ByZWxvYWQvTWVtb3J5VXNhZ2UuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDI5OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOwotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKLWltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOwotaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5PdXRwdXRTdHJlYW07Ci1pbXBvcnQgamF2YS51dGlsLkxpc3Q7Ci1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOwotCi0vKioKLSAqIE1lbW9yeSB1c2FnZSBpbmZvcm1hdGlvbi4KLSAqLwotY2xhc3MgTWVtb3J5VXNhZ2UgaW1wbGVtZW50cyBTZXJpYWxpemFibGUgewotCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMDsKLQotICAgIHN0YXRpYyBmaW5hbCBNZW1vcnlVc2FnZSBOT1RfQVZBSUxBQkxFID0gbmV3IE1lbW9yeVVzYWdlKCk7Ci0gICAgCi0gICAgc3RhdGljIGludCBlcnJvckNvdW50ID0gMDsKLQotICAgIC8vIFRoZXNlIHZhbHVlcyBhcmUgaW4gMWtCIGluY3JlbWVudHMgKG5vdCA0a0IgbGlrZSB5b3UnZCBleHBlY3QpLgotICAgIGZpbmFsIGludCBuYXRpdmVTaGFyZWRQYWdlczsKLSAgICBmaW5hbCBpbnQgamF2YVNoYXJlZFBhZ2VzOwotICAgIGZpbmFsIGludCBvdGhlclNoYXJlZFBhZ2VzOwotICAgIGZpbmFsIGludCBuYXRpdmVQcml2YXRlUGFnZXM7Ci0gICAgZmluYWwgaW50IGphdmFQcml2YXRlUGFnZXM7Ci0gICAgZmluYWwgaW50IG90aGVyUHJpdmF0ZVBhZ2VzOwotCi0gICAgZmluYWwgaW50IGFsbG9jQ291bnQ7Ci0gICAgZmluYWwgaW50IGFsbG9jU2l6ZTsKLSAgICBmaW5hbCBpbnQgZnJlZWRDb3VudDsKLSAgICBmaW5hbCBpbnQgZnJlZWRTaXplOwotICAgIGZpbmFsIGxvbmcgbmF0aXZlSGVhcFNpemU7Ci0KLSAgICBwdWJsaWMgTWVtb3J5VXNhZ2UoU3RyaW5nIGxpbmUpIHsKLSAgICAgICAgU3RyaW5nW10gcGFyc2VkID0gbGluZS5zcGxpdCgiLCIpOwotCi0gICAgICAgIG5hdGl2ZVNoYXJlZFBhZ2VzID0gSW50ZWdlci5wYXJzZUludChwYXJzZWRbMV0pOwotICAgICAgICBqYXZhU2hhcmVkUGFnZXMgPSBJbnRlZ2VyLnBhcnNlSW50KHBhcnNlZFsyXSk7Ci0gICAgICAgIG90aGVyU2hhcmVkUGFnZXMgPSBJbnRlZ2VyLnBhcnNlSW50KHBhcnNlZFszXSk7Ci0gICAgICAgIG5hdGl2ZVByaXZhdGVQYWdlcyA9IEludGVnZXIucGFyc2VJbnQocGFyc2VkWzRdKTsKLSAgICAgICAgamF2YVByaXZhdGVQYWdlcyA9IEludGVnZXIucGFyc2VJbnQocGFyc2VkWzVdKTsKLSAgICAgICAgb3RoZXJQcml2YXRlUGFnZXMgPSBJbnRlZ2VyLnBhcnNlSW50KHBhcnNlZFs2XSk7Ci0gICAgICAgIGFsbG9jQ291bnQgPSBJbnRlZ2VyLnBhcnNlSW50KHBhcnNlZFs3XSk7Ci0gICAgICAgIGFsbG9jU2l6ZSA9IEludGVnZXIucGFyc2VJbnQocGFyc2VkWzhdKTsKLSAgICAgICAgZnJlZWRDb3VudCA9IEludGVnZXIucGFyc2VJbnQocGFyc2VkWzldKTsKLSAgICAgICAgZnJlZWRTaXplID0gSW50ZWdlci5wYXJzZUludChwYXJzZWRbMTBdKTsKLSAgICAgICAgbmF0aXZlSGVhcFNpemUgPSBMb25nLnBhcnNlTG9uZyhwYXJzZWRbMTFdKTsKLSAgICB9Ci0KLSAgICBNZW1vcnlVc2FnZSgpIHsKLSAgICAgICAgbmF0aXZlU2hhcmVkUGFnZXMgPSAtMTsKLSAgICAgICAgamF2YVNoYXJlZFBhZ2VzID0gLTE7Ci0gICAgICAgIG90aGVyU2hhcmVkUGFnZXMgPSAtMTsKLSAgICAgICAgbmF0aXZlUHJpdmF0ZVBhZ2VzID0gLTE7Ci0gICAgICAgIGphdmFQcml2YXRlUGFnZXMgPSAtMTsKLSAgICAgICAgb3RoZXJQcml2YXRlUGFnZXMgPSAtMTsKLQotICAgICAgICBhbGxvY0NvdW50ID0gLTE7Ci0gICAgICAgIGFsbG9jU2l6ZSA9IC0xOwotICAgICAgICBmcmVlZENvdW50ID0gLTE7Ci0gICAgICAgIGZyZWVkU2l6ZSA9IC0xOwotICAgICAgICBuYXRpdmVIZWFwU2l6ZSA9IC0xOwotICAgIH0KLQotICAgIE1lbW9yeVVzYWdlKGludCBuYXRpdmVTaGFyZWRQYWdlcywKLSAgICAgICAgICAgIGludCBqYXZhU2hhcmVkUGFnZXMsCi0gICAgICAgICAgICBpbnQgb3RoZXJTaGFyZWRQYWdlcywKLSAgICAgICAgICAgIGludCBuYXRpdmVQcml2YXRlUGFnZXMsCi0gICAgICAgICAgICBpbnQgamF2YVByaXZhdGVQYWdlcywKLSAgICAgICAgICAgIGludCBvdGhlclByaXZhdGVQYWdlcywKLSAgICAgICAgICAgIGludCBhbGxvY0NvdW50LAotICAgICAgICAgICAgaW50IGFsbG9jU2l6ZSwKLSAgICAgICAgICAgIGludCBmcmVlZENvdW50LAotICAgICAgICAgICAgaW50IGZyZWVkU2l6ZSwKLSAgICAgICAgICAgIGxvbmcgbmF0aXZlSGVhcFNpemUpIHsKLSAgICAgICAgdGhpcy5uYXRpdmVTaGFyZWRQYWdlcyA9IG5hdGl2ZVNoYXJlZFBhZ2VzOwotICAgICAgICB0aGlzLmphdmFTaGFyZWRQYWdlcyA9IGphdmFTaGFyZWRQYWdlczsKLSAgICAgICAgdGhpcy5vdGhlclNoYXJlZFBhZ2VzID0gb3RoZXJTaGFyZWRQYWdlczsKLSAgICAgICAgdGhpcy5uYXRpdmVQcml2YXRlUGFnZXMgPSBuYXRpdmVQcml2YXRlUGFnZXM7Ci0gICAgICAgIHRoaXMuamF2YVByaXZhdGVQYWdlcyA9IGphdmFQcml2YXRlUGFnZXM7Ci0gICAgICAgIHRoaXMub3RoZXJQcml2YXRlUGFnZXMgPSBvdGhlclByaXZhdGVQYWdlczsKLSAgICAgICAgdGhpcy5hbGxvY0NvdW50ID0gYWxsb2NDb3VudDsKLSAgICAgICAgdGhpcy5hbGxvY1NpemUgPSBhbGxvY1NpemU7Ci0gICAgICAgIHRoaXMuZnJlZWRDb3VudCA9IGZyZWVkQ291bnQ7Ci0gICAgICAgIHRoaXMuZnJlZWRTaXplID0gZnJlZWRTaXplOwotICAgICAgICB0aGlzLm5hdGl2ZUhlYXBTaXplID0gbmF0aXZlSGVhcFNpemU7Ci0gICAgfQotCi0gICAgTWVtb3J5VXNhZ2Ugc3VidHJhY3QoTWVtb3J5VXNhZ2UgYmFzZWxpbmUpIHsKLSAgICAgICAgcmV0dXJuIG5ldyBNZW1vcnlVc2FnZSgKLSAgICAgICAgICAgICAgICBuYXRpdmVTaGFyZWRQYWdlcyAtIGJhc2VsaW5lLm5hdGl2ZVNoYXJlZFBhZ2VzLAotICAgICAgICAgICAgICAgIGphdmFTaGFyZWRQYWdlcyAtIGJhc2VsaW5lLmphdmFTaGFyZWRQYWdlcywKLSAgICAgICAgICAgICAgICBvdGhlclNoYXJlZFBhZ2VzIC0gYmFzZWxpbmUub3RoZXJTaGFyZWRQYWdlcywKLSAgICAgICAgICAgICAgICBuYXRpdmVQcml2YXRlUGFnZXMgLSBiYXNlbGluZS5uYXRpdmVQcml2YXRlUGFnZXMsCi0gICAgICAgICAgICAgICAgamF2YVByaXZhdGVQYWdlcyAtIGJhc2VsaW5lLmphdmFQcml2YXRlUGFnZXMsCi0gICAgICAgICAgICAgICAgb3RoZXJQcml2YXRlUGFnZXMgLSBiYXNlbGluZS5vdGhlclByaXZhdGVQYWdlcywKLSAgICAgICAgICAgICAgICBhbGxvY0NvdW50IC0gYmFzZWxpbmUuYWxsb2NDb3VudCwKLSAgICAgICAgICAgICAgICBhbGxvY1NpemUgLSBiYXNlbGluZS5hbGxvY1NpemUsCi0gICAgICAgICAgICAgICAgZnJlZWRDb3VudCAtIGJhc2VsaW5lLmZyZWVkQ291bnQsCi0gICAgICAgICAgICAgICAgZnJlZWRTaXplIC0gYmFzZWxpbmUuZnJlZWRTaXplLAotICAgICAgICAgICAgICAgIG5hdGl2ZUhlYXBTaXplIC0gYmFzZWxpbmUubmF0aXZlSGVhcFNpemUpOwotICAgIH0KLQotICAgIGludCBqYXZhSGVhcFNpemUoKSB7Ci0gICAgICAgIHJldHVybiBhbGxvY1NpemUgLSBmcmVlZFNpemU7Ci0gICAgfQotCi0gICAgaW50IHRvdGFsSGVhcCgpIHsKLSAgICAgICAgcmV0dXJuIGphdmFIZWFwU2l6ZSgpICsgKGludCkgbmF0aXZlSGVhcFNpemU7Ci0gICAgfQotCi0gICAgaW50IGphdmFQYWdlc0luSygpIHsKLSAgICAgICAgcmV0dXJuIGphdmFTaGFyZWRQYWdlcyArIGphdmFQcml2YXRlUGFnZXM7Ci0gICAgfQotCi0gICAgaW50IG5hdGl2ZVBhZ2VzSW5LKCkgewotICAgICAgICByZXR1cm4gbmF0aXZlU2hhcmVkUGFnZXMgKyBuYXRpdmVQcml2YXRlUGFnZXM7Ci0gICAgfQotICAgIGludCBvdGhlclBhZ2VzSW5LKCkgewotICAgICAgICByZXR1cm4gb3RoZXJTaGFyZWRQYWdlcyArIG90aGVyUHJpdmF0ZVBhZ2VzOwotICAgIH0KLQotICAgIGludCB0b3RhbFBhZ2VzKCkgewotICAgICAgICByZXR1cm4gamF2YVNoYXJlZFBhZ2VzICsgamF2YVByaXZhdGVQYWdlcyArIG5hdGl2ZVNoYXJlZFBhZ2VzICsKLSAgICAgICAgICAgICAgICBuYXRpdmVQcml2YXRlUGFnZXMgKyBvdGhlclNoYXJlZFBhZ2VzICsgb3RoZXJQcml2YXRlUGFnZXM7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogV2FzIHRoaXMgaW5mb3JtYXRpb24gYXZhaWxhYmxlPwotICAgICAqLwotICAgIGJvb2xlYW4gaXNBdmFpbGFibGUoKSB7Ci0gICAgICAgIHJldHVybiBuYXRpdmVTaGFyZWRQYWdlcyAhPSAtMTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBNZWFzdXJlcyBiYXNlbGluZSBtZW1vcnkgdXNhZ2UuCi0gICAgICovCi0gICAgc3RhdGljIE1lbW9yeVVzYWdlIGJhc2VsaW5lKCkgewotICAgICAgICByZXR1cm4gZm9yQ2xhc3MobnVsbCk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1BBVEggPSAiLVhib290Y2xhc3NwYXRoIgotICAgICAgICAgICAgKyAiOi9zeXN0ZW0vZnJhbWV3b3JrL2NvcmUuamFyIgotICAgICAgICAgICAgKyAiOi9zeXN0ZW0vZnJhbWV3b3JrL2V4dC5qYXIiCi0gICAgICAgICAgICArICI6L3N5c3RlbS9mcmFtZXdvcmsvZnJhbWV3b3JrLmphciIKLSAgICAgICAgICAgICsgIjovc3lzdGVtL2ZyYW1ld29yay9mcmFtZXdvcmstdGVzdHMuamFyIgotICAgICAgICAgICAgKyAiOi9zeXN0ZW0vZnJhbWV3b3JrL3NlcnZpY2VzLmphciIKLSAgICAgICAgICAgICsgIjovc3lzdGVtL2ZyYW1ld29yay9sb2FkY2xhc3MuamFyIjsKLQotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEdFVF9ESVJUWV9QQUdFUyA9IHsKLSAgICAgICAgImFkYiIsICJzaGVsbCIsICJkYWx2aWt2bSIsIENMQVNTX1BBVEgsICJMb2FkQ2xhc3MiIH07Ci0KLSAgICAvKioKLSAgICAgKiBNZWFzdXJlcyBtZW1vcnkgdXNhZ2UgZm9yIHRoZSBnaXZlbiBjbGFzcy4KLSAgICAgKi8KLSAgICBzdGF0aWMgTWVtb3J5VXNhZ2UgZm9yQ2xhc3MoU3RyaW5nIGNsYXNzTmFtZSkgewotICAgICAgICBNZWFzdXJlV2l0aFRpbWVvdXQgbWVhc3VyZXIgPSBuZXcgTWVhc3VyZVdpdGhUaW1lb3V0KGNsYXNzTmFtZSk7Ci0KLSAgICAgICAgbmV3IFRocmVhZChtZWFzdXJlcikuc3RhcnQoKTsKLQotICAgICAgICBzeW5jaHJvbml6ZWQgKG1lYXN1cmVyKSB7Ci0gICAgICAgICAgICBpZiAobWVhc3VyZXIubWVtb3J5VXNhZ2UgPT0gbnVsbCkgewotICAgICAgICAgICAgICAgIC8vIFdhaXQgdXAgdG8gMTBzLgotICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgIG1lYXN1cmVyLndhaXQoMzAwMDApOwotICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJJbnRlcnJ1cHRlZCB3YWl0aW5nIGZvciBtZWFzdXJlbWVudC4iKTsKLSAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5PVF9BVkFJTEFCTEU7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gSWYgaXQncyBzdGlsbCBudWxsLgotICAgICAgICAgICAgICAgIGlmIChtZWFzdXJlci5tZW1vcnlVc2FnZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVGltZWQgb3V0IHdoaWxlIG1lYXN1cmluZyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBjbGFzc05hbWUgKyAiLiIpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTk9UX0FWQUlMQUJMRTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiR290IG1lbW9yeSB1c2FnZSBmb3IgIiArIGNsYXNzTmFtZSArICIuIik7Ci0gICAgICAgICAgICByZXR1cm4gbWVhc3VyZXIubWVtb3J5VXNhZ2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBzdGF0aWMgY2xhc3MgTWVhc3VyZVdpdGhUaW1lb3V0IGltcGxlbWVudHMgUnVubmFibGUgewotCi0gICAgICAgIGZpbmFsIFN0cmluZyBjbGFzc05hbWU7Ci0gICAgICAgIE1lbW9yeVVzYWdlIG1lbW9yeVVzYWdlID0gbnVsbDsKLQotICAgICAgICBNZWFzdXJlV2l0aFRpbWVvdXQoU3RyaW5nIGNsYXNzTmFtZSkgewotICAgICAgICAgICAgdGhpcy5jbGFzc05hbWUgPSBjbGFzc05hbWU7Ci0gICAgICAgIH0KLQotICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7Ci0gICAgICAgICAgICBNZW1vcnlVc2FnZSBtZWFzdXJlZCA9IG1lYXN1cmUoKTsKLQotICAgICAgICAgICAgc3luY2hyb25pemVkICh0aGlzKSB7Ci0gICAgICAgICAgICAgICAgbWVtb3J5VXNhZ2UgPSBtZWFzdXJlZDsKLSAgICAgICAgICAgICAgICBub3RpZnlBbGwoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGUgTWVtb3J5VXNhZ2UgbWVhc3VyZSgpIHsKLSAgICAgICAgICAgIFN0cmluZ1tdIGNvbW1hbmRzID0gR0VUX0RJUlRZX1BBR0VTOwotICAgICAgICAgICAgaWYgKGNsYXNzTmFtZSAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgTGlzdDxTdHJpbmc+IGNvbW1hbmRMaXN0ID0gbmV3IEFycmF5TGlzdDxTdHJpbmc+KAotICAgICAgICAgICAgICAgICAgICAgICAgR0VUX0RJUlRZX1BBR0VTLmxlbmd0aCArIDEpOwotICAgICAgICAgICAgICAgIGNvbW1hbmRMaXN0LmFkZEFsbChBcnJheXMuYXNMaXN0KGNvbW1hbmRzKSk7Ci0gICAgICAgICAgICAgICAgY29tbWFuZExpc3QuYWRkKGNsYXNzTmFtZSk7Ci0gICAgICAgICAgICAgICAgY29tbWFuZHMgPSBjb21tYW5kTGlzdC50b0FycmF5KG5ldyBTdHJpbmdbY29tbWFuZExpc3Quc2l6ZSgpXSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgZmluYWwgUHJvY2VzcyBwcm9jZXNzID0gUnVudGltZS5nZXRSdW50aW1lKCkuZXhlYyhjb21tYW5kcyk7Ci0KLSAgICAgICAgICAgICAgICBmaW5hbCBJbnB1dFN0cmVhbSBlcnIgPSBwcm9jZXNzLmdldEVycm9yU3RyZWFtKCk7Ci0KLSAgICAgICAgICAgICAgICAvLyBTZW5kIGVycm9yIG91dHB1dCB0byBzdGRlcnIuCi0gICAgICAgICAgICAgICAgVGhyZWFkIGVyclRocmVhZCA9IG5ldyBUaHJlYWQoKSB7Ci0gICAgICAgICAgICAgICAgICAgIEBPdmVycmlkZQotICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb3B5KGVyciwgU3lzdGVtLmVycik7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIGVyclRocmVhZC5zZXREYWVtb24odHJ1ZSk7Ci0gICAgICAgICAgICAgICAgZXJyVGhyZWFkLnN0YXJ0KCk7Ci0KLSAgICAgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBpbiA9IG5ldyBCdWZmZXJlZFJlYWRlcigKLSAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnB1dFN0cmVhbVJlYWRlcihwcm9jZXNzLmdldElucHV0U3RyZWFtKCkpKTsKLSAgICAgICAgICAgICAgICBTdHJpbmcgbGluZSA9IGluLnJlYWRMaW5lKCk7Ci0gICAgICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCB8fCAhbGluZS5zdGFydHNXaXRoKCJERUNBRkJBRCwiKSkgewotICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkdvdCBiYWQgcmVzcG9uc2UgZm9yICIgKyBjbGFzc05hbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICArICI6ICIgKyBsaW5lICsgIjsgY29tbWFuZCB3YXMgIiArIEFycmF5cy50b1N0cmluZyhjb21tYW5kcykpOwotICAgICAgICAgICAgICAgICAgICBlcnJvckNvdW50ICs9IDE7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOT1RfQVZBSUxBQkxFOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGluLmNsb3NlKCk7Ci0gICAgICAgICAgICAgICAgZXJyLmNsb3NlKCk7Ci0gICAgICAgICAgICAgICAgcHJvY2Vzcy5kZXN0cm95KCk7ICAgICAgICAgICAgICAgIAotCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNZW1vcnlVc2FnZShsaW5lKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVycm9yIGdldHRpbmcgc3RhdHMgZm9yICIKLSAgICAgICAgICAgICAgICAgICAgICAgICsgY2xhc3NOYW1lICsgIi4iKTsgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gTk9UX0FWQUlMQUJMRTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgfQotCi0gICAgLyoqCi0gICAgICogQ29waWVzIGZyb20gb25lIHN0cmVhbSB0byBhbm90aGVyLgotICAgICAqLwotICAgIHByaXZhdGUgc3RhdGljIHZvaWQgY29weShJbnB1dFN0cmVhbSBpbiwgT3V0cHV0U3RyZWFtIG91dCkgewotICAgICAgICBieXRlW10gYnVmZmVyID0gbmV3IGJ5dGVbMTAyNF07Ci0gICAgICAgIGludCByZWFkOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgd2hpbGUgKChyZWFkID0gaW4ucmVhZChidWZmZXIpKSA+IC0xKSB7Ci0gICAgICAgICAgICAgICAgb3V0LndyaXRlKGJ1ZmZlciwgMCwgcmVhZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiogTWVhc3VyZXMgbWVtb3J5IHVzYWdlIGluZm9ybWF0aW9uIGFuZCBzdG9yZXMgaXQgaW4gdGhlIG1vZGVsLiAqLwotICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiwKLSAgICAgICAgICAgIENsYXNzTm90Rm91bmRFeGNlcHRpb24gewotICAgICAgICBSb290IHJvb3QgPSBSb290LmZyb21GaWxlKGFyZ3NbMF0pOwotICAgICAgICByb290LmJhc2VsaW5lID0gYmFzZWxpbmUoKTsKLSAgICAgICAgZm9yIChMb2FkZWRDbGFzcyBsb2FkZWRDbGFzcyA6IHJvb3QubG9hZGVkQ2xhc3Nlcy52YWx1ZXMoKSkgewotICAgICAgICAgICAgaWYgKGxvYWRlZENsYXNzLnN5c3RlbUNsYXNzKSB7Ci0gICAgICAgICAgICAgICAgbG9hZGVkQ2xhc3MubWVhc3VyZU1lbW9yeVVzYWdlKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcm9vdC50b0ZpbGUoYXJnc1swXSk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvcHJlbG9hZC9PcGVyYXRpb24uamF2YSBiL3Rvb2xzL3ByZWxvYWQvT3BlcmF0aW9uLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmMTkzOGUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvcHJlbG9hZC9PcGVyYXRpb24uamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDEzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7Ci1pbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7Ci0KLS8qKgotICogQW4gb3BlcmF0aW9uIHdpdGggYSBkdXJhdGlvbi4gQ291bGQgcmVwcmVzZW50IGEgY2xhc3MgbG9hZCBvciBpbml0aWFsaXphdGlvbi4KLSAqLwotY2xhc3MgT3BlcmF0aW9uIGltcGxlbWVudHMgU2VyaWFsaXphYmxlIHsKLQotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDA7Ci0gICAgCi0gICAgLyoqCi0gICAgICogVHlwZSBvZiBvcGVyYXRpb24uCi0gICAgICovCi0gICAgZW51bSBUeXBlIHsKLSAgICAgICAgTE9BRCwgSU5JVAotICAgIH0KLQotICAgIC8qKiBQcm9jZXNzIHRoaXMgb3BlcmF0aW9uIG9jY3VycmVkIGluLiAqLwotICAgIGZpbmFsIFByb2MgcHJvY2VzczsKLQotICAgIC8qKiBTdGFydCB0aW1lIGZvciB0aGlzIG9wZXJhdGlvbi4gKi8KLSAgICBmaW5hbCBsb25nIHN0YXJ0VGltZU5hbm9zOwotCi0gICAgLyoqIEluZGV4IG9mIHRoaXMgb3BlcmF0aW9uIHJlbGF0aXZlIHRvIGl0cyBwcm9jZXNzLiAqLwotICAgIGZpbmFsIGludCBpbmRleDsKLQotICAgIC8qKiBUeXBlIG9mIG9wZXJhdGlvbi4gKi8KLSAgICBmaW5hbCBUeXBlIHR5cGU7Ci0KLSAgICAvKiogRW5kIHRpbWUgZm9yIHRoaXMgb3BlcmF0aW9uLiAqLwotICAgIGxvbmcgZW5kVGltZU5hbm9zID0gLTE7Ci0KLSAgICAvKiogVGhlIGNsYXNzIHRoYXQgdGhpcyBvcGVyYXRpb24gbG9hZGVkIG9yIGluaXRpYWxpemVkLiAqLwotICAgIGZpbmFsIExvYWRlZENsYXNzIGxvYWRlZENsYXNzOwotCi0gICAgLyoqIE90aGVyIG9wZXJhdGlvbnMgdGhhdCBvY2N1cnJlZCBkdXJpbmcgdGhpcyBvbmUuICovCi0gICAgZmluYWwgTGlzdDxPcGVyYXRpb24+IHN1Ym9wcyA9IG5ldyBBcnJheUxpc3Q8T3BlcmF0aW9uPigpOwotCi0gICAgLyoqIENvbnN0cnVjdHMgYSBuZXcgb3BlcmF0aW9uLiAqLwotICAgIE9wZXJhdGlvbihQcm9jIHByb2Nlc3MsIExvYWRlZENsYXNzIGxvYWRlZENsYXNzLCBsb25nIHN0YXJ0VGltZU5hbm9zLAotICAgICAgICAgICAgaW50IGluZGV4LCBUeXBlIHR5cGUpIHsKLSAgICAgICAgdGhpcy5wcm9jZXNzID0gcHJvY2VzczsKLSAgICAgICAgdGhpcy5sb2FkZWRDbGFzcyA9IGxvYWRlZENsYXNzOwotICAgICAgICB0aGlzLnN0YXJ0VGltZU5hbm9zID0gc3RhcnRUaW1lTmFub3M7Ci0gICAgICAgIHRoaXMuaW5kZXggPSBpbmRleDsKLSAgICAgICAgdGhpcy50eXBlID0gdHlwZTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIGhvdyBsb25nIHRoaXMgY2xhc3MgaW5pdGlhbGl6YXRpb24gYW5kIGFsbCB0aGUgbmVzdGVkIGNsYXNzCi0gICAgICogaW5pdGlhbGl6YXRpb25zIHRvb2suCi0gICAgICovCi0gICAgcHJpdmF0ZSBsb25nIGluY2x1c2l2ZVRpbWVOYW5vcygpIHsKLSAgICAgICAgaWYgKGVuZFRpbWVOYW5vcyA9PSAtMSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiRW5kIHRpbWUgaGFzbid0IGJlZW4gc2V0IHlldDogIgotICAgICAgICAgICAgICAgICAgICArIGxvYWRlZENsYXNzLm5hbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGVuZFRpbWVOYW5vcyAtIHN0YXJ0VGltZU5hbm9zOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgaG93IGxvbmcgdGhpcyBjbGFzcyBpbml0aWFsaXphdGlvbiB0b29rLgotICAgICAqLwotICAgIGludCBleGNsdXNpdmVUaW1lTWljcm9zKCkgewotICAgICAgICBsb25nIGV4Y2x1c2l2ZSA9IGluY2x1c2l2ZVRpbWVOYW5vcygpOwotCi0gICAgICAgIGZvciAoT3BlcmF0aW9uIGNoaWxkIDogc3Vib3BzKSB7Ci0gICAgICAgICAgICBleGNsdXNpdmUgLT0gY2hpbGQuaW5jbHVzaXZlVGltZU5hbm9zKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZXhjbHVzaXZlIDwgMCkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEFzc2VydGlvbkVycm9yKGxvYWRlZENsYXNzLm5hbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG5hbm9zVG9NaWNyb3MoZXhjbHVzaXZlKTsKLSAgICB9Ci0KLSAgICAvKiogR2V0cyB0aGUgbWVkaWFuIHRpbWUgdGhhdCB0aGlzIG9wZXJhdGlvbiB0b29rIGFjcm9zcyBhbGwgcHJvY2Vzc2VzLiAqLwotICAgIGludCBtZWRpYW5FeGNsdXNpdmVUaW1lTWljcm9zKCkgewotICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgTE9BRDogcmV0dXJuIGxvYWRlZENsYXNzLm1lZGlhbkxvYWRUaW1lTWljcm9zKCk7Ci0gICAgICAgICAgICBjYXNlIElOSVQ6IHJldHVybiBsb2FkZWRDbGFzcy5tZWRpYW5Jbml0VGltZU1pY3JvcygpOwotICAgICAgICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IEFzc2VydGlvbkVycm9yKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBDb252ZXJ0cyBuYW5vc2Vjb25kcyB0byBtaWNyb3NlY29uZHMuCi0gICAgICoKLSAgICAgKiBAdGhyb3dzIFJ1bnRpbWVFeGNlcHRpb24gaWYgb3ZlcmZsb3cgb2NjdXJzCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgaW50IG5hbm9zVG9NaWNyb3MobG9uZyBuYW5vcykgewotICAgICAgICBsb25nIG1pY3JvcyA9IG5hbm9zIC8gMTAwMDsKLSAgICAgICAgaW50IG1pY3Jvc0ludCA9IChpbnQpIG1pY3JvczsKLSAgICAgICAgaWYgKG1pY3Jvc0ludCAhPSBtaWNyb3MpIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJJbnRlZ2VyIG92ZXJmbG93OiAiICsgbmFub3MpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBtaWNyb3NJbnQ7Ci0gICAgfQotICAgIAotICAgIC8qKgotICAgICAqIFByaW1hcmlseSBmb3IgZGVidWdnZXIgc3VwcG9ydAotICAgICAqLwotICAgIEBPdmVycmlkZQotICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOwotICAgICAgICBzYi5hcHBlbmQodHlwZS50b1N0cmluZygpKTsKLSAgICAgICAgc2IuYXBwZW5kKCcgJyk7Ci0gICAgICAgIHNiLmFwcGVuZChsb2FkZWRDbGFzcy50b1N0cmluZygpKTsKLSAgICAgICAgaWYgKHN1Ym9wcy5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICBzYi5hcHBlbmQoIiAoIik7Ci0gICAgICAgICAgICBzYi5hcHBlbmQoc3Vib3BzLnNpemUoKSk7Ci0gICAgICAgICAgICBzYi5hcHBlbmQoIiBzdWIgb3BzKSIpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBzYi50b1N0cmluZygpOwotICAgIH0KLQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvcHJlbG9hZC9Qb2xpY3kuamF2YSBiL3Rvb2xzL3ByZWxvYWQvUG9saWN5LmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmNDY4MjAuLjAwMDAwMDAKLS0tIGEvdG9vbHMvcHJlbG9hZC9Qb2xpY3kuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1pbXBvcnQgamF2YS51dGlsLkFycmF5czsKLWltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKLWltcG9ydCBqYXZhLnV0aWwuU2V0OwotCi0vKioKLSAqIFBvbGljeSB0aGF0IGdvdmVybnMgd2hpY2ggY2xhc3NlcyBhcmUgcHJlbG9hZGVkLgotICovCi1wdWJsaWMgY2xhc3MgUG9saWN5IHsKLQotICAgIC8qKgotICAgICAqIE5vIGNvbnN0cnVjdG9yIC0gdXNlIHN0YXRpYyBtZXRob2RzIG9ubHkKLSAgICAgKi8KLSAgICBwcml2YXRlIFBvbGljeSgpIHt9Ci0KLSAgICAvKioKLSAgICAgKiBUaGlzIGxvY2F0aW9uIChpbiB0aGUgYnVpbGQgc3lzdGVtKSBvZiB0aGUgcHJlbG9hZGVkLWNsYXNzZXMgZmlsZS4KLSAgICAgKi8KLSAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFBSRUxPQURFRF9DTEFTU19GSUxFCi0gICAgICAgICAgICA9ICJmcmFtZXdvcmtzL2Jhc2UvcHJlbG9hZGVkLWNsYXNzZXMiOwotCi0gICAgLyoqCi0gICAgICogTG9uZyBydW5uaW5nIHNlcnZpY2VzLiBUaGVzZSBhcmUgcmVzdHJpY3RlZCBpbiB0aGVpciBjb250cmlidXRpb24gdG8gdGhlIAotICAgICAqIHByZWxvYWRlciBiZWNhdXNlIHRoZWlyIGxhdW5jaCB0aW1lIGlzIGxlc3MgY3JpdGljYWwuCi0gICAgICovCi0gICAgLy8gVE9ETzogR2VuZXJhdGUgdGhpcyBhdXRvbWF0aWNhbGx5IGZyb20gcGFja2FnZSBtYW5hZ2VyLgotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFNldDxTdHJpbmc+IFNFUlZJQ0VTID0gbmV3IEhhc2hTZXQ8U3RyaW5nPihBcnJheXMuYXNMaXN0KAotICAgICAgICAic3lzdGVtX3NlcnZlciIsCi0gICAgICAgICJjb20uZ29vZ2xlLnByb2Nlc3MuY29udGVudCIsCi0gICAgICAgICJhbmRyb2lkLnByb2Nlc3MubWVkaWEiLAotICAgICAgICAiY29tLmFuZHJvaWQuYmx1ZXRvb3RoIiwKLSAgICAgICAgImNvbS5hbmRyb2lkLmNhbGVuZGFyIiwKLSAgICAgICAgImNvbS5hbmRyb2lkLmlucHV0bWV0aG9kLmxhdGluIiwKLSAgICAgICAgImNvbS5hbmRyb2lkLnBob25lIiwKLSAgICAgICAgImNvbS5nb29nbGUuYW5kcm9pZC5hcHBzLm1hcHMuRnJpZW5kU2VydmljZSIsIC8vIHByZSBmcm95bwotICAgICAgICAiY29tLmdvb2dsZS5hbmRyb2lkLmFwcHMubWFwczpGcmllbmRTZXJ2aWNlIiwgLy8gZnJveW8KLSAgICAgICAgImNvbS5nb29nbGUuYW5kcm9pZC5hcHBzLm1hcHMuTG9jYXRpb25GcmllbmRTZXJ2aWNlIiwKLSAgICAgICAgImNvbS5nb29nbGUuYW5kcm9pZC5kZXNrY2xvY2siLAotICAgICAgICAiY29tLmdvb2dsZS5wcm9jZXNzLmdhcHBzIiwKLSAgICAgICAgImFuZHJvaWQudHRzIgotICAgICkpOwotCi0gICAgLyoqCi0gICAgICogQ2xhc3NlcyB3aGljaCB3ZSBzaG91bGRuJ3QgbG9hZCBmcm9tIHRoZSBaeWdvdGUuCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU2V0PFN0cmluZz4gRVhDTFVERURfQ0xBU1NFUwotICAgICAgICAgICAgPSBuZXcgSGFzaFNldDxTdHJpbmc+KEFycmF5cy5hc0xpc3QoCi0gICAgICAgIC8vIEJpbmRlcnMKLSAgICAgICAgImFuZHJvaWQuYXBwLkFsYXJtTWFuYWdlciIsCi0gICAgICAgICJhbmRyb2lkLmFwcC5TZWFyY2hNYW5hZ2VyIiwKLSAgICAgICAgImFuZHJvaWQub3MuRmlsZU9ic2VydmVyIiwKLSAgICAgICAgImNvbS5hbmRyb2lkLnNlcnZlci5QYWNrYWdlTWFuYWdlclNlcnZpY2UkQXBwRGlyT2JzZXJ2ZXIiLAotCi0gICAgICAgIC8vIFRocmVhZHMKLSAgICAgICAgImFuZHJvaWQub3MuQXN5bmNUYXNrIiwKLSAgICAgICAgImFuZHJvaWQucGltLkNvbnRhY3RzQXN5bmNIZWxwZXIiLAotICAgICAgICAiYW5kcm9pZC53ZWJraXQuV2ViVmlld0NsYXNzaWMkMSIsCi0gICAgICAgICJqYXZhLmxhbmcuUHJvY2Vzc01hbmFnZXIiCi0gICAgKSk7Ci0KLSAgICAvKioKLSAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIHByb2Nlc3MgbmFtZSBpcyBhICJsb25nIHJ1bm5pbmciIHByb2Nlc3Mgb3IKLSAgICAgKiBzZXJ2aWNlLgotICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1NlcnZpY2UoU3RyaW5nIHByb2Nlc3NOYW1lKSB7Ci0gICAgICAgIHJldHVybiBTRVJWSUNFUy5jb250YWlucyhwcm9jZXNzTmFtZSk7Ci0gICAgfQotCi0gICAgLyoqIFJlcG9ydHMgaWYgdGhlIGdpdmVuIGNsYXNzIHNob3VsZCBiZSBwcmVsb2FkZWQuICovCi0gICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzUHJlbG9hZGFibGUoTG9hZGVkQ2xhc3MgY2xhenopIHsKLSAgICAgICAgcmV0dXJuIGNsYXp6LnN5c3RlbUNsYXNzICYmICFFWENMVURFRF9DTEFTU0VTLmNvbnRhaW5zKGNsYXp6Lm5hbWUpCi0gICAgICAgICAgICAgICAgJiYgIWNsYXp6Lm5hbWUuZW5kc1dpdGgoIiROb1ByZWxvYWRIb2xkZXIiKTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS90b29scy9wcmVsb2FkL1ByaW50Q3N2LmphdmEgYi90b29scy9wcmVsb2FkL1ByaW50Q3N2LmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4MjA4MzAuLjAwMDAwMDAKLS0tIGEvdG9vbHMvcHJlbG9hZC9QcmludENzdi5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMTI3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0gKgotICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSAqCi0gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKLWltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOwotaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLmlvLldyaXRlcjsKLWltcG9ydCBqYXZhLmlvLlByaW50U3RyZWFtOwotaW1wb3J0IGphdmEudXRpbC5TZXQ7Ci1pbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7Ci1pbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7Ci1pbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOwotCi0vKioKLSAqIFByaW50cyByYXcgaW5mb3JtYXRpb24gaW4gQ1NWIGZvcm1hdC4KLSAqLwotcHVibGljIGNsYXNzIFByaW50Q3N2IHsKLQotICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCi0gICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24gewotICAgICAgICBpZiAoYXJncy5sZW5ndGggIT0gMSkgewotICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVc2FnZTogUHJpbnRDc3YgW2NvbXBpbGVkIGxvZyBmaWxlXSIpOwotICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7Ci0gICAgICAgIH0KLQotICAgICAgICBSb290IHJvb3QgPSBSb290LmZyb21GaWxlKGFyZ3NbMF0pOwotCi0gICAgICAgIHByaW50SGVhZGVycyhTeXN0ZW0ub3V0KTsKLQotICAgICAgICBNZW1vcnlVc2FnZSBiYXNlbGluZSA9IE1lbW9yeVVzYWdlLmJhc2VsaW5lKCk7Ci0KLSAgICAgICAgZm9yIChMb2FkZWRDbGFzcyBsb2FkZWRDbGFzcyA6IHJvb3QubG9hZGVkQ2xhc3Nlcy52YWx1ZXMoKSkgewotICAgICAgICAgICAgaWYgKCFsb2FkZWRDbGFzcy5zeXN0ZW1DbGFzcykgewotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBwcmludFJvdyhTeXN0ZW0ub3V0LCBiYXNlbGluZSwgbG9hZGVkQ2xhc3MpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc3RhdGljIHZvaWQgcHJpbnRIZWFkZXJzKFByaW50U3RyZWFtIG91dCkgewotICAgICAgICBvdXQucHJpbnRsbigiTmFtZSIKLSAgICAgICAgICAgICAgICArICIsUHJlbG9hZGVkIgotICAgICAgICAgICAgICAgICsgIixNZWRpYW4gTG9hZCBUaW1lICh1cykiCi0gICAgICAgICAgICAgICAgKyAiLE1lZGlhbiBJbml0IFRpbWUgKHVzKSIKLSAgICAgICAgICAgICAgICArICIsUHJvY2VzcyBOYW1lcyIKLSAgICAgICAgICAgICAgICArICIsTG9hZCBDb3VudCIKLSAgICAgICAgICAgICAgICArICIsSW5pdCBDb3VudCIKLSAgICAgICAgICAgICAgICArICIsTWFuYWdlZCBIZWFwIChCKSIKLSAgICAgICAgICAgICAgICArICIsTmF0aXZlIEhlYXAgKEIpIgotICAgICAgICAgICAgICAgICsgIixNYW5hZ2VkIFBhZ2VzIChrQikiCi0gICAgICAgICAgICAgICAgKyAiLE5hdGl2ZSBQYWdlcyAoa0IpIgotICAgICAgICAgICAgICAgICsgIixPdGhlciBQYWdlcyAoa0IpIik7Ci0gICAgfQotCi0gICAgc3RhdGljIHZvaWQgcHJpbnRSb3coUHJpbnRTdHJlYW0gb3V0LCBNZW1vcnlVc2FnZSBiYXNlbGluZSwKLSAgICAgICAgICAgIExvYWRlZENsYXNzIGxvYWRlZENsYXNzKSB7Ci0gICAgICAgIG91dC5wcmludChsb2FkZWRDbGFzcy5uYW1lKTsKLSAgICAgICAgb3V0LnByaW50KCcsJyk7Ci0gICAgICAgIG91dC5wcmludChsb2FkZWRDbGFzcy5wcmVsb2FkZWQpOwotICAgICAgICBvdXQucHJpbnQoJywnKTsKLSAgICAgICAgb3V0LnByaW50KGxvYWRlZENsYXNzLm1lZGlhbkxvYWRUaW1lTWljcm9zKCkpOwotICAgICAgICBvdXQucHJpbnQoJywnKTsKLSAgICAgICAgb3V0LnByaW50KGxvYWRlZENsYXNzLm1lZGlhbkluaXRUaW1lTWljcm9zKCkpOwotICAgICAgICBvdXQucHJpbnQoJywnKTsKLSAgICAgICAgb3V0LnByaW50KCciJyk7Ci0KLSAgICAgICAgU2V0PFN0cmluZz4gcHJvY05hbWVzID0gbmV3IFRyZWVTZXQ8U3RyaW5nPigpOwotICAgICAgICBmb3IgKE9wZXJhdGlvbiBvcCA6IGxvYWRlZENsYXNzLmxvYWRzKQotICAgICAgICAgICAgcHJvY05hbWVzLmFkZChvcC5wcm9jZXNzLm5hbWUpOwotICAgICAgICBmb3IgKE9wZXJhdGlvbiBvcCA6IGxvYWRlZENsYXNzLmluaXRpYWxpemF0aW9ucykKLSAgICAgICAgICAgIHByb2NOYW1lcy5hZGQob3AucHJvY2Vzcy5uYW1lKTsKLQotICAgICAgICBpZiAocHJvY05hbWVzLnNpemUoKSA8PSAzKSB7Ci0gICAgICAgICAgICBmb3IgKFN0cmluZyBuYW1lIDogcHJvY05hbWVzKSB7Ci0gICAgICAgICAgICAgICAgb3V0LnByaW50KG5hbWUgKyAiXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEl0ZXJhdG9yPFN0cmluZz4gaSA9IHByb2NOYW1lcy5pdGVyYXRvcigpOwotICAgICAgICAgICAgb3V0LnByaW50KGkubmV4dCgpICsgIlxuIik7Ci0gICAgICAgICAgICBvdXQucHJpbnQoaS5uZXh0KCkgKyAiXG4iKTsKLSAgICAgICAgICAgIG91dC5wcmludCgiLi4uYW5kICIgKyAocHJvY05hbWVzLnNpemUoKSAtIDIpCi0gICAgICAgICAgICAgICAgICAgICsgIiBvdGhlcnMuIik7Ci0gICAgICAgIH0KLQotICAgICAgICBvdXQucHJpbnQoJyInKTsKLSAgICAgICAgb3V0LnByaW50KCcsJyk7Ci0gICAgICAgIG91dC5wcmludChsb2FkZWRDbGFzcy5sb2Fkcy5zaXplKCkpOwotICAgICAgICBvdXQucHJpbnQoJywnKTsKLSAgICAgICAgb3V0LnByaW50KGxvYWRlZENsYXNzLmluaXRpYWxpemF0aW9ucy5zaXplKCkpOwotCi0gICAgICAgIGlmIChsb2FkZWRDbGFzcy5tZW1vcnlVc2FnZS5pc0F2YWlsYWJsZSgpKSB7Ci0gICAgICAgICAgICBNZW1vcnlVc2FnZSBzdWJ0cmFjdGVkCi0gICAgICAgICAgICAgICAgICAgID0gbG9hZGVkQ2xhc3MubWVtb3J5VXNhZ2Uuc3VidHJhY3QoYmFzZWxpbmUpOwotCi0gICAgICAgICAgICBvdXQucHJpbnQoJywnKTsKLSAgICAgICAgICAgIG91dC5wcmludChzdWJ0cmFjdGVkLmphdmFIZWFwU2l6ZSgpKTsKLSAgICAgICAgICAgIG91dC5wcmludCgnLCcpOwotICAgICAgICAgICAgb3V0LnByaW50KHN1YnRyYWN0ZWQubmF0aXZlSGVhcFNpemUpOwotICAgICAgICAgICAgb3V0LnByaW50KCcsJyk7Ci0gICAgICAgICAgICBvdXQucHJpbnQoc3VidHJhY3RlZC5qYXZhUGFnZXNJbksoKSk7Ci0gICAgICAgICAgICBvdXQucHJpbnQoJywnKTsKLSAgICAgICAgICAgIG91dC5wcmludChzdWJ0cmFjdGVkLm5hdGl2ZVBhZ2VzSW5LKCkpOwotICAgICAgICAgICAgb3V0LnByaW50KCcsJyk7Ci0gICAgICAgICAgICBvdXQucHJpbnQoc3VidHJhY3RlZC5vdGhlclBhZ2VzSW5LKCkpOwotCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBvdXQucHJpbnQoIixuL2Esbi9hLG4vYSxuL2Esbi9hIik7Ci0gICAgICAgIH0KLQotICAgICAgICBvdXQucHJpbnRsbigpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL3ByZWxvYWQvUHJpbnRIdG1sRGlmZi5qYXZhIGIvdG9vbHMvcHJlbG9hZC9QcmludEh0bWxEaWZmLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxMDFjODUuLjAwMDAwMDAKLS0tIGEvdG9vbHMvcHJlbG9hZC9QcmludEh0bWxEaWZmLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLWltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwotaW1wb3J0IGphdmEuaW8uRmlsZVJlYWRlcjsKLWltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOwotaW1wb3J0IGphdmEuaW8uUHJpbnRTdHJlYW07Ci1pbXBvcnQgamF2YS51dGlsLlNldDsKLWltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKLWltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKLWltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7Ci0KLS8qKgotICogUHJpbnRzIEhUTUwgY29udGFpbmluZyByZW1vdmVkIGFuZCBhZGRlZCBmaWxlcy4KLSAqLwotcHVibGljIGNsYXNzIFByaW50SHRtbERpZmYgewotCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE9MRF9QUkVMT0FERURfQ0xBU1NFUwotICAgICAgICAgICAgPSAib2xkLXByZWxvYWRlZC1jbGFzc2VzIjsKLQotICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiwKLSAgICAgICAgICAgIENsYXNzTm90Rm91bmRFeGNlcHRpb24gewotICAgICAgICBSb290IHJvb3QgPSBSb290LmZyb21GaWxlKGFyZ3NbMF0pOwotCi0gICAgICAgIEJ1ZmZlcmVkUmVhZGVyIG9sZENsYXNzZXMgPSBuZXcgQnVmZmVyZWRSZWFkZXIoCi0gICAgICAgICAgICBuZXcgRmlsZVJlYWRlcihPTERfUFJFTE9BREVEX0NMQVNTRVMpKTsKLQotICAgICAgICAvLyBDbGFzc2VzIGxvYWRlZCBpbXBsaWNpdGx5IGJ5IHRoZSB6eWdvdGUuCi0gICAgICAgIFNldDxMb2FkZWRDbGFzcz4genlnb3RlID0gbmV3IEhhc2hTZXQ8TG9hZGVkQ2xhc3M+KCk7Ci0gICAgICAgIGZvciAoUHJvYyBwcm9jIDogcm9vdC5wcm9jZXNzZXMudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGlmIChwcm9jLm5hbWUuZXF1YWxzKCJ6eWdvdGUiKSkgewotICAgICAgICAgICAgICAgIGZvciAoT3BlcmF0aW9uIG9wIDogcHJvYy5vcGVyYXRpb25zKSB7Ci0gICAgICAgICAgICAgICAgICAgIHp5Z290ZS5hZGQob3AubG9hZGVkQ2xhc3MpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIFNldDxMb2FkZWRDbGFzcz4gcmVtb3ZlZCA9IG5ldyBUcmVlU2V0PExvYWRlZENsYXNzPigpOwotICAgICAgICBTZXQ8TG9hZGVkQ2xhc3M+IGFkZGVkID0gbmV3IFRyZWVTZXQ8TG9hZGVkQ2xhc3M+KCk7Ci0KLSAgICAgICAgZm9yIChMb2FkZWRDbGFzcyBsb2FkZWRDbGFzcyA6IHJvb3QubG9hZGVkQ2xhc3Nlcy52YWx1ZXMoKSkgewotICAgICAgICAgICAgaWYgKGxvYWRlZENsYXNzLnByZWxvYWRlZCAmJiAhenlnb3RlLmNvbnRhaW5zKGxvYWRlZENsYXNzKSkgewotICAgICAgICAgICAgICAgIGFkZGVkLmFkZChsb2FkZWRDbGFzcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgbGluZTsKLSAgICAgICAgd2hpbGUgKChsaW5lID0gb2xkQ2xhc3Nlcy5yZWFkTGluZSgpKSAhPSBudWxsKSB7Ci0gICAgICAgICAgICBsaW5lID0gbGluZS50cmltKCk7Ci0gICAgICAgICAgICBMb2FkZWRDbGFzcyBjbGF6eiA9IHJvb3QubG9hZGVkQ2xhc3Nlcy5nZXQobGluZSk7Ci0gICAgICAgICAgICBpZiAoY2xhenogIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIGFkZGVkLnJlbW92ZShjbGF6eik7Ci0gICAgICAgICAgICAgICAgaWYgKCFjbGF6ei5wcmVsb2FkZWQpIHJlbW92ZWQuYWRkKGNsYXp6KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIFByaW50U3RyZWFtIG91dCA9IFN5c3RlbS5vdXQ7Ci0KLSAgICAgICAgb3V0LnByaW50bG4oIjxodG1sPjxib2R5PiIpOwotICAgICAgICBvdXQucHJpbnRsbigiPHN0eWxlPiIpOwotICAgICAgICBvdXQucHJpbnRsbigiYSwgdGgsIHRkLCBoMiB7IGZvbnQtZmFtaWx5OiBhcmlhbCB9Iik7Ci0gICAgICAgIG91dC5wcmludGxuKCJ0aCwgdGQgeyBmb250LXNpemU6IHNtYWxsIH0iKTsKLSAgICAgICAgb3V0LnByaW50bG4oIjwvc3R5bGU+Iik7Ci0gICAgICAgIG91dC5wcmludGxuKCI8c2NyaXB0IHNyYz1cInNvcnR0YWJsZS5qc1wiPjwvc2NyaXB0PiIpOwotICAgICAgICBvdXQucHJpbnRsbigiPHA+PGEgaHJlZj1cIiNyZW1vdmVkXCI+UmVtb3ZlZDwvYT4iKTsKLSAgICAgICAgb3V0LnByaW50bG4oIjxhIG5hbWU9XCJhZGRlZFwiLz48aDI+QWRkZWQ8L2gyPiIpOwotICAgICAgICBwcmludFRhYmxlKG91dCwgcm9vdC5iYXNlbGluZSwgYWRkZWQpOwotICAgICAgICBvdXQucHJpbnRsbigiPGEgbmFtZT1cInJlbW92ZWRcIi8+PGgyPlJlbW92ZWQ8L2gyPiIpOwotICAgICAgICBwcmludFRhYmxlKG91dCwgcm9vdC5iYXNlbGluZSwgcmVtb3ZlZCk7Ci0gICAgICAgIG91dC5wcmludGxuKCI8L2JvZHk+PC9odG1sPiIpOwotICAgIH0KLQotICAgIHN0YXRpYyB2b2lkIHByaW50VGFibGUoUHJpbnRTdHJlYW0gb3V0LCBNZW1vcnlVc2FnZSBiYXNlbGluZSwKLSAgICAgICAgICAgIEl0ZXJhYmxlPExvYWRlZENsYXNzPiBjbGFzc2VzKSB7Ci0gICAgICAgIG91dC5wcmludGxuKCI8dGFibGUgYm9yZGVyPVwiMVwiIGNlbGxwYWRkaW5nPVwiNVwiIgotICAgICAgICAgICAgICAgICsgIiBjbGFzcz1cInNvcnRhYmxlXCI+Iik7Ci0KLSAgICAgICAgb3V0LnByaW50bG4oIjx0aGVhZD48dHI+Iik7Ci0gICAgICAgIG91dC5wcmludGxuKCI8dGg+TmFtZTwvdGg+Iik7Ci0gICAgICAgIG91dC5wcmludGxuKCI8dGg+TG9hZCBUaW1lICh1cyk8L3RoPiIpOwotICAgICAgICBvdXQucHJpbnRsbigiPHRoPkxvYWRlZCBCeTwvdGg+Iik7Ci0gICAgICAgIG91dC5wcmludGxuKCI8dGg+SGVhcCAoQik8L3RoPiIpOwotICAgICAgICBvdXQucHJpbnRsbigiPHRoPlBhZ2VzPC90aD4iKTsKLSAgICAgICAgb3V0LnByaW50bG4oIjwvdHI+PC90aGVhZD4iKTsKLQotICAgICAgICBmb3IgKExvYWRlZENsYXNzIGNsYXp6IDogY2xhc3NlcykgewotICAgICAgICAgICAgb3V0LnByaW50bG4oIjx0cj4iKTsKLSAgICAgICAgICAgIG91dC5wcmludGxuKCI8dGQ+IiArIGNsYXp6Lm5hbWUgKyAiPC90ZD4iKTsKLSAgICAgICAgICAgIG91dC5wcmludGxuKCI8dGQ+IiArIGNsYXp6Lm1lZGlhblRpbWVNaWNyb3MoKSArICI8L3RkPiIpOwotCi0gICAgICAgICAgICBvdXQucHJpbnRsbigiPHRkPiIpOwotICAgICAgICAgICAgU2V0PFN0cmluZz4gcHJvY05hbWVzID0gbmV3IFRyZWVTZXQ8U3RyaW5nPigpOwotICAgICAgICAgICAgZm9yIChPcGVyYXRpb24gb3AgOiBjbGF6ei5sb2FkcykgcHJvY05hbWVzLmFkZChvcC5wcm9jZXNzLm5hbWUpOwotICAgICAgICAgICAgZm9yIChPcGVyYXRpb24gb3AgOiBjbGF6ei5pbml0aWFsaXphdGlvbnMpIHsKLSAgICAgICAgICAgICAgICBwcm9jTmFtZXMuYWRkKG9wLnByb2Nlc3MubmFtZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocHJvY05hbWVzLnNpemUoKSA8PSAzKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChTdHJpbmcgbmFtZSA6IHByb2NOYW1lcykgewotICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnQobmFtZSArICI8YnIvPiIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgSXRlcmF0b3I8U3RyaW5nPiBpID0gcHJvY05hbWVzLml0ZXJhdG9yKCk7Ci0gICAgICAgICAgICAgICAgb3V0LnByaW50KGkubmV4dCgpICsgIjxici8+Iik7Ci0gICAgICAgICAgICAgICAgb3V0LnByaW50KGkubmV4dCgpICsgIjxici8+Iik7Ci0gICAgICAgICAgICAgICAgb3V0LnByaW50KCIuLi5hbmQgIiArIChwcm9jTmFtZXMuc2l6ZSgpIC0gMikKLSAgICAgICAgICAgICAgICAgICAgICAgICsgIiBvdGhlcnMuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBvdXQucHJpbnRsbigiPC90ZD4iKTsKLQotICAgICAgICAgICAgaWYgKGNsYXp6Lm1lbW9yeVVzYWdlLmlzQXZhaWxhYmxlKCkpIHsKLSAgICAgICAgICAgICAgICBNZW1vcnlVc2FnZSBzdWJ0cmFjdGVkCi0gICAgICAgICAgICAgICAgICAgICAgICA9IGNsYXp6Lm1lbW9yeVVzYWdlLnN1YnRyYWN0KGJhc2VsaW5lKTsKLQotICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8dGQ+IiArIChzdWJ0cmFjdGVkLmphdmFIZWFwU2l6ZSgpCi0gICAgICAgICAgICAgICAgICAgICAgICArIHN1YnRyYWN0ZWQubmF0aXZlSGVhcFNpemUpICsgIjwvdGQ+Iik7Ci0gICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjx0ZD4iICsgc3VidHJhY3RlZC50b3RhbFBhZ2VzKCkgKyAiPC90ZD4iKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjx0ZD5uL2E8L3RkPiIpOyAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBvdXQucHJpbnRsbigiPC90cj4iKTsKLSAgICAgICAgfQotCi0gICAgICAgIG91dC5wcmludGxuKCI8L3RhYmxlPiIpOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL3ByZWxvYWQvUHJpbnRQc1RyZWUuamF2YSBiL3Rvb2xzL3ByZWxvYWQvUHJpbnRQc1RyZWUuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjI3MDFmYS4uMDAwMDAwMAotLS0gYS90b29scy9wcmVsb2FkL1ByaW50UHNUcmVlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkSW5wdXRTdHJlYW07Ci0KLS8qKgotICogUHJpbnRzIHJhdyBpbmZvcm1hdGlvbiBpbiBDU1YgZm9ybWF0LgotICovCi1wdWJsaWMgY2xhc3MgUHJpbnRQc1RyZWUgewotCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKLSAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIGlmIChhcmdzLmxlbmd0aCAhPSAxKSB7Ci0gICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVzYWdlOiBQcmludENzdiBbY29tcGlsZWQgbG9nIGZpbGVdIik7Ci0gICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKLSAgICAgICAgfQotCi0gICAgICAgIEZpbGVJbnB1dFN0cmVhbSBmaW4gPSBuZXcgRmlsZUlucHV0U3RyZWFtKGFyZ3NbMF0pOwotICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaW4gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oCi0gICAgICAgICAgICAgICAgbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oZmluKSk7Ci0KLSAgICAgICAgUm9vdCByb290ID0gKFJvb3QpIG9pbi5yZWFkT2JqZWN0KCk7Ci0KLSAgICAgICAgZm9yIChQcm9jIHByb2MgOiByb290LnByb2Nlc3Nlcy52YWx1ZXMoKSkgewotICAgICAgICAgICAgaWYgKHByb2MucGFyZW50ID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICBwcm9jLnByaW50KCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL3ByZWxvYWQvUHJvYy5qYXZhIGIvdG9vbHMvcHJlbG9hZC9Qcm9jLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxMDUwMjEuLjAwMDAwMDAKLS0tIGEvdG9vbHMvcHJlbG9hZC9Qcm9jLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLWltcG9ydCBqYXZhLnV0aWwuTGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwotaW1wb3J0IGphdmEudXRpbC5MaW5rZWRMaXN0OwotaW1wb3J0IGphdmEudXRpbC5NYXA7Ci1pbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7Ci1pbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7Ci0KLS8qKgotICogQSBEYWx2aWsgcHJvY2Vzcy4KLSAqLwotY2xhc3MgUHJvYyBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSB7Ci0KLSAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAwOwotCi0gICAgLyoqIFBhcmVudCBwcm9jZXNzLiAqLwotICAgIGZpbmFsIFByb2MgcGFyZW50OwotCi0gICAgLyoqIFByb2Nlc3MgSUQuICovCi0gICAgZmluYWwgaW50IGlkOwotCi0gICAgLyoqCi0gICAgICogTmFtZSBvZiB0aGlzIHByb2Nlc3MuIFdlIG1heSBub3QgaGF2ZSB0aGUgY29ycmVjdCBuYW1lIGF0IGZpcnN0LCBpLmUuCi0gICAgICogc29tZSBjbGFzc2VzIGNvdWxkIGhhdmUgYmVlbiBsb2FkZWQgYmVmb3JlIHRoZSBwcm9jZXNzIG5hbWUgd2FzIHNldC4KLSAgICAgKi8KLSAgICBTdHJpbmcgbmFtZTsKLQotICAgIC8qKiBDaGlsZCBwcm9jZXNzZXMuICovCi0gICAgZmluYWwgTGlzdDxQcm9jPiBjaGlsZHJlbiA9IG5ldyBBcnJheUxpc3Q8UHJvYz4oKTsKLQotICAgIC8qKiBNYXBzIHRocmVhZCBJRCB0byBvcGVyYXRpb24gc3RhY2suICovCi0gICAgdHJhbnNpZW50IGZpbmFsIE1hcDxJbnRlZ2VyLCBMaW5rZWRMaXN0PE9wZXJhdGlvbj4+IHN0YWNrcwotICAgICAgICAgICAgPSBuZXcgSGFzaE1hcDxJbnRlZ2VyLCBMaW5rZWRMaXN0PE9wZXJhdGlvbj4+KCk7Ci0KLSAgICAvKiogTnVtYmVyIG9mIG9wZXJhdGlvbnMuICovCi0gICAgaW50IG9wZXJhdGlvbkNvdW50OwotCi0gICAgLyoqIFNlcXVlbnRpYWwgbGlzdCBvZiBvcGVyYXRpb25zIHRoYXQgaGFwcGVuZWQgaW4gdGhpcyBwcm9jZXNzLiAqLwotICAgIGZpbmFsIExpc3Q8T3BlcmF0aW9uPiBvcGVyYXRpb25zID0gbmV3IEFycmF5TGlzdDxPcGVyYXRpb24+KCk7Ci0KLSAgICAvKiogTGlzdCBvZiBwYXN0IHByb2Nlc3MgbmFtZXMuICovCi0gICAgZmluYWwgTGlzdDxTdHJpbmc+IG5hbWVIaXN0b3J5ID0gbmV3IEFycmF5TGlzdDxTdHJpbmc+KCk7Ci0KLSAgICAvKiogQ29uc3RydWN0cyBhIG5ldyBwcm9jZXNzLiAqLwotICAgIFByb2MoUHJvYyBwYXJlbnQsIGludCBpZCkgewotICAgICAgICB0aGlzLnBhcmVudCA9IHBhcmVudDsKLSAgICAgICAgdGhpcy5pZCA9IGlkOwotICAgIH0KLQotICAgIC8qKiBTZXRzIG5hbWUgb2YgdGhpcyBwcm9jZXNzLiAqLwotICAgIHZvaWQgc2V0TmFtZShTdHJpbmcgbmFtZSkgewotICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKHRoaXMubmFtZSkpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLm5hbWUgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIG5hbWVIaXN0b3J5LmFkZCh0aGlzLm5hbWUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHByb2Nlc3MgY29tZXMgZnJvbSB0aGUgenlnb3RlLgotICAgICAqLwotICAgIHB1YmxpYyBib29sZWFuIGZyb21aeWdvdGUoKSB7Ci0gICAgICAgIHJldHVybiBwYXJlbnQgIT0gbnVsbCAmJiBwYXJlbnQubmFtZS5lcXVhbHMoInp5Z290ZSIpCi0gICAgICAgICAgICAgICAgJiYgIW5hbWUuZXF1YWxzKCJjb20uYW5kcm9pZC5kZXZlbG9wbWVudCIpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFN0YXJ0cyBhbiBvcGVyYXRpb24uCi0gICAgICoKLSAgICAgKiBAcGFyYW0gdGhyZWFkSWQgdGhyZWFkIHRoZSBvcGVyYXRpb24gc3RhcnRlZCBpbgotICAgICAqIEBwYXJhbSBsb2FkZWRDbGFzcyBjbGFzcyBvcGVyYXRpb24gaGFwcGVuZWQgdG8KLSAgICAgKiBAcGFyYW0gdGltZSB0aGUgb3BlcmF0aW9uIHN0YXJ0ZWQKLSAgICAgKi8KLSAgICB2b2lkIHN0YXJ0T3BlcmF0aW9uKGludCB0aHJlYWRJZCwgTG9hZGVkQ2xhc3MgbG9hZGVkQ2xhc3MsIGxvbmcgdGltZSwKLSAgICAgICAgICAgIE9wZXJhdGlvbi5UeXBlIHR5cGUpIHsKLSAgICAgICAgT3BlcmF0aW9uIG8gPSBuZXcgT3BlcmF0aW9uKAotICAgICAgICAgICAgICAgIHRoaXMsIGxvYWRlZENsYXNzLCB0aW1lLCBvcGVyYXRpb25Db3VudCsrLCB0eXBlKTsKLSAgICAgICAgb3BlcmF0aW9ucy5hZGQobyk7Ci0KLSAgICAgICAgTGlua2VkTGlzdDxPcGVyYXRpb24+IHN0YWNrID0gc3RhY2tzLmdldCh0aHJlYWRJZCk7Ci0gICAgICAgIGlmIChzdGFjayA9PSBudWxsKSB7Ci0gICAgICAgICAgICBzdGFjayA9IG5ldyBMaW5rZWRMaXN0PE9wZXJhdGlvbj4oKTsKLSAgICAgICAgICAgIHN0YWNrcy5wdXQodGhyZWFkSWQsIHN0YWNrKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghc3RhY2suaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBzdGFjay5nZXRMYXN0KCkuc3Vib3BzLmFkZChvKTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YWNrLmFkZChvKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBFbmRzIGFuIG9wZXJhdGlvbi4KLSAgICAgKgotICAgICAqIEBwYXJhbSB0aHJlYWRJZCB0aHJlYWQgdGhlIG9wZXJhdGlvbiBlbmRlZCBpbgotICAgICAqIEBwYXJhbSBsb2FkZWRDbGFzcyBjbGFzcyBvcGVyYXRpb24gaGFwcGVuZWQgdG8KLSAgICAgKiBAcGFyYW0gdGltZSB0aGUgb3BlcmF0aW9uIGVuZGVkCi0gICAgICovCi0gICAgT3BlcmF0aW9uIGVuZE9wZXJhdGlvbihpbnQgdGhyZWFkSWQsIFN0cmluZyBjbGFzc05hbWUsCi0gICAgICAgICAgICBMb2FkZWRDbGFzcyBsb2FkZWRDbGFzcywgbG9uZyB0aW1lKSB7Ci0gICAgICAgIExpbmtlZExpc3Q8T3BlcmF0aW9uPiBzdGFjayA9IHN0YWNrcy5nZXQodGhyZWFkSWQpOwotCi0gICAgICAgIGlmIChzdGFjayA9PSBudWxsIHx8IHN0YWNrLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgZGlkTm90U3RhcnQoY2xhc3NOYW1lKTsKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0KLSAgICAgICAgT3BlcmF0aW9uIG8gPSBzdGFjay5nZXRMYXN0KCk7Ci0gICAgICAgIGlmIChsb2FkZWRDbGFzcyAhPSBvLmxvYWRlZENsYXNzKSB7Ci0gICAgICAgICAgICBkaWROb3RTdGFydChjbGFzc05hbWUpOwotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGFjay5yZW1vdmVMYXN0KCk7Ci0KLSAgICAgICAgby5lbmRUaW1lTmFub3MgPSB0aW1lOwotICAgICAgICByZXR1cm4gbzsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBQcmludHMgYW4gZXJyb3IgaW5kaWNhdGluZyB0aGF0IHdlIHNhdyB0aGUgZW5kIG9mIGFuIG9wZXJhdGlvbiBidXQgbm90Ci0gICAgICogdGhlIHN0YXJ0LiBBIGJ1ZyBpbiB0aGUgbG9nZ2luZyBmcmFtZXdvcmsgd2hpY2ggcmVzdWx0cyBpbiBkcm9wcGVkIGxvZ3MKLSAgICAgKiBjYXVzZXMgdGhpcy4KLSAgICAgKi8KLSAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGRpZE5vdFN0YXJ0KFN0cmluZyBuYW1lKSB7Ci0gICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiV2FybmluZzogQW4gb3BlcmF0aW9uIGVuZGVkIG9uICIgKyBuYW1lCi0gICAgICAgICAgICArICIgYnV0IGl0IG5ldmVyIHN0YXJ0ZWQhIik7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUHJpbnRzIHRoaXMgcHJvY2VzcyB0cmVlIHRvIHN0ZG91dC4KLSAgICAgKi8KLSAgICB2b2lkIHByaW50KCkgewotICAgICAgICBwcmludCgiIik7Ci0gICAgfQotCi0gICAgLyoqCi0gICAgICogUHJpbnRzIGEgY2hpbGQgcHJvYyB0byBzdGFuZGFyZCBvdXQuCi0gICAgICovCi0gICAgcHJpdmF0ZSB2b2lkIHByaW50KFN0cmluZyBwcmVmaXgpIHsKLSAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHByZWZpeCArICJpZD0iICsgaWQgKyAiLCBuYW1lPSIgKyBuYW1lKTsKLSAgICAgICAgZm9yIChQcm9jIGNoaWxkIDogY2hpbGRyZW4pIHsKLSAgICAgICAgICAgIGNoaWxkLnByaW50KHByZWZpeCArICIgICAgIik7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgewotICAgICAgICByZXR1cm4gdGhpcy5uYW1lOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL3ByZWxvYWQvUmVjb3JkLmphdmEgYi90b29scy9wcmVsb2FkL1JlY29yZC5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMGEyYWY0Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL3ByZWxvYWQvUmVjb3JkLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLS8qKgotICogT25lIGxpbmUgZnJvbSB0aGUgbG9hZGVkLWNsYXNzZXMgZmlsZS4KLSAqLwotY2xhc3MgUmVjb3JkIHsKLQotICAgIC8qKgotICAgICAqIFRoZSBkZWxpbWl0ZXIgY2hhcmFjdGVyIHdlIHVzZSwge0Bjb2RlIDp9LCBjb25mbGljdHMgd2l0aCBzb21lIG90aGVyCi0gICAgICogbmFtZXMuIEluIHRoYXQgY2FzZSwgbWFudWFsbHkgcmVwbGFjZSB0aGUgZGVsaW1pdGVyIHdpdGggc29tZXRoaW5nIGVsc2UuCi0gICAgICovCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gUkVQTEFDRV9DTEFTU0VTID0gewotICAgICAgICAgICAgImNvbS5nb29nbGUuYW5kcm9pZC5hcHBzLm1hcHM6RnJpZW5kU2VydmljZSIsCi0gICAgICAgICAgICAiY29tLmdvb2dsZS5hbmRyb2lkLmFwcHMubWFwc1xcdTAwM0FGcmllbmRTZXJ2aWNlIiwKLSAgICAgICAgICAgICJjb20uZ29vZ2xlLmFuZHJvaWQuYXBwcy5tYXBzOmRyaXZlYWJvdXQiLAotICAgICAgICAgICAgImNvbS5nb29nbGUuYW5kcm9pZC5hcHBzLm1hcHNcXHUwMDNBZHJpdmVhYm91dCIsCi0gICAgICAgICAgICAiY29tLmdvb2dsZS5hbmRyb2lkLmFwcHMubWFwczpHb29nbGVMb2NhdGlvblNlcnZpY2UiLAotICAgICAgICAgICAgImNvbS5nb29nbGUuYW5kcm9pZC5hcHBzLm1hcHNcXHUwMDNBR29vZ2xlTG9jYXRpb25TZXJ2aWNlIiwKLSAgICAgICAgICAgICJjb20uZ29vZ2xlLmFuZHJvaWQuYXBwcy5tYXBzOkxvY2F0aW9uRnJpZW5kU2VydmljZSIsCi0gICAgICAgICAgICAiY29tLmdvb2dsZS5hbmRyb2lkLmFwcHMubWFwc1xcdTAwM0FMb2NhdGlvbkZyaWVuZFNlcnZpY2UiLAotICAgICAgICAgICAgImNvbS5nb29nbGUuYW5kcm9pZC5hcHBzLm1hcHM6TWFwc0JhY2tncm91bmRTZXJ2aWNlIiwKLSAgICAgICAgICAgICJjb20uZ29vZ2xlLmFuZHJvaWQuYXBwcy5tYXBzXFx1MDAzQU1hcHNCYWNrZ3JvdW5kU2VydmljZSIsCi0gICAgICAgICAgICAiY29tLmdvb2dsZS5hbmRyb2lkLmFwcHMubWFwczpOZXR3b3JrTG9jYXRpb25TZXJ2aWNlIiwKLSAgICAgICAgICAgICJjb20uZ29vZ2xlLmFuZHJvaWQuYXBwcy5tYXBzXFx1MDAzQU5ldHdvcmtMb2NhdGlvblNlcnZpY2UiLAotICAgICAgICAgICAgImNvbS5hbmRyb2lkLmNocm9tZTpzYW5kYm94ZWRfcHJvY2VzcyIsCi0gICAgICAgICAgICAiY29tLmFuZHJvaWQuY2hyb21lXFx1MDAzQXNhbmRib3hlZF9wcm9jZXNzIiwKLSAgICAgICAgICAgICJjb20uYW5kcm9pZC5mYWtlb2VtZmVhdHVyZXM6YmFja2dyb3VuZCIsCi0gICAgICAgICAgICAiY29tLmFuZHJvaWQuZmFrZW9lbWZlYXR1cmVzXFx1MDAzQWJhY2tncm91bmQiLAotICAgICAgICAgICAgImNvbS5hbmRyb2lkLmZha2VvZW1mZWF0dXJlczpjb3JlIiwKLSAgICAgICAgICAgICJjb20uYW5kcm9pZC5mYWtlb2VtZmVhdHVyZXNcXHUwMDNBY29yZSIsCi0gICAgICAgICAgICAiY29tLmFuZHJvaWQubGF1bmNoZXI6d2FsbHBhcGVyX2Nob29zZXIiLAotICAgICAgICAgICAgImNvbS5hbmRyb2lkLmxhdW5jaGVyXFx1MDAzQXdhbGxwYXBlcl9jaG9vc2VyIiwKLSAgICAgICAgICAgICJjb20uYW5kcm9pZC5uZmM6aGFuZG92ZXIiLAotICAgICAgICAgICAgImNvbS5hbmRyb2lkLm5mY1xcdTAwM0FoYW5kb3ZlciIsCi0gICAgICAgICAgICAiY29tLmdvb2dsZS5hbmRyb2lkLm11c2ljOm1haW4iLAotICAgICAgICAgICAgImNvbS5nb29nbGUuYW5kcm9pZC5tdXNpY1xcdTAwM0FtYWluIiwKLSAgICAgICAgICAgICJjb20uZ29vZ2xlLmFuZHJvaWQubXVzaWM6dWkiLAotICAgICAgICAgICAgImNvbS5nb29nbGUuYW5kcm9pZC5tdXNpY1xcdTAwM0F1aSIsCi0gICAgICAgICAgICAiY29tLmdvb2dsZS5hbmRyb2lkLnNldHVwd2FybG9jazpicm9rZXIiLAotICAgICAgICAgICAgImNvbS5nb29nbGUuYW5kcm9pZC5zZXR1cHdhcmxvY2tcXHUwMDNBYnJva2VyIiwKLSAgICAgICAgICAgICJtb2JpLm1nZWVrLlR1bm55QnJvd3NlcjpEb2xwaGluTm90aWZpY2F0aW9uIiwKLSAgICAgICAgICAgICJtb2JpLm1nZWVrLlR1bm55QnJvd3NlclxcdTAwM0FEb2xwaGluTm90aWZpY2F0aW9uIiwKLSAgICAgICAgICAgICJjb20ucW8uYW5kcm9pZC5zcC5vZW06UXVpY2t3b3JkIiwKLSAgICAgICAgICAgICJjb20ucW8uYW5kcm9pZC5zcC5vZW1cXHUwMDNBUXVpY2t3b3JkIiwKLSAgICAgICAgICAgICJhbmRyb2lkOnVpIiwKLSAgICAgICAgICAgICJhbmRyb2lkXFx1MDAzQXVpIiwKLSAgICAgICAgICAgICJzeXN0ZW06dWkiLAotICAgICAgICAgICAgInN5c3RlbVxcdTAwM0F1aSIsCi0gICAgfTsKLQotICAgIGVudW0gVHlwZSB7Ci0gICAgICAgIC8qKiBTdGFydCBvZiBpbml0aWFsaXphdGlvbi4gKi8KLSAgICAgICAgU1RBUlRfTE9BRCwKLQotICAgICAgICAvKiogRW5kIG9mIGluaXRpYWxpemF0aW9uLiAqLwotICAgICAgICBFTkRfTE9BRCwKLQotICAgICAgICAvKiogU3RhcnQgb2YgaW5pdGlhbGl6YXRpb24uICovCi0gICAgICAgIFNUQVJUX0lOSVQsCi0KLSAgICAgICAgLyoqIEVuZCBvZiBpbml0aWFsaXphdGlvbi4gKi8KLSAgICAgICAgRU5EX0lOSVQKLSAgICB9Ci0KLSAgICAvKiogUGFyZW50IHByb2Nlc3MgSUQuICovCi0gICAgZmluYWwgaW50IHBwaWQ7Ci0KLSAgICAvKiogUHJvY2VzcyBJRC4gKi8KLSAgICBmaW5hbCBpbnQgcGlkOwotCi0gICAgLyoqIFRocmVhZCBJRC4gKi8KLSAgICBmaW5hbCBpbnQgdGlkOwotCi0gICAgLyoqIFByb2Nlc3MgbmFtZS4gKi8KLSAgICBmaW5hbCBTdHJpbmcgcHJvY2Vzc05hbWU7Ci0KLSAgICAvKiogQ2xhc3MgbG9hZGVyIHBvaW50ZXIuICovCi0gICAgZmluYWwgaW50IGNsYXNzTG9hZGVyOwotCi0gICAgLyoqIFR5cGUgb2YgcmVjb3JkLiAqLwotICAgIGZpbmFsIFR5cGUgdHlwZTsKLQotICAgIC8qKiBOYW1lIG9mIGxvYWRlZCBjbGFzcy4gKi8KLSAgICBmaW5hbCBTdHJpbmcgY2xhc3NOYW1lOwotCi0gICAgLyoqIFJlY29yZCB0aW1lIChucykuICovCi0gICAgZmluYWwgbG9uZyB0aW1lOwotCi0gICAgLyoqIFNvdXJjZSBmaWxlIGxpbmUjICovCi0gICAgaW50IHNvdXJjZUxpbmVOdW1iZXI7Ci0KLSAgICAvKioKLSAgICAgKiBQYXJzZXMgYSBsaW5lIGZyb20gdGhlIGxvYWRlZC1jbGFzc2VzIGZpbGUuCi0gICAgICovCi0gICAgUmVjb3JkKFN0cmluZyBsaW5lLCBpbnQgbGluZU51bSkgewotICAgICAgICBjaGFyIHR5cGVDaGFyID0gbGluZS5jaGFyQXQoMCk7Ci0gICAgICAgIHN3aXRjaCAodHlwZUNoYXIpIHsKLSAgICAgICAgICAgIGNhc2UgJz4nOiB0eXBlID0gVHlwZS5TVEFSVF9MT0FEOyBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJzwnOiB0eXBlID0gVHlwZS5FTkRfTE9BRDsgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICcrJzogdHlwZSA9IFR5cGUuU1RBUlRfSU5JVDsgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICctJzogdHlwZSA9IFR5cGUuRU5EX0lOSVQ7IGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IEFzc2VydGlvbkVycm9yKCJCYWQgbGluZTogIiArIGxpbmUpOwotICAgICAgICB9Ci0KLSAgICAgICAgc291cmNlTGluZU51bWJlciA9IGxpbmVOdW07Ci0KLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBSRVBMQUNFX0NMQVNTRVMubGVuZ3RoOyBpKz0gMikgewotICAgICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZShSRVBMQUNFX0NMQVNTRVNbaV0sIFJFUExBQ0VfQ0xBU1NFU1tpKzFdKTsKLSAgICAgICAgfQotCi0gICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZygxKTsKLSAgICAgICAgU3RyaW5nW10gcGFydHMgPSBsaW5lLnNwbGl0KCI6Iik7Ci0KLSAgICAgICAgcHBpZCA9IEludGVnZXIucGFyc2VJbnQocGFydHNbMF0pOwotICAgICAgICBwaWQgPSBJbnRlZ2VyLnBhcnNlSW50KHBhcnRzWzFdKTsKLSAgICAgICAgdGlkID0gSW50ZWdlci5wYXJzZUludChwYXJ0c1syXSk7Ci0KLSAgICAgICAgcHJvY2Vzc05hbWUgPSBkZWNvZGUocGFydHNbM10pLmludGVybigpOwotCi0gICAgICAgIGNsYXNzTG9hZGVyID0gSW50ZWdlci5wYXJzZUludChwYXJ0c1s0XSk7Ci0gICAgICAgIGNsYXNzTmFtZSA9IHZtVHlwZVRvTGFuZ3VhZ2UoZGVjb2RlKHBhcnRzWzVdKSkuaW50ZXJuKCk7Ci0KLSAgICAgICAgdGltZSA9IExvbmcucGFyc2VMb25nKHBhcnRzWzZdKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBEZWNvZGUgYW55IGVzY2FwaW5nIHRoYXQgbWF5IGhhdmUgYmVlbiB3cml0dGVuIHRvIHRoZSBsb2cgbGluZS4KLSAgICAgKgotICAgICAqIFN1cHBvcnRzIHVuaWNvZGUtc3R5bGUgZXNjYXBpbmc6ICBcXHVYWFhYID0gY2hhcmFjdGVyIGluIGhleAotICAgICAqCi0gICAgICogQHBhcmFtIHJhd0ZpZWxkIHRoZSBmaWVsZCBhcyBpdCB3YXMgd3JpdHRlbiBpbnRvIHRoZSBsb2cKLSAgICAgKiBAcmVzdWx0IHRoZSBzYW1lIGZpZWxkIHdpdGggYW55IGVzY2FwZWQgY2hhcmFjdGVycyByZXBsYWNlZAotICAgICAqLwotICAgIFN0cmluZyBkZWNvZGUoU3RyaW5nIHJhd0ZpZWxkKSB7Ci0gICAgICAgIFN0cmluZyByZXN1bHQgPSByYXdGaWVsZDsKLSAgICAgICAgaW50IG9mZnNldCA9IHJlc3VsdC5pbmRleE9mKCJcXHUiKTsKLSAgICAgICAgd2hpbGUgKG9mZnNldCA+PSAwKSB7Ci0gICAgICAgICAgICBTdHJpbmcgYmVmb3JlID0gcmVzdWx0LnN1YnN0cmluZygwLCBvZmZzZXQpOwotICAgICAgICAgICAgU3RyaW5nIGVzY2FwZWQgPSByZXN1bHQuc3Vic3RyaW5nKG9mZnNldCsyLCBvZmZzZXQrNik7Ci0gICAgICAgICAgICBTdHJpbmcgYWZ0ZXIgPSByZXN1bHQuc3Vic3RyaW5nKG9mZnNldCs2KTsKLQotICAgICAgICAgICAgcmVzdWx0ID0gU3RyaW5nLmZvcm1hdCgiJXMlYyVzIiwgYmVmb3JlLCBJbnRlZ2VyLnBhcnNlSW50KGVzY2FwZWQsIDE2KSwgYWZ0ZXIpOwotCi0gICAgICAgICAgICAvLyBmaW5kIGFub3RoZXIgYnV0IGRvbid0IHJlY3Vyc2UKLSAgICAgICAgICAgIG9mZnNldCA9IHJlc3VsdC5pbmRleE9mKCJcXHUiLCBvZmZzZXQgKyAxKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIC8qKgotICAgICAqIENvbnZlcnRzIGEgVk0tc3R5bGUgbmFtZSB0byBhIGxhbmd1YWdlLXN0eWxlIG5hbWUuCi0gICAgICovCi0gICAgU3RyaW5nIHZtVHlwZVRvTGFuZ3VhZ2UoU3RyaW5nIHR5cGVOYW1lKSB7Ci0gICAgICAgIC8vIGlmIHRoZSB0eXBlbmFtZSBpcyAobnVsbCksIGp1c3QgcmV0dXJuIGl0IGFzLWlzLiAgVGhpcyBpcyBwcm9iYWJseSBpbiBkZXhvcHQgYW5kCi0gICAgICAgIC8vIHdpbGwgYmUgZGlzY2FyZGVkIGFueXdheS4gIE5PVEU6IFRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIGNhc2UgaW4gZGFsdmlrL3ZtL29vL0NsYXNzLmMKLSAgICAgICAgLy8gd2hlcmUgZHZtTGlua0NsYXNzKCkgcmV0dXJucyBmYWxzZSBhbmQgd2UgY2xlYW4gdXAgYW5kIGV4aXQuCi0gICAgICAgIGlmICgiKG51bGwpIi5lcXVhbHModHlwZU5hbWUpKSB7Ci0gICAgICAgICAgICByZXR1cm4gdHlwZU5hbWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIXR5cGVOYW1lLnN0YXJ0c1dpdGgoIkwiKSB8fCAhdHlwZU5hbWUuZW5kc1dpdGgoIjsiKSApIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBBc3NlcnRpb25FcnJvcigiQmFkIG5hbWU6ICIgKyB0eXBlTmFtZSArICIgaW4gbGluZSAiICsgc291cmNlTGluZU51bWJlcik7Ci0gICAgICAgIH0KLQotICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lLnN1YnN0cmluZygxLCB0eXBlTmFtZS5sZW5ndGgoKSAtIDEpOwotICAgICAgICByZXR1cm4gdHlwZU5hbWUucmVwbGFjZSgiLyIsICIuIik7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvcHJlbG9hZC9Sb290LmphdmEgYi90b29scy9wcmVsb2FkL1Jvb3QuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGJjMjliZi4uMDAwMDAwMAotLS0gYS90b29scy9wcmVsb2FkL1Jvb3QuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOwotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5Xcml0ZXI7Ci1pbXBvcnQgamF2YS5pby5CdWZmZXJlZFdyaXRlcjsKLWltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbVdyaXRlcjsKLWltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkSW5wdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07Ci1pbXBvcnQgamF2YS5pby5CdWZmZXJlZE91dHB1dFN0cmVhbTsKLWltcG9ydCBqYXZhLnV0aWwuTWFwOwotaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOwotaW1wb3J0IGphdmEudXRpbC5TZXQ7Ci1pbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7Ci1pbXBvcnQgamF2YS51dGlsLkFycmF5czsKLWltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXQ7Ci0KLS8qKgotICogUm9vdCBvZiBvdXIgZGF0YSBtb2RlbC4KLSAqLwotcHVibGljIGNsYXNzIFJvb3QgaW1wbGVtZW50cyBTZXJpYWxpemFibGUgewotCi0gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMDsKLQotICAgIC8qKiBwaWQgLT4gUHJvYyAqLwotICAgIGZpbmFsIE1hcDxJbnRlZ2VyLCBQcm9jPiBwcm9jZXNzZXMgPSBuZXcgSGFzaE1hcDxJbnRlZ2VyLCBQcm9jPigpOwotCi0gICAgLyoqIENsYXNzIG5hbWUgLT4gTG9hZGVkQ2xhc3MgKi8KLSAgICBmaW5hbCBNYXA8U3RyaW5nLCBMb2FkZWRDbGFzcz4gbG9hZGVkQ2xhc3NlcwotICAgICAgICAgICAgPSBuZXcgSGFzaE1hcDxTdHJpbmcsIExvYWRlZENsYXNzPigpOwotCi0gICAgTWVtb3J5VXNhZ2UgYmFzZWxpbmUgPSBNZW1vcnlVc2FnZS5iYXNlbGluZSgpOwotCi0gICAgLyoqCi0gICAgICogUmVjb3JkcyBjbGFzcyBsb2FkcyBhbmQgaW5pdGlhbGl6YXRpb25zLgotICAgICAqLwotICAgIHZvaWQgaW5kZXhDbGFzc09wZXJhdGlvbihSZWNvcmQgcmVjb3JkKSB7Ci0gICAgICAgIFByb2MgcHJvY2VzcyA9IHByb2Nlc3Nlcy5nZXQocmVjb3JkLnBpZCk7Ci0KLSAgICAgICAgLy8gSWdub3JlIGRleG9wdCBvdXRwdXQuIEl0IGxvYWRzIGFwcGxpY2F0aW9ucyBjbGFzc2VzIHRocm91Z2ggdGhlCi0gICAgICAgIC8vIHN5c3RlbSBjbGFzcyBsb2FkZXIgYW5kIG1lc3NlcyB1cyB1cC4KLSAgICAgICAgaWYgKHJlY29yZC5wcm9jZXNzTmFtZS5lcXVhbHMoImRleG9wdCIpKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBTdHJpbmcgbmFtZSA9IHJlY29yZC5jbGFzc05hbWU7Ci0gICAgICAgIExvYWRlZENsYXNzIGxvYWRlZENsYXNzID0gbG9hZGVkQ2xhc3Nlcy5nZXQobmFtZSk7Ci0gICAgICAgIE9wZXJhdGlvbiBvID0gbnVsbDsKLQotICAgICAgICBzd2l0Y2ggKHJlY29yZC50eXBlKSB7Ci0gICAgICAgICAgICBjYXNlIFNUQVJUX0xPQUQ6Ci0gICAgICAgICAgICBjYXNlIFNUQVJUX0lOSVQ6Ci0gICAgICAgICAgICAgICAgaWYgKGxvYWRlZENsYXNzID09IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgbG9hZGVkQ2xhc3MgPSBuZXcgTG9hZGVkQ2xhc3MoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgcmVjb3JkLmNsYXNzTG9hZGVyID09IDApOwotICAgICAgICAgICAgICAgICAgICBpZiAobG9hZGVkQ2xhc3Muc3lzdGVtQ2xhc3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgbWVhc3VyZSBtZW1vcnkgZm9yIGNsYXNzZXMgaW4gdGhlIGJvb3QKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsYXNzcGF0aC4KLSAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZENsYXNzLm1lYXN1cmVNZW1vcnlVc2FnZSgpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGxvYWRlZENsYXNzZXMucHV0KG5hbWUsIGxvYWRlZENsYXNzKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgRU5EX0xPQUQ6Ci0gICAgICAgICAgICBjYXNlIEVORF9JTklUOgotICAgICAgICAgICAgICAgIG8gPSBwcm9jZXNzLmVuZE9wZXJhdGlvbihyZWNvcmQudGlkLCByZWNvcmQuY2xhc3NOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkQ2xhc3MsIHJlY29yZC50aW1lKTsKLSAgICAgICAgICAgICAgICBpZiAobyA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBzd2l0Y2ggKHJlY29yZC50eXBlKSB7Ci0gICAgICAgICAgICBjYXNlIFNUQVJUX0xPQUQ6Ci0gICAgICAgICAgICAgICAgcHJvY2Vzcy5zdGFydE9wZXJhdGlvbihyZWNvcmQudGlkLCBsb2FkZWRDbGFzcywgcmVjb3JkLnRpbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb24uVHlwZS5MT0FEKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgY2FzZSBTVEFSVF9JTklUOgotICAgICAgICAgICAgICAgIHByb2Nlc3Muc3RhcnRPcGVyYXRpb24ocmVjb3JkLnRpZCwgbG9hZGVkQ2xhc3MsIHJlY29yZC50aW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uLlR5cGUuSU5JVCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgRU5EX0xPQUQ6Ci0gICAgICAgICAgICAgICAgbG9hZGVkQ2xhc3MubG9hZHMuYWRkKG8pOwotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlIEVORF9JTklUOgotICAgICAgICAgICAgICAgIGxvYWRlZENsYXNzLmluaXRpYWxpemF0aW9ucy5hZGQobyk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBJbmRleGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9jZXNzIGZyb20gdGhlIGdpdmVuIHJlY29yZC4KLSAgICAgKi8KLSAgICB2b2lkIGluZGV4UHJvY2VzcyhSZWNvcmQgcmVjb3JkKSB7Ci0gICAgICAgIFByb2MgcHJvYyA9IHByb2Nlc3Nlcy5nZXQocmVjb3JkLnBpZCk7Ci0KLSAgICAgICAgaWYgKHByb2MgPT0gbnVsbCkgewotICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IHByb2Nlc3Mgb2JqZWN0LgotICAgICAgICAgICAgUHJvYyBwYXJlbnQgPSBwcm9jZXNzZXMuZ2V0KHJlY29yZC5wcGlkKTsKLSAgICAgICAgICAgIHByb2MgPSBuZXcgUHJvYyhwYXJlbnQsIHJlY29yZC5waWQpOwotICAgICAgICAgICAgcHJvY2Vzc2VzLnB1dChwcm9jLmlkLCBwcm9jKTsKLSAgICAgICAgICAgIGlmIChwYXJlbnQgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgIHBhcmVudC5jaGlsZHJlbi5hZGQocHJvYyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBwcm9jLnNldE5hbWUocmVjb3JkLnByb2Nlc3NOYW1lKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBXcml0ZXMgdGhpcyBncmFwaCB0byBhIGZpbGUuCi0gICAgICovCi0gICAgdm9pZCB0b0ZpbGUoU3RyaW5nIGZpbGVOYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24gewotICAgICAgICBGaWxlT3V0cHV0U3RyZWFtIG91dCA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGVOYW1lKTsKLSAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9vdXQgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKAotICAgICAgICAgICAgICAgIG5ldyBCdWZmZXJlZE91dHB1dFN0cmVhbShvdXQpKTsKLQotICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldyaXRpbmcgb2JqZWN0IG1vZGVsLi4uIik7Ci0KLSAgICAgICAgb291dC53cml0ZU9iamVjdCh0aGlzKTsKLQotICAgICAgICBvb3V0LmNsb3NlKCk7Ci0KLSAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJEb25lISIpOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJlYWRzIFJvb3QgZnJvbSBhIGZpbGUuCi0gICAgICovCi0gICAgc3RhdGljIFJvb3QgZnJvbUZpbGUoU3RyaW5nIGZpbGVOYW1lKQotICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKLSAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpbiA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZU5hbWUpOwotICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaW4gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oCi0gICAgICAgICAgICAgICAgbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oZmluKSk7Ci0KLSAgICAgICAgUm9vdCByb290ID0gKFJvb3QpIG9pbi5yZWFkT2JqZWN0KCk7Ci0KLSAgICAgICAgb2luLmNsb3NlKCk7Ci0KLSAgICAgICAgcmV0dXJuIHJvb3Q7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvcHJlbG9hZC9Xcml0ZVByZWxvYWRlZENsYXNzRmlsZS5qYXZhIGIvdG9vbHMvcHJlbG9hZC9Xcml0ZVByZWxvYWRlZENsYXNzRmlsZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDY3YmMyLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL3ByZWxvYWQvV3JpdGVQcmVsb2FkZWRDbGFzc0ZpbGUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDE1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRXcml0ZXI7Ci1pbXBvcnQgamF2YS5pby5GaWxlT3V0cHV0U3RyZWFtOwotaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS5pby5PdXRwdXRTdHJlYW1Xcml0ZXI7Ci1pbXBvcnQgamF2YS5pby5Xcml0ZXI7Ci1pbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0OwotaW1wb3J0IGphdmEudXRpbC5TZXQ7Ci1pbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7Ci0KLS8qKgotICogV3JpdGVzIC9mcmFtZXdvcmtzL2Jhc2UvcHJlbG9hZGVkLWNsYXNzZXMuIEFsc28gdXBkYXRlcwotICoge0BsaW5rIExvYWRlZENsYXNzI3ByZWxvYWRlZH0gZmllbGRzIGFuZCB3cml0ZXMgb3ZlciBjb21waWxlZCBsb2cgZmlsZS4KLSAqLwotcHVibGljIGNsYXNzIFdyaXRlUHJlbG9hZGVkQ2xhc3NGaWxlIHsKLQotICAgIC8qKgotICAgICAqIFByZWxvYWQgYW55IGNsYXNzIHRoYXQgdGFrZSBsb25nZXIgdG8gbG9hZCB0aGFuIE1JTl9MT0FEX1RJTUVfTUlDUk9TIHVzLgotICAgICAqLwotICAgIHN0YXRpYyBmaW5hbCBpbnQgTUlOX0xPQURfVElNRV9NSUNST1MgPSAxMjUwOwotCi0gICAgLyoqCi0gICAgICogUHJlbG9hZCBhbnkgY2xhc3MgdGhhdCB3YXMgbG9hZGVkIGJ5IGF0IGxlYXN0IE1JTl9QUk9DRVNTRVMgcHJvY2Vzc2VzLgotICAgICAqLwotICAgIHN0YXRpYyBmaW5hbCBpbnQgTUlOX1BST0NFU1NFUyA9IDEwOwotCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uLAotICAgICAgICAgICAgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7Ci0gICAgICAgIGlmIChhcmdzLmxlbmd0aCAhPSAxKSB7Ci0gICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVzYWdlOiBXcml0ZVByZWxvYWRlZENsYXNzRmlsZSBbY29tcGlsZWQgbG9nXSIpOwotICAgICAgICAgICAgU3lzdGVtLmV4aXQoLTEpOwotICAgICAgICB9Ci0gICAgICAgIFN0cmluZyByb290RmlsZSA9IGFyZ3NbMF07Ci0gICAgICAgIFJvb3Qgcm9vdCA9IFJvb3QuZnJvbUZpbGUocm9vdEZpbGUpOwotCi0gICAgICAgIC8vIE5vIGNsYXNzZXMgYXJlIHByZWxvYWRlZCB0byBzdGFydC4KLSAgICAgICAgZm9yIChMb2FkZWRDbGFzcyBsb2FkZWRDbGFzcyA6IHJvb3QubG9hZGVkQ2xhc3Nlcy52YWx1ZXMoKSkgewotICAgICAgICAgICAgbG9hZGVkQ2xhc3MucHJlbG9hZGVkID0gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBPcGVuIHByZWxvYWRlZC1jbGFzc2VzIGZpbGUgZm9yIG91dHB1dC4KLSAgICAgICAgV3JpdGVyIG91dCA9IG5ldyBCdWZmZXJlZFdyaXRlcihuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAotICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKFBvbGljeS5QUkVMT0FERURfQ0xBU1NfRklMRSksCi0gICAgICAgICAgICAgICAgQ2hhcnNldC5mb3JOYW1lKCJVUy1BU0NJSSIpKSk7Ci0KLSAgICAgICAgb3V0LndyaXRlKCIjIENsYXNzZXMgd2hpY2ggYXJlIHByZWxvYWRlZCBieSIKLSAgICAgICAgICAgICAgICArICIgY29tLmFuZHJvaWQuaW50ZXJuYWwub3MuWnlnb3RlSW5pdC5cbiIpOwotICAgICAgICBvdXQud3JpdGUoIiMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgZnJhbWV3b3Jrcy9iYXNlL3Rvb2xzL3ByZWxvYWQvIgotICAgICAgICAgICAgKyBXcml0ZVByZWxvYWRlZENsYXNzRmlsZS5jbGFzcy5nZXRTaW1wbGVOYW1lKCkgKyAiLmphdmEuXG4iKTsKLSAgICAgICAgb3V0LndyaXRlKCIjIE1JTl9MT0FEX1RJTUVfTUlDUk9TPSIgKyBNSU5fTE9BRF9USU1FX01JQ1JPUyArICJcbiIpOwotICAgICAgICBvdXQud3JpdGUoIiMgTUlOX1BST0NFU1NFUz0iICsgTUlOX1BST0NFU1NFUyArICJcbiIpOwotCi0gICAgICAgIC8qCi0gICAgICAgICAqIFRoZSBzZXQgb2YgY2xhc3NlcyB0byBwcmVsb2FkLiBXZSBwcmVsb2FkIGEgY2xhc3MgaWY6Ci0gICAgICAgICAqCi0gICAgICAgICAqICBhKSBpdCdzIGxvYWRlZCBpbiB0aGUgYm9vdGNsYXNzcGF0aCAoaS5lLiwgaXMgYSBzeXN0ZW0gY2xhc3MpCi0gICAgICAgICAqICBiKSBpdCB0YWtlcyA+IE1JTl9MT0FEX1RJTUVfTUlDUk9TIHVzIHRvIGxvYWQsIGFuZAotICAgICAgICAgKiAgYykgaXQncyBsb2FkZWQgYnkgbW9yZSB0aGFuIG9uZSBwcm9jZXNzLCBvciBpdCdzIGxvYWRlZCBieSBhbgotICAgICAgICAgKiAgICAgYXBwbGljYXRpb24gKGkuZS4sIG5vdCBhIGxvbmcgcnVubmluZyBzZXJ2aWNlKQotICAgICAgICAgKi8KLSAgICAgICAgU2V0PExvYWRlZENsYXNzPiB0b1ByZWxvYWQgPSBuZXcgVHJlZVNldDxMb2FkZWRDbGFzcz4oKTsKLQotICAgICAgICAvLyBQcmVsb2FkIGNsYXNzZXMgdGhhdCB3ZXJlIGxvYWRlZCBieSBhdCBsZWFzdCAyIHByb2Nlc3Nlcy4gSG9wZWZ1bGx5LAotICAgICAgICAvLyB0aGUgbWVtb3J5IGFzc29jaWF0ZWQgd2l0aCB0aGVzZSBjbGFzc2VzIHdpbGwgYmUgc2hhcmVkLgotICAgICAgICBmb3IgKExvYWRlZENsYXNzIGxvYWRlZENsYXNzIDogcm9vdC5sb2FkZWRDbGFzc2VzLnZhbHVlcygpKSB7Ci0gICAgICAgICAgICBTZXQ8U3RyaW5nPiBuYW1lcyA9IGxvYWRlZENsYXNzLnByb2Nlc3NOYW1lcygpOwotICAgICAgICAgICAgaWYgKCFQb2xpY3kuaXNQcmVsb2FkYWJsZShsb2FkZWRDbGFzcykpIHsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKG5hbWVzLnNpemUoKSA+PSBNSU5fUFJPQ0VTU0VTIHx8Ci0gICAgICAgICAgICAgICAgICAgIChsb2FkZWRDbGFzcy5tZWRpYW5UaW1lTWljcm9zKCkgPiBNSU5fTE9BRF9USU1FX01JQ1JPUyAmJiBuYW1lcy5zaXplKCkgPiAxKSkgewotICAgICAgICAgICAgICAgIHRvUHJlbG9hZC5hZGQobG9hZGVkQ2xhc3MpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaW50IGluaXRpYWxTaXplID0gdG9QcmVsb2FkLnNpemUoKTsKLSAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGluaXRpYWxTaXplCi0gICAgICAgICAgICAgICAgKyAiIGNsYXNzc2VzIHdlcmUgbG9hZGVkIGJ5IG1vcmUgdGhhbiBvbmUgYXBwLiIpOwotCi0gICAgICAgIC8vIFByZWxvYWQgZWxpZ2FibGUgY2xhc3NlcyBmcm9tIGFwcGxpY2F0aW9ucyAobm90IGxvbmctcnVubmluZwotICAgICAgICAvLyBzZXJ2aWNlcykuCi0gICAgICAgIGZvciAoUHJvYyBwcm9jIDogcm9vdC5wcm9jZXNzZXMudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGlmIChwcm9jLmZyb21aeWdvdGUoKSAmJiAhUG9saWN5LmlzU2VydmljZShwcm9jLm5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChPcGVyYXRpb24gb3BlcmF0aW9uIDogcHJvYy5vcGVyYXRpb25zKSB7Ci0gICAgICAgICAgICAgICAgICAgIExvYWRlZENsYXNzIGxvYWRlZENsYXNzID0gb3BlcmF0aW9uLmxvYWRlZENsYXNzOwotICAgICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkUHJlbG9hZChsb2FkZWRDbGFzcykpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvUHJlbG9hZC5hZGQobG9hZGVkQ2xhc3MpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBZGRlZCAiICsgKHRvUHJlbG9hZC5zaXplKCkgLSBpbml0aWFsU2l6ZSkKLSAgICAgICAgICAgICAgICArICIgbW9yZSB0byBzcGVlZCB1cCBhcHBsaWNhdGlvbnMuIik7Ci0KLSAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRvUHJlbG9hZC5zaXplKCkKLSAgICAgICAgICAgICAgICArICIgdG90YWwgY2xhc3NlcyB3aWxsIGJlIHByZWxvYWRlZC4iKTsKLQotICAgICAgICAvLyBNYWtlIGNsYXNzZXMgdGhhdCB3ZXJlIGltcGxpY2l0bHkgbG9hZGVkIGJ5IHRoZSB6eWdvdGUgZXhwbGljaXQuCi0gICAgICAgIC8vIFRoaXMgYWRkcyBtaW5pbWFsIG92ZXJoZWFkIGJ1dCBhdm9pZCBjb25mdXNpb24gYWJvdXQgY2xhc3NlcyBub3QKLSAgICAgICAgLy8gYXBwZWFyaW5nIGluIHRoZSBsaXN0LgotICAgICAgICBhZGRBbGxDbGFzc2VzRnJvbSgienlnb3RlIiwgcm9vdCwgdG9QcmVsb2FkKTsKLQotICAgICAgICBmb3IgKExvYWRlZENsYXNzIGxvYWRlZENsYXNzIDogdG9QcmVsb2FkKSB7Ci0gICAgICAgICAgICBvdXQud3JpdGUobG9hZGVkQ2xhc3MubmFtZSArICJcbiIpOwotICAgICAgICB9Ci0KLSAgICAgICAgb3V0LmNsb3NlKCk7Ci0KLSAgICAgICAgLy8gVXBkYXRlIGRhdGEgdG8gcmVmbGVjdCBMb2FkZWRDbGFzcy5wcmVsb2FkZWQgY2hhbmdlcy4KLSAgICAgICAgZm9yIChMb2FkZWRDbGFzcyBsb2FkZWRDbGFzcyA6IHRvUHJlbG9hZCkgewotICAgICAgICAgICAgbG9hZGVkQ2xhc3MucHJlbG9hZGVkID0gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICByb290LnRvRmlsZShyb290RmlsZSk7Ci0gICAgfQotCi0gICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBhZGRBbGxDbGFzc2VzRnJvbShTdHJpbmcgcHJvY2Vzc05hbWUsIFJvb3Qgcm9vdCwKLSAgICAgICAgICAgIFNldDxMb2FkZWRDbGFzcz4gdG9QcmVsb2FkKSB7Ci0gICAgICAgIGZvciAoUHJvYyBwcm9jIDogcm9vdC5wcm9jZXNzZXMudmFsdWVzKCkpIHsKLSAgICAgICAgICAgIGlmIChwcm9jLm5hbWUuZXF1YWxzKHByb2Nlc3NOYW1lKSkgewotICAgICAgICAgICAgICAgIGZvciAoT3BlcmF0aW9uIG9wZXJhdGlvbiA6IHByb2Mub3BlcmF0aW9ucykgewotICAgICAgICAgICAgICAgICAgICBib29sZWFuIHByZWxvYWRhYmxlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBQb2xpY3kuaXNQcmVsb2FkYWJsZShvcGVyYXRpb24ubG9hZGVkQ2xhc3MpOwotICAgICAgICAgICAgICAgICAgICBpZiAocHJlbG9hZGFibGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvUHJlbG9hZC5hZGQob3BlcmF0aW9uLmxvYWRlZENsYXNzKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qKgotICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2xhc3Mgc2hvdWxkIGJlIHByZWxvYWRlZC4KLSAgICAgKi8KLSAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHNob3VsZFByZWxvYWQoTG9hZGVkQ2xhc3MgY2xhenopIHsKLSAgICAgICAgcmV0dXJuIFBvbGljeS5pc1ByZWxvYWRhYmxlKGNsYXp6KQotICAgICAgICAgICAgICAgICYmIGNsYXp6Lm1lZGlhblRpbWVNaWNyb3MoKSA+IE1JTl9MT0FEX1RJTUVfTUlDUk9TOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL3ByZWxvYWQvbG9hZGNsYXNzL0FuZHJvaWQubWsgYi90b29scy9wcmVsb2FkL2xvYWRjbGFzcy9BbmRyb2lkLm1rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NTgyOGJlLi4wMDAwMDAwCi0tLSBhL3Rvb2xzL3ByZWxvYWQvbG9hZGNsYXNzL0FuZHJvaWQubWsKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLUxPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKLWluY2x1ZGUgJChDTEVBUl9WQVJTKQotCi1MT0NBTF9TUkNfRklMRVMgOj0gJChjYWxsIGFsbC1zdWJkaXItamF2YS1maWxlcykKLUxPQ0FMX01PRFVMRV9UQUdTIDo9IHRlc3RzCi0KLUxPQ0FMX01PRFVMRSA6PSBsb2FkY2xhc3MKLQotaW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKZGlmZiAtLWdpdCBhL3Rvb2xzL3ByZWxvYWQvbG9hZGNsYXNzL0xvYWRDbGFzcy5qYXZhIGIvdG9vbHMvcHJlbG9hZC9sb2FkY2xhc3MvTG9hZENsYXNzLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3MWI2YTguLjAwMDAwMDAKLS0tIGEvdG9vbHMvcHJlbG9hZC9sb2FkY2xhc3MvTG9hZENsYXNzLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0gKi8KLQotaW1wb3J0IGFuZHJvaWQudXRpbC5Mb2c7Ci1pbXBvcnQgYW5kcm9pZC5vcy5EZWJ1ZzsKLQotLyoqCi0gKiBMb2FkcyBhIGNsYXNzLCBydW5zIHRoZSBnYXJiYWdlIGNvbGxlY3RvciwgYW5kIHByaW50cyBzaG93bWFwIG91dHB1dC4KLSAqCi0gKiA8cD5Vc2FnZTogZGFsdmlrdm0gTG9hZENsYXNzIFtjbGFzcyBuYW1lXQotICovCi1jbGFzcyBMb2FkQ2xhc3MgewotCi0gICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewotICAgICAgICBTeXN0ZW0ubG9hZExpYnJhcnkoImFuZHJvaWRfcnVudGltZSIpOwotCi0gICAgICAgIGlmIChyZWdpc3Rlck5hdGl2ZXMoKSA8IDApIHsKLSAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJFcnJvciByZWdpc3RlcmluZyBuYXRpdmVzLiIpOyAgICAKLSAgICAgICAgfQotCi0gICAgICAgIERlYnVnLnN0YXJ0QWxsb2NDb3VudGluZygpOwotCi0gICAgICAgIGlmIChhcmdzLmxlbmd0aCA+IDApIHsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwotICAgICAgICAgICAgICAgIENsYXNzLmZvck5hbWUoYXJnc1swXSk7Ci0gICAgICAgICAgICAgICAgbG9uZyBlbGFwc2VkID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydDsKLSAgICAgICAgICAgICAgICBMb2cuaSgiTG9hZENsYXNzIiwgIkxvYWRlZCAiICsgYXJnc1swXSArICIgaW4gIiArIGVsYXBzZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICsgIm1zLiIpOwotICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7Ci0gICAgICAgICAgICAgICAgTG9nLncoIkxvYWRDbGFzcyIsIGUpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIFN5c3RlbS5nYygpOwotCi0gICAgICAgIGludCBhbGxvY0NvdW50ID0gRGVidWcuZ2V0R2xvYmFsQWxsb2NDb3VudCgpOwotICAgICAgICBpbnQgYWxsb2NTaXplID0gRGVidWcuZ2V0R2xvYmFsQWxsb2NTaXplKCk7Ci0gICAgICAgIGludCBmcmVlZENvdW50ID0gRGVidWcuZ2V0R2xvYmFsRnJlZWRDb3VudCgpOwotICAgICAgICBpbnQgZnJlZWRTaXplID0gRGVidWcuZ2V0R2xvYmFsRnJlZWRTaXplKCk7Ci0gICAgICAgIGxvbmcgbmF0aXZlSGVhcFNpemUgPSBEZWJ1Zy5nZXROYXRpdmVIZWFwU2l6ZSgpOwotCi0gICAgICAgIERlYnVnLnN0b3BBbGxvY0NvdW50aW5nKCk7Ci0KLSAgICAgICAgU3RyaW5nQnVpbGRlciByZXNwb25zZSA9IG5ldyBTdHJpbmdCdWlsZGVyKCJERUNBRkJBRCIpOwotCi0gICAgICAgIGludFtdIHBhZ2VzID0gbmV3IGludFs2XTsKLSAgICAgICAgRGVidWcuTWVtb3J5SW5mbyBtZW1vcnlJbmZvID0gbmV3IERlYnVnLk1lbW9yeUluZm8oKTsKLSAgICAgICAgRGVidWcuZ2V0TWVtb3J5SW5mbyhtZW1vcnlJbmZvKTsKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCcsJykuYXBwZW5kKG1lbW9yeUluZm8ubmF0aXZlU2hhcmVkRGlydHkpOwotICAgICAgICByZXNwb25zZS5hcHBlbmQoJywnKS5hcHBlbmQobWVtb3J5SW5mby5kYWx2aWtTaGFyZWREaXJ0eSk7Ci0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnLCcpLmFwcGVuZChtZW1vcnlJbmZvLm90aGVyU2hhcmVkRGlydHkpOwotICAgICAgICByZXNwb25zZS5hcHBlbmQoJywnKS5hcHBlbmQobWVtb3J5SW5mby5uYXRpdmVQcml2YXRlRGlydHkpOwotICAgICAgICByZXNwb25zZS5hcHBlbmQoJywnKS5hcHBlbmQobWVtb3J5SW5mby5kYWx2aWtQcml2YXRlRGlydHkpOwotICAgICAgICByZXNwb25zZS5hcHBlbmQoJywnKS5hcHBlbmQobWVtb3J5SW5mby5vdGhlclByaXZhdGVEaXJ0eSk7Ci0KLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCcsJykuYXBwZW5kKGFsbG9jQ291bnQpOwotICAgICAgICByZXNwb25zZS5hcHBlbmQoJywnKS5hcHBlbmQoYWxsb2NTaXplKTsKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCcsJykuYXBwZW5kKGZyZWVkQ291bnQpOwotICAgICAgICByZXNwb25zZS5hcHBlbmQoJywnKS5hcHBlbmQoZnJlZWRTaXplKTsKLSAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCcsJykuYXBwZW5kKG5hdGl2ZUhlYXBTaXplKTsKLSAgICAgICAgCi0gICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihyZXNwb25zZS50b1N0cmluZygpKTsKLSAgICB9Ci0KLSAgICAvKioKLSAgICAgKiBSZWdpc3RlcnMgbmF0aXZlIGZ1bmN0aW9ucy4gU2VlIEFuZHJvaWRSdW50aW1lLmNwcC4KLSAgICAgKi8KLSAgICBzdGF0aWMgbmF0aXZlIGludCByZWdpc3Rlck5hdGl2ZXMoKTsKLX0KZGlmZiAtLWdpdCBhL3Rvb2xzL3ByZWxvYWQvcHJlbG9hZC5pbWwgYi90b29scy9wcmVsb2FkL3ByZWxvYWQuaW1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDg3YzU1Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL3ByZWxvYWQvcHJlbG9hZC5pbWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPG1vZHVsZSByZWxhdGl2ZVBhdGhzPSJ0cnVlIiB0eXBlPSJKQVZBX01PRFVMRSIgdmVyc2lvbj0iNCI+Ci0gIDxjb21wb25lbnQgbmFtZT0iTmV3TW9kdWxlUm9vdE1hbmFnZXIiIGluaGVyaXQtY29tcGlsZXItb3V0cHV0PSJmYWxzZSI+Ci0gICAgPG91dHB1dCB1cmw9ImZpbGU6Ly8vdG1wL3ByZWxvYWQiIC8+Ci0gICAgPG91dHB1dC10ZXN0IHVybD0iZmlsZTovLy90bXAvcHJlbG9hZCIgLz4KLSAgICA8ZXhjbHVkZS1vdXRwdXQgLz4KLSAgICA8Y29udGVudCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQiPgotICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQiIGlzVGVzdFNvdXJjZT0iZmFsc2UiIC8+Ci0gICAgPC9jb250ZW50PgotICAgIDxvcmRlckVudHJ5IHR5cGU9ImluaGVyaXRlZEpkayIgLz4KLSAgICA8b3JkZXJFbnRyeSB0eXBlPSJzb3VyY2VGb2xkZXIiIGZvclRlc3RzPSJmYWxzZSIgLz4KLSAgPC9jb21wb25lbnQ+Ci08L21vZHVsZT4KLQpkaWZmIC0tZ2l0IGEvdG9vbHMvcHJlbG9hZC9wcmVsb2FkLmlwciBiL3Rvb2xzL3ByZWxvYWQvcHJlbG9hZC5pcHIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjOTYyMWMuLjAwMDAwMDAKLS0tIGEvdG9vbHMvcHJlbG9hZC9wcmVsb2FkLmlwcgorKysgL2Rldi9udWxsCkBAIC0xLDQ5NSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3QgcmVsYXRpdmVQYXRocz0iZmFsc2UiIHZlcnNpb249IjQiPgotICA8Y29tcG9uZW50IG5hbWU9IkFudENvbmZpZ3VyYXRpb24iPgotICAgIDxkZWZhdWx0QW50IGJ1bmRsZWRBbnQ9InRydWUiIC8+Ci0gIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9IkJ1aWxkSmFyUHJvamVjdFNldHRpbmdzIj4KLSAgICA8b3B0aW9uIG5hbWU9IkJVSUxEX0pBUlNfT05fTUFLRSIgdmFsdWU9ImZhbHNlIiAvPgotICA8L2NvbXBvbmVudD4KLSAgPGNvbXBvbmVudCBuYW1lPSJDaGFuZ2VCcm93c2VyU2V0dGluZ3MiPgotICAgIDxvcHRpb24gbmFtZT0iTUFJTl9TUExJVFRFUl9QUk9QT1JUSU9OIiB2YWx1ZT0iMC4zIiAvPgotICAgIDxvcHRpb24gbmFtZT0iTUVTU0FHRVNfU1BMSVRURVJfUFJPUE9SVElPTiIgdmFsdWU9IjAuOCIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IlVTRV9EQVRFX0JFRk9SRV9GSUxURVIiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IlVTRV9EQVRFX0FGVEVSX0ZJTFRFUiIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iVVNFX0NIQU5HRV9CRUZPUkVfRklMVEVSIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJVU0VfQ0hBTkdFX0FGVEVSX0ZJTFRFUiIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iREFURV9CRUZPUkUiIHZhbHVlPSIiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJEQVRFX0FGVEVSIiB2YWx1ZT0iIiAvPgotICAgIDxvcHRpb24gbmFtZT0iQ0hBTkdFX0JFRk9SRSIgdmFsdWU9IiIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkNIQU5HRV9BRlRFUiIgdmFsdWU9IiIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IlVTRV9VU0VSX0ZJTFRFUiIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iVVNFUiIgdmFsdWU9IiIgLz4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iQ29kZVN0eWxlUHJvamVjdFByb2ZpbGVNYW5nZXIiPgotICAgIDxvcHRpb24gbmFtZT0iUFJPSkVDVF9QUk9GSUxFIiAvPgotICAgIDxvcHRpb24gbmFtZT0iVVNFX1BST0pFQ1RfTEVWRUxfU0VUVElOR1MiIHZhbHVlPSJmYWxzZSIgLz4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iQ29kZVN0eWxlU2V0dGluZ3NNYW5hZ2VyIj4KLSAgICA8b3B0aW9uIG5hbWU9IlBFUl9QUk9KRUNUX1NFVFRJTkdTIj4KLSAgICAgIDx2YWx1ZT4KLSAgICAgICAgPEFERElUSU9OQUxfSU5ERU5UX09QVElPTlMgZmlsZVR5cGU9ImphdmEiPgotICAgICAgICAgIDxvcHRpb24gbmFtZT0iSU5ERU5UX1NJWkUiIHZhbHVlPSI0IiAvPgotICAgICAgICAgIDxvcHRpb24gbmFtZT0iQ09OVElOVUFUSU9OX0lOREVOVF9TSVpFIiB2YWx1ZT0iOCIgLz4KLSAgICAgICAgICA8b3B0aW9uIG5hbWU9IlRBQl9TSVpFIiB2YWx1ZT0iNCIgLz4KLSAgICAgICAgICA8b3B0aW9uIG5hbWU9IlVTRV9UQUJfQ0hBUkFDVEVSIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgICAgICAgPG9wdGlvbiBuYW1lPSJTTUFSVF9UQUJTIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgICAgICAgPG9wdGlvbiBuYW1lPSJMQUJFTF9JTkRFTlRfU0laRSIgdmFsdWU9IjAiIC8+Ci0gICAgICAgICAgPG9wdGlvbiBuYW1lPSJMQUJFTF9JTkRFTlRfQUJTT0xVVEUiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICAgICAgPC9BRERJVElPTkFMX0lOREVOVF9PUFRJT05TPgotICAgICAgICA8QURESVRJT05BTF9JTkRFTlRfT1BUSU9OUyBmaWxlVHlwZT0ieG1sIj4KLSAgICAgICAgICA8b3B0aW9uIG5hbWU9IklOREVOVF9TSVpFIiB2YWx1ZT0iNCIgLz4KLSAgICAgICAgICA8b3B0aW9uIG5hbWU9IkNPTlRJTlVBVElPTl9JTkRFTlRfU0laRSIgdmFsdWU9IjgiIC8+Ci0gICAgICAgICAgPG9wdGlvbiBuYW1lPSJUQUJfU0laRSIgdmFsdWU9IjQiIC8+Ci0gICAgICAgICAgPG9wdGlvbiBuYW1lPSJVU0VfVEFCX0NIQVJBQ1RFUiIgdmFsdWU9ImZhbHNlIiAvPgotICAgICAgICAgIDxvcHRpb24gbmFtZT0iU01BUlRfVEFCUyIgdmFsdWU9ImZhbHNlIiAvPgotICAgICAgICAgIDxvcHRpb24gbmFtZT0iTEFCRUxfSU5ERU5UX1NJWkUiIHZhbHVlPSIwIiAvPgotICAgICAgICAgIDxvcHRpb24gbmFtZT0iTEFCRUxfSU5ERU5UX0FCU09MVVRFIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgICAgIDwvQURESVRJT05BTF9JTkRFTlRfT1BUSU9OUz4KLSAgICAgIDwvdmFsdWU+Ci0gICAgPC9vcHRpb24+Ci0gICAgPG9wdGlvbiBuYW1lPSJVU0VfUEVSX1BST0pFQ1RfU0VUVElOR1MiIHZhbHVlPSJmYWxzZSIgLz4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iQ29tcGlsZXJDb25maWd1cmF0aW9uIj4KLSAgICA8b3B0aW9uIG5hbWU9IkRFRkFVTFRfQ09NUElMRVIiIHZhbHVlPSJKYXZhYyIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkRFUExPWV9BRlRFUl9NQUtFIiB2YWx1ZT0iMCIgLz4KLSAgICA8cmVzb3VyY2VFeHRlbnNpb25zPgotICAgICAgPGVudHJ5IG5hbWU9Ii4rXC4ocHJvcGVydGllc3x4bWx8aHRtbHxkdGR8dGxkKSIgLz4KLSAgICAgIDxlbnRyeSBuYW1lPSIuK1wuKGdpZnxwbmd8anBlZ3xqcGcpIiAvPgotICAgIDwvcmVzb3VyY2VFeHRlbnNpb25zPgotICAgIDx3aWxkY2FyZFJlc291cmNlUGF0dGVybnM+Ci0gICAgICA8ZW50cnkgbmFtZT0iPyoucHJvcGVydGllcyIgLz4KLSAgICAgIDxlbnRyeSBuYW1lPSI/Ki54bWwiIC8+Ci0gICAgICA8ZW50cnkgbmFtZT0iPyouZ2lmIiAvPgotICAgICAgPGVudHJ5IG5hbWU9Ij8qLnBuZyIgLz4KLSAgICAgIDxlbnRyeSBuYW1lPSI/Ki5qcGVnIiAvPgotICAgICAgPGVudHJ5IG5hbWU9Ij8qLmpwZyIgLz4KLSAgICAgIDxlbnRyeSBuYW1lPSI/Ki5odG1sIiAvPgotICAgICAgPGVudHJ5IG5hbWU9Ij8qLmR0ZCIgLz4KLSAgICAgIDxlbnRyeSBuYW1lPSI/Ki50bGQiIC8+Ci0gICAgPC93aWxkY2FyZFJlc291cmNlUGF0dGVybnM+Ci0gIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9IkN2czJDb25maWd1cmF0aW9uIj4KLSAgICA8b3B0aW9uIG5hbWU9IlBSVU5FX0VNUFRZX0RJUkVDVE9SSUVTIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9Ik1FUkdJTkdfTU9ERSIgdmFsdWU9IjAiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJNRVJHRV9XSVRIX0JSQU5DSDFfTkFNRSIgdmFsdWU9IkhFQUQiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJNRVJHRV9XSVRIX0JSQU5DSDJfTkFNRSIgdmFsdWU9IkhFQUQiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJSRVNFVF9TVElDS1kiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkNSRUFURV9ORVdfRElSRUNUT1JJRVMiIHZhbHVlPSJ0cnVlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iREVGQVVMVF9URVhUX0ZJTEVfU1VCU1RJVFVUSU9OIiB2YWx1ZT0ia3YiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJQUk9DRVNTX1VOS05PV05fRklMRVMiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IlBST0NFU1NfREVMRVRFRF9GSUxFUyIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iUFJPQ0VTU19JR05PUkVEX0ZJTEVTIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJSRVNFUlZFRF9FRElUIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJDSEVDS09VVF9EQVRFX09SX1JFVklTSU9OX1NFVFRJTkdTIj4KLSAgICAgIDx2YWx1ZT4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJCUkFOQ0giIHZhbHVlPSIiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0iREFURSIgdmFsdWU9IiIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJVU0VfQlJBTkNIIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0iVVNFX0RBVEUiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICAgIDwvdmFsdWU+Ci0gICAgPC9vcHRpb24+Ci0gICAgPG9wdGlvbiBuYW1lPSJVUERBVEVfREFURV9PUl9SRVZJU0lPTl9TRVRUSU5HUyI+Ci0gICAgICA8dmFsdWU+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0iQlJBTkNIIiB2YWx1ZT0iIiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9IkRBVEUiIHZhbHVlPSIiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0iVVNFX0JSQU5DSCIgdmFsdWU9ImZhbHNlIiAvPgotICAgICAgICA8b3B0aW9uIG5hbWU9IlVTRV9EQVRFIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgICA8L3ZhbHVlPgotICAgIDwvb3B0aW9uPgotICAgIDxvcHRpb24gbmFtZT0iU0hPV19DSEFOR0VTX1JFVklTSU9OX1NFVFRJTkdTIj4KLSAgICAgIDx2YWx1ZT4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJCUkFOQ0giIHZhbHVlPSIiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0iREFURSIgdmFsdWU9IiIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJVU0VfQlJBTkNIIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0iVVNFX0RBVEUiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICAgIDwvdmFsdWU+Ci0gICAgPC9vcHRpb24+Ci0gICAgPG9wdGlvbiBuYW1lPSJTSE9XX09VVFBVVCIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iQUREX1dBVENIX0lOREVYIiB2YWx1ZT0iMCIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IlJFTU9WRV9XQVRDSF9JTkRFWCIgdmFsdWU9IjAiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJVUERBVEVfS0VZV09SRF9TVUJTVElUVVRJT04iIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJNQUtFX05FV19GSUxFU19SRUFET05MWSIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iU0hPV19DT1JSVVBURURfUFJPSkVDVF9GSUxFUyIgdmFsdWU9IjAiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJUQUdfQUZURVJfUFJPSkVDVF9DT01NSVQiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9Ik9WRVJSSURFX0VYSVNUSU5HX1RBR19GT1JfUFJPSkVDVCIgdmFsdWU9InRydWUiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJUQUdfQUZURVJfUFJPSkVDVF9DT01NSVRfTkFNRSIgdmFsdWU9IiIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkNMRUFOX0NPUFkiIHZhbHVlPSJmYWxzZSIgLz4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iRGVwZW5kZW5jaWVzQW5hbHl6ZU1hbmFnZXIiPgotICAgIDxvcHRpb24gbmFtZT0ibXlGb3J3YXJkRGlyZWN0aW9uIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9IkRlcGVuZGVuY3lWYWxpZGF0aW9uTWFuYWdlciI+Ci0gICAgPG9wdGlvbiBuYW1lPSJTS0lQX0lNUE9SVF9TVEFURU1FTlRTIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9IkVjbGlwc2VDb21waWxlclNldHRpbmdzIj4KLSAgICA8b3B0aW9uIG5hbWU9IkRFQlVHR0lOR19JTkZPIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkdFTkVSQVRFX05PX1dBUk5JTkdTIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkRFUFJFQ0FUSU9OIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJBRERJVElPTkFMX09QVElPTlNfU1RSSU5HIiB2YWx1ZT0iIiAvPgotICAgIDxvcHRpb24gbmFtZT0iTUFYSU1VTV9IRUFQX1NJWkUiIHZhbHVlPSIxMjgiIC8+Ci0gIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9IkVjbGlwc2VFbWJlZGRlZENvbXBpbGVyU2V0dGluZ3MiPgotICAgIDxvcHRpb24gbmFtZT0iREVCVUdHSU5HX0lORk8iIHZhbHVlPSJ0cnVlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iR0VORVJBVEVfTk9fV0FSTklOR1MiIHZhbHVlPSJ0cnVlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iREVQUkVDQVRJT04iIHZhbHVlPSJmYWxzZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkFERElUSU9OQUxfT1BUSU9OU19TVFJJTkciIHZhbHVlPSIiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJNQVhJTVVNX0hFQVBfU0laRSIgdmFsdWU9IjEyOCIgLz4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iRW5jb2RpbmciIHVzZVVURkd1ZXNzaW5nPSJ0cnVlIiBuYXRpdmUyQXNjaWlGb3JQcm9wZXJ0aWVzRmlsZXM9ImZhbHNlIiAvPgotICA8Y29tcG9uZW50IG5hbWU9IkVudHJ5UG9pbnRzTWFuYWdlciI+Ci0gICAgPGVudHJ5X3BvaW50cyB2ZXJzaW9uPSIyLjAiIC8+Ci0gIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9IkV4cG9ydFRvSFRNTFNldHRpbmdzIj4KLSAgICA8b3B0aW9uIG5hbWU9IlBSSU5UX0xJTkVfTlVNQkVSUyIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iT1BFTl9JTl9CUk9XU0VSIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJPVVRQVVRfRElSRUNUT1JZIiAvPgotICA8L2NvbXBvbmVudD4KLSAgPGNvbXBvbmVudCBuYW1lPSJJZFByb3ZpZGVyIiBJREV0YWxrSUQ9IkQxNzFGOTlCOTE3OEMxNjc1NTkzREM5QTc2QTVDQzdFIiAvPgotICA8Y29tcG9uZW50IG5hbWU9Ikluc3BlY3Rpb25Qcm9qZWN0UHJvZmlsZU1hbmFnZXIiPgotICAgIDxvcHRpb24gbmFtZT0iUFJPSkVDVF9QUk9GSUxFIiB2YWx1ZT0iUHJvamVjdCBEZWZhdWx0IiAvPgotICAgIDxvcHRpb24gbmFtZT0iVVNFX1BST0pFQ1RfUFJPRklMRSIgdmFsdWU9InRydWUiIC8+Ci0gICAgPHZlcnNpb24gdmFsdWU9IjEuMCIgLz4KLSAgICA8cHJvZmlsZXM+Ci0gICAgICA8cHJvZmlsZSB2ZXJzaW9uPSIxLjAiIGlzX2xvY2tlZD0iZmFsc2UiPgotICAgICAgICA8b3B0aW9uIG5hbWU9Im15TmFtZSIgdmFsdWU9IlByb2plY3QgRGVmYXVsdCIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJteUxvY2FsIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgICAgIDxpbnNwZWN0aW9uX3Rvb2wgY2xhc3M9IkphdmFEb2MiIGVuYWJsZWQ9ImZhbHNlIiBsZXZlbD0iV0FSTklORyIgZW5hYmxlZF9ieV9kZWZhdWx0PSJmYWxzZSI+Ci0gICAgICAgICAgPG9wdGlvbiBuYW1lPSJUT1BfTEVWRUxfQ0xBU1NfT1BUSU9OUyI+Ci0gICAgICAgICAgICA8dmFsdWU+Ci0gICAgICAgICAgICAgIDxvcHRpb24gbmFtZT0iQUNDRVNTX0pBVkFET0NfUkVRVUlSRURfRk9SIiB2YWx1ZT0ibm9uZSIgLz4KLSAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJSRVFVSVJFRF9UQUdTIiB2YWx1ZT0iIiAvPgotICAgICAgICAgICAgPC92YWx1ZT4KLSAgICAgICAgICA8L29wdGlvbj4KLSAgICAgICAgICA8b3B0aW9uIG5hbWU9IklOTkVSX0NMQVNTX09QVElPTlMiPgotICAgICAgICAgICAgPHZhbHVlPgotICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9IkFDQ0VTU19KQVZBRE9DX1JFUVVJUkVEX0ZPUiIgdmFsdWU9Im5vbmUiIC8+Ci0gICAgICAgICAgICAgIDxvcHRpb24gbmFtZT0iUkVRVUlSRURfVEFHUyIgdmFsdWU9IiIgLz4KLSAgICAgICAgICAgIDwvdmFsdWU+Ci0gICAgICAgICAgPC9vcHRpb24+Ci0gICAgICAgICAgPG9wdGlvbiBuYW1lPSJNRVRIT0RfT1BUSU9OUyI+Ci0gICAgICAgICAgICA8dmFsdWU+Ci0gICAgICAgICAgICAgIDxvcHRpb24gbmFtZT0iQUNDRVNTX0pBVkFET0NfUkVRVUlSRURfRk9SIiB2YWx1ZT0ibm9uZSIgLz4KLSAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJSRVFVSVJFRF9UQUdTIiB2YWx1ZT0iQHJldHVybkBwYXJhbUB0aHJvd3Mgb3IgQGV4Y2VwdGlvbiIgLz4KLSAgICAgICAgICAgIDwvdmFsdWU+Ci0gICAgICAgICAgPC9vcHRpb24+Ci0gICAgICAgICAgPG9wdGlvbiBuYW1lPSJGSUVMRF9PUFRJT05TIj4KLSAgICAgICAgICAgIDx2YWx1ZT4KLSAgICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJBQ0NFU1NfSkFWQURPQ19SRVFVSVJFRF9GT1IiIHZhbHVlPSJub25lIiAvPgotICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9IlJFUVVJUkVEX1RBR1MiIHZhbHVlPSIiIC8+Ci0gICAgICAgICAgICA8L3ZhbHVlPgotICAgICAgICAgIDwvb3B0aW9uPgotICAgICAgICAgIDxvcHRpb24gbmFtZT0iSUdOT1JFX0RFUFJFQ0FURUQiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICAgICAgICA8b3B0aW9uIG5hbWU9IklHTk9SRV9KQVZBRE9DX1BFUklPRCIgdmFsdWU9InRydWUiIC8+Ci0gICAgICAgICAgPG9wdGlvbiBuYW1lPSJteUFkZGl0aW9uYWxKYXZhZG9jVGFncyIgdmFsdWU9IiIgLz4KLSAgICAgICAgPC9pbnNwZWN0aW9uX3Rvb2w+Ci0gICAgICAgIDxpbnNwZWN0aW9uX3Rvb2wgY2xhc3M9IkphdmFMYW5nSW1wb3J0IiBlbmFibGVkPSJ0cnVlIiBsZXZlbD0iV0FSTklORyIgZW5hYmxlZF9ieV9kZWZhdWx0PSJ0cnVlIiAvPgotICAgICAgICA8aW5zcGVjdGlvbl90b29sIGNsYXNzPSJPbkRlbWFuZEltcG9ydCIgZW5hYmxlZD0idHJ1ZSIgbGV2ZWw9IldBUk5JTkciIGVuYWJsZWRfYnlfZGVmYXVsdD0idHJ1ZSIgLz4KLSAgICAgICAgPGluc3BlY3Rpb25fdG9vbCBjbGFzcz0iUmVkdW5kYW50SW1wb3J0IiBlbmFibGVkPSJ0cnVlIiBsZXZlbD0iV0FSTklORyIgZW5hYmxlZF9ieV9kZWZhdWx0PSJ0cnVlIiAvPgotICAgICAgICA8aW5zcGVjdGlvbl90b29sIGNsYXNzPSJTYW1lUGFja2FnZUltcG9ydCIgZW5hYmxlZD0idHJ1ZSIgbGV2ZWw9IldBUk5JTkciIGVuYWJsZWRfYnlfZGVmYXVsdD0idHJ1ZSIgLz4KLSAgICAgICAgPGluc3BlY3Rpb25fdG9vbCBjbGFzcz0iVW51c2VkSW1wb3J0IiBlbmFibGVkPSJ0cnVlIiBsZXZlbD0iV0FSTklORyIgZW5hYmxlZF9ieV9kZWZhdWx0PSJ0cnVlIiAvPgotICAgICAgPC9wcm9maWxlPgotICAgIDwvcHJvZmlsZXM+Ci0gICAgPGxpc3Qgc2l6ZT0iNCI+Ci0gICAgICA8aXRlbSBpbmRleD0iMCIgY2xhc3M9ImphdmEubGFuZy5TdHJpbmciIGl0ZW12YWx1ZT0iV0FSTklORyIgLz4KLSAgICAgIDxpdGVtIGluZGV4PSIxIiBjbGFzcz0iamF2YS5sYW5nLlN0cmluZyIgaXRlbXZhbHVlPSJTRVJWRVIgUFJPQkxFTSIgLz4KLSAgICAgIDxpdGVtIGluZGV4PSIyIiBjbGFzcz0iamF2YS5sYW5nLlN0cmluZyIgaXRlbXZhbHVlPSJJTkZPIiAvPgotICAgICAgPGl0ZW0gaW5kZXg9IjMiIGNsYXNzPSJqYXZhLmxhbmcuU3RyaW5nIiBpdGVtdmFsdWU9IkVSUk9SIiAvPgotICAgIDwvbGlzdD4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iSmF2YWNTZXR0aW5ncyI+Ci0gICAgPG9wdGlvbiBuYW1lPSJERUJVR0dJTkdfSU5GTyIgdmFsdWU9InRydWUiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJHRU5FUkFURV9OT19XQVJOSU5HUyIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iREVQUkVDQVRJT04iIHZhbHVlPSJ0cnVlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iQURESVRJT05BTF9PUFRJT05TX1NUUklORyIgdmFsdWU9IiIgLz4KLSAgICA8b3B0aW9uIG5hbWU9Ik1BWElNVU1fSEVBUF9TSVpFIiB2YWx1ZT0iMTI4IiAvPgotICA8L2NvbXBvbmVudD4KLSAgPGNvbXBvbmVudCBuYW1lPSJKYXZhZG9jR2VuZXJhdGlvbk1hbmFnZXIiPgotICAgIDxvcHRpb24gbmFtZT0iT1VUUFVUX0RJUkVDVE9SWSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9Ik9QVElPTl9TQ09QRSIgdmFsdWU9InByb3RlY3RlZCIgLz4KLSAgICA8b3B0aW9uIG5hbWU9Ik9QVElPTl9ISUVSQVJDSFkiIHZhbHVlPSJ0cnVlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iT1BUSU9OX05BVklHQVRPUiIgdmFsdWU9InRydWUiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJPUFRJT05fSU5ERVgiIHZhbHVlPSJ0cnVlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iT1BUSU9OX1NFUEFSQVRFX0lOREVYIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9Ik9QVElPTl9ET0NVTUVOVF9UQUdfVVNFIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJPUFRJT05fRE9DVU1FTlRfVEFHX0FVVEhPUiIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iT1BUSU9OX0RPQ1VNRU5UX1RBR19WRVJTSU9OIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJPUFRJT05fRE9DVU1FTlRfVEFHX0RFUFJFQ0FURUQiIHZhbHVlPSJ0cnVlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iT1BUSU9OX0RFUFJFQ0FURURfTElTVCIgdmFsdWU9InRydWUiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJPVEhFUl9PUFRJT05TIiB2YWx1ZT0iIiAvPgotICAgIDxvcHRpb24gbmFtZT0iSEVBUF9TSVpFIiAvPgotICAgIDxvcHRpb24gbmFtZT0iTE9DQUxFIiAvPgotICAgIDxvcHRpb24gbmFtZT0iT1BFTl9JTl9CUk9XU0VSIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iSmlrZXNTZXR0aW5ncyI+Ci0gICAgPG9wdGlvbiBuYW1lPSJKSUtFU19QQVRIIiB2YWx1ZT0iIiAvPgotICAgIDxvcHRpb24gbmFtZT0iREVCVUdHSU5HX0lORk8iIHZhbHVlPSJ0cnVlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iREVQUkVDQVRJT04iIHZhbHVlPSJ0cnVlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iR0VORVJBVEVfTk9fV0FSTklOR1MiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IklTX0VNQUNTX0VSUk9SU19NT0RFIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkFERElUSU9OQUxfT1BUSU9OU19TVFJJTkciIHZhbHVlPSIiIC8+Ci0gIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9IkxvZ0NvbnNvbGVQcmVmZXJlbmNlcyI+Ci0gICAgPG9wdGlvbiBuYW1lPSJGSUxURVJfRVJST1JTIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJGSUxURVJfV0FSTklOR1MiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkZJTFRFUl9JTkZPIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkNVU1RPTV9GSUxURVIiIC8+Ci0gIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9IlBhbGV0dGUyIj4KLSAgICA8Z3JvdXAgbmFtZT0iU3dpbmciPgotICAgICAgPGl0ZW0gY2xhc3M9ImNvbS5pbnRlbGxpai51aURlc2lnbmVyLkhTcGFjZXIiIHRvb2x0aXAtdGV4dD0iSG9yaXpvbnRhbCBTcGFjZXIiIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy9oc3BhY2VyLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0iZmFsc2UiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4KLSAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSIxIiBoc2l6ZS1wb2xpY3k9IjYiIGFuY2hvcj0iMCIgZmlsbD0iMSIgLz4KLSAgICAgIDwvaXRlbT4KLSAgICAgIDxpdGVtIGNsYXNzPSJjb20uaW50ZWxsaWoudWlEZXNpZ25lci5WU3BhY2VyIiB0b29sdGlwLXRleHQ9IlZlcnRpY2FsIFNwYWNlciIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3ZzcGFjZXIucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJmYWxzZSIgY2FuLWF0dGFjaC1sYWJlbD0iZmFsc2UiPgotICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjYiIGhzaXplLXBvbGljeT0iMSIgYW5jaG9yPSIwIiBmaWxsPSIyIiAvPgotICAgICAgPC9pdGVtPgotICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpQYW5lbCIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3BhbmVsLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0iZmFsc2UiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4KLSAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSIzIiBoc2l6ZS1wb2xpY3k9IjMiIGFuY2hvcj0iMCIgZmlsbD0iMyIgLz4KLSAgICAgIDwvaXRlbT4KLSAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KU2Nyb2xsUGFuZSIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3Njcm9sbFBhbmUucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJmYWxzZSIgY2FuLWF0dGFjaC1sYWJlbD0idHJ1ZSI+Ci0gICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iNyIgaHNpemUtcG9saWN5PSI3IiBhbmNob3I9IjAiIGZpbGw9IjMiIC8+Ci0gICAgICA8L2l0ZW0+Ci0gICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSkJ1dHRvbiIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL2J1dHRvbi5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4KLSAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSIwIiBoc2l6ZS1wb2xpY3k9IjMiIGFuY2hvcj0iMCIgZmlsbD0iMSIgLz4KLSAgICAgICAgPGluaXRpYWwtdmFsdWVzPgotICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0IiB2YWx1ZT0iQnV0dG9uIiAvPgotICAgICAgICA8L2luaXRpYWwtdmFsdWVzPgotICAgICAgPC9pdGVtPgotICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpSYWRpb0J1dHRvbiIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3JhZGlvQnV0dG9uLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0idHJ1ZSIgY2FuLWF0dGFjaC1sYWJlbD0iZmFsc2UiPgotICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjAiIGhzaXplLXBvbGljeT0iMyIgYW5jaG9yPSI4IiBmaWxsPSIwIiAvPgotICAgICAgICA8aW5pdGlhbC12YWx1ZXM+Ci0gICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiIHZhbHVlPSJSYWRpb0J1dHRvbiIgLz4KLSAgICAgICAgPC9pbml0aWFsLXZhbHVlcz4KLSAgICAgIDwvaXRlbT4KLSAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KQ2hlY2tCb3giIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy9jaGVja0JveC5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4KLSAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSIwIiBoc2l6ZS1wb2xpY3k9IjMiIGFuY2hvcj0iOCIgZmlsbD0iMCIgLz4KLSAgICAgICAgPGluaXRpYWwtdmFsdWVzPgotICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0IiB2YWx1ZT0iQ2hlY2tCb3giIC8+Ci0gICAgICAgIDwvaW5pdGlhbC12YWx1ZXM+Ci0gICAgICA8L2l0ZW0+Ci0gICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSkxhYmVsIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvbGFiZWwucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJmYWxzZSIgY2FuLWF0dGFjaC1sYWJlbD0iZmFsc2UiPgotICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjAiIGhzaXplLXBvbGljeT0iMCIgYW5jaG9yPSI4IiBmaWxsPSIwIiAvPgotICAgICAgICA8aW5pdGlhbC12YWx1ZXM+Ci0gICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiIHZhbHVlPSJMYWJlbCIgLz4KLSAgICAgICAgPC9pbml0aWFsLXZhbHVlcz4KLSAgICAgIDwvaXRlbT4KLSAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KVGV4dEZpZWxkIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvdGV4dEZpZWxkLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0idHJ1ZSIgY2FuLWF0dGFjaC1sYWJlbD0idHJ1ZSI+Ci0gICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iMCIgaHNpemUtcG9saWN5PSI2IiBhbmNob3I9IjgiIGZpbGw9IjEiPgotICAgICAgICAgIDxwcmVmZXJyZWQtc2l6ZSB3aWR0aD0iMTUwIiBoZWlnaHQ9Ii0xIiAvPgotICAgICAgICA8L2RlZmF1bHQtY29uc3RyYWludHM+Ci0gICAgICA8L2l0ZW0+Ci0gICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSlBhc3N3b3JkRmllbGQiIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy9wYXNzd29yZEZpZWxkLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0idHJ1ZSIgY2FuLWF0dGFjaC1sYWJlbD0idHJ1ZSI+Ci0gICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iMCIgaHNpemUtcG9saWN5PSI2IiBhbmNob3I9IjgiIGZpbGw9IjEiPgotICAgICAgICAgIDxwcmVmZXJyZWQtc2l6ZSB3aWR0aD0iMTUwIiBoZWlnaHQ9Ii0xIiAvPgotICAgICAgICA8L2RlZmF1bHQtY29uc3RyYWludHM+Ci0gICAgICA8L2l0ZW0+Ci0gICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSkZvcm1hdHRlZFRleHRGaWVsZCIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL2Zvcm1hdHRlZFRleHRGaWVsZC5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9InRydWUiPgotICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjAiIGhzaXplLXBvbGljeT0iNiIgYW5jaG9yPSI4IiBmaWxsPSIxIj4KLSAgICAgICAgICA8cHJlZmVycmVkLXNpemUgd2lkdGg9IjE1MCIgaGVpZ2h0PSItMSIgLz4KLSAgICAgICAgPC9kZWZhdWx0LWNvbnN0cmFpbnRzPgotICAgICAgPC9pdGVtPgotICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpUZXh0QXJlYSIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3RleHRBcmVhLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0idHJ1ZSIgY2FuLWF0dGFjaC1sYWJlbD0idHJ1ZSI+Ci0gICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iNiIgaHNpemUtcG9saWN5PSI2IiBhbmNob3I9IjAiIGZpbGw9IjMiPgotICAgICAgICAgIDxwcmVmZXJyZWQtc2l6ZSB3aWR0aD0iMTUwIiBoZWlnaHQ9IjUwIiAvPgotICAgICAgICA8L2RlZmF1bHQtY29uc3RyYWludHM+Ci0gICAgICA8L2l0ZW0+Ci0gICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSlRleHRQYW5lIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvdGV4dFBhbmUucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJ0cnVlIiBjYW4tYXR0YWNoLWxhYmVsPSJ0cnVlIj4KLSAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSI2IiBoc2l6ZS1wb2xpY3k9IjYiIGFuY2hvcj0iMCIgZmlsbD0iMyI+Ci0gICAgICAgICAgPHByZWZlcnJlZC1zaXplIHdpZHRoPSIxNTAiIGhlaWdodD0iNTAiIC8+Ci0gICAgICAgIDwvZGVmYXVsdC1jb25zdHJhaW50cz4KLSAgICAgIDwvaXRlbT4KLSAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KRWRpdG9yUGFuZSIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL2VkaXRvclBhbmUucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJ0cnVlIiBjYW4tYXR0YWNoLWxhYmVsPSJ0cnVlIj4KLSAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSI2IiBoc2l6ZS1wb2xpY3k9IjYiIGFuY2hvcj0iMCIgZmlsbD0iMyI+Ci0gICAgICAgICAgPHByZWZlcnJlZC1zaXplIHdpZHRoPSIxNTAiIGhlaWdodD0iNTAiIC8+Ci0gICAgICAgIDwvZGVmYXVsdC1jb25zdHJhaW50cz4KLSAgICAgIDwvaXRlbT4KLSAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KQ29tYm9Cb3giIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy9jb21ib0JveC5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9InRydWUiPgotICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjAiIGhzaXplLXBvbGljeT0iMiIgYW5jaG9yPSI4IiBmaWxsPSIxIiAvPgotICAgICAgPC9pdGVtPgotICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpUYWJsZSIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3RhYmxlLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0idHJ1ZSIgY2FuLWF0dGFjaC1sYWJlbD0iZmFsc2UiPgotICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjYiIGhzaXplLXBvbGljeT0iNiIgYW5jaG9yPSIwIiBmaWxsPSIzIj4KLSAgICAgICAgICA8cHJlZmVycmVkLXNpemUgd2lkdGg9IjE1MCIgaGVpZ2h0PSI1MCIgLz4KLSAgICAgICAgPC9kZWZhdWx0LWNvbnN0cmFpbnRzPgotICAgICAgPC9pdGVtPgotICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpMaXN0IiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvbGlzdC5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4KLSAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSI2IiBoc2l6ZS1wb2xpY3k9IjIiIGFuY2hvcj0iMCIgZmlsbD0iMyI+Ci0gICAgICAgICAgPHByZWZlcnJlZC1zaXplIHdpZHRoPSIxNTAiIGhlaWdodD0iNTAiIC8+Ci0gICAgICAgIDwvZGVmYXVsdC1jb25zdHJhaW50cz4KLSAgICAgIDwvaXRlbT4KLSAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KVHJlZSIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3RyZWUucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJ0cnVlIiBjYW4tYXR0YWNoLWxhYmVsPSJmYWxzZSI+Ci0gICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iNiIgaHNpemUtcG9saWN5PSI2IiBhbmNob3I9IjAiIGZpbGw9IjMiPgotICAgICAgICAgIDxwcmVmZXJyZWQtc2l6ZSB3aWR0aD0iMTUwIiBoZWlnaHQ9IjUwIiAvPgotICAgICAgICA8L2RlZmF1bHQtY29uc3RyYWludHM+Ci0gICAgICA8L2l0ZW0+Ci0gICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSlRhYmJlZFBhbmUiIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy90YWJiZWRQYW5lLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0idHJ1ZSIgY2FuLWF0dGFjaC1sYWJlbD0iZmFsc2UiPgotICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjMiIGhzaXplLXBvbGljeT0iMyIgYW5jaG9yPSIwIiBmaWxsPSIzIj4KLSAgICAgICAgICA8cHJlZmVycmVkLXNpemUgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIC8+Ci0gICAgICAgIDwvZGVmYXVsdC1jb25zdHJhaW50cz4KLSAgICAgIDwvaXRlbT4KLSAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KU3BsaXRQYW5lIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvc3BsaXRQYW5lLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0iZmFsc2UiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4KLSAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSIzIiBoc2l6ZS1wb2xpY3k9IjMiIGFuY2hvcj0iMCIgZmlsbD0iMyI+Ci0gICAgICAgICAgPHByZWZlcnJlZC1zaXplIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiAvPgotICAgICAgICA8L2RlZmF1bHQtY29uc3RyYWludHM+Ci0gICAgICA8L2l0ZW0+Ci0gICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSlNwaW5uZXIiIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy9zcGlubmVyLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0idHJ1ZSIgY2FuLWF0dGFjaC1sYWJlbD0idHJ1ZSI+Ci0gICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iMCIgaHNpemUtcG9saWN5PSI2IiBhbmNob3I9IjgiIGZpbGw9IjEiIC8+Ci0gICAgICA8L2l0ZW0+Ci0gICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSlNsaWRlciIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3NsaWRlci5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4KLSAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSIwIiBoc2l6ZS1wb2xpY3k9IjYiIGFuY2hvcj0iOCIgZmlsbD0iMSIgLz4KLSAgICAgIDwvaXRlbT4KLSAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KU2VwYXJhdG9yIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvc2VwYXJhdG9yLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0iZmFsc2UiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4KLSAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSI2IiBoc2l6ZS1wb2xpY3k9IjYiIGFuY2hvcj0iMCIgZmlsbD0iMyIgLz4KLSAgICAgIDwvaXRlbT4KLSAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KUHJvZ3Jlc3NCYXIiIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy9wcm9ncmVzc2Jhci5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4KLSAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSIwIiBoc2l6ZS1wb2xpY3k9IjYiIGFuY2hvcj0iMCIgZmlsbD0iMSIgLz4KLSAgICAgIDwvaXRlbT4KLSAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KVG9vbEJhciIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3Rvb2xiYXIucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJmYWxzZSIgY2FuLWF0dGFjaC1sYWJlbD0iZmFsc2UiPgotICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjAiIGhzaXplLXBvbGljeT0iNiIgYW5jaG9yPSIwIiBmaWxsPSIxIj4KLSAgICAgICAgICA8cHJlZmVycmVkLXNpemUgd2lkdGg9Ii0xIiBoZWlnaHQ9IjIwIiAvPgotICAgICAgICA8L2RlZmF1bHQtY29uc3RyYWludHM+Ci0gICAgICA8L2l0ZW0+Ci0gICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSlRvb2xCYXIkU2VwYXJhdG9yIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvdG9vbGJhclNlcGFyYXRvci5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9ImZhbHNlIiBjYW4tYXR0YWNoLWxhYmVsPSJmYWxzZSI+Ci0gICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iMCIgaHNpemUtcG9saWN5PSIwIiBhbmNob3I9IjAiIGZpbGw9IjEiIC8+Ci0gICAgICA8L2l0ZW0+Ci0gICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSlNjcm9sbEJhciIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3Njcm9sbGJhci5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4KLSAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSI2IiBoc2l6ZS1wb2xpY3k9IjAiIGFuY2hvcj0iMCIgZmlsbD0iMiIgLz4KLSAgICAgIDwvaXRlbT4KLSAgICA8L2dyb3VwPgotICA8L2NvbXBvbmVudD4KLSAgPGNvbXBvbmVudCBuYW1lPSJQZXJmb3JjZUNoYW5nZUJyb3dzZXJTZXR0aW5ncyI+Ci0gICAgPG9wdGlvbiBuYW1lPSJVU0VfQ0xJRU5UX0ZJTFRFUiIgdmFsdWU9InRydWUiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJDTElFTlQiIHZhbHVlPSIiIC8+Ci0gIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9IlByb2plY3REZXRhaWxzIj4KLSAgICA8b3B0aW9uIG5hbWU9InByb2plY3ROYW1lIiB2YWx1ZT0icHJlbG9hZCIgLz4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iUHJvamVjdEZpbGVWZXJzaW9uIiBjb252ZXJ0ZWQ9InRydWUiIC8+Ci0gIDxjb21wb25lbnQgbmFtZT0iUHJvamVjdEtleSI+Ci0gICAgPG9wdGlvbiBuYW1lPSJzdGF0ZSIgdmFsdWU9InByb2plY3Q6Ly8vVm9sdW1lcy9BbmRyb2lkL2RvbnV0L2ZyYW1ld29ya3MvYmFzZS90b29scy9wcmVsb2FkL3ByZWxvYWQuaXByIiAvPgotICA8L2NvbXBvbmVudD4KLSAgPGNvbXBvbmVudCBuYW1lPSJQcm9qZWN0TW9kdWxlTWFuYWdlciI+Ci0gICAgPG1vZHVsZXM+Ci0gICAgICA8bW9kdWxlIGZpbGV1cmw9ImZpbGU6Ly8kUFJPSkVDVF9ESVIkL3ByZWxvYWQuaW1sIiBmaWxlcGF0aD0iJFBST0pFQ1RfRElSJC9wcmVsb2FkLmltbCIgLz4KLSAgICA8L21vZHVsZXM+Ci0gIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9IlByb2plY3RSb290TWFuYWdlciIgdmVyc2lvbj0iMiIgbGFuZ3VhZ2VMZXZlbD0iSkRLXzFfNSIgYXNzZXJ0LWtleXdvcmQ9InRydWUiIGpkay0xNT0idHJ1ZSIgcHJvamVjdC1qZGstbmFtZT0iMS41IiBwcm9qZWN0LWpkay10eXBlPSJKYXZhU0RLIj4KLSAgICA8b3V0cHV0IHVybD0iZmlsZTovLy90bXAvcHJlbG9hZCIgLz4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iUm1pY1NldHRpbmdzIj4KLSAgICA8b3B0aW9uIG5hbWU9IklTX0VBTkFCTEVEIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJERUJVR0dJTkdfSU5GTyIgdmFsdWU9InRydWUiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJHRU5FUkFURV9OT19XQVJOSU5HUyIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iR0VORVJBVEVfSUlPUF9TVFVCUyIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iQURESVRJT05BTF9PUFRJT05TX1NUUklORyIgdmFsdWU9IiIgLz4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iU3RhcnRlYW1Db25maWd1cmF0aW9uIj4KLSAgICA8b3B0aW9uIG5hbWU9IlNFUlZFUiIgdmFsdWU9IiIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IlBPUlQiIHZhbHVlPSI0OTIwMSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IlVTRVIiIHZhbHVlPSIiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJQQVNTV09SRCIgdmFsdWU9IiIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IlBST0pFQ1QiIHZhbHVlPSIiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJWSUVXIiB2YWx1ZT0iIiAvPgotICAgIDxvcHRpb24gbmFtZT0iQUxURVJOQVRJVkVfV09SS0lOR19QQVRIIiB2YWx1ZT0iIiAvPgotICAgIDxvcHRpb24gbmFtZT0iTE9DS19PTl9DSEVDS09VVCIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iVU5MT0NLX09OX0NIRUNLSU4iIHZhbHVlPSJmYWxzZSIgLz4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iU3RydXRzIEFzc2lzdGFudCI+Ci0gICAgPG9wdGlvbiBuYW1lPSJzaG93SW5wdXRzIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9InJlc291cmNlcyI+Ci0gICAgICA8dmFsdWU+Ci0gICAgICAgIDxvcHRpb24gbmFtZT0ic3RydXRzUGF0aCIgLz4KLSAgICAgICAgPG9wdGlvbiBuYW1lPSJzdHJ1dHNIZWxwIiAvPgotICAgICAgPC92YWx1ZT4KLSAgICA8L29wdGlvbj4KLSAgICA8b3B0aW9uIG5hbWU9InNlbGVjdGVkVGFnbGlicyIgLz4KLSAgICA8b3B0aW9uIG5hbWU9InNlbGVjdGVkVGFnbGlicyIgLz4KLSAgICA8b3B0aW9uIG5hbWU9Im15U3RydXRzVmFsaWRhdGlvbkVuYWJsZWQiIHZhbHVlPSJ0cnVlIiAvPgotICAgIDxvcHRpb24gbmFtZT0ibXlUaWxlc1ZhbGlkYXRpb25FbmFibGVkIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9Im15VmFsaWRhdG9yVmFsaWRhdGlvbkVuYWJsZWQiIHZhbHVlPSJ0cnVlIiAvPgotICAgIDxvcHRpb24gbmFtZT0ibXlSZXBvcnRFcnJvcnNBc1dhcm5pbmdzIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iU3ZuQnJhbmNoQ29uZmlndXJhdGlvbk1hbmFnZXIiPgotICAgIDxvcHRpb24gbmFtZT0ibXlTdXBwb3J0c1VzZXJJbmZvRmlsdGVyIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iU3ZuQ2hhbmdlc0Jyb3dzZXJTZXR0aW5ncyI+Ci0gICAgPG9wdGlvbiBuYW1lPSJVU0VfQVVUSE9SX0ZJRUxEIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkFVVEhPUiIgdmFsdWU9IiIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkxPQ0FUSU9OIiB2YWx1ZT0iIiAvPgotICAgIDxvcHRpb24gbmFtZT0iVVNFX1BST0pFQ1RfU0VUVElOR1MiIHZhbHVlPSJ0cnVlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iVVNFX0FMVEVSTkFURV9MT0NBVElPTiIgdmFsdWU9ImZhbHNlIiAvPgotICA8L2NvbXBvbmVudD4KLSAgPGNvbXBvbmVudCBuYW1lPSJWQ1MuRmlsZVZpZXdDb25maWd1cmF0aW9uIj4KLSAgICA8b3B0aW9uIG5hbWU9IlNFTEVDVEVEX1NUQVRVU0VTIiB2YWx1ZT0iREVGQVVMVCIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IlNFTEVDVEVEX0NPTFVNTlMiIHZhbHVlPSJERUZBVUxUIiAvPgotICAgIDxvcHRpb24gbmFtZT0iU0hPV19GSUxURVJTIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkNVU1RPTUlaRV9WSUVXIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IlNIT1dfRklMRV9ISVNUT1JZX0FTX1RSRUUiIHZhbHVlPSJ0cnVlIiAvPgotICA8L2NvbXBvbmVudD4KLSAgPGNvbXBvbmVudCBuYW1lPSJWY3NEaXJlY3RvcnlNYXBwaW5ncyI+Ci0gICAgPG1hcHBpbmcgZGlyZWN0b3J5PSIiIHZjcz0iUGVyZm9yY2UiIC8+Ci0gICAgPG1hcHBpbmcgZGlyZWN0b3J5PSIvVm9sdW1lcy9BbmRyb2lkL2RvbnV0L2ZyYW1ld29ya3MvYmFzZSIgdmNzPSJHaXQiIC8+Ci0gIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9IlZzc0NvbmZpZ3VyYXRpb24iPgotICAgIDxvcHRpb24gbmFtZT0iQ0xJRU5UX1BBVEgiIHZhbHVlPSIiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJTUkNTQUZFSU5JX1BBVEgiIHZhbHVlPSIiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJVU0VSX05BTUUiIHZhbHVlPSIiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJQV0QiIHZhbHVlPSIiIC8+Ci0gICAgPG9wdGlvbiBuYW1lPSJWU1NfSVNfSU5JVElBTElaRUQiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICA8Q2hlY2tvdXRPcHRpb25zPgotICAgICAgPG9wdGlvbiBuYW1lPSJDT01NRU5UIiB2YWx1ZT0iIiAvPgotICAgICAgPG9wdGlvbiBuYW1lPSJET19OT1RfR0VUX0xBVEVTVF9WRVJTSU9OIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgICA8b3B0aW9uIG5hbWU9IlJFUExBQ0VfV1JJVEFCTEUiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICAgIDxvcHRpb24gbmFtZT0iUkVDVVJTSVZFIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgPC9DaGVja291dE9wdGlvbnM+Ci0gICAgPENoZWNraW5PcHRpb25zPgotICAgICAgPG9wdGlvbiBuYW1lPSJDT01NRU5UIiB2YWx1ZT0iIiAvPgotICAgICAgPG9wdGlvbiBuYW1lPSJLRUVQX0NIRUNLRURfT1VUIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgICA8b3B0aW9uIG5hbWU9IlJFQ1VSU0lWRSIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDwvQ2hlY2tpbk9wdGlvbnM+Ci0gICAgPEFkZE9wdGlvbnM+Ci0gICAgICA8b3B0aW9uIG5hbWU9IlNUT1JFX09OTFlfTEFURVNUX1ZFUlNJT04iIHZhbHVlPSJmYWxzZSIgLz4KLSAgICAgIDxvcHRpb24gbmFtZT0iQ0hFQ0tfT1VUX0lNTUVESUFURUxZIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgICA8b3B0aW9uIG5hbWU9IkZJTEVfVFlQRSIgdmFsdWU9IjAiIC8+Ci0gICAgPC9BZGRPcHRpb25zPgotICAgIDxVbmRvY2hlY2tvdXRPcHRpb25zPgotICAgICAgPG9wdGlvbiBuYW1lPSJNQUtFX1dSSVRBQkxFIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgICA8b3B0aW9uIG5hbWU9IlJFUExBQ0VfTE9DQUxfQ09QWSIgdmFsdWU9IjAiIC8+Ci0gICAgICA8b3B0aW9uIG5hbWU9IlJFQ1VSU0lWRSIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDwvVW5kb2NoZWNrb3V0T3B0aW9ucz4KLSAgICA8R2V0T3B0aW9ucz4KLSAgICAgIDxvcHRpb24gbmFtZT0iUkVQTEFDRV9XUklUQUJMRSIgdmFsdWU9IjAiIC8+Ci0gICAgICA8b3B0aW9uIG5hbWU9Ik1BS0VfV1JJVEFCTEUiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICAgIDxvcHRpb24gbmFtZT0iQU5TV0VSX05FR0FUSVZFTFkiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICAgIDxvcHRpb24gbmFtZT0iQU5TV0VSX1BPU0lUSVZFTFkiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICAgIDxvcHRpb24gbmFtZT0iUkVDVVJTSVZFIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gICAgICA8b3B0aW9uIG5hbWU9IlZFUlNJT04iIC8+Ci0gICAgPC9HZXRPcHRpb25zPgotICAgIDxWc3NDb25maWd1cmFibGVFeGNsdWRlZEZpbGVzVGFnIC8+Ci0gIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9ImFudFdvcmtzcGFjZUNvbmZpZ3VyYXRpb24iPgotICAgIDxvcHRpb24gbmFtZT0iSVNfQVVUT1NDUk9MTF9UT19TT1VSQ0UiIHZhbHVlPSJmYWxzZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkZJTFRFUl9UQVJHRVRTIiB2YWx1ZT0iZmFsc2UiIC8+Ci0gIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9ImNvbS5pbnRlbGxpai5pZGUudXRpbC5zY29wZUNob29zZXIuU2NvcGVDaG9vc2VyQ29uZmlndXJhYmxlIiBwcm9wb3J0aW9ucz0iIiB2ZXJzaW9uPSIxIj4KLSAgICA8b3B0aW9uIG5hbWU9Im15TGFzdEVkaXRlZENvbmZpZ3VyYWJsZSIgLz4KLSAgPC9jb21wb25lbnQ+Ci0gIDxjb21wb25lbnQgbmFtZT0iY29tLmludGVsbGlqLmpzZi5Vc2VyRGVmaW5lZEZhY2VzQ29uZmlncyI+Ci0gICAgPG9wdGlvbiBuYW1lPSJVU0VSX0RFRklORURfQ09ORklHUyI+Ci0gICAgICA8dmFsdWU+Ci0gICAgICAgIDxsaXN0IHNpemU9IjAiIC8+Ci0gICAgICA8L3ZhbHVlPgotICAgIDwvb3B0aW9uPgotICA8L2NvbXBvbmVudD4KLSAgPGNvbXBvbmVudCBuYW1lPSJjb20uaW50ZWxsaWoub3BlbmFwaS5yb290cy51aS5jb25maWd1cmF0aW9uLnByb2plY3RSb290LlByb2plY3RSb290TWFzdGVyRGV0YWlsc0NvbmZpZ3VyYWJsZSIgcHJvcG9ydGlvbnM9IiIgdmVyc2lvbj0iMSI+Ci0gICAgPG9wdGlvbiBuYW1lPSJteVBsYWluTW9kZSIgdmFsdWU9ImZhbHNlIiAvPgotICAgIDxvcHRpb24gbmFtZT0ibXlMYXN0RWRpdGVkQ29uZmlndXJhYmxlIiAvPgotICA8L2NvbXBvbmVudD4KLSAgPGNvbXBvbmVudCBuYW1lPSJjb20uaW50ZWxsaWoucHJvZmlsZS51aS5FcnJvck9wdGlvbnNDb25maWd1cmFibGUiIHByb3BvcnRpb25zPSIiIHZlcnNpb249IjEiPgotICAgIDxvcHRpb24gbmFtZT0ibXlMYXN0RWRpdGVkQ29uZmlndXJhYmxlIiAvPgotICA8L2NvbXBvbmVudD4KLSAgPGNvbXBvbmVudCBuYW1lPSJ1aWRlc2lnbmVyLWNvbmZpZ3VyYXRpb24iPgotICAgIDxvcHRpb24gbmFtZT0iSU5TVFJVTUVOVF9DTEFTU0VTIiB2YWx1ZT0idHJ1ZSIgLz4KLSAgICA8b3B0aW9uIG5hbWU9IkNPUFlfRk9STVNfUlVOVElNRV9UT19PVVRQVVQiIHZhbHVlPSJ0cnVlIiAvPgotICAgIDxvcHRpb24gbmFtZT0iREVGQVVMVF9MQVlPVVRfTUFOQUdFUiIgdmFsdWU9IkdyaWRMYXlvdXRNYW5hZ2VyIiAvPgotICA8L2NvbXBvbmVudD4KLTwvcHJvamVjdD4KLQpkaWZmIC0tZ2l0IGEvdG9vbHMvcHJlbG9hZC9zb3J0dGFibGUuanMgYi90b29scy9wcmVsb2FkL3NvcnR0YWJsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjViY2NiMi4uMDAwMDAwMAotLS0gYS90b29scy9wcmVsb2FkL3NvcnR0YWJsZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ5MyArMCwwIEBACi0vKgotICBTb3J0VGFibGUKLSAgdmVyc2lvbiAyCi0gIDd0aCBBcHJpbCAyMDA3Ci0gIFN0dWFydCBMYW5ncmlkZ2UsIGh0dHA6Ly93d3cua3J5b2dlbml4Lm9yZy9jb2RlL2Jyb3dzZXIvc29ydHRhYmxlLwotICAKLSAgSW5zdHJ1Y3Rpb25zOgotICBEb3dubG9hZCB0aGlzIGZpbGUKLSAgQWRkIDxzY3JpcHQgc3JjPSJzb3J0dGFibGUuanMiPjwvc2NyaXB0PiB0byB5b3VyIEhUTUwKLSAgQWRkIGNsYXNzPSJzb3J0YWJsZSIgdG8gYW55IHRhYmxlIHlvdSdkIGxpa2UgdG8gbWFrZSBzb3J0YWJsZQotICBDbGljayBvbiB0aGUgaGVhZGVycyB0byBzb3J0Ci0gIAotICBUaGFua3MgdG8gbWFueSwgbWFueSBwZW9wbGUgZm9yIGNvbnRyaWJ1dGlvbnMgYW5kIHN1Z2dlc3Rpb25zLgotICBMaWNlbmNlZCBhcyBYMTE6IGh0dHA6Ly93d3cua3J5b2dlbml4Lm9yZy9jb2RlL2Jyb3dzZXIvbGljZW5jZS5odG1sCi0gIFRoaXMgYmFzaWNhbGx5IG1lYW5zOiBkbyB3aGF0IHlvdSB3YW50IHdpdGggaXQuCi0qLwotCi0gCi12YXIgc3RJc0lFID0gLypAY2Nfb24hQCovZmFsc2U7Ci0KLXNvcnR0YWJsZSA9IHsKLSAgaW5pdDogZnVuY3Rpb24oKSB7Ci0gICAgLy8gcXVpdCBpZiB0aGlzIGZ1bmN0aW9uIGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkCi0gICAgaWYgKGFyZ3VtZW50cy5jYWxsZWUuZG9uZSkgcmV0dXJuOwotICAgIC8vIGZsYWcgdGhpcyBmdW5jdGlvbiBzbyB3ZSBkb24ndCBkbyB0aGUgc2FtZSB0aGluZyB0d2ljZQotICAgIGFyZ3VtZW50cy5jYWxsZWUuZG9uZSA9IHRydWU7Ci0gICAgLy8ga2lsbCB0aGUgdGltZXIKLSAgICBpZiAoX3RpbWVyKSBjbGVhckludGVydmFsKF90aW1lcik7Ci0gICAgCi0gICAgaWYgKCFkb2N1bWVudC5jcmVhdGVFbGVtZW50IHx8ICFkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSkgcmV0dXJuOwotICAgIAotICAgIHNvcnR0YWJsZS5EQVRFX1JFID0gL14oXGRcZD8pW1wvXC4tXShcZFxkPylbXC9cLi1dKChcZFxkKT9cZFxkKSQvOwotICAgIAotICAgIGZvckVhY2goZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RhYmxlJyksIGZ1bmN0aW9uKHRhYmxlKSB7Ci0gICAgICBpZiAodGFibGUuY2xhc3NOYW1lLnNlYXJjaCgvXGJzb3J0YWJsZVxiLykgIT0gLTEpIHsKLSAgICAgICAgc29ydHRhYmxlLm1ha2VTb3J0YWJsZSh0YWJsZSk7Ci0gICAgICB9Ci0gICAgfSk7Ci0gICAgCi0gIH0sCi0gIAotICBtYWtlU29ydGFibGU6IGZ1bmN0aW9uKHRhYmxlKSB7Ci0gICAgaWYgKHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0aGVhZCcpLmxlbmd0aCA9PSAwKSB7Ci0gICAgICAvLyB0YWJsZSBkb2Vzbid0IGhhdmUgYSB0SGVhZC4gU2luY2UgaXQgc2hvdWxkIGhhdmUsIGNyZWF0ZSBvbmUgYW5kCi0gICAgICAvLyBwdXQgdGhlIGZpcnN0IHRhYmxlIHJvdyBpbiBpdC4KLSAgICAgIHRoZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RoZWFkJyk7Ci0gICAgICB0aGUuYXBwZW5kQ2hpbGQodGFibGUucm93c1swXSk7Ci0gICAgICB0YWJsZS5pbnNlcnRCZWZvcmUodGhlLHRhYmxlLmZpcnN0Q2hpbGQpOwotICAgIH0KLSAgICAvLyBTYWZhcmkgZG9lc24ndCBzdXBwb3J0IHRhYmxlLnRIZWFkLCBzaWdoCi0gICAgaWYgKHRhYmxlLnRIZWFkID09IG51bGwpIHRhYmxlLnRIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RoZWFkJylbMF07Ci0gICAgCi0gICAgaWYgKHRhYmxlLnRIZWFkLnJvd3MubGVuZ3RoICE9IDEpIHJldHVybjsgLy8gY2FuJ3QgY29wZSB3aXRoIHR3byBoZWFkZXIgcm93cwotICAgIAotICAgIC8vIFNvcnR0YWJsZSB2MSBwdXQgcm93cyB3aXRoIGEgY2xhc3Mgb2YgInNvcnRib3R0b20iIGF0IHRoZSBib3R0b20gKGFzCi0gICAgLy8gInRvdGFsIiByb3dzLCBmb3IgZXhhbXBsZSkuIFRoaXMgaXMgQiZSLCBzaW5jZSB3aGF0IHlvdSdyZSBzdXBwb3NlZAotICAgIC8vIHRvIGRvIGlzIHB1dCB0aGVtIGluIGEgdGZvb3QuIFNvLCBpZiB0aGVyZSBhcmUgc29ydGJvdHRvbSByb3dzLAotICAgIC8vIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgbW92ZSB0aGVtIHRvIHRmb290IChjcmVhdGluZyBpdCBpZiBuZWVkZWQpLgotICAgIHNvcnRib3R0b21yb3dzID0gW107Ci0gICAgZm9yICh2YXIgaT0wOyBpPHRhYmxlLnJvd3MubGVuZ3RoOyBpKyspIHsKLSAgICAgIGlmICh0YWJsZS5yb3dzW2ldLmNsYXNzTmFtZS5zZWFyY2goL1xic29ydGJvdHRvbVxiLykgIT0gLTEpIHsKLSAgICAgICAgc29ydGJvdHRvbXJvd3Nbc29ydGJvdHRvbXJvd3MubGVuZ3RoXSA9IHRhYmxlLnJvd3NbaV07Ci0gICAgICB9Ci0gICAgfQotICAgIGlmIChzb3J0Ym90dG9tcm93cykgewotICAgICAgaWYgKHRhYmxlLnRGb290ID09IG51bGwpIHsKLSAgICAgICAgLy8gdGFibGUgZG9lc24ndCBoYXZlIGEgdGZvb3QuIENyZWF0ZSBvbmUuCi0gICAgICAgIHRmbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Rmb290Jyk7Ci0gICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRmbyk7Ci0gICAgICB9Ci0gICAgICBmb3IgKHZhciBpPTA7IGk8c29ydGJvdHRvbXJvd3MubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgdGZvLmFwcGVuZENoaWxkKHNvcnRib3R0b21yb3dzW2ldKTsKLSAgICAgIH0KLSAgICAgIGRlbGV0ZSBzb3J0Ym90dG9tcm93czsKLSAgICB9Ci0gICAgCi0gICAgLy8gd29yayB0aHJvdWdoIGVhY2ggY29sdW1uIGFuZCBjYWxjdWxhdGUgaXRzIHR5cGUKLSAgICBoZWFkcm93ID0gdGFibGUudEhlYWQucm93c1swXS5jZWxsczsKLSAgICBmb3IgKHZhciBpPTA7IGk8aGVhZHJvdy5sZW5ndGg7IGkrKykgewotICAgICAgLy8gbWFudWFsbHkgb3ZlcnJpZGUgdGhlIHR5cGUgd2l0aCBhIHNvcnR0YWJsZV90eXBlIGF0dHJpYnV0ZQotICAgICAgaWYgKCFoZWFkcm93W2ldLmNsYXNzTmFtZS5tYXRjaCgvXGJzb3J0dGFibGVfbm9zb3J0XGIvKSkgeyAvLyBza2lwIHRoaXMgY29sCi0gICAgICAgIG10Y2ggPSBoZWFkcm93W2ldLmNsYXNzTmFtZS5tYXRjaCgvXGJzb3J0dGFibGVfKFthLXowLTldKylcYi8pOwotICAgICAgICBpZiAobXRjaCkgeyBvdmVycmlkZSA9IG10Y2hbMV07IH0KLQkgICAgICBpZiAobXRjaCAmJiB0eXBlb2Ygc29ydHRhYmxlWyJzb3J0XyIrb3ZlcnJpZGVdID09ICdmdW5jdGlvbicpIHsKLQkgICAgICAgIGhlYWRyb3dbaV0uc29ydHRhYmxlX3NvcnRmdW5jdGlvbiA9IHNvcnR0YWJsZVsic29ydF8iK292ZXJyaWRlXTsKLQkgICAgICB9IGVsc2UgewotCSAgICAgICAgaGVhZHJvd1tpXS5zb3J0dGFibGVfc29ydGZ1bmN0aW9uID0gc29ydHRhYmxlLmd1ZXNzVHlwZSh0YWJsZSxpKTsKLQkgICAgICB9Ci0JICAgICAgLy8gbWFrZSBpdCBjbGlja2FibGUgdG8gc29ydAotCSAgICAgIGhlYWRyb3dbaV0uc29ydHRhYmxlX2NvbHVtbmluZGV4ID0gaTsKLQkgICAgICBoZWFkcm93W2ldLnNvcnR0YWJsZV90Ym9keSA9IHRhYmxlLnRCb2RpZXNbMF07Ci0JICAgICAgZGVhbl9hZGRFdmVudChoZWFkcm93W2ldLCJjbGljayIsIGZ1bmN0aW9uKGUpIHsKLQotICAgICAgICAgIGlmICh0aGlzLmNsYXNzTmFtZS5zZWFyY2goL1xic29ydHRhYmxlX3NvcnRlZFxiLykgIT0gLTEpIHsKLSAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkgc29ydGVkIGJ5IHRoaXMgY29sdW1uLCBqdXN0IAotICAgICAgICAgICAgLy8gcmV2ZXJzZSB0aGUgdGFibGUsIHdoaWNoIGlzIHF1aWNrZXIKLSAgICAgICAgICAgIHNvcnR0YWJsZS5yZXZlcnNlKHRoaXMuc29ydHRhYmxlX3Rib2R5KTsKLSAgICAgICAgICAgIHRoaXMuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWUucmVwbGFjZSgnc29ydHRhYmxlX3NvcnRlZCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvcnR0YWJsZV9zb3J0ZWRfcmV2ZXJzZScpOwotICAgICAgICAgICAgdGhpcy5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc29ydHRhYmxlX3NvcnRmd2RpbmQnKSk7Ci0gICAgICAgICAgICBzb3J0cmV2aW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgICAgICAgICAgc29ydHJldmluZC5pZCA9ICJzb3J0dGFibGVfc29ydHJldmluZCI7Ci0gICAgICAgICAgICBzb3J0cmV2aW5kLmlubmVySFRNTCA9IHN0SXNJRSA/ICcmbmJzcDxmb250IGZhY2U9IndlYmRpbmdzIj41PC9mb250PicgOiAnJm5ic3A7JiN4MjVCNDsnOwotICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChzb3J0cmV2aW5kKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHRoaXMuY2xhc3NOYW1lLnNlYXJjaCgvXGJzb3J0dGFibGVfc29ydGVkX3JldmVyc2VcYi8pICE9IC0xKSB7Ci0gICAgICAgICAgICAvLyBpZiB3ZSdyZSBhbHJlYWR5IHNvcnRlZCBieSB0aGlzIGNvbHVtbiBpbiByZXZlcnNlLCBqdXN0IAotICAgICAgICAgICAgLy8gcmUtcmV2ZXJzZSB0aGUgdGFibGUsIHdoaWNoIGlzIHF1aWNrZXIKLSAgICAgICAgICAgIHNvcnR0YWJsZS5yZXZlcnNlKHRoaXMuc29ydHRhYmxlX3Rib2R5KTsKLSAgICAgICAgICAgIHRoaXMuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWUucmVwbGFjZSgnc29ydHRhYmxlX3NvcnRlZF9yZXZlcnNlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc29ydHRhYmxlX3NvcnRlZCcpOwotICAgICAgICAgICAgdGhpcy5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc29ydHRhYmxlX3NvcnRyZXZpbmQnKSk7Ci0gICAgICAgICAgICBzb3J0ZndkaW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgICAgICAgICAgc29ydGZ3ZGluZC5pZCA9ICJzb3J0dGFibGVfc29ydGZ3ZGluZCI7Ci0gICAgICAgICAgICBzb3J0ZndkaW5kLmlubmVySFRNTCA9IHN0SXNJRSA/ICcmbmJzcDxmb250IGZhY2U9IndlYmRpbmdzIj42PC9mb250PicgOiAnJm5ic3A7JiN4MjVCRTsnOwotICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChzb3J0ZndkaW5kKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICB9Ci0gICAgICAgICAgCi0gICAgICAgICAgLy8gcmVtb3ZlIHNvcnR0YWJsZV9zb3J0ZWQgY2xhc3NlcwotICAgICAgICAgIHRoZWFkcm93ID0gdGhpcy5wYXJlbnROb2RlOwotICAgICAgICAgIGZvckVhY2godGhlYWRyb3cuY2hpbGROb2RlcywgZnVuY3Rpb24oY2VsbCkgewotICAgICAgICAgICAgaWYgKGNlbGwubm9kZVR5cGUgPT0gMSkgeyAvLyBhbiBlbGVtZW50Ci0gICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gY2VsbC5jbGFzc05hbWUucmVwbGFjZSgnc29ydHRhYmxlX3NvcnRlZF9yZXZlcnNlJywnJyk7Ci0gICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gY2VsbC5jbGFzc05hbWUucmVwbGFjZSgnc29ydHRhYmxlX3NvcnRlZCcsJycpOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0pOwotICAgICAgICAgIHNvcnRmd2RpbmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc29ydHRhYmxlX3NvcnRmd2RpbmQnKTsKLSAgICAgICAgICBpZiAoc29ydGZ3ZGluZCkgeyBzb3J0ZndkaW5kLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc29ydGZ3ZGluZCk7IH0KLSAgICAgICAgICBzb3J0cmV2aW5kID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NvcnR0YWJsZV9zb3J0cmV2aW5kJyk7Ci0gICAgICAgICAgaWYgKHNvcnRyZXZpbmQpIHsgc29ydHJldmluZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNvcnRyZXZpbmQpOyB9Ci0gICAgICAgICAgCi0gICAgICAgICAgdGhpcy5jbGFzc05hbWUgKz0gJyBzb3J0dGFibGVfc29ydGVkJzsKLSAgICAgICAgICBzb3J0ZndkaW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwotICAgICAgICAgIHNvcnRmd2RpbmQuaWQgPSAic29ydHRhYmxlX3NvcnRmd2RpbmQiOwotICAgICAgICAgIHNvcnRmd2RpbmQuaW5uZXJIVE1MID0gc3RJc0lFID8gJyZuYnNwPGZvbnQgZmFjZT0id2ViZGluZ3MiPjY8L2ZvbnQ+JyA6ICcmbmJzcDsmI3gyNUJFOyc7Ci0gICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChzb3J0ZndkaW5kKTsKLQotCSAgICAgICAgLy8gYnVpbGQgYW4gYXJyYXkgdG8gc29ydC4gVGhpcyBpcyBhIFNjaHdhcnR6aWFuIHRyYW5zZm9ybSB0aGluZywKLQkgICAgICAgIC8vIGkuZS4sIHdlICJkZWNvcmF0ZSIgZWFjaCByb3cgd2l0aCB0aGUgYWN0dWFsIHNvcnQga2V5LAotCSAgICAgICAgLy8gc29ydCBiYXNlZCBvbiB0aGUgc29ydCBrZXlzLCBhbmQgdGhlbiBwdXQgdGhlIHJvd3MgYmFjayBpbiBvcmRlcgotCSAgICAgICAgLy8gd2hpY2ggaXMgYSBsb3QgZmFzdGVyIGJlY2F1c2UgeW91IG9ubHkgZG8gZ2V0SW5uZXJUZXh0IG9uY2UgcGVyIHJvdwotCSAgICAgICAgcm93X2FycmF5ID0gW107Ci0JICAgICAgICBjb2wgPSB0aGlzLnNvcnR0YWJsZV9jb2x1bW5pbmRleDsKLQkgICAgICAgIHJvd3MgPSB0aGlzLnNvcnR0YWJsZV90Ym9keS5yb3dzOwotCSAgICAgICAgZm9yICh2YXIgaj0wOyBqPHJvd3MubGVuZ3RoOyBqKyspIHsKLQkgICAgICAgICAgcm93X2FycmF5W3Jvd19hcnJheS5sZW5ndGhdID0gW3NvcnR0YWJsZS5nZXRJbm5lclRleHQocm93c1tqXS5jZWxsc1tjb2xdKSwgcm93c1tqXV07Ci0JICAgICAgICB9Ci0JICAgICAgICAvKiBJZiB5b3Ugd2FudCBhIHN0YWJsZSBzb3J0LCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lICovCi0JICAgICAgICAvL3NvcnR0YWJsZS5zaGFrZXJfc29ydChyb3dfYXJyYXksIHRoaXMuc29ydHRhYmxlX3NvcnRmdW5jdGlvbik7Ci0JICAgICAgICAvKiBhbmQgY29tbWVudCBvdXQgdGhpcyBvbmUgKi8KLQkgICAgICAgIHJvd19hcnJheS5zb3J0KHRoaXMuc29ydHRhYmxlX3NvcnRmdW5jdGlvbik7Ci0JICAgICAgICAKLQkgICAgICAgIHRiID0gdGhpcy5zb3J0dGFibGVfdGJvZHk7Ci0JICAgICAgICBmb3IgKHZhciBqPTA7IGo8cm93X2FycmF5Lmxlbmd0aDsgaisrKSB7Ci0JICAgICAgICAgIHRiLmFwcGVuZENoaWxkKHJvd19hcnJheVtqXVsxXSk7Ci0JICAgICAgICB9Ci0JICAgICAgICAKLQkgICAgICAgIGRlbGV0ZSByb3dfYXJyYXk7Ci0JICAgICAgfSk7Ci0JICAgIH0KLSAgICB9Ci0gIH0sCi0gIAotICBndWVzc1R5cGU6IGZ1bmN0aW9uKHRhYmxlLCBjb2x1bW4pIHsKLSAgICAvLyBndWVzcyB0aGUgdHlwZSBvZiBhIGNvbHVtbiBiYXNlZCBvbiBpdHMgZmlyc3Qgbm9uLWJsYW5rIHJvdwotICAgIHNvcnRmbiA9IHNvcnR0YWJsZS5zb3J0X2FscGhhOwotICAgIGZvciAodmFyIGk9MDsgaTx0YWJsZS50Qm9kaWVzWzBdLnJvd3MubGVuZ3RoOyBpKyspIHsKLSAgICAgIHRleHQgPSBzb3J0dGFibGUuZ2V0SW5uZXJUZXh0KHRhYmxlLnRCb2RpZXNbMF0ucm93c1tpXS5jZWxsc1tjb2x1bW5dKTsKLSAgICAgIGlmICh0ZXh0ICE9ICcnKSB7Ci0gICAgICAgIGlmICh0ZXh0Lm1hdGNoKC9eLT9boySkXT9bXGQsLl0rJT8kLykpIHsKLSAgICAgICAgICByZXR1cm4gc29ydHRhYmxlLnNvcnRfbnVtZXJpYzsKLSAgICAgICAgfQotICAgICAgICAvLyBjaGVjayBmb3IgYSBkYXRlOiBkZC9tbS95eXl5IG9yIGRkL21tL3l5IAotICAgICAgICAvLyBjYW4gaGF2ZSAvIG9yIC4gb3IgLSBhcyBzZXBhcmF0b3IKLSAgICAgICAgLy8gY2FuIGJlIG1tL2RkIGFzIHdlbGwKLSAgICAgICAgcG9zc2RhdGUgPSB0ZXh0Lm1hdGNoKHNvcnR0YWJsZS5EQVRFX1JFKQotICAgICAgICBpZiAocG9zc2RhdGUpIHsKLSAgICAgICAgICAvLyBsb29rcyBsaWtlIGEgZGF0ZQotICAgICAgICAgIGZpcnN0ID0gcGFyc2VJbnQocG9zc2RhdGVbMV0pOwotICAgICAgICAgIHNlY29uZCA9IHBhcnNlSW50KHBvc3NkYXRlWzJdKTsKLSAgICAgICAgICBpZiAoZmlyc3QgPiAxMikgewotICAgICAgICAgICAgLy8gZGVmaW5pdGVseSBkZC9tbQotICAgICAgICAgICAgcmV0dXJuIHNvcnR0YWJsZS5zb3J0X2RkbW07Ci0gICAgICAgICAgfSBlbHNlIGlmIChzZWNvbmQgPiAxMikgewotICAgICAgICAgICAgcmV0dXJuIHNvcnR0YWJsZS5zb3J0X21tZGQ7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIGxvb2tzIGxpa2UgYSBkYXRlLCBidXQgd2UgY2FuJ3QgdGVsbCB3aGljaCwgc28gYXNzdW1lCi0gICAgICAgICAgICAvLyB0aGF0IGl0J3MgZGQvbW0gKEVuZ2xpc2ggaW1wZXJpYWxpc20hKSBhbmQga2VlcCBsb29raW5nCi0gICAgICAgICAgICBzb3J0Zm4gPSBzb3J0dGFibGUuc29ydF9kZG1tOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gc29ydGZuOwotICB9LAotICAKLSAgZ2V0SW5uZXJUZXh0OiBmdW5jdGlvbihub2RlKSB7Ci0gICAgLy8gZ2V0cyB0aGUgdGV4dCB3ZSB3YW50IHRvIHVzZSBmb3Igc29ydGluZyBmb3IgYSBjZWxsLgotICAgIC8vIHN0cmlwcyBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIC8vIHRoaXMgaXMgKm5vdCogYSBnZW5lcmljIGdldElubmVyVGV4dCBmdW5jdGlvbjsgaXQncyBzcGVjaWFsIHRvIHNvcnR0YWJsZS4KLSAgICAvLyBmb3IgZXhhbXBsZSwgeW91IGNhbiBvdmVycmlkZSB0aGUgY2VsbCB0ZXh0IHdpdGggYSBjdXN0b21rZXkgYXR0cmlidXRlLgotICAgIC8vIGl0IGFsc28gZ2V0cyAudmFsdWUgZm9yIDxpbnB1dD4gZmllbGRzLgotICAgIAotICAgIGhhc0lucHV0cyA9ICh0eXBlb2Ygbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSA9PSAnZnVuY3Rpb24nKSAmJgotICAgICAgICAgICAgICAgICBub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpLmxlbmd0aDsKLSAgICAKLSAgICBpZiAobm9kZS5nZXRBdHRyaWJ1dGUoInNvcnR0YWJsZV9jdXN0b21rZXkiKSAhPSBudWxsKSB7Ci0gICAgICByZXR1cm4gbm9kZS5nZXRBdHRyaWJ1dGUoInNvcnR0YWJsZV9jdXN0b21rZXkiKTsKLSAgICB9Ci0gICAgZWxzZSBpZiAodHlwZW9mIG5vZGUudGV4dENvbnRlbnQgIT0gJ3VuZGVmaW5lZCcgJiYgIWhhc0lucHV0cykgewotICAgICAgcmV0dXJuIG5vZGUudGV4dENvbnRlbnQucmVwbGFjZSgvXlxzK3xccyskL2csICcnKTsKLSAgICB9Ci0gICAgZWxzZSBpZiAodHlwZW9mIG5vZGUuaW5uZXJUZXh0ICE9ICd1bmRlZmluZWQnICYmICFoYXNJbnB1dHMpIHsKLSAgICAgIHJldHVybiBub2RlLmlubmVyVGV4dC5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpOwotICAgIH0KLSAgICBlbHNlIGlmICh0eXBlb2Ygbm9kZS50ZXh0ICE9ICd1bmRlZmluZWQnICYmICFoYXNJbnB1dHMpIHsKLSAgICAgIHJldHVybiBub2RlLnRleHQucmVwbGFjZSgvXlxzK3xccyskL2csICcnKTsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICBzd2l0Y2ggKG5vZGUubm9kZVR5cGUpIHsKLSAgICAgICAgY2FzZSAzOgotICAgICAgICAgIGlmIChub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ2lucHV0JykgewotICAgICAgICAgICAgcmV0dXJuIG5vZGUudmFsdWUucmVwbGFjZSgvXlxzK3xccyskL2csICcnKTsKLSAgICAgICAgICB9Ci0gICAgICAgIGNhc2UgNDoKLSAgICAgICAgICByZXR1cm4gbm9kZS5ub2RlVmFsdWUucmVwbGFjZSgvXlxzK3xccyskL2csICcnKTsKLSAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgotICAgICAgICBjYXNlIDExOgotICAgICAgICAgIHZhciBpbm5lclRleHQgPSAnJzsKLSAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGUuY2hpbGROb2Rlcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgaW5uZXJUZXh0ICs9IHNvcnR0YWJsZS5nZXRJbm5lclRleHQobm9kZS5jaGlsZE5vZGVzW2ldKTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGlubmVyVGV4dC5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgIHJldHVybiAnJzsKLSAgICAgIH0KLSAgICB9Ci0gIH0sCi0gIAotICByZXZlcnNlOiBmdW5jdGlvbih0Ym9keSkgewotICAgIC8vIHJldmVyc2UgdGhlIHJvd3MgaW4gYSB0Ym9keQotICAgIG5ld3Jvd3MgPSBbXTsKLSAgICBmb3IgKHZhciBpPTA7IGk8dGJvZHkucm93cy5sZW5ndGg7IGkrKykgewotICAgICAgbmV3cm93c1tuZXdyb3dzLmxlbmd0aF0gPSB0Ym9keS5yb3dzW2ldOwotICAgIH0KLSAgICBmb3IgKHZhciBpPW5ld3Jvd3MubGVuZ3RoLTE7IGk+PTA7IGktLSkgewotICAgICAgIHRib2R5LmFwcGVuZENoaWxkKG5ld3Jvd3NbaV0pOwotICAgIH0KLSAgICBkZWxldGUgbmV3cm93czsKLSAgfSwKLSAgCi0gIC8qIHNvcnQgZnVuY3Rpb25zCi0gICAgIGVhY2ggc29ydCBmdW5jdGlvbiB0YWtlcyB0d28gcGFyYW1ldGVycywgYSBhbmQgYgotICAgICB5b3UgYXJlIGNvbXBhcmluZyBhWzBdIGFuZCBiWzBdICovCi0gIHNvcnRfbnVtZXJpYzogZnVuY3Rpb24oYSxiKSB7Ci0gICAgYWEgPSBwYXJzZUZsb2F0KGFbMF0ucmVwbGFjZSgvW14wLTkuLV0vZywnJykpOwotICAgIGlmIChpc05hTihhYSkpIGFhID0gMDsKLSAgICBiYiA9IHBhcnNlRmxvYXQoYlswXS5yZXBsYWNlKC9bXjAtOS4tXS9nLCcnKSk7IAotICAgIGlmIChpc05hTihiYikpIGJiID0gMDsKLSAgICByZXR1cm4gYWEtYmI7Ci0gIH0sCi0gIHNvcnRfYWxwaGE6IGZ1bmN0aW9uKGEsYikgewotICAgIGlmIChhWzBdPT1iWzBdKSByZXR1cm4gMDsKLSAgICBpZiAoYVswXTxiWzBdKSByZXR1cm4gLTE7Ci0gICAgcmV0dXJuIDE7Ci0gIH0sCi0gIHNvcnRfZGRtbTogZnVuY3Rpb24oYSxiKSB7Ci0gICAgbXRjaCA9IGFbMF0ubWF0Y2goc29ydHRhYmxlLkRBVEVfUkUpOwotICAgIHkgPSBtdGNoWzNdOyBtID0gbXRjaFsyXTsgZCA9IG10Y2hbMV07Ci0gICAgaWYgKG0ubGVuZ3RoID09IDEpIG0gPSAnMCcrbTsKLSAgICBpZiAoZC5sZW5ndGggPT0gMSkgZCA9ICcwJytkOwotICAgIGR0MSA9IHkrbStkOwotICAgIG10Y2ggPSBiWzBdLm1hdGNoKHNvcnR0YWJsZS5EQVRFX1JFKTsKLSAgICB5ID0gbXRjaFszXTsgbSA9IG10Y2hbMl07IGQgPSBtdGNoWzFdOwotICAgIGlmIChtLmxlbmd0aCA9PSAxKSBtID0gJzAnK207Ci0gICAgaWYgKGQubGVuZ3RoID09IDEpIGQgPSAnMCcrZDsKLSAgICBkdDIgPSB5K20rZDsKLSAgICBpZiAoZHQxPT1kdDIpIHJldHVybiAwOwotICAgIGlmIChkdDE8ZHQyKSByZXR1cm4gLTE7Ci0gICAgcmV0dXJuIDE7Ci0gIH0sCi0gIHNvcnRfbW1kZDogZnVuY3Rpb24oYSxiKSB7Ci0gICAgbXRjaCA9IGFbMF0ubWF0Y2goc29ydHRhYmxlLkRBVEVfUkUpOwotICAgIHkgPSBtdGNoWzNdOyBkID0gbXRjaFsyXTsgbSA9IG10Y2hbMV07Ci0gICAgaWYgKG0ubGVuZ3RoID09IDEpIG0gPSAnMCcrbTsKLSAgICBpZiAoZC5sZW5ndGggPT0gMSkgZCA9ICcwJytkOwotICAgIGR0MSA9IHkrbStkOwotICAgIG10Y2ggPSBiWzBdLm1hdGNoKHNvcnR0YWJsZS5EQVRFX1JFKTsKLSAgICB5ID0gbXRjaFszXTsgZCA9IG10Y2hbMl07IG0gPSBtdGNoWzFdOwotICAgIGlmIChtLmxlbmd0aCA9PSAxKSBtID0gJzAnK207Ci0gICAgaWYgKGQubGVuZ3RoID09IDEpIGQgPSAnMCcrZDsKLSAgICBkdDIgPSB5K20rZDsKLSAgICBpZiAoZHQxPT1kdDIpIHJldHVybiAwOwotICAgIGlmIChkdDE8ZHQyKSByZXR1cm4gLTE7Ci0gICAgcmV0dXJuIDE7Ci0gIH0sCi0gIAotICBzaGFrZXJfc29ydDogZnVuY3Rpb24obGlzdCwgY29tcF9mdW5jKSB7Ci0gICAgLy8gQSBzdGFibGUgc29ydCBmdW5jdGlvbiB0byBhbGxvdyBtdWx0aS1sZXZlbCBzb3J0aW5nIG9mIGRhdGEKLSAgICAvLyBzZWU6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ29ja3RhaWxfc29ydAotICAgIC8vIHRoYW5rcyB0byBKb3NlcGggTmFobWlhcwotICAgIHZhciBiID0gMDsKLSAgICB2YXIgdCA9IGxpc3QubGVuZ3RoIC0gMTsKLSAgICB2YXIgc3dhcCA9IHRydWU7Ci0KLSAgICB3aGlsZShzd2FwKSB7Ci0gICAgICAgIHN3YXAgPSBmYWxzZTsKLSAgICAgICAgZm9yKHZhciBpID0gYjsgaSA8IHQ7ICsraSkgewotICAgICAgICAgICAgaWYgKCBjb21wX2Z1bmMobGlzdFtpXSwgbGlzdFtpKzFdKSA+IDAgKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHEgPSBsaXN0W2ldOyBsaXN0W2ldID0gbGlzdFtpKzFdOyBsaXN0W2krMV0gPSBxOwotICAgICAgICAgICAgICAgIHN3YXAgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9IC8vIGZvcgotICAgICAgICB0LS07Ci0KLSAgICAgICAgaWYgKCFzd2FwKSBicmVhazsKLQotICAgICAgICBmb3IodmFyIGkgPSB0OyBpID4gYjsgLS1pKSB7Ci0gICAgICAgICAgICBpZiAoIGNvbXBfZnVuYyhsaXN0W2ldLCBsaXN0W2ktMV0pIDwgMCApIHsKLSAgICAgICAgICAgICAgICB2YXIgcSA9IGxpc3RbaV07IGxpc3RbaV0gPSBsaXN0W2ktMV07IGxpc3RbaS0xXSA9IHE7Ci0gICAgICAgICAgICAgICAgc3dhcCA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gLy8gZm9yCi0gICAgICAgIGIrKzsKLQotICAgIH0gLy8gd2hpbGUoc3dhcCkKLSAgfSAgCi19Ci0KLS8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICAgU3VwcG9ydGluZyBmdW5jdGlvbnM6IGJ1bmRsZWQgaGVyZSB0byBhdm9pZCBkZXBlbmRpbmcgb24gYSBsaWJyYXJ5Ci0gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KLQotLy8gRGVhbiBFZHdhcmRzL01hdHRoaWFzIE1pbGxlci9Kb2huIFJlc2lnCi0KLS8qIGZvciBNb3ppbGxhL09wZXJhOSAqLwotaWYgKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsKLSAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgc29ydHRhYmxlLmluaXQsIGZhbHNlKTsKLX0KLQotLyogZm9yIEludGVybmV0IEV4cGxvcmVyICovCi0vKkBjY19vbiBAKi8KLS8qQGlmIChAX3dpbjMyKQotICAgIGRvY3VtZW50LndyaXRlKCI8c2NyaXB0IGlkPV9faWVfb25sb2FkIGRlZmVyIHNyYz1qYXZhc2NyaXB0OnZvaWQoMCk+PFwvc2NyaXB0PiIpOwotICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiX19pZV9vbmxvYWQiKTsKLSAgICBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gImNvbXBsZXRlIikgewotICAgICAgICAgICAgc29ydHRhYmxlLmluaXQoKTsgLy8gY2FsbCB0aGUgb25sb2FkIGhhbmRsZXIKLSAgICAgICAgfQotICAgIH07Ci0vKkBlbmQgQCovCi0KLS8qIGZvciBTYWZhcmkgKi8KLWlmICgvV2ViS2l0L2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyAvLyBzbmlmZgotICAgIHZhciBfdGltZXIgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKLSAgICAgICAgaWYgKC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoZG9jdW1lbnQucmVhZHlTdGF0ZSkpIHsKLSAgICAgICAgICAgIHNvcnR0YWJsZS5pbml0KCk7IC8vIGNhbGwgdGhlIG9ubG9hZCBoYW5kbGVyCi0gICAgICAgIH0KLSAgICB9LCAxMCk7Ci19Ci0KLS8qIGZvciBvdGhlciBicm93c2VycyAqLwotd2luZG93Lm9ubG9hZCA9IHNvcnR0YWJsZS5pbml0OwotCi0vLyB3cml0dGVuIGJ5IERlYW4gRWR3YXJkcywgMjAwNQotLy8gd2l0aCBpbnB1dCBmcm9tIFRpbm8gWmlqZGVsLCBNYXR0aGlhcyBNaWxsZXIsIERpZWdvIFBlcmluaQotCi0vLyBodHRwOi8vZGVhbi5lZHdhcmRzLm5hbWUvd2VibG9nLzIwMDUvMTAvYWRkLWV2ZW50LwotCi1mdW5jdGlvbiBkZWFuX2FkZEV2ZW50KGVsZW1lbnQsIHR5cGUsIGhhbmRsZXIpIHsKLQlpZiAoZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKSB7Ci0JCWVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBoYW5kbGVyLCBmYWxzZSk7Ci0JfSBlbHNlIHsKLQkJLy8gYXNzaWduIGVhY2ggZXZlbnQgaGFuZGxlciBhIHVuaXF1ZSBJRAotCQlpZiAoIWhhbmRsZXIuJCRndWlkKSBoYW5kbGVyLiQkZ3VpZCA9IGRlYW5fYWRkRXZlbnQuZ3VpZCsrOwotCQkvLyBjcmVhdGUgYSBoYXNoIHRhYmxlIG9mIGV2ZW50IHR5cGVzIGZvciB0aGUgZWxlbWVudAotCQlpZiAoIWVsZW1lbnQuZXZlbnRzKSBlbGVtZW50LmV2ZW50cyA9IHt9OwotCQkvLyBjcmVhdGUgYSBoYXNoIHRhYmxlIG9mIGV2ZW50IGhhbmRsZXJzIGZvciBlYWNoIGVsZW1lbnQvZXZlbnQgcGFpcgotCQl2YXIgaGFuZGxlcnMgPSBlbGVtZW50LmV2ZW50c1t0eXBlXTsKLQkJaWYgKCFoYW5kbGVycykgewotCQkJaGFuZGxlcnMgPSBlbGVtZW50LmV2ZW50c1t0eXBlXSA9IHt9OwotCQkJLy8gc3RvcmUgdGhlIGV4aXN0aW5nIGV2ZW50IGhhbmRsZXIgKGlmIHRoZXJlIGlzIG9uZSkKLQkJCWlmIChlbGVtZW50WyJvbiIgKyB0eXBlXSkgewotCQkJCWhhbmRsZXJzWzBdID0gZWxlbWVudFsib24iICsgdHlwZV07Ci0JCQl9Ci0JCX0KLQkJLy8gc3RvcmUgdGhlIGV2ZW50IGhhbmRsZXIgaW4gdGhlIGhhc2ggdGFibGUKLQkJaGFuZGxlcnNbaGFuZGxlci4kJGd1aWRdID0gaGFuZGxlcjsKLQkJLy8gYXNzaWduIGEgZ2xvYmFsIGV2ZW50IGhhbmRsZXIgdG8gZG8gYWxsIHRoZSB3b3JrCi0JCWVsZW1lbnRbIm9uIiArIHR5cGVdID0gaGFuZGxlRXZlbnQ7Ci0JfQotfTsKLS8vIGEgY291bnRlciB1c2VkIHRvIGNyZWF0ZSB1bmlxdWUgSURzCi1kZWFuX2FkZEV2ZW50Lmd1aWQgPSAxOwotCi1mdW5jdGlvbiByZW1vdmVFdmVudChlbGVtZW50LCB0eXBlLCBoYW5kbGVyKSB7Ci0JaWYgKGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcikgewotCQllbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgaGFuZGxlciwgZmFsc2UpOwotCX0gZWxzZSB7Ci0JCS8vIGRlbGV0ZSB0aGUgZXZlbnQgaGFuZGxlciBmcm9tIHRoZSBoYXNoIHRhYmxlCi0JCWlmIChlbGVtZW50LmV2ZW50cyAmJiBlbGVtZW50LmV2ZW50c1t0eXBlXSkgewotCQkJZGVsZXRlIGVsZW1lbnQuZXZlbnRzW3R5cGVdW2hhbmRsZXIuJCRndWlkXTsKLQkJfQotCX0KLX07Ci0KLWZ1bmN0aW9uIGhhbmRsZUV2ZW50KGV2ZW50KSB7Ci0JdmFyIHJldHVyblZhbHVlID0gdHJ1ZTsKLQkvLyBncmFiIHRoZSBldmVudCBvYmplY3QgKElFIHVzZXMgYSBnbG9iYWwgZXZlbnQgb2JqZWN0KQotCWV2ZW50ID0gZXZlbnQgfHwgZml4RXZlbnQoKCh0aGlzLm93bmVyRG9jdW1lbnQgfHwgdGhpcy5kb2N1bWVudCB8fCB0aGlzKS5wYXJlbnRXaW5kb3cgfHwgd2luZG93KS5ldmVudCk7Ci0JLy8gZ2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBoYXNoIHRhYmxlIG9mIGV2ZW50IGhhbmRsZXJzCi0JdmFyIGhhbmRsZXJzID0gdGhpcy5ldmVudHNbZXZlbnQudHlwZV07Ci0JLy8gZXhlY3V0ZSBlYWNoIGV2ZW50IGhhbmRsZXIKLQlmb3IgKHZhciBpIGluIGhhbmRsZXJzKSB7Ci0JCXRoaXMuJCRoYW5kbGVFdmVudCA9IGhhbmRsZXJzW2ldOwotCQlpZiAodGhpcy4kJGhhbmRsZUV2ZW50KGV2ZW50KSA9PT0gZmFsc2UpIHsKLQkJCXJldHVyblZhbHVlID0gZmFsc2U7Ci0JCX0KLQl9Ci0JcmV0dXJuIHJldHVyblZhbHVlOwotfTsKLQotZnVuY3Rpb24gZml4RXZlbnQoZXZlbnQpIHsKLQkvLyBhZGQgVzNDIHN0YW5kYXJkIGV2ZW50IG1ldGhvZHMKLQlldmVudC5wcmV2ZW50RGVmYXVsdCA9IGZpeEV2ZW50LnByZXZlbnREZWZhdWx0OwotCWV2ZW50LnN0b3BQcm9wYWdhdGlvbiA9IGZpeEV2ZW50LnN0b3BQcm9wYWdhdGlvbjsKLQlyZXR1cm4gZXZlbnQ7Ci19OwotZml4RXZlbnQucHJldmVudERlZmF1bHQgPSBmdW5jdGlvbigpIHsKLQl0aGlzLnJldHVyblZhbHVlID0gZmFsc2U7Ci19OwotZml4RXZlbnQuc3RvcFByb3BhZ2F0aW9uID0gZnVuY3Rpb24oKSB7Ci0gIHRoaXMuY2FuY2VsQnViYmxlID0gdHJ1ZTsKLX0KLQotLy8gRGVhbidzIGZvckVhY2g6IGh0dHA6Ly9kZWFuLmVkd2FyZHMubmFtZS9iYXNlL2ZvckVhY2guanMKLS8qCi0JZm9yRWFjaCwgdmVyc2lvbiAxLjAKLQlDb3B5cmlnaHQgMjAwNiwgRGVhbiBFZHdhcmRzCi0JTGljZW5zZTogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHAKLSovCi0KLS8vIGFycmF5LWxpa2UgZW51bWVyYXRpb24KLWlmICghQXJyYXkuZm9yRWFjaCkgeyAvLyBtb3ppbGxhIGFscmVhZHkgc3VwcG9ydHMgdGhpcwotCUFycmF5LmZvckVhY2ggPSBmdW5jdGlvbihhcnJheSwgYmxvY2ssIGNvbnRleHQpIHsKLQkJZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykgewotCQkJYmxvY2suY2FsbChjb250ZXh0LCBhcnJheVtpXSwgaSwgYXJyYXkpOwotCQl9Ci0JfTsKLX0KLQotLy8gZ2VuZXJpYyBlbnVtZXJhdGlvbgotRnVuY3Rpb24ucHJvdG90eXBlLmZvckVhY2ggPSBmdW5jdGlvbihvYmplY3QsIGJsb2NrLCBjb250ZXh0KSB7Ci0JZm9yICh2YXIga2V5IGluIG9iamVjdCkgewotCQlpZiAodHlwZW9mIHRoaXMucHJvdG90eXBlW2tleV0gPT0gInVuZGVmaW5lZCIpIHsKLQkJCWJsb2NrLmNhbGwoY29udGV4dCwgb2JqZWN0W2tleV0sIGtleSwgb2JqZWN0KTsKLQkJfQotCX0KLX07Ci0KLS8vIGNoYXJhY3RlciBlbnVtZXJhdGlvbgotU3RyaW5nLmZvckVhY2ggPSBmdW5jdGlvbihzdHJpbmcsIGJsb2NrLCBjb250ZXh0KSB7Ci0JQXJyYXkuZm9yRWFjaChzdHJpbmcuc3BsaXQoIiIpLCBmdW5jdGlvbihjaHIsIGluZGV4KSB7Ci0JCWJsb2NrLmNhbGwoY29udGV4dCwgY2hyLCBpbmRleCwgc3RyaW5nKTsKLQl9KTsKLX07Ci0KLS8vIGdsb2JhbGx5IHJlc29sdmUgZm9yRWFjaCBlbnVtZXJhdGlvbgotdmFyIGZvckVhY2ggPSBmdW5jdGlvbihvYmplY3QsIGJsb2NrLCBjb250ZXh0KSB7Ci0JaWYgKG9iamVjdCkgewotCQl2YXIgcmVzb2x2ZSA9IE9iamVjdDsgLy8gZGVmYXVsdAotCQlpZiAob2JqZWN0IGluc3RhbmNlb2YgRnVuY3Rpb24pIHsKLQkJCS8vIGZ1bmN0aW9ucyBoYXZlIGEgImxlbmd0aCIgcHJvcGVydHkKLQkJCXJlc29sdmUgPSBGdW5jdGlvbjsKLQkJfSBlbHNlIGlmIChvYmplY3QuZm9yRWFjaCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7Ci0JCQkvLyB0aGUgb2JqZWN0IGltcGxlbWVudHMgYSBjdXN0b20gZm9yRWFjaCBtZXRob2Qgc28gdXNlIHRoYXQKLQkJCW9iamVjdC5mb3JFYWNoKGJsb2NrLCBjb250ZXh0KTsKLQkJCXJldHVybjsKLQkJfSBlbHNlIGlmICh0eXBlb2Ygb2JqZWN0ID09ICJzdHJpbmciKSB7Ci0JCQkvLyB0aGUgb2JqZWN0IGlzIGEgc3RyaW5nCi0JCQlyZXNvbHZlID0gU3RyaW5nOwotCQl9IGVsc2UgaWYgKHR5cGVvZiBvYmplY3QubGVuZ3RoID09ICJudW1iZXIiKSB7Ci0JCQkvLyB0aGUgb2JqZWN0IGlzIGFycmF5LWxpa2UKLQkJCXJlc29sdmUgPSBBcnJheTsKLQkJfQotCQlyZXNvbHZlLmZvckVhY2gob2JqZWN0LCBibG9jaywgY29udGV4dCk7Ci0JfQotfTsKLQpkaWZmIC0tZ2l0IGEvdG9vbHMvdmFsaWRhdGVrZXltYXBzL0FuZHJvaWQubWsgYi90b29scy92YWxpZGF0ZWtleW1hcHMvQW5kcm9pZC5tawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWFmNzIxZC4uMDAwMDAwMAotLS0gYS90b29scy92YWxpZGF0ZWtleW1hcHMvQW5kcm9pZC5taworKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLSMKLSMgQ29weXJpZ2h0IDIwMTAgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotIwotIyBLZXltYXAgdmFsaWRhdGlvbiB0b29sLgotIwotCi0jIFRoaXMgdG9vbCBpcyBwcmVidWlsdCBpZiB3ZSdyZSBkb2luZyBhbiBhcHAtb25seSBidWlsZC4KLWlmZXEgKCQoVEFSR0VUX0JVSUxEX0FQUFMpLCkKLQotTE9DQUxfUEFUSDo9ICQoY2FsbCBteS1kaXIpCi1pbmNsdWRlICQoQ0xFQVJfVkFSUykKLQotTE9DQUxfU1JDX0ZJTEVTIDo9IFwKLQlNYWluLmNwcAotCi1MT0NBTF9DRkxBR1MgOj0gLVdhbGwgLVdlcnJvcgotCi1MT0NBTF9TVEFUSUNfTElCUkFSSUVTIDo9IFwKLQlsaWJpbnB1dCBcCi0JbGlidXRpbHMgXAotCWxpYmN1dGlscyBcCi0JbGlibG9nCi0KLWlmZXEgKCQoSE9TVF9PUyksbGludXgpCi1MT0NBTF9MRExJQlMgKz0gLWxkbCAtbHB0aHJlYWQKLWVuZGlmCi0KLUxPQ0FMX01PRFVMRSA6PSB2YWxpZGF0ZWtleW1hcHMKLUxPQ0FMX01PRFVMRV9UQUdTIDo9IG9wdGlvbmFsCi0KLWluY2x1ZGUgJChCVUlMRF9IT1NUX0VYRUNVVEFCTEUpCi0KLWVuZGlmICMgVEFSR0VUX0JVSUxEX0FQUFMKZGlmZiAtLWdpdCBhL3Rvb2xzL3ZhbGlkYXRla2V5bWFwcy9NYWluLmNwcCBiL3Rvb2xzL3ZhbGlkYXRla2V5bWFwcy9NYWluLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWI0NWM1NS4uMDAwMDAwMAotLS0gYS90b29scy92YWxpZGF0ZWtleW1hcHMvTWFpbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSAqCi0gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotICoKLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotICovCi0KLSNpbmNsdWRlIDxpbnB1dC9LZXlDaGFyYWN0ZXJNYXAuaD4KLSNpbmNsdWRlIDxpbnB1dC9LZXlMYXlvdXRNYXAuaD4KLSNpbmNsdWRlIDxpbnB1dC9WaXJ0dWFsS2V5TWFwLmg+Ci0jaW5jbHVkZSA8dXRpbHMvUHJvcGVydHlNYXAuaD4KLSNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+Ci0KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotCi11c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKLQotc3RhdGljIGNvbnN0IGNoYXIqIGdQcm9nTmFtZSA9ICJ2YWxpZGF0ZWtleW1hcHMiOwotCi1lbnVtIEZpbGVUeXBlIHsKLSAgICBGSUxFVFlQRV9VTktOT1dOLAotICAgIEZJTEVUWVBFX0tFWUxBWU9VVCwKLSAgICBGSUxFVFlQRV9LRVlDSEFSQUNURVJNQVAsCi0gICAgRklMRVRZUEVfVklSVFVBTEtFWURFRklOSVRJT04sCi0gICAgRklMRVRZUEVfSU5QVVRERVZJQ0VDT05GSUdVUkFUSU9OLAotfTsKLQotCi1zdGF0aWMgdm9pZCB1c2FnZSgpIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIktleW1hcCBWYWxpZGF0aW9uIFRvb2xcblxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICJVc2FnZTpcbiIpOwotICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAiICVzIFsqLmtsXSBbKi5rY21dIFsqLmlkY10gW3ZpcnR1YWxrZXlzLipdIFsuLi5dXG4iCi0gICAgICAgICIgICBWYWxpZGF0ZXMgdGhlIHNwZWNpZmllZCBrZXkgbGF5b3V0cywga2V5IGNoYXJhY3RlciBtYXBzLCBcbiIKLSAgICAgICAgIiAgIGlucHV0IGRldmljZSBjb25maWd1cmF0aW9ucywgb3IgdmlydHVhbCBrZXkgZGVmaW5pdGlvbnMuXG5cbiIsCi0gICAgICAgIGdQcm9nTmFtZSk7Ci19Ci0KLXN0YXRpYyBGaWxlVHlwZSBnZXRGaWxlVHlwZShjb25zdCBjaGFyKiBmaWxlbmFtZSkgewotICAgIGNvbnN0IGNoYXIgKmV4dGVuc2lvbiA9IHN0cnJjaHIoZmlsZW5hbWUsICcuJyk7Ci0gICAgaWYgKGV4dGVuc2lvbikgewotICAgICAgICBpZiAoc3RyY21wKGV4dGVuc2lvbiwgIi5rbCIpID09IDApIHsKLSAgICAgICAgICAgIHJldHVybiBGSUxFVFlQRV9LRVlMQVlPVVQ7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN0cmNtcChleHRlbnNpb24sICIua2NtIikgPT0gMCkgewotICAgICAgICAgICAgcmV0dXJuIEZJTEVUWVBFX0tFWUNIQVJBQ1RFUk1BUDsKLSAgICAgICAgfQotICAgICAgICBpZiAoc3RyY21wKGV4dGVuc2lvbiwgIi5pZGMiKSA9PSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gRklMRVRZUEVfSU5QVVRERVZJQ0VDT05GSUdVUkFUSU9OOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHN0cnN0cihmaWxlbmFtZSwgInZpcnR1YWxrZXlzLiIpKSB7Ci0gICAgICAgIHJldHVybiBGSUxFVFlQRV9WSVJUVUFMS0VZREVGSU5JVElPTjsKLSAgICB9Ci0KLSAgICByZXR1cm4gRklMRVRZUEVfVU5LTk9XTjsKLX0KLQotc3RhdGljIGJvb2wgdmFsaWRhdGVGaWxlKGNvbnN0IGNoYXIqIGZpbGVuYW1lKSB7Ci0gICAgZnByaW50ZihzdGRvdXQsICJWYWxpZGF0aW5nIGZpbGUgJyVzJy4uLlxuIiwgZmlsZW5hbWUpOwotCi0gICAgRmlsZVR5cGUgZmlsZVR5cGUgPSBnZXRGaWxlVHlwZShmaWxlbmFtZSk7Ci0gICAgc3dpdGNoIChmaWxlVHlwZSkgewotICAgIGNhc2UgRklMRVRZUEVfVU5LTk9XTjoKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJTdXBwb3J0ZWQgZmlsZSB0eXBlczogKi5rbCwgKi5rY20sIHZpcnR1YWxrZXlzLipcblxuIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGNhc2UgRklMRVRZUEVfS0VZTEFZT1VUOiB7Ci0gICAgICAgIHNwPEtleUxheW91dE1hcD4gbWFwOwotICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBLZXlMYXlvdXRNYXA6OmxvYWQoU3RyaW5nOChmaWxlbmFtZSksICZtYXApOwotICAgICAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yICVkIHBhcnNpbmcga2V5IGxheW91dCBmaWxlLlxuXG4iLCBzdGF0dXMpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGNhc2UgRklMRVRZUEVfS0VZQ0hBUkFDVEVSTUFQOiB7Ci0gICAgICAgIHNwPEtleUNoYXJhY3Rlck1hcD4gbWFwOwotICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBLZXlDaGFyYWN0ZXJNYXA6OmxvYWQoU3RyaW5nOChmaWxlbmFtZSksCi0gICAgICAgICAgICAgICAgS2V5Q2hhcmFjdGVyTWFwOjpGT1JNQVRfQU5ZLCAmbWFwKTsKLSAgICAgICAgaWYgKHN0YXR1cykgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFcnJvciAlZCBwYXJzaW5nIGtleSBjaGFyYWN0ZXIgbWFwIGZpbGUuXG5cbiIsIHN0YXR1cyk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgY2FzZSBGSUxFVFlQRV9JTlBVVERFVklDRUNPTkZJR1VSQVRJT046IHsKLSAgICAgICAgUHJvcGVydHlNYXAqIG1hcDsKLSAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gUHJvcGVydHlNYXA6OmxvYWQoU3RyaW5nOChmaWxlbmFtZSksICZtYXApOwotICAgICAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yICVkIHBhcnNpbmcgaW5wdXQgZGV2aWNlIGNvbmZpZ3VyYXRpb24gZmlsZS5cblxuIiwgc3RhdHVzKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBkZWxldGUgbWFwOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBjYXNlIEZJTEVUWVBFX1ZJUlRVQUxLRVlERUZJTklUSU9OOiB7Ci0gICAgICAgIFZpcnR1YWxLZXlNYXAqIG1hcDsKLSAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gVmlydHVhbEtleU1hcDo6bG9hZChTdHJpbmc4KGZpbGVuYW1lKSwgJm1hcCk7Ci0gICAgICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3IgJWQgcGFyc2luZyB2aXJ0dWFsIGtleSBkZWZpbml0aW9uIGZpbGUuXG5cbiIsIHN0YXR1cyk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgZGVsZXRlIG1hcDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIH0KLQotICAgIGZwdXRzKCJObyBlcnJvcnMuXG5cbiIsIHN0ZG91dCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgewotICAgIGlmIChhcmdjIDwgMikgewotICAgICAgICB1c2FnZSgpOwotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICBmb3IgKGludCBpID0gMTsgaSA8IGFyZ2M7IGkrKykgewotICAgICAgICBpZiAoIXZhbGlkYXRlRmlsZShhcmd2W2ldKSkgewotICAgICAgICAgICAgcmVzdWx0ID0gMTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgZnB1dHMoIkZhaWxlZCFcbiIsIHN0ZGVycik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZnB1dHMoIlN1Y2Nlc3MuXG4iLCBzdGRvdXQpOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQpkaWZmIC0tZ2l0IGEvdG9vbHMvdmVsb2NpdHlwbG90L3ZlbG9jaXR5cGxvdC5weSBiL3Rvb2xzL3ZlbG9jaXR5cGxvdC92ZWxvY2l0eXBsb3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDQyMWJlZDQuLjAwMDAwMDAKLS0tIGEvdG9vbHMvdmVsb2NpdHlwbG90L3ZlbG9jaXR5cGxvdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDI4OSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24yLjYKLSMKLSMgQ29weXJpZ2h0IChDKSAyMDExIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSMKLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0jCi0jICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0jCi0jIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0jCi0KLSMKLSMgUGxvdHMgZGVidWcgbG9nIG91dHB1dCBmcm9tIFZlbG9jaXR5VHJhY2tlci4KLSMgRW5hYmxlIERFQlVHX1ZFTE9DSVRZIHRvIHByaW50IHRoZSBvdXRwdXQuCi0jCi0jIFRoaXMgY29kZSBzdXBwb3J0cyBzaWRlLWJ5LXNpZGUgY29tcGFyaXNvbiBvZiB0d28gYWxnb3JpdGhtcy4KLSMgVGhlIG9sZCBhbGdvcml0aG0gc2hvdWxkIGJlIG1vZGlmaWVkIHRvIGVtaXQgZGVidWcgbG9nIG1lc3NhZ2VzIGNvbnRhaW5pbmcKLSMgdGhlIHdvcmQgIk9MRCIuCi0jCi0KLWltcG9ydCBudW1weSBhcyBucAotaW1wb3J0IG1hdHBsb3RsaWIucHlwbG90IGFzIHBsb3QKLWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgcmUKLWltcG9ydCBmY250bAotaW1wb3J0IG9zCi1pbXBvcnQgZXJybm8KLWltcG9ydCBiaXNlY3QKLWZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKLQotIyBQYXJhbWV0ZXJzLgotdGltZXNwYW4gPSAxNSAjIHNlY29uZHMgdG90YWwgc3BhbiBzaG93bgotc2Nyb2xsanVtcCA9IDUgIyBzZWNvbmRzIGp1bXAgd2hlbiBzY3JvbGxpbmcKLXRpbWV0aWNrcyA9IDEgIyBzZWNvbmRzIGJldHdlZW4gZWFjaCB0aW1lIHRpY2sKLQotIyBOb24tYmxvY2tpbmcgc3RyZWFtIHdyYXBwZXIuCi1jbGFzcyBOb25CbG9ja2luZ1N0cmVhbToKLSAgZGVmIF9faW5pdF9fKHNlbGYsIHN0cmVhbSk6Ci0gICAgZmNudGwuZmNudGwoc3RyZWFtLCBmY250bC5GX1NFVEZMLCBvcy5PX05PTkJMT0NLKQotICAgIHNlbGYuc3RyZWFtID0gc3RyZWFtCi0gICAgc2VsZi5idWZmZXIgPSAnJwotICAgIHNlbGYucG9zID0gMAotCi0gIGRlZiByZWFkbGluZShzZWxmKToKLSAgICB3aGlsZSBUcnVlOgotICAgICAgaW5kZXggPSBzZWxmLmJ1ZmZlci5maW5kKCdcbicsIHNlbGYucG9zKQotICAgICAgaWYgaW5kZXggIT0gLTE6Ci0gICAgICAgIHJlc3VsdCA9IHNlbGYuYnVmZmVyW3NlbGYucG9zOmluZGV4XQotICAgICAgICBzZWxmLnBvcyA9IGluZGV4ICsgMQotICAgICAgICByZXR1cm4gcmVzdWx0Ci0KLSAgICAgIHNlbGYuYnVmZmVyID0gc2VsZi5idWZmZXJbc2VsZi5wb3M6XQotICAgICAgc2VsZi5wb3MgPSAwCi0gICAgICB0cnk6Ci0gICAgICAgIGNodW5rID0gb3MucmVhZChzZWxmLnN0cmVhbS5maWxlbm8oKSwgNDA5NikKLSAgICAgIGV4Y2VwdCBPU0Vycm9yLCBlOgotICAgICAgICBpZiBlLmVycm5vID09IGVycm5vLkVBR0FJTjoKLSAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByYWlzZSBlCi0gICAgICBpZiBsZW4oY2h1bmspID09IDA6Ci0gICAgICAgIGlmIGxlbihzZWxmLmJ1ZmZlcikgPT0gMDoKLSAgICAgICAgICByYWlzZShFT0ZFcnJvcikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICByZXN1bHQgPSBzZWxmLmJ1ZmZlcgotICAgICAgICAgIHNlbGYuYnVmZmVyID0gJycKLSAgICAgICAgICBzZWxmLnBvcyA9IDAKLSAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0gICAgICBzZWxmLmJ1ZmZlciArPSBjaHVuawotCi0jIFBsb3R0ZXIKLWNsYXNzIFBsb3R0ZXI6Ci0gIGRlZiBfX2luaXRfXyhzZWxmLCBhZGJvdXQpOgotICAgIHNlbGYuYWRib3V0ID0gYWRib3V0Ci0KLSAgICBzZWxmLmZpZyA9IHBsb3QuZmlndXJlKDEpCi0gICAgc2VsZi5maWcuc3VwdGl0bGUoJ1ZlbG9jaXR5IFRyYWNrZXInLCBmb250c2l6ZT0xMikKLSAgICBzZWxmLmZpZy5zZXRfZHBpKDk2KQotICAgIHNlbGYuZmlnLnNldF9zaXplX2luY2hlcygxNiwgMTIsIGZvcndhcmQ9VHJ1ZSkKLQotICAgIHNlbGYudmVsb2NpdHlfeCA9IHNlbGYuX21ha2VfdGltZXNlcmllcygpCi0gICAgc2VsZi52ZWxvY2l0eV95ID0gc2VsZi5fbWFrZV90aW1lc2VyaWVzKCkKLSAgICBzZWxmLnZlbG9jaXR5X21hZ25pdHVkZSA9IHNlbGYuX21ha2VfdGltZXNlcmllcygpCi0gICAgc2VsZi52ZWxvY2l0eV9heGVzID0gc2VsZi5fYWRkX3RpbWVzZXJpZXNfYXhlcygKLSAgICAgICAgMSwgJ1ZlbG9jaXR5JywgJ3B4L3MnLCBbLTUwMDAsIDUwMDBdLAotICAgICAgICB5dGlja3M9cmFuZ2UoLTUwMDAsIDUwMDAsIDEwMDApKQotICAgIHNlbGYudmVsb2NpdHlfbGluZV94ID0gc2VsZi5fYWRkX3RpbWVzZXJpZXNfbGluZSgKLSAgICAgICAgc2VsZi52ZWxvY2l0eV9heGVzLCAndngnLCAncmVkJykKLSAgICBzZWxmLnZlbG9jaXR5X2xpbmVfeSA9IHNlbGYuX2FkZF90aW1lc2VyaWVzX2xpbmUoCi0gICAgICAgIHNlbGYudmVsb2NpdHlfYXhlcywgJ3Z5JywgJ2dyZWVuJykKLSAgICBzZWxmLnZlbG9jaXR5X2xpbmVfbWFnbml0dWRlID0gc2VsZi5fYWRkX3RpbWVzZXJpZXNfbGluZSgKLSAgICAgICAgc2VsZi52ZWxvY2l0eV9heGVzLCAnbWFnbml0dWRlJywgJ2JsdWUnKQotICAgIHNlbGYuX2FkZF90aW1lc2VyaWVzX2xlZ2VuZChzZWxmLnZlbG9jaXR5X2F4ZXMpCi0KLSAgICBzaGFyZWRfYXhpcyA9IHNlbGYudmVsb2NpdHlfYXhlcwotCi0gICAgc2VsZi5vbGRfdmVsb2NpdHlfeCA9IHNlbGYuX21ha2VfdGltZXNlcmllcygpCi0gICAgc2VsZi5vbGRfdmVsb2NpdHlfeSA9IHNlbGYuX21ha2VfdGltZXNlcmllcygpCi0gICAgc2VsZi5vbGRfdmVsb2NpdHlfbWFnbml0dWRlID0gc2VsZi5fbWFrZV90aW1lc2VyaWVzKCkKLSAgICBzZWxmLm9sZF92ZWxvY2l0eV9heGVzID0gc2VsZi5fYWRkX3RpbWVzZXJpZXNfYXhlcygKLSAgICAgICAgMiwgJ09sZCBBbGdvcml0aG0gVmVsb2NpdHknLCAncHgvcycsIFstNTAwMCwgNTAwMF0sCi0gICAgICAgIHNoYXJleD1zaGFyZWRfYXhpcywKLSAgICAgICAgeXRpY2tzPXJhbmdlKC01MDAwLCA1MDAwLCAxMDAwKSkKLSAgICBzZWxmLm9sZF92ZWxvY2l0eV9saW5lX3ggPSBzZWxmLl9hZGRfdGltZXNlcmllc19saW5lKAotICAgICAgICBzZWxmLm9sZF92ZWxvY2l0eV9heGVzLCAndngnLCAncmVkJykKLSAgICBzZWxmLm9sZF92ZWxvY2l0eV9saW5lX3kgPSBzZWxmLl9hZGRfdGltZXNlcmllc19saW5lKAotICAgICAgICBzZWxmLm9sZF92ZWxvY2l0eV9heGVzLCAndnknLCAnZ3JlZW4nKQotICAgIHNlbGYub2xkX3ZlbG9jaXR5X2xpbmVfbWFnbml0dWRlID0gc2VsZi5fYWRkX3RpbWVzZXJpZXNfbGluZSgKLSAgICAgICAgc2VsZi5vbGRfdmVsb2NpdHlfYXhlcywgJ21hZ25pdHVkZScsICdibHVlJykKLSAgICBzZWxmLl9hZGRfdGltZXNlcmllc19sZWdlbmQoc2VsZi5vbGRfdmVsb2NpdHlfYXhlcykKLQotICAgIHNlbGYudGltZXIgPSBzZWxmLmZpZy5jYW52YXMubmV3X3RpbWVyKGludGVydmFsPTEwMCkKLSAgICBzZWxmLnRpbWVyLmFkZF9jYWxsYmFjayhsYW1iZGE6IHNlbGYudXBkYXRlKCkpCi0gICAgc2VsZi50aW1lci5zdGFydCgpCi0KLSAgICBzZWxmLnRpbWViYXNlID0gTm9uZQotICAgIHNlbGYuX3Jlc2V0X3BhcnNlX3N0YXRlKCkKLQotICAjIEluaXRpYWxpemUgYSB0aW1lIHNlcmllcy4KLSAgZGVmIF9tYWtlX3RpbWVzZXJpZXMoc2VsZik6Ci0gICAgcmV0dXJuIFtbXSwgW11dCi0KLSAgIyBBZGQgYSBzdWJwbG90IHRvIHRoZSBmaWd1cmUgZm9yIGEgdGltZSBzZXJpZXMuCi0gIGRlZiBfYWRkX3RpbWVzZXJpZXNfYXhlcyhzZWxmLCBpbmRleCwgdGl0bGUsIHlsYWJlbCwgeWxpbSwgeXRpY2tzLCBzaGFyZXg9Tm9uZSk6Ci0gICAgbnVtX2dyYXBocyA9IDIKLSAgICBoZWlnaHQgPSAwLjkgLyBudW1fZ3JhcGhzCi0gICAgdG9wID0gMC45NSAtIGhlaWdodCAqIGluZGV4Ci0gICAgYXhlcyA9IHNlbGYuZmlnLmFkZF9heGVzKFswLjEsIHRvcCwgMC44LCBoZWlnaHRdLAotICAgICAgICB4c2NhbGU9J2xpbmVhcicsCi0gICAgICAgIHhsaW09WzAsIHRpbWVzcGFuXSwKLSAgICAgICAgeWxhYmVsPXlsYWJlbCwKLSAgICAgICAgeXNjYWxlPSdsaW5lYXInLAotICAgICAgICB5bGltPXlsaW0sCi0gICAgICAgIHNoYXJleD1zaGFyZXgpCi0gICAgYXhlcy50ZXh0KDAuMDIsIDAuMDIsIHRpdGxlLCB0cmFuc2Zvcm09YXhlcy50cmFuc0F4ZXMsIGZvbnRzaXplPTEwLCBmb250d2VpZ2h0PSdib2xkJykKLSAgICBheGVzLnNldF94bGFiZWwoJ3RpbWUgKHMpJywgZm9udHNpemU9MTAsIGZvbnR3ZWlnaHQ9J2JvbGQnKQotICAgIGF4ZXMuc2V0X3lsYWJlbCh5bGFiZWwsIGZvbnRzaXplPTEwLCBmb250d2VpZ2h0PSdib2xkJykKLSAgICBheGVzLnNldF94dGlja3MocmFuZ2UoMCwgdGltZXNwYW4gKyAxLCB0aW1ldGlja3MpKQotICAgIGF4ZXMuc2V0X3l0aWNrcyh5dGlja3MpCi0gICAgYXhlcy5ncmlkKFRydWUpCi0KLSAgICBmb3IgbGFiZWwgaW4gYXhlcy5nZXRfeHRpY2tsYWJlbHMoKToKLSAgICAgIGxhYmVsLnNldF9mb250c2l6ZSg5KQotICAgIGZvciBsYWJlbCBpbiBheGVzLmdldF95dGlja2xhYmVscygpOgotICAgICAgbGFiZWwuc2V0X2ZvbnRzaXplKDkpCi0KLSAgICByZXR1cm4gYXhlcwotCi0gICMgQWRkIGEgbGluZSB0byB0aGUgYXhlcyBmb3IgYSB0aW1lIHNlcmllcy4KLSAgZGVmIF9hZGRfdGltZXNlcmllc19saW5lKHNlbGYsIGF4ZXMsIGxhYmVsLCBjb2xvciwgbGluZXdpZHRoPTEpOgotICAgIHJldHVybiBheGVzLnBsb3QoW10sIGxhYmVsPWxhYmVsLCBjb2xvcj1jb2xvciwgbGluZXdpZHRoPWxpbmV3aWR0aClbMF0KLQotICAjIEFkZCBhIGxlZ2VuZCB0byBhIHRpbWUgc2VyaWVzLgotICBkZWYgX2FkZF90aW1lc2VyaWVzX2xlZ2VuZChzZWxmLCBheGVzKToKLSAgICBheGVzLmxlZ2VuZCgKLSAgICAgICAgbG9jPSd1cHBlciBsZWZ0JywKLSAgICAgICAgYmJveF90b19hbmNob3I9KDEuMDEsIDEpLAotICAgICAgICBib3JkZXJwYWQ9MC4xLAotICAgICAgICBib3JkZXJheGVzcGFkPTAuMSwKLSAgICAgICAgcHJvcD17J3NpemUnOiAxMH0pCi0KLSAgIyBSZXNldHMgdGhlIHBhcnNlIHN0YXRlLgotICBkZWYgX3Jlc2V0X3BhcnNlX3N0YXRlKHNlbGYpOgotICAgIHNlbGYucGFyc2VfdmVsb2NpdHlfeCA9IE5vbmUKLSAgICBzZWxmLnBhcnNlX3ZlbG9jaXR5X3kgPSBOb25lCi0gICAgc2VsZi5wYXJzZV92ZWxvY2l0eV9tYWduaXR1ZGUgPSBOb25lCi0gICAgc2VsZi5wYXJzZV9vbGRfdmVsb2NpdHlfeCA9IE5vbmUKLSAgICBzZWxmLnBhcnNlX29sZF92ZWxvY2l0eV95ID0gTm9uZQotICAgIHNlbGYucGFyc2Vfb2xkX3ZlbG9jaXR5X21hZ25pdHVkZSA9IE5vbmUKLQotICAjIFVwZGF0ZSBzYW1wbGVzLgotICBkZWYgdXBkYXRlKHNlbGYpOgotICAgIHRpbWVpbmRleCA9IDAKLSAgICB3aGlsZSBUcnVlOgotICAgICAgdHJ5OgotICAgICAgICBsaW5lID0gc2VsZi5hZGJvdXQucmVhZGxpbmUoKQotICAgICAgZXhjZXB0IEVPRkVycm9yOgotICAgICAgICBwbG90LmNsb3NlKCkKLSAgICAgICAgcmV0dXJuCi0gICAgICBpZiBsaW5lIGlzIE5vbmU6Ci0gICAgICAgIGJyZWFrCi0gICAgICBwcmludCBsaW5lCi0KLSAgICAgIHRyeToKLSAgICAgICAgdGltZXN0YW1wID0gc2VsZi5fcGFyc2VfdGltZXN0YW1wKGxpbmUpCi0gICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgY29udGludWUKLSAgICAgIGlmIHNlbGYudGltZWJhc2UgaXMgTm9uZToKLSAgICAgICAgc2VsZi50aW1lYmFzZSA9IHRpbWVzdGFtcAotICAgICAgZGVsdGEgPSB0aW1lc3RhbXAgLSBzZWxmLnRpbWViYXNlCi0gICAgICB0aW1laW5kZXggPSBkZWx0YS5zZWNvbmRzICsgZGVsdGEubWljcm9zZWNvbmRzICogMC4wMDAwMDEKLQotICAgICAgaWYgbGluZS5maW5kKCc6IHBvc2l0aW9uJykgIT0gLTE6Ci0gICAgICAgIHNlbGYucGFyc2VfdmVsb2NpdHlfeCA9IHNlbGYuX2dldF9mb2xsb3dpbmdfbnVtYmVyKGxpbmUsICd2eD0nKQotICAgICAgICBzZWxmLnBhcnNlX3ZlbG9jaXR5X3kgPSBzZWxmLl9nZXRfZm9sbG93aW5nX251bWJlcihsaW5lLCAndnk9JykKLSAgICAgICAgc2VsZi5wYXJzZV92ZWxvY2l0eV9tYWduaXR1ZGUgPSBzZWxmLl9nZXRfZm9sbG93aW5nX251bWJlcihsaW5lLCAnc3BlZWQ9JykKLSAgICAgICAgc2VsZi5fYXBwZW5kKHNlbGYudmVsb2NpdHlfeCwgdGltZWluZGV4LCBzZWxmLnBhcnNlX3ZlbG9jaXR5X3gpCi0gICAgICAgIHNlbGYuX2FwcGVuZChzZWxmLnZlbG9jaXR5X3ksIHRpbWVpbmRleCwgc2VsZi5wYXJzZV92ZWxvY2l0eV95KQotICAgICAgICBzZWxmLl9hcHBlbmQoc2VsZi52ZWxvY2l0eV9tYWduaXR1ZGUsIHRpbWVpbmRleCwgc2VsZi5wYXJzZV92ZWxvY2l0eV9tYWduaXR1ZGUpCi0KLSAgICAgIGlmIGxpbmUuZmluZCgnOiBPTEQnKSAhPSAtMToKLSAgICAgICAgc2VsZi5wYXJzZV9vbGRfdmVsb2NpdHlfeCA9IHNlbGYuX2dldF9mb2xsb3dpbmdfbnVtYmVyKGxpbmUsICd2eD0nKQotICAgICAgICBzZWxmLnBhcnNlX29sZF92ZWxvY2l0eV95ID0gc2VsZi5fZ2V0X2ZvbGxvd2luZ19udW1iZXIobGluZSwgJ3Z5PScpCi0gICAgICAgIHNlbGYucGFyc2Vfb2xkX3ZlbG9jaXR5X21hZ25pdHVkZSA9IHNlbGYuX2dldF9mb2xsb3dpbmdfbnVtYmVyKGxpbmUsICdzcGVlZD0nKQotICAgICAgICBzZWxmLl9hcHBlbmQoc2VsZi5vbGRfdmVsb2NpdHlfeCwgdGltZWluZGV4LCBzZWxmLnBhcnNlX29sZF92ZWxvY2l0eV94KQotICAgICAgICBzZWxmLl9hcHBlbmQoc2VsZi5vbGRfdmVsb2NpdHlfeSwgdGltZWluZGV4LCBzZWxmLnBhcnNlX29sZF92ZWxvY2l0eV95KQotICAgICAgICBzZWxmLl9hcHBlbmQoc2VsZi5vbGRfdmVsb2NpdHlfbWFnbml0dWRlLCB0aW1laW5kZXgsIHNlbGYucGFyc2Vfb2xkX3ZlbG9jaXR5X21hZ25pdHVkZSkKLQotICAgICMgU2Nyb2xsIHRoZSBwbG90cy4KLSAgICBpZiB0aW1laW5kZXggPiB0aW1lc3BhbjoKLSAgICAgIGJvdHRvbSA9IGludCh0aW1laW5kZXgpIC0gdGltZXNwYW4gKyBzY3JvbGxqdW1wCi0gICAgICBzZWxmLnRpbWViYXNlICs9IHRpbWVkZWx0YShzZWNvbmRzPWJvdHRvbSkKLSAgICAgIHNlbGYuX3Njcm9sbChzZWxmLnZlbG9jaXR5X3gsIGJvdHRvbSkKLSAgICAgIHNlbGYuX3Njcm9sbChzZWxmLnZlbG9jaXR5X3ksIGJvdHRvbSkKLSAgICAgIHNlbGYuX3Njcm9sbChzZWxmLnZlbG9jaXR5X21hZ25pdHVkZSwgYm90dG9tKQotICAgICAgc2VsZi5fc2Nyb2xsKHNlbGYub2xkX3ZlbG9jaXR5X3gsIGJvdHRvbSkKLSAgICAgIHNlbGYuX3Njcm9sbChzZWxmLm9sZF92ZWxvY2l0eV95LCBib3R0b20pCi0gICAgICBzZWxmLl9zY3JvbGwoc2VsZi5vbGRfdmVsb2NpdHlfbWFnbml0dWRlLCBib3R0b20pCi0KLSAgICAjIFJlZHJhdyB0aGUgcGxvdHMuCi0gICAgc2VsZi52ZWxvY2l0eV9saW5lX3guc2V0X2RhdGEoc2VsZi52ZWxvY2l0eV94KQotICAgIHNlbGYudmVsb2NpdHlfbGluZV95LnNldF9kYXRhKHNlbGYudmVsb2NpdHlfeSkKLSAgICBzZWxmLnZlbG9jaXR5X2xpbmVfbWFnbml0dWRlLnNldF9kYXRhKHNlbGYudmVsb2NpdHlfbWFnbml0dWRlKQotICAgIHNlbGYub2xkX3ZlbG9jaXR5X2xpbmVfeC5zZXRfZGF0YShzZWxmLm9sZF92ZWxvY2l0eV94KQotICAgIHNlbGYub2xkX3ZlbG9jaXR5X2xpbmVfeS5zZXRfZGF0YShzZWxmLm9sZF92ZWxvY2l0eV95KQotICAgIHNlbGYub2xkX3ZlbG9jaXR5X2xpbmVfbWFnbml0dWRlLnNldF9kYXRhKHNlbGYub2xkX3ZlbG9jaXR5X21hZ25pdHVkZSkKLQotICAgIHNlbGYuZmlnLmNhbnZhcy5kcmF3X2lkbGUoKQotCi0gICMgU2Nyb2xsIGEgdGltZSBzZXJpZXMuCi0gIGRlZiBfc2Nyb2xsKHNlbGYsIHRpbWVzZXJpZXMsIGJvdHRvbSk6Ci0gICAgYm90dG9tX2luZGV4ID0gYmlzZWN0LmJpc2VjdF9sZWZ0KHRpbWVzZXJpZXNbMF0sIGJvdHRvbSkKLSAgICBkZWwgdGltZXNlcmllc1swXVs6Ym90dG9tX2luZGV4XQotICAgIGRlbCB0aW1lc2VyaWVzWzFdWzpib3R0b21faW5kZXhdCi0gICAgZm9yIGksIHRpbWVpbmRleCBpbiBlbnVtZXJhdGUodGltZXNlcmllc1swXSk6Ci0gICAgICB0aW1lc2VyaWVzWzBdW2ldID0gdGltZWluZGV4IC0gYm90dG9tCi0KLSAgIyBFeHRyYWN0IGEgd29yZCBmb2xsb3dpbmcgdGhlIHNwZWNpZmllZCBwcmVmaXguCi0gIGRlZiBfZ2V0X2ZvbGxvd2luZ193b3JkKHNlbGYsIGxpbmUsIHByZWZpeCk6Ci0gICAgcHJlZml4X2luZGV4ID0gbGluZS5maW5kKHByZWZpeCkKLSAgICBpZiBwcmVmaXhfaW5kZXggPT0gLTE6Ci0gICAgICByZXR1cm4gTm9uZQotICAgIHN0YXJ0X2luZGV4ID0gcHJlZml4X2luZGV4ICsgbGVuKHByZWZpeCkKLSAgICBkZWxpbV9pbmRleCA9IGxpbmUuZmluZCgnLCcsIHN0YXJ0X2luZGV4KQotICAgIGlmIGRlbGltX2luZGV4ID09IC0xOgotICAgICAgcmV0dXJuIGxpbmVbc3RhcnRfaW5kZXg6XQotICAgIGVsc2U6Ci0gICAgICByZXR1cm4gbGluZVtzdGFydF9pbmRleDpkZWxpbV9pbmRleF0KLQotICAjIEV4dHJhY3QgYSBudW1iZXIgZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQgcHJlZml4LgotICBkZWYgX2dldF9mb2xsb3dpbmdfbnVtYmVyKHNlbGYsIGxpbmUsIHByZWZpeCk6Ci0gICAgd29yZCA9IHNlbGYuX2dldF9mb2xsb3dpbmdfd29yZChsaW5lLCBwcmVmaXgpCi0gICAgaWYgd29yZCBpcyBOb25lOgotICAgICAgcmV0dXJuIE5vbmUKLSAgICByZXR1cm4gZmxvYXQod29yZCkKLQotICAjIEFkZCBhIHZhbHVlIHRvIGEgdGltZSBzZXJpZXMuCi0gIGRlZiBfYXBwZW5kKHNlbGYsIHRpbWVzZXJpZXMsIHRpbWVpbmRleCwgbnVtYmVyKToKLSAgICB0aW1lc2VyaWVzWzBdLmFwcGVuZCh0aW1laW5kZXgpCi0gICAgdGltZXNlcmllc1sxXS5hcHBlbmQobnVtYmVyKQotCi0gICMgUGFyc2UgdGhlIGxvZ2NhdCB0aW1lc3RhbXAuCi0gICMgVGltZXN0YW1wIGhhcyB0aGUgZm9ybSAnMDEtMjEgMjA6NDI6NDIuOTMwJwotICBkZWYgX3BhcnNlX3RpbWVzdGFtcChzZWxmLCBsaW5lKToKLSAgICByZXR1cm4gZGF0ZXRpbWUuc3RycHRpbWUobGluZVswOjE4XSwgJyVtLSVkICVIOiVNOiVTLiVmJykKLQotIyBOb3RpY2UKLXByaW50ICJWZWxvY2l0eSBUcmFja2VyIHBsb3R0aW5nIHRvb2wiCi1wcmludCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKLXByaW50ICJQbGVhc2UgZW5hYmxlIGRlYnVnIGxvZ2dpbmcgYW5kIHJlY29tcGlsZSB0aGUgY29kZS4iCi0KLSMgU3RhcnQgYWRiLgotcHJpbnQgIlN0YXJ0aW5nIGFkYiBsb2djYXQuXG4iCi0KLWFkYiA9IHN1YnByb2Nlc3MuUG9wZW4oWydhZGInLCAnbG9nY2F0JywgJy1zJywgJy12JywgJ3RpbWUnLCAnSW5wdXQ6KicsICdWZWxvY2l0eVRyYWNrZXI6KiddLAotICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCi1hZGJvdXQgPSBOb25CbG9ja2luZ1N0cmVhbShhZGIuc3Rkb3V0KQotCi0jIFByZXBhcmUgcGxvdHRlci4KLXBsb3R0ZXIgPSBQbG90dGVyKGFkYm91dCkKLXBsb3R0ZXIudXBkYXRlKCkKLQotIyBNYWluIGxvb3AuCi1wbG90LnNob3coKQpkaWZmIC0tZ2l0IGEvd2lmaS9qYXZhL2FuZHJvaWQvbmV0L3dpZmkvSVdpZmlNYW5hZ2VyLmFpZGwgYi93aWZpL2phdmEvYW5kcm9pZC9uZXQvd2lmaS9JV2lmaU1hbmFnZXIuYWlkbAppbmRleCAxNDliZGE2Li40YTZiMWZmIDEwMDY0NAotLS0gYS93aWZpL2phdmEvYW5kcm9pZC9uZXQvd2lmaS9JV2lmaU1hbmFnZXIuYWlkbAorKysgYi93aWZpL2phdmEvYW5kcm9pZC9uZXQvd2lmaS9JV2lmaU1hbmFnZXIuYWlkbApAQCAtMTExLDggKzExMSw2IEBACiAKICAgICBTdHJpbmcgZ2V0Q29uZmlnRmlsZSgpOwogCi0gICAgdm9pZCBjYXB0aXZlUG9ydGFsQ2hlY2tDb21wbGV0ZSgpOwotCiAgICAgdm9pZCBlbmFibGVUZGxzKFN0cmluZyByZW1vdGVJUEFkZHJlc3MsIGJvb2xlYW4gZW5hYmxlKTsKIAogICAgIHZvaWQgZW5hYmxlVGRsc1dpdGhNYWNBZGRyZXNzKFN0cmluZyByZW1vdGVNYWNBZGRyZXNzLCBib29sZWFuIGVuYWJsZSk7CmRpZmYgLS1naXQgYS93aWZpL2phdmEvYW5kcm9pZC9uZXQvd2lmaS9XaWZpSW5mby5qYXZhIGIvd2lmaS9qYXZhL2FuZHJvaWQvbmV0L3dpZmkvV2lmaUluZm8uamF2YQppbmRleCA1ZDEzMGM2Li5kZWEwYzZjIDEwMDY0NAotLS0gYS93aWZpL2phdmEvYW5kcm9pZC9uZXQvd2lmaS9XaWZpSW5mby5qYXZhCisrKyBiL3dpZmkvamF2YS9hbmRyb2lkL25ldC93aWZpL1dpZmlJbmZvLmphdmEKQEAgLTYyLDcgKzYyLDYgQEAKICAgICBwcml2YXRlIFN0cmluZyBtQlNTSUQ7CiAgICAgcHJpdmF0ZSBXaWZpU3NpZCBtV2lmaVNzaWQ7CiAgICAgcHJpdmF0ZSBpbnQgbU5ldHdvcmtJZDsKLSAgICBwcml2YXRlIGJvb2xlYW4gbUhpZGRlblNTSUQ7CiAgICAgLyoqIFJlY2VpdmVkIFNpZ25hbCBTdHJlbmd0aCBJbmRpY2F0b3IgKi8KICAgICBwcml2YXRlIGludCBtUnNzaTsKIApAQCAtODYsNyArODUsNiBAQAogICAgICAgICBtU3VwcGxpY2FudFN0YXRlID0gU3VwcGxpY2FudFN0YXRlLlVOSU5JVElBTElaRUQ7CiAgICAgICAgIG1Sc3NpID0gLTk5OTk7CiAgICAgICAgIG1MaW5rU3BlZWQgPSAtMTsKLSAgICAgICAgbUhpZGRlblNTSUQgPSBmYWxzZTsKICAgICB9CiAKICAgICAvKioKQEAgLTk5LDcgKzk3LDYgQEAKICAgICAgICAgICAgIG1CU1NJRCA9IHNvdXJjZS5tQlNTSUQ7CiAgICAgICAgICAgICBtV2lmaVNzaWQgPSBzb3VyY2UubVdpZmlTc2lkOwogICAgICAgICAgICAgbU5ldHdvcmtJZCA9IHNvdXJjZS5tTmV0d29ya0lkOwotICAgICAgICAgICAgbUhpZGRlblNTSUQgPSBzb3VyY2UubUhpZGRlblNTSUQ7CiAgICAgICAgICAgICBtUnNzaSA9IHNvdXJjZS5tUnNzaTsKICAgICAgICAgICAgIG1MaW5rU3BlZWQgPSBzb3VyY2UubUxpbmtTcGVlZDsKICAgICAgICAgICAgIG1JcEFkZHJlc3MgPSBzb3VyY2UubUlwQWRkcmVzczsKQEAgLTExMCw4ICsxMDcsNiBAQAogCiAgICAgdm9pZCBzZXRTU0lEKFdpZmlTc2lkIHdpZmlTc2lkKSB7CiAgICAgICAgIG1XaWZpU3NpZCA9IHdpZmlTc2lkOwotICAgICAgICAvLyBuZXR3b3JrIGlzIGNvbnNpZGVyZWQgbm90IGhpZGRlbiBieSBkZWZhdWx0Ci0gICAgICAgIG1IaWRkZW5TU0lEID0gZmFsc2U7CiAgICAgfQogCiAgICAgLyoqCkBAIC0yNDQsMTIgKzIzOSw3IEBACiAgICAgICogU1NJRC1zcGVjaWZpYyBwcm9iZSByZXF1ZXN0IG11c3QgYmUgdXNlZCBmb3Igc2NhbnMuCiAgICAgICovCiAgICAgcHVibGljIGJvb2xlYW4gZ2V0SGlkZGVuU1NJRCgpIHsKLSAgICAgICAgcmV0dXJuIG1IaWRkZW5TU0lEOwotICAgIH0KLQotICAgIC8qKiB7QGhpZGV9ICovCi0gICAgcHVibGljIHZvaWQgc2V0SGlkZGVuU1NJRChib29sZWFuIGhpZGRlblNTSUQpIHsKLSAgICAgICAgbUhpZGRlblNTSUQgPSBoaWRkZW5TU0lEOworICAgICAgICByZXR1cm4gbVdpZmlTc2lkLmlzSGlkZGVuKCk7CiAgICAgfQogCiAgICAvKioKZGlmZiAtLWdpdCBhL3dpZmkvamF2YS9hbmRyb2lkL25ldC93aWZpL1dpZmlNYW5hZ2VyLmphdmEgYi93aWZpL2phdmEvYW5kcm9pZC9uZXQvd2lmaS9XaWZpTWFuYWdlci5qYXZhCmluZGV4IDNiNDdlNjMuLjRjODg3Y2IgMTAwNjQ0Ci0tLSBhL3dpZmkvamF2YS9hbmRyb2lkL25ldC93aWZpL1dpZmlNYW5hZ2VyLmphdmEKKysrIGIvd2lmaS9qYXZhL2FuZHJvaWQvbmV0L3dpZmkvV2lmaU1hbmFnZXIuamF2YQpAQCAtMjE2MywxMyArMjE2Myw2IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvKiogQGhpZGUgKi8KLSAgICBwdWJsaWMgdm9pZCBjYXB0aXZlUG9ydGFsQ2hlY2tDb21wbGV0ZSgpIHsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIG1TZXJ2aWNlLmNhcHRpdmVQb3J0YWxDaGVja0NvbXBsZXRlKCk7Ci0gICAgICAgIH0gY2F0Y2ggKFJlbW90ZUV4Y2VwdGlvbiBlKSB7fQotICAgIH0KLQogICAgIHByb3RlY3RlZCB2b2lkIGZpbmFsaXplKCkgdGhyb3dzIFRocm93YWJsZSB7CiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHNUaHJlYWRSZWZMb2NrKSB7CmRpZmYgLS1naXQgYS93aWZpL2phdmEvYW5kcm9pZC9uZXQvd2lmaS9XaWZpTW9uaXRvci5qYXZhIGIvd2lmaS9qYXZhL2FuZHJvaWQvbmV0L3dpZmkvV2lmaU1vbml0b3IuamF2YQppbmRleCA2ODE3Nzc3Li5hMTg5NTRjIDEwMDY0NAotLS0gYS93aWZpL2phdmEvYW5kcm9pZC9uZXQvd2lmaS9XaWZpTW9uaXRvci5qYXZhCisrKyBiL3dpZmkvamF2YS9hbmRyb2lkL25ldC93aWZpL1dpZmlNb25pdG9yLmphdmEKQEAgLTIwLDI0ICsyMCwxOSBAQAogaW1wb3J0IGFuZHJvaWQubmV0LndpZmkucDJwLldpZmlQMnBDb25maWc7CiBpbXBvcnQgYW5kcm9pZC5uZXQud2lmaS5wMnAuV2lmaVAycERldmljZTsKIGltcG9ydCBhbmRyb2lkLm5ldC53aWZpLnAycC5XaWZpUDJwR3JvdXA7Ci1pbXBvcnQgYW5kcm9pZC5uZXQud2lmaS5wMnAuV2lmaVAycFNlcnZpY2U7Ci1pbXBvcnQgYW5kcm9pZC5uZXQud2lmaS5wMnAuV2lmaVAycFNlcnZpY2UuUDJwU3RhdHVzOwogaW1wb3J0IGFuZHJvaWQubmV0LndpZmkucDJwLldpZmlQMnBQcm92RGlzY0V2ZW50OworaW1wb3J0IGFuZHJvaWQubmV0LndpZmkucDJwLldpZmlQMnBTZXJ2aWNlLlAycFN0YXR1czsKIGltcG9ydCBhbmRyb2lkLm5ldC53aWZpLnAycC5uc2QuV2lmaVAycFNlcnZpY2VSZXNwb25zZTsKLWltcG9ydCBhbmRyb2lkLm5ldC53aWZpLlN0YXRlQ2hhbmdlUmVzdWx0OwogaW1wb3J0IGFuZHJvaWQub3MuTWVzc2FnZTsKIGltcG9ydCBhbmRyb2lkLnV0aWwuTG9nOwogCi0KIGltcG9ydCBjb20uYW5kcm9pZC5pbnRlcm5hbC51dGlsLlByb3RvY29sOwogaW1wb3J0IGNvbS5hbmRyb2lkLmludGVybmFsLnV0aWwuU3RhdGVNYWNoaW5lOwogCiBpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7Ci1pbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOwogaW1wb3J0IGphdmEudXRpbC5MaXN0OwotaW1wb3J0IGphdmEudXRpbC5NYXA7Ci1pbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CiBpbXBvcnQgamF2YS51dGlsLnJlZ2V4Lk1hdGNoZXI7CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CiAKIC8qKgogICogTGlzdGVucyBmb3IgZXZlbnRzIGZyb20gdGhlIHdwYV9zdXBwbGljYW50IHNlcnZlciwgYW5kIHBhc3NlcyB0aGVtIG9uCkBAIC0zMzcsMTAgKzMzMiw2IEBACiAKICAgICAvKiBJbmRpY2F0ZXMgYXNzb2MgcmVqZWN0IGV2ZW50ICovCiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVNTT0NJQVRJT05fUkVKRUNUSU9OX0VWRU5UICAgICAgICAgID0gQkFTRSArIDQzOwotICAgIC8qKgotICAgICAqIFRoaXMgaW5kaWNhdGVzIHRoZSBzdXBwbGljYW50IGNvbm5lY3Rpb24gZm9yIHRoZSBtb25pdG9yIGlzIGNsb3NlZAotICAgICAqLwotICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBNT05JVE9SX1NPQ0tFVF9DTE9TRURfU1RSID0gImNvbm5lY3Rpb24gY2xvc2VkIjsKIAogICAgIC8qKgogICAgICAqIFRoaXMgaW5kaWNhdGVzIGEgcmVhZCBlcnJvciBvbiB0aGUgbW9uaXRvciBzb2NrZXQgY29uZW5jdGlvbgpAQCAtMzU0LDU2ICszNDUsNTcgQEAKIAogICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG1JbnRlcmZhY2VOYW1lOwogICAgIHByaXZhdGUgZmluYWwgV2lmaU5hdGl2ZSBtV2lmaU5hdGl2ZTsKLSAgICBwcml2YXRlIGZpbmFsIFN0YXRlTWFjaGluZSBtV2lmaVN0YXRlTWFjaGluZTsKKyAgICBwcml2YXRlIGZpbmFsIFN0YXRlTWFjaGluZSBtU3RhdGVNYWNoaW5lOwogICAgIHByaXZhdGUgYm9vbGVhbiBtTW9uaXRvcmluZzsKIAorICAgIC8vIFRoaXMgaXMgYSBnbG9iYWwgY291bnRlciwgc2luY2UgaXQncyBub3QgbW9uaXRvciBzcGVjaWZpYy4gSG93ZXZlciwgdGhlIGV4aXN0aW5nCisgICAgLy8gaW1wbGVtZW50YXRpb24gZm9yd2FyZHMgYWxsICJnbG9iYWwiIGNvbnRyb2wgZXZlbnRzIGxpa2UgQ1RSTC1FVkVOVC1URVJNSU5BVElORworICAgIC8vIHRvIHRoZSBwMnAwIG1vbml0b3IuIElzIHRoYXQgZXhwZWN0ZWQgPyBJdCBzZWVtcyBhIGJpdCBzdXJwcmlzaW5nLgorICAgIC8vCisgICAgLy8gVE9ETzogSWYgdGhlIHAycDAgbW9uaXRvciBpc24ndCByZWdpc3RlcmVkLCB0aGUgYmVoYXZpb3VyIGlzIGV2ZW4gbW9yZSBzdXJwcmlzaW5nLgorICAgIC8vIFRoZSBldmVudCB3aWxsIGJlIGRpc3BhdGNoZWQgdG8gYWxsIG1vbml0b3JzLCBhbmQgZWFjaCBvZiB0aGVtIHdpbGwgZW5kIHVwIGluY3JlbWVudGluZworICAgIC8vIGl0IGluIHRoZWlyIGRpc3BhdGNoWFhYIG1ldGhvZC4gSWYgd2UgaGF2ZSA1IHJlZ2lzdGVyZWQgbW9uaXRvcnMgKHNheSksIDIgY29uc2VjdXRpdmUKKyAgICAvLyByZWN2IGVycm9ycyB3aWxsIGNhdXNlIHVzIHRvIGRpc2Nvbm5lY3QgZnJvbSB0aGUgc3VwcGxpY2FudCAoaW5zdGVhZCBvZiB0aGUgaW50ZW5kZWQgMTApLgorICAgIC8vCisgICAgLy8gVGhpcyB2YXJpYWJsZSBpcyBhbHdheXMgYWNjZXNzZWQgYW5kIG1vZGlmaWVkIHVuZGVyIGEgV2lmaU1vbml0b3JTaW5nbGV0b24gbG9jay4KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgc1JlY3ZFcnJvcnM7CisKICAgICBwdWJsaWMgV2lmaU1vbml0b3IoU3RhdGVNYWNoaW5lIHdpZmlTdGF0ZU1hY2hpbmUsIFdpZmlOYXRpdmUgd2lmaU5hdGl2ZSkgewogICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJDcmVhdGluZyBXaWZpTW9uaXRvciIpOwogICAgICAgICBtV2lmaU5hdGl2ZSA9IHdpZmlOYXRpdmU7CiAgICAgICAgIG1JbnRlcmZhY2VOYW1lID0gd2lmaU5hdGl2ZS5tSW50ZXJmYWNlTmFtZTsKLSAgICAgICAgbVdpZmlTdGF0ZU1hY2hpbmUgPSB3aWZpU3RhdGVNYWNoaW5lOworICAgICAgICBtU3RhdGVNYWNoaW5lID0gd2lmaVN0YXRlTWFjaGluZTsKICAgICAgICAgbU1vbml0b3JpbmcgPSBmYWxzZTsKIAotICAgICAgICBXaWZpTW9uaXRvclNpbmdsZXRvbi5nZXRNb25pdG9yKCkucmVnaXN0ZXJJbnRlcmZhY2VNb25pdG9yKG1JbnRlcmZhY2VOYW1lLCB0aGlzKTsKKyAgICAgICAgV2lmaU1vbml0b3JTaW5nbGV0b24uc0luc3RhbmNlLnJlZ2lzdGVySW50ZXJmYWNlTW9uaXRvcihtSW50ZXJmYWNlTmFtZSwgdGhpcyk7CiAgICAgfQogCiAgICAgcHVibGljIHZvaWQgc3RhcnRNb25pdG9yaW5nKCkgewotICAgICAgICBXaWZpTW9uaXRvclNpbmdsZXRvbi5nZXRNb25pdG9yKCkuc3RhcnRNb25pdG9yaW5nKG1JbnRlcmZhY2VOYW1lKTsKKyAgICAgICAgV2lmaU1vbml0b3JTaW5nbGV0b24uc0luc3RhbmNlLnN0YXJ0TW9uaXRvcmluZyhtSW50ZXJmYWNlTmFtZSk7CiAgICAgfQogCiAgICAgcHVibGljIHZvaWQgc3RvcE1vbml0b3JpbmcoKSB7Ci0gICAgICAgIFdpZmlNb25pdG9yU2luZ2xldG9uLmdldE1vbml0b3IoKS5zdG9wTW9uaXRvcmluZyhtSW50ZXJmYWNlTmFtZSk7CisgICAgICAgIFdpZmlNb25pdG9yU2luZ2xldG9uLnNJbnN0YW5jZS5zdG9wTW9uaXRvcmluZyhtSW50ZXJmYWNlTmFtZSk7CiAgICAgfQogCiAgICAgcHVibGljIHZvaWQgc3RvcFN1cHBsaWNhbnQoKSB7Ci0gICAgICAgIFdpZmlNb25pdG9yU2luZ2xldG9uLmdldE1vbml0b3IoKS5zdG9wU3VwcGxpY2FudCgpOworICAgICAgICBXaWZpTW9uaXRvclNpbmdsZXRvbi5zSW5zdGFuY2Uuc3RvcFN1cHBsaWNhbnQoKTsKICAgICB9CiAKICAgICBwdWJsaWMgdm9pZCBraWxsU3VwcGxpY2FudChib29sZWFuIHAycFN1cHBvcnRlZCkgewotICAgICAgICBXaWZpTW9uaXRvclNpbmdsZXRvbi5nZXRNb25pdG9yKCkua2lsbFN1cHBsaWNhbnQocDJwU3VwcG9ydGVkKTsKKyAgICAgICAgV2lmaU1vbml0b3JTaW5nbGV0b24uc0luc3RhbmNlLmtpbGxTdXBwbGljYW50KHAycFN1cHBvcnRlZCk7CiAgICAgfQogCiAgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgV2lmaU1vbml0b3JTaW5nbGV0b24gewotICAgICAgICBwcml2YXRlIHN0YXRpYyBPYmplY3Qgc1NpbmdsZXRvbkxvY2sgPSBuZXcgT2JqZWN0KCk7Ci0gICAgICAgIHByaXZhdGUgc3RhdGljIFdpZmlNb25pdG9yU2luZ2xldG9uIHNXaWZpTW9uaXRvclNpbmdsZXRvbiA9IG51bGw7Ci0gICAgICAgIHByaXZhdGUgSGFzaE1hcDxTdHJpbmcsIFdpZmlNb25pdG9yPiBtSWZhY2VNYXAgPSBuZXcgSGFzaE1hcDxTdHJpbmcsIFdpZmlNb25pdG9yPigpOworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBXaWZpTW9uaXRvclNpbmdsZXRvbiBzSW5zdGFuY2UgPSBuZXcgV2lmaU1vbml0b3JTaW5nbGV0b24oKTsKKworICAgICAgICBwcml2YXRlIGZpbmFsIEhhc2hNYXA8U3RyaW5nLCBXaWZpTW9uaXRvcj4gbUlmYWNlTWFwID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBXaWZpTW9uaXRvcj4oKTsKICAgICAgICAgcHJpdmF0ZSBib29sZWFuIG1Db25uZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgcHJpdmF0ZSBXaWZpTmF0aXZlIG1XaWZpTmF0aXZlOwogCiAgICAgICAgIHByaXZhdGUgV2lmaU1vbml0b3JTaW5nbGV0b24oKSB7CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgV2lmaU1vbml0b3JTaW5nbGV0b24gZ2V0TW9uaXRvcigpIHsKLSAgICAgICAgICAgIGlmIChEQkcpIExvZy5kKFRBRywgIldpZmlNb25pdG9yU2luZ2xldG9uIGdvdHRlbiIpOwotICAgICAgICAgICAgc3luY2hyb25pemVkIChzU2luZ2xldG9uTG9jaykgewotICAgICAgICAgICAgICAgIGlmIChzV2lmaU1vbml0b3JTaW5nbGV0b24gPT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJXaWZpTW9uaXRvclNpbmdsZXRvbiBjcmVhdGVkIik7Ci0gICAgICAgICAgICAgICAgICAgIHNXaWZpTW9uaXRvclNpbmdsZXRvbiA9IG5ldyBXaWZpTW9uaXRvclNpbmdsZXRvbigpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBzV2lmaU1vbml0b3JTaW5nbGV0b247Ci0gICAgICAgIH0KLQogICAgICAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgc3RhcnRNb25pdG9yaW5nKFN0cmluZyBpZmFjZSkgewogICAgICAgICAgICAgV2lmaU1vbml0b3IgbSA9IG1JZmFjZU1hcC5nZXQoaWZhY2UpOwogICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgewpAQCAtNDE1LDE0ICs0MDcsMTQgQEAKIAogICAgICAgICAgICAgaWYgKG1Db25uZWN0ZWQpIHsKICAgICAgICAgICAgICAgICBtLm1Nb25pdG9yaW5nID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBtLm1XaWZpU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFNVUF9DT05ORUNUSU9OX0VWRU5UKTsKKyAgICAgICAgICAgICAgICBtLm1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoU1VQX0NPTk5FQ1RJT05fRVZFTlQpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJjb25uZWN0aW5nIHRvIHN1cHBsaWNhbnQiKTsKICAgICAgICAgICAgICAgICBpbnQgY29ubmVjdFRyaWVzID0gMDsKICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICBpZiAobVdpZmlOYXRpdmUuY29ubmVjdFRvU3VwcGxpY2FudCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBtLm1Nb25pdG9yaW5nID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG0ubVdpZmlTdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoU1VQX0NPTk5FQ1RJT05fRVZFTlQpOworICAgICAgICAgICAgICAgICAgICAgICAgbS5tU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFNVUF9DT05ORUNUSU9OX0VWRU5UKTsKICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBNb25pdG9yVGhyZWFkKG1XaWZpTmF0aXZlLCB0aGlzKS5zdGFydCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgbUNvbm5lY3RlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTQzNCw3ICs0MjYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgbUlmYWNlTWFwLnJlbW92ZShpZmFjZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtLm1XaWZpU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFNVUF9ESVNDT05ORUNUSU9OX0VWRU5UKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG0ubVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShTVVBfRElTQ09OTkVDVElPTl9FVkVOVCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJzdGFydE1vbml0b3JpbmcoIiArIGlmYWNlICsgIikgZmFpbGVkISIpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTQ0NCwxMyArNDM2LDEzIEBACiAKICAgICAgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHN0b3BNb25pdG9yaW5nKFN0cmluZyBpZmFjZSkgewogICAgICAgICAgICAgV2lmaU1vbml0b3IgbSA9IG1JZmFjZU1hcC5nZXQoaWZhY2UpOwotICAgICAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAic3RvcE1vbml0b3JpbmcoIiArIGlmYWNlICsgIikgPSAiICsgbS5tV2lmaVN0YXRlTWFjaGluZSk7CisgICAgICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJzdG9wTW9uaXRvcmluZygiICsgaWZhY2UgKyAiKSA9ICIgKyBtLm1TdGF0ZU1hY2hpbmUpOwogICAgICAgICAgICAgbS5tTW9uaXRvcmluZyA9IGZhbHNlOwotICAgICAgICAgICAgbS5tV2lmaVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShTVVBfRElTQ09OTkVDVElPTl9FVkVOVCk7CisgICAgICAgICAgICBtLm1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoU1VQX0RJU0NPTk5FQ1RJT05fRVZFTlQpOwogICAgICAgICB9CiAKICAgICAgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHJlZ2lzdGVySW50ZXJmYWNlTW9uaXRvcihTdHJpbmcgaWZhY2UsIFdpZmlNb25pdG9yIG0pIHsKLSAgICAgICAgICAgIGlmIChEQkcpIExvZy5kKFRBRywgInJlZ2lzdGVySW50ZXJmYWNlKCIgKyBpZmFjZSArICIrIiArIG0ubVdpZmlTdGF0ZU1hY2hpbmUgKyAiKSIpOworICAgICAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAicmVnaXN0ZXJJbnRlcmZhY2UoIiArIGlmYWNlICsgIisiICsgbS5tU3RhdGVNYWNoaW5lICsgIikiKTsKICAgICAgICAgICAgIG1JZmFjZU1hcC5wdXQoaWZhY2UsIG0pOwogICAgICAgICAgICAgaWYgKG1XaWZpTmF0aXZlID09IG51bGwpIHsKICAgICAgICAgICAgICAgICBtV2lmaU5hdGl2ZSA9IG0ubVdpZmlOYXRpdmU7CkBAIC00NjIsNyArNDU0LDcgQEAKICAgICAgICAgICAgIC8vIG9iamVjdHMgd2lsbCByZW1haW4gaW4gdGhlIG1JZmFjZU1hcDsgYW5kIHdvbid0IGV2ZXIgZ2V0IGRlbGV0ZWQKIAogICAgICAgICAgICAgV2lmaU1vbml0b3IgbSA9IG1JZmFjZU1hcC5yZW1vdmUoaWZhY2UpOwotICAgICAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAidW5yZWdpc3RlckludGVyZmFjZSgiICsgaWZhY2UgKyAiKyIgKyBtLm1XaWZpU3RhdGVNYWNoaW5lICsgIikiKTsKKyAgICAgICAgICAgIGlmIChEQkcpIExvZy5kKFRBRywgInVucmVnaXN0ZXJJbnRlcmZhY2UoIiArIGlmYWNlICsgIisiICsgbS5tU3RhdGVNYWNoaW5lICsgIikiKTsKICAgICAgICAgfQogCiAgICAgICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBzdG9wU3VwcGxpY2FudCgpIHsKQEAgLTQ3MCwyNiArNDYyLDc0IEBACiAgICAgICAgIH0KIAogICAgICAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQga2lsbFN1cHBsaWNhbnQoYm9vbGVhbiBwMnBTdXBwb3J0ZWQpIHsKLSAgICAgICAgICAgIG1XaWZpTmF0aXZlLmtpbGxTdXBwbGljYW50KHAycFN1cHBvcnRlZCk7CisgICAgICAgICAgICBXaWZpTmF0aXZlLmtpbGxTdXBwbGljYW50KHAycFN1cHBvcnRlZCk7CiAgICAgICAgICAgICBtQ29ubmVjdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBJdGVyYXRvcjxNYXAuRW50cnk8U3RyaW5nLCBXaWZpTW9uaXRvcj4+IGl0ID0gbUlmYWNlTWFwLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKLSAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBNYXAuRW50cnk8U3RyaW5nLCBXaWZpTW9uaXRvcj4gZSA9IGl0Lm5leHQoKTsKLSAgICAgICAgICAgICAgICBXaWZpTW9uaXRvciBtID0gZS5nZXRWYWx1ZSgpOworICAgICAgICAgICAgZm9yIChXaWZpTW9uaXRvciBtIDogbUlmYWNlTWFwLnZhbHVlcygpKSB7CiAgICAgICAgICAgICAgICAgbS5tTW9uaXRvcmluZyA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgV2lmaU1vbml0b3IgZ2V0TW9uaXRvcihTdHJpbmcgaWZhY2UpIHsKLSAgICAgICAgICAgIHJldHVybiBtSWZhY2VNYXAuZ2V0KGlmYWNlKTsKKyAgICAgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KFN0cmluZyBldmVudFN0cikgeworICAgICAgICAgICAgU3RyaW5nIGlmYWNlOworICAgICAgICAgICAgaWYgKGV2ZW50U3RyLnN0YXJ0c1dpdGgoIklGTkFNRT0iKSkgeworICAgICAgICAgICAgICAgIGludCBzcGFjZSA9IGV2ZW50U3RyLmluZGV4T2YoJyAnKTsKKyAgICAgICAgICAgICAgICBpZiAoc3BhY2UgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWZhY2UgPSBldmVudFN0ci5zdWJzdHJpbmcoNywgc3BhY2UpOworICAgICAgICAgICAgICAgICAgICBpZiAoIW1JZmFjZU1hcC5jb250YWluc0tleShpZmFjZSkgJiYgaWZhY2Uuc3RhcnRzV2l0aCgicDJwLSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBwMnAgaW50ZXJmYWNlcyBhcmUgY3JlYXRlZCBkeW5hbWljYWxseSwgYnV0IHdlIGhhdmUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgb25lIFAycCBzdGF0ZSBtYWNoaW5lIG1vbml0b3JpbmcgYWxsIG9mIHRoZW07IGxvb2sKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBpdCBleHBsaWNpdGx5LCBhbmQgc2VuZCBtZXNzYWdlcyB0aGVyZSAuLgorICAgICAgICAgICAgICAgICAgICAgICAgaWZhY2UgPSAicDJwMCI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZXZlbnRTdHIgPSBldmVudFN0ci5zdWJzdHJpbmcoc3BhY2UgKyAxKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBObyBwb2ludCBkaXNwYXRjaGluZyB0aGlzIGV2ZW50IHRvIGFueSBpbnRlcmZhY2UsIHRoZSBkaXNwYXRjaGVkCisgICAgICAgICAgICAgICAgICAgIC8vIGV2ZW50IHN0cmluZyB3aWxsIGJlZ2luIHdpdGggIklGTkFNRT0iIHdoaWNoIGRpc3BhdGNoRXZlbnQgY2FuJ3QgcmVhbGx5CisgICAgICAgICAgICAgICAgICAgIC8vIGRvIGFueXRoaW5nIGFib3V0LgorICAgICAgICAgICAgICAgICAgICBMb2cuZShUQUcsICJEcm9wcGluZyBtYWxmb3JtZWQgZXZlbnQgKHVucGFyc2FibGUgaWZhY2UpOiAiICsgZXZlbnRTdHIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBldmVudHMgd2l0aG91dCBwcmVmaXggYmVsb25nIHRvIHAycDAgbW9uaXRvcgorICAgICAgICAgICAgICAgIGlmYWNlID0gInAycDAiOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJEaXNwYXRjaGluZyBldmVudCB0byBpbnRlcmZhY2U6ICIgKyBpZmFjZSk7CisKKyAgICAgICAgICAgIFdpZmlNb25pdG9yIG0gPSBtSWZhY2VNYXAuZ2V0KGlmYWNlKTsKKyAgICAgICAgICAgIGlmIChtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAobS5tTW9uaXRvcmluZykgeworICAgICAgICAgICAgICAgICAgICBpZiAobS5kaXNwYXRjaEV2ZW50KGV2ZW50U3RyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbUNvbm5lY3RlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAiRHJvcHBpbmcgZXZlbnQgYmVjYXVzZSAoIiArIGlmYWNlICsgIikgaXMgc3RvcHBlZCIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJTZW5kaW5nIHRvIGFsbCBtb25pdG9ycyBiZWNhdXNlIHRoZXJlJ3Mgbm8gbWF0Y2hpbmcgaWZhY2UiKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGRvbmUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKFdpZmlNb25pdG9yIG1vbml0b3IgOiBtSWZhY2VNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1vbml0b3IubU1vbml0b3JpbmcgJiYgbW9uaXRvci5kaXNwYXRjaEV2ZW50KGV2ZW50U3RyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgICAgICAgICBtQ29ubmVjdGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0dXJuIGRvbmU7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKICAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBNb25pdG9yVGhyZWFkIGV4dGVuZHMgVGhyZWFkIHsKICAgICAgICAgcHJpdmF0ZSBmaW5hbCBXaWZpTmF0aXZlIG1XaWZpTmF0aXZlOwogICAgICAgICBwcml2YXRlIGZpbmFsIFdpZmlNb25pdG9yU2luZ2xldG9uIG1XaWZpTW9uaXRvclNpbmdsZXRvbjsKLSAgICAgICAgcHJpdmF0ZSBpbnQgbVJlY3ZFcnJvcnMgPSAwOwotICAgICAgICBwcml2YXRlIFN0YXRlTWFjaGluZSBtU3RhdGVNYWNoaW5lID0gbnVsbDsKIAogICAgICAgICBwdWJsaWMgTW9uaXRvclRocmVhZChXaWZpTmF0aXZlIHdpZmlOYXRpdmUsIFdpZmlNb25pdG9yU2luZ2xldG9uIHdpZmlNb25pdG9yU2luZ2xldG9uKSB7CiAgICAgICAgICAgICBzdXBlcigiV2lmaU1vbml0b3IiKTsKQEAgLTUwNyw0NDUgKzU0NywzOTAgQEAKICAgICAgICAgICAgICAgICAgICAgTG9nLmQoVEFHLCAiRXZlbnQgWyIgKyBldmVudFN0ciArICJdIik7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgU3RyaW5nIGlmYWNlID0gInAycDAiOwotICAgICAgICAgICAgICAgIFdpZmlNb25pdG9yIG0gPSBudWxsOwotICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUgPSBudWxsOwotCi0gICAgICAgICAgICAgICAgaWYgKGV2ZW50U3RyLnN0YXJ0c1dpdGgoIklGTkFNRT0iKSkgewotICAgICAgICAgICAgICAgICAgICBpbnQgc3BhY2UgPSBldmVudFN0ci5pbmRleE9mKCcgJyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzcGFjZSAhPSAtMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWZhY2UgPSBldmVudFN0ci5zdWJzdHJpbmcoNyxzcGFjZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtID0gbVdpZmlNb25pdG9yU2luZ2xldG9uLmdldE1vbml0b3IoaWZhY2UpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCAmJiBpZmFjZS5zdGFydHNXaXRoKCJwMnAtIikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwMnAgaW50ZXJmYWNlcyBhcmUgY3JlYXRlZCBkeW5hbWljYWxseSwgYnV0IHdlIGhhdmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IG9uZSBQMnAgc3RhdGUgbWFjaGluZSBtb25pdG9yaW5nIGFsbCBvZiB0aGVtOyBsb29rCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIGl0IGV4cGxpY2l0bHksIGFuZCBzZW5kIG1lc3NhZ2VzIHRoZXJlIC4uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbSA9IG1XaWZpTW9uaXRvclNpbmdsZXRvbi5nZXRNb25pdG9yKCJwMnAwIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBldmVudFN0ciA9IGV2ZW50U3RyLnN1YnN0cmluZyhzcGFjZSArIDEpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gZXZlbnRzIHdpdGhvdXQgcHJlZml4IGJlbG9uZyB0byBwMnAwIG1vbml0b3IKLSAgICAgICAgICAgICAgICAgICAgbSA9IG1XaWZpTW9uaXRvclNpbmdsZXRvbi5nZXRNb25pdG9yKCJwMnAwIik7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKG0gIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBpZiAobS5tTW9uaXRvcmluZykgewotICAgICAgICAgICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZSA9IG0ubVdpZmlTdGF0ZU1hY2hpbmU7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoREJHKSBMb2cuZChUQUcsICJEcm9wcGluZyBldmVudCBiZWNhdXNlIG1vbml0b3IgKCIgKyBpZmFjZSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIGlzIHN0b3BwZWQiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKG1TdGF0ZU1hY2hpbmUgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoZGlzcGF0Y2hFdmVudChldmVudFN0cikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAiU2VuZGluZyB0byBhbGwgbW9uaXRvcnMgYmVjYXVzZSB0aGVyZSdzIG5vIGludGVyZmFjZSBpZCIpOwotICAgICAgICAgICAgICAgICAgICBib29sZWFuIGRvbmUgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3I8TWFwLkVudHJ5PFN0cmluZywgV2lmaU1vbml0b3I+PiBpdCA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbVdpZmlNb25pdG9yU2luZ2xldG9uLm1JZmFjZU1hcC5lbnRyeVNldCgpLml0ZXJhdG9yKCk7Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIE1hcC5FbnRyeTxTdHJpbmcsIFdpZmlNb25pdG9yPiBlID0gaXQubmV4dCgpOwotICAgICAgICAgICAgICAgICAgICAgICAgbSA9IGUuZ2V0VmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUgPSBtLm1XaWZpU3RhdGVNYWNoaW5lOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpc3BhdGNoRXZlbnQoZXZlbnRTdHIpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBpZiAoZG9uZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWZ0ZXIgdGhpcyB0aHJlYWQgdGVybWluYXRlcywgd2UnbGwgbm8gbG9uZ2VyCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBiZSBjb25uZWN0ZWQgdG8gdGhlIHN1cHBsaWNhbnQKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChEQkcpIExvZy5kKFRBRywgIkRpc2Nvbm5lY3RpbmcgZnJvbSB0aGUgc3VwcGxpY2FudCwgbm8gbW9yZSBldmVudHMiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1XaWZpTW9uaXRvclNpbmdsZXRvbi5tQ29ubmVjdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtV2lmaU1vbml0b3JTaW5nbGV0b24uZGlzcGF0Y2hFdmVudChldmVudFN0cikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAiRGlzY29ubmVjdGluZyBmcm9tIHRoZSBzdXBwbGljYW50LCBubyBtb3JlIGV2ZW50cyIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICB9CiAKLSAgICAgICAgLyogQHJldHVybiB0cnVlIGlmIHRoZSBldmVudCB3YXMgc3VwcGxpY2FudCBkaXNjb25uZWN0aW9uICovCi0gICAgICAgIHByaXZhdGUgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KFN0cmluZyBldmVudFN0cikgeworICAgIC8qIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZXZlbnQgd2FzIHN1cHBsaWNhbnQgZGlzY29ubmVjdGlvbiAqLworICAgIHByaXZhdGUgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KFN0cmluZyBldmVudFN0cikgewogCi0gICAgICAgICAgICBpZiAoIWV2ZW50U3RyLnN0YXJ0c1dpdGgoRVZFTlRfUFJFRklYX1NUUikpIHsKLSAgICAgICAgICAgICAgICBpZiAoZXZlbnRTdHIuc3RhcnRzV2l0aChXUEFfRVZFTlRfUFJFRklYX1NUUikgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgIDAgPCBldmVudFN0ci5pbmRleE9mKFBBU1NXT1JEX01BWV9CRV9JTkNPUlJFQ1RfU1RSKSkgewotICAgICAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKEFVVEhFTlRJQ0FUSU9OX0ZBSUxVUkVfRVZFTlQpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnRTdHIuc3RhcnRzV2l0aChXUFNfU1VDQ0VTU19TVFIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoV1BTX1NVQ0NFU1NfRVZFTlQpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnRTdHIuc3RhcnRzV2l0aChXUFNfRkFJTF9TVFIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGhhbmRsZVdwc0ZhaWxFdmVudChldmVudFN0cik7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudFN0ci5zdGFydHNXaXRoKFdQU19PVkVSTEFQX1NUUikpIHsKLSAgICAgICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShXUFNfT1ZFUkxBUF9FVkVOVCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudFN0ci5zdGFydHNXaXRoKFdQU19USU1FT1VUX1NUUikpIHsKLSAgICAgICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShXUFNfVElNRU9VVF9FVkVOVCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudFN0ci5zdGFydHNXaXRoKFAyUF9FVkVOVF9QUkVGSVhfU1RSKSkgewotICAgICAgICAgICAgICAgICAgICBoYW5kbGVQMnBFdmVudHMoZXZlbnRTdHIpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnRTdHIuc3RhcnRzV2l0aChIT1NUX0FQX0VWRU5UX1BSRUZJWF9TVFIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGhhbmRsZUhvc3RBcEV2ZW50cyhldmVudFN0cik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiAoREJHKSBMb2cudyhUQUcsICJjb3VsZG4ndCBpZGVudGlmeSBldmVudCB0eXBlIC0gIiArIGV2ZW50U3RyKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWV2ZW50U3RyLnN0YXJ0c1dpdGgoRVZFTlRfUFJFRklYX1NUUikpIHsKKyAgICAgICAgICAgIGlmIChldmVudFN0ci5zdGFydHNXaXRoKFdQQV9FVkVOVF9QUkVGSVhfU1RSKSAmJgorICAgICAgICAgICAgICAgICAgICAwIDwgZXZlbnRTdHIuaW5kZXhPZihQQVNTV09SRF9NQVlfQkVfSU5DT1JSRUNUX1NUUikpIHsKKyAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKEFVVEhFTlRJQ0FUSU9OX0ZBSUxVUkVfRVZFTlQpOworICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudFN0ci5zdGFydHNXaXRoKFdQU19TVUNDRVNTX1NUUikpIHsKKyAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFdQU19TVUNDRVNTX0VWRU5UKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnRTdHIuc3RhcnRzV2l0aChXUFNfRkFJTF9TVFIpKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlV3BzRmFpbEV2ZW50KGV2ZW50U3RyKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnRTdHIuc3RhcnRzV2l0aChXUFNfT1ZFUkxBUF9TVFIpKSB7CisgICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShXUFNfT1ZFUkxBUF9FVkVOVCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50U3RyLnN0YXJ0c1dpdGgoV1BTX1RJTUVPVVRfU1RSKSkgeworICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoV1BTX1RJTUVPVVRfRVZFTlQpOworICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudFN0ci5zdGFydHNXaXRoKFAyUF9FVkVOVF9QUkVGSVhfU1RSKSkgeworICAgICAgICAgICAgICAgIGhhbmRsZVAycEV2ZW50cyhldmVudFN0cik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50U3RyLnN0YXJ0c1dpdGgoSE9TVF9BUF9FVkVOVF9QUkVGSVhfU1RSKSkgeworICAgICAgICAgICAgICAgIGhhbmRsZUhvc3RBcEV2ZW50cyhldmVudFN0cik7CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFN0cmluZyBldmVudE5hbWUgPSBldmVudFN0ci5zdWJzdHJpbmcoRVZFTlRfUFJFRklYX0xFTl9TVFIpOwotICAgICAgICAgICAgaW50IG5hbWVFbmQgPSBldmVudE5hbWUuaW5kZXhPZignICcpOwotICAgICAgICAgICAgaWYgKG5hbWVFbmQgIT0gLTEpCi0gICAgICAgICAgICAgICAgZXZlbnROYW1lID0gZXZlbnROYW1lLnN1YnN0cmluZygwLCBuYW1lRW5kKTsKLSAgICAgICAgICAgIGlmIChldmVudE5hbWUubGVuZ3RoKCkgPT0gMCkgewotICAgICAgICAgICAgICAgIGlmIChEQkcpIExvZy5pKFRBRywgIlJlY2VpdmVkIHdwYV9zdXBwbGljYW50IGV2ZW50IHdpdGggZW1wdHkgZXZlbnQgbmFtZSIpOwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChEQkcpIExvZy53KFRBRywgImNvdWxkbid0IGlkZW50aWZ5IGV2ZW50IHR5cGUgLSAiICsgZXZlbnRTdHIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIE1hcCBldmVudCBuYW1lIGludG8gZXZlbnQgZW51bQotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBpbnQgZXZlbnQ7Ci0gICAgICAgICAgICBpZiAoZXZlbnROYW1lLmVxdWFscyhDT05ORUNURURfU1RSKSkKLSAgICAgICAgICAgICAgICBldmVudCA9IENPTk5FQ1RFRDsKLSAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50TmFtZS5lcXVhbHMoRElTQ09OTkVDVEVEX1NUUikpCi0gICAgICAgICAgICAgICAgZXZlbnQgPSBESVNDT05ORUNURUQ7Ci0gICAgICAgICAgICBlbHNlIGlmIChldmVudE5hbWUuZXF1YWxzKFNUQVRFX0NIQU5HRV9TVFIpKQotICAgICAgICAgICAgICAgIGV2ZW50ID0gU1RBVEVfQ0hBTkdFOwotICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnROYW1lLmVxdWFscyhTQ0FOX1JFU1VMVFNfU1RSKSkKLSAgICAgICAgICAgICAgICBldmVudCA9IFNDQU5fUkVTVUxUUzsKLSAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50TmFtZS5lcXVhbHMoTElOS19TUEVFRF9TVFIpKQotICAgICAgICAgICAgICAgIGV2ZW50ID0gTElOS19TUEVFRDsKLSAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50TmFtZS5lcXVhbHMoVEVSTUlOQVRJTkdfU1RSKSkKLSAgICAgICAgICAgICAgICBldmVudCA9IFRFUk1JTkFUSU5HOwotICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnROYW1lLmVxdWFscyhEUklWRVJfU1RBVEVfU1RSKSkKLSAgICAgICAgICAgICAgICBldmVudCA9IERSSVZFUl9TVEFURTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50TmFtZS5lcXVhbHMoRUFQX0ZBSUxVUkVfU1RSKSkKLSAgICAgICAgICAgICAgICBldmVudCA9IEVBUF9GQUlMVVJFOwotICAgICAgICAgICAgZWxzZSBpZiAoZXZlbnROYW1lLmVxdWFscyhBU1NPQ19SRUpFQ1RfU1RSKSkKLSAgICAgICAgICAgICAgICBldmVudCA9IEFTU09DX1JFSkVDVDsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBldmVudCA9IFVOS05PV047Ci0KLSAgICAgICAgICAgIFN0cmluZyBldmVudERhdGEgPSBldmVudFN0cjsKLSAgICAgICAgICAgIGlmIChldmVudCA9PSBEUklWRVJfU1RBVEUgfHwgZXZlbnQgPT0gTElOS19TUEVFRCkKLSAgICAgICAgICAgICAgICBldmVudERhdGEgPSBldmVudERhdGEuc3BsaXQoIiAiKVsxXTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IFNUQVRFX0NIQU5HRSB8fCBldmVudCA9PSBFQVBfRkFJTFVSRSkgewotICAgICAgICAgICAgICAgIGludCBpbmQgPSBldmVudFN0ci5pbmRleE9mKCIgIik7Ci0gICAgICAgICAgICAgICAgaWYgKGluZCAhPSAtMSkgewotICAgICAgICAgICAgICAgICAgICBldmVudERhdGEgPSBldmVudFN0ci5zdWJzdHJpbmcoaW5kICsgMSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpbnQgaW5kID0gZXZlbnRTdHIuaW5kZXhPZigiIC0gIik7Ci0gICAgICAgICAgICAgICAgaWYgKGluZCAhPSAtMSkgewotICAgICAgICAgICAgICAgICAgICBldmVudERhdGEgPSBldmVudFN0ci5zdWJzdHJpbmcoaW5kICsgMyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoZXZlbnQgPT0gU1RBVEVfQ0hBTkdFKSB7Ci0gICAgICAgICAgICAgICAgaGFuZGxlU3VwcGxpY2FudFN0YXRlQ2hhbmdlKGV2ZW50RGF0YSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50ID09IERSSVZFUl9TVEFURSkgewotICAgICAgICAgICAgICAgIGhhbmRsZURyaXZlckV2ZW50KGV2ZW50RGF0YSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50ID09IFRFUk1JTkFUSU5HKSB7Ci0gICAgICAgICAgICAgICAgLyoqCi0gICAgICAgICAgICAgICAgICogQ2xvc2UgdGhlIHN1cHBsaWNhbnQgY29ubmVjdGlvbiBpZiB3ZSBzZWUKLSAgICAgICAgICAgICAgICAgKiB0b28gbWFueSByZWN2IGVycm9ycwotICAgICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgIGlmIChldmVudERhdGEuc3RhcnRzV2l0aChXUEFfUkVDVl9FUlJPUl9TVFIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgrK21SZWN2RXJyb3JzID4gTUFYX1JFQ1ZfRVJST1JTKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoREJHKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9nLmQoVEFHLCAidG9vIG1hbnkgcmVjdiBlcnJvcnMsIGNsb3NpbmcgY29ubmVjdGlvbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gbm90aWZ5IGFuZCBleGl0Ci0gICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShTVVBfRElTQ09OTkVDVElPTl9FVkVOVCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50ID09IEVBUF9GQUlMVVJFKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGV2ZW50RGF0YS5zdGFydHNXaXRoKEVBUF9BVVRIX0ZBSUxVUkVfU1RSKSkgewotICAgICAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKEFVVEhFTlRJQ0FUSU9OX0ZBSUxVUkVfRVZFTlQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgPT0gQVNTT0NfUkVKRUNUKSB7Ci0gICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShBU1NPQ0lBVElPTl9SRUpFQ1RJT05fRVZFTlQpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBoYW5kbGVFdmVudChldmVudCwgZXZlbnREYXRhKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1SZWN2RXJyb3JzID0gMDsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAgIHByaXZhdGUgdm9pZCBoYW5kbGVEcml2ZXJFdmVudChTdHJpbmcgc3RhdGUpIHsKLSAgICAgICAgICAgIGlmIChzdGF0ZSA9PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBTdHJpbmcgZXZlbnROYW1lID0gZXZlbnRTdHIuc3Vic3RyaW5nKEVWRU5UX1BSRUZJWF9MRU5fU1RSKTsKKyAgICAgICAgaW50IG5hbWVFbmQgPSBldmVudE5hbWUuaW5kZXhPZignICcpOworICAgICAgICBpZiAobmFtZUVuZCAhPSAtMSkKKyAgICAgICAgICAgIGV2ZW50TmFtZSA9IGV2ZW50TmFtZS5zdWJzdHJpbmcoMCwgbmFtZUVuZCk7CisgICAgICAgIGlmIChldmVudE5hbWUubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKERCRykgTG9nLmkoVEFHLCAiUmVjZWl2ZWQgd3BhX3N1cHBsaWNhbnQgZXZlbnQgd2l0aCBlbXB0eSBldmVudCBuYW1lIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgLyoKKyAgICAgICAgKiBNYXAgZXZlbnQgbmFtZSBpbnRvIGV2ZW50IGVudW0KKyAgICAgICAgKi8KKyAgICAgICAgaW50IGV2ZW50OworICAgICAgICBpZiAoZXZlbnROYW1lLmVxdWFscyhDT05ORUNURURfU1RSKSkKKyAgICAgICAgICAgIGV2ZW50ID0gQ09OTkVDVEVEOworICAgICAgICBlbHNlIGlmIChldmVudE5hbWUuZXF1YWxzKERJU0NPTk5FQ1RFRF9TVFIpKQorICAgICAgICAgICAgZXZlbnQgPSBESVNDT05ORUNURUQ7CisgICAgICAgIGVsc2UgaWYgKGV2ZW50TmFtZS5lcXVhbHMoU1RBVEVfQ0hBTkdFX1NUUikpCisgICAgICAgICAgICBldmVudCA9IFNUQVRFX0NIQU5HRTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnROYW1lLmVxdWFscyhTQ0FOX1JFU1VMVFNfU1RSKSkKKyAgICAgICAgICAgIGV2ZW50ID0gU0NBTl9SRVNVTFRTOworICAgICAgICBlbHNlIGlmIChldmVudE5hbWUuZXF1YWxzKExJTktfU1BFRURfU1RSKSkKKyAgICAgICAgICAgIGV2ZW50ID0gTElOS19TUEVFRDsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnROYW1lLmVxdWFscyhURVJNSU5BVElOR19TVFIpKQorICAgICAgICAgICAgZXZlbnQgPSBURVJNSU5BVElORzsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnROYW1lLmVxdWFscyhEUklWRVJfU1RBVEVfU1RSKSkKKyAgICAgICAgICAgIGV2ZW50ID0gRFJJVkVSX1NUQVRFOworICAgICAgICBlbHNlIGlmIChldmVudE5hbWUuZXF1YWxzKEVBUF9GQUlMVVJFX1NUUikpCisgICAgICAgICAgICBldmVudCA9IEVBUF9GQUlMVVJFOworICAgICAgICBlbHNlIGlmIChldmVudE5hbWUuZXF1YWxzKEFTU09DX1JFSkVDVF9TVFIpKQorICAgICAgICAgICAgZXZlbnQgPSBBU1NPQ19SRUpFQ1Q7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGV2ZW50ID0gVU5LTk9XTjsKKworICAgICAgICBTdHJpbmcgZXZlbnREYXRhID0gZXZlbnRTdHI7CisgICAgICAgIGlmIChldmVudCA9PSBEUklWRVJfU1RBVEUgfHwgZXZlbnQgPT0gTElOS19TUEVFRCkKKyAgICAgICAgICAgIGV2ZW50RGF0YSA9IGV2ZW50RGF0YS5zcGxpdCgiICIpWzFdOworICAgICAgICBlbHNlIGlmIChldmVudCA9PSBTVEFURV9DSEFOR0UgfHwgZXZlbnQgPT0gRUFQX0ZBSUxVUkUpIHsKKyAgICAgICAgICAgIGludCBpbmQgPSBldmVudFN0ci5pbmRleE9mKCIgIik7CisgICAgICAgICAgICBpZiAoaW5kICE9IC0xKSB7CisgICAgICAgICAgICAgICAgZXZlbnREYXRhID0gZXZlbnRTdHIuc3Vic3RyaW5nKGluZCArIDEpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHN0YXRlLmVxdWFscygiSEFOR0VEIikpIHsKLSAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKERSSVZFUl9IVU5HX0VWRU5UKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBpbmQgPSBldmVudFN0ci5pbmRleE9mKCIgLSAiKTsKKyAgICAgICAgICAgIGlmIChpbmQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBldmVudERhdGEgPSBldmVudFN0ci5zdWJzdHJpbmcoaW5kICsgMyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICAvKioKLSAgICAgICAgICogSGFuZGxlIGFsbCBzdXBwbGljYW50IGV2ZW50cyBleGNlcHQgU1RBVEUtQ0hBTkdFCi0gICAgICAgICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdHlwZQotICAgICAgICAgKiBAcGFyYW0gcmVtYWluZGVyIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcgZm9sbG93aW5nIHRoZQotICAgICAgICAgKiBldmVudCBuYW1lIGFuZCAmcXVvdDsmIzgxOTU7JiM4MjEyOyYjODE5NTsmcXVvdDsKLSAgICAgICAgICovCi0gICAgICAgIHZvaWQgaGFuZGxlRXZlbnQoaW50IGV2ZW50LCBTdHJpbmcgcmVtYWluZGVyKSB7Ci0gICAgICAgICAgICBzd2l0Y2ggKGV2ZW50KSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBESVNDT05ORUNURUQ6Ci0gICAgICAgICAgICAgICAgICAgIGhhbmRsZU5ldHdvcmtTdGF0ZUNoYW5nZShOZXR3b3JrSW5mby5EZXRhaWxlZFN0YXRlLkRJU0NPTk5FQ1RFRCwgcmVtYWluZGVyKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICBjYXNlIENPTk5FQ1RFRDoKLSAgICAgICAgICAgICAgICAgICAgaGFuZGxlTmV0d29ya1N0YXRlQ2hhbmdlKE5ldHdvcmtJbmZvLkRldGFpbGVkU3RhdGUuQ09OTkVDVEVELCByZW1haW5kZXIpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgICAgIGNhc2UgU0NBTl9SRVNVTFRTOgotICAgICAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFNDQU5fUkVTVUxUU19FVkVOVCk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgY2FzZSBVTktOT1dOOgotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGUgdm9pZCBoYW5kbGVXcHNGYWlsRXZlbnQoU3RyaW5nIGRhdGFTdHJpbmcpIHsKLSAgICAgICAgICAgIGZpbmFsIFBhdHRlcm4gcCA9IFBhdHRlcm4uY29tcGlsZShXUFNfRkFJTF9QQVRURVJOKTsKLSAgICAgICAgICAgIE1hdGNoZXIgbWF0Y2ggPSBwLm1hdGNoZXIoZGF0YVN0cmluZyk7Ci0gICAgICAgICAgICBpZiAobWF0Y2guZmluZCgpKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIGNmZ0VyciA9IG1hdGNoLmdyb3VwKDEpOwotICAgICAgICAgICAgICAgIFN0cmluZyByZWFzb24gPSBtYXRjaC5ncm91cCgyKTsKLQotICAgICAgICAgICAgICAgIGlmIChyZWFzb24gIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBzd2l0Y2goSW50ZWdlci5wYXJzZUludChyZWFzb24pKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFJFQVNPTl9US0lQX09OTFlfUFJPSElCSVRFRDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKG1TdGF0ZU1hY2hpbmUub2J0YWluTWVzc2FnZShXUFNfRkFJTF9FVkVOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpZmlNYW5hZ2VyLldQU19US0lQX09OTFlfUFJPSElCSVRFRCwgMCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgUkVBU09OX1dFUF9QUk9ISUJJVEVEOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UobVN0YXRlTWFjaGluZS5vYnRhaW5NZXNzYWdlKFdQU19GQUlMX0VWRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2lmaU1hbmFnZXIuV1BTX1dFUF9QUk9ISUJJVEVELCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoZXZlbnQgPT0gU1RBVEVfQ0hBTkdFKSB7CisgICAgICAgICAgICBoYW5kbGVTdXBwbGljYW50U3RhdGVDaGFuZ2UoZXZlbnREYXRhKTsKKyAgICAgICAgfSBlbHNlIGlmIChldmVudCA9PSBEUklWRVJfU1RBVEUpIHsKKyAgICAgICAgICAgIGhhbmRsZURyaXZlckV2ZW50KGV2ZW50RGF0YSk7CisgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgPT0gVEVSTUlOQVRJTkcpIHsKKyAgICAgICAgICAgIC8qKgorICAgICAgICAgICAgICogQ2xvc2UgdGhlIHN1cHBsaWNhbnQgY29ubmVjdGlvbiBpZiB3ZSBzZWUKKyAgICAgICAgICAgICAqIHRvbyBtYW55IHJlY3YgZXJyb3JzCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChldmVudERhdGEuc3RhcnRzV2l0aChXUEFfUkVDVl9FUlJPUl9TVFIpKSB7CisgICAgICAgICAgICAgICAgaWYgKCsrc1JlY3ZFcnJvcnMgPiBNQVhfUkVDVl9FUlJPUlMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERCRykgeworICAgICAgICAgICAgICAgICAgICAgICAgTG9nLmQoVEFHLCAidG9vIG1hbnkgcmVjdiBlcnJvcnMsIGNsb3NpbmcgY29ubmVjdGlvbiIpOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChjZmdFcnIgIT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICBzd2l0Y2goSW50ZWdlci5wYXJzZUludChjZmdFcnIpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENPTkZJR19BVVRIX0ZBSUxVUkU6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShtU3RhdGVNYWNoaW5lLm9idGFpbk1lc3NhZ2UoV1BTX0ZBSUxfRVZFTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaWZpTWFuYWdlci5XUFNfQVVUSF9GQUlMVVJFLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDT05GSUdfTVVMVElQTEVfUEJDX0RFVEVDVEVEOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UobVN0YXRlTWFjaGluZS5vYnRhaW5NZXNzYWdlKFdQU19GQUlMX0VWRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2lmaU1hbmFnZXIuV1BTX09WRVJMQVBfRVJST1IsIDApKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAvL0ZvciBhbGwgb3RoZXIgZXJyb3JzLCByZXR1cm4gYSBnZW5lcmljIGludGVybmFsIGVycm9yCi0gICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKG1TdGF0ZU1hY2hpbmUub2J0YWluTWVzc2FnZShXUFNfRkFJTF9FVkVOVCwKLSAgICAgICAgICAgICAgICAgICAgV2lmaU1hbmFnZXIuRVJST1IsIDApKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIDxldmVudD4gc3RhdHVzPTxlcnI+IGFuZCB0aGUgc3BlY2lhbCBjYXNlIG9mIDxldmVudD4gcmVhc29uPUZSRVFfQ09ORkxJQ1QgKi8KLSAgICAgICAgcHJpdmF0ZSBQMnBTdGF0dXMgcDJwRXJyb3IoU3RyaW5nIGRhdGFTdHJpbmcpIHsKLSAgICAgICAgICAgIFAycFN0YXR1cyBlcnIgPSBQMnBTdGF0dXMuVU5LTk9XTjsKLSAgICAgICAgICAgIFN0cmluZ1tdIHRva2VucyA9IGRhdGFTdHJpbmcuc3BsaXQoIiAiKTsKLSAgICAgICAgICAgIGlmICh0b2tlbnMubGVuZ3RoIDwgMikgcmV0dXJuIGVycjsKLSAgICAgICAgICAgIFN0cmluZ1tdIG5hbWVWYWx1ZSA9IHRva2Vuc1sxXS5zcGxpdCgiPSIpOwotICAgICAgICAgICAgaWYgKG5hbWVWYWx1ZS5sZW5ndGggIT0gMikgcmV0dXJuIGVycjsKLQotICAgICAgICAgICAgLyogSGFuZGxlIHRoZSBzcGVjaWFsIGNhc2Ugb2YgcmVhc29uPUZSRVErQ09ORkxJQ1QgKi8KLSAgICAgICAgICAgIGlmIChuYW1lVmFsdWVbMV0uZXF1YWxzKCJGUkVRX0NPTkZMSUNUIikpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gUDJwU3RhdHVzLk5PX0NPTU1PTl9DSEFOTkVMOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICBlcnIgPSBQMnBTdGF0dXMudmFsdWVPZihJbnRlZ2VyLnBhcnNlSW50KG5hbWVWYWx1ZVsxXSkpOwotICAgICAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGVycjsKLSAgICAgICAgfQotCi0gICAgICAgIC8qKgotICAgICAgICAgKiBIYW5kbGUgcDJwIGV2ZW50cwotICAgICAgICAgKi8KLSAgICAgICAgcHJpdmF0ZSB2b2lkIGhhbmRsZVAycEV2ZW50cyhTdHJpbmcgZGF0YVN0cmluZykgewotICAgICAgICAgICAgaWYgKGRhdGFTdHJpbmcuc3RhcnRzV2l0aChQMlBfREVWSUNFX0ZPVU5EX1NUUikpIHsKLSAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFAyUF9ERVZJQ0VfRk9VTkRfRVZFTlQsIG5ldyBXaWZpUDJwRGV2aWNlKGRhdGFTdHJpbmcpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YVN0cmluZy5zdGFydHNXaXRoKFAyUF9ERVZJQ0VfTE9TVF9TVFIpKSB7Ci0gICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShQMlBfREVWSUNFX0xPU1RfRVZFTlQsIG5ldyBXaWZpUDJwRGV2aWNlKGRhdGFTdHJpbmcpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YVN0cmluZy5zdGFydHNXaXRoKFAyUF9GSU5EX1NUT1BQRURfU1RSKSkgewotICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX0ZJTkRfU1RPUFBFRF9FVkVOVCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGFTdHJpbmcuc3RhcnRzV2l0aChQMlBfR09fTkVHX1JFUVVFU1RfU1RSKSkgewotICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX0dPX05FR09USUFUSU9OX1JFUVVFU1RfRVZFTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXcgV2lmaVAycENvbmZpZyhkYXRhU3RyaW5nKSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGFTdHJpbmcuc3RhcnRzV2l0aChQMlBfR09fTkVHX1NVQ0NFU1NfU1RSKSkgewotICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX0dPX05FR09USUFUSU9OX1NVQ0NFU1NfRVZFTlQpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhU3RyaW5nLnN0YXJ0c1dpdGgoUDJQX0dPX05FR19GQUlMVVJFX1NUUikpIHsKLSAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFAyUF9HT19ORUdPVElBVElPTl9GQUlMVVJFX0VWRU5ULCBwMnBFcnJvcihkYXRhU3RyaW5nKSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGFTdHJpbmcuc3RhcnRzV2l0aChQMlBfR1JPVVBfRk9STUFUSU9OX1NVQ0NFU1NfU1RSKSkgewotICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX0dST1VQX0ZPUk1BVElPTl9TVUNDRVNTX0VWRU5UKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YVN0cmluZy5zdGFydHNXaXRoKFAyUF9HUk9VUF9GT1JNQVRJT05fRkFJTFVSRV9TVFIpKSB7Ci0gICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShQMlBfR1JPVVBfRk9STUFUSU9OX0ZBSUxVUkVfRVZFTlQsIHAycEVycm9yKGRhdGFTdHJpbmcpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YVN0cmluZy5zdGFydHNXaXRoKFAyUF9HUk9VUF9TVEFSVEVEX1NUUikpIHsKLSAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFAyUF9HUk9VUF9TVEFSVEVEX0VWRU5ULCBuZXcgV2lmaVAycEdyb3VwKGRhdGFTdHJpbmcpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YVN0cmluZy5zdGFydHNXaXRoKFAyUF9HUk9VUF9SRU1PVkVEX1NUUikpIHsKLSAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFAyUF9HUk9VUF9SRU1PVkVEX0VWRU5ULCBuZXcgV2lmaVAycEdyb3VwKGRhdGFTdHJpbmcpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YVN0cmluZy5zdGFydHNXaXRoKFAyUF9JTlZJVEFUSU9OX1JFQ0VJVkVEX1NUUikpIHsKLSAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFAyUF9JTlZJVEFUSU9OX1JFQ0VJVkVEX0VWRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFdpZmlQMnBHcm91cChkYXRhU3RyaW5nKSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGFTdHJpbmcuc3RhcnRzV2l0aChQMlBfSU5WSVRBVElPTl9SRVNVTFRfU1RSKSkgewotICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX0lOVklUQVRJT05fUkVTVUxUX0VWRU5ULCBwMnBFcnJvcihkYXRhU3RyaW5nKSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGFTdHJpbmcuc3RhcnRzV2l0aChQMlBfUFJPVl9ESVNDX1BCQ19SRVFfU1RSKSkgewotICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX1BST1ZfRElTQ19QQkNfUkVRX0VWRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFdpZmlQMnBQcm92RGlzY0V2ZW50KGRhdGFTdHJpbmcpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YVN0cmluZy5zdGFydHNXaXRoKFAyUF9QUk9WX0RJU0NfUEJDX1JTUF9TVFIpKSB7Ci0gICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShQMlBfUFJPVl9ESVNDX1BCQ19SU1BfRVZFTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXcgV2lmaVAycFByb3ZEaXNjRXZlbnQoZGF0YVN0cmluZykpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhU3RyaW5nLnN0YXJ0c1dpdGgoUDJQX1BST1ZfRElTQ19FTlRFUl9QSU5fU1RSKSkgewotICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX1BST1ZfRElTQ19FTlRFUl9QSU5fRVZFTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXcgV2lmaVAycFByb3ZEaXNjRXZlbnQoZGF0YVN0cmluZykpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhU3RyaW5nLnN0YXJ0c1dpdGgoUDJQX1BST1ZfRElTQ19TSE9XX1BJTl9TVFIpKSB7Ci0gICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShQMlBfUFJPVl9ESVNDX1NIT1dfUElOX0VWRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFdpZmlQMnBQcm92RGlzY0V2ZW50KGRhdGFTdHJpbmcpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YVN0cmluZy5zdGFydHNXaXRoKFAyUF9QUk9WX0RJU0NfRkFJTFVSRV9TVFIpKSB7Ci0gICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShQMlBfUFJPVl9ESVNDX0ZBSUxVUkVfRVZFTlQpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhU3RyaW5nLnN0YXJ0c1dpdGgoUDJQX1NFUlZfRElTQ19SRVNQX1NUUikpIHsKLSAgICAgICAgICAgICAgICBMaXN0PFdpZmlQMnBTZXJ2aWNlUmVzcG9uc2U+IGxpc3QgPSBXaWZpUDJwU2VydmljZVJlc3BvbnNlLm5ld0luc3RhbmNlKGRhdGFTdHJpbmcpOwotICAgICAgICAgICAgICAgIGlmIChsaXN0ICE9IG51bGwpIHsKLSAgICAgICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShQMlBfU0VSVl9ESVNDX1JFU1BfRVZFTlQsIGxpc3QpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIExvZy5lKFRBRywgIk51bGwgc2VydmljZSByZXNwICIgKyBkYXRhU3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gbm90aWZ5IGFuZCBleGl0CisgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFNVUF9ESVNDT05ORUNUSU9OX0VWRU5UKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGVsc2UgaWYgKGV2ZW50ID09IEVBUF9GQUlMVVJFKSB7CisgICAgICAgICAgICBpZiAoZXZlbnREYXRhLnN0YXJ0c1dpdGgoRUFQX0FVVEhfRkFJTFVSRV9TVFIpKSB7CisgICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShBVVRIRU5USUNBVElPTl9GQUlMVVJFX0VWRU5UKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChldmVudCA9PSBBU1NPQ19SRUpFQ1QpIHsKKyAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoQVNTT0NJQVRJT05fUkVKRUNUSU9OX0VWRU5UKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGhhbmRsZUV2ZW50KGV2ZW50LCBldmVudERhdGEpOworICAgICAgICB9CisgICAgICAgIHNSZWN2RXJyb3JzID0gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVEcml2ZXJFdmVudChTdHJpbmcgc3RhdGUpIHsKKyAgICAgICAgaWYgKHN0YXRlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhdGUuZXF1YWxzKCJIQU5HRUQiKSkgeworICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShEUklWRVJfSFVOR19FVkVOVCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBIYW5kbGUgYWxsIHN1cHBsaWNhbnQgZXZlbnRzIGV4Y2VwdCBTVEFURS1DSEFOR0UKKyAgICAgKiBAcGFyYW0gZXZlbnQgdGhlIGV2ZW50IHR5cGUKKyAgICAgKiBAcGFyYW0gcmVtYWluZGVyIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcgZm9sbG93aW5nIHRoZQorICAgICAqIGV2ZW50IG5hbWUgYW5kICZxdW90OyYjODE5NTsmIzgyMTI7JiM4MTk1OyZxdW90OworICAgICAqLworICAgIHZvaWQgaGFuZGxlRXZlbnQoaW50IGV2ZW50LCBTdHJpbmcgcmVtYWluZGVyKSB7CisgICAgICAgIHN3aXRjaCAoZXZlbnQpIHsKKyAgICAgICAgICAgIGNhc2UgRElTQ09OTkVDVEVEOgorICAgICAgICAgICAgICAgIGhhbmRsZU5ldHdvcmtTdGF0ZUNoYW5nZShOZXR3b3JrSW5mby5EZXRhaWxlZFN0YXRlLkRJU0NPTk5FQ1RFRCwgcmVtYWluZGVyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBDT05ORUNURUQ6CisgICAgICAgICAgICAgICAgaGFuZGxlTmV0d29ya1N0YXRlQ2hhbmdlKE5ldHdvcmtJbmZvLkRldGFpbGVkU3RhdGUuQ09OTkVDVEVELCByZW1haW5kZXIpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFNDQU5fUkVTVUxUUzoKKyAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFNDQU5fUkVTVUxUU19FVkVOVCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgVU5LTk9XTjoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVXcHNGYWlsRXZlbnQoU3RyaW5nIGRhdGFTdHJpbmcpIHsKKyAgICAgICAgZmluYWwgUGF0dGVybiBwID0gUGF0dGVybi5jb21waWxlKFdQU19GQUlMX1BBVFRFUk4pOworICAgICAgICBNYXRjaGVyIG1hdGNoID0gcC5tYXRjaGVyKGRhdGFTdHJpbmcpOworICAgICAgICBpZiAobWF0Y2guZmluZCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgY2ZnRXJyID0gbWF0Y2guZ3JvdXAoMSk7CisgICAgICAgICAgICBTdHJpbmcgcmVhc29uID0gbWF0Y2guZ3JvdXAoMik7CisKKyAgICAgICAgICAgIGlmIChyZWFzb24gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN3aXRjaChJbnRlZ2VyLnBhcnNlSW50KHJlYXNvbikpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBSRUFTT05fVEtJUF9PTkxZX1BST0hJQklURUQ6CisgICAgICAgICAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKG1TdGF0ZU1hY2hpbmUub2J0YWluTWVzc2FnZShXUFNfRkFJTF9FVkVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2lmaU1hbmFnZXIuV1BTX1RLSVBfT05MWV9QUk9ISUJJVEVELCAwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIGNhc2UgUkVBU09OX1dFUF9QUk9ISUJJVEVEOgorICAgICAgICAgICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShtU3RhdGVNYWNoaW5lLm9idGFpbk1lc3NhZ2UoV1BTX0ZBSUxfRVZFTlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpZmlNYW5hZ2VyLldQU19XRVBfUFJPSElCSVRFRCwgMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjZmdFcnIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN3aXRjaChJbnRlZ2VyLnBhcnNlSW50KGNmZ0VycikpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBDT05GSUdfQVVUSF9GQUlMVVJFOgorICAgICAgICAgICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShtU3RhdGVNYWNoaW5lLm9idGFpbk1lc3NhZ2UoV1BTX0ZBSUxfRVZFTlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpZmlNYW5hZ2VyLldQU19BVVRIX0ZBSUxVUkUsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBDT05GSUdfTVVMVElQTEVfUEJDX0RFVEVDVEVEOgorICAgICAgICAgICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShtU3RhdGVNYWNoaW5lLm9idGFpbk1lc3NhZ2UoV1BTX0ZBSUxfRVZFTlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpZmlNYW5hZ2VyLldQU19PVkVSTEFQX0VSUk9SLCAwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CisgICAgICAgIC8vRm9yIGFsbCBvdGhlciBlcnJvcnMsIHJldHVybiBhIGdlbmVyaWMgaW50ZXJuYWwgZXJyb3IKKyAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShtU3RhdGVNYWNoaW5lLm9idGFpbk1lc3NhZ2UoV1BTX0ZBSUxfRVZFTlQsCisgICAgICAgICAgICAgICAgV2lmaU1hbmFnZXIuRVJST1IsIDApKTsKKyAgICB9CiAKLSAgICAgICAgLyoqCi0gICAgICAgICAqIEhhbmRsZSBob3N0YXAgZXZlbnRzCi0gICAgICAgICAqLwotICAgICAgICBwcml2YXRlIHZvaWQgaGFuZGxlSG9zdEFwRXZlbnRzKFN0cmluZyBkYXRhU3RyaW5nKSB7Ci0gICAgICAgICAgICBTdHJpbmdbXSB0b2tlbnMgPSBkYXRhU3RyaW5nLnNwbGl0KCIgIik7Ci0gICAgICAgICAgICAvKiBBUC1TVEEtQ09OTkVDVEVEIDQyOmZjOjg5OmE4Ojk2OjA5IHAycF9kZXZfYWRkcj0wMjo5MDo0YzphMDo5Mjo1NCAqLwotICAgICAgICAgICAgaWYgKHRva2Vuc1swXS5lcXVhbHMoQVBfU1RBX0NPTk5FQ1RFRF9TVFIpKSB7Ci0gICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShBUF9TVEFfQ09OTkVDVEVEX0VWRU5ULCBuZXcgV2lmaVAycERldmljZShkYXRhU3RyaW5nKSk7Ci0gICAgICAgICAgICAvKiBBUC1TVEEtRElTQ09OTkVDVEVEIDQyOmZjOjg5OmE4Ojk2OjA5IHAycF9kZXZfYWRkcj0wMjo5MDo0YzphMDo5Mjo1NCAqLwotICAgICAgICAgICAgfSBlbHNlIGlmICh0b2tlbnNbMF0uZXF1YWxzKEFQX1NUQV9ESVNDT05ORUNURURfU1RSKSkgewotICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoQVBfU1RBX0RJU0NPTk5FQ1RFRF9FVkVOVCwgbmV3IFdpZmlQMnBEZXZpY2UoZGF0YVN0cmluZykpOwotICAgICAgICAgICAgfQorICAgIC8qIDxldmVudD4gc3RhdHVzPTxlcnI+IGFuZCB0aGUgc3BlY2lhbCBjYXNlIG9mIDxldmVudD4gcmVhc29uPUZSRVFfQ09ORkxJQ1QgKi8KKyAgICBwcml2YXRlIFAycFN0YXR1cyBwMnBFcnJvcihTdHJpbmcgZGF0YVN0cmluZykgeworICAgICAgICBQMnBTdGF0dXMgZXJyID0gUDJwU3RhdHVzLlVOS05PV047CisgICAgICAgIFN0cmluZ1tdIHRva2VucyA9IGRhdGFTdHJpbmcuc3BsaXQoIiAiKTsKKyAgICAgICAgaWYgKHRva2Vucy5sZW5ndGggPCAyKSByZXR1cm4gZXJyOworICAgICAgICBTdHJpbmdbXSBuYW1lVmFsdWUgPSB0b2tlbnNbMV0uc3BsaXQoIj0iKTsKKyAgICAgICAgaWYgKG5hbWVWYWx1ZS5sZW5ndGggIT0gMikgcmV0dXJuIGVycjsKKworICAgICAgICAvKiBIYW5kbGUgdGhlIHNwZWNpYWwgY2FzZSBvZiByZWFzb249RlJFUStDT05GTElDVCAqLworICAgICAgICBpZiAobmFtZVZhbHVlWzFdLmVxdWFscygiRlJFUV9DT05GTElDVCIpKSB7CisgICAgICAgICAgICByZXR1cm4gUDJwU3RhdHVzLk5PX0NPTU1PTl9DSEFOTkVMOwogICAgICAgICB9Ci0KLSAgICAgICAgLyoqCi0gICAgICAgICAqIEhhbmRsZSB0aGUgc3VwcGxpY2FudCBTVEFURS1DSEFOR0UgZXZlbnQKLSAgICAgICAgICogQHBhcmFtIGRhdGFTdHJpbmcgTmV3IHN1cHBsaWNhbnQgc3RhdGUgc3RyaW5nIGluIHRoZSBmb3JtYXQ6Ci0gICAgICAgICAqIGlkPW5ldHdvcmstaWQgc3RhdGU9bmV3LXN0YXRlCi0gICAgICAgICAqLwotICAgICAgICBwcml2YXRlIHZvaWQgaGFuZGxlU3VwcGxpY2FudFN0YXRlQ2hhbmdlKFN0cmluZyBkYXRhU3RyaW5nKSB7Ci0gICAgICAgICAgICBXaWZpU3NpZCB3aWZpU3NpZCA9IG51bGw7Ci0gICAgICAgICAgICBpbnQgaW5kZXggPSBkYXRhU3RyaW5nLmxhc3RJbmRleE9mKCJTU0lEPSIpOwotICAgICAgICAgICAgaWYgKGluZGV4ICE9IC0xKSB7Ci0gICAgICAgICAgICAgICAgd2lmaVNzaWQgPSBXaWZpU3NpZC5jcmVhdGVGcm9tQXNjaWlFbmNvZGVkKAotICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVN0cmluZy5zdWJzdHJpbmcoaW5kZXggKyA1KSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBTdHJpbmdbXSBkYXRhVG9rZW5zID0gZGF0YVN0cmluZy5zcGxpdCgiICIpOwotCi0gICAgICAgICAgICBTdHJpbmcgQlNTSUQgPSBudWxsOwotICAgICAgICAgICAgaW50IG5ldHdvcmtJZCA9IC0xOwotICAgICAgICAgICAgaW50IG5ld1N0YXRlICA9IC0xOwotICAgICAgICAgICAgZm9yIChTdHJpbmcgdG9rZW4gOiBkYXRhVG9rZW5zKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nW10gbmFtZVZhbHVlID0gdG9rZW4uc3BsaXQoIj0iKTsKLSAgICAgICAgICAgICAgICBpZiAobmFtZVZhbHVlLmxlbmd0aCAhPSAyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChuYW1lVmFsdWVbMF0uZXF1YWxzKCJCU1NJRCIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIEJTU0lEID0gbmFtZVZhbHVlWzFdOwotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpbnQgdmFsdWU7Ci0gICAgICAgICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBJbnRlZ2VyLnBhcnNlSW50KG5hbWVWYWx1ZVsxXSk7Ci0gICAgICAgICAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKG5hbWVWYWx1ZVswXS5lcXVhbHMoImlkIikpIHsKLSAgICAgICAgICAgICAgICAgICAgbmV0d29ya0lkID0gdmFsdWU7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lVmFsdWVbMF0uZXF1YWxzKCJzdGF0ZSIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0gdmFsdWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAobmV3U3RhdGUgPT0gLTEpIHJldHVybjsKLQotICAgICAgICAgICAgU3VwcGxpY2FudFN0YXRlIG5ld1N1cHBsaWNhbnRTdGF0ZSA9IFN1cHBsaWNhbnRTdGF0ZS5JTlZBTElEOwotICAgICAgICAgICAgZm9yIChTdXBwbGljYW50U3RhdGUgc3RhdGUgOiBTdXBwbGljYW50U3RhdGUudmFsdWVzKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoc3RhdGUub3JkaW5hbCgpID09IG5ld1N0YXRlKSB7Ci0gICAgICAgICAgICAgICAgICAgIG5ld1N1cHBsaWNhbnRTdGF0ZSA9IHN0YXRlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobmV3U3VwcGxpY2FudFN0YXRlID09IFN1cHBsaWNhbnRTdGF0ZS5JTlZBTElEKSB7Ci0gICAgICAgICAgICAgICAgTG9nLncoVEFHLCAiSW52YWxpZCBzdXBwbGljYW50IHN0YXRlOiAiICsgbmV3U3RhdGUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbm90aWZ5U3VwcGxpY2FudFN0YXRlQ2hhbmdlKG5ldHdvcmtJZCwgd2lmaVNzaWQsIEJTU0lELCBuZXdTdXBwbGljYW50U3RhdGUpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZXJyID0gUDJwU3RhdHVzLnZhbHVlT2YoSW50ZWdlci5wYXJzZUludChuYW1lVmFsdWVbMV0pKTsKKyAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVycjsKKyAgICB9CiAKLSAgICAgICAgcHJpdmF0ZSB2b2lkIGhhbmRsZU5ldHdvcmtTdGF0ZUNoYW5nZShOZXR3b3JrSW5mby5EZXRhaWxlZFN0YXRlIG5ld1N0YXRlLCBTdHJpbmcgZGF0YSkgewotICAgICAgICAgICAgU3RyaW5nIEJTU0lEID0gbnVsbDsKLSAgICAgICAgICAgIGludCBuZXR3b3JrSWQgPSAtMTsKLSAgICAgICAgICAgIGlmIChuZXdTdGF0ZSA9PSBOZXR3b3JrSW5mby5EZXRhaWxlZFN0YXRlLkNPTk5FQ1RFRCkgewotICAgICAgICAgICAgICAgIE1hdGNoZXIgbWF0Y2ggPSBtQ29ubmVjdGVkRXZlbnRQYXR0ZXJuLm1hdGNoZXIoZGF0YSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFtYXRjaC5maW5kKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKERCRykgTG9nLmQoVEFHLCAiQ291bGQgbm90IGZpbmQgQlNTSUQgaW4gQ09OTkVDVEVEIGV2ZW50IHN0cmluZyIpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIEJTU0lEID0gbWF0Y2guZ3JvdXAoMSk7Ci0gICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrSWQgPSBJbnRlZ2VyLnBhcnNlSW50KG1hdGNoLmdyb3VwKDIpKTsKLSAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtJZCA9IC0xOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG5vdGlmeU5ldHdvcmtTdGF0ZUNoYW5nZShuZXdTdGF0ZSwgQlNTSUQsIG5ldHdvcmtJZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICAvKioKLSAgICAgICAgICogU2VuZCB0aGUgc3RhdGUgbWFjaGluZSBhIG5vdGlmaWNhdGlvbiB0aGF0IHRoZSBzdGF0ZSBvZiBXaWZpIGNvbm5lY3Rpdml0eQotICAgICAgICAgKiBoYXMgY2hhbmdlZC4KLSAgICAgICAgICogQHBhcmFtIG5ldHdvcmtJZCB0aGUgY29uZmlndXJlZCBuZXR3b3JrIG9uIHdoaWNoIHRoZSBzdGF0ZSBjaGFuZ2Ugb2NjdXJyZWQKLSAgICAgICAgICogQHBhcmFtIG5ld1N0YXRlIHRoZSBuZXcgbmV0d29yayBzdGF0ZQotICAgICAgICAgKiBAcGFyYW0gQlNTSUQgd2hlbiB0aGUgbmV3IHN0YXRlIGlzIHtAbGluayBEZXRhaWxlZFN0YXRlI0NPTk5FQ1RFRAotICAgICAgICAgKiBOZXR3b3JrSW5mby5EZXRhaWxlZFN0YXRlLkNPTk5FQ1RFRH0sCi0gICAgICAgICAqIHRoaXMgaXMgdGhlIE1BQyBhZGRyZXNzIG9mIHRoZSBhY2Nlc3MgcG9pbnQuIE90aGVyd2lzZSwgaXQKLSAgICAgICAgICogaXMge0Bjb2RlIG51bGx9LgotICAgICAgICAgKi8KLSAgICAgICAgdm9pZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoTmV0d29ya0luZm8uRGV0YWlsZWRTdGF0ZSBuZXdTdGF0ZSwgU3RyaW5nIEJTU0lELCBpbnQgbmV0SWQpIHsKLSAgICAgICAgICAgIGlmIChuZXdTdGF0ZSA9PSBOZXR3b3JrSW5mby5EZXRhaWxlZFN0YXRlLkNPTk5FQ1RFRCkgewotICAgICAgICAgICAgICAgIE1lc3NhZ2UgbSA9IG1TdGF0ZU1hY2hpbmUub2J0YWluTWVzc2FnZShORVRXT1JLX0NPTk5FQ1RJT05fRVZFTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXRJZCwgMCwgQlNTSUQpOwotICAgICAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UobSk7CisgICAgLyoqCisgICAgICogSGFuZGxlIHAycCBldmVudHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlUDJwRXZlbnRzKFN0cmluZyBkYXRhU3RyaW5nKSB7CisgICAgICAgIGlmIChkYXRhU3RyaW5nLnN0YXJ0c1dpdGgoUDJQX0RFVklDRV9GT1VORF9TVFIpKSB7CisgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFAyUF9ERVZJQ0VfRk9VTkRfRVZFTlQsIG5ldyBXaWZpUDJwRGV2aWNlKGRhdGFTdHJpbmcpKTsKKyAgICAgICAgfSBlbHNlIGlmIChkYXRhU3RyaW5nLnN0YXJ0c1dpdGgoUDJQX0RFVklDRV9MT1NUX1NUUikpIHsKKyAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX0RFVklDRV9MT1NUX0VWRU5ULCBuZXcgV2lmaVAycERldmljZShkYXRhU3RyaW5nKSk7CisgICAgICAgIH0gZWxzZSBpZiAoZGF0YVN0cmluZy5zdGFydHNXaXRoKFAyUF9GSU5EX1NUT1BQRURfU1RSKSkgeworICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShQMlBfRklORF9TVE9QUEVEX0VWRU5UKTsKKyAgICAgICAgfSBlbHNlIGlmIChkYXRhU3RyaW5nLnN0YXJ0c1dpdGgoUDJQX0dPX05FR19SRVFVRVNUX1NUUikpIHsKKyAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX0dPX05FR09USUFUSU9OX1JFUVVFU1RfRVZFTlQsCisgICAgICAgICAgICAgICAgICAgIG5ldyBXaWZpUDJwQ29uZmlnKGRhdGFTdHJpbmcpKTsKKyAgICAgICAgfSBlbHNlIGlmIChkYXRhU3RyaW5nLnN0YXJ0c1dpdGgoUDJQX0dPX05FR19TVUNDRVNTX1NUUikpIHsKKyAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX0dPX05FR09USUFUSU9OX1NVQ0NFU1NfRVZFTlQpOworICAgICAgICB9IGVsc2UgaWYgKGRhdGFTdHJpbmcuc3RhcnRzV2l0aChQMlBfR09fTkVHX0ZBSUxVUkVfU1RSKSkgeworICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShQMlBfR09fTkVHT1RJQVRJT05fRkFJTFVSRV9FVkVOVCwgcDJwRXJyb3IoZGF0YVN0cmluZykpOworICAgICAgICB9IGVsc2UgaWYgKGRhdGFTdHJpbmcuc3RhcnRzV2l0aChQMlBfR1JPVVBfRk9STUFUSU9OX1NVQ0NFU1NfU1RSKSkgeworICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShQMlBfR1JPVVBfRk9STUFUSU9OX1NVQ0NFU1NfRVZFTlQpOworICAgICAgICB9IGVsc2UgaWYgKGRhdGFTdHJpbmcuc3RhcnRzV2l0aChQMlBfR1JPVVBfRk9STUFUSU9OX0ZBSUxVUkVfU1RSKSkgeworICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShQMlBfR1JPVVBfRk9STUFUSU9OX0ZBSUxVUkVfRVZFTlQsIHAycEVycm9yKGRhdGFTdHJpbmcpKTsKKyAgICAgICAgfSBlbHNlIGlmIChkYXRhU3RyaW5nLnN0YXJ0c1dpdGgoUDJQX0dST1VQX1NUQVJURURfU1RSKSkgeworICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShQMlBfR1JPVVBfU1RBUlRFRF9FVkVOVCwgbmV3IFdpZmlQMnBHcm91cChkYXRhU3RyaW5nKSk7CisgICAgICAgIH0gZWxzZSBpZiAoZGF0YVN0cmluZy5zdGFydHNXaXRoKFAyUF9HUk9VUF9SRU1PVkVEX1NUUikpIHsKKyAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX0dST1VQX1JFTU9WRURfRVZFTlQsIG5ldyBXaWZpUDJwR3JvdXAoZGF0YVN0cmluZykpOworICAgICAgICB9IGVsc2UgaWYgKGRhdGFTdHJpbmcuc3RhcnRzV2l0aChQMlBfSU5WSVRBVElPTl9SRUNFSVZFRF9TVFIpKSB7CisgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFAyUF9JTlZJVEFUSU9OX1JFQ0VJVkVEX0VWRU5ULAorICAgICAgICAgICAgICAgICAgICBuZXcgV2lmaVAycEdyb3VwKGRhdGFTdHJpbmcpKTsKKyAgICAgICAgfSBlbHNlIGlmIChkYXRhU3RyaW5nLnN0YXJ0c1dpdGgoUDJQX0lOVklUQVRJT05fUkVTVUxUX1NUUikpIHsKKyAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX0lOVklUQVRJT05fUkVTVUxUX0VWRU5ULCBwMnBFcnJvcihkYXRhU3RyaW5nKSk7CisgICAgICAgIH0gZWxzZSBpZiAoZGF0YVN0cmluZy5zdGFydHNXaXRoKFAyUF9QUk9WX0RJU0NfUEJDX1JFUV9TVFIpKSB7CisgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFAyUF9QUk9WX0RJU0NfUEJDX1JFUV9FVkVOVCwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFdpZmlQMnBQcm92RGlzY0V2ZW50KGRhdGFTdHJpbmcpKTsKKyAgICAgICAgfSBlbHNlIGlmIChkYXRhU3RyaW5nLnN0YXJ0c1dpdGgoUDJQX1BST1ZfRElTQ19QQkNfUlNQX1NUUikpIHsKKyAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX1BST1ZfRElTQ19QQkNfUlNQX0VWRU5ULAorICAgICAgICAgICAgICAgICAgICBuZXcgV2lmaVAycFByb3ZEaXNjRXZlbnQoZGF0YVN0cmluZykpOworICAgICAgICB9IGVsc2UgaWYgKGRhdGFTdHJpbmcuc3RhcnRzV2l0aChQMlBfUFJPVl9ESVNDX0VOVEVSX1BJTl9TVFIpKSB7CisgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKFAyUF9QUk9WX0RJU0NfRU5URVJfUElOX0VWRU5ULAorICAgICAgICAgICAgICAgICAgICBuZXcgV2lmaVAycFByb3ZEaXNjRXZlbnQoZGF0YVN0cmluZykpOworICAgICAgICB9IGVsc2UgaWYgKGRhdGFTdHJpbmcuc3RhcnRzV2l0aChQMlBfUFJPVl9ESVNDX1NIT1dfUElOX1NUUikpIHsKKyAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX1BST1ZfRElTQ19TSE9XX1BJTl9FVkVOVCwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFdpZmlQMnBQcm92RGlzY0V2ZW50KGRhdGFTdHJpbmcpKTsKKyAgICAgICAgfSBlbHNlIGlmIChkYXRhU3RyaW5nLnN0YXJ0c1dpdGgoUDJQX1BST1ZfRElTQ19GQUlMVVJFX1NUUikpIHsKKyAgICAgICAgICAgIG1TdGF0ZU1hY2hpbmUuc2VuZE1lc3NhZ2UoUDJQX1BST1ZfRElTQ19GQUlMVVJFX0VWRU5UKTsKKyAgICAgICAgfSBlbHNlIGlmIChkYXRhU3RyaW5nLnN0YXJ0c1dpdGgoUDJQX1NFUlZfRElTQ19SRVNQX1NUUikpIHsKKyAgICAgICAgICAgIExpc3Q8V2lmaVAycFNlcnZpY2VSZXNwb25zZT4gbGlzdCA9IFdpZmlQMnBTZXJ2aWNlUmVzcG9uc2UubmV3SW5zdGFuY2UoZGF0YVN0cmluZyk7CisgICAgICAgICAgICBpZiAobGlzdCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShQMlBfU0VSVl9ESVNDX1JFU1BfRVZFTlQsIGxpc3QpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBNZXNzYWdlIG0gPSBtU3RhdGVNYWNoaW5lLm9idGFpbk1lc3NhZ2UoTkVUV09SS19ESVNDT05ORUNUSU9OX0VWRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgbmV0SWQsIDAsIEJTU0lEKTsKLSAgICAgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKG0pOworICAgICAgICAgICAgICAgIExvZy5lKFRBRywgIk51bGwgc2VydmljZSByZXNwICIgKyBkYXRhU3RyaW5nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEhhbmRsZSBob3N0YXAgZXZlbnRzCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGhhbmRsZUhvc3RBcEV2ZW50cyhTdHJpbmcgZGF0YVN0cmluZykgeworICAgICAgICBTdHJpbmdbXSB0b2tlbnMgPSBkYXRhU3RyaW5nLnNwbGl0KCIgIik7CisgICAgICAgIC8qIEFQLVNUQS1DT05ORUNURUQgNDI6ZmM6ODk6YTg6OTY6MDkgcDJwX2Rldl9hZGRyPTAyOjkwOjRjOmEwOjkyOjU0ICovCisgICAgICAgIGlmICh0b2tlbnNbMF0uZXF1YWxzKEFQX1NUQV9DT05ORUNURURfU1RSKSkgeworICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShBUF9TVEFfQ09OTkVDVEVEX0VWRU5ULCBuZXcgV2lmaVAycERldmljZShkYXRhU3RyaW5nKSk7CisgICAgICAgICAgICAvKiBBUC1TVEEtRElTQ09OTkVDVEVEIDQyOmZjOjg5OmE4Ojk2OjA5IHAycF9kZXZfYWRkcj0wMjo5MDo0YzphMDo5Mjo1NCAqLworICAgICAgICB9IGVsc2UgaWYgKHRva2Vuc1swXS5lcXVhbHMoQVBfU1RBX0RJU0NPTk5FQ1RFRF9TVFIpKSB7CisgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKEFQX1NUQV9ESVNDT05ORUNURURfRVZFTlQsIG5ldyBXaWZpUDJwRGV2aWNlKGRhdGFTdHJpbmcpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEhhbmRsZSB0aGUgc3VwcGxpY2FudCBTVEFURS1DSEFOR0UgZXZlbnQKKyAgICAgKiBAcGFyYW0gZGF0YVN0cmluZyBOZXcgc3VwcGxpY2FudCBzdGF0ZSBzdHJpbmcgaW4gdGhlIGZvcm1hdDoKKyAgICAgKiBpZD1uZXR3b3JrLWlkIHN0YXRlPW5ldy1zdGF0ZQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVTdXBwbGljYW50U3RhdGVDaGFuZ2UoU3RyaW5nIGRhdGFTdHJpbmcpIHsKKyAgICAgICAgV2lmaVNzaWQgd2lmaVNzaWQgPSBudWxsOworICAgICAgICBpbnQgaW5kZXggPSBkYXRhU3RyaW5nLmxhc3RJbmRleE9mKCJTU0lEPSIpOworICAgICAgICBpZiAoaW5kZXggIT0gLTEpIHsKKyAgICAgICAgICAgIHdpZmlTc2lkID0gV2lmaVNzaWQuY3JlYXRlRnJvbUFzY2lpRW5jb2RlZCgKKyAgICAgICAgICAgICAgICAgICAgZGF0YVN0cmluZy5zdWJzdHJpbmcoaW5kZXggKyA1KSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nW10gZGF0YVRva2VucyA9IGRhdGFTdHJpbmcuc3BsaXQoIiAiKTsKKworICAgICAgICBTdHJpbmcgQlNTSUQgPSBudWxsOworICAgICAgICBpbnQgbmV0d29ya0lkID0gLTE7CisgICAgICAgIGludCBuZXdTdGF0ZSAgPSAtMTsKKyAgICAgICAgZm9yIChTdHJpbmcgdG9rZW4gOiBkYXRhVG9rZW5zKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBuYW1lVmFsdWUgPSB0b2tlbi5zcGxpdCgiPSIpOworICAgICAgICAgICAgaWYgKG5hbWVWYWx1ZS5sZW5ndGggIT0gMikgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobmFtZVZhbHVlWzBdLmVxdWFscygiQlNTSUQiKSkgeworICAgICAgICAgICAgICAgIEJTU0lEID0gbmFtZVZhbHVlWzFdOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gSW50ZWdlci5wYXJzZUludChuYW1lVmFsdWVbMV0pOworICAgICAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG5hbWVWYWx1ZVswXS5lcXVhbHMoImlkIikpIHsKKyAgICAgICAgICAgICAgICBuZXR3b3JrSWQgPSB2YWx1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZVZhbHVlWzBdLmVxdWFscygic3RhdGUiKSkgeworICAgICAgICAgICAgICAgIG5ld1N0YXRlID0gdmFsdWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICAvKioKLSAgICAgICAgICogU2VuZCB0aGUgc3RhdGUgbWFjaGluZSBhIG5vdGlmaWNhdGlvbiB0aGF0IHRoZSBzdGF0ZSBvZiB0aGUgc3VwcGxpY2FudAotICAgICAgICAgKiBoYXMgY2hhbmdlZC4KLSAgICAgICAgICogQHBhcmFtIG5ldHdvcmtJZCB0aGUgY29uZmlndXJlZCBuZXR3b3JrIG9uIHdoaWNoIHRoZSBzdGF0ZSBjaGFuZ2Ugb2NjdXJyZWQKLSAgICAgICAgICogQHBhcmFtIHdpZmlTc2lkIG5ldHdvcmsgbmFtZQotICAgICAgICAgKiBAcGFyYW0gQlNTSUQgbmV0d29yayBhZGRyZXNzCi0gICAgICAgICAqIEBwYXJhbSBuZXdTdGF0ZSB0aGUgbmV3IHtAY29kZSBTdXBwbGljYW50U3RhdGV9Ci0gICAgICAgICAqLwotICAgICAgICB2b2lkIG5vdGlmeVN1cHBsaWNhbnRTdGF0ZUNoYW5nZShpbnQgbmV0d29ya0lkLCBXaWZpU3NpZCB3aWZpU3NpZCwgU3RyaW5nIEJTU0lELAotICAgICAgICAgICAgICAgIFN1cHBsaWNhbnRTdGF0ZSBuZXdTdGF0ZSkgewotICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShtU3RhdGVNYWNoaW5lLm9idGFpbk1lc3NhZ2UoU1VQUExJQ0FOVF9TVEFURV9DSEFOR0VfRVZFTlQsCi0gICAgICAgICAgICAgICAgICAgIG5ldyBTdGF0ZUNoYW5nZVJlc3VsdChuZXR3b3JrSWQsIHdpZmlTc2lkLCBCU1NJRCwgbmV3U3RhdGUpKSk7CisgICAgICAgIGlmIChuZXdTdGF0ZSA9PSAtMSkgcmV0dXJuOworCisgICAgICAgIFN1cHBsaWNhbnRTdGF0ZSBuZXdTdXBwbGljYW50U3RhdGUgPSBTdXBwbGljYW50U3RhdGUuSU5WQUxJRDsKKyAgICAgICAgZm9yIChTdXBwbGljYW50U3RhdGUgc3RhdGUgOiBTdXBwbGljYW50U3RhdGUudmFsdWVzKCkpIHsKKyAgICAgICAgICAgIGlmIChzdGF0ZS5vcmRpbmFsKCkgPT0gbmV3U3RhdGUpIHsKKyAgICAgICAgICAgICAgICBuZXdTdXBwbGljYW50U3RhdGUgPSBzdGF0ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQorICAgICAgICBpZiAobmV3U3VwcGxpY2FudFN0YXRlID09IFN1cHBsaWNhbnRTdGF0ZS5JTlZBTElEKSB7CisgICAgICAgICAgICBMb2cudyhUQUcsICJJbnZhbGlkIHN1cHBsaWNhbnQgc3RhdGU6ICIgKyBuZXdTdGF0ZSk7CisgICAgICAgIH0KKyAgICAgICAgbm90aWZ5U3VwcGxpY2FudFN0YXRlQ2hhbmdlKG5ldHdvcmtJZCwgd2lmaVNzaWQsIEJTU0lELCBuZXdTdXBwbGljYW50U3RhdGUpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVOZXR3b3JrU3RhdGVDaGFuZ2UoTmV0d29ya0luZm8uRGV0YWlsZWRTdGF0ZSBuZXdTdGF0ZSwgU3RyaW5nIGRhdGEpIHsKKyAgICAgICAgU3RyaW5nIEJTU0lEID0gbnVsbDsKKyAgICAgICAgaW50IG5ldHdvcmtJZCA9IC0xOworICAgICAgICBpZiAobmV3U3RhdGUgPT0gTmV0d29ya0luZm8uRGV0YWlsZWRTdGF0ZS5DT05ORUNURUQpIHsKKyAgICAgICAgICAgIE1hdGNoZXIgbWF0Y2ggPSBtQ29ubmVjdGVkRXZlbnRQYXR0ZXJuLm1hdGNoZXIoZGF0YSk7CisgICAgICAgICAgICBpZiAoIW1hdGNoLmZpbmQoKSkgeworICAgICAgICAgICAgICAgIGlmIChEQkcpIExvZy5kKFRBRywgIkNvdWxkIG5vdCBmaW5kIEJTU0lEIGluIENPTk5FQ1RFRCBldmVudCBzdHJpbmciKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQlNTSUQgPSBtYXRjaC5ncm91cCgxKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBuZXR3b3JrSWQgPSBJbnRlZ2VyLnBhcnNlSW50KG1hdGNoLmdyb3VwKDIpKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBuZXR3b3JrSWQgPSAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UobmV3U3RhdGUsIEJTU0lELCBuZXR3b3JrSWQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VuZCB0aGUgc3RhdGUgbWFjaGluZSBhIG5vdGlmaWNhdGlvbiB0aGF0IHRoZSBzdGF0ZSBvZiBXaWZpIGNvbm5lY3Rpdml0eQorICAgICAqIGhhcyBjaGFuZ2VkLgorICAgICAqIEBwYXJhbSBuZXdTdGF0ZSB0aGUgbmV3IG5ldHdvcmsgc3RhdGUKKyAgICAgKiBAcGFyYW0gQlNTSUQgd2hlbiB0aGUgbmV3IHN0YXRlIGlzIHtAbGluayBOZXR3b3JrSW5mby5EZXRhaWxlZFN0YXRlI0NPTk5FQ1RFRH0sCisgICAgICogdGhpcyBpcyB0aGUgTUFDIGFkZHJlc3Mgb2YgdGhlIGFjY2VzcyBwb2ludC4gT3RoZXJ3aXNlLCBpdAorICAgICAqIGlzIHtAY29kZSBudWxsfS4KKyAgICAgKiBAcGFyYW0gbmV0SWQgdGhlIGNvbmZpZ3VyZWQgbmV0d29yayBvbiB3aGljaCB0aGUgc3RhdGUgY2hhbmdlIG9jY3VycmVkCisgICAgICovCisgICAgdm9pZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoTmV0d29ya0luZm8uRGV0YWlsZWRTdGF0ZSBuZXdTdGF0ZSwgU3RyaW5nIEJTU0lELCBpbnQgbmV0SWQpIHsKKyAgICAgICAgaWYgKG5ld1N0YXRlID09IE5ldHdvcmtJbmZvLkRldGFpbGVkU3RhdGUuQ09OTkVDVEVEKSB7CisgICAgICAgICAgICBNZXNzYWdlIG0gPSBtU3RhdGVNYWNoaW5lLm9idGFpbk1lc3NhZ2UoTkVUV09SS19DT05ORUNUSU9OX0VWRU5ULAorICAgICAgICAgICAgICAgICAgICBuZXRJZCwgMCwgQlNTSUQpOworICAgICAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShtKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIE1lc3NhZ2UgbSA9IG1TdGF0ZU1hY2hpbmUub2J0YWluTWVzc2FnZShORVRXT1JLX0RJU0NPTk5FQ1RJT05fRVZFTlQsCisgICAgICAgICAgICAgICAgICAgIG5ldElkLCAwLCBCU1NJRCk7CisgICAgICAgICAgICBtU3RhdGVNYWNoaW5lLnNlbmRNZXNzYWdlKG0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VuZCB0aGUgc3RhdGUgbWFjaGluZSBhIG5vdGlmaWNhdGlvbiB0aGF0IHRoZSBzdGF0ZSBvZiB0aGUgc3VwcGxpY2FudAorICAgICAqIGhhcyBjaGFuZ2VkLgorICAgICAqIEBwYXJhbSBuZXR3b3JrSWQgdGhlIGNvbmZpZ3VyZWQgbmV0d29yayBvbiB3aGljaCB0aGUgc3RhdGUgY2hhbmdlIG9jY3VycmVkCisgICAgICogQHBhcmFtIHdpZmlTc2lkIG5ldHdvcmsgbmFtZQorICAgICAqIEBwYXJhbSBCU1NJRCBuZXR3b3JrIGFkZHJlc3MKKyAgICAgKiBAcGFyYW0gbmV3U3RhdGUgdGhlIG5ldyB7QGNvZGUgU3VwcGxpY2FudFN0YXRlfQorICAgICAqLworICAgIHZvaWQgbm90aWZ5U3VwcGxpY2FudFN0YXRlQ2hhbmdlKGludCBuZXR3b3JrSWQsIFdpZmlTc2lkIHdpZmlTc2lkLCBTdHJpbmcgQlNTSUQsCisgICAgICAgICAgICBTdXBwbGljYW50U3RhdGUgbmV3U3RhdGUpIHsKKyAgICAgICAgbVN0YXRlTWFjaGluZS5zZW5kTWVzc2FnZShtU3RhdGVNYWNoaW5lLm9idGFpbk1lc3NhZ2UoU1VQUExJQ0FOVF9TVEFURV9DSEFOR0VfRVZFTlQsCisgICAgICAgICAgICAgICAgbmV3IFN0YXRlQ2hhbmdlUmVzdWx0KG5ldHdvcmtJZCwgd2lmaVNzaWQsIEJTU0lELCBuZXdTdGF0ZSkpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS93aWZpL2phdmEvYW5kcm9pZC9uZXQvd2lmaS9XaWZpU3NpZC5qYXZhIGIvd2lmaS9qYXZhL2FuZHJvaWQvbmV0L3dpZmkvV2lmaVNzaWQuamF2YQppbmRleCBhMzVhMzRiLi5mOGJhOTVkIDEwMDY0NAotLS0gYS93aWZpL2phdmEvYW5kcm9pZC9uZXQvd2lmaS9XaWZpU3NpZC5qYXZhCisrKyBiL3dpZmkvamF2YS9hbmRyb2lkL25ldC93aWZpL1dpZmlTc2lkLmphdmEKQEAgLTE2LDkgKzE2LDggQEAKIAogcGFja2FnZSBhbmRyb2lkLm5ldC53aWZpOwogCi1pbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWxhYmxlOwogaW1wb3J0IGFuZHJvaWQub3MuUGFyY2VsOwotaW1wb3J0IGFuZHJvaWQudXRpbC5Mb2c7CitpbXBvcnQgYW5kcm9pZC5vcy5QYXJjZWxhYmxlOwogCiBpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CiBpbXBvcnQgamF2YS5uaW8uQnl0ZUJ1ZmZlcjsKQEAgLTQyLDcgKzQxLDcgQEAKIHB1YmxpYyBjbGFzcyBXaWZpU3NpZCBpbXBsZW1lbnRzIFBhcmNlbGFibGUgewogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUQUcgPSAiV2lmaVNzaWQiOwogCi0gICAgcHVibGljIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBvY3RldHMgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKDMyKTsKKyAgICBwdWJsaWMgZmluYWwgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIG9jdGV0cyA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oMzIpOwogCiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFWF9SQURJWCA9IDE2OwogICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE5PTkUgPSAiPHVua25vd24gc3NpZD4iOwpAQCAtNTgsNyArNTcsNiBAQAogCiAgICAgcHVibGljIHN0YXRpYyBXaWZpU3NpZCBjcmVhdGVGcm9tSGV4KFN0cmluZyBoZXhTdHIpIHsKICAgICAgICAgV2lmaVNzaWQgYSA9IG5ldyBXaWZpU3NpZCgpOwotICAgICAgICBpbnQgbGVuZ3RoID0gMDsKICAgICAgICAgaWYgKGhleFN0ciA9PSBudWxsKSByZXR1cm4gYTsKIAogICAgICAgICBpZiAoaGV4U3RyLnN0YXJ0c1dpdGgoIjB4IikgfHwgaGV4U3RyLnN0YXJ0c1dpdGgoIjBYIikpIHsKQEAgLTE5MSw4ICsxODksMTMgQEAKICAgICB9CiAKICAgICAvKiogQGhpZGUgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0hpZGRlbigpIHsKKyAgICAgICAgcmV0dXJuIGlzQXJyYXlBbGxaZXJvZXMob2N0ZXRzLnRvQnl0ZUFycmF5KCkpOworICAgIH0KKworICAgIC8qKiBAaGlkZSAqLwogICAgIHB1YmxpYyBieXRlW10gZ2V0T2N0ZXRzKCkgewotICAgICAgICByZXR1cm4gIG9jdGV0cy50b0J5dGVBcnJheSgpOworICAgICAgICByZXR1cm4gb2N0ZXRzLnRvQnl0ZUFycmF5KCk7CiAgICAgfQogCiAgICAgLyoqIEBoaWRlICovCmRpZmYgLS1naXQgYS93aWZpL2phdmEvYW5kcm9pZC9uZXQvd2lmaS9XaWZpU3RhdGVNYWNoaW5lLmphdmEgYi93aWZpL2phdmEvYW5kcm9pZC9uZXQvd2lmaS9XaWZpU3RhdGVNYWNoaW5lLmphdmEKaW5kZXggZWVkZDY2Zi4uNGYyYWY3OCAxMDA2NDQKLS0tIGEvd2lmaS9qYXZhL2FuZHJvaWQvbmV0L3dpZmkvV2lmaVN0YXRlTWFjaGluZS5qYXZhCisrKyBiL3dpZmkvamF2YS9hbmRyb2lkL25ldC93aWZpL1dpZmlTdGF0ZU1hY2hpbmUuamF2YQpAQCAtNjMsNyArNjMsNiBAQAogaW1wb3J0IGFuZHJvaWQub3MuTWVzc2FnZTsKIGltcG9ydCBhbmRyb2lkLm9zLk1lc3NlbmdlcjsKIGltcG9ydCBhbmRyb2lkLm9zLlBvd2VyTWFuYWdlcjsKLWltcG9ydCBhbmRyb2lkLm9zLlByb2Nlc3M7CiBpbXBvcnQgYW5kcm9pZC5vcy5SZW1vdGVFeGNlcHRpb247CiBpbXBvcnQgYW5kcm9pZC5vcy5TZXJ2aWNlTWFuYWdlcjsKIGltcG9ydCBhbmRyb2lkLm9zLlN5c3RlbUNsb2NrOwpAQCAtNzEsNyArNzAsNiBAQAogaW1wb3J0IGFuZHJvaWQub3MuVXNlckhhbmRsZTsKIGltcG9ydCBhbmRyb2lkLm9zLldvcmtTb3VyY2U7CiBpbXBvcnQgYW5kcm9pZC5wcm92aWRlci5TZXR0aW5nczsKLWltcG9ydCBhbmRyb2lkLnV0aWwuTG9nOwogaW1wb3J0IGFuZHJvaWQudXRpbC5McnVDYWNoZTsKIGltcG9ydCBhbmRyb2lkLnRleHQuVGV4dFV0aWxzOwogCkBAIC04Nyw3ICs4NSw2IEBACiBpbXBvcnQgamF2YS5pby5GaWxlRGVzY3JpcHRvcjsKIGltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOwogaW1wb3J0IGphdmEubmV0LkluZXRBZGRyZXNzOwotaW1wb3J0IGphdmEubmV0LkluZXQ2QWRkcmVzczsKIGltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwogaW1wb3J0IGphdmEudXRpbC5MaXN0OwogaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CkBAIC0zMDUsOCArMzAyLDYgQEAKICAgICBzdGF0aWMgZmluYWwgaW50IENNRF9ERUxBWUVEX1NUT1BfRFJJVkVSICAgICAgICAgICAgICA9IEJBU0UgKyAxODsKICAgICAvKiBBIGRlbGF5ZWQgbWVzc2FnZSBzZW50IHRvIHN0YXJ0IGRyaXZlciB3aGVuIGl0IGZhaWwgdG8gY29tZSB1cCAqLwogICAgIHN0YXRpYyBmaW5hbCBpbnQgQ01EX0RSSVZFUl9TVEFSVF9USU1FRF9PVVQgICAgICAgICAgID0gQkFTRSArIDE5OwotICAgIC8qIFJlYWR5IHRvIHN3aXRjaCB0byBuZXR3b3JrIGFzIGRlZmF1bHQgKi8KLSAgICBzdGF0aWMgZmluYWwgaW50IENNRF9DQVBUSVZFX0NIRUNLX0NPTVBMRVRFICAgICAgICAgICA9IEJBU0UgKyAyMDsKIAogICAgIC8qIFN0YXJ0IHRoZSBzb2Z0IGFjY2VzcyBwb2ludCAqLwogICAgIHN0YXRpYyBmaW5hbCBpbnQgQ01EX1NUQVJUX0FQICAgICAgICAgICAgICAgICAgICAgICAgID0gQkFTRSArIDIxOwpAQCAtNTQzLDggKzUzOCw2IEBACiAgICAgcHJpdmF0ZSBTdGF0ZSBtT2J0YWluaW5nSXBTdGF0ZSA9IG5ldyBPYnRhaW5pbmdJcFN0YXRlKCk7CiAgICAgLyogV2FpdGluZyBmb3IgbGluayBxdWFsaXR5IHZlcmlmaWNhdGlvbiB0byBiZSBjb21wbGV0ZSAqLwogICAgIHByaXZhdGUgU3RhdGUgbVZlcmlmeWluZ0xpbmtTdGF0ZSA9IG5ldyBWZXJpZnlpbmdMaW5rU3RhdGUoKTsKLSAgICAvKiBXYWl0aW5nIGZvciBjYXB0aXZlIHBvcnRhbCBjaGVjayB0byBiZSBjb21wbGV0ZSAqLwotICAgIHByaXZhdGUgU3RhdGUgbUNhcHRpdmVQb3J0YWxDaGVja1N0YXRlID0gbmV3IENhcHRpdmVQb3J0YWxDaGVja1N0YXRlKCk7CiAgICAgLyogQ29ubmVjdGVkIHdpdGggSVAgYWRkciAqLwogICAgIHByaXZhdGUgU3RhdGUgbUNvbm5lY3RlZFN0YXRlID0gbmV3IENvbm5lY3RlZFN0YXRlKCk7CiAgICAgLyogZGlzY29ubmVjdCBpc3N1ZWQsIHdhaXRpbmcgZm9yIG5ldHdvcmsgZGlzY29ubmVjdCBjb25maXJtYXRpb24gKi8KQEAgLTc5MCw3ICs3ODMsNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgYWRkU3RhdGUobUwyQ29ubmVjdGVkU3RhdGUsIG1Db25uZWN0TW9kZVN0YXRlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRTdGF0ZShtT2J0YWluaW5nSXBTdGF0ZSwgbUwyQ29ubmVjdGVkU3RhdGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFN0YXRlKG1WZXJpZnlpbmdMaW5rU3RhdGUsIG1MMkNvbm5lY3RlZFN0YXRlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRTdGF0ZShtQ2FwdGl2ZVBvcnRhbENoZWNrU3RhdGUsIG1MMkNvbm5lY3RlZFN0YXRlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRTdGF0ZShtQ29ubmVjdGVkU3RhdGUsIG1MMkNvbm5lY3RlZFN0YXRlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFN0YXRlKG1EaXNjb25uZWN0aW5nU3RhdGUsIG1Db25uZWN0TW9kZVN0YXRlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFN0YXRlKG1EaXNjb25uZWN0ZWRTdGF0ZSwgbUNvbm5lY3RNb2RlU3RhdGUpOwpAQCAtMTM0NSwxMCArMTMzNyw2IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBjYXB0aXZlUG9ydGFsQ2hlY2tDb21wbGV0ZSgpIHsKLSAgICAgICAgc2VuZE1lc3NhZ2UoQ01EX0NBUFRJVkVfQ0hFQ0tfQ09NUExFVEUpOwotICAgIH0KLQogICAgIC8qKgogICAgICAqIFRPRE86IGRvYwogICAgICAqLwpAQCAtMjUyOCw3ICsyNTE2LDYgQEAKICAgICAgICAgICAgICAgICBjYXNlIENNRF9TVE9QX0RSSVZFUjoKICAgICAgICAgICAgICAgICBjYXNlIENNRF9ERUxBWUVEX1NUT1BfRFJJVkVSOgogICAgICAgICAgICAgICAgIGNhc2UgQ01EX0RSSVZFUl9TVEFSVF9USU1FRF9PVVQ6Ci0gICAgICAgICAgICAgICAgY2FzZSBDTURfQ0FQVElWRV9DSEVDS19DT01QTEVURToKICAgICAgICAgICAgICAgICBjYXNlIENNRF9TVEFSVF9BUDoKICAgICAgICAgICAgICAgICBjYXNlIENNRF9TVEFSVF9BUF9TVUNDRVNTOgogICAgICAgICAgICAgICAgIGNhc2UgQ01EX1NUQVJUX0FQX0ZBSUxVUkU6CkBAIC0zODA4LDI5ICszNzk1LDE3IEBACiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgV2lmaVdhdGNoZG9nU3RhdGVNYWNoaW5lLkdPT0RfTElOS19ERVRFQ1RFRDoKICAgICAgICAgICAgICAgICAgICAgbG9nKGdldE5hbWUoKSArICIgR09PRF9MSU5LX0RFVEVDVEVEOiB0cmFuc2l0aW9uIHRvIGNhcHRpdmUgcG9ydGFsIGNoZWNrIik7Ci0gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25UbyhtQ2FwdGl2ZVBvcnRhbENoZWNrU3RhdGUpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICBpZiAoREJHKSBsb2coZ2V0TmFtZSgpICsgIiB3aGF0PSIgKyBtZXNzYWdlLndoYXQgKyAiIE5PVF9IQU5ETEVEIik7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOT1RfSEFORExFRDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBIQU5ETEVEOwotICAgICAgICB9Ci0gICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBTZW5kIG91dCBhIGJyb2FkY2FzdCB3aXRoIHRoZSBDQVBUSVZFX1BPUlRBTF9DSEVDSyB0byBwcmVzZXJ2ZQorICAgICAgICAgICAgICAgICAgICAvLyBleGlzdGluZyBiZWhhdmlvdXIuIFRoZSBjYXB0aXZlIHBvcnRhbCBjaGVjayByZWFsbHkgaGFwcGVucyBhZnRlciB3ZQorICAgICAgICAgICAgICAgICAgICAvLyB0cmFuc2l0aW9uIGludG8gRGV0YWlsZWRTdGF0ZS5DT05ORUNURUQuCisgICAgICAgICAgICAgICAgICAgIHNldE5ldHdvcmtEZXRhaWxlZFN0YXRlKERldGFpbGVkU3RhdGUuQ0FQVElWRV9QT1JUQUxfQ0hFQ0spOworICAgICAgICAgICAgICAgICAgICBtV2lmaUNvbmZpZ1N0b3JlLnVwZGF0ZVN0YXR1cyhtTGFzdE5ldHdvcmtJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXRhaWxlZFN0YXRlLkNBUFRJVkVfUE9SVEFMX0NIRUNLKTsKKyAgICAgICAgICAgICAgICAgICAgc2VuZE5ldHdvcmtTdGF0ZUNoYW5nZUJyb2FkY2FzdChtTGFzdEJzc2lkKTsKIAotICAgIGNsYXNzIENhcHRpdmVQb3J0YWxDaGVja1N0YXRlIGV4dGVuZHMgU3RhdGUgewotICAgICAgICBAT3ZlcnJpZGUKLSAgICAgICAgcHVibGljIHZvaWQgZW50ZXIoKSB7Ci0gICAgICAgICAgICBsb2coZ2V0TmFtZSgpICsgIiBlbnRlciIpOwotICAgICAgICAgICAgc2V0TmV0d29ya0RldGFpbGVkU3RhdGUoRGV0YWlsZWRTdGF0ZS5DQVBUSVZFX1BPUlRBTF9DSEVDSyk7Ci0gICAgICAgICAgICBtV2lmaUNvbmZpZ1N0b3JlLnVwZGF0ZVN0YXR1cyhtTGFzdE5ldHdvcmtJZCwgRGV0YWlsZWRTdGF0ZS5DQVBUSVZFX1BPUlRBTF9DSEVDSyk7Ci0gICAgICAgICAgICBzZW5kTmV0d29ya1N0YXRlQ2hhbmdlQnJvYWRjYXN0KG1MYXN0QnNzaWQpOwotICAgICAgICB9Ci0gICAgICAgIEBPdmVycmlkZQotICAgICAgICBwdWJsaWMgYm9vbGVhbiBwcm9jZXNzTWVzc2FnZShNZXNzYWdlIG1lc3NhZ2UpIHsKLSAgICAgICAgICAgIHN3aXRjaCAobWVzc2FnZS53aGF0KSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBDTURfQ0FQVElWRV9DSEVDS19DT01QTEVURToKLSAgICAgICAgICAgICAgICAgICAgbG9nKGdldE5hbWUoKSArICIgQ01EX0NBUFRJVkVfQ0hFQ0tfQ09NUExFVEUiKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogVGhpcyBtaWdodCBsb29rIGxpa2UgYW4gb2RkIHBsYWNlIHRvIGVuYWJsZSBJUFY2IGJ1dCB0aGlzIGlzIGluCisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3BvbnNlIHRvIHRyYW5zaXRpb25pbmcgaW50byBHT09EX0xJTktfREVURUNURUQuIFNpbWlsYXJseSwgd2UgZGlzYWJsZQorICAgICAgICAgICAgICAgICAgICAvLyBpcHY2IHdoZW4gd2UgdHJhbnNpdGlvbiBpbnRvIFBPT1JfTElOS19ERVRFQ1RFRCBpbiBtQ29ubmVjdGVkU3RhdGUuCiAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBtTndTZXJ2aWNlLmVuYWJsZUlwdjYobUludGVyZmFjZU5hbWUpOwogICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChSZW1vdGVFeGNlcHRpb24gcmUpIHsKQEAgLTM4MzgsMTIgKzM4MTMsMTYgQEAKICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbFN0YXRlRXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2UoIkZhaWxlZCB0byBlbmFibGUgSVB2NjogIiArIGUpOwogICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgbG9nKGdldE5hbWUoKSArICIgR09PRF9MSU5LX0RFVEVDVEVEOiB0cmFuc2l0aW9uIHRvIENPTk5FQ1RFRCIpOwogICAgICAgICAgICAgICAgICAgICBzZXROZXR3b3JrRGV0YWlsZWRTdGF0ZShEZXRhaWxlZFN0YXRlLkNPTk5FQ1RFRCk7CiAgICAgICAgICAgICAgICAgICAgIG1XaWZpQ29uZmlnU3RvcmUudXBkYXRlU3RhdHVzKG1MYXN0TmV0d29ya0lkLCBEZXRhaWxlZFN0YXRlLkNPTk5FQ1RFRCk7CiAgICAgICAgICAgICAgICAgICAgIHNlbmROZXR3b3JrU3RhdGVDaGFuZ2VCcm9hZGNhc3QobUxhc3RCc3NpZCk7CiAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25UbyhtQ29ubmVjdGVkU3RhdGUpOworCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGlmIChEQkcpIGxvZyhnZXROYW1lKCkgKyAiIHdoYXQ9IiArIG1lc3NhZ2Uud2hhdCArICIgTk9UX0hBTkRMRUQiKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5PVF9IQU5ETEVEOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIEhBTkRMRUQ7CkBAIC0zODc1LDYgKzM4NTQsNyBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIEhBTkRMRUQ7CiAgICAgICAgIH0KKwogICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgcHVibGljIHZvaWQgZXhpdCgpIHsKICAgICAgICAgICAgIC8qIFJlcXVlc3QgYSBDUyB3YWtlbG9jayBkdXJpbmcgdHJhbnNpdGlvbiB0byBtb2JpbGUgKi8KZGlmZiAtLWdpdCBhL3dpZmkvamF2YS9hbmRyb2lkL25ldC93aWZpL1dpZmlTdGF0ZVRyYWNrZXIuamF2YSBiL3dpZmkvamF2YS9hbmRyb2lkL25ldC93aWZpL1dpZmlTdGF0ZVRyYWNrZXIuamF2YQppbmRleCA2MTVjODkzLi43ZGVkMTcxIDEwMDY0NAotLS0gYS93aWZpL2phdmEvYW5kcm9pZC9uZXQvd2lmaS9XaWZpU3RhdGVUcmFja2VyLmphdmEKKysrIGIvd2lmaS9qYXZhL2FuZHJvaWQvbmV0L3dpZmkvV2lmaVN0YXRlVHJhY2tlci5qYXZhCkBAIC0xMTUsMTQgKzExNSw2IEBACiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIC8qKgotICAgICAqIENhcHRpdmUgY2hlY2sgaXMgY29tcGxldGUsIHN3aXRjaCB0byBuZXR3b3JrCi0gICAgICovCi0gICAgQE92ZXJyaWRlCi0gICAgcHVibGljIHZvaWQgY2FwdGl2ZVBvcnRhbENoZWNrQ29tcGxldGUoKSB7Ci0gICAgICAgIG1XaWZpTWFuYWdlci5jYXB0aXZlUG9ydGFsQ2hlY2tDb21wbGV0ZSgpOwotICAgIH0KLQogICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyB2b2lkIGNhcHRpdmVQb3J0YWxDaGVja0NvbXBsZXRlZChib29sZWFuIGlzQ2FwdGl2ZVBvcnRhbCkgewogICAgICAgICAvLyBub3QgaW1wbGVtZW50ZWQKZGlmZiAtLWdpdCBhL3dpZmkvamF2YS9hbmRyb2lkL25ldC93aWZpL3AycC9XaWZpUDJwU2VydmljZS5qYXZhIGIvd2lmaS9qYXZhL2FuZHJvaWQvbmV0L3dpZmkvcDJwL1dpZmlQMnBTZXJ2aWNlLmphdmEKaW5kZXggOGIwNzIwOC4uMjViMjI3MCAxMDA2NDQKLS0tIGEvd2lmaS9qYXZhL2FuZHJvaWQvbmV0L3dpZmkvcDJwL1dpZmlQMnBTZXJ2aWNlLmphdmEKKysrIGIvd2lmaS9qYXZhL2FuZHJvaWQvbmV0L3dpZmkvcDJwL1dpZmlQMnBTZXJ2aWNlLmphdmEKQEAgLTEwOTIsNiArMTA5Miw3IEBACiAKICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgIHB1YmxpYyB2b2lkIGV4aXQoKSB7CisgICAgICAgICAgICBzZW5kUDJwRGlzY292ZXJ5Q2hhbmdlZEJyb2FkY2FzdChmYWxzZSk7CiAgICAgICAgICAgICBzZW5kUDJwU3RhdGVDaGFuZ2VkQnJvYWRjYXN0KGZhbHNlKTsKICAgICAgICAgICAgIG1OZXR3b3JrSW5mby5zZXRJc0F2YWlsYWJsZShmYWxzZSk7CiAK